0.57721566490153286060651209008240243104215933593992359880576723488486772677766467093694706329174674951463144724980708248096050401448654283622417399764492353625350033374293733773767394279259525824709491600873520394816567085323315177661152862119950150798479374508570574002992135478614669402960432542151905877553526733139925401296742051375413954911168510280798423487758720503843109399736137255306088933126760017247953783675927135157722610273492913940798430103417771778088154957066107501016191663340152278935867965497252036212879226555953669628176388792726801324310104765059637039473949576389065729679296010090151251959509222435014093498712282479497471956469763185066761290638110518241974448678363808617494551698927923018773910729457815543160050021828440960537724342032854783670151773943987003023703395183286900015581939880427074115422278197165230110735658339673487176504919418123000406546931429992977795693031005030863034185698032310836916400258929708909854868257773642882539549258736295961332985747393023734388470703702844129201664178502487333790805627549984345907616431671031467107223700218107450444186647591348036690255324586254422253451813879124345735013612977822782881489459098638460062931694718871495875254923664935204732436410972682761608775950880951262084045444779922991572482925162512784276596570832146102982146179519579590959227042089896279712553632179488737642106606070659825619901028807561251991375116782176436190570584407835735015800560774579342131449885007864151716151945657061704324507500816870523078909370461430668481791649684254915049672431218378387535648949508684541023406016225085155838672349441878804409407701068837951113078720234263952269209716088569083825113787128368204911789259447848619911852939102930990592552669172744689204438697111471745715745732039352091223160850868275588901094516811810168749754709693666712102063048271658950493273148608749402070067425909182487596213738423114426531350292303175172257221628324883811245895743862398703757662855130331439299954018531341415862127886480761100301521196578006811777376350168183897338966398689579329914563886443103706080781744899579583245794189620260498410439225078604603625277260229196829958609883390137871714226917883819529844560791605197279736047591025109957791335157917722515025492932463250287476779484215840507599290401855764599018626926776437266057117681336559088155481074700006233637252889495546369714330120079130855526395954978230231440391497404947468259473208461852460587766948828795301040634917229218580087067706904279267432844469685149718256780958416544918514575331964063311993738215734508749883255608888735280190191550896885546825924544452772817305730108060617701136377318246292466008127716210186774468495951428179014511194893422883448253075311870186097612246231767497755641246198385640148412358717724955422482016151765799408062968342428905725947392696386338387438054713196764292683724907608750737852837023046865034905120342272174366897928486297290889267897770326246239122618887653005778627436060944436039280977081338369342355085839411267092187344145121878032761505094780554663005868455631524546053151132528188910792314913110323443024509334500030765586487422297177003317845391505669401599884929160911400294869020884853816970095515663470554452217640358629398286581312387013253588006256866269269977677377306832269009160851045150022610718025546592849389492775958975407615599337826482419795064186814378817185088540803679963142395400919643887500789000006279979428098863729925919777650404099220379404276168178371566865306693983091652432270595530417667366401167929590129305374497183080042758486350838080424667350935598323241169692148606498927636244329588548737897014897133435384480028904666509028453768962239830488140627305408795911896705749385443247869148085337702640677580812754587311176364787874307392066420112513527274996175450530855823566830683229176766770410352315350325101246563861567064498471326959693301678661383333334416579006058674971036468951745695971815537640783776501842783459918420159954314490477255523061476701659934163906609120540053221589020913408027822515338528995116654522458691859936712201321501448014242309862546044886725693431488704915930446401891645020224054953862918475862930778893506437715966069096046812437023054657031606799925871666752472194097779801863626256335825262794223932548601326935307013889374369238428789385127647408565486502815630677404422030644037568263091029175145722344410503693177114521708889074464160486887010838623114261284414259609563704006192005793350341552426240262064656935430612585265834521921214977718780695866085163349221048367379945925943403795600021927854183794177602033655946730788798380848163146782414923546491488766833684074928938652818630485898203548186243838481759976358490751807914806349439162847054822007549453489861338272357309221900307400968003376668449325055676549375303181125164105524923840776451498423957620127815523229449288545578538202489189424418570959195582081000715783840396274799858178808888657168306994360607359904210685114279131696995967923008289881560975383380591093603412529986567903895687956734550833629078238626385634907473192752787401665575311901115434700181862569712611201268529231299371614039069651122248166150823536439823966205326333222485051915936826907150043155898718027833538454483091072494980578809617179963371670365541800414646675387195869484833315435833306419359294874209514788323477484814181497768716944136400566451569361165241615557341419354247213730674683338490544266260383727882175527099309581410261369795007864658767716086308044607498028015769626759138977947722143375154708293458791238984330550672234749699849424867067215025692735295850658695889974865355621869580439971251689766541698626538628919775421877219396058170011042364141587808103861721015575519237111600498806822916180977324219583289748692271839791904677165426681388933792960368154579396113396219222454301515806317437084056085364160313849829695185669526128221237169393681303212965619397187102070980079488339101975351043074418234488333317969782773320911433245143050865734575006873914754707775775599184671183085836601594371937184490390617702325365679775967444757475115841957467009973450024544284065850245085856463927912461198790936930720198040293036037388384307421628212016353864662260971989584367994305720301496380508322323658255577245342371877374398183333064546629069933111259737219502746468990654571554403039178354197564343157390348838667505427421618310500605504642235457084273935493590517627174792994723989086329701019056101077426909264752357403046301592434424649008341886308593206855225077909101958588953143287998175709819168293159404530056325433144885173573026982569372534699640134408715801081452878657904086636379450711085051042417976919112926151320103163634980866069486244078006684006716962214637181147772683418466463642427340530031380773496119981468617685854631208163164798937964263738356618938313710983289564905211488134029742388868631543132978765799125454243338563472002681290489949550426980882130267263581532480675387903230574210403301497887867523778607054688614721009926329425108878019702841179224025910914665848092578571927862821476670740878635197142562924278670284077032414375699318832433315590024333047691110092479791180062862022137078006217257329047359943988831392799279693970635676281166940541288590819820238382770354834968797340488882930167367709415846544009548624651461013539134968559120402363618721509929806519058616828153028750427545258605331963432595777478813437239394991243806143754498590686075185631427255255642593967014980414259818237852576829436395965624388520656548071038845463944537701917845718741011862232278025251943626574382422560935676925823877491160737759451401447031902241535591125061381782974212649826416187246063133408919267023597958023658416317556792335662101231335845494590590069984200672260251167743847364824385715407146265945642391127170780306371416926386440100571310958960632649637552956769364689410517952000616452021884353404730182439305148819845930762964044456877624165287162072767318606325408014288745711986573074717018866036879703647708548528716700036229285288374682466058814117540474460616763543037399237565965936967087923167744685693108382107830483159196430021441259702289063203174101149366480952903011716334531917922939242428772837872349569929232136092234947226458243755094515335520117612897517339513717829332871586094386627011791841554587264898251392555943795197317867448769925326179423381299941279398602644245196006054368186646709865944365930154376291486979597694996533527210020020967910439482547244113342244870054637656840866762153373627461591205470086290571698257353705239761231238412564349411789498615828597020971097039196352168122582247562719519382728285209147182375343655254020746203066730476952470094413814561782826663196139673593672572646033884946424894724489784815967153061538467122369871282319784769311057166236373262075959711804015143896231706019585709823813924666135279136956376559048616762051297409983149655978602534101294543998672883006244084401861815117506870887646716097992920177696249633015758292596188494858720022922480606288121778733831458825512939536510881918651200449231549839477314735786889731420473109453814648226321023310794395974628523541295751910635587923001956181312946120301575763401597856817517498423778824473753982474575996867707408545574329424026781938482203540962106060721924990825104854003184963199863221569089097614053107165113129326853498524402864482934705916085869959819889039599559181107641344665881452542565881535450288847399753243278090215225695218441452986508355129839802262382649748818115815250345997499159664009832014520070480355568589973099815031041922385089745373276129471712681653088670054728865779224670178265948272609722903471574140316697310705050782961082607287042912608231197415101473578478101072797112427976028481411516338868969078671757725938152479612378999903666175603588218132546756344830914872962669372198850270018829817301702494421406317265197139506221082764507181663910436683295663807307194543211255053620896783230310851714811492858899362870648875584389130047186846798581655521590139256032061376427156280118971096114002391303934060617784821102217165992659596829588905449896485740412204749735425646718402365046790582748590695047355535311838358089652886158894174416219886804230349243895814973672227495181127145343869749924324213868414848375770331087617671331994426349880672166702983717230571304972563819884436539981947970223275432911444433463252114793188464973594694484809517347709407261091493510518550431888516380180024268176317264589577881465894731621991354217970696392959125603838048585831567272541846146996603519007670111782305279998313186980724782168173389846912490557910867065430256293808109482360911182960668949738197631510515384935175523971928535671639294213365269580491039503518402421871935461814477959700303498159579720430677759494490172314237985974762677078008980118918522229292623297292806314764810011917099935317697308942263740201007093350666227855337722176495694295133422170561068181275696140447495829039286085745738829193650805224286122212754636351051367221258224557507710935548241864408182186806578080799719517709474197677732124823714623843954879372675599911702819706075635766641012813500990087053356200523369296054295092545419735238087726164472653722307568265054845096797718992008548913474073964160494124035553268157246269023839385187188025506849257662387484058760208515682269637595950519247241511335163399791572224009610878392752258822130913709039825360268102671419245765661757745977814068774803927288115838175631194773765607660057264678952979984580986236663728860420221081574622480753444710682668245313146783013979556546944656992479884773872509646762389036794155692945890076145200788685363678588126399189591576200432171996367902698829112413538003826280315040300397490143536007249714922144796437588216498521429139153842734092660565411078590098047548501563396294110068732270885803892093866602669800064737282478204124119241732961887633805564827656343628060224348264275294448668047095582148258986443016881299385386463056032360997731239608702975422709483861874825906612323660796110832087609717857851801550148582132699958031669191755214285072089915579731076009248293783016418202941286326331963178831901074260096616164743394154710304528365460640719348240268087480514138683169741250300202583706513196961790813691464576360418232854233017738839045345749635312431878972696224389040540339039306952884935805777761256433715951089502408998893185702031780013280199777945931122995523088493387501718615418603641767395676490563615988622436725295694806198607690683597245894241067606469844393970764061755035650027839921735628683961804084163691192115011557769486857908922471487845531547682574957260623787980149706747223546404982107766859413968507245085143390188881730555369316016706539093911474320993348089767200168844178342988840477126704835769352300680827541283754352985735533050797305006712052401289557762367138428116947635192076990371894303804216371438020260110666534817950223654793917178839657146564474374206686887358331997949163774307809104278498968486960693414504621364852377070901452219029468183110105954590034563792948098863014998268544231855008787797230249495548680901708697654831156157276220114733764439915014185679907400300376725602437413886018262811473102546951894785578531365834695552014098212875256396892639185898082516236724064773919490085019462817223809657396295790935602068666584989340800634065501515697178146399656930331832975183416364087580730868694337701305347553507073800203767879714989374913285599899593202855162022483535234306250045419424974568657783359764165719518955089613766159654417611259243955778743990290627677159785074420988819643335932236673483397602142436566822965633862964366430983657905027742858329376251513041986499893239908267210852514521966643376919291245683079020464700109775893865853619885415872309552250293841539831450456825820961978063564201816960201594185402501085199174412320443594332553867486648936930678852959964464112849960565265236082673989819871175487740969391875316179460836788980226081242434510959956838680008617993107107029638814049391221574003954818755785922316123472118696303350553114708599233588578700921184132698002552550909144059309084817943620421149493800461925628807231636720535914404915394349163230560902343058426146232310502728056817747323023816418355694426887872912145908162819530945019864098633705151883699368722723212821579442611693259258097237351456169824731330384495041253660905156532450827216030197994493380764712349579213422816219071874389822734208602845477210672071476988552694014388073809393804470767794813681565899798368242345926071515270126980134428374698067667074908821906847066563556387993593946645549435033749338572366854345789966551386202315070272677577248748144286567262184147173278247584208168634332721189860384854071552942803791216373474719362537849890522347130871897664792562578430288532366722966551709021660523016296046318414083781215544500280342434817679267493928037374229801809302972274205586056365396307679886665317308596578367928006533733884357332821362579481072141013572476633003767021606441958814972809253810971730483605516802977670338571161163573792727185069574830898541786532522030558432875053657073237687839536670656584371212368194068868802319792659924226363888911289469040202113090926529044403516719558890258545356590756636211706424930059811694396536530001446071377786345070245262913323906664804267449716578267379986174202587859007609577702823029512062379058496854579125498749392266310424310638612717247756718882064738362117572913862923429920755333604151482790527586454384632305485082116454896143703211058166706907167539669969347051956972801618758656318296716389833503519992235875506433659919335054579899786089015056913078649912955515601505914855700720851212223732360148292288081092849174671046808227967805854622742571191906235190181155883933458092085005984334547184148384674544988212364043365707728165633455569931284301684398064101121424101723351739141677186945387525989557375580760150624134716218794861885140372198002572846652740129660903570217142186907445861335552628527210049280086765506377477202690840283449490101226950837017567392110167936194822273067202743064217803382385618264074241669287382792673321824251225279349197657547115315510316340080530580467465370601531163044579689942202337473039974719227940034852944397988360621967560113769553449002900240247662899731389264940182097756599837564808681717719384959562678748426499270858980560238395766763552822596037306172781488189718885258794608021622123029003330660818096092614736156095938124957920999443324157157484351043096194435531042541649161502891632849623562169281435062845211784988244473867228415903797619159453162209987956823718034456740302051954475177073411070162096024318802734425011109312026862604917826197641426991235811215471656463287512484603283482318311833881655749521399855831725095951571142709720147189253578421724978680840304785325008894778258643717554092728279077862914610222556929191187410934457116406047642447833729791916090996713486503698919071648771416939489797150713479897642267424724880016014578437241225881687256628672075560560808458091244755753995392024460383580480330166358858640762361002346924936754652296348525377821753694315344402764479892999657809288071235362059072642329459976592341072160700730763052854183769912203867465618360157046717192105450424417738624265972777792503500122377906567022754878855145864575006557966277100516369422240734116898751062309928247757913358285976514483512619817750977045754915954709118905870015930336656228785939981893972532983078574557433238765786882781484344714256703171408019643591520627978458182166389049433997887319623334050880191537474028997377863762779739819468186547075208337751546071227662096120124828683877839339364404427820685062619143565414985000107349528911145297568589807575329595078526420619789831531865702535430999928742261895955086753640405990112880971442086573328374857970780717283985663070758964225984086859143163168303988917672202131510815411456843582244185640494893524573517070779574347146773912471584457650306675214848348670881942483762918493134193492705957140694044384866560042900108704964224752239663703782079103238135809167383940302255490270136036679253741009303510302942153500784231221936921131007355005177821255901800901897589489568292605007109143528461170164133481825315057680414789141568784816074110416381729521724865165623274335933646452812690483850804167441488165968929298750011765250620391992532024424998563701315210432057638597515969977758789019319265395507596203438999825027992376697729021055212545393402864748384179132380660591410934599348763258485199292284971939956935071779670729602038487229237471501407657861767711744089934001369272441918296856282452517486579020257707165830298539350660955405716632411265517242499900482051789386835479369663206694229581610506040303590405856620695776059450952191291910302650435572128780909273778254477749363438333368695005675237951758381163652578968936924203483148198993181576759463559872683701529729345397633879533967248436496990899554002952991556399919801121201225495918645098689908645351564757386791252090823315638571132592058133462969470837810780342136284989767802089711122826782698792101948989871566980081066441035272581234080564723094433969036250432977464201263135613415965023449915047747657053661252719421245638888612223556817737554202813937164012450934171348648924134240253083052283703421089578658744234952124217825951447492998414866322598036318301992232284606576033502687040514538893318514918215910495383800903446443664618905500309885635191959083409910336308408589179720584515122806152343481791864316041271999591427454237563277748428861885664006173801438730607430032076129083746379452755660502816668458309424637825814923208841051222659106094507826377087419622623011545966741277585380842023766738905165359702842959578332106370092595101595012349543897960412023250930362749086301486539073895824179527352847453576231209115849537501134738874854288337668738798092203923588909176003343605173415579501469176343249183008783374106882893483936873927674730104674256616952576526004525156166394120918749889442343405276820822019410313786983184773697423254037085328291030818666297537219906065547549524697215602114486676036062020126341336839823331788446486083372671027279146821748942072057564500978684074292196829432061668572871874499970949114143041677151056639398930895329602963539323938342568801163956868021097161665789817082226855895624245599363890759373501348899526436133413332545548336691090774205702940193644269718286501055212815136397370991603614189701238061030884476268357078937039905094269558104180740472844001692067020855185592464279179870870357294334035576045913320227645870674493969066707386737284315524218278778675618127104640796374682423853027962249369156643499867127907150943732920460701403303550243486930040663308685727385322729736771648151665548357549970802964767719917940641677378402114888827020197783141484317896051144183508380984163136907555065307446644969772998531086523855313648299053899414551607865148138194359309590118588334007301612744632638904557453639751899561087281740303859446971220231234189878837271727576693071859656818391386339734045080841619626295408116108956674414909751625707390070758631898696327024118778617493011412484664605307675627718386369735579658088673568088180361208786819110745655320807411959842342828352319579104804398899278484469364282728405927311746404568356504265977211336913878429853078352349373691378726711361860157045857252697620888480533339961603409204448746029580566884594222320049703765369625556583116201483872656087534850991392198485505390434997421609756284634274271201681430895570143598625608034084905254477665397924303681492657698550635403610527332589343649715245508514303837183142630652479034685749538385666958887011957695229406720650114250245757614206228820995985013312744293341338860323110384095076538019098521619160568770322772200951079090603957916760821487575004299252236715057487231122162212098544538496426937735493250706473641053210895963116575184041351665481860599008270275723273466615289710570619845523826654561782715429401586469101305515348994782435043873824630656142099744745353185108155893640821856952712326671470846928465317553098238883371224283843214800435065069820451403442833017823315035005389840694998351793560805111544636892362043734161909453465753688878874557508041955950869786945282814751337178935777829744036621859127931868272026982591051643872673291381120126967285433014498655272963636948603974007476632753506491023612058602678290247373438425127709868618084927178993991289710453442548858962359458455935905691574018186433405204222355109787359716178374863022638146299904707099185482042676561666820524282467951024334484367600556665579457254401599907505937487091376607829564078733155298252993749493405351105546527693968777894508284341298692883677456499960853795169142465922398091125408984465458670163089507736001661808264481538153795051822658128337502045980033574796178224935514173839836714431445010007413433550217039294477952570243990090581226941817881365905682631397144292380243204290682159062439558310483585655760587441605461465196703478588806662401201735239233899517187758356369093925346447433258747124545728576808870917951310884382953028696696664384089333844553662885531961370010148702940505608733936521800689181089116297040201605304804213034009048598759204058478651803853231440985127625533170496356915553006955011005129737034087784054414418131671493865189127442806258634585180356559491969414353788999545708391278049387573326621819533038439482397043327062874783137883118520013787562952637147370981280505496904553788329650160508764049788443986739208308063850830063405739028760390238467895045556495258638996226969784643101414515447964349012792365485109220459742866654279470234153985014826586828841118045487239505791394436159662847285896739389749136509059158509448351542517982664447362935138781979882413338351489446982071453828958394265604059194389789272104961510631975710340121184599943160464789548435468824072509736135538552506801505495447526930134305692152690902036024552515116923082109585503041310410532556881064041200012010991361660551813053751074326636448199883756343888138134224948141506543736205328917880098955489390126221182962914767054103068078334982471556921422692021991023064118035779445607911371002326029627640134231052326717392326922236601853814763877143111771686911441930940706527837247402154732401679848423742571711871790095185711071618453580073298482251062276447217208141854508273111320816124149060740368066751379417131165786805715640220456620481412554696964489619528417302081848994140861173741332440850764821301635650511092317213223203345313182123219847646419905255266394708730797475745175746754661622367315418319921092345040744650388792515362099516965769524118039516035181201307897531635030763544808523484291060613026002400720878326643006191205255573187932915491508856427879685603111011318435408072971088111544624041175372705481403987079642804193674465862083594850955754443062371886058946738247086739744217720465596336640176912256577744448515039496598926193993179738803751049289871857409343914409129368267543273141981313918115670464911813124753457921454569407933726029010189198615086808318989292005504550636546208239042899471538910732315716250077866742126400931703335830973140272120124666450698467447668748695446627697930166395372063317716987944430973982790673748847135831517533392533034702229419478574620966715818590225628513175144311714620475936230771768982002113336654926360965956961674592681636969941561368137659826874671210394501582001539757923827660642611251754646875886161047536382518803489655630522335876074960932490312897385737731126785533531070483968605320377813622554569961555028172037036329877539047846938566660973276841262201356797642704272245005525393684746286155094992282130934617433662782114868401939995884709446171589663850434502841808546754891994586316475342379919135126532381503754527795362853545587123673299231785175448860910977672784015140453720822786996436824839583634321720085535761694102392297694916834629258942529191010832747258702396914780750276833407348559010534576897392663415565216517357810804891989118289979182123210154515076889005435934649870234903682371604743127661069843844154398567626537888321832576117740178984936439145032447073582683259421993269281562036527716481843611663897395104010623708330882920095034797471931863568134330101407271791638317908098534747202510157511930464794495391082563568306775808398464373054930997861860554748732011424357500873816334329201235990581775878343354997506605055988610880273547867254756955926549950232729263228947552939325701575284677578263694811671968802435103856416192062885874809080998754846743510338783666422272129369296515666362394755495617226287608771338606320938800220980217704973717120758703364279381184469624737195926802301639169595620404736868278501401799098724371179780873521954753532673387672154950092222268018256974701918573660053168605062509065337651345525450401873038367956247670437431872446113363313498783132159320323253859996484536640091555810417378674922368558905637553457672204521429838441721576775967266896051520248560153235958210461202779161506215453577374969275111121587666723506927122506328913341252954622472437597782982556997054399596505910102980057223473968632901727353812676496015144577427445622544340982398372803994623220761150028079416100868799041637537094953617561875528172957085725125296048997337609860683874733409910494602951753518142957753987606835994318265795108643309921209616216701671342859981113500742301205582432186143855736419644251233512417172775462463918114214894771428388089105875416072693305060021952446377683488807774948889718894822273000609772112797752257308857429151399949666052358151198885112449652414993411321778080242449495333133077820103046388005837788526189642909587277047736545498272938934395963799995839412081324630672040451843435146052438603140415864261413036682524523994559862122240980044706277395411592929367019010084565063642148611272569691974048076701587037565374678876474762145146500456559248695719404772307711488634120172646328501832682581501224687496426996713145364280083366659002190475446889599773398205393299714882089447232504026424198399985995434431312932705916791064486242324196127365545259567173077639971090815295894738013891912840037140830644118848248905168277564544846530660630796021734391846750951299937095429288981179261781658217547066074915032927105382980339351373620742586907575706620485420929925297891489946672939981263075948990992400957642219101884611378603426401246746071519388547324009165660487267851464923443672816065326692167461893691398144987942754665394057694709834980242081955374031415880200114675722088323692614694203453686822619601138910191091465486666782158756851106955386067105822439231542171416793797488119939529381696576886889456519099966057062554167228804369083549164781364851769553399923071595978181556576088265631462154336588271806049616218218501975148933688930529219598208152336141755317966186577802177901765723853084898655523806749757743392446392077019937852006170397878579545875464310845267964255584692120549040323236066024646928678133185772700866757479052643548349814772608087589947205732549932555220346767086851072995082043923163450204496209736573051652226993135716907681245265191491472492738226332886207660600085318807396721794403483236499202454577325908424535264456446633853123117247695098788395868425099610113106977281999509043742251192130008000709013459571016623642365510955247597494398204489872544337967176092206804584554258973507432663601773722658400688751962599350084610024851185909655603299085507289759808641324769414523357375637656806887432182388909378394387253679266615502515168714809756903775807277900616991938009845595324731979528921182058240140038545339284777825557370459022623314342759252945310791708159747427273591885282936200909965734898834102119459452811260702449475196552681049973300210071646582995943646904886126353790900964347909410144869023250540083511628319953647914770777522014667364316849500648177547083025856122321482785499122567472774207188372313469828657226868182348709472953493504533296936051981599139996146047709598621350326179274070588529062594851773943992066691154194609907524318336384139338746592718283996033264078052542801651172130009400328339594426475244022606187059219043179086736710580576190306491639549365512562334170558296410267149193980496870607589466073782596609723968026014625012813149307721459944671340167367984323646151690021759414577136416735545915343352086244154348395915657196906831557418458515168619253356638644142894876555317126200949309364024182650655282412995029528641706417984084215507703766302007820211969972943339322020117246578971235945827694701352352409442853120379823496420204069963113933161781587067928544627049510066727217511786170011032049898786875461522335902211576263096908185540719665854449825734903037433303338293496041276065361038093793775987896698151087370796200023607251251457828251254139444445744219305921373742942409122864051007397230942450096778437752569655719614933511721275663163540183400889169285567790803436835466820379820566353740765060025101286749535127687192467201308139456622346507423912210322052429595436915170289198102990230026742725973343682205744139438232863867868741694642428957892377135516495986727901898281225525131906996179285268808836201916778425555051058178058085742273711929796596420470926995204875702866289465915309679311195164823953698144816383823091550135133884398854303873182759820408232440148431576212877401847320835315248918622498259721196991962882705729785242652259131548113365632785600467039634054196311672101684305468049154017662993287009628165977387873173139582074585417392599166959114883973019997986665869819095385997151000848785393480524693431565515167501357002468893376816121283976987406208125276344090140410083860105798528789688258296717115354770841533916111178348500931511063684443301000405094872898174721249021780376721284501377800312588333674027422661452864129036320141380359229615255778515178655292326845943590959954678627672284174076794152932524383584961973754230282643652626451218539665696787598645487996339757223086724575281029514079841740152474932598414115762827818179146087557457486730128767715190549379389603845307857053950626805459814294538064505053797782718727626065199939621776913929103615792956997494374006100144394729980450117546440412039450507241824418681726779060254058534594249432301544971015563345696638969011382350263253441411974002490728474023851338398135177892394144782818839190160864528559172175165035470731877552235135506545281180638365038381526695447881891270849744867815997359335233797526840375826318938417632291554456959076605814899510409240984825633059518189984612577591259366654037663386120220617094340902729962458815772604156774233858169359004057403183898825057415827960754927418999413517762339111201136697272834210689908177574280095474013667304785459997935750096854985890665185629841237846225912385882141657594338517508079334002246273465943283882321040537969258045656641000732499481642595881335971083359233970342800478491523811452244962452957527804095720031843482251374917473186679024919109205858246247015623616604920684661551775793613783158194070020208705594467649703090529462305943425038044310156718789508929180604785244755392168104662050591749421695915738611061775762866215050756698791418178461223774620440799105544778161516457212770569360463023836918875717623417198440283003883375961391358478545017959665350427755964921979471226765595218090919916324146056657717516915500930334667588351378978728729739310347453228785166264678138642746127965684709038158335149883190437561321546648961770254388200061997502440580883306618618286787447208257723765139002884139066460490503933504813299069151186179460382519809622642257333843143905587958041162359635191549063025173105873219608506140381690610496240567790278477054694491388357018112722257430917818157068781055512482417794313429709527193062290593751863735761791088702984751963204615840254299431019562039070094133043026128125701109927248078533671997810127720801433066673598124565784704240135740809483934426279012728829071757891185413966902617612446705411752000217243916768063020817120973299028418614883072301329360203696025854875818344996017474323614459349581891650040482582467245505197707149814731455372911976136906457027726251422903703521685599341507165727261467513098992504316951983931407964295790972967940705893761915297016188584143100450226692331741100951096862133516224522233157767096114972196240913476489190658692318030258298729143465511537389527726517777395747544472521909308800322997812911232419051902683839480864456453387656225798054210474812527521061531933254375592286236977921681696458202502175766546517009927678548125269616273286687833856913530120109079455945654473716473106700093392674344340089193203995608580968998794332635502215291418428878874503457780161265531631038178623444668600618614378151461305708947428638338629171208132445462898383741118605659546314614507678281743123159934185309500831113444964442276963627968965427083479393581442353213334172307195746798559527315026065301296485609558433652045904051136817010073147377051212630273366386096096045125615805610524124909550258940932336473365800746364448233065165064847183005080259147139992321349940347811203801096067848603496210839275616739381158598416640484339252190993163204119155712532573252678636807096938661871091413830754981427288195907717361090913963827150474443056924533008763720739598854149780863574257090208827043633537626919633088830250758440640674103305152423189976309097206332646620511757333116030793362827115915981629346051333160865989306320934600865939542403957488987221398499945753291454159103424881336005447437181617018926954650625081465952557048666994370343137231462176023685698597610995711049343710836113865762761841744162508468275328466770857526617486351538909318942882938942713053912330258861987873271818978211818980169282165876717644195833704044260552123107946770736877051516920064772330472201908233078773652564661736622060731826969936428651457308971213891825376483505713500462956599664245623285441917864844090474704746606332426132039041987731737102508458344405857297105352419493507776435009133429835509938685430017534540129806712899895452870497351015295638859838156474731846064530919034260623069065511636325236635567928015023666440568342853648499087270384368785581212832775863836887109416269138578963910232935730034236697412543188643302433128469570485227592410862046063479162368424662946390094515989389437748396322662891715997639508753591176056681425455560508157480497344956033604314066922997323633356899269205334608960293655115910743477304428049188290300326750764205757906469464074343102191352646826186161566707657698798096174576454493398061495890503769443300638846830873512241847216921936161954184808230250300810579285945065099811037067537053085207480856316257584886006482670999259434795944710896371385079827483398463723173393461396920525425533820252965321595219375321058290460808026232315121447066606193710564602865100799125248341630638072798872777091955811602040891408704801606931418322406467629449874662291190834521765518841769652891394092630558461121812172216466144417836542476628543403065623989524936173880691859746023049496404122132746871444131353848853929467771162004106131023317586512433118867465743671846262775921662571334697211064531930929098356365630735573263989286411248962526903837485751543637760592379449665063771669367607359532359925945838401429259613189766307973935965021245196944337559051433135774355535899361901770993170725248858435421646417751617694078300875810891416733318696200499104737467306373102513159822866585384513534266740602204157362148903454563946161292876375937214938256470733259755848641820103622941281360008848507909575229864077720577555705185306333784905600320025587792545613038092186848752809501655702825777755154670017992713959824070900894310742361495760485618764454265721538734279355143355365737530869434624762680030506592960532188200266517823314668407648236257519515157807060018384702371825671237458708747322895623233567988312173984439108641440928239610579769527264888998305085489660306717709711396552673498688310252359769970728355853407313442989235504081384044998400878934924378136122098215134443493299206965489406414873160763524927678095012246243592673988981083850259372425737287419390849858758445840853482162633697604962119823460743722042916571848230469427246865094230815048870297521788508655437881950649873832762473209491674080290427403260596179988417288685022216250971997121628302879048282756577703383037306405687742421031527143957425105319399353757636665024578906575383558285858773669676677471260214396138442399404473698008840997929894091142230270328733449239961147675676061109074212698414472295981987711299849607920653030987536441703602429594448210731995034968050115797893016706425506706714628367370143765239829218668735212525182302155215609421482651216914424165663233039771245170403359758339468541341136954549823103797422359673089959508579762956943694066145521639146825553586381354733757632455350200510028414643093313197542808539185864111991307684718199129431217371116476567069626721918990084092239015839348192372683591415741303194657498611308546647781118664380806670653473773671059637805313173748833190249204460151015896307162666502210305652696328454680217877190152241004282191516636312915934061401456909849079657086667475936546344588618307700736153017495306589886257806086645749580588016019426402338072375120254574057622471886454217589285438515819898608282183165990745629606505999006147370375868244537200647499706744002044154959604487261983819765319045845225073361644367726490281554954949636678657092998740789744140407090965600239392431137888499106597382142736961970273701638608318772282501618550856469355010379497926880975213295717204438196080109740685522882135146728664450067489316226965435425686377577273263688729729144197692612915431616293652669407981322127269086683279445162114519177279857795669317948593916822794021680405337442491336693961362875729754307750258627925096640718588931866142777803693127651928433110445946708665617847357762137495013606442928189007035258985373439013713289371004222766950909349747661890866030123724953751047641999783210220351237678705817011331158007968827902258534883659768215488968667804000668088083126344838572679035723327648089627265532627811819188589052439913685605894814729397894697744737583279997477436687417959309230135741991500338315608142235008705185095637133342499101287949746855526843304595392069770645788452150533611471179816361970683954296928093723842508188612412878665172973010284406866812023099296343047261677944414628422174988758767206431089317215113782077053303511842420193383555239705124214252340920377858394376800362464849539674731424462448932387056309398283876346236532090798053917538879029634451969159763716737124212798002518256561974281315980860221199590183422468001689120653543619648268867653659085422121167412955552394833365718179031280291421280407045048139957765145674054021788452198713593631151980355444489130530756706079406407516034262584599800551429265556266262323059815658467126144177463132414982605972264479064988658232815787312051101870701522813229201941922061730574866586322111103666650869739433616921630199521370559736631656255680302215420352768858223204622800704094709610796270789027527301853956153906022968739919685584118191279375689763364657556935467179290125902492332966363119798913741570620191272850919772207588723964361294841621368881108269779500322808319603856754306426476820982571438207131654228231187892293685102966254656665322455980457335908915198380552225369268857066554568120757078514515135182736595648005261193234277385734081826382444556304853119213424415713592089996109366448057356325732639770376739456167101357741922104418582286543978425904873663411749558853957093815022141476723364099046314693743684500279559700544251993350203331506170157567898685518410080088640819386050501570993761499412479395127562666446434846231413117079246394338921702582622983010106798993841669299274298389039836128503324608359480597878042632580773112078064668328299349070012041577006684114028987017046518583924141848772829181530172602014018155311218132841170611508462947942894507906527753886592677602120497054072589095275114865345171571964077826360237163494478063607340831499373967858346825673270531094934907347469375460184502871810079369918842571384752929794619975420196597419110578888864204425743380051221406135824614849829783504406854468917120847998248059365389443331226811899791673451698133750191011260777585996327424033303734272593959070334997691210985905560306285458915211584598391736750446679816441523911971575144167647058954565016076412793909259005282091563121122089128277197571936236137561607110872035592697014301492357214304026061661138966525275659146584936647460823460512188171375305827177134321761277066298162410136431536582537991467401030197180466479755961098552248489759509950984721788355780912213689735845268627685082525288091803821649164104919380881869536320019162422371065035201021988545085883001718456566277040839824734706908666518701687178762018267300940674106984889161678200086575946707303017563309396485011207464507447380776098559298799903512700771166199900909650031015783785724328865498308866813600469337663850668054765940861950286678084365766663895520768588445753437057362791362570683813825763319594347191960166927569123738600290206349721732020889597268103641706455326293860046271052019003401496676898885128254718491982478972487864967081775862650009441228155421384602436737755226820441312940984831585041566146836771599148270811896536018521285558653497391162410284494454552468231075278453111886808732139413906552613858200667290949125762191377606399000591615774657423251250124535046668796221980150274323102422315388983852087829267665755714317806456233135528685355039014402290693098891206635540127896445806291466493837557337710310614469309238962751148873163626813317886500812091092549232402536649240323277933365325807907080495572174515446573431806744300284973723676097488691662854519435686056983666755117516562713700183541278820430031485607597302474262936722362273681243875703111314767912045984190668387512866518080535198963400113635935273472997532492441798996448906888050984797959304184596811858305698139074829097957959280148653713664120138124516704419044128312819479980063073478493909058791659858501722121461408300937468512190410173152156161605655997586394678554539137473701304617380878155349918628840306158308968128821584036779472469108776911399277012547762837025228648273829044252002881054066721405357310724838648474975825000024984417402170352052487486096971536079701081209317115872043798167714148918344635962394518681124426303190633389688918246760385156430514050019367827359447647502644264325384159456384841732156524436697234957204828061378522460453954939738479361873749700662191631303970836617852157762549033724147056503220351022981944882920995291141697419491424023465234016913855681066176734462709246508874364355290752774320290425831456938103190482445753895505442602347571622801231118098723876941000996912418700695657895321291798712706637092977166104839318780059669128639914004898823528328843999048181754977695132318043723705561607566937421379791308388494531360505175810983804135072378386844929096301147642960509459766335177683619560559469324355638059422603279163121779656816643725514932907118430526758559363993746429632777286335497123815334048584385860617752925106621292605173760510805731056993159013081164181301813377776648713352218713249394256196454200343502571191549871595553697167452182013122358361086381442930140702202210070592046915454226014944358980352471288965409185269306441635759921245911137049768169856216681781133059508709780524219846450306925482830365366112903027198658561488946472217813034924642859669235829485022451167065055171869730409404921101446191710056807413972853120484922884389883694593488961554117874034316397653871186094671892257200817737795371646539173373588582533070134834935389851255650930037629934468415682241705515154047087513104505651934350979487346059388162698948037278360776291996061632886471447478970137688331362059438621380755293497772097171638668999811734006769044277755127223483053682021974512559456930437584543193839798793196874486506836669259985024417839075610148521759524277699722901198855587555565363780391807491070084759950421970859175655703295868636304472131831579019265448833651912634262439274824019810145276705549291955117684434787180776197963310194957582077815203464778727507883925103713431452185319515205162544787631923702901215149022723945740626418983030430849817560051343383210163955857384447045271461263773940334501246338719931899196007345716385031352843258195657276780964740453203196187066732642920872305236131646266770127327436978750620342632189103112484401883155676876469005864049653604907479725768837581309633590927678949389395709955270217364119083492868628989354237887841487014700574925115471658787707667732132595179931902762540138087873682591186602565726928877280460004565891888250448296690657886891740640064878468937225703200136195543773405897915059483369453957298906051042455388748115443922712065145772858859125852808453487025987228256206347041631694399279738801676491080256167205249154901142696856639035701700591723617599505629253723503242783630720460013275664383612338169146558518964959474507383555653164113523656958304423954305958839040433900003429124365834212063453679986085933600115026726987276425339136045244189914566720565330742700800163539676645384158524453902121798181106856664592281545615717428711781431717059587840271644553846804725700216557934850656575047622409139646554678518324698896546478778338836605792199165097411077055047055407167247958456599095305570996922291572016552226550885956016639930351521767214444080171197524683387988650751633093581994702356736747854291405104792495845044929129440642602808322257114315824408815064225730086291528677548951207229726692413484453457683703278939108417303975535629424859857544639082116207806065338944366998379118560027012164080208091118581260470001279755113840151990648298995974198934759135118494916292670011223638356507812440313327047278106714799091424117937558484850300574402692374770277220301008778571704642030051789572742860597411616961707358483852020357625964209441154013626956305891309177622027094310301362004265989138673858867048739811357385218019477576156931884636992930747906447122783146298021001452146077360094140617240847301054431786320695365194701154405842093749211165683094966079418755906132805465801982888808171611431663501161100627970826058449077219676953005795806247628681003111271754631861934096825869254943449782745793244641972838267361398983552763702542384580370816231168233303557341539351198801699598934262061815596771611628616642901894770780759989193089694385875109495644552710566866842576215684456564576756647323179535376562910530973956601863715029025219078103772898375508751582894843263059916696372582406793856460114852241519275534216434671462847161135005933096489305441241470970117312519179296697526029778157980627679798822272835089571770661318468680225732418215269777021837676566541485937617979801259984755977015169341038755382881185636778685166539675998088318440367426232291443901231401385597307891974552049072580458331552357901147260261418828359582707875084765815201730161337764219035080579611830188658446689411611679986613253506679585701672972686601790409521566048166807230401054133969304648508774193850532459057443793166656309941542639562170227651412558215146970514823811884901320245267478230192715290526325463006814540888531261134351925982447293368254079821488228140396422097729468374375271951520274484320685179280768461892364996294554482775383910911288526245167523388776042481030639302867905457031709938799717581768446564117355818311784512835488783990745726600074741762302726881490419273487755471614822161241364673180853123178202128078301882622452307257381837212432222252456345510593822647949569807974937814571177603313955809908401922546127592976418812377418097424337478360845596886122726012649666545347248000124771729154632692340812997423033008194309103800539680512649313568677809360656575833963459309764814166620381480811740254717504970964386038394413001025783382100911110021321773464050921519016831964255508908869281504285086746168886309765355118369946253797296948695996325436923310567338677512853118542969380944636263428678236925005529250601686247262161121832283031268471668790554904144266510691975946134540740046964731085841954887610913541127720733326062483515508581077768341205867175472552982454090957145952744134962504139764794802324071936759892552251335292237218767187208481618110646510688724142420196031781943868509125052287575780007996613181906697271932520808995384460021136942628213526869305417374177335738473176307124222562489718110775245452426294305182465296120862453146300815949902032628980221110178429668425592534125217259337417278157403332061885427526940872463969746780482562206642238305331572706156030338331389866335544588620830459660933502558845884858412511253667619046216456535511868980146746765296910498410102796744271495514786127752510610498583814394117094254420053942549051594167275219295554527880155577630815252688321609707685284916305301870253251991842293363707436047775253233873583965707065132138802928961947984220532394780125239076746754265075504263980198019670987478494910541212424514806719939751534726588444093450427477084516492910508603943669884437927864437328115847328392057345014179207399144494623249334575986872200864356250243289595697823702672291484417754304259999990464824842639990974679215425063395730107152301095894327244479714788339822503195053078514529665240114482426503737789650658640346492654534030618596439863064387394422067360191343735728710341871761852478675860844212220449757048525822185828233617346036129140734388077459079514791908882507628475408301548938701807770701243351631470900786431498286649733928755635469833604731376894185842821503496571480708949096039838277336420212437094857611840334014984700908212515740239952770532862695874813305548532132030994384203495965330827192922041027514897119028266778872833042695234214972773275541869033305529768460270395786334625691503252224155846230205690837291289844067173854284406200548465718753176572793677964201645265238305058197816658539775027388725330424522686412685507475600393854978361022166957531780489660422704945231388480628284203542555796478685742321044307607346833996487910930904045131745887716870490350537552028644993939823341071532864268886702615610053026929810087672038902763524821635036701804982066776954772098227347101158039449143956237718211700474862767195472980690696638723970369584217064542647143266436321149686191801962893598677614849862315911260586590790407623124736817998820080630399639739936038729029404762731453235293358691064814322677981760722241122593973461453037267854591133370001378217198110279747475128202979948143698930658265964391108158231171774824364026978726235154494840952622043987932002056304482727770629451619859733954953836689311196023744455535075792926000263058139397062521419272098397449121678088412541046390147544908979609100201504740485607645664967533135838028749721043561404984065989599564865183530457331828561863917614534116067256638029940411559963580361044676008752101016357304717003739227475284076105953836301210206456512097201847284351697477026035260844255886057008048182852786812627073522081589376048855301278267299082565680828589370675839565527412676988254275369224386637433086862897749864600096621155230825731989778970556314624487039578314299145489178120121273677587384553456859946971882186018712598631684383684771448361842635420579531463217227170312249195707344409421664751926755335068696577671959600268430043067157083829551979745957577365008218314669910273477688550356784151554768905249401852982739439794057519306865222377975866616976917231597627810805604491675354017509832968013666737185446295792712557763510564363787620682209970414362392436141031109755885984895683136864751366705331712249503822245016659287840313684220217153754532668242999765140731215047986434623353140452849913225895487633020900149493303185153175182808120971558276477130407376866011222466599596556927595503953063025671495986830266797190898842750706781265979194646864502196892412179087577492690050064157001854217244226970931155894770692074509198496185331995623409122627014901763722592678170867493227566776041120490256513132505791206819995271575442686559877532803594078206399058861566645753339411839670920100097312218201685709422920513565987001014161628816950243257021728228688440359168400514025137698196966609790292362454900969900221447408721418748906044210035311613404081756392673609179046037530230773874349704780088246658703495176680242882523182440294467682585134875402213985324104618687990621095084034217925800824932265403245054358514585411415879052237699876649369332491759401064364518307541698770190326684886693975744846055531976456970995663898891394267077309907755043487148731674792069456070481017423172634977888243121775712495299106249437755612321279860354493365246652517643204987571720083700992326058186950107363170072396628384133036534271587318507074966879055308093536326521802815143335832103248224084148888927641331176936722502169298343072889578402487394362045348811724362631742785818099238597289288122039074421179295219340584058543440916741134302296006111645899204863915507869990790274706735713543007210345829859759492334518573770259441310097860884326006200362751824836580294212850332656072049107721159444150041723648717077238577377347766697179939575303635331212576122603787972843669174807569767534880275479874433273545707808526270929763698419768729075381000098134804435603587064193143346191949311662180227187868998155719081281972774479263338573322119487611718922899927555963807297619933091804997849345637743263951264856979480572723841401183434754311297563259044525179235560943819791079589518346118940106391448243649145818427462616460707293779306641466583019801155543548670676048405917695130715447641480033019062788313165814540152488388482114389337339801818474956136505346809808822209328834670006455442826783243555495452875474083441889674402242156248678832515972563455617521723537380461370904833969335446909880253998186165670040033356035332523188755124025751083758421687611742921841075646974162751310602050465657312865107449157308419542345062054585008110448248920417886616451182953984691207051506886589691048956738563249627983721602423079128083635489641662527011170965402579093379908245558648440896059429515613060828267230067540766446564094558905974021608315011730610096410062436598160712574639867128504583161933596670406044108829702871292875851818616341807172342792564182878363091762103548725375382040317332055219481968303353252001808799190158842023199035876326011522713288661957839840281597581608851053725558251806914926670253051961197646490101327805295133786484551420883062187465636529377408268979488934018814811284048462117966279093465732020524421066647091576292622331880838109784251489970557447769342451167266613087492253676336607864056267886337462260318341298840137579449218094192690056869739214688176142457023755466559886273566451035210026409968572746651615847756093623965584363406030592742337005288607772706451982521157618321505652433699886780862843163953927987170354268722692392904519050992279657311551851443347694041833462558286489812635865887074497346356284775318720492858174305592076284667895723412316104137490895202373977758186754486311861050976787667199963833835189306317074009470020607666477632398232031586668437554551914639703351314625854511819707077296762785505424821770126106822209605177306412313780607891656383173047174489259444877209158865545261230473196929900680064029507406767254257946041002150688196798225530190424816120291174692198793966931738224370876348967947860125330003823186200253758202139462536541597203487826504649587184623765093577315461465582315373551815174330989332182419572685737392310347899779841834986159043360071097223785573700581223549235865666525286384104050733821806846494660200028644520661657063879616231760425982792877980152135920018211294292142125495450338068963632568606637080501543482746911569572009960650254322326520897221371143884040843530559690714839859657344324015057023679160308889476076795910170347062642537112532804416064835381725551226415648088736394022485715674843675931528820965587228960398518038247870524321404490195486218613067007614687071274530291344181849628261870868361720683854875352662188612856181324240166484880342472700184194198485958106576371794826950873266319448508413590639233021549575791014484150516097639672670735601678442925616235026543533455707097077464849425859917377505890727686853237257390857321570419990803731889229739825670291596603926008426703923755600857895071109782229556284588405058786052907396375840592033741033263910129761764717090700147571745553033268019135799657897212803967269469080839705072792382256391812836278033005729856795301281213547987167557620477627231588766514445339321870270865379778874668811096359091687480723921900851312027831672656071684683160225593101226918091983761866338525753559911821590187082170060710215219578605976842926272559801635557916902431377990127419221189091785152376968526622515843692893318286989017299976587465274156608250077148008500091553566796848472349978348346682440154101908831556151233797875574164611788078607755545234512557014479755864211641184757659054212466036629027837653509597721981575876533073724339157173027458672561522048185678446883255434171950673009490578326835260824766991360717510838185212552953701710664876471058731452792378621863997851395294539597664963141731132859211494925940843791210328769118050946305712352816291992408188632983089344969407823678245324688435032319474161986863566329497050650076021466418977109820534020047624625037616785599251901252120498427846158264124514344107629312622922239384555892593968938578892709161987665065961114911697482534362185148024740332094141968621390898164785483992150609113978995985397233854837673633171013336126310545171382504703980982647054545456455984134267990937346169279822275954698755757664346953419616889359101824622522346904196802317094911091894968247500592130178191260694295093369147251409028221140885448782090660377904557459534344261352949080787180500580933476752267110733689076581790861472159774362185837446701272018562612196328139064161363838530029286670732242878281302295142448896314185438380243362353407455946953191644299952500335024456393972062706047070146897302860843527935641208494397150668370822700203573063552143170043013170906033338452636442035089864255304357708424705475648533156649869821898815072767524704443424652122693827991185805742793784678928550773577425983377451623491547358609366359466810965505300733141042825237228574487658848628376266310450405576685449565166837098813687699856370618799970367089709598931177484023210076796863602079602587463768886972683079065693927258346171728230927018328880489372623053550120757107562434017908747503346413659846082518772276583056772642536949523267583080091728221680781755962513404476168152040572462819423493843294965135292088523195930253283585653951327304916369463192019168151374164066533245754152439088522334872518490294948729797090311671682938277698989702160955116528492333043916721205106018965395597959160756213441923035945259355477553224871405166305893760483407235375232017712853403956800416675394589549775558777122022699465945319410268510565148840241954043949771950788218236236586719594377462158189745881449736697893772010132159169498807978395871646082380866788240509529141604610217349250363043296862092639888593476135926925141616026436907103052122354642895640705717777022746487969868350691923552169166044052721852053606588579604273136343147192375823275650036543816704037656784214899794385216228556642384401259907043158404820998923375424320606349573635976658486933496415592176206443351282675779329784673385168841771483187881782946808665014975042393525037969003612021250921990991931612505446413189933359545189114581339118947420507181765923098121663970399815296077416652248344945346850415986731332590278662934805744528714129249632334487469326843394852137553005358703213346253438104493339002667852193229419294841910611193831445512118286289497393675820770490968197176107280914799012009537946175340319526269798581621700706731944593370678751446191904959411577810909886806662878114967401595714406367067942811967879632198441728104922479449672989549788944083081093887070942686470108208058032717045173922250829564733705898230018374009698010368627554377109083791463869901723941852692262285720885001996842437007841129811128607809228723032745174870418105544644797710899712708506285640091954660747644175409118446737310418268230503331496127387593251347223295724760193043901955418130565242581857790900233836428379216150662272530297048750638439206683453983549024996871433156664499028363517520291786192851870950801010245989373546305039911539248304326682763343027094815901585957259991977454345406007900544717599666662917301075762692497651718912676367443656339057568540971280045300008417093440675253248182450237244011100085454558417962128367444896597579670165730216650886676526604671173960543441574086163255337640998119573055680483422087419067094821518950819104890780877117557683670122358699549646751374899300298533362626060961528524076588224511078533200467545807550327221767453804996154702732283316817918232772807882048499948127884341740247480326536254457646991132208695560875319040178232578798937222773262319164013918234233743487412536132004523596184078517738338882499538049265180637440694315280295693018214358861376367157891757937012397338854326506426741935006699978518568879344318214570910681161210763448181036342585568807542282057177198552966659453919353518424840336367460640985680443995780125291065506935556696657682824980745294866938007738048528775218360462905557768768553870246051933784096147639194402806435984602510594078483822891194186567787703273328160774037241763260472044277270072691009759242712779050103031507789906646261315323437040452382078230720410005195175606478521051985617821083554644722606567534207715343413793487192862990250224304292634310467473551571018359451876798454241416845753356452486170242242485904146931834615256600014951205773749118630767943300347016741609647425289957685927006343817704166020330995034449759803158658686184304198651006636897199126099636889792698933919556098947275508383090246625874430846170835999974146290249439715749676996437275120518723746035868859485880085357295728798475267432366371377221845262312822739039605459946767644705232704406869764139403399654281242757807252105045438403276287052945067554457883271529440583786593115994199205103316808541093127250658225574429164292236528171634407983328619348494569633522251633283267367743807076580701971958117351649745984744404782016121380248163827617573463202421370752821404081220382774390282451826896602786272061521357038262355912961180679457978472700338549869033242984776108301777009221805395771830183363112236678093591879101756480372328610783322154331802722996607334374731510090367739590666128615959224422377548593705867973827574640857735132528604972121775777393911805888319999941774412363336053133339563837536463937571607684926327296860362488187170573145561628798283205031151586289828298934957668389968526517555644454841339330983195870815887363749914640496851883828085282459126666733608023724197495803805164230678250316013310342999616715328649725421852646066341562157064947901657335831480987133246149164680928803395115158405931548404015240699827208496384715821758371322318542914512060423383759950364891789815308495400490738897918061288759897451001341427980145379129233519838741316516354658295542183066850419842454923179897679199414296345884357188600138792523762722451799688895226590337204749229535488687869051427235819222088538990959043026202269439423957313687963523885869645016687238984429392180378779586576566110503285812329160942304315565254581039286791699412108846184822630516768733435217493464805946267588916410947818434424295141316068899678853438851625385879417703913017181470089529321793204225014909458074405555154051137824623573889719252690963050018397936467264906778386006006246690790834458587747242214748930371722818463766387903660055379081979418168953608669163141598454240290631497771095635039497954180820645505786993105028378104010276359322195877063884880784430330861157124616951868032018374004982379666254366481883021597424151502554036947907609501873555078151031841506485007093288231783871027186458665362794019982994079891047218595521990040341948106179030442927040377722673178446451756582699723041359299307089498867581769872657793719651842059682764861497007327709703854897523996036412376705301585892200053692967759644908799935280450518025805630466113764970259861167252582888500506379244578191892161687482303709474915910129523118849347535402402504396474649724490582012948966035782034655671963916599796541574716840357211443139119710016751710572489934694272640604903289038457858874721232998578487780017365332841416637959570296145300103809233305112139276751704547765576694265980990282237117395049564542508840536837016328636645295061383696889515880908907228762590421821666954501362525225625568043890777189398100815442061921216875569358342856561216197294366451605706884848334895953063590113485548336895416961061143357193048272966859520535029218999455393544175951877549567543750103467035558239254603391566597168993049742509976081643510115205228063795152814102177500811516596706301116103850720501430670170421178899683367844758154029428980986122143096591439688707720921522995584505287278401035656687948449920001491187530202354190866074360285611149227137130029981289931508804791191608843266072579929489161128386100804173574370142323915677996948329768674773693400508985418346855034499022605592086204335767065725983480366903440405627779007336050917935090824721385044887268581905469253044587478698771416305353161970910744660830448762070320584786934424471261444684123930676228537256829466114490451118631001950524600170932961168042606192058674393788416603508362698323029709201443410692376949875652918536307555854498808885882105135134305363040051752141525893868987416293577755419957469410230485354869608764587676328751138840606427095722173886383560128749136056919356105967934063860205879856754164984731795839667371309367059477685337218208560175531091969586879737526749575265684535266924107439723307029397243874862752153542625247309609850959967394678348072186168590391516660450831809594342022033802810638769593294980252123508625867963989393423955493623241559227330876402092886237244384659369589249611819449130622001829236267508903590735714719899399194360443952798827311616595528781062936166240626746076078635274278907494000552375665884300629547426990994089682052586481680548096933295093842350901666261698017701809643767799220368317122835232298937897288435188902920284417803500994956185506702203694591773845220230511801224860604931488417454711780134933870224528026368241364505968506901667985918453196776050247891973356224276831768562388449620092710330684362528626878066086904829090638896299997865285196991748846982300616061109661857734325734203966487752741512973106248994146319152298640501585529416252677060456400434699600931092897804279037680526060389988324143700554893640543509212915364083365760525872135898300775278292785840109812267200897832053296171667704167347817629593153402012878722555477899144746906153053220659352279977670759331864800146792191771713842723224223157564685093448137739180382110122473252460535747105568805340114440083008189845018797225688736335207915906128156459953168063024069860430942781141017920563977025728563481655047299242065502191356627141520960993005030369201080712813823065465053155511012390309250245655754819146084251541276824134175143756296516699165453849799661387708307088560582826173951058014933535770713599646875902784324551611031383762810753937613107534195841231800871543819102320024368932096722387675210250642428086194278354934026417561128867646145949256951866220052143955069780445121829640229852594304367335707299567776009638303975695004835928559440168719692933089677655816738219489102598187319399448725408975267006681729108925273885779953975670759188961393448605010653812812969663581472404145225354112402275387142861324775044103219380700239080767092764210475778205851728074807544697184498953266457578276594165698731004271282141223029925687592785309146101746776354320903345292290161821037380490386468379844409926119785607027304131672828744137777916262310327888071598503827024899735984973565111916520111289745077420944433395291943109524098511426445372869565257385388492908266351815496017986393539964712602139143866444019821932374525488794947941157409535277967898141041996252784645227236575804869936326594303019459248808468843980520334202534591069625107831877407745517789165021178034361285909815402333892446616914904342228741660735026042885412215863173324634018318021541162443380699098185339443227471213408662748468768574435264940367614510751401732387846066695451996717759084940227285293860137380950739019416453222803408352201121426725076817366154896719282301327433575321080743909010746734564028910773797655750305502031959532475687538101335626625114435190017817031015843248669127540216929411571526502062879101901220713979428714222350355525120798980836485825801573333454253857035653503345000887426042293478801906618760879887177935887345804246066555012141874965227354443152123807051146667596913031723721611593665046309854595033671248478810680901217668945419576992566835935546324467581670131385119921864021984170823747118360863084859571947720766306911839387589580515091331800894588093151031387846498668013338295107355393184063449317073044687075923525611358839600150176931943754180918978278075342576184840085843499708822419414098917018727197478360411902726685729043122545655741654140759273268683833732201920576839271783197557045046807885474733436101778690164803856687596624456892200884542460475406377262162136314425942155651503880873498196569346866719325622758862246954941463255178499484671183361306053859012671828095395835961613921134734335223556397596101969087028392835555174058755078345444071336724886448312764071852238023103811830263011324469458519553158332438979167186589444479036478791118697968736928980235790081492775618641046965537882764620650155553616569783864097593457070201270286163761314934199612655455863943563536047079649854034066218998588800639795431274732780553378287118297567401128709110329469961964312068671081605868366995438380033760971552294173924842658140623496680548814584493261245820824862217227920163101562296450839689478894211205848716002392157549239181748387152233731286499544334418399190661569069961951045088084747132510496000392345393277906993258772153649655368421409797937434896877478638255428349429888253493569425134320525027500961099290637865541897973065075103422864718377804676415667021457623784482711069499103685947013430698028311812177861623309538268576866548503801211206771910558181313033808542600419452815121306467322692765812424645602163736667969454808584999095613078550811558211558314705022101766794018690131750866188814273884769615951097195062411702274956247257843644704800985172498262335589785718708979152034045951029914093794764205540727664512338713577069840764430791626006886950862980442034254772492269909052330196212551853784096418535248778459179157472998108345038765362435276502116000381116060580834663751245904810617816060821688219048701604898193503552815904063961093729849643037029421538740941133583227026656127304620681099889400635181802384247579704587605483646844774019354898226932910627128300853052113593126564256384284930874860832074796024293313444734363920825151541351575680056861786386394657686015111394253188397358467243461222548642296311034846391903944939509881389788039496081066298983594911032919504580122332832013721620231310267756860873843057721628728169570918311747428114101456338031350573824842582328585450767147856045794239781443123247754642029918062513348814557428597423985356130534651078301549304843826329170015294978602828805409364260769433535993128908363746561876677581394384799376710591269336694360935169689187565298601085178112331181850136950843465129397483577867087949072404628634240531188190711012296735014648562790171904951481497922135892472308266050653540433901137817699802919166522900261193899222241719709504926931058635685660684696524121627680282265967679568251345254146036492595214247334749663894481589686388709023582502108545067380189482432634803706086325046574482547105308616293644269443930652217595593685623325633028067184910698537992983440345455877340772894551732051367301901746101226096603116313361939811791190996131424084355463533526643910858565012543858827851764838676317231475182066394735198212924190736041899721729898736796569117376247304108016830189866028711122765355825455244895115414723504996985714628463435188797526378582563406870792429799244884254802462447377182525689786120165406808441122825277069051940379378905935660162780454029197679580867246358542733576126438593253792058002644185345592174503615610480530203412004063564770042880866299467853818303333438127486046227673876432121195027210854793015609215044493311830742857363333615597749811192886226580642649467261264732841352967126311625116251552865198708822788835718532803143623732656330042838911329120606897792720802868236353912080670884800602780489457156812967022691576274428249140516349208220074623612889807586761165153069555699521464233461866568840228329754450703098767315366023588778286694191201993730728917476492804480882549189352832545714356421448878531163083998788430154080855136295895633885262158060124712102290688938752905314432445790390092658248281413280445691492309254626476436330791339055765663127106671354414621483817713867640745597393519487602653002024924674277354255053238951356652595986005173673474026148411177334562607527120614235985003759925231051871632006403504815477879617856449281571703734362022923164049175246674090623209037018330333518885915584389750473150727258098752962665884547110648956625976934974131905073990981702163277969654173433894417053494221791051020980563088972300467645815216822522677662361214490331682195667554328893389648650731357573526433791624674441592456460636079869086378150894850293494364534877630455296448436364709657699599044933039015057142268350267381807437284657517400720340848356473880151653190426236162306360802987639834931355674613526962140499877813927202907062079945088134773073211885373552859373914190224520706604350374914620872524838637068187835019111465320646286760237841266143818341826698145576583429728270060474055611107742247655266315751201650743714274056493251338008752358383570622250508902861298611065859062661773985948370857283624356826766633377086456405030945777837641014684133396038104987122026588248397894490996411061556074934165543099695210290753261133264598045812220544778086262790200988035282770134238163661938409681509260570937645625835531832295866801408255235414990408601715399897980914536823044089383338084739090905733836385269261748536726447513456918065216991035878243678345176081726007984871130455920920871400829988146703238061075094190571136475872030216950238619008354698980024902091604978344346718185075795510641337662236056369121530254140496208634479047185260982739456819618543241687590884756099027231160929589469101942624507209133674453163275242948846095928539971212233877518284751430603691332625515917626035495158378964028958966032181045807459575493051279282658864015450719329124106756087229534684649933636908775207541725643417779224986971614558939715755550697885851355859217659224324653577988179774154800843482529138810081121090003621206242884697010099030582332742822164161219000578414367480420747937638213952740598983340150555288870250797903868186448784426741819058120607536538298650489064932008027150799528531041272711636572914336099609133932523683052070139671631442699285777559823823915161069818709318895787730803190857685956872735569547497920085585254739312644765081782008322112809182244915637977121285384486123732583948376130695001865415015942997561816586323544355515707477048234322746473266072092651686881827086525712114474849062382516062870517457255033897852893804484039101078044731234394309160826110516869703098727097687259504348590113327073862585934988247253843028073252150808575844611479100651907872749585865032181336712017515635672013514581660120291699952866522676063658945268424327693599663730652272494809152460585589546153668756152823569747403345865082588895917898980046478372450211898577501909481143584602857340685147700616961338258836977360954386088465382199772923945163376751970530878983313191450036334365093237629287472224209993342991805041130997498959185937570249375716108305324373300229553943492344295909298375658605428211613023419850749604283111735790624080321780091752135747164737054761847639669733052597444099062395116087532075505747628520365336152156358193756969112662055428434290021755122538995621707033527397140221891082688534740582417084492740964647382828333415577538633522494404171326857881833238697532931996968058953903585800222708320111597433972262443698405044888163252504085153166450300959060047423139436673022039668525300548330321571122823219009747486522958047461941441496537985810563530964783896378142972077636162171151472123736316933013269140239585510333727693749015301891588664135169324315647035924667921779766747422216308326892910359368877536570182230183792098948095797886541120800772653800197337364869505404093638809171125866925219555256579703610473246255073350823976772439901150853713361581875659625430211933644451612801863152419962766674790046046848872366868808792034313597169172868413462715842908245254357838245521576326945005056330935924732855357573831319410521452505310732502519358068278750042395337727116967491332206666003706059530454024012681037942789258598213041136614566004726719437056959835219275525284807352054972196499885900566071638378000082873791608053249964306355922790744201659275216901761749314598949142579489070919311905786781924362258060580576505969424784692103014764722822907868630696223066651018043236728151297119874975217299846586370296336823740379864088908307893662836611239199071976764757387055472540282529168191677591226102174810418665761063516456556401514708014533081695753211629290228305869702600098285795732877542243067193597122377605656977837921416168204904696798788205501537797664073059131142470804936931546137896285646504957165064977186848151259065382863698397499586995792289773081069822172912993808929962005848079008653435081306014159472022120678535043985638425914458847520423308247305736866571101439471705588562763128616799272763004402483578836465702571080978912427202110243099465651678870526922662609519501938048567381150623445622027237450018213187938719629957145386475932621601949235487992333589714105378733125521942254467807414516106009101556084811639487235161362390442486844858484019137903177801731547319606435174400031916777713967155521355315638209906215686590998557996958399656697117776329309797072879876807561609304848130024555199807920027897410688907301811056063429693375953026448936459330425652937539187147414108888939870645621474413417894840319463788591556263806190221984124080151568655304973839046875012632290953699295088148612114369775425776049096836239321960423875531124250409388405749420262456430197007767825673438519714327528175923341274761429803847434037905655011909519327801712552734003903100862344652768716680749633004262172375386229881119499340750155337269602760388577263520601139129380715992708687636732304538775576185708563498221437356677639366422722487392082209802006640670135145004990149763780155947218264855426765782741452871456501028023152879060052556603450366551155039343864997446325149881953836328051653299137618497132657626261759500161968684268212393493007422672430604970938332186949245158406357500085468879952954342188219863665479385653294442672472741633097751217438155357006195841696369288850873905238961406985302225646264309091448561351538603144735946848611716641019527978609204301637822303053127167387312304587671092602742145203859281818717169153970568506717666579516792182872061557676712742622155188816258120404594030258167385287888992364295293307744700439252988725295925651365394854427508425490503591066580687048539370312918946989206015991561594536082166046608716570433173586863961323668248744086101838178228667418091223281792762634911753003315291810372702170482272640721007442493779127079198998326954390949564887238431402016928907812818958964574380267329498028051170744945979712322380484218171285370463795473755840882454078535899672577055784584888023496587041275519327709825488873907939811101310996550450704112611114635365208021814530785914952070483965355627201808729042580653208216215951883965271653358326315837146466611955443091306569939677433048183358197622678612061237096553415483174309001268038399719187584768349656638717116543627624133516607015369361220871927007833954683399272186569394878998098984366933292592544682940041184838114341260833629643972647706347733492889122862183173608327712337863858169204414115450612931715376035900156388363939550624094292300264937424509054140145593059638501050092821960625299171513149408993108970184346781178345901156991848068558197933195315935200928631397003675054557267958793031525708633077693058794803088873588740848130457061990234216859010025373517708952497219305844671273202327023558867516898900536903866811612300601978973334050533145627549485344656669493560623543774985337193611455876390405659324103423408833824509239185470144501249198270129036476350160720231998655225188290820046988352855329140845993011733103871506870460311769009284368803956618712037483784625553775107248321694899503979183339005983146612980066836901682175908903974188389620877478930567863871935038885883259254657434278761281747883488357146535951494781363623134658887194012305415960763185119791200001118805906253478071652564422195195417668786805028806243668588427056835043829729856770146634696863222672941978678413959986277543560595346737836667815060656010012310166691803569269858571598203604166953017648233237774906279368928218388394473678250713652031338297801611750531169389486448433835466148462143099962371201517362883436916289476027462085698832019511268996660454501389160636362299373195106631454678451785363143817584715489397209527046292699055444575088520413080758146245101218711168237603760685789096101022203427611107116662321232919147616847431784459308222471592233251411865222627481919287620274357532540741576572455964033973035454106472942566793972843262898399375720344600818893597434433350189270133727271469737406539280553690988643012003860549631239457793277374964517305171258682137528281012212219564327696493397810900958324641874821633405598688455661084208833178541031468366814582711793221563685114813562799640531587715999539631604796365210289423378127267406603708908740634664368054235065386422640837216388798352463545327636289241415612302387253328388217127132118620166632264326519762066210067269287332780523376862386550370603150406855833286976426047816412662890574654678549961049119716564547137276908932905146098730351524471350507190918446776237969653014744554166110872533085765262672494196732051554414024469762733196639485130384092206310473121123963290057693716057252674427661252853256284291901798907999567590105119867409036740360365469130390812427158785471703989415399343726870220325404685987796946439106617875512305893775993303150531938516119651234867124961456697650935819992460381315909094514606255988375205718237507868570212891875240913308045407419984553725074589104336687709818176281427001358627279402974000960405338856451659033587492004304894640195035420089876340721409562345263380334503816701415065300455283699279204610342673781776965796820697284695834933058336810060035264499053390029141493074980388267348895659586171757512647253264119646148885326867822678682659371147792029928759834023618080771191217388739788636515973322577926223731567357884947144653238623333863049589012196050297708316093134252384783103854633477851079785322279920595839634093238763349425445150269511362409862003459223910306945583861576478157190321747394984288999961392863367962789465013002466182365351698745560581304813384983206176932552091781291419707896707197964845755259859160151547460375437611785396531311538764006554929867701308339485833629639558013251596435944612753631146383795309868970981874023281336252287632124616245692323056788028703885725143002517226760522320492426528095244102188411803005610783954798029093933671181861950992025755543076287896139423181626886074513365726817599629530651863534561594630873929146751627126872832734007196983648686639429143528368360819383521172076280377596471989275421075265984927402505784322964942779871620360271345915707557827114981021397553253372624588541415216088047506180539084837412263416582024726022886901577063695437539975561035080850703292889959795774009700330791368114034484241200003519505515175955777492741940183629228642427084298649487426290343632607540609175523330320135346215692352827991509580069328665999731811049966692346556947542526056083121872764899763930888327369961971241672827917605555545041282481504352300763244959792784676792173883725508368798418458789661311925236254191743096847041507833934585433851855990441367354703810430542051539428602669906038943892729298387078814201436920387345302992152467121678082925345769660907839178753280933730511910483224121565451128981702282321197699760048921432686115925413012119605610449473010304081647122434571676653907718286630998973439637674780751736780236989789409104917308924555410293624078952983607309412395579476504442297038020001474635641131777331843452455628223516803040555994971254076596195723672163613883546273572835024526372475020820018822555852512399385952635416009805498057768942805101455995588881587545292230617706934964006584787912920669433281523462366733840337069862505722909100514190786808967679389425620343976644947510343882679190605715771916369294497781086418687524820952953021831981832300708573135423160472992715614355288705335341547778931114092694763628349686513014565735291882302160960679789825422042491068677212495618958458493559052323059782134797197369193419534978652769998483194467186897499021158615440550177912806853703634060831594680066316562651212768967684435132867439552618312198312270876817975765710226390180942093687548836331689325194042271138131710245341495481344697011514225127593513597783056026481687505303474541506971686931228906841593026771497157665395745451198334839612693522570899796263940402433513116567624595380654220126827034433947707107530448016159364802130908253094436329954769418861748549061797758182077979052455779401327294019956723853135437451947865672393042919616069500965958233866296049051525297993930599507930990468567356620260930547750466290362377795100017993733874735364372175439664480010943376218751254198190349898665234415229472159479396401703457870921797767837370273047692354169974568470394912428484736819152432071960592594449583103583095155415116953724555878196552329058449336450192068811376619382698881207506271752246632099186088199621348698307905517937774240291327387271831897227902987815533077167452743854690338254212571237594241923980036643036999032323326585699173312183473801976296000094469048545656678495132780278685833042716297413017020459847838570550757903032572671714468322160005436545473741881279643267032722946584184217642144434039943052724526500170002488788066703753725548208128499820983664449009152400941638294377290081861529377732414719935692812959879115419944197038656328480402876707973394197916855009882431636982805506566385212557580689580540698172485687608966093899970145428312999113126297098664647617560738787759373481590015907534282883494839531488136939816952090777815592514419079725686415612893747951581275850607719254418120006263091793950219428162968204721346963641451587664371664599088351106059851422138505617082075273684108304180725719872760634927675660121738620642721341892584056418556735941873750348198267536740959336387926028046236519588505189790624107620739595479570633943300646863757710694902788349440130802071017166844758099030637012652954225360208786817216289423221243146864746319656012955432612526494230748780123840072768656191058287008381534662005490313596088675383316032420996589373823172344376928228333067718965856793538022279702815331991521897910303866600257423630565732858357496863116442019793844348229019120092403591636079348704198862771532110934308102143901917727864254407360588374072850575709136855155626531845978739411313703424594355573907710157167887891982043015670625664608052069133771609123862904150789852994486230001973818686172338487835041208488413559454548126808007859512145986010777457898598371188397351959178930893199957205203739986155089090447775563611069035564375160833528330863854733256896453792273357534444515448159361657408423245739356374924050649240379152335442162727920804219590308546551283920128399107121499043788793803306606992600468294221380300022475700231942118792639973319856751615278873594953999136524006280296257173915060472465292469383538250694685750452804631592143112945963540552874344730443746872758791422300538546169702836396720069900116433552372391675894368909229495870202098363668450015816703524480016286943818100100391594879476294907277590403046291353028282371692033465148520987326447793903829218521456903954230524028764818205611749211129684611506588204231952453809435937207063287888955181286127545372612635721387421679567681249008057537637326984118114412625524463658896981224545915273072632310023044712841217591595274814001644315960564157243642755732676694857319964623928702894310807625285613799204695846277896995170493904300380355734871638791496837630110192062942315834561857820543590559546442579798360298661251359136926077928783142820833792516852223768627363982339146560972138613782800654076240789929640868970480358817800482585687478622155021236673408876766514897588418465775151272417512543666121343164429601456512853111410904683175073056643499596348795554221969204504910063019822445367574672786997851622283198351080100514913477539852527086974032446334844618797860900725767916190698957395011295770007657749138259354669867498442910501886317791468690176198686588111365509498431475155594564849893084802842984689178201156581267571749011155441181509512100196094062257283513957099935058051142157790716290039499554597825215498381232229294243992586232924135385613344799567800862249078944436185807148729945378582468885347930148273323688701744378487534695761332661112045050186389098979914896566545289143594009742524430102996619115919672071125919321680382365711691681087705822939836327335745207008015525931928228438515462864236838760296735440116332196114007886930289607612849358269097565793727811313600051627435586350884644000642192609237604057493813057868265374885907286501900159262080612342476961455448790779513964863428977721748597204668438038574719283144168307084350963499762128830148791794485625466996778659381854346837041343339994850967227070930332306011195300170307648071825626417264129470622922343589777311209940745055483432186047194252550311462971059963777609241221055714176165504801368513025169812491387290470071682985781816575640062806459657010564829044240144796827115483304326922789015429423186032811118650342246088005840318120913651628218052406274103946304352442942108128529113786335633383974079035399867526146188907514916569706192831754743574719123583273291602652059544907927878740327101205028767727618086020017656212856679042796464663546402647065274348009365668722214626699433689046005132699317256018201308902370869548464588833207487499453709561856741090163655053151826799868249216563540561852204138830798038180802407417356719977530827457089049201108945557074604173492216824217753942478917260166906373683262630559282066729443874697396601321223981769504927629983335481915638637672644691782977480131688000247578739616517207201950033887588217155886879957474410592785178041579982670221138998972381656689275078698525392833982097133672328697172963981159363915297964269402007553975501968437607736772621048559082567458450700110451069655912312685253153526271687953610653273911664375677196138984622548079597161557738317166085130908060168032156931706632213547801284311798525311880934666940904773844972232620187148311822699941418520601252214657436371675788631019072784185900059707347995476828377701376049316077165767519781662029402480946875929298466768040462775020539088521748466378391292860707365625112491823423953710710602788450025115981288534759070541587991859240842009692676067741783332077189319134514097651413732054384870993907539074457277221462282162803062567696039798370374953626152592908708078529412368188918849992226799494176884216967520813291298767608897028344827268699005076670544623499592173600897862300413976732261650773850842289802335454615567183758255267370907012598184483386047039964936883895957465852661081131352096276623721602521749275192416708068975079664343721950118053955630497570784977213502519681030607277398848243452254038713084305450482739888341798738396411296088915839335578985643348677079685588779309655776718638908807506382995020813358985537489686075662668174200737675987981563918428786470180047808709565370195606229032514061833976870692203798251477211996117767682640433780076592586825738385307991488851616440742845529671079372685875057769326985556565552608991617289075758648607780994079010008184585506335385541830798182456789310230746924633105737196594940941672759061570620292530802074037166538292964499575728107326790577027542947367675427993798385484939531304763705141451558016795469881702812789030959051995403540445020560143831775726367132559635238386687439806043901836533397656202638740579069835345981991055979058402480274729254796583471291952853313563548083323240860692944875268982053889408509100405845185748819368771647453907738906950238268255523122708114765899176915398757022042648961463782742754782824044410328916749868020385979829834030947218196605140317736133651926329629093616875680127533613852474012124486974221727907550569214343647471639534765523425115167669040949625195985589460195239979913003793882011180147068850954803838436951256540896205311631608345624824455959720226464239968248206655173195995319280273184049112351349890382448871721999466100798643147452843851945515744315585202721917355313061755748545417275065131438611937893464153054056910927432492209090183444227815540289964437461094912793947883927349496854700472212502064208597210057634756793064530697455170336157436055920404174273537346606731281518902115954916504990993838177181751626550931961558279515678902080114150635818155101824572641314930825254171071990379312910182163983649921983908232059393026334435065844746504150100048856790442638806785919673230582528181598211887197083814225482867269663592300715330490013357618669988136974908450102111811735229630425049601148245680183225484019656166512134754196515766145388369877921109217776800926058074569546885722699229115800538336606080452340501362736534296449461293608859849146966092313252631751521609404831033126526336340496122648001352047818800429232412776352281556118141111164101506266650809113874265230365590167082794240332818869656288425958776819201666617127195670092064250420133534107432280670722501487455708508371162225551193514176649676852793825008767275887523414439032991353479328849702024591657691714665383472268288830200354303344328757447636652935982671020106798476579086723959601883892851222181539460853262936425771744465207184492393218475639496069693313187446982594145248967501676058032696432573405660980900313827199455915663438867836977388833667900196357543133578424737208512353300118573287563111742453639257599835007961322062593857370151988166839823290564242393132426214769156455219932821323766351792711230816823035763310895079490400041935502054692848296802033660360130694278816623395447338623240253065795442292089194706875642886706374281481135014134978278063985762597331051947831541601909726300606091248277522265468383032590854774688106656559116824221656190539145686525404340560464827794098021138557046133252226873651664106714054152494462635622703548294804293483633998112382271099454258061458343693765049305052330884307988583983647572397679277517495825399796428444913171518199369577041175926400164527300767282418025500670498469910775793759025665140560488196485214837861110946049361662066235696148416661826534380540311128175913870839439311177669015711238158050187999066736266662873390316408927076561627365213996384305257399694302563347194104792992382190328852819304105614095711185163835158645962745632404365581809793257016911590658569191214758873870780415024388804281440055331653773998098522535604553340542265165122643790837098564535998438089739361059027574131152187023611981778878235568208917003963578371196684498367292376011562453269021807350721846987362990715815729760224623613146210281429786630195444880114040339131035884820057992207839257718060341084305056244357348437362041232621398175028575915630963628406807376256490624258662570941819721525041295315863335018767168725301498417507566996451533644728480652602779346268053991694706132531213406377995547205368567299876832848192195165132787512187607418887336340100947807684732672127583444522347638940736347903091999711599852411699482641994448868949178767869792987276588251416939164421066535996506769209081237266893104549133781800034672065403124415874601500382672989527295252653212516204604500081264626685163982850408878804013142088538179640125516925049160704219846826641278485223975522729640098357748830787626463662522649027626831777347284628976923537350064416506751460941485426059617571582438739535971553075115304361741716331254594325692297576038002923363917463567326503206009331655923555226489650233754566829418282717472587024691165724973227049582608081100775536652788921480452217843312481966800168712682553653452803163200144662326894871935602806589307098538139877976366366628078621968732646760035320432285629537091043445822159112973398863271099854918701574120243944175400663783628713912714998686257533195578624489388536732401065124152569119974238003644735961070637047494734553857389473467659692252513315061232614431969032996414797678281237919156597960053129864461508614287589666835949195644283443148793998965638062914867275921246120642792388931722621316536765804993819133693476344315605154846873475677990318793329697639385310574304771594392339556940314476293159070721203257244930269255163907770927629483980422985358680747883518102806995585004323623668815828210632965238367477510357404611688480393132103025789124765841601288125800258387629704117104726803745974067537163886808563403163318110938973700360268994315160902732655486583547006238201038335110282070970689047240802351056682342309507174608297859586263074278493368174922130778261574824697083589498357790414805797545302709255125607251943772897823036788545337134670067375293420136300316990496465455776815234124040638958169136810405737986860705280393547531542747767209160401072149597112573187512186268973064657815641228201242618494892992791216127829252934637067119078739342500650675469064944515586411853295581175867451917107719173850319676597521153416405177518237492729003692362989314923635963730786747834942325117966112892895858238025758956810365032688176820085414059229811826253834638082325799350066980414946106191704656937865032980372601944152045784539138839406965082540850096542957929447972851588434074939680559773265304178724484782035853592988819533952641664855189379802983583857460902144072114217702873110207425815276830043120080464300588919599557365293898043267250894787503726449205417769623724294391439301757871569446280247887006737121130205276634788214324000791502810912722614995849573035937618052005423964157025669489687193292699074270837742118866550400482884888443797573593179759669619071504108591388760367266272947008831427610924683611709186715030350701464027981364342982240947681940343198177602917188654702689089329965578873435713888170462928443224356308039848856063339400453905262734715493544340371998936283890277855702759407344235918386309757660972266775166046161530661990718935547073792654297931639675361689667198775873564213844482740252315650622914482330693919135883160208456363916619886733970823608132255146723523571259188558045765484693548468253959667217480021446544232964341934999702769091025184631353899327020903616991035171113312580329847547668412679389239954573361524848985704605575606128711962921025163893026463952838948892773047906595314669590516326575134122353077027254962496078431760993671043742981732713141318136114529612548305175321998959582278043255596613794348452722192453275188502587008872715045059324686750183343901345006228989356375268940474389135538869463443348043983175336262194707400491473291176242518559233230725746037159970348648263353165825771829522654384377310551135455053058266984275028329004868634156339065114687972214122876200597469309915361425902119895801921791103967016594175132838993133863348269395014757727168888425182445559398501960954682562677142418246666908155891450337265659989167594744614008552579125904348387015406063479802785693040458720213444076317230842511712982205291911879113451114338285440080222602046818926795058673461834107793168805479437065669081502120505496596611313039736826902935352397521275130918496180514848904086237177474865236319455417878922399289263630553711836515924997773483141150003348342589830953761269525334651989411643496115766511406251637002305417197404230572327899864013898836754976165335290425201519359414794118411075770359968127130178672086097180008569290036862407963420582766318204170130937137311675576247604688345334984826395054755536402478679242850252857448604951131718250380638001328663400263089599987487893243383525213371091261862341212229926448405773753479860448554216210827257999065533905167848357224685292823858867598076515748810617779605840711493489061971654863545579889518782476068783038122225702193944726183945210638557967640511338052532640651455135686308715534351231711960948864989650540252554908093206047767807904700163453130165274883677245288430794646727907543195914249657582049830715338641356660101378221594922597159832294813800722036419447505169022538184560252460664677249428489756476106107557180375931169157140938039373978311975665164650238369650424036922791891965616116468342790838326685891238811753927958138658248590901475950979313333305971322180707081851511319024581899263700900009767691743376849036487289257364019662300352326484967822056677568488863169109065300596931641010783126512956201137860992575334613808702541172951039519568679390986560542015680772008233382666555695283660076280071461580473516064100702529103004476854228368774397738189472700528233362731030411117242626235264206103329905441918764872499383147506781224301194559946693695553821018291035304037289567856378191883877755287966156311625540231679350791685507142978495419729676717901564767009185537944137452404844843544848376539038309380016400853742157400008301193336784190615021469633889125983818579665579424632327488929765022508807430686872361918116977016450149949159929058862917378989111379212172251938015184650400985142587240813251467379740386994120744030374078235712403388583959751404793275523339189882099609027760485578233704206405267666553151556048590034630027789811801084961037879435310986744989773756845416534419848579509462012397453719902482898667988335772299702079154586481531272517512804569506363763332622419103246128730754922682057866605917659975134782624743084670513587140299392043024270113699386684983963469867356929354351849251260320718867737412394535663844075954710433365643108084489795016876976261745878971820544444199334700686108741715457711155473888874571375027508600217265527218770309174385343431349900644111609059100343438781550616257187287376853296409984555101212947129463586357126838893763108786947597842522149090965614583177747283168877278427680164223503072715969249792389105162899395451933662101640850986923499511919010975410954868798368582667549253147851348169995419070058957779117261251952710049627119945939129386558697753320222151857570352784278170710175849391820615488270138975967315621265107281358413187409968459151947079860981001303194580050432659309258215060937667719332241290966805168884256778123615204582002036554099923409294760131989351089905779908483547026007023478422926986403196348342266145693171682064910419743732522969574012513447495284103639599588320743063906226251254420802716660605314744015095205937468983941389319012378492339112788100142055605529269946481918444102350827475430629965829602035625579129320463467356624629140196738195327987639032541195038417567961511471875127663721858326847468126316185706452290545350660127679279843630948746839501150316481977957041362679199202384686780827148391067415543828106485548402136372425486453405617916027979102217386103713707005135669798706309583636126314264320290427031808383983834144163982212635887619791476052636406456166766974528093532184367900190123747016394828155487177277901605793947139702120258081465794823465918152043812275908001201583727784403394182263435614315665365870246432820762277134036953988127644941492054911207533907993417971712284253827276419579175151036385100209675590447883245251277138501915775681263153838738226789524409560422560909667849333228783598900185223988999125320143980805985480990882109626293765495505884266238072350836947336993847802642951297473264202016678686535309790534755330616461840466135531395827843485333121346588988532156215680648660934512325453471160643765513995831187585294420210724558237267352924477144111163700977884323118398534963513682890176851395635550600564432464866502796151557694806335359796937617024099881774390015028470404877386102755210735314431547644277332964972430256780997890012309727391193761510866746185679003127302950915638430959110320153857946475137493538231774407689057786168758525170228411199951158653945623490260869405034008879696523440821353052473877636373729033578004933132041509285171247521447147197774328078753574668111652818114683737787801973915597785428840316169769030709018582557923410063270768255668042815137133825023394920394595088488486459023202744676069881638949848019738978819547339219764866350967242265422253686406264822327737400551066923352156460876761564975675238973715101122155693088098139478624005825184672700284844006047327289583485229299085959636142246699083735572936349836165192691619325589778766373817795713598494526541793373481987198762781477185634776454887800871525185141745517605875099364886805409005673598335475381063946219627494353946340832303868518627835535977179906058233886947562485776564277062533554547530912671779173956033933265383966849252337012238738476745599164175141161194569102857574720407900031870841337341007469777616268491007220592220562199497359235033921954886656119673160636216905084866461457564174430564070943233917474191342935560479582458695520463514452606710660483029109602575626175654940163401100491253137003846179356714531015705936686959720008911596398161533991236068906942354212161122784688662425108567985832488413499018472178461712729901808824582499474149736813790387710951681715390747030960536371356840541820267070988360092511112023121449101844282269106747981614269705789602319465707029898079824928551681240231408104176961337818177774337430898981593401752478486139411402668032695467233938913379174620118307473210598748414429343067382212860172857692564128536952453897085584069069804531342363630592133281915873162602133794805210495454681218082711794934349987876510179430043013487940721167889484259436115916228690474026471227979676826863295402311695417302315276888802068191027078805172127195848364036861467820206144469634175961293633378636194187090762654480311813435689089778583791268243501968479066839995281765822956359950302388435178348368697722477457420436246341300820537870311921816924263001754142347748022581498331208207992867679648447415639954846736573155893947601357846696581985309650389863987746490258217587640673357347234345990413988307263011922980844892405555366218708232984472350470158497049040225660148290624966859315343920240393516590244827424721329522732098724024451461090036210511799074526293781688539035283487867321446661264608199845625958510965393451696808044432823733971096032049021858046717578450519378595783006984117027205355381500923632679549603917996995908921901367900503610795072993128777982101531701917391173729220420884809009139884206645136018364525707067482049345921706559168910893651859994146963490635361697598956071631975390455279482940413171462566634834758159192674100409306573868352452862810057446236890548208776214747485577150100306138153453532544969896078008556252111842584328292937778485999173928072531391779638425822067270729500784558032272827500608123775252207037245881441918346052427474547818808653019689769972124557745730295394009215526120851303636858507097613938316984526134466444155963157182702902487909345700159862284303632821401010658735437229526570802935414351920880286688538357475334415012153865976350489479130673246337373182654924090473143503079315939334164687687666852342450455030831480532679409421937214186582738356120971096299265760752706050324303444985509751955506787681797691350708647795095083646518494904720837143164223730259555447926632964323479354913007517317244032688243501935428182998438117313337558582014748901050925815199795079311089120696166137935155508789293801776516607200473235141471959455718675158988173603016659712586886743376058894271334190772439548373454867229796009736163276484256809805948072436048719568229774138152400749225531095830655922416919714870584610893036829628486569462465242591179316079305547702035244153813334792237847643400673902528541358677648561454810800861626513462798973190377606720837762266282414846559678222560785095837593266813840153908558332931741148122082587950310541000244263694975984694699403818009281005226145945628171891004947309068423022705710380697960492533862558187806065372884307484548998767685340987370322664068196954185022547477233609465772140220413080874425470588859353891754909712822167495800615670413055147529299842876996272408032919886948772682130465622646550574253578565570138515650356866008634855047004967790826217103502262653764840228435265595984291330827881708070041599255493038759569478683140935569637377363929704657446158662119739398716529368785056902621809122650525525916650252220839916645875092468666412306642787760648708699913097440234198266345955849454589458382079751011123401851605947407525361447695894616498895938708893294135065542373052059817409556949304791006945775874682147311628427297719862385544652063524290974916323910025142185474451351635071620735853019362049055976914198141088277821629301378485975837640742919525027454413866491937397386656440111742975169385833465925124566467466005691833645819791656992884989243260707932595081727348213063868260124165198732809050997894818561050234284689541919204487696613796870717082568873734715206674706298997314438923623292321506996108481932475754429060971657024490383197131267727267528091665567950321696869747499691371769696399377914693005975798449788616678698167483403859712779070655689435312031698456131010945431011578082021458615330368915578532448392669168359850933821716077199559458028889148938066085251025007539948711463563532430356374610405191076453299204293148408468524035849747315067670328786408672542770464305647744848137759606867618511203117282023053181522842544177668545141752262446368996770861350523260965603355923005762302132519657112702643651913616046534261255940407974836964486185141659853878351489465241007403666556979911169428265571575957508462646052940729011605277885776578185858892963194118125702487700263703081641407452860732499515188240940137449291352812064603328719512782017673626989653529991655367890067195719093581783527286770515546296007760001992806005720384093400084395088476342858620161669020518837587554849532862001389516010905506997651948748079535447685710787559965582914597141034957126230739868470747306009480533995306592420831303401020875875048472841217154556263058254198083492013465462981752907870487899618860078213988740396933194327196795104413041581020425491451342187707246910218176738771513382024182577711569837363215839039449346409043596079118790167085887056330197253619250044783038037004615724440874931854205234101512778184880493912549080751133888415291219896917939069560706344093634885127910443446509828894094184679971477900890187611330870587867572599501732811715391592500125216293312467121979785141627968563913860490126740796636348566917060632019130159637886552389996076100423580377030897029177557831660351941681819583055488046510523209332883506640682311248801364775270027666639348806841440757740530302940946003187310970830718121816214489370266348037353095976176700776103197310384247402569715883554215100205616663674485882986540532649259652610805199088523263896861914258486972965227253955521614508672613638631007301162990499641910619613653618659117976987875992986384073018718003740619133392574046031930333157609287558706902597093333080389585505406309643415445493679693900039827829459507271806559805201005250065428970397808173079247909087893452037025244749345150557012429232918194770338713670130518604646857448129885669727966873847609106066348774375858510822527355315380637484867178221488214908905440960533962679434426717505156718293095399233087616501432226414067114650349837967205157813975595203076811840108624843917731560417841134511764290872904121028096763792818200267599681558657934055488035706531113881586344482019835761841201414802804863322512706986455085357325397047984540437615258028310392245645915325412245066094637255818684995845900483487083526648925747516421065906223689548227730252131592540859247405561068891823161725755274427342518227256332590144667707998138763564896245104817893475545263064031385283018174864288057722233282354449980482157118238706711908033602675990852844790101562199288536575873744171574130757542523590765029821262189847552845966798711624586024742111300890111512479081270445804962294230284794825963122205753204958264688815202100873217125770425374434411504468051042092160874282404085347051721217263150638482755885061044371667068027716174516932943269720012425066786811498182489370616837572792569720968799120945384540260187295407846132260580097138581197466369882695925693119028987477975484032492384588845761342094186544401550931500065173945205396861940977322548597559746977434651238385821738182641236537006259421700279405376571434475561151366940920286196537769392234143846390916976717741690811038098229579767530044157420480794924143895174642621999830258121791442974479389893490627623606710660439151684835675039956046493842766798406410822040686618917919573248055235374957864575765671449776367141783315623288035732925406186842410559140758709678755361924490810870287471006863621131302220442077534500401376210569746027200277181325085631509026782677901242566899228818488343585948257245620133401774324063528276701707223896677498736020749437246495246900816455654563624165803981631815330535278832386662232752492499805974942998395986805025705886882801093022894016032240219212581038792842211866601375342431083219135368426022524338349825892502751617217400198276349675956125327267379383813935886627588534373072038784497448663313268452724529823168582018997024759777749801054628754786497037905139725780192907483623169853132624668234614235658918749477025609829347478028279191756758916092189210797879674791636897310971196631102951800254165769819833679216086298898252363232686749597960789392639310067284766425410634887895498768379267786539755116111261186773229141772914336546484440213456881584600091120781269950892441442739523829460942667282751351128646292038212473673980099347874404594809152493521117282919484765916159759050254742813714566184992709258811686126621184243512837728030940157023777136859475684726745235832916730195608445680942775451480881206945878185967245645975366994459365500495806943368851901441221487301826453761304830440801631040058743483387124927678155762078808668876846149185837915031494178318074037025949242491680643969567340399361060070626262362274499973826558517526159852895675890064709483254115602731297359327248630937520337465376887321284206938453837437483913846230901691028282455938038701037295982391547582840644699290373296071315243948359896337463928892882247962810175539261212353140863293898872702289559244714779518057443232823127004367521370025199977990666471602198942834257336082046377450473440398872938894101223023015403512867554263946348011040745722788374573688552581166666395896098156315321093034348214775251306206843658442546385669317655611839259230573479995841607943574926734024141784334394064845118806660295461083997871623361134704216741632812512477707220687900181600855602308561101025649678166442263928091197938084971608167829992997860517841437486091917578118092989710991829477387886747115119093680531227103138699739101777984592743727879980661438010034594734084713531357974729325976686951605503796306262114713220205284043304039097463667463213582286128609128877734594033987952379706550912562137304909927675866916103998647456169375455976380319697672098577546303502232558053723781720876872857461012023393779690621635535712476740832959058214453888637152851851423539231812240785388374900707089110567016007109471956642500911653008133479421325592038560703807589452728743345423596958390524089769734521233366387591844076398352181671948747032117948229602746812027438331116550161611398396958286338145409630899699647856642083999597211799282344478821156839132787881467897357538126478262651834120171573326344801329928568824399555419310908815756445049902467824105151412506335757978275659773497605882572135766926953427652497863703939566960897465893437778551171346352676616756437637704394779283015710288498510067044958348068760957930829812171949313782842923511959476587698746984456691204612930354062817005277222348238067696538786640596170549827567444854900606263789668894367754001951891764871812384662973139242781230198789377573404291419045277020578952767251087762292293892846899785784444392793798762615068331204574649314750679097811433324511047112390626603190455364583133167316446775091338750003855816040309131014568727413228284001608311995409498539423361890936431320767536679925450380374190467356407937781535545330333866228411689893856214689254713313562191605897138794352942519635490880234184941057655611523903710476824899277549754875888791507687954593563960099990225183364178667778447685704067034065819416757751344346969620382189276715768939687285676605188447557707673699798140940595364337252928378830588506674111793567680699617205283995136522255441545624405634421016543697783022745829940577626307574674649952486676334595164594436903989019165123791363486882624191795310361003964114998082328985199277850743091597029414858063815947400778410425049716920671787013524497006356892518808560394834378473875275129953881926808236775587585767746216403109802921100132668419285590761356623375324509553300096960189295937068222354653810579265529417722539504935229221821718230130837505823821354928552842172222065923123010005464654206285550575661996060301076953533504925367190075587817847267610739233997488747356685594312840922929282109914333805335523295789364651641134215386304314577709497634565502824606230671299621190891130880459052575424609346941807577876657575562010716683894502424653133749832374632214296273673273703635855302226608473125916378578404576702951390329478166888201583029515421464323301565757074125511438832356644450312350105555518167847810117063451824845131323988160532120998525990840096710162741031071196828952675474282154221237509304793571506867954694450346769101879527824537041541296933109229395245399809950377089902747184710505037473159734763783842981010582639009746808563614803683625904644790566380391918975729199942875603778919489786115323514465827500125577151769295275688981877252645441528755178937351629129916819104169405164005273046328942676096607218922810252845439262725636797968940369324414777343556227316349134504869909135508322335910371200215240766965119717039764030288380855661433803546057354243570509441223057229486446404920194234129576069143681233373502170201512420785934783756943762590482213666334747753645055245962135017551929465652489362160019964444376636633653924145688048989855695610404053165899062627114914542398661061784076029937842549048023443879524422294835438386468332140511813279648637962328391913111842567726225743144113626920538865899614900163869802012139229952597242592829075555744495754628258584506867189484440455782367614634343970033846094327746059831347971782678538324805310332419494152471404650006842334923414683426553115862587005693037184737431426240936171892100970970643095825889946981572439308506393264646369393919917433079704987654674846369272273576590192812961152425391113959761730577869421185072000083557280588091376419446235304304547668270396373803125396859906352828950581211321766082012501872323386129259108283126259561968950816019913515444159527356874058963522060488854210147108169566855779891786016929780527107649950244651165916254540388381536677521493746458697949696133771286992286120173959121431962001393849198530322388139288376413135521418457381012322306280522353366567138779696867031562339301694077016826677251384380221346609775423166374333094725244780168149007114325755636924332602286918313694012489958317956652805216348064463975440067708577055595598924528407470707430752876502512655256126174676101324055461270967275224396214595209678400401355548015356619245469984338015584662661043164213485667147982548529198454076074283961002157754734675004438681178020981687383746664994130555703604326627254293118876347313854839686775134581842592225266436747769520868379977692818705922069687152774744419183478484426725360717472306114751877252121219258280106462422773268599647656939032131899739573428352441330144904716447310419609847496779731973748610627148523790922056136748879867144330606976739416948900256186864034439329733652077127103549381493526490582603559137948772072085577230996547909995255288544429513632326208504574499704285695102197182443981138259255911917021569364340258057679114630111571242170031689207622658880550347662836988804374105919117361729831281595097873528671096880124565604095766769487684085181375904030731393410428123902983916402076628804791134609946227325800298223175170492558343327823108838696037671386223312636957752730092065713965283450091175034823691763873041127064952158702980421950156572737371704216440830185988350391316965772229170475132950242101527216877552688933113214905170389835707373496067486093232475988187405843632138852861146772801983773114170454970991911797839788786356746066720431563393024660739903961511812465903582452624876363122316650308499762195081812035360987054647027940433545658216973724785432351615356458573785737415902770221181410842989411979003973470200019819456321756838576685703564756073341468007760704212907928591990740848740263248736993451591138943207400279876029336549160391159745832908861469595633192667371300756857717816698146707226354595975577813384201709230761836758611588661458976995528983638983929017436770085799975055297299977976639570095477994918403059585276753298314134714335650031224004223788700136958608143913336322710631356423533442715216431165444176311283247736526544905143315139092815331758049535583088141973721266102082757290858453779912556322616938588568157441975765099419830239818791727771091849889908442602001664949251591101412944425524383312833031175790403772760112262912841933801415517386789805206015196474926924893613013450139373736927474675129665557346794790729918471974894391288519686712674649568729930060480014898146191797727085399406814298601506294376145598039821278565923532912022229127647614335308255152760259603530828283085978085391797363154594819844740013270872873257980444310679885939202282674913584464443784231954169552265187947615715348986565391818651438249585758396798295976961640924444028393740968793626716880290651372096300672859245083601805538068231198610826029302205350736800340656884657830358929821315701794731817408889236056924173391724344877632845960099883982413927541547984803112952861850642255427290744706281012190480942647179531802787905918197633576079631498106075862432835575313156120978230563828806364587094097145602876903098681202852172866006200622949445333625397595877850540046351437730928967458331873968079968174973495785552248671461957330161340362991590211402888144218674155229388027465292590890712612767521125972505938499458807907436147181752338614221193604528784851045905817399681885092235210719548882540840556167713914035856851864835930313828028931505508545605914561433371839131864467925528267657239233129005947733529681968153846667603838389175124697409997802140718879665604480869723985014005568234917123877880709997496721214317569669080478030212573245229484958810208407375748359986052326775313062331186956013925735709936020322709900472242713922781738266124822287842066505951320414456616273676521020540075767481075620234376900942448406169142950980205045169751499668799837793299225493250631772180908126339873871897087202161596540601591399130680288436781173178019763305915290139496148135060463593452562222695266138034050133631179333617624361111205445277318644340271560679012618251309376607095727140052197351215353358111851433885052863409077744284786460870756883218786560304430932966423615392508240893342182088271538032569974540160307517824091280819326920607262458682380760063000659823597939731254527802316534128525854476824929721975813636566441516767324435075167836766617647393889651941571856495844622412912557243615175384258022987602890622214275412773910258335717250871923425195977879805957105144519398395802240953850761979135150929540583429089200672407334007002060141498432722686190543343396765325061332678632915885481340173474325021922063677965937563015462564133362233692851174099123621114142365271330069427111604007711949263150675799523955210540761337871569245370188244696907743377618124211621028116901297603403568091858914334970460222797277254231433421704837476972093796033891541998933023974779313055939026068625816784502115639687896213164098103632692811617567986924943928301928083948548894009690975325150545379479955636896266563561399135592488178185606292154976348068650485006539740053950100130353006892983682311647597474207040432373997235480317509723268797006552672347389347397484119792874961170062025580692044360913681261171240653509934151114117563111402783161245836175212069228383558660170582837373409337937055568098856161304113303376608880518626762347731670844767508465200799464397884210677457937584790196755238740413688426447943341930835146852618316250011147891710124700765699302726342425956573955392868578555311986201690656159926516952586680035439796282232095601398335042129857579700312276765567559573078660556175685893933835644803869030027720696625480398951909183505483778001117169404820878108044222270984000659981825886449763222004380227232560437796609329423370448539139058495045175002095660137167598751720414659239665776839805988654464246325992431368108165239040061587970711483070598506562465420473032147526844218506516225354502465100254485298888305500240444959656966317234942391124444513669446994693555926921457651246212175753413882343748341823213244485162812231244053832000658178611961027991963795012581471230202575350095314907034403609479465772822900276913864695000049871538479335486182393897042050313845498363427502777822844928560066627279280597689035157390209086669309924436087396333924196567597939315334433924369476708547795533316432244288498797961834751699723946458743109371906156439191692364055355058592924628187966285051885776776811939375279412766911932754357137207036412585138829094754031453512044108859505794999696579993912893119911208280084590319176913938458330062759381362877751478203564406195010747443127021800427735546093810582376921483803234203028644804553535086891530132057290813473957436809905233831989744866648336546175483173906857374000298685403915398564501533363474984203752573187618901917956090715134145098853454494342648460545826170909937214298406584079248499907383829852038970818860751253578489786240073956859462151106400124275293059554365723456096516449175073886292398184734912296340602291115104591968352221886182507233442679765869223174046472671358090330730826135966688518582089946072049447472153818340624948705535269067178652649757515900539747458879894605406483742714809229023474081666519361112351284232267097710981391269194388713879660945334318818221411842566450431854657240657592986216022668582630347571793411499670050792303555123176139689265992853462552976315157012733828353519387843008300482713072657518281597450451969053384353204153742723671736853702657469783446400783855299951971646344462409736515978028902034257247846232019778233698156124290152333805537453657976575947618775406503093100029516315868049193970272284626890962891869588039742219357008156209510102719576238040859887020014489573069935415142060321296065075699935077567313569250489357990004839512334956726419566242878409733653556791868176182508726390845015186000348966615657565376625450431244882626026613947332494363637543685455224388163531516981845823041556328255578090414878396898972828515939503885195031581904051012505166250628830534378633376877439769559102279676565583952362255313405406031097808995397535578670981215437492726496268440767041590667317295708530701570429904802853225244516100181309599197038647663166164121282615412918454189696107998789593855129276697107135290574547069103290915226247187999870578874174340131079494186940453685841969047138706090732987899739929268363784577252405879270429217813221962575385081514334293479484591622172190459389425942264363809411068369330543749694085269047059067565146373340757714507344934416992236608147619696076290455243053091324433754572219385102657518129170558387686584013087580909613310120386135626438903217350059519134614356889076208434584051579358941710851374036179598270076898979423529872735061040019653646663571298156481664262877122174662704372326196311005266487664046077374457429327171715756159722463942517926938701816156835391549919579043533053386932266654228919794098400445701715309583791885108257942875681393310528061285970816186248328436723249648516403195029162856030668659373941263626470660411549033306322947353122023411630717928494332016300107161749446553524460904769197188267371522188811952589340093962140843976222803261190848456579769928457126220142119956080921871214751598622729070230096008602767313362497764655609809017732120415185402626290004458374449959224520771666922057121911228367929794671325257212235892338047865170231079607547908724242714992256365930639646042711146722499096993198972372610988199110608665356399614523228390719536977517702544984203580562397296250720317284846028245205843204898500729321949544031885443034470916762329228861642785368818226282047347353651650959932208055118493935163807189118426430783242261186368768039609856188096486731996775335008395832920651557521339484258152797587936346012667023912656745930040147973842300392491649365612374932404172474625278104505571445602193865124484392368588083895897768413722716743821572978518228111377235917015383608375452019706314835907893319271711082737411530920230194673708041995553611234950981692898430929260360156386157651045008195023496983500190504407521324683248967648472436360853222609112447712029401938494327337945164141804965331059136585271318224180938199813864132178932848221718299293812297018834122736895301520767747339656835042149440453392864108934670552781395258764533847611082696412209510119039609697592568750643616298491584788129903328613897587582058906140226636287103671277061597077362123055836587519134362828196679935764016038276763734779809704242549673539527839783998790965196773714305394861558897560742976234449397766119747622004178512724415641947297832565357313619344949129595917194824173643938193234215103614901322099925906957042009158064499517044016078152759476146765708231366591791143296772419675643171312868519696380679138186468187039558207634839427453941415355095434627900914520203556534742415499758749339131621465795945411726963045669409750002545945798082714309682480528780427402699933953940275416822058720795758602323474223180366360330140959690706327625550950061876183445620305130519984210844144827831280195606244974670250469159276122269066483818418752718952972415729915827173697231278576670765715511101082043797628421013148739114806543177566888287556608722756903245410640589987199558292773733511249576387068684271248272777574098356253363893049457815053347207305057445773470333947436952740967081496134196437630968777061190090052463289872804658707703563652554054590230226998865289671829213589158902606269495059247117927467529085572125459678666794596590457850040356371073058230642969145915978477327605326324583415671786724269831994232115973230485644202942181981696409280544612982819013145319808674080519037711104941479780895653906108513911729575434495187353635487265673879664362024623780749911612200438848183858739743384315875388599213127193475332975623637883621366846094038494119315396831546042287610959705269294602868934254511729462265223281392310650219812542804263194428149261067974138669532462376416506650133892807167722498956417862091794746595344351813063371870815873000592196150520908450981119839218326169943674007108063645900837991328844099327763815496006758150371966795493590903937473261039105427182885407243066049315453156288163207841122168260339174385945892799435249782211849615579875951118565162499016633159659503240770562440347412286935223751450902412734869050441641977713301862162514419828950827662962800458544336501370119756556579839910292515264019586081482729086065493550923230510596437966092718959861010648296315524756308632296360726759729546336720872746074057667947875367094006130425857650548007266997856272393607669497271771697097475457573224497816081617501516271423921156538631636088164423975703381267141417729095424886784428514295681303744151740143050267875577663420892467589156855910242957228585177798020126992873396453632633322150674477061295182005467604423809821726389687571018931668662938335764962305651891404692743496644900349863677598015788569121700031318782215774570102276637573701790249075588935395386676034520508508361996506597449159418462035160937787832524463358349286575907563915788227690836863631269448609792815992486023865663760315087967278276853036360928178028870332078733350480106078407750225884312205623444913371577764167702979698428241016393735862442363508670899546037269967781553136447880928733873721851779167180688601724773067179846418314464633890655023952754941478188310518206457938558143017192713631733845018173139483371891970083319140018821506609838738079035140723963708593710418360524614144344523824099708218226430928413591690680142003688320851934506994226914068235240218049819573429908092284360316481906884044478061389809632166896663609407190214325898531335098964867466769984017977434143183810558165248315062528070468895616523617147959977492187399107951351550026330436130415388120917288836477092751984744874022936406916243072407886091522858767953605377606383861729661132960340680346174293983569105196623250208060162841637389467579342149041444781610457248745942181896070820828310050812785312589122987101196495949902514733365809049514590872158577961176664046951353670022559772812774764602676896356164898453346114053377336124518965741442047778489441688217609214000562371701996908280435511786577942354978086123488696121720099513923108389444535098858069927900905798401358564086955329674919312898632660234033002370235217412768610691164937129309822138671269988585194845001050125599182830808349003611332362152579055998831234516495162443731006771897338300178882245240295389450239921150544136722382746210433842041745026388271169883822031050054413965268128799264965186668612978852181069352467231391959737797251386269796298209644943961777970176054978611120915144048027261606968718887201193372782968432844581336651460341104203858911570639227331052405566718892507341768521626705231313013569827274010672371491460238658859164408094821798854123880551409682952950243410484810250586397661961468281087022496258839153608625291718290954891684349226251243802403470518675477746607050919683698623990398432311685596403867325924138275156741465451970238310001058479840188986682418925164798963675779005336933822240151655038299584344224623509024392789996372179082054910018997970193814953131174345488991639411364987916908711159013523253296453762309279888598611827239784176304551272449184694237195070646269857790628480130728693315281731400030625422522263371508462688122013384142701578235769454694688582238351397585031237111744062768998803660305032283907303290633285216785977896811108108568861917703590559962727638405457484175918999263614517993162585867102882411146019508851062136180460007263147449699177456691320174639900343466874964541219727984356747451963635324903448954224342894976669496692443658042165636013832060118437429896932857447758868500208093850413838238654980152358193898973631476796517574122525619150804021670864031254282090707470011379026569709279811968619182636716835173766918242343798784197448163583908247347420645664176038221422354375928657643107801836653170672827962620598518097546312404530496149425839933574603692546433013419602594530308475220118040528501685186762286492833265901125136370791434849918977903101416324990453797982553862270462239767266075496190285006935485195471824229471014174754670214455649600326212014058465164176660213878069605553313279556632716083425598731901013689546998904336261138308800728650579337450823006815074336910037777236870723655403655737637069895008156891906412336670723156462700458507297020649122667202655465690023423043984723022269232238057332601411089841329744648643093087601451077854834440929159929040757568527289359477484072926901373004479156188573519774533638479687943833843565509384431520955296390062055964124945485690738255515316915368703553856627438001384182832142033251940235976406415095326973530805615930952398458009728775817600333535001004573799191022253273326563476767015302323407465010706362158747815395796956093588406578584032508535624569041563262142997510038149997721499007888801605359573608085137174303421099194559590035108887867781692751194714525182638153626361507030721250447434542605072940991260150715479642861438050176680683590098697551896479003628914385182059847429419863521568416719673028957859414549055009763771279296154969893133062189797784019565090245278568281107898944663342143265041162981609651355640097995241519510545490379795810494997015776827665796814201449056481318027997591788800877089452232464199286002372603828832031968135642526400536356745905231622166127854671050930192944896163111059060600956798918457495092101223726389960468334892623620076557540187922928219980119313751543093190100835153135973832757374744546086335841686190288506245487234755657295340371087404390886403947652915961866813146195694061472202442075949398429276201443474680828627817715453070705282294101068316639882756487796744602000193839634936474620980970790129890873279579018590479929764753496395386958770281532046069680484915765460234370398763560644254323618367884537108187302558242839890947491100714391104277019236769762409911133183200635490807025400534908387212281712011952354727130999515599173590114503869364750467128605661577609778755977258795630007319551853399949020470016733264995298994665459079355049274103842315831080201815331418063190296295045475890078834829008837404765134427811086260657362513659579715394090381244808027386217038204300839873329926743336877766104983736984397258520047282423268185236038373748571055305126350598874622601508144083737045608207233351483360582657525482817830941943668685747637179504797114311213899216937654264358820178163042729603506539108666230761903039512242041452472439143400745872652160021336234777508233885584435904934611681911287786942262177350795130769616457630231562175669837708544815969052332586920004579957500347995654259461145684241058895472179344426354122875177985390282668070905300184919229323187116671656930461091557492951208056597587259232798356495071007039244463682159982720122985441583089322914188044991964719304880725919128904990548033789586377359214505047186305743402026345142073469778618791302977935727511233042048422603291280426637449353379217662341457994558840919173284238780849742887451837379653014987602778964485475123039873269697983411185327302018747352871845638917873594223683010339707389750135750084554648655265463299604175182289995223159876503841982515206555011829227719164229130573746132741738993860583565195386259161505179236728189037447044631471849449542006298590664197796721637065355939665960152838463637833390776513254892741957411472762789653058653416203733351113183785924868646015561872245552587900791948657802235738713439667543129261801120097595426436315159743641098251223960941350228212369605781512737698431584580510317685154645963439874073313429027692762222058935012373292972057066675393335469107336261318426279879271692129524836309962043701234825761857537456984945418796161409991405159805853248742178758728219570507191527495176479347845177598039378161710699679321352894061856490523503892766795592121248906387264623639063100064789020703394678821756368705835653229245018819655025770444560151066463369152777681236849587602499955624087621220671643301371498838167359089054204597599889796521348777353373548706160805200155246552814049183699449296983340898346242548733770152010349151529934468120970869526775593714317659033531722725605625502926818267628471534497378612580859766896769887093959901423869619448930029343641756975526415639452943416888090772527994973099552298462669742465450378845016374236756029479795593180816912500001933415511745255792761360814450555683181360469544767970631530671699864039071695287256686544214047550571358929782164976725139686101658473227486426240636731414512049301576701979097231290745210930693553846529066880259668249194395364306741327508796837159463482230129208870797521974214306725635251652798141764028778068604231428211062736070257065701820889025217482251732635134353789878609630018809089449899113092519198804611954263125876295078278233395084460368617567858530795765547913621024228560224579203653166590773591859742981610908565436555219290462488970242360760433016237166438023278453246309453096499052685594405819188836831362788339748011536355884181836548673123122713614094695404501304123295424524219841987229708092363140740362463818304425416703768744946808350590829295086608977841937403400620339247035257329157523295585762744350565513372954092296668437592674157104747975147555269036721557790552538114945913705367857720684192654795691430124441594929138928070096283061266109927711653477003382268490695491366488798868409158667810870675917564159919643202217144527580944081675209103616104126557966553688436348239506297271730014259326310652983238907028415425997944052780247147026758713190134654553597577177065010065329095301952822188331712216199503834006494934182403208526139961373318641354044220389057061985665884398441849339549201831317710303819612172833202686013788856522761043497031316311473231455630012227728435953202493711477528930955651201299489356818544663292103169716104133168720246781233823084210704362488242153002015952818099937605147005768638210341434705253581634298847060106691423118167008339927815036512629206434775469798382132136103354013887787034123907019259860063046124572764972119070358417505702977255395271987811420337484760698352010075800299153236780368837349377097249655693385762272539755278127553171464911745459737465473096140847779355406237790294047458331454139850184565197445287563695967252428969979287753353033754833505296518271902384670136617952106740613367927407290319520445230826365854759869846293461587080503272663294877873394883746791422468865357058308401549056557246641232445075227704075062595100610519027619631523515698711621150367040920807933219985321723271727215998171454181565944508303373745768451032761158798086705853942369809831186323238052493639755643702614994805044778532015988673520750498828919056555724091993591156655068640872475340821795728311477950153270066363186323377574926299963493840400355253975740991523959500201953061186528907744465884429089760143091139823710742121259910660505171911875326653970047216532103414512402987150652664487493693256646374404085413283471359238477384743757583863454639889071475335986712710006299429232545285842979020193898677782019937300526440445773985765959270371210204637923193463476192211557271773426910487286441123425208697920995120140700740633299162375789441936857626463743846529414973659611931571820633157253195071152740030747723027432860553512691699931067253139202329641354689182430218756183991218800559670126156694890954236253018525898670941625580455731615318766164388154456751148204773275638063348466528638065858197872370778553666787696870068836227646830021336116121017367668101346736810531884285988840634676696495963437298160917029412616380072909717598344089749814621484955358160433085506634183254962495452439533356511760584293510315844362972005797688080102723551212124231713017145625170018880732228395838183003178098769808344789834189301466980681977512151611299099540129079766272820386828838356203604808768893216012147267366859289584955217804414782872575200823684477229967647586443400534492645801857060293304250369375148911587853136905545067916364518724725038003477558065517425883916019374735219565695985014796756022388930721368019429920899403204841553530231471012816942461033132438169716535967919227689175680724667801982927664914575269611806873637499713837636991150927967027098626005872435892515363417317264332095611093099036295616465037374840412376539513514688108889713149383303555379657149710510544938826459672801627900851409698151096020931810815648021553301792548633515242077852222439475668164838966983045226770844297980498350923082122203726267566917600457297688790322896840734376349126721050929009341148558572690921496411041146897163289079425802685875985192709316126639297568186633959472134869018483158166558343822753548511853396557179874539303494080109846883939631448261757249193678022863013468267106823946252131340634772759679008092112528020662059107293256050873871755340248574885024317946190752267738858854231935195817710592677858892558559155509635776669986775361561480368202744696790401433773777537658691045182933378269950937481933944620549328378043130068864251299563466614072987569052053297202927665988669533731813650065705522167233177408740221303785584120367448457776594885003865235397054148133702900973784428342929886014339611562854665007637895970553961766612994065783766788834741868438956403428919731986134796645738504845593663310930911643447634776469848832532128891159129083041208187140636079497976681132066001468143252905148739996513841665643303688780349855161233872996946636378144529525814349656634010435356814043696033498374383919562918983282844093806279079852806537338314977726660550615730630987298842878592776221252654208157872357804150930369573727883981591437010800776737988294780124721750289096068045553556375723142779289869536827190010595405824291998297854035873594263596764997045392439013533307441448455220743345351737095793218563196051787392188426413342080960420479097833099851501641402954657582366028897588446153444308770180064791038543797804109885860679566272917960278717615139524603381700125895676569010129595477128611748089006677431456307843938734631231363231607199329151710078657195760926795086022651280030439698431698076518216447089537337594424854477866027684414296336031013680901659530565078395510776768664794535867274748908734819061104987449240199214033285665400230059679092566381181963960795718124340591717839268716227731798801721498688981516262125115596096223907255098931770730516697313112876513699728987676066797992037255924757504239767548612788833088609249549837695693144722444110386692036905010876412123249013992280859130921588051858015241902625607225344911900043285116707065634821600375186314249946853100612693417445118102671403745702923257769294650910190291550370465182560779313188504883094053718561953215293273645462827117318921205147014355998957311653673811413769071614054495428153655787971345460831442053364855256928834206561725503014540803515160612759433643431490615853832259827223610378524376662703350116086902654052685304746011555426623763040626905470541536449166267422253065519620796380700996610683639287611942489014780358022794729390635664230983110748713791855777855037109802194882839560708319286363117325229494079045332871734697100933617420503621573538163496236666405479481151068824979198628946882567777117239477236981253977417948593989586241351809890139780781610756851462271837555737433149635306976883254903990145095281679756710966158343302167159038155404872195656240562387233379291272359995627306998008108047726445126402765398523630432457702458602917129711856160769123177017758229146481212478084606492402224544880032316256795328838110558181989507447062427900410059230204893992723888721431613798789216396039160376250297154739372834594239611509860553420310463090359759978250387422743225810084903884840802571895637087371362978379016708344003856938196157583848376637776523342983908409910269162250528565259598116516760194267154849906534035800524781781133446633981325070839696998021368791326353393203219631604930886529469453509676327616456148005099130283107132956654842239167692414894041480352770644318980860105489952677902099586346162950251373119734502254596215628949477307304266223381979811321559854244357395675279846499896011285764574947452038112226627546786735004815450142804182274865536744496897104995957592192816329824832286628489233770558306660225702429451467448633814886985006393813430793699566335471385513297563868834977506798369561272826194240179981194986096543535436565817298190846186530347780972490560933967010334040258610223188206901940966148651424658216159473662249856476250709021908508426934619367686264884245888138611529309199134608343729003074514360076465750026499093177008903254807586958749206277595552060137052128244972499418872356545126149035419682880004665525408402017543238947794858126551304043173663772092405566217733020573890670368389338110184337125988813863220753746316856787355236318179885532753141668495092289500228544442544995876026716042397695383346031774831536949929791116680263614820330690661474370397460644542850732214976316499285049883310901111231384022807105880226696190556882029929305301582451454900425473437319568595033658231772411279603207356568656385693606868884423970742716056391648210409838265707167408440022689309958037441018419328972634574014680505972562950982715812273760735994830113961730233107506803922936693505581498813607936628376845302793659628136139571113942462689183788098452110632447221752723124870010177855190096279494127964894823242942330458287156610481866580873453375509762089105952920400039777319893978395387314063928319110429424962278871174059824092176502768901010079893722948774914981352367377643362309427282105210126401391975844493424697024894936997467071868040851145358203442838937418979282631074912378918939632558731359565488342974103353355219754452730695968745385975032057488719382421552551055364947778478375717064543555632232967874063093480389395228493587443369950803080816851205056942342122779593689449686732869769326881813802111877802766505517275082393714220267705873941734880219273795327885612482035040369702938161351103036500521981692923830285638054408414330566790423601370445016319305747580663787911122620102959608734537062514591854214619032362405938537172834569028885627844480371643205491464247555785924515025687674662836764156570489416827236033753373103305617621653112177782902208721564127779781280946389072855582291567525738292485469020170720449599051811271621513811294680545289541770105093355396185763827387110614227340312197423522329923147650675031281410454071474424778155097608649013469078006112990123930543114258331174308643184087622429740399025728397193476098992095240181996940442454046292517558900312836721319580214487039667043728205551198379325470176403138687417401716323185758630641519738413547384225152385668459369588496112654060598876658440942211621790920138167831915150664704939652388512538622660883581485371492829208077533941451545455628698056682086517165961513441990881842980977632559037875326308863176840526299201782751785507308554375941959281104500846404569036450875795047565470085803464981602477101746239470474867616937314713568715922927638175574928911901681395795631758545858650331281085065359693145614246257645895542189796770954681186677779944376497352268431575836820389818297577934340855161191535063504784272070157962544326854839690991061442759933068505038369825039376013317323406432658479486519758627506413707807617944137322153934387565061862555551599003055377160621210620391962277745802951581771505315126659431146255714981331420238260356992738633397000538111022527231058456265768412517372627220116447646722336729656040570782414322411134104348918177120006869776750284055531133583060888159449840412725074461452470680215518910579576621664144154152795198189685858813922467682850056666417169122459496319449911218520997839818694427222642828281558646728457746201275587217901977889063072535520083461426903871804153321160747382347991741780625787883429562015223693506643444127660749099118489796346641277424519312113902340701522653978713327894418588763592757057614327832960923453702773849378837145134875797298191285821192186126523117717284658320395126194922939228123347333273799856557210370592180360382286897560887331468824161593455642675144036798124093028630995329190174004091832056439990277375978600623244590679615312021736180664768811432167448881003356456793094773288413223481079306725240438349317750069052180079723530732507793822978737051532942009249581887484527284296096775854446897257321764950668494402279692997626943213936698908538107331438328614943198540107588723339039095034464785467899162801964125872286379121271628063230564146476672796817019983276172822616740055082522887095373306879833160042329604617000845347263620713398715756498002048105952146684020045243001464910280188423513596266463929153019842447865911843764677336080473140098379506027829323870991160972332154689806407859058011924556498840378868995550451953973872287178948342596457500745268583027800665167589210042565789835786073905013439763180020794181555125478664278292757943945700599320878997135546591921416141808759739316686403315034234653011885299678304713719306950561621980463209398946200529970671481476143743509347555502472209733485726308945603168050705078665353525534654907320065580065399643911444457167513101418295012455929605383767721879876331359170121581285519286761168827648004752539104150509338585941613475685808558495944883906401427949396476038547229211589426737961493068132615510502484764238938869822251049576475483862397775425026873461706198125591055865886572934581645949820701558033132644488659063061787730133883173791500578803274707404510668450325311059551043536309644156500606167086466440451156327440272261796354120015274390536716887849238324695158041113620664926035176598141881842985535828927803676781086020028674466245405320608792298894610915046959096262121998304253482768591828596237343358396100468143943820583554023387654368909699724786954091132324028654599688831717884559063141897722004497753868029999228440358483560296481888963678340608050800065730310551426110617401962157367546736388892448079487581787574045804061925039178972534576346156593061226459774848337938019606748096771044847789976434088273854117183519080383512015921914576712547665363052504684127341746686402151451701129440305472582830391196744657341919012502353985373569676813701354678966613253532064864172978632377140743451147918064281423463571962474009631663371916702981942848332528417931242114966822545449882766914497606727979702335758963500281842979126540642911653154806024274298957418639872058778309708335408846721853944674302791464078234519228272723011686812078629585740982486110718192587035747211121103331412827324869078966618525172015534000485544589633443235442810569945425655705937800510451187694737005707695985879519148853071175679680292488800464347861998601407227109037304862138454389799946151372234578524024101604872837336903605616942785000361207091817556530278825557193279554721365402136940886662013156664288798586852567763002880011318950436794963398064299143156397757987614452537238122693218140624932067765244926378480570760800451191607412487843878014589832411317864600369552849202381036868552523176067755751934996927964689921688237485907989889351444331429841041626961792964593087395946491848903514808655103610063687003692834230387939950096025695808968034364541257833340927671910060136244413233015281040650419159977478795956452975460862015940748676433891524529890338045935163990274537416799525852903804037734836045928197718533108273432714190451720989150504145771577464679535989062545144289950052180899118573498421533997811939463808337297448174658394242095320730648986833525944748575598778390059332973119776912401462342024317345522688230585324368456760388139626724807570784629457946575194958501958905177203073537477449101335001871644145291980498794260046671706369771794897292651855840471034264867766285470209567458289330424759042282148540364253643055234348920733071813884206598467347790263618320911193636455328060801878871814933198621086738037837211777245887878071838029694001128662797470049428128595847292671949830491724649055141080203251045127984848965384407572327684488790433459893513782562996750935636450759236248118428608878102786702141217668460559958416345381162370592246594026920788748093407483966465472957647708396037877353817248391053624317571806350039387605092720561901041230392980199583607809106833356774836203813980866595308618208816877162388186951204543421826201321241599602832821387058938609771678182079928099292453821328406969579998271592490686088307499025559816210103552595393648959549347823650909340844179511740752391058274949959030216158260146250473723948951218812342997471891093048656647100572367116083439629659931297690086494051177585258162042596595586960343351587816977529069292027201210164008486186435661239169988938182034281427494087755557571696122161259335270253214605476871207119382505499589335266187994413421438656488697634750279572021037044459362235645990967595741267171828039853803955335676998295345180848988642799026191359621457601301937549182902008082935490620381162475836938092023254496476447534514088089786754227391799550368452637017126947030754171784248644397537193703651579112329792979958558853010757863965451488425964502295310092302886573438818705831532624212726117798594928456697589072319657411996710403518978678098770513436095847511804069365672377692398036665106764738210579791309165517148150596792415038410525940557978900788981427472139286622606491487180683944427172363455626617298913934027362784551950121353426620396333898214745486469549666901835948524767029278400487689123996312458579358488119269095260451086132437307875629009308978096449454118486943656142948449820135025085999640154839822066481563487377138010007101429455926975421274488928354323834642355941592010157723033668090921541026132160171808775751711710692919954225902878638702181543893693112964757852559955276092719813311217602108286297334076316527621744125801039060663695199884582964917359017591564872967212329457355333066939570648710561796494031259718490347141145667873591331393658392688622876905814106196613456338670673170857032797826203755429678822072634989113576447987897725840739654040529125419509047349735877051722911095454945335977978609088114384380934400254450496311927057074365257054883551259184255709451964003864359385117894815450395888498454437666433298084944009617024224566706222541095330400863021487377607187629379666350861533425785441921228155594383968835710148210191821533100186257522544054591439514395921905002998877376602954386994160067668663002394990604148545462398324873149709934460644624406322518350330388655092394276144652019777500833903584036937629561902728406406192823830427456651169399310248539787763879889069670042766122168042497484662520084150013571411733387380809854962823508724118570775437132379111016375329935517893664502161202320513018206287659469034166371880409687335176211027943395202576702038660430017729116778282081211854769709178956899110506390698480501358948588812347407876571742665729631007262411143115851454737799799539230748764918797204375234475925677554005739294492314363122600185028857589540329754672235053509940402315417649611188675096003299473827749173307734704254053368621583054459310540082540577807846636284056585140473538662088224048966987642898247382844186284709785039942705688474215833964098820313349175355386317601510010907203865498488681832214578249992445537829863465494727660086843770814650353881723876939409027532563861858281109860566350697740200600823137923582049572536034641763036408698546451303442962268615796985572048137966836766008008179631139896016054398832087607194786398622844540934709778359196192795020224270696925238454415079361664411799017128837000565459529263542673747440187810654406117313302464213688214909208261234966139657281785184796649241917317461362490012410188210790769762594105509642044297502766845632425457145390247744109747408742138202468052369160541719105084462857324384333364206972322935865572316354592502506138918562061757754201548161657610348883955912513767453013125677480446358025234425675200729442138937078927369791390028771270906838036888823910087034953568071115349506657903385488582553475982019126966761896926593631034206756717214693868720795752051647051033744642656343971426390073596003585614931457201581960704164027816331573360602018573005186953567799632070964166611573822618708267568675453656903023726422819204403339745781562318141498671272192973517326928109961555474669173624082206092939975488274286487032702886795059199793068719168476976372172195339516163758661547813395873154101633992614184760479652868107372144973461420260486074826105247134759562222126416276283413271331680351772936690779536459216278081710639922426545786953223229626610255429631252496768736634391235432786019255419319032506479584655995712237033013252688434896844906831443249710308628857162944031764902734912530189685185260758431303332338285735733263229225645278622802812877597153308705395951749606472490474821198252520282976313570890385056727761638654606641501329511109225149766154479680820296998401095247595309408610685147384237998364163183178971108920319019964249936588670007533085152198537060832087826431418208200604611504475334106862160046889573670872572110710103030970296662730367188422528739361235466122521230256290628121016043267695309389984238645995729028967921858246039976764319613433477708458158031626987248862449820343616387995599663035105528956337091891036712910986396473995685105021581047110135375550344508183465459482620086083001493397714173250201010313797511043928522619764390075073501014895270999071744699992510443238782885312471185652618279664575257120010263653828102008163793609333251104191963213766299879515675758401774632631671752877708480124606443891929239172157268443537267689249001171550370755481506677409427752272081538281287738673883281320222899133457157532773923460451092746242624910729448621317280231195551894354971825290457154905441959617502105019166212542250129285639581633972961629637954290861033573659886787258267472390986150665239618222063118163060190686735305326790785923949240690489959249105307356368400441470301342913776728025083382006738577720472071133517190780922586275077552722779468640226212198040308112466928033127019581335640868772632183479791184397323937700243934184365478504609631077254355713827168792595445523585573990633850546994226121198094827442300281895584938983267790444878361507463877962761352156954712201004361100502743554692804876756043993716793142748013852228084836473997791037635154355566753934441260098813066943631508473629835196844656283327439889228026432096688001712598517527899874052197875634365236113943043422784801534831007637114597227367427228687315629496127798893533199540672372960840631494133863736910827018632182834208553485576811197229032677322249961979462587896819713276148453717997189518350714514957314371638503313781135773946485943002217161123033674199624253140586198099536723486428466675086669701801431226932781091053253704511851358663047755368911241975151183773416925289485633201270905970943716691674584564425616204467469084550148888501603761727534451618110297588134949064157422445279536159184943071710341615765753363541706595244168969954481573626806156849182910475559263384785332707366384156345207054742100771528989827767021874666153318686525558563988389901281854850625753162383189726623112376942415378506481196265372366595741443650343339085763410232933071563060810508416215582776998739665193854504871763054244431505047412314971362899496031130970588600618561200113430336059124926010923230351511238148533942350261735092277528480642958467661121411332467853004609687652323365125364426356615696103688426939767970782574588734325715178841977576954953248819524861822517349942852892682185937170672470777446825839318244987600073143416474181075567717902679186721566162851943339848500773985941911649401882737777403805660243759841691835117130792029757877326043247968244234976803171592176691407210824114517621520224392675850956084489774715507281938014662131645239058055184328477585045224186184341111243400937819093305499823089100816880776199728458943918049594910109111266472489914636520897013439429987813426657090471506249535479858365130677689780546977401882022495362701025381250458382194697146321535637716558242854997762041544433350010816838498621090654132197394278257196795692354346249016990828373392044622183459780392962373503856363670911507538369710168752190512696466674263883449947923810562173529432190256048588434547366286451896447101239163202832285995006673970046687601123183150057976459133105142840266452540541755681240515719844455797542879178486991256125870904004810212294605398954419885889065433666286622710784694289752252386367654378552752918931085428546096213709550753902256756548586980160099493134634181669638962696377335951665251763537975991222258708179441739530602590548636535150565248494545661356816443871721954462976156847632100827982218389108497159248451966041039205808457466175892239007415510196542141517095087397038341546020061262624334298890561064083556952649643747740007155530068493544069307016783183107680254573895905437236081061295031215832532642277718595200803776073622718208088920054298743195196633024870840250969426784517414108166224299120267754423468437382903624173799840483971393754311185380662585764548640629510883378957149486967452571295996766217479475518302898176412652773143300617311853070417174816605825245794989338903361785729729455670394076623609881249255344068517844140693019985431637816918404162444820308049632247166472039918746846131984895249761781630500844980725109765269603475795064833086474646274246085005614792045522412809573072230306870187078689971856437832959253341314308014209836416068863520674834073960140344165858084877207459437829868057020843673425585763011472169958244197492899094867677137005057880580099012278817320445749811163864509143828027092567022089566062819366249139619361149884696220125021143496708323352508297359187293712827368739009138389314762252293310485528179288685497522386899898777538775484445638830083635877941560708463502717870955908604632079328026680524306285392290209983703892155807594262307477676110887718428567657256988168754803341796987722876670873172161489207993744585415533596956692104284756333569312457477774392396848491845811336630291308210938575584077694977858098807435399336102517003636451934253769927483077433458948548027816751692759166882675768337936862479347769326684342003137870602334074354791291018704791413859807341624374955072321238037617771807063177795839965745042477590666938274135483816700716804571724085393789397374524268634985783739661603427038107000372479649418166519363889513673931904571143108207770994441662323598671562979325622746388259642866368629478481237685749525603137735250297172890595797258097871121887086949239927285516234383824183511471878691372607509765864650668357525465124025934874355193334049300982824713113457942498651755941284978701897553514616351071696834096046687282289380107014380011391551013535086965596929414990713580822719710316878392438834561601447399295624927775091556481482787671450216538859581688920188882911423812673663178778079830602295686133969002166359089437553986327937788484181972784017864405298305511335469106125122904466113976160668388200580965004944470660071980541325101153929706750461234491292046116548164551582096367736058030887395195566911383163571323553690703023550289383620792277056865703596313996558556578493556296190229423638623981674244729618989834060224666006220752461373597495472721718014575271111973736731839615162506658934689991685458294961295596750126794507881843925479703003665172322513840555099402806217861368559167092714114948587255217299492347434448883674464150351035925848496983825828494751493705053760721388069850935430428319607043627478212408421129766308591984849758410855970794451023175471069455443811297764679403730600341171607909636469356530785338318818706190025337217987226544185314154017105684323562237142729764508524737865239426561119044405680480475316346850533177654296770998161583381997077262589939634774331017554294794226839989320586883984603444539837704694866396907342744780028610595379204916504439470571585569871035944148977795528536290559274179621836198067513766483627277413049054179096775031552133735061162014835556941074558429069356613705688385633429419697549178053649718055661745740089491100406112261340629700235008801325570039662366624571181089952334568731654784345272861172678794038959477473985555000402443196808107645821425454162286990332589920133204808576568297053736420650660493905718056640826693465028415574102549767512709800013279994856420775893990145699227463389515983489452347918860535546615601674432561887377772402072995062478439819711493544571766182083242908159362074912889984568069301502771402789054090194118203893670505971888129157707766690168551165738534211581759779422422255590843299168155592856713317472981805953357314577243427135193953483233016266379910931127068735969159059507944163605863347032790564211397481585273216680203984371845701942125140758350840084555831750362723260565023541502937511909119334738358267578528306695451324802397515776192185493582879131046099631995915840682097234681564502867302532420735956518155624838604273393207903709765126777887404257068301341292283982365527975464632491748066742758678428872662597201857082187504532774991910555400230976259193825789191597358585617079265436504089595120795475754708005147086928877911398836251007553291711824208279985511646973991647943765243521886001118161523270764959425374156961216663198071813277320743940342233371623703983950311218711575209747619254403191248346416374984413917415630156958815581902193501357858239331747790480062937557238355398887437529807919034054604619359365055076360743465098851347840820644961200648904489400633936148822089151862836231767749605880557984630559077565375508754809883416344940102733986748449926842184329616277545504407143180246562414595878596043032960690223641505172791863852168455080227468429133237050318129327917520618331320907917188142668217270516127978798700651183241390589680553923034259216211861751691291558515254060169828259401183648073606605777655499835515453483568765061921037818601286858343630258197901386210584481485721469586099517776896768161351421496700125472190723711458073321958689572169589720017466322750803786996294023081440945133151283763115710623744791912998816334098579371050595282496571622032831476921602259685720229628427558537221221293607928056012176573484259539245333384925162452221874120971165340709077983960276537350453093091596382942010172936433294059786544597105809039901532676540508064835942308730367071038714900709474489806836564609648827096115945426331117557069438459465314538163675650951087447517781081006131812879474957918544400420844107848886671723766334538653875471397932407982522426643327640947151981657253209222176783442651797059235193767344001126637943577913794378873499996572004410180935333838234209140806023233640041564176483205155841124423743203801497932320363802725431265040475742067804566987151356867070277372008435479737182197886710670200016132332996476013972050203300498196032216953171576648030242461647399111344924168853811257137957606642169263965827860975500514278451589309035160657232663559905392728483771109967538431858264774581655035637314503441515922406256825322421194239083265924320713030457563432332660240438927084871990961582172819565004006352936271540435826377325477491445244287019662776723317979126825050163669934977007502743606584717816955141916908760366880175723045477494444298645862100591158858840160275266576376039874476464380060831642251116502109032300774928893911758509591681754652917501581929590454051494818623221893396579823015897431870333692910987909293947134820892552247725694267441470404866856725992187237611080777110773104548107484200793141124384756840982473165291825204601409686899528798579085103127089809132911523913618217857487872224830823445518448528158867686615071752049733992438748566210612614090294641701373331750265006944681357645331110518138316037656127701200810831858963257390024700394787617194856022207833994590470472307784744728408186590989517997301935502295704100797183817175591309995992421602493975417884529476063625436641798261700580977724738257005527787997060393675548719130505319210382163924510212082745583822271806188453489943313314797311663167137761605046870138097347518144455067256388793707879136030336260122911706046962340512421292780098021289750554799498310158288231919049967105961936752012759506472153372185949386261601980282492174576703626459644126717019382355476800998261366951552197152655616555631810006180858548086598553764216046523836709396494546056186102153159719314035517794850052644857902526594805366881418478564181839070763850087644114355392368964898915497069282893705161593604475091050354319608099769721780705541235078241364015124439872159595514156387080124243199539848216494789512361956346245087208549641098416535325378976361742889245397905152180845242256845779947480927704315019185765251283331436247014931416568432068343590818293346893636830498476300806872370616180274196145451227430505525855395432275607115243367383994358223993489616467216340867587394291378354836524202773835342875540303813121437934212162800344530289866089682535959167906912336608239105606880535857395059049668351794598306090998233325143766867625163826662741990615737650918781337163348044563283437105693230016121154866995718364035768842697205047565533506655346814591607882715578232664873824296583070747796463883249137602860638001868606378257124024797180740208734701037333714217462498288769235120216329608755212630250920595611571242383719614096392041476457729690651955539505399810751806879003343625757566943412332685696775572260234870369802627495476207936814240066851826030933663860560404946203664147634590743604106944553421611699153098845675387023821289334841887131764676049148658202589617949892883526728197034404502020477768456039962147597067639905333452179917914025555870175222948105584026090205033875354035987858377831586935360537750856313489909107914363255510453329448117726367910650269617276549949307957513446040854963581311233085711784637073100911604157783630940266024985073892522935488197230626154780096573672860581669750009537255941858821260432023640393949244590454205868790926826497113039568417042024179210169826603887163819054092815896019485590992601614526052398773002317809802667655762440823756843958668281295331211770658090026654223276537254316805504311067939311476574296168765633058899110734443651579587226861855007342706930947818508679031068552161604296821829878715323586736094686967083202471152716757772507177917488544054189140643173076613851469752442274814962969169876301869387899023317253902390099923063670696968485106858643993180683091882823947036407549190922057117652369527736604585983147700462296360603477482888264405087197942656608287768824426892421621845741723140468893193962325879980563693362177388439342806967612135671972526605754885909878990956919413718961473866323727585035733779512920296548515015764016340021051552621198599852635827495222960299820632603816631170292939643937683335367071780762599254121719196812556617100936795223192658451716272191478003332821496304366771242351991736918936226248759017871329664059970477659975335811635208999653610911397673762296473859973275347432214930045771178014787356029858615786194310952541375636171785923603353021206550780323154319281441174839464795121917925856951753594361472307237026315115497606132878169910455326824780586437600015729051012575302203466633014520342703622553247365486669867809936039224676003408459093611269362078477907905973988584578492379073380587236035542174630995507913685081538814412693706890507801664913857193530182272690159439343933543033287211455870940226981286494057823541364777516287296686785098815540322897876181055792873756576669319050422910321660549419047665716494993773018404312639145926513983718605417449547575652008594190925248062121243895681734674566825736485402515741886214058649642208501514932357351761475814418141748444725819796615715145180664219809359322421050163588209785548590521745388455571865912912855080147030880947030589375272535502756597528562270312969241184489381478476380757131573434770669871602074770632811169226893901853868594407229640933760143330292781013947110559715781386571362206891488409213796607769733776593494547626363148259548963240774128413913538365718583902470798467096369450359758069160805442831317776978173579733098197087470586411891245397879517382094067621660803963158517622703171178261894462112889356891813393866364267649881826228879354749206632567344194593206612128939008932590782221854998279597849671015329449749707634235452092298819762210073798253030858109912656349393656096901196723581032803843054117791876297762545085827803597987508011438284277017423001164792040987762600597509540277691926349000499073349744377949007502951522926704896669341518711496966317084808683807075812273124193082221963684805138139355361834312067989160793148476070318580701806627259144888490567909544038612898814191284390029357961577091000138806561661819786051661246148771531506807240098024274813271981880212120036308111087018799627606213502477582688336369940078801541066434894764386548923923132665725992673025767791717822714608075837263090773329562871378500413647883547964538769665629118634713793468615679181294328083676444607156585107007603759771576348407344662721650857644508289164921693638910997935436034766789951303938810220599196215990905390414346345569607890418325777022227897962900469613669289413666089391756734181175955085691605399585933675063074856473829273713295712917875886123401264325567217176031831827637425148932127134046438436821204774367710621391099391780869988225880966269379483547124038698174700316973702160221907732644681589682238236451696960904377039246470105542106619521776952046529419114705903786056677912867104422923296560146127374099874095452105970327548369256488236508013897392965546729970572210426709697747220542968234684284286022267674668445845163954699596627516241846006084804521542301362334856751577406245889563041475861050790215359921163303028945979071363679083987715996690114824844943131165712404129005604308297674433765732979429937611143690772701436807100275290263818730677708252395741050885755722743796141043386223471322642000950979996821252562594823353819141530930279807831141830334087840939773575437936466501917019002321223689392379899964325689121568695063551489201327824642695404626331817395609129167409680157487600960611503337049878003369036854858474076747195234871750233260270552932479851327214184631594475792492787151787956687724376392670850281605976910266423343297860750607713333754594940873955384265158601769401281890378901062581498834103387995840687115708394629606841447552139608037005740962255317161653651894631395258711574506733249995787406561441926305306350600260211542947766991303229010245937648716790245434055197256923129483160693263489386816669790606699751817248764234159692430770973058252167776779611148365708181079177741755289403519788460107179199117596178396350350199185981479668420167046608548452178180305207398450818496815564443128035851183853300312088408375555816267219923765130485841225871353312803153433384835540234890710742557975726733830432706077003349579347879242705118340326874268050973122199454961250535731417558291289071528424953219200196387461381568121281507674198016773093565239689933099685892574529041772416426745707841178358165215220184255168054410644993418560355902508867023610734733847383511248818599987054182635564005119853428000582414253685936139527355280525696603590256092877831627432600523658879439642023196792526396192056901348257580143749949151477588816965639914674938691243796955962929214507890509147025922138577568909241357884030074969295064793817643315052297588408743089010505507130295303674034428082079060956904642665888623102370711053150187942459204110060176578953278182702238656919742353877008462910312956808578957826142837483656762240362986406499758025526320564434173268921119247186042221859070220164454352690069435695701798951260130784800399620126538148692138923200450261321120355025915035243023942738744541687332562656392482503193251415625258738624820749897262320465626765744181585010892642760313549283011270662916765076924600329371417610174966283073557268653982601617507963233086104942848778565324635564177640613621342789164508233201628873891507892068725476013814254889388739638530219211349467911739018724301515833382774727596664466215681687957504217132628243184252931237965384254236777885225516060352867836494605146784185012273282995397326802646424641031296298072331985829037218454797160854519513134915972334882134178511514454364832616340827253734963720528377025320004077180881127655572903717104093336328905078166106209592525913087737815956992683063285134334580492176736746432807075854827072853977362064524286430699833894318936251840459438649206400493106879284021526608949351301052745943461585801616754764141581732608468865062308169855533423712294525297373612771801414974850170425422617194507690835257604626257966273186297735427478739604024172757127191777641920712516775987709005906383424507411617185148797790278349278347438062083822369588401481089587376539642494667977335150702673780592071482415688468121892897682574845104016543007018413940142155199395858163504746138935394745880343839932096134618142735743609044659412559295647709469587087350205308366369818345552929578465126350131978559462040115176900771425954022481849500555718694763567543149527267292754469335719652716724358569102896425761377888388864437804165961226531155235225983786922419011442664615000506889268229261169984544627318975500587004197218960310262133814009882725879526000044397224366314137738371794410105302696242202052345547156655618904482049249083447169537083692699665807136129501412418682831424621771472966607007554747633560748470149831997887952442741200724765204887565974015598843874180674379019534174860692554600289477945774270832429784176131837116754260012731068435557992141185247706290309910624900946736408363931694661780015856725970342214354845684183992699252573145757659211223713874566687348013553104895878898395527462722663259255282842451611743776842520239418165615469022462150984785916146523259707337383631479812745826340551422189800653335621742525723239754566259211588651111335809874521632081336970372969848045863698413785996181763721383863230748591573964908844956359928389342928816792225249052456369456037793449647318558281223567096130301103791728671624711762198456269150620748737413757850057184878251291402990876190168313201054475199158521941782978560082469336314547743282977751364815458891314024129556347332014079774859666948057154365045472418819170417198157414564399663737928807311660166122457155241748843531446691709893370821293637488339048698966952931867383583173029329277144798127863704347580659082955729106973350329968260540416172732288740377026044814843537791181469328035871635112409720540356357829525637396143233041176076526519791258347763316313450521628210108243659889073576480451463809767985991044169422238084358709620248049481104736853832900920942404924779541166538287792193023130106448058168957637516350199303987775973818899191836299670525662496742913029381247113372342181596058298931813290595187346160242241654239603003430613778685625643774518865765428505461438304392921665853979183657310614663688497144515299022521546142393004850817617781688992555515964547531174879180821669146245708847024773232768927639116894988215197038603242407216474176824616463713358462540147216934604917866196513392647563228517187420619618098844777884947987750690990170756743014812058860573965014926341805518828599395626055290596676778776863243943290562027196294858977571086729803467582595555523110388438682980498840022283495587243478556054085860700394315543679891421016683224573550095694765897509605792675282458025369457635046426515419429820152919280954468134695876251276517007963580266913800684407862390988173055498901854206879744817131146713884193086270874985648857727042738259178568715152911480419766013779981008499130682853186234068227355994510718458475989490382265702699674661305482592185831567790411190333869626294102829158823637393310221004988852847096475360714564240510655988788584294531078737766417180596139817721467987504968996522543568926717820559307906912795400844232174591042754044743975252507944848815792249975903183795738871419551762029381296925681284578181380841163254196944345344918835787450281665359740582365667900531672408367636505925828673888748920155081344588025167219299380552794984156718750935258358547273636417667487269935762949156364520302051006919893385815251163717221303815767564540796954983935672326122774694511653429897455521123228041794396019582524448896873452880530887528710049857775778656958324272669136437703670287366880297721474851345250024782161829761310140233307990623089136063132718216171581282293887735381477391793903078486129104215646047989348626916213926194536520828620497686683782177339568114590696129744724384706090293885138186415643109971850191690157269956028963561952003329972560672014756960157725083727090232928465996028613398552416300442138828533802072975881426567481770268315018089656037090284502510012665834582412651008299616922703793826510710349471260059695805443049474297021584369130026634265993561262638147483143731598551745631980629921231722482266162962232672381658390963873264680491872660860197039285730803289446632584235748776891196121385460000006096911829199331119738473866047798113241715653833334229718552922104131964649253830369531144842411623932204023175227223050830058773939862357191296489675542480050058697728771228679655417877226913499815595251066919880342162916717145678293526591721373473226419866423752162363032243921692193647159955085063175940042032845115943206210099708072893972331366306479995385482567157058425476337844037756515797021322980258446253020327517813134855463483950685116947999420530550994645640409554436339189148069234158072022791033903400575378166555625774758882251822626639766728781629408163939644897837412742864893054503499603865171878483967554836473681222663735050277393016951936180882804736506035611747614579693952428457093552320765912280976410684597419282561834999408828078771424214702335610621560841411534073722260069067956957394773431264928182066574504693677574710485428154823214005198522069293352208163719410019916747113376093198816317942436072797181925553557453011423548172346535480586702331103865520506601624833484099293658202556711161120551773168685215359170861085803859087757301738659684000753509037220837115728049330669543930202485231607790587577542072706003675716291068683528459685571793776742015437474326843366611511643360991146662697706670560374162423194030584841404181836142397843389992394115722609560281464396592766211042969906129152549130525534262845223316095793197290877412144096896641669022841916526941301774987695978335914379232473011544526974273986084725232669069930170224613283656275701886221599484425662105957189525624142179259828768348901436677492390749020654821804551682372314111521085265601329880589218602176514765867561641332714950085031310505444982042435290053188271183442968954329848451535454375011353973221034678909073461284952650590677269748105776805568928867319701507753382745184525593087989951228482749065880224711390516251932829530771408575934754092355198145811373431487120691916622409666144085631364396482701593029120405160669026642667613118813217014306301973447335316642962980769040287179288874153537473141980789733391960007719264710495404093901204595668778483987592684714354315383381915075641368895776772622235895636589657532661235116113636549170126486330414780829127368576125288392649611127440441762153627775510804406533628864795117633986420375646263344065370469801584074282187027337414836187745095596172046168326279737107520981735487555320440813628556240132728146210352019024105699297033022514183802533119903541254667841702166098200304787042027639188995738010919592370753617501927931422811971728451508362503686353435093850968360707628338138526691419818416503974723147100742127405747021287072631621493902213122554223375913903352733708979299230572787824102122885069003372232204617763786621478091246517851566072857451091537376128198363705424742465434991460624100995504057820264714171532715738151433844004644185738011791241884367776012462338654094178049522804814954178973166728798396843777315088621813278581167943519316361006510822075026857964072518730582298185973544564017757168283245467375462350009180649311450480250822961426836078352551905710782429845791398475093970050541524314308277482975842245213337878550606885869755172268069489439206529917241647637422356680398437000533626782916144567082587919091327574311235799538716901437596872719883867833922886628556797182433938199260336604793158755015668232814074447968086766578683855003070653770950800949124315347449989622910710703549800812082072236410805624847895698407199357106526392647298331024039008321065280775652757314723440148645934848272723894333264347257357781475358456751136943016515990548120720155333115498559207895133735637501317491826276412229268872560010346839939290884251663135681316624444674697673271801018809164345427088418040914345576499517048046283277888154825112813637430359789329801158419533343553105110851667787514965804422236486372845646082639303441389838040398100816815298620385989022991867963363397502247906257786434047457899840654597488470325927373874844754980880956730173324926496861520894464307283526140939393692513402999558104708396451449695841664171852190291095223229747417092654926688762128404956655370724819931918749212321855586908629708932753958331256607540237499927314793617565134541059162978942043019503786894563562741688930999455464658262266160442376718708339917901650262067191948713361295603486286095124179828751883764663339757182172864718876569458475638059087031334447698232727681805963961072625676563837042883666012773689640240531135772590817542983296581412297225765926547664746500416615892929262960814890874567984404502900881604483320495673678767889712412176822667173753549972764878439147292461885657855233421182820697641902181941854510230207614826568402557077522740106667880840406809021763164013039360357911938317152882395140097470039389614707450335007746174717654586451298284694535244619083600522784622290493900516303303509597601975075173305849019164047297919211096900183627037653374505160477616077320756571064007562065146404464487898670128818785112112147528834823435831379289051824520829147173182431045129292838594553855531254197181996788033399149617040600521264338600746933814582251172395165318119320428860183944812640249137003259691829427390987172847846857178345795525074528137059866657302755153292791205131245578523437954925287165826895358093899050621903137639229360174276193359670930262546445001413128737793111081855519502713379519274141577460994597244952572599382171443220201421629948936469149515836292895929247065332945328778043509479556286791883808133577736745652575064008077249966740300873720420304142628992471509856370323700364996606365708447503473765855733923382742294071940579240615972521677817092894189859341226263784454653167273549970465517803178488842140045117159316076794513707693172461101323022242016520579790465159367200218865415290680318000327622290593476062859947021672422387606070807944832135659912843014465331674892776074627363733429171836308635106576434242984479641180719727140013604960598636165011986841603396967206612157975091572322195317474527161795852220666108983723061255310002590841691037745856568171182473277969669175740666666520011569023277673219854327841638307479709409247928785890915439268531599775525628998960585230066933188419706558833694776092294955333738201572084423542853240347438060091088004025046827581710141625787168832969558146086969753728160918813288693234371092045686212666432501838076792890254170051354535945892742068581163472050499378452507674079426327357916205310084817505691096161705358264737273185742159499935714024592415157133230888832368702806422936780649539157721759992117125495984793643602435632228363990093760837558241727606303674631242541756701121028593200058703027345569164692298028055587537578732592497381865074704287715207265322422209105851763846250957348354874676450518301482113909779330899904929464802759398071941922473247402992839383869586252514274475472006538227288930482970241814449417979980696152251682867913191188127045757259710222598757924270758923200689975248253637500002543565162120116562679768332093198928342766107153465487625919932371281621835371648490292058439004453044105857378339750199083351560510633778428702820832022837741082050998219705399087377086456154306683353703472016407914747678934923407914677331361042058720829939476700835775569860798448631103038391265228944369509471871879726613396195549890155405897317037790925866779541370956004414903323106621893791830007490374335013762153918167650279502491064949315143473890646780534831809747274663615381238818999619573600579718670109589737378154420337095162125463036705414202203948907238013821138351318017736041322766498446221212292391974725170271624883564887718250541954567303233432831319251143525758502505932769829100375253124772161725338228555152431098039767716235578845385064602785166730503563801794274294477231619357475771410552300089357631374213560690368733156764528735882614845132756217560439709292639617706387309918975608751820096076599800290441997241165274796918813171415425518171351766467289293883995240487233873336767233153603329631659597582567289805456335799860828589055378013465815490707857660476108156793047075962445468796482613037860816492418006856176973666429912959511890750669122128540690307073394400862146543463203704207102772885105751689581210476081117097772805142327671327620555959903121826043231237992949219782857883485745327859023030203121518200265220278447211216968077837257467644744325903414863661790798728933084182921154536380923710450310611153031088085368663946960412979948328993574187070244652007989650305547929225848992599182242327677487390022860483878229373616377453900000164276895928094575875533660019121496450136597116808465148139313172096244578091790360126707880943736338400594541971755498155039662134730554981198302277101875989561713946119215069531809846679447852400568937666876243092893192480912795223469978750679664750470604741642439055597691989374084494253849210017406310304858271883413489807463912057771142221369149359578301478602690652054502892649898866185470517857258943846522312993936807678864144620767824196677851493799448604765939017857853402238986908496126756962252520647536682956568178218758334970883116365811917342345295653478279258162981466151666204382090895351354666938859563627662433995985172931209389256078334869316025391759356640566320457538676486475348107073214288980511377113258954468542818527277201706061299090831925917158524746480867943031448826457357836639608649705002181777920614228543589747214331152417830542502770450586011790887798490907322117349152939110991444591045718671818104105140188789582680297719316790272706428422803413780067624409943948708777537208671374807491173543084454709235823707129255876261623945946377903288805705833352390664624119563112560178047193105615180010758048027507206943429813368759159845634602535190279536537691691708750722386867597116261757968277991501937314166371705606789655271012079166627870974119568082062169969672936025114511693725016520192337270136829258504398390112376045852681058515764315987030537256624020818505876545707413748181454902791786920430051949216150427122797191789839900215306908245834407728888969498829584353930630113226849862464435355949199000031747448043368752125577565734988438168245096796148945156459289801480401325775258629008516178028207048195370305257321204331708515375570600828759254135114520435536564676678914387889068137405139051440757368544614064148770290492383096113877972226849131581408524472838544432396338529913190476918287878655617902141360682272054684458922868930747198459813634448821513392108265613036778465970732240889558784665093251577232660747554252612088104633851505153536211438032376375932011648396067514619518633887337088726644935178710328805883152695562582592391069351023381377826374059215266498577884517379532687146850577627554870753969030180259065931477564467329920606958437287790397200680671572703106842449032735646805731469196133806923889509523833031567403221775139943824529679958320550190443828494259935123420143868138777163317805095598672306164181888380684105295996394675761807901355540882489151609755680019414483496056115621942458943630973231897266708671840311217385871671615335819601907054753571775762690379598622543227096227535718101516601690328869762820931986028466895751746189609826131373376434194569904983564172310728177691220846657434052484128275194660550228152730408323378842052904342543925494805177141378201882491255072968355512652004394425754033269211001010739405549875947211931636955031293554986066923552313589769913366775888366164173466148811580486862322332284312762675075083255999743081705328353606180648176030233017117941435687329933523099804165547012551177458029735905693062819696620673738648042579426992663902303615991545431758661116540011517139923986858275697308765404471797156441793561409383864148398176453189563173043365320596276112127354285644989233126585817280855324411122337714375926472816072410293491780092987547275242073563847627184219884343104496364138581527016553601698532691736072686690872418209240087977075843120334748544287587649254844281964211492306983702723481752802695510638172050289167282159899415985740273791018714274198433824603682803135705608641574862072877383297230706500827529631855945062050222653920992612310151833196486156443052946575275286351582932513464820036585034903884267093039991467589775163347896483579355480962502485522129592487818966386660072328365564041333776011942362170349383506436585661371663359793341077951591060452409382238429898334988643811851783805841038775126624074274792505181908107329101819430853350396298925807920514425453417851103230968803518210983313570581776473003659145544122287215257592871090217749920071176896952719489791303709026453611531050464467684060270780185069954086556009394602844482852611257397898810955209870639664611981782252376127266759056835214478119726958813597938492005376582930950378844790747138031900108143853936286119534571681435668623072598807000597141610707254442626799102424791799064942326372924112985389468364632327094919716588065320127668912049720210912876324384404180810301734028427081557738005466546011543267649134345253277318386869797334773797113067132301844903857661833810814111204760676128673418375874481629033868016519865476459742137343972944504793649053455690441847237899228692400347837138742347530820329272236579525317033048713017687644884199025243522182850710848065094736950266460571542882324087041778470102237724211551436989385990624251151284194656733685455465855761331796775652897111443458736830931545140787913784073523871016010390112157301928806194589373406735267826383092889199368640513510395858599554466970181634535981356934827602966147680947153441735551714322913869467484107336836028910897060702658500732203988624644158398406841093313487842331312319326149162688193313263701155405091687177038689753381279856379594484107457695267999152233267435703639063217736158714559695071295570111718515288893252960424250838487866362435978037815679148742147290230292992284136396806157144365744474502162263650907832996614663353548516323808821966793286232773218765123788214736753794302695460384622210101910902464517254777662790450504469053953231378589831920713764877788826471272003915124266134356773656433423042154187896858507675343285676539291929227496998654732505519184296959526432007269872534420948999391571736377657633357090604167687587638598128621336968735090284406184507382559522357310034779055804683716816033103534033183083971181969698703869985439152024438840972263147766842267221870401615545105050016870899681245332255358939149452883843408387769947498971631963732457380310784515441102483486196741040955672391368605734121743754176386477664455568765869358163871686887301832537264812618438428397225923772142738412641342706305237378317614250057339997112197377168966990520815403555927397097173729246928240576894348135173254279154045850438536273091883939095617099918073887529402186634300608937612118743876891697874135815954089037340720777776013935365041723967516574905459061669716320188181207374150243477420482500404351633921932028711757618921314152779588478247128235366935377397167537372674761392105012765588435507025126961528696595485862813713091259780373045120312072488431275127647325458707153046608709236297891411922617613382195742667780719084348853224216467296329847660966768998854145327456296315717930660845330941982588395085168033692904006878272382529710981621402242998341393458549922796130619253162291625475740588398502554840666429421319646140591789185862037919528701490505349570337692156345717631773802583251697647375665367212062124991246829132142359062375671562239260807144507470025273036140855109895202997598295872707118343315115796115966069027200215111268424335467334012747011845586911675047886112137301731993804415095712413391848549056810129193739028345346983713313538533493788736062457554884865062499990184491467155417209479957881065256499151325525872136722035128734622615000179700236145996210875147394165515191469299370281893279172551833657776308409752965380139357090260861239060936115697595316470248634523287559352640309752848943271949657385580247155499753874880649008848009080338227582946347937767999808700757369077044784915355809111292022192717285625514219153465574718071347627497217350887573555866537317727408322782790359016889165748658937265914001500371757286433000976211071379297147326473671577815996926188895151512173032371303555432628323601843015943912290848755540601237863960848092710853739150943239465662388130408104054920726878635892753318403730966314630521369735212136608915855444708662541293820636855415069733700920230568091008518843683315490816943252488862476598634680398879688780960815432151404674028435545349455122532863524562042611674608824838810539135966892798297092131454424148398057248509787748181723476835849730448974423531792630874862583872538150286527687467670405524708629214291771235306675619045820308976059084942802452441964568602689450772538200993790613106092859836831920086842428707289192498199440137670547726483120723335861038031807162825677089598761788943336275669658720147972591826886219286071366818799521576993293300587757368130596068139243632490756888803312244383335992002621377027391096815007101927609467078836724628908239817827608631143074479374936538327892659562471950623723276200817794654099693365577882037251909289217567172607115102832406722099243831280268885929760540058233223967913723715237927970877927997212688770322636217594430223813470829087614220049335371210817175669573239032624067263375220426005086348705266657620445194611361039200124745974718753592491725353836098834005149474825174282185895114148569231535457378546237961715768078762155621900582856788192210355445072124811956875517546556725946771393756156805624002909475014357638753700605372330083171162231009333992955412046777273563401770640092277005477584122679712113959176720123905673316775422737855570377862327961148843703264978639945674726451111760771652802222711859724539738169319496281141398832881014145198353286385965060722698632600008067038546749839608261736358062061366730056504070480312637061354468619028067208506459986104146742674309813206756094666290024457897449161519330036258431492575062866840629390825635464530903626692123240498393863694304937396919635668684794867350322486451392392712267874731410824112391900618501365418008188972668331841328709169408336279424196958255522123844183463410351115479186296386189296527906920028412538143237448472358013192713299713866553258310010211254036276992905526789325465582014579654484112135696107372974065600521309831623615129534933969901792236078934144725945260517950364531092606725441866888256558604096328881408730252796751609994062303622645330262556092215453802578970714552417157214523876191569903890069280527683735464987157817481822355636742152329390394815639772727006916504308787821433325072161728634807716826000327999780728811199081050822733624096392691511401584087372953878851988012703839789840442602765185446413623402898503070459115035743365037241897909913664219065270116151673752823134044599179981491375799290399543205932766338910629426666618951113202662837809292205925582184500961382988378291801352292462555173079306345881368951902187254956247254737387407185301343026975066870605460790021958930025879281716870192139381808968818258416005005991954429575338002703460529332887964531866371000789126790828819838293057700006600222811899817854200649668999018960152673567439992338990307953056092951636158110909464956004327732009790413195364832335622474897305531233427147635727324397715084925204611467505752233449384930858563343335041401589740753845654600291722318809227481267603370550074835055094918815830986442587356624160385511344076361989037737390009428318110712099892499944252280116485583646596606777158248705435092341403874636257084108227776697372223779955379766421941291004798130874730657389757088406185993971766166476472560134114389901994740347122999928270463730767811466092459508201199655775511440226815768501257881793105645504443778779153860706059636400831977763397629416844927646982629724680292564778085725869347363678558587136516211662748566924676706782148295163404914260329638615817313902663606893280006871197212154896851909114531073501551515935592970903827248219965360135562609756219615445016465050076792578558175454531992030806832833482548560194501889853600963708666815982200124240294493552572818477937369648151684173749287736141194247655541058497624688126097526702524091820068370976036922381335548971991422825946140092911807100563408933457954893623757184227275219935372120948120498764477399390085301300532910215176562442976418366022370522751574153761959835188101672303467134897220794335469686581510094538726032097247450364560384806621235422780035965184186465539171439171847123605062709708294041806937123568023145966404540955850998279392038227800538308993669277298443347650455396927020757187614365158182623583465241841515682976977315918837835711555688224151544883412430417947796808274326889579058563366734785794711607440250695081092095638450342502417498697619118197113549827911655596804936155584445646218162900232989330381831068655805316430427900540907705883135244349868711558195828590006611276311999435866091930634552100774870696675801430729848615665829955519324410696921075347010789837454529689455303371744960994963600643780088178758849708484562839231480578036697543087432845233896728442751533670803882415120139017144448188934619750659667290899210743450434464478656077114100398343362393083851407926460299668097598681475717766933917298611791168748389182304643519623330686176499067918025943420001475271227130492128596833894150998996431656454927446477507759897215541623306066315568339173344963402061111619144636942251129309630697770904195031335356594769079574888877492465970202018363798323635651248766401259777709478947964978649002866344161360558136584167276794608313369511621796709531984803592279344358743260530713451439637723325735237537320587991744143084294164145400303854625366816250941654018179851473653585497248888147834504081212486590111934346593077414154615974198427421271571965496172477394071964617664612390275306074239983862947218045041416671611828064100201825095697963136489336604496611748502694004234026390363736214664352264883495257210308500045112090149484380424186924214746338537088079305617828584865665021159545499683702436776746984860140703753866397557447626246229570807832385250694456395804943317220040253257367936657350185863801292259889302667568326201576768987734155712454766731763253455195993242131170293366935467073535550595203861982746260832108104551578954715059136222591327107777526103751707364196376129366231968233617189162835317028112625312848259499656422160864699745955433841281631680978892697629398889654150296302499529012234418463764853734751539540695682153262779888693665647897054150924517995099403677983282559329751701178191787574934237443357344620291471976056018330783243003074924765939084115583867348832388403322729267166194962459162495377339077417339707062486499808607973722382942452990109820236157953143556180346647994685479795049509511033546760211480109544254683023219932767428528034139832911534719709475278449241178347040581255920183797197561206916666655502069702127797322320452292279583469509085870791753798292723330973107827333807621093532124560899982814388244696022361185333750110899335110123640969485137427438868037249106048998038394940414081895105884771608121047531585039016554416222912730637832735143827197097962662256023000263382330929024853443140590492403868333266210712195081123430288769102427633912506710035934679060845727094394445975164744742876838568341018876322768556696815902892500482937599863686965899176787825621428405185804363197144185276241067560006807471400686781884566865790822944133246088497310080738977808281618462699430483803376857474774233067153974998746878396115685491268510166070960794503706821975263902445363647851248546262323593146199140448365727907676418956422689208426418567678237768336391350137025676565482637904969665031084273783435847013344635006877221115437121494225182732478315704064419080278013652650188020178592002124383629863465063673946709103925359914841340030310161895068466026922449390988414342055936677371024559715717667143372961011470483381058244953347412948088686505945304858179672538231383889641215204376152009183107489523969116378742726359915430909857566294152998246211838472614712256663655257740274203964340509531025502623261962221140254231554282253967817518125596412880980340087378973065899634808522028646779610100157926999388022274050663561385740032762480626989270284919723208068185560343495613062123529427214784109197740967353342577252195433417456132045662333475933324185248031431358663581238007264395215285234190104719057526698181738422287098314174202278042974007665312783146128323550843227150360898115928351325031770705488870228037273639845694022842893807629777188423051985963284293203810613371712381787794143730881585909763462073998866498116639718358318768621489869633389684353739161911099084737001580363603155664669168886367620026469818923157522003609117964730163899351767446388742510615614006338429421094675675467878352433817382368118583740262385662163296313337754228578232177644078721204563900335310762351166086352239551890883970953298011411542844379849020407467387343399882088078094366255179651665962901248982968364816218385547786900229937615454700482821749055697028118814144105509480461373138387856932201081374363070031705275628761552047310218549906747535297252588147205472322533804699867403918377495386120731446897989219679605714948138554630638786047880075712747920044076877594992815632338761864300633730015488365509358151384756273588784748313145679238613740972288563920705552469904799938381884655510790969936147786350453517335337682393671224209504441215262970416990275473048159771438509796901984272682451668349937760678483265337302962735638301367091660791063120245383894946861127868525850349968293225095651074390881728028057262398993320081588128698880083019465616043268930519765379849996008126262371437491594561925415700469776053269400068940980493245404705592164811781770241697153562842713569566175610329310416420113878642476040132539751315765286974802821609357131231390145350903265767062977211012739772786182469306973784209360759342816495387432929197902642689266131761134066097895557000307978697710067298585158084998838614569751593200044773583014495071658898935875240986802552623429523445239339979241784493745342174754036347089961207929807857414100195784496581552853935430557441133516663105030939466139668648052941628180671094170457244262815869577452150202874681490645547191120147727725968202224671456381253496747564447035577430096493105804926079731611343990805371871813686760688016596926708399555077129234173897630611309282126810804283475754106482387359602709481393161490921087308615645482524112408892149556590192038722104757693518283672066786556385997213595652060849238988489548724278705408871726503206426634707872766581895046632662858428925314080115613638295638565245328462325253278937459348933019330753392689621944477629278294664981109661006927385581476554639432809303789899798854045462073799571191180750217552568403064400041762250473823607855635373885164134035180826653656503996324903776470833435888765212625570000588517928299520396478129689081008416873394330363497763950760009977204921382898555994109414219602166734761641041393421633434672111568767487178349525701221978353332725604579868549157809847412335681467252551175411959357731852073363945023184102959246280929309472235764003218478258419608982621507957741876367812918159673388099762669128344314301709613911757065866927474680594069100459690338931242605951963816651879581726346616341291135153646956264605086532947855162727304861220790888264842144628638700678400723429380442392480030787049539432545396603483879952607285038946230676468365920496419630634514208756897321110264661341208225938110027376181212712785129010180665238832424072856559698445354337687129792606671428250101094960545087953697060244028825380953761887288921378140125393429896028694463706262464106075212641301733265663664361304844745998525723425731950948285941537431182555709645038782084594051778723158018285584777082286515630298135373683011659446191292748637458424901851815512537166645231702471101079578714699358450047728933653929213903232472042145763402861033006472275688925787283845021446953364442633669218472480705650938141039172949585501091110047208636122018752510215144997530493012870334087874092358469383469574271421367093894078189471051872050421663380336864325128285089965506318580321897287538839079279498795083135291388599682798567692968614988242384565483223784242728362253493553829656953440716279379971338666489360259584228103848566126153165483947561025959594218984052242720231723938958971970139761357569262467716246780499106661715004324925897686139070528870294523448732119462031973436382443676756664130369646320033499751919465326121333200106118967638169172511437319984748757502816292682132794820840241603479187690455101391719759332250994143248481714540837174843402259908330534585863455215668243069061522405111257756396219150438954111237214198794133904709944866713102208983742126341051643325802187273365257956832093243439698080994048505658344125544920761096847951373221993686516650258921876582738176611369282951857236532911389934956218382389154046502529702229350197609372484975469484469530110400641909538805000928480818670962523118797868651708456810948959752754460481867074245480358359050250986034024380739141307857477492280239557947516783296741720961597696314734821653793974965165066342965914016496199510649601910329393726025737422057513930601658345448782376164921069998582982703248639153823675336672690602039065121994948731023639075615601669758821125019293133362970008196304608720307627902669455146370240622369852259556276924151589752411115745329824426993662731648043880435104493547596105056444675721092802293235317138709259607977832323051449472983923385856234758424330785734254526584821988009582701167232312337518704460684523367924315397569717497320987893322357145305803312039465214977291072945481835825774791244457511161105920565816291077661780698469559055373009689235011978800875803720826020462143241345296242160690451598943151368486032892133512675641498868640592147418658223828596166810673352624323965747164299552941622751295791232954559720524910485334443379144413084638812562184533896654378219591047024925923076675225033939289151105793447173056021449755859900464361873586691652978915354170453830774264817374600927275713040227518542159626814222955096604469878497981543379601279373669229976564127763055217996750966534482055298699020156579082698220757626139481326741612725811015946774348247267727403035997129566724290934462221633411740679756782067456366790064369237748431759637838706666848502722465439403594462654933061703227431486972054598882168974864530816243609394188518327062056008677881337379142796897188195730464016064895796127098809161616016681822133152061599335778085942229327957710172520047708245416283911373614952389605751702472366454358929198546120257186690549182618142156417936680892093399649394949344319770179422871103702725916727396833806547950489921664701256286641735854934177032320597489980328837536219692163276499869913400831862966415077011097224983991012507246128311316403788663937291342223552846283335529669779839455760813490531902835669262989754027889468927498677986057124263599240050598513827746087621680359375220453368919904208714915426897103400407873320425074493524908207312006821663948730530046616739875842566801928629687900141957808267723920205423780197486465956184009251844969855529883474628990734480772782420337498657646155460325414722232041991971849578787939691475586114763528724144252854478032345076380155418264974605869555673680052825541781059604683654703685378496935279345271536664913890526643110064828888664197710498801351694312816167639044071501787772288777572175819870992953487303945825068784107887385977802673008756071745783709461889547078333002501507394586417497738183750160221119460005782190005613172909752479919577077777109692317076860974486416448238133100480260587471734450514120581170646776129689342045606197930399167105208319630359534736054817047544547684735138266169165015252595784419624469508497348881439371588792383471674529701157896893793879634125132432334143082992762740860852716760320632044358802727264870522356562308726424438035121846462150669095841903080276262366624772152419025268927686212202627539176387798044189011080276542167876956127932664419422367054059662028960790091426258822735699047872676569516630007766590115427291961943489253825009135227119359274910507867629852209539942316034422105541861636231885598496943449123576566316350078468567052817877779535011759720698842095631764849101409066262292541402678327486239704659247572097482162215515440020302179019445730759161189462573562238593898426855880437070598617258794196143786877906063060405081580990216283461861890212046090389036482695765840249078470599124414662201172135473866474704523995664149580131662044587998662885441999206211096249946624627561016371841111944577383573127153216568624716075793301291098678356091478354872913511254914194959044735492610951000830408127152040743664462961487219637062196656488670974346272098773860966783000682348166614109406121501473498999789979502273383670779793034383215860670855360467598479665099293298819273104471718863361505949874214933401703364918010723535389641491348142035139647251051602523356581548140235097833533416565170691647950453811896601385462408918582248789974364390959660623729406761341425836061884317075309926551173880830995312480044764295447217082559882458534488346636617635816150612998635009533462137162428217582975615881138044160288733286934230944778631716334939570390690073746741755893573158139591193031882597437740656845665988812334512555816742708377280490076360404460820608997763030559930813773459348028853420116722426359190359614805626889349413738007782127108191284301901830794114240284244487123586907544783029545083969260286056529557517944536885944950794996842089577191867511474407484746665530966683565025984715220194670356743727775405272236867966916121763049717902390704005467134007484332684296060450653279926958164607819091578296294592897426750875161925364370256619315701411634920944988211072129180632977653052425065707737666884219894865288144425380918660795791477688011926607308179481544828401106693634229100032579862078131070945740470382908997050584032402542112398446042526404194475269760100332338196542294971261580775145256574330627679614343446147187533735528153415150553333975678422948915981043718266921013703168463538593596000664748208910334477138656798655706683782381583468760599931645754153050522987631904307053851203483511978016322686503876395738890027770403538986917459684823027910359524599992031098411731074140850839250559489699301605723072187671289676538709134788382582196675606335513917736313217452852669529893524036807452452380589353588610656072431255945683547162810185396344986911007039358072163365996742468403769397714885883354175782257541287646554972076493192667130507579843292357664568248895317533025123594886789236762066050680539622261333411622717927196820907024530544355288711913044064866348402264123730491726359973687894197949677516560847722186018718484177871183013886527331551695702509289290010099139349971211093076391623977788155723081905360947530675387948595247973658292015368730804970394220789073738550053503472111600057398887663944817237666293738098851456639593240183472199678570561818200717874780843414856085274149884449486928723115250716034101299095650836510814563888606501921842714329268415182930344315505466766699818007136820996597745705757351183858228137703994468890267518294905409942292379869517807731261025082652280565002140139835626255830483304281179657804832212223009540352413906416791158700261866375853009687160977391180135869772338612399415887089294629181715353963494751643366778460687268835912345278533426688679147758219817088323048477502185110487154412672661733759550361616967996101326910308267849100306081813179581821808956154202077010933589835708255468469870235206994743405271190430885890283922831098363522093061465795767533204756396764948966877960361893041906130108095625220357611653441672771523544598581959657388369181149346390344175019830722069118831948395793087611772970113600714955325443497558370592292657758023911071566018742313414617285766535168215638009616516785594491432825304593285545611324868092215647678402759148594499988595277622586191164193708401383522184921123496515006452638570903079964665401517662470962317715551424545031058411266576995558964413822265566203080782676946904872200924478010605356716433801788071225567234976342993595513633590905694001228322835035685978206263284779499015953671611252726635920331641897448763315856633443828680100079142554977797271270375516500381134387329466438172173984329635276982810626394677606340910403982611148375327706229008899663662966563520324181905824514244324901769429563835357183141044693938400521231883455232984857386119221685074341791875184440529642811324081839405511416497063466261686835840548685532823632596048878152289594790828407106385115261961185914257530359947821213200993351032046433409072207844107767218402702395768218551584908296105533689755626102185878776436641729288680809867103883655483839765571257282282111838617558429768920013062599541875629408594612712019631120918675416544680992303366812293515798872648280976548503401887484405626228562807165363295511535127398687832250549958677284631026776885028479613516942554919321030610262720795855978550097491776119692662376445914717616918650612103092180193757298898285608736140064982529586667728023016157614701575783988664949560897117371086699910595024800804013174950408428772512109118342557843694462458974578769544696091721677297710237503014738163764392129714182718723804822870987128051447542162430994860217475012946264209931640360913408174646584903499528651113336532536400247631624528299934069164051441360722068472650576661691072892511231131849312982344357779815022145109754756152406717576117629157509530183723495814256677871523117389257045067281229414064943183931471588892790430547840106152023762218089426454705848822990281117590122406385473807271045167746802380155955596446862397861680736919090877965292633141861748659526351341591242046878411485879294431979471619503826466649814913034875928685467982122963690059262055571119430144527782710961356980867838007426828845130461559899988640315797299371329863006906033926729447091339549265290128580748748450828887235079253656151382874903929639589592479189823080684353312947570072196531853171563734780934423227544439866504034926171767011777452796810932352902145709775050057557158164002739752859915864659748158673316254921391685098223832385023569554629545046346096372988085396834752185662312566083773982111261954016745432710649677276610949235995809869303526301380010829285798393029340287267640993892518238565852911873218242972716700247811625320370584823665951884692957122213406576943430664281997664052317434976959471506262807367163017488008783025628986880251635052671943403340963534187340573095789322868833016221531965048268173035944840697641748598493531352891722312764669408628488230866670193522456395673972604099379038629454122428398823425660230521831287442035916056926053218327883219602739971599034498959049921885026582617144830890643810694187445277850406180091313705591750950962067760937026868156474142236140443797835426480270304978112133498206287572779572842945701891276153428217982076544399604359537670096402732810461636957246648140035143245671398627744708255174453042295063919491970961904371436560504706527047379093098658563034105471219869083110493173921669126005266173384236731661172128965694038168304786037239789391134799101398779660779756873771816707929496053589426817259842568251830465806009918399691553631930751200981720072791916496479748932984772504818631241135385751708498370246439349040358465943661781307891855209020431159419781972432348459416145336222466434895050271876385037775994968774120195811354364263195140430175390943450095563755893168352887861995067292995545124976090541751750239796003008440204769748058948776693723585554549250297632221659715329721827438416895959622692506295773816089538006119055934093730064330005381217099626595323880839336052191644739369673386931708095776021461097547554505484027628842677747415861229349725072133398933427086934944071469859582406913660031733192174606776649598697401690496522693081132296918060497676505479590022266343902359883922129983338499330592625446921801103691094288682848801174010742919611270753651342276719048155659462214623154431894267153631806027048234750614127832599857230857501423520937844693231509151355941657423150334143707159326692951206549710155761173357320022548781572803114452615045164126583024549459527394600599948191787137255702589633434546863489284280102889994860336012771957024310762016300710053508531976551637089016301260044306039968668402307514953783629702964678208151860893770737628793632667588924867706985726782866463120283342986866940141329780671988409631111391443362210203517502480456947221798814240710103046250136049877108287218156949915465921135790342328636846831919933248357270012516160735077368484045746619854922088493933606706347220213476277278432934359165804459251606076141201206967699060000656087178776902035507002175468467181736880669744513901724842575285002766347586248682239721004095923757946372552102350636628900232906018417338461793784236328373903098625817108245847326990914328291143749717611579430881695011344412302373143831824044388213922457530632213824211011279414807694996847246397825620459158485740092136861974551618297766749955066407701148549936078903951344597674462651791627890523878118655059822936107235454267130664274899306026357700432021560417422119744857831296729743065416241649816205032837467541831392916157960400028380881915422216353922575165735932912156790694183133625868618977383377917442216392202501031213837712129991208065674368185282559584522778162648606613443859682477752439289276260672931478797507779953567274565140321796809695984728388610611039348681411373066282933589211536860257274970473094872234093138058731532127203123109992684935736062768853967755438373154132980811044427353581393411164061667491159403703914061172491549982123720527567862658289948729047701095727693991623486872257024794192840470312799865051163993116601035901223812500977543723464865329020568362198891959106649878342079540782549053157153088315817624127445501475612691830601446376831029576626117451579412763461581777867396087930350738520935598893782753241142845305946352076426427142927541907436067352545883365141999549522442498484769030377446511573532462605007868260312140769440225293012816000507204604407769239794103827111241226014369018864920387339229568141116138122061778871142041546891395662795956143505857057218403628104867283751655522260031111355903305273808626233641912414863454354221562852809807176808889460823344661047681368071147989223241367331954067480083889629295307488091573460896326665734356157468901999229976320230573807158213344007585805370711682436997995588751324974499938641135140151835134863163669005681391006115370103386697246531186889066043005829026224977055092027724384452207069558963580516771856886576908845016334840236807180062855281442453019724162711751992235060613288503453425176783991931890000054640099557076123407519460748301872034914363771206126356983042913941586912855034740966397844795956791601622956204842342157653072340946027511592720373157849288244064249708818288171738805065800123501641529736122283555751448071993390515583098566162332481940306809466613898291312923509080419800983073990651681065595641689196307264287255189039939178393055919248995651125520340082090232573940014148988997253840195759165899227600379108026231545030069721345297501894500541794410825776494140498405139436477672203890243034981793140902659212312292235269975496080127126663984874833298678655925503695087267265468396362219038858976119062193191341408729340553400105921002949269771136915650293457378827700045510222055043157130317296332149817162081904580991836127470429765593586404372694519718563448888988431078137904220673094220052409928435382972988037311980640215413944510092222146451010823143090759598514173717611067951588407067366755766129937182110254667020422129383518284704896767037476284920995566080435560038262375448378012175044792868390896157038810263965910859235096453501018219501225425163497516211197218285090864620133420965341872376562458533819027666331129184408523220450345271091792898653078567904017736026397200283719478470534062615731698829219798509632747449278629250371187682612102049405163977323697717429551193544775911340352061229450246383497565123262983416509472346986024051574080595197816320206506059123285271768581622435126165340691043552769652886288818138962116063501632297269574755175193239324300822396720904258976591249584228022793846594828068354980397261468409200545139270821901188658675761888364613360648034960878115707015553502618575780356759522569496886851285061562831197642261773467282428698856448989519457935518455791925860821769993191186591043830345610691179808248840785064326296751476520126775412521795233332060524998619842482510563836187884333891187497659648938975914635784686884811397014856900674690670082036426927165183724277173815051109686854188786681443260183532861703906954435009028720216563245223969598740796549524944455085523261784787384219154448612737410690018024419824740785278949659658870244171949990295687477590050091910556625708838047656369522811238862422261763814669958858485791775228740511669006655903496742050806867921739041408821933728042520622036006130514524280892224846209425723557328591876670393144073916129121104724603914068121672296218102399641644877645340325602291813074523598835809306983576474506425519851290765502194269588401131368451047121326114935001405937863779477370888560043188472201476229351213592941759290537598224018910861192536145887198254924733745082854841237856866884643847176220912152349123551160412898388281218158355268291782418517698485852955440460112145284783065315260032385400563268083896849307344045437191634771236085240679810033426077443946336092844731443893491539682018793958391601754544012839259182561922825280854603961695185637621931223260771787195642666043725356434234282666812083906804665811797777655458035357696951289067034213899813043026625475104037911806388217038941838421199915890159487856994946637311393332833299351294854412395360810200674924664270779524602220139292694686919401489180617140687822862928292081823119961544975656637528077111885625081002569936045952390411805504675997799470328926120418192121229739609318950391351573052317629871290552030787792245141050394735893802075232667882002902546489146269605924444846986930988736938636652512602483859669490428109724771987246285811274753438648999704417987023594435659481408718765964311093172341219608748962553130509297634162014451703494247108331630643622005205203254033009445246155324619163304301010276567723591360896851541336385759195164964918865178566637794997415609673803585285914644922138222352261806955495752994162750904249070582464964731456281609576519434271777584663967065060040095155722818360115741270658758896620913069713336656736534403099469614711220768901082090813450795150903240635067284508886698302978256332619875602361370734812201177290062777128625443329370873060946328181567545873976890782547006133276261222371545372039339426306924500640428224274906018813285863680588812909733841857501911876580107589464437183631127514913159296779770910137428268567295498958132354913480038793628535277465598375563046383948216765598757401959375119917153550664767312059459893538717953471500394347767065103120128800639621045654593192022287212190035305595257860118202864324399769015931777817150993355535274312373248121057962873303444048489171539528189123120840014224602079075672968772209921988787329993073790423630516482408446155976856168482865301628830428522337233566409390585872992410866916220409706059683290080814448642939682498555173926980473093420823270970720300112399550658096064741724382857291506342419487174860896834088182688088197333346829269247419126986862285034706342716184399676530949834526823526171251755589067440407408330494690300006932027602334279886371201192869645147626337104832734428637375169624420977542174501916760314540343529970988325171916627666456399032300681635018438633039608317507054725692659944635305105694069639751453648187338288332901937901992263221497740474113385342868703987669932055347753390720216904972860970044281967061720362919376935671993333314658590837206106620106725382348902146785688336795543676100418337934350733089391283286834039970142978819672904775197370638695122254522393662875428484150165411584426308404895314021503791033305147509365525056800740587756806695165852491474272723467711790701302532330166093819269257703377569694471683868036578097955137543700391001208854242716080458361658201702322628768428698328855489376477825094822058532409999751270680895883942126883270759064822902846710018599844395722456149395075292569009688406010460985236229265517775628598578542510957690670102769776815648209771862147685335658992457131940968293413892630211711813748748746287169218870858192711496223078448284955195066394948096164935270454515028972255217176715057897327026514961290282062608449091155585859104526998187113760677791636262701630483069300528213865284693296356697295397716948124112812714588030001827377978929650999460881492227890983425489876483630910250960558279499562443215545148705026826211890935077614671309930289729685017990972124604235664538669013564553839876104307131677777779546082475106495411938376720915824906880376744933080569945888743550373128912120433804144105548071248472613868469087425315375103863512901176480984394793347329287520287436034363126510034446498266750301293934299226154102676784819383328163791047528353293966462986687646539161482810388611386416173009196915815454337535207705767651553936345341633047981690285148919902568233996636715133956716460019860401215428239475613852700867819889908369052002414918742265888589565069071549582354435637090967989036956747104066805172229053688654255304652996447090013526102497893286470918141217676698830843129302547548341105570087027195820867517556791117156028012036192358194174921988136407267455207174434155766366467683679639458808391300192614273439207253351008172709761681336900553757805805664681604789952727617879138384313429527059415652280348567422562165620603540620524591894178144357979575502859604853409086686436713896946872271042435207583966523182917838688477032407922695588455137290985027537651855840550699906091805519469360474394424359101520184928850823902804289385625104307015273516093404614970206328875502878650897393101223820245102335988561121552432421826300990082214766326129054219747583626313023048295971520635295355583491508816300253892336275980070403601726949517273278070087893385169275268083553276616466243291746611307790630829738982485527555564160159948067795277679288378131675070297434881902551531631335060172694891267504453250177089794731970406085179239355426381850522749306741236992199380658588511724547636233447646573360542168568344462232044646228045089781107367880455353938438646542998299616847312651057859378544198783296217995189595634240889235024610010206002600233134359518100357150135348552587479426291246676253507527518873965133786564621383887309645328629031247025941666561781303995792718948702512635201225923134329234093586908831262674185247037718997772245790134270556519418748161682904847328237841881353525938287191637578534489003147861537165063303358031563502371875340467580254072872849226659659534771769236115064687631197795665623572167061393412619927349994255875286983923113145675667591290204621358277549358903511460605063580986852185635589394986864012841070770097918236754000982236305753934478158472238777761529374818375064505748083814887349620483120664551710491176520698196149897532288959092857422142993485797391206225464967887385517072985264718031575197644443743473095870648208371358023084773009132184406272889639528422268155323405008854060439672856331871803085075097541808888201080339678052142486880517835016034219098544876223390583355193250624669990594384617300540391318303180764062944060300541438644758127991292825708888361727478188578468253093676408298451238694090007515781329325104447678355560919890237162627092694796816171036321419512475039372892590182352589303633763737454278057454166703308634113701760742415734087069547813927216337260775049479370280109982143266684915771025304426446333731667346956449263715850811588548454151241034946930837682928162701481828066531857458427758002904913582148445332297499999583491071558881139539283735697779855608216461097533820409400291289955415684087691349819486535132855055762022334515794341734677730802970683863796934000430357069131471885799111874824075004984877400212024437316374697775535842162368635589514670853408003872680684606239661564945128822221334726978639077637493146064981331688533212090178632010957587128472512598820655019366750016737897151090402531864390132442774810917103474693989414977758935064751576695055082038727732128674291041356441923723863866936335472784621831688388783013037731507820310324997680224627404794810690450068306454378306547272151257614173018075381547731561236244123316262830648153440435235477942592137328461584013759195824527491058920245107658831061999097901289528997083897390764648017726274192005683116985076030515627619162392205771245094034224185767119374732505815314652994744400288731540093722573750246740129044511404633054082038379701194472341614893101694695229527785545220698590401433855144663037849884350232388642809442092655536921156191626747701587986730638024882327281584264360799912777036679925007265972986853610934021385322173716232505634821339935535809052323823690811705088407473954187262492179343950505116134951353496699455907364109965766600103131885690228489192694158022387411103300319214479711896790363437106779718147023531718883494454814763195763166044511838557833334295558172115112156337985984078028415774678222016702688582524712010602187237455992350414291775167807850037227964743270022775777032998551821408935980080705799529171929401127853831192753722238757216639437172007393070219118238156164892244696931429603049681123526140724488440866390993644600617632865879674531503853729688636637933437605953523624516985092960952590119717940525364930158707768466876894548682463735288251353371949011128932404859886920722691523246376617929127281646933854512713465323331550072884340326454663765393074645636955944012611477898235941511245466838258319775104233092384988979082449829431628368362466221340538284207270186986966253253751355503345111240687527473817807363065877512011038054117659670280423912336590464591917491657739147864713406761723693176073076659455332938548047738208525844680623371525922557951215833906348403349845633426196913473005706601137124846774395214903929148019816676945314719379160812469934004238831133505190176545623928953089261702514734523853323087381951662981372261644985555801250534220012628458380466859751681599324699740221440260687557087218275140197879047878788610472551172890892887150423458585050627099073192432896433132118125078096832466209470617266011267565348258422203860340977486305308390084319045929152477105022073981266238363079909017374575436074028391913169141304623379555763205624324432932408277247466812846844281905883491646152393875707241017183515717748703240903675826284903485532218818049830722942840953968185232833305687483689057491570506997012228952989871171884900999318598448243196870291660432007138649067613020247071131240553746414359494143618687689728485289050965949689080316764840167861293521608105600720383078572004146040530521885767675642887860475452216533176904595925661264333650287699830514822716047945955577376024412781419398878604616479984520996354993813680478172563229515465154446697302268951343733358022394623077671577323389782437388183315103150652382279242941774163404143663614530986854147018717422806835710936195763005314603660558116902669559788195852038127980351981324920304191310980331965075285135983672414595729019135103143142616524580922623515157899012408861644454222278125408980250103071836217280268458206020234757704092320543357346244522143340954129263059691485951744852085578417472760434231746592200172461911785759249699287977914009755437047860950221305906334181134701522771730924505135397482133440700224523023926382784124997883700740132863957665640784111627295851213283063990316422428790516333677221677552879206729973033847008409903476367438548636340100544761838304054906184664771383100696814289941219774980607358222496160481483409896798572048364099039428075208338189896606816018092234958927479866915227984758740656782595058924827903801281473390087025244915713014657272998402881395555202208171869086024183482086365438818023792690090437677986223486368378217274020220094083228394249184352873279056918459140617625569467574292717881413596051909424982569856813072047906873903804345945943460640793868817457644022529632816001879569988419809669327464575458615071155383879280997704607594462743637247588736922204891959484080261502706949756575077712293986404464255058266626438472932782360214490149079681183576098610610300744428565422995853099075154696702333386477097361558281424004819075830740181348136410774113601529059759774135210843754672616943357336549012610547822627984278353125178209857192333402876314131079528423568834740501291251606177443861421849766642843462463107900950858786772346205393315075748928610504195981825078817361431069157653669213767599018180152544122625734732865459741216708926343212842420788837038249138573378889598949519469477505696524228273297207531705011803634077025798147491248919729294586221674144120027426890568018777663743580333264581803891098301776293332704402194854706484208365422785497257910026621943162243725006801275594011699581743023115285147062866527251088898321119131888813018496524316101986081595426466381330843153648192634837560316842604002905406648634526342177310858394977010201074531463393066944844409480435164185632746179899661720266320541012389881324101936411503734881577299780445781842964722102249068483761374463625150977848565472743008492392110335232297856992049699517934737830808881618559914900030124588599848838867960383179573832598778847371686110696693768157262575200782391070614565897307673855128797097196552945018368831478355774118848202791323207937524826412880343170394132880308213495600862432754749067698565026177734123756384123587908415387878360590555979865497753367606236495074131103932551693209819525756569527297830276380477939686219615421445951196043864623008082614207468398899851739930803593589341381586422055695238428325518654220937750332230489809194271226787344904947641038522094714768664110676113094425987482850657301184632781475415014737520814214117786059799765252083087029995777844625624043159165672782368780014092958720734884853432849769373877038240360168408415428645105016452559384785778180993178222001513072971662502315357649543858577323097409892199459692489923763035267230690826070618992814189798270102129349548158051641410805024776991383473229786276467660947903482792869985812502649076162854653346228402973860364371322104260695441656627944878500412809577179365551581076347291335130825950476649789266251635883145517721120473292462781954244958032502421064431491274921413473029334145758775089123167840142889989176376956188899962140278561959423971792023345683101003249905790892644980445412387299780902190310842043438918660583591539480415182995984038790822860766371595099080044845916555385086947167083652154370205686360841900350568392717321037777499130057775045071392628149736219089221841402696878835817396067374308793133310634868033399265474119064254636388777716570407117368573872760726272886254463699445165347765825584537287116094176254413246234364727183401893632590626167707917168817629509701490730994408152325311963741813495711043839340150184378792767584922546046698335290483768694073472338078027677711861033657804938125175975660588706581787124567988810271297780208552341673160433871498659101520608605469929951200782303857476683838974910118213325549986685091612027372706441447493716508122718134744164976103082360705393484072428426565417290846698766352412299481729383237920996980387627116150912802370840770897391109353337139166906255595048563925173192463792164454979195902890973260807569581459151832556499186491984678339825171462596653052794628692266347499286029373675728658789401426274867017603876523989080052170154599085146171377834383678109972122810994620028613432861196748627230410542912422587156786557109822094169888557687360859010018356640891839318542213021522795680005577885750454629347569986297788123322531926645056921026290042606323448375841538727137121438424157615542786409756712061515706099144789685776150677448104650738071512837805237205356032756676929065965612392625505802699064716900971497954716422973959259373150170722722479467671106394402816380259005560634748040036996613377437461482643800617287251692921673867214474844144225317472495430772814753599337238145003864751634334750435278512763997263364886242565012864761134304184297226569287602134001240521599148342904550935945505308559528993829151126811657316152490770387431707063692627540509208586175974227817726614707461370929032022013232035264365312648658820968598888783670760286738163054982257086864357097052533129747725193995159779867557039941964827099014509595608089688507052445926531441402876986420238782874359862822694951802390024704024115394196472116055887960746587967120260892869493688676715672105788487114661560197258537540061672824146980219031994970418712413007638284553979575939438344564029295953477064834222621158274118445825207566401079024430816856651804968889204778995933239107832542118166393197678341671143685812435472090680779674946981775829732802320239210400623864927141432506149756183994791414791715509996601125449699648350309190275338078279047156420336843068658838611191380608541335080868301416966853441141411951971923806562600828339668865436867686296476826165931511431874477327009277070783483192203946679985699175192956920097576420689510582707755789126590948772360541384951400034214097859458316167018953836769466094088946456767065028381593182028474922677603436836660013662823875183662424937506236291992997156767004188528628675897745436440821512146409992530159116365404059508502823675741798051896675807560696645103896488940095420250516962382141784936960393939352930535608519279825238440174321940507345802845897784107956149651612821779811387406235228693675204710801269365773223532197099539089621974260516931242345908101964602973036410490446801597786915121272449364400621025389569670074351176382126645754492656591014552634645137972860688027097966614969603408968637739841555491975019515408533749645703840627256050377793060305123747558862955515584740778780938863629679300801813405816484257651415939359099680632978886482199658511992932129154264673681811807883977558932440229100977405220522843068752823519270068156454808280353763160608967996520781772722593841900476247817717178524589993119984599425628439706312463914311476171530180912459093094996864828946650733058913875232973655051449332556095040973728487247103327354447885652676320879262143918157823189836626221434771746956586359303526884593684941046258870466326405228584478626328323587631407673253314583498373464682842009989327474185449304448585598187568551129990992352319507624727607004464989697619638088541529746107700175597167829355686455424364236453095596135284117625214755757451742303578851318999222062846773534291752946582709094606039505633422601189053402800187886231833656197123604880612041066146225953654191604584837955582611243336675957849295014126332569648682443177336473144590465720104324293038538250277673798851032284775630918463372626688326958506244388530030212477757168893819171348173696417238578259409441695141582252543292880038517487609550579690106435992546930973332150301604271016266943164775246201262630659481423931615269865439844104487077324563947305837957672496541581215240403105271465148625450518904689776563225435900716774973616470014713798127981636067389769899842392893949606857209227274022911106438247740458975241917020994967253574043025857698751937461369766582248066953302972676739943949471255289644702458647263180999457201179605787694192804618474629219322736390192800182065375077039663171527565542129052649517106960415935838991331455922727284966369816374085153792734409884655465393533228988429594553819382458184003051886990744840813349636314345275681149509089393127051747954640829546516883514284435802509842682545180320416080939342469460428430393541417571817474398497024052924890826817754612615899341091571529164716835981484383446432505344307122912364518673323276990600635877991901885514229287143409322112133753984431290104630397740605124253053349920777376142411251623771307560555304635195493800704901279039999933313897674727775687113163759438283482674353301263637827720857234265755337535666507741157408403254096019574993092840173259776308733678708431021414786913207212405098774266175035081285692499219634498582563960702236312870008612294179540340329961371019533878132900769136292914137256772446207484865261997761243557880248506241221819244230760487916790331598646894992912031154693766367521065970185990110571601503289832326066234586662557815322891916596007225508449557040509547378512041707938501498454306914745407713589082290780335050099085435527855046309866005400669245438859139688752933620743668580016286211217890563434759526787866083108915226665953647891769373367644867009963511284165507597989691190731613674661730641766334568259803006824986463624936738386464618292768601890893824099684116537768673386370014693728288404421266912604250636632211631544258599547789776862839962224192976506874213884306642311313038726940193661444297238911105054880518670461794498299216039305491416935920179033748804393534009653231263685187504905029530957681345562697957937808049472307018977695438442524959495153528586675091908340282050353524118302349599738534099448776755390838172991115958179590230306230762117059655021095817821531304854774276596518765554037247437195312102185598621672073121806993368761916256352007046135756496785931005148910512641528731824863138362232262091065994081203616621361733962146344183992480261188995752227018318243701057324082647579743983179135862456520013995715160807310640360472624921317441582869543055331257764618251563009832615227727127510833763034395008306106913548405626445480253056427009403497734979673227804831336358913104958224097706203633154012239586949661134827855381460296416401691352248091496666060750262356940204179207561496919481112496889286993496969653675801718077922056887340838472096582431716231800385114290620103638505509298291074453976276683593639429503310447470505752619678902820033355546685507945769932299272474818999131746953929295971667918294851746706847784021994911849050107122523547265252562056539722215659416723166557953091222163447988523410886457196382779712757193520251544369922263873946185052302359929214965133608448290883509779713920692532213874984709091763492796793519500360753504701565207592808160984825465697119581555456743024495830418461916581301056745859908099102171290093104341851221959805990468536689638529669732208523507289328954148809098671811949590866531648901488147969778928396535992611870248743844962250931748650682071919948490703016128382523564754498373771651198829923318439044480407172516397409973225986228729754917390246459163913815814583381102268669055751644020639498096560730780413746610060171734185213879249671917616747532017648856525193983600332662969973412167416709970014565859265071091834381524946270435837915706773291194403690639683836325522763131655058375999241906750183996118896125876867763435406329875549801568160639284126953997067567485797486136890085132487577286492943353094251055812296024383289557749217884612274718940408403670828793401624083731185771982850381211732350972869917889594702545553493575685345889224094124849857201426160863892577950110786517575374925149276426298368890944803680249642175788335182238868401372247005655779724918139362126399032994843104197713622405928051136433650299945233538649347555258950446296428656200502626556020977684435144192911778711738658836333714374095359790556058628934356969214572389328997166577676573740189553363986526067239738343280700999816698392586946142959410475059436545773147743303940449502093549704143224417026388863303787755465496654319611088280642495601792850459924937134280295568591630565542868557031462391920743372663008739044178947315820927640281604604405928816403831468016790236278613989134382353458370729469678065822974426990963038394574364000302342489423054066913400022323473121390676521198283966837914292837861649833280997784773315495793044649783989124838530176124953605834385299937804543126399481665317544863420643699211955879247186374276652189566269850573432189551116135880797457751520021776923372111573331022531384761462587525188230602517059980512475828748783293259260046144870862598026411714775914620399019734746967429481519264613021307236581774259121549722799886595148904816244508031389722070014458458833167499514531566836050204415166762880038231073052485304369556128429979220222903740440565619755936824471358009054190484171736247073432536599061507075644913028698717854038532910738910611033830008631120880175094253737438188763254327348605937074638916902116246463802793373869365384096068746167091989089600937482776667686651513989025607320767616839948730080334921022006967146788909555632267619814243032662685626156219350228328945071620236530809926457837022082418731667835856147924158260011080934874602834888557668104852399556239315121657133633106901596645574170164111683017646262490161872368914222660537442046474280499200388909141587154172868210379242326019297765389603816418945014347495888686869649135520025557319755102416969790697518860630656332376176487880232190611268808885642197565518058319239539882781187309211881530751341784626331795025157857267196639330041392466714338346013754076580682015332060889723245372858053368517150147397743786070767711708730628453804398318117133466396640461394913320013769298954136226406254585999698997966078996392275149916631903409165683826905406346214680227644582646541123874541142912354533391267297204812185818961706636044029091679207172966255640167359127417921241821130467900738230211971689137286600018079177356835287224524071066596983780655486028800859889574835761702597334579608247316033906456030665977168652587599882026298767158159171177812706335365073874213908271177852455416545817042139079904755264317044146539809723302895362164018907727326312610079702563918474122881878426549625246476040872034816839826030339062668055918717392372250638184930661148175466502216462680163690230819300660303245570466137740751547329556895922537153124374040497326281938097839581427269459843272637114938407266346905398837030303585773452928862694395707838950770992139364417591878406454407928221429111766694207858002908851023032686477580735064290041563549402623087073812529876987286087373022125231553708296271957757647646944661075685608982920191482923415878958884104678465595235268333356915787017729612237249078250955291657143668869688319599522851355626508545905612874487624884262117834145244407393686709016210189982495645695273538240762031775158078708533226859204783445838675437587130017075987935471382851065780743986145078575493978223501086908159087667686844555366118094766760816120549057464372274099734111823938590735821117524837895219900311774605810705320068362837360004227533155652756489380903996187411657114440211745603205620875484932386346961915230249712990684600899114071346591229202204545581275506122026265843273570012545998306114700354139950029974717367186792843443491161155897636421390830330901165530648012285985725747077136064330176854312061227997738060353184116990056682808077353722631458736533453463703515444023075479424824049503725030043799406321355656230615444046622393610858550406010647996103867061063173211905983829193631400165486537978650123991286251070786683244038772397510875405505392804191743411746083489392839575481205617920889472388503322492219891270481328769733084374061567602462946306265007620571211136584024216224187277099552737413714783232543605418486663435134856663815656948210302061649620132967217942815716429623174354143653517782526943800166352784324699119960664768395373270873961191004702067093993799058913888131855110927898119020215125104637239731872500972316589428461915523536052613972856138268099138457058410619506942006912925087883704352736368876065887251664750090618597771194400611959346073430705247172007600798863033446519375936532945612136731884916166347069302295149413539225290792142511522015322744718213119430790249924363798959690892746232960023821397279998495165201267375040495586012839907670491911960756975517803899560018921728794782110631707595631433990889167978009801239679537284965917134958557989658299945388564550446924811635189834282306286594768826174382353478056697498224206191554294988282027796424248694571440740573321736501499195227517348245956808465304807395316495787885784447115327584400886186888318998484450442928565411708707715011841291786723198152879628276248273243086237696710569631251237856328313743849727127062267613053031296229173461925639671972166152005562455899656054079695296448298274987448461527599852967008865896341319255823352497577444353036375183709003809968797733567531626515221477080648988732278605758292048334565846951186744275675263695600214795689669278644239624674440226223306009405301040305134659461115441660153281587154331288169183687936278094921513312371969306037649069278363050019051769865387400487529758364934408109188802781147031268595845286200708125665506367349967546833060325092772994296034638316047967927749452404612499536228395997958990934896350443072827472582945708679522447181208260460723841389101054442462135047930332907972771849563804371067762806822361441881073737784732233698440216817528374851685244511660407124640235325446479952905932541493436393073869273178941946268380738231824525344558707124540339169713270938037524277100475980554228230246869819415927605894104093665303221811242699376223955001918370298516857443898862454515559157508712289202850369556366703612689954893696695882800377124014615688879099661389851873005669576297932958738401705520913655902254162425918333061110821837819615458893170211765165186782265468489316516454547652843559145250140678007376238518477655864022824553584258097330449017326473211641402489116637502780292624654819838338429236839938133297910458076029403885519409549581932362882604411828599707484192397352676008021101363495801912799863624302643247715072797982979506139827992586093951159216479299109289779008194434781367573705020563454922393284848544095759903604210818799954705454389210696964456274267918355116518644464939997235047039095053041749402937117790820270215969290125951552282674554619705479501689454849802124674159716856423927990103555497854957370090065553701310297695050794364965604375951909075487759910993144967394322315362729419704580114715266161188705302180493790185280480482598870069429412124670862229574616138238447660085334823023764818368061569310759507685220815675042672106178114959479263423043628569465939253250156461231063312589885780447397928136651584404994986078666916482522160052285398663909810032458087434468570870042852737378576926147945599067561266302523557211602497587824838489750069640347719174768442585664051555323755071139799675697688798205120280240377386160624027516342626167960183629015412656012326784958688619116039520336085181979463588527607300257045849049002682766373151454309922549475995371012473159232256387983991661651730634468255824721381013124954814716564961947631207265073636860305211485249850359327347873637073608073932409510306973497540366698313347346649763861353114537345005596800093502763387853769179335552181565362538192558758433872470659303213949292056253333067711286607063957591164935989223171522909546078063842278646498536830765651645357284650305760926903221526230081871609355464694806062928039517159531554709315523050455229859503736023269706865113068760090927070607660325555793362171484709426632101441731666084175868151548663116215554717907492256026591172837537716941606441387976537967303644201924470845636730755045590535262958372006938688319437831721672422833914560439178317690838823639810773095987895175898230880658041831746787851193394034987749878805064004625607022623567781847356935418932874383283608568821763171828060229191140537976551310668047333095580725947373864623541153453072826931103278550140075271576720050108122232065818203694615705027825807312388591952565963924457456095525676488869096291845046762214061884055646902904334983383257178212286633594858662638270378273934053097120563916821458823152714386031779736765541572434813000671935149590484571207051593515070867723098521096521261214975643505266302721646333256071363189841965079045193460750931945991740791458987730310759893950912199707369737235450564874423263634126797389747931067817927857465560545139421811916360013801123332422417719706191776591482588183815363014387625704132772731389585923361242724062963070933842305024446428130362258274022370224978458853228498920753944964793429891000978613899515047508564049143306695192656458806780378013259863347949458231498413315891104556348766961370761391680491491189231510168183245743158870332854342674509512666885603696660797910766112286635682339608416198963682251442226249811203060065366535897145631549030801711852775188655130742800639812858945843936730055155913151750743879641717523635899635210604506973510652283467025595813676094796715051312362801620539392970939171750343584372881073647835668775128208559191535200430639742517003873825041062727096930588788738147362548150525240200949921294087572526833866577880162310224396116389182337544820758332194671839003294531717584729663604561478164964751138726453732764574774078351924691855872060067896580117135979077938165208011651057966969832760010872060844975448552809466468679176185556653413222166205725905639381577961490039459930442647330674781053396078691723684715580329409425779999821255711853153585010261906664034230356944724828389201232100733667244817720355306275391139415541461998899828656789196417666169319101376551555797782771151577874438214430322046862599717606976934439078734965215416706337895975279509980858830174343997333994909017015839562039598691311427962823341460131035951065533616697476385900405074443682179173060834944558602664562839924883642150023856255412624989994420071034221503035141501758033518876580043462724014254286729088921060225134557899822001539840419511260515059228889141636310070643293997617678742166814790988507200430332381186747254480459309707240289685481645454847190064441863380728722146603005264798748145252725630553857225705421747635910210494363773193398564151849238484397900730091327618724783674402499356256767321791159119586178837997780100020463084684109618735676241236962958401699497387608520185501354035734711596177554793025700078580179417197188878995116127884312671268840710933318931487234206026299597616378466223968844365915764834312467337422234704847035592034324800761012487090298818593250836591504891537605921483633834786805879274715351623706964528399215387626295423405538220259592300790064312886964360657553668649291205115451666597463985039028873613636481654289602284848073281140484566186610666822928026617662117367712134052722461582750797506190700357242700911116084377049128720701416264456327659183321720153210442699350606867299658677053222285279225860985113537407908192675842015571608953435731882739614465101830633410385799927103413350821956110487980933386829842329593560692350133739768545212873601642626315270010595204615252248976658779893474222255890589419909544208786984668520385917109480639680152129980501862267224564797113356014274000805116922435924423458110890948211534872057267621889965005410685803743095373498147196070960008172544447115470516209587625289058066815326236987981043702449085168805813007232513319380922668075789473263352979686743189706245268214334186149518990052887568857691023889114515179909223690600029341765379483536231625438835731834080527227722987773794731355842308748407972983524930678870303862380167592173931774259895259348184678236707606701852372043300755348110428417662210818808501595731378482273531533337133498660753461392959309928859438204495261074703533037928880137673461856618518962320789513181669768215337092119814818109896536369160090759677252814516790777277338505176322529003517192406233231175795866611725230672908899575348636984151917681076387473299234074744739683074530986933210415496633851052771124647350268668957375945288935611169050707384638779448823300714684810102681905121233136565293597276644426950076726103700038516478052383934164803979737962745692387122324873633922215814730311221112190498665895277143909820222811941974586417627360955554271305684274106170407548212765881333232522508189149700432939560763330908871115651116421123671116826479022150181432154465670042291662659055583997319565645118303716980253429944277647208591034902474984064287807108588045115978628135208547602187299625410996405055105938948891569926090380148733440007557748124996813293623648905796791126274815497806048104237711583793522895265104933033904549754302105751694752622486619768925200022931220527841353005673447154592835692348611683259391809719666219866655835376265128113644135199300374498578657679292591526028852695495265348434931675311540409830126504237826038025221306949821356596913940189210699042725195101884015676917799073171061481118065465462616871326818873238772729928904196329110000799428326481116700850324696237939383439051773149610801308638711565138116859700955002778264396667442300668935909232915413326811482717326006406766189277136463168014899922507654557568001516158804968196040925562546926455111401570669573253787904106900850508469496073661490988495616874258360170542280785037329182445815748345648380752906580035191894892253880767934031122280742844171343033952171162457604917824853518015588736303615485230290275318522637667956826571461682810140449499498141519689264537329426070434259293841734652954675285183897921264790325816557808535914077394564983315090067285458442021164774311320262233063291514132039798279389827509885414786679670297373216970798467037333374149724037190499579320098763075594545187893278177429780368067228167080112416979866758351447243643265579497902690342436816349700330400927704790506226471109376080770723249474246002000673268888298148634461204905268665048598342975355199769311112571293358228546083678784564117671946831791456647804928385586709672398191860762448072618684133435105470858272827104244230896510639623823501831867419985585998536009317860169487394125912839553771720551881279333263203323171131776889712547730045988980373988507812980204410205792931420400699200337844598901354810913441363713881588102045786272605419827694726034254681684347448034411326973152013790552587295864854687830421466295595741837965658238356328117109977771852665637251400740343753264949781021924093702686406921574571063033554424090923955667552238375249643575172309725438679590947338257549796513004248554763503834607193376697677345852398987339202179800313624848653944825033368849123900115057899054295690829193339034707973005854601055310064000752090302235851105209594226552283019029375987432826142233432990403167040795412443804417756145900650565083592865009067499688007558572597719908385705730456960315725479030165667498191419482075965814059359044953685414418798671562360556802545697711587392668497899872372099993736790708924823239939283534328815924169177206912504823231776592290902137541790557549517996708840837144726219068637492710101832548149988105281339296847881574409251744914245627087991199580452720362337966254527156422074383760432644369291657207563876540003113622109525331045093144947113091344654580374466072422738264141908856578768265298144646533250881172046307396173981067455931215423001096204069210332236690200640144176368578788494333510974684013176181145018172585262869582403195669876484584738899297335658983172571205640335920626985512882925620862517239082005649179012065891400933218611128505726111286146877597482774404756799111493469073650503136724218312717791109337551806220658009864552378035593317333414621905093023177631209114773113680297394444842107127430528568741116680211511254041944469081748104908413817926249322060660256450414592855605728886501924424299494842488996703410211164194429322421684125455209383157595302172856555688440549554335874930246935401887475543015355529131060709484734189674137277744148602248605993333633157730799435305302074596677943962777082219282068314676617463970907482467397166111511400572594386578610306790608555222725711244255709560687310017763377807706838561572014314607837432590919735761507239916223771874560946527762045562640685809480023861502428043548083042855158373089844243948013187142690294174592406305525856843255272251320047108076416163598709343845558775615676509734296179029216479808608703057635366652153583267188930004867451173155703698582346201312517539570734888255017513533422537116623638933913543857313781054560472445755446624816640066081197705399897984279525395227426372328332064509608884533411837676097055207560804472073367430285175586470087559564879141480706820729953173214195203102705489509406054476685484141219442574675458402508445621851239624430611434255808158880384518423960179585828156256722625475359924608353801057230486551013702348822733327719196077835534340516204676111196188148364058822829382688851232504974243012478464722230056059621437216777215630803762219699698722089395396566471023320881519466334367182505194904176548489788177863714114981837513730083684202509298877077738696326480462889363346411423103915385820358551899129222577955967796605882516746867992181611144001168015989431546963515645247047780398694194146006790902039830321992761969108348892700596531421365785744142058341599677402808089115562130694174649906110957886213883765134070875428889747513780625432873114890486001346206171371232153373015288685082156552541320179507041101034682682494172361627692913540035864947148522885883439451903931333400058349865698920886225285857386825804638064166080283731466299994658582038803362819158725577064206403398707595085700269370159514871562770532472198001015218111475551798174773304061046280541397982091326305522628331365567043678054340724283407672437843588044596361999849745427629420198686374780452536238675201465062655763240103979037680176839243799887499780272061202237465615633662238779925615291713228415093896903452884484279006420692134189529572563227763625157859775565187417792546722337888290792302699456268569972849325162426073093005569620464466735298974541567362880952934521439169856333639083813857361402958786641947887409467683662984681912374212570888275913300612715005878929544541160974868709731113340928651882853189254215141100752948472195301303199502185335705112526445164899272428297528960885729486716958114254691779178295157425936631568005729767009309241014557805588748931371672494503310987672210546837120198453061054100288575509545126396205444018225263776199675679522449988487964223804017461252630635028776083414291058635592849994091244604843299068720867649818994073865365503661282138304152126906608485236985705705222068991226808577309375392711042240752518556873258094672262538181732195923299622551131131648614507271431421969601086114588162614172467820770654123666976420981578788907131265727728002329255535010289055803230814264819720396297897771477730982567519137211991592340180344317760122150829590830777500522683200731453797418968753067483801315788254901830850297439445558582096755130031060459976105598849781798064698127349781258076639855568564940097050378662625049147833260341559533246045295384604285205638645972571572638531514525451145440078333024762357332974739291025682517775675712740840705834473354273654076107633602688653372468540475072082266467180471165820753420337998226131179276793555875029934267355933465346470793465586409952395713746600328829807246168848344117682924971980973955018426540259423600771177796142605493937368176037999346761523406360274412078375195215947505584647243210388483575024854780684257416007027770997001534572683421869938191902625124723523363372349243061331830509828660945840097757096121703795292669161692842725045012418365445938405797367397689435464014428681573540353522402602960011483708947082989583239345509262611153800038816251813730401910982778623554428006260408132221495116268475816701706915000368949751383365933233125729783461401028743396984212772845689027316259460589415942259596052118926601709410096823938669214301450105522293618291144647133047345755873885294382596913064749215049659123525124535942120790293010725914690037637123485452077359823603469413802628503279738236305434472585881460913174894253998394010877280733036496136691570798782647390810355849403064643581860331797378305577176727017255871933899704862285526253983276287670746205121217410024491100251330482176706447192099423672158679675752139217306665561511306021133303275146832755064822007629585390280532486720471558448483115564265974932139759838794898911941514981915045286470186633238775827802311923017670516833815554891996880584211450246995477120041056765660261779550047350423119053405958675339952964933427551427988464246347796342123335812228024988109401347810568357695683236178100799818499999399393504165131248937870192287641026545570372199710094155295265953940083960310421361693357606732716915874963438045782893007557716557366856852687001132593544452467325888524679019372562762243103948857285073575633275757005858240221035119933603961402427902169427721085470174519877855956445161118944927279709528315226311248627007701931791453680324105276388438130385403528583174896862126296855976417246812474049512240477035715820423491476559098067111308455454264450780335972231771881664463032896601051895108065901839599106575006053293272855095450608418756549980819366071061697721240595132995593156159736392548532087300825572666839800141925768482910456675772031941851312247715284740862446481569683138908349816507693052736672914804519106614398243945572551459102351799151346607188456496427569290841048514016826831000199612266692864344375479156540760318222267069100233306881053438504518386000653446832790528823400448621042005736112882616123359315399090375773247274108320618456904252740373913870292181312427541377195547392612559767611114313252108909769209510006967581327693656529719697789571805911139970801276699960833153007556699733987532495865931192870049592148671946139265573134048256983101906377174539266140428410377534646088601979329937629323711117350726576380228416461568357236317232513144769797509181260066226741006900448361715066438614470406475856269717064783032998059773386004491365133950736456168569372716099621083507051642157114688566080803973963272159764314553887770312515686926166254701029740673111276979279465949786642414119786635866118086418471866917419512198332389695246623212561558574110977790998640257694521819711220332445031558642555678441173382277141399822282374122866469362090910655799127799007754655828351857468259899068763401372021032402972025141941656792225426930414220032994379674133279302432316118003314374710426807185629533022654866085442942085928496647348991587150712235498500924898055934318028144827104626668772264630263494764295729395659510949933745100631659869543236777642520376780270982667432376046933170619743216508496676894257875660977265718101986686919445141138277269092870169404867209263027539428162041950666942264389540687274711051010575740390863634664683110013480758814942561919441244750122796899398415194753812386446997501057295470402623255251504424027585411233722026068379391424824592929355866085361791767385388488780122932615428958033452897141730314423909843432900435195597180041197908454232000300326608906537352568884762218218577109573982042613003703537547232444010018040032996248180930604141445029205950498682144550596707541082793527998383476555884867021474342694635528548041763057743816245422373235882683552751233126719487897433236619394499098791574391878224330912004403562947879106337811268442380826658894655932927723692619796513103500771852609142428482093958176278200479827802592356769978996132736813298148388212126526672476667555947954216764715370969510523177916201472719396632661068118834892010160666844353963758040783835149291263540603355722225763854431394673067313657099357213829854554658879450474287152771537530293975003806234806011479114578603948897072278904176647431051515008633885948329193094891657735877355486081848651989127631611835691644276632108551938336379203861604170705119158813940873814314245415418487242520558451721410174195958170029127846324797825896696660806343211538166485736978258391516036923811984512665806409516256761209471572092676226748925100620765584744439696644332697479781398207618340267444202226047399768678561709719089927952528289725473389690942271682918949871598544256320478887216959527223792219403217895803438972405618080744591542944185607283056315114234446269628177298657824552111110031679626766794452916899821093992226529155127474058865651388550871999260978878983761981319210400130789798947298804603412402887252515577373403929946389495397960163953632614935882186176508442134316728752860172115093432347223252711596933881901742230547262487996221905918954134712967473970976900292224190107969673852394269906628762355062112380519017047451716452587236983867999849944105410395860019346697555991548531716692708009602587111445755850374006022031377715057697630277897141036049227435772798595883919472807443749343869297352800253556530129844706423892082159161044526653106672266365013790559151352890528715152472802527244210497585495454649779597391341483023655089227903164029476104298823918361917127207346945534360719366296096626373477658307422170705676562175997500645341156388847146087404015261793870292061280459912276579871302427262826675949851532282813412430050886211180727461287839191426099254650550684794308072608368844502714778101489408521029959189712320739367739468039029787462820529754356513321330623459905233018293647091943731672252013035706736300140023452781841748136763105045939085907231406653316984330025881926022091662044455444276330721334351167977706143446640129786899867127669310115756817343933303742663985134151303410027434289234276855995313789246976291507885152119147395225357586520682786625275340845474359669002762308257002484657754304410587342030219150240447018179516653139852532423976816746719742460859226222695205388931490047556720245465480010620580030145935007791528998107639902579051273887532155825760213695356380036322471487926177699507849633492361738117295911198889671374313289771977238115228924040304169451469945967231898673910432908984556965619742133275201428575125156609065812019697530331880445803900159319855878345867065326677236323249232402871633159483645309484274954355800578930846010291146755979823126574479325143061681823668796283265158292839835122885022378354108375831999364104788081107430011078637085298445177924719517409437730986237215555756487280071241626767247624631882008384205635202738728822300696821147170280869988633875353979407814974910330301463059079176954018534415780406842478901820416667644835687472255427122415699140251705575765685874324174841866656355788236301165037897351986051845249566525527324814284927139492945625014865838377157078699682544331892948894454462213064836900834779272676466729863924791245150746958254474684094360361379035150093776713835100409065315852688903922364106340115008894045401911849078554839859425582723301952885647045868882872115661935803604373069160899098747951475898507782099677105234417972186731315935748766436820636601286003032284147146313879733668533020566033007010886798456760568704412885213967228076789399254472526651184019080274302129445145832518434106465737181490530589472472282945363208502598836457353646775611530425049067042389992103435861641177495767628637764596841815390863410314096505215325121480620811844203662642482092607120766803834562043048539257667563087443297063938762214688002209358060797680468383842025010184458439933612558046340804327538211158135462506952614512014084580615725893411617734447638033523103218264960705703350646055107010268550764177739523585355165838891204977426955940695901639261531660025813582108525677695782624179811129387351347623160100415397721953499310126310652314842938758858350781513957866974134358139597258635154165612281035242653474856357362067151201981812285870747951177305231196040059316080315731669801164503477391734746303610632862604856271149199702068620569838567687280631917695608550546574321844541397419069953161792529394669524351469420406913141694415187165545628378245101247761791096333609349986213508553365203386323320810330462960813009161976181336250932261313537807778667015941888974615021233387692070379142632756982183311911901858919741432458653289704252815231390218560983858972947653369419656910753677042285325318738092436698055897609543467574549371779299773608275567003555807756980620072291726499598342809726896172481464330460867992459520708559752996170193525072009142746301492734678031317944926213663527683392643737869770308812660869288826848867461562341787497564038872286276501214580669221008611185395423370017116940908191519879198650664198667158821160707352003869344537098301700889447157391301193069693973274190808051534244880137267217734025987417071510974453207896305767567727029699453549436661538606652784626054123692290631596372225561190732103888337034608300567399278947936759599358792448879116173413695250974843010810726245455320706818682580504435457350169077993834001291470034711397328959601981355385739130367211652697955591461934522707507194710073296073457389558948042055536407425751530129256084361484472283966442027270096232066478448846691358640688363638867839938960447471496610629791797364580331799948055097845007747698874563590561299883664233595704138865308957857024281169375305464432896080049256475310279377359093058051346424878220067857921175237958830523457337600259675780643682959889807572375716865353454235324841226640996388312476675380108194637015864405972843550913712750297534416614393504770978524812992359515688506697907252719855185849460396276394300984333708481346609611505397235218558574369489228016495415415032246145297669940346854455664564386226169040362866853431367413513787838487293041882368236247222034450381256073471042759558695245318164155567307446783897176761583989540082494575383167537148539271541767502492178962656293835823818153913790129014491747010323880202948009453398208023534398173664574893927544998860986526061178096918976980970067525190596376570443482640736458703314348258201371393446813480522311285580595386899070944016594381672124969547708233497970434487890983210095688247330046531016693213363106642963373551014847361319735891603226084333154358699207276132442614242461338169068616304575719052636395162773423645839794945737652810377366142721473958418864869837132803523347237289262715504268162017559160234070424565427997021015701264653326836738352876119362729881482564802434883734727694846491913854648992301836203867563871940757978048129682242922122913001232356827296220755523853156935321483421585688058728071707229567939466044334407293710053230179812420316283765894384830892003844212334731542143015447470342810729475497631631375218223435190880116663177040133263305008222729897429023930988426082957806880454375807294692349831783530457664666800860712124617265983912236367526866068717032434432222354763706317390233620868435996180366996042407633918030329375558063747470697739508659967700308897590895238455412970112558474037792920069752475302364451947495674948491763835251191741479870359029428272083748027849699342887728496924992531800783627434954531163498048350644412854296697405230425591388876393494238710127182471466605454949586471991560033256151704608832601741266946596618361094829613160039030447992722930645382043329761280287276701785889626978055199049989435542011967578576686480364397294258485252471864196420734003564740105835917573528189145984425714601558826028178735261327794080143981519255902683267569292722595043512106938772948753828324027012882618606767351809718743253381686545699491843012312239287078493801219648784703545701483166539498037149711211986436233362553909457860698999159369908921113892540187898918178117059825357439497767546411250335941933970840411744533369361977145873258345089559991798061757515887660098030745006600164050967595520674307217996102194848497819487843190103533991850359828800827466761834507729876578271366344741567313829881790855851777022363089245827106602470601416268308460135524641946147293763149470780420116953448819496130097856203835086710373012806882107868903840770549526554386297528294464348695549353754081377283651513959540247844534508447382558827450008011608161316799488446165867561432646804528268464601978462453249134404897415024974518139807614186035883992614088129079050365201316865236716141119928293898536237092986711541615094063075283029893083685245810177071389237201685902852883212600795621599880573378471135541094581833379295377533514140352092682497361611607653789532093633729264485955810262747632175546771560766599568016041511424411239539204815292708303511875377569031911669687107841415956212507909712137472206289753244968974127453460096950101407750018769941696469461544409762104225864017843877185621083761690626381156344929506253496440750464222055582874781742494463944364391243868428078294197127690726524594165232569269423325352458748401419020538410729314346688290425438654901053661177519918525437997576521337905018433046797056125080069250882799377604920592456098797696839435332189387675802816746720297309346263044196977947640178043846222496727723899119314729901266502878637274170020480544431283789149953244052441256819674423505688730482454762511096963372524015985076993713331835276656671872764600684190685901112460076008852753716056335994670170437634487014428542237445096685209100192028543045867985914883817331642849199585158220874538051304628028842192455731440495862368717541825438131142339302924062161989398931449346390499048714549438215355342254868413591248277544606199438877591278355670539445507571522594472644301109016750852221977619105026928596195683470427182034000796675176474243929538046830315365151610593091076612285021511366314338480179906507194206649504365846267645580744851643933389881541938669238282907472296141366422053196051728122175773605332054289336815831075177306310180511793483846043617863080513716006505056615872432228615960067249121746204706634393345611294083098840261790117940321807098085066756322482239494901284903686725288383479136364900687973589214151712266546619263456125721561978760627614034403212486225420054021821280023826474872008369411550478902930806020559716730152093598209330876199834622484259675479481039776784881581418862539323925887595251641166116865702935093082890552390828352486347694351530529880190584556469669244721108719486327264178090249099690512001469261328721061917697225829794908563311489285538149164919542346141534295565182832807393834691773631232627874986354266767050655415580799330891570266524026231513507544577379894439753084029910085350681673976746322844366433531488745620780278627382195599250062295274330049610740255854037276831702849684032123790165549867122647664579440112597439182214441951787189522516022705194303706913967946141029675465870088385511175084193751520387102827379158648212939046168651184789243255330548149488057673911397495851583729513736183964997227392328124961827429174389858899255260187926322630095309439356423224161177233847061064432883501052290663284480405241482898940298067341967104653087281240450358739310122196861932200848532971377550572948994415442054048951426448701643427602549573143054502921624416491624446232566269738285547885324579474257155222473634869851457318744264316752586387285845026366819162850719292519408155705281527074038404073459030890666453849261038851049635297688536340267365778167844337357966419803754353939990587718483796190808122713757700907878166797728321567288870164032257038476054996847916710524762943729781140362103012800158347596932221218270532051439464362289434816101239493869428452358603838843957666951674108314387012774433243530359874825239498729090919026709656345590590424007372980155787754714351425457980204519296551323690541813871257850234570706580891370562461325279142700347680704386560882812567724402050859660819372692846599660009049760931639535323334349976477008321828421999808884595190731199207666845443295693169498452369041653072455741707279128333392702108082716808157790993439551394715494786733784127122705669811908895820695872437910338335132112927726542051732002980687656527885346274860680167675173601974781757034070564012636856382447357644957142767853406450698276675469615811123521786087820936754095111098215962395320440081184225445342481287147254961260117437867672305818354603466736823337022552330087950261938544671787176539768987203828801132522881420374874261553750696146533087258834984593595564422648702908367175669038117946198349498802550992619033123044633194471949993925386622537615077093130135219447185098352826740762996377795957574753245200763999755917228439428007738056774787583195548401070385770250570962922214879820484097219853377755466912697797216397644273703306298049100529621346617446493378660799012189695491761489329122885563171464733012096823391068280095484471512833872329877767070577451936202914776156342077135670225655411255538624689096080961957724545368841000443963415525930399900524903834745484043774183377404929603050982404615314594343389897049426591919529429362374062231460127535934157305402919736829260394882384194702154650732271968851799620858925284812256756878907364607915926296638964596585520785400521725998415244159262109692909904869366473143350102967191259166995160590263084122077627193246123549922306974008202910428015460816949265041191662140576807890606030708292365797327766352384978154357421965392047147882218640892005957467407303125182157303216712957542861910727267188114202004205707338757533091444090485700477858711253257732012566672846725898182997530995808281307727798618856435913684344347725955139956100276041316641879690452313112343067004790906518804366835996907265370282074543249218026757873685544533229080130893571304704341299913663369343041249746958641358940940383386595894403244912877616067900822906215307716576562838626002749090319412569313283144437079215864446778930330459837739485652482537571025077331330211287589492578511725497498878832136038336935446783287815643345774736621722309345666113351437530168431551672441710397957513220780639163302216816468495289498212370603096702966125849069388458532307476505223046909044468726164910657027263692887527140612496842387257127227344078031263011459755333534813568452487746142091323793680921627445117040169344693928266156592699531203854157476136839854789640102206464904402915148743606914336287038355093714919846922025552848135238134622629182398497168331472422932297170875965728348450305567943820369502443268973914247798072581580995211461847580622907681635538450424189047196606480079711659619320434900367926859756620464901117769460808686072121901316039997197496454649658705310358365997126917114789081171180162218086071376880500491289685109803808173053885478639692409088376606762556626259439890442741312368910521749155777074322330938333512131992834790266688697970357127920849293068099175355617711801459755743115440503553607076416395683509752898808030756047385902238399536990263455726905391063648838441855914774630685057686012479528217709671075863643430511430038717634345205646632664306358537207567350235405984806695986338239384592297606407920357084633477069427925290948050197694304265297127001078382089768939113133035215954221166558286269309440126666269947439847845338706352440425350492176477843869487824370883377175233288501392728624923794015851475865176257170690785850494227260568546715607374762270722847936922743696286230983351867005354225640568352213263813832121956691501519122081728648391001317203039388835498394546384072937803239731659707589332619532335329129193752640578545684285704619779662435095330290955294035352727842309726237929915886785190584854380454773791897275126549440662780628121824327260633725366152557478478249714105961452771078671055262894935910977875914671594155119229201190156902314892937575582849247866915773338920642152340994403586780235699047421129970717653484872578949703742345537740704050252365595680939279319758264751175651715073058530127105478320701569849723170383409352228710181629192442978237370393815773144856258842371740096645664403681037412198544514802951363124178715654146880684678958424459897831207479864221633549011464358203544048321922934392698367860012390742227809624677606066154780983274243455179416068874468969425104048196370355122230981324309097392800385070157908432004694439284948509145515939495953627192191036248679361303447491926883976644533832296168056146900630832508733059507597810898597025809014355480915608484551905985107306056926934670116734321691571735846516078038520894281233948691777414559129380470367953064060147525611437593578919066861829502576136816144086959417950937052860934713526201429920775067268752234399544205184342041412299345595957871374139448756107298391782409736485240210427838005760233524569611779281102780291044175900527405072171885486342531211917188370145506050847623867825643592662997526662736931983368226554488181680705542153655581664734937957053340088874621638916092801115144947258428234682692551820707629538472731910684814957946918838325625552212204371241063871063296451629056024887199935805694034807225881635151059500601074054630754581350774854550226270641823760429705289902130430591967343007447975146471275122694451730637221659680895759705122155922845649748966369497761151140443270003515456313559295660640877765748571990822402030503748662459274536774306473783030760497513403182368470219986009508602274116594492558968429068494351746686247235976286329905076344007996718569921412584450110624828547341289678076927501156084232165581660458176509018011677190201516221731238020246894645309922939209675301841538472402812887959393804510884677949313028958945953805386139419027967882443903880317271182240944569739398437823879963526896806138334159391282051073591974910043570141898811297761551898172815570658051595662443016581865314290811319742759786842759136557019373167043117242689227386531678102834077545934833999708054264133175756141604319459636771814105003917141906878636665182415038358200270635691475358104096063918084053275567615119646977755513037614003037310776047978366088042621158725461521441601109928656002252642496248961898885677099875476202036938799554441481553045439930412473253004755894448751670860142597781105133495978559497002970325921035548397608098236902386405796890715835059921712392447324950913075303747233428219467390586453575978370364486340588390162508342772621921796438519445858049609657282091156234529567737420511299656441245536943647673117091964183310657810118927071374185844630519765187852919395413514498888818406451459463116379785022156729254185828521296351912537705652984090019816335348813882696054336283199496831525298230447765011830459947057754005993223805490890203533845622545647914599747775378955456507360152685964463964073532268234819037153897968715448965723917400019409198469614206579484421472360869344660043445130317130574672011452576779367848350244616692397240921552258770727617803879946125280087711855186919881393612877550767646767890485348604476796978231759247352136514227299444595799298251810574891932483222022630318451944474319242792350505224375303527216218280481991948463313742377017157768710510563533974898741142162170139305247023181017304969499534326792668952741928017239601900182598103822738753993340620822438381848929381549783999895941169854019888094665787359205214918919094274862558215619413703105933578811434567057864239674590969018490668409076725777526153106199465756338991546982009852269302959844044844534108920600621024580843735364766062520579452007943518659286007453086726121031949608302440476658809319905733474808540913772562354863798777463222986322108163904222410466084592801164416443705072584873831242649172172300267277150746400201752035696160647858208885765032213061165321055529803211243778854226663862236055242648911624780479050348350486490580666350919846600851680335217298711299014029906193177203635070264518281843986848866916695470077387716527433849568914162803227965345402588920246607865056358502560869036607263520414257109170061934785490173705734888560831994660256523342841483455076051017590017013089764879556335538556467462469953657317829757903174358219348928760073597486873456559977086339329661253743649499455369337056196737668678001999900571424992691097585730933862057477196418924224992536190379276761560186413478386538204945830894840300203745771538755090836742125233502195794138825089957068737898886753026275253123312082974630463952412023422787212396647826269165834493855369983123637558659498658814781832451756606406812271380198207642246544827094105182708938224698122292471413128661233602830717652943541625627886443400342350785872490917388420574784673114055702492543995471013034844049160681357285906631787734542062628846278283370709916954948739360503203589829047373576430419285420432176341523924577123002724242115562344467510399031541991441081582472769843187137256117631613430044074333607412531486799694266511434038114474675260246931927786189717775119463282486773689488541397598054756057172202379314906724694273415678164545802359015318131066349807907896197259455794705797233702154645124849470378946569798462379701697727715209937824686410116593805435749022131697188815363703899548177271994526472346171292665103147479486592773238006792623342737894997709039854989403947912965872134247192284128882504392718180110427573085531358476462265651040368831186882654072404532375613080954184461969024112351688627356118591010410894717742570501449947827669491585751371952074427926909159422682381322121572755381464039094636111729304249459043013080171849052720398085388067134429744270060335442717105935424355891676543351870868245197768436922190680488632686377018763774675790858726872650810408318858672904671974697802796325498963823481588211824465947746608040978713154777003032304789934640351338088426912753749987061847245668371000838593160851185753214566823474410277056135242268896488639470480407878544034171677858465489239248025863670560160369317924593697581466348817696434943786268950867187094151107515271763641802013607295045689589428299623928583252463235732085829941899711910368894635653854183137788754137943861002033596621561232099698904603949616861904303363191125536677746268657070991372847114546757655358358313628943872247714489204817839548159960347125430256273998543485503155274639603265422279907845877299067629558371175854692434648782529829883628364884213334222351861201278913920536428954857332012201971988007892857086698941941401076926764076822525125950769809353722348135948871515086797474977141607025361433885714598992338390197862763283711002661616819813145427348784693197700966614696130723014741825511735879095087271072209594639813575845388816200419037537317923909581463341685940587860972265013341646551130481729243942289572426597495292679766837742216585579776885709788435689041990027958421789030159580703801155102322780318591102656170092311861311267510944220057273847684653377633163672312713086693585306204173149563657871737062106239408659441363389729320468922075479998591430385900123440342175126983596164374438960438345013439572525540836259763518992370696508473820895942592070698884667839783403575424496691847847812864286339564595533483630894168639731238309284443509984635875001354665575808084559403875936895690302965196302172155173291288686449339365372411997894620244249299198847822886663955907014313378019660843210947483580948945073799962990923537062194321194468323434498018405797643685971243334816258143975417623230089387138854932604062848419941888809651083067233010118832370097748195981751399875369101267575326479551483461786492164927477592814857641536666104013898884669890676939058152346671535988573085019802367216716289342245770659866570204574547740865091390601440322642104019136035770668899772833037388283250971251778709177822163720003276866551208625738036560160338867884034485101223160817526195047364730748998725452696620242753686819436259348602395267010963101902887221515196730720570857941441880083269897008032822996595000639258702111377508330723269004892151350671919688820183103513334109817151110162408654155386472864121783468539403565659392336294562163547032723638522716007089383229398375599592654208185526655290675868233700869834285001449089326440755271762613612576316076472512201339458094903929436250361215253617869560527529019337791437423965266934843010742177727756214430364883507965885986006149688301480146135414271292003095028643453031181490814698025960977411058824282369842632467792472625098754985981661586459065609418835325906324418079800435051444251111241559252134159904288032731017547056337339183921509219315180133977665198719253689527502308184277866884249255408296453891428074646802103820196060138581616132577028471058235873542170050665441024702461761270023175862751063808785177482371217993345103504491322746983764605992495255185994780889805914083478143147688325221222573575235075068336399646876541653901373723717757109754276761866288400615020716421094480979726206482632397602208590949341649720952916689862263685528749813586979970528207770616905490725217488489696402075413443592014982960102460037665642962984308419627201583294412889087174294208993395653998940183156313101649014832169682522523982606035994263812038689116514355454976407751037259736970346807164373171359542472138238953620804758455749189974058801889537095712239566280666535803189612643364542755817356981487747081853743939747557914256555366142222551275338022916428419718736133916563185881695394276718629982761854379847716327885498960886034136228622658816240747241798920223904121715261301280981681982865407088619167750551551957250750419553087216618749084567261861230914701976261755376952299931812090604966966795004355407484114936559889657307894629398051067475397225577930899480640020241545600828631564107630109503734139457108896802365117509014920895600235660167909849132747064901391575806639469049461007201747685058323918687506459371862582315427024967928657952251594289782199143527243668752543192269045854685377154904082482246667262234484159477648492535333965066888982904879125876391750771793814752961635282709010000938168961457215209439047192089089961238817811553689984945405031312265607896729067031855080485248381899832294015371073836448926658734666560184693928947523200608292314632083125407978821668292331717112284434426224478976493177009477895518518210654973972475328723391522434030699361532123732014423943070578792888970263476221367672062743518156771827366425043496881879805697949185966204222615874405499764286275288078885897301549000561655367220063421984455746876199050213434739149019371645833433143613085001739630490221461876272205063097296191548413403694176724793761770410120627653977273057816736347454823540736386044803469150326281458832016348764512390462647597469430770856822338144299577740678553169252868359309489188290437645537576272904676926994957466734243867953120107853260037751519990486078986518999334721087456504506125006945112942453849905276983049473823155085645208440542642303864226004016066403031506337830773284860202620180671327328517054429066134434927311832250412959593809180368993147376702297136635141754033732741409641898964839010736230437859752474541268317058625814247593386869089111353492097348127025075122636205447010965998867896785109714767224331000349108763009467619694451287676640245180586175451109207807293889236993046770914849573444114021012695739030917337220106690097753302853195913838412147749751789503918137152848985733353641883391682167009763849049859688708447061258101143218731382842393379415764930055350481083230943737587549829788820842499516865817387814712997006583819851266913509465857838923018672718328050548303199360434309104288724371193257004459040711559965830939112298231912751936432653698475009033140777639573125511665486447378069548880720671565116743955901714428374989563211814823001431391331519530585457938058729285029940858570038902480084642251212154357977360017727106056611399811581477881607527224742564393343953594441152157416687430370163096519033323741164698714308264242576328877377314813876721855276357284387804770115875754143578802718408940202124628277471328137939878061742605216964580008247217596231674364662736115172936745546280126877818063843259709536637419135979259849547101181393468821690999212690896366302198240445275600315704609372749542133088800864357608376047433596044858158636217463286581861126144699128165607573376228097851476762992517576551245702569737928963987628005647381555930522391186593380438375784011339805875787915344901242542887912903049253786018503174652473502346746900860724400608545426888248044700639398765614506734682381143063027241636047625659173195676865180198678789663529571897386223300171158884929005407148962599475436503853165136886359239259574663254195463654449580105775104582053107902670635309126834683549148106396532544943549436386044828438757307684882504556810770253687282348346777146972417284736276218880157127230983213440482092926630142951216412948250925540680327012127931855965826411837340710193801995647509936544837770633470201377323704710902001415856073911111887499375147768015507272756572820449164910270520147277617763570210957815782487085441525850658654399348561988968972126194627354825967213359918779689988491195498409119170241192258013360600345930114864801028661197080941878290118405993332625987651351477319633546998413881575582119229049437242679757899152575499818120632876901964337719386713011640717275580274663689151738195729625820292042055704063684032016183553470610870165995728134296607680118354875598972305192233856736131293455777372086173709600406427121033683924569230125263993560555174730237158685048650465738476518129884958106518042676739217904050521042899387703970555986263917797008198185347427191564061679565929648221709804170319185901195575988225236537556761631579241630461996621630221849988977296930143492928673647598282013672199068225243346374917604164930832984486890778080633173855479847089835518521094280457044801593682166264827839988693475475224272288119102917590357292920662805837849868744549329641368687506499125682999818916427647087341488980431409227891377917882545707767847027337875010817864182892927108542140599946356495017813278414748510988742504569098655910851389871589491260491331686311102972704099025775111810048780355315129800237839967801263513046178494460952838321283299567897073972962247657715271387460914060930888301874902427461098911943871676836742467973955258222777565976176119915574920712937905489936015905108541420953986778833847394842063801103490971827489135261686957843098974599724487714656731326717741401126355898730660533588528873188420280704712986657207742811132196015759034722046359736103511458228548312594567543763071740585697137932391107683491406718806125752648464977400136915070161204898176671742907127920032827484530926729156017126734662907949346126247145073844085913355956785361389740468169548024206623803235436904322324346787790512088577079440836675069564993045394923063840591657115775104436722592547494808586087228663711207482388960446065181658025673681760460170398028138844696007757409344724367387563914065191547559836068228986538192738173282616334611411015055942774052908938872170445240518586789264072842438944974231790954227563520543492936554224234088634123054695086490322558246687883263825378776718536845102307244727058797567331830237745139554436696520299254844388043438459442632680066468483012554683738031815837665694448878640622764455893120086063914215558398142430791227738904034970555027721848503725264520319588109088053451345676461897741147770798029871487708042812230387465628583625949132279171610218827493599049084033953392180701973118087705513202188161217824083832164912154515398754829656178350099457287569116454760847603112445182576708712639141564962166812808475604745775320840399376486781921587571506235464441260401875919534697863522040167178111826100571278345649584781407470250803448572666728996675532615961689616990037714587790105483108622086673381476679352893141250154094888843032371067990892531304957744177074145161070648624321691058094206693746508750591514801855220304510483733176679018843919521784837940126430813850141907545054280637230179884683990406824966525926262714179675301218050724917719565558366665240890403595075823175096666408190321169074777403916546591610748579549855926250985398522015310011706074910699650084555746778876530125855829346376083819830462922280180211309870182819420609520642742613199918168289790047681989779111203402053171508364313329534631562646535100843457517471020872031290274551165837810235177049861573083878284290306331403477552328761351471882968703081305590842970869911688393381222183782267648307288153427950753557604014083283821022707281178151320404258737916689788496394521093513091406579084028520480320303260919931556208358477626879633998938829147740492248741011796449812031229454729563642474173156336037665925929381159754439349245596868122162821081244788204373865087336121527083961748537561046137523760868094885579472339553316578281631294556377737278433748598770206999772747682072714172810171620343800026837694214391503068449752641782195626654425078996849394297372948624112386689608618974400833750853792123658057431231652437630774181042241309322829510246524350432242223831199194016282863321810592667143254158528688149284585903483075561341347756997449214698174006586607697435876617723968170946189976857433848719354255625753644920288578276381423891358450609515695747977182212518655964704897799718909067046487617401413485969893120823814382644851734972262035942833256006578309199060452290702589848527853128246107500688640645951198669930329682784471176257122190566862610086930220778316621388898577763995611478399375674973068181542378898154380193434218158903821868959988079963343855568974259670953141727388281240757451107619608370595814456039330986881857698117850681576476277897471352782625340045422751648600729951079356679388982585895806123150036607331678603118589558660003689273079082215381788362372127503909547358942121720073332058056890590604209843399361986847023564331209507035537378670966062524881620506593919954444175470983019862110319521237764205737654771618372040500962235389400263812295727408041651275450674708459932358758567014123842345254657626544185161383119484984766175918574173903143255327448656343611771667071120340978946104984852540945499479901539878263007982452925486930921346964585039117308692485879258095871868252588699796805643801810168351354235682268138921210174996721390902387265128274931459238313486148969575217908912803645498754913368707247013192233528307702547198438377574189996533526306116201785859589840798167002258820672599428055140722818131353677106105603962612389585486598581873920370005600870828897537109106403205215535078164424490266938769785317577443146038199725088620451707224250517601860161624620941345347299263545334042563047943688183288239299600524078852455504560701002520729771689205481377579034593328873963375433431893155476328264337455388388634040687790189659747742418014931698249890937265478503020463170410995789809382685468915214833079247456329072956024869229655605058180702905647078722073455088087064111498945046796388224759441726571273249083437026253382517659485937548991747934404518464978240946855359070576097656237030065849699908768539043147421172161531896662432291754317950944317277021389047909223430358047675166115173316221899890217821573839750458473653734493898535889878061924253637530181364529139362028236176703508383084337618060417789485105470215710732423175818373525479178932144428338418277505107792774587854848244904393183011671875879256541487308905966236539609958321619316166166785506697967570701228948465513267607329649555042619713743710449969453589259031201824461559993624234803427341832772050402391705398421205526922149486437109063076634969055779716146086183715604729472554298549652005679302413047002234322097273393061097654142993817430580845070764696398500035934087362235284697615598524912677987889582003675459364734156795035339043209077706260003055148795366417998227767798215268530095541913545386360857409429223056281579462740263531614798925538818397311262083196057576985699749428959952033227519549403964447582000516093524237260572855346854182058592887808265932582506450603343432273761225307279681849996570299663005894576353998274755529047849780067060996569530668935819537482300552699930636987996637806009092980082787031045287204492177326988980146055684711656397382331327304992318670439919259034279693644556395821006790993992147242592783858591321228951373039173285074638300555940093560706405818964189244664439189166752005553752736284576534702030023137533510559513877765837986981345658082470041931794701823271306885144614165911511032506338952314071832810120179967517864984945083384548364230578158576750322588174861688182692057922061156309973209861545689166791848507958425087133846992124551834640436470058924517309692912294049103140306801251833541189288396453329072604486268271899865781526063481410432353271689270698641767045939885437555358684091012187096730861723649755178154866916821823310989120131730462629271779513714682026067768383074157397195988413966852894825696501478353704062001059651278917136197531100933807884121571831456821105516028138668361972955195378911241089367881330754419294690457118595144452233619395035589664301331933667808293425718754752105327278016280637006904569266595331262366751473258186339334365424449257309635484907886892154512978185646136710476435768161152049201988991573281110484143766493737531285267887234630872050672651956031626900372918144285198720810554835079722456698844256195647358084534842364641195911531522818077965028243687258962906283576682393364409818522930055457177247562614402412798322471237964475225011015485987402598825290702061107576519499738935536838408657605853236127546807957634717866619869274394331378774701733370226110783273303548828920101753591696755002024455685978334450164352633571114764724129738843065092772876786177926083525323050926611977316525889275294750563009083375225735907658366693311621074682214423792899070747502377443394811625369561648654118271273362050110195093984774542877888602708390753187390229554552826770099626369533774437497002708288632755727946500544141479217125985417540440080584464037924690168781748745944821644481630793110322770737863773069074463539781106503330561900805392176172625685187198972087275495794539195881603825632245399886849461292519472693168890456036941569842391590072791059341101417044528891854332545631296976107261315727585050279647726008584705805035924299296814351110284970955622244005534343753988419926941589562952710700117391687136688388205680179954854530086558811269205656181136436586394932653654278038493181048776814948783042015252907819341591880538868785907792521595073802856879298533831151536557894809044953419690693639505169926080107595787259566235908651180034348391786612717748308379541276256111141623031291244183493450222840630240259461599191909733928747061814153171382181090483628855832468373053154651936018057026250920083868601710478088700960988189211633990100836329174863679776019578834243444600594625482196805229950745169561667801691092932338566179382501581607912171352602622442447539553650089438550677012972475141730479232833055479538440650112949643620164035165234794248203692665239414183030606930219099020514058901695482665202381858992456678649904655184404908887294746521578381177352738001891747078228127574384820374108896576188965052607202023215831420724668523797508105947973640720675160385616748229460676134928715714587913079776139426861892718354627608808653370876035209210910651801886618729335089465346118252661617574948225055401002162832421523167845236406663010382402799825892741865854703869176410683976496348741119118445416686369656506834033441465999926959258108802667458604932170079609496636089047448369371546238595133761707632777540326474628757643005689066949112258735777266608441824708590853898033916596161382160015022736967530943161819242741859670905035445542962307390680608885332608618004503681122647938509534751890961916126475885724895029210567969025951950865991060433028850050007743524706289511638599402286497576435863719934141213177173093637542990713041390147011323594727189545828828271399248759610404235179760086021377577579487794384255136710306493351594145172112232153840491060890860731621981835925457263416522178445212326469657325107356293787475611669941104291924102074072561252119182517867009853165469206029048613334058364196625941188672691596773375462202493673615877452083199953351060007526743850020935106725854964205219011396230123309578474165817131716470700008916582466931049278422812406148679615408890764258114297501444966350823778732683753426150302815094443589078591704971290008449299625905298998150640553473244816571966197981433116876162232841642575290488212517887301026045827455704469123556444708398994605505129756023806640991718673251486517923944850360071504384673155935275526021280574177353765224655651922183652835828600841398078433718457163293847241302875262632633691862069291534151212818157796687249978261154026808812170305650949223796772826097262958320802431886694965137911417207133181619394213754203523347938282560576684513354321252268150467595641083729455692978812666573550435013004006480516674107806668939866525660430428402830037246624507078701027847046323530287940995262299062653340381615169842249061738464240663373686227204633473071813184265683757568892071595402477974014117991326765312739461037809673479510698746792394447544312950518189143509975332124481919599677708347726221442608973703733802234218526784970465340895191507738129267058079730163023784486107782419628589199751863582003743598528571975144355596319434091410849719313504834941787628626133353044398676365731002331055953634512398963261851380147986121118970212885765263599106232632658202407933212232869407860734285888642707261383052005461094297604592916992252321228656527048221975408964936198026991230979871379551822321932271328321004252746928742453391552418301970168167932662704564514734724184863275476862184914289828543645844000314108767208203614385462640133675332067820191270731221161996655504777067760678501029199096533597550685191583341882562358854534161892593647765929562437129778803492837814989559495620766279794952896983198699477568467501176274158389312553991701360150076171016901685978577175671270499101221676441945665317167334854432657508938462120008705135848682728676023917157578049323623378932010160426218795237009997734327784005088322995896966733649181676237869683174475902186188068003902821206916522685526855941234009856407047002001137670877357315328209191797215219716493902226302400199407154954819520223481656395468450943196683908785959254284154459970858870452717437271528993610354395466589501982412486846849224292312816259187259558753702464770589047432931264878840508985249763528447830698917994303667299935017341934148650713648564719372283595310466675221059721269514832349216787542170269117011854153755257793382346146730660671906336499501045183034217374665020512345843289390087167746122273222774428641680084495150273515577597581980106887560137078665799998658889226197941278580973956068944261992353905072344594242259139391337477390738152188742131697198069425770533464920089213522355244724794050105821832745497486121155758004212833294067447374481506949556282452299951751064840378520567488285686543940498579723644631266201395577551461129680455637736360931939575792148622008257595951937916977957264396077862191047163450400943735545325040504278552764634661533536062979436867882084149125355527559122621603961863217921499808325546537960917076571903026082572484395539111430285907143093938590173918479507967295422992597897967113681564949190355202573425414334169401172539315321014761258935336166772953933146609987919109633565750623071198559663999888260661882366939838937811654280751524157646248856443934761949600155436044406160067573472482246209348990790552701577274296820777453793326193570892757994012460597218881134178204804094229962066446976576864697321042500125356319044951947923734076522726979356241429701178408323860876674529026190334091878051854823737866986606799401056050504603384218644172171942838629950289824246987576125274450127971194953119861798621575118651801967367386971236526350636032460509017917803830411684734246635008352853878014501386606489763809094733055703911117059177791209877019796679779858079445344832831171486849793710829389245617858032190656999174369703737202374569381839430018958455785641143278536830987003293797704115181362813919313905751519209651322104172292969660128198068425124210635410146302627720879985136137035163661371178424497994152584431441648037990318715536963882226468704641138859170011804755439867144426811446217808734385435579072286509420006934154059684860038169683862853017041041725808565617823953389356024910456979655728746664968436532273455221365901054685840146266634692185940563748115614500076989971599571668990330716401884204344320076969726673215127251881040395006478215650025863124048583857728016806859806442675576954717249572686095654299500441146926488819282242245244619654767918726724123375879228190191085703547857713429957451374983134194231437029582118065022397704568878760666780214193996192443610200828602414342733979831541426644511569198047852142137658547013413514088533971915808129560329747870694095957015517846930530583274465738313659479842674070678084744096893550267289227267516214998824207741134141270921854952840164662864667163443441446866739139978303037436546939854524431585246406768844558130276211906458515440488243403564006186868169205734803370650395764565712269702344589131481294410641783109498274030795657982844157567854323468545756345700912788261795361300217221478946311626600638564771356246219585235560222615072124931490261590128781363183313431577675470689832439240582822818753138966041773454989008198144717897549644330850921971196834981863093539349473054346096966433924811218688868022286371362221411156038557182175571030887078479488393712130808647211909645959029320985544802391653591665698164855992590752448413538974952668422112274942082406528807138288929600400611407887850239638532285333346050853982439503453757645421041385818613788247557203500055135645459321060293424646119630105310716217867842637870449468987410069874775943470559075659716441713354091580925386322719425036693625104351832067070221937357978546048525767306956315421252501955325432572006371484093358739854404425177942781609997303870395669816711629128285662866599510735926589133882084183555674480227046066715388720136718278941184019502032158859525534211546750620094003324301569865020043373523902515900881027646512207124662895733093693964988745852427813155630937385912207021415823172316102450689083279411787631199450514970166246215004543157420721025306119055063971795559169086944474313203026507913111780914963041608168906266745568530044717288747088502343570787082965620208233124836183459539517494523256450324026024104805570476499446034265831982483267870224458265849334104340159879620406564110689730604443098463213346969039337761059834867172078126943990140121779741698870255769835288214501312839657351502496732903872951968520742907408777707479689835497397487387225766892213708251167792638218765804815550977714763537840866204202048758256288673872325861563731146941267786507436763611800229957134504337554634710124195638179728848925067933517247481664849125773510787330691010168398709356226362571763564795153146553097765627144260569667578830215164944492387095117640204242326873368239664717192105181698764793988007608785088555517367452165368889594330346734748789355203551698661634947555922870450543145445478135511192525406984619964260905042204013392664958623989403086200405496585185693665389072149400302234412691777611893782498873619026401816776340908106298685061902654636640998174510211037324118598890137915520119440881512801955880396184661962194468262211098528310117595580953040244008407359305717469210970045211126848378802228201420250330048741650314060585610242236602368500141486496548986116169442661146246948897101796979791205726959149478698093101866001950847708873786847818661894252460649118828590359610666672443841862557249335460946147048415559234476969498242871208340388685216514650870318982739769064376627191515300884443016215996020794072416713723503762863972235538997396677251206142961863817683027074895962256351860017440523825914251204507854164169279219154979801781309830042171471227546160869390241233262678804618721672008095428133975577070269380522823755223852887376162728440677710705324613818757563152259645145666790000387627629934901530654546448272695498570097364317015046667904607426804200648640591822484953111561048233905893393653137336253907588751623713252220167999644159273654566371664178955345394377886211121361479761731639183251912937373896460614559078787337024388778759841638081104112363406633952295267334733853684066124622507140913677415003408387314177188060464217177204598111393543082239963482528096704860472079260723959803179777421740446230610599790878813169837280192698366986048034411597784159752448167144268756374209227079726439092971606187915143950041264652213459118829498410604216431783618465240616315317763814148905758929480741021073152039098425971180949024842000292142464779226572827577838627798839332949847419538680059353813917328753177117321522934418624109394952686067058023183031440690909746251589605342026740655633984346236485584696445194663758996299780837721390325252803610111353688702025916674601284600432824549780086983131533065341633380596284654306882343116697674972349472071139957577262955362432310058080915911363349958914415418023764021207378653601739462052803550908924369801779198463986993201848673646463660083869043305020924431141369277697815341329704210612760615067979524680687088247417234916312446147648610874866652470043331889677706647645155786982290871564306901865025956215137350266668644822223386745476552900937293127708540419934179656017062522559689489884886741153834353582909823069621523557239935456419767589624361502600494005627535405845607618148641247509905794403909552827089334998627712384312996924585606754039518982556095795753825912426745949059543972899150311881923851515328701670673193665692877991223175440662524335357463067384329615036366382736734276231991772082948034601248533163113540996296312164856825808085484434178323019606110944552251596143808868114072321942835956040640456172097035459996929590608058151903590622873235624609950498817332252291645960517591962919546385337939119893195558884367420671231917366382867693902234124879348208791731798509960107508049243981368161272851209756350448558038137092830645129885200316305408110214137362142405494213576939373378350805009206706981316299597240061965714275489865810552429003437767800626229052857765899915079759885290603899583238211701182739251140485845461109470218925869082578860706584285918527915775799531497056723662706308131975027876233090837659516581580314486501080514411188949684275221653205769889601745985530988411968555435788085276232768084714212497091460776860025343587674213324693076343149155243669230587640790788002861128300860610706689047085397641511458808970363557880654419796762611375117449959406877421382341841007371087738452264331006294801839492016526814597227384704012558972746431136237401250236067493935282886768336816875656720134395036178862358508297292014686963169731770858733900324522651462348893289933053819056541718757610672007116087098476713569678498215124421981991355428975542882055343781196487252703657913214274623037375349252107625367176275179440190925362831134218341616304585070894766749771409466916419476206517494895441705210163903300918610786020182319955892228926484688699139154812686105797402561323417196772170909319694043342472403094864997109923621414646686817091978012801243674758374711083669717291373249650336322602167377239223582599224009904716339007096240880043482841069809768648895541924561217160122753856072434656006008640607214746350934047945875191686282423222036692951096984945947948898124877326794050746113903058630635104631330329121121941551338100705599720513623263612977464352744181404619684934883023821750730832580495594052505906793529960928287616376540437986667107060764079307574746737863428476407310329746179723882886939459089785593433034170538362427682353424404607012357907970922802736742762102792652864292216819641597166145913455775750491640368048246757847993805790972544734094560772148878302858388475615107308709115803261857328399901814023013944040627754986888238815894607551295532377072846891706161547046475544372404932726058115922232541624749785023337476396910287762355107279229588103576560691028693525266004586461596235689519445035780004194510803586906518869197074535073892844640574240963692161175443594186678438263748737737797890015221450187159819132500936415982339543758503485214298204943299601856649431660284552155595972714051776831565218527703677226092971576894315930308831181762276496529946342064870956716899768036931666642902387569760794288259043230106150271142198241978527276885104934664659991379848978272457034160418115529456722395774642122632587797300849500162981944941797456877631354313495556247097095597527856194005775116216557170958917623981552061223194409663067452428035581176118575988368935933584120988940476239375732407417962497333778007992941117874221509757588533263128105394001233634543477234992414324979288245609631852633791766451432618324134488157162959994947538980685303891896537937088389534568948841663759793061024074551668636799296517469353822504561355558316742546688927959378416225082264543663610652153540441767750063217974963595313863432541775156760922269968302209942810660751699200906394796175334523198290252350089460314752878302436850573623636347761806613592068846970895517940144880909769716996749130073629333422833525993932159009053473832318185599653421123359770614878683250090269630637293820249485534354843266476135567456924275864464035341375679910636933913442533446644892525180335476847776748320139297527222602879298851691430416850969046608426589033635516035577192550146359808172317425741669980445025512957178406994835904464775575660237521817411509144768199777924278627524685455246215320373881444463351805134959976058946690750217582149552003378250481148531761852062238161879477218827388945955775256586122390849536522398775739919980494606305152601615727533064437794592826394580782145323447087653022832011524090434108397460329025936741242184361987719440394379626368139296625959552996443246376781425466639071430028956079664101397798212631800178873475496442174868512167205829066226082286325752205138900545446148604568171405214965201031639299995072560931362966236333635898595084198263475978505584100405705040708785006104853424204291260972730212800672775114043439562750796536899457624932065769512620260576958557701742895472595730886284926426187503168121250945749063931731158270499427213815723227181223092589778433132671018927166143075257308930098711518819908658297218363559687730458185282627470536458086384033855094184691020907287364822363123673372365800932006103001864891183765751703285321785804220385713409905443241232545627382781991554323998500568819686029717332578408552517981000783965232492411854450802286946422226783094205654258562796724676080941336946251356136791087081604168816457119423575766768363286954703697008677766678902170556566350780323893601146683721669480980541639547528706099286308063379727367666961543214210854018044474164029575899295381659356465581492886044500397013942321475969310607512392787858733962351245907179842983278832474643673069889501984435899870502427702618655888445250743552510654738628856685009848281615389116941086571431260371020747616049756769183746034143234137499086840810694236568960641662069383136235397489558151082914665807930508963286460689848844191881522156602752464034859545850198548901834859264360490873584714746643645337357445967582651996255343021811467799507699145418651384496326218120408001734163128309836972902547130930701377341488669608548797847900313743275369025980438032188953854756914442662949703690517323121701456342288008888640653368761418899488679391928741608192607752753941619148700553325610593274613396973533697058432682782510317190128655780366236629872297234902047683415723506758767236793406203873465469759536552455141701019324000720150239789194797438482895379878060442225121467680548305795411640671666247086209687371207439680098987433586937870615481112358357299469060738030460260011347526294072360075013323962278633550286514654335528015349621102717731444096716475458271683502253708058784973130493250839573699873522129789930379860328573755546449247878843626769102220451166438751362668921430147570328325994093982147254343782086739018301751206400437482756858929518116183551837278719374763267018391815240561769427456642553441412059517382693174387602526434057568787097023553734584542459799425084593225755296551849266104489666162884420934299291760447461883661231040280804647924818384222224497724508314241378193087847018015196134745040829165514218702508262148938033149720256914407318985286934678957492171698772126078677064407181004990421275213327500981609377872094306739594852592294259508020012632716585243214232991550945033108681325634209516098731234775210164869092379115535734367464461569119206512889995702229543880684306248718812304691898222343786217874467656043276215836078925234125781922150221346662818985373572501064199102453520611134907025800274532048298816315719292976569298048144121114511455467176971049331588173966986764122165300230173616513519448285957968134848093124167206721535849846670066457815807322893717965248729430051430192881164110519835345321351948495010809872045611450806648995501958816438677357848861137730884752316486752605444811854264393927458152074356140596192128400202006556802992162475227303049223017269838679871450813252691219780216818773803335461842625823994858289245282148114582212985937880062418371192365516865726655384994349727701382755794112987357317664881707775928937824532908122195581585893140748449989380494122414476073904705652212274808368477284895300822474892175801045642475372927085847651088156228413190953841962680526108495959549494170915029333685588954881072997471485162211907239881876801289354556958172751184884544089332840320975546444664796421030803949657911637828937402067100459179710814062818655370612180903212616875281098830736551701105221174298090152495889726977611036912303441523336925980427153036897675542259079633443590198240381662553441573221010396736319158402486464307469281599082628990448231372470285564395083801137671768710814833309306655522540181457512104508342470979812309515564686907951509035876584714567130961785610074786095079923488646997208846298938267497548076495060221078215314034137310985940925813509597522364361220642865736852159661317195269700365945111810797202165268957098290520444450716288153023072039935476650291104597732124316434953890364014726903154647584060823099334620396946374299294860831231506604556458485023417851474201022355929295010598750874338507228831056977430892282555734415228623075780006967055218131567473275400623290924809663332699370588421056270203843754657769599805272584126078346952540915529315251893855486805725354739725759818633908208269546174265523123490955643225854812341464812915215798102830391492964297057041616176626661071645632588802431193073413520940405004015256093543538970041094801470440625024032064685893562025119015160486441425630307553233634711421665385291684877116448199934784156475441977140309831682604228930122536588457375827199931698065344043732773455619384916355856612010762352225762517394844989179758510396316708387098158495871942253430456441909567990471333950941097932307373374658608598966046896989929914242095495807792806693057553235978535616150449031221121637212371054466724148581433328940373155572504703003797711847501700783181235267438183628541431414974499899961578105119433486644199423302484223161346728721383932622002049619800387114807372951087253891221740138653834416730589056177859459159068038301829996361727719948820340501989845809642332023046822145953493212330714381649388101316983437801074564712219833949366058754664560168000958542203735036703332874519148080042721775742481412069551721627605146311371054332330820423353833591016374569105871933440254134272160368223218588993821093581295785747505637649798299233877358993948376109184876095964420849258363670472070103783175542794836540379735990181439129762371436149050887999579323374016285190216018512702151295366773882818337549732070070000646189519539388108816623761100728016808365322816070884949950062100010980103606867598720461104929520442214975774729518490035985273158192087366310293353244377512699692377637884838934996439762444718717427541541248146837958426680524687926549982798028078533224846858815960475522232809859822864585685015499717980200762108422921368201039130074053504575349218066374223820823647013411975792733307580440936724048197700064933672455401801000741247034033432955003065444944982775524404490739441209509929173801197729313875607175559735402854232345545951616099684459869223194574180061271290804281785834965074052521257370054388380108308041906039159304456180404280781139575349320675853850846838468447707351560317884287644834719641426419498855358462074793145818988629705716649580317807032027186254067420521642346052486135089286210184890797944306752372016000984047043186263729450282069092450234781975022732689077408149452820357424559548216198861625752671480545045555957678045428579084204006794885409183146403747507924663898178794573735085591351335460690309511693609188891670601793850641069194936456612858657574396623300597811250376901670728284277830229328958944784551843048883082170902431247919125848583159990548374598185601921564975323028916309316972616041133370599460369006908760224280105844321575710502270408790639870609771235936345525089958513071973751980814077663231732020970174948784639786960328274021506033328071082154088093272164655779412092911747363623556264709994166971960193642893708315099957839075591812819108303832697971217546687951639511974108567690070549548313058541344963655983135403855766614536459975306973310627285992274054957691002130929929844923341831070140731137194780419997311785364002882305499524365875104675280718734959032706740604996519569021931746659237191839566541158294042959035478270828927106675869315872859848936214369574342397337217325875091789540413670513958503320914545262145130975186472974557159738863836335156628063293851855964823178052200013370212622998454784722206735625196793740786577400279396798456945058921830321320371746301158775225582801087933308133592414700984921445408851920142162167508494341166020605033453763934672634576174825355600157966315116026875450151830620005779779184073881687193737416308072610821404596145233660610388252162002543135665497936036807377462444459759675738234655699044502712958393596437573555408027696264099940313473298238625301099488010132711213578361194877431493492137936560222518027829685268871843237139630559198260996656360923980348157371800448617589218627156002258282735069598389692316806340716307979948310110364464115804906035131039218494758155822606636910915772616651122083015299749741035885238271397797425659062976177807376485369554877918405153058711452384007741577542549632983858707732835514305468770111420283198104461232077317063545089317424509616901130848370164659653950023803842379028452493007776372855193957232875323580090037212492880565304719854014370022915914560419122313687615615383085260266054160262637714066418939771372976886683935779494399824908147019211682461287702279835026994758680543312850262482019198889695831150095262343308642249659741962135990550517772007878000021250049721868952907482507161805644485879055565563830263917917160321501563076114244746841585630591694165552775612530080177456793558656390298953399117786317409317865242265936913992726627559639141055327796665420754046346986332660829900497578909494594695055182532320830452442420821073531719748386617252094833375791235501496971344265243219905288419699801205249418755587982382624971545757405321861470169321085165002438825227789030026194840448002383715601312529194447176033263173594229575525398343696202710047648062212251178340555674928851756136711876492764693701079534617789407653090158166728333515838585388077832902084265189313809093690086505875057204949262514954114142143773629658891317685181150968240244465725708022956247913875583782004401605513068396812366704084259716041222565157781285522338970587660000551777697701876869492245259070206900669401336915784221430842046625742050168312446132449537228702104416984679165648731254370731150565924432440157804985518754238377853879093558317980107899405310264272158878444773619183863329975136758884257706755717641049401898624229109184809697605698200293431565222915149402369031974331164912424606876158790287478961976563205100151067782625123316575862074133932662182603318069905296251434563847815353454600421758297076450203546679185880358468027732720799364206886695779779270460050489807714258228460959496313286211902233223890232779580857831106833435981006221958335840002293401315394530606202091969021971358233441284579048147803372919387785691037997167720552489139249356966049337029267834157687463121215592038069341883974731172167162506057670890750916333192308518928346412221366629700217288531436566397244694664310374995274776527031663728823895209512252408346136079862588322572410485882238725198884139786895156843615920662891339483158222740683204704686474568014754989342682802246681310812598235123032797533630473007001343643114086331374436929708577653138587426734502542105419998632289123636740597799755789684994297402861210890232772846282586079416290308520916012584233048532638531110616411528006864311318422048132889435964278278938738801604811584646814434006697004021063305092717816924771631415661495183398689406215509371362494888440331789592116086395104015504502999970399012471194482891657515806348124484290521310469901866182872031389453694111792049903022283133960418219183101501361976049593352941840834477828546567443417460630444434148972155215267707817069355738434293952951204720178307463926909236504180996528920961922684366556155995927597966518482041924620891052402174250827793734572890363407154487787141193742532062547844928260280767984798546909979626641052425085668615832125044658367143928559174183588254633180488804504789297691955138339787054978164743087575615996058276993610621495788203200257688928286391397584154389720376952425171591999075504935244620364613063772719858567118571226011086041110129678990662012859266055642182263155416038074795371646568236241863884862823312059434376464967760231600078358319442242262120354232508704773918219048756825726790304687641100379885660515973324470908443463295187169337561531658257557371927348747611076444940076676535949187356443527311999910966849343485464715568784885846276393956304441082440101971511331672698986619905650176843104922113474776248684683170126603033264549385826619463787856512891477127857498871166300222112503656465917967147756653126644217687391746730245830973906390351669136362187739750204373991913772570253833232428724113856040146748284339129122155682876932045073030411493175979519346933884126019928479503690925766527446890207428092959101697098875882705959261400217714565086750731518692943263349658490022076825300493574075167011745092264847326879808336622974048755916772721877196459242217105183712291204832308581029977850711789175336929379028691707973811598967856142272924916504082020141238257310444355474822498593570620578622073994034859947246739852157996680294048887599304713010018979413742252854014888596080169653797966605243365128322313643768394812051162631971609513048097767991097459233845813324538419434752463754694768910000128642519505518524810816124342736606937487052042809591670830150741363330562128577623143721973085543508847735444672481696883063888576392470651525447561528864075265589202933572285795556963364323024734396425241427173921933633075016971527139451798245944267231945320966961315264901943190849423228029646199211379272311356739590256282656324144852502216754815607317640633468229127714078636044846100884348955644781554172198872053171973751337840224564583901886484828029744972508260914942791497915780166544119606022318120042911394720490828769305123559702813360588863112855401111587350764249899885442498261386521647606340407295999759516825926948535135420399870002232588892952037032528320080028984495668901019118390112090347547744574725655138788783286436282003941180483518547271478141368748422922642188046015819321418734229377128744146293420319244208205436365117762884245097303869862205068865650442129904759354655707007645815615812035169141257156820658909101323382973741536151169880585794673502944657860176417163202968626741454574524050106907878660531139381519836835023827414242772398784039804284599022242992130353928482498182609335040488287583691446310183973427309095865712374489178805217124625216087431918273788840926023011094505905834914522344467361755190066483054881066895409097133104931530850592843141466207304480879938780600574886540316030216248658592947950621863893036837738077513044400820199895674779768209901572622483074898511993207546103223399528168241186597347166932592875455953505096729231592924557759960294786831915903323965572631920128142576603235194377008339765531070218786567453040265365784405091747935417665706972593425153683731994588207041006213498041205528440747103151126590011708381642320575554623515404131526802256648680681509074471396614861186434891533733918339322933640547940932913261906243850586254935374299155524246408320844192648388861719079034299689282744740026767214899163645310948487645457590004046962060047580877618635151480912991893773083676970654721900374689975012326719600272254756509047879320113210644643936027967475614231394358906128476578715025827947767862381544300364750558633607042272062534087218964220644529804896243735668737295624462836099741312571621799637479078979383586578742999360450672800402836766982208481560800444618861857691676326012523812389157016061862866743665365445340311463243566855748341213744132848543501351212342296512449384808230302620550344669553172653234205011992069312727919694468901166067786301065476880061961439030300149437960559770378092960418517942843918533594768086477047092939604964744979046081558465042139347025790568966488601459989235652253610707479439236431709848578499331747149990575744725936956819149030952439455100836723654694153839194344385347735966144761145233315311626109327613271372755749340423840271085701736513987663662066154425112217814189368251709735972606384575340967064693868150888300406086702533450034407534308667534798997252210591124915614464154341065796453456763766504149378718276364738249288919667199697791541957527167724563210670149891987091483187592092247674855930617380483757030512075074405804433071354498376021242895180431354200437744499192707528480372283060219219992824574855502913987130560967140631307037697344239329845649947017707789995083383244731447105195781235255889704819946679396145216372666698396571745528183728570927778715457263548561391286498086054272077765307743741162945878185018981303259006570337127087489235845593746872185379396695739940410474913159489072705341427908868008084388655541041958401476755452263611900222212572501686121820955162189523682919788630899021952668085383995929772324321691211669518256587851963981364901954186810793986128350999993756093880222894721361916657972575771083313435767149521241374414496234637064143877709464818345277875053896027116116820528628632845405753695228473578726348293367164417514770742787852872375780153977584452444311985321832552114767101479003597263580423187309464045837343381473342616507617877867586785241285880253574388082105093103668077166397367982747744359929353224364659587362500613588475588445831602886011747854329844657707274084536697962425439340926967748092311781749594884372522707929001088017903040192377548465907934622485530820062993615596862344378437118487932498404908265457235400896249672347661911689863959658622096412904211744324168055582908488855104005365680811462861613682239949921577199637759596178673847818083004481652376215891938369532863500279647132240106665150668956229419821490794449831461908570375489982863833246985644366670029900802975773216218139421242483949526975503537226604727301636038506086150659577986813904407176046977678026640745413608108784285284220097893654109160983797153919730573061182893927469958343647704324296565307888273502339593026547564264249528967066590908626626034608903742106541536090914904981157802156748471938237087281330400088266323829442369846232225987177288835982775988482831706066048331284052606897719363310230156808725129594022257078372957261304150221066443166334192684512145354091582119026418347517313081121113320154871599169846322439151846762289456403284332992829593538404751256360605929992512130061377033914103245100925784051338740121555573264436877307790878349578692600280164340100949666871493673884184406768330995548944119449975835212753029434889885022226049491612594778871382009479202548359894879606142071003666374541465757949543006202977968240413440500767625536811849063255373588310473553573787709229539319688955776327000835901394756690477184717967721925475938095385482915157924650046769886275548806991764101502348861372801485348044202542484607097346821506302869384733230960562916911981437474000812073856429444277465087516476935358428929238957546398296698363501638874669213949367566727709282833763845698205243746236650425138594839009526959671652622353818443285289647920530104213524185488848516963028746412583112894064578452831316503464850750854662887309268237789327191142040262712581336885602194379722026904616253715274630069390667403734311561992930709037436482468969926783153735097185782813853234468818948396008942618759646923059344792186916160156891071239028091085645565715905248661265798861712463243358180217591585107347494741176718082365355194328823308394423484636913382600431242843307565688908325739327368469540472122311769802650838931920975362422763224971812539313561518069618104201670905922247353827850453707833344181528238040610883074956050963446981234541164352997783318906572019593943722450282737045520490149122241698003966721539207308581824065966431307875732320536351683410666125012639087294634650349296618276368985714246922108618950601642216675710378283383821088007748564953827182595287443140078437700870070807127788738582551131333177060004546151919433967768360907152027199030489605859082174443534761358414589467710441747682025532775448268756829753432445891187098900587427053059007889895756994782586538388878887112214269636804482330278973094759730103269523600785479137210763825873517711558454280007713538418820429285693074527525507247751061322024624997882291538789136000129199191464858541012443525626503209547021022030544170386196762753424452146768301436741489535043292238896197191092293119473435680259076144267420820097329720496751732489394681637043883739951327337339437712866637574500842179893990586609678813528024307176943422776563216588715038829465921358573802616364327246256523707660922163518227475634329144553016610390350738957731451907572766424654656019579702225141408259796300678910194043417388926999009957254860837886559109312450555249926533351142070091052228403856380017938327817875800948493409085247162740049252464368680339556548190215375763449460929292764177245881457159630321045953853667874310605972312966309915488535013214210349657533527000875126931475093941953887741701458964525078058982768785248549182624623504758835177590042398697555870393376488789276660698929500180059962034153654684399880829366195466934994090719981966049465735273511365555612640689018901913238277388819778279368528606973208133738219116426042238983820534520576691205577440965364442102118137005234789851536066405385321161890902479757576649804851789014048368535993380271372091697708198727727393055799630684351365299358515795264672084595653367914041684478414552814613295695450511571236791845858149248613724955006079946889086635511285629228590544438389684805700646397724112841313060657126190272611284493913688899329592106300371635930018420320190137536743255028578735336408509952537455454034485038539540674634917819497929776558938001896029324361734605920404621402687017799228904009837120893916124403512146108389187496117105835920656566367424502634352551615639969601977529078854422462914114955455533542897765103880113178741658596836160225726223407337249209995733770416463503219505057282869112499334095041558962875083572359432286552880000669718881314652263165368240503154254934160459816728318630365907210076867322773308336518564425131607109162965216169467097615752355104596534742305161290309235021387139755651400433963030269031105168377984790408960388394428370010215342432602965036438600547894385364216450297672544942449809243981314156623915480040299407459803914494357324737189413090059009413524795208234928595021272790646581619213726754776517036987557102872807068663272578839529535230309323074343233150525829277246312646011690357556638847738706822240800024416745711724118653652131107438390115805139234656649648397864573964727713284752076709733377836160794473331429415380911614747552832042006884104137277677693747248136019374017321937153365439276447568424048886885285299308826919991190185729905391422206706746033732444508789905768623395659874761827815366457219704391981950689875049687758262474918611197039058065442607069352978320965753685490822881518006633989683581539352994723320568798717606489512722100325846737085053816702201305745411365296902931452700840094460878014887283614510026809438970477019611482799067850492895776856945927431741860744759330688218547449399580720091121163695878570099965431148278121717446974612736602527746176356885372674936277969527021688057411378832481975780598898586451365911839799551986818980861389497374309059189424913726975923211189691929893442436692243523490549210407994131149522740309560315775143435746133215289513350853340682501876300593326905198157733634394097820902088261899697771547764658126657236561343700611645119796176843189176840023063747200111791770688200457635386711743960943072576029889610597504133589945866565758732957872465001119241435262031826005407449188768487141229346743641863814134306788986045938349337931844423305580272684688001844892487996411891493164261470617058871650917008085365680216025717151757857297053094663819232293623527604722644455802545212475398995602662952935164588617276820689674587560418965134763453423401111257278695756781032792505303030202415302598383076951586931773613668910595549000397291709895512196401544310961084536772695785359348386298825418280184594277725390132029936186386822985340840552015862943415112983454423901612029745868798656830982687046528577051842287400543935181879896224174580019247148119333679386521167076698463712373188386886596583252605299863390176021655052462612633295183908266071022049913523171151083725334169692095791642588384375887682075440775700423727585785072256296940584319961787107294575292846959630897715197932804292507370383709908778875086601808935786654759698152945838512536104523097046134948220277339443127635251320667032619084615685564975737794740831038885686741761020707417294247423164478276599784224237189397959816265375587528008935102014920971779191648951380244100715778663358129037729917301495713304542525779428268456173534635428977225400219867816351089065521845551668419969230273971824362938900755704500654417471660001097417470175259949480446461286624146405044719595701681294481125778893793081918867040413380847680718472436982019626818569726218610376950542208354910389520136040029715241702237106972896988912978284505325841457790551852360932772455973594373091749176831274150010753710022669435007262261578690390709520050090349663693511509950407116192713377796423277496225159144525811125180764131391462279521668756681040656083731949339906552069123919679569968558748561278353293755085082070736028656054763362739515036783067075636599712637664210629860517923113821623244301398325118791523329628138551467553984478985439902284613126341939531309527366802202616120393858894623059512140717020904771421380691951671096105157826521580319690292957219629921743851492079432010446614961171560711591880682936399301085225875156235416700044726882902900714412608209956608555510892102132118580246629673734828939036787594012117916514416035355440951921205188873451452363799301421963189880843306221737825566681144887058589753372215942412646827120724810485652844434928877250510911082916426638762325760722464514579116479482067293089194647666802611715321668997936220867759680326976950704932962658486857896129812391475595779177349924630901612839548973409535512648207296044060292703907963829990152573126433877499416199617391873807024789902835488085784976423696123513209974867062597547334561476407879452094878332570139671971418559048486241391453630885286620132855354472411912085021894974635246794629043584867414333629362251082796149623600581456403486592077722845529488415809622049404199686032401621320701252135149660299385679543754278462187568463951824507183910613423024526846012678988433606882599099845615653149247090645835001488148017659042723766292255125026943150979532638845340991699508166502493866651365957103067683789192758720583266830222682050918744669223935572550169478127498995263243790552472535647465286552765965630436493741340816278212019901195602102355026343316211680582161435469669511991904392757547793805785892635531201159060020067348666819189922713937083695301338969293412928232488819652501902394829669867068155323062448161523520256518508321538306593752507427152665409517227821906000051668703584858807468080896014995472428570370897283100216667052900316184390147670494383678340227680931063926991291266337041096404985363228442361688058232485973847291175855436866380277861962292622710737039168231066410964412118391227454761541736124595906171196087056542790799446563621110292879027260897962885099273663773560249331963275162627557180123281302486073138804270800783589925012122547628244377366350870799794893111421406915649481897598196669811332473355210183394257826013234988069732854519345552056893304895753035595483676254916076588541578029606817902152636814224850439262389341880365599291046929648157070222665434923920260755902300693049999980220732359283221822352594436815650083029270145963954249817405022136409143516578814548168166304626048620471008259066767078833581010421079113914580621826434839911231911467893280603828399558775690749603513987862282429492576093170789662066209421266392231551150141761692223682722763052760617943271842725300214585845351548303845220672201257757377098978167065960935664546166504231480862454206503059852981283833239408390038706249734684346271167100404114270864155574706947889420235579186186667471358071547667003894035522706560800175083262584655234387182092498371724031233958841866433287612203315911316159716123640518148491274769241441838081598213714470555614387523651427532916747850683914520099632736766632632337775273866010695484682208965309889642310379336847742713655709953437259757713174169190364631725961580658763805877789931117898533373664205183201170710262032223873974845376588419838469797750827149945313043301624031109089769074747360050805182270017666575484147973158727572436871585928273032893662876399616950012032290688427868643187299992883006944297372358687052703187639461021627579560985659920851899067305008760878850202143881974155658870266798449089383988117668940864878625875808231775813345106207753544347400473028547390663466935599187487615527174009428466384869534808251762687813212448803469139369924613153028399128247945646907692514176166806994252645267488150162658515853201701832530915367770385503224493958266417218718954367832085257530342206952743750548511497794402693668230430444228607583663131880734318076601505805389662985673941265535727533579063443922362925326240332411693039640675251502466375103749096380101540718254875173622833430581622444498487568563348590919660412761213510345925026213590800536376145823074268997146114415258573866584697176163342302082822557637268075088239199426442446256889920035466321397505029941675559812910815845204750003580943583003313479122066650804020845575470312822174015356468873212341725552457143468643591866870928030345657293108091067465736792115257706247319108701891194049028398998353247293853404299745103655947678740758006752870491825031344807659275226512399586476863510265106901808888252289839036698409461551951063713462820087075861188549101048775245093879381863293200458063615590477779060695037937951767404689986653226571833271161145570763258724074256513539638031949133472146835694471582203871886501039850299272434768542865164969984952152846596971439498895539025293024131766559197716414748357293656245753127532310261834421956177337403135034882963224958957221644446939207129657325340794123039909552478699846233582558093165854026147204676525654094726070668670327822628408462385194731579300250372820176757086083417594035751047818686302233862765597986167449420777053703345296032205126401325829054875242565338006474442232738478196884854574291162425542151434443645884248782244336281086589614238389173568966106116688499869286627943346764210343409640146926129843897791250062151733484028878376768481660952135549355236550074584245682845042052263130989146205213107120613261951631115141321140742126959106099769959096642105023043350272091512443320499652098392730239556423452709711654409130930143923421082316165905067670619322143552994214739003033359518855952097013261493593893644716871723356427240167141317869827471705747601998215736176773824541715276688707465374481778611462594899808788890304513740785153636426505214476742631595949200574747476253455357659456640291976219768016026112368923973079508890556586799160882111744841202475609058819675242037587744701670065035298939103577496429489862503142498312094765707550530660262997046889305047688750616104423476378744701667409803062120884753519532806770870760337603572422868194410983390242922460173213571358557572325679954067630663628692690748347810000822720076316783169936120421350916468933751176632885237640452576413854225576572258042645097794485294519350835821349609249213850173014941985863137091893440241028940650142169961262024080699790977366178940208070441649281657764075879482902044886718237950369456093268774859777369063064424693801833972593575532535012563308256609031987870216971645124825799996296093792677017759940539961669609447463945470764691892679567273653804905722760418963668419337306238859858045654056654848297473333929575519322706426361279539378269815780107665862097304298981109916013474298635672307643770219584378311916184018692908483181741791723652586670839502614128294459231011097479594560938399216514525212018638131906910694657515705312020985482177168674462829142800447716171612501429773411727590236489582177444527041511695296276122281004536634200158516782851598617107281173897746454831086464156446038945811364008574835020375592583044425097363465206815503221359818812736646816536916406269272774191225321096310180837717324956664329187046272073309958601993496434139489105991801369764209762908421901443568286073448407539499281990959119390374690783649833971595148335359057432958017816265463512488692662247645350080010106570061504505442346681327098510019453444729261166302604348072440741415095807166219369169883898265226810938071872807795341696411203746315524634426089853953504165932492003886938102230203464414279995805400630311398026606801080526325193689229844985722260570404396369057762365523015189189050672943128587432989906938868473064120506954090056119240929647966167363697633195018383871165380647467598553062951634336924975905268797106298849369804581701380925656044881194171650391623936266517396228035649325346005016796407799534027238255844747491988942630730622740448092228072319976947155809296906925856360450644208361814353724986594290570717455695196580357265170658460638121553863595063579487767015463833386717404088832686461608342908039385586788690406033471210864448056694461745849324591997030534690564936330644582614581499325648767744460313270516308161659727522204040153111920303376313587522117327018919608436346770917562667352571186209387372364590195184999587038408727561185224010297156249966660643660143506721794617644268849033685231503583339441098628419081246274300783537236923596450381873935982516308217223593707629743112937984316444435679699800538453104254121063249395942965818042601367267796681647220362276558216048187939757092408321056229473736984669562059631665530012210287075664609592618434955135297524033104403501314948597181491752211214755779756128497484601145538359912906148151855391472430122224093209135700334109098532579023672777114024226296396329192486281314381051794060350920758443216845684227859343419644396341395861960501373886097674304579270384500082892463928533736360925795215795540924104093203086804771813739929803700589345056729067251173652574423703407483283441821880529766259364251638557404180825753714065182602134747832641194712228747268187014995943746496069021925037486180604197255118935707092339159786520851020396920312602080390237320034236112290715967223893141576480302138503544783810389489512526637956033147912038868788280815267769740937421109568862798544798006472212237174392255379374934628501538341206935753325716824130932813070983725374252081195429261679043848339580914227781847717748311583599491946231294873030198365815530422859007195420615841644544683589057261020948638964378437675050370695860256944032697711471733290080212786295243184414079430478290214193838437940586044174259653364830860174067579422711785833691349483327418040130642539690077627242609772863730691040497131979417587391551310901198917875904807270880251049333033089792615385061319537735873976080253870186272593873378044076418429923866068697990437265519284957324504885067415093495674692223115127817023891999518929650052312391645991788490610689270240125814733936212531202824281973136865029463966681962728604778885688940386054033698354873034447323642911196600516108683366020230007580942573262946822964454789615507026860507230068632587713930335047325524518280241555863462069794514436883184248214783093167954668991179253202031216561734396422443925653421698023667710037594044850919635028991189040793066730203902685851002241260368176445443604245844548577560239539237752003633771309008191085171116940165452939809349120744727522360155763862329140154807874187945437630060918459517864238213289536336907061594301854134388889223711853141167932077589217209460294723533568276047715641388874555560052501444171338011325116182601609236436526362293650258626184763123225125685979481094396212808089098282924081306543537816485820410594371906536957105933161154978678778067299457568794928872097938339695849467351275767796768710851293951570007844294608057784569464544079480243554630942848511691236584774762991121745370807690036862768013473263497049264326033931417594310147340295286016261118728970685921925605509198341117475529526768787916029224660499645258059609269098826407015263121888208965162657738427627315889115425345151073761121195837235126715612281900897401277119524933131305196519468679110847309200233736246709784633885030627555227288181340616659377230635852322658867988935042677829119470917280214472910210041127735491927603114869608519912601359938531285681234616471086252492481439143834522500601242005181816222767361405791953663069358559703639203764007658973581107166273754431014740571775277960265976961344234812145024610185914309674598405906602238888377166249072118047606978446872915564027594791107131254114847549811138160675658198893291225330935857162303418775096197979256088740187636479236715114541137130214440119539680855064250701791782579208607941989846832382751890030981279058086107813015751122072791398880433708210144990093789052318427285116974405252765051429627075030670629804828338623927245047459745238319562952375504616344486025072683004007293154422690627110876540668094588362285442001404520604261377405308766480480156834855065709314099541211088090888798855156903112731866429719484142043458168989314893824320859505679428277962191383407007450505118369059229114434863031570209227848708223878465227261159080762372965358294925696974390128796709203138532810352886506143795646902316971921314765357993848282923723887598306807747164059232035653511695203410128111250166057530966657260454149724358023206085087317172039799790886045218480364687231173923382690087306028239945927507259416047093054283126293375098551053233873896833089971879365548779757214688759509326000564985124140967812020282597189960200787046957784695767560695057907502399283590502865877714696254909746566088514833688605868375485750597859817266931042648459889545323381997501908497976387032632482811850344563497507577708804895319430327848066293720163958095229244172392971265616321250313563960358604736546773798727051405726908018095467476809571354490330688099597361245826940280218424710153320660521078624363453785060161997191619374670904779554018721683667284477002484508471622077524164820947380546258486954394032696710364874473794362525842413406148030216275041676532042725362856145733527079639283165240410457627528863119858477472719521366028957561567639838995707744083729002230535681765762554324443986280339321669464017857792123280932585209395919078742393262969271710500889217823966832183880034013992887505420765165067432636279609729704051442046807787736717202459002535753597023455372648255126740719872121542948164472168316975359423116802724010908739353402503644660315503155142801301741129080996516945741471254520602137140532518218431595543288673973990014423924127980775692943541365408996113182773950676294351983375688780658458779949589272698042612115890379348829519116379842659635105204660608672979997910699141242386367682701916544359153252311373731855735094904714118906693492795539483668288032382784421056004988654602185860863165531685696461030878464634482493613370166507291190850576326449047518334985316655329127442759251412573590842053314917790830313617046653006811655632482027921690680191158592911865037809817052369969373272311609016967476634149600566071327137184665248507741028573380712165106966431594330334094361137859599606653918261138636346760776006810856329178938775693090400113038180381831351768509431865054120612339430317000587219567057680472469647225247202377580575350086044565940307789899818098378536749668261467375320795749695316833246826819925040445483838831965117839279395341025365572381191312142160127582198513624978287810836636801439684320683920474612132295185388678894848986329447627816226167812419797471868135539845943930393041663286964633584180435279436810687530495158441194626177537951688588974854960667864963231637846199743800618140884961934258865789544684336266258621919690287788328200599512489277188302259669372127830517227701849514495039435342127903878270490434514308907454510384705404272167347599826286386633939386483455728011417632030663673418351951306341252681263979032702420241101474532274298461919712475981325157869946553565355690463432990968319693102556691933504278361982397046698104818764168319383109926708661328295538427446840204959095643358674696928015314519413839506526428737626368081975460586851164869079907712377903688216013964977158931688248201813998280698763829867446970073641217449721729520147889103518514396585579206321507714569831883073619584464537579595841718399539857697171720440678354744311914405154701329856046673213930876898335202889351533669918818160579114462360697679212807966589773029085323992996069019582655541766499069135967109799513244047405549683737004133911933746559167919927654557470921314468587916604464604375008042300546626951804057458231911789123172938237555144867702481932920186326019168946825878655844411483231350126032554434556710362090134504145624499485886990501775352763454125867590353448155612467882176569056401063296398896201533811971434195469202866941991440484467050572163749633220572003467735532232976425551419678329797556162380614420918253031088600121913649532260246151229763012120305096986540693947729938764154118669408260317760137250281433249426001696952259309048215126531664771427497554001636249447506453265891314338681130410184379418013721472011252574618944133932943193356659666650152800351933200794090932220446027360640006941864202945413700475380397498513072118661916680713190928902942853953466151954525038808844263703912541438996792210470103031095852893155615046492466500095634840361133124136389413584364157911001640378737045776441953774392418379263858254605748159042257817065564043875605671725996634682459751727336383071353700220063727818188404750406253535167286332703855365751481205321250834522663607892676398842449819134846343788389173222053000299703998950590550827593349959833735598283537712626336497748512189575460184823838178884857314006714528952429523804516622412500410032238052385445686945737317552459352539811535710937739417502902593787663331407741240424233522454009817500654611125927280380245587455593390679767682227890267774986535315412444662730153305432486408309228459598416994977071325862680928275753194144089313560582634375957950627734728143865009904803995586692574376152329316431411265659562524253905597690562542844923593121382522586346767326955141450494140016898042343287392073834430073984174306273855866777361104670820435042016847753466803287038149706378734446184923183534972270176173615514141769007554752568004422782655151411619453945874399219021607915921577404297059944525737326739187351275130842903376879105061421863318179041107909757768365772564400542828035023673761463630698829531395050974772960054080219115387287081778680241368889839672366300785636812582546361896910135212985210232003244398882514580475394764009248095978513633813440295315852581610414969824206326398567889875987238444693902241595757031476250927252694304243329753303359217789609565531605623365810475956280681565964611996980676495951831538244442243654822847285351902993152281878737313718268626684880617896152697797860034623456348632857897746589610507476026572751340640224588903525301969545742122456962862181418538370547175416008116059178096135356359479817306835980496984076677411086271176579136079790399551357726307475634660384939258564602670365034796362489131187724303686912428468048157176832419683905932139995232183220251603088976464979981240076271612789746639048403784490223413515075842728283426068486104363012753636194881013828318254283941117190600264229684716302590843572581358138932723816109069956923551942215482781718462779595369370809614591555197497468988549969813307905588909569800824411942123759328919902101115838758592782094010525712796196160831849000003226943010465024449170017475474189284768578001923134330237158204556378098851363768490838500190270620130076971869477458474004512124659447395456252330751607176473406393466552217924958510043108053510085526384735344397289914692630219002731312981769642229142345733270944743630189571467142573969128749991280190175467397275112808344144112041887622264374947683215570041993200171709293120224788012263377301261092760478997094277666062324941929818112372887038162011350387446467428682391009952580239961358869708015209456953081879666610422069504987078629055766541637662405329233225747622113350665748891460713026539930662424576071816508947495843410316247059150367131745282294034531958007502972504201756404778512507913225640132971703767960335107543754690362916015356265329283330864600113127048862620488071717508928095666935919720655074491997428695014791426000934886647350847735283821681743232788835272473496642803322849225585776355799027650463587817962826914282510561105937979744837944172507521092085996710227210365076704382939646336650895415140135646287461040153734672876230273377203477560406326349904099600253924553741469858672301960269773335930389241977006467164840788787935463318718656825024312856782031873045487954431081240858221013443724080676150693832023557644834802507091397302634559611941865450586007957540674973635945730083189197543664469790078773672558450864987670197408919965042281872172547758655583557553603311486269700089715254033154144236893074552771719839034841399856108570217797830356304352007381369338470753947095776447474844871718470913529650458242187944978185215236961797966464761885571756918666466418336574685263015041251315508817889146020138232058322065615145843511695847913878461210090810368945857089812113409250774710899356863066997247407929962141550531510508184644024111088402211789520231907305068646150329597375728277643987163457883760182168455009229677853749447750671658857678230198453028359347967327069852928876089081058766782597842723158481883545848834905830613355023171542501515024686394606739658010406700184606868251636220213379011311263584741387361017050867875424209077121672201743974551305570569561388690610523460822397481573368639000862204697173011123481517755392012606589562020538334459626710414600505294003825404373324295290265830238284685195000834383479673862219989537537895723261713569053409270221858802322540225170090893262837153667604383256939043956187780517901186667254692168550171018767405675747281511232234158380350851918734705468247239770263783589337868178231876690641566837844607886911977214614824643387381881413402765163990348586936850769893642178696705948477806503678860523530284485220338676286286006711036335491756534872853138664190637049573962740567750473281366255763150215120475078922815736894329612342847452420338416192527495959643541593049203082783103422746642095337283346515173122786261501157342487003086312021979350280277033182479032364471868472072828306928196645179390320952622221463683056882090844855418072192838005066640651388990451231678247982381052894278450131831329608393572616966144050170312046494951537025927812458907344839092089140080678119159892050761202878219150259413586016161214675707658526373120388161456666378183926430425134303959101922231784879804995054934965829679217307296376446729356907154211577364134354222135233492155688601419649089066823364295131681678677167005886765465711954367465325144730755493462977579712683200247472598385265402602494874217231579766876503501600020726195464508359545233071429537867079741964469402489611737061536408296639020596826956282356378299979375137904925077876440390259865557832023115614962608309172524767022877685268878838572079224348437258731766164556798442075242488991420403798071770560164158277938893024729335514793331622153449757752304363269418872652212650976353363107573959862152577271915336916914415735596206256849990648132647309520150820928482355482610926460302830607667704125810973594969427078690997208125700120928568723479726459029563614063803446674723853857429252476657012033272653015840759238830805675072778022813253244115922518173257843066174996290354521889572712931638546626322688578340046717742441189397960097237783602493711042152898034827960006250855165662162776000366394480231222943544914415949461367251695264884378947373110017723363459927692289553308102489649224126076143257624061171328557596484813365422073492018529452212804593047123109661329145327894038662339546868144711968628190279009157682448652999156575605102430540412298183664919407702057553793488941513061216303789978555795823197486160656889517283692040803931354713671094274928667671206003036708537047709897747829445495220471596573085560149045237377484809873375475598227305032989946047217290255606030836791648646036083325198412434379098557238500376227816967767293425923435410303588725393031235518210485942028822695552001734209362642198245061697784852606377626074681875484696171353594814781258446757485061100743275645288658475735165687078148984039642940299968275381213627590092627329645380084642275487943507264484643094012977113549543551290624930552009332398885446572807573941980872167796839734574351886097923311215506226404696651645424007277217911296260618361016558689856905984808454691154465095314323089428854618394428410196997684681210432651668688710854354445693758364586229736183482372924086548919950363390297674024216663686001299736513015949350547622836923629081833111450958879315064545924379935593653402200150250049924316031343650967014944099909856358698368236695875746908230247699514757080304850016618412941787276618926939445834391155035792267902135520153813407724218537696159376903672518160573227897661434696257833061628261137694948853992849866368112299869546455779757541936598095794373965566191834831394296222998446932507354450412892859684604456441766356080813899759348552272003648110078305443055626458861645355190398204824341307228169616619115979940042589061530813378937237930116493522045178573724243933121019341889461376011028319463598264627074824884224242699384336512066433291338247060884224092354679511330878927662787479130916508339424336199397247887717041545250941931816062616526953254360645589457079625841894781619936776447503674370604627633993125448875196705541499346699005279441602337889436717375992405310929207601587546252058793796977854072369121252707736298804707848962942819531239637664428153942136867647337812313969177980550924840260730598333957440247150217273489332757723735366689543367108389319168622452544731158105790282135370936210979013850028812465612920121129884817922985689173817280537230585815762922111811042673257827096233496455480564580003704842189561456848056817871857252041553257769145297447984360738717082483258678623514732595161889953291850437955178464967742343801123806096736485348013563810162947754552285863201561595233730703447039610306169081899224360325790887273964745751238807794212666734107286315606662845062258529080408591668482353645552101097572652341272649327547180499143541790572268512309349774151154532123396613748090464657901481985946719399342103100824278339506922733126293549092242027883150377874362135938804327546464105538794033552965286616560760956447982720864102945764303010173343174467987277424120179607142503781368312305286434249166290107103646651711062620586181966855154353792636834588534115977117366124182683154936280565777263153484827151362655976443416706134577806761343585317590577573247520292481351078662337868164106782186031016864700775681508967741054410360242146883513254010767133726357801480358696455812516579688985984866866919711387197651129615360219869236242789838141697228436142880932451919769694192752965801410883001159517604794867397632781268377726212177560230204227736461302743248192488470118094423202171883434695413555502033376253563803613146612315924829684450341763416663651989126448141185858364447675343301742147384153722194577160127367120005937040846465995874613417066209545219859951547981165166076909046189684037524790065749569310131646732497456859917633944622351910353260025440562358167446671268909751290416004653406920020971119060096385047311034348003314235187273307107717075753550111309524937183337318525954529472048487989165678968699288174178015567087581534741195990891316901081073866757194957275252984464854374196527696321668527436643455328254878549393025924668819675540378145848886400262192799092585155983564023006403333376119155098733726683530692069558935640805628950696477690460700275848096640560706152658021485143916604965316838374441112129391104482798953543602165615719682415752083142741864559219211240011864433583549644194622311056289575345560587338867059486503231949836099746502859402106325399840856338432918183987112122481711441598336316677111211791190624862418250198147494377043380149839317202472944214788541439796870551211266144659379492223708381712350219701109512458691722343602526263182148661207667159282452012811953581973164321871444267151881822538714958475755763620605840025991762601339193437863504401767892040251598534972829928685273225330988872943747774455737398963799542099030970499337283738843224875568340250760046449757010600320501979853304421711051833235607670353455246133751523045714360202494947395368877091482640164520295787252572933375120091905459384921741095867945732928156226734594833190156844575101703648870607747419834800528688588026984531894174380692368853107529159291348339251228657065097615689565958432617351241981345842459183550085917088548139034550592350538573633711184611693497620123514542991255479831904235903945742854133966496507693057841679458008841205781289934955174765128262721143434820632277620902862896923813097353328260681767893945015276579694996480659099996138966784285337540154322563317186965199034821090878566511366387107473825201281735470744549929062451554115642828383164637688300336902823767429292661297568198042336733796324458421670097485389747517695030259872899395367289217836862715810382415399936715006154839464385956878544774227037930107066185396687551245621164156120290130135734326083123838968079529888595025467823272913895557223130311660332752182227094112046453294501968395260761799427117893025900714071629545010222565363880936757959128676906011551733973716815137440581014806402183005435014600146642045190270720878422021132194870255945408753165990143159839626588035998342626842400098698654063073609536980666935841107119720737145892733193794681070349993884081182967576805766758443388910411652757668502411550056987495186490599106370791786689906770883256779746601637375831980078005522279596224402881809572252909347681957663985750430156725185574563387152041285098010891216415350836777884992367236281904348935012513355463347460740971958765945554979836846075132810372949676185266917576231934905751945832738126617921815926068272630887966558684409239557524700024472494286041649888047377105401416773215750231151123173253211537359163895317237702224797773537406252648318924033318060290470349990467807478644054911183301487095704805116912708884687002456019734278978464174875820169693724940465510044287878175418678791037287169864669622690291549976541809349603750279002468514860895611724347733658822156920250166539112038199182541442674465719274841226148555768674371152689568339626530595526087724851038566805251097684429289874905247038838913933339140251578693372857753153948418289084788356239972168868592784974860947135164501875201173387893195591854694660023125869292421483104964116681733583909565397257376616437980215956872419252800185379824666227391042055030484479365822429144861790054777070888183024514519864723173446919514285171765467350222657739143230125530057554210711347191505664377694094366961753790973531084431245581362395871878457784946688091741865418108978430306618191257672875246382007453020120036096048024224311367303782385544997071684989118277512991823476113193572062509870283443539517621792783556849606363074934394569913634123001832466568464527087168974395123944914800634292578631242295056377178419771710514105190589715187576741935807204570334409506030713133102217431360441839763060318419630852796484563279215579746392173856656251809877494260113387121135266854594063745306031539093537179281033290368249274021630718618740185345534143663914399131254984543715346317890700143751959544160062672761055737165355939976536496842623512276501252807147983332768535594665679244857618548395000987151197250742378036398803746627042234315972583445228149043418642561468537562012622355984021318789152502480872569367887887266528431476321973309402266037943013899332536193506884605241820523277159928692079701558910753090222877909055597244211385576994610361562096593495987813880713353214840773663278458314271261537547785324647863617736461478572999491318657714755956703973542859967812896649064214122564276789085518383671506554451109839367490813790856280178681697598313243141517734464042057488325568582187770825644725011396338701233539908285066076967595908929279957081611182197444059414575560210896753420125969027216872837138780691213072393256197205627790251201729963643137701219673706219009611037154638992468738222064722327151818595684461769384056913850802792575854084008053273477627037464514920955528766800977814707096320332780682870874625969198268943524455459763226428577064157952738647218834385851786108377751208902340974305609823703323063463075507352750416259716074035354230380255366280928785200481527517266170053879057227788915504018728763764390197315829036229582589240319700079119949125189060845967496442932862764150850011487713949146662962447353922987014006911862358290596655596189354074565634084880214919067202287924631909251480539326295362586985497834399294412665451355846749962298853636182266547747365278943944281930711651381136451317124403309782448862361884194245912592680116483185285985782873744935317722390911638480204725738583894013536952077590798384849310899969464903604281404481330417758127834160461335990308645724913301945006830428446985292959388888275004269698576021598901253918552166580532199354992713327821289550227920389049168339040829755890084171991967202848585424963541977796692195864156413542644602591504440680484051455822332355643922526207586820976389375283204116917432221378584507769782994358821995127570371812482065465223165530583812341422842415667997382634555646693811959906225146510636743022647170215285572944419467877610179297440101694902285226818581902494946041729105860723037870676879337868030736230978045122304906301362688597270942632761162108634665036540084116199701911263176140725775748425325558068087409250031837230402079759501198828358559088806122964721263416495607314233758586542273223631004159691162737334820939858159048884223713739824513279223755633957455892834103410738843677978447484356092746569350121843212052408523496992563506616486506841576013143010322573222422219512595279526432098712914173624324137607483626283979813576032103536055319366099179075417530711776670836161208289897779205343126643421236609371546750411004787878726290255323055577279528560871794541989153796325714778658607613100493634555838351161023272981028181930668438056447085924772165802039036793645831790254680704191301041750896617849491053043440296360834790592589488964291536473449304764921581639234304654417746179463107109014895881336738033657614405998517303152372732192277023731659775018066060217929478851543258882664916933520832620866148804887878186272395272690023891256357594505014283159614776480569228601694311821974386490679288734335707922178171171873684296454721040643550813387037490048183494754779169260848361054497468892269761238526799503942018424650823777630767204486198630283360354065032413069312394953373783292747107322347195855559645822168316543675149918699079418483308396775495425786332059111244230857488774565585904364298846776746307975871870471391761758435571008847176964848576598702023420626323846105372737207972170645851402794744323287769775317832790278976603956164180150996641991578578241153234416817483107882638721334358756051477121486548175646990285624245500383761883009471056914149858192084571225917318808659073331354583233275504724991008289277630683594511662465562171581795403042631134248447487436764621240207731432261211684274924480108493217165131350007822457328459192455406233674634119430047466509167099712457348329540744676881484251633706955739318440194659030491006725035508404842620295492244187345971867617414675558276577016777266921635189980589870552989968427546402438061967457169513336579457683974117526957053219231791387271116915172493632365239355289587128195443931764049744818060839038875757830396714142405751317694040626361177175932516263375687593606969543165382124239504605224239653431431414787019212363374142489897260568651494786469841695020444749110900459241993109282641291165441345303288658910227912368774213823857196830618678794846346597098627929246941473513583160670759932707282930550547633966612195474906648968447666502697323819350773209497781577969228234691860505525312971162359867390026331247511984737782085155022462715347802612889780602446651788319438542974478407573877141525894269209788590500538288398482357691888772727050126884970725298369927120014455939600929233318567190784237598296362560604654325289683550408129511634340150266368177905802722124866592449527355456942973893478169670079138705693930448611271806418062951698775586131827604962578341379251397129415879268313202858876341324675442533590832511983098600603512559418078152689032297231215002524389520235115648389431856188757778237380578586903281930138992606768667962026071302389591778736557453562923517165546578556276024050950371015825968689296110394538857738185250572608127394553463668378376569750128270781171901452336916683324703847540986986923088774096885546550299763680643289574232508899024569984709601436762964516588024361533918327387707871529052228289419356947018892454525960717326386931134296724917507352116484153921506977056253225997778827137403253586836974382883300121811259359670448575063862713720584536169567933253129430123631703855327938588900667936840224921762457583706144843028450815143252051289661200817884346783689416540900701171636732798921951807435902566421675525721131406953541949159397356418390065015029559118364092246906870306824534335939331708760723763207168263456768741543792991947909500171819074960908114378929421540409148094630293304088642090089501173450903892944157169555105848032667430103311615858335388021527252265749989948100842500306338454350888043835349152242184993082738258745662876694350652917041815285290068683725408865721583255925898723299594412508496184422318291464556874126707741840415173185925374891397024078192541093567836359038977723639007006040060758125999306198779137880466556735548722344116760135494087441531655458104764540816963707793682050523769590406410132303705441984156328865754790867156225270360529139062970246876500810421941534114902173985954740850259537704975860361688930939047552544523656966807353758346078522278526653162138367737140605588867089857311110834815682215399547084710196301716382135564611836466305929614446921919182235940343758491627221853996596800377721197403643169620528865104853310741628926075282848140311916673488517575907502884252652787556997487259111641224103217562262664495810778717704666992644627461910863803372790882346688137341965551983604752267590609827190907060851003430450387017903429971384383213251526298289860742954738033957973243992566992410128848026457071717758736613569881895521140411353129330055412590227599025956316366122917885072757284943752661249309741384661663444980520887976338766884300252876551037188456005597668044690879244381859298891813783455462602723601781476147875704301306113215184654898302475692385728035588627786271086392712529546805196660548871963428049282733581754144178482004064552186660304891070040780392627183041975612320125982785051994403434511193366436523379429204359276193849187251131538300871411847027643487232491818523691116786731529412637050266438878085262476872864755208487775372323103609173067796935889043548782453290175748099824216763382153899237057520389830916420004447059624400220240764854457707623791049645397323001585856406948826428747640947359269110442279256945364115435889647726879554318765029435612207694020351419132728963676420538560481311515030520812939271042942760474678968939720533885406658480281071721165658876295774225505720642180779015652291020811457074804907537669739568686656787685873697160408689556809757667102450303861310154008572784949108550866369025865864267200205763574229654880837966430172969522372885265648440887639476547875924794658864407549618424411422507476870075258217902686480122466621615992370588357732409733783919022193651779986858267065675001457790718563874470143161345358328222376513076341111452920599177753646680216992901138088157065873321941470867961945730816296395210985542185622478085904800671744832998954151663976894291817114420688022893776750625514455439277808059594972678981022129632970416425968002230384888747991729182390811458412028470144660148475603862515306813422831484907598084435981487294286052091794014449579775621281518158463388005835253576979196430198097467388716666825940999976799411701304309867072862328471108744804169552534696604467439473696691667051823134657666420668824533426601601111043836242029048817179790909714436333672349141928124756306376679140911029336940039874248827587564851168534533255377807036035696258761390745399539173935388654492274508519725928607678669585479630810625986735350046439043134908731904141017370553049326372621581485666017078107569066662017273646851224066673385642551808596932088801729654567721780060476653564507303919999365074839610827962858304834406693632902533315707085353815176227197257026459663862804197372763450991057329521204336585804384538064127714021802040326136916545444790621981679247504332155537145932120804782056921285757898044287439579468918802594872539462437307104495468509079785383880056301744930832631957510822737479278334764265667658457855562088127220155196559717178577909742994447273720470651411544488285252366523783618390311331021368186666332683901902250989301624686721518131002714208880761855453434672306261835350902696180117170092132104581572539760819750106855835019920188681323431223253499269171858059035373803413237599363219489126931286792196274315138014784933807254874569197818831699726958894165761899696714933777292394368006560222490941861149679689489368719042095476550282855379307250814967202200291982000716490264948332294623467921387045514189099548209470707459769005248299791772683304854606704864215557868949874062304916787225398362759384338545468612177883276278390407737607776906550255300671009669143814298110330779959984080946158053764392273281770878046115723647136468076028478470868665059531907440727486189524618402535631382115055593438364730719769748328625329492021425741377618213545269873570555802618439626477273833414241048423316250368185521488488387585551981388077836404382590013517212008767720369284256884363577772863407178897093330454688918568002905377210112082631393915126606103704707797999147663998768046876957656595698547358197183333141970839476778284709338418701676415649878568586644626941269440827416380920565493068868133972058081394718880256704654729869857510088234338017336552790935997311564887910605912561528649989092082262998201282700911803997582828599169193401468561781929462647200498565740870169523079640961993185070034638616142282664856298609344510861217847386516865848094534749153444301751958307450482457373254446342957528584607129947689533172830963355689704724320708797992256132553468844230406022735770319272446373341523695551715555213039907268104006796292283564471989842785711157918800809547995940697868102851109199629907024038890018279444465007384559756934361554793965478286384951768590467421177218818670172322503436430184763619093171470409385608997626732334333907872923053325510881053972287877892928179263878832741994171321698843365356043803210558796649109606400378738153226829938075981293207923057280079320738385813013227611919692965350769537296950676647101975075489017400095035768232384797626688470044747625038374439999006451875300255232298698661177410250781034873072756057369810096407984207478133523969773332833268750150413651422555027468583839952628584067016751919002163918170327544540677646359072642226320106729216143840604408313493508480630728180686292356757906904312687535356405551661380909691026375266125214392555646250354626375684326828779784665237503563470237603741926627954838829756153399316225684695349086525851522401297630047585729404352214012941385184585658337707784657260512648327302120020080566192913406036895034069950880526187132711980480336577628596819060281709694486097350597594628901609317823430460459180459485629090863419488849625636499526096676799385014946721937588871077605047974093054983332726649505874859175464754229603728650449557543055926842684100071007854999751208819676415677415572006752030769273660728368090530614353404113599052452865532750135159883397513277882565987935363908240227501086487444752760696671922613922905238342172534609073655769359505729797523094352870713385727224018799982659333633120410365137197627120099558115705085025083048102615372861639992534372181978059343622184463131731121997159629318192808702819510638856316314972512183800423485119245112998824246204942418580845709846046273811748131860178477357507682397086569591343273853178220078874282051634080099895965173017490964522614351101948376351359424473345275537988486935621200201159589087677333935076312989085674594654775955291183073556898971192823132295295793950373176782674955660961065732454137361453771391470818924266598708277626006244035714434036087000992180193091168367752525125969464127067621099399304431476455114021970564792115046803059164466589095317478336867153197306145736534385902997914086869057970465854669137198654721249177621232317516941417477700764132835567582915797429592041419464295891486468999550952970299133116584840940734359395082368712101035923983073613395983286773670175247356390427396652031087351044546376299638091358920407268211507059001907264925613472129950443385300682185110892398597646623907624031509194572535266709808361994792472202454703895525479252856390019763602726864084180743943450426064695840326907937965306861526443868332463055912950455170177894703666513468289382206221791833679457482696069967967496582029650955854672405719386360871510622537962325405060998177590225677181270128081820899215006549124418071737819390282773046315334377415025093632658982022887914322771534638070438576611177804010196734458300929693904494148429526239788045092643522024158654431535473320768561213453747345568634024904127035827174087330578742029456478115600371527593395033430254200413173514444487025619163383662195683432194914812238110856242435649001575714765159195526832536827395119776116103542032189967866500449845377572528874416012736173203153910755366447031548705714902438228029409926352078329095278191061937459421221938771450665659693616172007704936304968726584149832313384193571250505695928534593880305831635415660558717186440890341856596187859040133363707428105876819228765758108779937982909685833861583794167858445349976512091749373661313247404888439048701523236254665345637873931338317812080076416447256161488092588860816993485911756347622273770224379268781223733252499522287448345385519930407836886551228629452707780305781250773027602924048519743572045382953119339795063643863406130428762091530580457422286506626916283523403508456443634237407367189868033665913380641602063512456229014057625047156899017917233085827090035950515573003159871271225806816720348306136174049391446193567784877126729259302086108972671464721615160576275389033895104174489760383797230981949840996348036291686312935651457262313677338373286547196010344576868147285370488702860538333477301053547526647647327467340773097879865959435697518782033372407761058577449013526959595418163244283201428770279371034236717508569135969397236123133207577463699467281263076915424635154090559501354609301506402475433237561080506200026336478665497587590290652151481926258328852526316931572832027128690433920963164651014939327170063051527853551559684942402058652185930836559627151676348816022715245415138194462246988802424831656106446873086761257706072023353088868249000051128839330378759217544868084435663571413915620464928415891682248410954308929788498697516558826605362812718845534130810830277990530703652954861753612367500316265877945226757673733381180580821617645920286935305086894561986953972759325698245031987853215002537952032609111952976103633244400444464741805515837039731390009195017275717510176494825955333383308564918868498049198347318245805265309722838682993381339765112895412480620240386519818799334341842004633775924231400455597717448800970947548138189959368126933307432860928847353771897349352461819451441380512123486392719498724687585565113721455216881482833524545619804666008470019353235336113750913226350344639597952823600020415088013192040773937233769828316121964218021379718973406354920068538223433216578982069540342582133644589661593875960989132947588046449168411459169006143512341099159257099319137904931265204852922593462185024934675021468595671019968161948719212862816808992568901498282320291235584435914260784208868028154908825687584361325804358168350393577067462445710160158628232266313922353925359352354802838274977283523536459737874673302932795966222510951713977140713750272063147851894209964105955681505358312995459823744286016725755311902387339340452997275596139518804935007650483755712149103667547677390519334159653544773313361687940482823208867067503493010312685819101322003415586787310140933107771268408758118566260700377694266438341402160166593750300754732010740500319238296470329813652020068980985786801421542243168669865105693444841077470625612786561479952849477221030490298358426611055028835239911514168077956886028929092704411070183886701228367663206546745019529038876949016279461322274267710184493589628990609222789382539731136334116315987806045852276570723313847893343773838012183322785756082878331326499452361513637112105231966659806434163793300617703282501882445459404032883705117134244455695955954850190675710434088416975870509216717651008772110423399869669042320587756790986609067173760390711495665162599985853040843560817549868487560771415495305952763169707525146673528506211808586024458389738771997886154225241420834761290836472594702551077627466563515730729254590898342340397545800599676924286738459026903317068481164120179790242785035025097182833183522027520225472374650388115448483645597979019128828139729119986374813173710208865642324847986957113244827141083969057399018521435687199768199128565299205242912824643041715075528935923191284244663455846655174986521793334568878847543890912976134666782919505176507082845796460439907448644869431618933650483092938013938890935062822716639418773259620259030396937563156748389487961645919617605258585016936504566425072657217361358017779659006948737483036583349097315633332949445284400440944026058079170857834603816544549429504386844368126266425193641763688983387107123643401421104564619448097951360630884184342813857822735029794449757856316626870695345122305529063252257883731672193938035300973051014165841658989645106255839898833595324970896174972393318586985886938815234010616891448890149733879687370292164988863789305596162144767770032073812491036212693373800796783009688382085185454849054254307760771217582066227953713205836169470177459716812938421315200482842136164831850827374504619780188864113059092878332018877499404068868514143229205314815382329241248972537035858554701249394091521988741317695340973514923259299234779091822282253271497082461579261170777748526047643898413010788967436857259456198050148541627118282196863667129556711429859912784465155075156528837622341343156763533050392496622830626764044686357668433611169294459435462257559504999842871707639800702432352912600505931529768732207034694426110258015002480131819928963639582867474146944329683744032218709728161088773822446831910834799111851481899532594108368016783073213538576320816731896472685032892671085404558819187743642756576747744093064182153210989698166066947350303547743858434999462674184120159740842026463953486749018150375808965798878094512245440872851598571929570053805111318770988123502005446205727852547102503284700050987106741668685454683762215323743350663264784590657784439505165755373705940055940181086711365150229274272813364110177752143329941419797867772829249742240603790968442829251109808245721441663979611832975271180801386104494369356285975491162140524280064379106712794381592585169447832193233054168302557245044580974937836459173170215022635268385449321587980354851070952202821989839146682140633844500846113602143215113631612501129257000927927610848984814828924635614711047083677377022826936370516884186391822456067506217278333940830515108243083561628312154193596020378712656033742715565291186830572868449041356840257838898832643244715411866861279504056140340986285667495148926243226486001421392501711349877161207790669880761912697756213470804051918017197678961169363735541987383390522556253904303556299362644288880084342978421307270812676795663872272970781977884504683300678969058751345677895013626580884429080695910656923716337138989924635661592341269734230313756747515483577032026802238953935095154347912425885414533034097597725040084116486715227588603340947257799280045147261119965892458053621946575079257436565344649919530232018412639639193366180281704460732625648277461141226583599040457101154377059220232668872307679763001392997807859038991692009191826045648184628081317617532653560648591083646194117481178512986100932648366901452836395056470562044921780127055449728057806903168840916548381547943593213177503802294813602882000683058831750355572886242161642314802716153393871933858178492746410743060645993308623804002016235729326469855628089219554860476638524281154580346107678086831718822596101710895611554485994795767094640964134011264856807182688530929284994483853782824382417697746208396213170961890611836181123226382377942942027907464833519255749533829535855363373123802391009538686824358978386266224255052375533374837863510424969024877613976442202352596224080378177686198075115206501273747173339461717868736531351033961590310994061537547593164530186473009416787238151345506055319372415695364189562504366732224803560924375392923204362996886661239027289166994423813152142006512679925948482585539660233656528479292245376424290038171766439632153249061343360336286892966300815277093304378571915584946911845968506981857901097241611999566572036377427690785012746662380302614722725030469487377614923060466156897608343866215285568892307888043268913519682456200930752174424443469854683499440015450121343065159623172787101110475264241620576671419381068770319905964764636955777175428653923615399911917763537496567891747553976993071675500505501196946391798827968446073678102087278189609080926006458897262854156553041929909282849491605314369395725285399080178672405716120981005763828064594880322923967844120683167783181758985003424214733518356326092681027748652468712124837782733324914042536362474828660303331501369035161073294254100256441161601395118164916821744408980033264677861991686151311774597161322486974891074690266779372633554891207652658848691665360420898183932428884061435024927241759050578211907576425131371754363331373383977683108735737568543120633246854582107280505254840113427818331895333535354323101148553048618131326040943686678513219919382418085143244190355864251546007090491162918643422845287580238814789784748371992320179617331441525711860154454623401056237738270381800610565820685176836000979027758060826592811750865193331652434693376997887782973218580902814721943921832132413896533680320078799502937541532921647186649622152563777784997493096591892399272454921194142598575357760908475379991198698407405354211890942856840456894224944531062650443345423053572979716081522434243134332899483484056194723809684915702174925240795697947408571636192413402380898900055049465669646844771888267891153646242734523110524334693234675222098253633704516332701941327336891643277081999329547531853318576138087444097668154356880913380815205360895397038466465548897462588546510947425519141396943298984309437363611671162829502712396297654739098851396647991710084058865360144184175625652107962880275570760237837860448126672659610359079989469919767453655989758874414284071215440462171169487200589829304841541466641469836487472356981781330864445751325491914440561029847925775012509648066297008129067198701367963872576667600722458978050013953544487587595452011763409167085163000559050111613283446252536235404278215172069158787710531713269363211633844214037093869974884202458087488680981897313700668199293166739437958653737297897488345986009226833151494099608094791252766032054708885741496299122281343033465582935277115513248693037126035004642415571214297934824424238025454370971263893623998286402051408601234954375633361901795335685512602236242948458094158863145893932532143563477462417235848481108714494136988170448329814148124372155818670943333893475527801974353523840337169973787630035533397386658293220740309392669760978246933052323844455977161434621501014669028300955915825324857512176133639551203540329325721791697607763009692595836062652915184724050419826418423993936115566755980308088517445855197102327279912690270295848119078696442166790273757263159834675730250919729333344791946720573781388207052111769790911414346080819136627787299968014135204462187383962229265855746819656665627781501398184081162708150489706925457129412814273892736355529637076144350717281857089630329890111178888040043410744576830157678415135148782691873070027694145734275018258170491996581881024971447705638270090283373323747209659743636614336865819779139298241036672587662968740189556013934434648491509084061854893462266129290617413403659963962515061776709809412100165738440627269125765717400012471018395640650863339903755889939301302580809825907431126574056707059019702096361484341086654920863170788803126894234998355512573725435978831419294883920073103998886733858117246334526257260785179507154615711236675088595943745242764838728848247909646187862464570417450429103039710857476360031523683721831684910008265482626023703643621956865524232614055419607192882553993167655511665182131466832214448688227102298261683303137747999511814123110682633992683618379275162027247131916666801052087161244983316684558569699894453205662538380957137231491422966202231342200944762605913734054660273305144335882872396253912635748453845865051889827669935660190458067141405125812145851078486407471951535358781856462596764703009789649527671047478476738313973261349199622055905613025093987972584040901489599314692979551865448915588673973449506841380482488481615060936330975987012113504467505312330071758395101886889119398077303005805883324637228236718395576052939451780148876007950709815639590998092959478685576286386610216848707547159771949263271681236206570533178746953649980664905911126254537345095589576506365282801923320914634608186427488356204871889671839918828929366564741007781509003988626266082976188027251262860135501355740503345750544568059857158761253686131184524688965772195318744633645633407993830475795127048981497425626529333444650714477772752752277510627712089843199886418452405068196964765641463998822894021551407665632451173399195085444453435235717580047704728866629352040714166204967518570503774481626669615758569082655237958984278408762026371414567819997662755558236443511003949813041110414507973387358478101865164271484356055620511765286633498017807653498537458821281124356492489404959556108960380445600644876251548805011344560747318106002949445050645144647900959454637200121068877742342723952845565970608015029086886058333925556820130189988815428414842111473047646897043400634705659321304313808195190589724505953620530700578019940055437701299323479270508224368256934884398969228016818879584737870709249758363877448232786035214671856992074568337488084523037059510126277569927950399845973742555963339541990045196474658940419986775998279428583576955462452753124890077038816918097252332486084776871620400911952488494371831888587100687187014852847072864302432514417831584820473047568783354639708101342815986590924075114364582616472210867241652485268553148433520171480578122655629474371991198929702771012584554887824590778399120819575587412402833888119389087808004646303098907803754718899008799441486833018439691136475075494269094471404975135919516191164044209745209283217341909245842419293389762186412538933160631011665237939386709226516850014302320581094996543648987736878285386438085144161741373829181765534358459796750015135244113776187860115693681712236664667705179186967663108878014333519820752630751570162948342167797788486254897255930387134557470298369253493066821311797647489545439526002056921485354133522221689674365702599333912689768374461525816316283319817272686326115961199702014761806208849116337563562230053000255224375375835470069957536750164903637401488392219633846525609096935157825623664997991037445686762339725002884004706528222211300286807359848912620665089852648071781959179803683783041489987145244274499285688323607448718740969563819997286513781842543263416447563759248671724019912792071034296151332554908982001427156983398520343538094595797366550060372638346251020711201956296856680223777758303849432576531476694879834042330009397210675404276031225706956695395706725891966349626274399663053974331610246341637663449596942833805321861111016699059849760087789547662583965316280353099316514622667162376977817849152486104478955510727863987354927220661333409848338168487794055557788032828829504315971764082699856513775232212003412509080960827604237822553898895852129450410315253876686142472227686575893693823011229526053266865674681446477889709920011005113186498323511148237646012455794015268987800492425748191647410199349045365692183635192481017848100323206301286518384017808633851640556453730475367390625396444479049781460604254694213214641188937115157046010187774269004040958074061225045060714744441728126619697788428111702306688812487115897731116105322477007476135115257825264677038850340185323132496900489062641394288731954166768367611571773445767479233167243358898290565178783031279681360141125627105155141880562902015194024968740295521881126909334917940641695190620899995998911211941853246159747158861940415820865610331192997050071310917382646738610582575789023808722803318904067718578403241532337795869986159315817942862865705469000172928591070210575049217229203093155037862917091369380240350205121552070616620173550558619980858187493841909573622642699778879129090805955039603599684599894478970094970320921886361719981513560144284683322893643120131256691743619465501444654473037035403886578998280611222199399427477759035365587910625794074950268686440706664545438799354766453715175046727391448061895615221656548725106518684523458749803530174312705025565793404918620471174210744312838783764990278909985444956550116759216044134421574511624632850536738666258906242081515260911200589933338018722869400071057144353183873718115871266418828012010665147304131305396998144031879835736716795462111611878754779904661820842906117098540358316207834882630528837374353579164820736268898567037092210621049387479866676457716176596790817209442054068060371149074671764204058659564092798957648359353859233119717703313265387653033073387285384617657692854396414545737505685566888518499102131590225011734713293952569836343470859312925789056270096699052316739734691835351742296116519484090817801142707129265393270565464769694729261456258926411390870974654030386964641451796050590778751277782986399109442440584930098447177639252053545985594115242234286717898945908305962616418997940130378925846342698547533037158937320130085175542991266406931510168124441675240292638911719362136118780893952580774223683275464542575086310461596106294617929736682155248613974196685836199930406510220176040438256856750315455465740568304205144056892214280245717831247014971402418917201726766922650582273404841207529768892727956050582654815908111131943808795223606320068900077508393473335358653389804310304441590310038758182476075311080458440358226414532147890608603459809707054714217323262096216766199635811895759281082229150632080089199249844554562318084079055860786505157570079801326835794851181569754026955660004442596308071937319181325550182173039036312216368853537129763235409433847816583129195735988687544776123932438632584193150713832049846341226765834894800361952588113074559296894583792126281298461077890284533717924065517593033536927511929397674918558707585604362328977197486918755637209187574067725316587296180865740552140323328133560622424512662633279459662329789469890659805865825193075990303476183757136193807126616308324224711038553675017587986290038649339591739784101796211635644070359001645436804363181391867809197458237801345185679640111264415121944296067700629498357430723509767566626096336073019406738887904444498973667976878895400775658128244344483847603429579002263632920243799122289913298278765333115082704363596160101974364759971773203569667315830531083969199868121046378525325061765453222723777826917141073739600447750079555709673666123683408910273503368075734130389546539781842029224317962849786841446488537720046113327233557609477923547941058738089028757889106828034948597845717484694885294316393028463716074230407739973633740805161813999736597180071281216892845522063468000303286661372818088752433133233236761787419135242777524745688279026996490252102629698063389396585159496100832902212880115328695528790963026168645107826406456990674835368124588413952674005983128633017396851072251174506865384813638262391152763297781143853483105616689227171496776406309009513321501023750843457006661079172425023260518407895701173553555564213103320756216528820988775353983661921007540402704684507016276386825186674158713509690340757692115668695684160903523113692640013587394142019221097580526339638859186282617156236928136478551283120132761638158945332546137476437895674351281812921314004806214699003581757587645353622288109223414300507797666796668738035814609080118460281329930750563084555961039495563789522770369663340765482900464955041005483190292527659026861942326966232527767170886131734464222260462754696806703715432907448849220505893244912312630373011908860734274470688303239991307125901452822336720720204003206109460415086977918384170767049087471175756644477367535927011631462195170074232366769632106552667404636239570185451917868172817296771202075130700993916488680710226222962706128936680744304350449186508122657665187466997448869257719371641320519604405119467612936421001433387864764152394819199626608246159324350104061441755041287354915599875036965437917167386179268580519409923750064630610980836238974384547365522409137997360139223168354788146915161476301954046079028486366511515743051885025149319837905463666771432022892147017529180375894844011307412705536712273355205244303853912962236627809440743136696205886950932101031585193982909672520411315027806779136687064509170985605008361862299257544148905779104377321020954155772207926352424670214137126819137381372363733777088162133817157298594181676673471701784853540128973817215794459522920848440693717049258930364995159381952585121341236415809649283977496487475419963778841950306718075209511771441913625287309043620505368378260883089714541966721306752485155669559042126403529921829824375920733942217426105111318854990411964554742305533980767281335213619144389734739018072311841761469993372737758078368782872317435082230646661430116127936253348991883069812229100338427644007838566948936630718269184237762414530305124102675679845453075147816112604422334463012253723396217781256431132014928697492155478352024808981466803780481675914921797262123091843804600327020151749308354096684000378753364628988490745498383944309969047593033809230045121574834339720251667315080525801811748918157599244081085669713962919070895322702395856097247815252263553163698934221918034617451751053652203726056021918540555374455184060030114013621429840863967375732748075621425470897167355646232395492893187798814389114789048935144141031866411641507518919710668162147472749809736669960778621492004931451810136582309039643859496770523219520386874092176581517149921288391901421542987946541584481318769307441340239713701696164176342162699567033331555841434507221190478318665010886228395439407410707052192544656852790481643736787313705644716357511048286816871268325936702983151964619281819501560909483431041376899475764341175658944238912728166482263007075501362606939776679095379133276300287278056124016725776857144059239737531340709615078698525826834338264194475568720150038234943081241595184656076022165769134525924726462686978003787797907680019609014735778855398451095980183292763691484435172129552244427708925618086731611427824819366195823446226809506483285908891803554043527594668034065399048494044772139442221065911486662799922418499699688171850807014522063065984581367022409200561403669981426273815028060084099845500946280046759778165842111546327044666403467289253724884705121819844820939748864243494055700314622696435646514168398634516600688709531058659373253944205813054726894723615379072342630641845696242975883466764465961867246384477342380045439301009829744916015115766717770016186121070416682927744018666376089293926429693672316015471898485851856389470579696693796158463642079268074033404032581889158363117183460007215688446566702875247838875592643459819219076986283415903772411812250507561357915228725095722939189269591233212598377567677114163044242667607162225724289867393052167318037499945927566037283872053125143520014502154855026822719516985069247745616683099550731798492272001362474427396135345742434704573020147648859266484876432924944941824537841886581426639678949964546878785267361608113293547845983142009798905246647956277540008321748210142734063537154421757176345480396494782792904471426518011754835303865152353139063598044398968839364159809443009206232984102693192251385454228137446149063553729060114873625786496915952667741721954953957290599415868013503695693426033861022650018486103501946701043043408997669920572280672112417738902561103196527696188553277458773891056860146510306109272188585482588796097379561372474888725928639610435965829037856849636525142150393746471497684861884220405633025819948966680264154683320330103466705683362931289048648804414851025898667921809873900782268169838265628786068522066738897431149307852431983907734609962948237352370850617449228555878615323658114271455656791998680025154127335941714529421211631296012657746873132449641284065949490934265878421908473472530564199452323887814644935416141207293792319605266725978464039455337243629703350843605851441037356381300365989244701277586270608517994906702309123432062900943055892904489541149439654623082152875983632493324027877354611104733006558017655764231529397202745856959547428890613033592360345323764185045057628902369336342103927094959949770904823188918172994584306635698183224404801466592931794674897403544389500653068392614892547917388538691983382159253600881805656804895486090495149294533886323618556219793536912036177466322296578289058183091733817625228228158877776306612531034718183549394441289183182443881132696937333728610495385200119508803985552897326957871215911926222338939321679911324607079815186042903408708451672766261043472496804407110122267542645480491960657337349591820591745583997658236312240766197440442649607273832443566110113149072317432569042071069833102744892414325015218764694265484360529052581602578570426408734910799454562664072174324531028024848704622120636811825969709009049316890047799415564987152741219825709491838828673675298906717989187439667608493274282593528916680665282852904762388656076593952245706297817734661253017517403019322499886301407611606997729911668569243775123860917249570659750187002077969565552107404666145301737137790191515999108459160253213078010722727065192973279275181299159213748931281938052421554750222791763009915395130819057372100566188093160398310871375951529385598794686633943973220906119538640959759348970325961142994971953136283793882638709588450820047677740381489643975763599547946289127038640840275896566137659793027837759068689801167174797856431447208189027724182293625321605345152995983580318436668331857362147937158672201903611958531138691978872298384593774889420088583318736940022715849053798867879122174884486427091602815349354397881734886539892525394945030006444532229945820544243145478786079755456027582359878706465045876135751824727801176974131658893153218782942720909453057852833993334021759974531091652295618483039407682231147564214179700496668682981840500228856954270931148689438767559984723984946447336793788497229149582068726521630790149174799336171467354268383303201741058916711944148603235420869076133342658777870774761263055796454259022126294130556401874511481647669375757267076058642874291092328571544404246381626347349596056017105669009923367522748902391980388134284770842249424326090291313833746518829484448378570204272991370177999135487444543204060220010975524443601718622035208834889741762996806312743767548065577976301762963252456073215008702335939428738778139296819287491416099376878223488831591005029280560195830532762999771816851944323973395408044149496934968331274103176262635198829170283091390135140006282949305169137798780874197142215708229769272866822933927830793188996764401913165818164575527130234429939359495182536214286144503189161361825310784247168401240134026574309516285612311168212309393348983689932500196113388128530260941397864043015363961554502191694018239667583464546967581755268442153781748937033051140589164230001877870810215839052395417125543416541186142793195749542825041941044805480610195322941775327820722727059987020999153875583886687299478145482641600478586884807494648021298686573374932983244871848321398326573520160321160818671357914540267427982621932074878677479302677301238851266594277109485306799696440272167068521413716949394417056978567979847737900174974111574984809406671136587434602136430456938381829410108573560235551493244298462434169403009585414426026169955839608191255477744748171533575584264837215610513562890203600938158526559962336557098554491041392190091754796312889049135471806255626873787827996658035847541118064669871551603780110692309490565396107254502905854566290840177707429461592564153684732590322476654764697444496673614522366432271146368343435536547789656523444033063547595503636591745749376830688277580663001315788965637128745775216156022410754645800922108989807137739145705246449699801137625419336740405260258196937787556564597710034379997634084415398306879483334045899192298659382787294174294179707948359180407878856856166516634762171336717638968718547329665885378412388543993081626446696575824948175319262278573266382063767766605879954137543090862592448608574560510480730760152014054840653447226403231347772754317068791828262180304900202673000964729666975664248617998907335330074174260783039941394786957474450368726560413148555163313323971636841485378220817949877066755825146656961880840503860098730090042182178733096855041560082206597960607240124522967838029143746335248922533468262107672410618523755642681884044108824991538378247742170339731491720312674492409595521230668268883814673538871370685335424916654632573891223132886068923912802209784143532771294801183360069975211271995043117928920166799377128502060006861458682398966503236106219557203958500058014846173658383331567363616422459424823694550150981749131197676699348035740981377111985013888051261616521178842977816970336379646209390196355552596519187373511586386313824504738076951609378160907239607684939231251319482240302502795235980401528539409804397144677023470365486127625816572856132939789066252776423935651298060288130452701433939920145971870157805489010246493703122208104807568211634901744963081253208327749906998573958967610806721060801379858326714727917166224055598520569483128924805481590414558066180756068180852660448698285372238708371720659987098653055728589900644533612845217689508313319540452023294943331150374614511130637230172241746595591519340526439287434576811884606136789900232066757485743570723805558790078760986466381453444317768188269154135743395378400237806073875668367004376731550070273754015143395448183828523541028794362737680659644828766358072466221284411688529216600829240285621926045280142430546571575220275495536679665234296902920842361152663031897381038051137470515332544108877141711883502064560243772968284192311365913025143629826256700213268686414737722748702236846719186778029775030126663760016508951340763485244541753947198246940384950411067485628007242787112586017013841001420170008517513844584637163008821482597509269043587422548941514074909018759845017663942181788835591664580543709930653259486935724134207072662592942156379898255704438557136489091545139820342804275580116394423854730898787660411346197327492999799085109389050629407405087507058422250632860496113972038669518203388935571702116079329768376000417423662075372700941281202576782206872815317290898984657104635241466810615510154173583885725132391431386971615511648219718132783143373122887903371778870303371987427531745467719119027023145527051388937507782153981971159557932733943777631497356131615964326858287240717881559537263716912641756868461028004580006291149916740100414221739031695140504041067447643147201712558975035376941163306010478050003899101865625274810135629016974186755817505192334449687052593122363406446365775067177958383776470823957590179237153938907295920728845264332035062539306185543387973377744923108854068335422394747099827182864505856901890775812715472124655528053851487837021140383724378612036909428714046454099080520954143494378900108852940127517815746180564075610934535240455923216411101609455660603580306121341238148253363319818453543788658560417797300539058709921250323289728565377300556593114206543760053056089417180240495911304501409878168341382460958523690982930044661152141314814436303330858868529240971238725932696938659894499791293477921930405309652405931242808796106356998767597298421477988282761621028026221958472145125399285966129559475584375550501237529094041141662681203889887639163849127556337680419120051791435239998621525467029883800523220328204884996980799344300249997494989759892654865199474042879450303675863664688418900795108513387887441852731830213856498302890635430900044174257696614260633284499478683596925980722095135540927163098903644660778457759889247767012598707114469287172369602011326390629357969125326842482934012353692568133896192670762506209704194878275871435915912951380972751361413516073713569591719629477017512902778511771939151702702493775690736094461217277408708222152408999102051274147267120997203395281250448009121307104250372263405304225878749981025642742472180091660758121181907323421192150231213644971840250320920624171454872853968090753124958134901787374865888214836514249234120277047313737992517919652711487125331594050532747395409980010366526515522185842944653369558018715248612900295622996523348426794360457189783237472675898881524726135094524754208505150756803031598425001198836961910505133626195730765580406362754121443944910546368784664722261753477684280472795923338402412983867829989508683796275330686906177115362199120951478495688871184573996971666177436957302112463052327054976209791616499655086252369419298095385726421704779764826806975760527766815798571625320276654953127732618629554616648446777506804529365896273845865279789415411796957208178714350863274162673348206592851902968949900114866324377351492881435795165525060168785495600323848742224056971073626302641702459587598736545405367119899100409407985382037631862187386082268525478690657461963651065661557794371862496911440449525903968914011557310792512937850463585127647059683368404662702301020983755588525286929280175228000094440019525471250314460486715098646608223616524095467309560277300501380776184596054628198627490232246408282293428233691435297852554135473034098799991802393187759811208539766390395944846425866750573009948559701394086048022651044837714203662286894753462371522704392230943445931921923423611302364333632692932007578997308827744736066932044188305373421598892006221819904739962860723501911025708675072068019172215952241391816308215091645428090642718056413396493235822950781704979324069363684764989380973458654257663586890962738957267139097640465347618485521931508728103004791043358435246255526381549329711550287775078905952732820738378879547309447902785335122327960219871231584808859807082351706869608696426333380810094791204398504667215057804207201106877936927541143832146218612328096857592515585249750201768464441250238169484231595046132872508489557737158806140342125841299589883838474971334740956654513113674499971011024891702563238738407818983687730218172814866040461765480670190533213257192177369207453311884004295056703109507463100734885292350373714821780865888806086879043275108734243967836191830332693029465431842534014703485973321931004986118111481114136561146399714747271716722724140557085547825224214138974757474220225517232757751195010969507846080049934491452190651763261729789763953909164523833640706695374994509378199328124777784636166557991290145959655253833814491345214442121135224741107129877726865946694294216368094544220617185775906715110804049195839756006198974015614228541463205545718617219968427926460034036734670180661798469785771870122270731003727509962302555390732887264164810555490213908465948144167717279257313108463614668645234776843982007563070141593285738524958362911252732912097831030324966850086687173758868137089279479692735130870302931298325771443633168359595804337601498773969824780053514026053345153048434633952966889309337574384982027454677267888317292570455610520612991588286296820020416390417243626699192383454532003766978851662946079780545701694495449076418177513141622325147322829725164672479880407094099868563698583253270543231828749547811320176162561783558204934748876882912786863775631868259889843509681792055276048853900752784566483337758483416283710534200993790951670906597015731197421073671618751536863824976858858093237634371600871740201814640123359839218344968644542709744664035346040800914091530846269241876637839628621277416029727810897899798872555625441198540931058965557522464480660861309457381887532690435382648714318481199466152264438635914685445027183607607023742573028009716920843773215196121715910633112373884202336997148711312691433764853268964964227276830312417021070464132733940821134922299714677494941399729663522506356763334739362176341980517377810121964955072243149272030726581326277619795254575065599804986024275103540088940250754762084292202152717883351345644150832655329068006504936515672531275770729347388392754760167257708049670431876558503057904283663084687900336740435907413166813040696424669028029839038559646939924543628750106579919503072083522853260957830673162511967203088799451074492617032840893647622840645469425341101846387302168387199439915094766569084672274461380321667520428112865162292240039613353877536388113812815479468103748435974998084319288142937210604299791655167086510049275662863928174628993857096689787543407605294160585097606135699825223720937752425755029197565720691921042432614460507793034610023847654137326166046020521919984272029800577482025289481890052223197637541194387884095470290968473324888540488985722100526954613018879635848280624777529457787052105182688858476328630289242922087559912517259209940401365114207743906318760541051079028889491459757536445410883103615331795729555662873329507368929919360717610370603809135048830079463359433024756311788220878334822126815027131614699459712651679585305489473474561309347097328861838596131282998840928021674067180346947090588316725230820677036132452692571545951253975090891829336790797168997316131756673103138439853704374199887201670335555762021593589908202281043586289732047254408565189562995806558530933265461273693397595373417444022222006946186023070284679726540588177195887656102630891313668525843066966606095991157674306897528531631335213070610065739324187928411828174305448285406473831001761449284477021943728602108672725007392384600763758877545201595797260223272705105038710183319341285297588867983513521046773951878569923491297093218257102698319719008673348661597709442890833978475427032612668411552940296655702783815558093173312170761913748726360203871034619748544457485965678977524418519979443155626935950633343061910663442772022389775172127629162886011102515910884743505967489045864320930721633866227035537214069207627603366355841040184358698538891424319579723652293105023461011950349924599179421819946679298238658618204556402084613084180111280966946762049511703162219556262180676394424416744205353684824740489274305575770171382595724198828528554228973192997071170367692807271104072731972032064353194432266844853264895289128094084753992452938901807480861684431406147534629152791197450975972684914892829078097284360859336271761158738526347141285076291400951671003765045396943855940026405004385059442487135756099702240940056778252301431329177605690403594012775891771601045110505009439441523360927439841327622690436120656001638348626967684997733577379312706388081959378524212031835998663006203893657972362801208581636057232707236441103923670132715585756113043846069184947558130339846381627783026001271933234368012169278647638077086767176668182641264374632310589950527803514006686801800095501107052955996789851905511193691267845117143763310583186723346108661444203524310818045234959455403832019411774449837092584991584787465592584557430876450608378717417534311934689143760318030912761261084825025777238689954660211007970924992737180587925930387709872874049563626353523224914184535014047434036791318217521456470657582015698699552667408451143315269433185117751611120577903401378933215464230351643292437075358557961291855740549033948463593420977926658237365761930660305583354567721905533054921269053093268055236072489796809868451209884604484174399403415282904949191919863817605640092946729720664262958853280644977266285906238152597622721559132940223531393084192228403905292360966309689130628862541168149097864640111443867995109714117226017832748503192305405099766146850679276794355528545650393513257756819658158632851271796433258926289800317403361063252524897286250122940250053250829287498106745296151871433781791890925393512188115112930826511929910281779382682065346542993111648636806485887762258746464516747434695113986781225861118026340578505877403934627988288102519280603690392711026580657526090810422730975766154161770087624730931734292833580332972913623941349341016041294389567652587458186676596481429984714679491614162759382405131538278904103646760752791864696115686450647129688946924725194764833252355672921921333063260660270811281254569865543165734847566815036978076510698357914585153526501860339356610056295685186337889146164252840756218701854137409109950961172738096040459688796592012356792565464021982186345293761377333736986039612709048275438900317153876177645140531753933908241387146530425661763595958380134215936183047327970273586979120108106214652832245995979708473250586064087589730703560582918224279962269644379152013509819369814438232395773963303865740031793318918528869149463900655435669047663226415934745780721349888164571442831168289642317587724380801444130522373520330853989533767732903240028017135502592465246744088486267188891967278423345729598594194531681724570604690003148190562237367781704909158164442335526363864669097687470423658990489169798009036138521445928207145306194652734872956778913054134802379363798225530736569052594400009713980209341933187932202881086101852450149521848815397022537788417317642839479588437558780021421034499345947802781701865534551548746031392257352471881094419224972894437841299049344711925304852307917888007315114265729599667827446381343830681681766685709718968146142569079054514667440143212539856117562475700438570453560206698738211799287509200484782045172005776431330825929839380420765549456915141107713620364052370248674929071901866870675053901005573709864392950298386043679848154651881850229041388440223835740798628859228128561603559224923865052225203398757763555401948366820545820536142446641161620207640078480005723047148185201315589404030947037766318269742806646358771276132987273987649285346373187639757078379494936939845580178081988873260528667244848895281270638665586363181581849809518260620678461001893572583192219417357450341366768935567012622976842654973286381640242587879666082901070601893128367934077462279419800841234371987194373282073974519815833786693919373867235350421395722670778331865919899676797311599358979006191700929392726172162185539828742731327443753174777695541061178069994257743079465393533863253105440681487540971409602341970621088037162889582240217871914420096632852666258724629896176955422239619541993267929192552667074945930914390569280368994894459050471102224807205178295581719051904107908182582740579352090204396355019113235433761440271639591081981236062401982193402268250648640026674271705822455596640316737148775956676744257583984504941643997906209474613315562386315567548870386724713777739966130724216384136765776393048330252649470256064446630621839148748242626439900631711962853901765312103034258238504623286907336893560256935731034640680791416707556709369124210996414318078607694434461116917965441019342817752109614884444019151794914617322544422160585195818569558432157859337526372061942855082694589622202968410971943902248646279370237729882122939451440198232737192762514380255349469020937075354989783693161455919592582023721428251429638411598965828564561345360471662107707254156455217478947410807985700702923137272578844787172220437685674191174729240904088928882767147422477506073064994982773324911670639193545757593646646714605284338862196036776232436288815329636198264582216257151093898042031943591386493700323577724344572706633391040463053018210983879732305479524565966861709669781555922926282611878939206495132423189736977847966275627279771071331195241805812290584714731694390234815749537172800691014148316901195104821493213756612928622651070491698524484271746598076628257918491221688597838123683038606242954395641331425765792636045946039641222554671884338390602449060631067365628540492855156729041602713138266344004323718976401794933845780707384702576373613285900684932210856736242098217271505672502181473826002498286729993110248508968392421817722404773603589240059794805619942495603714620426201970756475960183738261037869379834716937585543628209835888207396174690628183967854629271293953109402147565886858379471195753582669813457334706515347898250835527709149222197943264742729002184817782104496544129593018305219745838416591058755959127279575099536048864568438357651890792546384695881519881218117416235704706832038893538848679344901176687699392393578174919563821056856935881220837204687546899467683293542344826478536573253299297390143237304416253230991754600523131260654764273330336384165688083684273568450385443727545461905501765105196872772080714199366886212743156716634489130925118296371070489380356854432917827012595293498532277758160155221414648531499169307915183844106233991340970890609899304646988208658677417302126838056112430992017658376575877897756526563928700574677917255738971351948692357368725619852438974137665988510983697341635969066016233712698424850016554994962845803086854844664780174777651533786297095853651314151159259328791663330717018054221421260010347150540582569239259962533684444027618800487122006109951216192013465257291813579219247000531815221319707668557314862388746825739396709034315806289747123205956991458382714570041171758158920370240001292457156951429978979089153623851224626037810565779812901734213232773887829756648611608438444336112612411203737431632199180571011734916617989548864753196928394888820269581986943468133958241635251301489039046393799090527633949187572178438340221160738564633201573427895351874219867291168065683865772313963779745895440005018277230680646452548282621591661764236842012860576163798594630880088735555898859993494937716084660326457618064572357651259795145456053081659797897480886439760670106124484490334151874999422106198082521798489008948999550203331911860512845241616839650146078074631566195128066459093437319532044940519351613623193039282678742466510544169768150346591226019092319294361234787984852020472541451926189649294191500445934312982552921615188813443152170203006905352711810742263642014584085099993742393126030140359272520273054118511052336734176568667682640783550924519763756055945448529684560542949958643157004811699700884219228004844108444767915640368746990531762356364369726485875038262750695203090753289596286576839923989072181332717564130524142723709124166700868205446678596317295930439617489494551831020359726145994154434870342730026576045794104983603855958534576203264508867964255345048476136331832074707710222963677992492552662258418037636122998620588555899362544971270645109011909312634053443970381410709012954016906103414445082236233902058564948828009566983142433834034225448111058959600390563453235125234348736104080076927573236574394728458040587349109011478666048702065479134678476867783475217498882785209514309788455811490430252547391979560812034887649299298572857313120603787848976003167796660488426949493826051719225664209700463224520788785411648737736836933597832017619110292105949235934922638555030105994883590883913059525679034010249102405340623150483811723972897989640922666913166484315185788478650847686982164043546083593255510976132478320162147818241879191839215349101278985658264050063805270722430306724546179403246327431084475999232942326511138611304624709747015373209187173503027943851810324140869781989325020266482980339124395112256888080310703539235531126882488026983109561836743459762693300217599396883006091736351356704349552222920820617939641925186055518513658036685806704527382730378939889828239686201358821296509999210174085436768395840063058001518026503273179468751709045875348036753328989526604003963950759095668824768673461180973723543077447577797156463868205491919248523820478874124110503246409996806466347018761623445362070336078010206738743380039167559824398211455693915762560691274064514847158330096166278595537120239244017592621774529228366780069097748999043263506542382858172796964079422044628085910887148701356535698334390250267267701385833969029634761750478577078546114036925582477860014390599300252684283849292836489569771820972890965797943834469813042824041694489934929675744029220799065228706342142459912347603928577272217277803535083266403597782002004221565640761412694940218410065519598577728552203158609590394061744525734203260583974170643379964948516719486932303721905525356676526820909865167311834367470531577731905634517662239684296332505400597824658739430522568017889422468004237989762322305195665462404528117190065818162178387023357702008814390565789890631128966253767855847391501102512164739238322379785101177922066577714500990454124567153648604912678117140476478520630176203196229671109470358600364421092345792173303444680827443339810710314177006184173807554664639300173846029971407193302742350177599109050631641927986264974509807910799798867406727560215243151717937152572973860001547013041726885470078700973633822316994727679688011425973639915618959038862840478636128492177028208997995401093699448248744354757590059329581130684591180215616391375623584089553867128847674118045135603074919082520465204244306575902045747709329017922139284499473667664650326451020898073937858930043357182109194482324741727744511460395111822666557985092601256808475523387571808674669395029520106620572530489157738658692071842987857313933965876875115028527013500166390914634291473600703502728576069469331080131036435476856287899350026224917130386824246680652552685192905583098821191174673521817741887865480944824142544855758454817313007998533900232293689017272000405542666846291303123998673244107453025861720158405502858763530539223741902892617787726339416672287797505730518926175397558045686343609909287042473463536345080568242776656217534397202013904935964207993917041210460888383295456783979963083582828647739460908108275453139523246762027013309744984029380711841659202155081951304690708342171256526135903995767083929006775141806779056914357688517570364178852230002751908645975117525173323637133740927613148477388197779117561063383524325756431473319023025533660853673120275718546452376313934358425466989156187159484443804493514293631589781646693709466552497655416251494827312994990128763252682523565711291851575516103666360466984841987644581652074283750510976080317948623478793662586405126671089431458985287822612311565696194774122416036352577562226659190314023550279836233765878041075218315467919795217429309782567565938163277624102790369003024685421941857180521678775425184300225760059349605193221839062121658960264670258981180861990073971128098209876146894489230226777145656658484671498141128966843412099917238365296728011206160729803500464574966898581774272963258800750548815019169060509426948055521095495175565273865404300743022440167785762765413690737215374253375863104527648784076190880347694816095607786391441247242864344500595266207810582940381090966467631301987941270737070771899366273264712907275101395734611787623623449484362224127082728464654712048659863068135802947186837236895308600924397419481727097218646826006532145912013013988938361855151702975763936591598163879004207869242611182623485642497490674426891524732327935384128959422202934286934090302445964047883983818551033166996171083162165017675924298350037675788919639960240911087964245631023635479913821831689389849217158534403142994544273425238441270202136277436903890621793169375435968285220299287722305653519551074659808107790924401089090755002989992000833316078613365653350418048498575431561875971252895362022084477288102855468538779781275609294027129914783294871233044998005424900367112371978838697491272411651849268093271993018147684045315160420620467734385195989584776309858153103180396851416816517610368048300131682640632547309770199014718497341279868370104874928969611439124589068981144131066529306104859382441679151038930024886600670662883367064681625178461894488005552954317336049903017004780398492039089520779685760400185809872509357227273143983865683035865691974584832229248369332892786449587174338545476025955009815791060491882478756852812752942183675001111452472727929572773632399820111552271852522280445602830132567735513084187493623274779789194357497340792268753790901053865425318884740058209879216909384242705038784504177956093291636589414246691344359146531310167336463842368955293435626030137791953470429225538161513004947378908612456974625073316221539192864377679919801054345195777616811006037697067723310295377222038834594531868096158183240788135473451572855844639156298227974774097750390099009197359670172550317517116847213284594382379887602807904752059809869475351327995585052592484206677653148975728499656960255890687719778194901786026610338574082970834902853053036948420303376646451672895047408109466553878381356370001829483931656205512274291010785149611202695506490103484631878614375478053432982691631232641667480714522866698031696072261428517065506949587592411155366647127081008086204352406179436730746198336381330958780091070642896158486334787528657183229417072517057458633175772615689340885452861622364030535172697003513022844958732910896430718009820322301543799880059143569413345731111633220522868867204641677925198550992679758277381121090973852474505792426965300218216040232734758983884855542342336483771589022060650515273049690445808029684192218977381501994812795826030488925331187993041355052891972422351364925892284432424941065267503634528742195830093357941686203858814145016768972713008340270917154063612619410181804701902800979617798554004294040338949169454950516484977338941596047243901346849832445651911009979893417011900243797464283945008472384960124962564882528181787973621457691451511490915146965594214858670142215898839880964520863298305636463344032890792182744432960549505454928848357654217314964581904020857091190357238568049021892151987370940282840718200177981209438511200716914524456408226711242142518985519952047542438069375355622543059055037380484059748770629140097934131381168528511478938784844448670235177611031234406996404497695390672755745041235442918160115409150954185582960622326638506055619404573840642116810835822053337431004012256324348896526537760477137413293579367162837635621369480419155571064801293145893508997216719921917094951860083503850097179683246963180405350512420432089699062036026522666121747138784560199793410920472824904194954207120340018088446529231059601597247997224340974269699822204507413274335250076999932732620375024914597447600280142019941128342269085942615124591278488931641032528198525396656405443186935136330992379701147409633835959551387203150748673613688736382893384271789276508352293842158756254138745938266862824304771807946020335999508299234135569263307073755896947296086197888865197085809871877150805628621377026578524230165776246661174409907103333039168799842368688441991070761695463004641754509719905458812963254069549625317603609170488708344446736371781679532067874971187694104209465351763060972823558398813878864610265481954488046772940974601946806760056478306157609882800281988183610817160993466562937570439867643824731087639156474075539766694593067791231189740613485672392506494093085648645323124636706599852744757575856785431417638419797782041471238338310991839664788283789874782970099708565812350755907727660515334644653636995264629095147679418796779896369892272577068545386414935077586827031687555615998129423622268056031105724709996219014264595660348094167171527151914732460480593959581472769678450540802702418351508320363738357774794619104659898668026834323139339264549690687423812412849688848320879621316791026325482472906629876003648721005427154031017057821847084974401264064938431641927711196302820151939889204894202740667360257402817988624707325829312431128093679159931094105296317368115272269057165829334957468476833469748968148743831418986225364035676437332182685276555286254006546522211428120654568461883253579903098269726657417881990872480753881053036954782153511743554022413543065201838637539559473933811985042325413419750757605645235119394391054052508565901552349206825800224714697271827607650458074255235396081969523667659419568420843255558909999527415305102206668053543053737807947207505625250351573240443040668890630345630328628123805395954261379842815024178139025679231770361723811674953848748760792283486774907154237568738287240918763598265301330713950552426003784823244772236378615671298312932546675137105851039318357370530080483425786276141423894261776491823234867249010184924588607167164932530908455402059482814326972992779094607405592862546150038839020834833208876324770561816859256277027686987082661209150696495624783733756833370709335834273418467390476509193079012837919834406796682175557011044861731695500959917658593559705310470980206166818796524800089202152720652288636801600750804643712181754002583194773856209345867266269240619506197323535327592197966388491132956199020553654839097928665896677362852655671132586969241461525180685513570495300156354394330601427834481698982435992480523797376487074648632029738838296450292798615620831247697207616822350547150046282491363341958575670210840911526407099196058645408189599783961116076938568786729824784231561653377053413830427431793154243372359478291794956870140995849212241873577535553441451060982224977746561459321773388508897096660903645455645144903503032219346332329580873807476180363170431062378316467375407336352684505838982207105060948949921824780818444199450900735703249759998294516154747034438747385293343826048615970461933936324786873767466559541839453044394834704680166268881531504035954036520208675480977985156400055219561278510255330167065661543938741481367083727376856577569391952156839960615291341266017424627130487641067338975791404178543017818732823871226949407360832815509611238360129065153983307639080933408789437599930969418758292376380360407211536589504839328834729330673200584897993156652665405124101292539678939361470480159190069105525087612510663927203376040566249886143587567765097395796282083365029425974140796533421959941677641144045926717290967163819138096424951367152422928220151764432630100970887355166961840025097358294868331393206198519280639786118395145895059046577366196039824813650019783104853834540315906831719726977120107794089432557717638327001581920326316222881464544695137804264204457933753941779067767577622243273978131829275727475447716727003146165759428872701386545270152060462761085006429841809262320968337532985357919538769889977855729172451069689594202388354585189039784208157140885481240586170455784699884329590379395041858366464950218233582449377421183714473456754412792708249213665485421834355957693888263751846920353614728998686184886538104875326298040224147464923425616456596037584365229880795031587819388154020148075212490454632657003150556733281506690954306470010164324446730944959162089161738710342440863138524342427639102596860880611821113147723103107812663950274598799257475687367722421975069082865495041511904725635168594030893487149423261005917524746753930559040824442246788026583727610030125428925733795768327574372041408623000851262654571530665911422806387756743702892870321839388239208627977581533695453783962869695068561495692145647636058538418905401366127553793259235336173500081302251126914328594447625502949495830536611124765155749409016954810982464653637459296692228524823300554363573221041042399238581667473548398652024811383025618963545093422072626936891057240795260129058995977369046213946914017877441437289902834828734063390242448291134118108693862545499182912245919127849848272898719955811180709854618025614710507649895772560209856379209991979537428830045213350669414913050376649833775447289995047075020864747806234455801750556331471690495366304096892955046942365659943059054015600628891125729727133741224647010041677940752889296921151887312603375484460420505324603992343768567635241832092262551129684778460635535494460563764984777314946478980634068365266262461649858375573913329494092354568410312015279943123836843586084878307134719575415730898822062677726874780684596619284383748859816469413382806678977114501286559437918156136305659938102185821978926182000872918204832945210250106403096354528241757062506332541833923896148266393483913860144556753080494526365651863565240073965091790757750012889102910724590387735607992433447887466756213820660360139482657374668880514556407917331847285717346571650606462527551386285502366520359520049530145964849304524685753351281509391370225004057940826323770848147220255762897704407006177033418594615253549984160587892777190670202653753793388779932253984971465540141875217190709306062053615772117496097305570144601460262196153662424660342144997562261359263706508495688240030380469646976623045851379366772228856593840104089419824010076846440979457770847614142543953149725297120910797698502562524769782392685946144678518885164396657489767664834406299951922420868594618181350224859978733713774455586700045737307285036804072816203151334828648263335119691469658792381521528315946928590078662163581154505570251191462218967688659484831351486711942665261275898102617264517310874548417432900526548811891737339501441202001565549199952778672740579682045129541199500104881392863920282833223230408731851143305223209316165677973664431172404052528833875792300355486485148054311804828420067966258620387517585313387188693238516108179645659349533471174376926092484031659688414204693322144693776885190466982530413229117345436580465761100655018924816732298161598992887099376875553227370456286955745370339916302650545072578216768856060414042008246144227492095076320867406802572114009343067869654676120799298086121139476529728274142074509832609032090953953208893220279267127191321417113386872725988413824146005465996607781135714780172501221894124345002156522432137138757715090371620835603071530394860274681621645971734814260532849275379799716098899303617055546768291349675874922636147062736276423233657137574658800927741671792076588798335294567914603767612506943059987291253522405062116611540804228126210026297030899624589921736431305245229121100813779463765685563000454174140887882217056118487227574524585142346832323519020881692990982130583906426265351673580226914319824172295102708893014454889235200112964566809535422473662190551863511025460542494322961297006914455702700182505834124055141303521934241964914313646634472768831154571221063607021478386571210943735847181049728553808113223267966398767960586778677798074325524645220840168840601395678251549266862973540053130934208817262567026669928081629678940698174955216300376065273952373773983310779468390320874055127019195380266207787827867881121771799240315581177892682759426253368809388248529068658187307767552318156897727706681164763616461430094065956566911995591753484068631031880370495837605110674002853031159573799299695380559464395786187792921510474627153064035809241774329452438323063776543391882499202581879622109623558181429222810189365661996636876198376258095483526299545903497653290059825957115793864739696275179701124095376916458963395345163276656900448370706672667301160428568161116717378459842266198491917028297097812738051332451007477403849159195630363340719826650878950619771666220500307249772536014062713510896661233312304252842174493518933277720084819326132398962909635109836950264963052582350319200091913275595017893269461758851126654882328235506188652405233798002687112703284704593454463374704839235211156357833339124500297569810687180032899822765953358367010764705840811274231966294803478076406073319127970763265228214734228992257992749985572532980128291762911597055848619995983538532098512611083781398124390159910565476495196820257119971193571853421876895344364675580745441252013176750116190475584510156983829855922312966407067374738281589142312948003421658526959086481114137843537088481288263781152199494050510088173815042590267010985962369030340613870792483402365701441489904713146630197497775752976349082746126963657477361300662768439529470383317271688668533436347427554906338732692136314890286615893960515703976148112662780067029384208307208845196586528606802025481613854414575944926665249103310165914590748508660105750120254897030151628432147031167305653274595667751870208470335759608028804360709657781164830228049199250263772304321803315459556262395693611205133405297079216146449960277363492157254474794161807243653491167274378836910766226638869687177797314442414806902886888335336997832809410744253947697443842337204194506636785482441863337608355417402876391652151442613533018828193303630084591229164116015415730707032055004369120968177278360164354315033462978643499646087999737832160610358244609501709912727517382110883318760431436406829762854428336239989613127571893885841010743074869506585218947339348599039834827079720984980442071553791373549308612791812918665317506802502449221751412707741410832907721045142151279272529860372805145897256834557818901562989335805488332613622788944266394833349022583014421603027352055020533605167687130374935387253513737780446933636533742679792408616488052048689476991946570467388923233672500139028492682028081046934378387467502135948474202925302414818876445594646628451755030107554207627923499197550954757047144231424865300439907710263157718106139236319726754707779766608609420308936286682385252848833870819718930162459412257997759693586587143732045500393250729664804541268564405734479916380249506636655253002994561291992891245133408741263744591344317242367441691416813599905044949679583604422719606155961487534326628160779854904703252724307706446961520311875002946556619794202508013353220231517791732594516664154423982981978683661064132827839031999295094040559614340258642549100576542676333919710377060397180966005210254545052530507642388375522713007535797507616606378903604818314585521861139720606508336960277381653093203348930366425618574149408426855483557617929695409268192682408542121873872556358285164876511908582156846511087562456960909585662518889623927329783718132651796545109044740852334057597065620501939849946115059189271361145936518111305389076175925569683309827613750974244988111670530145826165659600885810765494113874373844377948605906148613476493739232944948630080098557851999899211315844447878796242767135768205264398655355697251558686948527893951197738911413526489051596001315035521410802690158367427124847333393475262579287669244584797373702225743568624711111059827525697468307960654269233928016701618723061397810962471662471262681018725994854801144651299552292888861734500280853769713884806336808498050117186904821166289883945914897126072045017819121114434542978787766646821243691505211208621452921247999314559308925668774407732003816307956950635433313550656144952687558414189172638732829834599765563037327401239620574683845931548369252740799361157850376792121202755315345449819596841553197090149095897501243555002130216494483239508157496016951033607612442900656405414526102371319586301745816241805581226498255982453445684407251947227953783285391112618125535852554556968088614060200296093824691999371884375161885877014005514053966914909622612694570462238361092376882288785246520015740764430635119651479701022614170507181312507286658110507688447889887901148170176554291454111355146053927150603333558240599339948509740211615978119070088283265209990701552036082798755834266253983617023041026707256532700282937452052223134447163552390380954396909287632038953056571428961143636017639224082096899099183777552617090628534192704899909349528786718169985807306892998589257831465894656728235614735183621439555154848878069961588540519030581958834410843398993201799684063872639517550593791784474445827557530903345651829390884137715700364257718143620872545228859934840522752554078591756500891451931431096084246922648685747003000387590691816637500534974428238072179897386647737677735535420262222577015154290178769297951399390522917082092340515083025034069368328545289770146282513930133543322600932152501923284715286552326516058312145069276869646471308255661550303280157120163939678504674056358126491311952061288018256458836674417094325876488408726040256265499653566435749639301236013869204191952702630143348370613597752099614543787307703673704132053922912837808204521956239741534364819636514583585536464653850883343190206127117142392055896196602265195766111990508487833574236834433975730818969775248517441146840549607641965907116313105586174212301407437875768906919889676933716797880945515299239944807491829195784758296740723191432202527052746934392461947884992170192491774300810748912456945711490748194321474865524857598082598179224169533191586828675322198581455625086478240351932879583672611567099693712539646512136479185649726466570492890710650844961472408993766499101056398169978551090439093204606396895138378202775967746623571556810530154671980426708497100912876500189636572884263938604117436534068396605859817230114219546428630753917626531220593868793403975880285700813834824515317542961742504681542440965847451309584184476519255401097966393687918952317093471545118595289774780117969689061032962934141245926075722526392718923927799981628627605551391115420253651817055526170898400979702194648607959532229929875067487109259645733468668522277876945537367702902588325447849769008721926746182253195648049149306515406997704314838572383398643140827051016469595302143375783205886954045470212444406429676684063608907750981343113824775778320523515185612077271382108648915667275337608806430662797131674408361967497707728788896449319086453458166188152979794998326540547152298636894478501212418356921976277433145321959412747898086693040535367093508281151448268170300723969222546245642491570879396460748736690286592245370177832011256486666091104709850532365699207904192382692405883014833406310960813327270244559121139911768005614879117324493240979326659806283298008821804659174198039935670908520508310285710695795894107571692688985355806916495152487835275754991498785797252913571715603952567033162315933067057549258933017804726788298069943653175731041725950735733908665780838535702136960918423983899765747827080704842163767933134711864687207226377347452820872433369821493491627190209838374304690001074920702353122182226026878214752465102629233351081052975340612040609097224124747071071207267106741313974646109967831997179994711547771198426850584836169131724208858704916584223601172186953062559327308840156201467076784182667138968454295472456464008260877723770291795820774794140260211586977525834170111975166559316563309308498640302664292762156965523706336633145675949023903935315342626204519783980061608883875483175418525112479786879377371595736047964490405160233265446383513049893207800467412971599613697814914615133834933229073869556149611497646141285370143732434193104241340628248838613640925073499372977783743725530281653646124007920972914655930368108709842717274785733170766199188745438292154732296731652134641621447418956507361494242992817812146413982499612256671941767794075130636113633259266379041058858864565903210350765064774410294299956192916126638020075477430337736718000009712000179438121244045350819674286665098160363785618158461646718331796393945527108210512064931573453103967800036723338207658472071404146945416694772692716254696215995270033131153495613340121829333807399993959244955404866541475381907156750363140793679580723340469616343860455176307441256841637180293160522826054751954782005151259245448367520213978727825745876219949781240387219961426896289463300128222284752618228170678797366846255596204970215481147052617695533628617402349999412853146753836298295370852996311568773488034247548956407262376095067070028893926082915799494038184886798628602700922401886876808663131570452344825419814681982783103659506944318992372805660865859550509825154353479142079786976081605069081784019195176778736802442046655504215063564860715897772535175247757614957676643963231949587396453188224593397495127999737823273972061460757913360286414847491648563167048696917180735522086950974188747848846369031357380625816085762513972327183025435601310798129268545766586264168425194919031176785898899937719647679681560014759720235848560998474173532780043966645824895472906789843898718107063415443431966579679836301266237098537997146242420972399663384025190590489243702057125332513964539576363732293407964753954416094663912120862876043644194961598656305742555332999984758489088443031098474906379877306631949183705741260157404886856222307897366274787118590896511870908853226286057798502482909960460107999478770220068726663762446999281175176148204777390818693424350690021868513045459987025756632888528373534016681757294642638064071586466403809580531258797422174986387137791560950020898740690062988272391830119945297263507148833933253465039416757885462537013487964696764348751770774779807564263886829838164078916137915853558571935296960910195410102598185574667024206949763991799266301083489038473912683252418770175823184336096668622166695766709843093262265358112393198650740982584397100699320912554427120840048059056247263350467340375203705258574060375566751633166299265461534876976865090649063334749295747124890583326891729714879095342169176336802459609374574522418831938644944434013681286830432430302821742886828939290572146879530341038598975422651737056879137119833991455238593970386156728738377121849605765507208086712551305881573788905892591689637481617576885574634585732330603523812626043249298342988185519539304050056672604753520241945929304653025372329433422402272286654732503601198934372949007347018909360895778646938583617360632708139917768806714420241805631204224193455174391963298612294791823462406025360031566245475237823708394195378415217982848028244026261656091687327433787757023052171996286051065348272877450506115168009739530626205348808301337253457433310844751552024295126990078753702779799245300985699965953323922830494477016506932405972644246478783613463481069056607763065526722206045217486807876312690687505068316211052398399425626083991624660912191126129581042904410748933959533232413283927997027199274067750742503226255535059960646589240251267034526472071301306357639641370610838168263717822426181763327664770106350115713271755454998981260216347447119501800749928012592184236495691082879868851018812658925918108961645845749102455809506950509015210500243843178713384343173079514415250790079142761839732654433120794539211109052567302236985026013723429609002742641423012586914099679965303121107169505471639858949025194108906883939127337953654175583950183331169122969402671724025089737687305721886689541862121294495590870034086032317082426492936792836915350104544032133774250688062981427559474537002248477883760432809197431059780982936156695290448193203783482498696139768870902538748734752898144607982575812804104545211421596618287966616713914805921461932519095889358392707666059729172313767851134617805816485729783679021478330389577745169536386797258725096901486233842621290264376044202794751442327561450391702218263360797726863212655822894907032900249074680915552242733818627390740959509234076462416992309544592273300463073111443558532622476985295060652376168581177466281637695651547083228479922120074612184814683246258140407535799663289335558539565530888085756433149538688175061624609326179763688377116572411585438269772943072881579702663581468626855741619651609330275736756978819129842655186086466081354103955441817295827173922819964269092262618084396116866504291771161224045968479689960720745331382871395133870316684657235701214522481090225985960336846217771329794610773094942862366268499206212288764256580001271058070999411390715842560218601725062326910219810860993373107697775399352854309955739049885566680162255420384190724637843107716679782962048579270024325277525377536676895526272778719913887549861197018715253076368132834481312001318119840051027515200664438074581189390947798930162685077870353292465025431668827798259849745681088115565557362890539125723461343439892719277403534281169611432607429225682949429388509083177072060455601139301736963948781021573863340981941652038202230154414314318172244043876914435215900176364266425996803014966305950758902225810831591971793145349654382650317827292456461631407231858187075589263357813475819809992974801109412234413906141105198106820931479189413954214664455483294780293040548880862849147291767202626338022786848622132228475516749954043676087928883754360483560831798894403812112034585251736378720162988328197718499059819086979266066552952416243141441305811031959584990296725939095444755592913730712355085089993334918681192421130774413427303107601150597568245378821224077822850416111687398462309377177822037903444061182317935363653072061804623270226184753952050934845321625307335433926837183788521369660146431406881182903312149164142151788732111786923874615191975065623364025075076818647101912312635244502930657619144363462680882382917308169495025042410003150807171103628837084696930582925223189503977027703733268826278501034571490737009946056508232729084150415044547512771192497875943332656882477584236352889633359619675397477632078892266849548866538601180588804016340310076523248180499709920366259338156453152290892807176517569535248107893264502321058533377363982935571675996220648767781829748814878502004290730940134087309869628710687870322338366137647290530964656824221283395589356149007672169800643463716544740320231485529189588233077121832864889235336751866883551584138875277141279314091181396619721766949812400206330739967179852635535228276376876108270972564181623581616747805493244320018532671167987567591183876412082953373911424877304549322292700766694249912424686424191570758033816857084317107199018346177400848159171864065872493471485316521271106201664587534807021454974113592054082544638824161632265781016167401000949393003507271705068496095846330946474121420452317569554544597939058636289481069387650152878676970362298962799969981658679451573460941724999556050903486173411522391007485643325956423468779888816437261885866199032929673203955279583913358937348900663828109625775911777574164958114970017960435233169590168723055345829045119250876838506024998949963300363369946075003410956890032669961533629992970952041640482158788973384426500381439938214560683973197397706577576261976354348986330955560411196322620627753577644851346212578133029556695252113907178163879937483513655624758546288427185629980012399289820306840754306164870125351275006404155757554525011473437228166584064401891483677707299804302484613955625366408374970376661935265683611041912031328505778329498881009501403299366993497082183342967404817471095777540759760342687746383222802775721516031235201714499039129726508142879637387982935272658913662683310527762879568017612148162504906595392310279555840088031383195753471567369757734833649443299137757053704380451710349770692596154163191436633610648317233080153030078114711590699140461951695404370878702030318011556573541499417748241241494719723552823305775288848972336383446071684992204658222583814934722701181162266249778444983984757295840000342765039125506969175501174142950832278571858472524258114386262657914538354312940881342694240821022716133696844996362834003743683846856616917826100907469707730014197266133129915394168846847350709520280828035796714201824887995719270477650295138282198122427862536198805659315227207588311891073833052515574455793587246166340111315440995389962470288438271145340204734800856867693727334276054561667592560710325975119352338602727677808285984715237788550583755172158745141480396140482446203639434038414139234872265109367370210923629708772026911533765148240375019289336821961289714665926889200936260811471936583571755118710742053848853788829180845080743508954301842407417326568555424322901507319214165887065149457264591307094726624075262800007711326713986910986279317091551859127190874050568610618477086332875936287647037180994942675585839450275564674381704637670476599392123168678861502087396808841687685988654789302130454885560972682931012971995972077424887648267549842124965046743815080140969387272255918569108050046310042821434241452517790818579214180791387114435030497258640627260512014092463752921739576437457492937570417535153406808145260295770641436517713333176961916478128065437648110907047066134713497394829345299781173224719898749131454127441844137523434844801172999221195496929137501898505882292023153809569314369163981612725817062317401680302173530384027455364250185833940603543525005468838262096184634427710158666224375967896790011201627091015866834739752305682268051272992879117453686390586156705953999281173346327732146524000442586656415615180009289574482063831710451638691495341031585667132390983218066559290190841564772481919813403240884425669115945840491280842543469044215329126080903343622096892184627208985804877419052979476026291823303095991562548576222735037775844885455795803660644435390085282352607394124225820145078776782329643335014103247079830960059304459742953017053898331396665303170524449521837632966380187801699328024202208597296254436995739897354803080155451724317957823301038202608475122833274113140286627606567859795201823274935008405466602577693178926999069675340379517940287181726181999100551816225300443274790708540760576843616233916137175062464533692706967254545930299595371864401604102061687178130323063035816664536581613574862202429583721182789490735546615664875884422597151870298888368208937238340260929642962487583469943162985422406235919340796982017416843018970996067978411746054945224382780475873196070609641023671139588912589672164341820716597894965105789313094678376308501774211175592464185619202659420484863636169678047051696541891125669805965891007407526785326990379165631893499777209767865500407701681610964545621781957811954879619412431842751185740343678847682099792331670637045016468189437334644779458946629738047020400510638059893992368010773636607696543100469594614386343580924758794090035819295561586529948152792139597121415219518414043050995812373112935194098592251691941102519091465151969383836998287805405186040563302630238370212726076408445375314456297793151958140947306302446100139316200392163517399745358581972487910735770255404021621481557373832948247038157071183761673368866171991340615872421166243088852351177748330891850646296135386877397044644620406668119652980531566653243770553759360108747177181493133106411617540085574159557031318595260013213049064990171990565938293843087937025952757302447796449419461748177573096184414047340451901372290738645234289567415614198340899490971087484380166855316067598461332875972924057195168366991431609499611887915793203726574952494212159235609776320653351976887197614455169942925857654838563857556250030075920418731648436486316225660125714491649445266471299959394719598279834026970118148316404934021280706184029145009787816581297476439276596985563849900008628924061288023490457677673552299102704975412528407595977917565724779750873513990520134866402040876692978667526671267388102177449312943028365515684647067733092692918230304600723687158677210685517713304330683628887023746440603134100061450969295449610824712863083039093134757320626298932344693591545344153149425444100627926466694513907751512566923460945521934192093009396998243578662383307827493948655968944802898933309974245963711314984199846134413669760835531434986482455655526353396632200852605563300340875066816003359544432674964670407768926102944463152926451690025026944168501438128658791652070075743855494834327183748437488085921874402870975041366553740889141225631581768644914091187346635710721271847591130089692084010599845059654016676929777496171911976800489321859239734490233395651201753710609049396048128195781265684134295744722141440945864088579080526287270009681356941755258616972188585999492208958678956227690173990445018891858611759569576722661686390162102229460438983008024886835647229295257131542282528597212439708070741764583004514735031269301588553697820759590503291220063235941823780557328748790977343104657720163478853000246638160515277636024893714063530236675851016313942006675130527819121287603978923672022138259117385824036774191658447006099915802030321532554684168504496394920391314323030351214113705738153802351229179810883910750806684207550558546457699769032741707709409741205192886973946759387649347594108029368938613230404495439761931380132085265930493351233504781786153529083591814610149703735567134162571738856600591604228260503072382893907252626935790267189814145970517894360228851690444204340882242167511322004608789387175040299273581979692858896184405308721905183782430048922626643307065454683779162613994240415660687525084464240105010242498062228308014814286250002811388609803822887105250759756432284634889344521109769252867684362029379600208159155148433051571192742679244512467215225552101684250261438391221418647688483922776049200312458683937027507283935947975747205738683950942742822802100166665801412888469426775807343270576563399613286581455706407926412346473911766142378734273713890114638336967312741617386972197475720136268119991774763673868086805512618287708782929812481165565771820700981268073276177584143186982586763859481291484093438005624752377113998690428000782022090502868202430996964198163035381377090753758533386302295534088127956894437642436658377015084052929538604095109826965603681210778934036341612258379489870080180477482197236217336047050536139186935908147235486238509051217461584606988705433132586966730835207455463704336825908382437126538820988608361647235143936846855828588124803649416433167362310553994265616813658941801124873260692023220027622517226267506258864397454404029147615129385075012687863963334761497998054495391417687749572552723332960396869248595746286715777516272267397663132165042645212371733108217453298308783386080005198904033932737488115175612113804644360100598844087535877406536577658527993521652755470585011701675752708528471718448936062250625642981546230561144539159961694630943545691643348777463353612220655026050120158755882686903912761636347915827247590375276032324180716752208716790219180561863781318995994736838590510229458779004002717839124041881831149966212232331476154730521975584868467322482022826232463834294617260410134509656155569032520962951615549111011313700491127133224461854626392095188074794358047387468454883267506430914513793891481479129601738513876601562917174295132625904982050248531699355047027117966704182822900866227005419809259064271328730144999298170278377662150936030305190693688303116309057364956982688295472540922437707258694321189214133253280504949820136341892252491416671784610165517931768106000796196848823716727573422078844444153085572593107809366275291279519883007296952572802887191233253435549543861965270337648592775377579583224569160616431418212650343401804904284572933514627147315073022840109267286003010260615125606632057639308085106338814107158476193773298579734123078248402227364365151164923779727376917313362523943964862567842777206554495325640300938052928231545711545979485127681167307280532177326726558470510185636239711947643638820444501236380186160983253642592641294962908155674413970430355105035443785518903470524561198308063351451831686680034632603792360645233691804818326514639821118553304016722257153044520273415180399640302139809411926005189100825605374054393015482151280982582200661349656652259008190331686129339032029750268189123433712558854274008349042952624429611017460052864611501931682911913530409832814219509434760176645135337354652130467849626094737650247729744842339633706702579036074630690184475147363277296656326324679959177801449243625629341704456145622416729851522176183632012224523671754908604575912092610746744878164093625519201577753765935314071843792895793559125037970734687515639219811193556591495544794927448328015090928190185177325691660828890185942512746343952186967158552849726516589200761787911806412874581340799845417302439562103758417165048835127432964317402259938517219447081237007258388690573181132615488378263771035474086483854199179662332239626693601422038773173589808444799924985227267474174303776768542712945566026207894560558975534662129753098621640515396333486566531913866516084453135319326713674845417068231748042054520794009873947081443512662819566995835687240429550066558567684712015941235966206137122136520660115031504625012176346245470121903827121748669570248743972111718220985498342345460475077467084078075587540463012581341524062829341831596179618209889349669453107627450021953179167254960322396247616154793659120288397862363478150321691042322310226467709747752116790115296703637754668350065637442100307550357988365865111989230498620242984513405951669163944223670753649695169101222956181287716392239944127612157500598131181200252061156385636643946602875953859858832678457737787191618357421583831820627889255804923316230346748458795514166561713738763029030511551504906657962646186909557258772559287674494393350122120058131060235631295301168669705698607433914877059492454705181406625370522368632086288045924448896384942485488979795597987784270006318843974310217477045170491866706419741365358672178671442666590405195329935521528550694925680633223465386998115407184066922531817694293928410861223649499504883733721291002057229025086462172795489672040041900452986195869432410668988456240295413470582862287301713225307457129574924051022427226659462372111982161546736255139072786904074836937528206902156969445853130717733825723915218251151352060101353168888924100350498493384993759782443156476871162513991867925936488839089724077813446018672733003547341078443544672849106629948725060214922453012391210595003280898041651307001358045322058977216289195471778491230764433076769743856492668766304897189908089661000798396532647531099153853669340258494141002075489516904728270103720909893170758511440012135399807128477837106113876748167312502161615264021596475395317991537604182851498447351093414062135755563038393423466750918586573930449175164627095557332789700388873974608169755672516952451969023233121424042000217466403307625990999092959325287847153334424969567618825025413682760984732236286474837202225758191943380783772874287089499349656930974260573774289590885264292157891011219749490482381814430027667878760448466484146925641591493187889854995046504220717593347481405308791923013691103549578119608569396803054462198825403784746674025443005760842673236048626148858340801048383443353992199102052033948442947881883850626022510998749788044529452084363684719390232570582399187589379677421352093641137825038300543062719337895732711861307169191722246320129756934816051375080614970730482010844518179575846301684162738806176766186887009522796301546960930995443781524275733537257030185596357699705975672513521853417830211260654417595943073438924869750572227234648161109657863972044711103964796117479051718847371960114021026960814523439375837562794499840251257024733144399483027358172552937272387671324146920449932678697494432993793631578386243312726379659300463416694385730397977431268193671895034064034260635382736312256955977082515061372297221410865429081993284808113727576816760739042910247800382195425711486680973166038475555581975159308242701198285335788660652189173027093505469252914553144187474139761283069379045632144862450480320016651206900351294136084874672704095681971248704751815833095630271926814776838033539389786178151319189004893035822440159980281823197034070696679537111655316371540176536002338116405329018048000663964221017081865750930176138364585404990302461722289163033732574226688009028134122204391751215149879337597524632141014885174716799733463611709076586816849279111070263723144819439007028483955602527044478441520240233849283709992733429033017922224546926840674997470232316592539285320892392004636277539591773079130285613828597657356764062490918378127816694048251395857325946470412454587666880042438378426599735926337512181643999546445565116396060941564150675306871373644713884783275510926247492898898961482026863310296985932887484282893411686399461728465240589829527647260980943745464515280029337944921896578841564204131797601509615647025284736328300892071704312317899097158488573456478154710911461316616242008146868282684433810163658872300513997440281363498726968902973870673926072871701125079600265829736032045448516217812399003771117074660554146915727091732512542395398285063388618816862422692859130192835596180129669393440401375325978623108962732203739163911775025392642349773662043733075750775292776877555953320116291361303925484227699798596130502271629127649112924917319885302412232746809111119185840664072989702339486164834018852720180667017603733375338321731049916931199665121508589728901025167272180275123192680865373959731486279612923838066371303765801034910314323323711726891855872592296069823929791979189710730556301781698333110531463802869558083494301138866470174643309224355532505004734435748790136475208527107359296430579499852086166840227163123144987660921940764585339949193799140796090338849490451628246819400136134163519267390124263930672626005134018346321912484200920494088344329577094178807382822154078785769068145210875970168975596427748267065673569162040010699159067187148619439921160260883634211893672233345753027677721862322274459228519439628117598807189231455587320130711687218558515520317742551161536621328984230032918972077291925855807456437376359224682960827156677834005995111736968008441787825571069172380798678278438492984461599080637818824791052743439763599149340536770143696176859745287762380834215841586873176512106686440123165595257080894041376666087451957217873992430277697661885521589693562381379886847231247519829631011878688827954305791695656001291594548042512563149136910861878646152145698294211057050532308595720176265987617947553272603210858201587452540704240798065374879161138060055102657761305640899163979329539654405680068209890817222510834595132082917382882251797902516215358624289719673056286830012962499866105520245825421402296908874314067020775868345015799605860103452079087593010683490151763705396312705014911663697600401054565354895206798057017936348599738488376696085837368532246704014825302318462770657932359154779011086152209719670865774765993145699646471325424347036632265943376363737430560825672980270976041360040557542524976373809814048085749869796193714894880918598776292210847186495274484992771894985541698628264468496864072800231524371874175279827905525657184258177399849630948209571430030992883629968039967767827827735428401989094814674765926688339288908639854249392632257613620596095953885810038932459524388299456497507184488836609978514810402748916137074815138038391721194355931953792594361486497235006035481003849589223982098016583934424291956105458623084085303233293350070246296513784291659500586705473051002628003696824730450685681008827911618658177637184677382719928691717553210229731395656266201006365023498576200935348979966785992873246000149303025748766264638046536112600656736719233961098909957402125025662483862013709231101445126115507754912696603480398565822574543284262168921703043346523430440468011585321794243244009612641058509782139848511742896522205748129816379543451650978340076835651255178865745989046638896070035570319582608643195493744770419984960795223343291201341724689412377558530968386067595208744680683413787107212343240653860234587729238284175284107988350432402789810038078707651114154755996802132618274139298930004297707143104538854645854686279491157276920893813262987182800278709051839055989350187798590370059633595452548229867739756967664283193097652847007590219190037516328528094315429171460839705897181020567902902677956551359396611905976718756085284454639435308843941417797055767120455946621291275726914472383053264408089106600999423202773506041716499223786311911776120873292977313787156549252843602875654838272361433934535343208770690081820900175837588784037565149055499397277728277766604388766081981608017989303178047934018987700849137278935590825863826363789717606955029516280847391296493050940869159910819728382498055319628234036286708802359863233294587377388299064245989173312258104914654890314088845981384580173557557533372296927462280117130730696070074993867454957450994003652641443786999327004494170474410575425276727889362315801358139241630710020714322903982814575871134233968993661545795320055603364491219722789928508188496315281289062738168391817428656841708366180983164667398948246729987471544480765801915734010880195281371410673142158703477924342190883350097683956996390367351035434232438408840010112141730309963480745824745392642771596199759855667351352346566322298163511994823699535104613456894127525433159363363220032275013394544003007648583489527835549382362003686505020591753904604190160027526893795376094965261586161589766327419847125808679984560418011323325563121350754982484404978435120737918071398659273944097946634444751728754177737950633012662712316094740027189028515709447293796409325789380799682850923148517674618678064751162054850851519759133917757637862412114159743336300939374408776082253349480906438881149983227636471318451693347982420005900102587659451385700590019583384225442069914225423365326948608099085499657124536225687371457961686469008963925400798709752394039139103889580142304524994369741083736763325925740726811167529714234724609449566085525545863290960568130533381108590873144596648808367704281908189908981378234576674478370023003303792156302820748515522522039686084254709395946106752784981475402156844946877241046777360339513923999595490632156010218106871681202921699538290041792915297542766212792740089507784216656325946240476482505494530359794614067245960677948897892171584003140992438183509745850359722722260014775373984043363270460463167483582624194603228597927609813704726945476171046390043552254007779171430238077998276654713991225746035758744202416068922400096782721539463531575190402356266142732160544462314616691891395997207487440398480187307249126428734995827706934626623937770515578905284416023299812708961523486009097695265546671978572734873693268759352399662044642616734557319495561501665911578309231631378205914145683483981762875589216147441040792363813056201328075125892497638760422155778776649700656922475111952317475015081157183388714961311165680062729213333292420882928222580548408712953369886403844660977907180190681409302389637815870839326330773889336449934182478211202750890602112806625174530755154367085076103978640707642905505862295889263222803743429220823082119394355945478231265767466193152266065700985096574077394401881538742189499785274749049676087254692714179388304388165896704496415903619212848829683817893176517545866490357602900689776262823433076659556409692149659784177166904516094089203908356658037375938571312358432205849717458246178003724477288406373573496530943237146496085376519211685429982971876974319284711867644964373414033424561142814370108414702070016200030914553738619011996384172731480490527539158772976136629479335418698460983114729770435784221453720650061111719494974124448728250580058153283659797474192283949992121705605792112594991652152608327964784285647256219535488943607704115898853964547854331043348914092653528073100902662855073111684710920890972501530471182196501088928271194727589028232234313028104479656682128906726656700460420002974061524725022951909674634393869421475174302207804902205973950530170677569733462917011310207014583671934365217806087200060541581594532322737050474422759775896835355135579476955807211844370172596444538841661955521376317127816140002262157707126624041323183107943315787143310732603313524831272905367308866777799938532413424898606378653971731313360195218637026604577912598630705482806861630663108557632300352021932210229458252837591726096858523073519764130705857729445189003035683985736289482114222676996239310592947406841051336691090201189789100757637279278875201493698491700968192359594395847615020009885453101953976506879675026350012801882032998170285703872489399736666511399471175859399957812408524924569897828133283223589504557260680352047548790645288218056538976402890470294089220452442013697442652046902556770944974060810890497594751291407990465498241992839956348178997057237530192832123207352206679801937489779698194815121802679196733889430788381239212385860220845218103064381634936195050080894297212037793124275643781362707795137039029598930956613120621619232766813781467423260573949537948890768992864530266958140212108613728877263085339631300663100616558414968789824461958551203485581394855912277911578438603031288427246081946714082801265141834293810680876058331251120267228857239450215169692540021099480493882551048111356476427825924519732717807841334908562337784032032100243633532697659754204896154003119269562675888592819741010153606314834618446178338619253849027321335402744365481281866529576380822201026830196848481457018148038278628404183444171524735864371589555958801920057801113087350458671668009639859135065022325934793783931782381399270148703387184164680742319563124993192260643086311569850848203630564923938236375202130883885810758853211431538597754809338380914091061831172070749142480441905719351274365352255524535574242340190659378867936781076858551148988464270084867199361808572212922486335776552422327554424146299908369542825191592159353063254536328650916763205738490205652420248615915362608130839231776871991965711730183802920570109763402644500124227626541973063798904115301573320999024659928062254189560604504966228516556872547036929665205853280107402199733022253263186897705549566139282924141379285285985348959577069151372665419159460947604460130790785641752758299269421844794716081354609245275752356878691061328332662819992121868605299720327210270292342393370352558037491775886597685073464898417030343123009117785200811638042327424625693275348902613158731965918086513075183685734777013873231756621360852167938932509046429572319327142017085610429825811754296577071365982124520503841078250650855213313345270833264575217090917982376869967411249771815282296248223670195404807341297014828855948390407550173906258420587273566322131862025997477641869106618679971590727334619930669156903293084295154897872602680478860236195816411405102293815149956580694939548376582074842242754998675682288166376219601156777379093503766448483702795322051546639407234219660820066898457236404032449208084423282855409348204761270707115084452826864390378247912463979971100554632451672788293404540672484039092936462648920401476203793989245407947679033999320091724911911003223296677004759211566032901975764075270302007253414938243746053136021188002820907475645101888113487671605698069675611919085349859198836908253623728843390811771050626101163530695135297209167092516298537729869651039076239989784178471521490682586763951123124561627851775889036106430330573614601109859878828229572039786072223631704213197879749309093752640290825320119164812664148854635898518001460649230104287121173299299494585962417322731813925432227749967237279393205569089643985270123504931773814357644205146189932780426712250640783768863667738352062363841787080570776396558211243290135824085443872056361663293179921024533267156637467864056584545745173095560289282529137352816191178341263513208048709756949403545407575077134383708527344571272736458644273698496378327715325259443851596552256250855082615841533611626105564933860124996403029912223190330125685002897422411133025296620088596799041480680712210624960788031703369999288822089408476393420917626665569839468250388740687040006701670475075844868207000247069265100165970477981720045326796221638066405691182413068437446759087935054696489492828769204280760087895954183802581289901742401063850847005166848091134209764875370614149374732771126313977008667719588352873956542886720991799930251517988983061213181371523598239686515043518143457888974481040844625153889184498331091640174747691271935787749488727612109557774064167915877221528347449109523983377447926861127575633972052939344420934191930247998898035705974427040248276393476746423469154534325982859648880272098344511862065613632337236954741346384368229083427039178962081487887753580596928382650723031391304437045862288421707832567616595115171642785565362785092502232680385260051301519299636997825313388677357316512168963146777551767513994709859957284748683717855930452928041804860979744849987870980694202449219939889029230849997032595952618529970567291232176478698673632233606369093896002278949999877954032062644622365704345940599604833992331184059037779714733173551958404543433471157294467363134145372515885008349583413381996846471521804591799991403074164803938125628932890233400595797056370152870766680571181025875340558887093281484040407042713629498975288398231406241452804915720980674426257518285368354785319296760960054542333177057308643066312461125405555998898798098393099715942765243888224296085822121551918989740074025070122349401125193725713365029160603746653860326667976328100442467187373502963692731996409498120407733311838623796712521288332805763373439659127467160148843074426802073951569234352195744199348940584786532247875381368533000900150051592012760087071348642164378191361327172892811595695869594336775830452755530738830353458691828052951513313582392739915762353216672256042972954616863395697479389222270303692792707850420335741129616640200616178330001333768658721365186062815851283358137841875835612240443906110002514223949595825332859513463283280800965150993954205105430592091879416390380683475846824229441173898563846805793239721496543298377883931917522766461120061160761937328710896120920432542274524253783602508973595993323989430783251380878383437385662899144604638904097911524081429684213089089119518558805131599765275979571381711215554313805546060685632511227498618515987618490164764731833224493158180630800659403099944384939095864627382088532707191322793250821140182486204132978136297527850354380171510217357049022043697148404253935430183576657268942787876607585548969722495039205619742228567152173384395746040064159501942699662182511599122473334555214817799141562994478382225550153139054378812240321981032288425020081257885996903152108989568875972238234093588099676994596157092964729223471436740538053036253632110874165518574882888262432829186330809117868667829476561839132969976876788058479379216737236833704280558089930617584632153284382720482251227366124206676314311150654007566645809149902620409224703740278108578029518764247723256062931868831925730776272428314720262945286937358817441203055517768970397192838091192098310906271704194192569893859601526889883430684729009044370979925695872740674993002524666454008833602067928703576458548414388126405727648876203407873164714889255516518293163557611127063391688246644994981577666654690200265051113573852179136715947307313122957047206034062120743766980456749525820907141544777797421922100991707400869590082533058529569658501832721632508504277457431599470681586032001382026965878313827926504681416408478573771515745878723048913691701317947366974404004125893869538823397838206592851472878821914561736681809833066098842173792889330740526124317828907636492347554386957289532301575329193537964406978537037501759763071984467644364143448576205845515738317726039071181265213679204301981689555147963545913735863849506749012660201497731664206968321487236228625505916862350572700009977946180802963993471164974664970849268051153376807571071604057013770586822444060040651306291752055532145895228077657679300208484856193315084566625170519656839599390840392652149227380012751004488307482462333955891191001818891005404578978178953544895756355101839181667772535424968769543584387283672269847358671078962628269452913899781630890427992581119211394535707086552152700528817707497857319276703895061828549476435786507217124493719801483341408698750963767913569209099655089487634266939652787149258601014149704706177020441630514770463769819985798031245068902761388419056054550672426925162640419932430737497088027443769064016150656577621098702821803851161698153412153851000510646973473214591228591375529530634232060112943922693358130536494571387626429560756489492104437529789408998127502885625477415294457686874012937725451523701538565999268521742064575952735989508171320571166061471385252354775780127673003582123128517172210505221811364912628264448372439765528974350606228553126947307228906172989133035151641681606187664182768803655047758348938867939108622262350892192799365675671476440872894977899217609532334870675092020733067381258693347606822669730573867690119406516949225313919875794562730859555983118354994894215974557896654802570394114859725943531694373424709866549649029421355529524746504981600389147400848799546197087517963739294957689347932180440170444770738968755012063546440961142395473274430994578962305365267904035745151625770701932261543159973164074225257019055518136598760673131295838128472374887599189342098397898897820901165390050093019039672104197042920756997266751596168147034879513606955204160242601247710308247021479145327854423943756980316989445905600124756298192016108391494279772571294765283324787913403215621223246107433730302551734803924129012035872444018639267496486201412969563234678576953543736091805950653224665847494327073184721687407451834177023717946035361213081301080274914192171425721355379705033909213247170031013383409050458474570756465442371560667836273590884549757653940267594751077512659508916031240661091241908795395697094552292430301179267735886096654686309239985407654870641746131050309247079927305875140372950939569576771181497480903949062564428757064457872494736820045665574232200934868664683731444104851345052263656422641274687022747924207563504543470346073373843119264413512035754305887324666464579599173846779893490642124473616661853834018414512750334383238983521934977035472949416645282103523943903236587668915883235141077408570612657556082859762679761772530155295732135730884472776891378926767155273481228155031515555717322435754372843168174959442132107414698382718152193507648417016128479259117704945100180069952270609916633821578109099601370460893537995647562265950663778784367764320534796870617029372249471189869208158358217595675052057758956037437222764167187990734927118959166288700480758293166341084838786196532693218061164079121693869127947162624748137295907450383575772446138916991900693215292358891789754154824666572864661931813974197836567049247018545710278785476074937880133960587541576027385094918963957438527646501838539024336067884387140442570238463912784963919931761032006224389454402648524192759988054871436273168635490583213303053869077764609981547731948248739061661238664045275188184961984914255817917680404089452121342115453759816740000620039554878222377093602932894203463932357068235023965426834408660315507217133716837265822344535119155488890963313647175723356153759220958150673863137468023893429660721409706294998081728122534487901959181408302651782852501396705298166161818498893075265919348012840644695804810769736093563904459704573169255453040936374802260444602713267083635623003035802016352356288637200281737031195546339947510350943916941699880437833718196988271597105974930084353170842305120421783064944765256026093433349380163098940602960188491198805345292302004578014919420570303677054135404979887393127885738046501314474800282366485304276007852310015486032897096500493699723282043238941322328815460498367980985579758684504091760647081960991267413338682576985240464788226577665926298396714366272727473966047543112000044322538925382344229093465221353271704637298074821662053307167970881636056480127010816873802929640808949582731864376588411435347015541612432421328256452927592587881330102717836866636902349854421070662107056509283052216778719633737556964024640214791181791181246302428739499111364515855748691407588711467238119482083817172607149576098895937077081391495789085020218150890660030790629735532259842218658802212362612712913943513360605305292746277522283934655140944484565344117391683441297352961844042106179552178289593472629847776697550374602814062401655118366500486866827013901789676924334238047604814948075745464439414480775088754167793233333849533950376092883040583258156176340689541439346110178512068774089266795939062984312418644392940383042710601106034960215211332815289669750398836704454081996933206134152566295673967039573425986009550910062354283849868702216166513729787523740517502473076172910623636737853818031085810650446512854574078887285209978888956913459527861327433443167765623375084963152464730061686382029192436591379661441474474786833980980745596295271816952628244144577166870620628011790037424271135465897342678376814302023173926339226686963151655668588470626503635206514085360581046314730770823936951129243727897160029321293919116610574662063404729153953898812164156945541558443342502672798219252543317410372719790988317171379366429037673228713138290496347670156004657212350179627469695458595375712160333998540484556617991701360398773499230117963048628972519984351435903789086542617218131040897989047280257480519495902821662421467241426694497085545084000820731341096283184846598042806262094853600838448163647053743115580593822192467668547599756298088666587236274575837988005828112041129075410356327697218927789467579877252113045217772061231400977519184712404877240374266120715640177158018057603748855008509016314562566253322629215176086127256778351731715199843677832155001419255972636168787008499758819532868187968087186280937213287508327324754305158734930082126521799834515502257051659740156620403836810122984388827479087615964295745638334889754111728587193908989290190604149040941219878669557253091134919521714747609678581879060481315074018240290854185032893427693936710581925375300157563345400175960015929980717660317345083231213008762590244314888864789380433203116260485135233647088143136506350290394164067774202565793783740093010145541454742209188179638315955863128473806236225649768668749470131518332308370220269170077788502789440576207092911701274027525237531543108740253139652966705708614253389695825278113368846383502768161435471177596884634355888600386455358936246055134532434831162382477601278178892714523767987930691205316860680131887254734970499003937584381940061235098110531475414408751698479867564077949119807792821094866015183618297428971759186279758055242165939131794155828912522364670488525428395339626008067040182950800920334634271683780131703159446246343054679998686971690332721313411664108692974974527316536919776310545256335748755708551556685218959037696156183460123499833955372941704487723184090929519422085457037355600537264954800670222730567410680438249982549118161650042773504768953632707610962815374448953038267995084311864956082375671261888187611891651058535135640718467883085334120226860994858091541809290244481153949810773693388794449126545469276341794130065927981038263234608079856390653620061032691505780287630223715731993158651456749054241372493682079489293144716063394996986134247678275276006110210884359551157369439707381091655379082284834946284728340804356693277505050906088465784252565757576411881488384489517827405100250144082849185695062304265363015045649120176629104260281412277891612475601268373804264161737723149294171897293489197819260728007894048563334277009761520921438781920591874113852868180013487002513186356527282901401338514767226964694359259276455538666177728616810199747251485379921793589203450764427167184442902692078708939707232270823247080582296362392188569484920434252371744109221411499119132764030487630266244436957430537507404938079185768821635360738094960721635868166953465642688977441752983928269279745473900992959025578913991552968918283208878729221722560529523636179343211735043560399692485366968263327608330070719946476692698651326093831624813359031505707271693071642667478708005228194381466318975854802883051431517592813068836964786175420424610247615397046910358998032894931404237832475796755751481058204726845876756135967686058484441659988192182952369055954208627175481869257145317161532518246275258946900284412659964440415676662849341923288326011146618036063966360168903097851576787188305176368666643790684341814646427335564631764784573190941114251804904257622812984638032570286161337916426190021151590266894612284715910630177695694324620485536289129130057975738387332254869025085052220663657353587221349036746847831410669893206809814331045424982586808981177174453314555806156718105830823706700532266165376241289002067805967849721479649119190887712254765710323773568227541009489779890460618487512501027241967799827772848999403130800098670986573290726486640049037827109609045671279845993146933315816339216513805692564006882712437262114886266284791568216927456408943215825950866977802679498068570669098093966213807288250645476777279504820502820155610722972352408397804283357614583386525675488594385220454580995019455860199252365425727715041614880766245849703889877980184036409292094805784467375705132312735102517741269648333010833443492149470695036117002921988355205829856104800433438469287459766872764243968116895714068223565144195872461207466147738591987229288702793794726892214966974682402513752743319819072603471651689727916944174904617963415085615029431548533883842627086606995611524796636091396435947153079514975546272927472413865205244891338718491018059947546608005042278100251092471868405737067529580139230742355006047470215243638633090659170749200472625570191344182382805212765265218771037696309651219949090958456239969844188921887224590406818453416365658273950999033043237276536051490591168268550408934487455612447414863316867836505292376136304089692813383152679881557757271532122355184613358161006842095205780299728112553774863933223165211506129188596136931268294113566330439446276225198822402550551334659583275198675297454660156051886177501910955471079047028172292786918533930504165774574843328372868359508983426348683076051280384562946265114498364226806226991837875333183004093229221838126913363572370556150339789760728096520164917786533494838050575172932493580690376877477407220780619555211195091807855883988266073398199768410746955178316313879688890243372183958365666210643657321816391202532491916405423276535007198022818557776486429887167546077712839882812352402750754120155538372569483399666659916074070378016206635206848450667264279446510754806308031025201416462424727988022602191034364875831779781265694059002814330333457145696875351611622840078532053532259242850621122777454050838875516315965370052199374049752516099149979435470928004901432712831947897598404824606877367351137345511401310487574196672599856461565973982650989622103581174606864370737766070178860221235823053027798662557466227337627409331399682186699006426723437771028284248461418008842740287583479502534956969213506022958874183711459512033189370445223286732368619347226359023449635353630828770606522710523242879910731363774952640975134024825497058912655326208708013228444623041401505385105790993719192895822873685244070563289860054716701597916415495271906419173311847296452868465002633388706693068311805928072246257907153327014646020362233914642246273740391500594776954338551987814959751170790865778402730013612991762799034577274816105038212393831784264089064798753566474968572111011564160370104384654414702023666709842828706436125873568021887067007086533948092696277493255183501635566775949541303637622150703103980027021884196377982099911696722095162928284588536430654659329888586238284463595580003663765341353281127127168327868116221604802126929535271848320501193045663449090005343774235093676395599103499130719787614913195105816324742716828128866543970745036474967839600023652254663276960067874434448765813367046925980560706196062745637156311937391195358545433031106187362471767690555429903624524527851926457581172491494639318484671491041392565985287905812997708696949646376861354182130058398454356977633391578303483611775772629410739965013381972303835030565155429986438090582397274414668022913016722088496448712955050790782508095541348696191484840099531373111994146421774653774541244791826350930030118751095138915560457734143667855474775049895353418821351529518641394617969134816144511455750225776800565356492807820101968514779059697247482632637472118736588955803110929043249506903305194810887458773445832735436825198170696216517844628377599922584289909538250267506251906012054709565937057547701277164328897377741332411620082420720910331954413959355662236910820652742479790654120662110477566894958562242421104303274850164820753634660772224244638893483260237368345510932393442683037040151585571328394780801302868573685400751935630612730274057893740266902370616161155395826735002128147521790494122926461210697554351277366882195515019493020064276065258338501917377614077462605871372923967693733782568991916640861398768963661611395023892390986725188938539337057629972285773786623572271032193867564537251444763619847094180322319314381722847616365967619186804053631226932043294064448899572593663930606302389508913299151895489948378249402469242717866069446716565670475016403055382928734276596637279910221762319779296853875338355060832917013661828188279379856122568932323485544676733430121233100492750733302043903678142808070388844594947501324341355038847584961417808277809291901743738577439110513229719715687532269347862364706545716852529307164900819798449294199456294786631325573090204203400691401790536970082311418304318052619908186982070417503065446097253530133731695579127870974849911410806162873001991673179039289098789849478499110330420160714596281906166320783937222109992227679538108511740410530639099591257716248992042669903319862850640789793082056376046998257168243685089638116737323212024281598657688638592121682393936132959946180640115550176592147056966826785600443927616033104124385486974171068093074495775459162267712275688846711094328993321083332138467591500865262303859699746766846243371995168492770077716774429023111739202583703803036382327790996368602166598337938753552872521195402272567615544488045870370333117817478323904527659238071062331704189641722055664274922523490061403065163231362520340168923099192612142784176216900066207637314203168183025863496098694702855766055581879340907692433633125959503595317706897263018679991901103922438587804393786464823403860244530308259550165358170950011596454025126193433102611924474196545736181631302685462236050490006755716869512184802611331254158896207794069874175457001724320209763598790321503361380061182238534822800629192028091419922325122891609817599811866254577730539762241795708863369577168680231664049907040228404936262960084798011390733979518860051961789937510548717802794377779742666228361008810135003820202698108785929592419874433915322406578302755935013202906651192316267188682571298401147789548245151277921523475169576655275892355760082340019664895490255305890320194395446212185648956164145183564583791722673243698018473016299290047717111006216812911840542661687872712993547262196460615666470626738759328137275472210247725631961370540949781390921589657539455018539588278585395546442419814282804198631858541233475804072740134500132849421266914017007842266336146578413717379756684854272755809289390137021499522761174964244581734565418376371502462435002923831570973084834653693641751772059364326902964157802877099917813094272876961269519413982825985926109687405326117623874377582246261315035410137258907607306149851454545514855604911680046884825725702073446611304144147052939833205105615538017088931916929851658640431325770618540536990547513710392431837403147087530776094383897095638354969412699490261727774953517112164065477780099388861689953826787089290043145041426624658447514781671246828077565053568674570142126452160745109039769139324574045073762938833981251236003607459120673859119523953571369688408711679739546566253278056002956450185873683265847673468331374435899984022752591779756330586566506912956136402472484008807284761964662704769085397412849429472756858976433491180023878364961659749305461683662031828547529851804634230792298567000831122118637389009418736144633760862968774531079158698434339611340606769988822258160577112688563984833787891439020954372815671262609848970966675826411904673141027490649667262412788681769056780730419211143882151007877993583701740983805418729162641527314802414047704244200823785222680111994912049307201715152263007704514599595183799913259963405075968737058522637094239021606429716596546912082893350428879994126466166733068136773845024725767445735721937695259538325304130232106737139985326805743172728505799793583406829033246025320889538977910759492858341520566428077529126503876035431439114710975048400826675952782216590869774410940120336117962611185769054553724216290102886057696114798499261673263735189258045461924421101841358799996435125712411382771145772449673668517465040463192558308743784941619608290144872014790907847335367410164743473563993031789566248540854525217957226167209691308794394835787753821317838917684860546991720136506956732709201319679851846384961919768603960818540304126134729440309389210145786072562036557762058242498887385822364513324363914608725735321914457248478471327473149156329469882531315699771920976284682642114728144030259049892215471175130856126833970064858128343998292251021818098561909742131549040162608035146113926754903562949645019950098314855023411588913747388698901593033155024842371484457411796904982004820376008149642240014719094756011349691050443338759449691590550079407130533307512210515154176645549156102240992870696558295863241685171254545976557230838348482183307859903289400386314140838010604150555613122873543212827720798021091175654486942844344049340122165020057298378526503613756633136779849859118452648729447161653661586210627500057772010920390763060484348184133558046112720968623998530835952895407797026396038811678601649411330392940851996135491951684033591258055083318600446634625732282428267042502814176356242066956420940866215104212771912353871357680131239498015322286087139080619655082656124090270548633666269755367266591614014548357203866138956098376415194005310331907521876265091538582968552102478349027205285566403195358253619636146025628105220512887107354620861840177447370799564679342714045187532525092073900114770089257875947167067964324747345140057130772167707095150595527065151504246198339600017054797673126464734786314605220827074043508992379409032351010037757840207358015595269095300242725764956807225208358770210650328890824284734788555227278476977475329185101823156174436813226413341088524394231781738982510872446208602078259833186849271385720283896064262532204396457012969764444566071717329855659499335326108047938022543143339482639871572726032273155584652017329260312239142254962040749960950019743984949208635708887687305274020019320503247459436245482950528835317283536630611424794412016789155623086669314688643673445045150221508314102880414414083171695931149874999178402941344509128104184085251705957069452650029450078273405846195196177013569422595754050327753043155060559604089827389176862086192947054443855960019427343913439889852594776480666316837713135314503007596621121549441171316924820881326555768755825142956284567825952398584322475606387775064331611554523654825171541003523780732264924268098310986798760359277763505995122761439103034000767742624825630542514828523260315092203773562539924762182886979358741599759277629423750635823589084542574717074675338297029394281530923879326261617261257665702801785465277885712850379018791848729589643480302587057083741800027773634225219767031122404428007374759882453437925078252126596452307067445631633971833270857008151583690643800039817598203901157465708937411864317491634506350585697962459120167558448970370633455776520671960658662464829091550192136687237333103350204175832361982970125379832768419632262631261762471821194504572208304413184328000714432439015310741652612705858973389525041377668969331536429167243148062414426647886035914863492922659126425891767236430211410600249262829778229643425822669625714613794406642092612615896102241927094134663165282202413230592442578240097837805108753960966735419284655565977756975548043403885715501756057418185913758218015863909156722714135653248984049098191128826725287721079716269288844047700945520887536259638019068210772653837125462756966656831390296363317616950749248069983662661872045482242630768956727696240553373674389194528870702742706900105269776082467124289037191832385242690851980848769494664011694753980474318692492327374741185391399501449131698495541933356831001779276315685452256402626955574624657008654450968000373349084903626048170792722950900023009340047316654507029969073215238250232347494005931132461948469443400149260199440059175282936132175279406594227572894867783864157277782761698727140951535526390126649530328400067356798873763548030157844432553962393474671521366030133000132954756568693892580573449285651560746489715018692197542773729152503401181018856382107763280630297553122921438757754948270791489309476271767686024975005193204940909259510367411028505065254032252080916203619370137763131574093892170828740975636631224619545289114843087349925007277554731214130914679001290535636858602807633611965183187307588013905331340994275635337217803134620370007112841678960711973624172295895067647374597438056781241232156356668622974700895476525794637185765041283097680843642964090999461929672825438725283525792711429557192290820779920286251546985944122802858229879260861424455137761915691272190655817865757892087489428622013572988813853964206113784660539624771325744853639269992476895447421042952176218754326487616444395355022913880977415559965022884353343744530967057238222981939739214287669556636572757753558597599671925060167384181585500161826419635349438710664985323454544563282544271936419349082904463566219897842230160181463971648916618688560157080338486304075156834525097968998127733780313021764980114473967878031020963191684906753290343729999194514337247835606410668610578131881160277239235188471897547269123897618989181603285181482321737319156782634347416050174002603913655649582574356700946920383805089106137662025087935666892588609708818242898792946246402923659240819876696041603982310202689383894669071473429148050453003812966335680917339481074847694818715797258653648904099035694096600689483786297928856205442162126037445195069492874271695275806441410387489191901038310786416238841932686315017360818382757627060636512883650024655267579368552302341382998311413048618345396796621123201793098503293641798258691304119860572667048448410231774060033992143264446240494649374197213291104646660373252430160899673416191658355753369655892355514322756569547816707429874748187334635781682181926562530605907052517047446124386900401282251611347999904747039125160438063291338702312144078672339237454796328379697227882852422665322532792007343753633584752289562391060696726902579425067160921583904693593731637838553052968287193244222983061956837201568569031700682158942259240191964297910332296989858541456081579240333413305781749893880040152218613384478019876512993336138111413713136603632635662074000858888978933213228718045246769546753921837081670658825420854962217627185344431170950861179119693051340666531965181785061200185787290700344235748066023315849137992130508224468678241672110964214784632919017003804832710706548549108326888242576768768457039328041987210919119388859699597617848296907749569784455014628352489737385493329658527970541240159221851169064528375847326260833177158007215977292897688573944072379781109797313095559162326509389394869118435162727364835309415872919439530059472186594402771360536588703221919502495298081050195368255731874012535645716685010714379810708559712140697874184211720789055185545584894943283102303110718644387242036886061755637090034195466399112046150374556309959719490237944591102862811122210874981743712720826879574234288646070048966266044279795601908732915009604730875640983289438981814649661855417463621720453896173608366984195978003879560634293829103111447926260635277379842051091189813349800306485605616461322414015388086786403581058192018072758871451067757707601284223243649119902385278355482378827775914752294680517408466477449787435543439919018539920455026605428918277784070044725615862807905135243715597888565682334383979603352723417110458944755414408813107783059589708907369803677323135416185347467126695368125564093763534105227132853005719826637524756924358931174416086059170002274293595438736033089617558532846677944008148702384549186210770734960398986782345344331942958039463650075389384180954344577204462843155122693545764859123236828925775243957998933398559103318233678961458404964687795180018745366373579394699373852901538718500438843243132365538831016356506779936661303949617231218361457157248903446478968281849441636997730228583798324698948248214411982345677850119545114256354271158964811476839903265156124016126189144658303117983717205908852829757072905997605833797186911244631021249458709788028804381144122514831177859301655186723331681858562100500316795101727944621484523412796814274087190084058745899530765768102036837025873887750395442456757942698197001081321734865362073553711868663750273337021815922788334634688574203869756803392372315623698961096122853850624887474439799139437782411865609885136623731138373245802405466007291595096702934048832282689823468140885397159081842540534705298587148229136732196619160345072332450220797825134237410530011217276767985066950303540602859735507337324861074240008212395541762478945653421538160346614882895899205843724834393949368320734871314220900850985528319032828828916947996894477306290221775599774100130178261635568846880995678211129321474723136040998768058009843502186637106518624105647135622005576745759843913712303360788757216375403440198629268993036872633777512885597918614158791410404932660303371507004315801641175404584490750097850143602260433173566781692254466854012286834820493736505409245454575071679555782524189035473817791743414676211022663298873189387787452523180812011290721818261981339164443464463559549064649893107140581464582123717487566441358023532219524732334634239498580266138184319173692991813006103276190729096176823645948406758313768810211091448179625601122117786326435820068258245539613206942159016955801382534059619816649255313507569410742173944452381566185393811959661312613078091069421339988124850819916952836539635779600197611375039983107513111772571828060878639976857941662315387371637244373385512831191392431764742553160220417087232101558270017012318852367262288565831419759992958407321652209232353034898832879911747197473157432052817844559473101474483371011512384031367077309076074024177273815927861896318212476960276998365726342762834093880822274480676100232875892813003994521025500825310572219671090269259238074366997523666097246293057833717625970974074345615747971149928424668516230035615707274360316150068101516186809190022134978330870551966655329062599104678291147407410617564643343481392522948193986686028847033325366289250485803892450268050863980684605559650692829183107960255542175582733883539363538205184290036361828173527713511526714237667340909582635281497278073910181093119422976562293030293928162894853739927673463953655957369050400682263236750097500149720248702688613198074139026576068250394264029340192354309776849225970509843587489792415114495656656150415179762990462076162861779158405521579263940776970006493080216954101666354257245600214072036045867925093510444871992087562106387520634463614348557217908978659077838491169826181200799630130621935072741109300268393174633796423164543465841363113008533130218863455923207618626194683909931067198586229657785024231030087726410206557874451509494842260572218070455089540493133039475975713561872014552241119167214005695621874950602032631716190856919228655563068096472794843431116829430662850010257485127710876053013051793690580107961730724981067750923558378913755455295858689867495796199643802525361244307354619810230624902295481712422297988405950655988748573664113774554516859548939924319918353356869793299809526216770392885023909973663207972578953845460548181169097101439775058580235978960853111179413303864030330493048278213983156886121631359624819901470850931159465837538709724001270063603748490305554532335669847069201592827037917792804128100905119579886150051486129912704079163834139266372258695337614101922072561287821187799394604311722516224326676384354917823951559851702548196029369167805106507177345864134284863004051935970866591922397967144699183123120987559987360717674621921406054913338407339633667069611712137358747024233383843631636141141379022823642607339440008147528682014701055234920200177700772038421643443554258323654661702646230971363500428458405406451833125113009454707775857033749134915027998918125368878903184183559318354364153736859329448334257580012463470128563997459202539499475816073914302838812295970166051252466835654777628673384459605030291472739142865786025510808107269563116844465001561494485474107577708718432040576200356109283312533064884289164755340702549481032433240819651782167869765835096735001729516962270398167442462643596302331442684709015542150617528359996208993652225728975227518996831569619740385280336741257311761095976161583447098115482537237037540924413066724413354116297858570511742597900387387089807362325739080793842343433279037224590364495811668872527141857689838674732538643261323570871305094664861796044471301546297218347784735225500039196228724836117490306277802459713628617595865494149795837411702924938232084824360824548639519495473299389532946235468769183395396985406434363165198151589594376568796703991291996530032471384032947713475341692437242014639155141938851053563123047187196365842740612056578014534790666778477657261482493588594160633032554238347628956963998720786688306016333086451391705850461620521437667025328801684985834438182924768530425052644500030511841111260494117682570700869383106320818600004717509482646173987096679949011223189362706700510305844645206389022373358801895852418559637987782332874772976344525497750618520927350320908323093067900194455979707040379308414334226890146166160311077102036995531936463769558503567388182400525282178195974002716611391825217408087195030905465896113343784284968418872684444425731720267166936273144320860675761541214489211157615478561080148800264799562181245262661496929690849387560219243515087523447793174760313344130321702006215682616335262320208546660802376813323372669624072916606152616769858270055928811136489207911019633100824634054584090865744678509301979695632045572876298419748481906253495729758116948622505994813352532683343743414690133743771101750413066638139405730340070848150034203503013596678621787759826582751226493484426421171126501263714924302340523192647422128537032362586721848409166075681618324612316835047573471014759658222785983109351456475234861412856173890446560118994044424953993515376951050680457314642502691064777487826755847140049573186179982418853548737403896658045215037598303090805474355187763453506939128439539972644055116866891183017359258778161079107895066377086249983040675158364076269475207450509564974426599397319681739431731866820237799377328000275815567210309903860586221521169909772520787406569679430052124203128138844202145564696657482733343306308022000911341212746657824512189163888661376652001180332489329376923570567612443738099525188117033896696506624862663348873377902158486030693466717657739288294124893117371323037753381434199357613891873834445780116080227496585329696234293494990632044932066753060911362885664664899556684144709424407807148707327454171246729492261773764074578884798745771091649773178500034622983861174595942435743397519980679406797495356253198927395628446763894651001414377771475676076248780292186105958499316820638000456571494564100117557924401525150258029230608314867466243969638056410591753950738315813587540380463210844851670939979712713936639316820301516762029574105502666179664611997398506059257159834920426510708659351977832154891838793291144452931703036020238474515812718229946692422271517483439647711080788460430004139939944571404593049536436406420176860763315537459406278106406657940593678242333129500223093415839137216726621862655606481548586216542572707528300025554203228702456520819191163837720719778005277782125722196063292418482950782017858069221009278034481710509818754908557743092676712789245144525235486990766580170090476255406236600933527618203307266700633222506241402560339773748536069248235663883611295196680930163604117736117727963947757260226791945780340706477999862931331788814453031002694119720933710684838382400433865894162387985790522899999645990312875881452859688254116409531078753848899327074930648344605304238917450162840756056402677242985440314654255340698831438889082017506236524673382325169905659119476384893816355841535418575375434893470722100595999070684448194982830747479225986172768037324224560638081657074908899757957797029093545342745104425344753150996671937844772811141173974490335131038629156321033280275556459908529765915528375624485351613380456065351885109396562466041994423501098681908383254260037503363812389478098130187533949888839250042248735710140534836604610663422983211197803341177666001208748530076671791787624705956470470316752184436998843251318499524185261605760813686519288350914466911689525301646150628258883581556346353771641318461844353708219493780190131294514015133870366864797712672395871716570951081873560854219067214638427417149621627878738424541801608802812413672971347743931462091936898908523474314217783045935564943428041726159715330857923546048332537797046518639119367271308660970207617837887523318018295969042746946447179925766164311058943924666097722134796673176796016997286894528955349618153391427454603332988630978571347646269607530416739053029462295786689416842318043025800514549611455779410488493995819876555555046321533646289947735373369499117359062102597883747862749965646703064898518411200179859433386946809584679086610674188460212405356693474605287521790254086012764960288217154085142638755845512785656432577150494416185199379244597800162287487755702431420131120587848539086495776668130693147529978237193037295104084276732368912406402697487684330569820677245203090113491871706134386469379146257597809213558637074138656491128953786399605826010098042288902801665428038458903138114360171129878495280971678568156801864304477566925567634701633983057591864004005670341326017119502443052047047237517884905545429725096471850379430647457876307113094225984671986839319111865312999573839919292788537271142155757030323431507356301553045870948214520248314738518153770634166290941338924704018158262444293205864324045659205433877458771137175564783575713768691009713069962282596394971879866461846239663610694848131656141551560603908116206131838699931141720975850432911968302638530982003985259065686912068448182950518561779184903088050516308354874932593820687854619419497695746624876296690687374268071229019067516476705948679785758524001718680316791543469000975987201227432733070638696463774985036380607906331005749821307042146359240752505354798741380177206441226926548550632030842435902795790013921566912198757244741719957676759430561424558565662677080361656709030920473540212447377177515166791177009424842610018838318519485583943102056542643146011817933735283103507004903152991980045809874588554710915668474437457677174209651930737060643244069818495260702632647557835067424162057992502268433800411934825400427058832620013587032671537389414470081800035125418241126107253521914236502466314087105427200237583109626033520699129859226587386411757775203326654525740275306158915954508714515000526683400399897393675965676194204738713208361080488832147897271646216463956849041532051898449490475014392653566146489963409088373063504322511967186579083973984049769537381119225132016957178500009202478871442972392358722583668117414707769139233978408767692982404982999151152095426819293649105344120997831444954272682802670430798817243184166114674811850987056560334428773922810581150188651823066298106114412546153370473674176717846722575782985995700825531204250439289909527526984058710069787843910055959606546295428295893765510778276130312986209975321944704882273374337930722598801537022856906083574990041506569127747793819449819768365580134249922358764114617348952401126445903674070684788158287854312810488951506871103427206637511397531546257375693181165788822790293005182811180496638234595127200407159282413378596264480384548566085322473646261515597973496514640923407801822125297785068903582779419018839588750197626400787233289441163957693158498861910022276314318536309458902679685151748087235208572107117577717493794861653901075832223687884344880488306541763183508130013198323803862676788980584940265175728908632227335632311334795235286497655297118256629337723826695430864105574839118276063568976261816195644610179780646116531939903315770011500415342939613664891910833817290982674759232713022886002667878679763661119963241235765705922765748160409226443000806796549494722580247358255023528460554630416500458454988327289419576434719062329607069969694454887702613501827088038219237424510072852100629524900811361754998325268347414898409437998751547118305712552720159405673563366005721125373957406305903028575054810102616974171454444961107035980660728996242032102364015764703589003261971120808397233938656729590570156291203540445158823650422712319278952039658387229220658072227271271411149678122807538313762189001604768841685915356363287444861352060979656817864951835974958441995393341243095859998899913700108956595186268578253693676266751007761453992053446352713793814082211040899101843991687612976130515836914985554889667978571260736249503504381979399401949132852116973205087714686776057872989452179547471872984244930469343010018411688353470708730125030078775472319435958258578092672982591777874431112816442502919033522896714908072191225050111899791209253515002471482949692088101897727560878058374427662393664460573358777536431256812123139668634322040349996501584801919127674192446208902361313015032299421796975654523917925140684276705521246924397888661691182579593755483979599184912319277205032225151829082385436561850683191792914864075653525664367120381659111363474240937235352389792519726459418789301321040696103055462924942723808288012843592063905882806430780880436338090060418841101118279433977734482600795469235718045278053943704370410177397023054149704555440790454529995531935167714291736157912730403058305797800929490577424895787432395306108945619646863785421487575360882431103208599689485245626054098730838370761340310326406843983099907137991604322903697492672724323172098044936194510957355717258535802749314658840399563108393755132582826098475713144852453109689818373562189033257799803763957153645119600483901931969642270831023358249558292124101490050832658017183407785845400831943779454886629121252880164995245743182011582750872102538548148330683388154653747106670824139565289605456588806930157091227701051525537657103915830589677807449623614962377339329323859626487535031227963214382149314521523112556802356135081341452027778013867698550437148565765970161153340209204061239730349516777346620546260492108094048068067237798033265536471867936720322261836364362838159732449755170416981651504864013150786566362557602028470339879949059199163646493229315675188509285262719186396016421947095383674176484767341385722634206945968926476377421769415063289591380130954892066979635699330393763506643514968857112685881091905264949428215218843642760893771677652192037124958806830983014366962028705290919304433522416190386889842707074326812239454098804462414383283101461519814547047568278222191555944187328575141821916959832256276381974260637706242129615496828001279027359295592751623417433061529855539750246452778300109867401624800468639862806642430227080730904236204634558481903500188861087671434260713709960826349387145924283300307621800828898425886011746603234052367014361892409222392817684808700719391845916942212446219791032318186038799347452076362759295103897326378334024767503442937269775876261470053958591759192152106307982477874348457127220723048089912875389182459754876322735530659768313830206437842462984357484356608915566537342165847555108549225525015029072898153370099457586623829764927268087994496347820726986028170638088274032528513307004250898500483737593280250411558368155841279412262562270519829880381666987653623503675436112947548399665322489356355587449155119964511156892740284837884814928059195626990993739633633094145655100509171152463498534403930001699356805232673833935849813308390424673627991061979990787729299699513241444223393657858490943588272547549794694268998580733533726921227184813886603973116957500502993912350738585864397305823108105041635620219134743731234089869689800116816626625567924536798558235790413184856465511619432591842366467416728958249351862756566793151783232825782400757939880564379723982075024619740076701043136549373137294083488306412671312801659375402843922855772394950165882203578482694189987610114531516337546827875238516061550060509719674322611400501485371783577465168959873584303573514219585208832465985317724009886322821265372750222392909807240240023922016622997120042905548877420425852717729924562390326453953584774487594998364997264112622385600359392522918935996651998425697554690164535737145218844311526682944836222756098568262750567795663593094041490850789699125126212080602477613668605291512561893061159943341240687973648290278022844097671932234885479472574954631383514869921644971566305975677672615355327804570186209411194467667385689853594243323247399251227585993543522415566468094889117818889677975080485910183274360978461700415722855115217819045452736953391155626866407777957952280198973162250433452663176292445218735855560411092823912708626588970340177379193725965932007472462978228196677542862185165639532518371706615999068765420825337748836685060420780396963187815669794132287294024044802466041567261158078909902144080315451162285409176196375210373352243710274901550077696035566350592559006567733763609853154308254430357964116132741357731528906954416005101507883963796876910515248955258365090195672330046771681720710592839903955670817386907155660228652316973928420316490905219458071400561326509912974238461405095569019157702724836729188488822877497751145895468505609302989121206714251741004327169787126833204935343355667038824914055954595965921234098682256675384492342877437072005421980894345439912619845980859507217089688554779002233938111782019969283522047509402146158294294786539450114275455830626111545011050076456342319308669390231468106780081161659096933101436478358287920853206162281619857689156343694622613746046692788130082835562630857892526194679956271390165912572895307910251675543701225068581722400411565985183768993552181314409111607096948149019400955431880330821572677204575161531503837415583049769552574636308248875097123570691565890120904234782895951326969903768086598469334965472925478893143794040740695690938966306197212929960262505297731628655059353857045958294050848171729697107684072154715657845345450105869975383218453055257891127813775649139694688534189227937485337502809268578218955754370337707286167197974871597965627612880482749461559348134879495977731494241327353392286715664430845810209715486583327722546536019515715290613788318486873950960674509844828372586112587090647791173350101650518697530820285924903842683386029751426240083510814512802765392958404375017332439746149163286078630408318501096461297049328795195882053992502094750165657164331396486824333799068644979713460140403956855180691974442300211074332196292613909764568720550493967824052306703576036577861068051589606884555974581579550677882815035818633986339943814110776394214765758548416241932813947652913324963614788754581392384584437194026008535021510010934633207611537488535266320023180224492058356650603819610044868468544014611028058285818550006525216629497789883524946329381181365187903513864706713205016990997044018654624981186174722309107539824544981175337895146069958458002827354478185006029820916479443622392961108205823049042646513143376638804066389545168072285612399093771325945276930533800055649203135980479663792791973173553354875807834714344159401799351600298707044580177985370307506188020788954386727634235247915776441126617857138361588775972615188670426985519355172289858276040433776785948391755737093767879544113579760543001930733794289087372625291475613280363830725987485702385613313096516998105147826574588989997698660889520364845820207055472681334266968112042737338633539333953575222743322753664935012369804012888021739098307757789252162005262973865180170288581599716516954737916260804753102760525057851732000124343895928825990293348385713895653113682963521241971998585478386087674042004720022927807033873107182493548789677337873326740401280476579658970983544164825897910792909448690188471102917889828239609215372773523790621110345777374169146775318802942400574873891503931120072677837008743883739950185978518901591941127950310688012741062031216511286470647755864300750387432748900061578400421558170947982900835489081124809828298070463912830512539651609637120577284488311814998611706505413916223126275456368652690907105377130658113748256838718491428280016979921970750170529546824685611397612572583254330548514427254381955236528265699707459226452210746494253215107786045953969776546500893160085352643711172416758457985201240036484843969591632649161921815288694888341580466553638877272408535388315093928091795905029199117487267825498689882320990941394812353113901585722637736907909614314455955916440992518714159215358690347450400147248804920439571405939777392803299372065188289439800941952449057804654166816570867157596353103312735798019176637937412863857309011894672915532576847795995027223139128885725836491256228851254481738237694609194628731455625343956542678108464070294308110073963687425533437617961090003207425909270879548357712694118482759142556857517126296539177757986420230612845854863451062754227666859928096508489811385670505793008251184578580447189094539501234229374081162871369107020868112885505749474805988031718980344345057110234262081610049718997386578859629528580460698298232018248103570046032780636588335478879054358824311167714159827605061634557266271546699300463606016691094842205969738908733598582073990581848734939958841881849503726884451747370539533306612147442251276492776863412778636692804627437823749942607381061927107890692409186218316883134931819056683907106287995021068942168351015783187598715670698875289395945676225534422804406344477994776100584497964014163160115702771403628346866808517799066173738771185960109925134293114136446930657673316813079383165498399457363927621732512878768137578636289494245931041288663161128556829300856285528262847855931909385389484012761353196316661571694472866151960472850484256463280453176214294215465587517960297498252605010398767592887843488499755466995671117480944881307277257591705687036243301879234757232039188575002666321737079151534592982135815363336991178214214130724922384970149651655556026994807410864315840130393959108049466308077191521436889027027170520009965914656441261702430135163288258452671936034137419121762227725591654539360086618090824992698090103270746346620515201187642634773100907238630462615438278243856635297351351659147325104859047760310666417029347390676611144752298561466209444863663758427874308222602717716064102790165447633775376633893902127020170796784595106820453632382833791758116464296784108715706754423469085236413279809087613175130156521330953705089865576028043583451278475510611370071059257096375033509707647079439572058257931696494054067892139820256607284100675472266915501903776444293018775778756158074084697862322008529498320196107402988121650020524777658751750479442395355367146254641489381612558540365612219300412657831858376990786112699965678205879345549055387766490833160669568868747562780021919501133334532148933589536850105005935599520835539044220891431743713505788087112934228730247318745886522570425710911682960301405696412135162876481729922696192713889189602101178840040540847891553260586674835068686107468640599878869769723334972833818079550311609962805099657480999869169301590588240713167642341574820157416388896382458111623749551103889526565555167954102923625399535578095794708939735518935086131404910725552458732026063524312847735797654065540705996706302423973815911676434075299735306885064783942991877936885385220911731692625167356166379311682445197791050204015035811505286814016965282452859211448706631325350230418069004489637994094330057229282608962453707459135370333091844438590711182788750212355720269512436781231762061480353512483673840462805445916177551184964724933133550974119352927940163426646783040071432229753848610751611072843110114059139254230821455064101367573573048012424337591980833565411507542830623497810963791463058532870539124082178734905922771450138294257445712175295190551317367534562838523128798419869234101106015824866623183481914016092896766117482033960645485904690573493464563080529843319897526835103703331532835552207847889004375171210898902338001691420944925230450205309807406049547183068999635605226013954790636117285661920324937894809927618336533579080176575224612739176372665413786298907231933499098869117484898220734453064544983564267888871494351392740622944799620242451580171780768076970537302174272231009038682905598978930993539555372110352816884990206407190288802436216247899364600069773855557072713777319942292909991705222198219713438103330253029439561155575306958699179118587541916091320578584597107556141259699062680766021804501212546461172964272876130694411830648034255532862825115717664005764832117333700823149733730387892393836203216237863007782090228324253728961326897512466090581854617968100187937833852439925268619834648876293908086725280834748627831864913118377654526660551389863388679296846720113054923481759126593533624669454079831864926615216018219935371892768984883690326293185159957655394278380807995704000586342493666246261151752533126886485014849885594459474165394866439506161203536458186610479403834111048597694450384840655697717888518310037952257799295727542933721104485885745043915303475273257603274990551603827291949467075314046712948227841128481283457002842615476928973215759163216279387579565505192177501307079684732520309683511297164475437403084949489722054870103617682290999840969888895073122327842333203237050599012759756942580930479289498157758715646325681417522952702002748597593398313971748877453671941361952257196259026679950525984752997653385186811127979356199043830447127177692524458026657673439229687226542210197234071982945917211599490831230803783706851028404010224637235741036420824313815619734992592249761634529470058286353185216143238584821391778129475739473683547956535756653095763600781693493042676049682265969077254143098496618296448532216331217339722366205880720511020998075215230440982005760874474616846648044252337458365094753316113703594435401456708638969139251011600050326571572129587728805119378131412528459671111319823813927602691120636355654906221745141718760897280083474501546950592608342928878524878929942053127885895005201610055860003454107998998890461624584828519856126348692000370896419302074977678095842494922183789145017856368280393552835337959716056315050232474421534537463185992751116667662192063753169830289558107520607102782415095990261520799345793010566242359201485878777527814751840505313362541227987060632579679438781714177587528407455346942766681487719502193964730622242570908802800634963778307290912632185019527504004374399440272677131865380977351221914780544078753815430439555428442846130856110630089216817829365708639640771284669913559349980891026745712220170028611253187320080626804955637851190483639548740924249384006526981365449896173123099634683811069122310679323246284943536711272448721502567937934974394399844827198732748278448511073323147023408457482897305312630902293281170853567589003571039956013451249343491354085226588717810229343923553581487498018028456776473889218759626431339694887090352099906421862156036209774699676222725075702115473587370543702208290773518432408947705762774406507649331133298297948556432202424062568214295077197237099330125486841385003836028231799109147664783168972340738056299516867582786400715243423281821503930553495038982893375993082353604730323598636786269571474230720085379754966357400507727324308519102801382994247362470427919103844767736580176887868706443022722075147705742913456382585719115929662617761811118331095917986366709315635187548536512271930389843351472101376647348497634815171537709666971196001674633895337200453414284209683522650470143107809288340284909834221177708196648157132234080227862228707767538790647125849026227622440378776053338138316372797535731654615107939532874774045599526032404250315624718434024133462419057903492223184528067333056000755316610257317331811492623780553368024437797089246336967501375685175302446257638066124514851639377121384733620003485786905045143919637690911398109257841485141797445594938449106381837620005441581949026237694915583189333637941577313646423679766553710862096829408898931144667454093412391705732168127575427388640748939261797985564332824995121923336681883695701817075546571381781368193026600417145874141700340937294894828638407097117822714845447931354492427880556928611697704741491338631119777791057704539231696892979123964013606682044532108523559803558391045476271766369545351001995385134570110077527980604180826759546293015118559189055253154056765495892085385014622845615552558913800718637723319852163754624331507008860951403314658191697317140124831589838826752699249479001003560307686978654206163229053263550274003599265733575752291604603011109239192470093943303535417829464448419267615524271690896851699660352524075273340729525025243348472175738848324478759189664819370099233092203554634508717912649268071987550528645598335995480865202644170517326177625039184780286280415792570604270606234900353077086605654755452746658388433691429411778690778072334371202453272699839837844086217279409512113308004498342122706267430752582353976766053397923149340575021419561159685118885752161329540867053431391587270560690491848657282528131864158914100620019811134730594340358200655761563391141034522553360130464271730514545969360895938202789219729662715800003410745723393035540661248721607936679904771290697785959352086280363873150192361051061046641778555915199719413800950062000567921432827084417256517108966678173220538788118337394716953340424910754891567234414290572477718786455932771914105397163527529200649651271143909489877214433480725708652566154268122082918382400788446240009389830834941320331563403682652806122693012911076914221369488837550458950948330216218872394263047649873219507396754970419097449684672700539084098606344999017196928332488227707948069211406892533491088289503751671957044494757373646292986700649207970536856131655807159576703627293725951781227638820309342600604965806884058630032019994583749893601065320169402861459993909139404653203236357856255241219100742497162638719744941588749390768181687874784344795207220405551214628954691064115178809015918746140522556966487744138623146307500621688276317263599484120245140372231314497531064520768676812143080166846673199521362638197875226738076027417934095254045174516929460860039053298932857558913938150975965724707443666054811689602446473954336865167059150916864509329847098444240778118913918225055294744778110880737651652337463136841806892598146121524527355966295813994950309299891584973307792721723495945373341747348373844778925427462412234127424415760667182321556930379354033225743762132371242779823240529566704837482918415183050901175100519990537535962680861028351578657762338350168014084602379161405734350833631356731631194594990312617405399064826761143334098830773878579695147846289227459225715813957975320793311067369624465829973872338687806157154329835561608813504730416257801932064830997791653216822616735314006037102828638711901086987372783526466274627680692846790269704315238570540689564532141438539603368787585449352695353057684341553284181288338114611880775824803031082023512380651067710145877171522311843223792533337690467889672931336908975092365318896002976355295616273506822412059348845365983966709008397796083093774205933903906571672820912129727488002220671631165668222860984778453731606017747579154586239578066468116706594181315001165088138815762983348051102870665860753652034046455344201379411155847941438598176517965784886087805554791315404730093881620260427653255607386374265981873517181117442090873971261617787400461858416781188585029100681925232543397719495088810505902186013588176498511778605810096028495952046099497559410842008110704082663974961091820282181955546474585768364769346543621349534330599509941950765471661820508650760034450435977848705700752972449674944528862787849065754404002173103026497591572645119973947274333250678471775611024280835462069027258927465424458094369543891368872173503091041477859339459278490592720353847735383928268285720064005047360357925241638454754363810031545944213255020839133230630489756600924828253213669901288906041471384024286448898082866597820738096033960521071730076275991109600777579491325554990544544172767794075777917346275147676358233316192692202680056774699019089555040107638751092897205575140284996347663198212518368490585145121743957437163334252216882697219213320921423717991626448398532248938601265793289829350117902771648266975354786383638476154471372545498822069545424458436554831016737189281147023043123984460472714885980539460498209452621736482538723929552182895950088183208039366736332151981047205965104663444428492860283405200703857925350701152330165517535079633767441196865884323637362661530481220486673639300334516627572503642370724689863150435679272580695080671680168175396053239651070089420870489312034152957423500665934681005068413817402995274694862979788203175921015608282344298914548402611374085636325882612844745390465309205736111925661910541204945449482473265152478881179125348248403520851568738509223528108990304923423448805213566291642252858328518186438147046515169007499818336435753356384850676580268049451308215224236961441186705458420178008864643870454071214286743866716622980907026132151503631810317929620523858562630415838347797911360416377355421533863074582053991845376789282657039939061409642557666771386375715628668937840430604657977599419017958766361416009384330931409465033781942403386588418257288391846577655127581847793736583504541783741151344934590720663088418651473582318358344274387883208291905831690366027596771700022903308355246295889221672882666144569506393607812932601107914613517428228829666649455755626730174364801137344559249135143232008459190866946166526362765186380194173016521702146689284065340608288893840903106082757642228958293462810505975608258743120266219813049927153410784251789084261451974406305462340222433897769036066366677268924480250722182519583719768590909121106110795328696512018721736087395885843110921418258083823201378851435819373874930486490076015012324950138418033131263313485573015023797740766428530652081322087151749059656133932828900590874545776527252063418305203110086630412614646587724561273515745473443119726004354616945584445271739897618716879816843470302847456301997994855478255669439122993098863697793877121240995078574025171782849746889551669273923355245152461104503426392574217695211491591849626329488199793658446228919671043229559716045723203462987336574188989186571502850505466987156197527888791809949941283407934425937102743594379883545704560538536735793023352816532966045903575523906046160974991457523130481939235089371564706569433393438237448951047069472835263221591130594856406386996428508632784857266595587163668924272904194465447874885444430280171599385533360974730788826450314853643428095158190739690336522147332000512979704057989991263902356652884573791691635897177678679385580496200832747747947640420889649144948962820025096225752383619672059165666206936847223373313521770944969091564131916464972070972834815573890230376910088459697192007270575189872797872563489880813103020579393708440689735778404465819261562755744761500546885026101531613507370433477685841096785619922753863226406947063442512189934838717483632516064392876950051658392228060244005114891595656758746822350452535728919422537104195183244589370274368370881891667646982875215667177370370233981311530853396671470763620176409487467513978246525131043616431600679395907305813750759385975709518141171329339662650299805395590594223249206645724562070128614946596953610260770709639587188358649410301558623102765639511622797330824454270882386366097294590904188971431970527256839958781404026769948784543508100769518921372400934558810735414895475290057098536930460474944410925271428340921375331288100465312573813869485749725909034614639194086815014595743531715555889034395650702078003675446723879580856080775017819952081176392431581772311428234830474067097524299836599881733902804304665408549859535043170181912531001238955156635175517177388985979560589903459020888056646377081559669512023926858583060814256800842795350680384130752821465135548702001008361162295294861870491117032415689338250051285940336779866267527500299252218339548532780117108307053360362987267220208870768000698764612268864260693607616863992409559726063934332335684936551185261662586289791882881584422400879629026033421487019903277256575896066227049521920255924591851530109528861718234174904183565437744873933742851753256656209001185619822164358220752175103243337861477019097560846962824289865110724707742923001436927992207881889985859510324194052922907867842553710271448589734610829642947470211204983408773407569367100652277199468354178911437431795182841726437593648440579975016490892525067803708017204013830188235750099186145613287894838614461596185896548481798974200675703323697745308760612327794868835361214401279428291705527768237987037119923683179012298173417201863436809579185993754593576429804112538865195138489068918425111848229972434275680954558256576227310725618052883158076005720445936770300944391073700698046001029435409036996983647897321438361457758634290568606715199055104946211766501899047093939294689788154705497163907881292170791356534626326281733620497994761800622292837272631601331568342374839645484340053812719399420326914906080462924975328585158096237619087638720240220361258224094606995901872133325015113096619833861037359355898343894436062994865849717286046313284309223745982122146996161602060094357527778264943575474914673557113213793048982567617728970058944019020909016886355835570254866424331446067989886465870031424829735714573318503840969973437632434859351261980849143577290568966570878800050021955252014897058616286667544337004746999576832826128247571834003578419587006804512137338831034730344452654149863966562948775842452513522457191947589277341734388619163502647816532904152158120939929800213279861824584700229644334451717731141867741909107415006401856065665635216252504501178864202149349924952096436014394566585914504980118037892361237591194935954968987761677659732198958771396339106775839798466900193194010409906349923258965374343482838345201195621914987394671730930607958305494898747604859065241406694721177082913965813934731126031861228479689069049010837317124223792221563201005634967612548751376380023744139912163675746200952159412976021686019882479269481784538240087072294521940952441945839304727882417594762621565788346710760294739334755068011204899008628428121454872684143065004819603322443072489947419483713369895476217820495466313436691583764276740796844888982881837101132825576212882800077558159429419472479561353401382550183836126335788471083357439758527762546491993896551620094793077124784720207071117470881042608857822042083851903334944085819792117434278969702307252490153465123917195817135946674544495929375643446087325476108299520498938733748271835258545428424503507862001003020493443960337606814940095425185532936632542880380366518573463827671564380224362365687254557525967781007454794189358768110450800631324331566528751654397644672726026801279381380193927326543102602213002113235621233946721244930633560982113602098327259951300051460037169482515358343439265828450338501882301375219714973582571442929889624131987460441580316104062070790847522736669762567559151397951888446858792300035162714804016941618434066583897041801851596143337761537758795071350036823637092466613090199139097865048423827526004618034244336305190062758392655298791972821169304486956447413293728654818088290043438199738586886708399835343430013453209564071806319573024525618194593457421009107988435191614839904484196136410864821450504962738016415641200640934555392471094019669246150430479147844789200180417137624131724376495357689245587870618708981105787725124487332142390739358032841068353103136391603976791239393991828333383634020465155725853792956431521827225805132391263783800835791277620237803215691976680317450230496849410111744807536242394984551735179329616408117674679248593693203437582164856035357711136620765723514448099765045781042738561752748349980253351616102610447497400374266012882917833451471045333594474185565908136237201995614541812399545945748341452448982603344803926504866129656251607434786090616790151139165348632721637713151972170012392928896798402959213059872611048263276121437562085486361115400648185660911630347864236203163062039625047595635663521044540568976456706111672812144534007582023770289578387457297726966117008732545635389351183986815959059034113347382225473224487932103055576081235955219309833712971082329260484806175222242981651094516080546450112596194864988585303933488307954169165922122371125123072998531416587890140858550796872921341179365196591065702287293687354117570270806639464961326824130205307474897998068384586952903830576816272215372992905048968383290828744089501660820856496923580420690839264718258788003296061840740183845307859690388209310418577931750900682941810255634631410139950809942487514227979757935526337207985264375065052285481759434962818351474988167631497947998958328796944658251733435960317990969655435806982369589029549382218936950638833692855475906459702070082834458198521629770754522800558686032032661642426910772829207647549726357570055981153189930289301336037956157307017548430218091054400368181768123451093388096613031554117968009132058215283248686822717364130711897344109376685479743366946104537241578049420631611678034082372355167439905544149846468305171169387413821659710054048146194695790263680029814092454594694668247539270719913724846967977574727983343806796739758807236384217606129554215965293897811009666802140316919350758507536427884823943627142009373345904556804178189924581980245065923154158362541529734166338044240720509902143043041168280835202278515470782532083538138401168867872485096490030863665281783222157721223974949243443302955330831001324322769464109969778106606370334691407124533538367053523913677513432290795680074691019949237012178340409862228504964799219093348493464408649203301440452050127247798580467491790782818097852069947473418638718726011521786888989998108443318560531415535302696376813144368532749416386107997877225022737645205696125426870405409579624559367277276755331896030244131092221720615101254527430160535542245574031594363067859689113315009127820617639290119122296069821437674887158847612126679692995135751312044550889562403028981187243517674529546599110982570410389107870716590840315676481351955574585252832895125701303367571959332086256880578578728310171248326975290480459541947257170700965230176294048821506665300155030031498879124883323062819369139125546827862640016688045948485015633781197206375247874651914908957999555564105304074966570579916030505070473466024849623010934110400169078405659859810977495908668954392159690611238209030360968637631867254367522607078765174871402576816086224479405559858933571592471906884716522552738265051892302968144180268810794224733841859494448488556941839946045460347872918542295917693427554886991240355980124209793011378568196099875984262043568779501510436242126160050478995140318346361666460826230811118906193405112696680723745586034543868488688131940393355818520366959567764846423385661487810434709916728135266850826006077022167615820017646356709566437223415556138882465064014392174712601437802476739412514644974449240185672597898364532697385360981616743094253993488269629623013034409914898920130439690695954749687633149102323763128786538303134307915693044797809661094595121740862111051758726009029693142665197017317592525582283129040624545977484114084001353749872918066748597170316957832173805875371719979743206804830548336869653818604282671773119256918471026804563576526372769819269483159074683846440022839153825577976652985323108128166237230162382359682964477338859189877934988137180687801424157410130501653243967884258721499787710714343536526882857794486405777571275620916108102805534538453248091710168843411882736537579243804685732897282192540777445406517212896146019811818490329822730115266393166150061652541576770173855240915678889668355943889876222571254804359297784966391393341171906376400310993658482076224121293538088716105492626669666658368861985085069601933684998859427144908638087841458481329402547625925356649765040344655586756268293019533479689147419412268213329747103191003203737914940130132088428438502871123785634405930877181659456128253562648180600771182704271729728097782065192724932222990196026573789745099930620479831923305117434983302129429761742482327451374483129689227321068214011740989214550057536078878594773807129360287682365887135035445211781430189103823703652099804468419384645768459717123108929787505561978543575671350832418963037392184384565165105636732800204981576753759985610363131438029569015429349454087658729108705382391967914955567162106952908051134147564255335207563435629334365095847145953783720115485553705786486013541266109940095835345095557367148054707134459447652026279186574419844841602136807866889734106564393725247025495460583110699711178001395417879785686336159329957715723677510455126816407383513526164754765983944853058439948030097668580055503187905505588120739206749333125896122496049207830048664201195703298305139517668916437981628038119918647120410546740022302228043750167580954362040299459433986899118778196161322341635734493211179260489764408624293139687530262983688822933378104810894777471058466932241282291892348148848133069373747155136145323860231617768693812278217686868340351547185900299789847896184922168997857147909339896061604927271676068387780644123186798009459191712499959515407985861980823996545405752440931040171118769798488588050609982511308449853020181258564552733748809501071769687914216965567722663568197642042431219978225366883841969073955773072319873802181600475136800601418346416813516513147186450422422527530240070345041276228907522063261404642925791348288988024937074108359097385724456266488221330792714605034279797881334770066069477258476378052703749082430782595354530930036058603533872780375837004613792656583822965754409919031882952560082448134442610728698294121742163349862619181469851192406879035350896682304189062025653695448130538190882929050874375439860284959226876370396483334140956874622818979583935300627704771240098515621983112696127551951836376240433253690466223200833730876441993584853359934064420805024704365717637703306935656857294432254548528297941035039978528387652829885373464937086217606708423336718374933770621668168359131367995835476541388051365347777966393681782602731285660081619711473308160292970113772171571879544033738632615816263720734904820037658600939066748090610663987180791849606806549895469843792067846735502342680118882983174672086074624121909973310019831746198034303292563493197740500565843112279378138376509200641286668232435168434293489608619665252930556421431906095287008297394401183336331611232919457274638663369096147934465373474657929708880680000856912369061203903105630292766099502569173840600473893985000254220243810086109784529789753765380867641703142866508855517801769071364981737596075239581757987890063193290695162545397290540740847256586421842671552365515920928873083379948054568928492604959392972811687767557155030759378824187237207094903288136665290460809748324424802755315484642610071956283924760158364880586054175676210258832291513825957679740314407928764731925193839198925878126469526646292403456423183331561882207922730786659246665868073277022874847303377908723220712136266145330202678680949466723790476303862653581716643485722536871586982076814613645594249767853464847578730220143434967585247651864631203177438646101162248137762957007279829613368432918251582830615726128009109325401205237647666457018455282000181354569102886041946469320770989152098736118926038370107720916338338049232213489057368426535938941962719725953984664327739530458209495644185607354128203927972378692517014874431279381353219114869447569976297735038908424174737457357379551338725879802073574331039981909287711123988829878098205161642883231467490583502721166828017269392922429119374832743430941584255474203244188042840057096615374732487190533731134512924559646083094514482445452244316992771554224381349853443699967170978824741100047802766743033257156246878688148796119895747378302293114189060173208304856406124735527905537323764081504410176004869659249133693904319870953827417431482246163687827567056852812943694476840390649479374743924506524190889242428989882888396618016250841816554956071185500455423484579196220527144781168064727786005345688836188652016797218096339711214837180225168296446759195620806174404129695961846361090927014789618105781948270283359195850149132565292951518506232666131855338696313104158767177006284325313493122218454163470867269917684889474742978178613808354773740111359373200650803075787661683472558436690542110369221304421170891462193492797674573594001439787688520390055898802067011912365701140980404465005652653781615091050537830308238642216516102089189285503469802935615177722938153464200001052970300470588456194649097551046988950153217507199726952432448857201282449203190747433637134734088564455482519549174520447298592873306281909576347296822196505198387784246978077206209916266927580221664190857494954694114543429085038098936884134448976036095968418019474501485315594005960946680515183489571822597949557960631914990398129922080096347958126769439880102984995833194409048510534014113558878225484723765121003789299179505693092048164915128856311438274534058820888548996344996802682213021349986240818712859333485174584173961037062365740200338674591959856365361061159138695307154262411646901157004902210724343781655504327385672189340805693951152747976424876387656325944153879508835433058523523749486393729946958517234641657389835286692462908418342975893109671340875879000189466600348344327483555549890389817008851714056979430645949364479387853373594991470888108457883677268589285354502931724549768549403151365699221400130183702585687922995685420771367155301357949205416848435725630514054904573953140375756149476292241311208258291985738730822088625504632454290484390495946040638065011978134574528818416692111211304595856572262194133427689829989019306464101837400532908563719940710722355994440257420237324630218041144852556082553636552607164077131997325125592867297886243499568488346050069976259159449514816437127606086831672713810854329827948106542702044614538178939178976687772792139029406743761028291433244994941222258304648375543745889206166456072807765731905166792391506777064283871489677729404108736559950290150937189489693152402600937777043532722005101518399894824767939603988452650076940464503280284756516204156667733468449872158759663822967840933983331680377131854927686921437047612334941001636563475632965203816558492314583695818159030884860743082635787229360603442752568217604452145270051600738119676153827443356628667377819135721719671838025225478413030812143411804697426040776862986849605987209967470216076065659920411086897434486037685769350243740636013221746192575280086814105955563108633054665671236274618545163931060080908970486804017761344650726590020438941057095878955093545007243194286808438717935428539707534905156250170513545733427787087069426235940719275490374954104226543860152467234022317492760191185846079606888011947016831231363042612662819187865152789872164713776053786456352354859106646502623802887013706522241167323392067443028130450648283729949743891597934908137705805599360277206737441659495086310291209721535726447936634626229697840578155540305185356747323684655409465489922663530263151265850727044275606800521998694429687854894011207705127158205528076750351712927369045280226734894215101110010499085634670977284916258476595351547984156315127390356347894664958103912283580559263597668702419541480426798267602082883379997529673645916483480358585718389083027148641743294790004182717529679322492781884104645460121703281975340603486936898282337718912236746202581499169807081814515474486598799859748050433438875919853322258302851333922792843849806697939836742636353059219027074733436395217152792412621814541114541343406598848125666431639407121671588892012962115864162691002166372526364675676608635946413253766224444449610488107515229889663368545245283055833527599926533380085379997819992383724307259187776350970297380292786220972678753470240225931278752219885340219179850355849522207475377575424963425335673159528902172711959918162391269155178284142677814356666964006378683943912835974043072468995133815965661145756631965024131267566273586766118328717317868143890100939398413531333023946139869301357236359220847652986106879230653514682473048647739525107982188000670829358689802530732160878543665138879047784011698796257398065991810336659430360089213102615061578182203225648832377495778286205689874102938009022063111544333297876146839806649953830006050350180456444477581409752785481977696678469806844021074085567703269716739723598302866057981666897410217215970995601689603632368331324858692803988747291098623332916406059245219264179353087569857624091018752725466708856850360597378171143641713462812259687557467574008708064226047723733890538384444568250384251362542616806770623087849357585631922138824691154644617603584978367959081965253937882740518859770548440130987457731908781913518764914314939995479396917922207170079382913754386341430324254832075865965550333036218112037477371867571418333009925461557966823844879071296588601630879678244993732527882881403308189278730218720351841171427069138134723537321555512458380281224982430194070673712725448652622928100920910500694689162968667551272424484567383979199504428818450750323106520421320525794592893029067159935679330244109075152182986748484119888050815826367277920542960998570531805875899236392319777957515580229225202167372431440046440754335510250980895143588040491848218202169699612245354123521027724388541198747170731648159524702094934229394031099092320611511483480375039789800902484207737902878966488593978530176607172552070489755743190169625858950958551451700440462652523988448408479819099395721345328883995061263203219702928559898500601472478432137568198910869118431583155888425482390193514124173580649699543744905924006377631669636198130787309127307298434967660437669224478239110416879613314623471036592125618924011647080377613769244380198434249449904159661499503375617404089483190414281156531742752796185677437596311300297836411588546892742933208866957217473800967949590446856818029024678317160746921824970078128304693718195542024281812676003325831749488398352328953013708824437455663336381227415703696263330342348380560403923690392159401382875197398993509215875134453299170293436991907849354430579631609625532656486825945333986326097130641920305302099024081833463716048859422467538195125243885314190158735452793416027317676043418054282215009280763273901845814006379948692821504522537590032814158434200177233236763666308005326379024358137528661239279816892087760701140103536095452612413510946503344412961732398724252783346935818911402285110048238669228122317444666835877111017203347745180085850365695744381688380602924073070772900035136225915942150472838687107086355041606384861522060387349689230756290882950586790361185214104693551873598074542087653288998434845553238504441104422585984939236340521145577685315414441522639804382950742587331461105015709663015421072550829616583256804501760474938520857526059185192235320421601230905914605739682632735033988533343603002188628978020334195692357130607027167197934019630514848150014789102891419127090642244519930767049783742108491624864858777224852348519363173997649000133239758633130449349663365218658733846584900642631543103344034465196836351450187696328855151329662008171882773717916697268805271395125180472986522683093468367950884272317455722269256218529284925878534509472823446301546694568475349531008289898690336929973989291504734340500427152425181144767716620639903293214148058206114409019587295043555792456204422421839867950953401841752935023317668048794938306176833067656114772263393874508826897155379047469514799290081957720284757390355883179079580826665877159521511886043747236302160469741237777391107972020159729957743844824973353548345395853635304953475129179700933126579572573202000880239592526991858064166547069548671855115134250086729955329852498568206885329662461222447194883725421665600803524029150581506365788929530019864654891350177327560247849460230326531888363167604899347085705370540339272109555243697299748847774487406277283437985466333312788000633068454804684666998955599465213953369063323955202931933258143188024148574765634721061902502634402455921066903412732337812511027792192269322958097078012558187132440039037249502075763553985630732000763530634398162933006871081011099303513084853046874696608325198158093463938153382243278040608348319822362948687286333236250609811950129129534662975681561662126394089238300747956117129044834627464848217503508528462006711260263691666913101395394370883136157076237396189790507874470026439939269880071484096169585578067579161068340013510833490239090358229182788061602236573501952496251254668097819200578338044455104731577140991922438425542483195881377799882678143663000429499444631241964099850779833104176569579239899708100100711001596055331879185362483475157493869518652660283703024041012645512507871675310177734292617906135916840582853608826011576038605903161215687818445625831827910021248887270543007767467448728316953011246577198447137146039314902641682794264912830751019276365702760718437282276613937102176952245479400295549721403881069651399131619738351634639648730944804359760319742768891095230931397500968853011755028340003495056094867000830244441031762892298346963866099381333252973557780161376436939785205582516428680097642425485337679812140603206641078304783292914631428731752639472984148961303719540527586446948157602431257464850211350423591926726649405776941823466533779176570365717028296060613072224334413894921202709866683854523491421229216445124970965436999431369962908300594330941568947569215609215495117461450648971752486553150963817371360207271964414946965836068401087664453266498057367998638877949820156124602294240505944040070001623894681055337084366533434442317654624557543885026344415110624347797853845783031429024838312679996964641310411546964362380935439791192938768430680017780246374428118320157196649367663296801011438972299887253561718140988872269897715345908844370727905005787199433409173789789768116705496890991061197258735924978869722365381080438421458641681126802036993209285545105230233972580592723901615284762415743505547132536059779562865212198426801005345498846629052128625881222115717239864542554399150511731913382791908715216832323575238520169991008107590725862437635679800027002139532253078670701080029772710506079904988832384894973481681314022068617213661367972956890214885162690071382158605922803538355670267183033317828536225159151017104840418668733833092541954395371338277116506148857830341237182055541379156718163368384272900285221965345992427771865381186459387873844505859500575601088296546524003228146026848076761127241326933292132214979737691824931322151212453857851259780543125835586617713473056947570900978886535983166705092869428104680144816939165586904298980585524971506314773571219835046314600166782957847634297294805076869077572162552780420367758010542067073998025878516636148232291206380516645686953034791703411467557745011516310846549572955547709586564557935006251810691430420524278036898569793448226401236767850856143597934250799640396464383133158359823285719731321622498560402904614602870721261877726357155307623909869862906981070555524676822089351641927961430346758620882700654621100905634916184798614001665197472294198572341386720943379509054372659828513088002938961591025828160021358643001977779840165600229166316317545777105928145838144114714013589105712288956397468923542887434205760101881241271474034182510887811426222867316272954641325559348515684822314501423551463247533445563141330295925833429156323499309216013243312279436587582211755141233232539812148690291848682373602145672454332042187062437536898580333059135528546679325964439131573816032286518122681868568507284817807318107754086018885932956400309046536056982456981348037426788034357827840200507283892979921282615115987262831510022390237844153060916698384987606453741022582748864257688676000671435550706710134969684857172532246480269035292981855975894031068629273352642714351323893585072622013908592201380410709681851299434809057074866978097183566616402585175973617775601469378103348440417596247728934922272366756352559859306939013252402842981853177632760889931339628067999433130615279496865722926678670749721961305303241488835921470626043373633662674989001176351310630421728874409656139416806054475149777218977193939278500749482536905225333494316725596620605186587981599896396170177640146444121733162755505031547045970263279004141034402551996872316097112403312997406685719137771094346108773373421410043773829748497994036935011639086091139164046136207679574503648251300232221035110345320657340862818386530306962468511021606557686988951626196684691842006922098784526674379133583362630738042933727944783249789725807347914846090866419486314246177211125995676932425710293359228145837815306952663272929632260400139077390183448738323970371276202656785827884964212257415772536164377383959633331513958080630770835428238882073776334592070489703547512381076658030417783066042617402863374545419948590879245032728756285035612766037782121082584927764260103663834489094421383418474991068367679839482190125824239978558087615227089657219461317621811272994728216891925655356411628890966414051888131995457481962551152104716793851024270751682735785220246567912324982228165393863503803274947529487029596635010461093414153449357084486005201581707177451817631459330813235826968663247730763658924987065139599757546532295096346032014992421258125243071213271576563724902403191659748511634853425473858334928568153964701783308618284351068032785509643023483788041937359364104545849360006118829140761919856991839499630900903965690469602748190658319098400555603094530703905416882327767117161487831442950982704013662705564071869393898584224991145555562314083617601842536736466454025769458759550943375271371731768462439489351832124408673443584766113171248879629772453252546672273269085632750973429260500273575246292949095497250861715693430514025438180465568189670856441697514097223392359297228015831626785517111527490482281455670606099321900408855503289612178821854826972088327362441011389745140274787914054860484344901780373555547169424403878791819849640606478760572381320755402691322872393137827755787165639518839557052506842480733891227213417726236531804363671912778505522403705161535568982237529836886854393990765215842993268372959337774735531856388539823301116065567054925032254683296040003217237885942633516169092184238667999205263870336929012079686728501689935215732268427413108283967322936338850585997836270199075868427529829641232651794032541949196416431896885739140433856699447472916006579132766922682644886791925799880789252153569006758378585422746883691244779013511474768686859921516294534686399962227842352368393954099628703970271984765405384575694934816234319999339193347738076084293297060651255768429790489218085851917911533425865095124058574322588096407054239464120545172637148706371544111184882174180587379704291583099921115032891609858215744418187035247930059111826240895708852663884319090637229783308782284220989555506288973574517132229651899734216902103119756594547589859473492026128213918837117149478019032839004550937597950480844198017964322798266470403637387590419933575724005486226909809178311094317608091874123379802864554080675021810206135367625955474723453381982659687469663807822318139415050403570264560507029241880791366459214157112056588714467004324536223139916668771859474611982841702259153374120730391451303132129395594459359474137948961882528522836368171560239417137927956305943563394797655810174980563430997374643437086850156928773495466557268422435724023018237760147098921700047231226643968335933605382016657918514181792171990015189381758495690837271103113125575541875445055999276941575840940000319276097028525119457794073558064491780886958402644190306625059307509920580318630092214723192712811405774225747225706586896707259485145032177474164133200936517075401433701441851181309523314292018019465512683306901588807879310462986881634151879278730631584297020458903948154910127222124191414819446756062341326054098115732507962609247670873141441276434384345016671970196853735847465784735367727403719246625171437758868115706597201873012969236954257585514083053513013178582767640740056123385842115252498327157689784354138034691934329417710448490746611607818692604343605789743546985964695756722548713968542808975190243541384832057365315085893278129499618459582925546778104640360557365565929182644488016051918410926056902685712335763976338989219852643509041449099943063538420569671279339684194984056632768321962802643778413942254384790442094023054540103050096227180238852572387001315819594562918028050106457915715334980347323247125766896956170637561146504130917892406101218000887368874236964429268878805575626853161905745199593780168004252182756830194030331700083659529730835189619340108910140366939803439594386658752499707292723117459234964407497911109828321076188294952534305666084420457671815160803444358765832535122009355447524932179241413993485911296496568878133230985776795108727498838622222975556929482616477803440198906465077698795227860447383007931023661813599219195463075941937961580929508820271996014979203426750956446490600658317575916633849050087708923767989697021323563253409940350019244537616526763366599680970706894113423052674986927963258240303439990972190465094627293297428408554352501692613204011310507740194586339574988773620907598794902384945117990795146689940937575440767564010124716278441172167479412565306764166022788157765873013966546605026363013069400949823954554551178297637125889339743061495502441139533047731762892595618014395774794092988807279052403849503017543980877989690789409514295537833794909170343782478215190232216726573481792772233783547404558993117658063823781901639706348228498711809686249316508392177333786497873476408156538918476721145277759817732098311861418063908611411627898248301694120927582323619156807141949171826069908146833905038017758185293964911750168657699010383380346881356140844321503015471604485745834201567228022712163792749140803624933644426007896385980112816853326086681642116200396819277634230367461264667067040823726660902273449496655290030143814135964727955209541973869439575646376967416241396648118441611704393005913437633978536187755273147661413528204374149813715984950122156495497530929450134834316057920871521416782092140062555535876583923078119009175939461439135500818691159475364836483584434052304038016996532116270244729905912892578827269057972346771402754856226445959775159110627644624475101228070110750172477092827104165778291293024887617615480085642287782946994132742742011260328757142936063161128933036175875228048709006210027931530576316232912111098539906062846427069897765164124787688523833034362614401590830379620940284235442157858920399543202805442415858402507266662288028801058093402512302323302275465054564224191547574654290602293596132458459227065661849172278117683666045272996658279970874003943205098049061534631255922872655125116199358884805486346291073400778034857993262360202643373029590816607329588913798208024184492451324311180259482767405253750889565531688305126448599167494957277252143097128765596157270355773865031451119280595818769182432604493970696519451133065190305912823225288817263401418754059204311283186234243929743223800667030045763856937299358212752446296339066785330445960320425357603776105077077751871395634230283371883219101664224282095759051128007675732616375329033016735997994277648663437210826828971156436314876707903063875259567739986589901278485026467466812138104637160003601108547162270247431048244682850510389961903213490141939900608844299694032233469460678831605758839870404031771194261601063446629633906790977834156949272045450233888134262081531243707864519422320727306923177156674287178125412034245943661417518007902979708380217986605835274496091341766943445645090193910279606602988812916625536989222845826000758838281013984990665995119885430760778313147032757072180291613687775517418165448756763355383916871103926009956317776105558272121466693309523975070182408233488663248085840464587537648001324713522767633024005201533492597649209649309136405289746573142204838936454925754420659009909895816533962290721015116081281264438738683476357504998222382664886162243926491004311458607965442303862727720184374906284059226351205173461418326713028608219045811383759667498083007547184480218321099770581392900521482792811678676920811772902285016611815413814835015894513320973095730793873355044117666411671660503027315318990743395450087227139848473158867275513161301573063335889797582101055636563642797705930448225748119526437888077374520936526918825718684120036512810109560040395894757179667557523846485188495489404118162511272622058602885765164319610937305624207503993837747791816956150125560156082605161282268813956139202004551071418451038765445835603280726402506451767024680412859740027604001009045089393066722479711189793608117775772066988685851098829031668993592901615180530235901534177958408680309798790027566508352860334111290006930717451821014737415164542441439590882480021198188661684224392229153225356923497004057660641573705863533149601334968109925539909196503779599615558627496370059003956635271592395133065040950370940684814701006467117276262856298234011471066893779439473358326239622581962471919419815194460881890879774078075160435342762668253707448044303953949762388354944390538834738849525392419184445685874469131632808795031036741806715625800077580142633904284384224036981825778042347531430585556980802996348582963364543944191579727065962426236557487343276583847006679102518544939289571131284935257160609105045739854503570706912077306929842812388741292592149422632573523044917548296759587921597204559995507842212468460727841363486620515838867999994454492185370200653310892306695019833134445489448739578605010084943215548866711690497383629065765215155402847416458776119579121930335212140581045495109720474668787593142896518951209820130251968385260911970727001476430550363467771238954581760420079056368424043491097416640177727261034127757860717351318450214109773518327299146550464582437114599825001060146384022925538879284301895662811745726532511428558010510242225114516503014378375890851327331951536470844097672528154805640494546110705165197510092725698175997293414045123502393896297098542549420902063635226496120517732254422709803353726002917216744660239261052343104212427279634028301082931250527690962002546848758725118528002070705802588006228025808405702005503933391979039710349981793092964958464472619822887496948168114628187206610008859090887164521489067365129613629076211790094304385991660768123901904663291549008114341003505110830696416167132662013298556741604968688424255145878135007062622668702334399359640504891824796912337353193853406910780660256633709455665253631920154175377337988919244034190804074001633574614579967866245506648411330992988694586333181863543585723616535329932562654001855063499528827668631231650226118393333704483088640904278622175362025079207974983046064391837443461378146745001144552278264092443658967867876669660261621724090270507270017716654656542888532376506101723051735618033803028484030482324441404959390068420905905134594048677987984292059625973196122909653336460776247367988932146837647155614648857300995906538672678975622133673855992590840555616306217999248452045277092096193080876082295771172424872734097710133414679238293883757995263704700617560665307202020813350077403253496552821600112816559014261428819065464925274343870590546455696386296895638856439355845788105103046448174484989331057080982263826532169931756911809491033191777301095521077916059431028564092698051985967741472705118895641003388815549728526341615820103777105159680908096476481166726248538722827047901131588550146589188338936646101703828566051636858051769974326782006921913430623615774800830565845602162203332693747932385283330860708437480532761577919724927243233307492047804440959434656331749917324937309130086865802481179444582900142203421837533225122726297768068922893743414150248501160160605746006055314800690956787303976222344296964583421072709342250990182233974305608498218213206020445350774968865892706772252786559092742386892422952915641630582710404080948649998943150792155020126098849665204352439568757498469822083403674842175703558620555793704974759543089656418953858120246002434691172734459484557532563456819840850447147115110395530682188503214761342554133730649459604484783695215480821814771369492112694411579456799437864363132324802140908273089364145725936087248456583926702255425538614839585697010748608395226180882112098576626270206601284818168327607744896479245028303373930333150949071734779391989732001630951440422486809197134628286370493818559612975869643632502472506334240916951511814094140729694967671925386566004411766586595270160843686843742006181416154759838081732349977613572718948082372087936323848550763014051136776623108794946399152603521683524921530806939753206967949046427384580926434127344079114188786369906753224738068195855144440016847951562873569913753360567399965842821094180629284399339511477802319349773270106906830962016526301846543523521861937629166811061412596067211982423170215348637519855614187710401686221889134741313305676618968740341128557136985315155297898118770364242861612160021528802336858054792499969266366543697226332589651616834732215244690057152815139453742798729872494865232763177513517336423165050881912526200602614242888315804583162910671828807783766743443075127002162345191571694011790491620227937076864349407475736056182172442320352436435576955830443729744540200860945238462568393143867414756830135036963565386052381266809385527699800681318848287134868485124917727870460587478720592023461283367569558100686499234490055420557689514992984994934369736947993472948603176209235826224922767707146452632770588845987716755689766850635024579549117691574579368788528085037093409828030543743223764494276261386448435073593363179336221672992130292800114779808835659427936296041042235484841937622811491622093045110283620697052256920670287011763780252673831532912838311731305287627734042692711561780349075667483566177754019552761539131808043906515394258522749035835789073453875519732495020077251341974229554280146024889833988572777527226822808559296717567536998386134264838952593597503497937824973463273196825047109359709385404982096214446895582193772985312509617510621430446989830917643176382188827352967838820391616181276244045913814194218942319191987211899949257904691589933497623152801149281288460266783959448545511240829379127517977772443659046940287069281412335604105993180268378395663821970245155808264706517091030967353915828840840735029577917744248160847822333291246603752178971961736247123808176757559374695116690562372097228527583351912011278603961402834811168670853617765520585039940985935595938900427948668083631948908666489450142731407833064509000224415280954563550415100372675316309789254798004240243890615310589587570744105843016993441752283273529795086132235873571432744122732510411849982420345611243214268429108286124032691241013224195490854941292062321145178961324403637186690201882826913635733044001072537530310820346993741774861940766769967699350449554692060809658252418949263892975934958146532140745872981070802401987526204530268615984214411872843827150710541545620166378864622389988411308904641209242474605710288995436593620376728589480366876491907146341842349485954203855126938954421503152269552985348010586240639238372666726774386350576026664576868755816189346521515298453825004435346936725297695825116776829576307905060313492606867693357968484732736348308083029320738541500551590738938964208536968542883503578842275728661607559766560009066322409427166250556326600512560392317870653563263906187436783006974389066312384016508420434632011877734958575951824575958182802173749657627289041681370287357911017773086151904635012197988933673105683956914883108199107935771049410415642063914871766862047316323882839793587961707442779041741421396063345856578646100218754091222551880688406095995666365725518286004554893194892430445366525744043976375513092108808659498254245579975610026682230165443432318861275457151970327254142275627407817839316247798516179591087482366332299149784575936326502514918936825798009941381925026005500535491598527962276832433834752243773214584392105706315502225855340555991960298122077552695155964980591500951485938636558996276925021374180968544792173856567142705938404722540388519899500637371161854978287376760598157889631918418251863495642317967591927667300595492691472095455746894642114945692779692514131197875717281618799064701660342599628317343060645997702064043882758758469227143976241170713848835192275241436008251554212667113791718657803919188562185844608093951408873901803438329080096156000716447108256428516394343744510201055625071025484961781099037441492639705032982179578675521504452874336791197190187402506469328749761066613236165556346650297824975223113721601065593359634171526748155727099802784326260535606807015779970905871508057953189577664757097234596428718172489855288860491134480049132457937371815723850531754782103989317113488143585242940651066748294169446307914293289106829477080370215497701076474331272043299026056856598111442031110517900507903456655345928694192109368484504420285521152191962480495468817294624835639775284244578654407708952991116932076452809774744115643647943903515760743795069267678185650854922327451249568795862208540855822352160093925343974207901065478500509647946435129456874542881509119269879907189993815557985837366981977147452912195172854889025951123886603992999855882510564680478945919999984203523295592931303994534196550000990845512876627614761281731036725653671367974159225046811671477920999350669326754250050361357807637344709284264527592555329080800506197973590154802676683463194474134346498450859840321094418297842860263154087315289250440247223936826843484517985865409190820577684335500626159548431055663493550194806344783431716865415352682761777357655692535634089892530487265042570588895172540106660371101440952003436442295269431784135076393096831217879173347087003080925812755307815452414800278171148116555906501161291569481783850337035241296752374294762167061288242568194042233617503686450307273905039129922786646930950619172729521735790681016761603137123209562095890842257655448077448957278135565296359772193276610438295330059910751061532284911193566300376169552283455633054951014569026880023859574954514464638914265789435333950430851592304377721186281432721431871884403348761684834254352815964618924031203142068844680349701473075578329891918437254432153510037993424588976259684267944381101511813598126404922504964659539860059694143779668825584109697504033307024088345717883719033789686861796993727629834701616083957865956037234973423218914457319458977503770612647724759013307069517782216182161763915022575445926186059309434995601239835589815477059834510028125946897353239858165107048414387266310363126873979119887601960444756268269757935296736241893978277887781726011631296753840153564857669247118141737652933978138758286738669997005805755191990181063000430018196856206140625597809840003653546595425835490953057326766944665492812590580356675371231580746228637639849146623139434099294230380326576826545464916063698955474453418766882218247101720275785013621900855917511132226807224595200558916076086335003921595540833454548785867631496590354308616959923212694154817085427493205324850387331541564033435201154840661954311256102002767004740788614256549755904336282481857142030849847272631353860605410508107579766822524368849152254679795755043908609573602677256121856183019862209674718379006755118333677974705124178028046132390446130719214108713314257889900079228064919522680644613075949521668573319144832410277380089155845987718808889860315396908762334646003453926012751308195226901133856102536447646472070425467200327406006214784316377892685572032474351761631009809921298213078158095409423612113322444687213783573525166802101764542117369091083705073483298271346033346896753978989894623329667112446255306962890029064419877534756955759456074395333184344907172380464984816317000917630849897806066226721447589117226064142137719695558847184600913269280094816002939708928949825229341259863091109762813002312272813662070755213003437433235404073246557108771965884652895745813003115268661397706629591676891014156953090753584179908261852284934722472064232421190371199615709881392317839903736478656237126797285792107672271620878193047278662846725175542826301274174756139751942446134390619514717685803878227653214300185798165574550627026406101606093501777188966966012314552380640739053301888810246458242408113271809192663155424736265504974996437585235064259584565002123445231862036707008761675218644508596718009196164409966114361204469248888751228540284700391050485142108825295480080678588533545401735718242957980794548816365136226580612300819956623345527254445846132168362557578932122915961566153867054139718224904880879762150196894957136105477221259253591475642853401098740711195601655972127789251857096759867345515073901253944365401126859288585518941157359436528005812884379779723025916165980766339086805603710287479627340039173609912293668574853919043825168505938151257988657661798510791694747366779232073571714370748295288918395377032274845169540280677815122457559749487554594872346195010235405047595578756438824778608402968926472769689941306054768602218622697649180988315634950596024644077044829566954633607403465090839380549885769141964200435535600132054919438995338138571648122009676771260411432271735389140158343444383027944666521846014082549963167206964885082795841647364679941468546715673996135211193404097700702376692773857475871358373552338760281120674655293291915445779821448858722819786007933411527231634524836409611747061322295250749968998354767431798999202858800549918041937665010668806933431254880200797383392125842999443473756421006816694154400608812543088164828482167023869566673016455621608838415972324608209553336373447627672818997183734849211618148885492879142005203479674598240780440972845491491049670321823105430566471842406536811925412302674910926374625392777358692366583546205589913779011979939781250554597136518134328286512325824178436081313854365568447101150681066640746743729913912322065401631683806733684894840012727849301930044420458076243384102319987895798235205804182628296128250964762850431446411025728767861177972953644650664439266108155713686356332746032408865725746623934719620838350900810124515393532705031059967271672301624978504653447994923208132066138449954485923232658466692912152056119491763287674838091637482011443721990909694421565125920367837120716545857205838158382494679024633751296753090712337417950680136962739684267964165437926816924427651761643579621604493212415165852657496213431823144529879679585853956545888067976321459565902202206468239213505329305041135274526545021836767519996526262958407945545951676404346272726504862983432715336499765597336181528040087920445308197818906448497473865874079126277376145697028052426287021156250064047925969762821760660043437929592867610279564168315269596026693122178746752533387760840553156218827301927844657084799039005547518371125012101091863788641265015228760218233113939949849939693177054150913068858065326155094572415801909688462346319464240171653467449500753255832169829223515237874811846380573575993693782404320694910556211881873177544436473242065301864647159018788958937343049442167080088458162000445893493691418681732962968696363398576505565766727413802046712093614446127744315788885582613767149437333009919160488124487636652735768166403079836274427720978566598930724281294026853974113330849086179604988527409990060700346094419549408955784666146312886291211277613710000581822499184689200756300807181707171370478318239317331661084726697651531702449221406075784655206994600226824163571503739516884811473226912575771395590781202080086086841310110168491633596147408870939960963849173556052891887715468395712791209998797549084262965474993972089559420769067826467281880077512523712881688547777611954290204266304911724308318372848382189684343223121797631147474890237190934560018377607410308884532526028055608403654278713821230527777807814267424857272746449012143756689145113475096109163287241519075589420992906749032441136071022542525682376547758859318669278058784632767833284335807203283714419092438123919836608246643856341561639893669428909765412215610961856816578200307275470851509156894623392598613984137570161261968755590703114783563151861079077098518353174845189904969699820545344676120321998856183407904373120878478363978328280433876437749218815322527657235400908081592005076146694240566698949391537311637197192364852941102428607610555779253299923079651629008611349334796846784827434966651785887348063884190268490662893314810692375869361992826610392398883152598931975935957580911691645091038567742342915250020008146108648000478194893312495506940144897848364052448749834368201202316089524585852929795348564757186694081191619845464049561914734115950671524641758455907458200690574184839392317662674885599308177306815517267317140444339302916947746209797832613006782121902020022130323642643606417552026583169404735332834233383024128347468661585315364459042592880554290616205625062882516249610892263750207574643415670254769681109336943395241746199342336450809498131010735924397213923405850483091057588067124874438552359681757623753524613319486442122555058116143239454446953127688338958539435364577021569853733959006174068783519744138974918052016719821790310532298773518741242621433728826028931559336913772277077993552662911903740890275090717643375257193714846148381863330523641445963603121290457883874831059613569723352499801417990380582876806120367480841858406105632162330572011044656686717247364552137136733691561727951039831005264319987314573069474515429427089857960191030224802663881239364469514086617418206545632320210992230272010036304127606444347542513723689472081249033000987867560877137474412338049536162597700580423934326591772948384337810657556033420264974712844243210475149604122740965822714676284424086074347181464803301305349632917064504583582681508692252411675538994586799562712642575101644012833734268703317591840445542290172774586958972375891580285762602389737256736943011626663520333566086454531707870767631614427057418610788764206111107242903639950281165234441052737255267934680293273193796681955967508979264343199359639073968936739430839837972028750873881841710839936886129135608958378117157142451137960339887898322038452990527467046028426169090339180801949050349278708825608025380286167262450791676034413230800134051606662117466848248055667255431585879106860418612925370166748850524013092751217818038193451421574350222757299738178117066830393325459292513539577153330017150880228548422930827965244933040236472031573504072965933240808528779628044051436324962506598101789582190638652245832974386289640733887403853885851890950199895781653712966979434108494967671832094210736067326169729670848532635472650800491023246706680368950922104569890992450688934597223288664040274078027554187670988495864269242999254278917197512922366388212073104730744235174236886319232010449127840937865286750166253789663911240841486816506098287675183721627475620658378398862634930125770295517713814742008013334865870893393022149855251481236783248386544578480893515158466141746486729810436448508856487326412155281181193362565970701373223291852796460574444735867952579077477424437884712238247030921143786280876748597892080932844575014906241348664711042919157167564983661037524185560242267242356058675484105073862331318535824888889596320836766198166871639641095410769692549925812280714786958371708595061735616998021861114414560499548648578782038611819719482286446231331501607567548329746333120508998017142752801632274120751606942083535580839191060381526642776215578416662230396990626194020189668876645819509857200159533265372919426884442286481032473931947702881680808030464592193741152785098431127822500435554336593222871843498751313516483493105495443939726820292970084640552067905077241778833261391022462079264067283683052285643535784435743641774620097927708701104372033807605625281182087309321919268671709214658002759051976985123733500323846722866617091104060732181113427713323607131365189960828149215199463441670737703160526939678564557622570314884358506801712688474786429358953288689752227369633562805067075499118400065638057724730184419228411966441780322696089468841085700681769587797441569921377781718559628784697273351442762287207003187946367720649859545722265571671408172331484096053826520212682582828923882558173553776942336397031245260371496047038412697928841227744248099337238644272602529942961947677260737712858583859071214442001861565385368023983100260239909273788349450054577433801215771704293680551521170575596306637948941214825577700900412387296465029137662927066682288531106134782269609864131656775003756050899613574193655303806076357272281641557395549089227398681787674758623298138540021115843668486038478415784895001517981781151177190389398015541157645947896304496417680773013098109537778245943011194344941720839157617527711483108420359253747132058710460399250050651843533835653877131313447500094777334512467758445379025930628478035410734570644803237490567607187004421986839879978178632338418009156843985229706520593450622924477607231756375968288842967581425642106897934266088242151564887810660014496666609489016969624808422756316043247943421288257199186647489918047538227453482923242363739067697183594183136005643493266977516532302439530992554882610768227739234472454670487349153048257904580422048944489420753219460416354005194973796768245259069633532767679498930358822895559674273149110338996084291506639080227133987654919829578114748822814473633136171527152507995908948690220335533785912809410556353338943235538817827246458268788209812909460878104302113503245936436920231875864432223255091667743123761733427665142013460986490835833973610861525877374283284250903752538809905568118616697493446708004773195986454244031468098471675663239648920274034542074162367749936837737401678611319478608577753679078815992993439645722666008667451404190006190011024182763379841470349873633462150312533377561987195526258701483984706491132489545061488908667092114481804063698031234973920027773867634750091032368241142977866488460355345616610365504415802281778464677434968309282025163502288131109264082785665878290032721785220252876292998330647674840452891290074212004017699732200059264005433362532790344318450593459743123565097551353018268965164054430586530545483805521779553378306424895483118333218209525280342265954009022031526360260047760073084697539704056106035332748374739165801377701652056981344626110237099523302984670253085143600218565594001097066631459080042005673691817088702213854093449624332987763027036906186833932731475753994242504048761269282637262267472835837125597514818437951121229212525971464175684047489396342317916226052488533353728379593844326078619144284130834085290158670885233684011008552101742596154133784166225948266325839422119228739625438247264920098247346409931755859574871504106986319794908959055520480781885684338191986751991213718743836953215729960475669113928802038791295085089190666928989890238036740750481193254501137130461614368805110108714620690784746958379205069918690687026352954383904940612302943754705543675250294675551222233359483658217873349529888979763187511781450641965533534780398545372358096972210273697543968522186048027108899566531103372550553630076204091538532051538881168369845218836296114999304517626568203124404430697654468300506833441997157139226457843543983907759950331225759025651239712449732272636339280766861987728331847550558080087811609576283888196204429142912865459369623446006535722181423602767347589518148851330463998314687067621144146819548659890507366780091291686106721145215630885511447506056971783436860273912294401947421642151325716851749192242282906325447500680898980486103912367260644452399657859184642042767312704267383472806828042330223759523997295081045942902071078854230237315779006426369459536227541058814863701335264640807785920780863439174138566817235045048286554289406679077904765710574454586690952913182010824830950696998030165957993936225429186645345299162895099205625786963910035798686766408338837984992490637228564156242044105657715803257885649884209572297352545926516910613019125014847425401207578787196328937898858962472489369390907868491737094617250437852272014081222274123705704627490902810120546903957911914677859621372712793372335861060105348635391316364616157794628007764385539112533165527411075557677386536005048073307748876251875825917727556568799240209803619138118335809628795296300879241359443169616351501577784108267764464377209573824183162015840416656248704925386876562062131148412456711886502171167348577081772955638816182240773074212220182888663845081780910704861152414847060193855191130662079783144525004710252396377142286829514063923815272692786836415533999836846531621502230002091693900348929406220242136551200635747959891278168796368374153709308708750009817504101907142584612460130602069075357256240708843783158625987470020545625756279807402969442674202815611264675206347334804276222087633194456941106938273923143238706169885642156917968822108243851400843640081416153081984678394030954176416948396272496236827880499287394789104346574797996550096388154347695768465830057310092772010840326053293518722727953591443678116429396209284513834676152722258688901087530218387100995609797701632843784132938780753343662211084188671511572699343848979560927746793774960676782520746928323126527709341592960059238874380316023147270881873123030278668243951451996576406643908119649763700092419081697743616703765215257098126734345980787471899223472820603632531439948050797720664184996399050893474678475292367780882589425153991530126302963876813637057269800128712256847948497727947569049328591481889005080257206693919217511809227182450462963502577127718355102727929163696570939503170846031923014038562712912992259260233554045897388796228652096291565481007151642766485960387223382149424444156847535482518407676306417320744755717559164230540751627639802045114730266793031821759061270703135209600292281130723672629742050512778915242567451148666530706177493800455649056934614815202751570332687775730665170709456580084366896287228265576998392946427021157645676494342436859941154134055625025262131872300903889637358670348203056704247113369916543463476809978139473526394352633569475470667427563454395090276347333058208824944132176588778129971972539740099370720887793784494744254396580296964586302229481717392419736792991740475329848140437315893040048098974196613593536395730363344542000396972294696380651360570098931495864635412736954931583066399014778923889521504315368150987453354403960620002835035384648142786758766741455583642115185142263037014841781911459989231516198806667365444345184920469208021643481001549618314131975319296950397532660795774105502182149320791980958582495766653891283936927335435264731650277379527010288535969277468582354426096207668998124328293478754831536895572813921815468375975391046037811815407724837983864093757875581332303164770886222797678189931617555013978545404995866682774049627560444621666970299054637788106742537473497974133964530890911553912888813866672271123108714753945058089272227910563053664912253461118691035604049490151996656136426236735903082122995855029595122748860473004454196158069720964878337196609833864659450901179393662720818059470691309691143451277377491658995278214608878358862606988652848228746996876871692905804402052670646056148830722217209203590039666255105879243262536045294937338759861182042743425637056656079663559133257443433493593623287643110971807788206244551540940866478860070131229234785262918952218732357607394608527977730360917500031289495373608175959329875089988401543334490933879849728196387656329783183287113351862643788726667231434775055341641131784056828121753552980080014398245100301159930337413818304399741959532232634980859453787633940967408331496998515556435083687269406345270386344228048443109077273925085665161262336508071389119339593114035106270126132133822625777210289347399765330649028558877392664912642116549799989945932981676411931724105529178743954223572079226247638001326163447762732515401161142208320016001350652245901790299779505486672835972275712694501376651391379711064401545035275940368215764050582257207574189134034076200913675646045205134469910039582824782043785085491287638713000306332885187539725985159168291062233736701650216585712830515708421347302114446852220076794537617713845557817305268395784301827253421371017559121889913152077909581172278424389035983783591921196142824028683962109421647104411202163497233680186955427327485071800602437698417090563149895469302899815396798751584110575058227220303136600751474950987393102675023157882335161625913704755507336523946734330974196038050411557861626305891306970262720781378528301856439329161691916064935434868148414130015843135697544583756826760026098225279947490915102062514372362222230549682974756584554339279986530086066884393724201147856452948849260157242077279988353428009342064798410649720212984968914388552809177149831700249721871951701202859565541454466182921070608394284202639606125730887178823734844384890496162921948527565787790861876512631723422165882272371656615287070712578741986868797754479538304490014618216795202432133317642465422393261094619760348364184063271424109304565275885003447199334051024287176972889593948643971682066628731821357528298642792270566870638776688523704992943115065740316255434313068160527671301997278567688429423512403335943751784231260868064446135674429540822843857540994342897090629903760908986177695505809313646347725289253680737552826759297932713060692949447571238578255281456162959693877873828854541006681310649677502263233540989491073628716872328749983287632771359020460222531497898249241315456511060008944708718010926130834386658669262237481113425738380605636760872577903743200576982933460050453290793263694017762965377650417299905341856154697214675280192178606351693209003867899393048619161143997829121180705018689152082677150349181860731743979169564080207019997815063785232861772426847925448098185049901743627860552472838211579109763676351956072877677427180581501877364075332311465036375464240913696917288447245370727066820115446490915462594352599018025405734948927949683662022718644452612397647695347328571613154882425056185288659636101696046310581761867603197017412017304184137856961808556844529433659548763450194909340011401939095954838305499595073194206961006319386567411307016378970190653013448546373820599409422258312821483067391933401239139608350997758489150758764916336794448086777791044175656605046047850592383595261680689227399230635608295852548487271525296299301515741569169921101758424889993155893529475943884311088349164472695021700794808923478347335034599345431277742821182950640187483835837801718731050863684291274037479563194780770048274568833844928837480254193174597152951504077971753295825912357051213098047990133383413912519625772777704095102334322200242335508638382100683383617964538421889717637909397362336292135289741464806125836874903798098257172338487420810643024763894618755664561001612966313441994785226117205315767261777654724406305927237089315889481589970796880564088406118601739678745391248007271029979269243372487011214516672543234378451074147571635312626536544463495228792068391929941801171675374514148201782073669147144802345650075341367431829200057342770744168538095722088222130424956084714436814934863529075816524116623388678212973627800425008194061335747998652236760948196947377802275512679980747239522029554677640407694821584793361657824889246396586162064612220696746708028006102440524851352969850049944439429910634521148196220352929237801646320869351058101185305767615354682622742607361017763468782792642683493026619753926531828825349176273202951985239280027456074691080413114593024028966571279119039484400086821205063616696225233430692849916142374253682726567849830856420653032581634305248459403133741513569512122380377191364629444668789736664327114029559946659566337769048683125523918483325039253259944609120842093678986668773400697103724322731971916868653102216214784632342508405726105221651942001695713222216505111437027712433253375370073438077681200516319396869994486297273354706255592838793679133905673319339113805961620596204243470376694765593696814823686457688679990457726136863757738771527133968071867969810655731085044715588801888198317182376531447674007365427218275371319014413042374915503048188913229231553079352276214039534649428652297483513328512908505555665715396759922313198426775193474505438791421246734357354472158861660556200387682953791303243717091245715873248280086956110365264785116692316680087569922984027996507350760343975449734095581543490185770666957706952072837095677061719612998380120264372174144387323493776954232781790429962537794728943703274906562612749988125726150467740449624215043196416100655372126793308388832568671786729004849311759053783460568640663307920979191642483081009236056076506495863831997067795341005497656537976708809113082451911541958698260194691148172496414817332600373552357529946301409319521748903781109206517284515104503449997693501727843804200911817175611633075655353068407271123765745639401813386366075765089081291272920895362145461460351337051665612149065495764430046145513253835426488149386332884168821284236689736067975937658572060775067035984082019783111372306238820260372700415586462149796670064324855143683237521624091401102349499491753448234891687786887175857515664533833215309371077941602776864687489197575795662208871852848834922954724321039246974264219101978603405018286166401393335856143457297647132431056413349181913205502764241371817987642128764324794935803812436244230050679242714936898508566572428201984889081595328363166262091681423765897040187516728634083332916372551686252821005948278277468743876740853684406861620614142839344432003196240285785659482885388808546801649427077318399348516466500821837902940471848288815170693044570936440723600141836630469616573660852470032285608433149004998848858227540615076325207859565990428719448378238187308537721595210449872089220122217473522360877245863784188885416040455384567405354848261519050839498943468596575194684274916382417988497308756704648978574067171881445458881741221096343554045589761555382322488352883961966949343199040085529288718846888724310579172927659967412606547851608014039404647651053325148051296025779019912784102414710512295075969920064072326865731976729748042315482670914883871327343763884400456810487670025374667844107389314402213513967537645223019953263150469011694169630033708970327846449771761064855067975877242473992095811460666973446415797913145450116893310983467608375307034903650561043419434056322556985189175437051114002937611042400493379803754633951543270092916473333724449771505168440614380789902412979774067402930246924150346780991481131723159661303801747331623083758559768449384793202414119249071132783437955967431851339628112556074285895148667833351012400212984707315597998808600654738851034291233162409399691219745097149508202774972469211548131484847077774757171377357164126603381544222069898284037732251001162265500407496620718854780176343060482963627823939936895282196139929325969319225102546247411493910919007323937360733208246300797597612699943332488196653509414176770561844940227928477969432115262785071265363583787675733048861826924137424462946639162345769759892583823235262710098777703981931624519826719001282462191309844469005583271363844562397350360468305049005844333016686183065537594253422549574581853690926751789032306373023651941937718124354386328265761357895217181686109088758025713115336685152207781608224936731293162735195574973478573749965452221952514213483106318491937530498603661475855092601723298249356847557806564518780306819754542281277279560488442353713309290398699984124935610515100072881167434724698619251583194843848734000780428293218445301187849129247001950493470076360772615696865662666432450593072166821481990562846747880814033634574270588969524181362630782038470653083142186700431861191498392150080704300185558959329057809547879871197841070633834901369247244707480404146814815552102197808856086790419567977770806944997334177884200032782565643233047433617306936270916299279765461386438367886250876482640596220518722108897795329591869411049546227766417506451256122344502977112146299623271464555961416447413436948176723948307314636644705297220316248124419257987111889550586266764663594552215918567867411463592883446268737703752019049333807810546103025852841098339897608367954944382841330789268827191258519960707679435411337205296683848848826135561882039848346226729172264285232292806472700541836011670483801500635526464953204486522177852323109213056896980467756508122203826733317849657739873117844320802919120498149990898149140548242234850309356231256305367841440542962068313240749266182837856309941385626317812477885443902237137787834982518649571408215359645806411401010474133532116196095675508675352404465301811147937426060203117792201679539048307876543657363707548028780971888836347305459837498789861067152640689750427107702635474427661958775287318243002215014278218420266590483349949081718532908971943580598423309030859636471303100902138051988164533005826804066566608485751270421311991527383245902312341146435278283116621292315603727803586015289314843268148806123573502886659912009029394005695395145815542641515538728130865692464267286966242143909846024450794845160545150328741864032438226337311261126732430509828265112807693077877849734973513875351729273528758878199712364019860196857508305378428457050251309306973190483536905947071593471871217328928652329173117190890546832203634264166781387650750871996771793249606885235791162671276533297721306232093803125221267048533017489190086084214986640741844459161951551936526412623401988067450501197926980154920983464780820470860702100217678115240744406418641518793749881196043636840188361801720601777371459420258345691038160983016826628301477664459818303665877839474187388183432515183201061167103785236636594573047415364282376508210668839205442921905313557063416254368730853912872709568352871837299623957534957638786465381503099694535115995654691241797271220932497352800700810876099747378488250719413445981209478837015867770388097103766586404580018149707237311548956619257401762870317429100904176304270479690471635328656261034123462462410110733153225534531148324801702952190535277262563948347387310839171920599760876003965781780030707834352370724256331978894995569287390023160527553174688707508868378189800259888850087193378462753082154582228636359528274766518982899177774660067929930893656696679761529535942624242090856380756484620651898042659228239814587864712096916299868344125378287874501761942208027088539213393646802115780406908708014539401475121898648231314983071842311773105667344221807069160909986778299527707737061269519944634528325574501300133397529566338539077791988369673499689193550534127178071429333124586293600198162463732214348609305199541533143930477892861986917940204542939778913340331392358915102308443463801051116783404369926566534089478105701322293546844939054343742851950828081167848580188594708167545014640305749656642161025647973502597735189851739063531609024371039206120309099667807182695972349427080803828500884629559680397602873571497670262261902244121731368095394797468322531352039416659948415835672041137051594317084966624650493116117605879784182303938661823626368282374132910697261346540830149272560704292780205422656067542238621258329115409173883074318737042877040578775285063008526342205789938508016981849629082088502396696511747045104965869579438622549311718608993346660328322064823782376734863361580549489722976487987018698676861053774226576184845848862513280417969406391947340092337393204020242015252895585914078806408740224752490403580603576750687065203357457418720075318686991722949134140439001826366113555857730296579246110061258957214339760278245931786592869091326599226086452986345852287840483541738213597382863516994931514236677488241455866096977287104220879036867533904162007109423963840859073355464046745456911162648110468552028930533077405652334027432861483293950196336912707287165223976572928722283978627006734544452378426026058982531691318471792830679092159175388049717158167410519001368808020523838393575676493304249840414887840157109296758296872999483130107892810581177248252155509096071223367020444264346398245828538663927206464013327117185206291348292175554391181187192022764967966849124150240063688935117825909631167622918384398383642707369795708158818024663430286608058531462730161143586007019980060447261144773688307994601578983744804286964170523336076095919676044346961994252352047937845870466176780588074080893050248339897674227428380370074672806494134926126050745464357051084500765143027581436952402966921017640466020178875803043262755288180477982366825999209675980774988918630277972452289017263866323795636290342186007861811300216677310781886751768747305957801776275743547282487974794032264393733291480154734615341192681395595396013795041376630019600009395146390287841418399636676163306185023707138682582723727715245813432988091566354797939162217514083700190356523969574365139046665076478950819287525940946913942068388570272371021153107576134389610192485960525544364808281282469040071087234615167670766750903293426577696022888923351566774832645544441068095903932774080783430964890748124704200148951345891010958499098636083742200732117359282059951555016574246658826681196828221885779436086435053138667842528321733110411238826926774789000566409647447201958235284943357314962169766500446240519907101837183443735424664626671130738089135909973604664471371518780303470618342530020398409236677909659401937347880480491980470027634591544457831377044114639131488302603717364554171706584242940766540426087183477478323933220872043541894129943188211633437546829444796494765863317864952857325591016378810012112308806752522307221920020189572009855127013431620783530981090750506935649369134024838512585062429689263499010899459646353218551597259898786560906350311538153942669547578042587729715269442258769401551175781898426897783694932108788057152692326199756572234893782698871365392961541605438092714925917702426861392776441954400466120234546925501219375671294085958556308007646812836177389610222107416875390130094114501177907030961090882880396962884393689752735365946209236038560145352343524661442408941814196100251883508550221959341086591264092129555694978488433324053865434730006684974387065527598788132081156793773066273862476149951490308670912030984748758961885860021038272126185180451169930240504517088392601454696330395161255529113695403936624166032906942147188772731870471270398948716933041412573224658427585810758952621276786806735871919200222317439647817187143821614634437849066396212054174603758852100903825729905586760013142531010535690947473743312998466752530428573494952229343377628620352968354403384606301843824636712007322125176051362707524484127288051001519495014072925628469433127885832120957911034722646768243488710082310439629964298255070065974098171933874702903136475264115438538869090883061553896017943855159249666061503578433713416542540374248175475619107548549756063672293432558881423192834223707015146749046848069498298182317492364470621727593300170821740205427658159704384378005308098298153416538038259839603438706111061070175981767618893933229545733528286811687000664074878499237590250529238978251824131763410449293101374618468809551443150623989666192575378913653581577506885130020741867826477059872678598270791249460602677683627381381788439130360560378821220305743128515268706132794072804678719106107176034882174771138217455031882888374202464127525791703090361753201073884181265055682696790507677533093506187075257637701067128765484795976588181969170644327455885473614478127131398454506007422270858837181807994468177918281649884824182813779393936380684861315170390476396173307728332585909748334459825840630798525074228932996811646213058808477196808934975108412042381462086621445825537647873691328981113981009271661236312426919186852945114714638078885097725546298204822610818400739614779101286845255919963416672955421326555239743283032741290951546309399259691044250264437216887795702830965378644189749742811491392483293418134419514803767344180909290880126832169466095510480591498245266646184147811066739204422175070221925105603951612671579633196267099691593890293141313421300472671274263250143126896882597122326913802105282032940338880215585645544260621822075161674752256255145721149497308289867294467162482974768221449173570410061391639837461522573206264567156788875879723641002508946800408690416093747181602814587183265737228439270976974179286550425664262986741253130310237454188166295977197586015439694777933084638590499497043522849937631339314535205374314778061985177971547836588255089069576556434166060789942690747208564618098518375144235874295749935178559825654519827178511640871913520126197396272926002444662913869555248892217671202840714644399648251027052150474318448775261087029302887016446289108998995381807826546158063454388880379888844049105650272453225137138654189495982758246360878968847503794514091125605401449792579621684964893016584493061839416855825664575160512980476653127766989513097658997559119867900795491742842245729735244337279937028574414620339471712070565776524588662782113828896845426585096461881486882554881095373056515998556529771358428755409264724463514448707102695379797460251762188684872464610614839350527563572981419697734042330295358186864666751539147642041870259498452280143095760128358433377572640760282683415141449812185605183555448656023390848414628194313188183076815222400109588777433681431847312370921494714406494421430490205344852598927620318171482625337320370792112659904625892089454667177411776487413457997843367097108294619584191480607679364871023966243100613083482794639987685755871216433880105539115849365928938359125759134893925334727383126189187812210927808245521954900230750829899822409772641503927797942696657390753793550671108990983519207677975912516940519737127738891687473443613991354083503817433980844912420881939421410582889929645932829759129611784010214558262908844272293932220483473806847531481481210649796913332787097927163088757474196290470661454001022462401255364482840889336441725996528739653404871505644548022191922401003620527345520322433361227190400958377339284593433557152827772159268178207613146148709676692612992938324731255394579275810128837995169933022245157780848641550446962288444760306185590645164535293109226509521876961443143079458397649708575260778155726102319873563122068777017662033975879686516081220762228266795543416856326128047147637597111181331118097633504818633956520224889497923944520213586711189642458824242828157899468047946325911211273219306434907420961115365283838441267297956294360065635909665022539566510433640793928106416106999721551818971602035797147202491014225560684626343009848218731607372146317012639506188294770418795087630353459682657887252775974654066422301896218180202290239027178107269986755191328020659154194012044578684215133985160968068699291516254514139232809367403808321996835617580937398745195752247199741389333844952732243851060751461254103356863563125709548726497654797776108082107319015505824157354491932536250610524015206936782602544403511600775480671296108585673590543792044748368129667112676064370324628827728514465835772463598667732934683225152176996788914187241583670241272960948917081280820820298692331821753886380676957111725985018432497567297678300136963530896551047668529094526247228967771339959037381242690591826665089721469909388088399069371629706225935483350570801574272827618965219215677365015110742961864410295723663056992678023868248543443866186482388128713691914392684197224123531205877745301416885890865339224043592819235262602243154584595571166727601736486459506733551898819016165070369401272491343421962249381714839128497487600839784077645299274009888270130483111446758946073989871839211182583062406236820428056681853264631022697605042271443455767648322470128059608380207724648454675366172754510082780557520419050746438234012660011731539031090692707230976874524175492368057321693176867691156131915157518575583873900592151071828222713823472234070602601666581816691975520110803960322110271859712128882400193502807779617395124916640260919168579916597070112460982029352327084552436369357008237398460279018372061976511994090564931106659842419601770337698993560517457902731076834614347134445782254151213050869758179658867817316250754130483473300062504179246608405973886958595567869953350319783723930154787617444917696133577956752207100969558388568399776351694996388246394652636890237258983575772798298255108006845258543292628602172013830783808143252867547309648486681508371102309458504376447699685703884051359609416083404757605228763662477651159391321947127882172425716453245039337915551161594262973010146745507918062805101733015841010982817449992624961719640394655286075873298259186067409235167368260843421744956707793597668139971781206078370543259610207557299966486451708807031377441159723881449179660528242325651585405394074127944936328913183567161210949382068271685166270648189309351005991533655784627011991255612787286801646062101680738024272741600807618487998073688641263473180564917170314317003564560773526966238851606708045474483200428398940247515020031095799567404480713711218214310457113266380976271720551870678224635876169894565136239134344216638446516419923095837695306132078859487184868400064625028402952989595766010732422629645110597200172138974379602021725532028394786938895491762708251182153676779301277457470616017445752742930115146781161130110675650869935725445411130693372193314735281253775075624747411427020536890950035910337814386999667826302208014323670711270619000040254974517539420262355097433059414865090320407749081433936252513353813468838369808375427969018765672336294178175202178223234644726195328829669921361520451927583232935922742382786664529702803557225464595034199829050634861570028479745465313284035505755207399773773421791311814817764996228215639274710286565891242703707616731910370121645160460267506410513481376153182836848426640681239226873819717891665783548502417998782336500292706908815850523159928039366347003086641006535641964172819317630976753837284230880358469549843355254243070151477462947114732187299608389425708338182281085354675274023463064116827726617627974928160331771705213480361615574776920668046449354410171657879179324187156359363902585591424552695925310217013338818374175064466000135476048554352843372876164685222776276400934273616971979560944499127877260157423826764233323765053281102655594030020720413070548779332392625923829882893586459195867573699293960139777917322769431671774985816723855908990027883512186835036591901713135561817240102985665910360073526661797936954792875713875694234038752327200181426740173086466749456685989965446088194576000734561736805888858477733499866375400417341436443243031294601895928553503941421380456798524939111626308819972195364704555123964624128794478354628346696736230428095914415258155976760016278210250864060539470345862506436342718497930788894075267583573814199730900457453578798308890319666711399792888493937581140530509150755108288440456373084124701528799122715319675457524285067886331400111019649038324137094255583908455358172429389517061218288364586897148578471778008653077422737491950967798310186336970413718013330062805413722237472677654689632865645972328624958543757908580285586929300518313972821252863408880268991579725193601276794668805351788280711865324003161581958562401633326238727365972225276413645954647991318881752893699334917185668140226235883957180246346330146781712025247406947983335222371146909568626656610814777937811689910865964675899997981175367453120793283979590678380735918199323575037668805459480771861665623034515152794856762587141816915958478776021193863017943650463307677371462014058633301499762226608207539992891254162769008822781772852558131385135576014922251004278551823078514328821920729038550597246541310887626611105522724179141471980342405971738777815612834588506035754318952087317467685581624717223492355372412799058764776388864711631302865107769824131267788114980513061589574312202046065465709417139158790986913118348583443037776376688796549207520516431282540735883065708070370558726828668251046524651531220297587863341997349390158847658827084904611005228140919475490863491011165425683447219659717786641582346928785136108914569446625981897944338631395311292963774962196764067650938514041083070118431862025861008712331718231520607846175833024708248902323907153161883226682175368515737095125387999606341432681835190282199732514185997954084108043401437984965388420690554457495721832301193875112404064858784156598616059275617743526183506046113013345904487575250386436045909664043996622376726802435314899567395998921377221634118423405197780164060138952615117959428970755260420511953703553509153100085710408093999546512550558359352559167128735584973158535425588819945420379735917945265559179420028237329386446785144981796747491548702299040272955883406429688734956345236243689836968642995133892044746770113654545639431919227693819907936197238599355518834197106817546923864232149042618603454865993396039533947743790049564008333997300896120623149746526882450662228975890249889892062909743636598684749540626867146792430470976551901314511634651160679133936356136976251307978718195413606160262680879375169457096921802014137407451467300908957524312385740594099678180451851350704888061806909551451530288982466876868019097174956168725865459774732361655646363826472494822503938345880882840990670180019634525282177455744817130631740794756722798815451145204351026676334002909773461209702312470503483677219716608653865553735191731732826269906718592871825410191381788612788383832785543307750086173203678968473797333576723956470804648984059321675815905876521840840686504537117455732904074850907441828435467009759862068355178012291457723850742940288785964881423536840343469279173383999677362733359148853210412314352623951214445429113271450850521700025674443905941671798632691970057790414313230277579032119465734468900635032688120538440345302772116316973847479783799065712597818884928316323106238319030074316666503651725169964151834211440633316174478467685045726765658235603758977162079027005904079786051869642122843582010867036711291534146245673115342701808665211879084816874839858876377741299833539127559772595937596341232284289723830918174395377900074082836273127580878800931466477625369529180292019199142984467837839771524755379096117279564648452850504310033278460950792543356635182188125570514686104941768810228273433429820605207983365204097633338886499145897480132793705601507141380673774169332815350923411104280486162580678302000653270031130595860181317159416221547934541986431619061418304624735659460573783254584802875186911317315827786869428665478021370379714975417926468986370245176696443836202340899719859906359515091315821373264030025272306434359904127263504699016013957960076175669179713354531232618920790014229804637538046337045533520787754293572793795197237445382181030471195527221770063150113122982584732960500290858363584671722199943636073174108309389142307933400511870640647617178058250830351021167359091693157476474480538780528197163103800883454699967776333776722350673281353485587406898250845820798571873183154034103512276341838344047810978795365727355758462659968252912460792909556939952804639351561231443985465004219131170224446476353072234323282641189476183128523409799901555488450353098887038915121913405703305251477866671759330821874748109043935515762865647621626192218669434099538436319812106023160283758236721563594590057794966357871243661172798338561501940983136568510650541700928427307818090063810023256393528332282975664707415665888282405208201623728246354326338522457877553898428392411659528313898664392552892545325406692806796686280853728073284433340772015731971344469505013280142431165059786523478368995222374481145862318321031942200804520463443288062152352219985391223811449124452817004900799084204995060702099337613182076129745611905774416998116534054900299504100483516385884833548409360315711919806412610782503345780526579895106353964778336995630253702016636010637503663443251442207508264733404497422846611230852737044349924000032513359931496628884834871961451624509507806570888798834481812634959068969776904034363058524686156381039617709758464017731853675891726876092864589635157134881384655783845281161736136347720084936270922748158366707815609297223459118537751386352792194597937458494362654512150593894584760645225461188008287951586788427585694547210336230319959825083428989607511341838521397188940946557086272719611737269749892260555015617186341310054103387729309046904840299205070403524632604422120125429621921061576132141956545848321357076886040036455910554037151850855007231888570743948168901605909385632314388696217177188479049162768861110467856048106136631545906675946392964382462507082489387699888896054026863519194033922689008594641617056343476375824454611072961838814153445255085578067491273969672804421970776551856027409159290996433876088807048776952151625435666072909804056261462570399020594439690198165042011708723438694525688535814362792851209776225477932450684886411076452633864184604364956874037329588761302769231113487264359397952958107040497767084414148089449885153903308023809158833513277079064633585587767225968388972655981407515876620999371135974906661768199697619066397367392942253210431711289772487620067030512077323984505021139365756789984602310081048255049229704314475487381392529694680104921233762015498793792911376261111806980544684004358649758000194374000267668079092751182393237753087461096347493028129631536071406608117992313927758007917095580963100372785228921148597087473878838287244600652357128192762218425283167942561316337520918157701959990840788934806159402688553776291139432980813705543743770211103247095282904135265030186424554597434799068864285334254631356971466173761040365998878767118855863434363641163752197162193300480711824626208111720195157882977759961119542877218844847970391612220493250656875104516532529595822010532302669524470194383862891751687952358009282887513827480507240412715229387054746750456837237175186883868287972127810892618667241334863038658711315551950801112136075722898290068587816874284409372983561076511165399748335105996542951275291329243322615042044141111070122955219752356429241641091457478491755050531950127988594433584641901188973344693490074870544362151136275831817309738145873411641541588770230234976125849885128855688092632594581355097870209298867190297822283640635268759503985908923631683943775460455500384094897670910083236678338798303191659977631579707909140613794614651335465602915214206617253316643690263734020773604111606346467718851343272155607206584141282301284139909240497765499454635838402092712136003467820266794621809088552956399695405181705345639530978491762381617489207546951384274412808490499619017891048581190489580804988483306104133338693672548685158894047603593925210300729433768251713650632108250429821608855688094140204373807607511134411829322053842689090893171299304504155893213059728648669255959705759094332680805035603347721277321611556431430058879384093975757348516082641467783289357527688396886554450153996948155734846713638597304927093424886160397427063806385577203696256973547642025041228625342586683476039929707840461342813463255193606032293017993549155526614165466321084919341078012803083354291965630890398610662017438200597922547510280213762122760082674958325942553208615042969348772873534183230316301309603324783108941590887210366680656758275564216994690848886247236752272104841675434891889928564883510578744223466962178630973655799666495092318304232099418435914712492846433319895220023149423772463763107210582691135829125713747660146042129054096670836942501353400838569049503985846664538682403174637927645586134368589901138421456749272319354592534417710040367681932242322579947855588438353731922188832200692237546823912411362216781107330233774500132991448634123421868904367650199866007734860046793808500148053430481244459042497864921445581006666045719133516229954687939447945101345693308444193842338381158843970998437538543711685360644127324908963075534199425107731399156945841199991601179960412606990360028935153986000129919599194233507633668353090299912692177067291630732309779618183926056130740821927644728178113201610538680341961818529671406607788855240901303566453042244756250278283599530601917427701137529805784484566163949290574811458733782299606085549855265505212930620023289710300648757223398447814430125844329386989980809217864875274318426348220586358236340806304253221643411786530376041458794165412588914353980498539318295251250678967982082015004846110786725094316377683371320275731404936496656546701608233470149295433073767620499249309157607135243604201611312645097289234406158542860595263040716152960747483677855253699045445220027941499508938160246507878592251316754174175766236413395947091797889156573759118664709473038731826887553417144458316724604034296946862774181005983891479578600658148141906981641856820730772786467435126261536007082918974941523674041820314854764718342615415389046752595923480501712123483556105706785875051409115971122396141833133931866831364953531363506326502465772960154902144155015356291385256074777311551465604742967503433562455997838812726046473631042528638309982949325519885016653667395680419283420339006527239059823536174322394825054915458165162458276943423546088263732435313531166553542992087307194321996954747523703892587296105740121468012241919959904636083683595904274108612817910975401674202392986824306468692530820037150349463491583885597783187219809827301877462492634749979805650541577649740967726312950405392674558704178372069413363783638188639902324814967552408574611769020818965017858260717852512766093275594695906293677431450788007996816225223003815650538964429909589205149496139676801593910662285636977527211826230973361956480925352098875613753172213154894372754827191549651703666551716918743001540262281183709225470273305849586840019366693761768631657519923048062906089274674557261843166987837061612294509739173376646652256402351814997898224410025479458159231381283124717360790783472742720508426821929849006575649775092785348081916842521997969379607783661332472455397942789507616799684129403212670476317123764328350667094633465237428330176329917666150888563468893242562529227645956731849589874026143247869315000456512233943549834380839209318783122233210499650017008629419684097876701268165657508026395865320364084169649505159478062251124963557612805620278903395548048122272837965935248275549969444915074918628705547796513693440160081307824976056628000973546421385070058062550712753962655700167571930681610049648844219375317865397239738112636629747978191604017588177107192024233544703588780802863650374456914853954753935346454295063725891705242795691904359685897979354377524338935633100358120834986631264480130001438279318868834818123531396763278111975434896900775211777627296257426520732628108730134800719661894245435496936432969275819537649557196497571724138672936419165916274485430711670198907347845269718336718696445260185223430551927888651175009668301733222558205334552162411138406139814659706198702162261868978047707665975624038820782301768525727995515041694537967237548299392794424299992028471293579376516775937256773164456279301937742252289095880125256548217805287734903103677232962349346131325380244652512502807924745314222479543308487977722721082134298210436764376618930232345066004643879521009730117865088650333388371954678495381505415360417752744043898025677124080696322860799995540701099016922267062593975239485302232651731106736496117708339462433506828957910854639014426478430737421626799795313303895525843248623565258574266528899459579331599492116884799176435570948904257821695225721725124925343711093374261804115101071982137091063506538521660400821430598337634496337147319978645032476062086510481903225044722060474000482366066124072366373332938212208979264359954628685540878869568127269289258346400317169153593064116392433547097257210568979224122273575155155029316901061285420312859602983935861588038032850931090364057493949268706134055725534116727351146847896018029135928197014811566532413942615945845047461268722063720143912465420238154488037421936704370444135641672240994604537519189965291577266584115058477853021095719619130493535884391403755474557161316199257053470298938913117981215637258607697491310690068885652764277021769763317677637565150459777691248595450078298406140319294544206771476849881377309754494538488949322668055115368477460154640102144557054329649034668216396627764122249529905646058147196950865312422263280638834224459010217287124751155773246844024654874818300215563380803548011591470271698091861103807948595792026927082631858166733588220564839639103253745770133448166498997188074128065049626496615321430346873836455128139397525246922843022162673492048017654171372461751974042254423781946894486162408547776447344694454519007909201432622019952111400519593285491820748153101279232015978698024987783389842969648079332527799898707918479446407179927354298912248143045367516169977939160591836570359898796140612880640146485954607037811869285588309361128547701741302283948618167376649391439276242397416350581793443945945041780099479583873642051462566951222560040223319209834853452120262244460916865460174568048512828949384814130621347003561359638955257348382499307995940925831873862541708293541112054109537083307414573137538445976284290036693573732616728286664804310401182068237729946481021615600121165342867423501491001525308497745152424313523872565923663122852158451559710755877253217107212546804385449890498510335706883629137164268788902670255291231751940250141255608278781843195153385326900677916903506254167780713036017723962550507106197323885532388152464236314513821893236676100547670134410979897749444648016691957592559724436689432783265560854526250707137180319478951200055657194640055095297098813552008494272579389640154666833831061123958943660511750681721644698455231942088758010006016424403889005953726397433863650974956801763423635366362719175141246260900068209492970749772720741778255232268316701367617401012567301856088960324326189476018993167925335196338247331552083805801022315460780095062829551583999597602790768967593202057292538939259893093900263604630816216460951195284792733353344307603116168503586080882939142936727494940101755272728242753318270529575083132656911646319015361588448204650389789683074215144109818074558137589850765050293362831463091321742697129674806447632545703761593377362092286101679287542417535284020586557909148638084608670121975770338419033383375394513548823493948745342650020710706440695368845188637695676359711762780713477166050097041926538054783802913272006148579558089440019865867515105773133271525132031594824918264612665929209208659711302988535394242131450610422781454786785959961496880744162374283889131700698182922644758880367280539688299183477446499354569680026549833249479143065677463669529891231929010785042472503665704116634178156281287310463756963193659215949545570587208539603144146277636499246833504603179766277860417898222901412802346633209434525737281963162437214750122097563569913257001408065274810768926721315477490593151027526648654694026006393808781030731056543189232241916675681536412755069775692094337092498297945723642413052683247214152960347879223029186416341702904121324001364136404119845511544514049669521440002076964716592515264128391575640933103238859444645879164662999253662685364618904737744709184629289513333136667214075221833203088991908971717417978235669295064702809310496940479931627925571574401749137040822515978580515339348370779549204449201542309754059457735015178677732994954300632263803175074628500707904564209634041762767008381358954249037426250987960248717405689134304138913384170254010901217071202611663806426852414180573407727514375462691525853075362993614206560119568653890040938048294480295165954235441604529397030918926426333450798451858596613771887708133858842773627522998239075897871717724392092849380668755993660284433073737407555049275419119462375611883047864472433698455932949898168917708991224429599308597991031437603656163343218393143045493470947471216912768323978695444418619470608513218905630592556377178494844653887140155612639949427351366470773361245566183939686540191606689092423713978719905356410276032809269518362838139783685818957258281034280259265812578163629427426913397038100960517009975873389764799152491230514493765079182754320678492281645157927582606116078492668810565819759900248878834015907430722935548539395045799702400947982629741769588052555499204315184866866138897506164488965521717884228710408007120026011223565418166762373706324105524107960744165494917518819408605959241768378226267736317934039172121707356163782542102776948431812909354200808198888270604974865491578962338004782407550902922808809403534304793341607927982252788014282535306968574486430789247767541896724311182002861050437904540904441164899921767003527978305613271169147444533006981493515011555851994520759676503357962875032628550819858251008993518125768458073138264763430121977972016102308001819132517400743500054728598684442307921688051834400378429409110043929767580460370140860164603204289295574225485724634667591373689196417853882616584324184253992640963334958733491220462570050169447922393027513059121342223288377077764962675329110912548651551761312766183804055316509536883242955828923606182227376735200362700825487170904189479828643982674139465400203199982950156426122763114337699415442247958364879855451854162046483694849504236127557577245976969653015574699528694582379440847448186865235735867248707457138698627912428632020863748236947090793764877896435951410104559352416128606750172242227038066025272628064732816987030956410465269742436664889635486876624444074372524780757536678622685374902780447070800300383862163021004589346015245071226926387364630449736723153242058317888299613520598154158082996521703417491808307388113444354537008189542637521637491801135543550156815452027606736238281267614437360618027928280075927682154534210543855392740974881942439774925290250021122167265751549763519364602296935671270678373791939650234868080704523101841600330779493168127330576212182724811387617992690100926834143012779118310136467718148110390565988839252895604762112877362530498993995840587033384632215779648927159290272856495892436253691066370002319325203738731121212305137646954770041621826727441883356860258417812006163980133420198721881170832212023785673382812506061168359715931303918207566104315560141644384475790499971115632681840356088212613792971396643282668471228428272024332133052732027933253310613561107971694573953846915760025095080311126828993104397095542024387003543631400690335901550615792084378475217905229308683805239489354275369677024851469984963438626989476816910282393303008753843267439451557089211069492063153208088649590267259720784729485971669189858973939454628446680076142639596515379926148199231418872575371690979080177472449422775181480357593325621849101089198795039005594338463585080151918067137413104920926481755230061627697298287611821349774886975526973806369575210403672617257225410167890774395919029624018849518165941814473142972881767279206563567400995840529318923877512473373095566789836331746176909254836231189742179755017455478716424655916705300615175280316096583356557409342021085202036668441481234339464597548147200747590200503278410417682689271510675646695370544322820470636254678275478705278199266486256049970680374650738585067656911678840820618799761836822013113522987596449529345495078659648107086148822095466381654774926008725406744352265324185502680089699139333563890294491383591865107316326736724539373560534399771955887490790788696302540001129732640938581489409633034089582751774317059008942360863018611089937384363701328628781992496411263442982791714950760573490077607357680852722190804560492531550206135967800811420430481477248164433353245845292231511869096981422240348881540243391533498860769703161843435007577128473938826401861675005554241581833748322728354954416446526251916759202334926288809152346975680593304127620918455428327651040381400657128130852451183977164340138304082233996278477993760802158964305364472503730436507836336487678170246647840437792466687646330812982053222902644649903862884677655437049376189598861090984332878242611989213811351717820974099375415130535313141499730373427521285388021867693746988381820141335259567567551094212152878228277984486133459198999923596343009486026871434880798019271955657622747817581676236245850668273811128696277170455976371351171925641235598845709451090855419664796220846365252451537372007124074133339362849970786683010381629864369687248489957032739527738808060624494673048728157735559858566915405464447245168473549113695729256691045683044393966400909968855821731005415331591374274350644736098827707314866851435246563282089444904157877067858008619178841328286928812259064566486348098284585188540406497779066986860032726621735914833147200702761271376388273933550763486371406616190326407299644489144351983264593530678675403318285393481773885574048523554384626866668270706825491816108332228268817819245038031445523598386033244182252111588080070500613648039556572868701808242654816095911008229847178601228890658123976650836069704002742212676841293931161401458519402355541217114962493914500017661754475288876522521496172307067111091525550970123387389108890451851002933429414751120458505210853258277800823975505969168136939508825459751794341202935248474131153388632792097430962058142333930551737760496808690156753485525662146293551984524288407553404630539476325302381859055281355577316565680046390330109400650353233118563198569575027599328461886523468571692840542455806369316440205056270206065499597475683735619899752766385591171826503956160361474693767443043022917664165612757093749745944480507963049354833282909879311021747426933275645917846574352483634905126107764136947394046862007637201725285959681069484443665015818224340885870714504200571045422475623667046062610892917313513005867004331037678974327959923157060673682761441740779835361936748145733445349394463748452981964229068674614638737558202743575580741380734511350485232422184489438488314054757871435186671021611009489847039002300585256578532237019363122629786758692536311330198266912246986282972690104647692169572941956427222220385851324546129925852675492596791925534747829280987575547684850095586858220629682659853181351381506876000492431499838893940305134846043188923161029515370182692221581944117939467932439022532290513099264106728075965001756199179524691761742983397237777804510960551031018452747589066007435917960696490784366645748664367206371191261093978595802784585389106537500268800345550721048368462903098390071654083560174789084791191445409329417561350126488599413788387366715534958655641070752053799055118550838018229883357251607544064228030050863338225408299074760702869514449012674967408346937438660158805839056898012328138576611518829213169092294076613318018918088528586074462373538187763880394518691858965906613346561438454166264254100757069553969995573154747861683312785494481027792325322357269265718966353848931449590484759699836612104827534321148578415085781157381773799565188106998147800251495005940658551215479589004622437099344459819494219148827049557923343289791796404644280352622534597184982363056566649833089303470345892450670354421807004157379890692493819223735137135216351287055829161048918314996336196802455575738091736594673747334156857630504472212820706314815368581816460872150313759977913924766055529307319830051870123161898398947386208555327732574257800824530299059313416601239284847156705239227634984756211384286262682751086579591779723207533149824213776860538315065448013437625461132438678436575397138816687854689085004363357225070589099379422123889159098326554708373391015101750734652350976484870316776324370712874877856465389814356193641810559292883782841856247576087826320514116019299600516099404732122664637788509318581342987754310232840647850811573590738626344382440856511458582548619063039529126925001138186573243341867151513995555624619958293865153907631489942694016540860768512423020299581602602260422789275301410042897691770868503046848775308532013416471878978067648793673089922950316732230901922437865379753504021599444574529154508075745176242715875304485735873933854768353411402082172986168161104152395616511720131933097223553901558013841096749115094337549154652984542470804850685223286448517590561388765544370912642088680250582695538101141511840212675883592955524577490472225940076570952043991240703242165583526161696780566046374373362869619543807299035838076671686645811776436301026045354309074247167667445143348214811867541733992927488384930472645572937198792762856796164454528691881299383295584634236246932913669124306245444796093697873978364880092239876591214793219532437071457676400382357333575842646873427323018701550636485158722466249047822306258894386149493356561196322587313268751505357924338523255192334149853254141794074125898883700351997424086908389401717990266630868678554847961796618200761006825071913821273485425248335728265560004542889400723831189051503612936458948685768286773451390865019827158564772731018595309962944213798152470765710504077626627920956736713866230228131241689061164580524673808709390547164102498676759052944966703230239020365871679957910360315930437174755967252384179176939542409124417091579055114404353172010543601775232988042976774122527108776683733572257052753114826866716347039691514655295102907108855523590179021260031546715268146269254983762111782450371575981170882267326371381014137860373524288883439061238868642080973367351895842412303784388969360138201784183803642541505223955020837506031589463707214044219874668384373294788469500975736742777361269207039724301589529112783650047979372201636485693937399473263625538630389428832871657707263590196341707662405444206349398583894387093673532160988999976191764874612180788990304874936135656991361625970884478080045156548791879988036873435038774066297260171892098171086404231597866682839697065659872363389433402667212486124227995238319637742618831738163240983129192584643574312162788301202411739538556408523762555284715827045587514919522500285245496962782956089222112034449373526459784088876142784838823023814935723304216949266644272989011442418026208278212886283169020184318241979176328600147738649034901112030484297120045839814892046356512062131499690337166988058352612801566710586111378338674996489254845845951538131325780713672429137500123960583204604999851819853097072878388913694889055517747334879180727268674632803594299993626655019809093963703776787704170201069873230511583850040365229538857857548254525493215319696867475612462042770313643051598488472157476142673824841778873411630789635031158972783166077859005420759197154702817108596976983720268067604056431456470565822964487306675165000051466331525283911668373623183879700483786666251652424161039042753091787778224363674250929504788004005140782531888789094337909010539543186755652061212782793543956011356108145777164183169588801185599585393516372927796024509432024359122575180164207283010103245764090241710536153759113834712947275620711959531398163207009653042444058119376433316398919133075325387602390297391441381453121799118658608770656772008425682664779871636923637958172214448233736929251107076813063233851040932003569745969024375727522966617893985489898765802381632172353463747651884901778068035785214724575456947652430631595185583871960559015704593443948894639548832201188369926977199730558718038289358095208713636310969870266979999802854666819783746664355539544343786103414284190739353802779175287685266402824366731504639805162056787263193650225228600671358102749920533818688193300537010433077398807704416671769381046270566860939985726276495017836834489905963200061658232514693069531149269753022086594958095509618173090219814970285680613423438172289038962830977990350166389372967323066000108819398461533793272950640248414021044322918039584818060949490666583996031961654115457787893413131606845829047380119261678569006971725243392990503055042371188720037029723882407106164317460573752928180424170589397343160362239644477362122085654602412807716247893661426334976700159626312021390844417331591336955366186740407449901946805789049312329276651590532493039089214789671486109416637839730148741572861507438451902527240630345146895112566264671565018795595322731059973391317897525842579698075925421489561960744127084635690910242403829895727806846765489850156636366027216836279384557638360367021928537343209173818079950490656241139019292019852610318769869392315228635382211442252500254666200725647774224335666594226729351950788932428589817129184543779689964363813859411539312201123255237425890918274939951406013798465901672931859340925647864724222608088755570818554081249895216085730186110424702099377823994424287693102551628897736510714794724035252230584565667178632465697521531171131816894175840606055934021186796784689698881313047389986410070737095848495747260376034973173589056677550596562076031599508562218149325133149936394989656145002139907686553682375703831721724558739126226195815586094436131795807204515497841988978828989822660399594652806780543734392296835837964013036315098827587877343903493657121430709066886550199076654880831111689973086398437443461905668119125166859570194499535154809831363345854873234050714020351692424383018949268940755039556935561122828787761105362139363978951783844218090224633600890366640268045487113354917329082837311303628856526329365329363224088690134308116586697192682213269142443626315001558906715273285492074013996102210610516961489380240553223832499998282754192819944680338099577981133895578932110747487614918942170067499540314517238533823042874699927532043748814450316131779844815776500784586691065284041427062739463400313382756160898449653063348596925837379269884881842013340165104840477749384197667753976968192687013280886110424092049831217679397181467255216449229603848891338265504021504680793706253982377986476181470813347845130749513860473180254977696460207530919351441839612091143113051070690584762200665435326338435156787632800545302790546315846645787385862827287926827173397551832729643310539168163166299961257170688881518395638253308580503631228822945077199973405148107693365600606596137306349162625805430941753891003923241868032524901623061602381602538958853340731657305356346957749663038228688145738723657899776453714816603516925935936241432204251811250627488975090337924285676213491211053113484562081346616791898972734415089270362227739423555564401188956062280439166171423676026793498746909163569963452765802311178590136083954365629410961672477534184441592821990481474318919310904863913236629391997512065660830678838303232447173379423569071031316544773459216751189301161246263550562952541433297354513467161876814161631546443474971412468483307782946964984793028729750427240765898385637023548544557164614308718970003359389171513078507279068085785937924360920169201799834927361556555859366588475282107916929554309028030225274810113373453412529568339605535348483190938123247902364611607679425857970487785427168532972453579928976064510817047209611356387320411962012369744096495479990533754827268653079266883337934479502497411638787081573463568294551537371179322164207902350226646801239404641297449364262501801256101129858691557943323807444955614301961735332570935526935433883602498017219404975994349756685746925267749216679043871301008093214494512006562644262487688460789095388002140061631704488424780562089261535147344122403175220424889449229134357146855690140464015480506999033114523531172362573848134076182192481090555549445826791668317580037266228161161448092170443183211298308774670151796511150426584168304854020108502268346771576403618552384464663588592504952463825737770139829846221858619233989188545925028999126494548649345799392929550578239266614461078023998767805265826856388381778991705398214660516654040672369858450687381631117167121711198941959964178383973574519527604799331379415182978592142450427725138239220819021929281750249045051510485409903685580349400164950817819521145256049814195780582982305068009696800845442540463686280840346616627436817158190236560337374929726586513280965811993957961251206698663490246923287358014727647399029341457278971925021471471841293816099022786044837452006115810533327380781086678394908895484444269726215621139010371080974868225368262016792276507408172870593808192449492721039070778808034478576549456992046915380208231141520123868864396054158795600398074051491956136267452381997677541040152191503054172488393085548650603966859562113262418782960899727658579833194330952773117479032274026319080541383313994182373287661335985338909032354928975860096060976156378554660453860465094419539899552006949445434723187362802635247953331636549379558875347513305647156471741187935100947879697524144075531217098521253731280707230261979101041796115887119906267798355257951050924463840487440333577772170958290675524625593526059108547935781955295501076022547875805039950197318981861170638377239831908643735567235467357634868619793912932899542579136361681955440431252906001968816029621653626787646565308692163733147097755843384288062725371954307152880868354005669160847821251371393893971673041744610521470833796169789865703219679190374319426877911893022844580340821885461193501727294184719633734387338966855653983805963003261296635771261057362032549882022230562457594571154869318661005136431040029557444999880738327692696072343180343386244806124326060778953854391931278060807268933978867180934617051117779832884074890886071720068334057577071433251065346417436516989915804598143140823905838162702807478314386519744362231074669189321439423365580252413425569444694408889975642595540992967471922667182868403666271051984469235226355872357668089975193765043111977117429248252762219568016275563306981875263543352374550829673172901362073672222296440796915939451108141470283850709551030166606288471938153009108629001948965315636053870869421721074171004120374384418423590131912979824336291327522657970117936799596463300141158791686221357109224226998525474091460595902862274036319952810385656106911313545199493668467173277918981200820800345585507641580461360561391181105649034241186268890443688638838214600967794729498371417413213369003579061502025999361944326939439038978832931931110169363586229619532451892332492839987015543312384877135492448771176168338831512105509952275206859923771996890861704064209565202309827099136574174244481839399857233914637784222662196829380650630402213398118112401703848185963896413906226063088819367023161048545227629232875341344420077068153070057630028091234592193847726425311670027717203826277093414602518464678822037995769029212454025824896597548212829672919054046187717871676165389486524097896487554487684192006881282750136651687414117869843796742393823556542291359622544152251464293822136331234830980493241059960518552241716474879852813751820892991332246134495046214546023582638970737429824340823246605236768634436773904749877988312133874077362835296117974551756098097913142396454201682446439691100073188360076977653766673083147013306054736062481369298483532175719850328277255715838771028472495165003378320642934343290330006867416266915103612073626902480640099380320284362356233996338950432597146159016740712760371889065981042474499424861658596943186276633936539088709977141119492342834134961557350395186928649645010865294171578737271139242465298012662739840352481226392949663410561619420480200942753425989875855918587848354521564073192165051490054945491137217855365830847870658232017486966423774330691686404179473357243768766516022532461307899985666234126963111483293243408010908119750028937140308355216304745657291626238378150261497768662380160343394021971980301478892264264555430280713350255042371484017175543723046010874222514454031931870518703665626627156705358589671310578352337863626778871672216369233799601811162768337110932862890559359958313916451228953061129647063292792470785894255059595540939631065913405081898750459098473949803949247749463998553477928007058223512528792673193182483816301729423527578543739770821685224020113864723330643699819302485136717808530412476322289039183927520179039076043451191712412552090808945929192633815174259120585453175147369549028780059504584100171623903213572625408749636569338419636112642609724927727848459608122366212394220376235618043258694108517732085432804197447443992449402172972561169285252552100390213762078241875999636127846353137934386522803151773909220614528713302948546103206936593971860008504219827860524855132411563540429575491434006037372408344773219965425214173678687291477933407905523400161521140328825434715112834212522676963825410119227215052831255999004091943690430961132994930904303056233241549252378096819901058016799850179541746981541519746658509927784661860548906495352456320507849931063753249189081759844178947326362501062165553152856694776293591055703269336624853847070807581644057491331207033671169225836670536416359872333844000731188566257085000672797252974252811744055750490389177926632504116064850328530004500313713736580872090257277839055682059763835548475799901782112199907942782892855066057325531581547185184354938312456062689609847713130451729806625483985573394528611852121160354802469541883666724943804420763561374640326036566749648179488203840853669738533610565465800555643093792516158501544145514316726754662447639517334514821878620864415679844037512561054087203723558373709364522908851638921335768899021346473178882975794877126862814574097283891427978055848288616251334648442035914704657046669834527629586524625659480558077758394404134125824249137013563828269991422994502250973546857000768552815181671471847349962481440340674809019463535244151180346639220167142829243950722634890071656184604453723383339463666810959424047151653720508441637371962887651588457551054047156223377637198675493521008713030540592124238618008707477728709168112028321944102693333205779630991768439183739362571370232465140183716303646768271286477665519056139496702116627457353258091335577112089722962086259857770015074691480303479534653449524676438059889668065999519855251701878906754790910019233413425756481492496267110892707892408651906566136590471143741400101612717099663860630580261663012830387863617863620462100343585636732668989759746052255422196414277745836944326503970549062834952182699428696787927494242822701209719751180683333426359788096533594570809879819938336210071661395262821413546807052868305805905868230413779278345689069771466521622080534434488120166787207229937090777064138067585296173573213092270400049514416752007209026855695864799411497242539631946366919489461723266839186120606886110912331866215731963594654210187874222670763887649507856161574959228132439854308521486116940820798886683200822440397218806274680061599182381418867734598410590704555052773732874260633129809597817399320669670147120906318890916909952962290248709929045894539285788266037355409457666796610602512731179941981493982894176284544510138676067949778246750224980862814055626010211417867611147730225383664793956086820076002844241693215167479025461004218917339273365592323895379895335576163494963059214873467759421882172672181811052017937939259559461054179650084180847274937943962383175987573117268096572808090906046191039423482613993843319310109495036979244278994230192826282983941997678969424022808244017995999569629261703422001850038879974913092941605941352637998061551096280936313421232353066082486608250234901850885429277278082722692946226852312825986944725410941911416179168038308671076972908697234130090601038431200287807818383053327904729068144460075951137260605593593304396704672023790475655163964950160785750354873509809248107340530533051687266528652036419468818702592047730351901280725832050468865396265314030642976384786002784008362685624394868465894597475905302737045347723052870566091157328025094713146815039630854995766266706091056826441060943600171366068862704648200306362173339874570555385095181388834999515588042294232339833621586263378380010255410840393003285413947876269241305346644203867572362973908315549870873901626522304635624462508558175668328703876657147594530913915874214659167326609027176556609071222178837552029238842462217672442275294527643844570196191695423746353955000095792870675273174739889550657074280740009809300484814454939809917012613658841223652059206414450085974267464716906627811660795049539920199542124981446923627868102307365173997847189545766238884503302212909602497432507053530801243840271834489684864509792593948619935653391566467246073025417668148768334888408905692991779168981195123860092715342153583809777092468199322572017481171760599247964678062502744441115200157556781900304739952806565346460307090312386360259201091970469820864254831728710261350304045228818301322274847819335142320331686150885551836516098119200205332727753051441722457177679422866922072581802865418156583126510763821290461018449155188011565628176635734642523703376926647647872120947899517811789100860307480211493805350009307574447743817423470170578338897574903685305298749711891702472144060157059451954048276945003472006616591689671215111524695072086826730231580435887519309045552787796896737569872624675995019133115010911334320451276460964227587881018680723349059506059843914832009549009572952249870467397171619975683288354139382260249717797183064935801744593935230818228493443901956716651563726578461361520816392111296075654536985589459310363475175195655012516875166988894907967841716669914906882486926072154066050524059550605883162406523105370457301465876211837468777011964531679356386156956810925474641864958340867556778249105370828183199910242359363153022388348995960933965684135723788878036630865302028280225424875171253232982533174781653573031982847645171321157724823674028302699858296128622340222607241451945998003335350947733143610692368765210679830497814099680033032032227539520873370530051449448055802467515634299627030155557571865693149043313815997572113363089045721734622177457263804990801345161207217611460129486489008582218058884888647696398104531662919315138094674145393045820948638383733819973380745454673750019607477286355656941745630426649043069272005766067631153500763084920405368803551753740162945453932621175797387817123534067908755945657341469924345767319197235238106450421740067646442723180343342665592690358028468149670288488981298082189870753528577585685394628625168369618359442907341042488440184755219020689629845904688759250643567182879880121887086565797139589994986450271911627549432706503829185614691969050322015804697752511274956997033521283191946970032697798540247203359141736995026968093379163394304239805984265318454119209167557701496902185673103321582441276473702779647522849478556937692719641462026065781449713759039236277134694180260982558731354094730332848886425917505067004207306196074241936780846447684765181470557080628546648992636185906827607675219197944695149671593108235417923572312166931890533389247706423308713452035777713221094312574545629299964546958975108176720628496156743704400745516933973036646921655251306663972719985513718297028094834691956111616448251240073457280511849151082961020212453969220860377238995401416804931476567711520693311666689290990063497388355708642583576748307546679399310772483424569468944976690323932024959668570200176297860072979775847309428477086690301376057656705007301775718964531635880293204310474235390477542663803654598965237157674462282339266898720686828187161664963024752030749974052754642833594441610110011224784400830283657897531365516273482284026147022684300252556057847570219834373951339381066760775574075566106207179712869670701480197156603422849528437999308253931948571388238642108003428311660967574854387252995183079251889579826337035590253944385539761244936169482268808754883242653130911616104124602511307988974064580602366027823138107571972186177911811966743285906954023759107061775454930089682525175993409222925488111951403842139897022067213065267731399699831278003136984570648890266086849632009319129888913055565796494371363469308345071151814186038127824376185677679069936702524161862023532981012404213247884757121690832292484557157986915343526319976094262941685308646644354060928297973840935251200431956151907462298614202938520315657735100400660772976478809317808380939157766461872615680457117200859967410759419452226897130431007893513460001042949663562248047236447994734265688358075431678312536647326781340729323565198723072006419540410996435264177283759871346938708902735661919763100629770820005966706645927341038094721523585365957799382121373446696238784863921158925570679449366884404282365294326984321492940176095639397189517847898937230528154800309479508581209993261933110786441594651637223483896342618730611744953048054776688312239857477145660259925370040451545321364453769049332738952285044452084905539058569233311570809441849194211188244595992269944637717724725250620080645422493711474205116461577577276460323009646680853059003928625902344229470175441585864487420430172457061768061910695472030638021336017877566958182811410807340007172093970545914915695233277820228552122541335076128816398697550385822110279280182494327909963326641897165961354580220714209240362233318906353028845986410664684879888448464464814785223063418334289496681163747479803544643979109049005648981979386967810367429871142313588301361339752317918083156832978518776962704355186153696052143904855896347898440746065978970248251005265724355887118939459259860448984073682118942181646493079934667459116118337907256813135443189237558330230361268285164751124809355845982941843190821642486230103523414170012071487966210429479929268932678211107863115741901604472891708584315683028191059372821946967453518268382299543981875756294373690903232558483420197466201217787800491393769840766963067353637090511044751164828845931339216031047172178084961210354059015374098742596235899872741851072853731082725699162749501924019831896412146405499730332508798002475494579677199153232253546592598058703731928540097774691334952642012097330814082694743813639728418083932575142493955851230123760478238246183176501008170500197016792237451181859472492896711406174953952281323792956146310355966802507163868478163430001692520720276385549521234075955944602054068605387717118169870688060073852316499479722196136772397768137403049729314842634097742429087772233395485200598907521627090151422454754936532292002799838739942303280786426582751757684338160153241765601079233996703760969075095337571192280124993868116875782766439750012568371340926102126418348291098806558494730553634258499638017916791074826237685959273031844821531115040834897566965435679032093887003330840143272112098660317879665092018291004802324616464395589736318940180518068785117487531882724584941458531442720754527323827688879999234939743230711017029063749433947341093263720848072321084042232993099319498606635823228939153061582801709572390402041075198221200188347255559743526058545670755925220011457426229237125087097731026544828484072817040845019137290597695115240055136744200896022663704127280299966691818906252471190298691166501727556725014095224005723446891331140628770071941448735658459435320227826972001971807006206650356218933541122762151796990955659596741951246983161921378833740821056796410742524987113837007271241179166752297769683235827392883761873551893289747902671330382292322652873873112896278667619086896131969468003665043791076465278523860198106260454166598466909897017080651846124353723910049530919551801352265927724554724691778526135833970015744058767586268090815642535846731900741548524686908780411237029474084643642667874828739907670206703414297040398901876875232224496934913956504580809190346313374008003516552225957290627392656304238255159188393549021212955449650356621042320362212320753815990701678252912874961255664479028558528184043766884640150275981409693249148377460675059719398726073427760399343136679882970956374344235568656947804078009003028453522026798429541408766708198202878479449253742700133146090696857583398325118752364279183132439696629061311644782184616628405052669946358325939984768502678790749097745814314859591929594027860961445413359826544006848099392726295464076462692991189456793264289445210604609718645273784822661019446704137182041811866982350518812116853265054735721527884971391468098978202727035777679835947612113105468133283875887620457893051223253493412558397627099812665442941373015678686563378618319547990982206359503976678276113042186142435629099974622315682014159465060195505100496166230458303652861280078005436263908851583423131028511513137379550635360835694775052544829715602365162370196783664945817198767674652812791852824276682544620807445053333962013513998967586356390624703254793534663770405791179397732380845637158940969382864966961521638801986057164890244297801276746025564894160620113692985658900263360520256917586223637172438676669084621477727640238073274552754083231263038467931761093354508891039296362974301666745173438832345635316851770864130991293423904668846688194322620410614073483443879475467100994438552024048575422178392103556674422075878925875560210167212919391718232968833943077722274951794325160566141786088627435243810305031651664493224967256385600742016967660900635532995810238978520684214324593064306104954669691256799039154059975554778044458236684128418218065769690690182385532776517647510395996947094964716840083881601877969778777380987961915791211051163723261770649753581163952582588130165007827111017181438467429448999782282613252153772557440118408298164896617811029498314459875614625282665587207011574379655332422103370866832851244179661249066807114405482360993790648284175498543895423807046662486260063356513515246474980394472042117232397573528840431597299339796977535131745445268259547007210821149574329119860457585208504385120754195997633937938141075775774480621842560715126519646149773508792257760975775481557938731355112055124626549983354948981035825302373570073924150710234038365481448262960934373030032220250907749733413774664320140323985306274439216193527598271488341151265214360908716473550368057478625563523465260525689970402069698709797261833078005079687104133462044370939188504770322411811273204883462889919157105206382982918998034587224888714851171778173226418143741820655883760406845504209298749708435854019748872411792517609889451869126650832003916151735468523218077393320195665409763208103794237446121748791084181942560758386084566545979717850151276099244033990681975946755377980519586379463392266600828194228447139653249849574038181171343935517084297933250703222552750338221836173063105100476140497860147541374315179652070903032730859951449855873053568071796135232450473483361839350163161538069085988233718402692714188993337355085709910843363243478927646694888741616471357516288512557710353680694344334763120895491597611748395788504760905058487404712581238890587129867000964472500416567834499391057519048336420282083805934115471154042934547330088724552188979118729134156785844959286660566675075599967497719704888110401881897951965596230195508549825971042061221086871018958764255418450342709767591116787336760663101894460044882660941439392498317200157123437285251456494554261085475101408002838550792379179936176005103785025547138441879693311537668011017436131016531587013654126197262059534998043144938539452717031313439612196512421808238930477925076464225956461388293103936141949524059186181937544812533965181278905189781514885002228402143898445576228912106810446264328975067021788047550144843702037301235705978921569027942758410009170532573331895756243119869298882593675274087405576222718517784876276705370244728415575325245811529944517259333777834740045150184182432285052856674675097127431833478929273157318189832106707034378506204023210384159489623629048598490632135028350360513184706394234254350491669290675276830883250335526703877422069258028007644540381578714839775824357770923380802125499655606875326766967811367199127482878270726359307164045280717505278327161783759474057040527373970565753718563550809953809222959602573357694494854393543543335503451245515477381482904279040676166382941536474399948583215330460464023577400146958555880798893887005735798080445281132906994762900490031605794202156103490543752846438917859553022563726942718228287885715391452268516959044398727256922543040041220188770088281344817821119535409280300091587972133997724883936173901167929853446289686230683223669555464109929107121941920834332255316341166975252785021534777677864378242938044242228527499483815406398191310004049815549843999674901268271108162063043026074931422772000040657812224631282495105388466542801152095782771773442265915736030956212645321734318462792015336344425052141221804689460899980640121174024207371049216729231568857618441033152767998080638644113044838475143152613546134841775928480290161179250012538269544099474311551808041391423376759635285336647946650441908470291064784414281364702887277785709807254132854930314305288716546902892618561757623996089828439702383903549225288696440481469995929313041999051731342325242758188805038560706038639353438572718120498860888351539308859238788627087197625404901399264636909699744476051192755109054867926586019633370974774195108929228082479030991272349734750102732590795997568483463602372121876879899766384716172090369036092590574344065329472129928083667842253198267750510022719002173706057311011655363202987607176860610616253073336833386538826466057235472684128035984626023661316547311130715444504228965605035171958204698441517844770507550115109648838877155668188715418471333042100766368536146582865955627743254765096172334277470239943330108795799151151373022154270400921268699892100434541266712484582131202943280311058842442311669784623009358257846331487062147848551657576346800311242773512759956551001559061772524726398732730725329837521877174170091271656974132074200094799121807172245391825120874015600322608109693334802705882220229944851176012435177249930020082812287213624471721107591112939678490389061526314214514655356080510235264537488356131816900255389964045742176432402462485355845376854177561503836837286954123070488439664608495405299010209351069046874380298804789350052108715099552577737552104364126774585111855764158684681763129816004658630371307714987431179641675192643331436464468834334781339665152341701440037893897255462435449285251725209491794228948264223681829150722418229800833770332420086302459258027680039643860164964456131715991972679173953852598698867908395005540397783105648181348658501846110765617587884525279319000219933526868591094626662557911658638417071143946482913161033222918879293327656959279260793249403304120668452865718419843845027219036590949029278572772110096795423597347175168594317675538066284010841410217522635683661053112955473700708570242858386701099661958616581522735902306504157031788007617568233606768876866185763318948690011712044866704103696178224810123598646246946195342474976577482350935248823590070422639819111692642891359755782429114650731057367853784576292376485140890866796821699962535342209225109960061360115878271382334928292730239074117785717056705647500511987031975591903351901396483697416184678568297831972414681229499338621550511029666163561045591959530127697003672012795414932819834444657547036190359800062406267998304332210136843824206180156662006508133847873010309597331699011580585757761653129573127656220942125831090719612480647809083206264120787876356605494102699238537294692434109292718726266856323590058129388191678406412580696319121549872419446675058514399543219395054830785475330000430146596506713785569717845726083957376739050321293790590896674876826560682705940275209836623463659287941046710104703920489847016076046573448204340531411809822176136212924029742344311279859526203995478685075619291483865715285664660504401695084509520688958217544780702883075192996848125636903026397196152697493467773853709720349543552619628377371188391068747738650081533912892658491671623648939256733820778123630378956602164970241723379126600701398479496865288780563436850709251087998434191885983557206390108324762736746092639689085116253504098374454039883117811576857703897514509830113038710820923337856479633534167993820672207484155811351456178238525066476675457126265367341473074905875947795408731991562580481672433794626194665913780469528836556763851359811383817614964389324107366143159792365007131914184060620655065337041795351490470545762526815669338523962081437523184410399813191079230604177908674264867546579833881153396128354785007305584411076527003326916538855913553072387975418644558110706327490233474777441089882041828422785987059056877590293224408816374684105949050148632218599217812758773472006016675007156787977423677508502129837035133936291305058621286039664917572878872525216886016857560459104227461456008669408831396435831900009958804664124444220043103624573728107539458401189318965899011632974082318423553690073545075808101075443106848237486921910330228957815492839977082333262615491577944746063575984357195383647370731413569137515501703968781548662490667081988166740476923099984178324455417739144535441898675346718989186050569576785073262394198412317042161281430651189037754933588720349944137018864967466415411053498739397029251686594590694305466992412259081173651967461639557270929317057919960670421030549068541540415580584673970442929004246751602440770902249115798927907939876292275553329500359295204972350296675586690226486274751641699396306745892617150235480087229494045565249066045404560440118413266173767298837944839206558721602444510841948744718796971758522647120289867417221411577756689166648870565281733376018356400126240771805884756340797644435402794103501520434239852075362904457955789965888849331175803819056287562424939458663875340593532784776127424548314222980681118858465287197003963698321146731458828227210794680063557145463357262859497312018838768187978163930954472924632879854714864988881352058295395981765746997558929184136385551990234496388992347947283027263669875939554539887912853465706179275140934922159557130389075001143800313316313645711554890337769421510130771264844125690544274379374291354015499254085760040707455434431368770555311480237088020749940193243903035719432294488963454940182111822458611703486661291782102252277407017214407350803745952691939199531376957915530120865316341061628464657620683809079850844981519610337810157241703998169661850849544313987895950948878101687343698572170032609333004186487622475382976699789429930927008137829582780442234651064939695667024094089659974013592491852588365895501293517112167669039921465436288791658868513113310333498142152535944937997379919356726778221150702979435604236435054263134620806139902773845074507240933298903503022028069292946500666168947230320829459078446831182923997845851809157279609708389684700969318605275735499558622318773541822239203994441080634486200483575661012851779624157084483571041808946965604613174379567718766692993350384066025221472484379774953166680788697605479373193463679906877221887746281890762376545475722700841861282719718140314265552054450501222717733668170311063020340518501374038891725695769531418837553927181239772890812897201359083798295730030609734569753923498481742927231514297270291849142541084271205961819515738755137261500956265896932435517993539163335865023526209951154121087684415865651761214945084085191748676500033719548615075069163970994014487107583357018954211592558604257033639110826959555258157678166404557390962460315547628818938635291930166467881881839117316342649873236622766735776636687987824427295183017378884311106105249989863215805543002893169196920109704331663180257988599473049851728854199420154221939177217437798399001095859122417190875628586078579220571246664016145748833801725026534034227305373113951920957214954864088682848604943980445517889543066962956394508004765087913260197353665778136265168672339816768825125028976950642265564156942291105841092526513295790962169408186119376001125156085074115292253705269538447149134239873182704916162924927826614747673305346472508484721105687369817515475870033020273676437117044737705976242116458556548817249385392513038136590717876457804207142535795266643169699031489407702115644535165012894348696189720727222070323090008482300932709317938369771635876913308885018782008839693360008281052905475317588451834240085026757005367299480289178707822826783353054428608820152736066518446699844039259060986705082879341588909749193114875492459255484019633151535114329758551080760253172303589242234258829984464759006493477510035594728920802722955002064514907174470997888443406700434051974339544527112906559677997391164849997802669853961325857872228550103890042666765869153627309949020761115059666549010816524676533480113097538125978381073371791760018850203769911131194847719744247675170549116624436946049149691832108450279749152942312139334606315874931023596460982831560812428521984395775164544669174588090168568176020393825184525511156398398510093623840479319858863755765872111717013914571019161326763263256267453595287162104847711193484431120996238659762404563917113098021017957871348595173138389121528496721550136135669215047039275417967841843503258873625094469652225163904335108296177661304258348651002192695175826032027329935197584352504838020208183539092541774408327481537777200844254743612687902993469320645601167308895751938899996952687087720557151004554892710917691797871187653698838318615690628871609897803302478209153327863673819390366077571327648636796951681750195718898729866736103487722942972084751548161983151208191853551288627566030853654989845159828759979963818328506029315223742055355468719604049577650089581146767027324034280983025123947133459464318288681542133086757308078487480246635647282702872216566956790680027851536036203522668769337493858519547620420272346995614843957546221352800008021133571987327049794292730483713466159238797495152644162624861952944040523428231343072838014622620464357101938376965032043054103582401216995116831910613868248142412974477276179234897511347358952061460300661663529109734373674105677765628548484500467938137659578436043800102804161480339315721287363429885995398689065922044297082640436216568993689816736893295979266512388453589509204375341833942516667106974616505925711881205525121055557760078130617579279898608098745023408526942794039136848180241333081212779504674626192131982092288248977049009432122018904930327682482412498770147670669523553892220960425095348527970575373478815351573868726172902138013947079982640859976210898911636685717957269211733074315839935400326998223011127803927112288254597923490985916114141980634209466196419343126933714619094044475342328730969438012048516422192376432787656225966414544003976259836796436517628551198695397839612164971852660750572667271814513307146676645130001840310447985734851558765307329816946700547606892146781622207958125178348843448497570505241845990073143411170809167672193963897573378812255163618480160053892166799321197361025893377422741565429067342605598428804225835069379766984032342694164453642167341235766404466704897258552084017493635541000812500577294175694798293670890600706885949084464895368725519125154461717910751704524879946614742283344309545090257015331279020510272076918897816928981253566904054441077890628588592538858885429768311884490077903426947388708168231172002333508349699965685368692403522570708531957146622797072535682450850762455756761834339221539307382119602003242266483617780612277702303001914185927191519123670701309393488698516125320676303307560312529381371646650107946161906886018321519233514445099094120283145775173942260091495671030692412506912223768559777417340801497014180246171426795883207210011418623789617942052777844883237431820741064030246611226718010163294326880803633255448009802181508848755926481034867515409307687742061246445680462553816425429284936510113538372114577616411556022937576663424652606789650642132072213181866662527916892804168983990330524592690572021112236484482110618249233515421839792769700971613227909557822730013384762823142247317843666043383287444591916137648116063252937346115043015064652478880417219318988514647834691328046339461267174067404290506829071438670063008837819840153307496514635060779090530446652961832374723283405728452549748832629754241232416005849119358651321094657986356489368965164317762146572244794656337209871247008727042517789937603193324416055310300873390147825732767064679610407362805757909768848685129934727760950957078036643084775304110071916032411965593076694518593596369004241078289926785735823056976823919394497687634191454512775481254693622487971302246042913840094814237682279447263830946744896477267919831730170710915689578451238194127708849467698570338794590014208504736183266625983515829159241153625159096141390431774381363141111114746320345701003751918858551929749290162847652073910354513581673087435277444809154466164051829766389174746512622450785798834977836524669027755208223477816098226357124305439490180523485258230982761123537063702194239393012794191646553336769656788049806750486782535958787252600744461997543739242133220758774191485617326639987891605132256152196715572867413738402086434329497655375141151878459303708478449589542777984389955311069696689035932749480619834818962830453600901785024106776452425317778756220903279919087503039683079787271749351135592652027775863919102411859836600970429244595654027383775077528718804726238682909351954977594742290327336972760349697266092172384353445806942024094664757977047759007635268905203777485139988705984781594788032243614717393833549197212338161310422540998888764531793452536527735289461918944520458873646389475413960995053286167220041282352203044482468429330630742446063942049253225248326679699506243855330893309081191953843329625843685888663000577960289509522428690437881646070447718319928371535320900361890202880352438225708026322889887419428708063810550255665370211766998932025456982027606101339031379077004798698444522649635218310262966119127289681770474665563481957939483170254111358401382652566246929705374298625399056833276827171072479442109522532827494142483557897099899413249588869286817649310531760193606296052757360578763257575133490925762566334982431986737665975030131891960276007887249016994172497179427727506778605056985308067211300744544458279004452617875344605528999627127923239271121236265435064103468478896617167313688393012724790664750270076061315600216750344120284142913936177552896694558003714518607953195597812395123237771725488270171772496527774734820799203577262578897365647686891698138997697862561355458716672577592286925540043173373273899703429218653068968561825950545057210807514745480044652212631080067936511294152766714954001675579840929244857719808484077780256897303536766432460571844197867075582133393555376236086699061854117562944939960731622088583694052955930372564319307146772318790105571076411548518734773937337513532972851514031680876265716134751381442220235509131179033813528328352486859971250793012663019365944007615651630206897054030014901035464792727542865110288146671261298983632441715626890361277197170430803380629615058445765294871349132320990545536979110099229908614978466563794008470131432287165744517714696491678920051604854862203159860211374465335636008500868644820352813160433734745141099253796842249318123390898445528341442220270979590252098980779007832520445612785782297209898173139344187141088285971300022118300194005983242839203565553431650844010961140916517492009476435460905002500084889381470655370123650686778330942056320647923494363421020798620026853881031673336545577290640956300994555778550844676914891070813807685085544747620451876945215004676865159994833438867950937216348152762700245639625253829243032366974546559396636716489249402898067027798504197497445262585168621720514689843709138265735274617697175814325719367308337913269051398159258395172495100162674555275748035468682177681033756314189869720093530266489600858598768169851593628268913591252980806928743479959438725546839151862040787949732802051231107974425864486104564078004112962966165678316218470357693947010064789015703191549489465686803869240999752717996184667068779442123678654279368583363868542282255671233139120913996555529880193134204117114491403712362187275541503301098821395794627106909714033831073341232284036066011598069610166612428572143711445405180572212982215274401484224053405538028726165100066570689585879039786144557932158740379415054165630108526945069059892028404216942297790987709302629395764194424410231000755033107126416397668816944484146533247964014790175557181700212388785188763802644573551786704520159533330770039227372690582841976870915112810598898177787163602608017202187786452673934098241788568444678598546697272624639845676421952020453445292439369947468506826574468403310365257334822639154374659777541426551938155437017079663138658011208810678282285171834764521543796814940207967204030842555209967822362513987336123169800904624933697360260300729196293814524928020302548492188197695825978648862856720070456860259754838298409208254187588776402699758009798140597605595562430623370994094431262680507773260254097495892642341768685471710915392780219799487316808887529690723218498149082428475290760349534070405891003347055778821353565667582370266871000288191360605168812235840421769519453701569527704423749203387937941591747105637750221865980807963770437469027927951959199279497506541341695827762981137309838838673984899049861743602606442058455054689156572338715704020328457879143302129481593375751346195421525474212733318046253457331659275913382303869412015299404384190688887198552028345559425030189692538464090476077573380258375892246301897022398599331196498712589867313106368365572784738127379001098203470082686346653394669538066328210293870412572809582106633459324416375739248455700996788142443264307990407703579666554976034479477139413757974472941327879101921861102842240634602351228515068735383776404278809583919424798708108692006840548853264765175422320148072496103722446679370041292964742567553179564830042903899247331490657036041457216284884590460656867661621356222168762763974322053962032354734360642601229573319215066113260399723655343479269792131703602074823319009243802078189388205271650758738189401597624691611930753749569797799685809273285509388366365992252397455965061134705653217142989975478692180860959542561222285053164616294283149244819673168491208700409669250471089822854581160537041700654927944457304741647138481718838801605077554406629746807161036574807051925088389737531967450120133650892321620565733640952595566446756326856573065880192314878973535069407285638149216085445223758997662248599696738973801451608209851978359109227169106787913686732660166872121060766856005916230953427212880362251898005213669824111559329949793831509741342775699366851490540149087687128109656043199045592728199422483999174674011164072741333544106283603408278923205258079252458288144414349346698970478994565909597162273461953858846060761621018880930071256347056992408853235245237248373775707374928111894267854772636391689182726539435417694331923942539007922520952520202186965896795409082925970265486959963426826970792970435264629428550717748318844358241500278683104036719254967071915150118197169829201409584464260261432914319829229153196953906974741225788064544278429889001710705016666776008371920944860066575792382931960491780020741094372535059699019168471356913640992826164536687706423586885022189036452500122563017633029962638790277144291499054557873114867608162270821266268094875490552483247153648439058267912942022399116388069762277423236236678777742567785646493471945428146681279677615703556046940040882492427720250728046942304240088268496434673813239614603155396465152587220375541489202088424203229276202768223467123797791040683645651045319494604242886885799230023641464254575650943145968214424523107345836014112709585795169208944480464962258734441500519521422975458835747661507071985941525868395692150860634798584209960180577861087749604216076884461497658132828098598365490652240093868372075366210993355552338916514917335590316957411783536214099935440309615957414032951854866819592305195136518171185590923146834098166777548231934277387789870034092561264553323391387373993891609260102214679685959782933360028258799170241134241304924768150078711766837460163423623741904364071972071290359982137733281608860884364517032192550199084977507618118014491169038654541329337475055242085989594450202651085512172413564364443768999392955337359847490471311334916984827317540997898395222658812677580171864938447195319503510162021317996914298644347801171287307327065293609576492474545796320999679595646094523755584349654617189046979670655023982710694589512640668728616904746883248479330563241899818965747920089780498913196628053799897655648211822851527473069408177121944188907775821296670248698047168188861514302480259994816060329508746703585411675626759004081629062426929260008658853157039994212815106044120084104778147346107841539590773146657377650748160604042668867175820750984433439422246208266860388095481690039616612133756358701934875093023047562409034105966337989887175778421828186401557983183508533145521835337813703143495718504305489640920350261362894464020440538361741793660399525858761709818964735662578476254919204641422396300089357980784471550355396983184354152351465641280216065876888364865249891663269855987850022679294617679102291621230575590575264283535104672742278898126991074633988814233591449943543484437910981999991093952838724782011069341442543981212163098899280202088750840708843752251995153358218771545728408704011699993973415020277987522567566999873781194432059422066016237537130584515422976963493956761228827714533657719378943667772863619881412940500430450496728565794459711954444700595462719444087436610469448778490880466378981511448649296240513339543519952442289062421538127840554717392564975992737443454886296910153242644742311461207939321146635081466391219805093537694350338014357536723502388110889720965785217420114330829004311801441120070369856648006722655746369430254970168025120554918953195224584051406754634676877525185879622623018862254388790622016943224245389814522769232312366150836596740703565749114192195527570585448753362373016052479172370367135770381799754632823230136775112649682614226631271814249720171912131048614194655338403791916022869652422132510514783219798220265773194449729872188262104194806530968022378753350835115624292510852924558743632886502275938107947572875245784933020674513453471440857213393721559016259223617518658841942782832912435652718457368769646217696056364435574750979213777941034021328551735549625234374245799230080754813036248525914781882382436924218634885583037710323281540480108341631438282641318400037200167940128834823451435059563622221489956873202821924334330159070004458628153746775828198475907201277080313879741280654479870939464748803284173222518556463219183759669306133418953274630994751115781880983285426211779035280009044050381918857318893828502754920578585268554441759859991668093440900184634397225377746153394254708854545725374773406301667900317049537117945549566776879987964940795761437725688047075358572113952926356016261573613872959485827148633342974997169709725623581698051848505009019690100830613402277735631968496205031653151470261578807902192343696813113169507191844177523414374011323519074365772547142732573632250004730990413200067518785712525452369359280100776135741190162061380688926096615181963774007097057161419293314912663310966661043232243646489258180625618035915666514754654629555374985478577665041551468305259017934632174505270249375203677801573229494042173170463183803110118366227323196940988982206446216372269933064832309936587947547521998488880026230366559465749956238837228228900091123666789643765020337740523055745207961946842785989512944104444860946348442115423300400266974390050499848137173447395420958642688238524990014582348779492075971258600451980076689230252881360287061092801059356201989691945359185750538153666111254495652709141430963366408191672518027533603045825832313940125955603020401159219181729552902919153258620510527807688786731658436059664990511149842478000652057952072814690869679514075773208351182137876407799717998123035849126513745452862480992387718083309363625546906813661277490394736505202548965918222676819161904904842191153205756685321321070447521430234975140985919070722242061683802800273901595994693465650079921613311786581214325577898037262170228940026629632171721632716174448291104951484200372742629799040777742212275535111124852881252367341597587685000545417706074599955456855650219502690988188479208657501183012564587839858585403561498826881561349202489396828231718469244037096815790284999949302984289944838620065937577759573534454277924469907000812604295440385660455205937310394703458406806834591674674606652180192282305032228132839745014271405707844714099539251007214309023550286407916595118440462551698641456506523202508073605393812323771456981722837450689876461092202876434941124895644274918094779867700173429864500228624360255195867135479157703517235008640460967572784849452317147288180289747750302003457496832513153402731182266480061989169402468161620126948117374801684995238845175353904632189402039954857432021379249656112180328095852654673467377375231562338326873081783052671984084250890839321827384709662916922958687136419055246167084472748291952972611755280808058005275391533127106981008511285438339349155369115440117846611714348102669129823206523904049512358047125491758193442161313381764730629437811122996004824864975223779962286483293855199898123576247656639671583614431403539838880798949452807241550191734417640316020821628977002091747657856697025043235424830187769968987922831222073104244587543901207304485061445036686523300868021051323025744682144887385025069583144742000949968211629304716677368623128885349206135356278579870116302948811077208844131417516235131211015396393526895120201372701152919137353620845322359361393937067136960918384437129609479532666547363341202818647006608421647392852639890870029138330750701114616550668738391723767085262821179446015726646633919976051898682442877964946501482571193548472608591925862223921068366414330863054734254663514597843352713101889632253861764961190811554670715602365513864485299239330378295055496161524183837567736762789032499108380793569539439518185677373335959690948982437812440742855156928472457585373933510392602981390901971436866654627716804327567424144587045683888273033414595984508779657756773734236319462309261060437054664779485903039211098744261855530206305496200868677399149514845649128584844935054363337790648214278270542563909862606957736839962839574699973573976676520941877510305963221381421652481123094263304907200055801141008166124127628657993257018869594935158197482787544501553611177044985749806595654893458923129840794882454975457767365574181652790392354931119453406366457221546985844204883756392005636201073758521271722017945193371916625039260144027430806165196457934361336962923806673965221680372526882161297031863354750884612274832312210949542685247609906237715923744284887608581840814521083356511352463527375924580604137702004422522620291034925260701428375278985984753384298915903832222541927857815401812219757923910901085655734782376207949577614521472499214388196753293528639465177694580625357995426588703395485038589092992947666969488865771949896683772945106826963379637459865204555576004029342822610849180669465532992433083268544512975540151522533227880839333870847881134603819626104520080965260500603222058511233399455165787210202765391932364142042602076427651898076967322339817698030201342985606118123698076625785395026519594391535506161288461010447073067162177798110042065238075129074621822329827525252206932998500724186750001249857448927104986129978076612712523597045608418707636046755580975291618454451800721490927991760725086377800957749090821043793191519932309726469910819928124718987601407778013806214380043958623425772973595902294106828936794998652692377311845069748249018595210654598179703219100179196614446535457705019069122318414614707529497453837035937033567781323271520712539757720923521909012102365332569626323141651952713729529796098642487298609724655975947500660316751027377801084015621023751884776634613186999578769944290752580499971493423080421067250001920540548948952061186602686801023994837780060667970990983490528551818033313701535950351750481923244073720159872443329886479243671147756006065089350056035124779346347998632703240240817937960068938324617325626759145793868877713829030151228737821991048269414799504819171474580957984424256179757268104166108575321819940480373275679073814591973883583737457535099198530790064395575384580174009119611512264922475441784169500148324930177916802223234914004885237587747049326135104481293294968919611128934759757420870429491083264968943154742937183151233097704020750641497730805694887330773304353167841808437824245990474991132020895513320847153892017803878039880679850688233213508823467303674242298267485940827402451560395269674764101634883604693252565337145786689464624798914763075991490933039803270488968810388384729464173745121446852980029002338628967430115324050415940689112574676960644891215730006637162124553502154355404740840855350891478586603243711466253585714791837167754059414143970773426860587811389510946702693768573112690368475796976815040018888142494423788819332964090300347130696457826195858570659164467653149427354068980399016771342962600218232657455696286826845514421178006190725637061358617292102047142089849073988691122148813258640150135409719650623833456109890672832939949647473860636352776718524012606112386786626434499430982342808742436894723979976165916838208207289132287141124104811560995486739543733766751994112721880693077925451228021891542523260979898591904908184624815329363974390147185413573531563760391712176879693474729018375301195374300422872533293819216137340627281232038382523512172042917132063097355393688166304129566089958828252006789583047515148715467792437134245073027837288811981812953102192533078335899232101570636191971510490861256898872710443074484282685876174607248215639875471441986960180361864453300329059989698321002478339486356725219888074121921148538117160939339926685660479873503119531530711077525229826714929499631279209404336119539805788098182727321196538792089904179211652090859464164701088872422964713398031968248271497089262737293897332987804503653359420157640799595887905778219922039432154684021268277787123418906295241043176876092485226183673398734460980481331195986705115231286075619166938046991226645876924469908893466185263304142817795066212750594421679356692710726654002293685091332468267220027255564948313149432367074081311830702219417935226953059451270293725635791165271782537257597708491778077371356994848734210364121487129325033179764660005389843383058720634123064284898226408252000466204820786696788108343927281937029772402860078608270876080694432448193701644862413427206790057209624503918333609437129618787153732492500497584174649753105096753715152690522408350339430768042577764344116055621940772596067233889495772929793375128313892651121253285126372746100345407692330849762192679876122401733177299055297534491942318411154249070300415992699163997580233271988367868704837218603302022525807941808010994358768419718266052359370014471706356010794187063425298847174827611044229323334348574600343716167478047715743268695247753382447262438150400548390694699776863938690993194851443202612406990046566355290115178618966615778932287606139298835139695144183333578172994177930869054227164213631718882993661807333427920755802263143363203620819420099281957522156113442057592040086745059050660537676300652040382713507650302313910467690638088939569637316082513633962671977241754237143054386173935592068041650306492324974845401334576439714778805643245956300344453709097824973305798264548978131587337943449487679750237002464126864345137882766332982988611304195529555801239378812366403263684461770752492955672839996988192366309270141757119950427858186261212240782482957509776634698191488755235734973113755913928573099838100096879697999481212386432322321744740079494977983616420914872087114423493465005310937355772199101749703992031078499712705761712944654074227204040647213778501841440914337686321120138493596429573470395638580764486141466317818170572429184378148613353680710141736889276674708402728863325707615042771209365437946376599384144784290759720250835838835539994281604575846180793544986259606932682177600446441110600974482552542595427384769203805531315464480207860023859335673875618349107450789482159711485993742548968085381918716091607316643774893619582422292939747625781765740852694044394687593462182357992174880054450310372487172438126322214024920676504810939419510692365435713241782287244299629702456158880404853588670785506594665190007765695620637940722444539128281608568634391729693944676522012748348311661514205362540083644789516077230629792749252185429660357365568144967989141424755966211148319402698038399296539143043497201290111523129863234768682530600537105616901152924488692801926565668234375969663139094613327273630227336488747235045344656977896910911722715157527695770933277389902905147639776164930610204648696059384256177440419711305717371823726527765767374776850984274978457586099011854512632765178504629344936168707281537538726516798100910227122840707953057133429478401547637621211193216358060023117292038609460300115148984458906383633965682753453085897860140351020561700087379589519387010162282862331039263443399954434858406459937724466290225617227121324831973794525039622077755021418322204265233295972214315455994977425931050635741884692817152008790779834622652631288600282209494691392950369034737648921615042720253759432774302305884867988869563307971132686340554753785770727718858823568889120339123481806097643196839976546686552020321940632960516222900211365402157475652721679324123489789670768627756547813562851826959224182344020903512215669025963178701820204694901051958660465000522050500691203963332355221835437785110559575576772731572224292895802811445436998564472132135023875447161410704150887758494457166490182399918964064650753249396633197679166001134626537013426895586987259867095749234301341467680306438300915540740724985195882962352429801130906621544199772715803005106671431468063507462809798552562518429048985926328229948536260295280429836561616391232813527032398239496974843234637608716949654745465544176687102808394128624956864852992512634868706723020405599270189551204768029099842117492365535896750229780849347541237978852233742116472990536968373466770669795781645752428024523753410119791128971020937654896772070242853832681530386605496375504000064179455996860430318102184051371753272091755241554076578522687544371931964688392453403874044430400109065742242969313576487953506462251015567901461319865255465911104286403764059876865835740020657301975538230396215798891780701043627654626077343220870976570365756998156485003546876928425988060398966183228457765855105873430006180210663179241801310229594885384725415530617904835180902431882237430629731928411246967898309222211801170055612846254644103981362831834923144710087389702795571415400523610940430345632358435885930298798268650371363777522150069871063201636620268003513300754081555713410984470132378883958941660372585197748469530208584892883675865160939922655131398893093875401427169945998927748230719835580824478706271632244229543107680683812031511216112459135672487657660156177492020605740110968927681626996636177742020442889640634329306752072790134848736440947203450628526104006732657919297378283857190006730111097338832751205256112474231451311695841873535010931060282127292937450940058102338536456238398994070887317500044213864676701497652212862652675462478595024937130680557275009439149489064081499811119033052689041109877831226777282944514410525690655322314053473877437379552408517616906523968072328900960315563350700111658663210871926546027146402429681425977395466462604500000752586791543593125983007418059029068515259827750668432318113923298214124087287396786404930265495917829057312571514804116786465070194696250188130978551155542417190046479326312636761051237084000806756103072251331036026666631200607281145526026917237185354948552056968403408352690683254823955643145579820266971763390831471507291920510983171142311531780845896460337282005981699119871723304276067647089351358721661395009151100212461051146578177464400940458103819424486295502853903655934865543786630746502825896719377352559248265712593335753608116590209583640268489809436613926723642978215892292114740471018048740706786525950414754029444434332665498996307186159874986042779710676581066890924916941584515820185204925294736135518487512630283951632461904521164946122778323622387728003483056559939721818567035241914262480640841887270300733297381049815878246756749901651070394625185546788955001389474975866399222419246807559173432915847908557523317273833731298243567550431493074961988886787976641146545069453123919264998922222398185637432534444085896502850780791717195630164338618726877384683442324446196036010742088210431984414352716295369101477121993006122563435729826489956234679476394730833986560427129630394032067548193099495105418842564321183124287714896191700837879380945627931929739471912826421178294678511090247119886630980796475452518401228162761836194619147930500586283681935479125950785918691277102204364181866054637157204526896647605505553539559032927458850963050010301325274747556208684978242336855834863705026485233142837648816686098250240475732843482197594805744762028756632107495300659222005029244994412353576492940834480228504180263809594286171152653881013468313996024983230930835488107972995832019069433907603874376781984530026757333711893981588837158802173746106985435195947216572885114131676674787573142203109670296011870061208941362599038108209867341774451646130425416284436332877521382528173442540024471349926883178450233956158771758166370422393878187598516592847348312753900125416189073493846005503252128812099641311845591990041096594475710657243601866298301265035717425690521164023053645479192680348602170977128560013757584904551006446851503973408589321855719832184985425699271630090168184664615154900020958104837034417075921528763708080823370098559321711913836456256454285343804785251773279726998841899918619947180902828190201269725549910995098655074615083089820560775209816407835134131264179072638591624769635090658408462765903782593998218280599920270014748148029451157035541090872761421135128691149586732071280404724306822992423708630421675369020680332087608906368534351416662227067943380215343936343780559427238507410472218277573562047000766266346771622497969814719402943299548997518849429086509006766746018404544974110041677250425721547636022265051259800692153921602694560103888437180073748455891995909310183896617538462952275840640727795457385396479574252904634486698199472305665750814958804785461894717567360033918389896605100145841684578424753447569866592297434421118245918875004803925913365428888483025028889357624215356742182367037326339827306235153503335459238656682684902870573862011054705847296984431762597075138631019390019664434495890871999298967230138520654764369879710882967301505018750166937465677638655376050695490182627445277311736336487095721525996286971396812143085432552975107651773511773520065541431915658884635610763712489826226074704353827456106895641183369654308433221642858209350756712861102276642616639832936692289008034245742814491024562097406204980081309502490474108863398587688375497349456460022832721719701737450393614011612929226870731587037475360244400617780957624170158618221652076435550643189455917116160921665811285455397014151975902198659317527968076155591669935478035870334603053862241065932461956719566627212806067090105194700133035890154442180948409053625000343255682481127388659541539112088644065272388900069047870925220661825030972806317664646230103295083332046874310081625503713648057037895329760843717956111397860191906234625060870998645272762357271291164325366275067918953510932720025172204653274836641719360173488458947461311762954397807620920932212335637865197225714479316239063694040028178666566794139119704973347346814147494066512426536105168433864131781299632450865166659684574753339962477831812408965058087390417747597835190487243215999490985805038819066794730899462679274051844298315523993524547019130059518953390136366668486123589306230031990180635389500442829056300831627174225739727986579741509440435061134555066571902265467789216568634271657877586425270214534023102152312307065090539243951418197604688904489804405819503975119090315613569829633396524725900864221442872007426685551241308177570907671162463375653373997122311370704668371836045459533444983050185523421849674126447162986615295878078784745273184755949101492559927522760115399414730746974578005096578169768262591480170676439446271309856719129479513357345505889129034025035949174001197152341540337208416671294853517390501781452265562333395955302189615889974831954589585803228473274635776454236289455262555416699790665351322035357449058632005303923670896996517223006938442378591958454426254982466864350867872122983354900422429785931617082028065533133175230956354622713956956597427888898131563274570683971072092522838175607897471811719828498035968415128150204432338005213554238784351995439316252109899321881188344639528577259030515732495061691009192028690905691698110494254556005140883790024846204382099268619597399500905171405513510167548010242956924331052226528802297733090451982257763456531648681917796446293732634838872799030730056956101744828312083395471048745700488584219763854787568337831977994408114368910565753542908679538743562998240683828159727525809742970780738165475346406017484639913898310158325443481132200479598566312620850804109666509016949166546560735572339551878890415482895823211570673530238870277521352904383173550063788773942779877261884458210033158770927814163959914425877304704911685065978964644381981428765574051393573077199385993336194192261311871627513692630182629945426566420763571395999034497683772392166030059550265436167532412416981314752026177218355164515184940544860509152547654883882861843674751348498203734967514796259202049932457807222136287264355558132751001852602495979620471993271021216281155196493756562962518102345041675957142330018382563949754457777000326676583652772244392990635175803751371616210338023963635797419372727898577420244452102766137435594116205509206197042126635620623691065753481128122139531665283338130226386437139768709864519485073385295965854444891170012607895542118597577820898473738637443991046618777296301158635846434118526879334421139112451036999881498942206451719010104830815801654672424273992163740716649689210065579990563448463236850836881210565159949854559099389068202678471898107057105659252764619271795740221140170395182018142206990108337224842950197998970768277114090034608423522669545774977994112793767484246439373065412694194167567872486350158899064135701061872681700746418089913692655680381810379955625751579856271726541503275059635457569758529489433121608598853523783612056104714204918447258571062402377527029139167127184892624076914721985048556113092341951296278185563003237701669400655887590363793400316596065044760841976197454270202989940006207446787865979495950867115274568777657461652514431676749056455016774506430877496436713226543074990526160477955867835820637959182420876504982568821118994380772556216396452904045904435314967091705511502967526818882268781236458256348479244612471646576851819015451316433532305635144242568885734013768952974440950570841495829462403771337157540117830160167771732630004491040491797566848477056433616136365955207986219034744660905809513157701487095376525848680348161968344815166983569421365598446533134156637001398570849589892069152761841732413222437697212284640276723063746746578544327223909615426262046658125856556361632475607734278954732653957554107640729296674256984421290453763504304808399626093771961720811568990931392189189517665475474587049172532588737583653785864633394617145211900200719273496021872298272584306988646433718480610767763780711094769433469025042722219112622741481778808414934171236121447001728356437162434177135336096731227100127592774382356858791770828150168390882033103757308394919011548046365899505552377087467743384432320549444917599548755825565014474292275039764833171923084181353323815673851758262541968991098034252047947543379002407116671796263639280165565146072940007953473488331316826446490090599307673346975542679258255945286700652626192683595696389649433314968859805858471014566027923241214720507763391639808061273889711338780106298369300319471018072011364639532855941006408105171224663846344517132989373223613595538398788745385863258891206192378001014322226010665652633403284105108976807217453673665855793149533808292315878964590628617182922819574069226563263054210746695073402413398891806833965628148737526108520681524409639355478947543993210045758273636257976204747147957930899287886013407058590516849964212206376521769943248660357133541156613125566637395581183289116146113717126287725066616654667636135823621354405113986771448167383396245707973611180953223870513657381394166331607222185177911982483881272818604134573563469336629026300912289544913303823104141571777824983705791847193824637680242374030868830269832093693986701591870169532082196609048664084407606932750016853635956255638289514412615025256315057237428338695415023950231158963039381029253710224107106844128150144162183894589759720096142482509554918956347114083648829159994135499217095060805499490184932893655951540229454838448556981139470507423841343131234260681118197271933244762484756757975960917324284156402749227918624839481487679153948550515687886276500884332102952890146370087046215953819590476512835886100998118525117981791311156530843395325398824283092747840639120382822501160158488864098972435565255721970019662322078907108653192256782061495191618372058790835748291327916586387210904488696777187830434967958722499970775263971719798491336476037860196874320340592193142338793631639270741795377895705278258643749870785602432544518992913950337411714533630316377070665142827770528927797752829780997689414191411878716812278419543572703514337824819210534788819505318608734505623138990926309193902729425678797451376836954734947069527407961870786889667905986092140827116839252232543453949636250035108836016917655341195824916660794599636927102185807587115411740531758737984311392798076637460549049203033205937459679049597516173648035692578742047968056746720306883777342021262566768471567786425286467799560847362825358628637487040824252091914378693628276516268801602071566355534512925352703625555423094372816154875867600690657900589649752747659074777315842189742813698876456683746229232391643771291335536355876066716299300445128861664547048305923811395930667803880579423365518147685593772331670318995708013435441606563801082707338911561168509934721459289108401878045716886712546430177896999266006317091780975399464089526859551379925170610068785251052828130185471753083690949333504347155291684583862961711371124344245974278117463350769381077837920928830306126405150385343268471067905536159436618752671681640155750762060219923738002041072623873681012973548298824780275170520554670776653706036440710157384705307851544750712972033891892856189100384972643078468392196164164485491191265786891507887770626489877094502415595363185953666648629995200628322987393309272952372492758340987618220628022670271669632621277580463502453241540209090458561111716335239526270696151847944851782711686159702670207980981781709850532876426084037515844652229169476757602805983587517617891467285910535313584307136619400317060520500456412989008973174721886816840851629677759750226652005737117312640550389933525757131171857488089593205878652559110459202790912519827484825782425305465447407706970430561621239735396106939718903060716283375632652078063930164316107515505735495901577758943060272572055686804344436551638424010078537025017294423241867267009769719538762787938677444325492824298890478239521193333824779029494481646104282109838283417825726910402350750999826160759716391710792918196766252283940666655039822047129735488368488118639919612550169919533191907795980818331316027738599494058140933706215206085930209832173673036572244775306061369817547177315158520604273569290003565718884955949453190956587065576224986946979855896721629295495342745202533134615863912256449599221118833694862933466568562962242484084422874833658544960436173384589600529596826680787960778563871952365020427032512165743566361741534060989203233070993291776190674709279384548852520792199276691839406951277153953179596336466121487560186992783037864869806953869910955677561126365568697427514597538583125207792831940652337324876889417359424945263840670295472170789469266548872122944297769753796017206586245308893765009954502383148255449603935092560352564054155869888842406357930115677294501563947545521940608884862104618560246996490939004322435162607159176018438916453492256032999751757979983751737833354962965526059320240311186283988049691758806164003007689965106647957218101921236339782294253183233312775039519861296849804755567204365344944895491830800365545010809886812114656168998047060543575971304048306433056065585619666286371695263747281991462952359308174234096464772807185280892439784228315430810818650519936360507046858219389263203583184684304811972446091960824752036399165434563336111724870110050447696306965844585877079363645433875198242446551196477932508969984793355000358673223355027959741991519819751360102616250971038266726540686023103854624322666079267972646377798367191933231281459037232576919389176978334077138558207178906463033138430119300810180063502351108143598857787640870907142831904022475217408293636343369884888811661444899425715340884049058616355286512882372505511076876769593663420469615646414127973288450664173508678903746884158735783018205827923622256572104674085546565385899419209514324045920920342331135821753033476163489474416247347991217227798720390209638009448062790855619671685124783909453220341771914734915077274088081312154124784746499007288349262396381046652728892835600370626442878772054368786052083960857003516361309166861922311937630740803856947732299624307192977100991780675419894489081884814951363366942213052803530640873497551223367948356505237713875070119286194161797971464596108719942655977541934979991833290777001485705738675260215507930405722019936349853180440360539619762181873353030925950396996070540269876467660955579499037282428701595534698489134681786574883126482701015854793310887278030980138259787880511393619107460696562811050357997197151958444886006538223403249585382885083815121212862605275550022842927953964012904478113837974154157150401966416280798102253365660020316203989386066201503946680565419254543156906431871734630475816541485837298911099710256374479123212868881028074869492781500245384590534485294647743714515467565623357827683605266617233647997806522020175675781550208110238755804324420650290314668903904405279671487235217250574027156020778955451268776458115014827597193724577715839890846729800544499112579232436590460280550671991700373253906211112722609006163679989526471815674303538727356273262162046870845088582630374328315213461320613937143190655949796421136246339940062479526474044113079317556676948200175393593939145327842689719002979426420601393708777599849817044874712136836287416773344558124863113095769357229718654797829766916884833429462542026242445080217141742680729054410064061007653301638956261964202954447121243008294961314038234121876609304966314151980237867463088062069655349186360044595327426211074752668979806487280584422278450413250347639027066528142942262785701079576458851291470831682876701564110172377484707565774195962325241767006844622303285117494676939009901850560482319604044797184324966979758959877888825183341184328040711842348924753836440896472905017939737432800773301682384298725687212348968446913129874648607071470214733683240058461804785223026959652988469788453173227751492099135653926212846405387518053068142921899409513870272521075513106185672912916584000659057616599102911407310328718464229579542796088266625285467273376423314822718179446180537008078266011142683204398931936138194552626647444139061747439175211845933265357636709749047222878772869813383990119355254781894194233803187973498651826326924124736961934543131014142408028806587769649419574070240089674185255812834724873384827462675935296515643595355803200260102126579194797897482241685452921454602453497183582111076511312421849447499573237109770007978651434708408231435495547084530881854116974397019651353197443662502223274904393415860885306418130190654042189705985791889144113746515628101547746228409081442144704514179646577702978001413577233601804940917566518508519259682619884436483799328686214519774430133427921525538019097274570276286682329388473272447888951360631433077474594771782754853309023325225232077867984119988270243777517458714996095798620579300680596939361037946310999095251039684254302424234222461783166142885598915671546810039891774677815353250470235176888085557809122404708582298288192612420315984603597867352557676898463893473349608458037358221885189168083430320751078781151609376557950052295154577614548491081120577490048916075774827510899833058691292881685447947628147896554592865265095469508196633327865042951621899005073324960711761298395758385828119845031426639314277664156228176419055888809172061210587760925749276564055429681715946409984892742197172026183129587763909302509116499587643682362754428580946245800829470404262037367465286916652181433803579530326233464123396221921579421664386886565901119645001210175990940150497472840664514370466370036966418849920466861160120226683288662712029975427366797056150618361710627443442460582620582846239952453339163998817640339562764512580706141344375287432485770662177185630082559045367838979293132093279336824468030234388995574885867169099352841382689836425816335178755298482709818818594664428389184819271187900703146310678764173201026099368058918218998068231770278609158054745297669405926971999793075173018106945365849852548971449267930424598678903374254053356564246842760458352516807261093370022852097145519090883675602212456052138752652531317520820334739049428031039303905737558104895448155324539184339120076228042188377091800089523719777730170186556132143581839649256186828278866984411563693345584997088221097563210412412848828441942303580966306571541950675322814073769905800031255363714573845416463619882577711758570773109340058640056238411930683379732026111598195890037059092025706941000309600221003501030033068768577936069647559939223467198668198611131879578837506231710107000867919137592849863981653399737880062957831610213619521696875751423493554974748897679239174419377932625267664340260013982963296928664146830492508809177323171646482244531882467103581437004533038563668236586758538291676947280296753137068019731762992446196524975201413241722858386213397461159292721398637989189244309009129842505550189176458509937885353012291301246716873158230151680997670956565759124372348277503062666006010370146128462271434490250782226253722472541535358373998772015291281698415299054350220476394940685390293405897327623523709664519132774055602234157242329614871997636972810609206840781355233612800050356228705109040024191410584073993330514973851482181369162452559970267312885748097950229875338706021870124749580133635891249357341596585405850805011689369287463643960658444164700040328092498398017358728478277085233787800410170297729703560149099287990421296481418503413607390068771087719554464557667039235530549596150616518675861954199499798694304134917134017935192432949094496466775053134098376134672784963075044319923880738606468615476498771439234772327808900011180610523208356324461436470473660218364329871087711653616559419096809295137129539721716204262402427950486572210124766733012046073286383898830956093801265037195527025617457080090112715203470749987072599591180256573601022894527690106403414073315047262252853872787167003012806064096658040944526639555051455136816364411378397903354230484010125171533630105060614055739140077536164566285303752638561050955031963278985727714468045256170080885744664923342909261523291961174053793590594559354861641410275422923095083669625384814832931310923440759109158221597811843424194294460965890130073365120252458437603782465442951610532289850000469533029305158257700233684785903373096561945549250870528158024510991212340672950138457651504291328940650171954752788640762229834902381823223420543330792973668879904325465691042002026864761308042469381403985067541199129806576633248946338574033670222189830410034614798987993057841653694787799060954852175846948376061084359561624993916374274956798403466699745657795800871752312335621430209817963416459066807025620289400971945451459027645031574958830275609751987372590104695573242448928162284225499542429549212592788543294120378600503751277640465602033581004113068582084208468447642681029366765676841546669668221225140350338900949686683958952393087737466354518413531803505183473942279292001409049777672804263120897294284285512411883820695046733366000847446995583135851343610927919225791806026151649364914754121597515340565248632510697610836493661054266763657799422921218837454101370549733557544430068990092027736178152995575490775559239582965334737125823727251622214281429116083035685253243423536531995349487241555199500694698804493001405674065412688372404650486486824223719579296981805342470285438517165098399166477421493726525782550051246168678035926157745730344119107500798078562147255255226548488564499140552570543029579547940416633466822908104252573518443631118799789586367842480250170893324060009481926420540064266250532015452210782353758885126564574916248213800034604094701820876756144075821981366868732838259566375349267640734380859403014380395572973666614617337712044961190633776475461925907885062586007381853093806903076029754462531179069546864662410231693711390843203686767743085524651914271735494469311191801645942403535530815620348696545805431528294025746121826676707662333523690554621400666539469384927485476976189794905260054080275385645599445684218248908736781671549486274408257625730971567429352367621542889785767778392261491590588241513975882931226264262114557604369678492989727529176142108985464967833749977466521160141234834404948002491094139237776040012204106632102203180583975018599224238483807900328757892884481528942666491807503089818789267659194622397493212475805155397628566689171360635407055389846099299016071536564718443312197131675024938117908754709277520496778562633780403901486418053371619582594117688675765221453591813242600420209563888334980806604873594615558896406039906750795877084007951698577712529743237640696554718759358378724672661947250113309714671474611134889140562364138170052237740269521655091226960803821106523611208076839212612055855174053834246988846050520607769856006639727298440419385713662214183286381802702550195947918725895525688264628047078415568985189098224555752455271675939446019023485491597113337554781242011380976253177208756123565566764279320826788491185011452789910924414231424311193901667426511703043030433820772016168400900106856607723042210306253098736356626020941842779102997069550693412217908335081130935107131241280447502851402485514027872802706744142894778663409767424050234361704165708443395670816679458877013382432033236821848253621826489051773720072357235400324507821601829552237277252342423422313139174788832397202760146816738038787449287724652608943379402914687115488749733452880993783212385997994805111282329325095125196456546243452449944146523094717838332234765627313840863664699784899490286161227111213490417833424009145377613713045196167485613522039750181006645691723031955859456423657380271390112177952677814250530026453357260373283086297408570927381379159255112021993532742984766084188960109677027517081004457068824315174360174253137203256089921997744122701170791512471037158997165002133834403885136137588364129642459565193288111230812847037921790889685156893517853748796539317688922441136267854886748210220149160487539625412681473999306360090426075984872567785876822020405329102250202104817864034629116100741835511210807134720502650474350676250961415550388924770314012560062599815300474938220253687282501208715256993955144338629113039557822554627955361394249700105622042376906723276243168976671660883355441019701458271701651598762241486651836710870779634160662110121456756186556474602734877558364538802242660318290760298212117439083857145759623768902733794181645555146979525319980399406033591649665305176501579286482894862720020669498543676367326821968668986479109691340515709182129808197040245845498792453157279589039058626356228029179885636178544677968267156961048069571156425773577319958843460137546275761270588366653704212742406926770978712679361622310860159269559113123769442842901728679750846127275940120379124294343281590612260774667169177818491504325778881443253396301009875651427096958509634668063951850145964518349882370662532608242477767296612981992047574451349178511731717084685876567737811859841283074077816423929889984908080625551857815390572489683007724482249013454896523617337269710966997779206220235498746162895723058467453791374922343070945794099901321416197427352267271042251569159830769894919726823566896254425779257411006820040992365277207115313606682307870003141574236411461617937156560544823665786910386932958317933037831275169829184759213223410768322876483905418818243649483584737477352579727286657262743438477801740694697806821153321230629934688603478456694690452886916509068891842087983663111823136829234891355684521847539521946479955169826907747211252318657331142649002601210732544461847817625526864768981549306821427283656415045267813288901215441386371495899116666107523985729720501712688866072541180823388934168912323075383095345795936790866441723743581634699671380304793290125303257306483232948840065873900307932034971402420663844031942327515042845608344656582548874207775490161708951457758019778310680099275062509192244751108569690809118687253131285128537811883420026988729717832297697934423643168595394249573087710563477358852579780982052774845473399257962721108705902312448632165619492002826591522798931091880798868324827568528179317357790494373102770620428955358668618244299232137702831381615933437334535034824919134233858483843434112777982930565857744349257296610020057027064626184847648387445972643155353279067858678176715884708256027158202996593660681593837269833433154498086879614170840078257997623550657862078470786489493721302706998261659008140548079584532949689922404268756799261529346229561060843317286734973003797941573575029509345206661446975606066746986612189472469652245844872778658065387200122037472742813794545071141245696495321370221039755002759312411319776602494168711631541520343733535559016906062200142335629607097837385921597991661599675445247149192836022149566970224704629196316856931657282788275811365540619657278433721069280079681788896292827118398086144680601542125460948674340143731386287690249893902611532021246430702775857101577926575825673974934777786192154098157156592323735610821647360343123140444899151232064527259684931422420696901184482405247648916828686015722152750080951045134491201606352381025183646133989567908157960222173346771054195998823706741960249819358331719502469792003421284186818542216343421619344718473139247323593210923026393421948246322524026769470432559206366057811146913752489075177584717513684061158402588355383864114991973590680610421077908706227162217441176787833455783486648175721636336846045407825514325567944563398566721027843636203259290574535151119791276444384848771355751684833992602461425491428806152832538855915506082450634830799295817476080312202366351983071248271573929074651995777087527754138766900069249533306142651277678165371908855609583839684018927568017703085787276363858212104863371380218093061570348622319093787275249882445320508964331499551833725937584626304932953074794693460534827385670376706823470225056999521553236392926775709222987740413857700124259808600617318929205109820830246823611466824329117987522019858350549072047560591896940161788106135810877391796605100469304455460180797644818041643947109458631386468412511130525555389731124107147296686086017880548836487853082519547571461136831375996510267349879700385850416729462597604975978139405441177951292002213699743110186559302387458852115657114931798762415989592260917091259495009250620909749341010636945930564443399354771208528632515290623825226030432137158638622245369273502627733726062446651634129337205790513739013763483677694772132063912093000267133225890672430952709690495614707363808088709525923968848834791494127449162969231809632390280091286257434371507624982989213448735997552345464359018484400989562715003984266658929766060816093397520032232515330845222166804204451486956367439868047268290258654097544060414759698611359477307304066942671935296906522869943884609450232979488237921885047269644804708599175195291011218504980021518897253337397900514267462474277524795688144517802886042160198250356530515799144260885326307785488773927171412816699826492229309772436632221470898722229800925456668456700716156606354387927080218913350296711242679170098610837667819810689781372582568013087764926061541942377664865897080661090261434643045645827070630701856730313733832996420789623313604638142104270130444520534270949476044833702003030180691142416412867275761963650432262417472189736010870654960190097671597635521716794121773787216248820382294889545771901438169225171344183795810956301127342670942769341881145730643079805643096145130992153932919989304905698494748146074540246486086698475568467858964872215558273627830167312451754060759307328474629264838781280460827173610351775891516597103797760586097504761433220897982549473104398428025251056069114550044589098998533846115915245639053950616877052641593489067570316200602419217421201735485312464838744712494226121554985340555993542353628821991452215781631669605662057760258977237348404080420601171058242289184399331803418579089975871121784494767691054741782395600088958715225355905966059614214615956168030674084015775283831676557015797300993381536380365174284956345256753080355539808987114695150327107075613735885331660336516812434130137596665774400377545605858648532913038873762796595376680719347008446447809537847154447054950286310410172329825744697658871925319464123274211619882938439167265526111262347295718332352295371793419571772305903102930875879896624809124313505736715269133702814576029286940359420635659321329896885548241813500830189881086403650275631684470558722862688150528934439134138097872982416148220449755499863062900915000145785774354092580738769846569702146299070732173602334076128740410346194124242090691228846688456078014208330425527527567281819420064682812590626415993760193741821794228568187213251575489029538601819282945005698575559977764291238418475165271061744800794622185603083679054660453082823450899485900036228855230289987235175862342760980471010816290709656866325918667457654618195625456380582023175958884318586351782274217288999401124443575683499597016206986895875285610218600859241209187205437825301016861585302818032072337426552337323015620160905074822033257896822917293312006569038904826144316272436966412317648769809600746936131144084630612916643242131396764151821967842417219187411745025435756689571651490556158841761098388004082146077813375767444003514392487724517506698415614108892384576737539039716833083584222732689475275119686671985001717430852711833872485194934738534015122422500568196445705118083735889191057453148538532420735458817423428793006564718759420700469213654161395719418936661485842576817306687849159061312174117159442239858995294217086151445624684708129301242302974068088567108405167181635803058517348152441107195377179606458721453482389079632031094115020421498866107433764182522833533820353014260960147724941822288849391619541336225554666523261554097487065455396685362627174627416993892397192893066011511460846496463446222377299914902393924894731080681387303206217041878709140054947088344338125170134785464343988975387660016014228633365325470276996082676236369967880753914597564172572466599807947421008956351802203431826850734892832836277951805457675265903901683778092726017638357970919413165000613874516453608611406001654321617176213184568420165266028641216841251975539937935499316942380034552119741473648156003892405847477818084741629762342698113470042203044184853919986272377056205576261299039638086597053394734811315835445147421164853769637401682508296792183856909098077615124371419628503089696643986234638624270631943594941221538539405476075812335599205782532867673053410944003532955460935881309247280569047779341115864458788659123504813244981480201844884266314860037085152423059400979457263357518396224807415754561304625144050102217069538902843515005235898372971021042101023395218639400436384835104297759356142282331713972355362648460490236926870903806752881718910538754954841746545364055220688062044109250448919654181407489723130054805760261962337435266451586328285842326909175428660949939946299239352611353039751622553772235664164229351187786715550764857952183071946779152648365116848668402629204077038674319405049871413486160924791319382888558681080537891034242089069548577579296437119698401564311419337578176099773875361781873905328387294118484719474399394242637206816264686745434410941190505776236316601532576031874206469427739717629007353417821141471476125008829161263260974658549735456142645475878470825322151634172971180363134938281941853130451040097830508276394244713266230219534409832054927313090180136368645077760433781860646752114982867111046523806234310842813442447603953323779711150780268499783090172379479280530316237903532477425504918230060065724780365556425907388724349755667747757133481972196054592188076025078934786723177577434040371402718821967863261214905748486600337896356054202473291798285666128778216690110990672678313408782661327531429669895466103816946407206491068650979458879649204337109880043659386669564624801206462664823297475251595000970500255017658995666262695037136373663827039516705457955174572545817703389197717169719100332628875255744182176627192817593769633208230807209257785171979980623017550636454757778558232908542479613898468630304165255918835176633649607387675994493987562496995512416306506409587244911882013306178981972042248962265153106191046998333380927468781674003301632874441653577892981339882620053647946966839140174308184020111185126906473996975055667874748870512023778376247616219498912298662051023075649845102655455124982452927354284176181286754742235689972692359243378861338255479247268498028805788007698105487995620426687169001099173293955604909636446245090505904537707535328775734110608047009340550752003057491834009105141982470284625242392761696811481314608511277465611228549037751676322885891528179260292875943981490761197113333892929349262729542947752319222166902893821940094174013905846426281838578626985993188562810065247637460880460424309440611181641441341342996910574398690709569880747877501214655991652369993088284025912835496548465921081024405247720070635375682596070166097057770742002424539651844804594027071917108924116438376560166911445453950326368265026393892823403019305436875643686906484899861976663425872071729450460294860157473924530198950402201691186639968597379991880477244619034689592993125011842849595186891119413392260382737998308496259234561396740542230170599074005680487777448783714792708917194641036804161147858739053007076176281820440917122961869462090045712531325334845542795097728034541790508192095726186814929168942870233373396214605596191845053457371450505063403682996195560267582550496390057687770866559532460822706567519776222308046126238649755711050465463502341295436783309584542865663699424009270808886015996435965196347814808934220088491280290387672796607142498919517929398932271869718019281062683650774291716830560695087618244289389519528298817953595120408624343168723215451004296807652672072321246098724922940203574896362350494747807355778283984854428317363847101031081518332590557656684298054800029511714993606861011383407730531941182738543264949421382450366041585666831276662847652610018376247600547761344330527162341260674067741881740179793175976094223459796317834068512300881092941035812852835907136887953185634395685988927973762211158410014443335413390899129910333684866460197465309496592050823267153482455744622927115848908009783920983007899329434445059544872534622503078411934682364385973144884140069191541771724124706894591024041221839038029763515150972830366598308868912512830612514315716514255336598871549085369161907822833095012546618041183456277815873904287540780556754746698566859780841649797520199626487897979579144903562901666187307016608147171203987325942223984266691493323898282929587586656047180398633112571121658380039635890026221023482821093323585771653777144154361552141067251482607128287111514112125932998270896933139424471253149445813110457736763167623297031604504862989630056726156899084758326076083498286677554434047135171291007043095797455559478746639804137225305669345135318881134576658203338792731452043949745231774851974140285676452468887738443269283598676852304669611735470111144394352032374785038004714715514394976811198948264989451200364667492796000427992100939962627807756653243877586412093947666418749070426923853837255076822751359307998663554268419394706375168751649139452122732791677180581983813242349178105155269236760494390682723270058981573016627284372273538658128837935227488508792790911816658848324097090423211256811984623393309073574481846393049588106061153638663083952607086057176982232171207326935613799768878137544997712257650187933588008627964017689700089980458402632838130415199999753666296168505307945628621298160452270604753223383894539445135508853482492803894665104961119255892595033362776170679254961486762554063625249432256628749131493653358330078903750484063730337508610262649217001482030310164251713257332694086753997673360636588846516564306392637727427818893043754337437405298854747713702835319183904439624585080064305544461573962874083469081744287644227825685052318284421027642765049620715690542315786771209627327858556097169887953084892074444871727399781316382369109644662266848050823367434325228392806014469401602089390688809423198194469725574444156068972432358689826886006307818978408821362840984238209771046124532440070960901325736442938719352612784765930283921257864654734193995905300658901095696961445147373692442107616094540491824132067141222380056974077451699719604457156631910781146938393309702383656086342048097125856751141299955191545731241613710198991256471550933354692333965135121942154645079083857731616405730371796260634752188898394259532314794518807418821722065737967423675161551836403079439394079086893049459094652419931656023566705149929394251961252741903269539406438920891516290639901902688409608012773498574464010184019283285856579794247028350265021570366482214275516111311861016205215141053795814764026048196779036446072610666190538183888664926724624259141316278737152312421090271317459496165474711771441132845817465642733842617193309674026324272986034007944604999395901214557030372871412025099625538374309944757222673013149467843416082862264690480996710511327740498771461689277567867766528360042239466518218414098887136802078793152924368495632695216056282650269102821782189951678292879348094018342892626759255408697445292810027412844467971545186176975912520897952596086682185999686287736398228865342735662551071451087190964060388177425107928746700376902456485168002847140749798032950184125672666977349063767034756195698009355870048900897709795220742272352606284347369637357477761735927179390031024604933463746947141132593271932384560812862681445253596413860079552879074850613273225416511602686573371147473110830644767469642306145473426657460466802270584872429458917363276686013936926638246629402159744033039586693763114503703703195548761046221538301767715209356370101087635705274938599703421766518262614582214950683553880140016392008166306539406809772660526830916679100645673003913605644109372848459003750181263757078431700092107596222629041021703317081671263352654603167839513919302831139425898793004360534644359911995946613723473566676561612157897049009345981991922782065571806779888912479307256854644942774890388261594874204673476402902111371603070856429933471730579237110248571343857783165961633609910734785751148246153153918450875097273765630675680074356852329717346966439438306331791153489152226704103437220896713813971650569418184250567698838526728672457851765671067661377876285204218459705537298004859504367469255748650564031721071359846993387107541805325479382837149933183016163022102011419719636291640669954421171556200186477422556097010322891774483501966056236991232154680813648947612305642127508003911501908618805930437069947578538766872620594213406129124173572378071210856861921544435484528825424647170224461475455699235222166234657077327237804443579322409050556325683612978401989940936925360648443094789873894979238510812173489558727170175678081151402939745373326746411190691495660966679480119454160764852802588374716167449162294478670659089515091435492945778803410878059970508913948838118577472639900663529979986451588845629473403535168663697481440628281021046811081368731564477857947169942289621942198878940321377147383157609803292788318243015935676857524859827552899486288077396684308571062190802988582916436543402026536975873118122993543679978613248043621757775495092263830563683585665321230279846900448823942841351626621801844178484536586674497855569880409393146079490609452014662321468324819847071580411442525326413164024460211009973774512842541125679439472417668252440032216057786355492164933888000368448038923102354461262339296647559969028546290905501652527875756000122329344791678764977377222919549487554999515359841351003090982222467204607543777672880476758513650610838527431627212803899679405815347714331704566926316856576045210976394669003453599863507670856082797280476098769556398075386649829549985446888348687646010876979913462421118896958139652400622776428507913544294368338332219943610884614518889990383509776085856245876709539439705507970210731303383458755385498703848016531750151245137991572483469374693320473000136524365582223461594605462276398080848760581829559015213523559608706582254310846728382890098371998556620132219451507773623492116768097455500218973346733161424928850319361501185805602431276388978400868191972907073931029768234534327265188024449134904620378267315293791509028064743897160181078425964057861282706555947310929279727257052191393004950532931769967495491917172311209954445476084986401274002706363994459195670073955347644451537040824040475847594003462532697737934007684322124584324202917059772416960578905216843407920742534270233261071351232507747170009218965751731941842056132010363235487391466825241421490406253320610409441257999318797197175151885051807988311678356673307703818000549888247999785433953256254632821273223303289393422031507402551334011751487296870230390639104998636622578207511215827881407989632479328095403589154145931563555303337801338875678312075535882656418648962828650614765985584043089449704766872975511222139052438997575259070543252144101393387943150415243654086009310348064413362458554972020202068865013296909561415822234408161063158813551817982219041525521278536863626083658759668208465872359996806764668112131621372421941253988950368423134960889225212262334015330744499529469451821474677918706706158458724613052810212999379747815659058649083221903850400710518619966393400077459110756429725468917903390769414496017810371478500711832380569291127129862451337929353525675671241516709944870253268106058580544348838466563362075007775667987182970671558277653852945098079296721121091292179815621439022093812846539956977839197939699993627350223590588105421347518899463559732749516086680234800817661443806118999208216000684230981369335067670966295849444771076194328814389305598990558227374073144000562193228064860321531036490192563180724316862554056377733185480730284860463651952602836627674336141820650934700967541701977399204331859706734161825889555051608447432991665371471596180060974096324747885672737293591331319262720311195311766629920542361626443896048796187419091786576363077601717219304368000182034480175956444038526961274359312677177925391222877535327646111515841609964805740622865136977147253972808923132577181888118533517031953885675359856351231869475038107033586244250275078527952166123616848936575506300165784890934608108184467146512071718609981671608672491859590689540372538164913914858161107239726972031695698877617039627337390588401935216739378990013312579479074502198250101779879898763976290875290640442351306954417981837200346041289983118851456808609468214938084949900426132941242594341168296318719957192092306586313205609153453556291976123785729481492036755584301027204293604634433582912284285976694420443113251762725658005337142380370596980850730212422503130104865197207161956126863464330846672064319027922805838388620314638837734802962926300858406602015502286802232173298839361657874027268847806117238389613527865905879278610922181114418323842185379048857219694967693884458794268266618570099892758210953445300686494263730297966930642185605853615469698175585448358258601628484105007326512098418539829391497261698082650340153629003931362354895284886832414564976439018966325791781027141520809483178680402317945259729492270337432847737647364505432697784096527031042442286658083733185896612409234634084784916933115942443247076435562813682884675110627557781169227503473121473642249014610449609194115658211849615889573159423760158121229743364636322721740799514924788169828017314724715728333830437913045217505420294725928080696655024549511886059925124101147067346531132464584409688027749576394378834639275752601770909748234086965963177307182184703076602128089935294803150920568514622787878859567677801947536137070566763853142949561246465685515242426717652753455773544063002122812271971675911717860850184926212735482799413430525461351980120514920221802708674972316246537745028593643847740723266768897429862432548651767516356774797302111818986850179676829327752966899326374509986380425213162140078673476392440663104524865313471820047386842978268570916744753826624278548735514369047020709054275752117113948764515498983370886428531469761717994331661868467064876156910959808495268979143379607080208445966982432353901883720493987585328213823965135335683496824388974996181480607291024089897176132733975229964802636438125067980263878619422717620346105655748073319284341701236430708791667920518669951467111557267718106117819469110542965568980946789997227794368329491168421872990338031337782403244519974564989720887663506687947672136845780054833494458563947425816034634720819811756128923444599842657732101567623405305398829179537967176238197817525845431762108598637893236124896258368617757800901723655545701558804478077964528448550429216793104335329068859677835641626553485898336227482830786114157989579354569680306080880732767467998103092641523010942342003985914103415075489948089412908738808469575264205925995169279727663905778784732830422847066588981303998937504841905438411560244491716827737446747375478607881006227107064323682825495450443696298048121453056335510993325264790900703274611907944893921948315476466001335408783937580121241552970361497002283463218766058600631602940497256742747647759624048501362176543319678822038229971241370878664938425771595226372705236346779891158560879507227106920905298916862082196979272662141380735116570840176579484962457347779446972324323099070946664253597736353234788805080821094210013820801966800056212358158752289417588783146923451227303265194509624216572831794917138312649710455918369590874926251193779599304966240303583395049279905547711309147787739137348156399955021859841631430800180066439117103071791007110844856180946665691069135873417195644580730363482969073745304922869397788675178182235356334862613148554333707047940812868943773775700738525076781521863663273192988152922371395442210118522432225422463965360631018111206086872142519949478031260443493586484749430472519495690914526842701719569377711352096754502340560763810527762618208895594313451868584049995861348476995831882964512493081743504474215422566925173382496799851735915716173885792476073630281307439273317805989814808995166778821867411428081444770335439965151945763079373748553515228179480459293977668038368908359567527732332228067958236958164451424268927760865533504809117652736401667066897786270601630864115036085309777291315918618861050183034309670241780227763692966566058068894693494797239223397174964527012254895214915357589949192554008256132114600941261140556752556606922480143793398513422952624167542178084665724471385410339296935565157332814455963661204611727741864287689913058142619731491844990575732460203540821994564701765514287699274019638318277104546738441893195314837605033670828677271301457410179835181908309413274980456602237356397987991435343594558671574435615906937270923869949567958225831796749765311123455990666380961551844869328706126549732281060695538621983471517990233682902492741417816152950501076448520230389720117058374014185189073919635700230639499240409764308504987393549297448321433407524599686021071824887656253961436937340853740631019591478360520940754085536792805514770984201305833477145305022428988346160872732030752339279801011655232845498403237575297277169170473729140442951892047240901491331309769290638619200172093241350068050255296989169618276945025447429788175595703132840491258794084808826962111670313659374652015651154041200674093002123447146011085933628758292255727133103239434536472420604787420120689848788176337990358457005430651428030621267699352257618601073269840328481711754585376621675514708628103275857260006250365328711120997818705805962642718215136468097337494054945678455452723114187909134616989694254918622593426779360270868537590974338561938537606941179027092692869996482543795187231158598201849243602054630152134267939791120910775502948059873814082528119031906334061405165191258632131048730780022755005150820683302834333706232010981300180184163315270679156376660205434996270385434010272585108076144442480045697646437531338243447727173371277766121874314075156408158880462474215995148478496019792409047382928444496629253424721592359874590949185993312814004017463870655315530382409012173589031141162226250456863657947770040351899881243055981829063434605941109602666112250764837741697666390136113209046600464840128386382509215896198772586157618392158327533747131532400551034568027090153914980009155807549299784113692309122178302376417158162991319484143936108888456660930636667490950685386136784266786685093681799404691260122088379423018542863049595818604904201796885315635230697680180893595646822389460333628722447547124313126983106361073563933724328663940346174172087273313058357516690571164827554644161238476574308803191948798743869669739973718501765835375702411070688129842713992104700654897161614529378855532010780591966205967080050371952512967634021116060634940826619335870124122608286466870532602735037348679976746384969551220144500639209563124526855102672784762021339214553347817622335386500224330667744428336029997108182040703126902164061623723181223515158861932206909703983378557570930171261748707270947997178834126956630292679169914026685384300473327632887994660461076841755132857896282881787466096442418853737265648002456475307608653730037905127948297016408071885667285639585090596654307406537916177816663335526612076207033120177148615221862607185512210309801431312934646630483341990606307336438761114652477602849731809629627481170222547250748172534766834529135662248559007436281629131985863261179092866673096725762292201598750986727599838971029525392345741002324215159337151141665439571405297193160436808830981413925711380208264909611733103242129945906170993234576726824273274516275245579156446063015238401403028521680235961129845439088617479040026084235208650925372830467491669676104450156748348281384293215888471746307312116379109780753075862841081319072727410208039014215200916722573258655138243954794420517406270073900771968793775690537882953766360442226995302701755176169082918626100864118883162576795402035948509540417064141505192698756835122796519473524725438296101575632705499374575926756102823102594667154252715194416164334380129511307768398276415148562514027316142373626563403280525838318836607218671479948301214327782655487203501419558639746433549400563691775992064996319559773129105445665772095494583997113534168966445938948311080336889571141797910340120895551494667758774806443139160380672082129829993088738515356065016348330404273351549943103588679741147199437877638058800932630326174855284760322829444517018322408853333223768571346000628068504122474373687192514183201229690461394047417014327371189671530080008082239187752492922211003397814821010040206737707353468903309075102876605383835972391132327747699104768575674093346362750980416597835840413811299538767801604297092782537740882672290945300257961898659552820317963861011530497113819439172541472814482358010769767702821362475167979261959729369313569042922718759335490873839011238462276580197995111232027851546361088687100906583913609296951153291739597670205545828141484687364617515035712357526480756249449620393401580748236526680498500489190742539533067446187734459630995956811757568991712355965480967760347023820115631310234764775148351624563536723985794823083172101353595938231970825893513873081403664214251222655867504235646992138875690594981494040861605687406215460917566020716538325228014204864707028799493145406139867609968594746679629712513084339385722020053775673740167062984975074600591929336781870861357321842492516149991905704507719155372421001723524099571108997891630569514088145640250645452970379863935758585532030097688372780071462388527997395480417580124963645831189537228432176155226299793463347384386475113334328959366211469068633487089745515637251671094986999443084776227214906475284318932253738668919238773806542292872053161960935044795472158535114016112657211630927250240117787733374961339643576203283795373393525603913467137793009287220429327919170445204911422096726301815105502793738790614271425883024198226855309783652547453009777742817740931361304703500364833223212197979506633160122527882863148649211305449468499380283561807329450491550996740403067389502416256950732704209065334148333985588488505903461203759292488773115761017588921132717305894867874361859835707658473124877412655673178656549801870189961395801196178391353017765137347159230460136492068873282482229851101833691462534822562183128248255041088045100729500237851631541722071636600725981327705494635220056038203071402719037316629234702618140368350016880581714530401715369772437222306681259160145951517969713173876349003982857707722922896102561316933039721195929744101962998997005044030269662029861987956788224072006972320447036187943296684811528834493530593932106539977194734689931835240765057123024800385160281262395407644680052557083644831169771154971032080492313624915935808239639949536426869589697602221404515199122178269797092032811799149200374743698410835306062604461425266273093037652507352410620751769563576720316494874079254382827411265832076664638878965327026789525256009880828454374394967522934209390615412156259642337878815318594333853696223525786656090704963726364294890492262971125679991629118739755770744864527531856604819872505412081291438980613857973195728004092829593336959312768125071807486948642787552367523677235780674225342670445179439637838642320758290916715096736946788943667620096348513696857577017831500596019880583585224856250367714645615628700232854553551331698379808007888781017078483250997320818422053602012649896884967826626605564227897266213356386989317541363042116778389864674517748835872016809008979228875573024394990196936786159244325300255815986398119464140538135136652019904764562897064076375455947428844427400637249267497842318843439409324513805426498956068945033727829182018023507096569188670828850926049791047479246463790622862303107673550324062590024582722259089677130277443210143620237246479464079995276299554228929168609141061863392939739966501498083745731363837525135458057383516761586833055165685560205390366636971077871735677291348561042799120581874248432185912536329629738352991552015846906820334453814710980996611208106184058479327503891454928859649732316392487649144979391073660096594717949413223312975849048149630804619217949269717020445236731609055404243718958806006667157585444035172333659064874713491911614612684197325349275886979635911268139683095001895180762333469680339062874854248676032739567019864377319764112337011475728449256483468003075477201093718813968078134249076586356800095895026369186860553314434534322717325725317471809894126043241881848760343332525774346656134420815823929573774048439851894233241064380995205896326850381196948282603844153452115538284050934972276292256615139939796156829666430463140116468726518199636338261928003060001909029682936764378824612275988215961872922282941035122273053131631742337128816064178012601981842804119455121109574018029597646132571724487816497934768021905123690412270286166589539224372523340259317829090853153371946571510601759800602945816833844571252864408937885321813234559406637572840928633043016703561858017207633010436878771139163373432382621540996080648747041001439982193860407704264961966974310323572001705605185755224308809209780561776143333279812330502605460641206131313406814631815768210449958434192214188143578138395105460248269588245580210918962388862704250472863405069366943523773143139223508673641334798811507073052632171738291925475489569166431586200269395215062517480945653766029327028113199299684503862580928799862623548173170360361238206711176571838472982718277133518332104262489475138954460014985693318093808890192918347285372245478044309156969921845841617207506949514095596000932369380153304817157062006974515050228817332332856149703749285040598139635159995205622797907659849709644631900613637455043992159180437478181405902702616639399035167060790832047030904962024362939985974114262111107234095478030720617977042624852054047103308967006601239366428060923805331599327364969322657860627048732971690819774527470290800823224485259103101355340419919938869959812068980193074353739604208801636415584065033162546022853221987825430936201030281259728266811652531683525721188984542123450459138291257502807917596067773783946832332592325061472449857263933724169032459584439011701072918092481072772759163356249963647067150289011284305954787887950589333140784553792222790205724825945020011198388169724905700495831591899812820442091879590299202277890079759857119905244183192061463210615831246991757781332399302460079178120822056887833801212024692850430815505117145191799600432830794832342971993267445861804910061302888460961334122421090047968363849846509869644776083444684217928787944303543667344790060528470813125423375461317524281345329225955022212461063164649982808218124510590663879581911014288294586319956987175776185457333964989165024050386957023188472378509418738070106134277661350460673917712022778648337203855645502683761848279457484980845687196790706495967654573522496913589047603564537473493123257762009239121774516184415765330252833944151091189449334120797485730444018268899984745889523052013779776815380172334233605841657110029742575272459216617670159040910644392083471508660725217929394145221696101775832646020542569917081595809445390922942516825225528436772590020888074268660538503090467509768000104058261381126841312249506546684403770820094203281075245362212319920510718274808053037709010959608151053549860960370165657832255626043248224157192166557698947373226920977719909203350145720614968332824769601208440349742642738205737655125156610109677134745191052124825327081010922845795218510663044472962770407895213021102553685548184944434639615944683349306662738058560973139469011453649061723741661682567009928653296414430762707549790006887548861272493894887558411995282931339015408095234423416181453347591917610951296201333343199169449371624625218391413862631098754073572089617096096246408861896186214006856640489507271468521618586943850372158874257883847708601882498288643150274373049427984442615648647873841968282411790979242828622838763569487099763240055263468994253160234967464463085309845584359558370295304282901867283781580190843046256493587971146431647251536662679006683741363204476578240470881093029360238241822475186583000105384451096387494918341184381635080653976832878066635705271586792290425228852310488743784889045095798100282492722832696091930324460059173585959492418085140396652726391288514319291645209493009544240784553623299876714480277013166227307858281043564966133157074417813636426506814175322949277913926064800874079999090966860000136020367507469442574937704553629832821374651976307883890421087572880015190050758138721686582784359968399677680808767122044654075445511899006087031996469191005986790337525534727357604738623915959570855891623994867242509960829140748250187389291698513352077869975830709660764301934108919339423723975264413562866241406962949555591852333593180450973158420821291330852123927173213095248535378036089472629248809652320890977698860893067019956525928747321186203468940080769160751166742089314538127671734365346736585885667023107363462693977738880428457630948619231450668681339836359760037892361249534841221465371978578171836972722645699218837776390963473169189314776152794503624254428353268295562680608358299340662170257728587052077255272667468758002378087522610497859024388149590059407191299270223191120996419582464829480954958396109702855924741050623822210100104532073089190502740559324109006760981383791369176204737960548466558558080135345239446335447063199101002240465272682155653050199822866646169065121725092402017124151395696515137669010333797023652262194703856940617875195076809595530507721988176453404491039972453934760258949903164831135167813632809934975703650866312300517433469885647671527005068183142006729696242904269983365201302679239786554441595288023847454041482511822290211540499429400508631542106559340891112039961353078822648456907732328239952825640386247264048395909582546995378541181514788507314051029074733504291426037323965681058710426152483444185760695059458871906386578826642880595856060285813749368374424634372987539458477861646428530883290609054964254495540375509555688830878252653678014518222412528215655772245679129831242919617724764135970041926475361475237516857447859289301587881161275112139651891475727329089536749871698762747586052147193909304501526833141865426834374982187411492781032923095431450739533325082636764083120915785439881063339735937087313542575993912250396663815642910591701879080815228497861459640861057588022959482138118147573126176502477391854685399229362626440654284449574101832815169493820330500565781501306202125050548358892447019847602816251793962750708624413749556735131104767225082135550450418977750177885380140548248242506201097775054809079347150844129772236422976416517512264669473434906599430790999073344404294437151370157941765240900944237920792400457356337417376053004583345994782577639816793505397479741760929423348142059975487306864701793332549651206175650330714524658468259440491138775271156282513758033176743037647232830284942371315946954095070226710219047710036266199475735034335122387581973648943851826109213778655513566189482268130772236319236334488127994694139062668391277742559602894003367540411774881280106966398552631711323669894808960338891145782229095138319142767033805203175446651944460925866393566825378729153297414417071823736737062351962185589116503556026649690058884532575032491280135370561196572233864939821763510620042052995147456214403897923106528373751072959954999951559767260256291396238395236758860481139440822994744679851198361713558222722912333000696162413540808736797040412415365507619425086826261745878446742660860092604973017800525598431727791915343269427343800454507636045425918370393499231468219773997174277927651180970168051576601850617803659092810442441169544749547088195575996132727256176469842852841804817310564478614081705921936280939363992520138620958968147182206319832402432328827436530999737398568581697659442421730398420454132859210503027144547348876447252074867710237608054713834640608597425949114280738232056797329126953568602504025767179335597411602587922240080966585216614376354627187946943758738655347766818620692797894502047802027477134424652316361818485798888417317063605629541571912309449828930127316538324012843080623688370852062610599761780693291611659611011709844016701577048398350461323105049376609524550906202991750525057599892010518845296631436598776361707475907969211095570038550702412806777890057098938463662289430926929193268357356651692515502043345689639317722491631927821237196097593245401314832011779390382775726406878268109827914031412000222367007085623247045361962792592722206398767350248079518353848101735183516114943350212431373891761891477430564018515156659912465049926033392057831783546944980387711051185416187107554305620692362703707058894162480008645884665940506585903328206730395116282921845705654001023430265303015711481929677051966627891897045307780696269854115373034011408250829099326977051496208035604648893926645757652334317981942742184071519529251952447595894401762134936600651702434226391476896463017431026890636571158622644370257690579601439363010094972516101052038121715050678841240617153918798659945160931213500578840734681241833995673388065386009357503214888946965098879440272140290282338190311304666100362758766713662883216494748767580964155764454242073885784463316725024560271805504554329705516580940652682644570630300622646062491889881023821753989977010141029433269294702980758743733741047826305598886130568363458369609032928415247609831793772862434906922890462098861096474626793749070288560167949166950394918486153457189929270949004191990354541970665713659855435211125904063973435467905351441336747497074831033861138882986195803487562560817573458644741511837094844163298679238995865046018779204339434072200535588991054623582529569492528959506867636689888882882802753257724534517775892384675979218545168178025922503925633434024900637714297928064652533784557855204172965548270452601880447997453874323565988646833289872043157338757980091406293009356999655903913079739282213784955381503823423140800968119646475118722233423348240614123506856520364963467591417688865970426374242452678822765879884069609920233381859486556502061867664542898485556809199765207284723077647671098492139729113496636412288187782269433729684213573662444528284020005768373880423007973851207696373137589297152767918904874484038986127011391119106036495926922069462194634564698754277405581610049017136074198301502889889238066529795120359749423959232759958790509465781805917830969887547709929638442194860528796228673800609929906372240360027271582341518826127345139506008327754961406026083988544037059442320171263389622923755533959505897473900346842651666649154103528101035214495228124320585217931789020188359107646736629079984163720621327551812268171722473986612235912837178585758872037787683161811794014527480164152615859442356418182649308928994132475445514992553615484965342070471205359163615643362705029581070604322030427758551237291446546284946504387878784182913349940486774285898481082380090594413323395354977015547499963880455751162124692686903727317007475062626074465453403702191614189977918406419668497117622507356241824888931636269158874017903809109391835677825075061702169362260849688696425222996997039778857140197912119017610940646149642479725616436785733764520811401130865178010044390526522038192262816374681898739096203485070761348834836464774178724607472028760469721917063483062964308743241060271106334693167232515386826310163999093289745412908528152505789638037414648465037603208322790631953861518023383878284417537863877303774604133779883122495911855787596550564597245282435839330073080482885738749572459309574075160292455397891309974295404196640350624838866646749729390338906505948477375899070510687038316282995864523236798039506898344584018229706662529844073952755639290122760595024704943886617322190971745620578520048118622254062216619373388186133588903236874406814120401912330165601104048938855965694665855689373402191982850656584200277447721883381993063938034190506566056621308274414007580029966585178703641024947949096469316244499419962188545932305051965717694251987183531088446516341662702319922822476054389476249880704421950444264913373079513952645640694715810070280981723269803432399352518640477935295463165520207821398550188773252234666094755733182939211599352123933044221043756956243188884559615186213003663384217276739307763334476791471060978291746189317672968294136135613612929302339240252550759759829069642700615758419630032611266593663988218618458584475754953117300098288272888206083382835940351325594098532636511179664430025108690353621114288487653462203484478773298946589315070931958903736497510527260960386037873990937812231499254562530323100149174058816529868737437189741310263538237747097708369879949040103841738546063300636271257113176825054210200214087665249461708904841835764039355601913460829902216410953182198094991504780236399856849212179167867765923077789846533092962094660673344914109005042041199740949081455436886907095172248890462399669281098973627311881748199247691293453255246997703912425510883985047691315990622331462973624953509557228279947428776160079911891202614098477820090650513200001028153066509816129774927717402908318419841925732272954411354580198906105306183118842244355947133639388517977032640895555716954394098370054387480430426392130521782568876617203697375358958532994698048069671089347351361368942233548286727436767596841532516484996604085344754363915754846577324072824099417774629120733286469917912400719631466644037509202072140390677464780544111001096815319420264648723736953228849757953448109854704195886996204010766446371128526918416155160166797656218623213137469070881736469071208772595846578112537325869915562867318609048480395464249007227715916796582613111047782499611297923769955541560164776145874065001056211129543781177499386244861935956637992821222680123066969480093641772466678664220876031591700810063777239727336981570828230420890727813451090328618008651581855340793007541206533427085431386296444414542841049025522016901769557563976792224902077502751530610653598334880932583949890367865090028082221674716424155223299440739548973902709838543849343320519840336256916108803763644289392085686313293984985291894561577691451000278177184181808010560353323319548768575807873990331533399788402348438205226939958117555278060697951595979543760950413128253098375636708175259979440743852852868194659760818234498108547199458681736818782579871098536363882299356029024598355344508278367003659750072622720853978113301750184977542187579991501023079886542429852699494092884833015261367806394773021429977680134189182401036354060531069788219267120447824215112009931699822023596663735414778178958678327809746665813264440340532507789764968665155404215573482261036050991681692444642223621608889510501815696377918547073385822917940664691389625417436495617421409630768016325864856298547466410043563487729507208385822613325244706234644055997144433797189491554062920115568583963820545295450114546273319680544515714540513722892521564386324289535450485526021808971005218116199521356925558553745566131837661866931461545004385110823875333816006652603778685411713357239722374966369545034313343578253011306052099147472850444028033618275820469169861253678347520113143380358926096832472310511293526224686054081068883773175832113056871959526249485331647070773046477284317442365967896251405560863858656153263331659894027931595856175286317067998585140428929190147698048433859864082327145793658085969346605402227129314470982963521808299710678658785545672997399459610764015356345244730700312370420435071452118545839837204574110923390176740011309056858841212379625126953755290514349619663545223614718479925887182043083722234665020611695096176945999803447483801396963053926589861015762197869570254809668998348729989129775021071510034456035791168623337927046737259463593464104912611672391895679495727727405916620088932358697683545571579451847543091256748535551828833001142642152321923524478503941419428998178288977749062212845993640382344860217526936680125514053408666007107729138464546135693603235815310578851369600980860820756538464534565466706566984180655335071999394105675290147769148335322897536496178795601983672042461931963099846533781173681431788721328868534109094364563166932039932556676286602851709981731344555933298930699519054683904956892369905793803654937197348936603360983500179941824897772154639213359108264897671208148257162373577942311948081211290822261684487585461600761205182222872395548178891314160415555483239839313267749115501065464505187591141680745682139468533137653732631085375091739906138333285072004315162751895761900092294997719864430028638571434170311718990792220884392793476967521094382218694718132613932439540904951725818619655301370025476804797879186323653597165029021862608699248683854402449198210866782716366561812587895482150184274123744366555455049553296350297727424135191492836962237735346812240833308928485074946422108202872304820202788792245371110060260550989326330259121622259546396847505766656204599592704173258180486317020401600868556108860081677961965302169645773779083262378099301504419751239516749511432975404403643026217759599201157943599490317442091650647939400485167478943440969942591279032107182212729916774667815996435783344460900111457079053026384371857897365141917916163407330813938395563778951498373911754155242503965636791491937688431792003544093727936406702090313310335107988872921847410108606053427406457205141542695767811430747241311680865344075617904374373318754688906472825642289797714106407724500179017999324777592643154532289370462351846537121339812347606272338908605402458766059839255165691496409596548812359536312886160306032986587301539650449541781289813484016875473574440566237428990380229428808172188994833567275913714572825162039414172991357362902485408199970647117166110012939519604412486015879525099384288157979435031416672980114235601828840973604629289227120970537471255889504510179043714510647122686327843344307901101069282873533642147791216766219582943953541012642443171396946104834377320462478622019375525093469619063924337002648906526317615405615695349103568596841192060180707956995786526365504562941527097654090930607894854099295642172841459991561727090941370021176978637672051147224742960219952453629979392306957428963052993173662948588604961581088727266655451103083177437767316791677304650826603217693489895548881656390634077312188675145381459046643233272868606287932065325594990387225904305875710126450713138376803592999958673679601974809101521463899672218179541346294525811693780930980386373153152560760911198657629876062965583588344349460309639081241155798804412833361464288198476683235820360152296192007701695787941201129185319068278744723681682942894790891156137151982395756099789757391433156302954520583919256006365050661776266338826269050017032085702393874388715310574528377801595975440419508142387915504160633571398964012293884659383110550379277426375591936774646670743535572160558565529330680720410079157355196782970275902901947806305303293360165536631877232856855541631544614740331890482686836335145968447239311040632460397748553912749513313742018781797416237815826562544169085674051181522075912429157259481543681636731132049673164674964356691025822522470721772707475378911592323464325638498953575348337656574969791287486532228379440543446610451602864959417517511883675813243032620982937246770891910726475089029383333613618241106143965545746613819950630030275701725275755413628599781699971867499371689057661915982694874310130665704686472924239887439156513321373846057438042467988764298456629718141346415955778583824155061069066951328087829782100537924287961399930219926520736714373484535636732106382146048777243627744207895824115208160184918107145505878200754844003533859160266087368237424503506166114572778436245237969203556943751921163176814344771199237864919335542149039561369909363512226138738972328060395272853400407423302749261865211863424253477201873272189936190148239661885377448241512597084172662081345407182811497165651195613702686827799074613702144483817160463423182116632740122666940100036564598331634985637271918081253896827197836813263119595789338238076753053640155744462882376315710760047969450783612828339939103660559831084599822251185202928428159766349041409469634186908780796552676297450105802415251898669057052681991232468421717709173043229779931886095330205668013967283034925108110526347075698625055756522002918867438031718965140957748350798668531761660242962773314299507911954890433041599303125813651725867539322739140393162396048719299706609369380177638196634559240845470595412566313489894154923711890330530086565216688362840168294747817806747636490103828371673168870448985020186172517851221013611541874321497442380211188184477423151872880386005985092416435842644782091791560357239281742009910370728220530684526941667379906712993300301588011759033163616684154022907648531444556471287603277344953326815069109878225657374451605133456930761656675006082703429718044946539417001653047180761542507601432065554648344250459016921197632512790558264960977386588977752104863182066960928392096101805450114895387993172586761301291503350793928774623909899419699727716030830549691035112213779574900304505868144083560080744257691639325087565847835401378430708446021766998911591560268084831355563366513838858944801495494579394719302206588050210867836439194702277881983782767774631726823520135993558474094049179381844048145152412470556447331140147546350234931409790468123758715708644182816969667492684477265257141495717744309960422287563571681266856201326073073010421009389689919435118833938939507611730414853697696744846385743683591932972600940527208420906547158283805220899666033935603782220669065038024767390860598662924269993025346373580775628856152593498329032933206263774726077840412661641017134506437357462689566451933093786351184351351474269295151405347315841124146240050618684957470575614992521431704928172870254442028923301946071204057853449226323980536099103740016204858199422569374074965685974006888349228635782366860308743721680756971941408326003451895416256617333848643811598921173091827736449646018258808773835673274124463223674455456423681674762414666150606531488123429394607286133320289098281300961066400487321857960232004758637729346085108569846069077606767726409087037768355124152510298719270818228419332275860798932036441261782687869288831091298233659460148623716737994045805157173471346139282979643499894016870160977330521167437961370798559906455227505995677800858396001771277654205613589517785766983559608854272909701143358364848647894089544947345574904427556985616959949035359016366734225003065317513443765403423577623461139518157183364271967649913559487078470965102383562536518760378947587306573006292515338312178432873642008321579865034549960915257665101067884853467511359132041455083562489489085127790381552125699601055510266469422932587258260446741951175540983459470141776544642234407441158937227403420978435112573712462136750523277008022393917792537460775444264195016019870531082379165802304671790164842895059248389043694533539745700101916343584776948674602941742154917014197215751816520335226051195938581774276774052125449913567669555905797924285012769464078524345426506519758965570156425493188005897980770737378972235322410829489762358058269632323489873669319141976459811800253471572207244579690404921485171371784056972550787643171872979505688986128905806359326073297834729512000650802091770647786812015666761215249208108477880086496377442656316678033836780436416773495956590248145307335775191779578449812627711219082589255230979142625677555329250548225260896705894383716314986061662234983084536814191677459430753870235722597061243961564842628994396291945434487853625495081585197664750488372322622630667789122030455972076957501303827823330109871292233361569645230675691611139473185055737094868315255290019269962750040487387491949004255756951495828460817360791208305531376563136022349379829423494889577239078072372059194437380639430971952415967823172308913342980142613883922166765635941842670896672842105388009591926031034271840331768455284855354397040136010137721294320293715680851080761872324219799433806792178595241131612344993680940074507983068633973950483750534755984026770640632968338051368227184035944490767097800778289503292034876454044788690852499318051580943724287828484765816147603409721402236917986346546351063843624103994478317308076426778408635799175694486897567246446022590830147921916473099769767964284325681356690163676606555416996358154100367897888526962789535538028160637683734355121517142885930810717434601305403630178174473578260234777267158974736725202409658709123030474361679040831888310263737274781228003505811635538199481381338705062892995350327788384840542694616584303431392699453877064295912143508228327820064571213172499274927701687095151838571095301748702941813130055457919644768767900292700567614174715554314016632588676176149919365222175928286206745500894273342586960359071543546206065746483110721569870700012796575418950681308250812176956885518367074132181209541177373644249388983454812761796467114166192979500684076372936072985284777447053773688225274797663588551431062358558981436815187300229824786853217030294658866125310384612369152372066205578790158520608078726482246063428175341884845583805339249253818583012525325877511723388901514814030012838449302744525308580010784141755537740004014794973148114105880665916233073991567643130783233572764244040636487881111173877891454268382780478700492442374879943557070052845780925975721812954144138025185315862428203837877604104923308041091694813093917146696811212626586819803429199855501492447427874720008198357878921536585097661577903132727502096249624930713269935255563622977935064712880946030956282973891438456117900253524750630729014216285799668569056655877878109295482383041569660972671899158697901285544420086159497868015719937248546022694794750992286987201015573173625139060319939962144191215860875296731490624494114383899189194748185713918066568219407649042008558885608328328555784227335716850139809822411661492111324201748531700974927942540988592675156199061149633326378885102107692198262254411478013835406330874559008094751426106938501039866152254414888295759932937695683904537665751841657051789477594581477019439797003465820874586217033236049328487982479507068071061661023441652832169924125643658667429932677619994713857026817918169077302000612323577367424270985568971921269006455997561183366585936110206941251388066621882456565261968187731377027360751986896185540679251485982675295139437556373814256416097940509611573009342157903527496722877088313443405399374244667455587134776424248345275312185920131185556631290384163093661840011382113305304084381291165215955769549233078907709065499021121001288775265811028034380531691922526154093335667191810360204036768631735773466966812539361257044985577541749281681227136202353318523214355401141554404669022769822138317489426284414860434072668350244401798738790493698284974316346957875472639302752099778428708239029313050118216108597361635241048970226117694944740351203242779623222769678634947564834095752355023546896051109002568654546183715632609005069161776109287292453771127625821963524739893040291452168825347396982850536239386981260240446360168457110546478876610093094116974301694125573325687550793496159947691245580494657313744053992005764292282735314460981432664358187878512711661524253840901352445669140568862414105913615425152300423160015645859331154156055206389024974815811558197290115036997352595294218028766419404904426741015123345504103001345915328247382908506392085681496827576690743176803098035378462816540642589601783524439314586461372570620593592419737881275209165794475809154810402875789434787661100726084030604937684989030340196540429948036230494280938839103182053988440352551976819179118438229181535960198143462592035119904515491845040284928629728695198478368223988060234472753344160307660442287456029080137375305504586331773033449120640566152361181646559740612606494146636425981814989295450968222586737744855138494958339133511977577202306044815181223201206902171760711204154869580173966844988474739047778286108248622055375758208191144220208618783007480746272073190946798128976311377958002558825145570965454259867762984760108741862305686472120108772906435123737066193228414062580712739897750701602598312369538122379164991186587190659435491229436022171077950592891647339471755895058625684217153657843511740067862069227371252661296108612727179233593397945350386930569028003256460501291753160084958594821276559505322705638063331322713420437628728023493615966390638011476268314911499206714740551465121971031676961312915898609249036246530338002012677127329523499194928390822220890684693681169278207797860810741452724441233133549466610244260460503170439423203018646053069083519499001660501238188982102393674513665994445528421167729444980745838355079290375215102437456910015259758208460667274123929997858192240676351708932057411869534897637672193343740594004088936180800763755246543462954429515197039659592287942956530721673334815290256549208557830170404282045251262098863164003066119545083858480866593582565756512824341929515185857651782547451577184078253480808015496319150761220138403016256656995907683173489850250961965636148362982085124269993833404777128847348114615382246650943737180469676924129135249318911334242821277071595794756914359328235257147658166486316406750843975423018064135747106528395575511073889886539600102490960370361298059179628934731722441413427854265470657228527189300504424075023601155950124798873264934258848896383462415420491714156497829380836195626577943714035548477870999787702073289267292888549517627377427027860651644583861783924342550608568532256764890320331653920307873373600262647650461972596475876438525640890707387338059266602433053909402614251039692245300221283976754094243915431325870548802774077644281263905632952178770813759719862960331992429338434614748604935089537157275017190119977660909732755518574772194316414618996666960683617620280311994857245895955394618585133904415489733066605428219426948488676644255381521277861365184549230782634998958106631445681987041036123556153030135190109476433080477177080171476882907895536888441681431563828581369825371088220650754552564160501545566708736016785962515048582693120807599905549449885498427421454345875191104673465590993545804773370857866260808333944860219390985447985427089231446634992399029600757793152244411667080777902521119195316498887944378299431033763630087303957505417737539648792270062739622794464509033696270473090806032726596162978441405782370852162046826581251400647169670973164107617179184964984085764667641386756531033546032912564104528294002420185368250856437493353952802607608589001570399143752843838199643855317314635190542335321088091562961871757048955940895895935878879939558629599012084622773896028324021554824615522348061604223356336277680110237073408424186799526005472702148716463828894138957253910766769578816862978736450941464093509711746497449388958823424314731397153919639385095066346425942833576799953603720830661630409985658728509802098430578540759534876727796741038465333453329218530213013172483683596449122307186773755912780515866230964801306509428637583140977106510228762781403710155267399102902192047072560266695714003835747087526271563558655403437795883357586080271936483771279915635900857560230338656357349532861995889543435055193280798503334792847272832069354833108536558977513361086044402631092837155263818675550212817504386215722608920322347250036552061176128302823375261716218430026715128782904829283417881767471778430111151998279335110705455939866162448897801216625718862003898775065069757031139227893024374053121731714302334396625382347968232115179101899742945758099423943812836605978412961379459576145915068500344405441160619844271114485551481240354828048867699106111170000091453657929636050752827675853945485403924971212040329322199140010419514065104820394704698064870395105957732845944732943932598934968238738899886303071747412447129908595333508186717706106179015822167337680067415482977006985027558692021288395219970851464229910703815434212750975735134409594819037851740023813227166285422921974584562834893912926706350532126939226258071862671406384234655674022512170371319069935398099899887210121237841783783513563134005282666946691487174555284595090238788010358933178167700257315283908093416335721487595061001683546775616702728101295480460286649975975174036514527722084744890148288095009262806062500325842898030290224639111395613516768912514361611423894883799466042990021412339158603855530576994402255834264720161809187046528296308006603539293694689237604020338280586517862938551785557007637960747694171206318309113069353407919027765714688561701139665829913830122929241419491104921071310233554667424601411401809795447756139401297395272016661865745549966504852021006903185181350556367091216024209913648786812546436885812199985529013822886802106354212721990255136315208401006385819277065235681704660405925605965212348212720970341966217995653222389494297781930514861367847559531605160258886074273357847314672368496805663433927203342834235134209288529410373790460725571730746319253183108079962068262608281839656124096260134933817729852797090694842996416234788697883669730366315358761387180042642957350155126295887528226277248794846813680976977349259716333959171627339245616402663886381678134130557209288672480984553985273047848166274665297299401846107822815474953538196747509296249196822675648750809982403358847384907756229488202309422816875808136634975111311930364035995616679333823959484529957860859803586087107223013373774974051298628406502648509222194880081888888071005007047685724767248012139083543461133486437924670147753066873561862054019740346418846792160194319314837259841768144552053662836290602366765321889684359364957150908955136512134445528759120871845224320382800445993365694206953451324891939620721449312624276368368562919039894834497450228843212631775679087621551212029851653340042629433337277931676591859403265502794024822714379259419649827483947384550515755411215154965038920018861095005691183848177668962577333339060701382560429386096222251966635027440310360306060256959588303600011381071131898097121561702100035663243961782440263069765751662172599784743382203854060401778894939969626386163079588419172778569128508139518538036367245747027220890872893247941249830887941957399664480343113062671454371565205766078301488965686185590532811177093998592981656897750913496573987634368283156328896043608934912099929504297198784402403598323611370607910016105164698815486947575655871076869506033656560049052342968542276144786863236464523958652275399728747227414147713288252522885584120638920643573362072052518720606791217511608748428316573759665315757027634756213691580453136820707749845264780391808118630975481302703721276014102427619899818997641208662143262157086293515566771629131128163209290256123388880919201974055457955539634061238860897129365840592039434805193824030816492590288621064005991858872615953468860477070464563483100073980323730369412426911320165189870427301036150993637170659537558630597676388694710060548460032897393670314155714962614654953047718612311303715793985375885315602099869320865762089273027864015228778165886594998843206334977014681748115951865626658056074577600974844107991758026008948700872858611546204908403977788714394818425667079257551875869924114620826688218802197207230158832679971035462258151636282858392811692899602092234371525187682684668433501840841753070870053863745396837947389749519153707418630860840983775716746286792320610224136179908067946407461130623344545102571703272624662852013672082841932355226179368702169820093436468761042531297467931044615965348829062191347603487041206352100196272301326174262350695363443028665614225031884144410930445391154453749792816534652709708905846323450570101047142335769192641609581782053504394266890003377907932848957060769402816251320258410224007222003031577608376825791557600932959463397658333777218115443892204643093541503822450543012985054028733040343489044745043353831604712621016144635291515993399132448291334243939098852105228210470012293073300545221161513401648533771364748582673269356039268902966155098164875162758286553729023421509275813753050291956274102618253562783978178739502725798721471635570874110033901809610355308990197655080986875351583504527808079831042977044306598519524341121182234376299286778070552443094085861206877231413402047527248416188601063910706099907713465955884250099827590124253005678737151150783187789654010162311689976043433666760470287619731226774864106839096870600801432939056750974133448827325383280068801877038483222538683734049860384108464184491167601572011472535058945032893824117558223683481904105779653104257660565659743597545205758139204913822031805504503737756488319001962455136936904246212315044145146866259933197766793125106010244039455405405449772567710431591381943882815895858613805152482587116037969967656373136604559746611750398058124459746467694943103506705290862398129352042986214667072492335082785535651500678223041451474955652723910309041736037973408070982159940828969051495614108873854864440396830949782221434046675223414215140961108558702630835291971118643932980349769379554606440972923810166018654542191414661601858417340688586565264531114527451220890638859908931205646221165483578393092689297654924180569679154056519373359605710191876495087700387515965729298137463385718446460538845374479575225150603297316300785336868945660571901679942565260065851067774567081875343735293423248563932023824921718898958279940442745748533556941836784096905297392632495018875719495288301549301965010348197921705669331851972749122330951336442221220051667716907266652607501682411520498221146284247049736400594879477445369785062157824357427079404795143966256605270328215143511855173804454946071344892007416390286737452951218298341449429661110339264321707388604865056401757273464091281910932782545775870944577346833304299858693798486580614765643919046751265555343400831737596891306942084226413856739721923233490512978344669405459521656974804761220843083852938506556644714206197711379347951927383534672446957363634075288611313053498072107863092436948112809093959765778447775040914353012297207724729298566264015663351790955360016056289679228810304498350968972042023621334320656867788670964562522436148207930806009184608279162552668000926147248408748879051623022361292526096533328780787453602998139242097969701468397728126328779129045998316689682539268293187641367099999812518421017485975770036217533234596219842200373648621153634517002358630827201434145707664444079489533623632095141832824688987182083530877731879123820757367254425971668257445178266780389841785724763559511738096299377128400099238389571549508060410463899361250121014402783900166665915521495975298890198422978825268728007967156953264457368343848577423283064927572717490620491979724280725742297263647668688215173616156331008317227757760155241610118555573739353937374033887551836483858671978627334776015692256876338981242490679908992483904815596770438650540894549769313921661172669774928813232201692294247404868447676716071756823077271242160214463216765407857356318115043400865657039080545039197149746017450554013533259069033916204615171520381323132052881061410626525622738743208708221818037665004765383092377654409816869368131495191436962290879846942188331746663495615975188450807969743336825609277570610713465518598232727716424528276155254512892033215251170412186487749755249171161180284243459980004384881581333946232773638235518273339773943577246867782918186235538560451600088471612730915362194548335367554917985254881530597028678447342227390015756724566692432525845369274107117315458808510056702152694216950779967791890680766025524597910322377326796418806502341110940245371992909327839206380429662382585152064292242354522621194953982284608394703982429978801134666795080022500986424614145621922237721162839525756620051698021427473004150403940914521675232504281017830749333451402043897422709717192521694357324878968873521959644453911168504283304121842382339579807303907644032252179489674408720156281714265475249083254321019797578168412119321236179699631540862905905294369433260889813471517891006752930944240988494765279627681853052596277156471769198598108563822762549125787156485843679609135355968048719407181830389863685931222820318982935009166696230578753757775308472541497783741372527066384360050016419670195977522496889376787699559207531464020895712582790912696938328832977412344093109535805060119704932756904637199544502056388461835276914821523855209443894795566157253435765146132024270038180686113707855068312658922235957137391691114057352825284888557457438672395225681761212047126977602275596928787135115659397222758971098514779518161280442422732110243724082345113548743412591669132626721361405396568857550012629390301126946920711167511530351438008332933616454065696024937564536594160808661533792478368887109778418040017796822036461312077313528956702894620259562058267575882434733086621664057331614033186174185317217531095486916762875343111628482014076024664523395804919499469321242136405457979285207951316825184151457180581572503205784176627140318480273081397520490248983694596340574747726088221114093555451658700524316311502692144935488348764577734090833943742945619184153664459003654359761110596622861620132278979611661477458216319353869977350960278849007361378901953608714033488403765812086300754215523744598868109092366148408928118118394216853926052552818207551651100997331916729377500814615157694431573456511752596735410862591446700182008779378168874696479807756474625555833531852058764052712154012076689894509047614252473549627175816158990916297715048290192384619997676467004873126695319315079374281123343307760593605439772834380179153027765350853576933369406849315526536284093695578236374287386396296991890007592340305091539890802404563748199524365621539758146440007303213017132544178197079752021270860375766540926612078738538015783768670606222577786281372398225231123989417842689667513036282237655855996295411077548467097477760812523039384330515412210247561675942203868514580172714372380158737558533476524444917195129198702420162708533157956961189126717163876266284934881562350546097322883929830839948412509198730620368465437488313316211015939251695453692763866086014972744797334527920717650950748990937284172141743511450093907661012914505707880711982213663080323550693047675625253013550851249037370767008509789154219965683928812533125192839377043749454041946692885316846935290460742454923519321168900547085490102159060750213568407751678596995621255488628734009187134805647904285874974391145637843087662678976658914960787867501504900944497102879072651570003039680778710262400948949005030968084881365072635524720170880619909494266588129983993784137011625163347679240163599240504159575272006414599823786615151791144803344294982226533784038662346836797205387254754782072052899420741743332892330851372350326254809475996547849672471193435023877756570366486349538736380610314764965123412058220220642299030287638571893583815798892530326738184834663117967687280590343586282957498693513482836109625855654058210496096840189320944854087345661337880728729720527114238292521330160676390071242965674881659200028142399649800018861941799596525060968971885336417077459980188094685852259872476928463638205102525267393522020353117885378632304063312929529557024828473076796814951162375577981851282882255919516167389481986405368539088962227221187292402978388877403223340937151542386554294444862853559340788160959735794728521247107505852326102925715303850587524897932429093084567313667881762488778510552104227592007931233767261512002064143930998543343620740528687225836851377007114039646778532741516791476493016891862328945946607522903042287593719017097733255611396863588411449362682840914334279773798100167767254638469672543410438304906402063972657498296717524790616213270274982665492762880865516089081760838056078484205616216250784256438675497114339915931621856551836383214509434489247055366479042903291328595038603485114983348006673137655315581242613307937939332359581003241339127103266295015526841634763288134703799610818652663488894134641263107645900266273443231272554515378476238025646943052569269311973143247066850483222116462710311143202360974750880813362992482272915571420457127298052387233960117712241344160735764052344272330902965626693258117381873805771988347338581430249471978612561355553162749884591540399447809527118450662391178652050834784290654304211740439291301785154740286490005268841710956424640262870189056359675271944951298895608746031969040875237955629907091401131239306475482217895703711357720546524418774480375966095125970122351064393219363393484822088641762842425980190772177051239488107105497937464236299301925057210720908221068340699795716813748670793611137945761632228924493567941147435220571291773497492183193943103673251079773163582832563795865994627531015968847080631206263709191827533884811079379437238230799777043228872854193177911725153516991071694075271696135614954377741981353829322322878333872440554224530209901156607101649717122155784534908150306663899254651863444851633599765092336232625418751014988390547162723293982971138716894023578208714224047699226469573565832932422827759966301967820616882269069902786111140599552098227614179518007132517913600977327005254717324961526567369773293269964829432732919110535267295114807801952105635017998405374670227495719826495178621147135627492730892003319444489183650541952801422633761878318062977965425119290145422832494821246453174403968570921766658027003311586622477830427491741362206325380091910326254203927048429123286421139429089030395076683831273123066150490671741833045300348754032771022510508312339081847792016800639291503279331333024312944769991751607632249250560732291312340743465806761441838935295001203449227323685477708008113587559746059662161817683581186748595896846424026704622840116471391129201268767038074408908086631343387333468956331052116491387783684992556675880491296984271830290687974247717333369536837638210312282536494175917659353262234632694486725313594551986219068843660010043562360987553672681059697810073248766450921823767325078308433861410145646993534878922931617106681044767288995680372610608225381535938288508864126470180646466282096138679713177895245414292426084773193278348732071540207803583597584199869358488566454742738238929115593500683822983708328327148073223395829102082601607016375408851100179720168492293203409039886240340573217608163371701874216399811434924546168178747659603818881909237254947324526913050964776344673619970539146662383629172519363869981320526028759253096749034410356157402818999685462730561238157204719204550740029138971675647319453995688945066757304255371449551111164074665319680603575694403130513134758648510334402987709100777403812818478053112473160868197604137169881033001767648695686356123838294607672903847527875337144777639076705537562099941786757830448545943738538913254900018121677731517868990235027430973633435257241081017062544779265549969846756250667952329421024185819727005759837195976920236204757398435723012022432412805191851236587530034009929679728006707255786849977558476164834326096177536548455131918034625799353933287530930418138717117087817864730728306127043438546087068197120486012861002366124770443653512921454278596522459858326452547863864583582519363972830723153596560984145755561745941723600044738463449973279246085285494737297886017047435512613259105867106384889788329682731673160959794950914402251737841698174106373341910174621328317002071568899931101806336640443699084825030941390271596400264022226019469787259506915998360261525208990379090386670247362021688552850602203625278989032134506262087563819432449870468655163066506626546497528417380087393507810416789474836277050161662380031212508879010194331336883994370088383669745668969097378272930520576425176864764150695196266033436893369505186961037410080501764450939948031164380617800128486278114250542432588732304833658435031566937627880864921294547950517924566095423124325683314372324754777662970363439543368536707122523045959193928260215512063293347756740899039185181405231040482599449681964756320677732909341055137268187447035512574744440937715096821086633585761723121750514467731382686657610464330728653078173111331480579948206234065728183521869386199181642215598247392406182919813890685454371873059574877766164920417600313727928745117616111705581228924714815560573240829292471264084075239058642921952995031763999132415161562420014356204573313139405780263184065942354820989671879347795916617552498664188782645844822837384792447619686385986895537584454136176616556681949489345782509261745807915243553790635720310136877402197051680999310412353099696527253659626968807339112427354451363852842969424901831942851517659312443290642974062346073015088227182038488950654800845666511840374783153336776564464276001720657764661998849280950354284841097846854283023803974590805293775935847725233322920419928117602193146851834967896171875387694907628915975039568859764397901047440642834895760402916942313032035523631626550516121303892245413478241085517775890336007315087771882671198917273121188685141590835634895007299643678420462661680728447050222139869909403017594017322767916033535094302888822508969519212234854235547773212053042134688469498340546227040213328280844585783781072494797332380366809640559590959926452594593303150547118971334914757120364256519848063696532870552547584783130643089691093155556849093096634910844894736283217860403432327438834597825595663625239712719107832027247890554380400824345922497145368154308204093440407914761178575210511601348055999525436271278245476008325417591906449553578202457683854104535036790417445888085626996904381652395913187505100451325105745597693400054471664787412409660937371632295471763276166445237423005041944596212328445772839770540047952389322416374516985179020943869863867506474571754886518159572351162941772650189689681630116824231942661264735026178537528172184290376088117520760134832270916710265354037531107999061142377530116859214366329643666276829374687384630581147598555212252638434015441506188301186831982585696156824166711800302555064808885882621583787790340616377125608324158155443843809936956972798478883295306800522538179587908412247471388770544211772168215902240001414869614255692718478882261588871526740641002334246989463718816186732622549665657821975644242724763099486146723115490231223410359412698189759248162153453892697562622875393495156675449227357774862517623858538082419026312557318816935642371997178032378986759506275657875024419349734300325200582163284094406840692770307965663360231700569360629445469903715512113160117883320497949814207719174138504658754348695115165939534796927854960562700217773360780267244334259862882271111625341231563032881647061500471224892822806636574705504247969679049463699524231666026984507192810076921517008896599878104495098966225687172206063589301538522735491115303638052392150875624918146728318867932552958863500547352429021661814352374716767224173530749286925451319086162668036115070426640734964356587770757001531733278641441707138160999604336575542274312272817332960129177462091577280561708305063728765163040543482883574541410083101516945199634042937630234550388699828772701248495097733220961685381306316317473154827893011796356260658089608734498279205778412887349747331177420149136860403338109266607846020953638323076828586443376508320610797465216600624198355728711543906574439456207679830693075268112364049594386309133057349279125157035131087714007349746118348587068817228199716888006622016713119298852964597482380582438840286513334771077064056958472582661041157508103755239909768161177196183724542554292079648001628253337269295042142613840564508722296054730802730446061126118396299334506883490742769278880406460327072785986970234980093085765480552739315366318839895372432145551096262311090432937143363667505557288334649946290744696151375322335347464744235044440385851095840534200545935407498884071030919205102180141206666212180444864581189398055323322276248353578108017220184032829121404569080577628177074308973453628295853639797613709874455132437643888345688880344991923547736120685445520259745185517208183209690660151950765099884717318260373113398954397418659212851188019208514306754051234504488897708172119094865029801326683185560540691610906164971850625064810207794734382984067896761700669003333195496222496053527381734321234029951890402738963865268100382790954417809613466159180116235625724321114138341894280529703705551141981349897907218049962559865611881004293894394030622989133871886177638249033339021472971624065394664076273215753828152503853068184521459522777655205762604909832190128140264253459029545692464000290896517191724727824812724397764489758303745306610299279721983719792201145103188109878026978305350075521910477587933735205692829668089082393864621688711847396284809032393088049391483034715021614733565460659370025881329089294751445557407940981297219528910359891713464621292079217492596913467067578725169129087948977786361432420668658540451851694209844646612444083989005433034792640294835841784883398962945193317883617596263755706398815688550124997612418484280266221884951924573915785537335310229414619344764550272506162993018616991004446329431837973025541233096242471146764970043143459648692063992852792373257590359783046876316114303841395522478911032323116926973882910690682975998585773119110206463219007400792258902699572394612387180534290703006724818289813595804007469176238346625166495040813003008064818538920667320998718662219388542467021370933697014407097781159847175575570211495842184285787181994977141013407391045736382299357725383795272944875027890724362422755934934230244544949767654159390934140947618153171840714392245968850169197397156198534348618283945441824412570909043276407079696501298596724354752080428316532373109239468581240181469539014335516883619951119480380820272434071776199025904082089040757549620783998333914889434108007156057904124342772899365159137466423412527821734491508981356907596941582442969530066534375246338087561408354059975923603423570756978845607301400031927623778861759045546544057636667961257634117843489697156405669351910404989596836395453773320635290609899135128976040710936378137013622139772652356213551010106899197267749095792646470425051031571119824408393081787181281389172361545621434976839479678767632682683820659757547280818902834529412852038260035067831061208352010080189564234039892209916439353390236404197338566512589163751838614885399371648717709530944246757633596837651191626801513586702843773736994024190875321365972591362140051750105117726753684964467065898292730870804072718092470927568192378310474953944952225106674119235207437740290250771569340010314694279902371065507995998218238317038697724504728433131412177389046577264497661056833284333475221659334210775275321002730091124546533603751510278285739947482922043772679057415722317327244499152351668578200912083803726251631386630388882373775029507899194258354784035737746341281888216042986969143981810658781962790673377466618929187737913524797586648748800460071063917653815375799597867989003062004668561836995286649240470537217352654513233278120141772482521942211850110156181354595512234307136964469408858284076819362627626901904152456953712236171374916538387245682897020225335434269487525257648776323809574896524869417765995459064203783368918446172258933887790186970884594636927039207093117001226536346266078237750783285699711876456504139427959117980782972804130530530343505065649387316432381415300597744734463141372249975754961873407199419472969526493392425190491965980307952174827945434503305641800812836606608482091779751345773369309511231315604604141332577267118882857239259591133481917101448737576121524198819741553762386599003714770892706228230770523199585393558199090921875595122187091454604266014768243608312976841595220039746450454980928466299757608635550284275666730916004343929049061031115252990967335051865895337281809364892103783852802841115506656409750369180110211832674839474689998718659649032435751525544730116465146910782333884555972915719568178214728518959699749491007884304467476488308038511673436722438728825443240754350462964556842687450259090910669626758207776603904161755579931307083876112586230220403468458865703517134879101236871485706634409595683435992621129202881879060742158011669392868971246743830719992923176585151640355978831326888298910624090988685559015170234020778599096727471667570461790776996492956172860006059674694671497577384676958808954423382325759265673819600002493824942974834039400055640044413394878045611948527268450978410662050940233104461574526915038108086710305532925228179956970943258849649974754038018158760377168553152959626062836013810276518427319176901686627016014675093020060288554192128199477969020779164166532693836202849700467584048851202589316738582973032111642770234534471796367879456275982122201126909515141043652205291240730992792886546189582094897056673755873600225942596509301952135945811819458645397257505763730023946817721385811492075284833012305029289235970730668971386825495878081376364812826342528039863264363023601900984614084426531517491923769514886112951009684250648749722971599173736465527727123070533881368096192860515410530758050483402347210467056443730531150152744826899252104768760630103853532534304779225624234229933137691611644864164635547802220120229588903081071645808511055002159475824753119173731208220547482294988483438261722359748920202282306439702742476425646154717067937700933597276546215760251224303505421747884361509309823105273014450238031815098172792306232374821235086183168697063406776728220665031650888745408928589734227268920529211544707363423467571338001345450446622876174960733388722433691699291683887016313776075451763389929387478803406097862471292717892498235491581636962909860464063817871477863246510305216538774827872780786171738814897381679908360775071436422280622414482442868405542460603902332962029153733078607637283994927888791226607331301712880855777625374900584091196425069894167293189570928995238363932291995925016783247529541156450550208455135351516966554638951139604552334508012393863257442455207724805128676547442615736325582955886581268661148089062260349063376911860266048885296461337171717958649064356271626075574087143845553984931629009797876322167558978388806651876144489434720821350447740248099713829984511863072422385493181611072687798435216810695447308570869918737385094674649284760094023095659632657059449491592056882367180762142616866943707123909582272889433497157392558557106723106824146367025748121143652413134993260028071436851269907850068982728137898704081580120210663619527627841788997999759007585035235555547037891602097593862667737770646648971980119375814977327066706314114686974767530394162519674630610654486946232455593759326010383660865870047360457550090176603270493257277960399450502819888597270868442727002570334848899675986300440770182642773601605114024858769726714133724506812650243628096509310875255359640603764708398995844783357450241149209503947059129420676022527182461742025862145290868714918631664079259675305978075180793857881323669599719447132769115750896959745618082727390225900728702952195907520486154470703441808643842428533468462344677665560045788342642247378171080149126450596351753363839933380829637544455683587382992688242541724071593837395266312536977297590603603312471638497927621639370869663515085966787447755074707226643423330805045443318940981065529506728101498961032798113150667237537006561149879402669886324928619728679771734348763965554778854351911646055380696295581143307393858993599486669382525251406254582195777465999829519462009839898466510509506486572278075561360228771407470584016984805240264010280742678280381473243723320311686640820814488337395598612695450669353388315983539551829207468429258502956125020490191684396130020980220692755688143262146319633677030160829965868151606281188815253631851028119734126585879996641147084079291906721800015786859953817442768301224032056519067905202210043417102552623610043802786875828665166546042316769082114097271626406207900708895521867264888460253131517302355736306258537290553416317502226576911317873130471361873545334210442659593667463959509297946686577931992595006252292793912102865134131486916934039810143035907828421995541014719554157326866434264225279266461900929286002165322110228971190266293513596720199889990722157352447048334527126373923904595504863527578555146835204109554906347022974771107745282870083059257424509613845816932201128133738587980322203469940062442152804955217006714389755949306158650654835055930065748852184421782505116091684049667612101445988697695040684282076151033293979449958749256853356625779355776917399623984461336694353746913988729892195295066476647595967867072839085211084701789686565691107410192656877033585701669325041182270558761993839507741975954934127552747374961025978213200992519492590300824361207520515628121386208008882434130001503262579060721482187130031041096357178231042444891910506163265864890143596529738460837770542701336217562152179339481395638987305183718460047522281421811242678012199375898044652976613245876199011242824426142297975797001653736530985928262527189255166349660188483787990951734422588209938960105102403944858849904737751395624422722441336653615677914812231804533016454691982815553966442271077500988487959272999399753766119324880835915373002457201166812018154168981332158133042296562381902325390574005341114557850778799019794965938889075444239046761597127968597405322404956947224773148198924842726334396051304962436614985894224240305964746895172863404802663585368521862017529968813949104368350145478382924202859014653651898229779040353180809722355865727727547788186943358013354687575998561239927359207164307336510822974543800495719251867073809621567125353581893233943908837671594959822244306606152878630292699128873033349082558348711274005663211265304291013815356311943062221881398969051745166537395093649236705845733251786424404040736948415100519488782677577145121218578585823528913731614822169462932097654619297428075523455451951743573234555950475677158359773666545405758050550730778844451231151236807719903421934472173440705775349546045612961448984988547898148637128651657727673440738088762111845494862644289862197463503976880191247205194815133998000061184943577598767742641535763593860674987398077828778646748172766743937415342715462699641737711267649613204879525499579931307587239522932307476893067189782221548667973765820812592753935711968630379368765166048882949971446491151479619187199521165985363859710454960660119787830498484301657394036770131480937049777130372586767231951853519180242673113457689952201281499279361627447262371988614412125638360755755051127522847815282546132294762127305123132233688072654296090408501278223342831436700431765408635786905370301028472166147762595341458102404313211239445503084876659091971641301064062444035775236641330742261168598743240808032986484870935210571102508143873957751787946192107553123301898381663530478589085979653095490702657021388690075552442646872860710654874269592175202442174814200070632224211722406264592107686001454396465508972738452109100674735491679394799072329348549534585601370439954761013789290653937394081534526663013342602596143316903182354062620775042504196868596162921322223794047803777783256351180914570210189134390509400783569026273636897027649752289050992574858780269680103956517614811819292146490603196580250390799387205068112426128319927041719361424375568708335942198447337484204785718081254611189720619556248589408092651957925273541038648747404015400754183602354114504517560345122976067517819667626101275956900265022353734094440554195171655803313256877067342229903213578795403097382991735490995142232408324874679335104424295832408299693375755630188972018016176171701180637117074460100221298318128831968738945933947751621048313310017976199035629272495128128971801520174261348702829502707299884151878290448695812146228769307372604422928629151013083864592522776765824558032635274588023522097166534829896843850284815486050488208514923366824119134358456702306901818900500839303608152915348243602984441608135948484516054492254567754218065977892721699374442044326399368425027889361537657323277128067470050520810580667445643225681963277895673382854736829922782256450044434008026639812533484026141585643244976505298888240432800248214331339385542207471739583125924778771581545026549576720367924102301756846414541260865856009981932379275206208997471810152961961733915500688797558390554624340650605052892781870841141245594801078115784177732370573957217937403787879075579398875332833861657434056870609578897580084652738695523374206391326462952770458098527148309606831661299938400769125683457722811145918633367827239074542564434453462329013255707982488734908379046509979512692290747433645801824660279290193066270959730646711300007539132198401573558082711913582445241931047612325825267906024414234247103145515458778002300306824815139999269232644567145006654570088266585605751926502885543673904292849899954196319456622040599453035524232869634116092731851694034023817765325999087803926193989451545576892463312078719143280052857704506561842560279271049408234106067547511793118893644945608071606941188813987472777930467815882885917814306003287591166140359887250439165744441165136881065916364735217158450071600274199742482459564392357955954939517501957067296614558631900315536598851561961675165860356848439374162295832963669060007725482004203388278045718989983504845376344313066768489019294908931962422255200993764300064632253723088282554305701660897425441825093005120219230617741078318486045411857800245295179409669779977840460299855458592685300820480778432739879490262853085853395820998936849362287641552886197133061200312959682319489198207984549117111978966068727286237306004732704989657153034497679112442688933385474448002289567161289868483860536644398688491188991792581064683015188791483024888459797240770072938304866044787971746984006170195292376456888908018210017206986217533125149392126051753989759812360431094848836933138245359330754181288240443277448817412065036972046126358154368942241328970648439072571172204420676379860178331519285591174344827525727316579875380498845328403080989422121247127545467411983864138257339497847285941228418579902626218805063993899847846644689948676684344546331980928990342102111142150380367113290735893931802440690290368939703619808999412692288149732544846984428408052951731184323421803110068701199409315166414012337468218403166499742210650166670691332919918391847718242235255613939009376074188785274013420103168313334273588169432002258305791709009410252282497180056139931518767703542992158257993697888571820382126922221375651780876297897867607537434999392860865400908731183007386936113483167521532427269619090504117466586704721546503808997508232008340111125989974084439880106694293223166261585690434888968878874651696445799561379048763274095273560453257399592360651783900655849933238871076002250268214404102320472816810815569183021456978526280583730845350402651300928006755337889233342673982404432898429217985355051182064687966034971210480599952000329071225675483562603035988180439818577376402919879076180264531181996929419821023472542035880297898155925956590990497834089770616728913006786863308434526291425743978542811533026733149350528978878352499369433953716145923187037089918085047128294075241719885834157156084285100155880800797349972335064279420104213632144146249727543224373484590886045428349990758992426843933376051881104525648552643348442214205575406437395018863707131273481373661439170640660918679187797927004552533540489923428964068511889369776045884236514475032507709015510271117037353649475078447947159398995994551332723980530778129020254418922616387512566865863267245019050577988628450739146012793531577642333447390690742503293744098667864896722639464109920324379437033179592971764997315360284312414350222693307894907796890321372980386402403009326979572134660054837546487160319946652550899654275462486876309834046321246518513019119243070405420289673994369697767367689701051996918812946281409297606759894336966171792011875331004451235568313217170777373099906565108378128560930271061245950887062362839087574337024119588707185059364640178968399070675685801076122869379155080594218592600352101663968547341635503758879507996656328424175238425309948138894503778172542567829894831720367124287269828149184915869821188872010024584085550616260648622503026614186374496281594292614556446846895928592192753576339522389265356618945269639612652981174048832427959121169537941450139640235218473742556245602694194740770179015444863915062436546313465692750923299653191365108852376557458448966016298416619817201758281984613967128124613057820928442515406813897704439738862447822505927379717546545660888115181503416501532551239609507487969069753062016269692209444273875818181985872398493228609571551454004213895501358772825654037731164876022415922888922579052830461756396786128542225523397574141812107067430185377265446331217043900622798895643420504288062050838813432494880284168058914110864469669929792395231077459459786564083228907682917467290292966513504866356848663308172012638381158647328872158910186011087090679223193691050998518835614675354185382259602596637893849983727791298658452459462764323394630088190811135904436333813594997858261423809126588332995087128154860909608945620892392259290893127884487417138143958981830260945488544161851310678237452233410699997145792847229390974534045908394124396862768521626428927147391029542692495584264828480214796365828911470113174211787969538347322657021577344115208663941978130578188716221586887809999232134974129765231845411937460327898802702348427308588988212839045429898180098464154079305471833721242271960807911299470899253270223994114643887412595637126553462293899517769773057399514199433029366663921682478013269328443399373317694250807061758318482909604025567688717056626339598284323468242551996956193260307334739486114334300256535157038823405676553410137180042512236270178722112024547626784374324189805710571049553204132894510873203356623129403405178734053289882571691439368285701663382609075342239133439921874273285932725344618556489928010970005321893245195572269373479676052494467374720620546522196856439243258984951037387798687694357030860453721191280021255686089551058762541685244737714131905816420642571721514721172374309515586382309805854636092903020698013497897401347705044219789215411958351670606541796854041506306688370159073778313487555124658805813329526139198705238286410564428164573764337124796406636502210376308065709770701906134258689447266180333373931973336067605848390017814758067041625545419252449537350876698307213265781695522908809128264908833388840973362324026217956327675180814050352570160196757543240281532648043064254258700632142391480262430499967038742310314012670884732524003655496792798495902779218011348814530651521278389429218442790502371747171328513916013864317364109573864925859123082443925414567837943861981570387358222641595819195452134127361545195594814925879855996012008326659285299540174347546914752829905429443584375768396861430613054706360610213980760328723732769014184581825304809220990953187657468145225282607352239783759497570739561889788694653042875811880486165222289278230006800207870043720671806445629746304846964592840836683998063028561269312181871319095441168831345838911415630367180601112687645732950647359760300846905961608350243781659461298472602982989084123900995836851796877096910191776181094027287638116463116401836931448833334469468516081504503280179666444137363436950951082356853678900622294635288235667931025074963553808878090618318920548054463695133096183693643487212686477001666468313656282958136864760576421885994460787088817163023318640114963641481659441460268300839239221081190313039850259828558305324652527552350458027599212192745256695948800129786943923935705580153846046435392044527564415149566147166461628372397262941168526157397555348501542037906110152171874371017470693622189759079643337245321314640590188761866732841458373917652021159336970879027878347883004125013681206136781001201046206504883084756640801330655868910021814015857473699974297412886023247161343136978726061066484083882698703302523548259093974731597355285331855997999181268093525135500343083838605924819791018047253181383589783273803109676032304822363796379274388212561890775634887138888262707876348500735545765026905969712865532995522977401862024289515814164708128093363106336243487971095278828486592970708091030203481925755066967097530183346599136280441251301454571693500902098990290521461725254930428340404047502894474815741450507027246524682014408648780916276668749683121263441973458635049871331795602526131054165080460641232416960678798297863473372271843614992971685188829416207616469890227890353669664475127310573730769737561588576958854997760423047819643589873038618745182781803451855127537306319691469350268555621936887718964739816874440740953021897664081340000326228707365546125908897603006741611193767908213510474428259244341549595280980766159750631343956786831851807947247765554212277702007024974550357649101590236968514939500472850992560086144253965417461315005906353742835685043851874816202623957002246927128503267546521287342519517250436289256786997959259731912627384492309778809847796109655214414344815492765791561458855842007934591370403464304491269314622574564585533273393467250763765287422565486831336256132312316763250994692123251216673864236998126210354908716718343693757610465734864559005428874400283564976270765701524828768498754780108651456968722954354393405896492893110766583863344709553366918214739850755784702481599471047176257191605990116983866012552672420534180454996488649892847611190960949193613654706891100078562538897755058758687045049242176236488298232334181545813706191591218114844601635615187015257006794638464669105813593747417896898013225901151064741324376894904319978016766465664857176412548772467830031182769321663195305633248291400683574196455885352232733781997862231082495159145504428008567399906644841058285847819250068126642099677970274075443275696620493587842298060113840852303441822128537552374981917089896868115764522496842335349043171707080471918595286316735294730728434709895892925231941759451245399879965877483712424793645604492234595157453485520546880598256811681727645909911292736055479557736481980125752730862829073417460230523300095334780611740306071323402225166515373426068723177077637716849026098429471415320498456997032026354245099130973495103094631597084240038164171021042656169431752655238348978735664730171852414560219879538163604513678177570907133353709873028779882945669858716234705907437664714615367502623819631513406360637808971498492211409630329627880725902048668907199566253710367158362474606252466599137611912509780143160008755676548630792323637807987116345366794255409228590113362617038728043199424142828837226141706783553475724231848860259820599492983715919009440250272997802945776978032996807045566776962060034444213728351984571577718996246624148964565368119206694465820843571217693288911982457604297203609713026561922979218358467815171301462855438978676767827280219894176356963527524522472128934037519109356921881105429794404378169943862853766340676061711995063614917462111252899063338071195379820714679847008726161008024240671633332924201782624216280049835090374526682775143207222913374794674906357762873902708882992704925120461515081728364929376314639727614201860126901345524983378098224564693126458201672838148005646805426081460763167235966747411307302031875429435804628437358193665523530205675918344391016043675027732974379892025149741869851318922738687186026536767125879155190299366487075460424350652212312861936830082732088058308619405521587612037735692564523635848247714243288669506637104800564243014338863214453930617460301921127852333711043237271910381395018648540839401152915966782979609275012989385641675045011050257463326340967528630436551278815599015898094480554494486302659326951538005278325027538021601805670054298855489757890351079331002175043073487842001375752322990035117854208093057353823974830868122362471901662067383012884353040618681551155231019032241429970780746552100182784576126742919029705366093849105006489399000365180415308252522237512420677317469916068539480055821128315531116962147478082208785313989191723210129889462163033601345421592422886641609642497425575670727529019564248503834180569171289973092885131843870949115392943005667485363695330305314503107141246502638141531521247791203223627582726693177539256934264820171812740562521680885762788206323818348319087307508915660631928818606930520316354222469126029316199261711617180273098802275687284772740402493279669056017910139902986234863479932308321483714667414828554867989261259179321785911150482453236746439665627002813581172556559659513032450745406972314276752246707370949710028010971743197793070028507351178142281303151157807925774938042717759599963079378605293614328883947174591121755610699730214371567041806953182139672059816315576812894826070294242347806821417402114660538965148352580029323131309814378628247274374372961236444116874334794968737403256755399191962978718260875736488122059251784964474072173039536961485752470989591674260352413098523931725104674929668155377404538332095403622912839797709340115595750296202492382552535969168418739744533662920979830404710646903864999643810449526467823649710236263685852046416305443538241217120039198913559140495639821796125779762741525394566297745797533969360570043647220157729333552552163363566221572792381257271811008374159883197116365478191911133813792080280941354093458121180202190424945984363520806526951820090048632905289909698457627063876823554861195233445092261795295934292008819375436251331046735848269976227225665779372540848235196954663635390363271104352731835827831730994496145343638566155422374921231224598761049143710206056972089468696029496457597937528708959972265313220246907346835946954863626364224737582041055816663999775611563861853056048124649232739188737069984273478321995851610407563876749393712937787801776110311935007606135068694828018121777393484941609451421690121308710037974449779689619166948034093000139299288909994928125636923789295527807785045276781377723670624942246898413753697635638829972914828552084040311116778142794849287523186435678221797797694097515293113171919192059518943721597959164565439969409974881992025981559916443311680831354736743118694968795649522835668827469041140448947723422995943221706516712453991302046495969461738391601862452366854971075681869376457296325728183729007016289646491531718336102493959350029087486079235739753118748236248296221840403324108620934987814065462875444298167562649871782099036445333140487696076066384031824855961371531230157271109916350467721823128194683486897944138707185634739300289820059604046308231925333136459893413010972986546382112852389398025256877263093880166642932725296099785283905218308672347127204145849902761418300744740692744282772598166871537432058767607305313341266356422297980680977871061294867466092493233543216911975559030481549754479128120561515488925501971615444758944354207928177287258723105620980202923019004930382886491442347191078380916371650538542639480796935174496070347865501461697643927340861853924438370216951992323836946408017148091405987939780997431225264466196982398756380271558700307858228566794312986899268329580423306461245157350309825193504095646168032536706464559286199245221751595582063404186972581001763474265620075226047124134171446067510442100789378475842098374861348678861500322177417346975442352952565297344049700554577015853707042587216619046639400796934998139954667265665521906198939422935358333248232064993779068976213136847361327817728232245226267644167722693282248343187172540028193620489184029084960670435012285550384888859876949571080443123163075817131802393814446707656134401398148698781039369058156196339715184431294717119816800986000754681856204459030237110722761489211776474069399520189156757610168235104313823354885545735814852946714956660623663476925082319250775327648514667822692464631531689170338683688088080048284033447808114070081029872113079960033519859808097089168201850631408526012996183235428308115991382685789269477380655769320965330709798685015384751755729397608208574652399550326710452582638272724555076218962466636612576913938177820601992576039682992710111133378935629090355038134602420487342908717962965360975226380015000326595176388142649671728038256435417887499025090731929630221866144289073982827246834636077456449485835312149483289510151574696727632345188658734674841072667912006546704716113728524859692322786814385683529287498854840462574656927264215832436006215134147851933283553556787094817550192000737435603512094794957462786715593046701419562861933080621164075458568641681487534639821316766678451139939345765287996585623316332996406761651428745289536089377096599488833546510931444936349076627632340280947665130526757079389271134976521232975883805875881528679439934135990140087231052243379706626876186374999141538865417179816877264284335759071875968650425782150736080711355588236629597244398575504709084771284527182833579214609258748823958793887827179690433653104064055668012252334765635154699787984664629044110695072145122986082950959539255299255756685879673407122496971156411838834723183848008349874179569999100596545011412043053783134538584694005032219847232763351257949370191849794903634114957690786983556819087350511474851041980256929012244855875178316670410260082417342036090286154191806856496548349799329926936442146343304171204749054712873567660914300710228365501953805540122189835555825343043865806663825287789455826848866169036547813505493418404184340288458351886318369884388505589531359893504684560242990230742320956322024250264962578043598286390049846160932596024181434030542586288934977234410616684513226819073206099632169688119245070644098294737914931182771584861940254529576384721183702560924317064523938800464746282555843050718105825148972539942254003775251071434934829416336851554507174272947607946432725873050336313244786648825567757896814059478676366901692667079513675887733667982166662972543645614039383193145886766633852057782236050470586802671622785047992969445827020752756684103032764244698971630400969815472438489743836761126873247727090832757148983409122426942258591258136089821079330427441030177045228629358051793303919374155658756979216435743444475921650741626850023540178687400896546658511322082300836446424467123657155743940817142007323524076389739718659689850704143177170672457656990676374860019581805447486778769273220606697249817431273343419252018991182076943292009008748849749147900391620750558130633414141977107661014607640387385734152545961927827647702147771603727953252773427674495090809495292559633466457986634553957591073201990502556259155109524907718374734888625947721964527547650883886437159203371646116012908543014100106460637838072063227570013388985121803610049604084365579477151133527879580516293486676535620210430210833355512597703044896576402882700397112131457037459222549907203702306703934312225398842467950571909996091239894512876394972757257305318175586380245318249400661188911791153633343704872386359454511186856234931617179597391428321877284717651306759879025721171698331119011578344794084630690472086098838808096622282304800093061905980372094443898693369737722481819465774872740887644622243154953059446234792885052322244279907798848072503332780699940243095098314252370284484709309847236882343462372721208138403883135160727906518733168713829275478608484853154094472678007809844930832671362994756932143359177702386573654359592326888939937496142161866337842868916067823915228634374407345997625801207837135025206489614660005979318709076875268359711895757059957148998873741320353254629268756804439460126154674877611974086883493619660174144365175972903002200932580999260172619708961004312758912546471908324907101340571597099151758295830076302321188324584260076782127153618385309281755845037304031089650424736221977951002871719817357193848296375864983251575482797973589067910428722420696954971316925307899267853594340993619345875555481279884362780856075402188224252951169180433585038396398107122484707760938178919417837490205528396611627386519014209092437409697767854014103541551083126170900090160796796293464360011948465468228282435898609696252956191263378135287040841918602471177610483474223783639661946788563444704607377013621660061003858663038313794573735849371871545854331605299351070659787185807405892110206376090550171820348611100416351029778275424588773642534719939660752593024437973803174695779682156160151730778515583422966513132390287133809544214005007581710773590917974786522790025127076055178667175812834993192255534583520111264199443864913460233317744109372883677364831679380573076940347052995749483587494959460437509338102304561546152236172627753009848231204413758059732312862056459993910222730988730802399884498396869201020378777034721693523298899748455617544497042648301782632322914328605689796793250528295167871036227915575445023070847002349126273653843501725568025274790164766580030198393509016626551300934521848875358036990165582977364583286361895128209221970133753239015600111810056846746707985572250353064088162992912862921861667356804833763423444584275114573871620959455090014663803149999853906407698004688496050366493895071426826709690630571511392131105090035266600943602606521504666826061781679262338441861126773996303597735522007345043745871590564438754787938493533952010166757457513321810283490057162889265165768631893881192626195376594680979109195051565090237729492598637817566807569157983833555680645425625854808003032984083743337714185195820909083705255835150716098637875852674029967230427289421491037278011656639055983780643940752687080437458446794749237155708803682606731421333757035301007498394460048739637126503262623136835691822894796590985882136370300438865625368302128953709178931156411554962305327776338750361222657502354757414603823354654847095813981625342802341581583940449082384052334914767074685471122751365350319243008449581165817920804117459977881060994072166436709373967817100235886628368466409884868623996327965659768754057098857817849424496414426577435216592312031756123959958077585113771562317275317141227359485332546358487880215621630369947361841493254543112360741631464112867196903185892756255199371401651671246785731437276568468312883127787060330033041467903318557677765594659782909019173573215617289827473581162833801666568838927229600290269059473510011035562656676632155542730021992458436582395443032803715178306188616640846411239347581407554681610556161628610313074761195456012957857400684305212780369480518972441127768900768076683571400019634803240919777014844768028015307511803144247831171153721205581538210276283947168124423335315624128077075741339402802343017658420723285826886698694352806478312227547231007008348324042848288110045289188611233978819184330399416008759734098154097811332348480125857134612088819008992656341487596133995272489840617691624507458869274147476655624735468639874803780882387580799603547731604871172120632687792215992764766701531955196968757492479011056475792645733227843357952550171363732353878715109689378555817813096207237941199532973376686911072345142571662264021273019831773027923411432067320080601580473756566228678133414363707226755003119335509439528005339937650719298099579061448907629955587994151746774567625901809944251525032293595335628232202439718648537389514869602735728471237699946917822998397830618154447128143753134151328760389818984270262872497627460749727808081632521364273411092310926697562857940104968195585214433771584396591734535657336059207024354021443966040426134672705792647590780035764785103582467013042666972904613545280400910045784116503609348250708611150242295944566622344406693984462672526427405256777521799216512698170505908383272607257095485516857769775477001163187814845308247953780421555356880155102525408284755234808277276488394510826860017960444667151557680423848508448849362821657942245521978358880136586149712499716075610784414137229182068949140584250193661354310969057967508192267289836109718103405871592979327164378861819841803094681166596692674056405015763109256316279797491624691299015135147527516715311306763410248600905648095782806913124342883367177568535210214142152887727891590172212423099076451376813394845340107928325511453044275470385082530357485789528463619661597176491735798611160620372168588744138328081345018528566175507715252238333961192690566098726215382799439088339749491534548634435396134668660406364462845914834161784322117110450048335824978358662108745624099772713393146667054878027236533564431231062931706676584762477736283649787843081153820157525844337441362140790769839021093409396294129669377614258560686664099390059288259167958138307814897217982007389690735363261478110729689924521729285459894302407269847623948746137070541374519438181998438323055935939952797847298173770791407034819217555472203062492361907041090070014673537135771407412671489118910552533447906299627814385207360255502765542653424035788919570048861303055309085101317687222823284365590647962605971575060534857991461957367716986261573994391362224629066400000657443700185897825043137730996721973233859164835440907812956088941974181367952775313191288837215583998329165807121785031944044333142194508963566931880439324433051909346093767557496409435225188726579705641804726687552965819256649772076944974954968261916784437096014578830205520322024941152145669975763709871106312742417306123614178208031489894409747961117925294885663322859108714278401305367440462518586788871512412904408763774224372005183048450894451303237351089723177766745983119561185285171763536787959381485082861808275100847346015859940599393629560415317889218632025793918527362061144998580710067207462609449250900418950236912038646150988962427857513539652330429345258109554581257962408998904908737569432677903750655152973969084828671630442376390946910475859626918617203448509745942762833724813529124915687604896035191531622707704167649949283443859912184285243341071083142001659013536471176418443959688430585108217129493305531054999275988917684635555243840123294440310708762251405081384517931546655683455137808627100981560880594686033260226268788427192196979248721828970105684140468019604823717581729570169482466711754806703477484707007468029065655039168587199170205356436965517447562299199651018525694582310109374598482044008941398782791348727284626861261427854149231306375823915980215556292292436888333163010117179262617344903815121523192600731139582367896366049830982484371878822095447369702882052177631805495528761379886552057445350488416532243504302737845431062093480294998076011797931614210108026158427672094384338179965250023531125933067976071816251600147733753255427097636077800797091946592601399906015099822317530077835970972936511889975230541412231994005942599012926638651829701225451298256174093135936827178600228412992051455471597527488032163925519220872510729352326120347096809688118463110480097031951396592303981513054649518701395295605135243132699625613733130109854151581967069405281696139913903169228890074848224827021192372030993039031201847631893866666276303837312746866534807789448494417027558104071847505606415655216068233470540801952377113623717764594044289588969772034349048201589492764644779301061989830827591781402506205512136036290151109720616144700606980278764663865862083319946246750361663344788053868129034589898160350203508484017397278045882164173952197084560238181592609687478474440851369176605787473456443366063201148329754171846210403129514818373451592095928651860062171471379929948390592664714150232409426008571306337117962273720121722616681022584969983567452756294159567731296848477246815029192500559976671181375018664694980950638488762519871150744437351914494751355321067862996834977852640862810714282611609967090059136078813744303489505650416722916167762729114283031773435008072243360006720460097878875803762511862312349160596245822160946335823104182532918974264797901243434770401347113748849709387985041157867273815457802192737752944588709908352293198768975981019022755586141653631981342517673511162541213988526483777875185060355952306607120856714910742639795152096834524518752131859194085609529758665803666211246957796445090948340667924056209564541158840989419670719960984977778662689081912370160153719895970511453668684138865510114650245996550827602094148962443448895952390389988960995564441252514981086374905962560033254545610229407853550788093666091162029582818145091636216785311440264547531726049992855067209677141204033271476063288642032579557138397475449538581764466094058506007093039810559455911412276812699138553222802713301304961055040666268736891607490335250829770168023289935860006345051506406297698052757888346275850796656804056719080768292052747125886061680186868722207345971133399806172714829510191824545149838613219489305378722133540274101267535241765558592665408357036357126783647671219219886982224868570904192242179847903411531519041426760391434863329639508322065646341639702484116701275427148310456655708832011398102331511221469630192475949275429259582497844511000694310826747988729964664195145893208312809401837051535917036224082503049515444471514292814831105044524154859732459751016799823448840914456472605880807507083565144188144250366881220608613487503682138897620931514965296554693104142397897478962338817694008619334928376225049973807273853948508866195395322627731309026672649401375495505838126980827042159274385557971570165020449619376027557707468279431276203437329190251701068113320686702164076512397934838295168866734887299809449465464102365733150632377624858414720510877403038652672126289158600899485549500824933063099707475290574929569824308353763006267366271803632344046581681361982589413664554148046064154461063262698673216153136969335710879137479548745589089217277700776575407699901753923978552881655991787236494959122192604780285078754007618668952093268059348046085960910232333613830095068672107806654803068481104937299252489706464809324625501213708264093855366408176502911343109058712108923609661926189680186020175218107629555584660891180485775494664367835272761935875412404411524267744546838766413020126286469887140789323974355930841218756860723402402883628837675418337092221381289510136032546894015218647150853065872807943520615940849120318866344787443999432390739921362717690890440304426132816103502322641594115572525522751027912461783517434772053858793311131067601518469422012386353438897825895482430215664875625393799386148797298165859965363252129312109317216975277651772354255513999956796301432026059775890009824437059884958898825770479801062717230335259056490925857175729967480122887325373983935048259827518172598681387430208541841923870725909034415172529758425568033945405607969878513536653908907448242644343642075867927477360981054384869878758715790379625632713024270580853552181392865615483334044580939375864120616041244938319424795302213013426401142298992363805025090545570153215167315520765166590892665004519265536205276613364834579496256995691446934369048955471869939577627686878460829894479129545348417414382331385536498167991447440899588068404667078820300693792397779834856107514854802132252892762317814974240313126492041737365007201627034754811156275389353488121502587159139113709624398873550416916398083521469372728391027395664260971593593729108541176162689807946992649983792428776822623819257294708980439497992161268366647398311177203909465659779898576018909691326514912733139554919454424085221773570669757751214112950688831841754537187902880040770791993320293491834321494464806801535876621022661164543766792365226476834068010684632107229447048841258867305846696146887939490803463188373729154788046577971585151264413425902111939023836083353719144137554662532390302140366427428837397483179475357955529987690723719220073708621658598664943071541448239088068519349668427281064612231737830713532869284979419610265306412822868263689251106067539453637676950477742107855055866839491309197968754715248588987719790350300784234979121408371047279659786833250301494798322096011874032740672052450647490289391421623217534164208111808825692107023234846323861221650532255720124079163463531541391038670521491979686859977960194880124595262555612681184071854770455630874162123246678747325017513164424356194555998441881775577386207537732111186740648177525143580832448408612903287361677691690463312557668355358726109209713615316929845668772868504276493107337822829395079371154501056971549572021483514692647414698910143751460714182605606853825997433247055477827104616323024343327886409538370260112207404453442580185415308074850367132964828556641172229609625533539762896772302312966523657499054560771838216303210821785310758668804155059129025359468529040181627556899502632528078138811146121642857345229576222500406227392389883471648689549857327360536726173086684718090210328756470967176886035455420651894648990496564595450751858310050301890466246222426967266414752156543134627017454591166482026675681305808493389489264218380005309297370620375411186360762061309435831151950428048917284981455545917795665017376612996649014336302547898722185754982827256761590401923639248749468045952060190022319657646776659400425351370307503410287954812097048361819181839144028893228857481147883403899626225292740739262092101931420833635888833012091803453443124432299926028569507441991968483792120249664159568988487610279103322311855314054974955609892493013979696520102656004140092222701191946350721142321932061195874265374213027249363477568093942776978454504893351065957765218496168801649572843925339098257161736272124144440353735440263517067172642239815948317324408824023650081206051847030988088345363892876838038583872813764558825114704347463275927640488290875959510470544365818711909608665387679514935697447299964444462300398762665725531789107385271914619518571069656408392552187050773800281424044442526188507306530153645804500968479425301582177656468340891934718203799813699977810253103311585196190635508519994153596265430563712479708527328338500029463499910044829156585595395224789162257746078325682882246842011148935606595294096461055854121115594716442218657033290332990435403491276195458374685438956259969409095172654268374134225922566815793364843847489019625810693946286790554056463649912660075151081338853759778204896143636275063069991028448474371068396028118069721390177657061612338993835833146429083140007428770878305420674659336614311695869795457778676641857011293301809857677201938323814357279046417948654782392560605022068530618610456287864203547732609918572087728131384227348794621220573852124290051204432783812123402069450988327373688184343388690047538521759839857405168070828763194367745449865822544381283282815294978098397757373761092730746356836772956608598276717773379687122113560528598320973930926833727268550181976127726045129715593165173076668244233897313464483693454978240520802869935799364169873451166885820259184332057249414260944165945655525659798366066132143325236760090635341264791965147505707245306302835546911691687492132342237241523852508855410137186976881870016622595286058267701855055330435356978796324555835339732412000554193128336295038289100962844511985386378741440596589851387142536952688636667289063595844353164977900989283365226814012285643622320818962572904500890763429688111379947039831514765699779223349463435716337075443108127052641179305414105729820472804313209873842761725960478541773867414656660227986983685763775648837992398105347856837515502799173544702091336740318995246192110259331811023749821531768858141465985243857391164783402000528741303872383449176294336053340047661435779334639558295218674430339758268101280158520678971645610055189677546674154831348862881429741270818144812740134750818044700666442487423487962155388619922720311030118728902145316209176147623704477619336229164991097603186271894526731022934581297768559916281044449596820084668886913692803217909538313540338358985459568693751007336938714822549353201185615588769507673786339000332401145778533272890606526497906816659945423369830882737582781436999529870860416650372139654358360804650716904411023101250989704538192202918373710623084998334629030639779534139371171121440554761651725543169616980006864145658046376791881095897282389085295367103780701113665392527889319735035460265128042266901353053082254202786900112740576102274862706849949232259645307365439951345271004242689305052355434838141951325177058600134234006234126417278793743229964539069268133721833672763632539541259168767840638717710551858682699025385464522606361613424108101287615246593327684887801413836857844486559202219383709173893017474835654863003173762150113328788089571586726276377160084536467421133674748865163258358417582722108017811935678616605985760708345253157690289697676180458602802048653595756840461527776310254943175697186667718874530230503537450448657927786045345199067248218148064026964926432923252270541758084614098444066434587278995532678061794315484850539442327410179875834265627439000633066665786520526272381617987815197498340552470003491720183168432811949244878433832466692319689251426628481577288324741442590502486317921320284513927378137475131670743417539453025190459640638381956811022985031132220102789762106001496432893568848299139210022261947814477901075249828698153411077203759532601791494955456572350122945592174688830345719166000277354405785577736414438685539731030790117119977326167667630951370316149643181865907826571120994457198120461910345121874727403695696121463232683424423518632715646141701732800400693362151988498830339099374749779906417676198370166762166172789260428017648528546081127658046364287062420474135944430117883977552547312529934903389951365978085288411372841624707164291679575999590197190176944820367842847083548795811622592078212477198735800326200434897332057782693919596477432701375732703293348041498666719050061445538692399632661482703362358153030854340024938313484177900528054883553490056926870592106706968207889745933283305711941579816929574557890679349014905220580211209958479470581892782976026780758647896516739229953494134522032869791538193316231201551260026650312188149301074899157925298471362830445189539580623779792460989867544355823866477711332143541088749709202640283620113986370370831048066781824308906640512326617193139429616555204704866317043049826207596866215231938797544195837872001067846693951333967174036361267008935114530825444927073286078156014459668617616483584659549822246221950714369144902381885185565020059441327099577407372999034488335822455794687460979310247438806521527935894163523478802062438445448549663110540568435644277885040042578503445043962430458182758252285631893402914215740369678303122460201866928031974292000220160447350519418841878340414376267535441643210059896867581324551519012133018498437268242078437686191386957328415145939074514260259213226761770968066994360391762235174680624603668634927265795428380002296746076729213094371839054278821931429444709859429816052504503977618621923787496630935929345302975633268384043009515806857869420318748327533150145942927007503758418534879277990951091434445930731619495626368592275493271354272994981490211228769462408881213182989036415515687622471538090499463421957752142296536926909771618494805075461747982134211567923360749924526009093057159281466766466774928120740015326871248590407290671115572596908487765400327658871738132978445405127218232034024833132200670445342775546750665040730708069761291567302577654125969296602873640983433470536531526232845451237484394016627655535336811905642159145901362862341772786036651688493104301009634109203863503111342850565739976055636400409536777881191230323381513682478704623685098915252897956288118178618463630471356154220569099173397176787692223549399168032632983167929301399322193328950771744669920709675473811403281571474978306952839575406816023022020904091921774043510400918995510437244043475617625472129539337367839284916040995036344210765568563460121610259346614592471211062285888404544458240878407746519014643781628893577571845076080091638559965489356911030551964334957966985642390703372678828201485777648172541642197019615080971381458214556249013314383059674538919411047925763164559596942851022654626906365649262992776078434781911231781832536386136317874787455736042357176709807176946477685064478980084188088659518195839441384577736641784193187568501246860259644821098737695085304656219681729881910631492293920052812997792253465053219395337761476056024636698210866598490847164785007331800138628772824979121020497352829930379057127184031067553057148280720759194331099617604508859557846267520571386086789319876176732458463701010050572260546508301095396632317047652662251911590027430398459007536701367051063219531495373326493346327876939129741302228108129301419948710335128646079098982709109381377530059197366925289289274678084892664477735023501762896281860760274775239144944596197510335369843063946489964053012957962594701148871061768082477206702752467100789940853064051347078732123814383784242927917396107426203634579649966539761078130359552407142694148776622831590783109287430964856982014634429159040174084384480689709206407958196854499161164413473575285604714526587877170419900132672296599410526594815249146361548842323883636770142474853674636531259213270975874457813143226105996457344423308212675797252023381978264833502754836529847168566503870300276762809575814367240825152902955328886312823962557383479291018773039048868633085196012957538997324655078755794244882173809462303449900084114357525570780670359192160787893009378471869756266175609137249054632228136399252655811231970519274926604988583744230665130038131629410788893912074433046451259078150201201670463524188716729559357529491795278449833595920151942401960367081870146747275568765931883718702877588806396214282527678051784902745562602031463665745286792277176571724314593152297391119700106638755774481193910589779425772540830386748487464089107851825870298039858544507661471224537743319449999978567605510471433132026611697532622684583853150999660496329842326547960144495098793257525270845346501461357170216298294182428471569296684988529273775805487994417550111497364421465503349237674583280709869917320370341745809672855752267426409054882138349316098665994003306639849874654639110947631848907757631041965121357457121862573784950042460496267240367951371649106329541433574347971365308778151674083482459952257438285435367698217805318056345232820960517882616674213676873603573109839184816541493462129705200797733685318992874513589078934089679069545277066010424452477925087098784058899809134625862410132715856747284696143403067637942181034534983881912659356244410370084321065876963054859066855597789206718734060942889065503476017573642293386070568351677786925475945024084812720052427261428279703825961847708094820713538821400911093214453936027046534821422930167047857414671663065826105100107317700454766651063558653063613828064401377057307684056143449434339861852061433445009275852331740341816824449063748243554907895287116815327856073246250722199707718931252578518525963459563157165742680285844657310880387697128344185347063929462989858044854697386238911938643340826110030909913067595415501929756720957259621670236757047721159253352745826401181026048391355655877813723040480470772732470278938207308028883083603161113399477460035560585260008629655853853950906560272819394781551026586735189198247885527948695858219073327344106338587539140994018268221916332597727425238909693128873812047048508557552220048854611767792117713449846645534682025032318896843388569724402393726767437772574018396881317921027207943371641188302962357400221849615122496929827050535871744819671482768424634599429802451805056057424131632948329743870358699235358447371237093441285200694254925637364494489955936475281221242471124367596770681933130277065093212140986504001669091059496529937238063626925020572635856703879951843252954528503218927435842258923001893161828243137248675065428521041288373986095254825330173690114793999403180802482180573316362576635614457600646660892585147865765482358178914204269673897047901579172796759868078993584479551675965532063989535450245647265014892852955873425397729567026986204180869456527022393843900563043805362052053073244114190176575243474546164191211667733591058212568900542828693174874314643271785875590659889622930897054793727435222373510861015656002374163685053941199737349334879867583855422814703094265744196506443901549897905424738990013218161931277424180109793591155018129876091577725552916870662549165530179493261243158376608408925726081927219037058718258307604844799910706972261384067211892899853065558744106461263944013805627732910251840462053862727583919974895531554305119280123453801086812305174913798986441256261883174783395767906898090786880829282428680606702839927117915991837621527031734575189128227603549756621270524781070678089551300904236989898347632494037172184311280118264796978641179435859760867173567575625447470811443957506178920725902565548049449544454135065508249412654224157485085530333336124962162964761991067217602101360417458413392796474470156234321853598584893337680557934454890918325966037823955262884032773337427082995531903848405295897918640202627854318339329385297990135042987579155633925575264019833586346185322134911282875871172244788912183468227877862304829014836278009851815308617894031872973152971682098168583891072868015155890467354048533747901378322743753608381876884202695925770830486004400059051210513327918760937836824044105696810583523452182598977607922023514620215190058928811205884643572013542299643642236927572448798820877383364450376501738183027871387567936215143826088219418022283395394672896866537276861648572112409354390212738303812471455520092815647540708529595242462637737837825518563531162634749413202931958395584560542549882297177547480300846730922851443172466179699011986180109555264735296666561244989245665762329068379101598420708078407465230901361136110922890557520438860571694417258988042469633571371931805753267855310715666083991999097148717234809462510937033172788605730370253990873060373100692071359177293551133848565866648617346452133298464417805917502169143714464127657924199567717903091996598308581326368932202653629930595344667670509941201812530577854116960020171201884982241778103840090421872151795836333176314616105803159692600591591253884536550683848429596896113295996945820645732196991279265377560348139990731314171570632154946625990687695343262364274667976859524020702157919728898643792189697495180564248187151211755567863397653038217355635275553734800207120304388341749752628128801308331973833033768716764055275669829690487581783411368980020304914605161327802428267196716184411838661947141659377715470333434929435962415835520350635031063045321729685813130826560510235090967104700554618710637538562390521432327300797956629944404469823650521498762929026341546614088008891278808518478848696410998634041781009763363953890686961815006321217945392830798666934043589695087781482013489814747467600742193637857519222323081228142828581302379527367584518255556218732649567333326119025941915264088222754952536550230486623418372126633529237359005707983206641480967029291963686074434096850040973388830075125764564974875412923074268670159899506628414546675511554533170043381235068167103835886003801766273122601077242690656049738455741368464533877963757988150854482067050492226559220480631891503550875590303061415410419830066948855451783669868658598416638145707697459755692686725992304635458698199359691737842306886703389299527489371420667065877701864969466119524349174570930618210187333696426227281324056991644575166669898632519923138620380908596079081550985058906519332437521937938973049522223993198807307513493443623990891786361597273445096253278708713876088301441229319005338849196819884001118121266941537101236348988492233139243076815624207039289400094653676322726131948931940333661858843421873577521683581612590911172603838516727765486821106213124984971971354391098386740002165878634308036473237624477514853828354186771170727259949390158585932460970620362061924608997378838614016899440613304312960910796838021323511656808261273978431249637604735179674040617541836010841435006680880053259186419709879495042568095849161322868797045601335335658028065319664274412434477721111716346026967397136148566470726605963226470255366763626530224758936858379684287879505525636427411521706338447919668937854093265443062883991856513347615768416887197580970669132056155876101686288372508392416672320707144809463615800663822985417137772081900280514208446853273824668686708458188036879926841326992816499010743888474123325697321696038902312853962537043986140963225131659886402377595757756427228248044203799208987409744604439895243226428120488196860239360214341777088997096855054971820242183297445456159396168754979539180464490829981266045465138023079706779485706083128708902680831378688583361507048383365018353517679459470379473981318669783501261220495717310104650668373521956941931649847589813980986040827377665515108023131058529008326123343551836352853989016777182021883720741834887341701895702495596888785640217137510293541520310235895478548734352393407515833018420237825319685632372926854148351580603837727434610829337662131626248895038490053191504841244412196315990149706845182998433641484247116976420190663448461489880990394364645116412993092972939880001189703190903822710146653594112010591203118083780502072866406535695072316049218580356936704425034972276458865818227124175708357402393985003845395708151790710245975169464949619551087737589732519785362651797204795409259227795259965190391762936579864171512789103003207018646151177627486711993761119068646920364347935526039105200739400852970773713043866219223858981757726345302463030273030891108704997017680406100664486944072990444037815401583744784300339079658372362695766378587281956337729856429180596882385788697053351727392785212022614829027931983758811864196809639303766819246370039132630868374095500547740087559863312005158716911313012421501515086899951496495040839258884164068005264768096514168593642785086832212752009070567772342754517531511768143306502123242560492731943430540214083415094743219593783312700858763630372065503745931339493058800227451392374067842809003548318725986169307561782994030741012933703900861548135701854453093693402513384410867554423323778368335375014663343648383789262340654348558691751794143531537409775138696911693507703010283502282503135859819798207208487919676945785604192898715288433013377589072006661577230355457646615221365577736034880385294737602966594197977726516149711406997384439796329867433142333973372386707174945375548228275900276480207999473829770622079852573164524288118466422850651696583406049640099020744934332229653587421047524773911834297833547148173071631483264120192303099395756811731222744309608087478559565669252005327301113653320994343136005198512576842450477177215223331697826165489739368171172811014781797849721250000558297007842683040591777269736489125724635192791807190687994724654180735649420466620841947197652190621249220776752493474248189084305134178552278037231276647398760026250038086485714101584301878065337415496735368376575528077900847285568320857795814600324245680417145045779349594884694047224332430062663394244837135047080859651441816619985845186146228436723388193498814816765719227363371532530260500967183064320739109839018032823704354350038051746429414615223656129781916130209289343527474455418909047237483852674090705489778433563399741626766793115037298643765741439088000541959318715251919579337627189792286478126806089848484354152531302095055404135320191590968026978917265517703761382417809648323741189743209317560562962238385578832836596098426903352054460759317010855385318220937201016143225999469418480409822029389442996713023664568717614171646268958570849663594798105482579444450787966312037594082938327659501320609580416229979053064812182890023624257792908379844926651720920102305025737419758022913454489978538371106899854637788860592978905142515304991288395591594764312506199824236471659234259574135751491577345990878032532181162879962654255914898701044819639588052206626116421247942847367048434972366274863101593424666085096898382049449384059814817394368864725194949111288014882893585038859438582109639702645000109106098488199685366790307126130948714834617701018248367178021210080732435256908335603283964873388079195068667549767931648511386088077390834043713895519863088093280929022063692840357873220610736725565292149643855155319679008485998497763461082229635286057176664841726045203844732812943520945478493584392279624524262062596819010893965260589687262077730005443119282168944430881032391017110997315803408656576947939886417630441787825100432608507926828342027268553074488231311367099205749171126880069739501352137152879517672017978892518360170699050728116613235966779009111489608502242132823498149689216332227818561635997830071902846736137538378172783601402891422941785430961575600994759142552614025398371537458373020805204301972851298979819448180988856223096142251132977607294842241744414476044745129476034824616983718427062206971837460397484075231098842899750208610025569344280127791222367254452559180362474903439057787742085190991115966482363115173519836233196607306427864850721445600756995570844795796533239124093708991387462500561306873328524339246267017724459420623991642936929367827238625811864972623506671897049220530383384093274067538334183729743684163010127147673831535362682938857699659281563777448197510809515941569134542347083668465273561857604046348816838065457690442156707498057005542749369125096300027947102600962522441877392841744080060543298911804454452433533276188128527395022764188843864229932731001128933533390541281947528113430612246684130376337491682937100829525986962803682381726579923244879109419107209444376381094856466656377540657464912198496287895964750459117239680185643118558354181348378677131646307980880847024374114421220198696031572203885172479796193035389366039722487544758445591624303781802099478644597386219535737113073962445161065917453758701573723126318764603833233754301674376722564613128597790463886516341984886451121417040299214920513445436436669197826644423922745723100733475432495302388225285162538954331121196133388363045905671020317099782051783675424167936339368533792954378079404771678065785399314057961419612964139979031683147680528692034363053810299234504962218576456646213495353327889137700532665634502555685425568729532357488109870375511309562226493295172934408771247827668152612080735920396647172938980378430154644521113719716215752164112326901797895151402713334984291739994442410197531064307780876991533953460991098176227563669087712893777785088227654066676190765550031564644940875976074175533421225204812950812417646582320589364035782055107818591075969825803945202405267191211850912066623260130567966538401964372944938194500999689784816917686414105044461581815282656392878758693958455204879569047429529930193203959593279762291513247563729436924675115695882821913476041021398882842528285097338174240494408786337274849078568142479354111335115221388945062022545857875988937751304229699234662488982738435416831829388577353713346948706975186669123210805549863543592518137351636364047067200116547857741226469634096617171080276455602719203804409044153834717789815362099823054335399743081562300142661472884658787344483723774936634566274506171241035244921866221443817150062456358902529700730069632087160265603575675437699947071732948106270717445085555985359520725535520800947621138594939247752740572622141237755274330673119535099788728207223166489596319376685204522958907679362198210340130427206669586753936036150570521398480864155109927051248503145734885689300337826994332839012431060319359996262867922714394022936010039716824068756913047183972892786206270481531944771783752172148106889741544816664647517721871049074489613248204617070676364263980795889363710671680073473155534150776498049694481864462738344802934121620934989191473825320712421339695658887718335706494713031252049725333344578971320298588866206636569751262063964129393169374081841216218941751346009760034107152619918888879896477936048989246580652971206383984733877384921841236709250396438172351769842126196687382641877904343486318857041424186181455579165220569445717889954665450986120099918167522190479131874195191792209111716383090176867483306259855802599077092276860191859906285533784006320409836317714941253966924009618693817275263914856998657187241556999658344572671961427258068656130705325135267343678705329807843562164414254473641498957668389838997216936991919834812869019061138747570920422951319394023564948695717963642631627160532347351913821444198113399519116173849190812451876982680419401673339944604203562478939739956152965512224739205832204737200862571795591986720179685350398394090622504099126649398064347615444831405590596283150164589685529370240585595931779648989494067184819631104756878868260438811489780189961560458477359427009400170187131696264815193412102679463956736223818900762475142449136961584498789205691215483371066928674932373246510947367165689884800836940042505359734643052174377487231368189668426013394244197072099131434653310171271738170453350195950268641701074920265633659854066488293775454887305022287619232309184471224651806690938560406607258494534804202089856291979781842927935160784792941445772177765195492996820991804695088136130040396903704444812401654663290558788754453166371931564463290684612845503844175633032099983550915021715935411143884229138039431140059569661427338675538692364957958706220634528437499332985357850900141996008050417957206422887768711228208071366238690951918374518520779159026481552028980951581933313141559036712760402098762862882872119286941992918499552521339881401208940190006838695105694259575224159401060942487726412286392449046970386299363264567171707507383089288807018440156190271115565237335663724602259914825569611953222659017508352594538025880013243737486495960095803100679670790468496499669360024990839151501985200864959456331224735262783158919937130298858779445604798732780637144148262936031782406522588468105515705347660567088816767152158420655048368365593416148512744978717840984767214656320710510881213404538730087205315171772113063739568146741487287981062730858984571319868612106293552240603221250291122021919543042007188184197481696522010886397825728048252973072476258154956579799141182389653490847883053748986057498080287112772916826080330589715192729768030303063670031515547207582566501784589200830511316742079737243680399413300128896675485919732200006237659171284670015956996198176061001074207787097304079283928409123466963710469750823902403860247698038421190184410058106483966394737996210350150871609410268125772289075853224961583108845523883894500066343366224081029280384775758090018712268611810660128485215512854947121963222572467309648157718729485031017866778962617113125750739058195143080739260261881007364881977442025222497422716159555602034050084865427796910692283557399518534002724372650448733951759014441625976577446191179133033586668702538738628258259382352124538303917945374416623885865508864305238514216886522592389449918298973255429760684694094796286731628739655792485395794018817555488131700455609986309066464991479158143004654926134416578014783442071624396251357899852116702665530822728193806890467614153655372104383432012630120643642666538617885192123149142852814222542857331151166031232664219126647282461759593358486713598412488382257421879566791781016913147847690392247174300521485836585083103508480009994916421005293876559468757226716517576634896948097394018913081947268146371878858194028372503372328993386001582774301990435394684833226773440025324515438583702868360309065800293625361298264888372358603288864954373664089912654955189363423834244187556478289792438198526589037059397196531090753463882785733111068811025420886960461332824532118088043081214285341388023159417195099316119042525067336033888022783004276900906132114692257142677213010342969137115531467096231993232364734822700967830053027526386312701807960211376738056023381886016918180450396434681693125868511057385864433695132096814048496862409924855479094933022800508333710288733428811304719949209717230064383315185022526747033114251102593541301702386786686643560200730332522622299746290830589898166800172969156602246284896343333137375170442929300515432649457372779406212355878524324807166536060127463763227448106846111351626762343382174584110158998858290280171509181513094650010751974716076243402589840934205569970400321049749676948783469149024318995048052790238819452602752347397600593391788255868254058709237491650241957714424294153658341366325100658415842481551839092534245011752480085584319594714091253391711842990234176331505569119267017304360139197529866972274062426825521962691675931340332542169184418712241860298336515491464039074605516646293992319536375234871551747493831220961189760077192336764875154895059385902460874425194957187755521023769298867376643292828560407828574495212345001422934074738585996588120960143896281332488585817069949126432026079539786032973680474422070502612508402486636131496973885573350165045008945444671290808538985729134882818475106194394553890069081697596942225866441587733428588935174054732564105813220255206983842147934754543200096686152174586237104618338055492761037934636577979018113414643059453855232697095295681964665635106904140876117046180776292157271894228492485910893893180118944920539499170942335360845332907056213026222730800980995962395194722961752127437619543245643110956757916903984410687589131160421420654100947470075581419837814136159508013061325401868344040114629322650828768657241557615596018432154240724099674356962609420667713158577065095697239980898619249247912439505287287254476069295198644436131016196736916285976884815001159935792271204267426104049270572474863085662309385530176371155688770530014244357943276879343315626779646195025976072464688424985627098558542512258192571241823413062010030287718439704949241852071059281824937119565932657732253922021660429813086433515619298380572796644800956528293496039100244205014552480925972242811123097369599824116083417441022218216945989114997676242071502155421331228024503953146742525812173994468045861980001300486030411269548825819906875427636995543366291968947023209077940698149550685664480636889965785745781102441367130873825162832003025630745923070969304224911333067624131335753630933295621189520833991200051199691640213231213865316957993390465335600429565010656491978995952129904887890872762674538073830415290925290511039684196937592157055359969198100987117674042847718418592451796692281207107299956368002711083071167206279958915324253159604106151952658040777132150133361942906537214202987142761293820217218907253816607809407939266348223249479349442390766149110921127719173242130604532894575317608846491255349101966818719512684572354452839084416792211847533265128031099410762422990058818990870861763291261323036390916158681975055065596524844117759872246951202833316835268188437769175787412600525899749682303832159301831007685012170136699959369408754247051640103903918678155176946737762312455687892801458210787670135180299104089670102645664110345807475776536671811786776928551288765097422273199015092223762293392162618538070848066330612290946516838187572207732096801647934971748686565043989629009059009338301195052602885557995966213049887961250206768370203629823849290964287829229719174815399370471025696684715401157285357673135866416710553717778571994370963929835173265318268516553327152391764743443356978604859079205151962168399876065776240913454319939236361317660130668050464931383458702458210210033735725450094899228068901017003080850482731961119542365412742488429246804337480714638282405689376282834415719497812864175495296453205982361649318412217904241202077142890840799800879773824497359271466809995096880671522410553873822788449776245198159843371913519301571594900000878076361217641462857095589522287631657786162054124826468554800006303910371362686591020108742863107363971690079701502819964607328915064088636254537526454748164768420056002435052389085659301685162610015832465705795279073740733197125264818404071710583796874024123890453568619383873697142438026716228388688234450315347239269393913220097287839324092238193613266534401637405520935865086627579617096886941090087057399864714848780977172458317421691829485466884821997235176731977866566165281672406251839917613619993307648393499860714779784590064257994832800758440294399338398129454898392767720978043031568841682781798045036625483406884721150184406780852386957214061959472874383858814151230512574393897645407641836597881721855987914750027836009216860676601919247081520619257985736324422617521175260711243062956838464058406248242336466795813741353181157669675237531752630429416839953273599457500452734033401909663749694782070228921962145329245773857802390982251573470713512675650258775234105462152927242866314190237339955363744660658707208677390969873833228718285860130782064213546259859140894355847279746573364636783071368180814960711338972334816443910979934112902901262220981393911480330003584310913862037835923361727777181706501841545848272762467309207239027822555842677488037546715562286843999289801502303797905475379903353512421674538931142113410463084899262015496344068726899232701180364070449726703611485747536120981538355778638498881130393084816058568710380930711319999046694847788762232940397521973859486296222383059317505527513058595664150877512961742965417371581267079326212586012205708771762577690592135353588562915382353058910017572956150401195191416640689357537831613858173478234670388673486836218101710402528474404468878913125011481145006069401250682353158811391823354500286577846698584131235473303895305507062566530893279975067337314891313656117910004944810962624746482933064158914194458272797298477712608867232080108246819130829327155777746572609437068039939214198275860413844189513501476823418766878985387238893789381480542633777042851418053223675593653172970013771830547723062490867133074676845902221226475274516804536851016398974293692751183533319307982429393999545245219423156395757695368634479510248215618556197244508664313580705217733251777677185327491499078532897998383875678906610230328100162308928963932835106442797489615960713065003923416156718495114350816864596710811960551190852058156862734416499897436861738251853848375325970556598139251895218990157179680455664577552155660154230418225150697226653043700288438005214101312054171201542862797036306693820942795606870075410461768675492199533565835963946284626543507939987698554815506497739760117407531898837065467854309728049888387798510086598790373943013500120036110873743355762015783836713350310192173182228447468094219658093091372815901593411434116949148279568997095890237328202531752816920514193931032306078601547078565870143363916328165319185241440218489434205169703471103712295099339506501008356760605484050968011868078097501249936716669653185561809953104050126902554057085013924425662547803561190042140536279451383953886944495904970147769947971009418803927735634094417151833445385599129246869913338296778371028854022455588520079645858059437835778273927932324811804328259880126965133538968812609464105766920484089690271654786161572884103657772696538582297213266114444065924907886790461888568214445814223505598998162236039351035136994816614369016876619593360335269332386914571105089024332147388072727802737257580428290315005042953064957574603877506257237493803923408769473039592756370425284815205344485919668068478902952972436030610482065869319760851926646214846479411958936868336357305178922783557190646153971418998103771001419784813517230041315068994483474212453572528031885324703397726962784732016388428883171092267235828246835735610159964092971632960517388645349116225917192733045788599210275639415062931491347053503426403972740344626324774310649161326254207580484689472010366203235753589386091895835761249493971981846040552770848876439411432770281222661396105826295649601878185201623830698076502819437729571532605333337403574860957030112224026511035508319603366909183552202020098982021878054398207642332291928140177251913835874807315551500709403395528630788854255128382388536290642781342399242995723720972263533620685540175744198243781777988154688874918550735392866624902293115578590297265093050126105979767286403024645270797512979213610425463000056037711037987432411486617010344986902777283116310980066396380901810615259790278279792264084484627661545019002489729719220350232489072553181401427868707003157437804789361803891487681111976854985100346412189054525620297998621614798219313587132830501509583718365090786816154058336631649817288750231908724095767773205183331934491690612380467286382517086536306724523331808558957344704777689920180644330647454472917799145110896546691401962598852427748790375941381970148566671271652412519248394674351385829838622032360436153934524857577863694084233767983549634392833581977513935142989407379532012712886496850859153074630724464913883532097482663740827102052593133338169873463944662243497029922645945324537587894271262860490370157539997785743181914381131778966272602433658803632211497360217430969132368929429359101840966079538701079044235711362004060781135693133999983858839603919249989617772737243235659689785068374728121746553244299177069163844690757750482847156031468260849270356385615459198225919124299214008237651881931124331705032143590045180845665625141696305503994955474554997337366824326972429423775119056462959591769401080696924233059077844350035603571328180548795469166761831239077558123678455563731287134837083141335509460472511789874536024223768224106163605928991001631014306725598721552992619985370831248242228634110265671077207205700538446773312312145110238505310676788348422301446616638072102461204216912468358659665276007379408210340423636379335196375130435390080470917686559573044414063586260432888106459888010467135417093809035800620879971603798610149953522114557372924007353892139060860639189475369678865762254987111747953495363009717610208291213244360034708589996044535657351656479486570794108886321489241906879763101343474051385358159419915872896840746077774782779399194501492074196126565922280470172184554437698728893991120225849372246633894304176678780086165670033657044716301624894532297218569538853734608036412841855245708168991450674422951830031404310060185166488363932747326072289054997304555124849512895386037764338252417473867143645305401993212166235568210319120243712963454371548149546516757205509545641810524510032156898152001688857058535584778541694654859645674814343487547507282666197686767998824804179282816515444962544341145967623809436757318440741560693272750697674940334095157486711887345769574566591683290303337198494283085392388141952109627010294794598565278333012266627487500590530041566192199004864455391925472128051291540876485613341132094106711573432865395638796034819390573551136543338583060338648268904778880125816196057299444197318891256037493390992262675281006755313371638137587780103855274006257766685285304011305329472308423050555767136142530580733890031947127740282663963129089082690888831097547910432963022731370626740852469790373573638591437469527649041571883494320931722618521513196078891569848459332551238315387172670213082691188257082846333440449050089915999333473663847650980730543838764172183521765295749898657292506783669103111697146545683671742643211438076168226489065001754226529901860426728507535669572163146465784676841892258759041874510128629545460968476500336780748854726744090467249424551972379613500816971655601678856486158885716013085725684865131531875900233517695244839922581811908422967907975110818348240943689472133067379177303256983284699400975557459671187624394895803137959612855663212634308873917715245814165631678915176384192970832905646141117585272566786301069760934433807960119486666806064433430384575300922264381136581925381427976255969355665927070673136317030725788451662100600084155369589318352634780079336190432726672744965564030727836343546540040450909235732677236455285749708326361383366135008089972301914579617127509267898256366782363332955109431736975258812518415371376313897643893037761075088796134734482175323312082356933111610259838769938664838452309162860953098593781394971640298443197233518594790328295909126230861771982655080810333508479805275583123056596355967082060898679786095440819112766415909025428800307179557643906867295776214630118769140665487857446724457051547668613124671123452668215791850055632495966422037702120070963781676256302889182662874871505989026971023205299767467982166849153629244539433038782271910957842304817155335406282143783027412520816407691120012071551357524396097799433977113342632711770567154100901127740469975916999242359810947292410466824394692368404823147659757070692339483200475673901319661243496793614035695651334249114823648463113453985005983787998005807202061772790606904278194970782963368747847655380235601896068557951638991158290692535200685305499822877985933091047901443055450812645633229055308576973037773395619968612448090286240545900391137019644955479804402709913812609913722875592354907695934236313870275641838131739022794664198929297898664177704496279924228274692543296648226075072982560404607521001956672753996145926904895180438697066710333395470241383371282830547769301306500382392562896529454838820241202033758230053784077408872779535709702202029168921964790264168823643122460293907160128460910010939121180094083754035031217756235076286406118311889119165638278391098806147062190674079234103432286406712763360744788440417428902041685313412798001516695074813363845376217731256113528646171374843566303240982422454283640500105594381281986807640936487529731198680203311273894400676250405953367686416812593034011233465003824808244763761224263369627366636408782240023406467943727319071927656076338747729011258784393400132292524615250854309627269577634016765529671887690231405251537404701539987879093692435528531673026642775753417245515125327255014226023606265044759353002673448193834662927648569622787926487559066615810591805597976645054846511232439543147658430207151055480572705786066592291546390695779493921400447033867514113843165681857098810380186552904305531873830133646484422671841762094583110171118544591164716821093094944459333367740192873449196952753761006392305724977983693349413854310734425295438747808673293417248520864362889846801890177730365638653102670937955708243239713048172474375271442064379828485549063692797378125458670921878975993650102703656028750487361430543930698540982983286857881921491740985683067566683303764908431566013714787300297812168357542245404153819162570725606405851736910587386010899620543719279098077132225630991510388387358479424777940204816290269197232566953902956966885612323647252032382227834850899740427203704724417419367166150801840920489823503443275934493571893846481178472832375728072163006061432650390275120210850890798493300203173775029962964248041584882466409661054669908642490234042911697273948967030937411142396547460937813642390897659754686066561578971956904683761812491087870463999434548922310644866038852996478838232488658121225192469497318502392262895331377970825862260585169122169376154253798790573680894383546776302556124789078543176382098435503976619200933874877565423532914803766024681181897821731381506102003696357247839833956687943946131945630454434641837357133104717955383359860314262139873125627330702540597709153323478884424667913781935417342914344243124896960986025850732258503409350955046520615104229604134152857738699258601067627475586958576379461689335917954333438019221753142618538408877604646430517255667836557677509394179698807343953362762159704856733710749144131502013161240334689298559845546671227975942652460223959550352966611738358712723571113948777301559812080136054963568445918411406824558023179876904596684273090142083241005647591461408686345382559194439082282298795619215854756578021648989721807853475725694928654490515547179736208194113626632380010362766762389985475801879655026318496666935381724718129443085642220551492863686480163037730099006032533006242998895853008123682019070941304230511214108261111248538542990722836093047838685041100974138891578504092459131560410466268103794083499278893239564633282133001790865236676747382094296645695833937744412022677613067622817042819340806771109816247099195165891662501740424105070064849814454050063713168899035349293713106251009049127563862275344194584142074027143444720227594585388431858745183321319949811673417108835616529110660519305021381193712921661841362167430732219151105638052154312330442674631669876123713482172281055451532216717382280778681856294642762197228338661231979381796454146961225154667894208333129858982669921718618723858184677825876980805233317978534394080896681200900163071185233977417035637210683360116624545205666626326238867763968869175230588887967558787627858522325786721975534332551168128845379223921679541856153505657319538548552690107804788324112141331655278252284859582836063007391549731042957370055526071196371371072609448188540445346306011271520915092164002211008080201157351423936980233962772232332055738661189362916626675067572627815518346788349035231756306957672290203728848426202785836039679909770289641938967887184791994445077777272460219851547294204865517016839559564287106593292786590345214881271367531284757217379103957657201387183386133942306672043027870231467327544554368067507837692579062531397872179127239152183645570035953692744956990927132428529972830724765995469460587756226773436110726280584446456516897776571641500764638646190595626551709688904308720073501613148341718022669221052163396225951948785864107859782094458866842703351197005070748643727304808183843567715383317161970571351364233678812491874172933848876098888329972457126133133437255279513837474434461259190579396051546535722367538413293836060025736488657590318440587161862013477659970053307510342546967464114323743775479741639875319103758180861026817282223856735666613841173382534299917900827870841947602031971122637715426898113497195526263840623684894133349143393723391675439306656817305759786921114701336463977814679868878009238843829068968805142423284086283735122651668259855802788311129241476106610160009623449484881347938682412766126748189324896006535220192449809750493332595798760035082046684835892233856189232215585863967567950888683318201186953132713012346813591943570944991297554261036428276026300637408851827035134834964671158879133370753721831853135870619056515231703439805928901148486021343901278056776792995098237277504935524924048138290324052065105432219293954843741644809427885839842357965659837463779729118648470460326447271552444657364319896511579006015848601714993817145953822938885344157608719503300645749710600307783788566772029260292409733907547480677014824265197862504921798703781619783939055230370587348608238780791057518775871903849949915523450743592542885316454405253511273145922175988679330932841519595960501093970872651624835256406962580641375492354669490476085274373761870278228288175123241827474793842599016087411272638871669271785577105917718861489776518647192360604153799821605815448107378681288162845686921583206064551765416708848190665081203358509990907425764932188313922910497841767869063527001775974782771456884350612240510323925020776798307164317958925420008418786731457774566115462561347571292237422301497973260117178516654247691556661422914154814930615370886595561310988090059006592157648644200957797754175709999743558726165008519948155794897481584074523329451968257458550606033470852954122902252971854632497584834311776946931884242644813682977487985549012504922681043852805519633001642207199880619864384890752456872926062743237756159727070143505839685595131256525848936811882245920961263915409039571833123710366707561833720712433662368741815239913973837585980879837998661805646943019219673663394010528814362942758695180764823088198978432018300088917334635529778179036641521139456655286089154712345040063583649052375851731444215461704874649572548442899502970828922534691376489886823052825592956949221419648051934667987660967530951971091110804879596050884330476364984122589710825206458368715828921314188130281732321107402896146154053599967957657399772636073114971230809772269263002690613977291159130151034715080270364244347770696121463560029000757068427523081501405338354814248033781310232511631527517851361680094971082329118905871731099068206846570462242781996339205210856010100572598265803842137150526566672102138989726887278794749351500857193259983900394744138542214396951058792165699970415768419631671490911974885498554159114815032095610440958276336259417771587941438987058273797418431107693093212423924456571371464666391784999379493885170918138383301599436639589676068166504160442447333311026941780050465586913297093383480608564311050806040275903554259805487489851282612623531060014267338129037722565526991882231843559847867418141537531737217066230752350816740072505669034828775455842164897663489602843770455304512802573974724230538888194249016386629230684380432195518193425201103350825586425827206074061676421162606144725821752947078808279565262191012819600541049380921533856340037915450554674999004396505497669688537279862684031539528914065574233136104123559482943543728179900333446420554500473503036701610695106317942071136463348132898943819715408191017301718148757704624143970871232389664340213828592358375676832398332422274368237359444014208824067101035098638398496832867335193983953166412467604377965430701410183463029173135120259736701361204354840925315040159282138161047301218573330440160375313512598541457236174227443671402299200032786690892645940290115862671605500540203768690921814246573128728494404167511266754626187890822850189962399216364013376378016111075714980006322691991362426782030136260422925268125467057429853046544142392581840445094546757151880490905344053580016712762304410939772774756653808581692707970411823619261560687156104660371253562925989465332069326464113942912449400979456952931997758844622390402956970277031722363339443486396910070934210745652705496804912935329563052913778799855621400897299328307939596281378289246882203897656030941283167750037913556220169324470986654960106134329892152286534300532561358903304084468196173787625795400232877903251034556654376288140469113220683663462188880266422991044958387225571092630298696225467172678136978865998833636359365729803912206050757258167627785276347463662248228145216949136203576646740192954660075528049757409955727052347759199613120895007107362118079079039806553341386101533078391968806857511465857843641171342094158245429575807417619016926299011356061823453483184958699831256121441051232189812211331139082251888814267737950935515515049323306562186498874278019851250831961385476000612374370716280902125984009588162840987941094037417524252252130817424085777236482127257227760137375706589217016135191011959501071817924519280015846142624628277903144058563293576980953277701753399879989818676085550674971503160727549931039943642719526562057475003443757237168995357365804943431760401326691740715965282080288912231049983650816643751098900640159672355969924516125764288590147684148389904291020094614606473492642581599335908121032527584089120765621513583486365054963134367624406515331202084250857333594324410602803132801195653326823757065398859671377459451642081565290840324897641387032325865742196495541535148070578734071050821820227277234877043822459779446860858001933927493050627150461067550704487233572653127989834233309102339682608333250493566235398358820098587394831309490196419247575584901523823208835708422850955342052391841155244217766564017033757075713459138495074480408705263309606546517271841583561019961136255634219355324527370455629892896527641450832255472338377395458130267448370593965907972662538664096682003008727063127249865227313770830097246733954298687816987493460130285750544981155113111073613718000542347374560552940451388184935142670271128426910353640253581308998089171655952134486190012276579537468577683509199527423188729469987878551015928221235803320701503750989040303093324481405955172038130877555384138614617170642972630939276372721305268586411820623864518678869864576976036983872562798776531318857043057517692306904395377223173984876364001825861918218801549883340940612115982837953041608904440912497385697546153712918750005737152333892543484651978102436617161122899482633415313601055832699279008648328952120029072112073096365310861027534555874535700969631056526321959142596946201726524382574320389841574797793891092284360816529373305414551136533095900767940836166376565714776545535003338253537074202786321767713615036025351670620310551875866283371835922777514376218061412314397050228401548143213921143693751383837595753516754982467131580822056811385655120962352838270796321198937153354800899123134056817639644565547649970153191261631827756017021658959985526191845639562448856077895240906373928634449892622486136174703674656062344506796781435312217813196483649418758062330550034844299099040106640917563642202766514796977979278851716158288584807621694983681999823551123008167066474425655524741260992276721463345167033286844555755902165244162995689242980379033339998327360178872260785646983450196664187011910125142511557756789708019293138650058855484651203779734892732329263201140029181184866136737992124123909035668975945754509775421125192397734742129725171410439037185269051497168380215993703826770401357461892076411391208828373292655472883489062173023876987623533753660394544662968870720186715196911250494025549208614397180578035220863146558455347098765756758150923785517968545898914180516110983299251612833327247235341576126820716617553976690745078245698480346137390941963570181944474556663189040700907904278944080985479085127485750366147616906084217017442138929257288449513017260233481380845158305183672094537751823139478697377000790073959101047054123154776431507046746106436680020743874809709588909968667020184101042841551969175064577545983889050727623328116640322757963252712536340062700227415623764172149145496520196238933794242828248042473895306137645689151749444737521551335212850250466661230219365633712726672267196977654817418129509495980507058083011098310218486292616749268258891250480724242072837224510088208329251992916033919028617017940980091472391009772946506676912852066810219900378249156964484169025639443474982118694750025052829225014416062797459590848992115888025480690148648700489710751666113571998606879610930245442719780557020784674453498245029254802715531780860229491930914000100248336653824949026632917944899570562594848455000439817842552278754740241891941094720508961832831574140746715769811983575062060384455723125347661730603321702027002978097970383514401664035508605806150525249189128142112043112083058389849638259913065845902962995000150362871433303063854607816791055915090200573957373413504461336175817370932522981842885973681365964231978305269200528188696182607083380900523256986224776508828701753285403696116943732637452590303073909409742763398778999438313749721702872653434742479964442835141795803407788328006889640502094935428877159688760075416171462097663665966738699756386484303561447850905507379474847651160539934784606944819956803750726756855687110931184943337654193189248075214431613139514768758216705946872593609173417298758412318313147551223002780711496956255992108431044069125310802227181036560693911117084070562231572262085949607411923777788535755033003053711081681221499227598150843980321786946637886519483048543482668960594840084879626270625082974855324907542492303868067430535190037627721881236348892119463487485973374816030377275515597200141448340076771020694885146855528935931053941626580271376478019936489951036302672830251739683940232808442647989949822955800102269791290168637756130646472599533241694503177506102243052725816471904477218488025566723505248376099875591598683068668299151104592161168863256003357433742395036325665610160773906764781634480405036193689973390905350647697304609081216468507175521782955491788237293336540339756371314933327927375775880078940197889471982372095728906039979125923300645179765496706676667602712867771708863799085418185718539413512465890568046988855852815568925212794730536737410310988095777372958808545821497739328890758043763249563670606799711262977258472201570027391754168549058230732391314505261980652542609802080304577332131748301468379766241989873887849267323843527548123061494297946879039079695700897635501258147065066632552546811837848059386461073664821531803755850062847293456581598667162040940280589160655060741866979103130562588084553762881016530458911114280415280955454658627209086819667757955861829372972330939515137182467873213819879945500889187668462441236581504568224502270979794631121520189574564823434324489512770766420433919399806435664837852036207899082572683234094228037754834407433907268233634458150456347148077773023089138597106743650800287082051689249267542768357462301837315489212431803895086022815762406454903914454352613093144336906311617952044113104887297023938702604442701203817865288623186798134138857494563542862314075860804918920310886240293865105513112295346595231003084127102287580642405940489416840567422769376760245638264762597330942193012034512750205632359622505754733195644687517057465464727248329387120918346192720207296841173910087262180787169177978439488302014440745826042039914153271460089833053877394201072204537182324060898830192824027952443423743863154179092597722007070045991960284479184129066888679280984989133276861546953417623332566800044208853160222656129514244421027641610314122402631820523051326889908897554297490771139891294890671511757926990729821338328652905025266762468684613266720638048678784237608957992396004971427233753876188181820973347225350253481408985626383773402756344682443398266132467165816533854744365794631484864581647523309222091563737443474112841095577896366446947196546893330592490368816917308572144830405852516142828191722791899483704703222194433752693727524980313475135965029413619118878450201214559212544822247926221363822125748803749109788814750243077068319441265089371892787034957928464407967453427155837737566234985031407722040992793072195997722983136607313168872114334456727959017893830511507385596506599221763239080899033605015535944347293115169048004267310954176124876138418126843172772883709742932026620542861783755543000727820644947705339501386700012887101674005292901964708340304158323713647538542817905476428651518269114883865556798885087090936123279749394700341235827602412669806201095984450786590431040726493901751765712792423239122476300057825572800481091222277755465157926884894694066294143298633637567030852378370633843027695345950101697317368889724102167071297527163315394098833109611426675338768977754533651702637375272593553513966413173566375688524424046221635589443721732193905305219892399459563607528272000802365398515523124032101469121610390986779819257840036031986567913883333595538917313432988007838555824680535496980770856758593197953451747946707338601907286887821085222226206607712685980068484656363616933797991858130472448208383125869144120979019446208576752406086536265328431359634454978695428884538259209781420477667224410697259254125558682018003492137061010593205212712675677993003442991197296850285994927900171925473147478869956841415208226675047131983050161804735505490595939182294658915842831766982738887331707975745763410643136025873343159893878150394917827437645156247251036187405570706272510482495472636795639628754024128224972245721975968010248253298982035076330351762156474533708061713457736595890107725214637418953428647544371869943958769201317642040947233444878478286339969269130092090855522997837687542169230615606409705484696297909730213175376922359039414892832167879258043760992018079714471794055199843599271703319351128358430396472505119058915725788039644805640174170347171623870679294224539911458305617249866562041735762307238418920663515128805032613777134977393467001948448378648306892418357354430800909576443711449846510981827323117903692571879417864733116837813001299298495625503918210237480334967756902787880422725986445716228691312858714141833039064245334809889028670125771120805164556937044245580142362333769255803495649374691275980401935442088122374460798177948156600130553285225734669363232090588683754064984222899445868227868257976433902495152609367775220068706071029289667043753836982463697960408815325604184978953472724402795153951874284733929622403127521774579026880375408496489395084106359361809386808914950159057378475197221353667757574083329048520065910545954091433904525051840234653597364568077279999813017534691643234878182957542748643302216357051342900904194381710395344725361149028754733607758775179815788339214853070355469568137746306324316406646201019981994930626529347854559277785709138269609824676540847127091789816481437090988023599771549670144562562218414509407918467606849953150763337823693362050103324351599773168260561905147547446913326973893508087147879529188354362023273758735195291638852055082273300417191342312202473540625949830294514667942427681021913293199834553353102045769590812439787451489540392275602640081714882178368917785945094623049111360009872884242966372031056628879169899453980352667024995489843579990618674828671370802061833574747913635008599632335950995161637929004791231723991671520908825849037855851903944579120983606087929940433489959017231524723941359517762173123578306248517949373900181601504695672627492834042813474169015547444378545677664792525187046970473770642925915808152791768470537557948541428140792833473146663333431503919832357903554196572902377916535414318992227483482057032150878070261374936814388637256930342569059096576332995001308004937465028308457698694909429255235790131226378924753586556324743065737259492098246937905118029844974778701830085575778902432780352099963629369301425972498544419305204815031611027473401060276868063901257118103397336829345484878236421810436988134802584698294643979587642093100101321531568704500405246097901726736880147980153967498015147172136359511771494131337074282115830861282677563632179350288315762802224359515847237908781736002373107394524808659348350595012888547163891309134791746310366829219638749576023985921882864061237423821537270053482357636093710487554526848558452582961299821908795406373681759790658923040512262471989921328057914474019601441008453110073144023199375125723159904383113949169689798272376372355915476482320213983480850806940262073936980786529782633036631354179314098686026401569308871814677137452727341504588001145694284061012938010252584991481839633301696466174163267667036966567168699129633745218854581232384098192474446117351969257977789565148715557298828767265780284692852156742695128818024901072772086477268621388902057344055405974122627825444852792434031511572761293912188717239695896442374758257047893683678418053622697168220299271963881295102202675992638181875799326434437437421612174229989778958868448211904190615831298717849540529639463411715054125014523611825331242962650633259858069644281392020677084354876661721084801978305092320633488670207672105231594371273661270070461337063152047602655042939705445730847280764620429845769744712573887462184217766883754925072252396342031317593296086227392138140624220510751757700608802392563181593248390344523085622526196901356436156628212355219387354298624670237392984558893295300986789959035192154414906926509398936866786393326377948331023842916469618516793154013559269551736964515013780291895074926083663652685011929429514139996500715051700371281619662712916771892582434344892575209427015969371046984300518914989270236482296438960742191046568805474685238020243419500967387035948724490363770539026362514472267732544346555056793421391417689494112990963987390393001542562409779403776063379246903406935447279523900743179662325382823393695925955518652825764508448398638820132115532275599374184171833658101897132147663525880951943608500294944821542136211751474877639727516314351083876231246242533483284659106830021514465867052980921553348745113584751871214983199734754034353127689935672901748682710711066507653781848764842906654878368190940204020621918439409760505791981358454166216115344933858070912414011609355219013112320832443514895528282233663425609229734325128457730213803501914925062371257334985256348875592009331304136310196522679012295202839338425772522926855703059978822505249534301895618888261216194745850554798977440460616776781540573781868610026094083526888361596562325676367924459562607414491973752103916061035996538726733094425816398944305348996012801555147422263826190851000322193365477207543541343742981951431277116206622768277570224210744644786901106350178248109890305063704672239758563215365250952783588555641408634330982367296680498349977802383937387179664717499440204819428542683236841504198414340638042049408144331170590634550078482709624423206809438595266760889487678899426204230101165444397190423788959320994594008552155097311832399855496690363363129863714744139897937241721876664453560773595698183917066361683930434582217841894777910668262635077475000856957066118521318236412198941008732206834225064135071432960140507043644225210286502122708011325459213993374621437313912252570274240991307205555511591513465493605206913046765119759617701507116256009770877181089493585475402348327039604292863973355961484914427045801678864163316242379617396314876301432543036304317504009839084992124972355560194162603613243171530804880882810257076974806151327759023481449606964983582535315240301868463748597406586256002053748916325230236356371122239658584525758705649254505175567731444062222205920672083958689280354325275548564563694849696830298628788889344214656859167651285002788841407331251773456166958411932668216571541201953077531533795271766742759160967225997540302392010192530127067497756696348497119282537102874874813041922580125701942592370842655863967734734599954268243938407567879887079103611817316037024121389459781940764466469653764448992654621921392983606890675957198197761018005154831961338436005555482758553529303547692802399801772877720695093461133322668912865238646692103591953718845241857053035035117377110271580185519359610783362179997283115178050682590203609412202106019069909816657785579716112746419136210683939778422302982027359056170100160025522920796431577161509219885118111055193621690197081695867060498629376589623375176146072277571010018011852883565819807271575293968772828248676299504306264803656536554796785502814243557004031378117945672019588200179300397375282948560219682943370332627634051143983278735326270584223952341342989514471958839761413226582624246133181656377617960890542221234217292778336244303470347062626701946918286302903426074650804087721167105377522116301969545273895270454421373365591451547034772489127837392916279372263243272384908052949586447921539104424941658357232836748175605333404413752904082180688018207584282740784271571164718263252035910141578459628062402638595593450960493926622205507973234080216212079343191450788857038596692251538301662468698032068941263711599890579119471237054746175020427114394724897716169691022403834889583657494369931729260742328827462001075877973635963328168351881748019046690268066866443925069825930840319766742112869048986900944185924169480792351760297023974918802672997679668599805941590746920383241628993958484327558231806688833210003664572364113482598154432443551214338095718760651823222625295288931682011972425441477452035590565302059577329000757058370311457615786442996179888998521300932171673222769616971141166643900685231931533382989568725579065772275358925714931041433175324677327910675913929912430552892373666443500799235537065317572713497073859901047132537629703108530130407045784989378754785167015661177744022633652090964579816146419989861510920252280935394970642234428597217694631696883536793159000664083469438868182179021474601519119796996490593194985829344955457331246996415295036440740420991168441181245646845885085465792872331681199775183180425263204030135773270557298719290688206505147587975533383534912419346080640055980878865654665238752522986378543648174385276972056384771982642077710904889969264757014431891462022030434214313068590637808891112137108538577595128674509397265426722803764336680900502033549710143341661735688737502439135026557468002815215137091351794686257666939201696374175258196803207015756055086949382457317238168229633523978295781388705408085916008496713136500525138448653094108707428642026084969491938740275927376084332418503559167594169568769623934258577997612817564112512159401036723066455471051085382838901643414796653283109523504319745394224217523851409528841302537366118966104198724819862657722248496242531196031885783542616078606377803957347086042337310620076234191707188186906390642025572360361574242184736330717646829750554039634438506816726522368615208781265862191566168690281097690444842772940553223969160203926830033487885214511210890775163028967537894681142662175875506771290747539186123106327919770241975014311415234157244761796774330020569961075214428753323887752430283260355568336783989399930344605114719655976529936919029044173067355782272811853659344548083063234895041801223704291646007300682072517823704965181967615018077964452379786228353832755929688221876033035956538241772495760187741292022232157260347124674339440465042207200510670776570273008643353910879497627011665544111813132695817722470964962396966837100379617712655736441077493342808147161245330699633787858167450502666936764094287620356659631206889703376524937789628057334045893429239597329451445861746421946816630685520612100563094482507674994206710905357358231558922464736191266050968985708520583211415728911574008016954548625055777691985540167778229727679069661706681795293696299105138732917388156064405340827760129407923861121240239397730500994281991719965439055856035807492083389772125028270501811380671186812713258606013512706179016340607538927337877382263819505930643374706656436523696650039951227221896794704568935225624782533403316838824405305783320922213024518298823575719763283760407756269936711754027398715169501246812991088739587783954346503745209715605675461535181070053432138266754338283448345807715238294329591393289363811216739064134942375652651000405397016551562083396656322199363258959309466362206783408417284508486863445818837183464030777241550373503578393545377839946378812349939888115419366488776744966246124760881115291139849533072986431011794146134842847253231906042228403233238501446789317977043381238586655238645168160074394347195721753133779955906545568385022755557511168533493119367502640481002077322908661076367469373354403524374066953925952797710170166098594055121691646732781926424260963581053795720270777951440912655085398340825612383463550337374995613082005106115614664513247018377570662870122514599691701547608793523336874126460320385702864684951659379205245150882669974677365789901319157812642235816427997087793975282186019868584559203442612599571784052214951051935943168693420451772532595943896603685864145327154662865284641658278364488589696564940379985536154611765854549683463728051014014623143247217923299496815863224295788828009217808824809049074648689188545461732394947351575924060031070572093526027736355706990002829064113450353526804353334560455999307231940837746608329239727162483962452643556693630638717287620340427729923702965691531730041522981607471731885179540365292094309858316926680087446267197321127005589401853876814988147970211520773482274021395251148677894132845394377258731183125790625299453407527473038495629889723362711065507251373731437748129071738672583158477124404265512193721588227797948833512592564883977014735304911413030288670794299126174245256868887829148506552924856015360565452684722179932187749005052010850331114607736406613344026786211203466073911269791314071722757455621822428239266094097074573877746422934723586630226913550221497009707065885037062339135393462533933818356265237242472546117363203355319738767892072656463627648432903785912114032833351859567061198716670763261349873186538414573071178585592955549865357606627406102289435520749561498344283633603421548014558200016568204916867854592075026702754927076696714327319084899157958939400808131711972211252680327020341820059761492538749375720388192372250629516435664533373651245418484692280365201270910646050678537546351852559412089876558244435533928436717117582461784427224198973649422488197350281942128519043340460092871130516966766006279537744530130945147862130288942981751059375590747741596945728551764978147954648925670601468898918536970371814567721425572570077281441182782036497436328403267031213610274012052671417049319013753956140739972403508397040981003599524793249397754566483156182918868281995855090033568332134658405302971104380354930625539698659340823637594507636163716965748592701773606685945458460065938857136812347020714689656282364103404452849910145738771879145423536021954694124475071892655057718710642817851851624324259586688903022183139819981777396749308415523554219255282708242964828109300073435164324259382294225915202063334338320370423087846837045178489691040377811273315350327663143016628112161479191070438905187295687790545169656169075732624664730821591377481207060427001113304068536598393800876565432190618281342062489135965950163619503279087132892504542256705636625496439692059369064706999679800752821137865779511378267636862618625586095383997148240950869635698474330065961619081570798914686875649907535989798214598900346182833642565564549058097757336255529569903061591540604106178451631789732186616042409375757651616556737654381861558504510176208109348996176573238152751153383363966249202068356786005735204114241429409212640719783395578536887408466597376671936988639855058783176276625346484493859029220367638152008116073021036056106763706934573153742034336827212445621785156827280165509661096376014202989438937030468938525497353737193503529051632250057385738621229534468170665093192164178890322504717331696133435992210046205906158125503120238507590299471823167684818607281732832998247552862657048768318061341083308825115659776935574131723661341775538150040441270430870221655552804417089061056615179627646880679911186196734214299721758308250231182087923335154912906119737614197565752773956896184682863054278634337260611580628763925446999424744139438165197824419811893512645361475734913536305534773396070632023279867557910257994614056385146171900192006711633278246049452167723462141230495021179197464459881760124591127504294473519009624446425847084112359567016320680124624718976973977470778657599570950997812027055168465732407121262391206678889804996754572000324840302239757047081761505044338808510521132798931649820845472895755677232547416563115902615739478553310935121689519492467333207351747156324936156725943428671941299414795006895969284599567679692587538759778808479288248222867607641255706911859509426427352087860734580660494004934428475954954190682431273051263086797239683145251660725040635841139250227989462255888784593974501625883140300421926617644129390916565831487116408308046359662747487484440733634409240078969488817053291569262155103505901955734976726410462094494237364306281898411715972389935484286928884269371067485248344204424700715068404522789962035434315228505182565969979380045034908807622647650601358641026611622147889940839369159320339163957631209766221465670097553155421335874725959962269948219288832407001455989798140635469983530793184873574458025839556626793581514829631233707341776448740376723419889990823475436297393831139013457174819170105585200348424299313574577453350712622311934898706923950873672181100100235216498651966639327438377177383547875420251386289117184680172219547095328642181883502564430761764797558518456997107458481327664728915222992415417567512321294347354132601835371482296615866582198519914110041246424617436973089022319866695686926277788252577741450446067557815164466216248969149658828329326006693690609362588510744568329272602020697533050531331981079627254869295063464559880219808683579752647191125643554575032288909334069218410474311442763861348259617356105630480577967252499926692419081722535510059595077773245449902360660263489278980755776419997760548115324709804060766799494282333465946928591661629349462339694403156297820759710614447147786578462687328512342573233655340046477141226740691381377241659979931658688062818154014562679482152637655205456042997737134316652133355022225173979114716313270813002092389322424608479405372527611880025383298768311729412632220928761876702282507645449355088467402026590103948233705115064435281382609708829110251769458314263178744601637596073871243518064530200491301880128780512306595271191854591810065251884764665775521581761511786129342840887479528832981745287191964046866406451038656229054917510997681353623156135566710716197655254934840812493600145468665338486271183849549481145384783955377263827772346963697149022797590371094232401893928985868595845814962963881560247928040472009736477938884547321188473264884641836817707124841670238848091507440249010214695190369365709214935932449989686752292940908122000058824193239870532977169887563708446030431455090879723093994118252342410393559868127735209694273682251568851082179596898976220935260399201449639258667559389460921691341223051824665720072689989229399942950840280552669247633722794379895900880717398969737006280057525810372850199010519761386089124650079686274434646698490837848401292939400105414798216053163479232979234227405947471293587913882930407304074530652423093012511580285038317109101812990823885058282666846567402376686556792319057053032716271825893928910161061515536783366058168903788184109494587572524573679085313028720765486867745707556679442030817847747189423040549927603924805375443097692664806695021747092578528018941724451371285967855080269945440703504103198133826634063653084831582423511560213815948063408734741871431101817463934331492065761678258822039741125643678676684327314429330234051176918434869261818585873127506884948281353105272336365803668323150161935702592216729886689480304386568047046125177138794554387824178667559483255433938013564795015139341418355592756862372759085104147726362824343769970426859256149928903455742824141186262792679101103204159493816846391326292489808355250514587220774680376342951142763505620136833704302897374598723620337360619687374255703682846755986515065392643698706662585000846833342817460252769403765842198569267683306117296997314149920846434094923880562962845948823007472363673639081587255535481839083695556286921065035824107139262552776707020463956266858734030627519145022114751679393490384605512985706175022004502274074376657067273285542641112257096770684716314227892514112693048912421207299166123727864356047892957498116283970675380778316921043737302553226241504840198269106467668881193326427191892801104109218730095376565951986559455793928702997772042275062463119840328875441314274581795120448674082297436409582037107413634520380669554307880684557640241733370670224347862300175027913550063581759320659886942507026928624242622547022280037982118911489141258413044334393867295103334535118839096965458012257183507895639773058045901237485198168691263854515825711837471768919245521336280380062244954721821471890993115613303094611297453225192136994597842803971556335171393407533402555691980915072137529419733604784147582004238853164363949575561839893986175245642173039711827433756352569218861506657020322455592525283323946880629599960238811175006986027108831618394961705707650520186747011369433091612483297688592391709154919978682378261472902885812497432295297096253499045732191901339572353934503209472276491891132229778284231094410988162022995989396209804319479144540512183149997830884455980900136355674037089347843965673754817352272739985357445877585392201760835130296843342933774322639595534151853163676570454057326395553054938008456945190967663897036804250605523790039413922555846564462419856182221404753709324315408900848497573688932033337699245917088657021963525905090248396205819698831506708437530994997050699733062329202267529700747346067360617509678921957017185899708005695695944458995288885749239852594508596713704080201064482990236883194912448502571354659320541533893748364082694281035372798314873004397917309734488124840153342549769679546705484333140312057152969849364470848790186083112593696557925076902230537253818927391207171473913156611635398258408563946760219012856979098278512894043391727601065999525201161261169629730653966730271154562038775624360642232996449921079470376966603501581480486493410050596920465086373915316064756763326985086049815156633215881020306588856618664583631958956564062440999513377650296047242181622466322624572511302939811281761455449102788190104029789155962471443880855992824660977361361705186410111061739623221556445917367357885118012828231851450836116710600209180216120276297596437307817855201996510890713648983554402851762650576601856913878954201369271609088535703386184931623262944011163493516514345419032363255729637809188832387479149118505550581568625741968694245613679334804560797047803011973723353772622878228244946591933320200327945013562057940598879976479235868753870287832174954954558917436144142826540193291283349720237056509156022876656585735906772792529229884390323733894718565543664039021849907729467686868586497267367497785139954986764457272345273624873428311564922115275276286303088972542964297843370475652819193688770822449572300506322290069065791872956221650745152156287053424573211621271733489884359255054603157010274549369657805750369393653315167808309575093707378941619463687986222792695788305094616452633851915467524884952810874684938316366189609198508033982460704016716547347760250500459459598646491816379215623891813056197769156681285648127417295285962200720916886963955308802857819507713008449003569433679885323323953836412537305058014627239616527383648608640167864244121591816075679682829592553547064310767395492434583222856255739495557497267124814673076968706983054717090014692947212357920204948828927407258976077755578727639133573201091593087149369853728106829174489596546205608283696918181962018257886589517653337684114381481318776290547227575603532993949661877452873250980572741245211799828472521710023027354793947341026292927422507826695396457311089082864493747386824238167083530516066608454358090905816501410676797937543082836954235667786694601116270202083171114343270158839644002742008425400799118827597559464118452853310467121104888778552078674622619129821498219449682211855648471734213461686401578221960261497360462254224956091919667034083816132528013822215146157639990700353370443474000715615200491883171485575577838998874588140622727051970586537566155294006229136503839785761875062968638947924816125872749523722587956619427327635596046164774538571433733879403404643862606554361723205294419423498933012140848164557140697189186786596492359626392490114686860642782784458989419571167729943523391359004661238873982001266595137512922091171501141385848010325803505490895270609206703293046342863947138642587256430837147407120036658922228769706812061283920353475850847196673259853818782910527768892355992114050802510008559762722515671922333638539204110348531941742078865458431964688456916848008016612761873946786077339099408644268151231362788104849675941621194570428088721755280911684695088269097990221780454821902327089860841218787979897882715086796539140178396664566243722741431296322723901084572794915478396426691642600721905865531370430228963553533939990394973371072355845178620627329022274079291219216554485884579108675365900693559013526702315535462069325228877184507488758325169206728117664689656503904774879026723605098924306203264657808221478541370888937238988342302378341416731815810362820206150726620020050748727288222266089694535064926634490272456582775907018260068292910925546356059486814790383878161701208534696303352371270776160744456440906687569519960032251270958432368975537457187447170430602738729300728414940553057069134941685870311732447648672420918255265990697045874024459607755458379442218824934031562636752801601353553832099360443778445698390903564043409814776195524383789013113522608279363706533455951107236529662766449213940099725749009391576957390329723308713851073907514862581094334132143242160672164147780735734683116298443986880656181815261262156788315392091892295353614109708486669591328695891801168980282742065742565020763518659604733984343719886169760197365870573489843308734238879512214364061333192441398952770154941386680414894341619877003272401858266466114061884868821078242193976181800462113668468430361266955926368952034484915097764774399880735233217067504425758209725568041442643669876596925722358073195649797122123635165840659340816911782149193876650516958598109054675514115231683495841957158724450023072358053176974326126101400926207389699163007167510308164635223121736496203923009254471405284611586368125567507717688821858933906504795577545511116601803072593816477938972032548503729950698951552227042726566561813077530390250867253801427225167671303474172304351021670840262703775278425886437050318908353002707888922758543719819248045447988163794126604504701454881390185069015685480392608091998238523621473359148742193935813117512235966091667415302637407206691532461667514415093450992775935636241567659977808271342327543617901515906844214781437589787950888803777075612036229602419964977036702621500068331613790302703026715317194573332209741242109402376853318065201119844525913325538449269619351889485509222290984023717420579126866817287387685985171480182387673468052437250729201545598757744818224519764781158406462617859888709043113046823858001618513840837555885106038492915980018974261378328622952563394448758224925256655257685450689337951150527048826466179026276109806393964025674605106585986179949206510905320260180131630389012422054068794259063963160433844851206668507574416474840958151561800943049997074939534174419154555115986303577148442638234848764017178161108329227545786788208716533933729686946278086348350654643702084695717057177803216147377124221220348110012408994930362685502245422427967997527635112997450601447517265520697156350307782744788049276579518541295911893128659505192731034158247511453008156000196537493076521943735472892920448874231005717298063618163471837469278313131884874989990289622450941380278864243135575567643201965374986157081933111784078116160280103946914791538988988444204630407148869834010539241862795465503059173100486732208200971594150989304829322452480496562302864663232370660552030659880698823022069644588666485283423661061322804979436557140492313429828822278592902391036533085593808594923302358876512823146793197497991816430771573846520148725216917141101982489249240600730514878409511143687400180064342859237160314226317840906394126198801901426846213317285680493855735729317323418034462858410380405685463178594767032388141226325506322903716608689538462685714917312382124394810077165364316054015311998073066996133618133254010112394811050263920049522699861022950132983859781205044069002380896342201283136197042522462334170974546568020107578665284026536354504156265565663859544773533207273290489619612128427516848948977308069109783977015591152303250303365090754169513398510817591702159550576234549580722069882728743124829229754123135496808246595866066379647600072869543019171613833549072991534435770226760266318252244183179287089849936676249900501833539093300569688303791575569724072134234137213225492221844335716276485245452023842539736749788397620983617440990997994607709600574508479837991079706422257097476564512206913154578430899133840613157186872967845652323376847721946514618497455381874468797680971304069352391767872559845455021437848288392142393429191860477101709068197123631360225400167390051073292470222139504901698593933879282209282978458030968919001214309496091602417502785088942212509885806920896580411119376878736262397833848337800397754451385614938297283328991041685319778019828757117127108202684858900796323907163198322104934065665992850903297868474471190479435075296383530034577624041818380106040112015749043652863522799591663946379181665488784513520081177242454320904307723793818497950046876140133895836161605683829095436457111872456929964198134369969551422908306439682939628871742509745172990220763726492086796808884919123618565779850109438110345449457785653427880379727048640726958520367008982225726834931737879276639516347644957929850689332692400193329556279406731197353130380540838445963910351347545482519866471857333018357217572278978738900727934927869163234415458787210953375301949967615454455802110035559772395725517372178309242132009365882755191603201682835838010050358280110699904637696977247860399681506738004458900791047335120302759187360815812182692794269495092482438511772684063099888810234940775403535061526093451905666835906523738887217087383569152708921349819500363752696368194354195893284071015452893029640161138850423707625085701021801382315322252526671192184096585217821910999499365542847683141193846963052132139338525562738979131216078605170001188168120061701495613410162536964767654819213227010661911127105682136866618437118609609863794849524276271152416330431561534408770653200531448165010765581714806911640210888619553571248577763058506595666385955041105654950544245041928023772724338954660612026268202390979681110664459069255759104040464358751815644954740921195305078237723175418149462784825724142933126114461835152273621106882382587709785470095728600205192308753600735416791476578815315983779518725623289050747971032464076511900510822769860163966920844805539508168664086575769599638198970850655858795494046782692602802016937678962492758594736773085336794428468955882580263435920222156008979539954395673274256691812059675648549748383518279321116732157718576399540915283525474491160032009457122371409732003252083211124746357040914207147445013128057457436609477732394937163523529698005145768170767784054341735321368992784403859265279648574153480012701654056797472364999300815540825390701677216777389342136789612592126305265064535417241949639914813663701310857364265300072419155655453410172161709090774820942860259356956186739122022488294648196521342717038999730795263442306034740870090940411284493246063378959847767810416221221211752957352856952060016191797835832063287857662334132791231053287616437594995004904344480416565407127912829262628971535656169935052058953851423157668442302173898820197365882576605566191799801301808137581317624124773202677260938839435458760652862343646223638922719147167411998606205307711358410423135302014236911781095365771552061161473358271245284760557043062055400499410020846330640064641569321844044613553456261544717918404682230837410651826210751380122489953711835283501259167215549427297125386634843139414074938894061057903707036698788869956940138582954743224440246715567592608758247102118054992759573667196945512977002166271742056592136086107548212869463524236445762027740409990372705605573915759885844475699568113083663399752482453594600122368595471053127905823730594765125121709098452141853144979947564468550172597963917734731223032347011989408865598428856701440528614430680086617488267147109848509316511097321680382510407812745279254195909079702998768940050326400005870051230405987273215461813666854350751347452793836871346024592656317968044800115327311842374523854172077564210594462251378257897635627052822740296616795968619441781237377885544203854280707659019236532516623349237603502858814526635174928670761639450576568568653979339510090166972038057737593623174541234343366556844950290704202041347096914497318699720818406413012436941693757024894517959839696546662045025402710436354146194555530551449062983326188154081828948595046200820647800920833795206283453086527731462028675248741268278364790739808975850502179497333060826172813112195732744302965024711721631792615049741273989059015849987400981292684962763910603235821950008882092160175651437124323448056464475000361688781497018140112496375059098921248488181040996210151587710301043572050553586393422494658637151269949226878199483750111527389586423331642844801741297617544065257784945599856231661794522195195231360367970610869427990206763049458132224869582908695006636927415904876513378406345781554194578566697979927755058169272092383451511339817657926715480585397345399024155759602248379573222339023414805044582207976945821148271867360944361578876645670619082469686726595839013728060602517306732852967084779213792911412599046082645838938822537358612751561411177793568114518627345941152060820964327505921055327397528871224030601885745221466257615151963592593396069277342381706907663205814055449055193143201412654080093504084858536393006573364117726181374031068799990160367011184586629202327594854608552114985278516380794772393987808061916046329610482387419550100173109433401649082680206277556284685790674125057598226622374016804017150387328999076286311428326071503959780869468875290474582378176475511868591493766810262649016860211016138448416415329634620086427973305785666583794914220726249237913727717537641661849789221921875402599619184845094857536444979816220498837243762338901192766514692123108272846399247180557459604961551378530417469718347596395139974317697032058974163014979481853316450871914577582619351245020812708459175159695857296375997351426007665714751615175760522853062389560018715057086591917618519324215073754454232624082046701127629601406151594452686687484607154200706197644849393560665541125712480202751336885417122714809374851049288437315155551926665447272818083797602143638198732073339782538303786809676960927093546048360448668207265475194990240821983561513762976802908702528425820160285615134692411041460717917249475199102936516569010000898737352214189205256792361520020332148937175090506315659846702710183434027687349904764786762765486112500059712888194885590600329860247972905410774500435258249406423989204650050688685969264540247061356240321710246902545082128597515062591737972214758366853194724686208354127812890531607608999161737521772372695078372645829736727283088352145024356408313421580496906758539023843036618745217308710426612619009807230669054348944699373637592981147146671917668950937492817195638579602623730628704407444653612298444838541123899889414292315520030512658136651713947064094917052507270835010108836416717870600386574346028484908612631123291636292563323593260504496720795768060394788506118164107490103419630903794922798449798953202000583462154323087914853539478508325799295954379480093378197314851630067922349434917880754681115800385145635207426705687393849496002429357046449800648911861494246258917733568202920118015532306518796100960866423795160900856822969818330512987142011051814719846182973191851864677959217167812887081620791060831005327206264024149819385283673901605012745415405307787458244465694219560917588861606960850019527243734043129811531774876130435151127891000368028947449265159324915898820234253014215104647039241687084321742148712441285345807753181709476188429127248174424758118124852933409987037033805286115141056349324131170332303256661648411366652844071595869655693465935364910892867639049366904783351041323851173444274364865763685089826440301336443395811088111512976005272250075949564087211239457220885642304588067493542821394677370606829043374214106086140588439310780056494146422535376580711558222181330588679028247780519944234688804501706189668868029066678798902716042002148279827957894821335384364373249200629736976909803547203152237639841279786565404452475272174556291761440773735566905934445047423337145772816286451789839308342848588970299860321203882741484130959322251019085163646077799523178158441490694747266336147429281972900077474606382152758290602131252220196093608612355256037225219409988664137657406272198001032163823820461587229308729694854592799420135409148018314360406649085181945761141018425977616603851277695433421707067117995449563212941186701001706769295231349751854463096986013883120517205257990084221599096001272097845859072505441778955515790216678234424305312831892531171297815160262948594397738895052549414202106377069665498090386937949314881226638184431538032523341516384883925250850480332572030216325577539866067229713665323905916633339803878981785384385606532704864738182944252598826501489679632747675844009287964095088553214255224735837579764364204623848782622368628877879916329584360509466654710654680957512629088299989414105108857191405522719699587833062244131548089838972971497137778059693757415749874997647636828441415145084167056564727008228396102449291188842280307730213868898771985843673305643459584605905135849138027096894310011456225682925497737981390955487818463228031036325593761075855910033366517679979610245437645970633868165944636891388323701095802387449163515710960402661510092170664873531736028278817910138360288802406234297089169798302595343806500133982099766085871967631874301813715266906179716982829712411608968733973646857690387785939809489409791630909822727295875183548722255521879674325583885879620204025152458473394344226600637848433929497476786888374499237693963205558798121519334661936867264688898079888388898977712661595262462186969831097568999373963948787119969440254859466338121043775752290539485383805063278605269671455480575057068541916214524678443462161271536323205775428819821490131895609990141547728819329366799653169686697902585053833114646263657822714578633191624592908893399468590561425888489330857191032713337674716004068867872309001910965444405890973443344253320692395414263396368010491942757778326074997035004293417014354040765977609274812833019377709297299222303697986806705731613930248814571806829748859922321621094358539865996872142780923522473311278206036523757283411976295078442367873155016945322604818480317068859089026866345893741578791154983210502326376727116928924171554930400220091822216818545400789949853840291156356014686546358126097756154370170023398669708525199062509417563128503298489559824988080857511308090426258985701826702621733655520303754335030546065882868671394694663036272586303639119592529170303400401829771647568597442285304427637468416062544280110603189709396569405836047414091927142394391044333043369951132082430059367253318752356138313362675928694703915212561345042195534991862433652631508156816279380374872336014658867616476853638744536883783170388511886581074387223528548556160550799513172912993156546302692923701963901717986592398080131704258972919727512962810365344013236067338724658517287022862621666392934838520773518781120340927784509191901349030205182589992565164400922596340119746214940193249905371320276150999224492471416046531092182590973253578121319828286581936562200422354471467076489640872180334266718264756819957824738899597538595405649440843791564801268321634266113843910935718380703372568456273398416511622100664939075458712055096078681140278080365486860886369939844411960108166488315363357708499299300579646815086248216743191026894086178522347694685109596411195001353200154836932042210208751185643714065592122547773375781247733678921772428803732575947515671105463448400881985879030979714168969260164727556786581582172474255178066064912907147469633908792051804972917432376359652851001350716650669822052071615503553486981095653123989773698397912914296770491748669299185886089729267566017686862570812313863478241489104435021329712759363535815223605026323487234411920675152000361950118046864567869079798433320297741485211684766142454797385955643482931452982889671811346729787268119447430978346462762048667128487010594446747096402671161725800728978811683602778917044457674592835967409399419866309198324805138145760869827714953425743463038491893497610358271601278332235565703871555829473195791817588219378155004655671049138221999818556807535849573301030037329693341162897212461696124230603320846087143510738105840644473876815734002466954712625907023647500645510390006852585565518320289266748200634853682838302036421095433500278818944528440439559014225730871087902103686214240690902903251769906350471542175194665818628523456845974541324548634725003027798751361440499646433561018054278962538891795901786628239317570173939223750410740719282152865594813173367009261639383924688156178197319451490344522663008489450801584686344128790576108309988476545334341111353383662124335140591171085047684181371727560454833397430664021873000269286977703471715377559371282004291282310348135802910224128470991514083576442121952336890578664801224353739545903893499588246810914910027759138133443748943443287857654312155549081802513887340597904445457942807056392045856849701782148083483701130839187731958140556245359693901278638464578439177995598472072725414815528212295879015382186175824990555032296080457073144980526297184160804914627438510971197868244127208898942453332195526183269905907874989830074877957634459932454580639562598244708306119452605254629640913118823321779642215620459435745918478671418259641693207451795779841979005160173751515566021234477156339337522136074409023449298817156399291922944626630196861376318263237840733261289956525153253023523123847814673795225373203638252386111306349140555424283927084537181712002943986884874870841044794599959616089388492205663974246524655055505013896842248637536887231168008606804900833414981936369229782620290347330585873833825117495432371442208770243743833836036173171107309427737697115047791464100145327012140888767096156264953904025241716986027655822255821305761778795926521919460901730470658113928072162321986793558860922246652669330718723805715014940256392593990190299819261431808777027741474589390760579989801706760299682609527459344643294120684198377033426276805414469152497671662803253843765830327156022688624303951106875745638461204555333656569035032584382041522140034758030212769953332207806892588267000947107046676778793276010406234604856688780104831959636490989430203881643961222105652262802668237453160502016687348977928624110014914827198131391058867522900348181684548419087956442805762322392998973189338153337849806317511344612510302463896114614160320734054247146843721354399389239704841281943037800010738559130742498183307296229440075889876332187958570925922459276619899296642446213948153162943253677014150590981207988970200294147420268931762673391660105367355804636702799590054254816179048061307429169398323814912065614076284726764961535265060054886989262578132889701445902012656941600428194740772162762080441322609079851221299111740659099923984602417418293387547250635282864933095646894377594992970404359179106168649219576842517926239208297115192711326978840125498882378802835764303788690506500895835393940883132037183583932065432728947899972063972395865123198825751360816070806674933396770060424545500051304189553257523568976985130214083524244058638848858410567498918918241880164259525309585157584827466112644081819332896318748994971189779798466194933170595782264983573575793040536580236961794628124473310690235889791458608563934939660278978940128712859098773504265256410119687197441739749855195773178452686238134411567521352249455500703010877627295903125460026303651821035278754053457472192518197148322293599412844438753328070017722688275967928956229587254666843589936272228864045528265435303874034171958023158314260555832872284360868703104294794198673611590930746836079876480497725986774209722661596431097720809743966295005951821691928034271881331888655056620281197452196833643518389661099253545429996486751555643618197145585614594458756387096808978888776477159759060344005716027733175517020777544765405608150874888602836219553122698120777557680760011777191007895567357125719391810337946637122268482237707040502582720501950699010656359331281139291571392017876121370656105640974650410114323954962825842685652837976405270219385991101751829641402676470675089862400896678761898346751869728839699699360146892288087104359088447879028715458053274104814438514985548428240249853639271824597832704153513303927645439083660982533533622658500402652506962538633951644152744486154754466198009593896234877467092133061171382194043837221722655427113026892454589979133134000983904544368753664742654828494072964940357534781121728198440467644517962789858762166416373646161107468240959570914065648848723905436684119102024591043779086375883998630547289641848706010496300276548091362067723529541780710003924907653696138611010123249780445479101812418576172167742633865367047923803588730416864824354654608575047491123455388731548466646535446669391619255094777241282577327123100680542881398845316758448760413216546465327818264887684096578627932609634383485380332378632015569607522974986541869558446696518448709738749916691712361742948720150221014562750994439256952336062310259884570056112520844812720819040314224920201119458262398018760063266728141390428628705010628008775518899553444112996546356991822375079055761867148066049920537046560561368010039858617336421234102859648783461509201050618068878235825026046157262878918745465988737072978261847192611546901136306698889172214018812444759611318803051947716705520448734555488249845070651643690720609570822669344574782283415977129321930596829215931010374193919418321405956231526461041506963617120295271475766882929240784698287414840774188213608818502321151601266407434853672853243276580513389399157774562619252622655953583430842105077872155313808537800803373865783335843953255381625657771931839814181216487369344473047277164868486290369554494149891003186429210701290019388686877468106460599134655248903178394403786562331633733546303132211413562620545286821473077120409663641561107598468374514796656649926460203915108996997666733194969640103154207596380888608390596536325063196211213718242257873507212966504342420685589731585802057888900529541968595155964575714135297413884998266751693189396786789126315358061011845786035289474829715324866329071563095393814869781120865464366661787416823978411833233756014882080691042812595009033988878868485754001682345375313020763004269039685550038941091586677028812593153303475810249680501587617663472707901711494806959235459948490282800144040148078734556720012482178133663323810228360686411198228650655933074974606463870780475780700573918684365226426233032169026629450307124754120061683919461089718201409211929067517396981294941066236070542260901459755290427872066454154786039054910733850366885553023709455342874970062560129828934649780102486447329376802949641041406921542116334248498365883259697284413118059400436118553949062535323500008030966347041542764255536025098766729124876080133746672207364052789107004524295876199195813686244574180687435702169686087007874191604227545279273157370204047332610804448069593305628559177494422843846893700023942318032129627830562175805412347091937969570072600977905814632457962194014654399912568004386957425933051588144886465967089615898318391118162565007971147123810384774085984102516838418391879741913152937589613652510833824290924549468073248688800395428740540039049232800586512581244549510348266213370070233290771172204450155695943948814379830075944787796291919269297053226313617410995992759710906074457904505352501400915765903367526310308834496836504261199332724773554742231633664868045073643166579223915929490304228920113832859587502783278581183581054015699789718859631780571205392843915933516830301726771831292771890575193933744980316899145031312643400323161011117292173131390970896300721424200660153987114885129473260082054910645770096871550021010371280198146270703328629285759010096616695337164933960871220649349943856557715225399034774356611128924289456052436928196871887050731091536048151604309602550848653707105341210069300107018600408654811550315443797612921210342152311219333803703862114843387510719156831755094954406250497210233389780782955640907563802325891083940709724429109269489534924040640115616090678780616676953678384783846363226807634492181222048755728939429573646786839402519707085253833583616301772247590495147341933036603123817212196234012311410624882715673926972005848087164572148644834997447271001447559578779786200368815248182090388777045227859194063820519039777618637357950552526855732762562005596845559548994784982191980311532204510040853899570949822209171252798309483388357574252624460448125579721463820560793454318086846095273214055883147248789803252494254030069573183356176604000874332257939908227759471134471724535613152431243969746285435283464978872812238370584976810501625966304567436724760403317881437072164740832213507219299298082213010464142540222090066991788281947282057883702387153414344170009578237853234443422693490242537483037997901267028243951625475015727309687267521640448896319800143142486935627925497878083938933347382416657587401877733054502930515440947410963674396518111382442977098949175557222500744811645730768140815334874015815973781735308938985689172080129826009596202447405926145484641911486871391750272629980895543784875823716703503955805849244629123475596388329682539923677704176623944573671717647776229676203770942363375816322245355293990607907273056201326874951088912775489001409558558454693729479901021097647865714394268290134169082331929801808658365974690921387855825915811861944836381422393759090332024820155450737495278906351353360014455896414054636445189728811301049110414401914979039642136635207766644995763858085955258972490504117559213350303660505777803705535976146338696784524521072646040564716005571017392919331431045503932118308000057983755016981235704914359708562521568764821693910030401731478559417727537734539899416839551804562948113379048674037810288078359142495197393466490147331509991412983234923185042531166459018290697281537759126576849805103690100239452809769329960710022037176826555824157596116730598772750299815746681755443508534875062896473697265494831382154351622531354322728544718866085673983477208027130797923159774554747626237928214960631471921299576080273287639874847445168779030825699193164604145790378425360242945181248770489761476175653579717750567977962477790895595172968610993407102259067932281200511382041928086308113751804250316925063492064412657064864859346413551823610038109924599433093337911591057628807785979801819706090931804096728716792654052760072354401985593284201567163803705673850023266040062528909296367907864266544586520059726280848958139111106491422964213197240899837262398039189177956857994765763917567416282169329531940998962664874350440217524314377801324326496904735827186346868805597624221275925293597053208593203286340629679273265226176967397383857165691121698529180722449698399718136928178727645710106347696683590143659281344677890648734272660427630258789256432593444668561388233364691553376999853720584114509342911539966886819541224206571917883412464385652027325620972029488967325453633441566551634850877237114609684851954056399050170214678844728661120107121975114866853539599996056219736932824858578219029473606311300704016184764973240531569888651848597786409142206058191067597241843840095046473474745531153107626543297278363927214929522587257743056101035863211876735921065807552594574537281213269567464943104166659575511332612307043855022112943282967417460598010966755435687738683432963341157711312748175834178123516435507739563879674367759119076481973333131679980554840152836841251733638293370680875429956963410963604357161290789099349231803119642777438329555352995874720248536626415514385489141288630552670954633376636679329663921453611887516741886741285450257499527205246963250837904517955551071381318583119118159964095736321118918077255286150816532662788061369160897980948954625239609174081570941252667370776300952262374352178732064897151151938145570221631061724227973775009281331944414311764918337445965804143030420697060959731734358434243697122739233334731238084756294885563729148270017048098240879362960458013386538518116740900418747688775278899554139974813302862213939890307221253626432427541387894896517990001019350297486112483897868744383776301491562965056245915439466066741832866606375110096593787916588729353884746111432264725846540987450593932251288458667364247452876820493348444156347183684256572906560000778101243985751611991478116084535369025980739046347447270610603603664891968497805916377936433728331273460833214066604830264043353895899589502389060095528446074955084055717966901491877475233151545561498798921948888958767648797937538737533471087152632056973714672498030822875761118657911173582142840656975132452323905865178327492122436185326288880289606740310455623980001370532004558997107058560857083722529020079093837853146014216327115797865197123040798823396100185232030423769294380895624112533732208122187263422428874005393301021264517400334973664626107367000532178807252694409747249115237703848321622697159703160551373888398881879119983165205089475633955970688957107001993616624824745870065529224578179569970838152036253121575608652141345737947899058754517709413118037956091287282550846515126193101330479638564292723319218677922104947472644691421968791270143763167801143744184298723777212466247668563058320954225470172047673410857671515277966804180193084382468357010205916003720294243485704105394456194508202891334628401675747100129743056185958045035974130748941824268847063133058874654805173358633392856621533418685368468643050768329811798022067704442721649796055250892992994833159730157033119209152691200656996031637663322165208713970944008083852335998603587709999277157065016879564179939496147766921092947283693934557552210729760690061991580666606074846723092532677770905865771129631951648297963156422321586910468580426366400297107571297002606398451946159509640964317759907466309823676436239901649244708397633063087206717418570198827031831609185321389793224516110325802113544766067719474830252998136197493865696156753365605605406106893873070640724853320153509598663468134161180951068107151121433210762693988500147136895248889558576189801364294887456153412893729833010156791171278438238676453888723483585191692484732123612726442547480797024366554983472437654868178943394029387731339314632647267270864227047791813259007589966451279477868980262461202522092156786501727832521075091836226137093041558994146564722611558273467242993458571591633382670273141743396158972009757899270796507429949762180420100660266357790207590527498148391053172041106363801955948873945142299225848489451446564648735637806529537321084872386745901914551054667937636116582711788967619186398466342404519337740321512594928605041937572117556751531271123155040379042792369541761579263659725875936786202472700237212638624560815467361202968849893731618733366337782967557901683129380041640672612215384443709876368034786040190684520846347389159202379698506695138372318663518465121726135981828918776919219149838946553672050573987611848901806931685413183672824865236814974628310518814515094387985868267626412203413132192037208487237913895115912139917939951545013353122120857261079772442815097990086005911487865032002843145777181071152135932083165115545243036746163358931696506387004108705399803439150535055589443031289722351222352609341617542354831644604325040589723423501584838740815142764741952555375403735414602424947088772629562943724479434789659892071337506913279469567769188024717461913969443393150429599555564571117454805357442966157337488442386372238290137315364099935813891397148757156508035417631019390159378400924948835772555644860151343606802344195646851494723354614943209540398189855735382720054927056997863662109266572857601775812682879856984192261269522287859447096203543234790266885986913690997500477002714481100861543018117842093992521873377268013283417687159314209626562939878007867009923224087854299892090024326177780718291463445129090757978713765446305790363086233737194212016442168427484657890543035539721489167030909518807655002067494329096230868948084741647121087352882574282079531431806482883077726055761090868492092454569009059750220035656668420175433254686382663876600516728824657323208111165495803415607488480043428655138500676213038372673857196144929384377502495303540549287589879067617539115718154300538822292219011705124829077300416138227670319417694105675896558592974358624752069330261348141303081688758206371954317939880053086214564594689017287073253426925986701390125953823579362047418572549717918156037263349114337992946793723371079168908099077517532791482150404380066206873140801670204167984566380749577509435222911215930875649240757383496161039844124965536680686470076058402941955724870464432352222474135436347803295645255405732725312015413249933543099543309546367105350905496265176084894671982518417497418325826112798620985606964415089687493182866635426943790774635470215465187840808784424521880461389450719515858452614787737891008021885960600035659021373497400198767079941459018504522298395524158567804957374917629889507655094088193847636470603251738552155775839605689514858724572093069274021960527857776192852128010027323340113102913673272731540793181070950129673476685163061503849492117706849383768576797152040594469390916591370891056187421912726379169307853749846837670444623498925040636684715750209278455332900164799036035410412990667356516825865724643184500727848922824679741786823336302161735540208336746133041467618684116479465564748161942521606237944220415059885767862030406039903700161771874501433608844376648181116508474074242442131964417130321530717172006167265952202484679759805091975985782870095608717119775696668967010064648323519070499164840489044097611827228375700555598092654426102478052038786976187773597869797243780984772282666149469875466842081233854431439980954809996827496743575735446866282826685921452607363296361555519203115371060922498358674049347729285647610892542539278483596176674171912665166177321316748983429617546184182583426499252815176431611068458996203834459001068195532058030742258656421529437687016984255065649044685909421518416470049607130038526617186822328495372326100113708190808583213401582806620253935513855027526829421354734224303464673016447810329467403038315780812247463265048726773718531899983707666064074149924181535888515467265496209275170898057603524413229348981089168588647218313399951437152885689349204038159413738210929556622750783592798542565966581737784791801482041792331924507261856837179441288383337407797227013956645841711037706803846021096731358129912168694617326606420581264546342713302437668812613537117377422740925923024531893905902616189035899556139888287561178810015239152898438657332427790952153359259677534225990641355029879762307535677196354324414535381250875736981588999024187046269996560630301804544278585998875885695088875847921141068518655895075068616965182018123213579102873265542320616583943748127187239001934439524362566584644977957897574007927547331693802381496182066129412035794255236514058293593025767443414213612858003663901569431923884245424014705885369265720865116623437437354369253685444216488268859213641641291560716830988093302047126326342507436459752135915085569460470553529302209082669480252140376972004178397728696420671247047901061140362667658423936198535548428185609059029332955190764364367902658038300969543996746502187474881512787693317281784070251738756897602924499663210104047003588477978178774502509346887117281386954759723050748389079210010421295114206938449360939216273347088228257177409599807531478141387154479867085895102729220835577416219323646186621790196557010158678241124737178824442097758896806275846279996546469954100372928497936233877515197997649011257867179935163069282604179980286844628357898413773658480392821762152627595341355170405023387333161322190331598398306772185771164273646812840343805015311044086126144691192372408567460500636880265691298917179879663929629911076389378101602475963972019061077087601378986525443888839992583410403381199891888807717176996241166341446260319923147740382032651418758953399662293513529871193036565614149568155861262974507768801835835598671866674880943200742122562159875729595379767776678990656599219727809597426299326024839957238494702149990936726655614379621723040834841740232112488657486233599263750366942432391727107121563244004962231321210344162950288509968205537019644645339793108934397761696726542311634572266689418140974858609861364346726673845979682515547611751793580384361542754281534831954163309854765325344599912683672985677303026508286106636751847739713691907021581486333261682454970276905742525110361922150351942664398516734104871783714041703572127420454270948591521597104274296127895702093836358142575073029765408672556771316913401747944797885739859645369665665549209963853102766981801230042184148647759656399939008401110757457955975952630584828902078541068120751357419331510255345254660341604790084870119553344390027114738938751288015669551948311745699431108219034031102971090138960875028181334309154092281582639733657577194022455756443443367399514958357334931541876233948315440809824909420656680064287438625152599114458134372725097457094686411390235443512497938522374906577585889730244971640021706901160032944207813545879045599243265813751906945389308071617897913321366790053566452562463543898650922773902951808762752363643176218528001805870942222885445419763697648975416098122070377305913434993967814637707873895993220748632755816571489260837050803050823144115776878674741758655285982296094291429473165196817196539705884402196251692230514449115443639840250009110899767264176006857098656748975412800398984531156347070240852272320964186300998160489878999524258852842796595077236993166426929401703215094731013390269258875489543034585990717960865539392488096829391056948314597828692256653228406182452133936225423179964475209677648405538277383741764086737842859767149131050774856469321531641057898760579909813254146681994207694092263712122944766351463545076976282499868420056816964511084539531887004158940556850949356125904487740426967327568825201158965822175257541514911999351836315397231044778508312010581005178543020581273135482516375417355548632564370896854162911886779572196732683187028031721911540776642030914426586081689100495757906135127125466163092237269150981643609993898214732818100900214167704012138647017187843324825962423556104460693730171330262610528458448540204268049808186824630265326506821472675358942503900377039194428334001889496324111082852834310559891443338185300969431477781810411869574264559734930614588894269592419784714129585274927477066853503693196035328018971726918744957915974168174807377047431025018927688093257736952254526461837318257315642550416716210516435787340461909034283634926863630971412788482859221770567498880084156420693830490547533506949391576131110757760301305106295287014947760025905840635526456360692280331433859027514903229178255401652281810809901936243970853202481767059419759905746971871677835282476574413020306286441344117470410009760552196348281527873493341456527073521134632042523148831836784534091889542734825351040917144605955117096594023618669450867393388207288477167830106548890051362965408296495746537821220091856369120818683718671541721407246373068102174790989871239933464583638275045654084457948184604071245346468636051274832938231780255547929752149951342342390071683942533968237731185292444433637070522661033143413620543241623345621171348252079044089364465018722185519132736443586516577259525037869430439451847092628136991672360701530151272088995688295029898284981440011652256946153278999144928982550920876981109499118631710799400431669149607832057238567645286718607696826520210915534857846895254368018733058570099460548008016865688074229477862256464813829320760883808520370922876614311298983271838454041121396865706818042726074237511892231140380562597196785650952447693091299830072720293901892105657797495924653361061853697490764677528692429381349060829460950620142386879212317546028710800033193097276618697967121266447993845525168905214810027246710751443110339605934362173493174159682915280053843280276457999550266818057569799157923667806791360472357604949264219901941674388540785182093442683602332446180396387815703785118975326224490641180027665342221107461658142108694172902507268341238214689000137939907945740093918288105965984165602398088846061932239608283446634219443765229603271918920780342612470415174393738608031203362746323919178339669785134748571435816929013999619339203160273249560164974632636734494977403144946641049543972469927331229525966846383460085623944716074680076744408138872308031911468365710153564347500147934378532734060492343649222716008770195614885456951696828980367771573187564350675895699453647818631578354282199806157634824877089373276981556913226655597248233612743184541785504045014264349817644252266268964056485529325958134106500063419422405498288740368139875354047240768112473198258606908596952798113505740741648565161835201412328228624576238507986845936928735195518339952303869816773578632312661883792817766373824368502023014911468836770034422848921197715069455501794118473907179071578755357447146746461059460112795160298580152738183692101185783805342937108331128632025858656274602386189745066024406236775460033139503448057506675672178594362796358993686892591815736649564760488068147671859898520047407330379075318003191531328965869183740267644900630515939082837991534649104410647413733571701004593626852809813604627740358632953213158817441197684686361001979751185078465097202299480806128195806754018063753503310564751846247378802073540599974517397592320786185844702127155239711734506231369400688557761310857062381059880909393699867745496759893851013035684600471031442718070198753206956940975795175506289828465878347604333730124067721646513682602221784666108081237862782903280268543849219971067720149996807948911949474953471383086199016772396653230135611067270516093119195928869806095586956169385820959897829859343655020173715098343072422188825869171226595815321389910071298888001135693499174652057196246822917736349226734262802556195202804166708727092347821547809249055532273732628894924072956960281775791567357746329259383935337893482562382443302704196352869039349535482932738779151284412533041904892122645773815785541453962579294956081598631471320392657867087376028887073186616634516655776495424593351479594919802583339769048705724483562568040022400385032404617855541295053422300050620439720035243895416702795738410790408896275763132797549762210136945495339664348464765409010025808049321377831707583025038732506691922385204833403779275093942922054810088489895970151262590261131220481542812750980997227518792677811633768524466744305470059072511980189957833544353668545546157248983966691741444891231593669171329014120178511243583744621907013756541989812543229995700181586638542557145107273373427963584031867898865116743587722225500093262359131668699701876009336042071903398848003721771321746197244620530288486492910298005196777022837825585396430543447967028854408735391574765894934232500632112307087773911807889967140806285199055732500950679550360435377330471348734614824248991940961115252751927017460257485437133913028563748604251219670555843911400529482888503096266497609358078267070038240678883517501747131493395335187477018274176424330279715430777831782423680756324985753278521658062590367384641690807788825422310990646760493615693502871136528292891484379692510568838343759940810488996342228852674440857447087441711384048593305796211574070933620905107035823645409149234566651272545893687081372308404445137719765718329405063933896766517319845334294123761220730835378522845462543707600974726313144908656654886557661395287352412991117599883206138409250547484350971103786462329578330811894191085737229481971805052975133253082497658486687585603688325708176026507874652506280127172881590823268944725067181816288836758337291694683873063343536138062206826514471343004537273062175102397964539179649637976991238742750386047874876293473636084271846197511670131615081971045186353059901721460470528259813769139021806603698322757430076892136539666742640926031718925293661745873994365281461577904752189335510302695658365224424983228352382363047962343122636786578199926339734474190314285860020574115815667296553933710913731762621892784090756468468054625712888159681497287436689942512313774852454946229860586141767106385845280645727539900513565565324941277519073158511147623213759476402322094555324994695469987877037687943308763667810270158256206076057324736731369388859308334318139047799990625016891481928867360681672326763905487991949456693739696642231225588663021121710145030240334087259077379284894451875739141430362767782165248694897574136024877178520033098221022065701011573518861668034713142306998481030533923125326561225632154983582006068705075875021947420188316842110052686707314527525897995539190790145147931478962844027822976306381454663571900752857735101261599548893561622028001310043028047934254464903431238223162898963328204805010909032120829703351905866743521064805661826642990162211647995610935500700397289034435818727714571283169927440494874787932317382612519488217716811349959316583061940081122228426083135926174113900380581054284765501497520324014062002799647634715241333257571377137507183207128731379242875975120071112971422927132909760958131259733953196645851917701051547796642503855376374925045972831779440755705891537655499437495153893224284680653051705516987085025010971773772149164718897429097097557024066228647432406481474988275805589400953371695420337398848420241024469974127767496197863560448620211579639717902367279239161476665361586462792014371737057746213036467642776961016249752921687451025091045494095091097295885856728606937814725684409853571470498824222822153798636631572714257013683054667540961393662145504927940475366045164592700331338874651029867435930631832141660817534541914704937718004382160142244857853205019956120500935066933057228854293470827878706388246905603974210607763111491544554170219130209060648204137639488545867738852444208624176872310438825668072867555980162069965370493912734058834078915894668791546478687609968706458955800766249677730940760338337511063496910747082767449073178075042458864731804108872140195685564240452951543526223183835477349334684624303645251865804255974001280658017676864963969033225816765617841804122677304604943584467690244786656288380099144674930418878023680439127724468130483366032399221392875959942423649159685920505826357394616715262637934780753023593033182860565508763755723040035340731734887601377941046620629078097461842178624680392663056861516908595931190119550736898079889308809092341235691132651444420936115848859038509322364294149232217314981914919691502990332308209232955378465589164683823335930053975688956754380090907493181608273325268275850642591427263159459670816481415773889893522522309709725464485585138384212120644500899935716381386851283995445099304949785397275025618132387996288428194811285528434824311367771831862856767784279213891860468584612187475209971242231444390272320776585691329121936885347881100104277111906717381220224043413450445279438561787339650609886890655699764184574405557633284756575943970818107406129979825468265478474449825418730293257082031829270508318123631474883934874034590692755659395384373822205423614580826796226085839471682883936001433165440927462611373146923446135121713044158652444984107100320363320920053133351625868780387230346900051314233858322696632547710757856066778147460900028747080621838471753266433290705565586217955780159282952870098382901025495306738213624843823197430896014074195313516734900393023654648525955389388059197047106615078967941243413514127439661793134697326386674268353164480148281666630519206655683647664459678390859426887539298953318984695939466196391344872481092095332874801391874080022107358487290056085449616087435954205617899410870187928417584761372639345260139858583042948665697193215064329906430254397430556469732179844564833431452288347070181176970165508699084874564661085148147178323680011022059635491429857154724802926782174679441145154321684762085027680257486327967226825214351777709116706107163726918707782177812015750430334967349913050660431913553908266547329738710749007487677901399034526766505741478177975322669208403229897573080399624501129194835290668823395754478831673113048251160042109854220933399026897475973521970585833988019910388453240550408450472014215185237612527934174856576986833358242109000761466406507323875495116275563584515766588073006551949923522228186812908167991190892388440662153260568327312756070124138965157781703852685742402983820863303332231611538436661318515950818524229335214168198891655558752584881684194226346532314481535889268951845024438847676036472021587450937683151387186999316796254232752175318259822237716009438968104076905001103929110301521640425013572897207990320711928372766677128529360718138780146634111985328414250292594386825511332716900223154144801898647068780031881275955684618055410623288249033724489360991518459341154453208052420946697457299083800410848762618209749477391275311177488491538388223233042660008336997527883057146916526041364633468557335195240053158770176790782310785766699468643442608402826293454511513681602832434435986050065559128984274257026514314364155445336516618199470993290302784266161338855202511440344529077697691234758853620674845557239426489225613283373139340508119980370082445242412077743981643614553376707459632232934700447431237494641031959140193462488831589263684770305313271574966578482638608430429031468646167626568599528046147997548128520632434971311464205708433484396742193449734853954252405427755001632523760078337676443338839179805941956691834988163253605295047090587124813997320672673382541160670121445891775745353904485267120057955097010362296060902972241193915769972224284353299464052094124388694883548771159428285811461880533409103117789811943292273324974865026604922195405883420088725419085128449558750777277610835147108315755109749930759866540629383693904354197441074854214406277711107409831527924278592312120052882055784185370402476732709391541698705862366627708687428522422836118830418359747736402712636491590175907218071665031343290587177720728283359122767903641638771420133524648556606317317858569733194472004109997491587721057217492357779726306716887910056265654792831825906716370982961287575151629933812264194061786268872766055648072770295994697417282864182156604381490470598318725041693155631184398408388276360686700138042430337557845358032595710158545467049864040321204575459669997360169816526011359488926735589444319388740638691306202607572105662253634797518008764942955162264824806300025269418717469117969689553886223929161932953928204314589049067155744407402213475080680517581410306227114128875945013254173606664325341906068586424739555989240081309569294118003729674905228794027741213233348790100287405725132849185609186707359064668871818840054025700136512838739055782594388386961595331546177849028634794802920756869793836382881748652268713204248372684995230158606305408493384957207094423631583132804082495225983987910017845229681516799034069118273349874341985600620880516577190777121462927634810892431072071538721449968438475019909759789937945072760025741868408597898761695700347543937952444614925511856423409103855412060092203051216746898662782654825540369165062664163735915483432774012993398163964599678930916706806573105526774752669687378421708453230536871844473010917573303335418414669721913968334928564530010841949822165226169699271449392199551217497024910338221889367029442757123614760528835180994234722386094569014290795208372685636576766786766029889890754576935746152955783178800066900295144052183658325578579404072484549216602869332877662001952600011528726476278101865026499906226183923329072628673327450077804209690055775830805876477137680676663671196501711533223164822337585529229868948609854593450287823804465541036878058042203430871053790227684200905396199172815606389179681151597463646958495744808370957856686375072271644618438121878266410521120439420166320752326755200417619680072279896800729336031533946637773252325504053024091570471862208753010038132875658872794699665843667241880768309028145096032598553316021588079134800112591133359051954861269730327788450006418096050305139067083847895623471399204351866863398051522805663044524702475850535222272521609170388921504727598118208440109308879963000842892544894491341608629948364940176716751257226231032425895632369899298625644663428562417671428371065673188781548571836625341275923536592928497101253282773382825226483601866321542348436945575601917780107896192972538665561771220914219056411674646321290344661193506044300867006071306890369230494885725912673203637942147421126004462574142205190021866472200210337467801640194077458385221712333133917852391128339254221673443806368040690597842935650475424555793331783372318093225001647484692890397262688901872515526790063601891052122475168453990752823960391311836904798688453365822321848428023948150043696004941182793493464612426802449171614682558494331201165901184114101310180834557114818144939906878747610539710619883973648189466037885899876988994610773743663527829149603289984234022981158966158762291741001465175810754516228444321817459393659819489703223384261471470249653950046655857266184890611827524606977848057418047214420350777576777877530819928316303985635637146308784155449976524058529176582245577952640504075013486818141841534222818550883428813232288733624667676552998764770192338976882861657303821053986503716813771808819502536647535808789155314964028291056149021206919663466980522814245774423180881557052122319509538750073394720193299782132394619555008601535254207767820040528583734369001063021729867991476241600752922445166829830793738933352150437139373201838834604558507837377471949977831401100744333853749000214161938455837301760569980204887907315492780897016163264776366035548563374226298487772274982886801160441873077458223868439567040851711895133910074536659199363867125570347233449188639058407812199086048769058162885648378070317832036458442967313088457399431597147790180859633836488452049933683512239069253517315470487022450460486363774963154709804216227988198577953257858977382498426912448223369843076369183212844905447390847453377224139355022581319239602325776473784503389000699696958430707017104480910674801046907647362424689710317568684157779480172157227549295882644340761159649144737438973092248597150662209776851484806943996670480111866093674197392692248835522421569731525152756996684987265106873408683969428640730762187961833195206905247626313508127882943259847096947575412370627871213215844344016104965047631318786579040183676778670830029310934036454092507846525328357628064185855074659044086766305433479813721285943961117603402190661907630717185786984286420576692326785350146561558064573526146794537497271933914910242267897697958871819117443069480725666635687586642436895572447268183500862242350226492437198272265179236106795635633680695441548062819638045228844975814767544202565007392614964040776218338379196601793026807435216308606421256666215480525835287717129360360318817235196519969212377239197536685106429253614706864987704739995734757046707734345844207264623295388602062948781010228553572807207949510961266302637637713428899960604197743195592857475864845272229394912003302909003892709242994268434158677757657477859509884966834704239318938704745235981290248011156398470817890775309244118945193674235834661265595245801537330983717006062923175196926879990277035933217073242134949859864852000395515729149008910329707366865089456361018933315493635038758027354872028480796945906122394723465794677583910945953766731329540843246586060719481711625909389371221138304681673252350785796472049882202319742881882158359361236275887372128530718901835409354435550279378645699902833196238926040226200838536030954614578439634123277497447124568545720197208335432092888578057021279923297411185477828563267275950528525590380929746338371550866627724853151981564353714939470499125687946928966746424682957100495583588354805530274000945529064567320156037195446833530764567827919453126266089055453042106177301258873680998083547391685436892374908055953608193493845683436627541588455256265570789638254506288477032173223880978631295651788307949634960596677400019643288081783950472504412141815820847949000623997202824230276420878779021050578233164886654456322281056969195182310711323579719048746462824573152349614743155032061656370148062737991655775880135230074416946948349349525139705267509030594975389132596137689782220253598639760768682385667130413408641589396201077798789082122836166200482224012966260727525655919370952000024365096756474750809687560222215753842550812343791238584598855987953763901721076831339844308183089912358808413105770856240742637747900391474072425564762331153466307625033108455184368822375912705431514020345607027048541193312667238375159517332225876997155495491548358383587153240886233744861533717309131394594798212332087546281783943049455378739473340427679304207974978029766600334804731904845599190285683963359180565754366827142598345405038987860039507310974428680706812417859498659747581695829303619655223797924425438258032522472901070246185708631159928559488096987499774206984571727362167978704398474870493738649909350528040883015913199992356757242950869551222963988465172981070331085269381705809538229228105276689101560850952981478779939362942445895329744595293509567856289368153218372472581496820143824351090414247318141704114424395905563141518236905254377595377881379894319697131213276624748124210091804051294522574591293766861445373910288288064718104559919316978805551652449861416724485282969304848849286075900030810708494623758861660968351562796709764815284816399662296328759467141959112012406239146256229616448995583840270331655521131126908385068021387023295966719559544281500912484885620859311787064570916352144485449448310591670986568219954516392719548340600678970758550283959212568718687922395953453570471507843925891075318442253530067895028189529680439335054492504358528569920653384480804320901220338779439806131268655058818374480620933840396227309605539632425416839273576905198137067504852864179089859439375453241554800627867655053034175059838903490786820714072581783989739191538319729739304682747166720062343118996750938783407783640993933960428027199789486311951475747473814230384610391515981571131721873868122224225803476886361331736925016221801628965096042318502712962068723732530821885687249989045083100672821032969410137480485959044024407333484963374758307101159947178165931227080896760099331802859425727828033603817354044515688226783119927140868468075176564156969477044067838475722351967217470355170675109450494854670570545160622318815482884630246217865459573909530439770101697134943478369203397263155693429429343260802204853633315264281302619310353040102151109681238985533829906575579295960216976850592943384030550945192784688921239252814767302186943796167896920966166716402480389649064580803984029928790233381269752894690833948629144087635036042976338346307637869050606304228950801498360616335770006819413087424486847561689930921177222449351686956208152072068763034395346097772695703877348386983410888624902921051952269514829836438252170661218020614582597743032779752955117078465439917272209289824172471809707869632238105884418409236091439956295269724815881641697072994650378617124490556075406019421533560628274174071620027508787935664970113665839023718074859333826780957207400606253511805573298513449417996966294532723369841825573114847199808357905855159999750714456629018598737152165534605880995491467474409328958099889008761862120392005342748476989742013853611249315831485507313113271539920649395817522842567804661628966096408332932934866229655448542581812733230806649438201630985367747378696155108887950452288216240015225001907831811594997347145329829984405103037909582601166197891674683418890133334988960927497845820688221955983196079881367940733446483954571649198707102699959936339991959391103478340773308224889185591970370054027451925652657707905892946628138082749511528459299654396698016356028793046355544424669876805376922053489021523158266299801051536464879995165551003420237601568550508906621582904652406665680118399525144725615432926803625707654626321325588912829921831889230407554605363903853603647896555649293060424923221176836236828384795246274479487008795936878949540684409623288126429765100549532477594379611913661899444511681225241111465518621465428423784191553301259322221149710334594671530902072014550729615686397717512814699319905762674807519327198083331338841116733086115470453355468707333049407347580671966521974840757489574911946796495684572802398329308681312417620870466267319911514339250663206731118567488004906397527057148682167307130870212089612125662797865256564516103641639679829246594759016876794910053903239099827432506554601523439415071363348704710731112569166868022696582834932647283078586095092187337447751779825998267904773205643965220993060531291589963025759550237914446202671868850519268107329323149504959718016450421087083031440382102106940835873206292478608341196991932043962115544582627023575223974859599116832098665310857862179307810481524321554239424729686632902375585804592823958411525609487355782787808309548861068041161679104701565712803248548662731599549437021296899365987629126004109987644878271168972439197671833897792989314360020513859377974285545466551060421716459770537146118281668757187535916172514234155386182597951943812194010303444970662110093491010504513868416727908512373485175831892074793722457389827407408621438436941930527864842707226472767126751452602788476473002065075510003539382527968491426600832387508934592341617325930061119621548325165459961429218289346234771391724687876582983685675290569679693663932091163403472010468177963554344884395697680513162352143698197437458366681835663977979496594554832289745726363087490826595199676022684894257138044670718933447224777844090581354779354375600057814666354820167408815946420502374775709452890425924260445157631951190052136542516451621395991133393523780786861210639411918376339190712488618559791040235400064109883547306170261973034639168345265331888493777572362535603333687208810276727520944692683251503112537906095237305967472626170769066351949904432342693453253082199499296030737536203248696053071529462513626387990866325163559090308938811197240914718558287598195141578266135140610937877162815639773036878564976000902307531053073204271528128457666838051156299503169685184210136251617896478537688443971723211212486907801819645999174401829295370237393099930102176893755162588459869624417800889124508631872794780181879492815674847069320874041602187028972681864200878417511653528788475296989288412120579668334256125509558882214640323268407750305780724590525057670577878727954644455228901741942141097135928821655919644877323634653048094959965392087949363783960103916123094098466299664041598106111780830439817181755761926408325146250336152111542911824173993761128755112279837746176019741898544144653548781723789494077824350225673323938528076600419938795840142449013166911302178591623448243002981829192535180773048257906102274992956076337023121987111624680997849542949307508479410149110157259125216862161813387889288681192955676853489129593084593180993108057428526461367191604681646582101500145804769956576176593916926644113290938586730477924234578829884193458467726204319774240580479346394542564165508627393850020346099535310878692514999057016417392351206449473071977504775159757670803761414640351666659545207598987390631965466526693082719979934004393557590237154934407498903260776972382335119120226312930467625898582928880442998009611731731814740438053193625320296797619697109063021151330456466859392042379384806392294872405905455851178323498655381311047962597437028399945269414572066045406794008158392860087019854394554380196002330222706521510239761065484309356672762391761085951287948531407466310334741008994060278330836480870621806504943042648462604880613576182462858293443491898397780661712078820691825752273801847070932423412643002005435518126582747804513776600820235637366877305431656492279381431236211261025773330705728353320277759952513933879615648069451334940864092672169592180897730958100705324327505806975359340407371553437098783673572386709898618865238714629811890338668936834334062712839498390505951924706983760019596819207499328008209779134619392903340132807539211763066961250111714356538568036075547152590338875207054462107559041300982325994208332734932734647681718973612503356022628176815882646061169661173199829644887047208745985677021352901789945459074647274866082752537125328490526717429202381452824046527918555471265154555302077225455975948289882621043646611648307216551204583023227491012788480960863912218284126599897793676488509715391045852972282803934424693341618360187802956779217657650860492809417149530877456373507722978888549296220314299295466376353757230820506364983223882646453995193882970044363250138437247227826295501501909459119846280841916670436611141625375948167632856764668798994072484285173206449650234742436226014250518800039479855388058862204239759404895573763549054494033327688640885235728589621848725686921984615305750562072647567153304360788877229697794796495817051152139340841068611487383716400991690328228775124765512910668264868942171590232621913898935628309557247192037088275958208386740562137594349346039486949779222358142726305269656307031694744312156317627976981666080738116834786524993737122799661619103371202082494027423918850576988486352165138623396403245292957253086730578345224611634750981684194603246093611239945745135460053545379659403108454874636782872193675854450661519356301590383865608756104246160701504520809273591886830808034526253937363997179979077981819093170131774234309223011122045381069987415610391888250113882892834543968370283650032170171491617088234231644687883735146694597631702279689008029858176572552546990599118093944233483712129859486055102006520709822881551440239357679460225471735371638733352250567148743682168222938461717656264296686576745708076195521075845621529722764627457543827870700310898316824187081494101979371453686533583984681727482403918540262933433917852448364174330039209361295837958077662591487685696367890989104935493796788446847999462863155964829618949514871713063095802751287657011809319353861582754852772860194318839970861210040468996098515859835513330101134447751453503247181641312861012485112160559325771918367298023712550019942593016743190369643705329396743811536876199571194444209863595319577855147916800026482067672326395521484441666739128260178549078425599586250998975470928028910091375901306374436848407547148099586563121338638343952888940604488193750894859805758717817860583621476216389427329668346756571473420638864557807837279655467313568790573588346847082215576311736425861096529756941365438104698027217614972605952940358283091030391573717618641754548022687374885931666855355383676757733982423385321522110991843077656950180220210064662686297716892624501930296814543068427234517146342934664929174218815524711450694536117803454393069373736119463878708977676160814444701607212666620685286065802123015520992011947237033733956526689364761451592001874219779034605782113058098130918409350383123386024832827473223561518527283198985405030760126509964619779220049006723064049270729297184478738064461210655284117296266671369247040974149893286648442495344735718164937231242088607409116576739229511283292553976221840015959752265807359520003022381012133483806150709125861364557254155459600672090615194757393158704594958407402476982585571856124662088998797576977749255936792121701840216101478659726237185531230144500862681935834652776540736620618932399591178958610974760698707473932164260374805728725852566884500746619561234317135333249267807945670343207755796506800004159454590698161101218475728197655034146656394623046014152243247649783469795803310909021600895767880707294084769385872115870128926944051300871301229112419625208378236405647087117875013858973598722787931798899897781060920112407504876689414921841819523688668558189800027425652730151321965266563315333325340485836735380810393074694903766289531119110311177540307556610870388723313220457671395848257814897921250246947252954426157148418417829553056630147200785729102115633212109576245242101988716028397729528156482738149999927981690133382929885280620425558380926604021629703000759674432462254877079250040384777726560769946111799742669636172756739195667602303064029616787070955939009142406604206275330170040875138616269946397679690031050960247979818021196380684942063847435338100901974409479714175771320357108152657443185445390387097275870044382831445003508734962032684655297263547812334214271704701941634847239329765392241450962010273620178189657925788051146158624651505867257495056648936879222663277023696597357997306226244838119777490889918369872041068754973632130040446786479677426717802817722754148321728223047700233872780828934411412706794762348098854788095095808201204089023075075180468082074476019718790426405760393156313717577851921208021284167008115154370348975864752512444035131756148530104561308355637780623512271353262222479508891118844836020238492938772837490966960316542825036809558702471160540167273120272617015054896153473880290492752244294910432714705425782820242822856748882284715659434383516804051048498367347455064891681870442047067206043579009496488073357830078587249696485363378101760851953279045057154534794367585618287299299613009355621984205956182203300900959271091482600362833092757714032345610401072673426813616791849332919909688018480977545365680769872568036793974198921903855651319305557707003329237669761675277396194445933251559119876025467427205334053732066391703423484842554452823864011106902441375072448963798120904789632196088858221680219075326635488636179722174019633606290582846478110735752094210525325741141718939850800006287505409808330940557481822084039205527855655974868515537273943250292705865882446416801189073012607303993333658140125111481308682112660670710205993286081910653889884698382824342210575651348798349145078634193794443672994976124120852222057403386394053845908019635997685796940017790092282475408066502649340867377214363729245573837549250048767610928647819585883386714406658764510206255817357873839173793309784350214904665993654261862704317563344360316147325895983248719045682691198114260605721253523564290860423591690746159722342099763679135951909128414859052480901056945739039147739827229930377534812038163780712808427382419211953946693342632921587678742805403007467819801771248082692224630402850136056783769125944304015967970361176466729688690193879922325920004454043831821961103836046047722575326652831103637729367428497353645106791004581038406703566483129049935408980458257516172654608641517510697595124850177105051607999570604937538177668499627364387619056605399890502666228436058436276573894596345701856597220829351542947195003325890065672064055992256765777724276922633819075565727266716629410648324394634112403255831481944312700091442618362215496243141882923774830915368805770503777203389662176267734619675225190151465044356197149909348286143992110482604608364305735726875449690837836510191445189447276659850958340763956357847416255094904998603377640035480839404913368190071658816557812399285520556084272030489088873915945692709700183474651208605160119373044643179903540728221169140827349184067598759193126532683121476341855144923336468012169384077875477082019955268409066371000023082111096716833958226432615822376292952475742381453646873718931745360931199178004559805380815356313635707537887431042008690931332576130638300599270769598495976860828686412988587527555174409406526620255468100229142246920031931323073918970472372355676955302757100307353458323788276275692142009405893364003487377275008191933474928430288235342809890194039606265953497408310278500816724566288724645144105814644437644914531043411079912197114802743899517660102745729580072656338561168835463906944171146509032855390700608753362629934784697370699017924466407555868793478792572788552804461012938314012645086017048101497260790433809556040329938856174419971890120449166613167730964746053341799536444332271848424537431195305224859526174216546398953244342415560539183869986482264836580671134658855586945141104777463341422755778145223146661014650816192881506215294632510791484321742219354634815270222687969349463954798503841914662776984728354486459794891467764764202976623510892400414225971118150841890997937525731181429950817164474171325205608507859908734564276646327370822578833018283090807483125447991287366236292401906750751964239025650209819528713078668446253307020366036285814930250696638318254600700431183680502816942591849778724090945366237805795655521603868529619246078409351723704852702408184760190418250245635719367503152894807471860175690323012825783097614699381762204396137136198750466031289445217009850552838166586072410564785187343061477116215264543248641428052715741127053140827953089602424628613908167655016099026591315096367034609143778784585806499996166338579841557620365613386472310358794301524436352705711881854947653549610856185525777351529441631392113059080613647358064009494968413122932693900692561471622331059849567081006639368475816661783629449259863820569180460459143933164631071757832502755846688374431475621267154835083384685185876414766503132041771848715144870140626304908867794757984992420620249097073240788157703486665284380070085037070436495672415219273743834677220822833537443169230364950995398754827106005104087229792206601415541350603137036909726747943381593814331502907897462017469743525959601857222022115242268067718225091399495207054836000580192178472495971691937392506612961206479290395627389672323582688953261862984375202173656114263257069339405552256420172686582658533014907617377141461803911547957334855555479928882824076095062600160094272219321973419512178655299102701275723581317216268687981228058464049695091969781999324890271082458616444064147387364508191701062004105919327542008937275168823738659339798884208694127649528310715393035049695745541630739845811708480496497145152932900178482740684945339611942566930402657092795392438003042021932540395070418895736157701446948935196621197458283421085672305553191134106745494888478621764458539502529624848861110380250575601598787640246411612256732645334385836867063339525065770340592343425665094793457068154296087158658669136238021615587507924750640414956673956358007991186694367496105911435934683503265475545423885968592217725553285472388501353035499702202661744676873304637670728300768690500113735827534664118781813460854607571602374975820985567563270339919413269395820563123900686146734026494346358000403136493077727390969143040594228157152774293249758850210536642011245393227242973494100776677802992785692769606598256484409103762903448354067947866143078007262600721316548010813113259355844905571610469200761975585551639084119747679093903621999897269872839546263832598282288887641547798721552232574080359901335526668913418958486089680001976553053802487054292704867196446437731397832329756962455218216470510217278028805746756693131603342459759187251177654818165339781393481774728345216844030826579995125582999301758664313076134566174644167802792152244560552873679059148815958281531986323693895392433732908984333072061073832658299417129497905455928552494473408378071790066486695833551353332821513360827452261450363145626397337917530120698715366469218369898131065345242746109131469817447216498756374315940748251836749862364888007911756811877070084654115687581100517365753606846627689513457692059642304752760697640505027152057948623971389927385592248350935906861857328948402244966868392138292570141897952434065408484571323723809962645832322452901456688137964204004146707937379334029902565318822166529083743503286672275866874178353328274137695091255467433085164785722138125637574232603790681473225938935726611726574471258595437931068285407360795675430505697222195739987354354644651797856727307842069354046286558764291792312540858179576411232373638106613653172399701305678799977662331343373368395771302416920696538922277017860443049446048328877831265043365015385543286295706430653099735200243822337922483699570877195865883223850086559308815580907573808120478813499346030348177253553753342628004918363400855069318344911375832791357764126897364278053699706975997890596728281185252887033830850914930656675332382415463444343917875596210598041716790817427985078768320525881804929870392000209251615808564545649941005263367221247393665418009113035752684098261639337205842341840072675367722570208744152723410898372690396640358829105283682391722933399972263890238720984001308198944999738601983124014683543503573271455391366628668359494630094643183347242592471346570582711347948250306218734079227312783280566626828857853845046719436416094750635518856769884416641027220808519378221976890341823369356108093619752622969253896469421243322861213776345592915059508343684675804965262008279882839446639647085012088007770043108873817121248102637893451344376960222513301241718427840901303390953860842501207356938614261588846111296081324297998713154976396700237268177901636283305933540617540219997601710988195770852528423838579221138565836945711391440913621147804116099596540715718124476939997549677897549659242756129518279342953851180504567224380537030785456063182095261594524379886638584169671165417825079210737957073469880989584801049519152382738478309702687854389058598953590622387661838091506141998336487424004448424885553301261266147502220661938839614225591628767712169086297769602020939057617309316325940236223714167379354206570322799334355711714035985790200214217497269516981757649989179780972714932972722897493972310556341552532655034728381907697031976820407004779911430439017383146401529724742719891269528299784589347847858887699266642115647280274016874624112572726861754755475278927645246022697168338866620086729981306248440042455542178729749835725846901103951406980616074698229457947460565291265254324313083902024100601878270091579120674905916461636364779661804719300110898753704415102827175428493050053358426562514391188186485657663495985269362875863431441368097700379669206857247514285446107213259471912401890981196264495107074260042013332698509768845484402949578491572475812969468291312617554975292362711378874763067177318843885815401100918488977398852466444173704829302602428016975112221644275770584372954326328072471635661403621503742466600030246238995728356756544009612417234023279728940449071732406699704293813523264231457138652506743721508917570876847495164082092329237711691753634976088115490419449732999200713340733965343503933318633147415755543366156230732050174787459635467423501806476985530953436419916843496275631589144234056395115754043120463749828908618142191105547227117534455025431910918794272051490665152152115328250781992130843305788616430590779614395358324449258793385941553118255054498129863998615826722160250604457526988623879669545812826833584582668828404259500376652855412178423720679846583238362499662985951419143376710177741745069693390866616039742214407375806576926434536755796006390181643584621083662023685305228922544246112407295724680660741702975206638550188752303977785933550291401540073365096177610262765719591953070796225168369018083377434677359619616788525628970517187062978449291465066959941440031447331905170463486384125551311052406303908761514269086810786437487706478051484787583832830733799529710893577515668525982112202995107845344488069869127670673361171502247835856020844774178424956933664940330461688129773509377410349128706400478809160629435018030246644907018077176510286475714081876788191735155544888670763011844985883919969826659665289254456033398115437564183351542730107099309551755227509745514097857558182885121148028140421874087445428926337407420909614995633675391727211848220493146462007874154814777062017299638683998676142960043251092150469126095863335602440799226469733040679330850952338143025295224220716163210211531178805171928482731798666093876148391253412571870163449031315958997780266678710350763034590499999881513576697118734192102658086394899119398262790826386828743572616544385900237783997435279460602181489796545955528822517095957015739102850747448752074863657104182700704856614120863241819933021987945448597708769705914277053835736600875318587791094822685637630424519466774638071740211466909798454431080654003812538935954006453744290984709592777744089033965975469828047639028568365124437863162441233489913770693927708490231488692487689274936948335792228065624910337724772172929519803870687641548854752871151186769949560447262827552536554924863862239665097909591937932859546894172793903464691935867352417560354677214081298562652310397557259890239727166854782414725581054779235190914543146737610952767422608078876948548524279310513894270416567972775430147438635681617407782172202464016139339537105339628432022789943971192667515893599159334665379476941196030830951209833455497512641162749438395931994540921035197460688550245044085794169512899861670020516812261115492251537874469039361658980067169269972523624210652902255076476308604098317855248029460315640362337754667423650340284348654125838636116349367170484267300731221365403427535578892343423392674262442769667112685012666111684848031476932669117049885686699381344135204354872222487847309784783026091046171051941767153163259996110901290057004533957715621135106096328372947549364088162081614379712695795628898800392809936942784933466342083756995065807287563309643089626244610716051184835401750646293447009697305559428486153784184142868219236620597416989430593263164390777981085932099565710128779792842639384093740927438661862683499300401658699998571409183050947714420937419030362404025023962904243854071898559827598944608321446688718839315731403342035967066874328118722840629946996653461562802475364939120781745355242864190294032804636348651873879637640300165268585043066839371339502455160643314639662626110305359175513909395368028462927488512395028800993393734107877589109868814638379726002943001623325967221502172389927566729818137088928135719898480929670700199885381375993933361691694112323524241527819232368029631131017429735843198484256496566791057852302863149845025830137666316126863411975336136211482157564647478049216494706858024456278164924922490269644897197178196057281487954392850447065252337931468053799078063658142475741790335930535825482406101272594903555797248712670697024001483823517958657236717007598335924390666248184336157428226074682129650379028908604940445238097142084551294069229567392406369508586032532817512999695801485398868412318892307110051355354053820486598544189853838699258623298301866703235981875082576253590542523686557353028376170104446418657786441284953786192432463073836703732899585896458719924470269910331341735902879050597163341367194825972647902327802603366929778100228797090052945774119599157386714946365114404917671052032138706595803350243848219445730745312689734854572228157396864317734206239247176928786520662670057271920710210859487905144614017912970372811392401920895901299729167381836700791245035002058904134101813573574033679312014265547595220986702853089174250330236347639882382607761830591800888572855513498104810128431209463341340660942776569311940575580412808007392716480877603618388312633454546557519304158997846481132944690710604756537398452694176094737433914535688488437772563841623513195195706431998781217306611191296314011823893538446822968962630911658702636988284096302057012509285858044572770493126667901481689158895757085668161815621813841112058091037354283006938463027586199705702325971187946470440457750762805698194717718682337943971823098470941162858924612295555208718080966401606732547965876113170687370027269223008098716741840142660919721572938905932921643921308363254473841291755700041388662173587900948290039125717629786099767650153982117849034592754227279462785320585793705696579344856398383029099603805933360338806590090701158312666720790622504305082751205530062098796791971114638710987991409767355411230095666019734911411105875631120895431061377089623889328691507104022943437940264453698257454687264431182281846522782068917841446644326165893163752415850487126905342589698464922427064274743488536654000706973817315220329463284790393478876604486898479509308650100927365610376385092232585636426589338032734008430940864405663094961365577714065142996809818504663898210624672572863406817475143102216137657731678295600788252246841605856254917969407557781081066547369642416211115195639784968802649718450258729574465917804893335026741971676053354642110753198750214934459263345356863297562684143011738556695178039415984258943694768861739840539223423854105443658963773924912336764026643426789338278786041796316717597667626544405533888551046959939479830254378729778552967956038168675080570590872035548495642123653483265593273089217832801452961880890126451363506995312170936292063985183130236644597938479405915473909412697117737002539416799318762832217964737258341103858792796989842071501179305203649700994267854808324908672862952359952965500182474923303864112580862170882237707402226292152501472341316251486195950212574205325110554007767893345004990523593129697499671880436347825347743194566192251629695776680667673790761165572889328277802850708127677236351941920068902134402041133982130331109865654692353678627587322425044237866355219634687362071618261333476340154137748484329587441400962282356604200577007957735886090230591912063775755035086956749509777192502302921399827296159583635758019588687544569439134902215394255560393578544835194185594562530326399968481556010134611441304705049624766507808006944856722417309848818572597312728495884277390345081018973689838945044062415648629300766150173700772294701069839406765390498310146917030041669343317994850627474848710746224213652928818697508856923296104728467001544829905628857811158976084097877306725350615608446743978620865185399635953304441360673807877932992730067436588957218849993499499320608252674771491587560991314866868302125378386413721717979766933504847889507560595747628126020037926090402943369125870373674732561819136637198143413192135505715229999862333647727303411636423437531190778748475261158841022540950094904847439204954338536315377816320793741907380363724846048223555038323746827628780692095307711432670605988297735569621215353720525031169495567012372691002233971902699511083487241165339338355701746904797362549814188958472121340693351314606359438667395437275629366518203099460177579018247183509758256112483128538501245137525188281906063548495338395195668485671598210340700007901919000198249977449608065674467264035532810911625320570205470665394565415305090923819065454870066924269113819417881451532409334439917075641752471391204117208850575580351166302663453562442336642366544848065247596377716062591189931944753251204876599246299979280690431543634552801080735118068133799294022734029581206178877086665239944312045805465405243745271104964718089356699884914671191931234518331857237780759161204222974005378452146882659581130091084667918214835257604998280659811622896531732133459201672661455228983712775589568314828510686070063368880407038250158256813834371129562793007882751539680189355556177365081128676670820310078486084205581192930107452223781796795592449089129031948043058373331688349978279844347672566131473561296698755881216227537821149136179571895953606831843999971125455599766814359247480465859569372812379699837293815982422429155171248259939126420747183444582487831040638478134251955837228908664838982032763401648416030129562187799163330095423538814766389687325668860902611868782635348644474157588557642725997035297153654958339659176735500330335523305770779640477173173546322843730217241672909142908349334434878559487572388743656390164054312255913104643526843436935853186695711644838367203431898452783469132040509491443123459678677890293703852727575327812618640281730852320355838883153868449454177543106173909729499755978660094384426584910655542571567297165059751955793105140230174004711277746235294520402142817156320921548505447790402248003040407391953806936978983337660805047240848638602541983801300095818612829802524081332302189605778028828651025976262552076505325192970049084668502114009544240132429848215221325505623765925152619736676872580797315173912772002410434511766750749396003938145593972903600025134563058852218327304240909145075509875119893224972047861055058523756133939033889310738061679352023101746114004437393736235471911435820161593929825853269913115575040955335271848141929238753452864608789841774691382871075390899244334890574262586731119767469337364782445297795368061764015386105250105870563118651194780982752424909953501046815846031949647353817562318315194464131092367692397601547586854764355118577992620289294788108017189166881198087781597393640129393106539041860418413463711819095850506820129131260614552070963675177214190425903722217242152150053396542790984069712478644613322641510608827254641564062305577865464510028108063332019172346871300381284883008091330977328711219039005606203465236806605230570058198737347462239257500467238290132821467873236780268191116536174773332138925396436655458019566910009963568261987540787078675130735017043297394853909249183590479467073435813292293263362539937413867133423537094083003919031179165602903436526407444158330478596415169567235297773878295084065871394750070933101179724177755605364348145255268009382567109723768609294055635052410990090235050328440718607059092522307562040706642774001717380174621330147571561614507061181612027187457196443727906379370370758029956226341486889242972063431143932836125589898945583659986336112821669888845005314356498687301015531664745762173705780577289842964354603907651579840169904275979580941279661848912865886751580185547597994703043576455576080107588583168399072374423299064845364970992449292458482471421214660154004479280260987330168325119713397679893944533486447722783067083888332460199426510328693073111744665585230343871490442845054377338607638861946555968875877477356963068348976998530769569236104333983194138372772726431057749925176347509200577642638190215911171801826523082511331713911009095130186343220901226519868157355988473063423752796094273893405616894722672388285996302367004739781180491201052870954623325583374186530384523023413549410962177519583696776954263229225893431041964117906961986323119078498889153805895009855443479286623530349205836093110246185775091268576647690049254821072231362700844327962623659607720687515129077837394893002601800114453392640900908649919936785435774390522032011383338400715866246710022947452111796497310445597269417146305174262305658219863078322062414277344838920098391835235846279600219155969566450709557552522858793386813882093058451786903133452235776029716345706716989053355150415479701898916384326574569238186971078864696866768762135576086480791677444271295838339865193345456341661124534503590224351168089824847711052757421583442064700087822050343680560291579023030807474863040646355068645259904657504648687385976828628312416462251968958390526886436851834794121387257305514737664771695313539766297657739848524115510955545632679110178630070951073616263944200093793452359176838500957470005531714398800567389481947680981017684300506053565276487351346070770910224536026124537961449364028832877304474003770460096315060818445321942496601990972246031116766181842524049815266325239908456519705392760946960510372651620000231792422622697154266686924855538632425885411574919114925486677894293440060124048857440421440369973133247402482320801143177807855807281997488870119103237217517779154021497937636491978102750302814724329828350218273188193962221944227884676649550452125540412122451349522072952810862411781949513455213695505428332895090437680848062966775785234290447453772617837057382021271990435325881962516454487690819145575156231427115421256491341122946898418718678914882426081451438898020614074499461677859743421194193043033087248065100634279203322891059673986314861434079662499918808953767006458828397282710313632147053862851491857047740626868429401944070041702228030110528861243343846235477895167161671090761628258791955644814588111934560990835748857721874825945185268584083784340481528813524924650903991414488346256674937113015310493794428472191931455857828983005411736528834562580428512756408678715210645036754890167243821519055489974617449887044192166781819585185988687041555855440311315415269888754095528234306694141163235498871030483904980420177271223511091089359724983072335685923564985584888899319728459369706909159085854765468006819528627709919637998833445185003326517182627036642101374768306697021525255174572710371638770129661422757180808144135179690193477267254956031748333162363626967729429931282748834356378149868428359893663983637358541419712560335669238770312158556963602665813652295567385652328268693796527068990158064898340286274500511342340695688690618688333347779805573571388771780468366098149621638247776231633689338494596193100338598759284673053436736385040680266660893743846983046466983421208815158035557553941199892139439623240811426264337121247238757762664041517663053097478614016174369532296765641860059044043104998096832149794058561397367971395782465072890033816006950110380057364516842102880915087405161392921957219889570184147942972479488021105026445132156662020599948084530458401249786485656019529980405979168176053201776054520195712261232419076712220099250949538521546871599908712845293672276654690743232771863072990149449340726440970095696198461004700562097107506370644767120727955684954481872939512403957841293905392812643797312733938235906882971754378166813370415237788930527642170208559086297393233210672905282832000844507358082371442752992148471842511324795337396082814215035482258822014892859098674083053625401831447711421406842394570377741627523322573317429526980021428267617554658195157246180462828151137764338194091051943615653886625378916407898802791173515929289684663506639494653924127697441297636338299391412200141568923028139799157465885443401069452457490840997507013689507364844333091818255932076297292323712451755882496750470843991736671579024358217423609729687563509165729469827777036761029412699293218456181809802037587285811542650552660347996085794194463681096899924972710649761612696417582556845103498771331857753873437633164117894886269211239382327177082095102793040258388835386317586900046162446612124687427595403525115862322706844047504761967996190642741601058601584470130790292450897802956681320707983046564753716799452662983320234065808104391665350272253767145985319437477105845705683421878764591741168142036143577194396112267043642221731068806224337074126848206867160690294153908385289074571791951998192701575309027474832603792437608328938365109333712037611056926784744405962567407473771323397649280884849231493416200890848914012942948291959078781978238728014447847967464707271619373133271988557679105472063114983516591571263590718749867619928171724680180183337413573256313656754193879753142508962604356171327639822481390922836261158892664850189816757041842409027596697354963353674280192193675062467928031271464657754362991191317212487078112130414306579793314305965503692935571038639903809207699908729392382396596669762787873754164469468176516776829701740973178680806940189697633559245196513985232219916780673155854491651046021151744418397591276514304997927861164778789561909968265950762870037343560464674533981167773531738138224815466351189742806980449712617383835358898731746081632847367276622796199409942078248761582817620367669918129829366654180374365841574877716002875172660985653936255259693416135528419428499864461611379917966917114228034990721617160601945789417261584111235145390736741027484816648052730108242987945645135412037630210492851032799327804230065301005288482350949016290909688192671259108942630701304872679928224500952261419166128203996729849133943348878143871356414347097818219851995735193148242439377191408759065127332496252815658904185181094148626405119077776246100417721362052776581945102783518197152980231351931170552263920498068704947806201140642810204668673230107538789164194195722961720580323280699256352932639105344728196192601274709767060623576042237318914778712115145258533022254077765090179121013058253160832543911049658931046835842049699643522392206083435448546763977527101586901253368895755032299607343654543505170262144793023606614490840323908542738579322856428912808107566727142573370001381390952048605369581244523382580509208991006184693036579225176716304752338495731029462364585463859497608123637610191944946238191232814295288285972055955551500983984201508366909685157110008035080609812337805285623357358353794882930007778711940647683187466984854007906384820260610422846936742888742005718829246804319436071321602092414123054552889108463888183274102570667023419864481023677459299060845779513074420700476446977568871823919040762383444320090228528218666741146416944032535519109664980717031472669602720378194679630027180589551581711256065984082206188042414035774868993167615500689217204690153744766753940486101225890407454525362859848885202558402608469322605019742409484060672970258231686630956690446610574461919630950642380024634246831867779429048276986502403330752503723643377810121781394623137928323624058469167965231416143288807789465663887361484979417629891874011813835650066244939652591729228436327329799457452431671898563816912029844511244927949812104703947623797971538431829920602988910723484576321056653898410955610743881081175585521157817932179518499362909938947904634126031614276729145879111144483057753286321890881583923400890656511427324054357791502269819085053763137376764070734103219506090328949836617974455424525129474515679281274031015335875832740158977574249394865253986751742314405948965212582660322495756259298083485721128571412017003295910687537187784979753868857214751068415994786813652346447205563693319120324863904003939021327386127107921313580018751670707970109861265194679962439035816368257783281375201182951401087416370155289802786402027289706483710837380300654657330276213053164854129734994880249383144310225982926974506895944544784425546401360711029433364739719084285709455382334592975531175405441243401918861037640620696443216843859195188552420009254288275320560471656419723992727488891088982015088125446283428218621202225212566847391508298157327896724205252003407103099162813389832216072348255866578792550838219268681310322874447536199716381231071552307336662110827060707801236686615838992981227432043863723374972759030198105711145258512312668598760900034073802723727487967583317623023937107373081100718400631191667838630684672945299913091353539656502567865072930937484468510881560724042647201433671803741656261254621494120446856751863096273805916436979982546858936825381272962771718243226556578693119350518334600240020614070589639470187981601605159477544759784428034988866226010076615863513225219367308235685206780011532630297088904658241523854125423157427568084335914445828170172006599603349622059117324993673069533060506058974621943761125587570399150848275045295081285686783531457756671286212548196247638365309461033314514047506421528391005856467802012056523029801382268960236757948739127930448007767952814966784916066517886914909178394502589105686242032154074432245874566547440944938318425424812833241276108924460227940095181913762341705677101296486345463513840029206032400438261180073724213610999689812034531476567613712553909785347052374765331691837994853091014379894818424474489729991052961527375035043268859686621115218822280701214737552503454913554349233525376125211528440701338826682843586949141947659351352083685361578265554065095776780854672359375437061702739617572522639877257405712273032300774759213647582958920627082069580769345061020115807864763330094527268953490419809149990203449814741295684763173139694503440782360213953984226415491697422384225756720465281790906696739593556493298376438063455527018260013653535952695316254591891123614663632832050186622846004632385398081851222409610089539890663505058517895333820174968755425655755406462551955214855969093531406763363662723064778354899279663960486157606944367395941682238365076507560438165397365608876219077300734943637658885766707747465985936182332754097484676091829421389544551609903699227624747730212360610630504069602983174240436131505407832736454708971962883922533092368469164743465220053513460380041690126891428624555529706557347110935529304394086729576528707754105186573042872024376482407922571990713950132473100010680587303177816689553775566590559645914144312454851743181926953568605464338656641467044541273524338459458508655491318816248614543701246637839289775839351101732542703871876380457858186020652298278400244409329420158891956512926051536569432865794619018680374543341381223695645158844410057590711505448716722623877794167386125836227415145285583977317793834907725170327866273330845110847079560477335103498188184142542884174969025109708616359034084576901240820643470652089325077879231502873869659492102584497236754172603287829622803950058829022868701835871998664220966915367475553137689214477588204801387449304671874665440928816106029040225230769931310858143283140077657650569863793587328706788987314706741158822378561011540704776152663000729332382715309602562572311993767279700913529138074370290569722221841830108804733047011015496308666975180783499730217735351731464088081904479009199867703449616259693169366889286414956596335814741523572841486102900282976728802135600319659545144778216934905498671291424359299309252721653346335711281796867277558144364481117015866141257739605747968048883952825493454064766155094785457195150761460253063488775270077290251021118108165677205684052910111573797492578894599067713009514638147925954700648014922993974199866374078900465467168075187926592905446294510574941307266282814554020577434623770562451627484547598754643706427867447124937934118121130047823800633219263748468229232248085776023188461176033524164231350599139761697639976953704586290802255529252077954253643502388754914630247466669838724974987133581678008716991093961535734210218919772078892674394419782095034844108740899225539062097901982924806054068258156659485235018332166716459907546917185614108017053997366086463130984151128024775900586612118300456412959071213632495524278703393924080383297180745847769134613510690662955885764358820910485056094384169808355965458906377982484728646025484470903730811451605729318989146245075460520334575937090823559592775230198865491636736352371733752803629312063719587997560942789202562571715911777081956118464970783629379223653845985104650369185041381658123565389805255811922629164730350858185551446581549226771345604653229850327591925939395958515575273177237936986240739085727662583069088443018614925522041645282072893231819879410255455418771724351414176602531767967233951600966625204906049624823854205301224666682405239065019529857997173332169361636121386102403704658617673276625836695574059713032380224175747786510956388051975129354821054817795784967225374187629295130617734011149085338985017994432858030466170947158754216755037332752471437874486864242080413422192680055277553096394031119684559792652861889847558554251296264885000871977358812358923082032739437533393106926671374754603701570084885289396502956857548445123633674503165829119424100510136936527615986960625901668388240677430940003191827479027145527172158575451376364929215664614384837892483990890149863349324319793828148395654711724054856826984788721719739325699534985345897849730116991358280257751589646332663430951421900147928252020879157145896456860153478592006723078903788883215157809594153920695423052344330026447619756629541422072282731216820100471982799869942682167603643915200905355226742767377628536576812243312000744594087900434977175870297871225578986485643453499190358386498423438031010964098993420793472989901770646843065355572043993926600632569244064891609567304960458729131756101736534053944482464974257289849834341043051217332128698391241873780146132963686531387944462710446224727351733935451188760208982738791134195409967198801747426202648803949315939269462715241706185285092590239915695621204527100120285191911601170004534543499691204987388993468715794777958273715454585979075580145665530301054478214722140746611611180547661319752331372740703751716871265776878722740336275832816118414760435998548426752754082093681541200631085536649294022823524280336619812246387052860411173336197094578707289434942394894382319762344030842230431382527560222707984654213269827955342955280458315714463937634840029131320095719550270454645503353975435145899863296224195514871547205725285881654104703235315029823804448440756386454172513970424986871621776244026113956420293672079674026304177454594387071640431012268752936727387983258885241819955907128177663970276017931365265251445311009921156444873107307812340327850851889208320295481877434387486483965653831953177359222042844772524559676229107277218194242876562963398485179074346747234130357679019190406387437320094202178972160089269654592313566838336024505915164850486723605610349443641834030923319576198874907995092535961818122071036826503357156541309736499701697823774282106835219423816417683131776400133837185028710930910684081999758000069811665043295809944436906271239940143272756470721931725513597204364478788287120571564778664149297912677489505342069471429554367807897733340227305082109464299100140580832423714315543702471305182652707100375684789894899775493407872396871822346720469439531071893327882838659195525465961447809687536736890856710591296045338498585089358144269634752070899449201042392254314644112500780149130604434599430783203846467438745040065612979656696095864225385669681946958213856638404628091438733833614259180196068678157987493380610992382854880106937697483249941176822677080712340849340347863357313397471822656389545571166343517474355991390563281285030841680615076358327089952885624642545472820656296015755605363782843063852512505274560259109737599179645535289109026489675200489080048274929168761220285444513955712870098280542427230700361200091601941502965561285172033576360756233839513245370618458829436832264275779941286486003617471810546317327348777923430055663913309068021326003914442118633103643246463650322844257458905779865716202234610547115659044245059381033955988679682973115946428916499640298679092462717355970306899412191893905999990045455569983009733726779171191607029034364248847482285848596018041486868879617467719503657452813750871152244903880885943085909003155623022715081574806414829899763722726917807927540107365095980011229764766847871302019747985243028771517492284129229556884510307289206279635814551099156848185804852833838434348922233607933798025155603572827818594670380458676099574772732966171965491154315425557558906568663820213026233794421626802769370316163457371001314737086120300393389183233296729037453166398277354151161419653499877256168282057505694645600598093471077710430832385127082240293630996203007140569331597613634574962118453919153755749564063449671366866380673444125662500537946494165302286326233446607417624139899923854105881783323555997836147488148648343827833039468373431395698498328875740507234418906048266182018915376605009412521473014516665830010876288879278630899240914971339614912184722356601817950943968727032144436587363153557071341635844646051557860681389151855829223667252364736999116284864932479316622841015540662047551859730657780183238605012071851656898541508720994410147245899539210513393951668355573737634104354410979009939035425296539461894937795419776536621483874706988397498700421034251418517868025998820367463077277037513423792568007359806481984117862335079724014855588160468673502498201279641355216578528474323239576831401806100583922590894666034813468957958713985105444997323686102346478089419392718322333103959439507937498598612299821152721514553987124780594928485762540960769284004893171331573572626746555088473646837803092454825628418779619587377356208023433673290781462193840926097880829050582296123662974854370875468565572068743132288575337813543324834423964635525807291021726527124305005561987130066111997751872956138095478503906807488379615281478489576797560370199561597051908340731322421888398289624443141897030175274269726625205477566283769007067545403703823115412673389364802731374573841349978134905153642610977528584025402501200408625349273665185891915457754956247120533372837769695318821307036116034383881826077323607588733225664712110416026077587785165927308499531006008251399460256255611158982473545195891291496719063706124645663308771356136892763201032602325089771413645239852856953481511081727190361930652900362429569731878003998817070361908117014097267567849273861660575210541652746033977963811308277835095920161164591468699339208026633177178261285754120597509630189610427776800636387371209996298508526765065877579965751474249239666043045907207306284604634964164454850998893438431726041927945457376685087916838225200347299116554094217778741844842298287778065798020834457347400456245166505784119571302777183894138914877817602369949649871124688656729526605423770674591293661456037057389229760579754021607475468134059774232646529629054916803986121168712139648860828641883234178830612499867511228993921038117786478099672005182959725826156789301773453185986350547500993000763400872227777788547922604982016413898977671618268562741570623720476436953555421945613697013832710855138329685109821372550759555547745447825274040022767626453491125991185573289792369854050735239107684673681226086896239641897548997055375364292541311528364730523514653617379890820242748096274281350724987018968814640008679372684254472476950685310009452123715493934687658248812207321394355628072679107046584775610507654032421175089861376639907996459697534814530836714267861035870538791961338468183781777591555879507461295517601863979077815944455311338171817992844161915945552592567999281901604685709516349522478308515189252158326834883957000559030296222431013840706893696817094892254749361175727424914441940230151467572100836115542726510482319127586134056555547750452676807245070734164901250461597570663219701126613064066716805160630561549858508138950091825240921623495546829026512166192016129841843497343256946503366104465675458277639071388633400223061536497506559491442300887896726884089472848908027969308003433333432875673209410268410937941494577706915675135017835757668798642635926863067578156261778584177330240660327440904345689129640567878558520795733377429428808487043038969470934388701864635955544334827723001468781696977768147597769957973202200220114266429766177633890398736670062076165962799176098204400770250373814949322134477436057303364178489834927195221006284477591453873571496730955477885443863494775198731739965196396084441042869765609334006290530916849576393022903982800548212793236656242814529172615298537640531958891122763407767808743833200830082639588465347170974903139466031578928917896581854989073902439594919660157191263577180209871148045239272486041313991497405472953387077016303914530834579144253205385217340071056669443549068293424839313965403663888122916247813159634709979572946442595320773879996608375731871482619929702195658080961692427128568868586150935308279801412413921249529751641373181832376751784415588266009860578314475366160675624451564029584837649810364841993952965269368112522450401973485287838181697706007715459584054927138693473127283951337841249936980210369437012875040826894894149669202317957406396139023038149757756121837487422873123095896126128682613939989922504476435233449131341343610859740040559107282149091505231215022176467936237263028835884693112936744678390275174582551643127701888842672150070426807623004689992213604419739329955919966291229513841981703285968212380900547586146504069794486823755252576121146036513692143805266722791859973629965028464302950292273128457056446640732247099460878517634935958975901287827296635472553206138358624590509186993361703121141227742096396642864560235794339547193433803356747387899093833342070377961162565495693741476539546241332033843954250101174787081290959144198845129977712055629219955366115191619012236712508679067814456990123728604542888110735454944679286135616862069714748433633714621973794141024372435576057388090054523115188631372085615912985100472844277621302016496510644359841266710161573151742828463058750522266910401306313453780753460697821046226988064269807725002178821120203251187770226887742873851652368703869232369684078445498891864855011100197251569587185501679594727903858615271415965081146048299279562377822381752160288024062589814929005876583764706488005946682850686157263069511906696531482914635046196641216085591910311282449213956242136236526679310743221288607463629639115442476806149303984936241779964671684436915979578311168185184438652346249138899541413432250609262853371125191584466250061307822644145568146837074993937698572194785570412430207802186827584390066973880869764430362384369514986090513033488303995282454011764057611554905971734175948297563199899594970896092002681600343953378549707126446780852084189273977080243936252992122906750439430050892924489885895576900261426243310321829183553790992964911736663905114244022977573310264776024179168952442315436556210767548396121017884093600733691222256935847702952323273213715736166727768588046636399993411982336544826714588283071831746614977983795927766799956502503753899859479277435103639081793467564983562858374599253204540212907275283252494554688926258767671471095173658161612608650483882112076130361173113311416579429522946572635696911482428910103393259083011460090930383989608245770680250520381374689629652390061760840690609393647647445040344042915728093271736405898517733208489331838100099890947126691862926641971417660611015537265021784140611618620808436737995162552315679690619762744036038888284661662418806521280921802877352092852553917452773323688818961497613430109272248120162464113289669203307811895743494152793722709180248622811024510478833465053409468778575855627196084124929368466291826912867754095113769401422526010637915713775978287264025470551729655933360121703552618752105247747677913097092344318220999608159606445285825982876677059475272959972766673007516868505501552681298693226733057294546265311157510560747116419944260224404165198326147435688486802882351885092225013330031215413702480337511566395654411674541626761460382943928718327174303421455679484819876797874302747683290929564588331075946200013651411808471880451693281640985824491577612192947857927025087837658985862949352546368023985266735113309516763713998223216183056091392267621110429536806392532315227575035186893335688099674612552480890552366607918483844258816478317532770118931481916156102554093760369739052797673909937069574812356254356673437611980135134521916643959983870115197471703287485423527441908524581897824681728270869884318327959090993792973074759471896614294418519011543138703323564687371298790667764054018133123845361497816671615699408551487376338839064408648241268712065891012063193265533315776629945684651408379132351506678131401005631255994458123060430009596052537746675024570144111655529181866939208339793304292194102178012422568412251902067289611740496010700331278377271908976168615371857671008265090506689512003174399507896481042400103448607011604603856976944935203624164498504718057763427952455187400020514280194727030518987094422290929934672124778826175901127080677161419180022420918771281931250462449482453705531223279800610272820172210521026669547649939994440769799248741216770339428048892225178132561078675708097162130402729993028584907834081634662966529847138646966451330526223537382678042266048749547952283890548523392139570251718475217569216916550232079793473619156755176640897216942682133765702609094306821626242898246452662248776857265226224818911378721859605278489085806004045838028494594000153594482613554161519425710200109124421879083885031918806042900111339218626865467168289274066099493750552783064853584384860913013991502473086205448832072034038497599399797298608837200841836796237917371177858012072135029092729331521920780954957523594437829892199151670973975260558155111267254224251475692632868686425714199827476041609770366363063589405062368773048485567973206831243015847204905579405638160717824555956474161806749607159422126116354353346122758394539661098301195932212760871738330739752989090113925527749188076706323033251465448121735413246145489524815870764064314514130889363922416677834972436037605735992690612406642604946074478901422182636008982678100286999755883936683965212080633422094280776400919699288162331318849786701800354539100062039169302013303546076883365836351408786572666396583982412298335463180899451106233872747943061377116713360388967714336002657224054332826639332815698527364250386136635783422467929776268129588883580994858424996003891852647229645889193402462595569210304297966089006616846961902947502290187887020076015733784177667797689844009190391708521219933644606662285429323299362115272043577305098336822762791604920572573151401977189178015229416593287822684473983889072129942073264642442612658574318307299737655270278101772116740951913109658888553664317233490040319264727539398527013841884888250688766498597097386279054187433965923722596718327637424737599834877307588402963005347082545287207184829501355938833631998814176360943101625538702441255966890151154867821788731300786079767197312214353469549649631571149229943284387830717590818210360041669217874129706017889626057877331546846194930572151601232564141401089801450178272579886480059890699959391952524279461874127931415329205292749231054853705483465518325005126331807119483596321023155441812497300866675058646109861008419388920811754721783635914710738289415203968542177259213756096042009252890901952560943039148839114964740800677593654458212955346080241872906278952572539947284355037802051024303027644131209954710817192443186702426395467086121597490773121483406700848158152792758104651150547335089413223183727158061034853477456174267988851761788962027584744987274297200878930130911633103218324756726040706625783784651478975981919224205097777890923520847122476779604106248003722212864198002505521809263371172532345358695348226186306007424107739020838195118840625915947234940278182958094920325385172081192767325341840550029418282602489004049764113083116838375291070902634648666963484170975397295513003761456602902473733469024063535971706846749663566556083599146435440897669123966418889132229855397116967524624610144490026053615369405429124331471802708557514651622752257247776470470789072989272989746291544100023706364266740771033979705828054194655054914060998687423565932397012074900565105775057516271658521180888336538771373482725055734877394516141115577505917288731210354277982551758402259212402191465029513324613663307513033403618321924556693678733783039937402596379895297278545553069608832930217618980261982110371934301181161781159540670047394452114463304853004704619875963278765400794924604203253587666134670213885525964750731387354576615868753128109673794102191158136603029602511839131598243339379141049623241076970459821868827559797760726697233172238825222543793340819077378892704486066587053815265544738209996495512888851368731633658545816790662388783534107939389246629396349650480812924337929306596398375029515545823809695704902091738741047017669098182455947125519367983767051903979666723896052470687954984575773115603624054058163282447061298048029154210035434882250856570323918635343110116675313635669583437287759124956800328609937082450722488701289454238537801822059957740670752686293869986345819214585833463744626625464544870633345676500881255415099071257079277368784200773259496212107975588779295570866551975860530099113940292453802217640464833655637534115333999575101840518352353232085389903956349151706838806498701007409003917847833590806859083731949095035313641019337298029365445104932991119729631446493417724699497487625570272480535789493279310348738342667900366179793246606757912193907867140880365351914965637602679562139628346768842680306947556132037872070549419010432264650838910307483874587963918011015577345301621341667509316835508504528514058258741245960700996225868917847557299105529518078550276087090904972271673472314405541165885476872642842587216429726969297324014333190323768047776946357140514472458612142028015287114702526033822854542969310289439510669463743685273918273961573585543010381531873455806049866874094919566561292712336104224845800225710966571861083999759149627875307071183478115954837379118376911932867600502397544382874870718501619014484552682105614619978433189190318451736430694495519565892999464619258321657273551394420461668561004210396166382326306233060366690187775008076802929954550602536779045853893375895151684862119436289411572641087312535800633238200960232128257548940136968204067336408716909821165511754918629240350885224298150875329961175995062724299712651796490182939307538178780252995956096961022652806385108620178624282936851512263589438578356461324116592058090177040098180476750761870876445429687208909125232181670289107874858254968761250619756077541441939286900366344054202601093500577544767986171147915014834193625203298270561746375397478907724243336231208951230250609742013473860566372265622725949398379617312725182569905460793880831425423979762298737279240813519399132650036745120061744346437333864283024373795156856294337610514051580210260720675424827059812445008218404416801530050304619259269152022754287786087107631300064223625561265587538696599127644374754860368679727731244406361048290760783094836987534336697380485166299396066051469704020725051384476043166367230849878939339295322283374488697448748468682599562042184243935664473143076374036156812229327434352633672355278950345796345364738574634271796518949848877323258773747383881198193475324236253112346505305864252580346621364736699081477594432334059520037836106736059952616755606256383048738006520985969149501848636685001361818054042732933437304832259603450215426782802148897525992613036116718961070187847363550321385139932701902340434280482791628285671892441580171817702758647217262814496666164528409810145310578113031215276372360556715444658307344985237241944817407795314099763201475490545703032362315544637920659066547020224003763141701447145797801854078273413336875328148539656010571946612750988153984442523194463432592880726529359565737303495573333330891506065984446222848459576422484826993340285188768918945592435383858668679223882808215978314535916933362444521529280087940434614130281828485920028804187516321271794707028872561763625961997992842686925924004866098965997872511987292173196842790072175926967483826909419991303287866567672406541745959595822009396185887721261038256375299560073525092593740461310003728351895562177446452073102780221583548445929525968436219909313935140625980720894885831532038214659734786989114643362079605284529599332908071687747439855541174004115837106072007012460446061053575712075157643161323964614064075354852018534791858057554968519543833250864918888760715020588511709683289138971326089128395320708978276967142817984403443234156023527441863229782681860555700026195516747723535088784912296229454518603915778238779587242695056502810201967327462055730534347135585649396456501579707505222437592523685912845582000229822480116094049080314130314510391843368221321218657446528886587828760052794067628020215155476101546270524545752263561673312360094853967233985758912508188768876395085999615439655269678764292254581952646967109269830275899905928472343205595467790503885580577482538813995792047912664056724687887514775776861244097196957553050914045760590187209263084965411754649886512162125984040480806536093477659194152342692996775111062529101537011275786988518168107212655950116790928160246893999997954152225538726075663282977889456422007420503690791643493294344303351367283288320881337505815747365353209227455617041040886724792651543961984689480399704905172549874460577544387633296501463738157817983257967356767083344771553998534462129680852329820091075894707042427069452372393425848156752642343021554893112461194977053699347057002186574828375726188018427466256820912633087651555132866316061294194684400097612160264371738186548307183287525034756476064770118950673887645352828006353825314595667033082206493185864132991414539712193945546097678698427434215858611901513549157654102726750828174418328976561687623976535779236084656995319683821657312554183120038413427525342264098608800379145721926157042500240583547705026257027156681136389201912313588951354804778037431620365482881205482755260502270539432734998633409691496325047371256798076686852535266604670271558667997918150122222070212659030663912575765734399770657080526337680687955287674286573995243475717003949511255197181261805259294878479538033260350041484806787151694533021953449877593059506326718066451041629128422856772811577886610480225371774683607911361392425537085898164508722669249412546457938575265426161994241600703434734559770442095948799523129536768419987812667224878284371839694286299030224418156826133683825133097573923368242875355838026676935432795137858613441369881974266344591250696624288597857604256364994990396769574251036537154798200216721747294998486824907969495354571599036838782064492328740249531779386211403978524958951045665717613406244758483009932173504952804367388587663931405002470425047843628453834114876126491597429365807758374634273456183621970058317887770504083657219260065375690607804298066513018486599122544094353119767376790727831060041895170539007680124215391643604951168815858820752128531406100275776218422075689618438667951353538866183001342035897583352698004474697241793810683318782836832257745866014047401204825088521617348503449787317754626948263869334359520831060250142314907724542757303372215522300098599153161279526699027512086025029563805595172060568193552756423143386197535130593091693446718394387913486678141055208101545565247098755354084144246728309765384274828308067041147920376412540531736225439658562148537847235414288201080893634037388004241283130018090241531174726202692071012046007858771450711287985297688128039372140566055677622027364907461729855459297627660923990420751115055100357903669963801568190882583895721305549758197733209007808520246173441080805452364930090945662143952650763478885850347744284384372509842548419219150607559499502819751336292840973223953741486465974676455942075055218513222935605017729091231722628831385837465511721780364584184102124305528599055100158199705603769918724516609156405396158632251373274739323617940299667317057044414169613131356260303396420249189537695785665022055563030060152494720997297397455871590186534239327031760506062651456643475632802920715702041616072940118622464429137426514682385025050364323366372865690306671195179000733507908522773270344886819080564545388274643307931446547197832594601380867423323936237239981822699842479090876134197766020333899788773090496025169932844520548325828422718361584005865380323773317240656915809029654964113682915057010547517377548892965143537265087640091632529962840681773003434170082383902579877895882101391710019493978652451703861696011402199949039679318795936803446064593568687059106127113550084180896137535061347879075643286957471253294302795368153882821782056210413613356736014485288147325284881352675423252754422900530080544926639997174995797809930636219313866089043048437030659443693051471104403986308704687363780691088833222506799278156086140800675050904063589393337558377343839833141574400927104702804133543712889712535297617200405963849135507764245824763610730586475338612794179801709111158686880884845245277570663114768453143593447406494601954042664164985156967371152284211053491125472680465110440954471044242028123565817215134876449124694435033356830781957655397703418298526596836204235659839506080701810997313968542810419212046895650847378638448471329796050660318433375352244542499426485888179942051130345174676825243724203693873128976999517678471064803078097920840559761889699589444553449510640750692601159352169740921954379332817509772251179794809655852798399610091472854326247777175262774968175192862171254369902181833742603558884302688085019363773738730987231219739805597381277795763226671318376577835720644887213432797930930156659800566764343969005318727036694531761739001362645326523027046953660275718229260022594084387786301867391311525017247735495149070976853765197946211112439835406415189793881167429850534930927475935586416459819054056505507363751499472967051122633423961414686244003111833030417026409437196440748021500580678072017825215506697462079874271596670760270244321449514089237512278796848077489481447872492814952847144721632608735612141289944981116629243725504801425357564511934551320105265020070481466867927332090033340418080317968585450765404179701624396730927547449643393254603631542148434101678243380721619833973068057066144057638632911297970173918305606863643386320414809461257374272899476156730205842695167876915389001277099519147182558867345091861733976321654183836981418955661323535879419939154354418351929228119486156274994326838690906506537645012184895655109168218407416955844872681711738749760667203811965189872468477353833992553230351623518647509006576367779953869190104678343088630344773917037426200198803901831705460663823799979940487722443294067871328419817507720689875555007785737688616155704806522113275801202285767929794713514356471539737268238555196244071864485171295578500697411101476509790650749988811418081962571266717527287783955457457617925227760091519456253357278797919326017640472323339032189851427306755732883974424813548500029516144473943476685748108810461801235476179829651658605023820172478361032496109257832757813430942165814755212098596909729491335360451557899129550083111229912825898896233699368752202959384349241641644070396861854400161792550451905151575924701919118672210375486519335315760009944434189806954004123713401199891865660337232047261337697081723874556122126879712300355440041512760405910208018953007271917724350227770481687484308785265135101158870807273440555428654944568848835699707618389407850750083673967946066186614383837859952017951349988077224317520096568584131126484408471327419340610871349403850364316683918875136794648797490268642378428449134912507704462240712581632678049345501770048948900695801100012256777577943352640569990348803131071401424001200033574311535968465511438232487338110212425850855766933454425142117437187617875845681670724766803733611778530146893736398865790889011463939055902114003380671027308724888149030698616702780403432338455809057040315885275133536676060313740954119346924581467617058839610862614835142360632789276292690884434121553916021296723028675182025013672093545987005812441164907835599401521916053620220753646811417948613503339266850790679008012764815089121585699213147834642677889571788864188506487244485100344782895799977316466633422462897362668448280116957027051580913652355684247075931798533510326404594324313996819080499817379857093452085857619074749789885938874380381527237673301755781890545342811045888984187987713259155762951502191247756610902366383458103028565678422534796870847814055633597111741294154454127877044817555301401848095470825250096797733317239260918910942807882201144764110352463322087105731604904420118745970545288266035875392100820735726235014240418460665432786998257040840484849410113198990447933339571002773226713857257920838028766597545127953396225427508493921056338725581655741566042960289552841800260018345002020211024517099339321682842695124699697945321291904884765935651448049683824472045920633871209311324356192244297684942635225170651076630102430379197551005728420296253569974870372248780090654670576528125347373642843641921240754678320823520131349699014527709547929006129624558239516189226801775374687748876525222831327970426965525027412721040933472292573867534434710898364570370792549615803056773854038538288765176279262553824172954372061483798987481228479393530612431086661672810960855957358378951451219718533225291681971427891156300882260979846177336685194192840644514331130797558267895600946516219936306936730718862823625010376129957766789469349904495508180836181953861286542303406137704316102966612218533464917523118410416521484574869252412306930682878036292727415309041868353947393580332740318974440501265380751920711406063818662373212741281870837049695219948797347768196332386585753315444117028144487476174578534994145282093472067727042267080945989576211909313659375457589274344479908055270273930008762886932378399515852106756942294122059968682649908954390124660518027552023046424065111831420408287199318335897345254696994091827560379930099695892749422527331908181431582323796377989585069769796307158376951605469987995867178530717216866822216537657481896521341656235067315722549266045750984312597911808144513247686437572650094977968728900198322838847810549419270087444922798800178943653287911154498555223726513162679446822151606438876583769938387968857816061929102845851720731216067612094142281518323431550042464901676916219136381211297088132289875227401654374178247351557090326799651033566425752019718798749688273180720319572403612830823970585608513588966000573861860840561292994791990665786586370105534782027751296683491554408544740605762497996364963067147814410913765200208087641436372929541226598076507367365597902783781941288184199960012623378964044301803602349858363380920264751773895444075569757702208172798489737944333544903606166834934100748798749405481817918109589449576120073440739810294982426603643394342915139540935237890651722312219435125280934379125834000895197505637900397780451869852264792631908180195301842587293791746185038155603516901699729872477153364358019727946382468324556681565934639134488552315304279470515308737128256473408971265104472038910074339130938202052280379690899631884803772414639050127048555143035387959442717248419282590281851079519275178888057945110368838737656510731228436488120634611434977151620202404856068671834839039664995686500314075901937590337527109112098288223445045908239412607531202983774575518065232435792693377553267491007796224699461333272973761201727041514342145422812076903040321039998520932706620649741749749156958649254271888190285066655897390762971350997680322349074520105934508032339982938515019816232394659946666181949326108454555092318564105158584988115203226767073796526178949167390916364932271323151101166682197375835011117580280438780882070656461384237620468409415715036914102052367403148443483735569072615778208345604259321300812764633268798347745960647121903540060532554470897931287544725054836798044147753941857103718954813557535330633344488767327179538645575211326029372652699452631371875624416976725991147420568831118296661587690086246624498427726014985156363990539471873436525136987676092464313096247635246887122892538724219568006251884317274691299777803665909687455658080846536885522428771150191568546860424676798755680074085659335271265470539379291696597610165246613636530867568005407081936867843989968299432401994932265015227345209907608856151202186691676224932560031324398580368548244802167585467564978527464350185408126516843932003947491960217514256702381219897104016280779224524632705198056191521577540548842090344252200143785710748752267296416191146842492821687631355648885933564233631868592375990761456436332569840191232404314177580772230199570938503686760146682312998518716513149803398329286783837656811135725926065782571910096043129234143463147398624031117148056631865513672531945237828252734915643460729717231921993076493528056023521419482288537574701183858215506639266883856834504908114734182862421111015578095335093457747719477174644748708941874908195773937921874851505806698309175391087308957274388484519739406649309709450034212866915579242002446421016817394233259900743420925983558926014323025275526579201826887584302676198552502485017199143978116194782481335629512849083373844969136305217086816023902542285614272859683669266944219509057834050590275219267704420796972850305283101294800689650874941115579063494905629311643414016572026721311811210117070931924784318858711527352683507551463149697254306956857076211160126763954169159485726689137884656246232617993189663876736893961766146544950281131293638789688038162299230702646386216211906624262991617756878198049329124470103940166184371369505696652013099088944473131268797353979221287220121522727563914620257068850069055601962568091628247808058023919197504944596708592753804733615945046019494654850167615873068768002654176152673110785542704872744807621405380970541829693793855178368008910778431727754682944068543549144463303917945360930599941067380213839193549778482780552295155637003813611952186162312473932629885154990314317761233638029357611258064571595149746321659286187380804794186554168472364830327524722746969190183473069021053628523833522473337849839588667357087866033375363115302437197119157692213417074732811050529363117598899000737071563856206399177323970200635393148032427639685012416691445264405188137505076056138895981227764911025558137761690201697891945918307501911885244195533841605339351977991102847898734958418520994268220068941219952808278347577903576609456260086712456757589206041431404971753679429510091553701599250897079213932235845077538940480851711131128716704527419336089103988149715527000280767473729280166515958081044019154598581750987616257894168455523202506564921554376491656223474839225250968699523893905305533318082352115144361686411936271807549683292865153548530133673356578510235996223566151799545337968100959665758786653878499742966551196727719795016525753449428650236758229149660727199880416716413315024580297113188669808657507409930518766865602399254449248823471055659749065357763002632258531226551453921464714090194704495879432017471698013893863471959064515798669880073093347455462303799401452753602533364143753373154692659502734886674231732978274678170003806686207829778866460030269265610307880859627738708961221355845545272097641258771689129416227118033812349080238177200773346308040135323350014434644770102077226333018819065448838228387826784798612236033097677393950506802948548286036831716164776277854674765659199942610766725497100217352568757500355534250548506757177236737267578076011506523273961518666135118054846401981610525391554196701545811979081592811717577954255740613784673086492871373516809433796411455144854157327824150329307668285856331307932572068954772480230324558273880850908623637859521574223862640335413857081363888629236497333319072777514572687914480886091850883522425593639128973155309270595799153290125952463411951307982878015048497794024251049671091641133919377447564192180576407814472771333845286754218453104060367169974516146178487201209683109201601143303571810697461784900621330803706123583972531934329007534408578950710891905370166695685107858341864778026112378156527608768129318244320445824873023510802416412663633648781668343140887425159653005709220967893813007537347033781579307147885309507736597640667304953120167341965904383922142976102937692871898159469963697803135296070952212498470543092880590806812521935640054424274579008186607177719688725990164327247228899682467695131184078171255082054040871642619455564056399095141342013322328527371183792741778122517140957521008483946721385259237272955059446263490176796397706173068042357773627950848038630677196153877814430988135284832034364862267634454346756014424067916657233119520655321569553571020844532557315131879225523735915805010522938675543237906028700710156842896339964536579059749534224617475641862597443724956193297621355012931812699839131828352479579155848445723557570950847089052994009853905112270212408123355685573309771581309278713514439112174469583857700543813000694883937852806550443417904282551138156270076379058144586010414236197397470214548958961815875582319777558773216070005308912795014074254489441768954142055536125848651029650777205788768886069645639154120582655092286505371635651966130610869745095184410045111808621427141455731387797446305096216875574941666242607665062450222985423615255174133062990953633692474309453516928809150583241634213530525578883677606898910071368252217491622908842199841741297978876996252222896261422386611528623515124767345599481223995337385134500544686047331584700976952135015582961200634528486975920644620512092810004714522093814134499822126901182207928713621692435714296237856978703845611564836747705709768823564787465080244128918963952812009548269369878020053696451925002700096256767748376706207971104436558386246158379713990572225102264692683278390541614317759456071858666591620881159011647454262624597873684799211046267812527858368204211303461015813821580147613017228294009448055667793277928718727172477305474663296849367083605438845034752714618186262326362288731992126106050670091160716370834422403584410631896107600717818681921405747564541174180755469578486244072620977747118128208383450917387455699945716320505400565911110899987166625688385204347931569568149654730264594847014390638868387907620423177761394030314296935752722503185696415029679056750375689318488051640646431720301816595741909814124039627786266930068186250950116452507515045098325835750649505945390492150622303476811702154024422307781239042419591986823477263863438878831303885971472296482288056831565390405488858791755021177120525659670273643301533555094394977937153033444193995759845274181795269163391645907789755990762394717565255298439527873642116478386956252346974934726303774140521488271913992208309706912093320649331585497443824070240556172676352836528818633652919262432825055180000361086954571239321569592077236436355373909261693987266192324486920379212334430857810701605450783946645554159375012293951554398202359960794801633992540486594729293450829085171024071544828377953872594261256516309278536689208668377217460699192231661029498940264565392342461253955535378888264623323044349208662775347227106653835125494010762417532178011558045217448721203623833545093285403858315626880150729982793881951676470296261365734044016759946278822074306933383759086690634582430372706308766081096378585948114635821584566367668315878787999900886687581436550448616797150673383711821309114818398331183786256237897411531713317848925752358591953674416645566351640534140991671026964789062185064603286417694882255784629886024332389548665355607191254575547979266126053605989993333931741569782661866488065042589802493904532200427109130345186014786046636162285830784645791555286276561336819916443773911643953877813003947963466772722561679800541996556241230580600626477643466874641827367227815634255973273810580241912782262353242691732479009654618165532258410303776352090147394281863968324074247275033383823653975250690663520391170183207476072334471212096288268667042312407042884859226128764794607211877272248192548822400744443733693110536718323667951277311308701700489224239106642855207355902078720861420978900860546598072059645377330714665760830374880010375319043285261074653073115730318499919739205978362541600795094060706694496941548304845873267982085403811838335303183839369962870230527584637670949909775972389227072015050939329604921804599562328910981287782037113053236186904066249054093859285634185551935980594222095777949792669077977050854804202810630152931376288240768214479053563009521313521562327203256894804764936083461892088243629855263216640559115720298802613938017330805284701865498838381282526556764699724263655413682603045652993302327605372271591469632248389740507105533532986272542435130358894789676000503586466666111220932588779310678677959795994637247376393331295475831361628942036163438343781598742223968007440708121179737184164896510963061652531886886455905812374256017005108209794856463824138670413247521206293252493104056326127808028951786975247738743611906528674432487583323222513170213071279412692894833937419203628603397992601201389821969029254824098082001677121846278650828384729767429571091861107040248855120589017193770719987726659195700376923353113812079791266465209358467619413315679115575442472253692962104664998953913332438729815207196091298811678381564215552043116303506005447911341250465049201181755575962153398661300436184705758630050929440851507720968550131134697725655233508144575619879693929111449067539983799543055905335662616272893583645583077604442775778938930497932961441724324741062156218442395614947388297483647286313708050098175750286595170606081886564029688961496135146200591240277763400997820001206862856702715958963672846653570220065994634768657342942475223886142540380910909239149782374734147124338945986862723454152881238078546933478430602446796110297397951379984218823889566721430435196580478550242589991731882494527261073499057610723549235548436968867604314803634357731389938036095409429152987235481211647060527136037620091475178879401926186694805782220679070195788291534473879136854947822889426422826559044252556811167577308474116959842645967572646080355287891998745988810189045705780234103443609834479163904457970891451872483284523079596342362082584002501566354563838282410038962654605845497420134757628048740478535201533664137434350396854938457126486292157005482830872902068004762693879353710837430993231173765053512187380154905225187033806531073046226294493212721790695363263066619665854673626539299238051805993167561633520666046288375638610882738466184608802440956741182550586850520826244110995168846074961974961458318468224367761137359198812083107512476620441950742194689447318525250377956227778792530713609706507507725507420348561375200297947473812234456859422152094216442249724287020013132444620036659182954165546678366767658815813599254015281069190698140562697913807262572859876112164449767892359298297251777556049278602707089711319392584718025104698032542925372965479480825747373563321339550815078283779377450442303322174978378837277767440958414938222388673706795452554340341512602372119977979354284223270796240679353986273227721875346888606161220103730759334291025496549658147281452840318393521115310839488679861364780168379367925548704572953636972091947112567067475125191916172810637501591400740229432112932365398337262162205366434045710036320734542293572430177104546460193382302719984824313495902447809144407663428437777857526586442558053808079520864096657802530876149036245555321287678972480429114846873700350637796751508826292522312815089769556850592014399479147169111559412294452659211372493159705080664585958986652481225150699434494425721557659504229343724495297449196990459636163561300727496250991473466148638656219379587011113848747238613192012291852795316527428787279128680372088138019218636310147912444223462574579505186662169660494302640154948214044804293005318166793386055425113772359765774611529056008216459386137098403929365712463180033604558160818728947450515059189315659261703713808764703937613689052173478790225558957387891844741523774591617532763942918366529932459742988586937821780452271686370653621381573958261107096554935441172055352894658991279633534306425540198620883608546741345437199127897895750893799804174598819829162571662835275760292462969120458555189526197144296995356065528318719762293038000078744309842976305713100732450053478465824497629482116929075022902174494886357906498291290825554972844994589746484958165067204056985464949280486287717775641311190972795132100794626882515360527739463097090698946517576696079538396344144627920360524242060682675623831332134594444485629555924589609126393560797178330080354813937031936556930750763429238998303791534692428167922738719422149263070545167007234509138570222600932821483162538486605778884860430108497298313853690699225260929220341449171609871398989419110305610365718827401423174592749660901572247179803785688290901958091704674698866596263948558955730276185616766439328579110996608729662362880380455757260493006049710586592421005019871314735476806365663520455566421712771953933897034351996524510298871416080885418993561080782367034559461528917380776084846484782160023673912902633287388463159791589058246503498465714890224488063942001662075895628503070777194485794400795540627495918819788798790094290879595454513095537754004909419507698820612452087616506002379927004272096859157003883140521417231210384709883641478702616943236610171125928576358423698489333177354827783941767528562022371683606397425064579021498476373040857828402347749009828896016187638804766926343108248693140473813038625220469435874006254623031996808361061293412384912096344561651390646082295180873244795885480046790966144585739409835940586950848005673058634216274561474351248955036323249838768678711315358678168622062198356690743969833226784898668989660855210701561713445455992454212529194249038846340225422932638255510495069189221318377780735698021593338103705482528403212018217327558428782279206049190960692632758928158062000391439397023341103841369223227804714683540811395291345573719029969901143700396426026065890452598259920764233977399757851290304718580816317635503045380673242609896231842817901518530225364098591154946975149112475200991765354677973185996166670315825893312669718008095498357909662870341010222642817245321750714708805347297105678083707136081877415202308356359415364567553487338434702331633122453265167643346289826385209285624480224109445185290704077023427816713086012412623830197830599859462886724706046558276622739772575377829602448158181694319813570488805910084772185141625734846535065062890267798720348169025899067011900845943131590519306835687493764772121071384337167820590019005809981720513865385675726277677456523333086001454352857525246848669341678130263639026614883744684330325027113706360816776329398179487885727198456553758216994263497713439729959781244277093036091455216946771115241352681445685487671971625913923852702287332194063097547250483606924361599614905226075812665650631536462690097448210390905834868531290295767906548807470315621444346438621710583848726314942846459322756826469484368465680013986008521377328271890594261228436235506671234420891585943281008003935923855915831053015943213755796953148223796017923383223419042873419231046880949637345555924860008584848299502309918585586443467172745032772335656295670742671545289700877623939691692297408734316730722842615677522531181228759923073719800131989558931379248022183398775389238773794734572235331606379931979249484209681024307367927136283907872241606183028333548833520947675304800145647718401143573349643874712905337228134770029803387890107164227911003683285864909883671564294840141308270285872240507044290942324414191011805637187294856478829777676451398570418651891658064287853133746974991079515205057590040872461465609782635174333687486795335204818985100253664520618838226622993959845684019061235460563224299168569425053998839303488421907592116319861975350756102209188568328843653679320021648816495106880871030432379732248145960428191137684103775004031422274724289067575223566348140921113365993828184631264474262798844683578092036758738457658827044899700202917077243830740740456032049371940562640787465152644895338043139585501232672152235958267511495592010393918012407063817816744265859979530985676413345302027488437576125006161537591575120337961576091788363332002450123717012593193337058692896466137938514702998959639261271614525434326188595350050427000334616398586150173491609640638631556699803117465386966122473008239211066187858665694358110115088767722502154083984072889617087985223991312540032808431813126038314762033845429684344219210691861611682947302445512338861909193982395584950352281416303280293224981354609476578482407603713224117042282073154249841698913144524284661172987038834743857246910619665209081016601500709901118963224176231444689920613793915789600604154302268637344658778950840834483432353861068236141949092339096574203042632440625266363259016513462596498025833107602474258788899534551103161042636502849982249804314588408653403657475912258308826766580964999936827732106648839255388150467704636185439430184740066466809551055495890997108948904402294006176838487978430058308970907989872524833431432995376247326944258539023000338535335387982923964504396189475284031298884662133451892298706225231039367175271043648931356322813609664835749906129447217675786581144861519004187139290992683780977516354374864371006769499519213192756896257879671456187487283024994513994357474721141112604346386340321454242571843689099545953611166220298720832901058369804567990044448998612866296775200579155975049211460215941355551226366193362800739599752090746201636100881978728313214781170817061898654435387815867431168997300798704445970735697367980883919041047645991433024571687992283045575766921493675276857346665467572563645503459154074771473376865623525456451833908015654303816687141169795045145059929056273452699274054972959169129355613634025775623252775459531903456673044776115247913721586218304224768343133330405347944093186041722557883595019726698183830836471146639347956051261084013382921717130327928905248036951886776019306153985893533964083130148620517597308572540169195121918621841766541094728247317321790591800999657414718794642430243299779911988085510037809002323524653023778015348879332625758847928589001737226739867396135188116643122934990640292828087356164257343756270653308263484619832148506142932437096676319168433852202396186438138205226294057622152768810296693347276594878464450837575482403831778212516265723151683204893224358576193963233328114474165608569159908136541799099273446618062276155606625212463772679900196238689097809599155994922794838940511992915006250509147297102422780128215544414129253001400457299677814133582841419014586244619527414695891919139762691840780519727369183651984261377112895740348667680790394802459641006321933054057983004464498703394295005393159759193624448126766476849232480454633500755216157161258430209069228872437062948593542174601422975443877434721539616508239453086981227837329564801578559425391875139204594604435517174565832748343026543619326597394019314206769505586130715947126147686582008265452093552216153646636490885355285911360718497516717168493526725852086525311058933145831018034052475923296586982605361380134351685855109859605543101662565685245592116163774008176058648415849369336990321422125126590993139981164663722398124407056559426850026121782697237472870854995323094492236107569611945483446297653448211768716919427747372163906302326976014449432116248950834561157749285408263511331084783934927731077972973982765864688575059300678080266236115770092283520394781164437205865699992668397421578631999932273207744739738892835907894595272712752901195316543698297998036071510007104634238275689894599156614559013290465981420734615329304274959567915127793488866766452135194296237960972934922385029267972666302568184835290576504789538372813018708264105189081524719500540984082144728141190126589319164560805937100975830167403597454216557836510292330129504118208687363089211693577404472187822301698878551927750563545388119663347906959358354281259814236514780506676017643918589305391347445302037205124041025266460521566014930053254897241727107393350943799078620826120302021300796013506109563836677621242063330931837632257280090605791299092499599506475450055753673525041293795375506432004224467415069701343893996637073200779068596125390933924685476256458879933181106806258614986814009282776213575969224234915804110266816693326622687529040583399051539204590285401084033846943544429627523620647833877851445477031686199442278832376355978531519278897299862084587817176458708217991425059929436084929674860788022496081189907186365672689090628530875172784086843278118092177946333808328099090633069449286092629478429604777060590080358992656067212605151273073739564155292429004717929471054548458898907791449861517219384724579309601030922717500438188816661003628698065417098034781825330236881950266148118816856259948087669259051584633799238608183648855028402281477944664957779674273164693534482270839285338602131872489314256589682145095557925694139790561345704777873513585368169517917031291983032625659671039866255552761616976006220790284520384208250243162753807866765010935427648334672720730750039378465571148189403663145777235240178978666694323360153052011822292075614742067906698474686986682270581994010735814780517532594771438433967679861259198638211723951437689551707080388860383679260131488368116744414744927288649073410588803067475192730824177671358793969795290408611939390613265809505764547121587775666930870238803867345575038869232336361235604673512665993077399481895696686720013580590810130542492846033993356433611072355309275992707390630209284059696821023651975709777509864106311113648580952279676749467514371444277564765914723881954197479373517657645277263453919362662157027140172103065157236482039893179853326146997793400053408013896679649463516042952894005809455631739126034642530277704217063211634433405717606129160434533762364774727119486399233244434895235880140419680744358889717539335981860110853616501179180465637349793111957391978947779949990043052740863163361875050460427283311695631614436155038506764783160163123971263996542838918982770708585469645290076988415505771678298938190385058486648545600191975949612066981852384163866596501264432666865812364024449827854424288535278652972804759496351832022767899935103585188815542871996074203240331755635961776405166551929341290393134622260816094293966822426432908043370201824963207363116776155587002818972448897210183793630258941745366100307193168608410727402786584953390023990536272434173333301306413399212523058428360013140884828403428550510775845901338957041617640722036831728051725502181224598685331231765305463664627331709638617211543871199609347178794741761029202226603357293275237769323419930782753205819369369226206017992129007215807813988352642540756658762348927842007035353585632838878055316380539737528844740999628953494098543798484607320325443294099392069656940519785798699143558424211942084894172149932245817897272499246848707618445092277108733164841139284394070319184365316633105354231617924664550101173641132189758059912360249976617804060008844113214960257530923742533832598527346022871250553666110355872306583431837709671338767103871427216583806934880110470926450449338975937841875683400739573002474581760363586419600425996175350684058508013183392871287819011965673709623787135313102320751287473048464725337673021112770390985980985888052122093373294957831273837632653461232808611936699409651153498450744798508805309293534235810309899606332099508773429801783036139342972465645009162874622692539878006737899594185369303787747183856452225385849030449313927200865812166113008151734152785729361949988756829061057396427298514662666205509254515905439092786326159817867617660678246468351146204724386115782620264515181603562597211037170197715620875291440036808475336578036743167708250700387580006766317993854175336358936577701824148439997128527634321249189662643612082943351846831672479308794643919670586054547500563363893463643344702817549286904452497486004068032128429100043814214171511088616907652740731406636734142164700163428448699801731957495838078231135075322543255143814927501517951878586945858985013584009483580844952162886106227322111404613282701363775122091702592370443288485010318601911434969470898462314753282350429466528439257824320628629417242908506223184171074965002866233571133335962920681151309760309151920418117736728537101399221090402215374634747501451069269906423616679477603016268484005688459068270048047401474794328622399781599894479874748382604862208477850955879338055511810351912139975316086664550217002870641735236734239171024439642415654691431581214066744041916070160706817563574919385800800295295637809191904768448807624470737445236673820528737250068156445328921816564909568259869197613239450841490667848531502758389722201283672778217658986446592396097292772479120874107496468306075551473914284752605239613485694752619134556567416856261663604252034402269329177533173415432704479354397335595268136345586576089721027209682551384933887064364521587875986694601720673372600900763480587828268445517195107546016388201132379325773495163209483518001090425354704894803579513186343005976855096195136229874757322228420413156089530158084535607124396553677361087271073836532541869076783570363016698552425236064386261353889259402294525823502817972653432308356497044124157619478622071812981072463368867984045966705820143356673066197854541130079423374240032281931588877413874360117289816206169644430238727510524787775105825398266416769858118942531225560864149250728185568820868811321044365115680029633690778227929729095657566594989002624688393451255526706076111164755952145567725606384397537322124787778676539314491404531785444739855731521404235666732736538916455744092352809423345995874352506588314269155381081444868505424398738356338008353647693829937408256218274635221447633958177246697194706354942578590244022390551648809428912459186188783476683318169492039595113124047666936609989223759159277698809677004722731987234213712640871973184237384779014747948076148767312841707233470401306753084199001259884378097546776810555062342639685262815885153971844089866090080045950499185430591072430949333831836383975331904781084598604874989992055620882836334951208738422571638162797340196779972650008129835688806238499636296901998913956128010795779708458117430684212288827573050867204819553515429343558704777448421199269609570676207109007494591628411997256303727096967747326614846414543334814772299566381468215963432369587943225848046432210443627184678913874474033354938053129537247396147352515749811313629731791692625336352593981218070960076775219359564357301178293733610011390771409698218358897505856834517177798147442090884551549721933178142693254184942203914046856691897846610452734670589284465829918664338713939829074585713465776167691372110530615422726423542019756273388747530669405541531626548507208915820523348289148574143318489834336647980039617439136232557399940998576730501176169049812639553499299719054226583565105887622723950497135453664440689644018204594017562667391641644640759107868434151471758241896718156635531534782397464731452403222781516526681334380987265442104897456925757065733561405076836663738353439296511737379551864222421626805522477865619117602236167675835246797191575995846892675106878959029361036638831442860631545732078594874725067232257418381516641600386515718471366465400689762058791491886238168259325039463218137753194318818852470898119720365883324532846619606626001222985757975044440241396480477788626924930985462317541873793937239397508657912956358264650576059880966702624989222529232410397318207650382631613278754549403498244227094824195140675267981755199837709939684032593971884038534587535643217581381990863485540577116487312247864689343075400419909839585641747802370034539884995411062535659995800751813348470133043498270747009524293356085231169549020686271670009057463623231803025289010162375731864564809689721846412799763304488854707095651986177985256306321618692784082089875460953610300200802466640676378933294875295007613755134750145802320882073058979198849755287599229376865032066148592709611404648614644699359090941331548052561566912205545861713839584406998087053952016702578878808063228320720342384818444030011785957917138768658366249728698913605424479480855983494401147793735628065934411372767991017963251919029726138699088849728441003072839318301100641748441058148972296137946602499100292061607522212611975479789831605252645296450004428660778035201156001769046120935050283382842855814034323364633931547319999546033039390021155468802510870996192378164619752048449138896048310398761540482064091877615453101511085350239612645223902362937970853961968175313504117007425498558997448907093309516947820591189551530829515630305250317420147122548095972607545521035596146018445136875121090730315842066482172910125866474296147978158617519458182851141775869261803795596242037239471727737311922083798113163443410107915737391841289705742156798890662247417649392754964664155576822060188350309191283522548343451515992778564230202233594686637609025825049265737012353448823623065085278105824755679197504245467089859976332415917188879235489839343006674468296136135289204069385501228077117159116141804522780686222156461950537151602104606705779068544343608534255143542109933984166011610966467398857039739811457710946425029619795328771391926759288265774040699746317441593764513539134438780858684605369780469903532735069690463730264424992318741880237027462977868163281398321833614338827226954576350991389089898026064549434129771113220803109510590551179310829878734580278080536168289655478449231542229940544782157627601314784340597742939726067825831186125940209000638444751550232163431793249186876827199150182945996537215932917582171698371354433941207276735063035328619851011205946382249394704377119835387706642569991042845613572354706820684903498888372200271627463640164710018035220344648203362127610705772910041641435658865992432652482457023584666188373949431806145047737095424360401109649368915841846999526555110528165345895636197208283285981896728523445348782487184731807549123685747828935353814830855647407720900027559494099125771876480034889676688652772272601742315777787278045259737666029279494542583649992251404575050734291031212402090150612222917855139263405635562537683999981366646177469178288232147492627451810944553842032949974747715891415165111569653420541017334847104294492831698798079707576552608468774352439314723423993535023445496106532100868183548671895983800397353200829130561564847213471459138095434116752501294039534369735223278343324944905737603069092611015335672027836530872920224148345522117659191622760112681121091862524986917568186001717867146397369885625196056548974815438557854822608708277980453155391563028273209408925703480058319654245363612372849005413922316552264174332796310991634395522500919807264410180204110264091520963520717148353882114269175766991076207602279253329239623707961902239675537541671416776655180501529587818216339601365266216638030981725323553014408792611503025852260499309341026240620720271707515240491819319954268355315331433767500299721572654241790374321363484914325163241737525035288672772692005473363117131521640953459841900048746204282852456366173608912656005532480869471300161693294599507504873594309320601310335285871716724824223602233041591938527989910335627532193884770537383602118150909048815418278132173466750230991954138846369250056298023424578468462831016181022082298993993188338216119445073141300216135293202660186366819485728540002064705620814460132705460690297134358716824837078531541836839362672165324854868762061829370807914180971256999536026052907809098988754499360245846135629223294562173399033536417473969514867453276062619507565454927112404239866919231192079914280017444314736446954017618897497478765623482084375725521249204497233059008257244007315109202576393965701063062174897102899037832835239087214002745393311567660684036117374731745594861798418698739140578710042038798016070220088919940498887810894584819661315466288877910425394669426388882124135856419728243283116342045410661443971303262652903023772060600467550153562792466448510168069648665892758388738542008715796498603479102261772658398894098722713710055972609984639456278735425112763594086890462430160402737030782751916995071289845544656080727335157070832549813302220662604325314001282263231344789658487263867512931747007487125113677131522033055633606252081712724713200265462873385294830122016455070463974512361497060276357487026541203945787695889963403766587850075991287811603750979832284894358213603714991357581127509169364370268115827874427762636277707435138172301603519785360622728529160687127522495024167096023713796117808562390040197745856529410260147670802249885326726915890952360522509539681994748517851470963191690131519032758663999003244558644615585835394038150219616545760789351217117379769323636341725735108982049060337999777129506165698167830726659022181661694194647294589442370076962632672457031357961253900701109083253678834568021168494474527775352975496689688934006654596100147945127143312435271633526796625555958034192740882533967502770939963893178763570213024161395411413459213354161316888318564177443465370313862933034014533256387638435810674735772464101593598905934706338889920030553951745824165716683616696966798383244093198110522690970213175553980965987492920285690016545394196531294256002232696095020782714251919433168605503689184575383593116169188736063985844031601271560936466738626710581258734499416737323586974899308745425776355895113993639272208377824994894892981776491413506380248971229885203923394582933935438164225157855223572264929502201359752118170876847235921543063959114916562934493735921283496414900760088115178158752198068678688263228593304825169604725558470218790407392016403328071281596577730148032746322397332521653647115990759779542583085168741237369114256031307605558876223916817663119795593866696683995826224428254990089888806707595601454467456713991358963201320287737435589318460621791691715178989476047381732932411045388620845440900890116419228106752532152110135638928392695317363618189276392583561579069704009274102994745474723137355944608445035030276015754004423844430183103325418562688045578846621065842872200441172583380412141463816807478764923904467311520685785840119736335084784612936968194353572469253292242199423658852102356572486845858062537654033867167874268122921501831221622783951691324329909970367462185545529609180950528178555919923655084165584104771768049174193136864574871964908501837106395281421992655303463542410333849332257328866159696436576150965285324675295706224463047881684105946559850740605576361533716878634666770766105141711756416025377641608215904852725640849753635962490157898270504194885305886889301075684902623327759519386244397486948439134125946904958479621211596596666839798045599132824289561086534282751458446235518312358385896884272131748105819161286298265362625069602828677786503588010112539551482130523504570181396990456874418328506955242932871386917835625420609066135722418498184522977528808701823421231591002922667790059128838293960634235791870630328747682887935172301024983123753756291428511057914967800608799404386439021142364161379845629176981209701862733567811656450596208992972780118548737717960546037048786104540870428854396430324692599722170775237817348315059539627249335095778263886964420926051495393843377600950708896891403231337501179367872331873792740978735878222189797509441577446368821267908174040907381274040158292715329181149098257621771092550593071543056068809667454103101148866907474629520478489614858080328733995780106233516005461569684592578448995973699121483969410297732328693861487827444658809282749395203766547669069354294962270530263248488500473377135881010623665488141547419927989088875309733693270038414347623759956419357475950364845505599884393094035928956423984635684463310353830617029495066507698255557406030733921744579441233641325884698533756886995003021217323267811844598956415389390308301023012214519222628148881811440462458951383221666242420085042900213361872841221088754622516498510219495374868270019438393780629913214111307515888860351415892842606141160983285145231456605750910367812571391475775577416457731651777131968822185361963572209585614167724685132571431598523248959155143862856187398004362568041760811115209847564829777223763440666886247072681422339361777169088606090335912916243477268344820999158099628948306579203823863446900194485279097253898439401602014353354087904791112762927263341013514908084263455763536752649797936979628719872601089231572613427104555196922637062282500354001906419716111604402145904760703428216845952202753375865244764941439759957935171516079235922370047909849737558868965865203297093840587339530793110135752962105056629495827523940666918006163857170130129333968484823968794426525851252296175409728066068798916856947778034791006660730282721247613836599008032427274553177825480303534438875955277225801177013748764061851382387626755408776018355522356357534312366482584577204870363584639813367195865008284588696407937045838521997187648703287625793061495770589296245418657294466908281965155032395563474355239211650969204394949202034932146304751308262254449111849417829780550500270350202783829595595607939540596768278246797967053247682424133661713226501122032111524676246363847391134610007755870124878189642089200863507026379679274074631017614520781384032722093552367543054124750947906953201559071243399686430048855366183935599218206516816925785577025863464472810655284602144182303326560676081860226777089808386978785757600637561500067143395373416966640990892266626238985434820416224891791105844336473584046245074598996650925201467870466576501509318214402579982549767026735291677799441349064823655043021760166913078205500929836234257553065207755455598864511477731207884714469849014067651722961390115091015905231563069716181485748336396900440150177410281820984755529152458247192522136585200024925679205393977881714171764590365793736129974368969577009206292358462045268340313841255312274733983463847604247616390718301468945440735095292749099745146442270576347374227168162524607331552074002792414671012832030979879775916008588589455820641173207648554203762030917551579683382100712136135723110194394744340246527738324694861479173744768741793069368892238948669083793681195260621183171223629606166134576563452792163374243512295093264902938891493233507579907098219635066552483961032759948876398736201273943429663314041110559969505536064190230634799537274212713108988107474164593895812031179993370850919095123849881931611750328176349189574956553848646966022874433533604981073101263316266308968500251733752609790006417393308518964869337209708904811107978523223829394032650698524870955426385700339010058642944337020029642465877005989607131891128347360608011927387035544522239324238282871096478869485878482448078476736192882669061987707203912683069716668750203752352367477337535829326450479592282029664536348758673557154681464149608007095711857171403505597079612611551176675961974171892586295110394819983801189001225058928949845753277765335011763316299125251186156937943671505865933477046525737332861461773552839542838740584657121185587775634698928617421751692089710812466945227361805891384445633841307160701985524599090451102487080813788881201910649064990121661468364586449720748278199095773019495519916205153758629289982849951927511471850378794308097922711074751670114898115831131462310734548461534149863650338857541582922116775969714247174612984733323318939502701456640874212604985599555310632286215946014694243436361030221478886218786397393453875222321064911403368711803593602495659261194378700055451485863293000720684388939015122272037447096730665125646546877515916001405736603271623590259014287757237047755189176878356910988810234177476414917011266023416323549518077004491060060429579683343133561704948223025545889910720016716637921884538922229012947160553728575398244875467224305585016527201427950737936881081872793852004940438314916893705328514526964845686016992278031688333187043486131076657767549456042054507959038674714549562003561731079353119436335785468330236713497897365088221741003074869338502827048642981345715865028608906074690228582422807362782215428829945201466672595570192252213644360682634070044027907420689144707557028952036658136741029375334448695935592289970684900352096069482241516362747150627723767395750958791528657543182735445536567967955264853427418150128275417592323587703997742093309482252508875201705973464163264327316505424285049801230527015859469016760770518514756728407507845183072077078702665685551848302072872313872605204450334082438365536411075658252159505596475421281354814127408653402284189482982689879278521483114342013125708079398694480978490549844535644111984116303756568843160028239089910168657375491120836366978154591191307933518432603226500549617678008470597743401785832008402801643730901396187286046195489859376457059225711259761641337374665819173640658628227265113367004940818333804907146297977317609941803770116044456222664508471053581027162258277514058885444720142663865620099094642019788543318617813093526323194253796453591760771561158433585224305137993221368412301810473226721273990571376034247787346386257077470763055894224627549755526311369883604405266928008800425731444777116453587902321984416716924717131559788255356740546529012815369947197126764898378772491716191411445832734563979658985263496773097980831097674565906199634210207995860874439012755399820063300027253043174806762413130827775901480425541298489930825674849310392516978185847325525087370112786436687331979916336799349175150168096867119131714087264179626980969448371271078991485034454203126303433316457210222228840015248063064117952891091930568070284380554542433415709007403298633698152125221475757801935024272636178979775032957203816476203829755087950537269023222700391150263251089026706299916873163672353365522185681713651927381721526735279202664384994469555282479527580624642846971155512047814643776317279379157131173145737619107593229975425056717726535522606564796295967210166893130201399042340830039994134933430827841130752106866721422990065114798591662518282023603902887061099838679182805059435604393708091959969785128096669355548656048248736817833259376131613262191822941729729193366367153051775427315466056079040291259460645592341640943732003760697428649599350082773150825865808976061713956741355926015541710288135783000518156833030125719390601316283929975040988279513592110004687943218347757523099693961182536427955918548532170019476532766554842709469487051938402390933750449928393946544007581430169372939841285332494110544614049243469531990976641441106573650075869334327915566862350387898369159942363698715042084343624113793854281292101480307284159448250187573876486248959067303248227417252191856925785823607239865682742795034356387714602845036291050949494535720258628223816735547731357375445387767819947401937298987779322818276974521303184736998875804482850535526598193996441205946483176152103014587659392854834541815875297772904179479119422543300205520101057905317733334539099917467997837768709562411898997113727199819182822014264500038650365272790026623368277613455422705033195026225094816081801690252875911497759554783611654472240315998692664828526082835554578318797188534543203768736016734104215685503921030820319841138671720632329154939597020051791662579381440560908088229586744928156591306037342062973756770496750184312533772544985163381446764714629275743188925919553821387291934047775929645623721088972531607222935260534713231266865782216267461126525674893365001377359987399385573537939672232177416172601665745735843836667984315999528745496196356287450934733123519665855335817793467768874793583137083020472845653823742864704141074802691024663076013829173677710812712959141954211087356238210583328843061685664659579742353039372459681577949974557280039284832579961658023299492922223111759360968198474773666954068452285169994666170398807930777882716693306706084003635421817640289419187158713123465313328313468138419060798314354328069379080882461471254923872656421477597719878637357244136939114687122574077413657984857019977861303576210244034081698678855331686327552640321784066123337932275151439051104698620883544023808829947516962465507844871417126411807199799455661324841625105747744610892286147253161702787464102401307895407111426706579958189625139331578397230976863625800870131880146956891838849894267296858651156634488493287002296561893857614323031158319135500751773383749285784801152552297298020029384557104739067213326365280312942323170708441837501837825820854446582815832666055874483487537348197938898321252050400464768814908136925786820797594731484314430284622982247039815039151077547532966627455734423536372193307759484686368311168194946389265830131202497692489131472449601519533933310671165397171046839136139351195009463932222526036354727584926666549133830818678432811418175049556573101741570450533069349724501043097399083989513136146019275552056561355831917895375996218091850290725868258952996231966493122636700887261051266054902101186098746043825671037066937839308715812760918796553814940178825223926080627586986846395298551379775832061684652720889417892429639680260798016582334345156327798386912218121940572258825307539490195515054144912648171388320427669267382202112019907419624647650793105001442942085774015660832826558611618808950681116442629651925802182203455165168079752497631321493207768265895595367424824471507072640019814120285776373140664144967962211686381644106458444221099239446908359528458715379336675379816115119740619795461283321703344374916743183087189565140396130561314582479507102468565189680288870177464603434189465207559914499468697655626265659120366814321495282739359224288216134509939350538881683388616240054714274294977411833281439569361583041221207365140198557382202248990537053414628921756639631022283794398564658489817432529510590282676506529938090373969294166825360578671530766770458674602214798111198343171735253335997154796829041772687273857646110791153473397122570226985067918399924855789806333395394644354715057009482050557781977075003190267692420161359173999654713999459438492324869740010848188797765814669883243531250085832472169672544214673816937667532673059709861209456589246288078676157432275715618595995762137386412880235334876006647603982548649980313375704434685194808477800439999101087825996894846101846653173756436961603921494687444912936334582196562649898088654001765259796631111654133959677128839911006841485638963294902356705092208805846244498708921129696158475960945559411033605114825562218466020770509363253940561048941446598076657466718949120464960856190397058764307065145668830271027263335882353950943362518058599213648719740105213772421042607946057990393951500937603462433810078095522770095474395728272260321158831954252625027377141414675272509312198904096699776939494618661328082376547682588170086247782558311983105220185810266959824186761999328351571710868639538241791259005704110028389637533571398768087051932544009914651594327060691244049074618536901869529931326470689855613434370370001582971565809362064135235105334803132340272384516591127733340408794154088238954045456352105289429527625415131100994291974937574033041991055973947858987877527299499737348031795035396959572360584043361566276122001513376342290015626984373486279201044838752649030409058444220737535904777916027308978502969593046253227486942424927781110179359792330545175805992027316266422330074531025753984298928575240014185532693361547826210804344533157060632090032364193269708941106419228917979543326561634167463404557711892655177939363596149496356699968058421788590983409074743192359164980286100993461946045051053417234100588894065409808352877537655888797405024814681315690247216838773462200578940448008868293314593861062081480812996191303314438513065183437164184347515131876179816643669002754471442696891953486710808320197199475643930805959241028388291715535924081095903098021365543104399099485562723476640207952590706641284543281520860089211213308225652468683607631084139336521001960444303655468074748623478586375136051345866728619230245156977495953192205145284097728339612116435099759791776106868821131030113079367120601440641049454778727229252955154029244312796884966737060605260943674041637583312807247741070018118376066269215244728775332971573880543499195268151016340799586423291111706160885506715986083862970177614590889736506802422197264771900255572745551877308618754838136965971482409242039139677590433902526625436098250006907650350012938066083843329404332258100876242010532703794853824136057272707495550193941854152084765650996178395677118510485031178815189910758498067802824731320011168254262837488544436112515590515773509443589972653947331795019240736021154165263856723862790000771517365786709821967103211362987143860407310659470548833306610439601185003116045172292563725023785644518386707230513775905832722761945311499733571831902662395515352590830364258855815661158612692411126845072883843476326314665139096066181041527485934690155817572559244132907523167455144013585289157230868269756302415381634795237587874430008167646521211702079350392325235808838228288447519053338809179704775843810406715772532970604376968465580746397153572287149667618944525031471348575885320205628948855112985144293064500030641985901230540444473574414053656936562512807140480009167227046018323255151972698363876468843865892960507487729714369154655587704690719283062333053414552927347033446070137842114746264745624113357442472423813000799872938714949089455835968292028331249300184644223430510189247527349569821346482798313686776412023891940005267831096876739880512272246042830326524309959270227674572723010213173819269020367569628090923384243260924482960263197214719886534730530675681975736832208289933570922939118192507333302761061274285913749175968096952441528673278165183242357346122969650870555872912833842574499338651735388522717719577968529242077169313736902976480181218924027456732099150574715367211662963879725646586094799167352647727371974049978466722104099442443645212894335545213301739893702817991440357141977179508706891192712400649962090954825202785910897972635009913636080303022884147665885122309088247794320037970328485908065877284685646321937790773768721793918786552673553016220463749220674772049547180992172548158373181647392409221286764388577354244932434666087982218619673707545255315111556943924478153329471106468608510460469001300500915592225657384348679703369288736657867728925252692732342952126413636059433951865938235830067076448896781428660160066546750168889478503516460022730219423458319909396069719483664802040692466723803698925565785922949780399010825075179696262707974184983200007108754150504552086717767497842243852168933503139666918618609029554690694689471485347581322845707277513822530331793980044738365330787769398262608684230929050771272812980115181991431517747463437728420485327777892969235154222409750454839982691922538782322008958329761235267139764907037432589898836947814279446299949494551501152216164081993495360216647958699658876173704996425846232041230471865172982158992123284129042232925401111498401867690075656906786313912689716346789119611429358938732666231866865374667827781677548001104475905429798353025799708361731866941476049625888365124630278081526843698137779609532336653332192606516605497455951196769550370164893052866191400003599496095478181982335521600093504619786295696187715156647132925373114824448555814378910975918927372806011675936242211893872946876982239168685639178522364751633021762675577667538226934743580104663494177737276237595710702966610811907273816544295062518361855538499812747102775533814640209142854827623837812124637697197472370746431698467770518734627959097071724819540085863899117370710938368115427113119727888883841435070082181754896132450120622036192289755616157043248369812649107531190400371246052068106883632650759459311828870841903615150642928738059443458322539580886324714656138324910140045164782656010486280224139715616565929302097294311270642045359306172071794709424204961897577963993130552417303855243848881338606601997838553853563195001472861452446270762617105637529076327952955133159021458868050582369871371272773600439225709552249024688790027277633795882328303879238790015332446630512129504217728770316631612159498518872129934269748764967808248299179893006524612372194166048748560965627868633371272009940488089843283487994720274728394552902340842583125112794721435610920408850450598385935039713434803956150602534142049837005596185392976563681741663852319829838397450347611371520816354573633079510847588444979392631292398135201377108157457346557315852298042079609886667856409337759912716197471802939186487979792331912813034519328254932715661875356815169837795465782449228900164593495649432425242327434802102692570479955708003266948056321387329619855652562611385221254934091414982462228632163236843846411049418046977172502305181402586883630817424491555591000941343499960851957987719250599739075689041016079813282880280119572232733245364833209627024247901312238891343549884324816038307531770302698416717340399669445545540675252389233315733677415353944261754360612652188022117210530144384634570565611989166714486191972878270277713763134550155749520300547608992487006063200276901017714043156253520917355040490927402838768522680221777965179793746404988481419801629507322153063685031770141582196983478346416384689447163197849179725285871211102215782768514751306770216644215433629386274344015229723983100449700006311499408900520700014991759951065825200483422947098047663460782185740665969481728156349657752647325686961248861748406401609364097243192732218667355455154509368317511783560557767666173326540436768276006972586634949632678998483130872023347936907542412611983902453441998418415212868359150984949436465897323525319551490667089332113366826350069925746117717295714910336787348789159886551873985681499592788257936674408468229570159631761426820740296319703749511090390376665397160852517228308339344615187151088159720708569230611964783026747623026508302919308480980053594499161329370865334020798835116797735254965050277558189606653116582223941961893131996682087221330138815608878849165447560437367492538923469690455725584678694396307061311731837845137082826381845089579113090771467902675732782423386530777477581384472645198901538506372420863209712799240330396670909587202094249404745217326738987522628147023902823017594370686297444869721242340392796197879601246244731455813781574693751739787215849370851160354528352913213447265545944127223711496466660515045779108936134088481889057556947417203301483088583008543295641736036201528862823008475285232406944910843102758264882914520600278528369646750192642564103523513366538228037169867815337527747696437261457411592927007094356692178502101381190927013863711708072327054377533613212869191231375230919943142857638187904611665534968563499916142294989898485855898033929480632821531044783534231002309610233890925573784066017879550892143053216154793383310888775023522955423035613609749122761641129323949458227206395575819505611814865925860665500698838608840821167654671932906529338722940409551967174607644992997018144867238767745414871883865453440931736244025617925153847568321779847597000389842338029812701534975779785976739003626366394607667365940307532080903272151032859621428236146775304408028978376518940699875987343872622760349089893221933421616791741564192055236167159389407430386588858814552786057376975692165773303269966587790666256194965667145484785978457686543534116695618481999608495501946766468680223515165958438649336236429738109499156564772625093898765520910297101883274649117180889834118167782615965482018902085239944954675171617969802607789698004508531166419877853609512655832607370904351290339563946773851654201705956022257907298404554659395394724533620152547912571829687800773007322668329578760508247370587478628437789322915493490459042696710535905614188025944566424501655359577228778559424508263559338428464674317015089828622787635764881999787003605433491188378790438417718427083753091678417366842434782109200037531338705187785756566662704174406310636251398479002669710998042493530329460353784409872045742404991267846226142723342093486741716209333004113741527599661688189154523109673154421745823782355951469483080046204956166404521819624451979795568224296033043075996358291544510974164032359642444466790197570985916720505524535579964702968329651163715898631365386242191883562793229017643146630861722170444086879498536750714752829966505947520802256410536252061993490546569148759469764760200939428376258079685673667198741035681067685256263301896266249598833413816644808384651461890093894099342586570353738389836811891220899678288956545787430071245354024166996358062413644348648705927857020825311784247168118334787033991939775343266169661283325635471644369803539865285000114682151987433399885347855079088059172271552759786324962964418921699208117680801753653132590493079058162503013939085326571620798905712699574253065783212819871110803017474034474756557544205207426577502706502609310388245610061929248844211161534066337361888887363371472264619525829742058861565713161376266834879011815133213332424528994330486850069430109533804610728020280120943364707777691271036738055899537320174366128715110303612595258496247548757803784664727253815513694085464759480422203946039683954206576106004983788083133834146357398587497100980605194473858098946751699924053491722223568992008518251705625461831171446170041381369098869130976330484267679678589059603254198645083289529469641473927258500224135962632608318748032127758006557640434875563365559199735308908194956016417689966894706358344361585203464513948496900006264722643227705711093486291070739305412906877896827259736822370165042397912622919191864579335973671414972028648164306323439778547193840770341798432421171121322647202211670541522582930249371093792770170490399485481465352543064641067828480793356021244876797977685711983687698888146648480807298974830034383351452331037584755768286904666309103842261534686538253979664065787794060894384066080093270671667621675908660489372547912837718300935030964043239897178457226855650040609662765056912355316636534870723626887009537909064656069460845104492329847467424880784394140075918567648989208740050488133996754129129142563501308645423293490693476327106026520243181433912010763831586517372868999648447448355699094832808706161933204985273332850691760829279035296607973074368141431142301072441780458309171129554457670428187502134059234952438076172447130337086010839764790208225124206532674633081987855676629215206446492840601216003472073967845457356972748906468952067578514996250439142725450297744966447390793603398247849243380010361016006618067533249358364654129687661501737832276856467631250596268499175683484284990788629122087279941601088160249751102271002819472730685230258668681060268063050432823579869565594469964312458542067817298983824857831696842919524570603805576899933003980805989735601352204419909448317519980405840957541767615855066266783566262165624950985317228932750585576416512919219047627234059624075689227922468470441912498361815685086566782995551670686630484060641907925481333186854768735728779409084643909393156210684129114555535994776209654055385469181717495173312582940039299534138735842237242951910003707679825443771712822440743011201191774423370387165191518986478473024753620782083455168327736292390783114943943142069303455937503117463736758708314074416690338127866183730643544500314943308517836908480663246265362397201286783787939989831065492533036302906838589032478517488076188848178196479698639564129514365525892070841157290151316722499388657650638729545307300271087671678476523443278289667269121959033807161014876007887435455595705984427583057732300451884217052255784803953431795843825719983052043803954283288995820451921409048766204674535793099750373943976775424426393990558892475127209330525324724115662855220357907194744388828453730190989879392301888995945626742755898878307161224119925433294042553091221719322413681080972274385060865824186175448000199114023120960633719054385892082104569457448556830829888313286173689013306015179851609699086020031721227914520828537620617379486077554771619613294685139418274891073895834837641447233492807301988562031340126095091152546970754068455120636345997852928866265484142296307974424697023719451000520594804880795716110634683989077081034885450178810828212464149613056165267357323933213304215366787944387410487568121925556309943417045991437770104755283872802171458015769592914688861233597667808860918175776392280837744199079091059919684328088398461629829959574481908210030601525932225406380795236332730811163740758199566068816759735132292326922574082454881225710476129556310675314833278380912623952209013517826325869973264468687227154475507304745845376858828668219897310966563112613882578658016567826483862797035000180578937301362544533168343071799123001891049169067907235379999095718800301609521387101071325148064345592892160387428137784717025610993730604481553379849560236128808822445379224342605986387690873330262701275992382011247718427446252226195764340954470227162561571721662931295097888605808954466617738467110200494215378970546912046417497892474441153950328689672712197544909082896489206712227924398265654255718277734024144232431994720947070397249170589618597607173156214824585511789838241265899060987020199190231279320252105026446703583186200255475921109496239512160202637281229478930528363314704016256547318164429826812446066789837572381983828205251643821577458391551503204929853278804406044473039612119286237240391479410710594255491662297182231999339713678177812231003837555629358438103024842835982077513274475866117560458321516573601111860083353821834729220899407660647341959131041465987863051569727887952957768622700492440539543440470496251674390386657065459160014349997314108643543717168993690513660004521847800950621147293370985731800947558230874758889253376510021889127358048715020158564412008044367107954617346103290838253376923767653953147255267733447204644816354395128619726773811651595418911431515901721259020191652074463027079109448853506691064045867006073346009371977334082127606653599339025120540766696011824502719570253857402562571632039061439175113776670565454329254245068585692728824399457676193902179203988625354545280811971637171036879770276904431418616827486599078057397716410490171625416945148852555156973001270847641290348217636081662642347305220781615205882665921285732686156127439295384533853364843035298607459270859746205931131941426905541222262569526923401931498857661210636379364529916158764153128012624951758555705931432636728907154813177443487121031230558091538641441380305733135034097007780973922086630892066332308901111615219209418836823177855528204014274457076414494943347374366744586932948991900386995920018422967215252534332794201005070367007526277112506183212510613793336690891790571336620566475289232074983529287403445748223362416811496601030839456785357128682219426746610423292215257858126532737826617958316718535303959709412071109634770923107026478779013309186737607467501118980095530160968129228004368806845116903899682088875770226954724251492509542422897164288925097886770587990252926574933702183565791172838815784707080591688309345393138299659043518151614255624983955857230574675786440481121636623841250023800468356135072836833020418521527949675351483827846723989418051244488824143237656254819464008274828586929028543864049382652024609815522321722976313622547120803376568555092998375762291858514405663138813793404760774475644814163835237073392120524353083358812991149189951851179235987163401567682142875257650836816964680224155270971724743660683701605735939432578637901614966129485989769954869821126061333575115102242094167170274669415730627424491373240294783777129549421256038331382939771486435058684563871515654600107083035276701029840679912170900390494028388975696328879091961299969266626157832355836268155151038546285928291788956348021207986975570372618152723881217979490188320406280183025252003096153882901324441691508031841709598226105357562897115304111231748601892558788330237950275451085561392272184649637250935635471268183900366321083928052511987600785757892196893809851096438208036313935353979279791296762282171710914596296567107638338268430307045758339008617446614547074455989096343135572889964097589003201034171001372690353110637987960096345507569986340383619316491999932400686915974761466218654843839343325800837663072895115792473747833302778835872957615181335527786353326119888679425154031908350168379354691540336854093168538796772653768961255654228202650033287332865739804599593401814111624471270781509297605455325237990410264831101490726570764243701344278334791193102289660807673061058077059286144289798758860796602786052845097597243728294914782857590775468007200243889744722382656461018774672418445638053327406433301157559306047080628101199801352947964935847051531750320467953513893946905169008456424521267650648163957674293382706094300015223699796476012651541198475042536714673145397447603298114146656600278487620072247295764965298011834692517179217357424236911603540166194661750055265718758856180012179960518116724795324506870590776613905656944310068197826813266500403544867376151637937484169593172832771898453381812213021648903876363616344739194145550730514179795432891981997251563282949339658552890899336640653587438730363199746035327959505658085914902540755327089875464911549704087071669341163969468559166918269358229255913554173034603662734597929517561153745117644808270906788135873496355854914976144862305555316059100823029247297556642705643262078335768341089446549284595568863645281351641630767255960928536958212704472328288126948724277753019035327059520713080230161579944724033473544437483828114824538300174431719377462208792233898092031098796149583849775916921902684943585743066743915734508259884887009329206342662966361136838173987225142335081013907647684913035350061116099919004367053280202632332083249004285992814764230953700874930710942411074223591766266591965290919743666511909630415922260112222520743951092823022191526826404144847876508460263536919238745475087939904931347754756897239708747223198435519077321183030107055105622928763594050391694309496483337825052846035340793846514521364959996091699349748414134624022952907673031495912253606134854386576469308634569069627283248733485948780841502654718923647561127467480905824264757805663414086332020795088035198784963669383758960507442447434130351153579696707597484914051495779383302173412735697953403779193337542346905630473790766051577186098491171497597529172615888053352317243812105586946541872163851737994492175251006702331569181589504164921092930215908428707387256521948203955698355728484937841786704346813117902832013410403498552761492321072800088260994994155784303365439729319140193615039293855405211424076931682873804105062048186955139167496029183960473746698827329042856602137370089643283243874943757793794262954818668012684005103241418426211600213804266886415657523948108135363457968340311072982163457046140606294631398305607679201259372521119772807489098070990395075922945199335009469360412790013837580061102225494441241233052850524643640616941334826620005927975168049203015322454229887859049698424848521911373909902120443691090168920701039511435890792229162215528932320430224299301552733530644023080008105070439060956185614675104203235898735809238720864254672672356415613629460215258196143440126666809917491570960426919080137599364436790625308886779969948948124806929409513273330567761321017342448288089967901328959573892530980456207606203899814466234804810278764967299420609370268157080854050746964406382765627524155459733309725554498261358517245733701111239960702636738860900455758106227257563181730534588812892680130278191769895719246183961668369956667195482484413086777891542175016118223743787525709207067122518330402524223336069699845287119774149106614776006896428377680568692374927097643742843713670002430497352608347854750018799857786299245743304052087882054998947142765677345655733451005286889488075751177573126478797695962131275350288526527880285260004166018190674317959426382032277405130170611937789665726190561615765315926342238488884061626193830532181585725726987439201715888694116067964848366638488605126363195557740182601956414768079521442021445831202588419278997404611633507776911768192037838267522273391501655880578881883376729620921768609842929127276775861029097001122160698271121033417122924161755296590949331777350441277103519793270335382124283653827803820744030216804748681949262019197565319174105416738772364124484322066453369486358218558028255981016744409686894663354602655275345273788526212848566730021628063986319646186964698176333533718547097790471085715103185745437746237772354345900726093267821101377018444917469692646560202856405013246529186794011259247200921585877968387584546362048725085616206414157222901220609496504187690135091078485815321424223881331154160156199371410935709032982791123749426058887580127344812240021332112621363714116043188635159627755776227888411995467943769343122450826182549662983383576265888095681072400341478127602178795816262648894023256129404054875304238741453460474741440038617728985874953817040710819136230847394067838557298464176124408593072105657811481845886348974211343250552711772862643713988452206446952309526990868239369457236977584688457932027459810363574711510050077846487338732793960684775088536207529165646949805849465430217879611139592288417755526573845305137636397572099048603144103364373079183557885348617649397847568251555169749246095990151882768802916699258376143700577529907513668567228362293235491890967623212200446113126728202266884636193650012445575763679712589709194661141393927223287300900150989791223049523295840466383268766565534793459967682889567743185245808220108367971200613842351892712657155485426543513311087451103338919476953159073857576140574194632924607288014341178750021427346205995954614649514732846250503083674853627983244534524677347519070898205622881603807665557845135972039825699038573199040573868586511998246887515915297921773503945137523870198981917864066183890027998022819841676764958570792203508300974047991649286125345591910841287005754902703191808301592023413536508011177683694290573037895720524675591931236941466323808264156385952947469838814438694263246935587349241598097060140355524089635106522012121128316124502141469009287275894546466127022576456516376936918135890605346839326466511165066131110737173522630970263105968403544964507281906512342004219630118290676941382524786760854647702447667515994788539518042609796593418931196381386646142758453178996999045794607766628792731592900695453857985576036152390484252833031694817046152093413514683958857206030702810017477884279504954721318098561171407785206981773204084329177404288895556920306797357327910387585894948766554659930731775645044337888563678100743112234812409985014461390210418396261155016327277211171086494457910487502846102531481531937800914085167017492557539321135058535409123554779509143849960904256266378150393659989460150467870666814769518535398098698612080118105508380578736139864971179965184491321874793097060988899764867074776608183844379116392335343085999231328764519497877498644491642701338295946362309998740325605557365419052853711610172702075435384805864111352639778436296181617051873450984019203937979000347460583107109754552580045398247634608778889228754076698588239324842488507805794610310973932852142280538144485404099460452222844408338231136128189418304633740311228225312523156193749407833312501846689083345458934465319040733005892805434947319570835151993082745816643965208628341578900076722841522684965203323846292631972033591838438124751347946240416453277127346906015644350107376306756342989076439673316712660937119813732630428434624945585973762597989728564968263033348798200019537745797510259447175223061941321202487658463157884317807376068782270230761192929949255595625129731071774604976514719796162662605065358812140779911181312567864344323660873993200364051642791064789635635529142217736046994909188480528393509059444195743020766313699806863506423258669010359107980073349016739072986640455813669919462081684951349921722521041540833700748871206392231855388459689054365224144884402648625510308280871695190343225185026697866864435525270525109636794107301371340306238219838038763900881927242473502519935643859302370219399473007777543912740326141438827062256403074267893442618672755124810018307400202802906226132391777811644872259760178642190573382379537547281210036979571853186875224116241237850653938968431132447341155914996589086990345568909275504350059733004678006847897702332448682561963848293343034942356829112137004892551519068147852060884137473400830574109975158008923629784819656487664304612302355422519425509062662759511364999882714417782921803095382283455570416512716478286262632652764374641379850857382435200613131108829380741426948898776191603900100301831975595163689433339748402980128171018776915647642667276412730818108848101882707668925954858851163510492602336783968031590467205788527652640927028595728553123660507110572763530278157552247354072457667258276232779935814590913086720579298894065513696001103690264686803152668473164618970269041221893301429700094232829090176406011580561112231650331553390358563406694624800624844933954677935432129368140154170657839521004955388292169678330882138176757954714131750186824916719429403400236270090549951510506624429228277982142470856479298749483798425071651074008108486933751113849976899715902649899726549469946029269260486416495127302093165652657508172528362423585760783273143619519798323988159786391307690317043453860635981304358873936465799577297066661282396453312395863027483472235561344195166457777403390499889217846912804676529119477033467151696591141604084235481161610295988711630413327256696759920569264353085966001410642464603763028392273132033637727677971720497974434959233746016356506645101013621896334337028543818307960974442928546348317674402629260790361231210546247676724064236196958022830068159286947094305183691205523020435438771622945381201682231012247322978376374525304118750968129335435100238692100888845677083426205441806750494225157977365756768062894058863183253531902523531702894502052970810829569682120670668332803541185620681414989523131115209184790893770550470026083787018075728070198062162841531616963166889944983055836500326285705660229029385533389742724252215430360069397451672889279175067959920454082114492013413214781325052459622155692612540415817635022329898466769418840456482218318152988669933394856406861097367779006101134541942074532701256084550312856962048209339253608731673504181670014425448457158978048558741701651517375101809259707859403619724460337648217471382692959577915783473365514540644244759101862795296486465413060521050003948719662439247707403363063178216911745687304056115135634878378836682360435965323484980837630030774959115885786680665664003810987328582367423030776391693768175954254322871581431196692978040184739415988274898128306498902857458684251032622838150701414786637865902078258297519450497096010623903832503274384620250780059495368503372348532519553524799444159122643220113993608597709127323908518695977287400545754476589331311754117050996965144845568576755316357262293742430376255836298990580770230382566947297648916026367719297324961427290308941024817135760725318794822131864154810283777846619986641083755957326535811517469055408469375847715914985813868790183558754664624345505557627011226522467791645983363217853794707873905860706065096107704246268113808358146296888125943434814564932099637129801972730038209876755581208168731589394341284714334160388707390526261422552210936381250568843504485064430488673602825224852771579697732268300324027806054514100389839281820584015323345801012087358154683989852361905860342305112706117023861811097202974041975453540593243448566681964578117542143669588739935833849737792367024259254884667294390394612951885652504281003696023909594438587249169454400930278653156690969978725341520243998358549088075672653662556101255664496960385530367816789125516266473392855679100423296671358275806365025732780113411524429076532224967994974269277994493028325386571021082996198196051053018590957700787200549428004383199471486437273222673933159724216787612938110257434117071882939019486355538728606000978464381237776285378927558705755633832031102962877727801711652668998314362602976808450098857487539311613309658226709584854286107422419790858018112948796213073221794650675069012932595687421737683245904045616691757854564528098973777361587489391059820996346919304077300328251096976915131480269299587530997083015502301013089846981752810289033031997430556780865412154153462503239628755166453670631187749306977378515980641093175097340315021572452477379753596409496730684795604747994012030683614562049838471112577191823699316352025234989604287970690183365752349489047854400166638059125017651094958965108947886370933048660597335809747210170581993174550395556082362100886384444158282368002105671392851799507328061746396719663326105385467093896480566262344562807714476820020925292769385567716141515530684588353914343925829118707751163054782517557533503739094737190419701910533163057305048185417134148177431340989044125336544437979929491980065724633898899965629098731235384742413647753999112136294869811282634879578739907688864618250451892079937111945775697071329777405035816849675609450216853292528626217373379260839561252129885074657541642187255674676252123301316772565859665013565568913827477640029312130570247133935413145990680556576101358981023139082132824462043860935706501432725554068453844699516971428383425446433520196400377298353137668808814677158076400111051832264457460870118859483301707264923999070455356082841147036250232886982979510135780548286929715510989199974942067585612144931325478156056362377047065223508587798280687340134520992736992039926272461975436025987716275698860741299603515303318979601041349758659591109811082208046217504571555366904578790552737399379335080267255205089924383530437780806754146274082462834496527401710904578131631757923292234723456982037506010833868973987254158434772152123931732019449742554674473335488828912272491557191582959538673181899411717345336971936048164173929282597604663935213268347628252032874973852145020134951773182944834358820683358681723656393502220548424680091930003736209777938846971417467654214953677399536504839310610189301697533241517790984749532893289619681899299850135206599910896945450490192027033076618965360203153392315950203389736928418215368750046343406244305906345817004482829119240210373406663059402323384707185419604157114880022508220138899322690851401701932604562349252255170997945159663170420885594959531344063891077830182106601475093403304813620415769576718349770956826399830971148363567321521954637968478334955202291809959954392384761864282207522600711420044014529588558332348783579538166435198376022439982526431897651825815209257551337467664071359842624323288978213252399058339058142799227243885084002923901935843945768879605150019964374424099996557449785749480104278670717477190638546543981601273428294190487619209677089033437687832813472358807446440827814382011253256656444263310133235739387127772413058753820188884323801155869010208393781761774524463628757577574826589138046734432409173356401718281829701798296272840525028250191886714966402152019969841429036027224658472374091166244327474506645562156445726816647526607683915414705060700746839159991617528911373262300762744597008657711293303094211961827696383831926237618441710563033062497406558090184221656093000100582310202614245679032053754330881430218515107637534948517022922198605404394592744518371009105561934037161328010852016052524140119855667327590446099585591520561472416243604527324127451374576379281002324043197523189238128980735575130656059048444764470173602880965834907068779612245811424875092529382706825837845197976474518199050375228555089023029623903103529796065760450177347886004599675263809452937463785051672878972180517675426121933633916945364284467414326550725598070130618227435436669969796506606751187450011623879690237507974149576464172918752423509601617459140848432931638610997805335960883837417487132041050515500570596280188962994029943602982932519773606455043491301548467029241339500772567148734383436251092828640021945590168939466977173668254643110633200496111703303238987451709742184585936317112576483570002883048048045645984279261118753852031526158545149578042935993971498912498898483141881179393085403103488825760182038898296931944872859439370448846282098357497745349472314526222822948314198108204439374660136536782691996690100281290966576744299628414704092830157054017195005855570211224823338468311847230997450500647467281845847695799306280328743245025816298935560599342227533406896626390280839388375176405545943285066048272739679982868397266329843453975374724133789331530917512097449453349090829892273505826423034304334438293314906265198218254583132027999591307258098257392061503972218783691017590352202010541666439112741873026392433293638989152984520694749155720445379049223828128500559490197128724371646429627899313936405759932326402874880462426857736341294196192276146163158811547762713645040454242201045327037659168699047989655914471321610331813586894818232215310556053751071272858505666875824547377062886286901330403802193440333604042217165041412677278482300986000250714257827363501682142769332548829085396795726361309405998581791887492705230493347538877109886716885414301332268159733621092652546526343164993680266573695078612570405145780539056985433029669272125755361230520834052129572673022897648756336488279693610765785523841092643555922957582035794207855675124606011828255913857615379882139559654274952303886178769843911090720140365385927270400537767906161937289412427734209246564428057433415825376185666280272679218908614655873607076466815394944183974414350269608472048093755192738869631941862225164276970447648175578402739761336765426758537780647110160830872056545763911740871050153630589492766378357837648153826637248189394362245893268227644502859237256063699902930770911604843800656690486796705143157137403115640079880775405907453921549851676458422134873005160965322011101065182032213489112298449791590439811003103762387263431706606183710720246618969471807689239301187227592534198269048375577949165753321042211806468982024387106860906321521754877169275157097124339126085699396257716753185898271525908752646693473544953815204730661368361917769759438691419610844762769702872655032570793615831327426818863776778734307779238289271833595674741365272295365216016889808823193951229560474202498677228079910876375433319668585690202840572239395454748690265343010928829768936845337532026808414107974137460535978221456768837530035213259768784689068427001154141292084250464155892479485495065099146945674097440614285373729681514975688854388223313654881619691163166466938409605198473853409117087340479244130813045980133135351439404972715205764748499529766208311847561564460633257400995621028205914204994642612061010931204872956401919211805891543055487206919535446204687409734102685643245220169937935989720196916659566925783074955801567173756272208641119466844698603539425859532669360191385248912543404649046549554698454990770685577277029071957894811366403649372179625871728614133038230769791427926726513937822554445913878736915673384626794708454373262134789371361542159611747114586335627899013560749402837679955469052311280135654539283517220425940523235931785487297029257879629149944076241083628085083076092207399293167754440139968457553344848285569065245208407619116027006680958717377346666568125712187889061219168463698060497434816188428185036173033535964797236218541671698613929333803220076525383049732154992096489053303055913819787553849485968988297033202635060120402367272065122967565159174913052637515632487015734181273709475495208798307292646778588415638388834532469039071313499905422856064279851821998124537486773847578276850424525421013144717043793796722039563725834965371279433358233609078145088776146429795404282860812484667348030959188395662626839404100090644645308719359193707302090413252411560518598143104070911656526940974451294644025678265880322294645369842234025423508008630489354501815387906757422471791644096939028196923499183288421484808851020884333815523213970214614553917026686017640594953023124050421607829579171488365642241834359090096490941760165148979717615847703305078187899798671990111828658079245775030225364183759127336376760586856062806326447238964992515577129391756234313515325005254480702446973096912266301718569678269613204213986235583250012266418820532744527139722010581730369278850612119266866421262731524510327188464290898057024501241947802160112205322538904981335586444761130139348075298491795584246799895459112429884461377534652718233185940660781126643451851762600698564955214217169301826656965943231278357839011192609940994155881155382910094799605382870473115830134026293331561460797850192751767547695233600663954173622522784973431849479801482751241573452323334038848777622741450702593940118385709675238189751216880720313995882907399039677805548884353007489158733136509644477687243877268592718937404165776049986026031140265283312404011122799845748368164649046516819407686445299697985132058127217166956096948781529037333506325077379782576460147391352777678489050160579543738465167388279611723211043245510687466913431255631401742927640217717592916157018605351145386804683353510900539323970213055675432133856997569561836978820824581717256249286605586061497925094878526862175330725423878835263859943563285208652078921984419197788454060856263588177404317145544255389719328915407868029928837998481056647261304925647511494534731401950901083797506106548796793779777116619705272238465309946556044812756344626067179312513688754171181532861682317264346164964656415550023544408628185553325104797298217686130502815881293841996154518363986769511150006725906438106470825446976216481050630845314690041453320554944580402106173213035371252727515773233317643507332747022964888492030197179182734554062353634929319554823428328261385499113654642887296024725710755618528394410084970893386980653427466469659694450901286159756974129421407153385413441186102175799731719707224643884180935920243109334718511769474128294383546084658223119734287128981879574475287664049801719510202559337623770126306928624626193067024503439214984853521922689515467874839326862843163937548965412051341713057279745035417390167782709026195313849289655514675416514224930325822903630283381059108385051545135930838177984802394396827982593067747114397688578615064509044548619204726429976044468593863605070035211555052437343944099923285240215352495933451944871863922121853383269255839136348939984269064056768855897682184488382711764432299956549525978401274064668856541760268550341597771676597393897463991371122515170437687169674480210627300956248004120884883303676401069408589937943933281623386311089315778753284687324393574751820523866794350115740363200927983032353184394892952619297755820176427645489701041098065041099517017687110891757251820033276144221337295795582212058164073116084339162570249894004977106427413801516904412863605417595707190398431012410288885063655118714057327029790406519788792725613145922921138548039813745539669420280464558256785019677857351938280706658511619941264686393135246058105643424472692923187235580235038519723140455575167109054471207108103131348055186322628094208951851913805652275680698667251083289276114269836675649043114546327451073688818129031639090898162944294680869099480218107893709137903017146542218296491759761424676333450880093936891505114163009386081423802161872923550508193848972465739585918298468275177761111893942132713138195427972569095739200820960042578025215974786451369480556444066630028239714182070609359748434878369557067120252090728224769117333952684392689765959835387505708899831369012883678147202818677124121631887044525162687908547553899393549055937742200614901295985871549248864345917176856928938780420791837731828738003879054641172991715006047781080258102191487713825600186296571593052251367449134399026101555219473704399146756778364184335287113294696972998904482509783971880891105035757951089053040201985680439311192842856736838669975721880889287280853221764321271234425903034597766307704764268711312445662732801139865805561250744144763630363470181883131997118810439800517345476002876683425054463860058345605972094735230440714613653856725220300919754440337696767025613759818473103159676168590331860389644818754927661062133022695997225264115968040836954074454784086301280521246535346318157459785573177231120622996765420538096060208711168872700617762831406685494238649473498138709024695150882818976074018001823006063578174829828648512353096661217999219526910374506094918461929535478947883360828435463663216779646162333774507672733345704295397011037659275253725091078511202236847547805878258960468886891086631207876800771088286213087198313811828192710700084405025780292133754884645889416015339224814097848745922001285074959005577779271818143748781175056249222620063042693061621400726942295963085747467709519158204868389541429026609928254186830251842662215001065151219822470998921166876079716942394363930680215770806883669917121990841130103147920382392624730744577936597795527015865568463016844028128824434274649293941808645370215774978269096698058811769035070514582139699982830866817947164950287141880096236099992501616335384226927055256967858899302023951739209003702334770171189616490111732862550221502310036009356475453874511752813770476104389887355422402946019387544397584859270042388935748094607935793251401536881696885423609089550813263428970019059399175079732077518178499103040825558139094874627220881049562144068166995751971196021350877828620304911790494122588739718172645540001140349523927187714062719051497779431786070710395314622270802753206927303551810293327683776490615491868284296191815263078083144149655041555900229538689106558302380179439341556712993085952824087759374415372719825927103637456243596018247272405770512170678411910750743541384888260507068973193766793317312555990357797693016477869399459245740021449011614349425995532493217196105835234922031684371266408882094311452288978525329805896953822138431335574264123140362360174099247430790383962009821509032913022838825887321801777599438334077342686836085492452352809819918851372498632757265132932642009334153583528991120484304199139303602150982973664165177914039894162555414512829518926108775681677094919129492526284701865886967480604972574976071442902873272586209247788142882600995335285064449379288499307465293815400045995923275764130014431829161488666321930430428324620983876112986910935553816792199847985028732710239441222509052016447854846179825373389846197217989031317345847851158245481995471176643620194754279072873003532302155882980750389436551767448212926926582522045859792139365826241516746303632423547056889390828429767023785554796909372238474937040101286319471954866744611383868640264507169039931216600192742902779259964440986155759064597564911195616506473941481263766187435616467463247921235142325946430014340385439901839832082233482398614123798419704461787530572239534779934846444516793580680503661809644008506879792592431452481491174299031193371856387230673337833473979638748548348014637881952733589881210350141774032993991745128292003116857398547068254965293462308112110755242204559445237440308491038836997150138320356991235014522806775432873562549355030917405154308549144629396922717952029944972184648932639962196568018226354035495877562065737515124181898506332508581489434568591406833653894653312276441957439790031303412241783711672438000671871636250325849853061791431012610846374477928149501348943428163006460411990082210172742970439534726440772485802994235109607274950698324082379083399734013317852392813377066911300728719415529337491037258544007986176980443853460060103860009179705003432633212965632941265458670023860048731609135697706163197573887037953092957097208330637060571808315776126214634078414427083375013565547407092015419971289052418506905418171307113531849006671762971849345451090884488995592643213689867353906142739130675727962053262134833430368738400842988926005504972417952922009446699266622467765862000420455516368619533996827093046372128986685668731421404557917187166064753066714752325956898675435615759309463210106918897923341643486669210773074987472195735537122370462181752237433720371011255922773913196154871555238527458118811618596752056327127429015490850878283629133399435684588811280426510138184333284371196915288879726709760643669343734226493443274992396159156012056599553721088367257121404823093528052679122400664768266678896640379710616263907915497097399927994027536232511756563987740311790172723159607282164541132829242267000517940192795003981886467376047960011393917827889815693176231455341863358289935387135845351511013728630212813022808220011143338159653363796854926042780880292719977544822857608513813530836325586153271535015029600099695942041007459007986399940297034289163105476564902103813731511820476724232422787173225522552499579650324754820623089850280383215678685222850451850824361433789132806744994630101741222255999421405617868778602563963694639639890191242292375715718940705271195168794412338334893323139546886916852550075274708600808147630764056851307209829311255893272101460203330177033865614762067668758595589376887891806874885681605174403098116979894957160325520204282575177395322999459844363788453251997093090087730889505575104310313008239857695661927921812920686456739624542408006466512695178981854695866392728233517558013764199064815847216951357151071064143963488487309849213999469871523758633263342116716451120332747291841482002120480441309323893257404708767498040643210302331581354096033690965822952362402081099535080522876806021901646384944590792552631868185608256683876757889845910515775231856331575825066198521867406935437810333296824147835749329511257666329268792686138793463198941198881294488128477622128492266415567062095567457531309225131168960405719379350323829536753793219162482657540252160775735465970850917816232341640992635106728528460413089669892757279419373242619118319480347225743255802885111367966944145528639824423218596146085826752072487740467580336340076036641183340506715422104448905000254542767869938263274043393828264153015334622977560140198837041296416881902843552384187761466305549817334562043882555379201169368954923209037359539961302097383408408370834056463970038245268997534059005525294209824335617033358988894039592783027512841104450410299461508695453008082005593857722859219358688582285641744565469811609642922377866027282093809688294694427838987687141859442177997890736283674890783636115341599274137948941787147705645767459516253393183428410651121128412059309436389297857249711697602448388661808463609585549503981094187239368353027468656260363173834578812306379770391571954785349060127783675125504711815054494662014509406352811742831309198869875803014881035479225063852415980954952411735190590580612311124393977860829385853611304968431594688778682833850531371663608254038649874009427471043217479684258855148940753310485315753118556398585498998938188163476499086176818007954579514018433033781868290138055836969764214745942938136281168750148741934529212082109637561328334422222130115857024344187577909815088962397793861256588980082586310262309886162194327686857631784132631565742605053693516734071458393004570871093352416633570060334993451048981059215763652320977062590575536408493239212987539791521642883972484072201906462744735884322348527327118205422447611226729375983264263245109585105095277525154157483740451871722016376788344368944107450009216305984303489233847769783721498581515044242221227730753894353559823153880502692368547902493560228128113323934425545110140956616347820300572465519741247684533278296796358656918309846232586132878558650394102944408808331528853807686136041006431431330970677212389728103242955865945175090980556979488239645683328545581748463545470501036837216433680204985342165727252749146229246618439415854749484687548756328867730364076519382951275207932251222611333105483915040213237570597291453543504039934907836264075404937529703943925779878143687405735356711789582061666541759419196516415905207235788295699683870166276026856130356276380405766491364537157345051919929952055938480534434576000995713840531374819613901702608423050942036169420074348867386838068793275125681893007405923306740001684344425686452981652007270777417855209861641637755641708986027958785429000334752093125274774630950407077846728381219688973735947084539454029117457808359618240626683882021508997117097902635705327918847484064622428775824567430746538206188958941611466385402899393579395010673586162414597997145075848837810017720674404823335696791106051660108511281890144768314956828197665125527565105027820183630030623607376412426433801334708485520025964067359086766861525697333397086855946928621649295028650797040891965909579339372028383370324255657009135262459437540050066375590655688985856305068018801557748235008875451595337381765398082812155868700898439269861202711914988095114432370325599029929899710355519030052701793352665158341306373442129673489322827287117339622607955786456750316062328630335580557177404346519731109103509763963584956927095308838409259137929531802802136506063699040511904311429509357446552690974467703846427958031699760487989745249699105180593127554784989114563632175427711785398834387355687467156474484131072217655145384279017968607947399049258442852566094060217877009449371197478618858163267663916400913249401658887646014134379395308410297951894477647958028683898485194630854434864877677353000455381819254847843207320694180035621554017850872367691439407998260648537696014925831947520731479627707019586442414825124809641422340918969083357740849389699216396727014498223841560286098218725785016122218898637304220015404379354394133077856390666521758344542313657484297064571132290969280744854138854597938379657296878942051886403703083377980513796578578453461606914304492694445257367822949293655881154007194688890578504119263843933838668426826422667813702982426153018399190407316021262594012861429642162782282529141420762739577019162457119683912790699323443964790133451904614163954720087694421041106230973974863622684999726724842656995467877693338638366287069151581958644508378748233552776107996665323676336985382215176468759353808218628043013376668694476112352795059534542915356634905525764022263183004443272808194009826556179104027381259891772542508791897519643911699097873384904416117591583461693036629043741063365989029491415159973467652188711379331391785624361094119959853514642251144371665248357516272325519383172542886236038804133628604405239270007110593346628572461566218455153845472573485174189111193147855736420368002927154780523262255159900639550024140805233654866188272762753225084171615003384476230147016110591384944274832014545572446131234054100454663711464937603424370022674506519074780689707321768224040929470056971909365635736468678147671741914365390790050987510333996132722102072815983604628529021933954829188534214951166208150458719970746301991956016229501744499586374036931512044015079781058169237307714522464708536119039805774778814936931145064800746339467056160373662518352025211363804385953737882435872565553367692909490250251330927669286520166447862051463820124583163908407014956295803289824647755010871256596671209158823673407293414138121771628943090110206641357980307636419431700612967623840881197841770130341589622055367059984316343549473986171288901116091400805516447607148311728679613132119409308867685399667931655118821012718995522149729893703071616248404563973035343147286165097827682533975491543180817223156546920993832144287954808461837423672543535299004299556005114603120301114643130977173271143973887550893747196525160837026969475680907216230439323073970958901088992462677538682823832761454031774366198851626856210491057738610637410440859643378688518682545584065110751178671837540463768798452680233109982718968550353116488102217709928982011394192187868926343515581214466764370950918226304440689341231892589227723862833276098014983068069427380323886000921326315756987339377042493406289509338643896866235463909117023957085912429555737657487169153792680031892977793919085539254762398746037900293304512743600821095337758423058790774885216180614289642103551768044969166775148085599701881420975525860171584912151948049832303420187602435616550880226083783730964634878484060046317900738338656590475245860126378622400749261869937414528246303530391072114358223044477193136791916815020038827154156025391880076779328899021284712646094191020734205496343745531801864413797720322264163266973641039263152170172639957034814808316977096872721601530807024979064483192516745339050698018568007059840562446082817810144725171234877907718769183039912826908350492621975506566183271920201483570464302920510130255305907736996282439473993697966176294448698218738972277463319761938599700944933197227586038646853414922228123123177787493875213059582668310866221665912913964810733857463481429357075137386513713241820096987748780783530054513265808629278444819308291737897804459173172118927769617645789495420756732838235966084781792145360577177577174710146878006120203492503668483597397236779470982638302598977001459450019120080597548774860461338192285915230096018419467252421439234000010926726385699019357376167048410669918735156229311172120574499199867489171465623137995715639146764360346433441529640030383097566400818342909434060564911770615298135385324487154509041053536147748675806212718113921145899330793999249535050275420048051666650662164758384711847265551654806790307956794225815706710371753431926670758823367667205842972953777469901416615928889655369422856176129903151679215674605642743861745017209663233075082560778886970440643835036469718737701468685654182323368019848903644246561738772442104365907956660920290003337170802441311517158353773382724373642567303865262621682477147455491745924791954306273085710499284545129377158210453576077158171752792911864014721607632257635290417572825485373758923915123424147764241771371805824686831525614698942749811419779137873174819546430983739967831503468745901859932598507035896732246832133742462937558085610936649833400006822791593288101480791384539439734532295603924961919104476294911687139041895248180824495924558411396813685031307435226937399925146202225388135416077774064336172058672413296570471001550887045309951303250197435894764469098899331036012696550154793844207507773268073747934045276741589280329454268100195606845967232121202598144942596705817162967564708826048243430941806015882379859491316851994513393559413410759875695842850808048824459890704538766979191651737992286353809447211901858033496844072470007818905231779591437651373363605699345967478910118577383626565171838872679300507154874109113820598881051181911144843736014948536842298433988823900182897477452354035717390200077463772999824794977150394398282704540737090452977711130893562504172003043901300829797672552699355128404049699063026632212353027523141849398395596543105073046313791304927188512419538438796972520067277872443690963986676391508679446095859414682663226299732478757492641689594469264139164814034625752673628707756592392989814974143729578561661356960203962727895346973806274359673235513911515093549695950157054493658570955625575866289627207173610313584920611654646550048591674175296517240871265890634241914338594858421581845732324276503934972664454266082537898401542839255901969175142957589808398076497776669667110180139990110810981559927491479624781694503998358064448684963064088987831014532271214318973765887577225434040364882719719607338680816116762544304613894624599182892129810655797666601322987094202398600368492255019053482522288796521257842648037967776769935475832890674915134993332792779368064607680913265005052822331616583374745225944123050809992454230485994741567520480340343002171042984814250943522856091946359533280140326064168218313895307513887030089771647960841697113520389515487824860645336102026053857999453418588131404549186885568576207352385149552326623759334659345983757546737073737792911790986305099782149867422877790348540070702869356604243616422586404763900440349003342498557216152210314900787800793774956432580654389553994025183202012343591923950015026316921357258708059368438772932343368385498969092977346521532836593050300188973734491150687660776574670362543365284528652905196592959442959996102074982826379539188509630154180579633939677305122055943320661244847350276782610582455371090497945153798548434461916897522925223003283071443621438783657807292769080509762413586545047033159082628159133178727794871412355685243164006783641705848273555028946247956590392602546470763286710901657977908846082574335534298628284301367742693953234462357682018008830999114429641924940152439078618719197348561464059128859446911988110714285376371982920481999665645673455357935577279908045821469378949265264364522406690959244755971006446654962836252337413629488976903783325617126988859015551197007432275419270836492758454510290601421063462643014114618597016497123491156930983885040139650415769930316392496418400272444912028806656035617749460278494648271582031677742901875228300996910925739447657714617978238841029269235359860597378258957032466576846509888134029468427017494211009394854943396592198737951064489522606997981618650726472621028169347418084806228356639149438203767561112984563167966163094401906330402848748690831659320168231494101750845470616372737773955861421393273018292096775853101889850265724565689661058064266662912945493063331606500440673914520953989647768947630883342813702533316220903140882560463064798341612250917731645136316002924260645685707025069665128247238419300234817392710315722814570375972417040639609041423700934762834313295040609396934120167429366561490696642746186565213487234856050201098638973037229891209164023407144676262910871654427345016587298826929936148232942981969419217083173342171401864919730297896468319591935506064957848738264836089412387422323524497861961134154564909869612144051491065925051029476117579266268052967114337463309667322627506011174209598015906286233254802807848166980369822648766807594677453949529227791207886467446165452070872690316189908766918647188903769529736949510208744085802122391815519729568031915420976315093176920888471483095515828214156982278994287629925783708022641128966399898452589450787901244603250334350416176270500878984383617385879482938845298997175217994936620575195327814791097895431587074354693557856069781478513845406236947802117466285161947774790185892208377413871901439549540267121664547265781011814307785170064805527247845175633037048373295502754155194479575453006366159997346699760634288572962660901798246404679768574360284037971179459575242274809741734933268988139756651418035164016184323471066053656753084286792984936267502509972267403745893477696669597928882153260569108024437551754305902393187257413293428217477011426151703882039204857171645624715646344352256187381989047670050009323021953458303100915351062373180076605013132865442874241311992931167039353749690870037167899831999774000139958814202769679425260138788741720976825800406621472422782008301640691930917235921838667248998328769726472263617817468875980378807963673719920510363820299652527467047639664143470128510979046332234194099166587071035794067396148462696072189285403713892400474281792800015266592646128197167636925424138681692697683990464621446385761016937692439608260857991811306975582879299778905719869353013159272960438776582593266686652464561888944363049082866011930504519814793588644185642745453081474973730735399113586064670577542306804670291182204956756223807092171055114952223235887141234527311342891049484638436425677321191892881730308053591620036828019023372196703899942231121823883414539718362220409787075232979876048181234997514928767652786046984813371405925284091999040348023332573803597347919600125061866877291105718483060467360821772752082349737465000579457018223060556518640166173454056798222155919685893335336153121243998837472531802054972599064053404006874304338863984763053174173371552591855255365326652934586579117685871123289580317207504496617366549187598587822162815435324095636766714424306068295045475244225401059373531914086130100410882685146991724105066674435147872654563836361779251618444873814788772246708243841168703177960806765566856695612280150728888445797000724463856821360955991844963799491468579165731190814204043380798220760642907063164208289099465280614103848839366248989777195015937654395190382443062205258537217717983745920214287079576973125322957932702940972818384223186791266317364539325383009392504526319898352512424418768571121808071395482928830214850119376388233366005990228377969151752302368959762397821315900855504273788014986168482968044151414724909891426499814131990721953214894426290841496957775419031472920664562416175186163816321245123191248171918271707224934228720854767018849916232279022331693225682889967739951881363746296717020544787238191777361843105200988569592296277289604966471949477969970979598021438126364613208413339932390467450905477617257166266577979661134440398069568577992021826212613001444605538380389320732389618568826747888660518050422366358611297609153310342200885092482642462114748716675230728840867983425176580924054014990755072860617591875387755831259660233690716803997000791276033746103024630489290750703897037243101418292706860989126915520712756006811895758529805658603832282643001421224829396081205407090333145174777480058117448558656557612779104569377427472024973754082270393329168023368042805844762117329410265827924871327879202464293820182211508196696428174969995923858605616438841007241879042225844923285027547607113024839497744508616361735912230936817486028087433275625338770619631748229598673611781618814797465258307616946969760085425911949855091772191360308142094775349457140746794786007790764764833999691053162524489712408252457733303308056736920090510926753097139231604752652443899675877009031034397961883236655612693961939878673412334540924336728981783855522601012133663578303159957110608439245878723463452329332782962750263349210578041848972468590291665107261921662671736854543891169673411921019578747296569245202353566814747096509297733911677092020396662375946020244974333263734072969055193268385239083589611421723176486667537436467751169888622991463531944206983071099603955134853058542763434663398267933554071208128224591861672241900751761329319344163522622685545203925103596343862943684562318788493115067267380461445383930967494449593072326696742708288668445109663406435270364718116875425096953593051868381880257860136403573007234780415061504755679207778788213990827069876306372510469861740764189645542331233313827752917227495710027429730818949235879522432708087179576767541314031868631339394233205173413471732193414699520293690091287382048619916879958983350990845933574250851164075902655200860174534114789416746977628574667080243773840350166570851814354619615832574946925744309709048528974665193430766967703478816299133919807251991555171336648530766298528444211674610968201637857935779323028382050099586418807046642325835573185685305911667069768993141755690503699678501556706969038333706820884348966103327055610839866601643946287304616027578119805762657419614301311260475295913959275322143407414164856175659685689950383329726532143293016079388646149133890450876609117685802694390119011977430773980960363012594320286103497962124422366343515925334148652276563032575629227966398429534738060725894209659012369309404150023544664926350594842622867102353032496842926596554776758941912871128174152957667989767263716551106152104866411719625450348473386453549859293758363898518062311859274515100882379206706204268303100083331952922722376975436317099694445531058930538283376454706154684751904677500697265428472166876010061745192411280559749862112175518617074556436128865873979257966034695932458405646680503680708574973776535601074761605331326156396468018029186255351803448380340931924661096714404361501829154533394528753792260230937596490474985668026766644118575664236177839781160014704283905378349731417039225482524513829130757675070392583530880090625262610819610791711717838638541045260505200715812572265483646915678203847124236736994833584732004481921584877307442005465271118130180225660327007795444035488730334263602433286492037948861683942881906383281012084225256163477286605001488038425127455244924665185992124220851884556527391533386982515877882678954084934023217657930881409022071623543377816940680716383021018671360529467062573063069279919834304757520510032226059537184151232905881713156576392396677206393793098138754713639581562458552371798116339842630134892339928974418142683493644014326493908784887633092932968869175278605905026725543327201672017795494547068147429572735523411271299584859900020200242837825735131986227647626802053807176690693676929075584559030474921837805675790816406940696166893938960497577733230595536903566487423173543754393748330841135773403613740456577988387465939178135432304203543195089327319875566737274352972333129269064462881609704736571821777957294066946261730960376794618476653556974442903151609827630395911738856335675507116248358017771743509685179110373072497284201861155139247200252244043624903745312933117011290342798519080420706020851723843836185742610485236216823139651747048032256366956608073412597959792120701464021265776751908001528322582625932586458570088410107607835297414952059789568154828601159614638409568635661648853796793464829542190709035014406834313022603153741986750156854480270063469159174747568725861758664928338977771948588212159617495841193420673092000815467232900343392392244176780254611593441708743182152092029937918496196551201048413926768894427051515416681783398475065454569178452946982061349424543614554799764194426132521217046539555362203026817666703331491549978341556669327222894257232885510860690636896847158865809760287900749135020149760464016920870939786767190288578028898127780433511424845858883776698646615195610387045217525942214678715976915125927045849977709138507767567096128527757129745625690333943114414899123207113915262495251195113912921828460972178054750254403774013267054302696807295845227742279379504991797394045240403926743918889688477522825129081537306646395712408811487375178680594480986491766702595421283345792721368078498766652842917907790727317158283876446614288047702397113827131279389530342491424673334392138214622218318614160768800874103727142634668661754436383649228225446744096317900246037968282030574665056148066342605787127983602603454975811840151474933164963042831248830364369699389807991813699381003358425269687784518175121588726859960758308491548660362105999156957272666327010144416731103235386931511955129956984585292682533472891191884448835624180542494447374895347254251178124158963083706361925331935147864940890648375844315552080441474844202775649716451774229357112183114599188103306891341157203329488091071454387530264741197692183157907005227142453068174347049837530230910439829962159178778804304621245545637132820738435894649874100379752909547512477057103903256816053242391902465214648109769837261011752444878137150814141429979089442804518269165290934590059448587266870570035360300882960333863875253639706711606062634598735266316168541551709151712381290878809621760860679989025977767449392070269676463697259317663009624454760237910144609952116036857090258802250559410955222596348305858642252185532585995139830192321128832458210189580438410284792454252505038710514069171706226261360861121520972148032515533858761480577396704634274870027864602204886471755960405120289237167964301009445305158845999267740944909499347629318863505929746708365946870014928405836528887882477421570681572360689976062357389995065336469851669255914363433865890897894454417905456383706389436696113538891932804803144386296908413580965122938000202563844063715642374972512420953665039288174232951394745913204997884894293508919324439299340357099423786646114796110064275742123283232722234289888327026389772761709398657649397990769115017167935644310202558163496559490660133692249810615800254586140769523419272223946905401920080778444184232213500788517991365785160519368761189190609052672615300594495170162008937758575499543056850474650989191923818664929684464271417242893609368020033342611531041026063963016071180636890582275882407589148088162447341011675651882774724104980847984654757805376218258018482133721149935253819377800039394970641060037010678996234709622004783171868946853717613956331664041059295579453430597816256823554773532257035236438229631498595951813425593813134059005173842694718540241016210563789878832103086254928336478083448718426708419393339576563578572242627300271707321090582353408401832256811110739884449450180117285033664093331235167959798118024761678841078257912108125818252208925694339005665551646787563499394134726397089694852000843658230449049595145837032341664989833249776636024939917334452946978735183988629066142347053706735839300666099532784805070327517879967299229121625621604427914143887246120282518681459404430646898065801396444506520076812828714458498481899211929536323989620158424812850600638576642209325871905428614930446181616283007149585059624032067708395909276679445834351952327908725188265979693477753008985209450824523942697562027731082652571120435690033122083698191874640194193275791106573232880552469972881654519855126593723278153846152196437902697636311593944022269003064789253028163203706075507539611010013925546638938312247434035277206007777962296740336962516444688411221347717977591048972701013080308092484768539247091046507713278978783188555988310786279745906903652110050223866618676663070066312840064619378694577197734912112098061706047843022072656323978082350139207955053227490611535181323545162354962129290991851002256148641257468714764102386598309505687426670803311327114265122747948702236809836500369902638338095226297487577146824545370031631940529517790656174722405222283625135112989867212543712404225149561679885427108406616198838369159232029102654077316659866152544383054746721771240798564189217067708686701514439109332722407793761086532439348546730458803992470207140657410212910311461926883789581425676256628672418173284784601488699839463412952879833172528544638639098629974233036984136012445701205105443655058347626061587546954263112197428386219201548997919444963734017735810305520424079745636701533272599764107152592719307793380502381499240091330219524268718338949749843343099908826393613273309059624805870649806268972301122948032646016742943729283654067157917227235637455086611076931020481605226281201096573870472894569337035574631552407875448286913438304742933623956337185176163178368770766724528644640644362979923685303268253427698593892844528694631067219732469430744266772871302452941665683496138533245401036556251176581059024314220237062183941146567744296406594374675330529684003959972278619787577304126303652153274729619353282519180597866004684948019674827271081231946963156021088230950244181460592823372438103782549040368283575457519445153849715509220851291259059545111164485129319950404098002148020188251843990873328304744103643100082598938664743950481769998803188222797473537229965085501798940023015757663771746711565605500990954124415077175010367249793245478066730750474047806515431092146838407621382653233925556044078087167404406756704752496026015628526197683908275228712216207852224201172341645177618072462969555247223739699431057137759304433066206283599169818720790955736553475098936573912148489334723895523112900280394343223396184865209900015281268706364486355378051006619973701669871968012769357118524007379127772049427899413179642062546234662342669385240835610601118250264616365363072330507323871174174574714939318543712805310552614263099560522748515601843704278588398930907035426383717898612912722968592728809835022592205328875311067108472463004144024461260621106351031909772746744038208042862988255770342605866064289787346089742760657356488645279806172668434619351157461821395370479696104771630356478210760560250030259435122626043548343758705803515659888951189108052727441827765466746540319148639529480333732985979165673185001841452871728697663847353613271146140094186332799796262970882647739049286058868705604750848958755734386992928465780747152593316051164175925764478284592178531252605942375145229113270156348921556831937339069470479942056868874816380786614180978004867643798149336594371979893820994888775487374791262308997955552009342785593017828612770507806893332490440186746653868888825033300601355201111143463045768392169006964309998506355849102653805195755690102965937562058521706352424110963443811582650365871584739657319434854532449361552997930464094797523340405060771737627474037108815584332765823245666094077841981717414228831038786197198435796942243271929027744478794874131890850198575609709379757453903711147645683434210470711676956836699607312999378643037252060195388557429949254765350808064138188277240817259561597167562513820685784966408166391261854673662151342315690106022490292644993125834917960676579059335891447854587325978785448605180926138873436590013064137575220614593384457137155024307495926469199688485286962528540749335775943365916881055346186753564686854295303708209002984317291203816011947523717046287797311257917735706361091813387041270292849823736301729046956398219638009481202531624723428805195736775722204184380381455816349254341215483921824303427272888348907638502971501020272460875307671488201617545662981151947411613024823646464776823078749718140281612086062395582315697315105957577826894763114387640767211934991449759400935019074858878304014519553195748061323895306884324958623387898009738790823931708787584986944105365926365931487781683850422754701309823239305273775924552257036151531756934707400730606800079983672756751787757202322560431862046244987784982501484540741666842401086267234159322416601587635169564830790039675255198412481332914775021594667314627330582589615167975924192905020380351404454767274574260113323293848840367242406412714274802371883587572203961444169065289882004389068358294960392409976938037087700918694433072796491556834032085969381437460417877647630831774956208223756594863494171683652502068933729414540211676134816750678502698742205485934087020630583674028075492236815311037431346510624365495747606541006746099209486265403806371429018851984155658730801255760394977162291822915748850147153751890318454553930339631101699040739806120991531871946784602652126368225354378620566235225862631155642408257234947082393395189229530254081150538876953111837489016612628283088776625279007836446297689225917538342972277971762321226128574220891116440566922008950599002631898882585554920455829078503175361162413854239266307950715248211696099809491886515525642048445353128760204483613352342351143692291305738816860242101244493597676586268246313064181104632938273258978203422740723127141395885269541267501356474625165733747937052330430223695244061922261525474721171661729869051460382935696467311177304313234334508336655202331377545587211743561973301639086959260775309308085302830389845882700361407398749755729780081226988410325004769981152854427047087476681944256341528698224316165723038202897653682518479885600426475368367933242422152518292567415076097726258484850866715557147597847762629344761940755477279619451820898388862995290748962843038287046574811657994025768420973194944625632462147456323259895994412820232277272109294586717585108786937672623592602060603004102495065010424851166021108228549725993109819386239225432490872757876857836192422241788806999876459441153593117895007134563886274882525917599291715913708373469846966335599558161475770375488301920239330133600285051082165962640516958479553121982870608453492746865803800902405029096877945755565953208719872095667307726186503169840870857470305283875063034816296114177136545816062934943426611268691013278158957006464945187655532070362666657171759099077803150086556059358645379162950951740797467060026089269427574102897855083994873832988150088013596447170854375512127217154875107534085615514742489119737800924493013771556943486969836102670733078500125994490661431297319983951442479433121241543223791884731683161655636172612788629606052415143215833211602747507390880004484538906561199283472662836140006947525909476964280264527038559220228225496362535230028790091909382829859041412201703973620287680576843500099848032331053512566584652983939388069089821006094821136750361739546892303880018540230938386802090999679683959702439404554313399616146403924645885601361724395506445278101495365697020508617604172864290139302176089279703826854929235088909539369265715291763296419476440272123424717854292735055977601637918655227925333445920116284448736523977227533258584374553106876348196880735049743195457547373086043317237605590729491250079770069522014372099083522620977477760810211256161265272198941294725103188365006107610054682556708191000507893384476893676244565960962267905920493693162234264155534433647720541479627290319629929314387643339571444028067333032270969111252985385805101140126195243644428707030380967872488752992543444156428120174623492688846060023555094379107920829757056085710654866476683916305617678493866067035312480114510871050159762297775507686058647880053508721952488357824839287026288488347718720020413429490505337945766480547092930103045305407267211218102413040210884988500135034728481666740388592786229458534998571252028271937243002629140058579824950106738188977193589150245874778045041094267263653142746878045965859592286500830456163007964884224593429073124639885446630791861185467993690177839555367359328185137141136048735867814042682501712432042030744668272194716768985455230873455443773734226280664864880070553445645714876523968036686721842128163662983767699148330453041317237708153625798604683147571649906085350655018515220396995918268976558448895358846462244382680429472449514546047587890465609043362015510882076377996269464311083816386989210378598688724031484207021894087871679176912261388058179921647104027985409030370647766967972771126428861766103440537667486425164467503771850141098435313190039414145847941564685674324404992396546849913615682481983541057572146266163041588661188209317355353794647699855272900450909192549358039026940250194361414154048245425181133011990771203117579074332866420249592875599532885455089549523977607646148059443640963099202203490702345795686318820334646739469393556420027871503514326297003200910623223010401330716629689941301098839363617560062195141316467941172770018931529459786501391330313578663024456854640783913848170851797005333240066824860340648667649241561170231315063302410351420474077901976928945464908505839029623929598217287046611691059376579929398653859039475515088012905615978759980165820407805915960297353777502028298564307964376974729799902781017393442390660258326401725072477940607893037434125698677104335294140995902273222742858371160827245278075696320449200537125447417245506670977108676279352847236057618500461571975840519684228304390560919178589203047496915981458413186008557456988879217227881068524767276987938366713927268204798624189025499194745071613768400418595171043146009007543076268382081805802950899300043513906638563877665464763267724508220723832624767055632466874789822731605320595123531782328271044016287974765991204834511610118154848185947500067591848986153024725453863292850083906357409332447469288140835890170285327743365024350669866607939104010671438073733990395418744075629928455166955555469121534923190064613486716443965646045208665646143359981335712345002986859390742090237704964414045110043317795718446699087717670169291602983942918976353585603280738257034164330502409212551613688412550719688127663313409218757920129742997395541561982762234769112726578038646884103973135622513453342661603894955349239540748430990322349405061156150771766288338690707628495412081224736787330924060643445054148711474999091542068122895617847078374009917889084446550443990887100212421744257817555922857907129634268561286746582949613009281534016914496473703569590352146599048668494795311963861314950337977380917790013475120152894212169623220245640187251129870181244537079465444952027411061478256447902138707579145001751630068107077890990313526798752778382231643728254273719654976786176730772755203578133603122223752189968486004599882155207861961713268472317165344768767392442276958487134708629791804152318949326496519629377802754221219973253028425487677329483983781124886437501273495367531943039354337242334122717263074786265052460218559874810600194069135962783797629193190594002363610348630788970063259167865991266997017824537068274581149480446026473914737958220571420611404052606651238795997654009125988313932517844328235476445514434919738513136722033988893458169406631773629113995551678910672845734675546252750706155825599492113027395260950740886007246811010426621677957804567854230942219563528388530740212866459819163995538459488852311871543524348401337467066293379522392476220156812514056554161079557797044400894017550512966318785743283200215630423946915980057914819426966045385632278392367907146692589563525982623786673394270196817463128329154231694853016489306481265715827025919815400388575802808105274786731116227396889213410105527657507138809653131877333673647755632302938953219627421836831252060349602412032396898937581611948733341819904598867524604102973112279119725364473989910909970790810075475528620313205131462157726706017261556149628310398576155343284540434174500209545221101917451565356279230776686374375009402340983948960917740044344442588017361483478221473456090768412432757354686068730810474458941875454386631975038369331287489482830068618189013247008290648704068624672263413048943525652786877795725318072516698042006654556261952636109953798931258393359093092842487951669858382432646312206137002592629970174749517599369564250393188661637957412423887087372348228557976283017829659943140379115547688360655049995149760772081015230864547684824259657855156187863451770426958377871247229699223771520843696654230179352428348523713747755938211347711681844931910753175263552395426332803689358241960084067278908959849073644325170229490650328311113040915738787504451211995956493644895684059264532306762700410634787416304131243104003203628066747608314038817166305323740070142053550052397139833169547756209878879376919797457020431034056333141195754092486264592950190450148845267871262598621852087126995568866645600852853960500311037894513668352526729553578243711214001518246880221447727369631382796333418095286943012010812280001579578371920071681179287067050307217192841973039301043885626240379563146843826338685745929011839277637525254153786247285911623117196063970143270338471972447614906873857304827549824539317899445684068157642449672711019616031699852619558189957129129945502757603355119248736354108278803332395472212307602273772459011630201887096973990734197546649883301948228508777776228274701760135526660458794896332116120099253995287438634684282204174672639966669377644780188201712064819070192127424389948799595083938876438276300534533230376372725644774168311695922548261524493660092199613587375395166100334730056604881944295908591696572207258854650008381881158540039463637159144327408324848993650310027694092584454448068477035695171044658701540767735374085806881586854772006913292736030420958565097608208946019394766325709038435573742696888005982866094709448432049662067855223731892782546363700884765595901621001242148072103405254138809905661755225161804587597676973533241805226608248782771666775579024074384110697986530541799768951133057367377788766310804985375987822595042061972150802974904922077183608350924136941948179054008926497324846657943590551926389821144138452410647544130277081704106506172961741985787035971290277931206848940475127441849800973483591696550838384406481689404495282008868361309864941041598071064752375672904694759406031042875911746583256869096977592205945625550426658430411836987546821009330585770924037484036130064164302412113783162788545613394720772983730583787411416391864266761384730747653017051361055174173369087228974476165184643943956213428019407856419953882748525845855677407320081357193335955358466482225743556963409562808550872169416581603860956430027430584408148623795003953324146494488113527605600069616132518047257221873133784254359168570640533971529010226906184303023714998020610551789692355881987420861179838855470609527439906834274943022787254371587474306645730253174439496386673644532299922500574652114185396725412248010500269286304728273573731248827797773327296767438503266853422942815493068508607728644094066392892942783880831009140990929508402487274874086049050042170152587432182780640334795347670792508834740914740813615496585920376793200181861677572763156570422002124631752058059379109711599469100247004629252489584519818216876565617859710544014505364391054009133246022912197197841963086146987191611099757138361704038860699849726853598126065293184050083965899211878603922594041154609655007588154650292663561464295712830183712506018510588757833888951677744071088050774124804996870442353201486826770474957706698914993309421976738311210547703806623838990728959541684963130799093134029211730501802656733696116877892443813999896043560182920733473758198564695665022450231500933850237223934815266527102492923485781989130546190275589616527409513757276595504336435059297067138791430905952692431834416690686167220391801281041754103599680695276365969882006648226414350704370447407114153967157978430816097796351374363559645664754357934064298574285163501841961077299429024854157069349978697920538303695243873342690025513938856428247630912199040133303540742900261433587662889202047738188893081040982133163327343898888628511528475776568487229502475571355897825982624543274007457055241229082262742598911202137667802241709265341576400597028344612768331610515756095415352013094480023736256308450207740360847634833518255562719204860519702099635085183094798612062896409248995172650874522217907877518835287494326765685477074079050222655865095093965456598834388638510071052079318512109988812934494711330612621418716524945187139940643887136207656492957575682492790841162619756696574936607490492137802759846949123002969592714593705200730951990550683553988762387358690723070845978551364050504773287654046980336459989952212027321046374029430241337616991263470888196978864218974616356863764120002129611279531732841101909535575828497850068095655305969913250118317177791193114784826508843109897029556700840926822001054331526125519080465844845373635673716217304310744445427355452643899270659665132862012586080108747163950331678048830342795214025638117448539649237279632152266591549741393879201199968234806949477573911532606886027836328298973558803042338065824109373599317270723901029924634457937835101980206822424059239751704305004813495123566297766782143633760229098689385014543510211339617752381660649831767319858725643611313162375099985103541128823364811795612073924505906305179942305342699314629002190662153092678091275859632667478632770601785847363544828539048679181544685750989070473038680249817546609066042497696597863322708850143410114801232080126857457886447777250609001431634665696942452097652934937490747183346245551224127732539813128286660100046572160667477569755279493316274383322452044579042243931924399141173975322076520529508227455379764324556770366540965719901084481355483292961535039091965658519224808286159895234973614778433862083782362655366516525397469034219594344580988687453121835074701025867330946321804119912105531305935945247051789752506481994077972813080197736714886138019176874623745297314562450446125383545994061126542432299703955586577066588277269628765070057391925921945286929695984374323074923470257756169092396603467854041656648016629354498695022032437819975576568996429759218096644871545437904318887989353891145233528632669152205940159814245737942878850909137059599363528646348101923350461738238357844964647059126995766433732721237322641854191041466412411880679116748033148141043093102397114531649910135418905935797057246866944546157615968704853549300862736580875186370026366492276433647203070385626951671636403325760961003438696194756123801521055955196396580365600235458345951044745388951340080779150740663485937033209051630266486798006924565760071537823445022019651546421361215875391212281145065502220527150413720878631363940528030476893084198423567824097875692228100763035163039773158200320447218422457323387277305032280827209195981384977978499575258583484817928949693107371423044314276071316218555184155381089826761646892047198139799924205720436703905544278424757401136841026654146434809008517743796503817339039888690650618240747879390684512363761824160376990138882762305495396757873451797689249228952297785543312178052830221457612911626746835649359924578550510187491782033226489657439153488211342079695764738747836684087334986830820318404076730841512236073309103643113061776557849609423641793466741032282430845499034581798906198771233503103944024044339505282848465736978792531247697571085155988678999376428666766821079913579527290233992690056186290124979257613783274895119409536679925803496461067530203840060867335062701255318692013902324258001788443513167042808862214152695143698272143327913944053799038740166191653184713652423520261735042148409295193455360068619432942759921149904340569614411644661893910968423653198930132544597642109718605809097114413652594329571301971384685385841192748981271053051221887377166041492488195910214783643239715572822465985940695326473729245369530562094033000246361355560782410472311830690655172904853290069335041242185000083049894101576678397680220155428030743689038730787987528810261836028998070684163379320959916277769163496080736449385588626008817576605881409527027548227566054718105701083133065713999453085053047325535882627978961066379246092142365288562323111272506470160894028097169174814114474762373943024503356801928711420069337502974175433161144901240643824951730351034922551358956269886340847388483042854075901656118136115921680174619256497972694354648308350242644864033645647060283213513119818929874590161965903317035731227736778614781919062709627349509924261367877670282988389448771313533328318633308560655649760752893464633097563634935389839855921050942583975007421300582622110932350894548566457005382227005721987173138343313267978618467189461893963032873917748361345397339907614145450403682821747305976478230809284529526448854049617355230207268283345530340356144336021530566761012023943072210013699381600996691308900987513620729221771859612625614288687493172867885092105033224853372520158645097619557185170195676621666534523274725617249480402740206596773668667933301956588816728211591826210463688355219788362017324528512888121069440794294175822423195304868559337150368491595721573171233272550213158950980632642821175055463860753104688537165820991920223899173142641214128867521477948830417635083135867299261052352401580767874219184541702799718554913788086916549971789494951111054917139351915964176156992117757484207668565523532672845879925036509356262736380216843412395970338119263704715098218446646946080347384424473343512411920986555832140019603050891320291460640307451384970465316050711814832129476955728738662955759181298254069864450817863263865542275483182012841648750581854287840697752675622970369860433586015530250604141643018317637483671519422220012588716255635568740695301728457054695582025787611431550795536952532960216892974981574482985128302229349944790778553967838163327595680716638095205407957795984638985425853946574452872586901792190191977289690240308933812798791825868996471344680826468497890456687645965578413159203214977469037938178200887113377934195738238080957995518184063505511721819386295781796983455134241507790838642981743407505039693957020809550376842743583591453538932397120581679701840002415075720125340586459440003297882103344042829428870271416991415950721925177166923951470648250222591743212347822943562640859566949989988593603133068734460127613838226972746071310519560983827026555054436586529447296343244464876555907580581871793041789574143609000110968766123872442157824068113799594974038105870730847768902229329732362803646222027250449667583878921044651593004080954240692632778696525139039348073661465822434521375943183837995022034879551484831720024659133415537179690535831860976142113092845551944640515741518589429366414825683890794193415675519148970468001391116818312777404734165670333217738561133165503280849124061920695522789552307849044402601284948912213936644113246542667045901229490839391442696743448857996169141854739729045421374649577268949789537583404803839989161228414975611479533088973015517643638407294275884381316929977317069050503072658554233458115021466343455512839586000937037222074925605710412940200857216158169919949829516795381915456894595294203290224696195951161450331754821671162454659858952182135785552379173468028246696650193117111647984656748188754889529261091704508356093341460763543421847476487849640869474489475896709385526223210343830772873133895635425856304942615073177788924952626470106747911798415819842626459361061100230166516423996057754083769792367699753428401342699020329727062330842680096456178667822333494642124725114854770108084251992477339741690567154785864041788778433712885197902383382393770694412859694274566645924059125056612069538394226380349936054608033307741413290449929340113316888456175639806209336619686232088161304972270705380418512711867578912597148457347747627670115817036249760632598358903018635185738874281164424882919696222150976024513729635344305065777998841431339849103912420475080216966224989591871148952347950126465486700612361915532927878918258874014296831960362139398414702526072667880819516640360240834935348165399292736734750822623958653094583928204347002081856288458227076218921107358366543404817697762155817634837124646760745818200675958546945038363426996639653908127593135712872282063197327970173013484005815378204020804288079416603688548308370397436010051443907715994226451914217307614556686288153608291931030983112469412865923340494802795249774535330588781995408013802418623622268014353352164456258536340379986720669158242954256490898758090921546451691361400159608753224818081676316462464756169425483799679903836902784735263480280780686266662639565595877338250426618695904494759858807863792643207981511430251004785078333597588135358404233906128440217422247670889411036088217035339428034107606028538720654029356571940454529477979107149132865142627945272509882608793001653407830258070852399854887439058194825888966965635226303967777006182393142335778351420138947751089520651374138525056755161310341993285936759340425215864459856774066399669064452750633863646370049302622461633019175435164640471741042009881747039275174772451469797176378089030893010305909175400661800558232594155225160172581656792045640539900951625860098546289811054781668726612972239460327927579667955493551370380133149815615108783982260376689446898540004891790109505978894171650530136616360910189684336624534645431564055808914931207132674308357547001057987424335947237415436827157986923491739463470036282297487665787380092322782746449697532120446389476836678103877573210783814203817361557821383543845936021675621075222823686036874431472003032076079570868705333284568927660119490972460475991175736713340803440963630030078575269852801376002207671812289065740179575994826163505128031067620209111593788374442129029093260415647815053720948116970222950632091275186475608331826257257521912149074758235292990732748969031984151038215227712112843634437161414744989857660487097157857048709498269059476179981341370823711065430653187079906295599454154786632648642426754474287067925296145356104867350168737550440512445114397347660243667543303193153589651205773529089543255482661330519429687750753560151306122446800650953993396361093582849447921887316212997430466970171209544391049441493284864408753847513248608217958801227895883237617511856060547044422215319074221486757873265322608602383009425484283982617071398476904146748342151914313271333398772498937636725820727785163997390343814571117276326919836012642789210632434036902482000117283232372079601557878669622925241159793829080177071575868761070472067293483622379169203623180002621635753453331547765079534050995554580449029911362154950097129553000937504328742111239277713734201325553423856915391700684267428707385646380476605993109585663221692519294943318409740384736290512777993000697152413042826057817369809910575762147341926881158609244583297833148354748300199702619277114156707723251757940180808667054733625915918927917632360942129287794682988939727039872960753997389587793673913592703385695740146775794735351692888632724510317698556421354353419000462985380257377605006831612392962617730779123616249199505802097757426875039302822722046496976536372248955775028540633579782884684088598638659943774527489693222374426500863290884577794479995026276967678921034039497778526230366495675496021770640237416530157766821394101166687686343429240065284598675204738311048170841809164175872815753752671474789100499524148840044688357005566806965663027204935467631219799181611574402552468757807601232540643098042689068577848223973857459563680632481560775887992325000296120013957997095261354881692945004702024483955261258187558810250705226083022984186134568416006594031598893334073183571906918047433301161811054082762933794812092595806944105772557390284117362956888247612112999247732179030734990626057439987735179647408314222452406563869585450148948895341873010531394178275540341856292309358925761376712453594975753920633731249835711853333400061425600780025736898380674980664864648920693064838404706068925089316046548327056861784238742335425828033731138105609110852152190299494098402914250467998422263821449843345470352345213607725933086679902816609419134369799981011696458154950294803404787288156350832168406336970090583006278030144989397865463338350939374058072589415829356617818761991168187535406855489309197152067658031930914821029496105014564660329510477620990613851225055808880841659011936131349855561393930804046728888458383020410930940753408871517232751552028228386035221288632969668892581697147606605188072458626165333536721386994666887947258679838345799095269606162574067071364267000162660556970609139613454009258830368368562697248916754898635765716578303603847162611230955521824910843148829870363559604272714227652490370075531997966582232828202069782426783267005428836089393349138983713995182828537497876643294308286881602735087773054199580838909372266677962596616020811941785323677081339606079474809750764254373981108108614980996830783208348794011784828558954995297007516395757120089509011585731716791284595612398915279653968189819882163574446928880705900839789031345615758095323618151192543961244256629568019098346097581995760331931455110758424621905203657086513702756733397865873450435083444093042591319361935175111984095777555561011382713778908411619647438747346849151320212434629809572496360166307374757256349834245838427775395614426385090702423941290501868274270958177646325327986502251049911438347541922732489828122134642196651286677650070569708433829054307051270069485451841809022320965584047837898899661668213702506910052792262466056139901841531949622118791168776277183675920515677496608566358121934157472304544737839587429908830222030747806421590398223509434558278447478460727104895679646174772433076596153741317753801070552603045692066043806358710591761413987688077517136818499390815106693605194086791833811926738250303475296441114838828737688116896428135047050186451623748941948842325778070768626164201316798192680798171959170650626954522239066633631027616003093364005394697545782964813275029340816099707772514167833992244049696818131965189777021028765198810411844131762734564327975659977866836106298801849057529577303035144183470605102255807601419880862423374876925263752392271193332215147875973413488410058560628549626507781597186041666053101470665272157547958950355589117503158268873852396903465300729726987532641391518862167561646464716243697068747467564642854642318044216469475321720572120475942483902778489391046838689511122968743831761971309599366688035680470541027725938593216524843096713422919632284753548237003383694248682707058642225780738812371215330209430846010307521343572578212954592941308726270949136753613639205992908023286032886149750227701598688259508504468331347348728766136387877755475410010442715293128669933559195766017616642278405840300933731056946206853198634314001354937312185781144826212294943381089229419828212442416947865451913451060762931416492693210118372385680576246464911645939334012986404821893858283164013778264695795389809131523087043192872599609592486334074990535227535697557891537805660828486582831929044994677728904994907391783180533387542029348787379741142795753727547437239986582683066762388229151778518283452772961085064020759483275672240411909268532563972288272183612210627110074970342127795066429422286429304843885138918194003040658775599637168122227159322924172430902010067036054631874998778309001969122073697627772547448014578701611728641058384548512018696099320966331245482345133458547845515149056867205107761881731356123616765271397699957541860785137873452101287416057609187181399128065454890560402779564012052547233514432370477087702029998697669980098407648029990145641466132345613662427661179134081062088246540173239372232800596009862532304167226454823308871064955774353581740384703757145580457452839819101347088394265211100228786375241030874460287866623863369087519515111975760990134522503463402902832670584755861603972196880475082031055722096208611480446786606221045502254294953736431691064843940042938331544859677845840113676244570398125716099186137467715286926999263346238021434161461747271221452860199033017770364404157283252626258712732238342502001893101418414255716993840015863875330054737406387032053938601642875628193634127072152700889629174949485377059569643775134482959773385037339247147363504609495950221284155000396766424592518004303753301574886921827464841098739302954114287158462964914445194508225437135838163648967557823719511572848817425241736006533417325121300389229098866994655607924704018185150957354730048032384810099900987334846197271026325349947492293179504981122350862550478791979369483429469527608250279520506494982871585080051082326066273829895993395238450115315549873890363645106650469699805599518917413072529768667294185107233443431624634088739021482378680137164661708195369252473420952019151825455624511200289222349517277950102618889622221356863375157996601037611539485770275542430104063897573805034257333407634589035563334799394218461880239810609471216230723693839607152904215715371272942212051958093531186710117290762264408478153479987775933722129565472917526772930962685935557512709230204093760394596893783921092779999151569822183686904140225216551899170531407203020511154138762731172189962547040345119919989476445621018698060854071396238823175846769829076628898358500133300801118931632185435388339842571901211972167375999027694681390080847015481147913758925315443109704366848140148588563906448125267612046083637537394363834889314032697734638768997859129470079571785252545751369792515988398462351935845035958676523651934047239011254999518228690895794203836292080370943881744404358694212844078791218263691557479897682631038740424783086351561367977750419101093569057723908314047348760620947703376147761340648693989038765634775006609137442599081417244845720267542594439304418538292218157775924256869114980503590567759063163179868345587255234034620526926408190708372429111496305031895806860750783991395002057899979844061223444322183217601965670538406647221333993293995845528561944792388533120818433978809925976136836489132782488876171015081740531919054556075911176048778712747134551097771243138462206521709845808214301852420889010371120401100433815369875885264221156948954401547770584407457063891974950021462003188445066929775142200375032829127310739304730410133264882337930346950743883369884522568804505741028444041236354068752666238670101696901079087756922326180649789507059849717865414937138916162177286481519996025570103461202262525803798373186724252682828316931615620908008188854979474057918954903246266369796257591941171793230934925545991577027685888127801175626365352625556606905407658043609841559024909325618643655909516864093406288802616959398550255100189647989220677706709526163484345312043113655599898842264741000068553810916570413876279751455820014857664725253808675104604829845413330697896295577826209301539179130117727858509243986751196142255912275882372761520434556611013757176561931668265520054772945767226193671004136974150379273627352481246746718338400043699754195642435658244354545657840071355493611193799724579901868150717578219619335713057087198967635813451010660792858303000724121008606408428647135913194828314735920135154493346795451467633844514606538132026543957293820875476294691173561553896248911696620617885581913924732948382666232671800653318947455301129464658326947537647122833389123652556211849376798767509508321013636047539306615034953875739561857934931408129031201260865233278643815296271673005138247791739963536262293747394085813058146296701656463753466110381085108995088021627847044370943939545328137634874084814246694968756182925716556401767889498951388664020984801043044788863753653440269594802521538707756463792526422853822809345882976025733981407381267684196308910469049322115964359751808351414687688587924897220344018577969245518684130067806377212034962083118632601004876992734426238755735581250291541766077733454112839443195799564406306708015384481654911407254501186399087928279103157816995808508461287326416538304843686915674209639715120070989026116035873973111277392795273093806190761479383400219650810009116680507683284417588706627868351213664146120547313992910481878206210833925997165619933275873746536016084148238220592656142660935010772675560690915853329293733887366055853706680380829177596006381667078711681721798393652635824463596402871961765992656524507688971069520949335385870967344817921795524723921781564888080593423780914293207534792557809896655581849219781162548529777260959725554832410228224313749042313998244516945235478122489888871140883716291143934440445160049292776153993734583917474083406047396149850766797480679983820953644405137818989452005815904760464368229594740596666973093927740125432115480444703183916917380515163550780208677159301320870660996255217124340713680851761211900624377659752317106215259078124391323596286396273953702260987131791606653043799871393549205774270986907435125878264160896514859309700203152815699420159758213462539459628385393076961642264490760143215338943572303600676982979923954297046146033566722748049112682523917821584102561628067146691471197465181247849396238729260170377542114220039819181299826140977020823020056619714202885647627735092366266160424009653464867717313950282441151932370039863843415909525612443008979418858065375576841725244022555700169749725505730430207294351410165112160970152648112172490227857973295019704539533142410729462730614264546192757196827134266274776250146129617171093013275221464547773367363513173301244825245415261913679291144442355100120875613024280088983612125536872496546506697499390511854964774990565817606589535836802346325494114506658260006198952431229040160572189009588489260197563310263152958659451006142139767221148526992232502902353104418731733595083018185664433612238502065307356490750315849279475113053748654996819947473629235452123421185326393007035262257878457544452998280267050607952651738399379721367113335322297214036981625935003380366998099424740211841845392122059006169422698291794455007217096239407957890506040858310700629052586252530193806915808291519880968257726165936210557669273138916795849251511906285401491039219213871284210339663385212330770511730568490833448004030455881260898621168425911945246679607281296807893572794683898455892469804088472510186546631772928474292149785487021047271029471717602027036750304327696462000900417208900840417112249675570186238218666329029489100426546856775635140278727691594876382290972765508067360896449431616380976047055878128782525079272118807840337235820598817361106029683539771025839843791695066726875439915939964394852354309745636451026508965582237330411791719185305015922258530994372860165492477411263640489637182384194040726325329036321165666656281425986488184579207607870755744474160211718557339593971756660469999213417321357535564302867749053501284444663470740858148162699733433494055484247745956813535672493049028033908241406810114480762193962568642149531973290255426716773590905519192860886340680263239791682952687634490132922006176651036547119255200905370732714922177704720698474111183077031566706774655448400575675145655694607603661256272223992421186424583346670082894577704071884694696145355741466998052885286195167758842204623280532379885970728259449148514845345368411357454639362068231866882020929166672057977563119470051555685221590669013869664079148512015260422457284573719317128998027452016935781822401085657290332912698803295577872141440692205783888289267935181430849846733822640477870380278863904542627018835338544777157131567774967973886689561699971652444180550493221118931818102386847105115658314423978256880332502611131402908707895460602533872086363807808546856900848765231244489685129388519848430525706715395046834709919180433165109127658089512295947602617538603561686799675514817022914772132140297586870268065285997375994415496922019630635309466633332466068521650766350567254777893641671421741410807510348790503161053500887189281751318920431787578774989281861614492767212278316265351525595222819144190711700520610435103937195896257992408402936859721029546018984917089019116796622451700319120527767086239612985004968565128358569835952739168090084766312549534178129360966839474163782089474753584937145127942241347494369452173532129484758948434985259570370628889186455573684407660082354853218688245946043391366866603594178531967417456676064309572354442812596098317584858570928662415138491997443208795534217561064085556867032924003659543637019929845273198101178150659801148448878090042511610435503849660474646295677015783141646192603939633954065679656845027314208983605786655404766525204483115356147332313370290938143462588986284095383430967369163267340879600164042932641906657738397622019583478524817421614181758494616921263209594911212723510293316394703817899901090410271680881154705492725078012192192476716460665487489608407639703940089582358547913383208859005040054108448026904928875817852793068637333065890604134060284477542472094949301739224214961850816435194155706344511446657092899820750095854773875485433816735119502736797171812244206762718968099917327156819949529281867661935964966805533944949876326162829449047526702900120076756712813177694130957535172194835859665792827335326702300986896559089836468156619123747979240077611824711936684453965331947213719100625272919898526159564383410469457082983514296132196891445643360894458284434978592503895339850918914579834028722090266326004564464777149148457259056775798489202187000585714940605802579586742054369025455853623770474655220516024893009951726219703057955536683311152952743225665914762553116074573912709045892974373420886105350945631630419398946190264490856164244924068808475161563101167714765012918815723105055401228763868217813098449645904878609592570032620014731784451089034856115495454511497098094482047571877381841020921272267118083635549945522548102367443143221770685453569555437309938356332039940104915659634162996830849344218912847334442853406946550796084873200734817333498167707026415090632302163826191393109298736624019975849114255182358015162211080047424799671545198790883806696828504141478727532309163092477246128540923094348024393045875522152640011117069483114491972340858959087193216864077997032243789949716338816033429875610564250596188418537331855421457942732877650878661498835477585699065083416334036635625962918588826820262396453902983654568979063956769891269898850928730576364193749907530732088194610805647089837071220685376132880433972313771169517047922903122694761114994792137220576512116012295355923341579198926445890100952392762500034705852816384312090643494825518501023057428269222415827147837911555568691392565055255581389725879307861577520428535864608774440914203181336890981550787028286545801851171710438365949145635157004098909071492039206092125888587501068456573029454912097629664956470381608992221368012753191311926860076035191522291399296040862662131154657176013170315208803528403865933950774161854786635761980315213545675475311738270098024033300049433551895984292310477558028494590334987467369102347028746972129745747805389969751627919282801086715604668331974498750964092000482974656954932338787411523384802596373169986095764035923842726596789221399035685341538143806332847345819086619649669275627779054295854675746978383914818693763144490311706131949925830651126647222871569859339949632961204256664237906273445277067391011500827117468735847712525952665732253308123126442569443568507308992018021904271586912243348522304617445593021513847206978451825973239385954957950741780866004636735916620453463429988189778567366167905970438622402100640843996645734003824476999960464543008705385484197090861591642614759207125893297726019852381296248546579426659292329828173066174074990936218455498306504440771439572983219499193914593772396281886821560215736407653997306280644185805466988132777753789665868673308130310942334830959301890923516812124091369622101815860718976442659915112488357784861734902135964397035650316404176606652333116725053380225891980758678985202577219516785092838122677607909027091349066050188394762817252232166765367014556346068486220139880148349872748316659649322827907090842950515481512735380232742510685532012438629371410014732455289701359391211195862806829733086290967422742631017075025140131957186046301160799428128698750696841897326372591219064592434314681854192157409313744634798090830008499440613855749872043060553723839833198128396280717221012443090591472270554195826390044393867443659129316138221215216771573472522907686702150606410233588841516866107735227165902670395221769145237870774159047980562031579667962018044661472960851477143877922090340525785810056888234048060298642651128975349120700377782798323641907284052914150042165126422488079729384868911587640664944180274447403827740376371582536252277064856542086200989520707906279568323516797324882477636152129534213758459836887746258080470752571290280562998719706805140843736298900664984998206904454492714685099102999602517808076459814003297299741521091279682471334905677829359593669366842566024320827598361672512436693511811694801620985581020485974156132120746465478421087467188861509960253995170875763456045773260256261982715330156529375752170429498539991229946879616246230704013352004645963053208295458211198205810518162628712305468654113357647912905890261880445497092571419256389317848962125726639579329189069987302752628568988617840727042204737787282630015470370326112206915800196173730389155053495327609483602378433726473007825846286828491514162970417755443983008861520724572638169195628667325642623834601698897597167991097147274306934017068570024537278401633299004881733671171438469629646277654210691936895303790020118911057970322874184574953685653778665545750653167313461052950433612317960209346728197618689453881595841240259293612471251631638533295441250220297216191806388456207412032687675308605175506282087298949895591609230287288183657742267458264497434674444138225374360011691091767820015298208854845540638952024302116728808773558856066757698443618586756291787291192507985108812277275420549137277020475737917567346539722429388489128548102198197765368915485417472530787136479464753625158363730181661970255070151974182437401353473304655590896900248310295072199092760725661099119649570533095705160561032939341337138143879649200038462936300288868819266775206023468967469194420523489825767730475840795742645112953926679912565731645503173295634452041104251451406046786703369132586806919039695163308760195849866967394852906269837802781140800875157026577484229293857590371538445446690613774249069179941375200180923579734660773323897189815774337916696703423711176453097851117717919413338872512097869201197327211815132649759168891792519896747213451178443877978298712625304857901668821175767428024838994968166832099651740092548025863988791147770273993988311448469791415870448589898127629637604415982582527515560045884793927824938617945874734339239152846855549817829182036981206354189305762088301065876951402419949919162463362802126995240995982405011855084279574058583363254968223257789459991227678255345892866807110856286902298223911232599801632881831868198571691352594234265294067128277327374994604261549644968861385823355708327676850599761836844559560656815108908516201789425505411726043658580587419823114699513246080555228922638346361076872211983474743329528400719489615693737521415501396685116894574619774033379957013934936814133540021347175414463451414439944369409463831824300766258882440218140039733640730577145432650265034601760273773944104822045333155492832547430224916285466627573428056449454037804044268646066531073770809240866251527962321711415431889759685385113462979723563721854383191281897157778530583079440782423188981765674430442322914812888015875469451059096962617848818022239921191875511214416952826786020222828588682419244963948352861639364421936144468151354653502156713943561233252560028425655151648256808536534831895640247420344525460924661513308238852380882206729920524168196693052795655021671576893572377352149386430169908470678945592409906630498231902853598685583165095248848214362906339914440906798152966096740091337067185784854216020646564073696166495472982226488133745243856372691869825622136343866582773925688848770078881370825890476490174504497127390530003423509207225860881578736602779883832177615416432539166176806380124624917150486042248341715776048486257326232483511865464235254652103522771725625767259316275474217317936328827622924183358348069887130307603287584237402008226981757765419885220776119695343527438906705624588549948725725248689655482765277897100942346660360442206601331839418901011382145355885381130179274836188409663701851430473623914425077648319867590205672252029450413665033652382797503923531750350731890887783978823066071141709978109844251546614522080561541234528425854680913703658653397000326242386668177433845846516835953072327072574070843725235543704641766800526712736122501035586008064179064374982973078591482918608107536283993734101595397323194010618165827407436933630493549938846494661776103073965530399411282102669522582032423544133032598311142635746511770263705979719208183346064444587905534495135101306545350122522618284332859645714093117571892625436687225835089700195805934875899664107488580019323159115762198713208265197472878573748442383548654950755586672458807347077384825922111243335613922826992359894179608376499489980002470266087470808639240176005034022593380088318922971633361163312908420933088847014275936480045663233837487607502578132400476055025343474212072770102136599958998551985438980878699917752965073542768921673840230700754774896651957706462145361995326356088588777123920941538381885024108814257634242332986234625941937515112518111940531158890181487407048020689389297253141003313912284723149208779756658461922487798400235526143155477384905821552271892259925947270121544333976614943199926462048743179678852264087057270330621204235029808461025464066991552540124137158823230861492399069775761368925029455341956588963967445273292290411023441196786583873750234974890522273587804653608705100783625443617032790948193656906632370578873737279416134406454259460772517089517164208419823244175717940543472953105718523070904163941773364308062131721901136332164599056162176558370085118848961435802877929738244385244261344818885893050552141679826473222150358247271850421647216384205826240398698649928797144687251710207998804561124033268748729402517602276028154771212704592018061465242750426754042542763271108183708844744669083093235486230215941967178289133419273455515345237355110208650490140435408011732844886406275226521542399867705973810931227847377252642845700242751920361973308343297671727005253706966798303042700066364643071928536498440599382477110780699801642173318253567943453615260462358652465553447940693334963102586442713176609101790494903392574757771436906543183056521010162385949769612209181965759683492903686893023164250541903749151404394427776464427544368523391228907173577601776316524241958594011547283394996824437555613212304338555447185922800977844430157307769886357448127282145526893565268212685905620372395617974130404714650610345723038034621900134822785235223053561702580776740404673681666449393084140977482632146819289429716861822448759095449269371525793375661184009864013546497243066460548878256039322472630874698777675178380523697286916227493420616712739530392878157997788744863379547278620906882661397550589131538744135177132117411366450443278456542251241232784339656018038599101742563394603516319889753511273710747062343089152877130082121203589556065746454011410915535774397167336606657266972030778717028717905115676149614830185553632146968492148414770222964901862032876115942013369190164042773418664694880821824142553673478620334303888225713079604621547979431155702073237136443719416317089200003961804823435470897704677253881689783635558370715421949556092104400019301815545782195171729438416735361982847518234398654866332187400453689558661578116198962809638479036424894071790808826345881472918231127539256686105172883259748653015463881251518046463727259300743779620338103438247623945996679064307256079785690612844479961826053960249175603142495125720890408337101137260122613591278688124916186268714524029719117665149939462685645524474453848166715761513246257893918730425043912568553045617276617188648274579999929947351554395437051841656800652029590233425861959075422122669668571954250349173226967253820705726198342259159942080428853805610136632757738335922722904803036628099060070537662245206080381922709567135188712869508481919202991457407465934818567511495586452253445117890356427922954370838316309119485831193080068116916386279480198962984199513652091025886440788917166068611120862178247732614492849597637183524028621840639019481417576771033983302103125231496043050822951065993870289502233264128606203857105067058436235589157340882856695294346386583583213834303290272821500210598911045922893296818980188172024337780500380735686710673436777083603212433499994362601561627646515413703838575289305819230178237334542577523681044107544409901012736251634839649074587596222442343652375088230129616546345366126455135974557781030302797786229494890378659033724428455273565164895982195725799460999499642321853397702203713538689235016796072106890490869850464859243531034527102909876428554958303536416680383191151007642789896511395797650297117524521152800314089172387792237464563933489720634578930379409229330342080028587803322459748867486259347147253804109124934812326420026419835471482612894599053281459290549999819845005054205090502797133509888028293796716208365184462354822771938002716164803372653222990854199124630442533614489545283034130167201604009214917092170665987149274331616936410837452103563406963172962648945458955053128187018151082955583991948457588942724210667962009377597438719791469602006789469853195777141202647237793701446084380855146973033550645121637814260946898170624811805183937632850520833824415639200287515245202109652640709389890781009651277908345514586512147280183650479491040785062977507996315721026766830990635702338131826382659400931871133089868556394523444582121731747344421879588051427028681978813142913509332620576169259954870922838981249154246906066293772768726724370738190063364984236193527849493869988395094869763830243085434678114659061297606425506192302627638478947551971948123478617541739590883073518743369898704208177882705722518893479266601435737625280846474575670251881335669143125500139700411745827725855121274712316576013256497025724524826494906798666024669248772620443907573063862370383319134216549531412826942304428452228437284454947955293681812660991618111303738124347673879201418950882025671722368768135993045571452253898821213111068569657429284288184373569396576301087638592067160673941093688778800547345182325546483085229463633381226754007283875894759760309129898827175645251078102406035553014186690343705699067057591409145853864375674276160644965604857885609323709209951783007233492509115300248967468225607790304143212814046061219127054116020446419433505961473587534134564498544710390728911317713240535899572592961146909828730673708736423079469111591345687248234475214148085973179961804813957745513031970330332955182982147107747539444742999779986391326195155941625646597436319338492673601785177131052334264077345172760223348380543152385201981264398982254377397022162811017059467350323726027476986206585701390897910086577312940433412215175128060341528894096173939113376754794016799869057917773411667648320732155061973311510817864872545922459609428384550544534341682494534666191524729302704243329311213542001479668408928048901540472255213812047654775776982313360970792058471047022479120231468081107043920836529858254337058339807625310197472058565590726791342855268507045226128124907191183941699482115309665468244145565616235955574308384417724305204177616020482979689705382625465355205248030196520576826635254870985928897919764521178593324450507755005627921002525959618867821450134315352878523804603744692540516322462818913371674500413364657781480449370813539440305063692107975601261106589923485652425807741806588209950532213629135676906947978295014463994473671846496882563341208996207365925307762466838099888618888889649349356018745065310236964823356748200286512980095360576135662624977486925377151686243323942135342368058366275427738236623784654628886149240957711225127682608765570217958092934594326125178582289412915644831022468271033878954877696967689764892337095330511575928630561153286146267381878653122455261455358806792309117427877114903277220148476817908467272338395682366351643417467145131015085053896698730963390329259674698681271044677508381435759537827972171777086617498863879771925966144689006028876715164313311128643472238343716716266122754310210079728681741872502951156833630907674392628461900621222610635450113930365239888371618266082645253527088891204649851210412090290914795187336016120468586229761565088830493650839558482425421728322999256321793840943360445654248193768216401719497320108940167145945568995441924380280392335534498522970783265810564220804670852670341854400728499040400991491278613768842003510005531617609929920339397834416861206047782203619670917916042339615196741853298632345996636938918402444030755079579967285587710339205152165834084508569731436058761839685384700443196683164140424135775198284269660059776542538869915855045038849927729474567871683446239343420000721680157825055729626642862969983668513418275243496764459842122041375414184001768378933870908404678364922762879899746849224205493435859023969779872180056385096695469222034853632870475851331709403098842935665060724918053883970065874853085041058161808666160934206369705397299715332446995190304790498676559491281881085099838720497319613624006748157194164087345435385710693985488231433332519386500450718054134847088076435455667075113132187016833240392115073578468791719220746551479745335255302863875593375541175033536160993995538782101718329159548663062680107981501324014953411799000167263204350651215412257744774678227896392450642693755244846883888788290510574219311017170927002625915584470032056536336438470092272150129354744130543865899152902617297143756192533397853037054639845334028923449946184269175317743003797535800469204649576202508227052245629458596304283766060837631749583474782618490751083191617020462736533633808824256116127084328848567643153109534685844820796233098472706825826501888580434769775807951333208761608141096106245603387937913950922077472500487138280927731795673475037556292105249138528641947060496658053620972557140673495977408041452614117648248519359729610982691208136816188594992140647584597527384353707857069838346322779701675390630652715415585655661480835820031395525922155441118259180554299498927752238783637406985079681704569098918442889616051741798315564321013910444626779643223793005502055156897782629317042844919487246984297348685334114027991230022334473823130937348817506228769719660506929512589858278078547484160554691596248782562737484768235727410529732735479236109032101208030563069128743711578273606129656197642251040454139674217756550268030327907175065415841611082337687897820618154558391649504986334088774414804895866950145308162017159303059067012775764852139820406510579890295464290321268987666969184322262997020950863603610853046363870218871938915727134918960916735383673773653156520218126819119673129251729204596124033243924723877083529019432235156934634757645156964180319537046777646370044263611118099661471497624739360589193082193749942988530216319887453782763828133600888649949497089085494240746262085379135799203713735070973622791763837742516487557272458888787490834892364544209995908006250486146845452130784602191138192980094335549115671272561929526418599378122947040123643384767507856455856391538359456208874986479321820727265102172801026121756454327669301606902163481026902411970749663643872245115057739389024479774038587448942978228996557111515650938681092389628703930239691617482330662521975500109438667466826222573245543289524056740204140129836004069326677804561958536621915525771607605907977377973353580709861129425392598647295744611035702472425900963347616065928882913865804528581367571390602702925553225400117078530678405163617881805449002717997003159183713584219936751471054429022650092221376831396008280470422183084070382990573864903491240177854096179952418346524345944083535423400850089321530175011232209728715341163531769336119698868864639728724942460711836795651000659597241737338107111598490501197945516507713962195221805060774147920782113250469254270588883631980790818101171938616093222224149958373851048329892575423778078280577724258111969849842484256002547883175115324210640893238352416429784291066619171022520032093376366304292977890341916665169582002385436683637939041824442558829276499003197736434644176588749580159740459760531544739860768469118572302633523131068249265417322627656520544602549715582806102703611483392821915887884515208761159246900995033594618097650691817074376732050296489063082198790661856213758736530927450724508932149292078617521965510497288491782533549278382608654083379512493519863673946730124340243400041362492847279770361572468415263130368319131040896824569142004652189314752525110702039413133916349791645961347509635167888733914766360715655153338050712733358512724220626855061096075727917400788056707476054864577269525304008903765456806445947629087801302442032620886152310080074609913618636307469890709992406936816429798122253122015988537236210958865918365669201608512670733041477850542461934581882765454161305573946099525483024242810876175979955359459128374683607465886199659921642550737532991743680627946369622812861840627974639538286530962274034458393142751247625172530052676919208014710586470568755527716603158391941456676295390715834707187752918661458413196425963432819113067474644764251255597044649361010648113341859625958536245914666739195472676518596338015478836048386894180290220241199529857123865443725056012625740007431461691505452953477811739048949152648781788984352098901437070019059633098284606289989987560053494144784241418984517153820348273840678759664949832092008211815165853755629557265164887035872555315616306751848738415049658654491054257641203678484688838641149638148485315993292394035388016773589137187584296432739181403348020894500517049161590247399773503371652422497196515088969185647940922431331780575703619782687722853949748613703273048019098188875691004627985737708509198867248638405083345184212384769066665712023309815463152711225617833638488251729235995322676151403216412731906905795563408577733519471916125623256467370731542748094857822323750646961662413317773191881406618832316332579347807336495984988780335711680565984521269820340015854259001406111116508321882409054723253283787064132440901500366357408911716124473874094529002671825600511090080559949921488588795705699356263466561144441660844648310204261530557302610920129599608320347986673961723249865941710014215295520237074691287189469037158532259456491502351775850839825914325738494279991232354383257914740222522880368186894542795271877212053471840076441890299237140940576768952626575084859796179138947389105853762879690936672344297342960878734416941195207748988280351215495046281576223986389845493761223759277286994551304776553181384223739506994620845262132523042616401592142407539668510775233762656526828084779818964296272045892859583169041579699377939956809047468176176102345941656905686637506563469047614817593390005080822506783201904364097219520050527760770180159400658539180892170567872972155207442739938320089353015485395973174260997520917840974287451430245026070639899570874910122825527688070052581492208572902588992120368611341446128766651778994700291025730666672934761323776098931653502207337456991432279896980484557852450700467557095476756828336884663810226213490834263295081939833674788265317719817761238534195971770232381807921238829473579303628848928601641011475685997186310674697941798420652109217865473276241014038728483553039954459923256668131203394226266980802054844989967218224815475987486141070883749720029019561343927920097266023050393072528822514670631281310585081365744432024599048504894558388147139056479432327045893434207916225609737515313486703127090494125429216645630920338351663410449792643812877713167622334892491218960234266590045907797409590725709141797259124327504101530013792480148210743826124366744519807518599051514195414210055291854812594501140751284346244514576870535593998872512627278117351663829118667569417680973221253803804916052651696870415503752056511047432925345781145687298339502524877760233975492303810262253696120967598411757169291907353279270833692408883266289088760335020625626763840574350383361151417599584321404056797950528121712020252564908475443406632480125019389151970155673648748107613671464581185375785405050672982054903008899940136428812966644067092704260375803211211130811141787319759737775727609757688081373989095073802337657548213859863921639458378828881427832155857120434586381082700019889453464893321106666740978656733912924147982885278771710858618581469499465206271589857577543323599139717793904167105598008251377307851707907469185879298371635045676783178459755827497752551433947920733365082679818429327331565967553975622033102663256202742813579015244186379756481077807661135641376789258365569260551233113352558362191067939020860850102470091885112840112564544928199353313925205320771618162554884444825741173282833998063560183719016763064311906779464514566700830753707811203520477767334866571327636274948648681922193631270564238027033267981930846046558752729763854770452596086509107771051696287348820721397581183357596649224698717701247356305150864249931270799681413628898652759322370439093859265475137139618649377146893789506936433546450024905997998056248932024739239271434548314976489998121532914655547857958052623700758363904398865172779626766809146300370620967040524021760520169362282810874451088288899914331242532439946354854548100984021998433090472432678676190922435620146545289848972778406716479948665958230222555732505671481373945395222971020904298640177477495260119391257063379570944951269225582427227975772292052438036694796601885563714585162225612830206073310880012578734819153546550209540285024868948186776656536059653084673398682598857064824945025311453000653741985660006437244631980126183187870434540995834042120330264712326443171135323960541043547808350748454613694616043085065949532690849441617482208820481695327640045949724148331785285331218165441863969826467659723328787961057087306063981307657399839146849742463583920340294606895176010749981887879857084343653770240509883311330730688619939771096700123082870011804614861885190698406037595818096759005727297616248146300430400300879366308930403911828023790271477694838502351052926065566568338445561577176478656667363213218132338001663948351552325991681535849625326808555210656053939414111245572302113769993368463291528703624018002100066101721280641523783238614598635226732056771502259410247203301215675893963276505520550215784576585614339973329281027616354121815731244667955751443392286505136909896825427196193052364086938922239975684321768212101330009058680163056335071388248751670603787340772428085891958189276106758536483828538851117872706824140334914165735411235723322680233264833263216513915192533837782667186396041728318227177188744701817797905148860175386522943471539229044475663589558126536216484031642482923361273098904487635390316540561944022402820065198855969288640504135399389390990343804806243159338124876637115985637306875758927176860759289072335750238562984731340754779886245134373103186270046754530870532142636723186420857679864097914097233607263751295164177087386618616518258681708247408443120752519164619543807159023157969214821592494943373981374359908757170753477376582377234878072908210940754283857670411777273350705999332929615918781954772539668376544325962016589380592429115265953125887352769914563056402848461224161185474190379852442545464542474020622367454401660749720957109564297015053083888903851551414579394273338425819993767362316592339076350655167849830113163846875234025183131595207441156097498694382512139452955188828704070168529262711700890703951531642221366022938592297756466616702014613427887556693690560948236821191223627184694624494311328257779098596628827215941948020328257796081651439556185622392166015269969836733066171359806659812123026070532725602147188546799631474624815015602822787518463244177637672533699773375569134135898952814971545401109978962760278590122975184370236333645777248339108714149693338540705903398490228471353507803240332079633696988870272430678908868292059924696464922964810682566487507152026035373837524767087464684842806016464139563548279184469578980445718582442903518183203996232000071955340738457391677217994102020222429622799014423721314037410815103285860672234581383835994952691582725551904233328252917396076033019547471832782041124614337691382282568025840916241706173057614179569920270107072601014034374728275997186743995532860641750825701358770957954172690096703950989256196956433900170453990778425435166011264639193698486630466370009876630070580228382121461314949369883660875808268287666105541983569114556143015371546212707952855560834289564105623429668023912300590038481383113714351125661581909428793551325649230791765949649837424502616151692562612462805770169583737139204867891008826035886392789791157328168605698875580467012031975295669652227988140519195865609123632979130768177772161898159964405866281241895129896223061559727139456544441238764744995796402285878464588359745836740353840307191039109168385089074585142550254068230498034950115528287262297398254404470457342259469611181169942265593553388135751304095253842422408675549431950697055557410923905229611072848583823706812475089571154507821222852199926444792309693800386957110379960074177042042973838509073626892216117629326947238146716364269113620256726922760550338472028568099630857362927094715151630194506618532508825990896050475311241830960762105387698650760691221810777455448239764447801766374304757353173937657292833068472430394671949135797156641350076896145725032516183981634401043458835018111121999361959304177647296282170885068172299066088455954259217040831269318259088388755206975363121410620490418069971459594222642264923099038730501717249774070027963970219200176564136513079576757842045372145191733752620293448063364684107789291164843362671727862395873791545918374177754737559081348610651460110557748651567131032582386574791511700932217059398581791354508169987426691991590957712212294208510396332557187961952744667784273694568892800360075340196320083490729546654977131344717813877906809295738404865508155779369710445515860858591614667282560948313082318197393303469243962313112196284153487909895597240948851931311407127271132798815475156492336825317309177100574518503340347219507158345450324164579148788098845536087024547351282471211024184701382728129561689879357118341600147571738359114387820133668861026474114751656179327888602943005626709153450964616456209666565828993874255184090226573545402684135672899283694560435439453777746801019561665656130519798983099262375949364740564124008791808413031194984279361783690541129339265145505694052400209242297077590444323785203593955649585043139806944124691561247147846844809127513443932298814826948497376479146562671429079907398985872322076287917763216704411529550273604358558164276062426230750783929825733211821315589457228477034223144324255755117319661742099687302474060628671032492234051860950455113655927888833930857034260119928657608252530743212720144550530383387484870478969552450666226347461698971139447151734145340231092081570277295227661125536146364404805537580737005037117633656597683085326636002743455069277589200367527139966731755459563432524556618155311423455816735842385100383015239429124146361793636132305454802848165822761317555453549791487811830238102227192005184864708942604049956372851506751271793117267791345254792772108935518278275174497548432625082996688370137162277302565814158421195615039208058435772139845847452010724733779348894421363232794181542830670654799676585938933222517601172896352680988955868832805244925511123836747087652159580766584379767934355496954376649557470173133785256859776570071600097657184904921005765777262259072073573129154638065501810973858470909658883828575538622775047114859227495442332503323453952906285077262954068441272082629860884943985972245092120998405222399654182239508572276931546010546545951425185944003409744251464952567004050842269197754748372897114700995077370314267227733861240039831850120303412354828765749431968404455302788152498644974280679913042102474368001626304960867035731596275289781739011625030792930742840884073714843072536570135806685471386337005572943476868907396937999043130693019280723353586720782709122687919548849464058720145370991269172710726055838140753648118230995532033667039128745984748641895377809630151690637099548521167026562665856047416803939194769845605997433225539838852329389477878007782441945347014993991571226526414035532900937244041715903452613785163083577043991594294038745624258050098227416450844602732973593800244671603420072598969710240583503976406857857835569019270698990013529650272607038945077053806682240962309056895717092430104626279640279979512952430933323660134484094110031166489704521959801717994758995199248925394088919287546968734370822325867866177910298725496304613897648457720607492654556310889071955289797084803355565122901884041866240619322877930263446562484453227036980918238325691511846898724371957551222320890622061430112737953357894788179581293832664323500100492051981259289642628712876121899756777410276833000663314860740424086439190755479885588100901683897512090007872198562793591528964881253946410154531959759625437675474532506694503108026338011512051150992368357513140737771034174846937587945812637221848350267450393734552642424455089395106794798972493797370200010241039998222642385611558550957437099920775745190619540719476748669287456889725375961260336216522818665665896254602782425765117524766446060933183620539916287698550011254413200884464673492074328658459495546422277985357571146565072690699732341989674636220937416460611171574276674124029568380146721873362116236580721234566228236451853808927639416144523399039137162045079302004357285104897301979463806728431716169168990699188261448019336429830818845627720274111506684562545048191649427469692970407547083563866509771200905175982029154843694884994092217409717696626109764913187925014549755605943110174943044294114427650204145735548280900110493239439144541030626881854515632091815842218469648101005199915000586191363526777168169952536886384850148732636528304427484193173103227975346998879206242268299433072878247247866303230723110275122015761397392485581405665993136630435359222199787600893605619042210516534231583282691443341728413527306136385534149337946587097551031422873585828310320727334899195754267738347213546555072846942633375859878169684337828507739511528203042275268241145611236188176877608690902739800786938154383863284022733608663872590295403276395239353408459524865635211006230627086261901270385699182552822070136805011968841629725385397327576088473835710075732021498454514506020703692017935701800552973190337818235409659290298480602801215961398285558717672880216864967220609455836300308505857353083282562084573502541704340072451232164506553326885597267901830669037504135188749948007386223968490849048249041015812218642474546239940789724531964031742146022510753072962555648885409353070776082738902472383129293118937001730590141891509602619326018583831327609734614097139202700600903671805899194564006234758874393700626681152017309250176106111305771247648899332066505917175703465882418924827328676658160163285891117315672680724072897492614722980467400101745353839412370262384037172732492112284784601006328721710566205309609907081684053982755142520240389852786517672626349692629070087457017204977375350238772247840482992533714354248404520853393720631442278404918347663907693517996963107596983822135861835064227752215999101340906871374377245723896137017132830144586098891311857669058963744504173643988945635086595814741462040144545735671885352379364191138831732361065955174477979771816748383022438902228768832236260614956449116735390789190566595138736471142042848946691481241679159026489113303202125235093614380823111252362023735226115556533837438578992612719707852160533850901082091053368642059201274032260631421893795466827779476611685865454193179139043461012042859359271245167735877008305394663904680052537601413069735152117200139224495279284368375138297780167918454874485060760798623300383620205111254000780374724824150180380192681621590028041027008385432470334854223241094679156093580946816511437436407974462688204140761748433390723038133580487443769370152675944956959623810862390610908313816432267561484735985338862557689647733518108161800009838083500965187936595697001731962709280455056794726427062992546800915191275284355724940295275887303766998291472633063522700735301928023222272853426096895123947242759365877722090271341841300645945735074614319563688842799435501249116251147254854097400337516140407199619715973627370932118946762873765761567134631615040368240925404979297085872478176710362200083762682133306750197297428064421949552985698832125544696472183115379090511685887218951353500750298929473696288593713371851170992560501569279053332596593474482813434178152696080251862525860824264212962770242503583727162966098082914467361210417744560396963547434671836059746993558419651015135128914212039178653405133529364628784034869493918710328873314971081664614410526206503236740588966327881281924315808515490496030010640820378891194555033364904932362599917535520677792712310009276355378969218436596562707159252844261865554295574442931644258017259675295210253877645781253852169002900783148459151668757466197593189603815185536948564501872366213410325902858142544715597072360327017156318828629891009120622008289544849188380456003700514004207518618690960129860990810293742096577387962047178991903531784403530940028725353222633700540396840685355998404634341493986106022214489541609115262519710994342496270720244827681218144977291490248351582631684874926611638374583385842419207791300340780005199455138576847637509368422185945057940752654299505745959288243005073886851584062458294310481213326456861731336499443211429187609702723994291127858663685983431926134564996414658152125092731045618538283516121504785448771456528486672420871560371091395464952271447257924935745204121664634876823830819741996761953053538160107210039172073899127155020143131880281593328192309961352406980469249314754886080555520492912400760798187848782439612265014008253055001913327309495052935173290947540862495429428726238461789981674331190373797390624210285374367866242639239307597039250834516886935671682054934721231220795734252382981986455657644691908246170432763653805616668029537031852784563413686882067718140463625975408870095652931982254959575392509748332586800757214429940813953463374258046794905527712036572624894976607703510793442501108077447465662834088287962874755539710506341513438704840860018364917362359686495186900116817764872157104453794972532537966986846279131493960953288689974527116506297475886317538699274635049016136856336850930927477910631195198657767311014571595989052797141583681693598324257392066347798310104864390441340231381887304113506962122109851922443500227584444109857479604745573498739636996832962819476632093648860394998989638916114301726882312180430017731646844845970329547021458419558166747722117812179409837280410286336196435842884151071902813603054964779392371792104729448916362374863136252760685740603175313025789905480390977091232385471010308342677451225616457900551802251707971072789157492340879476871817783437103358981207510547192633882637100745727743732445751555870827982102244335732641612896405627000752970553321142936748076870103464645946536764190113703824250934476159635636314328880592157138442505649159476677590394036817130770666468943593973004614869636894460506060278249140149887490445644135000892298161393028787445854237600393339372603115400525048462660686653092541370306280358752593014574883677977255563107639790104852182986199624912494118279095131123113474595980041080946753426028168303237951751264801615161189472880303218140748883544189097839942816544272067858596379936687680883579664720571279247733612013059404394902702489830699732523178382509644107030810348332963790156547694606277650385966330665359107425710509096523973692871923875396785982197787203587966713138675406275846528765794780257347245089463638715473218389844799800064631189049237759847485122272573217210113502043270540257390059567633587619119369606885473361864506139092810942276481123875832229658924570207458816355422211410380882542161770576086835553834372147947560763399950293813129844715034520725563296454237536791160765813762517760200505513150183429166193498208154361793418379884383844266595313738535931934477697606411903704144195407382653366809360972809333875059458676659517483184953510690984120430477029746422111171702978845631432931497290714188515111251624893604421691646222095476638028847211324712561611578735182792360978145951012577950229689277502858426403094394793919258181873667478029187752314114585983098698678399799188213846076719327138729787168110602626662886555189092455286378846587242816775649180486367358786127193132837570495404472664409075115813165013147722356529291481853429926057011963369824570845123724579862794125405825507688352269842595709355941937944737398738204702538205518034539679938031267467600989000228797902588621715849361117070877390489635134602776900704819041955386218145221743520761312921385675815765378433343878708737700663778577846291510412427869329229820117323788491897053841276156268419264740752417695971098516759767163995875533958947156638125214699785901643923152800395472583377086129189969932314212234475580932304359866210376398097313308751263724260409090473049176088812048528932455792950848217160875531433266386908029954507641474184541482139517374310564301739340354838159920201072533993232341641371923077809782578230849784788159010061774166991098899953893971534583577983955912335796283027539454483107898208875840544389094278479602134049484323556896852224724714600804497901065195794870072577988977791374894275734974087752144425874499799585089597176251567108567772598636607917029143644372815291768675387668790751291177979344633895371062205755196968921416377045132230726651426247701259739766535470123182062651040118428020878613945854114497929955898176703221340106559157089197140376677594271386496751676411355319247895127947843294120793174322008226521547076490200385989376616134644670792731008319324001126295192899033308634154147873906021536812728915179485949781018512681332433433253600206267446732600656624085495852156252776566701495522401192025539590368161399519283555981064907626812521362979665488653568116659086754533064555641830064563301760879845353015016426316382754071891118752410324461011921298704281808941801920063051196624440414747995102074773635644497533262307326707269755392339791643735526356190837823026640523112643852551333714496521761020420192379797537415037394471320449130080959371760661062512105427917890671244127128777737110010723239380774166242425490885104509136737846151276316618685150908188500951249506220109937248382382378004716266813398778473459077045318709297160049771595475325680067404151158635464544019744802050878949559834845378212479737077158892167076385287467853436028448503674937729974905675689937453180627672026587610774688070253357429706372520253147171143233131512592555259221262746482439224513377729197195795755693892796556676403925578234657530808511787786646350767374599963825298093442975844189789845730601210604712967873305839951232469143989363991702660449506571236685810158654483268074339869947245167407145172500808348871493679127957975965180201814462836610589341522222207591718852832274854315619081878357716221701864072186225442980232983382247065362873907505139996710935077730825043974681044958413881813966496317404973056605101648817514406478151222977936878175869053005449918175786629920667008264769915915659187565471453973006039241930016365838998364885305862124241754520950321076003479292899483738446579052120813964580410954998581450355093862343010534025559037505696534462312142447506848821408803996465190471259102077753458332814574950040874670342943771374689833744041894815940222958444592043101133161533882566698745090064347604547607519747231315281283215218587783907588334492045129352036002865340716919996798482790672873972508122828439636367907945865194873809596174904754771470399705082745974250875300332682144468939791044909641655051965141443424690348826378717738641291213706461480490077852844646301068947935053052821365620517568856051863680713195996269588444191086241416681320626363926912941486507705477333183527684691305576951314869240829625395315573312625636292428995843699260628486503318448131056234600414902089074132707545584073858940131195239490332527910645355124613468126081982463453765342012369280957900355406750373262035521917886838962210821488433235971476409917534281440105344288824277523404291421636248375207543161608179346790287545557820872896500552654105127177802378229174706686129271626387023670276320401788815113171648661020462259805245877628820652800229310464156986043461649841845695923463742587953302859813526372408232100241133669886093381354758687107325711754721755773098181543934950477746222779607765181850097196339603877626063250218939525665120567704364223040008952682800785440319866625144690489367147477396492384600082151047155337016276019344395054785471378657079661543168072194097057095749517718434168642256853400242577933411317936625307196476994352930168536274954042605526521909348110456278285979875900260521374108371436180314670253154342205007905020970777978830539048178283858667169750868638664494335045425722029994254127003455302591572519649951631152053416973146137935681415504392038614382312786667639889640211454499471071242254553178943832969546768565047692335891083930705904904730506304312015896656675656697438741103489732845291709588307835151983039128057803695024295184681560419448154392155419288414521549574883704194662526591654983890096577817909719142920528132704256501562165670422024854360408793124521150475387850612803493269438575510780066447101508544655671547057399383808061535771196378272741828138592373953034407397034764745325158521144517114970064183968272375833301217048353977892305046717980250898648277690113557376480067217110700619058533277136783834105043589658931791670413438648537942684335519035811457714550114326175516893107004680845655402798795421734923850918137753647653797519068821943490631158314406553472600267952728487741863617820901864541974009839847470071162596733867079814159214727694030422595958077886195507430146725824402283962072571282532859985960947547060532299165149563857537664175258756092721119281706019596819493140325500156245167822750230544271767213753393553128658285456338944353109426774861897465883856294021356910972307302099857700225660159230864874406513090982101512727530064412117260316137531765744727716804933662364846806783181776920413366911983856488893072840678114853126851435889235420436911559971270907589046427463353303167344959678742577120152792721995098605768536152582469012259824047023967498105481127544366057328765535688604053243345422745733714395310756590772861499160607373487728539819368596940574463271631089222250526691925449695960216882323843523904128322626030490080054577206374467270708140857087344719040986573899331682217323058013029081623271463174910937606163585421174258129343150131907515496094403018328588120951829551811225391047260441506253740186479351101283849965517808392730493465548392877738402679126707176236423240478587947129696065015178010674247655088704048489879724761877909965214856765568850200750101148363029508077845517088296380025782516423124590608414760801557807937518077760730979083239693145498761521784971429043638960591903366773070917320204491044485757427253667195848650129157333300799597113679088517121316692109525671193601928834953937723198458610484625431805802934074357512009946509817683422608134231711465163344287602826200645826381017974588687668690969496959915131232847639422395426270080439488585595569018716307595668507496420593137683442646935224198600256677367582731963525044902194232469403977413183368373681778547264196457263345510464493537690309614024467429645422332707042318218502782007203025907410411345313091986710915261830633575022738500493727271330947877390151198421117165984078828696089177017393482849477054101088534384064200346797583888577285934854591655330133521984953668818676832412150500578793934727340766028555160332778697546806723167746501083071542319761860794744891575830991463450855441578127290531962874528106415136975715477182734171906543530030684075196226853193580745329707011456092029380366966030976935159025457552664294479072401197226415866412829854361644377752325909054037064881922378649557966813645528008500010266041661810478477583598126461982180998872100780390998471322368681301013725420310094840506623984213470190443914113997391473018057699181598325748289378495237485505026031597552022341325164799562105333171122972386456142431242311307680174192622056301771856274882743146135178258117128758475256983139057882571224049130639008940399961017674521923917117430312956073675205255342252716654785950109845307511437092867248375183257615109781892053650179486033364673356061880216459461616201410854118058596975878816712367186855162193362150023425630022431524921412690153555702679686868242360680692410509713286113287409001216485133836519366290243797250283725171535484277142830144479206557253539525707810674033830917648386469796347890445971542254951679114835576114266238905847056701728790315495586267132670262211216171653213717637385289888663326947839179158925338200969177635823725869934475917777202870273973713172334089923285056302685238084942419001140625740365467201855681810801011587145016824307429970673811463990032721179852703755429008803630720545058236106440956151759869578267782761852699469424209880123977662353335949085413549208666899263960079968821581798476477214926788315942753295517108322383465724046267017990043375548235372252515611466982526527629608970196223121698216946071764156409250027087163842974775142401882331101152948080574255666495714832689244181974386354566556910779598211558312339952730794841325018509581316979731592132199733386252946435856624423380767576101700992145135608434791387067898187613225848385722218723174913012899238172636501377816713521246156515494857616558670270129200589509285670316047548268136226413824654983323822444017918596964672840130423088213256093487108209818979857209990426511115953709184516087654019590905351585572551269734568727511772331843501616576881762228738140054948374114575829041546525017411379268470084267330628847441885944597162784544876200986896131113485491692779416668775661713515483978263950139399514769025950338705213459815737176957050741483600493219559741516504894612806712838868179476418422812497077692947045478471986759232261926908058584301510372773033414914209071046798483402901198560509274002811039454216083939777871451455058952412854129417461169707742122814455503423359978309252841268985559972958806165332536429854266730553494258236414301061837084113975994002972735634568547816484217862064901631670726566593241138321909738713527033076824469498341790735556374893058660855612842664180533514961140874050548174524972382450295964499096228697490632949090423387709840319226521842218036652112897660015464107076989433490579449675565335043565417730161998966688902551271021184059744428183917380455938939808495209994134348442101061684498389114801273314045988991663600774173033141685067034490069884032530967842020249887857402198057736851215248346528286404870773938055003453853542873848563716043326263286907769174654469768589342456322601628860879565138736412708436753854235521380701527881633391020694039657786566945807933546723899927183914702402318769820517829607502207942257786743335441774644786529757251655461431848276717743612381457229794256278027297363689412131353685464121123870815111511115647045129196954435623667978676333075650624649291208246027370742309654201402037219118531390602388915410492200651813980926108186359333818202221071897197297659718914720117043375608939000484515420491016611950788578574718108345321480171084407787550039079626001331149212261712340456234210283298967998886615484010797531581560541077563449573259355127370462015215590147134117284823786093027365968061156803577766762124846864008257375791963064593421774049977676403074319803225693984749283345082689884567819036481829352911494677659297362568609529611596376110981761993509149764198122122047499456764745585690487162516018003327651062277111835691968040648150664274163672631617065454974191330294911751024719451706490881064520606573803884809926649041204582831789196580217797191293037245335954666764638539435168257830360118334460101292601253862274261270398187506255299073779856741604127527375123935144959298346015385116530198134728268922291909807530650451007374777068835174893232429223928044222689298128636759088611948308235782241781137986548013792444030592079158553385037616378502014581076924246395935792181580285379492751007488139864822453466298207395170986613024524149670399436760249090064438583288950428412889410051055352405179290423953015739325973370806803343343784238263753830542451026651646689343514093057315101086754045090463938045896246723799719012617708526830052150109726523957150542781892436520109199500594991704469143200420302616672889463146731248881760941215152117450772616974537940401352104801659999415450143535357629605860982554629363416869895291529211227328699102718281808073764920282963761372065003900924301400562955443567595438724376682392561208197018343946549295854089780815347275265134009078976194074938320121002858877332611954919196742623927932284697817482960136954515308401240207950615922183799886483334400780856854316445534525370418736628645171709195655221362230543421472737658127924252861829706162640081786823319557119500269453539636962342767571319290886299469000543432927609830251701561845108195999992960491383152288114860776749420148021830582381541984901206601946007058191307984477301533041555962475972699507828404916785579334731780214559034248712702213687193914511634147489131339082161400342951137991567714546684480406286275743334572005531863191086008747901927233214207914048018676792081783963133170865214401260705572588149595749058165744789733109210755801662432385459240680899244545053733593194034251849906728597762025527929603440623057271832382935920723902842522727954639937326270550345477399495366725543346479826166339147180995688834820371233699948779522912884081744217798493890563475496796988334398728099480220388738466627649432476954303123677713758151928528772967017077145179573448141808962485941480612030322549128011053002444382659541791766097694627001430993259428204475294340330934701467061236874661772609897268940473347002818332038705218610832764657945625662957377872708217830879369269109016596334286070024437965144111636163688838036078744711714563016112645348240171369013997893953913162794831303044182555234768536400886542722216277403549793168782845762266392211372223104684860977325569659809032101066045616502063840733383558328359027362679140550539681055249317905931511429466849899942309026180433921049181982577161344230403116172868005121689541866261642967427491229659918533677854208786804383631010773823746515524554651604996509209078678442068249523441544519339036150339328465092918176007134047101734540446164255236268596717310534324030645792045906465519043853572047899246824397287969748094513378072023507636041620255467267496218182903111970656459730133606135388506445914775679149251117623199483958958406461126594664530224943970021838310901037405314298083324045031786779423151257060657080043128627375467560829552444378401412170992790209534921245993052585967473885384247972497962181881915248424409762057142487199311440514049039852509616729200049408938843626439242065784893054098501853726643170985654625197113766334833593174455123789700921710715396610278899730321136365052400403074086114583598632387561228897862382428984205827315630549430530893512576134881219333165833665512589130345093380090417710117740895186228998823897944398779842583715691368172598144224965684718726753292700021477282908629823989454122786517130008458671794990403671191801382440371191856949601144694497808190671000046952180299138033540803247381788800443247038080067729666139241676830451219953130758040126212383056880219621501911395053008994238132838758150955113445240338742943622341468832325387129732239454835327137539542725708948164068529437204916359657121119927349597453633278983747643273217419529948373246575432554263063274212467763730777055293626959483888314129667684770380238030476325264184874929826393370556291874786006295940060003713035869679845564070450668513513913296923606773304318041486300582085994624054336965016663293099373419263034980166774269121955110079377859823915801652074963233642662484376300367291571510950079361492172006496691263423620065895663237003886971665483997166134792165440454581071730490895649929831039977826128362101525579832367260544230407356688682375083036255705061134636569113227171544739617306386564366962047250952231067535742393522514709577103622923385303239231801827042980757956887580329625963066868732994894045681742608403366183341761321747537395136517071975363884390775738696872587128795688619233375473853179091777885963069831176923293786781141339734024352992095209948528704633194889382062174293047519604104029255132151884329871437987578960869366494382235150612203549325616658113551613633637586116186666399435776095849980546402071911611060171308462717026687121065967932159017011600303859017644738553620501812863853876956803190292115844763656471413776332874652503110747490320679377493115246966713942297233445134646466601138142860083241227346940949814595012697580068589849349218653058877839733163468554485259024674742040327574885140505373278500066029012339450833748779130566337402426905181443186448697458583745861772835917638625155533155751909540786219584539431058588273318341252831883852338562965097281426263690818033897458711100384215880693709533448627971622404884005394029395395990066522207165113295731218880202951497175538558200597217518159537170125604887125918295337716435662586866800518163493800444094391507773892354477888011718848917418548655504018256493420762381697394002710124668956814077785640365775716284836966425490568790600626000892461404979763621462419446876162929112830596724427224156563356613031103349273546801438083197998696352715158044396261841602693010733364431347485717183248027001652350888005178326402624278952337087361814494349599101901979728150952460189669117456169330102967717139732517507855852221805540798096581880599402393505715377998076832600122104998587265114101583933671822535339434963175453201458987237695207029633614494053799779541029729385494640433232621866007435690434338634611306214587299282564623339059352562925538566064720001523788205614769658568928296695610334474315477618353505813068323275141147555749949480852589914011073104510840581263404353985441295785722477989104120059360826694859924728409198933621036766618901715246364035676702944982732316921291147819269662704065684068682940820866125745897699863800261741023002277225707283731487284097284143745658337967431416786093327503941495936476102971857544569301253587288932271018180992766498876338976325096274005997772855617015856067619044727623052726876578361849487771251882246758931008850486224731128177819541062966368137010873830702975738109837417328307903458410239861840667036191930793500807619775221230867557185693195948103960675667843821630811464362873104168957925835284972925382083940100143762247909330722840934204842192101818503986192819009128493959749652440762269339598600621665286081529952586428876920572913457889734310847674675368255988406889576507203860980689844738255736583454848807856189181747559160803494253155634852598769698955519198408543670735656583921374227092193849415034879483823952763598479761054602164041777239036646485760605581676305926916452200708276096190627942078476108696310104210201005459267499890460793034507449313352873168335465157211793778265504360490381258797418175437363246091071704606290684764887315200361050091838073619881081937223946804613751676073152998528835216292546762483530214014049257341188722594963440511010388104879695407596487943424715260996599347587438235066042148697541639922168940532033332020800527464819474151939479186215121194844054222563845749820474233858676700331739828797693509487238200376427679530435549192915202018447988743626587304690489018303713902517275290404100162748786428557706929415832811194268654560065545573383974548246896388925521233154492397593563748560707502358764236011598370572977912652697896899396112119149537410148960917624123727522976273110372563614781174719152839419324100573946190425913150466544177545847179732362281989678135553678413011300027744340233888791007100301300315713666300518168540589455627024756900724796992918247162100170595698592080655054878001943198125882024938704739744211156560523366489763655301513805892268679279861220664894571714259669925698848772207476747499814035120408517641166909151371692048293090155406782674469524624407000818124592273003010761485603464178463329862865386142293140730381486605953728706896386363692530208865697442233242616068237561132494492311933176322056896187705424929440127886075727618104615439382177623085100192719523474396167838486517810755996628588668176635704541139441014245317860959867400869707055416001561868995905212649030638553679163671903902312029208700339481730604202686296494946537035613953824494083857063696850054584323178452006298528866682594869352961963426398103510047964091162025146850189649632279372944948551489083822180711110348579581119922116466391009274262684759720485897369492892850570033310845428646497039296077536695707464552778839153170168502894051911646356952326035884350696463013875663700045334815582475057393740267491515339371439599020582189663486934834604893497431218874918673917354513574527204035616161430212788935617502554380587355340393355330271769858387157726127044792068514812511416247492440999626844080191059187797044956502208261107803746023161724924562795767381970061806932263928674991803439958185591382767507980220400089530676498407919254624999287749636438326901114975377263672302326561358865902332654969350574892664585523256567386502871149666316227363354170591172175918389151356238800129001955687860635205016168322105625068965180283171695254549779521965543137647866669864783574583806822521222732437580733513098342097390355071280168186580107937724239674367960549578855163025502761734878660605000658652849718019524095638978502579315254044134693110717551773570997962940701560584986128583988529706825895719058893938335014870860817726391244357960655631148952870367900997254062990982736341060165878553415739442974335748994335832985911635036243570096078103515095140366025802735039386854763464678095460072331274237118357576341940658656506185032902794136046419328358935117845661488583823963652207937521000760465470249987270295555939990744386662581692846429303539454212574754874508019493203584778071094759261113259951677972054498015709689691684984189198861255598285291880179662515350117407705761335039601201293669702144320610307433396018850542955036742150293803066948193647729699573104671083563011524835226605605236305758555673315813694189089239725679484508825916689333317531889433866654214870579409692178087463244985424736035958774251967129344506682301729006058799043555969932200980402424823964869554011492389834038456319559182891655547049812974840330162925737178141495812677191490378853514448907523286414458029997196571840227335061324622529006003731462452592578425488012911664917304952450437105932465388139992298815448199966101658521193474449572854496835352311602890275473811257955554256406828416619509725260979157571098217062283745043639458380385451627641068787261474633181740983335324337357748962845786726239126269360940374290251114933223604931075030488281095549707776186223651516088801398681930875693633771455818551696447702910571950993796323038604990208150893269122985252055811452693527270997805640180869881981451959926475690966305545426291673929031750459071394332989026044513266864190135742490551285473911900766287033631954710645283924885017392539645704670831456262224645841632273556778585412746971454878089283400558425374134183157028342052894057454857111723972114636841548262816356747653334472483518750821021840268390218742510458343305020264112747228116172231651359171855676230922320704184019054890013577919515960022515358683608138280691642627354725892728508146819986817534734052044504697641793524145364721562894912264915837708458064435519478328409406763087296089062367159490642011995157819835778299365889507222514354230594893028427883743895085870081170392295245391901967488855796264538169337465392286877940608271095219101599300834123616988405496457192388007507994394279537565192736120543411383131883966921998663267252799663746790411331440284335181300455788519548229900654857340892462471706774397853692704512708792245723908534221739512479089503664842793195223718999229407113623288038616186176713446285472118471891832113871717483042624917367515970147158658960293052551072044361690917979070118396060593722584184846085855103472249904050817794365606168016412149996956329357650070552074672190135766573977837147040214430976032622951760019739459525518874848481813291073720979138273255626032748706127181099045527274272946258081673721665785489332705849735795973912296669412968827938159526542469312001903549173824452482907886924171333467913159018934421728508280796168776799414205135538182597592906744164364425944909519541817215140297283963511106225354920671418327732776122268632237868851938372179485595877507630187935023802637064078336138199445529748251197478645978927127356049709327113823395150830145829189723154641556124284781330402001761306570741434532179844405281079611383986831145877173277116963504143725727871211916443170749620412226102007149730016014387814565938826472585777563254303747802435897611449792115211151143760191871932241773210830353441587566506287583418943635738467995211751699613373205861591707517971118822797217486786078595012376331717513392451874197913535422576077551449396002706367282179678264155725742198634117646698587614608883486829302554684908741750483331820009213332379699614471242475142868338445520862681555688892527427914606656019148509409445917580133357203605831434534241208566499274659463078807503059139182621943203422440370176984035394437157501959770168717751458018765633804670461676983288297890469760707084984177290124038685785087298430338051868336844969988197629930851628830876365578104113608656371367165080801841196048984112706171211039828925573531388097443305064472452889076599218137677591401400056587931898536671961806143531933911807984984730141344251713294524310928325505606049979844384838353333360588312223502132070976371374119763066315490408119288345252273688998905450618818430311330477593510556525050424462137994084655123969989688077931686633240167531961966258538593233755730290064433081034112276363771675546069223776375013905291444694263430478888844075071136764743930573999481408381990299758686977443065836860106556621468427479958099814551572666013424375092034632180810962741323784383077068642879743357887609821485197430525637644492886368556221750738401486971258028145785858575796594352984260604505145205158209979804892676965947990730605984743266139808019184351683420183359453651847204445653761743505769036721039099850042507145488894010853241903303598761473454541945492353047736179844688566801634243358842122381122471262632655399913584068878496241120935209831140771209579492035983278837651712809261250723712115412564767295514652845308351261284953738221157163733782487208541420982542018525772010610194296253675441000170405735278902520662025166493623215746704693881599987909604383335374913947696399176568016288362562469113919270231243037432941449644237099001252584698922454714959505192010972906387738940444617969262230966221980521548905986479589639535328166860260589374338303734934744716291312665008148964148487532154425002982237621059351038763653527813344191507113187262837183234465399193513536144618292216105577396074716690501512301380460288904099939642445419957187697999334471544513164163093390404702681225862996742951631052000231532513791238024484689028361502025977196023623212181518687517494187871038627869677852260446897358035606090231829651170139544862713699984774936995219221829582601677720786172721701088076462759771412186117401117285239412387687396282262530322635563562741144218426438804561598715611351665072407160553113984235248661406418624655230094973086011107398383961960334617310155758838938989900867746995583293413436879955578742119717528777531477332277824795698348253565685567449761836453243792231614216843803369893464492390523706539982513446781949888191849733007286746350443889178889611758347795408196480199125646215237874318953971137466436621533813787282659380976659367567241552104381554962461179190456811875108361449505974869840583244959451440593771702398804351534839252785387810402363361135211886908979383422677611510082447902891100638130534904026943477628827471888164954662737899444756182624781363373190987996098020970337942652384971957115830747439736424728465626068593669649712958923560452834041332272997498692571604348007492664951341589119953704202093614146471633230614260584095277621932310089688674015691159748143571170885308987453813403324507512157975435393642935996366226019549528932095013824912236709269137162649728917582028388802247851882232497422828904444868913227690383956167088261541015815277264957676297302443373247897644535144241171407889661577700899645558146604299929740217876148970610648858742548846104994749619482427568897644946889122626950371470946373091862520644585534697380978573736106018053335318914006946523371617929170763981663084354423741754268086560734261298184756044807637420844980665849309777969633054290874038950289526598080212199496910107196183053096114644675788459939847496135814877750553237669965336020801929863015926596671954959994608336905720457375252769973914855903996613397442992709367921652536729586062556442820702058900939221484532374891334663171235111739928772815343302532057943364893279339451006373230059299485529392606475167137266125364713865950949765970904119725206147532975197127915686210463110146784887485956270689405242301029873096012216163056173779623357685534277493699350924536141744401401846063499946126131929813271701273856608155557818882870814361455255732526956490874634744263268017463540226125243266142822999047390177921411381113654589323435005032540302124388430926868786308665297833243837737392388141609163369705073756927842111885538077694572771178117903044692974874714631973431575977551564206155318123611644705616444490821159051570002355178272249422581664003043346371053480264881090379258104483502036186683543698523772858295993626945805850347923324341823522045104890484503557880418672257754412426519430853946003483278447693293079132715622700899320536524464674785433133037142194562464532713898110388054281728306161825809687525034414524278181929103391140493732858432457329778025466371614467148359723837030261025961129020028551805709934668142549226175963313952864099179434387808325851589136623000577088629265070073890738218039226112722059106431222491525077913479811696026596038673286348201185670461118226913699369572284140780644975954026417429013868328622696209479799337932172665146116816271264691689087122813106408271785570267384014131766531312689763876853438644451331760890285894114554639666783910710629192541953029212843629938982657021945693853657192141429569132656985245577154480768713062063907243890702814080596992197253964932034040447407898038223520593376613238494079309898920321582245996164374918162928780988294286924416745273024365842272274957056865624910167442880455750666010193927867472546080142965883505840972900172835032949633535097973740208155952710186293779915692594576026823146026044202862146475067377238925976378957897800879579375696055286166825899369050918585832516600853610238622044265515143983789859956986507739844745727824062262311533717930090141839033834471487487638388079419257318033643410005580791546705269122507972055154359040052154379305382393281831850809332578744534686855251531807414976194789134834091659335451973575094136359687080142515891228583817603787442853369059901761849031320967464127573973757148747312829081022424968428258544484608021170898889942320805246875151138702938821034531136106493451558059578151617079205387507015946313269016597664985197310214621249259418801593965268730613950104438952463780696632671426346139357986702093526283097901119477986806361471029848193790415579113796664862275272092400928267478813239267825255428666516728457711133199863519559906959909050529855360169623661015465134449750013058873312832944028085584906992407629195470353217048851429364418767040299350817117398892556051142844549878588855500285761517974879857633755896403426196639693298538455947410156000362399655430155371479726965938171042515783616025675716951653196046028616039763617446587596462623626695207063304048128608290204900747793238770725268933817575611577815068990092029741839353311779552177925017872709806418353099470552000997775963518190218474835399578369191397338825019883647838129424770360597535124318572807552879058654770875703034767590354439016281459688834694106611747358414468865439706879188913624503746126812726276189241135689408634385589175964183574149494953870891913767270126554385755372153972891136916205081488047611612116941681867827767890612401028696776024802946635210767789217359476807265362233898558759644734698461427360655220586112794230621471624474098437571812681745483371094692388602113141914736852205586871139017915548140848940304404092021369884030528407287111002601003519739869745082125782381551655236018194955588688188443086707405430384971763189383454152439681776575283085765135873247398447933936474706587096124752293352853970954746154556659053539296358098574362912944005160603612503766234972938899840068273065386892034989688817674215038547836593912995145144970518332105219104715984424156818290467169132553437609373470766836387791744119942571164229445950477330450214193747786853955478185133035984770626858618300710568321571137959897472095621810560621836856907786302384193307598990922451903084919301897172850451274333145990905023985660723908246840412409187640285683024834480111158029359759607635731528201777850630063543249264975673640886427671297464636683212026536021770571634629496336903480395018268661704648004667797533405412358995776031696887936377837438801735058679224770823023511048081983405958382215365547550893043172387039991456831368158748297394300439494160657760153589983783498236843858616684880647079184052057134313820777683180507912074775691487944283334633582327072407690754752806861958859260600400381991313680530839070817252297821187665242204955628477691064443521407003659582814800326158794359637064342628879534349194230896710314234118701506274937549584942383287159955697166186985059679818622138330108965055579608787566549820745564913549622295589509264018701774708006468494212529104498896863162869772746418739715082437195415303760936274711130023870942077748570303622412921424872363249653061549989972944943379727225977811336775856932190345286364723899333347825158091634491061900954627932252137040750401197025923527987669878743116928417258800210147095373650442688019575380827925755353887388885895335061135188144726845249047222748680399418508981184052761832527607760433729324834367621220998209128640996588858093661310207780456733569580286320421129494095768042144616002212056814950406843628657822986621951883147334766387969779428089725224774640797919824764921173165945253801029148230603909960491678982676408021702748303564681594128293353800305485810671673911547711398779726061834175963174059539848407966621437487781962332057671861573793375234760429462720615760414808676390245504474068534220481786248101994484273876960403404546821969618344049647234375479709181226488534048600044921112652233861190267636619061277181151415758475115427640534998005023455549849467894375057202506004888608984811040069793126512891447157409319855183385944813096874095177415176162480171464565890604690671783858161162070867616702181284401511348114776774131225565492737026368334963238185946032868998109010652278495204639840407397059207593439646762632666232966815205539425542811071490338782306524497788338092939800462665262799512637471181461409135028027838469121141275107893147806947165586245530168295103151674346928403831892477872698443223780286257679968489690489199612866096854429121591335977170360921577633611671833037722908202308962134927079493958552273159557341578596455187216109696189378748893537973795874700542314104462794912252335549870799769440349069187669861610664688283788099459066390139941352975866919216091639606517389957777046538303187838524275614299000562900948701611643925119229109219785980316276439500660149141520356559012357739259954102474170568711253220130253391820855004552959366620806361729777303503616840127967503700109150322740140089279664876349137357722676303580191754368983234883120625029652881590243150371489575075780906052947475230278128464608087138082827358352800045911853974911498808288651498870960088474004497120305264665122927711826725652734442212866175213142210041498374522766480275016596372840111477222450910578601902997777849218799007621346185584145161347358345090662798854840301918911159267832274470915250094464723962103091701612608875574034211944064131241757867243284343543890535541399605744629775757675512283918775818703407224705639844135555895430407497272345649716446745798431989034279428084863929059921883573180518309876735704407346608691420029819176630623321433855581601733057997102750104691681536920058475978626717657060706758780061332288760817356464128801128441063327044370956185322028710960101046597572225177674251238948626265732300994605124443816864068857402355873158047624334304646465951779942403667887830300584737214505167309744579897730080106041253790544759347168394852430079129813936479879752390969168029402930156032454073178496204797262578420412075495330285934176843602404076102000980211182914337534271018033991355881089829243700115022761541952581034424918497585751471796795519669463311142347500247931748770232624474492901103338195489273223870409692982674553532292838479628811155385040966696714145830237618379254250917916058880256510757051740904024966947506603506453604286095475913796370922006554366303657995217144693814776340438707218615202434034534086557982808417675382648594112579150100119512819993553767490716980407426487399088627938398547519806767770427652803460053154847714957572212575725722971357614430247953916622830978103237444742889529107573218120950273411022646090180457085370483736994732798056252202085514255155468426573972196576403387541028950688075820280598319969814829310337691753883470251890000998202497071064988609851463493053960463446500789697414020624802579577262886060740088687510003601938221411094792089032638575400913356091657784340382223376786642446439398221913120489680061502567525147938966508094187270871156009561757391030120107117421766018689605705001517089144650617471433642813209652555682030692681647069538871011527127539017186613344169811518342015642580899192959345192753167019982904446014039727361717492957326462461396067358719865721294679904899642209968351020025253332157686066328185783051858084286862958123094261961766331495111793886019174632697583505380370844716201569393832276121363289291200702117320013631158834117273698247298137359980548267901107878267643326913093243477947778971007459331638503444745969315352932166756764982899735547637836181786919678176581879138647417060594570589457762825207663085645239835080581638303934976098667001782345840709003925001283265906319856882799315097373974100716211363333085897002496691254202026196067370224233661731538585151230011646950561103066270863698115245193082173085804098676130260695747935593818121129462962630906428220597232441768452110013630254447908739634823253901288414642873731189270879901971208724327690543813561196303989677095979005656287996466315587793725021473332069599085649598708147595356095237556117809679306420666724357942888310745898336452182905714957358885268857038680390514878875240761648943928325930781411945675996001731832741554464142438796168609682970763838370055353576283597530196548288923716771058335944516613424508468623870862753509193561693286618119423618127416747337710843788995292405307183810758060563056375353734597516575191411705612963510536143697825489730981153399903207049535938473712408889042460907870111928448518201465138021391794441072827306382461563000041062761853044674705158560917964732243082037067934086918565319392597878201658669765186490651523038065101173337384291170702135847747004633260152934313568974212529795453704850798087281092995721345454733134052450727496633293691727487987743710777649553820435845365124003829691133145625439383420897992353922903416283458277654761095593662431769744000980974996695776602587111883115627360285387422533142697063621274166466002628505316890810668058393135618167625981617194317576377842298452560534180809395617216389764208275719411819235774716423472918416574816948423198775222098391655015607114280054215538065362403828569998116684492050833573101657857185830342286277739753396904518130240763126971416029815259452379621545458850649867259368925639866726733481201173735919020271875039386434839029096995829926411799053211516930695830009569427808962511498483992811593606213127414105778458190398296344330701576728785450740393052477539454091829367778528900796788485600808616977987209386900806163163118735025309954963999486780846878363897815276110971105828641777513527747243177281871905711681508711947294360264276895999315004561216565638236228940732575710875361864081730677208427622756302061363958043848504821915319772297978762679953625452651518674437115413116938939898727066315846689570244897523004063563378344276989120642686834056973877914695862709019696028995532662806174057630713539011422167902556918137381350965245467783468815957823793995850719111653049839716758030486275856647915907474950061794377243884118590582106298973084140661162970568577708895015670720077114084959143947265676465323808140557125163967537221044353476607298215003797922066786015356582918774398157366419201863008109719430982680354056572377532485560679145914697077110373729355090280027124743852536526320184828157217975082475918479623161910742822753672507649912756739383103592206521783216780982643690060989318619807980341678121541871319405003017494700157844067603547230475981076392801798138886360840007572195969088316906769331723528943573624086659445004089948915859279122473676926848184540880709368240236377567382339866713687699176130196285866725341944766478838620697719542649787214070942839088662701514487711336213119680485352422290929684809382138404557843895010687285971944332574695841813745559639398030836236638219902173976792969156382713326312963763713237289162810449866890145763959933004724753134689697456900509792053925901798920416567975414597190980098289771166915143767549452690080688737352404485449593249440036673686376965614435540232420665283217124329243334192135334354701570083075989883174607621779269297511128522348477595500633223393790442031388031727702555734154040954881890712321925444443262288873342199129885613820416740885897576022189299599614580318668539124793371776606799335781483738670432388177415110559908506266429225495393207412791761413425648952288051935074193792274684696654945535101532535817487838266669594073711788048894135279669774180756626328295289930115763353880316287973882809684209663681193557758099975214766478136824330909289268335247443002899029845673576325878038625106711609044947120032882617110709909299736621828229822753210124880994178214197327613828012797256117856648078467364391214689942973655805700102496239999220760343576996829919724867513431114326643206804849910139671692097137346817213133614638091241051796580093933202489544128012207485192018980399014299766739182322430327488228983791174241386517996408127069929970127926752215799788461479462071483329414443609721353960028870106223209652607328909189855761445373390743958294345656407557543310920730641918077014043857705556928372483335435589044395353317432761328847524650687030575303316128327997942276338399750371855109111867999594123365039213912425636155470295765835311088532914175149587452354388587987990022828475765499881122362029323745749564205823576021995220293696724887451167921130048486788245289574394404453818184085604077674937112034006330039084777673024549025488002008501768413532818612935670345157307998614184626742493535684195133445339666588467379659168987195915315598231056217509229705167674904082718102558212435681798691863108344230928781959710386474268433539997184024478671074775259035382284875496522955978613361975520798542826730850987310697726058766424855395561883643276516481235334181587834794355816613662747713086277076882895730695826051634777306162709040461020158333115019018553658668243267398757269845391739447289161455405408573092586862796706214963690490799651764096283154986742618762793996541083772756048307656406616973707856401382499438586432538832111370078480662692669971459298725829327178437481663672214376306756259877345888281024918245936355790374025138912693453725321960877178607917267240525089269560580950395153229163666962719030492505502930107123451796304648730963586382114786955986795887470874762336993038175736997907061231964009561810301426548438345651781886941943927805541501352936614546670062132294848828629226293265544910968351531615176400626239660098094819122715013176817662276936456757945398350361709398879860142759042621476375709052476863689248288109069297503502564672444440336950395847693249331461346754636285015429279573409738768085133231107241804522437001946509706529634183821849910263137371464132021130916199844978536607444097374373466315898532851370079294248958967525108792700008461886706394881903382529333555419552668239362693892840281117577195806108931318776126928263708318189131989577393804493084786921015755324507052764105673455922264523362577716243855835673286228970434204867806115354809985837636989272768171167331458219419365172796680662142630359438408152138269398608052952140162106233475464882561442067708985487959286192877319429350571794853470460737613554157409854992955120965504723392095391381162043289936791977359366688624072827336578335099329119897410316034301624078879762149345815294524830442843184603665192848040370491174177194915653908000363405220781184490272470787428697136426076487661732162677186627584010363209918273524691484739954824866844747025900834734294060466855324864498428959936429228475478142359954762453011559635621432172568386447288717939792422951469310172885479872487878623716328621728673826110291393945002211852823723613177931308141183682919842341167155316030659561027028667138095745260938288841522532324900240422425492269390360415843856135725936790283779808973625110294605464774629829695963235009890802515956420814975451135404625956277264970573852723434860572504068281609363845494164696581859341777344854608833280086537328614264129346723367577707027005818172765620152163377560290869023162430735728457597116564337000752731878679929537261149919690831978740038415385186473273381856481851652127273330825575511583738889513080706910313921031651159963651811121491199284853959629528838132491489899656560830653669374584213884651597827968515681952292808313335552227338039905224274059095103293346686375858786335098714435433510025707465997944685011654452295331170398258221519495648123473633751643404499127564346870614972965907698305325002537266978648482612162560977070321488586757128406196075899537625377309261918079730189690338093332009894077859055983130183178908733386920272222621374265684303690794299959901964319416899990572141123501748061251524600391643533626854785893101379974223469897669802772125884116149484229140110551389059713159425815655671467071765131262091772295191289675153669574215723078522034389871874813496204833428505127823418472075828922896567857460136097898030472385408432190075074998612737713069714753162795668306069564560065723244936896136505509473553678761702088209956729349763224544902031798041990025258550729294103081363150023372795499335913866342076724890409381072872433274865676030313956970558403700716482282135078732179718738589807406555634609401992694138232136259228139318882163917813867071240249729067820916053774163246489645243381309490898940364557328228539681457741573600918533867034932859476594816262634906062828894880003304406243854230707898655498416372966154178468325995709521816596940786303568421138793467738085734505718898400644811710727613010047349494657474199928332509685174320532136253932689599255015409182054172507569884254553976647993131111402547389989698471258988598273481432373939283556390658328496493875366806968288796603905515783101583458111890361843004375562941527702209730610828655691382299791455349812863147961655038904368963643688962739098369166495712896387387739067314032811155499787965419703731829692499357050878335621185679758389780136219417459937972580493840879614654577041712424528857875174545324809169896756440174653844655070999484292398524393581239665765261840586417046901185530913571289936833686749850108055746157445974544767295852172465060662511607612160259176816939753434437693478305978029891670947476423853359327842283632405087580646293157715953430446346657302327652138890105137341759533844705617912283229530370980946627759615450029590279866954790648862240472693748193058256719661186507626585330079965060611721386258634043848604223548325545996704179806158761505680034827811741089362668438336537552160454933185692823372510950614146295997675421705247187031357692608434627216975352470619236559897383477765911557838561872443141252673874408455483553507579500489998907505050798816748408656486732539808195309709718128974374427138556556412948218123143704433665499730981184070284560895294431996067426750930325795256044921780784348168141414266350614612665904854682217581356182141327442775672347908873631314658528375829923129419077700050058932014654033944085001219748239577123184913967292920661976886675368236299811057197558770954643357551854138572481837362016017357316356647645043546824929995351440073926426656795447373292538364267632893526798889104556451957177241913885515646784675543592894662614624655539788921666932165601646829545930863739678469745184512667414899936212788669669524642642702171764555708366409039440482316929884833511467387653090938405862582155137857729777214918297880005840339794591269428016556429443250575071280452414259538799227718043559644705399267942304070781404220324174217125586484511425209558294252172559552213706542697298746317039599187326002539757005535156920893804168884421797821110907160933195484289268674276411810367731402860606992443339326643446002113661861091313366273072544888109237469498755336010804778688712265273292154502247647196130247457842941265418198143365624548890684750021255208245890384920184798576282170734502226309670613451709098375236927398444947634758278031863293601773813644506101381172080898305231193232660700897322826495329010449274729977711823014800614408958643440305130183431053715677328809907503134318268504218894864014690536156091943085072013790456265114124012179796596597782964620218434740247594874801165467047672280583487412544752409266925065328099923700992237434161615573835279161438373922048692778258237021573653667099392985758798024994301270563045462198815386690351540897942264520693590736019551237375899793198230204012742064484049087915113436726354654032216319927460077382496303613879412534445226322865164560202438468385518990182936111801431352922579111017322890561612323199952288949641852295627545948305384944334636215459626487911588849388100536070293264766591666564394698748742288793813054736114091018321149179615023250699068034922790707544549493383863860831528314665862489437426243010938742030744173631759408984239166824297768752007306530863121032464970703838143455096090983103603200683782931522898905569588771008121868078046155152566227801855379382652142135241585705693571524651391424121460465987215350949899320257595883269680446915879646920757585088573839938550083113365079008242709394303425457881759252089308714135234012170275420826815269252059396201148635266993098482736292624355287324237986869122440665514527057586161134100516174910530322738519575859933120432636729884076319094468724546874490475215750765556883340741609224561150157189970506071587978972838903122444414784176868580811892625590799710505956156805260725242839943914242490780249975809118383277815850461392897462911058379570146761763927144241000005506704215616742252798342581776850967479144572965330198539176343874198307490281149669119315680738045389407097034239233044116012443498640994069661753723780323786729303804049232097055331411567831081615663849403384474591068976853244637474801394286673359809269976972550025847988609962875111740800679287549444437369035930858299682755578265144503884942390026680049178651143361776820331581011848881165371231666629430903166618670897839397240506776064364961243021982228215657526726881727036307351991833899461458528713450063031358497481360467033893531775296972783881582314828672028357491932467804517987844526442845514814031667772624880478757960118214727921036869085840638630242727060918408551727938553743879745810723537098569192454550865912340494603803085982215750533226295773842785372653605736975235388053452601663764627625867196413490621505865206593817864430234725634525989075550833895432833512672580149108615893948708428119408930352699352383487169741735768852682304464199230407489604404408214034031090014148293479026562260800885280097650067735204767559453307325320217101362612148275571319108263004663333202529714230724327882101013693486251402045241483797353316538374017983033411456424857547822521406673793026075091792756506559567725361980955843743307744816418776082494891517417131828276225328963213404940558833693337680769099724937862266942834215594935733686790508858452701212873747726110852170989862487409204663021310311468849682385524619888881239884891977134214342502466506661287395249109379767138470684828690791400706278163652053562644066216094713711876366669909447205070547738606048824628144819357980485899168448430602169529160234963623016499105468247318162219821162564305973917395691292983041623287157292128871291425762591266046367884172260245409487644967323953225606797821440653676809802505746205891138109221094492812388443737770394671447905228150564943091071644287633233544819548779089486452250680237895136949910921408147089430106173740792631275571319375562801282575960587619287008181975472398862348768705640761248452009202282271367288485064205349807272366049618592265078883585384756063049036621433208099315120464950523810353632932181136991853989332561556169642337333202879863458521475550807058806149176045363834939017814624169871047245048575116952228747787594664077254923787634419093643648917238972847045303929814495337507865500215983800475378485230316072599211734284741254183808838129237575414566894570554522634594504985796081260248939493511923002307880263576676446836791616719717152553101396154332774002357311786334140193135010811149845416648444224358156292033104586986726895324779711912938748900110219355772343215563979992789749051627956473423213560736352622530753539900464973913964408315867985291850940464465863316490007569054919910415444281053421452402412544602162528318419490054742891050575950143586181713177736390707576832949740356922457397165889933359467274255397845046529598074508799882796771998133388911440654339496363995621275632383715475190651718019749354607168759284752089559060451609565719938497687455170887817617860377403726891652024607657684631261669575012417877138844243911564575423170526941693304673467531228137265975909526599892038449919038154242326137922707051736676211320234505146589458954573449584889857103963114818989613281612802566998274271567637246583663047341770575239327778980973435778188997374369008085675031499634836185865618256256445448926215735819191466322286269407850892545333507000546818793871544814644510874843211951095338035689365529401188570354822128069220548952706331292936814755926244672518479738645112114943398546052931112728537745175844260022724586429769505403990899796754773960464200209313697772546863369812228968012921531239937838328107951417970911970458189228918370699664211657068318860582729960174287182429497359360587656735204667076898943025420926450321054283398884346801459335239583925380296236096785390784278902813836615928710118758168926926329020989732711404749057429496621196014627575939540888049661124605206122415272800171803925477203514455299093250910091913751198949945906495230362818327588823489427503618596548173510833698665938182073681746905250344118536260555506692206119617672419919279716119067512489765898839122701461873086285548996485541317860431284856927370028276053718641044501620917023278227076753382582152497001543450195826821920777210955131690591529622773242178906431025382136028619634796098449738794310647019083160834001977619720881640403221648006292286780010626508929008592065553884003134215622139099279169211976612738596723924103486788746058316729573931289214824418818394136979908806694264258676136566424421567146329238796456959104183894345150351001413175255964024525234693833254932175245410902901901424225600763695967251496086511219721675401819730152349372070793572969247217488641444261905361934281820733633990004244393490190300675267424956745255755812630954912251550537748963581497265776439953070136329835218629533592835047950672555797253446860501725136324897068441068919110569504849434313499630669068111222066592601478097208703831197355643671419058819181075539028631938518289719749699572633941529752581784971773180717836024555177170919230159501076459454869055309717592607139739677393679451204028335635710825418601485816242300084241674199842866008565484608691778230301712574758159296886348551274943415058667706200172773658697362445920271795286112540044034748790024113371609045439799008518380211497151911337602275085173441303874683475435012277222573559879344551843152549892818463850679900130647770243564481406653155536018701995903588011407883245085778982094100515869105164161443824664568130514064229909986754682404484632777961939862303292564963192394512904354998407679972986857917463289120406601092074726097006936498845824349098880819717223434692473982991223688490094173405864089059062047918240514707309766361846205428222714521971695810305298636604685000425518492635004868594841953252568793727291620948893930400875384773118064557395369717374578483466624480425029780938525794521340299901693838368081018139532314855433580634644734053169840080051802115525601692146962890873732831858674506152033483074149822988903718385647139367684889373617349461911878384454122039511169390963853747043398264076120446884564119787237105450749436987818499960842032959319041265278297851644276964157880325461053562905716570576611706965313930793006556843163736191500962173518128403176992411988356765156546689673227154424789318555215154305019191939523249296182263897728838978859357974452158419310800147451765711361149957018430223697470429600875760850052439342182429095109860496391035916430545623473525329734806707423180549713312764283662393722692047296140539599232542445563887945309450055165729351505477371396808223479863017620199576076769566117013837691278317055349958690532483215317948804394682706390056393308335835410282597039283438454303156264970155452820661712220670794242496002469937102342359726798634457085592344254798722788694498382471403290455345576701888130470320059608298366879610615937838709438473930868775219885358561272450010486629324523806652297736868207450684788663761256753849754673422947630895979625015528834613003035835001021904010262318105239365934513136403229180220384865048335112532064711642120910924401140068219379746329943877250224323665199330018987682609034928244117763711848465886882789654416450839274466536597515000382698304184270687193576078513847404421694600317552849992844031233008973550712229216620612790634314177701499133692533858101449302958843300048224234961774720430539907961835127469996910795506293402093545749753462008317652838235405127472658604806763136376032512145902764436705621093593396654814914271905121784197258974825717293187134975526287479262748194405653535156711926908096098922288439687913882887878080264863131136460103841564017541464992047966625301890300489499146936891164984898182769720820379096176187546869511825333625784131399687188605357419230319812864180628837786668410314922065672022952702609585698162320352333986664033759384314989801357025293337169467491017444227129634995989771548768554278882891387962127066094107108608580442290655260084430575761617046359680403944435529507444477916751830493473958389447370843490133389589388868693479452180777411460825654209727056161547150155125206969767432171827708048173284539832757365798395387109838589995851270033130996877925148405054722956490464869190662382519842428152553707825148531124106924024690673148101265511253989910049019625561939054697930624560326902650664955130991632837844239073093668979442674158174158791017484207927300684868826646648980827494977974674315888283829949396126655930392955990213693820737593161016765340189529684667767836154339716220993392362485930410944370785677404230019108041496118326348843480005923359794214674451239024705629105303813455237985794259203073750253871190446485859240997468842881877955245076979030361162323822798717737127055733413505739642038842406668014374490160795897615760548183215488776014207473608746439319475557766438355206920747420543777286965803907112882406104188748444738701732189857062392553258643542161109359606448550737279776229228923744179803443253469288252774951073741824524884374289664232322855964135283222690488466132374976280844043532039329063857799321544024690634979654085567748409480035604728959682968436897695734408525142586892615242458393032643129904505288881888563664150081544406502240406902228293525134099559129752445819309504779012582311645965519741580187944473852981536469433786884272031022483591914446950050109735053060434941671605380054896291547147993277992505450029881471206685936385718417472589090326264659534296659693306121622869967685103565041181632143863568542935411396027037695096662964766690826651188305413000596132846642741141539918906887949688637059132342677479127365258802751512063330629665774112682862972458736242332236378419977058006014443124078376855645325591292978624656671580351697147683674067772144456806224768707027278421971056289348919561473465834488504807503983039543357071503336819714604906823823056263005339507637036421193674157974860592355347338226180053877476209714399127515457999449347640128710193477021669033123315911055348737905521906470337622694079058652788075189285617076353528011958735413351022850706675410787761539182214992535382625518212916412386922156537771598176683351930116216469031700143446350948156977004718115880407790241774405376179670270998252014130304445318482384752132964465774438428166815922299625378981305967186030853105409500219479217409878687129576982172112817442792057146466959965503384742058724402927602280103506155949997733891823220271390444135258457044081122956258845110002914691341404616552582199864100893715305609918894528384975006465137572681306988889836294174958878011264552528521200695847395974150418744515291004936598217907812027643005971478364399163810770410018825010945527034230495587630096921474436257590568590496199911081829224824725538345681441176427608902013783532333292197263623466424878983698216130886404163826640021522747844382012614975154276293599907547791140423626685440477396844046996295952780021795331411378611570461761413814945762304722185003932828928129224050701861957725553275484977879347576899239577679882842882761192662798963901182863209949283373734404516835870216454458308452237842220395390646066341645875790024816233558070824496389058816312936928847852686609747473201385848930491242204333333486895210075053925066087405470127819251483147845461919898151760769931168855275891753339201548827014616560732796709446987215354259264585630041312776931840855856516656022127257179577036671164272701734436858131897665462735089353142134751531684287485663072563504221441804189921043617375617220945589261492908413941390643034801424294720742256314578029571569927125369633034063593131102447137514009670860051422279590297600449408852380088171572999487164986281450575374982518439854396486068367926159877766921399619792778934491876488828205717933548579655940381468853054469213164486841348617816577906539926051353446843802244023191431014581403735186670353754427170542914300882723803805952932693318900003152553042208050587232257012238401124767693675543090863741029157718828873529584671078320962178730344188561817528699292206338549133547866860055726733518573166939331444208594866478601446219407717574579561509645341682008766998681111627379981730521005486174704268364886222065176995124371755455064676091993565060198337582466187711284300131589639795344535622936973987290116605828468095674927953572570364650100287262582326135979318991805125999146048190375153036650109102406701635291140857832630783682901261462122292441740138140260747998084777197145512890739266427328412285898933441865605227488892994672623585263821640567042661462504587413737167616786035514808125311680794676428504585333996943710500259616157696779737087065554830735710952938268138751610390835159393101156685758697909012001996201068334407238606039868435862128844973531252708961002370111003690817052547939663232532288989222400382644263273912276990120308587313578690043615418964992930874221823976282618019655458632517582807357831423286939634477461116481887270248523387631371023014184338803630652300261885544957526697462960154009583136578641689012471617648607474028469819790423912783514663324172855293613913927241683043834459109375639435510078030239010134466179554087261173389766248087279867880294602913009809501954652997802734967099257664009994603915193927797754231724223583756365434692126457836335390872683707648695886776622825394320440028270372215798759713797325948609769701576932095800812855086222713017780354266519966113688435577372100754269320555347051365379834723096005992354804831344744403653907467911249986528755921711802265263159565407815725616655310155048624948244411196608032894949464626854688791826213411645288317943350316548236774225554322617982857874217691328908120922864575845681870826233779887375660695275025903174742260612990736881336417064616975662344396202544506597258208415551593580504363104457315915897898603028509382898130587501549547403743005109514339655684065145207825566694624464097807526147103332779680089464827308681962195864653710825542305243148393155600241401483126080693446655181650931145675467385015240104897034118039515022577533104986453954351439359523471636701515918703583678040815428630739832187412844915418475257960629088179074631347268416266387060085461057865863378060516307702028416094320837444798215525470795833848084682767014517656378550050190784851566993522621522690752364022364174843821208839910573875572178693275264126866641054387620532929322435342458844206733752898009397326093774020125675019010760473656663409625995575230220306407664274307288884201971683390815783649277107665140968161575804160178235795650894677297643326940175295559495565437324698826376860132241518253229034102591741080030958497727111363451558914617216031768415626372485780733907835639794254413713392732081674752946249957015870683835297691114231853649381472912831235776041196049202959112003694731738030748845089089981977343633094438490082425720615970547636311617246579864171959829688453733021526251831485881768209229428664155278376920106126394202557889681360613425055206921217615116281045962393847011756770799573861008847827500808183538569972324231017616436118984159501290254414620106324513206534850221716644339566595806801846162592822594936213322230904631960594616132431090218238998777829351218946990078680494000708113274407844373732257995298919763993524107804566023238988864003869243982897684148869298886315691849885721717355871198994353217585173514246001955177524433045101527171167204393857145168726176837470330070616744311276729951201125799805231744609042068311326508892355269829524017545758892206474782983079374062347027138891067043477569782490045082159060310815975183781917149643071204097253968576862803635020783529001372655053356552054437043517139384464880484393432873288709822602507835553295731261016429343793514133748989342374039847208243358186168514318344241557894370250745886996964387818064505929343982905070918952691065932404596612307405290775733130576274731355741416568648783606720074433756137107856524355134235164628771213365598555710747471532991581897793427295394263378566922178192240068543488858772543900185139644916197677739135421665644589023170410809432304596526337825936512255909704524400132843114930790318397208031409236884013948337795357621958323276168278577648028290460526970612655643291528359718657796223732830222850385608546469665784497136106246259155325227815783143657275068583187716316542175952813997915555719127366264312390934810598926143462437004008532239088066623554182324339826899221550558798283358142785395053075853334124551143607401397273614222975613707596543029886410119902956836049888283649351226929384782863817197942578240208660561839906023097701392613289385720886110835718053474650746808455117833916979988327091960079057641110413076739588841130408679744771473548008558490743520501125833408639383406749729675638494225416699014605127878672228105804591578920880183329494124360440332165083554746731843586357187152623042890963677349745718080466998147786662167614982345518903227167563286170537447215375899937997918056807737963809046471196835077315202353229068886537224290470572318813635293859932531741793436082268848195149690188390209931382893463777754426811450245839698940953259803553970369777098423547464357006196872344153356153026744905583689949650617091124415427273949761589231017212810231602277170475901926557568030367710699606669366950131607925398537124243379441407263325337384836386396877063933382126064789413477005251040718449073864422833849296697459120384241099327870372924732718355152838659526755685753265722151263907327205299894711625367454488574215744046754358105765499956716835790167743369945186960968428797384045066222077546638822651663308451786458854814630919921561509200511150410858410322360102381051563653325612113028772205659208129259879950200340021881772456692742290551195195240492404011225120958870784497115900932176451682532629063166126271196409164315442363475950233152376028490940008440692598520262876768566944583494708893488179657899604452680602313668602985891966854802147385269574465316601934870068182746696652451525167695796220967615172334460565362783735420420720124957103949534665460897300784728058065178233683285044882095605990644855162680023661911955098139698212393598930393133843916531704382224476802497059127483812202502090186525393922651475162498081259287256758056220357390842391129920865524424636219934762379011272173498430552872643280928496016434559964324631008120898151386268102849179837067496547337266426020547048642859444306794150476399085274882482042128729595425361703576533948445648744555732073057893215487768613725882808648652699302029426054845130571516426542040992520067738624580307223735780676804645359860459080189306649337443900121431522573336096362746406227714308722570660975448452571754414944674658241637241788836082148930724377916432705671278059974319711965419668637626197929259601838347505636298999029418396672508301779671593749316905447712930886586198291620041430374353864459433694622075544848814442861479284832406775506830411747639511344828271878997869338162792881894986508759138656826985894098480813310470413514743857428011140525574219350093085015184268059427881788252095682093461168237671678530003385065684722423641573082946447102922625223338876514777181910783254419544136561869747509077621654250444338991590574322307215145002800924677293812130273125671602433274292950468588834068944329354901795938776534587106866689929026541990908244721316631772109943094458467124956286561162898280614598304099733843888121084556021194017557318549511036710968896610708076239422649707897771962763523465718873216384849566552570219973018586922218722011119366615542798878218732447512810613486692046720476024969129619104076905106117974357807811538432742016745078583178012298950693408167723801872605304450316253533799957055496100229910178197985480486235030209803169086594702069240009255222671995100138544568912006630624770302724698646541173448585359506050916546930321318829826530650689346500616273806276173587880871565350940559480908781438505361627366911511363402162335579113935148857536634884536899792067455584900383254749193365871370692036493645584466929068474410631920393916974663445738255970859366882551693496967642295591589042573332756210475212084568098805629378889525645723409939406818935766057183937935959297805579854293269758027629260963744241747555292935626930838072155421899780247958056736585117648305139026539025517357436041426432423933424438069641134606797926383038020737575536723724492607938670327202261589938600882143214096558704261709226169360759647230541623596791265549748350341197691369905319597160890074094831893924478196369612915256821596871320870076628977078662420913395302481872116593035372207247163006599559240871972462535946450333416025291163320877789754651351079342366677809996073592751904762612439293063821816770638759158068555967973503729384555518869461977047761609355099835858540822012839963050473578152194016642932858697546589832788523845014344833783441713743954145148889519921145560923589132735465339496505698287606109567448736126264580582327191411303250474771051112414972124904446439687034162073353632899721982526311388244735525434652150480646273888332904091636603016298054539855137071523239242330483269661846427131925672097709626110658181762815392271690026619801510510397092144782189276061721278014865712424687059567213479969203450269616912051973059990175832580401753714530570894768406368433397142441450691285694089901715524597265506662111211713050015193219338772965115764816494206377478212092185264927885453738049379979227746995453768356829551576170905792080046555152060421435205599837152738690381596079724378850632809194553920288293140829036341520120443270211711053470515088677620058678456390275309917716864790902782401026618863755172849816662584360633715648999409557708055948679712454251205662386010471242572139500230138837163078426878335336903055802969533335967787199246388770249612724925065509956780442088528973935575386153412237520256632308868680373047219112459091711354813288775144116917448456399326702672132375247732496949043818881765109602991796269510009257449204803637993587932313423512211773413454303867227819391906096497803242616347005649474374051103349605418345730436351871056135939321988256385975366332499372214504441344955290436347779945796749775030573717864943829472059559415897593370018264865776595479636362352361160355455433199333584601388366173285812809648480869623888218841230378079647973609474726313699664265383210506824156114935531995473231964953111674000188198389870574592649457390603375014875959656374789094365039724715022397820939936314344875732023452368262841508535454301924743632708312032359220195710508829482099518092440011091945918043574134997468074982301824367747395109097283554515738781123216169192819192235249364114695785613647955534262709579912898194690245653960488869337827931014310909077542286691527376217162368553552178791440604112293459595068480209996177011591484701588110265827799689531730427884550964881648800190877917525290827476112283564507435588050974622978972871054043495233036521993539088606804040609274143138292252142914728079526435662499149327275635586227365724117174000625779965547168618859724622160237453841002395161613955751010785097686277320208261939513107700986109239812245957332793645349675178443760383217666412403867055496517171025521464739734622321159595411306790015667890703660151986877301226983188891794887669500488275998889208520031265954552501972995925059172559052215536598369763266347271888764234854570266935622924234344959555217108889542203121882716413298489875711595987897948649094729195649431478168825430608264098317932607309539537193590603225153738631477125523726264760717785525594079727304552686268577795692966545617898689319829922795826928176678554533313794366684107497018111684114679695322195736890490113119610604403135247779611032564722360659802460364675157117960662290743225624024264187369202409724223512462775631579795924667021426155528750321836996601829948082112465263852155011265277283978982366916778379798132544029085534253724462042477675157744126910050392006011590203925507888573453157061298575955984540732274639949410196071607352994173220989599351077384293636513239452235724036519720997203096492514421602263278715317523058293295794375733929079075968824992596023764777358127409626985276915714633403117752543505421823633217456361964420075603004816751222692747560246452961512338309222209101359586165430226164018274389980864420714824965633724261620004484464411196895227408661390468172330155461199135478386390180193637731897901822623857556912760601049575370920047407319760383387573170596961777221210539955111887615902962428144236941162356051812571975212935486970073693352617866062165226913479541859781383249442445749040159938265362099952153109760352388048774825365658856051112014641188649980311277807443507952278350649512692035582147267789737981897422035835753099304460384825546980456113554326374557068448931749842181425764776540243458881053930404445862660235690644024089468145951621361677135123387720562030512388527079621376537661127114098634622927518409898801219623946517661565838323998628993520197614752309663024722758024057424734282174919293130188087047917916642246315407219976937897197256988770823850537976841139989275998181363826793263215469914485735417182274225146402568068439118652745751246008788875294294645584803824484120008689311032161556018841455580575859160060592602562779727376477638872909171475443471117344134874424429323741556478842955645667487755160196219941727441955418897781570626410543045719487600214824169481331755873031121404832341373970623619650730660702361131113160134223916943653752843200315717005053825599897609272625391129942487613841374802543104416596828292676592527765589188880168045347047981082386475789620777502495431855563832396697992648818314262768302468946488505589204417397947045300349381284823290027330855091093236950213529582096986928920111783265481656873715194456783617580236217442900245422410757317578587110689813690144101018891575078322249583246469454695153148162220593265808543683699397791939904691357398304389633158447552900394462802619423774640960757898699326617082122325529138159202063347386758394549363097032042028436179371637263545481322524237103679577238426061844822887588661166741723468470316502125409829671396410300829509030318972389275801190823292850670471464389511622814967773443195506095471891051131582487211107596980229584853794087131747752040013643705552889973501143300274095378525087733206207940583775563285262071792530056716668091958626131749279068360535166218649390267870154678915929144816572831234921442575857806895521764209785932408387609750094573493263218156568739072328150216287444313400322389527945011432338801310184642185844440382647062161902679674601758634057054052967205536820971925069423382843183214977701184306104540527696737821700250628700129817766779476342040779223659050972903008879933041334063062967755894767794832266432227919318201850677812961690663792340416828704045711356472507006072722354167085592667213667900541211426578634449938219491858430973878082689472187876922069244401024669823427931711483738327951531516878046358285430371676607627909379339103743839950865203901699658109984486707828442137664931115332310171111740949251653320510463707818281202064601106033820874051765989845144251325794463650023523292902432479692686666239633916411295266140433343286619438824132585102532958411494943956585497825433367229755245782431192798794512302127212942741404536220609193278551379881349320213154656408010833599335633214553506237539923580066712903657057508665813880842818560384765288663034475957463706765642743526749757691702376660161884406319182459326842839686211416175463893155125439393124645669738800666959774494785686940301886329180659100112206670683305882773035408521988671748844447520728006969099518410235511514199781778191724058079222939923660822341244258511563815030561234423450084513444818827363088624099111940293186921193040955836609333164543297764206385650224369020900235166662828470512288770662233525403860163590632704270995136314875448000088221720318899417349537596240997834084206228079320530355787526807473051814952345633070075865101245609151800340732645941053620308071775322329950351420511377452792431113248413165581571676923315756425411988398754608011306623188229614831516327117297345076976603286938638096862886096751080215318414986247481144676074958445518839994054485451054613291265635079637860677760419641541565035266168649704379567959264745901379371049995629649780234255666836549337089103913246815197981491545617044684156034788373440869113271136929708411587969836325690698632332965861008470098540436746322922873581358203158717431037856470667376079605903933947676397719204819215184875984667045240654773121908487101530948995100063599045753022835889018888712139086071827204696084229452939823799970798076824720125036910550014413151664094399277452445460638859800458270661231901963041061173416076107282891326626670144173051861634309119562664157771553046796962014314760102127539509473778284246062856834716018184706356264076624421301869523120171358637212764235101040364730731086983855981185446923779389685251719614468090346413953443767187088105540167809471981360225356379968782110899313614730163840401564452055529240236233925112815681674912540648568998634897979691137792606899071664501882588506842440969804022692216341805864849348981678714839414145687302638594884074165813848515541701158090027861340265574089415257936428815125505328318868914850792541336884180276954394346683157452750800245298740160085115204250653673445347996372422712231022751638929101133623341103026632789790642489825894897313903684750938394197016008875370275768509377553526609245884545996705414797975985089739296268191833218830386012003518388918501711279202081455782301124757992523040871852220198624805466061260451335486584295379975409778334062460188809413577218073100953537741087867091321848120366343761864195544752468862976792396595129326380146856554923843266603832633454147221253026760115234139251301721656301323351805119088912454369518359626640592378246496484940796585977909186778058145541790837858238638367340531452074064167392090892985016540815653729420791912414525843117308814994849150908913203354590506888832449417479843172774523904804373972870308620973235132999802156555028320235525995141758325749277141050416599305248924066851522185453690066192519340422802639576191684424970355662281420180864990250300813799925337158500872375582659479913250436274057533540110020606516314808188481826153062711414390131214659361663432438401215376888488755221231304975369724603193287109629824386939645984677647826318767330865883491980620271052384896343214401685194791573686382676543311513501731380761992461006007092730869580308177118265012099227278237698318047821155408345004692422955108425445565817333139717563064115518344300326071915487868800982872699145850583967433902161585201218751507159950725823093212342967955211278920327367640644496363456740349298440072546859552013683196349585985641022572585571642563812175350264797929526304640467392475867160682836051741555346163924516484268428252941481126306234999335706683980648728474247012027012595534580136619120552315765458521764239646884742584086890736305068989821554520443364387281186298698075279675157174849011915359041831837265661614249653108303085794120321893643330047840138113157156184003508776010282278159226031954846282115484072782479060778381908939925812189064231307754413655592138255945327772983029714142224172825194471245792314097115053487448193547359254606180130863089613969605805992916010364585636322501520587805938125680164076542244524249672005384984729838398921773878952051982852811371364373173671400174365971435399298255949175332693103346368711240161425831713204077236382102155624773703604101753727695510757914252840351649112759012691455005862978797585019212168690025744811024638375486982606655669907840790442180644675153195088273420632382040311676657575329541428714837371472368600301996898197789978796085034620048777310535840283395994152889500220424518923527227528156722139671151722652154377703721313681159374820352345061500550581068157923128927247611996160591465040830918655545833880497506779344314985433019671138367194678187490207298270779871199445961804636462589660952257664145772046653312266015852529868506076098327465605537608806639832661519636220380579262819520573041679633606418658908131618328051472577634832698425467396243120480815084746917502840901340115436955904083606066516184662992717986272559068477411977391767800865310262991032118244201270168628238673543498620825145364645287052293794256584196379792537124909163452252434452845710586992572225740969187514529807770108283340927867074724457993809280463307272553928892739573266816534380898750487574768242939475017404048444522944174262832567257257183810462819439558641300681547009371452197899895255713306024449439420156619959779641833530362095772717596304752334199386211405334892363103526806324740889424659772572847959737479006309042900810495359140514796425440413137098138007969472224223040701193725814712072308832534264993019879576287233559502632975079774655673222056778417274164560312608646004364757331840996797216291077848866805467281967149632954982649560601930721753955941662052602644299079491673259468124745883494128672597653808395682200766543678866612256784073577222416134135924293330789076870056257677440563752776857754948057227900689104815217231051330903394942545272076282612042252580559894105670261220326956229856940437656742248111746811517190689253156730322404032803612253029583226853622276724090867713668007233968399929974681572457649972063094587023147230215672534258502338377585313950522632479250334474187962949710681461570243180122015955237878227921740512244118922152897866258364251224847418376286648176201054665761245934042293997632216253323678179877544276016840955932524840004642989780002267329566720146284211080247173901545707318684534839950933186428675762040222118802221668783425896893596374601755902065001982582079894480241384772171596065169763672169111942871537909478451809471803514560462567285727448832456570544517398018969555456344388450407218470887118444322840331856021501521902218166352973004143524343459372758117990168943873867552519824265039478773207853869117971534514723664744669257675275707543621641091845761765787082706143869208718865762900899345929981208675662703700361527638011720485715213778040909847095534852334279612810299413320806609846830981263729655397408582474755625239923563012335017167678074107549327674884180954601457016397172140073746137578046204560846438824685484293162592067530991545584665065540087277974367693579573709214649907019058506098420914532182903126255338145874631458419112704282645424188307929482922345477916371551628798575362730978207983125864175911399763135472221209101563590153565561815271073924363707662014507092438154918092646031076752675439989953084672372636768532558089988958104188880859048332375131816478386969294914627074944137898690430298806213389528016244292460239349228133354969542834567038856067794403307639502910038748391964786278109678244468674483476750503758150868044633491107003395342407670524174561917986237262171715212544076435245827155752940424583526453278919777105868685965108880656252674994071655220563502018295485715836438852724765095960398312836628476071297042002864530751929394297995752770384731553529467890088657579468182398557299565369379074092500217048580924239774282353224609938035630929450375251391301669725255529274464802740231138445073014172042797639690708840478744210748508833995481059113844461822301042576676135061784919996778524857947917996456329419302773901260409741035634844237695831767261882872615358398493063062489825554658471505044896628598509844130416493266300703778673537007154661841679168348472815047588543918598092426752404834655207186643765347900421548778367829274250479388914909736233956863736072215000580246165862758268674613565754317775812496885419712196571834530406995857473027387606476430281934100193578975559411682924189011426298967455199313246452679563890861183800114718133772564160615142418284052227926675004265515717139242864142888444299768814896735684742529317144141138125537231914102397562941613452632874007199626883598236085575274628657559153152771933190213882795086837702282602204355838702464115049454446958113609660070511329759562187025805820738303214075247090751698047807721930344179410923747965681703689158886745540966719030278928715670279521861829622791745631187613774906851739805640380122248517940342568803269632619908695812849471185707126085798152025813124679440482677174825204477205325258570876145142206780718701557286364980771182943146103582446791780894045987857080385155355526223593578587299861253770523248341490793635493404871612686846021027291302273993523468032958131674602409568702497699771447655284652913442713736169897840182533362612188513357772072454675675612522657741003355988656592717823784155085173173328304933603248171086203307573994032065900986999598115902731917694818166341529792276666326758132079329259601599992145100098686219732446447718513611884026736934839515195200680701939128900754850299857078579746085576873583240791602900444141579117999342046974178216679297396228054224689478027411536440301303780186047949775806692316599109820710137640160226803191970870183842070715416952920148547647499168816457726349546456390715860760788627738670832646153522272842121839642070351669821557889688590866587689424236986650771019428226455046026067681681599656840696919487617003645069398017323513934790815526730491395940322257359133918009233321661659466773433298768907549445829935196345335790018865598626190761706725721394753035403506788223748853835651150563718992443875194897266247165436539732038536078110272957253028523105695814900951156176611380843748802662420005511254319649630929036490727921804548341589690034090131891047949148331818059458051829744571865868919289818214481020856265224640694314572817427265940980916323969894744142481216045314639976717775063636240573446485704486500732249770537410158071229803329005119568882977372398631127596858845019260272990932295631271498965935623415924685165987015834530888206179460929345387927174741806536825776259079387392159760265682092073218700828977236642942738042336597451232262202612645477045981016106307590351688350404025048296766053182669700600212973953838977196248074481370586533016040031879827192670703650984005468909702699482958807256821666445380165459298646410000839005515736634834951761867801516906785826109311724443460768703299552011942407831150269499936195821220754586794961972694477018493119527267353515822692445212144032049941702144384359936573488987246687861746236191834332930399249979514716767026117488779550394634511023788886081628458811205343700400749565672422542312475312539623841498136905917430401501363494664274599997099791528424475643215709208744365651699392908081212730417388770214132064638436918830982240300256079101865828972522221746587193492104646099040962279540828194049422805850646855134811638255297815069192870709382056802503374578227698984487912885421381991962238778725040932000312230620876594855815494856141620618225105663468701344423571678860161937498524454838120949625231760518794074558331213508563120899855153439875072719752395231301219844189386012732734901822303191923045539949295510062876533878522729950419335443446974271904652184688449396950370864288813313089990819357917742621018399105738738665731250446610499936242193569237272421284561738995428980771373886222693893472813030804651153649588915892920017409967208283056975278225622956066399855075751250306962930580226569483840669957176348897872996773444212186767578779994410657037667803407910196265698245362924741896337430799906934777290787982205420469642331378980144186053334465946074299949834916299377120984770691426361917322720873483745392271078146706514058473864232892261655271885293693736511429163701975590825151263468479617246270977199039075761138547842732714484613862334331188980635272926729163963155413841743621115999042275992898744687545950395667855472252342209385065417836471148884459430954249337061346074362411847673318308793003649985950258555973022807006137717341405484433964087260832558001156250478814665248945490800587334392676113617759864428856106765393034589090709244654981152745509040905491662942300683904345294861585104638728505480674112499335980985994734860695362258719077968601810678520494503971950047150462225278579153831062241116219785585397078152025001074102047005291051976701822118571430208157896110150350430531460074526797530537237576112696228040466188077021296129834471020025600239219758836939831652203903390233433677602692188021076363517012863309019396376979444934970147514918072893260734529369638531215829724338533961168041212564687356704869807167685531002339490535346506581832190975867223602827512003671880291896347028590067696605040394330734165117307905997451055273335832798911298489955505167305317671485370949396497322180858013408544584226115469188202627185836780948560763191656114607059643683653908109103060781820408449061318637575371484984111763639002680915212930992131506819988814338370077052445993386657595820116845977821599570899052325567099769382699477250650248974945106320100394664617861712453220652390485765550044987640512647571070295556512730113518529105507975293250410217128679774528720804133523836780893548263083452752469504782950261088283610137790373867295247480369680277588041792870933220322865293414754452638751310676332721718628006208582541236557396668919519492868838006430748382832784073060914219786383193879824575794414942098671377783410726695771017923763242919485918646897311421759011551169467676721863603411013130536225418305210662269581869768188942976427502954149528906418728524638677758191503860114161497500590411234651941920198950204217729692983035759334589819827185733173543132549472788629263089656337552336356337857435992511523234973661714974888345370834702533529962816167174075662970731182525451744918833683097717576803213714526815991365907562164765474686585652309483626063832911667030787393377058575908941394380197072942740199031052056151723883321222039595069305536913230555233832220041329803039844246725876079931741429503374714026088070668185609557842311547894231336849777080295816314891760312707348844938447274466788631125405397631484699761874823957425804111865523546185816610308246941749289319609345452787229392952125938751085627406956322911193811131161463263518744337080601117467843605583918293689396091443994720092568796614129844306985285136874803178278078875701482702441859473376792537906902658160302746793475347698106827093026268248031768747506511208312162579359718345332380944648302107023750625104087609877300711841905094784197279748902281453184927524390888061328456057217669869416895595409529908936813651854490288494425795633752288353764713697475014001085310317613734387300579892079507377656818254469860902625698212958264859575541952147856766062235843135755965866695327501899657368837129378666405840544322015261062329391401521487689088576029584214706026262874080384471608963436838092818090651633730014372387923990302222487102110137161202029099585688701273390306701991505117968577312538190994022200047145374628708719233593962398277209014734051815336209463039709741047322081957856608570279403343819780043392754930104369850040577425668932392471968846677078731219674858499639368690191887902928495867139660894818734707369489423032172499080015908666810441765288338472963765319382847824426528367166027601810961721861817327409402324203885993925301497781992786091692668110408409139939022620741427668767796791486847014751284395134032292688440657040645795694384283387257914312464714904253428139712179765480636915531714421564466942864287115047228154804274799832416642964717987772207958758682261431590007489999812735716924971793319068924876226430227427570459597800078534719212139702304299185455441337975393655891901553637752176423312068536510696193012235541285692267297055111413885674803300781712324385145896738657177375023075777763915999724700643594667465213532699196290901316499256958229505830897808685793647659719334817199071554817150840499945024339252166409235255590430307475775086326000912690070932919527247847736718445498490192068047442898473645176805517985819808668828221270675972148878070985852036897408179448803270649020676446563660944572690468284850319031185095111158123142116668835813369875800155664169354526352031331351487959203823763139194782660357151408568798543456668248202094125978954514687625992638542669357016195025537701894114082991660429513348137463439862660550080274304137717851544170832653818462830747177669439403037364266823074229416214060951847473303967642987930713553697510824857272429196891243670024785113882480742485149778300473686211790839623546517029470962216018391671241096789044469862951298623299020345105293349766637263988837248404933430223434711826718492935087447111903435531768329653534737276331141940670102319814612952409248250446732142844929941843314894395981692877382878664612671719559026532563143236119684269333309412518331256620169167925615089890325812659241111974474867114359638210907941105525781598979380109407346590779234770711302374232520528514075513640060322610794459561075540585397973822722117174609095803377361595171822459403692134206716007916005311853596667514507146706784150394777669857991872498192648721905811491897130333503446670147075858579996016471822054379851840857080403012937244021767605429447695204703545204684748892048052336953157802056805046357165158482700553972733739531530249362030310611738983064655299062318796904277419980399259192998505045818280304384787680654828472527814785801851665369198310681247633761729536188228315680565552997455142311577877100828226302153355562022642575692483265346996491866921071705473056132387992311866547106859678182486880288309717950238610161138798807573913196525852763526218871235240813461178691042867089956945689436661249258026584057352959847416278323443303102744475090368900575786644966981108182987913933870053905151087748354279406837045950760235815536064368043619923734727151508049499224037878703722898116601189122623797884109491021719593202528428046585444683178056340109851339484728980537562609954889737084889607297292662305161842102846824723385629606199380074040937461904739467791755096143648164597498682631400156874331050861269130588376314735199697666914915905359704291618748423335761895772846724089522269310121676499775899659007262914156626600844076890949161087143556926097054526017943760286652981634306197674213431021731770416445246683496335924823993084822026789473345873157938441241143734593921001364888537104246938464811106593202584813288289360025636057411392605613464769423303182385467069592950731533038877766365252926037371419172349898726681983367803576497090055610392526077518116892705334416813076116416719584339891369086073006256693248476008268904785991838225307094302151884103471769335525253274528947719210620412214143362525357619098364770692633749483382148270425770432392395455420050792906674996275660741320636325190503026689521093763132867586106406458508369522063069007726167754538302464980539429080918799535763625242649091744104749503853236526275747240521133496343747608916466308439997014682790435489719258783035252976145750652511066813175490361623715908062958524529869372809020109855084333969530646038755139425704111456095999496317049547919920435402527727571436204333261793815446995575024236117248697347025798461716367374390860677837086314214926367221542749242996050568412925785242803627023129360226224141322939831151757820946919312039402626519696183945757720421176324914849434235951212696891989204015309326376633844267163794654214155194329845975997218873930853446710192600234437877104952231831406610644462408906695907229516615942472371287755700101614412978997577605919026816925926891512102642732402127051135817170110179681259555986887195971023487145441482629344857212760295080782634048283046298640365416544955500830593640922508254390432748319732136740653366342492795448859739023564134365647827383792401595123905424135657411983016774566693136617465680215891825227749461759712112104144991736530608766084512267437509463025582835388330879977065489507641763766965425004785781575861697559649175236970041102349103872077042293727418893168340258934416874469140966664832322337055197077846223916239909617322114805739572564641472709363533269969669745864950242215683294308882700573181356603651294888716571430145389233328778221537895675922629065478710669425673160798530493516394970206165303921961582119512780546150715147329529042621906037764520387256442974480830616930385905421097540326653529238654967866077927313879548999457651927534784824144621555207914250423632819001202898130921229728086327716890542257519883359961286083006313911970721231954509680434410239520202318895356961436714149344395757061495466004294871305104286516689223579460156634811374671881826131164621440057174352192496536986769912849477398037722880254639781877210608401848410256663252518422904858951634411460436643855241194466136203892775574997654804829681837428566855572829201607384140113158453022506309268664939869353086843960412366243647372108316066441809373732199453488757657340681906956405027496708273251976739340419675867000062769789061421900228396980836533036399877926941958914946663544944099223069120660464384205040727747712328538407418494928284582295710148593896183651080574578738669032510475025598380645839562675290926781787009779959628930915093253791945654996406354419344024427951739017262387630576177891325778307322910014167420780162084342748494659914659149764167670816091324159744622515953131243090496786377848697675821968004812252457426262168702094587611290676932668208109230604854485190061331278825969545268120624109863204079603549575756353175983280603548222144557574219521553433007889370421848840602874436203820745052430173056382239844801105524250800237208372972551340986994350275814404991437814662924134016953613067220382001790078841488008623789278739556344025791525385812412912099446198430432597170358234486524696930957556684755162752546580785816960484566799182137143417908211793420879240849674706342412655434148331751389744400285506070568197040270949083409696467492990084675187284531002495081156687095829556317954207884533850737400340000418916882271803107511195358119625242693478774633513648008535805151042809784467605753993862447980744287277937117046945380656682822844983088171753542478168809228286588196828928319247540572193964632764376358297399977943033845931198755314480398311154340115893004308333604604068429042648462426238743356290249927502772596065446046684672034297861845512861872885748488926923767892422849154118442260633664682640969221277336743782324089027690048357990638804368191027099435784815433717039117301258270291824598008737773719443579359404828782241689926989282571842714639586971920391854490056350289072701976937166390248278867036299039708893382292495198007564449403703011813734153472986037557911471353103982029431448505296314228194652723606029381697830887273295787699894387119116122974772886978448804559835277041364562037231059335285856514875660727678614577753715869028029874645968103403409876966826132393228459378275574140037087741936458548503008848843824723582280852196721305173055957989145127829474847736827016789367428691864170153726017083053847775800328533210546116209902369589570725491461901904053064668388945517181759644317203662527546148028857343486521400008228100878368930957091864585651520145893707031853533457572948194150116556969633264344714639996299787620240563471186111765259576201922122922697893793108758332879646050645938841787794838533874168435069403251620409657185490934017979505441139159657290588206186250478692731019888362859852795431748611556640595942527588066074817498655664069628100133435281278842711721354928130528210119116903844018772917536237708159100804669679757408422392374721693370763700774517171442245939825772290431876979889661427404406417776841226246479184279221209129622675719345280671888182264979470769907372745584235061067987632244069097158919783281426966341517144138399085849191639370327977024335218932110121021564829512512342754432604623260254332625575759062772661741112198024360602201737953681939846349167351688220267692677180780973180395032148623144307077737851929266610101791008952838477937605341184868269009677736628423975582452149731151356941661753475431227477285750960209627013799946275670157905208629523668309577487495198161908971224356916650593753403377974020685046964040419256355438638967924535894080856668572590981061367124015113462138200772610910857834425638052890247806491496363440839729653460945198642558976261793649046036212802181570088521366681926353316861225173945314988572568877402650563696355116667545769620604777054435794285604469950272157084864020625883358327902921306170395843401130054747785386226689046583334764757847779480331508810118994842133861668644247472307985122934600166825116631062062936946281061633106052821729053468690194423973436711794303123627133131912161455338111624410645637425270457691511017146000602904640256544117197889931796363880402726248403458654041043137395870023750968297224418795375286894220408737199359391782007373176417024287165060476408795183709822823276013509516239826512946747366853323747910593246810205516081733580979120688972910576608545958893685622370405177858125060995072489220795063737524398921551509305957725449368001804715220962836477100710748089442615223007369080183066872938791452281923555726063378873958305248701647726681713723550146532673600056544807419130821600174825656343597931783476021990556884847533795734328255019750915738507529953636693436360654114436114721615557093391029474846850460438904667650573191591118492765780186245558368922886691635512258892577174736301987747444711670176342708918782391885758683686319757522298521950753819321891808767279634037797623052245214474444260155743290588473148619238110474120440790451174076818656363903127371043124428442049014507252847663172551882194232150046869813011111877016259880500750250330123575609539985555702709049187661158106558173038482139803139309039026992029689374083054969189596453381978359887520955408078250958965679905929914235522874706664499801634857815717129773031301910293636054244993137102764167970087565913720303157622789095611350851007460180859501164009352148224243751147139509152814750450331610216602091920609121675045716403388770072799667432475706378162146895241761349590084747011582771690859314972473107426587673828834109138748587527355096775330279243007361251864315037208740419250555758597894039634664201949499294299215452358084988437920829259178683589083640839802486076814632521318189874516261298081597190680061219942500536830352108343751842381863583553500104260340782613391553326509783386360287231477365684884334358073255851717194607313669956265904277219386507771517524317380620836001521835949550743306090954312312687360522976989312068401505423934209498240206744599163021659499587663144337020267032927275524218580861917609699270082862596256726786836550248545493725461653790331765801254148582389173049919755800306823592326368928972568836448440844101756159826742741280257958672639934635328720754718746274497271196859195038806941988749284863383225043152624726337464679083879123509223481962506359068351515786971596021874772661512262013283301599909271610855057072797735345345811991978311309005668059571223720384277922424804612324096036276186430140707836700975098248102291231180802314493106272514728895731641397329574353067530904431058134031325194045203017304566152434949832967333811324718893558014554237063588670289547259780462190645697356884369042144588810972787565935675721560860427990699328913508250680411618332168848809528591500193783499613254623925992914227062496797553739754126604749687817641840003982460277030884495538512078763663931181091730329967503998767949143827530453865733046156919951048108861451145683509208724135042999755391522949186542023623682091933452719790417774573370075732881395174113325028691173821037153218463701601460053237066271511687735249082693926911527167763274462533404818145119690708047081858714081593528924869158730556585530949121574306062434660660468260768264442598989232207329757209255923380465929060470918041734629701131102581496870896355274528744475276507601780463188177984627589867747654368804156756252468368711032111696939730355421126470896478274613371317032514447959622132865668662592785706867186817359921582378817548524708267219736861495395274272640315588283117112495555810672414102948718507134888337601624743058971004764268255907993400402662713557576049551422550646561513722271925228645322475561753588410813035204227616856707830882261263015185983989619522149048879437914850072130996360822086830428079411137727549513511257671271171454144885498486963310760980253602569670429151606557733994707635516180323071509408373260345469331705719126783671480041751594186994078444973403377328899615271185232270186446419398040123700704410095810101743030145529132250288138596666924885349333740483624787515104681698718167783504097826458249536315508909163485112621427860228672652871560734496998711389432236379222927162960478070127393503829610636488523649903099464899135817340862762248884906193658811061703129519277279867711868692422064485580695083930853387844130713320709801088505302553538361410177060639377655985373580749940192672976261679968323221668566775565347607034650625573005834679309202780543944148753362550064861757766463940072059022114467349400824041919005603482914929074995507486886216945583078124478352020375886630065183101550366258419034658321996065408598419958220704301303972249427810261319399744154018469118997293335877461943278823956889442359753682011609329350014457507014525602229987447692096012007887985259506149046176283037680953380487867830948981033905560422281255285536874001373143210536923216626484054294763621911058940542873656767878063350981635502164457022294352820737077807694986174346720327394405467788409855569926446690688458124625442854072045062234004307556944802655263953501637987108544600728416428057338746490809285552923732261362965141376010713464201249887706609007135528153292799966552979681742744268056796637137322598239782593625449697424495627026517824253489119807584644861894836973093815282340885299420634716069248116397991957684893769751338643635032431718764897730375462697275877272665849324790064845077287776645319886519107848891988052405306415389396925925513304941168268808507662931561227565763550993992366348211338500121084712373220647217815867240524027049338012221261913148811624595070178577107415663981249125106896391858681152188989734416495105149871377987755063807251137947943246527140624605082524588645557712199841739385917508946884918410082075522807939335775564456926525435436558500904819620272328574288733855699078261172857515443454626985735932937285782340521051374621154087045702338121105663651508263621112630232518851849749458539597600904073169604605289762192596871043563649630271463371526551029242594161223448231905825865285770362369188566630648060679109373339937158211686634475497862804808356511378004553787309105261734560405879816804536470564950543216875662615559004990591242186849765071898985371768026345150486204352391472069705992301424098001260232230899142255939561350372233450831377585069682419874608404641551826849173918624548688537542172874631566536187806340569594768482278993283100694079719767706265819356226822009712290605248167236569024328138791048649546243761423823473463638223703302393391657193469202001309023298177293613988559844811351083228174455810770668338944403325474703916626455242666282712450516754238605675857676595736199827614863486698513779107087723292850712557442354780245786647301815240732000174311972449380074020771350191083481200634132585122215205421761240248295535447105009435835693615458340025682223122409556088166452210241907504608896947051483474331215710003834914315990952524659157373813953683496111997278555078125282128948932960290992161451331809020962174143858474800735009400259502898260646952774907385308810182457590512527636866404072039850576590557357135124077748735142439267061940230461870329074875201207862704098630021112418218239347158817377888836503562576667131963678438264394886420061182096973312626170424043132722538185910879024018968221853407303566037271359031183662970948187792903965096929343941272477854891044553108362511784778558312043638071203620017575243764524602843640124065222451078387472435172705672061308168923930349998440813060905348934257811178969279617678130877674921638506054014933379273540121433370738445549936585863473546993404484570798369876818670182781877340710416065338849120198742737824633611608791558519010138940398454779311265250023053206070082739948022446169501693690710025797123512033428969415858686044934538452337030501837741413655025794177585938243871089011320192600022323232100434040414479861677916885608052230768814866937066754292437764764329234631382242858802583421936167148605821835778961177820357690903393471316644408608938207408567894376830064184706383663034515068398269088865472452292242013155472429128245414686543200370189726091697507453688572004850202321896607904069391556483920654352443389564666444111871115799372713724573012814981716549615918167726770630257998677363128147820765713919800968294503072080414588666426183035061913824646187161927697572911626679044513566526489576401367674901621103752900570814556825465675157815895160731668623235733379132253540942358896845359594849585056260705681929222838696929679462288343707690702999692854409795774019933623189811443021322591532316593204975479488765305916712878307072118899501818691702755133378708830478555737575093435871803917450929588483227946945266999212462443396204149881581660421687266648822864755574317171326859104131936791798747474689354355835477982619957497505609449520472599463289920662212480865832762848653073752549398766754588540957980439966016184754552599666303650585280063773411375902970273651858696176234027833172355467280663995522596104903011896356329003356983150719696408985538111474926359058184400466163429694435974131482830961259212741130043464532354946673154606241471931828244418125656426825896520656959216008729365721553938096889639924661071399354843155845533039553090398660790535876666833724709126480751509462105153097597301274426494429022506809500628503429278143967636245028611232027006794808662849737132684114360124267837620348471360738818149834292925823769200090321068408775814007137913602825620951818017270641555234770159721086655732847053897418372889874472594059598098799083745920613432008667351138131360954557922895690909444839456530960720365927201778734485334431672844417549551602780217444495986047749524448747003920358956179829435729177903643859551692530648780452544623536268358518112150884137456954746166013701013928609830566153457709102036363981952340374093769657317029040667862497501285363499270906121060018608441339700035014658827851803644649901774536520822985276179548324668442452627585108318427177229376454981937636744891554311008111414270617940458755604411347473322148588084742962070197312975355255773227802372352708894487961188136510926152005949634548820992193919528791384888049749544986997278878805101603827347321820496596212337468042195400131714705416612595244835689160127350705560944437430280741614953509985054634233974594788148029213736065112830015296737421982936112718906350471276293363980094435758167654753216294089991357556465457541199284037786476803036095028310640368099258142733135797824659017388915064436468793903395245612741904848576814101833483080414325908336784679163411095712460230296967541832196566621195187020033418960358049079751922885337810044077867890082596668327458202627325391167934054924160736360318519362853070633147969690770041126035779303063638372216439612857175622846406317615444710909037409645863696354645878302550608481913634399616739916138647420313223220168781000594967554782134487771388391055016488849280767076517720881635408778001291679192889009259947559959293312491857749293297371165165822155630809469578637218125154186899044720275236789366001161220298292960620147147516387689749492158717325025352985884822636644961112183697578567420934668103890175134475985070305411765530977831604326016730745797564838597301791232772484838061422550231282652685450028014254001679607805138207594266556166249723401853531010866055482171535012192284385210395223519939064119724568399900012385062769496540293416145137317499822529262430729107704982268805470005683925005479561135264132470244353943754055239056230786657925326339579245876639883651375193757808680521168125113115891309921780117269174924681000872680618663548321087210174328457190133249176597917471056259352297493511380274409152442521471597402612499625308869753414444648380325031872840104821026265764122322057795991836135522756931778236565348207708028180733654339791025323451827204818523007939176598584005774511562067617717123223988429391371427877956481832755516606295415466618640032968389718127455532833818495107521456589297229254687069524056843698057773086735765138492369529730865367202082617428718099091213642417334875666119755127809559464315231001911180446802453975857516163111897082177155403142596447392282278326530854571532147120150025996985950392140484177749823288134209327388161522791413356495226552600162900148737593079892077482683117227872285112135287333200095602205403674081676140300687750919768633140336032342953091850461350879229480859657209413445817784877294821740844472112999991858071646206193435783526134249946048267013774288996110016940298251763434011312110504560556955745619693547949210133005723530450728794605135977659926637078280798609389818275972810468237375920380262631921359321185870084014490417524881753556096161217902995111047841278681858637792898871087226838484721414568455569116144660105567793081077389061031984597065343731273704941137825242896675396465178682248338221048469595615317068575625710131724610961727682497579274378880870827979695297830354425753813037992512262830816219081541858399924482503875468851737929334761925029607673321830343409659386926287323916799836121006240167097877294523504224078027049952678371292041377327837084317830123149116842472138923519236040544761940779555236858803443750190057009337809285235745720122191610956175486875024204012160400892563918521019618019884235091796707279769942954082565273186177159423203622209272175437738033637632183902207792465300067511950697997193388783702156636832277455705428278474765035261179660316111744507010269250281430314840097180030110494817605989503145637211478889684374821161531956565511455488342551604376749386447624872164410314887766655992735476690083464373689526677197363187799351533112226086109090762142898562031263056640698072463023663506989189618402339569203341475097328245161234689638110500231484187213206197400828769061110983287336885829694726123522338475912369723780878104642811650469192181145767653535506004373633084966108763721245467528997648230433946570736355137196493742005594650894613135139345101001117172013258133051891714369100668961076614067730726133780493282554126069894954439645251075958019428110603218185650366880508505435339280507000663787455505144473501915870630168670657801883265683310396491560632054015952000955246096788259454921022399108934850092624237619472554322667265179483065669690094867694658377861138111945120046915565273825328067166511782881785615785025440021133577918810198974707503890411188872757551272844031617510073881969641840286301283764937387671012863629503485843910505692805392820486064820311351764512036177866140474946459016386010910811750931285373909110484874260210090345252805068144249244186019011573671263101741003190647256347183432143201850455554279195801260836619565625091972024769573443514108070202748707102334171478666445271149566766648577786094823485037585756849209083931260406293937036000093073183628185635172991388848018899094410002808858438335725905774059683385878670257910804001835564889010533983818724340830842862327342733375320904179594650766812777118842005112527445810496117667110568179631596092023122876960766605297653599141873443027024085285018658569910690562728505179772036842056294306366163579671340891193601317237472973447647619513928393599247131766251682708770732625844450664629768318173392270607016950292259044835818189877150643374716510411771586642634044415572441513708356748841268538071068386948189384259132148539380185756764311736014471473709361185715193790291947093590930164424822051894248925850666905394738493863709713451692358127947138999325388461228207911793762235333505349346706228743858481328355597274765160057575903142059238439882622908230481410445948143322500970670943373098547824825831627890553968391169789893158574688070871536049530985573429452797798191742615458802361211748070602724523346818974105623120457713442851175886502223905285055389098540223099458803616495027204598820678332810798353750959758472414707598549019544399004532989739127382133886585244950888403880152878581656427701580946141108044178824314634132362884253651584125917703768548189325833328425445811006439807494015018699466635302581347977848547303116020976698806273685318152262594640868896863948443868238399721335520662521850146850229692343364892939441172826831690200713925857250232243126097121380906746401795388705808702930196200452267036766361260115376680126119930621828929552911437951638572049076946110806882493591046647204037486130490380630584442724622039737264496510717229555341275927900055916829027934999693899856975629946289397218072287485446652435201411392361424861596429403250106851768689377406917533961863063380878656985260682363337145633295254408072629571131704372231627957381110037533787262147145921260213850110995114771728937958675226758534400707659403332608378037777247278927975572462205158394344896812633996752718824888411391149998809365561173241604122009458463574987425399168165986663963150726230152252808211096109438367906500185097531731411203720411322545209930433091282533814881348773888275750891610069137910438682851706423526844435745059652294780816532213645195262126516030718252932217073515933408898462903716589064189564944879014316834131327607389736922837698584272656199235077954666688477188379927240311723473295818783094476569555968421055800137893539834321299405525648492344778312818350478616849224491721588304105003334186027300040115042418504830716732583994502368948796501489502374109813076011995280506554928098099169359383303736223680204816629124262953048389433969271206533635172692473981855215421469513554222496673956316256818204717128512220301749053821521761113218732559427643676708393658930588524461110590994131671961350480692225888084441014522661887611307645784971517836449716472960352444198415939478946931393504115690178797150184379842022052587116064192532827118777192428542249395549931303789757803142154819829545534370605122850293063822396761923981747809074251982970638254096553295774714848803311092054339830464612142886332101533101750068539700573616634681491541366483858171084985876939734186996769931808387583869577614430685010749755733632463301973156910824487991304336816252218260087712498313014875331988499326784777330678874694253466003238498677022977492127400590176674452310809484867082499395471909502131670185664135879150860606652910050349165252373044645960212751580535275069370775149234002528967773637937124959943914575594148948583481167052375043290436632721873782608612828997453676783843196093964636918047373105904995986346669635476355453756886764584907216284972474386163095149259982780670595411374105115730703988974252406739761943945164462591616235580123333220955100928936444946792339933439934899466904667603978796484220694606887518758566284332277835506207991316993046609931496485315420559543787033337025174617448077459793359312171011020036258178154424686256809205774353741110572297406429587236830857014840164622608078262138928743750250632117496911269895630696225745572970455568635607589038425803768330770472401956171659339082129851601872599033044175180966366600934481246735097684191239447887684057223791390593313820983073533464124716913836618958186029777875834278751508052324226319684236635754059150635816361297504799742568984285173769254449768613305100668339914401417801540604778453273270409473764175613597465489617180552601603872062740417139078084521132335131619272352909083119595240792195725141624363785683532001075644295253769358817944973736630437898126907784785074102234168116660558653278975253774478032567557125022236433100771940431639061274133639848182384544870998813615022744748444821710077789297610595651110603297300902899608161631311666637379786790978439421786880770830963913446252282381477283393100897050897212605645019502338252689184545857218646346296889635097153916542239387216289185196902857653027205013115114843704571748866482439048502074695992432397740960819903532594765607666999975117487757897909429732611484012900284115993125298749071026829661804883982285145237982131624011429083089945369858713462096337910209370572564608144150487848603082315715120355516407277232731508368381387094726979695109598446752829723604411916675034365801547172846542868365775586788681870687191750364769229049078016538968825644912511386811635394382257308998386056893430911381443400727181893324310536161322875337769840575888956231508505819951513934868170773326239160927271192955769793828370998537012763021000462365435647544561719162228877807347607819827813139841320809357823013231993323733813885737047026247477778892436630593128770755001927009734248368569360298217574579264259006395670481357003948117512848122253344738111488297300910951871893702058371769699358831759880906245886491529079243680825914726387775177400887870172328256051720575437500206760247310639724571673051356472588108608161863953376254070427258880876424027537701403031848315608757380416194552073044385131608591278588548234372589943303320820447418506371752882525179713406654617157401080436885977974047372516481668182801760770991038983838976101913811491089984470846558044097647847175095935632134994984195155639587609038536720304254022319599552479572883971853295060371618920183077526450195661892414623816485608108335803426031580755074805215326330266283446387312145505233649622400312563810173640826352221410855465296574166811888976601161874955847766252312937175913365169283031592631731116002228165093153503746384233793611976655785275543119613053738661809873415590993941882645048333845267262022097820527812477985784417346376895903519154128387155117141032338209821807216151433342543405177107778777837466966965539288702427913578351374203097994406373130588158966699988998707479311384170414058263518841664595289390300491816636860535160527419207577578504207384278880588087911911185309039051094815627471771158562556629863880785808068010823098330830973913350468157795713477580622817118199543158456401251805756386814292215127773405300116473525426354037417169381141499740699298285752857922865303119053876832920892131945747817924776375872418912421054721214653468970006021184460502562837450157929051421929089689365878035770999843154001795289576557554938704544322160542774560861169719349224326265812339374367551826741271224306197172341540740820282654628435288443630347217949615673339660103142141313094208129659942678650263474120778919370118203189835968686562320147404753674682899263926025454278169397371878247851827880835841979209857377386221849754415696648044071144700657884956795268523950804332468309436091556567804698367027468578709453922640605245063964275502401519845796608762782444188786154686304288254809621141940862724503134860336298770730965710154299371455898623260922618813263733393517384499857339102988973972197823030691295400027598835287530425113608904170751219888966922853137489560621368470267644106381280863597421282094693467128941440304883041750936357060328455255813967692544576951507277359413998206784635900499889942010945341868204874923084764723873680081461303192410653473486510749544974401716957483461397664567846070206295281286079572995122929831380279589477416122693096546828606712490856747761240139661176765130277940486306939454699135870305160936267613642757814619054614979524133113567961617778575009596732545309592913350031684189508861632509694031885550879060887154436417714641250725132234177136119847926294555246607587122504578225411216173337685867525850397762037116488615685547905159819840473008167580920740222851887061622332678669439716774394798426586915612079126824084854449308280671966402922510795627445930344625643735109745838289361454054502466925387259054833620988127847608131534379720597606484365817005278024084783567674679252329248701783347190195985967473150552269178501616252741903032439131654156775002148002374414203839582070854963643529133698406764380088667136097162285750097179337878887033826781973319536264899169788253074386998065326433671409400344616615464155357611264239809505835151120522153708744466048111445412523222777162629053751155960288954904580345076065761707129450467605766500561428578782121971984434059080588568678394341544368902556830320407396261367692885003897464748718807799845400804287607116136040992021196688377084773333996273364798528412538875744231139506099275610866286473458840922340068053041516789794143340979767656606542947575215649806982850919181972476671880044063181745034930038930700111954254486432215544864173797140749371222683118681520958914089469027665383461064093302217433866871871809116606221984610319252816674811710170739157101538182062289362556225312094951692402091100696337888908289610338378138774845564051930843034342062729386014331442481255182815164302570605811342580978848680698207193659207232682408846291390049183066909545999337838742095239970283373938288710719422643747593398962174142781873873133910430658465841564898413597710052538253876314843088234476773007445751440879650241597428662415000512566730469347695645934685546636906407721920230212913971649452805753607747107456523883434473050713957969720951264039822301838821111298745590912366403297166242835113780649801983098019341381817897181172390684537021438977411099161287327054300607152771934739570431242169959930295683378011332929387890007912598128709443378351215186846158388347429246066572176673947587460581446216947975529844159305185225662026461682536570082992739671836465496848631843614348915416450518079452909931886677464722915716898302551384272487721113633198097224747820335563813499010829998190688971259788489951810276698013152387317277291543574510060030495869725610219163401250339638505206137523584522911548011932714738825211150520665444308075082311127724846216392778454324316891596615593208090451425255969563474062131742191432225703670823298593846959165182861405373180657361455060474876016507241364345946129865787938550266765228746385882772205176028312136459714976958092268411520915683370151066557596005287615175512844488889186786832190167834476875262509880602665136132385915599088459420074987957865241601292107090729059222088416340266399674809218578772616724936376025150879107292779592142860890630927897069411853250137290868036140078735118365336922129010479834552448321192049520809040636196369265502340037206651039322481827501343825013033961782211461618295147822383545662295643356098742665611598804223949085037052943849198130485411333986202810254755580841592005609343398598602362651015665110924412518026765373385250437216991253313238189691718333436022770566095007019610238532994455148631542138462174741848272084694397009393737114954016303235861335881242920478414760713609883132338947732761634262471888082797444599448835739783194841478023831014893168974896897104199194365167721251658132440443147306019728492279220612457411588894232261225764654540139743718857023495288990712348023043250705072839960382208074937263388641509772364782809520291567447251392106799234107126362561814967615260671399484698817542595295642688984294518529387853709674207065805394181291700241866091735667294383893662381840267445283926533764819183493629865270182703680900914957399797916476600588284884010798162666522099992336955114094687146351088956224565068353627711912421843994201447046281811503121254656036373004261711974495545581702436222538474399223434567626885091202410430934477112623152028060946261176358337540567818796035668512110570797868947149665537194572035126576846453386572603009061577225227919122664626265799841981533493006114152092386325159768602614656401709654129484417581487214734422491911162619120671347298752560058266768602442184508933815951742553389016061395301770759535086196629303344122858289851754808026816652017961021230636961825327743161439068657442725822503946822304112499759030036731119175440634975707602995968902067347859474600168868482506321442920753294477576561729719371170117270665490493904911071285539920368872810186285800495524764422598726504767996603974378707116565717436316307989671620822772275852064135596144352367107591879231307009090335419536208953442085064913270822021467848492278788033110598945735942105576014753455448795787696583177231276249192839994596664366477960971736783181583798532801310222548532905355300064149272347128626087526177439896948929501233766782718360070076008474973888566329637163234738785293891366146416876052639722294551447875351945803433970881418582823617342602369622882322413767668888892746570135890884710133376171793579081725415226494435512296503638277340435957199791838418126212733869273126313058279117403728585920716575567579953052031973404234832527541186338145882698936577694098075456566489906273916973512413732439518040290963213519831704667151121628978020034344874185628216628147249300988128821324058648009372122162542844595628986689315339371754934037762125707334846404072448804872281001501243173332289374281546496800934963038472822045667221156246772702845783950388472333566123723092932267144404105594753426252036262287709885236652360145089367069139482331049646196497486949847881405499741211045581305996307100333843212620712996988089462717348238881186539088941640668726947769936697789047477463169984767013731026516579278048032298479651037795611706685727030144253679835291912849028785214049016967996676591559391957438986424162902278942191575305386701750406260825052074272599549196983662309305736606779191807386835776038775091791381684212099431616443857076135821262935584567182808591556519443421823968346426184346613206104980941716584050217938945196770221672117098172318023959189041485070743056268247819079491209129392745136512914415082831882731281571723460156435811985786688708199069560940447151896410433582926198385944188376400462338035559679738344283349396704457838302789960403653127294739741320076794593526869715892580650092509797394230746793363357353437955880274332230411465266765943174856042304144449606452437547346659917421970667642333304789057657366108613973661771615139985076550213243122426990386506298448156843063996616387158159794922455951081228298278270237800630731061862841990160138814051121237092117240610203963669308424674913938736994246450715886445264726527868829886228568807481213561540890027732006165471099988093939672103823789645097969208184899544084471432984740374998086627236274313050412328270166927250729918349781844391822288617690982616784979347685025688195396428784169307828001997151723122671341061084259716865968863010995260971155837804431430461651299626458400297174572831555178641832954438641356046119651399614609274858938274590853040244392235344653148850894374809780355682301194799019410826962729704237813224195756449791665404150292213131084960687864781977209106987341514645301449612464136503934329688169297963496607372335112279176634695221568651192297359021135796278380113636344966183471333584874226602075860113476874187326567775250189648168198522526722925276945361289773801312537161360462770010253862269526498798270211966598008598035479698988662745097141052168502958961831204359385825737839227454083554466261818422874358107107995701815874241360951906094852528003504646382946939174879741914111075866372165613028220951084293817594996670125288286138749557046730668038052176145185462316283645713048238611296347228747536372562654100468208108373909270147982471277857349144016159176663904468913414903636012526126733926920563839928889574430281425804703687000541597296100964022709312326214512725368653866874436547835719502198819782874333820719429711737557561927281121597667015471059470662491979215086245649302227581850307945757674343998530909840796921696742245168410483035877901767370804850094757460086542961063367435674349484512812949914165748525788963999870782312619953811751997368066526708824773712274133623864342004719091335205045762574856221603815570109131715680163983465961305351679751163163495248373820037401789302498069703331974559784224125979611923442703807890358681706518877905222863265444590516106060256886671436601562852615537611660368831948168657223487989846834977533658142415578391414491030201607528879595871884780054588777561613742462471008575112505001267027137537260353012733563735316587969934406443804723061589720164507153173518117656956177130546574219140841506075221145078798057071237057548617347420014426146733015823735600715520253982848337701665844724439110483666687892925747844363695453573309533775582340166060276394666252905643105602802662643628117941909743400371374894460643341557897000410629357067681073070713291665846615303683281775544857549062406067648991600076384368944457416511148101144284511036867064611230962940035815836950342901534837180996014094320546757682170641367579450868139900844808582458673958897552607235232074829348799963217393412139603132138225020729962643955590264109111868713951188819084336460371505821956020995525844568537114226878647799804189822054785464239370595834654645197008633813835885639939755997254177291296086099918834058329302550731374837808668224226478021646946184242891980412164432222355019148562625086854149227777929052263742519702563501076181723522727384955494289949511920237766843984423214089099516230600787873677342492028002844302920702938679044003329595254911679405864742706982748590286007870656828694842760269415864913096694165056410169941144609218871950237568986001801461324748938292417797625706048583094517280790706091600394594054123953879211188098257297224029557787008073783383306882641160844739770223932508256162052304625365571180111485531891848562427770493368372338148995901992229806072101185132064607685543134422016539487986225080995775073084946784022121877644173740197257378548815784310991046504668359759596128665328141620013821747263548394139123121818628203608649550789613049226632528275861561366322088003136184529300494875040171361449092550701850007097609036723035271215305761636408549019034419869849198533118029236626469235724162409609192284248080787214656764423265076903723936292816929426292663721641131685049691465576364208943644323593670208063079812964125964189212197575068386769582394943048070495352800283928540771455664287491231689684041427533707472225428615349648775044155280202948777571863224650505946951619910478402505358580413359771224444465277906228281645269743811486163352839529908444354583017665431310673210732263834479839656260325919792016629486539941393330955273019048629582123143076680776392943888535866579435316353691187565390388418939893766560203527090880416575774418075208958685856062246844096586593529304336805024260697631800290116945133434399314628141405682574010044016348035707670842165856101026322600391197019214415687729060235538489731142752506830796780214923986557868978243880213833204929015165941913741224465799143288979006778825764910898463033649942975154268636395659776152905541740486815153571231117889215111432593280746689641339693263580397895357326885821117184746883649520379222788476007060307143478629016953669213268375301584778868171907510410616814076546583528167673966446652686540516513015375661366322098356772723754930364641959709330935651464648225067256717030778878110666967311286247447107922271701152970932088530266824879313524329390829553376642428513762366314089849613480351554266565215235968820650096687641694512728533049949650337339226851681845462681992187181065408084404157295790194773746995371111845064629881807806134256443217318007064407422499163439703513545842959699631729656847039129145964057588250453641756795277977325690533157472511446878898927951120942083561198950696848066070891022221676650013627446979175475509736087781923587818681652371007557260562246665596461955402491156993206303218727601186055417269887026475975302797358388393463985794911219247896255207527877278036137822998194870185476722663258706918261742855503472288103950858516151217321256877061106831005967679223494611111864450243125201357509606127091279005508055482501591372380696732235921656349054481862206923866251775127454966234363735267036945291568484496616759389011961845541481061385915336581772363050029345940802176820705774478371510117237962452968281986910487026550214885131813431821590938971571356440659537699204950624705046246310718537108311006677883022270971469977250597818465821024383271217026179472835200697682382924488232166198284899080772424302892465877814079611950020226549149229084477477980393126239405192310942646743280051004279296093586540453291368346815728648798170985510643319276102425360533100326076404359195265086385502036986426634545934435954829760416292927553922734053779743580127807135534199806208708875784531187566022737758853128567810570816550583320486199755281951146212423768668850454868943971521924208371603457850426679081506961155477147243956774148419716066612354106063292610623410673797934138795947244839359262291683558765069035508087699513952987096865703108127137281107540589232390754160040505215273088588695093981769886420062583526462248604599153543507548284916421786202453470552482132165017515485039960095910762648747116399590456804212407241014925190502644719971527831753953086307652026741067935354543800116906637476271667320934879139753268386444553442787851049441730545082462812697239676235615981316161788816738877714563836462500407325474983561882609332993076131407216760575466553424382014943412783999364913009118729706766622310170591331750102340826931623863601423190831881001412847965501245236780591115040305459469519910070577055013855635291342775203296266885260748852880368537882822346385865679848624704979125199828501624836665414308978029802099085157323371553632163443134165826642458122804216083594272201692898779282157040251724395999007048873728838088382252314986042877693994047912845680450221046277167934372048146501602594888638364921608984208687733316684721358413353351475958939587059489924597044770154315803234329328515119042825529238765233532411531800788039480226413396356848094436813501695901976344180242777383371895073669448698938659684260075118738191329490561584180089183421540496594319262775248114672119952462194311957208143297723595688725070399596672761415936750208783538505255770508102936884365732169438723526541278502966877854023183445327696368349772637302957882050152191635301560249380263761236553337102395127706041856272963523531362091048859148428970830054226621804167554275531529664664730489718085496689567069436375710539921249472837201066350815146534646474291147693231412912168087467747484443624424061354947256885477559974431862076473927555326859703756326066099350283909941537785593957873293100449433955187259169053844565920027164210725318792334498255769360846510043505682604326048217222049953049580688758187304916958692618660702947801527891452440837970124602337711189672037697156731251006791772369463465187301097702740951214538954250577687377067892245749529001969940969562059304618867865862597166436094759514926863872221175216766866087603963646654395716342322459009057505910760528353294775881773224805420299362210948992573970119048783203944747916854779140688105989732965185006601585573592630861112768378088714981115066213082597616321378626804236606843024107746530957912232001011431606390964250973292790690357540403926994329275153987400730567480266040903314739978213285803235824903853931573524497112334885037288213911837740879976817037140492493446006346286069768887068373240063643736306552150418026664951979961963589386011086732378745401737813349655158354370744136636693427739218213762395984075654819053282331155200921915245665069836791340043078209627008166277384631517261363743610374949800317222453662875594002070198638343356300752055843680817550079732629966814669557656045666165182640136009531199954220380200745035498510136140559179247078259976760991432314026032313607656005066244834116122619591857363372976961102457891383277674531059279212600818331349324731174747606373059324171793025454375125466042252297834940421213324746634976075187814732029794499734506159590082035555196262248789542372344654088330179791319320812156000767426073756870840223531328931014629243239689215471406523815661990724259086235215809534539803278798710228429686038468753637956755133599395456477423236099520132932546168105856709807904690523857944526847747999570447081623723620543992660981869435388322652074878703583238552907522054559858187326859039962046369198768130777767728991863312610946267171422415290735486163714106973991665858518647060323045984665382131288225997149998097082915962493536531877974576977146833203224852993159910834915553940156242536240595781570809071826939736734770700299466100213856788211908957296953254375371163998620741770085139559901617326345564523582030278628794175570507031743509919962735180472982952558817909065083270527969561393994887895042319977957634632882412754153311355659457469394856478573268879510659889858983612041768992001385512629160659643078025678150848134470736334303802980388546521158852297866235255845513999137101418347231669449234621707269583007640710328099802677979733986452232227659219159503080798826535885396563853803320824870749809521967969752329044982113774436615794389717746378280580414058692205630817112041179405646696442665845684792407361558620144640385288921334721531618746569207623891177037734068742422257499731743602117967732976273972117003641611436491656490654817231254439387046205099174360608964543675487183226975959837428597139028342081240542183578789609099489300090814144808479038194455536378455279478864937331270439836309656759778649005210000724578917970129279401708654426434006160319186823166084422030689397210007892459276802738358796860923316930935532612775186773861121124461002372666427651552605847472834960661663432476643848547930082058637829949678161453872742116715154907269140304499585886747655598109250876185947289126646554466719097917194181479852767234452887419197735338393203223182929762744952116986545447092318468288672145827023543960763709948924803224517274631875819957802830618104424001307618850672302171704933051357642950045258782499870027536853717315537699909518940427969447702399674627364427262126434250797277057194686133764099479511134788319902534753993002098318125050351803965755536345814395603016328695426787742764732841659304550711651130933974953550972946703383522685500095678755402689098130239093701001957134208722815461495447796139958461946487227428080153522973617748467795813226176121501862361919523731771584004039080354363309054230719252774474304326912098732336312776881126645199784634507888719680886742410333302432198675497864776825850358734890958274065675889151988355292069834770370458151376719102816368806242730568967466493097229424874576585079454722307345772702240764144362089892929325669564339042618773949343575374775324799406618762961833950499125026672533322551686172458514751987114052103482162215630575879516186085459862908496757829324587990662478867271547764215629565736854879491680178898931339623454064094572603192029112005708368087696946508419908541319112754568959562970364123395827102628845376938435547453917229137023152819718093929638883366836677082633582192805133972049773219060103635084388635632754348509861342030366070805358355591027955634124989146512775182231433362341733072422645528884537878615255032338867069781690297515410029181295851833942151836194373826692871078841754866507981773713280582864176462017468694132940580739890265478090916982827090551288283674978301966128199860150923555043464515519534485227429643395335397838133567441800952816092105671846929379624372817034048870776338049165379607133031995741162965259583243496519014605819757226354176683249411339718026047002068548062751283021183566211906173394904848104015613347091572088671787889207625308110352876650740618783516368731184712573694225230162619351004672372740343947019208888859750661334010048356978274895903770439898972853585838628972321078140262165025234871624434923151252159246933257609751272760465397184254243817314710439966360691531524402812100030316352712969839651549981439735860781635156961775927260684517921449803142184108074641553920661439938790805660404969950044499557150448416759588161852592907167551086675785799122880561567812982317306244367809419753364592345574119145707658043685201049463744864209992283196061962640730582532363634911340060484409018898957465562312927581720442265091739468476043887738253041463891045768648037075268364030389285818575796016047588611146047164283463156882825746882080140912569290679591185692335058683674204993896497701176787094304622636036372279866697633886693454920713741446240875646062414896094897058288431673555814048213599070670778944765023338294629472901088301612266263501629587204078926704526554343026084975281313264488583484219650486764681146831421975278180030255035691544107938168912382739288672313339519241735063470999723072856873328653259863700280415217889614685789215750853172205739938260469127347260639399419344484670105844959590085548672072647007101196084692956863266354306334177976366826675105640619867160199852233339782253248243512817291791357761925523620680648076680558984819180845057456296603495384168350716924905784753556711367274409508498104139528584646968987056190412815260766648882660049406731086609061213257184344715852771166171583913193492982826919486153216253335139081521842722874603737155264697573471439591144775090321071956215324577368394594049982233345788075950916489340638778153546276272123971085222852913238112907455026315084001287730946647245640697473466252874742801611015852903820165114760841074682084476531151908397616604448611039874909913367442334752842674525712659671189983841565217611185237799252757976418107193263543353775568740199388864239115580655531509978390716882661411104458141906877444263397386812730712909464310522786251472468995577097542831490171946108553635591272073090570193191643292560175257431700018998092334447620079200429159235060699958475203302180625277211436836745320546779912445941379218444500747672245489331783295230685447582234242269879723105761816643008115458454426938725453608979744553616443813873106021667346795966565780187962174192975645142015484125610045457066047644823883949017695699636588801135093144237675475458417911949187845921918829157359715101095834846358831828389633972113591602494227291961428122784623419851912462259513652739361193628574615596204809480747702683890187511987630393810794174131883717929757409410467023032972280310913814073320094231119156140345365481609918659046491844262916111007442415572535994721356971277229944041565633327823653943849877522273877771905530557230101108437402399557112927163062041719818753327365248742953816623488661067764706607766048513625678260787970130213852097437230981116615405514106591123588891370168177290567391831250791955688181352424645928944882512064024891918352540129782075435091968511796226089253025764361142720748824681673795728880631451915532884107115580424775446289950674733450685741428665341877571054074921927846806447506224171354293514960698023804624964081354278192700766701013573347046872788836344731068248551898317329868680564706427609298993014297361013579108480152553087842111572740747261673848666728092113794784039254318243101379306913611998192367949009817641098638683921407204708206252168580869783431889967908738642491272303335171206286418469271699157082813859104327356603365669269631711171690283284401732915484195464707338813778593509220269597791472766680332082328875066147391042085469962375084776945173574629333252150056749631297969281613601637578118710285824256418915328585012919571925622950241404319011734526234649922200381659379433690143927113046442628588771105106156298541423929449722492323499868856250259114140687545485022827227735133657087326588816738286935189178477864370886099667578138194182800403837111663491522952168163576645276904962782652226277659491695063222305602833394226074055151729035464651480519904891067387069216000112863168143808489591133869632754789657390198633143296041476442591761111713924284047615478090201553505972019753893777236596313263459874177777691023793790029097162694334002785875551992044684830631774142323903584435677550760633543531278200927112958051404547851120619932529498892467215841974918075419501432717609628872790644794013412895930681297530651067306926757094340826821701545969570979002423543847569914184325540229481837493359532050161144459544785340126636430704389042946899599987608104069573968677662500322325092246560647110112821592689518345458258155284291167284468811183729491375652002367272008027227865904027981382192371139971640524416960770684158038213220718084233124699239023923949047117060315005570719213206792170897499549173723430564234753118870695303950638806298377146566042021893690204282010779159461436745997517782648111706565338871146860549495238390468092848612141686646301829664991732551260233867698148461452611696827114782931566460244840163558954888849067180763657911522284702639281490552692488364578217835203875021407743056937833483328248372316050546217241313108675986039686712510166987351460253824422532568672161340786835357753264407169845350227021812519620776588810544517024643767724621571208330239166334898445608753291519128045189584382195032072243250380317921459490155306185322696963459672620584350610458850752364028395214083375324682987200814553163973557674651269031343686405181433564328170999217623733327748023382877888561708317735391470293050603163486537548886636136711448258979013491599669978187819110018675240037868611884363536112602656779833753746672104536061673433021972117212066089954961114285323291601308550954818536494842096259867023097075272677363279962819849406687155009161909088187140721547438006887289703860395723731530087500851803050443012363534277834439242704135348851956965287538214217140353403203932503952739683164828310627980440476762376877864840083537650201799946380369479317266292054641855266411703579847474065537833490569330379517246775555253866031110912166683481827314210844217116890105820232051810965655356598271061719407857741985958685986772332834881796558995318186897134192753762200804795912974195406284592138355616305537742835885492765570249219347682203372630155608762374943482992704053271186881716935482322091444549682673585381239206654444328286551681312741295628312958320538094100042187043533596253831292809883596518172970177032435944011975043763014258733021337327914479156272525612404849469304793522959537829868015304665097258476346228786950348898329632756978249020419237222359976655710629116385028838356187700196454245599580550740067357769087008964149450199263833670542445814693784855406091671555336929290996154693221181336892835114309988114125142693485377151150992802619944323895495032577837630771480495996675682204367896292239144945369319799239994473000837002445887197333303398281517607761706528393293658519073406632278500805113248397377904956593173523837394576081083045711768408735319642549207249891908410384197267140861180640622470611691680770733163589466510675966633805112035352204688674173127991316668570261717629798601369304078534930413898358011806093693779273868110643628519505314564249417268079523861444651821274127570804181665603612722266940325075617271166497527973779495962616736907819293615320573377709157555049160455143948350400847157376840299629947278756443261335500349254133537393298227786632783773266385873848926207378555349133036788180150919150826447285394854958378903445051746208460443598402623701941871188382663031901569757907136709053624631753196465108337305549874454051931187419300020373943709354557822341847511545590030264527932836740968839102035297878017649519916701379122739619004579505884962202687823705852007149855149161073216978216135752600651744771421329680517200201155017407328763725603339748225777581470507844201228896741743100426704284886199436689423968054378827881512615399410707260886509260452669587294317769764508470037187297985975985349443199380652788048193399011907511644929074319973317954214009425903899074205823802414990505861246858518165629277469363887367977997936979131678636065087489796374223862869419773751678010742742708395905244005079512107475751091836928318932390617762431387423203321740800374763935691831612371681536643594735085076722587079238817710268741418872368406263409473502342733462281087128037892727976711546921756840199376458766260819462351198616045536956868771291820191103204977992220259345253053918679811153101672459819133972853133047955962662338952311312247607864738385440036517730446518114409699826717805759002716301827219195063917213865775321062821295883967605974264762469029231590934777455791159609719637448092562031331415310267277025065454392571930451549617379749727531654769253118871841003796374778185505928361484430061329064342365012966501979134045835762463965376658573856240661544386480460322655766845287571712848015253313542512784639566537737656792648785597779254642440735407673183062559554331951631011031924700735267630120482763100713050974359822447832858938205065322550219387245466059843271811154701217231959516111137207143930813488141768110948540243941717175212327397046289651072473411967595883497217362420959882022070894697243963249087527609194685998045119690471400675903406110154878666098592459475323962217372996046882278767060161972304955853587811504496258634345768657869518941326553354840957059782193469057500374168494134642842861417011990483901051238978294418011063335362611245795511026757831897134044304269207499929528519929458459433428892412699999998922892376273202135603634525735471669506548508862902925713987291749798369563783349044034831085075776298273699370107485550872401881856638814342537752421336940968844267978564604841858246136151839964383551271771918964164243736767100375128834239235652045952100679726699649166369366183262543544751676454187301862686547414058709293285191329419927986768978049225219642978014259516817667363580693060248904550320168567948821414254054483204663871167684762752348956924436646970980388452368795186390319845156063157418256003056043053686197711395329817299345152934417508879336294905756131935611392997001938659892810234596853759550791253157218749491316429664109546524501999011923984984678497528915630783811385458224531251012854475312381210390505544757719432511448912284032112939263706452754499447842374946681275578033390243001080075475009198183274964689696808077682208319495492674096562873767963114197006873559275916362479883261227125863778683056944482241221735765256596932886620096485866494670160306272863888929763523580374593728109963054041838476419524658381520627353124888287715378083493379837028730070755132416649081361997327920340286085564491575507187331298514012992279591796510047187449171360898307517340775928337092348084618926439152266887099096112592095378739825772516957563668267116435368450314766337432222822892452682195340796572281443140153697073396976410528372234829506861688314578032478287772479416747239084288756690132179469839432674752591108453907297116979679412666470809977976003463765541108828001002554687918419714410795009634512492718136531179470227431122584205503277117430492359190089063436601299246492350253026209732591844898737745366311986482695096091016920953668776245982224787915838966233495808803206080708992691530648975614794030534432965862177259034892935339625507977028211715747329844418980961192610940592478985973166862095074732460697668303876328736200993625626402870785223536325616357300716356978573971000638548100085632596137425570749291434426483337025149456259827428434238666259613592050994990346254975579204750416794153072630952221542164231406018142157418022795816515197378616509743175173235836828360053680362554425461504542987436179670729871638437610959100022551364196833753214628196632133194739036498501332670629717103323293281265066778108249494885423329292418642891399843872527007867643247712462255059453746514058291750024710829751329691556364596821762185250509758562447570869681743225297144492404305492237901053753340660735376441289656220498661928746905366097340349816778074732608142109981399583128259790177818552518405932494905814844481437198935032055913582437164055624279713383702198407689482038248155563040436189580475428728888229239684953273856944371588530107657535804146776112668705281164639057622513715001200134550238175545177331685086227184213216150061559126502817468507509199155488746259843116638584257684458612950063246900835841027137835187985244210983871025397173820671532572193040993429261970872968712878999860185211046728903800607821698234551534267299684323759989430401078570980332194836405429080453365457879593387450448321837181769074181297259712164334387688109139512003260557107078246294037509496939353866424280853841683195399539192184688416493581841962206876029108717678706747214619099497029871803792903689138979036213398437097191549014099358147090851336042896803131570518746396143312639750070046160808273754699667125489544283876875116926767919160483853572673775680567756313041827827309914966565178994824892131990703302797656750085647746384813501766477999345724965253734730794350262680192129785840427732359336866545385110190534527775987218969984004375908897740889432052083494191455342545818496108878526229333660497351415621413371386300692678568125456849491406398610098169546904359583450542207625316203594048065974402410741757395162565162962927721508126611488396796508430169278529872011647476670521751670721839235509016324184618926414571613643310471005006652852773345253569688176405478431421625078586297420482026980317074659610977642950131146840218465071866388782921114157619036743889614797469481241453793840012215951561045695954492926150415840700988434632729355954467049050960619262845577537647730252319106747152299364571201236802992448107157220227517264331789886176270716731149713411270919881529936173303577615850124338523613589223613020961871970346092556362278587505807826758938374988460289232180392139608041219910226226542877603340447799836004595137911671665895152328268710435354196710365801646025963500476881778023768105232369607671666153643045750117962369046526001884179928663737492155868527957235963356241207422030989995459083560992671075617933363081024399461838129136965336758046366525258457341878677582688440527250998773256259997560112522960656502546859634185745494182853492418580920698385119639626516342461217722433127162976970364387810415789537384785055226078435199340062164134738303638731226458416680298254014157281573622273162920297810410092634371633040248458939729158914161972264051795261825113815741833316591884645799982935285618674813910649069926621952852460996545827284174362818850229314392414887873346565849589944804367069471116956932217944535013042755921155586675474987204083397901491404047787741719426665719090791563101274326749737021872938073912768486310598329082056240669728837000683958574201881586602336698165934441104328142187486830311885853314479522700064222997398489465848038325789408718504306608606449900222833932574508157034230801760445381316588185566240058355173878143216208367382680184789776467944654538575406450775698655031594024129664983927768109382246807554023013155028133727797243863726716364663495985941672757192611106669507652741621807317911909222160584548325671018713822255750502708400527439478921543704168397660605598147362857920585797687979221084114191678583636406426664843981997261499111121517022212314661687361511206185431104924900543676446845033939282095906867829266933513953928609003355728506387019350003782047818555827053319689022704106073321743614018123551016781932177115131810677780878287488866119396616362047048266002971060373298230767411880928371558865327050619530854543851016470993086642895353517861085826333485123163088498431857780238530619967571078182620008477659119739772760174529398108606283826304993262508331308422362379773731658049261676871042496339290374682467493137591025672896514417252853382311125200596555676033269338508238574047063426826620267041095550226848866706427464341693330955218810254004553785755296044110768414527456767392439238506103325062557933878315807553616097333745022615059587095564359072306960133130907594251385673998029208901387452855087676184533797874456293486314819859917953221873925189601988467476116039585698303214862791372373627399946879860589664401317482750882416558104484382094842263974196673691840533165224387175646519552615646189128162220351503458150189282393172802689320502753802036065164161708376779246153946924600607778011683467352660873219792160697808547209258587508372165274705843036994212957060744199342366794351317402876442501933436216411947847283661959274359788522877929063516401211912256783311232774666528120844892845010834272002222732210334176257260169839282887712044373748579737507573086390283507272806761441596334663790942447718585297239209911199779216139782648874836618460118586078706502635853239541870601686679117654925327022735691645889693940974727367554560326680863442033887633037928185169336399393918041198425901797748188048584666025881693567074112135419653703394028522254972968028557665933937005324509037743243729705629377424655816905099320395445760193657025647258732474320697994583811423887130770884689230682631959868167470874697231183795143236970976306005986722537114324388363985440393957023019316087613585656861437252939348371812127396634148725398973946757768808279732523325938586925827463010430390896415194728530498951466688281415233045121082085104265627754481460939927519734995917964952081376563063841613453792744785945889748492077531999301095833926544623113734812065686895943835073305378715984612999288323585857183972351086143451571809461656211608409161485081116378999449551839375950410722472762789435046850767557609042087590063016963877348398602574133364358535607737946016834167981133944348943001036282761780250473540358978285084341545514943085468461513194176020282150908462758037458358591840170591371541507676178803120712918530875277680746852097405736742402886837292007576902962500704101804701343805402214427339435466419894979958243551087526973346544260066702616477191405538452644425226389887715218942613023629359801909566853574720495781748500848461929339847391613669638004226347375481056166620930379745321390715964316682055474603231028982618507262857462947272190230946096736741434085128947018869250303033047028088068149233671059912386219712603451444041691995687068507188037372935755996630896278579687948407500348057762368171413124611029941076494073879175180326045764533681139853333458703355878056367199764689582548131715009883568263569125278110407158761989146293012871513093038100923384758117251451549028366919881582030000103487443473965765971258763853400633258636611736924516137232038822154664653830127883784399478933317188605138611008845957722153448347060434522483868516369697488488555734139896541415134490824045131023303313416253768088192089892995381997429941240232444718422016675415341366894719098463397671515181640556531411301791018372307421435909643767733330196908990736813178659955770149588707627046857978235725033396972465348352965706710263606616018630175145974258057044631877673654449551500740018651663065812498787020175940825260707009337270322265185663655053372848604141828609008646612578078863930718736188627692430031544941017419072417548044319317800471084688566329958304437072511760527530253064402992114325999675280541382689415741054944928810240854919270508572462682852583378610668806210461029412223074461048381547319681957971817697945112334643503934697798402473397980854240942847663457006490868582021122277334458132707436986542628288356147499184167467310141278243358327950835335161254720691754293516373515007599397952215110088085175561110470329051237048925594316972251241237231388905889283921532423195304030230844679556552973130381349385678086235079202400166116201154089659007642376511885461120406468229450465143353250244027885976326741039263098459028647747097172553484597328546895897288159095455231579485700681211510988552585376565635564517426479079064097592702057519214563724475425130149625747537957782956476854353127839210197400763843520016671677217412675046295331604370072194688230137337372241226384213720290912720184367235750806460966017070405753876337450275120073336956101601842970518057966310792870537678567348077358244436735737496929246806333975104429320449539735950115834311057959702657939468703838595637885722336058841289314707064460428213657594114253090904781739190003193389250301209943163014116833702927414533757482969109703832804905661358097438846401024813066385332945890426478919435662165956730414230964561693813382150680592163078445115733980075213732318787976372307625983664122867382848552341226095178926140634799070682464040691069191478568575333783860618762348340490554731322007953785224856417206904791243648723772164261388999498476107269267124230622178083944223914233274977103737758497127943545512464312200044957614827364234436503796295562985999819382610449356949564285703340621415416936901133407934456306980344009310497028939517243459500475434449195461639485546495096187017558931296157603727235183595155258492056630956915514439878005813776998785024946940710030723618971997174704190853549954821307739244377404501767744782770994916308388791416920996683026570054297121634739944730086146184544266868601918135833734254045988194446497344352514097531939170700230685344966346962195223724382381755595128688430347496468269933245808441284154767282207771079046128833092988477108877360396967967868633457144187543350273214424720993795267535529388589132309281447085646025044918530187326739067279803764236831950283972599056382201593896780794249928947770824671930475356414516537071404977970441178217655978557084890099752235646458086661929427489709500039089851798195949887833221995608116046817361055036314429861708589764519951471955563801811351985485153179359066478384415244613339130203609055331861884948622589573511632134793242695695358207382655422711293960777095334527438976642741777977326369957323815255343729217031225842217265653464345164005032212171972113685376984298929572757796840187439566896257236411810752906019490328094745597509460313586389192037549928509775498560379353099241429272835005455096758041354811896713393908694831629128369099412416985256729083357876686307586080487261708169778679938607429701166651965029367111088779095696945899924054036199096973368263770895098702458906983427881445258451981005723785734090030972938758726439104695196812291520744689227744635368881205307540978655940766592780458525403304286608607578938900084875283905365374842349029727760101702764084483211352626030830638833278142302201593341162492836002052295639323260499333739385360306057800960362457633723655602699363883435619464210013781321392620352339547104725256697551245975086196805016795756185745189280898611866783237482532114166064172928029258539917664142388541805482835031250328613525088666252405085373927719528990077452311018778603031379205477368183714086255901134071279464189292827865625659536309273413676495007268183439189503466284742771235060856913431321998833194291429928979906988583352118269762323481702525491129674682282526133556672950353317754045252444986371187466435119249746931079658384800090924460932974795417191246627745156205745434311027708550218967143503481135369536057783315507508105299095843102697544314798970411243312581614933859791509083582884514688407194174035333993005747839185223690581101273626611478946477362115169826208150837735415358361266058139767783671901442812238826704121405391793012369441369937990785220832742805118403564998507806375625483918194934760133136330016252180424873542646122733893531985248242316486983193146598717698512059373908431541541322387931565664933471052227205693499770275735879057857613388186159060171992563242022007992250594993437762185858074920841093510090579522051423037086067046612358258779803398582871013491659159431815084823854067097039073631276597326593568521839563627419486113719108557722969224706090220627520719007172356434334563342882584361009207255306301719625705834917538997187746829079149049883907441692004132012621999113477086534326949031268721724570872786473288924550068471190065519463517273892663676391279988264187576261472759315078729561672083561653148378370194723066254473660022768256811981478359283439459723277974005568779590128497048773985336217978873534539556414891336938991841217245869945010241104953020708345839790433024742510874334998761737802014229567172089376960708808537428942910837135798300356168225618591117282976285016222553543245758493705467644955948416055460068092736559785412153815922854989527626234045683446985180823333048654833244389904201725513871494359404974206278433447237115307406856645783000591563279335289280273565517750230312155210387047442763883225446428613390269974611066142270114824555094747981713406087378786596961929806176418371947853565977807256223398460731336440364347817392077763826300589909170572062657237467568853119773563401309190897247010867858764906138244940804292993807517584256499322229358780579415770396092601419249130747445746734067047072725307545416163952524128036848940807761629034688527004622346175737669728436602141521146773300085753689654654519463467549276320132909828056184485324622523064804839585343832585619424643111681551131782674730658291258718658213667243503496689274090744905637365511033020252572542468789049463916834151672955972783558790285521659808282844997171456475027152647084608329001282244196789274080278592598044615711541013987344857371005268050077703566555869445206670969244302867523173626744112626254036919764743557366851125876737623331983297095852976811579775230260112762013347154250238664165514682182770028273362494199626874772556119937261159328746332935676270743005378698588891887712838905980479999570122827502679023483136234022521338597972642431370790390927192823964802917150381269857292079174564609050953271624194419022744364796993606826460541013595223868360714695375984729327048832530939619171126405076524443961414287184530193477414574321561285089001688843443196838620338437508330454496250654593128455669558390035217573316868845478943718127202659752391567097995823474614360864951073985586267921671533508583591108323292862727245708087217365604358993958761281699994493795854492975932640171158155146690857895006553015257833310438997418671095008363285326352887834857069330274438422033264852995659715384758070659610888856955782971895682462101327619165958584984227500883395109012290619009345076056326817784260226482258485814009888567908179003329146406067430290813923749683185586341697086852406258151898101726409362742365035968853598691928804853114517830743748630335134122498093092043690427554779434364512386814089044929146812820288167322416724813395530132523441275428811412194447650369334754394265450945616770872056137294722768036797622184974351325968214723498023072028622774114239612755376692452287454757062762039784320716234603915198324855982854929223456268198804167744976224875852175023386627349370455134646906413022526547511378301796125988512200444242402793736211074919053316946434517125935557404115719706941237940607375156733919639586107270122584010819488033533894762725967425383643121775476289038258318578736365222158473526427631462356595817592771320730035852780534107827100616115799512660418086331397603494534167679538232588118681755514020407262921136138221779930678812920329515070464931900947754033844326517084932849149300634743881226531220723077222963100369311120065617036961731673893558773908911671846152971459265995194892797390200036432909384132338611114804690880728965094635092513117769357164928107075575427788550385044068632378839083033065632150238590970018809375760054576313489468931326015823053759486606387285321233684808186303387941559257053406024145557045901627730938010615162324717695385682573771150038453952404957476373589576184978742824618894457174996400352929469038375043400155754287308848474999506610794881723640116072236204462036554583472279825469283077942839160548682706664533917335383243341786151649319321708105909843677196404797478712841325374350106461151626448378328011847739771921087421550542163916623075711057930973707709548116694903685011416411846897050222963114204832494532195827383261613090095497962885258361523396606828663196932978251954846514797587579661926088313808166113493444833943240805456059652447385435306960655384025378244281938911722951665809550566651648161078042221276017760898837945710945301139204012964607980626119497557511002512690066046351181231216675304350701677437607758871239812649705649435721417332871165745231223547817795217628265562490601061863066727870598916713780539132464090480373237053421766981865903192945602709026693682975213173498954398415336358623178599332529938026408020560646160446163566262453866060446754186942471307975469299343316441689745983947589828264389078213120081221925466523161329557660716545146079914207283381271708055741437711326328922326294832507540123085510392063189193331679799261316276372386621209062765006120588594328198232547502382121075379295522362171120997509325630046899635121721641730159193254748871741562194904354424097492140397489004200767659937074258754341028063003725452776470605313070376530900217730491247112378601564907951898688603533300797527418115606176590396782535902145206504599219245611748741540909190573415369524303049644608073747305214956117490236542147715519622408714742557337645849202599615810052721669454849796342400032957002888137337607219049173206351503827949038005539620531070476091776927281242128393664750408247661124334708318838992224836749765444277078989200354692428172682354569026327350758400370903624138338072204398556839006844422743656082006747879753315038854708824768782819674305647121204634314669798336501465507959077523948619567539338721172546846567157621047592732260624111316975304419741410193135866239048986362524174733177773405592784029792246770475376735370604899921907871634410280057613108947387499830806944122566661035880549036654768208779043070451268457135900832115143124325346708046703906079751521022163860507775156322374415442409024821791918685746071474214339280100919294127128290311998977304116520576319945504583902649206961799487390526952531694655395558688350303504597685577050882844180797064472820094503188157235711008767175870198028641404913172132892468156956126652542800535167499565266790945748923756631341131151522510917788931459334776514833256989081555170165966516301042196921668535633197948394926085417526114908656175322485112774441280331315098844719319785725835904509311233613017891208950413790006746351835358415927038280954351277903579706226471005458523917150907721771834966739067995145318838841099958586102845662994418942611324366863883350428984592104637135800926145488069944128246016822090129855110054818451341695048183808584953272064801536350406121225596496529410124030039444975570363753189921749172153475561166736717041038486347196037565202464079064058556962389514942858302298195634522695546753063758603853774010559353867491741458957884548735060625451638212367627439719441594359097903447447046165619603434412193906052267195323169490693405766076845052792310944100889936177447647408540833718627460503525153413889152667985344546422197042186567787384714526324709697949902382752075743214939107525526602250377068594933993826865900341383648723062018294143833421671835917720221806787593548070995093840020785682629397846845534214156534892682141191806590622665872719395080563611530232788490394125102658463583522003759744485662741366303594777440072293382278706628133168303719200520612078729897756868284998373507827204579278353181180520856792179607151647605509773181953255926478617216710955659036709574604434052460005240848227158692581631697094457217196141951309171066518767964255619044194060705738872831956033321841920959115250553154624740860922207365438007996532324623992922097296994155873011118950611527920443457101124547442763223263124503648483703744562898458521111053049183130015567500354548855586566278981352739752283729786227994655944754046393419968469774780101106014521204023288778375819890639980381523496486539365412382274066032009471826902461662212996244880641169047759379080868849554238042706370225627746673723451809416205218936484426989126679969109118202152911724109498109163863688282957327999776329421367823535754815978742265297963620365720760493723840947895571744229898668933275260688749330948754828133470404340796735286640751044737846673987669914847327448230081644626720353955410985758259928874889725002331184345752403297468838847986080592972884419480101164995785619623812407568423986036391308814307733130983655697323019035113348620363188728183127196439715058738869718580202469965305726592835723333291420226509595228220192922837553841769399731866722990131383001706824833478749261641445317821227549070982019168073050160020187595070199138409084650444595071225700026551214814543405783123161046373783709063973827224035803717574086018377426499370882428331518586406560614834832275913556514838954441715592616936914473602124677613488817442817899018456450138562522838906977672149385371676026737420765930072242571097779494786825878864936963014163122228482678261293928203324694348363311874150526276816591763311606382210894602607119204825744349996929953674139908335881065468546697310071885445318453097102181790697122354075768087203788558894083519925862710886402732594357937869999515716439611154036962101789519911876087941711878540247059232739791967473098197324675238027762608184400211346630456621580327916683930696569140201972759935546855398651905046869645074811699693557114125591289361644845854533690524446063512452874901751789078345049410839425403813829585620111845539464094029161213422832912525485105133779044545742727683220058374942772827968654616554118182345203754182997245036171642992523695430742643302362725725045872770713468770878478670022382000543340879620171310015663067769039145503566081848307794947261294489076916914530463583505228544468101056797708997811070748971854480614694404616366299259081093003905570973097568684813924292671463926513799463378556429369793787471105451382817292310211379283791651881820387392039367818776769050710396962858947734880599573203161407602719381697398051418689581821472405404792435822398981563645019607748196779557840365897737882114962460239434632967160223431690767746948688469233243954894068650148368833499482282409172996859293355108083862419083650688267767880052300423766603366871582333652131774669855769360614599167931834180185840261973633622773920649681074936711079297989595403110490153181404986471584712908261903842318406449021663513576120887597742436990903974448743217912803486053112441927055452723671921429996202213033947862574246138746746987751744869902121248796140412060065537682873168211649700203720727836867345713908300468303201552749739653867932920891364625821997218382247108387289063559088898431980694770038922494061774149609737559978374471824107482194442638722868369545303510113826754235132589452789862766571193266037345527474401385095657541222594828825839716104845922516115891946122072013766329052508068850405283065850696961450375417564608594709165225855889499106393854432279110285803776453042027257172063183169048307554279191625619214777127504560837943528449817634977734101222463882293071377757739450921759833036070983365038415307651052467089927067977585759777120544765981026242882361214577188819333297916286524707919400952794411637917610219766610259917585264631015573718298740548376917427628947525790426818093155527984378566323508434713843979371245427867552090767611245789621137872477564798595182069720615984693652092696785188424924343353189998048733861291762422149233111865960888233788127332771872755054998093184441101646324308316501613487109539733379822795885862737133174301273740514258308582997246512841214694816362956191348584846211439837306737432274088796833643318548987848390305126635302614845055026380635797294533309114446366859688796441675680851131848407769944534176721578614737056813268055304993880722251570394292980676068082437367024497043801882162052713721602993033322344202175113901081464124794260241323186457762805640345223958198652495335999527444897521559113735118420737821902994361928019372387999229556986066600483841430851048098215069014286063636920084913688834327451907797084151179693744752559552270910980853820210409120123609299925057435394243425573686983179916316508097165115352897362661977193681031824977155147336135994748352141549516208010928371485440261110825714780230389523954709917735496483943544124689171676784151414835195557851799487517735361210852924773130126531227024803853655540034289132290816561788650018634136271526173913655074072179441431680390276706370513714000171873208461881532136328346489062898932800926450007106693093898409228682060563261090264877086645609872527738323680531764714938914818177875663643640113022341766694698575554848072688788610147658661778689040148952397360980073351322833029139251796996876653576909638411230601201545580836148888573389671315180165053506901759303263424686250759922939264672541620512783270574050593102929036181533043575116771669283862648105743199424977094742814391135242031534483049872243277363854661797612320381817154792658961693086224403400605537754036549440360711667598614890670634973651067769607095756188034329422183876275918836121659362789795449774407793743652757172501349662444064701587479513876872871203798350168025569816641977455809103290534075728710680594025873171206336428603694504120405006573176673610867213284326872353619859496845701028784444733096872133567846824729396611935021194179506611107107551586276725240842369782234576155035804383107938740247223424051315486582740159808774260680003014984577025223708002866351554710152056359172798253064614387917605410660318343758443414595512116842050256777683889162058584817800154564588118839643573789666625834678434067293151873882460697279191547539907346640135894928035722711799082266928838294858101749481342470663585495448147935870656140767274077393593163980513365301481763149348176421463221778160381258986866952782760690978534765770107335038692619453397391492764186905736660863679506165349488269475594805320176579706804031161285319049435218698962170488124207552834390214323350499892374690974314152250187901664480655459178991520843587227719059602995142002885034696877326192256937350780415813068709978442948683647394075279536737110476904219873564984930554690583546759362399545405333995522485267327767695938266201621510132794949094127845622408157957740233185184202569401590244603876581138477163269932637031380139282381824622522590203221825761290380381728655170087916519411136953917822943887583499333241127229043071192867033981147981248273550059452399876979245019712298802936547559511978090922820813275623477406102560965864111659435942137004938794857305016340691337810971396777795147387771614564346074850211080225928076906841764897235536069305548831276060411912839697571481065279162549495971318658635370846898221336217020235191589334702013521599869583722082096263616651500248823037274123228148131815641439259386952055086087003552353797824116557184010501076247743159779066109204393645034325509677528681942449870114314787927592700294245000589018520869781139350501464172989777599003885584257844682497020601185404346160359122240621943117039884598265506438991281624831538793414195016443961038669087837392452479490781244958934294291256802014557231321459917414386232704638992714548490431545828723046784216475927139218332410290146710225852290947425189298349711577463437869770588726914629440267904992292246139058083553184270689080844611168720985416924979069988350788607514011254096343328012850431063581459827210153823447168323100769997479173550870240385620156895211447061423261896093181146680145554336021316255167013521303392632435554731154771526108798855078937626891760293267088219942557520766635521335318792210205295920416209552963156048193529086682345404392547425025623278052339873148055829393164212275666633582127054440148365706992093461745112540367152237800542853167737197559312941691431397875141562074810034940695704554847253806590321838512189104733310918894944783817980543350369082874109890541287591331726714208658919112645751839681293154485200437728899773113445296453863354506190762229750997427547825925865319079151644333048638479087685123999916593337642978325138743183344451463351002329052846378991737938326171655785771267929712422618458372688001829692495298980436664981334439293678009373360325921070100721097993521725957376099696149244430894438345963923454879569647584036904457029568389226660594608911240945220312717322945687359064708085152620144801493955694669441620246719039374237845935818620101338404979076346909374068072497877725646424938292773380538985569941480350947024835639599472564685319148404451080036764072365005053319963985132072406328065843961964856930390122130434196197748774711017727625009815097840619594430013818442538945285302018949342634062293779005512719711375635139502490185187941102426028225028106533720909167209176924709065720310629045479371543877731469791977470911875053693844258771167837466344848530678308133356490373546617059388727755964136787060776602307194284166515970825068824350972294130182194738403457713825823036559291205486539960433351826329524684798766916853678095897224748712151503021411186843421923347774414304502549663165503350396242216852848078677312735814223409386341794305025233874041630979003703053918935955419456466986737062497785460338577357079969161591454928274563415961404060429924081580595454174914338538700285884936563592974062918569195561461407866190995782274898850198572553942580685033947500542299371380052835408528732029168825263001757082002523801652668946870627550125543913506989598019404901102200835215767350415466734633872244334214528605288505506844267509198229571963078065844323911468120395157821223307332426771977888475354370836249062467828868631745619903088973261067009351082138640098361630265281207252458473632577134276483973708955513758847728641549456055885656747904113536736005354023587235289692284574810437091876341949814107068554803049811358550723564640524372340802359993438737884324001645839637153295903009671172850736204906844965041267437272728915414019517779293789600017427242377590639091838217429048806963491190768781131850488032711093381265987812354640606667285163765639674490357576721767593629081192927642203265809522227276254814594563576734506563868921338291248710729038449980375089476978387458111746641125135811937844109362016241630184966047579002359383302644795820647908031524198745338375778207333527280215953826963654540434252889847591214061701339991593227135951229711516652678735537734949549992773641324376093213180278962402970079875652208436977163469044056390940084638997751885073330858776310976693223719438840071984616200986732767784937992354241858510401956918699274911953950954926013505032552660018791196432831731677569718501653707998942018808325479907034151349558865445449558040220919003450965518253989116920587738747328922079818026514766584780665680306270827048904117115258179962417994360450046435000178884697417493285362451153680425790107530250745925010607191648330673132152989644790597353828263166195455937257735908605012052940276026928157091754755183009377087986307103088229319079246375544344790616086597302807405559053737269168743528640461839883661549423090169076655842287961651524210689388168427407459383414961422005045119511220713218502547881729617505225107203338424057373284100052347740359870628508020825642092513190891336147374597040305986044686317359737300688230204555676955000441264605914943310466865509649761457290349569557298623810113035711107808588771292333775614715819235908566768209794940911392356124439983566818059299137279299814070870340172072812205370022816435867038373154727519915161732578939510661586835886024400124368468965642114901712341675788223218579675461611873263492907873065660097625542012889631464452301611123723438403832042060426101608340769082373941963077693801675806322428805933002458006786890142943961219754616027164991744609832085001871803371892949971691393080393541712348968722659428434100926980295919060944073166484736209567107019123449040561931556751198268251633303178736272539533408620410469315860433822517697875209154764422854820378175083268181997451248648563731234995881998596368062688011474847794780092900517263148431091233758470119482821493948903858453773131254506561619193939313856133586128507698507543197156813568789969741048644883076758997895762140116694943590028692083716391316220058343145850569951532356989445012304226906895949534605525786419447666184414211350041403330441162368953748143993370469601150472718253878333477350781505125860804744590497676044957408550883407285173695496166719783385401063967455868472124093676678681909494491452175549699491051603712489554423669798537412069963616751247759007490139328010608885776094708705672722140284782770047679203797327188559427256652476875468807942999693668205547192759264331975144411676397085348676150609956343559853184630182477988470809641588185762820638248706128054578672558264908098663602906118393327288303452630432728980490037538964460173474284535969590165687559041426406956269563399427401659173428009921778231189503578023784429566400660327495295347375519080390144585601061641476637952371910981011348819373351437748269252232923827698705920499667595968300386716525879872274037676943861746832021333786345451641789530786808688293644027700641783930929562071333535783437474354342379955923769220286895888375072584252360496297131291084843369250358949910046941149929084260760780955669640653895469930989763508789337538659007126685178230335655160706364705984636693911855932191330105723623232341933803328613076927145413589490094032133034365433562862085643299267689821657477360093628094454782294648363748537370686372859348530191796085481122575294181923303574078346029537267126393267682477200308553253140076859753879412527830137808393616051351579172215692220133346593766657248394535119847651921901120394913723840504143618696093295031211425943966007528488740166828487582493799597020299730799455664076584243699946580410417020341210164706357629260765350128536226199930914274647570631413339160586923269107577525009622905400678891061396576812105882800978029214293120470668164127385445012333351055967394258322575207767258821945392112209916187770908323497326476106749016108576540524873958006567424977002598923806370974077252848852520462314532571818585415217929197133539820111900635775278566989785048965694491881258002607989571338741819659389812447134984051178359927781682870176153501201728876150266841678502512296775832618345764402122143951379118802605521493412114158787334500228954678292368086090774156924728377675355752109546615720770568027109217617279419501566384760685556257632177562390248248571301307486434664238966940281801753551944007203102614144222651434862123068391753349654985793026074355444751652452395576861921991677875867791843596940803945465357188131491930864405212889782068269524325704534223921852622574726585867442458379534176125776587175294711544169553969905660360844832848224095893930542936751562766207794767265884572250402964950418543366350617153792113194454777273880134988969907138056236800461533035454849593280236297393764679455872376628353432009513802690100946183579778793442275897845348571047610214545718221100591336170042437670766827523623420163899090675817343127530737515177696361635921123962423720044840833446894424704577859151255953110319365303480960398544318073319674738382972362869370593591053523878317798984360754224349132186383547116243392519210942163491491618978347983844116110195773451012035275134486855812195845401408654733836125532431337445051465424242015114614190402178802412862659671386631871692108561228334271626568378741932345080151026235821499773012727787469889525087002098218390183534027816212822582533425867607213008164878949383648143182801620180360348722417861483869438725951253104854966852897645305516734293802768548598738955805071616036211211708113188388986191714457974597613381817470535057343004179652213895860890621727492937274616421467401818073338065807489813126398444112215060486749664578225115811290652830485936095057632909730305573289776324965061809050315954744550563894424624892363040965656081598230496796195622064902781708163633007042906528387460874862207016767095631879958324678327634902851950645852663062550611670971214323587907040515003725667219530599300513571332570359666515773465126608095623301438123672639223649243765044946971236269766908958085834284248176499730064801002406688950317820669462589233671608090717791009563542392789923128112116672944585441505000385194429221075601391050778181326008955484139345132742644626958788990287804626271552834863907591463632515329794982875443844511671924419711011486008902370038951280047681833893804269633719278494009385642771110247506678847737380912660420851363629314333031381550135836516824759065645708902156974929707523995122326987122403568718868738188184303620556756607105304701775171429200755925311304989072766549084375845580033775033200002175525366877492554257671106989359040464699530994802863739887369126384674963491731334874033822868753093877354177778620087037523668202813834667430260109756999418051808654831194579137585871879973803099005034105506653782786707662867802632622715465509145868383930508465106054319564861102831351575965680247529464334405601195767188264956197246142805135648342491620924961291125047906433167115806385553088034665251979216825677640661912121724928685301546665761430345600729396818059260048527784862348370577602487674194597972721222812148702899332644255090163016194512588053979556262992902753483679322914020383851392020662861474004180412304785028669794030705397350974055899820459621947699270665213352309784735985974521471215458325258716820881066071849760747630935939892065934900398084008966100807680940205861123223885580054944169784023289679484464719214731141235985144683642967699409455811275709842715711825105307822572328103901519934061552674583696094789291015378962380173164435659108675581480533046505533867587130212869651658942076520544811653802251275386514498929276843551758335169604270071162596358802013210395286636360942087149432321438470794539971853250957737839602218992893932769492761051264705957291034199732388571132454037453245483055369817960091826230165826996851776543254008742309176169644281907065175536178634632512675414690529626932669441255290254237327455557606362717478863774331299068935569905242860860467917055998268092838164520266602845793218017300563916031042995241010164418405423002772284187744951172886063911251456647121678235750356945177486374325164628216725570607742001997790477040087209048975839805874651774928842338872938289422752001484588389751141876613912975323030532308825771573934023633745184831133125397217250933578883410457588992711213271712466213590773324546290257388705971459285099547405513982451985867886103353825864356519554939720470177197299361231131969200187226034618370271748838022424554914394700037769786260093464643431342055598389482617477540241160791130433737487341662795587468700752813025864380139221741432874025480845840206271135946553919648734624338026768628385400043265496018054815452071889098933884956735012056415720063966500501578799683162099567976313576976169750003862209299210456280293482579150430667893389221006358627677224207555417015393064897229634088951464639792271873683746941840857726304588965768529587450630288055426864135355167709410234851847261486989453878456007984269138155024446811150606329462222900682700977600856302794820880227211067087313565459298514055635754345919302361810221028012141992859977867657640015099854540738666710495165918584101513857972658001365944014188428492940779049108353731649566880698879012070859909481907082522863572306908488983689340263042692528954776977636410894449950645903799821861058956304853552402622867443049378117298336256715781801442725416167629604454580059986358919236000308571745918829078392748463485570621285893656079616214014227114590747417948954896535201959550863485434525125061639624915415642663754337206414848480263202688511076033969642485925886506081396132052631987275065000410731936048761124096602904971709543226739530603250173928416354682258329193744369745407185590874437895434019493294175137395141957791888586300671733044447770201874361725854738065439418721964941429046722816346830852930403330250888009255712805118569617886372740248846225083570432369994528798566448750667641946603448890224005147703627867781101396753925798545120676237385342045897418845661173867210761560558412710916505357450869968822701338712755519329661303153091507982956854312123238802440101899549626371501490215264167206679552944189621149384306262001381491944277694015135539775013513682680700845924374216657611159021460232489031577829620281741781684586284912818345528660501033960947596084225758360874378224909221445815830444858970451101131829898941181818346567741673033542392186568781812430535240910983463498880022749209541846589695970639736520942412015085903925850951895169125074703450511026956295659065886097243453054959449190736863805527451772869120543727795992619837710174727638133342827063500763583709003579821544612765270331447231226098977302787183950038868175144241476538049019927726171942260984706130589302063541741475738079214664486032752743699940257094607940017896528638343262548687990006090629492084904781891725082236341099484621062855737239887953488293629678124968475453347233638380213313634013245553109817953975446874777652117806606822551085489665868705571048249983704708229691231902836273705543551724784537799446125886391513901284261795668198190680773765620835908024227546591130555237507621331621985052786190615512616329340555490820423485449140354878852497938208500881595120864807091620577817521437680677514923934318282746571218979349628010931305648848746245193762559901507029200435889578543964314367046165931764042484947435553266066313228999047809366317556993979366521075063354837121761164096538708568520056601752108113488643022185654989810143471823778406051402598674784978856368545034841917847421925782964692258236618262087954327700701636819072548495277711653474393669488648129337832683889944050837472627018237425379563096295347023082176179342304516900788148445777173236301045776979618519660121835798870349140358433580349480439068809199615773727230154549795424072744739260753726264801271074487255586337432804620177648974179439039833224781138716927995449074510259216490565588256966163019238857179929465438135674130693974971657962809021675896510953975001335125832393299065460375550629099668262808629409736560293678728245029349551935333689314322449030008104421474342597686880573844647455285258732015311286672858596599488803960338108729722674597008638576871474831565356330603717240011172473345004888715480542761883763615609092310353295502408081008476994418123974099060418656378378977123030639449710436595303905671196899437483889052169701901014832964791127254474582655452053435955533865966369734987927948719150005004235641737121565849059466699574879830713729370567057252171389899270443056561995086231801235363225016636494829580819938742212159247574776812676154881317254320799902223758700249990956833877187618911006793934890651304252585488002111678671918576040967849352962102224749456316521218545487633127314205386980862401067903565017422075376140171647781075801413386763699336169167485095923193333289775090471725219459919822901191018817150219672842889317165305506699821333157747517323229368002267215270666541778788168640422809266820882019377387747634435632921064341202633327310358647677995628928635186389294291448198732153339627724769338056825971142913174844090929543503624535408147650666690000426104003809784887723293501123796152333187112842648558446607259513541305439056033990924996562115585581107616020079329939210044358456258650912334035738777826886470565341382180894466837882717387884614072265002085920363289044494251114703959695471924066300014337595349061982091820246527500865023081682181869630397275199663162060900603475960860067433743889639519616937147619179594946130321144350847250790276624416168987467947907802160293895978455729138508125623505140716422130685936003068080616637586819176095507760894560712269077707192703945514205278759150830295045908105388848549272233954179048140908810814718511153959398783427059519774287805663951447218581737547110691587014139893883970631569625164053914634044808090035465023574519860651396703410749164604247437912057242084581087907942752989522552617315240147471561872615387372687062472853363591875350278426944112628884768356607961714902163910395764000885793591829128725304654171019713482253816358335626425027799759780265583777647734046790074638419711640970116358117479656109950106679195958002352168608988433765121455213580851206994741276650575578468849484444980384778165071947933447187277889552542430084315332334598438839365226438467051812225282400709651187819640272296687554901018588248423640756228710862785811316915877235166353748097408684408919182570229580664019230425241201640952467157298102312403671059675889813187352995372290356607775295334486904941139753052715490379792824072975841742073991153183405370529357804370594595322112150897214501973151157008651435053013319872251033548040970167408099758942950729019467826870750423891443200651188220514122917928264644378104501706035086759530710233794722345782734775015487830391402863535479097041424868240432745204054371464874620976604645785451128168573076833325357283505058634423172183877867118996679376550032870470258641855348550997627678565767090932447541009894671163609836433418771070520162857588129103809370459290990516031191282650482940051345238361621228630016700016939666377841997701221610335353694905940327420709108449626625197383005921562061300383592486603611369249777224985598666934326288137576576198278649398451076362803380874244369901378333209345437254062002444180308546302854859941105423344170947866258199888723079885799830992544531695725714451687133465161231286027355862195613259366176535079574115526740234803254955185653469888607742590235868504031968144756016381143456960643829221466510162289502426256700791437382493667082049465161985672121274161251801167784000087605630154620492590755793702497981658683468034139397830300215933830317076657350148086875105315529914423778961969413558016000407856131651519327600174631640140620122626291299496911470692995194428120878478876230459286767053905643852196131824378517008001235294700427931431120252876889670844512154196018412875001891185778471201790906937207395865698567534797871170236632461942241684674355528388868642429525311375929829220519674005314281934119701972527358274412707867354841788834294390804440242589388391957861381310972554337044380139301164885506113266251659868658121283830078502991621959268356732697625563751111668009000823084018682202086680492821928577088950292162190286687991157317019704328904448593741192613822523805708557258219004279728025703193325304832309372191664424771663086897892773573556774220838275322750563083232389028303770513719947177503666608303095356929605734033754663300166775337983025922396691106685916238398894677326594091991265760730745468835223853229929568547928315878846981822517939197612099913030638884329221521641952521808401731298075591197695761911629949348166332369376761371962399257179090337511301230059431780170829895497831730850667710949002581971645546774383947347602105487236057169465156923546637411768582455008233241238541520977568897397507832518346572732891704757238359051506859011016632018019185464214101612224341392230145238434302749516574776051652979156400535477558976102931669959771052549441439360297070690295953703561643719751571000650090508688494502067648929814000831059076373980116064644922330365883489818609525402906030677400972773820505418772962210886164165706003400135164004048002578361739416174460050313020951211529109096207313215189439245078018208531625815433793987983513041489753352601050116247225884327976934921976032449722095695254628722468378325883069955497527060184174574962769266556536644122824300423557550921597627097969699629311178747489147173531910833059072456779610255612385694812172740394333543332108313047031366754894039287636986116012731741589950946502296783128188237955182581713049461373549649983813188418089930924978234597030718178590057220283231266604729014999434028987177208837195562362821855374151757200870459006332408877072169262294556875259573319387539294684371116376504457593796256852851652175367966794650317550783171576069018817835344831526430120731163505106389882388468863984994965175469414766599934645371254303673463306702698025792999529584878617397474851824708847496754912057933656925872379703750273649551971171320470101057297091215855992246349288570133728377053835204675256253709767548398888541128006049678674731862394277735808390918109173757667664874117500210516784492096492900721200269607784954329270742237674877512272208418300567329399022726502628839063369502059869511271633846028498568753568215817030177055138456991588061784327193384549005933573221820489479597356098913026668700906376491239711416856888721707048692848039385158891614188026673994555186364769988598022900084559184927108329942968723791538538063555703886977821221532159484046299995035595123942419368643460596223858208040627548025692183474847472069690768543743548079798059382038886798250342202180580734398678418044836680033185669907245580061018905726798811276439940133072158916191358797262927960275606708529821105664971555127711970378533242103984785097698710593681952685417944955791429496633878631715312808029804084665466860129212002576064741508434707104397626949040474264400406714902073183224715112386925461024427675281137698758595889363299890373997260599556889144952778654197144102618760980711122501783536273454090203887655048339139464809835069321515269018875229092990129525867358118050125650825182972105163430715392011269469581945387526433315266886950769742974405005510205174836540913303314187324256556084150769915825166397330310761071471743543252847464900642997334727669836630329867273417119132175922210596924180644853586652898125214076270257832292082564895837394393152800755352554153386250819214585878557290545121593752763809906363716663566011360493900214489824858548271079282298339803833624295349276625561771003043731294233734879710481802372760101032983298486635807010977403374311521676113590573116087859690487485629370047934011465172414791334461087529479259361733981021790699554464888836792437981616499765459272106142764783147563321616565265485073924736266044563079564900715419493948565118884594366610671496533134518908927177901058177243768789683454566277692854400717440686872546942206434535670868450116340011711747415297227436084203979334983314407145931885570109887232867579843340830577717647764525070819614021731728872534543834928354044990606268220154106157982090088399145042108396376646077350757830922035807794852515782682205036598867537854997177745505881849270469020625809142586585640295355021914736525880938892945782729651311341764741942059118156784281249494519203421254242168084589743200851036467842536718954545763675999544724604750718706881584513868614413602110245288550881591300977458585843167335915282487985917095889135929543454448707579216145522842592948702605010708551579563979751785967346007081257279753997235047084532690507517701102154881514628017575096331555359522167066003779780068269822256160235166424766455863223671932014844198004214115489947219163097453757938002373356843234069071421643619373504826428445382283304936004279040925444530574453381028396614860340642333849163655844119381492532323910825980718208434092241825729474607441722352516818049990593277980865924504184130763064117330001649094888188657591711873444407415446098598291379784005198993376322138984047506058553716005184427494347308895676460209898844524792542893921025772160189388358820871031218052796037726562767742121873815820802453606968988447347689310932640034853913503503134832078572013085315399855675831140831852802961604035993766754329441012482366925500864469337957242675459696579538327852699528809573766360243549774729954439662566776051983041799356407232015084613116260447126993057859178110729232511147018955865483261201182514197458559918185520251679658002673313634879290603390254839812270898227692099207089943549500937726684406717666148382265291031450894505718167650743086156155435206152676250801335457616317505835297284845655223381103757544824383507466127096783792886299864504526026124487414054804191180455403135324305881745735720221985580678099789767896957192860527490974619869738248308741265620934231411697024336210338580951557097260970535836455774216164119763924752598064957835362968977230759718090223174441113500375899926025972647100357636604835451473944061412928424234107239180501790804325186727018342853394584694223302715720264819815165701551284504953872967771589302222441477953019505759658820968841314327661552199648839849737225588036387613220436375099312419921127233243367682020736917654674236873954215680235120986673001261877700226888092131791223667145735157048571517193984726064935164279943416643494192348114178383128293380589265853935453511410482285128477011360370633314940754403267573770060257341000348821677324439854254278955782152710667075304069529443574521763981377079389153205738235673301136448152713669412812369227290559674446187499416356506395091496842147772567235341036856075522886045174958039436856399008874064362770170079305790003160867101979927615328564396114659235698682982040015881824811392195626210096906220369055706750366459881257550355099879224014313719538914807654337666978658352339234459916941285761081485114140209774076528225292027692601942351876575488484650715762062480979635502032782940268063333545774911317667078675507751881416958425188308061990054092044585096308199905741730734618598931420467152055417740588439952229925992186507025852978592255830338560005596821671666323739317662348115369005952159855559601364628651274823483317933971862383281577914659907553459663354323672055613802448006476490589934001487393198884903005690009902225129851027128328699480145043240504007028477311416807266267362107827893230339887706949611771217514046250145711361267216899675086004842913298201234394976633488079786787647368371950801801977456590022463862693656279890040176186936882387242788669676245065959751595020237546993392362565978843852469059081595339784346692697442936822732137347871872119544652906662633549082086638405072384837491953706364369892060757838306807638471039282161245462160683481281417252827134441728631757838853383733227972353456675849011478211251937887717509934973406589803232446515157624699418641282509711883403846863823968627102433301209442776538162895989157328226589302509141444516862233032553153351069130252410617790531785458550100192280433010252114762124524615492683819874825471746695575943849828719840684698809132431724615862783034871016662645082080309921508665967936207367927992779982575726111429046335496198081602006926934704280535908119695281770817536507982125142398255186204561895005096626090024746265796682536811910661847896956217663024477938209632731532368347848298278230410046548599366380913009646869383810816648852654916218574838237610773955647698619742527713633508992792143789819284087110003269416513941471326661837174837112823805540549276411937027838769980150582446694824713273178494388556014685796422671750180510735060947265122399305052633454498974032353426361584626890095927471290068518461637010766046046601121721116993517399127240493761799275659910220408926890409190331662441848255817359407103513968139805540536260178675203558547656945821112857436096516813163247228735249748577742288082695855641316205412139436715778797386169200390533712529166438973024561075750872163157360058991733529782084507115360119125875360177216229358411584659391185986396673501145009188072886676216941865260772853645630210953439866383110051049110435278286040411853398085119250681558574459260604019352078912454760696463394632815213243382775938497765745665257087750279406164855362179773718650355535964911666743468290105531718191200589733279902074387646125751950354342236654322101988615492538989377474978043356089343639973295846691427289567382364773480458903266086100901235435644452945793948581359016989197847030235497183142558447672415177108428634845505145976847569769486894416828285610568943679491117281662862027845519612842657510200205052134719980347677043373608859388027952086084097728599876828101385787286264509562769221182119099904304744178729433630822928359765059926626596526514474055617989164151834223510666921273334773054534153074205753253180372594962176653795397581697352619647383021619679531356470054691692035608611734874359209345868487494949518755316788054560696500298695572028573276875116833690958079550389349087436411984615225768982369696727308430402295672650944571971481789509717625128235585757718314771501359945442635657711062964318260143221738362636135058446354053295928805701330981971224210132777429675061028915151079313424438077879977742962950514253151226634706826508430865300014530663141887140135551716560492009224402116643454993562645588265962304048909590221710850727434724897141938680811270471297928555385246959057793142196188602824009253695534810701542618528940037170964865652829164737517893458081898492853216659817898785032567809753581891156139972318673749702319258505273718595997127655654245386723408288511868701407562705320060047188256143079470965893421370672193573770148900659861552268031762363031636681271676547742370913758277692664538706179434719325107027240081402282046652291295642940911283583714790698025190698751566535667798297304252500229690519210516913371477262802355836409282567177081199369280474224125023569092092278849871699118432944028013148626878302057347559449276253133206953720037406657050849135643249199771791905999489012292088563319941372260107943877517473012447664368679361111363254454661407689158034301812358181246510862002186985990692679258549507103010430019239380961151546478413591971285553850052806471638276116583827165148292047344704842938705887961927240705570441687433179255065645287794862522339650654398877266618482842508852360589796422352551501672429927295740949999469055847474552019430813852507327308959786030702271236165469648047166962729565400185407667991723704597685686821353142365896088672629382615092026176074268496552116934519612406995716814155464299550152267318329654244352693391055499034307347791699191768985028132886808889397709374815717527508502652322278665497203737070345119452579384954514320706083508234541154759518241890605013089683976709849869420342157746686530377773750205199684639053085729947322184551640338631167073099844538258771707294327326231292295051655713516995413245495387903466915537294581479240232329154438222722998392644478611584441490148882724782988288624425821099108723925524200143563407799627733197352832460332144567592225764717126485245703613366825656900774639294255076954502641701110876722148518792631751999081261685206460973763737872194564089359255885376895287982936276380762794584774925575951659980632903265595861895192611460170918869335580521387186438241183321892916016617904511319302500143073966952039552530629370344244958870186827853874703528721786582710648879114820012104134371146396710630433598498740591664312001092050058342410300018095494077420258016757532766269001772833227465642902043772682248696949571031883995011352197330990505991038710759032836558329649773735871337555261413997960091029286670907546793598423632088336734339438727850907572939472916109122808481785700354332331656851668559660176357578714129578075001885197365349143549249601180804400735065364057529959795444360056613646803729362391823284529200538927161253062071897596400649276651245999267453766525740923653550639242443142851290250166147038342013730316540441259962764357386293603788756416020366196291143307990939693083353969074051774134145854191313996263270934318428305594526041282032671847575735364285883080111192348098006070887695053224918929269285109605425139517414256215755807682733134135129950416602459254919018185724744439895415076918951438508539450941339170225425732390151606888472670134083655789635472119854682185492842516390001111224525091329887857437451975573499656362288202324787909188934510079319027267536122381055207756857647952185227971757424782899463711933505588079807173246937192738410943674560613845717846684360887498299191913349402781042579779600148505912649173845557907476587833374475791434810187372550480702712638346300773957068212841293468835630790238364365293082898486620811735996146382228064665802119739086485238654906039342233500122904643091109499546963323187233706155793228202237404965191625010436199602687112292974660528285577186223083059127457120074123803369766459507330149348855134323829296741733714752984819318460346684981503747974486114915586348462362753094906023604302153235294755596112894179849445543508639854075428275947304785183162414555134899803090179257361264677160135753965285195211114927919994025746387721053179831362866123819771207367553877759395261367007159534259121936512559602783275731855013632219412874292061520738494253142024716406937897951131327375893810037408341562781005598398268870228014454578597806349981049861403688367641810040978872400321120747234463285885583399764922772212591693607289038702175952952791617775345585019819364311560827182161712548697196558489007467989311676474440389011679587514659329653686292608587994358700652256271013911972173773445712905385657428787862333800535796130844748225650369893536881703161252213741195297687078179331086107817671023886959133733718015946440027444988618141477575985798409570976513889601235686846513412847847037715018252327785186196850410295998781241816350650696563947777809743416867619288160595224671241626639371597826574318694788305501628117952754086366614344898503832166048084028417920084955637846190693620799068072743251866161442330214288163113505220775681487809568292166507022160511032197392750732331856659699741357682227903006881696304036713446777440493173129840358075409503953220205423473891726339743413009158876611660315584654916502078796647067172477615365542573743400133147122244776750768645549694289545130005437845294102327486699550028696534253524276061930603513808272614189160392731221569488513561381940385313092403740339344586773303947142519073244721754525591656893709829147859769251622826769215122682669262095355791169012320343593552767928945722043250481689573746852441863377569996348036904677698275520679209098263033744152227484615919439196528105521018259832609188843448942730998145993794792951002685601101648144173295256928348825116652560144133983354830966301752531677927244102662334626076074151230731316565118345285715815004772493276194815475564951072525064596154771412258843535371331480664057726632530563452996664903517371018605216304962835360436404621866140905548505574798403837981348038227290911098327214086099695561715870958282653033727784012412688656499700302204157836507836627390876034572328309519907577579802076349725761043258279912532575775319070088783084851512637022163764129265671064257447614413814302892055875867686428503352866780998712898806530378669793799100225780881490510523464782574119235312903484156147874904097245670033348672789586418887973808558859020493520625592155854093228138972087218666643789065492726665540656885130676952067912914525594729591920448333352050994576146258360491958551095722002300700441529670687905330736151886212070209386333100741090398066578370892933569957594004253230223929660451107939096821701733511196113927249681703287750948685477431379272789418089787145239497889621062630020108826632171609723992234099466550010538329304582267106738362262721795836181379702749326552426824592195761263412849250536027293486915192757052894533256049675600948452988036622379288029931933180254633857820577397532890087768799319186567776366347555257660419883691115780308955507219933879900069241004473810570626059679395996024334231453000197180178709326887232940129198838217045009009930184177937184442378524868653616183052012886765385447301761561242396871199004016145127083517927194026572453365358795613700895466022717968572758654698879340241687365960077724442203349848819242678369352645673028238903099805934953103710548125820860928404827948905262964702008900535462798032925884919274358346025174605795068698757362001191782708047199014525081796655654464469643749578586201354110628979573860214197899963315223547008359831902285483228798426767688741154425286927842429716434592718207081542067678838913138582963989633367009672696759964187936891251556713971068938766730903451056814615456115750333611691992714284817808273957080575866616282343820020107513853169846787529852858693762575762012063277752659676378719600123318885518899612840259131315383509786328313871226630419180412546522019816503562881354400916149321956517008231577631794206589897437429787895544932796875057706830788258565080269944705924810624635197748948490984961201266005556837941792455813189285597967092022698607669421819009872967140600451593339199969699261152139001092577554025299491094950211251630722387272953134381241280542660881737950764496886888774217413834782112367341147049978709666445977545780318500548595289993644908858040943436707232505724407293829485346584274127251479145738313311756318353703160040923735561930068186986080934186599387433970777787153744864560347336184849047584921169741684814471564626075350276371261095822770325763653818149547922463898806785952724854827950611553604433274906963289858240668799569052437913678524851433179221798698568507344757729276109877318467037573376599609003436879593471215634467327185407205416152464385504656622624672835162276609228978139786942155163322271104793795679281451933311800637678120327135587471235245580862897447602081579713189883938597553852524688464572331655307774974350558310133934986194229928157970415549076212072310416519203418115046232442209366377297249359822042998857677937159738938585513410226195899542105424200128151082102441616256363902354250356425927695304348506626741987160259742318864027290448379033591293906568486018820749665227882284961217596386811006796176064861087193717273459360189228520196440563093352271126317490556687443629141103661142346180550754536142702574331682690547905315527434380028107016006443891352956428926427424684010253159251321341356840149153745022972250083767383603154035133445898537460833310240981757751388836730582029387660352938153957205888167879146537428818489014776932245956782450466528175448154177770987850837869718272908238626006280386963917620076419791166177064502367528576528675579066442394168962420414941348055950836939303068680452523011009865762797721048215409875796460514398450930150659153435599217889305910993016563358999361338395683080508067171586835055531809585564089994568865096959145033727144628344591752288950082371535164822640408090765486986036993081212425880691955449202007063545678548593870657048477539124868226866200520992366777658305690086300551601958923861880044824088740437191540326693274222354718451114933944969258538947934695965944689449661592777340747571554873845653954448063674699214467892547892715930065036498854555235750420700095038670394207870804307247008457543395487330750443587567709602549900853168742338305049395151869668919867611330527682835238262499925514619466388148130821756845884809259346482357265440599551107430761351906997131895124476845764702454635096039655321542608260017417855026347190351902531630114988648380144167798380552530608942959306182500905296923157703273792052778869690411559523349639274683196847524253594559299993223042853494178764942847336944741479922690930559025675202833730580038836704359242416706708472549390694988902190329988799645036901421438662887602245732077613322946917446045449154246670007613018604780750925668355814620485963446392003993427172039850135881931456010452311096964534910945253341331476184935710115028234681958389270759608206008172856707889200252903011028757657754422356648019097677464346744103187668331835946396763216678195068790499154515477990880741180269096414371687186850419372833521199560973500660824139978796001701965790828515462833839972052835969218763985653160817059942151567797137571481114766191800513498226498513439054026419911170446054508240017038757897531872471260020215967235865867700787581264595924323803750124630236149217739713190841490057848534934823033385078573731248462842040462280335751896130172086902114000855521354581753490663427342391128122550832577166724817127596471199508662953375299454011381652506847738475652002998567501922641760995215196383462414646317642218881072432106106864854377561191003606095245795527542069412858886468926190672182225550329789360377698918920657667438613491022258859052206801068443654740455027329716140570305991317573594204831107773025792671053640765796475200292901993692127385771161114723319128005970034576231573880508058824911407433394745665201104245555178695690355943864341251523214466553702835572865215008597683065643266214981266748569037725830151939912417055273355087850901510065091841178870469827630490803662596189263797049004664935867935702981247912532028421188168720375458160386288756328686330510169925577489168430376373437980533448956723903392261917755176964940504234065905878435356603967881318340345566494788914161679863380131112873026719160861522354483798408381007482549124396826687125662120435877620420165810873233024193323553329990605972991943553658974997765192184202365784084309651662538284335463709092451111175908633273603294715989765515320317076019480868824638113110941268612941664972359752234188111049312270572944431775020768910284696379845197425126927504951495485792934145667839745058100096555942747507455318907428599929392227688677713521570210032787772286230132627110287907130959638742089876739948181249986589251274214276375719524183137512701489846406801948818596969871437908759258210091681279968240470177252055518374664138969318931384666832560489435553846480611590445918242645525361460658336486420764177580542949200631666392172336737874307804516612018289277709667860738931689677186602858090373235208985794127277377990372835977321233802613243061079823694717552515163133389594450823391695743557851705596522960131956111128819885161524625351933782301012327074601085042891839569760224452961975696690328918270659316550593442634108263191513920161187739952255306925430871093914379185643493216285726250777354926352539331029543490466399125720072362880198763539338770379032283545317877857851553813701251752989857867794383362579341318203190538087013754192676712139716090595827942166114861443228133183025085340772595784581648628666399053793784707235949149304095310234952902727783042389675064935929607208622072704106625201522821515352898157546060593322700126707098629550845926575345240121680090279333768851136650875398767668320515103433308607487628626259381079063466813876839405442240320265647782476187456031559456895579806706289087941719057407195491376113907346627071981179216507620075363882500691684093681549765184014537810221907350232994519594312221919149787966297679238603819810098754326914802593064637899990159389015452784331803393969866399182032870682464817836515898994721328619005808892616074388262968190290460018573863313391116087354626407329389635918120011322722513012789406426399505403456144763925815312374911473552533119084271791328195963812555336206414104968320190054001968883275703422090144246201067379638974328483908360836119294075491029230843017210753077910059577455568063757297105514476450827528067912623645994069549805684113559024642462987824075749972137561412904525368874373247334802248099980809289467860000903620648595632919216339829271254046376574071371431666078075509493447778335017262780579327689149267546202969447998215417765968459630644649611475796457598053987479449830433673192979520551528286785552082010241244797702048654922751838220370823825751574177013180516213449854837976482739726987011092491728979300107501395159491927980841026256316608919057224443282133423607067030000603008978456005982856178317617721698784458342684991561175393431019283170174478576626486109204403475688271597799717807128487142134732876433780622321019007379791876743982512888965520671872896196566810162814091510095000020324816764452881929058382142404974413555340819628651765623470171760971316109470515182108351081739860643322196708999450345234439494934879762333488584765219053594739427033001957383664008986728392444369324669569016759622269904014602274103102650913376064203369866419721503570417522876276720368502576148909704275505184040642831635553715382571110609442061114732591324633362599868169751563523809189429424825708026051594050916685278972049708492484607634629142019064413422842429517604748692476504923760580875231944579308436076509320551730716765698957319599465822862882356495693347917157519919025520588913179002009346816328431764525216836023035943716327664406891824384483092653996598564837036500867538011803788427786327662446067407026998266737187130772357996065584931799460262914827292646172053891702775455727154101667284232239718174333836137524935698630423560596911676586815207250484700772579706690957812888610444484136423367409791417072367252607161062906102925848357325361067784394999844063488082887501425875308619221555279289450744138270466292686887244045810881349926145716182006209361053765108246428240412443878828625664090579087572659290555156943403635169956451305148835407031219499845324369438636181417416348156377149985293405406081328750827675540752694039423155662099091243117117194791072687840465288165357646878309474541307689160183230396671575171696632505817106562604348071109140065958059590035063251302552446292818758824404674347528808865787149358393426942002093938305242827054122983439224704675076913831582424548805545521924218497742872148654030110499827501412011060877165216356026911599993012417655319719816472886333619959807572091582299214497723359573011952888491164847350423925068494989863892160564521305826153600857282559348641032145916340424755235963182774880078226764180767950050572440540596677953148489019856407260835894228816780172590554940558612885880137388343289953160765739139008067442284671247461984094772615556827969823682499320903357456235191733788250461341474900525196334026229824618341579209278804824672904552363928021354645879516300900050317061652707657482354715507436752216746457391420298729044946299457404549004995956598035481106245106719054704346633587877842867557343872329450512661922881305784940180328538663923177147101728995001696409016170927184098761288861286453587131549896684186873239281144867888157362863022415915588000617535041608908019661017948008648854691912448029588656744516149621372259266713308061503687096913363682551114255457948128632895942589001476644166692593271827007481294409564189339012228018701434150947814865706636574484671779680899327899687959183433008318902936379608443113131927109114771706780699664605074308569315366179811632954173426176335912646715003745460402849407649810434080568665599628007463560333645620931188042907944021645565826211889554110418634228987558805448285063671735437181744745588323506670542371522557831533855511433833384873213367979212089750146565393721928686582806179503935320105288019549496629265821234560144695686563371694415054276416203037162706615867102659055914528532103793556802602603701190208309648691387161396673024639024587337667191553826209813304947812319353145137895140259085717743032221086540514370735470134533616841073096915256975255579317924499308524906714617120208788061096071073738215151002437458188668237320070851881507570353112231555570611832141266796864027894144886651767399078634638164783790921267394370215764997533889397122382175458523719538635213470076341619109841411410427484136050418762656750184924448314698769136574191413064756649125801609843793728519815461490274115444618802203411938615098524581864757540648126883288085723348854480066890077285499859171949100494313154508504781084617114438841331052388677763183483401390444370519461244678934257334052858742323227485721014195785292314743554610138024403656164226572662344700934452631499599366422585458552161740483765189542883091014278076874784971356989300667344034812025068525386964086056488463675935939484961252260314950633951222367014500968048690930945181565927244047230327305632242933746711557562831071720742794468118499220533251921203859906313928791045736251086758108577592473062621855664046703687968910214178986969832399410735057229271716845453487863813691619482343682686081395865593305725733905967680002523517768045230312623513318859500184458993667114228541911318966909871796637470062494260035274497630453197130045933221203588466964698821553086522168810845334851819639290947466124857908730986938491424476468889074715629429804569429740066044438952849621448811758596283122120572814873394675409472576541372870102149888165885522199817660623809359693793341101765467301614691722082132314576239233921120418388154616972414030155314244665693048083772471025948407441138603645953980207074698215927619057882692451790963687362896971361226074959903473351136300769700732724064809847317173232787498200605156921708896334376045795349793417661185144658902753328163647126171276292451048075384038045923187075799696326003253888804864167503865824215346808057062948462246648902677096422495866287657535610431114851248217052370760397278293131953848325936790869463045160097859462527535042693365623048023333808118392955817536713987896656163688341664503016625237855716333636359041759165065823652183379361648050622392054764429422263293740110246358934152791440302241141465224390271812240522242865145188349589604449285600063827885980087820546268337905681434502070410415978457186720553940334981624895282171589006494914726412687068398325403766974708390167111990887735412642076470669219622825820070268255755474341736008762745591772117624590676984619308471732994095769906925093640239880869475889216688710959431867611681873964511816242098658238749620329749079322361959350672262402382519479983780790188635730772230346712092144749781747926236474790137098012093597268910744141048903479791131453908740120331858337510700356182262577055308046602573348822295385620763048071432246761555068304197957769807968737608012701776575962469301795166198713348543833349994769624739999941945277171239279446775764907715917742300974166420898298362801245189138196648596594720618824007371541292431594215233441740863948633607338547069209925276144207363972603049893191390980521188220939660827922079439319388792233077643232920980140285289320769158782993468225571395006067077757920875757888073773327843462981270628182361058418231332251090355773898917947753418361827717875277201063156937086118735412755486436289358122208074020811910618509312040566575343069444660914373245246854447660266561341752437986785550456515637359070458767261512189375914123430677694563447490978658735122263440659241278846954832571654860134060552526374211083632953047129514113817136244058927545391858510787406495835578071090089217286900626653022733190961768948992210283411000678723261404550545252316296874385563316872870734209123686827144470519849868086586764544965934211725657755349912886518037306804198500135354932476531274799634427481418258826091388334569058561184033921011195144301893885847421456304626644099416900702420667429888339810336862848594506422385016918130413069238845265839033877184673244190021296262266365843725782848863557945498192748753407127183939221040120322277412828209662653397969820329573843019797427471117383716247890777958383689136438729796505770704980647233509939318224910511081437584324121790241055856316942424501247518055643962184690648368101874049487963039152932117245868611557254314479778753653093799686969320786867423158434154637144876720338196628893128044713893637563412823511673245539473442977822819282471191065959236184752111119428739363635019641076095241831990691422379927288899776685744438858599517797429507833813504490922974195089912177172834408298656147907309147645603059161582013285881057499840673002539687405337404094221483585087161099355858694377745300641639084573418963133672208967715896662491471472068746873559149048574671329379303996813471363863921931166172572648435305786945991928309531948656680371104235575328809765679471980330697807743799622512020584200050441667835750801845067610865453344796944047349706774510561769546048884968712702997706294315587020707743841236269909424080317888041279167425816233734339351566746266305467131424212733873072704442134440027665837958325231382741203349748657021229538174444902225776310179209273555764580109757184192465323736699127370685974541725260437980416772831922471133433201241499222945014319607657262000956815221345454184797392318797660148087940265591448112083358571914115183202313822193194589572602530354461369690410126139422266485237795262805948601215814873707494155958276015709005883569179057900432743624234083417174335177209769874069370910538247768628841689745428033990635606847187250278211022392763823528505505538798195205588352463401876465487650587239659483718392502869302651079024411144342587953244390288161893486104030000565156180075756153255734292866325705414749316851553955653486512030965128922132755619549278577736293235165054868200829620279281422312464828884528865083818018343189681474765304094982836593923228101109976547405647649248439739652093065028918122788613189145681725626796765855667593632819010554055711725574439059469724461391586009123006676309765574023506416350139912711046461455165842517749277599175481600744907857530233263599240157022550204856921693498795911631745169406056966369345695801956877064830284533801406335422070755202535245771083026398439540744429452368926561405961615660237803503348711623915284127479265471376568957887197589994421718168477472691968642868467416215074119319196843210583682876795057907455154437845239417111768791633031228425867728676392247466712133122324208130776123200191536965550880309376730673911134625602696283748023046824034781892315149586414617043157872093989154830881389678205879762530937863546853064001531441727629384741106885128113582335842493581035455115695234456563653361647530538476965296588858945315319468109884979468939527385250882377181121458111662337912482829958456324336998826558628275425855478696456991232698409133893455433853537159048995503383576556295698038970398767164744874385008276881489085714561601216808823652730963754683217065749067448576940412370198634089432667236793738107903654652191082080776500920260233064069427694342069012894751342197807192331170288062688476076604100481544717152532757048674022500904649720218540267597031479743102788787437450754292629350904722939867454538183295351965456975790139090515167528938723208656263181775717806810031130340479648239684390999849261032624502313775245382413774028715940539952056280237726523461138793207005587529965112005492905989848081872816057902198357697085091819009169785739189609101484274822039713392554945632367546874724319380500720284160638625128932711334058977861448130663693002757618991640776682196610545084568923155109507704115512262834287746767047374993122215912633397772376656556980636267538754724050677608663595343478038725880093462104437900779277251839822392687236831454177287195183878467400148327922950744990811210252497266679112306947807948575365579560882532543428446450938467314209937504007047062197888404406937369076717635318566415529028748763911486097547689353723678344353491961238901546551704541968350293369406103705027647575138849817300433185200318407476154953550401597388036279144500109944411937286525746362010199811108010334467370339369127699498720635485109237131728190838593078657112322410732468748136116948375012856690585097757322208009139629480268894484411655899290201956155854449299840270079743721392328498519375360293633680803160661085286436811467101161681183132412874147783752340599044800919981978190606265738393607913485212776486664974895585812632483110749526389049876120969888505573961009948310981346679877426615360372048072018881115450180379709206019169876394294758732140851772037605320127393880967950527341015623427496406797480100896591690442254536814833967678610369505464541032932694874610366522836982942754541736698739815844628657113287466270639184739274743849270616958645231016867588878320727826650249733766367117431442554844255079046072369398020859292082639433520961339081319509965895988844149814487212232939518148824295243284339842786846470564435176188361294245287686970661840683678173176431110069220397756149177730348070225644218072429252166547780941197275198123820071431951814686202177379166301986708308457362887058486650111331136909112353443928582710409733999376813400194733486050648833834153693418967641448165219097990057504787042955541868470428757996071642494904676670561341305053267718751320695495349886337666854748815474610993474360694773346677824940837787040549607858598215561874037991171471826613495982867150175908146858412455921073344484888704941340015337711509336441939209019665695315324747659107895905247770974770524072698640450885705501723175751366380801622152897734099960994708015392531457167885103675939717488901154478074725653365309457269127639044867492009862765557482551316233837440408194101204251939465656842734929201397825030125984914047647505927379761892858282881689380142336672835666650383933344982653936507822031633081647870568295702886374665127747784453325666385223345166824325454570360900598992428526980199961391992269714218058352606165000114004021510790605995348171646875222648629993361535945293033024091814755029904464613204802301104556174036792291482479619077324586064019076512521864884571549942447936881689232557550485082775864373579700817838903205095801149298286317933717584664058950201484285996998849663716830633776377946534119128701562000358508250204168272244527307405883406051499973009408498116057354441939769308322132169900699006861710100135669286831912469813063870143398716056997051702718074752589555886002427726384071977504171159336796391449802210627782453174174152771415763950627586045951662861079425676383056887402840413819867938814804962715394063614629378986174601068243183833812500898288889371643874150182881058474377204345055942433701940625351194361608199746453884977016416774054085904636058786328138002334932751370774394049185942377558199074110921567591709569553913923657001766831320264471080874657055615559439801385926549451419001576547686908483998097059437128182675810279003257893897609040920302649188082663519754312486729592230184889107317929961949204136621853846046591767451005004579019950517684827177853339686341400381803281259844045278960469885730408389077709610720996611271995690754060940256804997464408707349175531727946663064554675191017308784257672088139996526261630364004664793732946464066496126658655407695968218689227727758307901686604768509402358952100488542466689640333302288496137637836237939313439863218402757947368119276257015824501364753776046885433770090782689153839625475087735562679848485496892148879786948640971740250387203232474579211975328541280436368573641767302789613931001255326521697218101888961419718166001575700033373612672753571728255899383594983583263804672741379449633222865749497594597362070700023387794523389938697726428378806264266270794562424822214706664590526212110064387507548958160602914803134547103462821022430281825923136505602419407156105898259180930943275883167829360326103524920117942164509252784808084478902332611674709135783764861962996619130009241933214052774889975249424839341974136293462052311095901108260213868819688860458559431571615178120642107196893091727414198580446411980463255926196375442485569708858386946279275576207658041442608824009824750541820027632340141055626021220239388863871345976652833383171852849515303659292061356681893399225674337122701564517514396002465967056414152804989714968133959493048045357562545815161664101289215099670802422379410648051210162251699612266857719140722874811135145511763729364906941223531446852799488850715952683993320208138086673650199014461691686651792455713152469611062995487706578053787079777536843217020082082936451345954357503112841981234620424122116311710450151069235377106094067369603177905771874734502308826514601155119443671330000328866377420592981149959870697671870331030197228575973073594114238195528749362679811141679626564434939882835899680463823446093067671114095369086875926129620245910382267641948917624446439420270097924430853767333621591656503544607552487114824896188572013145570667505574078508253306442662246712334435280879972763055596363792565541473174277723535210682066818421881889119270505022313121139756701685626320009248097156905184494249631203972590748719622616373597375985031925346238909989807504243889800471062924582462023139574028196614729646892654973789759666149674226117555013193881187571091277479700662492142710825763001430066693053206546211507883904272383179676447554431412406637453683082257796947157443198640674321225294427581920732310587089542340584844133763964229491821103029766308158164644373402027401252732543697721745238835992456514125016393764782300643217397199118410726991113306549247788170479013004486313221043495535257792587398647099318474747555549410548649721084358549748206280891822628549091524046314083822266474682264026742461310865244742888801495301328980574172109760669716630915770735878831984097108280843809537171043722442737776555602600114211084898980602739988761109966482423933510633356006957485425262782018829443586066184785681261474591574910295474682024782246849522455582977881217375003371329788827462947036399298498073802649332586875126479676511672834351105727031222591717150667608831741835985669686050728329492886992839171601178312913217811414670329104239777854039795460489115781743303138253818675008887947082884512768560504823207113605294944465041736632877163429250432927556874182797376416051271650019756732530922707099399017315569480386797942540741595401691801171997181059009926660993833554216060174413398868498250881586995052508617740184347502973726171907270181053521039884803805464395804089818822721988425977191087887376107179568576280356782565988033674498108627936703452693320936882808140628361041935212801003118214052768387015096196126935282471586074641216614387193100699244755283652301337120074163601343838999568611816519092822320686876147275631784078371790197886964478409551154824072251738126550505975253956765233825873546190996396038368764069938618165220880638863923973211390750828335159764913812128210284599831190255707163180448315541430301115252548956498328847218116535559538519288434822414802869911375672655971035333799260284711146250121190377424115878661294524921425564002382846721119451042538000534043613453362697417373572945713126376102496634124865929072095333396673575839909004094821981246125819126850208035433098269803820101689884602371760614382252898500312439452771687723285553605581749083998166818697396843845180606909589786240573660632711050590943766571124429283412528679494776068421920442406195225348732230100843279196730363593635613923738356896817192806245451371043374879777208452987958270330329194470566040301859346868511115234556285315653001503766426665289039798457364714248810456758787511152070048829686736289252934074806727221606147221272891239571349424002853726162813715303782528670289140331617016918711120043820182375296064581348147686322190135052650852922651664119209648556845915528860775399893224658762101982378410845960814124311818996612939505260863917983118142379679820112145147512030257189861098097274684047310932121574816868589294013590284926215020715383152168053726300838686792693532831215066710103225817181355556443659690885710615648344490378091637086669580391152422877682704847343961312982898284974033428257455664275232627401954788219907581425907561694015680281690088817026021448285125128104800452631343765264250908353398708311877278898620155637478391873324852400174424378128071726234482295448654141849927490108917100106928021274463963170633297978495181790981800511754226511131630474549157707830718077448738778004407018042711457365975824639147905726673774952742962483026540480793299443376390348302470909005502259730301990019732318216313954122428893218330036011222333030758443487844487703602635573977494106826091518111647672765911469958677890442681631409806109514464780232520861807162999370714926695627750308576971547272138806003974767994635636467301609053421871322839011807740611570168547640137066845779428071604684042889936234397932185030832440883444126263056177628413336933053599396399855018755914192082515336127319846439398176560273043443208468946296483292278714896540307803149398163351782528700479610235373119541615644256735900658817624707203071744362487758781998835180356132697608251973136776442234693617876445730685390066368475505002405298384862865386713805450253132923280805930402156934010365914060156826638825325127882504320548770428725534931164090245144375092355726040487016310165352281919831869439887778598816158031910766663072483217733133361811338706332843981696097257022756733966019899581718342616341637165752818046789146146487767878918302976270185772712138369413544969270519240279860335087336844578074984359162577334291165222562215843292513184328348704816738840386625502551959319408461483743682835692215137222247553995867768081054232470595740827256673503974518455586805227597642951021050174553722314261477888192932110944174096286394920773525120920624109600787129541508948990243961450127926724325446928401768468947371560937132053468742299689523388004662212252583430417013291477903584014643235441645214930852137016014128875817260421576896478170331286948180051602284771120053263322146478580476619408427043932966537572451797056097713622751084979650769280316257635202782062776201023559449508373686402659232299363488119814351242222598106139151353819178753647729022686103417114868349161995199928508359008794723406551114198956295207423686371008989470864989561860514905679582683557425372815802380584165199537558793246319011818719066850154838339230224562937198735148327427623499610588586341644132348916210053120444419255015583737346320868451583488491327495756572859845604339895231400545787693428890627757933521195649319148616832333338449224083644233684930500364154538063457422614157881931382509467179540559320646668338088180772247401123570645898998348416920401127262235936770207786512467869710441334150377241174058316706179969111143084381261739521758996399500545600987932646715194486513705200619660399631887391277538381549561041269739989599514757131325584770866653117124366047837151859289135775603255893822550206875367306054147206100176136777022332373590510582158575010657964368482724786509426268770490410753427625545205429707003524589954565464925194529752032095364263244806953530367532893918992194109140819973810022186269639460496984283473253543073468955826244366290396884001096912190876438381701248734167911591248213255807738928296315103982284408730705477375398082943212662865072209879290734502537310482199297560758368804587139712257977596707713736933866962937194204758090216249229973706884454654845493536715072445026556146210660087721580931562245886194692120095241370013106312067104516472271954052363073590757865656895046854066067944290870214585647057268457956995595414418543653475147720875875341871552956412979065622711323828463741865110319700540853568956817325720735752764159790149348734935778167071180336537527743970068841331826220179364036118918046949789241848327329718791500348446939546317788180176232797697390489640113538807972367050207832494678784551706326231757410419027554730722229756985722025420341431540690673767508640519611844486707702752975161526699595276513550297580690444808218213570219329592992008306618269932324660187837926446835479701483764109992898631750465533291036323347860631849919460522781773098070259649127872593689865502555077923617926387506202025649442928867835711056217592451440659614542686506948933548973809956303362140617272708555749946214305557687513344951679034164705485354591632638402631031111965169631547109353026534467269650955838430390646808838641629337238184976091289573125016106244516300823764558430293584032420595943190665242621525826442443030867429196745801793911986149609798345210368143005986145655583808178001490265038532667715584690601284258373636704608975553666805144335060025627502261910688516366244983611097436068251082029973828079272987122512665242698987566463519449385589781136255220483528723897337311663846139208776014057466482097009764923590083977424120909912309787883034868104704982478400930489098020127267359104933570282446092817420564271458503208347298939115065876436617076060725191076960678729967615722823215373662883371579256276478845842795498950111826055526798902562388880495406329103859577218530405683985104706348443062058173187879869361514833319635701516111613387223501407115490390440361646468506971179276600236654500570265116931849712625709099529855668825003352740604365333302239741556213136335823076141088482968040902303171393002336254819504505418263216954088410241449957361571481010326836418901214049298757677275273673527651703548674758765935360613031369197540586933612980400087243985635039472808626173675019780511992232606936836563774850994085429028471509174187627571019716370144111167245488016566438579044307031453567238696060807999316064776001226691411041961284791035156612927493168279252316704274748004495534740122820912898905432784234327326191302542767138994607925743879218202217174949443088412869461247748147342459859297386489165933904561457690592900802666229957634341594750169725123537625315059639263376194445665599437116606575662832999939956056664444889963302579542453855751374376155069700073866801212888460976167414910801080999083844461880372352697660876413327458782551556643361898184120145934676416168080862601799002916875014230944951114814134885078569043709752086479487017046231409153223627731917036818965814423090285406023810589366456679974124641486077293970309966404349272656118953112148472446330837828416580870595768860522111578741309970350172422413504529817599755242983032042748349419675088176847313757831703599606628941012014019640880567150173474554236302198825037872029637089347429946717452171730773863448334856523745220022309212159493768937446044565726186178922467894707004661653601880286555862551924229014040850278266211004332873845443055872271389988843957774674310738766714696703403625953506019443283548832846448551692978496024997932924350965670011632367750727953738961505654273913830955394723408848206238728801695421900729065745682095295956599774325199689644971480927821400214373610894791375513617286630153245980090485167771378560893884206792490432329846647463872709460331296970533182974893082772170460565950377409357609139227200151722710928730235670051265002400933024061513573772254942010476540403321990120907693377960846777302400496723321711457480190506886186217710582573611266880004207043234629945176959608199139147371843540803988426110347921378254534477869571135277756397040698673352669564942135173467132865461333844304402726802073967366070014859557714447622653459874188260524115727063065093464706195715446308055366557320037071444017627732341864537104568074103650308671311053118594070346953383425262582228421928791786218992119298003521372136089088106174423620826356287260127330927050732151832766899070153353659414110592932695905854615533156095016589851062387880444053160425401182470777160663314678191120117845979822492722161046283232661661071914201818548990456108695264796985544573975592160015229354419593445813745448067203808855440177376027211218271052253456314837758377915809212077503565355138642165843893707954207734421845938199774146798013394558191582573619816768029098531324457837452511672849648165532530720813145941136761134493777823448293332618659544888441723669041271229973269367194565549052984571175083155147127228326947581213481855347737276220138572816207157132694043615344624149568212120215814687254878355681458716765569340681858892643602764518191485732950056243822321915511633461432186845817783831073754857772453761629601866584374784932797694466118622169322493199659824584465583175249065673839529939303524690760897766552548070669527565037619668641666464472843459980469037986014509590085508882643146421213935149762643760649398749842722125445278554684588176789529261626416984052867763143685599812257380531897004556619127776651522620980532070658819088792117177384181291647924766549029750517803975804025688918346150030046890465585846588423243717041548057588109818048707701416384942232704371661224360376035276469261154787110401403417065734632390985117476129335644535217006407451842539603094623060225097373030615953139630651214452721294235250281895322166599859852556660839116197133511302783621244072826704346363053430567344247595901944814265578484115963928116309839393467422791768984344258140352409404764312117481522074422730279972433669976002913013796179681656930947872153950840545801032817743382947915255723589910948937042895181750708307305439164902201593678937502014486959660283451895145906533183919049294722418431305008563712728641368136235372681823172539328009721020190196954614968761591948287226814453093879360757708295210357975147066032950876185709333327515587638498821197066962349048782933849354895009513989136362970644541722790460032007043743058940391987104273147895516854513311063951928908006060540572948405353779636448064045395748679979118206776869129945700632514834050751531144490913118831194282771994316842577567375747747902275633219230535643294079088883651155820841179996171171873248706842264872223588063349744087858730982198436575952355651653740340773321643662084578354460211017981716932338601698729997270032250023487312660529537858181947370921017553128086451090351569130820418779178058956235646794851139791648708906594944294574850957598426576074608870513017325504179020477934210148487069910246138493126715461455959779647249387557272165673851662748257922267710006487518051395661769509465923401198824813740944123959340427961383923903520177252651060355246248447163584633285935492570385044636155584795700015771092252688993105449194931669059235757711806931317373804167574280082404412098051887450393901498254039208193245351985312156982935618092392555745228805284771995345353822568484067913685636372228156106918646472744864840719435195588163504406345416714567199967032413775762602247894049143314320924985641645977493967456562445061337958816217098316047384995838090569039221341191376447999760425017588330845122585025671441473763579646555807721473528961638849547775020724831323276447074323736250531221308128744699864234775399949624514757626063108209675906320919779376352332341992204396070763483740207656833942610569727988559133528161380317533632215874655473758393015838024765571891357938420225025859449641634017533349081833973206253943608569684957631483031094782657045853214771741768812192150576493822917586072456807050970944053212577518300533672085337218633244929363522197660229895407481330650447131585881470060468649897077638540859494171867316007175327568840988431431101585679439086624592558306648290124317130356684003560112135031044910562832759791533715811279006687077772319475495554975498223504301305641560108271791140117247371617624940228275103758441771159863155357542173102284228493376806753675449857289708554537633589598005696329931227743295276049226259410419024473828534281148177984193856057592616905843605472932325390839219437734054128309717838903898731241962894435321216035866745987970407043110690251217853893887935651308920534456021637100902166867184441472407922634499095093493151019577957477463734395329785701148184319820119256536739981504614350505018718932535526927825122941741247971230115022885001010703836699234758734845288534253056336735511313433218292056653395520933994785938633622867490880284997303222271913561319089084964293561897573721368621082956969613401829645124358175790196793589880994944382873576391034263758787379734105600597198224477252763021504557097603093121247004892387283277459062309702730387404823329064617923779984494514966102310753930567567589895382038986180568727262510239242784939311627681000204113001899015698163383695222516094201715936929213169437215370296129712735602358181671402864919784703944934543495726974973165099107471966120854006793104595047407693963700592826802541993727143690022014467133153360164513798873016975644632863211352586637058834121097461617000197696174640598704981586207891794713325809179923674069373300310570442417171158311238787667997767482897317973263075064533670293897409145736141421729524703905493967692391520407730767702952769628444203984055875566851245504820075190239410493746596229201658041927981498727865193784271694917932262164389846856224772844508825817070495431381580863934845715378589043991213108578099726363762899212905518094060416827289839760070217381410908450830160385526556048037865966307952710289365237608975341176697293146506153341723020175752509293525026662686312174122819421559944397175907556542693508840909832248622408909264764656012843448740674920135660733138956270559608822123699692414360685855973551255805176045925665846355613555048785068608426838834153698228408849153969347546135500852205693736144324452022074470121937508331089999527896947982801088323939420499418278797674664342823744375979489300290334915234044896365213294954424340385884818266985487771850715573807395403048101603056058510295651306887342699382344674710456231636041664491737337684537039010585309805135939566496870014610731184923435315173227679873147302051668358677557360621476465822376138409973012584780033386387012781779012484655478896894339369458406880389883279461094283716090055730816822678789250042172320326013440000733257287905307828775383270589733385779300561493160498989617944882421960435639137568225220533761544269385539367615467938854616928845992586492992671197953432271690647883069120617606109777925061506135181564287195354824644773470761700333599703097977390035764045115217406002961694862615620951696451154512484240768269558856368239151140793801330599508776741259720972765399345513271863794872819098995267778251393618007329269023909364357569944045570348930059033228638336735026049823319752432108611224599963788183478331868226616138195464569542969127474877486642021822349298686051223273898517333196236570540088445935990759267332579360823722365996512735742868399067402875173109436081571139711885941969303245485728407976250820833026070197381657946401749138565190829502680231504109514768945263954383594222979384133542532027725759225580848199500478489317364176120890207521932292566221380097133531285967644640287839943372373653665135489810069920010214235296306172107559242258257407263165796782665128585887494195631560753183852451236155653489132337585419586669562531032259122658275505993552432395162892455583816587939526542495039694559142997146264769412581502621240163832562966882198039244822122981132133770025540043275215463174291701044851442598324847479728132004676993547470053099692128030824521849469515205939278189015110731057580716669796038892202143288618142867258352579703106467309861722435007820823759562618060878112977035716049082812726058734610089814327726642122893671971077168444352543041133008518584062528178349189972653968471753451758820987706849855046682814890177331822142638468855519966154707474528698178607670436653441600529749679134315832260111335385279496449012940167877817481529769613171280106650673508554096988603864041701851380773571969351528495881010840031959166999195556329999990038020396080067063697666609730688896031657216040684621396945347797779549691761336591290642299029470862134017318005298368333547771669603171659093795940822068978930388803589469303899461869435673260943166851752213520815285315939025625187080982106346353169453365139084927563360929515303278348122156094178375181355584433656301140978252975444158424425166210304754213374768448660094307380340090627585927723956905977175588103379828894433480345209243318826621876774266288031951490745035758264694509765390811424084775195411695771643317996583131182622630839928694681238900047786925534154707449650538683723038258479722447349130098651031450094098226709776448897990506124386004962870789278489671672712601488561076353036046194929179579291833762464405177184961860204683259794353681936560315111122827088343168860807801250985712939752986609178013931437663153475872737365225284406800347150017500849657580542121017857390918735367805052968695361994049486269901808846371738844300679755635416876354494851480433296351071191607589215361954663693462413290449578285436531380701594377999954043745886656141973401921415073036762161980951237101454206830334894314415460674980382428881619317616383824666912085205329272461991686366431033889043673817294055289172434687022655677104032081838592892872963251761925279886496485757204583350184605554568712294824302834890128083423638305282812318552089485264252836063497248435870139268776300206084227580976702514100867350687039719359601700802473597171802001745914108322728354498005807996312533522299285530807364794635571941577098072798336026081494071478279284051120433153607996254929401922221447995049649061410877863353903263198816372923201499300180348394468245237985110043143559953968122666580893235759829237740078511942806434649577239430622987395553204716670616286257964071977936056941212382129129069979744009280120153172892598477809838937792087427056279362877991532338309825752870096917959293330297675926048863541795915897264871662382226218995569993939023573844203590359062847523462559910098270348721366719413900447622109705525487367666826373105967724223223539999816379370642385480932761770751036375089805367538997124230696548711161682641688570008413587784565541318620666774663962656620462285155522089314230384279573705625077320232964354637084745208622364807066411220591336962290830286320679006346973784141860937425012110448377886215192249761241639730924856719363845737490698434594369493998595589371044628879042060148986261361516483077668484324400196585899598969874218200192013373963985612221818152423285736371050740381426601728196933836520114250308956153637915244271078420213631217500214380973712710074813187574941139466229260053504160420367698867026860027836106036818172085263218525416993080716166152034806470741837712519302379982871686384099104369338373298697201887848107687708036719205658291351537960248845841649364671149125419111064545661897213687345456210505666187526435394612779320050876727414831922782196359082929361908716238959280408341532100546379127424419189365355198425134864929019147598881053631263837083268922139415923983880043635724546883096948128266727987010290557218023790766641578438747580433709769927468385662726998171056493633756290393283336995383281354116271204835618801954002378619367996077960111842370687472449026019173859804839475149117877423595283239036105313737421765802121318261665124274788830717658076488520707051657155518827725633031535630529098091461471234495692238816689022327405010101252115323856492388636704049424678192414088687122531184249788762631170152266190954797277540581072424567196648556547877302706844876615629806995429843204931248265392515779115203374716657590812231309096389161523835990122698531680925045906090599088593940258040166738058629484342288869471717029098825225256760127337229375225598972224440657927748094256990679495446390223096654784331528074346021934578344405163321205738126642263752185274782205507604548482765979471614666017846739496905328486560711101052773010164913714259242465617513819039672714664145167111772656877363382017846854636244284207255601632600519795126485310978205000065454995572973203469084593580390595255433522575778951423590678184838030272082120421123194738516859860901868198621269039699209721763664638930325238941945194783032741035431580384421508188339649494586403569183909499648538065072907124397333223698006995828097900639812484021038035690746447385474093527688598935176844032397896111626327254155433221923993346372200752719458227900850278400723435601090980609162242250348222154116163016334631264092552107086703681308680489980961778424411459836446326922423239342065949562192488860901977545471816943391669248617692306143689041614574010165236041956246897803228162614478077883453982336731747124473163680556302640872494751118269267892051390507810962616480118478858200239219855364263234360945384729463623923978716770221785472276018751712670572635157290672922019108094308701445698671370270088080365583917267001441173238224045127363160704599559839807033933934484789581134530548042042122775219983767641278117317264560001235944192165610405582524353841625068509046807256144404735810400967893239086822772598306933927333678893285645238955338714440427792400265385784797788309757090729322477641595792254502849436399978979455062149340918670487286520355601022214479512180314105328648043208726768705599146968984994797465347212827560632733778901809452846089492779217921809296179414272813036920943268240509913046240505894581225344429333783554611896302951088087378006550457711105771037119176564607545483266012104426024299442257679714214675394560195710257438611674156500644703997497755005977408883147242331184773671152314711782736663324058045358015334835704639172827270277542122515043127424618441027469008073310133017208901180774756565878284820529113822839919161510097396154358261396902928718457818876991877536157283832119621641727691743938383056962341906422711495722972839689892191770699650880321485947186919951261918411226163403037353247013914104863109886918258889984352263980411114166074038794471971094332109268200276800472589590806342823147019298358254385484277374118562407350447145912066988570327064388667274290462098611755024379659862782864505613832050101342399624224722374524979743773261399715117996164494538673490915596094301767881737887008394236378428846202768486125394674087635417127089573032003712581668234977512377773543183756395250499191993092150323168110541087547519186369419919967156263539269785286525426354814358994258122944543530372046545608017301460398302821888085235773929553257721876559850535475257486031765570260247896512340796326367897978613548608879617551344907555234475346897018140354203914708966497548078599298608578219409811450287454852021617455969859327306133000643898853395725767179032904144995127677049237969740800102779051368426460889289741684506498836643391179978361107430845966622846747601019842169552960313265621792485790778250652983973962128620323464655040138055748947640656713937550819538569007544439641420510256655022690867782082948619253671493033636330810067993516507935567076849681235266634492863034266527646486788697462089282400837450792897069386773357198832073804286371059744591700620711995226891459085803889360611912932264211143489660191714100311772664341301370578688574019197323894191668625014005950790394539674297031509802655111364922970060089766297201251832899023063231544619906815136120891033668926610150240031286527426391776983459933174102215601493583846746342434928122773639001355752593269079154024907584325794209757181419353307332685809076011675961984878058442153973594187528760958140323842458507333519952068246061745533965615271689418909752415756381096941400712061086760912221593555172331457966840145863746420329816134908131387233368135228833942089715601387585009970728117390180435429628229813661136630888010383937914976552206796365818915089613988717789632003992242382129765561946837917705878229466330544595376890465555668346540443311436547827862040537205620407084690397138652634318895354015917732116579225203974240806637194758153813435630003573473957376966165311084841185996887007626714933992954863925631428187143208960700174940621612217570259477967300284003828925562923451701035688582507846992001520940212037390861035332306711193583493215124209299646252275854492820660147523694790938409434077605487568857527432218680817580764853502361938656709646531464522466228423522654232265487641269869732142858019183463109501994356177893777765075747251319868797062172472888212912424639890837632887433958467801955864252313330366735798739474780199871315072652353583808195125188405753388832894557942789724787275352084352738437870845224296204831402774724364776661647591169870608718470796058275301317436875171564418695357126661977333225762919262710638151835373757617166893470333042819276770732610254370677241321516669907321258958866770973660397167664114651294146994171405130739299090656919397339845739057372931370291121761015226028630706445725029475553296245586037552999373468551026645382135828815935826027144435276258157215155381508476706820813843060983060616182856816307321741870963102602560560911478221946356802534759711081665748521443830249242677312982776723352138423795768378114524097663676729958270593254629934782122090736404112392209156710450892587826285397031299499044199671794306663771028562662941015928053379302624554122057929693150658508684362593201538256636605565897813187242132200691462733590507859833653974483454313910075745744239565254287899769688960929034257683307291725905859022350879268982929108196415716059189602109480075022089839504715293107800478137479418551208438392143019381874478028161437871351013878658444462206097004275020180399681079541318764996612783787129452318997845837659664108013356482299597336026993762421943607809586219175920999776979609438001276703974254773526082145738061049090725302647744640825117271073045809925902795376043204238264633844867252809399489260736010940063928755435657399786366595052714684210763246792348087116106329618357333780076813645258683969479835919889094787778287218030452892937549050141667944951405024083517502551173854615633780779382138051867610951622842281392431736615552409331342872763388634799565309806366312551797351966651575573679682857479325823504939428582227766786698602437434603322941196457647430455318257609148995859986337370692470685509622263690843852457623728089045140589827495726660861540650863231934981602809890166309515530856404046018748576812057155003537432211591291769703357394535729546330091806884948956355856794446552955771251828042793849295947811484064051341467957642338632439191377850062417981039048697742451031986286977127184994953671672465105111048690295119114745726680019853055627423298760450006096563732721817929032189432364018702368112776694531679877781632785444525150177007440205089360905975246720705017509480626367666935384802982582299708487049482911709801369928657319779935727055667949102876995816092460876387434077067773435285112738331195205766580459602658446451217078508946559988993519704004838902041239458070359093649004340738251820831469024483720463683596403078324641874536291010969475578786211836240619362943397829909251560956626231986632074417490360864039557544378194077866815414827661597822261327396608100556484090592990293231151444292370556381301518690409983962244454728469277956624001633011035204924911181188458024966256177898372402522035870378213891355488126493565560386319598963703242142200021652171138590909279292807167566450573003674749487855951353851147633112277215508670564293740697567845321174578579141812512899341714028373872519380708334395726101359187660213082900351036838019593360167454569333506580854515828921193377821698535689102683671050868105365273710003333308574668454781518864740835446616755547645438412751722694646273942764141067547492316861459069816160775013457362630133106034340582387940985421929606140110019463320256302194818903089396362154092749133422012982196358962556890954681756015247109353463911433626747191331960875596110388468798996191451470243176989560411600757546909966417202877402238814407082050673347947603499472536907490983837298868196061033947759552409551685889541196666286913265877252150683632635173234266574560763723827572912832181632668965230038523736800486070931328091852515435823406012082452465784806224980610762056130094875701053969482113611165722347388189356895293066230095553601351130427383902029776358890977612695349782338039912159930716417180760405172537495581579987373339609047535125676413557508997483721606373646061220357597319808284930457212963454779482511775619046648392975954550588949359711820161684640033251265384944172564516575563482220763582536692277084665189981145240000330654779449564536059514501630553685759146319726470661247291189738906506010435305380475767107534093787908806923701547133061281254771396255659292035109789202795404083414776755205371924591967092909059909087321893589517144737694760138839732119826577497182747689973450480931132249624150426288294324608739299254499249551169999033245005096061118765343089278982114399030071289434764766647151860460078910435599743210271291878822538664395992956859664881969328701927734254634842115675694019136745795990919422148353772581885149378153169701570403725510446830104687649965831519369619421189936665284699049724411194217400846117822841769855236963624385329658719670332290593264032022517363405750873360090962512476234065400185244433789530967574004060638270849097434438896935930042712175546507202557711854457245403952927027533729171267683397596830942234097796254718478025165190680910425719019345110537395558314012282248813599775390072062461687573767796630567947145947883189919578031770553331169278561586553061197005800026216473629736524392620007868480074523692465286129126199390665708144598314172890381777288470512260657482039972429070511408505775606801201096875063226963032477757841374949216089656544837356317859936653304171257977001890218046826544501436288556688595028924820966559730945160094352793121796878362211131206929712127044038147896230404307161377799601858776496768535074347352760890628125319302319008391604434301003705137709396753207432916171983886341859246026027872524701749204463684675610645774298079560297007760499992908272705726925028273437319273599809091439307327736698643932995288924564873180047694719099643202503739897396200791945915911637641087053183491446487924927879994651609702708547012126614019007494025270996078538996280528062007382770237805636288343681182386425310707387984315447534759166784466182367757201348987964414044348216769902823278383693016681028489270851386069020372224569940788880027857032817902045137443338870642987575282001968710106724830253221218134105340469496559924010266719835921887081317172046297734851320897106087473572570037099639757366613009051238977784958473892752109635334414907959042097302458393467905518404838393355523378361765522594601631776667412524445950160507578679998281866795429680205804448728829787251776875847879385346920793353209136365627125803294608002914059925760455025113264126627948679299536677898058475350441660562357282663548071169253001410294338850708526867505025703946400059791420287124836184252393906327125422749735259878803068774828836847619598739623790320473860259789390987047330073297539959142043742180396408770589444189474387871651503959316788294416650883166005630889389378143663698156242526999265363166951452910043593692603326538242964604199933522580907385135356911305037380773111359638734885278475611630832284643671079428333433647272779603575731194123896257090207002161606656560591062479731743240344176572320076540276652669819818931410500462000959005468458605488061595545219740880961478786250051241329664555936066586919189853185994408596421240719977625953114499760322707893698408587791674260292483977065118851766075720293256812281461894627110969992915651276033953020999263544899396916190058953883601750895171798454298757371538942765522395083468994963226300285648918372788897082365229813540401222942920586610510983048302963321451642522441391748496820799227039592966731335543884887362264012350906593303058491898688941053139380951272219986377823572010938481043045435317068674530590201082480178331358014389476778200750932738985820434204770671804591155383719088573075916487757686325185990526051838555949023243502335709813981148746000390845634617887092099864495258586403247947288064329426452496706890296251996371861163037745149306019438560481476780533391809609176178660348033799563201297283980884235526817995565180734991942478119967495686038605528105148363118558653593100601684455953414521476491278381858435704875989366546181825846643686604785520982165076542498209871336375863832273643141196822601710787164432465250119784864587145409620949207017866958377182291662751379812202794424367491910942862097182746758060295064133933073840753843999257950406138473367976081307532358534781368545202994802450024526657469295294532961946155602693883117539233800175609403577038025462854933504665256871455521590268982758438731798689244524966707678398835316068226456635762417157183053049786246234789225721633705623507104669142145458401597855568964022538818435130322448087369563754273510513065572538158196489130537538675995828648236214104707439457533770188279797733751426521251942464021331890528561561929481656054146831158726152635593256160793134876433048418232385551994259028855016745672588073087390828776529653948064816522650393000755871155476921430874671732405181676061350388790138461406179163624295235062589586049566805503224433232557155385193562979926849694634733518425922446886519531133904749144736225907656682379130244275314370833329655375371879771735049265918338210925973573742547073880287111968300666585709007175378974429186658147055707503040822904153196994251074319398709665108970337016046862535612919031685512200613374962898019843997213791133547548186656789371952217228950391361171556530585442070294705739050486277432035982759658355262227781934511602405914384503427169617782740839101932298142070378416430051803907604239420528328092868453723986064235711237887631891015700130997848281723036263403949688794873565412039836477118029109965029088855304222403876108283220130129455112021003429596179745150261461423062729183998795966818778743346271921107498189860105467716552921995444720848701254815928263717696387067555136303454442291645510181336312690514289726547465970506381873058373958689791911082318281746830883656569254289917932331652430783160005452991856591647956159001494765904877180855780243470458488534170817397484912030856628297476256573306456528645704967050516414402439902112386554540738300885757324076672414234517464892922845506258879059492115467022927938689162012139387401255637875573002011394073307898628646084825732681718179304376392007459331534596194915940750942525933048550367465696792798941996759540544294527871902581106383955728300679710954783301351945748649140573420744624812424233889545577900014273822212619842415559332344016761902309957148001905116586350849559925589739605017428869352391028135458825136983073077057405273470423112468613425798327116713123274198220506197842491178240018035135466756861693435424048109921754291762067962107541138070048525618830653300602531559016269322209709094386490169931760912486026865329505981120941446585154653021376933275633211097683188666809851528311030320860651874280253636842979750121408767221217764733011508127609107447848715170138698091529314936796659397512304394435363915179151367643568548329827484404572252465236010927350310969730293316011680925286436260562988682474281661087536311457139322158687081031292966230703005331411634501617881020117195943810414929337068435838451079984563158132339400638633810846364800026886430843889320176914372023644066087067672739097418257872934426927810834980932441856869670759070696997642896520734547345509187092053400419939527586424489729277390772489528951510950594613825292953736206438725264485628697770850638979085242872358918353597795469289947230591669201200195640935312476191625926219899443906446621915241038346865388402160923095735957254162544169224394406421653284752279731735478141488566724828864178869264677557222798126573131688769347536198853724686083644764752351546177254852579717023856216342883100152796098449452189039728581016422053394296993187855916761995360656914987855452436797325222671541013422904604357458577019669347165183599027560372535283076739019143692518710528711935285518273557345499470737803782613688029056279493858385528560405493830054276374116118275746453563341766460308717836138968596472284730170080735358232818788588149567641451019462345192463640661954374588088879323153180181307165413867053971014655095415164377129870567642704405758103170229360125838644343425129492410807846697898766472481117523570385862248866747972948289356983961939698755352722950762474649066989131823335558401570788618094975366472113529137043785778863004238380117545301204284726899239107386713382204693983647302618243688592094623078283815259350727987077998408969984014945028184136874320460502707576467493000007639454558678759362325591928386637649225085476778450898917134715119043491081207809541441433035093961545963001085877912776173126137451352218571254991186673405366875727949479315602935850080335252140635299628667398104036373697731016515184711203150483260898584160064407650856245488284931210662152443800750026025193716736636023496538774849085301393384582045861172104865629035905337868275667571470767307419917687347953194799373525287680730824005677274633940772282649732319251004053892613926576652013517611652807975094729701882116959980598366026211498626504021021558854941027024780558832986437286855381183055604593542868009540423109918308090163690943437965443914413137207832589135689817281372142003353833503708633420924313347600517673086291956004056616490895843686090856508329458956845108042631675971972104923417744036950083628013033766043071514311875104009966328668185559239356563319237890575919341542677638336654195726882131923158927471841385512283999517021259328608228580476605060870241515054428311681399395211150261653895030455154973867789487816120249188268538349923642703355396044355012667897307399636087782433039759587819565564970033563555764849831775804344248467520840495321986540064131688392937030924415809063514018284758893495870619083592339902635823951346127946580968779013646947023057745670087148909335678403840333408237301414643440652796720491854730698469268495457514571496205219299880554569098806165384506148042862227139377163451495637543185421397906910676130333494151580670207404766640295314322365741168255348096828327071695413167705955843703775226769041937774932372709737104440413471738189972717213142794636406191713581985434544606647907351910975431551908180863399238352677448428114420229554037602870512407654017381147329999360715598718589018280060659734257151817544174004134865223426766898208236095483041987749259984753770915851498397003681702998328352554569374763018183812072336005321852477498080250405339958152790597167627534113324886598339999506256529157583719001771623118597442572762963722036943258910374910061289954152487446788760430500185357349528461272566804839176414419945016348077579819498278663964041070708379559546495190261965387829329272116891079639355391744696679807637187831419819974419107627323766180985501238376081429315809714942589944795565379829693542631978875729281969297034288363722082639805085586378688307232923634663209281388057076985177554049811142114029035812440203029347918032067946417516756763602323692280387152488720830063143386120696284904591360532596650934397038785214953540658354507472986651244982614285584645475996498711532819527833596723168780487659749719422514932210689312064498023848170816867595793905700436224474599886011167113599263483018059198708692766852414650627696689852180646828880356094149693389771393153772143886144165949718175956108790022648818693101869730932494873172038139884513254402799692352021737026725271329081492238992597390268212875017803950888127348180306848575729537459494474423091403635199611959681080825187164460385213173026932305578675008741184829785708788812028636960505359027461089531151176360617040483412171031809833781255134451242371501047646489147986362439322622045508133894013101727414333416739816747479882614531079927110798439208951410849189125228025050941201850602585431857237075360709301647110720719980123425210295966388855000955719716343101874045299316219732400801730187832232491485743775565434501040690828106144799942708426618651899250888259708924618430509199114726613558507270146341882304158884710029140739898614456456978882923342004706709921828685477382203667386978515652408195273835052509427173832855534071435675571958152848005613234092555750257270118339853116440134676097480358314364690681340417604928327095485965215756860202194058611944125809752501059781384580947212831950150588477428170353571684217506977670264432086681532001092168652196376239219429648973934280690305930445595216740798592151624118842663065679971775109400993936883574957854471363890575751833924496041961442848544456061991200857058407197693677331693836419933310819282442642909516280750390961675099843397493931336481553733985799100170435119579513496782686176399063154311317845426423483707363937065188782437814062083616761471898068693394607047891953614858563343079189218244395728407071813912796496623310148371738327067916988661429550021784813270762101506627707187332080123349812773298394539951423081237067911085363383127639514995237698949889716106519894860022133579710788951893050810488162587418456321168484916124649538589358440103332738264043295692588089546548093314902953308086712614223002567550392946944342656414459327606038548499700892595236753363112611553565052828297248160630510378326479469069240845737341757169462700648899903500464814558523312248455870236354600485160433901476252664969680051096155165903768869636431728177914825675046058165775124784361538794551078266600321885497144207234674929531011869155611616824071313614745476889574596215113899633917802057567424012343722980457141272896755185887597117752408239704449839399708206608401784365181135487436645246416556283226194843519311117029273529239660048607606817583754046821939640215079485922246242527512958631877306394516912481208369343088747636829303652315780646636186069055795214684037076680618410031923391611960916344762580353024453090645748854917005985776409908717039692953497132030648988782809513974170312405932219893568500045431533356365439662803702758208641207657460062695293366410363437878041401057144871395025315380674506030703058154053340500728370151791769270756617711374859418132042558199204288404772093197469152781265024062028103553647063713522154613752875253325734542646291410441975227017371652366321866943538698450156259729984873050028491711130642609272329924804538256669182850760053978364028522345323626366968935120777964037450863758467716154661313476259563252734531019727897418132426146142030846088553566107245889476842595838745665030641977524908204858776326108200790496833515882049712328335141231838766965353271408378121300623917144056405500970141717877583832724814496691165641456316433351325462509508598189702503524397329951601142145778818889269484071742105617656423008161260971655125053684139306648120791051553114807466011128642550213806020449364162200630610702522433032292502681923180450173970136059200881211286512232491217263060633853266065566374498825055289731298185028649364623164900248439886032334316279013111483283565000579223311704850405329779059224529238141832518482817022265279554733043477112901610857267000497879256296001314058821193804413909157912695855306299328505850148248765326890996226811541291601527908191425022455844866600718322793088102674619803944046667382999686543581340820729232319575197503625899882362252308152709820300843432753166714818714152213133055744804544875538926754072453506622570080761079097739568593722162121445147915906540635644416573836659465729553420689889653048353459715031310448691199240302869690541056531802165151609596909724669748374205256452075677961225087793204182977963047427092835662983647050909885384031054655828310406165415116113582466774555129669411878304453584856850942946695814672198265839186877043256071345681209558796537324779518882420153358072610010254901642874223080126382519614389253808962945826062896675718478708798474745185670315958236733610618073906660729781181133873153775747512344679302104856035009521964169712828207435084751031701417909509793189638017452144938399411715254794456058765401881109678300489736963520031245420667749172698161059210645495928420652764485760806145106143544941749411922280408338347019252753318467710039176029212895093205263185948477992220176804329511928245975494717982215460743907919990993059013168509082952012391034695195372490526878867160466011584554637115768373753997234863940866623131069880356320164331117450519203617933397922863280483026373467321910865910834166987821858012426090583987318677877970694225739815476250903339883522039043357111198045656964183115473961981336399302064855173146541173935289442747945960067091504982269154610580740027944534677326538971373864584758660632206252992416448864396502596236878956386131593677927363031208508836398371352406740266705215549586886192583795115609095555057212092407187681035064850034623964394111440116174082169403161319805598983727359828676048473309218422632911591102062447083632463586441461055250864848620237543023827474372357177516220124275716314167053567488827038147926845149405698702241978988862340291692107375476637142093266060295404199465163679520080755557341614140670563645361501655155592774722653839356541132739176385796053605122836083459208167163008310532744402589657392505431825300966331644135546487133241701140135341349390741653946748780495913075148832977021700623427040549380339174442881942615134111566969755879299196731839698625945492259892965547861484262908254895613847883984785030331566742918645126498013720782233051073048419330189047801769341679568717188310751003068856478180515765381364701229226678989523110040740586706384459092710999720353669768989557087320514233585383614913150677186467301964747056948268945731500242766307919252498322990618321521592690405768429869263075612831967252235526968986775317858400368899061901220206854509250542225009147446461440175622931911833352651483648371872162968005342494259296692607900468982777459656358332698164680198702453636585465654029318335229477513219381485941070443211801671124085870141662819864907245902195390577236478725788448012064827754586419804344489545904705858378810109086618085865401481022238507290435311001391874853206800155610609116098522816908006188396501736977085019375586093364670046322631230104159621962934582571315734231696028359529497682021080493957600315403713090587637576588230534891186995382306138645159685026893239277579606778700906569618202148864511805511910018321081101791251019074016839596091431501458762495411910585995554046320206010162956030672123743234403407937850337365164330753575943250983590360369301447980717849740764848567769639958184524555131484670259978827229010833577141226295160734048112505573735020608202435405592495576148749704993775102954788287322011834766868716434969548850334426888977807534932580590831158547930219229016682298913608946050329910128851112559101384784438054156277018649581222908242771501530489755525114008894063732625814811296485012356829967438416969269849769244080307747744554300638398429859814051529934269950086624950000432906623718405190943057240288362036032346712734900852050756639715361428341180916778933937030814506362393540564261360716095298035780013634336166827950200972122728910113728686443011261903440682586736518670814439206617688980218406233229536229966821318795739466285513071476813485306424229203668398381748920362387581643389550603642511058899729290461801829692515258878523257468684646076956125299442894132887991049083820441299076083884698435028843430439718774864430399129706201228155812982960339625020935079668020921612545368656486551903462642654340900829067547435083770533663557928445831296898873808070219368091747615837505814918586099671423232306330366381180658908718691509393111406385598473025451523760314697697800748560360132511264218743950445870833533085145170989475814308586484050907983459943023932991436438059376932711649043995007364997617070527347444949308024174720836328234523240744954785343331343918998523462198631768607818684191261741450429179640754518826590605424527283356399204640761475277462662844693264486049847709907675084436795145819721368520038513713947546832072398249633772729506085856100490851661751703546374901997999320258556823346385951601690480603589362076569711538609561963417917980553290496808635556467915187528511084186470455583729447525447297714769267398954387453574018975656239860538430707155218441625403031597456486553366623974899857768953175090983983355098773985708056470010143364766443178741878389208720442291580389086298824895185679588172622976979055087138002647621029124209227384129058250613300492585876910304428949062589350389818325684583986438059547396464696261075037415462373957178736696949653196903208252641621915096174987580428062095020263349187981427646407733458514943105663928972623789866681838108510653881188215517454639289760876285822903548776183058861302411457298113343224026090100066727460574834693144811624214640163582475549026663194947976843207815093236307848916647557292964676859310290789012273019295188360662189514527899361178549273125907288714493575720982294468391272404569639805579880764639744039965699158329168917912553230882251559928267986346311033845203720256067237825427919196770362052543794441730474702976329168970707170681921124505350932924074580119751742918768366667957102433128185029915442041676596818311896979007945451441110451297860735926035144814214043911208945063725403439938490349258488006325867271818458667193914107721038362776821160466602935664702031913052355990225333848185553965991287503617735529594820385144513992172469394251226512944234781657254720785439328530993106787457849537209570297952625310569637083915069830202394294201666828062088159382634502704968066809766535184697383320707714300354331859720672333157295273683230312813384879306568098648838090064158574291373777596480684994988285954969413758861449397255988049144050059086817695150115986292135314677704935532262998490119924694691321681040346136263480779191436785710903116709254330406997001382195178191034644027523149803781207154686700579910705108517584888046197584523703863983162959762820832541167384968873550053206131758265613041727012544346138647710833708486593046915887425741151153481882418728321717970185612420097394335705742003828116661498600200201179503232377659554144005531911774030009323708418381320472972585042791200045677109428388040504772815882753090076577554373126500998763116574984430970961089751945893472382570151547272196639672346149960265748931914324239318572660342404568128322034846799647507768070664105889718602811963955777822749010945646372596791168606879546439190055742841050173216162243552992611604880093950955607393023867224630299836244145727753976144531161920795862178206294492699494973204977433920125258468152393329173939407369807403606830622278343302021515721876858753055179847307815362898542877469242176999653154754662015588030463073358587214577878748024270099635851233761779518678017990645571090955283619607748662698529881270757710733103257476788813931452398464270945553362405674089086980088367980306381428566030845869612827343788391833650119790478752877133253240508148686894274640787393166339191598621918681806946866335160033284893012001071018179971933420329685576796666038521409190757536616125121487240003446497604785920791428315990444476255261358520424734896727150209074363360508138697033978123935620041419739051964370672065690733306566915203174822136902399583254318068922089605333376184688870206429981206348390404504891386623022337825153142713131224131278601009616168546841324322056706131958134179186445029998609554145729826149304550352622721897756718727211274141083405800629017982645058025578078321028845922298465236739194899318928505944157678615875056152659572640182804949904081729160191780499311564024837718194750558014184292960851896503479280248867230139795387700385124942392618203640710199455010923587639188983894254808409782524980671031645621117515163882301570658590434339555423545711468960793115735374390452550989741135103950498471446865879268231356631616018055171782833050513325523542901688270721518865233411991605035065010824093145522928967342996286464304723757199049813691902597580906714956337363861517955289252742101945242708953831753273053881306891597346132440470443472658484202751220937874833329317551541712884588644223912584469970909467271061727065584411014457757404545962001192880260107719644034022116341747330792832532689058098883035339121979475568729818786065042850687917642716304687402492595073547301048206498747827451102312122318415728041776399859459097982198587293790819992576702878263458141623300011068855397808923405738509028839524946107839477131324384991087535976735416318038414650847139270554859426644986717366525424479899706189818001368221389468086844898014430814682142303129090197177671674908395165587948798010727866241337849393912533025799679431928273209523962825612265992509872077176774706916021609331436538117565190750419060370300733233080369260128884294306036151083804020729021515242170547271449889432270456885675916148998070308782258933479078182422418296970642661194439033570242462977070413372551804630856472448584654458149919689515768609850208667636345215349172260574024358227088764219668277269869180794391123420991741907929037872309541289805286482682158598470646298979515934456878440576432404797895932089136843583607543494072042163918910585513418637102915519039226132544845008888636470137408295915866633607147372327419107808093946864672576517317954379179713267951362827466688090682382781399499932299827340294950845704781878827275581291759720136460869546658339002101480711363028518706896167145586398901211408480496003257609303948770785178497223094872994236464206993493989587722214730645530456757144565155065882800441193344458944909050523186273623543296080577407167364701072765753951587314341247645929488718519042881470704716660800704565910415175293647312968917346196721840225857495039971429485832460300050209625739047906688124566371488153911207571816778903619666271353408299390274533998812982295613551898826645891698079540093856264362361032388606514188177629973883528325106089547156908232862383930736991257767302282392257042026122081231252613043026979713483946207970030074980086157031556839992950481558756480083400344244482414526628622878733032441858871378935452782436288300604164830594290264487371489844530494690344492114988680997798670031445517241126733467666232502994952588315758110150901564819282154033686038588325619169219065499859513152519617000190288984845354281001094094353081869757453326877068640562596414486148152334356675175683402058939671336052002712693905555765602663940507582956105333552637463389613995636210050102736404067405628329866572598347140417286423314616703962116795997974333498138222223805901183279838068166874821752449098856059396442189019324424946691109523310626820803282794080058463375335142496651800898524964132648733079449396975263403330932338150119925057654413211991477518684901483020274848364995928999827025411326303547384956016523493946750738418365599550583304136900807307465342300791204181153257073492257680743702154525203756273288423195911009500888070453982403309664577710809443654100916512833070109899956755286394536224608497569312318889763094117823192954363905561125179879639654055832009752361488824002053547409026472881227593326825714134988295041694660151508941103724958061379523926726365875586778839584542752788733852977011102346410045865065767577784523590776244427121779798964083287964773255103125981775364642619393928573472221110813935090983318692975003827847227926330409986302429697256052407726273573446050651636404372840326798439854557205107770759987134798596397867665313395357641465334030322058733271402662633611165969323832341488517644628167932622949245482045830098092430192450848005939623795148093599981512226696148019651963725777032701254936990219714198050330744134292188665101862870735705856826914535597447106931659224931117466381210197813868777454213546549581498792449647509062779348143673425724646601734243833370262197074087796522759758993209457270532608778883975718483629512841861135461486005180570078825902939021102440992024786693457439569491358780521227711785498523521722227799999370922485097537330391139131926400911818028334010025534812790694222091465661577426408387025013600401042476852749137077162623723237214320243093969615238927396309434229673730757795723636122275300250971752426535277516192186425426151321148935741199649274420111285609794740005945482199659482377116157155890789953285819348579466034994586760324120640938170012581042651172255479155230434931165358110121042383238116516100945339539338577920309930495227340771012484682421461057360837571425178911985330112502929488770248061180783612209491404767838631630919910423520262594660784178998548799589279731481251169166435821219452703339307804551412675185784474106607083027359745537404340644209787741168381142672417308008906258531966083901346613149456719424518595898015673176259694354623468475312353748191724968310267343808837166089792411587716329893585787709505161444320281604256239510051788435762651312481555719917020727306185090343708062872635987980160900657026598333909771712025712384038404636541240031214851452033254573205299891415456380407695876223639126919800018210984997445350309448114970333423160575608318327080299989718034527351621827300772141563289714793384653249623091112776769751113924209888761697848805147939915622784670489103818003899920944410303681540800659925008871710061358506869621727701227133687296445116155459079620682384912286204818038777859050072451988275878716348623189346069523655110746472457445499891075840656359605572114445222282504319898036528395359973804575489602581218082033124245007840274273881303919092167053464589158805035499331566034162637947183042868500385885075146695595045735296479596620689485297253324824121876415363049477069746390620913015899128606412380148693936521077887789696176581746946849723435306721272996192564846039603527973634107731471526538673695360574955169635484888954146140301306530900045708469282063949018877926958913593682621089217087956020772130907141700655841942071112083578182121191453995710608098803346352580868090563041505047031771382773130627229124262993145127761225935035832373601189567487537072453203179066210550724321508190924773557455855364654880929761569987603761311529957270425014439951940591077574343935593106172949815479776390867750839092144664774620484110319978186573641005208248099112308710601565703955386568379897843340969878585346604188707936233188537539680637926067441702051442414116521891166322493323622071953007164992828544503546445550650312010099033612458992335984505488766073985679562756989413256239392185514981461199017042145027314607396928779055098131085762398630046081295536912945120717459293289784730134945411184739228225630725786672707642642154279635424602990951893423343225678281802975751768357116364236724367007650256542767907625967739337119083100982999775534239494317353425036361285348091703965349106691717306914440193147776557282223574007454382617873948871988978659765019776800441833811146818869006620983743209321445641790689087670750427406114362583659045808355314769134683156417573321099463232894365730182627833799451516855157047408991092289583401594555042988251989736765832226402456127522582228752742548181750080558514470634337847977781079713921777793346853493086986621908628609359456330998862830310200927675726638971404075323389233579199027705811572479174612669725156431718108304688699307525042860278135506743711643361541321260518708686478892809174809578958522263051874404524298114765917974186960616495410902002507586240280715768450018107093335990378077719322689538780599534554565732180132570816297235331355520839238558556677512037131618214189397310716169542367660407868634375321092160224216899605970719219329219955915979407147967763430140464199112686212545837503285356159524237080415259931823343648263488450283828703051920897446184339692675579150495579949154013569848876071753337808548344985972399564268813828036022136689271698182093664968219621061847670074483565933867368968160326988267242978479853320142874602616273891494779515754836305558774388346522447763658183552825601508456538454331807189746415560652849888630933205374629080102306778267270865841261044306088956713771619731267926745008857719210989004914215712660351201746764501159983767050647234687281704339349999210600101154045722144022249142604315488574030879690326040017310672801894638545788610998671597445525962510265321165981390739510468208831982825806373673496792912233220388640965868197168017241081775019628595630525891368807829789072743702845529405795973264343103216327265640240090531179787045794605730570806619464090744237640190691267471935146483878386547771547907295106161086335629542190278046131132646939497808092670304173651048507946454064532707064702678868610807122132125265144474138943205380763903640600446994841991684847545106106627280789337850069864443948874573896019335160088679362694385998920923581754736495379444054997287025053678715906761934442934352383641729964643204476221922826269416872699641902275745914310818857420561051628000883189138540756161054428466966265414833582803918275898597992757507044663057648886573505509518536234131791673629864915668174207895012760686156818470229907678650978793880179588248452957373628558508081027914494025886526086409383283702094782540640622942182598069876151280353662496812472525701489573655795894896572924910169222429781231707672563011104079916934531255746180112065175224366857779561370861764918232083762721861436463501206780736280873969942027322874680609156467249359474980232464274854618379887647865725421921915794682299737957313952963494563214304907333038126749079433698512962647268643313590571706868614882789729608180416935402695477520668568324923994003154557840224542247437455780729689125947211126210690555651892246889191502342472726512610439751016124693692963267818731529929054423889092874304690075831616286360896020254631659788082795683368612893152588956136229216300629655249228924028837484700945438822543718264990647435550408254281200272323204473665032226119324603925927287104773147275356229509673312162990992303511221109739821095962071470872352329861004388576202729085332814318385582625228133706523594894886015703957430500850852262817460800382059826407530885407816485128014943060429104165813159503737037265310021638823979891563857430770540987502513620397071632511026774141388598398510646499802271291423031829645459590446070150385787246898688437159721992953769024146547520766200389110908073261939361937441198889935054281659074217051168214263358090709108356024664886728840440697156840721271847145136953542651311857453481001237122474401081927831203259537846772619457999499828232389120569096480039503639421719422818795947205539754820745126634003968118017645280434638889604945299125017803986341197397599220788125063170994967073844003940624166182361044409425962615698084189640555918677076180653840238312790417347302981565501763521774388624741316329660022066136082768645607657818714020227410748596918804962628419298055373985180013803665099403845410056083865652271507642300447868100883715303570312871166070618563982381131649924037965401567435072085568663895936143450409079231002246328906204611107399775230469214992845973950603745962859683936861485901588401492548207979927895945188691760072482811977337355582799434161433019099858791981005805621050381208527595921952419173732575665370580341078459372781770048464441806007357807794874480436094230375304680582536570476415582299344927376609922993678067737333040564693784778176114035379601726728295852608267102454967429289993284410576897668458839381657637696803308409358693744696435823349702184316387345491180480723085032531989244980749783713889704501038901261951714548883973346087237916166754962340278901423726473813808144511008244684521089378926886157216939574417840664458509855354782263912127210205913941355372707011733672254509435726941570892861685734422418058711748106630059576891597260146944773669114188855914280355633147855542849596458914228773524354194284004287366048072306500734864606241414952825596250184334548293921154603591694639906004162434028180038458476168563321150946117715842992227145457233016685727002187912927995422999179999876015090843043629504113967820219383781883855245620344619050969154199199093184789433524005467695778251588242159346817762045081655397640567159693236023215466123949028269811659497381577618157639239392608569546210012604084761405299072417102595058364858984320847501914571836622646087945005881093670214570727878605511708953888176028156050936488080071287444592574773817710672177495784430639430115369485115602333699821063808920529538547150205060524746337574407734222594227158626628545679147647794124477484771309260765996293716838188794152451189624298410580118077827070850419330110112763031500142421786185907900325294334005285428190528055878170569106408305598162662198053475163890250942907684848745909091124760253302670190885270739029384417649612312492694460619604625986008322486880895968985216473283356423300162214091725374785324211683986268022762072613687903052606120945653272230124899572354430234673564920706815323374698779788090340819497972078628138492215340502596826208889828590540937638077166971651149909038896405871726052229927425669071077773022870641122283512155597954982173106674003417986958054503484027937549739189247255989394463495328738270656069071711566077878336308004148136990672730967245329898697164369591342419089197434302333931335701599426759548639240304308945247835153946770474251247045417951088320602449212375799956465854392912709537200154570446716653691002030475133824692565137875462690807298934825790429201861930716915373629955934888960979703603171091931886934375007419852207751956657038436659436962952112331958993992971734475695814524810066094354270441548031785742684167856811357220841535864321252494226637147832340492311238195058221675582194556407423880584407051469794227509531766319122283306501088100938557442200046267154810132013749019454482235761341103992909469483963545101085019213847872828745732304259538606624855317158299079382925321378397071746154742893994198337659192977230650548577619052655743736100057167810439374965137592766125983175379156512262434579306367576590396296686419466998327412972012838218642371693691334466027667980130066717891119600851261378311250207881177547296715897658510973709057009034068846411720612216339750346162025465698966972419547466907434895526407061503398422846308110100165172094168111787542446683769136286853763624771282448544988217933818326231527442878999343307633669752599379185163402154120412760793958205985385712930608888349355680870195670709302793415755733304129330962683249908675832308188156291200071677757642712278894222458240738820394981848566847961756736296529053139665208616328037222713509945881831732193459654123396276809361430796883570621692749448538007399937195799484846601390295826738376393713518303735532910202690833680893756175191222314820054533089272707179700404753696421768037028995183739949332424162296543867222573132241835963218481976492532555458952979793782586075529585292246404656585318691489585280263908374861456400613734958487774153495497609691986370418195204076938492454905965269235838484226574466152694859753390681952860849539429912848891227769286483907454333981052201533961824065953415486249170193139120573303480550174232203143631519104336235945924029641244910496850816407738066917963008938874997734069526444515817600884025039515193090541948639717901279271629127354604896086144192716006559695107036779467554214581211881937573640129732244502270163218998828515955879144724635960967291274163679965291043934751459798494756283596180064770300141350415695858264811464411788337917355594330189767158357662305465849147208635471183288393643669073442036799453006385772989924366553344654747972935353837689773003789323988640926449426737846178487407202335216902950865185407759598344879388552247737044850508232753314126543961496384457031219115102838341551279715888813901572937879404283080972495986173697254148946447827193158856864965889550630725795031448584559154081433081363053689712113546970108358260887052192141977837552777259514571931923541216131248352104198880314132088267957050778258612999519924928545059826968156211796217731431329848567516057875250222287450455827811641376924661041598800601671759933156608262623181433555114495360069571725935500706135313480942298066308976106860536508597194400407687364671129250552219958140997011290148003562699604644776735294325977846779749064464086980448977789823602960964705300476248484762390917758525412606553741850457270099666775293704819203815169779129052376598659527976928531871044605593948028701173444096566826391848417836338497710694692931943294786341793252764755604402657804797053240467112352170067160602732444353168282152080385151093668591334563324362550615910861413478192169964049987487065801953185692080143854224953875703217837668998554397111024512344309685940539288897467995015516607744378483578007108884579778939560160359961377536211475641713239181347323208572416920689764831528743047537207634921733824824495640825148084345139315629246384200127297329403561728062521754886664353357421724819903988612070923427561760824352328509395858371351706946062084137361488552045075333546156360733205539858129746600424020451113507724223367375082534062536669495951126952267833057105747205051400872713683754273666767641505799058246890534474346739348444921264839528243537235811371244132950429468476219882579284192281842225981843570184277382862066435656826018860275125897442053070952006860571087375853974090029920569517799909010135175909973153520978886991923438502158467712612551445193417669628019547456918526794679288987534431617079525098683206651567336933063272726716952907882508303830480605006539071491432941543922132844122053673761836494920947474197828641698769972180684639691782164395361038290744504070098767279583595916370309839071592585645178149616421534033622327193606474261121758413471765161006938066375553296492822439547017827920280491754755635124363845997879343576192550823008521838184484551750912762307010721010214165418458623924783817356035962208895848900034264213562186801906502421132570343395908677806141551480309239779817416380983739206399761375710316623932767873124991413843515677991893677745423705759786810193472638577539493608671890224862516855789141040219251798620597744813677817198434284468545846242540815844951931646121768793011300439074646516556088370456820486878575092336100468080017793641765477175965500469472137866152259189144095690613543418999544281114979417272063457003802764993842791268269955297886301273970351935471892390488622131044683437010149740266829446648648263755833126165170990332811122453063871892419098323463850087422117591229111893070931858227558450662040698530192330976214667771093348527582749602684612368210123085269155481748772628803399937976361851581189245385591262131936286871019816847118702412583082765464397575454751258177043208789264565005781488069588978005323373352500095954642945124746697593485648496541529069327109295617919174818070004271104444196247568690619558599481669653140194615330301275792823254080252144716975351501494623599424974920929964865817234426369956096984667080844049158890213049825870068327029582024070408182385292821508136234375107014020602129964064114069948683875538257763076251166225769465325888111314822047965437170435268978165149588528559320820236037060719451962875501572425450450606164758956858331867803058251576467395682398717751270241164345893495462468913038986231928523822394638757335546770550023051458103772754561333811822561683300656460807516874591802026682673299378138205776556806474174322921093846660600128939340616663496305252900621647103590578941434264181382334909827272146111417616961623582128796556567400402262784266812786006730575513510391180789664000956718218599768509230116104394960913356113822854097885044632920508214765590256358780072984457764674858877890029341722262566948992118616162067820609055083843802798296700959316615797845478162801082031847178669240531761771471022876936296823213879027085103161060081909412774320381279563169284938463953218723440515853414958452517518342114971296717139192565535823800602881202468886014492331412446082732650402958453070413865743006250195453232049815965973007683248190885408069501735986980130821995146166169942394212735521537162843121701312353025847854323541571337239449768897472691562974197611279031633295569180269086588715277703989033711356656583286528535332900044651889446523570818177104665999337832370740975488967176242544009553023917440217461925272496381297602632947412532796154569330109947105020973463115137900711240679854878396883141161264687839926285492394398866700034497594033631185944600304654441976155371093312388608174237511708489631077260967591877593421169760450724213127222834607060657814559297936582311487842613191516034528231190060317463388989684323591072301997990774669813567107064925665362228622449282497773189356908226523468650918217802037050052054208445953080061833219053239102793423175916575890084786593872930648120421516795290040100286917063695482731845810803160506524158221342083972743941593712868692484241365423601362457175553214752501928007746448753948804867482491246501981760643610119180466565187078220049085383835839554922630812179736612532999277174137286837558169304337605551108214877947029105841547071751924267964696671609159069945864406004246495056085178362379186348540521842344923697219236063166392015041940563157457940949864693923176416725022469435170759778493357959102649164505724352285190283359984744182830623250707348819734955968590434866284771100024307475497040464888646199406210333571637283797492141175119283796575482830510162979747720815402868824086164320459496112221026533921988526628004039127964557843850825644583170011061345805089163951578280814537565812491712917976819661182554122229208748704763588356738420580498013251869807676776135353958656793445438217856828290384615817917730797013766327349626018826888016670909660905834332501682458217668666330641818116284872065957913592914446435286306037520985112075429635037765231707734110948232265552615222901921522435534555635954738671119980363602809930402449455769702480408506419398626160414681575516497067006843512788741413739733610284084381225885692235044492197850385712916836127372072259918627954396426160185195803126822199579197787901407954861371292688072419957080729314305823203827028652615292179008777040431672327320990855194256801602177341642858344297039629606427279658923967346694333662337695063460969280415132419096415221801730748573696363104083377583130278991400772431326850154896413781126959792961797033292875604019866649272831102698410282721307804708440276159616936286357489098268583434305040904021201521204587562331649831945667835299924086331043930871697482739529221401671236382275132581910612070480698579018324479194891245133768620033642649214384994427904824737605607599191839477093914595672059809340735898561893485657404880707474801305925635019396717599813801240068549924370505717447896752470417786193751616128816100315189003031480451537074826141207938835603685695457704334578708797730248395130881161604896314872386683838299102163605529351608681360773316842878389876474395726213828774685725662317087115005666550832515628643250059291644075564551996293225265388536719251109196107608006370156053418391914570149623805124315905909705542831641217242522592670606068801297564518874487522844752864372307666439855465358337174546819534383427517138033028887228711801410691495953057278522229154671758020233824408121565264522552435246215498132714872117188208275513830181534409064761784240749956920456721750953428640378844196842271365754166186848181796407859277717643093300342598103309461634825615193567041970601957091165568591574191262077676924242005091275448562836282876861817854873390690706324309986585960242427147611734570000062424739864276468744402482201590666663601603547563436979756200990775152035502735635558845972294049535680364859169428480454177988202608817810949071471781814244743074376457251992568923154604752263653653867983342430274411967596271801928356656095331031382303586521527311372282979531001532289695469854084505798944527847713614569544725454699694589128309106535197330558846517103547608336107532733673150030040015641444252105722644155281257304850688210597019840746028560240014680284413215911643921658104345566174318920557216126393597046150046619021984211258741219383526126418557844284673915374650175949797007416657535382054524327604911625610709479050228960078107331758419356365047522147084078371749642418736392698815358128188475997367646438361135457505853429451766959765462233668572779675686156358404140997299645804903337264922389774698945736521120208542555988402888345599142993230074569029952783202522856737835240413440846108526160066215765210216777327803282364551820679222367416456381365834667678107281893902470421192950195390380752606560822727488359562719313880317532144508610774726032045381852406426389000649021804181266541999496045637313983085708469800953523962586269419147346316984195936034803869462490430228451502733110595536037949391585681021555507702713542258202624209865689915993921023970141303379777743208638079575594447057157860690998214281942544698702680815456375177380807032952174784971481705333451754189714710415114127713763627673819689900150892418151557174734649875473251933331245814247106567090828546143169928959151104532694849380512808080570224467465855107562357271179573067287651385740443403307878800473491871887308279973383055462042209629997671216895949349355613850428584738654926618327895574874686122811036168822724106030370647731928791411152895671064595261915832827205128524233411562941579702605660237308495779773724952471204123089095374184167339241622179464995846663874984457517876493557563033446335629658937387624718298788080676861985891367849391004711043879143693640170261052916477916576180313930924052522974780322511701542128590297221185553087731407621598099859938728873857791282185013267638397496506013421781333452040738704190853553206376653202415655725443140213122286256451476014456612056295148167884913015992976867162334230257196553738869772114439021642309928053512872758079279491356403556958955215106330540795931112834799074392211249643051630467094558076866965009952472183986029441861341401409538640696623736267561088406297647444321104832421631555470061969196321829014996659746627114721512320421939893431594989020022892904763056856424945066159748059693522784945563241296835506905528937388273555032077592413999230265802033970636867610162102598486889502321438330248019709880384363216675719061225110424802061979115411117131821454989732093932203769011003476443841946503479299374682660915039990457498053416886454646307146664629658836869552367228357870924609444731676630389330050032799607964380548204361849886286287425992081495744000021734510080205566621981804671614230565898941116767592468779639008428493470585177847323575892153766236341512720878919158121185666070118668469297496945269690017097596694562806717247859767335784028498853409398356233994658514927765691413947378894129295821494309117501496765656190226762086344885959982153069136908898581246444512097644654945874561952773298612886819005271356517731206190690828225044304488628504692926219958428822248999896535684688663713278334162488025227411873796273975325422382657432639492185607593238100145803016583898232992892724148932654161730406635163361874012074848811055665837600034652416078270682317096658376103683938995712584505267092472450194124015861761952960592939235167436927004050928549272213678344356711967041306814170641696895418829997185828232528717850366125690867819837544935001511748652494255414078376425358068624639199142249083487517565507196319184112078240054172947932073530143942234326430061740860095989294567929981442596185437721939825004928940445606971608243740490958060533524505515673441487880068367558463073257524829509884613796328914434277088357046476006104014013015816938376594379413016191292952819677713840355874809849834563761431302971581550729717022747069182289841937552243695636722567480691235575498965281008501612264765628854004457367383345737808959917386098767251360578564564727732620022474808282475071427695179985102971779942490282568756183711473606445890551162088998692802858861241176757020913652628468622054920652679083468677504756419743909944656122871028361122134676516107727654344930200359276767428462952891676704149064896226838569425116240467477286295102833849061500400991995788221408519592090679123487775861894474438464585254587540621586103448503069424724899011133901565422651526079113498144061881674136831579085753110537194401536882957504108826180710011728198143047194609596769311896777560840993686894212811759823083685499927337584956966321553812404082347827366045859704630816180523687274182289393144053676108565590807857439180062558424257775648827737895297155310987755320699585717558589777553155574815764220452277057927552563132449594007401369592029504811800757601518053371726668098023415023122604532486669045860517614421808610498254452878121701629245803207926572795667436003990323067502840030868738670460870579817806802803561307370567183134869157319516555013916015059924326715542836434637006023529777619952018296317121846007863464601831591527430544324012314186706793177010258861301695246632138691023712709933509913910486705942033525593428585305816478682747399112920009844627896318126298441016327354156368352158239172207444509175005094299834634403517955242843344615738198404666518567900208367483743117040805299838765050312302865248959403267675030319040120586047799644252348530143708156408468580036865839417322878472685028972406949307923645363024070301374709051782066865983738281958093276339726176000305901560198748280070205575522672978555190665124843203655302097409087240332252256718415998005700035546592117962003096915636921218144999755981110445595631785646879412602602004193698143607377279159162067088280023189124138129929200080787528458733255582794877744853740830418203294450475117324185134171243517714558934378025812459552230895456279123431756552435723490316296055750307793287599394893341476384249670101125312534878427290408756780478377202557777933201524776896591470019762689774367816994225632864147825598613157461939331153723293372274341064912749832136931297900875618473672218675015745223155525709111862826631796069608385839376119769269562336671384179345159563967570002414884689693951292185493307895078164660956073808585142779205699862917809026960543398538558795104954937471560140394662261137131711786000186294916456779395465424713983895060058264598788323464191078966277230824263186235492802527781482151227313005160697119905966812294630073208905584174252361214780309622378870351042033509933274118817637899302581980035865434350599361247730106212709426100050810263328644718546970616534033118867982621707179515268495390756884029896558613101168768526704088805017457551670193790718870070608174023888268416802085521205269784580516726935523902547307200075626044580109908526962501223945612946944452681359089031013926724403746224215610503773665937127400121439371929580247552983635094893603427463205344777604319502340782581638081900735961073304263268095627319017498757959035473481090350888071115794648062023763826297694362542129565886095888744965047491860080120472515057677155816445830574682170044705055546851751204339611140025172073045403156126685439431295377616451522151418788373616124592220696355146268416966636146874545130349002431204134693214850917938261574988936797411071919349029869078967391484183847843194149433771535121990839710776468278088857639259915290141238923620002461703540738603733253889280255658970991453242389043859232585160139677194961726530301326355482451855540253347748989501865349899744343948428269787907018702258953070019875691152154794388307604323132743528534280753018653036382859435702549453258195262686963314776892931490810617497634033508263537184064225894862843785954435882819634119212924976571204020305885116457006092184399323659573072024950493812669640982436588154158278292493702818193661477441191378729554753255834470549630160431407167423024362797220140230416614640472299762523519663070895720563813103130773067778272119785333441493982819990066249864485687649593978963471708219248142495828054512453051911277387562177897271185072985365553141695034476893608839237230309576447472367119610866369357697096719614579295392795845424927362373358527095897987139593455949584793990404830051943393662491119888544449047395681262732023431836948065307056885034029037896180855326772036338353908400966357992957832048164929308129883175608974413539643097665702574667833073516949099445857384905383095482415345675197460277046141111315445619402227735023565854808569333388268875271048798268928476524881200472995022081618445057590738679412973939101123982654426441157897721040935525572258852879623351102588485442530091439965308044456668921537782971564692302454227958270920911916467733679123420758467186486480530740432521143629001985736829229498694378306747822548507555587217770748254495464413448735434640261484151980423404160650613812072357167845546481533637819207503820617091881339155214256625595196115045458608112740214633531860906741329322358226389087909831693419023204513064684271539528886995126847969270972194633388840647955953804200809852770575875272435739601002856417141044772409522381242359874619690578789660859068546383769194197799825790955151905719171324872508685361726669313952532663256956045668306813349283876373575905375455217523543099949321629156527175876981530735623720523437587031100605880047220756512359114584027485914886324552132186486953282763954009139468139578095086579695783305173824845469555344901424035793791056492988201781520364223154900393618242168238574268868055400627858195993980114152398435622276690510857686565869469761852417500748204981066578595705720695719890648033863171643660397987081497522998173337598026923405114295360350324257877817881164797806873031762681463930366198225205520881990737813238736806710262761603449496176643179041311604899519180904467351325410527795241836423983567051329889978461320556498332664106948658381091786202843431534466426160259732479879776384872605181431771472523378498347676987623389574660882396858790262382140566353728004707029459729474869184442977360621165578782034381679213054230683357462570398796348038044342231143564486832277981279979403402033492457067256820377250296173243049942337788335931098615611653765596764082961921186380931222347896735483000493195268800352831274316963456770444474117116713907172305328207999132401937827407286075008823272386897127866624396990213958675479140971042800835440396895859645112164337500000265438983763347442758786554322674307295423916741105534922139112105923653340403945356335190864553155910610247879490954305907726911315434687129260487933190181433623786227862138671846564917268559554730280414926457009116197255540543073396238064419474606930818118503330311147547640227933082671768161872870870786530193202641444504590815278105766659165189005611427467295880865326885873741062859574026270189971802383175703511867502327551720095860553638812764646526392876486909145096770770730698110473046164048324459484485962431132361377143313004820561481434058237124642588997446928041190728769424976745076900118093147144022903552802704597172493892052045162095152687812018167263782654337700230134331056569143878017633565727929080598637351274076039381363080824565754671270082988937822178248289121256857365131032039159993553287511585656869898754631851364260090331088984687590704702013675013031801436452959377768925204442973070652715344174741245571722875020080411900269953342363724769191699135927442312142663140798710057196615397016640231951752319069905202669373346624755072083460095482571386476958149706537605384888281221679140973353333825600517749063115416877772490662915188281167878105000776545506973671415104726264296485132881220141183344053976432765680980027019191443836623450330886556481530972326538425055488355228322122506582929699089802568575767227707692843652944135803349876252413047734551440135058941441116553716456274077848024421694281016442867167914649044491467756334771420765273568704038672625661350182060583079086298714345736944654766596965359499571043436551078708288141004871646967779244970212564078881954665979979979421364622309830711738697563496779555150522512363800935820450632689324973539477739713238917960214950760267916234216979766817244836237244944792904281848566661832351319696135558785850465371928472472321960130101965419719255170034580639488557630353135924776358952816781601864568995810529299928935339766180613439050716515114536358050252178125794178176336991264288978895846879220533571125735768184685083027019365226808454796542751489349165366649586986758702794655844428765994648215574250728107569311136723900287397404573777328603258920595440716379556919383180580833952272108050387731111323330798525243936873026217980640748861934860273732402775761968749606771875591718729192324556093001927123237360767203605945299029534739049782078263800512547567412870226862364771800608571056091490104450540295824040978160761514327309891003112683062338156649101752398732486664131798712756097448109142973411895311186421166366919326304081167454016142529503523405481505040933975826290810004370015386615172090371422895344751542957653412172762729022415638974073202075834724414439373207287144976810317600010363581914498086518048699936123203692087119790826872697481839705525691440845934818158821076509131850236462137736053049849146514348458709235189495981548915214015845797897543754129006607670113499270607231987356797744251248736380934800719386832946933524936255730652952543298402896452676835282285135614237299992183125607456947137501385698871554341122866839876199370804052881317110540141188369756375352781436255889903601328092511902069717979296374273593587897483043047414661704140667435311254885784826333405682386882239011807731352667685610563785194005801501320032446426771141579934946946428033218704724482089086620235285890985544582369200330760971322756599694482581189926329868383584147855660901489521270059414504147845484504191553974525831760583457236167969830900984300212195157717702660072953824140338169362394842239808021633861267904115103874623223773149071042083684938302241328503586133974746359758503924333067211295477063393175961994553386539763749778785384400544289782973657784952570257600630832171727069780462969474910106703609230846851166616325701910165996313234853230804894269882714564577768646023470343971857648715580346590797484505784842747039974041499576450112608397766303598852856593251150708055651811385350273741487285726220330028452212691380620811870568446010641759576980009096189880417158838042489752517948435825605084060467418045694340540560507016838087120672320951723267928476659144015601385437416122768889080087082424967982366104379699311418469420365996544209917653117172788430575983805656234850020455638756556639528416974475248643398652032382510060059101464425714119353485330169696695649771317634224338139865239845868694102488375337418924584897132496436746417298741588758321293460445992329843329876869764397080085870350773325121623072885374676393874139696478281153784784537717461653861779914639847271853701983921789425230305135964590338419350355334305640714243823738202903062162524407455900962786810359864693526529925994214773265453813434018017998157662639183592082022156855573926596204169861520354728263050789135066050923239927824855907900018142565135749834949982424830660515857297333261194262403408484787652477447225153598506563244604865197487296403294754302249048758077345156312913381486940820148672352181263476851088423301913554578792779310934456251969092207946569537901297278863350984602746782537982902139953418841890917348272352650379306066008712919325326605544950032717037330717853487462439691538701765890079857069507628713223953412306108384097773848013450131110700178783856855635868164742387105510644057058659834759794107880221291696538376085848816908148239297805843614566717623382338674667346685806944898381091304656522337921479501895181002227806337516018385770669666269369546193486738567536272693655547519001893080489055842020690087509028601723945445405953712698497212468548930840363598675607299530496444573339376738253503671086645935161967548006096511057751393787149982052292382860964291825912534968650701051249174617471586539722813114938151893493052874159799054992576106241559395117217992183775575804758545505163529584623497445983649048872957555626016622071717660507420540079204418267262553814480411831700700769396604503559025742905379437998443854896592921092183016317321813490718483348144186601708487570271327526712533618806073993506452704270862558359943231690676341277647352004950490568539924288178749085545879218991225378524505368102571420576720079592883575400484312838595875485633392591843911524304971200196531855362840859926622650034119016747226879309244023778516712229518037904675563881081094909409636508829481433347282785163787472595785258478326080315020261775566254319888234772019107556176880718684313146083273221107825033344276936358230242644568551866030434048691940364196239956032122511015397839903497898851299542545905702794522275602036337011425559143305267567296422168425640021893932169114558157012173970943882508438826646574826328512021177411452185306848756386607662456562710463111060171643983383264290032207252576605888123221653790100964705632910836924242181269587037966124167296875302740381732884033908162373705893684807724511747812897052907916473703401374232801489506165490486197954801771095405959888700636322884924150997649345928768521187089656566902081353856082094889104757751429176347269089799179100845658443331827075484110076016254114540638046365123551117140147585162934761816685861177035015968127884408010723773977009908090678860834492636464797088072191343383702456192333347369953895398651261693353226981192681215195037485674550695852700200600965970405634990168090962972098308285010082145681785983622462926514596776745048902750222897051037269626494214205101092598029229863200656522883827023085791568528570522863706432803141608708018250410820429850212093561819936910360154046751308584244863694932564160259085000198164869834681180889053386884943382673131521432156679355452870144169280660124013359171033771087670315056915211501159337536957321130706867482068427603525897612004123365645831835263257457483906391868939143449631935063647032146295646404503010769636346849201780169398841629045572577585141395625692047717100357846563569020146002672332768556207059523129990738569776497863263696249799670988947874466197260104353097876423699609899559495155619907751132864083935161402587606985344842349687291463119293309242025269262408916639175471432693072437847671883253325251030245633191187978266475019271551252636938008503813582926592188531710638369041624598703997304592499794738011897990014678567703695442848762584728349123921317359434084201521495379145250356599534424913358829670465391141744031497745347288486669969270389804679170863837773476510106915954907340657528788078206897744096495217240056199649701025101825928946431544980231936825381094080969856283495245122793072814328711669083525331993100981465907294483415705570997441882871134756921234318150658249239066335552360292169882274894202851773219661250669932914961917907271033403004582616533230883213989696015647913658399715388741314853467298870509646568892382341775266574386883435361560646488054878651946857517320911089629929349202033809056138528615366529892012454933738866139476292903736952307529001140218524354357859037675061418512591929645566536042605702446038932046028522915207964442088718451475537160724093037123676070487077818048003542269076496792875862065431946742638329177206986623350313408820701786378721989915521056851417424273588344493402883023154648847599226376602728004373586722082132660721283100742157390010164534134012141790038054069311427894574797943298212045228936636432563996795922275524956837190712665893349031291017599717358482911265472892950545143723197644662759517435612495503956310017129075955524826262264398670209262221430186782152333964639421099463757988412444977561040965573794102398595003132408835330338582288416726387193975285857664980221081230464688644016070548364222771002490103500713539307662340546454856348212756337236446069079599440719694625918526407703923363677133757420044119395360962380989618122874621748293397343044639656081404480192228054614237620710524998133532305621874287190085358494238206630132326356230310716293232646102913161861322002201304823870375131290434304220553776970054353591587588138253125835228426795365396365058885367877270856224112225984233377286784325157332577198194788301800582593341561416090607032954597953991971078845819328001782123952037384869740602172863290037972774522251914918496483396821893033258446357685286677799443801542863354128104639239316884565574791140659790660594241756982289378250027725933624881983809832515579518013836027790417376827700921562561734499612909114442987688971793055661882310200865297824149676975554719318986642021019332331089966812181256354773909102057379813359832358761985820678346885790365685087687863830064478089323510777041489131426716129213284924144941879400546367404666245797939126684211735530957559448177150045739345073946807798093334824146249292586543864975435180935859483432415269347571213344650811057867900018604871201812512838837396809650766651158599582567790330291794485771659574227235095588913659295759976123088646222007444790468003927470865385112479028214723533087712132736269162003079939347289626320055930095823733860257631826767891432268917426988395875337703940217973822398433153166515038235088467680305821917431677038203627710125379726657677282379710553377580617758257476814545104388384565356966574565146637089386709320674142297561214764434785809972466121834631349331936429812669438314254052208243224182638606733774382108340095481936046945978252627943395393673894850748567911058815601202566152802553170932011481982702061713460253449090987195406648645099525076611477752885899135417552106728056227484069070973496105873479625872967015534687384160578437464767375674028657422298985461609228804366917927212089062831025734441078262500622720400248997309925894911449959048584913210002025693387229154672141134325363253220485973079899734480043171557024318458068612879719812367305153363391564512322837802375421574393975463994287230928419731557322315993449136096296952486629416138376364059052517831012403162325780992391722048229375807126891953239667376680895658964165150617288212961779028787551385019393516188361932823416994314164309279250619618454967732551346082827346472856017562609892675740021557062547011206572905630617845548027993428583455462261598754719568199231761767900670558254770308363154673233025536386956412656766141839531084984905605440528759499026054427374322947866898827890563791561772558348480903075184356732132127654792199859934026387939850977525646541571252702993529475507400472719269872566171126584686402987053427392787420485035809659056370655194502146545400364415114728919741293170535857569461258132922678348008750213571472039299555463299668293108628324170911697481148395960028154912663189933748233917229152075141282242943649571755086524187171763323272370644539725153568764462092256513563190299043428470434612997039879111375227977915942421400912201610218392507904243049029265826059665897531742991526629207957177271263507186440741970316653118666105032868326731635535176645771340875236957551330248872030385815534493243999927324940896688205361455985506611041796135611561824997342694497654896951551156775702999304587796798408580035243495260473406070300251967493668088757995426663595287388345064981901992599299182086401565570193885005398996394313781982444377614353631167972029814603869845447555497489224509916288269522219662421465309902361268141198641376775081321901837734477596784803499747456705538632667515351536954898312295046619827067943852822767660045543804504977279386127655170332918877799215638467476132492461820667837717513054855352132556051985272172854029375989498949946210003462757275687423056137461071547033422041906634554214551380946870039901104303941411944233663705678092666941030976023273987188888818056818524875111863657251806874396271796921639523774471341026524035738265937314764380829308800792242493359083806475062418125169156551065622766821467120273530934777107667681848275703886660565528220271336183261246629357514075300254149248059418142799244323825686508976176113574839059424439934124227879499191792956605902916365648350859144848384445571268362786807403716489164602762549897609146270061176948666687812446442474542418285098623600344820532877713751601903137270940109587396003079178181928421026013654454974630334220979498056061430217858150790274502187027989025126353278677047633873345813306300521291765981334175328785898670789892558380598473643925022282301883516426155923041389339803285262281152723098431430913170591366670852874135170076013269752094673554326354950070966356927296349317633957193933482955476174316415789703158221652430641351903914092901656545311645967611504307894047063842866066917679314849134725251995846476075914763502411402625807256060575537799400930308273547966123182764304263299011549380998038911573097067669696978645454823146378866093831785535892889269711796224348515736832984866978059805080932049728398087191662109312689018665994289501081773572277188906541438453329715845894328850874559674503153295173820541061747051782097293413698469363737917426066416726111054654391524571238664561009112610170178960965122195269362792608790386041986769538333468907354758563972546903905230393068386540999844944546019605782510374495708769244463243416063376237937118928256389921602880023582963267716547099477114807090137302437563346823047226655004176957981679027445959547310046190489266725817725250136134677125181363522585126378459064312942198549835623264039401883381007212977140630628406857991950864633392413381305327863349705352240448963591032795225208443872146681676003980532542359790261742618465903345483752067902229370368441510604223244357143455533772336638420928395220616595060197818555720124536566450267237413909940215157436401709281482878504320893419071206251487337976114176906501945531354748044712456098854889727298753752071792325157355868595599341846702013165282092250673675767773376921354347466019016991398526411099348522733230587013460702350726128345238544874826566019400727962018213824790663112322247533901988195992699451956273676714324233495183688231891686261752755495519336537492957173927593493116125220833711257330025202754584570787543941256423124744129861878682409862944675111614341019172087065835207430287578605294440581708304646146254128754115699415841464634658997350172621800941113143171820855585184095916766594195755471226104279419793292751770417251933492590848190969829686600464847345708458739219285653364605459333563395196783353290812779547634499573700494765097036138657674245235278677489000316199124662361042399781129415601689228909914419222060359935074278506117960361543098151880819408140248267907892534300049900258779635894444242151470807941111418688229463561440100644555847318597134717363484012213216437069376961448265557636764586400758025758448273297809157174197168631439835946230389328552963478078493739984855758289133718651381343415520430531765590791658148089301609923493652742874500682509743147553105692565754336028049261235473970548501337984307865999612378472364671942613365722567738829233667853056724513058723312101084945003210227288075967186755308017557973718309628512260063178032365189211788843689424824873776091632021443586739492839442372967487615204923397879715591253367425965045661561274556941491761540587233331100954067266386011953988918587295469785157297626084021185891667828175674755653490256787522048497087889958553265086938132265885592987855502636436861470098481125499548325622905047778152301275850903135051598939652039898212255208601794460067263768690986105886867144977111080416523174875744529473017255479174075849873361649591333246077100792414475052628656621634619583159358765618884023195868832315227620807730793582586117294750528279055970915121631946996694374644046051345251652639863859335450012635772782844054870503992079660351520224647039026462444492870929396092121795885572785664545351277865068924163999053685333414324300065215128416450223568116680691338040306931011820742229079967127612441919453760861457062777947066555550447700020440429887530781246242408910122742373246571596316034223494529956841762061699418389606089410353211482518037276835842675949412661980125283823646495172506811217973612660653564434496983398150217049538930659249525270926981154692901764598667457515277072854471554539058993499617671479641143955682457807299487892581931957578322303672945759437043791879253798243548070269429715937694525525120201705019665449073354494809195587545322709440382014348302760857968719185133634118505049262852937353182416864737496218166199929462997753390151159277637907843601943003964661688663515793470249720393647977552619206513561238966065681061188696895149625791457374708886725507494021181104975497995920712352595573670764334681241229542848232520813295281489532058686915897891615337650730233744626283037584854597382060794217634453990374916503744786730592927482266344479212513756067941521614590780021293809870703013018058260887528951290558695481946008643798905441776645711840850335555824517832855457946923113425732880367113756774553125566108725490432776680951329207364454754088872280572640259193696471276424159637501218388210788284860006328982407470564553912631756979392170190575414286420799740232490651036569895004309698628203136807076119794162625441311481425561655539969068886597162518170708125943257794067698266650262811361567001207299309732672137016986629734617156614348669760457447563526324394199456379556295947807175672133823091147642227954936847882507387306465733497858052821650144664307215360543197743767490155400182251906535449217999008350463141178834704090609838355261596655176729177316109930786816151063664495427127075187876548459977794909285571355920254161951813317607973981598437188098415741095844403301556669234032626901950031754074852872581820195364788665412085215981025643000550074979790468431230923263880277478132730228551849391151874472389166310470924933947186686852503928247090825861062216428552771842160147761564109666232777584559304653269039946516939582215695224965985353158516777494077528023933487780273625327499495992223809553202060362213575344521402738349628139975065596493912366546054442214052057794479839703289320388802542041831390064468474532950480220376893078736533911764456283425503343415106072607545581180740582263202805895540105027170907247989461985340119669062245061505397768475493503296705771817839833018614846047570300756502437848740039205185097760427804038157613678166373803582988444476027461037593850473776545905902147156554333188245341024221749409414563104800409077639080794879097612099343659835080807214406589583814744139790879675668282574228591571503943196605491079625649809628801198773465343546667664469750732151102110419646330408295882498396427937004605555960019317868321169377553668098832790240072872443009422738676403686363493268785712655233820876366766672259389860594547069787751610146574007400465696168931916330143861935089611296592584407031642310643277495830049015480959198590745344028088393896634916287577169965753031846393263374508922331762019025861056008980719925207012469921564471020051834463464765098988626208740742461433501409178987874265537592454783921271306545252130359859169553150991950340876966965445573904901628591954974478385805782010235524586398258261218997663287221279351688949617047151130721100411666206837401627545858743412221328924080776348490201089813455722808124654309105982239784072211871511337024454475062970585188580243178271639289981647441505217493366902639450494616260476083126179931207898037948085051681073574400310525315625274258354155285629369384936391731286954876579560281679108930936256182166239628965783049700372664709559131934261431072286366080950208728070861167154197013055997527164872445410142792447894470503944447526526994876681489058212633679935163672387038448200557507982291907440359023818210091500061633397405253522345425383670142324445931020327179292919859462414446997068174183207685958054955401033322264997729640901699691829310203309710337862301635464426966717082470609786912610916526755845956507788646675562799757965404637144421150923958974976764038105292426130797629537786203446714977837233913998572315731414356823873830342869543444823325349110516473900985292792699925204713000975619890420801901762025076870434732878566534849878358950508504747023481379219641685245023754326564311725645005920743201250561012603605734028447604409976704426957260099730561657991571999232534668565716560012647364399214547051242004358633289926592603324356743952158436407527331214658956329766107906278135425190929429621766315517963201455727387710898282296523872253553647586701886771904998087587628980451638275139687854885492115594826844208822719928285038205609587975652962170807805491025228683279263613605034957808681659731391719667747698293232722846862130699781252452896982647154989785904642130457529064518303278425189138184225556779049279881703627355009122928928867249035908230717594783013474240650011879176367885447755471406840028704079123165129031197463800056904744190341464941572062681455055149738961631856285298991802497943967546771101391284482058515273631417478236710386635974066513902342996758007840212408733181887350184640123945467844849932424663274686885347066273456387728979644507487780015030686769032959683020725250598389603611759219247831065418591829833885134752799650777087269483453277116498072303691569181306589729334985250069399589196428545130589744484032244951620538312089538712518484706010365573419318341111546301807113302645887379456643280178798223064465155508721198276805616853293036290831170192342857370670104754262940051997652274422098225761277652931589584829671284419508213268839239267395882465747031906431788446388716575222919043216603383526776286659769138747106207637515639186731921608158983712334912078503934682179190881465110215445600425175455472245285031045149616526519325376705745427584621900128980060697663500441347408008201435793307850328213048939497393547169067173785974302537569138426286733699457202720904869650539388378831219983110500461189204645162425104510856438462354663803250057386892062751606560794630910530120896002775797139794045342544688544387679458700253446843182233507267123637515879082420440258694971085370281448593436837475025839132106498382221379130406202205161279386033327397911686612625159414528812497018115545300683312523556669155783352885571007984440297403221517442296491607671625968498511284929942902221140746903389388602584627771505005206591571859887002939728284528349911113964915733618157681372945516040007505061470946334825427915617373665861045044290669095755162933626009312374541635140747196247336626235533690633155715377684369265608842176343302990588823734568787859217442618083040900271827364635297286520208085173705900314219994472454534257961663913083773982730126709701674278527945478638411403624297135835708913893253098800682818786334697827053328859703056448268940627956471850837243805938620736109295720080634334461454881458912692610356587217097084821483301743486516013732996855253627495051473794463042989236463972937831707866059096002791920711484819137537222658496678265604881079625780533280573367179069846756788159359349375473401338393935373389831585763965641365312214478601820224336574893895273046268190462280776599160892867244709254292861320994789825363764532368926017069317527611008063582864938055184130465756404192042546486985131313621113583458770333593409539673715325679406514215593910715479123218306181902274346881170674389070911629841441671309524856016442532877473964115749975249473200047752866764393923610447875582266200332574291810942497658514063908383555500804758281038021596576909931526131691306400387368587118173070599902830416743679301676383507390256991795325121313845419712185115745297757548147320415618169102817774074610891442117298671253458877283043085994094593486295317365722106714516883615146117827569446664189923418993709402039997069205925298498698233042593392839484725631289131028202275308895558081917642664164764856802696571646452001495207792139766463958031042168730480242583991184364783672610263745430670215242125012039568337351603997529979558218790088096716923707479240666103068690154366440271355386451492511347493600691542431437927483336296048245790699174883415994434100436949484810133062794878313444983020509541853405031200121846529393790991475928339419129380222011843393300232101665106697848782179795732142902384141109848837343130331523182660922662498725746836628861394691003503237370576926429379739413795827816086961861221244308454588976132674209686877293663209083609605103181248771967523940201534042946434994083337102009915550231329958565944381634909719733447773631688296178644797027230699753018693198601456299073952675593048360095147999855250265520394919153871876408826789223063936245873101247433039753696800840137708704001738109784716589568991204152161923289637552521656751240767975921015907835466351179991986524193786115576980925007191766447576701670397993667683810337287504376158524426092994377616519477358222411808239993458616597196705596932827079364598646773268178916920254202717138326008017445225481616389191911567787132747217072157351031054357326966043630304859392171988824711162487638093129305365668431427988461004648228503552829283919810262753633709104504434634048695805201446743975554052999822321355796137918628371302368162848180347224489549364297163739680531916872638464307343334305133607100856322620950747274877232695236445736368575905623083744913199901254540479123484253980239692221757149090164775035554140217560928932552940717309763308759228970629222839695212374701228981396739595397966165943648537501162524053726550675415897094030760055505764866059793675978475167861452953936537147482627331408174627301617747684280331635690372640128704929386000154586898372053645024005773711858057396963962470728788085120916627772889730949137215036181832330453795694175237481629914449242209959284260743742910489027932717464221874818008623903863549039760874398009500626615508335800139390411730635765213529948013540298546578310243160336003237921697503236938662048692482023022401844308281666363955736706900093089997539702167732282171458959366460048398960359545070693887996469562845864775075607024081167193449330698941020886346535090609682975979849801474169408877723891220839658645033424150877207492510567087176671002658578785760140798254776487547584632020766451576614155485575735379472486967172005762634399127374187927560008637575807495369277531736652320865858137143963791849890978744764404876774995282965161592918333635087223377678464820954136687933251400559903481208454237848311416642734656442658629190114169028963718178215092779039808851224644750574876114680024334147534435065777302987335904289268561997350142604923226792495261889208198195965369121748435631750605321893835657612316266673316350817273355464991552373347503228599107498458104780869912317457148737330633278986464315584533598783748546365422065390428139257845339194105592338911499660978614460170327138575629323669515456007263947491180263234953225830615772432837225575256776459765334093160246991784137499874149050818612397129583430923730632580742087240005049207758904259266389963924690037515654008103396498940800129624196670598033086392425031936613115862919028829491892061251779197413004050293671706328935648650312336866431721510149428841016731297426912689192518775353479978119453189991738457311736619288746688836756298239078120164230645856870590328221104600453623296148951420529811398823784188409884692659665065306187412503926067677466563157634058165882559500401031538629674793074171633642220397307518800364744947095258847866849914691231588572460897471652407675642674716429007045041440811484138752164572590577136178503287459565336550331437025290064804212027065035110891031791618663709480571498143332726370303580538915530238898229580213673240610305886778511028601151328921401149982634537089551412678813867478841722784420224046212203412126665464436204480625583071076248379351781398686304904290514114540311141054385300148320137459292798572259017780268093052705760071741160935987989468345987930683755321455148581637175565741661441057317943343079734476122915340160811724532163688828030779867787708638931488763679676598316729832223452513586352557753215611770746400082780492912032307351536773037667717162276603721402304012154260609497346997588203593812275415100616641664714333889058507870177307788169341026196020966247632890058153352826968920860718026442509745052880916348055140351814703281548869959712231164833867800524149054932467027245505110775683238874618417558455455332465508761246065489228807502427075605788608324858000255193987771771132645041150924402714241355512561667571151495034146093946767545254099471545873466588722816451512941963191698037802341809288484036152916753052035135129952173405388713917441940678297593729681864119244211298645839183067171970639302796253826694129448093229845368488553709515117536589069050015604061705676456523154035845127300528375459524963515853253472493026722209930578242892805933607825606802978630841173194301081313211366966110659073020908275404750955673491979397422747313137360929725004370641365980917302352163431777361611794152752074133350110860715229716667749678395007226434984599862592889718421481212905291770821552617907966777858033700722348108780835797083470460894021359981667108970485291169082198085626374535868962543775436152677826785381002992090722817427125147391335473277519317468697347467517409794191484364681497112809528440197140062105811089916335617965329344404351443524648786542303969809518654761982878140579922655976853632460292181193729298922430478346695320125147264387355363597360680187984243197072618744354323788464676434233657282812175086388590115671715232125331462255594599944078601424829338541629384095110026905582636044086123019227984226727419518146159206882927361641053362068005130803267939400063987769370366019480202266422302041080974892081041209774494004614153690188547126903586899406619639052481982477233780601897573733036375141008939250893700791880390298800458721963965545001204705338041193694035932167454707214587879922973142769524936058162005769813299461847836064964735850276759578731425417834300198291553876990179397764006519961179872944316117961357033161486966598846487467606085894327276746243726995727685053334452010482780024417663322021976372788922537459259481074260581874113320003161613745847320842551355075452969373294156344132238456770592562437810232711782290817471880842526542209615682332017028287059868222393152590751911175031754897776286141831957146925969638670792111176057708357429367352035843252508345194588981000650406606092981085520557258003987001854572005846910401205667323747488942512727364594370033938711693989060338883548475965203345531843452662858438019434856348079743021451220684951754622071297647594570182909844947648915135269744456051103179932034308532094650481682130632306879789696946974133379186758176992749974243934226296386240058325036963248806416084795379557966088399792106051150959317843051383675300050035287465647308813458596408313227255843741716190296790315931723774258369877959305471626265031702018019698104541413366112744414998641560388171264767515703990735997056761479178179815808231115079204399635147404951321626609835996983806620241752086163151840296740001393162225910474365203161847489679811051898605076158064146895637317265273177991319603426036553919199431088977002837503535167412481141543400848313349039120593784960236265047627489620388868969042754474305027687860723909227045509477468170898710098988357405710409098783126902542404514836236060359185587096758009591544969918124894250502568437200893502899469368069814088838617948493877468679252207967757852910487974845948353351948900891482434427262037005021753308191475875278787646941667587697161450822866289812971994272782843998122028732954592530210464007515778472313639488614954429138601369619183370694839377946369591731415426065155079127072316768196130053233011909278306960872393651965687253812344146484995247000085063190139541956483975082765609566625056639870396500172717952106806436348780302381658147339897520270456802638306094664224886734857518872436646741676058077145937559818344190295820676256954983286588232658161617719832979626024020689028931488507980096698165673165687843683339576717001756870537442842985126609494299746865380594283832052021724102970167581803512279656886871071209046217580014021188142734415237248329807740841236167411803723940075482140797612568310728990669363474712554165100320286967908314504041891680258001870726475210313499232031132784176693589859435090640758907884154566639009177517531471277286268705861969018437879675908182290528581894396355868393943693574450489351926533848551915267663605396795166622234683461343565345669319837102282828557122044690600645543086314439279880795394940534398619336858588539107802520093419762481201585870598664405654933841960514447901164041399581948918552850441204416950593068059717145020229166781576381785142987901844772453872700994036983031372574605964949750397394774260795733013863626689146374557268072088090057210043919873216684966334537203871109983677103372556651049735949852649917092857225553133077608059643501929843503487718318246587410952590097051696129914877640198970616193840784914850867232843439153136375312432344685055845174912815210332235908850864854115106020501759302996563455008746573593870251645426346158703272765487754193118299943318796801091697181325160562863483919934721141455984931141649904567569196633452778672292038584821019495558862007135446225801283293171237072779560843479850152310667323869432123940536618561162478896913656232015175979755650544807040519382110414860345792901212779813818356623282770136396454983981460162192060865953821617930768514212273759011783423721591259315315529065844129819811168353422992204113957743450711671735901846364987908055838453152448046288756043419757399112330854690066065865666470966131885689700011332976812857839078322939033862164268228733004803568728207119568613837268842656398204754347299039630406170170245968581301262380065434769897602629797133791661545160024384101214653102150058413224449664313362593120599723096900335051454608904181410207307745012283499531074064849363827450006883409072432238036202096123974043592088454781490137498148478415003610547938408324259299307590216053017497624760956316715049352184264415342272989761688934557272641795553374544619833239971931352488545184445327446189017637899201254338540667224954401368205309198967038440493135162125712657111256180207412409031122503392297682114335218463787224661381388956994068632073284602006058159765400979259400715912489032747681565060408363122325429153237235152972998534216777690781951921862006785770357763716928764343516699433254477119326949119276771394648565188477793499719870404024093752376457441283704671358188161545047640891145125714233063223630187983244651949667432079737253494604786779054156623295909991174711230368013831649704697837836526827226125792660807314443597313264263097610611139212795868373733056935047837276244891304188769297369683204692847782442032700018100823082886176966945200020738994013955521757712646193387301414842365491965501560304757914552920258565754577186141366913923778211350228010843163419642270762544519981040363170157720385592700380821241169414231285805302149091541169593138772410358932414586763006196768344725662633739774588230284898525641618813763296091547032481336263669760194616340910712296526809021696286161135513738350008480034709683436075805940014293560603339028179869431435380919672381371320057745484314514718637719733524134878511802033863331233213997525098402070182402066049654086677410421862559163246060719993521050859088491852556497967142958728617295017624432846747612898210944280423366112255680262360376135173731105287417764020099861318639759993651492381066635864911335878802511223553718290276492173116364240181412274280827642164821169268666384840379730964427646326679881852497902588313843443351473143403277432488440435569730549757794454216139503831485539172843844857952170134765979685643909445613692703862458215080179451470852141203483150411784147071976854652032987519015065410478045566730875044918049566913109124959697205207488154437079631558890425233943822653031377344090565438577371370296415194600703601773713619588904109885855198117425438687620242721716599476142476631323796096619192888152130810472817731577510428061057142297614317956767854547771525139806605909927643199250346974167336747576255106705810116270769436861524968583175730433971719707880493154597555397543814801548898829314612446605367480076757907182187041783730781807370267465815399894861902612500402350705831781075020202806850257001099449954282284081226780159149923293489402063677034834265685239727737796304465625407264496156607991972621382596811158342029612305375658797163401154377943955456047243940121076219388529601054923500095775866417269692143136903069673809241713782695306984463356749866387942663901677229205984918015193676967469100590802880022385102792302978459972007854981002256270133764020141298974771217902675033532497374281046463529113440896160839515216641221576250687380135639042026093612592010351922314744359255965650775589305153448700698532304017193326648658715149636254462317417784921164568687935031643533618902605992261209492520934945507470522581728901017540479879730314307291919181981549047448311165558441747699837933798899422201810458240971446261983870800544146400266061004482483220473496132027954856657065864219135074402919224039394113121655264605959989493875518887985971390115384048524094748733903937986697602326961461037662476559215406827514783002379160142818418263997727493220688589940540857980883164933100364287752141886001276880790263900524120597086092967077628536241135630341307217849295818870783384859860488228045617363326395615063523668504272126332547419340615028094368259019928320510272264994184922109404622695884552226370816894352105634863156680642203615974037962473856452613878397665605566658132394242146453402386347902256929222283967068540027067068045761766485080449306523135260771404223054182256651383103279466418889137557134216696181259638120000690715690550012217063193854895469872137564794686503894896988457244965491399912305354171152163026138861679787320810900140085985373754349288615641750987767977552074065046708713230712482577073554862076327643426893353061949730617101373425473593066529787658868455943380850776253406678333866399600824374857493324341751246311592317205922770949324920311765171984649431112754296780179911883114117677645733607762446089544817411439076811877449755497664421235912299209442470785406170185482816960498097718163874517100171610491260458469518334392161307926853126041139713217526781904100635154812552343689272561538211318576054588638281318344460724515800191359412521480161859530001632354743337294327846186475404220336142628599299209630676934953205358577213603954731576340350557445677830233481249908565609863867818748461165700626576212057135349820469219251014187904801894542064842635871014911782993740562712409757482084621375308473608497514706613065972470776842726384656676795555023453908023647709982863510925204069298230431488116514780528554473923025928818459338004997673889419228168455376217052387857968686418889748213870006701357023896646780555838625493795853846225517580131263172569137958294798132720477944986951918127231092168275895104198887600389198786569563995828837820339288241172059096565459443101553951591821234540060424164769334029427434709118792112096432074143218931525619081403165753717199641924885711960526785938871621120155365157865841203371646893049561088662196224215098626820057716005276335230519864578556310140434968533282269883228712695227272915363412815070472993270616933977155068796110744632742114898437956575497606636363128754515961882816029307581605186449229191728894131330452102182706940512255971665759843891169874177599216236228931118840480398240541135585495137807154353185343781488135642016436015528872826523366365923988560617625436130344797794342049265413468019754419984924745185774991724949636703767073079599191431114275412163742168346728498200556970809735360373914088673935143211852808011608251927721139542771436265576569162397182181005394891492112830222836347020045019076005511917422587736461778056778581091188298895647660613748636192241850563731460641227811141961117694483893441069755557403939338378714171217572201179555063068430861945400826360595362409157494559092885075649349926510095515255332437975125297453838842451543604457006506062669295216293579376108825023243708467576599489553529255318631014314291549124124930600562766034194875513285802942966244356315387942887187018224417239435644367304251733096349882068711025518167150904956144656263462218658347327161404414915709186600506851431309213862520543021045980578495917012596511262001351248676184728901669744867122803275287510488878299405143739813275052706112053149501211595480389712479765818929422316789980609110150597543846931917709908402004813816873328602233917751498306593703342743954824949742851217487384130471595185079585444676795875756228521243143545755866670172476845601782234639441439398558330822412191700862166935004836411938173475092502161609688280503941627532597921397447735108535512151752555717671859894673783347728093693022517881517436538839954462624482694659669621032103858190347485600846384207202416471545196593491205190781586637997435658838056056702465316833607850687006154436904901863342325178232934670571585135002606398119081883339527053155100328017691889649102403731105311394640387242662568349687116250847377835495625785553172611648735053831824778867029922524614584039968469099707896758579360004596167656552567234153969492989838922812489259130191122308544541664696520108148717505026553221584965217050145319012388290191389401873494261397126513626044744634945728866528690183788012931106790566994528643418024134178696575386637564425571078914929287208740029397910772993571610430208772018488404477959585038254777558163148318154114062274863085204966386977054628978824086725239514421658381397891241202500842282842586209592427079417586477302653364972921760919793745984383694170981475867171668895443109969025231482179700726804699963136505594135457743461465796191494618271617129308265541041499652358760380879332244154165643878241846103991607223051490924210691883992395459447490604247429981820162491928027014899164718831565869365647410249299654038450061851067536007974958211112439567039377387200941107581366012841022596235172685446083696822849192553456334637715406515171018262515097162247658697364086487510019239104929407553960584225373605089865418111119845694452826880610009772683852339061526193662414666526678855770673531372029148407404278717259842821956759381284301052556051980313927328511118724442682461824080865264680064654041612625436012293805781481588128736297872099526742282594116222035122973803821589392662243976109805540742484162326150082921652179213554265581573946616334772868234476499599864856587830125412971163955961815499857370001090556049805204303957597825925152505783585260682181241161483115687378867941591404153567138454622254667915255978542414223771759705078266399749011623374235216671421742768500097182196582298369808403702924464878283349839556267585228061691712826329852184712909481796397867493754877191469770759884398528943831251171917190790874186110974731919640889291007033199997355758345792877499847930116196549246505272895484894998687159510061675356179596614932946937312836170926336165383086519517619216706057302948571020532272538146099799744081887241690459339421276412629650548141521408317352061918871818504837186769123635114925402881392628421697625940165221391678206597309382603542474023726323733797307657388068024917224730112432688650610600043303002173423885631733793025348660163900328547150465821278056508921674056053464815411053836702381023732783187937065097533464485120097674245384564462200429384724593377188214360007176871324421555941365831541259854151856209187917738436472691942641422970533971298178251130758249662260091087620903770756173928644037547477460148367733871572043543627897767639902699703227369066386372079001027195264925360394808356308488803701336744053238418392446486013890502001942541796154906910360820611700077996003973419539164860568633942437724792631907586159288428104029917462415646868032262339889841783591914257560560086322943776645949385610443904664894983418688331651028106337665279924911402680076131988001156276223089351837651362045256543990229351858133720433363000585684507403135734882422727546811574250926035968363415705896874114847093975483735172345513757879735277855601848221604738003838078563056178496144823942374555305780359437074851001694597247463927067013720411569930338750495932277223299244844455812014748196153131881167035998284164650596316252538059560590216176744875832101292115605672011652717289756683891378703224698418465231387498360661980202854216357650153691089550186470886082534749685530111240104519415197330973084998506108623642803004371546201079854825913479688011962070878352543338175170725809168314829659997817834435539887255730688062262900271017180398871522628302160419459564352840041043696828393435641517943030799214274364614921854912708482032334516424059755422371658868164669839258106679831524419023238941187943831557174407929414116720753921213115063658136106640389445982389303159080660720134177130285023322229468837741726002084762902735953374368141779398858917236981320476319098586814204768834615578262152420665446125692038034827582105119235684989246549088889353449815173031512019222224408416932030994686586613996980940904913389073263478951843166336670808560870665326338653931537057875026532556547674882658667308623656613336196146012305683294085996701269003197367088836773822163325676393925618343225861543085955454910544623068033154187352753046704845554547056302680178242313178494274346224585757089811994029878354246600892709236892847039271947155136966853190676818543406408551758702255844303955899959876512128543721494089885766881736096252492966818020225321145699862628536722416774995564742791067867675467905935829294172840409382738954341049171321065396852762222337147332197029411572619925188335644437102926220487722526039411664699116996543659679510165022566056193795367788717901986157057169858902177773874043079701183256410904996268592665341449326242385438423945364107154778581846829711914653546842574280862883629855545984393370120276464893518152382051560946976143326610676679193751292264303039900604582313241490434821809052084535792237417272221475459509900748880317239626628748621407412998682166512035466579412116728662689511919528819755425917595406727549174708850865700618928394726743680262630198416161325803485127115794165443217405109433754547765252252718331515735244934630438591709549003880032497983005401264565990668624981880156552060346706135926699759489539864689884098009644727870826623163822111899173081081471924601995819913529456080460965901122006513395675430958493333514219379998514413284293141635192475706158497731418572320188489502338831538501865471836690863963912383945802030577357470159355174927112699990974240772043742796616229070672599254230192297379011051888448832550251275012081594216716550789339583228409392377265101423217772686053522489262228755289319513948179505487596760313063183459101543256385119685979582156497385311963858329295347835640526063955554815589790434669331745872133715226924389623650487148138927921165339177255717033258867931974149934836996427743169621645944466288204656347200803306462389039081657122633584407583078309423459958879802536959182300885367766684141884533930687179047208170848597737748377219457988835029315767458814150178857445786538798420956787849365659820390786091519003801002802606891388803018163451183396061013409749225344175849838090673204432528279283786202017269203919924916769531933457306709564371828997801947607838073667337014688577287285619666361688017618182153430615430948859889165537671048588340253195396320931148055195092143212986710399243466437726524013691690602065248999568527193960861766216107908236615563317177102487872769444089174267570293859772216050534653132022647341221014418612521953240379414933506365061664921997087419620929430814436654774867142750534216793822309066670300849899081256067978840180221810331691809804974932829336424106568254126212937532740212591152702416933785086595206621869894914556730436679752501874083379996225031906578635876782822893289487504225622756651751621166275293403492870346696501585423761133990041210004054005165125564810421865703304461087017021607541516836277624076617780099694657343850808155679129367454227916970662051310234417383241694887131217414455133901836309013626395261624076509180061442269352351376272595763520042740468795839737608943259691507620810095952960993139889155308603369931752591128010124820637285635471729299901155130284213222242642026525114557297163663623266058143139394826830179706006640016431427221267164363699617059982972306158543707450815638229087169635109081969204166220028330372744823744778910751584313278924056768211426549291880233902316293658359800945168070517848756096597963679385014821583288660044411985529252544065060934910706517463297229540968355612986282133352169040638312793233730445507772451470898639368206620300869800244364568028393402231986734730804686924273889809623670614838397660708618662810275403795185408291526402245362192562310813343637875698384754370304482600315280198167089495967594396393292385814997682623031194017286011426988052628650043580985316499755304742222050119516769484763572229823639954600561043829442077165486003273202940407182058821865300643710369007973063139927016960858085481223719805813094183953831545868426510696387041691251096007754431905265757142041976203206173672596355807175652488650087226659280200122307811914033909158555427266946469677964789371927942451361815383468360792533416483311902046865224105065049275983847104120305024564472967487062768073222181275272180742780932167744251809650096051394838612321462795025834859147769409458432255943088286985550549748503485275214163840196303019145203763215363694757259052668460183041594186595204156983526336100749299462876077925720815804628480222399048828387164759535813529166546901100617921661243064468873205968402030766226999609574288497202875884384558043964721058987607781893327218968561307014430940814921470201476967075424262713644696431238156816096375822704086461569280201713606402032835085216558941761142067061148996278735798428558796622715644672728591010249617641542780717676081869393111105733902818163613611781703492174040891432147738687349911111472660842438293932453932960663911861557658202440986134187309666371969279225639838506313706448697137234897318706600135439091864041466271613404689008617257011954035270586958225503219558502860161093120985892001145828416158257827498941449650965278470272202800826950064420099978575891866161992690041545204539603503772232851794139522590685465311670483882735889084153670934238097636790472749783584760804788697281473766771432993280733455773572211404342748321493354218215813327465790122022606697495303929231907872230508734622886154692083322266211976700129688035870467934551771754953910735387707117880364572837112965450426892652798603891197232266787457130966905174826694442884952749306858606598034053634693399424641457148802890494196508211781508656888348818407445987750743904367276080759214532731237170651398786587438811484376140890735867919278542253590716058595969859303511867164766687610574114129877043905667488491614425640571191090205458138761328707796598426682385728797025745944723137455576429642110686344242147129031414805376588286436897001272794535714227831187077362784525886657841420696327454002817337612561347411169031588207113002196298340326815720365632828215160360281156327221619146624461403837983723203907320723098302028410772527507754265020247339134068774662530582931085925484443219605391584808085501462434249768363864484110520445719375366058154742465340601040843231570824686657998057908024643254786420902321075044207014489728901027373690765734495693908382632456614952836935691369011979254952696330866017933807432116806811311676592219567111127449399311656501248986260121316930144724252921401642575800817444024257096594962838037095454905623025421081593814453752159689112817386341137634479780903654309634628779965511259984384389782084851605873231725928647052882145635676382543049632956408874136113405224022163900300286590497081505996512835768432912044711048618761328826112930939113443592782378161245993957249401013320219598991691508378533790091166642255493890796928592446707383992474369009973386775382935506058562150379756953220388496114543083690226140219871277732722457795521635277496855336406814947622711697017148140222426034918676911546080884055247966239535063921233460041318638116549226874878535840102669766963979495928030401421742561677978648468841238468081498970888981367933770216259892941057017987338185263318935895237803601683446070022524997544015814967240851294025159013361208197512253890789271426428097593923673209201117273365654612334677821284235622451045233194781392114348626951372165615822704180430989303750469981904403947271274270139088678914794934276049679691240014639094259867512921760846898677997202551472264542104233117892802057692122414657798446879424343041900896612021998787848729788826600269499486922279556122876997909759607690371926548301314583164035554848418191127481993093444119353967450525601567635136132121739861229584499234738400924463867719618871612545894980135260215414768298734062590895007614198252565453307002078762943320702074885242737876367817735636705970376945895548206162595689249527046638575602990483191061973803751483933989736179909122913528833599406393902110677449471090146448924520033446549206704289628183202059284985815664198982713883450432335004481702617509827924037350365540217732537507057574977420400781212079786015897429499585659179977792933703942733711996296329704170875468935894003890349782643367395234396563605968952465943178350877835692981725709891046657602067898533050798129261755223095014571584548046068916539782209724980568127240604003016715997526526111643233264197603990336255748313958154613904240450883243726731126245800393090810055915856389956988451514889202849110617822263659773746382933372068975868852519503765786450385909101379577147895374408145315154330337288125069999096905448939125254481709001494039290566892156522834395661137496729837789450895758265051561831024567111160590240650174184575471040940531698944123582506364645258473796286251429239429898626489306156937772643390768991033410967235350742289187948608706033746629171462698616272864417242308937154985406885133486387744714170203121409658748521755893607042968883818496739478809182989113261283900699828604485388503529633081617387504061695595334610165868598630151802923287931197451045534646248973145195563240462967678915647897362386814964290520804030016624026884562767398537757302948336160950746952667987147349606926378169196136665072245202241538898326053365109133057191763088924195864468103415878450140222438293443169853134774924138587213365189061849400121606264062168072659371562417339125342327384661990714637217696042078150345332097280316751527398155746601871341898314280535808792781161629729727460204709166724671587027326993634405222629820530120056773511262645388361728617917491932175319017314889218698223252068426102579319863554557652540155578534892205000813284001642433933227142899243046471685644557129207631805591302751891928507066509075665093986453508738265180100139356675047918858616524949822370542939512885550301622700046384361277264333162583034628152640258505320572884073403882634304963131997378456984334810581123996146691814238799861270147386808968307687860578234770311058782326890492589180414095749694853110058465409083200689853829617373306911396115761082294077084648572538098817085558630006444558450760256752442193025910676828318642637932052712900861143670038285699789962768762424105385344623457712793105351581728075273449389452623683015577188711711809038776927060061533406172422986965365708697761660297353615010007413756228205728184795902899883050808436137270683050972553167442137477906105423881955572390703987077528769095512699834642108267525329451674355251812228828868669539129411448450096474549000182741365409297755688515459304383826099171068217073795612117543382811789946455994528876151407954376800083666640633695486611786456375020810460535233604023436308727483043556709378639818847788182778975783687685520755296897477993672976997891535156533078406647149454711635131922911850713873021291268627345686684685038889747803135994131164371272817960675523565173205956070743676689043083165418492691571588831837441539935932645701414621151296002039305977863299147045814732477289793841892414182524103986978695841072180562176312874355422003048584701132898403495356503745924866052446508947230715085862202128790190039202119659155497661719747623955770507510915325274362446908957419190105873927184498134807516308827731458801517798293973250252286761946826381794363999435667133030071872132221138261499039571609260233264163614029633799631866669212550708753318357869552481446794383637101021975122211092907098583567869892387460189425382511980229128478827697017596647046489995174415793236667998997267914294167371616397704783110816359782984574126206758134336326010857226659683502205676486223815372245953269184076181726777817737998758611121954344829702002550155629325975822345667575184068255378385204487394920924927683392681111812891109014581069602376048566973246015287322465212554879840210135856035593489200844661630649189140188524136034122654158618353522649490797545150839844182188002936213180748595591394381086679238031573326551456352954962838324274652096734085883653262243152407134929170534569214691078179543417400502680295892310950729408637594029632344796704729865858625347254261449727306737544635469111809820562066844759137217541781204827037906805120087419069434604051807208420763244346893863472966103992240162376185858735018509688109582669428964720058695413623615181972960372789686478893974268142126982835960080618852068239268690699523089124069441158738844448689849277926005896339008216310262770615148060328881510471618710215423434791224468954359966813483137714132412273290353987995166123821451825173402800668960933841063017262977127685083003948306606429934461098617113328470380093348658024732798161688701386919366646475863160422286466751974352229764897762238933642933742355731794367653622952318774653386988314816056702944774706241105134309561974967980659372834931003567195877546347803787800643063457048079499915548854280345345591438188316532986379063148329922480759099710589636396965793051605383616251095103413824921181240499941469254164132813979644988621092777554060535294423237789308698474334256466898204699485370821782093445298568017887294152936314493535178287772660649673472778439238748107345260036393867653160711553758063057604276448693341285724443640412479158461734949031847654878555668120239603934357506393422180871089733385055492638627628687276702859862378092786306579018001739158991661966221707325218336877001278877019757532666325612101149703410441649785958993842757871512296031017092747928718535375230779465089686972217937741492430392297680337474706245491235747802538186107491842398670468485617493297168737915182437698700330932069055811796879809887978880860423869469173562281419758080193382800915712790127761461501481942841850951608525233888555150268642613861711742915050859291426238832167762807422096964284385688537792237861329533590585750383621762767721314132948248398636048667927462367316640538435855589577931860985874767259827981638553701528361122033292803864156349613691968697976298596924816826563433868690155308840521462932054718798046962279436444717345104292464815891529579316932907430476888535623500663390173653244161375745655885309809129399473424657463954107625383199657353484851840286919484022830740750882036841140742452391018274631516753280959796514699243297025848477450743341111723237048942928268996962071668621686064611167571539169082985338205211935553964833578106609956739982790512561763543864891487085858211022703484442870922787075743129897895932693636115296112209252207334269908463417283137623955138662720785690161803906248810826645087131690552245378900885422882531497877780329618242999933704645229082354291455945937385578515885000136975792521133048487350525576246805768034551759653371358759595311902652438365724467779026801791649228982365839704692421561236416755550526573977190804244166010715949596587843626038941394370766167778380319338102231618404500518020229552832319529616610360962064018314269492491852830299204084265624475102726103854680272963051827504905728347060562381743379125384810253796081878044773662929313315960815350050585952862531895077359107979746310398317828602181476580147920452981040965178547096955346606806603775637779946526565464139589422321096105330650499329539664031998517007050262110494323739639293028342563581882827558844935199928411433586384635256065560486730135971821006768012172807657059934612042742081804798748486623762852319443521795414462402508578127881329941521078189269181306313718586230347914374490832480023320820705779013986254561981094487873934220550776788718610910219159853407961628940496518766070014342693964146272797426356870586023005912003510919117586327298705558859578620584699862289934254871243541845941629072255897149236557595702509374924840446405361939197096055566747795209972196410356876256562837891808970048876467415439452319943740747432705580936129740960377232374368318858113396560119498774346404005555223899587782304428940829400862816181969509229772020814127915095922020031216096754360837437158077355577348322291385982123607486873813589663694785423444794278319515552372487588758131373878941868048744969439320204106380461537508305529413214869692123752729422017518045062566845652496903038894893325099744667908259547620319331133005654669762440467510990699259790173622456518521481106297207286531042154281061679676565058702368973369783575453436866909866444025896553821173254634367572863449428438534803167325969483865727358562949671830326218077687437788722281173886647493175252487989489914462455289631481828319624323012195667472130602618355221338163011949615712071758773640999283373720114877671066205946343159189970494926290407375254244924788099354820964633890599590780124595417868378037243225539006870567466020502935711775519476611349897397423300812461359604390327111814700520113429232996436760367468852560734252785178943873517497332494293809922781628295427763735577902480147657435665816156618038099279814312949327040742709988101776018512667744483189254039850346115504648447275886723316916736027810021223701097997255626205985842768691737822321946291982931703261413297851453029517300940700350671725534349823911013059085764620312888640688572995745418383042324228835237844743549840277411692876941144065619441561707347255747950651153798556053035490219356747374987491404051710016735765303160673662067639157691223016774757785958193147706425905193423953419516034887111043348166977439223786697806323891782630111486119838555614807181365615214367059761292174086777261147330558598930959372117219373485276504979170515810903234555547547811664806073610415886291265721681659341893434005772350439310629458123991949155994965782377242095722947810696057762962752734094142106637598570778263513424164218832083262389772160293855674905606316469846401801200301085235024815344394775371053476794501207973023194701611781615595055589956533222152202926481782910672932015924802245216945382220767771519645068263871755516021071895394607460467111651236378522813141759797538391160573183929099642922370209447373346308851732169727818216269592225730305084160699912453552706776843029723846721556119307827385860014853428277392065119731462929827407737914881840017930762584886119699118868074665825161698065555510976893001892481155428173694470668334561778277038976657126164867937940231390055955180105325821419204942439033075680527806776776521186050767214141584267105668061679645828137890701143909159729910121004217381755919265108889415388612758544734469717456220915616783636893429063136010910513093966922438329991254916609190766735239593087136750484612753494435969458672631473420239287678517483587735800829481302532343707797145644125563665191570436816562666543909437866749919633711798376162031110904691075670507778842994869660548667602172616781816205372833681613481456398319694206485735659809611577144161032349180690689076189502613185674024028942132875108418880673896430567638757845462184193498567420440610234726650148151581078474822640761958813602752209614771188878939226731606510585344931153546804779862112446960729021668155069843519341452541260594544508777557373058784940516556633601161953516844316368782783965638340325055453407689033307751269402277778853447813934122751002352770877925130355635914904132249922010813104640319249931417840210892089315760366425389870509484780414069267105414330290833207064733158852334498266877239153672938161734880101260654068530336782122634852206031740901687255559966204409191388371846504553377601942195754464134218859856652418855033357824950851026251868479049590358745719053426135026404003994755387086502715586311542284326619167107101520517526969756852201167614731978098199669074858886676322353075975959653148158997429135685320163346040780816226593260221453293371915189910846300061709693570489030660382617664556825937963086072175841395770033351827867918531422801974184085395124114093200660987271766716656584797226327051105699289870624863325599752911237068262813150164579127123344221672316695654590169001743396712935806550019169252756787985310491060014853606023158639523056005924998803674921199535183940069057531233497436012878184609724106616221461050713216533485356484275636866693831354253561617436653143128610018246009565126426737626313882042000185002939073659823138808318225812041436609855028500464500676039368920550829848795994484636265262755545923755733187550828774093871736417076409613774519394740444364065854791967282847813145787649326723364655240587297014983489500553819304915631269957377791697312604697641539759491859161398779051286684880787583082620426263169201371374717088948035862596656839149991409324825085684368566189589858328084291149954087182207000728274951487386763050132876925367760251170891781230385330797030560748774452413028980772737085465550758657711946546780698504769913407327843040860719619422125101799204827386391826068456269785209681728923921002243621325734417990410288081093166019053445984938908761093557229469046547385570950354443256243887384374748902079541890066885636946312261331703325410343666758446298578942673820381520797967894276553922544681995444197298788031453864027380410220823771460912169227452154748615384185180029238903508554773829199439482948232791938471879072867112121074858395355133873494335528325932137487055273942130628352195826423941405021395680137328826648308568161272172185443926559839510822576091921719515444087156361120703330984720136556209263535678809063519050312637489619199023826758366330174556273637977032957587630165816062109184224132767801527878248252174026380324248588093748412718566392997903815358081369169864963264759916122386177316193583521070101135756776592830000868063826653457147626521002350993881287219457993597992045983095125778065627684683657454228702708743154119062148375150502499285865938640737703247382770934789298268575461242138650831174661990079907971467168328054478256498395576499463920852853455994972010569707859197297159232863193699075588726046956118595050882721441611749393400968358775794232294045601038160815737903435814006093273231579684950919041651914424578283998531069421188831015023774367337147841016130755178190945053868510080679028857320122538626410515423667308409737399482382236898993104175526333709526130680093050446949378379752587806173112526062040915780170053226544791671735140749386310530437317814709577634570596873661831850389556903679475785056104641703187658939847120782686422720261014982433055056962722886884434140031630591458313054392762447142307710628678370138733357073559255962075841135815689585451519019497267392362270625383300503456160924757340283061756245642483531770557665093218431498555240234516215327247045237674860641609615742301551547166068788028702550723912316337169888731102379123023565653249687884061883118971970282656058705164493799897200803901773414793256753802630254217734122195036269319238410482966213998512984662474029137855558899097190056793866447746906780145220438071173084673106985814434422660223092685587900825150857125374138017798394168421813091661599737277845177141208581772683000116855587187625920661450664153841048568061184597586827963076844241897332469550752284667639734418304471282029377270264364671662568984988363869302318771924496843526723979182964641323962610608068940883219084059719461074745784620990637612900099153774445240052321715963523284988915390492516741036045513145531002711313272769318729142384085441493168469190068075124134249099484051925468330096955187672888695033993184235479838414285429797476189720838490516726993819515624898805696697716577215459196845003860995209790114206093899144993337646304681982761272658270364970219941499803543700880051358496555071424011811348645098641477896526367536206782054190315665477521144131817133046953841547843804800300896331942246825371157987008418277250055480526229154515803977431849516285095688598913400734807436231889632737752641479752857411333080004310649109710516599830048792368317655155603084387648294535101376305611324872268332419078486687650526800666281244845078403732662480961139897373950597778475491098335525142231241367041051844471562192342645035667654257053624761226752419219699155698846862396449043889473154172705182538069656069523668903013900860941156919185084234382339190167002098652962119508037944997647093322652699118328024831115259792708590919078671672124206528710213463656479846727511679068522933910210428312738499643864581619528287937603287710433489619086482742822991011226216982678103589515021869562975090679473089464790574662142819039468761147702319200217405536369040534832245702307858649810713406075518951557792638461465880187107589043667850916115072497945108115692614809754140302883667932930532533413651381702343652734602564745212831206740105583896794147129653981422025531861168931457393899635210793051782561223508992229881196547797986142445368886079893209567715173767649302669240804238896016701423038820393572797120393737377999520634773846828025900082376599343749843613661845990281838786580892530971030401522059715076823969270506740088772771397949440068850716250190486040944073999182646496254910748402634848070302006295905907263622566072551001483524775879569983140075632126269835991471797965013761542084085396206330484483705513546400708566085976848672036449378436670615884103173854561472902072301571532111298321320550411459139087199439695965823070986092478523372843599214285326269301085183498057277133149577869126227530144219882567222580787374051350835413571783199156154867957448234766435725977788293681094325595324000424225199607279050256744424844161378364332641901114990675325470662140057359840719651644609048042870459829740780338606724722327816614620328462338870352866132333732349486888181114973145377914733165091555116700930663217881888154987360407973356110904565274256132862527821473457769158917592137021527839636938746531469112082265465609699125510101991402973829656811725444062858959233939423912884372789748461638331991901540729450692560927899050596080533055624910691983522818396656618010643396882512950046989424983397048788779824013407097393205738380055547132450577103329402337974803276122358753252722144147483905157647207976308434171227837831660777310532413971960571860697693914518535268555835167340315123879598014043190063978435637872579477228159321104814103911685008550050380920319160754545193681929372844919615019592357734479345082734272322273023416872125251656497862996998167023641976800987976971205335884793501567152561288707036058874076649289667711700509557435971901185599451564981446988011923143844560832496693361821971816308733389357230160949249922922561990244398697579505280366271340194865916915639668113584102501445436600291111764090421904247902446484304416983210842151505488048487188718209172587955454210748808005089141375057172539625977633738695780826083195085505675854302233111024515583022301001855088179748335604239832706479394121822258781838131069480585942480538932081325165199416459436751652479397668765819956322073427137354620028715721065721543044650483037813545945131936628667208497185498792993195104138478446830766718843951829299150236235573985974322694817830649173085783009018406001117525065559653263005581721230172313810708298161651043048400963259830827041156402924873232819569685984623559211821244793147421985988369753207151503249432588224862851715251383792544430039885512914204269255463842726768653700320539862859282437788437468793684201268847359839766659802061020275381435523693203186983801066301398042806354991854937213109224193512671970044155510413817145137058941129680561499754224960539975161348888187774245750212645216005025469711549791998577300580799093062124865624708944357687242279170476353595328936745545742689494567925991272524692050086465427825597679217699504060484082551776568741048718368367997210338086675358227087967655345920971746943092940529800002583589374481548573711168628909974784785887371560976923728281513039322280078248611984133223148635993812357200154761615497286894106260516518515939787853377194580028874286095638181725615746681582161019783423165609886038127761689335056948911546325761652334007347249920697523466184505984701652172596124037468621313191609951349990337705031773411365435000571496509050496774326042583333251494727727567464657218307765535886944497878799922465950552044974203293606786849756454841034753161812843605308310909894316174081527016623216444121514166287992382009280419107275423672575057864221623525266079249182122081016671806097824313590958320165486886726415906229213414745585889983549556304439110713005353999053198307812421628168089217745489698344935047272014024557232625454949745568326292839759968343949373525847983502591985722367306573895003240408445036180604420434774918234154693175896907751660793362338258473034004880818836019805900431888534456018506678678948826145789124238323788283355916537519641450067644738213807750692583234645966075163611083698222863026419462427658563792753087944089641673873190241003873990023434545288755956546408862174111777831301970654665112042849352199213062342165026964117444313280878247222738273935785588404903116279244927989239271347930915903914498471124533080414257783062211722908521370959048010238707651856196413754062890107572619151036385940992198692309290789766798949184675278397511650200066605636143184029418636888736547913798975057252867732564462632346613101491541438398427171812408043982547498279033954368594729647076391588401451157295419635560149135076143279495040502967625142258332097706606180513244770051718519997623180809051150333524664060648899756379502897914322590379203884434357070807473816731815310375909530447334784925478931921328392757949306008899994988794004494570542697217506879678260318284840563123523731149945883043526264573342869663575387155369841875122333368173550571568940609599526023064336189970434200072479585790176225724199420861283990634716362407222227405643736155589671421742026168051280433833953623192700963527771979666902871994109591416554498341733852862682808269364128728751524559834209383292834860755784000927347940587997507524077111851466069197187572436664576164548433306077964772382234042102145759311288997255658499924113774264819612327152896450660555818885574697838188569804243879700699295720897447539255604898555919787713392653691040792730724070305545534480459844560308193882324201388332393430395124797905098791255064703291578514324528458851198474660556428457195145727793876493703750461078101179677863246070831326198389107664106395384604931738996890259186521400242432607879310375756074455471635721327521767516054849447897012818421600348952374869713302215344211300377133245584203450881958016612927801930471932496992161400263056719441313554644768668305779088562246403371702496372475061390538441200167528668977874606361251600007058111117656156102979773487132648850325900677460316148537188573127293138718334945106872620704991853599797688481764418822583961613857351620895293051235541036628260344962770516493617609373470911168311954218261800304661278403683251419160558708388026450979675646096280513515492459945348812074006192002935057661363658365470382297490110054119769647020144124588249626291800498050718140941588958716991507915913976036231758803830287624504422214306912489962591890286974657039542693431646316248541893843942298059554711096304978211351825639197308256103151514409674394663984552692080855649813376465058502591892311539498272470071325631893895244061943451182162062617552563124047672866974203449097943527097236749212528907907279673656066481621637604750036650077955453342723687052611810419533906482457680853935447806958845730585165417247608219841716385730809009668651765092357199531840212074789774060521251839463155661466065396791033313135916715183286707762775862214815685968182830351293841997259577515572414882073917978391004651599060472876990900611574374892999575814882825400045913594357045536021070317369783688576184367389122502042808166813286126773289272522837279425731523765243983862180923572728436978821825326692869970692020195811539394591034006846051403879088734061852890150479342275393432788823277444979304997543246966054948781789627254693807599728329622621625582177955298268681092625306003609006256759689099364113306887517951770910735902495045704354162116061132440761300611054710290617931931193751250478723842125286076247555422761480618196632659521274498081139951645595133271024177564738691624545318552869447449331937752009770418970444702526109679510020062550946917090188427537868739479547360865374575414899682618030466589154012108011938952594516599733437190619876933760152026111581237469242155813031844998661049421921723460001009890056544207697572496024413540347626956372544529292172573278031961779621395837684264867630782232372269030648956770712015689241766340124562802497583305030485182537493663655258394149739731627036270533858163754619951526633000280199859744377137123015619422741669018130332621342830544819302642326562444437291771248940410256995724893026398670415308952618763496147634706322764218173314880510553750697402477258284133116364946712377318852511006714163872923089062199895317904791589759824788355113080632454823346880946412798802960134722279603046220652514437100557869886749139446507419043659717451868957660839606389589743134043774532016813969545625101538155023020743267587280561965645223982507340596066482810464272223424848950947704351456506568172186698762524697335272077456728661240459049925332718386943326607337234120977359969419366761692005447413924639711599505635619289863058656785998747277376552469698304012061932940920781098148535556356885457659255738299521094107391899630008443370377983032940036129553522619165813405454383608906987110236089236327156544358863949291741235003564716903075146235561259102896062247486507952026105223185619351603317306829181487598296036762381026274472856027939520975526915646166929035457039034261234068708304725969144118704683937621196052574417971796381028912280063424088938388351417857985782513464915785930184436662327594162060384570743810465350389487239221429200795930166601405091232521776965261207656371734906598062127449023474413452450949920087210792495634600019251688045107032491381655694018084476259350270498903106779174476388845226995935997546065215354796793599356046253647404344964791193490343358935979931058834078607797643876986578702131412110301025022674065038014138722338785319828935066724034096789130977981912993231636881324935690470518901893539512340645233130528180442008533751689501363894893511973928243346191873022913735588327418564310773409561272215747398250799543557979317310737719691861200058195074549669008250133255492786442764112381765602810398327789396542540291263340571330178260272653743521976949764240453832295782980927364171916869406107100994397320925113081091748340201784932798631126486848097621996596162442743940390771034423191107495591129341334961750251339152033424246205351678466342887976101519091232459235700774056953028137543193281677441975735091924507752245291475789745045975030232841365535756168352307464251184101909794902281026429279638315661808741195468302214154426873534267586139857149037899278442570213327165918521283447530511966287763580095566373749891070951074269620749630849305311437285114873184992684864886515740912131145276962007608516075499624038125785239988837702896306900176028514309649507743749741483123876631184125959335530798724405786521118997370149440654089229789220958626984664487876774610227965878005421531747072419807134737174621438139769204540821886087084357028087770974661636908182080906714145889519048784560703142113842759084674926869776471539591586581512688744567000270359169280440568094342908919983247602002011376801963662853713151732540129169788656703364168684250891862714868005792135374421896414751823927742066512922469341988747126099776124714064424148657972303311667635006739619409828444017288082212541661969415663099308711543163451786718290948016596537275127158073789080378198548871540520965185921726063935772738905444637024918857682493801820929203595802390314965764924379391424610384702250658770788725330960543223773116720091393961775597289473937209841194972810944211561277846887627309526802287997484332151943442055474224286463421142094203401502373079685481190688615320663301866864431566827230185964853467410572316729501298130022279863617568667461958359901449739685355317370579461367528564282916126580027411630295167705627864547229326894783841563766660986999583590695602310298922398926292585724617995072528429120473053520082546854186824520896853547095484287306966998878921913281347694910991084849009533829323754440921630030757068302286487930997896026295744399025702199371513132919942545922326815375838083602485765969829714001527650132627035215745505094662856153070626357271154677951812792228997297868131547372159302042661164121963982468937231512106115892309244707300158910917639974796241367597764250573500120941642543755590955052463284122157169779901188503747463807705938005102808028357103118567773333062574230377130052905462490671223844789987891306995236497466475246273398100988346858429216516956973961734837161845869585828416720106384910516115404009291728001273046984371256260145349583607863015480556317773353810348831317118909447666679821931322280556418357888130101434957720703849756479858604222226829216755717900024292407839824446101304553359910617300965843464551462925677971148706977413770500528305653925345279211048118263518105696796215682118105907727934561734774857257572926125626028663611689748291320145533230632219818953231902339403777829711283835980950193454365758714263137676187319325313590214191959475978062929955859302403749790575193290969764921059339932575589453285935854539480776814987662182254942499379078210670510444643282335555131395388335914824308062311623416994279182332677094335559135869325146148750434942643184997883304471442510393755325215536290927158132447704090279609960344431942059046082830247820058630662941783252813077122482883499235279022666194707303936065195663007817431203137202532647280040721959496512629342656008351974405154946711645843477029893623595745746384444835406067403243895583959775948279134626227433944864705726071387149763633478290225223253465852282656087263193614838544044566629314799490879169781036852805173811610183843785351486054087357086758050985860509693898295041708568377972594597566641125805221450295465001704477483863686819547946260155101059568140441358718399471931788462826307996516229609410442710413082912226893547272122713907285988332776144003266235018967489016892095903137205097687228224796072332892908646824834914049329781086402097590011861562993267446115573900662209744884023082399876439755016375126158321647262612093646177509992708444984364632563133542534317561026190295573469397354233577853849697975571432349484051169542007010473568055260121055509002777360388802783214471579217921096179991151836220187215907720023854341008936115198246716809688900353998830599250306047770670254466143457338646678850236769238628622131980947310979325795068431409896271941992137407548336838773262016551299660104876979267122272790216899003800449481677713415923147466538881253703296963350536247598839088336359434150649517089650887097553800476883678469663689991520275609657667188827634783137006210522156302162374112917058012312984091752478310706890648758471922458972453913113906403747904386429926183343364676520084740193228987193626342061785519384948026131158983032602332791304288892487874111137521559364942542959396307237420101543671887209989986190277946323513904142587111971496136762687537684395564404995947896043793752320712033077700660653309373965942511064085312034416453899112960189900468413236245325314523502867587377583379097058574677974927483969263375030269110506001486140858656871824413814954622423588259830137124848080118266663822834813117378483646039561894604384718692395986554668616575224130221041988673601463447427452557925577764753737035697153617191489068867845855004820688147840421545351530428235126916660810087300294517782587506041328449403885723149925278736815955011062767942293516031183133906393708550697757481552138053024232345399625505491198965264210689383706362218690002569082053056533809775115486776194559979922882481868761518587630454139482577682370930714549859624431403934777274934178559349223079803811197709183728142463314786813438822662198958666341378955215340130953006614508901078680305074716526713452621850608260790208575139153164816876061896374205606502216112896103740636521567898093436806178880403132540576946227362970298179159519303991762619345986563039306936533616483686210478315033722464853522505002514919348462462910811770513799617564230381389588408547497564019851087368587842486813298224838237604612355194006343697819977780428683867787510965711679337545004477228561252238851323182749032778013367982228292517041755950643434487397011425934648278522400707083373041556056216588659878308912878619828445830447413307151835407394910179090766071111104150010196285393319644743142427668983500042605106048577473413492085975579697346254649051246411688517905225491400341562524780654590518002078872648148252919017522212172147482890558464439241530469623864253330066782083140123568213327760178941882596944590696179974353090274491113032550266528960359249373051282605221067218031177998215398295753328903187916784564857790365936717758970997530866317365605240625228873186347458026334415308287097494262265523403064722937815079114422950797393170654442572176484894984661572895384567521994342750491084080314232999263843260267849766375999500903368307024900833225346641212350882834414422821795673427652412906561308980621923749236319064302344967070034025393566560180012997712025991775205490708582808230443143904441935722183480454155184870406256157537351852402640419356854127768273826206798081215132198330065213699212353908237581413701257560182387269579372625392629869743572866818409248204894673604790786961856671298236837088358646685271887025728009669043093679690561931926535651545107910107092576374588207899857998694412524926509629586113543816577676518893676270171867778554753522080727525350576830288078926715852633521166474151485249106412043616861115504399531794683977039503726868037181563694218675589210564029926182373020217463012127568756598547226752565660923154218728388180084398147950775610600548244675332564663901357875353216805563035019255429635472373013242844827072211700709885795705479241451718210541852469104587976816922637612795830108166966175574695667471965920514253003808158694224292956905038759375000102930705289230777790628854124470275685247710371451654892528033302020636091022109812557688577347628477419063964633945543909581522493550643118609618722085379713475973109549632707554114254076765002550786439439227863911406985757094880382868247195465288670746346362473264903609277039543103893986589869867868442309779661288690856946339366568713712220708350793014184019978370765631278413901958154258573564203808029437731466925827539151696498652575819831940793237913673204799227271923304851732316331180451714991273943893660478129701596647808142547319984767643635263430968412845128469966542272306858990044976709810629209968320097134000982240306645115194586328102828931758321257283463249501668661521387965165162467113126422501745429481954632893878993734910587016107813396166459292091443202424376570024747154685129995525125809531618066985616601671862331473254579487322053208563679342886116883593709229657393380860506054502596897773571781806041158683282513679002156716179486712660862058151103170777257891909457053713028077760861182518229525505290608474272598932233496046328182473250727249104792005761749406727336987338015496216976175066313341766589598453477394847515199402325769269038235314127722846774235526921882250423538035140715911023595090022254925180534408335148125560968079206599335149615493513924927916005178131273238366073649581372621245940044811660757090148360663270145336443194143387121596853342216293036828196666119404923128165024922855517164553092058445440390123461925551091177815571025207169226539392789392002154274606884430295780791286915561392151510834968668495929160363050636294331468357609499877546688685709098634046790614201890789562839467523912545768992288939194305401048892050273135062534198805186695650914211359586372006578373489976966723453067936881319885205114540640844228132414991858771382227899850383681527940954685988357518412148270746675546335244967097153988893320100952954699525631430260894486659847796891022717952775817465696044446171465665755246084214192506549973035269103642297702752861005451894194699409626442849020209839900648340198404666042155741379177530465776649437928429219763825819590659134503254547837616113412097653435302563898722403382226076702862847207847032882624355004052321839136749098065082608637801044106390066781476777176671173096612667198465572735647395978337080439263744083009893019863826648657598930965081020278150902757351292013973153214732260141186667189983300805237587434683259383827257232030829678103235957417261209673660748775715759471602684488167491478024747359629373345477840919298603165225248339742850855057478910094659096055731181298143376930722197680410303061430479043252203914684778827178737680283177876977821175155350895165914422361133548091678145567227255991081503901662509177153023554986215902699130902950218653839725357262883512263138555795269026285045858636706291875008036968423012148831869863595697351528847965884470461520311587712184978336607641834441850262410597686237977112977212033695849527188267958286617065074369802154541804937711919344495403014906473017379207249735844205621583780558775974544829670945399528031999361722082058184995992775904374066743534758281637260851972099446783104536301409441083797240974979728789039197800618437141361067504698973349178482615611554143108507671385567671793588423671606401725142097520419887958290797579840652070259006881834409260936151133164852384815438200126485624425676503730414793486008067461518660042238889650268868296062020391839926114234777750827768521959419884319981731422160806513820254497398862800271020084761825554350083452652118256203334320695718728204378052614313431408272851079152828395250200627876710003152906035118363813743846738166657536980498636398901701739476388227765844367587053367997473124674344761621013952947610773724648467302267090360443118794961607367701094993145575697171084907949317312542154692117357846184622565004013506925994747872535496062443125806548307268662510072510745041446717863797931780697400350655060654855629973512785458767338447565391503622519438097285116937037217511915668201464387112965833626932323401824120133351725741413776612353916139920457768254714263658446586723086746814441465112817557380245300259664989829637530972761382301509473834907035969324458806223070222811697789836604459621624550305391027288482247116409167752081174932591793632386860200423396168743341062602719216289936706709776200979902738471668098750079062799591112210755449043125329276468424360646435033713341672479559011780795429174186245241497407359765217627898846776747829601248092823660309232354011509923588038593123067599460419014996600382356509034422238893517308766771369611846476729834921357531679600109306002203848808409075748497906961442658060269532307810649074961971913785714053984568587040795654382057681515982428024344491907842476365906143758273949487953133983625014546436162631691703664459216147430921682729104392445517049896353550609302750071653012036109662008003623215115709981603392082453092835658658431773639767254444319285827348351709192502960924482787278352565118918946063044645914738474106267265504822590437482190072433175458735560311014343930648241962147780103237291803594297556001429845298737916702412896397437082341406924729600070002669457747451000164488430327019410085267017638687118704380069963606609605119593983090620009851651350878247721939079130320131874804407555413494200569613897242746644171391684706742918536346887266812310867833079462547762133972366739480617545623909819750361648033137195395330824087308885925423844733028495761624257883920038118376682794030025207152900292706067916688792619979008236461093989863370900439342324392346109656795588213418567751821891433545089195335100055873790934495334509532703552674372888723020735311407842923365243488220353313633425108365200163932514702025689919096842531159691192223252482295272544402723306085497838845691630422646305805192172170122007336718582716144949095158953573436564188666230168824418728503403545851041821093400235579181954839679524565912837725619230756055561058313134867665899147091452305431535046942991257627508797717462352185478633977477788987792128554883118865961805496123750981386678645976631124576075663025461108886831435161934689278569127733980920331611473999007028485322051502492350895155605055716841006911790798453159286702668354857580048270607869176182186098013735679207189284779071046787875741055254318410417786770910802212622054559576815192912390596632195721486255017560943438957417617944239165553038325259667167219594382155369304441697766003191675127965427583329734708784744555113956335909388013918806540747555092491361891656082744156975871396627167999788194074251370835876281662074843336303570398599168153542543739491539312316913044757213962434813824527649779528324246264941673831310337962608649855559147905301391107065360587703125537415864881915212755965978599876486113938443707700179016771784199315449005818481463243061167562575661155191808805244433276348826665877848743366309692279053002166828765347477077555841440927284242424926401954231701783003164530512563932798543748931222875598329004883234109284575157836025202468291716788429928838736726732884545984409851578627384187910992732351918907127466159181047900170164749004133414043296444100058071004912669983505539843378596862294914984023104735431623511121860266065428620004629450169797805759741380736777050587810676620366827620038084712602108434043087632856837728723454145495939294643584018171161927631029761195018617664325373833995869101838264475994426237161648318334702535304162172279251923297120370274006257878033250067956758377274232588331630995976370937648391263915723527835730592214148836995945209030936961723561779824356370380337352018578832592673192343737562246365086994201283134819582957885721856775133929045007891933856383160071837843146686441174571315331323088784336845889595451370127634843030031310128186891344105370915338814621022538954686901143185937086763837387148999567710367242041391062202542585766595196661671721141139901389077120975460196978866278430858087410466142570945297183352068703507336258387051412054039408593833244969025240042669408530641190359930244208953406934025068426998918257632796443717826703056832153628391788325295298983935493524716658456084642203732261971629488577704194575891310456855789575663248196124739273131136132462789258355595504927993767298603892030760465764230093253930598711654340436548246071131795494060299366031239267339849976829453437811687047047743200076685142007073298826894610969751114880422282114727645771435264021784157792385443801077126344200245382192750124866885930768393483801989560381200729826327543910355473711339510684887934100595868280807026682307974828814272904241436328571663742080644869750424245100796877479027649643440628921180107722499561735710095232700545512387886395111691786171152938304059829564745798587283738371623411951963162295389508097532220735738257963243075692301542990568786444680253182613893285580178830532637694299695191299691625294135106206444458767631986855449125006171542150201373676128916953161620281513386353381316754801213715996413539957851988447746942462800881801867652768457861318731425508579392800700207799776948593478928544705000746178717456180146519666788105763978353208432720067410428289306692095017011519554179376647040952148700286369115067710921125743638048906936349869673056232135255085724987062917885271407901480615866472002133926008179133127023419131313883283653953429330483004891543428613840031904430700235651443814712345145442320991962395405808025882737037190793502328799532515990868740510726662253398723969788290944076698009527031818064921967866958864983409513173666029642877063531645647394840839181060061761315346771399187391839897012424799477269580672663568857841393097914216076649412266317821995339228051800550959052831835005901273970976049840428601233462906165589264668778468679535244502233321561623010380778789572162972166123221605117637641397153946058104701832723443159224615286604711216758845061367142657783001672249734598171299006892688929699970333594214993495082363637328148404580919470503666023760770338533366052587767296583223601333888927716114649922413576506382455624306683007184139047405549834713135400274625737762461274597954717444512508079949877782393756054358834403765688755497644930192478165148198439906671138003490913569825851145251873313770308811917772699882921609074026237373737166343465924879812529200634990178890670248709013594297172152606079729603842653035091818408243647897990770498802344395465490152274903920551979453651966528326877241211779361783255860303308488869208804535447941770422042373082101505099087387958308249110190325290439900523739592528952017405497698404548815032666039642118425458779537409489346975170796896748258043213801185820415144827356042202580565418926875991808862331242815888630481084021248677300882757010388184265211151387158946910889588925649766232936673074204812464556613887416491972249541042227204088500784368280140557108612292277701526947255462891691154220546051697441145056755370658451767549903246245722588052633324764813418803030139238615369438518483960615965161304960542640139923446425895392222765645353120971057279710169942783446224903539229359537083338242953713315801131783186576154429265013602552697264689524483151902808245341058280825867555560734300215871081862544665524644066866966863377813815128219836487336492673165378622225834625792563691123457187037593695852211690393529470887150203332521734993952414026939421425196882333650018451115200079650006754575146696729711260962092061223034342097472587823881378660650556329691943842947346434940699047714583508286754166833758808498762002522831327051489725619459357211618309191766362647814716406346022849533662533937334737766334107562915582737575750579237186264506251126565197008487665246545072478013864024819369217457466840423865132586700733641654194872082076056577317928022374919754938602434908765638068085158786373836465645531150555073890769486700617517432335434755810916342917900225825457623628402196848040972853211005197166153067618520153831031805528168978617291589242317522181258876694828531698669225200248922932099693648991593426581994364342823120112560562592321137394361560913603646183104674291919106427925362476054601072383599028732975279275681543561992612312168972195984011743458635891254073978428422015327112144583153542387804090151633582595160284687407201251483732911153735246340502073517308764166907821790236211600130579637082043565531108345491538470140252309094341378996680917227730087507107361243279921335031417330098099917907614161868288874432094567850609473803149295074461755930630803962758983616895893605208375723375054851105895437199852054832833757453204316268357672740814660342050858712604316489287329742396747049507248367927788297967051202244721449503504411288953591575943559121325515648632478947640458191742429231618751418769082011788854063777661463154583683771197920711322375057577857504593777556500199150635366816285305699414395180476320488626985200098975567778194952192655204071772229458124284328798647234048171856867995683492888982144469963498099420615290471726690926897297380727333500183377647365463511005874418190694690019042840547735117287861083812244062873497382350061592729659980586309337403812700989965757986969117499946189719407775847347894811789995835531252526898380153722576140538869434747668393609496756170982182155415439160054578589750512996717424292184378496174404842037954274683469611493726869446371009826267926240370680025832668629272053399153470589087585544279502021210298109884408038531661415501389315979862190454302535265682403668963799130213906412989894972946851390323471807095474901188270515206140105323631292708135908400412597178129151111936698128098674405987570053180265195513819383066691591111204464984955141425456146230301645859337964043948142137312122740742335268276293015777695256779266320616679185297945391192186821571324641926769765154075118574549479694292904626467604135899025496934356041452767072553734817221300740334761623188367148554245211510686976456624262949914459848197887159073993005886634110192337042620659757269050978130332205172486209882481162932092953968740320274311796351270029020899165865354250409351149363302214158333051468614107942313275706053423692276535666830442386937986709758157643964318747429810132843729842671969655714382960680252817684136954180934025026343736992087463424258482868760399309801795003036615846527044837155560140083766104185959526700610591936710322678132184174459772209817128657625871671469662357163925053695443052009535608154595967365833491161391229423796706411848570085342442578162021598388806395580010461366636106125774927035763703788193227819966999667516295548102313873859316668961617392332919809737992613719168604833756209177473944168835553023883452207854522487106697288646815165725019244978213387807945136362304858957394668343294765480013029195442017347222168517956007568021434380214792880364506982239857489919520652240991202452100406290718495274625639847318572780356202611051319999059318878363715639023497690602725407284096202379010685183044903322396836510583332637358455330832214771081558283847742223085381824380389990039647142363991661879764661583438218553424099520640250120217654977304601492921389388958026796393737179143279538730957307345043183165310391567538429004707594025246967440129224900601728646311767519318393011106571876865790513235729569850509449938098161656886828862614712903983769517492380029284247215162919292310959726377369475577488210435823330344715646944113439869695731281924765438778031656644905661342720992561405038126035515307159477724444799697133649004549993570707072491772712382242169456681163603882556028663022926147513528944988294697743217273726964676184484575302917663995360226710600653919787774286338202857888315667346334582095884484237848284436745990436337911148914844889896557683334158279781739199490729082876859688408626995069017567745503863266525289469813197350741822508082433205104961721182346498525007881913785161520473511331902179135437538990093494558467801264108182525114476804685567904001933828063787763858177726155415474072984455223139128707423060900429037265207807301352943292206130351417079268685006006036330726874057272705288818950186266278398978458985895797140528851520848841471565090023581805486442960300764894906412162392566850977784959325872138576907019182152916986123359143382928378418680376943926185005966327178095146228673883540990919646779475083966535302778938835800139685936843185145556723663815283025914101220363998588646511525119638562967615140365119567575291166118740561745505059580718162551849674654388322892039023236416238787398226717845754647191214657115590785522197210182294073799524258375819151178417484427808023819323741229076050161992894612030164711787442042094164655076596569306728545862176804524493096148510401145380210561659686839582206612574949099689205916971434656881514795418624861986306943938236954168822713379137314568706393329193882345060614229241459884177754301038977720015265852103979786781420226575395555222290855211566433572204586736873334647738475918597890669335029295542383599105307276087105654234373521351891331388230425399582729501692527751488565035190133365804963014728386259610347899971489077291045849091724537608976729947146506479058787805429528817094616305897572635917843073502372451367897635282060284430493423314744827323640603928678641810785493196123969577683748501483092661404348016224139950175584412031721156232509094642240525259509991748699851698071442517897207855176025252947684368429143162217829393060098837681402288672799185428394549527434497729849187368589286044821168708963650857186338447302115499294560632802990024015550545445629639241412821798769793529347517543975241570036619456627952038299830998940200197291037640877282317180842885688727872513981148649515714943619522026205201855729163812340569329825442966674307484252336416490447195355288674635778684031769961132792575751801923540041518669370855785410050092272409512230618414494318861430581169573891633654984565449808718447787036097036578349927908298845737234202880758968954511923822537234965494370501526068798505394666607519456062568402321845505469914943474155273652819297643223101761440207040147537951502747236013416604884715703922439825590868763149466119019711312669725709291403901920323302631303105880915797152437850770317023209694937459746818488510982776231767497845505177268935182629425850802221176878214448631710965904739518053590139798073856458974929885117815095724881365771426270769107284211717606989723989687994518726844831209924254740786243330319800338253461344649513482865486337771379177401588887372411248126732811912954133331896498868130440041041802477177260110885614230643683575498392476623207590068944759065040249420853124638043643173017614817655510278049463824327494036369282860134102387644944547930488658725754860981048109220643780024179816959203080862982164315953579827050827721108858125495053349147040425902517938250646892848632094648579310118559481593125889201502648747720264747300967603634949668175724017929631045825717084370469425779118475424916872706677870413422846901806953528220283282130348753655649485229928850570524764684863804975620589749171998726595869406738513836303475796922732883659369954918810920634675273956597453872746444930949283694537154497804139344017848371628310830511430225259559165233312763301956215825355278965572136003460745181691712304146058027115971628669491725542554934731861449643733417042590948648201248775620617287496161209957860786730953001426462662680470421108719594895710901786894101542190899309460169635508364836677995617207331648426197832370525831712819898437283630742003982003747739671259867806346875238765439783736501149914316715888598182242986184189872519985190483637260420133957985217199208563724239629300420540531901239134573528689208138513665016791016152364500360215509734411614536828993530685261412877275519957181774899293067229950933162585924369797851877535158372785444168016758732165522220325843007925677815031776677478636994918253451114553488601228807433760306943349898621137166727545903787599829947329303465947781534609972038287097021046823098854902115283141838348788775831797345118692008711240574080425613111205885294137039953287105215309607701066969251031176818367004930749187907087668621987004882991007279706788829055052207867054115601524178240108794218511953247602334075235011122533767237459111039591530919537345371285804091059061584547270798667747801371004821819701812502485160687398793213507215357905240203727975682166097055756600391437508983336055218343416778088075883731539019419152924886924523437771319495318939966763191017769344765460963584599816621001526894210911081343949870789840973333043771117405794595416161919573550655322858983043033591099034647255613187791053427549466726126728784977921223261059575703126915059729313143899591311487567038856103310543216911235035930679549290721885599641824411027984977453501622793282385719817811187024278492315917210711236880738469999663195863143985698124846750263521087837379324756843233280768827332096502757556835890288761117204453393669579658699432854432517658470632205168860306113478133758944885718118583445687285100150392326770568601586280440813192444200122665133943837266730853524072229821127867133252052816033610599754624751403977198211654012698468063081682015667348236463441416926366122475154886595416590133243927700603069767884358537695091908889028451441050828339408917169397105295662652790860443218751195622625402469721622748794006777590570991349863912354966550107319371063693458109720665661246987932341482810801500962641764176781552965370927227521745873053261743635091743458021857958244752334869662315978959901699694467418423501884429831609765127509664820727947193783981520636388613489501901472923668458155506153075396475781720881884067352816830859112331869186572246385218920759255334693015408554865829516707653634737996160621640476951319797056568902562141780824674261526991187934824656772313660711447429219406535535620750499126353342783603686068142532559098651903176262623956027614370357226578308045946082442266700863554330769367702866217195147386207450088089810155537508709025119317663659156540354307202874227026493555091436006446868850036512962057176873926428677186986469637634828361547908012697290672733105977354913122698552700238281885626593192633796186900043486695712258703314313742398089414762525939459141811347645262243877893585374152912812972511161080871403039036092399889293944876702723150786594051320517918751090200091406714545051982780377715762298319674635904692440017651221131863849558707910713522170899239774545190079242159847783661134768066131882819120216665304576487643892304420984325181305832963929179618330347862436177517240314709330500415395088003596568314509723278771044372584277283321279742165231778898794135699077444608813357801776747335266218289490270146014073041629663613907913866923413307993396848678670024788137565934725540711804754447311431051627969292085325924426185575885660483346868719997520437035967134005086778308387262917850968052368483419847293886037081541788080944857931575766977475215749984560410871464266193897487664974809003665365347902015244896452223790392419212965078628934008217253458393050872443190817858699510442620601966519680225891862559717492729267776378224368466828827648515087153724740800377415034464402181112892949231675643892670382645569611988938091033274348250645454148691330048694229280266313290894332198577630863572361112477110656451517484785596140961039542763907166297284532516932934946185778882564484866706024370493203002165324237852047952405021027606036863923265768635408196401099880258048850226399849039344208326548942466258465619987637798153146777905009153717492258035694609436722530103538134020598416698507325926445396286461617504247533486960765918086338054690327784698641239124696585534744893710310180957443934949642748072130853691808478997982917838323875318307616717578174642982472451103585085585780012692111120366044205787584897540941044378682954542899515852723756054200073814767640800454568578084914130009851080710159899324320601291739129184508812773585915153783641998214213428010531024175350561580866048453238335119655553958008894580557612388569654922194167036299261802801328818634076203076757745077916953219072020855256876037902614949388578690662785747231073829988042575809276301991467663846379235759091661426093298801584439365480388917241090365335552903165750578523970483600353340475360929763537920764245090813385486540022997375542345449367083634422920143772406073515820575694788545992605456338461847711802473763883708951096168959752086361519124047561206765760228949266971075214514702153569202792116258097493148546293636854299586430192498234912133719279817474069248659183392308351518033090717295049223068937570289824106336931651770795335510133122039230514115761016745289543074457500274253189953336452027796566908306788745257137612990211762414013281241986727676478837713151279570852729389242565677078971690244852615762551809094520241533933714310886321960817180011065435098411386423934125417938368187675487939910529501315241673011122941364991776053044998889255329702880040954544932381473471322910243054599599999870071246615634800473066335749860184434364748482115754244900533867805761223927654633037760881335195160380927504229473409863405422572898821358543124302102952087235380431514963663674603959523603698292785213645443218482185483411905937605828044592063114812504570118773692431430612945818167510163481354615362702420168134035739277124830331315975580445584859248070679652490625744068208365551243668251380162131546119868701602331864026474477157128378866254517778089379307994991339757533081561097372959175768425891445759797182747426476935726525158585669651657494946444649541464893335744052859122850453413789512242255156163467736715145284063650841063176731102036325639678974378915717897572897499795870770813660189427988396731795588664409943182396781706787711037860173890428082763711567987821426893023382643472324663030941500745045457228768885379648278969310533556822032834316242744402528617931864423752300882153987846486117834885920057392318897558317527623498528867466388898974219246595348274704811912917867913563194110589897267553464113538866588197905578129342245483809306256572941305925956564827918112645589958172081488186557213187708202963662865534811876889010735711478415689104025134727694389689137457257956472742182722689955877973491393302773391103838400818233556289632224883643193110408191686244459415453285945225930348980117745666915769629030723339408099490724576118801654103201279219979516918766848163582420411844238906827982929081639936691093523886364942019034018230346736227289093669800384694937210785059511870478232121409465734612689105361101546912136254805852959236891054659695052601501342681063428483603429856385083202896764626966315969674997315348211854865847747146058452713698184046858752779941354540807956103319392038835343778553115457530049453739928021816425466562020001103473344109393591873510272687477004775180058931312765618800696297138833267288173742679636296988161258477055310718877983744666617555582639153902492506843264376454253538883124133010278626694159438039867866449021185380852462131522769092545608313360092055286373431237744754282318605021573336057141441286448008551456521324745378782178960679057876022419757171620351074908715279972760514300751816260045291482208597673680788287584269607808615004578760519406410673558986607386798551791032485054740006026878028995837956557320622855750375484356468193423932897022191305957952989551101188063214750611201752180184490025676847095322615226855897458739806644942884425753771014405899844974083657140196997976549888801461198532871839303876001395987302952020280972833227253107086361546968783751846572642670325427974837813694483259663768534163373508481433614232260590465236707304542805159239827980630367266975035182793683832733961237464078860597484920490607564928895092409020179732835379954919442992601900798005871995236474338168330624180027851082028696913503379984710587108350862072712758555593565644856143406570003530513832078452015025788180615879775581160136188852230242842692923181301848015791193864096405382928409946947211419232325556472689859385162860680730681205035619090669339043217468983121604816354269567120449143968086259221441619162353710850614278240474232044257734716925380990796844051631191856634773643235841583417682618537060743374204039002188251120843188259694267117990167361919668758830745303155199067430409225222224804482007026067854437876573742482436934410501875976335162765548735422129830898997975063045414317005382209898530000330409664036750478900602527076771081811794229441734641655750857715315700747691372097234494430220928426791076080183864615552653308358926462591955348854372835902168234801694680502813087943509153903339791346971301928162901371201056557606573225639359034648279141239592373978083330416338872649863321306714823509662393327416626933611847316152981302355496722438698086956437765649117114716833470476419663715725454764170656281108754323694692537846446090082980197678555483279899602520413865388608176241961346807525768132803389962155179182747366054447719875020603342984652728595198155041186309114492620809105582441719992362654902941049429854229962760069245952395655365536139649614230317658864973721704748079570768679454562241203930602285597059851695375661464743231972556657028499079235277048314430659856439296823109760517477440394318518918963750995429752537526739555793787615140871743920594044041032166538086534112430718031337508135015869584440652957631869677423641440109133969883363220765275805924091411041531894089058001345040740487652183661659782238956026188998990678410012711062550793149206511062092272875529156004921034657195861536415308642573565805392820208190478315137067276207873808008041142591371122417971783214172168666097939327645231399833326583473890321903277806583714898118396661291506519062702400753602709709603917286282386886097457596247629074166284523347782120046743344551722694419030370897160711934316111158096346392223208952146811063808093814025803122427432289268300689690715526297904416095571503453833353928973651337416911827693748615664747635757087471074127047450433081798596089557491607948548554772913494027997515279299200777922211590339943870736251987316367255572256970144299693400421061850049685278366843070155322909313270732923588287357055194739630264677678632556245765834607014120200766307699539014628067432007092608898739921709452282993389959172271312942029251485743579567856574578843527574523646406992098414897294641388552893446964396012104175937325841308452201855402104120754549633358165772986481452301450819321919920888983564405256533809201955922590371616315442769144160552117697453318715229870326696906615827155393148159440595565961687049544603947104050319556984368730987575963288975386906330710067530424665146320018432355957824413620392135572428703373107719084938137171188481994051285610428136594030184429430458278823563461197793695998957086795784441910677875802852892925290858707971655082686140829007755127246971939186879116898440597902821086343614119560215736724566864082301399135612227646791536957077621193990493050636241534096259725400199322219046590457289598560440316961160443754568136536353329721734028887131979122645114962117649654447872088554237765274711582751204379383973810754899976024360675364702957877326817983837019165992443868845491475485713039715974371660052625482149514999854091964537382005596970086053580046454697357689696024861876697451515589323665889427108126628598256352970384634912383190772774599114762261666393526578025988404133502468391808032297238833764697471850661872164232760598298958461625974017026150612621313206989175994001038465861785596323295308893643310200589473466659467639619366556852695520532381892100178466185251941721456749015129825791485165317329143156506266757018506457057171278040897708828668830784653602006577220850063550507591518859639854301237515817690530750827765412699443668354226637832872601219993994900476604714867202295225640620600913239492109286202882089932873407510952094324583196804747154462316012633788998290799649554027548259632257458871062604937778391164922657801089769908597403764818810874771021758320956673702164709205038082801433550869541368678806757135708730811303342801515652781283341359963459875282248482275890130625550293777852816159573645210049790300683015139507105519575136575397773987123173214741365024110362980418160415702553322001575848221877718741554145499365900701656831164160833992563161620070501889855456890966047203343413206020335419020405160836289130802461109834673505730634846659514502215729419340183273888669614719112471426834774919736100551774629914208568658142294573610792282455832164793635402299511540424649708022007306523361089159023643042172497705980893454093780491434302935820952126414954213997891677171930026952310855120857410801372623197142518153480720189262782299509104899795208325902496155480726000103045744093982054050315984903742263116999719240566493601863817254422897934279450375793337622599784103859738075466672999868530554461075276024491306048600045280097664071692302623300942092685815664747193104776055326013372582404102630164402090946770147122905205565523230573050592629812930630380395495796687726532735407263893090327341506966932262660050022418660361340503870724821324827787304083121553349156156513635320167315342956461578660444280823262761505840773523399643705565461187557120989493252845472876126947059442655687833936400448269039731429399097560574202465004955449283571389922692956047085998276678845549382995767626439719245067181616070464185370630398556141725632580612909032817228181734917573014743787616486339095819908205527434268786507497194209902529954738763385925919977203373819262707207450730760571137319060334223096696760636489449061422697902330879294678061034952447132821202725292978019154763178106286641391324695084041466727294950596607790655800022844000369502667087909347547454002743645653905633065370021099838501723220376594173885002471720507050522425703361522242025530257912678809592857046464124808056910563875995420801108427404129858739307039855470264386250880107101223388684952394599021221869270502190610984065388276898435545607610527471362383011854488094148290720830854085512062349777319622770033220456418388640632351857978732940199988228402016045921925919319728094617267101694810541769317995300722337655832635523567850108403073083898106553126569030698380652864604953826221067730894514761274431807458187446173827544689898311960713174578673050171017613494209895066546716890161868871767511710352587799072076368213873842427196137339733766049728691382295174046383115695744643491128529401846512682929051020811797302783336177066091157072051303567989438000271287411809041758034697073990656990313212565442217746183491968590165505587874844293452902504765627873207134542674882544978958167045718331794858865418227520130146917923817042790601451825387599912944078974518107908155783456547052856995951113721545805275620588389394957838298292672961064841371544300938224455905303127505991149013412864602510233491951204983139626637557032155270543828150045908754905332797757652426570853409150606784914470209513127205608744851621998333734377109107357385488082138220660086036553473380703954198910806879408327699245673359870638609747493534586970698879481609923875002939764483952518384401251150492724042382130825268428424513592666040378525278260922913435546365239006343489406562200765917141866527301081029271127900738098381952947463412285135806703963411607222883099919864773742921041549914313063264227196346494754505372278547626733417612482551768463969301205654519581301905370784749241313341953157863036765850444696440619280577510011549487438870860116659255197608884935672444740104030083232125450432090553454542818725438087020442257684445791365432472790120396266066086864758026389518303281564873870372372402903866594777236259776488337235305502693297236102803506906271949187619650264321648236803014451656893251745529911142317451807298397366175278066576965461502789376454400455969661483754628039456147951974835646921580915805507245872163515359701137233637916429313971561006508448581615281807038428808209773242130975124983113928079631112811909860250008806590599718527657670520916242348711488674087266221011696942445240853008112363366098509721659331168689532551983687990892310378145966294946213192595729259587083685086045772216887769809925278698922495387242897438227143752608542124239459191873541369456207912137141246318486538432357310183975272336547731704214037032118981770007411056268102281656087986230480302089715702889309612990795107223992739560950744536415701935435968584622118879658539371237634982272066366157430738092545327382223278339148403119358153533049385104684582020231847601592344530834424667852662989397925487885255205851904612562628014713673831295717855450773330537260292471215168830086191820520813402241005836821831393435956164915545873454602852321485898789136828777245242718033678256646312052853920870115894225255405000182685229042075006424244231112780045818704045505070905143687064319268650031821548306716463052184941583676025006034977029664101794850333794788754866901722932745090321728011488308772336033679807285099528161844323397771429981968539865924104210866983135353329143201188157516965046930491249782885599363034135980810209516661803695287506408158049436553955246258361639371562975126209835007152849928267374800653737358471032393310284860718574508098418171651160322419333156482833609701012709213850436299456822245231182453928138215501397710850689795141287897879218503088571683346626470966770694155826003299340939498124672712993283022528709439063152481233068998522356242572303615373937468879869581392787754283341778648459285476379574688574618150534999874969349938318822070884818207356851520222453848118969779928808560622754721007840684445142641437918525050970905678230312595174839324754865422142638253564847635284341437711946319572741623373674255380191421667502579858679328992549565500370387356303297933682320751621940712115580639759245848466939067556559726866058737088627781469770787870927106524125861193209417006485487600817103377215895993902143894146261464926960025865688655138788759955506005488020698153092996095791181324954076481685497240250508671842731153059535736298187693684936604670973875787727771440260023933418896289379748252688728533536766605615678686070939322275073928973716611158499028281154790544788618739678545410296937921403537433821219354692642673119605227611619700011605511670901675111301823396277021580411886250463025670651381775758222611216886025452556162882074037674324960387046032090468641543668448984887975126678279851408400222393690602684228781470738394919050663149003049008915600568102098062551542158804763330039695567132086772168793094187154171002544421739551990148573100017128748706080959269803795994422449537974745496130913353345138293267952097717224771285761111260959858085682204501262937113769198748231976384688128023090347155556254497944437401713664802798790400318244689561053571667709292995702971526347263307115325527168759139988089515357764317571214684148741829501870834413188265434685202716808325138771279537286802330273581219102231020991336531464970462974867981943012570496699063141775192914625589189085011392976796259731754166085654102256504404510426212406376328504986960310931845027318438922099228789502926632242937288733331289819516430469354400070108856262967154803884990689132356717130304957770754755917093950118261583451700393076493594214986842258962434092869453981156281500353959713920664966236150853230867453246264614055843112112200089537413557353064070454434595593691043390053028276823561339278327257314651135810694166169487495694183490149662432075107963341780674570787711081999945314369163930620496098747826389346474899584118380377114149857664169116927989235743535873041606585336811621550790660516879259780792321691862551214632368679337685916385948314658478448450409894001125729804869261318512540151827868713223888596012029305627127927131017039994040132926570904566533943141530644825833339164887408325389977344265488730011457146699738209210791512409873149860161793144150113609866234825586504584620870081361192966829506200883154903927232881857165472808303061119457239333223529563205887906797482643440511578448507556708937931424231864157159798377051377463440449419578783148208260279126872350962834223238491488259630338548752275767488914311538465798401383330814579569807907695298026390793686009133788047992601973590018007316833618016340064786630289669199012991739335265722969207631928940074693490172663874593417153712391083211366260039948680749538906976553997848646056184369034623036496532840686949750282718243925074876310587389122089360329743511846200503121348435722240760381772982427457589158355210147711840482673428632709188686591472037659168721401636112290019497603160240322386180365685791283876037640499833082875201969711237582089152287402679674235694866277628512871541054444366398703258429912016801083220127731632898705376925109364656362019428850243361717054209476987495542680286189736437135154770674958725199026074379322268000958754331471772319938489022652978234586419045249372148427480593356666408533886989276400239699646524457748475449183736664241587529117154050453813275156527342134889044768029631453827350788125491631609012148451007112203050075382441716828524563068181850887681577827274682912942690703020515880590071777166367439252672672210729670853220993869137367638059451452912041233791038831157399702417925912544235931113984848865929874636730451008617899846914208695853023909016174884236736266643494073752071556156134481918900195838717409649055983870471646265633080708750822787898255257524266622283717846779011627402241142779544398199576998651776081979570422410448514329460711907606535136444092910354137043527588084988214990208298306759205001079132721007962040405772304072133424680177100782934993249321816459020573741936073031557842285858233664703259644201003784361672094243588612377779296146659484967972984761108524464037731864878966438332794404748897351448653800271448239166856916846601195367376399518410303433073835627085159237449892466305091719271979490083853538822507790690500881942416129442291677783893028625951593782170245426822931756076905415533265740078873847978047286431310751730678035379782735902758464001110244831552657767538872237836284094511155431531103151391825476958634512762526686289018453509804452813732866242094276417341348447646348220885910673766791470876567919848492887896931097968965274438942364268268377928813771678283566897582409062806645884227305381754165757066165822257550263581649734723500373315273814788163158445430720839221136072787021691600230001609786889155835587896049191033410151240801037899091450936582190510748772660512053819164065912240547296495980356302170491096724993210108614684239982254105655493747553772903564487880888152497382588381220817467523523556372605318282628183277359955496873665812970905852259844975793830691005490491698682480617711254615593665908521292885954356923474289780539962991425385963338120027033022106022037141184399209845084584810713043956471786179507770232054897172986651605032821437394260288982981886222252960976127086068852675477109560010250669380171373145531570901440929871946524078890042370535525536899839586926890073073493168573277686837850378139120825294816023108965035520880498929404571694590895788345552994121359114077997932556869996434480157311213696627410131896935957641871205065549339942384828740019384274457318122956207448898121580459688295593840599178062612995922362152598793136585493973425815049814375327665266571533427929221519237525154536743203992733634156459611612876329685182013659236879768831287944608093028310339784238101427355607748154464315397943718589713618110951107252967705490411401092238860578455961101187139852995268071719823508492870070283169843473603849208584118012632800785237540272967457514021737220469630768735081408982869777408095390628328945623681118555585039658680184038049545239787102596053849461490658499769154695821823556044248228004539248654703161388245570834528086256238139835531855415170221303414509300904399551486452728581598461563323291809556622271228682705001804772575276552227014264312858571816768507034366536804268062056018175967802574463876167880269225057808463821829599810266113378886178060149599471676563105437618359871206930005418720949919848428464568732004047857284334536486091852604561509912087959322203565102297265428818133642943042326087324518143092654131097899840524822050127599716304622818478630644898781797179617981220301834706420773782233484478813540777860505385656157074013150954668001801631058064155589169441463069996482132690294207972466203700675072223654929476282761483869192600503242629729240025583902574380342464477856083694479528003426997933732420348017359176536544949854445141614110134730323929942355001761151687083399204785906103143587664663846509170201123797910667621298260318727223512350739483397694150843290704973051268482750540027559121667878599023741694983655800331849367339178994957690413551432043024073440706528238473116749779641242401288258650209850202712246454024682523312988606380335762138048179345209136886482525450362086662480688937727742866806416908491328543704818314892323420664669362103487855510958658566278261052204913402927891513188045333456065627599790703822608504970655460762695190787945941670842721458624789431659172264259053724385663065577505305044732359914375539092017988721030802039686573506075924993369110419531912497817842403827541624276574263108739793568505404542920099068346600216775577305987112248462533362949652943023621498588999398180057744572603017552469156146635078572793364670481217033071359922143039067780800619466977836155461065400992559690767902155215111612423536439806966133774184510350383874915281992122307479566097562866219920250769925220251293397874479976988219468271794552414547141346900817629088542253009060914801722010269112129936402647020948431305405726174686907312993145201968976333209006697113049593344728463205806183892191264075864634311452823908612983627583184963184222770801720732694659209853867111951357099174412280908197081655917404468850779808577012337680982771040326457858250496366957999173069385422174002238930269452731461807561663022241147860811039699263688670682393065568432038090725818434075117131828648091196769823061451864361419228823093054423921881558688297919635458670185980918346561161519503099713922365636435966168005179360972306287879761063711078305665792066201686013367160429318690239547016001743388639563381126541947035739442082235368131507408130320396130355598330279149458562454452189862181105665419935971383400798047170275510239369603813784777561373286103051033285968455264722983999887661765845715939973378854291409618779825947592821333714078121923788018051005838125123085920094151021251400069481945466680858320543834974596572755443655466541443848933564801340488044773492431330472468930116804748016548501239555639471350569999309496100425033059501338329598081973497182345005991378845541736813770420307325754204683563134854535783571691635894009158655055646129645890665622900135297519415142686030151514843959808400262190172549448934536054534275754283253996706065803908267087047154974560234097323986332017065175384407317342063946182924001710371463104264335072913524036300364858330821923823880248488868067474894614914661239752678565531811381181532483480250161222542745461387368356048061788948079387318296616828764620375105064143054543347142010623724316761363872403476402433726288990734473982977584552611307131718425224887156873848773666037175975209675863245410746251939379330568906236208318166827209050840484235668388024028626171714275906579463931259225466639941019297311793016424952763045616206382228540894666940357469775650996299131582254711768456369442632516050324411572822569339069105460311109206871714808119942444445904060445830175787092143043521896035476369842427927480901575290989646786885519450646482298655058643909168047616031109317003507949120638360282899215712896077808824448806804028631533736845785633131096579920734118479630097188595615426302173257448333733050176974183051366965560223611470550340099493193744868406933452785920296309085407880162036190685549737877707132881555900587606693541111689909878374867060782336207296610489212727151986411719317156096068052862055826594352907078132729930302209264964439637338285505405551256481271032051415135310206577696835096351179706058711441554724008160258985628220286725195133414140036831317003915847007313980406701861658950326865825677469294153283305781064648590299088888132835369468532068333512391636497244063468217434571692691127504532781031506817016361285652266407160305132888897686374553630896941156228903401314977412307766687982992692530269507592793698906663754221197179192444131428347181885593632049937789493827110789635387099430856147532440685027200980054715426457895789665863992786802472983686802527333967812336713620909693940055886246508608010379946967682207117808907576454117001572361431199565792030236142328371113611598773306441721693759751153747967307291389551082887248667744499247949709794831268704276215093949896572132609146270373482267671791448178070172044752337030969108312626689336516513423967486356221106878962303735158935845503932387817302888246941890599686226282217716040419550603454347721522207454718984096877127164408898962483597404246106109699026068266460572875036879734725998432791861135023701762856677889855892942280774123338798759302556563111259651090524486840376237117404845411490900012269871261682308309617422295902368625617543814330975143022366573675281026010844976978328773109573186491839164633231078373421577406981299531372739246919971979486769944508464484051744006844419852374011443228504954795010955509999544113589496517233615458590978630359812970112921550156336235194172053033680927123713690874671165610548659860790276658817657442692716273236317903810871825137959142160846271873542417015756586437258973123361623917869055532085631441720634044346671993162620469946789322652673613342946431566814556609649060868249912332062331002557033242548795906564575423676118467716895716223318575057397998166480065108524767544926659617524600448313458989240771575374551906847268258396366459734639943903986915337506922024977446935936699437102286548313853748311910109823897080385448496134549990101584244534979991148097885826805939096292929270860616953082474981131756057868150482111487133750770761789763710535246485103597699066905277309757383138089625043212441203687908793594397746239353430822022126197341849376281843773697102654874497175654534378558961104263779766374754232944000313395055320873003107519456178664622561703837191930909713137110169138281883453147799638698451711517060365586811082527536467159492721607013492990680203288777215058224149183117429925216709483335069673623316502774935181098622120054694394213650701486303713280599293917219048890931932766736968823119881733867465342578396591767078039762293432786805270902740243712391714308843095245069625233346214808701590534035836780129558188087281622352856077763314441451839315874091457641785667633233042669634553704368841350358367792478791102317677805004720060641303206640775103382498965800054468656155723976558616066900938760283184818343752786705995163586067324916535217585100414305405746230809140918428216879500993137408946509155015804172815659102461424581284897946282598058667709744985176987478094839434771803444148279630224934389511951661636680587977787336048816218556369611136042667345302257784967882328130841387122010890205540604252275560820515178422736881067096622547369355982200315147791878816530841341203835800572443194734652465152406584912596161137418721257086742635692644145665929013133146648455274639665037056509963645389389580002843054601097958529188059033012161627441727187837949582835087837574395549649872119455774599354613725113058343010000445765224288021364914888358341664497729566131290474222341603685778129581853354787960386914029502347982803750302761106507679149065153351260357816763602450963780549546236031245882110828739314756720048693815741759249274442476980461152437960376475994421566367152552454062898947371944882229935140376424075190230951054693290296043086305605786756281846806576585534024931390307013506935207049692780664311806309990741710133567086662003637403292923242980939612397748894982537308927971395780402172697738507889310124531236877535465700628619594464025775845211588535498430527593730366884358415939000476664280457821678285606818337083181721501089033923894370359536282435305187823085277727908573237058096370254077380153720776782415832538773706125508079522643491235078577948803634440513017709871897339612684656064158927057375746929181631926471782009671039833191361909963336204062767125316461617096768819297380648050392191085896994134531269023119902717538123989590531950914678733779473281440404431319321039159618195396341737982244288550459662659583506980475253673712036588143665843447977311453250077263802253926199223794577113511693091825043483119856605817104263849349800351437745848400597166277813976745123803325909728232823640944572516322077304999430085011259611567452865177324648795805361154291821522106466204037582661627296332754877528787942045859822725048949647336093530042241169071312309575231353103104791644706389535787185870195578660745256261027956361526189770961865687435558155636577587609108285323205896555589261409529424064341731197722871918408573300040751328661713203582294089770025165119817039421327703340113844675023942201123569500293736543427637263310093797031652207619402041462383620468125948812067660917677629862110980031711198518766836267392255426859041917824261672181375764191530108109619590279729040122151042802410821765789577869933909179430390748745259560077188805450720301617933989926681571368727817288195100963077722309853839171043343397739025307058449001705181603365024064971072503431998751289279818633099777783886797665740869984213260943174283480702816775217561343499325877450855872364756985376343527779274797963784730468011414779748330952677101244204952741876341467521727002093672788964269588023695793620649319916181889611022492915568469864561576247406190187047837531710245923001893060911461398634318817586581892521123289790080469986285434607107407663515582007138441013901483168700585381559936327937403122142239831622433398721150824638847537370235011258989444157012728697161554690908390109101539945021429905228592473963364202651170291464837841016505221922652313390292410353566931282847205468526391406051345211121389344345647487037951636744252907328697788012494871451702494201044390017432703484760113583175451547716511579502747155613834711181138957983320654715870970694437408144853833375452271299868637871505931481476230856383060505199579276733039691160013575240939492619277973112468789701972272227066992781421443596678448907642981980090982276837120423435927819282399522780320410228794355654495556925924755238804132708892253156549279496220617997459926875757657258943494338771490235577139114203758403609727457494594975481226922989253743291952202883102765118656429937422642515597101780191771477603710206031273145679903403986452955289815507466253804052967196880399417838925502444699213701342758307714736823839851420769686581663807469968840149316282513607788777403137378504066817106724043708109787207848126492511850086157806713652060986101715634457479989482868352544560479417672465717072634580555722731836325244627616876106917951495163189218229269517957390762380587919848859665030634088898812552263532495876204022566640199916415808209978543415988479295268373020996215930624543128684382521642556358094998319101071173114928361492350045974886965834525831804427169250225579087905400791576610658294533672432581543392592130631475096585658210457804585577992274429350350827310533767785410302430351246512376994142553403057683361104179290758041336182455699921639202136711283140164712459994264773624757229882525457548875088578277121298571763065455989910596610256778637478082893377678795577165285214537833405026278996242870865946073594074190969183858321796424665275395140178737150612066460477106155753035062591412594196093923174114720558808642435248329984383725021163461651353001741549748036173461090491401308702091112483382182816620720459102900197417039005058729344964225454374511007676573841333237628617770287876000431221880194536401131525063805463479089070815380055483038434352666242689127560030567892468170800963316796389813265195837303070545750288347552934670984705921183374381207654636921090419035016777139791937096063339601328257094457804318370315160752387024844516917525793400295560504882018619016559445299503711551837445677746658588996965471829047826032447908804134434598440511692816026236564301712470375628813330262709151045985172431402317825104418307918559158034532543708478114829921340824468398290763587561524153416147744893956928932332586276601665832058966449677456971822713011307205500792084237224783686814877752564452970928251359747608289030881237422121068919937342711840462597919116381712821092630273140403382814684582994657861157931882590689866855296278236778261915150548850664736291260871982030177631366040402454236083344810675819857392390791260423240766288945289221597781646409890146120447049208971844241500673113376880898773864950213792148389252946874465324763805019821387011042812198711582409908498240639056303875246621184415848642694238283624204610544705224891977616055185591554363058099190364678939863856635113849416900783322476580607671191912230397757149017249836139954782348714514182742299165537256460213037452164467036439962975402963181738099736527248550934507624349620340855014409000283087791139161426741883061162127482510633839187038259891362880303083030824108992302165618603954639856987429433650992967557913360316400153973712480469621185793479336063949448998204513057116173232998007381074871730470958414333565942318583847502698839429103972776252249280432888604321440199984269178671958845100152729621574936990178837336442155391455338035134372160228050867553176401154087076153310100331471194414909227201230446922989096036880289350198042708514810519873464963617185021532212957303247785786177232845837800038007911752048137460387410691313274307625907281630927748304367457909582533546348444643582405233517609331974768245433312725226812988363552256011660814919561258148905407335774438198210711937908343453958766995353895956692805211151461626652116421840270309149988140860073522843451077778254778397326893457610449447996077828531283954338426817061881103234269658538832123399031138291325862482867033782004471632308549149208182880306349464368387589700128772856512035448995934152066532711925686458760319491943108433604720949624411245331167133257519771002426173703377861295760086549729120982954983759240816951216166807902791602936097514957348996744022630367998253956311303971850140816176240698216426678611542223112861510684366052803501151554824699928786571635353181711916754469992267613822675469374226413545620334230239669342967531338628691973263448335795216320109631848623588119230838895152767330508085070771816490620551391055360673997446107395836795155833446387510656914602465582436944973136248714299040426740070962036356462842790235965539738164170871439185058537422501948554933039332575469171295434827540324683965455944207569034321041323185520872226414307921797055662702945307726848340083949928217435671773191625077075121856455698447040054533773962464842396560476219294638040259555469513973081367534894633783114168535707739370740119111744295282813655849261472320939817617888786184256444972300944599796111317526546959652010938711203437707921207384720799247558485081953758401936287424787680672230960063441362221657017652184045329163252012282296577373534995081479012947556044213303974559583170076156009659501726768255731988863766493110780441873529666877338151485655626446839438651427878323757293544202514296527286114805968684892547210570665388218018212704786686384927700669759928470779776625018344538094990412311817113218098533039517250671541283507911117018416695585074024541369393897642909158441871428261950095635658262750934910219306160146774447169722875312461674459929232149861650856722272806343730401065731149668375732863996521033095624306326656619998882792733676808933748257929080369833192881999474465305092957530574338797384732578968556292154972721588324469982217999556451125331473752283502648604319609460015792210826896298172590363067712897967546981102392453400581970891812114072165587610881790403257335046859327206913179597203772864963898945709008752047119040944245350767781518185457108645544634592908255309057164652423515816867225947572531293735867962725687700968507188004869644876172842413453578281523150618605740945317479501931843579253646498992400539996575107767863109589398598910850767147290682370640976196614383349776188078078066041411186157625825271936122689004823813945192205182930022654034621206963226682214546212973309084227320008870518767677632249702535745445858506547903096885908083180614756834534246363108688959121393661250445244686979724457758040599098127879507403819272268042190148950840948433458137865464519690246102270768141732674404369686692749186257666472056671005971358952648568092089225126976106314999139718926823091123347620132031331354864122957985265471624106340228666209426580655836449784585312741640679313544422268288089656989067809280305183320614785973999070244123621548360071865123656456422968111420862747618753837805695740139668853141951071350671828601503309521334338392423574151415657260133782767881418906605988701065910029609368184348946138208791077942380033951945217719037375920118175833663967135029584019082755143835118012553329610563530993722704858541884778361689647072526111661222359589802885771115303911683629283923681280213910537408036495375785231858458300739213199844774452997626817201748907848688238638946168683946096632136219683457402797677276525627059246394966741059341450785493166973487066938121825086730555114505796471613784800291589825277661762682450297915704232245548341892413018493062680016096288614202817194773490935048924137574827252586816452166361064554455746570524672066914774467851226566622717163701373277121053739894849790097022036824662085230312249719355074581939448492539539215985308661444302276106186114664539701116499900565002320061280762701837302858214320592356024123929029409171539946457357870236484220210177897205381843233040720906853769864752694313160067432644153154807698594547962144016803733201917388096923512310729865691624870212351144218924518510504274994901427465440525236994737046639925530000582680942934334552903862652586090434786164315414188010916770016652640574563401095483696011829957122692383776368956425019091489320757571735099781452424860530782531767583994639161585558985913970586429632116587009304205990699238219021349605837472655559856499746700220694296398474259146293821857910442175385150359212523619269624174391330451507826114005515231848880881441481429755345230478126200488145318417658069467982976746767922582697929356679809988607807311182824198252698660474285531849445359119148721157177517799664597470725698107489286754582993204847136684615255123399607587231114816115652553856725420297101157549634944832317549031215629578530467368027837562672602251843819129719051008698151857298462598794038218550345184242161922984174975666865101073225698193486753807177029473585899933250926915067019276065838459369998025373369241410230759341387766529568304588138489322377990450846302105783861118766528101862285429211956656920394824310959507420713516522843754559314351082857289468561366821787176560362293570874306270947415947066663944242866476056780145281713771565621917166508576509066830325851725945351083931756523659905747599994146550620898805018021926029949129997744280729197642760174009030780512298254571428766558774565443222507019460827992655058638346970069221203163837192166407103758919497926479889247268806972837698747960981243786594541307476216461158695023123908459668179505540137396088085001644644637869562701983190235355302691802732695116600229209202274535792124999000700434497049967162318848816756025099219898904963726309264363319142112549436774517862367095196080646218628690615345808488405386310036058652384134338072333949347290399452092793217490395406285764316389210233052925033940694647696489129518405173916970483612036774273721295090543661490863360294625478805474681923410671624462062534434383114937368026011947874788127024527089091147860252502350582947419028167442532356429328298589140961745999048193505534097053785603000295646416524771468477962030078907412723358553038501505798259278685817389486667015563725690233769230487524730629075971242911774463937255220862919865658301951919082035163170817628480686910337494284732842544544691384729166200490760798602673490814562290925875356670166737390404975333624368413830194123167585692747285287465086516703856097343128570997915691858561008084471932268580783010492054838725805518306689913068020646049472493218290300416494668467086815533641866066214147328919688809332013613596927557948238383688387323970706323672870992008493184987874969644184606747429184621551288112407747713674695629533103944827969044453194079266501135420191826657224672777957038444281123211224574085515462143345477024640713821271841909055280622336371254176119947563309084285886966860271473740452610141959211113589039849297084063058537343236903627094736605142350982646502596360222087823636870401706595370201308782339865714551172937779064170900538597352946285314331394827136308750403835645448520225857409966106839730533331083643901068644469649578069010238100376900042872689266756719070550539120907608818320966888517439619420274528467542026275818676963381595402033181858688552348980258368089536114372828061601191816386344830879484938101967786592298028153355612484798053926856378791471479471198436987365740488822828753835881767908833116963286188607905997578320999216325227184457146968419459256570985577260479268077128998320088025792813394457157323843722823355527406738140485586329500860941214144659660204923085717904051828588528723859595665988782934470849299204362811418561249692293281443349102307096157495645110497991083040811598320493347792107257989911404155835443953755422278430329956103076717824056148100160888216065860364947929934643765097937067981073250346697589247584484655844673672125056339649144825371754905170749267140853565590526204297143405513916759161027730766364254223124638065090205485727892264303109474362899083475436473095009647521847673641854704980005889841058472032083233578309924067008139545335585653084886224737640586946398432641635759586972909742426015729700510386741361187798280954749162129410506441494205087909420080662665439279200023307419374200226013520934637003364688003551585712572587388697504480961792596073569794817153889863810569420599882077502343031608415768749709640823230597120624884659523717135958792877542872747597157042459873144276969376774125293912737954300793739904996508195429862175469929672093199412135377697478364063875635198074884991965466752704754658531466744737950646251848529296635106775312925186605930803580181954750057593107718807948450706649453968834906788772889492512090227300244097308013105669436047196943875278369730002862366406796561811026937048579802895243373506481349073427440834630293323610489061255407144822089142251437964478332176949483096873231066324886633920457782716934964776263338257244464374624976057185120239606915148600023480530611635918260631948959024032720931363022863962189266048554783495204360704963364015933390811947674869251802588525971477794515832758788009346558730192512917823392789842039191504560521759896969003085571617217128294015064126117808908649926949177699150374564575930243278543376212537731718641516496549649421361642972992397437895694139775742942354754986443193753801969943680647654009331501699770801380856401122922156429601865320687992978288537094771683852345313645194104097612384182651695105605528727738848444666148596819176952022857413250143108135014623973087766249293018243411655185429364996681209510045110533709659184143629213269452690954974040598600561671037647074879304025748326934586426158944419678953866294401600724458558201945299055995881626424628955397210631647474031312916059228841772530765087748813538493455030787620892711562387165019497765053751436122591430123368073435822304949717760064123499954824832745763386388216657836149991761382218945089643682022776015718532441884604603254509678306713451482070149385414217297213581925567305993123735078159840220204657730193859365772572264081088157458724346987965102380958700807094918876283626454192923875442671634381702029472649502430603408964882172619580730539093744405081751933271793547263698327442924308841928918684023071135674540167146336030369520482645140849959851631056346825602473927894898426894615033442791196325383379312862513196302820391539869100739377032626654360779612124176868913071217795076901461445336118876741168204778847854760813353914787637140468106932669088927205434988204214727579498168078884832920258987884356070893730327844747013741566464515058173188865911989894572195175248620668971556665877435697840390699049377641841539298996072869025924120647559593084559927140793556810219301290240943799884450487423233878731899217938762974220807078966337948664773389375695791880769451232853444946823140369808221334441223276182080850246334856763336816934651197506303077452634318393930227174404396859090074398253416965110312894962678023957802552096396394472367998768507418435811733829828126331623922620921997329426022566558497847951674566616589357422387429032866369452493504603546876608049191906210704417759763942627269539594826944106835691314441255096528327604392266603909882816175583127642427840667711534029238048970893799487634852464854603922599809868190859212799482524795687436513799025682635892279123320289403401273472846365551973279593738592387363934338635037814526172249382460184967355575914041402607465497571077375870286154103109000659919050615104736752368456129842103994339153264250515108510008403054515690699873547298793619732168015389189945135798710730377324108815447367685375447551847277885458297014770266516385933602173531318258881112503804194103258807699496193403957296246831710620465081636504059858432662460325256792931187167812695872246070231117196312264249914725444102564059284296764667890397090896949391408929215217657395040090783121118890552762186608414927762336065567854269009565327063772059264912774740312402019695309150837590627560726285175702332633077477713152532003095348904994939437106363490925273450998962318950595768921461350497208415564141271778564350214430454064651952350187700898362402185275427143960646424324904238419458267911784293857186628058071098585963870830801866837635513298525917417905865075298389998375773868463895023752914372603744468548691040019351439409358130506088830358498450779807156969713237257831400224207514434098335587806623915702553512627109112202820206109999534626018858739933925581056102190805036570159786015250045236772734456491234538454945026144134004530430249174020125097626425950784511600588198612881076478460744377143315508592005823544861571484646912201479539625007865579385964837917497573623061017941339583231267654774215314156090131597958434500625295301917966405668264598257722936680998205087362820918151674257431536463329848008635818297027385353256026474799138076151895158095245127435832583820561974221382493471799595164753337477141306656126345052230631950059349562998368050382922115987265858823064682080567447057098570968340844255513237523240043427738840787173234341499703220553726301292300156859933637852972841160070546202408752938040957496097898829990330079641411269338857443822584267367469931474274739681225265013929322059550406895435496287509590121661805849659900387076233649710066738521519591036258303721706916338855241639910898296307457458843016341392547435769971259145036223900586755191856963869704088211696083707932298616981566163384451407856218562251375146356472209200211762568238582860851268372251749803374304713706926786806496111582666882882023677059262647239690569464077985850606895928701832679885912034896890035774162300808363652559180715165784382893311465872515578652628651870410147407944498051961448064699698357230802522576355633924448610416360258519093745722282620508396069856972701998392043688655980070797989647390107677486763931261723323025460838827464162216358924773492076002822662164713681630719959015414895067487895515111174493504090299263113601331123707969382257890398614361301342818426468631128936262683164630614931543230567025198022095364341789747601980823816332022529806163836859776689721377783939537172617883387280946014704355493899471430494593068944339679753237365889003262125045248911452784185621925945543195269704393330358186021890279513873611969338318690260782687423746393602029022547367059975498641238767856047778680338407347727311152338446009508560852117710469575463365745340719149192152179224400755889585162290565690513879925351044038205266769658712655186279908823052134741787328118934995178805945631378333486983442631419623281436118353792653618015454135836038879404123941506900669882790924922591533193342755263122373995502782385832350790106528830476172579255523264409954737235040606945652185208813470620616616042216512040229304408562249417538285914496747570040969165655869255812712701453877645660063935214000806563880280389666075270240741859436885670245490952849998078857538122816811051670897503186882854548267785020988214697519188438619700124653970292694328142424843764915317013887520809178447636971306831714828923341905710596400159083110859755216898615625989763451868584738968175744224189834055664815389364413980132991307427900789901900890355886582381238036977657857465549342362280906991321986786628230327674709896139586397377062820592413478981317036979368121083058489176377911265009768009865036974026949279857159849921332908060524556608963867912125503118690696609647514932976536272947166998763422292092918977716349999196067544641732875542873430151964476301982496428734586409233551027980244318413708679322709589404721417828091441882324193925441071590783652604034666220493050879739852833189498980873273206908344261504135160800155256618800060671978773709064874249464650407257998963730180041036326990534591242473897752296403955835906646472552400092357274776008116878852850818521587327059391973735654553122122345225376907436544231643241147848130633004302616299867704535009999926519548249571399390104613495947681062179573448061642835412720782856986847156531730756547996560641836137974238159123892663936339192383462809552855220487728252634778190136705420236503769697394152261264141204059762245855097241283394887958471061117462450107280902116301688615396223070702841039216596720106708885199191190657224871592620798637032788508098326205146503569053255106699976209172723933640199709246101866135898080432684207630797324195174454960944883562025586237638178826094299766124575553563684628933641576999423252414435170664370307215025225690645126290717862163804640552616366687968995752366609155972356360323734271522621970056061598063431037110940013315644191513218604137683919493191724367107515115515672814498967835645640432635822827959149807280334876054533133314439967753563037176695672611335898053601328776218524885473758524250207421317512963682578245154237739241128505798386381826684586921027580910117701861167105758893212552052318373448628902155220815799324073291576122731220858155656263225442344386400914585240210546618583459635380912884955645344012214293734644109265484272871486884705556130315634728004344182631141318520380888174911308804494373677900189399911331927090807929936799858593125490731534171891416504901604961807990004103248939143930811387864605609740806941979384954786550604547487082228206308554172276218526879213188975795679253641670633552776296433809812986667769014948377544663333829035549859839985301600736128774492644635130335084191997098474519099043978440786881928684183136277361546959965872436955156345497253263383001012154450995827298168522782903874260897694797944664026273623591671303521249835974591595289401823097207946489302633669649216963862906744531665580094075910305220152252745693544409809322591658059721995840387524633781946516639936363504147029716303228126359561717611793014392574921299059668220081565984082390611193822954639062491096890775795584189328865792324823341646730521843783402184263683517299700583721420575425067992777214688971356717849962099124570873439906067805379612426469221408991267311684454578517574924605059587105611373654646190701993703230131848043048614508065853454313139399916288836259184954409363966084046550675465401680836290006911648595931854614784441636291356020629736011655058734939641973057630814994794067613950498024976698933757768241556430367882795661822999984936865968096636328403696966251053650536211966984718249991004412370568774986804337189071146067326890150621020116813607992612805627182831300627417869256373015612540730059715267903159360351263417984139773578505377558360475779150055933832589139430030559306114663504094879679969445501792767943566576979087778556648991069814673850261646048299063083355647089881372982139188330135749703457496597219982231185970604079535754254401249513062846510679372145856432005709492133794843703229056082279853873997021475047523544733969211232261340665189121411281470992684863035655922792599863736035541856207141697923478905466195962651461810157228360186075087898985465872343594363125913358492286465243016944195153965905436486124008075649171006631495096082486758206762008993665823573885919354577665313419492666882575104081404670154446357247918427120550129379060357505018686733864229480055514344711642512027597907271110372853103277646189146630837177512500026806192827144321677122415999231221894642685953286175860064685283725748038279679808447614692593942842916190145209154209478528294526122379750396134056427848396618325711902905205537453055370890634283413712996709318337453640829307213665790953997636628191933686146458894904957031213189266552319706803904961740803593482218569124744837428052125457001720857857558745057243572836068301303325407558278741788463299793232766757006284556024886701823282036308387082877752869797910166158277501715725905366319326655580906950521556817207121435535905398590230925144847758411458188363934513352084998536201640984927964111367697418183891712858814073220502650664523690104081662701315298853587606065244839869110829519643520218999307647412881727626939974664393076680819345168330031449620595053621704934740081477038678576901864282590352867597475541955833873363263040518304732046644906898211032211228195255390278240961582818184150271360288321202012512010024648560306486398875017482269662608162194514549173059176458535089160766643989578540888284276555856263557982105931505627289770991948461385915652441232525845483006994234541515408564678999369349048393439545502336192700161034409807683858945410032969158580500202433657353772268254697507660398481873607591474421461890444218779776709579644870363206138693346466879200864511292673253050147930146925803836009433895690773475462198129674883810409237935950432495202276092853814224918821757044027837092741623067924524266974765193343572836221290346317006947669669364870231203813131068419407211114274088391553305942943167033493177473962779975087074495522512955624546779330521935465609630623062693468541854777903551758307688719452194434310483724970030915567642011709615891665251663992057535950115029385278529356203479563710158964993119242174025903219303089670916650187521965853297966348117106613786460812192138002116246124234728781469286467041283835510373280374465500058576274562744400426193165182812542412915954442838873197969936563197491102265790408136575913212921440991568843913814915375030199778767473044231031560253455924497045406187898546635307171394837159218004978736399525492719432623962973525868662490605659972090018193657324743063294884447332656638378637955322824919377038904709036712951948969639676865588962454656775865745405456780351331664223865509504600516942867586557808801381249968209336443888184198704583324411065361580244891319322435052123388439079059311580531420789164943133063359328297559851738857318675814855759021329132469317308877593371078152970581556869734564991891510168527201604586570689908497752596010693617217457726391374032118326678411136160567232429807153503720942140411620535267733795016018248635551948096338041291372896108682817871835831132125605902642369113413551014676638185077276780606622246442075271259432096296276629985300883549214442222775761311900317302187200095727525994503174365928792678312637295896027102266002304263450851530979599779945094771600782526758185482710257647068871961943098214953435136063699322190510701071886469644995253002199302574531372784194472176881784743752248485421142698245807938492225341057558994552927456652307293501667731455218106751943108734394546092019475868349792207837569397104118935820748999215148429213934011026979882472547308914258649869834299826894346770641399213031110167593140288848623885984599076573694931816232538497602531175035031384184170846844824101942458628044163617275080135968266824433072097528508261882361598674658750601844295173392787283734058740671226213101323419716986339188240925316886579069757978484182321712632574140172582279556762449975421118894367422211862067655169381132128455509675257750959948869294574170016579910206332006152462125762823258203783516429791031908787396321184857397334175733415579124193735494411696171419232231401862741377365754729668736663398908085537484996105819253826248222622586818404815973999499435237233156289428313974956378504917504432694805729220217336516134379899965052872538941718185841496005021523614960739900293358640569352905084145234593297597719569829159921793595797196083403480728441306299755746213654034785221344287606830122217903454915080920062870073741038705928622584687336020006217683548065899416943531220262250452826726294273226139091584927979099034635850680815193061953026550203881401846278352869990617443485553847750244939159664171856203869163829915077545783317809735155841506440119695593185101350786789306955707448882419853188098773605216022310977963804856871243404850381141510696353232174549241511580581536607115449395612963551382282287748886209918747578492003179230389011900504844862616284477608643560156858282536030835197684524805996352853550681038892206530626448084738039901766725403342873123625021139588074704903179041354061692317687003796807104430345827266241610447737338832755178394917344230589443281662775688942647924181853527745607503994084106684072457355397945422350374787516816612904778462571562564337146557850795494291731965989113712207165846713347643454628743199738600495712137539099457219963353512219014621166108184099532266272812046505137661236144928268462268981362632870302947567042338193857763241074377118334925031134383745203158907722331582834362636144209071336727280021600768250057762882029236711191581248692839257651524906705247012779571940216959318267242940804216002026574075386699308085243459894094115559052194918917395302405013519541062491126985113031154592728201917596536917960111470318820813754317600985079366144557694922635663395890498881432537922098809560294756824069777016554926000784456369088472964223464894423533932409702911210898203402866259516498995915410227403565353987870629766474442760119309768632860036275781179646789540875530004462195095780298027408693930301352353039094004960253349722211879675556221016196374093867149532604827387003083581499739249301692831183648384109485361314587053135160074438099444907491340850619703378401034940536229035104144820178353787146117665628650196938105906860131771211838517928743636355321165965457584000532830167763932071257600651393063909613893398166147587321074338480576695311959705949315773611942957365621288007539297014524409032426800997342855510156049773500700852336441476301506099476596688791985974079283368485353193847558745817413656187836534253093535928427598927807492024297432029831494685087353732642974881320779022770821477890878080844685080627571821019183956441876115253616677929988779234270058700340835619600499917806799819041438186487756711906078308494284335296667224984647405762970373018530434666192133672612012471239985105964478203410723944966819385997080951050121734106188005950940924511865803167212708473668453132977309213562256957466342464748081113921553593592701795773903347072002884594298360634095347199021904116381896093813536721414249726041761119631712942238767286809126961014960940338782388868824187575580407055147660695318987069846048879465031152910430103075199827718206176242460733305482487450691544073089012316198591494513481710563329191973638668498011909137590762724595709932953287873966140195780957204085472463326893041402773446005498450399048896613979936709708679317642553934967095922882235987766857022206615972228697911151592092218830126017435108186905050643766712161970965070833975128501270003496784979457538708933322441956986597303353231460389558839762749975127536505203897161962450585635952729776031569174984319366116379225469981476255009346861412273662254343574377254585133888285188152903563515979093328843514561009110850149995712134142151177599533047147711577144587278076566359758414375283423679451740482001460746760467192356606755303572156138716354419034587493250208526426891840834346584513099547401039767150437840163039326952354816338688161414402810466270025315169214194565985190417384019998028924793724030767142001857474367105469022417906654611654658273330190114734746243037669069547440694549250166543908669015911792954410601491073545881186543396904701587875718076753164928593658204073888164677920355081882177084887330523320761812186131857630774010268629289270995633976167546826983031905746359767315338412250415535767116741205617233326368557888151352509693346913005541959075321209894840044639711435704632592368628692964995491570275088190391833555356277267728141412726871205900655927765398492807593210478639488964147712584810440672364922651419949212608525451831312698287339049891859966427264738158966537063431863883719326335074531910868820864405281744963310246470033504014508167226560471244605208678296103398900964580028579341115097691146071450606012929420562626135346459259750292658096999634037160696773543158893291444851581730430251063655678495675988178835427064228174336359500675389322844871685719843664246103543982733689228256629155863708322684960644823464290636931331734156960744831098058377747192451198535225645745818603231722199498359396221871222065270932681910372067138248806120157683306655082256117243216402822125204624072264885141501758601178852223010521206941621308594614591423122464393890818889246789372412852685328100903518257273675851847692499453325146668333737572626495252268635298009686684024787951617265216341941694089756688037041994636456883462083680262539625885801527926277356788165204300801336823210842946735220413378694400320288465802212912845503159537664283585455127484218282608369423982170774818042943640878681424454366109892487427469024930118526243874804589846025415787672524172056259493030058560354889246661229106437998276845142944935254694006403917726026928135108081413217835460345125581821341648013179135701853094648803214666693744316124825245160639732845142010891487071645714471894329067130449395289456149625218109116472056787989954299679458211077529799485418204192131812360207293458449927644854860888128435477609720546392208171269081687219076577083547150772591669999926020477581871009652311372349110574933235535377478676507750239814533442244643337276202769841548931621396771871541142436156422798900667147687867263278919019501619330301819262573518415988059992880797310160619131354821556754316336760515812666842023879444132372679481532828217465761291344071615259863069206789474977593843682448988504960990618242087858064297897281827290151654187324185293796836520396660884225978050077947928634417054069481467768747331040748639993333070815565391436343777990059434718238306143510400589675045495560314718764807278706934921331158208867410824212708608281294188200892105044766673020948511820030835719803035329680746534840554110463712464099974992462322469320367069974376591174934384099592792523935553587944442269654609933267776407002252527854604247914952530886615224423130863090860624690395926842824664555143704383702513255063154576107799839147864881430578656438843979825693940203703113887160700473565582149854416122458612678490180571332310322578572890297917400193576769525346810896133676424481347354955473581059842666327377637938721267790914083395732476745456172975175323660355298626716190782372083855513117964008170639623190555489774525801089516118748905518795185625965882533913533892013209052561890829176673763681030842486587907776257863156947569050871448208392290270616670662945350518420671884324724782134631785509018686028261264599106435173404418596015387665785166247090660609601863842086323657833503661098188410024195976654252696659213666913076792725871390247349977944100763562518962785178594246150076290881500134117432089922569420041031364514579690600308454377364784725045055679165306553490973489452848590002429459085094581867061585728501686039487165485430368057914941034557434741120656109386547040185545935666831110316445821050854500765041957071444284809975713906978221120173518013361100061292893910817766996882835646592118445907233195382525802394389676659277001535853131306038762036228938109733822783865973976193248380671105177997554497572451483919949229443450174736066868011022264898505909635635847960993586678015387094285778249324603517123697374803162728881307142534064345289370197157881387020237211927706215058079700108407280675426686742147843429824779773826392903981736518853534628387776788595582922545717522788349919297281595427776876312418656245627081538272204242757918255646165652561199951852451696624899848757016747435299967837441058456661325089910974947604409843023601422620409974730049393973288932314077437928036784578537823930408408801803953732777694574499437006799822389050944460044830321398562354281752430078635762911562158611311289416379720029577143381777693004299713885160684208613025006202126437341918375644045889487928946258056217688144193431036931470431583402873256042447196815663559834110159500308689614993493040467162842081072472684069424132857396569193479085860938197067994981798308824091232999228740887031847321923419169696229591873365256908126284570664226602020818800355909847897542110980271727908447318505750555060279525459331019937820545947954687367210632617320212660689059562206446410061185210171068234787092771321982907950766200641878353380153664605439072036309028552127213716086965136589500435413340857633145815731408958770337254863154709331291224932359127890490901909300720888406195498034014436497770274711636467487172277531095520143161033131844549655022974483847758164013418967149040189512133662480021415640054288728917776090213400759726725058263321105864011052407271837339166460812729963637204919632169814558208334378849480463500283232562693846400879136971133158359974467816762630845684897676462385085315784902707105898298596223670092441738358693158993031507067781606050171819297231565521945036785307220826890408322165693727067066512847478395546863907507284123380197860812280241775969253386336069858757213407775729329139292096897397277042651456167291582770018593246932907981312124418177733650742307502778416728551281060214584906996280992199096568779369213061098861486064716933293460903097290678991310242418240161336458292070078571421382034564538465727717125857430053031123859376973584719918127577749335930822899125671060942998213959973308629817179616711264921980762864274955880353876144609754805860422836390448661684027272524264801842307720250669865952578548789591787468928073494804248063885775479301786756506321192862515879712412390480222213801920493422422853844055842535262449464049735923867706502958505179084100630856184753529227718917552841994949890223765801009254579195006490436035224346483114477582928236237334285038040605699825227082314215797581255500525635843673568536195886792695842408417289030834404092175360059772834393594083650105420674584058670327656961823549917723249270807880880022122027066945101962730801205690614509700287682238346792134096761325812251017509763661824614739167426512976258187243006812936257792911940487178632724798583511535525542729053911932906836602236334035519390199043025223017923774654121326780816455950319421318726166324145912042438898689011880798510139539725911231952701615851601925139472842661591170127051268651334678938760608373287845420913767562579058948223258235272048727489496450567528672255310881881357297520997822855698732082491517454105126194920856708412453423293916207073827040343439603029625530562321502759781348561478073907725898979135937622923322593907392850319068084308792302003265789228570789145245854776918651548231182822224368375673061235167040284430397978370723775317677220632079525278111977620058609296295781131987268778549986372903555937988161127880543350386576982456713435657258737141090732711648720951884745257799385192902904505136657166976507290159772811790176038574139388091550696402840465500982604808912055576331867783924309168353309203645940392941542069150168852510465383410682782921051872784762181935890110316454616311814126658089040017866836255715329663125460419851394222213064574039408839837427128605638926626926022521569903981438672453649374609681454140992549155476235150982316201994267809176313448464043772331823920914497636033487165307970106904911027381935075167554583752259962807949527663960704013337002516569713327736779605086454992039987060676701636973944346929784218558321536352364643895223714860095163402884991294931371775277994758893884467132891709006364981781165746189618724572845904963492177173950399058106175999594979051671666732562596917813887370696272957115810835685431964297164716468771939681221987604412064396239826846399390671563414035774956515397346668368254382955016613337704374557655464970913161907874462290265855464927026890585432102559366743516088795029383307295636466597879280817687464579643525662596585829370753508448484878807005397463578270032989370837669483550991598014613174667573730806483431150048082609209294157294184159159038162316102401315743174006887622150789146102065214509835071794986210334810086339933493839450660894180125860501202792658346015095341056305051860512127885381604325585396373379085979998501961420978169901487914374407536771784170682758985295913676351389974506842609022159455291447136270995195294349478133497651954928956567010156306795253857469060841482793717653510880693931842472897427556515402130397227390131853074146522631764562128190618187861291020498041807375415807064193638543298059317094464579890281260455823700292174537855649106142400735111895177096844991000774958732955389052443581560006247665656649223110124405320328717128093756363276209926021574605348728432305747128236075732504403425202402941609627280562125699288813707139019983332632432147594662250432256480937847244078245185575846995685495976073501173316736298806166550634144889379433700235053409609110541026419395386413780331154182389811869625411425103724360623713852797426791145825942560648390251615463616238100436750142604361202810741303098305693546699045775447258789205141833596712038288829697082279231716242521017995538264546604170241226549855653843792357392994610659884011108753684933647810034315781193642388165750901513099266829288101785762969624917507854370362428770970831532843711535088483723064376815719439847551694670103147852287280343194568202264616186741511492664012967356911217054984989654380220915970194420380199458576535795330894529158577540355725783255532336675920074359106888494069214770945773407773102120875883405978722375529806261169056608389844949470939714526591881622493397475221069370030745402711085595893713616010562396545992818538883693152870891252462037638537549297924339600568643976522387127073142997313127411200213182547612583969146030764662023460823568331457614950143435049105893628232233989517190113080218406580037924413110646673315834696015680946572682301328143611166554321524335998462216879503223872977494463620763829745136204450904222132283795798278563564453474626634150020099093772899532140322708307238080742246977618441956526931649764305398028315961606276908828340835141125346676423014601816960801490715664338109634237914269621618269972232560669457564652610376213328830331646589109091093743625840772227090822371215166603494953034302494086354775263902410351204868062980040926800975375951374622005002225031821515065596242814756803730147718032693024458224374150791059924847460278436797540217609282666085107420585238792784971568062104595799020590962974161783880119802982234698005968735588975565816233153660955660752772834617595842639739651367700779317963558149692467993796940652168619830788385439091887518108316558816430693390703373005879256851071967822707156306515235838007371025445754799303941892405789082402264344633286887908263616499795465772430773227886697975817634671257771495319214224069430492899312298104752047758212552915014239796680073706556984114795582751254537629725965091898851980301731247650541947153544367885984153569318867339593941227216649354849675128051492898094422570151748770081120989523117396538406450028198528546523289367089222555953231509862608905744723493710678549853279350985648717968159190590287243434705768819581268406952791663336358055550368164818066254321031649790562944308925164285811778895513710146064614279616269009216141028502676719414740255686531172449288335378421074004729545216229670696613260715002712954600759439322522451164196173054786814729956504759711805983391743022631034059243848780010034381221534774037948184376542561519356775418667759557379284282761173707474359352865628808039176314537075540409427695336024043962323561691646195035237689920162822708257896247889491392380711285444223887642933952339347040645658804512723927704417147197185628028235857219356325766634660681863131751848454668393694147159936948222709371893760457316116671651168564172442157268820985046436443490126709743236209470279289558911282771207956742960093851697652903041716738525270549758941488676566418402984057500846786156961084792254155111263987315998215394388132770650788108631803502074713774341499968955397044312431403339600265264616664080206384748869962183662875827002795044527742145295329138167079816509456523540039481353594847668068472671184160841735493135628938285971149177573108821861346216328467613628173460640325291495939348534932970121507219371620670973544114958873322196559229159518926794329628260549788156685201921102174977230916801910331074036252735788494081483596950669957695723955694903854732794060053327171319854959378311100215200076352705591784000772873002664011281759403555441891178475208209051011319345692762555500637562149012547250451182955192805191791010000077395406123703641401355093360907366707159264404270301523257165413988720637423610023667193321247014318219475535887935584291713642920284692037788380540494773232342332878006808086419407538830090579721652114191478827544645559678215109011662731724478825872859089093655132044663813314185085919517779002842809494567996456569423276710343329005759777015510053333540377738147261186705328330041940563564590038617575261688038343351780655821955725485133715604354004443947024625169583229453720397627314052791333938672845106398279709953875716997709132443412127183838855683798399248637401469788137536802243971259553859060040593127885065841037962337501008950926555481164046781945409609704240114674821381439700837459686888195965637752352133545345548952447532069240396644810918945657906101283726216651012686537527854081335902593873861901818752479841830473225002039744896331484620944175858293893624176283829531440584557534717317148885417583107048332604636428636876792175724872342200736769312842504854798109059422231342517420255190627094050294460283612961918545888866664391229198435427256698685081346086788105609490455420159762589482548919072774459068814173322265317734284611331046620958390244963243975795141221512120940780006699823804389075899481143878838735603038652866763434990543532967132116797706205938541077651738488509432801775721522333286657555766011554967879231657595113544463089546605642605685491423408393420081269063384321130991012661566928956629396811260969124571526067421461129999527175874672224537193954013004325446550495044564253728542494611390847684919028757689122151568235652404680286399750592052822297741498006298040741169894388141814842965569628950705002535126345439753487604486617978634330705915372030359429072497246314158671365439668114227226574826979032596744762264817254321875056594470639229783047463507926480391088440021173372200528836739220563971269153557040685932363725175977270613807519225322011232071843466346700023475332981214315586369969209422528343587243922493701028532654469656746840113280301209024825927581149566443486998745452054380234219471446775708657954742572496606235752870294497856590325306376179781066831534667786131511909593262709086943686227690574276161713178621551540085143690275714877535974397724520947845987739346509297679094871090745748692316428132956687474600113506002901274368536332586521611730457156757106262019992205221401365383845847069074033716226784787980654912489792293767682121137266581771512049636123588414104333028070087605889190088044341762490966303483078839238302963354523664165058800691420221122986577532395265202258274724587510768756645857809950361821908160040856321910308635364715792163156702791052368901928808235010863866026245952045696449947565750389397265447701067338446631649706437183730971851488860152524399030470835116611875693464783126456297758893937474310380354231937862169968725744819222640460918837772574991366796336640875752262261388459287724956738435179277012159763726513357562467554081945389521624885622311482703786213381704392590791071133868378705609399560495601862359959824565752685153834018638032784834682583769893697962741751448422414571188883813420089089451576364855586300573560102998258107012969500449282788620032522025263745453710435144734041667795043798123472541497099232210639909066416884788086197195500184042183175970830245526877639653106745806576650399627962629055385787740781393696452191368781297847187314788028047458031343758042387305330772146993050066945932741729810192713636138383415974250834549937608069959209433566379362656235942054504926869225793718791177818755482301529928085355545549381073046336860953875032403801809974023103373443864877347488852539199711801675565875422052663183429214100909164576555665814300986388770025721584815392617084224757553248685556011919624409193186624987151228752623766720005564422040744244470098707792971776296992436689149653642313611603406827429897209179674163052826210380060913702334352514608758213355022041109725395271238738573620033131670043383735365728264156116327771148892160362899863855187609483706467118287258710818943752463756999875659068201348879465585337111346079346389833669484739709138146918382644999766838355688836993013134342548389670109589667644624251206002714702271514684333303704337984847538994014889786471332492283548111773305808129871460085376034446885749190948226675824148906686251903519753177343347346532714030413789638650285730370181156559832135523845167303390224033522656064049146337756259105413776571402808656016688075149644220345378960602973357040655787607895213181356732926353069294312901283711516789682880576600089964106642311483934021015644674685621270080754958488622982959327761237593690261801152917518318608331388349354177987138123778758964170411666966918785496672000986451443556513965966358972492664654713715416927708306130580822822916819766875696882690783981219873617127397332130417090054869196667657164143034745322549137737660340375225473130135438141071224398348841729195106345556175094242136585193772870735944164156859842496074433415160618996510227141096679631881794740647612862499266573574542362877669322308027817049078141132228431682674426695089270344085339284035382495707686560395200753597557826633092535690503623188910020236469119164717910661549221144923181988591018134395675389847783033037022641140184164683304963494749685051470750176212479603277037431408783438706501897886301885267940950114517566200010750278484159644228178611609880236093038055990364979407410389385155370164514738818073298779436976296169841755022568171658535779247058088538814742091696500637553708607563104076318232627499005546925425130807463029445551886396274097247239416517518099853652886875187355532393246397302038531333466269651804674165686300791820871636029616992860923092626964104514582783490183451923826053976198180903170278669852157761447227473195104873204691749427555088669778690995890627357849360299613389868315459467574314472425955944564005812000434732872380928142595962374800690038923401206974785395695558874613522101264456305463986959191679075140743460372741010918763801350038082807086193109922221600635418340640952760545895702433588848640437806106288188709609091524011250957174361028884248739751637621785058644005608410469884700620628576904067705883631889303025961896183110016049371847310132516692770660722253299294490844377138087104232483155633290527347074196474972747468842613379361854593504577758229690767259331411789077620761488801366040595861598427208322884417063180524943281857286380325863565026766681081686924852677014485477976420071168410266181622914970246176611142273537116963035958540043600155994048791585561830247172230004986713989649568913440714573869703496778741448810084650474766000963326016982352907576661869112204335016948148198482340685585669177412659451463703913461036482221274196396572928783594009624577882483714586978702186537906697208202042714916007592880279036451099309370575206787624168626357660078774690034255317337046900152823534708629407113795903235379734808671528184245946206385613210664184742979904502594541449761427749142332954329586714451122759164774550655383006045267285707015137922930861988161214765163204390585395152148003204457016393912339249129449616581789252661163225646465158219372991929024849472429828546769977940719695557368005673121123364448637700552429610753953000547278802030805752246687362239709024425451884158166061945531707491836130412448056213102282728744635340337520066913470800783315681147756418651589094209347897900857380645973314770885854929806625529313176854186135700861602994294738114712017729091941400201046862193690264204232898294665292786730948465264880349218238530024246801477659333958504659404234429642472108016709914916227260409574290389459403311135847128680344793337257784795350232772762224588482644521122828778569693722152431306268162927973432685160450154360509009321350259678652283843762808593296289027711529125706920616827376485240472629138794766756831342965472941573613822116522794436966895667025139859967293788078551707392844996586986642633235104290593686725204457643535617084485471249018261423618435248861445766991863828411525618203473681506791703262869869328880232774543404197836501007325670858591971993204834175299196792830377245145278399232546785034755144036135610122015598795869135362056075976718795687414635198103458960408945075995759803740138447788613340714295895132356659537667693782873605475612124626234059087972680355578936094865978049653746457986906285439375237433175525071260269162817005713089678004482607297941183878133516652334455698404579298319355623405121156699895238940269772255246867511761308464744609214073059298598655589914904661712085660459891048352247422002485791454815167543469735869058387910657437204177832865080495464103753042034001683834434959902452156959559629735052223671786589427711474990418988134723652659060140528678595412866490410096821970366135599508408050006962661622514899821836604613603832745564004134851809570471810044006113756714130724342505233141629335647165760189647745351272698784347234695285008611006062223037396747829381108688183810666119671832416688615684330080406909272884310698849026957303346652450382290428119158376382253333077952121583964864212100990642373028132424092782280612555317065066735535568523158762047751082128794695013648997210940670038913193458922829898262949691680437897582111695743672048712365626420539542576318246712421550895051184228323504328590780073497854167550353259812789998631580272567200934926137051421194094124890176170818421849422178392672198961802011150712973261908882420191128401433225204317024116062368455628295845184182530328346696121526081243222664714967397947048880952619080655813861288431667561363499739543705099588089784646691571535114018370116908999923759088307401722174268492092864051961057327059434946247711856217697706105397605287372440790931509723455772507383067010532111132019265829803404770873613202700699392746110529852472166395944739099048336190468149474639803738235557419269018714364176032748514926919512106649170653486596780122855954032922990100798267365734774808391345190481552088776875077669750605621189211332346834212098433729871115666490464983570568043043600445373495830256466588037637272119160151779818079344580745998328378917952183620213311956995110329248466338028177105363707938712020678641562446960925724206640856617862781256461679258189432056185002824440477167589487657241882970315748400833391744890454967987202778654938935318144527331718201552610162310640307361756384548690580034369709750957125515530010830497685780506145969665711550749043625935341487693591559267902997789504612289802667170335090620730097009289515515565077901688638383529290484712527563330053586419293143683968900387627015472510203760338683806436591658489817205334943405072510265285933468411469813238039949002232966125531687081303062256107425380126691721401272560034106612865954921424303533576088019273146265731437882084254098052139988932650831192431089261379732990641004075895183558530272438705656130969755969600217413415908101332859621574085332270591192045186236542629333627462285527250323787146208977318631918326226575162168702056132869063307679911088686055255594084987909741500330474708936405954812619165283592241002959726788293309492011414601444748614892364923666486795570743362516969896031332200644069042738427058312185246212709298919815349751546939239384577942431023857249956239870863306523589909730954689507404739023780501467492761364775846636314348248096348002246141919614290725363041483794533055827189133073732891714836279792953920548646530137887182425266282120752143684529586648185435416784131770962990745106749276174019184202965577374405127286362324362740154147293423113312087388981864009331242149153578978825567429014297846802747434467673992381946015177947285736092422764837305957282569832800906917148253304670534965197158120876777644631363373766712299727983799671560502403034974711089404287463860743406797300876519907180586338569019663488178226196111104240714643020526552989754259286041342681546426448376138027332162191260916138803668396881594868429923805384517501653698617046670197975868401178877955498881757636160551205807444183420471609434261303224837224617099714799176469885172886954220605819268860403544714278636240736424591519328971713336949390635254294337930778880959900441518156904917854427788456755732831553254615567479469601326584743622669862913689245694481108113296597524229133696670270664752289533243354343950827045861469919684560130378782569912278042239582663609251704543746384973772832880247591939463404388360972682017314081380268626453501038863460652145820226579001329704213432942564889656544584514588815414782632817496570890416497105459184591907026806747058065721945431887061065638925217030192077181156118302616992792277705219624116068533524942409363042237015946475797060196977402426696276338709410041608505938743312716064262073574347366835825422192545580349802235878522939519035705943722067222334684120395564935716513059479145895932918407150663453002847479815249714687344355541430257829203759407819723768441237334576196194449158593769516398247529502604572080954797067362982113128831739078567337668531145047812682743299103638670315971417043825391940380204792499098306464905597711940560538445443406390074329169182834337955457272173871991820985253479663992026983698320211398760195280639952690383282308913586789341621830723152198019754746121960346197323153006423190862819563964633499290615820213187242727191230792287186871072503733115497022382025397921965623488406631432456064636082904283644569482178367413102857326673385650612055248117439604074691089728398179020515837662079743026149146527388506974478992428747595671144518974435029922543813718068786467432900032313722139279782353370287058222883260589904344445402032710420159511874348483014621566839704250909387115020294425154805309419619244148395705182486140140418096464959762013624506965180716166465806340067360533523886662519766072371304815632313834723301686907152078737935810628057864566376428780038895339001711319250149442101655521512349502659883562306731282585067883051382198054474026708171923298600104143132736443556127979238413097329920863680967441538392436392695786826339834559406718893433170679515532755821398542321679423213007544941134159626355412592020614341365991751829679698215285467690859235900872005286309996497973555132846787604989666990112903629099590753916440145766679879540920560147696273601193358957139880459547744681184058153973726069477778939291319825287821234197888968076102479860621188806378913777682782406144727965796577161067207694252034624575225718475526430364894312037709666314967294669054767813149446915252418740570282801938941087247662231742462993611045250033293342639611871464564216403462761988028783674682996260389141633606821492057173461302520348553688219612600377726314365882645738161806337699660045468586125694887561318855615124259417885715353626397165977364293598623209390593358283052535723737125039625275271949296719441875660053135290931345257822230418273439072060728404120587587669770855192187649203439587863146889381105343050317950162438649802820246324099360427244228060128728259786886917063259898422356201712357842336010394777848133049440342586052759937014365211057321452630833577579509108833114144494467493173135838359432384695265352690501870040563396041709752329263867673954335287193123315705194291623484198029257274900920858302278154244254847651969834907605496917214607501212070729497232815886908525101405211583471445015750142113837134060073716896109060990966936569967103713107744152704881143003649190551267552616514352049519341095503383940922755345425295132972358475674141788544944064324370362774154234372336148728839735877965080473502185298643956225034698602405814384085490381695512321077997551316803680307277259545667048089353373375863963054310250362423765195900882010810572156013930269441048906354456284630243467789624562547063112174536421453285538117114999920156549418149855203555189229609892360365897252271237407162343063121200142662928991657676768789988612126936845283478138553533508679915025874842249879930790665694811782709400881736125295455158563435213363922207218217270855327006733342300601083610897418926382052191428482883777354631182637712071624982257010936176822743191085382215829589245381237252645146206972130276454989112443107537023555812060405202872523074714549241762742454415183041052715007025204607289631508720181126699494878392413294167364347628797701013579609738937274677621737538648360616831497117409236582483541462288088276130640888660769689711375013030385333053801408480612508856385526178261705799979034760597461420106993237539976694031553348817410540047273901235908527541704428977321932233087766825692998445888093869728835868683630999188963541855599236244262026391529545284273174866449122139710923334384500007444270992834358351308329619145190385981434009709866549957926774697838086155347915803100924021812284146827485342257548124575619753305189999944773430256075448435071355394682152857452466448658972458232250905143372306815827238731510915977626571676071458875224018054461862660348370618018547930313855220781097988526368370632017050009669473150351227788479729799045282358365994807235265567999523935502667743505559321151967075708104169863292300025121510735166521584198364257605307523417471131058962849808237839034221692221461222563459294593908817533310173820006399851017462276516797556766550501256425815559423829790186132984847087484772422246748382408814074229162827396038261645807892998865621766035121794953989988318839820668329195568159351888753577642863541917834695685126163720157236831137892143944878746575579029095142980685183973900774563221429797836427213612442928963379165057375153471408637999288762316176779206955989995863159901888342516982053129285429951614717745259385943688682340273058626674520195087189684562491681150479248301654301837520749854982189968754819663979458045796928117752760171413219114502026079053683192448652297804549821052785732484022816227715380366182559145000745977794660859626455110806176942552714481394810162081340267144895790661740989472388256889361754642444896253763603278434370911326023380957182426044844005698361589971475006037060048476194326014598964859833894689919648250591414371040231423713016514565768848242463295435382197669958012966523559427163207376154823767019363691982014492363041120922527214879233613054103288796255842201936418603428675343773203868887922595553978695032639047341308698857128596929913016058665767870799229896969772819348271363075917589058956432462761950234592690513855784862702725903824905960572113412256472637024361530698355667291244151948450670978146607514826917675345122058044680151515059145953065892007997233979402604522394607610363557131324930570475825090159651353201648583475380695401941813902286499237908250687407884082075107554809935958765178572920438855091263688094875095178327585675224699680452620966356094832083386412367919311896204240842388766973863758360339532726989018329282646289750782428239676051026054420441669185709742005994853820742449710229577460555022783747595450136424650650731805521362258171201124214258718922744071476377229410365437269062878582574042665876217627597607390601376465053257941069190127425966214527786286444832544438030153704165205677599879427448463742998101953698523164852097906076120657828455441684600242955016154341916037859078959207222652370380008489227247577600226705959581934763807378562762015181072439071093353952299108927224904266276716794036042094393119465856198438338609279368543025983732304236357270728655595750649079604965815053438498910442431737772141991896753672077354588838492103281607769945413044523820280448149552135419760472388418691939475979011677888828171654991548408493758598528488025746424949673254328309326575369214818783911420280758501608947123041775141218156280251781766285405274988531382623942607171168652807623482767200549039443665217419748803951126550000313549461699290204335727431957478092464539597705433117032325170052908547083023782348232182507170398198180643986596321142664690867666706169132989512400253311038747949980511307823419801889652603212938641258723970904692113933574396614947694686598161372716010224457403503423781784860527114348533502125886591728933694581797030718972253405751844532962903769243408489564621519729949932004141275155715817647982318711701664017309615473882923672060382306235314308392319201744744693142163343927809057785522200406270831755271965378983388005067197928051015037784150041550742111360846268125500834325420666490784952191373987216045386877011891108351067900590298527936450726909997874736167067029527217394335836486050330094114276809510671100633893782180783287841984501772832301744830988401874111882492436759777732338192752988614158784951588230858565580426779910714023140962411721267517447938908608194660799287787315804460957827489004884609885174543843017649234527190287536685154201241539980670728094659557577926479078299071241952383756066987529176851705160803127482590342516427245136931078130829126454416179596500540762388529178975344765383182994730149170925537262903589993875208808815451466387442738587373277725608761236189782786645903268140691466641527200344400085667867768362924231041837425407773613343306368845436840114809827666697516875691568857863821048669956312916371879234064905812039677282456473527784262494751493594900819155392034290189581090863706084782292614661565671930182789664820179066318285567848759878396256386989347434420334019616221852037005211931815577313624839381485000122548916463681430940276423442763620295860183933062210688370526365202749169107208126174987023763953504155581434955137489310202568930679872990995718420542270632951696748976240967743687218121504579300642116811354240352880715589664194104171025099393483617176981037984642056753789058053194687505950434506317116253910252563125430281540484316441509063662712712190105136009359766787254107787802266309018518348392389438493439506581503814197816144584342834317218639292062905905590449488139921523554083000313738813702297079098953367638623298326811047417288945453430678382635688403244007629035892156632071386624609501243417601261783709413592095603414940052793825563760642624164402831555618316543657063990354665248994383895531285171539565705587870773607271242842164790629845429631797113994665240126428927554788456984975351736258992121741821881938755036116073533885854643699414301871496997315805035243522691335963942607753053014487163872808111067511425988069191398933972299601181155631807763024595886571658340164889180854911621672406369323843399780638614760894926142082224995209558713318493043325731431099174986365667159892769278655652528747420896046197834731011099717356511929658959535884943871370692909124077530918797992797110187976678703777485105357698292040706506351084006226599707109751382227540977436780345433203845743108174627356045692834720831026180149488737920564287192229674104186794065345247896703150561620391663357969096392299651704727452993189379554054897532002133448475993260414007775950532901427529370359352000833203335539499977899334188470194594657212942669044448009639237737748374314502596781755004680320448727204816082352293393605965409713153880696764086246432044171084636102449329858628687948592983433572424606003784536879034690823350703187420244160345980669853526737047118740825384921916681781955860360823167493075420697268816664484037139748537037349555763751868609833348466318914484272270829378790454292970162252884076508845230152507732210021669377226184596023907854802332563270318564320610707019617673945888602776194206961458053900153633029788910342768124645988265239733776317232589395425428547320038071033471121342681590063851721221386207022953028389889223228595901064241932838927978511218495751152948252221468188818456027379939319457155322878358890282901304965099472891316001931771580686068800212531463335955210552026854742817012562820644772409767252932801998060150630535554746616565066836732306074868441603739796867547261217413740348660593689883552705959768670121682131848780989713200005173823148370040195806149534516593574331683446335917754865300541831156369566704549980273832709258225908752747154544498818930926759466051997916696548918532001933551506713958943395524175721841076487485840291977532365044881944593994465813887094591866499772780434664944961969919260141897707102932281009930402507011434333333881577978498707000877872297000759954605827330465763179900888898635990950164639474753479068250460389147674030818752966316176071847560083783166117612992504887990164711631789543714877903765685191437163626993770279242606004889274870572564359471757395808590601916247366202485831102733881174488527774477286401352953750841223619142416504098221484360597070820557100554760350445494495175630964645656368594278149513014836896918814856699796046126739303706712197667935087031465128781949220990944991511172722036692030359559390309608475207348791156775441023548059689717859354838056652838834813108558717484651885376472270162843659283782468867113467499946144412593861336194050689877960840680314439847144112430417648636953801902059640101169259913119125094965141085089767433909901087393070717154590502679884561789988867539838629490457076322148693037609251966058260954386700695046767722003099866811967410112384650242609466781606915435591407858379895382224324658684106059507005080018023900821299836809765980560484374401060546843909130592988692128518273686022895573428028525623764109216975404423107078067270283090668233385889383308740035583872779839504328317934291654434101567144481464556733704556944933906741280628053864053534904356807216066917423190713717563413806276911539323458687486604406357467503987843017880929865414645699823903076353535068195204952194839215398450849719033258908610756776608605153327810300638142145151377249238927609783430660732043849596168865525361594330158178841356928796301292087487275108080928332380908720078973371122657150903108928683179551729687646153165553167148191496800916855434951426283210229544444597214613585900625108671580734829490789959618721973709331620070714596509010863683391349307470155793423066513503528945948314088510282560902226131756001123588294966839427275252135903608927008549426750843015231526939168231674377937331925022157494544810085819502054415839764857618304779030590956384243110899717132761841882809141677189694745496502536425910888598905674994564131034821144143316078509857273019587292256307800636012835367375356654668735541510337140333132716326729406347733324191223488716636400430431421036159446579240902256539485749533176457791016310377695654450884803038045668551410956827049494109758398127641054533627458320059064804119420840778625785207371474669891595106754613180134454300120247941052425465616538062706286743719694655794231454681342929984207501272119861715773692684134828461021627491744286776679432075331966118800920214348871663246980845607163538776668222519665235646055199281824594436538862617815387309004147470378550659490967216398002384714275786476578460106135755209958863322724429442000835848666520835163140020529489206553678178226430827270437845130765134235371803785008849688074157942195714828411975958817106192903703431825158669748851341614348712278511651880118514527603856586460094194437402211783438516155178188831760843733942327786931468622945699521314052297034493448700075798492928244535322787015696312831367355128390161816901635177962376972978121059786630541481336815721871134346549343912045047280435126569141589500651984906991999872181262684019965818280860240191301389453942809216948538906446651316876730456921478607149874952355963711509072012639916558221261557828294055899527910067033895532915355541008553434623627447575803246230440235633810507788836996875200645991363286392087809833990152778252853396470675778365508433499968464085531688154233509420092213946738525045229690464275886957919130392305059214556133758493778880854961214875744982494629719281792570704129719610941661900253548641413749742538862034026109766688121513587185819933647399604299317958958487237177588732969420254892841272302178861315249384721267856589949798475907035349391561337314411965925956479983150204540065333544057099778505826847935646409350921926218501459955895463899146008057927442353632935064673465600240828769807348833100094417777677195727986303201429308017370292822942251352570053198413231156554488893884824822432845938275544468028801808758564861420751715583779714101713149014429249985223735833758938785016098846782846346691567145925465622722743938077693249054112098645357673744368638657385850780633656765063997191360099485411664996068390097652704810604979737915585865076745102593102687059745570967203859460824708136014345794339823873931030701201050479585088406289416972642279078417899908065520584414328004692597716409093405203280206887429540739317326482928873281386181715547766119599166101253386149660107719968799436268376068201170702437071988382317239319840272695662711190715493164424336141914912172506119694776855326516077071411993058303847039699145922997187580625150556250882603668644793819475690474252350250337480691293013149886515722419611390753718485863859826334080046337847417228777461324075251968174515940844643458636900212667483596591298218092685982724725485152013119365212077387682461470205731387024197117520425478894994069235178084247997176465131025799552796724661518831137760995935734912999269498391206237137022277612198004143010117229269088504584011591680827788061296560080604742969365761554819401839580270570941427044522105312025971485750432338172117509878631640051531009047428942828407600552013670954214998731350788853755585286079845344169602108007292863636218820730408055960745479760946721039129406164176537913516346924747284049498543987410359874291331986429153428872848684991361037848126533017867647890634292995608879214498927667390378331812107341287465757799813124762769915249969080464847000945427192513056931371858338932910117675674679274245731218486097003486665032861472286632750626914876918303612300482415952509373039308073782051467528402596389758473955650186450141781551650935700021228772849730999337670066291184070057993214111293605727048046972163224346189902850738393264165108043372337881112443775635629036911406519199056817627804489548627943493320138042943654470968599211099775358379100779241131291979558446103086712908941325233676340096864083531458970299442956248936715538825406049492109568223625756485189013427571915578037842125673692849038561693220624743077202262727792954816001678347594114741619922727498473218814145640100735443459457546803981922291926417455127808040458808755112845342203597352983670847973493000218779923476134093922590302848832744285107453348286252055094099803880540667257124567285915550094871894023489766658296062959878186974783712871491622028127535478988780865651688463817997090277453468713740055346198071190420726844720444579720360671547872652103599818992329671347892825661690648700807162910899944559054950426908765823387589398593606323136320090948664331361062013284270579373389148876015020604617453450745748362395203019313721405244759507539266331572557822281576728965514874273793977175685684026320048979831099969673851548484829805749239161507408850494385265189113088068078753764906972909856002765956249895794606941251923878778449036603112278624839950675684239333583078677155891718918656570692844028412552486553261643076019469539252833909335584631776456581407907390823893559440917154938990708693436673628882766785638682130310820188624342521665429135739981818698116923577529791280013026426383539550790063354152082356360743758331426422514324029321416661002804427911961691669792360697428510813134310203575486927316011137597909296591096723188487377028096544667299667011222492645263399543396328665994052492021891865711327632044575622992300853664116507016671238578562436384237263664231308051418811601861441340984585703232432920700721326802926178283068665496867095788214737359480259616694257658770235772498562051090401145584626247537991698094201684240839067310919343963944104497845469922047475665800492501835271518350427348508450497440940497343589971798017597157439245852046275486322008678823202148610589009588642047766498676381393292616829994007295012363053561358445913731334827450229883585719462145135944142103058730975603113337302040977506343516985286180994273492416990373144907059047669014301285387154180576739074391043899586204226602155361731209567213625777693452521818282471914890850091401674559936627771688614284754316081316142227650307622274776714377570439883701304952562716914966483618524433092382523577064156399023790544159760196303852934360925525214626733568356672152256966159932729521990689158340378907766865335523032617435498604832592116707168158053005053015266678237488090209622493019277688359306707471422197492002326925595364823222698479142125975408514543762550001467477539398188839170550459347752386790743335929570884086387840158154724491442207757947358470803610568964381650631039129159837983532779488061783401179397502972363750326470657701232459459622873421690741141388805522629194203520505773724777261772770632669006115494262212094531384306127424525581106401609132343247328617185165683202317825400196622637368191209369112969744254166818141389403440623538035656058054904621328955427542727658828114993692484133367932064946975793807448424042905506490512920548287256891108359403041986909906524912037829517434488422521810149598418276074912704552215893197645631001660621702861633916896215041522956988711876257005239525673087029444788375790107613633114089829276173563283586312138480730540416053229059850325813810299485298731002407828151070173841991949484835217764888539840178612695634903800463388834239410390069320527690804365866222500675718297308956387631819017454447459004537180479852584998274426895058161491733426606141322795520026759681007321335774668201212885644009270843401259010157721336494526471477131155381366599655779959310793145593168882515973667024050843362938669425131011027313986843197238986705717044407036199673298064811186923478676211726635508527459691164982893534580306364342618384791070718812101518577454710528697080716355539320427794166477033467388705308815993526275813308803911635337486166524746584204912078526164104036389342232716589281548251800251869491146691299267900531114618433377205888058167587636505726663181368328162625906094585824103191480127547933336324918433301025500822771075973059640236397279397496078328426761153302726283328560455534821925304188656371340035693146837819362955466243663600111544369308846088297126279336108806217711274387089738979546896977618366171714397445644732769866466716065406197781429411750607667327415819239619020956241270773734472066756576694103691592190099801662257166457629866325116263650423802436327179154480360710666804321424865953812875037916706554704413784677357632688553908516589245947477039203597855234524074218965088459291028405015831034395832792896370993693780597028282972321318345738653751187731052354005023775572505574305824522888804238661841432295554582106395476802264948074804996683503593761949905552748819817295926872855399575324850769647988393985945473178444300032215152072820093781502835365344943331298812848663384729657850587176847458051518111474510576069800526375433392423226079651835676549839748637309888688833948841651583147016878101492314063134063934509531064044347106047269637803413868275972029653709192854598104272198832358340515958453768081981685002002058962531968194106700904997687064809450256170371644407341065236076375199638299136518303749931815193368873937427664642336196651875867253330678416852548501824555901539449218762826684838543142004881206652856830521378788334411286320761791787708107152620391507409490211499030057746366805373138751247269296411952894993734819219734152400528700438139920265615663882184124348462746371870674400317590119899285444782685356392182197021402440825745626822897201550605663523246039776809310104012351632039077184775302361089510853944499316455256526268636962252592978726556540403263429857874187796035062057094053956392225704493339073609292270611022494795603633984810899197621578523529726501654248642735621642177693073075611578114575770644466746694499942004869194878201984198933614679918590428205768672147865846286553319581305728215003395342753406739214805018195529863692820369693451861978915315445609467777291963098609694132727046063191399624853540093156410959899116810402311037205925392306047988068199241051915208478939798319261398883154420034123864248604658945843233089002154289902690411226828387543497560263712795682245018208243159460276615639347898307934254010518005136615217059162514094268233855987597055894759517310068924049784218902513191495558230157948432628936650841221585101476160620512374076655848728890597460639154375432122114981762370039754083389498094779270917137845787245654998404066482192974465472282542283540189674614151982546389261248556953504842948123714997758413897804533414646283234546360743332839890870784027374635347590753410453196590969060008758885188453120771353452909570842893504047611581458754206928119904273396173600646092096226923557980033870385438875481216243426797090819670723611245732256111303408969298658609349382497759040723178214706417687961064496569244023420634454857323945400006422204178916875844961575211510816618762239059500095147002671715903117579230302770403043363106129551207759191120798508174907273634683952539037666978747826435349373840193328273137559554210469683914967419310836401929260650044568294067142156413087660429757614522167472833280392797318774548598559957435807772308603831660516917030785902571346821290789609419934141602355704969544451161877354083489879011321596044900355437846083967296170252191282846196023569969246905877092432841726453109162237211828193462434852044751450514670632856919476862580078097134577210999794203612224003725683722883345273202937525017136864188296519488030461450166663907159824808416980270668740019315680983247054014980723653893166910836248712204523668877439646981906888299418101997672485872060142391646485263766255572544669150606449313754019476789724880574851177151936672861125648643766383041775877626010067397857591874723123893648738809479576332225927307454889824174082418500750788295929031839075545209532271636030441131756583566288531375019483347531182355186021243620209071222657391758620386235735825417501776031977708519069596738916122670339439197484466090127065568056175814803412952457377693562409119745473086480431575071013209685061016101454494619480128110213458807677735488285805629594107167742523529169618353277970270952726411623563232219888811329156083388034969717689804239628748311638122517295989217667819575913356482950459395220791174251768120609681413287412896061213402907363861630083011227887625943085508265559202947603632390964310066481555476270464892060321463668707483516052348107998085133966433779833645265497202096356984305698969889773173223285652709392245591484910047250144427286241332892543012961129555464926247897955126645224948752151241622692941639875259933323498612604843145030975837348558024351884915327721017470997992731183525212233611749659892755005730365907099844989672449143848418347099669194924782945657882494811059985395686633702387388402695161633166149414555478957194362607949580331556263501227221573288994212445010711619539244757676801256515613141403320214693877197124320614143529247944306659887673304673370924081738739832436317748344399363608112173073844417931391843638728087950318133932760426684313209418137804342253101081232989856575847646372360666276048320733388410698149210774421544077580814820195571117007587358293200479019190809297897579425469415925357350728513713108296892068406601538514623548336655150617445262866730935420612445192063573940190578092880610103074482738753254514009244633994670372118510774779008787273534919019041875602821213295988545336675805541083631365748029552583588105383293978671407860722231299265243152443804808686062728016458251048518832433641847445206405561865815797992958455489208142069234866749248363376082820843241828871635607192096783580825825381422678782204211700326423170176999375789393050266195519580539430390972877036622832764336257245801523857902829604398445781325855856104797426954739887691029509725193911712876929417213433579987901887148019772660902743937309179455573228222820582155790634698355420537652133840385805995727947697152452244354663133582994226899518788504619584476037862805253236513528975128943110341454376327413558910173511090323166807286160439962526271597872567624678444125129667375486113884386253286484351613067745508219116515637379487314996341636717222356205475216553638560192833708691508400838142303254513755908541208703381663509762653333196095264969937234895685303776345172868656328784287262399178158585882817789366094509266408778894449058973862796263571887702025595692320839762810326404861700666141440523791157349795186643842728721964819581648605937733640100721032142801389333770683746723903759214540336891984589113602398162753818333043860252511508629845034242401251318917713820678202152606519952989203912116705778531808956512818290193967282988822034798364341878645826179845573571424648152412332394835207395110668934607855515310329773501271949641020757470929922537260819683595237620713435497658377511292266156785991525052354252444891557620260439293493102661192865418579482591155589149776737931687182678465482721596496456392835174684169957011453175024757472233557208125524097641330783362438394841288202669144959924760837089603755762638125391985924778866037375197493350406770062560148016081113171179158433475728689519901071456510456078050350016887595523209472913414886056570437249223465755471832813343045358153975280549560658819239113381757583240315903713864131351599756782188208749629220772826561797835169063816541637393743229627298059460083301418769992437325586977295098060407505256050120616242567207811080151022493485130861618092995193400265530853397646851840238203871442565072632734982935871170988004365868804726780606105052618524738457437247473929922452469241011867005734492056384270569725510582126885864937552189249585182806527706321227392120852441762131722607764039072827810283023570374556536333048408869622099371809902063368171884981088073504334255800355440804159234521463775821203369370481248847506673669836769109059879938918640775068376557825635480354930127167702078637360045114890304954953995591191891715944295467708938717145957600177679033130746171332114628304107899681867467700139182049887692534954173587908165680878903467025756382919633411579115715442790446438100180010153496978617220693933871711994529774915013874295380416559996328194792747843839675331316932594175204596560858437190176568851314067292421935931948955101201913678258071946077402787461113782004196917723964358816343348884058944646375493391768332674301978182935773731081077640048888522920710734259181663891993955708700455324149258718638064642334256481683585569028496478319928770492027765868514813670251572791450433783897668754796056125710744480010776319682565930912044137782748203895248341823647620698076405929117329602345584105340472365944726759459353060647737874303291809058315978469120313963266694319166425317909360324227949434306204524279346247578600472637716387377519873759497653575146615682622932576551725632468621395872853498316374203800700348544284944489401203992585980380168761651016273024763023667940129528038062754750742580607890889778140170592066900612914385940653765532828942654004719432824515939234590303088546826849354457773482148661709940430138472847925964321216497198918764931978704748197919360780045852246223289625350835395074932088850215584558631320608085618447220830890404497983957247530594674488680582791525018395848724573049358737392763709894785178764742584898104339394681240327663013351954262861897560722254128823955732048316718983658767132367762272414701458017932000694736396057107394314259930957444222251840156445429938565956911293767933479310615491301129813586872502769202609094039891302514928772196311262334774180812941571477346677244118933530859151228750856029734852178152415788298530396599331331897340287120828878532729354983393692941467789135050335603196421618647313948892390072730995797021575607803109401412267944875291743423354759506918549504410771989679054910859678664233399709984274664254742689564342896191192140488331411945898452084234183302159688060167894002264295412933175225508066054075491600551223035564418984455576170959768101683751017991583928828288240503334004768743512729292812056130268791116171668876473622679638828644965506791386212733479646998133704740764014255251843243117400857984528572764800513744836958074973033112620123378629583256782041770068503107667549483706788901230408239221446303660691863013878240140466137762981379254594569840150428401832351339236633042400292704567809714354134557008153309455369622212831686485999725568044820899725633857896385758692182512737534066349706833251825171064971721470376595509104230163242083901924467138683356144650848919038680144563302392083044257120662779232214572735628982989875363976512337572444784454707283894225681931919119165295063826821472603478222009899034906304648032710867539574943375923921942461803777372234946411040445681663157478873955397929317743747535168808327208115401362687283361130541594870540990946284303081591323530205890047810704674086827589769540847008029917213199675734802804359453302077144261794854208978745573524044943017821860744866249425997035910495702810642224279185263099525364150290834809501652881655234079174944986312248616843989372340421958701678548031248225847398949671517370053196338429281803562154224333833191657538015981801468117587090710262526389717834620387835357746432807437743362881040516181966232088289468258560586714056498724218408594606056241760981053446051726677797488886531257983240678535481069600975876186836865800247350724516929159418049108177502416473029669059439765427927692172768961455289617870992862317792044980245552923888281206335955042033042448824846921967884307121097071678346407660578607250134267181475280079368878567398699267145840918029405135296389919418274568054120370321061413381451435741143920856100946189229926348150582642011364258466126197573745972180266347489251059978358922420558347099235055046996304003050955120923627483742959620945277815712483802692423949951986240508989073729628561864032633437897882577693938789530565594429936291134461979691077039295109309209098167875758941438762033470861470826330360480184995104605006988433179309218756099997264428085930226407892083335705023806929043736405788920390076666961075994176489159190260447149797962679936526936756049044712371276895038556894952529990556109182419491145571609605496346509789954964343106659114866919865763877494613272978269877595075993118231863167309788063799005111769788323245190993564379972620308581974457260465730427767668861348700929383537656730065917901629109889076185840388387510675025393389030716096179629455992531380565544376870426996023681777258602694261168371848527484035347503329613445382326223809478589821169702952447660434760058612800602399706771629470101094359224697850768443431411716769581950291669166561511008525682254556545540792060392080739718411009368573452413181564191844646378353835425393958888026434664373079437267709620705766523789636350749429788214486027241199031925368151048277243796620273783063005600409291683469268769490093176163894674602136849774903900713721613199742677946437781884181166915076524425912437870350478294029125092030201390776672507355268312453595688679119036149093566534021511565492799494046871600108036578842543805277115276015136125513563125796824019797401183793341040060854730785897548704965955281656484647712782120434020215964037882907117098112075246972198844250401884638535036787673103663176576210230975359270618975496508980522241826987668539972661880898264625549321398310041162601184515776450968328077724327272873052068204945155872509178007444019197641735207638253076366650899872979103784334412281077601147533962808550758754881341333547229125753647185973786465574034214943475900840058318686935109549633514451124562650893201732582267974942825941268884199693951357035140606649133136265695709335699953391565321214444778426262215095113324391229162094888325552995355649353753543131621629575201644982584712808125659664002566380664613685213790557430136884269595922397480693341132107017118049511616696021441336641021824444742248607284544974542344352246719004021588979449216637979120071236733660967120363141503419189931233577943508517866268171417412762519325828365516355603318655045356307593602386035238066272251002139815519751768568790127976432031604033415833096540328414561962609792591985245652564297328699465090314623040111054635354727237203865546577889368716493049987011492726443690625005975819194456480980856813773370951125372221419353689190489934844682937679518321980630116843293933731695993684060879975189105275941608233785661200583667696016582655818431907576195350996303787129787261094797008268676499006597684929632013507426502845088884962699516474413659784228559410050200947385056911214748942837279929566754240474712517712325564413526709979347895956037195408839800521092299664733757582440790882457581954525976094688009974134810601085080572621561619776363600014305543217640900945312991242302112302181157923496238481734628217790210628092714938671959401945671470929036059113044835057399540796748085216532815240327654870487698462590989645401955267548386956722240682239598915085695209659238489849326334287252180011850248574762161364385337719147808840615533845147388654014811176408048763112319191802231328325397093488009768137860804045464199215869381751839568818628076148549185771166766241208128025699045051823141684482218873795271251245889319938868794410282913453907408909705551073475079191543959186026301415798064763347250634546635451807055703743906573212091328970256215630093934727341781654991769881889297716056690795997025484779644911038006794109740153625175093716755069659355348543603975478018734567554628254163304979214730110921825932004650634366922789926562741449235504880133278382321437718783702091803523121085031295754837932978868823936262376139258069958360414773291924411498550995925361544936960681419154429455817360065199944588768765975548013158738334333668109451544319098003921466145104994073592184139275813302352763798164036234008058873665981078933674362067413600965427127630914306393129232353453213131858831197451553146804654185821121550877710750650998732914298543545847654253056891480790398253347436046874684040092627478122075616728545646950334062110123993821145121145355877617444588075778849547622002391077856188243869237420589438650326945767322040684775203760040269220658638274070383102277552735133222721259517656943707384931955975766487020449910485549235677196265296381795316970600430970740433025924222340161723625663193456544459743087107137607279966734240932764837912937247268712363353503423016079959759362472457137345958476179096894109516551853575925690802400638315078176685524733156293964920729209366238136635375239724758118041933750209368090042948015633959630406962428383308019496760590086101117153116369724194763302829463421426661317458092798220170481744515970605385775614501741169153815798641722226917740466197018101237420490023519185048553313202929778314419001186014336763211322275968445119456148856688846359156904522381818176463095528152549031112243957834413466291622117537589242715277670295416004725262467588509467081525588311695235379946590624527825844736104989771115477988839138772193866895608223741818592266537793031858722744662033590706209751255720380953167966596209843636450131254584928736850696192502808923926620051838023541257001123992013706338361524041487690137908024861657207730811583209700209865795466181575954401753905881299139038279853103496334762479469868089689857062475718433679537437206075629368209263983205868890603649431425208183081841683255106810194884696904677027870348252049747168981353407897834727271763921533070538050989138526477610334683186724401816817284780675936486606386048751639247618471943211263078705143247588430285177099861273295097466105506555365725772554658671087411583896651248643343394398607834735836206620827396250193165075023995113834423209715422065325032642011171937630391332368495586064202806774002511733199097898752540710752061250931883267987145100905760571751407168490702064295597446030551422206940452992522464135506020754408975679373790528277032893919476326895651796586212118710395494284862089795729351262993329668928476850132864494196557833071275338641183105748974748426465449237119606037896911863917589301625553967549423443657950682412083304394055549847662329849754739607731706239245774255480883908713993607734238384079551451492084627255816712992194335406977055364382555045914731386840174822514969239617816085233089203282349461119489936307664413862477461652217104400138411781230466962687385440425360176055044781111676127321443426829069611924124427580673118632755962578664854954509900334288951030547631342508301688398754328482061360122516567182102173840558999907587672584377808943934903387448927938633235767234602909655520026736717964188391520528934210990145182624872182294364832123630161090948666925110356893863538168223331231237992903561264847478767243856443524030587031284431461035183371585231365717523631904127754618826363747542686614785826498487528929198494080282281539389418812998353892191127494265124382007432174086546017844181257572093501592011803184465342579302422453876727233834788650750840276132901767522319396340030981428476504128553402642330758835006057867794688346129929383686017794487233283529504767090867289729809827708743363085944345626340378002422427193675429600563225933476913684989276810887721980903652323067502744738506458249743995888912082366510903593168915944787441634491719150224230403736578103856565786107084319272786347652157149421710095915752274491005267835334244371009974831822636113760521631853945641804356132367058279752198195200609752722317018369193492906398110397819687517965041385934089194364343604319011608066289848673754057901199657305965193845022748418677392162545262069147584653015305879427353644302390666687293218128703648219709079237182204707006454124041919879103033498956638351545540896972552521538656733165528575577210026730735482199988362960859075700620469493186366280570537947490889197753155664796917796226958331019689141692030621264393737722316643149347526646488574255923459491331183460402272627058114404489636001203545720982101251933751599206866718604613476766247670506216488475351342769940809501577615208309392963362494087463905544909811241721752091276334054069470177086426369420921761397518384474663851338578678375993012378919546525324418450545319443898531600244704858422606883526146719154448365218820480401836236514258551673369738774077497663212679451197881821315250271478646815993782038929464957450458222641087800126308519469161703137307871992434032950776973332230077107546220055393988818695604798340753145084269212276509676312283309756175378132244441694682992789850832529304888764510713938115194890087586984246497848891377338757916644213414027346628356325388849466333001033537391683144305324290050760226755596388322909721453563535212287512371215759225162294576098665336229034946804150393730108335805530255895347543741039367362317747878541007373855405187405482545043069096957171174862630934076114872303228035347181681547066307353926833738576882153625941453389552251958148703917762786155590632516663847503067118500385377199368605613832887147333500267312310134433322614915489861805897878915439510265676757765178632590637141605329952891214648285894654341429107770686699241759363154620724902628398168743281945458758531791676009176819627820998009011997130182942679815217211061899748720333259727541748868241151153417366358576024999880823715379963591608815115272528468441092688738033896382131143461960932333411483833872640637112556089202863192033072431098602879668953478356624531503246063119587549962103809243832059783154724145751731855506962006173730266395043301432908944785182539469745127819093325994781256122822447256053065768765234384404920876412932544528640199894445785043820028147595837092018485009357342192185961402336272171036070271964149543764251715044348087611221133346392974393134499972669944896171975569628283085287160213158395783928460612719341640252125565117618730282255702863854536195682236619907871675223363192984919295928694853186416162408901971894026383355698117186525668957509857190647256130722765000388274222966694113620761951744398790856883438749416394561071111769111071831697837554882989091379270653080385967946487488574200729810627637042400357100039788789079391332574107624028915958503146105348504933061748946420306894254553704436135527898095673468029967405694029648945051851423073188713212297830726188616285872788909268693522959732938180419051104948462914106741681695351852933519057983275588148476217465059406183846452861955304152065761449953107194436231972744734554106070818760658299174877668798299328202099319153752299451342009579076489240059794770881566977497111621902528911346246390352761559110012892707139886844110903465831424973585434936082882419838701735399761589990112216305692549467759809513120006733068012617737707343279282707533068057010531712476017342180823976073469335272072293198232632339825903381854268980288836003902763841176064127960732485794590957803254934439990970371728408043332843450892448639545380185383095316024929372547936059051458584394907569143989713236672797400449756963281970690682353462624094293025124541141999286980350359653601230685216162395446340809224861689789077522032087732089487834143558465370075523988767806586804098582979694213683095472454875624259073237638003619844606358293494035454441883525099735135284425316085396626420519536630948978203238637405635340352877823736045847097572614301506345573793774933928626222108530010979863301217967748560590722557142959849941239427658726493370693804814910419023351461067454359249480987357029076365463496424460017397551389937420392382830794609619993715027842034443989641083762701797759004821965322547759976744242491946973033166674478145162401623523498460278380086052305164600138930856606290060631105445809795783813659932742747926653317655960258660520349343403762111400633855123335923935240118162752522345707309542341704339561970923597645605075016093285660308741775018795940806505539386701692529367112030018366032504128304803430535836254303375852232111484513044484233730540779696333216109956341725145757606053799907171944427013569719200579791249634799048307756318463988206815879222773617698371989454451229915949326002443093195229616241152213116520637837908109466651138633959322736252695119026614593234143417597575654342496743802515740380940014582631078388429202451755530877281362691526451277247728002960987875782333856679430527902624108494455703794896396355181899515743267368311637172381511907810084970409157571206208902221000517974717764628083226205996276221480198844589349378763032695508408266900982146922778172646013966659908946875301628937600964053161387785237594785004117334655603903400768370284626544685156281901801686694762829851240563277409070038333331131237458159770901533862131486798164437211696625231333412086582977712121023347839414689835417027395820120925878518620393366730711080510876822526016361168833710812790543520590686368092458323220407504241039850621451027762722465481079017480299706521814887469018492806549961300431128728639483328192757232117749766243730917887170812211997539402973366247024708334087963482386633636410507206831112472140452658903126749022861156187752429021278296926704558577362292568812992800087660487104457813792965047481665477369958644515897480898126636278281770051332976675027232900387893726734239312146365952592013972866152876399861593884945606342645682898435132192311257486137345962535457250976433550204158967370448704923566234551198495913091987726407134382565532235819898477931932662576374237789046328296301854846328796293888226273823313392179997358301504981872483120120879470973976942761122014289788308722740581166968187585394006197716418711974452252080756597549070563540486384016518987213935795958275168521351366570750037964017293124377030380625731354947808185231776735026769304041395918036788850234718909934830978341103974132487537587536948299324585081068037917770601315639777318869976074431044878121830809377334776949196382832344778087253564056992672241448556192635002713947513796850247493192393706175384324471864920282442581273134238136398341992788249309015296734710473377465384519450425916608094186808787173310298317658035709637985168317968205991140665383179996911304355732437456258688036129863178983207387001400041341468361924876339087886965660373125561349123632446872779412927858151933524281601125739735305420130865035846237944467663643355886718863228893996503144541030846860020833540832987157356320175930456569482690443535998895347453127823999331443259121277832908328015958833242283056896079688054430308432013638908244390989131949573380478661660533088011153343476275523574272759667393365398239390622611216051896464303155833818576791477833777087400090331493750693310057417665714444854737294426841903130543127873887392070505905118148624545924633164642874278113716831877536603516668925774141901160708002419822147903237031395547314907973954451427238550767036166189769930468098361687920957037160060862995502243205806832487751451445334120766737574627407982405148259975705535434546646255860258977026035984494510383188374062152761978158525078361471129077200527634214791329831974622430282185616319643952758890699153259647915157704274420125017969881501209716910287339157730119027039353382009287516360761281679211584061084968794444198306815028918512869304206294966892400173003331545593599888649116211199615820214792416777669714718921681965556960044714110475638042265342363631505257048579446095355717503545857013625814741834444615659458864514364235351743399909850588114785758686243053901115784183730728656845453734552681550543132381558140335304893650824882750658689873670000442806536485364588337150135745310512644892805516546474874003360009861449446420697076697448792886402312319230049271797143413359335370734602460907060729966790144540034159137315171286273113231035913893015028714457105924595418191878098659662059814568743543617312483138014811840327051020350487230547332167084255723220197563280373163140495921119201773119366244705722148525441997739660435775999854553711207927089642023937988143203701209442713259608937108078214483598159619741663309424549837743890803791900947196833535095526334626925039177293225654879680181815273692204885446054981133262425130832053882404187083939083287488447452900274775128236849497404413315953013361754381352198727146036614521280396672562077977631535040285118334790028340684382092370708142016549120371009265118200812533943484745702088675757959700621045667587044201259121568110285326746463794749847234778714790032351104971169960522104118903249396129387292824045381188292306483177432000763516141134461531708156274649628762004109806035557074507964242532630784393592311349042096259919373357858902055033659125727290671642142652949068493482705066822346430463177005043426458271930571534423945436166492860961776433040677652365545642826231054342189792948701194994498123754021553687305918166908334510630535282387121594144186055682295319470674604046194365456268170380062002722404275495125537467225486001388897838939876677058783607148756222040204814237666519116952771432215980860751337325816397813600371550803287603849691338487426399987670987246743670381869875764967185312926275966983495173205061591761658158901283843963412434068475958685358864837983705472929129390319690068629924377339319293608887848758692192926155731481227894234912886451116245224575461288472329671626894916354633212475567855634093163417338579149401786447497682746744898360504168980245175925549478395899092276833621297902153484560108646150874296019544767128004092085996251818303114896036123055908706375629113371399035294425428791933122538693842522304774292839985463596795313506137345037640934865438555915105054695176587411300462088035238541447079685635516176960574636792235817933906277997415115562006413393661291283062076004409249150168783251849080436336909427658530791411097410906225014386401840443325063149592585905269686550448738965708647057765432056149742403838319927915319729572012580307583228093934496651923146428505807400485503165739855749053993317607040348792051852886025327650427648888311493016343414005730515990357688931002002017687694681998761243607920656136031186492560594631364424700902873485364771548412169842410318517524858213652285652825771788067981501765337358642239077743017885821538539893729226571795075865171535353645862626485049145549713534340161650961881323037275231510967730403256991277938234705416856048571720042568567201206494839329989765873385667312988961768725605083027308963148453586516449351113899327123415881869321068534759327679034924628179235991718131607343107002206422338477647447624220510958541385653286446018732063108648862168243245765286945083557401387054851200501562759282647279734614808347875091763918164906498469484404745408287608631554070792917040035752133410486328580855706249674865564650115992988966305640680941666964368815904331913891407543935724446825602889763947777922554522506656823785773955943998125784710858878052464517520870033821771013617210879551279067937048148684798765010202729332588824427156323813107087981947766253411940892509309124455607859902729568901299790173817513140291335028609021436939865813270714562386494279338536843591353848294024554107627085400745958279616255036400309535751780093481552573063912666282083917107744400347847049541302065488208728840518254019409436822740538118443646082797302051656937786174716846701934775218239957745782959409334029573620039318941232211079825421602721514368919320907116182640975504779430958437556972362009484226025619673593699724694445601396906077529643269464616882406083673040924515641209719050787447963535587169781122857943966171762236095257128301523104906755598263174202175268526062306928518726303293422919511457241598772587601670887565967801418950081687380604723132682811652586864291057492833399087058855658586661280689461468255323403668737107510275998630151329956702690105216995824875472896760956195379952280020336729067329793876827850945833937809990139410104294321089256306274042093844439430718085747075973510873033685483393388303963741952552368949691930864366049443093757183283527626546644986054888579358817325079505717518320966430391892304318954334056498743828422236596686951775031011107887958474807037400356251037762684764121255908014451268132065871769429654543212752922294136594065737876448393142725992272599064027113606689371658248922022404360887034288956499344590224034747578238495594559258671770501336076458069885036752869173113116827018018084631592177710300382775944080702800077784529574693401572894110077750354537526331074646065277165319846874761901582773077235134713825649761027879369122956927149063077182866483211720397342289108903421865573693321334807175998943223770015278147173189286976430106788265663114225743853147586855798287062226849957798020936361583284009899753951182906147584244421162588406975499506955889785895882153520397050142704929643295380983771588925797274777561532808098805816708910710208383739446324262566574529901392501667210061732818713435069060294448503229287980982132712745984706978374918932252174538443314908706942720793281496449736847139942627155410084370105903130034012055488834992274937599348811905156866381793852547768752441198978531820182210506891784019201404074213500944490996816297666490242073425356831377995402888176593592907933242281154279752358525505440041570083517467834674909826289229172765306665189098697213470494546710479156200125465851774877877711215806259169837333295004874702482686380160174186981827579555398926321581593603533091431508382794453658100915159069049204239099885353738841282527239293801019946180123426536084130678108928892599523026674356563694264737794905070274928734241236021898726533512903716044099323325736683673065701509583549848142523800304228588576511772550591191861565550122100257357129024317482641660446194343239524455788443195304958032812607136095140987890113899780716916130663065712168969901840877807119818838797852001618310395390251575072089684839770593544090466066460815029118559944736338006352765701796374166370615212811755403919260332182678797641357705486451484758172833131616986233363046943745155007262251485029109410583560575605745804187047664598292505091202282010650548368457204936614893310675127495360353024004239143846535158236392810285199550993549572849095378218563012195531231043460695691804871728526660576079152295980015046382127160690727947408526811142838884125955823148621316120277452271576566339729919022889862228115914478075998879770448086204325631247623828631189352732530301211641320710146794074788059457948987925743058589266722577738854184537095233729382689844324048230171097444999002688273110458925015824303848730092818790340994370702407327004656016382500268406557320248065399409955391002017337086870083407644684571696345101619559196887801879873015542387619564741919663821571927508346345292152974950886154468151489537193091027737373933036516776536563658427424427984100366045091988376393530365117775996702655632778823595549042571177171349723273275752591845858411486514283354849225308453453330536296630172917499724841465290534131896511041723248742478523026660528544802401667946025532162323824054063312029246335108357886144603435822732802033434746890364733217745184615902893580193925661381639042754735280693993074504032116459681221397446768444224908146530817251754318652339526639706567615412905187418628254062512378361548412715015750637696021736535091223134998465854071257939146259740975441626569170778732880235604616270902074481774946909147222967510664958931392173344459802075344204202251946649904151828345276043361266701328963304737396762528207384543528417206316475769488493794662487446019922698624978707041592362400720242801664512980957521722064612106350771952613163687923280178842036590895290848181778768589389559986502928392713054727330062578840311708107283004291694839038783774208384367126650470439029152271444365394459769111219743787143356084801195494634226135707997124901829011486046931279828571688247276458174997551393141512312564022106941758473176541058591051310738334642599520115517481208076652282983370684754707962514230804155565554915595114117646663176787226212989697481768883118334360638653191863555790769525895723339852918585379861553205046203582219950425217735524824135613832518747635939200329938085111509806817253997032521889836748689123229885229602174808969182896832120915341739140113185604256378240778768077521413945640025429909564836551662856946019700156621690168902794597427152124418983719075314834592953857903233264291853755249324375204105659517064322116177524164869517288171218650191584916461289824339783915250989706618790647983322702413774547521017175416144835439656788820723296707041502451125572331529022842600743623427209079947610914723570199217925744088811734933169950981513577616268365938616941502593495242275453362641282131644276806609625986921529510048831146314174304271650659816562719594072598405330886445085598601501984775518268378964669772022235276253726130963802271127493863029625098610455798985532957201531829756637550148386423463950402342224359693888702120999469007778087640776077120123793630577695708896590677633711790956918107609113733999852836434114511869609360038952765706331830621347648307983947329241244389498862295427414103306312625679597781439342796281515019950261729249748811161540912710071186283609547175902775132190851082278284982500557993581230689322780316890600792487609001803108253673656972991961033570201514034779832002972025265061019452577954190526988573824812158660786945261547568722497897156245409767587407138139580549112204926389869056995175177305323463016932247383215279579988791935276090892003769152778382537043619827189985211946983061496406714867664955388866032502240305716557481012663169194732575272954097046972087901170191006890269222389655073357456995561936718643006477960314331012557871635862558252037721562091053082005440944433456461964637445788652394459961149276665256983581111101440587386444246563197396233733657515338965040887661629965907798316482439019598521543076644662911810614572824750641091434504309537918728703071749553515327368809301612027348160051543318686968410025854726503927181344002791555349752317247571514942904893232210019685077175699749001492111906972489846462107614663596028330966606145007198479883292487407026450513489166163922573851705999268795591535437381992744176844899610314808937027368089597761781032363570933202523093009388018131101797258182902340758357751080490031425862789349294214130165965666357426718383271056965502291246145864200223609932650345099288291537398075302053160448046728829200738988322710128087970506556215587690170598812965389331677819188505904336516476739509439814734186323732159730266621964566755653694791385460590861926384870715517344221831655639171499235867174206388237227892095668563342253224406892847798381782265599667677969478158761973319680304267516553568744812495934174733167115772638815663494159205427782508798593584268279089041764539981518197925800009990406773134996738942457547347561484064562076131622424096319464883232529217859581693058521215750236000515715871128848017369626161115640502707837669770837097100660083010878327901438369476954693693646141527202171355831401852705164583459793495638456885513973871408862918656692178292663624780231203409564951673145497760068698691074910074375686981302076998511550883767177777928555171481365900601178749626598998638817576428673707283727277941258507223379567030626451506930028612891771679399414903095308939102713525658219837435296127906116460077512197613426829431107499179432982868779981361549061342756821973228173752199374810929136499166265196038465867874830765894402117555068678561039625222338694490970323224769450596519499906836059766148349426652615344910930610008513226359636613122164133217610935944990138042302493185432059436378354705197026821980934871044889894246255357545434105251696637746134363019360737030840936505849469158239966427285363579110410023287760655259176719878754985574015771155274682795832290923663211678690761603422782135382263327339905770405561041325946635614970639267158324199626368996021289415400833500576571285497646112247346338736425262154037143381415904458663040938998107167932667550051499254343565275105396075795854843402500091308782999502110639715176060123689376786574745925365133932988476175410724520668364983401868837009157348581665695733430986749161089798457281754392654495210140708192393875538603989977897112654360128205019085286298096953501153061973021967981162987599040730297625541057074841658714912285391557511534678108108354985742456239481115805735000520655314281436085248596351971437606400056504742073985718999182663025565687313753071281020248898137926678422523555595081345595577995855578431767410937747930732690307260561696562599355412946715089012243530709763085610665448412085128120697974375527227925011151385500249307418428195645452893227572073759763850113263728379805796353179342806104601172978790063131465878658790818116063383612655897709617396175858159665509767089274821599362790163138861430654179338125768441389739869227761893910560108417577387056022938128735279755884747098117368606902609710764133001733761612595399149893438538936131239661012363723963092460253016925712192457092156316967248594755378560590398402469054318892875232662253177545724070568170813759618729372676308307303828551277657542698419555912403580075374279096001962027950124651922738383384693138508661062827651032024753388058016184010112306312161021314055875867744338175354095251460555887160560145977116793787103257427936398503828973505312835975832517179545476513947719986245179074901960649687021943926286064704160008300597475459432362918881324721556589523876371319885984254629939107411010167573180332807523169804770033984566936679457708679819089287997886247259345553036676229120156507681828539689065866389848802322829121643463249319449794889165517798345562164802122302181409386014104571516695737487104445867016587144963342156247998034150726342267830350462004169453661861688423786091922961984373907799396364483497881725323952971719281331653171355880439744912360072857982941323021767166363301472922167600327596941597673736350331588674498636234345385564858300034549015063381082396042397404531451448416774110920558007648305001177690719190255743865940030287045772348925206785174261916764282587111239386565871388355106579999832517904914940940630729282785521339886114492155377816011324154346744001856900961040888376448292761824812664469358897723356158595991802790443673684127066338650509216911344840351321450328806815416780316424570101819423342917843077716014585697559380403546314919267351180299701601205645563798170426939967448536121304599325172892245049774600966433433489815060701496241885318818735438407851139071042646599562857508179362160321986389597605457717378608291924921905448836427009621267102527863495975731906420066075214543459609572775674639610757836603949187176355713656276961758888749098627838802407225751489591688269236760470671807027526694967746107863359748667013315590475044040867055602856801379605437393091734266444962889681513929559700992350394342544429954426507033660818253426644241486303304984045467011243779108932458223184907579348435076704532138384587181083691806017378762236052019543738045355615979696394920723794957481608678820962554653115303627397759417324471077790152077811838779843124165818419947964961973073803724218659165705513893640397411688461684239428882587919378746642339816022144281200630937903000967641771296640315666466640064225004176037691992507112082860395770353203809135113781613301927660617491315534450274743001609339228598681389032664274975856706693331731869480479168577540175584383448547238337203416542521549940894743485403206074110071484875770489522565983928873490036973331299194576210796546192218108211345713356335795446998476584889940968324684763765133417823172671679676274479087639747911712540372135712647649085302827376062693916151346388576613114766693934818658486034106064706597223597524366882944813078203725291846411978656963104945481674276370449432058552321897953292248413317776199704503051451794294195196044198509985018370771433519344501459732700812653908958752518347779533156544466006347747053572452941975484473864649135054752068861296615114590683414172705930152894641197735295982185019715095125696733509528574198989279050710645624453184340835105358598146337487806282842827797189226382474336079254557246848044221759600795455593525293203037775613684825785429385860273972945372795976750460464811846947428004001176835073570787514368863670776143993669573396300137737197412018007099177009625731840300409171850699887979163136658111039384425932353570680127969023118841345333716815401236023220014711261044742559431573534225672023977955069713030353494742864570525408493809241644659608270088539573446505299437276343582612473859741189998961784975374527983037081643468673784855441517496546589714464323293447779171472801204600264052215390480258394924153871693493779271432089528450223440270196825025638137408530481497835858730972376413086017743900040189077547098453866780996727642223902732054866544246675309723657834035896939856909504218419777690886067625721342273182462866264419868395859904689357657007355410137227604230566408970698395993480677865078064376285399236176173185051085402234058683460050494988512169771255635499016966794569531128965111323156911016808337465594017958727909869097865609610958111669466016279967326793158794292824560552643524557113793925910164774176876270495265682531866060771712508244108020486104890139467016268690420962776886302701499922141688899056951612651533946163190008051318652896177893984357645337458721232668167025749828453185628628759401065884043062894686920126993512552145145764201248071933041315225269457803278219810529871954656451244622307610198846637602439176685771190880501150506177328235541340838610986351448231764774212012552917537307869689186953283257019209566388493863298167388733090346227194116646196307988040654239260056012933423317920862977071100540329347365262688837607685965040148612019378793288164267826089678542273292009966878494924146663810208538674046361710547999050818219470562949496041195023860924784333830035413966479553143325733027141179042346390698705107170957484808515802995050120406117626941193645994920483028983195556106224874277510433862041592099833771041107877825109039149967075285728969990138983057508489144504144531571412787284081179240900779848853597322642171983766859332299629775171361682678492537089828338143982171958788998594215308121846678519507470743568881435396729066467821529044903095430668980484939631517281625480730594972100194201985195926742503437798878279388384321866684885720793881186648980357180237968868697707538993764895528559478645782078566718205042100658251075987024762678678622602702864400413138059919129406307921241128358965608300472640522611214439408729409381538412856933579716888114069183632637062288187736890951654084178510151818745710372845915642496726468402123406484875293376206693161554829535429826746934569882453264419111821873885634539685994217978007780381070229140581280075619912592377183048063827739858178241805409784608431466224093759291229760051657788101825141881832832577577476434206185301259745409344753447543902455548249377702151891345102448253239256238318823583879323619599402500750245396233330701884934336180058121570447566905031023934402039060429920086487517115094145907553878264122754145486749428963715485962375059951071220747070272596311397386391474211532543746567410083211705203446959928331305638851093743241846100663280568092186953499848473572615053381680486607411827787669137016392005601185741475113106848172942852474092319167997251966347505342303007548989548842608737418211028087533131615457303620470283249297521311882748512694749907409836711114947861995833545621184071954205649247997996216047119843082287077599426849605508258255867128366269550676008123315206971769392272894230170212417880538060664448710882371556547969724917533084948067273905333609641546395867717524963992951639887434613976300388676595487112220802561594583987149074072525061546050162263446817841807111348596614249314000210190769282258007059118181380722653501297721251058223805876416075629177203866615378301509148239303016792676481054879141743737000099830351288283445089819656820410074712352085650744186239269848061362381342850574141067099235440545832441599243181356509455422859405270104839735991816748984658959002786558680459444290043422999211017568511308694366688824196566804551082064380707371201398681881236515728646039207174368223209554258941096540493782334710260020423178488491340300429930197089619941412691784152791726421686929469880930603513489439875049681020020519749921471498875732925311750792270504997113008679461122909508196526037894020290945369576444428903130802196005445970266311709668250688256526717206729595099759696207387541488442755338076208004353539209405126639861692789917024900952119932185002742747160367275752526037815081274411363121478831170319127978598907923079715244612179674635375474958629068043802514301703944411771775020869519174987436688595001265198917546527289669652533629523622591884400347776136285358601669344400196728816261156295530950053782646441870725448009550328130516621703032137081798660656456237945780226002806069854946938847259662202372793821873622981876105454148179759698701545861796611552851795397551532573912197402427862604132286696096520788199352055496631209407124006188364201170051419287567883003655601134931528373671099508593651697366238270632841478598450024241946879549702237856730092547175699325408795615534578089022633502386005025278606047982482068844464244793726074435689576821785780476446833102326188284448473992341712965465722878665119827178032262684343667816826045258995444066637204620153970880991278155885640810866581910073410087993839132350920636786470004790538355559215716236845010729994633195571094185563816081291002155179371183561878658042220328988356216057159822695110436016677720534661871970058172785687300534081895283177459069613024364747322303520591586461322116068022374235413003445448655212622380391129470006966372418672338760497559876995390255498511109009291213805719092951276117354558884043480999610672782093600718919121088588959220887118908433577345054425341251522784793911754690627232334223372227939329666762025103622435474767838760933492447026457979913220690242758136419994822694691449256331019004358557569759306511332623278188052046844418118894802152818360272035822834435704695744537685118065668015235636803290495132782743835330827086976151375064817846572439600012588629818711647022549775451920907019084598765820188348312154728427742209582581247522637718055898875116398307911955405393053871292157582102373723100999836388607441081916746873668386749399722339599880095178231246725786761908798023956775880040983610866282951270166869998865707179876296749019269736474330525766836874751695123559772240553732245643812727036975132814815945469354632139287429318214600024751849009210348090736091185440703210701057507476146019855214615915875375618422833477735525420977314967266737393260231192086404083410296981769610071162772156962705037260726343728868116531510602359115099480665481566264347091189152120581237311373496375387470091019741193857594686885872663262597918421077836246351081903279257807800199814735862269829582607773864580234952339800799499938688696568421177561617051323705724143847241349655275004267097191605200879215096159917404428998560124016039199327935293023907702875235602990196051679588625664848036802908994492930504045656888423612416250369357482481611154242800990514625025875375069864620042333306799016729203837528980421677533913140355566211361745214891411252432469897439122811941526657377097886947240443771586309084321172208513170071817978340546286947262605094944477006279666334050859668038347464339371006324063349967181092708232400955872297330924211391514015559724562558926266923042677490358090216892330845427242487646134875432606809021953971989552134750810061434126031634663921107957876675431868836641627221027701609467236908606740269749632073512838541346158937454874304927351685923843785123912754310930951892243141726417336921054841119854228631491256714091151047655935162003485564262071103011395297902006567059935043207956156042887246229013112120051246385276374241090600132307391086022736586365869077243031683090925507954706047088829082260530340039459260085803468431284262160748955536968845398036663861374429926448531975502158089862024161957405799943395220502154474962538600288362551957931916609888411288707412156747955646849334379333524152367261985517628625168492548129216611312559250484375601194123961067128051339047256296600625767133401722887662220720407981263395625051847334392539167641772684605890743398513365586908149537366523537929386975037772124535086798122180955085068006681498728969484885972781795299742006742542617472677874464390998649408866099168542839880624249368271431422220296015335979744647095069697655003074146944228139840059960067192743997700635694820076955886411788530747428898353855521309470762502854550996529896922840975887582724085531768957555256516753580854253958989334744031657105462200048334966290505064914930555884584771976064479347366796999012161066578993602959624990841588306479813132169031875943568397623542481446527410981736541844990273223143592373335135703403670526650888182793494896359641523361315073953058999296630869368063197291621695195954710353851003183411264624933029660936316414084200622438900686581927013391714586446840626386742641091812988759404527800370422935363868201181296143476230635160144130705397963432775821451568624840580050509280526647172558132770158778468387101988865041380844940860359505242301559890939362678640813323673427271344209229331340214955767858915526012651283354591652815833041203901973252562084692482540607279647696667523360127502008756063509583086187131799708584724491188139268471108015709327591805153835616122651807473224683358762447158097016745342232263751892305841351405108610165857904505803613762833686232781510426171980303742413374720874756182166094637526180945739275829249932268632821560529849422407408638284984580750437263803478346851731884457000449604185144065927517155084098706994103755705748491780567951685780759741309953150464262874383991207328897907958367167344652589488846629905751935920616030952358421741003267172598301767679960719069871308991989272383808452517673801672709527932504982480695099967629265608750107114929693790713069534811957906470361403093205967301007823985739571878976803147663849418299803325118516635378136603280498789556851073768193026243095272753909849924028109940455784227021483735335913720596569117807079410171213323590889434174740964839196176751679118331023723645957888655222693048402779974616956747763934881596282058073650859319596839632662094713123193256922487093135760577259187698619987500783894486059220737005157641520715524315367638983978532825526206381699851031799776676695127811431457326073745630362797010222237181823998570277242060813187546013947812584138069903113143759965142059114181746615946658053734294617472223789673424810765491000743792499521920483842844611463242656345226004599779751184997519482641997781859313849007914769856781187195886688401329043156220905790780913614304957194861332331284863065547802965690441758673001706932109855995641714706474092860817509396736529302842956952234344779194750152726982829229009294880429590657053658085465128509432086835915513173856652814598639998942370483773653641333681554246314497046995007648978941309548023400212041433314938012326681949320158469218223856518454744308214151303888456224276722618104383387456528981902738995468194073736356475828849242093765036465408071127285472257719341908281459290903958541916275059321522660193256611136193710896343543832256992512422960213898443822952437119839719570076444832595061349360488370315629221575509425667943160088175852388026708348965638236365444308766575284981433348838749960770029563210160825011707058899774096709936966498710045679803420655660618881618938305244388038235940720166054033784569010000148215073271670303653215624898105316072190919987360777588473196274616666371134148045653696273550563494402580762606600847378441337715782810908311315812380297278535415657497011013023413693260992702393021161350142800544731920133575065455311818958601282143250093122701268766959346197157520858874592414897811634067378960547535040326514962127396479743674503894501705426782967183980059257239176777233000450758569365778420342388044960092470848835450827475108964192761581068677879458274966466533986507098592038702974414006132951309302327961305007400897063438155780156520100493680105897586380617328400288257305438018136129745469170872428621742528399458978664014558565223472942891412793203696595118744374200680590223630942058558570183471398870741148345101429959983402018558429890198498528590340421467780176253291318904102865100390893489440753017896115100328982925948469653491496992551533182179202630381678673090640087631073373450734039038593520179136897951202669767553363957152162407290280146198774412076557925459267085904146346819975842010866456370429504969973559256142566835556616573100167173730623905982344806834714380128993088088347832835318216751681523123723280519382307014313832941846182688562765347659181640047488991406998685534758977682832686690017611293331270829615954862136903342429347528721072966972220531973557573792616297529851853032839506787532415114869739446361842444362298293577245750426068180176590891445825269727311446246721992782789515893087974559223356131730303439212927703261017269453727248097214048963140563759918278596213449745560202193841146049820529316092569052308492969003971256332212191572240334639768420051388720005638987047630995354875822456482884841600822064454482385418638871507942005043381111384542764355181921826944163190768366308312752112861758043264014311016709304338702425719135998981502841139643495291040232590884646297759170485773910329421007602001045365765571153769921935004868046046617680570667905540590329753123892095072096602670738651882883717719736439654966567135194795042107537403209994509256776565074718840550823567076794182971526031056292622032714131211486492572243071809534300950145789030050769108682208684538682375469271563291012886640748285480273378016566989511368116282620615439640216388004671125014828482404177169125736262586422689020530355532639503277601781816728773345947712332830170541775553746104516388703351283679692753023369776535436984272859777337956242367725036013223460785370218078437313498222450764922148586680821982906247250365600366208273037299635659954785186968074564910166750083672732519231581596640597607770841892964917595049152735745498886352769527435030347955942110456898909860988601767853851983739167066192132782097927350118080576857246926137345411189148200821415022175117366013999509507757661142810375580275925037839653389639520544975438297911605768280835553823208550622227414297695970320681254628927652916062654471520208664235831674003252373735009303276124285651552298879401464104608864545411175119093055572891722159035676157080970145803776442734281181637943192059910839219044207398432413598636556078153807849827322814876171163750276509371106543211246875774726263399227456648922190668252005397309559703986067229385226213811357456161846515548228287542222769351334222984911624022531806608832055018345522715673325855818536768326637176519653633868334256188267553722525217558176962449800866007679889325822915925072162694963185587626081829783267330351053567632727153974789153697063453031812100617973796426386833710671122327399321796955045744754013990486946651823984121907218076348268647778118857378478866124498444296771098301960915549653339943390873011946664054238925599828030246381788499741459439753146470212801386052600083675184189553094552421785953782235618719893256981591578258803449555879181612312847860902083230172304824260219513241217395322310928392014351860159442442987683500619952425684578543198363932408948489793810468053945560005605147504837292257407227851119682183902914888767573243592768545910585593781486835801003077902325201044791909170336169929435383613335541516081390929553872339728925483329400941605271142011995310855387615904072491771885461246395564162315751651666060281539357879929622903604862930762315054163827168547309970412401676466550152183908851222437523967625470041444598100956015293471661698380636176035980293568426782420440130306803260572199522276854442754650561113842956530697989755634014938416199399848184538519514670302803579364531946303067375875870667576069467131184264810097695712173712900453620628297856216762023234850840065829020174897905989161705512425701803714288161315431349411834538615204538778518650143428291739299749904489450445847424579011934513201490184366583993855232049338010695940633316734426099847739555669323145256902285665643327621209432381210489337267579594458660202695732370972623534757299675591689962284248922931742413367040939512095312357799171824585538610696688124014162410244832753546172649104831895877849262743578154550967487339746200368994130909790189052316809222493837762382249065720626152097863617637905570350254681885068257976956707776725982305909116907442273334106078505932323710282614432589066136153369818843791429463068370933036317020802565124807324496139177208667618283730030427226989687686999925774992100247987096505901305927060764570388656154927445351252727502882360302259514163345558453810650948265358837630080632346698976976392901119550942936693544672136391069999938552592026306571783482733428538065876383061378179397109744303606843212795570270633996685376053383789382153383964501821092182422873148214186232839764304288114183520338917510358648781680352681423868247512904535169495448787922575034122324381203935055446873788040734611905229975225032050429928487968327148315278675893163865922575865169963243665536275873131569942747117847507960911032828406822900206119648850502243311657462203141785265868239354584944644322258508814780075776470447911025094579586834902446987048509022790764306009956289724094448496432378060724017298050083638983738424386438990772275862019792331022066446757896424640906372349627361571994363854009506875849228836355920504374813017680577490222047044130595208169326982340137303239869814069915433777556919969036801664192648889400317873755603255846689433914795210646688716954136845132096785171185496293052907743737388792865217121489843903901373033938653428699545382687601657397727388618366710914610130154414760617291095975248186747106042129511327415478287742408910526088866413323024153659738256526962362714055566338118998893517154121056911306374400170390738678128278391623437949770417303305737462461250337233407552427401604816985416953010187759974978575353476078332077741335671753790743856304598406772290552214009303492976028132244565248056486516693206007575206344245191816269888147993778294858434362169385469371058823652883123049882793412109831359306377016085103717133275059616711742183785969042981608706108154346434653470604191710239929110665472019952172740826389121716225718967573732865782041458764653240277617435352804624924654725246017550705213506310838438763226051583531136772447046709654157971750994188519774583018013912431200626762909061004853951201037434516603093788338147525162487630366293404854370230657515908657602115486793556875851428150952904889936916421961166501918375508631476582722127840599593846413343178660976202382476764956911560513846063999285070496580789055761362765402347021386848354001088031864210751595573932023623243981715254320941067559852659594053865803688900200695635527857131417618018054699318666063068270412646379047959888041817846630284421089178668206718251331183102550603235486072604082299439171872667392943237182528227267168767197897709354196516005047302514381501885308680835955600993168104994416819347317345630277477272445973850715072663058841604067883697194401569442559003229892150259131261814047005304665568224938689970097981613557424809931341471359076074791897711608510997253477240332299187067608385612552175426510249196100338618669989981268825046526748947629801369979117370467966998594895897074803659091134319554805635885566211586926341304499101156911348538313124614259471427383639811876265707676638683261892203056091890008473521775740514122313264844444935181808217816487114085261461043529631625893306666843413926592194706914214375234259984895741310329906284580179784605150767967824429869709399271326874825840061622138972534634818156070805858118375006942405752111610186837348219407914371193352414295702135710023111883573631594674310257874386307633554348736942849904079595964689937277462580725108682273475011327981415436357039367769885285462125438595899894863617771973927748090647075930354737686460089216254955711330052754079815714230435142718229484000894100916692132378382539467418170938596746321240322177119895283364525756074329163939830121216393136881994877229170235300288718129523831320968103031920802675646807889813660335899295163342124110274791152843498540638365097736881610969382012177262990657473804688827534131342334721017399454470084373089096565046022739304323370194513615296214822604163423585786860589787437977873010340833145003881084109185113531562000202655106066894251384801195476264321688806936912695443865146843794281841330066967305811094645649318571050997096344916545059575572842953701632885220345949341239801724065964110656279538808708523108407920640404843311710770062165193960634933504015063850960805312744368166321675958266435610028520398066325563996807274747345047396115916960082498221211652299900832712459710205562275317010198877210553542424354245483008169717571120668935976202763308206926935810809643296930085933886270349066223535729585525772581475921950460453296277217244883173964808525723843013942034652587700336283185508764860032643054688872348650293123757173725270130969122832574126767594397028534811674998422507306275883094580151207127031842588888221514869226078525439664003797158964086377830454181371885252520675983786728754839587457241331737879183788182329361605052178382091437439767824890011186743585186542179425295310497440651200919429618170094001002591014154852626362112755830763777461238410150684374698987892626380396396916849845083616846567154619191023762435613237099959237168556419236853912880646997184311846094674002569628366692243489313892824357358654814576140697324437965253240225509354735892638834312809542873802743723968914723203178000893935678923729981669573335648969550229056113212609564344867097467542447933582990264009376486016012455883964816285071764010018932899942522894376758389773127973717559882464109853650894975451180967652628662314505953463951864035295087163610306125263897856340707598442762020768247691378021594941147704155005708873209513681051927475421165369950465360498238666767933343581080461529263511006446410969220698944061081596366812501676011612740095193044949014982657580229935737292428169788691698375849658231756535225350914634344231519453238693002999163544745549736681382136217789815329298081396866637664292751719099524336705374786878466582633299209886271204114588322198944661579235026671550319387824979111970430052112215957971292047715073149431418568601723294399736572737266863560105217191576549979874720018172464315744111178440582195882135274144764366257873951547991437578102364386509668586874946921189133271828237655077514403007766747758188458252355235549512801929159617210556220111859029646779346008547863693918155056739572102893348335844101669434665976936367241201967626461175691154330107450392130984611756254478118331941709456376364142625804287343146579543095205014205536033678868248144682417555636790066328745981049685518425162762668795386289878367167138867435649590718239957102861475396865540360218679864151391089157283560878943848779443163447887923481217597034076350633032871121263630018640632374103608042470885970269445404964602474455576328591132905495539276125421950208666339506985661825432249853397067647817370429357940116106016395900686260216420606619970245203592672118315694704047703356067747242762082779292980669774714864142075419090855787953433361204354476270621776227287751468950384426663894702621920090573869977100077904168020536724386302978897739911343786763459170833332813555121522633275934892950674572589425149399978858454433963346755616845653345050049229070400078559629497887056488957194664607731294698210048017743396688233272774691158720789270029644269260956841478118941009464954653768947112478948276001887904384734914289426640688839245801805609666400980793407830181620372082690946239341918779576408256791388180115094286749992508001875612173992273896306772435456596301705434528366435252276861218192989427823355369693661220153370969247774001198644002689170982122712386873602145011730313925692463141753199896942051231323513205471666312564863183225059851952927532970806803353490787368092212844183958971483128369944076350027652368864356386088610713166596932532323577265308094459218091469993641269251199744456414742903373950594658444192475550824588241305252052429077665636557156628811814360735205528846327453409018976782314994689082897117757548410065530910689689542715156023693367092091472565450833792151547644720960890982843153474441598269457276138957924484099966745853205753471770002168854357747021762804680975147177924870213918108639649670130635436085640058346077340804841969148630530659165295712439917143486632019914136620127777925854085860681221271942651384846900060233433315627375880826446241821228739384580750490895109197745148907304373539900231328375152465156762410922470040822188774366020099104011003390699035145815001096154895655436553161134634825717775089199744370322272786777048388379328300949456374777194772131044289443937756855567665041569986032406747341670167233260731483969304704929609354326657102959215808011401270242597792639947104484718837587196133301662702658329761909063473981852359128093617063681786584251615634695554277665408642722985342112707783210392447988084621841642135911521316838730870456936391332992590669795538981614033514901840359857179840275233017978558557114583967213785850571442469710825141823138987034734888432916210884841549763014210230795313311528579603523576169949652764127595336765732269865637985237295253440969367503265392740079881331769868021620431063070013879728965111169447819127671846540480751696654043755989183432014143423335576173645260518266919052567090489327028039722337970560200094435143301195197456456320955163201726096203356246702008858474172240783855098787844557079502165668187205344422898309740619662994650906361615107581689755239091194276393838423892601498053675982648327340993692611321870861032034214432769227632684888891808140781051086630532260138992515242948308193386616030322249405486108425194558551382873120543704532734467919227838546848675267684025143461234070012834976267458078128480401081741865289223666273901877320108954470704711727065299545920287120531485134488595164194325583048185349126841666207177063994182166707563841441623759093499782225844892141939648503155771526038400498004544259608128119679432231721976619319536960045603486758649851734450532354469291490174866663724719721126865678615229143549193526364312193749725262935204850769347912365972300434138759008605010240955730693455864325815410922914317231770971608211073627357000816953497791221154402937273422839738572733388360460578022993086121387893972498724823026947288402869749728953968403599075135338985710515763508280959293222317276704864336238885093355370037435459321149547911600401799664893905558958768231201860058002538766915287548072042904571944457310294588002800147247682252380316678347307098183358043750033749851666329431287352186712294728124894513549024902585886324340364887119314128837073905037964862061741082923132308316446035851259176389490471659182512376589731591283984451700391568629860017740175509938186974250680308886398739072324525346161551204504235151073439837668013816496280286650410152934531255639904363782707104455093767177373843697693132147598542481688961412963313158189589548157681350868454434667634608464839560594785646579674646444048472246839116514441948082329214916892596666981587708539208377336261267528217051302626130105655881629841646161147139587118788364012585285999485931878707165112091898904376962504059958298194113937825090268193985474232110040343552915023413206930301942689250325502938585458680661320330721501510674866873753863948637294410035014154707181125522697886942791984663024246243174072576701081638080978270614109770232497121580096099791858175307719163956204888700971513392754066623492374869211679631382224063618306350728459534373153450130916306308861797727185241342054216476232327404870407910587235364323210387112832422359639940999722139122354121173800957369810981661776378086107648149444995395202474654187917648452855690133577609408891249116747920733667942016894321079159525575845126901725827255678520221229023949990909566550409476188648875430474148853605463288720754174747104080972055628712690749192378355675305881021237233133368979433808807880021495210481059517927085778313251450244101156989800278179942320529591647618271896298437519353662754132721533286820200256663686458545802890651849033031124765335856289466603319547601015267786734891302615297457020338346033118576070271663564947569036536143673709884305989893721489247043559065398167000035413290576800524989245540920179550045269595266486446513128066524235142649366930662315462971538552213496987938061642154389146114404260710064070546760805074650760052024970398377173013065765124590782763088952692270338019201573587934359854933415361582994486755052647297977263415555600092550560841230599228286218307292742221525556244905136476459691755167443422676080543482357681199169458811734315285123409573035526829905552525656608202844034814288021712307875733610442332739603140418827444388221959353329030821894725788086272267397909905546068014905675205865182261197521048751588616392808350400355184069249109962464871035481180236860007736746373773280778430068491348560770713836471613092523832742300432759520200478770787573281458010386818288865559142804724432749560290577428429299576475077849601081423057053087403563031978216898859164093530597104783433076958845313384815652069691631315222061310144430355570382252664983616681179503042944688365692504023295365460816500228858822056795928639570768791819957194417553630275386385703404002972981097138883631641816332417251342557708110514550948568619723166551838418333594151277125734634218011553815446143959439274205539586020253335801062734122935672717927887293404458367212014298321290186662727253660695654717191186286800764189013427347019182173820513636562436489914619094917853971515463055297174838499720508764682832791936391708931928484548325429546232180583106030606805837256320740710501395654941697874174745060872263600785362955200880389313640330319881431055606270965263118688373761299364170005441507529535906334562738307988560043950129300126953801706445871463887702606957678578143135739627541164015134527930031696964288075405828141452872913970514048417171050190678655089194429807498971102238031653464576336781268196360596899006228148923665270196793519845192090162339850636274352345339634296593555263442581240751298002373027153182159900455700292177295554842203385442278870250115943930658564185992885414628133166599751619381922315770991328200052368198824874935654805928098864375489413446328329544253672359850711005942532683180608652579598148651912712761490395789701250285148101477354227666583780743496655722874179168108011238575869762591806161910369816070657028003999595383700672141810758187201436832042079859625199706429579656075187108277802005104154832225109196172676502909753605110054814971585887682451676299711184145452337906733165879566794797666524276956279951602222746074239472238022149170110172985114595394554771964321340757592448101487550727883127941164174901772592143750293194782517248894567604395598551861518442142353696070408408466984770596538722317444188872541894182583046226283847341295232560186899586784450351710905257528805928478361269345767836180811418392083695587961552486303617332296745949178267990102964082975494118750410087175634165930150761517744501543452066337935912218228468168835197244550179335105760887458470251510755108150458977020116498904570423897418764056092491827021343880381486068751384137679454684514826653969096416085299633980167259586263012666573198347151665907238135721287546039259986707455037832124563843846625819683608363008096483317564049463136102822647283911611741615679153031951978191878045317476117144216308237919869021779922444915693620956099038769319166437779655120461103445679571908957847114348065465562832342482868749335236981212108434772697953799047803519592589261764761666247632385356669837988945916150766585503758735545294107370342616132969546344691600165141408633362361713118379300821512133859243630068726109527422918830687628761202002553361673724620478777392411724060309512912021965841558628676203374358615037406836941919770732058489864629796826359903990839551980824055533777345780866801707889579734122922280338797775693513058865161997913173029504262941169280006709512080367456725266187715345732637842341356402945199963729501881676060017259398601339920558148182779693809874324114113502122878137290724104195827627798317509510616463524866815626481083518078228381231422187754711227378676283272462668052495444073428591930121960433377933023016210597164505926556774654874326418874223856190346722701606228097738452001028463500754411960768939734591709213085878286208564120229522093597001282235132215493930186604979493230041524762214889246903286619214782297239972274861305140456799370387520311177022301674952538394761731433635428911879969446682706199386135396188146079235581221878928628171129929808432384389795599600444252287224357059689596713921283907813459557415804455153573705444280884872055423851345325360875274075623680263817795949318072817070985090538149632577055956474484154789424995272123239783853692076962903655285859626433459751831710009888380463733646120162685504986295246310890812591248181919924195651743886203720705509625262399999747615187809145391200443927242307170915600637503670214204539553169137843337184524028682782958518815359571419717114540902046122228788476073120694486046752437546361583392504756914587389221272888667980340992796248820445268597991193244282245010548488312483047050608919820932382081474625866842009988721011221065049038006567425280500372455655893644701975088615388959176115054718547494487516346370476822428487321815466393194447648397584249312126985923507206620764762530325578202260948777624553401503629175869080474942316864545697736521106350307791442862723449994498105270349745473851779666361131276912537437604466688625364904579618031611503482448176202233985750511993157673965456302170719634101112315089108623363409866998228074835590520372228743384057758455032992103984329950761306318802229913350853678838234274565478726222907250031551245063300062409092014998422188209466671556585328672343308361938034394847809951419094009912195858780127534489767791170883035801119814015370295907475489485110992732107867821093433798022214724426048568636859635993337087572278617679097293588348347036674389000473608409725696650936166114625857898360066406686058231036197913778656027144342686471289331217080495589863463178489362769098973403090257153184324415290171026902183193452659986041875717259907289799252844113218892294173119147805342131971437518790086092178319889108281956802066361248286519791991095619561356275267883350538040424631289857424459455848748083949701108174350322520157477415599517635129330249866035517299940907886853506545065263164171696461626886533676777495512610451052357135851192129162245598910385404926701511881003496924711565486837459759299604637790171568538051099695831198434190905444916793100346645894057306818532779339587321000706309381011900025611972134658425342296005290858305757335890163947933842199576954546013741891625006108543853322981362145902183075532863030920550122059463251982917050355548970833262463287787681622313124491761506633200345953877440461592966151112854367976845610882110350448645949652141495063533040639780278476356190099113295603234325683161798282920765438791343871212701556085328676543212865012254150585279460472231954526117856741625798820378171525576239883962649796916918722783543533360890551453579600469353144232107790200008325260226460910412402334189184121617778445086605268186393107173114429127762798850818455666590184494064995095801271347145030727549963841508016642849282674282833732808055894393240991276199447225921779462459667785485228519902616224081600611057570117007363563724152886432570520779431560709748839968872549577722553122104337812624278418043428142452107976537250614006621836428567504656518254214400337814879723157429336864688713615631053066237679105118033804714797140223137052197139598390118386801197531829142210743473536766246156007662428984645284015163487261076432365914242802434741631481205008610112923379288434644976299803889402497967429084348907228241046864610349012219371716446161368232017957463421579650992585215595176141444733056079701907650556037631654640537795503907677492402648720502229993181194636897453807506268854351170337750640768661275047750569404375895053509729725278623970904355963167119062879853121113797268799642852831370951097242826156969638056174537354340160172976051357517527644120884538458308307221082977358339902253756293196141792756756173311290567139311166431966909414872696005890724826267445125699354958208856657093284696392991028568852693190133095575910810574017435724241514479021516442358548499612786596031025511017262162353712713288773089355543260748859099616250417244119046654812664029444630444033130023595859890720512788926318028786673731736801126538177548154334548454837231121502539171496474855553070632680133342246054680440513770573985051208540568009525435246867492678355853351290034690573371679870080491311316008972706495050480639217638827046158685953798124752452370152585313524174600422963077161743371946914219658921579863294923680963529099394283020162194018782981489122849561663501610443232339629465028391074827619605408600851311016259546012853722907001079845973316797743965400937784285123547366610174297690799922800941410442982019641892495118805567953482595253467675754578653291011383496361337943498140714730608608674124889217247408727479952502158104508183670650994528148072443605001945220789187801227357655041700575464881382927164377608910703493535591705810137350119082186527119222248997929190430508174036044094024843694310468303824827413894583029297580765399339358480987552430116693217710314442161102547414503110993195637870670521925121915913133030514920271267473984101486044782397677435505397834535610885275145084118802339309504489651616953089282128332835223732688027447549281651591224624254623929827699105995234182522937278900508666911016768993809025872468990409257901941801266147392832596598824118503294680608073211768654383289797547836990748594253827984497565787692162488754831649140061987026780172505644732245200098853795717594639584369863373628003730810884813850143836617861114183832660714968290947336575343233236344846790571242751660888828791859979000613590247027745107360972872737099817412218161829615764685400809871837565880781892887520739812799785450111539679338733607465437832894280174244932967590634336571026597553732352244541934040810978057911802944857778598281365649568125782346682135373195137060926548512584946581506648421180141088418475605815311114491480311135649028681013498183995942379068349664883330928414921183703889842213520701332664281718060289707112128190632675791873320173524580446418752661958562335046131673669669887589292892001043512011579365777766509776067642216274790857958375205308971288987625176181145015310736961485369371362159259135474779351648150484394891652552660146774687534054349569318290204214831649826739084935465803403139238025887289476096134406821874370478631695102831623670261550378896071683715724652370164552352569200158850577641163709940609229542930932357628735809176382708250045589263102468905484896009141226103265927513912548670099429408814356809500726108105527379042715397840325829349394559656935509425767758969520348231546439939399252358023647420178682245667759417330403156183503397643881988508212382587841246989309905344250550436296832761170771079860550105805188125608336802233387200274787420467476290262644728464725521351308664903601477184545612644354324082967341446469456889683284876225071099789603367335406086343133278559915021188101545384935421188349735348144481491903917739225977509393516044065516055703482646979013511050462223194755618707624533678601940623115894188062470654379894962448355543902493103506978303306714028289421184563704910122001563316605452275167404971859320255432298741114409691036383087880176300838558750470126791173226396961396161561284631576669588674349834613239416115723649503050198550683801018400322421685305402737293350920357354494512754626041524498503611640379085769295740732532734741925489126938002157568356705853517427787892492820634617770775711253652520452255550179939362518424290639236198857145010768736967100231322051086111048364975272519746077575849374865783772614221861465250145397706332272138317228869258624392345639215669065122032599790100916524224434120834251441388977171931831614456560132686492557612340419496593043151704863640264010099102643413260781656911955394472053319192258558188479328941691856486363730630207204356582764484183626140560183909581266168758744005945148780279881277266207291826829518361864941891176827011680432770730059096784385236423222127203195783211515011299380111781242885917215587260622148660194688604947505744658285714624184950572613029768173016363005713302912461489182557889514015338380182881839717626679026026393073422412785407576271707833491842607255510970999022737948090121611692317422176712594310154143520840587686820448828012629740903534864417807194635882822859749628766357605620627844720150916181901777099420973513862635178033997959900579521477581862663990169946137793199344610996893417775548051954868288270167927091774834706583902406779887341239314254945862950996048051936605745924730826564790917764695525455735182618625818888458636320666149789341306277538104206144809751776796994039502716751165329822688141148342668574958159451913540325796962807546312779715121624354470359241070903743867379416861157606281280072284307550362783240258912186784200005785407500999114242735991353960163960623763667130819338956711801958653914191223718669027488607315657681018572101009108901526533908745948737004292264263077545481035628581360938746538087001420317435093186008366750930086454067657204246483015646330310105351130811441641272057083444918195531149099163095354045058863119998120936812179717316843373345223414640740917280557484653311597952358790810564920002230126134925026254961418365617163964605095512701095302046982958042802482202994997147985536601039798151993003984988922339843149464966247167632623505911030738507058614672582818054607689930042581254581278248363959664047033960551815949313449655778497015404748624824714894105534929539984263304342787738582189973144285129013161629429220154218587228629305666320304952170318812765419972041396510278314278763726177210745940550132792146919583866700441051255828689599308977378025477058937252350694239589469390188964716774451839195663457358990123916923584014081390892052711800982100684589353786667783570894639078419729856285030111147498938615806258537703723667283701549177351349689477237595193218451819440752261034351314988266723268812508936809154842305701393916265922207759082006964500880279958284782963422025719293166236192746338477959710947332873245505239420508875630578756625326485062309065029183436839433552694793209360786084503243620767712806459863827416942910603168370985693503888667453229951417484644640205719975819227665318032468682345451566193292212137272942009181230235209317258999431797947356580944761153130860429812497691797400021135240370341475124700796106022559525860724697880663928979371898529056397383364704727770662096028733676870720125556400723619902732837488878590822831313642917082189552070212689359671777134979115026163775371986140933827647577318552872313643940628249628530807438425805615966614632420626328894733058344050277287289989774659929186859129062212684784702932162530803329288955707611631787510322004073948883576722234258789016106377243676315626489978180067149839700742427955115606638171055561282586907856957630255885129343647908903864842074218461699158131764533774946481688470595498828170136076459191774205471769696821347100562784536904196621530533572188685850105754681596068529321407905917732361301545045375952744022483943282357788730702389094059512665980532137338212809976670772559850050888547949002978051520207660409733453289325590202280915494728617031246203341085916714717231037915296392493998005671957396172497152149989110366517265096191290982117361518848002980059669410659176252556556163806669491823680520914950334538256437650861035054088615651791363135936690511121700631973440650995117821259539569997716409474487922809010964684161855532931205352241347650006626600535264335079682776113251111841322763767348259240876494973749017835242473110792847596567813639501772045453395548146223572888165956442966648564842100359439931347481933825613551152209744471214194227410879177767178864524953203978676667562491267585757949837796540956403130987487012938273973646437219583751030053702320233861383234286276119277087151438017101927533188498388710971758648580080213983292272923401711024919996916644470591282385631741408602027062324007668075740232725988627642488570236980464532865083453980961282660546581597281974907271319194780567795942294753796729185565387500566474970119985263262999816319295582373125968179403973247230418274848320849888515403708838553434936360376723324456444772822176636353027669040392810125663083232289083518480393229293994331047552655447427438483602766749894156173142439948299883779178479998443838902562003054273892381613362716841950593699568752560419469330679939787855900145638806408257469876086557460542560732314683210945956216687351692220894870717707839349903923610384731116861633849727723356652335582347453583876275235980822925247630828626195897357137243447536487201818335239065660026663157199388139281591061712478631526371680233868431457408322592752797690617013367840206059696115206091187752029677097579554676003442287348615756014979190526641123501102235826765505160954811683549397734179126605459769677393190858306807156899589905351208573951541453865140831621227785350121234781130526392976646326452410873068892930922435056918417856917100280418348316005622980974251446892345860788641913028323378515892086139538522486190373866077089965644236877854300234919875373949493317204940785749599690877337152833665058061403328026215911488185713644072802999028403843513881584183571275110044139815100701326772447539580993038990212107101273002233335642292712786044517866795318504310524933617939581002003956219227180583018221841438725498056568042508390264946369500981451619626016869451721092295024543081986038578853381282569984155298374336962130858114193969010638222967836713834696100065000584834637214441235877806532129282617252493656832326726738416093634502611152953335264693522489506963569389202457224696626071825985196783546746198589658015729828665835255935638654429271980494372417512528435646682344157837858782920526208208808924752076680273789767215494503334832508177419578704529052249848881870906955508430652751874670325878208631951658814549146592923454743164385449513749006261771801821061520724438686856652563695732284985478524105756384836905263081795927010492567217584673241535361348613451372226017978082130801533195284426587712876172066184842536073842452235832577499092263267248684036319304220292727102038355188889580335338091631402360514918511454426137966218231778944057551974797620800930846453557048608581790587018101927073461472069206059017179609678534746035515917680989931291412280025568773880908718540705762643415218293585873313575889038475171262131436207534344555209517174785244452329642953488773118787910231664360026630644981363099435021137715015910340067305579241522063754568585294606504595431007309545958010598922754488133925654917017345116504859830308489315070782911777379766787015598909934492607492059431420146541278235650250573932171892911159090078464357999581392885831645084933421991417645903985471944573543453882573327502756002081196186740200201418600349414088350161701579244103883560297161312227923500512958136906776278152836702623217640262168351282544635608128168134986729036595474562022607200267476791873519836196585344355995658576628297202673264211021621721370185186283009207752159729610163238728857454391807720536629777186603716916522389620287995727760452101743065963125563526701054947578616832183512838743339111185263905929605017124850729690154533762871215950918087986898301726388953224147166019726743368513445630190308859036506932409850745057153325040771658060840007716769800052068163754314790362802628280166915681509503041143117241319834740956955802953569200234833207426682030562200726516138081311243439000663122838139442262126266354220939937897276204116101641002661644475660571624852648444985932170069761211142581689975880426152697184257254053968395124762166145020577749436302203433051672949932271340519856496877929858099765399505959933744309912460235475019172221985339727702583429645804425955017938809319246682748646997606382226227990995804657271321625778871246947292076899061139829285100847972291807035673814460647494603604297944623492827543300352115512180812262902433628879322680599100370562924287207333312187867368712378047044385930979781099812719469887890613786829422616343735746152893429542539918448750150165046746239796070736027930085784759600863464542443432207626406650849074655210322659433883449160918036467084649539948531264008123871668503478679956482560199142077030284031987419324487892943298128978248938096425640006227444872419103008168390569836637664582291831011405788518541404121362138497901872001747213989472521651952636877620147585744764382739188144796167442961984291336309421263295781904550164907116511592800190883079067265660825224222004800919690509553844701140308459064873973699480624794750393271999378021663091302394553345682428361339844110166453626168198080650391154532433351514782326548010902832972908258533308132380863614483078727704335180363092192796442464011302559397449107563332181943388105420714765671016954223870907382983985759822189557770830372870897194517826974337349204133818140273819074442237202045358678518482513649379550112646268309499600756753880118015054877453159014372449151934926111389161581433361604223336217063534192073440374195742330799160402817532763078167542233248949146672228910289080667462435303883382476842471623541546334979871908253092792454403331201159758149922251164640010254518509803016197050844282770100558607827516737290346322350703295704004874069405963914471842066215901333441528930915553438993424499950428495746299040641257804762678830568187326393546999994042508254236998531635877631819712179421004130911102566719633250123300946266811411263930423789087709017738475689969117499535867516806554463222977592133400461114360974229490604076934418141228122775340504258594977809883565946128490726211108157755939062606045704479976572181498965932733328407870287416245672822404336938416366578508556109208098718519146100116931851502453433158819106357938857556003945645695892573226891118733775421026873613304342430800274968736231648513266234224264137179554101972096762580712004270876372201682283781801686400475360463646494992118507981471210203090010470048316550138608882959731566818307772925027574858830169991939996298597995770036209324937371655933655598206753876610206147497237376723242112398601912563137541825377320917155461027345566013548448387832247711528788375405952403737684892544467545915077852395216412811331107506659583551274553811377695593445069091345262833854060820153350872787554144427115633127430778785810675014024420127057726498979971231956126545125622540175792618305362072105351269309025675121241668060188386623383880902993508893468977959505203265435910112960895493072109238873513931399139696079522037179525184748332161955975887039332261460453209506861070826155819226674810287327126127752612289259466778075566390607560099627455208585966400375715093961559537634524712260730202776470278041773594489357870557413830981787148551673150791049097691891411228463027669364972446426879715385603473762491009979255124651209734929227122206998539907157304132414114852586348481103049267562536708471875701260292118146782541470891203639113870454027910599896937872932950665444286144095967038962396644570205763279808808937237766476343345370005507830451193786347113031560130333609503561859679580484795018605714927297112004850796164763150793502136460893590931813850463935183906846058219653496732541270950504573037348980424578040349214458763686506074008416681226927084348255734374081013101828369838014605004517770174219721727016177178008735138912050712610181433846691898929330563808335076985564387354424929933078362157141497473479542614477024898913321789725001430969739877825743332551027645339628829692162497820241506937713951459321048596868548202455721226600832845842039349066494985388946808891348275844599672845176774954821108708845499862763965723576534014690824814723313167729279784377414760101877271591027818070229186752698386915653319043312858497148851014341615184247718954720064574346068007932293309138271215418266678523192587697490276141412442470298289734865660336209084457315056412986785816857209453640479047300017142224974689738968770432893566883225288101755317318635970847702442194741464323444277374869663479343187103580857695265310874434083676783394473261285786735155625409588211905603977730247808953134776591503017728158922570767860080833656176416713542496751788675580448435848969808802495958483196161134849098037499435647051474193967230402770399349915635278381840542244879254044448645049145936892226165774019674676396034966736654862057694430749439005322285205586672547055100529908537274578708154215529235009374719566484513286203255435597367943955107699560249170231537142173640725134243952361791572594577247370761818237923078260857898655146298452301865705749783623128674069305246937880323217852400574667410904578807163609626260484547125832856273871908295256568942368154726161824659692803659518655202152045279066978667424827680052256232827453115072809030289322014348585175683851912656872429562464411331660731217646057661431841664781085343082762488837484871605728263174481332186451929474720077912149238496820400068142958477448873730247185184559234694777260242467282297612237565526599025966302973864196963367403415505866222386898472462325806936723399211333566518372613468166753387003108310698590599742559547140983846719871439551023913263472568321310507248317522789353159256870799469150675177487548867295600890481244886299028946786321664026096673118143044832790112681932028910791492219937097157034670838864902209737093015633073290886525735687371208117939280584416746191203221355797559074633204708755544318053768458228751424317189286203617826080025463546759089589285492971968308471824538843697796853368810619937427660919521973683207828469859251463512216795543010630650331746618241424011575970243252681225976850292696819094772282666750867658420074550377484573807368012597044900503407017986851560670714885725398448655152114021721617229020330522431567397961058843912670466792824412493011071364851138867093299859914437963648143559916617078481906669115066435233009859260423428552323586501749102517058091237703382856265994624431190480940302036978940944714954202450588786725941163162603411929314208733944518510917146517521582417940417737563692064006635340829864940432677154549720792168672001597503462133068590645276259825631989475422240775318285227093137868571820600318393603853013454020417402325085232660958030097887165240493961055400044320382642051113378562418647574490733676950781948840809327855626784294425609624764498670018973835941692251290618594111479329073871556495314918146875826593403227539712059586536608698723477110903848881145800526885048058522309381924438558331866336544786730037424713042712806161099687660726375988789984646246278762984277503548073449021666540846191042693360247623247511758162117284639463507636042801914555609238737136839702655395899568774948808951672852676890736016968947352126573697143956724233011815725286845643902982081406711298895847665876649999519988454205120892155186680164355335592521566290137895091754179944864975389270233718409968343900093545153815766136970277160680220120739298180679833991099597470098916478001041907875813596840417457543671221165224610292186542636571463074624864373015306444100303749796841903957479683819819328107802606287414807549445076725138544759931452646566410511291923005992758925302257604177195140926319049252648098984921848778819468416246558481407374973868272416617532844474792498594472117329753861135539437799967878854492566645629088249428557135466720580579543026805335136847155435631835905114903898823239823658223977495304944097677823891965761220258384239167653857661325096321326871288130585338292835880361095185334743740678690181826655937188337888940826167087723872438141397676020120689215542705916253962129107392576987302895375405174130101867456343600284024650800770774989513121061085244512406556721887705437938812833488105848375120819423470301704513072423683224014862489279050416077858030041301952691964535499140852963318697299048400001513366909590433624671409940556431006914467578789295637083978237674043650310117778108351706116779984916305586421775495987378975508956048791140431255024283359347785733737789195126504018588382015292552288802497195341293061695097745746579718707146245727029462470267475917405335801508792182871314467292041530224269782549860078424171429701562215666944130459135972197898336103372231348944940011469233882503148944878036736934650550349472725561845661780670867417133912075445371514946199226431659087710517065551836921093811467345473473463720640386936509857265062291513548115951603550265428624870615137222848007291031197854832041539351933442845556395917810696811759099301920610562833324334392092302135345122201547014867636843488260697370709783633686164787330681388603816047611287145502844209241199413205056466824141060783136236605498610564091482220381884514029613985566460126719464959511600145741949589806252564666438984515288424983094208666799178017915139378569034658392521845832796081665898685897581630826214558680640650882693333102370734801878953383393221641507676182942210529988788192971116086042047588767051578121042334906480980957856614923798256450037118973870122334343740382774406353767452301050246920885294518394332141370747828868280434244513335358394016742516339736149304074089465369492649202098720078838586190936598267025922120997697545684805842694815865000177568921728240213145482262923964070019696150727700906102889055043574911533957207346344324930140252618753177036953252688276150072747687707249501261616831152448400059483689587002329794440677434068466258791029564479291115199197883745590629742887468072178850124801649685945402454471290066813168553769201340985085213495070801731124696974751200829297791500655523383091011915664777175510829217268638247617980478054420113066438062684234027031597247323980081370888378369016227561249940876726067669429466693296659823116529833924802158290898438693353770899627980433814184237969296091490757201229264871526513504146873204774232514433511838350433797348467068285339968736194960235843929335185281740676091304612493594453643385211527343483050909001039268547629153148982473165362083461273045545496058073071044163859814558788576782255498412287974284725288063667424922601092546832545363785815132443974748359606999693180023727381879963403600697393617897019962620397792930860240584011580630346602727773744139315052024785539308738546920455705734651068023520269143347399191587266306511254022765778884981602116921607394412260935266758544100586221648725006449813034673757206194820789917904359510858739510237256697797867641526593076059813550555327465602889469066425503709311717086744853885430106853281645610772749204087114795582624723406680012506692178234833932423786373196392337131199088808842204420537435239548605415320093647059142423376972814458131509999264913619522560664697405030656973377142469107323507440610661898250169890307573672577721346915506846536878564071853402146050164850400867488725714005343417645709822753752936576841141173423699471644295811578560272464118244995155503905495071116131745118090588545754271267155696251720058143502435992608749069276387849127730853512193199071352117186523637090897197856100754912852619047756498511500413683023505218913967195842543072493367700799054080891645310457325590386076525182601238428370597813085742822576652661467423661319130062545970227700965287552538979634788331893025122264735262988806946396674422995807062059165927008840716539767987967184777107355405908089798849307689345820878062546789214064971088882922749931100803486793821974553185028610339880435788229814574095958884886466712587695142423932433815450323588203837921223009186514766129193412944431199583036435111754491729354753901277144782049647041919213520782625207219163373405085187827129285349111568774990416828764505660062099603260341350518463333285971374221990781237842664064284421755456913429158994120442974346803552956859403574243055114377933088103951590277389880222982561603233590460994113875113343811953231593952818981354240766158476437734251346355340502483088427577565578261158756960188429204478228230824917606704267849731096936562426040427359910971865990363166522977627568953274160351192222737981183863132370870103656398562478954695467176253550107551586699862105129459850375684474096705627433061719024656201380662919333875235367179690554614465484270654329399353400932187081506791284191298302055996260051131420770338674443031646987072527929342578058148441981279707409502241769271614834436183685549345035687859033050503834333100120284437368624729091284755266668902051178979129291605911738844115258406036971082288818716495599961877660080111879670442426673462849177103843573780873975258197504906576536180052640858890700128429068149858968356272481741903655738116610039309503401596193617260687439325499293261093497700431376590012698133878262629268083100885436470762253963003831430685566473230165848776817543781391619568595674523983740296120130995571124276610314793056743565826728727348223513896907611244953883438686669547806762068958058547875038530946600535886968879391150759841635476568464782563516933653731380444617621571054249795662689336051722919528640141132320923617401305495676872220024293607091578693393687767252131887794862603751053888409959649549048388780480149970317204289234233612001685165390918639682323192352016971491124650109892062526806260058923300993624511542416026145288365747324493359654816723845447066274911901606480929999321336082002734456663115279437290123875048386831079315568135818914125559796726628753693546618255769501802580196798614870177286727712512454831407083669697000949765404421904614359201020926622638438202800822720512562071287541908240938934936198073593176089498859245806247065764646495707169080285686482663100079471005630744536075027169146013163538093714679370585142914253928908646733629344507115143233721665888369935035102094322209211418126580651164188059361966619759807645908442688704685201915808925716464232425194454600586519924563013700699881719223425826035487819855341697523537181245749598975976072507561548225461023366359237950559851149287626157121341906352365717508953303945269002732924545682761764243992237609033400477655490831799802050711794868772687353502183512501874802292556452376445629177909539873534675088034870726102375024734630938885521013233208740045600032051488795619763485947561984096236138680380657130339554480668089733200381480623105308325641344291970894390108608198271091866222928592050907372148006984269438701581793880738884235691113191257556080730005667263504559027470139355284519458585804710865781104891712901544492767053864209353248046505504469779156869516413986696195057145374909562089610453488621134971254832916384567684977214725014317229786256205793554395537000912856516233109900721717573923483526276374397951567259629052359711791914624630854189849249284819156131808456932659146866985018451762994966643101392391504711049900047158256781811134387271201573876441483605982795911969210003190586731488340449272439140346877655452899087851893249489484194398131711243493928043369154088944380280663039851884850492490028795037755777647498578940861593181510904602709337997353381602987101754061041386445317998555328293560804921500062657638212129917496054377195363251155532639169438334678777930716796289363510593472923785015246938992034846744564715645803774159388838833668428953571887946927509218145163023943406272150903018326122681546311436992277454091523917054459772730117402970404087912195171723965221670138098509994537925601278850907176064750530837808698384466319756992321039421157670531132380195893227873057306862231384604071036518323756238362853770916609399540901261926159750538543902646864185232695889199850593148065240871934493916065343189411470549957719456320086039143627707778988372451155309555853438084644452837575043601162637624689019984313332588938440281244122756914592490483237394782204934641398456443897292388065942775252579912436387618433987245361260135822906120265273940709069957743490068093680692310155555437220877419247221509853517367969216426085366804297149101320741441056109440036118136882175816286035019542795350169716787647581561568964198143739920829246489934534989406957573872935817611623671045652528644972870316765224786198560090055967262325742963981503661857238433301939153111921471651501853840685845538168687096075599126864661797884555226244741787766549638619071490556687748332593284211209822270043770185481315404682966364409702667422562942320944360789438777156395698717510692024935956094017774333933616212081964611557917551897431992956834395407159497706387384751307592215940948749570837070020812929011813201854796292497799593034468782647227462080529115346233384703561299447003885442147919185344191186841305660854231446645789186848785119809735933982318353465053009366004599362146891978474714336961314221247593292488826623468014462383607833155533462690464712753397427035200950595742581313434293998470890156552914864161785329749356861254892847597276896359921415477345024170158153294727127625673120531705556911990338505073391901353309498986214324969428906361872950510407793033413887572705986362989358893840782700386249913662642575754403015540897068100246745254674954419106878804783690883967591935549773127105997633303144359234094074432789818370116890604361857742126375935729414536535551540029412324859544966906182718164960073593143751420340954356403970368350894805460337862634919447779005275128164977928379240337050901287937536404265687079782027334759400050924206734823591937082507264183644247017587845199940152209616027937389926286525828872139246164021149115090013692648343951982180254904304774278125590838233084583061897690468337693447153660848825521756090949802976422052176462182324679581267077906521553856737884854245732051646771952683506808551884041890859357310105939220884041492139838854629182386664954571127559828950645077699524061478227517039488091582539196022978488172901916528076751195945841616916942310324045081186665702852222446818266197712098609309061556949806821738176291611484847445490392693368439039185299149131048592855772800254379014435743091447516318068720839125685333522677872613993854045500523937319510885083683095372109103813589447759865042662375047051686931163695245754095794152138145390714098991260969232140687838037016210184167226601630016668152297749540122722939581600310990738291317510094271182649243352967000825272764569213746669534292932500044478657887796018012110532890672869009947628041266506128841009259129679871332246152942498348300096772780218161516463355956636496047199133120282563445899509631436446247786091446005586075501515002273984151899134026286020598791187329896138302874898007161152507454011701728284307859102248069359971239969985975192696278170958780202914121189295627107522495979509831343328920881469332301815721864817548069496631627133167787234899249726449967379159317861496483156119597158585053926648608558207937051074498377270060027995799653618077091981502267009697291577767853521251402653952294575416585521042613068035224473326881986313891521330437371436848881494206062373877634842457244818914519690447491271559882574157184723415293641078773316256460980718175481313949381466101491069178804200835391700291571815964747766374252837852846383329004436224944461867906335888788464051489079964347331349742472728626595938693676933375712445573820717514947270371253935031621790371136257650459628749554456082775755488717897031610296135944034263798517148145790292075972149258789428678152650476422583329316100394579317516161136110221100675979199369282198165566270191217869956454547640206876007968054819158696767753616730730100210757743945789251789201373225211543907673818890217086105813375018534762257434157347477814756213595658573958082891327131987349330111356544481618552461097870780215334003783148189393338320150400808356185337577504193695651810139218879364979665363439079325152655067772416821376543628577018785110724799027863690126799624751421832785686962018774505421578387858179081109505653510775676954000854645420195638878873928715954543334292282602425812201718265062464767803873638545809184173848217228628786006851671598554052118269485920477326510261286119643199256372262321919111619309961530555002335396626429062834544109892756643719982199869200516461396213987904565268235462769422797814999797072592252931011719584707442470156391896027535049782332750945845226455762586511916004342455232528217257091631592211987807528710534218533827489458003249851267455798625052154379960018655257592064223594031723322592812172465572079039156999901873513564604210859379110283753839818304848679781379151109020101174704814331086799826625244743055644038649786585691903745852228570965010539372592693648991046453770686295244813606772538522577766588302602477043625784956003358976028658172105624010002385737991325675052506198453626463509988977223425438124075563093742718444274426320686539439781146748767027724633253615492809304815845261634613663484957766581254932831745045776002324379706755212366951554321916520799576164972166263974541068832891638513255923736184407338257945381039102356958712438172912776960624808565938632989530116001243600134127487259434735254040973044090777587290738748236288401713085801933897201397268307157798293870651651709287337403704763060186665107594200268570141324550904358665427320399685577844825925455496096103950403788089251136962741580983719419695760911099914865181959308360938645158340037677911618409895544278206825291167058047345476047785844905033259311116454376608587098945432791163199765985915596177575701903043247027782281836022390197964900868874495728624554046454286077899846992061141372962577494906521808715135454993217667120531796372170149661865663123142777873730917889518312381631989767435788839210357722425196619136569041015156520261373656947599755389425071437495200148543164073407468847138363357297297639557285445535891787646149746709043309019560357552010871788246707808005357496386602645669872347080481762541788753802676526263644313230472559217133152223226756171834627292252986727931881767110469414117131990368367365038903253485837984086900010927378757679674436777853561844169906577936638770517118337713701224454520208362904103873274400166896786714405908407881361146675022362697937679385986073690336963221725679224680026024083970952643383959834585764943023744288367469586070531001971968391636146365926450879860821171750618678386525758669072759726996935069625403587358193088711284979767030843491071938460748471084748739352158178733347449799628949922515399485487793300576096330687276124209842878796542647381669700330116675411439643840578399004961311102435465966234492569041396170928671289181527895239935326914728719538768779594837714291241260869773411262049513248783181015333820647263729109271655260363256477200373635581145688277908752919239648810219130050909519397835258772706312251343342081234783415788329920070318794291076887555256743909413969783036897565811878711753672346268024671998221332447023152227809009737187276373680302938596315272252679709584973747055467960214838706183840312925502056559018496217138458400224894104201467316296656348039981784592545822187481967142009074063593672193341648569937434029884232185413704585158309212520543105816801635799125610595369116335527346558618029447633008210818645083877337671657564715662035064486566090281368192702952091171763673157984629132380064596085420810157937468365015484006137270163749832708638237881330663624194557236880356278233482272972244640453950954552190498403642966021886626370934273628641933088860025266846619938997538462537305923420316836918181719528478563976120920990495063167618602166518264141608525714380174260207255302305625009401825629782530380637315313150420351514128124704710615841479289229463696111000590802897727539713713507460435897993266805176127276276108448721123318599069479449871133116704005911340545734197715147158175419056056705653841915297923002097244202594506936674950574037681282438023459475304151478705095923219986299231395383941914586391400502013942442324836092391560008282359742171637685507793594487464998918405331749879159185504471470690135244081364407711426329344299052980125399650853570593510390320566668620166011194668897163623132902597950925682766711211655295770518729117549076670964143858129661221168435058553903358543008350977280809458347818282397658447776809821599113432558234402005855338814522837386522266790264390334245376732811113109820990283632780442443439179298666346310199558041820201022072837699666348209911780784621148964838253160288715563704987805781872085160414865043317653166741588850690885772205677979074720114634749741565586747301579599322532954305171622033722223526193737292581183344229985098589740370683312489559605274746577565061845329053852148947370646038243017808022247205540392267526276679053863017993279812573899674899665404447039895051697848956926770312818425147618125731039437596705355909348289987101669236989287000856753120586494221993924269390832292759907967687375565573652971777562746496013807320413332823893359138968159293813897613294011499169866270218026389655013682976859365723982030082002418609243926611523366249073473214612299062001436791942094512429245662115169493980820240653308624749666644132488823592867028086568734557213166015501887379346864786585115826732590570195989951737099952395672862042238813246778750155861873669441376417139187012321703953248155451021030503153611590532827063660260003462196955317022178024753632113713586262592172031315162752518889501973389800496739225130962981317049867581529033911299722407896073033394639782180271053539818527266023042905598083227521791694111249679193736237897297261063795963787309817264410581905057782793075193611018712715712466231407591218537459662557053287562180451498220311764217894013602713614721725233935132934018966084170973367521649325187027882996574669471202645856514382862351737580308671966112899370198456584988529123737249972000241219571236178824135185274624891522294100538802438473800716359447763980337482304380651493479852579480552678194888270709687345410146948047906278586045510758711052708383765618575158697757444838842715616221200099133036211594236736996873650170305640487925266840520534693047744607948771536624464134858111757923574196630468759995592900804560299669821858483555845170627909794460828599701942481969782766696886005413189260268641119069590065044174913557841820894578975794093707573280693323748904185831664155568354738813009581278766324903647715361551064522863783626044170210410404099309263467762505560365368063717035192519176935271627917564999475946081433236897253746609054450062719745139146161286249464548995789488757826478988807611965911992807457377239241349021845246547292453650101621172356056786856702633460761798902866763746103268961023751872668495832889630322809559064925717316540447474543629929449621190997297203298287446595432557563626009906759967477524289337654164154165401018323070655373647059107161420414481484991550541991690681091385633867275627343675269105711922075574768442075727147516180306036953825147849157534270986991986958128634173612946881660712050195481356896447662615853431628515861597976621105855247644695413542818073205407134007228105169851147697365016265908321881245070064851284632780430000210764631763653640364046273590395482794619452935362888508032934112160893195168546495425993783639200124229522982921206401653992026260512100725850654774652685124325558145257878824247471488543174580412240917697083200782705012981499178735230338698915181750601059082864075698604900868672779028997668432849143706452535334133056392342620298285884691991615234251531804195734545700991354708150653541550543670853780447625300933447682674835394658593698184503771418445657884952371090799850765675553975638127136312570673758040326894560612586943919970871525434376848486391328003056231394094806792015007763989451462916941975745096142670755838485935282771659992112944647210665719604573634691499520817871295065729955458773051811534248465809863140176187646243794224394354045847085400539369657222136167859912642259280167225426864496180525461147685638654780608361162960179589766263730460935845310106841506045171635900495699602644293699736821396363225806203751808577686034068213416367737999718296238769638661493702986720382859682793721622827852738678894139879868443866739624667620079406357580323559324193455054970353700318914710952205325181133971330496261676500371564264784045927045853338443272326731592285134391926621426809436558535446044870641393192469293606282210282956242125704049638257121163851076453403371746285448143437231123888581041202502616429261857576143669492236825427787813561317305512295215981962582503592849751875913930808353732664943314670326780901367868097046148437401503018217861829552144975370412298385283724844263510069859026030870394941518560574100325185554692130965214516695178315224416514972110122557043405046562521326113971801307655455601297841002079364334183911722369912072605403353716445067813872052834987266068972061129366141881746777220253947581291006673394166841243935749667799621675398123404919774859135332776438642174156074235406391313795296462534973768518662808092939794765232508593408771865850692950129066538893913106426396115926602310370953069541348154959348294818916079978556017076298797138824282355948593700166629919726342678196943923231205991038725952161709615118729877332250771099759147849258582170182222127415608511572954860956402522038699831481877420626915550207030457750651512741177460924166991911520709966656162578807704457399386465318693994875669145862938597486449064075825184122897364048574290239752603220486600080918585960193422114404634834754902355872722788990329793389514611035758958832281543788172439039751384527587639307404123828206884423505977048688242261971214553421817498447288441560610444535623402383444845183669545001486515639764977521632586889939780481920215485820332133720465616500936178216674371413395412793918621780584934906399791887980358693617471732759967487480757356148113977404793075179234109479852086125398743632123297614575642959984504539309787014169052994208088625621711318974211783870467619994043478827224989910871946680927782529921638246745031483488670351690928842339958617262096011237414988374287418445295127523332875975177107857796651336332331480359414970784433387704742350744098557335687797379812164836188180368719806421864287134041849726158137901003723853859338798510414871256259634886583128332601681910099514542784819247623089568500291158936894071769025514000138170565114009829986893493864022439529208216332200754427842317897792015963067810633167477772864099200439397687046677136002341339720677911885976505665447681569759058807401621028540600385740593583279256007853729080140070458265352402412696806032003410451317005768402619548603923879820904158587720671830393262170360531006465925338658792560588200635490544911436722049946011773039738207947368771073991976567972754169386560031294800934231947047700489926615956518741085438400996772054565769469098329107532015866389388482566746330082210374937744475518053175872657339797630169428814427624250675355317460528405346569339694644720385160171955426567139226326076557690612072750523658812085204644790260480978345025944522696540154225062729519144945196065944780020412095024110314106764909585347730484733929411449839064906788067895926108490982904446728907479341921198266340966288445760009476381882239039810152823949288298310781902317623698298061162387668973696707151834793836306206309999889520835627561614649829966927519613924757579007658171394123849848231949998601868463154407626702412554487146894888037388813013463548250369194847762424585596719644490749044549389174711789109338245669457489703164511505670681807819678146872541532574830176708802153464451855892557203770515188044507650892211992393257119728430301779117056713024648476371014726603260751705736698280448496098571682089601001132936870669829941076353465775880082838877567157110654360482003066729521478923947213123376114279118450237329185515502634772780882996794726149426801428666817585560597397183063015772126279571078917796250930031515951444852267666815006282174152333391320750504072214543773511620182443866639749007725974729156407084481829324261880024904939486522491164913174464416152780347143990665330363588115812931214465636756500524451573717871782463467810371826640085741713350977946011059642059939878900266059367153983888348464090074235742855384029396654354504908780983154480059182608247152991574548765746904300462628088027620983542101360385748563138102028819462117952226675111761934570779595993989304577523764106484165287671749905244696732365131773060775326918483158303652543160521316743467200760101613205135845862683777878674703941524995846120894309086527301884314144168852718164848305743533246698884700559819155887180041841334450296239409126078934530673636273150177928617846134594380354227094880698581572737836988712532022095113008872250797933073105139823366016439901243467966170843853994292929296223873930307229435560012148756738077529185485651609297685066873055012570929672975439995346072703179457264468725165581339421109852081661243408594824598136527001460605484628220691276134862731119345957644948840100475026406245323828170312087006911235714314091793470193213882955080748777310371598696844401132380288652835712075678450550122290743008981106611457308942290389479660580727777924548978378343719655776470061464327366033843710292328304217353761858680705503735864261791811193023704784111760128199375994820735283253248428359448525304258212506281528400945931145285294169355286092294667467080570677598963043868320594320125872074927449005434232723075512030492455497234671614086250789369453822724276937129678904572138195032503565110141093164358000987130878972832238566663928605865178236169816088572990749403607694084201449773692304974313623090523160358654713376690453400958617545967481776699764761174384140867516563285296744990442798784023744233789690887583114259818608413706784767060461575498816423814905198417179674138511252148053111939853412761629209202506890138976199538302825294802087084972060661438840765574008722515260295583124926779819858471417002108963971310346847414783138905968240078182989592631493647720504800875891803822039296447015616888267324754302141754490925441840252230850083805104274262548761662025438132844617345351237275415094006072661144041237044367177258247370031586692182416459604787811656601468469873516464491973772314137390275863001775648473282746401940760578778227184141025997529259869173810894176373153043167116879464737751274767887627470930632914482362224393413381161288158863728467683267372268267212250447474269896318150599323454540470586231461205900679245152181666205457118260158147238567351931252827887670828388156272837185170625268334115995435819144815660614844575049007956421852150249211191685213936330423919683850251818134385324892774096894449709731283964955011383536116497771071902190619470109435032599574546672239738402838475393069148851247329562071855337239030204596319016625951664869994456858518883800325760957766336911496850803679407285344784489843817495391129602176602544991623281126748718312049634505513252563853060670035432727437912744430793545303039373306612961145608541792862572865362005114900563028548343622236815295732604840565018488219922019614845059077010435976492811551058202087316147017837654675358452821190191165439608247645429655076991823442446603205989233371585432805509798676323218465755225675973316363847244148522486700972911139876292677876660126363422774517282909807132880706100418392961775886115733251145155450166861723885891711776996076888832136104471635823093272407804361045863602922528387528913651844308527454605245155615632084932714168133491510713361525905858039526571272081880336433234295860873937993267269242623677965639262217326842073017364251154073562608940862679412778895250873558060790492671937787373398848139356190411951403302682172882294660542248396143743434873428094275510638895870944148081696992893812088041912210116434594089889838620276794925341303927649318517516557036965284350038556442524991328174190130555763062208572561391290784562186378643241761919741883555452702733885410503151848706005845167583960064591907928144372794878449798009347400171482495359577588031988300718119627637620681554924911657345871656931611735015074985463208075984192525265794492867939628862635484554146372059994512449658646730448739933018092333472771959949773084133475594985794774593757881894823048184966170583458369184293011978561390683467835678193024892378602097716775940823151300253972295525169700243519214494500551297422053509802704417885240909828470328154123764033783833250093751960118384985977328295671020087546909559229858108227340537984681494932848090351943720790124395554281550287274278044338985298198839284000100277140330061004407757773580587169031550325232410761192851844084961535376897380274635232776333779688350196141729985576621822679448910274481455768201714694223771772173351017829210290300268724815581639829910819663210725882193144389265184445315772962157874968230501552627808290976593864688493269739084136199943781490013875283209107650545019539337368418408975368607967360476386232957391686291345309069029141746857126793404995472052391517193408745372281267029701063534100370475445612548470908758030721120185935275406779544705137574121432495685162526156027336876786272855877641264568981808116797651944737432083222551163296287347818360957299343784298873357716867358914559213681974203127037833109042689787895631071521534471217962476981461865991967701841719769245705794126612120526776893171041382509406768733159716819783718711686660250838362511738743361933456636837900898967074644019635270046696979028441899845467175356695928927839253910085380563206533898698053683633821026979194775838886029123283299587328260460931389594688465789944710354561901565337434600794870190761251382422340474427289949601760660241070242968539953493393827493824326798601986564588956584041294531892599555460730641939263288082763071890813009071247029674415324277871938904313311731604143379284163872184631772404707634580805486190026779314832874417757357781798337746761349394553879909152840067050322057797850765179453520371325966331281793703547371607228308343303669027493470286102537358878002837581631047972978257393902032508695034849327696435881892832287699437493416195317055870804703036285470734846050071183935557028128828801100355829976808303667677399969145946525043668713215541699865754878986752769030683885379411135122112280521792748213526922686043187427440458393661600716011331865552267907181593565276805183287680085466765126823049435870786884210550714858566717756809457095335132537463534184682505613322092590814614863423848765990162117784236082142680299514628454402712740704453117769704024789051153140456665316901379915452287811929257041001089460354983826124534587829869630386893876653318684550693648071464081088022476727200057314809584605754064729380458731003945706591167223536272232202538769582691157078620445252744784176366646391818999553003141903260164652751130597195624297738930228585809639339557792452161803641332975133264703693651633136407063694339560189329906643663660257532648718274833249013334653271535477757922581965206589412191814111717596056693318412904787060228390721661667725867786120887126571016742675471458190164986146453177125518484997447732475051785102088985538037210548288913616299160659165070754883124775051478090330609733871875403512209807563204295071785326969226268701699553815087202821746205408947005429415905712386883107705425062951808894872508679898850166755032788648513012449642682485768305035349923554965183628045822961842318107855110020339861917343380841108452278763635993917186215312604358274983792999370784850554848080033179434559818221936629906862137671957060852551881947051358407921035196634264140827809994352292757430088504564548574578799327946955850624181005889660639556529352517183325972360490487202043785719431587286963978832424372997983869951420300368807582653005278961505957686716239103119586097415054027379633159101843010364798095932860771557806219415879180964349974709448665370948576638702155562416436228398194209583065106006662227073491762038574020692947175479439741403948319126654189049613631012474590372047338549588793623617955012130709306692030835264472804071649745435292853889143096955398985054963578508279922536509477768441594668780869198202536328446335331446342983551854192982141653812122549641548795093834768917161733592199705967177392524269652652942051554272041856237635058074877877897317050456583466682944857466624801181516649473158527532744954026093093981929669646365414916420074503694909462522832417383861553655817793037095721418447133647256421725762720645955171730608699140662182814893341378174829332063851214605793954786306769404276314236198739435066230458444251745570922624435775980660199487444658347450150412033070269268272305040082362185162445188445013988023706789531470001610171537334548279684567460481895798255388476294670447594570189747219597542945999647099249380588054831482568972798045434678857800124181201232054129707037738624179415492316645912791396684599266601453128454652849161342006295316566577417705173970317518288742175088777883651756179898549530270982028616386108382281158465289944733252640337855068757341514796558594915416394965076146886630967750512235572527536634136102213202991747429440856319053668875244904372978747200079148085126182977357359907972220820128136086291025813676442242817546564697817914756245059216452041593675107059908304963335179608965287012561967255947002144172688965681968711256231966653419210379804053029029401769084226954399587619435965298140546056587154552691535494900574171966854899076729128563928205780264768408530502915590190036734732079526934315686614886724290508972325956204753456622514291181742861683251488247417623984143976182874443770470507701343525090600622841319879992520918224052572046800066333186467296473075864232295042175279476167077524161780921567895704113911107964985787168549379339689722340798006587123918102519329662104779518202766964876619829034455332259490577404958848637274325325598161803362943059534430350087033991290112802824012469884797803847875665412440677546075519032139161113200530031904929439869347397138445838733189684784019675115917589686974279828711571704158007303711699698111728543078409596433626799915260682068177485286501001623992022378631040982187864944263878375753609272631999400827350547118718790112519227235567665683793196061578495238573147341865568985419652146553986894979678125674072564900081365739343947503554196313205580580792549462320394778373221556127311237862752231089781909341081869199463053365942629959096122379246159697527416356003133610002800461335620604394576483724988489029492459658787742818614843366061048139439150652278404052726436489545543339209625569853728893756147063487895335182581803955497968393438475514060453439816516922872530901158928599132806739168819124690190917062938330097380099899290103576629819983941315555945742204167752137006228119151192835364859631842124797746626695297802936589799922930695284944118940860049241522380762653300813854678283544116425190922930241008277509973639726566195367038217280204045918841750068923911013468409346297930984860886626826713327981774897838628026582436458217419109332123337981276258048337258642589297715514963496233317752900643390669098392432491470443404660480934009880603579205900231017171947552901359003659531227046248281673960926687125480875362445836807580437397363002330655422698146752003810252561592448236716814336715571718421607085089468768650948305050448428913837266826240846796690883643119947480887922134735457746107974614982242126968109106492845031471926117901610355428776653790525427822270865500687742650572082006552812521623220770473671007428299200958870825246802319970179989964007504789872313746297960073040373331572081117820413265692130002659662063251080240489865768820280846022956500012080401715267308099476304114419683381101138885972771968379614972179158312370847420981651768873744388488418860364007436273586213867174962585515720732886136237621446250037838310787395206864109846699283915271841384057854718235208177924616981812689939828735794524057927710346879482985227527489369674385902673423227679351446457942549427846461893453610861782673444574713195660295875957978139882617550927377331321323872535503085638584571801277880592526630563570589340130455980055127778093928402025583209605368314707503443855988544766148569968515879805612367808573073163883467672370422740782501550905146159574060627436664494096435525766598278199079209051405077344827315234799733836176567310535961546106076803853853956105233285134482857600851731792779672273778167067708959266850089860666794850668095363500856145218277029241105893662084538949703844936111925436933599801117096266758113069390751646951454873820599300008001293519528223545491197609835174844026117497899726232270677711928046960416271640589546341184125542955623874492559533238732642098545030559514641663618859041468066595568485508948632525039874668196426511394178781292076705045962267944412262407446554049745836830320758385808943129815977219566538830543173717997621316379112292577960487069862581202030137787971696738073159843833758042640721718735022985219928316604905048438072659845829571555848780294288503800058309054113577747168719169895075383867845482147825034066335557357639545436014636642171600648626493207229333515536875115822672551593185528464346821111136274499347019618253687030771834157582281017610212266044251688266864329812773588647648684928597715882973458572272648449602558256803973800191527720136439538018970072230476455547774259690886870713242703276070255902143883005410746091193439541192092223127251348361253797841409447591083137956311265942114245766261821873295425707057991182621856127173079701533062482861294873337119868878763300392850296835421865241560955693132575869199037128109113199075333631337453548978215834617250573986868934378439942451774604201998300267414672748142754394745399443946148319352038932649173584827433026609436878735819846263387309749193762426142833349858661626896885245018931785706756132302127417651399653385270542203281674186997960488856543157527500199046280502538944629025698774331951742488331924083283491739791208369069705814201307607559953310131606974819809928529929634768633927875564166603044349292378372293178205630485884361534775894807970580102500500598873020635010800586294729942813135702189373638722168158636915140753292362959517652214532664742890387289670126896004677001134564990982691867104972998968761235763154903049286659159904641700764617898455236354044806017397155902498110017765232643808035676581108512701211138637878382309630701469909245658285626678353916959873794424409048730497755082791442695731002600257101154297099047386092128195214543271704388770921029995582883397278218464831097324079685314539858490009272801912223210139691939759823203385505691106727108103137637079274661422906269842887092520465824321116462275299316917971451705607164664181444387147241428745790678560815078451927519942915611387376464572356790718045136739376924326963938178869404229484299543551945738325220442750120028962605457825412348280456888343065999448651305749876941285262915073616040010028404229541289914774343068703900684842571353952813136876011239130084420390459184767154478013513182669341360190042682701074707933972423816708324293321274239080828178121447278750461170575443172042926971259131532672125108856195765205958220321071820123723910969969155627457371427205786950259769295112502026647829825224331859405780967816901917096909650193468922624448907376691838937441943496822735989352347774897646437609986615495244167028113897679814254076259199814470846800535780737189369388605881692658849031464908725249530023917871511952810046238347682444293295955747606702738636815984055657118592261554120441002119006582823890704757111977503031297742509537469862886344810897138888977561590930582084195157981384069204640372565024700436427504642768591130239436098450525173528734012215552043511271017612935153423691079195188592453675726029633815188928496659711387432773171592997522848203494572244302337685509740948713569053638618019213106373410555798338870051648721922525646044755831403075799353341987932036026012991961418445130392932007924597923065848215986310148582359825023243589116140469316613570051156137835729295935182839563626223836392919871580014521396731897009507903336874327305429370925703227721950773117029368301024042342942286935976867201155583098513978345165000316128775460954165947037698023480585775312425768840392848097846347042678989067849304590591128430440311683058028624819697100656080067827935772471641370681569454277462430380161453846653557610299386192770413238539049225647175779741890067545583452211339863111681947119876430596637023312023512382927712995095765789566356346008648595001919008616528625862551204624417934896970262138940347779079361200019850607386740130942075018448149368980913197756756197137271926447052727037208588576211840569217871982713520296494262975127320058024374258175661860063714875372737074736471011858889535936565900067091535950778219116954513445855678240183711073574747375108978006555126620732404086940700003337058372428828272348462446859313312696947361765914730970465976941643884861654326101138661546229893932666506172897858858906535193619584119044286734391716357918981881923744485683644006536624527971878505385498726090863677453169535839805879647977990113402024184158371047374834956261382980026250043490905780457279054728804498354528499732948470045641225525994418648194341847970456685721964868046979102777798362495469080638361868746415180631246992944499316339467091835001178942784731127710369901632214092487000752687194088723213885425569486764946142339610097046349347875907172757411513802332329467895440785628978942958415894550519346090889446799211082935748164104942218623863462748302333098327055851833321032897911886361848387908673133938362234530166022994190052486849476549853003579033220262071808355954641256339091978663570373090179036110946057708830133754709619444277388614517805611195366965705598288809191906097143678411056836670499530554030124254779166666669766561403256876052332694327490072036937327217051863232313545597587997968890425523881918924805985948585661145558661096460136138445330296602600823572199563670439961289997147300998116801942650321538526845083239972133698173258215528145270337374887596952404803547045682584432267232336866318331888111669146626950609864618520625918154849431991032485862729287952852443313098113046539290297022071789483616833361481183557205505564196565446470852131716083063875982917127895395945546080922414079930657936577878837268874868111229540368590954659461769836957093937787760489759739969255869122153656635658658845298971805329280962715036225901152113417639270803259126768659863798641097679281181530413516434001585938555129014858139761583637210526943910602471858199101543995659076359677875537754377514645311968168872585464395353233450448870206292997354483323748656014540206991365290372014106748183416363148515255447347400179482959957813010332158585956494057799744797542332770302842442824450433546724228564147144449539027230434483304612655602193082975462803692551439589719401559965507193625250814053976070707315105322797649858390727294187279324320348870725902715976979601589636640842633951790565398371636482605850392252612104776887503060093237177245844039730952108199921331530186136566624543983264611346524467351070222795753610349670643946110308240122607073016361113951832964097741837899880641023533018849855941327655652582467613654665756663983209019849237572792665858587195890062023323531439033076426760768672254746416785365678376502114799517701324614153508481983777742171952728580769852556409639460126407315057616732591945850673304450373489774458100153293189531901025354965672156608528954112469276478203548022811274090824312082931559203583805344146831145456805644658534649390747916232491058196351032081203328704674715538159715229481372886635662631814757292940683381736049527343936541868237264643934457795404189279886938850283010620852918088167822470497433435197790391093578935002503861345365039554134718994406866845069553832256719358207558991272156606322806003867332577146247418980000595585699812987934823277918416669521566651036683864975572692483465148179067291324979256572839134240193508918118564249890643726761238095849505357193953782229710588515258049956967898308212367700311968015199359010608954806550984344307823747071000123816581244625391238395389848689909279866333272596248173340762088747498047183556058546470990508073829876011061284803247807287971131123433981092800344692244371526211506296333160952295362394291102845138358831137897651765678347757102570144677291399254467272883885651708974868157773910414169694453001837063466659086626577794288278871525110928013500824508224881084240887981552716195829375989656856721912179031945360691575448564301741699350137165838394943505613530423635160854777211709785690834437028858121777576228371004225020808986262000561070347063010676562203237237422404741268632994762014151702919941605139994923616644221634765631557261604353434825269806191584978295502830220390851138507013248147402184724803103162965132820773122409671034946229942161741829508045419044829350760933260186281608427699260473000203325367529712773120111544348915515358932290191805555176128438607241633956212495824936279114965678576790907642246938191327847740279040867232478459368757112978615448771612626507793985988109344903318831034769074227759798467198650946219449010783922603782137709922244398164861993426211080928930250391283215594814824313889764063014555930287005043240699000872658041289803102042359558456558432605632048445826073458878183873537626847070345115452582689635476905397793674674430470685726996393874240631610126613465896170983089232977157178900314277132929343890735747540730659207982013917401030875302621954333331332215111247844919001121110665725649029416913981151489235309461742272368268805301850660484446890988232871715993923273167864407573233185049746385145507919262693693621230276899768555301378899862219367261457829908982392381613795948473251667684376793097891629933664330805071054781147034956849320590441364197652648437587787883812680989527002711331968515655722051654420651003077943632134417246369875276950355377605705084251021882938238504593415701165521006545698193971883381658480154316845817748330849944061037549200220766123742635938766100475820464709052637371038110821370826346240975934806556223337774409744139305454666994731863515335074393648296788155406444801085285316545271462598712118903207961052215205263169893092764594909644175464539170338437366683064481748690618745274138252386163086313748055899009458991885591612365373152181527050047831168611775956804959091665442407510548901562542190061950219330005784316269842847721953648719364951079177896840338879024883306582425833153959826105810085830265089539732461829738562220919693096371588732437809976875966949349917629371777933153203323176603133681065382374065075691055544636714165075589245972200603885441718878431598222295950210750648441055129353950970889365263710287353771526665105538165380706936626300783113034956093956648974862390421934328459866977241573747628406300286636923710881100977124838624182044540758375964536721443986279039758522405788302278611403518899507250639058862952082253790347408719052073188463922728926935006533996038926823462645774426582373358225362173181140449729850534051478480588532649629691023707156060396109522250632432915643015984926147269982967574059689256438357077384257182513843760796148925612946549178310083344454118929018598301194895725053453805326242513360123969096485163276847378713710053969028379351731774901921016334796352148356468476913226440272102195285902853402775648274717853165013507974872159109073168982210358179243780390876059427434871826696294426044086866926848913223586006397041994335377414371835194968084663277676111408162015969660568054501971945550183122884643312178765112164935262749604539295982510938077274344500791933903939044256854317438701156698552009078330724148597242161355711547478662198894064097651003180842726354681992878806257556096278544314975812961568321562311110229509281405044120865438851191325476145573071520584617287086725629738897771505555968597901249458006721872166750539686553411329241609115502181097180273687959956183443108135264810478124567920464105556079885275323663106070291562811752834832503382988427650766270063643877970112592283230351858024079500605170681633684584386496587713068776128485064875626619956974460316610389861995827740676586292065966619108267430123668619727166313153614396843184302457260806482223904784611518229153083879796591945017234326067017155902019636602417443782132618254316966523426022905898807240513147250284807594903338904316413374059149652049998518346375515226608203162580197567185267651485153096789738486943842243996036791959319166661912957429106759016044971368058256766291218049061994482205362141350013279619966643911703524594086938693778004005480385249760051612523447316022197784978081475666154123137119813575497833414801590179422568046428614739782055058539362112952837329024433404110352831032474280362319806063421570350247301518400463189249550054486423339038139517863041893199793070093745270200119743679101775592095894386168049765927777858843480058358920335232654815157087184221387694231707124141445745487766955222684065078511620186483664711555487595758414018027716950765068235946747303638383778601441233956826470831238521580851073644545261234910030242518494434823330441704368163718213044943827856987739579678891831269146847444847169989491031353072084817340824058122721295125605374069196658314409731140183546167562736073783258006313516999055266820361036035501094717959708253829102413927133591480930689217579963333511923116504897780152006776728569395280999840291432887392449389870682315926658796301621347900972957708341322940008167999211925646458854540311620985908126443171357870918684128856590954463685883106798085494919807469077296666258669037635731871928263248401553918142368956261249774393136758479141801077320276291785223380883453010249063426386542326530032958093716812543213292279537095490284935932384895758624129909341080007937856652241565132088141529104534577712393111508631230070209879763070795642465966525293843853361174961260240198013080445365103946080741613996162593193726949542662184433674485934143267921328612691376467752035210439267572593517060594830975461255221797225986505158125104674355811980113573460117984463902655964003019716342645481759102342518709053002311362998814904182936337757515147283457003406662973972938997417344586673063317719812921168759507805313535089778004451274641855287539170161817673682706332683158686112763891359093138707625993189104041339139952949506773608313775049036182647203475024123168616406814859938039593547977071924438494140751462199078020839887200686644638251174031826553427538448930032519819917043762840889427939643827680392217144777974963984452764870838782876591745072859830929216809623413143847363302402923666410717115620374531650083729904813527971956023485540841578595926435538934761914943300751335795880935082475050632359780528864860276053277472979227700607347352079195838516797124671855894241079804796454026692474771290603186845966733414095591796349780694252100807256891170275866153846098395646600683383728375690440384085992857106933333749697711670214434017657218016287245196278078702918122227787046397623093859563440491695789215373826692915725556478985412272379626413870663958761238663693537136259805437185758804892112184368837168994106820948850081321805410816819045593466343337389272558167274824455272824908401198741179949974247837749258780625097957452728361693839176222069771795854556621391430435507947416529422625744239396049559800822523842728475426787260833923738149955309308087101146370399044535226296282807732854654272520954033573133834283372626473251070031929537310909478572808278717487758063304128459903183923071476000408856590285733791816532671068402796435302016409370210823852334711630147772952495607998032396178495672766444395463137178025780118362824988653314769228859270057373549879257437719651910902649692869044216859198146183393620658401274575395056610334909043117794426624622139869957504308450367802302465779941810700823121349425400380716188705911351628145364442291539470799162079938704804265378754498296352859356029525095953598276996424578472050661520678292995300847885048900438314048195947831604069367001608455971534806747553867477093163023551118821377129367343223355235591322858346693286483962520573422822686435678423680799469004719068720682309466787727526981869383397739567705967849513735617379450959987160880259959337524523519306269268718935831087282376775493401779534410496015258884936579493339866149901992643448812301537094691763707942411115798273448686918904733206960996541970915239291910836217984858457832456110248185889493980168326740450916439189142036364999787156584459693868549331038030560372892328535860920527164196344473416824635418524585024216307370990984462356170770822403301507160351496198156234513823528872674651729962094951474826336431746717049777596097097169753042930278016433078864245456491391815965427340317492331225201960802031698779121755985203952827062230355145365642246741025709414012628676935169161361271733457591194462228729533181733139648056196759876724347584253224025946569454619737956357154334896995482108738105026216115001024821996491287320848826165260597186714977377178387015498066476328342060887200826057732573322548561883019067405679056426682370912470362169470790131146395848767284280004247300839741293044528153210319883256846700020800320569914726420505447400965129290461234618543891680550034060165871506125980258924026284006852044571891489056528725747880160728155546115590682901687653522122522113969203166653397986595584035576874510649616219687025545482734658552007035859797189949243650806947747463552229942946708844916797138040048763818775274969155428007478897606446125486517889054780299533434071210822199053934459394536311067232016438068071320160582147353704884089395457792114286259027558927999272485043188138042446008458143454533547428204343762767697635863832677704375551383741030232700425275080533881181930188988065649891753490893903729773983497474697753459030205374198523219474336758417667966659464963916694567510628483211995036161399113499488264579606663487217965150656852451376479979523522588151197707437291634088929928839147433295771145110903199675363185686324412654738411953856519911857062684531338256261424077129286877573894344590175705111292689297167460971573657538178691637390897517029137848352984999656523779065457740400868314222426098822784672941854425449677987700317389131892943444568553564701698074791106223927317510685578266913871783358281857879450681012360761175185235868609199914699533513288559865193106143953472506832542198104305960099440977958374116136373720919604996027329915937210698079873927649159039661746581325362089642298074839373611849663751259392105090770588194744976143844111284578959922741502009385311695927099140849630558434062399377774622389096672631949908943889210645857301737245456909544647003186502723913657658910677321508884838214391950134338098140014385179486281539672183751256442296050690736175816510184563291801456982861659190627456940941859038310267588093000029176953378096570025314269897880861083918107212999615529677417969138576117104442967160749600388105108373545112498888571737974289780410904158863009324191599828978979346291680645282871130363749631859009461211837893695422733560230608581536467100188545228908986116958810906867906346305391522097587040235141245926610218851113437702676456342680777266423627357449571804952594777855917821462724413309322528523992117924439364357010458951168844692888296544016820960447536766419210131467740163355714631994148354813015470035859555040825546833161988555691454518185674482924184122946854347689213780023695557130827456282740074652952671343596276462524312743604075992250181294758571775172345191113277504663132324298490572859913334568695972467368918930692319097000597557564005844475794996625901446830191817713940703449151998160885854399370788743550701614874750141453047819308347989302333077764047157500008190125598508091876503189453958683103566344377489478868300492419038602956636117332128704256508812640113999864191569137666863894743755742124478602374705999121334518049707474937571082751705507627826232881959386988159642606020803694453046727860296264613195894741189056755363062415460363382142902091596042783542650019655622863883881602106417527521875487295761908945635131158705703230131604753947161323941438316590138562906086714639860951537154067076885235746271115873692295695621228644506326267553611082869948618837322948385708505970177278664790996205366140025930795170960559683734674847538933653102890210689641221768508985651292694679486889219228705624448952733431435056166219644135788136089280898693042851580656352062474268706837717141090867271278902589012920410482572336156591131325713762831512789583702221407085235996469521652825653236329108793422332106370055068450555543538411810583375171933485320638381151963754819544014351524660784856073258456956247044364258166276540336441194944481689552661938026918190036904735783229820954348276792083435648893209593596908702242384335301120240087042942719962837792889521307612679122913957036952149002429181206794022508212429875287927522101031866693755543873825612011691845169371834806122141978335232549303358237891766134711349678605628048087356451103013463440178480137663569924845308513806868368666496034097081743121390547098224583786117024092290523811605179805443744571240581587842584372827839019567357821478308305464113892724808950653293740588159965426040838080526397345314329354773939718424496787174912785277116213538526893679132879671840715519419605284053039171871909405897995878350585776210159050488399156861103362342661210920143171413233199786534794101675147413384129861220368336981395085545686667634931120620459968241152856069502216826741223594250202253568968973847921223268089498627545268948401915685841828469360975633245705699071838026104372476645091315134522347581221769791363427573155603768596846024681361973680131068215507532916853905534413128016191296893462545438826505419601218939035365783398829476716885668500161420604326855764133187228994153867792338412851634530022964756605250186792395265463400039439380987603277836131263359488340541716700566158077227174198469876464602823436038656557186777121619121576838988602649750588278076800364927398405335232646096608623136206369614692663161563193018101114373883229979903986779073300792293028585083104048061414681005659023564530176170638800457883890490197117308658221050061655556583607575425766022596613655108958071809115422152068793645643719275529938891982720058073036966010695134748295272759914165647749300359358211813322647151796333819451689340849818422878683951573048794811213333614160517985909570028211953105026410382107630981530370751420897131341302235917672143141219617123843499246256955087510646771042592289652024214700592410917040391562926770263169465604520065389788027204629918493589015920915730000364008821893901020568753675991458811646737703361974675247563060659038027000198584242384311780398963913813674795647017341182705602703397804958372009081424974594713943676514855915959559523631206589129392418535521268458025187813701928878259226008768391164538751364449429893326420518971512029634841290880977439836191859368256136107239991817836945564152541771756827421438284721597491937722132090643188763230656103418625352258996434255997698944636877436717456759420041107033821270216688640067566411855845670112795244304871965673721693641947698793818924529825326643747491892895861380549039582462796356070629398836685036694574040005384680450391596053939598169441351347375537588475769200283032570879815420490796719049911881594323887847793041557348002501581820107355872136682238642285256183225145873876083975207580340786493061181196615223796680739975834766315776241414142584834497249572647155213242617343624120900450692748696697611623788770261617495152784751944548319786008023531466212715478071251610089050598280475425437974028761127238809900279975096433184478608602457054572538352162699230613626130455821465828833895614612527766288144788305542831437569351318037709706916801356345029443793455692212853213635354308265354483397987488379795323140099133330323946579304934632542216453886809827730435899609065779957237031633729655383638962102558590906767119830794821847498986245681942711381013146622350470329833529174801955285556140791876570653071642368454261840126104786156412526618133642462084656146483047355097801351230809116932228809148256982747240072242589753775620105601502652741422497754112957388070690180510079118457651057058988060954272893442436782791680891437950780060142934374092176514622522942285504195722243547447890063268346578861934963273193784063773987927465756833597504774998061242527556156935731351014916306613960808101513606197614180301609637788766241066435650463094341143113921525873784424947126904959031086934094882501448299454497818425691960389423347415412574901028465476815465903724499783056334358256211599701672612315230104353960719979114659698446877050733048978754753415042697648696941563089989745050425218112901789623565281833603137950758655710256570542748703932148261053222741148209737128835382632697787048928918981334246557910679913797749812025749104093332810694586953540496881833466058966345500424384798971141776842471105407391365431003029453964932338606203083235700764215417386376249703980876189562869013878886336133482598217478312723346170256629563446043192639777095499004202410412701220957639103009827873248943552934269124041441340333410620486923930523455486582256040655005665013508251693675200881009637313228671279949519129026390149895518530893509072726154364961405815641199680149581677855301351512242862372361129666221519950480292987991320588087236628694563693214340086252730459788408719471724696992926670782029175699178268409276572779362796056527850217691824128793995852237755101545834863240998357205167032434573490294472246218809066445815418749258341228722826463044468267569213324917659518694610787171638918014560751893998991081103007169806878318755957620270054175753210176788206431890364737885360801019313811515120731226665730062213859929461620268323889178764947124660687182979832851591935570044338608326159793787323121851233891956538292813943902155068421093732635000074270927485441837395837498889679508492819221694439330397522736223363536109955967368404186778843939459666304391778790546280225375693581900950349057287042411058410712856383890637706432258348592906411220041273897269569291820106723344825733928622886694928208374583196423196207781035123395469735720221344159092843152444994746151577717109332281523032742924373559195776418065826339911522469600771802925723964466431146343739399017873347723967427562111705759890050133999103063974703075859888994963203609028734202105904032390054497096764806434122252043182037862769412281515169065109117081237807788650957045808265687080049295437379183234673668294484875656780854132364197834015162158577553383320063416220794851748512155516702712218186013450799080553677466817689593098305286000483973285692995927066989386699118578607080158482440107017547765504530003064906901030815969414504419647944351025781055591133830413048413260866998502555739137478038658544013566594065099987961491878524304950962309404199921168787930951182663888470440069279567799437430197308030307212943682036988761338852800298966162573140863961294631743167932163033030350782289457588874973505533022253058979457654043023217818427208143908909012378825975080348773421583504086244555943348105034036565631932236034036292869050487660146279960644957473383080153128169164346935218513877978218326939432538661813605377051598000726678373834812183150080494247821904480198261773327781030835021962485024634977262011599331604504345263167964291405754790702904547401875970819850544073324436874273105461623377029052349862391222470654489513776624137047173336429652401177148557190828458258222162131670180523907922951531021976281215162527133394750859787960195644064844350941339432104807152552504688070754469491205383341492551947481222706402134644449648057683450045554655865718576653048452048118331763554182730559620694265933139799481870727666799278835123702590858809629826112742370763830580835710196005359509861232114941413145284703877392536054345206203476571880556894939567503913563905129387439685009490287296708591159700574724744056294145474717672613880177443216693775625045073633200928396145425645884054649912637348183531434213170884753103612266019134518544844672379552004562014188871292221683593340657268471811591586298445003792817484503465280223671310711110891327113481227300576393369738879196669445477324448748590571279329947245133623812030541097446682005600996021023985059925533629392394819917222307629478856808150612435063525809234490761182390303368683611896461724324969547123584042498878258152072565424972484666911177973834284754576378192001853878914317952472217575107770944978828316173609985688318504818155717914213620362457765629099073039898061035293940008954569221602661829347210215084991087693754925844576058275195119371330807064580536736939872066268119655497949455190976930082956733323272942743065163256205472972295738253736485064884385378594128084982275658947174476729287137802779643091571913758489324348203164225360402175339016795264124930149185671110217111166371424826059611282610624261034471888704017751179689290033711825167526375552964744796002347237495762110591808774181518926943390753033461921864390756096496140266583509209173299404321848906086477234667387499334957888471406896929871800529255836332555127831297243299859581602630736782141523715621680246710989371919664537633888853339344544530773410214614463439680389805286027607420904043497320783704200004873123064424545546334863689182610692173754393809207850016848444890866828771039176660376640569532359083119734440345282862839278472392144972996994277900901382146926024027415871682655641867922559551587371020289340721974555784361598575354324287246827646543645468373736755475433343570922343254411677186935638599618665360638549809798532105707332184521404411565555694532098252861094558961905392049834678549158713608750099690283934413497226917126815895670873253284935837231482664303599890269598899906744233126828054365383979531358690737851964088632284753676313165368583018947324594124131080070264706521092659104137770921118301707259403444649009498632797274627555497810430420178031397890465286741424856494700850509119991524133139598054998066002390108418411817343971361834478660786923285539676581866944007858457416648328193999823035224352549827417924428988030913081672969354022305792136806474937069500426492804205049481906323124166518602187095069501822520778116060919523801280883917176660228840441784728995667239834143459928877888470994949016116947151940783961812032004862295393684413723636816485559643381641938996265566925591780664487798097155943715878980845577800623317320535642325949007653272624418279637053304361263428038892183192870019952782263220501028974452683348892458981109407695696937252602791951782975435691476234530685092551914082531921351286853584037842917136312735908398719828786966647348487189100648530642695574432596682827796133414167330603445220623468320784511935530963216930826429015439882678621984429667235105682672016427728572983250386236564000482847726639063272442732884827654015122059498047180978931804287570023928682589156881374058708184882106528565569921727368695809578633130179536064527666926899829215106175518446789486649779371672671131059586879519249396320011924865860772193299302493807851877661639671939969176939410727844440050102886270556514896268151290345143367826906483416004068995294192832796492664661994935090944522032061893703617635412343913885467709831808469733002339454203191025729756130149475799986948462299018858751259376996369028599146585095079376441773803253210033493121435784813803237487124068212700248135164562014690045667665252392211239215205424101172590676614492245457648974501364692176682248564408375505996379696284027700899516261589342082587852489451322131639230394621873446039837817155262738012560365810819879222188646754560256152143280148169065151901879718444565869937143473034091315112231692535674102526109118174914462023590387620921616810234676606011933854695576562694823261463567897840211710435766066570934868994017634966035427180605514557349018842944159262523952632768375598478235535197468918214745804832782529160585562892871379159117488809356018131911087224000164699932609609342505023072507113750488146864639444823710145777310077035356979871532994876535927293076790023894682164699533887411098115175925354184911961529665454945546548337829677517696134735665221775909234947255249050601524948791762902121676336980121545984996846178669363360447785787603804591138645824319687590449343683517763016046845957519200330070784567273475821893112840112703994471915210258332836654244469496077066845300642959466554511754760646970527914976272890510023725753655935993207618031102528938090582102475237099149240466253970520238097312728451724283537819684064945026730831870180053604572024100964897142160899084446891815346504554193472267418107353071643329449482213576027904011872657698773659030674352752329785945533545535831888318215426665945639617031367286985485407960032740720746264573264721990868696470222712008297716210080891235708047562765121567906592344745637334991573854475156135595163250941312318697831090548311081502508826559355868536819446364089593074664150174576867145794053181597623848275552352827946003340274847003532756529770715072057700496250274691280708015639538448601483295975751252704620592156292575827974000839295899974449210467441340457518215494131850722024813815513581225694597554107065956443552302373187058298603621876849184218796867887434922924656731763911263430358891279940925984213039117469386325571212122482988830478920963213889415295952803594416117710155255440713740867452482859778952181672894077198049131440570524366590541787783334778106677030530976627358962948512087464966288815475431838610497909006054754752707062659310928700926138144190184184648650932629786965500538491597042771344466694019683716893923577284385307995422408731788324679435197587282117485488819715681008955599364383550017235605619890273585535704992325063509421150739106663805986025368045973486349225771687268914822289996752746163245126641002626422093800869999162344558019740199129065321101019729604386700765248003022567455365501174010570228096021902568489245311064495431009252928009912715863076373732449584525512066787841501965778717273013594707384909117076196292250099396065999352168017218335882826475353673127764277616810514048577046663265485644825839166955131686197293358629894142504914186394882674434076807237183142695796549836189093274047173902475204029596652152823265007770682703926412740294634897634285390534690911820428250333679302974861121970483978969001654077203700444739566528851252684803521582231357230358788253326640124921081968109801844082029931990707814939760640156717622808951426765460678752786590884374805443897071502100569026574005175166186563390121715035712708366511077662627027402969215151563399037439264162802277339018963372728774588409180035686577279989040182200335719797560082464541788583430567395051515114454098335671668032233368689833892194120541492634345161760352130872310084994742877717899725153508532425692528999888165547366554095196583968997791547973163239103172090362450280575651136500730158176452119800718209213037459700623118965006477800643217076027647094353614820768290973644581314185086257904109930910649411921448990557342162438174601344365243882041409035082813877513304454447000951653872701442735279313846030773110461313689282469252205734830024920403954453746301569083534365129554661058919339813039397281627501003862174445635511546521450543913641512628356375784215524169167557812400923151007667747803226722830321076630918857303180424300097570850904279994472842246676134973797560399251495003494707852751977787820270512582977081102079499762220995734843432052890827492468596735474904434355963217259652367189231426001127541216582097322974834873882149059559442995363001109951171491092165328969543870514788080399542052802813151026234487253764595354732463892076643558791113990281850152662811117775680006421006359871963794999736441945205866970799046472912898561297622549356584483296858305621626143286952381821532238332085912016183623361667976469985290129462301111887560462162946510133470395305215749683107898238952016203436497176582239369110198477929607657317765786843445997186624162461300598312187394978017747007985196076069469829454607064282688443984595242500010489486127969897503819466553863138407101785446354104721713642755988415534241792977015238188461742077333405471059546304019551039689180855593064217426894060098693276921592859046379503276340180217121501859810102912763055240798277729466914559375435694677715455930709162158977681577942939354668250536757932033171241329225827988199024559352689162158987897240186575171872522679298003656086057979046659154421821525228490304655744247537535000340806107335801125061631464935215599049371259757096047003731452056657661730186825073980963283955127750891446898740659415071699842115050864267979076848805494049950386641867123424080673722929860441934130133527832282500056397640029274676072512909049971661862243805919109492495730954295805056603523198405847444125448337768972868805640204707781826463626669683830215192348649540563314904816883707634637658436201565471654329686284656624908892738521222042823019182268912108452433223838999581206886591615963167207918990219057945408329437274220744088177213181850582938200700428514734261755043863931310471830229446151298080756309602023542274057340913592482194230113854330088331847108358450252116189549183383225290832144982444413073773985632925613757107472756815975974310811491224397415612345214256664238387092098387449850355231224799335250684331924490191382411263436000572087195244558895052732799331566126753212265358954619444907172468353118458434594052130764567368119104494631096228547498456748574036345591732963270701586282642348475014344560569094199517648023185968142466590024410685710421835656797681322077374911333807492485558984643472741017308843013252697750039561265498936797690242523998394546186647073167636581061714300999905852799298826491712506008667960447831785411160562054858813881972635261029981432858370531754215627314091077371241526044557599338553639384653948070943780602629052410403569256326018898047885412778988745039838265532098065123543581609068010023957784623429620224549123680827906607473827116093407707645728477481115583845352304490057319939521142212460149165435506587518426867106567081350505228265176753001374670008346913645845579254358736396268070742955540457454652295775932421718544076776677783329013821020789086105126624008100638828794151763461533944260041075951916772770412493474892208865098370822431643839957754929701506064724508550317215243657071381932694824483683447417075920088812558071159204991266392250173218029030706930743771580141157965936319987544591039004382825076183757218625396593432649017742353727631432990149765276437509348514510769568837502612935630175925480934395608707088894015817260165344157082768409331101960205296224897843118237784974178833018587435229231499599413678797511117092275928428336755802478551452236198137291748106871817050522664457964263030540145534271946628751506652970885713316650436013219438584419114008170298704630138235755632859271282748551684488778791723335345339927504291768440572123070954884855846186191256761624042429813780917630290010747566383842386355573494915119883791633809553448107971432577127233538286558734298422174636709574290602701813456732882830347358470904381663995741096844080024702869720035370986227221141162349173492722444745426278904759219785047361304938692486938301929335182425281476284272512381270831421987851304036437625722096127012788540068681598029658877756889156273803195149836043759806628443208097617378237488737413988224609450742693430422380838700342409520754371970701375874784024712538401790426879995503083692567083393716008129731374214524858330470162614438299582018085394139056395762362205132233391703888101777777964752345379675697834517058346453133365917802702528571330697429794941292949421764156629027023992839574240326276123845570029899793595311409684008970916605586810202586795264236581505832530400740878149705344820064011806292804700161107281768973046118508498646823467606974220531082970322229637217916440738934852949042902861625264253181156214487598420867745506095036424771114060358519434973879490049018906295966025927053261684318976274323173101155369675998746350372915081543094199062231276989042405678311692869695697176642670670873674152092473208290816023817412433877209903506574611452695356038740322299827379384132912068313887432772485728691513540574358532705399996152419704580286132958666944439594252893864141121011213036326444009929219937946113573685108609447866803273647709142086801785428305861130350773649880862982209873514553647560659133614454845758650091852355474595354763766946392379508603994811784267471579825982880699400809524576438837590292481425356326798683243031652550522698342179177129035040153440539582929124832464891954010016475335980926557150622321711376636189482044569321854439227415573062843459679301678779434069874120555169893113856202036381376441348759692777430898197384593863556648551094959465318757036665918634282119715369817372110340941729299538508657179948138401847838383329293984242048233898995371480724516585378387813386853988399232012261381851550511226821662056321759418047788200572830934576662585231004423234144312147629249028148766907553391573740788034057006649617326060611606357000091633864547987184946802039015580846554977037472429466986044191709954957770684686217271442518997238473113733611097343281475573755118428275422752576524356729024794428863133209264745040091403394062361351771281734682311242683834856796431865724654607229780436834751579656831930573439334610939224769443765960849607377102170129950862779594467302449497904501537268901620695521957098799387339353273422209696113711095551067081950583295145955282842205087700520075801405771356681034169304233619789463700007724879766606461459481209377471467724780918468150361535891656959125003046037423206046481349705792814281027697241102153101153274039038250492425014687803698114778267974243290919758454354417705454141490013402493926508820460593262618481006415788626174054531512401545843874284988727154223518874090013389782574948976677145206543791182863492706131053778932922290028521954907749235949056733838695284011884385797425136046375568816371947511743327849745552105857357867060195413569569884181860886908794243994017211452710903461313351081949724324180754070553231583718043107248645426487857770614681898553288788710689663910548044155245171981283831854762397759690879079148925545010445901909384053042065718105348847758216144028135617562729630283457498415111516187199460571224850902866449169631103998453267274056990798952693233387450950163476066304255148851730525196419805869411409899219882625239405952627796749619842342997596563039869567951571908536743764711600238348360898399656609851684519802589849327517760279459207799254183598080440044353958914901250572196221948636471386189334239526059629479366999048981256431515252364578005371142765744143749558214008630464117052953478689273877024626296948204610433479057025483283438435358901190288120127129283241238435522944922799133420201088363342228111810826845499886438587401350171859118608206902899922458899326973108984632669789261677168960470520824090607088654284347142484397376883051443742899292608783197597925615198913684920225629330785502715100599136469591941994132021125309947739618432301475717502385854719782642485635852818412172669895196146062864191697857356517541263889701494438486157813431701752426156429105560558048651929149362110708053744770127251560545434577832781779006677301945154510863880625291635361999096309573594777277810409231357350865433476356750213829313066207594762239817885884411047691364649021755431929185885682261325750982389798413211409292138014558893960736939523213616830373443886304582094813276613879114023577882812114055451334090517133786981419741827903131902482773611164549112831674462580858556856967822043709972765518948696560894697320729793643011667866782510435794141278995702493208478656824934813007797958857436863029421558369888840816836092297838202056211827548092766620869901894064468923225538118545967857684745622260176231135249716698464381835349769744640208959025801997964395924624403698502335724273919151695826876654415954079204324304179472707447273601861038153200892985544628791867172722520262386541893865421983364246710295487714303065023492662777675614717924270515698645054148129432432066438149625985739459665969009605056220758295276207258915954031614969125369878753830800340652866642108135756107799226257888299618942564943929284359692334691968926334347925590731948316611103399350666428224920444913296474223832210852565065690213289163111450478907986977843331129715259740570994258408673691139866090061012340928583618482117178816458018738835830740241243038677120467545608852297203966475703194909036972780351400147376931499494017068453250020159505493816088720464064661170581690061944704376042022502594718389862750853667391946608361475577251202128402366968229765108521854612192091947744253640994880339469046042448702745464630933190676373915483167410565585050716202396321453773103777482095784963897389298337040838145678530697119876002013519673651860510642529804665711537745365638521740077929730555165151780730164368935368624456387302025020951292155864544543316443457534548639292400553178171464654575657873882237012595156932377820803970264662625375202991356461954954175574024508614658300457377151601335154053908913687239383528223094579137259013671546221006360297405811535111655058108864898639552019685714961883393933430023699147485065844801065495609924589506204117283218899020740945141059911940802441949325155749658442086931439046060007121826501232608963075109847419798512552621985367190476361864947560567326462600138644783455422051437796802107663095282655359221944330051840996023290332370654437536841786338470385052802312408538048822910891489626959998578112133569829451552663208686796579331288675397937408253924685315335339572604164630352718682911318701361125331322836956030898803675227322829783143703609804954344423062822358842986623129114721249204354118712263532464231352080090462000252422175665571577802403876104156103934286028036891563748441825194906446910872118809583910418736525131108908170014839340160371723336753567421661796422514299194929134131278300895891677553967529053188929285277423868607346175660153810403013816459307366477882541091506429757459369612676021198281617522207465243690465001248745639124024017995615205175849699659897320918537943707851754541896223296632866356983420994149646330711626021643490580079779388791229912029902730498703344281487627231552444601882257467508192120777754170048322433779865580168862886504345843582516871094919024381768316580182587715793479325231335611373304421749501894161086085855479738750497687236820852711873655712954511370720113415534784620561094015082479047582526518984283973063068190198633918733192129792169281616924326737462982188782629942553346246816846122488550945392283715870600660486416432249872903407274987405294735561659978183898028683262409815393074799594634956223800536822548771903242976068123031252560069206547621820453660481772086960270433977863437038892000791025543769031679357929562470037695194988050265581854617492904064852454874221508378568603910732778260693736905952488677842597656080106053298680176263105681427097931616707289329770228436670429246377775092032934750073459363638658291960456189524812794053243287992149517448476046073669138336657072266635210855398359204411259482110083786715032271465400092873400271734358421361340606613958950043676817327968862974326806457565197905930860402004231509165384214113537384885303680114246819539400688231194147648597832319573736438296113670230735227657189752023030432293101610469914019291802328893340086020051503395535651314248326769510414064028313803985601241522432677865714042696546048361936904742540952059165053860836712756199316892528184546730328210602175479183337048505723466220055020466135498117432762913430394797985998410602888435134240518681046121992100639333724562712070663122291257178570207906993882727743526419837705827665094655486842145089326486320419218231083281546667798673057833119411345031182706332090601947867936695070787412406124332189918434318983693665053801032384529165483624779538479737741599742823926468219417224323702785344192019778835549173771467586261357080945231088878100111449792244910007256275735970738169206953617668396782599606966924319562313197529334036737251717936202728015728298640710771159117115752445115697024259024550453000884911697794761337492644227374506139955062648569576464698038431354891001313231026248093836214679167032854865437625670947606416366726555573505832874367325856486124443021711841284166399664291057303610229085017949892561680529989113677921481214713177060620490627256730976723277589323841340521936674396980049208432985633354029687692689529877831417582671646562834680050160131118416390709636818464263219888173469437679505127398297370844647387557818633503467810392017927310349231035990676319751222583393365149663644624016586733677478500920687343341718178635435890489236999952565520489160843651207773316421320543238338117773900687556028165952266070238902138252993356706157296154620356758400280926889293585164054462400898925705071291045722074476904108421249564018269027284790732995437428079248296914113505475153025176401438193509368145454738176187825636337838410993420061318390069656328258688780554838329650107025540729673393695739745271086038116574406338284802908706994305662812400701474128040615976092283977980279254234695780730080663585725180088718724136831621046305544524639096498499009062616536113272402932720161759367317422554760470258530294051012142170445465634190997777535391239928241581746184166790391801055134124070949586347693774604411081226099787073783007857211595450962124247283234467333303964079686760853279601489034452372897728046351615665461040436852692311486509396604182328084258786578182112640235890999845780621026265749765509352307173253867751461356028009574292213051876819551237007133855462865307184227875899250850199695889624563255626394168100900844749584818538337669277485533707146723609355582832991560267850253017771867572977619735978313722468316588844349515552849181353992379535067296076584999808579164927177636645094517804301500402520083066748597088998143994294807937394353478944832465475249159690098334349548370358189907337463530984262833312148304591174090085498895900831152775015208754459823173724850119186291795478241183082516427464538490574812383946858673029015541466175043747249580875809506630184515159549001800741462659363638869165541265905881287608287067239411195922734982747605250281221621579599679781555037268508164290820003234585337775139938996742850166766019618640901432897198317010804979644759068502340721849944229728853719245468057462981324858197160754363924099586785140527899467697194444696962909431027368889337432100459103900413225669702099113466905897861948637783299750511230550160704886913177772702954350094343710071531832181430389980402801582392790209501405709074176364527365505918722275334072238210069523777852435554963440537337366810100518337715076951910207725441939552653757689776416524537432333784184885387570237747669335011111478766209342534796273992473665322661858365529227075235481339892251060548170054446199689875895086231157398804388640157858506535976379742938240935330978534296873521933294860845312087199498123778616934512650311278064972668124451125418321620035527816476426535687814567730302778675999333342937832378370970577147685702034451909102028586430701576426637521864201009581711017493730260611190298165201440375945520629734478996404349736332526807934826731177522791906611741836282568338829714897369012751832555483243421687012435597582065575633966826375330715178327213470628498385620202091877553529000662085670725065293030272780965264909128798289330828492772339976003137139608142013707461817419988359690610927366773405736283799922529706358120489384208818213497086056860445738612601305223198858623720252233307358476441563442227404352792745639665755580589897254515885678277720598981885819079683978097014567548382328961301136880874489297498158925490342930879297899279142993110270940436458561757839983874302793467069629536196915762772191607309726178062964263493955903093874674842494949457881256261137631859717236953791878276207387185237136848473885426465680408975888848697737571792521523456075020151296235826876924994465698562419552144260697957746365433322334668803944139736471539633603372533202707672863259669792077146384590991540765044764232768826526119736100107895708966452098092484831683567251631070259314715015186444561411974426308540857749704218952596955189224955176172766786126385344425592332328678385549942724632937404961239984494529948245843245815011748596880789127522161847803064250281695959349376501308148296912090022471934192344730300398045537091978615959051694331399299742808683764950645762176660132868970992856892263217126174440585528830668999795345039306882974142640322826731611130440273795479716917924880040874837666955102853870204123533973226640680960181970585163857138905126734711784649764699479897082357486308069037092789243684941317870544853126883244405993325098906452358364661387717938036341684716378965597726402405740242325321141097796789188941002155312565508447128400767245695624757242074041114100347112428099808171626941202758228107841626649010852894896388621306712672782405855697346620496916095612912351863992927906094837401329821968618997835707430962070143232580422603747066123952030221338467049147566447692406478083065289499978439316145936877958437792554329022709963316164748452508988371144187977512421696034147283985974439172583862979030797549232563484211347430718486727648406488829607614019196849704675206080096799395393141115883923895513926831074412752872106676301276225917881449440084754775555812248878997704462959372829158988236582000080101839081095305273098620586080821446947535465071691962003023907898396692673969118042518984220538196540664663484903611327964888168018230608902323447285041755251959535703353754443949574831600164259564096336586004241355084817795640792166016357544615362799685777227748378378216058310601374282268438446759403986370281076901475998956666341185744545769642298187256378387133281291355391882809820360778451233293089187041854897023813641250709130991591921204364531905977576295977203861484924509863570231240977891309771415068014854661461772399531520348465356131039809910668573809435753623706864484534448458431974989616916162750406356756813468587735825768762000763267761613323978408231108403937512080209051026697368013425904731273010021016257694380986559924726828821212586809345291886935970447160501058628191893457435320299281660135757510739859863771489635603549176796718698339972298376575081731609062731943346388558354558754067515556551701252682274446616311761829280510786665827454384371872828288667670988533857152537024906850019034827102133870788409951323767662740431595145600793296824372422453834725962917078166633046905602431438238146086568729574018416743782766055454602716009839198800847343907886678225692658122216234087000114593319598810112175103037025434718384538837248456311052430314321454578281296110728172411776876946666272407369291382492718704113328254396595459874734138100799804846406850686643019238057955402530752842985581672455797482734393857080157215925840094259258047117243771372843040323975662712733142377035028620917317002148314434583405942573280906399996325415449181089861053155627173329232367877405215537659303988391491798141321666204545887638925047240713181274554928137896283745442774099417197688061757127084323643788721632915002564913316501599220741613067006217032283813448664222681374010996891298281630939277372705350700713752244612411078841556186358245394177781387261598936393556359427778470060672736096623154636017024448488266189669801080305181976595350166978770486223423060882796378001325904376199918655611255821615702860792246973008527601340701693435550953371653624567665237733520906709768384224721135029102887022962311018856909725555220623245894841443814566267795027446372438388282409625544333051023467549518028806760242335106007836358214462441976163845451402685796324329906282559656151172859014567474317534526987599075378846448350603621147798632916694743734507316233957997046602782701884427526981403413433854822401916833982456566353291290076210624080472878578923072246359147072629111219725683327710987182086628397801924570452540521622586174219227181345478314808089444978361315269263905130255158964863239817037892312781371010107096175971153385480706785704891759244481519839268912126111608289066851312666462127238984067496071939250037240178529064145666118137301055063793543360425244412287839149630778449535258320821304093742493706404397875664599877356439715425707468216341157056270008477549797545404509120516375113745917894674079982152893867715043636856783753807228039464254532933306779378273216634080583557399923083728715771928440660915258123456707810887170758426628233554331229342201823820876482435036551287814569564790892543616614849365239147225735856971637738984676198962048573985606530305074188683078730510116774464598629808630870869504062752200030901503329971567200648509305347980539387059428314340620064262889440012702890528298037319384980925831099455550108651352371120521620016107075622352998670884426850040098216587768480207289733152257904932953667578514653761360215199439379225399794842800903046307007955186974296520583394054640283426103138050404660941652898367644719627703374638621622407372287587953618211156942223147824308116693093077536035264257486590177224416408735113930594213691087140080951320156136495675313085496143660019626591321291334037448033225454371490988061445010475687128057116233700143864291009151112555950971083370347238267119807803332513804252764174986885712884816142983077277015893696007677158366661064485174259430007442723024602750374004855038550102839604147931349345694842842793238033564597600720626276722029538294618228935531573333217708177538093854804021498737466460583457282760274848725153271354440726882432986880832752607705780809208186784976782949769618997455446179989586347530227698569487962264986253750867657734975671831811726004751806105549827317748449669956898696912651567112840765013166250526870870436821868841744559626005442819215828596691162463797195115292521037057175133990263348030482979988303512160423400402500830901046163782390004366901293173121365003829669604806664516056214919094726483262492603881870221188414623054476351291829782538126378986625380417888402936012440768587986515078279170294532259556868146214848467626301152185388175728849292903327116807976633486754824969065108234592584432491662170683747990778205757068843307859991988393498725194255754227354990421468909766729048158997021073764507086531086569973486831159644415512481372642939677734612666880120205622814841123893663280567550036616414944360218746412729117584192000433046051440729672174948819078877001568783931012079917933421954540034864656817023694882750818867932401565735042179861386427668363467189623354276659897225067431266353950009771190956743203280673033002303257165007716324154535412286741232831011477694662987911402055266568338526906906458098256123347328048123821245591261348743962643771658806219757492090633707063974532079354736065224456886341088233361765304407469309463508454021713637465010231409854481987638459108580129908096972705904852176807806016183915860250100838675433147919313618344618900443575792530010876425731545352029002008250660431115760878336664001636624330090433378273086399698472072414908411178744258186749444956289414474165981972801536073133921514525640629997956059047130774184694383984478633699292117439435906735472791152157717392215972744159357505901334016996052670646354227920782137292948482458864138944180482825478813658005815063418019631847688305052605993369636350645728473367364207355172743208769825620917326851182153895613075745609563580707409083706339063323775571204229133768662006260348289103774345640339002279416994980702476708358680496888136717766968873779925035881244031303125024951397979184789212502196534800595917662681466133570695975810446930309052833134231103929816394663001164807360356589885895900042977980519353203422924670105844373235752426151642304847678827638577710770187669199316393273614408697650551618883861445567608965038195763957876853562743646777218261118985239892528433326265390323903565493257394890780585654777669008880353525518708079078394162869025062722509861628456085208624560449254900554027064548666362377998749168805948768155476512641835708384067791129880357205870009840980183965097999286268298833892384362655757188415090584205690515686374304873128059690843796605408456606142194887345152206850309534212297719848456503269511371660003016009332689556831683852957864665477937549119068868028599896338528758040507663207742911853050160789412599056976502734743223981104202287264203773191638016828541980649755555795927513913278665181167282094361516367249169313320963131263787494175942555959543012948556120618603764894031340848758272198544627667757039927853256179882658555508517027054969738968853245975056477440505934077788813178262813955414390495230359951649793167569081611633941777414800136096004777306038729706470947284587808793739397045910035713046383718556040423948412917282764578981297969488017501241255652280915807895552906437940384058508764767856720309722562400945051122235674133815262847610067462721161281972889163135465332520387746180762043153646563859856459813388750823765778361362632062431181009666994768860785987205543585956963160143079659507575622625230954413346540206356599980727256141439552022563145411470244298583075178575416024377885813579524902277178535415373051288010017885606253286789741540597344796199209486702924970757423934513987050186789422271069292872682244531289791356804923154091890938742539495232921128549738409735959991801277270867155536867316341675021952418850318201797261799541664825277937357300401746806552512103483462629206016970275802586127419760504189877059773924433266520419068463838413807639803950166143526626648280217562903680664323016548983886984011476697189150017484442386328428108781508413666462086508726869701782848423056999103126806581097057830963494528727704580802713747196225005194645123677446017933458309407395605994025884553806608654983617189615785015986940494505518888975101513037137942927542596172689455923817025921011518866275997884248566708034563652080448481216167698573485281070515113914597357431223330915981530503753589156361220341845618824975637806958550719398754635430894058761713145355899006662973531334587070774786890465960115678787600212040109856784431476036273675481252177320015783124803466125374359790143547593385885721687701362974040277851407502565296433125032143891564697537433767541897840081270081781775235219712759410282136151649012003628609180422989182123202170621610942740661823829138083957638659693703400213744754660784483973193584637562353583120476096128961893228795794122679004824578507261025989189949853055685485872037250817768710855334488142187565853655013547879297415973793250354973640636871272164207424947043535942427105557559713937776524453773612843293674530173434629073758859426936192960353559394707063014767860513611418226335958214737169045691521816689366349325516173940577212818501419837529303262281510290975832852881897056061269796451884794774779581226083981027278353909475334849618176116710779708328854383204196309198831490021096060713504546286452018736251775397609909338146608446489070491269518216974917871886831847353040416800697069233132599456777072481295767167655217705444744051206080226333951108098980633928069811964563807211308488095043395154885962028444624654743663282400858707957929790156713764045079466923678282901680303835252631066146304184790518441676263880486828127045834092944446080650969592006627455230364745522540184206168874387221493726532363598586743926870734509158078529042607339240459344709205871235231372038130932222602339520518192400616116594869597325830972546169324559307568696071495018826302922486381741778924492769997612674749920891380676616865110451796101983894070070583824591687642247167558530343983947478279233278272412155856416108634365724756856736931332103705778507606371810600354959534791587842730206616510125955539895648344889142016029911561032455888338607540927351382363150390826858859452571130830286419072916105006314170464098837197055693252583921812355339911811847769686657922872170399270381526528213651365504611974856260997626150446484144754871924354772439647545615493972646915859929978241528609103259975387060522167726210640838807252440558012128057367966114120837989402320928193260280928712753933421002712217326044453383789428089894007608873783629293714926509990586209395466369545550326650295197671073900946416025184786346199326413644009833353948115143810702776524743200067790079114525891293401631038887199952811052430580130080153421845506785628259544311550704466763357314900689396890326703412370982321544220608788058396195703925991677592604243998271984674954463083146332751639172237841163793230720879887788785965862660795630109388822928403336240518590554260512561717093054249432734855245095757387041913462234738613939012245955841744427996241009703488716649794873801108211354015397794140138675639549193030784634849331662366830055616322458768800577515959516273686939330189190459052075799110725649217011110704270394539273887529815520682382635124769690674765692513453992795638514764055277443151856660417346778320770381144397149509092417355067007996503575560378349791701015897013495159920715191082306023214977950958506398660156153716179046425769815743003787871858098806623480320282959851948327014717751905970975306146604846647677604861310514620824826970683587555363385951513511097782194728053732487360329972040095312855959342544639432657714703346504302273793639065407068599000430100986724752065167396110368006619732856634144445113050965670209130830653958768607898703659386966863237865891200574268570726904242008132386119141403108264252207098585187971889256833416431531364257829368566268864279222642725596160348393315807456139837063271192345839851634978498377804967993816418168372569466383336703643663642957933670630230481547120321054721853904161309120263198433655366153596171008538951028700645871323484931874687074333865401269321385585301596822822105212147851239194510502882761970055028581441918056991593004961204530968883083087185196134012832267637737065789850370043613442961376173069583372365620649135042417888796916142478265787884642112639073351267751536178780945802515823611902943608930120413298015796349137452520099972758167911326694829627183734587498512248957950628579865508768024114241279687261638640087275282318793362428472004110631997758096770918347342260388214976410338388125118068981757490108879009697709906158511445512946689247265302404878070954626375365830513898933654281173151285482482991855058175300439110171915079089979817898729020920219260995849437000956042590711508846908050078750030314643914700487699078320818345285661481362771705798068186305526284808984648837100292340786791113488322881959236183208329171127359432547957891512846760486898816552398536658743965802343229092878981956907434180909254854175981662073529242577006282327432151050985776140190342041374894894924742788929985301014041990015845907251193856354137971284741112551613725364758123828923742681618939284699343575003321937440790389584772740958895181898655711546215560565328022887977309595403788128271270374328790840811447961213136907958174546283228606388221841397331219233351079653003488595824514870115734668738662858634296882247530940054521844098521891833572199249409750038745397413723472037204898871517273025310464669741396944347875422334558440720224104217100711792144835373300705572733171945195272202497759293467024195646420025435834297992755358709475429030628685224323905540766375594900222160703062526864908267186015594301925713473429243462457715823593762212148376479267912237428342184307615455759752118694601543561768611712596966112049848832645487433654854227968786200343016880172499439104760584328602608988599263829840671781009981692999444127972047196384421983794420205150293665747751727500279659421090753451124177940071646537091913450517939009013776050555897903790961803751000152433504577841253147418208935869771832375448981163562092608980410969252023360663602411184644463665276148549902869172356254030184348516357096019344227122478745719146589185728714160563407139593335019020670513894150653042933408410644857908081227503836846603659397302491046717251626024855846723204058209829117173189477155492088566877826947296268793646641564681359720638665400066715898826224266924432348042035353892974339484998101915247639778409367866860805197446258919175845370048973139787323730417233766238477124657411822532561504913942980677602137150098609603936678362349155526708756925223369261740694483512669293192075440614627114797226824137994553962610438402392340771517019379513720148284163764673194185651177802371146696725889140047339403431884421545649740487932231409780217323858342249406858600124417411378699845634321272556604156039278760552285770216174210857895028208536018530138543954806946683231446655636214177267686756249619253231380122810260860191054773922266116524103757613827180606900832989869094072704199367967715432491991283770130428652519735459473473061118050681136915815935882951324471030660538419607873413006060532993435246592661276811314569210813929997513021456719802638785694599300688059712330265271017442559943651932775789989951856996993636961290300357341538315611208891817482459279005996675756972896619107704767217058478435789138986937909762005413034479773492017994703815067675218359513583076194878091888529406010924780285816532967858693751796678100557324735471769981070353209574926208082034935652244785209602635502320246133827389517898907936808533799526323139221968262333250249318674310962072267462282857479889599167875955869081301482023156789466625334711339766656565498043182043144277768293243787021870974534823965663594970996253319960121389986576421825144302474312400072957930576210406131145026907204878656239299601516050880871846240383130101311103921137460561133232453276316672071416818886989143935951801456839568742257956308371922202429509150863493805901541495460329096148970201558007107945890870154248018256095657037776160247042900586984546060104894565914116976168038343253453256958550623974724600821610134559368219465827059523622660124552721931865102003486520606712904807933963891635588147067354040074994276474235376466966167328351285364228502299563790974168107672137939212146135550615318211363408773766659155684249643029576281409865777002846007948690558691991029609405805935791525002911526675416486359906916419496573328380685114252902413031375910163174354703320717831115143847284471826804929445928325768433200412967203035352556042970297874567305556299944825135131077082290058852669098764440862535713348310511498306828199848839241290554688232143598951936392620396922386606213189731644348563232695055418201981125010943433175274654096670301158496248103142589584319625629233306464898408154771957102008843299954835340041823730106773572428158622183750110612669431432152628648809455438325082793811361442202179804565020186635497980010380440581201420813644388721425019099935429037769655374942841442167025217521605014376543331551476913209695377540833611092147636661251954105955207501422014859124972742978492599438756818259086974867994419435723063897950911382993569969225890091980364419978319442768430792983997806518709502519383094151539387145477337576076416363837077063035885465505320029560643962964934978331461030681518571073301534830034580884020297402497972096131231981656654771580870340065449408031725921176566529874135197759208465409232632308265641622912771906054902578880460167113060128024058368533684320896612784658840070135921055780511105579796115933623746976776697223018281365038601479166400853780476548203787848976862148274555924932218808476684811917140946093015464821085538295488247990825577935748387025898945447253892293299658717629209164623814663501952723897819311197240382429346083501647634677939397700583841531512966550016350268521684657361118198771121948247506763130388281245128623641427904410794183100364831014960075134113327772827550133606051910796224134258193679393499761717841559156800910182750829043045821917470604025845275139909574719435716918130052958523866552075566453181007957772371359106188360984865862402654594485465002677284559460939316153724827368469558439021704825251407008332919454033701064843745944404055840048334791138220239320165358221410641646965035835626911764953814559381048793694805109938124319713935892570621826897493635823256633967905995885016418496838721283407993970540963249229078832087487750623184310094652103264372731733212820489742065755807800071472905570989242325138903442400469826707056245552056694298940224387743906314269052392990641109897329925370084827434318919154707741813039461509798130415212474207227969492170843082748205981585772199764053681556676855486713294539936967749693720830053635213521555682709794361579159008801587954246874117181532224481838233657055337185433713811928168142807554469591086518183665318480295165803565296253489055021885385685967292677672110987908127145092818723054812663974152294195368238609884184345090830220612604020249299901260688847622566670877011429710643433277874353195536261847974447042863367052735325675628085371933687158672821555512820461251916418997466182762060506924258697994651486558969172102220727533512283813758066449114584985689380264453522285949457514386344213928586933662967410899368729653051206593464731772429439891414726440941040724158734473054433119292451149490247298194690272621273208531415032072779822147584427766880498029033892056903420989501563735904115128940910664903465405643620267222535369822186724666009025858233740963474372634997198620774815619798642537032594753678004542005291667802879237822955281925305807083117207395543659988134359601437043849369344354797731086499089309607398657552046079818519452756412630968548053106889171512748230082790211154029590954525237687406245931380879778646221119058778853034523866557646117218692078637935310231524378156611942912546542762322328785896866980418502846300447277003532877072110112184965657194551762939375158804559082595146463443992369006417857026304027220647558713985361168579714953779602968132955479042958157714154185178805138487662265026611014746435739811873176843463491115662109922532719104642628373536724730448776391269678449001711055429947717556338037998273361294778364773000964553262518880168927921811835230606266089484067429566333199165255487891614843898926297340364570645189358379370858281419142189915400185474679260556724342252930416659521021177288096124113607810635838048824936802999916140216766129962647182354452406157413413144810906207771165164636734042782313726738245897347700864912647567831437704613972562368277199654974637982637332422608961871682185560841732555675656195839355742637277941750548714387241283432532908628490541555760878370582928927047281985213518618604083211227017894808677112147508503844742242519050200093427681740821707900196724720653981890386218948468768534111918737070317741911171032617672075315710364010516244553666387523384160802958878283621164025774496446949694162756998022635918334396004488145228421663132302767324421272839708813896172622034730671778869061996583397175418077718479235744997526927736936100308719569781975821983046687016481300744414633561415246028110343418352602311237972698814465916267935520286335509797578683334570620030206694050126129168738465092099972413931968318623721109095672723614784865375270074845762537956493036792027378888542022422437294949974993616562724928893080085672801249202301629131556111790695175626937098032276670945963420846330309045168836874698266523956023815211418850306750880840270889420773837351827460614322193281390411994622202689468223092018580720889689933968006582750706744090604533851364440217526326365488869019680036040505812643361819331878182066531329845461710114163893743283877913485201684994892660297689539701758001151156350539833037890287959361947323341552172051590178045178449615329377832962438641970512534702825572161760216496979406958554840594390137324150289157442584402243281170665621704500434575368383938897981848933093652837309966079923081138969754810567860536105367790114036707506423850794387403401867886311758447157315270398313691404551930797249298816251350930930903217596414400784849445546062873392005013956287865441768746982851447205267355019055557685313686265516790622504483288332525490393724662494673813059239209765444287227704559471980893051671023157673287921800669009428180460754101526128681594488518850463189907292930741744379991298649195706046842550382663567034986260893306041373253187527621102935010120298583231780613144004158053934908120620549827976384183516222188299608460159454620326584602617907272513026900677411790798957237636638516394308141897159115347648883789233696661592579198317707162934340860253215452235224051307017490579460710399424583208225072818826963105804742256589463161499635098670406222587651120868645910267559139133698987765236434599780927185619517869125993864995988280494175250670130016099660411335144818518102970474355078366170301689030341728910816489711942752423061515510667394273055022111488311902440970719403563987264443901361853388101494160254497410186377324250851241355771643060279135683268427178167542600538925618228271605652788219031814778378224068988745067319374839769358818687283584242005585270824293838435251787519939692013752571092360184629079640097068767346160019493289807983328892246148024908552379806239182701742072657986828062360570365716109031681607849492174914664885232763101653989678516746518732453686888296649326546011125937842640251251787704270588128453765467046754444160586894205239125913072164270219858368318393021998320822195625973262458606507845625248751820790782550714522148181656732648748773346779072366759002388785762741415525957576132939556846605578990953886977147440023429357672017745803396011990841677825295782954730024941765738242781331884673365887725967254338283242664878121224652115242127287053375907571207275958923586212782597558786788457617673445396116410910596746547206433869305781996674380938593599867979684471988705858779225953474122348245368095244594191575018944990284590132965905458721209519768267942948350202574878487850492653945049430883742785021591543711508012697587424010116225981442911158365551212724432415354277401070489353950242191332713753952335827421000270710090711170971807065886542841749603334983797059922596493438209908911096383492853068163782261823391462480348595383502127632506062090535100522556430228232612825585366567059864308449945982831718870646124498387032414654057265579369443622831423824475572266837530437654163935081625617632932402068308243397212765662246676472997455632352727837241578977699090413101286283247960653251979876001749232405032691633392251115100763644207939781695937696039612460483829150205973583357080613220354074199564896071809359191937070770883338131701794604444870503693196709375567819169934695959368256421165631194971090047960452381666058931085099889386557784418316586828866675009216086836283446481253227181133700500646638037645755979867807429308072778393393722038130592411731927290343729247672956724457860884411697016790498024894497964265534031391229139662465194591474951092211500532153487797947723030434984040990463642726137343970116967405752129767036024393009531040326850650403965210432266380135589018331295837499131229714346725157831266289983631607110084696361528721131446323839549842055550132224607946087011514275332327605241443553994764541352890251301450442113805661531414297479597727786525123243137290544754326620460345066204104873986565538568897713900764833030066876747451924108384763971342330538466141092012832483571406797663316583102952882243526227027862180396546694531538862254796773726282760008188211744880838934455357285972068109670214692690685618201845773685531632530199904754288521792817054646291558949932637329556185247844755651484397543733561629389750450589838823805530034766997100557393213638223455101227300732062941711188775632292584047525503987157359674974700155176687115594720146212307851435370734367060775394434661289683190124601573901166516140789274160067612777465508487738043084320271433956420830343751691317898953022983994786685410060604484443128581682545306216050070874661308676506910446350127678310192040918057164046922789943518645126553286331283609814299273328253349989734449443914411550671877339879689119421043111610353835906187783599424816966332143948497312948824328371974155948139470313257121176707655709923773961291616246013419497791605686335775498196909357684127552085517998699710057857146058748683809618106714021184248949716038418788578052683554440036809845403642734032283828372648913373408408475105916432080607889564238823911730745273731677129270019869580675614221666314446753820601296738818604897380074662095893831351480226220040396445801578874874411813087758495687750203013460513871137187245898401284687748710723579205634939905294670271544768984832954601927880584224762338100601428766188956289808298002710184337240409050567248728407412276714796567295820868274545370756493462466566032271418999994073750912781047372662189768238581370258285677679202119192349577939599191504714508198182272449957955813079907463590458129068601983429992017846664159742149859437935437216371032806363619892735590312670467511769704794427106944022729234294164606666082138947234616311595346912974435985943446828094441495334185472907810555587746909916270087126644118179221594686431005101783028647323901554237883853536746474960830638227854438437315497283030578747889249280334142472671286558879299184684009026107690565468830649225005338340271636665789273699610818034103617329585251151464635524775641268178119067694936704245251459408310131287375874484775880896442729195918736722803040617062762868778343058743796673553735703006640406385331586205636816530739901753934044856036075824841279526898407148408549295046692529933308177257328586025686750555862432110659318947806921158044058608491723448282895722594725836031150892350520161809582330000990594066178157695988499905777632268272513543563227129521508058580600364394400282948340017172731337216538281224820269257576195479988671977535603884077230015685934195684132819960373386950807738239503452759281174504232427294003397291306775459120289539747416882456727990722487975585652404598859704700723587988208723669035090732380063166467971488423096098940147404602044269798544787325440458363321852959956258123234656649452273075029646106003520681381899086821887022865240789971508966921072620227229460508063695055480515331655516509702021622499667379275687834840171404751884635196769611432596330133054239753623296224045043774759722917354729516385188779687443050697870688300167058903766245774453484744619043609384119501523461338317028889644947057947207458964009629175433523318744072037397211619747623522244069963501906452520201177580753833843702105344575252528755669137381068534481646612610375530357413801239041766626322318520684340558046407697666711903861048290350287114104853468443118638665140925639256668684564309367234473118687792606828585790793561624068767067442835400282276481379935023839672559313244670624448025753254727783005572699925878753486927062503259802557628355090564374888349879454817187897249823184089965638223238634778149069696160824543920813717403798572726131448293834599655972491563670185155341694491535742619907436715047060629703828934220259950054611200864550109602007211360476813834266114019290266021743780159517488916827155860927119067807548476842236185861487699144286709426496592442839757611224304125823368241415142877941555187068476426875935824564672129585623296769144295033209735414458729698421599097860943625794938412785103738571944853878999657029241099411547431092914473649111587421724183969034305160467261194517290725534383337960931811100886289539682203974292386910180763322409065046329951630601373614721590548579819130442600132117919415246141611614069547877765856321164312363529804536859066310048729884655740091836731932635603770402486207760816117898202637179110832048978709571872465498996530054487825949525551750683323777647612704850812123109888516540586635303450301395670674886747289743620436882781020382784380224944952854046409594177389813975368675938253524940437500872633467537137220559172689013998555902233271931795569719928758973454472175814147128793160080380254701948430847112674954366139320296614713391493269245566264571359847441499786652150556028228048625110268196189565366128566958248476261349248429462160864617499239098844282292050851656975097769759598304194854273767344856796396313728189791412251938786934090330778904763343280113975149036627571903737142915911549779278188806761197891565123585532691383753925773536916978661870016348028501643472664072193427035164205564552032555785874727830762550914571772106321931053002960878034844908631275975314503521045649460547056596370353231991534085517815677848075676184659420025258855382337638009112755264890569023617915246225244930964003983786778220956342366033678193460838789967691376300640131387022493597586905027036904642901366966100390210822675662659626294220656606844107784190361250251682284111327161949059243456382315183445931157424101888487264512648950464912855419136696265598134834486023554543470040654096600407924376691952310877117424262787928821209898602649420704484521248475328473050112651619564172716064371886442514831355067942926099889120503074895900429251571700788230328406945040860383541456229940771512830705202012376213960732262709066626719876333733845425459697650981070859769856707003118159812121515460879143556159240254844570600879917120419052653305145488143191356323758368425657986391799221784557017105719052346755327877366233169602803291453813907157855705133866561259052543973747436382997270546511711437308930363026549687201716376137254887909790768889913282889863249665534393465490399984763765479279881743474030282178282646785715388363761560485584493519634128361797054149697501190446018892077043685613234672650439182648638984265658879023163480864377901368732759848548632469388116627338916004670543551605503831888811850664802773956062938685499664318810853224609572254018734577171499885625909688837970728568674309704625694029822869952985203315131200897551844382997243546170441278582735004210143396532793387075259548512031959465578641938120956740524020191433219928323640453074910891382517831310231316898282946308185554615057679486758057741133566139458773892237689402387320637645954488541701826629789727658957996336616804846928464808126736278753085868679056345952398309828027992962014052100881224287360332226007547666021895704337596657704528701987315151911406513439571678044626024648854725005442868640629602151321127281187530941515976373024248144487585999166086298418498520304969862616851841835337446805248326244225298595394951380497005793664297261959868746839614983313610343336090676002311573382129032867566966250521519368263072845083081620228826015180285594990708198083665155030899807675982801474106006158776510809970641158488791302987076250219581358836178201131411488205792823576291813910340541056550703265176386643567352957329740040575202054908883479716447547954485947263704669196328016807034884456568232049309422290825985391211951937703245930040789154632603121745655284986428546288742317951905731357245844830170854811571281829959146814495685067911805755430013814571169564623394174259308940541563481453777312264200836785610472628840689146351370768957908326708880249643500465077986152943190113204964227733870047821838559794001085998528933574718828438796391509951742180451790819691866514379905725409615412664968057378480655114912681788388905961931566365515128080965400992660662882033790743639635517794611699364194160334487122497072695355139281498656163689974516047555688253464690705329926104576723568699312763078509032953858617735303192990350582139465159924690855706451768588581713397556429777823754088551107131171617043537928313025682662531219814053430133217910041677451385753470753083858035270604919876464547696835352901781224950563917328661511255053582995647921717759039283286195780879310626575592082553887203409599851008494835901898893793478434045082826621305887366349359492708218594274145402931523574352787640199782824397630138409900749053386051751748414036794553117432417193282171459699302499051584232260520253087262658254335881076238790969373512802120497714104563905182905301544594269287585988178576568173196787465183737467274448939910970850092340591515199115500263897423673246186985755017223654751791375043420464951820379183296235129815186243845319321627754501862356301192097330274882405115662372401966376572518067171133375957991747674801005659369012483888405465084314057491077151833980006549208361437151444537394469559722996509179104668623624960855839089558481497590723471556465702608047740449436913235843242745588295611077241478055238914025832735719252580574369891161897041199198124440028092425006305601526614792856484312146586803407476385311753179146134915252640225490509747990575646544214214594379126723010077176491001299638525743178340657613819942669490284452430287312303657716312664473273831015862687532011918914016041658470789724016576913851782727484263548218108801337357883551458081366023273584498961291991721925197551589098195786921723797283531202584029491813934785797306746813584896360078126372128270760929033156609415835849384788686457031205074517079032141621546199060424721042468852920980473502370464099384488640415930430511037031266829164940721077246396959712450393738958934521834181843411232180872168150918985360241496451854501047365461842015058293682850312157634083381732849221184235356927924358235852835912515910720204753377033656900069246679390411545789005411622367387101240845796236414879400090767657733941465536602325481490054289195013430457692651759398883755616171956934024803221317547449092611409678156174452285336504859944458914622444661622533686593486513946975692818614849212336846714366788182212671665338211607232703453350687724118028522304326652960610576825574962412265252901498893541186434907090339973317411167418848455806844656739667554715290027467965816585837289711521407318707213290837119506358108256807194072628078746371955623517540803102714032613856046195470054275976555757319088820867284407710437955872545078076258511142689137682184741766150381597366486714076340145443485939406314676903842137470505270237818181281443177586979723685857336259992401052315837830133748877993641766207492496799012144883241285790395461715111132704156761692350203468834839292619679458673619760904826845588860184148782145343176432561538959237962768219985066583052499382070713821000507218519101247232571117926708741026492601066442209735247986154701280784580066239641749585887841001784518231671102297558712364550806190271228071694551499537304136945435813889504456920360957600019455504020212989700402852905714021989176822921580808373459972462887827960420135001043628297109810134170127738099121539806825094941665470531652284273345439908138160891576076435804066721984850220184254870900835929052431811649458241436961200874828195206619589141285669363699956966632648607550427111087337735710627586863645698342019494818289739084902652418037381686846312305550401276957727863470057893344955375915125658165606627307897384694985940944858820690727663837382538635446623419993439894712015484195329055441884700008445580773995674458473963218090592278873940151633102038838563333032160035677181434579828999578247996182593939119000305103241084510291968101204179421669352486947374794001973674580330953301259910861142776006621007887537955190978876763015624984303876242717957578545593369516752131837845012975225262556153287532892244840816104751164670619809059334512823880720834331987265824321607001316845206783816080386113736578169430977456392814434620700137048799465021097955825936855303840760686051625770373312397486755782079962998182676659917344172976055983835276447099411961440960311600973384402852514829732608750666208802779782419541295586066071643529759200694312713159889665522241418487665749973441357747882123891337606668668719374276967029527952451745312976066943849109282462400691632773785000582451586239478453673671434330684218254617845922097703034566043295698380876871450584093431050962855289481371398922036022576949528319631485434428768675913454482309151543804940614260732212539851566418922997282447478783157009290395197356031574846552251804221428505010808602402620405956223204372859068320065823417550166143071264395016648507964946716996184785083598132361230095270999254026951676707128966227087065655604321020899435194474149584068686256118117601415975721236618645827180193698632998285586664953006731787107526224581689444956705179952264156525056447428833213824755467597189323188844240945355716888017469294259577572245756229098288339099228189400500318068654612361593208338626752135130407249722159701151045162801716791981895822014194430470833922098914062299917985794767904262265744408126198255488418511563930858539200740373593421082665772525574490245186480391060090083711976965137953771315982140860284458934618955313206897209839972011484031635540547896308602670260669850044148594653622902374420715587570881056920486162654805621867692460138261257695276108875198206285627532429442503482627181158971881914325302279676990549602511023791409736298391756686600119189111942846520847907088138157446335593657787975932139909598415090290276012511424349693705789708978296237629248148924846303730073453743979734546967313798954923592756107343968315006567769101760358736021915854968581282841103179539331295444243826075762178001336926446271604295783166594038554189639748615412062901746215188227689395452137797259301281306465518515796065220315514181347524466990061570587589012908793628666774202107100567343476276344174910456153046421618393334417725664895140215290245055843783843695496693984567029812636474906051140680689117905228857436967944253878020872774179427049514588432990188825837245590348097458487158853236377533729955666455844809779908659353993909579963675665184045889510626688734471171127472366955389921301806159208371151843974034909567858122380962530816766556404789426925601636341169218660897167038084578845549559832617587622939535448881004341730156801036098906540404949898645953382301347747150598834717607601404367012503406355488882635323338015991010297801599054183235465760301238217728255218752326130881461588261827548086360304989323502678489717977253209845917664551558929484438958800198504531383512241342228181664391015771444984424303933285405361690035051281266514308090705884347183867725848673308559463323042325549442372865999357721042926823388322535921884040794610480858771759650818512324475077724975371824891721779846330614410234340252714158948280815513398744530461702675089341846152390327371378993256348545213958708807179543820971726847680229197357582821095458243343824997020558029890047055852744626813461615629731065226300961365066452801915575760951433272748156425681261552976503779451252267454399927714550941581086044194017596000251318006154541650559079987205215366986797879114275976926723479945355162782322801661499585142982281366724819795654371865341822563455346511416395478175934236071051000776421493497603946515737136585108215313595334719514885810029290058748670226306497080206380647263796741716685970947817177449546433429617108605812725384546152945310652800707163712674121927719073112071905991495442453486159908364288135191300475387926546516768471876617277354753468677715524144592335295075362228124838254092925250815722762851326999125076081643654730119058169699150806413695010508388152068980559813815819956448858561425585600231034016104929003076369903576019721171424474200191655727636809684571101006640905152675085557321118411331138063827185264623559928817084697625359184200279547564065329946461910721108859909281376604579131210980037991157725946374386347153444034120927030374306641278275742441597838173383294361564025333616948328660906515547895373867063654697135525011450854779046168865850663624749535388105400127022087756079102747962383266525410791715013704186463031466621524398957112666472698489726834005462883684396039464369467505127120635204928283383378096949473935766689499858116118003366505904601089118164565802844676686981205676424793401565711785571814812893973996190197138052633748864047986305352665861926561346897377234179152876793528994528541557748003227960864899769474825743801279723744059034317509564714150562372601432812788935271311010499932802663118931247636743201353221903634177074563982357745691924677514823803052418099586827646121009649237270363438049752648188654338660827053649847390614051215073670891495708640967664584739515826557551798455749448976075254635022873771625730864291506622606538410078874954645624893206044289509648634909995877818202993864489098968208419272747899233673458021295964462807925805772721763034423136667899018270247225750732567818751139791024733347901136121973330909983795875686340061446191699339685171975943473747258355054988197106481790012760670558239126995740058856386460331684719147274118478227945646860718071617219931246670967149591996538439925674307648817863541923348097122349876318728502695295788713612380207176085623193231952398886637208647357195361794176816286818184464090340603923924226429082892585413212268038603403111054431492086098665056745488916459107721741825503127880892736179881111530048458429783346248609168861844000321066872648872583625597662543124442694976236128454495569974439021020980729843458736008984683481205666553861938044224258115775458536608415377120349505014204481768339075545365767107057427308322911739581865670979278170295307960342058137877105676120931244701056965508485909269831906828870273664945889870957967410740798949491007033314763313636475863701186924302921553496208294760056221699550251475320437053418630580968309977754019341042019019755656847886662258550716303306997591539567962338521963678992413623613487683354296765430918547991453802297830940631516224150785091818186979089572800041188136678438754728361064519048435272624739895931549492964079211180658300337756413338557685999757578976336608955363721149222372406948969641991688844273182168688936303551848847288787841704253841472296468865917333263366851969578121544751461903592941238654582874028566230963771659395339860804130804061232520711277433529663404561992329219378199779938094388677292963011202810756093905003870122779943870950268222651058516715863816882797903065115348056773971971022391151155023407275408020902365271447672852898980836170243501121020352490961310388737829389091791754654146223314485234262066625244891574539236538160594806910970915659991859441464561990342406846312319458507944806515667716184853825401945877270965948929740875862080304724690117207613210317047724427857489594921267547240497885838696089883699472947764197996518129070648230567767946505849935359012294395947680169180961023435724212854428601759231550215860972334793553715643545969122544776643958707715988326887906510104315700845375903998408148297714117134607958665770244691565460126750129419378906627720615207025238921198852564189722497949057981342086445888595882119933233096036023143924713336598767951307146141200608179797093046407760183604376521407629801577495395938250872152744326007418834014210160879566161234886302617468355277161561192726642607387463270644343056255578289995153815562786870096231074767600280881810195807541421192521790218258932391002109557382807501039338869630565174792677966137440074478545712943876171795723603880973110004797190123963642449577422445885313942171408174835753709806753937020020317848966363574494487418691264015596181567720983494796977521840866633216807452290791441065190881691466640570344283761576163172014768242242793518839905248814698459922131041575705058669213081459014528337731311446444847718517877842635457106044271695180958011134156494161031514333275259141475242875277170807022171350898605881500330765565716549729294736000612307242067082564273346979670263950860671348582108289013250410865270050588472657195338459896897500499509369209826504749782147351134246894945513747985537640579840074798834468102207401065467759317971530895529347304314495328980313850941463717537383801177225731651788539377438914210060465901028908718480644121576527007933457608834377281860572109788193146551372132912359151138295426372944073278350513458099890662383121906169088164020427240013668749041496757307131156815973325588717352947992971729556738541236254577073985191917668066416167927756506678506423408050232220886948870123924095191116495116335352402706919362820109591003340822380756898876331580008936398098659051926860398476318548601922718064187230677692170747338936115997886636125123004625718483294700593975776672053395378816460602276086400495502419883689356321658362901080410792939122765465698249235492078813282288478602318990953106265258698757223632529294526373953367420527985932572767377994643930166609725688307941937293006966451072847006544275316319478398502263769797340306564874371801417772798607331222955109538626179677058967693024030465148073157566325661398303565543321412665099134626294513109663989341045378561766068304882006690412061674378040012410222733913338522398198119536447434295631241125969754000237300973488574332199534276741146125083992863106599773279629596793135094142733954452578866671133578837683920382232502213626857141708115517437848606340944835900163389980137402347134572912204741896381272797399095923139670152641391847519093824228491443902274620798139632472732193533996600813489785768827242704814280894024148372708275431265821019192392649840528335030419574518314717818076185098094015296820482213336457894222831568235770770444687398758213108659152556005579249687829968248521024009624375503998474251104675942435557169707621171592571819472406325792749729079259022844995836586881076792247501326756314588006391780426406011464377172445391628920818876347658453070863646928645465827935049912994914620192352175019175285658234384914588529033039602491243451449337474187703957528427368947060835548867329096553343789653147820784503129363293517183061614713170576170872590921208731263200684012924701815576842736401547329764078470178953018360002189827053970591451746992674924993715342003450562447012327212104799903757203518258722129762267457902403861632692078436967644823899519822278242315841628278059283154925312296597313142162800725441014286518558130560596526673032414416561957333867538104788980827226711154930729266250188050294979389265223048194003993037552278863763167594129411275893730341246191587451119523495562578635739028382642513999696116234111744176815930783038035518153325706981290085451574745984117392773728898264331284920677755115956094449454262130146998523158893838724125457139314619866064287228079257245639742671440166938107442696904182343660633087323211794499963373504229891620062507402073175050816759783193760155493616144603857829616865795129476620405534783261388883874372535882551214147238485428359215216122369122858919271402782596436969030014996587585265588909866589550921499659783516923479270622880752025596238922828309296941614961335563733299213778389750397477821044228110192828499408327374327154597981325819953878646112795886739399673422527637208744857097316278325946066136422148558213287055070487558981567466289311957855885797765458585560947470768994764351708129236396839626279744243942043823258108398544246767167090809894999915588300924541814640473580154007377386918975451919623998913248574317565717731236661218726236537753695277934965883370537743202030328932514689298409030704063205180664342374036021668897241907340937352096752666996717804301590894604146862599277298554456086587779605433151862857024329730906843214708464108375839327367679810743064450225336022146866578565489975419465517781583421958237257590197745029848730579715404219306477011674627289691078321169975353529465742608411806810904797787410318457327583368996348205797624178703456016503750839056260136964605666064794531936008013858117152090673370864466953410437968807981575423662196889296050308852696059694325130154190130582629059975050677470928691341184980575962451225902562167717473189742544201318990262905251193176320166755987138903516161498550186682432635760994282912437732288083294272451731671074619958416931043853612810483413951899339888160320970955107020448282516348838218105247084251328984397484926632847538396258054115136505683107155632159917963099477295558975051614243840274355932123231622641854576839045961045398982792989094071696438501914781365199838285469258483134405780352868932521315899627568174770234099326345287919176151988196194621924520573035332073815197604657393296406962597424874593728386300664951542001791190576450104836584630751922743179423955015172133897070319191308795810263725203947457450100495014214302631149157414668929010745654875925286614934213265177369913071069957205326782945655351676872444565214424838741105779634180320290272816447315089019234738719486239828948667393119871743590441301952383667675688376606764991813798968245467055447856070006657451252704314180377356174063590251459150307671383293874950966860415541577142908192701268253419212092428015307156804423363384584142335389727065132750760124955352137301535297220246538985228346317610038587224694867578909259656012383442853104905670533882553814662660064950892378735779002857512536362444248747334738371375456848580239958210602491424507431036102165955666145242705974540613121485606529291550407261147876937915282341209207081506415569397200767442893255863482951984062825740568998262613591654825389984690292927175581938342064992614001961049569555477213651277834230277454484855267854656447924351588852006711805752069432027491951354983085697372722138896102139013069807557613269947007068783341944384485228078069937690386101813256422080630608815417848231255450358575757134408882675765441318159975049745714673566758825730896317579310663371563988805523194548748975503618972120128943784538896489569546241461417505691673682890769495122757478016888020766726450147650657863263709507064909072518218296800933897264086619049815047818597226490003889231918214814349148791282540273840850872490162716252006201309449873120302410981975821982949854671018403741183835815794588246872835654229693375603215785551660060468421846657692706969866903132295600140345368009285938309998626138347276134600751753651171149474119350911670458172759475436563150142260601372593612200580781373905212218973400191175014828659308529583550607916675203040949211391023932581270983533371078942475968999309632809285695051396225562570329780820055496307354142055939118490320300071793158047931757143829738266501691156012035862532267382859116289239173046731747748958167669873095889995136959268683890589728414869549872201107314498229286669448787168216342674088511508595634216213521613943496098002796672084453079750334582059787873069645338796503652245594320469180323565519361041904303357275713685300310437413506943248002461477550360433661280536350221908778927499087844281822333190984280783981152778182672476207695492091925885136001472763595672220938892631952579107242910993083106600153386999122368381897448610160393252003187994115280480694813096953227174494856526583590746050028491547791571258976964652940518238202937709938709496934045335029557719532382108142020525057671178185328424704835823920464828990939646021749467666304655748133600766552997055358996747685532536303732728245547484847591241210333832188918180101341807108673050999950435955668452665894482199815698625273482492420413034582777502851521461987558139553320628373339192994795068029345060646981746076590742738731036506029552253152251199457286025949897710823611211713766808759896215010365062696543723167028157427389227169254042700601862330444767294986195995214590632553354946330433133008128496196354209793743054229892741501960701442557239413090126802161488683544301809850934443299191674972119437715457839383325244854059107303642628988359721811135527979030574251499638499167371778661922109659800678395472427493032239313615283327401379407060813018581452395219071579702121874238652997763257540085639784951680259423833054392294660701158555645313404341143882060160226987656511468563114125269148348536179298620601538041344281045040587322691837060216052442977799227137553579698085663974196034972344074385651394481474338950160314485610673461562078633230352303522144131921448084870758935052830396208220665284643370926149101434996029245863601503719583118179882634444872566611815956952922166001336365078760415730596547703366388892605784333503188138129153968044085163331855949613237881608383437972106064274485086189623985050891263315661679129001192482768684606749666770467968539747736662620397512525171080807493660685784011446780411353197980105176414285013747720527326512448567122561471470043997769270478676309112806286957816077401924850046827315522829759618170597480370651889631671191135612869685797188089140610041425594909950983411805857522308127187825635892921072444160806717544462747787219113927896899251025205960793728901448025028642011381236946728039240355991755865525579179964407400040483120313765999948559147852771134312060703944888524994065226407857497318514881106184238607055217236311510514435226072488305521965246677084352607718212973079483101909716339861565093699356466320019327224395238246688205804583618555246787743984781928725810548653997388230775616330907483767709671926518930791662557270895028398027891746744151827882722239402275441537901239628177396629122554670009237750582910933052019609302807819480407713845980310886080395948692063936502689697746928628276381881069119869518826295981725849602220570024416073802115587021533682113030106253479790161633571805259776742764592721525391102341177857515802943641302112900344789040198747334020257460889132387313595298223107495063285597310085339903877643553500576671556345093279291826228628194975362609677443000559118556187722814827031744246161604017471765839852362810197056548677039873228072068341641872911555881220940686075661392771276987240205011649725485027070948864970992160935400618423061952513088697540527803688828822859491010474775335394377690498342935261353661619665723684314845028784983630447688083832868602630744687309349573061529948948180158233031998424850342829187475985800505716460414602556684990706150433674292502986683387276416615143019094573612990897862836395866595791021706753974887555366328572900143406615702287692344086699699697974522293133645401974258573022312795636973559613500589720223107769660372728158349054572721621341419029210573767663785309573227908878965482813496287707545250096598867214043804944674038184333535084912126290954373094795721048044761126427307533357738724997482448890196426862835689313382370027200106190474788860414127471801229055087429674105348508441753778687051555086630217154307677706111420315958488074129348352447870435834300985845251985352828968814842190844828843768611904667945179340489476141504857525967192827209991756144497457130158083314570866822583830764598381925666080191502513834943943287362858719475925679719574074342797065120983246369011810598617949914848595597350423708360411303464043976810063939530290213407285230153239700601236916724359190904698841157266949260326465882932640527289555296398219888421384394054760631513652447013600089885141353040374854505469110701200240942025528021635719601135636406872483906778350810283737281551281974473234869710739256298513697874007868856535401648439066214156015935710029419998332942236286159533081819421491992365869415088562554374909294144086131591087720819870789137459151366453907629161713022767462090691861964735776743833299050405255864893213331350102098168029676562609293359623578118003125711364357679613748058171019405881014613764179953121748903156278162956210746790557068317752289705528102136712819973802759969355011133319063134889884638950679861332806617957245206718166032377871885102236000356471427324981036268018561174493351653244942032965576397087782531527381683006576657384750524486517390548424622306587462484533876202878102388295244588168212281317351844307051270725016533164757088946537109398202129489245525858495836945974593147089417218989526032725331626270630266193166028641491318818750138822854840673755648357861221328820154611474491763985477404867387228790644826737981681246749602624953275675682840209334997712552407596481591087114773343717964388117345552826962085486329714455472372557673536837865402888534596668865227762168429011327606202440590033985370972469085660267962203369883360278970730348102695950001364124390123809809752142241688373445714394907609012902317618432071524257503375868246047806167426657788266282147641951836763857587730518811493936370146986063260206310626746426008806652151527633994793825990912115743031927573028144551138799496798901103061224359189068175338289791771153811981187510004846626254854326098659280273476633817915388848818495517939965528369478666906243141362948642687939617506495146331555843731511483998849855828247906340546583348750184959424452548461748353333665282530158885102324489088953257685239183070580525333566952438434512457464904322071490694343245323951673992974192100460870865226474543403244249376585018426897666903610817460046364788450501732372719281604474284864581410322578943061281306088402109723036272301510905238854432951472208352840172575541708789705643543086056025737029801357893791803562732403691457337939807665088826410268512933431270988965491112941084059113440191331804419222352255539112512079758633438698726362395725674561676964655778577810930314831483133990772411198090283073864706140394393548069229426145471781158513864436381945986886157346434269824096110344781955052819230616595685557868998840731567778657796329815686410552009738300915854585757891785839604275251305124527434790255593513203350175917310503996935889480574311824586537615512205067308351118174882129428832646161835871794583056688951641997399706675901711917865192275939520991417394438327693350365195213690532022634466364279938786197725749174469511795637927522177039048232191228715248227867913637858393482871686574894851350206194247478706935520892719579248691298870552884398501920786133751019045537191461470446198746494195301487013535522721053656447954949030216828227579459571128238668446273236280441367082035879932799844249379446466441498450894906911803618391791019441620275826801877141034519044674511291400507615892107587491069113913642399911236512890897889809906355610501822946266072723601489320427224143387531161641287352699241795314318408266243586546515889639863288280107616581387428848927258442211780915554388892632461116901785275580745993697095499862742189886881365812827902748427372557913036774767005820217745729576740503985364346029293245492968272426729484425759442753433680462497396381464979345761602672856491285584236568186463465753198016060175727366824648592028587082088823318463330286581739481399249952984665446778366593528115088807187783121794209202492523602421899828317315819970985037110875980338884214891402760254106618164289032819357487551570897493870168393179092945361335302280355695459039229525527108277733603102055872513965164265081134287419653151924557721549117465791557933517745796492201457263565704068654866139954964425724611153795947072426204324106840610589255429176593494051673629128575599852683078850029561943802592960476513791965271092948062211611400383453587748067568543602980959764735731214170343317413322081400379973274392656443792154622295112521530609556959863891092134941836909503583124566058601107273527023790589443072249017502385601331675705530979305873236729076366538613049303554915323218369579781020437542096074603307233885457148000504326935319303173995151977394058966905360306705619296356784509355458275659101245048824216904074318530998489323742874553406199066202171683140701659990459030550691665661085374135021798217758059482819175809093986415336701295788651102829203053363596601471101954789914660136365708605728013585275347402547200311479059757335464626129795428860751938498379181978711798569713020364441383864973928189396388408866982074079109416334498864114042593145378505521979018412323191783402354299082027840379120325634433047469781885825158699887659463949357083435550127658864885478533435222460259990442996406332157243416362282041640929422287487912459311383666790994056305884209967028249400674377416858220914609876862557614091103228826479155991652111258140890927170359624385212900019777597971013227815402278218148218341667949814173705380347133140373294154496245834024568261354705365078808489080475352172962664090103340404265370625434218414775101142952462224158239281042901442117972269934559737734530849885558986732201445295541520362337828595990343446674634058972997349987232137268829518410218323359092336198376968198111528401018004305968489078188028032834080292602153785602322987312223185099881543881189200198752081892134565170823290410324955259445073929427754773673356398734823815138118063689655843452298656577090977941380719060269620290307653566392992528381206531790720718498424314003569487796247514533703053448817271913541421722113725261119707578702876591212108191709407461771755982988478469110710264665605189119450912164293035559318337886140996051592306165846517373594785193276346423009516892816548621283137044552356244342243621151607633858842540193984240820986819720591302334858751103725230425022512439856193766692587735633206094715857691707589261244948248220694995767409541363366196415402901821080366862317206086355751241708048187068751203873934063038670116198746151695701368646446350781510897764986452439916910988494778077573815781463162771898017167143754115906820847215129263794621062770708866703713019056200804625234027461695360628208792295733196492402387434741851982611911351549620314830208707702983667934918050118003106296068702990835297230482246668937412614965899578161631060903239121189806100830089924637578475428164735979204484276412948428483511479742833311407456237289041237473566896352308932209897295269590544788765212873408971337109366294497913074408920402539511871844310601793714068690037374801500347305365298851152798361327705350160522394492396853400072651465503819774826677117405367961926184491477882823042366110428353744810821360851912471299739995122291816133372260587675958773468795704575936645921768719953166071918428996957072591633812425060558901290391810982842593975083634483947104272096942809172686310135044080779553842792408356929190635650301011365451411404871141540483061061788741841229393708055092166469150593714917705242314769345918160782378231450325754145614061394909600583559596571575723540709923833334964495023740016369100535388426233181189243895818054455262075914208535238356856248447802280035693058241674881423510195465084799618133230557213544918377849345564252268524597806016279080518634477263672713055065707662480444660912405625688868143209195613809624931486252181096965692400565976838061621726997423771018802219628045370439403623972483453052120055139607516299922865226009117388211070297463380326874341604551672157093860380399989028653428796521453356185513895867828356087528151259809423043966810640314658942745496456256173174109542741496142704930608213625620315912635753305097529551580092474885953619841818233370338466293433239327925458957309321385344041548751625138881644437702599421067839520409104173049521433019296553709614371922684711564154555846359598861824324218215044218027948735645656456564874781095535719567701882107375816952341919261541332096593986123324535503040052790062493129753295093211561107075461218808460884669800634795278638258746771280304617601272858654765682752528240811787170590374563416740656362990456931926218241580348517014068212094716945028400207369818942963646210388768645727395300261190771551043081671008070792666225111533209875302860584981461504505865655526492802325339045218063884502923922176828368400911408018494776690217767932402043912242942064793353471832460507447535431839610940457591336013663228580535946369934338159710931652409415818331479218584475157086919150130242479654904094239101853504858618638512760196016458947567321871412130585496449648656586688133536826843515271588305551655644356647406187482947328148973551559585053548516872868956770628980993113042728436919334943977294907302986517081060855169761678703782352642773771819246495333744782130540027519685626683143393812570000967581828180265329798427689808676195480095331180172157137021351581874433569161031894999981141517508178882373619165760590570573102778589006971439228282150147532570330340315596036471769515563725234095373724894128116105199550942273703911386339316931185264431225705915158043365907501302662598963553772751847542088771035943325826760979430453770587604051558045855597326907376937830539417375962718750986598156171374202692187278032355653903534310407858743797463153277086322308460798578209242155240188626415843047586754916884651177499633209922494773753371335765783725237552857960685171944596188467330228451028614618762308892345985855924436425198757591431181319517983628270952824524460907857488927109475881173151025729633114146372366028336836862298378060822057312682101154937422882775026997448368763435138930448327564580056823407679710397880835385253390374420715906363444788990860938652180532160006976872432616123382340013984349498506286906120523527487972629537925381721575320098959901426552597754950390758203507345886669360201168609966713170779286709890304510411691791152792922374551516506304507460457697840545356862972584352935492476585554496614601274492996423154201439607066457922164064253228793618615232428720187107390618459289053538768054211409383176339130448680989442398748423271407949024614236795151858835234495089361281228394776636553008170390024968217602586863966102120430730630777628104943901559175996176160296513557330915619016133971369266947399531122665802319144839107744291022505142507398535289749201182489970466246431648706397483532407861910482050693097504375041620654867637153003738009175617044715193809534357839601912577337924174154922874366819510852116869452051231260825339930240476261822452370977627814520578177880922698159617505624984312772696120200543507306863041283782639005431189610479298602128819021197340326620935812620144585711618206790353785376309722489585925832850211989478741936691151113905102418177037105995287815400721823357534980713943852195024596550055737043561174706941165812938145676111266920209715452596019122479714625286878870649201101235295791374223387172077300171127929928650021908856980478061216914055801203131075901734530799035447199214068697925969748083694951577340900331056458605824873073407434930858243906732050530370602653782372951136966012175238891558673066905621226244253366949332003543978297975791576986453660971185575820071835115100483693191462128293791758860997107805368250085788665836176923865034233001597995687897403002598633863097591106647068684553498553332447482089345723334682404802327825966989084093801672917891714619817310702648187619672882992568292809175374664645521665020127369014133705987153233144007346128270486711056000744935064051275443439695775350598123966884705665500668397359854092798086838799900696475753638761054443975002564126161224807499232562632266110419951250142030792415638304001189435861909527825804828643536313824746751914100247582915704090873215721484254999112740427625709533741248729979540211500894130606788642793528522478908074087121038462638662461472492278956138427640961581556786182990253545815288753532781392187941689632073927194005737549294590231256607057469060761115188883721807688959284138370000496536658639303206199088228754154952624089322011396445901186680147673761921838350372077572128311033505202796116824691852057287640233310802850557202483680341093007269199499744065219816401858088485700639553284254982592145049055908302184194830898569719377849041229893373933570606362102083709110899084853844989030748237583805593228030779829804719441903737122733341209536472804932785496284814770394058325029048461436376665915064949849531394374132549235900451582681300720368101480747849232262635134095737661889744515295843506645014310929437238779564940442653455281498116166242316185956336343050779113578078727819920083810196528415184345115967305479711810890331456634957315774141123714172947308237067397196984234624949982104091742581924704909164278110725306004461466092516004828084668118265249879300390018789425117828355648685396083056417886000318119055080730686735080268158471857922775226579622091290295746779058563652875560673197405687550456702210516529835002776455087279296700657179022400367057709277619263537061151542185510545017995414413875568853378743946446876076318602682386561115700494999456103316933376837097409107440377437829313391524065348675332054232460490620365885053169276004867549954809189810369656743289644269747223754982083213462322243515800315396136548647844803785277225296013848100094211180448540044048638568070806703466458212653184890369998875915545410297612086245061857472592186236361456321096686608218093120318032203174662233117241469703995855010719096610594620025755416347642262116178897993671033655682426498604157476126519067029402992641937120021836482153925085432671570973367940927150824954555044865019612279836416489150736850400460609447154555796929339330993652210281830875533895306124016682055379074760400494086183976421865965084199143813619194186463167408609951576716548595575343488918462312319927257923034135979333505126558284507536623969850670357331635539390044823123280624297275180791534819962861860558983697203560313308604945464133921484282761946231579279916489615902195770433754393329381028955171658837375863400034472014543609418506356733681644685089720336146426467495503616485800189901689595706490647158269250118556080338492452522819513072762011187187475271180210959913184591665112239211868403118218575544174568631655795821059154563068868900401150621003715677132511733889856770254507465133486250751959464836813768399178279513028877747146169027460692929028857034027230656411300923129669267354286277639305843514146377388734621280115202778102162232109852300964651451071687629958139900917778708583864992765095624678838542808185585433780365513436166220821580525960507970338826287491616808002369509594062651242200853525408208622317414312689399671422488132933510336007396161511035532039404104454607259928211681543083875492620686831294085932473434164135344732829189969325475537824737507110437374467415517704377493988273318235282070384976968500770616579727090595060175048096626539781334874099174779108183440625561755716104086513611474471222017181379722950761887059561911713531827638784378359559849332892679832863574651289178625567621688554518465148415212469945294678784929747599283634116692906764441213258640346203482203439938838972771745609115892592436208025853040339449411069631379409945297865030288300700747420459315618377229846090610342526544044289909975569552671772536928475961794831158365167935127252689473509781022010849635399410118758949146516465321795265524675620359437325544816751016589018603501510504378524356900916790199091815182460224858320009726956240192508811359535693228811160311667729236240499745837792641700192981883267276097454613454140997433287770481299624522805414256746962866675075181764679059019968199625599007026604949204544911974456982516627688723689652358917023771733730502766210369953206803335595165140660831750889117321670153159494672767973467960122015516168467977282393272762956467041034673693517451662966227246725101270858855278427576493724889721190616091186776740905222676059700457608963538844706990242009975338722117841382261496776214879038061067532698443004892992497669131774771225249057208263993980498647270986637355216083878970231167343413124408686408074099261352183310599728769194996878453162629793177810480474622023711456131190254977180641025209119292523553613436612869784029391645322185539695757316915264269611900063915267178166472005618151310619769895469739548496643018122175471044562682835258045366314819547436826856946118444768603438452399777197070844606234263446403266623253745069546014241219813308070990785130252242788748624342797134366214920330692386742553754675421522103624489581590607930403363927216252937348295060086086739143340603435203194253629809890352963189124714918819955383114252654909461510717201191673609248647991910598945658380535222204508875390988459008751483574730519922945268008023559502650308633490504517368797575661921577618658982417234549191319227713368384518699178057851897855576430968912202760782960951348145542457715252459509907574656245471658217312466118958393764725222129576192041210348712492188320798864865130833459169239399066255930815048436437063912163938452786636048446936008492197861068141286103198941316317174432828863028376753720485421363719333760076000350041864006372563222503472268271842624082457136431423308302921968889403306863367271867543836412532823963120775022034811434523184255731345448735264821071779398399680149280694983030798057251495704873730301467302915926653372175040496783844672217273398705127167741832528994445463699495326630474151239998501268503008062906406836056279021699494149087558063892657074046773024071283307981083739292806518929519913266349996317295558199157943304908388896956420494236569775800084760341330153814322404596815281286687748882605844431987885894192354073883547701488370049403958208811880856843497107235645429087774950543056831447902599357178789478356497831081637826049593280420676821825755345337983166010000071203109842644840103437482340144941514345158222752253177852497119933350455591233372406463163452994417376100072311205941573836058873472221363524597135870485326007945316041635057676356863304128335980970338736832785642214188910887220008324179878173347393573407444660336844759891567815571617662506802296663661381427327785222421519978555206593224750561671923925102020859424918877952921736096969645038240142788986567608091889542126878429151724906574281801004050213492742603827991712274237294539614956167380863835552888333783883125905827463136629575791279240703618154154578181846457359243520989625471479339253230167340977463465819789738749266185180755080686200008233649599329540709632853008114924452887665555650276037618396550224070297143476852375884873894521944705568748846986886818788949770428844547389358158852179243857976110716424355877548428302313347073304719565030119264634520691417939971395451923528474799034041194106249186898159722246303141462236889372100262014891866511926834626253598483853598021157171064268684411231007961610625659311566969357384054812580783568065807751892902071943253316878333773599065545434105280863834336859727741229898470606576358017644380598415256808534715178470220535537205982620107830785169614652705922058618558678173986358638145555915603034860971539369745969442381262685848876713556572823356078262448323019364633970207436545233606925491527729183980209913021896624422718504568873974963379811310521499109946220997486303006436600414422685752078075038435490153843067262510049647791806909716738557990928519885178478148789272591697868410868530652398050332374961784853527051977110173515395555335763155150741679116631035281097118069354997602872173294541905430821392415853487695378876672551256655929233159987349081759183473918452350730173826585762852747930240310851764874325118574208147549248814560529328676127674527567512454015523622277683336532771199030983480290557855297273629018536251460915141686211879630084920893342536442645245028592782694274941208631916073049348743062795539240529205816025501112463007822104925138108062346951814363535488409754559925346122618732745111110426993988756205435590305020293596957083751190573163666752991102333886578615802847647424220077516464159051374380986489166125109016317613121276113087256180014924506830175732644369919737297360203002908864574867319478413700764130153083946650900809348482551900901673577039046544322553063555298711596854124670367410068579265928060832110161908216081116514572617692547336226383165188187473462806392566804950600393881315771944610717435699283573077348181454750914905885503998428614845905152694800661124591075200583091601966328483045015357726168979255511226292957914738489255391466494900685857000727232363625200913673843778879588330072671081773639205208429322771619718790062817428924200275944487002311511625220460398852600867867096804849627990189222666976785636078847601190421059946178140305489387390074584032757630867323836039908240091238247590411876051902391995835537725972814023552561596502450131601585364981846800039810308162535618680366047233398044260336183908841289334106666883868788067496489211995380190356044398168361632936461029648074630775740302825572556202823997316395883891875461267904890725588513744490769136147128992004659203943399517760875738627179078086331013010713515173435249795255742127275941719938494065261683880187518422588554753177607347254473260830626668532383668165941576517790837068369754346460431721178702289190165055459132777046832197516274987145605545356235835723603030362411349685907525472101986015887044899012976467576466032745373309583941188185588138062889775378990526501835600237742886095338017761761991854376309887640171825657624279783492843525359056778425595765264304580367188781092267022349582779176013382730002166153345438551720794062128349646722101542592098888630750735265543603748728825126412295486991738080190019670494443579399113315944121934130901228879938300229891979118563997070623392565162625217843453262643122240572778741001966783499908977172461344585116950574161025643811126162283986456732570944353937704524447632822065183501196913536361121318490413885002908386736352609301476051125712513349938061990201908893032512797438913293043668361980932828908176293865561166651624442643250127142674016261438416857761756736295872972923596000252707267323624755230734284311510880255397819378145740981626194311911229273893205158881716455466246914490682356163621467720566879961848925973722144791445196699633398218549142662603221753324493514839008520682013542786531173603610080691756801307241381977440684190839210464766689269464361899196645016874535798564263358325943169934890446161426001101673743891163826508841847499558871198157231409369675381008015701579988898901275340770268964794751625720838855646683468498342627183376156796167202308928476758668867722730408704472621381617803221834842902343575273820934721073524926540162423842811218752559165408425670986068624956450409847041341703282972908496436523567117664894673690247383786330848449736874365977658838707704338302957105989884055189687267954889652071747920460339960636662357907351180028223424930748985998126507492902654135191423075468476609750242011574510321922784000929616238042532796325640052924347075893753153508468376446613370331661746142904640197553015169021559252902808212947848226068148501843948903485049251635392141353519255410999471566335114563326741435832237247322697172615506433224749962555719770243127301777363228370479342258623844629569104842045456564248252561923603957222077359212509165366511807488601325760079169861164003697139830110514546525799371117148536330769676378279709298124551937143247068597189923713577207415243075191024656181075751367492866835574576340468039868921351292051228368509763048463802001876838909664202980512658318426407576155709579668963310146500748795997847619689164626830866513906082390576192400014482213768524842806735625316786124887465295052798108101125762622343738819631935190236834984622903066229852149077772110993204753422491832396316883804958653867010765893455856508382373254099778796513007952399422910159479585135896340043385278296222433956953200381920999642610332102710741084446687658806945003308295424992498120815385912913978026680160686818553657373343846531564663512107974815056088803168914362261949102790639122838801352038632082617715319834397398389064889075732846931534039680521998561867315895694711282517389533716756373471933169134621419297461130792918481186564750738036661226055265895906414133650447280954618725731030538221383068588735216689076025972393988750239796056490563452264496565120748363944299235469703201376468939441276568580168387598895542638193050314577498384449252590263724423079181074661456381025668063527155023785947897935115381630238217955244414518428584100883698550930844408788171838245740098281207240111453569623541615051032007342035753999340367999752456752484878972825289686446956781877526599996595015424366553316378300437532904258190791785419071948690539833523898574105935976250065907282113019526843781513484932255994898534469568766646361765248301875567070811159374138802536736133590890590710760051020473256687064756535058871905211841443024531001845321586389892986380256103305561784180756963820392172306482506990128069092296975548561023158682844519750593996933370317178601542972401908175852967001628731165124717161564103334512754814671300328584277763458332387370634160617609365419481519339171329029777772952885075577119609285993013644715594466554491168450341925236148559844855139824976155390870464194233550875451745041883795365855130070736267856277875601591242055718154805320801046668068775837927236479197873700075436737599865540658917172809686114874779884416663233403289441207827021200939112760177151185220106246821667754579688300645079897971607112263025859550695207494231541246836092646642446720631708859626767268154943725789549417126178469174987037043843837346241566449930621914661642802693350400637420920675291522358175232835049811398142859542348220360479334077885277899467288622564394584762113161066980519960988054570137883829750214212156818206068807775165384839044935273650153189802305646476631133528997493414093401594131812075356727917813856731478360542554960315896811558059885982244519842581091618348856228108809102255072960845476540813032173183375083306582536345992541951919250901528367269348830294593189424315534602272352528201711881485848218554950037594444034494720711572324418231419304674953677473886548213755777500658041280598265914031157873917611824468745595844959405694735644372779477980209524804754486805753757751558837496968419279414112465834262000408713644805523208749109292668903926062387353622607195560498119659249658105196125987048412385180087442111605900834351650474379007288142158299634670087547511697358309098424217256063496298852532195665213072235437007010262331573411037970161296027605968008679799365206696990656674009458516946035868591758539930653906543698656189881304294489866083019989763362230870570445615582857184098291501826676598026753840875045002974638849421462271565899519415001971379261376422243341622729404210316633190614028808414890031430340810494748588246424354664579047127243776932702427636421151888304243139130456053364428728426850691872600484186184103886699670958754422667107482624478810480480264349740884562596261598437003349592119936533711848623894716691776977669136206018153660951915163118426293470932223195133797556309962368177351336538370881321942578977305753722795097317284520211307448649693849451386786481289623037631791306782443232167270466660772210150477942973340629586843121774515852085348439138962609543983865284068291654194865043043359198397570435065410663500476667204194162381314145391712019178451050568277340891586455621032708519664614495740720218579039021677302512831509231825806990623062286932921154084511552708924351870605394866572885113331848585384568567116797585724098530949298140700481936824698518472290134449243591398266350108749660270790522124982311901934848323574411546906561104337944664854546830649036703631030800344558344283335923358706551457318567681275051633355606992538218383608208627934215824136616938612250377960142563536415240410364589629808608263691919888545259823334948208655696127214480091731972612237787505032653216663247095217299891962376107704761327071730459795026220018830502927994233963890637136981319570084413109680178066360218324168248759514508233619986652974419767400540072974945172735997197967698692050605730087681943628382463059888506260940401574413684570114141678658055752058110049995611787063982994772076335023999545322739289752122244420227622183470699690849904793475523850801628471989038648723996777052532187579950362439251679364330213374631012022252794113996242263014741328831461226986454177316173617454068388549669105851861404266308897651181683852042391622566259543105401068717621844301887038098432691471588904474720048993704788577647674053796768563034566876983088685743837144254259839344313648198951351251298946503801711246524332382315532128031401403734663259040469610115313321884124572271695723828841417047049285720184897935141404631458067030374877593782510079071213856502720075634645718129345443621840056214899135003883218204714458151690933646635932456179270085184882207579761601341979961725867346666628277172920621395812601948015575210507108057954661187618804422087348631924522246693369831150298021381918090952149921057971324527434443657329453414988926685148864770577098954812178888933317276166742823324726109499860751546033226290271630187503751324182520063000706380303574231227191482314577727420509385053604227198274958117075095599851124947020464335399614974246781504048592763305851676496330879859751308464289659276183278962923012975945704992396047147219503557334272356641662017400576922322852199889145140489951387247678638992134018484964721018303020806377069334664544779813322394435661523024875262212318977314360719465613257053782823335445685514267718344225531444752695152634323990877344815111220666918573521718221319635992951556103940386072325567985810439798593401446072692860274174344781082527457712441245651907274711006502517522933236412807791727843543694407609294683162359937708984873251279361802327856482588342624588494298870501994921412796983193166518526716073600518974079875441474058204455733218411042326917945168804296395581875429321082762868187448063603426812861476016206811113792302928804638379787750546942879736857589943657986430981745069265861037529156313324626130505814140399364466857889507787412110047642871703940444287412851680433573678356082654873920519322757291958150165230560444772708290207726025423834404598813210797692759820208288758999516951277177062611229708280756660867789103503408411068675899213912974395722388782430287110290920911072573116586383483088103625517314173830045507260985488063862500783497965066194439111734108568682879362434716393674768093151088215648232706585908772851318955425626922685621632837721835249447151305407059298746408996533701691517795113312312968604548655147017110139197155505533762794748353792692211967965600489501170830304801485193644799408311744150918783578287562346564021743803880456390597636388385483253397770450089225538644380842896650991853773842431194110101833382485723509667394986500417397157409884036085199473783051179668148985740521654263666002595860068989460938901387186944458916174890972833539371854592709222286055615307290203972823697094207011850823349759690297637846745297721783138243821993478487855490982766836995238355395009451913859354677826312827086872431507066295655043164428411485606006379498388632965787430434205485509632773293978791729216092624673156540058132870499713406877677036120340240054780230014713790078756005083267474859740917517073286946206330958158197073137058907499221142774003436304373927518706952166942945851897122806602941396203074276463385783035381747223117131265525322177331964194400902435855360410244713137534731771826513708587455712315640583240067715192313752926143133124688676210807234641632863734554272801653847710218372958776033046175754850585119388611210985947162693673932004223424447958339258943046095362722758583481928579576219232971965575989172312209524768173325530001043348122265228626045903305913224241250654128813005232715510393226184400697352651966008108622894566076150778420477578952772358281535662646341609602126714678769558453672579911669971077691957781713768777468369211258598514508954556060899327991368103901762736764522837755490874619408386907456249624980915585704060785594477712834098218182806177035397325463064103639795101593223524048880209336225287506843544049629613584926616425401327272747076349317259660744635568654125244062465680366202712312710378187177099256388451984298484670738674803077277457883915371347893435967198839622630153301398216805486601452129256564380483208617691635162311684033837298901730172686364558718711422318300711980218445833796392344567285991844835194333989832294952481340352124350046247124623533519210438065296562111880840823122524790999016439388853687901846296591103267340099021956704537626821381947997187147163821499088050850399825080898554923955733529398902645288216443324077279742252453309917660591094694815711052930314518245574272175523963823738089664844058843249468825896652431542473165427118357467741334775922356140936255758254576114850884978903291388538456904396732316993495751037860385885016759934065809380518831991089767600228343541759316778137345364805566062270244431532730059997081979896034163059285258031145180374653039268171201554275869687303438635490447397344382914592484178956642610647617496576512506983551616574118545441386023063512957956813946027674184584700719957695752377106596105399484246168553860655952316685391409991193402085343812861211852375512820172016027999060963303042662354466034090565434972527492825195287058230781047701730195779995180221784575747540073664376321907127631125003416038690490824023844744230891297394754554789603633624838290701152347750857472754389511427476559829195756107271298402903259290576265417825467757792017475441336490802373467030110954327289490335356975523281007685523890952028373251959468133361495874667170167465870411618733781824457185665799066959035012908421633027357457711217467757094212157441651276356288903099854583290165927598916688784997599512704768972563255330782733214972062567129824024659979529422796594301983765678464822191049018259672030047175579586052459299744006941352670368414719777082356905110012586768594487637883275545147313516402636049246799419995757322054529888624523401360283320175810319812635246587570627500444912068924752057090114755653059774112607773108049429890930505036598658196176395149956801417590615938125966954844377151112615908754078455454396296224112478485752428247589887347942223566344388775409773411289341383770705973502505440768358149173463241461884486004509261727544962505583736059478586057103544600091187925299714526934851013107041549933948882282659116197244209990549272893527088734280925149504367993213099976863214033595099888337517352026847147162814155438816056706483187496989333677193305598088999884117118515934205641145977893528246029074424672192131409839547333025412701007716713123972188321122693776249654474224897763573681785039608665978575193932127714775707979455517446936794718659688608336071963074475063079895545885214892129109303594942307556839515434256717449465636665482461615628266274181892011300856415969467435326114153478034062581160545968763590260583483598772692576127665146919919125463653913039897771499506414939326888025261163686548297404263542567669309772278958594902629025041356232076083419060404308503307343055461310413493292430608448275806387390622911215175242934194034677814343796013072230503997704541202853309247778801148584538634723419642898127475038189373547866382770581633712065149471207592454034045536255079734026793279673268071288899232066306106644060088232273105442477222065610031476878535044314312510164835628312729630761720258319966020206486411354003830603352262690656137739723730981314681547892428012657250312885368808185363880676270294347271507578041005090054414178558989966106475087555015060437024886623455799547756522442048640280587862179085211564391680539475083102585076896782020772943971511092796824049463417737038582027331351520921317183988643053805895907803599158059587264658795032673854325008963393547832728395509132235737483676782792320188081113019511741942445839206624326222910435585521836328784090592723957307249012071364609340154274263223083772659599648036146653324791097760671986607407023483214392949570978997433315369430566686865832992110781648933142370331739156652806696531053545359611790620636705654573810675357919773895451947848774379400150146242661228543058176876683927004069137679543154512483140106606904447069277902626094958317208004978289323042103070910768993521477920095730816818086972891758098686673711599456049451039101452662687376664930941925344621645194869300967797671804644611583612632387583007708515135453936887487632170130968528903460372369816162976970761009223346751363579340810354568424836795997047438730633423654888378567865003134542198189856397353745076362296851234106457813434584234191059040897150852134401200585078117456831941634602479505333854431210453308877320262433225314275565825450669990023702015174899684562597639913233275236751569613265955954692155063067822371332684126300339596192008833161810682682963186868572699112471900394371306876783150416512688315475305276076486142019905644922461769150804383682797290107021881483749100707388956741725795508222948384474467968515877520577332954001091831520283437159569078328743290222685447485186539341509613030827627970209742112462477760301739952717200622393637312303371427403774366262714939185052255175110230534914857760697316296525827631266334950757653634706907327851934024330981113706081897880013543936252025486189840931083404432786454089172158748635712019068997354895946638058631983298637998598039614847191444813427784111736642853279218614251152547816681423294266147272472896833105858846904701959842700710840563843015043139902314417105063208303062515656868159755272421216518904495438557874778490967607456323484371639437811988302744817883657643815391130394047186170750807726919125723934297120328599914925958955149941573286725894901315582595389910755071888704053844281726952280967051904435086489543705519133541085723855481933490843397493510969601605337036732693078555917427458359614408587962629946142036395920851868520223054123743115240422699880196365018301878957295284229735135636592846878012779753850297637063935752235623275116683890984208573297675360129455764270092705217642205378245337286731524584267388516643387791496190122191472736454784218949016897348976792363933928327891419961310658397785982441119995361975232003633503748176218380862004786745207380281293210598960162774600457273641545157420798526672402594044714925738982425888017597238397922759892229674144358016314745548040731355033605139789114393403174446327352698723052326065788942314588880908110986934822437671177058970648217986192211659789971060982747440097402031149354594197335715780012010277035415892178153247857379870304242671647578487117694143660050540095535784159804032926879305854915240699835991673472695470204493026516461165324847754193160506833129297693727798807967551316729840850134512086518995641426307729920839669304304521147489307989459246119789507644533778805684138750322352408924890198339977152692642116627162000443687043261223251557904406939622198748228636916641506235393527648306535620036733035633270515980116314019405561050468742920114737570609638564081752725786718725949193804203220076512786533665801119037117518430650621972494696235334492099170410474956226377074579433211438171042361993928004638813639719894459660537070547359429624003175992775409512686233320309370215122753536489210382608937185864773279817402781379276700270506926706783656212956922356091300433824974659905984512067132329607034405983646043422414656405601058467653432219242748158174900351977392140326734466410261938435088255471368888604648562292410775254286608394183149196426085537401525350218977999163688187178153448855729285257378182970225784142650708237564335312486544038202799701372429541227680060331308493242601898738348720163143375209749329896357671826001142893572783749503472768075840809367685810738213524312356645083811121206819907630937246253365605936864213191100668419782516564621909761653815045761052547844753477843782167858522928697351753022608222625717142356515790388737035219177496927555880383690812121164593526740189972479673623494501077397079232111267754565576574696040414327369581471828699362625587272936861547748636931354476614963158717041457143913718684712472231311165287498420818003948198576479394831360308403575280545021359359171266271613190496367823353428941420427184129750657100748315076724278580563008100487075426915678175014665146626213289657560115352765044361716818313532470076992878535280200984745596741142493816226186477118313078493173668492838416455819306367841926516175619747058606169003513455019422055019748673557058674696217913643005757857921376967970175827383741371652460179414949378057138972148240901019997104807579827886535305472880055885295787327201004651281844941037584352246140391657458605305954498321933944348768691632140294091543025497227805736209475292954215436511420021965388261286830798119840624972003869013254775454359539460495157203979400393223698929614740614763999008980708270868986423291464418663538496565457068948940775240839427553413556577077585061583650945959771838906629683869451246250635258395324823308431300096693327254773197777092773984110849342200985527403342575772180538551933451624393050643321498342968351380118639483863688449264091900603286944767630407495798991758239721868853819754436931820925736732104282824815024289749991656725138852551905312666703381727200504152413368215124316098448663661533140506901041213149333361986666866435179720476338525848324843295164966714093639155088305520708130398343745881966665437541203767419723993877925858228677781789439637300333029587464542750203253490108046797789788168182294809699474017132256236440402881984803674735600548548426789115750152814833749322323121482789726409516191817164146223570062356765462626161518556398502132050492443532006231566642070694295375262317017180055355053145906444836530837613464942722936147623244125936890158080431553677738709052659475601159093055762967784646149718683160295843977461246911586919578345009573247413162862182459823112909467627410607688024416967379312233199300945903901117961688048632599730354423597735894088423125306313429606759061824359013787342295386578022728488400384821284857978477489119696494469293014764234008696562388187041925237315661812322320441808622863138883825179410679338851483434854721409834539245318905476096299248617502416511741218361128802642975438790887441598072767708375883918134405473932034704860561315896782273814224930692927853007263607217854219963587762135684804128035985454167379414382903740355699321264406315496204295242395901056384484784149643240545676544399326060840157274817722126057502497623865397919455516761525666643338726931122585754342600812966525366928705342763519597725449176230688608580005513519952625735226358939114740396731942686863189065981699940621767530783739889519666705888804667754730183547175611357619966570321772850443638600617884275321491507005856455269305233769627048688149457643528592287704837211665751302770255316874314294389298727222275695815574239279407289623101855165927794008055866852568072631973633973659945789699440339653182375525788733798737085767141922310041837405650468508575443569073435155570684148150734634914953218756052741318351682632892097110367312125848326768874596238040681074048881494253620710572159906823980335503771389793351098543836300953362857486483579044036023578026166476536607152347953705567377707433135351120664723371724802722760371030205451249981820233749544923094157929355984353676542213611269707155275446037683298368812082776139038803224555234556713030960447814726653381579043681676782957712634572795280108015402911403267080771212196542508650700372548190475352499853414975605597369392283556419598372209273995041219945862465583205253048428415577131456590295635581580893457132797666769651953070006715901991165751033987059932504940044169861738091714538662065796368219435263721459093756155263278618971670947376987316885984131179022872783811826713569808425728119917742712789913823844373209861406760481646668711778659748684053435822339259015064889497530444151645084419525135778736512092494678275640819663534015600390157813010603200506970797152721587493781806935633071538175642803403504134455230691775740304970776547681366653232484513505389230492962337802303363059626079537475338612174450597584147563489558692876261554384004617586517071987875755886511203079034061670214200335972339810071889688928772391421919892620478533340678581966688581028010435498393914885251230552703895237825181778717069216832458814349379314327528320134336728469845763435472043145259250136622260385159460170032025400162388827080629141959430164631951684994881833219502493382662789023477414617455808563438876683508491766155373903788092646256397703176888928643453731955042079442259298421223246953856485766412046461062692692858976104049647483839820308635137275680606158250592633076287040533188562046728563187563737903676283167878833231610817801640996348728430344456369327431582865458338850596005391435377376694048173425581812469774687067188661017939480195725122002637889184611773594927533726097502377776326804167573611343627225523208113235972923820533668082050176299483921859470083118906353642882232915328286171711880010417704914326765316092087589903556321451338736729033451161616854026382937300872823064069979334299393429268694219688061280126737546638169268883210022622593248093129044220441506202773238225274226245651797407055537512196563150904290509143868180174978663397525402959769333634906010769437056549543365633420493085615999194777735594756951577073225833066638154784682548948389485553809810280541293193553534093953404958234812836619691664732722133140557087028880919107099910936457470212265137586414909398105664368683950397623054700952475485668404917171952096734508093075138664197323359114759674409696179977264151470920929180062761022825213313908812288206644584632234972285061127157812519031549610021622436887727990050012410614853422373011234170752563258442991289003847766713221074985668691825552505079412874330340422881982063234963462147024940555091941049201321222452180975727801532339828462240283067816429738765793564447563237486813498989056027820261901269225978771434618496777382158025692797263412001446455862740327717202582171769297606266622887417018955664480390435579388905037337946576275494609672958440949116595940303929402537489343144672950281705877604282231686397098485114929395236527185920973563040815670293448044486943342386853454179611172318227012937948443498890121338715930539075906726741802483235115160545809674472221427749422955956299336807560653014640303845759639690312809097079832510285028107739425400740323684555255640381289200822700509142966529431814363671421128675669428390045629265258107420535925740610889670468329783608431177776647316118037071648074734105529204306697686497960685552672189191344231257019975062432146689008329423576053024340051042812352921707050229451158708844358889151964729342882648890050295460687414757020786689152767283368579144679752999383876442411851641332124735059635490034478793170828167289239015019635524328820319821171181747309331247351879566997840539876826452533560206344184825126555567809196673096943171875862856408249805880317160899277538717389128145258384731032011738329878202475633208842576633843182854296962365058632971633216556082128828220284606469281695585216825299657530099267516733879492021722571331208154212829228638093370276775003690323067646330444118889906426044808907974401856875744987277478461225234228361650757411598729411313311505767703944728839712825040488863458275819966059122603705545091299297553602917334520999564418484578548449688341266918657527364052228243107596825426322130244641342484516077531830345092473895236348844530748527160348433343744296844507947900085384747606394225661754733608627090638020360153752011242847744219640498014938938001583954371012195506000186426697324713808939444099995715291816251123262563090615771670707104548207124683332087264488655566004180979751334683924136893881092945156338446195094897539375408785872307784254305195397415916238054056736080727232771958746841502544335415793867765604920099299512410012694294845587123979992565648282990773370031802204821289925276880875053579599731534727793248744927742221135183242238008217153182921573455911408430181518057653653214200500000703260964012819080001436141503034442791198149889056182803222296352428817532936215125882702490783893709566206913948391287114746491303553239565804132032680147043755756873229954560220638365396971163492734629133319003878268361845375940064796418078778232396317718420641127551212300265513167392763049533186143921900400209826089031765755123358278156597551872137587019679864012130856405306287235946184183750526774082549427752009682045968176341632613619298185246904731911263178667098816996314160156873963710415855885214786186295940632965398914793027520556324729233063590459698188950605821507679066645668581019252085146736859369709945394547801916622090757000513633646166747829918717711598210821166429154090696905921979185086952824327530156407274464635761451811710565862829632298518291706863453665447913544384296871767223490350621685346546342357489177682913978692516217742071549108306660421101451643059501495735147984685856489084027265964321998544676682674884022571973813849068054523981337655663075855839973208395323629390604793962461718240967258967514334765929871182473201869768990518072257503604831303304090900404767753127266491272513781726889945745660809921200356688490360233814778927226790224007663557907045170540301658647827942956512296133832570518752179232847887639779835709081320552231918371687559318347120582496700466061105199863080600042907439987875089928783000143174684324513002810066035987609912438174829381173577563773193371833446485053385603193643783653242670552315542218932686536784399237054138112985054445042718809544302937341454403118542631143453919562433997406348866192744483108472437275303866027225754062363815981328846221046778005214714348168387873820567153552892722938071188007841671387280211003610726628200048923582087596134421147088501251870232686737234040279080238141165917667713023294831501865153360483696904443086551863283906222003031285901292516292536508654309481344222886204847424895710172434481211857350094092964809521346928387375560960720046656970832699546375753159253726945041558843416828351832784650563654524124103037981790153175994456094753321104257159376560258786518648054229614189231376317411559803891313861787112183405304244154735717959805311593210384342095720622165073500993304871252798281252917925174176262930805091521324846352677665243801101399001805759865317216305119701986148237034361758375240091339917379728014529759734461518767431452794639633675970505824289496761960761110604846481697106699679951010149926000974609013692061757465195348864049943528884455876096183062965430325321960821959572934145546367905885210921647740088088170879525338156506964180440481382418526435820499637317918683242672748001851103894110672430880802516180960572485439311302959928107328169241266605104648728380796379499719745784783972491428960850552379523141271941247944649159337677206777435820591540578634954374266413707005217861586088405244221417239291800939463294668756693849843258326318905325332327745708648363094893404136118363475556978026008253606459674358493207587469008908101434393484941042460817076763749947261545056010676803809612674394022996192545138883701183679244367230556973041918138400360850694465122462363685435500059362284802581575535169111603423051166612358443342510453443912777140124232779921623815917729092984109481863985724742121059655591624046886283228831017555710805852862588081608339701716599638100888760911230276612066244674974215391000843596744981731230635776238141343558335108640871041655881861455449253030705772227013964167086045054746310638504736798556149072599685374383813833578602167494263497068801049153004001069255783013764816652483055096929090608412652686626462090576839103852272328701725945723430117513547835848718297126217960252249678727662839350571538223689167237966767328371602616519549018057225734019908771040732327875824625112547183780864913138629249476747636093847354335372210899358719136071233906583433986009124079620050689569010705082118674221681878196386998359009692000680085405234571877209570249188825887853243171725066644252619600300953678069445786451293849014170531158488780592893493290264616236485327194745519638336678641394118734815630797286283251188760131057147663197636621585487250470542834477556937298934983302244775407869028357100729962805517657268751817516721406836529883803012179300181250234205740933017493989735743928124945563021393498619407290286412913418432906131458514278474892939984892100853253832570779522036839061153083799389331713401593721789718490205737390251911367531980962030834699095926227498406774283862915261516970099755169836707325991029302630312115399678865928752885782595170369695782714470115750997441169978240559799311685241439956334245870792454626175276277114390118630344233458428635732953030540511168457885233278289673516264053120411149449017525575708571763877389842910495994512974642160082911278629985474256723712840983045369684392927410721714894946702165042337599465140814793820168428240150212617190752531251168928756689459133141786241486901742260601272623456553389658879425568326579326329010735947753669181996524457475887393018214804337500679221224484355610299940345676365057383796858557885478638184207298891720184468920312719136479053324200489731026684423169346062551306407113444079108451734674634023029497509496851862996959430576667319984095980078063482648989415285084154895742558090205994910905249117386586988294640412806930882252443802326380582587890844946608455745114105745297503943465570089596577412317337662723968625965971262714814242404732433726654560921326740171430359412227154810705839391519566858042873166930320148676756254423368531735959950974554127359522150983378075125350670542910648776658730214330179419112652092492679321947813001814264781571735401818895042434947386325044263198203288741604706211546206377209539841394945634878417188262731683515269548141229928370880777506146535951156465019206412572603296676558883446690364359271488988923898995215168630384152886744100390962751014488760372788255604883278272136875301869720555657362440606099513180471384165604804996528388216046364535634336967020896790952695809139863343385308679361228662485937603279041363134804033196377407155272247222292573119356943415201934869302860693558917603186500344746735562486115943498811536092568738796215306323020467527088663166243360950958283361863833658486738117200883733322160407501424010065895249442197316556317458855287895054514667688225326164761538494741226301135599530006935174411344482816091925487949112932391565251168625589736019526587662666135473147191666224882209725912267185118462453117658895435560298832542400471708967269823986193915303196444336073951991584950208382854381558220720482463659732121937919191496515925622908516235306353063679650992263878698287614237470538891225005900314110496446795323647336936341377586712257580023854239351360794931342142913278331524171982493501051273554023349174116128310209566711918687058099071388682176333451756086582471831979033021498127042718859294255831501867569191330456210740856081078234930188363218120569463666343570963365030059899803111857431256857091963496258243252945927653077703217424815159672284406278920263378473252899336335387925813406163782522253491172006196755578700651520660647749605441943252224220834738999005574691218413894156016544826725172953852951567557685540417205276952135599460421757280464586991772358903611872202308591857165110816425895262298136522087818042776567375590033656783896965188877829225716899001727097379824675089808779025247404978313870826067169005635892969827774249877131662075854446770577866834068137666371741404408738229801293819355863639283100687709518385944077481687733497915754369301564918171995107983853865111500221678391398006755473236324335964873483226619285481510999599393496589892791592613271367797785853036361268941259679295296450093585168684191405783534676832972457659227122682165466231275639270506533334018412752066883611431027368069851572329492312995718218659615771550199251397702809774013026367157755825635217258239647658375057955344237499740590568170054721244050444285217479464375655702009154073931085030803569814773104184644681081463026369921100874419123427528453106563021052015500157962999647438586943211384289131412857804533442316522196088769979704652075669647540653695601186777878630008489293071380848682612058885340183327560561505797712799942680230529475510764097401748425609976824923729625811114536208975500335044981868898035694167631379991123293760447803648683776082439495482635752065027428198131404074225313901042013236186274836885823048854446147330324224887229029216738039880376149810205819846699667343309198670865917791215750497747154177145471687142572345790870591866159287726640129864541896707840125276010053711392076524406287701031212487765419801711011424914447613210742266556216256611558318419672322170501165707248577963392129672479483140806844240465400607969512286885695963228767965520809959732761254885412188182152161965768767163883197425373275060387761244515040214691362637268759955271610474181178559684194162227964278280205296554377308207417362362525476432070050022266455460001779215965507534809850219375570738148428155946451748545496221288431017006040831128183104915632573300804984923507539284078410550981041179384535505418560152193638594417540873385396786407593334762523940298155028386973811957674561659900009212800544029765430553565213414871291682800192177362763070847860830957273101817315598048134762121783197437450333031969269389925541111315892235474718336950216614567170662395209001713911283196008247015809363753871807073956954148902957996245928793776059117710808969372799203563373165734837001423201305335041999801629489397778550005961458350347916924892376721140750402256451790360120871464972635535748860632893246731084213691768364142008194644034018830271319828385214177616967797626210360436547509800175146218769272817269529873123938451913678736357813195885367130876397003852869079102476654520680445367504182683968343571350925481780284809497790404177890292669398032454876008882721105634858077855021928389732060275264344732265958781214758805495028892577511425567664414420133110565350578737808506244641805623391797119552002683296259089048772183558559900475084745376679609201398782169847307860467306684276305507962220595719168870283087697173497588947766791666437684404880369371624180432260245526606175680102893091042302841304944523916913905353817832931173001226754014524861566181173999763755169268816217876993606726946188879845980194788095152600229721598322877981196684768276741271933798993244822776407087099051724623128627284636535055832602825397245932645920216432025688440901359233049991903546193130392222915257762912681228254089863871396974899252005575992330692233573847566596360344797353051182363046382923951150153185383957072913247650816098137362913787499821611034705795399846510446091111740547699715488704346363145777527364107988622784398461826066912043614306928794667157683771019937089997836701829227808707263080004963445310001485827426277548610953773077961595664504844616535037463918964685700621845527671773679755111604910358990107185548937290901609698297084538739014766874595164519297310686156866292411389217617282067056040944256643389466679958334095941712112360306898450228536009704949099626289932680795705966758433880665308429267100279654762216076649883501721651772302062006350295289484679860105450487587259075463347514872363668749474975833858403536541442498919943200394640428183382212930980273812606242237505574818958328413957997090965196901686792550558368911666913388438404334540622183858741258104535861748814633013780273208740358761179574763858392532813944450218276688475229211151284632969434249600340758251796368048999549060461011047811322562717283939676102105992608723509982303631511142303166415803296035596007688645681868404778925705969492946665067489939296579944269141620300293210438469661100976215505458094677666276491939912228476167867014942521180828024644901713713158864643404672433580519498537817026879049518195761215882824920009720104002161153223564254994448666734034791086351710583424089400604703501919118281941964857986711327016512490671153819690557916540453468363925882296213067026109332981738267004592603315647519914944674442624474075704899287224366431189135289790775049737374961480090458916692139867943869073724175859293305153167484712500413803266646227809669101105181292195275319106613051729293722834169575668308993568263533183833457394349101619924945567202117341268553712279703740284818960401885356968567245481857978213701025790611781522006380442388911619422023563275405748052563215857953528503855849797441985010551951151449182817262363215138502170240664653237654970409495913426466629177650649379650530493442517727291695654192846704655241640081697065037388650559838572801979304632276051851459941905147541946700299974561412148240284797777159870263083776052965482650515008478866374225996032784366628781771499374120708809147760702293871993620144622515794391456866756969420018426114945074676890012550771851455311936879960603834609674868725885901934621596682570421925962731913092720988078546470553705684013273105309325491149827794121200692900788958590496912298890856743723450532540098040009405719327370340975660974595325857099034728643010222263063479594182926922579358322996411106043998289466051496338889020676412179444801607409390384457342559595031829745297697033542968855655353082873595939358978867254960254795440116532937213394303906993839780033267095056023562533194534399562018891328893759104884420650077228217122135353243991872570219104095388921762382522134652971211269041893215196980437793822818136001529271865902774656049017723821866520749882651514268182110830633560737796518145743731679873004975881649145808152786306337584860841526424054283189269649080198613990366650753053363619455689602089775700109900682893989580363099744353278199593306100798647467138244841541920357779488754622395482030873415487251766521249093219113247047738632893754129858029864807212264463886271649016509374684970428706646217868965646785192289189342447263649795185917080290382769655635490020221925819220227552376577621484872802827481791521612286271776143085818148532206680075513058931916452607177220820784740639920190579664308106329759353944794191731285294627303578844473966815428684298014206854050106956170477027024095823383213922332252223632637344686362232869733382831356502698746504374521467473952998548121957704178210447397002427540117166404329895653776195243157094121504656846041937993020272335946661191153418341702947348326273944454049706463371013238798929627395623730545388070578484640931353860921323759616595830367349226779175944592952787166742851661131611018037455362642934781682697338143459815773489459206933026544977218356631280420420679775456601485186444701767445738283082882625710699755222578054228915968527090124441591572663567032784839006647205777150647560847054214791004659448138272541176579219265565612793331511702017195083227535384859251421930547863612888214664206284742764136902795069770818555367914669116984491173181723369356809980322154234937136079480352093361025854316635824467749974758825285946320913244126558003070125912965699739258529635172142967239414837040465494147840191595320665025458291577492619101777048532354318826112677485237839436154672735199040113150088669481321594916834109537165210696818712998217444485011823076983144992297426270135325954966675109773676813155703173969513678552969769225204312324821299244597524756044007936974322205056707054856846424507527736944587868616952454496236955817532511073497273685145765006144382104622568331666294159273030092550090816169731640854495000219828395218179498288631648319409335745222994433417710211190714788116087657533578916555651080374693298722379435350996765005173817673260528398923588944399545441816618311245392885080685307539972157007012343493710176934702073899696921682637639616130178322709789194960091392015484447214987509416593750572735536541775161254337855966161265169809921888819464817779812621958416035671509213432650974622196964904525504958175407867239292750579795950781467928212515798356170596284207549793550061436494939287196044893372567608010683257748210469575507011980898484687360738363550685913088274171979431464998547208358705354147733349610976734568398645848431731306089768825697156215614490696072442443172741426435631787626307235679773360687450886740646721380671978072245780714504360901472535622559458108769193631322944720515809699005995713632807299777789975746406123568268786250966585564500105191774137277764524271343381299130165864636652832329969999713074736456484577056591281677072297167930172146152393465751476313175862493793958490694906677663648136762512683902080380019318380494421589993057316495231276391967442598682780334787790667660367218211410659219845304740237949247063771563739735106732578468271243822693925069752455421988308027976988510440679503520172719715767250048487382562178040954883574853156917235331922728715286946356792674088627450058005465532481076667980276071270346098930452195751722110545952749189063523855075271242159600865794006807673110415350766459105177723650190453834616573587208793843558664978522063754851996002572561094856883227322270425276382340503376986919633691458138757150599408581803695143379913588828727104879003824085939877083388524810767955953454344405778963002262746816692910134797705898993194712492821734841685084448134674645162006433501638001351201286577553630551533716690731045230792236243192783862362598808230905682755006441158487884184378740104251404494928413382781463840656314922814996633093890416168754842978469880959705210869752246126078587162151302629933883166057171118548790036021662051888677269716231980172392011011853337332301023446692753450395132460258438622599675388728371105866832798508791159456268997867007516939647273425168715953913593012267264881028147278446530248849597000622786224889882340374977313653075969641208891354276671949415692831482587318037729120561149959321225553419901194761127783181722232106030700333096129234891900136725309331937683328240043518745522578890200588023338908365391194062694069475563347490279484275193406666977086120528396333743636168506237061062643003685639807967337791392836336066740220727344189161201476974267814820080104471264051884562902025831364208639917540418533614406666662284899754126937712885611632837010232320191980452901253421524593452419417179479467892392367268081336722609248638215924113682459428442067446637868033945448142068842852191708589485525919997045684353949624249920960945043874379025545374584740494286682692633952664723237499873317950309155731019757463535014466192508232539238993474476312331629805894214974622359695282886408844279574347666041215886194942678974848518200444505575031689856154940188392354842964791465283675054608191927408809806453991093831369111055838031652009696633739103255044930633625706102532954114063055017829834120206219245407562972965292008537768908868125950353816321734692969998199718997673865886352020376521469061922677015693747085777077393060209244268228091129817517959599542421304446507889215869257186163320025243449078060182947676915098841793849598191036003475732123822194059234425254933379681712435050283306621408099314003090876594899723959371429980921470983723651720358136795718983027004497800667691840769142544246532828402917742351199978170608843636589220450642940394944102280904990321059990613758454155596951324855205084460074436129280740311819243579151368635826961540803907911386787621100977350414359808691381250090948774853871188873614839042711839340963841162770856806069082666599736547825360078567581239156144449098094684792783874218957168351428520089468370769457877881456971326098277999541614824901172882773268679185397057449710403435520758375092369212040384649101884902615804082826170208900352618485217208388579417026267318236507743221409669884480202818656096231830434627375743513049113958336313418562795482508677563361167319083361000565037197243856724216551925560258994747081017580301687470636566623666652267065165673408226625865234341062759485751244303219103969044134715446148543786773968951904732409454090099466136820847115656076001808059415016246999482062406673415894992047533234489223018777137783743912727040447829775292835077183590835827914888257536636386899586104930924549054014618050800665881265787712921481420488702994910959656087263919758811969963637095238715725137335403434187448698482003372493008024716193926741914952661897166792491499558424792370955030877200931696409858304251452407339805304811714164530990302683106852576603938044144357993086923703476928452613823075171552856084527019559845591355696799615952677701319734510141809433233997447818666079326761668005319666195942166548823377294996919335997043970503675216520436252676046838242439262085375779451128466303602127994650818787795573484326192608515676193914365894984826787349394645818758422936003144885948390659443072773341412223558668119328609195859218153780868054835263883586004277367492160077502400374728466852687795527197073316959317210023315542056848450335267129458025810926127893792760952049352531471535956951301522076548215649780812517165687086811247689555749119983642771348167119126930866828683020855825120280514628132318638939417186618156734262262472128211459931699030193767571703296175046503401943329176898429791106342883215762687672974172146750983531867390436646035320502646830105335736600786549463541214255812590517836449278549418783334120022268848817421553333059565929333084087147251160334893090153855383660461322105950110713948389333964347717115577131749629130735887741715967322114402997704780832301593631586870267171878840753675403664681695284246178957451861248850976343134438696083882118332963567068711362502062123625956842107895748158499247635336430894151770049517597625657527305555366907031775528152638012133784790649363444310592998398399885759473946847376203718801594868448130782666518410697333656512333799290709316420735584848744610533801336742429672182652361744345510613299122306673924205028217258932360962580028707644079786189077313657226968904945666686802188445480880555491831809142281374141376245797349874019356612586038955947833071468995621570186382048425850477250224850942578597146410035592016072890434848142249898142959050070906430424873983620584859954216557192827994244272245364047657055809451267639458872629298695519748794587291041718622602301840193453724891172705892456422698207398221127691948301384812357419457878805745753674762732686476906135143528977046443260528749756537779037458258746826419918224888580339257304041345108534293795862943840724530351025347788232431241542442775660232312276146034938508737955272048292752158849561121951801632107067257740111056522177919317420684930723111193332113912508930926386950238793180899173815143243390654899406298922874876333759512014529481500036691007047856291674895946777469542031791300447328534575399226102134235918382502624890830164719432675855754977692448807964208792715225593290550194043503038080644038167961718583397015290916968482725430689986325693033525180866899007419036043266101522018469314992210262365227491967134636259310307627733112545747522682619910395283408361315215715900974746168750316612803853638280735497111784410777072422877691055175563494087691130287940590329742419072688313975781092266126211893115626213659763942451892027840327422685340253381868721802150633885643066853964770550436348961062904234044452835929521041972463552392479795190846136348912041972676362806570916186008982465248772351449273919783729384444583685373963124005978459164317200497216028369942855477753606434472401678177128494767337237811594978729986267803490107962810177599099905395541796012296978609965096766118053018362423645680666880008871502334060352950756272350897373673272120472327448417394115057767591228560334879829447696337841115606580040548314838302003136781997662428579253842628679795159510966991481611070188915343969720438891923145520518638853112207315361656141278392468593505489182506958420059396165651765089768249735350565702418130894947724882060165955465850126939433240143414348415596016736075784594256686936593743595975466012228739694001446501693515541451238094543126075010085177045238970524776283678742041000547455887067620693074101626875332339778036057193342718631028839169621885036041854693763575099413353146079339323409651551939251139021753848404373337587923170822669084340614419244680354368929143050909599375129122236735318385351391350373095664062596415503637882122987428470107707553839298542920366690471573371934970918022806510718189177440533266029201476979990503230732012418875404599349078585052058721740373906473703953826219221369405300358562752784113228322861344575242222844614591909710975522919326675988268598310601957233243587827386621538857902643829019102833965300434851903251378694108785416647089106592853491632114143035117224923395758392932733335436511015635742153448574054427022880848324277279547184939707533140576121396174934771653077187902517364924341344084099031541883329923852784334762221714627737714224462234149951279890711152158232375694213991488247489382657177595935864497411503074121377316913897143655415662004952282022714468278818965679752435388978011788665642045456258447337395069140122320116438980944382559776880233454640056652743372379995142827448362036086213049646885797012399541070529918721869930855765374225733916345630908151865598809051964984548027822201243610398753468163249571782662052924742625260029362357928216000239201351265635206765322429617250446125896319811115410215115323059330109106610556505172754576025104597461158398618948605468345037151883361504813015501243234595681971587179020852159759652386107583708559713465301928540192901993589979787453434952533716833869391217498001082039716133226278024745423075261772191173688691211104749277078695306104347945557562466533440995601662356706586197963094740612243959962127340390698724779158195508560936461857034277550756591123332864326281797774849754080151759430413362933297470215153705353366941707388717938394693576104284540555001485521014910058086578607775264552306886748693792484103632591512057115262414955075338908291092786945118649876247071629746698419111310028987908247808873157973163000342756329046816105122854262616573896613040687170481290201484298190135979074617716728909440973941098433538122893392465899421407831322452224717003185915218372943488895778011365849208114765854146061410125343161179682456013940644033937729249075856321461378902920793238659959346624792488862585581208052964132238155305793309104439551510108911744784899125313844699284736072507370194955641653410462647091795733807955346041350677233522190086617734140645875798858250826920870743293688584077884989165420330416985863644787753993837396541130467163392874798382432448346748898926213457205455613280414709083413485581821492470452947300369787193952110165786554303502917870535187311807159463727575318755447733837992821092543898993850829715392880512252699272675838014027922368295891097464148843743437446663081004864529818984184984789102314402699055113945771928142409875644789633384693318781756976987825853948394908649547426483761168578976791677881429637384023910076487810594674173529533332954332388822048388800840938182202091023537550911289396111684597557459017376437102499290038193740294343845360390136562518960692496866961814989153164515706017162524495107488428379935986826726808911670932054225871034256100965939769576458941299320117787490856875131997614721154829445446639616342767589128623391166996255408305868341742194146086779914397476056530949694368337723449934989749060986739961688508833388777952010451300129154269633388057226886519723163748693617376640831237210825799893653025482143658857512084774459687819839035153107633767585820682363571586724604079821953688356086444879133088725897840597495294495661427009618359863560910820181323928580744272174183832744058081436591382197932652586729179517254556416306945757308823635110885925916220890763025716255048883102472412609143136391943729366311361119240780278006724913220076325450348288713472754935967668003170128548314089993736967502406217192340406375264825182032099747829298783776749899980936356832642260092193028008675182080381413541203117070170228502560601886240581683345316560823899608527684798614883929608879129178834670173899343458910004076426175432200763140083650116795976564028380944705822514234870979241231776328088053723421158536804309311430610912024037991655602953560058838802051714515396204842202957186082154594759013612903655967866597769763838630311419292889869157174485742660751051592222214959039925342949000173681809700001673327609485845608761118631491190529095144592536947702518520128608545838814110088015305348031470838631293294004376495828359983050450267240450913864404379996784331728765447532185489439166882716218759108539786976151216203449560958635742536191924122484932015902212958186544448314483175621039106150350648210705418053503704541067244199648107763040161885813511650617611912543879648632893140261399796348354755878710640564321022208023916160460964217033363723964126122870043961113959853934802732376679120191276923356985601121713990836771546539605524664976673262442120440891338668453066191892487304262662748385198616893723893621911598380888810552778587912100008451499779545403861268334342780073132054170734695528644429745589521147181185902136707447683022289478595601704000533054824505659296033232642554985553298197960577269472404888534009165289699241645283171280495323572720513412029548197915569978461920707716906226164349223888958329733737014874108835740133397205482846069814680261607548961309146121316628084728850129030069589013635026403779238319730368269250350233233795450784593042004322856329021599124246352385014979838141580121314376666877827342708656396828721958394051023395392669944910832650829270120388308509838397215646019893012574647075822092757122950725786822673771996831180054520883404464263080472962781193394256163100523783805736476308121499046498331315250355652170693910534990315740786907455641861313102577584846666543342208943353871834350169242097893589978646493725207535705359363833217361341472881373097282996730756917818092920264019624332208013450846489291000538790876854845085870087161376274582635807799202962989600582716539558239617895453033439966118653285661270213570766336746575957133695194421769756753997673915398801154947215857503254783145324068383972250745092013495454474782721056828161044860563535203723606270810453768211593076294601144224154218708307135198845432069708622209081094323577671495052664951778256407782506429862935493705386829092334070765793361503216887585724260345737841305262859714604981356249752554184826883482877347740407034149019497748264147011808355461438843837858915500464360570045413553145829030529083453848411158597000181872160622582135128639593104000446016122210813103127148185075558882606504246215879386783421801256333122429243361043306304981271279795449557036748776594868063324119594934075751264612187291657008276658995555903670402896086919897715041170715473881557932624124963203579096017498467599584079662780426524602431818526961192522101563842922787513643607088645504056536315844256221338918491660184551065645812576428442490023040921055662226081688061255070187501496211761694198678475013247052127576357940003785045825657564099999298151238580460572818431495627171101808683852134624030377714143072566158884658141538069615878302436320118356316755750336357023832652230067183707737501628583689250640373408864199355871381661203830635668837540793408404537315300796855734913506241037172743832576311549382651671292442712125237439242801736761806047493677033684551151201110135665161948554473016653069624150338085870687563193116650087476641632308042607423227555570036613222663870874176995324564456479163983430514620697912892268937650386058035432967781892550464403252971273668692149206074255516782115157437699563404069233115636956424246927317207387082452252687605708922031060657585565749226342119936006594168971073379563494512670211105570425026200490770850494912137956119786457654539035352486898483263264601348141331017537874402949299813179317207544854612140741089810110853174420986125757785369643845111868628956759282805561866318875514429072595600503053946328992857058202420092139103591177439317100565894362567642554108909384730851120067395860625434723859689947073199804294713286346729339088913015501470957798822845249119296997996521223121009289589052775555341473831520443706278576535916613729692727076111336166117001912703664078968586052319413932982846060501637808288490314392112330449867562686471332836529678081821653032772858558241166200200174421661514783818840855350602234941912412265360166317121691427133775446696005747855363407736476771942471096657882648133043785341552068757735642955900741715490319903020787497052055369582006983185790310770221517833288250143835538178658726605351366062272918815260537705994762536749827666865470563067242003560651768738194219297136254090327307320926393204679454479736748230093508781908073226471347353635815542756487874599878237725589605295280869265869887862858707805038331753645450080300351200508573290119097953371720899901717081312499686514012961564814093548238884324652080453205646062662931327260078571882954411186994218568464642517281362021038151943156497678934343228548134077289170507875731227976002223156927091746166705476414637553481978491781096513417197883393263740423598462252251729696254974271641325642220278792323700543949681031907814332298573521759428473363794325213969993392883253400256339904142965787206246123690854705298006749238896594305761239891773281294390901579284878387077168354925784711320768292170609929013429236121705749976995905570938392743652902569953696206198231977188934650345567822343052552051555669671650823274108372317039446244891004521911109084383522790069311203843984146419540497882164457442349781301797896964408021935403685043048620284752534306105643690000796461556821973401020156529700305597004074082871352092947745334444296641661454108651151582516739001422623576564678699336770077792588423420381462869611633147908599159165320705739451191038499171497522014716303604331835659732327646267152442983283376538697643362800122767320035510663896964668890621466266068757968399228005250133193051284462286995011892013309474539860313268925416231076584069248193497813803161228913617947372856592920380317372522576286818406895783131361852152777426541521823123179945710944823005712909893875402915686402946580452987421453906386587622873223349328611477288044525212711248156839318042203362426154496801423268401268782054827260125341266272159860173458892091943683363852078606944986731844612036466541931559927003989233285966248813691219608986815218153965157268341888516473503755736889511777806109845108497177652816986460939194023225115692341887360124420777435749497398035247012782708662191167887688269046038110750800677271279124815833723820570373286767729168201978131836351408520216854710909677515749011483134045441942331496975859759064121879307049159070412761161158568432411848728300301023447543290334183032995604847449880823025052326445213040079234415010460128364822493440663374162400454153082022691678965085572887086846415128603502788509665747201519072340469689626238007182177822383726902949239316463472651339684425678185614571986965375981844342745883508942342807978875965503603812755576325495932332529653667013129741733645009658704043755945681082274544954933175476779328142974090169325056657936664956593282516228048129781489579164269802559296106223692595240420018697837673463504889935783137475371535284777166292114526775057824637824041409928602232930484296014445620905009401461623853282377093885383036219183497938791667409962808886977339117954295761239172473497166895994279022214041010558375751336987487030593377865843330454111806545595240552498990319211660039867997687340373296624028888864675805092234347698917172492678270230799939135248951685231795312226559640931891387579291763895047278087348763932117595658082055710053903229716514884559119206888141680760962910260796585809914331951048733124835921339850445276391796458539016504094958658379268424326768227647175848374832735096124746520038232562105790299205687555982782622249646392717726024323629290660974238642735044109385100489142965527422491158281637075386269798489310629856075305985667324697714650312083114018404617681035389335991685576484343703404071052001122799708861834350537873971290843286833992286841666417028659349026584712940371491654490756308461059442897335184104739949900480622598581704815689956261362419333015017462916213158376806364388077203057503424858199213126260459326394776585359520827702118309981072056052420638735681457807849044919637368648203878960249765050714678020246957511898016683336732920327550891289259160793484244298590033133117900638531116421506221583145115498537693955335657462350675677032302309296677026862481258192220899063019621805714936506591761118361488887032676519353545250819634606207062003772505216761190109011523787895266194341000251848782591433445502403903546694441690104001506417253228485387957624793479465186132637924519319406691403028684217996516471882747815752103078888105445185357889042726381261752791851139024930721062991964885671043242710273039908135424918947083881463439704993287346275497143003969626057142461716161819632594018654744012688327343789067192731209272809406574693526563026060083035950553155852963814873824480672708018209939013780595541192101275333724321140651319514068428829964991790847370132686912649450597457325124446160982711127046323395162498991241190416498508962806423279927782365405785867475833897714834970452839610797776318118571988708075117938943020450681857894274840644064873018676054626063065967903405646821739385623401992052680933772120036131743366219432405735464034359483288527959306907993564011810481235363674680412141878354867736380866312976354978079937685137323731312079037584594808528559994646020747127446056169747503766528030384714645306949198427907393959242833791587008144005273566440269237262695513672889683883248645574148522668748514695133424593031671936496652603602234827289473042783331190539378145891459405337178009307697163367232327819024595368998918781813153001131484995148778670549579375607018742919042592427009016031101887697961299024077997639521204909751247040704934870605433568111358601523248765867166338923108234174550606559556072139384872280948291480463961509867773947956649886838921622686388545385487525387747932603437067481725667352471431042316257338922030640258785785886344384462574291996353991614084225460387406493338454688487701860972851189372019075490421978349963261198492503342222108196167606826013739236983658666787107026847165015339686195327868587581351700948343454695154499048672482701609231066827544620466276141677251502638720850402753030201786790886898718471514810629706125862157008752850037964733141712421939237245417860914306720356317086384163125218697467169871630015269723181911792183664133374004021500087140731668087671416591458629873562747700228133857372219159294189023450342703586923509633895499994365826255987883888250686731744827117205832255022790942719474619997731740273458305153189757476139990067488900035145095468742858995419608878593472790251759908738528445940811608637520362510486498042891220326289355542581069481725024108955049374988910037441697187165826423246708256985792540786517949355088917427586362006447565718869557067569451310520114882371061769477319128184154932407336917450958192532882571498230186905821692783508765951381310098353747496669924184524713787699838077968523443569433210853255740818114245531574436618084382939795054089157954903856817614321689825689026177979333390812772466030333001352316239219028876478586785543765630270729446292768147422278004271733747964071228783284866096047904625820836458241188693984430043834129758676077938381376243176443432736753137947538561679547099322260037977647681402067122884353690966407845556088393775758699019608795781771595247782835761406480511588123445699653970652749847643612263096661515829818304793372623468304591516800850568804998349915440617717574257980690954768964083298107412717529743796002342632024734972852960496630617111288308702892815340062335941803280941656183431343652899740149760111948060662505914078111750086650139993191157253544412871310162016710110085508378297511459880700088135978677951242048801885395598064710880641050523840901412257882317958780896013108576055316960256078700353608077613592663801203170707714733981798986538916374453220821646220525889271200631414280844316738478670844246602396715809900670446962123217577687508228082646685018661791525385376588982851071156247109163483830830028948714552392166196961307943824372857633300175187563414832998257003754837570724395724866699392067462510324714086389048958402983757924753933864327160250143066298290289737962776723526750411082055134532869346166084263838910335693797138146512661149279489664518927114635666599689490645942900895136622574719016365253164950383767529005933051428460261743877365200190194316172516179224831999575388319757048516279959716703853013734491582316887068935968692372201635889475931564688369130848116915419717602604893110152088799106150224703982205681817401225643124544896290594064066726059159234684477672837883685745985036815637986143918587950573549334898581433845246525888950272380559341304152203397688470303565296919413679579221814877551145597740256542539503056471872567145763025440760215488023752027386776775096679503136141941130100999130260876062961465079614774981958109735989429255775477885922654640758693018748251825565153410480032495432407429006339697597794108057281298248772967852324447594192571734973290505652957138763281094405259643377111802108962561387867474296600793046026763998503389108933480658552151479945661886604132907611873182180908272686817046649085557265229833588059379801979000401171141458296966908107810689638610014708204774364716250162217505291535269596328565872225892145748223869138661593037791211818013618446182941453244796351219028745811339775678734792424358205225643054880645244345647935876826178499433564979619791261826140658831429197993145813483522669593141613338421415148551154331395378262432313998544659948427788247889409602733361680657690862112225202775970366594870566520444462697163451751998607332287831893034947742243032389660689054825243550836378761891504085664489526864294352530866413188234775605415148196871646829855736832774790556878739478063844683916698610659267829761516347060274137270004185044890734805974050300208510896732270318990577439608253310907120041997304285696132633818325984540535797322981637536406742833871807276617345541335022303077298594806431661755977521764051397659264517358773750569418967038769426881436749507865307988543494565237138429825478718455086642240738683722401274111256016034517041486211015719596125733988994028821089483935948382750231494361736043513486314241101429942558226253581153305173035754093159756869634319600172909042173198405355300373684576460518109139295978070111358007696498912281014442650325493451244777877148256671813498065512554633518546096588688715144729687956467699140970377964024183119955171358680216119750257013832077393591445056880294687302066048631179226551187643475639571717709323718983199043909128158724387632996291446984308943992641392558706864088694822370783146026258058890766780090582798836772458543373329592135405578675616152879229358507487620222349319161011357811413753899755297687655080229215567216263012116690937585916627173468806899155019912210061363872764975055849129814511858896893913842285339016089553720312452092183686717812646163552778544086396763266153698391141550219890975341345842244391483531093965800018166711303903541383042450896402098373688733121076929121370343375365558728512000345229921867578294105355130013638218912434738385533042370963223836680345543185482119999948847718690737806061816608231042282244700181086541440267266369257051974682291403217696370541629100815084119561535308849394094966546664603982758621159406797961320660527692458234175129528821113912317909281343409926520315608749816747982823066440649291553928255703574324099514523188059683646058031413007725378859131809925893756392972536924430117230694865822561849246963950080171678352187852399736164775877820100882563280790376235938370515673130505285768836192459881892109891473390430806218186053457337940340091223661918426439170019688724439557925874243927804245502207303661598003262074110567846990666261628913171553347016368185486980285179042846658230661408675989427962305055713640153696054880192611622516575441392749055726376240369296085558529282478965020382891888448568514091647324175438184681201011247660216225608574534047873155904101309950466419956678104455316563823661288048915122429519252156257829825185383505242669590599889524449663488635020263152485357096047437083754741318245340252053677094485439312526370417581873999319349802550164823080351448181444788444469542600742024780520503352738006120035825282314970544451897860540963362576630160029806380998580397970981134742158391894617153199381950116226479029368367877354831112750047305404383381111931361790983240884345600578656047814290871148375779752154505529215568224243678990960786203103684511547113353520136062415648569425149061352320030313743448694929206630297191815014881875228367016826195094858112543613692191663767012617919197020663800252378327404023208624782985551553554186833376319287778684981049030478942437645200432446818780005864576512990641636112505917278264224506100050027662257179956886861895999650203040480010650889605015928382963316367392226599890760158521460548516868624949285452628515426810070392704759960058060087571898759344977934629819258014549516407414820542512518614723670434324308890280652270785655489624941865302482145987530123780084080581557819682495496210521662885975486694208959641971636786605893476050323748526313283780745326847786483199609305152924612574916578493320013140119093412730935964838465451108840541207871653938557818495630268164204566647960434864924216613855325842260776776490337787519640018898434747050154313185145060986125894746618048026093004239925389083843729414285096957275753203921769114855497459832784672658068719794644829804432131550807384578854566354214304680552691312127471301414516658180868171766898232729700468057170518384681502747566490590775954555035436986987124595404889444750757359525572046960498988600265806920737164672216087231895491118614146528059514938581585532116613338585763732734851505715626733680311478857213750697991826570852546994517850599231200511036135897541025142984559762457071711830659334591028871387953451485590851556393388196249582112053183186535811840340615383911671207418349651928172947324604408694125118030724615027011278872203786599512842298265776798667565056200787368579379748929875353640893074506668893312886596625541871417523404605811610371297175263580868777583821037082940111967467124319384802963103095242682172756799391989042098919850113725394247418848980014404538277720255585853834446675773820426315581796839005688361491303512718634641865093963030429696795325260483675157555126783773069934266857581517642126742659525657174990849454281796762660110775937826976991695784768192766873945013635001147917397796886172066029262500477610521811460485267262653433395481119172741718706357723287363033466508435655473630845673705024450596350608799218321536893839957720082811768528324940848675969403507916478727162281672937996032253007628213130357345558394672287446186780572810061117623235613965488652954059385128612510294481145086173087228114586353536905223689999134153675097482835827684367007310351635242648577094708637772184422955884798933328697013533566085715727015195094363234110112785260969185620598218589430976165483873747049428400619016389140962565607543026928686242192474302145575295470378055237301647450749076385942598380500321650672152041409706388669427453995225159093028884371339728618364769563494160245876859252252728890226106086428324083965745093318345823866489906886842912589793407835211330334906727769015836932158931550360808421194273961141412437804434385856962405808722613640158715302761140594088029237630170425567398174177682177468447597740098311661755626892196006091128525483048029172002449863221071130394925027546809534527143141869052671239264002108254756318503253665258581972938673075901102832299731066138297439340874995261060190660882273017801806137587741763702161982347474632814157062781175651731363540653679074560660772561958469383962726772582118336366944617663839604656364150343878973922662725825602508099878659524272818368749692549577177455590936321294848458062580564687490770073862060745205357580680576285292619774009293940299752967084987326710293974506988100960093884243474706601542438494537357960113432656607268288483445964043441132265366471419623229642163303557571780654169565892450867451023617131412696579911910141782263714845046717538474183054851065140883554989095154712790454174234100312189640999223139211114101280611484534495106677545701683005780210003570814937826111889488115330320515210615919242560686560420691172308800098908880770379293385070230862652534632366989109406083171329191754135913629082781205237263167544339855182493952617382704579084866133629207907942627672875554417746636845393822277588582580077111952687369452948495262281085240301067865285760779685264017291362271164719343697556509665359549954279957206824526457034551919158643337703115294949526844876064379828491760284120283020178377228490748041365958555200595349822044376860603693205646139008707578900346800598167564516691146906494383782394730531589265346640557890104595648623199463096644778003330543969495087746752696319169110955274719861782274205061989824219388048576897511157527078983868005522161972805692137494718359242656799411802686633351193532412570888086186519872552321823551545905351070062218701349959487085855124459247846359732213809634988202687576989414091350061906844145305403551569880914991019817549001145023700186106867976802317844286611742723821261513304818956742361155006678713877118101251951989442091342975483527082478454201139061870093059334830424845964877366863610919526318553979038609312579746666600030937858679982478610984161420884417312917677582860254320460985054408622088322552366717251447947442598971978473938969060275253603771849842979624418165652049059237393867591454329971640848181274697627732010757303583551588947191586605753052484580186545762255729935137226664410558321118913926929679141440482975001985292481558533901899516480085765573586649568219010384760809562277136706247936253387511140905528543684370581840954799901934423659292001194852562750967652668449611833940980829980667547748922109428529284654336826992555005838671589081666005834425844251733403034950457753605480394752776875657983524582330722119324458196368727955527011177621245684959610424044554383034302096583239176246765507678926872099356723626496797107579650445506381995073522882500406431597801762248335444313268398772124385025694038149986415643361022132182210050487082543195296750553360433088598805025816891286840153415181504990668133560679306157199009294995706509710884784846344367977823900505967341725127492356844788509833276780809242316081498741939680598044954295948792666441749428175068763132246211708493618150251177399705688920041079178538815268661439046741685552174178677623544864209318326576529986078715104382534872438078059132375546441987857291093430035896319927797686161045682422670488159831939324357259917531499206264858847182700585076879856125187439349497925204888155127175855617728862874691922169923343876308225095899850394061953128136815998236806427640311429568364216304842743749032251687301707375825289745613787132101895300094013412009599305000406784765946655472203815614400368485483956119189604378623725857460233191754644382575238098486026629952629562506653355244127588049450387135742688045136669653409908951822576307726066933748170156894508088022567532496476427197163647004790284915063032913136877400885273409070635856864232245049031200325893064503686240175415192914879361454648997518980049556308696407404537810193421065406828777292503532030135303254443192940308708797440912370101642657937662604494287336857736271893563849576845307398481335979643779949301124446766985103661081438307463104110661641017512122483950797048183014421799034390836441136907090648973299431468397053055717091253536375057415484105625687442196460896655587303308139674362854032301206553449652986414424424435886248673871660247795109620762648961151385323079489678075841266657824300960979687321942476374194685743485963666822836927675574062355434649306423091936934251059508766480006096162742052749250480707948016920219637287933771682072266321044705304910786213678819606740255049255212949529004385066521252979531278401812202875123815156279691696261336603347230849098120267011070089683507878047358032277257295821858779052639117029579286468566555129305423937185014489873819743390551732122723994231600658011237150894822608634343600238636995903214967854624672365258952107049991144126762568768652024663358189586268271199433264994713074764667076369428455335041805758780133466264016696552893228159576225914615715628256737179863092412540546127863735622605612789661680428427628629850239713454755976410939285406080252167721362029325871935951545261376928523754954915021555304443217834030860273372301081774608537482176121758825502302759538069089996214937211821833540015544881262529688512446691572245821630170377021578476271921110393270830111264480839326583521485397094244391435088679472957914622683419666617818798215625652867121267708614047359044252546293387734762534017095591252040293403413017983397419128351220215213126001737323047949131227648960462247936815747664261863830468730541898214552306325376755218840836423543882013689844204755738159362831110627945178481706548509449804105054267538455526513487146184115376715871318131993439125353593286537373534979336228688883688275798057644620876571163894262639120566572967748948863451917208641956353861717748774896723964009599372082130553347308506404220334078505062352212257720342826575059936524517453600886634984510475551515604415752602493424404739246091809422294180836183236130214292338982560544257887109555651098936855016084613746871208042812755539902370080354924159660168132414329517195218601569820656164972249641418648576739294580156498527749132177866037445808726996191242041226939746549879068345649389110810725278517267001336748907609296464032839516748322431980373586781055867078718979009405571217961974825918550927019347239090757369470889955134171092010200564685772365898358372686892653728486095384624782134404304870162106621500380664888047454010530663220915852808554375421182978891779018108749847720269910056081778320957473282564545631316781544729494076202491006555393143298612967239708912143536654802059258405801440829101122551397126507850582231359485122719533550499992830750207597005376300378574716611690909230475356628252190035963256844574618440926408642481035776893665635033158389104175330817170039755398884485345688614192312443023023991686827105444117270442935924843942801649119509241127831583826071646175168231388785524586802218505025719727537139838035523497257697965090924757022688884488511346704287307542169442797558424616134548192175652321725305581975441306800806151393952932541126539825997378117904933541797858062079776163551674097770768255656942989168916627331202292431391867706684878317767448048505023984822304088855141488863454137790111116093937517676887610811327238258597959460821421666531416640048015186684843976125644926957215276210930833874874014268127021493919294195479606757297108039788760012030488304098316575910904385008257382065728571526221428449225277675986037796968643947303639188278997173523697407111409558447343414178027137910214370788178959327620326329484888029498968951033860845675312912360989603052878719957857256481674232002602123236231820190578100476500002103770761081711455455277990290955575183520060283191673582878102321438803463529893520118000248003928080540887779882037341073845802340174438457612249725876605451449069261109790609088294835434869699089373424951196885065108591795814148222738607897579841820715245186550333353822094959611173953742920878455287255403784268697324893695105262358959562464507188876942859757786674197758928969141091371004476791941070371008602383115482765227126715350948503675020740152092454039002658523626923833671476055001543988973611257784216435346422581333111215091578009235802668001384897370425951756692425136426668740269574186454475543195832906145678792073606732824631828156748755025880398015999235858023389054936196973752256137811068901474712776070627328112429093146641498879280241673415779449438111250245183999601343273723833882719449362181530730567920097721381666784261057629647349918318378569469952109564168625505678885475585833109065444825465796416322296645836227484212220121126868754589506317574171513046995421705513046064417287546132951911861139493358911038651929226535219628228115034500356381884868154132765895649418789088714447350986122131415943544580426027243446327478133932977948259435504944938865760104811993424026292931757263558424401943659761033751243659436382916655380660753870239914141499593352852133978786927832071319528236747352437674054045745420671800270723294257504965511391523068516697438294030459260949929282602430369053089526793409482680968035102954395542423105681669382112074641738974217415170143960453308882615152379884349736357999775858390413679124356904683770050793913560529107609307758523417916330970969799102832920992357158404268568045604021439847280182408389082894992946693613441736629763604402644485705394177210520946947192836027763337025434358734209213193205967963824885474341228201237328731422588358930536520178848402885272082626242837853832322417255861717842449041912207748078629897994669060844498054117110345173851376888390571640390624488187373334950512449653453846935812257342466953487451252282397517115207438036017730292050226902713398190703580445023688017318096146222907810961802470092750683270252337963535657238628491874692353641896981174999959676867294680762138238169983513094334518230857654077159057048315105062552507991393349907968605769828882851529761305339670011334203761866190885193317894356488232288063778299325304430960283737365756444563579449806121118052162393585073132372264547766151229285257654211276910342307858256964180604543633709867788821471410720033974781176294469177050579507907269564439266954745727514576491503843326485432013773602045421241012045988342198222342679166234261580184839287256300116690147562555328495938791526279096760778151211286231809229332464093293783671084050691095067697335925159107870074395912564317388351121437029281501318798936593449857478708711034394534631994889801980727965114228245087114925161088050413205854034849914621593956838633197608702384917865343546699128849423048786927502007578171467830231358865512638336915247624933773511043029782835691808843705572345221958930840007529055091008059313822887192997147208113110304952902057020327349654341672007592643994349172732937397036218878872112302139722122072179683372922680501153165895742849297828445851984718276030149945095156051176376672987203294548199413119517469291734127768837610134331816405439689568451539829236154907841873134799601395207109607909121366650427907069077948516793352386291556809609288525827044863731608819609548543398615460258501969441067732233480961884573944659124510765224052006562309618402699133974264114443734889571767910385050382136647081483515095101658895536779723651462072157181878775042010877403254783068641910919418028384292906031659248211366396641657210011337317485077262161100220960471986359985635485470224882388011833711232059026867352910368617962507245545034066601006986550244207532169913480494024292696271742378073173498946721204560515290542471904428224309036986364910605462020088931450937153149792144001804958363217465342386619679798825043603490723349083971480315756327490166248667920243392887302442008910295473867362318455381559225589165179020251689029163471578922759825145997830975313478158716406509223689446744724179283687776443927756375659489241418430858878928975947672641292389364504778725240955371756308482976859064410201059910805968594581078798126207494392096169520478016488697271403331345771389066480044576053196343288240557492181532528322700231795109603657648174899205897038491181132269983859298469439656100361448499025934651841740868062168642454517349574621006908077283607300116616096653475157816560399314200323248482470241330404872514747142732488696398445269148680455347549640616137461749701669363223650447027323721324280557601045857527622214242826317020163681448213054886306902217542536894156586950506649749592750868302660771917217123439736956322524778277287453443418790989397497237547674001787752705258856845375466924955164492498570151996510059105275711344653013191518943263372577057739027822295785175854529085683609373055529210037769430738583833109236896272958245165651178901182309856441133832326761510498395629598982041467636411188869109680528877927369739501751725581574507113068809073595337238191527331193462986783236388082074965661843166321472070728882672818962699432135127970915602433533585935401585013920779952034338169211895020215783945311323230079306610283453544565970292406658019389510098315832256392520799188340828740791618135066740546532917645465892562173427931978176408533182181682999373386781034318140648452626015305479179942742477196532864321219187198399318427265379129114844106720673579595598178053698214271268145977054176571754614169931485790443064013022811132626064632148257629462095216417902413578329258284375968558803718081889247066412680676184130104653524752100077789620669897007282444630374358287747661016448547720963013453273611659881545882020482101443657324657509641143149121564077851091368269813545613311156214409026220490981459230583403885345101757070200431094011886780941675969888482560136265404383480479354350490623903172867204165381206590296057799956283231013814521613542517196906975748355185461851324146268433997818209411867992519657488003162935633141574624595548693260621086267228720695686198094841316286067221921251528265282742784070984308384194996208574326509959520340882524923192071407079361839769530953138485279425265722884025071602526838998065829700570640924511212876594989894041709840358346177001619514623312869233729996989776340752724252152785014442621698713452122347001500944272080425948214388380930277701161712724501064467370436759585627201189630883045521688968647689244129678768219256573891828787528730231194524357978481637032802666576010372301593645629490723158512241628495182548663497267261726468617357884209731174585831793366983219756336879751554156496913159519320021749639481742048762491748687013781456627503623258810620404949911886587841681714683012100902723399563690715990668387740820276326027959003081151057167018063188240280785829678178061391650176240551192290031591276085673189861363203228660714336447949227217732574846975262756766548606393016829094476867240202564042131347777078373128759308628156597597777081032869921663327852858270831894359227084508994294881507268181344758278717949995009693043147475885210383473330062149515457853947620096079264051226311752009347158299404242365271458525783650145625034954476449654471136074432396072452576242222326825733502255380436641858928036764774303339776234155552160974302245710126862420472042762765864464303766995353169655849653267513121501837788946375882900516905623105934364288733753700600312352600869689907683832236802361916142143567230019637861073976568449282717095305735658519597307538186780923527322126623482304053624290899317597649252023233497512679932212995138947331754803611097423018439145719731039923926356641955607191329234235917699495448808801627552975455363158999587206602883930110648401214333256285004103913697809278335941305453824102574920588410981298444335073896622880638785130061587505808794788246784943942505034345473433541455725212467515336233745298280775845084135917995227223971135100285069431267663340321615519992842903800518250358741347023650991506917635922337807994036122338127829252282981398477234443750241437353489332200488172141387612650299395224886997870746879166755080936000452260105207068802453164452264569016026078992947753031145834367264743131970779372294833409848747837216744404049285708667982290546980281608863642716478974834867676545330177361699906274805794740742716287103804543654601327125716874029221891294619594902757846166110252323779719294861835669301354994534153216551370057079645405174454561370318096396044355701642237003082143870440426740143913759177711321959499553887913088771677385791857518310969222323205154920945435973352898660411457887008605415850634145469643283631314697399116193241995429801727144063172415080173066045142715017455843848740328121639788174048952292177798774175645274918792074002380858474852730500843456829625320226659998601468504551030497667750258388214183998253659205994312933288828602055625300028395342373166496054525620572250241707505606615885115387572280369344482995589679584469855618341404592639769580941884075651297245333373005738598010172719476774594241220534730379917910605225716634819633097493398389321965919052479996692816885209252789547301358243547857299679795328578105241968248279324239827557640780270021989706887163075455473756341399011114628964402601796640259792824719466398452328622925039441026099604314103519483243337464344483015102505732567384526901280963738489162662902093828626547099934657045089364854558910908765927094332328039179041310928801317671793412862953493604545402832097354295995290557857815587148692909672901184193350017845037787872022071579989200752808576349123663835758476268074739395643154219826957449009345354070006876416848790836095696386512967360614848442204206749854064046660508864388422333623848646047488003077426998265933020090511426632712476828079080030637080502111191440260454674213609716365863347506389657445696224565405507913003764693514663808679005094144234201960974098450842650761163048086483721124422004510411575431918769095119510065653493093453281867646729881119905705268982319078379534457913559874747647814297156097053887066767861573700113200203427249488760210266715722568613967267622542845284842998731115147954836651458966151180856337441572952757764082449774408684947705775212496673993073120389287276832846293246375008789527192723403934524609068441342477561940869335018788543175980181511830997372702382735320468702592630255902499697726852100045322659781676842582564520464860370985786741622452191559975903836279261279482484279190215924330024072119089314528128964336296010121194699282384534944053453477435146027437030662381923331945080399001019599725645429147247884007246711200774135646832254895903835438820989766648825076914194364528526263295153638967981814805404465875037993173165970167858149272207011207806418305948776896402646850128381187682710142167859827721516306359130953174528806379015463091419692647499605259691919548381475858018389778045634115100137742374083717060123962075434675077026627160579356827137273110979293154341280217535596665152655116525650310626409593053843698524975576489729103609141395075360837442108789161097249508330503415315675771508023060440177216795771546795784987299591212417556692302274936130958789030315507250316165367280236426440483784182690211934509916221981578060165311266113366890320809287889625928807833339343252929621877850616888526012351984449806354361751083189996787681161951873786694178497721295279674851537034519415070736493870955742299807569262386782509978205262788916621565134661879583489178940489941348590978759805687844894776259119668286743156208463983815441553741056118039385182630256780281441327663218665682625873511548498928184544307817560044680885972093060769454300941143118809126310514480450695087584012504978177062309072837999211345376811009838847563316602230209220592588684043685875685104077957791733073435166945063282918037488301704572305627108210664566956946163086807531584126959053455261770835538713658033924569559813799170602710385580789317379657187259393411649573485218186208113518066727533756721454417013522923745457900067743212651498241165890168927092240512134716714697367552621683925310257366227408633697014636446254534062945213395341610558838167191771513034668143724240921708786540373245926938218648351172894448134059223003638494562421696680857625975378506563715918401030046992682398441060683287896734384011415250841390334402329696952137605103823683823506977662708205746918244375656923304303950738567220136737166724069885504814162124110018898346199857027404748310799152634644052994953444399993436317384238857465327951062337952585119902853071562780621707785968722225033338080093252823974849811365995039247062034629300907497052736019437373177868206611592502819357986695369207203766127571721634928455082572703816463712107856576530679748820106775451402330817753042996367086432259084170388366182025500579228909219464100438880555526134554318094008034574134261466436991037033208353335541337631216170656942721853743182148893391015426928533293582626127755417858654217597934241816112227126477662081776301489717672377683972077262737068504773986528181066623880289141387171003729130817239691751097983148144129828433282877661849740876867005213605227039110305663644992108141380804477324141691741941032190556277565530933937652094741165613717070631088753848306890456485335591323154120497857835034174078741059424013418996460380952453066688510832573124773708343043607899622890313811421721827438445563559866074436756952724948706952346638265402308672422989920597491890595600569821902057901764876312668548741364038621156076762759254428550543230610497645164638711239306912751941660672986806719864859869724651127210961235335193716721644219737497274315244363558499271778169206202244168148607340893889092442546949266843485891713606070174727069355954684557293852156642502832320979217674354116089350354247267015243162144393803076384169703008169786300838863281475818748769389671003762465913217054552282367440526487459255986079163611848555074710601025118362712857258001593669013168917296162134179225548826806145586418166084102080739582549344091142263508378996659579690630492653296719947415993137199920809515731139020553735068070355859506197486620250118758482604724865306213420720431279665440636914053434554781598987301564111846797910046331984708874681355568333753893179662042474603413374775604359734641655487651631650084001899901433580962191624931219521539432639553919627393272958424130663541719139958370578040831352103387173127405403270495394875206320696906630705639484138465006607326724800858799055693307268074777473175710257670873049567567787734560600963837070935555567837867132263506782560967974805616250263344049614253921391834017399957142864203633218203702498592565177894119848788970892035269673062908757053096856178111588107656117291031617428668077833765981087252191414736588716366734100614752247442445755483376297843210736104058424326088460404080009049411565090472514514321573310314619626431709592748324369860299052961296231790742093304922970363001927745260481606986334607726154564213337265630067675427732661960190644955654240864098146743255816205419916195068875958298787915667574020767962535272240357038699257495160371864918185445348122427088462437764867305361043313378432143783179869962639083465350969191171729244683065905426219697614999110615499915082675870011941349330652241935508077899085988571654285565651249995108925798670939265109870930623971077252114088958602856665921852573157066789709753315761029246959100648079801733591042878891871990608519879302355809053946853753173871899773962222385783762254845521918275944181439019808793660008880972676159129280925899036633194068422721567125684403265514715202952115560407197963368401867790770017147391085380783781126946057202647398164809127981588273620334743145667779091489198368579293461611171256758108719319870333282491999362806066747631660317141397853095979916434483297115061943499372360754320726656314624091737596119511296830322654647872405533444553133417555542866524212859689415438779112143743330817487705367298773963137499613027830024023053147504674391414369900886953782102153207566293999488314176328279556405840383855280247045426299153991339840894742046875691147988153107146965978956787369341084585430709032636603531033542843891184943331858415075687318057454303920403545910739471373657479318936875369624578840885527173846789072637332236329056681196869602731743438289482272287892029861969519024544375214758517437819759185306265973769589537118990459058223584808963950906387377481191965035629121149015416562286949831618447162453756789860369032019458381473430126155218387730520934826353171889255165641202748141587910459971146790744048950611753337976834404227287449169525977199375505676452555543927889510588427514962548712086332596996258460787219274857992900245692653329222024271797167772170405286815315569204490600960200425051170561508555442155781084860109417817301847765511906179677603155357403557874909873266604483207434379968710073153706825395741862935617530181651935543829201420886148303693743307939750021330049754358313841012395669048395947385684094105927383994359677599850068601988831226191216180062079600943660267487895594046118825624814199205528124851633083153716809504305484126033070446608034060246821162516005798273588972082980844983235444628101552325680682889444040546520751786171940156492162138193600561393813488459243353245305932129623312418753291422460857370609081928464055857726623303907404064935297436941225771843586313539240664607703757223465512583378716936981830976854726591059879940877119611688322665023728811708502065975385522052835900590312127533310254853017012835155017737182647603952125942399768146942757358032105762673490691485295601342393413351214963275070007282898512443450303258114446940184717509858475153351049899809847140090041269293882284001759249917249976360731377506103868787085377657489951055948261180591102700632334349249714391311427182082404040171131681199502933569627066667197549536638572478224104319106505762722041981076422801493256537073733528427047763509594926801028292602901951612986079846755781131559517559787369082030294600755740210690688340069150868439302071470434194969537210546478585390386719523670996014878308795588349371562531159917828443493328611485025601550097767302640001045212237959009087433142262202327393282024602742036472898672176240358453606386883865536484351916105041558777013170845412268364620227024106336679643998554674581672393353834270355238078060848695255979309389880628981481262822103787640279999695488513145455347599931029880107665023499325229159629386137325708273780988176341708471730719720162044502158557408534754953451435784868967580121802616950177072568890581270163266077853794949415291706324004095644371879931278507598753426810716292374711531029989667331474465375334747461178046191165562194579846634472545751730466983651953459868500642360975037608309621586724207003076772647264503272199165137785611076116018976342997273971387889636067342278864523203431637442422652146073027911510979410245898811603046613164079195729580768196465669561677153781406957449817638710606143579952450367096176814447738519564410119702294454525975008610721051188586919142231598777860571719862346779597995458101975431349772213425051715552347636204195324652951662780474005478455925027083977064292370192914217550595803746623481543925149426938861646281095132057468479066009713461381784558596765996496879967271701623190426916630034442786703200294262536738891338721888835506361466808184689861851898114689958897218201632941829754707126597186309062433997492704165974639011043860395651936794132437155661547442419906273383169025286602205346111324317285818440398686922107121008702341696974314233832260975346622394933983850963311405566285804783360797826108639006653915597923588091184303318931520766552437965081205028383586297787244595941769023526315962222183721753586949341811215430272057037092530131353039067098412671293740574312519945872562607952802934792910635858820752817181654294838030668126382333776111416632775827732612568806690729534747321383675790845576604152993930649261680917145519807901104171031382448606727373395717498774323373674916457535939378776652118535079466732067397839190047770177043479072054536241740354790770448773004836238970278809219448608744905216236851319824532571880555442448165791683219884305987354233987323493229030181783431895528427895266433616384160147798384285889875022504563066477798570199853390583892026495618310787798970654426953511285044217233355665337169633440763805595894410593127664613871713086645714534975301344103974190034321004708562456725419318087547894931797967731459578298689670179442405743767906506295555577763927303412794079513891799448684149720608017296515649114786326282901116797762787494540391637455533769987273219150647055359685970812543280613234091784848703954678634550382908123288461639446724153129942263922559982490863601937120260293484064372292691217431611709271540719416737142905789895481766383500922451852801006163641215972583160682302341827927107604091586276783894908747188366652626988920997048740230064825810323908325052958414409475574827405263251474647181766290566091120488700346767575893382398800816520656098387994404878938676794792812150264626291675506282074020593725967940372976551740998984508515261542800191842885770227715332549298572641130074165025949368615233646746455988429655893689456505062327083977573186376360798045458050037312317106715069289880480960571977755535233826175843392615554937257060283901500510648935736502371457147472870489885332470425045712963868935458706750448511482213617909237239275123960467311502045427000166216174630611828688915618099556297643252600596937510215953231500975050772964545662231167943378512747336936541858198713926055445867822243894143956411557288195418382511196852211919628773589722871268996693649173576722574207065873273525345325414715079782786836265388013508534036751526525127297675118738527957416602932987220578958113637371124284361978483517003112191715988476293499516151596640358092114556598120668989860403171583703592937313989904987988756954497030525630932338873059085169286451593858241594372489188465345350224548366917433099155859168379861163183331436559745181662670279690182103126529441394622747209335815750352476885642695525348615049955096148687519131906812028131952249074409339770109393500215702896799089368739392608669774205682969452277669649950699446659660425975645127351495281083115581725994829265923690518109179236538804847011438530722307305226011886607199779718111634884921746920425346025266652508572907147748286308689060256260260460013949881278902212852728491060600958163924800462958418986591578380107374197494317083448679551530050119189667956092310400461272192967932258296794101203413653900719442741042930467524152688726869825654337897412262178832666011998727203827290110431637563271243942882884249156540313442862461285988593550386429668404725848525174514220498623159881366763709646009705927908179233767704905549608326700820146681403394552731115855183110051868437250738023662432045471069192406553790676620007273542778130683559827817038033615044899453760508608213538997957569500813926982966498664564313192455880084550904115295349530974747298215575144449986682946436033968752518051574148671619063177886157090437801792969250237140811365027732301631119657348986740877967765678257416418807870869901273821265577880770974228435736843000289512716643083995862068387767792702407261409979566800020892568125534605698526258959403368038382401010964251479237774349920578051510283738382531563150057194746816573759632129904677573968854991524239193688303294395018193143342203676792429778737752930697116503224078165328938037363038185134950532261761725551820264225203065181069992126368548623199729422868436194003895104187397497770838406098497863297879595608794838588250798257133031854781998715272314579554876754129128673239881635129557657596471768505807986810812727253860372845203029192908126359211175633342474939943240819719827369042768123133205927381708791719078414211607214401641619609606421905792169133796059327245380401495587536374282730591329451969479960558647746769733220363783347453624617639805125966445727062725190092794713306683346598891011827239519864770549282967498800445006623870342416343476053167355225271406613893928331149838412952725532970494072118892608272873179381456646603185434918444671751069734910855273715584608732584178514207161825927747525138941913298870186823984245193209546763548600223776576825589149105336668502657207787739799561673895659582783124237753014687489661171744117968136419684772665944239070433771984119402566482872538830186714273444430626618593451720967796306197187575824486088811548266576613922071980294067745354712073253116975401866612328955228320458570465286010280159699035241138374797477612575513061906155829732664993420367483672493759424359176125644240621684843056033586276869868375142953781853979320604786103187247575664767365252042700798448347446456395153379402496130329558512761646262498088465452685020534566417062356750720702825970358489679320094672537241237377896881067137216848273520708112121181946328265317621175537686260274692600260915684009758666406348500402095918729868673109977195335535698330552283972751200124486093394037083024384273595369412528956048997538342947527569792971838486839187594066512710361494355716065665987970998656274258095492671293506415876226822873908717692543075708260922320780657721660909184051594629238221623235199138706994664988434298438717722032457511205122734937459290322794408862913685140618824884047866662481875339525750716063963238356667565391345298322112761605988996455800015967655488955521510249125864233044635549214379369885354515306975543085007104022538673812711723569577507057581648856032484843839903607201954651335584362443631995613554419739759378411492037631728676684046935546719530836890652815899034279753115213033714654958002837243192575936350867543674596671755104907954657290996845481426887761058609546005407433421940645173903160634677080943551734497710340100399694159745943612731277793238450616804588009157578231234248030966770651273194212435678889427735102235723055402611268766915344396834769955689609630518428918962293091519770266444272260522166750293653654300705535839642222570195241877822439812926136676481551807998074875011784889332162563202483813562721838462217821484847326144530220186775504795108361786339685952230883776646317288141928495697087446623428289183812197781804890455002978386842858682348571543192946833683982328590561484602692580299837063943900369323539591279398204071105696447604996612580700628347841843254105903295732711690604305013245681565788465721868123987607899569411073537303681094304213820766166599602070215700924895244042602285869120411370270288449551427570020612209352837970866511247330120153393085410144694990757722374395702461963147894015982382088330108530072799276529632285471707781068591354952543183838074529918115997729103722773100955888241635439798909839854181675050895477501609321892099731992412705002935797957086160328073596690260537991329788840931224150406291081969543882719719279916219313483685458726274883341992044853943411721046470573400770535657513553150034797590104579375546502929276369456016702120478550375224755689957548789769754086085850573794614882466855001633400392121705851514839674684920274010513710591740386067911122225796365682210732183245241615196850914746283725812137324371416912160426174143411068136660244139530065772155073743884236515772802714842343326818966762195920519086870581056416227162915577206660705578664714324595886130624063354376045282268207343974188934363556138544623491150441082251310921388179066222096355596693852459009890230037906556200818240592316050501394300754727413494141642923916686890483817155031469138227721518883293280572275977851487132306106108324313751490789444105701816546529779972275179185822343806088811564764098133037590825920827028889862432620386100668124150090465832955741105673556953902520373720692864434241121543823774622364231944552729741116761938303656026054623783006140608236914637418228438836791793262165785086115200433277141174227492118602417183860599912037579287924383423192305803182495815745904655717027284995660082131378530781748719124970038447734284232656637972670936198005750331058791689033611143852033840499922351447115631353501111526033170901804822044820178687289589453605087932636846296940054961661746885466370071528041569654550422891011620705263487457368923843255073002257281729218253597204141652935333507819240077846630188639116902485149627317205344326419947477996132549855079854673376967076391328672002851809913221486715544328416984319106634227656082519931406205857635068920890369377141570973956478906329780868625673024175253984830672417212702163418699241395252353184188151108134853333650599279073413546858308026027498234079991945250981057791088794222700451559352829362973708336703235768971665847367163613900267504416590918369614999213168493390254097735709282801711440463361935371705148021025750084442754979085443438045401066664917854883730524871275976570035543591152388755930598464845006067062751099161995580147004088381431042323449219841490480882114574823971839677152083744233622284349813085714456309154882223897867393510083244368382042031884672652209089584521959544360071439278762715446512851203024921422145474055420727718880299855543418888144008999544912277013918471936444135776259727015765950122036719552464017618838526542672163657482134635943106215687994779743847833359606878987981179476712545122375080108990068838882519377096203750935466310999909914552712044857813361770928161856156085191298639274610499341254014203398635757564738766510021265117643127340263214204296907974785171112218375854461945869584270982949651113723937163256955530396779754280080000408495450054759640179167601831310604781712259368491427596020358670955987011514944454226415111224936431657078572751889868174996277914502866560421930946235821049972043356285489562162721130870741217852508230466161869531820704313043739878054075937328466505602464065001485177250954914955548974413184784803778907343999938742423408012151003408599948765393366992387141674320331844082598631109214456633254664992880963966487552941106609517516772481013261577120638100895903018124109941222271708187347635833563057178406380084937875533028694630987162962151265901159400459807759974886589375838724232506238980323779446161225237683018697416837699884312358494121736195804719582729625387821003116285487820254431561916499258744652484561884411424878528631222355306710682143163385045213741837606946721351730136011485712498357002705049023719627989565293604852544764731624117250265579877847520408496497890482898974711187781061339990116850011548606929918095351648821204141837082975724494304977005297491853974674910596984537499045808288767085608653146178791014089693145045105830203917926003032320524643706773388621418086695475989735831576567100124852656297253985549520448503058842858541586425768024346070415098285753078473226119910539711171396819073223780864760765631537653235536197727335590750064428530255034436972997175608039587471674192121453006968193455335753046294499183614714611991218204824506569168906626197649121918531283968000891716773774247972389637397690923923390229214140905570815296332504146023399356211990875419721189907401053636366442726141541948429386849879206073646147977101304749689639641128824721003726583548703332970872838699033550526726381361945320143439323020866333849571420449463205983658638058590407020198032109284843931549061686208753864984681009447664006982436429142485752360183168798436657166327141612501903850440981729403665120806602284651359864899530118480802195986012570016098812606735826375083184711779391364894184773107292296652341460515401580048389843269126937439472178231465746240672570285225861159537470984546342581132961982429485127385277434210718634475809092869275211150001986698099006772109890472283717715529063067295675988361014574103653787351898672588937465772968588697083910363022410210640082607461533124057681716745125317496269690055337795470720329111308212013541716009805651665904355888669734487983425297946256561234610379521535284761756395202070339856533226195787823542136168514249244240004882191487091382446433875039781511987392229119135525209591020350267508396526037497503769990126186377827675620362393241673006331050294587916786231541626191790522741714068018141744430753286259778967002598373252029218622928261491930520351625303795081436869004967733348076365733667826798402483230635604712724608355912458970430726719158531355110988833738961802778678524537088768409372175545098531404882874965279234234908165515997149430842649124874613385022172440231192139496531330911101193400653988878392159311417981689018572053196769878227563931108944966155125884459205907257697842021747910021129861987963431671311615414164262318079842381558681003468478990670194155443622484285343163699870022220150194534556032118049260347024612439070713428938689566536307472423037190504394224017039340862219340838034096608100888655854242408387100729411638318992820782483034281473090475307662904687536342152336039813327296674867303505196600740715884335929721720210879336603998311540859765189613721262624723263479361628190408426748096511895400540412791233064706981865294939851579286840131424116557680507440795851404804218934434296163897056131727802193258261202987490328052936534397119237813656784444898003916506170441858984280102104047214183085289018178481526682651938301699058190753916006535988519727848916203205201816773446324401480037494489487707925480383458568497735777954913951316117450056920060771807510629741815952445944968352212703333094429766875132164081205112452646651299737914470361630202069569041305433629770613658430494802218236987123852384851298519890678353955848654755569590368389041441405036117830758224583034945432537827222102868400787278275135680410615950615845187756308623907865246569619713223972410801338190742128163551928243177863838103365138401711117345055165908367396363621115399926656966282049735807102391928050845432761933736417089762462393537066363857692229958870735967302317014224923630618153407512186320925258581324229130202292471774878232478840003867573959160406785824648702706029360132631578160054753606775033855616449015613096062503215999319807574469023435250143852334987221417572946245078964855150703002653569036166315829815231639928022792587320965005605829953718692536914263896934797307725078468252118940202473980904683882932060867548097271607204339479524168339701330079393968744137383334812704213896478496042596069553305727507436903113904838880764960323457484850956431108674493199414094150013554125531013616286368818630434551356307999653889906888220000643044439508792592606280158521898452245095812591102230999426873205243487350447923379528869559492834338727539333218336835239371123533739666660186915685243231912018726474719312130490179729278747697273752807783412140011212901151295081692510546170842563329511951310225434084322673474647119187716629134210701107005362475040435722951663441855128874851780395786830025771330074223787814242755405663428950732576070068932029975425287420893342630565104518932686839989872264956120378743806764283174632329669435438941240286146081495449280317685188689203806855205446936311297064235164247914426103066118663979011995350158620792789077085672184068858519252378202207346341734248456317172194241223661767557281891587102482650975902494555240339570880857502137018677158059053094031134695262325868352708362986718927268076977271155382366392257233476089662274129232263248450685245966489164163369196014176812415253694166501209417814483677761305248147230718463002538582248734573431385960028627322314539446550186421813060743531093563550503283222816620561217978573784229122933303834695815079063207110384888105802558788825428319064936490356073323540198776090552199685180100239484576839499044472071257100334829646520196968836761351259239634327528052543622588545253445245854076966200958039912645088262829822302794556875676486626908082827841288317196525736484415114086982382233198182858010211083172560408337470527452037050822727309547742671652401772036437121065464499481635234001588597140487079150637698183651828692660244162475893397494864597753601075961517001248289391966366863046907879511210907532573494348223950287704608345562233156251836083665833310809777570518260496260514136352416412252765432257954347893022124562132184845007119166178563302066485350363338248917282677476391895981067657705637105651734838967461820028322300207551728365738428418231617344059521930147072978005767681960319628024412602744512320242761284365330047385560346813328319416472206591050866548651825721262233051944129738795215905078441154528417485016568141643206674547805913066949814650424741230340634723439576483035343264184608529494459215457181189853611803156862030649723640039830568846147399926692316213444563694391180661335120417141374101280780455216266066415480935693607877194894480614029813685700782664119124972806392022918381175943640034972448404052646284051452107937050881867872660731025882092533834195917681873010283240480840207227827541226132955864089110744513919685910907632082143668528240021452586130916671319802123485405392559013312043427889776423680448020374111432206673868706314641974795325529794866394133536774394585560174749649499191900962080961096238723290420409911481970146334607554464985958064394261651742482359968491572887870853710898882781994475252315793986584280936928224772400547632230875245109766188970474113610088524103777483427013964239617210203097847269866093272716961869572787533583230408887562471926181961571698213354899626271058846935835327107297425720788335530030699782258074363700353555629371081719072379931253319622453150982929344740328938020123330396719987347841005830724634029390009922804626102503077486005946973987596613521700927474269609059554431246403032383175021472525455134318209567135681004801184525546441881348430296296545753990310258663655870080659096036705517931735744678598306711226679056863954243986104684625530272814409546416189744700115111673233969164461029322181907832040835727151268574976417458237577073391081867681363278571044526358841151580797906966111795327336984724185557385234247133336238367125964305564405490072684402778709762636216152383623338142726977263452733709530676329280749799684244272185309947245378058170585638418174534204009132262004421976694843686265166242835484566923849731464963350168736251724362433453501585530798199977108157527962914412618853317867983303837245637013377103690996337148595884314029806539175029984044398800993698860821524417025753425037558724235672498571313849590467811196940662942677748796179634281012495964731414506964883277133260243263570255486780603252787748019092199260029516927545232778363422082379851069050567551359744674261383091953435847278445975865505521515162928679032462847960518744077475000990746345893532560360335882462312363013144452831546581305627304988554594831309436601976003233224475459567039509490121101183534415592657267590923512326719073185890165230946046819225204600573229057379801192434593103249887106502886788766109243031003047562885651301142268378044144493591839554698726971711004271831700973591966236549622425519213955360155896154762188024876981990308074765418779577676622548414004073338559758855990689989239620456976842304887971998161441930746075416780037276914162974626032788074744396154869696815049698721995829731595108262347688740235216964726886102275249162509196535472089069470493939509040105041978791405405343891152387476090926428507300774727408617187294687533719191322396625152101388678185512160551837889462353975815654908995983179932187201913542749195465846148648485850256744565134469563147570658780284000064547800438575010231330880659018712536212098227717956434270288242419787157967236950100883991870548555870824695937182758110596519358012460129551720096302927404302053712885628720090005565805190823449006576601112204999920079670319872788237832368271858650168952508404328177949931418224115907699568443319221123815727980281565928272261222213485729794990443122051093329946317071403070580047981559261641128189406315227017927036413275841761491767350477886775709193882764105567881810659647929042323901285155590888924985613003770658028847231476430654926589408124776198778964731398989968003444144780311846514153910961421534071902580072610671517488693664274769486482436590063712052431161677088742733819034949710631916060117630405033059284813667722400727342524541113480768976032550250178676683256355292958887446013704170729494358513967624287257996550142128477633554298809314447093465572963456233094411613284109928857329381286972398794431086842086856607652074381260367634535125769029348659108132378115767395286217984606549503392049085180388017314072026657477301655281032655160182492034703067357673373222066727080710074993668045894820503502938864115498764703350732570809000755612749717552453247775600101506841923243511757674741412537238578097949615563665032445180959338277431741975795101412668158491023536869432594255861929869438043374565171804231979483384650946750004531981058421899006112158663233509110962668051072064129109430938298975161170622236593004054201595551254936472086545835056352699735519587494763429549728606150059034952150254847428455158142836931283226218847199956000057182878834720774077075653293754432522103712701108557015543049144210603589197425569123960083557436421426852278495194009842497897449302597058049493018166478336041231332784790602900799974660529012538650127110694474669492897909882940795397000439854958745947661164872029454521256977189714843612166198448983657091226054389970558422740277493216454782352400172039898352985932733401136578587703179111943653464886325506848374098054082196367253040702941059267611665887270607316647754909382198356428544259668623928441737446597910645972972729837768116621399487396687555557892405057967210498393305600781441789693216673816241940114192157631329994623581705254912027183138186256993799757131679936358935340003893072485769091093094835232447303491004818258511583051794206176228995950113138591438405710201898790639510699212365940773841158603142670887027198116493720710086768067958648158158147700100390831783523406344455794526977607006147153519136810555929945899581187353863682773462638763808581466618679878564487269470825086862089736764528568804507999107819929148725137784718185393543474703040868107576137951924042481182929659492300901843208678077155099634396460049438640024620343677340388803699414534535781036347136058723877204592592356165606032252173598528748498913720677049789640544338628018921364845342081495864460398423716952312690833308590202297101679989917646651104384926568528296784137801063967950955303210868402981247472516009691400578887743211551317738427189763613082693024502470780172332408117128254872709070308196745854293165509590288688447811721295670531892584496134446567867189347050319206447545397665844110634074141209725820965203018102965688984118432917001215853033439877842100187646111181599778343130924526597834813777966517832672651131311479942632453961678673746591146014261534996228951852091331906174459196717084733376873122277624127966813411259573977597580399310914950179565886969966531667717511825797946196282147087297846016861653176783172322413109669524453055619024819381707404579201390349205677861392723739837979225313814175470649329770913463442831798128443189770150141930384628433006800015657417156347458262303479451070791745776751998532653337192340012494408642022993331529240959399894828050056269921819346924389666700497055516904308882658980162149908318276429562799418534915002227071721771837839249698967838745433488100663277390154840720972922062534854349175224966731141552467256697615084234456083601730038252787056544200584336765308492099081623152473379326638947040377605138786368655008753338180008207332218600327197596662802266252541863824904902786534858752823989649807724858004494426786544051087914424786489389231785402852622579012562358105003355451933419564956862556958714039516786157775202744804158054198143796422626425653731403314486956890272011395483476130313242384720911850094252989419826255353298307988028340305704219570897393849397161385616429878634939840681014367214135768108189503367061693967300849055407699114630535831803078396265617609026571089002066428087667460551411550885166357878056452960424244299951404851279493592072186207409649368088322402490412716072094001932838086806832176305238866966507716894364675312141007091930751622704618320323300348460792340852229233136863750252820400037425240049901558022186720744437176831022695014461279081336786854164111350762216284125038155966577551178282234379991766238460174789006593169105628562947218095718592879547442579100543821273220986725529966154363315595811372827869724508594272736924931971600207838473449835002608639614388971823126592676192376249950397306166413544776691150658292396593746304847139140567117982931952057752420083104739938894778216016585513656746133299550838627603372211729743017435068598414490051050020485123730115381981329903827604977353133192185545394999866712647717795910244547979083770081922658160930041613954992923851827823062927237648630235770907199628257425983235689957650113708822244221381568377473229211051240771700521010227406019849437718196234689214496771237517107057924147796750595584261913403272173340988607420379476856120010026607605790429396195603704022886541895548250596588598846534229558118452584508385630943591871151431421682623229028339167590556262819537232203318867975793043015507604740499712322003635520720303117998599650639175637823272042038843237568509019619418201369338864520558628816747226845860707440936398379286743897837746273580278070046787165859199500186910948068310833931255171347874658502516202320209503373592395002675407752293792579396420665638298403065604009803520445773257747382407032528969338884013149591231920172130835634326967184675234037813886854836106618920827967320939392619712838198747695846150728210926411943827486168417014640745086647430511428754308911848195447536275383501344145581734311600113492467043332636975346197311815441119561364556360627541271641068471322632316534176922195474788786822780025463715980897132339083394859623954113916104137211056304864539474680969561561744275798803224259707923494819482978773488165603128181368394757053953075796594763704329206554538771218265180231811095611937010927181558516063271948918510424234548795136734384485046197054948924827689176897286101016776622053150937810382764521171059795506612939716358760118499191693346127370758524197921019441745640652836695196577084676036507716714885012127380532835971106479798276208431132058096986945056612080294598297119105285007986663150889582748292871133580000278560689850115914701997475946277768089616834618397917100367076379538244681615590816502044272113912572500160374599187768008450536664109438205940770535729549908824874233427552329323463749844995811100334946465978106730250806384100653588198038921358643171908036689537202964437757001905810298460024010118719602487280450173579395895338399273242534594581419966689565539732059871361412436319128060103617811213480854258682800256384285197801664412670688657865515947480664070137658512688747894280594256313444743164769578924797045345826893822469828939136135912469884843535472142624304309338939530507297813296512421406197073757056808589112128549042173000891005228490456681083446369301474068487245053960116492216011035984639885543467979162215941524160647733630303126325387224878963315995905540384822102924881746058408017127176286323329402546422010387653797641450752668681663757545429734826558468079170095089375067411629911425254277717034012795124622012910033301175889735546492573835209480767598609321008034130907858255529652573878178276453141488010902066292709917146065223417686476082205075285428159400257449661390693592511227686041718361255104877168878431492992815994812090469925620667239119516115387335218569461676160663747150077181847639862020378051997663689982410730353007598275093982085862685690794479278008651623640328663698253429911873565547498900886336769046219642847374585325986450871093323039115532574163176198618402242333496869192650838047855241011244075017089657420042875917139569459197562066564395079570209622500522696268820847731017991811861931024567315170541839272100715520257291950082877448236187511488131832252830866932889096986533873194360795563347137582889744919401129386810161446472418416212728113205950114951934486809078830064402531474941836361137708571119980361056534931665338607868006239645912084743320427294755485225093041892215357144531243229291504611417578230503133047274208046875403306703671416722989623841100733799067475276933118661792345013960143895583296660335873295049987307155161663678895663387916406753752030974632637171495154381402965753920470513486321894142306764091111487675988724577844421176572123276860681360493732039156977354069331251359093757297816214664669906489676315128073929324415521965963773008948321869569224519415486872449234598641138016302657000660356541453431414523488135959115053898784756684519519988468607914627642296752357934102869013343646996361360259843500332299741420595582731866569450769804887354373276971976675898698653866744145153220220705739009683291715539256952690269820552538474113103809270040031007408733867633722088573271058424470152100719398697502813884759663524609995212936841491179483109695512710803338682638909091603378263306156300204487584190967247818007331537320693686591132501459254649558408253217441871148949056684422140072782895729354706654958507454130636761934192749859697241932287978360563472473871199665565155506770853019360857399062867115418643580382290818638377569559498451042204960359283212097242594376010416109388035273252787972919930002087854543495624048351622582116180610439469229615524261198514266591696864600521006383495877150236429606827412946787823990949762005687377542250647998916623910456224484433754841150678316357878205513615946000327184340615685021292260803441076459547390453060924525479495028492110972063874868060124548179918811272873947488959583987451054296783131648944592281196692769504895379099763420402204324511785717258977756071061499075184463896434698667543228347282805485933077663861879607072781627291279452660882961815324523303350716140525443985670551679305663856696305901152348344443925451512479942901526191212311378712253716800023554504750054220782646904223982681070854214401327986345757812719276812664849859486277791766377885768871088094357264630121935711372495077176262270255704949449796694233935667786536616899605684060736779900286571156697142438594155023612406922276637417143842960776423479131147510206149747381124127281233204211520838120556470738619748948584699677535435411110853388995906058453220204119406505533780806549514857475110642715551555454088637818207191207531763164461013960931102845910562281545329797517537115917273164793724518440402428620564961041126399369413473421391400656911587496946646336987133162365786433222358162842779938486461322326432578672863011454061703017696730605206831055798413569148760976794068148192046781191237466636166447034546286890090602716646496893456250657610877437657949079959296961692508687806362280388197701230844650360030471274262129586638418271892462476631139631747355188182791970601220966147045330415454742752699800112058649638808025430801028890338654622513725440065488143973538404782182844354007102451055606833018893857588308552460570484736687687738555187053402837831425627407464789501462192232912951786807326326543437873437735514944984100154836786153513895487601189344280440899274325949709716253477704632606907649263503586494245048530334703605335080529884863086812151717344065642335434035064961759089989038471176060055167224607594786036667644720463343198805169274025133298741393386044190862219304620667977040419733969116474002253552694487858357897869620695856203874961617369265635728826771234764379233841117892017638476021221260887023623938646946635048291310920729425772170743465171863812702532510305840764648334952307715156296995368537741809974071510307996196850183656070296384638006268606677932019973384801735334529353081008408388201593206710289851941942119397186899609464319105779095136768845945470291669336983454696434652347619716798185082104182313593877717501150939278560860897250553204716976777617013448092685826162294067775304824476282588515921874732636065914571816870469654577182230132965745518389521459369599200803176875348072896452677908352839119021665455936084571342772750950525506194918214642078846355145169865871582632735177688096131817443836552199169646648324965839525569480079796719220901197680880597680410938324338439267433839509433033863195534224486424918907583105738917196956702319656776233833027697926558885340272765747915725986090666484257862304916848169903939728105413674430644677345228507480805719022654679638736496484758829458619700673199947689812921649359820443898786862471005950383371476354057903261935491210780868496960484082188451233186527241654773164016861251605763754928333187529357750037472737898260344274232259033105413791319311187222590325480816319534297152261535989457954061321153535684693530774077185013544643464367022073399424083469194852290946869513781018178402175816621051110801737627597725803541883185509414341582396307323699101026171700753801193701512091665456780146400193189584671044686297703343546881276785761313268778030462560739693919616305712474811588471320193963774007932243193389058384515073725869014046423047760842571400101624283341377170490687997329278837169979374716081025876793503950562315746975253606540501950956602235642186175764695576767694352695329287450566044846640645523916617463147449514451396898854447500044914584331521452360455082953046164427706215578653883544886531668907853562173063651864856099578991031617690588228326694706789911157894150750054283496266309428623721121834674517780176500593737892592002827020501556113481549670285665619341009055781933223017688389353808127512375841118152084500870987535876528701329829832164247071821772984714747447723927667031970615631236988815654203603537212428119824680578643156688798387440517267615363906986741224750428615655634636263397634769003524922803998018924087632672001156518910358791330380582834144385064241516198284036633116130778349447446075872859392184948859105415091552055837219104596076242126069706327754275176645516816512096439109416178502722709266795928642603801797843897383933637807915715964806559119522043397403834230585308744164101178077856222683880912767325686142280253439281616088952083821543926860360685060699782448085756253371944232824940316047268342194380720247308295953490477489158738664967591606146651575965818883884920216667013308238545378845715183410152174720045012584675378759301872085094868052285128322506275747433247779061508784219692544502207990275410653586114797545487581885166036368829000368688071778735632356759825457697375701071241201102062552573670664589833576413616676134049770737060172943964096037315265226146184311233234006501848978797965333009455627581832889857876774053569741324928308281056005203425801672126307068986458659316830557028891185831769487700778340074585171266284659241809859485570158212218951809362034009164666608933203880458724921661906233756850353646124010081223697583058614948874891804284454322402299383836756524415962175116839203790253615266150128108185584268968262417289929508271158600671048866563162554484575849766780704512724712762414032622782574616914836673238412408445376371996753768905434275811459373726481270989813074209058067388142631597733482167276897158592328954093839081734376196897087101276367159075123059667891209115676721284153386030188944213074852836159474207141588009792214932143833109693672105663557555443834200648117834748903435263112135351971065081424532774715860446231782624338498245899743849785925926503155032527264492340063613020219657708155227665674873744837879476349630735204419280788002563666404359274535842615310604783181972104253193811397285613697194573182168491601627557915556932180616226705358781629216868257088329408792090788249615417748791435444557853773703815724925829572737700560490054101723239861625743360417230104904782370945755647955249152453469331579394326329906571683705513512950301194474348313435659498961286483194203790407235312728774406986986794947933021878440666135636748758700852258625643297913175502983637016404966986419903870139581540055924141997681544043409424000395493812619826804790312471736398609616712979207986033207967179447147939141004110095538794820669605951604646356236878231771101290108078107626748933970467611213279446271196812296824518644190893427678612751836105610412688574525951063072758606004400103682728927389841759335815704139916348921107548885370060167241921668810070133726831261124029645670604948098265387012736258911486902772837755651906141697814029012232642462337714277829458218605751858428156184831784385271979305943728508506435093015802649007733382192634316066508153933403656044830998942462108304426722347732999016129727858995295330382357369697217751391532123318320420477821236815841185965881828251342107336679986468740226687798829362300483388496032521871622659370626180468930623558533843146950099210636221204813826618096759625462145912235999175445307133138993362742277269093147403163478513033977079363593764519795827436761713767827730825517041122052174201464378681926936551627350487225325220283030886037665692402785096507005308256596565695630037790334294495969214451863029596965327053967407931799876701020857778309432208589998871077181219281182370793724788236073979928901387746461310907854535142747231654343463519885083130653038841572566593116470350499724693973912844389120935795680769239116802826088009273142379551746620885546215731242840217456958737709479579253205834370657975844354142065442756624394130859774203704294291690151656025764207150435226578310243053191912905634036577834197309733683183791777150025359388625783801601997426077751141564293274770631449876021901241595676941285454518416849034184496602766472403724967547681069579813474189826948782621712509443319328974150232909388937617066693126832126463881275731879603200894247548067658413944487106725316271463396300994138772741172593339744453401819556733945898280236940595555706643059176633683845913368417967407560948857992353584209472549066793970474544714277888169263348934525020680113338409873470161133939435036756605100040555570665442631900040483323735495205058723798029725931081264529578538089292901351051477011814463134226434993710856464691132118350098032621826440006158732628757429049239494754189879319016321516551394980514317113344833052488710819328029979043130245783527820704696781397158751833700111902759347027887990640043594646667217799594518609454562628210952780395996442127672478295420604819800615407935590316579333359180456027496640738721101892515032852517587106853050502322503734342482044412864542438566575950637935747222033735522471534884982164184927477368594832644806383743177830616836806204212858462750342250683952996915295543499807831179303177883948203776876190023097144480068066969251748008097952677860324786256812310233694522098405549032968862593819473863374549843125723974978993747585932352013148124778526321248767900368403915532013676793006085122260322326406428797926797652761523867703937944093941103847315694932487526104993111240995083898774555327692836955711847647106924294373684425233358190311735583833726752105129107463924753922695001056115166565914532614343332272698034686384800901368223461946442181824235145810231522220240807149514087847411829118288719909223993566953785834655444850454748363116466754589119991275308000236247067275964629556853599938602931834274037107766855469557561516442336486055617984688489836722177159720257588056132901113751950557641666383839137621301211414601232520469975892250110510014776517229810134612920000627282564620929168427358423679915370775888845577243206466725711593086291220404293422153043766897611824047853672041368996063506209361836864351990078083910585602471893165306559157066174978123892462930254512242393636821908669118201521931834199627800660608590324564349050616698466438419214773352373025625948703544187275437309180752122587454393120774023957759660498230367201779479220822966755139684749624368039514199724761476797720282331256031629612032371050148695256016673343927025308225941578305903755317310735777344437973783800864134267476091557434583987887781106600459183990402616687800106751227534421430749197167249468251923989651234502064075105437801851027423887370057704860154453679498598694934762115240613892032771976016358180453379304339721720320519520434527845982085095272772992485087644859158419192480587844491898531597194706013564443593288084053754926262256040175275469402504399216463027419254512711083176052871548237694606309126909410697843216224237966576372966826040386127499049747912882020704213002131067398493151120568468697007740915606633924063717175499031686657867411334094842616752050195379590217661310672470297283864200017668497577560486783200558042646468668055186611779210315169871651698566433462390422379642738542145284586083359015665525900343386210507958543193374993258623872591256924026602618191873046249291594501136286836998553321139060976762292667781129355665846368528609967797437571138061502407228114715005120507586221039753166609276357429043956124574305981467102743810461775442449224217213304117578342411904886708056661919076543249027536649010138943116973283608037432686745231951377915066695685827907269166637328094385473260136447961078288140907450880179980147329513589169745609659044056742025402597288904244432102768931895802190420965764342724738979448779176395700915698624072747951149148537635883566493547055130419488568816784230997594831410932410431855019855928127753590741057588213930905647291148749292277263324838951030461427772826603725871746786134605629139016219751484090071458062706476614344294590672439376629813321384445974009184464041393330729062091657649300787383483342042848468048818613966437499866820136598248889924434542378643035068457683749007061976454624318245324204013185875093671901988510459090514564158925084530063604987973036729203306206176520883311092374432342300696617166281416405736354231466608770693218458922587984640812402015311157223221012022569268191940091480677230348037585622903854130682086298721087654857415829984951217088153140700047874466004366326384155806129776521159895100309977619061834311655882480878178087066308089220075233404114509704243548481154398830323799307868095187834463128856743343507868557962817853149899280891105653445508451297467768804254480557205358080599933590497602954230994996424573134737760163870805485748200715092466173681942694177340119178019394580081826528565794809681345709673799286595861890171813929780484145180978880227160143332519336360412222368766568301638611591543933532629705401927492246702120791492031950580134372249118334261801393722647532980372441417479406776803618003752911091560459273305073437280866968347336189509190149202366988109113551185877934530195949445125556704900852986682034675725709512066080729453266312959023724923901540091968367316256922287479040844048479566896732936863709352504709795287580442915628838287083388829672404926932500846725641391957522122010157844397881665677079066747989557860362755826703086864784185308009758563706638354995266488304778996360951972256135683724809277852251640040281283467516093657356780354802293999595238133366273094286147317786572481937702262714176460852346845023667584002701117535519022359500354530524054476594435790947400346433780773029492276603051788896895324840006585928658187053461901248856080373642977642303821920756019774746402071208266118239086634240231435367960441313271573546592246490203023359578116338828622845168343128629645645971450864721104262828101711018887236637592097828358543294303301067926170383224525059397219777395636560391266430931106857050011165729198209364572569162637027472607933914333155572485727486742634725735077984744846001550932694597926528994527077496843639304531545201479753210347198936540846227245610565051090795751548076185205884280891268425947969836754656333419262502797774305616453577503219474242228432799032224648511086791421040182782772901427697940508499736265645591111831556816155380983621547692385609314595586514649483037521264837944570726343803287667748966465199104360421054192163158662238997070025156362673104554945197733489483296738346792984195805491925624825195148361185714977286243038042870045016630134662201538896141328274378891436293519737901992204176818517691580566333849056733207311358812184815817633648753674759686756411262680204241824917076652569695587044410246317665241011030015333074780258725844296799226656765074370568435587485021804578762179342332958661298356386154252027290217226751369776069324266164358885391404366578220871781191518476065534253455566110286186705934814201091972662785224905819619708333068241879244101831368933025439656762116598372054704891886436568026248588408768402305741297369871248901261505247828096915021476008370992531100855936469768794312159829461002484773838748735617950317494077850940503265823247250331764802257606074144300989005143013280604918872823305359893690216087745848841155557502999472853968412162342961437746972721108740405641534384329715156198747696964857659406317093997637203590238417326632132771703024325910320773293097018235050157732201601625181110738360163063415342077584716314030487149203836626215755669632111458788737217111775744300834868231908394901353532727785426097507624598472544964454592470342386115954870460913288372915174892176616173135654567600126662365614056088706228837070662039319276743634474228046105366234994299812806257827019108709970819931951240256902678456862314688916840474002148632606180526894062712566634419430460944363360019571360896019299867699980571419449634268259747651239380228645313001765780122193419270699474688091829898738952853968284232600567886770896972088693656698784948070082897617467628947335357841739821702831311596088811677700849499577015902558500174469804375278985319438923296120714325030336233581775890322021324876503291013672764547444865888885545242362889635988763180168400628836453691762793319668426392662535415050233401560448130396262641935847304361819199619479322801124294479236137145968291913240650266388887546564809176088559321436201846042656146697043894883727423342593979811966054830091017546401384790915684901333070035885249529134065108382435464138582357347216014483275738503032269637532334340592883034779143671454196050506105068171843207194507375205470457573615029308243068625063725099724015359256005101766743969719856874273553417304081922546351663225039828554767655935899164649865928142778907182855040664966212710424814966170110213093412819318020743460944451625530674661517289436908550904478423904452064832872761221683473663537840211732012820306943492957449041289415826425087176300024822796067011460961890437022111282242708093477598017702367968819632977426407956334557439937400038050380333984210749334091162341393394680851721815621152319737282862088595218239456138150471964276161291918858429072726440637759923367600754947895898914764765133044506644965701892106122069899024736795104220203660703553877325457147463957647451387369308122523999804172601688492560035649931635997805938702132493548740408988575855250396799564718905229842682548858688200256090003340849307281523331777197500028196434464302460672565736204083496270232848475695638143357415991251601116099006343341491440380870228688389747630038371355408193536122384515211331126019448989773716374959062705182813202003978546855578253938091037692142113428306663930746729638002193017325449439532332582411510118369668836727224135676578476092504379791717074891502240286712311236781734406402684899452341404846082728744844526300469016129028966624260021033994796984139428755504320134862436782067149249153554400545708621554158082233456461893079251552919174260193508455857451873437311757796134056500276026414192960544779393744350352835216992893256059534727725413572043530942273374252873001776138190010332432818681111042857462770541060754195454279903768656838754178057825343860827924651418483340042485517057053242088410540651631569878304599220396792771701320272254567240816491399145464073280464811520014172026281946746450997257293188312052518405748979448117520183303516527538305233875468806494815693462301461090051758223001423305052047792744098251696755128971568607070893724701676767937850411021502454056889083447326833904382375933427433899800170172197637408077458079709951446877788332638599252405207674245347547160661559757815563655659592580748408735707686434526781385676409821139055836912765415437176604299941956643193043205288704212659089682810805198490917196518820920565016617039017864642072266846042698909357026000988143955471887620947930721151209096614792174253023421193029597978392569465681073952718376451738391999719687857588126006808421737524605876735492468740849314113529801754558379398551974153697026293639954382200223084595697894234435894802292760058834936242843025197257911961745608517210576574838367448107945008745705051503611395714245038268799449661114977802260749217258845570159387555193373897721664480315659862826841493529263604079788810473427268298581811533543777323158272045653883841415795681833206624884244744953539808696367667818458250395183341472336635037833287778050320618556632225872189432758406690485902843627652234196253310260060297969949293984756041733297828770473373809875774551293978251557107379461756979928927394937088491199657696381943763513052963148499670106004733794224369574178101975722952106926420959208868924243835814532918164667957496733096444608100920500182133791028091442053432035588208745831543099398769394380931725005949842544331299524041588027607960651397567706718765653232368333654409257910630344710721832623690626065805131541395328909496728897936479274103327512704277152774241573306280850173401960552032006595505766990856728924703231394071708851237907989354908151071377522022457146381958170161082567812133485434764583937411680105210720775479391843936109977142720458689463112586419829338180716874342020941220287336341760003073100866308985269937378854398694345171330503847015167655271031163583856144790711071712457281363033103719219772752878278443284017939552662556941176898270490599880458021113586383575285053295552629544568463148727649775676343660174196227567547582022654364600319779616490462964161305038504174409816561543854807189801455368954861494352808525456770310124518565561311836551917358745082068856901074246388541927609987010807810723393941271071038268837277688034139873508261148610099716826228056609519020146744143804269468454174047766743447953990268514062547246883954534643441379582846750392359135583762942658206664221887616444424853291462921792033600501770343438478672423131750149714728746873779665871939514544351715305659117225287410313921083935470124997110131446136085117962620062471419403841117249603838813359091598652314447574165506112925359095294522364664184576590599812905027190870319624360578413889432838689332589841226316653417431693410786137493424788658512218860316058353115858435531542038595942127445573835747200112507534472416077301058171164505224308257834375630579315950319861054639984087491268811011552601656271839622738802389201867068939907519214266662809486264437636608512211311319324678082916729591134238717444812869070285726846077387548223100851379004083568073275363208135378801784206235331995822415293137572224395354675554266208681447608624143715515957297982956234244822907451513209792209468006894121727880482915029713212524490305865379022602547384214094530127700232150096340438567317794913264722202918861095191665792693871420529877450593947303507518700325038008024125954263697439181480252644065839784385713109427093348439277946404517099926775360822933034515866080040005298428897240285658611353750489943168941710779211980300927608920483434891881428655751301604470490094247805226766572947150705585544735691626549987384231369453259123912747758282128085348847010640606778292029574019144229781610104377160964533686951108800870002033667534115317499097749046526633961081020979114524834873642446404667085242384520432912902238805734498781565975582448215006016520336522660896815459588371540439978919326589408005085973483298814650070993435942870027977989282342105736920155348582386694458153441017506683515059022713146681902626148933110215976065441720911035868532404706179176481577906828456237340621632756652956562492050182081658122263698420784745986351073235534525355784290085371934298517374453371615698787857367267085874111605218716478710866912494952315408809116179145317599886881941483853241002056338383921009733492974182284070614886716603566891825519836745304650579850249382858108284783376274739951836452928348956710081485026293423908170997981894212571010972275554758865573309432168746888121771013894321735776252070410269720354160655685756473006804767666900651424712401894038883381026598580223296086463997019921650325077798977944622827164872335087976912686182084859249970342238591957243378311051063777400237827914130148946610413698428275617050210040956864493730660390961654400940397261934590021079392252770213833507726195646016945489390087404448860090937807047625352824794855242073200949080074990985038049425626691251041165829037796365096800083247616260631401348838474281395931348081405995573530165139942125990052231996333189734686643003078947735141983922542127697370485713819248886901622859520080525636162077962723370920488031416107975028930113684842344705701680043449375674001785708017606544032608887311727179187935107662955171967528443125413528554068241795224302177254314780422164202010735671829571973694805184737952055118386826396038215338793544095950481792640974949445048238139823959960865623008242148198533586400741583783801734023614995910544163738025450458030617393248630711253886371203881046177716940050140736835383961645995365663733058656178374501228730242661730888573291100784980947746685497065011423194504133529511116393867753494867416574569654075397027630724397613044797587152946741512611067433607206971177537353254745839147893736910271207737801195493423510586909695240782147673513591635008659625914273336263156275584917576226022426625702483402328265529015434426139471999885413368056923884600716229771440318929855825234248690416560121505417623164370446412339427146954428640141284986927388620792541914665505033042180850739656285803405140091338720586485119177317511481572680070870594534873414777975469366216458604962939725295359505604961586289461301327399158806896962307455880930637422555651380985082663054959947647003933080253781632190909382894750166822982200824999138633600678255887139135636114299695482091565964717834081539329170948358687789751188359535144992579317023703307474494490265775163880906129792878809399319950708619442901788177694904527979072209759293118042479943090159787847138023556791235032350588502881109724916712879972723599660315707333789685289930320618504542440540364462601600685939525018523143623992049402342369516181152090447107488703067115442071401290985615262813065406608399458045183948128724504223396503151915012982611430134322701699349571551480221071269537554219488201227703399345178294221455269957579044632602049275210045523289081437283385371071533785391382790436545685021316389561583315312275864316665357602719836988927926060417272870980272272268962003121823303272915490966405560081599412384291708217901559538399020806296961565603668912870419653980264505117472702773557080577439364322303310171167177854812818997855274304103421359851287053017202650551239152764818774283604467381601109502491376460740749447407437221809704131265469742588813072166841024005896462835776499000340351513090066626579815406272200323357616955732498089386345285681958950327320055878845287325564982277058419687647041421245135360982988321682696228949026331664172436863729839617526272816086160393420665310866643810191835808495269944364262044414903274930707191094740603308297623625724546508492054926654810934619687456562298826986971463134970024981377790278199535098155677238917626897234656471764552855634222883596913666718822551477187888474555938643936319399645847350885156557724608311537070498528230960119531997121308477880539844316535253265212681976625237535389433343200443581633505415062056893370097306407823697923467707711676164913938871433251727141934038922235145093394914655227886522883080245326556258341840145205322630910026044141711285852902366119145111518065150223791779057978911101380016834357236763231457613918567280694854831912944908055299131085959680420168432117211742063281549818011057286755855847381037561358620759137146747745803789534863414692924333870518587189177155723800075966748210867512289543017849195827220172794308426732263615240154474647578484641165285382513708903793130200741354610880249146350768618030146594322712075199129197459145377132647080483887561517360962868583559018319808980878482581759836060765416515790961375883044872367968160570921656383752908506712915686963074064370732341441693100618700966188262566394445905285399182988587082800697015316707874906768854923929896031163236259657682000806806626107770406762845915819947539184756288276665048560467144356518859127524621683150613703300916918002097545432612433179505682710722674512974274997318881510419914690023075880585919123921532580737786260506063347493987567307976072916969742210753780902538981209262559834465401341889979482694475887961313621033967366173690561729354124936399387149838472279708111869861410156860711746371581891911673421403412486193900324136839477698008200324621637743747065525907448897477424574021887705351081233495294168333736208196173984034960520848445469013967835749590386830851706370780403148198524333892172189126792492705850084096952683834838636227447507869241607180528701992505031142189332054790804836202336028085472536310230737195496226209388680443027276945686355470103106157838121938449297485619282027243547004019087245345623321371612905331492922198223630002313960562257162320312972894294002729520324726603234389649536199571859676984143056748710279501064183418741078965054071493178575555170612792810965463146790074461468764933183338209459737954608740109316286589401544147284693836792751081044584688086902079205483164782767648956094544841356271486272588638708959753724636039768531933487595194437001708570576224917795082489012197706147023109674154089739626474511209146219510139621589623755178424079736673012312581564501605999561040608476911294784748223445601407046362595982376164280021064174227482794146075992093378372694770156162977921710504370983484952539181763272494787263781224006058853001909001494073329383584780807634143330068251342044287283164170220517790253618092687680482267004413497814963315707525792896838719190047473011733295817464441383369733229677478264379204545184776158382096886739723704982845105135610061728920005523606382566623218761774173706906993180065618411842439953009619647771169213363917207403048800947829900403018809942275694682261953257339871584896976473809997636175144979935707993400066414109575889734265479986555290314317113784769853853015207472091696521798389118901740888518054975072768516063452114434470650081565051664378350479497384721325381536089226473818429502744979774629443701386973226429144699959753606497698633179925215782918421161584252133555149906025089100339883225349368193767515606937076958459577317199608066981682592062648269745879400394918242890194349209853595399770836089717855288077435177353590967812928783935399467636667622345132120612098618487504349304152066600312801126058498576792683834931081524286616272506523624138699533299766624704956885973480186836060583534439497122024042064505516970830439458551339204879321459936113848634506087385193240394582119591805483661352595218558574795901577797072767700046446320542467016630851928079687382589520721811813322623090886509772542940761255570031561234279434899444059467269056365208662297095157281858375244899279915487633669208032805186084623524358184233474686571008229556267631643219688297262358092442670588193720093001874571960237667946995040232311572115622016218106817617772936202101044016624249291117976504411797652673266208611149732504141470522960321790705065045351470690954887532481932957320989913226125020790688065515551930738432658821296202574109720884863898373638020894845562944865134659899703106058842479278697582642840045907768134445634822241758778854267546896785514347376183110402064277551207145923565864021707563213671499889544841406234075252200539467860890452494567711365073151545588121728963140625058294203880657545217128766938369226455528760261025206311383221091799547792558489113484317263630638867888724644218821684594340485171355628930656299479877399404363015889008767761657349489951183757486041832903696768908618399158565563213194304790292673648297264201566138287739403063728530311142384828928877363965832093476540049658042360934074756493419435011668989693362807710981587753132004801446811243353931704132200351241370516098244515773337579272557049437271372249209272122039616438468973613228238963892118810624286751408203112896355886580295921626717122165572584597654139294990015415181920731968673238269044690918349687371801792795754120652017182337609644068026179743982707797360644089678184607512923540532702999051956985739064850468748424281449357366419477917763772495170962074891204548233877529561965804938239346352402552028620231391442721933268840454127868403056331132115767287734941780710453225630731849314251309475595667087788911656643952075535528931689062764689867080454880416832381209265974927178412646070069353517797140868051891838829034024117200936121573826979013226356161452266162554855632875508391220069056075945723722918405551684036137255119315278463438964011208402775979784220565161227345565438444209508983805916360248422865000241852746847145260319347419088273814226200276589631260925304393288041545361481781292996591664006687288017885344166034670843479180733185993531896567306435145864822247805205783629088951424505834128556374441680818392152594183823695871570730288066431006498200004807847191033115348120300609979672583092641088355699316461069769575102371418181504486574573964973220801336269152692950461419995196408539126975937235176664289776885006195001448312965137702168392172442818905862345684354259583896706941904379983238893101812134473587249614454581216270129930569498398941806766563745282143695967848071824536736674131945568632031206363899320104728522773557082835699773997388627705259771125987289594845545009588826007654527262610153327636388275117560268344143950084727111660974719344598208301437461950024900636373687797068139215077621354232129700905518234927808816923402069889063783799039511413453828960213891842870502068028240285229817070962058123046244098160604849690397205788824058656553864803024101891247885589975401033246105017716716139814644179651157064530934943865858075951679992266404795217112979973828337317456929995787616369229720503491280639607828232138009403369444273264094162040408377775802269692953760716859357226524818478508114770254741467133874309068828618142031513560921342387518835815569925277487163682027124103483354137915515771634235541463733169899998798546638409146564171980082679627953641888247124447512678089019208890017887454181292889416984231297987698102600519096195466407039109933399154202166888822628385835903628285206071980851991017689221469654540037833153413399367837425454661441005042051455755551399099809271571368180624941521231643678934247198949360642447989694602327370926762310434075513246228549994683713547712342514990991609038390918815921297535508614553752726411032273127897624356201869574821093240845919684662882954939665545287549921064324628497935574279130389424137483570328747477227989705381676721071261100958272809971705386013108690322515546286583825662881405007419437648599255295367019311709283131549842843169355920675328634499762150625174651998850055626991070350430782824434645521612033410048500675241641466177586902502566385819714455769596294409924159541558557405093904499497576048418130438712448559484536231131598332618013386851410019909688521551332757322383867591857316749453765636070957844194077842165519945808883976896603303059764988263073585578066861394574248567457678885131522776545410861537473346006276326983578231447964684039741903155591780964322653967434377660427441391944655342420681298925081734224527219799274618713208328255390314741834457744651318224888644534020337983487105667734077706436553274701035976108902799704017774797080969217792146363051615100897376674315918044379260140203551398069078546328592013864863117942370318295514796119432063257167746895051516208324953060564837379939992559006437611656029922717389628157522174476337853136358418637058959271255369054112520393010955400998642834074017777821385893042983766062972234877104178358058373495564101631291951385488577378191181212864819437067994629002445103369122078115422865963844495301854033073537837997013845779202178551103263643113151389011149421278062487068927795786695491484266770605114235753618796600572990558621955392665524744215783942566256259243107410778135366630597034922802354656546434301170051177361248920224084324030628141602606606044013480111456707260996827037765058163719918688468151927567970226223519778852857733371317991554489573793928850488012747710385461702625145707438506206293437849796808373711064898615207625723242520463418246768297486972969318386300376676501334692468227992014626470376746535735961209242973075942798946119755266804197139747573763263966252405799304858020296842264595380936458952114678008123046062113303936919583261619786364867584946749768096877871014311001743847921762282581396934519314133613875331965910082259522422932582187534020135571051325109239491237987522896627330573640931496270398723138794305882814501509885475986916636582175346414613206307634319453466019268108223369855124022405483258206914335669301236774508423957213632698432676275665229080009969688942806287224447701586997971364189363142917801676875300565599330762746297486917172006407822030867688403092224551009898023381871575238727844023045089126720914887580180229100239295145697769646586355272778913973182094305966929788941026961814478591518915198094881764640776217500391230779461425910125936957386842531548161093602238494939748183733269955841896452099002089612315564577267990504155036065062066981868234804622749378265462074734928090347425021300231120030937611622549405655902369803928095396978396887048734481880235799733003964049074164629159553588519188621127209137763441709058045699061228569836285311642746188478965375875729362491586302959178231285725495994081746754706239920286366556350523687231608643901452280741526101729810220513304255199559768007016785104165505369255903411590600427031527012398698560250924475566237671060744832620293968474319159541740359169987910360177168958038939743054039015576629375366612306071787684754271224088525036591019503983440821623780052587953489515821536478187735119664051903944026307260108450415675854085890907971618236595907276056569639712047981231840292932434448064713834197076091578340438325160773276978601940063799803366469607723461671727604566161758339641888314323761279121686839059587292117618887815802210144144486249650151082599025246915303255810242116821474444726128812609651724588901974633479754980048806905014147848649184044077826421574642521344671774050309933233284992794346184640386918495181159541185327411185465457821245975930983100860296345564114945501862925641066894157711136032712006072969145634401779347156434692148503823611924733695656108544803605510489169620318230619520037825097689282275307086307880271036270950180695920444983644578917432996217698960942661398299754212116798795514582391665206517365535970903553971802490094572823315040099754378109562888439762065708135199923657287592985655567490237341753609728752676959565868392414021398440956466917697857577895475378063082191894683277456600389509313267089874767322273035335786480499777600318457285937837945174860654271656286948331567780402070025312902273222166008879971798061200245053150922107332675045863026725346447315429627294792493197802137807133368856335940285354406004037355982882157944575507304733055610389202389106801590223471032477977217604085695658964308207190247379497940279004710156687493265192465155213390609340276075164872545839591426222168082374624240104290353002807609695705362650864522252595914826655068573371914106895123554095276106753694593880662546586251421898159670976154043784361058969601266883431407018387953882885593713311835994866056105180762052257443695013420343770435561304696364499452760038157974972597073703575748605246712280326641653156100261865671678873094344685668983744041019652574401283112599222177616056903607827694644794197912791418407226479919801119172301587511666794488614826978628865141750708937665389041691508169734067384415327799980504180321104919070139993934652747365137621904970752148539190624478350188129244899696686140156866061857580563344257084567233553653143321667845669044025677837081787992146366341602955550377242736357649282655433637539450468108742968337266719593570324118434959266863954817131366467504653233670781796758568261145959551981763783593063832324933301131888832424010093200398663288021422534963691149896593480778180360586628839797703106077349005668627579481754271137462500352163542236459331692368844452298198669529041979479870075159324710820039014721650323286597927150604906602992259421525105800134463673954125401385234245860410697823340123820810500507005818858357165295536502558326131889344976364882393983390594185599609788066594358665047366005500980363667231078879468830715472049218407476609399308806896378505734286114331370053994920174067880091021718131280848651841305408735017399654013711622911069760035656426904519593260584239467685021900451746451897604853230643088403674167863503310135160300901604486053509797320580529407082657327560054605596324309091067612310820613524335291543954099930936401324610168567575502912116229914945933415708457908839393502065466689508753234364411212973869304737442945404686484379524702817015034163375163790691774127789519269334378022686913069109959756046160752551620890543348652617459154350620450325730130417638957996627013490538989950014940965542834243399925570194493494779592963528202041012857664971010124375403765006392527539317095150885165553954193097057790711976223537410616021641099711145325243309889467945659687177715051492445835399819547274668870208291646929032659747187804409447312335025787722204900606620039521210859161521569626068783426814232685863718741339508494241608352878990508736738338094031450726398307627697555082559567324190809679507980092191061305638465978785413531264260791400318932326405349953457433093515425374781932671644472055176514435611514814347315553860263656394643626325539780067365682550386371561159912258532046411647493411468957584128899328734205238181960798457292118100194644109801487018065787180524728124514199068663410712058387656253273515533499217853705756298657488906799986630721459772093510847237826519523393181872220511373758809635082708133122151214502738540210158787953797590089825382828862395334311323008881454545550853842747635239360411148471179981413186926242289802781520726735791581716813624926576556603756808288113864030000248055986369903902516293311922163472922535397681220623305748391470034906889895821856266663045333739748410542640612116045182579799333279684466985552638830033185533052899886012144236303303050005308171584945303773516019771168179136701583287124803994388299328450395758708156834940810298205264119496243716659280627743029613302544966818706800935049926680712889959664751795436993468334775930256705384439352828933653644460627867261605175078313902616041061799027490219401042616751181428793023855600940228882483594432393733329921347409702611149015840533795311612213063940971168163861944923289813569786122407642621748932706832201684051572829053733171799359691582946185614643444861711687443590286994954004841897513314834404548974900452179637096365247626652876583175452732375199415895751589775300616097835107418657344132124933087041988177920739447081422333607213914957710269662093852169063870357921933067078427974684057107356906340594071960579463545001151584118025650225008487696381641677792097804584576805741770036240001639258735915835100908820249884447307568023648775643823248409636522259738940872691250873061348998720272958855664097605076762835896270717310290214603319202201692762302373752894238649565833375599337254527717699983136385818526183986120645518776406497294360155183302693045010281997677130094583205495988573361449679906466394507701387155837689497673393068647404619514762792783168485635300109799060679873593379036115889513706462455316773580751122167748416284206878025561944643406149631684448804582468581256594488829426940686660590393203709140199795844920329358685921353007229595706429916119669579215165244991918160048288396826567571332482783795458729299418768908255498063874545181892534707836803214059775609191401177444628858296975888801981112328900776301365353010115232689113090793500908684345956900858191200478101248180280014406568400127567469447399668632411562708501531019101974387957241762241519548721612828422682223561132918289581775802488555623587871135739580191052339922468322649326594010109045120770674736470207630152369297433136892779356430989740470756979919623550850324258659256637553486466633744088948645218066151578468530819680797333693528154227231134653039149529928763110066402977490276426943355102064017259320632543404098661795252030979382296869051271671813948776231490851892292661956149173295776795205004026522711834768075529967111791909689113305420616966421975622541028998438260069555705272871425401522073213982949733471233203460122876641100580508015606879633871017339446482966685045890937660571027892358690980693958320993707042608635842208831596332834174227280248163826981013653726638497515112285387689161676186989527813079038905010376717105708859918643802149908606451446540664547377072919746818184984453697929325560961153944040132493576681106398409941156675575080812561742619353538051893406808746060730323803281351263098241252347948066010376406237801679073985881268950133355579501711756576928142454177006459840547378581503985473239941839593346098272942316220875614256699273311747880360762076483504416004341674021761445684878191900318199283860053627672240166748593426282951372864238634060924808667346174298838424664661791874009891787735024343466299415200276193925850121292590249068991081866446163111597666273628511185517414602681388495983788363941099864296922681627215826538789703638962743177197530349516426872971431444921299969416381576109558866555052394706575876159417287693411583437750107542695499120564577698868588056016136878747513252734286058337317792813571731294523154156293797220334588578241236199938362102204744716902613505871767018817924773367644945462834176390677959101518270758720758180571872362389524781762027620707069311740975347176390481244685731227020357779351561609912195547387255447206436169344476521369145613472972435755730185851241911620697031077529158438875526775095645432125634610696749027647342524229498527499966762870297244923437318456191486780975483232206490007501538185567399441506687310790647641451067765064996220888921998792920608009720427457797008883433930114198987246620669428014456830023600264120142938145597772400994350665085661135900169172585734479324234712846612954481642562822191337291039700093465653500628376430790272218890785426046728908464837281490084770147569940735014242694979403103450600558302711769143898086806067648173942656453339384407634038306993020176824546212288521446241116936057217344186012839120514134417411035859195527587326693964552203669803024306911796847814104763705385846138497281368745830278916409174400568731006355340054375940237101854920415251854335514469407585244025747774322118172539192112931899554975984199448410234925219119220459617622774549432576233553825655228562049300297835797006028505888717748925107917351084676867293505157652418292758805904134073037071794954510473947336423701534741615055629180623984551887398334349442535827467737649471139764339950312656734527761537548543951310464282239246237913763763980525401707270911417539747400406758177523012038375911976219002928917331619421310201968104908461426254233558385166043977154394352312350077917198992193305458321276125066581745465052385687292042621952024157554678537777074022415191169499326550895312199715991336785443972087547187901814985574723838457591464967425031082768016907098191706435107098621088693640140627865870642045388317191450375361849188409783657725771240379385060040744568316141646092574843130086725937755826712135403611089890573581939234949691225233407148288279438178970218558599219386256496106992384411671609701255606175719433092315435199862007083980888060673426573381061588953686815014387498547171906007526507262328157878188244891472052116001984624744618819122762692306746710756064664809986392805508514211592125908455427648037398474223357895172055053968725704568260870790596486923724820960619302305689165879964068641150572056520585125959048729000106944622307437139033360911217303095720788004437322187297182005934522236982129329409573659227563955476395172998137124610624858134233104247434197654832518250499453757666129731515687618683665376440931321858703915571110526904373004825150621123449300152600492313467146425877899515793915210602836721305068508687859335692168208476158112467012275865668131532556974448815436000374788967612065517862770972985943051526851294210275560866101995731748143632545263988981746251803689224541510274588703279988982357429755571187895611881004549381678080984521395718503296413755279222014979503883896599176396988525544205612458202049522736572861877718153863027853019362345019873333727280703254081875035160016133681338579481524763277266626604362979686749924641101631444086089972000189728813676033909432373758832861922716616447517019478184045615293181036496779144522261289010223297749000877781382736406173122203816696804560738218395657900881846050374839425867614427488406644665407253940288825703875732655018950604082812194064684871675484555803758956315050977705061275375192807814991893490734983652583846663535976321309389885237467498688848760206811127654165540462460876817642281049747782090210165851339824388882753585456843723958824292045646394025848506852672333863975056335736233343089750744325994981150932237797447121360335887939979712877834640318309584316463779967631101354877385694356295704507184163048099763488931143122958523732041495727588434062096804568815207459526047755901350547294671689238196603221646456916349990095450525376413868122053772403939369929412678232947029569321741729982230384208671440235157489255997709270900985830735736235660730826497998785798518398143824226276356505862534884252178992729185875757386737253980738140363425728187698251491075086869571491091053267702720623320844515346118248021665776739593334149640203068769313341063394096672963145002178926444820902505578782924840960684720893737394413129874557323981036661739774253772590867597481101814635226175070831251450009441821730486579309917412657345304222539609160642365857170615229712878582413557905531659338575257424141816903168477060104290009170112473163940137449558011038539416334829065009429801401793963746355392397683209710387697461171839200351443743147760888150316013529475374496327404477753461622631160328240820029272160444217648438523757993529571459600812494894662971427530924384258636118530765166213938896064823626952959532655242432264719248923060416465078365859999636533443385693860158963498468403244520719559833351394626656397678621030825363007497175892359263538551804597805250397922319345683800857083742195211918757367468895892324804061646376837787960878070385552313452264954940756911318233875638516357750000952727035761899451407221270679181913840845267330076909763573688918390043943166288977907951458972620173230378845414495373936572360696050476894384002519926070504414610003307230930694923350066606973424590966097834230051232694971680003968071189916123159462722550591646672912947367568205978198660314539293132199149708970357389597450779979448639879253593186737269864572185479116117971090900679351566783107365509169354154732427646970194935580695348109954013077906555644632269596107209110758096639843506622172542394515703680973415019839108716767534404714556501103779318312702120142354825287274812723435098745203332003182194609888539768977205629223518708341680936021398631907874100090728730345771572421185900314749161076105871488065212469822545526793648253601233358532426065418432411271583856868651741262154840329567357085144142706250905950071746426090140660413478958742577109425149181907970005672299154128470233496568853793310668796660345691547007610809379105598589402487833123479536301483699117546036513579935890642817457582743235917419567384004177209590943867455158949473514085836345974037079454464660972735524362829172474046031568269474577048359211511429824145151129571135030527898361129200053336786896768247380044891200056845277615076472189846741312393551256206712239385543537327185600659365357206409826492133088646178043329655888952437365702549192897448403309788133661925372006892942259850695989985738188154840289464394968898557553366954533636194339510404880234573445388648021744921513753775827560406650321661072215886244827474168990731797537020465278830600276262977900214976621844108444844266347621493486870115811745083005025419660949114540650926686997061880790233589054946516959482674268460650023006390810170497698292805986215587144551946844751761580473729034300743770114512555268413499355555013331369174631520296165469258244738096339702464797969942909540886935130547576768818629601321149274279692450910135397604507847421176161650414481283759775277997381576274565154442639523782886894938515366415250404749990236085502650055531336753229333207002625322198629871356323399152612269706703588540744320966527897909698349137395968158606829862777393122421188576557579833254556034868284928415903663688256749125150555810358394727707466646255627722522500564463189203663713192481564574189567978342718242663089953614076825249367526259508730416292796895893272854620149022588406907849720811093168549575824377827151290854498100761938444572171898737448062981518274674774905380272692425931739349643955833518929365607720277383768611320507246847548190353800577891048410852415210390573419837350717754345773429667589943341399064323522951049132676679358552077535146603749879778331531385317920877874553180021149414433578985723286425833603821012442327350756600736380030629588353150384233496288187054534937210179247566543867848687697611517748555254911029887221491487925847541262743452932479483069384300152593675150284159134100754648853659502264035452769361285254465781880651248131355924328850104101124218536509230289346258795495638208775743383257892721382637246140246523901052659926176895392592846244385893380520729113399192651367270060845770044884504200443598499309080358168107833933120841281403939301050144108196369973567555748336417292416030643397534829738615494637664982582203212650613657698078927011633816369595476393077439206304059983934226116186965959381334541782313716725611416812020453307135892589241528075169245842255807463130526643370401170399847206108122994971183037043919894220925507454083185615963133814507915467133722225493003161063696102298280096035434203011699733520866571220389804334454004937792655425042091455102218688051669347004578477917643073497886020673981240586440902802829096195572424616631154829884881869966478159792778686431046196203547094523922316289118219879302237389994398633653086950633784680632984774546723425330234004037449939526365348806640815518061427113579721842879667818787695757035411251463828738133046682213548279960287780022694467750472396356239934812653378343558442993286960603039566829660491234184922175046462523589023999398584218361868095656549627755472164979643724346292027470684615332588104134704677968837890533981007326237175132198379445933571028819132088293614579782588954849179423994534503901554310397702300833781289152273976027816242193831211673881112374469253657951741174001258529794149646199639401773369629141872327385964185617641862559331207678486202899136187394890312422859162072084914565020179455195047776100263413927680873693582451567475224266832019174962121162726777908150995816233413269891223605586513307079208548783759245520052102144749962486679796122387023269751930820773983202036982748779821646702012626258246164350389766630167865918477865958340781878312826178719159488590657040969414795607322456648430843730511124389375093826643635270005224000272743107914960937427845638971241857046847380348821979615413963896189220138650274824199030833215670045809553390160523341984660385977779641517273827494154593714569729822562719311513010467775251952067182517099189331897531883541070286675749046833855745942077469552865383165662192541035038406393509444735012475500852668635990267033832605033830722709864789585078045691517044548665059073993373305830206166160146719987772035167262024950357976447801305413576259333321314400028197413881244152147001087938107547904698281618254588061441523675810056621698537287359395824376944913792589904645172723768242758560209448032337924000456615472842428431584750170108298250459063392947191539289612862655608327817798259837722989863357896906242710169817750332936096448875555761631095494500265259013115685468628048166213915035761471030052485598807702108965194416614633039968075072293895298613189824465522665484204609811458171281490911126272851197551471037087345749516114885555186738403610401386866075876971995901456303909900567116216883173834120912411673855304373385420039131776587531115555985851082810996005217461443754084930563048358817873325901101383233623163519700431742194789563328669902972679927466000620942463984173111763461333192620794928365709774129070212365298579731810167635726970054705317239648063803263612830876119886925675241331086362504312698877512347789788937042509611078236157029772190398423390053891793796151190599797494631589905045037075374269674787332462538516982838072568792390664035926054197418819219506983093681208611876798016593313143855550395459135559962223757701128358512097544931492471139688489536488218814163764929071764146628923599356325868081186511462146891564742254996136645158269999462738168970804298343902090392551685415659729702054833784639152086812254212265948904873380486786458823319105451341484344406653783167118988295383887958537570860039618012610872303304806735405136063386711250521119311324929610567502493264399475382501526786471726559686739226526715441132791727801975456600971304422696722717965814480546037819340540312483495656228487129502730387322162321811682030194381060939034313986601859009024128435529466476502773556941959683490750128542325779345500778935565409274081021898336884584276435090424125137983615526030558139230762160772691412919734663478929482106236520752507822538393116857453163024268903884642712714983630102465424978576024165334543467493425101995210475937422404817302542684493855389213571139154448635158245818625800068647346343657169987363035477395628349485028883527447337122715842610733903591244686507800579775088852802257057439593302646906520999966073764011351455545319248979731527438126797229628394318296548348797825826376308282322672894465283067574592295585938470511246662983840519121641474070532508863694835075024626891824227400683667758772668496062879055368879970849382018551806586488247495698736788397089171056385590468866672272381999637756194065631636912289754377724192001466207949049153233493820459495659897391477580384080336046896430478646451209715911578602677221696555414072294419189320315778840824454803102468319149081798111965793666597111530550212504948987807440919476096878515684316383384131894219830721975165127970296074093413431232471950762707442037326872924917764559845660773199690454930079686471614327311163437944593052318513559088526791523384442183248227627015309040665740417589572503664508801042857249180151346136609108922052276742752498673075626938361168284190857068919386754522632542005661040042873487592461882296180672371718610236206412591072103366381373568454291781105410100774264112304171539323221061144953491403149899905520576825937951397323224748786393990098106867362894215132518554262459395099648811929234268048798492949469769940172727810911367190850907066405321941412966360247549198057885146820657124798277290759763015752473940355846577328529218600294070533022201186028553051327150508538216043499140091703807863964181060541917006139989762489041400303764889686485787463853693492064933453276670556308951499564921834278868407977565473840522524138180249150698339626008187496127698755421709075965848563171983146030390222290477620771448440434423103387069738010471726404171347958148869049309595184961101006822539315841258572418194339660018241462739587435455775730319043676084654712498515359109385824451358742428409797386980248200949529342073955956274077248222911303427730995275405207217690000350547240275050634418973320237422027101822613416351988429831506035600953617773722677104928685216998410797460063834447960918967827079928183386703920865785789661930952835750202402854801949067661272582482423190633967116103836797640448045274653542731582226548745484144520755289598005067214158034490164241123121035486112450824595530278900204257308284884208243113380799989643295048926325071397562941724306742910715863748854728398033734187610404055028065949600560559222215360097301720968180968989149938506146070139732290016970314321498750622499068133958702925042860133280121685746906124556210474539720622957726124767525540654334613772738837780656112936473264534676030801698070993788830755584646386092105828822168393435166461997738278085596787877037240226086234450085228196819768139287129282883588644831401108206618461400756208881341850847030618892061992555698428614065358991734718336548416392868812086315124686397498813109493205354367755498266515685606816010508884994269657417820668657932017208094185117290531184264847746206506256694549612027742825395408919575049117772148747841968148972911293674898172924006669915196159273663597666244497101739821685003738953982356217028315127884179149706596328477659754874734700658167443827069081135830697999730611970301466190204020308997642463773836948970734827311776328363721975525830077636513214557061089908192303882447301825612364131704999532141899856155269863658468381455219020669308698125701269764309460284362698301030209418339012402650316686479443371331677462405398556169188382371932376436768792235349496245841132093182513307729378809835018112966689602141209169275870385169762061520061654611452788787018498668997313099218558675652993485813359297952853738166651488711632077987506125876131342365149410061454646249035899452487919578522678810021873814251347546437715125410723861330823736301692539291393391726635886817707312933401395253315139361532030052919624980695579699095906642834271576123441073741625198807026471891409859096028258114167045974518501659189286117882344146494039081097359626661586615953125659009525788041472329461905224189412019289876035698531238916653151169985713806395112697499077937302938748083698253111268480601540547354705775214392172283526343472819514354856620745298545149127595769404143071391177406205750150580053922641235240949372007954749239801455249150236025775591035621361430723355858260795287700283219545658273647030790362155974356119665722301544470208921852825135790016702307137857529825425198456776431138716880115880814434054657308009500314918964187855194158890611573687881556978957754131973364273766148794327152021181004421018460858969748527232159932534499295378012420622827988756503806299505542543021258050002859851402262627124279009844785175440756694447374470555116424118894055842301800133238003024479141487067818276570318758012788692769564445636257928864493550377210618884232012931017636550230454651037197433453283581002686203431761079402186706201987128872048222527600300872412624894030944143740992275473825390109879270327147355183376395322615209465809237191608362562269934369120958290604159610390463309495674351446889756059135461747143724578605531835486622551417288535719017260386662683053954940144241068995802105447285114468642017363384497187866477296217794795664670271777919989906409191203804877681528009340085924371122484206426505548028637242940989693292878525653784638902476240612865820439548608751248778202801092874867596191059259078328055523327413197455665247758374623920945504592031863516451642809343989246584179760622617596324822231497545477950986850789973902854904921771376378315764966520893973429012119573480545182220645928642806438864229206237635523852398735441010162400014172832539998893317591593525595539533466473493106236725009813755632979238011794750091231012174778465728544661201947816022073702129797924187336914494488044850041067329619159250590722834549949079759234094391569779437173901188967768930901896543409066147446908984342479169730637820931645379520280352300443632022587750143674476723362702331739279292399314820613386983716193352711108126023987407513409494598613849354698047255593182706379998690701232038225651321266043946417378748123719677842975215891176256741050910255531244409542219717568042689618004705970319308647524637031926530826427519295789374773295805294260834178380868055658793639000921913901239488109396383172009531786008777206424374481292537328209110559521533674450483162829477673658645782990837174898671346912373711260929548872607963356357303178484680418657017500793341645587089716791708605271961733948707610039151323528863452708583999958707309900840284013647702032637563751345714996260598106303268010947544869092099745061134513304762301602404474981070400457710496996241028484021139591432695676378574878443080080720682506444689043527932801875876625630165698192793701609002359600734669209542757294368525845286100601057839916213358361617411501414727331817129194885975147660010874348553594605416865885123921659885470408438710687176404460541163465917330409002190591216532924961839621103703655516851034875694025327379886501263894136411619738014605478108950023922605230561187040090530455407009864024092491668571464539508214227381229448052851362072032772806390879632498588313522277276184975837582532751131888794260533787050132645222204066279713947311767773140868508923886136578128672710312739340370074377370293691997997246130529697613966079168192403175517233226293549872415458924919660736155830473706502942642027067214117603850742438125403654974156398725539675591604402710335277307087596171224994683571269209839265665126104596744103920406932185105475550689185109944955474349391281757853941488684449426548327839923178119026518225165292056993621480529603522433755002360545169519499030879890345662831778868366760513548206506734473023619843511385901580332664624650493618887316832539752692428557117121394748411804035893818466269685186279619103792041740610360139887333062875180328156784396354096032037946246015227220419080485885051087512455924812216501554733893991982766911970595714990580405562325802032757957823215987458466788051890564147187769473808958570759427225575790096402235353155247444756588758908863548745090306080717947356772231068246247656844308221880236226699552047844659905400803984695638076254872452109785473387299653472438785052131044035597755991999637499779606627055307593530230501197058511841788701851361538261917859773277032414389606428981863881949151991936882633819561390590506836627169249009472309875438420498963727876614467071459744542016090563090064924867111858984322250622446767595825404087820557586027175343230876431096592899922489895565168964557117803210677992622095882099375166091309592423852304565680883945580621101707371127641758338193118678220167297968561721987706827055097397187314786515103094857547227517821369531304765524500412272954869948702849899934539642256137706800471731683256128890433370708116024830784984674651405184071012937971287350878943478091801562827156352702053165796132586975538852222848594054560753654080834815822184497972022428983749261184467276212749784191164354360272450891164260107539044445473080424694596108059539510568309817063739532130012314878608217697296813517789736866227386389826167296573911662261927557626058814974802565654947063767304676034860840413475807571787480681533562354909329608213648982688868219268448044418120892277322250458096649156245902591774608169980553869487327924867477321952321028790794520433736487423421297487064288007670732093081468265344053693201346146887394410369477092527614128565555325332830746017108040648683637264475963304405163082281289894231906435706688345411965321496555287143957867698214702523749958903342394649592401814168911253942567284076781031711684267612687666506132638759829453660403608301871530209815310855584832788615154803815731847273589859637092023406065611803121269672407676149389608618235841482531558654086709407059695034738374436943971216156300801931167337300762149211538634392137289561794777056767205373275950821330500816275511254500854820948952380272705872152084340115738300776002910393129011486657680762769433860263327627030165271021978650425568481961458492015623623591442967007196739565742336242054084183840638582707684510828794034188840221269776269695030732943599745265705073204161170330872674808101656833605150414828073869886493524475211824760914017342080865570190323187025741107304582875944262802705218281129468602805029490474895836157601654197040109213720233976759381909119218382758435132651061460317834769173904363394397996016582817113291785162861545564325653290755628255961556914043976808924778617498564666351039825558722652744352086367297073812409031758940716796538684860136094881189093718756411533371297763461792294619891090975741119423203934617461434049115708488358264470857449847011538885002783759817435727116745412798582698834486299925528431952975756945585926026770525871824383270804674718326362546478463572437462497285245717875778681550442662475933138304842933837525075585653018958852897435411330352232892623058511008639841368001567914272245842052595892536870302664697691597564287103285585574881462368010375161056248003210800143482212346466686027607840822676288998139751286782528842056130199026791018047876689088576158205471418100694689656844149404313937768362274401635759349351096368899448226312978152182303280526678568196343945454046068769329377438624362697482045892396731638501474445629683004202335532921926884814604547365231987423780352006021746551503906180964559644748222179111800340998293578843154129216286328664785517504940987151044320327779507141552202049260699096366595129060214628630505071086763410948655728618029844179286199555416363055609512493492011209566571428316075736612859951123753128987821661076301831867056286326073006724109617348186214125741585825753046813177781762701856001925230447651125530747888641719941055684770520299684584837377208141643044766048491511569227387887475659121032246781129855175983669892675403982215463442813000186939950077251597222124449512942925117623285898108367546268622862764649645227366140729892114330885529715036647379360332786787529785237895541217348673024398841926575156838284271403940168625132276501990572319133819686672034570918743132918771388869369215653219026941534475711343741362332206701626450422409800323186903029883929736003020365638246320333973050465564652994446397554649669202356068473507475648395908511236066816171672894039351253874671708792425945375542753364732352410983133844485888379332498438844716799953875350997662084225166153330190585615164908751003177748369872765655481972513180924869172801055578843748802251838922886891726650856589985056679450161152474991105234356440575343180128549043913307331361920339540079006570578335209540545704571545288142847100132022097821588009385335243222938941782941359758849638784146677629005637063728840478972645118832752753953790312928785224675836120183757431519727986223005865524092810689872215225959028780173043236541815061745314228445550712448646434358789013279089497304612626976298314527074378620103221459781686472131982878125637841385840177987457195639201429031494323476827701752567217565881778690299099521053548335970013519307034026070977561259440540020218486617227140685376494520846690278657499722903973486545475276587819646132098405457514147106768110803125834604858094690191416095986365726681182050055218905947961461185325771358395074268967971311654150035746019665275972535152513902473195801748992208067744901197032694695539316166835751503493896156320915276213017062316968328984503162269119533633649700728444718594148332067394756814543509985561150379742906015549930905179689139592798069582729113746096780566922064283758680686867769035923696343471529806877449582694736384606178679935524963261121082535144670948558264767288748765940838546083498222512064832235612660632273490146096046708087678254092970770376114756355212312615508249629446370300853130853009748633655769818395584650680061325583027819595388976222525901321097854264995495129642830839385337289897398965401241710886461367867343723386843653928513974604934427777894595478548422868005872891914633243554578530951358505015781732525897364143359926620822260231243727840442894026283300810517115391482093420774396086341787631316126782069694598588167763655875622643175872321449781714882766149795847712549167700396984253122860793262770587123539135425954987138673478272553289213513804474341842356426658381675665966705011228613269631397300803485765574030151735759733271087159988965526414392155803467787592127557198662175169803229838935499096427636434715791372028591292696802222287258992937711462041627198528897995268373842631683822982560047259173064247314894606465394928354169875425127612237679734523922641927326855096198151076806070952559265099422891168527594520335948070483011502272557925157697803050965152263096084094817074982510980088890863181768253444214688554114037790089020347279431624460291316891254275737262154966341362078002849278173016102001429063862000827143539934411684860353819157727068019743624492229505435143361784466324170636393239207149048711311152314455044572426191501689374525160164820185019074624380745855750911572193929544621110279109829545305220913920798950012289516459524635274812037537715227703983256015797510399714467805659872926189383715439262696470795386518268536073953311177530323265283652093699478444171765723563204255638618949619260043825346493104705747259054470134825589566919273512002753912747153906608974438384572726218963022560236426456759596164239205316899621528110882417051127255796668202629745980327339076999256646113743824653075091165924468296749672618548069892505563909644331115948008209341602868064541084789552947901378831134474812664824749528491240188256714470836833140521968976647946210486961932082998699796520573343983964175099966490214506975727571864680503828556338470009056568949292693665204647603168402181609070290566969455120271891208067372677227271639260874217728094948864927252949168783098149116370365400680660092477038276298473430695810489831996521989034632052451324267051192452812066665771351427081277593462707223504700484885725306686594963870436450678853533907835664952222945411172959929638664392872358188597588244789740258474014518730335749727383876012161406146031306473290624319904548683072288186644559291144928571946140258869260042553154042254915870742448886160504309871525504146505675240834765122006369956522827209542763844710566244845543429125349410043397450692895555273774118063594257145616506949721239969332039550222584490622884079298984818576302512579724989145634732399410059844459938843573525973098766136084814912460671086616315048374385865756766203546539243145069583960504898694433118954208964722552154004163505184489213767240920955975708462569771118824919139325940760709142376857105333783213994653608173535382419008022913545951718909504746297399085223070579433925397131246333811086904060422169055307945841495544602790772572214593194345532207106219239607552658848893978003372262005258620994539715622829444226096593508979346395962929961196015087020479093102511849671169908713130718774146908288047881582451508794788420608658065001002088667481079085572463092275460055194118848817554414427175668548651667671395621559446011562539115094225176274204615445197253376779086274404853517819619908606948793652010819099161781425235900620531183938773721187605688307856655641946047111844714300059489262499399861226488345699702747243687919211507900844140324944527282240086349201768436224975733151710443526322473987441907311981559525453984520144965262987290683042818680152255714881009403254364183576356244632626394675926274036899365306343270847945990452675794275935472576399928823380193506069526989412740715076443036353456043459358987061613608783163832288420807647893985263091939954159561540015969180184932990268711322107622014873697736409529146658247051474100690554809564361010220472103062276780864169658625358258351814928679992138859038571541730561013933383992057621620692976698140254602233343241627549678248623771453945017339607503165781899969112749580633058447233601858805387638468325705539234355192418118928916497979715055477654051333942153266079272774792168945507571055878573078850181157024511278809819615639871063588214652724960110230313017393087125667434258595591828391595188802574608249123816763189638586348993415109517855647706346222960504100785689365889614287426651920882741372125188210422229875626086247303715430883748337615399969704704570653624431601128532317984265676109077395736276077831349494278369455657989748916634106370449171873198933548394984575668393865587641815321912555293646060859022742393320417283038183644941437015916202236288852383174669882093559332529161004143265887380154821590122408588459335870926412560846004417608072500025345936458232902090398862528128576211863737704340744547895058166472188022748695980833923884376529243894603043097927055770263607963554021234860049263706173901339114505022724186427449522199735047246971822799041592886010817199554791231104420349187182823193518423264494648715947290538026107855971522961141921270075611731901242523842710900938390808814350370673797178366902206908531937678317896298602284371836755214254160228953354989045893157783050058847643149285175868825342959658626155538980181630090668143730492999320197714137985024672493155572465241683929168204148029165155621175536264516904641834642287909583736582142969903032515360091797357584891947948447597360899644887297210137729856277609013781051110914770914266626356843587401318403752293476206791987041810937703669305149285968263114086984857499663234642594863228333201014360324762177247868360931363194343384423797672595641427750445729267327943696388137157528664374007059028227534942442197459226608866363180919350207716159751910796550887206810892371339072775915480774184778910464948364960676838222340248618180832288656180311371570904995180902410757253050552649601448667159222699035107688183086805619636286313773649910162966017924093896012955251266480874747305904318862118296106255473105048840700053265579452227941221019016623624283031082581599235535531733686247312630710953675301343637817674653582143091448876060018871702540795061693304778109354020769895447285841563967877876954104902144367856280315865014362049095741558443370636661959236453614949487981597389572905704304273014664697242871612114325868689399402124123778281502974530839409355420192152030922757569259660995588248497954296785115919067923786210958965483768836694466992598397231210943938604680173641111219618635415276755357571364301860933485611755991013210384000531760596886535460675080488729347388367488798171852410033179374402541415939794432442218009550938543751887604184393551064351921588944015307487625924855645097339660758015895523412747857990256057207344961193914298871280253372089468412409061876484378956000947276867805185738719056719579118405620321477151511776109667748784979916599342918506311554109663800542165984991276518381248218875120199572104891300886538586801540177675462355004951517390071671616532631637218621304080483496706267684705180294287024319462974219973467919134436679653610392666838982689715924731352047155755139049389183095642916667541748679497915223974834481281132114423983742249812084521714068822444601937979911996591815946551026958473146772782308715953011666419366788227456367650277769774296018285764406546723901635242867901397668763148274170795049845863711744462728006683728138286288301619889356986165955924095841276669095505190223153313697129782694841329586578453698508297565501958254140893572039291257398115574569115537538659394830564726267213138777285041636283598266238029848627680147827695602733684217675531800174466857680786634328165145332064015754247392582432454525954709256518321998088849479235323253573302558719887706107387235288778513022848063631397686698248932711601923820100837375653036896406204116119798581823304253819805910591591801062419424814844281224773118235343075509618809928642466501894373787900351179778372035848256167191394265126484809639469989325027441241667429047541145281601558067924840380062262612374070404385650752143048757830515616999610015884986176834898312848961474443528208588834918648208341873162539769232498591658188321252205796977966388908310361031567430926528421399993760383570559824069338711152825107428020230563370633302937230424820559112504941156217615917382748625617700035174289817727544237337326681566940616375586541672401618163495053772166367232177079553627878300626083804745301962279204517595374996806888412663201376437613638180402738935043927913164717906713443176860072077470825328464394905143945384194212447334027849892079395565837646828979628037303911501559775870273514064242053489778543317642146022712407470304899015473798352968401735166935290787629957179545319199986137787221686093460784609508699311400491675051145036566404103685208114327928172479657537944219795442179386953035876189271001624751601074589175214929091577263188277473363706704851954868055333108594659681042469264618313630963988408264653951265810260880312227364973174013729584795903240550862656795928201804857449112778275029650342252982161859978206838827190144090476814571415418852415475981406567721594337134064468067928857658628681990908460755455470022007494837783623436735421096607953653810208785706045256193962718713311242598732691838156498584681932494145575626891142047435864179188788383577278147754116618121860753836371682213420351137582915489835799401392803478110142961890259127273328559301796408535177916960741209167638770970647340367322409663345029113824335089924709300853868877116436913787922228786744258801619246957538526165603563326905915945252174388445083385356740623588835073083471273123435854686358321069117295106205378610118384616209345407068562236638571662131018027521227225212264076970933214428978692257375239359198202540853629241746187658042583908052936207014643066476776849203703531468335136026248972423608656553603260685538578751373409147471100813752159476593014098606747455967034737003534789513694238880536779625413414556615602364583577610299549289969447465624498739711428695275656005836240928400696715289033852050690037570786775346731947076118222695020004491046743865682565974018257596664901814984676759742066408867259226565087929436334690277396713881794323934590615041858775379164444619937988224180818311369953912501645375000149913368204772404827553906080486343799995559392904801503642664052723547817931141693792680072696869154687607018210785730734078152553899503586544672657440884739524611478582617108927393222522730738467249387432438573888964455569355518860481510773326433934802304748618960118342736422450938424087142679691568173313008930168168354087204399897232205052504877519678673128680985075163387812295527779591702101487197942934368691648898567048051200109929486617981373853432556606779268706224677346397385185852561393344302256610555054745484164838107489341376791930318803533465815505749665716895201000178810317212182798049560415440997325337067152434386243878267612405654906307482365837362317442456364465251759168985771043117088854133749514718413998719274940412002415674169089072424346285172878969735868558049839212478717203225303512898805988746518819858408191518904322279851708964930307024964396651895270672195466854709016813112710887599640334135157687748719774607185840405454955798260928958325582394608649685417013520610511623949522247347052199748866730385444803134616852792718497621215978244256697625271653295337880622470468943452612074825369187915692399940847355418160820280711287274891066654838745971746892358901267436528240811140634453680201175226955142500869015708701482140295123614383565850915991637252309438498266436647059448824718668753390039761208689373475588049887833607077337282971970586286832174985879476506861777782824689617278447828362161933834752693083634993064320967962724106255497225303484578909190368331016559897740135777796958200299174335958232542365602201773223699684417886029379171321552065411471444925647990759317311883387625246275906179795273214403382021219539887419492894355100072059075840154692318180212008474927446202832503853945439729821311034925881713902257059629777595480506078407249647597535610638338415343859489956876111070712355144593241937733894415530303886903884202288540398469260396586930865956518342693114597398678948959985516654681593652200619380448850114073186070451871976668464948878425478008413092938502821767327758204133941688357785841740629860558153510785051707120253321492471315417246853044467971468102805351930427795172413444235009318069838012145830439542073960432384383946833104924534472602535243320479835516045374296105592165988605327326417295568030113888775694194814175925503602118269458465652795575437820393934307988505121213293136550195056096667515499299325857942165228703049197543028591750619716886352286017102419492152585012409118203070251990239565219625469027033480044798716152945307240710256372713641357141180026608903624107865303060520495109677402312513900091455416284836067887684119656669393516824148824992442132434552518900919941217313330053453892523670078147380913644402982043229955881978040237396403796504561943762476226356189504708977923687211124661679375902717775632370986838998923685922621598454576414879751823841045979687827101757983414209451392676340336420232420782348762153235834353141090599747684008138818188561213355179063391211656845209132045637761022915453703045508758486635547810837232555974940414611807082294385737987115837950220070624541065503445012774330473668472338375924093892319998572698320949477080280080179172123716035050443159856697053305601445754604018523122713519205242212206979748429371614196069132982792706081819633379236233275222513076794691565160309216128934113920267451618493105457996080409749818912290191549248191340423423640956549624468739159873188463163857630048199553682704957086707113879208011932797604950830155936648361540807454789423556994049936487803669546422345169164217292278755552626921774079199425301046728210148629905975531319015111248133241654154265865092440515273020560636077758878255597925363393829475812010337172822333838303488282802278717017216130687875179779616452842021653656204277443517498030432909038912331884963428319185617878118396919739737845089758741314418821999758161730918887847632856933437801878040993348440179718996548167107569087444216478506000613712619122217956323334130153824365489104680189988860450834966575571622220991223447632534777529547294349208199302638382720952771196741955920244630649443443485638985948464996802204330502076212624754309626626872040647904631501346724334221013308630040488687113950884790078904788986975198329037068345758924131629492512370742199063986427498338655297429048755440882284550688130852406088617755419482624181911218789953770396571347405936854082206371325327626064616364524766907976828760818480524377007815541152559378944427315613456620034440864470492101834135168247452186028692369032733142548279903975560171239785338411850406194144487223385771724355679677881541089951346297465523870912088693536342620218562006846633684957772683626637583442517933109530766044703898550649221538134940748688025406764454850117576484282635367214681210415258031302199762934394984995373314670806405449532427280592381806058832579717027380788962435158421493040870887316649841989893886168427551839688843762585337641114998349288100880428932702150689293046143223059954914103925368882121711547184391618365901951907755350164734621972590804785367713351352915845399073354706908235298983136356445960808796887271403813412604555012728998565338060549886513771434290144632035306822564782347403303784082657115202399721442650280330242795437260457324161337658632259080862385007773623307670586564218357259061502005474080036066664223622199878649933496331609854123619657098136081840787940930997876983071983840668348417512984509815291320697524083324543280266503344010426111120432703618207993519806987388427163031921407027883346242699588566046272877846731608532994104835673294253238274352219781385847531500425150856647685577247412884033234458472013774653411789830886225982680200082423519283754427487646822285518248618629257065659574701950547861019295186368435670292758272876752090710283828584762193761358143524527967794349519997923141319472092283557207233753971816931842675964220290794610223441425765934333178210945279011583799398182905657360062089468924933380556196505762441083116210105426692586603192295452767529363613908811248007142723616494255947809239124092559001211311822498777158018881744347791605625013925336180365600136710672672000741094266460239661950383010473053505422665117846957352067548038253917022789636246820850220374403853155851824895639981414043219679769359277068025962858940627435748457810432509362741659484892619235670973025795787722636756685897674145866121366416643419433742552035332247519496004848683619341871290089887074888360746221470403129513202789433560862771239330043855430595212041544887829475139327000007129762087934079148110210971311732272491172841868544916268198903887596641007090767864097611943029650562797394945486798941052476335761827863630299163345621442729196708393495621513320397372524593436409697517413709261159459447084727591602437195168919755523847651887720641720874656786109544689533979619276747697063539259649124022487271732045237699955796844641400500449193072224276209578985800000834267597643577986411678854378938295417386745235346132673784352560914211563300167051890080050294016531564852697832345895532110693129336156260154219208012056864948606729314024131952761668141129776229546673533321542454910214039840810558565488641310185720520119621554638480482166269978418904408975623566512990933063154283240349790401934250154224226111711555214159576589700153829452228877031485533323874603050574354021875558860179609291120090275534417837450947505003337933803974405904451150845099547547967982415608201882669328454237329805476183129110134108053242401852974214336323232566949215508499355971377998346956972134850860424213191392639781442228612562695092784231424215792282078358423901378729900940918442073392535031278623399575956012430731754864257321006388280901374274607229965315065095033221658259656386462614994253942173995171361456456757865323823251118666625117854953273369411663016903468122689556299438712058619249684996609815496648676213721490672249774349418772546332518843422423035288002663019683113020776930727777358867446008749417052967995480541235910502737689104638162944371408408003877785302952847913134086092332912861551515758633764096308093621603533598854638242525272363588134193405502010638557175926709666108425458919447511375512679379072731232428148484831128338387749517732917869803462674457536696806900844776320388651261775008955154121215601166894805104260503274094518857856108255052114534024208670968627048881412797448169210578054509632090087130806844307717852700105330096078113354344609823607136441769203278775143049405240324605539024129142232337680186593004900405295510642378390694532537486449995822683616333829191592860805991372824945058394033461799907548667419289247672664837715395570501805085023850374647265962248640632052766523314911765567458723732573756725382207449845299171276226174162643657316550794438696079689558292769313299675162087070492150779012750912065792167790892448085948806785468631083255091435756289173028686964830066662006906662671193709814812580158137505222108288884186725050441370627501522111911387139585328981110799682986477448425486484227762162316123178398483837842994961845682758500637927224706209916998372368124042091416760903039351878715414388969293796379333271972797812514223419675144313227059737780487972187115850832200663915849004618598924755649867077885898619475218448415964828639491479570968761238936521441065450066284645779384138442138243868162019332864168207903332805295299481721559975141852123434527229288245589949938201283205638636049482814464678250228152315429865328619173106339939804503797171773420123816703315312935048316401589177822413986287668017281028562855618029763632949889021397638767804517859602605048344983164047652470092917142340987566866690133597639563024580344508524039893632487894589482803290498231790162446007143397325779083827671789222087482157630497514364929064366718333884764327255389695113667808384980820467761950593373851321737326694456543227286031423352734123976712963359021847666809748732424996056138420440154792434481678701837658144465399063982443051422043777426914165901278655978689963426584261702342834413549057174364811089176288425929363187393495137927968354161304000105443697144751650336494468671245475971836403646295003183157164088652775463432120946152576773922140398904858058909748369124824312612346148322101106443565818967998278265628514847182307815325990027738196187084068011096889112451182423054920022388192353495378565360358456566329127446183895292511317822971161413040069321648988912662577425976597570972419900155614041233117306604431426532685929359920300382986647253134140150953443993852259095233585917003985681194401413278942939904060559915414641745033216616055975632643242552355412022481716730195886568278450936639027188310042175932915443769827927350133900194139954742074808801695018561715010526861642158965273717467156959282913899922623646468362333856184165758722622521150205058415440741683458910837230404939993452724088668540065890739591708567162348533836201101073375257327961654139554552471250070565146116749478638213637615106159029994337781414084757104298406534364343679632964169536897204002943829148946601095179631996436127996187844387883477674221278390695731148984444550715142684921355611226699354362643023706149545404588055616466292116783242601911485340387817450959395701355082168695342525350377379211160649978597211714475370147077576359183071350507357366999928638520813524336991010355830831370909955307386791289374172804214151257833905508244369410470153995434636965351402479168152009408627674071717394979701303822983392285904177415311715293762860234818781028891899989438799567625119803255621832266901836856571903113581544280765580263590935809382863364731723863565684255536232318298392044963960685396748364336175498971130036649532863862689583065278107012919976221903832284959119241625825486875157263096998225544193476541721091858865417372355145456802477493599150343188780532645844240289297285045079318890490896395899086279905330268723889973335674740295440282671673571535710034696276904787792941515998227277596570527594939279314768747826408618940728635090649034005492656721731295790203566652090868535129986880102014218819590034578705375964879136564213290952976930613107704457937230832299486428008190974350798142506308036450302091315959229694028120047397573751944044966502926353148628193522367429084409099002223547008219662308981365687698977058811412816371747124194019874997651163952563689427376829779042495084862790968324413688221376419151093173397757602895297769159544297801205344637692393786802208298994903317820646030648191478292709500009641714452204038441152324669819269710428649626218282705245591298117924293085860223822883527966261955913847905494096828706427657419383507496783618556181599400519300355631527312606248056979773038248668913909899631392450284919114596867180694434439005734793876928711679088237134301870894982790063069585236460219689274100677693236769553703484554472740880887141047332815300589421476639660339375224138660450588648584277114085040122190261523745315245057223572795052715598753958056494433479573293011284568703816945484655342503423227808216525865135551390029310607245359259872267899789274079475986019565962333945156796281749824199095647896927125521248072842136558611460425560789380799765849904711410807284677675312394646117335888922370061298674098561599575430774704869997451166054578375650890225807742254137150286300871518394696742600345185181726661316913712417965427167516092257310400670141005369273498269282310488090561722113190384145722659823906599734891405299882633720940812826900935440252274541709074087327347306103222072357518275164879258805946136394472615690408169445246274110893450142223560408373879025864328354086758085219304516001646503617480491252671528956154585478057087502112042300489964913601994945622776512996644197723855492393172915453821943178681695839429794477000408417520559609295891148986720415941212690961816263201136638951810540332727038487323710125841591531984534284874382497810900734787971175428151355494480274197673546015259774488711754936901014486475492716818337693977737827036335033116153205394766408948063134575785286199999015868382990863908136773411050525412445417865487050543764782887454864642216506426483494517851199932349603820679530030680294051680864017622684867933516101719723976980348207555149911886187960569767878221869994066657288363625184201693622653008561642071798972818437929826343117448141067385345299987500262345956884802804950156374912831166768184647004946996776362353554666182823383719173699991603427863455044543059654482145788559303168999821402066425144817141881575286392718547303726147383377542753944150499570451858837558856570650592746972933118885561542136142683668919391163002654647554543158433555122240899659394292214651578483200486646578076446155638799603345427074879051918782379026060434254504366365598266901048687937381338988591727181869847326022130831691221222127042737670809781780022306575907216058499592929965425666992458736674538849975654445789749716078330736318178638714917921527325936727967069841741646509663274724884574821009208125912861955524915911452489756376076665871918099124994531321635923919612079908766192764014101119927151377025776617742745689749507144897164360447019176668828158239705109562619683731784726231884946883937150998619723052128144574841080132775255666229105588432637882728118876066950361637235752986379567951508060640457074833413913662440671267617063397630430458950188962235040403847919723097712242932551386465661670368711674696058910011699777662153759999042128083387657474340945623561777343964206541286374442406039269634609341172308817435636069114395584282720941526259950008764739355299649154653835716362041495004762401515001809185318270641414574931226294675766933152193289764123798381428796157697192077836939052709966040755521016405095874408934770733709488221859114603148913459431311975813299205989735508540989586298898737197432091033474513786421220050086168810786436495502058521920438058629618316771003950248580808301710556977752071012023159446824603067728630764865818084300188877641802175181107965354249044155729041258627573269506010048974222687147811314259431896072861655153702658747256675226914444211440425439349944430535248229759750023371007725784736111698700446412407315602919186735882166231088069359525573808666540777032505167850030409776356806629206444859319004110492758112277457254390423412962371113003024988755512517277930372461082802848936742737027151724601083694641633496702629275521876348092499625840834670348091020999152203556058882662711251598710690719983755049304544621774243797623682410183280362881116050629876001962507851339252576921627158543216853792014237457876349640771927276612711129688037155180978687099886692101321888766748104237235487318487356972185014513369420619030422727864963284730838529625496806796649307395263851205878237564031121018241804396665943076051065157954828145854707604933694593535329829495189134271270972269112851383929801299470498210799972480948780744097229332767246002078044123059989198493703540278498749556867035443139197580168730265447347792549995944152737765153028928313772608711265861475519090522491485070895101915252504097210665225718731873602978323576957723728492856190769307668941967008978534987905425892325584260779036538345409230791694110581460054183541820435476488642108711577366283546523998825806036493469229259684897244739924747740429439578381113225462451909661082295658683351634936566758780917216831871518146553624698356094934265543846173246595675183882239038706151458446249380516270319727579111533422250985876129294329891242185687247387278885816367656242715037304515569754052529105082147853405779027274053861988248352294082855802395313969841362999670565163566697309196714781872095048611256792591308841261336820710173461458678923651264279011106495380346093064918818363170632687822318169119404384544299018727754744894518016386501291909789192573922861319805725149949582982381688282719841929891983607356883693735268609576638899592585547700326280784745286935190704172933457675387536732264161536760707166967752778758586156297581604325643163934547777055667950843096150117964413859904926084591847888543951168547426391737380415892023442800993652458340085133440546052410562427543716008221959570230617970014839856152245916346535519170653349319839080336919414114652004558629765862349402385271851644160716801519719685033308029853940714042213344987036542387934861290074820830746984180432806063130880701969975132259191653579885031565341183377271308209709129256084026430056795227363323722969956565913458697422879730722386396092355558749825600783495412960753236240242830556716880261998958074265028612124596415452864081226456364600591622804740863261062593208411216174481157114919066181300892359219774702479173350044565138733952285909115091298172663499748015114107711423517401077298788374823035567601372050233837313762596014965476264724827774780679942010533794482266869528891475914733141623388315221569784708757969703788340829831531113310059807406833353820548377670190798009331234978565314579388489130640348257809247570575160608048747232172505064072709811667499045849955358261667242046502763919666278080765568228155019636563376085412399363600105980930339864359928603464166570144037681439513326415400773843658412534371837735102761244754784328099623296474789594048146455867956096910842194462648074731370208270135973883021150020262162561728030901855389148203650027184428267918701078495552145443397727163606404907345916316875521561725829679385116569814448754522538721125423051520811589676597944106277267744818035436224048849666593018493080076059829313007121540021712783560640672615197552082780152842486362347410511602584666723048920872518769728970827710143498501121865402084485671249831278039625891106440940579767189054270626377530111314777222124606232043410276602807152101753953076714555454846303234310278109410871208984746617723858509135000024174499952568181245291486459507088872187716553054288718930769600543089602224515686069046787754691098815565485148762595473264751196112132666440903597128779841685820971797395709205643492207092769596149058253934672467609171155222334024287954091673258003967402584438436161145732826859304150524804309666701867748857227027735608034284543806795327184802786543575263707556547733039259314347808505372400173826591815560241436106942919803258538185040072894271274834807860666763611502715650550286216190478282637211915035498530625262277050336055499451853581565312451407864322815630172976772177320579015104382035796067539057613267334626166918979190522786599308870768599484529342999164411907238362097820261013677277538173484008188808082874608724757209294220675362211263436689659399297442114338327072137377145081366497152854835264925476360762920137633309464461908323088092058212268336605998275343419745832244884101611627617730918678586483563838150177892024970574421413074894767804577279676472610489892940198696165796248595263324396389771598037376434211850681865709015866376924834535659984179637457116361189255849978360493245785254542238372524952974606130729044477345463971757492789391895438676257835140051603355809253290544867317385701030031883876147193111904445849036538905385725074431958149035549651980643804670834005611028053969127506739109058369361886728329984144826830721597034639218399709040357082943695331869586010075148119551441820512585487175909865826695146728755721715591759967963719785473905107287764139675478285084278810473075099396967675868606540180443912187505659848566841621450678253218036805438969313039180374947459839866696021647760003568504685885855694075667974742594361159694004210449654334435660556221729449537201676209261188910778364375076031759536440579311670018823093923983691933816152197852997499125981898139879160910312211400957446207070501967397793087407372465413737341757017758904495205486673067834942488766661569598480693914147921951548634518512083686635685724893373641183339470641460264119090132663159344181608739917585043070862255119288586722612429064488687486937111764240195775264208642175162801985105775568199975943545620890268220635861758759334475174050180932982823584215124889208729032651360382237663591433109949601688910726457540824953405118503786032647986333937154875294921763725526575104532327775093038154889035715499650234345520474535538727401309194047921562757098113979981686572603094788697681873771954900703348419824187752802322151700841096512287595340586252573191491915803971793079896932705854554949727553126205262719850857737827744140071882172825001518250915444411193028111528363505463562397550254756975473173970301910011141051850864205563726048096897566288984778232283586022263690953585100708347842003566292099731999693615966238396187503093770864101313018496283276841739421042168410730014684808782945857616231044221713527386162020956346405990797195930779345107898409582673720676867962707684421768842768802286329970250930974203225016718385375113879023867248054593521237271759331509721663530821845369875601767253731973219709278518002793909678836411104055820153009987590821250812386631784566817061511172100825008010128113312443949487455772582411999597315385111265685378557205583966832287638874452243037054397252683273509932548087662410822723179708412718283208159723479415389577869872827485391936471157816942063872082097697319488406564777557701624632132657406894763948667835122354614301673146591418950183120843989273004243129354242893537150827176813323483985250567909416331245381318608406739791593185286004489210113266531037107128836724419581027420138778407483500437249136340346200716596693758386960372732967255266783201684447344115184081167761907315549101953184290453713168257905671542566103698133286212167745175383820180510506206279385989496761983884977484336961543705924072278558403212252968682253763107689854440036955735228551843496316386052443230184535913390620272992443686950406315740884498376514611243449393371425859118204890579237874206659650580024332744220571464174380787845364326214136597809084906412924202678013552773956602509326440743946164279351844249370011642969956734448907908615140088498228149112850800510097096399543946123335764973184517200174450049539103754673583767397937143581037196086051563693918987836066341291963744148867394163153002924415483878374525935710891677635105790167892907305384625797490753286637092519787093106978268969866448856012344228012778342681110396111913814801223289627828918858503103574593260939593930406682348113806719960465095518845681366163841674449299479091858119983009050955741456763291027489463063644117172394143264355993092171617100620958276086976027006038200138395263517026612280282402866187171499386659816324884954060940879291886268477107429582489474251025304834321268076234580122911267787951000534541997819255074130421492169869825036933802687017384474273160003820070691039484605203675811802560390767082669769240734891731609951095907974873760085181989212953561298272673563892260860420160853165573888613064567844834241045173783074294453591511822718180836597680400609226794061751823876773631359489943618177197695609303737495875999555361450526363712956213659066644190690874515947585774065236609104574207118419278128925702921246509621680276805254843993146901359910148781639094819781688196580284892146200040737136855433934726658478686547059048151977572954463758087138924963478161272959149091686457473298775358483578853207122293630716011556959746194604420304938870485846145541803068815237404474381386470060336012952230646241366070791708598018285552750955922564459462434408124996125142614742056189525653344675047143081360244979554950171378818199207377758399283508259103313123089786632750616582689997524947414892496890706638643202576279654037850908968478805033876445015286538602930731004530328053536633978937206219912385694406106789795481804820631741984401230919895131025075496724442782799686422522646086613222005162866657612609954178766164482148537235733399297875265914051922664331123675054477655210596466561865336217228500118883205364962367533436339695500655184195130118388808393967547175443210200572634296667660610894117871735169780088457771720671607655007221330614014514994053931953002440184345242582811959796831423100471673369309986901249742102202268513567185130262906564088944005624852995528497230941024808443930263573622596916445384454807110531135219188495224606994431379877497917891790965250960242835880462795493824868188999474562806374528739676678482859599114533464960801017147069037557144459235412289733818501343001453485529780253964798677880365608216111848754781506974108531984547406662049493335429142385924055409641420059832453320780099447307373128823012609592686829916995485490378705051801327528457304295857730269984663220765801370859536409351732371166982793553485145154614051418144278074838328391486330873953043839437608978516097055115001161861670165130273572054803908960275948358702485658962691092640150063618679020688490578790754684410860726718151461062405935254972705136300606315895519816574851322716672823697691142613416538687657600013668150580663496486636570155873650542457332532844551498902769602788743217232608910905577523322133882220378239782677971683561325099997669187521359400950898927192801989751827325022710164159186124820253282631134300186954658422062582082535919480642974067685629798416635609145462626445225616345177875347122649447897226719796483280387491942593444845178974281714720693637575071206838715510306910133517268427912148681060582164439731934488124051242663781898960854218213301285687083781043981722610658516493025349168349622921295690964883108577678346812919559493129552882860578746622323746034386949664528128237495067938554790731102791509008755545498371546825773113589174149492645592840455590921536426970797407339743604687340334022462291135653970946898521147099506283720456028316139065406682781969240562066649962523272767442711034589869463421425782078074512401384230312390273172570002159417949075247395162494082840597156881190494513575443381617828692311590911983303416264526794241802630557603257961178128865040706023933045325502741681873805462300004050091950936092942521880865501388517165497348751321883354736833005497729581870861056862956653427822633797754485993212296514222453521050365946127386131713884659655849151710174710352290671891639645921993938284704144599713348891649652869161424724110003222092003264738618463800539638259286531054216675619453808325349790798048906032083925709469575436964001228187561791100584758452124042726318451082734452634046065563873891662573988625800640334047825681088544985032186543025667598351451848987722161802751911851740450945463030810504283968427150759973901474824173844497424150364185838868194939555997630288854628699507405279699317827130370256185929960536230474842018435098652166514275330700752668472154067363121471624587838585485035093695082120813640223667586731510991882858957794487688876789495414653630968580156669704286746844155528736943769769384616294258550395357940215308146130590937313863068244113865048379158374780547713541656387951004641495119589507620505368598464688654326865139087117315808275724665956256622997137595332394226875565296782962052216767955109139892451189423669707597946710917221473551510190213506140174197701998938949667603512457758154180685290553550748450979237516030921199590209506346167040462816861598911700299975258035038208709429650306998732007349298822223092300599166420919891736685966463082894983321713153466435342965840667122928824089440705596002473624914882645284785043778854337238646611266126046994345302438600181767587214376975394828532680450239031821201845043839301274763004772483703968732243731557758485203475413171030618721745420150413395490834651603182171464940087349703649863922514638290754624054096395086973368753407203855532696418233922274016252676598809755306655338822529654995320121504830757354164877356414021834920851432430516426466451986778508075425267363541711178137404405862747442565835495296777174777885362768248084968839387447966767007807100363195692192887823058978427836570660387499060670293516409848268905009519025995777123647644971556359162493889420508937402351047995643945721561478114099860474265465889187942653000843680766229993533549671337055905792008575124034753794366462997099513750280628801609680826976512013789581762525608940789680415839303424130359748340417989693786649505021344884854935536967812312272861902361940743043048640811936719907859057369743090677822827500580183080614855882435309984046923360337550072154384539092293612030125002039703099057135914645016033307434839488550721965979688350035931349100797709441307724977186256247754025975560621823700284728030890882737530943732628171723662072338522114889931809734915432814310819563822530426061825324322804689414528339286086996966502098976751501660535270090751071383716674734324404945943977031113420956532218230844489260253648832440771345679924130506059860306622503808848505730695198800939878519341885246128341546671868235280113011518733601310706094552047946175989236891586496118998942047560486197161058218152853762029872030729016026912459376808431598799603800347043723255287977583992157260683216792582763454240995612293226826459872934138956523362662968825918808904726504970999042458996454195531651361972726108581620604257230650536981698598225949037218703531103447734612508309988460840531365725892650049076992773087222969126840738572156400788191207204003182349023759108843494278124538401716003839526741249284946121052376008489389514843925186132135922491413672968367745849239816701007462258407861222516635731059777697001587477914666950583533878105335131998635275471590771965263598649414045874123524527643527616088429410990682050289682282617422522083640303185146508897956204994101957566257399721835266105790858229349081323416368278718285304102441376202059509078926157164778783240698912421130092165060978455081980781464067632909866784523876350847417195076914788366495232326208390487273852765032949423853082550202897989232160269593948674065631519133411167263894668963132145320905824789704597166220864931586082745746555227403783653180937811239603701292455259098811931893531341404988332298447616720602397392325753737251419158842960335495378095491783863255695593015824850236549097780137549879283258026052948256725185993109243742403332761256587102238553167793554078526243040791609832250425966499478439873670729195369031176606689674961653979156411123493000788621547841281865599609876257159685508550939243367400474731151295566747155537968468180013452377982287169043454637978452772799917041944724148045198515184468897228699494780930760120011298979903058134617181696021761642282724195991147548326676450466088574682506964517925996166660849068555178859670714097020414046698386126177349162976008672769922115218848267153950712238102230460065306787641076436466460374222711910750794048281533755764063702525453676095691007244530261405351385178705317310534163946063718027217963360210080150535628210649573771477985067154990058123391156182080465429766014852545614956585878386095341394972870436388310010158785881965719789805213152208666627977788693146519879611021618149474081692429039265416631444882123546788019465228958688635098071973587457443140227413843552541616709460600013040637262052919475809983102924880313246181237186432999783815780467225104855822980807419325185283339936632484464225656415429429339092591601154553345392863183451329801105508702188235019573713469818212703260235732466079248255771661048479717705704673029771236889375550386854953250481467064444768190302267958183941089801758788910375208408777052434213921274790839056820924825757800217138108376311381458840172521279445587895150767952929896650090394705045304329561358119865607282036748942308555694960221307757514655026113627418952531092179408604924844933893935686825880976462539542651122886487763507896289293523259290931018282441529866027464520430623881392938245931996664337360703301024252585786928416703879820097405568962695038386539182869762152539923537828919519061562293132438841866868086280857121929916916945191988916607154338608293310565545960309309721523109411627384074541577507988043741808737435481732000046983178528648053384121418668420129202593573583066720164525005831607434813025525483517261448722029687976513163516526538278283689796626768364661487017708481722893421696382921600289429874600926736585307214763334877907991631091844959406428281576037312658013391278782472693357033477913306866058975502034732854660762854188180774429829716071916064828403166001351794823191939498692484612422995054679439961816567144330037303248313601694972630896544500189299411905226614461015266379629052458575941495822748314317212410238298520127377648228658854950490712328062740643726326989270686578485761367065631869750607892624498071354386820416305865527141246139802841797105444914142080358614106563441766944317277758516211269479158809308856291104222401827119960639782830018894785486299492864757200769362972840377543080201640964924309074028304754306903257950451919376500042293682456893870818351032355875833135359838550424196364418429325339959484492289330368719950065297281589686987172497635508255543426567343885551924905218594687206187641589210776526463576340140478858160510581649787357438529853268178812700951830238653975886322804214751849178425287404633370663187421417333320675437781363022807599414505904648103514887848464402273148190024270375535017375388532678450504505602120132904939310986566298674518898613599529911638562691396467211050667250465296031375577227241790784037942137076095100287678385769614043217937943897726328068955195493079656604250121939620426620322231067522672590026006354593409900200822735506874653210527340353095142422487644245441539223554155390946517863827325447959989937566624721701804616763621395771550999228044768602204831279601960015733240980844788038683459056405193282088137587146317909086240809275314055637276548643994613150662515353153796673137977666990301248637201803186788892727309155260832453483276840412013025797669160239096064961470467688538695728933742225969110662661341299497013917042580745045861903281048460292451755223900185229528841760463464466808365234259996810561738966673615973022809312970099379254931084959116587433659684395004886152295882375197784291878928294374461496106895307943101943454748634365923017307769578401202717235691363222348264614451788142697551319515315068634048946117728746069505553264444211070482793040204877117551654733762788132023195230990954323924619453125269787721726327438537176439627428991035499845706211744389263652597258329965627891740129969175438049736081339159158035375211983117308356121011188992027410408052637686322801377873144785297767822763709389037557774196638894468209668941351278153093419536466803594165034956346919523364122643010721530465563755991118570909650399783001333735719036163741319734595015365800220534259359285994425702606559340743222413181712880236281195624890210948124310966762148861984327928213535951495095522381562243013974865625851837141956810332605385296348863985108102331003508316159879540451570792534325437089867138348540409218172750903806013322873462829096980632262303060705618794294766163256011706830218962306138130034105325632521781492532574049935691352003280800221248181785461789682557693628293282199186242870145666854220128864054095897748160055027911607240177874251013675299460208033530489480604758558605170738732690806286512180770721872194554418800113232565347953915752707431053323097250483918280966230735725452611947739501259901436745510717767539614079786866548759529049244334657335544516134721393631793134544596535528172483461224822894117933810767400198900509220256029611188971806165298174742754412625914604814175328995240798567653398960594559511650097436166151206111770729769945662573166972759138635767069768994532811101520859442387745197963259181203483252191268531204039529265385633656667428683271912090402376806092197113938509044315387568001482321822211285281807752279742915944153645756016399091111712509409296661301875416044714727669646056921726440387898312198286170426247203947214952824426143361383677265127557348478890145659819031375172686726958651353678155838019522589001544885182596481193567545192765372829060243886623309772129607000621940375550368511009062778214566839986916720016237320341094234605334736890547229509657888738674879223467515677640510488174983082286748637344840378048674349260656734883353314019001259941380087257861991585939267021356278419435288529282843278531087918705553486703415453036504989399239839610040818287737227364454095786614000645759142718038576668682335209136034964806523331946783897747916240768040016897421150776877010711776873544488238343268024942989635901864473200174147875872401891512875104816763078042320765841187418788831011814393523237480297301450704948217698331901738027261751882253388805196695663043697472677640416615262080488199168321406591916652343512771159114849077695615245226854181363746986291394428618059832685913813731974708112904640102951117144747968470399137419427218907533782996679951169739665490609033829285574335925528508459473213432421514915156266902434482108115650463623173113078073657196896546406497625212793470410311856935458537175624086206498940780973488302593377772133841825181233864194779579517041349073372373189070654272905767318159128784429872475751257521968582331079193932944723188882007391907449429929340782182793966662869113623547968581294060325845961735442909654980087748153935475226058124341149576986017848707089319806944685599884662033480958771283715731001878168703482472326112055037095369159667172297003705543366543676347056284876862470205005930636654745138620955798244084810041213547319262553747250047312935506564038535840318438548741793396302555425058990110801425966499992213439312489248891429720289487162124527864238062940573246311943281389291676823325552264196402174283063915322374248111056554301327751482494993731149145221445559446647785345068340816616673764932577221319187775018178730478002489301979160328860136566887972102610881156624003234855398727807061516129281425683626075417910008212492792040358351352248445999222975045828862964040702821867428325844850964074028776620155936428821892899720055505225414057895317739245695073918053718587131732190045529075667816945486613743409632981789932476415962518737969885176545410469739656717281223531571262923184945496878815629680472727122114027054232622786333373847987224273632696322169985360201637809416280974487726344833550750840741106801221036219014112133107747787927327595963052391729141752812044165436998925866104188717995984125815337587269323477123735747806912799854355246053640561965153939685248629363928655049035474208442954040734599187380691602642338054775708292615529706024841988557635015940455388123178001845548561167031517710848412450332091928702830215111964933393041493974148517464298886355577493411984814096813254113795846148593463774196835905678435622367059057042534777840875740076529350246651757471075740943152941589205392024686510712809773162355657746175099124672550767645227325696154417290541336747075509728255859336807116129173469379962475468230370560438912832946667360706877601311402248090438181602354680933066287331213175577257715491818822675133535251394347398294506852368787208102256906986414249718787806836869402027427931060010813009854545598797078603243283299350162455988774628106773441762660004669202727393461101775318530267235563918551671742485937737995236289075714885956896958393196045228536258531376562414296395419820681597302975565253030212529961503964222598075856100144656900973972158101979743269071639466852460982813422044323987061787419817777969101682380523622518152731810582170535450069480990616149573371022780721725603259485630180712725638799827694310094321866504701624780146796716387557055081375489414873520605664822480223657948439714954485652148624129657832210323280480292904446920494202016836228673469340922689647035234041451680826694688668248700246754128180277551531041048855479322181176381585566949383390576544669357898892747095627630312148199954346318726776354488703828796714139088317536233594901536581817366554627201826278254227750057960376832918415609915477404326538933678630575801884918229028405291816158248319956582035718513527056431680051215254661896366005221127805630018863305665955185847179012378311511776324135295687342934553424411228910930271680395515773772139486583491896912911067659023510666903303542663974178553449094494046478256379041457883989263204165584677954181543009563697958197856133271962518806472350832969140940464664313736442369695870253188301945359060186231665297599874852516575170249986562742847362457630778770654285247249456322897093596657496590802700106161556692558674910250765614646282097284232069315682990787904232045320545595966650459387981147892412709231629017727962135597597252918788731054197410723295989180484527383835451757455856653851326934425965600473741614667916542586910046397375571488989644412601426656988081896915400031371272328785004772454012859707234930926359870257154472782616002843553024413925655556640799611700330789061722366935852560089798295572880499156865946953180012125908226560778694144204859728144667844360664046900303961200950487826919077106412282904412653717414519964131362919801192598473894301931108909693907906367075051217126741022305446416889975901464597997218452554685420087409093207727884400421387908186165454376329860760533979076569980799394547160572306462808964190174098567627207075231549954681833356823527882600391122356063073491002092723180274588947870701183314785919011480833751153314709636081067479722496481390049864075000409024169442577887780934469453830252241967819242254118318645295943394595917213411270467641475790325841776189802602963701912716025370971543587151466172229974504993575072127515872396100552397872188410195529241665427165078163994688941665572138512240651915737196491988200816032091239245098389423592583882555769519387190219378631329714719583725382351379365607635303542575577078836791319522374434284722497011180239974769785069074968614300224374980015653002997525485062243208554841379248105137187378595389490467405855615918338509310666023441073669626124494225855323981544677613891932033729984550666446412421045112106703118847457290166460093697308901622239602828285957689989942662805222302255915173775686178089179466776659039924583624180004986239796123657356341507352535523900401232514571074940979576313114161971832516871785929214491580188942945733370808045669365231816074988517419697896313930090753225870029161733370139312967296377936033646363159879370654154089441391509444188023626845937988650605675461469708092210782280385060705075412570756271651341480574081253118273703488287113572865711934260458646572188652239127184107152850882947030603084719490026492427192129677596353387669389923236119672925388903822664943055677961291992444251831193891913731330263895340900529271458231322694136556814004102123062453716620126560279053725376089252532943959492231640877713969268362115731328259213482528840591290860596350734292329011925225634293038662540341902047452691964650740737356945219321993339989558242341984379915261997857813015600952935116047226108169878141364963076200244706091615547552661043967303173485004663141487602342455041883563598333870657890526681053930078419318429577834744866175146293175142735555298409905786008828475473759944965431870520505932177692466993565751643213452367235730846027977985970059982972064542765084578037767906245539349058698014436330291701199898473402562797964259181174884265701264908312667878857298857398401007215916335020078858927984642981910070042411614365712695365226799980123364217453688516312923291436814882377393280116345816083830097929138089407754897644680137956169643843304572424095492320455609773836759981709464073853730260771546850692085156336830802683418977729013766047496607445432014469335707355166467870459998095249523850023522164473420825104524617429124151900314361343729492192288932153900192170244085414510664630199502640240494811796007441982176773845756244941483244261787466859357515649436767607966384893255221815314051436758929845723796582623173141171353201217062949370266305934024650447347709653340658369743406043681075350110612887301299840576047868858914828113006589402467969008085381263705861232575528778852683745151978593156838101827307146918401260755403838814772102234738238613374294774252882141620868686099258489874470564667205931370884442053520827879430503375896107751845242444356623693563143187435150860872627422078569528348400867617085093859663377237699550134332840552808112988416315373161368476436029140848410884344279897225035145066359964258357477626910846192575410036575131049112289434649253183568198230738423744820261737585846189602472467322812598690575066264652288183969183288437140725360417906632518543125250898190482060148792731345636098028962694230575233646640251424680743834985684914654468962524584368469461206201475383685072874357255077727651141962014143761534024804318634988986383423654799479819657341120739918902451134616573695239598394974632099354582009435953374063251666176793379389282781925955195758166138290752149740234501519172987727152471362463823090373896083089696087993054542483460786055361252720407791466349310717841764030774206145483350457172284753073307442420315199928139192299967539971899607822303535183465775688302683873369213045660598711580443409394327825192023464002920581714559028821275461519325744229473935303828713654093933372200972003962806957717833142203857949959566821022261484973913987219491022651167032068307177381172412394822956846146609576447642679058512204286542139792180863998600639524008348324275496481832139134046967273407235643674836699598806926413429211455988734144875637814725803512695885405908717107883562795349035244797889951980167196343595664867872622087980993019686510999663802346428054217169303079577091449940448519487218549055553967715655314674561914860085253515379343476726897870972278347206223322851722788329571886870661134194393247718663347929994445264348239605816648948979195300652095814190998653016224343612052415753514095632699975022423976701248333943913237568322125151191298965351983075137188895300989750215187344160811835804874364783937207223221674641788095156695753380832495239723316628760014900650840656555902568780468494162406896158995217761252040588903717461803055856350106200044129536779915408804920790428844947071010476011502653347858597909321481306215257324358740567417887794972112295863463282676626737357719819559115332149471754074442137736549665714163420064104993509616114155394238309450596488597252208679449372883797877827877814644016577955734554462337846917539852418040275667410203452329639640637619794475523053694364436362613428896040534226825960528904792273939524131229226685192874355465893458347103808428594227761833504885417146538235622675630881936581025414247058520624541723286609026753526071033599283722533082537091221613636725411662029895119399154426048540167243318663131837721291064176603223754345039354682304318278244050800398062182649571297026442259014805345969831414087614244210581462310422603335482320711148455177611960738015331675451597892219286586421456379365305088127461057026579823489574323868568298082048963963677793306116854702659875678735894415447827624370584171243559982573391524652713333113455756790379614811675955061732476433345582107387020569878816406492937392824235692384687719088146352300450469215476048546212564469687289179545348516603212114006542983946265801752394269759241318286600748567729440585434117576271878728896199883908075993239727390338835455978437337526400605923600444503879122354064157919460705365623247903303918917265026993892631392831855046826672119484127843729476913499172555551508463207623115311225320042978481048712443537947477454451218242501459611482016923756860703499138176333101341954339394145944915623483328495912689337551764896960036993085246616508476859697118201590671985244109370496321365954114458194924651261677739431641480225908388111409346581785646024304797615900785000197758694666870366234100558042517092350702086804371536464329359690292982008579601218565457861710907174996841207956750409742209698272924470597690640127743456077120285070516959809307335182566002911644519076076534593424178867832653148270666198247118098494251854720142938130715236357269383739738158326189254853337182445323208170753937483363642196749861803068787910488573296090530766503523897120849836738068604395335024826594551920985884488175875393817983780385721952688117542043553939862901227606871874832839178018533635054987380636700257024538707114548665523814508743566665666827590885049349408330694579086607116887465379671572700690364519963991200369741364905738713075214827878391809108806352237862633309198677474570947354863098219049164399700575249664588574359587033336287933488587768002938288992597535705657291093539490351649973217921525470435616176063630726444161526446229784169205164748926718970983795408036500114927986950810047923842325512661741716901058262554279302457788810268933657880734255683724697344761062232981350823255769660180356923360579490807527867392404125464812086240399510321945979231480532704402600166854989711305110852659682026368553020165674882733777474442577383164153770552888661180212412629431071572180363193553726567628578295754795371265093977385991822890496653088540768665232917121150992146742177062398180766693923189794876104791676187069185053085430110522193145542965055266270455284452850144751115664429370575443269452564060907890878195259139138706360469658419859756985717172180960394801813927117932518955750221076331385503191986151877416564802887827016788321320013626546089802049122527101502998307729985113835698289104958594800562133557012592762781298927699191877114638620086372670096910372168632063587289848040628306991679279515232726649327832347718293276942080567692074124052636318840159583408207244041570571371122230113105924880604634675149397483727505314080080452679290029310956384922719912444689458113946231130302700617435861282872470431531463678481221497428851191164148770778233456565790069973956151421220752037134012018608862816540691593242844744633807027962383794930144608987632433274876068070446904181681711842388679234768999298783333321456552387733256129637496307528231845723662881606407494114973094005302054216716493180090026932668162938159021818618353909235817639893015660197520787637793623894740614035040423529748548866034069393822791042027838407727089600554415891896840200059792236871787820114237638528178247061044278447589025869811657855540044935585924846132004263204776930083189892401365899789066669703490011043310747011939595530002247165365655141698259640477628059436232293025793918402241858141583167207550685305086265303990898599048367978773919041323209111315015176422858991933615416766728834976221500133163627812562780533997899638507320499063657699846119510160412956691432944244590064038572947282926682697442907964529597069441016802197053788126932003150107184752504254248469574548938953466454600657163574491844640656541337529371584520379282864834172594372531153286892767932514217945343116141297758659673368625405717396373277730556356237390682173409825015885305695268010248636948771171757089422930632724558667626948792536420978927967754337205212623397422105989298977394038442430898785752913830122080555326256888893918879106373427722660892849901868384551943943671597620101643715747503372391514362738892769315596284596751761731936785936717721117127293543587220869154510305149771159713940711148288535925415266901787704714684713389780803873585621488534021343475975956695004189253186027357599107200346087316345730776287576093291253089705585848086954669605682382654136183504451053515035032877744462931911752579410576438973901751813302936368371619879590611386158492572954898978982614852991448162113111371002587206225000526319552766637175819384234705001774583174875968907788516132466784137621728232004756795390722570159736280520088209781040894025117735847598382914952566323550006630349119492345239963486922979138163731962072189624555051566218494735441297997514853633178499481139988719301433501182404081398474416253643643127762203006492458390832960099153870415285712120402275200019778796785218107829086105674848762360293773979622568545408883020086958098053027377852545765014202330834412696695504490293081118814707204020288061736078589757543342394861075291619152261290398385867184598182506257585692866105926076413861269291811335515907866691644338633408372767503856454669533155715963377059998869021510605687850605029360346978380894520948061054259377409442520843712848043578896254517818417845583205853891983674619280581995338480225442522157056765753699117897989573468123975767293412272491165161286164094971116202714621104727549834710528755352768136939506239150702995003661915962380173079177995647717426898435136557153350549621251618636386241281519474520426014467396045983154689001376919126264581829756344638927030648437121839807702832680437061556213915240777684760424416906801058361691271734610160976540318643914353302510816546356701451764372008347041113693587238279747866069249081313479849561530339662362161879930783164143744004339367987567517472843570247033088016501799808039460901019240503508423263251634426207710681056302427408952470201542809848795407683997764067083977102235470803675500344897975718057325083101816690282520431146601407434916416465005799209215624984283868655131306467428375885367614894926177618147496795519237054740065624811788553725631435290888918003857448641727459874720621669597523037784899526042795324714791455645121897915826519141092664362076760223108643829979320922528520481484405948094768237754156923405373222920899839453796409784063157627042298464809446446128332531205651930127347129407411730971324273221798123454925189391232425017618900784651155141069397576688459898929853545664769422582500782374189472870511634163031672826756869343246559968903031631585452661017739480282939883696721871110294695066340896483654387111588303516808835871506621358601009208693933309170702528113582433622070588309254066483693857022259049334287124694328648857254287545019021212993074526823737767881895005898447282143691752943655036791253460313787123326908081883282953757872174726106716310806422263556485062991416524331136772675534264738721324303112917804498951413770224997023102836939611263754858688609668306754690228063703733621076682785064387870839065387304132614568161910950768366405659508380925011070892557464258260717476370196966880508002945093489928697715639404170743884013609992179679817501350686886299048150200098847750631814563601173099223871665399255722166936281638002150154312020293620033719051783306893280018787330210986629941710806874320022732564779818560531795594408619907860103747398631615025763322597445342748453938032532073155655212112053268916727477647796321816383762717390968426716477338364112526817490369996021486917647270995026081439067802928897461261581154368420866890298885062386558509254226720205308556519367168416792582231729257465964015508311679016556642584210876004164838046570292674066000162781146202026890595229822737565779977153886988873027666949024655453302753834232551569450682976893885491270386009660452874716088988974938615365932027230073822225551471746078339974760265672551842865244779849962613007045557155654078694823411819963391643252891553604647493293982173716423622420610353897720107049593145476692609448013135792413429018815438979991515809027393178187803266328477347657994210357957397703486167656874462971065618158656704345650116471199399470164748884674248095195374094363436323543105665132331795094668819237804761351921014322220658395087716416306669252184634825523616165680934563206865490240226045839098354657322199608383179242954321737487657711298432158050824084483887194769471287949183157450332133877640654380811943046481511534524882451048014055999310170604522839317324568139973403219303356616724945909180046084648116056966509024265013490782568137062681670862765330377747709605319632783619449428446785692207951347802628259184625236202596009770784298147905907058095472365854950063544206782940977042764000822596765697217902384836344506063113577696514639205624760372207110831151909818823993559034990384821174971164853674868746947923684445174018525295773028594890353067255547953212924204336647410168795651049500543583613193809983408150341504531826003819532641476838445872214206901343595284815830446382951254724292730871306294041210457684207503648114370462593819485156405204909120552442800601226576152543798997604714535662788373922916683155825258013909996910026979175838924132367285666883961271191737615897057503471198179117743555099686677841470352132293531835285488768186153080405662937209660245181109154127052506615911077639030979267434401121233436897145817257721080961071029312646229266744577491907158649838043121692302137665952366679020251143647081561953761421360739393082781055409432829899527528715746126331350014616168446531082041877363799960032340427108342472577440158417825282586720478641292099549813299571107641988944943620744476272406969862593003179161215033186201448587678995984723773309149651947110516564915687689918086830964823729122073331267963313068264272565338161792857255640855725128284892483093898156795853434092088843884849328740235130225031048894040309858946834483732200523527611617457323163351473399053748027266331366991005636535545525728476301301848976937996365150121189483451579097056133967583063189617187048323076361202588202255525839524267748407885458920973544946218455664392072204109859761883006106754184983327548885579572230513726874417235130208125255631657977758691318623251783456277061343825094007526204708780725046177643549385689131508026635876463289210962970012525783856884087492751229665184824479598433535673066389314376252448260825292782776803876098257559306498973500611884341645610602946276353695897425314975646397263105078272387414178733557689138734982053218627928163955993486762528029563620262326204718229158099371634827721176098566389227921605031538520349590030759216553964876162576466807138927127860609593260021974581078200163737123874959236330497363147478017643727681865499468219225437009756765773367693412803830627392808708938727441109044509970033988457873108505651174849543483302674516135071300991796108124880469308925719941750273297678115836940805781144954643097781558114958248055598345155491836148998698138959034246799044343829035134140731017199899819631830286795935963929107108639982212440065886245074604647967452281328645185669628962714625485453462871536013849108549719711008044981093897175251206035150609725507816794557270311210517334906913323659688216151563897858422279477479459690078167671064013409532562769469898401813680988464117572489426637296757962014462231315974357336558795711698978573068388409642087095581830564820847712579204126353240113050761838921018054719739734084980295759435805399966816031407569177231602565391667727751409886698277265662859399648343338884574035846738044601815323720602377253040677870410842388118423962403457130467224164520828905942858449555155374203211667350282863959699282778039204631116804838977532933305753925974997617255647215849695180043579464544325031441735375232851602164003191348929956880698051600255375311093486220455945667451994336516306464174051771661934402498911519373374178605610141679283282411036007915272072270278802793538068041559162811034333640902762614532292026604849227601709553489060962316163851086779251379729532770112726414686514920959966044275540682716605906997457214371881176546286622126540178776710764640692626765908250447516448054650233703696808411075422833154804765006067976338248266449213718836108469374989896902916978887306618156846792917295756280801613520016758104614000649728865058710131772315334006630685837461581303619286760476355872407696346357597598611441785835685084303474636897868677248666086865575268858838996286632919457714190724485664764393981349109986740840405143380223962811154648987625887505240336568212956990610686777469809068504267308155408123938541899550335198156779949137358031427068506556054640687770163259038386904331886970195878306492820791593122877881050469706170561960920382748836110523634655735047507756543190600857499656160356032576550208167767067432593900572602255171771540754192817662791020176487344132325066804981445681755964940386749418668927083300391136044815050202576407878004969154685982129121056777965236786940475494977487779772632048067833913592523657817086793637649229598270967667507332122200328102645616829182032846143321579477713839258731074430630941052674282696277791191590957467335840993744084844058703030656743666218638186492269941613235991221774805256132370271921438704495278116744086673468765090599252727142420242814380559188615093581054653264316828801255945700324888969782245125687557559117840039074241057799653622250321972694905703485816264360942815737007396845260240442678540647953701984299764133126167010262848048935713732198700935089962346587443030238316393193166850431303073327580544167597197843205290710452610436984645988868653958871041641538664828470262446691439110697239551123026047454551341250878029337891767883010605804614465265257092413350109024472987889278968006322014579862489393548779458430917932679622371508792064706122954301461145761889232441159589483682538199778929546766577365877676118301734019375649411102403658213274562922901064420528389336184777402431434535342990045533534456853503683198028284755245706486534161333023602372765324108382534587839486457141840461677812493981355059337037475870654314978311040213871430431440553226520763599645238360781769036828177901692405082135073404881914458004355090841804213131935197021151582055373964014926360822256281855148163038511364104483742111231731749690418568635085923888103254848166408436598121197146175400042573139806136102505900800684200986487978575515114224151445634271964078410436718790796803305677625676984585991309589701800012820862373754802302124169417273192635498617971058203790324134999108927857212189140152260725807265617820106963860561636295238937987763976539897163762361882268355016697873554281666002904943846281532287852081425419404946054317112257102271150015963784671671515560336179381792511422420261354411650038292877707315694264443647024334844928962378138860441553332145834623180687881357805253295639055054329519972884201488368832716556661759563970404181583846974313358471651751877626289710511084312537174158050457258435267552257078888848045698168844153699454706710652026983919088457992711468625710365144472162843864192060570611196471666406845741482190734365690902385256689260502777500393397253877642665277299064203584100144272866549164274768546858924402600076495007419704946008412815447110511891871929891319229993719498386400138674202291238622985472812830252119882827922249111356361437987891034706198366155120742346302217571171945641132124895041771966276043498005509967338305056078559275803431397442100445496669851511487117891350922380244884771560203268354542409574509390968342529048722516967804324310941450990579230358632858652807086623975239110188782124075062887103448210036488013756532734143479640490670365262143244407286227019078775604181834344381286234578834038854793996657783104634122772558626176356028720112224402193850256888220748485432704008813800999824252994121879339087100123049423841288430832389755246683706415491931999270432327288721386492274756675024800215496107880931700374945239448218798241782589579860674939207632693219745654258188968859752576872844778893484574640324372170814907290264448195513576514303844017668264594471885854388932182030043471913533650018175908076452155257257303577505245762447980583283298533219604979695687760463613485061732654426092747342780377728658232546765073856082014231187930048593014660148392774689530384526860343612867940806478288701163248135603494840362029569489369633062097276930544053547116702346219699444556362693834388959867529487733209046378928136361168059530884439570710055448575070103622521028851545884915408411339827721435141143563347057897414655658557638693271599396368872285061625712812398907783640986815976938377303947904053598841549254684437537324391172022664026494398210463242859440805120937228399742694092557727306439421076678767887462956832031054060488031275404641096238239612409332027798347934558540726923837248147432355509577222426135444636893236990809644412937195125275821456236891034962838536307369324786066739655926780165949292072295930569156193849370461644170995112255083564973953591885665000176143583587616812982341989000507589063372000302069041951648079309086351257650580350485960170690110846449489871635515019775759598303907970876921348465368801883933585828813640543898475558342896688496347114880264678978531205208719728462942489212407095463814129411520572278727676179638429683411521250041538929184246150083883947136454903847356440101165916869287584379571892737720073415457513608671931324707925653462713886509929189706437037965496658961295971643901188033141454228644725849482471939359995931741009880155427485445359051791180418039048348245796243804444425820430716941087122983321671394424926783196783195292311971789760090201778783117294495237535574273232866118236807311775272138413812507297514765564617932415875336052479488653496412940772466197126074960595516097248125348281216723468843653154538742138604437810758944897086808881895683974957148979669374846225331928633403678221309056917215705257042221938782212640194494630015653297557162695393230493345776679179813669988176392201294622886867312906157981666149407990788773729824046527606117242224964282887350342604033487940958587083680284851676570692040147712859282915212452870487443661306936460144466335001991269910268838683183565210160884927026263805000633598587802216095308738108715814389950859162157635055247911389457188349105216454004232827604438863921585623144147817103480150580199144219264965997946195104134048885126938837192972970520175601473438686944458441550808444108998950662620063925804681363009803212466072572668142859925193120373065439225978119558188784891378006182059796399929876824990478844510249488824443064518725339877709040017118314393534944524666332310766782937368447786543536715715153968845766268332716395024856102589976655980126370785457409553404104287578398197855211493456271342968339804212754594670358564615226098404228724360185331422290692509006780711450579115011659213546186807965496583395009567084227919576697084100596655952152576149488752811044450115183092678853450611854031942535843841858573454505180765650964997956961361111247550008076534272849060498799856519083785751223932037697037946029421874932137464594441176473470903052782273681173001433585234271696959301885573501823664007133788127067036523578848992615831138419932290957710634348949906080752559133490017203997417858281566535836509769019973837337836212405510336908543088631542706422961642846719015749797912225038491940243728451948613453171746500747363584014347836798459485131531402237053808667895011974244250169109082945441124573409373655021928915435311454218671800925477032016694369766954613314923797625582275958546475969478041759064854589102831038154013738203125800514529180248868766535522081069053724560664381074555453984921565893356224461119133207287738784884607046398366791399254577645371599537963790905309169227521044141767548317705008785986993488595467175304831587359104696311652763759055456533059667283802965287633352043141636105770207586236594734221121825189984998376976138353666887425462090457435734399346290415064517619150099305938944806146732303852687386833701866172988817627650953888648034491619297990512283724144761632150317058670454529071797345171546459095489947121878167612542382347135141409205742591030363478045456769588111169423162888026905199540526503800242823233538108693328871836144091969801785465430875009762810207541093969790494341966580461892188260552711460753448390383683016172392701080798274596169264343078871978445174071947169926277168497401603432872236663261179292699840957766608189853744271058589583412669962095012229294736862853239493624951058924238026460158269182906248706795021025485857042701991304803457176063612881207347874925463157698412977342153414074361148713928496357858509685771911971945296274344364166412865666653691629257003105796079248807578649757680092654283418546691301610166623884121754353830572549174102975844721563496943032529371582370107809701629467009560774887526966245590993117144729614039317371282061573474664774520433324347396810935060896211106592074134481318297184089343063381666224268802098899906233349544311876865742086491275778312310999620389581447371112519211020834007599297498587815466324010175006418009674384081592085235093492929863991980237246715040386244182495894667066719060697778365853560081220805072625545068883109974198718076254195925878917533270867033963602339968850729941758181296958494463785062394345839564787471856076836644065892735355497737686013502760096215823258342321779212585576406526757243891628246293831150554967380427804220233302219042392798829316643880353457822861574476760197587434118270457670615524382750426701089365029009509133879667066484287326618187858366270020635369932659270088735950501519907082562703798585377748703336431727612958184725326558940870965632404174304714064808508890722541783315534736701250650939448531077750750423295074753748363201193230690462248596094731659060057270460946571948539653837960995938316985650780854516603672391684198837933010926722923142219042139663253627020253020712630484697092151613995656259521859123251314288543445420283364051472584105299048198240349693864638121916385271713700802797795044327420120417903595231758960379661193271861521778761794128961050240869582758970633051504619982138414086843141302199096064133434369270758648185022340278542290988395365512442755620988415639357448068281942245616165907965181046098434559507534614320819920982066880900955953551319667594266969829339948530592119761511784823903565170420714178922088191125310777282785713678076203699318706748593877683722905566271934741484019158942527357231925740288540557414811286267550586487313631111239959881182312779898403547384121493776960435521696683648741858554688504004401811305780635614623965687490011231595328068197526542595429003184939895028803706610738063515005741028101054037776752952343392439428311736401131524304067287627260660653701807206983033002681568842637053788539957518953059096425551719376833200882812712961112365732158203804825279257988007502656263561296140610302913713148440015470272900926468178654802202074682026225568919558662617023564918788180543025865093840209627111270887922574602692654393262217836805890965965640563030476030637187154571196774477152475510113252905135574232501087608009218666975864789354779985996909538391181721222507276779886916416144036696441023003596094214162820437246040200410936965906239187116705379193159730964488463045175541547563666108437903822014008059248524316171096352800632171017284430727284036512970178450927063558622409634660336665852063775380540326069184385402016151321631762016645558324663942790443844061635479440914216761888563548125924565209715463895060426755730823082800960739679984818641128894058544773551808210077427580978090345230578723982118953345099513628657716145921644380886542796748289492350859006654811375145924687962816629483080436399519753531923937449045731317351541375470893537187070490775323995957354624871514985090012192670051068634690312058846395010095092239865436800920671635912781833670443001407941780935391444238966404794002624042533698581217406208816607011936651460330922850262497280949013764352541553153888415074724345626286118279629993009545793170197543753436444742948527390080869034195678253507605199769179281157546823503060406785045933721547480574764772653738696131097142935290053505749353535110351097161949716138392732985194591679441862689750740136264706408602509268916097846110046206814929337401944570374319166902233777890253444071195522288025518133925602389058077140432121625066819497012292323422722825801793619175280149020319799371763809858693539032579801818658940952901239317600495786633919618912190922986432130960138518241598938253905332791327270655239530867869847161612597231619923126933349712095007368985021447952468124168627097369477666693554514164967632947152845940414920780878240295475455711228544033721823295875659914675222951776518610585125060540273412450210999331674847006300609711244711674187963278049142660932766410222120506676650216676789249053166596403546395169953015639486305706861768545061499315046626312153418839070505219598169304693198801707678757090083343770110037978297697758394389795033117987327633253209972771268760513318401057484053980968026471923528317207664711625555584950838770064306592231037310054884973670207311725010582442423781756718686285609470053609603733646933009369718488520841668792359195568159589726775394071263100783804854272209816760112652210356196629884721894566178151930803303831398558795742611173941140935518023093181858705368093063305878489551714092265097393926272491295810361171371340319518904205126499094554471669378711872347891473908035618543520594727833758356466064710554385275658608030440931174188312981950013065984591192761422735979185210254767716162944775104843397596061245722483620539918249474991355899377413929692192981509597124802731703834230754415699142339850729849053178631782593982362749803858389618222650677324405686506262557728952034102731358533168496395004278844261045573722538014575327553175446363011080190905593171604826373146850641191004261986738731817574794015710477835367729477838760586181971043949464041668689599467206796636607616729447976152459354782919633763569401023091093742589317872864525624127057764724216901807993902776412539563909624399484068347159866373067509490214894349283368580959770980958723308440141015312322662478563617671891248040024331716423074084106543639690271499636316498735100407182117847479273794059116152712396773750083850381795061981503694179003947218467978954871155938832536181652921252107292899483335543557283197460735901945168025987782385924598598366677305448487392435963467674695435053107730752423644208453601569442250381833065497748448725893049861112766322120817149137900269816525647875044768061586524667558847529814091548882778916099048849522949134457333961674286226383722801793721825554216852361285104875200420549992000348605177823179655247050431345068634741663283487351407598043197237887092590205169548080912522339038267937145442733836730428663255958300631348954972887849805549058445141356638206396377266231629839223120778217449271801067632412652949955216915113976129193957222018847945523747071855230429679834006978001761036832704684799327632240140967871612971482425786333188195550581805390558050875181631341272267211517695539220499121201003121594358116498379742920487432689500934433679373610029090492847523833484158352422880902779364490897481621566618510530200489741298520926611428118900535726044322727636818582825318337999777638528165962774896204713069713021015808702170239619212765629319157702063439898097024918454876814531932697623061836867764123099370415133062455930882548753537312522850664224859934683179300343486672745105682448111224052063307812382516460120798753209369420725382893233194980790574490053227161573435932177914218609517873409403723976038553788186678176339235872474265859273110040006100786082476067599947491245544980347325438827356305566399111365392740743913921267754409317619044532838844552298632747105033922865953346968097550736201280387599447295193422582366820127903779469807478355802991830775746577194157434870249251044635945465696783325682228633840563115974695450401877708090538381413146803038771437816644420840988914408457228636985807083931346061472099554532102912067154714582574058916461877021520412430918571115303984902355876909897986123525197272535654124328444464068272198362507088548958964097437797405206549223699966078915561551626412141485568654303200414535795088580037459199627122486784919187928400207468958839059359907291328649944072749930277360252509189641938383647229501659975537653480973524345514420249353465252705527456481219611255810025510395319923641779494023946837017851696358293929666978240037133364916443994981724706847375652214744507030763433240090091929886066878069366688610593772563585118450762329386634706090353472624181388560393393993904299898647316919536480942629086061210147318221739748436624528947893808749166885096969941841720518351843207849252961002249521124813111757695147872184745736990606437238870738131468004673210630216984715268800896718093076776896147512303648024752769143091117305241649884959990599571973801161754608413907798940554641178891513085511060124535168140652030709660454458955984981938565319714927736898763023732984720213198178553847118634291143545037929931362725198178803876581621790637864970616511932528327299944567857959909697452549559729101046076966648252562012791873801569288591317108569280176785282169609735908870116875183170814766602768924393040516829573031743020347909884094964179495354808844125336906788847206514717420897070615768066648564328942725769660931376136160939799583060453663127897605309581524072848396662600044421722559574039055218578984147708150670293983495031311307465995580462604873714358923284648435360892851620108970557966648994122756113334108377592174875336539521593979309842579609496684817455967151672309976354888468438462874075074694834574530122451171937404323083060589535228066042784775310299910456392940286499789214919896388696314396973885650386718245675488554878679940881245714863554539328727934371980785662184940718566094560780577600036458626497913644287010853349633483897174334109716370571067369755369019645037366850274020140300407836663391610724823993801490635778985660365568589633169761360741842574335069264293781427799004137132086666303196874082259353440376282204272779703530830788736449151056639860173317351149598250021393823012006932653678606669458546907106201705187917862262821811162866111045199977347565596537934818419618005764403105189093187153393017538324775577052890844522345530650771290266503555764213610722758970267796247325171221653644852748328949236886238234721001535099045639819063087880230322269036122405339881468069271241319221547653969559248270614715004108005623040678587959043620368525718791727521209910369173835017320648767791216191488665953458561728491478728196900689165597460371760321142936511763031240645415160722551850330027395883982602681397332876991513408836929423554477854609473256321640840504673140324807859614426704122803478137638102418117984392757877543535238268431109750491711192577044791761902388076281643443248564256031684334585545679910967315332739285300095611852954155553451974847246221527445410368427468521878264788965678993924697646665734881741856731260081215690202627924002955234689946271064155152550166921430499058482100947875399924946132047343801330175178413371102718601205519786776053333336885593357814937942125048138215982602171869742553873353742860397723430079739806020803304600708015721522283893902142499161523273528834293904483726722313371157312033955318960989252567855657430476958688245407999660271514784633960126795549896733300009826375805833253426228937551888122196103612973467380236449825532832657120620447285404278414766589080539488743828883773287619707571138724122863033232065168420999739021020142078058682600513792470845979373017231763860989787179662003605001706876497978034817932539856896427751376925309061835768279101449194647143609585520187662270778081057807285647316105671523763916329752210225097513976545197548232464299690119054570745910740028659604289078530165520210654124435670208096817533129863660579571047934834280048396736356243596736376881843032930933122007879924361760747654005231529024919306127571488228763586512908374912494350297763498721142832018287668150469489187825166157951330976877778388949300773693749643307754748625689697051369234325884241439229954218644040433643115120079603711388074125233231807962111269360278230320266215200389915762535865490087129981658471391922874212688591726736364929692920930096755732259795378021264652103641592585739840919611939688052224368465591310823597655263624854972761962556031622836402415726831347169530548498021980874285335464349615572395202763790098960685769476972558123757144996357576892147579487297578693839327494838722208872141025389882936970550860077465964813148708948440008691180933748195721320102141187976020799914418089005481840845189728237928624284219567707836096162895943041505180033947149667659489940732596547820639720534506942162541693822172584907392655346674714494088648602948912578774372074554462829499903471276750736811617940757851506704858197539361184275066378390321961587671039019889850097167177735872642426194831880448604159393134535749841276366801633087589177952776451492654887437503360432075221988609529009200036556143172125419152699115223215471529461754308763662633864324731710341946398102467938815731571648963375325738690070591445543996892793494141033724550529203043505986378458401863905656855229702685464596356651090790988923627965236170555911316372225360713573603830731694585311594346672873414342279287181420404532758429611080639950596531279965545979781788455419774029414615549210738461014716711311653212845632854655694666709641208232849447142780175966524841583671724843004727386774020054238644236661613092874198110040034535161362739511059025930834057772696338646069543296409299446258042889049473741154647430291660820341366516592424706110269035854478328357508414196326238657950146181035069491593969809336925213890578798041614986182564376853909967875484383380115106030249701380126115352705365975469624732384879688558411940804418649190943488305263092771787961626258329144682778242981459552015789418564672263357921377646819637592400858102044299025886601153050599623832803234928016337357094241365551801897131745692420738502379373466895715981362047336170370677141326228068374173140002701690330622352703116088967871025672233951492338216032326702834197445962186959168943808634318243483143221969251176429458893434278627107887983797391171251693224786845602064296730612699610373657833343165599349208523459417750426373522339118386707736879120678014259743310423242219594531267272503351469436033490332958488702056918110857928142530523112665350758287597750861198891774363121578373960664963724947821196870873185199509182653763586523487694688920946730310842924708022242227473272657359520149204231311479286085115399055126004646305486922625939041062658179345684347317046867649332883659951581705269356390494471476680352534243679452787938209346245269189047159172576377606404696165784428432872429839158770023125050996360864579282677623468046780252255319091656310979825955875516421756081026877663752961678471168882770925143649049075746181924021907713108027746844466533907797578084522355263524341749736096514002199783931733116780553059390874598907440102431374097065829065313055844231710575628961887288047348478222938454858824893622028500381927309434263343822109964450541203873091063576550710997113081083373974680586439893032821261836755143506604981402845653695416471335828463549514679133587629441833116264852312822283334155210377030385158172328876545831415551142495567611204432089865472731934578727582230145003729827591477231215308952578647483954396326146130596256798709248155845917875985813530285212257966875062800371659521356711664106842510019543597639401252763307755411243099280069152441483908176995519182888850479271828042209591685181413593255887489622540912227018295602219062435153841613670350844484986708180030286921587776680179229289644976830332929546853295109540003233829555431942796600682995299463216018425958120617437221592439373644010942048642477255787132533810087591077457275393893702916364967277103049875186153823126667313244439393126016580467852606699942939589029273282854553599608697025915639092551784513109787046723424268541310554800005396633225456498637905035286616455298577396512816497060168214098525736235392884541064282077841043618244982974476544740630513469817192671730835438310467321002406796113818933129803521402654901955268044935522149706384058513296002865024305145901094886339485894602207643669099130067951798238033344875363593104923700980890612214417883106375386612225823002965309708988103038661312657859925857412115935659921632171806279171939894068862905518135295721966758272525143641070358278789856208749426602435369899802700383410368247701422883459500599334495272430459827906049171435178132777017847376846991879745274056401291974914224977468729891553049245889479058842465144541551414721318039915205000758102996210720629620440689685914512923596566468948673232591038043102431408905914968563703356112253105410164638719212908362669298127451324215535402655091298622843214870253214707243736036824498362436779625027289960111174507903344443273553163996053578418177682327511068376351734184765013816960723122809372827309270197454336701907832551517236713847043618833480806713493115817263254032304881210058275438272698196179612889137120392239398250435983810678461754332302174789099944497256469464379770059797877050557859994231764432081247483514773833304656299978526946715003696988012099154715612855375559621352564502147384220194304929429612818111202405931645797868900966456338514946529050607128742222310682598649325273157141951991953248352562880166812007894137295029547472160671491027063108305966214245954233780243638581476129266781891519541798391491900419169745509277965973233860119752324539299793597732967999156731151869068982896770373610877558329822765289543133605503095755149527786026941367750301259233838946469094947986999945332249108722419870862414813952116689815989485953489840455944001055470506903023756431187666211299477192390402675997610156844238830410430446178827089697619331749665246569760271454649105109675766454573410775961234225341452719203724243712566599298786695779519212544735888577337524444581220155291762691796780424736781016861559653476161114255538939444234731035870351565971303942389681386100087030603835919852221999723125644832423815444817005143012660183485975287391142200709264011785491939583983911837444663202583942205034361567590387143080263633090596280196384182667406025989558018636584757198601065740180517198796107870363083892575525089297836818298826561515316910965481311545443184327619236660945241977961123885977223238011410722665327327708989747745136051657641106680773368777254322584828433584195736791610238707208282788837350869966849441893408394942103075257716293541246150337845370487095498070561028640303143357298993133822232577381239956198335002053475534885425059641952966983112226126732686964404369531322897027765343643789957877008283998175998315684275225054920884130062098696668617176762097557001514764044202070685490410494958472648769928809856294982239803013259702306446346497840462851236357846131775172082813114998201785933299600547296105858301029886373579036217050900922264696343639843099463405320685222780058113078090392505345824224308060643513350866095308995623883568703319206470752027782509955121665406990463950435876845215961374414397987777783870216516208878555270812871815546422095424722434137812271128106294524044501877286857164541151949464000431560187822250554241731958528940143019134008627466311532165222104567964639494503740541205916303540666815094486669909364985985792607878670090477213929128508328138160759087941751419949355250135069844438715146565946230216514708815619134284575369535948476809319306152868963714887743293833934259548320490560659844441371358876421257572362432465673894667867675707727140675264615238586008828474143904296926641552503064485481951156373508996716319303843696563492387020546501232391563244036426100198729650066164429610102723261802462268780406725198155412219714471504550455179223007851945911927378965060254633271215283894668497924778764281946275156569140373593594463140929408663655709716559604549885764100718431685451553927940700022613727187879995284371257594941633578436280131362540912120923200085397689724003059762965481474929569302879766991609151436997550409969276976062653433011791800576010124753652616994746240716085865577378567790998664215545660364120400066114225176820662903992279163787321117775931862265128350256295962547980178399824289301449891638057122690343748916321418489527759499373523647076930529304180971459123525466476580586919228432514918329646199368712313206681221150579539953867878193842124844803893099802515627109473372255823927200608106090240802451249621550588262447010547998996691392309929283473691684553797777498226570429335583493412766084328267998615784897287366612371908076638774311157036149282547661705762840693037496968327520627385820370078159070344621937858844773628905970598389433966414886502061680155452404239629619149011176939730449878627534902896471747987801186667692498790091707643497030490397687304613936491513730758975457380092841229816553736865423246788451488387340003316366234270703880370212351278702451436649283042159836482352677897944853012067611168358805392937409276758332229587886272106147636065061043010565008372831869449341593299990484957197737745039443790677404642808968765746841994177028948424094506334657171534844641401482857947541460394913769175965883778341812597798299563997798905619136067740851065218832347770397222849110833652035819336687439535524114945924806845942364137209598520498168138578959460393067395592941055599262617965336695246140108716215299808560066121803737202728728700842987026485156625450146189745015062195748404138612369785205222241041430275008108249527730241479386603633764872823272634778310759478718151894747133920646617780596592176353190668421447678306993617401592439866877841646665701045362015598020547381928851983223245450898506842721162030934851451331413340797021143560025765479502259342390988987599521892604177715291199807529435389113682626957314959079166972032628018038748183861463328178586743479629188052936629202849831941198096385371508334847655783252878041476067193949432864953305581307504597208118171827073506572275389337729275279928731942353804494677284757961412774934138601669486392016720699170226366224755743285415601318672538907056967748349187144268338348396945298449291567083398240436495188846914777366646086487829074870230936272771527272356793776695518940063799573648946162240590909772718500090318588753533364699603477147609701742190032607048843008162405946601151872195942539549896894842184692953643066246545809001843826394042043725518391898719882170662398335776973058110216947095137551969548651262944602946989942477369693633874172973554537096871566290762287489352827139768928326042624769451700149031128243257209249965746098938890708488739174538159765108597346413424926963273789007946293234003632820521537823074691966779028744009406795623863332802650063240099128508347777893300749723536825713409438705643270934165855160869609855643386990445907383316975871874887454503517226944722549223619379166334663975954896412651011443388409637446656419008382459479671740972107521429725031329439331864056561822251140958826643115065195415934901228138523632895026444196478447479118634919120498982744093216005493187472759262203330496343469118182415042268831628296370651679482718157050323057169880529383201549213488273791235569179590992679062981518590885456048811652677094287691506052313414905048279221231242995061763597785726208465680087475992173924631900805160847877668851435083603041250574035730612888071618077356866222494068326822771541244313801170827204195749300838746929349943191355975096937446217378721917733948894817787218675285243976782322734834782448219159936468059549224126224259306772567765707814227871845255958932152016888740800440714820823733015358486229875381145835323254105179595190129180851561956845476201736520672584291561222458986917360635105829605147681172292104937979284705861491205162137519969831199985462372183160679570958979804282083031649642419431436974378092216534096207929698156978406833914256037777022490098240277413707485163636397954405516724494904017515969411676990178784883058181148466541356556203570065717422222386749006752959545074244999477740282852798168176985687723374969218372907139485867521378578558648680397950037029321330749695846868345153113547735025542760515728233694606817269565225782199131500881426743348712958071208992022049064683207492890176232373353949131335873238546086120581199355191877313437496020012700347079408605677040904972298578157743366938726203816487214984349768305848134831665616528622851374019312385745663931197132438484916010268275127280188195029137686692151601703101956914441613833645913670841485800594611430146329659855500258572913789273133537111680442666152814522546414048488061532574221798977716978838343060096348822385822546293221313629766316619047066834650036490470854985040068377676323486507996800742537798678207011648284531760927290803726885978599025390999608002828353940778267649966120203778796217113000452180439752142955003033377631723719069191019077298994087612226313105068219663378257326235844008273962918242247747337867549897764726959874642092751930694063830232127050116880431523208108309811836316586675268540441967024334796947794577995774532329276169380774896907926960501523660829498103688567366605179960994044015474948886564408785700824616658500411035085425369955343694407275585360985761974133373946508038400396693937880706803289648443425759015521854481763459494102679102032261358390435934295100923812050218903826363798100521326106352930032982696853830964887204445130115365157878211327185749843681441397939644582325189800583460242639836356881211802144371667462104419051708717178565502036405581905347029216372435447969058459749760404011999729978485977920916201816161451733082875841116104294142436345748728386726637125994356249460007853239872927286872626699643270814999634342602886636178776430912021591034836086270732712498764745772222783809202394048751820289561507477929956091713441592190377163316832326123597971133349388016129793076477114419847401100270273398030140457276278768797336603628316106472701727735750502120578319701585305980501945507687846856451220870719124658360645416152123517908471144448446757617777140633838854722214353074478838388670518669075580850393797638067136156130492278723193189501098868329722580593073035498258107946203757061484151676702728138937966815699888511219680633594734297256571663461994936822543642173582561840300110086959156461614663267702416931513619098448889239811205108172125490724602029399672488827499979465518775681400831441007693546435784976066008989828872320260163772689545413899926555920097989334982366353927539753850893718211283121889593855740137252227275625950579015889261840198912074638939129611588199340635874430797829725523263005014927252519217138309697808093056116255548506650912683107342155975528343435521374371557526336438949935725044909298717758392858275687526016436122766066279527373167994104726540150228702772782180855718067155886743990531036238908800414483876905301631459680418633110541353934899968309703876249206737227304774617560964680324747022980905863262246160152205872779070699757834591291465008462010477394633998249407900404326064772004400656152168327673166126174886658764920384607900266180375822426368497708506430922988372379083617774125254200071788029128596132690802892063296402256887160243553308541083925267598999475702730287461816461035929021247554169183698677122876319248793447590153189440255943857892580386856630429174217967085080966483564675391432417378462619158397226237425759394244486077567702921363146799596452729799637606599168836617562875069246816579675472487048928062597466308098559120992949914034719766164387260941352431720808928217621580492690769513832087673382751865874651218427501573544745909219552606672770967685612328554975412917575500758980752805915987469552616763747952311032207210847330438637822554517245183535955605867331696294137437000661252408319295951912051176880048720777578131936661179328717229310904633654657199381340619204986808705783436012564765954011818421450852381049570024292377669469406901318417208323444126399540633425820959091822129705554964480672956291060875248731825670678367155269690890527959621407988266321779529311902145978459205124160798652527128920538199996334604103982496174379023588338016609421588351352742578148584364074146473976215594624800308546510140456180127042271602087391458145559285005166842605904455606688103799248307851638850574796972300418246470390502491083251479730360194254344791215762163442308323933346825960088579316693538137092300085855784138020067699399291939013201652538991688721771168952050022194849830937618538215409112405451511790885519832189582266703225443501213095920704656879247684210801203916175941631178531710819065831818384168201112283150192864027670285708427671373307009451896608218081253733927312416197901560905006404013259995022359121997744176458613161278091493261930907734136205197415554769541009351305474378980215616744315155198492950232699182818792579056028647080662117312988187495879302033375459380590747992347314580333938912484347917574247153881254044116216956011811535512838235092547053799758036734349735817662170467860931515735368489311724391385011442775868247204066448206580959119448244693598928893052709396198519961614078027938366744728397436412677087117323825310007060723735689418782675290413786278347901902406654522712080786883497453130276174484174127267166889287980553909541956775158272339817623632745417480361614862969096324313296122019180617619096332801780907715251085585359661174933499396348615915601705297849762797949838463564861053052367544597244325487975596377449931495709196745518758240836051137299649651812569598950205475919250339571293748746773746320252610646792556417864275167522064406758000055185812645834219099330147338612523359403869892949811083238750328557277832040457112693519803687290765391493580579615179788760258236818797330794337449323788867131172463201920208762846094698695269047078222409057094828469829234809878785147335616387355474709264636833664390626153202420337458915745206004531950912199173336024044430265659782770385553453388762621974321794994246628860570215512608535822818394717545844220320707565729025024579339430957909140668103741282745194193884963698618139183953035355446358458904543839205636617894537162946698821891253689783244494140693213588516770067916925252497982615107627973570348566175679964613751976615960834996295821326963280792612672105910644432655442584246795406032489323547538244596833762865620851240760579085388941384648349582469233510461691636988676262760439443378627814430902718146979071747950303224414031571731391990519472269999539073492518928453739248323339138173341808591220819131139977528609195063448593822973696689186619898781742653138278014713454105152518983528441041294333939673822585468178739358745008662723328420873952939953616340370485244571467273924633676034819357840747780224129243227960923958642790544899668274740812874656073405323802131507317212069000517624809030315628238222512929367629714136495036088955296923078971365143347972332580362972989932302500984921086505590668487958967896580977892396256779451906211508755542127676953161256679480981597079070684092763741871697321604911816455576166350043617147027767437478352322100190814423407069201180284883136338642506722050528662593217724480232523526419000647740035038726565378848583262277817224218376771356256529263822024546350016332319586244700057325467357518665116627945575814473659848298556751843061572013661675750997651922399524925134064209306384802889065806515527515424211192427192459955239504472085006162249490955220243454893667392328152101162224238203905811818926502856263351816454385843673170211408994146282321047190899807944009767987625525151838675473598278029623198030370051326043628284155890402785536753880674534149639936686759638171685252535451427605883999685393488692679496158600326396376911976789417176684548968495583058119089182380697369744533114756756564145611275502064866828220277701196776603375109122532961982271559589218805929418111997797463955594267416181873358060537930802776124310788572526540799416431465042544171955876401600959195587440997190583255105635625371896144965050222857311333825027834769451971075327864031287008575620761870896113672307291486495140491531930284952900541801242957958604473869423399027808250079832672965556526846765291925241267463904577519657121010978186503518069322606802900158591408973441599434048645410984225789295789024050469308499878267383901066914446100844835082035952602789696130270968604166086043774855324882908763077221937615059996896323149608080423901986830097654405334635293484557873278053590074921785227388116271592736481223276392664689950882495899547264874368623018590734805958462176206633957067143024219711851282053815377300397919412810553335122379592504553210348776676098212946030397426604339105611868093844129861496102756294848711339400669550318737425751207730577792629826949410595310900765616322949820634907219484803790984856523819556133208153595298003772441358953236392845680030627153979217839116000996658442358423406558798032690732813053003381134554724430277334900603885248679695412879467645314363796271185533725853687946860112302275700383958801275551925476700107981541857463001642120516743144657373940451297022226601306225695008040015032158798478424553990707821322260687402193828361204817228021800533175573739156905233636362355917486878778171760062175061808191210472318593008194634676069908129748962619823426209623306671499707139145481426361467743835752248289994580802708646260133427952258452292588512556558255542327911620314877395192976278029623018492626299085133960455279237138056235070108689048859696522209085834315453028062875417719982188376219250526847381711076622914683686627966289704611836378939888972814656388416707263005983536667787251669438381080090357018613414226574710808236221181380856127670309331523204553036297712647516603934024004935235897617485581389730395564604211852124096723352270114743491258418428343556109907306549190987265850121466928099585512436455298379932333004192033806772963760418355185634734688806503181633609635131679063285626885254021641125670107931382370862791886967408289570894003356726042442242364567859926598115343090345712513060053308805825541035402390065259049798472197634454177865652368956455504959104003006752294572095928716107393660390617289609088547701370805311820500279270291297505995855482817323313676393298766300192065192506073560462342712333477841692923588352167931725042951656227593549104455258295712968975737411351032267730146818660429745029262569534832833837338206373343640565241814992877680617861914426290992214809944352734559817803097244537445270694732433975525863349717568715782678799881543681495813421508421433421470244162737071417733571133256451216859302962683782613628473917569403869552567300555368760903199186931350794025458099605567726255903369040262316603566555701652681902196251409735343266022028351507736197164825581133622223665628292156746820942688020184982283571274000020022526317388246415154899892925096575610542820721696167509798812557783872293618254880915374014031318861097726863335372118222284800749892889218797666200413491715967132458579150098453184475517828950094866960235565509404249283130535529903043229309012789102362124495777443430070536894025643709541046612359320789595056532008217398335848444865837929717671155854688499232289958822246286152546551973824631304884652936866104736758028713465895144389776653169906727141684939696314159563775559198521163185355475673872290455199799134995413442801705706411189364716263252450538943961744281062335240918356702813672222229135341127298716102686423899895446550134315374289530995062219480099805854451138341581142722012279136193040879134650590791815368770525761898590879486739226894009793123492605043004622659476066968492426473149059995911193361967234515016348393236113640545831153813411483147024095034305237892991022396027053957968946014585276254404358084751102499538455584503707029700090232773541339239998795355091606177530822637104772598823341946452313219528673271766865502009700486859391434621218710430667445378604990409101209506042262270834747710883789568618150745566778464256841802100408576471446216103137646487548385958023766152507921686450343782175173519507352009101197922354898093997263930532056714894858478894970169874537880696291418199150209687467537081150218982250525518814926679300628575048071309602792077306776238041571973861070909084759035620474646936007278160188802736353470933421445333777442739869142857306517746228947419883687631904760155629545520166346386933632671354076631498545370815464264338136579521914499276523210999878630429290951520087550474742349495999762352975400972507252464051826270902274448819789036432429576408286761687184868065028911915595894008972741256714223225429838710424075391127764695097299227468009727811615998536680015529558244691297230305641432469451849938886758226257659538383163607795877280398459635264701317653039281176539991208507991385318110413373654188514711878311703598464509167152244962778691126076019043792092063813997647031523804795067200056393464709037067058775097593865132018640492424780791403623643071742489889548668262585584757404550474951805111441811833466800870514702466997590786063823522887901056191151372306559727824156722587126529445816585370613864488062358895498011435856224255368608646801342486118317498653636535408079781778203902648465185906532234175211431187253582812203834242274202222376097075882251751024040411422111973264716733833339366935726839882602343520710078232381357133013016565703866532452573976232088134760975258672227648341532347039062361995848467566961215441655683099621357542005338148266512152074114926810032490102731264485493698023793485557074894312014046586924103224880852674555325498930079626952013634899905260960990370115894103692203530325323199733802661452955541098670754447730875993095233758896076949328516180542885808276470949650871255516169496950989587977428035434050687884719735079749386205789659316684568322348620021274715138037553906222504994206554489330117621304074851844553565018937611408125589182667256178982077252942197853469168922933709112552831252473953525340487468703621564569428644546884087120842702498859813374488383684947973345301270487544714858096095497317039829582895476567509347367454178174296145691821021665887225581231962275959949005587793505229292580614008217431027669136594085050568936163654547253059514732001875124487549218046205028763978599200766356410158731490712410096915325071426685092017419840434288449233769262343929176964239773711648967405668294734457931587614865874147324651348434562863624737134619248353874430507419177414385400547996277812082154987433900306826745698940564073025146235663320732297831275523772359326096254058401696425579876653401487551769589134372058070008514094595650482109692215432953117402948624330259893856313728127229048239240771251023883184258748257601299764896968939697180997125882990204297037274829441573493940252020953431602735347383889805456746805290060570379001955102732251421499711420795440692983053571305519235193879725867627413934204277885732572270148518330343758151926452715097634427013666093790769674290423563366727678662476555766125817966033812574974101360997451289471309185252001507925229714690471274098849230243271252135782106656889269457361025203006420549128360614047033145206773670177745860265648229597865357856195123674899090599169809527649555487650621757165614866640132501953285790309311464992763059993709479514730059741060804797424239548524660169689938661256952493742335167733050701043661688430887130085968913534677350272420881046090810628114510611485070655262321140534861750420999795877193928405962294681914244671271087562977346761513000591200802406665056171773215414047824057326402110277793904028638409110129722088416194738406258612486303461353269223582716007619982180271101672119464019150400234431324752757799635611753232636303024132613612610500426158615599274971997226004443591764145190105695576429845886117906875473017108215810517095877008456814649419644055878762112430416811678829258178469081071136952593891383220155777281534820084678084121728048185065195264500720555347900508310194073542855200912227862939891152628835611981097752444726898259878600369560969801269749124974649366475479417586878219649110464873317400822085557365008209391107764667652463902942656948070022664709368574077624994934080199732593397425754160768520370523168664762419904651739256227008626296828466487030181941222766217208176408518849753761126569035816074097959183869660617895026055485439033471525040460436650577903501911961851057476501465007703059189171857706469512560013415204507415640686882008064398326678352206884094699570492270516301356982235528207404983262282308591637480958753832034552182222160115441725009139462858628715233350188208004962544325310036857897018070741805046848706291180401515120240120720582521447824423573523863505289260917735466997048983510959549650679944521184643341361228641160326070775073552416911955950030698682000788711119926038846190495020557648340606472312757008105820812828496754792846942152954999059987452233932959397343341462103365724251904982931296248216444204601648616264160900795053484797244174469227129184884968883420969630416058835977401533176991645303629135267777566857442793615427595842109743815164209458065943117666646517676742453167408082340389436079440950418462093006255219197022880172853205463884065671203733393485357158827022992622528138752449057648866004907998516972757437610132680023711542233717563557965787621025161242011960521067538985179616587330011594667948552326163195780118778894463720998613590335115589771630377428248918231556216635064225568821341038111473376857953325371167740204585610613014909974669196503681059532495131396220497921760262209403733418942367726852185128251442719314762199754552725234506744029619120074982565542647982892963476485438986441213921944558228465473697460776446793774083830691306914899919631893362150002691879315413453847447599468979752516368728103822157499815170209929648150582433601227241744458739118412348952026446506712189804071125550529221358253035447457846398151003917395963456171201447566632033522691876311919462999322797538786559965249476446840447981042052689655539975910656707552921216880601010286415517099228914497378572765046670563154238484454749181572176919681248190917289546773915228706072934760080189362269081859046347931729722712900429546145726068250559886444223951867576643222263350567656829333971033234579873178973754318261704273860546637688437672221608793926369013407479782658722406635004529513760729090908906849044553711769770931659704485104227912825595414699564756976074476919641831744716589928461964915337313790380444245371126963822203868945450397497331997963918276467899546688252246547182866914845704107484529922608863346930873472228634969305505045104576303987227213522461634774526090908357892063797259030697183506356131871760256618361557932820601586934223159412161346096162357807359459705797980522200006792811674355721505101585152874885219630371326930989587031065748756369994409239692480909263710760137213302686672676787955724368971570513285548364486869058015979546827446416123514813148541231588857396757221909350894810103795712033825178776017467541776402702045509246678494535619791261168465577880257284461122949173277159028653444958902148085745738607697698139702989534834244788563759602407096718983632239135375689187296843976102777894726337817459624831324272586771007737147346116117631215324783020729450244428010370382000116343335589138378353970824544710271622977450847737333831968684976556282323462950662727719152410003649646984700891735612909430008544664009258189595296427480964827626779077323700300489649698625482997825421299375036083866385397144121861740365907216728851259164884348030242066851423869789879774908653381246471001483404387435149793673504599367366577217501453741643903879404745712573610486185161778922072164087020095835134203754884593090968214922988769297898916540928158746537315580208176371365428469481872370822339192680956699710635233314845592243992536205717555838423651576794869673381313673953125865681155855395299043594491242076920612925988201478893944110098113723732723270816283934106228926709800741356620984577830936721554343730331514849320381810931108940085146182869640857711624968517287324317913153299097926482608865066055688543208562620653182629277221396622652802678344855251072110860333030991984817033197369882400923547848243221178294220484194838615135359139773619615866772653845194065373677700299866650476176415013222429933375268736020941950928676628189037434250071332961568162644728824174633799707249633515000748379394810808537087995157631464804308984247448762965037875745140108182444384448723850632582075071205837374070503099304761119291836386110080139762514061946901687004383263751027679510061078070257549019099393362936961197026818420333502453441219172763737219526921447665201469956685939950991807784062406187171663414162956421378117970917983703766356281891466881455145909633002327410499686224710623166346344312902639661718296122914624081776676360043486195425118130256746615513844876081194644126510181416019246248517061782560183482475069441607483251668474261373455226176539626436074578556190749194459168324107050772697483958193345521572415645676917519437185723461687594839792702939362532433142057343717522106367559378936653667332726910956645086434777747036093965973171934992963930906606619952059613832817317579515878393549233813907832708963384387104676251421801470397940318025782152233760826516902508069096654171252581891843506949387945661901925879082032286856579407906836218732038864200518414020124297803942322684564146395852648816086307310294857862878165615544937744952759536126750858894215692631769451308795148123841464036131190796672080921546790292484775639986400418144190496547015405603121858952599292418675094026095400956330167394134973878653429754758143757252765825901024603267963380644449525114688807413116865584205570014509213546272380624150109370856546113233400840297441758480268827657739059291341314020421270735177078243437434282972184718279098528365255763013055640688205635302991381243828402632934261604371780406912242726411375269885957964171754058697630803079264075481782248921827604647523822705924887948544622639603937528630500107735478961823285329316908117297555056437628739820377563366135096730846109697907437960494228429967323441446450777088739531466580800894193599226876781195928690338191591094049799481547572251803197187989058640415707739828970829749735144512322148377971856991711075957771680731630757715795342134876554236158323659794523428478851314066572038648249064937482953946604828517224749533211679061406740763456006534587252671504606574228746646117949165923019406992129753670312482986034400564700792782668590591956566463754360970401767391459255514234620185823952829897005469979554660942215378465093582056365129412923848979903360255237046106238167304148925614097989053685358840246064441877165162269023019978421129890093885978010487154679623938004309381347474827997266891661681887312921563206889187224788252418784486449518111997594822321620100701386221143925708379268059052044373316591114536218267928513103208877441193411317854420938617025545541389256640749626008123139786128812026523762603322966193308446014373069438905624175947481533688150737622596521390880180138334405156285475284670775992242107570782155500153286028527060564249354828099596303003976654543196935294840226181249477295068593424610627487588101228065817438313883815428137254991576728635478616155001897947496726691109035544389257452971463594789277578483409137790859941434232909317273011553154697583219440080244879175058949659598735055147792768271571652950554368219726064640570086768975763610059367463839509856008985162228236822722801219079126876927330603559234683928554391969608992418008170146894948597683404712261470887406243021509249656734224371920137242991927096325465080036279192158996176159241484085431423965138802205307747455915134238945466939587075364390237586687092756799125693444247635102852471914467864912060911895110602273118395420457833058444986311101292290851449609866772982817604922436963241849501625520205489570460793925795578602461686964064431983147187559813037876015965174595019641742312336006870124916625825064399907998777752410835180645332521888357044304632985587907715082519922924001790421161675648717414514644953558241448477459854094981475305149964646308382713032015275125234155772322807845122824897118392212881472537508882964263613062641326314984675237370780235800576840686805329590786749624553807868483271888803010490744469417495718141702192639606264787258895858313639803989773357518337158122584854067433727457154736564328211911937552996982048685093383570257919618661426572249147586379550287757623329619629111085970634008158027500187743834123612181185676308354449586202146402466570127908051530612638751473040156808962289967806221310431225361980353594344063800687509484347138930809156265441592064761826076825033051942422833467741587982337553688664487682082559083269009382821967930537633789652945816705027945680457872955337939580505168921324666552682810081989057887612104229826368087541653166585816972480660480968873602368711771045238730795275426684358080500042924424107068425927649652970120429517701447849672956473691678962167218590564631646096847617690501723364382090689850309241125961672467555805355847665403660728540620965399712991644699628547228226457017240604466673277015437433582361064107319318521526905464259494205585545634114534243260170713021327449018819971412803325474619152182336124087738258689922388936850057417684666615603860740600876058872991316039346209978378040406590849876255770558463892560767847118991542898567803752583190937919484503891250621442495146520095319305134308522450810297518864071338745235908866461159999694530103706051049171018139928642090489564776411906873156212672358956531579219862619981087558577462479728238656185327865077865637695435905424134374633983149142439167307238433418009448505760869757860528774738422763625512360922168984576835623190938145560001310510880235720968634383576735441952635273289278749996615917925527060425246544822924204938367551484883553723654129881338100884740032849085626052743733291103966738224957738625073055165483883783803290834057899328475983540444326031117653541479059083183763240748153010658988690622940633907909286095658306795092733075383583476411035153970208180923410129874784562550821064850911540748807993401857286993803500587520118769429962517763155048610198427294097266871401655975889245489144776506568827607945659477983911816423090310334116554333348477516186247471653468055526054477290143510133409921506490515581084402407555149719827023879730951101614506350057398172104792709975661987041384306447899969548167026294875023629518728613239744142256019073207224785577489635205667022300483252555070881270191880297612687468270104906258316431656299120806256422442075919072537612399444876652430980991371234158354031045305439219558305273557551689571378395938364068197685001979309781942583398588946510894900400575708182575427202319593734801624125978342884704786934588975936202523364814030668037586851691843114158340005489249430637798779605910593999327567275964301854675077438137420603870029512669115267053416558265366013502861795564466438212771329881911385010533363174628911715005919542718451231795071229258983203578922784273142320272746568615139263025194714938716873859227078642693624293210396089112425707025976400307638838872217273438779681940093760300195424362962061856739971290201504599170042965371411387483919321443233710908857588629776350111037593309949301800004336289151900034141722278342420197451644769063059795798940154018335687081731554197717415806367362171763195518426712392725336346889611918232069188719222210052375755698122554963582790861631235470291771534995629686823412126914540740477229741620102026516846993433945201409482873422059356946301998632782379004920184251876596529049981924669973002791738886336662944584220914317726191516931051522338648015736470490797634639442573025448982876538490252888726988472749768293786034647532320428132640921130399004738833794343828475106172381415204149059789273364361726064978269873474504653996529937446256348721391193201835848570989529849504151066513114520692700595821593167896966256606825882492101074251848216400013654358421488831259304583432877282157253535888238463087543093556550422145523522436725657400649441374454008696120435344878175326218006415682117531715567661420021900395756211112918474973382227927588004862321524423776117911733275809390498861057198525038970560246068405381415254771616328759526241032400012762282969271157328310987294875874979216556532936552620306969520512232484066049518799326523604339262990976901226619103446914774266375270718680333263156940073678399472397885390888246691936804369819465782289216099391527400638552405627247446890956625459900113431125494241238977662767912000806580607520556177404114721028869463527305557074182459355134322118383662639841223632529501273283141900499388599198919468398558871838471259580288550147656878541993363380104005145662247142581779653681473618045522980802808121978153397755696072691496009649686246848296158598496076135003012676409529385654725431351362565354626704757283231529071114094548978415577214523506026339772738773326365868767669237456787026728816339626028574933635884529698102233598218134282002556807426956350268242196184830075545367837010196584476942933099063609427385343494026802942624487297735990526643877543670121336305735212173151049540734408804963234617368992446416876082067482935771645343244859939860509524126677386205309938641023516224795714672695541623040435375891265603343726005605662589074641073602083141244855324138433873667832338944054029635834293487499361616266388625507904551883432014045670567098509009184868656858413891105919582964255923845751241257336992139801796921658823124695857787160408191220596130623003791970369558309046726715787994483977290745710138394583072080914036380116989460637043495213448904451735763319224730559869692749035739817582275814546926579011220099134260071109941596469423211548289759841082314935927264377188406559002740921964922444620491974004671542802911618420717065312659914018663026977033460802209329799460866866702886573583111100075204603033798851308222616917048371441967081025821573675476567389871217254530060369159642779474147278157714717202038131540629095956582322245883864564255854822023706562973921545210954409398310651974028048702750544711872938266719228352640537797656599248205918822643651295924179463251893147658156234852452851992603886703747596828956510477204612478834581301385716781649827907784798437232162844268008499014617685986001878589499864085784462352708493758133335041161994775514425233547373389713684706361900978207918938995164719342770426251566440589093728946911003893689008986540006636087841901573946732271456150855314972665434313478393862658341588683808399221701848016591950198803098650195925990056897581212274879958963464007564333426923791372088837947660265935621631869744836011589914012847669958906783052212622623872016230713799185673943002341258137878413998785550430236560906565626240296841658223102380838571077213995680279876316818296621858180593458321446115811060736305549314859596009971323657562310717653459802202707837888150291899824680782637749788859409554711271920862345870511126652656071477919583908710266264539423451473853431593118660079763163809867318778795286192821009294580285776786434328540622707535483600016650830848421038058466689472156970340986299698767657286555749974577832634386071083499596548608077222577126923523627818183364797983632679492585977278825541668116991713360923675885744499285132009054213715896039224739166777797122084913023569974377871533932262300781471917875729356055712580426683940904744970894676824278242892043338137553654961633424825819714664825324709036315328121296162674435159593769900236796856006685814812406782327867930352746291334902929587068945531318607982901776693653112223743721797823214847382963727610914534940819604942898169209974268671122442841150786524406604025272681173380927234144434021518045341728738808537711354030215587561729133825337303308911207470261384421870091949060225588831745470204776060476076015886340394774864318637883861383651508458141498818583981156559872119226593981821244392336875929541521782936594325056214183963110391702426639078834850940954983001983576366868153595752006317737384815606052190366593936406940378670383279696198130567885576550265027568071469158820590162344876150699883834952936681238912134200256266894425664245891363062001369594445153520722155258306079590881910150678715968117085762305821619573264302721749737392888684390221629604352377043969764622740565263684854053045775785600657092837959687109407438748334779311374203805434830587090094918817874165484715979373126962978302404258355020796917728601211116878986749130237880273899645790344073893405186249985807190104382205426812450265243221893523752762253784823472613963271137698186920366126765324680491999187019656425446729364939085350706597073679892785100698456857113936865714003175440758561073868540048646286919105688300480360012788613572909866109375760046648019476152187438985517629362431443421542001450062558457836788207028179847989807349385164637502116921521753307239658947639621883323746743084019725192806350831130957285222718123731775172573450474299125362522554050104189417192398902014661113493056966709205910340255363892896304966206549851961856354562728666783826748720376406484947471650058929388103905682700213673561860904435335668076276378827177581033770897245997610299174725229796703091492222640988238559556387605249666284816015008609180908955398574491717328478043213791820670069482589129849200887387530013094019024470668482758736226216619340400502932496207210391485979598761795451708323303178949490667201705481738024496110458518382850200678999964980458888321314544285738818723666415417280514300963206433647256874175938824147312085117727933967746622435504552590732039421562101324344453862626790128095998127888737282924425179102006287272076110557640301585926639031953258571864995332400353918936859660104933985981856126663408578537937137445569846202224117284083148236122591777380000323970570192666901050355513086919255861655436704349536019218706551017744641911844138190403933077129665231509828848096588589934206217449667299576513249907553022764979453479636193841897477342220442733257853193249623860502441454152486729583425645333969335899490022343429087712659559022077191355818149053717525256407112413503255500060053445404402605558270911987498502139891927779687706885426982134328201266193762949781209428360822948208569327087782805025946097009152131568189179240263349953783446636627018314238123308486118046138733924103654767671427787290459652256378294826602791117015717032757781614030520870819382356408347919919034093222024484347089948903135300795976015402761751609484673475948100562290002477547943394573774923921481350562364071662353750968465759171646061589213892312212440462343239871388588440435422963427688740778999532939662662601807407112413965031793913387287321420707316853706059354646674217721579203384428470567737124659830057051062872112858989742344160621352495505863926600307118976279978925823959575294717417464101484597384916504192968666214342762177690676662853745611659760939326244008786296214317172398115092190815306348037522273005483748449059026286745672331937859150999178319441799549646662072578197930665475308587657387723026639769494364354226450755557182051126489228000589530740654885421931343360316220065669018634276410443125785849353011933522506028654799124406478127646435023554868434772559051283958906252316228187025561836309488178144156497023667479716022240467760907864480000567172597594170216092385559942081911563496335418420270564771518611515177007633532956401763097416476828766618229234130051450071868065658566174131775099262153072736213681956122845481651228489442905710370041525609155346476216130310379520599141870043625725176896707415759299872880401812079110891303912018601985668255051422296673379496722178105165332985751529801521437744876874978114101407686365192712163560812852518924482978710511656571807109371401198191010678627613750184563202158636746748189025827523179446764335239814311507097435128623332499152018573136281788140967934074135313042128913968449262188862559158269297005072180491435027190508032407207328007474931787561483170583181613184918024490683217780205245272201921609093972645399604967242568152157037649717874754832597017689543273557542825375325256389899634903328360983457074475483817633239258203474815323257561611708926983903845599724594928812500638881734435667825361185763439177383532658468645868088108685572161476734667844599290275545871202021967204779850363665838780021010992810442173235448431159466525443078503732140551572090158281885810612740634085804005533558407839695469388540351560812757987198346093634762225631897790202011918320921281052173441528530480223056768525193445994453863871605394498254316696691753369607684886980126061113008936858195298985801157537042046286986076259899769874365639672094686376882900891552476035190333690184298614648962492782062465737184041836825494872123401549529112212756905429665601608825701762127750418141185046242529379612043345189656180351696325277495858246901643878178380434939039669664913548102284253551683168916732291785108860178889348360163656070359046988772402938452842877284398772074811822983005854638201729117510508231010713589332598683686930523783137351871369631083951950613913877071614629597550998910398246704523438399431345645443643561973117823395891460213100627180136551099023241082662246351602481946548767583213051318215360333258772608833952109495968050841168007828477784410020706054459162665484891457822635511400210070423499136414540762056283160864785284037006556679420634809813216528023730976739923372117754289444702314618064742853156491101408152836686555778451049306635499067305608250946817056369928056515548034398557308175566179002102077817913270852881239221619478723010111563666456711006086394663637722656338316023971353337260244175349821472137966039914322459831535575562651829564758665408231913683066458046647812315730765545124261772213294503385775062613679320841177107318961682446704203809894526715342392373644641311814622623580100939268157329131655166118632053151068849455297452426943466348134236274872137478640084005745390195300944452530762684954372317327370234061693720812759491594658480235671028328914856195288949541731139817171538965553188064202005487302652393127159834857291967403481293989850576635866555181377027123761876505481740463558491858834262383372487177379878314200096973237736764471228316963498609242218595130877492680160339792337499152141327008924719971171193837898635750299297670808679158075730560533842244147870765664336868154544528590796406894515105203962628425317458423251999738214697002783814625254423701635038838466008675153497894514444776842392471994845079323857378413053138183795970081538180662255438196813894174202850310343202882778074138990855533035490533090944929520561939177762295853036371778902642312538674968769635854670830079956105749515261115791124123369529860530046905278728268744593284939991627438886857065646915551465804492158896056426720173231301351962509513039690209162669289380941983668933866857688962338526981784071703109056333646392862899067566769337826988100114729371241326997882026443964216864005810093961945006905686001192353398137535851010685799139181876028106151032310538226989703249854193934152313252221561739973534991791839326274381840089577069830462799567296651673189546841571123633311437379944769509685887200842705248452460495684193195980623361800132871001212888683135611090527503489896111680493649475090744649295714409825501776476314540214290088344520855031689993221758515699199029692195661939529041210577761985161477971772035087471825019266216673294900241680285869373055420129401193364249902510225533311631249973756455200494371655006969137519716125344027204702227031838512195958991904176266036397739819827393353403821409317687122329468609451203118417341089527049589248244806733518261482289148144552324555226562993010880209402000731015362888867795838978495032444505976609354262388272311400018884110688548143665685910456457692092201167907106631901344506923616527337660214691510117150656720996469363507538855195160803260203878502980279870600877735655843488112239087051245753182075502487863063065297911323764706996277289101815485603199992757659475094899529388341507726261615369239764179388829768319157632133542090707381111779281409896618654555356529987036320247999039461256234104863699604298854626639785862043838900365347617018815738690012441999586517496881674578480036875198867770808901371911710029352569992019475054623607524643816665463836411162425055961015478988600929494032098304048593048668405991013939574185767217965755250797709057763373416240626580889484819221941459018276221454908540392600407433213888476793832707062382372488110408338014534476722202669589343449986143665750662568179282850284803353802983416019284744315473132819592004226200954291591123404638376833343343319327024458169353329332217516409411462630708694703252506920796408341319440660846420209984994699057937313005954682131795241020896443848055605373188703245382910924002805111261438685604548034003222811477169807426504526510971318249531370109403114337760210308809263605209950667140703348049012867361573849240496868688364676198412888327564674135368654307350981751855162397738281212300002396877174511447978957585703971222975932092300184819334168251994257089561830217634495646656706926088601848268838912231835167395937100106835099602872496012013853419886200971700337483361387861767474525905585492162495957245533259337908205804796360522840830504641260835439134697323605440362937590939174230009682883340220266820176776547600891011649182823601218757163204184180937566535238155611643017378029964573158189726309081240211340989515828365631511236185643677946185339657563783768529621526062643323256162215500447526148316412268454342649226946552807594559716160609344185008693462720141343145635629820002128981835691025820908722754728783208303015286409815784099945698014368258457305793686684770167729258027626223042674848221906628603027058281073593308034941583449343730267707538164762134048526943775225152205941092439278638912638897910307315126708715843185430210878041667984036280382405499758679689232186674069273261796310017272124300049839911367489033403333890059380671850577860131679779537208479462344854204127340905484991720926537792642341495523571140172178377401761303122629904401887938967127600249429853178054699593414683788793751647891395596288916559292779633703280731010942001870278901743218827519023418602241583267579761098261415526997180084691731680537190620873583022203347354841833111240522249138061941850653074081557808974089430095947768386988441854941271566244264017955815931580921698869250976225364266646106684017579695875981994778075934573692061232200750224958277684826414840789984855952134309704093617130221603602910289336608434042199487818232010793060718957457063928153781905278745556090226544587017679792324182637543494821417513635068008122161006647658068808891675308938639808291495791954049211512338975483768441126885900605362343487009607304733745543968529585957717503720612075777043074033038986817227259944170233629492350329795313220963538970921701931575552122967156832312948353702014925239897145269795894502709926757595737663159246149170415527453900722797060070573244876432670707452511922773558195727424377508504125090848460168242600569882730730312682090292014136944629798815712507662919605200862069072522906755765396985308635763013242497454997152610088541945719213021247427082478179753286392123165764372076461294616883860014992480764224988362291462725990627598372666713545640464698871844583496404357699358377473336787262885510007098444916851161040786126099693968491970568265262325306939326966473809266374637896336500913581630794379051474184812741501540644105134184872239921713042790640355713541692815778120598762105382043500445538917439029944065708922273797691212756079145149299290788979388994767909879913225869458913086659915121235596424199438169260017290593397879797931183880836731961386124245615083289063146414260050487591137788200084157559523341727051623298619463121078513660917625120304241879244011217986996088843609060472194956945785618328621327688602678610841241645162039850262072805995924784449278266860838870941458674565606939170741759065686775766551139956685365339778873828771921338910668133809335432340493667322570525875884286168069814779687028815994564080266168088288284820826057275502709025019338516593241585277511508033937555147742850097506916933469860602336112158797602950276734378727127488665996837636589291454050455573547337803501913582735133251259868357738198541634725696831245090062644311645478031017168319290525411523645201583502840483228731860130219679906993876423775945545370692409161539634605348414453715226950130383337858020023269960350533425827587170059267433344646273609834010871674401570128792078522554118980644028802203060331863697793639139356632961959643321763874561738402103981925004200200749388491948812386458555573472319310765590615762606110651074536260221488125376174586202889134985136179432177554634164514714610248029413180516049738642848422481745420484205638538305004276676839851176631090613161681164890479194330163273519122558749439884018522748721363717711739471579059970656110175393991372728484169827095391348601638299787536740484989555658010042023770256637446672133394566490553309584073642892958453146972748859632493712449260212589504281341232521651184445383202768613802456993375563959564796463630964920491153641719639480881353376131663340107621080055140944615298300056418016380289130053174407942819976667823992871575910437250211544809800380600401910940127779262102102705521512873311109240639135350176788299800127308187892838507117882795631579063957733428763946876812149150871743430930370431918932020895839927012656051127236169015089891589030465371589904132342317483206491229655500808032931383504116875932518284020174819962862540920424237434583533705205068156282893742452061044527477879600504065981690226582736952052424123387025872066458697926656273445232532001121475825405703154822547560775535044151352496306998341627641250429818267087258705160626327407234274069333007949030384130489721972914209148426393570253821592552393247672036017045317098490907418520740087811237355366425337009961942455349082001774487104969593046160080689249681246418398784010269357738740174463826724250115261257205830511726216536510065045854446542742989485626066302095296552763018092090072365960029379784951939591695873752238084503586031487863943285536043721048113613800459617531625619397049677469175183696321162228214011383466598996471853225035891761669409511842428681984311978486990590179881592397457960544391327828967047034254548883286196315844284150516688316034651175689474803195673719112873004233153954888576381896130306357663200182914512886890677723950123288098182822782532442317878381660429404967464204213208388266633331577923190502605746522387666643089468205075599516830602738554580382254794192962200430575358381726225962679054990793656679110193191174283626640813640556635262646132280092311362707504210164133855493381284230111824469980689947166488729131830889496207340188140610050364366910796026403555981203269554317482227352519932046001402248916160958573660734126420130418739853191011153756484205693711364207433471760102671415909651021629320187842811146968601140282031583447185388874568582856203035253434151776678264333700966871499341784353782623299194991566982566006711821159406400989471455873911137002876633825232200494551559642919188253643089918038423260699906091440282903416271090979675378821810459750036592114726587957574783822158992857960064135701168539395523983623765523945086113091885945638636019684554137224194483207286490823237043388107711346819747512690037064225777662046131655660733491974045299634390073749645600755409759176461591615102341491786022622320528322854776096722986696703064995657430668899882503100316834566161975126415650948993988687590801498765025461886980752122290288179243441821078416943445802255258966960483553314740595693798752701865721332506656335473541406644367129888767517427764385364997495080476570566357433787327905727349790401366509605285085240039967037355655927943446997215216512075678971541474517238707845827219025287707753734566074368601194003449919977337292589668929310998668416035137263437695197901384738495966970023389614187379027171421328572714904089809318511877565481315567812509825023633938001654077983271559770788911094168231750241195602179501165944003936518350893590260504544754879054131546094529087019082308517533060817304124431282703311989969148437181714748625801714701796027163485306978110421692105870830792066452198760236013878497834424610856972289330266414245799119592077589552702206638410471529755144886405531493068100202584711612154443171688178430244563301093509402027856536472246130827662278838034659598473128980888546132751041691629476104165687830213188193098371327360760356629850751271593575200626827984173100508479600476066551622711660682325852494445499307424270691465976549777627989230376538531118649483977976396943257626377723699328737738411237219228773624735966145983400385352907669834072797624879758989810080707817440637686521417680280877693340256709174828735849082984487119869343227593006721204547813714918910490164766493027914820829306585313910394738649354711315868120073579050901168175656540983425567394909534438247241132142946077595636557531386638290625933423945033804947465192346455565712118135617583929883297263834324951652636769369096840341456950574465126743497441379633091776945368496557252438902547257621591657292883786979456629025298721261637965674943555241360979579277599134711618683628126903438694178956383488875324859329444968751596714319913521002320433087738896642406868253084815691008241489981544102678480300249485796321980094469253461497037168341032338460194402276864633097243934096935672832730230945406106228726273284851605231539279768451139693519910299668150798400474086217566410846197359314870233109627766475874382253837230109343489126280852979876492943625308976616983623883088017930303688485940893146646435893539268288878209110977911718744750015976030541902063843160014417226931528804388341212118862538855810465431316870409108851378167983941054351123397279735593360287201848577560566114981542947821104368367924969449163083302869917578321833025915070261137936624569168561881426093872825504758305674128724477621390715673808282689140113923669903597813063754843863240050034179660073207599570835173637311852380084231274349933933786616237632821657549128304962751621531286074447374379607762269727728827082071141781561143219984848376944319200478902160457065100407016898583669691066420535403497197526878645833456298787770119289573621746284748374410458940329035134159230171767703791020709080083363404414964903257728050553232796437061535743345906239717546720405653767278745857910032947192635195933745263289555143022191984637205807003563297449601052667809734240532865687293998365075112754698815492012606440487599916599140010868461852269777789730901628090468563138080595667084170902979078076325888936378234221962634101063195252374636165244490221878329571025794348307443546421316826169809444554599447902103915314082519977125273634063687796549623090252930717804969588673652929978691150359224804687455352124094042394997938652457698424033453579767777122512212620887270960485970093911694137225999112897198434048317198549781496312316368731919358390551378482152723337568629395300997404727687198111974342845158347278626991476813291718084264939425701842760995940416713739443191675078744990774064835574754959561200489107176625429023542628515545961587575781952939035193081227004530108675378830109326075205904386907946355851660950756905132063335812282318210857112702543954810020612511809315000067481351864461258204185625015106786607442767130401240971101237621930790424364688509916191984715395991738058196659771272788068264932491501992892659338198582192921317696661583609153646215628666174779841428909164131828067016510686134912378822443227303205064682188118687189402652792920329284373312580832580382381663784404998360263636017269349881709213593561843157359120527573271222744057746301890036457747036985510393380273870612264727874241745996723344361680355127951878867973471427211059394473288572044045602524836857456422238237054785539185850220120880128256736194088289734504666601341238229254011337419288443210867797366534650112174621761842102413822547116416519019511919907595656203420953430119947514767256210250436133504153136364502938999764553629810932113472612530379689047352645258067002916250353030812658801383985916818259684281892566104910589891322736343729269875104064255810902516381446323899163791709717513921176272394323099504809499447785802560723244575068689823347319235297579854744376493484618235113934075749889867875186585674777788153602581268007425797470973116647397159017820990696379394261611278820299119476134238837027498206953414390785723999779623189620610083422092685135748066247012112519777515844925869739142097172970170657646164957339881222844031150629847070905386444334720566001101232672422419873335832131102598449609736922658222136314345852607534718219551987273852658702791427706562860129951228404556200144116188751626260669670553923410307857052362030480006183917833206750666057957476910944460299761605420274703024542351139179665544067577909423660277925790991988947194357134759128292390277404710004356826966788188935418591635565035565219525370218004510085899095047952639368138101215801973412780062807125738465226324529917155375026506821245893392906250255441981333603627851513723687384008697124101921335913275913008593728566927688448069723877433938648116040882331726141084598268927304983266551231766888688178221409947507949673787706105924568656728585136358762147615623289068683048477770561842600813818361467394016681154750297270384979652175371589555349544161771745929747049475475755998973658667106496396943465581214890635276091770606006205160764463080084551226437587178210034071231281798518635432695317725061907795870462955126339267643013715723596564619449641804419891731740467541489587932109267067084730862191902660695864976430803627814794784094239610445881494764080090070437872736955312618800526593363452152804005755903076645524165107526550770333370247137785406356396236382977886719946439567874290334086759026950995784879808542978877151294025376280902905267581267966379930698977673056747563297421455604302918050183148334467240507996227897352200451031190204080715857272087161257557140034127472006204942757986296541667434492416687751961177907005755702127046529008649957221624354391133469609142969976439859012747690347785211786992838870158368983897857366270543442504424382584848003497314537956339836363393968636695296657101839046199536582636702549322886904837233042945999324850868656951616651613046830572944968663431499684154613213678889662881452190966307122205571771508540467781996069038036785785635028314761177755533063064631167690103940851312332998876282812358542460627479337035576998671304443521438538346152422951717893905997118769183523177158256669759629511525172051518596368222289763332846903008559191682907789207905678937668798066731339343257210136749097365098865154228596447978173427245879585527949755101634316458578761775338987604958189564104871135389303147309295710594251203134902790927012654396657989440282427239315616294248454646761146593808572503257740373402026739695597780456886967115160491063271507380402095339930652949032558929372458612764415103220048803674808217262147518125926746402247235134799174324393619277626322495807145061307815604228867312309633066815620715890923377607574392904139676899672798498169362475361198599287040880684875582880188009477566181363440871224439391772177658151703179651052620869057557839764643784319772506345251265655171218878285989697978187253151573784152511214503320226927541040003263851409791625433151960813736927546019489850722084959896165932587651482070553675771684808723353053286616656798142270310976960614975531937397987437002139702431599284845260396172389549304125286600096778772928659199696981443448923743394080425953772053679527633304979492102577357787242525044703037823819708119884158408429787209845606865683445165987467697845028625009918126385148913933737785094553590924995896828087785995089486638540195467230787735708630826706317448690483562672876782575554463438962057621778315789328161737394710225344946702062772772542558341000069830253762654976613602651693157461405197938659551063778921621013540771246115360352208453496329004057733723479079991142070482030526917734599603717025500880502958783355248710974208952722402554426427050549630685036554666045159044538178297890222986430657296904867227562387343405094466771667757208641839079499854858708625497497995396061303177571500024802500434992848259826363669964103956156766832255405081617305451130150693553665321147131327196323747046035029783680060771928796243771247907485132701387742351486431031965040115167955430913999336302484350891554491121391045483131015047848783106724907468208457530901170217412042473472024824217416693672988657704068165291955495603043356207601500262794027604714285484168945170028182453389870495212956676456813375196042187611436898627528067508685840131319388682885995239396040257100003709076045735407105730755079601349367982660504275069433291309617668054706492245033029449710179646672288785559503098977407895174082683315357841221423480478201195344298663110097796255476532706962525441392261062878090276756160863064422345368210783244473105656258984557271414898446130738389298085613458354161615160792254696434215263906669095031738957871418523969308242129997347262173122617856433025785628811776485746332579262932306140598206797026569368988804010517953586603539787051948143333311154056590787211977705591441130137256240319843277057428325033075538232144025255419122821338460843870669005198257756899731129861247811720725460104833243149269590509518566735528662824893883401765938396516252226214330987687846115546533481271267035923707346316460423008551720670203983691241772950561847099068509151969207690489810773430275407950545184638011044462818793560373575073517293346565105858403630448731286322262656460860509176124794549831662080484819871296047896854087685040085872489723612482945717203132526168389313279465206215213100720264797837590702149394244353942450420281454676189564601151387383149296772639871177898857934046818638861114783793892491858875268022308510069377389571726885038598291293100032063539637622602104811380223708931271925625663621611889694172546584044568335656752797205342406302599649728491759324557590671594557486299618028717107394744546081269431046426642436231622563748720462701672212175188921242624938474593677758882150575158869837890660301077443901331841563282529630336505007430551025024340832616378568442167532121051584152525183562300956201000795710870209795308027924998112640323773378854480537927902830169542919385617618364858628934846027271259704282796623910879113616680879120464355499633443531288842679577430684205344477822869539271229123797728611476750135363539720737402802773935867638837019110613482694114255286762218935527541792904640184455384039593492736917648691709549618420377906469783669985697121835058026559172416991824367784533544303402255208702549255393040572946038078932859391465955578069641956286399714918648146455061763548267013841069316297377276459564638133348839212665537792691005292025319706890237859734349545106613895325354529608507575932904235670413958061097788667066106470959837434141453297343284250199830396293101339195027459697519755606438088441158161987698858668101512085587457493116123730989883009848743087105763212967471401290122050830080068936935299615584540305051078551681645092074397686573900620238620926262936631831017056148259577686116155413485679405517489343191260068821680234783511429956014010559169683791985860802030921849662726611131434364090854011533979308630403185855583729988012651934429460064330738940022688483275808049727010149989115002400714756520241895522409180168323975344833998619987718255832144959645815265238151760122865760448128884995830110023593302515675430875169810668442626429158707075285697491532356588823371639011697352793593112932171599848752016215173511160944978540040678524373948341543406729626520785269054903145613696938395976319344267204575194702444114161051696758327553725744694997452921490119297001751797007020337829414949461942959694071948441099864326234827027442445537471194817060310951639405975645512151556748816152000579647858000638398302716093192181552546015930703903760585434874089903758395318111278240663787403951289337138831029454117241175852680847220712980008170964639649828025680450815967987503782168479542975614278076938527994769344342650292517957928625872083351833160196839595849439628506159972907728967836316774099716411985720301416797619423813500386511986829967117162317555998063927896196559681123992580841114675134064374354297200013709150468796677828167718769590157789643363435533406605428724280199785741722963046380810298728041200399295508514633332721128154445606320071368040202143115465146413797099033080412449753438349860479791902726295604038586346214473277289564612665334199142697088178411168527749919140321004640596122930751831476317934072324560329216427671915629793238187615383133815206196200273223279989257124126165540319602872604549868058033352977369069415568367918266650592430127267308778337463957031330572717209444588708778357339729875709055085843706108795623574772725275701592600166674501354601610526778361432664066725702585541558199957978953820917569462153441152415819125134000592472914852831533436580003540840580839568138674761123134086701191801088201499436418072509097267264162459892543682293015763992002721056166558569447225726477656603275125646926800243144812138009790101788977566243777251513968184021019049620535551885003297516818542257977715961648180651495123129530701688078399342898300601583792342390614525201137082924474564647693799033968085550261710053694595322587419615283540315810055456240993102586940313765347377891273332864127205853430769706670341549812802369700178537053046845968300800018523227095652310322357466539188678486704748554411317636913874533619469840539997390671061207848782469734620127670985987595206956555289098054924309154056838178609553226108098251136148460990791850445080757040796157830253564386690363036376235550827419598443018732675594365574008988987120241753478410241161826868735459275794203891781435077289696977283435629919323399554225868366514141527647624880809502159456145594098208761951003216189571990725371996612500035652359086062435293109146562179654118207251072318378231056377306186866262781194540396917552200389208730820150623451552779526870660013322782262619571424311422393998616942218803772088036909712624817993229499003704920096061395783149431595535046735642566904862725860767897202898097093797637163407627480278449013599517163509872223505094836752944220578753032906081531227083503314629911121272915170092460334330423673288051496426523502031227300081924550589067983627046160207032190916930754059824500398529222790603023388819171972390024274499994580885822287758496674143961450153793821187966947476251169724592422291493627870135385451374154325842015433193827258725161948971808414437846703125536207378456038679229763024553790175017694919635131132167083595348061931434843466654196310392002550696430728705449396096212776939383623457946655339730902808625525672436671394961241194459552923432415149080915004112248744524431883301995180404389381594859381975336892974284726934404134683439886052511839724728291499498872764093522460653503539284939813824641560634802270617322309541149780090582989208329149009132814554319702767504043233944375848101749630939932459655561308941084038019146105938113694520789143338045466435011755497768517208714917075042788314965886744313686374263059462558679144942640293651688432161850413462445178690844154991523982679500014429953497641551924216434914524949483381986665532905229296174568564729963037380927529657739371239823081639372395489219638670270628703020718628036514704419420062185704118614266732839768517437884425901455063956467892184955447314727375295661358587700773568277124828329513244339848153985365224072042982581424179360286427227304734083144797941956075154795639524576499505163384136346200126734469743484717292316752222996257286318327885042322819789161527453441389558827642900507934919738786422868337594418571094885102114245640338499920301958171680316132420662732280147389972764077320232668821475653649783689370062641302058178040936790649904780109301813518794510412657772315645978083687843148770546759412690624696613859196608981087706011362814168692100648466188477844199786645475400001453103205578363867522512801068711789785654534608745533596426554098938918391643235398522528920132925867559088665558778269028085848796151830414777577788484983861142277342477382573356831417302841788413479011559708240475896473494348538264385976276447014737899231698242710813261715396805961375641598158134470338848155278898601254641059504831258281165125723721192979549152979187397205282418421158279819750507406952645503159189597676940100028132729015786248280826288632660251844768354290705262346362566104515106836089991347108682665627502339813616690479898774571353572751024565385689088129859970540432167520361673920812804327107614958350908689979844184349347257816840978505973060969235583684439353484830652036758405873921323268620239818272288011967756939546545405719110169834948112307275066500833994182848024456123767092160264979084910738885832347468412753060183500911045992003451691659775810769969567895966466565955820779231514428949682780201935838566789527313983020963627074345184055102267619770318460628761581619314869630417069820187962185758926859457825152684365194894934632213914618254672205930408214392192600299856699416222366304336738042445259270684366879022316795679888036209181108981415456135370109866052344078538958447369258559242403810715997317959788824486538229861130688731998596003739915193117169007988596859148447403778240400687086930953638061405401246596361841836105287793533804424911170845468718994180297824389691059172911704987124661381881630698011935763336071748558014043331965274148562738148117842894008275395391381018704125809822563700106352136799489047855770534881592638658537689733701213100812180401501497008783066917561774773650485338376715112853042666155285937794381678050064793837696336979690518568721662694778348006263400459516652115625536652755383140947920283592164554027541722572895988167280098954447915657723810491227139437207130571872451878660256605387296543313747132478775458740235981137491668427397119489643285349740062910495268516594635282850542491678589085717839449346715948286239582477976279254313728695416991831809047668880369906456369737542411366032383898939737147761481068137042198346605765032616183149872274143285016056566546593425057222278029753594012448692373871384654792777156197517217814225658533768144620752231642153927418660752679781467054950621351444301133295839541624731767754706391668736777990593189607319991068669984542337972480381206322988543153560077899003371579550918138710729431109615197749613380254375011703882388376112692140016221601505660402128491875553233193501070956531422124816136369276873138041641942793437924293836135353935520858892813467443418667151404303747268573205667460528541450110767725804789648831223141244424433883704645353006714223335043379024645301736288170914367791752186179822137062860946080476916279835916980224556170829026345562082933902718788668068518054202662339906176096777521119196973072474587338477442076901695033370859215316960833363283173423853715320489224778223093723576778356849024039676289697834655618836008977097223082203139530776844440831220706557246496168479440369550811360109982118037145502293890796753710580400713747876476768389498128458049764199110605688389170665728311934570474680962443548918720628460820225181921245828987482097601340798826160324287355317263381224024081058486052755825861600544554730290740394140073714393607174235879166617490291740814424524691885763005671364893483951791000798420705241979128301640228822147478442595476294318951329489712510345718501536719749304653590443318527467230367998857853273364000190061415440049702285923848184953885444975566154828496882819443200521561047842148097726702876570362540996513577899346815482718822080722326355978021129315834247429133550481939786530494458904002701813378016243199511304711540130771374465638823655652412171615531691226615519112162773703156396565311923713568024291247553003501547855160725151148721898535095230460162712516471606363138926774047729386853613885137923017371109897630765030716915922696095689849294994139078195933252096102996015716597858779768557643238701440150555650958661752736036485133524704545652527769039449296880539637697524680863786339909300069471691227322944350214250874668446574952257101158871835601122796975333422306202678556017345848440860995634661086272502642479770995527959593906745866372772128941995977523579338616305895187547110663488772374872089018456412258492798382477545886100121143376585052424801115068870498296103028328223102602111450954609166555560204114597080528803741037789972628982776909700194363811309679921213946107469602240859631920719276489571051345986627021468311079735044380231046140963394296638018842143325433490878113841631818597257696331608726246411239982190261255924839608283488115551861116336144809487999429047822464783158583343760535217714046617222602808144651136367456225584277241902917891000503672820070073122080529807680855233232454123838965299657288877689354655034892015967887230889529309366985328717080450016928041537365059097286587358618186898505353115274546621342806415681483743027585904931555920806617557409879487918714716553071198836163767930716817498394672902974978837368442724830689536094199030524426807388368745370215077231015581309481274904321713777803332180055704081705275389569846315736778520624987433914080365032226258043055870923750277963960705385250246785046768950461012884046605396509911401742313852048151387491624429305844936664223022269670693516400771530476876979024445026871212207824106812330654591545428086190473243181872594805441235271434778128121992508349025153476650290347501007939661830375255951135760155280642899865359039642167283992098123727320226815123190802179607383259969253987896986895388921412879381917627475011743134635933294566948929365887621066491863547707836668642910604162591857698132558032594220795991968548786584018556637640139819805645226210742964643198660549586584296592000852967234920975322610155385162045752662220131236390672754545184533096950963628957992883013945391316705476560960146917146952352018466458010938178280139464055128279268537765592612357898966776015203394278783916302005079917288097949288457326544451513549562383329502012907008795688170684560970337634137441205919065378544762519975495346722038365293583074316599753289824742846605855150027887331330827604889307323834499561994489741822107087702263524072093754049363791685989053972940327491797641809097245845755559281609253128468113190371191382043574074799945414649481987932151773626403540606176183627105821080885016517085284933614401087654029604669475284568986565527372452484677442197221247561945508865298104417129362764867334122293981345032442177708022873178237601492650312575617408859503309779200069219691006443173771034532546909961190746430588022684504741305841843733663788379882968465719823596606512715777321991513083540872440956477104936039330872962850543377352293443788459102860293967914236056514734913072238830478678703921701582538374415998514839399908234748989297667425474630627092724398846906300620413385001333779807269718412765783823745818109606875072773085422576483482895917628310026505258823507663965036454752813391091044207820236404957006715721783236995079414337944253638605077214514113546245875352515155392198170874260027067643274288647509316618634564583180568708334386482294007179637096723816434997209209635397830810408034628005847834317465676478916691883582737179484445435111240322721275782198479705735189152219321565424099370984095995910593789508126237562711103356597517483949899796361471066426540405711299109083766665112125377146538544502049033567838278216722884129045360564367112784586831706526837417525521924261385284893785516723970782170338490271538245021821910520909816202214502132173916725131733936634993814241029862144352315562188036581168320693784085340911171445657647392126222372625258567239016914892088795751385119967251389388280026146588482360334574341291302164314856492685520661728303997421273265558004571469370455186757668594256249552949110577646810841545621866929802107334493733224359435641405542267837226722245130786037843988315739786929914228123225438961481857676621672894202101260450324330874005831725609655276377516743418534460835279167375319385593856168459890467306616721397095502708422997350830201385285496030279338931299275026552118552424206538702457542380668263697128632802670154482063198081223884233765238809728889655035380552233742292850613990432106053312513881846144512549541122262893922967878781897041279985035591990347102024560373357907049490327786162779224971847016945415834388552333491290822313770893704597277320760546009058471431890051988556683265097249190643190221238504947492744747180916719795849746577892648249224871243569294828433129845094599397140840681706635433871774005147099816728948627298275943022879099650122878096772809446497881957726066401732859540305878209473979365116833569356259149196768704412479979560969932937913808636504820382836461119601855515488237432758394220036185226377339310100115528832596535073915806210805798335443856835692644967852932212466936253253895977524607371737418167014879243617776708848386394206030625457990718954318399781386158595745185134053769701824606887725820901867563317690627058531013290793391757254384879000926018012278276437285949760115288091744206846366790897772713499574749200575290376176893314503163002182904119274894926464460360537340408827643553670779637827841105846918016191698394967257514993794393469401655797238780654249727895150161728829277477660922008415960059597371769681649645678762328484505799448821157621925787132451689902913042595061113640712053875729571705560113692441129347684058675082724286066206764825521638730861185585238988717899023444495667560086129871785848954237942045168694526677302305891226544959172762904727634422947139558904514251569108809579696237519407770525501526821443854845575767693489791020993427826578987817424772965213786557405590652769007971299023657113752991870506454363005033546809409469187231052095689189592766846878915176048479746017724511647381430431165772879842782952318875673704021906980869596733510533142717147641050210889221329863503202255188152919684952685263932159210338304296678679936751705231665127130475159501181763011315401443752699203330316688198071363843546008000566338935592909641446713002155698963956577716189020521825837927727536639161420657939797193526520643038480682200987311676558147378582776590124988635113187461871135564295001036905355360388301224430469141436775835567466311790057137290081042642588987509560526017673265885575903025559263972861199897250440460365363830166540232022899339799583146482561296651320131702842735913856518689525378515863620263375588043942995659145822742415313158878495956218319566447940961679852861594851573834399973585034334810251220981680487870129968627167588263295524985296433047386721573931740789150799986216301275506915456689847569331858356306115482472108148899455287639457926586625477349342185354883434567463999344923135593796483683282541224464891273863622691251258927321384060148020164945773524212830748064653051858861443153486863698602465231479596161698800854539199665422662483560021697099743725258963062827054776708614387897214076671667455718991194099827603719693672039507877163996434215171268651798504855847288857381055525566224070786127791086541820320832948253468713542846501948204831017819975334072724208019988070467292679550571870873889838526568000341696431069847124451582480791339907717699986182749043387352219011321151053415828042250273028227888155775128616816875287703560941472929641616772109192456091729551823736260449902671428222525654550813515029101600313600309577903357260110590580282769323906432467980763193493832365262429158681260806837392679498166194647731922731507568443260693313901209203024404064992615141460305233467089081568996366558327859780849549864408948008793517741361074839517560647402290224811717220419072144775877103059417860752922907464237322623901427813765275094414574703120134642353953354355053380516551241668980647232766102819878818397791799199915317593315185793599694202947672171121538049969168990245308476432564372010474499844670386360183423785346338083946772667832078657499238195147816564284563191415631341020557070069192092462694611765994305582779141785771224165002554150915656635056755784889093929963063351182737701671924135431246693608424698747968427723469660064501014660604740199675264574534663338938657639114061632583950632204667465930352992364075022314949013272664077069236478783500604616241570860884274165189691111034702641286251905612736889682460284658308889062136780674982572791508955842027959821878619404244440092244499777248699130633023761141641840198286703421086399752005861583766477381791078335917831937964801074337451614946120766120517076924706972715430309409996749413802542466040517044258747942296363465070745341895908444292798880924724455772621100124473216241382707434776658067160954361923546838576040726576138735905678338324600173023281082843137520044303301356201978430548712168412635272679081656812139483817993169310159784833252967058449343333747922058915345052785672838009804359227936450678542491125340314986148224903994098125497767050090615363383553523343929885451797805757309383404077143888841280853279659628060576968112575889930612468287854724075129819824375804154707654825699594718195420146218107739324169506935023948735750623706976245386295787395123042891259871433798140163539376048152661521157868703408099461659253954783082575113819606808070093676852426293118162776164523752231511694529532976258069640339634775451758851876443672894387731807091825101896936399431530206943107477598578966640091664702105174387984954733074406063125482837289204969059095814738684076552560766796113840067878240409533417397840535393037423835516800260497804098667646316209376451097335596863193887201769586656155448167921353014698979081075926005593715630148273266021736237809498739766347401493343294364740556157799259173116320093106427788776772685911777857511378045219962825423517681158290471446909324041704397538859021420382691173357437128043089791018771018038286176703441928914618022889821963530453281764189132256039055162881036570082621530416257988068394349068355269419204988949231025237248085489192726624193835563970418514423792274570185162476142067620957766832857821477672011736563640051634673647889316734530757078475096465059575760022854600083559164123764294565114901061794881332796813440569816019261197263271400430848292725844339486335596330554906086914307752324512598464321431638886604019692924326733041368428094145568024082018038625319827786753824888117465138090495106207466590952793753518718544831211627279848583430654623032371379150062896354720343749331901659142220152979848611387008446798564474447376148428690403527631123291484887628795310952889166887256145777114038911002172464898022818813175512553691130739842911609842507714566224847780519712896629927413676169083130529919024457339702096682137825812378637537747389425033342070385596206930789438632838474044152702688018607536086901935859746685978191295637220907504935384429387971581826384981752920066944904344284953941604738645251030924123822890213833075228597359760358285935946028663753045432942853803678077321564007986351820359601349812247460069723657502293485322174619126237315944888568605891518806885890449116681083638763394526272317570229913339225876374938148090879573796168022805154834092025302163725532466387834615049103342692024660381817270666090902838537495056888416851700192808987694329785087342670546607173580180687098645305843936847440569702612017304670676714291146012877752238942052281421436904106302534492254804662012902496407156504945331941847038761991922228967738261148919641985276778170574848948145185514113257389180627058481050415124390051870293488413225642651364680567795486883722011352199251084915042714875615700951835247884434717142688958661504753512909308332700925538790048703920503217335044350206306419060437806338224915444886077205494729068668824399767870372341586554536335228811113052223826794836285965778668691096324277378358735235987738512273879880496587955509233085157356452579873004383459713062684919532682400608335710788020193329656800356843233590836850838044464549773347469371600836175777439198549622798002467230632376121390032735640418428613684913971218124209717377110636680818406190949268104187017642094662635875505157430250902823065638966065071545237678643627251571460516708082806916195721223288756980462499743918210355673019371499971690786297885197684478862558858927062424425307699720679752876679613581534224404843602104651905201268829477208265367986798500044629417285872703922784297769783946324514805351704112220172479247237312064761007701633072038626851127617320435483117491461746673288813428343126277809166617966232471210147295234522219571900620131719768679708671936494371619603717177336068857476799931819392996391563108330589890784928772413613918472286579420559265244707352457701953583637029681719693272982962855482339000917891711059867224887153095720298620631590600317305683190869910309117470592721842388991343465371881487788644753238710989244203983288604860676378708630917930202407647213854387618724305759155171009135592837675370792479632488574359825439614319554649722955212895186799632002159140231250860749075578090675045414723119217494141851851794493975431167631618234060117927568546478026433112456527688234474032542754247103075818471834727973791076205477823128319343832804562428570861699688579878077719775903133717431102363240404048694373541318248552389036829629325301503414997467763034744116290072774586552383269522777339873007065218453352430180042315024558590311123674923409849816777668015828958735587336603617429318818272934720919138264568581133670863717599413967338924248668768041878007553381809345088125986456609672675034507483553256989015329624499509676719020348832540063154622931727078059534150333538409192613593090383031396151060512657877851121790375840748835584408685007664582709836521620066600477657204496579932080906532845523023583196735720930004494578158820614595591911734927498387789798028076818732572347460932300904496941469966538530732573758243387251098860212356367170475182446267741065969144222740775960072339076441316223574991048121371226615620095175308662940158172366403757710796248070282218498972654813783124694709648889646165990294699050786456886273664697024654501028186921301534696246992055437385537420222979244901728121450675620376239977845759472577854152850935269444171286943407480426798350593123444490876918808561419862774509612241267193097825436803821115743980157592238702145729795922333114358408425351102470727373003664732913492550618059361451388511825538628674283287276240178510356218403743787133359823348185433963380031261075618747034651034916208827527045077483705882676394468128403569078065948988109632483288080829362967126236808884294394806327122288318829196387502563620981330644553628790842571801800323164236261859975359108199834465151393518012026809163527819592273695194153266922786641114079838738649049435558000968064022195145518996939257190217967945703471623888749149311548376494906565878642170344264113531271775399572512294441895126195653414038340019309344059290130570621296793647054333265102064315486020504199796779266019888471024743692484546913071909897079948658462427166025956548850971651649178687815679544620592774865018874571756006976289561339905150170985994392831793075468566806632377432039231863459379856837654285598979912133970024437165624447689905996157450830909746580334034793227214635203904869275547144828966450376905054983733043722817713530514748839995189001008924422090724046306183552852479255702157924396595126984640998431344360413019392403827563341910431455065002594736996744003555767141947845941037605045588607572594368379539808675392366716685998746914688077846496383192038919531063588113024837170919462168752124038232384484565989639446659637482567558473523857959414118349861320137515641480642162073221038978857263520680175559614222142539260120636765183775572451716189091046794007502141950077778838073139480283511664324177221460277839630058517203164364063715511196980376620092606279250944159707157816895271965028413853585656623043988775798124500126933610209881058666745794616121990512379122597960097786704094204519433796450542424281101052772800049794386003381811511093780354161403943113122044039130131911345365816357099800793404768481436467396491690984223140962780689698456740043970207501901156274078266348947542427554524088772967867375985446040517631303042002705366720307538359579618783168422327023806874050258198331369583551262779423141693555351865284308572924737681896912316472743475245931228569004626922047928523572581638314131563183914726767652919725609258543320381742772531771198611543357860076884063780356654965015597133987311384606710729003509313822323569376302315339813812192574071109031828524183396117694227626977790648903605972996683239976629847355308468432353207158634225836020791471067968373906071084122023519069311472961776249567534505250436215632498422858720472374456122615781368324636790477429112964904397027302416422049236113726657520922727595795020892992241270271097082126828886993902950321814122505372899675835319596079732173576106860455093856762668056661130043373529391158904658256164891402267103283706233923149373771620744418823884692014292491637647889403316460770076424512762915946240370097451623764569710368773478415162310258703823346527203851448785276173443120737791365988782710659166161720430789523826218297303363463243288494472221031233897064256095239513737813886959241766018279910712682002976443067298970756866578826049179449537140439489634511876885122732320364547798230989920398266548809968634511054977986392090904561778076347953147820578047696974212210436333584123000641063975112031276935172524927493654800726140897462174655751630073393333011471043871367229709277301423106943072106356227963299484609081143371441456854540878081981046038040109740612783089613209391525482148489434215583623422661249258266879004212902136003572605043458957769469742135931897696323359032999900368641957922387642818249846355352107943356453465339831560131119828199533191939072137588648361907887222820528622627697080493560164232181584888789356429961900499023237240468020690920361156367979544132948326925958162073659255620595734746444701371034157936237031745680474823337181318029946101218313636144246295370434918499188770758715950700501210022749904759267999999370622779523489914270800515081888599996774163849753214568309520182112076049691804327304810630618161371531774524070622341448515837024789408114499297447927788143177208371557934190007172348393825263679305119345500615037185115470520692027702466296719373596531886680866938658310116178778455229005804931584618940020237817122598560244803481993303906617361450910233171132426179286673518763065317781110547873962588666672231130927516380051879523807492844473938728391266877071402042973928424985558553113721694855129802464453814471025722689744022175723683630289916085725703483411326070989707447084210775046767699393609815696871183029352885215938757806570090382500000970299196383236753375092633777526644396918759316616121568617961892084002814607235210519940751612266477004294555776604021637851062625632919085649404698821276709148822270486134822212875690211056315242363577357764212763298242786215885038251389160455008817599534732927278329896187999836437849314363338891284135400759128480331156304423272894643051335952345166191929348725343445278698073244099578853545593395736535197351917086509431196731924316575484954338329941956568998533325707362950892495484800603454563828377363280526605071119292891038424777552604194118829792932144482975271107457694149182020479059573518387765892082802518556924450943087436359435716302021110212706549707832347751287993776946055344042994416223826034262823952776943296849559346658912186308521372081411143919702191511518376629445522494409064255000775582288234515101929105446209422983290427232193514090125456508287364822035223333287220478278187841681335729616213396209613912740890381758004788749978850124649928715920738361170325326957052694092494413183121603232944522826928723654753441839395402830428303791783185177220888812066725639738567343821373736346850184642427871376057351338675317574733542152599290722905726404301315335386153641721844446371619642720673207613056378054431903723283967710237356947617831591741984230090158222520917840367393521323743058152423492278895115847134294954401726451025524425919951248567184011670143679201490837316740608999484788255321593383252703369097012582289522560479809316978165614107356653677945317999386036542798463138731554412130810008511869535186925357570242448293359550389863430870207735740093482110280016448752780657119699695911408932561198175071292769942651977948215755104208703370724907562431903570078382082665049486002283452855358305787675031815743981703529347646958850315868133722313257666851703224737167325181691165197901585492868074236389195197598869021990896980158471213775850429641382762576015261948838967472906184344915904402552575227697767564547102995163980607139051511324645308470842601140587266468081192297919605077580312145638607350314259980179523666516015173164960071217367790717392988533639448012783818198496566082515764179666478937274855824040524946449935141996133211862165125037376599091116706813166723367608866634397681688920309226187865044604447558259035716289459465161610527739322554474229819808757572936682816848795248629698674691718545691709167804768548012560738528393407483513510228094909749845887508314900028548881150075205535648858386100179818683184271635722964859278247297992179506569529375824933624068578096207855956757814684553116586613237837355159462314442367060290999581792208950676654385184368136875556145471833384997832650361257642675983252399173707671942408823129210650782959077651211921530968147839663345427582893368741144628437182399154718091436957442363917049437560121904104425166439643896407818057108171410612324548805815859452488346727668802081397807849344540662871133957226978005886791072676745040237986156877510021790728934174458452607223059560583598638783271512541787827086707675096657531942903124454372757945913951418460849291468746837967411032741288311093586258518239810301984615516288097124568282863967361090214200729354982499126821141423285449340503858231747687958614335175975561995326924500566878089246073236311638780245728532836352851576377482608232793053636643976276952630884960181273957686627601681615598743116352187258458084494267414620584258057865287459545716148768037998212319093226785771052262285853100433153455600932960856837332856720323229277216225387034217024101070955179010997345544112682732875789172711791969108751584622855348828806832463086084598273469974413790191836357864784431224238100829393457241227199021474734598661639853717198106040655336957013437112622522739839578870901176101959777270533415119540292800362584773646912070982924314466637083368325700261544701682854064159556198697288156462361412515079434530838121886201874827205011695059444724385826152463295389849845499730286486287565515632861944251549319778795879763302534176901473919112786625781028747395129820372270978931898136559174708517395667983250836607061649689821732124380237817077738115202682204072517813605118514390966033211046049755567485464770528655004510430201817218273936155858023403400804876847960544823701835296469423037009598427733218279563117554158433191006593570729744238066226388111133200220009467533615985712821725966606891051875546916055415971329071278155709407734388273382389391219712488577112015593793479609204201739637834970732766920453172224418518972414503676797593029665839956113996910319377042782919765886884306227330340057848913391153135075384827075423964065351799470368839404119351490583754423711402300834169893946332966247530670662243170573946971805777933951339090343820550094512073917135830336838773000683934300659024510364079687241350384341568920587850085939911752667330642900623350867231238061757745286436246331430971563562921698382079187700116438973385769679715269180477140455635919137864215892555075819519869184776654035513709081401765613234357420608880561134136833930149219910118573273129055851304316698783500492396069082338990513585356994391859406375117588204541896454566751325024359206446544619777050017999309610715940791888404043819757637902431377664447678824918694687553338891043739541982614159988655214892623575331214624843138484050917501406963026667621150766774186482338122218916046589276933005744964528479720003405751764066512902017520029899874716533117562440839126393396432674054957065751907021221616378910136666937180999388634157759855641993118205325388820166530457338840385031878301278613672257495159597835571052729773855276915413453902905716314643165341493518419250286108779860660565610419167631752947469838267725377887593012123997863472546798323285631647683066235493168289877001754154913899341275555028136651544360563506676041197405592089678837929247342677930933838748517842193869567259530966936505469334281750474292476865840387371388271246737480501091969954293653797786383333810871033254497124300766503167349712571998316054995866224763020129455310066018084690683977864277684338114178064417312820809353695787059105554992454751889085982205092003720996518832931124648789017405109126531337805971805334955578006109701943482005979441195475776713618231827735138514136469980017639092785772086720873152659401827968690950544088556765966245609964507553479774323767518710294600260747483862141921866067985374813301533721380406722368871233801624668609717740284603684188371887761961754517591001911390487162256853274143277223503486097444158926969845238892611229272929956647891243971139620859407515655089920235702938125357572374811064734915288347022519075296896220009627321875205462783308215059269563530320107175753927112147429216437134435864156235597558883103984154313920451133039852740025832944717945288379255068942735391682702524446182474978153498930824281282472019419829366494765883046017986895556336163585737921809129176498372190263314916239218641814663325070123891270970800828988692409396202109342969778119690967727893049648428183233030315305526953286819895020598107990683754079283136420283812855032104563542831629738566785633429622868805910082287864147612666443371816164712072912900764867490974066660353934863464765307666346198195851185628004543297880331948078404627662759794135796828311467123637409196344509911437313166611125218158204503111606957049905159597669530030150954964963050236662180138735295788170994327071349986097760303066646359240629842503760444472747842486952518522837791326846202838683995009807530826058940334932786852968736909711744133722677069013012693746784268471463443815587415858651720075774304754414857976380291194768288284033590433748138111998217720096249207606736868752387601306880920028382856505336689454786155756402460926106012700061309777039387542655843329851425460459737297011719161998713372896255791799358918225132588497891911467692007992245002659131953720749117125625428903867643254792088409992274381667604175449975488308644632775929378325998809803951598931247850230897800139974576549151264265509414243865764302863921213347802886721522168262157103310990152504741009888758735344384900909196820610776582587144983648056296645583932264709196661872467551987988384858788762993885171235605551636724616513601247868203282477899593977415217161777658546019793292502666084485831328094594405430580262481729148876395093990924325363045488299082662314757579939228479666294361032957547353766495049855152893142871630296736634514631502770209026655954870229879855638541436416072121219925535382073777289164701780439385984101693890131796200996003609689741507272543076252261985033197589632340046479537786437826928837244476848909827762423886759788258109409594679460550663852885746676476171683227518640623898969583524791464395980790442028495566884006162565980264012101031499645662315037212330092894005308245925669313637841246120137606543981156754514563705198257837379443260875102812411273936065636982428681373280565795393042539532480930386859234733914162723644269897404250549089562980859635515477327768996655055739162163707451671913797129874724497191165683570037566358070166974321944448052078363683414956545477983508967927303748490844256465481287058536836546430575632750383410478344124946866695953711442612458429209009182869806091224635909290937780634788428943445092499976201661961564339460194795238642900507756570314577714704894797383396800183643274526134958311722702989920350866462361550237972203727242798489922334912220271391700671965821178490335209777821101406518332165955175529405202626618554277486530472296590120799961287972874432400154366935279373754058249658319528185231847659006436100839405965637839398502238522809490755612748919986485674305192201194322549994321423887012562210523054277589590103776950727377535843727942000259606927359577027640223721423217366453300078724552921915187154104401920355749293255790405205483801298413610432623411309610780472789963696296578703556677903780750523006477461469715622466926415821291531154228151929069536842453087652574376309268677069522403419647619574940072134653338335781549564852436287592989970325879652590917506595868636709211764124778369253513387528683455885943440572123374054532204867874440733128993378566932668882562807548970156363174683812914830192167473248860766046257848494366630474335279942524914535825744056716968532400719837571398015548517453885936400523911651945800846543180193306641911089195469756632133656786302801920491053043617569429150748110343377014877435357472416977979198017497471145580299575890631591147788548647134128025763454391654030829017599960705564938428864516190824294227368769156604142680318709832504796947443516348809595664001983460534903334870407833812121645508384284748964832100452824776293351276479799806136689185783469574398314137613498011166697678458949647469147121812742587284600017211666333608919178738373846379830859437610825786786529477613378748935351427371802984977915527629763565138422361507619483414274571528055687028605006101573459994101303815470127267739258339700656661959158523900873312317963606632412828751805670823205603101164270687869568919332207179533837804605351140463423972633676067088703345503838308952547298083438757961851353165602738733214465952740598574848014046925601995923936457465318834593931489626291596037622952298359861065370233542493318346550460159813452341556469826097794514451987950953446900892349513303636099719664139252041294978500129070001792684646698640710812313808364878760922671039463443677629911670374544492755481795649839685476730424310903127021464860759859714502414493491625834329714730972193259115343891507786173326804355079661346170315487586637063243916582021737362194110791364578256661816466351233340608589459007322939647675612869303023174608673867903410312856248256973350662558512413783376786877403666484644324892490083527955479782016776600631492007495533704566896155906294702823291769358413713088403852993917969342926364964674783554396834013616874862374288660235927621092828622949514146086592563948901297197897537847582221036337546433350223873231667695123748713532601799042010176025051742375462983162903732011805487343572680668419547137699990718288724622334336117580142864758379458116505182101657703737421037327854811979403299366111437877687489586743973921165962139451157642959653108742585031968838538227982465873785933621306390386244645743220860447224651638249430026620455757955481669190954393925100381409179181894774877381044629109635437140517948573921312622714882598540108736531290129696528144466505262801096854365342332198050159320629051145898465161233777985467978000572801516600739514923794693255039468614345629182889042399954020839759574880450715870434276930548523173307727301486549363762756266431578828256943032637662483322589924107198200751463531428436707640075015090471978552789579072573660979866825169532314058647074923316992984054627106828766651144124000979878025043739447451742251279040232448794681881553594898777890894672969050111875407545127748718186036065813648494197587968536686088133316116898403253074510521231668248653606302895537730249912859505789201263767977252061897995654428010661215079481298747155141710993066494661486627640274171930065857421131184128970064710452772557138038674448471010404320666669103197349326341821139440751517766923674754427746318303544721831617379632759939171754420324744670535640358421804255424842349233580950898470009191211746156104199313181409456238483709817821977882606193249763055293656316052071847301175369356956570488280922440794487803794413518544253782089705897656645259880782349714170504159588485178251831875736569191082464622921658695956963708261217495827156919527832523647173525465227576054965443990609561437318300727009785279420641317383198594475441345392535271154134308683594538019544582455964563483590549344879328933089300574195721409566785289406798755908099601980670713184904948146830074666381988514577951202382992295874091380662491755982872815960752390065799056416638524726397569513499697681780676007938584610851878820009914598905885869510788752485016330606371775562247977700676004576466200908471435856403305502286653745373592740163753296679291120666266979238709274878175793492612368741098480113358214586108517349963351162123261982049952681163422548146413315282041935220557863432462056774195410651384940812835591793078838824209442040278941477914064005421813778633282571535273528114871586599918656422557225002161254816940656952864493378543393999577416915141625598694536020966757243368138557050433729074567023546446066383386400457737656110073438073041449901106794702357175253809740671582340311343214020615075262257554305505582070777569205160090606161063749001893575978382762306505719010924531259331267552877740897798525134601105025799439720498172594417575274102458775890469961923739812372746348092092096026192725494700527297060453346906704154403973753203503771732305336835747605977184708975165833735581452365020001644143002574459398660291071342417969629883731666189685327866257359814970088310035100497535995867815026848874225613900486824980742141005311119598736864320071488774935177310494511436884711190914717730796272535120349452292456989823750738631618779989159739258150128805472830257558121231048415408807638478675906781607865973363933038527778322190405947014217339496148137166724467700139127138686875226866785687887565577476184463852039624770628090236637139967796147377775514183306167027631764055584894328174039003032690553131695835113176918029604508383726394258184244316792305546158911022551680510706226346752611803358439901275120832471470741749373899421821178421714402312945195155374752672159527614213085306149828743925046633857411877111068094239741008514732774669778376382437149320746143354407631552096388849667085176816623693597676844917344950386908364621171130154280279612825309514881299164957820781974910898950556452444179551052590559676133452371935997168500350553020964719321196585081685978945374717639565504609485564761933208355456730412516177539451181865318609847612118784483753504611876124981477347822957763349101283059488387830476495127901418833747376549069207546430600494521960079590924064377069576813561329870127914232481144963647025871555148015720671543567164220756498275352505848624939425882521103610702466375286196251067147885059109039825926061947718621453064417112972287397908501354637730922019286096981308989298697318234946669205090879726682801426553064755746304812313208884893332171059038029055891126324423547624343131164503710065733609319575968390778267709043685513597057142045339601505094956894727207031351877848425171916812503253632949617763519161892957957859697190196640612275870391820370926920841726387986712880938909586803911653878042178250638452218609738404645612787028756482827692254749380916694290199046546444263942720557236710685010232883842169087137427574646894622446160447585168304184079499178036794115779084645799591984908134307364970783116326120765870979534667267141362106004125226190023416722578137745800606756509651282768388547146413045201982281325932781462029582117086457783949133546207982511816828694115780850655523816271438767254897422977039404048559234051132995145872123702335352012621786553372718009190994427344047855844486460874270349204648824454213042198297615782828781424326227220080020058116328077020345182752327494074464787284765462774367529251894095483155198963581004730043713444732061157372741094098337027070833394012253813880361376404041139896795338904347402684156294066857315301651303674084195942953991298553728182773133434367365412022125080911231652693343589412488326315047051847618579988996375904173627061598717981685288999958091674093217695455424769757506687618954052018646605672163742544753182505047023768020928081400622407602255506305922141423905418292660293271534351950015397179518504178072081041408395813383911365443919650532544015242384357128098057685457401638394654571274957081942412036515735793590831327167263422830731690205961018907029703908204837192214085598698598677167819312385695102203580160276529276049021077933800293161292009623012270555860103409568944469034912182159076387213704735141048145350297329308949829589856250804194175138670032901191034284632320687454608393367602224098122292526662548967923834491733753473092485190381322270159739143779011934297254687886287843728915095647883470552317394973969959155274034196242638766908196211966087880763952979035604840895538637767551361630358695378160800740712520846527431821494067930847428526640376402411232499005099614719785751144016200977069328988145499692100666820319963292475137465266985492948208247430098420850683926756704494239488326515168077403682911159049487891757147433687820453804882481057566589130343044152054031527792434420340536554161855535761169968987987109138850178052118440045536869079854070422463410781355513227413731924880259900791945545404991842077237260697964777243300010313073023695330440243979699531243271919060905285757457304549179191164433241183686682414447291889817780028666314426638599125028796350628012855549758395143190619833228804530027389766839254567724305957775311278588952492068100243218708864299241148691023634381328425501093344874728880455118125034036587780723562021491928094745170025701064383271532170995874043497726967261582436568058611917810200880129605147396701256186362100438770955567108259723418876712955779434239646730599017916149007956789088921641303267973317765577077424063080725752174233966919462225401357978728599790767386977011970836491741635454056576095599002257356021037869541386081013334527988363121556842173515127659583737684199914409802593656827080652866029055322959293009473950193326697400046996787468026261420733571467851129433382856829716806933834645705240614535802213686987272979654168903363721212372973799852618499387931646637076311111020038752877815706956675609528352821682782885445797071952197803862199369011835107682135916663220950027421145197772357245985240216474455103208223591210777516286119553877700437998435927466901455425316572990985212749806615091243375514848714477405925177119185620530559052503769724410391859469038355717823869072451530012695084493819482539951417244014677374237652025591274593269696736045531189216341693299314924633516420491912604830320655570915076427852216541032651585454598675294719954036718687873160412903382659707471079514859920613698142362660643199558267619327138603299107236278549632300138645377087790436469104426020350156965248090211026354502242682495238648275993250628494210448875470108197905689511959326418626511708809261255625811036183537818095899068319539855775806714535458136198174405246228812219609097696908921986219067266315622908751294937064778632372089003739262880768168696031956813726803001770884895617873840821461027046849306689299778806300163255059040911961200642127984683444720767566877835569914481334630896102729282391056549379196229406893324575416850366158677093373923286685422647698561276611701062065742484204330494311615118304587569022530445552246427095627726022404197662727867000457495786377686245756159583438666665504561039675853239138973345830812872424014357475602308772304096532543506713476824563626163214765831650871739865244095321758673057280322428661584861742072956783310060460814306037615932466886237025057696373704161082825026520004269509045012920030291661463515689413938003303353504620769307263314686687703906114799183093353841346748663753122720252523357385986195994926366605198648525974532941575344108076676511491686701060185280088617860821084038780226204331259542865747074532849766046630229951981572125877681741219082109632424316461474777568786576934796421723463922559111129189439727922589410492295070290842509109273421965505265659129386200227871572553535146751056746405699927482095285343114392723576030519712655532072314698589493064559611579127844732469419294303508988511143143562174940425561216285386787209213655829461790196995234893687495939710697586441238654690534085243095991604497209673985384842255570773126351103558745695205952962337422490332474558967657435839645168232355789458915013599776059655617594249165379743036752327492092262789417193299219406943872817283548299875142736185732571266498507366669870378195371575753254448767232769574341097908589285796687810171187152350644740495587558892950871834907760365453425050022889548012674450884361385291853453811769208131905569637858211997878420229522701878977492561364670305645684682235145476042818931311512244870279572436160997438804726700880066618614526772107550062293072608703023886078169580474947271156103898028840300011033321113597337285648779482735596984980114218192072710936905802159935431579195212902009654155700942092328311964954868184992166566691655514883819657168788173132732095901782192064194816611147686975710040629656535194623474440882486377812514967129671364222962694212805850258763599810213914212391841247401133261631914035487622584939085949341980815831166852973270789820801744743309373746997368760805945008178166045581279221743598376050405258919321433891858718904758699931766616649852503505379923184473851735592964318243586792906156557638929283019326926418718833231286157319593938171804453577406380129487263902024873348718157960143275586009299874261200756149099830993467878262406330307015585509502152190144863861371520400378380064542689230209139991589218558507865483240623715990909755104872878591040746848162356549257545016902195407879896425418872181454106439474707606109944970505602647876119735205327077090977025599015886562428766831859878011856498132363080899660270669911545801038277124463007731243945521582491617890984102110027823001884119021116810791131740302658631219423932426667371021730428059363605723341468233816181459749890004755680878974055008028900279395098633823331020710902511235905712865639857973484405424294275827049573222481009096783903785569734320246217280087454026808717294966750121123902545660119147367344929525598015033108009828221784321844435292398902284742365281238526774664268181393019842159966852601741438343576521062442878553060132826695763168436919284096392720139268104009464862433651368457182625170466508260471010127401549218748968609487827609211622462835058446557489114779250698442235713393132087152455670624776657551498192232856015021807857299065026661624418715369799079246197927121746249704678464094445238453320225821429682956466639525095679340854176744695256615003825809282567219691440851262662341187628162963946919984759088432882419872179254627362279762146942997313704088541790562544561230437954268147590557169838801398758190202429821974207300612521717613815252913134786439704826725498912190241869743819208018041750724737410452952895087463061245491949673089904980753613403806256275517962363742598912301036974052181316554713435730382902612051592192570506703539423410015659688573642969434125873525517743252664470572425607953386948395671761281550955967402728346002493908238358132186549856095275944076576497510934778617253435771252504762748722987351256305870076738380598828879522086805177456897783597454428596992764438240866126457850275849928228159818861764634061468425732308474924097134313233750478822129566602397142769728185844847156952901390016139510579914730545629711512326641337465373362634758504885252673996867454268897947448358190249759074462634564441024964123389291046765500503809990536063637163791214962049314483261846561747021583294076600458490052818728187373268195904591987950995066746955195321293839551630251371427077771654676389922984482631286577797469256978075522639746153862287931429800589388192864927153318231326804790182839757344965249344522829296117266746180853308558959775818017351625916827274967390038126857263727896791860234493638577049793292675255032945180910437236868009008331983884072402993457772724331947510508074109554784859431971957868549123682327334888513165587705942128077013299260039897910926012942136274675980145280833577837311968830062145766191868969226608493260521222179080965926714883446753913067593065111330165513012947103527248378586586673592107892860352071653236382831985057288956852474056692732352622716969422414598039820333644199086504186292472412010731453620435936883331309815950299319565407839609482800583769258004119400095818526860732091201898941133381721294829934427693824248184182563800992799882778348181817878079144753355078638935701133024912780080392367901732360060338743704281237509000165448537569017462666936586132922322040686618529921997965392811764094072037238147205471653024082480982190662269386380587454446089895964924199004611382874798220023334657865927452472458509225783151362590514773991303252143515897629491650213348664433792020238762341359947651782785026554826250666657519374136758953175921896509897829896375325525767646044473511431029754689650182134213095681533530814950672714837260925200489173390625793337403058074249405450104783150762115631356571932832671818088712888308670785826864705857368037597319385118129382477071193661063572721554799079150179831277021879097011677338442544200624381997469613651219245237127419359053001068693605659934481886378477292252076065523521885431184252796533382402440137965361395624801336768218352104547898036845128727212663226408499112620871274087476946665843721905383466042234075987685381888119733205924338912803243179631965464021758184914498530316508728477002596826518491902669555895995235803820918542557959189706026606532600856026227519453698635582130667823591279475317360288590209427854912594762196863829079331101362392322270207723158420538891528323143269414207660427240253634861081842686584486400325335044913784743422263326285306156492535012248242049187970176982009258169452476913498193441334552022444674339407876189360103575766052370457255901467433477058854408523974038749579452255912960260715269360032515702655698382384211243145760109451014903517950605040134867292542787323458224849456966053054937581137312280498671323789338385741098182620343861857290441838524751122912293336831616510293437052523969356458101174710058491991462919285586967264140743396058492333492617308285024901643041679244145706574230302384578281590679452259933584523777302759726775200846849842522663892882581053255853424206213888362079201950323110111911584326786992680552851562470492183812932187623678675866844702932887033771936584249827286776220986368965131011974543944731428860776685372488985175112368478451091384994009233914499193501656634859858936898314214651380993302773618054518458173086025911303181629554397965716380308091245439831290824637996459950883819092215614236178985884264783864292091615869858530526993585723891577403780001072529092852092247703785445297700931480539443860795480707225021751489965885760527581469061600282304628469194994196107794278170703056632927492340665343288022336718847159460577838317213517635160483158626308610172532094628212092270505820051287650729869698525160555763351070772732795107114795153893755584129265381594761238581289424829803225061799396956879997431288000450959654098762893667164903644676265312663562659230344670670170112427261799556198011954073571451964271513481249829651907607692317545215332583229714097214980555587779394281924432754400903798761005494897952465154468661297852751246126551654458415267242719183619140946575885918266200279417274887193344541110931474310133568419993683580352979845658873309074241362889503986245585426331696695230598224905468165691171852911286678997967562233708458503612040306207545730398394775057222412580198721510357067468863181668861697456249179588684278842613229783248114575735197723736649150776554472533564130672483369621959570317615662461018315871594182747343668386955353479704050540765185735935393794596242624671960556936132179790800087227959642966650242090439903411960955620294311925063224915518471638106321805644163235619075398085985990300954405390351088003218190138772866857780305489888591280990144226322403232440741821741074697049579480283634679783384869168525884413099431445747964823815733677227724070672248010944495618570585982687725848940410118486904014738788809708455337890595654055372837690504756398463719200922191655029443134132606547494290562287403294387839078338224202392424024873633898226842346502918667328800146011114575808349633706788337153365344331078496511592361983018877387906035856539891371860149254177939207029242222193934668857391676734891542507669681247591576514243519161284344392233513661600760731478996932467634429604054716833466684335741999705818839875781919681498123386056390737473954844842381757414094719318916688857020920485067246280630037006431979899478338210371359888733526392471019246154219382308045804765674381122458617990451382832951970103311172326905394953741721457165925882248273672299172324300226107946592628595447913866128476127929623666065353509485248522730607112755542113835460365196022878036522529982056010281507134556058665782378226795284875629436735878885767038303965344066720381473134084100361640016324780138797148260738762740723963189996142235165514413422243329310300133419202660880359528797049652304881574493841286188716345555038594315885091712142401845557155926024725926152887352404106844166363706317105159486466422675241074886194778855026056408815906964020407903244224656175391680938959651848902654934941600635301622956373881249730333462547432451430216829562153621494805971446595424411899895063943481480565558528176388060763440289599111487660755780954060310782496373783780090082798598717802839734318364890950984089502450205751670091976068926399293374890327303709056421555199769122561753724039893944362436340876302158706543916512652255957465698349047078788678550975211853485924664182196298204588849004234653260554986861988417674027185404320690391823076269169419900300568696179458598500726618248946234106574733957899552655884581680158176682847694321031898617147023252338259604081836678947537471996856649045648454812562226126683650625796833496049640137569403253696001932126256664243655603460919496618299448744417885003097357832124919411927161374505259094323567328184361019157230268460343168583002376863228763156010275159014281136569780416765886683349511573157057108177341867002089323129321638850218799732389821295811486149145446233636830418281525732544643366618916315119104340774120594851933987981356963811518936165910305800280089803718467368252873901923724804397974816530350459149470917146968075142981717371335519611040075864639100654053158984099224090278675824469563171705996939965511693395144614394325081673340863074744292985754008228821181888083173915039099623813484008509856630343024165998134712237921172703693205570547654596389124171371405016484737569259132356725129235485222402180999665001977089488204663295166248655275389171958726222485066200399803169477377640994098846091049786617805290781432412902799900364220117999371513004363789368770424631633646104267235095301466437946272667359669396448306716139698555077495711433067632867944934532604253981393675389113184717486941699361260903759776709388488744163795133347106849491449431845713769462038756611929011916351631713954418683957671986488965609114991312038974062901166133786909397265854388380174003644104343799890295925495998272339133535360785132232506595171505732806302829191143746863612739162353030210970674297473560543150979598073001733412120590941000788542193259634354403825883848494538242084989305770495509558971961654807981537664623043883817175448418217182037707654802604026089928157326532366590168241528782676181813845317923663040478738959039484814613654475876627217228753462140718149269721156722936897703673972271539852456355075835942122324690793859618363831958532263615066468644604626623692183312086636532694548238056641352690365215019881797870232149689658308895858021975170331727888957893987491539235997457645636183746317622007238983454528750735285609626728856759559012575175618122629018047366980203873691131117709333965257079876897332278930011512631860791048085625290153078662634885527172494189494980041162068740183315399163541267232237480279019132848322255054174460797701878980813440575027873086392233689440943361779642812775085897707472401761042003659906276474423763058698181210097612176834236361475107774930072976832532184978824592049191610811510430278639013445361826409558596366314279339791508226269583167517631413865617634884289650502382856326988965930298163356139106937094490711424449645903842382281341687084148243771530867805648032914707334192309545907888583227608107512252478420483994362481780899488924397719652074035735709864675363510104980477356568194541482207862830859248876505499105205163830953136238113761067244828535181975799760374477050734046562759411577553779254793500950600983990655857049222227275733925592803708680144860846237964374299305709797629629986355539457194897802248421915972319214134175261326471628325486458729130600386115867382128633114566740823623776563958521267695192665399732802709931270284572280641626118051944119518134683180653831512655823311031624909861515095958128381040080412763448848740955822892530178735127055144404568371691041805258528530248697321442214160300803912637794781656491374243345352319330810156802231215092330794502442316374356063648559636939946862712096214496690208562212851754612158203028637909515898903607035650487708018467718781116782660905188468433536185074049242045455945969428614971986934969086069349337526435853330547599726113737974850508647697159863013204340997602595126462937331186074964565093949399894669813268678463726216714059197858657441057638173908034994781123376774651179050302293574092452649443248350419341815007717810300032794763968434648476838717505982473397947594140638279467374019963356447880650264317079865343748440033556253398093643562624357836834297408109240975809856999588660269594513787605583939995890580121284389234851634890560037165435718909111247690735288120844335214160208546485241089411745012735081025589388902874088170476832186849587833533411203200977866060527198676053791613784541781441277182249429412428256899704827228681271064982053157984016658306165215877576456305194492922929673607682272989745934362052534185485947435416283236368321487228871125334658483424614096922097636235072879766697602448498726557121503258789667655429947551830918986032436338414618348960595371205690851902779754683572893489970474603046424116200319234797600708640680323394314080235935342020384516784977632740249503356178797539143973947944930366228743600593297347279053177241125327603923684850014573553710899110526327462741755391514247280513095343322142124199225484631562359167087153847534857989802697455224053327637161519968585414295715259604430928132287118321962385403066120765723262633275679554295379079744161929216645049834305338596990431079297595005823281897513412278298246433729209589213887527232897715411367545714372860998774513358861098303995900342747088756027488524137904020423025018730868767852037221122851611276124524762074621977609409942832911557643369806564732729777447864732330590908910374137866090399418211091814412816583812418325158314730873842138552390811017822447811004823354408778398010634000792977915871371087476804099563597254157867546553507306115496634768620844371636986167072033258482978531026694203204940286452841976340849128690192301660024439594121861317441831891742034369774027738584072080436506763893800337224286463910064229561126806717603141249709897857582198546728342457139512822940445523102175542944192255656667065338616674556907328895006470207369144874942459179357897659828876727116809929199568403386832070641012211123469029223879272824990376056468331208468846571354153825013367001854971461898077694930926427055459664273820799238332523337332378157357804507237672957464521357902950741245876160930453385311898138554542291355007853378133438490003472440488023318154011802456379513820939479470675753518485505600016801455667528696225361812863050777846197650688880396766638594647444358473344423620287506815727718636331168004973322063823855511317129418535140685612195657963871030774433434291729318138879313929044201810192656386670935387997977632225483282427267395742351812388270067973875857329058492408059912879401262009514672039657634524601929309569562104905209426428412707074447867993447622395049596396473083290674706852027947180527919233089005402619497770807750742811623712358142101848269942259072356772759478450906583099910303344845620287918952442752768150121190509373862896339205907471115298757235008446968730745915620371975043995450968469813212956296126285189581270187235383518579057458975508264781281390654688021443925828734596225952379937673977173120418561994304357234503920393484521930619063606663428412696950918454046403769647776527150721035398338993975823498050765195515038206866537735415853266598119093085068314463982180179902696009779643021270686294593640827301357042716795733424948233706066838925554408653604117774948473817927011236956990703256626198515705010134239574780663599106644317896173361626557826083062559499639484561569094820290499119803612486451778425281648107421698596575760579803134792460823686138383148194551183035960572315345293794384553271964727725675435469392247024294896163751689472968909619974437411483613182366581845048098284296422628888179896998689834666144924068582049876380804855881681499880444170660698187234340429840312871276793732327009411456629694560508506403178333695438086673559417085058326226057381459153338242604652191836065155092056741255012109286372910456810893055186243226957848786801100193010291843060374688509327656663390040182250169008128609775502618478797490463705502997854609842845398913380249960360728283532940048791751835811348077940697424021491663533491231340842089894706628002574571001728396312738850019372128157534089451962725166402486953053409419194222094172000230748052755925294976352743046754429274789268945668823744004564307259005969138475588759466159644431769527646259728940846928242285018251327332627330940571006131897405776108233319201113513077028621526805260328030741652960415474137353979445206733930484922085333646162696107917966161936806608744235621697339538605030838451924103015394248034103242967952236927860996206556372599190051041691132061880844380063541772920426815305049179487802523875585113225676109542977502949513567833793760586846235059497553064837592567020381371273483948226031298343885687771488816861349567296208301318158582561034016429075294317379312332202302842747531853620834385544583473194507123435761537379060661192311058446064785987374020372593684227541118650209511254316147863920590734732083970771745696408640187929762460107184993160834932632133268617512770330148495079699047457291497695519906083146450999682462718704179989249343902167151623499922851483834821516885823199501300521964655866259529458091849339174882271264256567273186486273150723624794708106902896328811668792034294564611220282146655792968053332453738403791233649140851924367604327141067581796470009441046185752267432844702549833930807622561838498366268702721209330932125600491992465182398662939702412633520216730031947017623524706978901664693207791430199502635941848444910530004089267125481547911778586564089615938687970360560948263684302423664734780370729940541597319210787715914307989674112038049475415599855609905982562761982135898142853988803657322723845311613789287694720110935278264506647486499643340388365951815268481625178440093140642366728364163326024228803185914010748291656237011772623797112764702282280031079603850310675710938233694855581306158039334255703417157534755762790017490130687240645293497525819326689446984925200974812329116474944653973851152016273904512848593563090295457604686601734360619121788402043825059706575619149238369107252615410021100139126873778978470771175484782568780716832628763260510078321934114707942856133756983682265594722026121007579863896587086381698959410308852884614853089449006217636755273364855339224582727801813564381755875475874327307476088175015936323527324309961355036066454515971099669176908691390388187356987737953302979313247884756846611449861749034756335025269867002972607964948609238941126920097474414320299627616058129189958679239311306904250858740937963327081968211599442421940609349176903527956216245968054114784927015420587307356495564516576792816629046011126704881134565499524390572002255324878015980653727796565847965851581687091008420101684765408860522241473374916685589229517267541209169600441764409515951832316300129654395536401253648904842378422315591060580865619395381994678103628700286055368420276165079487126592355881742540395736152986613636732668559797011030123774539811464492358458915501707529761274755701321400151357808686231668226988593682274808791882579387979360211620092069240857825568177288931564141034437270343049125945259785305876917694810129022652194632326152626881173242423853328706457809673585416549956785420150893761158839663134263996837880550829650383859215915400567839085868197145705306755891322593736610514548490224013514276751930370866579310527187702926184466360022345196314842951698571721110857481412596314892985203554522716253690053316296068014537464065511825700631174247408247471627126935031313650159065238817728216260317864188378048953970486297100323791009043400282957387354179282698968254497302503830442579731649093526694237956948074521076406734988380526312591749657476375944732699987484613052349583677193044863217814244247426558363962255048431997009263262068285936955971510060392916070046142732863035188468747147502204740503239093879512566719416098133429520000504114215550757024153115562651208480030852576901017554943066544999276863192836536966797641564954514327829143091446863441118141830456014751073906205144141160836104291144153047428939241407685420062034261607852459189423247232449432161326689199277704552896843043956269005304692000117591329951333171951231171453973129148611808147167875357066220966822424322982313699412242833434080281896793802176457049860259053831986472033612384166151792737993550985633734490054527441577408721432948211656638153234283245773592432463752030059215754440380780342309056244376851844863257578676559492004001243987586449925029293238505551738678028444402413153564827193984241125838123536652546113501892531064184294877661485414144557878872432635364229040522567528319377480784427597377168107932610264119826164661760516257270365834200380449503240839100195157514949629215499371404144706793240838515507531537083473750953169792196360381834022347358286241569976454850193800964757445181096720265194894261296969939746713892569564158507403938943922051883787447947288491703051486475267952149340310481053384338506157087661821227302455060622906573376415673585285148030364503458940835742683225935256376155591587846535833771885552594018417643897750992346485573197517838974117166968356813407884277585203629743772852138988154025906593270138809937698854036953652854786070179835304394556877380410011780004066058937387698214650185310738875297682699501025323617086905374318168793834479350730131943545464648386339293298924034727441024959620194122345079402708997417059165087425243806024246610208049307420389693537918773451846834748504744364381761460593441688757232907992483938224174828739874180171783672563279764759173773892796751836564835097079043427632417122173688483839503675144165663201237773990423228555936423230594576003009512341183909767787062842485458530724431792917355054286838200362670615214976792876307373422804776287514887004905647502265632000470806147633494247081383866994348061746312404065926137433905398341180080085263259388804719200698939284737289535222863478027236236131917707474697728741041389393791788760465202539422809201171577301227815994854115116120683879668072050523915064814365925734079624842771129401265152991278762930997162182682509303676550519000075952274318181138954258509295930511606828632386744659952781980045413935821940444807972157531984889587262070809721252971800674543147637033658890653019715654270608225484761312169653994561210946585340628907316904475484205032880459730272367122883377147646027965321241748922915011570936929468977410226757401481865163997279544870159475121689171583291397466952873238660145242613263316740327362670475577861283844461800383933681152108628759322425041076066138454510052788875771249167942244434243618095186224221610052135259551317589999871053542795332156417482124389526825074152187835390751098587760942447498056180977208340541283271814502185693774864820296881215958497398714271583288322440675750669053966880487809620760941294642466829621683665760207275306110729306304688399277055029682660913373001459036665378075325313958230651628187352433591728276443538488034711759860564002943666147628665822174131720539251453750341457634566202613370308137783671556020578747487755756194446227344278645788703770605921794490032720809346354959694695705632180638074873202548782554755356698502599793517538155824992500258031205470411725491226468988212988471040376547084887304440250049330067547789914538824839696633456362853098117956421591822390582261549142220310147314895551470298634136314613699705918858067416589509331770207648178431222966908230717507351614665702363982933834525103118626232876015833239920133943274573270453460008361427899181839126463514564380454096930760514123498704812386421285834642575701395288126827576741354625531466227997278692279252629804633617822548311340385807598819737037311591760779025831665016682562459784600166230769155131555464270916798367506237425214061372026109994154056105911129021547878832679066962441025485397901822756097930891988646990193016937020801175494069722934176162518850714396498291585746768480376181305324171126805749121011529404281350699920393441127142526863748845643447295290346882755746815178333983585736926373868883301163287942294293596128589683930078200927962065260604060650830398203036738037265055234905506367485216508038898832470301619601853428540137014744569772093240881980458414817706827542901424222199293822618582888581363427472613686488598446897522425524263308435031659450120823675678400294474576149616988768603398272904814482575237968969773494551653222106671844516736398093338084961247817447674227959003359318943345419719473850976168615201641443100041777937452861182761985696720380142100641401365621599457976959094883937818213852400345143880296464977272423886373301719910209882059885218610750176082115848313185563647443686232623027402649366698821165750307941133474102673568062743174132700541633062068670364609685514614871670843113196560603313562139111407183823881246831389527522133899500964959890944916795565664318459370675251423411036896725207275478926186317508172110069280277269972714607074447948555768446935441948947714481918494628550835342051918215064926779614973911584385481748897497127977146079051510506772490385219709955333652025008311193734812682426128552615481482431520499493991372051580286033206005958201273625823611829340899043809770935073001688185347051922835180361021351705596107447620593682193045868563727888033017680074132924471983414260915087923088200102839732166962104908495495248035519148554657001868622996841155907473074739691371280666562291000696812499146915316936311535540517908592046119376188332280136905133620464722563217768004658673121709433132269756224917429442533631259426049976633423236315454785886853400098271774737989714104577930313185601819436873842591194249419683697398197264881408341669292615035372027033199293172455334824623475536698242183373256512075366847088791299483094234293700808614919987091795311276189822949225391909340756780871137755300983753565931498195150527513651830162701822510450546706604973773988268317222244721363459601252132231043590811999512073947281315053708474803859566736393312913875398168361939774472114970303157558163665703150164631392293894996940232414472691046944177877695821550941483928304646906532671257696429980822540728743225446472711862896631069779368593996208876509689093122181706926757110021530290461594539307382323970212753683287476991891793037709013653475275470167947710405553564802823106867511271301694043078527522385749804284926664049690288767832149436424237132713449105562173050534853382101330814841488818110320279645720084685260933963344377210601623828888685320293434411968266006154234030857968820639447681159489568675098147786422886454821777437684626715559590803868511306085307428062320883682967304116256252825744981589146306599178368146408816999388247758408275312392455700030003500209286080984354673006473920176840683827957658436746925182157274478373918353334361534541725769293400420297788158118598406895223990420476935847788185158122520457619352156502800551173181807355471777261994172109681724202070880079602712680634911343935911972234938211319114552444825683032548216658607673587304724746231400904372540793435692418926018169600752991433684963077339481140900836127726518842867360011022297476628198696631340627641581198278248670040999050806185043104323352799856051397342059721122182145019434386923430256187995332927295130104145245190444493015204637213188248792816607740855197113650913381928814844405440371379762135678160894514837392462976192405834420887559016998358095952863557237171924755061303321289164954570122520416345598113589402220733496506807850074625847939436122736458607577242971435880679812351723353298434345745330127105980968944023308310174931248251738388649727989460686506980981976981762526999567367947395653972369654060931009588461999666807024801152225499636305933113283661181755498823136346009010138577201878951979609713138198420735518945255836563554887831996460211415750053985743547564932574479222128428542855206547147434327531412457660923928411732897631088539346697943762220272925404750005421727372876454569944771009064246595325433183629824542885877756495415587023971694271299964290494010424404797491117891557370509685910533478859482793901503426390328247378543018254561160458529343314104054380338759371231639734583582093046906697771622576082703655684050424889751634160030694139572806968055087351863424783786188185159820138271296442421109312838324323821826116978506410099616099311542527065211916426864093011938127882102283351299459821478500211804703456921088916039874541104792261808213518682721353742304257105084765045718436238613791424303683658568803880487234860526571420764696138007045579646756659280660224156433614159450178720375649253180842411664876563519683116891683806395208818924306427644244855856707721368524198708540619899513827790864392601266194541385890919479786534829310773557110024206577014434282652340607898949406026587709510684140401337476064568275259823925378843743876957377209859008867646126896617389268195334337464111274180049529008964727846836309207581599197236478658073451644487009428329835605907416163183118455308865815084219456583494928669701940381725706075786393869648480474412092458550629442554505635111960472735433169873582906659119511453425509250052659706416560058570361560255867044838854402087099002320540600993616892223525934477869519403179870379035037116636768143927622886317318279415401857996552052256672238600596428660552519017484389932457764077063368855399715462466666747513470493019667563749230556970468180360082560018546024709075288397913491156571901695836787655444914061618012672331957353565406713865969234536899030825987885175931724985055031313555450819737204757301957521923443186155165046167626899230994932238041198708225257488011943675434361169017240133586701517415343346546011548734897866220288530084994549704208069136918769795953670113148117936864104245473723839234512244092603091086743055994035522179802327442537155329103253114486334720242957059610356227045559386281349847861803665538881202051197062807230569297286060493350312381673410513353752190746736676495253430173485771817505357404441246741996905107380575306050343199424967516171096499426682759600769401760273452461530147005777286577229998466699186021875590594466406697329425735318413446232437790453270230650718450220670872840980342349057472805608660202070010318120240206186280700393176535375329106999846667487130203035482988269545390647250144798853426455358956009900497349153894469601454667393428078814279124791701058315208309067661844174310136508248295022248396105621158410545335705993013714315204567974529330229140385775676959762916893793450816848961814259718953528030077539158392528564238447360747180427011490906773069080151302134047257367758624553715314574818607847391380234787117144884786240174333811063228649229358624231172409217996615251417278368453980503833317587239764414689078739738979251577436566455476217319317278546174738644335366717778513579517596626255297418248801960083787743085309972256981073950646055240333149937564747891259216294276317843533985295654675222815694889207245024224850482614743709178938049714034628578465870581330790630602439313310990970459000681509425865645011694306804581708407061998204616239559215078653274855414787806332361189851700745535358884724771054323590255981564507674332042588798156935726799751801599717258880783972266514794129865399751719866799865603496044804208224864525819017456194615020731236139966075670174182745997218123882963872287052683018516925004092222089526528688761283224364069532659441590899648843123756243790935342293502106231404717824378119662592641228013585825325530575676095231318130617170871544708674243519444644157234547956918309590378195103063625347144685063189976172535808721879793449851621719173022202820959093923051045164788406843658142782204901492760569652607606014026631032506220104568188247573406322811609686816952964664632867021290025275953440046136631775308598434438719051572521060347243013569727543023899405123146640960183965185890340404698452029411790790006892914712903352622135942275388730563233705861889802209622302283308467334811319422948735199218224926980248261164960222832936685610824782222674008623075671912294706414752522630860126151305270449519676233471626994969870204605344886564370624212269373803837210448535029574530739023010644599164499148498504830173758980285294763714771558388027253600864534092681246624207066261572151611864425123679715935587213347207756460313990790453730708983638187822650830937109738463444428727502460278499028814627433436609067156156282966495198757100701018456766661501990941479979608818698018924438939527268941010226114137716067400602093321388431049459328635489084117009369292697544291569454159981524247214207844558149045684741917532234868657893858770643699142012950442249877047410517066155953835913491686565544140470447095245820846527782544381733070416602093647731588408394685362156450471607532983793041690213324883738809120274631487676949635214712027797713681974297954616619482990039018446998792473632763490261784380613202500632246872152830076006692062342481844550847254126782648670967898683884309642960185739228685123917218873043022368669135437895229758580658913868919296183392606682643078405518477092381735289024775894216247437053490910897614739665017304578273724676209579580900550139617659657518087663155700597074799918577441824341434643311337553930457175298277653668647913142917061710152762789588103421398736904703900589439899344715617557138587402644056990180773276454509425209922050089495254317121510279017150370690888455396246926081597314775031316155091777336020217852850559840392448679830270059553194372889764145513411256142774921289904749641992084458242548669677446059853301286265750951089074218773806143154970926962106388448954623345752325585575798868495567129826789380444634125930376994435248067785611907193223411306276453962030281935828363595717136854925159588982260888944464308938319598600269589817854866621154227575054329372966881457708860167282061813043608169921578679781819592267334785569995416183920092503118853187698231485283344038394574420330614266428283461261821782220328359081466706762254594117534713007903975764542529805257968792780209613378412091952833243073060370934881454919823403757118673450675809168706538372003386144782447484497901566821011732384028217730946242364436989840883495863465304629526188124760007071031924898544539564162754043587975117245502545483332564112508830452716435450071116372421351293963682039161262437297719543859447084709940837215873814648564730768653053741915240101230000921257124996231341222513130014875572063971872958284197155916496418731152227132000638227378253441272687999176621872633011854796703437860287855202946265208024034509152660042355645719622715943285309248137213568989471358744741703199633962834302778041487381511949237416086255946668144443390572146801106613204150601020085649587743403060889212751692912151925149236399320530804606059870397145601828362247221844361040507200555276803403701760162649383576747908032107953642736105218802150443160137744814256959006944206382075017879357176588563981134098381260248313538737966397667215718200854261958013074900584664461717502026814080367016189678771609679733559344526105080314839819686113612872797312504917231119297894715102668366457099155313618185655501009458883790600918848582111337943765050547207609233525035787568944727667305401940561328676916139170717028442701533909284616852198841263530857831870839134054791194467373281942090587100577007761745513033176865734276630413820845111800955877562721079486165418567652528055244810103255840583164180514875242769395061312468027594188215216838519288266726277247441560289436072084014541788435032722723997728973074881919880721839286208710737885485967252726374925110084837136448667860293410123353303642452063168519004628484923469115425383597759746201832808664216761054027198683395118540015956827892606557258626709328118565938350511354581121657265041097997752759041007763795280248143786292556676572524606816035589879138857803231057441195230989360307762812956433797828768997312141578851291255238880892366054741982917755727523825535288998611902561528177385487252317141424086983145928051778150252418851775624961607407702899523808469438240684424409146126080962252611746219568280816234934437012129511166299654978491945425133202587162046114565441216918127483601425877207566181114661303553663024818626248119929802478725733847946132573493988830245803948002178704556591602332039019427522409984717512316869784600742104194423023337069549739536144858416018618418394621001826977227795405093341298775324374412094634898990264490798705916286013177571545273734946609918375092217018818714122157727645390317810563757026163361347367801493711994389202309163579795477253980874188419475750800219994564313829985043643641772577548003067859224851139822526448985100875800914793479177878929746055633096775925067670319122157557466999652428688230333244363017908241813223437109773771037488514053033931515683913368380159177367609716345621438975435555374761805739975197314181439468802240369228694217085669714183764200309793677131578403758945435729076816504999406186616181829117996752703444700200242808259631539490697975832367389510011911554083507716882077894735978793256097231106204210239392898065003490624438311418484489434849040654192374104595779807342427287718992152205016357891162188718498986748945922223579973385764245783422532992271743304749036501188475306101912393903951470837967918280971973535001672992053207953962081596572595117590743166171643487695521605119214158096454354771654624867907558526451339111298135996529516360133182409061488857609001714696872873637471468427668872431057423822736621666806635983165763782302421756759015018409497525573684119311622796741730948292633625441272325501803038193901903867367399748498511811814237916655158671776199240835059626602639079211342717243915817328688012953346089429615233541581027766738916113180627339419727608642574505079198748654069450684595921918553677140142342261348588331802330593250217346927848321798775288566764064796238779074847741177212013797897967687478790378618853091598142417825871538988775096433856106259855075384071832325740198130264355201222666901716977273593971991301083567317326308450179571452220052308925070644927160388998050124798663678701489530941736767902258909384473530780542368859187425485021137054571105683685269529038950209067790289512990221564725382949202207352299648235113285037725810189798528613188351843510564545353027293433180166204216592087385766146441941462424278005502868487327847809298869945068751933941299918979813013061141081237143629301782077852900336633099578590769955858248424672008276879047145327910684923941701503104059009049044483906079206077246540485658626117745400985148325466589480407016407194869550859838590103553815642941053237122633583296311478239348572943804385116153970228655458159383212806802946689279772540320371229863420333245098486510323878180458190459057325392519239195083178543611335736977160643335638615711623736917473142699424956229755919936084954479781662146552627371416218211050973705091564327713417912163610764685371689517847876662275502422291580611021973284467485514383323525362629660080083908492779622993241453571347604946297228972793884798612410727621717529334804689183299887417797563374137049547682617428293070025207045639066088205098418315792512850666922311219557412043586449910308513122209692417291613703122924543704231644065756959654386433236911150447578404731569428274378897589089454290496066983954058720047713453269675100619075611675549132799684525007278587962026318126173632956880102200847002211856961808236652350671737986153002863145316750270658580653377432312054345260499961629557565135615983482521537930249047263231225119135855579308474029478817332129641434056738589015979026015955977429709116974237256054833871829374146614521651382793917282125517555568420378908339821201922324217826098756359048332082701798630829882595591701875284116425552479188397555942139330981712664860566053296109597770589557099676535772401107283796687119971903555024960105007690139294150456747379280202259094917728155806508960249341123926496763274334395841015462173001868257468155534409970289513464792389797874905719942434156639316587372615103338349609878029959854466288674489986683982552385086202344729742578975631605359153746182352276378686607567080188206960477842035739787002478681615291150169806935189467578686634343038056814053281456261372922847013976492759821174442100478741407449320417752936785173172440685823983589278375418374080819205038219059747575885671297886948396843234993760690267521790453687806730351205469137255170197387574513391769915851029822399116250778369283572735505470059734195586673349735379183999656317293237136710823965704042214736895399029322869199657257002476488405154992695819254833486640712274494397930556263208709890671808096323687471323549011870337258892660058310065095686483465430252313777344345854714762019738723785686215106804398861824952429934292398942051404627122338123269383359314284699865020065700649227514304597575662383254437345996756271336083095726987869714363461499460815732991475731212356162283596318607034353128117277511728952703157899426725825129320350511310458793931538399494191771162460395819820198279524564976125976469142340284123822608806315974570973493232148721240325881249497945986907483939526605765639444701421822411338714319658754262215252050300459630799479364826211024229983369660485965760435335804930309037695540921119441263876558452775111406853978675340959175799478000710705698332473385168946734989746399759298156714371364024581769712295946740644960288464586563629865135630276893342036561897136278420490762571993512443330143715890210215279318485237401507329552789561799452029641515045868770968344552056105025725702601024817684185242632436507564405098515990441917376812096042183271589589624847489547807380107481331746772904745194008925658771204463669247872897017617739715248558891125037959825621569530338892823982944573517541289372498740642158567107671175486384486374127351538187589678119848132989432558023588488085106227685641059933107939487469970752108536548850275912648563933659288981754077097305574548914289085824319343452372604433436898799260624191317907565478342171821909039990292786165420235187592338538555900225893448717694811340860068156590382566402818177105243232710945314187521528426943752034887865774090631354541512175166762168985305459292593172245058422677725404532973168717301413339582653628453655455208758936880739894141088761056047103367079549737857435991077898874812357147850966823098584718434084017547667494053293433846857244283122994581488054730456516569814925936651450015626170141751313688591065181154876527180272243713679411794224234754490565401713183922143491971946714289716502484525178652680108269593946706411300829092236779601141112927020141061996227679309540708482923391024714720425768437130539416184291202832176948196176896476807300211475229572289716213494867749444654288279923791675848770698304915526963144642122134073681741618176091275436373763701617801024310519010864113188889801732787966947241102216883886711625437405256579429662442685684646530945799977123447785093727068846131695800005200423964665246378794143829117752057408486224889557023104294567604803938066222291997588323508564418517597249357163156395258253248771395815576589362391475955172981234921946779644356376649060955158671815121750678494095728496713869642567842981539252407343744552735089068021412182726865240908598490060119607596376200118451527934046755780993026673856782844981189853019572248850172918511912118145881673606756760026501265353572966165412346041879371614708352365411587711395791350495389589757946346988042635047563244316503493246564682190078332725938304844756203112192704666966140483425440830318677048385864971314313193128945873003564477421441985070493386055564248408389793645589735226619663471971066202164856919730271041050319174077664548055198624188227390347178324546398354154339164382657898639198407820470245563967459907715732465968994706356863315935353272220273655423624240610270150133653920605002369463325253816960598021292541178608330596749207468919335702171558224028940317346518557812591355322810242157980144434728941276873149396664278605128711029796646595538404011828585031817493420760881679443848296777260238233466092574345166677845410283303767541292843378541536236805119155019619656538913848478826524403855852260148009740898576873110320565222871626991933355990202186942437716702774555705946599026644976607969217408012072857621802969191794241542404007431614436653614512858190239936915702648265575816856168598622008053587697666432757737418081241276622772773232193821909994850597741078187899247084355510703712630675828687718855731312387931482629088083084105332846921378141078123294375781173221849184168563169739031783605958555634623440989951222031373875246639637332521285606221913303043417832080490057423066833133736306027654137463498509277293327840019128030183998688789628169703390030668334946563524672750733770769940304705452944398029932522025059456172513443095480631183686535325292064505431722020758362503535291438764702662884819362416540473517968771608748725192564109612295733399332055773446471852855216559686370434464459838760734816084839388022375286758092340664102953957526900698562600608228662789559595506983889881720204186102824876625654428741376649011855744131364601565492504867671820597552890798703168567793481179120929691627455632608302665298497868490826425713942100892289949177491542493274161169082522847939236496262967454621687694799327323401668103552041682322525254683763068991345634427247764844925700862141091125923716974996689834403943612001728076064991072082998737376333343151057990146208544842320382382739951956350943915165016590444770903555236432401295441678457462092879632674559221324552123921457938170995308944147656567604399313105129780449127374783218138953256107931386797814550858627423741970770927269317312227940715383019899446541479497043936835286123795988870764592321206150734485527179948661467972471471945546259632378411271104816633922083509978095210084082973941507550973884962020873307234437029353246501322093676654562155149835498362720030088774701083156047974897603015545901902455031381584004653831212537828800686402772440588715489079806057149465346090996541269466941139970089753312569053938451507703573992857023536974382864389966459133553174044420057018393912852120466685500690533930108422190261813627851196067027874787676661713687858093344920813998866115518284980720375409463421183517076296042327341327040446449191860766978775661584779699309964548088735351682644832363762197155984597118928868392471223517657566239079643307618159055620652505942008833234820913921123665914070706190743016152657340283690636877695784740757733296749839006985319545700334761048268250577189278054307747121036995742853959142297203578802207158284453865646919903797925713909034748164681131057176745749224449614360145792249080040851903726153081165210030736005649924727285784775132508689284429451747586019674255206738986621858593783364319489005905207433773255034049052856464134255742978779272221881590466888898769008416899324894472567740630107856530709214718416329058918504050468936344669010850699149721693109985643917248569669734391349418499718988446086381822943195742302060391121055906650537073605839971049558653497582162616119213830620244231592343165977186790677422347426404814220262760589111995083234269584327589128884490837606453237839444459831166597127158467383761599307255765271599171451607602060293717331595419003972336928996074391876298302820243033177606453506849558471764215760002599062460619458529615786952731849943500524134014975564789211695618655081940552981381723664529219599317992473949761595439841537426928702108986825721944064993206841315237757425314342186166814127033038863854716697731257249576680525466098961609517615022369522178049954464981299653134793385416842185266103132728666109089895195554257233333715983623751575416130880746827894419248558008814303398454517177284930054675401244271270626080007803259366155032806015061004408485434643677938348001963497820392663659474958294798646297244966130121626268985357529626941173309755222984993438876963083786824993848855073463448597143090006088844466995450656987967286176693079391299011058190098729502025751141617297433207614671351006545092940241161714304405879337714903918087052020526790178027456437687122587060677790681779611475116942612511787308298730667489575199218398409122254767720665254947774900275780992734833549999695597126924195433094667536777239335590039813789963183253816056786633715367356364377472246197198187570535976604694854585461315550080707683340142777810619868801259498305314122266178120282738724210540844590508451014410818423074942925325790572016758840475021981323669403252940120493065129842211946628493479345990206507011868013450229090258878268045858095924125409578404298183825928779730874664100751118672832473175122595795151624987690352697424520696836328231082734755862756283661139898511614358743616549362810340093412329712295763244338917953533997910571695787559757330354574148890586982527017762497130239177803080875329335631244761471239027264590477235626580599139096496158550347874036286085136949199850664888477817126295419870172721545261368501757294432352265094948167518271645699684176087862743649915050727196750485473006536883093780998623054641280140546806369174249765631884050811400533820288407168181110411741065614096195236876045997845084242939434128393165317613328702284588412943311668750836935380348731726633476421819578503296290599743928535860036398092055138220045652932523280460656809445090337314428683297718687794540641024206580938831550337038401819709826465796110953455375907659111029926086284509769353167048630341410290875706490439471258885225217071746774071911659892015194289653786882036585697891556019840867119456736892605318104556125447249677791974200229901062574678138933157098248140608494987303129436059341847709784158795580135222922856409580487581858439322625949729254510823795017019871576898319247973011885864783785588818990796040879128582834894330321857522786654144764327351674516525972819805808165173503303496743533039936093236717573801588981659799456254624180893369440580728424702642766657890432971736252087362791462586446318947895307692258666886685034157247399391052936692559057893801232255219967439386482867541234675796490740402363423258408555565301113798681023865736028500945660266662776606624848423614787464763049022979040777469196118767570003678096763735227144498962701212427762897177131773415329052140757740129313622877264610046223350028910109392757327741499062262820536984400391364370638219141968986318680632027568380031941894330850784393102481277565273857308384087604949873389432525414811008076151909287688140962110187156682022678394493126919137369488363449425571811830061952889400916123821419071802288035096964696233265996089551167870487047801777627099543434636362844008284618041653543042293996854114666052478119264684697210916255529588260031902264790450781018381189004223314420583510469940916507511311987918264285808772042973066393575024265893684347673619272500025232310851521830352055399299445568124391580897893628899778656305460697981304383409262083568349276399008714386958573883361589619117725691522933916998564525312730598357145154608219470662750446573468570406670116705600143670046490973523162126786220645354817660689897989203113221138273195948896034076386445995958257788795545289023133320115172154235874334437159379341597403442074250455971391659889221294435232342247168174085847390686678619543493228652485953987899409254105330496018022565643543866040532971440506849559555036667068047835676557200884544220701523930490848545567340477577869980128685300991806910751478000289186970013394031866172854260826037505579491699242963094649638476794151613585937980507463076297992506292608655955569104524693189981941152571811137249197881524958510624650132409605691446389819758625030512016250505549864035578342278360073847073287101971998375028435584069265682589534238384798301871562150725297189453100371350076984978256564911413950985852393098586630581273834908984276656353097733073810609691503273902972583417430165116040574320236566031316515414650051907311567759003420498020702617350917209120165466583448278101461935236304472922717940055393449272381235482077320643926925994988049985951439457635921347419266582589725183604040556164331653038169927462208663471369933386522981680930628090716578423259256710229528464469303765381174057455119948535752258100573376935327061092340848886994165016189985182972165929691219438010750014068181966352049371276878023036084647525098758890077661110625760832998440059118426515732396144471091156974324571287149483708858311717923739083702710075203525438959617098411031649462216959584888300867481968788843982355536094576389395138834420117280865184644315914220243853097963016394361313072980899594241034256215113550989942367049534769475184772994589018449072426215254300743949892573411807917033685824503501257896905282217275816239196978126632381519675054637178700217340491668629773584113720403967106622318764730582978092906476032365439716527767124209384509176795383593929441705957763382224922035596237752566213888954182114239580709193822795334122156880046337576824648320858295766609453999700731642235982669801646080671258119208950523440416084210716948298674415756471766818597796178177108486018574215441349860879488730317392339928424318396315415511662859769746228491702947729673623835174307939969949241895132770864783179296276564684706739968833881944722480356136277461309633711753141554521392505728426947212752946425126584206099593788708062337727874667279183320006500647633391568526208597034491536134510976216057486069135205228042171335665552802705418697096600552156982310645207617407795434757256408922629824527603923536155169393651641150986978595387312073925794011982449658597929025948857999866382682081930197855266346410378391272714953647037317863081587621586750619282710938650983491339492711198197943611003137411264033222552054687554159281305360471301047810178669294441559793471553151607788007207607032512758985944262864249412092730161974668181731051755637207898120628856417389896019294798042520433630829423627999815623409488377296031923163237279608300807546779526883232666117662906733982059210604645875183501779405009485416605431986283313718728630935227886530269494367234898617596323531236185993844121902567534379226442362971168685076164746642872115238421819925646495741247054926572605068698660830771871191502362287330975501684674052034292959627838969278871102754739351964219804328234689007789184156010978524722134082825370393242255053025489082406942394297192881214548387136573591787776081358233565780900393859548616063728321357997070179525922035960724146065076269247205455419349809780868044960223522546894755782698791912570177044448776457822634708354306263774710291856925135129692208985966791737472033528645719635853575491129123057898487597471361007056192592886081677492725771861431168154225600289352617845641494794090444904845278659060685368695539512266556773584160029946218136002752595204598312371934623661538836192532228261222138498428602056785490997832849697769514071976290670917470061230111346557170553903138587208195646470045992185682012240918312707767907116847954540109474034423645602974859718967733503854971086911879644339968664914555682463268693713319772904877193099511226537963445698048376192888761541030180394224705056977942128599662672829124778590199892007421848878987017465866051061096133287779899332013089818170241820771093812577444304801709626568260803726500454890766773110065082746424676578740166221707774410826488410643185499559377321302201428812467288421974146266398389733774740639630510922684918987807916844461904967403734473038075491541848066124703416781089305012007419816213297006937261047712282101821719306911776903739393877845303903694075888209076359800459993327611934760977747949688990775925307052933520783848012069796818390546816736511139837630264631235152057783090225353512202836591247116147939351062202434262394327857353308551802410756605750113240266357826154105585322125805915168992541976527495303276747314624795285941842005400584742330473464611537250239160556546105658231167725576811867118602412567783371887571766578107442299782222659055364194474231592422378070538002500482937793159758157155139994715237221184199836072097120607412367177129365693576604428381568085498814842288656449307033167606999423269971066769609426404867029883040580309252114840832487214807986458541166859855724949802652087579154668561003043814144902821637861773652356534683226003602249512392429154360618432526943677273141007588430585175417835099748110441188852933849048906223265513523137361766151820038152407645339538244820456646221214349650931725599866947132335439426276208277418719252266871899769699988483447267711920318970265896829301878714032162974525282085390369829006075888069574208421623629308757699243236747617724854351628879957463446506953495787013981043464183326472080136405384952955997030391200013186529777510951689429678532497046483331517234340084657798278931194785163863427814775790006021504928224150952043458396459274220961560721509226611140942343527739435343743503032378727467447213746933094992891806988514874421783280327690751968958034115490798540533315922506790717615776333521994115197759891193240947258981051342646493691698683900580764589078908627471037059286711798433404606229674386373780000094142185982243877275175010155697764334936458338214930811315352942360153404124378305339394546619578010167263482180070908478302790929653681353804100970278940525305515913032435537534282698770453936537827613821511672151595773856086889508247398727192747606040737579190788372645621134011090098816554660529032960153193393497674693561712498789931407458019834547535157130805625585291870403443132587652434144038302242988668791559942278892804205052001587212573763410907684293767955648431264399917850583982780635678192756517210319943949006049710457550499642154750661492321977659245525130302361956180312080912465085303973555638531649011460877044324439657255183380952388998561073787239544087430936225779123818824859123546964232817571723507233010342316226062736406544508178303579288891620905297111765834922840514318525702806274463947636504238283100894039923391311045996600154663697533800754614871563226064572678690538426953496384490579922071184695407953752482202496973738966086737953605906492154903899702116893497756157557330063051136199799617273366848771941967160737105908114078128995708333570629529303490683908317878743110386409374017371172101294388743508696188344208659074048444352251814494811738337197431973567008616200184728411560385897674144604383722433058568339003369265269569740776045323862197771163192087480022893536790072208970668540901071912382827009813343770443504567300684426382036648464309966199907376796765202867342483171610847105316505911963054499448012617682105632989212313328982019450281802903841889654540941052620990511838102452928285817849343646828447796677431140407317075648487119763059669303038264096109074407990491790468385520585259229969812433737387948850705613577060239219996117409989486121483164356434993666844982776346654339658408692720631455025886300444227294415628687777205463359105139774774983819759397622889968057481870701312442356582677235526914072528203312163612532633952480172396768673688317186508832820175874919241318931428785717195797683819179239224583260432227424405027330554448322868590799129882671996662181742677828569596742186074509966409160207409345281858030761501571677007274799895516832092482608166037294486333932441109225600455131469552474610195496145304661058261244668890202807563711584080417453329935411566085385997649283296945005581431412064316576908512207459311774942983299264393431569498451684969771584166225020776827855097654420264410201121527302814557311635517890376674027160536996917900563887308786269996470737512884475194428925065790571865760444914076705980104488903191763320177125039620445165039171829860489940944050735968325883958707028428992119213156138764019379890574190448056553425501226175930944619070651663029076286896756338042276633479205961256946676082739916756022186765871437463005544934559601502856700123449301126521817347785105488133799716755317108295260426855172022947353632675138834778525967577751199734935555995939310956974241823505941791937049289033609817533032223694682877668124121400830765348931874135885467016495036763017811742124614218121479813380102965805970168327245543397046123874443908441514980218929538190524809957006388795181586378264079048166550156168560186497310002932231997665252288523913842766393763364426493007420663711120574955341654675023650453652401740579481674249846120838858019516239291852294500199782901111995551346783550061728967445294040060305500144061479825224411399240406983499687896515484005425580872400993806454504578933272479811745663885815500508390485773439114841936911198659088704873580347586255149633522449428762476239241911796461712817955074190146497377574499456405583210465177208078710782383676990343922252372085790286375463139963834195257295827111861293110572537530421032785012393334270991877481488198081182956374525318817775564930264931456249349236260009250040506885019793595495643793454470004665073473760969465539077956194992357618997875138045280354291616973024374045830500834488577362514803210197908768663116288879906094435742191928432775770586115405417366601175786272407364211013730659096062343861266293695621579292338435771013548247564756650543478038065730686955506098718454664051797712176321314028914013846450663174112008944191752341013578467258416335373043913258858580418754630242829269730263112694555198623744329856426373620693341561899334289641848817122067332788067628711211054610171945957885828541875279697133622644340730622986353658019170437488514884273967879537945131497577133567345763030530635165838081984407947881446644927100615811361524421672834245521208256556568160923321777339373905317155019543324803407876345838968697378272427640842651105435655339954318975116287724634331743074652589105392396195805461172250328352704151110282935470146549853230424103831315808616982553003392592846963867269662236016378468922360260639348408166058323818147766033276190392327267270911758272174491360924701114385817394109831243636751903637365751821585892021833004094562862830743051714390579607456840594401598395708379801313377038786484588312336853942154320388576231924075759986308375688827191687140983142351526369041961025514741086259655638357850281081778194259490318790469980033728357626634167199371690940096519431475004812330413861034145244080803204861945726044355315917206764691043251807320747074771179012055497242775437301632145433991024639248984676890070321810651053889738694908710623578887910539188635939876292174522632253983644156439014803522712853759396302274174467926944562703916178317147491723631962889240658627667271856119995072944472870409891148548019731147993260127009196448200386611596521538925121562459080970519285872508796183181058340822410866288533747271584239317947699297676271416315458344640257938339807763843873642506455857391556448853562321214641748357807661011402480660522134179789517418891968580157619462311872123134131940538795384367528482135408981907225677669078712727818141505366195902887556317102321808280956007971830544520165494364556721709665432399293842026053972709661217345890786363313286502771645890161511732444018726886270393714464986702804846764759415757935774867137750589167761408893750543323582907587265847545647152837131969255160813474505949144922367079971601750912400906906820617515744444618720634703997419788286029481169953165338253441996165760880067699678395094958530122527748944212419046808863913177398601058799553093331967069425605402742559074977685791345576350705850026897049973325810608230927899129261513573302614952437509523539725851923165627080262522709208932446200660943274891804275239270125721857203385955890789218203705438577128793499280144619540303286023246504516832006037702530821826134066327529661480953096274047807142254713521535216002473842139628945828412571190085413799609064456452940283218738413253465575608763424668152614592527888744053669627312414250878333184612951641186460854908333249790320218963435384334350272058144375208085583373922568452635087481873644440618666542917754125258683575316246575344880336459291105629657976694725718101266079403143347885515919883198534742484406709334228451082492078766715077059571990940138103351795414898696942035531360722094075984305534694156838051818826238293509449370791990932595095449310755226736371667296578519960276912945793947238726086791271257480248488213607701321843854861538097643696469451566763839738917357832794204868766403081355116503646174141686582357347675982530482545626345454123166677373646363929459878597963680262075384468264899777258724411258040278035831471278162533866730253561601682782775452032231997035096373450956902468496851133933395453544939031014837897817901211911545594556824886850286706580692220370604739190433849586230774572779911973890756161468163620155414542276920341463516930999384236725122714847439214231252505229247935673080708775967861119054163302271452723603662307498704734206380487866183404897149004572491238579617803123227805152635763684442763266975256563110952712978156245783774098211948608268349745269425333689670896709333872449186507206663931948653780895421243582676863813933890344201189349005521974019429565294380593387926271167469089933644792527388302094642252216319550728488091268832307616745922355970646097894030727630765043248886461902489538524601880999614691110949408211518529421775318691613761630606511939919383627018383633200601608684704775756399900742407830350832368256809345332885578536831744236097298230248905581224273275510580608097612916673235241998393491554932293532895919621858668495762998480753769972828964581970836087970483463260766127348268080053234365889899966388218282416486031549806319268054047529069337315392880872873851677240933607411611712624963325337888975062854956430883806069201818224604833809057878541090943435432306447106543296931573617521789289949089872293468696095683881149576380691005940359569835881428677234793869510555744267436039283183092392100654487687580604801492060718650763155655791194036214545930219349416957740013638954865257796138964214819771934331609134071284873149461175066395966142938473345364821273555110544425019498237348123166951587668229107149506978305328883576455276009044868683648591415282291078865056267890226340965029593877536104187721734121928276010025104462804584257409590977543255435692973832215888689772011749413716779181778836752730286124523499993508950616432201758513114031613154591715624462625889515089778134496780943794891703267433387389038192892815104665903741551177667770826098638942305822963371747327694224848127100743109185114344184159482721257641348152668086572927983352514675861329924851428837232265339131723661893800493154498064054957343465218534956985201523028161632088885324108273500536532381265019907464318901835242693807925447016720041954221893026132893680998004991105373049414849507587655948122168293877949798935128637384675311109703852093047505288921975902558096888477367290852295576225923911268028666304208552404392214336439703327908836373444696466802507594620679706467322638003717299797393059110853659817961254969751300651761170441451935077789600170806126128715663160432693422018019584519742563263500228206553288799217585170490236069552725557297815330851901786056476781708367024026641841268345724076960494001847863176675024092460284619272185535206869438906688057245271418532084420570926963797709875509501029621126207304670437556273215928511966917687205954557344801832222695102276168126183683934985506102582077544446409829097310340192408697096457296611386973892737693804688071810751035358503845938264865439865674119896044476560824248084191252489429274638540759303652525395940020248133759640905119189668210853981518474794412020779155226190382346536655670869157380730953775469396824601331600705442786017425116655330470303234036365605557764453760022908636801592371456642086682298680820053885945364182934696859513054210791562911429781045597366689899881210114105460068798594993153492175359567277908380222390540122705078773654999759816715711960008429045663827444734964323481969972437694522891471092201564671999751388076316337212215513232500741816226073724403435128482540161283719748477730767777858970041919404118459918910807843814103313680924488779807241251978751312200462107049950107732773896771756892653691605881514782116875872246486133717312941633345107091532438797647473582120515913805132170845655128826622832772107146051934113162107805023688977197711158820849444214397151448147323289477199248208709459191540479686141025127565381874883583365611990355927737351209693838370738200655470284959151995227183401220403944665406144089397640660722414578795043213547745759583655244414659686659297708978125920411615563878122544817826301038436780570006503701904713922002918332122569108774044023331017033490004382830355159723761891888449851065132233098146053507451896381381647483412046457899201462448331122338056757258052476160902818291296584043579261085941899218765708743011630303839847681943498944356925017771815550384829074951587072266934501557633883439565278141667236730634063295586437956333386648904366584021645969934749798913091878708508750808472477556887081686560753894166142064159044522978329750408311558799211005361422247666176574423639236476650360798320991695990875343354582028482921379682366912855296598173343704692483280564378964271386939946936924170693573476219443247348073209503532131840901192727041238105226731160195808709148003741597614135187041250429896670133335232440153949827675150545869730969581743347058694821609507321120998058814301146505413886856208691067127418848103805739820752526678377552505337719444794153102865931783102713017871514922460756678477736016022292359760566528135454000423178525279373746600874479644795185230803628011775078888209853383085706180411656646771783182264652365436674237510672390378453643437965804653673743789913289767639042541088193412064100849564146966263386358255636459410319661815080312418126022772391662106394334366062594694708593706525001171147429442014254565320776771810134192697744960112266743872225180697058486572631348941977696371864568035889861928699211446501931814066088029180320461831067343566492563312249072475130588066949580205827163996746258550978201171250208532228514329388930362197267911012135251021170321261831825071566963728681612998426039000493501640994570577548131682876656121160220510507555940019652817309681919542092124061141206856620480219652719622577283307960813739449166499048190475195850623341141678300127138667714948333521860127109473271736214191359503870163698423351445815763644197437009368557096436511644661015478473989345774717035076688753628515472560230768774165505283948981241457335040023160615373673685469978098756278734234450445996524153279637015056134860470341622624222097388241764219114784625283636181248904001432030592452848016835350880659511549380609318347379122386183936388204925913106363365061654514435986940377132327384721490022441360289398002799020259384324557102522139064888686804114903621122842335440642678079657262466852125165141327369524840205824805569083511595910150400677094998170797715607070735688777429811290423848776004602869120237133361908165942487812692381238527345295342641929466781285242664926204228680186654680020939988733501722198865631618975609476114879797313023371695984762577330209189449168162067257473676357434453713300899131260777069937350582551652791792126805818817984774405647486611089777649024115895928906788523765189699378087844202030575952051469728381151582401898674504881598319320961757533312250219589208942914546563839509804597300243533970720242954945739170274823115932467044720460444923011780063337079958470788941268344769007052786812990418323907807123762100399864543660781750713782080978227277049952874829564468265070846289426043889337056404864101842253537513357141643586356576278793274879928316851761214277259149219771344891482859166171285018601955689174350932452938960749979851428656433735999196942957745776470151968757117726236884779162718683980674352951656737143570814069906411460892443310221199317159035412798596855886165452390871647333460399514874576367426006165852664834932236261097249097880094250514843239993022116226683256423621447078637107889469045841254846717369191596606769618426463477792642192431188990380294672598481979252298490784303467699526375445886628974499792892507759115884280949419880904688269207176501970375365333156706736865779390958703890605514232451042626160128807600217127835637196485676987353141139542181927153535531647841483955049701145657287651837381052021323078561721625762648294265066715425125639787978095689554937600179433436669029278083358265953385150827172908840678415768275026359041710776957011534043108798628269488091834841917604502650400951301913758056309448936711326512304201185236947789561226695254901378615468177311775595528685997417487823528981800431931560653713134378491688415212305875943791760665610239921723455451827833372387495009961861687231583201871703748606874183374282309325973516108784434559160878480771486595321012598757472012102495678271516422532547489480736669500610866140644491299941851869261357103568693309134283682646806474688377357493667546906139415537398704535275481506854572557034770826630082850334470881844826675376064402661763965518201933633227678095757119498405490111927093228151986855778043736368300100279785749553172948568371252700240972174127581188565149502180849149853517897238078630094218408936983134626676887413884801167524795417191867222727803264228007565605827155731341851027842672556313662553748055763957848216699292669479958240096298783410725414732080832738833649559483823114362510773131125712471331381862328081787151801997119336877794759370999403936677558245318087552052469384233358711746279366949847072351746799901556370494820580075291831900321851408849079552248578934748341489778085016293672758714460072709352031499939959336423527777285891056373293805903478461137538853727926617882998732671988489618240148844212455939576128003840441853029050173004917060416078688151217282507744362632278683094906327948500542393584132768783887410145662806236215497977023981530575287931616123136527329273609454137738433472303652118809246301348327786881051847175726594323397710407595138846802603731379795423178451340691342584440936960678452779341842241700973282993344114358199955962375811507789398170994387592011229597735234803696737064718730856795496918505926459349704265632528082839600233518301124739849389468948441307613043757875793030091448604823826710113956625821426810479216327483723919113310007639484236211391354154900159996906987982027917060500086114626752729463358499403641301029371028577205981714016648244550722015271625867845503584067408219924824162147297618086129046803814845786577317464214702903712301798948419079817529816206584696926211177659598355446509899903091317001945089352558451081245073852156631644979663068501322750595502499530283073870177204126274033647648777465144177204317430943037066659155493604402221679200644956049550233754016040658967838442781651925088969033259817748526237163760167525276894231144117705704734686536811967911675527727826742452580371356730624033565125554100752504266559613819884057886818235360607186148093180335241592517329378279852670655029959754483096124487055449577641923463913864543925490295024547841751636369237378275795849667231774951488610448657570704295321478067126702359855223006012994010613372826263712793469717033580200086706650691395317651754230266426569470850646439448725692366505658775150231366134451388338137838083413022443857370205268120805578516577973718871819371049027571966282805023166368185573176879804687452260906159624562162143550021199590316631545308170101511213553085476646180321868896683447511057964266677098373086870137449037723922779473511703454457653618332781953457913741674189877853762849943570576978417434104404164049213324734417781450193027192880527241943239378027874070847116708076174172088977600558786317860887345560069627644764158981754330550574707330244586909253477418144852141557958843790590987246546920600553388712023391705378787758824590077216510162224246966281973565151328369686702753146287030011008364064839490641297040673210768584173740452013167716788076445913037419905548989002808269584591172655910118824043127028058243298397529970658834834043987536350395615203062564703874655793217299574605869110887354764514861355192831173353795443226550528181247011974603184562702137307644127316110048041310163658897858845610075630808152192298727181411072734879810053762355457978868923245058461775697483092933605544313778982759189856923449181181032734844705734971982793474045519986991415925504691162997001581348577956123625632732724033788671319283054488292656499854508506359879128818229268387687495031559977369666027179099064030686917398123727465606061750201523416070052062008368361778648595953135069371810892929891762380811438153559845931838537094504361864985052514692297766054675505981527779326081917915477048477218187191796684824079665182646810410694483071853676828755509946326568382669204297178601526927121435854606509387758489957330126223992496750201585917139371961419261272491837047941713922593711791077653341246986866329380572170519748558061511860695720675246062621251726621067313532612641024649493975184452117181636411621107761116086973520928200629033586874467963913912679378513033149010781811323424644433820430513192338697932731396983907977088165443660180256010752792081389797422786115247473218857441755964693775826107884928774271982578300297582549030624368376964184481143887552821060054990691998815625635696462828880750699004051460999231855719328529982380326970185458892888708916011898727789903403495138172217967793275207994767568522433319520592417297989946137260225602100066863155549770312693790348198116989986190099447492038786851124533683476213050813749809286577117084243222660153947760293590897299355720204115741356118565046403810436832011391432713497223159356702712656885926761201715626367451002549595064259563531498157758440858634459397888429486231050224483565649581590307465567883329627734099970419045065273461918041080631723707371097547021775990069395077428311942062497961282991480904460561406693849036721679983474421554326543117662006733692658192200809580333556098113089005191524313276381317920154832937317270952791987946444189915643298698121701824221377884963618673068158735265055919111813097304701039293989156605414976757241622527929944697889909470221431640393339022495254354521550768704631806717275640353541953820839961672975333755632331888770558819703129386030225385891989276852216105353174753698333007821506639476619850542812909679234384485490625455469678795091983736388382131093058816815005353343365359259621886070099356169254127512293930164232841243347471396796505834954131828479296518950872135186837931970643509284362667151994248034677046783795186310535785000209756189445015861136651370835098735992833008772370868653027046910964101774871911999479818059103009825753086931308800972020162834990786629163492439233374150954068145425568229005291344580169936806186762711218160805216564132217724475428672124103244882386403045715641979633463909324211760466233386515781801092427529389902877655792809472322886520357582212196992501435252294385996817073629223179939453478820684405532395686641399610246986936461624098156330944690330990547159503654133944861336073169142640711122257373724509156495835820971842471820493607888718139137705779978054856360130910806002830468132437341280996747673015951775861844911015918616891450687399576823316094709494724747588053791382954931138816057665117330528454946447479964300449389135877673601228742954443620655053603608719772027543846087690968953935924592438219808096721014508774116399672063718184815678459100245895021320322782948312681151021763115641144339420879710568947297510000550510293545749133106782439053716836651232775479584409957016194893571786903650618890943379355989942749145464393043453184848168024840942738441050482538170604368420876643577385110654993483890937897088928337091688286189240627689139802529449473858635606447787196669670371703320469966687912404590602036078099402311586800516556489794444843269840760255004703359203853405178060814783533724620064289792774149045282459294070828519642745950480623052445241914069265716076630648432092601412058788639143270015699448428542435961528280369642970919403889304120371911677366232379606472936099703513410209539254069934844650767380414144037967891982434526010182161280097708118490414015094356895415673911266924984320948746560064590785511326118751222569318449160948769471238919579503842310441779830822314505907281154744961933825324909160843848418745012811826357622003376995943101847003267093334488363026488536622455425938691335620128625212435508266849298376001532884309327565734532810017784886380115947894597541334000707440695752437009725530830831272689491056731569199291223629286966868410108949423991900418148311420716448873566966890376283029337181997517324901840437811480153278826468986963011950879726449449499753724984831645774968680898001892141776260846282357114142238159359484609770961739232228117920964783408596463242823874380950331781786328692380700457395075202601930054066571649406783360912898046541523028947095860481815800354007185637677012236915397537263550591693237184152527541215777947324829359941255516392904266012923895708642384721390486043463118373455568925715533939589864730353871552449750174803076073141560213271405286934674999886037764983585365024407433882515296323570859897038514994478200562381939362724166039697969601702140073714365300513990663620977438068620405270563207295953344785470820311456616357104394122148642273327450183654494067609320932332165487727413739409179629405992036746219305534555653707804752241946716608503673186106074489251528937974587194321152503688287713045914916831266797287344028327355080461066847436511913339498088433081491535340589003694705029433936097449891842934721227781866298331026348571135984328896196409959028239138282732001334239007115638549915438612292987603569793937291475895567307700660655800277330611400297107226154821890184637038047905207789518395850255046849913692831239720184618148526508711483728140275924033731659116737093169016707892365614897441474832242907263059120669586187202223601204067084708246305016326898927342036201148833551059070411075217276758008801174354363839849061175153541995359949512660023234229679527915521429826308639582152078202155686970146786262022498358470342768553047785255997169149380324617701538001493871379222724742390387069145318790784584196623461335726391792619526570510355608953520132402763042079934744162590048488696423825762896825906818470245381623727230908275342671200938399262834435086941220151553397155606655398805584754178054756632610870228987917389644113141582265185116225811010251314218347476319918866918880246841021926234469471738805200468137064236312351250413634713369597643282267298141540161024550644496196713535680958121456339959835910057301769790547386750634740600024851257091523152109999742538318150538305900197573461851544410093345057318737893725633803949563771004186769954834747557286649798453558592203869958512831929274656143992984661874634275097105107219692431285168251670575287043786849743651493348695377541306824752346570335827580813477105817136364904045768943025035642690845425385588561533444689131678441767808244316422434354289006904385956415876681228323648060033370580592132202142957238421983798823449581526909881653345099625651484978197022901886604713510527378644683236492607415869734339991333101775032460170705457135679561786140110684286463343501863509179687895404509095064529566154068395766024440848312088824273058955967417493204609706422140114113819524803500753068821150797929321069531686424818673355505439708006417455095469657662395361499816270592548658362459669574623691233183722187573256418313138784809020665281741793367089371952605482929053970512544712837310151017425523453031882158382180161340594369590227290265427866418056037169948964452034704358547196856045414746966128043209965865229073882220319250082112603505317099934814483032704073089861762652868620518179207837500658142293259647331523473993559718258717330828861524544714726341989098299343048455368603341323913339578975587282834207038778580813884775524898966713019396677962119805575853023881802951461917919173762637303088593555935054928999928418737220337247510768711447385175619655856639873862226866543444238048859483833152339310490396673727019549294976105775094665745827432508886511161621555957587179006082088661469715056493243718303349417497480591139773416898343808911744089572162639190363136804029553587735102459139382693231935410667538579910131125704807727570380197504027876601013225418069985858484840392946416881359517298878988488649532381907132613466196881845369763459096386011279696068460152540291164545914732768113306754318074803544225130125216252459179545355033861527888536456118836145090607101558010678351871791245775969585434695127875201498381778318466506588299881295461823932954689827605681857942759573065719866699699696769238775799477101989658455208467165396297442626711549617385899837867483872822509025494206350955291679304313340658374336537812220162794576966838136065004856839137959439835034916831227914388231039558721868711486209468050863762535882301570152283297906957071788684554873510798511678999948803429264785901601748997896959723561624824564949001311195618062271615344443803000713795365182272600872061313724654891164500361677499389862661964365210019020717038604887599781166532184808942468808092165560965179170071377076510277815149478222594508324832127021110610057399669619139463784833787676905105856591883387408390298920244233616574129666054524629992767152154555319950770618677061531388702695003142667392777770576370969957573136503802565417834852444995553558969256064180157356192610170527220532972377826976426734004036985758079923376945578515959249397507801428405912910775314235924478648753496252191875179014525015467201114024146480005274038287991175982833928495096277466150680562235359383874207911398539228178855086650949529506916732893730972270436845099744128913855076496060232375619141356189712492747619697817774018476502528226885550207780006567736848300534580634011834161368277349086093885903230556439444624705082558770694409649406351952994348770370572660893131779377179785290835372952095404859229858930614415793111374416167882501410409720951399761909126512925592934720132343360242636431886982238406935957158442595106848666278975295662624034029813491886585524711116907060498731429630603914309768877779647710504689695000206434921484408772474107142223693904031814304869230282596238066181092223372920295247619920565827016426910028262769926302096439677980366848087977171324787927087857164780513306102015752005661406509604902264656146324923207960463315760990327761364654441716304982876830587289038931927206308554700274964216543190945064160355766430440143909185153530595994944079148397616268299492563800685236871389273899277588340855882053470391268184775871087612734596093810170147630164204789407509049235270164545790582600256312980067829385986180115427952423034177006414537049988881268949993803749578310553992136219014453516400834206085512654374556762189194269511494472050336193779717680439568013573312417870886242113904472563912208005419965273455022936480281299877709028653702125677478449065556599889871816597565687160530268721397586338337850596027757142610533180349890102376251383857179736454940461602415831890253298455198635718379934230301632170696471253138462701521465579986324697440602256854114988843080504689018761905543985188685045382347404859144018339852316484490233920927969438946855310684720080590739094331162155110018793633783052126377843285841205608036517768714473314120022453069730306157419238295201200285367993226846326487926297625318348891584799986992389423989032216837133598093472574941700580209553021430325435426390032461330798928698578947972631917418378277185160184356757317241584941890644105958042919645624331654599143900517482001464291003405665179355587244568135858973707442413431487087857204854432603643930209459455880557448740614466433718519988509005580672045470805207957816066594447844998197190420039823922951479201936421796575608247439335386798120523472862374451460692572002383603186369690122675559658758652158057946677768591669651591352602193857431613711191432854524441143051884155939298788523121217131768123770496707244192251452308203437793736153461993998461670404976192756079876666990588852778199146711917684484358513311717047927229551450756366188808163202194095036495420612011373871398590716841153394721218863348065854619430380792675569694570001324592518001224401708178148225323695863147939474259159170014883271964988935650940159238776209216116857637948096261359903001177542292418244078087448573615895253771275559247810821404708646662067040500931259329511075652176880415945350228469333523575690129374641930242993667103173325204819895110161254121353480802426225163522456499795966469510092155605315838268084226615792836678714948581892723775804329141604075602003658401195776828458869790526749947593124005882680209917859975106107252717033712269182060338482590673161488158692941939112416908138887238049268851816617730644959748464576111027756155266050508088279116825460016290893488324718093858146418910500882179652217138385125556721754994269299203552140506381723410075567627794121826562385298794245843911327718738176003729979143285686392089356706345741069976092210861187209275503897268773040510612890062819749400659195867972277910861067917185317146721268822004269799058668614531086260637599972602713040622741565833769942774362823898260110911293920357316755866566506862192846200537766955346298568004674648027923207593457177012017259724853712634629197289551937932348062420863707559985115315420351394295643224512073830461982426993312673028785012450744355815793552461949616687177033307105429697219863146270511343777045884542385842834809171177667791222247022428039038115158645688214592488302788206148705303485549322920855465745141342274694098767209902227999626253601609749816092601531162802250330010081124299127494907246257028633775703839698103466581419988533095094663915584652597404287581046922084376020209430444235510226072082559658582828544249387291347683682760604488614858225046587398436009935243664977441371788300783647498697327678384531416216454721531655036463283360397098023962705016668617753278658564973498611833570176590916239066105743454697425049668672178193814515862208642165026151484947451739345306949847034661372328969958942287006208303161359877215159953169507928570922351273078119985420148258918828994136965673228226617673686843145610580901502560923484190762260176327684403347326573259080194528794714731728220778179435197863739452413352989708714603790411591283241298169443174964233372639974762532432863629470557657474633126652419638796948472696720705841983501759808358455432380389852546902720401688728142320965302543069956789304725765921566393630907753503680472672206949002891700568081073749401639620002135120813663002795734667221113889896368382450172014166200120046646162749908200386359037557772129500198508915941734081243888927243108898210434871636459118090835234416992111215801292879323532016684319707632596065689121078139597915591665248377185464420179895311768367799275933842152524690388069887535229729841377128290356100842827905006964666258648184604930740144889497726990237179309524158295396713776712577979559562779331122610701980124538368081836228759304625832618200974630153749534063818175385958421713503551645130407409899683686233625465729060680784031427066438345682320952255319707659991930226209448479704489490538526951167090625589993972794652847819258782656399036224803759148861912437409454838515780721895687093186929172980318831921901089306054048925421260425829257257875349285783362524172953038070491906078733669872054279278303772106896382262740635165894231668560149805067115385679431597350015971577605728841561075991024517701965770322472416299134941655390914070571466644387732131211598491180918420461645541197689433355942329554543481779963080904337642099257487773687052713681358146912975341201565334655358748540768564137253533001499798221606308982156473752570352692567601855524671562561045750740716704775376106253685942778871491649303703896060161123211102022045842618536459314218994897465442326432109442466956374427828625610185918449050430192912950160836696798631628497374711257805567411320801922623950283607571858205912857171728226493898262029920966949066443355905960004441134175045171591436262032156265364815386623901950521663384172886980227329829871599900034253462979491082319048910144139670166364777429652181717908700515449121677587113293787945376031448460988669753094963754578481909880063720771491546830422764641474085725396996064315029534704970966464776928337908982881547855680211118010385813489291119468640429171204426424932829572830249809201195290827621978500442058618841721765454388481636632274484301151416195155208144799841476602661257209668270243451107242129540052689836044057034341470435928857341607377679946076155235897274246018141553288694466845249146723674878544401560311196057333634320510644343358923277904287673627721476878008705710455723338470540478143682193571723337959302328248307843955576505108133900549492994832461511846111216664516999089393267098918840782218648025392144964770085484323651311850673107584188512500562133460525735365661951240097007027152989491804989482477392877034187339517449241131147908438992585816902000689109526557941114940969253711849733985543777415724811492109083950557935933970610256929778638152771142337796751559807076800549894811678066857503717046959892046229737588441214588809517962269152770957144159445108964692178448179469503660837351055397688404622530399786812569772219749083516747373977102478466246805729508608315381950568297823028273028917641430825153673340653590172480973725216906136026419695229861417626272793050682775618043860098790158162015786753990442882964486199847760837427813127084217989310068107818877073988633649432915480318327403173681760825923724478668437742436966907385430225095421737040825011900563854210731668373012487658289483100572628603949989333147877491101104644609232273808611344433888558696566403842434089771362663599524109849283392055407342107492706571589861769340208423102900754864326604755000814637830435316192976891544496513320050164839439875162260137760684415714092886050649021799555604848251801990587545650908091007172350925136507224399297133791941175147854402582500830823047979212991221900941055097738613559774027358587935164326229073742190553839523739123916861898392206851931890224339251104737313571868950031339962314150134443717201533511192140360638123165315907917745105905469587554519186893787950836270086657680216775012319930773462900064051152458953407633194150620921174746884822715069012142095721404635699624458680263657417873866381298130748184488268229737993292023850635165370180826612888322651074706866323465014827196781628471801199076434601889320657080964331794788737156958549111302521620076415341451544394829535547923220007670914576725160509360246541766462570777717574937034971703547575494884705903243381742264265700023464198380922598341205126687817588677980939294246101194031678347564621036868695935909870990689785082939738024449341989586812852769721478319900628064195579221524337147739122974543727856470505797647222445374871100109191338922637004009845335703169029883984095454600463881837531366564443591131437391998483287626313229178306619343727724630649975715422029121463065467316930275395369505057895849864517507177977668556503932199525707078975541021284441988531536810467297713673101379589288389696584543185650364818764698934875699601435255288111788544199442228530416720544817124862671318040406559619116540807600929813058668021688342803227749289084274878325005657297878138577784516389490551350432396873090085289017085153294526155325740830618734409697461581578356620298076207498668086329363873050366094944698501729829113397587212159956217956257438611037054414062009785429921120277928640893353069095935083069027672360733404536629758161344233883790729199210199429920570220125536814915995350743127931674403953478490788939273216585967230234980565131377369934483528814376890707273775349021505354043374484603659476103422641784316212098478331763849080261218663161069337989554437897489989718185744120743248498557337866440590948669474034522463163331027102742117658267750674434340348371506123340987908583473351119055236594229931265953535045307295874889357074315997875965956995761692591286540496374596922874382987734237764217371584969655861929910637659539202860703771457097972576810577296306371270777372518573254634438118033624372857865433900643793855939907898299833764320021649931839582109720499418345101216632969825241262079124686101710176303513967649928752679145473239165204967041635196972978055690553328230649275522495189806280992098621120534405787765791742870802904278299973979101612006204572591491251787546053569730244288639289526699726808257897946674787388142999937580672381498151478834907435494248011114424654338822982121044466631215026840762897372119099456305605544789545455937426716700571043548401402713750537013239735271630531645183836159702342887735656971396805882693331384097473845602399968370728552699811477131213402480475857234627574994038914661028381842613881214271591771373008498728407289155554739037973055020204269450364419675513476526590270431306547900881292991526469703545762591400126663746035638591855663920463735271550086301413587090612994938642519293688076575638676563209115955015979919731955199063653291376283163189244322971463631994537007741033251425536668261365944416956384265148258239209665659866786851399788210700044577223461974612382005643755290708968632307604118225758848481945673773261159015375118553536513785888000833614573525816022126832157110266447837287265853793788547455383148713164226528105341682216365166170497244987954622135997896079975467620388906005527997040760787944563804657798692604665517235673014738599722728417849634198082104917075531693863892963939634942788978573822088930819009099155931959670853101121175382586902731110085800118849672058056677632305834156948427591465626750043029466770377229785571761942493372980082113077655504632939286721132370066566214916615173846974496439892366798037791364818583973204339958386500460232405628498776507517677425100084677629761657381848573903875017300181402365105512268041271548810788006746058073827554261343977133736566596240713008711546739659169298910622376164813550313697392752568178518605786452476218869710076268172422424865159915618146818874847904479665724578939470236719801060999861894437384585967846741903434285072926389341449167235398592496157784685394434741821225268295822071111781007693696728214867650912532358430652522106395413835413290114498956023888600487113390308390321184998310981923111997261699842630004368848017096837164501188738822877807220429451879309206807529259114993931565029079096245152103343141829265286491609750748737164112304216097644535869767353364576270059847135754734471454626122129332368350739451828317474508218176801254731229058329041318844386354304214888560624419028440149940332272525276823422971612167749158184950699656792692925771252517550073842706272206734776493261669770492394913786967677228852703016143558522756755403912139678797451443029952060420528199383742571566154228454878298164196698118996146032125746424880639126450853715860321401203305144945957189370610452474577823487641373043952579949247924820725957419628522585553934170559529266469184333401453054741312805893712277554045959637997913447940637465564560907842875775040299983173071711209936523758477603802739612494715544648128620530200957957868377599783576796059861036114570217711477120412235992325944147954537957134103357299997113939107998718305484187601687862209622078448263207812110419548378109153190472627648856271679333974402650466673557410468156348176160128402241119193790168296810252751268428009438422805606049186591196136812774418067745121585947691839232750101421482818303979395844728215865658398723863981796144235777552216539727623797973147950894282324338800883600124149667769752995190891688882205466883904280404499327738900244017203789572224544540906188779024769693064433214761653876928642587035198335803475158541347482058414496501005263157980554475391813952837087915528091295339519767676675274454822618657880397391829004012245098979509483433696990364860379390789378984856144705985617328727430608201167772105928429922204058598361272646053586603321648957879824950731252676725802485544087092414998645658131718330240346044085524137537506733169472541688742749657459448527120020327689813037758991183131122989231166471778217163900059937306939828163508739801651727424845069450375428582682972806981740335837283407644764664203866210303560559673064682258563075734936199494099468837825352553884946547136240683437944109882517252510230155511611589878664452901017220824477885057880170961675772849704258324892197422793206831064729918652849531926292208902808804358232495355788221800109471080525865308598426446863236196805645339349726550338026540787946122110765227403231403840272396920357797552326509849356708891704120028595029608753412347772224523821158225976260830898075311036662323671942728888794323699360359571011001797021068186097722610870239885011492842394015837277352680935301242874792993194411730759559884309198430705335924864552863524675544500369969612936281889998984666549620915407925929622168163408565241082643210063841369534727367493505249790693828377380951479385846147583012722575760510252814146274336032609195621191959596799829084633935026162001567576510659001591735742454470823865304904957077184417329841784085576887256551155524064304538817071298354027032652454551376578391727107339428820616622268228466157279739920431499154389696825216074354877027391802799642319428494398033487952277450662828780060623147491161684653561988751845769180665979010519290373411487602332787646540521849844534817314531578973753091826518191690165566859299005151882430371252584774589446755400546830593774207547550187738917238967098084404054772686942527904628367984483013761231874720920479256488032747080511571206609367690079917916993044817381424581540414754689203018668281481559560920935394062013477899984748053927957805699314296364385497130570649257656313698584417362063542799185644306522314190150779029938614819124317525966848472153215999448226457349194165850215534230174786284804610521287077234255510329997975719888558980635271318718106345398242828983054839213446450987468820339774037502235437892938576596597748851585671358561434193319858930478072449692194724538477712340441360135838917266437318657074858937505925019946476920092700080419130250783978737010118751609574480771245183529417155528480209018935674812903566284439947394563859631551995952259732918658635643250361302554311313849316479747864183926653294550233250856729405101509564970908873467699942885198005045031036871247745602468817084667224500818049921270580847265706421899443394510210163935953884085036108735743111638198508820844574345599301527834847306974650510403765332653609640251030465914206963295068233478145967041079707810306387957768946197889174046967415760405089605810624578946320573483753517418730013277214815830717913091823006221522373838622687702970772334572776851233089018556061041174157779726803077341031060658501096592627535038095390152543354083902431518335918306727510244842440997839965178314969219058887074553765277454450100233220466872397761235989558692779717809841782224833818113264391384144120941099019171185005295559539692327583694339012622717351186627455240764528912348316515456320584662523923231020137259468536572840782028962651211250574558550326341494433404126175370806972960554371264248923220277853903659377341835436324403285797748778359512739330558078875443529334964692829100485605487234536187134299570911011166273154717804196492723647747187689009287868408343237271959022876690682355019386631098599615719941897691100298386847937235022559741640683808371559699967812845183596551835453366313447849516400633633139715495964310568608645081190810323572396736392222242140891994001613048172648517001619927735782764113282670053562374225548832682245358042196778608708290062819147523916049312156786706582580804869420876842970142684122009568076346082360753418346114459433823342548013150609604948345165034687306046471154397675254176643229252270751002780947687615920580928175412239880211709570408334990354098462530174119630152224393687973970645721106276392839134635048633171366578319375618730860709939295702837502097119797686630623891921549254649663294440871574665034488161377486646470459289334116701573173772748396644897971062701605156134833463671089348124167036822662167949803776207925905839060693265726115091273277988537281009483180561558582186900137584469849554188075887877064953992873287224487598905760015059836962396677236949765183353897932903411526603499058161770991420531362004629372844292891700317072084555712064957955061248395963559799585075401680908628058813034772461103084364013090035545863161384949048351439179114152180577860828381838821474861402216125957772919936099708640658032335447093991249705328504591875763865321412107539787535135845079083727352431466016458562976481443822403479734525284906533973404127227400423161419240586250640937496307263889988819696286853958813372510378024369871904124639853248188423569148110152647747333496238424441915717115486919522037830010981215175732710521933041704167036539569005420904142662679731566737548983807536781635810840865268515717257509619134619227854830687001676168000659244720450790794267443343184853428970840865942781267749693352513952391486268318129411406847140810316007759567499956569305899618064675076287864264689534044031043070823741197542819375392022714644865456606230584534462091236568538347364030351129635470274596568616098230402522737831917787229922842805493292596563616123449568118345157411777998137345395191924612319608268414405902757361011988647385350442349792657549104537830803934572574367449215003489195194229778012439604085046572141489529506289128444271156521514290995630385643215179542500213032104587446603599643554319928543937882752677288010028537959529308420358598928626034266131551592727683826744568967247349297089239863430880890655546901758595050667598089552708605568585424856878931037380253598704862148058307865549405939847476188779189281717484698530185266745113850591420869078719730756473838172440647764569385616378362707332540296057717824605676441918577111915233468375303130772979673146391331935875938750867421345903817237765716750583390915526801304503652443601765189362244265554412925195119749241872128945997051270924486840235386988593114305683857582428187075052783521722564931054748644270706051652934364524738050255415968735017636951275445946473261994888043278612082522586621832936989668066628869919932775324469852677475213923370015207723666848426415725665312429775630877352909397137201410692254852107398133858372483324118385753069856727546823151452597584046943119304118816690281589709489319064590438863571994009340787735034811964856472634736231019010637511332833875824553324069894146204809264073640477540147748291197849868126002746236958126254021604529617080015633917645597334407578003955544655184066999662769103231017636385517452534752094534025017900105823379136665935892310181249010998640319380226441964513517342433800536998736558718926165763660550046889556571953674028429685889128530622554131017768273042181452267906365944677963589189507047876848045945624367897580810239148503117782618738847478278168872742505512783822560745682067053101989205910567794102075298386539690079384343604525626380819671664653961633003929752039550929259152393192996504410160303745382990994603542910851896118522528069562317452194229630573129412326042825516617038710986996769042151229655894312968125172882139455750519817124820596240881708335325706900514469980167229324165919384024146177987280155810637479400185844525878869362932773068569641502617673286535886556045028165193455721611060919071089413544101757270152951601141862105005840738842713708872565790530894178731829716544016521386023033745079316104552308604125451750556786858186597174167795323331245011840541894645232440808369135293732278617502335972737473807996773505191240428775872717692782178815853280112664145310409696996886534961666789238356603355224673471935522904228957002865914025673533977295732441680916316575498026928885372391231858911621638933212002090587684921859938710415674472928705859337692295627352510973126764212591330569465638250277681335260738441653634415551038703649920525784750594758068859443217553634339080241500111497581697079765161792821330291589544481272687150081239600318549183273409795590170062385944795918292300366658039730761617825409947726501473668995729296576358091408302246874570198809752938899461342778079161998952358172201518837946953793464193383581057172468663381921173956433583509944008369632688932792390773800382355466387943071985071082860954262180596771713519770517914551512375526724942566969695500068915464651030113689865063835535685643167756807791169665124259349088024007116398290288484737210383452021656643108231839426971119571594130612876663573544919242201007280887270891149558076363457373854750372095259822143514700555435606889709496737648096276664199631379667874536339628898142081007984747643437501226055938045283852782428937616113321850173478437678362458366308504524905527478207909064146677570546348657247641665825432829021826372556735084485668212359664921111412590297200343759420181342686006601362742381075628699960240374090463403689992681211906306796505757269843972164906060628252523420395367036265823541750525343531249472995332104374943807914975444948843788243912407590726700256240849887126694935365822214617669791218685375276926685462564523479143771367294362557885417165898679941169180161079262998161070001048758652607744635515717287033070271977927118641094977272005414622120345071559460350206988242598266778994042718768764428807639390593884574231932697485319744646382397243664838415155826458744686507846354071479557467610098647451074931410818788108594347403037068938617186603386998558478750238840250916063976579474839218901445124721680982530788640337654526116295700119495859083507764767233854347291468608609029771653423334509363771532282211225577061646173520364343142285599614137610377172603553507472334532418391985653322303311866551636636820534604329752323952384630750077584676900722062312436927372929312598941653177019295116026486126561496802968393964754268296557385536647451805416127366947970286772458066670908739415280556379434425322611579738240898852511753639421217259968292615365613100849360543476797720161271478609444155446144077593759445943281440155568256542422322019133664922670738955692168179642604488927191389399666244668785980842051044482855264206347852541689141176169321326273029925361499553966918625220514835492387699760780639931907653603128058544933326803466192828231512940697098264396608032275779504808680524199079814014466710953813398145315317046210211740904974501984385320116184927917515396634677669984421602756705025048876633506700721368197170632019994834645192714343050256097963148088636604109961598404867583619757945572262772621428102628168061384831207272356948479005501290866930024582419067638697079074911294942158071229490263181076827111206632879813534090992861541158773275008975934344739093140378238975933739701212495204482096166093941684218003265319835166762105509609440014355248961653046813509670203340433412778523101192110927645578413240949383379589663848266468296403739900433030925456636105110039325369079703175409729760518548962077846928212904129067416363628545136575840232210678046836229040746317821651433337713305405699437875118656029793481331230534077591793149518877917902612817181898979762479669802125047370793893654528283340516576938442388265319863987156421830727652265392038613286545469775783838327985221543878440783864420005879474634402945697528371552503507424199940402505378958657651575096173450055656342463073729203399271578034276817892730236458693136499520134481223502928831326653512091926609593724118746747678924185162299373356064089054734307220882913389728032269339799089260777789327652458907959416465800771170945309677425433777602902145155553374515925331222981482943786128569169079730040377633024142057816944648062069056556088078830406829795098526495960541219607971399849837430232991513559591394201838269905659476153862184508135518616842099276563142019614474361917646178525211215433912013558057643432167477669478571443955851536737000359692853195088456546325203593329882812264519415014955279575551227896916905259659867394311300727615686084528646123078094777010187919968949298572148780369043501772303843542261370906288088993829551514145944684415890860136698946975332550889367115853220837999678961965366932254119532882890807713280190066441322769275485908426243652241615296869988346240199962409143046571754363875417071481825078286171971501705140534143911929828740788968968534788543702293025789814881201257289258621175203493865396542280244411915302825579283904143198979572303766398024063890924431064492203569725980649500346793261307191851316584878610659963191258602565573908484507585422901543851282095392571938631456867980837755634327280986427917063236725523602477571979785804103470128612896557811295046332812653187670339001210674398671903324572896248196016252941972485976345654390589603743800155331551038999589983876928378424990790342796058507407445076598647192423304817772412877456069034353635865189895117851746167127843285747689881891284189699041899222589028169932930428530915096964296793953842903044721847802387541566932375558437972569771988309230833154744472700975598060535977755404842691998343827531070116822338627590427265415591394055309695913424152626301567521058994564617531486513994473516233853354806297222116457929758158465426095706516206828126927875302644523372876256807627430436336840136654422593786073493394881738958256943541543554170624913192955491131262194515700883940868037537279083465057505542318562200468301365562468964111076027161249837378810474657152475099897046896983676223188442998653947776423002572050845378147686855775554812675400029039645398979662803298125555609858562467848108093606397928469762935973192887171855591649397293773620744117967588056773828222301812212075634049458117535267083284849227378609776145163380246388652633985392171883846103299679251256903203839136869251318866971317446918907346075681579969194079407484066042982995337891658629206317817931406840603115181933808316028301724958069152363373828289874596895585992340179826786691046456420033195644691138823267590035551942159456403525884508548031370401905772648963078377366933159518298847160916520277380491652642547004900816962820310220758664425200146988709754363245316225325432894491123647827167069619184025821292362044097182169591279121631908241445416786269404034282033510410718413525230440672584975975132418402035814886911354868446462957853061940458013698559615633217556687050547325425824864777469194088152287090367860708227542931098717016433917258175121868105433130496838847358261945641879572833965542845226887124931320284067927157548462201954505079726744191614612246827022390693652380505171057763742041268940581944766112485344519279962601277656710441159361612937541900626268948716457552254930911244188608704810437443868265957811849725264772433685381431032162250655488099856182237814441721929936363346145532953260047807014977721740509787291612486849774640381819893275372953660003766976893318751463229356611003940985135952954320528277843444746433537304044369381483623871710709673270677894090361551458116791072050333739616186396815958327459242976838531140291946233538599812803466889916712045274726754440055899624227041779155142413988192524764151654475380071900088906608928285468952511061487751176784486597589680072324423037876097561457383357821027048558399434909843642516607225645254050855806300752175730450444002060627142765853900895648277225685160889700066202871916766505302905424790989898371519722258699850192049308441739258894591528598674152683932395915086306620525164924521074165515204900037881879188368438735667819113800583452443335812436120604855555050110363629146004488959048957351969523727602971018489054566953626392098682812500481910485323769872021568531983940300536744485942813829283734400937712782697113956934855382188540894688121138469681281299857002766761731351358314398612499400566857360311466725146216970906944868269414977357610440757921192393017117536065562415433825650782132760179450522117727776690633991144698538269003017553015133924031948928226122272775523576215444627446724365238988056042548887524906329340178574648925883076221321182798588891795118399564839616652110926308682373008314548256137601188868835795261305082762725216144598850513578769852622707842759275915564321436830492142857864703276972668063391632071737260557401860735154678156079523537542590545568650108825010993332648018103825299137882975928717503165862196043599806010240339188728314171916786103432163136929215966788868584949459833991444455034857861974407843463119250591454067455491112659248959543678457974503832453804334368339639098432586210930569806357599376163530238855945155320710459581455562499621287043191795243243678522168720351321292455890532648212558542199186166608843234161605789842972077340052893708879134181038925219122099396328656144815745230547564766777349086801606392085982985905063479915050250350928003125265273993642483613000370384749913597291993697860410440043824452410731187402057968372654691437038000723307260141475813488693422435122537676858950894816979412473090142103676171441361144307684223811650767051006766766770324688166029276485207924165696569411205955653715426721966872440784499573696307173004827639545820710677835291268238219451738413977476621977608138225358524296442596455603320749980055537005617084641444652147002526374868557690396586445264830211824629277150241509527607115652806578085501573052314926685346036218623179000326369679045969530737190708613845583048088788894374226447957411441118345991570076188119301616958700083286886877457950373532777222026480567001156575670803719493181433822715767552821652276898811303008726458923708110767148695127438781905230364132116947096621060035681456163750591693994597858131546124853362794297391903655793500255604056496801870331089521597132295195822101453047768318459122913189395014533001018564435112285240504487283945562887676574829912433006405061977020243490545564158655561898174567081433010001606545215680096190645645272596753519757726354568145829460404406566555487208859012941404091264270617020660175790196866255810879430733945364227628340649231241346772779618900094768824532646389231138654344785479294277781824885759278394129536569981213781385694949940851520400594880702670488340152790287499594625415242530317500897740528205975834785863858953022354931387088012409573922058613464180407790954512023177592761348292398137694375257244894095868658226463575627832595841375919325457990738089164435562634524476590400563094800078365081582083336773164653848896212457138698014665633539703486537221979791799775541145074116734628952414386709728947863589343941658357743301467247133948749652786492547683345818144108036469778810423327237725558974056717462243266495451096011703948560857927924265305354251151966139464572328538391287681264991273299219233945338907440604117153673619679735144647583729633087972585152926095105906968268349212682027848230574273103366009421693466824279446415935761106855930765207833153800260530466255089680614278380134052220710864096204505613892743629102016881537716700622477465140078595392752814314027765779406320461201413640978493952226609942688541734147339134580761730460418313960670358070174135247514984157607050443163165243136908091483429644041826621664072555209257833985653955732293514390851521028707290059088256995643567178470032004228959400283714936727560756877568268442214576217205291091374675696454450187205560348150605842512016864615349033046951978570871683967519173939615193685641733885741895513196873289493698456267139170632934430814134537158728619303607972040638313029578463492439862050644625918320788015381819461074163741610901661066025560287699697557031139944162515034063874125690037493604836520876146478057641550409706509599842260967668459923006573792365890117692802796261172725952471601599528167424295819578625286063209090384324207358322984410609253500768389940862490038397462443819838660896885360238544149519205375312358827650170890842077800496874712246156506063560177762039523886496339879432913282261062359229735357480053514863684006531165243497221566341434817111458545472248765492471721156241325919089295354463739787425426614580802093615964644842155892211269112104570046322547582295196289037362768704525932910087560402755904656448973419031122784729212452103979733616052518740572880435229711355555853614270394519699290471338275146340818992567379097713788026471844750513600276999402609584614261382387517037422614591149029045841631824472769415381761078805194430629804832592154941852644037186940011605001235835265782037459717445667548813965043106661922804151763008235395819901993053162448843709509340210593054242147046257867648268077113067271002318736471046262591643595689417460725371133346037159221119501811625992871547898497330307481164263427515034804536801465662322348737308327337497932597916539632135055071299939532969718137449024709099254828419269161520724493944448625394713646730461749426142559567946429884280315740284307049233606483986047233963496025235301614669102181859310451602697875090856878940112508330419529231887091346887968991683699380090650330465155441195829585216193121935286659231562425225327626172669561176007655272021897136254177163211602483003947314898479240963252888594550848650995416562047758407584876194592505883612538163118772876701504062853561661688271105651589737618166701322926564692574195117144711428366017884565523883911141940096647963006096254915892088625960623257783055982729446330845980157704034341704478061671836562490728177365470861020656099903142895605064952800202118403773531350540801460514766495746727111171500359732636125577392044586739985924364562262775943075710010621071174057111554869051128518367991908896131365896616550195110951805477101434024820390745026978549434211832439465172967065744909957251923599368235312917925918539313994593676454078288556584764624765285261798669482379109195907878743057821791795196605319343849244364771730361874183414689258548140703238757882869869454351208582254024366297510333701641027819560009415611551764771252422686204569878320301135259980809734572524391987782443303574379255404827188645683121886897922562270481614647634173794063037056420456880601535013023393930285381407573323302130962103066028200251723147453756752312766078814065461383219899238761732862633274597564061284947192809205382219239112915254349831786256811092368261729605144534225242842007949575031949105223786074236761882780277507859965195269630955463947342584779133105326382361280974057037572950399949963848702286891155631116855916982992957098346041702096370338282707227848812532284559654289734630652938833400305897715289303850996229000145037472203559668799912281172820500796119123075697285942384618942247771857845328244981007400491563347640951236338580940114807493442154893462497268651455943617659803491718543616664122360525107690217067617194782899338192483130959803523640906775893034430517768286592825662724144264822381952010648282348633980251334720925792751353281123262167126464866960612447871066559432267534832620549045842195375810363850902809938612068175397644798612028061733661643316284326622342853706367187558865805349774165097444720700940085878114061397620522619005234508772939018765382791307319576883236952456861991197211766945976062142678491315865289875482356466880721469282844538346690724757106940145390793236182539321026801198560831212837829752313516504764764027776131703855743504728788887560043211460698610966054755915299922731042310260055364325776921255549649028371229198034566398053969741990161770007689692393069030981042155190562011262392566711720413433532954003798659207920340927482970360990839501037999760572785251465778191385314586015541038618825076044590580870394676754253795514872177662655236290768302064317776693709037949112603568838597595100672353027356305123821340643044209502149332298596452611209072316986550880067172132937081472400470191875624089583227620592305460826345186812391861123978317361165083859129259468234786949719405661559075437356877506096243959290097491580278816815075319888478765279897914010836021432390667317647769916741944623398523106427058546607652205439066880384141009449780217878943615715697010782107394675276501802755395118352147674462814145853644175805737796105544624985092923111329705905753320368272302657200096327235146823967200723535305843739093204530392225371628579617759777725968274274068560590671474836005330226612946006280644903396033460406635442674834632861894632285886759267539697686601109688667075666091348530844429071943734775088101578956308663886784339994873116047345234515869579684390022494832192386402387609969865911802726875484982778794061296383583287875556290727091260147502743514166044318374858597420510245104026538256184042385616585682941280452046337949010180387054023139333887251896650862785338724473772667506900653108814643295514025034538430344391086745821295213669331470910817779678878890616999537300743721951030050931790705626938257622074727241611463196207757976314714012164001407784508724315913932459815218747088978832932707111615773523814816478752984110786743030517492603173025548890766655206519320339473650030961970688493359659027378116906045566229859048692701153264353033838990716972963985728942734178566780745576048654895635552960439278271588871219388925401763634330824783800110539146226514775784582600675082388051598827439271033499702031864960440556842525335505588671187148447797797317209889488824655628062445766737071066932230939661042145266320662832425956654076092777420605700179093441029537413613249110336127230383598614447431403068794866990537335428752553604042339214258946819198822489960464526615384273315570076581280304823486547871047353294599821738125159628177679463005443751757491246837900301870669574090671485407763638217391086246865512516114325609716529941418704720989906254038438624852806463845567595592051169663117377331399873450615772862926493344067706085766558827155976580313701328082904154448062791098821190960662382885038635597131305707978704270164238219415523086587721115785809298089316217322077367843050695058510680868157493113283800533784058941077780391979807451436126076241060759565776448542450614213367005967213249336731721114800308870275507138988750209543496595635580552584774675886594393711096756338441602360187160970381288284143440258697003287813611419777837198947564457699116102998911523202391053021512078676510471873144512289541937640573438495593819409372356039261656959443860015017217422610738723335772186930820303154793626952187087249549107188747564679506245682165144998204210284739411918926045320443362895349000599681674797697385877132198063125104949413570412968771345693567240405622705341333610500675683794513126203568980351358651028082909890079478025458826023728568649819135461868157103408968578401531335257198073333415043521839452538197954308717928218101850460913782420666306402712741965292166203825016942876570910226592173418004655729295312256459749621883787626300295851567135831613746196901318003382798992925627494792177140469817359954077660784180350164649387882612551953245810262356781530926022195510645167533330737203577693979695698437967304599479394263167909808585366831863549695925006824644416300874320923050369961754175614011721283151607722926334749539776142545942275486616789083993699497823961417467402323169588331703746847917755949533349000024892662326632237480852192291088694132937712323127209388444064855313942168221372502154529345267646878477931311499286583380343988374348216512917072625140416765065106984910540946475553511565109764895416719642116302736680407716447125670481268047683155581402453650907679630746975138134538070593828077998777231686062517108021967449119151465101211026006310733571629805700591305353125285511752840492356682791577381698197910407507933133955002478070812909661399945067959858321326953589599117012022524362148331345574064859279810965867888684532970221561245391107238127141303996952703954167531760759283170950481772333779643178668102839159098192012717602239582441011191976251366113745275080983554552998142145951175221744300401397055480207737303806534063026508014749647470757611742156230916736801465023997341260263184294949970892853643995620745021181671299514764943140452214010903559508337492981633159129835301921125470789042751664298550536457067945343207033974095251951702517391261473084952265257251746517140689938651266662546718966746360941308245198330173573671494458942111249402618119265244234030885928171562835572324919082698235311852657571209877521562556412421045406616759302522319305621411142810665581828987686129254194711247282699993654362180102338805325507566352619907991099786074932130611495489697167357157822531238031223016302872342925208784329099656718851769102981049957378665817675576620991929849145753848505444826217577480430100271294554328303478653586944822615427836767897536410887390713354884211336385638306308017709688876870279623911045782291587253328731312452168170622475129345395659712447427258296933939022026498605172023154725580628603420624709943188906315134229383971946148101455981349830588093582228151861500863866500609280823204305347479369486723102862082282338228422807679729031862337768060799013804498723101688403263571071307320064356510044279802300616781758979887697870393248026334635394984760911129229521638441032133159373750012665616602396173412321323051856949837841353229971496379271621693325250272681199800941507155126582851498663163640770800883246284788384109883135756954563486553558812888766961592459923760582990797549449203165893421241051873918062758208014369764817006608147037412278542584939146966666894778392270543778498445309294087517283917586575751523208548929699027124355782193132563057872772672701933946644534695969347839647111552907524364969831499794935741677523752000454963761110049799371612848796924834160014160607633519745499909569595941428151553607449582113513794999431892514991492338235798095583834163059983580610611071976952363833808752860533785849137677573564197326991723031282500618795290801199749619799567763230161572810402082742248007360673230734826870753687738128765118063877649516807449197789563084568150176553521817595013391961227622584468972683760169385759574982546254321280159897875465941582058879023335350465124007652610859468656185485993776174419670700909230414659269612389779847657195127667124368542162075510143812350749921651510593995159860938305247132348474060611392017987035745656790317976231896496085121528146541877762599327578237409473603881170895877864493864551981065388702274188250196257502069595663778383934022429448597683781140093269050190653990006779565395814368362487787509406537377068474251862914095415983555346899829515003721805721798200515196991667352132333861114358722970890752630128602516124768923909247409176062843610553935249245532991404228708145832788301535155561790586339252406880554070901507284022001987813561021085758049869380411407614890008109456432787754426276169998196104569755232463932583109423789708205686734309858411775792404398242392313493659718800651979909812181964610021402523067841301467260469892698972447847940664204126459598149469112562745431139492002887288024813096735173125438579411141506423637143439728842761169457740248143542169155963088383937274812822825575003209883341832236696219711832086888946403059985395411703697288858523722936836058134358262627101654099359167288389571423422734767018604896529531928726174273957498782199648951458774856976623758764498499409772675516647082861293955663778191858529070295840663074143757955479626326098622958722293480252831640301380139546432144459545362291642606696189198216321481583494547149177352634022936522893375839907911934312439448400259623144446616283690249820442220749738462668958434939554953887975298403249858281085553249407043077486953982819592013696232123265550351889474380942109341917038861656264373662693258853017215113781590234771153838808383290172040338360463808254190697651505601424698928902067818650594013346936071987234717105602344744722857175369145395713606586352273021866388468581998042997961525694513860873857602669128831520365144575704814581004058089049612628095476583060262722864239976520468364727704723390815898988763728513394535605040481769719543597739475795927138866029174727281233524721823863373950808404947913992224622831544388711474240835887882953779596498824252021689607245063646431068570603367941542468998421523873988608986361697505191998008822643556958626031286319566218546084603743641757359062411502748124576370156363094311944979103579665243165878011895074875106689374096884875899234241896359077073196714678909651379215565875862325545675057076116847639670897436005757386963214571213963530299730895300033244468861406595736056211465476411821291094742141047157053878805745070140610239325696838134766812062898408757797254129762561220444293512110483043948679855553194839214508140370213558601383657971478712348681267970792006671798444375153074137669760143895040806454808756577064954890559258636911801411404005742732711169500715940771062340151970281994393913095535721630548142987326348159772567315694951306355636831728733309689731439491451470787597140880516379448484379000145987046742711111155583137065464030743112516531307411851728742528109243271742091536121992441853741678604691249406225007313484955829752954472779651129686409829319121010730572759365392476942910578589195388463664359616010825703946987745405229196108334437581222921590289291505563980477955974306165231555131856191343838355370794105163901143372851268835211022081464513595752041579088196345860431055800899610823091094360214495590701598346069960390188649212536390483184598517172722897342573995964444075125818522308418529817010647640808682393235291115252780924583900261963893989593572296602978967673880432817036113026066998261374006399130933635186188279824267922552900944177998861769919493097252130292141457541587317511971164930885661374047991262266289491204748465467664937210474541064590001254055729133345906465890032727960997704996409317566782432466487216790391491718307187051195129816932532270403062435063252130909700451853937677919286361997051728002311926517541792811628461090297711851427294979579386611915058777771723389743501507011801256021053032456133664329233352104043283453383346097833352792911893430942844423453701852091669203021403276199481449510977955958209204222951107728196625993432005916546352933558171345309374378505821384911174065627501822511854377719824794864041100294133394293731095953163335588843337147691731309127636731407735272051229474666634829097410157397921937198092365222414956375531863819579050164975064363959253606808157453008500116415555896675890555122922709639742314618681762396436503310722156552921080953565346710906427067754965620646471165845350149060398299038064340229836328302325527981790678519690931193257278971109156158810314033224968188147547227845915533636490198741846729637504158942697234493106032410683226874257030285288439698792832187171413002402444900458897171208639684024206094636792433909289660508814213006441475913278898935300013039067192308024532245219799301851321566895744500889171350183869354522477860151003926332065567495124075113033191352376008840212138859869642686775397455323547647679837931591843753335171556389998449160246453094479933486908174820121895493775538028024408389078680659856031326280237142885206859932381036481899022773132740782653254502692842476465062842048424766694514341969766164675896938725100938513393400463948734065289898538487828891361430158919787321687517322744089738183566119114108269108934322274754986486308773211171678879494272575899483334614201631345821097305718493919831253358058377972088312691735344442131957495488498437283446345483765289246676704571947426775618459411003405658964490889076793362767778695323844598141829148262143897847651159779988346807962095355945042293006165204716371648105937839633174135313783770735928220699876409988242018255045983318367357558946890036101523804649626747604394153063057355790150000605264991972259962475131243018277238163621303189019431266430352561088493389768658055927092404909882214398337995089237596832264318102413671172660042799553194535552677070779128249691922346627280061039013606723349495675198809030496869314908383543486720416156867250642575954085289061400409793264679684291498988575914628865159705896530368081719996211040092496635822313285786149793382675560197081131437440735885704075673176413239446447142554093620352350315256606931915544878346103431558053802498454158674618170732237185641522522334961869890733027397669010075042469806090341988843362614053060898946226404423438719339585541091567095966624712729761474944743434107543295710973625537975954726954445194563440613955203491415911822526032817047444361688555279179983703488824097092263571333625554178774859258445901765881738647893658855742315021506320581390350042966571687139079166437693704046314386372950297070736426633201068074931882288074656936544665122187406360981074086900955263251495820754505388010407121444186584924538100701885602395542491016816439649860268022486132778761970490287373269810172640118491785052237594287973371375035531341996394509194902604735789499156619491079855425807996496734317323179194721251332566023033679434655069598918962555888884111863980767976070318866806967006390613108264720726176401373032389855754487462965687563286396901301763655934820074307671725227688505226515880671831703958697099276874535800538204927652916506320446293465250591410970509741622905138885762500856956978105867619567082124183578702874598502848309555832416813582047830313505702194541402222853195382886679919404601323040965185182275331782580963477878590427376196928966793884270359963366577907593051958386886633914559840805443096762027776282317597913376972429697544989055792699231880503558956692229643414183425877452663546424445336097622108740423962781153755041742293958835493577296980984173997634795055752953612174331090396029683611672856851539384380399728345475967315881236058340247959674630121715658913237224718135491397609301290119009581538164638302992739498026095600833575435160949515690649148383915944671055954323544894430347750971439730841827015166650109610925947025185754990689593041185447845126302765172714700874048375003475074750730911791858191543087758907402787393924252614321122321039037319712486868439934781953773441357972263112712905867822277451521475120541320418399530492155703485085969182620077189748883512511658921698055420759788068933570278802864261772349554612151252177052510623100640782552246292274038393735458236453019138958822691755821204773292060460113334715920724185652157303514186461232394512889340468910544843224646637606406108087311573642537864026090262494871632889106680083031578338636236774189342204187270218251542998061624572513945448761862680030569899511104984617698669988942445105114890162492145678465026401659835501775463524506853885328880410691020160631128570883000263864348199485064355305185303462532424943468215279140071722942797462465392309030577908605370818365853283253994681084275621428500307369123016780630813599322420523220961823131842062143930728861396070110980472562363200994622486492164766579368719799059348514850185618625838053306600129214147805481629075547040461966373579885465372599444631762600445155040307800856393845889205894863769310305633438250214115523190659649641819395650628337557495736495579101063239836484121316874994984604508754883895992502948732886076547514510522314121979871081918538050769013665878664613291658322450403433048332158374201230445947842731317936315999661487687747516284269344194511138040130286305376319713518271134128850446446698007796194024210896974352403369487284665763830267227596176343180506679128453478712057727641414669028459499586027831559358100311767581165535950423642095199594345395154620649591913769630758486117534308931014401461394534544461332326029922326691310529371922623542492835538492879810949101449349971580723361898043106451297469854838670754675989695082115072486241248551623429692242090021929501599883257804321741561490526616891115651630710741366512043565116181348783180864437316818100986806634808496652534648513750990954268470195188540584181185305671253598529430262611355870006031214779001156351150005439987355648068213737469216981131774841778360196313058796604284516517820695163305745090652009839809194186353041481451399641656724245816491870976242696010791215944655621194553165733715104349597755279542176798117566966870383557051485085094273716472861496260458795886215695011830219207667613240547634777258332822866933781166674016325550879063904692931070531184916616712562142654581445141486606639238506453136332081656295492420215864126678871172965387529603734863602525344830882191892332448094583435011820064240743349861880169401965385762432471572230270375287779243267773718106808063803305028945973335411014769504855208787651848028756094742176996349601349411148214739810780538353668595697205949327307351455649229305061627239356766989304472062105135635920423517123976859302593746142855642486597678948148349923227747029373190400086282752440452321364382691163161721091291438729698111179589301698565599822005245788190189260404812213521106274985177752056334667474444972221315050782741775216822049282422139470686159148876425665904891591508900960687330261553037882756280422804388723145715708005970297807384195288814512202579792780380772293710854722583913588433331852607710081116918737794627624670727170976205666665034872039081114788437566157243075004145669962251202139171265045315057014805217208135903844389776235451434746918117551838970017450881077080937852667764620569865035014796550827382611972702075110562593900162988747092472002082487158762293734377328353816032771039748873021117209708082767127465783603503301495107220610528197204673439250634107061157137178162963280690316995577710808250394587784676331230881484119159775806932435083547212131127999233252209339288065790557595480729954832555944063204891989671080609243957958121181597079422271783838766180438346347197424318432167049720492890936861626593588964972827389185792925326129149243396099758506769803548061008304095643155299229340878859205050015269762632413239332055602178160146852891688255848282739375845696155213543482000778852091531826049000625920629424428741773438332698476524628310919625494896017942935887637345949001655068780430473647385596441405388935823409817608471015967670273591384458539293189572487970849920132173521073995033594137485364679292385987840970886000114203008121274530021945177358844110867794491633607938226048129481550679709763810736189704062644571399591422864707556280952345202458649599992078389289004575558303176013358433092926798671361312136028975169857555833298104645587942672223278525923611458720003431722171314900540634849666721784724216339626543447697789694854190138108180455868038695383980539919815040138735485203305201189606552943432648764120365693256438296925931035093277233661128010067032238316268997420439442364117068958626759615277695639202773088157882623077425127076898956764326704990763501132848595397240450296360628473123478037769016429016934868438030637642275436112261205109493543834332698249226326600052469268846806386285831878573542917446533918627870081814355585963595870139031666623517681953472535838490188879092904303148176748469746127353486248375023742356622973176125027761787472205616685464236704190687950229126410192297029871567969072934237368937904467222458282352044490047347159261911327304393088225752043239979207657536052108066940909904573581736835144153034459793809264567999224231767893811187993525578022261521739614593785501179258209489462627131349262046602506779353147669532494595368834980284039080867244812389404124959654101320845805440969356690543655580064135783219317903739145579685719136349792559134900280314045806107211532796274799312432821277257537032442743668894985700862961280576121793636320298657503735581497307699758599982347410772965817365008313259038686403195909057027506265397768566280004218265308858185811335829002684586533167915530653199337992046094988675351499829711146976550588726728866793870761255111512471688610819465170045322934152350567670265438883349726257887300454364470593672730388511559701148158902972174013307483958231480902029533576983454111631176403021551206122811108706297604309219154326777373105380313440656890739313809286371829144401434691024438755904322052882171589993038772118502034782716821655581405223592747298103325587587128337759165949282842020175600613411734249824971709481088135599033252106429184660548837048650718180771456133402512671726632954555663178785090547975936484246072020838582449715687751243975937053738245996610441594379813884159141473023543570397665923224475058109951973824397635115079660688959929185591822166023951474070677659454958184545643125913490332962269523964881987335565592453946700885592651527546194236766255214820929773416365716127454513472295718766965331042245331009192347661914589351586682272968980605286021254634661661669587970879913604496093496590417775108688657866400053192378962396635943185002060370172580581491927974035910292032161154070307703236726806231190529079061511228681368545445387810540530417263126862880497721186261115117561346855158721557036831691145071398151404041241232734862895023935422055792479970570127072515994471183173517956357833060584184214403976736908227769344825770401375870857048742375095548831684945478727134223186517846569140223937558193241319047369855754143892525639552168046572676944658832693680852638371167406175600160949287772209353368752347284062932081522253595671571864360444045521725580479257208223706765382292887054535574663415460999257690407181930840396957025556736512641557845513466609793005762485913881179674752478282989389846060266405546703509549780850643206728845093707928421933415355293079092966884118437753672767034943971397059420914786999772001910258262758279363046514621776199471865939968125743883555739065366474464014798040640757764147738974140404900726932978272928635626329746626604103450186579723084001539205013695394515381991939140831589962891844710092459380471840165549086237405401597412144980667032820213735010389723943922784721690356547740373842403708041051820467678823737027192242792516109306679658380134566681222188125109253691258971231518881558750213809519346570692624269050459703325639114577671204300545621944032232044063204839779928772964680969466414525675140511639944475803553824679638756832024501905887332381560299294342561200384696548434811648406396951717781237034260613695735160626274274065734050506593448595957878521195665609049640826564295779281483801545328830779251893063960683712848156163321652902873093215905966195188914761347230037309572629711216830244303014547652373107244018650728777160230034755705810374592876412972291838723271766448192082058564779713794252351115473658860612836097808017174274814543258711725938445075415216986483068738996454739492245520112615201819958686112109983573474315539136699621537111410974664701810420894383732964263978103420909589404765731919916287799443362415888002371254223362909015340555131427607791919253893934702376165890746400804669342577215565562188476860591463278673917554587580535307795718381335192508952358107249978593765489176407589491243509393446840861015834417781687634741953972476145305691326061939516961603661796045477084683751435885326594417379154037526496117131643657169072898965837582946765856019071002219314551389074062393692362846765330102362389888779097471622868426673099580356492711878593801910730438750097319256079966198216415666892896519678346479243580237752162166161008719129789747144564278397051829438978002530730196719060826034675081506775885436441851361997492856067328594862466855205959437557906150782497897428048904422695222857695752897781854286884660439511578912298738657022573366883956374652854529742136330679470964629156798155034715076318684585787665310540958231640851500187371410455626482357273360495093982652261182754233814536366871634154374141652461683426193569971024598389197304927757535815107812858244643857891507596482747712900271536968523440224821611022512963414349695928821511257559775363621070252039525478805135585731497948371477442993121142069707159510137328732086586663629871010247574435411280515168034871769623331780487848532377209061661359386959909697678025751119322412945304114850221575169897159262604161176378614614001935039654144454456923543923038421335895150459213908583877167484992299967573682559428687606228146903296552124524277786401130511878973500527588013016076210474112346517272560997181939293384899847042571714765297717400404748304951335996812102774394637848653107664677075293313088390365477358468214074123594050307196611463115048818743788151924173378222567010935136263386344932534476416995496775882878709002261587512929829967929805270277674128243030778899427935025434419846003151528067925772895975446082867081288960157797948432315141274268716506824309260602902739027038520650054971527672553383768244529280266121619943867858193313611815596451938126000818749580745276029405162384113879362372013925051994206698594004066367836889731000564847655383331128698533901254089371880723364273053798319677709617583927647295805969907846957298438947151877434753422595912586535173780354976695480574822640960776676332325978319936398541021414958674802762292443360354437402618556425910710941605021511452203788241867379210249044976188344865746151939918721059039539284711843339036813310768247053057909686981776860193657307545891893214196327345725673612542939450605597799107896579983533173933981971379363159552185463044288110880873518988155597819545686993588763258873122121453461619127458712595905997394199674960445154099479126607530614728114191163567102359600371817981230228286359018802437161121770451570826853488671708720035259252912154366564690151506020676705763756869759427165760126241604110794058055668748362656570605215253052468372546012792309840277514488538880305826802302327715307829964289292602928080239243996773027705233114781364698927407775669667988482394701269552182630176556709754050512605834262851694712951689485225042952712507818082119699408283166216184019350445727743077761578522408480775590781859977025866566855498054156660707952858804897235883094508364171744956362894255103788007498769370224142705519435947102144127257613150508649258980977778023658460275545299895081416937830110083340197754199371985406581624308196365288647899966391585650731918066274495263648084521043405492139316848060054103661303234341238660989479288395244181309595978636588347101677757344939862554414392948761123301179244157918260295726798228659675776238428429260773659314455033173302060748784066349767857590429948504971875618838941941251364148313128627317045607867980405930235684390727636535068407138354028181811523401723707506154383179899820259907949414875337142780276257310230231953641439771579347865320317411711676277040551734680784380361937133129616343056124687015795373489522306072652859784162379739374817351871031812489345748372818958986522729643564731291849655123041198498306096933424839391706686279218234087803599673142781307140215059629800608608448873322693798795125660257683944206943889419203507440112343595694979354539043192216004919547033126952840276454201982686838065430050688866695763593501261192488467750916145473779616260129588922630880615511968250446535507189353100475966521606336571734159486092140676022409657618726844002440078460329541375883473907042844936509447298839346919849978205700179709152083231106068976550534232261829501114436676733422247934055345209149429706384757261616094016117904528308185303452506717046336791692517838408002761482122061299233979404358131983869216772277427207899168418246751649255337340140013559318460653930134665105350248973020172553524504594781889154995555349396661321045053709468640467992034745504938077279546199425629308597366903197548306636048628823181143841333768312110459230479587458499013692611069259238178848284223443839374623523068345000712798729214926067909506358064754253548841939862247263902401335640329210819930702314029907853500380467729831683541106345340216909670304943691400003325030958128137887955204537128592728591156933969316159720270046497240864124587870674867141386454823868898279043657899119535154882691552719003701326818828517288311624016581731215778455698513708383620192439931514370921511799780329527378926191803657710728381164046880531570191231815963324592025102520104969353584728520857817728770217874020225753248918899834720941585797823431290820727398538270024047716151626093069244108119015694525009446329739542386039586093038633094644645432833453555418514595997577207101525812202597310028877259938524205653064921520691666237893213386528870326106857170167302285921097379100452523903176694433743256622814449169942814043672573689184559572101607795193990867183695581991212525503626183028475561871085489193705204089211707785301422680016574527826243162352329107253578191287702604703749085391927544684189195947798620349995152980776304521648074537870853545089768520046881105434850680189822475434365618696968139639797665012525002368356093190685219702765045310778111414108292580894610833172786491829936573766936550493256536929846827656513313015899256482710309439789387598161266144285972154953853270474774580254289725350017963979031933699457208893688382621823818162388103047685273213601072245270772846594600969145706380950725557251017799515354413056351510342886123602536551795996630583563234030639682606131662156763688312198913693475548228585737413554594270841018762570371682677043459529451707884343831324999430372027786992714162991564321153452416799850858953776911884607784114023216528104649596799345679261310493533563152735207794180605499988253701335629916330122589142058860312724626159018298282395697669222123586775625674391874895906917009760280389470049380660021687024430211303424952990958913324446463306710008077608375801830961625485388153732696150066125117411361818839475470908208878473826182448901998511544581052671576999010029514253023289186703524959442957406803261236793676874011963208117148489325717748579413276289559374538174856835597425083510651725527575226046696043156877025159945449000472838989055700327156939959601297873495263227910744483736730926964783040583287254211670677278404849419903602287942093685380694937647098892978962422565555054405594845798610290682339089545245496371637529632917744355147645815485205571990640963263981059919511620584768511046947077373416991511706399772354144031382669714165640190420982367622443942577149217310477368178269800137420286872894140933468301200784904939319559352300563469778629166706744855291151340921203480859507931080174930387774190514799257446155928942993780458143981398502229826551125654978373916710476040802261017177693527968252652654348269578848578863926662391380594260956472188334705817500362435687987609854300071239361172990304829977050200404277261060533808354337305155669221544255705505531997311408618148213024680491719383787694805285666108411936358074686773549724581234042460161906376264146681879752043458541820054267342142867008145132423746103326256868989236218332668610954070053036794735466982133235729057167862647678936311449615066342146080288299782592936110009785465001308203572892358174248262584751567727394653238638376663526538577134690785907913450599883690325952131664513362003617688707251239305432074749574894895176339824796454726824838578483354387297813435529605286344423644177091314722464015441940085648857083138340612543281300235586261728829791115636723076249310503684638740384541616442349324801606771810098595500383569019738457391873771354423091006363883785227949591034524303255286689736229541709516642584133469256246308086138606650454161479252664869010342998458576733086388707592030022525502037327028014596259818627280135821088195178081221231915771487406360438554852477169524154207849080503732062097183144149849868269554864602904280568543607350503441389213282530771090001097874052676996373985072806168077479983457887238801331252290258691852695439949087222732280955038820626478371030891279547458400686887307789050012026670844096083091893753705597530568032466300898487541986532632562281176603809426057990546593394629762652625435462370548447097544299606024279763529214559479523438132473728162507826454259095654232378562208537125595084257094339676907573661956482551282447141297024801337944825653080545386197232214591854854173769468536581585066721328183273179798373726344163754054383963376357477748277191960978119159059983370170882777513502225476623953651595385612349477168615394221760254133317741339163620716151620242740645675653333233866092934293064360094404469030409626447042072438406040309929155144252173474087783285746229826040742933696016652035411176314070679999988333902340747975313179058289803536423990761801637043577070434840853444118928259093701996316407212473314492788221384675736021470947044319755619882983360315441982996387899196375683615103298234558649912941509028219733354633540980765043793507588071062403348928519208855243280270265541653861076100823752732942493885477219065659798594440446517482157716917480285112462499809141835996573061842510594318354852930604778113379656209359546314664477731889303801324888348674761771456706997419478846341882010384259430640699310929068687109448628083219397729471630321844459477531064614903985642747952756741876111754749917656114789968380716617560362202639131785635364779484732991298210699510119129122999356153903005370275104005511198142324173929524922155728953047219540204280618146015303731879002494032971854565207825980542759246214347011314615374006824038092319217883990524535958234433324467828223338612393649616216371968636884068908803294078420095699758875862346678660483257144350611948525824435348412133656824295674058943802693324321751158388667621963660967754015867317692728240628780184900551572080160644119438144482315122312109766027274088063646633413441878276662873324599743067732006736711000147073041507532702311819193870452835017198640107134914889260997556714819929486697394429572991834640896130903078947080664387900430407903059929500305631371194719885457857858897952193277633746879615326803490871225327289756490708377297927136286850019663702373532172457871954087671459926843419218126619395616424018543630798390551893794307726317576320390776466982553104755077281280260782930345918353406142515867207091146616192899871936725450046001099958195680182061231890470216000049989727179255375426047926658812313661266047331562343382065440994147603679975002278649049348307887608071367418201582906554078923162419862265231824658329622617910177849753829439234127047682492036642900191451220065900205419069991466192653751099967225523606380174097117468105856439800229942982730276307816500253743230594880931582837317452338517558157370063289297068559130727170446204913363588949778815733551501967467387948914713348946733811249321210637402424657680133726090370794607916048024975993985272803145268430089922806660112471234119413911755031158520253197323270149303450554042938319869520541624342850647352466707668894315821046851242311175543668399747073548796597247247179106166882033788980143842828147470779845990983931680224431262827480877461218416735327511881562308828500911450544078617633002224040723041060380299323222610372385946801833584213850621897345428738340970974577554284798310487436517045009200022164271346914963040124723196044050123401621074864874004827137862092315485807552650190041194894638376614689424998647575599893021363722559840478403134122000834878288042939232934831033142349545061248431245866814190658226620011712347602425150758002159706976537959089121041621615324147606098712373861998624987576339900826939625071873886924497377676896965879543725462059382276129835549439786362392167176731874666314668986343914458380740135882589273036028881251691726882112239234411341615985365634617980794425220330965775315388260128372918021580534010016720503535914881635897551984263968773211700127382063028659033221353306063635105554417722501957299217631051098459850737132765622792000864438052230757254346650960574636381436077402442138993867823109938098397232063764247896158158980791109382633426588187004704444061004477577724482852338665694642734972095670703321033827547005103743412354500202599472743055388963861941131517460623098566542481220141762474324649511757056120806611609049567806145492519337064681488368840981677826511212167118390065552883977338755597123561274842377637064823388823058226736124047726110688185050074763153475614080903721212566363277988010703041583832672965861317007215349003324549382534687091873718821091461961940845534989624660152980734705735739171307577602289629979281695658912300976075038425306998826635716052224435342625407281916754532938585012367851269506376990175947955760912810694803360257300924707014785853415291658762270289017236031164744868901377597183936616029349368642049648087768457743979876407896761966019444228287320895006373422614534404708701335402377454342972493718978883396977152730631464037605202767921105121024294516865277161718427847238377462310949433693476522995893729052854944948546979354687381908955358833014406086309223985058648273477742203432430443994720434908912683749921829149406882942458779945508529155626728660556960015001222255101900478274847556680938490784110769220906699741276454426696309978755096805485803645189600902064359632359085117798958370108423423827386846088043270155552898418070116498832748164442040959071051012179355611038596134672071726106644713280240256186456347974108280659906363960806350807289449443494935550201862029230590122086190758576297836639894613185236587720014326265063409098565932190470047939567645934997211892514138275324401357668242984685975650491966517360512868015278835217648092282831887753941113660482850132211708569534209890014605514175393375685871406308030465408086827423503542353203241819234292658267994678479214335436638536901391987099274422120028529567983158615355923916607281616899577168863643358496517441483506121112849288847580348850108160672519584359092739040849333329804124123750008248904694476834618231180308575895882647007843944506015541260615782946096935376580622480741087719530829053484444261629349917543817009195605190977197065162338093776943146830025355279563782199466931830328753321667450698812910062833391030124269342702725474704681991514753722000987864449471853028387202351716995125095802087909324756450512557746276606781637169832642235272178361251124723614808412555191044271090611482350918762763706248783412247722577710343568683047344301072266736163400123047781605563827421698529020142683664680836655462429515978648223878859739000992129859875400176809075776849782074459592884318675540120010569669397788465896601265882998798524801295452872660648521498975319134656487741459205983257154893351337901576327576997125695567380900512957671470966627316646031870963084097644345453648158772866297974019543474153734614104149870236280135366624996766652028560603832398845990671001809213366866564117942018197019381009867772604629787392175417873413627890331706183749211384883195178473630737363918675632905151807464642864100864516128534604541795178688424072012726805427709802198257597825831549430070300893386114902646739379160082736734661468307873779413557898514827542772471240789209114879502447384059477401308143359529842862477267584179427314817005076943141118279031556171991441504613807991687895565216378400385187908851526103127824066592156705994268165556161299561103396394949907835535279585673919199793651793569883832376933988314308795158471501439081303032266857250335894894830235138422900606316463972265540138589556948907796325306549766188310756082811125780739636736737835554343625537906855586453519403889090908448932388303363660492237019524331655435290478469121454338418782876365184738288972523768528458670532355588701790926989649350680462322832187576434018754376963335781333142882035914505998391045069894554289748081771446889370689773156409212433353469330841803913964874864155193451606591340759948548770762628684595239087707931926432059544885762511186879496258991345401872792333074727444797704681658315547802889171388038601186789113892431350768642695665839029734503398874822858574081767385185084943230854788537567034061387134393383082884105621390016373068365406977491261618836269605188220001940457032129456331153812911304444714476746227108372507945181726293440010941371446818357976801193063806801948472599925115846076361141218387851858683214211506375995402369535341899011171821846152984032527870271359979673344559342795066080296681706669606510103770026309256348028259693928073152974699664962294292607734476112951271906665070717925177681271283100176756426717535484112155924975117093977859558389435173345064987226044444702920307551694496428410466210987773967335250292544302879648391151397648731589997450351268099310762355624697243856953856698480718261051728674688275374402796954735426289614313808908258805634845433652086951045789155397950288923762126083916929664201616700864182073432059248455714789974306197202668088982030165761493103996608042080633298965547086715056932492073038491567615253407478393204012299191565814011919773617152223553973676527639149135883043260807264749307547944227235028220742952650203016006381405048534762476778488542938649856368225150626841296269060617845230831883650520008154944197579019418023952323853623209571943800456624266795849807450797386114640449324632413792178216656757319665191790924467052657533488204459798107572379149758709397237814279940818228748204659841945819145575194605874643980958800789376491002145252113979680046277201819029811876063764964658849690938254935827445689163404113085383525222879692533901542518023429137152573473375722926611467558261981469262154712875749044650501131561958635568215808053120889990603303737656018977439831215343957873789884865778096689430746957218154660680579932057538135566044804929706496271231442115094074022406767236053252911808202100921947294334853950209091149683291998242359928575968594206952123422527775717239719563049160232322044740931686361516575210268251082786296908835246328268761930546687794577057895754106092406155852809085029999657569938066687927813698510409185972793229135836861765704886181655526958181688211449024537075611307462386321766740032058937707074974809671489429025801707764268727949994924831709460015501551296203260783658483645278631089738624615247208450078509909841676272716971308080088442202397504758879502157808039854422540971878194150585332604068917722419710475770913290374695201361236191718203991120086886908768212817038276689753792413570735226136088802242338901635012095590488199317467218342839563998027483366199303584834416776473968483583342156632239739922589120525934886893332465403830821408778254619727515245213677226657855228368762627824077118176016043511913470720348264580081855064484058883616299828175614079766452114745010525184158375820780207807643715207443939019839097225969961163497197236179821245736289025491315875109124030871421037174458771411911400307448492272983478300358136033085055601184542957077206281583582000309574888234162992581106152597623330335619839099422092752882562740600000898604132763382053365993336058476172731538310543815615105205556873065631397492298074371093363197140241157944526115826586139567463843257820238853684668209629175889762816074106616979431732931429391389254406953534809914473003286921611089067895539069689001230093457861905984221336648213299746427951497253660758722121060953758567922961598185600962597226783630848888568021285144427780590613212455694040083231698590371369690111644774728110398406666241566402066744969706456480392144096500509561280815635585588193216129856297208951648880462645178108923810176448048817987596848714923199894124044227551655117492409506212828848129576008905221276476804976299176651053323889733835290897140947957380870054849583931264011213816252672739201002963465489070520642201993130112092498187536731207065108247694086302444508924399688180043903061631572363417797340009268463555781867003129311367458403216221197612453289753773664376758099748409606928345819486234215362852707690820549199745244995971767167676842070082852483248255437667574180166181695841182008808606625300871114217778202502595875870868903441335526343121894619476065416837997316269505952064437931842374582496060151897079420289281452220251893227677077085325418013433145975427001817307242201116620426655036818177198880505083245709335498224498980113744954428640764599424936936239368426189737299590503703412686711243330651035339616750478121037715724877626896792633939678451950555843538575053755410879056717224416046837607854032749217757556602087559072837260116231472860847679243224965626843508410616536882024447616390694495605237565197306695951294381722764197618449027907874847165471814518346953422218563969514491440471139028099141681081661554311204491436039161281319099073114132703439848406260523948929948447104811743219971628185331323766647425499018722447798131235669894114637662054623702907723281595272570628031598732992830897137614620680669457955382131960684160382981381235067417741394278340346891052609668286239755886148937631141828807157593692843988820345821193652806129683421322476658552970948853145959427470994792343881673211127654292060360100278861309887748738194779160014595785821243044824272784844554611062302912266302466087115422562879016906233333507272149768723917260033270128505736363370620032787760802603720171481506090257777169610931099698708816975724414705950256148198217127029884003514750047923172529594161161836635872114697335038236487655077221045623604847787973931529436263546842182688229275608926359735255001478927759186798899903505012027804687212162502540132635681934946604658987055121674087490989789943292135025109377708313230298028751060347824756108005577627837204231717971714394568617455437889547914743221702234054572158296565833970511582372266068225581249300523787348732390888979055942195579173028215286542588638339957491451390699933493953079397399809289906825874609409770463390205505087330910523311262577931885527306821941653451566096772293616176564996655856354605523720912792920710349729335106465244614154476984381515854631745797174009736040840898772925214822893684324797823678954245117816136132306518096694817498792091327152855133263264851004553238812659043719245220645849370917870549470162155305983081657973472706629799492734094174003880960050715479301586060119190720863825351471434205575824883574310241234479624278791909589404848390495797859615889259634807111098490905197969887157729004680853414714865300923366437771195332283743216311708930363719938961162778099361526999400035072309453711152904015404412913746395268136850094115357966099794337170793400538804333436405606934223933050034870854716345965152212245597881794836221162461182545146571564993179325697360871009216409157574061469015583651105332287119062009957942003087502245765645089381428927243725963817726082409021425005002325262463705215196152579840485529269452226293877038253879109411735318511277510742254256362716015308296953832060962950357863918133442408479821027891565123702175150478659291838029502025405619376445147279430539079363087144091474568944221914490248505552130531247083933495572056749596833274384375779760451607123133028730790686283695236116323798068183769245223537168074570822523994317460564804967484824357820318278228819297235754459817317637872499604259238087684958513081237653054576337440536966989839355529110103659624716274343974240032157080010993508786403921619420107150616766184424355933544868566058093763596849366470530605700718703418977976052153291077633197942067074719689518568889512855623164530653128336075805621347913390082813787872445251601403800636972289433853454712057324849811561669441699224310543910637844208579457992226975192160168209465927215701430536655015866684846810798739256901598663737743321075880681634585410904042361473695579891519537127540952808903987645027845754542200775668356239287501723188687770214947386604538590889735637016042670152094664485531391666292502015974717114806812662849027447101812808043191613167418340398206440690498346618105990615310121735689388471801726356228108544486945625726014624926177026823779040429903214836277446157135738906183240816992426306606386744038760047566248083657980874127394015706792090604538742258923339155092188264200752754951491808822281884296577594490907313287168154852914311278491292876116828823697408162182972875990946839277761796678923487606555971902430888729542098754848443857034295036806141670667712055493308150921743182310052747206931660764951494568712362080789333137368856979554133098528806879212319073469240068102418327241273470050998214484672060296123641782770575278476729806686049912128888479285228439776913450113043669831299261669191287100360422052314441091968985771597557184995960812713676445227400294056546467980360070119811600781685021151181649198253690873575975723792856584026396319562151618343313323187969251934782010774607999583984789687310683725762095442203712900817935389359335781591727287980903308078767798259423947996982429246651721892837760311555331405603828276126796670023099628988991267704614075671742389527446724931047779111128967537413552862645856932794886634325446043372126730523309449206165202405211940937474743753408089902652702735901451204145213954504163516673823305730193211362428210568455753352094607648865525109525429173985236004976217359763506982654554065254784312010261558317536116947500744926795698205031816988166150120216168977475411969628312260217063924962181370226904098481260298672398570308920219527647277954869167997291675707444720131251954282528882489086729741709417588177896300440724073648528879472716847740616467387822625620745143429090112099827715276067454483130283100015090249317179607511305551631526929730424864919198762828850817473145293769020135013774985942487899180901266295826479852395250443671309759883208676681164080710594302659401400288449022189340890277728321616877313918126864194287200939924067820793900091689344243706956353002004366075474623892631724593851192252602775238474394529472221811121687921913117665856630241021980306275681209667637020402135462843182460132295945191924971118240407271755988872040021539441442134505949603728924416766035553758000586178615978592440510799360702651922992170916654813034532085286982609489174182206339149495647303550241356953545140180455714627424759468146187660881139843933967165955935712887731698911638567333744344783735598543664519719591980133575947933510627920617412781404872109587178529685365218768230908343529863744596308089764612667237920964274373627404681328243412260337634602186691961453958597364776522432608303465105522557895504863067181868447739679938086816137050002892764662970727825223091275185172224704616879431900281961245255074328595087313613460160659976181889087133965587648324212205055532637132636413218410058358662477456555542427206291289384465695372250200355956525788240927470163250330081595435077020141283381851350206326131881406603696531117421347422876608009318659719806743417980292298050970252443094578130898929242894229104612533611446298111708006000798596767329891800979230387551693683728523352741597734046697230474780334638220171394929319976378635061085032928604171227365703967564509193102404334792120072980356572517205331485651997501288282560657188208402147954304862858916513241160800215981268912833543118097369958545796594190519144885319497915004298708846570749964062190428262525281656651520234447347146169299706645854970155910600078817468874715975361914558183560255192816949933243326893601100343374429935376714697928602546140810152670737489171012973389539190222801336487997249294204427367069391589897960304006698383204610324072837182600080490531489222587358618801059554805009729175780381266278745252021830073151869787287791623522042137769758439523011367444772317316642328841516977101558504158100850692354153029293593071710922126412127856600073924396245584921893117445585974036286709212306404009690095449471486148023437514987355043677259234605354541989277565651945975566970707904684270335684382333885300744736304003490978365842531330651914134864157770849832359854745939336944267404889433448155793514948555455825925526191026682068451084108348459980568743837778354501424056337715750246500815774399796473175439326335324980059759624717581123255194515616217844370926811141672118926520085994290815583195125754441409340190949386507438897032738838055387162904876768193151815561755902612310357438793601535838967791692053064566770901420453275082054374028420027641470483587182936452469831776608780776402977623699905018542601879812808306186180120855501280438595464871063725814410655773582696427827299533324839731265466341961600152758102863577473587085236883169838740182590714446941377762790516546846485860109278212293966165741475663294513058611796235183297810788244487338992200069628185442550218963270640806453657603313415063102395411588774305099377242948370614528197645478915715217298577913981765426186914745342792195630248204938462903824682244404322590715840779298407461840210957744988161389908553553122049990272419851435844824575684045618665932448656929722139839566998375436228775988589254289169695275444986070836820650626069461738747488194268354118231227606353085685383703114941733489434445451049363030443113019737010147011724064100549224207816907605702875120208372636609247566908821567940574428212273376009999121297229956008959484176610745118501441160422932587299760187574382693027463801688294940486014665080377518305327323769459050608827368083033085381282129178867725716470421716131360862533471384227751827853447789883593753824642543162967811886450076892883897643948146215280254525358592751321996076893489950258318092842969649539483860629467710380050262287537992102552716586419832843942402529411725632490092738926568283766776250750870272786296928485043234953726542732363231005234815380415856299319802326471288626586790559267756929783085811754959305791493269022139867547819135418065593684020005476652640454553709907305113022779379555360964645403916587795317319517609400909254782457559742188547270340092891688072459473535506069155164373989529599724668138710087277601819407863994567272206332332319342211892713326040963229275428347797584612663075313017595292125159986830255700306773376890232419489558084187168482570731973668106794745541342125699712757465876748955594831477123076907325421735638617147737314531860329286058247671342224263369376428304786197333338780398296297381829086981902181790617682330426108344107293174704148718476947954245147987617821238003436507192110414568055184593201472305538901703457135191022684891412070905553482354584761362707216604887559766507721342703953085164035687422771264315959158083343410041161507307309041068542403750335398768029993873070730457362490230938737190733831757287783062038670378623860066157825392167670056350234862649985404508000515904479412175731516214222322287198153200380004817564632052203739790699565485284660921282171181363811903464015842112900512545370926904026130778340073063135739625494285070608676208835568536567768444650074523375477639170778370188638395471328926523901406947819531482966846079590771700526638351021198605957047448744427791914881331934619988634872088734260497890331239959338115356072703901108192537122481353433969345886188284406530304156974807501337280952347763710908850890380168218476367146549530867207123318916858561729754911256444161099477289635789254012763292701670069472678717538217066476689163696270110803747571595001996105084427815765981932236390766101488302554807136395858661066865800691332247360716351307833581422743844510596573561534919593759474569509384708801369440441516953750924135679854546985521874658823972139612568502290658356239849651511443721320138058548318236120904149951829941431758146251964575716314490498027964696784925734944407228332356932683263976062813234764211331192606020684523163334359523371493159452657749003408425399097050106390277482274652940223002202132952297554096317984304896472719883727193624719461306092522910159911869167860281603437179361346632461046513598431627019667096199825403295953499729482064640334463215226268166023535715552896930522492168743899247774043636220797027406767798745476191987923863594231078045392798116650115375089662243637485148467754276526661806344992057629089721622184991548342329059571686054149743637682622923664559277349457572236960033999567337415981544108997244531352117429001377125044650149015673641345078183241157032548166645730458564671815749773746890130576711031501462067986770231517428309393359449637344003541546084496057831692516862325016836859067901959410932858222177283083487253562084377172237786855306578460862217773062824206984359221342238006759635086842182602505041590711467770211863808613887147398040521659542704682001823598689341071049002595731039918756618217914922667997537938304840983719718095820160869868032650635419666865071246281190728047044003626134103721793874134224024542077464867051010484193811791331517105820895455199439377819105650259241766990293760294626511077396237024791035145598532969227869087765150338913600313336106732996859286445305407182589124203148874151938716138565882381554079998992082018928753191313999380167922881934936972938106433906369533039788264738768476291305657837881956517212548582770386044379582644213383138353991475020119394509174301442137127829291744378667691773437223611247830984615360545667835219917485667582776532984037923761811396788630661004367750140330472767329511086595854613867449037812186093126356736242532747542723670336015002398740381509806315101545644102695503292357279660275610911129066149636682592277612920993519897078929627129513217147169863655403404510211217554647679312248296119676578319352696534546632607139797676971527413587194957413675812578393037359723166604325056707205113759239526933374793446900982756445705917367157262010480425933678326922417612000506818832334088381605935479148202733294741082753332138041894670472296087239911048148553890004100124187353818806887289962422925186218112203249994238707595527308622681664965366520284506897783778832494848084924225923758584648199526713422132339581754761780863335063525372618890294644355280433356467844901517047613599731188938923339681376974708797999475955592133419266249448400356169718555646014569596136153347634492109734768940333964309034884405200556372532643645013951885480098535152646831141053618784179067376362101819610257362625852766692040458168432169572016930379486779750143340271239167360447295022422106127521121824960095267628784322901035161788964635377178379970031946787667165610028807091791224057678106406571962073896564928949521147631569200254189272643887463599219498336130611187335602970575623339068930435329073489126519219165425405622044297188856552626036617332334520162282039145415439728267043664817687796250343280692359208014806392089824564440349813986356980631244227235855857754435038457258343788746322391192607877240908804364000864930020393538084189873318642928626380115115232676710101866896594922214264125866752902024328840096425268520635146540736340149007082931359239123694673727317582104344619038416289492559337322741078615881105736228412066228353611744181427290667674862787879276591036551922079885785069613910478127156049643277472088221741536746842005061636145615375274656695480469629472109297490847376876823150353509781905972709770867519383757823807174602705468119774352454399761986243135218668093479623687437206197432073503962644929197550820709378343786331914383762811351762457350094916199322942205986655317960698649721143150952876194199523896001153208183272167416267760894031705516788133187961859286928006854168981835416017866010348614241121708489573432418276491711182980238703781671672298273880404957329134299362884661590762903559452823414913007451159271522524534129526687346653109927684752140226025860317861353192388006153182449650937285210581414472275291200665938823072614969711394981690654486113272185543700127254131054541763279098667998320656739363120573762644298576839776068730862868640272964074906487534580619572182668057498455794833559801915466339808253725816159164056903643557117307920505337868322521157501369651056446229842913497464235417104474680274720220351877052521182876482029076701178582208434997940060702503973372311252577292988760310405965218105540302996621502059833204356272424750638518905895179702165495290963059098628698356450085073073845018658347635644539800820403133120021307102008054386531326109105778449470137749314312717142700077746400255450871592886627706931011915027446165698200025836172836658352619512095089088126482439241049832374192111889682913220716951558115083577202311533327951691931918420319428374177493922615760728100119750803482784032602902868140893950489169949239169948846847462776378043954287588804539770319099597078938385320134890489559475034411583457199540544271068389939843929360816103112678954195773155487692571656719609313073812854657703841722141779387698910819168288182472139287542610574452576007031142909461106428324287942335608543301452621104324933472845016646618901051972474854350519244678542622034353062081037635030845623967272367981281399280161419562028942387319289258801246853880659625453389144878674361971848835897975096451085435272205538126039430595738327932165511668255251402736165179523756682545285265488172787582996381612033499547880146454346209567540752271334999468150521385098319503134954842535549591314188611675992642314494997401789700989424658088472746775751117654507442652279386609361476968264482965288377388668300549363819438757538840210478481475937534980309194011080544226076330081543579576274267810076517980453634319287446913967882090098424659951838884106160854946184402826099921492978733450323457310796003528807765744639523426310993358303974960150920435356144608791840578843043207366494402194891544177753283857317630822989369516735059497786501162118673822632826225925832529076478215450659475718800637749080989098631035036371382742344368213257786818474383998239957678601174003700576573761514120281117240041615299458294402009336488734122772708615805875214973433164444314919793414165357909626438876709264264837781407535023432026711171863563602378052649165378702844665847321708976746056725324956786987693252952791989746864661477107636549066558041146738005303358686444024794481812572850712677734901716546754468119830050989176171001898639442269602893721944939509170551570725651615953452715556466375345396201660143776222589064706355465949026406448297184631553132112605037805552369810275986845530618380299216412871462505814521298176603101533116783056156736517679146793867059340435270512769083206245403619150527060526377813875628615389890459770404260379579688575118555100544235532043588128538689059770432948363601456660786105489881447202088778308615583000127640471640510314669234912521180334904653516020211565978041681987781456134673006860310327352641022988416490844123523312779430509036927702387914828059868131752957989656849683938255831066100691307737535989480287069560595829729541809008297216300059524084405998305163009036612391648900953361844503953183277364083771126074139883359471200916825971722406565427394310692689651786679446759545389713992325964354428395449352905433293625568916313833210652822774654114646465810815827673375525831135340683994347691855359988078148635163234668624825235403562964287629566641747046091955010913320146911090396599593027706873331438882644900577881846569126861800893093625949516608281703010553198214312723039847405235592184241004639283032311233330274004573425858461967982289773595759718664749927131332147309920786006825449212130162406400701026475073375053303567023004968637922118372832234402969658673990011945301142190557648174648988383388678572932700474608548662908695365934716490071957166329477314794160010940697230668284806102714962854484612508773858128419908093323801297743324648338639280476809651261408111866984008453602530881074216249366851996480699724938387009988817422611852330520868886067183951433503855403606885788508349544825172780941892947635152766785832390061224041838091898717648194399109744226648637629930091933652860071222550548242290044604964776071306962152570285990715870799300649032393049788471374102913463999934564468043334414155660934651355123115215487740496552814385867833547693353924875562156737907274234918355622117873145796141601060734342725234742554799951416089455715014085714928996212542415770132129683652750298417023757501445172624376489336390287695948694803588184812249262993363906303681444981317324929562966767543347484517433342529003898895798246588783602008552715690387037016472717962490221819069357048932176940868904514839065598440067845014624053334106066035479127830003479244797583637345275842579734274549302465422297320069474620927158071347137182129677271270411688093472235570903486169161928811192833878742299948980222465016312810935405882229942698696215040310170129740615319728381411044562561115973974531548358105148795925602234590708619847346636125549622390530403933242167469928261065460047751962407339636535958668248283320706316389560383550671204337777574297967958802392123598607819668923334690714814397280490111506245369175966649167799374141118088837992385429230291353081225606249360648794920243766274292351409893677000214580303999866983226248616233514952210200540102420390030617624311572111772600555407722211053789267034540158271128236410254511141725179962241917725854335070235914405296617880219405551702233829933861059536582028927241841872837157727320955354874776298247173344696885932899733622620752195489272036595433423635744375906431280480669510959250836879599274842117168445881681034386309729207953888129867634363055863132882182610631096714606043845693534889570239914163549029100848605765120390665150748968387270274820483133277084029361838305695073672110646545309957733656646487528684121495824047100713479248176287068241405840969876686340845774639793473962968718200342491367736303109129034176413867689133937330284137472993344576744664772500848460753298261136599983037574780463676987876767654152438256652475923926425315104803708746333157171144247717045098717647039470144127209457293186239799558678826735324021203408994618846758509741615220532316576916370193708932015631862522626852470697503649232576985978621510045406580818324803432420503656170757629053363113583915321749731631124100494092842835407667002412392619102084147056491704094914091099438581983904744325419488123870370376555154401952815240485580141152265566214616826428073149828504987318424245044561631241179335601332136895186182644284770538238735729179473621413119276226712077566622994593128649790772370468348393335250277786636402671066428489028858640927238442093539437417862795500129258353767796726392094134114752212308036941270101215072292602360786697224008813899916579900126944209196751739963552479614428665132593966006491317502409173330914263519283770709955617519285611993307069332075140352347865996723678419926511010472876994933853801695205101218184441403605793104051808990796936784788216630985161388920561152821884246322486458842498616086438061386050779573221568838819167396550698002274078129458233884788821074923661010905161850803312961805624402372158055446058616944717592149079794150016009917872688562707587806153891530477685212600342418184307016055920304132505479033936094470386362428949556484685254684468478798855207970772395740654044809660581824298634782827211290982803596651587228336360568148375618615717708221371327793290839005143634821325162357274413534684004793090859916265495631525636710270791740548744389190560398061223854774282549690415858855226779808117202484337543997170401487079614224462025716098451390822572920368762834183914795038832489401689774430772882515549197577112209201570561750510373116710321990049964814531347390607508369101505742494233106800335853657432417725567370311257394005587163620047798595613233587146055941103867061852730747365800929986497645514267213288615600631881794571814167945726906764139167089362446362346602624426196411144399643257815768285728214919525035376141621877083449008689988247003352122965110947992907063482227343052073456496176279568281323671456459575839543403470653729099317634392065173339891689422168234513035113792975720412711458144254745777070422236801131538827713329437744074262433151978457628227456738786182083381796984168406402291819895765503680013310567178220831685511270196765972634546194065374703193969538889817377061934293741277598643087860275147365095678075732185183109785046021788704551971726718387570728619045909736152367625975515090816254351094103315455339624454774319773264743593829622576515330629927725224951541909611349652479426574821569050967602096852495309088343623896767161951151820954797270472733748874724703647427788926570496535531071803100885376314313447312477370171745610733596521115702421301168232610901639097264683798228839600857383143419013083046276079579017230584169582284075131859515868278230499469220803617170415549893394767772260905148597969871084288552084631171501540312042541190417778579585477411888350122543917859495959096763737719490112748268025610951135611727163647573424648696859036382063405525137921670748111606392931322772860840577567906081503202639261433903026397127276210512721653266709126850928286100580882790733875221938002325592642503808661500661366488495754647118461629117924885484975167728093049259717775779098398028135872770175423514752082235270950268607652881004075203990362310400769142018769173880705875591327611838562269124235029098589301152929463883703869478401622801324787617544680903363962465470745915766624554750328780524088366849648762816010282299893957505108558375970226139851578031559485945816916493410704857791760224074283072434761964867106023655513135463295303197757107257436743246845925224473449175371291494034770938302435809363009751766413624970102642582148853905649464493796097929414964556960383346077202100286687086743772792011847840960227295966267422104274603900851474926925571723632250158111788655549092967239303887779497182985786285667867549521790057775374711869419263152599437925342632628569851038638891572015396250757671237494042227771452906216819606238467904271499784033706323319692072326982766846729918130504917320786020301036504747820382230075478928117959131382652568449448977289687865564929853975752917374614608433032357254396551200119529706466521423970196585350154999966482706037044230661468847695622763085595238711150561975658308135126595802866154577548916744941380285603294319464625891211685926554653282959725398543083379551517782721016854812018307973256032576026060580799042750542927144145758285222707350082975928055831365162569063474357142671413390245078318631458984134525031938809637289257572019263727797242006965369294227952284405240059420956062148050464127060183620976481463186471881052322087319064278327969548656729254173230461801000470043467909123731545171176682678683169059916384485421750211888040846291658553988983291176042211207695849157549831363458195817124454066882560872588813997676280488142121911525319349566055973109845435969559487474788026545640223450775439178579978069085020947736865741060675934162893093228822329868473328111960674247736930255647453016481010030226447113116414150280592691858858260336580085131619067229694161414721399322565033073887960943704416126048433067785441618296279448165602506490341457383370916667429749663184962194337860182769404221932944411088804298887215679281316946231057772962266401579824647165463671798429979926483948530975726901877843465685404368974340585419553422859493733894459473006959580513849105606075564444653949027654359040871231566662655421857290095043622078535119749282534360729389358351268071662077608707548814989315073284776982564722210028854142941336499668729796907999398253767910500097317799288299619907395088624431278202189850448702683064190208250754966369077197711402021221683059196914429905003096071023214698954921255183877853383342996319569373668348520667801925973644780289960467104272863145389713632598972422335071270879309033986336412093105672313882972918129217213991227120557540382853163270597492674482819048123438409580230243587529580815087141054763779794274224169648946951285763153141244244197437657693817001298609153115527753371208021000477521200873925703404435195182959943385641755886154639408829724787889098971103323189559254127469415155293881402414211522488833550334568880975238992067805809713743704579509027612032836131092820686950594245549164340353917291104366446762877325769851858338318360230034908324120566380659253439251802384829527323561455689927960656673089429316330743447964684306265324486731980910663340396273798058136067863299466575641159524605705251720206609900983481007805867773758813423158046786520509403563430851700472974605184530873508172149908388053438073541541790729566254314461532869653287381440357288623243426283816167509105852487050258583106346462688811369191103467749236977169558073314567267833165247248123265135996172716335316431934070605818639038381206991891008909780048546528165763003126990366451933140744157405398194829540284585389695061192172541174820214934686014559179405083370010902404599158300854449698111137754142315552402535633468299772812524121437028943628715962967229699376430039552350014604774475209356621477359783333260561082378745069453280671497277376674660967111622459685823568984331522862183645211405730348109112044456320893525381713406340699665099276866640279258262552727262890968712495370542038813192080002058175851740310117166338479384426469177997984324248576473879565129202909154738910761906102479405118883463721115701469056108553827879979822136396789381207490605518361390573595191149923375580730326017154857581704127596608039756604244842563524208969618141875850411432380934782610165516226397250279565292763205717413030547488500134014221546856790229160561510376996787038170784313062459637848541500818529294735411082932176612685642930285742532563075740013876524266668960100838546491309187623863652085498862963282462164825457885263769969346634122717216087748879707852100415462125477148774702430284549273100376211283420878268951125522161608148404726003162055222157447302426843419248702525744060859007911549881810219382373995642372607761603772245363855191536931764489102946275066037347495031573683282574556181016893921364552405045768168185726687879769513341568131293850142594449323380511898721402974605666748453360182655517156134524286386413759429232987377184617765518063132337121417028326479147315202112377266903108520870390426949564934035822442058464594327006384921072505214485201864920630886981139567294060028662685183383367498813152516996379756506121443557922731118049752379934523653507735494796695929852133261864377163880952042443388615060205805535787367377287930505533099487990581407529243803313666141528478306824292088696213427839711233351843953008443346769583065513713629323822524676608908934751069017881768754149472571896618348512177154045826657127398991961927170225330680068468640987538392731248624888913220292572443120178291011438562261504628824756789478359671701282197355185001060335230096226018589943049909782142024791013244495122812853908195789955054468636195681025075266512138124485881541893884857223702431074343862547719253916487668406785433170290942143894341815555238892366704397898155645096160851111685517050453031435602082707741653120427951272296996958579773628598482053336239404399134129006947714387334867323953268298055410346327480171197172218497488774346267801064442936779462567102515280768139434036434073994506705386543912559057363409025602054056128597080595441183474916905186488153348114068737005755032103857020959073647905096887738598851049946476814841828581979705994013508651917233126871392499065147812290757710076137133852250355864359322420312210415476721502842029596657415833926586420939359247125307755111894094810048311766987927256686480891808750801439908997600019697734620762990671258942568614101640218588387352701523022059907422080446127254653981645523605912536253392129485974385460566588582460563128095174743362992945173001049618851015744444940839030607428050767749017767703238977000118476300326402673519461853164483473516197330164077121834870817636351961217800099105918797206510881703129826508427191982617454034346158428139051454195715557284979293178290663256260372304284252538227679436220880158514414504201411660363181512349240546411088333761730621900091593270059791107155956524594343783096611875201877584653484606101174357908384627724321705693234024487934734934105541935155740721738974068185814853010931155360536538672410541676147271394625639505653960968811352356854134523890820833799584296592010846786561879089707466849230996357888689515229978219509309581918490272015723563422337030294367598438789519427828968606212955844966637744118619322916768259074482581814722132645778950077072784884249729628431695071399338625461040154177744691594010522485675738447166179530869601424896948252078612072115252624864211502659370167866457864999397955957251363141907934418547579311789556379579494584790572277058621315078504459118424608228941078750034908390544301238933351405743333271279812068070983648326448266355190214015964386343729217996118369967852815684576394667382319563212058904995871244658011590066065056733289559166538881518375582873662651154400785479980820613342100703865831037163967510396120289502322025858051610807258060747656993506746729182056636995424318074936261469126155746767931328416349229779273530749338264647958387550814970021173763097731061847411931730557506326688460887839768765123063844143549218014672975707210900884290639009072966787234170468595278506396582654528055142722088616302157061158529071839674209683454275654250378379540032444828928396394738294665485755183676144762062606684200146494138111420534209341271115866589798625757508566391532055245346151213569259850858622964847225665887641338241607227866880450128425813280005309236759291235943116116321474967305484411553045354919139595223985420763909360716413175501620358101892644841947382098226819896912243230918909140548106617511162729910711289204550344966915738457822191067727117541851941483484178026391390426594694799065492097780071820226228626356846132016634406107566161130652269807129505119956911844960506650690137423272717083774458600232216331247598980704617415136389325529890900068684071924680856974527975742702896383717388036815137007827592690510719210077430222069429197975527252715704950124645384954911439584471591017429410027902734636855350809438647182517975899566904237860277757316489404838471527674583956397615406462961223912558650540790315670410689496169100086435788655318312326374963579504977784487154050134899052764171312418953328684084387245619988466842331650967619075588773342365476857645842080854805668032853494592988861103355221390624857334589242177041781381540863785188426037735822468135994839676115530802059900537811105128420619383542008714500335372523448628923588383358882898555884173982578846445375922692785623565073078834635166846150327472206358064166775260424566026615569927266952713883294555925273912601297031255218232345030934704881443850386291886207004832749205753473071227938994977333730945872218901595372170110956960089819593246690256225553092128609313172409185110103773719462819648741420610233729482591485590499843721557050207020988999172663694823615495996084887548106913796763942262278024619925062304647623846499570027910998522086747715906804760431562801411966216376182071011173821759484572357062712038271863843844799629794183530126522810943612688985920369557268753961755218010688382538168873252869766155825356969943476324196039001974615984524847054786567219653924226320302983562480882157708971030729925932954805729505372113191205024238286562106149591677710584428918130191582589905410511552192683514188642649793905530791575306170171861821797192201343881600726788380006760978627093135520778037375535029407278429667706460520324337704043417423828421189028041495821738700075081012477227665704061091429358545492747750957573319707723817275741807996547413570040085587426921226739419534528569498980450127950880742306580475627666258720830198341270700643808541597039026614104731263681009214537527781803658964612344818465680933229758563464343191857095899522368994737598912514090067709602353259681883893734732415036623873471461968335099165739756121394083605464378659358338551988128876906304711646628517508481678126433137981941438916310687630067856571638195808337697160661750637837632463569277608954057449112074200714787263555164608776664333892420889139916694410233039933708587505178606859776214464465929675799570220927686464956169802633268894080537513862229443393169452994243909932516590876379172194922590734812740460159560712067530782225607135398533615613714545087216803745249509136060541721257127570016903697343763142336058820696705008019168192555358058731064254355664204724965008156382341098136117873180774145248495952776100738108414027571912188456750653424073878464877937822324671859048838301476787267088469590991973540073786676696433838781372581743578488496118672324489376973865519852565918190848695769438496369090665131077555177152574401440829978067734693264621054575435751552570119335241625991469409408568832169830536740484155842605906587831162254299597844359806862432653292214397210010389035052493964176908297270006491241669456201769592781908960663767067389690802936181581536055584361160582789144243501616427674562616229427830089816424266988028691658220479365623609514225713405208269509082822081143683064336307168173581828368172261497563167900203840202767583106326359653467311739928496823026589711447653283957153883209319817950489351168270414557488777651259349313344239538062139212579778559769167957409270790881836105276746332503639756259122600790698794282016500443478949768826994298377750715848283337285631083014962069182154502549639816340700584538619111477319732929761887338064158377017605873820278592639465820452665286520504929333943828858097335854761332339617154836428869728949382987661408562085169065786783668858568732142594831150832645241340751474537559618235320706488524950284561980675112415661659512272616142594471915231931490934145634842401799952813646783926775766559715287053372462051097051802666573922101083682518416203348439812909478081464994828610378588827670683069502856614161081022492455036535001087539631465705341403802302120270215470003213673481416329993377530849646454534598822296946878173672858658727288218856588713093755994795227784932608320568795919001233749211370596315676000720731434037144472435613423987362086078024088057823456728022092962865410599402484962620457765031267539242179449152871507456034938959286446187623873822221266284160564734846631303142618254703362577784938130758910705201240109774387649345762112150850893786753235559630319820637819792581920921272448715936101856102380215450800003509940212606507888367316655835561922071051589763232533163332228855912736044794243763779412981707601370800727005303848316218695321187616852930228062400675208478260589057491293443734875753846439765538751798421217960471022947291840257113491472285757975430545085414441908354158052505040243781573275747741575702847810313463675644021745087956053177792761341795784884038324079548394285668456166432330287001386713428190645502777251817313760960951282928264472479023059395461127732822812067564163415605148521788448892497221964909717775237508411908347329457337102115044351767198308205789515365446959077004324453654191332704512757406718925709311853455608088826462233003304803767664711003684406506784397274802072151052071893993088302912142663291513895867713629041919423618768631762409944636514433376968758698235908704434531850512921794668407230568160560245060000933284277333531773295615161055754668107063640885481132801638184288778459157026857413333702075056399563730981772315965439912053309943568953716975644727994240923568489581645950397584099878784808839605690858116109888323574731719080112975080311964692097457031443450622326853442400420899709428238794215955148615023846611838089654990921263341800358126915257254458121733070433539720609915207163780881629276420066523795342669118694461614005742877699244660127874469404965258891099911481856017556880075210494568267169988964460157428279100273713875042283854821448382905025227981167478388245970088084875978658549152576572132581258295153068893059183839603821514112577588029399816596087142805716271264162973823716624691869866742522241665494071693864389689413846432502917054844875038055544927396288569518847770414284159287886330327655957134931762587095331835922110971839931157429607151987692665734761066453675725255016518347129807841776651508011927030645071246011646495762399648121634156631211591934994352531855507246326221085274542816724848875531442465356717003605705977583436175385891065941519304611982500393074359351989704131913337704981733540338217852333674800383398658101964517395446352924898564039432308879472815740182889094009785760522288719256286561040729626525926399960097172102509307206664894375944328472125014364999902881585679424720849944641203504975979663806921119253379691218204441049007759284236004818091912084990186588796228249606374220274565836492596056081521409709145643923277197478575972287899835564820047750059165061500020570114427977172216207135781300350483531812343836800095690529883300663921559592759346652748981610648050030717000649505203480939424103694424818775815979234371643689110901646234705606079229250843827131513193914250664132153491899240293682477854439338986246145725062853635942445133405911664810832493350378419338778135017970107159685694161716164125811038305195414837305231531942245714836598048733350741097426241932711967127273208187769654854445456084753362399460839015062904963455373136535770111524902690716522610507364025211796880357272689139609980194639174414173303028349519903230491431873788228139244058876313046778937753737959655036559140726779102706115467033053799184700785401379964902409503489759438392597107299459021596417203026776301133575914422020409947105572125954514359276714019633602221778193351549957188238562501865198468439946245422551921520293539240224927876812216901061277478305075137868009912701976334040335499553735209121280748405209956134654615833126259022054012519075076894722465172412046120897504680614463575753484611370310578617830461894268568403762292155188905637410659877812654283326711611162165568360869127875882863771172097397057989934718388599968440189908721546227105630350402622455697430605806941135005461760124853632523883423160681113634645023133333289250860788205499003149772367910881544904307292120869708515402942901511842546781796156092463010732603002301179461135758615562967540153421221752343953731810841156736369000688758365596264587347451959162258020097486218087819250306224849113372733389555633178506805099637716087387141475922057726306033089149050346571595281398693732320808293743268534341707580258432494913194751303907056444354218938041834158127389091630298740490452321253068517354922560766925132725189225944928621236180351900489001355510982331513011754569103738824363301412730645303097434687121528095589974915698591293123494716065139914543231647387047689403875333600333660970407638611793184343336906859322228130529995476668244509093178672257587127809323932050201515273234840290439528348715193602925645718911812648289744895375261416341191365456365436672331831760757702472950929309799978694786474868178878972858939752582314400265961242833980755213617363742146426300356563568205497452319514799996139929147750234810821585145269300971446439488559316397418439289003788111333574285561703434398460337826197134235083852129629268099922896962877170212979926361352812370981986355719698457176674644053816053933982097737071150532970525658919088360536116464939426587748324320532014696253946736916181505820597176185438296726771364509566960856067275383690094377547904027121330842837242936007858507137682317294967631881197768991521885263030890121736479652059304899730849962236090199577882843187657075782840773709546197210968239166511383832177274588267906987228085523043336562453145490247818281021613832846621438466475534807741111908945659995354161901298767323774811853243337722647672161037031078416304188647377899981754658906195028276534021073773195860436042630743234230897439695107390116709046478667943995175230298894229332178461526767650265772759226009646660632698658371361957266624969375963521107842371722919581717154672066689551313850093524931691990094123073481448565402647090105116771854405793288978358077530867296625471170817846783433850610608484475741269516382760420302400017525608132522831412729591299678134601417690726089370934141344978653621407080968108504464132753545887390217522589473931088233004866440613858865340317834774846695408947055277363311955699157364143552691583983995357956138221188865538929027846491137195955506660646880184373077387486015238290709951262577212658791181012981593930558745529355746251544759614462903351854859332047560979089278894611344043681596259528356640744338887076887884739010157080748811931013468088023800302510696107936567704647359942022564847063400554225244958440133283841945336086741298491888141061311361674736024376946004311475913704221188943807000861428161868214260610436637919186997015327329492911576582372722014948809269583619969134113774202603858298099666148003929155822869408713833554044919757076069372362813821659143303012915899753419893244565436790544562103234801900268778550615315761531182525825171694736336789890851395037147175094969361543933629178750683377468577375547989935577442645984248855860656225286513796711247143096629671992347134243236416501879376474032271751392357314811451168415108062097592929483574044471171015190725721060966381319551336098420580610744924748520054549123506355006560060088830307699813623739540155064278834810750736445109568134883270455448926248365984981571551071024935794319006593006717769542070933687921880586891776087627754340318537832410965841773849795784223389683941019922676186189650189528232641518686948897908156411619206168353974657382422033315083924674836420006414576742259013457574592070965764130188916738461696424882097514989292700955546068209006862042755779166692194134922197478558052117586796125366470275054384722482439444584647153428548272551179961060414476277870230019524368222970116183012334810135742797433826503460883082516391667775613476319364327652022858294997052908498606506356851250357191998216052918001737315079361866641680287539849488955446134629257151125021247294488163364482339305645019897260173890155580540110729007319127802688403019564380691076280664985477344413797041926001801202990051306172879557141090902128549851652192560973858872752989973220091209497402158249118605833038766560418476995124445682238674154366424764367322528958915835179994674436775105966200052786616900935656484874284621918591186819654941724561501099402563195137001008326245120011407303635093483206002090053075843228932356594259501972885942730634681165258284375369168480791815334774237448488522422922684597888339162226766783840425607166956122804038045996102713447846218932479440462283226381083643028846908695271480286441388402994033697542158333693124652563342006745558169252503374805291158222481069742999264444832785006841164483490436247965792294478201420749222862191815485571090291076846909022031698282630007901077491775044645612923842510358401939750518094196357317909587497647485370202667113791366090587320724859327093383476127484342928815800282314903172969192918968815339612070554794472172165212386544318565736423385727434702918304463826443292772358403636835534238143732344123267036505227025830240410276977858408849363889617764010076742826068067606672087006878270322731260134160318208456372903469982574344847304549083369055168739303197386548880233966891554515943801726838064947129841836165025189101816001651847310377741869898969703413719833447173556894793405224899740711007966020388904638149229751443409032650806042381420551985808950638022232051347286699253158740107519375628929655035493600272719931453204054056123648756531894906540990850027247186753332616249528911770513684891797685472622862913503221273775509149947096946658437872102884512428159990096447263515284895330206982179316721590189279687354494233775775608848677422780377167569406326401888364593609338179817212526032850910315078850455637451029492239163819226202727630595956639246659739619590193891463606472260831640894017753147446974616138182969238535394842323253593950155102730580347662782705481962766260204011857577429730876814343484917688176765641773518042775553688561897977590447662277221224253548260986402046672046378455670175366180192549482356290931062634121535481735406607496482177196422011491413931027462307483810149731522944461460339397384426228812119855656133270039647334486688184786693630155372284339057392635867322181272852723665666223303707729811259719154380248208212538430882789384799989748930010463455187186393411254119004490615343348133491470029481675884902221052403975515981377634210227726710116118314990352786882389787461306796539016915247406347696767601525842582910674166889096602203001848294078781193551306130644211567722318887413042694756557086762629436380690356081810755057817998394053193932412011891185967422121981779532932358234755266958041192039051824775738189216875532589895379977305994250796324921221688324425846199589364857547535702509050370320945170106003999995228719861978428308296770994181666772613584520645681719911462670196722670398544627976339277109824293404261178451605140544961071629908413165704812780068576200348125467396305727789434791735897966068324150866475597763186619964427172380527845230789797385024224669014809301231892601122266140053290139270083504008840923037649418956950755973851875716299096343711520285662536856455288502668036748265920993586315642509998756842473306633895682600184395540161185076373686254116704590568004455942293542395665487902642977433688132276935176553137064490989125250223750328609890336632800554508370061471327128405652710403035380917832913978810934840154682252076787156271373221561462339420813564222805498568707262444307319545230679311220610616251844660105302130255666388476404915190728129280373226462406883381466220433413107073880383313935921347810850947524419112160932140447203331363958950953554900861116789631422204177008871529262070747302207856194351734091063603546646603179856020269189901137464661653427512308901883762410277522012412447014575883646256388862451913696769555671393599027596842386677997809208976751097147784205626689798437592025932152212781043261109711491059726150414543174989290557909586098124058116364681769659099739284063723537585006653820709754128615639209322097484573483396264629637905953198820147664398961305602251019463289984216471500819011684614641422415681431083400815922473662814841496551123746469860666989967506306715064971189877257962861768916615877041203551932290865520501049360088476206108082515386259880152894554827003702280661619559543656876283203858265506588679189526790821330596976884874499777174158802721914180967711662324471198814017488917926509701305339461797818139879677034613653965763476355987501881515062569284457434094272520384973788773497719981967935018563450102528220755372414545473209182363473725682848944310741006002498445313551113550602289907811298816975378341232686501565581961055882412105247437082446703528345261756210499172845310424352425449911703636879800046118196425334396801967135903150225666790777642563665085981163637424400800455373600906314410367998936733940526912257822441278048097488908093733382845472536679548414506788888136139740764001875529596446805127474883361151281244096510487183480788871119825115336339242534035293704790401804636915591283575120184182675391513678261010332005870316406373634704451306634057264606096192993034155516672227191220695287627540817445693875765946350855852077329221993882544037236270496395876102336236981583721276700215405247778661864371646980678968899510587265804781743419355612298589040854863675142258602964721297942446699457096753895768499172449478712793028173001239773327057883480642164143038816101520866268855735982275524944884319316324785099380917327090044007643020592509803646626787453816518576021142418382826767608234086898530247824091215292460497509105131158410674926545474912569881719714738584363656440652227446983063209107191124549341611665379480115253574468956304154660647297459113265585553923883623728032508980791641641143516346538868306133843199522567006617313596466748034449091541892926126294621438899168003840578625151821355000462362803082062153278132246613651475716670521356853860207282171237192804754450897879708006416034549692019845100306811880811748543673302072143852287229083869217467009756511318291365739690485191927191125938739033989235213610614357178112198820804668521817516805725500043739929557330367490230832617740398318953967077720488078779052801311956332511179204199055596342561829955142956653860849772554874774077785203136443580844712187786044177987487727254428514805157665477259480564221615148761314406478847273327301037909815893672241565956557614900290396181086172083482973437958070722941122721998640803630734340745727709293138374887066291693040306922070179724595554235088399714500861025536202895468154052109496382835871685931781923969957421407406928719350297787480501830206024326311074965895321304504644059477280918190189899484336859036433782239820236386102560575975837933858405737185887741853986905236970451317048601016649087593205778383658052537613887739195935174072007681808382355840991260331110979300344857436974379722449661856696988695536796908056043990831567610806723274859168537795269463976468693623853073230289680542323987786182357007585388738730454487019199256983619427414042953485336802903097559515838806136206506919533265996779670304114214281684718720306801371327598669807953612078930090291386114527730383115537114514352609976945826918866893846093668684117375921906954847267214188018715235164216389881261004521825771930730445740158317390060516116046120573649248279566342706411794038423282472959398983072992536024138690295332654784999817098957102719876827212945720658282493201566488944872043011485552006607031694966830114679646074032548154446112663517141167629747623796139129618782980317454036218602412193137034107094125762538492608685790139697199396362728467640663960075493415732817717641188140777983452667383428820287902958132538494494744127436335550751599955080122423867257065281281396014076562603187996804268455644537067850100817024618519859933960659464605571171744346914694512618785724036142885677454425753800338808409542310971286086104339273109807153589772550715845744796209401871328594392949482276749450083718244478339078080993693857395774443866977182970391128841529939222658568548271405740059660739986398263337742143340452202559680593906337465825163872295349891221531804974583785345236850899795825649495222404934766285921088131061669418942441259870938841772118946867989534290634064071299920957948131527124460469482345395734872596853002117164097957758897038458471557616487155214698227013200987223403527632327350167215262107341085616301097557108176921818784927163426380294003343410565713142287720317531233191304363558073574488531068470524603407547461719208989022189575574872923683320397357683333180542249167075009098495297709650508353358156805634117690264980731333898791718184767980125858073138800090548510945164124474260428209223004973730777555985867457280931594209403780563865637818819760766730121732274619065742705561453086640686006584816005555066089915710951943915148610529663375418608944890202879706187086940147754137218323340897247352666341924610029012249417416254947542909576987220235887781231397765730727964141799382297745068963104038138144079583967602505193857357240235433788908490679868374486216861404701739678705280831845329209787026405732994220752275238922127810373431517701079172279706759456380248139056949520655526308939697471119326670541844967162975606923767540320965235375037702867823937215156343689630995446241622241471372952777666870021115500204872052365206375120595110439276026210835816578059757985694878885213276613716794139183188752373027502416296320761346415396346930217581451606426170319214613974454979318305523787150746312061761848998322608291117770713245235982405178033890296149512552089015891013327747310499824645681413834583384520035296422540172870176015478665401341997653194659923082184966317430481099421910726581377239244397531203730070369893642683963938191707026818323746681557627367547610451419688040744787813259698063693375352355458884157951203079985281529809470643553475687849415599810112185847233153770900481236174356527341760460101534211563082828560284521565932575213097510383096538905185075464836694869667873312897395995607126549610607186482122814328489715401015418051422898173229655429317945348661143539711084555192535006690069777927682451124097762382717413763323824301835810271855281096484153264460591554821901480415045070384200851173122158173876943041485226813735358381791660442707412459506206441991402286995671956603731044161588688090254133393532447333099512928877761156142125237665767146469002191927544626446268869505719937136425815402448854125421807357570149435218067153261863731385062462918877651066711300465434133096614776649691621142300382101921021005334457519069876084127577690451860008400677077436765336102498610705040913578663936206343306432759223447790553771157320710813165108466554047238269834102839207838201129128358498239698908630082291085818340824876562389256414178710071120244675754795174961859987727487211452055121551317024227498713927407697909940507464709253719774686053705849058710862483644768504049611570243069840122621992474551447198567691589059154216627516135296468585273466098968768898585608091560004368709249939603737110105191016689540957530403966690728493194113988472947421036832089712642547781042845712707466905644339095534826625508377583273926280390884315145123336298598270046999773411620501688371410221779206350179602542091020958970569092421620408751043323435426496991112441723710740963325571587826326131881744485923806678571561303934893652551103149835654366750828658611022290665681766475195787341337734850885278196545146102842858909082982322438894488007352242491672644758849512597761767911146354756427864470437102673653164728486341991448970589308704077907269498653541968276340181689036459093810425776421754929586106166510964624734232830911991686899151170895602504104792089853411528940519198166203401270717021496038257027221824668537818322878828404629801883536157645006664942785075154662386862536351873976160846941834939078998731426979957642643942462879410469890381542724715066107946795481235818247506335868345425189657126753117006312947790018336487435371533580447858684511520992334545186113222469351171948592290558164219487170438858482481023837993004685971990343722912554643915731745774411946853880203808870595592131064296482197296407106067107976042915893653888852518336629945200280462717289861754761548328948609995465538083062409667744276779291070872275920154253969084682571256996161092430343476057885990065325128816622470144150013877694768724365337708167031207623195959598567589789855115055532095960254332814058133445025637913125302450305855303093290126007185259534289370405387232985829717333733949574349216456148787967020813645376869285124574702395211310995697568696408540893099576573280222224095782342748019572478603622021534049610416588037272937727531801804065083211459739406544147339648745584662413084260745963622087981993829769458211217243590622816706825139104833594962750801230214679959964927229324524210576509846228951529965746569815498486478926348746725151968089564981370604584300331810655472612893918000382676539576788750515486438655081736434664748847881931425301037639463219407866671937281519400766664718935908004853793025913305992891253370608704045250307289084614882908503368467631431350627413773618252386623982827010258181611892837115646566627066569688505792340240687311689937634032746687018855309217635196837610984806396088081621392589533340391966975911548165821579861545243796731858121150345498855983821552104924496275541154660983983033388375498403461472848165050258204109464252208677742389807666883446307772408832540968136425890513922861197668689590139874858652074348981511630645593668626689285370894193934135761168377135041405613394285891621018130662285888412666350999803857925137096185695542978937173812807911273878576364776646121174318319222966202281724171214979324577538543213151288127910036867199403242440132311764100225293934752545117384764862785773548110660343047297310782046693025210332420484845792953096463823575158943952724305085264879302061122878201441381254144076187346798855634072617164178880393862640855622941646433047394996061088464020455433770501704073559562943148302322369277828602513320245218838784249687258087511215342313807454190426063724977051280090971744293628548803629197032756455625803692930954468012668953896274069475579389392838979333639700004949866373398326595488725460188992194482747744015485730006718353066767746688040656888574658008139543530491116985279005206471733261907755340652677561732682419928150620786999229173580130691198669898399212991622882517187163372075117648047508263166811180766387542506034802251919477410274725254025027468377359277484238946648342032317891435521878258276428352091840126944178633518476289303204627069242837181861480771732243573204082777594601080618079841725173193902043690028856299143748432803625244703476568424017958108853304747856907983466950667511802680573887259391616164981787165089472715942347963900629447209447798286630208135085716346391266260359089967253212667962919465684609573501364972527667768857916252846780394049497002875766437761007475007586469414177873716209878667307316883224094396701439648741861854448786557271368043979387209358026181059002840474475275619681515459497452360618972301984508726249114966948222042515052862423168721829612300798999938913562639889116328045688356198516645887650595472719234408385818205732288408570398240251327509013637390169101476603799697053403473431648277439361165952057708422240717951291383080450668000840185840139896952052537908787992047831979191005861935392952526988730489480441142334330810878834009219126289126982482255028402879917225373622731091728983724629824002519996150048197031701144968152940855011110821026496808888359572528910336273584848312015692530023685934409844164234236057364992251052602068987942968691027796384266405776234458375444448973019061176622010199288453164650193573367538979577607404248318829310258760875951608481244042322592823600457558039178538010654906106111169689504249723523617115489479565583749133292172967289156586336030232142632434791286944158068005864451549750204144715934184229112795151818715859663252337283246166586347611739043493182804778546507385613103331070162522237804340502980888783244275588373353711993348737130926266688270939042212687900188535538461851843090575007114558888634560998912242529619544968146565171332769166305722512907851631379784352733170493662914300753774444179267951711404800998441899637152480651256544042076011428367934153267319379468807256299460533072040933415151290094694637195180211688465665875141591324654450718273116596726039594658503923168758537087906086004897503149021877013422105590796589903278909476309117393053860522092513904617606505426545776765222915937544141549008547117074912531851503064482989688122653383497725244067311830305121799164274328153057635061089934389319856169420617506436291068943951690199559326429336811952531090647122362975272884560049900831296239259649314319829516172289537439934001065984402251214146946323591962968743550730788017755892828554633349299191995651537887066767530883724919169832274112659733531265427543596071984198798936805503765759026183561647908025166339087127970897873831981913594945297904453775349333026037213092587389181825822981123693012081923033779479318000854626654655314980027845375471046475628490410687865800036911403096873073949404282487524537030656578865663521833651500339915695867756650432148297385008255891584307163713891651777186944490899408637400641193498760950511312605427122413659646326835398433771614661019039269810099312912655413329827638368152553050925820218313088438705545275296805205932867141013353199651820299114309867879267412622513129882278960460343416629957818393033943080952785212224263048949777415665046421385005671898401042691243738243217685730753341093367244722457535536987761597462758737892983376227979964173536943885641042550665655188084204270579543465232561770237163689943903218325284599989875217475283423096601478114651616383198101216547950286640802889773247593989007630022618812868628277130163469058133065263625925404488813870323098604214628868558143960298102012323894107160445767189167575110968066708120584697526112069905093070998579420746244596821656644971504237571946967577400484426608382657832700166855515409653732778348477626977404562754897185181762832161897909756660462447008587442326539229133611546431548618834218550156545100100832999384632880222251987912753263920982479618479735686200748929722329763753835716752010004277826070342098874576214504228484511507500384023394600038990137669770141652981586412833118291333016742586820420777659110963657884958461394801740552494310405231292275563453823618487710356643398841820088549947236907343246765448008382225183275270877032547546603668258842710611401520454557379744282695551360478076748186613337898217147607752503529081037318621016943062718065724484706799122770248083408768328615055923214755102513030592700009072486566153201195372677339185667034250585649469771394970786287318866887125411214022009687028740340960592117282630315660292574300382048853898817151059466997524034141426322571018704400959978831914264653917058310462225743262591244219910013959713766906566073979307345644107590306658441485876011014362546239405919129854760296823105440054975750800112865685290895884601460705567606510330454464791134219966293886624126690386008458687994258838098225457997904611072590078224680281827634452251582480884350239697421402652953959073067754482422178396188012860961790730503804697990249015249108709760288327498611586293866582932180815168685474736283641821504779745244142062769026179628652690630818160464467505231916469584453014314424190511821108621624571398702050797111907526617501308303438451899866618226161127775034779230507983050174552492973162271599875320644059387053670915744128388769460778164205227343948378941431848518034796982337749885637567765999708965512862713065204680479509436486747366486491749927543892619585828717662848179950334644634124601960207935284884012007704775302097468403208670575739591117975498948061190349296812589212328418358091077562878660856196219410683554234761046780838699256312113063840493061012663828705570195328480187509048574169732470494475439530326699666985819422749168497679089475699059051458800542142327620033711247895531238696836337098258254318221156587558035771334624305967950763303609795485824673224483788951256195104657861453098051259045338912987481976890346268774105941770507193302141659640028435856067001324988026751997263391997862674799100007153286948587762237255419718582276296502278455915877838232905862700314948723833179099224220238054902876515936716691910458025478805672755339147266505580323883726871676307146980742396674070591996694985292636797781505673150605813968027885269696232119498222231606807217961594615839454747797413055874348268226595117315425468776434272622404701231038494053732669671197660176512182181722257366822525613706896498007262939919227474463173247711962139353338418471599512181337204288383942416755050247561488772481224964361699277965746035542759968010379940216812018492522003096522832881165431773154791321820105678727373574711106639375388923236791606101798804560986747702615918410825077867945066102644008766700384441147041716983880662301180500400591628318296995095994549263139281359959398612031230148797686159141270570944829738666677522751666850588797846659638667722232400037775477890664519031004813451626803178180984189491515352431084896455748003836416952534577734596825533121590417308528335050291083134021319728764021590472051056638215832260626716767942646992078901939305252687228943922964606945477032171883365406809049156100250819534586127025348882593569302078144884431350337917094755456704507487484426140566658363312181901831967778721405354093493376417123230285803791742201185701167263974453308096455169082631274969227944839986733685807072432214438341849117232776954305366542235187445153923881256423655331764298826191304405003667092873439194967760695850103602242124166476746404062652642849705061870181514870078333878968397487911775287409478453691839106404051990490212092796704149928697360136879560014459792768841042983516430283444375007578817192171928736836912799952299307002861246001582381684628720710949508108731278777846821107005087782325809362209414123936596620240026850003558618739296822319339792117860336969185100930016952687624143050559886891692329279051034912282969671936450375657365759597686307270664611485022444771851734927449582180763359920814133345178972536448909518223370433292335939060580713336454771648180641594558931195136634084850955062918927170367714336900037642163197153520183137791173180687061630830651550952387233077377750324615858422110937769827678467752798947015591583812669529994105435734827931695503078835499030850308290712683850501739299525561122628403140728218723191345272430943717664206891186778073239653975684113143289193206739096642979702870641910596007824313187978129660125277103584509187198781138434200140238398469370781311433702527255249061824433815483995433432520616819470510659785924778542095638609016441317931587026356494026260937550508907663972204686383276638971806158962156031994066315961734543674834456146922741676028565051306423040561494646225479351713700393285781658839922612274667975833418912906551784947037033834212653951255459254834156388715765552822367184935943090154961760726266460250828553554486455661905343655342831939717890235027251015733079922048132831641686919678433689738225356641767172311681721540178397128815879042325714526727782867957630015067361124838456221526674406742896658234436368960095553450935994239606938725389187431038917883579103349648803712327010397200071635301519789792523037817888907000990261277471433845319604639702804400917559714132604990290530553731012950315772883641349051805622227705854647063295989138334856039990753632337449926625385177474041632475145162807599565616091346778013625666438905457509282711113256993601910364010636962312509590379105585321081412443057558574192049618260682945766322963551331465730855578604690374768331116407784267632581500795469922647465951924822989748751641721223054256580521977802213563422965434753042782655762609105663021817719387071810578976208213977563100603341199952685840250029216733321147563210638580980911619590917832693981507887795785580749182121115598387638472144837105091246142750148336199925046036078420924491195770948067746091830470683334265964439337112863455539173774709471485007177028797612465647394037833998835964119546743736688012918286434322168321106098656213574031534700247130013972494932896034972183080523460270294191013751178046393740166820416522803373156876501881915169568873686987802339496225053817373666955683718190884804890273288259591410834624534173719750072565026726347840294637170105193568150808721465330223401808722656979086630541363672068730681779558818917300078040305242289468401541240507717626338046319788075075321006414259415383522455304096926289834671837359343711390033460862941183600410711160823535358582142183891907544720888561589808670014610844601509275744303833011442163485753250493844074915173082626152095836473344197197046426448728118141987299375706241484987460637841784575052483178255609096166211847244451456570063386963989267318989424532376516395532352507979844956043013166090915413545887398531392412133101890005309412146736578028237892339378481698369472953538643650373056692761158465850942029960798658644976897506079371033042730973904967714983815452677384220248957689804751065270630358342020715813250205640452720620716596919394705730228226224329622071701921229976652627901544328344886843374532233900398903397745001688318353018933316234265198235175793760296713424544108352330712434603632767349416467325841925528685802091172016376285946639602135127064512805036657437221878293078357779260751985725594547909657939925041469727880084082670915695229051617845172938940911103260025999671384940290728152882586644283886117294912058359064981886782236918253127419658071219136092876362318637091301288045463211038818662491545706136561277166088856589523315399112346605817899241945795697023933799683092280812388461893777814306227739502048807420393621404843626144448712073601574802200674173355389932509036534751789662853784028413771471082024802581171354148183327059299863720476554538681533035160290132297182496458945362651643860422028020306793580688268488421963291824140616207756976727350118027507012754898077598767869270612727995827689055861747571341907055561943956936869441306219705088046419783726299999660708670780379098097443810808670292411677100512497868750123426577795581416223464010160050160537897126550858712359152186073872796568501297602170532801818345183282750756611095607783023796994728734468805319735297820814602617483634786396580212939298408666388270380983446618028232006612982980193466614329222836137301583147263296362237967740797423170750593702116530926913026167262830077067769971163921345933873399810738829621997218492951118278812538724012792097822794508540683023192871900910347141250231381914631933390782687420133672942582907562784485310918572189621388732356225651800200347355114267711394545611742856514795014737507654600820199215917750002222765752150993687552481662143692011262704210037729315225416346937285655984489280933545901291917513430441264544337802078490146640765157575628469903064088541800877157017362083052219132306637948175480325163348831156544756071797576670838955800931537868370924554185572926408612871050290669392414238739317955689687043497906050122600636083078107562480120874867222186502785925018657833491529477402279888269394747184837358738701428152352356937320531020795735710845088667039980740086384762520420594708129882359993353508778969628581513425995391605899102689805378952838190263169065800493921711247513121006272585586283496543231231179981244973667582952909381491777506806751451266192209496977182792126500605824937102863539249727888368847176951619995522274424664395040414330297342178922741740238100832816845949432793170244067157322409632984111119617549657186815155301912932975676641939494105492550105094083637608218670359025931656976991393632206634830393631960068678900867223243114011908770607895036024264401957052608631167618533924873673815550425525800231435716953379260402270408155217173812436264650576135696034322831880246409216998420818344016764061775465054845043086052228372783917387203869966741101046926245951200712180856802691615604704979788229224458348446856541881549109671949303056834742898350757720313708666516232558649577651104100895904764725014942439260057606910056869396383194184496607727921164000120729775190311178472535460940920147817790586391923770829672237799075186510651274931269543082509190950271198309185646230824030887249756957443978441928215986027481205558826242783442274021985614591910223098756031673571802985165017713709288155668900060204004657485560385623968228593770478343097094121141064369398035710382961485240722161735767737298880005208882737110006214065356752433629960102048856368555987923938371414261324214090179305763347861613908148420752013759543860213599932913066641116288296311203595396288343497643868163546553639937788628294667680673757824884791084055131742923095281128881323963462024104409760245366872840844073805128261269210676615916977862160121411073011733518539858079490831406502725566034634161909135090525228601999906116247603048456295826300485806816031023246865718311858101492869728667010466435499641152460665555362171472982318339920096576728035322645856511711953603776556145846914777919035987745699666366404156424574596436311607906899013304527303619497188879006035752121222563142993941086255505358095898094376802832580242887467223624394814290700026615902922560945899090024628238923120386653336498651499575646195444283524530128064325367865812733553398640638681779414253959902948803317496710164610241051587977806002543764195598646377541457816382298485539225177060876510091805689971964442930302530974544931290962435002463042820241745375125009841415445810636526546117773357182700731070990583327527122540797465622708927499961657393843886968342561192685319451389474021356090908087910926666170396710687607758204310116036742459893472478532870601967558728152357411046403315751858791258485918021729482161483583319207976588953369859785130131787963125504859565569298716892755581601235866300593783309811777017035440388833978377855052839168194104578561738720798789938915958133115550137027308779945956174550361760164253545269392787041685819484067794018898140792405499188574404437662578698141321419916921425373746889236041391916471022400197245254409043064046926029128426402027757884924551960510332579137816545521147118235195922601113383593774880003846243398085080704318279918570316374092909315827357988619776079371975688760201917843423101632011879387491087186316872177675970847227800099363252389255412301186881745464076546474877480570423702402445869487512971520298032421867652571019739325829407573788012106752551786811926693420181370979032812645663441572999413422381627462771120511149719946699731303629946785214472237864256978083434595544891714275486260267429418934122904644627784647321493421470025939257348834760787042491752350413387694281850737265844923468625621215593223011034770979469269065739439789667154621456268308018300429449588928855414037510559366216079780942929905454879167918776180794867965966528965237028059929683123515209844428497609845960022962291933073726206980720990157437208675972153403658687100809908079622140906227402709776293654159265970875750899584964668434883409119937963050915299972359489035861064646703898311534494181676012097870318943061281112464705089014115634608282596908891414240487340816687465872413746883761080133739661269206202509036386182577594539822200608124531312237903209712821303915396875382913591847771689498217737934897128883686053145318140117245357274254145059102577199829312728966860876586485339910466566072714206055453554237322449083385822824948109444023358055197179053681714865982399885519634099665888025335872582384586475117782024197247527621404496247461910585677143854337834397409404756344394047540330896589464826705191151237424777881300605737530470692729626458822632865490557402818318269865117878848948114473711359210620631127446030090764131009429740734091834887446275634823833736972371851021935370227286259350487386374962585861809410713371122374890250532295814650892739154995533578802268191942575067011096520537141060475097519320310846879355053012448910743148461382736599907291996616933849204838774124337991433671260365968455679666912047827283230353738696173396769129189528241244515504486973116051360538079792817943435090082500592928622745177423507211737363014168384784435801183557286378306202946085382087596976082041700032678989301515863360854426408754442379732637774211821180639062066896184826375967945103165536878876708589869901143387969713056233930103666939345608722679703010923790301045953007110556058530445322498630909837043846506022021430129197344487456762758360757205535789904841408214338292364971947145427074471390716262217755484977238442178930758913674626724080077154071434493542563188171034216379180703876520589167410726798959546096801505652624371165094665154875846200089850002607160589764352615999195905010000022600123787362758389913614694985919979968799480357375991847451977866657882328159994285304375850527821408492420948889971803280478473000671180913187631330111947513385348800545015488429260293539856697262299402827307102325603671106554911455142447317921713549913930890254199706419118800406721135205397825519008886254706836301835856959496575422699876980885606622002035621296190855981530150061155721413453471109771719817076694169973491909136690205843613791714069309912696862040720812822131663928906745914599665466673600090413072860416623515019804889437208340183040483787030867381388368146916690848987504288319277303328281753518689004181739320860071064416417913216514663253575715119348696386848187017777082987766958791072110722832555453374629763965478786664843948318709798858328258604900650766247576705477997823477705947380245977103758134043671565403495168598791742449715566308646107734451752666521064747753962011044210585251230102285212445606599238333959690824771844721054026447660630276165329545042348764781116700131534384409797732785066572160316968389304002760271131776087356090426379496167413400991367722698494952046694324369124249363128476617802071726909920578181655457347992182814707890081608772539448602152227577479045400053030852662306562728469259396467846430532623427824622741463574619084083747194260340846390281295605354530640780353630531889478704760286501789354109285873278476536091342476363148199195391701314038489220136205255425356081049800211401325275881664000870973931605570032759249589564679869694321612474913446197261719786329571870233628723804762554132882733832047827857454418514383837654046426361038489558038120241100457671754559920820039039416474365384446650089160462850151966542876711532625050575942650423145506135374228952809442104584326505110169669587449080538225347570109511828095632284243028439618150889731773734750996365110967144518482715606547231977056294862742501932760249213969015964420360976330992192964762124741188886456517848846217839062390210472418776821946836291344063398311250611588111998129951909650644927197399877313460678046394682591682173426949567205269312405578589271915217492348874255810390722726435605828212348100800946805719696087971911443650456373438851822588844147262846441580164191444681938422738346751198431717476254680865360696278998945197853570074497807863321538178813970638310217941125598809566401136798604112315885105419093890199914710345516132609380941040325683771083881265888231360263660297626492516910754022526066715212013759904395227920529105307326037194554142669667660253959506321800508345661705204961384647440108174131419549826056826707986628321865529001587381906822892273532979277178022219496111128284154533949137532782635384061456271069802659707312021981922124347608544410335670362209055213983453223585428757549261564904824252924474535019555540197951003385859721591087134989610945769802724511374401748290941989165444270513967119705384932265640613183900839571291111320874711739391798428695015718154789686704142395466383906222034970190416318359766048463604139287355793268247761152214945638037148052680658794019801724850137980878187002931818414925344514379948681512041673972962956272707770007387282049516685735721443286403303640083772436327808599308625887483919052968754135746476431818551138953433448639882950043421812702385093249291521169667100389880115258308284081428911000794260771817723368598197433638955819218953162367470455599071428632043718935381396139971662510272905877501558811195190108001446690250487038336772885489846929853314723905256414856336476750889546775478130387900583780302846106497935533041245239890137598194476937611674320905743419655781228957848486522531094614337805943649395760685368322593630634548450991142145834032741065097934221658921435669742547908478456542701157586944934861422455151071762648053170270395385366041777322995255092458526858728549552138576497689122395447069233985638300320259219544937793809483190808789637722272387965329253116623611018597188589849149240425072312412319819266693639080253025181341338747225719082629412066403864143761037121812040839934178901498725234028327343821649496786513860415532831339690726541672908571576460076020725316844505067947032147775281733633218819643415173870798043239744611979110996819463852147830210033803517164321349889398071766607551070152898539963990583464056615242692082723324586407397065705989170153865571799249399999770615832598997468400858274494311697956147866326158436842691271602021197855057701825849217734137023001941235881481559176193710003510446766638179705383674727691103870566829173789589977007672717061966557447631800295106927243258332348889632240667301514295110055061744892433899356393014199781316227384472420955581298690664024822479618779230976403269957762988913908899436266979068762248122346752429223030716611657089741577112323979788358943392190774113140036104959969287405578988262006177464035609038644216029973679230411782796216075795262177620049895094265670408107269387817256876269063839534515958298325471150865848034272400394831451566966337714028967752721681605856218045481516653472776232783802776174194960796537594188318191609820968162775966660937855928626485419694802103641060346885351938664299673205867430089400552813677023932281431207738330472461853708330973944280380184871905893925417755645642696842412509260938707507439376000180642666343745786328135548932998418677701388053476286159741407337285897896635933353343663707420624636109829787433237541957156206739623836334262718030481183088245884423419295661220456834253453137250692427248140936114451106435892357973345428236805813680911007410625075712367920957868771453593907444214537013656881423352858367099215863757051580844287969066155112673821117566112158036376810657561828330391683697809643975499070609099087221962149543396413366833338602560899012452129558602395717840622902556586766271233504763347406367324560029878191742520555051569018128140004872902832664956043842387403107354661289252897923401410879902088975241874002297467568477941013607842771559401433522579077919438235916593903737806667844301182851709783322618998024615759351206070070173696723197694746310781321172868941290502446494663830278804926760888265086740158676099107822613424484350836774772520546559825272841034295025770035465663478944506747229788750020734092825922709914086483504024899770978104217272599365246165653213804690255059042794603638259449843120177766708924121964768864394694643806988488982304328156419141070765199570872112607666677728463832703777125394899985426921400219955615027591344078027671222779316335944950835576033495884055777057157709920093233205974786529958763180952252748774069425962630409373862951373043468337264658242093465889672902440655836943548513307358132991043403496283534067810932395076597490811255353531870574914162530013337465552299476604649242660073775574446967430172346193054623068637582509031536424269745822375354984957299478305357492721975089842822645248800299435476494381759635230381725686543723021979123018987472887406963934912284787341996509711938375330017628122074773845996406059161874301591487436699237824804260729407708963339497530908115464155819396668725187754427457491687045656515927544205969228779808788257788728080666652797887408486670418694390702108428612901031379932959873077196823755808002785558824255229873074197609531229742618015013060453364447132548651140770865361328234617710497920688984731163072319344151572229543772045711326868705188874497971491698176704675308418852297847144739121097839642164820374341648971933929460548584692318164546261347920129438593601071467173852974936270119043096276845598486080551310584179607621076250411287420855639298747935287424908455860483544780526706821792043628544113643439233950869280277580062695240510554598717717373656060783947795588160435176216145264629509648927318991854058176821905368915334012188318512078460047802609452264611270951367850889606092662676741967391708266603719716643588570405149667173952389489219975393447707113400195257579085758983682712534961965449200151266108215808497878258141943238920541313363257007890909534447280658280288070714465415604623153832794969423944084047833590160940771910972707472738055186207256252259469607724044918690512526910003125650827026922013677963085455077147653678734875999481918794854990046175299823809634659662245407967357371224444423647886008188901428972042323602127616425668452819883500161443836377707275432448349981473199172043806391899062580919872224864273332631992143672564768019744579849041336649756452581708119077931974945030504365651888930632128259481247735361142347891580167109188785542314864860457618673013617126456046226150955598326976504524105018089698379846265448392545422009249808061910958577515475786013353572101912673085457339386852984267166183744146757257050925546056489394705375237135005033091775980666534781507122221579532827558696236826627905964654473045854124510199713763233837068879090958940465554767298700450710336380181975751612398918950736687593109436622850257806537283292556182876965293533593947520211954403383592582109376182441375340174713039589612046295969812909069343880032285834051646294150829189510827022773937043979026603644023351000611954700931070869122593108332778437694366827244593519371530554707722632360615106420147425125134045320497789000634589105509636010152314399995372878083439130396423657621022736940511733888861674509257090741025121806092036047510312890009983405387494764263358420022788429979721203235538232664145456402836326164801798773899814223922388087524389628729508311960750685385094259067751462814438671996366989358339258664875662001943006363878518304752337345528987260632961178319555543233680283363664000385583335145086383579373758309905755205400457273123972052652449987240604827958346338670747743091159226225520936092441989255804564049536216797075643111583170896620877564743688496438554248324372138799236629055750322183084771845918378915559378033613278387713268314519935764206609627699093704443795561698222383628307116555542732678459902911000571803835540566844138788928214222116140935574644806633808314060298441444685091835910237207925150002787924233496738260769403895213104589183407593160534755063856159664064306326300986893076765838822435576135446320720616686299338573803019227134112377306562263596335886097374619166150295048463226784897064060188199098948046102843585066831633096435440315218137298658395435598036244294424422625749581860244510077645996954895783233297929562755742051043544925476701442123035402465407080395503902578271338294716930901203094548106089162309334514288647183290625361404721377749576258894440140520559350115128995725010311647850559673470138419723981734331365178900827733953452566494286686450284290362977065326343362093148216029880156933560342567901725815657338686486890523715010523778098732454957326249327289793807932225998996525019750616595421884400951179703273241586135275369604874600131615542892712345503626282257981095618895837540520693378064612461112627597866801429400390535855348077280206865226262838149446565611209576393598007940040402312866097717943210382841323347702509524417868071425886860062719225095028993722962131796744683821950390156004406098911641886983345008532038322130786359515320720322698684839602247305804261370646629814331607825628804485884421528166072136714800432305918376462388544819369857968987018974520865848158867449373258528520988626271483980746068162426408152541124287827918119098462222486199055926073783917769626093546577293991275519948369056070549159032594969729476051060308462644228755075569073342073659222442534282557638242259552820278894127563717777744007160825032816452557128981742357720434336654573214314453780449447910867451081779559343446431226443244558392673914876906053454853642001991727786987832519200580189883764426529087565330239524825898386124662762548163051064230151504350884473179171310305283863686436277180081686847288667020736381503076922365376169655054708031545605558828288616829123020850869720106113252799056399310935130328329490220261597505084348254367549194306560486343303333470476457244219956700635098870560032102549045438613036496721980353736683771131273347121722417571959241796272226849503641506509689421676731063090192941533046472023539346086997487009415001571997400148510746574327247275417354906390542443867561206770346641902782980747835271166679667794070395241141960042064757185542823648491338849564191597108752475526085324162373748708798147225929455238468607555317759302356874650265823081158316791514279067807789922802270086555900517147549994404969501076186133892260464762672455501953816709383181145130138732696063011162622614417501324940424011918165612085248648692706088042333112214159450439019016328871992127699827797675963789331388396728978075740815764227601637771719216674640729628392595233084141075397465951609566930571333371334791996208163649615719011950150567144623530125826583145867683161486465474029432577503247341017290645446504491106158949056855020851992692844741230327521172622755457805345490252253043192223683304428130951841805264720596605239018553323626664842370126676358692533073557048542899617354651308916405171246803157250764591866005379506996879264378712721003769701243672085900076352121573123237042908468340222214787592288425617234812831674127295663765502403426117182848495263229383012195854045373570454632678026383967185658430332741486346711234268244451169071778513210686336559867823970073645485176157908476985218083052421860259166281862189140225833191892000972342467671986385135507452868797226254884201730261958214724708583030795287238109832644201737658178049217807301197353923306825639779238415213393688786949608321693392832321221917785518973579377327510957493428937727387531240398613673684492314459483745579651229335832461555932761036374188893182941684901797821255533588223408449138936371161756020592896160748051313798157912241890054256645955394613721714089924308876330068474880574102016243371669679281688943707748256594343197542231291447307782314690065295656083511318809175091976914356217224095284387909055908674179984537040871410419187526235274064515198992491272092754587172199617548480652571881790596994499199402183752288239032935038726173275911585929871516799856322126283810357407630865410071071415129779202284461752657914307278005990731342909614173221734007009967205568169867152348700989584483540500706942967962681919965134273581752419637833896060601360304649814573578082831567971042342614334362742080310737679318653371252400703354682766785361362129741860738842101842401512149666299154115842608544635153247478277368796819367524777561839845911426771426326224208222454430408897010025535307398360051511813285694534481502554328542518444612016665481715932505819048278626973883369383337893764315767840674226629571620811017840184720436578064362576268246024409876962918671884052968316353942497393003499707781404413381779573084614582297761058403678758310833438120704711992719636755514050063469846026435056722494802420859431094755074908461725257095296247951324127438374594419993830661873760987674398570154600466871727842300599854646337964186109937853928370198899228045012524214644834744285281616625222919966222330989127450048891555900967178449124059128331595607613360222988398731404550618415807434713831316644575737273296287261398579945574876102656251420579536462109120350697415309736820312858620334486553187882045723516387885258854499482037628590933719002854323706130024590418681754959892201353125123471751271787393240443248629390997375863814674973041121554134283298020402095808934452901103223668247720230312584113348414964032875041608812890592469946058288260424922233863812286544357852668065747725060668999645727049383636681079846562610964646651534342484036741126130125988803947690210430235760297352451834058195295204815287201057888889445781362460016281131403816183141282417686476028175634224847403778351543520402511196125057674172497152664978789409055382355502844401491882297031576884814649045327977963701450249723091443396875350764735937421806251613149575876918156014105869377904278797615988742301748131618337046200338688366327333860034782783066062766386825768706657654481290057993194015181248967511308956181778944755065260242887942528569965521092756552501281684508141762097544260554546238052379165820425605733994397576866928411277627220993377523488401989180007144730726400809181391775271022535274562683793591143424863820305770839412837940410535510936626470069918256932213983717635652165495765022624470322664714454701264634789000484066709265785900239687647376201061217506106178787451698127232336112002942107292789217455946137379818789365866641113204272945785576094946798008157393084380247497390469951543373723160038874958027220171328643240807196770197426442264226662961600637123321046703988379680117507208152944367896474753003542364759455860811060727199913143847801662899644305595168876309969607607111569806043144570478736220291433432630576143399506805453157580701166895280340678026457530822557762630723562158476606190582340741600608754082519869754355761649850620891842487604178584087094962612476607308845529064433413680444069378513644261975303960694159038172686861980047302952563345950347859950274479691952928269873744104394833639413899937515298551983113709365437638686404718057484555761682426493799291716667607455212459179726841708166820657532598288197478980330844438357851980045025909525660585336067592604732227770915181950585886859695402642782097072044897790324628838688281547140614757151142844819427800735588460609254375505708571750397550612122980709881931176695478520070255735188352289319173404648993576699055855897932784288741042571140445433844402374111638872856823928092369005006165148867522145528828782703518508147786077066455852532805831806719634858151682597881864368344707895121036572930839523792225045205518249787657607537984766709385180858371510448337237642691525764634605723995890848172224347013809160920254679125090924176708359145891775331204839439884664462641234679495412081684996687878189519617658941592863149104174654892244775658928031990227064960928774996892883750569428279252409850598069643740684496566988197698029857264894962607758715150908394172119349376454100102922852383325508193162592254305850671545031984081503247706082001566149475166183854477167232375970075023375034296208536163976958291407723946881997971856121637919964567268422289503541880575619810777473907054949993842215295343751939464733331203289494189077797606202338274025158470370456638256938066469412264661246558020966060186570692664968144685687090449069040631425489233592381654515972753014643212644871507867513077349825167965344089682934231490731983541415173686710277278734005971578808609399279955721944570805431841281908172094324700485449348751503388318822004612300622837076071858016056333925370480953113428466303567192237834589021032164825733336947140543933611127226131756650088729787619332860282307451731675038580816944471355698376782744076479487173559245228985472294044363447775189908665782343555448215780330350289124432669063348783939783611390014347472961439663510545050291540981148605153732193354251241004456997200369165880040292572991859360865843172062797089766248992866109936235567493755822151453254930112521179437430302608983866072341743814432365784482559318974141014749163360667066524849397157931482752077752325892620479346991353268110216565431450540264126377708769065029483170349667664963118153407846956138458689222723849173650472277984824519019174046391833613734254733300809040125768871006040552007338272448775923350544340551185867066799077765179296746416953466382014749168579102194766607933337864678470167670890850813715291176444076936432777768103966615926870289121530304682308530086455136255986993210281003302510722305454103422283939894091914192552406297083092407275577222666756406677442370426778755350985257236144361164361413178858198814498612175938238443359005646497970259801963980759933341662732913079258043920168403717536448460961301448056025335102265340387255361940986824680098577188436939350589102899927363155686428264673482602890856274700010496060448293694508538779807794959468223481382413915077495690221599651563539813979097069363142789552915591982447723461484525475368632168363441021643101937987542272664168584362053470038867845552111296745953461090712117190591148631988118687270665351864268483293476308556726924293105461732578944646535119808632197124012438033976213218693339564354959888798088186094632204921000560502969935844441579890656377250464387103260088324152314239031940220894336268622774078992700608410374631739972898733216281603627532954796542468016932271385197522375973236310783568533243952545502935095541918108613004106715454152502197509102443164747868971309770724718280439017198563573335732173455744482325637839170079984495304699246551798910754816577800352741571298764056376608399113629415679749702648280573851397986728171968285551212938742582249443460683473112981681169747108300890908704643266459893308226463654997483678093209429397328728771545166978539453668244826249255837710282821795809524044420212630841770561242233129816299349484356664470929963615218385315359545657918343255524655804871577812005363182418542850740283298025806017711407370432517826928128072012119919463130168275704228779486590380039326533037593686924006632931761668381157212433474927377336763514710449532593962982190054950546770881413426350945288709393242116768744530568998048307330403770998199017472457009731068826881233968629783247007538896051248667817867607203901263958830963011363533371780263886261818633088303243446676027116737381917973696790790314712819007101720345003695173374869263990527446313488770598992897850482532546800365400861156777917665947159060060261093666450797701875069484809514885057010192064189467672268670665101885822755222819245581411378679190835043191785962439816349199571608854081234860710022022293447613043708279311292360492366837005933026038404069498034172180040603903905785783039338562359315431401871609773683862833361301435289879693431151528991618103442093376063319150691031351483456205027064590824736799528403842760469724508035022584113382305475264305888492388267458363260371611916242359640245029178374160035332355101573238717998315356340168450010936858643482678586031408925697716314385548131814305503259918303139930102558302754523387356077992599371449933436585299474284534709102483971061101773051445711280723735631547251943990578269071103884655623212591659833008223312314650254694237991601851074649960645026554718025690739084092238684276620778513172393307025859554748562635589564862205159190467842707007147785244563220471585026678789116531498557703125272702752483668392943186665231601248201218172943036646588655797086159520302543089508357982693375419356246295349577019155753090343625188921011932897202513789374471983514682420095341692154561830110002220085453413887757015891121277183246797342461493978289162266400849866821500086430734836954164599593167859866871880538656766818533395482546704614859103835381548840576806215897055763386197162368601158225199344282313214623676593259746584348008953566205778047483247500776031656581367961205454757311646880658051459407339684661889364935734195166148054892133619271910283522655806882554879489857304058950111020964806160155562996541670475154597184835014697241277314531491881110141702317341055078321775807273109521183741763934335718037417046086417809207891232587986275752753263209387329366986050594004824083986213152170028824159529350167322678569541642294953182861407107022958016359857453981482710913270646280962409524446683672055874128108254508159741926589832181261806812632079294756808225037003206840906749045209338787794773975659868320365267555214737865113150748717071081940803281146933648907085992972340750805727111831027029846022281564870280405628947651677831720811551915499960031576936949449758029905845060819417923557269291730698088897814245988195492124504800239133800070186096249305313452091880423186102615074742887440724431644246278354072942799227126790236664587436791055112160024412358931429064806070662052599389210845709423468525666938102488504655721827425764370392315888255645626528684856329238375656166721879903358198268292919932278666781207147805070331890670125057930288647554287388927432675535599041686526047163924673322540295748301051522150472078630471483465411272352323145251846056763638286121862010816524049046044931933759814444819429799534630722937455915298819542746782451853252308709887577761073297816973422664915647893109198637176005566444607276880789403261611741833466006683607026843259706424750272012641495247790906864368895491565509152647658259641705550966681226532806265946665954055736424960385712385077617283752315944740150908568871410404932428602141336992517367864911117035213409167204085587026425314858021970855028107444259214198958862754580922456907167625737521754787619458637421185028810651330193220260354548602496463622048731709806582244274989788409377971971044116883731923753495219199923575303596168060852800255284581872387353419217181566075713635555608339605410112482273760577318522411783047090706158111339214682823619006691030905000877221538972426748659232633182558012931381392389460125625090332841810623138821999793320704482152228823789504711242754178075899060262186442150101719904831640933633156185756445375454606924614216030030407254074373854928127068852036265264132478169209819714587996944325124876764012838506781139252925293199812046672540498482848920109821812626151438607552457775309620207660860788313385262830220483839015223825059926994466144117248613185243584328878298775458742782103223607875899221387915952107016979452844559192878658467927973187301640902474993543817236650600738893167640267171786631188985732361428512503011556801232914063444019363712364743403953750916343570001646222769032742970250635326134539748037268758843553162550855176842718807463201703364890189320273513009590473817048841777013577441509517836720784444444588502798578942250604742469511315701645471987407012769630400451567515335781727086495596517667653346963778829113032384744513292242156507805679141206806130194816154000834756153986481059689254552032727574562468059140155536498603264324000833396200040423863897449107893426437607021901343376967035653854423036947001913284525207253401140831782540545318130340665198941298066152409023040360207715941202672002658314526561596281073046540046598900859384019273992530722768108601469707418468753155750402158324937618394730880219194036346089030546228985671770462753067696007027917013675316503884196214002005499655603307296205426189872385297097579108906155989498281383195683469784846804283958212967289827653043049593067060270774017461327888329253665257119451866965440657552794805815459780251840317181092779450711201403762196738803298932576648564101203640984920941984906928876528614936153126079606864400930714950798026050687454452530407026645763481828525119848720751524187533725096000733938891765774495961348545040593101153680582352567872708579398227566301841541961592556944076083623789532854087720899975444530258454614669896533780500843685985262919687974987928491046694109987340658922989728782612113543413252443808050133800638856109931507493248642755555597663907979923762546206467296044928709708524701374610414726922297420194341457040483788787957325183649736320622137896572922596741750732155873553157520924998757637700919257169802064899087992834346172679027224378299075788338474226649375907619845542593144828833722343887142670064308290331492240266158997821452747271680963124190559247555122379011634345473087914124124798964838241998664668799295466133041161399047896587940685546287421100532623724057625222309197851330161633834430189913963122737446310659338348177074128074942845822461178331163100594518979725334081177167196155599686771794245021340590684913795109376785918173007971183549783758783636116887676490939540307464898060920279381734526895456621160928230492279937862377026753561420154369708494341599108747425640119252976203077857134184660283955487077165602254940655907856314882250884467800046283387674595308258954767725100281939595719679736325631444211148708151247219788749337487988880860822953211503758635652429337341226669991843040234882336960707275617430780280310953097113102796419615206102612792306166019711047443763891799287373759526843272745556203988248247686382141575747839814212627658474119422824927773237336506375105645646823179334584759241430946470952404609794436311195108496600813629098302935825897369708017138117112350563337377630906746997020782886472476093993852481301820652705612532078126557634286259835579348867716714930342611296905224858729228371751840742572250524080991934246363089518552487443740795037117973644878269036994196726585056747461001040913401295839331728237362410781708183641395100287431115978507570834927863338685858848980106699205708896123734095587199882354952044433239584555476518651922487136020796781237558661704333756792608059061691945612986469798376985135865826922773274706022167809577986359646008802086493982092738131690508724042125597806726920684084011001670490475967329490455786596683894828464465052302638845104486923449445855277558371426284439262940444990886792437639898757525222651236733479624389455003615064080352666836163462016991030456898820135971671365519038689969083401186430034258102220789000874519268279878394803303656854568081644371556661930650709400421317543408634146737767283406996821708642932795635807143973607407826399541956210347765266678220267134643099194266783336961722623837490558462274732793688955697383872530889051093754775402105676312999170537834367327619352524990347678786862722518285078115427502399487095035879815187843535814745373156060724762503012577036681394248845005451711266826164003449126782202032873875644500577168950907305211476465423323499175808459245369249010602257513064744114936440156336282154893543222819995915262384787640835771975656063997724594485136655802222127806614665653906935258090515383567320552606786489524887270706482729088390378681642789043774451145343257587563366521533482335669062789226550536888864094387645342205954937559742754302769185130282993735314655248363360990318176444050231474798602911407421959789619910160399701098100232938381763358739919480373506859627444793538619924657532967466466650799627056877471699479371021944339021499286229836862294106815165794642243524920594595164102928264751404221243120379297035603269693767341113471003762403890436067528464374345262578637616316833697878297829619528522700057705614932495039684877086201219221123671552630394686018664111894679090542789617750519285934245409818631204494583174594414730576822075070883494637858825231182480922506023331857722315728666931623999489743392434941936950274331840628924120920566458019142170610800052400717947780448935193709853176763433291728639713733949117073826352339256166493889744337156923527704593729672468288667446338028356517733965473976559416189600596382651354402497323415668295900488495719919280478893882730689563614017647824102895922034370094394988779857156115563247530164091230984257636778813721178983864104072229373325915805547952724514915586023188495282128665277203141705202446836531892436436163341482625151680213490621683619751224175976382952390159318681783095883184266630863944513911325145868896380017248273039208818308852671757436932657096459306218649653401730191089227293565492635070695640171802327494056496000257413976791834994025060847567248021516805101899159075426017450891342109546989460057721959132715604394286481640416779437431345832569250496249195011470901129424859817935541890765995752935858390829418548656951636915531943594797333265046681797546357916166788093932536938767955143614985064928792925335779181226309519245515522898538776485396032686311115550878963327489600122796578550658014665018175764057337282021266604577988522625273683939355514634928448082142525768945322739353894494301536255886764291075226072063126696301683942087884292529395677943870778263336586973486347771579339883363734104791757154129132919813156848529435545114387851605067920212436170401120440142229514666179380096898234451252048776962998693109105378811485505920044589426392253757589783635296733353658454893840967722715067159036279951347092487053579031545781830515360144831832810795226458489929606463906421946483025339950527161531746327385078820566263841289140602131145304852445042819812250973709872481487429113364338990160896198153980421517952081181047441689545713181948102738812074133253470198015278569902931375267857911542179054591933148419865017702180601847082807295260472370007909349986307540675912094882845162772397291311035913923527365971553695841824547802779416776717693912346768398819247746588615851668876085995635687508934369672774572764502194259582819339429774921291509664548516822868195187805181973189551295342006753863739437159828487966549180608071615220358876418144424676096467244232591361623807927409066488361468235595813563882171006696410390281392122403604795528329230581628251630279583138416539598330121830478785933256262960422111630088475152010537711409340349752090596653949089813150893015266191844112239583123937821998000391531185248931747370921974121863602057928574412560162649085051363097564181566295642865923830902889462844087827992963184528794647019198908936827169943228328718167750962309726795189649394236735556987210586900566092774867342772990355040233285283362902002370144987574782546588461876706494900806751593730923165938982226878843925671178010982725898621118920868766157681187292941230898312974073474072761956748009703711538073208339411619785473390020322777402228817168929237741320304187551168700477788224834391233446777113282905340426764091071664177852551929960998878814054328601342948815730915357529853578188641985734699095852832917423096576476501363092362221151853929834577965856493063401453200974660486152459699202128294959923234639519881714195439777980225343440603675916137746288146863403178796047527378429553312096662749072565388881569319370697297190148545283757834916145875019373047576838924123960394522625855025932315448160655686721917480750507015963808111095997179407850692151047772458357403265930327108068163182397588214547149663785108123785157751759131924512230502738488039011859615158416437530073462302443358819501937827169412556078459931880694143784612695304455119060045569169145672222044187292322340184073056705084374747109950519434340450175866768708853262818918288127010993678682628075286390259117842438662552312574834380093041184275359966109789569857957044628859971381912725379727609533597257983392012993326866976453963972317664548135106615269904919380785798856627388479701375724020925941718573500354129904293838071289683131308148356232613385686508394831288846461369474984889822557145733741868523025447076490602413585910230966114021222398179202943296278319670423229103695443529234048249278865619465015074411806551555428815584369627479238504184496462214992259438860327321974303933515409449671135734795831557001965592105497669990815279482664278990955296318579527690459209962787995969942454260731159684142443238343387807879289716065021901999060714654381985622276727504555458908996184950816520218174689470311958689384247191789649939623231899332298962081338970691607100401995903805634995895292173066742120067085364508045461848519758832000011015164065145855112733415852412614702362052671506572523128082582583057812986631086973561111659779102284193785600563630762299166121372799981672721459259706629572241980577562222349113993495377688542798483862892026442965138114488566559431648363271213939861219729499697962940216147001432469255606163097863978634190190253337415695850888947317840037278909224252578632595039128290874022690132842718262864134019331620970203752492376163506928529887978417471649608938273712816200114900683250664565337279649912474497031378412357614191495086176037283119862552836834612501500988234847680151324565350780557108976386564936643521329480287536400352591203320456228720003906433405659170896906451002657923533722331455418621320564414624421445491474153205541886259464912857629701034317109935869764907952800900542300050913777689306451256824531345978570515494135147161241235369355882969476908708771404533810466326834432101120434591301257695830388367686728608228072541802242160994646621510810127328832945481355097213312137706491770662022027413711491659674840695264922770893079174623779109666847468302132548980183270862614724377287137304074719193172098440418444484771719890061765366741090673747924605398175145446532463835162065909795471051519451815162722209846771523625739797322031980033617714368084283336938280694810748978251008228188552174104343119693010613136565278494291206001619557397022067330460378763522818536921289027455626005980604114123923934956155599448420872303526115872659976260587890771664446771298553986375395715955739776421584842934591522188597365213099272795829604448627289155140916122607571005418766605255629033133579388969926773112957864162750779271036343453841297465457169244486268480140242144046416277210150418068190003411728504219332241394132263843214047807828058948184451614870401174316783209560342224047110088285920871549167642393001521043754376690208823934333274589028100095947651965961568388091424337601844441836472439605285086453971206460265165624518664578416019587172802494082873302134344266756286039372554047395927689819086077559247602579743899092263840941484305433499418633109009350523959912144640065822581010228577153405481872737923350138623471179532301704558735397895075470178854529634814696411794134461482428746092419756902717881570737799068590519265511459998924795717315005860441533199701947435489068544874955502010057898068706775043053358396212708467640505175808578627913879481854128195184044269537532161953557862641617644642379983745316602496059314334454952751676660384579627280685681908539040775415591248778828909013996311457292091295862086571658165717748079332503147053509564629474293540169387740161710755037069270277387333563186716769237501311369700964544243093206550305738263303011374661600933806026879685356946367965039806700646734023948063319470689522031306218203042530627255188114112243457637338226671967707362873511032509886964153666051294723343737773838022818028457131565471738265916056674640903060577209200943613704913071346635213192042366667040320628884011544820295228136680676857306359394150585652607694455458661828744298376868383601157257230271165656676625025140383940814511021903327600642352880228463516640136388976480639502898709707832923771110692878675742268685711998065057166702325148736729899865037424433650872328834046435304548458694038157520121953761160322668235535072853871586644650928380270218028725951478149754173981298129505664333594643623902113604486904881740292731812937660337907937163637339785193593692446039382641541337779788532631724429656849896638211874889862636370260259829964770896737446318484972030522562982481337179365261892029614929667656612780945901681120056507118768059124110117995765479643077091116804084489824398243026236457490529358393368508286488482303821030224349140142502273880107955231029551228750811778294368806826165207499224067073849732080045184124003962865726305731523969375499475241704494411786166628968210470342087370920471064763052716979578434898633130221043182886514124495555725178775533543329986072681025754396932198999395358859293095073651163470711206450850174057453786735188881892279185262079241528188279114103700411590500135557276845592184067057177323128185011897597721618269871140032361300129628796603122310652568017214758888261540024950830246525461392179886858430505573815097589253316555956210926073470985149275849843659947916511435595009399775663265964331905800732912434030166169008897219075787031151424432905604596178647559671362959260304542298229464110472601041974240683211762081446967944834830646601325937294601377998910017821389165665135544270844848493128188723699692232094537976951570983437841266501858258323964363491011695660143650307423950253048091181412473986156477110874182882817923408298734922990674526506892733090415992664675036619515389560005584783142035007869776872828368337484825827643431721255529729325293139459131256695998868368400139170257822139178803608672003806257755297996044236751949364530135848789663739522710403462212651374627976849809977337055624983467751879484586777120237741972030487536970504120935943400817014574616400221671449772131245906122104243715876141833037783688940074693295525162690088640766874343539115739002716808199759615859948483338781909397954000693471661377217577894368825079952934952372005623787776194315526696751666392689286860587259411005252097290859179120020695263809247138249261178906478969339588877216148256093173711792882265680637435132005976561787193102478879585258898993735346446349944338162124142794410921554002065404950936365683725939612668660022677949824135977891303272719900414777209403919623595199887828654500550544198106025787008621543423125620974553944930510503640314783791613941335425309967568519450861853372248050215788525285952581342254959904963635541131363297487462075961530231911167080088822582875059704572815240294740278222393593737015770813179730480607320737389954912334320516471080688726112327682207443404390033055610679614901939807965766086063049628265528545970240301936519997222096896309047064484385072160119572157121492692032500144176551350556900209471710762877194347420306116851757906808112494091748356532864130874096189952444622990084983069262527887185837954574585743954778115724861911976963938793821456553862217907555035976531820005751426943245938957513881929936719366190487707703642907909463021424261712950688913846890050999065097950968624316083710969217241485131862258645339783379470096066300543784361099740142909986298395323068262979705960073353544938322419289565040406119804942673425250122493262854219095526770363727825128250429228002373698955464715818039436783753517600315935766887974537541062289670951615494255534903902651806915495020388647637600943639610812833461679740317316297426762905286923017693140959983142928233193719234928437661358081491318169982764032157521694010875733245553654646865771288254186099418958993430378187173000022026366448108591085792319524912644430090521990646835843252081987128611056478567599431726345111746957699554936211266322578991323656151413747082237106475878739823864258062301454357148471613870994720859022394052878181724663459165453713981220466433362468331064125233363059108795652811280033762467723881987445070390955760493673050130046895054249533235256178379808281248993183245789423478625430290335619308846697424501523416623011042093634572445013638516785389805855427992564361696426265328014146518080827785424368517118427359956464346862256407590167467579029573809528547274117305491869458400567296354383902810636466669418078326806168365990604075635761542433005880810659766356703891367232677403921564513783366203491857771898044311417243395717619954960634324543205944595491742493806636947940156807416765568717388786785385734620737027915264302148310245236296686924960752344750648032180464131754588318284708282078746654340164930316522789644247334699190315919430746005285911868221153969415934247450229616772401583945487616966196514957517059991265994536271334876888953283379705711877924173592044001343993408615223965821491902799996457235027681872131950706655906236588045695955127147421970259049173061228876708882657381224283417418674509643790404745739040599352171763043752949231459016745293924725489683401392810956395062265827973389874232033040288726880934386642416355375178627410005954352823032196175079250837989475907503023742886683050774288781377898328655943390612487041238664909990282714783384132330243552870048520270054183293021819337379806054037062411663441626729771649174778148879326394126436250495562795109482483326652903852971353633498411860023409117188641592373113247257560082913406472479052997500363100522448325993106133017428263267999348224075099442125338197631759485909425593681756299037533528607389189263986351137437776171022846491003066448263209592910912105933188463543533387771587922326896327243019772441970086387647029694683795461029052085373070187302575017398751781391710682112425948502359552379181187114679364276420270969653776890977843280740902182301391805298250757259946606738198917811331063688441126686161651765667558371588401365760768973992446334290627694971776272118547580801210261966943323977969128055202745343834697806614610464052846670562481006844202376995380634713285678771076476585831897101637876209744072526894628770295756457648717042749258914957634427561126317404031086904727203407672500462634517477316105294298990450068914830787027668867941756571189590234745223852232984795712385447703832882172356183679625903853601110384369424205013817084469727636521249649883383278713063318100369539485681461639827481851801176914483296079062271927243504149024884759837897132006953715022627690301227811561885596015155137193902841702734910261781401960890020338056678851665059740549770734240782097805390102848895325078068448431384376495498944343286869884732887690293934643927942775811283664745561652448288330759451427825851418440244632954011273152910189659490346228226569777175185863793576315223096211374417590599469228682482763044387713864161661734910046389021622329778198483247265528112969182255212155154386211523976269208644477673535815286294527844973864992379105910859390254421461264715052555541847634569101952692423468272526872751761154356905566452173868862747661605504787529686397166337827019288238504844795552494087453505171999877241107265474352656028773204468919047947545367055950178525500750062755896277396527828086856842680019616785583805384068928739855436995996580544081709057859809959770911546765905481518178235043953508948567647492620948091124694430633796299314228894130766327367600084333482962710811273313750118269088950546007829318390015321216470404087093663232023043076888274672700380255695083400578008456120756393365931231482013449704253850534314077722899403971023272438983865368859897611583801848721927984918404763667773282984953419375269901533361504877987389045182806539437243398035352935553718150977052888534915134876107641013737362637656473026486749278969493428238083389452022266786509294814037646513271966311739159859944758372102876666671215938459621389719215382591680755292768596366555451229652373742056311385064038421081851425797423280693275273891297095606285667304747243141173365765883834180357168045958052711333458775242455834876703778219558038927918877084536443217413377603060317341083150614394428627040093001446130329649271792448747887232654657154358001512902924531499695849655349308330563220462134674240969991171781529763240297213154075551288987689829516214434206403346566766853197810707799626460202753961837716113253427948215218809056723756040144740401306310561221896267080970264141904842737559895329844060669507636791104027344346372401780827223330117998861263396082618287391088844942990031386226392708880052499858953501445733235248233101795314162894605420607650894195371440101191864363128485808862343056788681307183546586678834446289777618518793397508237613369891399592235361745634365136355991533301798901124447259800639640890358428187715402097434420076460316383500578775966590871452224853995534653271188957634381806434881966858699766121173788558529551556159937894466247999340332862538104547494498694264012987519831735524829484015576003944368407246723685755145085599073671760209556644552000757353173535425263772910239095475442043416301167747013816383995237711815535097465857469549621516884769668844465834255960409288712887010977005001267055026179702389310360575995568771467045789042153569195201797830445790691462417697188517001986104868821453490113395533425640143574226104658519758303448805123954409781549681543129230662897793071516380004828761473664628777174813044306627838029470794945178092485070592977806451106644445808022162122823102689434149626970523012793327045054902972116451766219103600043192527728232308772708487264068603697429791849770287814613826357478291418070403658439091303469353636599529934681632320024482403062362171089734112772096717374268015884416709196679205874970132840954889062302394203977949660214015485607691483680739728563633198893819766362276558322240372086745467903911679104865776504585303163916071763065399120547882551874566050742900115968161714883346370322744851168419664485349694363473553046440481238459874352156584702855236431147137061838453048044133238065706619247299005482678400454155427331719562265680916982513791260483031523390733768647846436822152623990426820048710010293420027459409163280680670196559014391139582975939601979732382385971948540459306155429667888392514743905390660382863491838175883139778511418903795467163339035578725140595299978447460163922427312707077276671296036527081144737497984650443944528230824882328203213164349905467050574737789313344764077094678002424358923473249802207861916806626970137113405504361235907910728081436735587880089864600158797772840551070139417740292465336362616473003719902608310913066753219036359719443434969657291668250938764075107555614158495491326935785171158797318334155903812928017367018881779493067247017214514865491032154907570710744628746240325283446674508582501032443345964859275429769194842768671172819854105997750200560583404073297431441494255401223493500853908435857112533005983816380291195449494503814676957028840477916696192175306653057128980931518217358460787430774442482162748943268664293719242006746129668537521635642253250705196052916430651821138912050561157221860694747650256321083467529337294213635646264313721121004127739050897056683317321827958666238739340035148477947019204494680119661540143893366768343039846372766464407080493292063346496402142220267087633425306932984181598232721481526862153911320137304093767095776077704429933455926357339729027574607658897021398064654482095844567237325562429592668110573292712093252442942438532073553183832616342350955437274594247520349939599598627489067670987832160267656516323902337313419367432437752217652143780840312959140404864657069255315258067121081271918099802752591885514926013350923399318823084132857978432297117662007506878868199888932732318241120010183237348489074964777038321395514658569788331170941913798940076833967258114056736877658762407951756907111609556646402421742373480006448028918013546650045715385206408953426555045396853119625399815526802961468103543407690823202914050986833924077874040547044791587169188291297161151155566157844034193575056255246563924067179942742205894122711164050510204865897717138313556505350922987326432685245145162339729735625905454317831099169147578612213439748167137710150887848934612572013158247668615815315550994711703147468357055686470591766521363370247755077857914934586157808294195421162463892893827742395625864009159963816980793524950967635931364297554663665497568101331342935591150919781435142242937705923848173532841071651363025331927682661515288141110390356234520873251974066867558584894902259368407443413312366591284997885840888227524638144861599198218301413717645972615724524141076621390044638427860280801006977264098062328793099485691551225960151237490608106816264941284184952218425021690158459646769448280814541407936845475873188952354341149211392181844654653810853089596705851907256962583258692664440251283372057092112070425663310077727123451602141938217651940438748666612855015513981472445005620637340045526733120362756108469898874379566848192538651902540163086452340268675882519763272363972050636624438923870648880855416626809647367626112193724455619552280390560505945100658398153218135774090795397273670392425836045620217135452422923482329891543341764787167396938553294483091753181197018030626480759288315087450880411137803018357828802426058207906913307060560434592066722133008178857824192185569143588981529376374116901641086930780459614222391386042385381082012780336727061255931255867467378017919324819857125909945974556817133601780356155476073358416161942891756420022531621104502469084366837462740640644153915065746396363448411355289191815989312707572702411965615879424975730394172799843976111021864351165176537003687356138886822125768626189274205853896651992631697974031415272773447906628274120097220414318830374334593615168467712745029330907630019398907555445020224283013544225355279198239661962125672212117703123194666772198508132044782023815643602774987639006614619172245611443776438216424843191397248159316922911529826177048136638873904860084236326478265345035545068762289995475729857774428530996937195720796886616028504164446976683967938594945504601056614985937047396889128705264505971721053414357543071722578997117837486940416250596658006778676531537467461861520412963216130306629884214968894335910152586167958760735157981454949056180881165785473290416181207816424638066544684766341317609138858038682262759835533126843535079541716070725585310182048003956629669718875313705520907290791245336532719299765391680815628019333312217814724124856762860961389343698250021174614668655252991651848029137599574898834798909554402263724133372081395952738597915832520107159202294113435415848310516765586575300328363170585661847028581284852191875622119566276494304451406869877930875392591088058777851747592136466420161161795704750204858254852220697093456514974104853346244807216040875071145345168623994761227936682528111038818804908831546729696616332971078311947399580919995865177829308237777362579439771457805313543120222366087275763554514112768634411668381211059564406417885956080854708760337833334009636754742431955142419069581620488789236603156602475722023619417017599392802885297595911476889768880451880193257400632031525509868921447342711576867933657980991340088553942483751550815956118072680023034256055636087858352214165893067404274531373446324902265585363518700689365095349608446154371418255514877639798024653367919915195484259411458284464623140777025253806039874324823185915911697226770150586027155416357480563695083089548200593302518941652608885840024751059969491547651538302741674415310518710111728083367952579036348026300670122734879795291669940176190346334810797677227560467236606127964169529119878116192212754523544562672149928647760092469370582169628892481551281166356075516970552445387478187087101310377320401841000737690639329264002630085410135803424969587837676748266971844530891983526748536290021077065859309494992813402956992199123679068934540711448180553722584135933730030364211814180439756342883848346471533758951113109438037637988657999875022262850812257340032013029760757823394738800085091319861349832160151083922577734806413187590546670658551355316552181692660185410171367745450383777328653091498358264156329552846041922276582639218760652280944673716806758516581792382078530956420251811178226603585184201470060636053111768855531791017577296043065304398041388863123048335534305004896001354756699401930725117586445777855497830984629485059619883094394170635845529363446390080013347742692288713027853730459605083646743047319471511571149521984264363656076485413662014984866122764939290138831883940139519812753527888699600126581644110612693055805269661205379536018936742176558671005510469779226748244736543775710093004751002042765767899916600559748976082606628757580292451643032671195208026288778810599913007435133886502147798972971888514107289649348870442071984577266113442452660948625257192056607106042360215249404501382218725101341158590715426279054515842546559168279566081359288658259850283818593024707225435991542001954410207492482827495170562376575225064087394803948394190200668766756711418961943052201199639976058346532815459538722209283270797661986979843931458870770421343192870539032042653532042287804193288564183989650967450975731115209504706189038615305802967750595037106594006475197020401359077605166345233892477620382161721252781547286178748137930729861982847962413417737306709864658844744260252956212325981025809811209577980853951647839652334616409110889408299350358023545927496522861258462495667466483332859781140636429944182358947202174797564536223743558023254003766796719362772807656690680841978566123732496690510588841891255387384057441567712817481437842314032827049200598158938239585512613561587733526732858533371561877121413716692694343107708575925516204097000795271784623885524554861745496678968763007696036558281201250812769035922177842268682572922187960232919921414850723630649710074779995268548341537499841451957573843681852233352030001617730458620657279351631040435113543704718386075560248179926258263873959932475678437859882505509913476739414165987009004813850204083803595301943126844892570468106857957153881326095021768695130138105744411863743957935518998248011243451527918233010930226896482306477290029746996367869114848934249230105428296330005906161314649539370535522228209108097025075089765834137418794639936611553890936854094317490227600318620207493092975606405158156703570683726476877045619783765102594711602109642356369701794829104005926903106531642917347230016858901509248809220497546140062825432586042055124243485807290709668394519366971564047661630133062045217243792578007713087317710098535523467091646600420210798427537117152020151455488195752451891825059450397629329807557457418635597194162005851518648536025014842100710114708221846606876333357275363067171543796772551626390686829406936525282930055302597751146948563669090297910883325678900366300550725869952162256058114918734827706891309273721173720287683964758300808401741349558883551905404365206429151707615245579321247105330855110737615713634556803803132326299433335649864189739781824070700173320972642261865080666863595937520817028466270106504882805646905663571161451436361723759476315546134816684211172258465729572031175125963270065394594177707192433095162511979414876809704783331949680987944958813708178365701027279797183295168745044288583177804216684606681755230944908636729811875800977487886064530458507253756846551285274163403658758258951589249880960165178241374029988421760616599362561628107262302764864071914220355716886140810566502601413297514355129110103110337573246780092373781195477327579155843500636696882975136164151036658759608735527139311532318326086419526978206005496017228456387849679291362416358312745704009385893387494002344552470338912761308976143718982718001721130574597751633688195144139835801612271871360457220464215848158802946375931221613051450870548186846353613861800212656164097054396582852666734384827638764073800191366929034819100097492691239011626333324576313932445963222245938864137746968074114152775939260538859458084909024124425795490006154605958117550891492230426561104904997624430428483071233589480404655280432329995676906174553439994244602804721115940606558822145630770108530515041056037080182108831397591458266597506243387244284354458106419199925742765124728109695578342499235612681004906429535998695159162086679874709765903379390457748643809955187360848571571572714211218466323420791960761255534742727439971893643184393348579200167884654556469209575693650695401660578408003030670629344362894837450209734476412440621216286701651179071724165027964077716863875955775473678455294061444507386003813256242854650260930763290612938276846878148145777609106154630286982411007055802684027129058589051607784861549143110863645445845687817378312682624005176025428940896370653690438959756474286602216683441861943234838025182170657582160935106654194845555262133257807947239460262593289976995586641317754124662581275700294117983228661170781899988269396406622810416209847897136427236117090848183080142837618268125966242053214381827676441051079051389363807614721836772000710775463773579043785038406037963851477817077053332907926612636094656516894404636543407758063246348555521568470068456184274464175783674654828742107043689595943275542614390024759922196099684537991252662213215745447946441581379644042879838501917218656251892774332130799843383786010899689835439927330205868471254472801293100356438263841891070410576239551714750198144059080079175423662670876657739994910629827029942574813709913535941507744892117720056938128917514337099206988809817153282146805268385202372775090799597675356577366324264143214479581647208221322765210178114243839874177930756154730130680859039070617413500982996863057647680053857695130655334124879851742899139415558979121451659202524947653687618408451381887051048100257793426086377329066384461399979157610393712762700367699583677580835374625278296601370348977990698533511841554438621123462534097491213726300946119906720928345599339061157720133105996626650893573224984040425923858091498009853367647215703246113287124717698291338743396431706357130821228675459515630114549552779415819383326157275746656378286950568917833609580172197470255266420437938677281902513063835418108331582748755015140687010354248476541058441569784207624325549387960343480755406464850915228750455233261388276730273376192212060232137168238536004517783347537676830254446495993057704936890516784606794971844401081048500895800326236880433180909144416023148689654009653533370042274652483857212167849037670065335021411076813101090754573361850075746973201797486166578853586929603496829252194706874004770161717084284012080765217539793058729703162680262012350307647531327802043104338164926744979347915020976462189096807248871932328027836590734426817046457826506248108870099728631158485352962755773740648455041735603525175171660697991628691032042553722175330700866688057041247872276973748765530658442635425270169796076416113291395322546720270824443845718059318764613530714810812242218701888082721547401134083878364003967965083783371714412846054290016352639191496851835847633282447756350072625837403965187715506495456297164844833208281725648399803511824119121551402785887015619164533767928995232485036629339056233182135056141824263694208516141461252553305018090083378158134787473754274151529371571657021526747042539190622678925858929328139394123390443546526556090238590680289486856250889718657731561987972260816826043612553967791780902029246449003448923992021500040773757132887944132586664694210282316883566456173125241556181823120051542379669930967569598589053993938974086320278945461759422201593655523141062913265625107434975562315455483734917980333586252827206232946216014998221534699905985431759490861866897255179555152378245840169167280894856325055974562653533330654659991031849254046806422724622518813230658283567096607646687976709208576893209797232944610440768395066092138120928180992559268931561166864660115698642680979420551804968113625962596533043163077704248696088791331952172420162926936596302844361966896603119997040628723708858098074080318298278735142946656732288847576965996133852808148262654285839085282176829472684919270033274519078500250288939065420680276435296439982756216035096546496414842913758022033082162949761840478918279442510549054203468215140332883688077762227552350243107541069726160175411080569562894841945892248489049303876469859675729356372171589278098881534550931161816099014150545229666492859227914589544201577402957340679930401953999756054223544264207066692939942132675964621407847362298071302292962181832744735946610222532240596571153072486897979923866882747315607164667279327989005192240146099464929956131545960367689037779954825474997352806882349078897486314741859773931211160358699209256607879622978675051301093499332895192340410570959684247036368937418603759610916903156348224652727801716562295604185483303400738853044403436763079598513112500136746624282641991120810577456652060782159481073693078659244577611249003749076413192277667239763561984383507142581807397787024295885269403564619068919499331743694185224045940934839648784400035815413989000983186620690125633986219216346416402359591149176029173496848867863200547966958434826064886185761006402016230153506203103510025884159597279516246018818171310513296048667973743572914898800781374575156997263682869687571912279952013730480108226597652229471851826119014106638606885017284148084722301857779894450267300061531984527959846982013245775625252460843429101341262855710537159030637128385010363271326128678056031997668034269412905675493144630246451854298388672754772103963861145123997013471163039975815001472361481653300820438918581968234040858091972424259827210687985045375255827235779567404797572021747086816239784318261599063648784286552329439400037742611220636791229399392511371955446602257867169749276136466574424680142736445635721414064662888513908773847085706675013902811153189106996866074778367483327660867238852689539372894086590808252857945011617683299530454230663301726856847415798830323124158423541598640251851068406377716450479990632299751228137018727782002751256836609439552056928352835913753294374446672993305954329049322772699240065111240881293630164553583335331908467302541817958674683136805201287575792174932786799274711039160214707991084352826613471788528119350241108386631934001276121649150901979543387501079362382936889595705172830055379369305518808010850778019002461204260996928049314590288582788619493710413120520310098885218755270756274110101792930718846846881309396577660492312726050045008459649780899040101689625906961932005547307506133061847658381922843320905587841262253888286605700482421742337181917367934660678485951399843734961032133568477184899934181280986641656743134527924010980944646284524690795541499797607892730267846573849282698821312133453043210566477301745507676700205477624454069483602329163335825109794482237400289595822851529259275849962416739419607156219007822618685152651732850791928550431825210393030948114191282944004717132192254004816855314129044940999430206158715171002669813577222303935366828831225378759599070089017968268031252462015099225859769395372661110892145368791966428093338817538560684666279265534323289162748574017676059035002220155149648545779615403822102298832806816614066977112503843063835748764520726621987477633351972528393760596734658249753612663981834029077498850905996803987575240270371145182319410659854633352299264977348911681450821069514669284469679161312076506422281633179867776095161818466028966135019727404948673833288916039792350080087104087634913917463088165470870556008861361486058111509679639607851820361563857856977331196184283158395365639453988981859965547899869686599413203416215391564262389122164700879074600056922308470255317424274866399182307392101080989338725287698537698946251174388005118097623735102910006433122359580578955812903521472594303644153139233799635873274284575595872563527411471079574707105594285488241910207318872401405791139529241877500778760408133097449855252024975608384039552321585323730419731931438461268012035260375464750315409534684654485363850805809791778644626873034804258321147833573638184358359200997602892437411806467074233986490630695087552296365347695406407675959722683729711046335201547451318191499310756177896335742081137911982770131408585311907667769319638229459437631747502707082820491948318149392079876555948771389549499409060893567471283564298164124801292871171800410310619086570085694297220282426664950135398405056884528484574511115822480968817788032971233007836869206425776296091206469585114893837832865473008934499368394708092876429183647930407450409713897846432671148221164732456878732622070122026558607472640002375210054684418568429237990935610638316386501406905076183936632834595270531616401729988902026677904622863861967055722407399152704941571995944333046699476565578069873824924920800520400255860826457962728926197859330359989277460607110391664902112923032441209263726378547009895383922012217016589904679153259400669347014438788767385915206184788351603966495635277734099350866450496838649106083929222160372941305588527139709181632589959700565095684790431118349164760698582160440468208097583219783016426677060899077637359582423676747288816410732981585782580024584096983808613703025527477699283045664029248083321432166302624359954845220111131023098493793329617253523826657519588408662987265185481116758602379125056042578611302113830933334979078762087344330279546937706322431272964740005041060710741540097287489968258795261754984765391803059513885791441304272751993613666482802293203423356397601733684510364247997076809849507961950709848040092370464995226988356993385160485738861228556610355887540192237354676898440227749128113754319128367370457860451997624879292208937768971742956925069413372928563118955930344016950223165781328348404569120512744183472273317617895972265541993856775170607208967978891883830251233373957217363022116644659869826771461626595733785387717737722192639397140913841902438939482297825081735467609085660143743274533719114869771011603544236759798176814190228462118011199289196155380427415267749174012568486017500881599744222884465072817041243239796783100117487410047783128790167677164313624941190499032248722962726171144884258786388129754020424533384562302819281682636001599269968344996287068252036574749558595331735952527499055150080657040103658844417746198179176928084178005991938592541473953450202939887433325706923884932507104667243888516256302598348488994598787729411920000223204111878212898014886830428599517389090380361701402499952387188861847000144920482382660169911035931811179374877775033923076408753576906010093959236359773815194880819947098368125254194349931888123217301880273071641750346894395261266978150366559583381664983541504575391736140306316546762020025563185651763251637776710384471771785271989367484657311339553666454706787921859390280821009346866110983434918408993646074772622004144738245382410578341533801468792549907534838654362361445096972828873240426306821617877444639345990226993539943297024222141696649259834936603334189797488131592738447356933597807274152463245653138295405903655680147778844138422881627132561052885556303133768578706832822629097815088214189622142958466848995034761559615331217482017796095746443117135563062039253281090476059637085852637284623199675368443571715808402467283730235076145673172455168141213287287859836856605652931936855793070233202743627392150854581534930180845527063043567678383634665765113094479409481413799653506393536312303986652007982979796191465364544682252308530676564754653041228677209314815800810521149270246956378611571573724590549877161055639537185114333261063238068165686902989866146737607092745841775654685331203579143137069464112779151185909579142926263624049548218778678634737846640063310679161666650110063597058964262281658795234519943416290692139500632260973038058833651105637442605386070515740269858754766236429715388993646609125269920427090018391567473676561614556161623030523637742352629795453746302433125281260296587890955563306077492621784184127331140447376470252949256405426474144290873933184512740867004441034931538508504584715027752872307916929947817251306030545164682242926009229568916945960073368892604106245754973602025444873525113434758938226159796037840015011721894301334056282329406918116656718635438153621053098095924541178289998428488598912400860059590810244571295076897438247981968998921451271528921504430365437155476303977814218911479440477408272165980987368140190377598836562354108297994842160874301009417771766873259325373805588756877704180734885139212684507677110122671916831197001197830305742116709846274745236965443092007925627165834374379119535700138065319520231716767640974429678734082656240528661747571379717167946588500950158194629528140549773394539632058667758903345563721811674175472323375729265466917515448909149943724208473039514498116606832859515251299804841780104302324239299255170708825593462283419780848981701664289095970426586612961020908329413344778764012915404179022218112224715338678954029314734249877498638826378552695125745349848742222562262561806703291851715846941787333516494788041618956248168114941019580324152653843351167038567925800556532359488060483943812665438909330963392277588471004275207330598813985646036823162982501398193465250888723459447294005223512942117962279171539077727684427738596514613586062987193804417795971902963731396884451910274498565100951587697296464191766314420271901294574558357263087006913160620998494659521644428150444472508859991677150778724502456164446224156010829103917045189306676799851917808868473780788514591290597342976885187328728644094540146737956399097008793998266214750028232460026601130553006610265647281851521283048597846262414396319131751634179345384102561714313330900213645336688869700842723450209930226392369851778702545424919565744730710886830333702016453979655139245218889664645816052453526714875409871936550430560655645709287850866061304811865942070861241763125193269858666963307850984027946549502102047956430349682553983992874734367487437581747567731737627337355145280070812853378429147020582546735889936294484312865493973375547372699669193801090725529223740777490081663522529885159582089723307011537458127502466885526367124666473354311555730503596204305095450467833102798638065566558266440972231747431827337941033276750963673208777558134430592184618504761819966517784358127900804917204625534141821591676370016255574320078526302896566808777688315247562168512351261642803677595106426635155245387370362699460008754423228698928600943830088043212436261270487160262027932266899275259145693849820610025109194146015528791220536967136207403250036942988009718425860965725002439893045849420551739385165913028207540834236393427281581931661116969972825700296882652097077494732446737595644652305076930584626998067879693595569117031270994842931540203264759508601814385885671989029409429052518168466265017633030098976275364974606093789684003248572496054863386044034519333116848987206968029622893181580051445612575613343311322041890383781326733040776150353427601798619703546693397996891111038712764135811504876790593227117383751862603974606484739954416443887791991728081667877040128258240072968804031167917801209892903440191237655426520548688050769178681227537645424532936758411716365793156979988862366339117415352342537561680239872795342922380002405605938174045638318281616738488926853746123311048366670338689712543948521288908449044094175394784729642992916668910438925378966234944591843268816880386957262691717545088819652133059574490662124320014826745018247669494044245244177157827136586494478261392357112004544098634154383546907242926132488860771149348508466582480168527078278247582419853858840882077588253801712638642824596610007764840876919148761375060318279841233732573367999355961403577105908259301093067686927093411051077156303936166891481215241641092391625408042530673297330185960392379506181054497529152383798615679141106261202059249643509713939688990420148658503312159632226751168785396436345763908771608173122930154327397327988605674463962823123565895728726929495739471117483667683749645117624530186863783916077252530190786266507868831683200221662287125146150986067137701358431892275560076295403538446343512018750313486482223654871068608648704797750537467952213581276664298078850832645358354152514567348717047039407181957835772704224040036999424616124505787535298348360744488891588239272145382682441248844484038697943126981513097543473914282949167291964893117928532880168516577264697775846720510424626824709715264791151791260808683392080942393365895435639060779843960861075254920039209821952594644179005193249125210885994331317529989430033314413295726222950376076569758926377003100584617091903915268593085539209133335722421590683445734915814957497639309764637949202127385012499698452842909618285743792702279900255732991930190576911954143598197865271350707745012358744053823908091923258543785457541454872357080598785160832719608076366510523723758286956732433040497019023705341473407235478605549348414022656473989692158534359433306910640265227652006380948568187526234341391720510099859343440422419284833611339460570429813465487488646071444032607136878829620392240725514477820978080663671707277706900348045954272315160088738950415793448359636989518182433995978811394921206342508892042986455013156121011523857866342788654916496569473353094385477818512024752281552233512673140137240625097091550083130325885353418247863076976871063656103217953941523868957779426203959940874519635195016189790349597299239784728624990582033122288989551313175375971768170703609588214921543994730337829631203042474300681863714607230761580560099691387961429639657216300383474526714605758582836577160034341265707380212951968995718023024056285492824242294514996267240659703307313170337470728762720019075433412867458903629492230616620419191579665883883775944416944615319541256968518602882245005848182104756620205980926588587314433211517217808759798673879881461045424681514475289354225375862217697837695037826938398390810986462772329152186798222686134895763192278050561973839285428645059460790535287687426378826504524202928065072461468466448220297325686338095975592607453030999444259416672628725091076947124642401088900523298457178452586870695797600659698825499020584375288395144500344519132906589341426131102600527170996061538564424238726794534231431242332554620476142795049129137213158880455807053960168109063641117597825086293642800768981756565746890326275690087500976861573587915982257907102914845308115484416379435598218918729651342616058194011569367294851010753210627516575745855940267564226274045645750373069799253384552359708551718308162419516405737214310231506414257055826914953364915192388229790189626080950532809191855800844755167327253846876746996579181316677561247925904759022299406719432202127232924723227405447774977580761338405956675125348414931550393106680009129538846842926886144837260379920382935351625073167942544423059996270176733521206041526172961634617837997104000877081609185505314499038752662852865698227843625592810086679664333389006073934023261860980854819253987598475006462229483294280623998787945283220176435164241902067241334728587830408591965575347353359283649564374521562801109127471223778218313268688111023119089945266097555299660630103898228621096494590512586531339113868069689051634619883015867097715510171628099526096262968964842752790008767524791874380099865603388039461968149543964885337237395540422416060655181795825024390741695101949847098429468357677563421996996249372807143314964797481108045532114571852855603368568054559712614635879647277448039684179504867226373245821080932907510460116382352478588303055558569722223753182294672808431651309644733114488079460230833738436467682397498935054880203639273532761231025385389855024432224966409295582005975383148764865968301885694531030553469385286582193579381999530731900962523431322940505217215821536025066917581232945853003266862546661588098844282685792258050116534018791823308825911103572755728624443799376268636509099283071297022963245662761845727997399069913451341063527046663887230338186618641905131320691303759819317880607514024389711302017862445074028245674688234655902959425243313977903789008123415827210051601330166689074065889656466416664387856691020528626581803794795021881210774051409441040432192517549181530772967885012619976975532837849871563155804056270167204650738191202630323680412519098393920023275895281217551940877589719539227150418525681186555513378174740769449990822095963704857089175764453644227591246372644532271845065458639648151667487125206540019319661559661692176828764505278205339362285174299593058281373218703270001236852399259129916613752700118136835787551327556810838407886420384436437802636906778807547243293270601901557317563868796359094980129051623148284883198634026006133038252817535303736501544809341602164159279410063897742223339001294286662453363436854512577460025690438850082209533171290631160414235886256557690394840018153246070555920998424275020855006733162659689722913633810924004866126896674366500159626165379449642446260446824979095177146305459446122358857039011582601745749858834805713522416532981826768007301809667415378814907175977935764948038325646933084493743023321219644738271234301446898629513817691646397086856599585429327156099353680325124004023134449611854945902263439928782779432598905282295391429325252709789270912899314894844560826038494975351224908732505880635604392868411838772406819546731226876919105106032854147198962739432647941771917765877031444333837404964983604331289988923262098452484381065077898866992568379450029825886747071855842566021883546459583470081005806790910765628649155221751568466787861284445980625101805645991176390379948591313172116031686699400630179925695964684667434006378292050767871472271285062865822671996587930513189177201683156089113268564963477609297160878945686420842286636659611474141473600182945376453273999163536397885335329919997401832946727552367229172789469258340393690145773604158074655854438540945789668316721648656074194913229117555070888700529018866099824796343060273260699134574086681896511561854462712409198343340423819136285898859477582138049645955918270633773652546457041160770452151632626518247100753269414394467408424175697158983240708980397027057659465857320940376166278270356834004927259379808015757148643182455840792221065855468458886723627944167474804095010740545928673935340809072857955483409552499334822759421738809718796672318532073018449006864642278430579673494167412489035435269325792490737498021265295082171609309797464486481049674588904318309611237543747467930243299381310259206782813721294207385343097969000489965766043256205591365383804447435511730944488517797043542346454092591253861297192166982281625366911013035324541138869274810231402135514775131591970728272774608606211474236419023577207631410992829864519371134369279492715441229831697384626952223267516199972191808487306449096831705938528817895136265094698002761591423636770036116380301178453558552664909556035504549686361590462820748097879582437474581491082658385867949384946456537887387980999089737426546780091029646154085831223271213269956952311132513023680853707289922665573156650402528816430306260340825782560523674708528738067246136897359368097892851351369642315466624177897019969121953187350754255951673877208295053460257550725511646054526776048951571318327499678543367847908123561142802521392621318501081419038276954621152609782355209651227531191674438917280653195705673416260548290072626201562499891665965666184839295702798525872958540553410010500763373036758266417060530096263389409049571036687820993053944348330794032798814810766314557223831493050885111121828474675002255320698821708419474934356328419144980345291077272996312926605144399710974993399661577662675265067645625083884024021188497658284933244421780384162676768173051250726005343908188115170441665800504151156353479442030418352419123768859901779573619454536844794511346632514155948990795367551177138039908856605811617700385396479244117787618418853361290416963387519137996522796509998974575577514499595103568449904708420267134051285906281076179565037902338481087878482184198638931360069849756440751379973510135721179997695401724773129686112492902761680153845214901547069451837851605955827339376543486480383541955539880668773232653686451117230839978357054664370037616696991991509661371573821320855166722581254793199509030362133021307117694247221578147648769420133881985640501683555560865771574463117153309708912877888739955066398865368564317578346333918489678607117229433334766462326704592447571211641068483005652055074482509938125648736980358606752892588974085731688541825887257606818056458352364540131140314934399625188038119777549682730878033726472035340186256359899574260678460730989022345971230995249299905550243996548420658102747333263270857271687765750221896506554806097643580286351807635687591143407425880563282070078306680719563395866529532446468941756969269637548253816008688107398160453670675696825757672910479922109482710329267167815917502253937269729065693505981949333056970349558426092523283395280124035021606825013761608355671401429169417416367387328016142472930494622006166414580683239176960908720600367665231969379688005334323456097451543450476724258671880174219550253142256388150092354746859165775357908286744303224476849985521991226291443759535022616868191094514995086161963108039765276247981061122020436388892158291782163352855046030907560963607019699667823120355624014713218979965294061104923752794514414675717932522183896730447895195449869810390502817686837513959154165575443106840412148398359953820163847080543080191254260097201869185440764830294751952289501155514824888491889320180790370638436232000628884148476916317851595266315045325902649456653930023049270234249389040966837162812135684055244546359338457836361599526358953916567743082442798451168071087776135116732144246197363033815256415747689985232115948031575607527268906942886163376182961153014015005344256188235105948072955192090032766345152025096048886896640201096669352819607240621011826622642632268209539472977956076526695471668146743507514000353902053901782719647290479059874487122923937469552164147941180772455531281415530002244708474277469118999894765834087110605732164512512704204569817414920833720962876691615374919573284433811337448755206029140521384492496716376158493499731942688791784186907807646806687693585958399707178268081088176633724780013061564148208600604116006957305200283011234250267242420750480129696654570759302705945906310971543571676261483458741968266513275910350429904586489662882896943522747488905174503449469188689772233685953923486366104421290024363648298726601922186279293912516121059206676564636465845365317756092094483887850390265744478173112002984460869832406523403687946128928596076113298402048248604871674135223054866905609930366863687044545896467051722206521191700409666692096805923692135478618911460911295552338773712831844555528820872740288350511008396963799608772536104447694197976587836732532552057338438855187219205595689300672275987224801725695118192065357134573603002880467434235483003339988623309519433734965943948077986552147311405897127129954987026067870177259402918200179364376515063480000181439783697708919993369544404179984525033913982000412204292629754489683708774849336440449816508646321534029961674814176417625579554098315663171713808468811228238354080293103808372098038928642144111137704216639303964327525013879372802543989266716067422848102656894426409588294949544750631097009668676214544234653935785474192282592264858577929063311438932443082984918928383355838308974861664570348083620903680734699828294313067532312146853577986299218117129540479322595947459572753951473684273629129551996447347730463879274035649340093567640878865855743490379636990714581833779034704891944535326651513843859772786482708523208037515830032520058472393554744370967597115610854911400830567128795083342607937328510917312895224115284955510208853363175789188866033248204504762071735390050593901088776824499432777194617995645654827406517244569663470570224005465056839376272911775754700681416172140591100436502897709761075992981680100820721717155512877736570819825152919048284314052592975890967763198260193664759080084231700913204222798195605908346737902465871046729962779084172348085100091685112558946019195080113871031766729959414781065305428538368607944264230444454846133053641475741148554574056953192905060645622569901041934507787533095085258984162827309020474636876075422842423627332788446093163093768635738450139334290317336224039437263312877137963721994631395049614912911418352993288742251239539690551400965988185126371967233562968289604713297096736139025045999894585945408080636677219697361028868190422291742927760788387268516997684780125243884004904653204007099950716540055796765506143256053413022215739138329571780054773600128183214322786778023591014753191620433814387420412794327377607024121098589525871581772249420967775399050672128750446339424589826938080560476016863599992779295644489981228824668829909093596833508342146507310931676261872680321750982026174000094238089410310975994277956139049985578211125837377520704051489031663939762187652317112780140624731160122210977937590975219187926605977444559222651345552952668897746849555585720288328676815905547626274571063822268028241876094122439610533590728257736437628566564490589267932408508616097060473539775506230240819065636583935523652562267977124219826163261736605440615162302463317347689234620324904381537661278375317133122148710679693613473056306528933173181698006715046561574481490130971474804246950582031318243252041015492371555105199314634060531168210902448883521285998450499056339146389053243470748377322409857428613545300668177385051378143253259786984156834593455076898347037029204560081677911219364415112369456773194739514785763654303080304760898402838425314292173337973970154422637711657754366833917845844063306072476894597612202110029791347355344036782787031417771241494431863719398470715497493606110577406661084594613872651211027361508856396659113686731498762312867886416182537764218337783020060084048410111193921217717795675212586706599428571557773455590928217994759896666427661955300955224820323546783997185405415163769377881781337045271215846730356309025765191758419290307717842494041638662017239862145988987719485076008179255647835953838086787401980702498150509637329124984691874318923823241699543659595250597517220937428715324249382751323128843380303160301394018335413919856462731718915158966762858577971782065434409885254753241883459795099213266276270926775025734603338733410199695938543974450898494812672403965405095980181400154056461430498160212864094652694205959637815932682206979313534218302799859772286138499786939967506837513102947856820309263800160998349737977529661066411146723908985373241858291258359652977247024385068058977658926767311710093478574901359443992121576690699093411362994785872477215674099215684030683437275580107387850733382720828225503990405359698986798356932243472108052645476512597318333118997363416852103966398652475022566437763083176952546927654639980381552772480937987486582619350538760506300483614254829978165608359059664228034808994895384333626762728235503137697388885682242636687056088763053631508451423624884656871354716056062177831944197849594306125289691130052645919733287332300118744469426822464550062964141037768291221046394443955950880896092457886522644755844692566697396839209755847086240215524769701626735952878124093795589644058314707623465537560552069670117824753996621181659012924433490012098910121601132570140332982819194395923293657564094421147452558309417925437329558893588236180450726534556533862768905094760780411217980457446910054825874156641972178818257956116486428289138835107846572541201206357810799465823798055997322123627192165898587256172153251268170745182045283703558336403262836956200445416389797647269299080726646473917503552323679006601143215666262699802935779991684772630929828712613589464068568532139863325006056204252221901653084495175775597008355626696077775693243984436149161125913780387644569323187313562741933124899645158806051205495496522337840968882768571107931485536054549496751156435045826962958028662553571684619801868424744290365961853649233320076227030145313281745368133680127893552332512878971690999714215253904933276056216528726260348677773677786118594682753091814388881402361353358519196892360727442059314223929913140599719069009990023465358302879883155748870252944976019578788819225815132663046614288680932212598251407737864034191104022753722910597922154447111359473872169501456442166738433069362975002702440950034344710436598007622704670741770737191798327765422156542284861374182911314706003852933080395974625577709900498309350437336182553152963922369309610985477866792381167051684906177275117363402846893955632689915075776171412167324061651653826220556748313821155616153517341957868398957559772581282722308062856633685304764779746189205688352846529140825171546186808943422086882595903677133125317030677668871128420665212742598839285399560955631477544863920832396088678531393701501720565207204753744143863488532705230342979678003769238661295896714219085995792899820533483787123904633596065624153885160455713930758678494349514379697374278110529951986412902997652616649178449630070284694675840352865362240305667992288075431211925922435783401796634440440983045473356298905101493444849621773498926991741500896144027717084017682898935555059669622919530578869111791252670808453031048696676249071479233155996668460917166641326728096925717379149933659630703477369980866527328781565794059159200890123123991471124288546850369563914124284190485336823389853684040382231471365362108687040062832826304819555810705991640767928256452776482199258478666220303523692027609908063369185743129223177360727992134153965749539632743856153765466320460896086391250365086794442371870930438214379074232388604755416749196302782174831865493740619692153923840961004318634935695983456663846420834501170478353805355446772309635761752890242424395972046829518119893656219199781445339940999233790657404969220844096880318188097242994698197201597046948013486222988035981138624507058054674641807273183436546182222404136397436079794016581080898622044423170426896806066056642866021819522863264585207066106862714352842751685142330874960901188876579555596540787039054881985626258007449551439396727859967402916265387088422771433095895203803887874615922909209905470773878118701424232133302714937624735298965976218004047014433170896147054807825210468056361935841877203890961628374604554174905347090158336870800790493826773587770677078240839209719224462044729852907460628489473307142340089814261199335037270488789095830857947333656114869789787903947105970922102079623043280201803924246021786436325740473243990344588775189983244257121985623745366708105701271795673546949340146274995677849849658815442964308231208898752596462197070022011458037196122859624228274538442497890956889383219857169722436045423258055844965421960112201635595341943633181993656873664440368242395407223535316469272858243390054445456445680778399152093964331552645989756790409600940508648710762249557862905386893426663704602550100412175892516442405703748653254181824453394465527636466263170985593128662964038040365802785946360116306201706760689612061500469484105384287011999031936302708935094963806357802909740883861014057607070833373078087093416613998367898915148554481067656715998185742952383220559894327839041884512805823948414392139234795515134130798703222387884175416328961049066486229761366598251366977135302476141259765731867536658895311997205055936778124878527985889820407692000054128099696239345162800190448426775073036951657530895981192029955914285769631401724249450214658904094154085339965668851675441358654333478136688369790881685629396389707445923258822038620666187364774264447877179854101725711504430693155085255285127207871776395810466079986804678303646741241560405175307592443692922798722022157662989301945220828662608910876161611515256176296481586323275882916412475961885588700581663644137001704650431166452520649980629766614833014331859746029270144964924110152913972108521754186259452734334086854317494624426083490453655721017811471413644264809271570684517129517505910217553808723112960141229631250845426370810008854619297889581225171256467955269247002290924854929434126840286591103920395745073329818252569907802246452745911447851601875191088017425148218976786607681330859959264598493811565139476108473786498175121980708663087613982218379265063069252495572473435603392429344520378085057010391063918443571934009505333139730513281263823302005878040233288728262969721827911805792769535010138556193634895509074559671012828720511260149646310587354246373962924183131380239221680564835329414578034084535966511867094190378855487103009463237626195379216111154913961197804203834926869373337483083936652061294742873934439917140833553432007633586395197914574346710006908379616884343484349827636364404326792566754352398024651177005070416042430029086759673010353165755437845220470587894853891245312747835312220133401320846423975914309242854728810999433950274336188174469059026490320059480508192527512834110667641522204390788683632346656555660388789326784213319751807043522039924560712448148533430164841814450620065087720507773410361722453965643260764799830783040615417807219273417098996598603585935001405931785039996210427150050494211021845982315555452652021070557701500842539067248190435757113820650769131758672354363565394660514615574677732911435536683007328493495269846832841719273984248455366602218815953614889489927222402091599537042477954394277457084512749761889369476347729085591682342370849430261660257203510478917978504649999047939544172953275046804847412558444098784998772051872192002531846474747934521868654550660401218145045275923676681626168365757637645909024787261632053078914100340907428156881166234323721247745297157194349579924632419165149472923953952550864193107424994754407318444926629781981560664495053963228634431897090707264844897384387001761364336837443170923428998566127572523366322023149903799010410507952102768867696540271363570646065456129977240724039409899007723313484531599644669426673570660513548650389327821142954267169194624946840819972420099622342400618370252701512557795723258160932495319913605274375017534748788715089904819875398239810998793928118323003513143351802272250542952750968777904590916929337523083220310608769320690414817847199352959546681679011386784404279895207961888701048373467904113948753130682302964648906592676463541311878307058679669067280586978274655762114277895729927322442903355620171375730843370571066259017776322738141661062033886321104666806575606916032461466038949609214409788493804614895893328077607169203287025255002884396750190273959163610550291250222111687552989692539505814180608043160580406498318499591269945810175411976456567781460674453445559720329663888587574811136855135801891580160436877903679930295068786883045355700694430448553921882484984112732984693949491252539992171595620692162322094846158312844293179003487544878774231293800870687784822958738434441688093370116788850817019432325476539585074634579894009614018611931145191183929861991827043850541402328377147023879373668615167696653163457907093657797910936628126082907785690535724430660773499827417512361544309843143058274025048245031511383917312539079068962381388790603067270173927553720057945216979094365685550990408422720351305268238346497617571964633614370173853868399224734833748729460169946897717817171732562499196112746514419438410520503778585991882191302618714731061304562576467917154274482871877252771258828092479261415521922808464568913073237945547350775811865622940763432741971940954172287681717658929870358402268920853405989919790213296709486357889212340796328839329537843784325219428863778594504035763422075988982682856604112753758714974675937728145993475278253664500473625631354629417706330464155434327888858605665122282624984933124519258369396048494528601280607006744267553154421061091740288302787857344309685667072627404197635400390478192174265099355458064646731141656529332561152801269707960946438635269737078473892744128331632027382355783993588379334158392259487750573556330233113749303400310766195154506400939982355376604216674137026607179296523040301015255300513460282062901722443212429584600174303291465063319465726157445988826238227854504636443823151011116777796125761328591865182089525582350249073352062515119734921854057438100088759041644544710223080786084422566572664599236695187222931976608886648134790669580456108319216402220429134028559832764325443612935202560838057519120303582013566885652802554250748911556187111537857004772233536182901274327010201107137390874887912703475573287048924873958971915265452938502012978352989434986342169281981949957590467657060203070386017292695700680896059027060236628487676422297371298704103479453627822840419342989507383760106817845751626082075364566016915517963653440527626768831182720999488276764303383513687333875021300282455640525550515667501864529409901320620406122926971655445727112239642684642022509317297476631415802814637374861517823464480662798095216919378289450794695966643992677150530010552690347579946925245878206503316878939327760311403714023369028649082226753052827884277970233381070515357167194773723827426142558935010482063836845374718654716864179266414320133454795382850290067339409155780250180179893649097134251698974379981342415635195056788508965588017203470552196378861365902761847569834536224124652847802277351731806307464975965445449969530403159435387226838991062828923738506443470208156824409728735967884398524091048665978610255294228049083274212611774571343161364912358076002383043659980553621846772085207104556382395739695875270698094765433018284651912324387876198472109569726392207201503356134277375054116382337641636917248930519076852133059780056699800824838539921467977775890030674020394378866332355004858569449773609924700083189225547880221976253609560849029859759041790923644756354746947305080561392546479931451516957414670390830006777219422309036388567293776697668975783164588574844077635832697682987514911010832974437294866947827163796130807748406008000838250468443613188635427633084337525871104928280654947483690016114878906113373017651375443958584886863762316992418255230259853652246824332857816785772355158999660836674773672800820340387413969290206477845996451835274420205048501453905379671217775632056875883709951135039989598885943383502357491055362143308554913306952992519701394020908697403388424650559979568736612394972211397286108202831540464164323863581907869417861017275173301821345344872368086015175950595700817534692043047477523013616476773478700843802390344006753388617068335167450718130667202230601756075877425609850503761055059232337862183110759969939338806665900445526516455841815885325799440768012727046696205801139703904385341525686211825211377260665899400068671155436362304820758720982691114144075668613205809745413991756428073376080533930444912574475477096111916453669133822346430365663865761810213111510595504035662080884606388217003592987287147008401752344915554223727364575222101566259900534408326243464659492927212594304973022595049797241599780880172552004693935068934100380871734033777620314764617903956186245260065623146297732776473130609168571697699576168922831583216301444471283359510351536000881968623379001392237485776923889249266668148188343778498347274550311554040981165334027181589866942038347159294030774243617183159088740987213206569981034209672187857455449492762675420061405251126033937767517357573574018447934110279796062279346514427481720690397628930046896977974219479853876129720429646920895713733196992473979203663535984241163411216217265541109157232122859999964198814072285209101596056376448525253195459000192138198274632376443263016549913209568184436417124888885755433731000473760733793084547273957496378865499056476504589793042459878722614052735435278007558375911868787563470312576620819987272492428757766237500448846779655315328059655568491896203659040086396323292275320802406787128599765690145974504654939173524212377208765279029528433271748876204662796741941923388483741952702073562835745837787921711665186815168527149709028188391592734889047137103519529489850288934809154214028847769456293894187413327854650010587490055885300121775739788033431462704457108777178879641348295032723133965116333236833892798246002382899677741168727048838315572047711018059455759761026720294782550439997856040437110173725461223215232084529728346228734547421514452953795862035118616697051361193628392376093766857093686500063537426477217892736017764440174458069945889143372532369571768722276672966007939582336308194574517568683453934555638054851186706418589892290769417744598617626878733241447322561832430881516249085937985670677634954971206954010347453818108216717421200439918035179837550205512609153163725974633285159157793354567230511596011461526637057164715743684723699809761033824314619889332947752897492132310232113327023708901494609678799244561529006424691702793151205280805133340974173053091822864231631204167329800643972740730780548404660674578418705956300256040983211819922717393307780218280855955358866211463962669407937173220725385545615874799216389737280175000047980313691449144774627188940841017707160268017029995775116167597537399798424079332571777982404168850899339813650092815767744255873175221891051319068272901669169818006228758967707789328999135538805737012769081938538828561245443773839444451289421346828466146045676432497067937847366073601546286937331967128634644743288818272321439402603396520826184350731688045161986423409526790775338895730903126283164909213023425639978764974729977619846079493936201779963028104364025187704158134650810717961779182430028103933669486455342348847441663061340360154799081806187286413131177235404010944860077435756759349601984894219621540797858293376155914183617949025961555701591345034416896383545966764311448285582642938170376736397824745956119313297731299515181716658947466060408376825841505200947957622451232824371979393319256853865365931113344199640009136614876864640150773609908196227979878984921922579040850074058459716678424756212174836378425329380023915605246072048844536699234216450504937799462702142048986575899477842160032748101808621576312380230740102150492977490621882833715182513259751983838055465434589653092525404776633390903170489666057329300076200220790726960886102153887436287377759733218400732893234908214932865826504701498535570982775408090787410935825969129194093722594424441687038713085446176975560604334671620772451419671002509867010170797658125064377016470815295647065741229898990462147884627739887732528747061280446108150111496032917980199840692545499979554781079755509853821834077664395508068990617408114331905523233003306992658830644982138268406922796833825111306968973465994568265769602654967188554111010534086635001098701741028894530729566733628652687960729692961922043445239909604799763951850552848788392736768592283570955849789695185065428352948759631853197475079256337499585559157720394701728971193409579335721765392264636211164450961938722596170431796195692071846044679695307682872998422597347789440831003240912745296300685104740699729730252484187523698706026339981684799151986980664496838500002805651571819617270394557032524254909829016636150885873186086554298703230523406901021187233965025616485752874909589716581848293988603746368574826854746910055020532262533539572517152599432550840540691453702022289398550939208159045493413737881506508262579330443298526029074351328780878799814216290619703374333107530340629569833411455624659239661924399035443741122230291849795074669087246165766933920941251591842578686584771239955298873134120992856269850018664809698076293345051693291455870253348845186139528753275205995359229165655078626313247168210519428552952994473614529066147634082612641488118151072889539013026880937874733730174372355284638720977574668990890285072584070709271535489567762729806518212462656581040756649469376086152451049103023966569115574115805217210782968896094716059898398369777091882190969280272176368936747982668773236609683942270277902241028024688126368624539131150160276451728745702565128212426534668545580333379149676342544363140057594032086383144615756885196279044994046554478808150621842402546830734433179477169417268561955545783783157097180510100962797260042846389170872529444023733863725803796998127257345198994905056527496405116385719347733064103292751442980896741322459843265421366036137549881416811418542598003613875840309851294348522865088818942676721415125991839644161276212182535746783253300780798024219996027677442354848852981419182121151149488038335854984534492416782809623676677002144277423496080206695645393530944579444941117551825402985033397516040348361270862680322292987583697763159184600379015523229513097981707871079752766655864606011774198211284907997973600091696513234192973321494212610377278215573134758282952745488055775343824346436967766500227213982954282478678636756767075520689123160348492167147501272821646420695081696244330520328313836521948731761931909327679317463996101040476432033855782251212801298914460893916918079142201088181617843336985414236772961990341439976228086733349381900036898530669813091320673098200310436346096604231019530957713143117564154022640825510585811393379580875275516952966436409430070460993408748361030790771274208299786596234406928088672094809375571067518691778561813054385237355907127938484285188824855760312034212951831476590191855905616883060328690089446990655997595687667862408127745163266188945295648809418813218759839102264170506538601266628094036934506721703210600701990249645431257899925563600095082753456704883127765950041309727479118172914177644541656594459542279606589934984796467860740116453611557602916665666652881346538625485700850410052424452818018615037448715121232201534087240509275037941390168744779605579140616171022287504813553004033289772958199170544246566883215250521521079669396972956969475225375390771492709384697024474819982092386003240022070324008886663592744175970503786528749113248779534596712563475505682814504659850346810982879648150331811626114397163111087986732849115515309651485754129589639394362181595188308452360442656435284768212868313996830246720159243261067104924773245036158210193124133110156846462327917041132166477366787392916478168712553667497078422991643270271076589507455366416588847923844789734518512127365568352579363040594851259620664512054011448065397851218846992457486472843165849331367476786090302285300758472941763723881939311174898303913271588783215172180669678040999452767985222896869099460997693328712589771978883312446858913018276842936518454009583196756453390651231192673520257625882390526814899906565299078047504827817690906270213323784179415816254467361913787873391108250648576539683237542321404447082501669337467289582165300688230998021945893344445878144225686860861576395846210703266181031129873898637813426297880143324287103439801306757166588161194943371158926813083922205169416956345749251626590336030096830203053034300235955314870810363855192370118458841419317784624649909052714909273300546936676134551245684406810420137984436386584650256339295956309218400207519689394472938385401455383863681547796747080886487075027839580386133380903721216406141286725938518688193994598544497708487283848984767303111804294344510800320436767689879258110013858924452240029378938852484983170339246023359499199614659911727959305132263263190658260448562231480676753377354721832826069795446951597314010814387110851833650769227708986633159431405277931181450289743703022693887387944960118342756286299351706499084773591573146931084042537027229166874462741178829570580585331426260765959346379075290138786912504191823257546078796962170818786828820419961950141526738911694930724503020368315719306328452007256558169907347428843711089732645148310993976033308575124199663066957646518667831907692897524291476989063795990882382847744243575600541663114738766025770488489468226621962435771121515604289036672636827329654470191612686687091341102971067518912843384676658254859884443349730457887428884509973935587474327141776299242030430937441176536967688243822552079580227226503682613226865698749538559738871692707383238803142610891296411689337727034092864965087396601923036575245227127872073888083354055936824146843415290186073969990259935471346161346752603928888284197071372097932510207109483985785345631423996680622043056198172207666597274720802398939532569404258908554605266694916903480742814722352121487225952646048386765244095069678865122337042983174345143883911224212746012716948198033201602644559356008639907075059101585368263947255621173942073046230394155352455485480433303756697679308400415181486079658158061795917633014111424936706978928910616018476043184544823153982057506574642956839759282771356122133039680461769753842859691034650526339821888689171599599608304434423585698455251978968210906812954299859763555800106538893404062768170355700911961026129169467972514677475386227994332660108238347987453005383921545765902646414509696913947928866030542784966736623670864676299603504925984488786762981214090756107116761549215354011204400653910398240551256421463837995873822068218378184127025083756386696163741470860506658511273117439328647700117773581629417552674551122749651413646875018040442291829518883902127307446900623169889765893548339184040779629705000260534341635504417951938100584233949985409217062981870467804400486323804378427224201743463480618020540386041383760555070353503983778279407964417280703828709109120574276193595015415590827178548122481910577619622359835359428139146227983728880509000489273431302009051970116690028951061350709147657426557335902126423960964407788349556663482378181340491263288476335829399860131250857506875759468929687077426801293757236257196165168390219215298853585290805357614401545506618036699421060621886900176040872769911690177812939661538659972223602863075839348446433790778728024285744701362045071030697133672124988582081587578721848828657639042263153083518339612473602994678584764593996454681730021345224187723253827550631874862603850628697064627933026029378727583342531714776999794928029292746082136094022703079767113322313121630609343511791258382103107687808845286906246094048820531913538397784563566113156986320181432932037778819627582937511893268521209535585235586836474513116076043687302139937420375455570667895000382416814820269549333048007931353465701172035665597139227297954600915446753008314571883453031589751088210107266511546098069272923100072366071851712642388823217633042975030624429030426880750339678201051761660988793544810697459671238705675144398386765682816652950601465475415996323112037537875103983279877941180712796327807414958790184196609960401537856193344348474222293574879081886495295137618930598760978103177377909466260713435034771247898368142814506260242289846265941990339154492449149306229594680832519078959332098912860081763954166360447018955356233827999295661489016208483355100871945657526722109407964997287370445925090431959449842287322389769550598859098848070156077851818635983946798858920214667675876549180498238195654286231984293963229047998022756204547504847050172340265554721960897926165435724188038463114180962150340311228302655182126558177428906574746054837814175628277175515794751305351879756468914658971819765955271718461492014215243348926344303112217646902486709039125426754583894514701813275364220179117577410585122058188303737018644254025135316190718279963451662174844216724364659588936063709509711441415494736128603122739777561381881385350878197704716849198128635848199882624639867246725074874069272813644231640253536191398186969890378537837727578298066075953597799899941901310126418161942088636577832508308635296886902925566320408409944019102541007046121527224362893094492688198016806217476145194397337754160850487306928474381718786572798355388231351720873592105691979736448824441315426032329837971455688353090298289167543361926863758346136364670423216445987748914396246697010803469279912728640632539361048425569813683023794856579430106260336394487157926827602374538249931965587747689554475720655322145786723498134678427577023428389339651939595630742399562593022791900968322532685694770609173251550633186639202844073958521819972183885275060166202379024579885847058927688797585768125624241452227735698163545821081292733419326217130294569279120462116635491963219068130041323615167699654688855770538858228705633416528096465216561821833197530044829752394190398824571191584981078704582907863201432832209015303711670104812535687260278189283968831909928364798033656128334138977830081051802435160606023768102313066826480337896887987324354105038231536032540249106612293231975172664593323424405185039788105330885484770103676366975466839364345784574844251954158835608064658084634179465616030130655235472301883919077918456875374854540174536903100655260690753281493965731297982803689955917398660652369754900194140830546548138562331266163774326952278938557938686200414494223265750226873627210302021365890559552972779420179068141064429023101849247776398528273714266897636466184758697118320281388406021332427494285764588495054033624065547441393114309858259899297251326964946892399348186676831784541706932100553241306545775580180571797846267270778718197693348680207355017740138897101099055499160244210178272222161148215850438880051647657192299758341306079739002394050280916509705076686378803417807155950767962083061103475086716408114199147086215008199750247246643857089473859653355030019458626014503793810002709050322962174036311164321300430044690257730628280725404297076281484862081719285547176718343164779407931609786545940405814330205043805584642443213755667405531807088816459845945793223317722587518500924320352853624886638517395332813900946793533492215936726166709299862624570398491365089290439908722603676535261399105396496861353137876418447436592677177927121007059173302107261895087432316296365368448012577673453365576922963203389634352196512393256084979719193042415207327926648552223960378923180827463033994217695158736612809834329964094564046470964726723751598859449644035790987884750507635217303502011679412825558210531936329223427593538795733890123079973408851971762642347578469429695876665418808367374812481171383747877361299406048959203796865414713289804253426743933244789607434390969304124115887641949768923794409486136048544420395744079620762311096805466335607304663803295102845948009563273750953479267537124572058670761412019117243007594188966876648196986901650758681532816279204937596268555802005925042262636975229265845791017950487685366075286936019714168368266625024550697112490470080616655492752729603256525687134337553099659308150296328559681521877548775294039239026349017686550020165939993826294821909738764086909493637710262378689720651652432078911738340377742208709566325837783127284130563551739143560882381925159977997527429895879042699300461392928417440852204570897700335557724554372319883561770894192240425018853356291240714475973301646407348000184177966482233977537506176561224163809856300531020983139802223353991994548187976320849128641435513340615340880366395484418247769102955753633248302284209251381761615444905720217923081344213281680853101075431269818104802358144622519198159029790155304699056885512601069554345703732155282026838704874952468121297526795648904517881554143939970836342885333969838278116172925048692444691681819714873954530809812213441269574218538076846781058612435689361956889808019054989968482069402442377782516926968863646585899630529804150224156770464444323811756520525498172692230173632937392112170944368041300294107250024627822725043340818438246381460460293650494016014501683331385260076889580534242292194819249077977185762718634320930519515019526267209116970802352635573997346961721041082672211089661773842945305306238013483819977578012947827554178984441186226812255299188325817846423020364684784068456386320269038660392710593707439635259584281373540748933509084162400784201404275078735040528920311460658244534092755666106378884167453211845940629574479263430637839242692943857451229112329980123198229130329213367796701943973333407423652254626296899751472824150940991731394519495649400944807195925858302297797951908740396086359132432315402154690712066800017542384865175225112805762327742816261920931797836014062345060561598263732883520858962397850835771888784521589457900906087477986942954586384421927659701474469572401078069363148983734173144945777479464116209332707189745959681564291268192337598555254314685088398780154494065843718209083908506981620994576252670043304303723932481334239016643565875386587001405004644269056423732425514044401417285796066717749094598318335527680875928008845356228262678676328903356865428207767169068965681548114450813270583483900985090217385514751610655309511097697875968697767300748812912015808718823522953536533960936579360521153431649988718952977775212861848209025686897659326202434594195909564510702662365131932169451556872265290790507496798604893331488454397902262987472269808666654477231866489567365797987234964838464611976967997682947843547572390688898240355438521553442438462968962819367217243855710400261244406057427756761849179017146103627967599132973785999448977577633989505514836663230018728110647136870197215957265395458055174177317036928054958659809860134640980402164889037587127802136525418660451260106096442397293274096308056883778266691514270527318013728747849370505893591022534113847806528987245644774071364203172882644109818295877513077385141184764220155895343674560287003221762928400498143428346994662778106050114151916426303340902790966119099480183280221100276198355006288940117822912407064975054250897930170572822348566201706307824961426899635023429208455618812767859716486492548286391698477382114925794854419238863606627826847869180129120901319771819603500768400749844340955848495775629222917784595608346737565452856046254472758960681765408647619117148473959844794972232009147359958958488090466156484854845051164524107274261665618018400034414209413641288393713229145018024275148450770766178099627309381329739782785957984754781779195171335544900268166388170650503035367409499121725459154147925965523954321572037291722106204688044310663317181011462764535222656377023931730196433187596441471436240521442676145878715356637136967652115192026197088186632823099934007549436409519098865262526880445443262025082649306181416916160455583271202608877724368952605027496768084769105690869261468140872656797543912538910912432930913500584221465482670958482374088127845111352962068817014050472606430133729344620889359726946884101794228207197849697665087812265478869498296877097851764778585771102493964680274440706278529525944791665144386761548382056252011037812500329668813668278568769602828228870025330330250508508342759453378060136883421025478983944393603951443110325711812760798211478169692482013791113086013637289556867466604336693533082664966090732252240835397431884791217761559941638437420542501132826136656044337536068844460893145684836118953476671760337278022263437425360805324805056109076128917832032751472505826774927965765124560541916703883530015148176013930836987570087841113600610869524231068031736283499226541724043700520018310365172901578262005380175759397360619311076813635914511624625993134755269180392277384725154873405935195669072152730809512120658601894540254772711013008820030967705526794359423525902045222616731319661807893003756333093668583444122708556274202619050689592561508201635365379112942205076906630378730994466052375793655454114559163591180406123213611357432609395101305809113088984257985820532873980219039783788217562122258221039399169330907083861612457907305303248473409514665154153777794579060320148642066847352955555372833301814223337163181662063828254840043415586240272698249905671333433075871906913631491614436919903208843375125504768464696600147281880146163467252589961360838740466691634283871474200607615120960235620681925714406060905462585130842188015267872815186539584615705400847035441399078685964613057701444383171534594862334601755249546570406810297157277226590634385143763808079210758929474531304125291748098072790110609138126579306878349034722894443051118676884782576758493903564745157584546877179271858571884761332224599823918203469140723415954775344064043879316346087568364017028844533720971231203997528157552744399984107644213205398701423257762181857383548692092733041833509849924153715208440409174273900683314317130177096523595528521500514749161029702777935556416733471011824944737442908056276273186752122963057258815074437533874329589660716143537484859878742026326429812003210428229596951391128190737073719745562020907032591464385759614827254839870063269884487829659229513652434644657416402563723229602687695151346671357621838139400553784706320358302533488302137391461244167311152730549264868624767641381758287865724767002231558619978652028593789121255256266471114256196738646960243121375571459105835397840951502865102832258365762789720068410228070545858729789273143087879180020800760938816122584793968903739913151583960953146709676031041952982003342966661904597583551647316888784643066181294842610706866786771951456692887935501344360888494929203444872737906290670498295964482212219507681397605726144679333967521792214642677695283742901959533107413278182573963692583279532929183975156148719023430003401889607963962092089153120622582779046009216022815688875096138798816277831531454674749186116265784743072096766235563952353002080139258612245932920778366855196135836470464885826327931120577666474792362546056218681607847937651920098316621325374101080057480575802453142265222075909171351516240799173278184608708847907364217607359439737361291749022083086165656912424878778683291159955440420411724646311394920239744870546496004526051932477852920889753199965236940425035946356013226971655830706402293956651020006015830502402646715122051584078716659464084562624754194103577499024786941005480487240790225378443025719391206385363239097213354086679571002468171593404924101562485638695307775358846665079196878163491730469254721829658914241680839390755010267922494611463964332335531471885319597765287642504402566498988911413209896765272379645491015425018302178894620713749177397060338288309826585739339965477126405548928070532333764843831829209513926312859799670881472794006841212968091450945447045007065174015834624824710835176510037615704446153993232831846518123412532538705513580965511228994280125612575277224044005983611411818484478582736027565667593727363030467390698500172033464520549741767408964036190387283105616906242676355846348086882093076050337182959705108828802080889183591302069133567804564946948168758286148968237389688113558270981879798858950760994064742012714127636746709573663633858056347750923961943167676502811549520601124240075606377135000520595370750530285108832063449807122713682783915924877261992511294976364594907553501182415990231909779894303065748052197828250372089052475287845916019839227930327993393027676306874117871271110074146398952948945750368356060750428342968736297127023995994983172844502964932331504281604969036436403131590121337539837325806313829901404669688765673029691039265601063881340659032378408854941501022375339935972546191066842984866620000931375645710618967839398651378385320223183856834847879302156812243910207160842930875263420920005489898390881076934342358354102888238392758871222028960928882911286551703659382862056939027916411635219007354567150339849570737240334026583652276676467000324036278069504353946639293324762333328624658518132759715608449266997520040204603363648182858227038883956615430791291775654491197480731444424719964063115397679794792092217624689115364816774765887938223975269301782285010322391071498163808392973874655225308374283744438150981282604847542525678468562152024792864482983957385961614378372368786074537669987142997416267677212403993131918669371226634373580798964186037488376272252390354352261074479815771977490911548506626660533300465133226416534103531758401035098172391345968305326242148882420704339767955108409177377389547784650771999176637809766559777178628382229676075146780551812173464790859972598224391489696439981024100635493110723685744506196086596988633981088344944248507156051550839730451024297602540246828207988774701587187346183386699307541420284654411711908099585827233886439106193539532627567480084138870569725231975407934719197083499671430300746815137393045989480310348117574147597135702694417641311975170339173455637524966676180311747299162583098988564670717717278017586332727901246046473948920023776411658372707250593834900639046823170297863739671211600120343335628034217096855639372471336155244561515033066231021934634474250541679702202314326759998625490541981538975215548318437459378334828395397988301337164936790876281830227122533583184138735657403594704089748590339978419636845037418023659135478190583571823407383194733107391485339347792521853766862537922028923604992469524993006215084156394583436344394456563519835792504386399675234618189283062459697426787412061990763559087101797568005955746308303052246529241860131431187007096210232066151646327089853100926787405290559972614687262771690831015578561984534985160777782576272728921737980609292918580909284342678873235306127782815755748652175841198631788062789761624444511031154000781148403375062318432767684002513382602678065338198236757622938050903339237750805746936825838049358211314529736761943171217071074292270293960077810920161828078984811493287736260856358949275388446289310678760596012645043995406643820999330965358021537304948335080774293487221187510647311735439219456029674878381842568620359458017028443804243764719881990938680376004506617676624279506130651086332813183639530406300086399213703355106599797128254451364917637145929329448509078688232203339090173485377496531318305023457023353022694488780191098761697599355514190849006225478878468011197074854057617598210009605793045829950435108489140073375337187863782658421314681456999875209814740034162686855486752991100063026244629531094173948177011720410604791527984469941386638038249911001742348502023402609546503024219595115619503272304604302606112366331000016480179261676887441281321711903178961340849713717712373521141843748730500702756149671450946286568682494559638265296779669543035531678178955755255919728950391162362764165004241115509510196085130815582556807408133056485213692432678103025018446495145355937597450225829913874919725058205920440566481005593698820257386355801965406950144712595204701565501196863989664153174100742581267491772380542938263107591764176913316717834557118945600543485734131723155837948315827408361388412389568540068969175184088309364180403637978004850476258742593956400669940587588334644571612322638468504429696692215692335591518445035989467395213242312853607468954947294322365236006944234127835950951015605016271395106876320430618024765001604085092221600552266999530509710401286091057144929045497107972048530799977028082561050883578155495561851383299249427387461450683020439660788457244376304984132234010388899514205784600788436998153764228421893426198424905117791601646091388124325385771584303154142681995502003360456971097321998048116865878031394857801994439756402035557610336804776593938422188846079643083981308304379029830584728490416832836144046915910189332163102154723221672237543623994301034646640318547583045040646763342492812347645128287067065098966042885768790573481874259397948397257365483953991325271687067374653859087290484411524190803939756811074237948569703309521279373269710474528747005167550825996697461996218427951572947543186373453171912967967158621641794326715875826286956066366977666832323915601663115496129192965762520272872027402830666129502008581742022846527827344346251751854810310434225638963075215762397432588993111080620268372742903045500060878256318453191203071008801329151490871728848310839794683368465096320173114484542789520326178610364107424680774698420487374267696009124434941443332687800475903110769443043182111935253213445544881061936593471874244091689870044943929280899730623047133369272745200351923779667126368622716141036380375385848307115002986193332648045387540991772356863866330350542120010276924316446216321971963179542266839922280289904475244898604776825648514339701757947306937218511764806837082225721287990310883397949692557443768959924284362816858651070795400368174014172007578978776786608291392194446274719147176132742245153815059364493199559494932221976455956948149223201005331982643070777383650488936752698884225932559713088907232119906357633062839234240668181005299260961672462445801739297848700944523760677443150405670603108038759022071470666142134979988162409223656231447083960838897459563142020438022384635769517013106065530646326844747416369583316978591892173631609206669296698230760917201048372139943125676996992616509311701188672917498689371837896635994924486246414700373602560843028789801250620453644335482495920118941985732440317530707087062246126742259834236367597485743053440617537725876745535159707025522934363908651863477320261991593401040985067111673278482693429312536138402895894627778455874133599119613508126837022751968719171097282019840866444776292183613177429993881531869395878277782777396750829801845152617508632373122831527690132836762012554317543636906005505913660097875210933584166629321887694879799608944734262080429558385353394799960825648486112878533835903855298459722525858979824587518245194335834972931987814952095003532468118142979887941673046054123978926379697038625661114714530084670768962629634923522018525729089916818294796460353883599146902424985078972775452473310490470309083615940364389486128883047475530866324038754093894178777774429163405513318813691153787373062688585235564462863815028415859760340835057426930352283436397756757519117812842196013588111918762743263353219378535759635803203415241455267250713800400374515121560000140470283071898172124741550228759448021585240354540980763179618945320181731712159833128447468697702414628777740190680767875495808934676267664499506966593631389922131497686019772947653214588984335301477071064890797384978096142904399049427215227565040480969587795390042109518153947104537623136735809700183666102213515801622872950847006245495054684233634089479573345724751466119590572063758532985052296592140026824170949438311644190957179800277611607148628384958604724701292497550687544811649729653023753425004228490876674019445310007227566973321245900361583446022069279020506971246317160715311809156783370619783750383235170436048319893356435592203287776285174159007313077364649521103332969888466555668929041326368577226444877297908874302648995583513694174107798515481641253037018789670056004626178289154494966956533799362607801735765110503487454497249126363001369295952929077513354932426089208194444450011147726206909718095864665815483725205385624080460276822594151171333126389182331385221277070708744512125533779486580547708906867108043068271028392450755593298328716794315815116698676653391222249613871422714942971256059876545971240606264555387845266229708198386218104222052264548467161408499725833916900841023232821623020976708878835558498659614867220716805616316148690460005932891358424792400687986423123055608361301718787858786508725216111846961359197403088419896744962358346092731902303387749209467305082183829992617883587294082683918678674290508030834211245736595858801670103985206489782518360797989518335984909883064142268678662079786210231239992349244196537613424054202783642290821878755281551716248769884816753827322936034299203725990069700777748643301972197773110011840905735299740108620858261233244894632528381720349017910298078917204825584094656120805881338318748265362454007445165459689270258812740000119724130048825269062924876442498042383567337067618081799543388379799308439837802886401529250405039260174533448447492453075113904549173531333471319120976373677874244851251379408217495410582983237991417595128948249951521376264217167490528557313238126363828883348301597003908804255832019858085889012647452179385797670966303832641299356260306493477968886828937308081340449186891125578093081915798024959320220148958096847726379150299549058808414462730462537141537316229828307049850563137671028505009133193864790562304145150645819328609246898962320048706063798990904413981426824394614594594764750953363808585986708111607519761762739186039981770158550338240392067694241652962445753198730740297381490746867197903525816307770453141633388739868820718671459931469915343283925857215146542469593884294865879786833108917639767159848131234422737200585877579248860206557716895308926660457146471380683974057397093989880863865933628591684460674061694101560270940979054831137986866778310535359951657174195873106030960606925164341529975204595035315224626845409300538070517217726498093080142717402424395810439216741918530963040561428819828433019687031369886874949614489736467338422247703839443484169499618675131353631374232662269939031193071683313504028862682072532837496791467057112836612307468425581766412078504907754295271820036122418602566928818520315085199674314002891084312627506096483937112890752158438528832846732460094139511451823680479456896479160326846317525376842833859951489584585342214083907756800595723286301488207479031503270393543401470084390820779122853739897647001067511543028483626832850919472715360918141872325610479000601295459647294677120656245001233834368538562995797589203511620599783008318910671736047281364168403621702689295406074616677505613429267484815423485516784652155154411254716904492857020148412355879353957460190315803491164650833825105843188635322943010867726719773613564781948796736850926726019650990678989420649805590235883754741688788253547193596999684935081118776403241777811802187226495743098044213019410066196460603655759305039476515801921820167533210221615740357913653473510812849879334584372533526463052426166759867665918607519631977889196486542843604695267625420308490008338532702966638891467595842850224374309783656217910461984054649286364374425316243757315656146550016284128591285806154869472337923330090596959963042365025863182802207076519807657375848540818283878004895774125565474372271372538952829012696256653104553343337441711457463338832644005451900770187748663643982750949060916941348562625568097309734524304982239368163585995853310345229990639099484226176486106898018695381383010643717999849410015637520266763479348690480616546268061833439551445272483438111058752830345843327927009330847491060282317899705135162754782532601357684361127184086431612980732613661749104921352354152262030832381937051319296754613951893265200977951654107583164972911347598207500612266178753898180868711021762774715324483830530481036037395491678230151695848967355101239771339270549210200838785397353387095688525694202425375744281994460627468061834243383658498704557720323168980271515239828136976403724170291145135285119229241136266223128652750459279207379495843376022583332985590435126663408039859525909197945358827256356488288659497981531786937090924462136170798124244188180764103532908404731648469689330026332388448064765635681261129924503221649544869699451116499494225955704963286813006527996971932240352264523657583859847906033372761000784299698633058232778171183223114285014336993638604194135324173282337379897359730096342245568888312044003966025902620488985339806813276542889417578595769750491964647433249464178387306693430475032457346289060593119408470521909511350367732511815254262197366745644566677615546492687779258137031621982347819520059971063510437999175564828307479110242368523898077725591346927097923938458334415887004935548987721641462566917034099276184974004951314960614249931630668818917098689633211201843649342024184380347141626334018512735529933560534928621007137124318910917540250340635077411600509981004980163608781931255624316952049878885327396673712752478811844961538747530655911549298986432333832991866008327187743204878464347580411563068942826166639810358046625223488390127663802653738220731219016912472074413288611465114911527641644239492317477185202667410391630639700261939293903493236019509186279517246482221038647117647194106859618337323512141916028681133527396676639815927804769633688901619330280764617150246324815025456467392958557530977898014512698143056444503832496906736174150100532193731608898683919955899338655690741266103331344641614995198258580706789803019737423309711305781565698989716087047856024722477329044439545315177596389781535177609627201807171349250558916724488860896934935524166113752353086093523289662554541729096572969809988231335010407133266513744609511276165751039642856366028510645449181932400550336273246878826856568057629700862509156969606759862860081608660885793125397581933276341162858010402871379482046254949403525829766156342335811153896261645320388228858298378937467089322062799258618115046714307451305603862789918199763116243047484517434371491307053129275724320825324388856555543394083363121764376924340465252637220524766657044739328845187023389919517957834872900470454350119104952467037821179663554881399399613900505512231823308978151848874666000161018445414796913034205426477151109360863006831608458041300049604055717900934140319524483856001432489661911140212249129562442410462168270796640091360471342498766825674299930252690711812850161983214518681045272583974297326469333805146743894649612139817535803519274104195687841228092062425933026911994299167804291003621036630710810232307984345112658072065620988892882340672206868104775052606133779444858508683875799364370066618971839883392147637658489169305064845918371374322321325725231359336014572377769335398157877258620836223367432169356242869020654678415037093882223853865540338064780863347944507850519604509752629906688441369450408325339496680895258390504575378673888868465414508961931169571030049023037852725449943701428824902678614159042434271148456627971690837033794731921838008317501247664489686252305288862828176254823055583780555971472299192868673470864360002134504356879171300689145691292774503682859430868424763931292776621685706162703747271775798686456781076272708908237940230391884405381445904728931017217088899129755043915014339232758189658097709071609726560805998801005363187177428566752486892272613637192157487925855116999442047416289445325505518159532083518332719825251307927884783201223466720207884219541130651390798187177296738294008453453962734874356962205392143612333613043538311667789773124766013701334485898297326992825421530017000171789910931209153776061834750728627734031326408585729427965565447924052890825625388048293209088745976533806457436821292610832561350251069503322921726527131269370170001550259137827577161357580828682659309970373202072779542060470316631438727008594715391675985318803917680994796412406900635476548450438164830833285433573039462703634328617839787730339214202692057735804501583797237857886333422504288770719478305538187468861058868202326377821683162019232789937248297514409443972952797427894542488739620778563852172521049789376918607888471543796123531618678863430442075692171240013934644443184965223456514108941950429518345933636040257911384926142417359102087903162710293764014711164613792902009084823576501665348158565720805618245590348895069378941319220626924739699069198264760845989033609687092297718901505481867007358776364602379286795672783796389311374825855178873982324161314394934714531254333376836852263723378771406425403683699082652025608584063058326325837621943944698550096439302971713518416338552429310098996947288179117166458814095591001807108997116122899307530876000219822060510777748869181574419607600103769294013391218335726564828605353852644319581913323685565651637513373459669425195226513993701688337082617920448218559118084988935097860543109704942839041472693863698923921796541632950589900989056308545164340691779330818618354149428298256392397989848720912241843973728646109208927985420351161463384590436924090621422447242972683363818527887984302542091449223804400998576807290795259528090663248970423440388553544932398575558670900659924208959433932222350445099661735688487927649999509711480100336860431875421593792194334927975153579218108122801591306314479774680002219393902744485427828767959085215355819850302686740334942304229792387651159547254772086770606379133986243438771680364281929421660444339139658151201664119669612610136578762144472772320384167531094879500976093809130703116152973638214751278512678067099274894111002416849847565749186939441873154195635516945493162104479632938363902772341653986361877183756297359581560668011955916401117884030333953657044865348962968465844494605918860233786986069146579833034452763303098069250132565997406033746097394349057362182252389615586497129461778771098106258631238553027659185143048256484873737298385254255921081462090674437711000647671584779190254859528028048944389718150798715044803028532095968028161193231493318766788896840214217260712122117687966399945395576741660647004500310664652184099681032886889496143002123776754869234802109406739594203218984535872587353495547494246190380181565239431943653474045403647841997993542012513944688410844679029220946053269019954624825100712909497059486795231202205058135337068421929975292604615977074064875049794323785945841503516247900444092029275261813246900185814546903163110144320979527567366593533710472074825378804882296385218384220637337464746646400749208291701319621178256505325129733547232090670930567440892278917737954810683878860182657478281540647987549127171769669124195435414283844781548948518451152091331186634917331292164259230210432391362916733939223166907173491447216569710110079330856987748754677479646688507457997386895007446456255329537932679186507595338708532734247548977143228694456240073383318393445271781476434665497111331485161732425315345988687126183972279905623766445692884503267997952962684300829947505983453122246594930338289238160062140928384841637435400524329873481603255942622280008401120103649684454806674250367185622307067097404485217398677903610163145402688406198491985004535751545545365395604618368156729094003039657853032689967194363417343753956286127539550019704213651872800900111174398488136739837036798230453056042025264091837307369825779854077191833865728702432737811332005083950802469535146698232724835048692568657963669224567478994810226985778997012900624646694076252676607651155510055405978595937850636920999799964714391968223974839854068624347867811666225949586197150804654189149010472873879093473040707854294145062012473063589988911596870822257114602556864235824883728379324091496948323546712148116025015760135376851235734655618791419084992896243416007091954094615968719869105259224805160112579226738615393439645931070816945151672186383932273366506226390594681231476606891753739406646212404942159148325638242644488063488039223257534088630048972761527668511005526593314452913795291065751316258974351972799250912555267326781059737238647889113906157929750022014798363328788323452343974323100303914582996604851578089598937858169532223523774579143191275883273780207243503872207584636842835287032700361900837203173715497990151366417038225744017584859376169166964695896179478614041515299426277302803883532787810698633338953187613061260425228442735559969184732858409911515072673575665994083359744145077699810332430962622039493358802068022724780032028437022253807386932724720821895975884670723265909438203163909198809164815882555117695505330661487713383931702729368379368706633403531074072714588767802194179797633915426735014484365125333268767316936443388190510840672174799394708625598391262251257682664657044077075474389354056468730219697503588618831080550231965928635126464346830749599670165781405416246150832038773404037374657589957958886287030504507510462099118966703989085467899604102228912602132916304874457569544551954115251954120136647541611953053108169745355621825312523875813945742722626453662875667766791655604424368844751628309637183753606467988122971041745461098612310755175020613532992578654323438919681089653712145115955004738114126135555952821308427155509408327810411622503442834949045898112224293530602969915534665539128763384542336318667052026865385087220782098525875878415335551479916155880903351342041135199573597787136729321178672211133084792546306446888798545458283361838541832273360838348708233499637366562421380546182235332353014961807715609787855055417205535019023255887545928295665238419846806677715063607556314279627813644305983991268292965752051240325795749708923217549695748348924238626257710548701214421500527852249220593330509167754851669459801775448381667289590501002913087349096760449021038495626072279932961789124112698449189024544810842849768351835095746257776111745816740229498607168643147837263961918418586095178773696856396789764619388566346283856654357272891660753839877846330072945822776429514834634115691330808080375206952381491641042499816635966503446929849181748711872433267466065237390886872330202451930476610885867553047192632880492077688536231307727783604041637207408499817848276695398724438636836653225017143774208229854116587043480505446293487884826968508252162599451007929039946256472231614182791399239748267385260523012963791594998874595671367665899846518608231433672563892182656406161802971896418249267303798922698334979567803624967954964885555992683536782842460103825744572324598501027533827563743291020596101090249748281457580412538159214410170899385179043733332325205610928060221668627607582501269902606930857612244831969695528939877817839575767262300971583657924044089176074410662842490351363779637857719240827028209574349869846612275550023440021490078334302460685756619610906049242568039696844768417066342271461279239318415774620247510520967002510256432629977067513095170725731911803528624732365463135411132316997877003246574234634531751117560860713581706922430980556971685406864620586230381519478302452055244528384844429646490373073325049893435844763765236536237296426691090162643011497771354368000591431745812866054262274091386865806752549858804194482114069010181239088858606634128249327798100817806406873809167554929016149902971965349877690023847255343448941626471742086515552185751260486094054009467160993052765869531425165010071188287001608358586658762910144356448281391574857360960653271135203384121050685602230989443680189530455298484974963334824473957562342693178828352838300523731644502380603406801406587298245009338487141017950600832211951929215676189417241587236071084494986525902825302889368471649399209880033652201496811967448481942622051131873906943829770581140511643945605890866150432811499631176928445891306791142566652770993978309105085479759258929029920522907804486904445306823394074220305959638352931776190166143430830811601410896821324561018352968983271438724419126621724486712346610209019303982353106266455712588294748989338868572386289963704307947578533342974389549264382049422114502777860928033658333998636458356598293179276445198249526233446924310903500014218151045867735652911885234559038005904217189165703302425887119680155722236422532707246744052734879262157172883446390967148632093293295367816868030854287024492599526121321052878773214259089334617258316870123596999839163473509636423031932211039216282147581442717674692001924576865684275386228954111007824124966441799998700975157089301049829321307060940129110474472126770755284818333513486380080972651693082086091117818690016330237597254812291086637818232572310889559809912758302941825031325964038574564094671950845695800360539252159094185383592964934483667565887128895025666953217661384626491187046157397209507919993271736269002482080173876428421011012196364376242399661268358299515385985228115747133984069567050734401684280126546950703430555451079065940063307526479413508312479906960101674027535130414721712008917691789109184078218118277639095354435422095687102462871378072986315040514801334574836603123869874160079267296884779569073453751674894157930720398857338820582229497033264276293742582209309136395905944668334343428991233474967140939508058965308269165947946455118905370371789446044139544080404076865004290804897908330017515188085897629521744873806105913538788509158958679994796712982653385800665419033576999919762851035402741939467402699314763510735293899668094014246084304480965462539003312247789378904296252546666171349835420354549374658519705844866772573493598958371190290073523322600470286463326058982985234865085647274542783289453664610484971427748573814483770485252503338956433378473828700408007288681980338045388185166968313611832271250452518479940853120024296696898357899974219508859457927089593843043892966855553250296278630269942453563195548946733441982048604360924861027510943445198753206126057250208025218184371194215585805299435965564383205833085050545930695393193414366025092881236179818990509012399462528688181752366913256333333340648452123354052505163240343749835699195485248980463141638027173956677824465850098535602279993308559679465120705862796782141422578138458173816747785081179189263270106002781938829998336016909571295844849768940161161830256342164526710451827270212254711627978035169321288643764718047150683201780728653754280510710745177223740873543469796810519621729994274392617144962493706937026723189266645248974631867066709663322031835616990968324239105576537791385604416830950918189855191556625386388321967830708726583536741895774147020575222804331316484742687062561954621553384360383130848739526222153161864653198903325626683471706872930222027239316893970189528469899281833562133742442263353749364639180414148307945899690799238147176906414272325350694232696683171461606740075119360864703667312412412752093743228166585587395295727266833679830382671752660156523703704570876983308275609148112673707292251452793305188831499654673090816345742761171136989777454009960247325331485590331436984644554480551390399111506173444426810290546168828168018355492134164818781617828949785477553733585118880408610713074771966544802485639432658614740474608199292404462134912580170650835878992657027426291340292414236914698536754319522004677140765774498912894317276284324455857784681377464063319605569762836011072073903823727153219009857602071736047682846535201697853191115792389553913113691736694473461874355001931093078773565683851204127361929274978618510598051555494519786492812151789278001406990239752855693248229286161640317362035395995602397030964293681842672756537635820433767080944593153387661051117372858218126931724146104986985186295307563054106884265851318411231539418883707866332518840856506528735812006014498781537445866049008345992648752285479286259884668558948924556125605503089074720454069408674844223594979276489208256254611989004268538701593488454156011142713165407297783332141217497866569569515122374023532105935483455484488917738565827859451009151658173513947659505785790189557857040084738578069076845445398037083302491342152343167127057280973568346734945758869151494857525364627435236172576458910027135300650709133469142348913786684746220634301823489757370969486375169277136634524203839380735185550715997046742009626093662015072521964678334823936818807672510102733477545633830398893774395999425120331197778836126094010324321852261110403928626022371686502214000702227526561703959623255877792541387758604282452219949046858687457646374412908755905596463598846460678008230228385252667311268637111721868281767834454419997565483354237047929081788631284095577314260614743742333074914885626841752335472484513094131049429424711796014572122878159469663891915692659891309441965350396989086132079852578128070240262294607639320258222862869177469785852939212387739586932645192971408791832758394925116295116927420504092723031344057445548668120307055686173637967466057910043543158824396841457237365973871524848228839379454137430626438051748238132475874060691967749304612799470522568972658015050636132360067408327029876809380772019059768422833674653094368889922163663663125561743208792579865836046463838356676083604065229986084342684483911471589426396215090600553214059119705863733723810316022050677261373847597665415206175459396462731006752827426499089390157500560283077050633207674674689806990282297190603798754382446082478789700340379797459952688014812076740268166018344713834349331756688627198998235663309985616858725865893561514480615038653057902476411272527369864230630753504885926247714917431880432102850872663784374904416060098459066890987467495202528789829963238911134092778272614044793838435960524956180806445042175637576741606708143877471765196376031653393632895135968468654847160398157853903105594658001032346293123981968147538723114376914778081426037689550765004032519888497961727580785485449054143685357042848811149152406763484445806416927625812276172152893591816375224694593471018734498281724181519701220667925927471825319587054038838316223058768294756348865568383101996091381815391656749870905854636364687095058747171691543766815909522263065374487156578621037462493409302589206060341553685680973670593140321073711841615558274636614901331093727636575622521814050543934738183531239573814448008491096749506510211210492111389975429617630369706765979287292565006426319083291627544640106379861370403284598480827904648191269644326153057306495242144839330853584841293545584812053558812357525484317618246178566381056620446223148225932637292233294273125870869697472175086414418911048567795507340491159291351995439602078777858705440024688656573729894976381194992139594867039755371167211238210288800280775367763483405791992021215747865249718680322409931170460472481379519826943365234559063210910037454026986328836240483003503596142521472832415812511497678958646934053169618596501056517670759076814357058770353176641240564943031127612562220950645909526976467241850504630334557645261678472030681420109797499814176371744899302319167388305198634584317518595961703504634096398735149502208252896314399239257833904510014364630297971794078604639668132888845544842541611608223210645003017345483000370072551613574848146155293338921483649690283170832760132045713651073249872618187443454405840626114762250276137364714584778146044305212684862214716596313617948940821521314872139850329473642420843120933153862561998000619359206674709601715175307366056827539052163765109097807623119771820259123950106707591234553395008498554378369662035032624647044175281070457504348561589433228679742669022770199848905984004648245189660692023147765346181990385746312902016099765485127309049313602716372340413534696466205696844924645752992977497523056969274523537941288838408990099056399613836897098177559159926559335015049490442453930137135108090546632532001916273750017442644086003533698167885795108726414813742943847357797976490808821753501179970694372509981103972219999860588100299661641988467338189294276387410416716268051572635996114415568290222650372772765430046668034810239287591406102533367588373529329917021993037127553275317814996582153444532279347233097714835896314826690839127142407391835911014641919228896099049015720697355745512061526445567393116390786396818171580375024605185516989770280122730204799180833837522893559003075260736941940116479605014972092272743948386784770255260869024643662054961393639887405520725620088000257871701411019351240744836364042140749602921308008950607104056003217125276346326042853755704449168119139292982557169932969898243770512742589345933529675946222435962780894036657583065320491532078913945678648921491259321915914061276670350571661964547750235317309888619215725676877489061104598959501011849296127411181573600414786770299563795344816013159156733269539290507347459212300991135151582611158678251945566730108127360681897183803359586855342170965784805769075553300122364021045504499804948192345563148437867559797561503270753753764925737349661425221605824114557968665892614870383257572387651804491577578999769255161593839134093200147312706135952762755967119978017471967262627827776682272218517495503456371838291521629966977391907242517802187264468954505853946971730725471466569192236778048671408114069855402521694201819059482128517748550924163928438926526395708389349597285903312915379116571600613965336302595323518182434722868898567020088502050339916355207155180319812012418724737127847560915308879528899605050718581350939754768998154119358224129732624808237797247630266728342468106080436761960180588600134358028224951584923674437379265502515843103767506594573882487685788415000348548690155977246249535327811351722734225879560367000637082140609348420287071851122230808089715746998186850366837909325330578217569829092969816349639289014842599386776764082784788499823117020641717923143253001477093542215057603165230988938857483673646188522815049753129434844756561807223884657960170815697317024981797902505768258452080976957215000267834372554031595419631564702339560495160248761923039726442725156203476968883829776089505631272412142345037446259111243914063600999485620440156692179793947813244715378166794929957489054859669622185054207767151535446122474381353448003424590422963395939705547938236777584171554827921434515293123416241928511955884321304961140140252613861484165298556386950417792577054692947222814152130951712485403908922220213933356833015776169950881032729185635146245757377401341773840249748572471983415767479944572790558187676212128872266621397082523912467617552759527210339819912523264184328271837087315736563999869357897928543131902721113667019825352122449029201872253378855280476574122203497577582273082861176495416992617375538898141265166576767382478049998421400973613256531129236147132206949577608804209818789440409050701681471350312036522009667433098102908319962181478865954166530808607863706022130546997035013788943467967237323678622029198764765236890975811440299198041093655993430450065201706872360823505172769762469123346059482333698193162103959649438229420844436036382938054417521778870754960501433587214198630252024508222898083644523711068157007502457056091460336989130602519916164189967182648446388324356201784858525149995721831720661222603876993024392427790716804939715480995777798145375964185792863321420943940824287199328516635414932909299154084295140960472776819177747759471521323703761790513928081710241755504300860169197748851500790359495041640176415291863527742579169907576643733028529178963639215708724581231683597024555609135159409770842459514402311269454016030673016336158981794177555794883851493349556835681271882950116220171631126381663433282079170033384051603340624533056422899812372110399256862290780824558185512689405705961320048982707828205757885722719546173834389222639740224605099610024185963382091731832657948271344906560939202955965068344131732659817168344316236915986498094226648065597683669922144230040334081307325953709046136931223067371620466395802727781578657385878087656493517791991075668673458305194622006390773056444432372451666070429110318656782313883232933507011907954730874008078839922266604585144781890235776358311235988365967233519267136301921794920429126469307804728246784972559942379547102394662408854206619138370837868317232243815872052293967876709202648887962772825574863899944111582488993758755590966955303643636133338361150442102742207673415733156609663977847297236957742629130021781899950177215550148441451386401295277230875209031911765822543057661923364548404018454912108513210566753297271651607832634704144670521515880057258247029006717212430182863138695873099821057868771348578731750701894221226688580256628428035416760819916039244108374043306749832448985450491536117603847615601700986747270095472656332580367371342573032041935250527674657846198045052544396246711768933610229681641154041306084532516972328623871304186974625034576233491545686322947941497017654877481180394835932345828376890098049514451890231693848630534616158803457260032197113512309559832658607093406432780426796375257048269710459405170952732931257267926004978309454612246744419234021255993725662700019351044521428230783462179628620126662439880349967446664033192488229926664628483237380592165517510576743202252394862962389317598109041398849813594861403565742439749782520249205653660645459253934283847762156914529480173497692045280329048836150902420651728027790212343828033672334888244781968346318321311979712921608428395794286340346371344267149839840601453883326791335317346824827391587160237142932559538617193623639231392361768087722877776310392164751143879487354971071997867280434377468877767324436975655552553164814823379352421921845848933900330339201157637856552646213594615136319589714700929156253861050413044213561163677549225902511922240024887564459160710975227637514327485102091793043792205849870467798799590521875904124613993773968958928803328561650553498429913487914156488438025360905146840191627591792993027503494778583885879835016941174286534200715323274402163391246165655464690277487001025511765447534593794816101374386198664658186310237310851369681163729268525224027803383896159036025266337025909447771516862729573481128188207062823411234619749418723359038116939568242211812711947882698520306479206865072596339372203005813010608407807263636293333587480869312771037216224861729039295689845359889512876326369994650652602469729085657768491478470888852746886028914146211742321810507196007137146905525241621399032666149105157754980382768700016729366118966862320408495843326853142707235824179541746594655614299628174215475949825049003450905832313927411128380491984973060795756872473832534192973488404226710468052839017126965152959548272813483974644679756150607271484212543519510877972970343304894025405520334428314434180408246793929097882639044092514034634076822209717389068057205745815462926292993755835872075106663631232500313643128317685475081498977794727715098409499387901180100530599943215232411865653126843922447537813928855983242702150851630364456213783556676157637759980691356741990915772388810848505072087483976719715686305864574340299550436871837344094758940451129052548532103610040969233812301632631507970506386233910892742277447018773052323885866684411269853898019303782083001850745045919010821718655435566535253670326540230532829446427659402980229333182465533138142758024935562260531145468695078309576019393270561376747439279197794916562346472351638749368495126478820369123770609789256739178576500082932582366421745449121903191810521889814660086221691911557471784307757208363245910095408697912575159898842504842894029866436691710879791978389536120002275046851275694253214963828682045833897636949715842996133899346848283916257761616440762325508506265704598814801337186781374395164030268305516740530250384374122962573208783332989805579382821728253080344963245718755404612673083133284845207429676669262323792962919692769375962941738856153915138639563766749604703516021929013390854563999497699990543819150675090623927193171483187612477052958773506450766190327951533217778955954277964909221594099650951226651958927345600379652446588135734507906741875298647511549781043285400974742920404273281488259139162688562312790651996559013342558623103867558075646084272354504146845065755169007348441113978061005224680327247633130445302606615978113765808256732236087726558072282226823103231213082985401797140002454766127350117391713817584858382225228824710512360612102871822505555301589182614837974122743332978010206594441021215913299407794782667465212682739928774783330597184866369150139443212388411553925063952494783270348217242593053196106029158114603424572897386134467154981258285503420286862519822662007297116747697868909234902469016925727429763433989987357334510737613763068614831683713994681537889108798191256782050748041710285944631119184442282252846375355120604403364344435849627085043014177060502823603040748394489252463231067813912748798995123740760689022007046808841587328194172996216808877044691350010683412969333943268390767139077821358816485454403707962031620038023104679806948705409710776449301582412618892332321205904767056696705006006795892893383952298316159922601569081526688826651411957438266803083369601946607262915507594391271107217876285569470009702543520808543856531072756929692003204311432402975254805962259135287625281874004315349996806208717637448306634458673618737595122522231414888349685200342435516960024346779933223670155311308317420783060242375736151437346758100246377991877430183551873536211189432818778935531148556107591810901987470706193984324270049896531592662683621655007877807080044401836310453520588231212634819793882790848532806086236406700666781496643416010236562379208368662245730503400887063010040667038160424151115251415339556065602183067766048853188580171964783570928019007413258362252613456314631432704517699838985717821156594179178613960079487310393516490672506432198566211131151416282522075303615156220688769468376239456708242354220343054549161975534084313179762124454615286894545421686482827524673889192722520154284162543777135714245051662860021925594967491245708636550160982140544443047039801128679526134611762254321589832516641818948931599212421146144780057043573642789810823059299352575473371863455101862439275538763050478062362775773037777807379146423892619379874960621880704414553922421004737157229743158323779282844838813064324281180473003114931658055770684184857971462168599306484889351722212556799474136634187266852308943550026543247859653690257048870200363514398616164064171239645174808535537237690605173958267079006562043807833831805235222479937279367526363308361639693941880605162983685606954700469668692214586123536998669551700295005878996633595556130926239922562867592268993569413027646267147252045976165201702926270029456887684977484770990946672229806424354726520765963655358347008708294154037990502196919749102075730028763307620988706947039750578162072926678559117915741204649950773072599575716207904782730672691862060075489374903965560200706567656304802667543617041568374499286096551579868153786599920783464544383744147726762080804819243714918608899836169823290614053547162494961926691702724048735530303530613415829513801611044734396621931023887663505379553744459777219328942237704748052931756737975145609606404353988474830257799899959911313000025741016004698504988862115998558663213918733751444187377092835610364004803119883782282345276918047218043006273621951279548738527642329100833607445373262074818095349304086168582921584808567254155489129479840695599170474196014528299408187856429822655331843944873566739173438442154394721853310666837882810420034941810882963737067425144070736482281743522184786445991046361884002382523055983142869377285463163932643566331132162786208526544002314198567510312524149371905538119187754335264967404215242544946007086712697125704701407608291860958919230285792984935878451224986187716326606487452373735659703934412511219174294330504730457640041369520898953445540393466223799818722965534138154344761947585940696787299163978932276005450588035649990952290676429612641842124797638348435436784921025642348847991716506986150220007725343938471014426518246956049886664241323375977323959940801944142145145468266436808232146972485499817119331338077406235928333922035442979551946843522717288832183709835234289273875229713763456668314486992348753725170184036301490159265849306340919479003608815698823422195013333411933154136281569939838180740360961559323239854228082241392188897709767134995916613936742475435951177813036012534524035825369145404792428669312643186334531245760982198392838326621339067155002923380235845060986256622435715129105823106418176084070246574100854553402512056950835753580514442352384512104534855906992262289089724235302846703297256706234339093115904390498413144165865596223295348686325524693199166775684537399608121064395357161108965784783057400217121288801846798972961100890738429471717498952771676134436713149937423012395498851537701371615062020810286301206646503367002813103078073773505887161518955020975370173687931012708325806345810913530745526354471037453990352020106991266841673677040697092354887813606691638044203792360175923548634625891638419968747047576747026366588409594808074354842135748062702476886112578423871879066549956947581779001664182220439457260880170315287201370626051611631172768084577847077913897549475648127383940815159863523129437817784821069004925780514256367501417265864814267846395794332896230761795776568810445476242746722210760020696038498425972522549182222289530028527473603295720098116933630946106292120882195509330495757587642990785242575982682715868833971488055705214815523120194778395990985568610326370406883386159031876772181657784793891172585360748560683988987780633145161963785609566211000442687496857213656652643623013866206467741534839347946522095243013976108274092196212581555975682919726665600070591167855827755013145887982684372125211973909971053322057885744611005632148928085639636665982189666211567695044556578887493513618549597418396217152900016115340547125141952957259854825036580376491026665980519201624204681218654907030833477685833936956483982894265717893659216995247984334196861209478127930686828193512073160854022479398968814280159007571642991675273520660253243241104456336348063107034701582937098671156058433036802758055295956712221411015669011591949682240768249829471267251884538972705018733160200967941312701986426627413543960178182456510798222924208509358121007669822298635861042656438242220336140532502059819147062364866598115421760423542979857157545881135770695086647406505256189853151177079513636539591372829126914195837945718255859813830485245774820954849183489407608944374432796370525672376434316972878908509895408454694540877719849411363844994704898576777167005844065235459172692791552401104021107352301211476331504902057719578658533796125832104978850410903687340291105890872357652770313971173455820017576371887846763141782400362806240618666056086209500219255472644211954223045417341793781149299231203019967631819602761110736353691737458990353573753766177318589019220050963229865277657730880231667928436343349738645109062845199945188675016366823843490275828836245700845134864236119897032610948578273042885083814264351804459121277053430712451945098780505993544459276510530372885566648395661536023266854149782740258807393996683693984910811223300147802304915478223510567211575294845374572625842723224304937262829562778722954786627753468135579825889614752150393987097822631220024933178231778854320003364053532163585076548940998339756275467393074463852429530845019200505007427438231693975213241030499562692224609460067134433601706468013554913320941115697359978496992919862430630774232443151581983633578915357736564099068155115139578316520357644266061505189436505086220979313315883481787008315832808571561224759766106754375365909846350719730162038898513263635214854713558637540862232893107835629428974899248849318359789728755510024199283665461144475559373586243170621602947125218449618644492551825807197135790596745029537552450910705351760142340185868702339491766036736857177358234152621066156745895129331348476461509070466320640246025488487705921197488583787835021769913637358902766507566972299461532346214883490857574462639646643195605757901152547950087821131522930127957933262668671689059433226701747139988022744761324351565316305178721925596537092077117399684524393246255919234453483435661294341525079726041171767032779465490658478082208997954087100727090196068993068484191082285835950799361882542625128785935669557496832142746487198896991187141134509751160978210966714363934689673535447053158771595889273906305603913499613296981954670330090824435595059841213708582658441399614835898729103109876293769000416023348897594451996409747071012812196072745514018407777085352308591115929563561910891586014517122660695781178088940543365900278800792549151466330607798512215559023750935111115290021678783071704982984267258092834689798400311030545092756045743192864945903155986425419229094852599166599640941828446574252726898718048697349912885099846265649933516045410506955972460358017333187019820928066987609332112091933744444807102206614140959604920702493579295380504022628713048768709805289762877896555283304333325055252914597349444933906957566303796370918863921577885095711771532804980509524392581747374739470304303753162458610118968679938561520514178195306418785374988201196101011007187262022165084796330416960449455860324514865676467575911589743076434311223394906156084111333084620907333096246450759226622870838369999490973414719187390158885901802276025093239215076597052111025208593260169538432697097069579920728542562867749937306644767068336401516623365346356137422805516011767048904798346272102562154483562765184036470660121706834100325739943769190286557965446329978760175005752259499497956147440133690435785165588683373417691239331823793228299576947196562326001998078577847485649704922423127589325204629209350044917343727355840577202592923583532918659419523526080982301839500823320723432878509327603462620349072725311062019564171427768790459020448358365581961394634706652234049637085173555957698257511927748064065870054828546026015156220434309751041886698696763131270421463975365065325593199589157631178819358129555080132200530374914165974853758274166921761633725964983147012246991156338356066253959284532805334496371124609301163299448131489911553162748617456471026898024778055781867829953982188272944593540750135348014049042966752550932030863982115177599858182370828308693240932932482495915941048267339789791647580845547153528796155528223607879127426147371639313752289438573677436975820238600041408921492612585370385881862573208108441574242123047281858150733552757927525477529327363823887881588838637023292359375496751912448076746004053467310193820043836313374488645433323290119300472139693905728085126104281586946587688494817603234605742937781182770391288820719177344373127812825974221084116180580944423581689057372303979178440040808984432784384544784344681703877867181125692527731867914458072112726989811513520500996381804457765200509328125006729750135721506171795974046117857159661615427820403055824772953895160362952150406916562151978487912760844866330231746617506859735822937672300934618210261846647808925769031290167094647302428168462616791194654889678060460371502519981523698698981210959781599354151256072453204517454895034048428331404880185864268943347698426819996799911619345316496924281217284819414749887556847504363343347134802987048637990088904282487303310796843034794936797680943279892420914065735739652877531532652178530351100577890074923583814741608704721984570131481174824937997562834562656778399607081549224654893316188313338119584984515672665187910922006180295262874127861694874447193853996650091195770882593195645657377392811921376134810858503658907479405184920607547011085894384965946587577043247837199526824544631442356422313838317399645309938320518387319340904760223783885547459374051373388042230602780103034814372019485186482568930041629177110639658409945781116763326215710680803677056474506177586302189443952787568661338744338691684822119736120010493181714792360170809156179714445101870846062964287617656597966132430706783812999918583398115225871204985585170008300529384754337780687734238634227994717313312309650405948416297421389396080025289555830490623416605194840184016332355943857869087509540446103358642053804422648791433831422883647178889563796686772170352324255215340482596420622234147704753161675675584406389502631330573459989025961008903998087821962292558805574244228440424284136503144056622398417720237390575245644478199679518925204866277572888628631177116076462334416610212562587882303074512421541248195188395421923830666484476542168550308064545139881323108813326290180612268052028380124614776533134466661865073295309673329608528058996233176287766940776928113275481937889376265264174343542643395441314617167907787213269759139496469156934869477179234464182858127305015255851093230871609094302296325948743661912887918425453175149675896463752343784597802352447689223109894228715470494605189862510441134763420806102958765344431402792621034726369997021491430035182935884883395597131642075354766377558553731128105819254854700747784952712248684671490897101224508943509324251512997777369987939528550804158849232259922963512330782874694474515112777220870153878554794715056556963796320102929685817215575883485923754115991266730728168042789522477143856614391014406084391525430180426167287554576802037974717010133835030757614781833814911710327381355246755346254939203853850306435385950821927963608365115226644646813195849593330504126576661364079745869823825272590952773949413007950531138420466430230741048745971246389009776477145380703500402238632688329852706727337785324226203978759864929073459523434988563241707892969311022283543813286158906593234324814325845859004227997607887338961853903415561976588962799489710116727915898007363668929653753723650206460465900638542419554418337865365784602097356869046119551370356124985909231831607698857550389414726016740239104505079708930162516563523452882054513128092824501902620793661111943480913750559178841226231983456075868340963209846457959349016862087892714931206332050833745738296087031692275992346243223290878215250408698569032234197056634782229941908162833275512302503025980634748899019049640766453312889798070012565191098740412347180548377051097290545690648829838201735849893338350319123784314128427089774708151008202504957776183553198064875935819616051517497670457319003067518856664549098014624702488156016531958931019593955787238897942857141537369462457007543968150579683333381128558851726957558601799585674596424628131818530296547656744105349989583384018485763717221690614943379266268597860950072329250004467885491505800374202329657033213811698657125515632497299661928679699050484946411745119185942967664000775275654625896999950156195250657880223746728940290120421331237710211803301443225742038708738198655868231784307742002576986755872462848322219118904001074030762558022484328274860626261562324755254137823881603162883628675892976267475254222259851019694142265342721378867747796417003490585363275729519098673216959999142514469936012963120328299592433034329602910800846170872333975525520219940596358102509183947998179435467668510017790674494825439422035278315160817718926143389941803562860752443709163762775384791754976279217222565472256529999695978645745026449229120514982560324913537319421798698704964553518101379672632994257332401971419608221209149449063797116163156357437602941759261574066762952645858346392674756685168252405004973634575513357891419171989467566516428863762583147114123929125611193904598093913381383469747398597062207419869361706855930380414093972974264532345500311793490626855105179344528977384810180435814999435045639770302505481839698170178182215121655521432802178403016473808254290255277324631961893677979494317549082820534032193760927228243324756577561414153751112711035847543324979398066193233924922180014590398364401442121747215282202106053727746024352193879468907477648587046537307546311046104430543405769638776141144578464247232799490111985801631362464663334245270201571348104477482368632918100707441701171390112169002783400321574181643885822182682245284078117737107790159776344682296890837839835765830673499965496091579751119697816356075037955551018859042623878472553408424327023094450821201495260474459712658013786100529529098414202749997094467340702629713762242520122086296264589075782280156936255469204527668626746258949437144466186326091345898706928548159203326483854804848833241840026577399662483535272098388968507951711436309026077674338976409709074892532276775205341320239056066148986953316558650555003648460516877493769235937031518190144915527420806731154246415709282484677658210514300853393455462676652590532865546675098975168277671950410766285910273574118169806371004556235280038736781597598923796940395153885993056135603782817436742603881990128552708348171500818701707074745320524091142137331302764216199181107517785304903113376951962996304465686714501237071161799142128248955199860169294427948434737376393419680227263483539896835421651014056163142109375819047803056743956026429118593389446128158261244613473593317843806284613612444809370716372708258756017602014154121821790213414660579296989630613131937029230520704761598041801089162619518306727582482396339133249302946871149901906259934614987181411459980441539811620808641700087257899079170591095931019541034636738032033904502931405907118222386540944671117382321763684102948129728966484604817449601327684798285348821749900535854043145392133830746446970594827694439424672050407181129925973851617393757838280418645694122558175867245685038156393384399626843742824557692358584165880763886245229862088349175964145787730389604590824391558885486894253603438403968916430316928768240572922709001187385879985310551425049114507871900107812884170022951955076696478524423513305487080901572123658959766239160366755520748108435234529409414390653948954846488838004037531877416134072618019393847324353853144641596705272211340929388960434935375000506933634816017525233755232076470418898222432728650222935208573575587133428997574747050983563616305143445405796952379768649847919737109326833990835850344951858586730102824523579505401795276823495476371330428767147056012200010242153352877685235908199639783051430665296055620477209655071561782942830618246032851739547805692676425968288136125252941873081799742753853444879206426666431975556932627797342350536562572167857285692129890150910853004175493274633470074460663898894863541433896861971520441999026229849233637742581371536257961762897393512984383971245671577311819199834320156797066052051180248725844258420092826463195292051024913981678224347527349141050516511963179192294603258561783249034511922556162740630591646307739462403076220944625485516193176726231801365922658565690448542900643466296505983205499962075276114908866837017389019633776909572666717848596840564318098372703625699223228947513604119617785313222770686073057672521344291025997325313781548546443533067463071156198548171596754599283961838328255135050420336279473517734370056499223250357600008894699719008662195248796967287483292805588436064904291338655880018605053258197245448313371316639480078281315578390994391039187568638562686369464096113141949110912921027721711603722892883306481109512726978155117367249694546840054243538106786984102474147033762668227061138042297203742221102845575497076419049891419554163230501970071350947727905596563595961671160849944015375268233756423818159591052044973098574127751748828288947843359840853484507107355308340890654260859692554722000592451305672690269792981773405458137746592211344471177259624947108040070343743911102599759001058739107303307221364982102426737906292950055243650152223648757751360236245896688015883151147841686450976626430961628316032278062276470759701032671960134230501411787477442541218512837246727221981418119136519460601680268436317907263064925563483757173986525502438130398695322162499141861364516432533184264818789156363888985375087377810980199661029038115931137041085186879165180986236709264429033203341543846230697076777963840831887841975755072157972755452617672400164276981397357169303868360179722697672176743689055855982085407666309370463899523074733452204855158518816030396057089480581445031582746094863353422545482151176791004982040878042607392665682119952120460503410113928966348921204823694542451298546435718901534308272507308487814810502112546733019107108231939621436720697237549301240347216285305206792635873960848178049806045038894511329943755916205928245831467252569945400528776797355989820044240200604624872995428119305627875544814817646266350933876536332564356388135182162959505904988568232391650520369335465218836599641216817269059561137737950842418041915274867534537105646311626525855369523111020058384633526820168229798670177200805235382014170267108379308361957199676044555305532901616088335364733290199210610263829566014102884323603393349139649897662312381642320269921784305929798270012636753920435362375560927185031580777523113705226674762662974122275586883681327847833482403590305599695754680058879994666615454178904643448572008808946895447672283405207880907226000640928890829037105146973460026234728904450825470568751425474878158118443370340715948623890168821543383627933918351779509329569388166806272321268179650342581686580713200647566926724268762258500554388047083108249217707952597428358092642320398816486859705065215161117132923064367955679648049760559613855202657653547492351559531408523290875490842600103239325584695322022239431021763153059310042956810950813992201516787980291821259450673209242952400302634961187743859629170120731955181201603448124293544654118753432611728757501724101388848533409998781071833611927700323100400718527436410216455316507824233894199498570279428581379029116384850474744800912951328248803587298157964960659761228291188441714468995185178225167805025710368520075594359876912666855754074931318905532818982249246653423646558913334776279420559104476334620688142022728160732922698669988546464751096926247736486555320276315885545535708867690834462658227204891380433390870408892342343959100798029475577498340894863360829931724402503298028660768651917905633365666363974229342705691639486745856462168395874019652463664486342662786743270159336562201929967682192344714970296129027886741315949155658248215384652511259236194312810186467281068192259066799930556349270381297963025992313333076559571855916931876040432886742549500212130032892641695547653925072978827155440657364955870479425842803375752904382605875326507184409779564479800092703402944484774794882329657097307827206718142026182152844448410423320188906365194665314875007010707918094216256756152430968927006259684241043552867597820564147735083385616766280955053921006485330764748377964808826566795838527228594585470898132073296371111280690357791736125564067287207764222547410441249724461091053704562384213829848978211598274889079021666294007246745732501245982397704841564717925249006248669431073598369572811212409824165073612637765113550531480283524462635075249821377463504697191354822001883623242695911930002139543328584049997826718371374699454398427217206029466852390891979464482874922679443993310191099988705361433051504680645638849953642505483906040032830405015163298241626558627024160060698525520179616872915542807214830964047846724559986201039865865432007338702293662451539783123135361538648386359300251343478933269326852766691004201017794054477553151472315522477930540246500909348139729260652320116579680493713116707325864730238069540271475436463006713208786788948751036671402658588872670649318948896644323563423797886428444439475418803566989834031315416659463581854595121443682187910862790153241957536985342479615725844538028009303770668524551624598771718499542765238223296286353088805072220890111517910752925715110750469873300961106882549900385385579055859450809419215964683239049197344930472962959087910223257723201363548441206200575408377712547441508790606216875837919530808998635778532051031888724360700515284341822048654119611521848431233899185799424693544633147669215600701420054831585886011097208901803136028550547654074567712523209117776070368053597752617987980736333890982530668091662999115876441741048273371048327120734555397008155997498809641322143854974329278518975388565214666861169227168747755815001719892257189076376254835844497517151654323089793927082330575476583852076980983707526462304821127326361817687084149927114495781274052542979937084040121078759031605395104965121263280930710160562536129362206171194914920265302155103118549381466407895378928817853072571964179485928827134795131762545159802140760396157059882787517101005703791267013803904662072847827043762543875994188234743684915148463229338538800189541762934576180695021216583876005129056438664612448552973809737939394509924759687842728590548643355504970383262212175563071553753204425045301621074209971419543978097827773157614773356460687395820981453574555102864087719704579152695807132577242166191575097803588828758315007999003481367638754972235705581146041116058120200788086648428095753959429071939501978754531725598886788985150063730322113725365911265571295778775029649918456609733055056134619491779509052962115200005931150825065538589957104525501002821925447209466241608934936640924466280058185110440429848975291564241532448527179795865781678785259298580820104959455876608778094159980617789749727325629107613093475982365636690191525754294535508888218988129384894322443211459036455751041321121768794800491822711506261554318105257358662489905167626392402189986499705657422924001377434572760685133007548366995906025592504206684937630279912697308973490410216071177455006246833174200666935144210950398248547516455982284797308591665528238846030610255809681219919636381627204695088652231006483039948052158151103537306305833368070478142220992640355562837588674462264190564219244271172548185104336233031487922106416880490324816167987275723225063245337677569331471424248699570015659460637481550953731516828329360626634243963845644422843548346949690531252238666937562957739998701839198832448045984394940129147051105729068036581234197805119559436889369324374197805134200950810795845264752609275534327468862391076585131234239574832314121192241737645461878628995864213671487385762550964786178860972597583819769268548556686086637783271598138489150811214232071842138063284068700297932144719146781262232732297678005922345094298544076669909448067643483799954992955788862929635057020117007639095358085840244733460255029530999358825020236816569431218410052927025423942987074053430925528824769707265369908845775776756403250032793248829236144635064256781092260026605786237934757261729010998522222099339356918936201072973880247038651360100829988177148665998370260661966347292280923235051998435461583146980970972094953528941426921745583358025937132081887319608352748525846396290749229203635664234487039321842820182230269837233138623833352546107774082854789922525561497140641492959163547246144191842103239402945776489451542579090767942108233792424843015557674868738865491749191325261919433039667567499067480275239540533499341793113950268964467541818328766102604383887711833320218662722239334992036174564629919769692965144048482166615998279072992158155618248746065105552284343015079097207169021651091833556058728530008674822110325361654426836664926423782917428915653081364728094583281964191774756036202156313509133933757849153525655964496806245883215747819268037122776519042218016698106443249350699487677568611947338406473512905916357730226514755263496170460621401529770706224414417167319153225686915696800412418467353195861063000297775174851028387106178432841808724159621166993658618405637154703969579526381378725745379455795472658615514701644568036261913386171197469949425492622401824457854901777388671343030160843179855588872621126582096706199513418724817356025322359038828402101107273850243366432179552704879415608741755342392263924385173450871294995800902216718094789520089240605745957170771368685942136461899453106429832821930883246083571445946673246426942716600776230349803103463034165885292933424396419068104427525104009139837536041296187411695668381988234090511122033877128810212662900360649299655301258117835823345990940423020763952581927833027551236952695592235159734002025236817612421905098483487924650066451789953898531688919603059120245458694147140833198941035635858683382785605787308246760894685754539926764291305530199532296006476781857108119522816842785825620283240414678072692506828431921201748534400672208888024408856875253120072656073080825029433929135142232979347218923519370321985191655869668899495066827956391774081943144143315236404244585112153625610837668793172068409631813451957106481523271183034244634711157809204971067135637170808932187923745636793849396541544607860986412400261484600284081210118434093462956176265917444535396114570423374348814497486917778378257913909768317458890327270050747996010914328435829992460303432343016089400418075067140585016988325249593385261076905571233547516509093199442278301209391257445545131721077880490963011595185504178473320578834123601860782095063314385731334116713175855030596789328866989772445370288284995689370740431358494680367914889849052855209783697607659716514461393014915601888485256322614322496940458350212623528954960914100489264494822670983927721481219420315001376505298505028559797058446733554339759298023687909990881511771612965551609314795319292278821871957647101171323825347496435376330323839278009496484956231921221607775030373434355105657668305422755166012176439764293513918960960056521718715343320591875577120145301218950292464927763772296507162178030396598281618547294213339402920464949137272592007449606309376134766268675199001589152174070536225786076808914680170566243210718859414697783209308028512894749874890853212281372633337776689233532169546729898571119935837099026957950942758036758442779299942784358485921160504974689491625108157315184858210873780214737410085033544443281599010603120078798174601781816506694043384924347161595043168989509774605024632240765330383673441089675558805436079472047451347854708188126633246611430262067253437809146410927451886590052142151912520449921871318098407600722910666726928183311884868877485916712455558654532796164301880734300299176785885521775103443632883613636758218111682769749865239141362109976550702931281789300943721178462336307997957600933728482606474578118279276124350689804093027315549313080466020330533448125369880164750467868220696335842133812682257953452075544440875582304725158923406110095582543989645275810122419895006521067322701323333827553723211695057902608394446094944772520530920779979535474078351795373067317929811606428392263440910478367653848277453148069180272375642230380876187512683814995048235032902841974275508058485787824002904691735466633953399991370234735948450707304597495196798844062910211891661144927212525316145354760531837948731596851480658807057497550339394550438958994075506909753916102864775032354628789512734795071150324358841326312265661329430057463711581637257102950823744074180521124123267086110517200917303418758264090491946942877056184626314132887532365634953543079743889013318645929831773461347895907943542947902399356826644176145530326797906888317591659182308843890233539145618927263972854123864393617199985216437412567516475785877981002089510262847446315478778907027537784301632695159998375426249933973885703111613663405230457099741032648692833798022643065035234225463267496991473985273672967995088865462322780262039863168239605250412910155015013146980622742650169814297074766973987860362468970829365214551597979103738797342216260650692612064700742243937861557580766680305038852054745867517186397259581015503799801555714153765588141152014384946637199798398372509947203639457467001709341512271347249903482217783211525720255645660344895474054292775335081887284764130840377385943276423106210099381946520612245532304026740025948519283445688881750398973453700343308417121933380932659837446245375586740090752943125442694688657864050153736762062815948296945822613077759577713269333444196470625450911577234980365401172655669349602538678471622001685571854832935670852574072579646152199832863139255904178626534359407734902158192276794386016030828156396002657627847360850339637499476660220755594752664565765101198197100861376852347203690424488677254700787448245944933539968036339205652018988077558650323994853987574812451497425632329972051295104241602096893132614020163736841360729006654819862884989238554703880280217466459705080474753177682680960466868366782385023699238282632303044770965418852040226785869344593346807557908823419021246616590393760035404343274854491173033499109843883110718032195124649592382987705483070650937883516558033623149404004711250305902870539686002422323905717531268420285208025095782080750498084821796419232841508705777624199719306052266376774183355679179575365298025254238201418039436508535340023797281244106589787253500573241067486221966484743205128937945160901641356550027088734495996021211211986767432669691824178566500805522108609125679993102336055215040623286104342077754697196317780072360212957495388067389231283763879842370541549246134392227187410782034652805314340639465350988622368127595833133941275669356077515842078926396828993478478563836753358140984663350733800345865180059395989122019414642291065013180019719210144528815756447925529892197526702346112832877335623120836322224410142155348337379690505298566461007672809963398510340136399669570963466747062058370050093741548443106557169260066230441911884463056965661094206713566894623361306866240881025823160522647050887351864163111565425905825182652225074554906739416907039725311541399294986339151024384791234107883735363957574076559279881243621573888134928702098078083157443968205675664791051986483431504877234950658667464565832529381617943986280307627605053308352348303859222655983827688170677242379343801026660761599672379904575949330036544859660555985892489775500554874297808137641461656934210354524946653650995170634791947232439577083726702312543588724957637874508789925363034098960580247145431526579278106645260425477719886393664693014916829330091896211289220371493539170513262159047072275443799254504620094024761919925334900770881905336275074314129417553766794680510690347608732474239369127815534623678912815478176665401259168095728520722666935380466705212400229321004484118087051097833542439819554669446512594927375569442771600058336654206522047221202309267306282459740449096833387649835865934134975985173098564679570146300584866784745187059493322604382839056737763864659596438439473748453593917911047309112706657838352776047666094540842166297840889810824271027347831551365556202071824804870358700673874192564714670692297932043351225877646897876930240660510910124038757696773445420315753853305041093250767850289665871815265398573600290577858685043466681325354391376543668810582895919751506038367448181922116620078167848714174947529847198476196876920615674890863098110824629960487171874797534249413734777085073822066072923384324139153667808286082511920796786965889015768096055540794508767419613387983497472277798410074897156195260798069232800922692374977308320541726243360028058597263293224980481017678036604639765708339041058667958415899919942989521166211704381502456095650626161143585135515275993567384853241513014781569183473724679353205010704389663004100446647913838338586373754203259145593671974546776438338820027868731434708248531668647961573656221810518671751987195062314317708776502870176478928312222247688737101292067800188620723781365552375598808023035579097863265373043727347039625395406056929260780493683516326088121110416381080229620526610415470616585936046709392795278728805900484420483156374839827545353553665394518134466349982001098180199961472089913820925877148215197130397797216253574042773874070209485711481482483901696514871652530363227948375399639890734953480589508744976528232762701659172429540157431253859359667627448885121635667998732721303173969641649134734049361395180004326698698172548820924423627838520286123442535873740134074104243989602318469309261683926758622007368233895524018426523149494926586728324889327640023367170404919135058853064307935803354511314657314885136742511917093644464612236350782326485927722020566007930878564676181132016462586505168646811337361516751391745385621516787511493044541721572269203583047667985121065151864534353084301130617443934182689052427212258309328590578195737142893590561212129738877981738671757307235644563506866602262470198775896489653557561680631259681558587374426059771947578169475520802224347796655657885780257033638833934451733858255984181291354344591494042709127254485784507554686467931829330427601662908329818396697210480899448366646951867413577938243128166964641907001268345271112055375213197118018302079246478552069699613723688221355649519899237939492017645039267014769161503820119471480352091030258807746864261207971284489738653587129819637642436852926310257667255422364075472459183820567329259783922076967968346410753566485960583413219066231986673919937330811585332078249469466390919807788987336491055844602344523046439894048495350803562581877961909471561610780692850654736533509653025777337142170257418326399164495826629436097397781255357221791698107709924949599057744623380865217271216245296572347580536851926781240436992910925845330607823074499157066600344850403089562683138096666885096925522312866817689983924412099735910301665057069713075859690351507936627683824413701552441245692599906427498056087259015438453286356594323358770624502097262202713241470668320941722140909771840895906037722412617684081450360498077021084555214445975465835763897050182162529414919812633092733652382157400586835266612004275342205788027988161693622707427944800205266947612935017105359294214322400333378039175755955060117952465464745271698224953923931054706949525271753369055347413496367212291942954380147358911015622401090464136077161437826136925459011296566667964325342635606667768269657718032249622388483921852456687210440243133070491436145054994374911469602199224820767262754394848374781213040941031635323244789679834516915684046309955554625916882704798793634757373700122066617006994627563311943561083090390034849637051128934776129322645878293819592477186643319459645634603624629030145864108120712527546075671204967853421577050888059028078893181011949617332909742683403300404091380333618210120023801476583767723553990767492316860650646840900454493001472997254720862480432073162226806385584910622444210199164904255706801100514770425565412832566366700260809551615597860086014833328124602950845439640679873333820689381133377672580801701390944495189068325273273380489669147305812254598069137913289179695100093784245947102154138806706066909704868798380744747588357450745002712226158343125942894069715742863340814143246755581942552752996672034367473286508242995401164122859550799394285530046129044116259187057668049493470835816760855893209533312722363689914150515803453874250724014035296304259004400618551836247528671716318642579250718599052269131997861822534275136534600912991528136489455274641688934004908168792622576273168747014517521527723228726956562593624602769881166980252616871540502558139425492908439119178807984102821967169631312119125343961199129179966320064213748231501008289484450694519519661081660067419322830606563963446982275250651261320880305893025555622117850908928085944028746276726178302039161021217185366318404868593759830589519735769993708765947770113202352403033100943452620818439955643222696631166547274755998930857257914338419481299837542307216518206429298222681796022941906998985041357333901506600228631058065228307847309585216340045885002146537624554996910846455466310434305430808967723164044581625496721983309022562872703118923467678350417721233797224835907129326334991356673163836864653902528725311871669222075650521388228416131188163131473422940792177325570705041395742839563568803593125563503808158610165102515746041186744698790215246012665944239683673287159974628828714134818095616894471130091619386998448507002947947462877244345965421160114928171066162870271618095352709023764736804475446613537244602683130168980130790516828149670001439188707942504211805979235656181227663882077026101306330966429968674381122477092450857637163375402606321540716191818529651912327549313489152523322937215485455487819794643101635935187805290650202707148376915527832504120415176320873343647386918447386410161229016860527577191645127719507733882371006476786649079017786777892993429420006858253743388785304374230222290739309195398331777644201583497153442440155173730205963859473630274061424605845448231582097983910788608464978495681023195669048119327923846229710598712980858684239274645042044176301602097429709695798579005762416651803359250133612276292712145991264877686921969210455871503247654889701538661633863922800165891270237220955627191096682581822728240575190920967657930669394791310668188949462184504834906443968827321207904135995888969949715202906301191344059883096635095139059158631618902995941146834148372709773337086642502025084340983912812990571279927177137767469327248927313293035867961197591742105948040480392466996816106082004460559631380801577463404508329005595755682445809967021598545192573782828874685938734810519915447725261173302257032394375591571075657623362112508583160360089906015889643488315489841789579963358153809984035969181741762929926586539074188339528431746477985596811261700095316277149363197404859644840481281827857198178918343002916343287034943308696544814602392836700427116151925657109019718848423297165735325951749373606407998361095137773811173235087984374707326697490072527795902480012490026215569934278373652039507763388642315370993857692251260612922264565378030254364378935975357789193821860240656329404168185555694063047344043954050634868266392911548923512612754840532783965885526539321716403383368850790217490253691978368480451244167405941677145112817094073906287542075207413321952676190242427820418706636489291589574841671719608110183929894303803523947615101353578504567013402445946719460352422307402263655192121396832748524274608326723983517125691928693484719556315117260927681187792996214449748408807330929207979636871893667097682877240303281782645568515348552204956311371816586916677935237948789641158505810583466614101020865569092611571414840062417955328853189139167677844704758627696207586709778745308227258434119992561720634235892495918290296560711126108950551494510618519013004346798641355891562313744230553152677694114897919003091358124987364829400976728782367517782172336594485459083045530285578320207076115676098203538814725536337418107857411928734743163218906969566509981990215135385246570009770101736321910497554980806187700119281197156872357769593613185763850554166031754829234652615233634591755739633043692647020925172398498476806040402303582985820184562435488059095452007602398214936974876932857629855728306937035638994168905272679445227769251246219128525084147695627730079910685126697542746553351044063600845559666096330086290748712809584023989489023480430992731929132167732733596469599060232495796539973424495905699714346621573230258542228554977767684492836793345276779808997909351542547952797990926253769927000685814912919485705801792544710138738126181364482142734101105512612610324962545050467585227378282738167754528244866208484213399540612324541955549176570899602224700556060010428777079905095538182447366065015168629093365048641202260074918493313710379079900149608264650936491625149036636585027366773451557807022045176049865744154884926806428160776503231288338675029981524278096877214108297014171877273666309255510795352366974956252770844267945826157794937830736731302625199956718400691712259178169255824293323265113185252624487882230844306152772842154978615624708482369347651265807525001734428467207284009629594189956983037399724330977610904770456828621242401473469084800551668821356252365002743243120860097552105846779530887400496825705762109373138105724423452249349099737794686395818614020221685068686729382335689065624149734660679483588830289578882342839417602842812790910103299213390153297716317167921907515946881038138106462761926741189040874124224955496081590852990424883351410616363481385059594751795076195141521775863287283862384143010637289127453847214726280265096070643815958834876965069905941914931362459457119684223280473382879337291412465875162538995713030159410979085138140934469105260066576919114174578790361588807341322572738579081711905645703684228362409388126350145838072386547102226854318751815921294718798041945963150827610884326053773375993238407007547299207285034971440609859644136269537046555872050148740158444136988433903102719968865033816300619673228837115243244943054324378015612644280871049875643042093823948517097595647529752616090596607910713371823300262811488814755483041043353672822561731603428125260750434189222706010426028650692202403666104675754342451417007212919868047222821415911603782098465629335148243984026466687666410174092864574657696858896303092120329117176501518907827169203608974203458267245391244779203946348023143673347474467990806085183140434808974367965013973828036406283647589183234131994185130724778711207900512181579297144787378979663065727414907859410830174415383627632656087452288722022738132335272579112852414378378468658787852218170758935696366505590107607633990403824360737081513135824894985215166174654681851905400035096160682911147725558440566817306144566830538232565663947383362725986656495187621878775126225419905484123660610124373267181143713654331442088188571135305004069283867339906395157516470801141754215198622997832450001591398056823169821698126700822397567871764597611524609857904001281655532306629994031026551281944921651774285481423616156655715989596167766600510407569330484761566067076277143723033092164843923151829835970750888682389856563410828154586139325336517061777819547586733979537091206299965612090818719828683055939363200884206466527225560066518902779411487077509996173974256204627527957209502069558607297828114144677050396098772621844326220307721747096752516964927019189905775470772901828368751686698597906981269803859455139976698700157126060752666398391019007154881858559637336151082407432636814772502075746894870130104005069055462012737278155511788700888663522869036328803217342725993436083818773768093328415391030644974858192121038212217051995647265278029226421052635707499800911828998301444568822090465576569751137180704182904996920061358990613385467449924131884195993538666003271868470612058708452953660981214430541160825576744757508270594541712855266352104815553753186685922300553403547503526151718148571810070621691438468827705332457936497986505734680808502072682973154591262545007887396842397288007147065648897756120500335641348536568870188892046099816651488451096083379019698234801635491679907177051457493210590642599964545558171902937944733428674772358429370448631753981600130498239567550402332283986220930141585033983962662318131341546062065996419740461981227505400172696582319608587896206660434773292904298594177178662461407583815987289152444851612878171851355876483485995073030879548909245970444355470414311566041239514990385097859836605464242440682161573720951037224533872061430775999986810431530894541543714335583674719846180483772608683805563942810273569499781609982777372666156381546308826958033399744338634425307935024002961012526902405454923379602264493792223254583030411515522308561147142457038703769187052137705539336956118227704420706759764302410204989382327172361455485755708700713877513067802363639710578774937573552250333670161437580289545695612526847613016801923614081727552115690994595399131591047417470022511234459247454867925383305911701826969670552565569240383282910364086655121071310141328764774829938887893838367721446636023239317129880025222053914524513449817367095243107570851608110013029392985859196511683865182219254233341052754996455891852814814848017719710395715534369346411624322271232294685327239089116998353823403205204490323285910348389663116640233043939308610200885526775821858149670193082877161602138129646411396729358285464663664918771277311260007352918397091191565851769174109153957638995828840055654911529654491359577319274977403589715045525610660865688177869432568812843972486982644326146317045613369350648478506253533144679907409517594390315310546191603719106765716065237432926379650797939919237770373508033814351608316246777662203168128849784611746353533179512915193924787990456466203080265532498505235457197376179432653774288261902728636365438453065932945857354363945817709997806941664019856365067607460752941054380983256664020539213844860345920580843554544518843666509032617420344228487946076373209971887706061032092192357968967007071793258631045937309106087474642526822563494753003719699680863815698285226651853671538213978370650773316874048024614553292615690974603577226004419026725407675992904154568883935767473071658453274705169192624412677070376729688693038840548877315078732338622086401167794358356060065650778115546340564937647910904814560129786308327039205547968311165492610631478492157600572738130201009774592256705453264319962469035136982029569390658882949221781395385273101183068575395140610406747280321847992939915260138028216679412728346785660053526137380677123918119990914837509878878550160046866122234249428150878131872343890339761324406818658879769953528144970272168857681584560333310329659391127371748119691361708696163085583223719662073375937127473009180364804370723362876468254824441874948857315012632505535357091930658904305034327540338056025490271340551209664793178002612367989820816232224778283053970675849709321439416380099500297000136087233769548444656238241280077183096066183136037364495392217971323228843403873234042179886954461310532101084623463966828240495620322965681126553148003140270201447960856825826861822806823432621644301599301321052111157796734718807456223831594015624881734418685004174479967198633870172919836821852731433002145993455899627369129548164162801123948815145384424562907084173467344994670478623225128697109191983079551305719459788943102098204019504384423000077329754932988665370559103797940005622811605436802644134540679687746513036481544573074946197653745237608185101430763062986335705873184484785601629097929723280364305262841554978996297613252511882377803781430829731286719826872794878937234352365873479227491816560618049787697528146908537057065819057109260567947660410690932199900665272956903907395784934347909075688102878897729400971141002875087128093768575394264146065292240021990705840022150699372815465089185441676805848816503804818365083754049731986632161186760787798285667498335880751047216170799523124635604188110141277227881794343737082504563506823476731946272516714333901621744783618352373567776837778248759300018889611986565688997927873163113658972886361653159097883632960824136250695312524093658816271778597093486804724490783009991569704404496763863037386257524092948730032506116723221781829283805111482828377055930703681450701254912092603813608983498623362202951469057342820933325660598649750556997530548891402483942651545440591867384524820504383693910980338389481317207306450080373821531674371875759455503196934633850084724707054500714696492215082485137410176442305517310353155823098197315819151195302167455946787751590110932761322105765912941675958037438895089832340275537291371477592022322582634252845035396594122122759965295762435272083818159035863684103846990583233096152780318414133049291445296012328796633260584923396681875733242653202927935404455450090588073553817828409293445177742507653152725790208633287781135898131805316955278778366081261863412198852676638443476191656541180132127602888118678025130503703340104632091939159609792435513037962089013972171840067390605744612731912695933582624687042375681419121326379256346767352990021595547464187679222580126735914929762391018417419677989458438773171550123472505168939473093530437684566176388312720025754662370550431355545152600868453964986766597703298209623432286824508135625592923149178417528781662561376807100788493258743402672039299970594235385124625460118292661775494835671769714498992390686231382181076146834858862740460640966876363250015446417491061359844882178470333753592210957289255601594727234173338416743049652708840276347144118416270164563307257327435589269379569029323899847282284952828340555169532930692318050392388192243371873784880089228270788494941757501185291946513024782224752824424140141404729130255091042583820177952508454396993023437274836663173019873599937525462070958085787977583733741315594919547920542303656841972117244677515221027544475905253697743040282833593564236772605324476805784830968203982495545565448269984152066993470608853771463251401012995091632002926072428186869366739548145559677267177600850326528201901257345445950025034416098575188680909144938801406087315189639383085141527262750231403914195229751805358907432293866922187155722916537012136530455091050142765999025501987549314261821690658852778216313084148388765375670973703374335954331812871149617178063048276080654040766220908807717514916970617039533082281459941350387442463751807826135869396304662084159897286124516986165067560894424655685391151953903552752130498790979928515172153549885340923089982098819500751621537438026214735852859411199790783829675241856020019635875134964181384345221215636162662659655271170579220203208432442134948369857249288208332247302730917128283530910023063249307696741162366025445286679713481092247361224500374439575175515333690068417102597356328294514901929173235690857190187061919075185265637965370158132660705067043005414350216041918375525004983385033413514041114929368307139594832911349760391228935159914912929770867307873792056641625012871587835571101020929872952033912427124413449556731089704194783081278577632692151048460048708223640821638789301176682063576370495322321627449824162392895680473105498103507420629139701698834276055550474955777497816589800324006021206234828807566200654439436389177047499924374942589356369211024105908848062111592536114441303036084205279908918299528493060425580759873072514565155934619363107293768517368224865985118882709649749417832567875651566423993515484258277236610746263561635032469629842942705552896288170489236382350449195418819939722205617440738675343103979523891763673815868022900580818284289639284014554475317399131822076168680033723151539286578822264904425163305112073155821935588561062790938582591255454316556254648817232087058043642835457371196282662542326736520598421592571723193804309921284068488256864658469069169013876866499662221412558613718900181841994722350721996812631602170829399401568091804609312122956203851761053033634012414617190296269345019490220172650229975078802119354003784511426376146677964072006376309128369224388814231774431006946027136813890615125861347410073481582412408013884881291417323856702121950239239642606971757688585195362445358335320634815612789731121555477944512337464312662064092903090858187616314864732695619646681084248296859876934552136758065261130790831175706318529193103851949433949912615063801593831417900316405787955559999529386347348877627046099556403810276028126400298787700711363910423846384797306850814688861570710964199882254620207505651702398210146319373326538046910914503858913647476384318610932729325284878874108450368730165018895018693720102550953495640191808154920009855902313613988113809188163118183184921346407998817879238385806314569018885702037106622215826011278292086601944879985309849322077328232653405784589328566661956733065928534806942149637358124324418592270252433240682173063563652889969951559963879503842350470269182810626643293426442150097669013280291537320558438121529832992796843438483951137920016919213972135294137346443091321472732628704837911153001212945602371285235313581062483590774371961726437666941618915602426118713400857604678764927244914786835357957526722022089451459016754363619172370587508204479592146248499706073027232824730243922177281848269129822377520337087363981237495017824108311035440140493178539416318786941810453279317421979167470071431299065026788297103883349982227844185838771206183745157213631320984968561260249609994346714620529948380358975445051741489582159402944280005073039908833878688951941507863676043871695663794283665294080939371458467135580010922474817605918239535140982252312091199029318339459977181756677868552366119466534693172500661817158133083110452168023554119504385826041457302524141658408412647716904313132838808186987024657853410534488242885297989857180288236607954382001312775250403056978481853847581424444822552426068213227766969449792498842779666438053239162981707346113223343706184641712318963109468825836173596803450520554064229316685110346515284749812426651945276800301369035303615315280706904188406807589745345845082476352833848845791384004608484202208412142914049075540318074332590656246533855202900149793126719763235766163558366432188746788739530592187787891159873190567850351379263491604685234339175874940434478180368357088934871992142363371533059975134443239602954066020887746165763953950148532392576096816177753651331001337649520869023204363059805241838718340857144933216375470653300026602408090278518876734497334009815641781476122679583377872377328110333916681693934504424451016968267396597219504152048924400531641098787542950239374026932167261028964989489960706732837149520470802048400934033446921082606939966391181708548663294496478975154480558274689100357096552961928868979138576880139786334666966887853892233702341374106719291510025081653932538462426717390043302562405206026748005780226273385732057937795861262617591881058753406859214500609077121886702655840951357761058933619021381389834987335146386794798111788063513721773507903829394449562265568416304644850310260890798456769906204708788300548084004096614363030308679077826451692146792635688250468496008891237552650690436376445723086306803288677945843163099135907544318244002791836893781905574258760235461628275519712212060658069443499727060835213884588151532951329416103627842160357354481389835025912353905566540576927699487313496053986744934752286738068421916861341048982252634313154894803553150065252855144386384350125055743136118481502572716206273879468346192860005632197236936738754031694890563614979835549906141740528129647687689328749796366748309083168951025290962328646869074382807807429073494537550653521329449327737233927291585678284259406755127330993653368187966565985312509214188955575171388518424298313751807576941557857890470975202522443962947453205318364724469050705866661061457373474589612801897240591883896972538556725925083457807815167792160487249479980937982201007837982990263319849325086432464314390657696624949142349554082435917685934952238520624875431946485437437758680725256729075769822731574876938331237651256185551124246632767287479154175702689996413350971307387557432629599324643729714508584331295375784845407857577238719190981211584595336258897823127498882012267743617427488594473721885847758389236969149646443244399001385125141270881696634683828720433510860207078180399165677959825971771161188846016910374433112844701167421299869847355640001484339179424492488630891868127203621508914089426280780287651453245184148474192822938496221167037524402116921378655042985671068841574685679152168938008103662995481558193652859992568047251737918146541471432442807563029052440981651506869182005067421374280536307288754082442084994812311925050404169246553124577050955681362709188668507320800706922700909005813402527449591886025830361600315446758059643757671573407796217879638757445596955918650044035001240375102427146833060988637925556060984444067708946277248348421314625243892254744872671353885157067927754310656855882670149557036025326274140490311886542922873998463672234806427741326683171343985428561091273547088276483739056579000867918488996771108255978025723552649032599931460176733520415730381386588573957971625057410941487594155049859963341558641921830387178859674726826825085219845727262001974524233889679483860815533583034778317001453462525193550369982036938721660763215393184106457041478659689690638939922849637218688287513709574300254849456038039433552868140461453927754994464904953393074375433414414787503224175674224226740590033471499020410634766858083380962800813734162798628881088221840956586545883982666421008410913200914994687173700854079118564736292737331047789958661526194719530635802302487397199437710871849739952151759662449454051828664116124181424595460569044725731208763894067301931733975328523472604974085204116367304813246112742812233820095942884029287607809240435611722036410136440575716904059065043564060110001647832433402570401503954081293739106909202414006608441640129196665996952740945460022469943600132860870650162769208012092827467469628399421298168882209970816012698294907500364707172165404165438994346001125543084929820343962260133610321744261934821947244063185792335684534021862203896389318758777292162953068230067813502866084583063241890927955664402177749219828109758066992767616767366897376030166440037148301830798707158671256917584890722838586194214278858412126325218713104465427336615892825579544752090619757608957410942735340676917506888773740705483081726335166062824724611587096719206201431526455078689018238221774710665422976054200820588143887030625895979316009939210688222074519953573333028626042154406965069624721413915683830541883206707332377123468267190805573093369522770264186868267796654691939252364304429654759107285795094418936970258381289245968976717015534512517552611781726158019421590269406428229508002012818639172119698208206559644266481170980694846994481743756886754317907306113516852493567134387211956710318893726588138321301296476985809327595968342736416074346311934994740560872771265639532367794443516529490033963859380032987012467141354940972589352702474337721536082103536848024360903321113669191570871224647327984365067988747502183492268206681218314407211998008211822990490146472592544453600580876718621386639215678097844646494435555282381847646416635454472597343829805194153529409842343507004873187771132075572418702459727147382126720927808340605939805006457876040369672125587755739248891429179800019380741575544229829962883007529868833766168510638261029043479112782514402901797765812549165351023607164682130803783188364096518621464619592003108727745644803088691887566618728149884861767130337685399773758085325991305342905270731481601791514887853330274572033093812467463455990720262747216292098137435711630141591616306291286059691926790344207315720988982354570297686858456984059056708118114809796452569994013549698947361119268145171398165417956713779131325895778755402606525406768410205502540484986007901338139457698633166980727199797263823497171189377135502933108782787569111497473694891746242263042828781817635356281453213524717750001775743904334292962424575227009218458497134754358155034851800541979921780086915336446489783225152957859566483501880198002053693498789753236214787963612367183028104803177258661754652776437176182191226116281978872296155669372238930712346372076799116387052408267353865150257100959122461364419101924327768406753932862904531333064039694648246026056775604637465951883829997808851117584434821044679976904672780616851478658633986715561130431110823419831031793002739053986022146517390495676766099623501576430121897115200910565448142138073268477514584433940526068198139452245019569056486958258629716362984741325482247274468415555617160279723997830677358799461798111222591620474061892784160564449121123280713498627947191560029010616684000809166122653185904514644614611133160814647808114634560200233626160313283537138741421244728011671553891575487529241556153010477657660900260899912834955732222553188087411425075537344349677795273232617425034101470743149808503239405307404861160282706545600924813011757596351395141801109642675940365851013636761612096429035256391560514104088902991826011522040324234528287974892846761889703143155773083199147728623523224182775295985204301685927227640483174827859419170210273795694672357026754452460412687974031157885817350854683841433803629190812200037404336064256655002182764710671917130212470899411869437129922737883894278000650780095095129150085352562970325444083239646872614939478295112322748064569267566263663912731786707074624163456216858141920129367051761968809109101396983840983998298132499330586443664228103238985740316890058589081776409735445495228807818628088881990287493540290031399714978801056990370448479909772319570027714590979780271146863072750460279205632567823054062532430145588173923348334093335117586612562094934371927710956371235716002755511655719722359773741597744724444491012332400197186707418658749125381524757532445433531998098326216300199020712234804901309918989039956154507477175841157902975519472039386567178340819653790207754389671613868940947404250565252443739038889581270520099147846932413403048392130764227284378404868346732618368785519481353331856719816768909632942859919813894797579756501244559708107292300155672925725892813712762689738107707108169458391170892123126208914037440943067513591285392932433625164735700248137596398689106611297108446606617516641019984928350815210150508087909502494466138433387226932525945918588151548163734519256827569447726719162685732737570619856169667705162424589196369540596524730353119880741108684190267835458192052954820761457232528431129000357496920399051415074644792291309800295287108888122326457388566274824772170729581535773159595831035450905740004712919951407681229040767568833430349236676985101524917855663671408459123851196817886060691800697480282433159044094789094971158618441150502665887503753963859192051803587007382111982959681187473497888351991667302026740393737186821097978264743298752015592389221172785800251140822442881880384710970720698434979576111538699849545896087318455762901598731063815206550125737248234954279851838579945777927998773966029176399893353986838075247884987947908095955447450931376642183329107724553434936696183434442749216156045287619283955497938517915992307438411650584359383293211775824113425881335228579076931533902082214154370092582802964151066725162625574304261861117268668490261424009603608820354497435845445053783768804910790562207168822466302749680974417982181566188172171197284425138520573591303617879240715800440873633018338650301965401840815506945899776756240433299791014885977037285555659409302675857718989180792431686583851533579715210317936949335285067756779346675035610959054207058892265514736806522420162439683745140391887625057661971365898439181771470200935633152134837216562342353520346630512625886486251823550045610098162959459486450693844629416039374965341892147793202360335335523723386816205664934044063077739227094236029059476242947975011538731850128754629086227971602647893524204979358255423059273168569663767116175037859272292989733828316731439059364281420131328580547473075943963546902954822261546321300858416856847706116640341894963351043355717415885726358525559591751612248809291244454335537343081247037156814743276210450122288120072530963350757177541983324119640955486950022257076641601858440795863772817976436316101091058042445989120570687808114846629189903775417791664615949105084106980355098561916656708308551554328338639050090069448787942408846801523371601530253952050216811741914818456786072085432735690223093057372518598687418795896427273110083648668747870123779325482882546417413377318412154665238424795068859799537676487435036310356270209018173232325952383823257281526924371903733272769196076828858448116371589332154105130786145774515091742292599774930953494953874854350078742603765672644495639075061572931029036708606159058595039685996239187016354277855614021557075021683112966318619967866151548629245039118693679735458368968914979880432941715504493062792074615208395300381402802276205993163796683520180979491825583641028976082009185145201417886851424485576380801412206167203904178317235867040137616942512616677069150441447226497335311866287219265197089454678977439374515845833747824868581137257076516613197288608834118502202337833760204013859515324889725774648614701399622402388107462264763075062085729955225695016590454163694542857769196437799142008119225473404176869113671389878602220601002745395759348626523860961196001984611476503421336643326650860002719128349128604833545037654532366071230005233756255815220909180509008463226212182024067742290793830720694280471398120997666775423355866703532959103125178168727078287738683459134268335526497471486849258976864908445055917223982547561315628036793926443430573147364937448310652979915179182911214089068382967669433283450894798219528179362696588102101256209904810729316931535160548532449451067430669592083274567574025595178595663723813241478449835771706685772058541183553815196225659137312896345427776242454175059587772769868444808368649904467128741607097033534394618711255412366651954012825740983706968669344801944772769709983167784743188859162209401997851811378833172268106351944715799551926875788212440043045658463590251100580607862458019005429786875678211763751874152400131518828049519240443651379197429370520498304041413297997583623473825268767474516928030523880472276185219653431716929457724498781913326140582964222996763479062723554301705255425353578615976042716138499931285002812684445177497252798922871698717514749760184784217444877454195149517501353169362096195012276330985413798315389353034496656495758472053374182088669036701896721717478538211739658007530726208473995915520855638018008241137370595494965112546255903417542140824897598147411093072307115389511133602125763686587592488531718734341462948962304001973360117769916685698220524359014957763910949798309628142323619615449690285553106398513464513128024888105491824233062437567833078492321119792052279192130532942807872219994112413370056914106625964395481958585880783606711625226964810548499240307332673109600754235391639102978185541163063456978426808983911986160208777158413915012333681380675169743320627902091803744504859636573083274775686318483317637369701705681551534610757437847213729090724016044860868968810499461052301730059080239270945791505229528031300613165662876263555790312439372470659659341889271823938443707146736729169291965945954267262870033705999015210527727740019890758887530423334533195441050399817803217977732445761728584010852743979765376275638767992620087580452600441147744815288839988462951062985420935420888941022756101894745843755585584735790677224174551066328420705658081523958792316503286493828658313427114910163020735561441461048354795526668299221081322571013976430555509649269559471732956464019049745261333372865876083647956283170884858474307891797983995346587576873348128764155820251529465232788885927835575245648130181672135207995012624262777549106598525032630558755413508416095874904418824595116256357371792833194252405310070688375351492295616515003534876842756171777149558016709998196023021014647239781745874983282865204971250736873262681001134187208006818342682724904595762295543405617891494897516761555324106505798322894399997963899813392886037792710575098570274765357159704418765175212282195896445104572531649473602980392073616714656065144947152648855384148217073850474638356405785170978413852717571671070898517397759549107614167674763966701859015240449852755858769539004331989897547341282773596035114275896543606844402711675191768213192772220747290583219074182393891972935861278927823480995256823322895238892328504405787033162961180249170794066498272934351097168201509491982288967265405861344154355494989637232748915355933628638825594346325375219320650198661741912790958789296568097099160899824366925320685418830982722105377671440758575971770384905034150914990199438742912886635356679939042938856198678235937147348080697374042047600220946662135027918758535405427578255459134335633819533941034556073817538459549399270833091272258465995365585732225419569898927453034251951764129463364424278551685628822580667180077030781259254627692216764954461036513122200555627198257345868558316210421010285342359363893079018450903954144551748230176541064520725829378957118368466738515541673856952298476664436726233756721353047330027457073846084485220742835082015716280669070360363914366590023043932339128752885899465772622689086686082478835436643414962427252275811500540714250138485642310098563435472421814799212902090795090603428008246421822394240372969079920028320049099523711655568000009349765952511339982874627885442860866025708785651071229437582978165677967882332178557121646513407502011783738943167325134578828805127163592175702797924624079190690217084484346335677948681925935866425409929929917132110478241346786224417603966268886207181114345213784762598709201555494531711772542255214395987931520855405325881588411132291625423105046300759970540665428431232533386640620558791037970243781192621368912983250408198208759133550479829311084292802772508182065235605692824815576250535133113824602937414158320113997870594994811836274773282895983965791722928564026930330866615719703715500782377904489646106933448700775364732922828403506604350665310482201017635432019774451517578449799031623760508809474144980004489574880563183325913209197140892446642050215780625647379074253615036684956964425880511267009186788179018631779699962414333725310477609439236089175163050325545170360857923047502947504895757315540170002830531946583039273832856021544591722551701674280488496664478938157706135457398457803205861998967465177733927001638439467983567616046333458947590440502806024825626945059836424275725967333639485701509457608076814369041062201060155515656248531134930853765591484485841259625004164086467693259274776575159186980924159978582866794999629942027509657068048928714695076169702304027225701940921720027943671008437406325881830316028164285102818526563098780810385372561979769861233765251420955361057051452147593416061666257449553443122761698059707901589189583530670439944870640258180267837626764663619218809254832127203628026188422651517808823757309064411531877970987122434073682428791439106238687245072215092119472349451922282387044739150064385721523824083800131109845630690270844596935616154258722778071755678344264491133105103117114467558482776023999046090943082185793084603730058671407874542887790356963350759477860301348435587312000181910678657136876167465146707675517535281075972971538083072501265001489071494521267547667933113819205415011922256415768423987185385454911883178357906934765422256202213776063072763085739348166364103529171543685074274879352851265853747936997787138192804933363113770905084357280411980339147978077344146937760470671235875032324182515122554383702037191135707167626848437804598928297942370052942269002960181072550706655873354277611426050448284108028016692898353117400237140731241176874018695306787075069643223074540319795416873352769006668735405484926856065306795756311587315627405841009868297138504534512538171587385592705728179670560987402323315749989062394903857855287767269960807191131116123870406023725389096611567005938998397264301842951598199128688318323635995933882338633065686884290606906881478587600096890852780732186414634427422056824398927779953109892807890363375567070031138796381500091810938198136942828941552720097377810010012783993259259115930638811301125512553205179048975733242407073519545815287292618007806574189243063763806372888917674675252547597949092781719277574147960508307214347233732472369043068595702317870644713581247932391009891185284158275064574839991769506652331045472113921756066003186946622022722149895757292750914312544578296446525245155149271409555498859599601229625583805041356945518734751742269556570106415382916076852798943136335928475272239519748486218167299033194991349206062699825770333838364074968176034264300916450649695751364703793805380887801829015225420647682121623348008587904398021334067605395429305213377571020407507372085477057187342580876250552364076321116817999421039201655286535613713914412377484117583465735043903650482159422906309804064325848099875652299548977107323332328949100186596259175612732548235740203443707027689924446166842197896748773957713951810702157075253811624195097211217843960775283475885675254789609241679464465354022715869512529532709117522340769668979017094169682815941426640186414174540280766348034436682808961891984083027003575373881410583725245868599931110063237928615942417175971063472062002483675340829840619519736788627226492465496619158594675999994129166373688711940626265058135660021200935693771465404143596473923788232163669864468665504967288202765299240283510035130285002183142215887893586789352818835717062915171404971377895012976124273731341488079390892437381654040061132913767494703841336330062232400417419843681885018290112884148669470303328488921142018006834819938080626058844532485326493929212994811593511971911117912495004680101905382055117408763752826110062734956419976723355463096018585670527476546627571015380340322464261808440724101920165774290289808492535315801749232288426602051618518071926355797854745667659147489424663258006252089404355429007129556160513781839986876231511442875407628301240893150431064881020480905401395796580114535582483230632811448886547045305161705643121871216594400354831225551124482134399176660536656497657003060147892110219112843510550068917645162967557903780736790414630651290750353483443201523832355240248007214095267922280348392161567316313154505449267541199453128790262944933257323219138983175666692050595287542314927761474279036254662637160435292369236418443434513858658471649471793618634399576990973086845578563266872985001951645319711632214362460104102910635174801879052850221761627620565514266668861833176407649374295353136759962645158756018235627725340076988246948031462861594813637712047595215095212426335506420805171159470322060846990720948767719143142252510959320460338150763670123486008966881251961059585697811484549413553264856520050392345308025541664090652719432794015210743467388232487934186037626950298248194766295502579120603559114092449439685766888368837013388857940125680828980935002891515221900825505989855949157858268306903289656677111941213959232355129884062198176030068297815682178882018226448820080489604302305167392308931310782129142336847715215922482318543709802320328913050490154087841171912385046587915525794018252012233913964586218876558329538744546493994618492053261559823381196042145529100289928421012433058915121428869358387364546671636780791441294885711571804820084608571313734976212201706642112274138660283465376453188575393025504006162502997380397059537388805652596037521259843361509453584539963342164697111022683452842362847331989227967625686129885627403763661849996958972103536275224317232682536670053967617139073384688442101084427286547910795843720466353145008680161344054648853503334730449578721022775167687406093004026259804414940821224732852707976259251587314908234073782399937312943503660839048619400643453366966424543966714802007159096340085982068178126381843939759141774707248142137157477793431178937907831216660782296702351337387405635585186247879390536403645305854038827242244886323191128846141272978083572626122149820731499960317901393886020345237567189567413474663478705627464409719484554371241052073731531418725197790122804505486355185803474821009255930554778815238636252960644543724895015031159897412044787026457219783881738880268498570054851075452516134110378369098711300811387393540758963262762144727052953070175542733918296239604910056109179180399744115132795708169999529110081751848752237337706804647707581246730616267889613916357155682000320489294735911747605876196642581772562962470872994663526394092889078227867103716745380554425974170742244350950507652901030777957554415311133894572079746602288054297216433895026098870870374615000410355885158646891565473169635468561981595724047899395255121716099246942201939080829247841394973127769580939871059876435485863803514196609844305296897821528393329760125655305090536445906357114185326991418698840927613323312740933427890994199421030455000263208454679328814844150011652255587887079443008698912364102043912865238210985164832459161670874697043344133602339447060066043764187426520513601650296270723540425414415323778046515757046422427704940920519831712645229983675570753640725797576312288307480774144975158043933001974242250764604616248882882063378962284602937043721919559536334162186448530151428492578757114429509350049603968484831142111045855497384748108900914697874675322284343790674613349788519510407294804088226630548360319694943305759891475729660228014334747780475332105523635682528471315626639010987737638858778203364246281052053008719307334217486819656481067255197116380623289094201690503003826603602356235354540683395248858519484394583625670586772430570455761380292690985984838980659552545771846804767836661911250112702711993675351160743608001186306725587116949449758746651475742477346539123482893823686107945926595521702690235584129512369589185935592114939660149333476080760180277711365405161952440656521189525123137916737756055886530837112730100202695218380349448179344140853880976494212436694214353717386655750551793453636163409005574025755765327118959599175582611908577338630270583723677894663100679559803441591017372247522860788811502277651983722363957717421204879491546176504953186861743664958848134049365486828414521284124057691697574847101382238011215219987799000644428769187516875899413336902961627809594570013062095150837491355555744081516751741939046293522094012345429100911885769213418109608075837268089214609679174614171717157050286576004492434173046277514378639848267491771071011941199965872437697429639519793036459456087993413016534824980873668778049890640719814157519384489172446623140808178793972174224738694062033335400451997165944993514679377345534155669224666670686509424408296851536825065967434781167247152821368774543480553185345679623278658663932497351365234611143564845319263388612409072926098810491682943115094692188334046152213259863812783365426538745625519405299222568815734485466984495810421016251835400273285412393711021239736311436192582804053647224300296941538260643474223703402167528514355989022495835031680050365021191713714204988059430807879299508378959292536652419381810704102647303142887186882192826276723104030000463033787947423895202746389970450529435870780442004213131321388282841204182293625469514669279503221487005417808594085238157245344608989296521722043681184873855798053456977706677128502642191234371966719478696755117265099664579518755897736471348320039366600258996393566658416706493574179229213082214928388196591618874739964066250668669804895325504724331245631881340723826275247702226339769017271845149069752933305369582477934923219329886312511125892378950682123582955665495109329940833434268244852732716813370055161621640910103722770992570963994931546406530734199813446220513051193388570999183634272422867864030988973628699576149842845651712102955257954298448960042146441075662991465362226208797691348464015864405530616506474697424957815978330367475057125293462276391907137988255802667132874804203799363930356361076127084267110402983491685824127836047199829420269101206195983306065586056163786270827161487076743301045637790698996866389438518029734337986973247588797332727962561001455363194390957243696447553912982205692152228174562623045427793785246453555171955471052856680864547277529919443812438215196797554428578416828033972936761311368076934324651548127869847229415569300925434414436267626281129817745024098094443545939261522049517203582542195353106988892683944425117754419129923713911248904311596525990708797656888470697798561892635462940602707676507608599425725465878349869066822348501650383184231962598582967679248537426764326175276517531304061253150599326572694046543072773279540386174917226870100144180962906986735766189529258137325640661453292166568580768201082817929858295970612260488491674741181630396208203713772631901134884304521440426051445765704016552022277537385053071684057011371774256184978885769472671569592753872260613660741433174469482757353309558703856676820381962480024825355482372376584403406392100644590235443925294544491704001334353608241960112707298584412081578481596550186612812918678913469165953469906187693864565680768570800405537617639348930967066987988780840161005297442373150497486695963602189400036452881863059454337529044458577723990891689017010062232882505658168000982969495612438521499730832061085427744149662863578966071183354366788252561103015887228194993617737951651059225637190609799211439414073539947211406209456799359073542827858266695403453684524172212396377730929652568675617695908741777515811183197607549256043065894931275592044122615416113455365879604003828968258263992067707771651488250730164542675527257435753032979960576607433101921931707377879195340085236585278111050768472945529141049887202632492520217483851820593734641725790054492569450290892049715532934385268348961263597215396483107609472078799992971674741054903413558121002700140490550871500054762597287960527516481955200704312058515725249251425932036551621219930396069081083515305036475871153105961406349270532288548469003822398406910576060903179371224391472110795666699355072668734898252642907936827618129899034294459070192688878798336770373721812972235184275926227847612123311809266894297765926934491523970191889976396069816265659494313454816612561721629087774166266050353490023901855939530715047348571046714871123905380029419742581491299587384796937423530712959100173240317819565739972621708810823022781540229271255727669186494852378622127431118495118492325714583448169716542269448482621182677892361287037437986034399165555987677477832421992745427958479974053609715017002051434269126963914654963261659409045590214747487723218222339945112352880088619867225255834034529752756436394174404961364495816297221037817141908377469720926791383106017795530695170032999435851401593717862254048406955444080467019476837648431981242036731865304808537420939307012282705576423679525595456515663446756677523983968993897608762702440844610032380865008646871784787892890459592914778939477274713413078163424982427240934070915369337126534063433212311564575003421299133178490046213209856490804767588070602637249090035626376066182313245143680169198007445930789080236232005770356571204842082133701261334814867069900925363918188400880413494895725483655259799910723305790623952473346133329169356704722915960767221003487070143647362384847903788344903222685250173304438782748435241363591643929731760804915281015124700581294069179396378951667559651627264809443180368743298512581853687962831347764763405608987191079226232704374354326097836743712449044604909155965454213538658378445246668944888133795748916801870326720550435651615706069889172803317912987688821935732905394552058563296567191146372862202931546672157021042266344028787148634573864724114485289458126720419235249913444103531430125390056361865161690263232153127251222412011013842890914905041632607255533373674863015132584662208956930578705350182308381133990622231061921544045875967109471307114871803781711988564779420788345556023434443036572149062452782454965290825029073621849570151703714588779603343545679949129259841912184435700047190418007242787455963646525197767640394301301280754488813543727070200170942578657917765995562504135379809282042798653645166107520524613925929405267385338349852973083960791376583295229326522696508157522650047965462775998366658453764952882516875534627828280153457399869278625493883950036718279869079701123889782781208122519524893962775307266114077557376804103866345796290423755075558534534555038073212658751395714300707892909525397851529093749849065279669477044096048843018515966639624724942971796506095799065942975403351098178259649526842795716112756844940506170768870008067567278509122892152377321783140351263840071247468946650549508617741514561691667309769010830536301181889160376243514821350467169495116389959090019737815013210233027317670350719465991209753176705124501517063519980198460375043699862557516794778011146233034861899482538039465191243001892054246610827717302346432218465982007524422707983298171695073662718971026014513532793313999785263142767313647611411757701857589409698403320269308258462495528977726870682202504767394731226462872895801466116666755920950052728714310522938585831095185997151868623849232299178241690018480908408679853420242123889629549997095460297426523389019725847125830637810905192782083011651673638834834222162531598218021389403356793862334818046997509253902870255585630706681253544422801152847994664160618211992094959212457869817131493666712225260361773909255056129360556572512982999158634947826279630698696779222683613335142615257301427446879266198972883452601707274695686238254359175727228835166370921821495871903628035235831862908710249268375462032853271514848240596407008650910884486415092773175120846757339779323856098251161836476605872858951244758280604538600446232853172083511859171260738825737620618365543942760493368947614556638775921775358278694570789591860730521460465878147452342525365890466328595607044484297205252320673861030244372706239517188179337775105030862957594947204418303659536103424555796660488213518296995721774235446824193397308495529166058036848710267118238614726933406017684052561418559078933724086986354792092551808572613386522596148233310884084485907045369272757209767752573903415623853812201950936766874308623934128074052667679570848713076650434695587362241914559971808613037013140893335931065686780445477966946625174313450286339823951707581487174489413802224369447206562714504409377981786110905794709720193690297589091289439034091934828766193818022991049801658851471228919454134583450907614436199709097119680684150047145242421242980200199657503106994272252691494747075111578321285430456605560375694030891150538048991191814435042337249569835509288067623864474124695862716477441807796285562793338479358076595572045398862637709420233224729972105284769845240028703920239667794851608065069748651960885705173511773469031513259879295367417354823728657129346999442151671849367886340036182918965731021211673411150461360631234678642266376742673343352205163595787352942712186647392486314619308470109163872607137096848652977353392209612289662731584203423245350858381378800304723746488778676427981921882667108541583946816692122852931677000029304192849143159231190690669580561866881034743858696495154782970779752846635148762800678774227344910300116624289971862795655959196378043460427859508177671938852095128921124382997163666821067046128289682461775724319713077221193484849047480465555252590503614265196326408745246957084384835018080193461258202128591690581806113667732706777746651372922567430184212078678278628010213697661276522565114798474060334502769536428527083455745773801807624605816004409017660907894365290154947592955788715590837095551800955162694454414126486157267023643009272445061833263220224187620778503794042042883516717411681357294787846268222886739143944634412495378849833775182144275366649821396662347587172773302089598201945402692807457926728279634130593107344830472255017580091511983730601732398820577287282999298695313554004692868682440215869173608511449533446719160356625064647430760339760814439022510050816098469448765432238695343396775329283979449977360617936534876728578066808798684981290375592853206177695339064882981815934498828129837570868482943840898893650756206139204735010478397386615463148983599550799997117199042978913631510625448531987163710389465655782106083533450684139916282809648909110552285226504924894738820737007237248414215256220714028743909064270007868663848989774446528956910877229996292278005864461038134158063195804895824149112008536584646931745701768650611632812825984470866458254752566172170493963141742729797617281348259377316747003723313309149552345781372147226897638036707490607873461448270418222825306063522343982857466906644411950305299409808513502454410016552831058591127640480383376080032693724611252150806822933081376451057587881160452537016069797860349039240672667573959606369195036169506277718611045026681007684347651395135767256590370553463724445308550675591791568794772705905069079730406252289550308369361153453778256737655622780344696613104208071465990576128682160498965593457324618255805267084236564391734853548376615415257297670601850469550421281458141344261921132795254107344710645361454965208613154134890898274269207580107397048688440923477780152007477276335138735827994573842562560982415768659735086038456430710840733924837830947973148411696086231682620524558916643389335957188956997980589244444802001220233297879881131482871119223561108476610987899990366640865490554699667196492768749851446914428940037656377754614876126832336506287545393012739881567983187686692058148336067068352676273701321688178941756913532909453165929243498721820216194034012725412527365079174808734780973952693681835523721340010168789281009746555829478326807434678466099249767223142792347454282637592011415288669201227033561600125954275723103254115541139856371368948740601962101848728487580361392025924317525284409196105808769865552532776609068589720903881500726396395289291793108665365321003519087268086356290597183478589015796427454499650347898167349419057634643585248974751286757673753506870370260936396411597588912350426070134111235215128487123990530861189171307443787097286679227257401997328876579435870862702972349474905908337055047786110335635433606622582273917497599938008854797044297790615339690141392355336832247387756265223742193398297807201686736396675132813087259848936848920573246548136789667819859824919144331271214148269157140591318195144741797577674727161818918124729793619385371708592843813553088428432400779074706084085702570826525563500307779173582295472219027289080530494018156950171856393137341181638809613886829189130953266768968729433126799732958867264193115079172603277601436443197751719190317374453665287666965765229230813560248510319512598117027958484423377949467864883018091528382255386555182278937370127727584813862209579518299853279957552094147377280396689761240760130649616983288113132624332709150754891968406632948212558011745745154658994169989664292827927445761863755494945534880612267548928292356705637016639942447304020411091060522344264685974397256583929540869541253223749115365377806649626370949842559145450455831697422929330896490322196614297478346437205577136919296941460264552946298202949183567362625006319127330625126410516012493684675040939501928182558791821512827557485087304150680325466156212133290295910138956917482240573392510546902816561703327167815071949952464954347592563452191374389669314006303284687031916194065197818555335387675373851995942321754388018935226052379352308231409945712310552513409966579279150810255076450800544833161971052779287997770899704443757632040406039601435438702356803961812132276670556147885954916090342656443672585437962502362674177850025923601046242604862323560318970115251767730122028164869896243078403765263872707531971762871770333590459889240794557197499539744329324763472254504309179247203316070482198015551762818083141771293573048072306737935390224370031728620986282339555363372389150257013466041931684973260808033778236482986548496606478434448572421781410139961301499538335248304205382818267434852706987398475972977098158377546187135574167391017254591776284932419747250272883131499597840379419678442140354121197571683198635702116109673473176141662698900266785882876026633132048067996015312813285261935326713799549393784345234094554196206404405102068890572863560199767217954190760573957724408221635223287529425456236683422319775002771466770589702459968469182973263858877682217418417059493796263141828293336608842345151957676181541089813004598272028037216085693370300503999822410514695504882126578047347352621564619404100648457852212532745136386865463553399303935921180238428768232874593355172913511927934361018863031551483672280444512979901960815204135735943556867427294762367380922314709583982938767346811230634228695405765492049180667938281621961800047849301764951954147610419289099930890719555239656550389843735890734853999262754613867661950900787959029389585911936464527653984583460498997279865489978709157444781159500274339783140605157971543899041955826992851739350288601618554112607815323344231922847057744240955925582992683956828495577948346265158512619681461755423939583024668478253494257921852892863209590882353241229074247007211390028900199122866948167968196375497091233872342604311640352887348258355257176989811418558756699592898820443337495764897996210552013205731029493006566071710264382452660902607806233171361872293299779903503769298419601548279062529217411601615240941252399538905099817812599701880813362775076611543001463890896404923102060631287650915514526733889182764831731112513534871076488638124652324906245766763278586305237756883379380522295173410055274152763414506952118388538243098059337243655575651203190820223381909161344027525510148142580117582297926752286972441210806823820217476970959442532553114667446484411629350163834925553640998774548555102473547303140392017619117731604685081127589361044113561550896635582918036807041563758305639550687436995148096423242106939836530459862947165482366915451840338957502322916121807189338477254669520728095125565065426494482163225205521539809153816341007389342198642104558950751242953237579397295534075781701142389234344730899072938467333451419632553825553893085857591868280791322358265892150120450600993278285308025350073313946764997173891749485180675745290522375296251146189509532653800157768877531801499183592480153194339200387125808056750985861239070488800977152033821018746033781641897049286626746438193344655188814638147998538801859280997277633287058476819548328902565229614901531185969687313046226482950451687755170487210998130817208255312838905057348825684229326076447101562591527751309809549407012602545096440129486883953803891917642782198198006741389235533545116846978863441055690105719083163606584724109606844372567054807770531382067593564941335395484765081870277944589970449435402938524116322676511221449047159276671212741440086032395689255932358159780326410151193958230651192150851943609063092703569581410744132254175976639566769630801931283592326069050869481774740289863611393350962979486799063024945202628163916893413266716192467801180817140156060773726364163956175702613169801987019336066081103470548645141563365171361862095595826051659878641637551855101279546432722239478107868474578876722008983904538270573436755020917994057333662665565655218943686562702959460853417362597213664497616152199767108203022325940568102293930521578667105461210839386335490059065646803089005603253217284100809064321049655695975363943984579785575347934731654690633466578090495081816710757318104501233664755987615751247175286356407228384486625526988179081366176591432568422539549830696324448528964575439750539756258550155231459295946927564783960726415278412411223848040381105868585204027166359736064036083815620248499428593322440692130814636758400176881593324983065205724921448201569698840234708413057385307236269397414661277038472118379732477063549243530749353142537585720553176069278462852143919181016085657029827118231685906422837413437592985987503540536963548645688950627392684526929292483071865614826822900246357784656077568392936283689416958252737864177895630651388152670784772438865896604337417657453239388976090535791732165235050629084601001022450721007889563586298541803386284686647398597482178638574438448102122284073826865973826127723707693496721634861311222596647719986520419346960842542297639582414319508626686175766572530091444157116429085094808869297611339118882963740640997183897587424985559521877615508011364981630405358156999189645629423673974932959750981292239066746166449028419627132452381288421500777782693217380313025353148580860836592072926423546360118389978862772269681385554843505169460636650363401896528104740922972874516225175480536432795790999042303239262441317366919924205575154628613022404108192592533702155576894351014163222450187476764718914203347280234138511334459699307939378846197209559580013119141491435613827589765510900775284528390883023273545442741880002387530261075691886211229522843878045248519190581868530538872436472807345507944987764354798374430657880247557337223078021275383873623149189768181427048941624518649755037302793265745586304590147571050928877412997985801329771514924970295620104225878177283390252867842182440654023338388094742884869890011785523667104030508942486740539509717220587485138165615609384802225156734962782930177075932266059919662817151004434329765521905626739838610188972740542877369425320666867117158346891025889896049385049917706181499166139023715158413920081689829384136484079100369971020274296474510005535554431258376501149393108174784996168347497668480057109155274205704894072551843429247893241612880075945462809478181075674379799921944884955820566612585343101603051944444234083482836933432327152087601190294545200892077394362406859742323657678551183950248044764251507465937992746219118506574178164237162499415361627378031019402998151330970741459153998830316877778661537768791000750597321342957768592145724522325626049997124545540805372961769934140632924944613231114087349809635419015973345068891755682123773060746415166321385643623631456218106733894010743441869646792108428633301493480447497401210799279809670415458066674053259873171635162339575343035248367423050987007696739781029518823315964318344379285944256537787190413818135080797281408086499270541357226399756888531303098308381583204869994804991483425319796860181452238510951393839134500015385039348043392524470026351274603992189326635544808098640738136356715123328705154570982189503216199115469391735791869922529175343437821330470412910845509695752302240708947990532937017277512940481654537912288530678547541219953816774423001240431979393135354825754718222757265679431005031663571576038708236824808063950919219696321200659750664774767958429210337942741901231645666455108367566446908106689847661913398586742013945401128111749725580462470374289628756548369311718102784123055960239171886667945282734614121499582595438905907692228950376307757273329705065961485438880200277464865741742450120628910123521641888494013573378071632739479645240654586832618318874042000056850189063826791451105220226672068219292342542140748927277193643561452345049129953336916685719667336238451564257906557197693338899937306439544599958684846216806966202224321494285440338490391446120341212095753209855113626991082622217622370994499491449609408576945412522381350011118076457837311330551843370600230782243314969700391401222342706237303444951679283930372894613164607889703787113854394948254946642551025708604981289791077745346046152081672884839666220229485380558511320475787242825618564791878502068358569910601597859118933481390247192160593400866574288118622261441285566602562845706348203328406193324429472999256658956843832900819283594187875296208085083219722648066769598407664089103670467552830792604244641500875984307587382970023210140756796487858081885196565473257256650403838071029982364051875228548608834549099837975324345435933717697195808681495094204851215002429722233569752529219582727839526878413650206550726258172048140576689988739289373910334363067637723103980446845209845365493575397903593451869174304106286291221615062913844295724479892312378889932708373091024015981126922665438441927901193439610410291372752891456509226357092909968590854599076993215160960673285785590214781523333366312211907591550109628817514431687581054103403903089835637212107541773265744578227662437791457988391289257917587270250025034808482252556703361450151241061918389412370727941540054349038783087824163313888220543711246210646855345774130979452718827154913222634861457834808322742863469584112439954639075241042481879133343452978535361879326100545537887108552586949880954645319853029782757151422883087421458095371774692869963578737860777317228102521112726314670833321381887320543418919301499942058770541574333407083338216074348705080062220848430798059029311182824474888647466941993563560760013602795922496415469704040221338731743414356752705904003054140660472649784468071886131673107234175021348830458225640753248083727986371214843192330674982306811611005204037289141185538863238272427593100614219204324610424579135629760477552295851569606925612991284629018663687275923394100229067267084989992250116134769344736059928292094885260005798537476788947147203759151604130427975731063283429318542944107803835064332238900880485257052419722091854386073908749724219465821279494997451020226311584211028686578653633992373570484224911036465834444560035360967993367693141504812979380607127384143404464271516639578555499498085354860836626153279119871290455344745156623302644407297970640077410512780703702818073552207562125658326981706796898635394410303664639928211402828316388636242792467004498813211522310603315520471737568071983214333489305032857188320813667721869665973468267491016017624946974233855569021259141688512498228898878976741809248878539676843348948400284441026434989305567574303740784687449308776771387947157259000891862508573824700940314487821635390287231277509153761684922131766101374513190185582177711955026242768913038639194561449519483824348310882032186560843430945455109612023336324070550682392591039152938433862417371732768962535856302248964507219081426290928500089997588555114763079778943321268111793628622176193986910844676974428736265504000939283184789635525246925129689028326194029560809721597084371119989800783496700281961695654478580243718673864528158343973257835879322743254005986154429241137468578927792045927544553342342407228429110071138226798597231788982497311036828467307558593054520512187747050331871146147380164527939616646800238315592704298740129148103460812233205402426782733264618531466856654635397256936681375199631936197609831696205222123001558678175986953151596059052019015983549398474433339448273287320738859535674463917383635822230220659045283596487806719162014981593603817073343656141729428238035226924316239689399795202595892201805142193653448384526931127778883176976272232457731959285141976969341613340497131122472717063888373139019160351643384115266479966711365731102571468537634123040556634093490402452155994900249117193030842524978238516057617573861737382111880299169423671768057872203227688130963985874091741632556677008408832397205836641963199865072159341041411020753117616919010634303595126350843300466652716891643327755533401292550349009969636687306974762870283227499939187313752295209080935550658409685358352920506238690542842920265763002850448294840182251573684381481272725470548076849773716260544304522151478397891462430188271205696655657285584347703461481668620096728547536749604819178907696355330761715476765421172575882959514215802700787095921709165115032277469880583706545466956913873537757105243954821667156495153205568436299102443837796385689256311029719488756539365241451181304692490395505226471777038264128831640754305829586796395608563569217197245912772855870702947470533435092122330106129509164171929803881645292416200183414519564355494651352961182902515172549487879397989837094107829105518648591526123554959490480198868669826460591374759639878169041351603917479522540951186309675783402100640984972657654926361077344074383495738599888370685447503723213610917706594487066329739889600990075209789693050923134673065331004128056969855257446890966287502464862917546378615472774043032694842134425876629917840515846470868686220721788235681691074489183793232458319703713290880870006055192526916694270064213855220650810088823991426209348621617138195840055960839736730168563296688817560050081039117177482759326995289002619736952779253586352182443843559333303795229169871695320901261446911005822614635601132564468834812819668080105923031416584307370264148063260082653700616558730212342536921708978317449835282683264355913463079355637149277031395981741339833760855794274202226262925014325438367181753197452147412083010181846723600176105307156733485381270863750806281357388849965805909033612973521247448254032131777331990491870962204751013474698158741316318267251576212256800313447723420222062394444354720255540357104778420612342963165938437556295335836390839700009692488281214871215200247829433199737177589385558929784770177722158306387360569246674462087475603623619328905358359852958538308518360103190127875633019365828475330904256125395116233968734134113935546585886453253472008465740749777508929415287970922408318981291701734083774876033529431708643509007460725059996193098729717437787725836324444065333200142863624170207921030599802359275129997396654959367957032412509092550261517600468459719484744009092536545335531635064540839170792682691749945126896417756018692184696469023400772633419525555400805765848295714509864471143491152266355094022697697205213677111641662835359607380795467121198532927949253435401137230084030760194169946647133007182078014958537362302316767543459510471028339630045799269851206744232231930429348009999263720532528393216023025583720012148295472377840950146969490047311637553773791708519091679283113018619905110420493522061459295147844049858535757580875827561513362891862970502344373902302838775058581381398407002084459517874967485076163206866691998600989265416787945094037534908000688052520624471322938472183678013376639763635675740864696994325342425934163711114073330313572910513763543581858313055083613219783596338446047707354864713589656365652841022429352677275077755138697833065351363201633843978350121713454183592482530715085237423817001275946601263083478818899442949682209242022816786046392634573304351870119212368496622013866125749223297858979396838497176508537045481680108666704105585744171807713700436023357419841139697996642305717308826529067447683372221310098192172571139958240619174388432019647166984656696855855369089288535536357619056034678131071218003113333289696672122967487289274943227740264350805919649551527836082472549908850689917302780728366436068908383713181195741130583147731899191087457194615500328565391988418173919098133067586228048966836206042087402119140846253835719626632523019833551726240899296119161440493495939073934613246963427798409535351841985057398872246273169160765747293082170082149200416813271565503479674825932158615083079414828894202186651361694055074926010292135686722581636742900359723043727715785074695587246305602606838522785305896606403407039442690965222126974296178281478972719121619254736222877859170415475077626939565621360380915243025409562606230012724582323948730073509780924924049432068091122436179207716452738653158622456378959813822937671041689224182276775008550132066502420318144001812105750147787793519763715273732381542005215032660876012156488207770433032336238997869434255996162671021804993511946421358714326318733744866041998194153824014032316977451766250855243008049593380146487171002252744522403191755011862377313895005155409263424301519992526761953839035684336380349050110242132441446928004972188726820205288690054272032545192089497006014086760512508371849155674307406707401349668325633443198976928937921899061994425194501454930647530170351066341705455369208619705368872531453018446371683377204090931089597324564077189257980076965194109511926723718490011829766057751748713232416801070308483411139134561006041317923036786899365661220345143612119397559863311661389885121908746119202672698407473173418665546945122533950047851891962939981447120267405103372269212591454831957078264297422546526497012776410125439096934449699929387754543793656966155890863278641254332029240670993102114052659259465881120892694749927183708263038745533624355097414046742877272321509032669591580391225427878874897899789477347065081216112600701908329028934517858613447863082388538131737456174549971865441238718073750381081247572085407029098649101436837583222741247881554050782591495710236595791784911922286571833509228967451271743247281363734942014710894111271007147067370241864530154792970074566884922911388893172440901587097399835582616214591569440876114638463218891997854651103867066533556273228823168694206002863022905979711631699582351027052810605409953144096903449437012367290076546979677709313961885077157414373655564939481018538793688687856220166464574162681542320101535141087562189857421332585669907359162901317570076363072670004115664391034196304551584925013370326408519793042265762145544393145361887893070111322646526371816816346224431544092302327365901227138529584269114893555287813255771107704113441709634215424593402109059851773116858774936678489246236368379757142694433165484430236432028105888784161060776832332824106326686241427493391467725247741722878955352280488924712354612408398854888529018291698673485010995093261427002795712044478926651532712131412517966187538561281169258857058122230402392924910950262581620235409768653322441898876020013623512049010183327012119885296781015888197361026055341221965016870381352611406423007635143824372457540164567448093192448618620418441489908580010805626356131109602396971166764068396687498524861460780144255315805333355350811128804032298267416127787116108902192777062110957367957012072555028827574921424782357995663474790417599107934745009916438321304294530441330048260611579291917642373234893432055867766477792423239464704606290731782803655591266691087771855629492349538813428401852198612287978402413197397767206830423741848834732735387548993609873499092192869572086220513688120825623003133748317492028329591508368172977650143922729139410033879414826711006825297730338184858673735879814976307065963352480068156478245296618082494403268470746621134841089248953646959561527651325258104443434404923119834154456836069733641084706164548158691751958497187251335182930237084187957651810853970657853280437226686004259745736552404469194663681110697139005842616788062010016679290818134712854728540523060372786505925212091152347495510064669270618341350051855268792130283790488584205139107684320412543962314849454426613753168391868522327632471572453845021487088849430819915197930597637130705242919635035124085298394166124378381421990430945402265609263955213258685917001518052201744242670115956612170592173845654829086159098061584105497409913365499388273999613922965148913425412858887737722997615277516166381878821441800085348183950533236554986879561007935910672962396374324504681279950092694419984564711117633385908718440183759495405157044329411916550093671536482992869932300527330951734574509895520217406830744616508960473463406732521716345565149020938244386478998176073125916577516852431011700086964524130417302144632217851007449242328206586983062144547408972824823125796936369499209156400392123057941681475733387316485874792222123953941141481753738393172540169834291068268603641729643664166265170307220591677656115591507382322878346167543699767427670134576877502022901487694793480357389417811466719946076778592465719277729589076782312802418669844523675864576685130834410485242444925100685665023910639520519815339760472476761532944730270840199108682098098131652248598228205152064945462773804117479520012900006466025569052707601424600270114962598945900726387872803662550938983857141992392202731839372125030079458568220602282681679114601298666683521349568798362561524648222143857399118849691564794809018027916758813361032389670527944641511691139131757514189909048367636792002647189143626936847582203394363198372634821803965271343792163531924007281798224456905526375996776012278676186146100694976549714405240376038850361595197153751947821076110702542245684772527411194373173186135075619534252569622749584809190901876506693104729506167778981650850064183368212634743875782997198939840445707122616545580456073268790319269877735530459542906638328422016359337634170421182582909793919904818248117166202798994557850970235672482292876461862873940678047112665644838508655355087017431294787538075110835604397339738370392836213478614596415221321248437340952537290505991578020945691120326562805355828071894851792377645977371341506464806445894692001429150368925419240084350969790329383994738229632248149529997396924819329788211188622258882966203549907375997708711422309177416773947070547185235115435394565375848359029354609374896132169975689715645758389439445961175625657178511221898432796301768231352390287944660015100459122850234716463592105904051642161828768186810283170410413283794653024272381551579711329243262542900101916132241905406911889591290472398275725862081752922880810500513261705415105302345847789164718166149716899215585762934240708876879457461041470059585107871289381952600748078468320963032805595699390883326535027800648437838721786325840966224316461328443545345512648710810821927726534462301021621690210200714734374305645915457505150417935132250936120684271570875878435628808060496601203283483103636041508643988344868588981813041682366364752463625306726793414759200921452571757666256411693283683163884432417985820629460960664846528943411810398534190172231798920440388430845984115408028006335988003968947825719571288359528070842972542164439725579921669348794212223793192916781266222666233812290099037581271428457259359461491214258763243918405281477886662117345803049109833368664000852439682677239365999123352111351520763685568195123515383536623609784099695934275155178335578643334820957360984931222946941742368419412552687091401626450538813078397254370856246233774288589349988003840996367897989756790476147568320077453233776793166431968813293534682045661836267078913767292350600485447736771482335480283037173695672103469152019040806401469942764906165726958309929319018312666459912224847089284208625915736638632331347470342000077181549070398074902137490242937789166710006660331587149357546025981041383924383374732582963271220668642208928930376566460837823859054929465156389091039064634636970061094451688798966823845298531366354716723595571075302790707820961900115236059611296333643999387434870314954579615880538677519050061299811421812147298017116378675434714918708690334062124723569544978336814107592281617669612402020888924343856169172434094127368098406256652005368027201494678917780594493917491029088021730828461956290101010154551527279353347272508086855717157086413653831324495078344729949155590651300367745840553043967342141686011723698339561054501322155164170408206678414899844856059301588996189678668311194286645127542295492108051765231408334295143007636989628513131513392731178883625017824905890766938327510997914130450472906376003403331626385457520695026996478196027854694192621547084389620713054371565416576362533335254015538409241220824226959106101941015470053559100916632915822737861146204810907981855751754975371438343914380390217596171755838928571958967550045119944284841455070673513635969575817946428569844066588121691766004786262967881845376346553389896952985621090702591044312155190471189569500012244124131177520487756667735840077356330866368879661669088228493463736885634803572110391503268866390785933802683031180838028833865916049712265585458694576148938141493919050813189000250088022158313662747802555170636879597223183862129951602855584497334261799694400260944558793080941368677487669170176233027098734142748508955667652126391198540659167855607968675539267518324563790975869876477963506518893996848327108961698062339308715755713616067040077274087304701878049226115156496842199741626038767208987407818424303902926100975717398810500355251003699613286919327245472377254498598195728574465669806649820438601838968377655155180954162937775928131025251368268049677538241137014326359209784047950716246120393299266980000498629116205232971636224394523706781784168525318827463582436228525472740738401595184424718428508998979777166661369543891782690642179652509821213538206466726061155862056821519630219881191309381477572038162887403613782634141289351873458529276365418063340026642869967296064837867611030978025548342266611280833600951777246591318620281680854819560678350640641271561003492874804473032931554945425477181005446641351802173880919022417501299334673123898720606831572795715886833400782730168568200398581791018661574309918001395173471191549403013688875719822790148275472189311792725160749965164616185463999492991618120437278016894767839704140934610669756403859057213771803664859698209450060610989289548519757291866822058397292880969703707186471618543926224566392939952663355315311865056395860131325729570442558823709721122637937701542229572884731926988168196123756331139695612360692196877144458494029471872754170074043199368804377345776916271383306634171809621218953992064183143626905345022374091477572896189122042653435224825501867551835082381250564721316343722255989603299317489715305509559933283173626353855980052687280716772071050059793511279920191271200297628853336916600885734800723439119854640830854961516866679781638697454911473194662402429527440312327468442483752713507848385491989237677240651020102684907184518410906528054949145332163393661885067161245456106367791183011963075462358646934444056021566368019891400903939936319890327776246840365752659820327892805566335896358537236067504945390494313226492258131707389079317930478036402801149571577253528653775550080075085617640951629874374770427818587287221306555685195275824646645660072244287653414188711613719259078580195505241147150712447021349641115316931584348742321667951910176548797048778693483086774036952273211915610660102475142863559686471443133677150763735061665964493236307593254283623143773894323653251844023346561427295959917848613465067992047019672986450576970747779901673848503106589584456678406923024400476990302864526150644997414147320369210139346565675615799509543905112060603204510813223880364202719072211099765334260691305715965316359076107720151421930088985625223989362501575067880467896519776182393606805902857259253000443363404189418275570894681775883650776471867002825259655198459116174447522355951665763184782714406492075419221973556025319843167245400533897797767525720690054675706385755482050631228256701543697339650480574959134797034003081682514592378736124997575133119562273434963950983431317562032884210057884388412023623774809552390168723436571657613685852559174807014090917215931570679347478578201017531793135788872636934276004336323219781471469391670537633776257831240100607627636957281235223080878953697583293588670347998714223902520260650566467857620451141877380563117886734494570686998036362477239988951985638108925071864808839213593264947432336214906329964169546702751918442232889954303342789769161256399619467526529733132622169383704463065176286557780240832608905055957276131084696485365163640759864380974647091303145463687499811439412208339122221108758714945086311675816552975410371408180713012321081454076912893375621122233932401026853636090607081815049149597785038611805032091430203191451345015736185580553160603650603795934098008947597926743311388734003260003998122237003776770332515855141582260262899042816624934612427598412697256332387616354354029253466644951986354495738403802372634711602057512639285861137527917278236667975518850496176441457192796407833079200774264109730105578441240518302471378432674083488966142550709696228791429100165571005485105198036003315159901362183439271003273644509815724689705693030666368453401383461079808494304517475463325536387129442079034836012408691465647931454293028325677764597189586332412290138817401419391776484664919730020013959119937635866044215727740514631595335930775699534543689124099907979241534381002599469585416717760942713878544720741573201032846129038259314208865673982529533935146725292629385282956125439971476653187791262909512167590957770852450770983953760297328263888157582982062601814405253605406611871498411519585601469238273862779190367771471404261624969386808813159043554889729562535121007924876595283094221269910780968822969698970838344606045108287139763738978620762789866984016292051236963984104877959662975731006291749918565871955428345730911095470921884897292931552353870973510920774828688123118173702683235601168937479943851694806686539617627248290670519715708738662317110978728396471931111335121854074857181796731345811173980712318265051977398127533690544680641469531300954164264670573703576427860558811466272109104932875926853869153367136197036536484877606762388582274332330906130926986040256323436810994889153130659392681127300427534820683564631595354992053138596535609589338117326173846609207500667162377438032316755758356307103042074758488407111685405995795679511670166471834839944450224099447969095702362858680330039605751059590346409776993466810324683713615665000833159212990540728330665027456279560265920325879044771115025951934031340195996826911825803536593504907570156193854562634058654108191778002201202770911265816392607833907455397429074744140904572018191012279913150318539481805760715015957829769554220452473831117244274135117768381328452551653887278574873190345758302247416779527466442352851882287698373162044775141800595960859559349456330864672332794473727010247219807655620203037205688079850743639423745416667165126970554966026430075979554730908860385148360596948083966522471409810850225983483150516547774254986380842708119815034991071418809014798720991456347358044415992161054785456775723800140027161681908552213805930443048902804380971076971078019067394267234729810359063954939820400202456341099013254260179257830812947568622402270381056420645968386955530641195552825978293500785487574595138471621388506126199654458487142763759142282914728923588645150396988593656961744607449289241847567998453900953914329535733824144832839605800808128302736279809920052537159754502337168583452819549280123787289098961931247541418739999904754037744224866449949654025640263232781701972092879102297653858843286079124570200927186579756380068322894784487552727597843335090940094078435874599342437886437696670316632945036016114275133886970187612395214455855576440346948859924118601758404220609349192941036518185875012637779767248300281623794769226584210478972337253095052576151567299820899245390607328254827383843674714280555533166921899807228071640063581028712557575701083575584407994402873469767779622394699396992094487946872738794497968559334773396996554797014123583926906680735106982803246034044558320832960092668083522680907703336909276389449428458778089764608441373452853064527648843416601908613123610514565976363936211576082395221218489795701110417200684680448627832039168157532882589279199976809957665992608950341265385831755004788254830011600379119924202378681358065840123559865466968671589811104746803762276370037341895450138972084371149780592805358997442822025799916519042786188778593418324516179549656773210595486246659525975887461816983967239064782218959457625555697530675188980854606833610966298396419106357769887899280593650044364581929508794812367308538963898878477551066220094233848714541998530557910357374739691710706221182235569926977286544600999745581322191235524909615509157449926015793271748230942715826772300732826034835304587294926729523890115429257219363995460767812907293135703002611557273468617596479796152205350676016196851713238148768557148511731200948307058465296379022708707042557465789694047176760383109718729788353788871434360059722439853048829669723996631507945592242021654105804372562353704742200912255292856126136708269443597035129808675481573562827973285857288198688683609405262775059168761651045783278033362719595822130058758919775585784759140105820288659470665281937826074774045127665965715624378989715541919010318447597745906624799644919645451334906527250968575464768541684511632471980360232631188413732519025697245166018780184177443314788097996694822552917553212955616411059745500624329419475391529054137998374071852159502954979229417753587980874072032883020186074149840637048304417630136588477560979407136827318978410104991864143193401640320964781403487268392728842747228343754825296029355189456053840372409632887416735461352959476485594645134619066422521935056940223259927023651367728115753148108024438651485394490586652508306639657778257478164569876956053905629129803591535147031327226167140861101095976122287940970453151845689570074935105034532753996807304695040660988410944979869482456093767001115194423997127513370518524939281236410412837078792432383418311979031308462555645116320002649592948007093110185811650156018282940642276878509999044929894498647755643761273207389094510130423144358515931453200742564446977757502466811196008058831051508608439467528641379349022762428187053241326232414599996839424480531456641848434540152441287151136883914228369552068029418557452150307560814636343190160130226192646315940927278414089992547659134705319434534728175539229779031132600003353248912096782913191775843464438809992547918204417092201017427229844194465760382709518332691691227501010909942167641285447034674580686482569789566408820808506661539138113509161585185112779736232794282746847705477757810472664129005382118032882308664250290705232246545748090542796787107542459142609131847905823346174450060644200113467260711997320837001093762661548936429397984401764583995731158646641978171247030157197034258110244959571249251497180514793692364030276316829340947647205449308074980016014905225110851416255974783684912795093147700116179863041547573521979009920164967841323414591180276546793220451969957659345922429869249611836562733077931741593262534894340654967709069686706637639933718928439302921023539542122601860613702008640715892124868928213320063956642088333443597072589301845546080061925225452980352086019276776945434777052776643333954144749307146058330235083534392190806611249083508226125194906324634075449562914941520979178785462129626587818674547704697150642509614135437570274907998327765738393595953505563761389243964718642025499728854296066293231434846577027270664615654186991831682598465537690716563638640730047638070930579123935799611486555696281094194405865674032214451570458913508077480939550703695523261000909644663592696183653878747932669324337194000586787809831834249621671352206667333701458713474495962179956901959810343368694171551092657292202286820353083975259266036539634786034548731970814780541530658698800921276051913225049589021430327725100632628709305392472498971292544835562796978298325905014035405840527814115089370605274779101856468923891126656705229587337492738784042474608407965739538458065480047799976826947687740993689172908704250489523774280142578028593853882581699380627353038396000527100666978667753577436247414616707528073189238777929328769727511537350631228274332812343454358229110581406801043326890700030641199800578093412440058971914896608392376284112265199301391464747759280163032591440466851622021397517855774333667943054442493316789564081997540861498216051652200539138093434589217062254394229562151660093501425159899790696546279316183172441364976633134647299823096075760855128587794836572219185301315365221850575175430020231879668188648538817523037634565024262996377492204851396128416858961821124451956067306083046981415742299470134939698582883113662340732100835362725660052048408630304492145109227920597295706199960065532362070829219522006728032547771678857717558319457162892983547872414340543474617520634406697361844563446194092441868887726013033265377529574238303358012114192937780363455402508481779226740871627119352306984563966768144453375789824811270962632907285052281652115040116202296591879901211944853368424168775201614476054691354371454233397497178131817604698873468058441219316016014658949686005393982752354396566380560788626341795828007498891306715922357167165545035276967486856211251201737972109450467766654726509113502298020716605995102294964454552622819474656077646385227599618085062551478263741514781814202968505224664248306493888202062315106971320714238669427662473156819697312655205433799663385000648811015167222171134285741354482073182222026728428363333494223733688471072679041634768544584809117502635224586316746875534502648242254723591587123913543628216195332501463563223340326912168982494626696946442109111923179598245225346628210304558090727990057799755414474254661925807455933200848455888511446405830974494999749158141708417726839663044747774245495467456518486301347672151776302734263206706701440993516794174736441181726398098451091507124142180261679996550525229668837882912610914865761504228056282786246872695720435042245142697808687469668208608158623873204295204902539529308565353045635955989582383431613326104173208293643212848769621057615313689280749638307721069069506889478566026173380990636223367608738327257979411938409339717305692607759073164331776005958728774783707178538382927120871233752603767623817103423897390235837974589419997268268467972547233828190963548489830824525456922595547857263755675959072998885141991087080646505926073919762108927171892015353590330531015514805978864818661478511208780739647332545028548863593817039493733870924442809289741095965280584234314926240831923832873836973375721104746040806462525062635820536815424065981784473092904043726969966970582974281682593024429889555190264908199346585847645118684078330053764104729492046109624460635326861674202075777198195943522060777609839755998277786203996197387676387073809173995616816748800046960271028100305142151050863922450638250651059068799357018616415649305330316490090654450116404661397826998888746151956383608946418677622705452207415805105175751421343422698581998277677116179356672902160225181074434272079678066565156235286651787750268693276912737304349916702524351491233814893677512741218924423167159389321517385982721713611321294966940688385647153008833281971041368397375074117037152208213844096364363633355584091066676042718750595271050413180761267432248115395966118976988759288301452036022855341027912821451305792527833164820760138273135721795406370966687433940938167648336267298416336328140477488061406833028536421660188664178866016666366621004531569385427228225088512666862363023908760634509421370837806147979349153164823546203376770132254997399217830229614925750894028299188320885961418813870528208973456947254705752352630916997364173690100439218993805307407528059161380048008549249810771764759461831471745894946733097413024765185929213048208288443506539322161893968070516233600797097463616325192267499821147672206863619606330427299186673702137055770846579944423804656910112904320680493964978595486123916344330720141779387220307176671034987820540804477147995774449077278234204267784505670512719106289155330163954883236992388658412212459011395767869856821564236912287968666626087137546932806590452930928136681511674640151811335007111868789440294766134012940331617778545493213797384050079645444181637983444015973858586610913407255658365658545469138245861698387259613855307765954829519302805097473915005125650926650505556565410715788253372723866249034161947924431773221394913642946817986635096119554063926424475345266468509162339090179256607148700631336706052234784279302184077623812355135519195569859882290452098497419982337947399725424698375144065259250152512459540159528315342658170553252581154429869148078167373502513166384012385323679588157629773471999203291194023391148672100802005795408876883621760942454714396192969012515074965374700523546988178761634800509062122988434171312325774439467036631048998105166698718019623002624582405614298658535389102344611488978854555313971707094987067534015273557857026371192324996577958442484622740329863180547847849971206878469114489132992421284942783956098395049938747846793942752156991275843308266863835986712057666564542411360373676841035507690220639433714637554754594809813440468404448426831497153991745527848973375058815446251081270797291653251234977249032442952524758389569545740980942074833757055617410487208887786934650903163070963675566803527848481783075550884672572616198971887432919536006013971894318398597607029943028316985319295663626864701203785160243036674195652435673593996595197508216294295983098630191389473195970209499417060006191631203003717344033128911348602592523359217287869830799521257769635703214646405647979268075582069245777493517819533082269914738619222163647377583266561255239970095152950259239934614660427788984989464292534398451659783673700013248782283745494902262250099987746765434002683571858513324806618995587090021075770791014723131613650199689276202706375921156611063810180142359706093394327748536990843603563109679865597678963637005300942021576699584778567246142704052809776266667184188075578918885229402120680175740318637351431267766173367022692661147531013803675983238998615888197935700117600904514778544674782639864825257062640169539844333407811694811155259399427247000935349119221966782474098768513768150620242570954135047884023228965903953133396736797834864117292916242532960633597617284557159592215886762443123657862619579678221056278571194095368325137711319866308424807391204345147102268378623826107376344350232448801386574591472073378174053343117385061816701062624109635467206195273345931132139250488197382839142525613447612619928779489754312476747171048114137778907624910766283857378440312719963798402645677256521305311441850070556871251565629081036618780380694108227115245231477416757094437880597817013432741583692252130612118378355561069735225394653369288753254083803959144507886581353111806606542022120288311885465234037340335245714223956728267718784520661696483659489206127669273658305504851875793562459734430802970018300764947348200581396991317641231660486440405985867008985595949223861344630509452908515732520324277433889571920681290839740781407610665556992252085582030073553592401149506162787922212442105124458942842486681122572026457805105834555190055888616293093178237103389376782297977089344483282650166229870705508260066287569217014605272098168412930983562881809141690418498480966430519831000749096245118937949557163091971658210850147284483513272096579796866820233506803404837469867787343664188597330112709997339868165383603122321040738860708111819502698285852065598658079524025395598707013052187436205348733651605769034688741156905575902129670645177217610594693428027844261279680197202441208411732981375184484734960616442463692047668317331298810615493880928147987885591868510869217125449827591215243883553898357504981849277548767019259655385941871084292852171625355576625325480407610280308467165691891299631152484099399071305262474619110341580492771438980624226465515009790048442368872804294797809608842061965238423366512267261235535434475233292835961040342872000809330990823988112281166161187469128087680451732285138111564784876667852251754510273959354100032391745715232037816984777278939496804190923549517426046220439928219510884290639413179789611062440410978985607478350708575476682395609201445025242814651326471611428582383103457115870910082484812468791197417295978877864861440883447906892800611597016378904090422294898568026161704299294382194139488956720151152685164739585403573430063437372041011900215327401197553574591066302496873890189749781897829540498686205807444193217049828846522608323107850294680323670328244241153244679134966567416776563633687387994243215928565011831837848549698842368386897234012174829458236935733716029839735076486693910911473582310502769488878709314343714157579833648843042877887689286944093091497553718440457661804136126714994727035406202196198828628876700540754668117604104351022303862995708594431339800434952605009292861202902398606100368710640794472244577880508962116126741696588741135250709914977035773329080923241485969746895543628103781399354216684006293210081430316920044039570521832014861056473371465088259432972012717199104517568764039715641763937041400398032930244802546827251754233074874917973909022190223669443666535082859516856904067300399642424672826333632595304010604207085194631596156643204692838214041573642026318390302301271839103827384068195574752847228280398107426091673266846435852593258564499174552366141579131934633108292268485216534627665901633768303717547194778638184760286220522805946883612751823378717253824981785739602597246194485825129292073876436159570274206109983986973602749072529724282860795398595677029522391350919486411423770469338407821668766951415027922616181249251689675681363739741159050789432586254326428025113783582014674028770503209815374529911600475971114149891005925800556357610465559182546022494230569584121652351396413992138280029283166216482589423507970735542282872645687482965871392868818033562861753720629762744737395875949192140185914157564012467512382198802066238432307776787012493204121524402247604078780836538805372354796414520457935482058687918259655094602440388094015759045634858616248992971312903814037601563380752341240785241325229978252639045711897445837978738097671279244532672724904128618001356628304162161388713497693815580646007870820452649363347472182303597453878907397974840126515822487051693702914631395066588383042828499509710263182548591745878937558754886769564368975716799213073192921136516120906440125637007884520115217704656221603467073702226613035100893607438463664410818746098358587100130251756802790105093086117362523300226403241093520808023303061956247359372135516886016475905518137461073950926590299812177160073183230422125964794344249189990217757299847881273322227354287012004332030533881874922279293014091460529215173860448957874478087928323044769230232011497514780129345932620658052918285718380202956997736603402704559851980429467266578928938918814875491242403098519680939537342679703792186739258613766827411738230945840684270390439022101341893431996941407056175282580546478579957124271927698402903105121742505103078900790145045661887036382966259570673032537440739759401206227353605683114952892886813458068574285921493684137370660037354844173867099042686784495273750900008821346806158930327109387289382820908377642549334236184461379493924857516800955194156333008034690177000533924091505674346761132718309699273028954871743635903360533337203591792151595353587763429481095811292103760912906657085403089269341541461047844545544211348507224978397888182132298400959242355330066940956017460543875191503933553854310142586345053229260719982631634323774351316931802529798593165669716997258158658099394437823553433675265315204023238839572256890121145747299976444266568582323047798969340067655502880384036400421428479186709651790472287083575503706145734447466150571826538118801564362674474218727044569086326006948560179437321292064865668896290515688668814851219803407038290333221379061377064687731283939148547334335691987676521105997123653275192153828567010496962877014897668441831318687952019951545027417540534149705409924419110495797897972289834870972417578562046951943430609677644764690065043104659526866335212207919370944942892779244241207230956106136454748876857270487896205729402371606303591744901236017393353285536999025741102669543429747093662562816680283782976860548164685389109241226617661493801050554221800594068354569832810586492985091634840774162406114036274277499633495661200684072609830570080767649690455802580397267737627511198161927714389348681210085924995707911289498780587151028592062871670168685762952391147231758427299978448787457989395642499256008567856413414700465648999793106306416478688194745295096247270976896447223459049130264192769363370407190710951191120382415119655569294154628113145328587301881803039028843344508169966774721520064409730044993248305838591771868373060021397838311201566385262422247867105234718966322715664354410739682990863441139428817516518239807966939315636968567182611146999468789333845885083063271994514062553373381537316841091177072676550150974498845348311618987195275464997654886999869459695793053836064190904782725140919457253812356384420637788966883302690902059295483396541386664564547632108578801099531994145223879494071790878811564157811678687954507741557416101114758613949733826047091729590991657959465577471481606652967553455226566638942940719207719543135529522010935235570216732531001039445850510073342658528980353624791947964047977583656378973630071712690241108090707253607982949066764212973998006377432642999766387376519546661852991419639718079161005561125082786070305771393714105844569695818114500015853819077395514544717957965943796206051507297186762045331317222061298602411817385055439396613775508505688002244330853686617997284942921074548920537686422895980108451041800487054350080924879908045120702621121151351025651541415032746038886293102285387194176525563868732703903049944932095726235548612102840497023454568646134742839664365288215804280993413365957999160225261384558499158128549150137085798504220041300037070806116638447146199250671097089993346189167833443306292990671135946166330689504944887558910853733505766857847313367488273789748373718502469552907403831243590859716556633571310211214848211421317697148108580389563284274432233556608936640403264057376167696670103343085281340029647378890917234353828598282446719968755668765506967341090774818039491811634041673472645734637138579581388796471880270665530331108813529967748006447141527630405157667414118773595629612119284420321134138111832037471328173896543331258314446607148417471508229498174620695689007971132375853775552041686306323033650776286377817416436519169907197905357384937503668761643971296865360265551683768774779232629391748640036869720043506618838471292391529224191851432319423165020669106217715094751872980787857356719673872235715479009164412162741423729304855779337952767088283011122312406077141442715573275015415708632253925309804798184547250314385660377549098786720650092674855325391032739203135262278643284333229218975101597169128223161234325241603801039752366311527363699932005756640815730443755391558442878627661762829260361248605126184871236097576367082465092200925056588572014578463638471339333787220181381421302716905983805685937023084687232096382779090982375188439493168225849830177545851186185774576724362395870191247154169307189717053639241244741972180939496385924871967052047550578351130698823539002868747261539461097104104025597730805729964861821380117627716369988817187983265943586133908375230528903743534296854926165106872746833183738504943386762242049401742269293689263548834267122067500003743982005291851564365640080434544802740365852692733956161659304716972587835382210701339534925227800073135165847304796408212356443270315173102393738924587251754796727277387585302283264330736529310553135723172013494998342343398512448527725656683637613415610902294509022294078088273055908320750332974913928316686794723528621681498536973544113319418994587311891023297821504178576787548625723801417321187258668414371992569856546011888256250803070767794717605030687303654218217860616021377521847195941798455893189666080314649304976188330948813939075763248877355477810531859826327097550194910096164445092846625071458352779298579517003880907778151107038119163862068062060275070045330683842723450791065974136689061703568007162349962943618809206867019079988196560153423957341593528275188300630284803220091781209258380412525228920971006254098605006710111584244761367479173217234643697167654296361997283561623736288115759595945517724319638201177727091343141917464428012631690515173480022499164067852584545510414622406916112844359736658904881187686957331294411689111843199334123958889959235208168829836994661375113611093279168705725090274996066324142454104921624304683094702069678543958712236454509718664287974311731981131496391118491767343228342023359254643397353344834634832252163265654345860138296195917542044255289681444059044085292848636682517475409428152002533583786436177463047802894735396432745356347875825324144125339744975084149168014169970741374393898242995389449925946415645135384788810832618584238997982472550953907704518833651847879331796262552051734703329886087806693882399404915691315211032623506274127656929973106121136851574382918726006684075018770020825875673857730596439719023633170285081785617493637881132837848130802239763078477524936829629037710863757372905923921281229903900897369186236215388311771114172010552329428029636200402286186218827750311449810724175475397418753491733855257751060509954487245651477768042817794734578307308313353479952200983036425018300173092795669643432879604045884331318670526976757380229128839611685560414504566262240413555987282472350668358523116621503205770098684263711116958933999221392248313450650851231358917345049277890889881505039068303845277427656336134522062187122400033439993229286634511392484368433800842951839183891774924570928881044747891758751109935916174917085400130687212877609507315906885362280098522995829249227010052463616544260316555624380593153378987986923434753267081623764092367518759449430063393219831847377752629253887964215101332922262904798010683954784723138180734133387743956749007627201164003293738475880462554594359961816492304387782943116181476037827607306102243177804852629109191837135521626656361051988010005320521785938453719710073421462505191646452779273190448937681170760247671669991242870974164487891230162992564941898800977703747452162801223905368074594893225444674855212175747556687284949705375037106799375069643107933720824357252610729744169792425487567760460199285545179059206291918015371138726676128917389356307595388719376746045018248086681293136498079550703227505163195162569648823244196482923431887184086148077800351617442515475938532633193426121969486180572640307388317299988648911029476708755318322407567294672383368709129306430094485574736740482566008968136272348078105483418763628222238553116720973101491260716511848416766573879241245103064097327997796380369432531197980328330963152279807806873752419582261625945641790796866646608791825710029169144363568998260531968769622304082588697172393958958736042085241873360192383569335355563449025075285561860450285535905297250301168903374210613009992830996226127979528940345782081888493726186716473970150887378428651633126415885933475357507968493820519517511492393726806251243620468919012076462750642852097551474457401341827979969114443410184108089182288994854078508682080978706283525358965767586223317948657685620502359650636417364484484664815988297286747316619712480471947919102802095200148538656188956193796298853627823672620772992202795955977755906654583821038430196981872876643721150666328955126437920756914838925034127894096529486211370862403260453779240291124207422768292985367587145579147870766787347669544391913667273806257482425743504686386063958084119999500639323261632792545463699926517620147699429823800079613182968137288007609540426022929218890596036685749811247080245485458415914873979290159197421319712242208080034712321375539560849430320104522073610710278899474810183317085020038575593407916415605892582864904205974935000035214331683477506261543251089072192932611845283809679119729371944882470378743182346465528657123372315752175492917073515815301162375688385100337752029725210939134643961657456130737434192424422426525593905289851258339832456082662478360267009653179417859414708758445523617427652511155678399465854268864252031312196008770463369736857696445295024660046608152212524103006584365211824543750135746293234874734199165814904593071579651979297618502467179268370111996481428771134066194304071336420004523162682415226030541200850771447557084728053552316680990732295105558642991582975397520496766661787344892725005612461007107542414231187829867219454220772097013328912895736097563219958188116895724228419909724861297955378326524584922007410521994385703838879186462138693447443607615548311722980768395272537259995755677822535363819180094068705702893619770172811597887636227348735233761646345099514980445806015938365131841153304869076109702125634741070002118970833613644826489980561168298094756752795338588663086160968390405878158445892741193209953764230649694458847789095711121130180422502234949339979141561042690962522108216952567508024640101719545629037184655629763681337152015300960495147466102372043692654832535680314061573423894390902107851708943883252755424430267993116621572328599525960091547077059079991087621634763081339511176409681838848486123457264978935853615220123276281260868853680787301309225811691235684489233302835149224314375610130068773206108264331180628000628705875018287816504625698823114245394658286949686310167401813482151403731709512694058848459840493589360664582526477990619493770929971754744285759183069562788954548290746783261733113137183186696320650344579351306660739290598703250733960202976708327226981833933502798101177557230899966388572922654397398105334179168067800525136810097178621000071877400935348626576063018703030643176761906848923546905740017276026837947010097373329894796392197977961447690477453553465651524085333051756220975367591021663801549586938939617450595926860625780327854011382419289995409356466498437333984375363256504075851779121221876115802475604435289282581924481209893888655277989179141472268491236508404120936129305236282148660804237094938546299784688874704431502716880755716129138296124229578164308176459640791200574469930662500418368325732531595234974780970022286697542950596131200370223240314458954068912579826502180817336703351667673731102337927730435708490842180019613621802988862010420464143779492032834588697111545494981733752126655484362111383933551841057829121627080773108302022455834441693633042363678088606487165253456292005155561966527537887358776747168787069529059852151883090442238120147092297846860747958024119386011950052187682327763949040109962626529210195096940986447446459038163741529699625779171238064801074699596178676180645260337736481139896948971569839836035692353316296361761337890722749550511386792852017711872284988886288971632980960230069386676542826203898615883783523221877252181740769447089594206125063415482297677115332698596237231243784831132463903778880684810863860567002213539130731082537718921740511839293647854139257523780198273356098539532400039684436548146228485768645092889693736603694822435575014807755337496090645554975017404225384609691996201542289719259651332814323872217204286145838386761177410283106037660729051024469608284486308358790820720109714860523919760794775521814444548333140706027931355354157397413166425615571133932610121425772063140339573432979725337036142162455460383962371804085134963089798263333929207296576489788703265711982607674719772939499889938618025225410727758358434596950095207690412511971953001749589306466838137319119222861832799763128329796363096590238586935656096650938739029506070444480689494403245549161417465095825862372523912395506489063491243367336868673398812903618135073143298887247589854474518428304847670188195085518188074385746426327798343829724852412987141509965434901825801118541194747904418312491077533892070078042258169718430658790590365517391505760365387834712488364649782396503001732747940923710251665667218132115039535990827104047115489607264848170859645583546892062078922188274565371748150525524042613850137508703786701332945868608072015176966954065231434636635170731451505421686162052334062095935249383616289512538024214888110837664990743040720340272866659810185175717937858737063621311101703746456985235415561297895276819337766402267837800214057892384504441010472513076252695979933703278283975126561329310434696160223793521214212873137122569024230671709262389395468688647030813726370061961856353667491642529130658585269453908943726906035077496156836845813647589604548848678863662344875449645799891320994253653628878005415246036993713692494409702270779366228568294290491338111383498983857567688343407558873410441279389372734642473646485427575510155015484529496384269909807257883777447829929896262950934624719444061692316347443941260773484749105549311384119187234648865561968735811581166750739149323527492830248603142875730539599419295925961136290946029776844856401370480506683075423527766280866339673765215747726843080635178748556591587265572198146079714555230689836063193863134949914809656150457193023837616652604411951967920408563209114108294650456677869860271138901234129254408763400497118255841193385209201871521382322683502015949134315658042689088240962211452971482640656218162671877036853196501769781711834206559177981632370643007799757892816610549115726724479278734544429092286107103806523434759854966951508605552953551816822384927596321890516891889167961009943681299503215389960077227990878402012647960392936868308818863059286018717544935156260739317755930163097951773512943756009602733238649783358315155171668764599685913245173792582724968978294340566611110231275377729097709681290040969503565800043257558551956836717547095241359784429054578541219232538304769601420516025686200731857353333371320035883836615350646275229530364586520428525490215901374807185605809759536893307500846851048315743678852499530359251504541656467070105920102305975677741067064116370872611431025685365698741108667737062483976670234455581436554414438070637488335595976278236458201534193823933804382676952583189795294803080551610849410710944435215450583064641927114596624022045689713114509041866885609444686340230947763383099348411500385547414433317833075908651392620655957242855097912352334288323946712025181109484028487199301729775135092953862534442382137580647560704479671100346671909027914298634036989862251134697762401406593969055597375740483466571798366079633384856275887251285256317068917185662483738186399147346836608680943394924583955375293524798294752010833438650096262514050251420879843687305847569299407280699778460711530327354216906150582875583384185075539072507232312233895410419726835954031578212220003478559382190710494484842683112834691398235306146046564642506169058694367028110533036753837271602661426727233215403668957161816411765591392121462345200787510825731579319501893548954648733932292455098445704887456927455640213072728460504778212317747913334236494479239103985923491352244116182930603264390315087118207140556608729418558292832073361975294342307461183112449342230008335690119531167673977998481678547767969019593029326485123551275186474566149925794694913064158673956012371581587795416763893664498438991185361327887260711544954113031157124168039201453493511364715831944004984997120047542884352865524593964688480875905233475303341242684252700949728921466305788992736887259068686224820103543047176748578506950817226584983033961221964961171269370926830633955736777010478618236535626767277178817203998935273745821412843576016752017347534032143010692884569813761870030271140267113269639107487876693378235523041309499625589459708405465255619681039929245512339360840006895838478079631431438513694926414936518691641715067946883291119870479177500768147110624535049365269674133724433305919697023300802602112861144930187076585747041882633643170635470997552411530527583048357324157132283274487710273115780574358761479693592441280514208455570760152579305926674537616311780603977071133493345679277037819679528793862471898753541035772258773890987819717339103651220409574044129035935499557559939519173849080429344612650617787812160998501811788855393344747372711902753104999953198832244972738818545444700879613643006838050392795433832625582483461430198630368931446418095831048637197173717768789868706686874345126325211188508923380376487646994933319303373229643127922431530907641467803801853328281427794957346482401158869602927959363575174250326013868035292609610989343544107959141785040409843835187143205489812507940170046846717293656095149339654324764752821034862817763203552218539331857677174390173805792140276643736919893646957531540776870105665651611879281785888729763620387578245665305720706209125407782375469977098861961989465531204223902815698716534127533831739797691524615163145717375566691079095344792600175983307130738355733432903495474021268613159031253087091527899880454017272268637576522873264818123236382068219245537417599970583554094815602858793133064584938608656674547416806715038386588502243022778870457425519615057722426076576006376344220835888229725015067450763937311456993567896799801953036819526764061892028415198139535258884020658647685421825736463144183168380138657813698697286245163509040138430781280225803585694380101191470924847823578493839268790707519245089858158548631047837333057986237594925782623663028926470091759110758360271617224311776770905101396848040028695477192819652306054405564213548965605256347328256380746818991630003429795748646633228530560599057887781486050963207652050750092315810198309534074922044710798723311858020059986483856324743864010169711218634815289062554467351544426723004474641142003753100805354585453107824434716292034205074292158957215201182184954861489371954225479206326364843951627107261911255957588751273548376172690586614445912713831843916463078471085800035677201129918505939251651385479638490505434266681841773469915156090087887633532817954973659305515246123489886388076274184169445217487372741444742680278772550353719422608958874067173774542849743110315775322429226399278893312738966010273306335601425645977774160440817449069315469041608446085567859802718654219970000097363567249303495470818392015512301778159989758954207028708027388274153519024260638621924005441294458422621574862597088742336137718688275179233584339800296977638712736577613426245101301523378564455519534326204949090783034924691370948900448112759964982407066741138254526612058865877316187897921482383770135158242894911555735586122559807056346147884422322453228030317589670822201218599966520358868865329932072939870429385298610296909726224243865732550238778975570025478597128251681853879099104717394236983008132999235272525227702148194316360243156702759555955718446119812962021016488484008668249217750359160802170369806045890300137762592984292885564440436991364253138735360458429281445119263988769233396069074911939850139766263546669003062885419217078010266241529668781114007790060830294404308656281190560214559951728684219187932350660526214773339204913985904019852589350937784248271002782221239924676368036011959289393249192005695342904314704892883823025716022153825950404449559102935887117730493723633550018621029624843277494568825901379766114793211076650043824592561084803750349393580309351315655887207630661050643122543138673628733882487666773349413820943211772458012789010464033356017094272431356644005287540373900513853430668172508498385494266070626323990129952970403816675216391264128763047033536979842738089372798943660009170020888729148067328549179269961734869500918179057182880733174951261224085016439894143336413933794029156020477245495645227866862605950080934855934203322773247601392918020215184695428673041524142051208842123426016146661581168540146713781463820583737987269518020175043998335488270682723160422486072274096795446784424077184097443773180325640661272436911292488537346320442444207353267499811188438158203707355929334774704320103806531770949544531402055590624550108799731519434749815174131406692735943096843241950909763928224003492174501269695886347962515211518117313345145120894123444042023953927293383811970173904368797475282368985881642121157268138560510725941504121046548819130975268982734978690967845326782518522731361063403926197577500503208099546545332638422628447122593282661659207633987482771142649116212031089633141001046875560101467002544578838234360074446472526285259817531415380103840410745498545748398720227992402186136720579781177788831502912421941873456562667015499304602104646188103682636663091472106360356680813326458769463389194819149909409686670749804400558047531284815603185363215073804997307664124493382852767051356772640648480548144918168193360672539436927582143028687763874360122838584325382015747373250014572256031825523731088108582081580751112279506138440241671678938416093089178396890465559793696918102282263164009732349305485305924238999719627543137444908844591060840088077560644974977922265780633913003603336412307391949670145174233850906044716826692991552049455887932245827101464670458666241432240759872677259610891346196541519023289365098236884440960841353190340049609293665376115213477691389125293314147663472068478257358017216742795225001508202715006057005005153654562158054372802174408133764877362130623370991151915921472881876260807548694642872776914415988683100059957822249974332904164924994521360429537059188014008843447342381778157382833698975788168256649285588328902775245261387092501569713606224651869430472466872903353949944527386301779889604670061472595335216233428358313797608873810076493817436272200777755733560471939235307750866398201614031503455596761665739096097631264963543021873407158112036193712194753032015521232102551634874816086395158540331588091281636173753362279614988834837944542913260264983083678929164556501357671706782173738029113028793847147624936992350646809356292617516508309852341536097394964913110219700557848264479907167110853023891839215495784808517517210487606356438454537238993945986462988460795238960730296980987973852482193426121175508656399570134183828206050276300906310306100324983227276100509559611024756168401194789564605769792788286249879768034618462914045100949530623377073887089595538443991180148248986738585331516188932100365010182760568556629411958643385148885690123348857857915550347801916019718541663911897879950116357519680582444063803103123099327325931374417343817238480657833027291467140904986446614071083647544517055313200267022361727831954449894248273636050120736098594110647324111437818403668020475003219896605089751994843457859611810386421179285484151199486035025481719409857295640045424590682947067623148974804962316486121401428554410535225624959801992127783850811788900923861547007021751653120081249090452201436234240416268292312319665727341871906876796892095194938720718490396283303670921909250702574403840758852574200027258887627275674159837760790528724786508109156502803724740609824470450719930203909448379765853046960488055366545503404831136399097216994428268678873929939199465588377490134569541155043150216403950236742935050864131237376603562397590367396207894929956161716849687845923793618799408599999144706557028937816050634950440931487602021815806688803478042616565470833907934120074885700152841442481710841306336670936989712632505688805541157762415024787662044295797533164305970118041454235463732261573303161688132294443772920631710333153813286978619470577027115720705236354425833252708161456667667937120918217126772282031269983285250279605900167149176253278483918175478179605770309596555306490524010154067845298003864031759126421976526438586653517481299838409399326850682037411686951314302175789701974638382786297802160929152262730164750641589320174927200284687920283294612340657674947872562717547422757188081162521827403068011141625289555523514049365808778521098892716980300707020803642740371186593832193868276403202771003478089022405697142517060139477400685891505167877639408286587428380105702367893924291377013035970499975556384920636174155701377652230015022590777673533419200895590532971118073307584796971882481360411988332863229319051581811704058033060980074515290862288376545915903159670054184489238620018358567596677661346396315120783808926093853353098889391764346382987118553041541590794123446483731861777611859701514095403737662700811959958208053075367446744112405062142003441590417003902267149262216203737373372430896631031247559494441349313106456991448015155071388402558932599818472490207423100321901803427711959431140157073925979616595329920286184957924661967436687633997508213167125021691463516288994391332246778940895977733131191316173309445849529555676170994002212423735185884017167551176873034247796095448567643061832483211787311833995554164592816977775560070044685552446858416575908114108429580645951618855537786676809033432619691081439261251409276615845868702305556350629940989645607832020090415142533431296305113142234430346962180298169831918926606854798527118113557079953108805311423794098476257298644077686501761440359373996785628844841721091601991655954099804492189580658487794492225245005360917021092839193345589159481741744992814521861425864244633976912107790805987701946559394244244561818086942297368064300173534446375765263674291726596137448046501753969000822323935378948528768790649497790167617589577976295790957335379792798695676026873063339291785614426307334737624194331520162633084743703916074617143828846192175656212266213174808331078665506351654436247027828987867082394478092539384774287722756894366608830249687309227877405163078117145447743501842081096205658732476738956265811566917364484795038948821954744296552436832326861961311336872465498238001001297807117872488706466890495161687839631851881336763630480472719862069060711169998999292994476760885461886392054728892117917464098346777124815720981844506647728700955788097864526186915848280410019821785483252684937950348640707961749291026719476372486861784217469930006374390127701557632895306606247271725745565499822233992555775948583714305777137623513086157123284775892770875500678307048633537727984033037290290370142733259837458238510615657165890459939367504123791558439124498178415399502468663758963002879968794171933776934998157428399644500935299855195252400617846544502699990849154607853639451759024403301071030883565916543310297335020290954249833075864872504452959729708756735900525796683760117601565055503524753299296303311481294260941827684587750490009385114296775005286304975493057842046201401315940136552206798216157095413191283713153248685144330195390288445510002643187270039839610075985489071892868912456790574018510358146560191006424611499997186476211297980081289120904740394270400182999563815246851872257894488612411567844789632676356965997482896376508418016438641850006447698001815292396844266121464108817421176042492488110268945345731642388506599088924050142219921919921374043477819749605266172221344074779780955706266092515672792937445803419329406841430200419788098561127763257121315735965246144900204477193301305876854547241478261269642433723312676586194881717820191849967933551276002807501827133927079995599674014411896232832988761463821130848981433802288925490995725002614851152726671479310610833711604461862594631659657564583422155467138285937770153695687178358461620016980311478218903256684572542107422934675873573121792172616231243548475483069705078398870827332109149032520416521034429184338355217817065050761614711680521782387214619622408251490156386805762209493323136849796046314813826589623670240422152468447743709347916259946463025001161630287722308444812906738523937170597219489127925759942651056632643301062025518890825907493293550128879599343887403545619273007058942748817591611851961978638955525106712645575786090814739812391857561560098934010449853209307469332171132149401954573756339674339515055809450724395790461114313619985888063141409373099129513868159485913831493576667936613757174316602266074078331568916967735942673086284072477185323182252962494864964388175740988560584312993251132894027725879827557705879994660162303474149724029565411688241029713734904168015234440229555971179964937452035067080116958427485285122391745430822168928390134656569498485729850232955355141639034738228326467022132090294859800719387868835242633390251410047684290355857962831091138884842440960395732274328085781874207568381046546393715987895592800793478225068692338080499052723051970488859062437610954672746209072714268540547170370193208509249045821589028282116423569102022994414506065565972639373174652626622507471752923177370305737225696812840813339214046840921852593193635563017237564281076318485720117250668851969863492664741689983656956161063462431915100790926389417808965630807236960945088733089241790301548257799431181453951748719222333684232168053974619599227717896821415106291720825484538992505221925382933008166808925166849757510809854751048593884785981339130907679605573076188396473328450164293500467183133174762502051276772403063901825010889494824147300082323055031259034934471435654173214842848432215027495157485669286770823538747036810060191807258483038407038995395438329884158541619693533345086664730443941423533599615007108293732953813710435564385434422847993490418515758071602016973471566521029016352781444313361247882472131375455365335121876409572334195915718690690263327114953273242776953226882738749795080365879904257212144046331634728516845248727964569317577130560880576835103896023090886183909770346984312007103985486681281742668278559142569722222887630760736956648854951294254921137305001093406135523283073213331435866623691147553815092073385741783381205935867918240546312447872211694640640629304174914404914060681051178708241442392252071555027603623369672600007604944176263780906980964692041338897472083691781056243004581504051570328724379775189537848713695982631957344960626244114429241689312798499281921016666831408308338140948366821990640129676122289760282581867110620070711798699007813619126266163265533530160000361969175895892075387063786306931847867405967449024317831994460429783266073087957762680255149618464788015792276894911933068475504400980449859922806238043009330220616709377832350272968859568649357623963365852806009548635804535617784143245328077931654929934002449771832653857861160164146953089315374854439651638589578068395599649406689006922659979924666612576629847240759554134416551792347365481027502385515484709665909240432805494197611091550183241090349720299417952754224661693930684670323733538384440320250950582955581334181478707127548436492995155233904775047080274624275994969545260703362840811879594682262284736048910176410027023955904670889698807513911652195555464273250741115761880447492961828401237191563549384629650392767049106181828612966467701888512438597427334377502382177289802267139777879375610760981319126845607027145143805167852823568761250473488521567243109072285405453942120458951331236939082617883790559687449067016123778414230069890539084620047470094675695119524047925347596642217885316799384091895513993382112012522511865494633317506674346968357786398570446353351656083562554313983918711794444858331949186098540569764086669772720373484886374404271830713938973825818520390188155113560384031834175133993231200946959982904469006077699490226175300996085150966883154327930304894373394330642289255038522207924516102658138915470632644246394936290244762743020331554940108083311796412626610588475798341816614987589805401151206619271512535704972306840416702696784564084928967337495423936920342964010701227259649033616339810963143567149003544553484038181048030656907028895636822700380174856821594779163067650077329146731115559264912544731708046877503101371421374202144767832122962922765499812118012930524503323601817423959193805553319829140458239662125039699765223756293623205676504310166868102624541284026332457409426307895606376456122414699605989898572849347578551997748488972608731362693342678301526400997521081315250818101483727591586624074259147067248745073456550137523638894897940238956049485337330083498822380343629087393471576854992293575277515465569892501460664263491320894938694569677938709481399424152272672284071179338005459658434014454280918314138901122648364374577728823763941717778878005037930193643035424624181394667205422042527062740528815346389845734083058399536302929281810845870928739545274144894884149008818477236142220185559401083466410386030158560855448801646190908744372073412636131212250627352172969931245281714237874734332386793843440570711177471504248252251530494090724065849206896546995358980977419985727829789757558375819696640251995326143004038904324170427565198405620304969975032468616088563521613446916984011017451180742377966807147641448997810890317372158635425678079748480772264507735039864353062221336617719615742979022638636426224451639555554142945421957143224917714323953581318226147069672976400533258853013320907585645925976813820035161016756426965953286582320494294245853153687290606970860188898459177464238522592189235935849888776531476703029420021292720243131549869219597879479724177976297032235217013081310421506219227616620965667061245245149331786430090037829539265036365120075586437361261751300943774438578277907574342133038068516920268798422353502890141962367636383054667334071318221313940292654781292325573417562531941740925896454103539992657359743256046332052202426523654941300334507822314297777448740482071523007946666905914511734434309962427939038050716511694683352646665420076687553928384109670211981099182190048696372594811180434166031463472885411373053150468339442820280264567617357183867435535781252352892279990176203478952886967152445140822227514097938765119427356901060346670370764486558221433158557268707698318724241901787256392811749088260277266067742874304076813652023206119054920707994221853423473913479528385867075215826698690860155954463080894597294142970965637517651244461827756610370866214491669707422546240550444895920914422235359108204005848031830627476285087037112764521252163061070068786441925947695116035669949881150348347635218456178722095806284958217922308219298200545701928642662261409996041748614846172949056609830007153658338495614468799128426746523054678228498388777635987725031353850525483891789165100427163372650746145918487765763420400905075745276569789711487965398695290682335063947352438773258484701111796849423581913554912007725255317675411055913376171609244759961280575271472912939629443414505706865577801503718341333764845267030757315162278709366395309939861286442557139363886913787923704407693197009494545413167664387088497580552643680798751730774081974694901038350328654425719410134902887327567334230371154627265281557370178204790145180247740427343012612446441567352143810095543355847893682841204551479250610549507736261833963342240888264501096856820920984155188120678032384614648321272887032748798373908243512398725689503773152186802024919003823626033220249935248582745269661778374334349154250696559195710622260489677590400105563378170560387390684890857347734984574590953295936115718704001369520956664014186386127646971494480779539433976897736241642255911798082312316671167693391696547813643605924388624369637356882348516233735797617314949696676970284545510211951492394348384044713011132130681385341231871406622009883108368225232036625055438772028200963125349527624959945075950414469636135937730803250216971651792924665637496966327700255003104560528092339287339783934225768213271147623234033602928370448839227661343217404538655745415752060827848550930345789897422258791742849372384507021007183005204016666540661085203726924797395050311191989579784160814654158208807813639341978090485818949913863428965210272561757296159874330292761691724274918494677190240008063414491766698207917089049905878557760708542057312749368981160275463169917439507894151410730638583716398000184741359042393068355369360022125677652591369427000174327576485978344807489995651467387808908632945398526523681348952842814595011127301749863654352740422272484983456337997780304833918934801716824493460614862597157945170949581682228306207515190074623760549836544909368599245102002322157927543607637073578370697520459565609887789436551653577398515623268102813596349238205782823459476306345912595098602553533457716282899479095921748111835336907674692469674060864000277383070511135622582626877161751897615684181018446031063403793090127596364983353107933672865417002286173625688380792651287731112081549447125788512865960938790825880331385008916190598157020218094476102409845786855881025360552827174158227653317730830349371220728390502410057409356307382326972914216983380705273822518547026482446774772440079597026242345763672673420539513084709002633949812654953712339768531972807923634566358658632704650662093045587839760016127277772824460320884068778323652283946125929595810868953203562483648500468746145840453389812796776849098095779313056160148835657363795791017357313307052864071690864454536414311386684705606147673642001084752903981673797201432736752690450791886318635503620282417918048469516315383024439810103610525882312273673455834551169799621943238865164927494091286954690272584949579068338924549325861228358605016892092473248996310006662078406734679780663236755644915549628702708172325893516498353211221273276081235129904141719829159161949040264111942473519569554678004452402935419516405526410573454279444622337155064512589310186822702095965338320087181624326410202047086981087242254730536980561965066774328690376476400191459227641018228241376941728935586325640984118971222737335480829334421946400747384817352463533507521483253471981280902057278692175440453103224863959171551111706208349508691108427915648974647748646953891441957178049628225239646483580747801524274834981130083818437821980568978763574731637064231967371593371476319856313576707551171615642819680295943267423839475069953907973169652675817377225198748567787484084191342339623661328911824853974914953616254649006614198044544245457027868309402583113429967715246355425439431303459063209754565466004878555604335929097847996775754236031225267492261228767100572234338389928598370313134338936262083946619266094571466817988103661978149704160531240643947095779489748266477224077621155176158658569079753665057941292015855292045713039006782276620124580632528299383362443876445651441483559733309303916118003981111403583371168060041899554979633495789307809013488388760883882986961922228968359873923124333328163701690891998602250506607364898210382036558420418138764590045284705404852381999266019696383437430638303708480344529185326769239735321670909288490222286043453176807062677525600930049312888699885297687755832658335946286276179311108069630015988313564482221166979206906487380753774284636019187319117733700060405879015239279385472692287395649412560936837572116477409278088521002183358807081491284710931548856630855214967170111746246106336417696072252171561571972044174637512849195832085954450253388293937872117431122995424152677894003064244463416723226752364957294758687185426830932042443522367575459605095260968594656331829020855020637407392676388333351352144141666559460009610729695595504868411198929981394558123562959443332622101153680989755077739153689577899473614772706209417911830739317368020195781349289708933795112210983380912170307855044633248706523996976430710270985543608440487066427500564334525646605115104852114096500088450921347965648974020881849482647409880143113482076599457946534212411698460785787591928247134426850877833637698666902893379599482158506519764790431860901855660282418645297780694259118053331520848890882878197718633196025873744733489311124254728255007586016754237587806838688283824403102601451694207759590951597273650146013188957086570363622233427804626670796742194091855554109181782459689116431581788742934159842099176378717484209715129173581905201500813282265314788862210226279713636167663191724861492926451911007724231422022735963154115551875169267631350833504159842956511768916922040069145812944516937151861087572320189805255977100515388896979119113477023732754455100238979474655629507624710504520932646149601532991796807862214422153679711336973060057767103924148339937534897009195195864902014305046289459645875279627044237418356885340488488618514202089056666291385700967515984364845230367373760230981407838594845062679073068260131886945083931865013414089852039328640509459460642889548352219481390202459921035284330502278219556892734816907514946872833348827163485875290448656262414064305392351731801531243828281673632869923729946550621464282189987938106275020544114373864831711227017425298547752406770443973061532835561290214659722944054769207473517435397655496428881668737745792245068547598566490315524555913184958885701839490319931079028885249982562719151363666139128070864688687886288326273578231647352278011358892447748204744722682783162076424504830884846478899543359826153628658749021226358403174688179785120186282341121710213499374008162734270459359355588701274493099524425238071742995862090149001877610422882572805368590674469368805949317840584864712358128540993708766849094070985789127318909108392417174531176501795756656056476490121083974588181759978514836112439872122308376881698242486000927228973494017398227046004177352690635849259374469973415486505085382692125791702818286749929125093005813648712832008646023908583667452396421408024209952369682268317819574756386211456446962564797758642507293517325425605880992540745579529503342668978871041061916905324766164860314546181595220231802518776220348114321028249204995728491625717173535738387269743419508726795069407663809310923778094115568375795879616223639604817938182783268689888918220482719631498465316598670635140152876806870341171570678872147322739024990765232766578952700393904171138927984734191758045496668641394717245324991202344745761177660963373748422603280214841299782876547672522753897493357913828325179928661069833315785854716906661141409325488665437302228896050596825003023985440851000043766014766185833841635889875713623282608990967014421849826315816591909510657806062386879501041327327053442651205304695436987441210693162585204266758320911411041696674248356550009377326406761557309434178845377003707758096229507826478462386188900790396576100656273685614263854308337011958158411504468773704866689214698139254665334615949612270077034598555046468355110355345580072279324354363686100482289100231829747263075160827474491290129516969446227056731214265751173532229690312765206689080918875297381140587181069122045748950355861058480696372525937412463009718767032382120315196135589665251790479915463297314603637289201129583898933023185907585056332605842432697426151099240573329039001798203354321299485644782038258521626909204272510239649786200006157061867661171276779424509501566959252068782992543845536804039521670729579990802794367933250141919485584625054129450932229966197110040395499175117619391958961371317301404803328953164017059609971033847721041788462540017590677103424600429128968042468392269040350212197755559101219856679175733090198502663540175268549873947985435601819346305904707192707966738333298570592684276715288305427513086807532784088864194800721355117608100631293444372184777248951913054089539495403863177238181330174083715122091861511511727337541817023404724373879498550410009658831804870628008739830495674697818494916227488281621179824830662418679130431583630068597585365017328955735028330921220931845648157421953928694093923088695429497350914910483480515033359337010314573087492651655052928859499953893211256912570254293800275798232526146743789722632423087264711710728070491038662054696008464106095467306376325433187684758372620320997868173533825985188667127283119855677763506835183502429552578195708794264208932093936221569111767373109479087205429461935276476449213427799056267505383751695045585858552011417976974771420581941219239664609604744198362562444285479183991431014250046005576413963597095016320329191439807365646729197794208259016765365317015675503050261994711531800293521920089365535858312575910539234579939829685211563696416403651722447292422424124764743673721341695457547003604518831833007261153783236224999491266322624760256950217525213975282568050076321072703954584998189669083732435577567317022708477574222195989232749967477156959955617725359573234937126855703169265582054435609160435997985369752791076090703648014118815226315975581688892932457239403528433471264743383194791212345311159832819974845488275142824109543877758044780402104201875086792379155070503139005010228889770322516979554547707224339672245292238713735436936611130674658919818927877441139666054527388935994673455581530450130610613365215578154646741276482116212068688066087692291119548833223533572100045198456910953274177888577448291358345176740859060719862321622604743101718037328351615897917611580734644326469504482617229577703422505280770282083556247472564025050641465082507567287794167239619867115188294205231337252872322098611781028378868248216633432772125289275630506708905966111000545797568544281471038965882222614514449587644340452839071115175775559846965289982887520465041049202426620205275943779696766185872322084232756202882640050226703200213665586240704582811161335243161659737071325136342257895381352270639746843337850899271948002451216767829062979153829011322569329086388405362741554652578846737448585878602977463753155131590030112111196935557091494515608117159275903235586281878520553453841417824878535843675956251669259966257163984658477897021480248574040673694475205664058393731586375158262340773110699381452147316693930965708491728422519249186460191352962951669358722422929852440212907657133861268074225435360054753826385625170212230337272947164141100595532104202333508791933952143833688071068221272010801761210104060840268699638526377847206320243698208008944009546734992402400764135025808572786381905257078643518857460604808358610822739509625731952118805139019717304752263298144467522824682998633420744255611459219474656955927878021496663636252211964366374258351900406459084423857287431091390668052136699810039325508068864481383539776273024238137503700801672431810303442564712908213160618497217649361999331049707640322292149140963365900943672379735896810759249894324789727778242184787150775315599391102469479311536963110454152953309748985420756212573408359581101817992660050141732973988617079539591970864174307898419477008969247612712207546857026647758360165866201942629505728397138636418685881005098178070724330026842102435605735034254557579752853638852730454719204329280964499498583926618352119262479372437698331646173688616644855882013022213134788822750109486019119023165387273810136113964908402081226010720502606006205204752085239648136502552778209348897598290288322122759447143345740929193013563874644680089062314854538467610447085211725732523847988494113932304854746121406884906221697150622713521614271854376100714146188533667177361113300252885317564369710625398620172153554780249302472013885335885904655428913750993624714618440498124463273869639276343741671452390290076569028236573157289883713370207755521242860191616822514105126962926310200223420838135779772589820990408934276105199430530359886663980180016177665811411414010957284421635001742780049149564365714123760414058074382533743676989779058705552959546398802862128214369667337232558812476371557294963982551159209528244428069318170437300410364895185698869088422362515412866549473158917319393012672865927673786624070538253389500151794558302717269529884611315411086196893353416893097839463055152146496290599303419898744838922134349962546751965246362337728178572362405448397261051590796045847365852050053938638388759702226546904055225508541377353082046194518070640563753470287034981237575752251674030552704423660083985038276803274712477708935804411309305590056961161643164664668126346137300813766724234532688305798704983840008757560786222643393038787501212390223192827283328414168631944986943511898919227645256476607931222873254601811039242089508222007843466867499569036869504261409001547973011926601126781647965600110293140933602735071859731691580375049953584221754536087057236192649881181694028636812420837169359277561734401253176301390146747360054356902816773929308079134333082699155224139950859414202573887481046287822059570642119207706069577161379169467231796004636356662032075891903574527665483835325112045163937599791058695510121796396888152153325781803386936562962332761071145146695278814185867131936520184639396444333441697243503897898776783947615901771805131256440962362613905392809227327726840518390779217774749960028402260710279288833685290219243398100772717642182615056518381428868780898657118374046216219508513304953420219055857182398150524098572456831941662711567777589197607500542467442621961301666752409072221137418838559031943684516509114222746653820957369200313636598528023259511108141016787282246861276924885039788659863300521031541999779546777242901314255432581498599583829143998979911008714025067000801757789891223975133465845338729850314327625476085740482302500214254082837459677012724640535677063193328440645873526409735877137363287178392228276935406163795384773475995418970139730255775553128087930650079358062446906209377896705600840661392637774208544031825598238123092727932655534323020948235980267035117840110026133398464804759371447236877223197975651887385259213855589364715593958346844732283072524207206202543107737638414464538198924015357940393728915935877689337166303826942630654441098187052333184639641163855123661204920099401809717287038550405709345084658885467129424176895747414609941733994381318813526089435532436538789714018459095260696498149785174708062535636137456361955372726288940901746748200059547754343185162859517634651651406247078713664588351137759711193518699688743076920785259546251112481629684799390227945199647843468086697118598002877335287537289079898087645512308530899620056358892241213134201732771513082057594436654577579655117195688810867846897911949370195910524370874050189654588962141183763466874862746346742623613324907631664356718627962921670953045928809092458175281517857739811277115872734540832636672319852632519655279393714796468001823317654959933914201172595667900399174229500984053488422111494484408533944087269687733306950378582060852475353599836102870337728171089829019998460330833258324867275496956722200259972177117504999958392834886706693072020936114726134911716213987579655973496052348658790072592877588999018953711096908599477283059560343064844933072895905055058448156751531035440105010965338045745363404261213201265159125189489301258115527618364850575030838823535185380661523998777483507725767665922775193217634936806552723920995104499160329553208175026939911789493984455789784238469226050665836142962107655844149785982675100303486519324018343338323236206558790645920980659228741701199865768469330624939547985670098737495753957979993903471692604786155921701946361448593117223990253283240129629625991950835214613132341419237442679725670935972302791271937354403393158428499152701157618901618200646496289198596664468230802906260734021348523979296040230193883924932953295039534933674955449050661597976184234260404096616051614916776511853816322391054153174508912386326554606986599605279602949027218477524879671679759718904548566238881500034510103216904424513667644524328912881109357816401314512339831197961006984797800667340886141342753853410266646476675844209705757228491766910645507640175227444722690415863337513787229117620742677820344230061464566566127662483688267949093037992311153234937478605684439013342302367807243564170621681389171334262914415041347608302866501061492962789702689507447131254400420335772073197019614870150106699466081791686467918235444545596222723014850362508443733694533533684797819790708801268603844340134349938445072348015729418708452960775117436890623723988560601031918495015818169437824850425494191667314854772807349352145359460217828623094259920702760220790594240863157387120030029559229754973732904832609818636246450798248692830463573766223313151032076168584647670624172118783162345524114339869573376287229200075873387813903986300818464823910734559679295342441776434858807467093240327639584181203421915377822978034041521300955822233845751509279045693881317003908708814693260151422233121105271645852771962875922034954874008503439035138251634610938147426229179417260241342592661740116594961901248262094601680945760121173224231491528023271934408559875739097467511742165483235119987204244928027829851494947359805468813442938177009249285486347833471205029796969841524324801960572808253013025059009381407652550375475788083192841567577153197278703429667830942108198487817531367246287861033994047786583611235501021099232650103493142063094436079141991041134578074775308109138353949784553413169886993296602617335171728720419323058028998675915396115479714684467815420854702433662616930584414830399454576882578313569633247760537632794290192542274675841460185083748862433115236110061656275032898650764289382513504791575780125500394463398597083370730400957640060291088650913554348734123608148776999986314687281421654224253087113137910483013179258571985837025257516148958406672790922432890241311754777881982275833315685242521310371641774304537934945990652370779725292393619085592932536659375826819532270490762233885322609770391222147679901750461260918310352183691403662115019121488332581983943233798664345242148631480309010516423815991761743757994172553004055525546337848423144595330762694810811221716182260563016079732051411983985368867866867130630465910395258690140909996122109165024586781758524335401966076765353249035574205539671470476910104508222293145970624050500189106880919912164170569418939105083487127225825802047827153070635722650166628313459787512800000208488225150044603711529259621421205790050896030897532293080632253702373518291200013491229082371696077366485474061439880256815363317212200698412920884178497834085606518319600769613813842165432074678201053831138593747616197381380719059444979624088700265577615507541607020855465183450968887673501432372905979473482433413722509997925180544801991375882088803432566523796357502571803467113787737821424383841725362538337598156581554767419159667321934659796859052716299030158480600073788399577950527485705384551487756931190344494631563031417669240659155777087089900760993579519583354466067733022347166410072593497294162183777089900004332360356414784484312060780306298460442539846959469868006062221754342232593775087690397993861768414413581887713791480682537739590473594623389500519121480845339173264672608374803373728469991238084314372939989248450069469513495668491791338290620608073595370077340240624921195618647613550088735340822490270101136177188751803811699481862638596999922031353901274489147597321601822111287131016621309603914415871993880565471046540229543099243485986712573869675417722247908305438386477288844108754195347920502683779663675895736850442457953569147717976330047371073932320934419198206630066505481903629001828840042907002302264664116429694922485048782830461232980178013343860449813020449331708000671802160166850505288950230442088990283164255891865490078838372911421383269710100632376986535262244340228318441165903717750327371139695053092121656429761769420785200637706919858263333355357042404677261866355633447021948192854415450034772777216403640060297895409835073857540901737310098931308354709227883762011486251938483359156034894313370597442779502209257109809233470628666935402367605149907514890980690422837411750528566589126225641504578653213310001375889236397432432728131154406235703134902040100692933090147855783645705615972569908945081577072339623306812952123991955921763648009834095398928285240945597611572127331277916316922400330929339146696679612150470004940508114197830799224427634583915770820296184621116962341220609135472114079381505430813337350611305460269941644458966254489370045124242236783701692368907631256773563041607781993659933526533003094920672434590654482424574608675929116038044304478306514901704637751770710570723181653338327667052373964973410275498762684743893516105119523953365055357637375947900010334012053435826405341635813822307054379187420360592962819912628548466168771301445911396999842207427092627918184469191979549796952149439277719385495956950076880069842703730743144488284716705305841168810287176423591195550810292151839992372980178697209419599020064163119565372244369840818972470994888358361169324699357114713201540775690470669015698842474476131392054059418871381367445913410978833238058970892582938349223413122068432168207749198541878888195996752694125697208095861428420282064286662956222386922804872250339041755873719507010005399281768122111538211489070193585515791849271639179468011799679743830170539630562622980431683476918973785915346743733171404272005217213917487310886035775276491374104741622562061842001625486830573240916240889154190746703334757971217762210123217559035002404736257445157490688781028715211733274870309562895703193248871012978661518904527170074955546692488882302761876937698695309299510793161245430629502617920179070257552389963392836099791355959525854850505318300244038596856603917192873289038364718963995455890775644339018647405378039189993621715102218275121897056682459178947251935540551761954105110460484192702146720826300342827570639855548888189187370507395633696762619613695813507381295314248675235809789267645759261795541032016824763271714255021318790832315101735559844960060896288871988967516669289694823224786494927804436719725060957057615716956563348651446615517459906359957911948216115912424450028561819177960453838417158441643111143543122846237341229391156637771358202219106024419565319466101474805435302659357397564277976829850611398981134074181993300128774903327544975385933615379822013920020462192214040047633989409727266435231854168975200021913761004652111761800876382685962093733310433035848994919610035826959065596896908897358050006356643421163893997444769079149103671998705472519568503566430605787508168289354075505588016747620268891925935067502423312534897903215085346637452301184365066412323448691621515978213842110898876556500525354718086388159181444602055605300170533959681251346920763668352735208331655618020504759885851389097216106147857818323187103465492023580475759262004077665071008017509426644694786594840126706372436083888853661498335560707764983130264763246512803004603650249098787728222702679266444928604105057313882020997974834510949469374465905983680974449837548419104750817551704022714331193704913146004431972242000853419853119565805261169191882439802233518484724683063902673534875545042137272875135330736712742452826714929811804647653382532784976346179880386660715296488387371130085680940080443964542083455869254586255750793377864650103289610780647569678418774493476902093790530189026270050500583499431490727133051861616026520373253522272618614671379472301630590886743072963589219991989412373469611708925966185812212080271036764912098466852548736295151518696687607528257830765693116767666575815371861574173970086121289559814590016517806915690318538763930778341033118964152151435872386127114280884204504556075160786370706823558798722853737298944953698616189128526212510356207838814953103458319599103130604579102353721075277665061948629155933487633896169342074061914255299937308119810676292060109477302061030640513017610774948626556712213387494959119557352909010513964463369155107261981367224869517546818552639591372192429960027826856004441954318567946030462400447601664676437670324081748699592814444746625796452842251406547266741769699157769700187737064673972153575854555550198667550109589587038959097949989975927659795767664410632347203872611262235558463771774751663025604252867058865693808767656265267889250855900567931376682227943387055344620523017515442643051909704351027522167075871628466322556856246684035621485572926616391536824257842690626345089997614009273196978970488668998290986600473105914720159897457916269985588684445169525461616120647438821985757987776711711014102802042115912348759389037947404563989165090924684966759429662745630219617481296730925165949570480639223703118143601716498687638574736056625380454941395891476160706692810421683743909113909784640865679979295731471491638688515421055029888267499471006793873558712630755601324301607465433826960496623878860950689493513245041733440931659218032364006521682352607991725715075358672567101129350145458506270267022357720650738953207424101128026015462721209523361927457881314225390144003467592653439334138205177939386878598667492167008182422977913503958747870556630114325264133905738080150118580850363294263952136986877036023884627072267404612821757409671858516093887068545023207735967940652378285028371319050754918355678177427012015410293547334912866724124985279471929746250706191654877063462931909537508699112387211454142246093535585347938168823723750166017202372028825764231963809213120333355265683691558052929142099492887788291503369161381199744394992981016978380290365342114452073962904632019592698309886700919348493430229627860578047614643782888808092228414782251060484203084763601393112542440580020353342145047582339871062524630262615298884492701685702673910531716334127031893869212462354003775738368817195781095123066667878205222230823362405741673733306720750784877736369132070121448025380469757341021470176176418168930694859261376816745798782624650089168070507480791153158267851599822355673945221761026910291852958506340388423260763359821605239066967836332001107736385435350943862210105757227944501223085488927335413065265043672764272518218664609661261257035612181283431053072004859584209819319338728381466210816083111330530721972298085604168410752619136259727926488863570757894625281385504437635896101217884146048517086669973971196894206199056769950980474160971256376588799790332035121376584171344317792301706600187448955792561993057285631734895568459579150257358973082597640722706727638391961562685930288576713428175157838798242036716459740619597389956289726467002876371650611419940023122316419483986850153338382323244305194044328978831234151981404826818132312860175474123138423015057868072745175254227794846921099474254256896866957343806035289883819056241785146580966408068674732615335577013692463752821767233488104771329649858899370152829862238205401772804703672770759348542909236125233403213485526834142306220831683288455240164077447431130132266535086671219398311543626853034592206476490422831864551237234838191380868084759820580509084606378910484444963637952090064267540060301886822497606020866203545924763601107926484945231695069836165911897891415580330865990682936528219403300370900742087690934003854955226270675385952113150367004761491882040387967999887606476894393165464710410580618265977896284822905111562289378802082067554889105876043692045955711202848054535923078666916407776767704121921601372581852739119765887218875951147784069832178439320135876791110974914518427520187641958503877177025978589642833682621596864385271379926963562853845090414849056443013903388385312240595214431624258745009112242897063290320905891513757828517624444538530805095691019466919289060794985761208520273030549473399305924846968509885847046729617303421734010834804836452834536461786873943623326468768760016750651987396893091840536722859163486663187940047445144547007201571789724606810524619010642907401653344360313027042737402121456025167260747046604238750292878610245330701885752021438093714944617439951801961520120526973830291469818225316932572923814541466526700211445058067913903161387185316874680485308225515705277861637496933371376149069932381992258613333559746555515280031180215362698200549156550732315938413284471866698230951327397115146457128150187741068545007445508813626481337963049500754151632373953497510781157758249348937716372275382047755007901200846392771608479127274782999379887291769969830038234163676806533634218934904294588734764647241239869777971208565640414640292314013771747537909707320536080502540869697479275260789099546788913557195638028259545759388253814290625492419603130694518333277700531603044403281092575484300005002470521765296658659322260112100181458611373173340541419025495918193643152594614577990545560875298012513005155391646766464533551715273475039321371888796140194522591094283896437565151428292166589654801952453371364083327265712490980230102340073166702791578715851265117886467464311868125898569450594393494955530572734953244263280621220011168507529845924881988595293586217080838254829567631950492675787103859454198111715563350268327851857103925826359697950087058733949788112460477662852357062654832468390146388598035795075234091019207406300758315936797390946946205221738840458667215541244287438615743717845429633800303314858800179969479172031900879704290276431280733815325119473427268792992335600155450909739812537175142697272120132844669791544183653284538145493704402381419888437099351991855557959688043796234558623337151458429626170558075677442812433279665484819711493446324751712765862196465425594940367787513134723828656655080665348596987020823488321279807935998275744053933458765067073371977387197607674766925070288010759248284034025415313117261434506735759081071138668737505775838398467875229466583765318926246439707910317244885276410660332972223748832134561247190562448399629348512765380221496003877327613445165517256371159167011720170623986420598565944635768059055291603406202903536126609593817967633101533885894257627326236688679821854902365173319400974722106256984233113753507090423361803502910686692922847384849430010699095774889904528519351470246504184263096814487270967978175166786291199181062178747364782646499879270959332628498615377185753475020377087236301070332360089705862015541040590026311319141417441507986254442903773102193050563829781970484311469992439304466742805599053771729746330314300105524015475736900881953938045276730315667985776884543842453150394264718826843090983575111593406120577878854228907125039234920021682875932829954537378941585707422295591666855150670649338526597945769679633014856733836118844100483436632321391856287444858685077929089830803876214118788335703851235290905901946745360928892099946029992484260300636274662337385880552579276106945997090142699671154636114069927388296136589780519866318693905742774189223633155090280569588258865545749994840996895038959480048636163364684958641712219611459612381087495368367827123987805298184088581861517319836800844512995364824704084589848010575948052606426924436474267978281992309036335124004262675507320816406059831836779336409631740033824317681432072965261595052389633638511554822522354935034217344855760399116365123248527427160467454730750460083125410656417973061937835420039045926700277365623863263806929185718395350894508078264261717076852694995872575072526278213975033678630803327644714377292522795472241630761037236326360061966869014812936387658669623306649380164930669151987526228485381887285694598317419211362130986499052172331526256745954181978626814244424970668725599816691813820107510494087086176669462867650802440954137157154579198949371558879355018642404000979202474334361161836622709493352423459537398401064824474882447112411425277778310125413829677227722012836149759840841316728314500711707375963279089750822361242820148447338639029249527227613006358343918150108872334898084685922640541718936655922381013420069574885040982204720834170871078999474472219758516940208889175833241878559567574338838415265963558688377141439409413844107521631141052725885534518377765675677831658952505237462868008178962944732338429351026152553035930074787629197174071244755832175957961184789873072101739959207569648336153862177127530134087463897315971395090996748866511559853180288476609503537617467105746276338687452157143295058033149010989880871245693867888574076935759660421331069512524525544409230085837649735738015845243434955575548563844657382596455561064625263808755855912171509802870032996459594475964040151078836802579451996199025934177603615032579752653407650010404282468273009315413719695547561016249992038161372145887988421672576935135984512434364355260500940136187610778665699638813776532151142836034892262009186035360730072628589493124186050327070152306326615487707015197952952148366184682340934691699525825205344410758420906860215984904648907005970884194128521599046701885274461079142515431234254027165092057013676249015627994940953025197184247727924138086112224560213505925907551320845211675296905419657669882266412341037247786070843905017940901983191418594629592123035184979778551777601910428357140101915511782440114133179476212558875682754335015731076871110123125243742772531900155664194827886068233330693386132161311463699426854178070338258876525612903398479083848456826068574017457941535341661495764940644739474665777535057401900348749308390905544667509118737903013158225829780839112517493117491354349462579414857942263586475571868411909438701550487960641687491644057966993299391254330908960291467598329728583454854419335240532874562531038711590922848571769253502470798820650357694757120604234390792817269203226975099010431159163351870944815236324201574848682056421395559559347805713753970214254564905128861194301336052742215249723585995110905351824481728724674728163184466764131018278189476335150114909348935612187987651132575078244712919707986154686295642259643550123012498875232710119675572004886117576541585985948803361121988737401649666595806542577042081197296367771980958087660669298325590795413818941782197215831383831107657494448756121699876185659674436318458001069246423007248224598508107130460121887299506339120904467032006588461262374697173903463570721284207871617521224889859270386824279123921709615693632027278826480283353816574638245445800382898503841690710067769080622041007711781108810917008067970219143319233672949693173519853217445762842650136195907329918913610193186455640262384405965047061233844520893454858140087145580149042373903925488806589261613632691877925983634969256728032258927263728593939559804124528363680194707406582076027521559379790081573665752309205159182215649249174140975351961410246057217398063192293468120140932794171097833778223933717320170510433274412937510713319665979417107222353984043109671154125224024082740853803817417298518734137965664875201456108141993286244287498440032028104181366376569690845149950522824780545555934021143499659872374501836850007537441381763375162385486261744321276450204077055584054844507945194665237043097894850592935240395116481677688629264397468801639299587186436365316653222649687963503686798333402100727823675654640564448355334139404889507986190014022921494023998498516549303363885392442979591075119643635678309738657020791051534414527446256855362382592849950921915080449248499695865759108798425516558738710815417099408231170043040950271032475931661080777661458152930259922156959284072555862626167069845852941636845568825365646421429296892304789799670457094570653487887787791078627869601750849469928867145032593606956183782339787517761997596677061659973526943488730181361208108407403840996801120029916032756965612707504510421884295288871382050789548273820492125075459532150288140718565519035809010759057719387908522376973342896311002694439180110215022351388314717755961482140204248959480641481358176128691964163804111221243114553298696912745369201999557581367696610851365157963925125407987118828228321193264117786936648579836850059841620214698465103194861220206741897536191110308430345464045304135429667162431640513871621077522639220804216760418352910352877897558328333783801173606352549691463815495443597894460024478971610277411916695135802687112532099492585689605452457794285711142615848681529289447077025880131909202872807891687219251655041439586532268388966319694575574250900245063971293715192887132351536311357376961641642543477721817590991616309152162771872024881281796371423637693946066593698295014714360053401573558234556041601395560668496585751437607134317992563094277837400668582950172329031125242630934566478096501691681043961894319568922452221263794354877402956978884519676452797218549000396440619488417879042213474230538795522462519532373601505454092585745986613990030613735220785431660041068254424771366671950347201412558137752778185139531984912511683150507775337957072080411049046523415949608927090199465704546538101824694377926098114321268059445543792031435647316346333074966963974456910776063690022803387207805755705531175645007841122525461396871326996903886236069905647458735731809575127787688031753786647657515666963056850299394034481445078185404328726670980016106418458346282826979966972950280057740937999822224848795449455432345284898505267504498511281927687453056727903476078990642109914466949739328404664374822997717849262019114848040503469736581762917281093014160376733841016845928344667129706029326856011683701843140943742107778634377358580389228462736847216718167679024080804300819498828908150390429832935813961154211624274106740198922988426475647275441734277331329271571368657873336278904365388836008816797092255078200372329741704428232077065852979243904636310150156117428598804347722570083050410687048624098817174378804730574012361546033427883891395288947521946586591874483748473677537561367576557915639055877796273891558154804333138545521813318873868779254362737061824896156072921998175996387864657477236547260608410432863127708741685890101904949015232560523042493338115630450124227212382183164440752372910039107401146177829880181488917874524968368078951425429141708269518748712977041203663550690537740111071434850451378097037254626219003807905020458672629355949566069685846865992907693389887651426733806228655017178058976324283180735247666671834072995527074597369016156989441989173072714661179063515642758832908272766889183985444412835404782690199060759491349959609721063798857294319392603537408635787002668830806547076201338716935453105817660453613759440201921781566226892098647740324202519261215238151132649543908717313985773368698354368938200536119624151305518093012373596869049154535131133935832739493177190067179506433082393933813055982337425701131753467198919987590227736087159576130352025697106616895076675076816785235848319449703040570184730521366785904735778714800689793077651109239799881445732916799037141112207156383082083412232201376578073048197441497835797025836370676458926327616071867415327510987397735316956114380155567481393896697438344284472145885870548626185345197090086751726122768392727710577881944417485266461337867218645117911554244882853838706570881359817558168686232105105676152236038950087819873222580271825917703728151922138054268049180373143205638329954107600994598518237228816637710444341610768972376079699167039341238142781169488550107031389978385874796583162486392253266660917700809939248608073919639695791423669032086220158413427391864311354722432650108292348024142134677137637688477170203633280265955644271893319974965622506766608523260328528018276820535031759657651230753685630185421611797427275101728543778475030641812868236599376995826945807341182128941189019828359443027163888126223614106759591213448331507095385668441221148782133030693163946983558655771276919158076517493302400044943628923418026352174449655205804943467003975961779728747067600795059644576786935147772533346350073480979529037502281038873167451140502935902452126544166461485541999444499015940722495621855141850295024157530478597194734630764061084929026580938870087919167215367480384829812375885311350373759593321822661456820849915303867865259353038112727916693595830022765274330064131044886712995841653929014367326412510802251586152154305551305115971410651232930342413094512230182264652812264615118853261211583933077709320521454591492327866973437622917325141375534479214647779911266787983439646375900855058992964509152833001534435374321435099674629909035650069680436055734089997377756299863789731794853360719758048523297800693190130894974826644837489934138513182684088278649567999306156078623665232919562219778751509393437492544158144537723309214296651985582816140788322738602394457732115179448389805527929741865000821613530578356343614781030025946542529630725284768188465844274720676011362372371085869475446200759332797146162147052675130247951605120148907041040556162365938174464483089662446605564094145091711133666259520640681701877355989802338841124182261315006573057668322220256766466954019560913357277020235205904264524521826859522817482179287111786260920977035682671439281035052735661170487586891564842641014365143471508644822502254301435643992639540446486197764976571940382900746044111647299399397638808549571363890520655192757638300759480048023890944158337651497501076936430855572630298099787281258077865550820052587957707187164385578390403115472971578281963602664939565177170744827668669526220149999046404792392812404018136780977929857217381251250467849428560089190946214936074683594669839341818511168785565843976810711407315765410735511893219998287126802932666874945945253859458681655671323949399393398581483444966564035605593186378906844961084907464085559076736065311327631100633808919732797922980618157270935027590783931544866292681402625639739064335068173293763643008998132935177775933441596101553510783905196096449547113914676158453956672103138267001176271048027463274315543199581229387905226072508805372661611543026887367088874363690865740059231577701042563143938670735183715647452575785204110846619307008932700069037964747919838993213273946530515234650336545424842362366918513063063869910792699058099697111289993250378004936905532468612483281322691036036211126625746029208882995599378359106186857662999243293977663771544863754791002765707261312670656307338924546466714911750498333132072256987549533412747747456163510187914787897471130262672529115927849768456184991780217233104149009826954921959643542505900723315788691604925398894281239699116602854709826694109962930091174891420320010125898281428417693437945737537158191751920204106513554290867663088182740964957230384330999747859335891746585656720543047643021119656562018335870859296343940258373388403723119405374980292367760870194260250624489812083019973869731239786934905945997514376420319288386087059440059980945846739940097714117589620546650763288932692244577214821974735310720693418793096708822227907382052118666795606541949793299356112477654424020101449246299463818120011171566366008845700607973136218078334480795746021034720068237679348114363321446624085386687250585577123653224548175232910334470010697912490950997097145297606068548072038601150117409633087069648928382081089120497311632285476808496236060367491598026798459934951761435387738820333223041994574762991872401247696075171669085857740133929756220219429177145133523198445537876278039772223911795579033835563988073583300416667603363034071593818402863518993666518793667747186057322276991481067900263472966696428258057302885615204566916161547637133475720275014387798583199413905038722438595265597973580807098390559710783134838445486286548364375253027918287018419490844209108922216471698439845499839747667769471401441834982003421242729326075059732879331504122168825785133554781310070219454799004904617008809261127157264566925139831716801886447091586353778558279702191292083390396919470485945621484111049413018054596152269312198024507853276743546826461577252662815670618412214427290824269445360739160681925933675537059511866448613580430842787899314353903117528090609389927884041326722936337498790400835999710673501549573462415291023100886410637883078185764146416353340975762492391029492349479690408997224203215211618839731707884162589754895158290704571962843811979888994961930943391994276831946564673051076320415012593868085444100066867517441493176289926226782284370582577296641898569178262786165274910250476196148922627055848918151355630092362258375848990313683527259201392428276418342344887552985223085313664782504587317704529540857980952020004697588258871170709213049375709954356947667753751053625535649736787442414094985857766480691474434887850309165159887256535370787911515194275836824491410090025987995468165986049233596199419906650150184534616407636194035368064493977300739723353032370364704912234505536044419960685301435765151700973533194077396867486336057670126506158096780435133456945223556080387020311324146765447542616885543778618911436756709662626702720541389506716981489128797837677069409981716540542468129961381528282377695455174035268379353374685089178507566326071759772812396680583804053285347876642275782986910914347246068762476912579817135023942601829108703126889517552434339923477169618690207212690008523530714310522308599489398663817317840442103649619691830563776689650999884249313373222157982792796558167447998085472017611527550954373856866811208635031948128574860838879858056541053934856452570107858247022898246201395108417706041887014961510998327512694147927903273526849710308735223072522422048387663048026443681497696877068369845043266564952927240369960704862285858940178019467796708588366846010400151228601683606194553536205168011763326360007324232928042463014283703117972294726708352138617725768601187264393518090283078211293754832601968145713251809679933428222236972576408356415564291764275169980652259056213249857066020803516776614725828146308435098686566979379092329413972303608957232082327975200637452739539316265976062771485354836599350429172389214928345920103433603634482893290744709826649747317083971934243296509165932593905814849226551888388543344100954015490652104329376532633591319658170073751510826262558094438810654191463753042099201310924935530431416178493160549386487651758947729354229811902849648185118873837942147462324368335055324777388370456257927090915839350025941809815427733218245852096065879595650876965034866220791400289447388972151609645356629462810526439598549835270735347089320500682083695758219673109280790316680209703185808519527480362817945513827678605559129396351496787853716286884910624353232988718525329333098769843702672162038014001575821152122402547664492166038560946052268663563389103087841052005511459949110358291202107099835325804807435227160526412102849805107087920067859232682473072410363412709701867148388876790268070423164032031943671343895998806623699689752460033641086554409842331529394624073788871237393022800936140389411591719221680177949480578546339170905506158869630570537712996464706750665413987184423154446994708434824044277932824588530375241184337658212121010944531733171738333398468681089452458734838151718207021704786707316237009875967619234345906440637850043571003869158969227863039182117621449835294323795074614485214526974118929562982804075360410066466168858736651191494110725982099117383761596846428061543205824845755771529053560048862969148096426380093899825121934533910244240586852331146261070591189846502862510793112782701553759029525679698047392400526717642759479711117967592380572585895779231089197892768604476705614953368974299222212291674389494715341837820689020046269659917231506644245101195673835155503326058663039690604256305193243991567407718825845133240899241523660258067822402679780587261787074530143167536798136767930585062976043302323173724766510161226137346738087233732243380548128792997695485812134896314132638650315421724975759349698042520078823540435712424859029422369005131464870842876154575230374568590263962986499663632535044188151162800051451022606406043674957548112860757254936420620649111289676057192474107357038078716844253715383071330348564100705758062906037524114001014597684210732645739783024501581740905897936234743916249923327878086904741035775490795666637613519187117944690944562255742877474044258537426392278622625233404926673891461850331291848888416875783412327998123408187018305908713640971879492552971909262324025307447171553255299277713150895265644245906648757157561191322404151675476964641327364585213777948790082980830891786077169691914450964475707246338315242297215994938843358991934887002739047643764364012237271037849201316081866848155202736990958547272646977905116396846609184600193367905469812495673738684646487852867633137844070749702632054824928384754843738594279033929427719913448478375762052252802714080000650449663329359454896437165176470035115716470822261315919616417564698024464231308862742248828166168740101042084978049334852306517159914171170156709161242977953728536976513568785519281977109831601706984929889427794512375853172567211686303638785553560612969023558306774628008459450309375965856590385848121343899775304907587469378385325268358854197222009044379777204714974172338422519716299258711089548424330091393248180616053092456106367236104779995636201951419368214234020253644883918976569276970432699854321775112488758419384839945980117653460947024164042669203746825019541386359442598990362330922052347245049215491608714186733609735091016805143849560474522714622173197797019075613638771727449539158947115004253492726893599833190884923407611222625460199219169261562112213763738817611384993887138692414659678511219017931689114612655842275320653897131804460344346901148197774082767814618118504050420502374095965763322355383925307529697375188190680783392308751409013483472029541403001638359347816322393966870918954636560288759078791971555160156616724877838413302926548434474577449776057432118936062733254690125108891762210201988509513193759763842508427372836021348652428828853269742420538469548148379097858833353041441034743434316882135488998717394577577960646987238832761472274260826734135597591513737054796625074610957877554194336142088954599931493580802054483539348788809775239633373622879619754211259264292735819690552633407147065802874886046868760889662201462429935833083769745107294989857099025316103339795981071193026595668666068001634009253665224744038572750616247760891133677280135591805928093854194716810442659262184646414309488750005994017360723722923205263545500078525985097456015653494440636975444755848928038617435424700345056076389478317266623776704558394237489838329656432133380794875608916974230643087926283179986639919802065897841720934474461649246913040227227877226753770767649963644087787350245454452596171738885188625529154990468484468604055046683618035627336215441550164816061705599695444969237949079348969785613217014245467953741480044542329829248999250198182668847283972924512632381071989082239384643221026744059070583619909707616848868652586617907148187610321964923393488600050521611944932098560986134873062957433530215043856015635018316632584556203236010906970170862617180351401341793492918762613704453185467179302906529094855664245140971255128430084035347820995543047947208191407038075198628065002312236769090439099294592173007007331324903588679379549289849008793454244405940411877697101529643810817735567837340913530141499205312262842541873448852595973761660232006002132241717222530387952503879689677096481318488560084008707477099266921942470343816294582371868980755982556690502164217111290891523082641049950786385071969377140415057637092128096903492157350502016432382125434754192356333337277935472898257578083900521064939322290789073916261516015821938769103596757053669720291263310660054293584902614483449611361061984823022985022768993046463565129321802619705878798528431427613759072331745105988292375610757150914397436541302323763561112046377236371618714028083112594367345492427122213116482835021542015801838391754656951285769955699857234538372502251099872805452403747475006505731709861273033396596738108360913338923410301713218214367700892034833569228147759034562661041634463911342100505201932733755101298904572171846874029012455262419274997996976697234435696748983967943756404610023834837936665964787621712009915906109386694003418050699109183332006394987490771436282130836975970448090410343361673045239018309142898774364813759996788236624792805519177845747985398512043023923364337279636170596144575322047710038804338884643288322020262222709547406257199286646654976398302216131219613111024857439739455185483652492611892214443854169315010417203526705983454971906837035153158829459763784222333692619879221922378208714184238019744962072021223366527416922126704824350336738749454063890267289738592996999065295074317391107869089281278765053550460210702075323027709190282556947641345987845957951257205288321226841568299246099346837393893060276783297757976681977340391661156359555766641640393380154395949228734589965575146469652120327933961607711542789089448104420785718082451724986677703591227306342392112400427210657730556270307784496854495526500758106375315751911967841968415259491051721651277985717324741431943020486622911005375042898015417492105867358809497507489180362704985671202284029561098372436740882466260792769049326240929342647692631579786854376207654987600158913425091990271148386999685187484127181718146171373105775639334265554952722778404720472544481866190419105682511867852900238709716322689962227325102825367859487383583903498775509558386973792325596147741410035702281318678818838080978445061745802436273995045488050871721311057083191985989156019631805136298771931197811526173305357867623598082299099081391905484405187513495394883335526833175479991654941447054081035683860335519477384430810943606828649588680660640640412080443039041835719717762278707925456813873263775252618760765919058572451943979588633065502026803080318145916518976081335379099405164469991794053535947932701885203667154030665032651032921797009065821323323199055929017552910264947104983626408562869916157871338881418929030403826017665161340127833133020447966065925717685671181930914273592685675665588404185936809864950881168087770047045661926186754352114575915878615166890052554547008896189564945658148365680151839054872590154735046813808224642271853499347153945708711110350389656181364311238872154624270995112715630442304929424739672733805247012232046779349131984104434693092225155031340128130447109697746352826102498838375829079332640112533549748006818382710035764168134086155315239106511713865828768097340766612267840538495791729296834011049593907871156570413902896303316203218381208755613164271243770293166778536286566656839844677019703866278420782876128200585646166493908914393804262357618701214178271362078087736010591866438424202450061532230973969587153924149840842544113618610281683913050261581643356328379254371516360903938855837084710822321846609493760796091011026452791683886557655762090528247223164451509176393247678952372978358318969659279032524976267337953435887776675426372460168822883866904332820789841260043268622621381056578229625957573267260869201716927123315990700144893860316731320039504825321711112871696376899877371611329797944964648100667204843442050075026277648972787125835686925430812851315842110573317561913776903920431191331244580982552634208775420149594411229507498228714610462766947668851861505018789740820443529258021593948197784638313301513824808848827515437908427833584094093710127779672767855708408719637191214874182357446760433411039583568003550957418553364293428301904247560243276423749917289925188477130941182136211885010638345541211459050584436577831960931692469637703201508869555469234097538082784843115738126258923279816135237122761561231417194221780122301198884750546891188655943063974130329475348359370286715488967495595336577463764888407721573643047668697083963233837241277237641846204769237786164437180470497112407009821002163459569795054126932303468720511519004548608029745057067832855781066177333901727654375404394061579225575852204385388354209623268243097745652527911670034569976639255039299269047059955267760414415729882772804973636878735512209345209633939221968789947122986225929279063231504262038538413676250219586652483964079925354386587438832560671603521022081020185105181901684723128577767932342686583606357013518357128044587990081754628054508699186536652758428741324704576538898268761398694990839559206232435422422449232282321938475821423000672567710614035896369408972717551014072812369867808226988767264813156804555131172389672483383505301584799701131376958080162799801205571448830546129353545795259316106113021576076328609978976166990001271712801820558681444652778377874685424365346604106327273070346925335262397900181897061368703873592772124783441314274745587490630018546339539267756528937770372459435283611017645469374173219651696345201316327295363195588289310213120655937359346739137260395579787068445905059002833945420221555350195144729353612008916080946049107845057125376478806212461064053592982498583643084117458685753748825951516611553101526653602399117336758730059457081997502061712792320205897785602621147353325241742597706716088205456195888262260543981208389095429533892675289248916087307091598423252200098361216518109040232769658655515874354589731432626185615936125282053321617724723209589564808716341831735523396772820111988458355993488542887337827369573475325302338374270500600085001062869750000099169743555572750717625932560016421910422587307860191851504660198302236528991713076014664314817351747182121135254951847912079940966754710615062126825512899300204936634683880577090552093426104110903790577758576044517658901499289862216189783345627242585110704778304127196671780186726906647403729813922002663480697693038238689047503125944252536541863719751061616773104488468023881552191533869371787692821314774712897034213303430853711796869963803858003953501526866261596590523804092638482540346629684758937499913332087443090860433193418752491658720224768917399118022788636088533533317478905007287869321447527332544877540436489577984441583632777984840343290093009085059141397056617812416613573478068261219978968090074997075670122930614627229180162038853320342066177224785240761403694946342822511803369168732632306742652322239625243751008551342221522653317007570161213893954729123468096419452112388481216763942236366213905466212483132725269238992853039968262229215757956138727033622867569655786097560692759296381811881888276266181023435455717142234702897136394486058368144177791558617415455699542109021347772365431727032146124205904248599566814983810052281019789711650923788282198479321037644427721696844262994369589857406185922288554422620755307923344789455790740009169154439730214042958955762640188437113781859685168470425087118376732049281409869625524569141667772591209425800747166494469285180723825546429190295936390273674936202130345147341038897289757725932637914808535853918161174411689337821411451222730444485872001422963366064764592483578913260922469146169815920636943995509243431027507936323141744522314231945539670687703490705723689845327081935320105083908306141933980796527711447870315373074389980965224357589489386794004242076244957792638524743471857255021070351225589733302025698450359874469276460871022893837608875399112104103950868551356112557752975777644437923854732778404485305626390223063746156996532897340177476406692657846228801648372711734767322868442681814690140322087423635913442548224272735007934459870002318535819329434039861241274405740253228036410110855063719617032259961497720620615021115560614791021168812993616668516424192441617090115763029347702287819748841244715784188586902484624067671030513751539957495504575821202893152132661156161097900205727088470941516629262161941029164197028134846411101576481659247560870695630408166099053981688433954421906208821679577594688624030241672618136471363392302014066969886163861889464872044079416758159910227706984390897083969404717183908846117611064610427294047719065616407579777289689937645953446158026152272236979611428801229678956376322019312475145522695749883981123962368455267934876398920471615392156628904531677408426997691911635744900812241327041514711580088801712749636922654372337495609442092103284449144956936041208293375192255161732143708854116193209642480880652424162008170895980183485584834919123140800347524064762493885030497544875384756601647256917810462272964620000770389280492039318603416719732160764198460748186863763226532676413830968221723214492793291064109340971707950890472165403640354138683090422533462536718458691618705957511433676786189040491479575059198423217698731149929642002405916904973611213446991945141430293040314533964634392934082365159369569213785404489796483646915885295527618433730129824220943221294474870210530836586163936437899436770749180205794359463045545233623099102712130208510594506500168456509757757390017756952136780852933108474138283205287973368155916382095097063388618211335073780470102546717760445515075708095882176890807725752596181909370652378124410055429106854157914496733571461361718893935372279710054124599527099628296497596380628912592261676923619420899620135783651564337588891372059534061325633156330651085223960853378014114814220183512487111192479269445435092856743418486085052128913939041203344683717374039088302437953088937866438276229381699872072484109636441336176147654551624020196363092096459507440467564111062932812501223750015984352585162429173052849499571383619486633677064985527821462666250258301548748384503223868618655396201305542476270578524408136228970024616622335508001316557009522017097661210859924955054555530092181570257184390847925857583546368289302833017930887825095095230030794494613106426354964470511154155629674567308517416218777845322849228075901907371834727207321376598701615285133004208676834104100071002710817730246990104911548618521569737922167691525551318435364838323554270988267663395363768345421936330411013108255176248495420065111537627083877420534724280497852964199561482156044607723993692648038912874213943671641988779702072125690340563105880730232856323618734139383234609156420925824940551185036413629308796591326998773386283571221569224010200449405006486320266446839384558592343277781590304611364536316742360366033360914189139309586118432612562780550914965712091738635671954110972105157036172673120712388864157576624799656843310265460090253152907173093108247457366497746602589029825242256871615437625567902481451502344211532920559571373987594994806927008036010463618202869564600525853854822877937685721226640051902699414167695301925115804952918315439185042710434082513700284471620658348088137430002337799782587117347990042175861537148039858574026275460361019705859074797756060276030663559408088795725308163966782939617163863889608479403705531827463463579518197293837243973978210727131958830012177265892786871790371367084701821352544079867735736396312627384514266030653649095948294066500477922702489939735120197253263743308405803865404341010259240411773713730651185301441546905381752704714347812929928510837469740948825354902354259788173527554316628627701061436826398075882044751332788779542704113339085782255245777799598080405361574157699445565858129368911515067153388716121087534522552518112354518284205352376358200671524036375623701633865317607821798931967109078772280633044070048368612551704082332939141936514632614550182509682866590777450699295787588536445907209061943451844161411321365958943768217182766939249998065408165797769905507091282869354735490513479849831034657950399800781652848832741397896104305133808368819732994826281519040575905249983175290839516466193075330807713322888806483384363505412773040739136346167245107226202465854643020664740431166990963215070128994025927990294689226958790316499244634319231400678723967730362589453739103439855592531399385527642603944671074063791732398128066178918025468463577517818610299138171178635246015624224296632116757718092528180891950424999256489884839970164213240658093970728219618496716274239270074910728294737645668576077217285869246959697900296141185734588316301493944415800787428251017655271581577690204566223927899552375227597135133981169531204402602586680203147999330279441324529117889977907945764009218477180234930379804072525818588512463311377925978542987839863076767289256563383239807893123248432875374514712752502678867895644685464378389583820091407775530561247014954817389743969996539180789054467939092536224182582563090499339281236000735235354612208513598192419741680895825092848093397065711420189197485975777182128143146154271302022221265376735438197672405390670344466989825249800496843894384873321297591912070658541994067015786876587102607605726755531414225412828997423211508971009283493497351093030806593384104712975893813496575999922548019255797661104245112712944175348139786363695342687514349613841409287099727022577574018543895158404051453506651771337320924012508814255759139659661807183368462850211258051577499027701919807170688496220981853816980031469017297750778717677420901194089973950447453286699941292194981121988341189142670623076383169476191583095857437841522628148543959306773745512531840557799125733652506912041371267693250148232336404733984635147525037502731377318480351923235306981750243088341421511324713398386611398569013444031639940895653233540372944901372672627911697644446947590920237071926130772449569955572780176651364381225184216100460618832564880373489924309943924498806843344475775483822894701183684658249634804865214666880302934733820073155378481798360935768197751533832952475750586514117933678224924678451982953359106515617501923434815613806865337050015447672834704595737061183041321226634291520488855498608409983508563865849313009405379514705608727664108834167473852589142548756408050492082282928267233211120328444712915601893359248509270564931540279558042551863658554745214077760697696469842367732730994603978748947511676498255402459094319732395190443758160364446718939983116012348938078387377366949336462114222324673938505445164533069530518433991724478729871000480111075985428355964475806997588669421050751014375809953072576403900533054843928922850711227145638030558760798014271602568244853009738124558356340687908716792444332617370776715068060487146094321620784960189761491323827136176362494548008658111073996923593404075990472267122200279247939408983556525831797808941132456974081641730558743320846605360292515980854776210886613852388305522115866205940551305195222777249542508023590296181782347684967253500254457855133505600734481888387653535053380809612920237271560250199801295446667886268015527014696746982973713225499437537330353544228721274212621268012925092774860812133443982083908771597924358112482751551654931652161898670910005515641413354495479094713717187286103586062150515414876622076002056476451615573389812754735824863837510259331615530257117964350013377706449500958554767646592060961527727730431685328496833496074591405113228744180849686933448757309670790803585701253273740653523191219299194399689720853122383592497771975073180499966235566041785295579277687514782157635468780873411024849912584405901870483508913103130654826518976423489266594454982349895313106930007419575772910738641462104904342416463832571812241540457640984701320384023605405202051037422304603686373166187738768046635050070164550591064579954983134328533879011673341859067714907683202755215786678219030377856497603902143391602774843509109886030098273935715298590230743172083098094051110412134713298717492433642905737073740834105893560277447227304348321363183356450651405915292847524453751121619455521339709727627483674325506213972553877873805681347853289909318804110993648280558471419201935845035148023974347495492922195786195972651557697474976491293234566242673827287962197033242330518191699546320660384803741521443261663520150355208074065468132415262779139739078949941015114854843167884275046746612949051678745116993254153488193573951492264280247700518902310706762291669371330447922633279859974640627024268315355053928624569762549990732414981903296808071434371757977478384283488111310061251805132489325902784821096018495311602876654023745546128577873063093386209400814201903572400064162376590595285713533815256850574691760760049103149136263533836762386567228571480288831217841225595682928478455172737678666607842865634055625679139597533955395769750750628334085622825341679962580659201276288855550008159439259838582707703492398699108896465338067401353704808773475725481637031922967237890260662112106439796974413039414482150207554292797714394083531345261316064530840930440942780625853871505217781442516445889279086776529492296767486418605524459348163708352141349768166854880183938447375693961572979142698032454475165913257208143066071344143565211786755046486442274196303762500283333630093974232868799310390968283213289155870956465057474578949742768481501919602045941436244879259877752299477503405620470251541799470267271628100810339623581655860178406542192162230302002423122625122983351246177336867362192317188432215542842948706161244346573855395527282997032883501116357759448611258777664077133906753675749169048306848355700667701094505173890152563013293302293639565637744068740376792072989029378341546704284599609011210261515180502433917740604026947262808797784652267215218553453811842384143182999975467820352072541672618084700874041066199081978279922540089010687314554423547956291483860835671814695847178337634936798108553146678752139097038994153335943268729143440883953465009534609528527676162823653259618125451582562872057216870576408384505580403714869910275310875901336276272542451178641373472909226052248161000260410237314786796110652879420376978019538470104068737701686520327128127686515207707421404996961266705579105775271477887652164942792837118568308914085141866630687039247770775136174401486575357154672978049916745563073713905083420334581517822341353076320935025621759516909535476215602925112439502434922875851415789358213675044167928334197147859989181131257423013524957314976657148630064930439289694607391247596293053328296879398705598623580248873202494867501421113851198300319868764326512238884719944381485519318023336953300265455480587002710776645280328934763587299848942970663238522439854283928261489511190774863614271298955423190638701974368076979675839193012735236634265669672351087881003619163990759200347898941172322519794288706325489873766111215431633285726195545624970024341842451793046522116290720186680722448478810650161737647220382214928674938557598556987205921235831600770767538720870994473209561657452323184686622804602919942259195995084200810254504040643047533833458311879638276693363553276946176018380273470695563221451141926117818947363535326252666104981697447915035238920480069999524972199333708802820816488448479947535824392773930113619553803685115294976834748492413978171135679827972982114002636020846933758135067478856970795512157251594323336185547143020278543646474367447592453638998960059532824180934272270240229636792423389934420104912875532014083250071832979266713194268422122545369252033641242159227888510262449940813904115467671471425348917908596885732351234265624896657012583261209353701221438457807324917930130475726146672463380084136029860522543547806974577560057494362417579744796179698676198477720812184896269306864200586754471353613179738423736754285606658526100033911016227787888835524311927854178947951734677288800859527968020296600582573612819474221620860544965492907134935617975918007501689883464965631086968153147765559134332641701509145891895169836756149433553318447739509671284064719267882444772679990503996723783424985134631110604435632529995193726412021826617879180466856694277913313137083024259306323245857991463700118444299736388306796494721260173963177491173295758555391375168523030203838013808865037000328618679147125701335837443579140249034833178250724920529329603892206647871931949456463072735157066796552191912112451329784739937749877389753639770724622746524944287814455766458525737403435121042945320866267852869074947195615488206732372951761424331217945544547642884808474509892151432530748881483405843028861893672955728935461237704316524505602533674594973576620659259635959111878312379403115522909547312120290903439351423111633476548106431833660021531051830120071760568947423629923989743608066551154303216886905259787484247671821291466022407941808578642331483682928608997126057627256051185960335411614719001569629839322342679584824043688248819480798569078148324448415373425841978772971814193458115132617132602841389642214064644184397120949936708051969070004992182244068182413238368263110021253232509493374078464415079365626960892248204209917348570692743251550339436088853564833986432753432960143660387196006180631385878338017090885967418162484534627961095236642558312032222585117354515059093453592476327430514089429194140486947851672185482417894362387802564017133923271083475033152918309908516132372894172643087111787049661830680121934004975291209978049584931426990225693082223745993560594845167453449448347795823888267151978621089115272555492204560192141316688012046504602729041825197417513563103128827027412468989831919045350164191594625258117945159874141752494505322503737409674432713823383581742696497592082796479270281251643430720662307909278065558155809451525247949318209078659192530610500775136238897744441286691566694071876628300122784848207079995445649191873170182802189608219148113616069037539836955422776125399019343402212482337848452333746212040266457821023892630501081992347895979964123033785092504730547249081387365809666378721627816597960375648605844995457108619227993008756816727867529702475558083405976496521613245083851063217215065277821743601584395206388844936054194572852125831214341362679825150995782020752298013674358507299669401012194610050754039067360950422002281632931575662822942165749305038504007875177072958842363866818764775257802343543288071414507782182572804421908176934823511026806426076663513987491886119428773402117256848045128177117110124648517795310628696621377747632993843380774206576277582111615863088041050958997345600704511126969951800154911033649013713620803507899077878962893105790148807895268146420529402720343374599860143440685189210707133018328962998704341480714674831295821999457475729969997687569379451585534262566867007050101018709701421469198589939064314094970841362195571618019226211043857811228463790687594357060346958005592689279117556339166658238773429272210702514580857389401260724273245823363536074797443414400651955791925672133273038350956830616047043683569882199824436789294241132814325738617914590324670235093536590345829315885990262639671946168651669546195858165702444184668819294638991347494665844328458663532717968687250949855102565522593781078090618390673033292318242935534938470891747556092298727631539568299735961438545251389614382759974452942715549751319931614495360627440916380141190732914025555618810469896398380599510426729308400976608793668282497009605840336213856776972317262338770115790180897165663582348898790885050927092491187332442668427152191376663182914370680659175613434331558583668903405311188750338891897918236640589040287358818106084258464569872049843090936102805567918924264804391955793141608401405280007481220396705506928297448085525260425068249559286337154518423119138068177233979911494107826172902753846864677083872994743432890041827870844551135928101021300090687313221395413603621191962460686595281264976457867989652445448022478960130552970340878257372982805296577085697859555986810093722715670886507549538765890194250463786805572064901251086893843544300445102508336210232147816323488769972120344784468952785375478123227864705251183412677206098854443594148884808974009600854824939645231199353684287403964856765553831471846570006944556021678252291238114391305004960698931077158435830320478457792318146355064189906515319116288432031340059228934325639642479767415484877079471208587542986565093113018094820943722068348627989794239571062432415035105623355721554995165869592247965331784778236606835152754197367400710707312975953194511581522461830811058884708277629414577381697345517973040829661698028160819077853968114251906651586402306299264491787422992246494805971921110822231522691734528899273453117313001714186637822151501497406058572338798705853519789214657907286710927627711349245091784565172174355497419396013792159870203583302604794140466234611288415104167699045951188066120215416042077737740902366644571082882166385791482317464152292812930746379957364721802592375593615872511143952237709735207128184394803904502423426314786154510528205935540914891743385364802490944202200058021810012369630505096235959232259185062204044971093869134967156599999307573768744010491854443992651269746520717938227941193615828398646541748529457615182533340827550362944746933155690287132565840400125665482005212572185033655355247032304961703684388878867252058215391547402362610032945197455227272530315947825420246779016239163167238066620631733767302260956123155029379740395687103478703532944460511632191106619269659357386049063710952633806950074919298033808406670454582922508162055456456214361824134328414889356154493310429410749034883099852472174987264743480743369452505195487706737779287872230139517757480385230653475419775066308074479730809523240507852527088168837130282417686562421741706076725087685756019779721935763157030810951463460040302415130439475392028729312979265092557140381428403935160075774112764644184280220319595567687400361879204846998277046218339469623549869447072561414098041966119902742964107382665581416624900711836504183906395382950998531424349809764049547486995364145589283207364988298373485840142422999006230565761503807395273940907205099284694902308327843867107000137357078094466675932580011613399456307611467292603836156588752998420753294716049300333563088719865807431858801710652031087007925278834490994592025288761135474889740854032683916934993060866299049871220428793545459210142873932914431118771914028413470606870230211702432821600691016212476799298051332781728056400310564065520541361628123132120805876243363345690242830759270599931699296477609376618290214692462803799899381578960946711305604494105765782202132628365660340895374210640830662554800377624456595462411306394554456940856199981863890605147883726098433004210668477611956943955247529255337651056069862878152731358065693552318065806507359312459511521753503339902460761724889352739925246811920630747683798515396707350815348146325521153838161197887728233128291703154713473823154807867572759621427765263493131055552541508172728728342447054861876246124662762096929209269769320214124191534391599794878903298284366479754515401390616613893348634643579548735390756470877117602603874438655551847885638240148896508600641155436261631729541689345179988695021683150507402872478024046460625787710029301725724339182454509577377807731902759703263174515335720303331814407438262301456318318435693496412542240782903216913500747036561811269798558457943344784817359314912253491115645486656341540937271393329522284558831206711603391630603124334457839978054454191910927297678465369429943502836430691382022807745259959986503070817293194481868726735084270473376513174106939714652458796075588723806588595637394459861304033972416061390373059883310109470740950311924746079730945777199369893611452899092273406220645107199447619353537898486200935391084965351547119800892657543904987903548558754123482167849539727852089779711767859051282588456251166260908649507592060380437609471626744841809641209944370299810471867252662578108105263765917966648861202910934283472042773364572336281078992772493619237364467585724463962070822830002697552673895037435098369681832021886373837729305494531313256552382184040600969561881585452040725829579898382714840939873751018684295068207687143185320284503625740249811130316914893264694354092296834825463362851957162018930593612127928295693496968396025660299632259143302827897586018761952544493364559884180379262812445384521990057482998679914138407732108522161775681290494248004586951423248956060895754180114638297599175686625262661762476400879812172428863580938607194111276331615293778976721937296211077885121410633993839115979370514738905258594468901372800834492975713560452472568530331189027388711244523846738844693755386527909799315908015155934921077163813633852112230532529973678114147545691142511448096662660632986812981396433990299648380896222325070619810729667996383240018228071778581384910162680346783155978126841634412549163120468226553483277740520779834841715892555021952953030839342508354917649461206253375142138002229026541683977409989906315308129414839285506538969223817897097253763435101397676659797583451106937128967023169111317896734146735504384970230753446084410854153493099477844184415130314035209642974668716408862823388760113308337757837210673725343656248827937486728697047380535070779462478337922308371466748355105073998979296767197144554726076386993926473663198704862070291927327979979784763921359983330160089190006136946744281268769771617578908467239296948865063468575118516349926234187613350585704477812518198066241657785443651157693327092340594803350850703780264570308851576492726653341317256989964953268170654336997602847893707353074944055876582934327182752498090468370624640548959759867959574942849246880715661670620099322290057766607072872945152471687434193945310657799781735143620945478838309926621380707029640755731634208111715494216206599518871947401714494278872346508463047821125458461548839632511327203119906451639413088718065015441962455847144429059767105293347021557259906382158174861802477916532405569156870278471033900962769398800182883790101324255793437084803573894526573475687419442050339624301322448196444335526483295027224268149246719822285029144024622068365118974503715457863117674138022812389857307308854411808146991270525149367702947582918013081744450878034026082960753082079743731811715459731708555960511294869306517456504446512013729652831231894518558568688995969352330333657278829643067929596790572732232833564584477668859065267437154273256610967674916574751567979242577385363413201019762422362099670792134942264886009679403313938109058847261067907691790197351617135470757803039611157366633074318656525299818391289642323996630741568559400399202499696602186472279337452599860280188925988802508834663123725661852025786549982987767136353121920705101591503943256011802573491876886801643087796847568300355187061293220926813039393462645408679678762369457080931167676943302524259380635871200170535001261437812589608898049123996590327900506818555344547070100992264978237106654753532848856985965249653769379441591206852512096898615895625827512219015193008837983525536301115298482666298946361423340105694699650059234075392322203449946388361984503494420105553224736948171716748396587255240930578265742679255253353495601201611793378359015848330439469354798777279282321519711099634313703501027768912449292502156989913300663088338034188159057558586056034674413387238577095450583772374026538174966619935780300259442277285327716728911134140510853287087741605908414246839649354243229766920572105969521984899977738048799657026486852849495965347806835811360730674075939441405000355712924967317695265498929117936233940736383603905600722019777128840420536177661350311616636933573155563718373828398539828274221430984032168335345530149503392625565953044119574797454105715911796198808206648084746858753250027371791827894907309890964083965534910426745949417282646641173618374492093358290344037655287671814170208481900383510779212610274384511289842584405282860219508139607312821114234774561731231806041724426125653920391252556242292713907031224993381139123089665933166766644659220264731111628183259171173744350940941893348575213944557442828795011308821320369251530074254009674900681813383623876863750371913503752729629827808171232954443517170463129072051023305998281288748238269067022118259226907169193592492327432921336206786998515068031116497383894783338514831924153393809218341555644584433690488983023988728426825028115310400313997316688190604200432116168360609048147955874228721561001024575480135468257987004638534556803933242523979931800548171353620606223724088619123083136330444059856430540044256915872606979737186780217220014788971206022274188902730171787114311087470911974936345648149738631857874824055070175584074750410106856238168321546549303885930998714604459882850352879772418815357491955362092095906297057356822490215580091148954199226367243401148089365531279121623778487461355989374267501834444006108099197232033183413551365188159163181126961738999788943482669331456526930975759020294792681185497894896782706027978297932286958880402918719284466357945242821523447007464245085190796417132486047036970908792889542372601907300098672180265159049939708522199719979523943904814724162573646162312184902098974057042854117595534956147340705539992138855836321163095461467899631177262983791945870686855754212468672028979768126308574834483271605683912061930286634625388426034806177705973062944606303965989445151838740791088410254990738363254860530695364261337774908193161096708732764584549461433344269014443044807477927094809035049500195548777236641871998451001303859548532055361311328380055581131823108326566031906980724218816294752558891255351240858777278634051747526996374655169531646245159700534106813156911576379527403946852734533234582537291902360320094731287568205789657583911576927945807829134333276553856834512536788788931119346938934737966717042307267572527324415033171209468757978011972903196321958789592110587503353356340593524029517237192471048694823093757683482781101695114748564268772699756253452735236651596950060008504265915761045446891089042594775557432875423699761965325155280217885310402632172572675109166173549405478787202323824427979202327802792120772032601434562885167144661985701096170102620639654855027485684651808082833293217555655604308337779990187419432230135394398925592303284403974811444662803628405428358619900991463534590841039563346878313845489406779787511951744858606357185232721337192942059873676458091266011114246106901305313803927004058062230308579255596321614692616367727233837230319213669245730595124079043783743876194622899219613156059608440257742153529357857166752888109037495232642415704145046140657900132687735207671510544171013293806551462382341516116927868642288839450342206326602026940873237470958986342266741414311869033009024466412563612183999745728927232441500911878224186203546566296910031463680707992877184572599163550608653713960776896266490654860659824422212911081628192809590157354566458331621585436049764701713556955774247328317572874877968935626544113142227979801106757410728394944422465314817593479979090081999634967540860811294133624556059466330143730442321237453929766091443269839305283268721140040460549257661251801162774875900499426711289965732562196856238276050691742364641714307852856961215599130887867015676153714560423736380877870696799801073789026287817413021358087470593854664145964095062753493909064486244592366421505298788304753858650539478509309313661159963011177225512180601890743591479872571407259366543003680260381320948309441807188485161877801186095065829051772207801332311961236968807095646878120212119295969798102235291367023540989795107653402515355633576264608810365259102094411529859517760376965101989466228814222307764720241885575787842023815929918647595639716494245714976352774511566373579934270232947124214324654650220871643581278417557231815416565164277832267588568857540129066992691601416030223327113055809074698906362153764089915886788026821029658260773028217841552005757818320652014420673209743003069879414390084107932757247274487754257587079658345969867342675672244418704800241141111971932960835716987245389262140079195919690397767274819514939885020294458133297356424205083848407761037002394697095553921813490872076076783420442496591036627325584183942958277861133413184093347760987366908067130285033920644144526789371651873861089759475356555597798293613471737940696433923852633925584704310719219265183833637575616420314863192460698560042496722425815587779890632565920287939322104775050576251702456106226473428514792059592099416492992618059412204013223699146749644962988091951513100894815085816332780751563355756045902048765506365347738048565648298842594361367581663436951576817727916037922491823063528605753914422942380387445082972895305679991379008291980422505181386969443166508576516604989550012333526164590191362521203995947190292824834891846453936493307337132931627919360706054360575211765430101162095071452282240729292751576059084052965407481774119875156125723907861631345175700084098377286168609857405075094836674505142428207145298823608595926512248298069959466642980223273172067047759011512526431810213913141270995767590353101128868185453321058295286695326515143911781040715791578809063723043807106125338380344919385608444179577011788881628145459986462841578114755364321129596520948922485364061233778655120881352355973785478262343091831090611100835037221858095630997801722040160674269327539112500122310261365341550380180209961738082830667901363172233761164177347398228358846623652479136629911537444359845365968576093579048022681717310415757414509877505721311112125262047046390576765004348827289532079249719923339689352275499326377442858401637932694012660708506243029420195474019695600254328974206131233036431085665690059530078968164594239648845499290718924889579990116965444917706409080782930738961289266316306182403403992287066556493847870627111032591976291846890204099549486367667392107993147316692894694495044026838574925989656574572488183050130116645178401033092703165421431445858568736752354687266710838412175068893786902333840507917440644673216237276870401813070813874760792172402032946756109549007359283316499203594919035413285062842456150322663476961766952956694264989705869951146609933937546896937349820846514588675849868951412758774639492915672261604608545938158184212003131752780919025724203591518617401251920607357990453474260245370403857078143737797923675166762287296748334437258483339195014586061833129077457801182383368771329948079287827615322530882961372775074931867393668889169716769582433782030811711751633891511436575535169243852460833376504152357588534389495155739169156549054180937103937574327660822149585412583574396775937497528272988457313111298537006530437884793150738859419982560336418432730916205831268618947363379248151064676847926412036858697076325924827838087178141775899628765717324236560833709167619594450217526486772995802817096720892744245325247702323767342270621166636491704405036373134090330585918880812580600055068365295255120552853336594721452628417559702331480091296279215647376883217532125027448836743127228481092400088491969665414371363154623092113364607400197961282331165992406355383198690393047340894377072301705157353758805740153298744924563064282527879906304609306221720789894662044163070525161384370899766946167128154843022510419794860562896091274233934191612870516044070341347063892264161979496344321624423617921204347641130044103447823214157270233283570146542681660519367164740681092894989962582100761394911878197100892419960249513469984730121270311121370626592491486918551988066817577980856104603823033418324321328538751360208102294825583390532011072852292347521404134493807975487880892553601156575702123760000662817262536436760983565268328268802585421579312699550214043640618513311799743421926458227181626853525013728747477339115657444214100419449700750797356246047000917654121428109512730345797156527942843077910727000731856022467786364935422318981666513691041989432056824590544000167795345552049491827511555078402828700159297511371068995576027610669910184545022734579216303402198755025679959953597155784320668552897861577925003983100265589403094696306079483873283091989110666749451310164090052161911811184325416509777815728411170641455002007527801201390680512294222882074262889104358297909946550969476749250731438509771313128151125753885224072349370316367636391657983418404097070082705804874212731039294264735206275229783855396280020050148013293621209970361380169758320706485112698836956176283263499860476774623920565070688962911682239840696365953948911843998425764883743366385999431701826259294131280651075050486303778269238044717416409202175003639583175308331131073590271690170415902177951504798647744086828716937397341635089515022509774831423553023830151407802280089699925742204812008688330798967928838875751305121955616440285267265345726298082834901811208660693957739790835790332133868696549564826571791437667441427959188128362074883566805579841457324116477902118359484006926887421419496531694004771119800753400119787885506076530626219401404240879815362222724005752520960905829850978562245656366833271978100312900083133589648960881440986340481729649936297243258677316342309046596696969924359877323128888203770656945544026927308492449635895114748096899892007252242217225240788272598401261866054473840583947674863376433755130247965853994978460388378400487482755482563878398926857932005724955156270872068697931843820592102460850376610086871029889787118689338891328707391442844269349821782208475679047674626891164872506877314189602032785083375087215498878491141551615108946344111906496276748260435794251728865382069169673936352666081841516268308497577122481188560418392634622457933892998733675073104890303106288285942288178351161827556377084519193410644755834087063868090193515709941347719972795954422062928589824875207257494543614076525696998882549381363121379353082483348677564459314866883527854917868288030432583836529012462805186936023614419624634746681328395878053868513014193743502745557937248783093642770170706066825867231330928351332078531882167262550734460246566247873418470068993646655257639525576888526668536845580422918195483387436159278076056993559022000882291463825209668625271901814348694439384967656412044205131314021426429940572657931367088210679164146957434663759914780536350359260198304053407778549820290038852853484038773704665480494003623785134471151172490237880183554968192652266419570881661064839092266815464000789123661761226615443604163880413226615045479739758604836481343126323804021799280415728207450094754202842412529504544881148972401244046422677413221555851040521945697416786052206224844050064410868857562502481245695540722831769691074932526808718017788488329463683900714631727212557346617029832366297110559111198594803667548533278203348618478731162161757938248613044587826593991476484464524732837574560776228868859929779246260248529808367910163624303512272864958362477274861744614937523375616274995205006472560113412495547992082583968814921310263688717204205501594832489862555353370106293659003185876488138649407995945466979346863228701192733906030551900238496821588239678703158117193354585795179974018518783676404518345335832082507880496846747905810033755834795125740520841362069536551600032428646115996562449416632460758568137532577861180957552195821814475560480557577280175389395447091777303614697009327394834054038332166734781062839702897271727007086815500322199039686814424232555018460375442934730707731804224801625323001562006011491772929720811827547110058993637477259215704075984035515859156902291391874692154343710791849358731188444006721084626028251185423077149215130031352258301532031266390010313989994165748948861530629266994612391063054428178475430911930301400216271235769238966903810106073701972681659757334910526560147635525150906383212219283345292020782754444778534966076049139194323957389056921120706854921013824690401334989696992537155882610930887290651790321974983723762131778564386549396937806509793571444600138043638040688474183337204341923000981951221838961499890761527013139616594756034419251588840425560918967952218096941278622662163755640629108984836055693262987850478477484022199128544835491171247380342509571787273973732910851669770911628047596207176610022875445314488706897204550477967737613395340626454907000722951854460506177051056850863950481746417445774484908602783682368163936067663929543125316994278140526614389454844277978142119754964682355063666211525028274336876594551008924598551744047125258023519236068714038569364595205990311102055762925004996283438609596054953874190429064745450770476070242499239934192336664619346279978577882351283102264242287087468156423662363157978821430503449567903178375327271493209986689925561369205147788883161975382699253724791378585869858022016581714279686963195978189611710823172871738677546770652911635297839259233240734971676535322406056981349646581869360535610010340216017922816739501702100727351280594182346144476091198464295124025918082955689002944767294903486381574120204884255863686243506492764317243740425710183894560580820699169268560716477729281936686881083374218368595566805662084198448903587036514745924148336859846518898000417090798815668359208799403737068924880998658222715435713386014855149450135470606390090072987909493741618461794369238646171153560976094450475065605549650930026147247959282952826745259438189562078689483224048677205534137460688046688995402413459594337171199745594328553470067697301854495003189771309122020071130289777982061463818180908854601106066760819072268966694972035987339849284633212672147406413513038072177962262297262532523753718441430348994493250423976384585070832678649233284700138104050892340928455150814583579956644220939314364754716323107581459455549836582678865217279733521618251301577269403731487638642472947779156586866526075265617888271131682357369413035799623592600421428150312142160753410409258677380553177483663366390418685825004882347302242800243174642366579546692114807820120858015949680378485935388610856532143464390915352419589161432786181392059102443269621758175086787843119428823737861159164546244413016611249787169433837027608123578329390977011673332686241310616677366972492710780656240084356705157479575263478535201767138003288981774861284466460293988395852709537151389054035665884935490638176398602448091042547799124512979914071551823091827664061901982909786208292125038308727620311918149417735833090726857712834779566253781421362203394401611094158550346547004001329686416296861145721036880765062857788433939295620673697922062302896773836835850839150419542637550057218961608935524683092005562517727234062860379882442151710229872979514703110343703752417470615946925616622099269292302547166928022324598627443019459541330226959524055364507670362001530440773878449445246210949031020000127400692241168898064147735424011163417761905501509626223110808463743576943072211716830084183682699732067390369769348448549393209189834453999379493602507557002469479320356877018814536691835494640872269460845818271166342579664451878594421658615698013166943616241547866240144291735380077018454286766199308441444191697842563912045888158477232375782454679956433140228657603861561552953713220266570492506148075195985163334993193990914449161685371097469743094297773209474250026127580047622887523017718374482743396284403318310013827668747804092804622108770900657862722178594894007506272949242411711027830690632976828667893214747800114363917133686015610872594097311322334741803707631885521585937674317129676096316084487534567985127918861514023139383553277958042986902764371579776537386017671617333202253479533748495808547682571820124568273953845572003625769984636966709754996866153490628012214746444907159096819994068895469794971258598536604425229161184745731012400677954691095056088931585441821181659366143010484703957114562434064581953551535329926810243932819665831137494015247129671822992741632524774079417750218503766718481350173156938455654660775391711273805162993097853854608994287783413962217767954451367266086354046372349932411225827709557776980479259754494338303235817969168861904526988847489918444593668094238664406730159971853014690123458631884764184546785261638038675868504733890851839071914443552811369668323138729165106371473445031630328963152053677047447950769094682556574218954275663335866152262831352754418004829379247698374214412599373555182019353485749896385439047423855579440788723835471589660880813589695819389648162799232005622069476365187385187340538781053808899764429858103070506201750608396247481632924019031830556872184639659791958988777905894431871073478288095026942394985832818988041259222576470916180837420337805903312031607858058626764026162974921455294911938836811972083935350618350716784629430154346379003644309411788415354649900804669818696027648793988523225343806571445008709894483822714696271787586443178609367611327090241223175099518024834973126101302911186502109067893076402563429150905725402839600383226111527540714647716816527881094089051626581445188290472503295365210819542183079401031716026120412619827907783778612457904227364409721721586420825199775619100194931071682702884468761600946685286717539820804222888726184583718726163412086425198722665176101862953132215955623217167987958960966906927813158654184462112028595793588874191860251913714642393313237997644360686012564151967343752686410624936262252867821951430167012747384883304979581261062563505058527749076177414222757494075696292888853966153493269409261674352419185474799892980084296431580743200464308166262724420315945631442507184393806288065163393384859461283857292678062731836683302465831400116593851603841077964048169079411173149493137689695400626601041705749621384429732270847608092493582393624194068499278729491436091378141680643027899884792031386455899624450458007256606083689364798978210984763495387944538108897064341263389901620911896445925371821393265735374462101837925116907317530436624936738147594000916586522454197383275973546161932370408441676821077256870763180572339952417161773430160788105780307031109402237189971065356357668449284807252634571943219559990781123115355423411490942576083471399392341276299057783910713397713913099732542030057634344709821254962739191231689628842607456022660454829647332617607675744126828025624301642649789407367880266601974036545445303205980739890523318336176323859923596531197939611418437684007413373745706771939206850207380352530015459400484446380708945204103868745143466749755468847773009385808274518296948090088211860671596343107748259122017983103857052982432430186128161626874100827348142959287628857947607493654336121462362229957485411876532558041263119589530927782306599141105747250043586644688347783405084584501473965364345602718122438611734780426378313387024983624086858584471534532172678194239360589424207482464773130826830947468027501785866705791949539886669602659405250850099285599191437682044443273569250827645234690906173160307227550176629826729399720725430753415280234777719148179681721825305096408231922467123492046892757474879986572492592720018002932726778706088996378868497180015416634252932948485512548119426133136797596821739634484210625663164135291289823076704286955598681530463360449570468776356635616391291029030830308304408739894222164911008368273430226255384611954004297597122133365961522266321995665459405170090042724630087721608736230110435981034807388657312781249267758366713500539102849374331783639319536886328327578051673281990612760874740104523205639758051786398095949532855175467304401892660059416614788254302873702186401456764827178867413564982157132362556536792220648842490268943198968699926747707623502234091586463449315947623675021696414632374246653775353549587561759663153736164051613849057556818825446687339939870741826236318229883033543966827846134679712913762049180676173726762173497057114550585897326474532734795637439168578530351206297809950477599925806233143293431040814396228879025663601863931137709991851407121906432523141826969748583183689924350551372560602367294395162415885319260950133851727071800959022314942646613081530890356812522929605911350419221796623813858027737096445848463252895470219594470531554737602322415111090804598583823787895291694287015813907840727017997502101607600777615385565976402483607145176742346630094545596686726489013314880304467279611960532339193985723832139973218343815123085006765724376038717342458221363469783674676689799413733113253161658146787396571745306680315420022946177653456171302657332555269555337877011915982477446809392564253679553651779704061712343581370579647653183327719898483042292811173993261177220020913192799471992546507555557947184026401311316122107527230063650263424670240934825278028113801286413517180370886030045590692144961210918292593562824856340320956120639998424763724015087988757968517898083872644444963176048191186149282150409427142746031293594182356890133850961808904243921686737725106203082722624185594933241276463645099945927396094446235665951215160213792585631099993580863367018062760784529790372651338912735869419745424285877552708040581909732278827289285126815378433516250762468364485852082882142637014948271217495685837814970772530709361191059091196973284980922965909703553137076014702668788346586330984839311667772791397831806834756757498969134928760432845680328097758191125679565847908718429351628591993649612488663260010966738008520983227881947487527863055996470138264469736468143669356772613386026734916623811271523902844579388852685160013699503980003676802907850982870936382715357517355658855792281773042575148310674411215741999345416396326987906373122474943449587820701067386461331060492034231707310610521360831358076869025304281811905370298369831125597447815009657873324555885537706632534167025180093003385905437642191827127575217280501650933233628800468178962446592905306778373761414437488174505333193073752308432558653368086389034517448903223667045940534655065406324492835087602713621100205655455978532176552552267882904120771555251296905306594284570471122327045794225201769394412341601766630735355455785355206401191848609358507939388569551820457361741343011777349373067282548094717135589434180133612894727793175453677344492971438756531000977830688225261579988252818284031608543471481320623633300348647847528422596066528352939627310808166006342670145663664353673481311766560937205208936403528977496284711896171637367754229310204342040783832006785228311231397108994373399857526072255185923936627036697004965282518926169455246813148326179810818518748326186551685081522156523877387370308077850889089716417179951817977122193014521825695731352202066629312496482110631707092233179120450643479369019640368845500324140913944299313440987633038417091266567113484972029270537460561746051942149319823827888592962562516993555813776151140355399239496729629546418946998169179138338812744261853461253223900768287766635988866400858852383099017219416681259597002820118084259785946833811694426479830744520660545991604056835542414934536983991570528380693044940496918116845894813430352074250748794639838176590793939267090444939479345655818663663637467015495308056944837271655621090147586518845792293079689722131455801603102958583585557203012414466166645444226017887793089872046606854264150729582112815741705580979108419058778296757148516457426629354954363514166462976878716036031448064857583495929167184249866022456717120294978898382056973339370229538735575071613148979113821901148315341755917990123746001829630964052204214982961603981741001477913844083211898095607099591362660650829525697214600907530788336356769874239874004861007379772215579036733146928754229681577236385155753030563070446768891600620283575795641698353267528920170029717652789032252478714304389782035812072730958696263238404084805488358348212944577647049952662577073832765529742064193526313219126105927746180768674316747415393076126713676949310452730027558867829466274076104893331570285070897713747632745688017476743403435887390620874398197342408910948605140741017844487552698998005584777405812148667670893300120700390920082426264438391994526820940557375557950990298853061662869183536596728546701885545199975348600709372144920885934058808927762062941372187362786846879446622059699374810343161703853105373382064579826718964046324879121875775136322559692651330522308246513961533398465335386826066632659600083339658264318221949485688138362174017801131013404685901783517743822817762018132700695500521507684413875363749172421746153658422350986426636358109520982819680559683974611374180674706056876639134683819577889170181028513946827304719406620323178612290327056662779416200977895383305899613320307871416642312973953799360045335268362413627847608222035178671867353017579810341816925830606972495723157401667381093371730282606207717957665434784510631040747809477267442195694754315710678671826170742089612099256252640123359963060579243964760612204669295708352015084647048802034417635690641090255091428050108441367987918377165444463005496427497842069753424800587096276119401280281761934368583718934759020060747353035654086642358391778672387626146179633034153886078036717896652136268275429507496360547117432900075065532046124057317726299732364829335580422478972437851998081061978863140943998785987071054041029192686296163895986807135333830748871297957706703959371287230578228280274365017816182124028580866591431629577655841514673709477756076618573532381829485266529146635061952720474841753279896698607513722405546011389525796246749233490327411256105114408156333491759736360044902959391902122388218867997213613840319449835220381861978310996302379080040229414269398253565153891165403073496931731041139577107923593608384730327627559935404840378502559020718794810141429142846290394608824809777636938582762597818117249279603676897243470282419631554523770290580485987332299925273285368799967583363987003444410155501126125137647172219447062095319115095552424617384843895301342654168684908294687614528642760565003518444376252671666596040919107436111452043509705099726362288281777334682287599315933394718280317291173086179932844642017895747049087673850440047559879172428707673528267009225582532392888919217411576998958483443822105306074517212111488707037793463997170291497342152788752681688567376767140362184528966136210367414361916220210428391956122969709518284562676149462681424516853618779021413437611015065053997725913686580869205411722347288344477971463752191022471720496426274777355615001784693252993103535321779345548665945934025835177150084142600606134664160563805971497639644059010576434239423063335180907361159100342154940119461683780834862962227805506488147208156382407004740357319941504344758359345823972153782294882297604407942120358917829131838153369314672647953014258863957094240484514330094508245005367005126768797386305272771956476797565286641031054514613372083746095828572809827968870209899910840936242847783630057801512118765503716249426615481281903270295725115117728451755410277956615421482728608389762346781564173513866339154741766931462326931772499542756576481784731458854311131172313432406866506278573838189532874803688887287778603690301448609214539297894097440659347635436571630835280557099304791331697443339177940275022025492201897876931586348251651565060783727203853633890549560745956258248509034135639250820007604789841978385341372076476531912731119539695190124572224324750362576306642599512402359358572655233583043356714442559700993736029140298827917200780065852434032329101940533221159939428893730577658296262921614330755106800425377221734898722984806074992532327597311989092477785706833699900083392428643796538258349591791893277099323177461332074916459431942207693650510569276695592089495236549491965203473919114446068001898123383971786595112996420305024775467964581444727445534691433401421252462056943161605204472279090109963088105067806414986042669516586798956472025591201344616598700634477369968978099779189991664501121618563506481070889711023729475689540756407742298069736308562814160781836888014991460293759595243411011166312313866596284402844595444792138126481875711676165156668191525598862698015874991504452162766501359107642952995982676241404969784518750792890689074173678188723720384316173173327953028241126279635683501621361338754566484503170761713128576708000780630109174006070316366441972169106056192760917926773606854623158350939250469729079423917021133967686832396647835666188757668056044968598416366717681515243132975850466619826413751546008571791246857961037633376896265292291474479192393272536362829516915583962727560115258762036052126889875512870805323231641195353868306371565200423947222535775780272898517299151748431163738684059056845450109891785938012544664157494084222137383415759381926638067910051913503724747036943793129939388526438357246754731021051291081319053352767269581823857353983349603247877732529863757773092187085128770066939687197828448887422668069486971957308832118689686803339405274652726562629716978129694255330583962121771429147527735778874071810302410195099860166405858267797264555650094039881405422181177003217616458194850709910753568814333681501566102827707650749073822850295388654033922460142774396206600991816975114989863549453422349300613327420665567673016061630607367480421137688696898553539318338397859326477181484880487756563320452048820080851011753773336305651370117455588337832454960196329094070542847804562524252692768476393789777630863821752545910368426964271940943891080490308334164769779642959942206423454465135821343823789454131568656467253906323115244259684522143024603360335440712533110993120727698856254301364185442440754083198595571914990039631773165514016183399107717548860684928585869667043149667262877526265552552352896424248015326086122323729033880126127203924867518666740104721593353131533676913224420327260959818444352268787578915285372593781823205586837611871662153463630008669239131617551465236765065659359859524005521529947243602681954330760187451057675859508846630291511640893621247767287894113892064106445757111246659314181156284224223164901230866218210642677245852189502345751926340998025678577317696773735526691942040797528125456753137162080274453261994207988350506603691454548695727029421667078891371308535501919101106021418916398677180682615281817829215514912730329073271015050877039591761244675913594681581178177871905150615025929282406819714065413355557289323688428115126638997504394803091288786684206001721459469020688050566146103260222480446010594336938609194348669701668121217439947590335864217778819393188724532833376628566440496925509193469184870387938458792076429413223621316624730770976065034376741280844168505885672403838310284912008280697364211789055664944342117653209847391541618526468786896354859394124404973207089800739227370295456863453143001790357066155433513573481603113044737984916950860417739001692475791448729679695027578490846629043482157409961255990431103550155945317797917027033823327320069717891732792972483727879482636380811864624174269193644484713912557387666339068961676169338270209595121507910940233523128074799617953179491068282613576822072975039664949905516882552348928690743127564795430356544363783826635550153453005489457986136577568678193045337637703493596797916229455158410022761700074995487271709445734390676870274020395553122031796669903008579372318672905492254517750252471439270372242621611318557434343087165083050980671759380179078867214799016603523237415027311081047719069541826708829812942738882389419436734212587197585374692436552054561966476620447360928986047495566686775604364878619001295434007266447014156434187185768558898341053784083461974052598786102246976164153511774327118655300310295860782605653560705049685808093600913795488602290580989854031663068165247482973229375485831533389333797329831209348937692938700019368815259587141832822578172735127886441949336589510234980142798445069484439645174571029363189276224674573908294089394961888003820973001450236816568439171415190643113620397196813173429187443989584408231295432115739150160556180767515558595514242330815933485747799330955117061845346261646302128007636363870692697295550377572718176927981108970888253572171525574747317635128423178597010007035823869433989908843357376866153402303943015732164724616615131271774028461172785711241329969091016183860392498225256434212576852614508953385755075623993940691976320887794636980234297753583783418350480178737366625083105707738188972219832360883099247147302146028530864501028614979514808700260164399295742871973697732535482039605522460426627636921240702315268553120871053080280656432298327953966035698459890720927377340156496830067019290993128802308587893237895349990046196403577536535727031485625743365671801868758395278936850435259538703063437985154129733068718337463392864082440942204248254577703556311023351757990707194381681783173050917333076100412297461623200730572810984187848348088954253963387798372848000886575914605792553119489610895980118310650639076350521804903603146644868735509153136619292671094698458740911183511806462739884748291782478939267438522866289445260531298382049217754860370540146444399397296585821419248095752517732069192596098317037899558257068860306018717122301273476294431385764872022878997510721427714313637036339144669940135296994053062927655873820055718012491547835317360482103328307521090395356221199785859143550787773234278950466865597588093318557743170809808158108668166237666142864672671270453654019830648900670853859036082116595425948349477125382145322229577665200911480886499944244850528726900755138757452026617618957849157222872138540446525004673729945421226211017429096342336725820568940186779073063340853050051472944723421675836644839948725647223272442207674336341819999855858256418725354609609559354226115072669788432309709987065202295269193280567570954249225133608784746206523314053803620427409385661568592330493814116234017556017551153391384435555116109854868029461876585776162508692736923657494028958201840022810127402181200388873527876933886479034860246576239743419119927450584939456952091169509865407615486577728595090167697791511532354224647338313539617195242333713444143160193732427972605048731001270675916103130046844205217436332959700033977504733033292755124170099185922705201044375572825068419255558990237530313552118303759393757475660399880204858783941194346946989849070601882742164517124400836064262764699308066254913965631128984429141585592976567053980504781850873127580625899009725067489051493254702725809037921502063171765910454219799131921255982818857133284783696952643028737832677921476634005989410951125150596574528889551795727536345464202920432769184680509717031439729825952914328755626976536103719879492681728805659837066972764584913016259688514647800066739053954961995031319574137908115940229642993342779294490354858363826013065502890475171183292590083074704316181616538171262255518080659218468457955113154365127317296765868357457449237382393864056939590952833915560727372454334297292015976306362375821641275008029987462109337311076630259804241327529567412450776494118156995201084819605288009610511211605412107383974528480457643602768023572923151059210429963644603094690907671907268560463988344821248502432174827785906228061670808263942565064578445743956827001146636049103281795133750653327964417107287890977426140630771787806924259124020884077474828896541294970896797033750203691697561165770113621441701084431646056316228431410951896277293445172945019745340831585362483595300875769579206413601973387493455273564507792353751548476532971444421349780012775807404223267974955498900503120730677446439228087447442138797791669051345487028413340610765634231201764885383874714582088642303973438170265997309621065832699992945282058084041536938914278035971580683340653898877791907971427976792946474050497259536791846280113140257870208758597003610645406656220629680776757409796446462806598450444017874602646941894332189635299864966268119539420419984767268186961783692517375644740212103565797796216548210556314276428783375342204400971029818557446272191908770094463426172019093257018221377154925211107466880597749672741273036777180759203497939793542894139420796537223260109237425771055600375823398885263185956134560016953588279917366452469524423639705209915989594973607303370950154482179731398928368773640497753556398760607259308198950183989337430144270081918021888138194340319614214349638466671452363820047610013029176854191402288286889669227751471170000777833678385149479289745931742810577151701726682348244725399801979208269146030490678671699243574803307356004574827610706817536618881099732153878511877095601701675992847119996432943887330559598385036174542261962980155660082484129408551145899525318991044497090874998959073317862905533124009102417095595998640034396817316422376419919016868496675122476871229378131837467496824841846162001277748957425356398741079980335110125967143152536055893883239594776151489438579448761345209429210296120400906584819409537241458446058847373535369460589167527601445381278582015269996872435821323176806607034617332386539255072939846986580441733939572587536383257564357915258084350439249513825989239067652936017658514434491106805570183954901370844410498153175115488205864106783420747226868747246630431302871140561150830430219540016718957054482802496321881354468753102309902788220601348304037649818922021642993756707184145265596240747276866827996421014971490592974900006524920120106708506213843250534327292373717673985067125621071755380617689731569657269051360350651399611700702895585494150367438935738744810391377569141473004856772737541500677054995615266584845380827104997735646031410400643381823978285564680274521754332485339010777118967145971060949551690201420361652257617285036146745769241979827794444950611493059521537235051934252931647100971955470678469868552143308074726237810347669921561723223637584883247721832363972891397312475076807246546803224812387236686435883512900951328697446374376925858690527215586175607448608248990968593789581156171580252138223058193428113598768262340782373655527837187218040040445416617322960937481348861246697578297992661064174507348334161288063872677192864838357356611340364880969676188091661242102892434978753959864574565117401599206151573720123464383933315259515957060660004695892321399664175962313086844065595684174154081140845543356001677892515170516302679780478295657575135963987764373567425958184056218208539631216241175963497623741968790403724232795229192589396913162117954590933898246260785396317704209765612642769834124323494830784285704633425566247156846504394538989616360718181803529838194578980552945566790777531454073665774036255429999259417874037418591117994097914340193614524402487843966540555296597516942397767435956478945939442541701746444165059297087825945817781180513790693370390896913501629380737254129631748629847116943534192956088826216421176130401940814708927729969432240774985302771586580657532778701173102785189864591811438727679944391567051440618152163991445316487694524046895165745564379520377095361667142063018420623668112243310016893555833783788606168443533191199307869694636310996686703092700208242320636864873974380582842439540272234981981285494675903875558664349260205468864510496061994774986413846861329498750603309668527958467753953023111815401721024818763546662238431922750741457544544927947712587433810497568067598978802767531353546337156460612969611981697119384983203168822426624438221228953040986475342206253314573741178593824729533549188210748738135186934495628890901553099524307285149152504604263744752988511773861797405098946647887517543315775408733367075129917560407240646596009144877556444502153831771408848497905228752927940371865534291049114332608056798359032615498253698391757839807213812747131722870893370735108525756532920286868221617379969882274944507692414029242425305309584801795372562368531131080517092138580199025805295450176642315902735273768815192507824429910303977931059714425673786488490433624511604632885264302172720347340666737988206824109469800291491051218434578248486143104061738195064126124913165681378831410354596357257524651061649344887187559306991331433895560413828090093114635518972988292770352198981399170397500451589504057827327810433595410706294920035389938853600995956885379922370226257529638020509395156392632776827428979261512579936677861939340460958228184213785540616085050404175059517822917510390653272975898868725170787070183672076183401993969322170531675183237361967300354739938016529062619950621620448687644150866842628302149881109294606602197195862437297658648342094218593199920866622883185178831788853293763109373039979581763715413942116795766979462594680490543356676336275879724936073427809815080689963351965451563801871162597820572635246026859026799356886771195329801295462035929858564639728179686469874210642327649325303357807346404302462182240886816940999758397396854204876144114038635853642278305823904048709846329325760486816525204744007953672244089821278670327315337317978902869210988275869822949969702789734145463977636107015186883270534073717281925350525470548487269424792221061800219382123610225690061998172565871266117467550332392657223308958953199571350416540151721160392607675665674393374716818071625640766490470502351438359602202816613580888630852503692836745775979263886278546147940248088365232151013769592719779920511657901947534731682894613642469021798019897264517884606554133614567669682094641549971087677483963591792013853973306437681817962299220667018292256981217729142641634089077257037119478645542220912021378551339312701880867574950794661596474459922330823411459939929610807335284277344769881567752722503213070812251037401331935076876202742330593835171922209493513469100929893071301137089830261093697255382893757579244103942683350884862513041910792860966475210642091512405950262137155043547064515241906249005100423413562097524303496495690116099492652233932676117174565408526320096417880626510139014204750666541627643524004911026832869759448339599830455367088538106022538918860475975043774237739795465141770551907141794976700487523051134308556020158789050428497989183083354003939747142747952903784972107728856730178015140580443690484090563008012200984617146041856134685540401517823130306343119630735709053129733625941914964632738984058307652188543561242489591931168511522626017064301566776509411833627761446215657269798942999595935870757455604454688209044630993856419249087198631990056176382518099298512674364486631431792948671913242889211197706232936155645269471840331481242834360988226111514107777417482808542081689290842437175960106943958460166413542176795298088362265312349050130893348602255383881517039295560233239772699277370958357437350255975237031156077107977700651923803271263528341760477994637655509839024674957423475930786969044923609897785105028620662537390544527479834434899929553122297333264865433560140458288761437802565137601013160213736896368185223691787012937902681757667822055695446392104795296668251688600289841575967366801145166958047524362454238503552726514283864358138345157649495480711324901674269538167519897696974783685874748452182841344931869297001692238459916026003003638680851618523068248849752953638463668788887287835475851811584819323148467259106308586795542300128137284473729644253645396418146521960843252364990968012273206080081786892252462908196944386082461192160738170818824226670069642940676272133194927150539876337760388368800823073149566896093189741600510330090442919838651407537948912285935208288822035881966934991688695850288956907496931433935089409926945022516169152704406331601722962006982876520772354089934046484599031295747847779458661673202853227315728946175935896144344977882347673177548556718337069366619643832093643887088672242239861165347742043176295816289776675258246761459922530205611767258406403828647140347531110760321038272945791870651091307022179982166500139518020584659562867060300760476703599539832246303929471633879540255110924377558517591393717265039409851245149365563562312768123820400339403785088345814136126660144312447287886738263345026621974292370683062216821279748253367840517667449468457797041680818227038224248823943275558133401525778154297898615563760806603520798117447101165188793131576527980076781014566808903032739994718762621345887890935063752530946223199767578457823589906244363373323948792806740178002025433061492491706918373088613852202880096255204689479333414023376572195584460336153381093901204221218696941615577796737268842149544181419030535063938027174634257508339632737050711841294661925150580249581885392571010878907482915497391397429650302567073175023654691678622083930242270588975174437469361079645350876019221450606652542092064395585896173786287855679540497160274351493394445448685773936015690959503171128448333241973355913435121068611952159043589175628691926994383203862354334533852695958125947312960286295767610500847374784793133767597072054716538731164947862659950186526855300040084344446067357562844546248910241127002581972400854963058433682639868900421926517007383141758164338486363067327796544010261022566476415003400538302375929055558672086222557118982722317723898816057883666196562759715495288429719847524473663454045120908944119653027640435454177107238451141814024328363802194353567473972015243829037100574580655833774887331603073884398145930636294876914855539143048911505599827437845201280997586997054700615929837597221932129186383958608939361418324363585682393803632820221889709649704951366381488116063141702192400025211015770011009501130440249090295702022406111153534011189783054958643598707390320043209886760283102550683865597371061129178723410672530605934553924477603843701136379518714145816460988918774490585244608977873874923203017174855946804919290930693187028349042870428595231019618783147313775305488955311127916468693459928659243602024593700042016176008180095510065110908533486759546522659172974613828601620336728214759204705827850965982486131186094403573624182656432595949506937754590070690859272290029805346281749589406977807093430376070524012398071526293378114031826116802428370312301911718609297346243598002364368157701287008908367038203826786434844469869954684016048582191223897024881297781795841656210237642900775609211435012059447475104157015006224122909102428550352935347740267589595621977782350831004380820300249884338767753074549207612891541438894083742479303124143439148572428689303306624811284634140790221391605993385976502457008898550438333114209386682323316997107326284057748905112471219286554371839696192489564039556319389590932097093699003290522815937167172756337354631424831692964087234093681985502846426051928725767897689385971310372643325984137068075616503840312463946041147507954113325012007388664501517069624487917965157495337901339139298383584320543643630841969387209099696632868218507266676944181793817695466524837831263965718733513065452108831130237436037157081856156474965131029817588197010820162009008176089142338182197963889739979142141028667739237889725015996689988539920327952209738514785641217466598427933526171449317176033461867984251874912872356221027713064397757485576945523015748658813240971644233464045171922292699237392604274949484441665740889862883196308714431062537683488759574441713800502143962532832932493216540255578381925885605312792303188653161434384571610836889309379368407898770005583930873584934399977653175248916033113553758070762363306333177008568328328696619564679995400370900197112157658762954950463016867821971028466536685102783053860520187055481737011683455907383394966545710454656632180843393270122616219125717462510580595497772708155338385690962145297605285349034658785539539398567460072931011116039805054336621505788805469166324892907210672904569187346543784121497641353753060335597336970135423719191332566758372028658257575957065693770501997842330303895164540464316416613189117004743728389577566941780378187838929869025732661050209616252116263981248623434294211700099049154416938629192006790859760053783991271745111573420201758543593257240508657024804952049740353239635276565056227555243225656026732636194016550203298029291172807408703678505518045605047550218746262040101425181121278112598153748127100234552476775382729495700872152660698536088464043126234786716137429827917864489123311381190365253664349630953447760472630875336006380937461167273095806770003582729185278097614412092735591533814635243602151227786813642351959029591549223498804918338618569644010756355427572416769673230195726126946156830798642256093234902361535078092776032714225638146807096296951971944264811553298995899413031217704630721697372962601500845768510400845347445383877549532861108142833927371481266164657167098090593310339444149323889009082662863651470110748213019625860499118947680597325212955011974593515729316929565526280547625939597070926313874293314430187117272901118812673933547228229619319661567521461373397140934900678881332711926275594362856686338656970178169347580159489165314514149815513186011463158370223002276266783380335252176152779986980309173232791133262857451280985153870327438690314536363040132218744380080735106156698072263326340279507577935382180759286449053806270701639306127120755073891596737859838346857068834564555184127646782827738987800320161117350403215433294892170724037931600157114588598342851392744968847000246155410626341369959915957623387001450196367268426932493045844538039483689312806371015136606821581284316046553637336128380539442402177053601004953461057292694042085376630568582119665085427004621875010367474017916021680363629417071704403816241830093097676185037892717561506259598429410491329872502202167123006017160925904681651183654856321206108260361387889217799844750716063910673683368848175057730431639486711230315285713215146541226146960771309128212083479793210092411806510695475929325193518405891689716135068697179351402187072625653875148157373630747152574470654774227397904985094197814507929735509317511303329293246502985563493308920427839053841962886069404161397400097394116092043827285087289207432923441951464596324043563365946844133432883968455344342996991837963247825213276110090623890947946425464804869099545743141718657997805811649825454642481198150799229613321934942976069648933162037666295096572226053097187638864791377985483815696381254736132128636759168524220776951555168007470604047063174254262675365304048553261646385434360095437548818077972495406845051510255777890046321352989131937694415982909360104564448117737405697862436998412239326963522896600751591395800595501551625078403076699139008868547775370592840514543541934367091447303800188268309559409113287990660462473698264832030648276436468764034335302557886178114379477678851860245809057019120778355254580351063900155892188739792959366099441479333551693918240193091918001570945769512945332690808651323208600366327206110578285575080153410332664024073535247124492057101243726226734662839056256630568989138119107093739543915513175302870999982183858518767689776188775977845137316463039945372782457593397107106491335489700914344963485738357591567836530899360298563456818683435635828823548627434796107338638899839424083192812642084356723333326263379485462019175263314819137918987841705165824716493351473774639094869176520706128084805502783036465584729753544532175880475945022461104066447493151304671299690221047208342580819552098737950391436412034975538986931639347145646973700900953129333764054522527300482468759385140197942283189371209190420244639024057047571110261898534843077338355002628260484657566632526364862117907514463243332173797667890919553136088645180368837209558621300750193034012883290912955641965439665327960578587026328374423105829127226387693886854762394868680089923936095622410263370182158296922053892705966648944477956102431133595793310044267939100822481924939269743827589886217496832465771541045124624636879497964976055087398261417313206431456905404134549470327131843669514598719076467639209950826373051904490098668739199462526218187418916466052693240249102825834538459789776825955913894114622831433125669290641388962035916877713761903595549856193568530839524534127050251614552666001032841026039566478967463215595732472426413643377902685153632818051835503745945076743127719865674141398253552544678899440467683547883353826516601772444680551993287473169425852351128387307196760368736387857485512251598981813662132752098712373347807019118567916103623712393823549170443901139473711541751654207998558085062411597932983815299156690737738089895887093928150626214622156210101233340033949227240695807003682041779151447640191350533588837132989221214986154190219016524919778653026846090297820108792055087524541693382811041862069751534705770141165460055811974486799846058252691705194728590346847171049799097499689850134562751363412526934737362099662501642898722398346181948834166337502786896245886314452544813314889027562563563458331724848814124466566670567495414605952653896354295893389602657388120370656391178567792727826000056759861701220842340391737734983388466090065035422349076193135239514257082855403433967837749531892708647164612554665743959334237360794449434629907549098675546449175170998077583595448021714968079135694969286396472873372112285911842582866860901275558512709428584886614982457771136446241373593236982864177875872830306487879412394652531106858223252272572994440161230593155804102687187426844103094308706590633572045070909090582588560080870295319281206980144122768413203478484651072567694359203445396613169114240649451897385813552208507737703936420703839245785250017277072075656463791510866922670196588379473493369246377653400146713873116619057351618970936829513554274498208582430655639974757806553654318927545633194612847596004546069334610195636742755624116061462549386338867882053523217518588100205953438020456769231846694779526300862472131270568275192977012415512661109336799431619812024664367223857008620962620954241463308912100457458022883185654703100608446844525266622057603356298240347905950706421232307366881480536260339474463135943731436505974162757547638527381131201520485456266282333572381659370945320478198222192976523888805781411381134885681776382178097725692017454826210481093330868671513473982541520097869082054854113512324269283906097128519069843885743162933871943051924923384160952277388087214729259589868207383318222553155587723394996714344018434558421002762668840283933853668343906581671139746459329403882998395260730313503445642355634666981144159924017954417224824871695458379353412865139418664916702312876125121635780809802292328977582649869946541521218585767420460558992233528707142207202995724182724223566244621473895132504820338189185727530717241495827654050238000797524526430125603419892169094402510456054641705497265321111292637713748321178613649209809633036892329842908320001574635982276256243816227895976577142985158448437682487336438001200517308419006905367157353903222287842953052750587715939578285873019974785888950461698519067725416577220673471452039335019625149359325972618291962942521046719296272712392691713640135737024410334201343972549695921464444940472872635361072311519553480034601989521507604459704400131982662509949805894154826184626485650817531425326712992584776666027489556396639757037011280383272167326925500940460333374882192107591707225789126400918814149930597207511946181014505957596155261718437875892862290873237737261574454561359509602644580044602507330073433731575780600671479407169653101139691019572481460980116049655229599432447160069263910343720696074966294364559867053671564552491121487568188647326772764748712789522187515817076883810443749522867896728315452828234628752226518696504539850880557578552876939358556756598625729202481157548395429047373810640609127127500959199911368419734637434585467154546683037967527603906128127546234189950227150537945766094871677748857749507368493530644485431858324827977921481975323885977247588488208769327824541587284981710399663264520971863217915875841801703679306062753056875364053118787958565485769480537965049914696128513634684264826591863694909818320240000855471162700735923970684334738845527084559247920814518573459420060297411056219071098701324682585401073873488954779607406566912352463094908724267556200874792512255713405379271991243199286117147734163697279436960678349456594318916414046676755295740156124470413768956796451858746140151781333839425845949381284914219785655826295081535426954455069452969195261382224261016329945083473944630330857661242549792365177662431601430999469136298575139674634265946980774479544633348967816680443457146080489410501170628960928585920114513391530843141287577292501951718010821684106146063626657423956475287408967391334265379638752904124789449092713072536412099285849548854498407712879728974691920088034770781580261937700838184747443917327204628974577001396851428067852412695808336395359276754031470026119028089169388878348085784704761546289080313147810231911142534036241457448327170981392765653406649140178103836355972732346426613707372579112034569981698588677015756831096038691252163799704011129173265308244811509225501690850705599522114096462306341217948980381957818485919206578701740926870144514897448098094052378174382909669034534430415128506907274944058526822341029558223325445435092818504591812552923802619550082230426910871427958918940137193210454884493336474889133177350294648764533175457851101107787275436965686451495914083863198128443448691379755973891360018690759320906754388802890744963874082383695929339342056118224690705642314928331550964283120744308312661909783386734424414216578527514400572968983215849578008132612636019414107614276818816586096775086300795799577072520989564173975292524517452282092243146968074458935071204037821064079778404124651313575837624823715602624194329003104417205849279884732335767132563713820922548048559042556980538992270235502016544216684367143972703710501192656643773602344483488482088385005165734987371724107681541828026034778467056032759972183454796034930657065030191981311418285585864968271650391761296301825218741544850092501998827967020871838200539389556278556562404466758646293651135196242184004229098169578266537144614014462438499939449366129153968923509903488688978792650268730582629705943450493509779879963223918850244431358774810987963608857535670335987908731086466148847217074581398417478907346015132174542968077374887590254631364276150923176890169629972780690046635059960625938341426327677505217781746354422690798674568399686417860380368102738300523436028430108049055388061291492679580123310680694845891657112446366728151369534650967633448762495708842962176786473009760350909703700039879153017449246207183387633677877311688798291429562610209203591466707343341705444366120219819502717688429891990678616419747031637603894961546489592264468364891469162622122269095041160802214829642981217856212666396244762909419001100889791500957371909953799276093626992888087050397620629889094058284781601186047422250029288538871331209207256968414955184816945786042362488891662864959586427532384225950646444197486532467558608336588697633201391569887681709270739820003747422299017476693135363245813161507492912275407794820893083476638730628986317503362297462515370446105539919034061060924727289077501702398850434205710294066721074547359250747981261256395509540656327490994987068570844644012841957714813916967207411264112308359511932424363234114396881376187430768070391511293235669265075377616244087893013777903778049935426383483794397928817042823503851323496856532856945651639319188243027249261801526011043779450335596360204438165925305371394049524061250834129060870430105722610468765734418196678424790192701223394178709084743835811342460319108548030314626575956574402140931784706026885693005895313747381820552515289441588289940787020326834879255713948340246094157018124765271580002604014961864315098292569916946751369713672177956579214021211213807170722099581913894407987911637656146512649280288514529647389482046249310700854618245443113823400729215610573898940181003847895114588454285041445928787885897075498441230248898468264675021661023845172518311307462110732919460459085995877743990207518283202611679795094477660483904655214693937127946327585709472372752754359701273512440515907059646028580396914301732785564719686996547924534574272726890728289519333347566899669411056011722649205865851191499181430195129664622428449641757314208734837073714637297015300587899239197508428473443790171846262361204430311214851296777484867171950434940254108364695180857986777339038996281911821516797815144222625675903626568389243016962660590819964437573662059160208188687600002242179210213696271947998030690288815175376770554145207119101483263632215099659389897226797954680575368042253193614425901200153099793408123484594845190428000546298527611663309947345374882753399723111704647541556318129096160205293132719605196604490664656163716662734224500816322995924859638314982800135570404249348089641938335308434067349426325820204391929995606837623016913574963194120992543299433293939360113468712992365401170595527592413282542810676145849640916906556847823375531209599574048072232562187266648762405373915477148232284256843164880714490587007903662861808211934312537240683848826433894966033653227013097081900026080637686067948360393224193142937953094627560407108920190565357408697243814207559146166449116128712661173125473529862691480759690074610320162971377615670634353663925027252489972329718468627985009465780169511472039464755515930187880183029824946302463214780181189561014698834104935032917409869704380368744166387161338158504696986364169121183111200510570899558269410215802405309884807794028037007046400031584464115395217687115291886013154746527564733133120979923194418282026801207484208658262350304472907890703176482552512886184254128100270135707600110409561151996783872953684357598332925370051029681490279017516146062116557436368237775546523570341514960800610413152413408539138716684737678128197815622918765733313153199703451431502628746870921302621621465376977030930510880301754177006940553698983889429704283972420463207012026842312550222534175256352455228188439793677484180418296164134902057797825543640710141721973417413501438539547040839221543152282886773067167006064799601755722986704132009405485542211323735948932239678325463340188995928864962739252470994646544298906127301322138718337009186664441863576144174650989597677647124466370415887226119446617002006243075480738585308335682351846545882100931278923870009030656180664646040996867503058584718104782075239446731246191733997507948320427915725964047592432268020552595069033143214280798541216508176142012980431949848828852226769171693467700688745802825933782996961619433675090764006432229163961052986082213753567498651871353511677673432194158597703905390168731631481870759476286364371640936473870475565403048099772789530906049627404654234972353225174158656048237633975085387629553381301871883483762972334989497771979850224828427278151237456407502096660725179644009272136921631966192554946963404113893651223117030972572899593326065312733658608760496840868379119005473507007062112389224981754232145960959306834018075554934250184930886576629799782947727648846945707416365689345716764186354910865279543657728924139653066691705500321295346150989617505868460993599487985571115224913257511899817731463763512319289203234606810726183401781532727067396266011700117830517143228350568932437253727623653841067015680410040492170551117774680394888969119778544449763480313396419071445704418866774964289820084244137426996416092786001342833520829355606557183978732281356989082449079593440759735030276058463853810913677138170518088027928331026444006518703573806124232960202883272401931212745499510967480369949389258583937865798083768555418365923111129432193756926936840997816276230154524720597268744994838361170708785853696419241020223295099904495446741593400845406887305932219238049857435394924281951538987948105495578226922703124704306902766759680737643580232445680605390465345442922917207589571274953835508874215436792961730117811039221054748667455669074668194109017967515077846488300379307174865600389944579068633090677151035813634792970555781217060590966812555356023837855277892696972944005970871324458664548122799008619435974172420736275524996646888053712464067746357590069567367369699755483519367387844885316288400172088235257243046160411448013979807373890312097979478380251520140317356411802855528698177131320888099484864307214492730923136840203295037977929482098231260429509003038824335747416556005469944649091200694848200581674607865419580415833796161009813090771712146559368096325037376330407187158385315587372844253571807649438878662548323338803766359781945530486334401181712204710429324768420292631177304469957184371130034812566149490717550644578939841116767335290435642713270097988763478299911521737031507146652229935939729463714321447073865938882709617512061252207254941567250772272141739568852988356028202657619931011938896119733821984712798425651842554763210641417722846750588007240699897328244705831887105815087086554076284713763329391101860304104803219198734449369067629147515603842658825168495201636352254737483846806016691272963831739315473711591791431447921214646087788401205890352137102616929469813772576138207525016702636027596237749282993022480529244820814196393859070302776829817315403072083808046659800739141125783528559766594064341386571000269696994880650020067243930530309882275039204467718568855924911612366961727987665508866248045767537011680562744718594191154356120377256435955419561636576085309387240892163096616620812170019558422123430219226652664367072275883066269798203202933489275177511388675687812351317874313675734769785941461755498585918647876068870205512776329684953924828902940883864178756585655290469732793614460788272419421006522228034883057163068078820473190807933976410848634991973333350253922022409740614841483616619707256895210132909370308228434004347837711586176933151672542855886055007640637106213964978856348527264451059295333857736486196211704319949120472233861851764550137724722330735630465671140136643028346714409813797924249212905516219467278485154336735597837649863717195646967157325319945519081630937641734472184903592244033823318742026402354975592838826621287314298350365039725991884974564564103009919827682523047756593495576207339129884437983938558149433307961453082372426318457085599281547915551424159218263939025436706446391712617599208328805601879065471519984966532797595477104034122424330833266706578723373014791523183839945979490072330863173943398134358868372590184311165408131497638970106908091868062488056515237602715569580194179736430780203218029883611839786304406390700634220569382248076748963680699509764156781643915067696940252269649162247012779908040829837499868884495474333922103292084698532613538099635371643303947571914215618504322921661564509915358150866762197372930036402967728663898664866761784918292464797069113234289947847803951040261991105701171275816123752049194736625974217782949103995555526487863407064602526490795479627081604947372557296030765686545371066726217863009700264336518495892598639664169139548189641175178927002873664100183052397251124933851481605940848164071046838252348506053363098557606322501856261944854686482877138024080934185367771438040303109372382807139428169411404452155268384803385067010195240537391720115668305525953416152770336974544451872944660637585071717920861613014317269608553222218586450220936946173814137897567717582036400898651185878148600630411348622526687810845034723727784565720291623390731535359249891998389412943809404441302091868503558192548666216039687677579328415481229573455108950156218609883213052239192446438483364992550044984713076205388485126464538372637983783395691308138802623924796734261697739005553581388489889891921767797608186847115173278753849695202371175580074946902975323851874619113048392786630688887779594379817918459971862779741406178925365743658863864838123759268546084246912470286782114136696178068711156726534687036919602771526330781751791533691552206754477353063355344999759906571377750106261552584322156697356290145935943616514270307895236688949793413888684487911202229071840218095534932755542981966888465256904986100516047200858749027167254763009316756331634424003041322125773845228183254421594110437220103703519810170388548969664044685997978425277428334678444649440681297887681252652002204260984762414746946394821064891770188897548856602118406762716933012819247253075193838078315632865505360360440095732772126570277244692036974537193347575216651764487782226158908491909984530371149385363933593586255973769677287126607437702726833069102910481980000663740315447834664299407118638210751697464865805359983918408938862641823721160992902929704583295917146023420655064615675131083646414443198713789653340815271086731213488603475847330025244539226636077051569421067409733014782396657504042479092502925412235743492495628705075166037790635952900447717644681378566877114478218593004774968372174804546373294700190354154147280226583824351986309277857801129496382807724637523205636204688796770934165825215968901102531252149171884124978806616761612748062897260402244718688760008721062007327833939260190839951513376865482578833179012414541212048324971174728208125361113665438843047001937658787928873159153061812662927148523199315460858310683926147877888746775090693049030541057186327943108273943936531465045391748845765955948614803135781754676249439171432212321435200420211677549262841009550763942723754207466969837808612329328823549580434564703572461009635168406846183424196966115351771251102298416745614921294188669769249761819533841595084638635684677223735219699915727908260942037905639660879103898179492227609269273159559858183340357009569262198572470630537636363655890103046471617983681395425339379608984103387376757496628456020890932712187012864252949499303021605722869105833977642659487272372746302423362688815106603263066065909388063914188522864059179602448401178821253335063733593562119903221556677895649969744979223585879295485458936789717716946771062784574209082618814234028427884724533083751933031233891684056868766478250530487192151228610055484027365549171236753466120365109484017029111474891823335505081993951579383304415414632816702647159241552350675251916950572732959084533139628176118379158432823306238844627244683798134301989519851493769221368220851324587040161389911933815115040180333350875290898043058878008465870362620272305314617902031642755858411238668179017977200605055167011598271486149503789591717458313657845763341572538675507176296664241807273823906188481039584057214379717356970604477917452866786226721676229922527239500417510682328793837343586552204326648651607072566131173737016851377827063627712594936301453438996174846013262247860503201803612745081147918461791852261747084964701054305091290968339273477394495349664476644146682835107915294482530890615763845971602553591180203974183162223427850443428541228463533860928183551699920102158538600737224909735560748186123312551007430147478942412249700800544758110453653786040907982501051315545236589389480408561083172986599922381917066721232693611858168552965059615912350713356351949191522054431206823637726737644318679313903562186714399486561324441731783409704198672830063506858078549555338665850925458514236106527171687686688019951508574962962933135428094013642824011043986865969574839638849825141207562390866173723740384540515236351850287228031434231518941826148976535431086577366960311284127538123057043033149077144366217950459960745431953584431478248554520028638938044865472103561829738435529056002524486274525295350838120088005160445205280819205623820933883707076655635001382035569349022614306429950638995298101530677143569831470138050106568191351477360600196739274130588836795191850742004063951240873436461444233435599527998936666330275337170457280368146254287934022983507856309815835304613721492313938660285197961288325031761587055348664651227796056719917100397361913254184429868587708280715067664664277280202789227397961057955937070698828825594032740972310670887763089636783287495024566457904699613838418577586616910354176554771408060937363818358836868951672557914861029882004835051182027584065846318490137741164817053444835138825753149732423651044926941847244979724118191582372215913132362915050249632422204643608272303057532915849048433721720648000540304301232084132953975842248232981932713668171164063082582653502409179313564646711894507125681173609195347565860170099747693887460869119210803965293072180438611940588520593433767069219726464064251844373089868311023950134718015093905824985559636751811774123544197079640888545502127419483091451886532939186786430792730396756785029854150762174006219829081856963399987788524776246820707740511539086248964328190941453470864619929447962142097634290874426010672731012554398704775823899752760178326953409064534655224927005326940913035977437500664808765890586501306703454863738742346708272755788171608887206269778392238491246541998127706042308611086702777259256720780005101931549266691271696409548683660067949937889139018504440481911665913083746581409745686033805711483652615812238437029595391538194708733025727374630432705376931818952302383507231656244457252440610098702153506143067937134413932321748919766654376096975555944623808966579208026738310380706831041555502662578607275934712902712240686201160825907856868192320945150792850890579988092922895880201486800069998489035784302451898444017256297257268683892908514436780327607850033463372896615081201731100657665513625358463134267119399965718651456142109383635451801723557245689779250469011854915756784859061792663850660346189848854286270051136450456169409596034595321938503657521958221982694154912631254053536787732517222721718809781416274665084866062442291004270561207768366565834159660085737570600568069382403776621136226779773632720485370876967301071413483365371258387943058812868107685652683322454566031312822250872283876476038250289080464338849642635032710064674470022494226593366133641880857213464046550610465062594399353122192860285876090741736943360502968795533996924949339146799909900593374143892943269184885429857130507996005542372910181549896528454395642163114777878588497092404091160411690090884535297597156452284777133504150294246741095277524934465784919057711093364210300934252964538402004614985365637468214287453170656595537008508771175358978120744860914776711805342379298561509012833613429427076506886465628549412701754639447559629123597140347264405239607462419623855983014853064625464984903566947599691875482184980806717788797648854809954353538404624618448987582485339312509698863863033469119021411298749685729599983612955575138414263592773189856350487300607019137132184915767221834173186425451219651202348662376508792114017048970551941909978451944244118375569630147342962055409985786854000837321699837786701303766324703611055428935397942897004344928259910444224926820599137653201341670476365906585761691642676634079093264972031479638156078084537342817034224495786091726499278668381765157223190848751852533217483422145146500755623269707739135875804843570871514033997936755118769871150111898439483500766215719363341369400303778099202329914193597798004240933357221748123466349232643429499687226355015266243116977452908327169380709813535951664234742436994702200409899204341188188911345777125840051545421543221780811004726590700608644313464756242359580650957345926082370211439197094194917645049625309173497261237480235207960493847182552572869989156189169183818634615963795946077328353192430755173003511537608235950633281031958360388534622919911561702813875599095019675369401438950396873049230985764520759805622960945386221706955102459041705617733396501279449294016679989168812042145252409969412262061660977282075653318439011166660895705515052637391881017525609571853802269322092545488009130747423137165947674776348251610752723725185613460097283723839640570942309470616115988781610914958444631955688145263403001306766953779824764168150482685259100369839086216789799377967486378579471294217493782685520981698972647661955193636267215593026565679849460910244922555302358013789926373531762210680373383646824520663267799779064905470830900967124171709357538746024528453181252948098005076942245878764276915644274857507868665836992228686201594543246011052702576576700672554060089950883433221329941600391305955808938170525969293297678364953369261109503175551963953053798095657883342915540651602919006392876968069979455405612221604511902216011367839098304353112851927493070863429716123433625050272726691028062027164186813392228713201662243873401619106541977213435322678593344055939345002895170616652314405492554069536757251696704438388841367250499040008643732509294463759309806468640210123298694173897296452038200422954961257110832710289407799514292572294047098594415305816604577071297616195059099715330015170330719073729943456010527805306076128641249626711557856223135844003360100454559366643901564750843689123873253788013268765837535404743776178342947804175792281354824963906104123606990051390295008338285202721724246923332967451694653690575673986654512656486707822862129576565010982202397701452486279817442561716656199682752556083775607382799049493677795926994560902017014787946251362586837804693300091238894012947225722451893008965497040065283210215766215224397002470223186363322602664052313845562933379605915321096405818024966970380883631551797390710653423586234533893153006002773555368426708510889267973159287226834808882913915309968111078502364108010499610658117979611587801144696594553728118653638507775007629084783901570149176993096427965349589205915696262967477938201529569528912211214378698852581241768473001637445718749818586797684379185326125236336834114962983602648926794826899946435254328339202067801934286197794927662213839707689498502531537017783705724632895184809852824172387402270646658507924231646647826698200983226031788957518780351320048798670820783125704956077242349111284616791301028732455609103134860518885038634883279658423314288764505478346575689685019568560038635079130892740746752746428972805884869702837590746677739842467370749358982253625147127985245053508281289041216076289298405963761366177942348650850319561621952691517866768848861464074266426120100141473151163052448953714857674050959691110446913256196666804725062958490448579339251715792081935288423396294515004094597360332790268154927285765903023249324821784268367889408135957964057981485557071760156703850860055234949222572529684550773826013667193835942386843514865162323682658092609690619048939777369712490578949261073622495026411899522445903566313607828595908878796909041708818201948967228419974211226359308509601861051751747956688053579479766872494177816469006692022707734264184562270210320366305645633405828183823630468988411389806416184005824237340937323661492639887801217336139421260506813004565026160564294125203512046150894283498477345836245655274961683451065830591310463547119601459522816705293633977398119741423944613120530251039466869129085709048624444526140372518317240244966749419115138842533115705655727049498179419053852264228861740640125358673056175599643018449441856731464258947611704905147228423448089451030406674688982777458423908448071634048075554168184467703332309870507966531730285412347271390356124835571388305200207401759101531573457348639540167867109093510761496029573861116226871375860920667764647910369640781644323068640069702142234714365616774761407277205924595732905525200955706109114074517080996674897506442288829051290888055322514763998739449327094772296076929091361190981059774851756225333918532637314565683851285729920719609535842323895195731362765688862163947963316238926806970667647143608990747706494256147625587329776534291614200149021886711635440225973299525844465480948187078231999001479141175733803434905135737595773037294072794215372974719191360649624255753029825098220810432233971088980550420284262008252810162583610943862138743339689170732954108953077166772405837039335179021842601005943419214631632330551542802261786840501203614931002273217687765558367093065707237208911802402891927973214196776672392786203343109744529610420379006692948286160932248290931529410647302201363036468568039418954275737807850268012389280378648371909322123765014671329230041187132771440427208302724259494809486479123513038615468644592816842045465440456792955251383080850457098536096291829209239080142444224011790978237812078764933945820363022963825500308543777305548516334566991377867617176031430388710607553495061372609370507224111692987201683391132430755176683874092145321763559716056102726533969166591064866240430993350866490900518913761184956064245424048458494329929642292214172567638177440349783527332738415828647320394690745078426879487190174962077593699724072570647733582481325538609990649878346997560827468186999869679127623774578176107838511402453836583669728626050283806251605436443382075155015277786438042227745415789409402605026246998075811925746496924498452893888959701415158990920814936710935268006698886568221917840448262656263386168522751120961248517660685411528969891641472637408069307851912325357715398445459806351638649028098118514803159984180510962586830035427050916761281157464955109222670974546882107990378382446204043487222330783764342972091468516204783159021638260205724652419850570050175195505748091166059965224645604227908876605195813935632430407167745755935402792170161022037895170578619750956513513341794485389781233473502207527137658663090830133861830067430443327802985441882400994058845175728847284923117928074752238683572041649481132810655618871036899315303162112716279892449501561819208925095748522997807883079843581639288049063454692285454582088856769788394133902951358997168464281116375916820540740726569889098653642861614886167375444396661543688143723552523866915437313695143176755345922118409095445196859169567010500934581320691890135548302248930881268101686222853417952741025288921633682083813472136405297521087149816643410233128312300209665250997197081747917306998538613490640989464571830981579905843899980106522248768035221887544974995314549336869038303107721968895847193070468971933468104669481742652062800233065335777731282799884496398125593271689485171678221533597352545127682613177048256466860268587159205109059926062825962702720601600916762271892854797185997627706290270427983720462291348510495786989259093656559413948507262933304690199842386996782606143087249339338966149912261589206465805886019496473193646398914013908592667018663346711692488821415798116977360373132313288069931740808516900319268120850064419618069710411416696514283270197279108530970712221466189751614829930493317362857935691680734989544658279420731428104029175478722906310171165065009981494844192964081653518020378213628893313847896430907667237429940829536599121761510737393707318215967384465880384182103338915089235619823655700508671022408173384220051029518628118028993935643722012980946441960642393943933424602250375109763835424722089359630529961460963969485767238107279417666895242276074241108778564879047828833622235221270835433046886559514587265804664119932170179713269523381432568102769340751180271954011315682108980734617005441840603788471918844874386770570099342166133501214657588826384421083574760090728520021001779446968919160892946055933940649702594636974603475520632242568205176139057193457486230314940841300672265028688763257344672892563480284266622250742631584163080664308419812335465287739423602785223370513033600611329510926312644782571900990891824135289048852564602001163600475687184118173832376053362576385024897272768410130523926393964263492708232506194050763776340254561159298216731982463278835415290948098604441669393777641877425365463874593868993387820736021531595563904838240964087939955018878552387053914179448429081061818626137596789648414040696214828613310692196822263013531004651182788783811615845505465257944780882452145971068055986536404652151969563360342915878851421015508764225201864780298715382227615059115368298916244100923576244309075977507217118281156083758225206978213422954137000401016810447523422494265410978437424895113204101789727906300775914432247073732717131314252880090591498179357838279162559098793266631910188566017678823802610148312621186644594903814067162441705627080848724458393409440609475778094558613327955691721683796677168168208409294743745406554447105068264009732347277716870799749246516755426091687713560381293585659949090346901593650951406381469351922603676084913933911151389308926958524244785222846320116048339278139317763551336736749415132866207775993716237645990750794862770981756810034293875695778032465858487053166858434357275532608030389996224129253483487938166229308281205130720873430059208427138019711510531645640830356653751887121001486038830497044231056712837652087942254126264038144637508419092653634831774659890718953958484355440305829041897821943653713605628525333997694570053139531089352401831642046571579472352866384740169018049293767158723512970370036736617517886562901665514717218174016601231662642364856749661268205758814451565328075839697939115207071345119674129345433770018328448713307833647624741567103199715205574326584546567194526356054968064496147794634244111027063876717782071319849763275743917622103831421583182510012071162597920739896661603938214186439359511631808755842928941881968520408603679494250940836174691712098473513599694954669385969548095325414454719703406361846944673048139937046141793765213126319035144804893402840426570444004600502042886248427339600032452412888924748201365123270926458200169145215211728018221739691331619069503727438338271470348576824549888076473106379282882127864570253944633397077899334155641716142796318659019575737139531507670333408418460631462757478142779567125481116064666120660842661228541428753470429418040441518419855372891088429883749279434784957091142299358300396286887301004141691208290597536007876401412687739028449428637992832746729120739610700384714713547567168228564942736551133600940136324712676542946158920385670549348519387796554147040269992086961545451527591690312609255210788335577089226004377230533536160143727093971139630474998845016965296672633119508390171034280007224708163483214936498377481057410622061649472603767100167899211224538222802428121569418645528953857005224188707972909693530167020055872741634832722650020329554155670795006496739570410864766873643570905702335368383650302086338433997234039330220321445707518321973184806634243664132210114081215532683661208594937842008830851219329968984730834126433240877822749370950184973816691424435282836931614366045752767092270036885081803388786884970893091039097292732126025270671651171225927966970647057442520747579322465170084776705273966043798090480843447300121906930717781220358420314457263063793575826535514810616960716976242039575777933140241285395044132177218097682166936657165293985066871221719559514418373522332868270838756155457972821988572044251766881725594350042074086538858085067058113620144815252131628225384291507144359092686324685384583535949244867070370347716646745970819076668224652678579440655773621656929517002444260695178480977129017877643633636075676818154921117349433051636747165488535535749539967942397029420188176830259945151439008044017087703018283393431817335947907893571100289147481037735507852110716625763249273255026578310854905471066823261621936021460248615491747085706244196452133289216037989365103787929576574672485307313443444764878640321703148352735563202502878581333200083886175721214572821842471937408803692767161722880999621283941643735875283873017676597544734209196009022058727950295964752171146231937463809102045661699908255079873546075293871775404467171314083303178077057890928941571039361220174664425132499759659581722951338351639246994524721805733783877110609987063511718910024000481887841606315786872238287235564948253943446142932676053521604143804869116775888184877399367656929202420387343228005273892576233322275281162791469956517069494115016958680154302280131630851559511522632592972767947425086450675362332660068699236473044947297673965834622795207523263906539043775464491206415947510453794670365168867824716538791780975114614051048311265671394213588945660403787052304360885147834978335340497090033319382255246554999057220476075289417723535719967217803061134312646937614904345313237222054897840082581065927905653059590004609601793913130647195431805878106362015487488311481331311362552982958540360864931666824047355390347903416125865342691906262013060056217839904594271173663432619826860831563114934153355375780455155390553057052271922533925495705228839368459387867347461475985264048495514356148174180852531420460275621418127033192762056333504984392709229465944124617045496907504474278662735553011476535730092039846611933244097304213877619310815336789574702516489544223297312966904539260208801615751519848931962153298177524971100186725750537984670818719581445255303727706043338992513632356957056078989889568181435190361160183339609594729586929423784845691866583944599999666998414696757500045126688805996997067266309549815755258949720649362580255229027382164595627794113686008282485722471719040738524327710796315961535445257213004016648198417897913896543673075136782635393590446560513241020620143288516615014293814155930545913938898039165008907728307435683372367965534624675825720639270658451028482358508480710731615406088874205836762756535487044825344250188352385852438510124141614930255998157371788475322173876098572380870271950177544534928786422974571064247713962268590333636249856979588834125281111853349738745495286746065412114358222745491610891882055286605762368083219230385380456630233290569822949582108406672617770937786182562300367561724143649955769368513528348693673872904714116420319734512546659227024178191944261158828808275688983383939075579165060681625211931218138184889049645475011852035150965670926867588788407083476063212034641256806724251462695370891248734695435000841234636428558532613422742562676440347316270960967453532179832563382157374519885355599703721157558156324345104870687743552784980197313144915653220681521450552194175496856135412489406820016135131893180470356781101939282437134307657439324394443873043924273671801944626892183399406806901751891828841237714513970262167939300250364778249986114452096935981098695555008682163078682200490194696923926887109821143283193781094945536307604659918456762661793164777672433009909656402553834370016867459114616298901035688559103695254414603001342740392418895698352018468027817551495870918997416399754020207879716254825763241635055110649157472637849138663711268937183418919078405269219258288492572042234903329620084786627251375969662223550347966863371770072980426036283263673089979619503689980956496195931021347853575820881885649505925960988373442679360114571772559181613111194809579032073555959613650572402984111310997131560481424668395452631043800404720493688243719722818038865644983030764754962738298269613789829199857292705606531645312592087431926533347705258688779706594705995555680801315210522657392174597459555669342647115790824443628209646662760698448670695581975704872230248659847196969600370224695824066774452134268346412251562162377641596342131102409294740282081462138611383098349585209142647658592212592960666451220182210654679069261241046755249015987139838239111333552344240993074434553538805614493712040710097921078265434849092171766915606016340825146333521134888846187250812564914811440912084022815226933854522383552910990880614336000830794201970825326262126487003283584214040119384842501621513425097829902948923767116334979341446585231846015523518749250366921877889864438065337510825771498180048270513256726433716102186829179235561034650256133174722884519792183171284052293683351784238163555382159505277977482125786181157151956289955274371536341587496526969087682890593196568719347942969734400024298658818000805378447415675917309157403773962342685219481004488485991221780100588214913073598066572353044242085623528451655264201298277239204212958911045018990970704899574354902167894108190653532995974416905651566592896526896505221179310734017507567095290583082137002262376152070980367719165160562923940400694866657553993576089587580045122297641417511138265536951266568017199517911146431268031632636878022969463584459905120370592163287059135935862744707010259998327610165787348591537364122138378021804890657866695639497395594917315153295042446711672343467203757983759915214546377260710032030140743331592185418394969535935137791203577903021310902268648583077959704727496225675943550870750337237234543653416453215727657085524686091796641513748535259882343427175987688332141785437849584430765504666080700997675576431196273048049182558964941630791262949420100370804481401432588537036173793343676122534621696718768110570393792614387114176298783455069802346404451237051720612857187387397495846140145760981128210144084133562076100593779291403862351506620609529876095666615805435021227389860870457175489269566527298056910943128738205987686312293740788726121258664733927406220757983198118693817583526671710563410990717884560329597570127586416354691036645918759118206037800002425829062830730974420523952294726275479424228854712810806258405279780630744005335510671841449044213474903420705524324241396205262897567135499073518314208262036145849533043041571478981383846925084191444931972320205902192768983114518798487946549488814369371310546231604076442083610305162295977465707086095318293044810951664559026841448796317853212718532560221134213913294482478298569579145709689550162290157951468242051550042506701650349043080715956480932300348913300034054290992393744972111641788094118976833120329521228522961531128210971950993772870143292456044472073070976085101218376454818601601945520978474597198019847545304335796369382528229809701045057030486880896125146410283811668102174216920430959386442861476377571467298478370686276990000030377156454153381504841265729431691781244337829837324179024050046259597335542418323965693678407649072214775527758124878564102192202721790386265198191770312473577447350096723286085496189559190926603627631286828070739861760494460626071766177513953164734988947508238639327674050458271168921270436545574619218606540217443483083556251811045885805772444143598405510909457920765950523880240448089604223451762729950193526337629818106899491795644238156132354852445940507741877513855727968998935126184970895733879444039385116648374078272164698038635254905234158718420609125851954557506388886674441442642194752427195540184137389790185571916689918896185969527495770320423854052815979307503840139193140010980060758133862961006162963129527276726903847546254569361213128137020629430260064439351437671489865504056665190042320915979060134960166247184484820487041117204119729628124721680623978628874940167112823082113504143872844231710318518240555486023155503960258599060972448834698356852782865044433270013013203269207507906177069580714111608373271160228468981216455304533702765736950604534322238738819610946180856271880891418467542060007140351670624697357786692459982463591142296237990806308642337026076617248835499095233706547518775003221294458981291553896461689301229239644826566299437866331866019075652292025077490174996844798201670811163933531421855673070992172177405614802879871865479131494563467882238095307067667974091710183467103462798849827352746443571329974337506673682033532661371624965385893305363025657993695974434227902689862211665910894503591475141802347168078286511946862525118391564329852215445749754114325056937409115216916039050713681217113410693907508237825630805312966499393135191145548535015348154975973589425461015471334150420223202015609041743266313998270899320114091683076601893703494006360003514225786663087579651227545582907689124513927417095232283082694222073319504677437379041571463653475952676542179318814367702276500915656887277810011628862759811928200851715369303021780663200832608591378752105765859276159573213601663579869659471867375695702203581548596351461059086973585784310409254195650605925554029076641870465134837939855382720936340346889208242068026468579757115278863972050340298529168660994820804299454124902135140951102282019533910537556712502894901859643394807770767062468173904946438314404903081188551105323420373533727234525543830924396807157240590764737995666389966638432666100431158215925656020869445859440219224079943169256043169615266629180282581895224470447224935225016929512749700390056169820951484464855157799944600934734273909026057997025541189158659567798641009160661918254848429522720279343399187603930051453611506209100974420817971174080828416582364309226717456204758906890401065153270834443790683483538706459607736679651646247549852370735034212881196783589445453836790126587940057231662290009090766660814033512133914786795871424605278305979459609166782915970021999640780121072783585775830999221319858660783311693929035972094789521307603919930158642558359769012394631075815179784275141272412631482230915560352514070765134875067365431103067913733718671630764718692148541988018836359859366219165406865504844562796558058900645565913024131335362033543749414030678134392704008646268277511794339242408274952486471233188701254274463756634980239357642298608937042201583970343859334636765809440404590501075363654313172897543449279330081953755281012426220245283990818530465997509975664971548087287012573044909025804418388360319253253022120777422332794051821009972658895033573548862935828663506246705038034680547468583320371063275357683799397740396140838327651317491289315939541280963261191795450752231226215046978034619814124345968545938108347994990362826835052179843760966910381999365580938124623114737686016192297088970953473654321356578771502345556496019083088064866263466092720421919148317413019966087925395338512751651044079689332516445356966671279208627760246260552565170220662254383345013493930534016730599347293341107518874773757559445869542638084604517734525360143687445299916764057992221434529500167077132427211871328102968456782280370925916255447662910848535856822770415381128881337790230191712724839320198842907943595573215341094698991243639636278162010880464305562961330716966374779388454436520122535247539084791797635645525074778637644048162301320832074480969108524106765501375529692501833167130681570872365691065886851500943757113272716254937588973883675277440568871840120584085808777302259820845538863024877805375847981812194288898556439051219043095501424130784728339594685083326079516594638537283862733823364319352612862379563564580857908240551819556929974496893256411606352399102612997823973810538537228169596684048437345864026422246240663315104953154508916485389370771942988731779675669702889092604437181296607797308483740055512189072757907420683810444360970050554183847303383138757896781357406751943692237256042353524091361826066539259938272940493851839128659844867328969349183670607703434513217748280154237628970725336077145096411643779761716587517431901256472530558445953246118020388648264850570607116837429358909688377543771262841022047126866774356067077939698760803752556585496777327145186339743590430257627439889651053062818763573234179506741769188455043476294510804686673937704100624446470730327404205441003701572682444470839547375247116214706513975942336818083886588368535650865911503314594090825711452701300226521995624851751721407248155760962288674312334942580282263501676730466485386607128415225305502341415186787577170325865895216304452570962992065428018949788616337758473598987014168106803479191750503286367569240050729850491014208237183856804718650002703689935341860338371278802273074391224171507001507597931315565456990088214631004309725521027880835823118902810490193675106109130922230521558915932610685086092886747152142528756647252073329221455083124685248057786147582053826847797809011654024661748324001669014988075672024206712561986762686096719875710781688997333213187225164099580622306065649021751978368633037179792865693979315541770481127784138104596623315174146329378319919878527227208424186783951940329916597411546555293837954581924253786467447604928725548472620412142639000905062413267682960645792441074064816631819634710592140262297236645827915699443956259295450235536668466248866639582363599732070164160481739660319319567008886345257352396871126628773688504878591944902752192299184745122951856264050224941218060665985202501101992706176303117001779390864859680826239597973776399640663138917701419078413062186623421664311394774026388746374470372090093863356155267603743713922129687523503353224127194520815412711375467157938923057733605530630047063546406092321775308607960867739381336639916541030122456735279166780298705177153201398790631327828574858156637251088621897217206006929574448742339961830007669430839237345020012858558481445751825244064129315318643688387497263995117843465808196379600445592657638530424183711511223878602475608059285208672851308392962211699201643321953281142149783590353701651874233980379688452447493022126593988248567440331895377630162198810278850634422230501545550246711606728173003790779662141499219428959353385263143389370870689513534107921388682411257454491994077077028153818467818346470470501005976969095195524901198033152529553122217803339340201660029223841604152781368120397147855850147829722045519383956553391596898894022733081280627023191540091081765132402863273345326210067825937161591409013661975073562389292468607786000014019026547206106203831288067458627050238689028049430232920146842598281523410690002091681971741973198363910866473687517940760308134796495252244338309562453006979676262308240167038198306275810673671673209821197582483729472822290401885322765298619791247014180279392647348383673761488906405304063861902803316247496568598716732036351484855134634409702943286780129516341942436697104763712644222459917268154582660157514226305031476097664281616108114131364817339815317929262407855081350025528696394540664753348792656107192906501687123623330805459723160955621412890395827524171572136750853511611589373826413199852302559441569509258400538557761173797164503152329245497797757649621346779752802847652388969922091361227339934669305511646699857262756814256902229339701585677793305070025563807620222263590531685121563645002651938979673159283436928442741872295397235252805503579971278576634968985399997085985922606369607250767099458176946886784765938533305962265019668920257047230027038475751115804663741131911859457161379696888304527506575015822876644082436306297786754850083348656445663720045764221302960608022661577334233017440082549719172611806262634039103078369769078261674331905915719083059325056589749230220674332820039086817351416431254115815594717345711388264321655718082470291292543462020011565656419460974832056315825756651891233980905411476448836411595074768318218592976416401639708672141793790982060350440985960183425732902236800429979940672023831820906077235777494935208202965192937656005422538478538371864882481634940710945091141088097901681736124497762453314220296429268270222516734408688368734510702651409430759685972217149291013949618007779314844087147693745095568092994206684483981382862796909455842879145936503601211840937224915221536624711993813645743942950280937907232000872594313878408302981290732885239291760658616721657851435557581859906822240088335260954994118845200586181684045354938584285742412238087432954797070732003570217863821415993591003580363147944500817791900057417161485749328005750724845489975924499669785765923498745505686370460884544666528202423509399368364987132205930793595988201250271838177036117406079140360787461871185426603560424385948074708200562181783538441392783613688643190659690656919410298693788143245987727102746363303589784218569314972662177281511811230440199458970441892241783440717379296242164052463645708258653619087746876944495258441802886781777944280308794774537824641534844397769311857864531128358386772785522147511919284805136532598359991763526745812403704531509984898399813065607157238302627074333897986967931892778241498921565904996456098840027868975168473171878478904489916739429395179173217480679884747570523311000486199802429295031713982405526839604433340875832240220621284771193473804662479450678796816569807688973818359891854810930062484166508833744932710954343219408068930561986096773342112391259521047718592995774303776374521006897725710843000737690769208964220987466786106140584333697778091466711599556894880541434853767354570388524029582888964712039004224647747793225140325303556762837710980545194653368412969471598151230299094227570600116245875135353723554746286287328696609179230985025985663226407182260131779190349606807769723446089101039380018876349376823777969576726344414907247668684687844994949635644769385961790031851895748300363689627807355546703534948223972342436845663368693192717188667262450950720586270598045461634491713881923031635368507396296259092659310198667586709191298460023806102644903030685026829648116071606536178093829778803401007108097638254864697663063090791105452909614524289516180358600388084652777088950050116939889995226000840633994046047516203617048242872069216027644406451739292159792652779950039699310377953228740015520495834039884235903286215531996527899303073460747816050787261846179576594353505531641980587773760973701683510668630374647015698477448030428510354228755134274623282749055105807029411898307485025080467608035645931497009467627456342966448712346620425923022858069127183669065948555427181583374888476278743822247070489057445571796830188603446809937433342527171068059269677755181144872296440508666152467059570935940081315442190968386222092543613491800837258717101692957267841447579929610109812404292659939777197139595754090155125544829637609118291126553067177677201587862843273697333760753413209210300140640227387567359427910532284884113043277959810148970397809530244443989317342921129383647042302273825886765031119874862893421210105890687165508166685037685327249225433995111874309986991538381906476351945777273267888133656128118376095955790166746277050488431718418238618815207109319057765646803370390489841317259187929146460911789044935095424080204093415435775608960748640125862165984019902951642707597954754223779715268279025170711620609930439255606457118411288373717683717793164532081732795623244868571474322413404104511110033841327261606901209729761286625119116321617146766248577437393663108087895999240598323614592075326006966551315834967180476913593336600135443217310948224966960999800521808318986068217405257056298788681751361671623940826236208363451258413354553125402624828228827801384941688606736249818950717990132135054011845900578043204611888941585548265973130397158801185943034832055972126930976960499878711662437636816192709018452751549650525715689116083124871801377858481086921672473325160689718617932423927512871846438003545019909593743782049739797214901256464840143649566864329133135593249793269212253146194027798770614564117410351853789364144512034797375865523780414454348941396678957875108778786772495764978463927350183211303641053196611208139003542496182215529529602035758603581141337644640865059854115833157435695208467186620339946184368986235447919169231105721904832525353954982971662627583680600475554930356307262812404150738016348345265366854587975039730414447460113169303970008862394343877303200346949540345316475858537204410370485947857875132722714601586372638909147481981373320043355974221407492697305017033428312759525045165969395279573977259786274389843696118641352945406190183356959519719472067233044860032448510546368314776320422216410275748598835295920990502475200678576752442833907507815912870057679756429013783084377088152864140751169025288722286586246992441217413467436578853293966279760431253487042736506238654582037845902534711053760043867384998746443123562185111794446188011249179924637348984219172008181369921396428789619676818669382978272645316417863353909421636351794126000177360197688239980186972343809309578994136415223679215942699096066207527136435628558595495863792732082865842457004749183254750141479643687127081682210533000983282706775023468025602477103332283818350688168265333579844923380810755017754778074949630359511373866702196391896971791536778440538369920762487835969804694271239947281087845295059853912104555246109531966193366205733507414696296939008364183492247692352170390283891115323882702290087267338821609444347792935841463857634380639983405175057727308019154108077220623434628622990494311835829686691154379861116693542756168016819498962009859666869876651899340611181331142421180614391619583753826235140897071174232597025932570140899423194147990284436475804094115334869671287617714939112403881709572598044293102105177491742623792906635165832520693934793817977959909394936026269204192696602451951535665761914448580361949809959723544425636443931290429667338347677151044157694947005084482429741912597619534143412799016692517617982058706448708816857324057804243783080209703941186251384994426942229846575061668402539255612923517537903771825346442667881947736083302303965387285008643201194474383591446833789298186696437439371868276964275743838705255179304494699352207313941852003197373374538830779788564312598261592343897606823480147828632838425258555912867336866341675507698496810334719198843367604624951204318405289413690279410460031318665499676635270932647312486824292367729759869717645145304969629353099153313561963808146168769929054135076956130704968524663332224561764256222717217103324667981724851626585539949805086111732355483482466850743024873162626734501389029657291444572317829991280455784798124348295836492796764704314619516409852941629464139429101069792543681158420276638220219570435950235971672825932370348280148209622777970234777834761194642439581477400290466478207483717767936281456557846935784473631984941651857896460922521904461868225023287880083537604477250264732877682392913077894544396843403348057434395685252560099697688080864639886917106915151590608134015702827014887103148961334054903410416651856695581603345920744472807193227793835274624214844906868926756027480571368305382527938700031688783782899199844602662374498663353718661416217208837734466070617449587538358417824683461569377334674257229939023608261005392570333997504823336622933151963021292098463146614447390890815281478946665783727306545812490686109732374449353804679660983032546002067532165558607364875782406656464611097643309042798914959186488819955533302213321104779597060807763199094297183042189629551807654286819752947571264865874106282093452955687758955395864667044023798788320854561517137724635673635800281667917384509380258183504277029515528635829532649277891102709950269834312829020359866537250481743771428001738667761544513758745021447776856766015165589096024591798706987923702831692560386114858247881502275557680309826007305140569430310230666855720911156286430265992240272560819299127323523660282108484880070433992155031190675173738955779808210836205895103790125928747259770065483699946301304874730719984965858434772467627072453312949501748633086764969353533809424422364336092145541011246461073101068865213218196567522201961476690111204623019778350369365383897757598126601437245968702024824867979002914979179227225358264177665532715395962933277734361808708623744683795737069954967247118330109787051651971309014895503218531815657906761125202977285131218585823083019908943354848555127833514935913096719957076147104971147695773057408909775272977382981473506856781507057915424581086491331783154884662969942586610636071441247788389619671295596408191157812478075520937918871320996678069886939039629303806991304141737576845468630537803119291223694897643982719564072706408223040691906470724612278225979005387546587374205275908791313532613677387478955957163177274067461054170988774516995082204771107197645524136918607355135594643210452682246277013585963643613297102927843852828057348265084841960258393967547691578181336538458054940864811791037896619164565021395455729742312689629133599108411676652478605620372948859510775477593261540885975829454829624138114883080060814779637269869994732440946041974134909414116529470193218529699575451487879984239877159773754938431555092421411654640966010609408227903869364514460828753279508320806082449479738237201629706629014430254080336691771925972155522740610485413702048704360798371008882428545609941243260238480229852139677601755127429128678529812208490031139015077468563747123290987933452416660411517851592492287264682101576367288102136084631277884009068958752450604842115326518788371356170847626714784446113331561402418614094169714744881638100378811612421983387431772392531039554541635107183467310005619107541157556143169866788966290102136498919425118772740224976308808522933997611171557887796528172040602787990159132671448341224288662272141014377900785529704145245411758251866234078861763140518956180251163607482626575084625391913148932651878696160775226958674470223853869129002014036372556890768541769238557360556229729045367921000834707408032970813760278343491145352320740298726851985257865813762133214538094645367930500421016986730378235007313903058201860922133767862802726165593043185458455939273913737498633854394218854081467473332477008069485849168940109635489434668633868052266464060966628170555534755174075366337424299501221359973350812035492269319588288449522254593351347848043921375894580128634172739013477116819636942922906862598665901554245057645407361424001360817116738901798197236005513287546945936390698526453894689799865884876505641746063611214190539505664914415731497719108523885369818808654300111198524792120183292675209555917356223059040912818177662057835241419806661589051499851095599417867671957234720134038977040236700696788336636840868297894188615338047629297037734085777651220379618847093617493506183830536701760489338521623560934549761223238258107412646199372572686403611951308804280843573742979126989503757938676092379252084165965165962199538298895864231453730211338597214395389248527625904352040027968438210713428763025278201644270081415263564012475657108079620568084854352251765033961385333251254417731757510210410226314539169680856928248542634618080626431223862442696360203118713006230978123074959917052328972862243644407832630492867397075630860740621298528236301011191934585179380698209356688197380201403452151693758928866912652655649724941588295977247088578167869926158867485989996395509481894390670532691715934943149842605384963690458930699290179494726961985369685154503137653737977813795271309182522304902317012276090340302039226586790189499724098710261910008055890684849986225521274719205805724113165621065621819387483960873527234152088696284668194176636031972083461284597977425648868870784546858083760131448785288150335089287751534067288863753966196571784548837888892399471227269763950056534603400676488729518544199067173222637117663034571532975125970402254795423765597115528975543339543242623384443108725005207386658377024456951354660328681666586371590540919364767494937406302740341841460019241270344411486560815449580997040729621456877030023494427979069191030757420812530854780881655398182850056580680786862234715850519271140306921236662924818272803107240137891307181713194402024244812326236688936504599068111419429556748148984586486766786307044565360759043881594723749282243454103958885503051389421799717420394459308931048827327494488344265165476288742771212961776711514435746258686207871232700908747110060421739225683211397362101366529276083160942006829368046851366358316443314338849241370806313648685635596646870403121658820389138004457728566912626525112821760422231099376056952798919938270035403313518274611529645334351308268340701110843782525016878141042746676902112143524625911371325313678878571510175990181994620544666013699649575046570299030030254586492414437383975467985834731393486602630666180060320655896125700258856806870519690582694379704809963481284403150041007656144456733992687183966832491918304811350945137844570107348670064905188855729058375820765945470830409120573325225548763860042656591563507118567017317919752472703226641787627795254281878281882311813440595992780419782808938528650534828082703586418219229295590424247965756577697100550374934431232752134888919650524764852235668212892395945209379323041079521930974237372409298619728387829603430005926812557919151062640214042128603316240663193082498811912608556121979439022856431775365561861518610617497263862219223484304627764946971371354357397887552023551216362792932224841276773930219003751625917614509896978324818166524739935156936064720423098819599432601162482474058328390099592217831999255601849773717851603255960894235645472104289701314861571379361272916884815352094780988562769915758562642662375645884523218818093005595009684705964411780596999168442396346636974214573406137126542718534372648687233853305240339718123261548260551215627239170598111683072083414631681134034054007663456311514267827499266584212559609566899911810453172699510852276116420036908954182564875966619603076356278196589428998416117801046738072654207828450717435533855699042708051217800358683355268470338362959057384824408281947593542020356851023491172147014099033676387372936270900650071157659663069769254447617911282985773639434518631780481802297952569614548828410115479973614181650483395319553787673467814917085996119905655561276597732101353858229834420190693603129448270079320682117273790059396344027274260033363627774346656909815610228755327236482093795077443985161791919583868956247763224820950966597201401955076101535549218212876314345896116131735725288767005947798231252778689888647828100628386394405500059482292321669875563168306618073265063506255865033997672852229928353869626852509963189355312926419100763456103749917777572240032224143425602772964057386577842691495692018879075025514199328423806012537503280843572629527684683038581667529771364433267373412656889070284948254877981634040914413489773049640534855727180939808166209476820385289353448802834622884353609399741489918141618002250512573959558953337977972578531450685382983824456167695631116256918527313819888807926397715264667986648262328775945819645429671294705285808825197344560641809085273385524980630117310454901255633142664288115821381932548981234679098789411454205926671593510582565707401340464632857676697308440565580519209282344365376310542302441443327189522555983004382778463787317169350606967490714334314645708747920594331650287745621319143899427586719055502116849804063606237766654325665882192116071414567371105635302986129770899489331360061031810652039813331964631240037906639317540782945285584317542561517959861460625121736957495001716115614807255444101616509376612841449839911491467607239602462787898048981840294921729080582437731690203881171732824057687772764125135588927646236627546684359102350451366616670973296092779808929880587116270260844984996586076233782490366339037823635050502552942008414609185141892353093711189051827827915009591810525314929440098222186366994343655393634455971073795468757537971860801951970408166874829465283095268773862623373610555952202038289523569653172310328297432142897853902832320539979799042787390197002777657089509423277734311320984005504153682864769110318804436344363454945026207300166332277321446027712857209243065428342339567626233921146262838308112140838571197734703620619268289425230723663446686350689381725394422305869490432791249449235282967579937770536276696222916155384293389362690385417973755591753358670189983713976904616522900899216853002875491100338225015966394379780124977705185148459668575765012280199661499093136032809308183239661733049447853261139255306925512675530587504273526719492027938436995105213008028850934556453134808184877271413961865648720244342552147289976358577380910788490680383184959879055882949909866126169113377122189705604838227976608161501178092748174223910420300504071347285088170192241575610838902298031481279302045021814113478693972558209175590503940382014472997162461825423901906758552019477475774810445067728085963029291916820308680393553287359726234193719749733581615068516342237528120209495782225204426001322079286888879275589178340425024813624688733405498178635274267179336979665811364223477121925607053298001187392478667338815570307786568461655076593838931451917024510552358144963308974466301331547150583465245110252329092564937684546624001152785795044883120428934246756536258887587096094578674372483662648815466760989165223417262960176573808971937011469167625794635576012511202563827941298096271348545740169331393146397672376655934480208261623702496690831441605730933631439693934335694979454907045464367221353676155686127498906432463916682047711966740878895318967554287424553678081400803534823629222939104782585027094106160785020997795405160360787579933182665683110826814591810889766403399667160092142849919800101001567728401115228836110209855403620098372186546037410286357755225199931847223036297681847632047728852932456703356306867138394332882611887061549356416246107122284320000807469748370139363327622952239640421074457043059650701378849657304341386625401867424276345159768961605073887352361436415065582502037448401248415203041424167458605417444306415855176424367903425703638656378819917015363492632013526268426037941847014254719159952784840683084712072845777785863790087303444199063146263644523610777530159861629165664118666754954650567913111575830044909012205851053680795228281617739374742404804536251280965555043698156784833229630228259093632124006082651833952914369486335577601107073717087533634561816831538456777399541777304841178457706364175721734220009328599172781855537953281981111319657448037519675953414784589266264665174502697244129357820217924543553323316363036798209116839348674079830072035278452255601113783632175312312551204090390922908188945599303388882461198172223695785787463113170120051379581987770134370912577742456346681286525353073497039304473163819692011037436244369224299000168858961368917195063890723286314273588357440604061181597218263281893879513367757616778440946586756154453566083766945054983766698151666744331194851326260854410918849234007226308732231647250808444574757130515335883646170599708012223709819285850600726292880983640464675462235969512032091913276393947078799957196223758899439116825431362060887124755209216417386849983495978295205547216350362028925852511586384171425810128356176805962807454767931100523156427350942737933086987902015804017937192791651147655899233916248780372389869634050211184786783272206849093650692538875080421908134333588600382716279670123490481166740768702056078131448601060343503060593768464391489338965341046015829702965699383346484540609722384170346783613107331422544328340552875859767087917694824783500029385993067420495644755187512485130987333189789625458391270025230567373767050263028179112531992793555455965116091513552246986435786690456369125666115973637694470519717172707375173737574677724375333652517422498994455703120360253915051173154023619815450273453896693983102824126573652336505440859172129835246080103515581741941999496702922387725823467275518085867855520096407739628773610499069818791665535139306114167343058508717797346321199108339712340354457248783650267900770225441126006704461998330642714175651939667152355443074030323325218495751989448393913350933428553906477591413587240629953708016256029773764865742353900493345203127414612963606914757965821349965415077303353215437103663918916870656902747623608075575397620386665849016683839292969240199135999793458421858747699428844162323770018301628506727784350976256516064007027071077211563605403862608180631658152115732517512327149007746580806593123887255459301632708548414777770486324300748897318804575099964162797131457045748036678401069151686976505535337625390168818247390252475337533333103491244366674819641473823022761444232589045177756994789123507971791602770825600005124960477431667589284828108904237873664667125942005293762296564493887614542562405343090186987588491830670652560359475054972380059485880909972921668334449441725735065170444768724365479989875673710084841794006951175878430920557991197929500488398700312388754314725726022232296176259414952607398844032504899123259769029113609409591797127978094284457520631714725804510233035972910666261215786813064965655898777928267991991043555826380218879859004617080553766011497803686941987589318197398519767303055836386762385026450889956794817268219385118562101370508825794787888970841172610314317606641611423101823886517721893797926682901641162908399769715166214152998375013246441067184057457581717151787807987207015912771170455508184532611029337970315802301897760497846462425766563954525264952664052472267136976886873185584397679136324943295878432210378072521657185253422907578944129275257560406816651883932454388302059291055098736308669219650401567704302923231908902886734018667047617781418997662521965472830934295359327265769234248878491608857447081652875904591413020203436548781052966292670948460534933567993613923292476272365828680147710534232984102312612723219154731204375515145573158570538090956912829032022535848852473572687421729677304844964269516972882931060629821052017409951897589612946542438522314080577072400217444664569701305275838316570391572278860710145142803098377719773861818631603029624843933544421779698359347168365677826446874270409694963364214832960813702366137460847713651732203872643504337810530514842682781336643801361456561863384407648186869783225002783444202368231349602446477220679441737671303201521287195262101012589603325774231416551962712090503576960463245198505377465240679086564715483306568593856679191352232488497315706819572935167234596273105898436881444381135268707120909347547668237369811130706830328082594110333716032373455446728743385282541910422979982874849697333874498598448081247601281871556752987615446710487808359183843239473475305408150003316976856697843291142301499555325751844150599883546229059557888888489215776312790348999357333186087861951835815472653833543750789994671103914035948117996353152978051048934123856574897080233715899671009567430168180675293027574679433614636467803521743645977067762992117705317170837938104818252403713027691979407092677215973687798636087137487914563600355631293723296417039669169660919019986185467200228624185674059914784562334548344939394703424001950247610665136707471946189286812749853620997012709599666066808426354404230486752308160551612054325868009061408009390995247453039923713634979362685995566156638836469987854356182233375546497214696654928981128510529898068212282508200634784968834386971469024933153751892350068886251567381439971143731488475190082482739651213770563323483584646447686271839746058086761008884222066929003072442968771763383138666787673736757701751996549409794658924004359313016368781359374438920504939714159754203331443619141805563176668446643226498052451329543774547641500361110724284437523101454995380278333709174404578046391180888522794974843923979105019931396232695852224095118152927067532912498419278230751966425145383546917653343914345166926468950430143123988493675386929624670335148035109462777694997778608213807716289559645566071311237168510336196958488843432142302214928856673454029923065645429959233871721118576220528851861889887981315478988362769539603243508568821122466395930988151514686507796152574744530257135102961235830747464547323845963480627425694991866763462894580115887487536566526936691790689955283881678522645117212341097685896110206109293043733308664057600583210301109635764962645909485462343600842746772956699602236363716004229468942247775737261110130720181667937736656129658860578140582088824159684175583626343639990594963376549793905463678725882740146964096254027330949635603153377481336743134571728095311934367422048589292102035824094039091174534069173796011525993977577529101878972661243990355030442211951542273117573883285996465407658536864352405842646306411386240357274392790294642799326149083879522168744101373878977874856351186644789098441354214977649474119324117743844061452041049357091939377123534603279138305118957545042756702329729582679988080659451899983937683600254064768404947743956170478366114650962736121400600721699134199093936080339915134992188209503881788718808545676834095121630569096801953208113217189897085015622034356007434738655504446824593125428467362246352757642323601895614772380753273806498581712176303281264967535948563331640167852274776536583906386328932978292337743176834818032406974871670559705459351151466860967757895539678039060233320199253139439305777184027568391638590093668517191368648684228109373439315291899339102058330196031445074474764917103025612390932992455661852590878223160778444589791277749956493386360373798406680454719134713695784524033565350867643963664761107096829771596285259713748975117970781574572518952294261804274294219098512694107256775665551716115592274690579964248647485628024259540296645030662027956829982742881228542981126373894921994473183253736865440108577606655076078942901412158766045662870038540496966165273819820396825481138487393153801590176445450503111968498413947843469542454433971277818125601159614779533918419381081695273810694792771352958983634084614421766292380597972671933743887235431018608821071636851335746160066298902111323080315993303932675462820538414655551693558545845459555697020379562547880157541114200090596496590578580489635119797436851721120480423166377408299613411687292208047611575550485243675304467552216089964630882351327151609037668034997462977179424956383467068595726855692904707017797458541033189548199708629403182045980940114580974364867855023667992424157574463305103032598009942901851739304625507539827192257481000893609684267749306404105385010670007678707105091578436463861444172832617931628457474156716923317266162342981423296771762418182373468730754240210295633675904642321073374098794889061954026560357324606043504864488960740329833059899520604632112899411681726571162177665136007982234877617719676612728906094154253232625883718191444525025116287204694508681301508804989306776674600457921289041085718133510539852921232908364635272172845507440669473225830559394646137405710815359297361893234528313897055874001144132408389368753165019676781729865091612469616150445300472590084714527721214342472372865313657075722926377021804543077841055035417232419834891572459462560191379742778836163075368768208900941398497900065098344921205719075163877417108246648118311513028648604692129958799662069676547550720828643766170627281515653054190993892393757025639877966195210217828714439832727054038388684943762328791561832447332642177429263696427596945380121125842688154377327411836471936710680027704149412019639859270842047157979694961364114743956323650874100332551834014102584005679939946074047104843995514248549100569825405103548517176919697481642549889088042184532761506833724861937117152991501627496426250872947147547538027460028841305902028934040963524529602064820395102938487895310828274634080577134468534190572486928559904399269659673881648100765433868437118796193715363646759119732721132168346691539838316338675097532722123870458622551580626291307546767761787331857874195618512421336370739507623927841834208470454019608862298344485596369779145153316292306206846133240855086094889957775250628487731425836959953369239344422197102256905257717700437273611220597334523109491131279296411682153191335662270006412321361709966915366219551855073174583141935926375658716689060081244561503372817118616770757254544188002794695035751729319920192617851255574858861354819681819850535965999273317556320876981701794224989106575103878796658173182149521618117148363423207637102504844356099559534215931843155095482567873551849141059723401684765806504421366549356780880213179911227557823516729874477567516736756602683406429230200884418847359088966244780163826188938078114766277337823567679944493645625518107262088696779234796939097742086787130681070721778620567570690283847776759808334740199903128957951821720364884655792636686001632112759165953289234488002140042263934346030203683927927479193026733912504030475539329111715093403093745574080195180755736578202424628558912018654745087900094777924605734454175085437968968533869563255313207261249140327565583901849340791566101748442178513884982070011892974709237697357514897146931075303799889198950016319952480744515249915177887272311092437098793613256299129978139098651885695182265166251077069902409497006047135756532035446770284323245300020029929028923923215702175792058289228260987830942678179174098943694231586282036738600748722540180922128526574965348814812799970718221659574482681473444269595003276379695662839868787787856313271917502530023131517425616814941950379428419098740779275704040334809062793862149295943817225642181210823437790598095297455878820445698941105328690175152825055748096276637287797199977655685374541314020861791445672588357523317461600308291040408325787537065500510363628977031248231563211067783768178206455439395366710656902136119016417684954075802325183928349491212648550089512347535591144276138672101678541620731402334873494904090280171429050975803030115246711273112991590435120742548778352553013720011955601874909984199206785259182144988452245193457960690488152218198129898399948117307400545878529170948327625873217819600855219414511299665636446811467920490172018888416101356306275067474660389168328881864771150560493280357343575238887140929905508257838794115002006269174689122234713397727469258955048842911581909625250858250534634687941340845631089175123267517729330069459959856888409892376244019032849587324789362774358081793429228557085429902199634372363744577219095912367060382950657747538172533154346173601033764099259305863795304990230810463473132613464369402097235396413278765199925456462388181908561573240895620776280375457373970791842007290835412324829745945421405143115654831305737285175171889949211061344640174666497119196937513881464437590780697637705005393059642158379767245297077889191578458733789082336705327888354542509229967831950073163032705201467321428181491373216044170535835168386939508597884066832842616398520236569906858147214765391618774429531008633659358639669821265909922325994037296510652549376522172647923410037509784282268930497547897278911111943263432239231076291162787278757250042942107393855245856193178666192179886297042771444575082604777746692160550883308070053213754687144957322552036346778620573681413848527145062718798486818185809467338096506082979459676798681752456960877402689163685099276334854219161977506359101281687276607116048771320230619332355113633219017592126424459910195182489406320267955851732824993265077719741679852395555627202074914732469638620300166677924356838799243838776184170571612867170273210350420438080450712723103745039124094136603155083010806928431690677508945940378115087803607284540481603963725371426366191063424433870471131493898566109763490335010926572860545830606499865132405027638561884800527018617350895998495751965292660334433933063514101530803734840569083299421489029478174149616301506792653056109307186474659966934303272420840464144064578317630571259887797237762234348924819788984977350909658193635294086476324434516175911799927740817967072286289518544910436182386369125859270725707708226540147973600022171957019433949050285518052898262263300876856559558856585075034720288406700196299291305142060854537548671056517621089361610418923316600101046624184808677688571060876217076609569955757951224473225064698681057309180006004499539912717824300397459417066870469436536002548425559143236736252974916314135665663050685809874067365466480287331702321465404854192155046732043837649187155744197872162125132244774827572673887131276303941266980096358817977676136553966063430164927047137126778909949387022836727130595181732637369861678193828438966884325336495703976987313100315353556817599806843353023969477505195736305526862908422829959991823457575303152964915825581771310592539802171507074390660730060273380951372773528832313576153716596551113018244003014886217012282813658247996123721667420836842942792855457056517095550933775972824901157195081788531921291358943260221741440335541352989150846496491952870810830965386678749370905407192785296679123084719384041016452812987751705132623650375876259314445244705129010777138980417494792081686692582832909022690745797582566700160603558269949120576711143449655831713545589164005576204816401633568077958677448199926924053851558082645511469053431446144812929987443466743288863233560422492102420219303041962276370957040706569002131881653958109460606722801016044075584061639248028412205481241726553368596174637330731265943766552955886367715163400524776268982785603532417720542263556700621085413569595993038600191910017353649254710974479521591142487297680616170983669103148509992973540793370533322908639489721047448508727797021877620896196437223378232712843451026270936044485957970611980590262733369748733697398527900313567703712345249752742982097196941225771165328209325404912921350217170505493636839446934010283986415588093944742163730575190461261874189397211192418890201156828199489797726419419585049821826202522609712085016078013118675225484027714409332499821242534304496857377398930647608503836602683200143289891853383756175080473213972695159159523068250672701982080255930891365395860254872488468671672728319475747935072617179009612169870523795956879724004959823581332413259131539237756937272950287572450212397753852942200793304888178632006377230197376356697264922706452468344824132878670121667152322373253479251154226183082913926774796225209140317074911336244728360437653299760185269238668022508587215021375088253329029261303398185958756553686718044609958366458418254186328887563800138973619534975613418019047789815630458867768141614864354497060826910908768304287626693258353342619066880132842336911546293412721255520843298068089328019027620394281764439502606138572604691305371146176884875468111333955444516107559989263099178339916046323639208281125308401595013588282856139864879110304813452616114420135201821980075266087255933703885895719169749008367452899743352285482171906835983200507065281942629084446957697443743699935876375510144999989799592299926387837429800103172584085182339277699597117592653125105901302690621222379277661344885470425812818033771235821190349715034696366642198955942602556964250661490533569987889516145564624601731766371018462712761981297428441851699012983357752687599022572403663249599846396434303663615920834234701045379101906546655737983563107455333943128305912091349397520723185635859828551521560178637091019440667271837975941277869924427632953507367688722273623760102316644849295012736024387475240359436747656408123857567792431952731350976861081443471550459006374991255888684876392846803219944045073048430850968329702923293352691285320488034360688722653906461096824903084047517626748579033968438187135550958067138312093543017447391893346490443091954123422023087911487811568289185215108290748775406633810980941807598801095822295351722797623130216431729918332249941414878535399131967410879575476505613379567035863699826018918970017350971694096873454779356902344684951976349267384728168060949004628297903809349123225525177777288948413325700184528870755927940062471599800383103631512476256617607218661746353127369929021332660889699678623874695392026191093689006123568706940020494380616670352235252847815274185864360352869768393217208262247417401374553379093156049585124194250339107293735495341524337478263088925557113300597241787975625208186169933880464104969453901481278706704461564572241142733673716164776354918629028199253058049597420755959602025066480794428604311362171085668370870570300802058324910415009577943059677597071483837931276935503077175435899164557695669690978680114839335303569679931192605324510395035278335017727418975313313405859120476555272581203617995880310606174513482242227585927923342858925526110887643423913033072039795945533821173174260531928958774656394763963066339514458630741668796456589544670115849254442751761196258314105634550194102568144182396488478034707457516731010921806702853150152846076577549202977218379620165287458346634315911157138829831575818580131010528436470631499759890948870922654367406280846940922232483278537979909855988753059979571684414925500680050036874697958392210709942137324246049785587300079029513478761745385353869657552424127445047088707300248713211742704088601664615838493279218860377145538922344747782742621663277853987067453131098848243558718010936501677633194298922943702312850114031069378433953916644651863643370942106855552657177147144806426486301007141712855286478873808406911648505352307337074206613728930674782355934805350175892445589889819001588056148695405517276559448397001439940096231244291499778248554458798608502370082924043679857803759509498588443851927596243305757648966467531937585003882243436505602890712180585720131041712545402159393955299135952289866294611707689443652065774098610791100599938466204799718503285435967748732294450467734541227078200242061293362342574407733433770108036774915084219423008262571968525634898958661215349646387649776930554507559350083067284341481605490832818248589228142772945102433809985634721334109647654970770549130908444278371812384527504825038849676488984485169889317526405499348752546158477459810106046516149746878817185488857209624576404466487713737614012160486929657206587809439348662556460708244070953629445909436098441002093428984205799293837412697529347602339375361306397028591710610217427431305898657494020949689394426902444915270372959484784609614874170644839716836450172076707925903510617491570167186543290656300512191081539145458942043489637815573424850862455609050228909796835392392009427403763929594851438279985053964249161765724982869843368158270527685275866591804841954326521731903148284911154806453217495125965183640706168450862852499349381333493916114579403239694779634161252010087811244862345166536074730520206214769037917919014673869655325741542143500127090920624141263810514104661447269064388006095758627184979362803044655806834110375554000380316497189342670268271114861395726025907927077024048053428070068547054374839176495174785840499575772836753944921051906234235653383673177978141689979765827346402615075607230162819757721969250876797038472303139724485500627451576615044520298816345614870628672427226091027367062812087348914291389865309920281481654932608730364241237061029527184027146672743940498640947521317194705195964045451867802308882117078408882360628297043023288842693380684145972346850172023903847379008068955465622819139505296672461459909041372151470193685246312841387685747319344874905141847502438596541019715727584650304253038649336600758682443189745089917837248782647085221678347535870092815002821429398445348568619846559223116547901244085809195936840178466732663468344831960475047617557653525657902352166371565432585956014919527699595064599782790165295954081345656129776805368276732433301930480640756299240811702589408189162056139022977010865849618747554136120201661740967217161578557734880635789204611148994042189604648233033656962949683778425650884863924380247183561630678571211426608292866567841272432800493119522665214236921886013321781008422318923342315438225956377872430320110255071000186176637835170885332941638677451463990888168051672822514758884974581007766353021213201746982802494563114083421641912321072415240424867307508044723416676391289977719902059018202957424956415568082290334896524774094844555208779762662787793679794373248201114277918541844277468114040684357579962420813085886012939968160377635556223879108676566752062658970663146589318411460942065598239458182230443157757774504085174271142256305287658515799603210142362006763174587366413661070634823794092174374301709931054309336963102896576114160769907149618532571477899453564699699092544254194500729545011583394595286570989929786846818717313046964735694280665389971450035720728970073333257236409624563711944569878502245971159324379389624311388693047179784919821483260200734202048765360648276236627028936324289468049550759774462463845468249495019102163989923038407598418992018244275862324625185205893336273255231421696476359222354828249868982174720558271698048711872711818093501870909081091852604740026643178258626846974201016238540691440817227783445800125764714835515086321809379928983789826831246038046676677735682681148737404521181266395685375836139315336627338356375190363399468663802721543417217077105429301311857385806677068175324883537343389279688091062257394664384467675145448827215047190088692598401772602309119393437134447110121318266351067186880935241193771700972858181703121225788648115459222192484145792650939616057359658597484394418011328510303567032102765824458271155853170422925833079194839513197437272096664629424680078732876009279480758113504997804382685927144162610152887473100745399819867651425342072919041167703267292029952591394771174801520478400667984822321851897933160556098847110397753819453717779503330606880610145515933879381649623481482949323611611696107253958728561286573828851570697475113040555717523772414527732488560666938344413323558344171712857005167190637124302124023545345745485146679783409428606842245830126189748165639484881778768438804342344135335569033655628945700766318089562828444331521312769440377113196013783797165511156037428606288247329878305938176784105455410168705366516367642056587934519608059888979580103468395133791804443257050797834955889765031484854533370951518357943768648017345931773048508330347695544072229027923336526217453212337368609877534114064379464174683297029837852413332032579522292599469894336682521060629400314077848448074130115742670454824237124724334819204641647277974110730766190613176370358108242895821245124181982837761052256504982069297485059197967093517854927959812905806771158755789757727220192527560666415905336108611168259066068048881421386338431526062172239971468242726215262403575565980743670450891926122063426316853541141460772175535640615482397561034040281466327469963841987529657452235075762152266324079613658017735654922582467131959302004787986721493781255641148700995913439048841786834285098133147497160439109186049632895625296104526882857466705725919076035380430002065289779131974415832308104008696402286420653287614406081242580364330539211201198165551285901113222567483680646898017787135959157514535395606995407081443785577765492017234101620803677761502811921734638202238919945129064480081068656728175332249548878297442847820099163973106068427856807899266842245841889154070625387116319274785184438954346869487098805128707936150513770196760129805976417011418620869786093956663605376160072694858911429843248765721592302588027706984138605445766073777559381320522182501724819184001170825815228670845325377891915814285607287726659636671485814302600098903151312653986818387728256654959604252878991680680799433100447672920007457133455110257776850273786559262546268453567682949601736418148210079719750719788573671474145474461677496573739623275289923995696110008992215490939821710652158423727633743947576273071954779389862360428363404259670632375539848165050417690952672091543777075505658098024289400321937465184602848608451059996545303492352175777602672888562182743742491348069739158340424290326578726490889635103984629040210124432641616202042813877849142376697331490869489578106283460131200549751748831151642008313574152577858168426505196841726863677740013366810598567098904299684755841365506902111686446769909793212958080197861399836415669794149390573053704878105405928171488276219367193444670148294296586049943543333587128663163570373832842647966359273895300319811005295231575929080483211451217538166318421844791067868598960315153280703158131448479923238072438503704536000226178078421406216257137798785675300001054172042438739695739218540331687087433637420559020543523094970561091050184376034037652513808409640797493427900673848935402680223098816645381550910420452240894273201832956020803942389104467458971544099043947423856538216384406894007147560496055884274853415318264572320925946517312681893774934535668546632705056012609543325131332987417937421549390922260875614510008105447473960367125389378942060731861060054111620367476994499015711673598318811648821125333523122848382205009701243720243128075003323330481201756094529885339931303147903833281110259780873943429642207266946582997530143447746989522554964457250446540518142740486084021261492565699099753319448057356332965504543514476178276906616419496007976984677434802958129680275227645508606314968425134599426816454540942461836139292869282489565191268959375052403192462238365818674865855382138806557580131642224030915057789066229239226622216076926226691623673287517831141922148464322027838094828655680755392879637482423554397853018673972385116723064031855791909862572792213771209861200345571672866487524208302389349406499473256903912545236539432650715634452902212637166072500543070403012737864440722116870563287515912685922602429715835055778268430409404445811481454467924451774837402661199824312174881432878902920401228068551278029546966044232043645379375048505476062792674562608504163961893711911696700827863566216889023034406967796987889820182626613231915093591571446795931919934775504166234221178508714324281845183323914572261293579250882928243173609658248747434749125519764338417117458627353433617788703213685974165826785766610660690896747992632352341123985949452112703483756293685877209189788781207814450747541892501810351243630143354358825787741323901258254509873048584581295312123971756242753647255118021865339365820951960853696895572137770144087688760856606289224646357579393325916022922941136576077888551454609569403725211082715208268998303162306116189889574762888812644666921337300189952455412866104621244028298800147974930671634534857049530690497192985327029020566149987282827909116793236507884341879924155460279016155396831776428556324953695652539041564446470499073368776642222101293539721768709198814942850050942839187274226175678999161331631661355455053374892591688098517558601827026463960879623373050238547415163888482343461404139241940496573185941873907337383331876079639867123682408327195107403793172334691593567162731450319870508011136520970649211698926040002904380901134867822436011108963106228760118304951433512284067771200796645571219240920544855447197114007314508031780753431724303089406330717586274664527238334321377586585733262921990182601169458870133210737340667577790019020777547251686337235624850021125932756998715949251024098561845320180828251436294154640702508347782196234054060018572117984078597898033636168248869408482364316894115246503640779622844156172263201542675670151817448268739481937189268162509930520107544729614043407020744288893641250133561343664513960819087434676671648703925220071899057950332111976809772840533835682858156882805845556540127647928187124026880795041689208818953488222996247567613752538319162784903627324574532787807259591099405928307269393824942478755051876497503235198361904183762856481941338545750169918656265684503453711651992162247565406318526822504092674443228578083651781972937956988086530846956419470287381554961205736644444243957423604922992121368567583001857505390336240525378284079260426666928283362551608024302570611913409592889080143832271531588325269386247583772882016072369467372540954541675400370207428630362117915288029585439071303952514593566959191867955916735917402218337037470463670775041554939992435719488827610117145457451381069070835087694366401037059202161854613939063884855958950607728843058128890195770865247618518005419083409391820547864658414326095218528351884436872015224667417045500046444325418914467573641536933397369711173147135972407002871515360033826186972484527846238150261742215097140252853295245431977632575086099847845942086098885595191652051589865291126487777231517929134482979146869587401320479580889708727122624986317469419628643070585669284652478207369140304308183836237845676551917773580519114263170962104332625655547321282932876519108573573110541329485436351037280541128795900432286667948099501347685877876052301107388307056051146326789674085342283025698958277548165766594056380612312456430128375645229248082624247361555304797097779861305387929675212540576333240543619708943217360015321229179734843314456005651693062289089608054087111219432631148709415858455987104759881138847178909149044643599537591638532655750397016224293954865667267438741744604817897594551331794362250215910871419323998571745717827281343629884948568817258527787747991279527470249597154780018895001351880461574592168422171878863663178431857385689382497414736780107078250315561967931801354205820674967721809540969770286693135401591271626463092895444640557465299834163781604824420557573336660782755324749137322828663243888417346790260484795651276598186775742034786573376375822623948778736391975946414159807926981644456085370752387913577976900195496543536627918771531362169512362625100223787448901518051626106047825006869035812157010367855592563284385126155734208958246444130448886854564370092123900446123057943269710446504260542200189870857996004542205668456962229798898614105030339346081263954868707808273422338214211418869262815236399148546567695674135870939230187018426335816719395678091516924158920974734273585107320076370002254564450510711164094225923226326728820502983091087988698161059575751129816866542736040964485544022935016123422143472060802503298576570656203254570392978285473867345890369047046657775477108265734479566446681812637908145777366341991292094134034830524659157942862745654632136084843236341845004040053950787962667096613323124489834890348307590799088421905263469819842514065630405760445679872420784512779347851599422053715889827850025255702131845875601115111466548599689480673590417114041013970080550434433313784232501314066334458390406668126025417291523649907033041079902796583240997213076399095973455217379752474679981097954075193928569236622883847818250334426304903064684295972229620093511943940553830350930017782548719137031215838852419064983924530910492088871398077754301781729763421882054844589575347097483138617265349810881193001006997608494635984087997006307551224603904962157847929777981427243913298980863933390082110670437399712786370141471806427199245897708203479851372621629507474074059051698138810188955694336151167217431727758981740943841996958214509901459148657342365721922231854669560529832751232739122602571361955210189934352085880198176509158891269361442116045771322660479717336971980531586302580780828160448247144773081150515914314970049211003628831760643254947999148234489070485475882332682750845711913718879271320643677174354001061196598927717366302796775267979393586612543135632448399503417225973902114343289760069301161970813093323448085030770278822587410848820249519169544155484998881180518859611240048132124758708641970653885762972394732948679104769608234267455938303386504898030155742138071511760239058796385508115236411319566995760510890383871295806222452525744583923830572279941192983405405217799741156305159191997918242015905025504333150309933514508867215690028193414428954601134362347422004663525597489412051859516649572764277292757504956627591713907991334279816335993997363450682246034476685526893871398402595049848236832259269077071626266537736643977493130187246214422421836602201482890037688699671818740344496278265803824272323763043267729312284152901456037280434293596914691320211441020085558778614843148906622564097098154103427946212330308429419539282739782110647917802665241143136452999721881424791395847133053005601168926629083542058429280204822404714073339674877664532195443337085523138896360553895957560030131437659262559657025700458006225018919189527571512764524987720934284466883018626797406362322213847912049117027221335554344095999850792167895097702943752175162419896288037556596246167305894392608210700098285395201061977710719505956781802740265279037851106975423430856871696542091975456105069443188975206958201213995920176541453687444745902968353112521932448350703327386550254787775853072493818287934892022539306393182580100022855858680711183001247055572489991461867019917333016796859261667502887549099222840617836533948342540947252887365460574209152467401483444410314584893718729507633241705629472270179021803709969387430106154641075100009468353305501323817197522917417610294982212247441531856602717894310065513819661044023747489629442653085888912083400766782507950774773406439025496717841272110562668867344003334188592764408574986867841219937798134879935608379772887723910956881921627446451970692836792824898432573399990824107515001635289090980001255541471280518536753460729007447008364382333782104418993654249096681838806844847275349799935257363141087396373294052025015333858210281217272552048145192813120229226223864575394873749640943195271858818301485904642397534548204346606113398217061036815197757334414850449971729464847197087569101654799034813408082116130964322436289071376330292055589594340536986692779721211432087709996133518885262035551191838382231390550416686549011449169924150274589575580820830140554006390173289991566644854430077876965248340117431950692959439029630122204772464758682256859508947834707681016365779582914294453664341506948744463243898816658614006521010936735582134736701000806113109578763661823479312483591057921155194432008810544328282517178929130056261153090155562311145015783267400177215449816413783065205051465238382389215119444002942746429321054825992351525906700298401205135100854990028850318449624418237469149128403918787403638273233770062549556412573692608164321934790116574098992317286261152499915604785077738628248432113108072122694439128677382217694289714091190673129747801347904245729533374083186609791010248786270599635325347453822225774998484641312429235201707924899795588522832901425115812921538510419191491272809274191760485449135227395800027721085227649862773430546345415667699823060670149248443748131379751030038936387294495005114360164916845335505256516642391564220717812494567955522944513895855853094569252866924816735450762981152586307530906458748636749508287000365229202377624880265525839301211860564685323215928804067946213770225323343108686617498158287502138604762373235198420062250803152318235009985636453201301548719847361947804800885250578188109782460242297424534711512612073731404403891560734649920172486744269422004949783801049957466685262426928551453959439877573061922855359879912219768973409152703039678515468150043903134337498203309394208020396676743356312550369471179210416334084831656811358513695665672844250170449483292828664565553677435017692221938433256492421819998710141464961646170446644666475817396682872941739537721106449356036746550222191592938778990145124208064844921239284774868213681855916269571130342747557313291524790972892611079629314883407554176424389668843756465043696743067057354283857487670453128102138679126103905420238367338897861028143969446242019729169111955955888897780528617496068332869937255477502546987114927214562465315243008534665099271108170705358863322980189651829474000781514970862071875007023483744997121566849901589440040728093529944804648808452668216768757137601763294602593138998943868504043673956721038200954632681776556382669422823052505201600118674143599731959263347223648180224414721341034325581230139093451769966732192769989141253649920394165561982926460464536520108788051883345944459179024210303348121769223746303015028061272160723847559204643235745733465817404829019344855394281482971729607574990015048226571563142780490631172190599435691915473232020847843776804582142919133044250164967615111429110665916985614207509629708999852911130160990330684760539827012359686787229185369346049965932355355003343248047674357481242756853669618891010152581731779174802250162265654489331007017585597391698172161902038656954126468320750106540967422178965188933837353252307136670362955404551128453129067327624700630596191858243896909387587691833409116406636098167561424394409325336620268371468340018494263494722183808174658743140743048482911808730869077650090276005905142597024127093552195379832945398466872210688830582643771689815978015626276026225385636699805131476773171528618105256449037692093637378624407901625293810664664375004986866897774253393213489198836791327878921823201302742390320661046205172896802098395765105774677367850572295271433262111481489271831795159028965582779356792159107948149091605033755521196863396883146756567720974210249224289869570050254226013670959905544168702789069857610553269591392555068564235867314179677981926443384157841755825237726570779980460942640218589553775211638773668182794658040092612139204416982764102397294856157536922912105777867198824529424223557930100271291047236958076411480982417537881544462537472165308506900291475570772124864582589827886262832129212947597986625471917380177937083526711699817785284514930951459442264603421521188373821959255524518566210581261705575417922665807656876195905924945514760628915962814407782370034825165221355381450091970706145864496375101573255634558543688784578104885962990524006288812804500335809359938525060836397176755793366264284225515084773837115229782733814481231834448446682022186108461031710028483412423597577128203913722748060470127631398708816209693335419296940746531865017679138760828067520002277405181947114087282433452311792596700490975839561642780915947678825969183516208664971629303121044993281930447007989972355780631664746408986183650544563357661882370992951518600533238745279464466318665949890943924404263293949955216365123317494893380214056713926854807684363923144014061581236965076132976567812714653048539997759324059053653075143572774164059215949660690867060541641920730900633518627044677388429672621508240332261911808977809033251543194707256520995760551718122064522168902650914664153245494567235251700177211649310386202308502124695658108058256101131340393061311207459377962879241572642404651737439744503344976365451109748651329581684168880326340201702666896127364315046727354608284458805416032019391229504720054424416955091455068208215884252133875893072884789505170142340274579695730856700664080459663963866324534722527461181587233488943544320386033331061822475760248196400296009320001631357758931191584943907221001420753655168365680095155807324718957681339988228524239973557981572501692027602937940928291615658731494594400326103533755352564396127330371583747136081688906665397690976379037105443821415722133225839356725222811539269730125851241991534308878153216098139443747245393063195317278427844063019225666253420734738559102879861951950461210140452145871292624432491835728542550124689052262047228526560050218375741352191330265087129907710686408276916027925075194435040110766545554745798042691106677574659184339970491497564438195312180283957849852230392676869205676541618687611942927801762974596148329994314780235365348168913044267369230521861082424321483898377530200689758630724474365426294425029581916023733376001994454195878097543091912324534716532461443041008894537566312025989949106090471204471610874262856834020768568389156108854816631509115822517969669278025646202415615176750148403464243830194363674074925968292081131866663080192603222049877759573320246120884565176873498504476938287491054391125421136721292473634879405622988081452566503851233559709444647247036689845263633024253120349577872583652486935862247675737389566460627122388047198273464203141495636647528025122298780017876596215777356047050428247702760299729470684581068907659957840942476076874670509403712072813657702483579798066304504896088714430157612533347253677660133260912980364940058432422149223346078088641061904109784740214497153494312286494489717903188733299655419309263002563634193719649189372061048575975238135931092555316520871640583645155300785110613158013299955720831501678338910137757764775761299229789673511300232514147705942324875122429395463518569848565966768996839956473221759240209985340090411965783057834822745601654588280886535724785931578017672882421069885087274469445618656915885557693357829985446423446799882879434463101384690366005585549793557384533966511901140318864316464608225147372857969515175013396146726719758676731757997514432801699243296685940771877018777454243735274958132848205410237099024658801068235347391606033934948003927241507128400455736101832871553489894296190524964453422176055426808466885686734578543323785477884049278557515962972420174058918697308288364353825066793910564602570137595963688786112774622993815830331698197112922796822242581574338841126919095266465496739505803477164944688685837534852403494216129498538665152443173053732707341561998979976488008191222547212789571616054681734950288472973766578536634835623534691508312970953460743191819877977120289980096062824785257817381252104890695801062299913833849488004121945235846177826238327235304499484057262220692895114965344130256124157139308731800167254939089141476020109067531842577105215173294139641668307970977204739075702140569404531470471467165860008132238526722049364193952528467863813557489631019374840487092825999931119075636990697787203970280003042650845423044405930386880476498856208082228746339829963457153710530749901549620598443673669501436083248466486176022063159000835420213016251879536303649667885632202139292440691005483320846737863549854590238313961148801355541416055200995985463284015579104862965043779672633927695814335697015502536532019646579953942250440067987679924958419939262167530950674302225999069857795720371919165745655887036738930002074922790347847191551593181808988095055182055635250013174095554233668899673276491172244161259673850002347205615359416843529922859509996323481193761895685693046937978930126153066240535750997144612029728101877872238315503383554663352059054608646334406731504168889074135974261948386831779317400500773989151239503303889189619680233987490317589871847191909008782402314828366093878212020247849431271099289021166965756144408658060021152311479437025255569557554869155070353721860684030417218048221055104279519612918159313739686711901833025404677346852152495041382712200365875478133662553906092781427081984425555581391754582283148755997138362149490442025226845024380576979511588187671611516553551357955490537245537047648993651105849734863061644466040681200548666271769851592874368033186240671939986031609196291884495681574727273234638190581643962953948168411705822373538110869471312491738672344290601820036063675547080714031790917742458030445396077690954893360943973578896668441003822753007092793313116465218866424498160688050192952620065213031298108416408932735855279154544366530204297880638699132684062058631071090646399438815641303690352860217637031578621252880116025997073642301874517610554863339784638051139378876548814881374137254899265774033224875056087251894678599314351562173660550337884077457788190628896320027192793816503130680112143947142603358403974368377629448459571932827396028873523452672059095079988516829601490713873851259456617573513468540599035778536612186127939733440500796279551128075372142872480255702934287744996825870934553195633115082411634712942293457533631209296420300890874468934006667260967857836900047910850929417446643541136220273793542920242097492250899730749188733033896821060832015235479678775137225459042560171976608150650735597807100427726595874648093346816921565756735925089069055447060540305555844875245351523238670355599518331672434890226030732219747459059700830341790691515507018021657474290273581690859096425936971907960243931424338645258376707066026349343686949893485346512245812759728033530356951744419985536570008996031190017488623726270554900805149755112624227939886523194132468731285247309731782850876867349716318099475450802276981594333893389649773415285508620945151392638551906707974748960053010922715803268911767012666081335237596944663856318575932710062413249240455105442567052834913117815326678890339757162234779145599529200193122215175157893916930389591146499890451168727186996394690095408941349147012545808458508435316022677195411927152466715097347327493389550512108951095968066499913198661096508673979333224769915654108803509494619013197310053703448677136700265520737185621112663229886053202052511667555371444194554293714278530120964853629839835301305722434570902312502788343358496542784362035919778799051632390707150154384799199206253784638455099531448706076983831370510638634296011540454849983698407493986340027434324206080223830316331640768138741171215968294216822912164719807031551363994529944978220281463190832861193768898309112159979619619096635537869858167441640738430935368934458695496212102285097727796179602235415040376438811148164051726320550536643678354439337034561393835151624289172759517920710414989763960924360892790702266013464862916806339884631043152233028785070790277134771010929453973633554051436964857221702967389748831999216965181892966625140157059827974456315337677598081858296821452956555288586593483461731113615874689896892561357465769374137160221484754764997071936953514034059221398592823273087575122459818083279995943166995362362206494911548356625864512243293659635598042029631286974192277887928088898577496985821510384294756280333348270208177295259436476742273167380743368307343037304533064686057279776750748038624289593070746508730139373299711299260103723910064543611590083822852122748301394092399109639772364218836096768810314572581774460682376934321649566015101084373011690333928406854034530922794065480353187647184392571059845927830901498729402371988332369473200045827164034168224930664459966654141580900694056042755328936433843932378537551279546716425890082663880338360862790898248049608106395800472574819888146248521570926785776620576045372709963059399138678586113897292346777034643986879614523299093442137057802066730477629106043263372462049615536519932981359890830428010362442869089504123598053975517180449883444206364233060040317864976991582252474727976628587947032471382455503582036357793610623082012406192348222135969763850779165941301200883499088442673429015979168405823373852732664980536529160291704991986597801675279155281267311027861524536452293361274332937395101035539329378030241542990383995460440181470679190480668778148738427285933727942100004067428294167587148730398121389404380254032445165112710735451905511808584235807512705673841681469259803511478107427057397643979371001110247760780109037985078569145409550315421554759229161622914331203210411404768303911084325534491222255652770161761886783220142580956563739650884196952469215469559679342578730862146293207008403392555500824358449454090642828948206393261056603039559213233219244282402443542716459038163448090430533897027025155700160832886823900243612780146979999265368209060699052942147553289956724613826421233365397043218346124198819589691257917987227370709029801767297129518232575909530365723038613759498968695048648894897227486593828725101853809860421817629853705661235316346307228900503420537965653925126869334062041590513351967033321804712308691358474814233440409115539361426737778535499798181001193508442590546085737824685780736373894117885779072773966845143274543521953255435171440650113140106047276579704142555006303004739039569920918225441417214471183709299988534324164331389762540333127400416379647208346445224152168280103342833649294524086149313064005546875948869793792513242730886339079996138998788624561922522959273358922385357190007339590517721103099352172511266228672601596697133902064054464473293744679602556084202852189465114575710047025687957642414288969850127262141204634475137628122942829547174496679412732152855704136194193750979646682409357240319001517873717479051373855171279043158220314649132728211073272153531762655928055119772694022432639293968225041992353635392431136020663220687182733847050108553861416701859714059025247526051385087446790129105083407586932999504179820970546198333721507299556191834183018781182595928847097127604272378031117801561662276695743490514891014251640886789108115049240369820903128094726163002342478560838758843629912720344780523217295647047263991281449830025455980555350322097348802702044413888375436849560651520106557934784906853138649538511918530402988807982008357081852324994705349651714741801067015343489571164178520438003422020868021778441116104847136494661732694264247278188994332342341964814514948612898408905886534126608540802183647574415300907045267534716072553967584045647624677356379580371181215548961464339602368985273097721052740880096522904535836423170647267048074766613765396323970259774033072253638864308632892017424069892902524228648752111945899012869771625886448323844771685614576679915456703038346795420964387953486810261929115556478129612431719953936503418773473131401263672130302929165340858219582730493587259969819865536335494567006886945239258304856068100684804810168323256786271541448294223599906986883990716255592038755321549738457578326354096528631398873931219509570022757523935231282504508741998845977397879290864703133853793922455598823595939911801145762875611698119683316026564216373296261653415466467134164769738714667507199387806272127360785649512047462812586402683670105152869524466438868375748314721052495021365147700479635745194704086064477023386599789277985411153190945617089828572270985772229571121077541322435125625682204581700599760501542249053172485120538636641515666476859988924102696398171364604606283889234976618333269080716603461186928991941503358793759046611649434077082964106179749293654317470415684696163581251436713105442388296187771705441051503793751705640774430292859285044090330189048880620619475721989143432399253626255055294027769349098957247011848569009983703369454907785342243442879638292526996417412617511272191261019829232044867885179101640535404181255670364110218672750824225365595544397546340408278997298556125560124243892577661345921568597202864624414178609148379325312282519190291422470460163186544778899034096361501622479327983815079262032847382162279185999404985458744356065244624255839261722413785356219886344368304452834499970302904551585516801628638383824371847884572518102437484654641520916860554620437124407024514167474636989194253988714760986724716065287975161744647348208931994622648400400895358402966312139348512024818237746010321712492416623646278356581527041052602004743628805979159167840112599455231571004166779981745721527146309347550922630456395010436559729309108766238259472367393129997011732921514413685279208307361494451479160216141261806974081388685400040935721937335311919854095012611387280495313782067632201055250018745143202425483986261562157921153008063249780938524201457640404449188035052780710290265183382902193439710612978282526580456318533994273571255817116516165609850518903127236356482830168430992641925564028226626356480722820790588431438094732016895359223060337268324281191363696550577682167793417964040469022763113893286215017814191097250844816278137261515374334509485572240520855567500449935088501468890888268634537353001092237414235987073556064016893549159965548711141951063033643335395601614136200978131021752612273954041713561925785340204985688439625602323620689514530267206277950649981035008737334278385944797673073754828065813832371663088365239786525523070045730850490963757790972501987706141446619335179533690786916705011499934674900602031489817158978437801506735103350540343786295887759813510336133490217268026100342804349196960497366155925519889780969193125085770225425796028692146819267668675782674371341548577767335997692871979587914173564674708911444265960240700965818012752679411231900073250829320187439615175090637671840752645383308749038902386573592317345544779843666791778563940490539024666510926635732457960698326820207113304020012513818237043414922429330979632956868717347271042804585460849842702872898678524098262654259284970631972436980976911006820053539722337624082332087670566916100305220877850113230536647320044461480612966961678279632384327237878224742033232807405075746136874194514414998564549558855580564915007269112511321964893205719835220285434112053565090197244165697768918906613528043384187688142559827178504873690131874591095303990451740547102821873434381271520786526843615255959513175307568538948616013053301367282395648570317821456644372098531621827005966158566595326799147675924980687121763095065069176990910608065926349043202490712252379491206709261409254770232809273821903961976875380442965696505047014064452658259526734751037304800972470428753095819815937412094333544584744963882416942956818658798393608216268809778579585016521638761612490281462949822613478836464275187474162108515571207050363440742141285217258035220947196096420373555180604603330093522875012948464892665581148011335560325516941699279397115357924357444242458211792329724314587034942943435590417911873726360555741384027525829560630284469619089814211674193457228866728653545600275551246328398948596910670174897902727631336724681543575583605969076710113397831065166477696066945223316373296413235796155925522100092872348285382525287267049024317176334814941955945685839364222126926262208408128021369733744059360310208650614051270086548465969280135795214545687975699407105130058908296416278792887011364715279479063221642083274734033292191961551834676393705357944000760451187450003838685012211653992652631448153031584705879017613731051814825306031697964272020603091449550081795744653491633996952763972045123321074174702014711913390153063876376579899292793515184544002509710085885743998497933317556567560329808268993959026098651792045006645191007006750339025697502162778547453068557972697701799905694330672455798044252314366910881696675282113521615102373972427332718908370709178423056115537501787916899615347588704229973684461951001731082149099994206455601968270681792618151641492137071197630197363469223757196537794479279786848932037902233103384240872571233068188763278691110703509922204340339800019326024529689715042812314983629944596101797123010610231699270347349043805028757402068203037879793741046004891284632602936543191703111404876958563744831552091650151547173956457214019618992993422599028696296881617338559284901990387360713167275857445277997483878339508886753591834732861430148281608757584690541398425064276378474962219209881517323627206082494418597098569742239987856105658545159821497876457665857683512264851224451128348865741872598546709208903298614458046484354809531416832258307768899946826362938840104971949389636282738165562398159620805792027358787907221169464480146380550185944602381334930862110675799566061628595674875340117815205220191471615585955334474642547445876967903535946697117404359451291003085701061847558844705048343068608605327451562810789100883305362192925881855336145626735881821350889981271638230001030435576839200989050343737386918785292796102277556613347524914391054022874724201974257149029503619092952098449166811378049787062028803163229055022540727979379258844209074134549873633067804269420057481228794850973795287276021028525424164697135381981755128424614861165984178733745377882198475104089999999788361238379779749519445165856442721657701935811211891285288706801386539664521190570921911780956679830584338580327317432955946799947609313591323070283823492289034177591145772827039552543858579176735379852916085352422683424214233593814620048257208961168889461702159935695619345198321999936890333106085260617476762450588021375241851503539351686766675053335682810976050438902231285202952669347673534464878096488928047001957596857565673310666290295356702116806312799858534455053720567899939992868323739492481487133075104722346060868809078609010708142549255963248664686127523588127235762222228710533952202253768359669686824872613679000719183627843282518622814001685855175169871074644327538248178402842016740337180859703204724446824401182114025972355814332672255911145982494233618043228929358312501199860453323851415711224874837875471261652202845212230284879492046461027361589412425122124461462514253005988136563272293864347332075158054248061891302048997477637168170934669439711412642234526469231995527618984455460028826724900576878919447059149405338020678581162749079801826564103475930246182620873432622786468863813647016307735547996146156519399326128820577474640462265928273665948339986815203155243212340126521128769811983280322721120892748674385481318568183041997091225430385107570746173075745988175567240677646623155054743629495782320980241021709403550335254275538428859277618255525360696008417297894921812827615955744659471121661313336620537540680956496938894929757613175780291644736234525970163253588756461038306581250965193836885097527917682457662713648692745658929764006407759246328926234133425863328078460035135791600177063204311085347202490852162591615724148710073076755811286422255710604351147775409511388295472511183650383498619534709312210545824150429998090752082168418518542486416556267277248568896281776806311897137146868113155579188533186883749717191085363125685866677025565392019779462524165893171744033423708742083573627319753003063679429667416643222866695717149662350172729344153821377761964794797261813586143055800316089428893107629717836014247008380044852697594657968680360425446762277407272937103351671567579521600475246315871692754422951126910708179894713339940143204442625076722556177593861533803975234367098080948198443962855786011714622777294000606637962709517496154249584689517371326726325072562551512222761709193768823497567642504169824161765591524648945225079726758672924629636199210251285014036451724131960509337181602743183378430301821963276761423853897121394736428704522996115503430002129332255288509438987094636309693806511351254321533927354133744432013637382976493414405530956729808304490840959641035982269829456455881295105595200967293498987056111484589436807968613767418529087257583141604294122129054323332854544574543294619552587722984097707635350305483326237098422737111287765398422688558500878033201155940652400472336411558537474268672654777870818132627923303876811050035129158316870457027371691562599000028207346919056733925135716635953942172633424794010700115241374574975380473468479899545851479327725571959243432675195798152472157436328888043414890294985004816159420674411409891220161004519820992782671224049955980152450065670666384179803578042094349507134856994010861047685243090781084575104334541004325703375643710002569731860811452754140114795024578580905283705839824528136896195083666969246252255820340764241908589614008818330701023869653397932215300076503388255244999341262171719229415262750193852823895321433750202486918012716856518389433550897730023808436478087785082941050364720278557163480619494909471459904840363105796452968269578392475626155352511404848147128575959487067653804306060849092773665314832171389359926542244127398824235232966097536390891792368743981112378638621131584212907355050646690795196083399156744788741754414191614636686991779005957160063489472512118527917303647738170724316612918994388146250076709491320431997402909677376882272509002054452801033091534959124549926663849591501361665339520062718552902610194190194771885962022653029064036044099721272972949736805343510187325857872307986898519988826405796372422543811630346541784929812057202021852088600109584909605107310570951192267193777875766311945814894744155812498416919959048110970264259922457752344393330488651850295213004867670263606157512741176723972814044980009962137222873584548425992470638538269901959324107961491090277995083901141290116472574477311526830563185166197560840684596912297130860368830480311168708335914983844707004421396202175956159273021206101459109649229219729924183949878535433109445832206031143516865746021582370892912722292957830472725209495836505422055247091792158512659088601515610651515389803927631436881589853917681755643957998496168219359212127975426175943361757577209762629877158304834881588359375065013086508741396338853774998288974513543746496080793650207019940280059466461216185537734232676697621960387533353218581347291441995036043861019667377660682300254922020919541842444681430441111381784095456779631044198779302538630255367153772893576318278433968069173601763804440066116364132455755256511862061014767764940948683083245289592174044088098576882622379141320514309188317428258025409389353442022001784266514751426286602289391358955882409528925286686642364590646315289522359055579065803480620699664626682575539921006185483279261612626556670500791146290066813761125176491357230866689154474315456081306024713326997812107959149104215018761175771277402356643845619494144020299750921583761894485798282487735846545085307036852682219781463478668860908809427377450572176675846006554320005240773345595297927568534811228408675005675702240414610362233261640416227814782131314373117377352406382681217665531051649652811558197830074413892769468832885534877290798550659583594869112475238365122465077488217450242625275270259698467370978632460416273126333823065014626173353914325977847574810944826349083508050017236408795575678329250995231040130871612278801208014925989550455859009438871771416153064406665817488705553379709230923659130935988630896399525611307790640494146235125436085938341436481410570144514329723433007255338679069689309160043603566902887053302757642877967610427277105647935850230449403438459208997033259046955186737610170172532195974357483351512841087701493766032409514080083760640663205657078080700030159446589200633649402491764352893412108607493975255902368888875131016707887295500155562214799603128712368409478498068306677196471510218683659550359017449156788615759150444819130805486031657925204853903592230779780894814637205226875054609007878385818989581628496221749766020147755932439324968926766077532105261447104123557418467154576033478314937475146656015894014446558228856988936331808043798633132345095302353590918884196640887543378375281117072855858973798325459034918893732927076024817742764473581313683508423453557299777206739400188483119812662584450009871399102831746591303032747945553704825924976809485598631819985811736962166986456114286568783795084192054422449788264020318084796554404519831950823246023854444336154760208148076235676869183432152327158940493859141336066723038485674418787435650438348070541493852651469699982828910597724541797493162309090853757989021478348305230716779813889357267299145244107686225071703606277526254932431502833262240591458129951017735505789918385196868145576729631309090103900637796079483153886248659505720619561335961491368156683112494952749104066441617742475019575242385965002258290152647953277743925017448230049642450338508969805040990863438999340087639965290033780007441282201708018823917206779206556671416969977592225352008790725076077923476766507593520378124122957500788618348772274241432304518473706921365791205375325722857622417963994039077149663035900627965598281980220017264505149163383801336568415061145015347761939347460836295723756881266450528965315444541436433516805974621520206206190446098203953759084416606037408257397746281962415949203907783493000171546894777662137420359749276554216369406666696182953645689937800470479366495049078188156730782926013494964643426998500108434863604901696507397779626624391236846882108661293803244496616146797858135890430615266604745217068800295982637404195245611178955574934591805435999028553307745862346149667613922462725848505470348314321128158155947073498368692292630271357436842549973899031253241129119018448529116086265315430455673198418710010889240720293896215232882835425325895215579577515242997188451771699902601074858716781947226550808778293833918509456103230824200580821854940189015999346676706758814676239716857972126733404828879633153571116866266620044793762317421350312470758422991748175489008243832350107178024783437475731972409184275049890784033122985368591933084238241134414917513345754366420354112128606954472183037954156122526797714640142004757217927479603353554407799713056432357080272590369704801790200920981181318426789188939509867808238802484790182373799228481724905604248537884228584143960227552197460291278167927996503376649398369073625195801694801771787232397492239514143730395617356251156134858483306633249369902612494526419500584959614275797512664828189427515636971944309224401380322763190381270148686691607319186102848947511907966320350125366360046687958252434986268595490072319498467866753824963274584769555197241915250520044024104735732822127001470653434584002799420776672285546870099653776961632539524886037508568517294694919320662168067126910546255017991372220624810390447590764748366233333838610284113743700285897731473680934816684811457840179949564124065205175117128190799608870313015619443457667254043594089401138476022514689502235510975593001298829156786086679868841327776611230297963159570134212800369247046898223738109027936785733758149264186109251566131339484658871205795889465935030548285993205635375312831305983716503835977710927390241949959332423222000956923250910076550813115857335882514499833624370693793021158123052708311048648382244126422283831225161714772898785747686429354157817147701909336190689798804371171604465867113282740186671659098736552024213864974320394229901411732201139920629539882239593036084680532288570449157597720526962193386239336710824657176031847594983243897704566351738131567707127483373824645939317946200300703172747921357901899766680542738880190452755044582143797892065614534173927583756451233544768650469938222953781617131866389806334135085353309504762901854904934300598438977278628093320786345011943399003303533959267418405216760386946419638343993738173320032195201356719642975096511120290836635587331698166202072016770636065171546661838020067744198102658557467936003086032271467262488621373577859216835816446152993585202289532528923356031825038076290507026036601638891959399662723339382508194069450529928133311451881770535612333547920492808690916534695323694466206294632723308110441012674414472015697440376038895910294859161310971064196118525312558988259482914088827954932259814131348079898180166598882153997257130773660285517287546491041496812698674133428834368263470435385517319995763387058519337053535971633735494501771099047935060278761897126276565827242629849010260189915981160721598271321034433405518972247549645060102733416225880933022298266677963144374925028036600919982004856833199670397044370146476453573975437372755701537997311238100002367743027684922437082383306148828575241812448842454654538253631103374414926779259144470925650905329400636876643156945104488224018006583284819325321066715296481411509672932103972474361490909315498303399820979090901619121124463666251810993116148742604505277504227932563768489301749749666259719076802376417190158576351629328316699241410008775091239781992483982109340280577998399756172737177550669255990060290617070536460309128889797160263352551687157541495456872406872101657679520637790921700387431987076892387250161474103547928427141066052684341355709113921949336898125733967556403434752884814916218363143032683036858492258673688842676283398548917921025449935737688126974964708327028548047990169794689515128979046802152172229725537476267622927140512508880489597968569017676740439305611309634231974395594357141492804947155334019351138425290712992114238696078656179438408456323782684612670458564280041599111358512353927830959165828322803693443168632396403361959553338508848771578484428651542479253552214842669258067903631380567069189780512060480975654521346804339805644681205470654063125663924765384864028877651201780866262442232713456650391498592102011938694467176165077809380268744963238069039269001340765593017566955198510585270269517129161067959026099076093603385785109042772790991153584011617402306649109720769238758413968817782233818894752517254680683609544546117176673801417119083511695745226229291824569303311097271454555681639998561528601141845630314706259506168112263303670059056664074079406764475409140818414718548891366387666432478428244152331178325751195717801214720682009812667411926903289144388367781780050607977098353183475390426064429097097641045976771928798048838174401955177664250418759385228032487067412689526025086453246906754634705227302401269667767022521468018908820678503826543712285545902553004618272698036267941138313371249251989572695522608836683375220415382652609821887767507805087702859815098938246225408254393013867715471492060874013546859840478198197832849207926546067641152652524578737725705626876669901524101150618673720336854843519703764085686652107037105142229827329743521325157424958179716096751639942921016859312743900415247203055234034718222841601783667511259899816557923533014825921467220347275235818473669401189786688378185729356848248892472391801802154045400186132497720726049638331527770552906136202951941519433174122075255787901351120236532990282220947628059038366672614805729330180903259972491262010905417495315205242076850699078565749404848414602921765590650783124448476245584719298946325248054341318370460687469379244422801009125419794522202439126547185099254725199587362938910024174340350082065463265230714195311269479005516283224806226725706304319795378788274542279187330587083494223860572968282791768453512932450413013334970293080210052066156851501938998186797037580193314704832612118376101571114268471572197852779915037219278142108950237379073939173632341714262903081032792792308089778983317059854667214011365387879390968071989631982347983967392741660486423678961562113913018372214137568213501301585858301684684315685072344740003285339229962918235801644191617595986078450621585329456930844160843222693490598990770922345565837800818682192385093582566662851258951529208086036012359380316073118710024053685533343995129218782965682686224681503691123272280564858531002089779983094855615178478081810631640886458019686710433463070623034009985028359123476103769065335302915288534251000687199266144338427203123209499232283440394651506870800606079580626329406777307423125012395094063039780448566548080182684114249217418377010928118042211405176026656055566749431201991545841152124626189131306129984910272368153163473846120511711237265851383470359516876864375559611927893337885453505721347058924176349032801319173880508283270092143882606958070163629998109571546000645130378006478897358557041600806496406216963371311942942567689071372907041298149458159619566030260669464000642599786698207136032172379743539630880093344838883943251359348001296089764867529647927322331215111892112506152520646254305214937977896247809899107399379570183581757314975979956199135671595290955077287157015814656244717413282422124949998995485346438248540720091493580286541749423531105809823431586696678932523615762010928465438051507301984876998295940559066756196117485890589742437259201954222916567263551835258323292626368365698639494082382955374884274254692792481111476459245111209815707866932341735625022599813715890651397540487406515411536799684373442216900504140980505270627801396366166696334185746341194226917470683484957293702277689846517560668429192525073685586006820009147919371219545692750497558964131642895742874613130534981840609682888087702282079397973421728455280907402635824611119427739539707776215327685938782580986407967479434831286755933646919965187597598480492829949181117624532596992729981835168429274101204409025641444087163657133826760548025390101083110690551229994336352538574609018670372163756888658308049683730075739236066890216392735459272274569011083911703317513663791054841994716372254299285706317035456984983327132582455617356929958295329835863937275455590193397973780853316969781936622633280119489502760222473656543158953003255764767896306053064230994262847540494195405368311648539650427941194655576972965623593115602702799131741485966048503871424355648713974734313048258632016773241590692903681069494668398673103392782288524293604295300172425438911213735748188984382522777292484369228642611996392287867111230388575156618525648519284135780533019300018600375869111480990548373459854786210647716044376496019518361208578407649343493559273451727455426920527414562457169533050203717651182891301511434534380240550860883405984194208606488899464315769917214003455521544332902578285544932636933685791995959791856539382506754892450367754532246206591586147105953772978651166408467657138928167577390058460372981931488017361491078854388179082811012669029337212218145069782615621356305970911662952012282562986996779124069173546321228922868978210729943853818147163098440978219719683032978035813120881741836012205988294821693957937755536952883806092260635736332608795409767937312540752386190653533641456377436679814475989491321865778826500633973473666533055014142717987094297422426477681343419399982999610285401579621454741294120362585903938165700173017144662706243730777655144962980048931806220328773118601562445991546413184372936530870267979932348408806994425118822949139456283152973538000280462907400015820166549236607079340799867594037725637381559913755732100270283113684111614727701564357189247256318959772282048977011035796067073130111376014351332916295514315567930777748332020934185546078722130136107355851043561602150706208946006241743334785504401681281759517884924336855432672823338239155459408298084532154396663714405852989659772329022297323265232519186767354007143959833722500893398034743882622978216178391379028607537157375109111190115725214408748372215685532000364702188078398057594508959688563683315739105969829930024583229552691949918347977423370748914733710232297913403830614863443134597060995518237242811611498362751177278175415236220210733641290365752148757667049086396961444197413112471365308408533456718207049187080371402225943665970431946662172497143406551914715211281739071449527346333744880114074809169997992263757131143145906880501691508476575983788346544013644505723056496082748476318215828324609625072943009204976890964873051875972512579258716746584958110250505738612976924458528780053099986971218184216732121191670627546189645261976241024945195697015676261834371569432412874038754367136335156784292096846570587213279757352050176674229531346488742304862500880967903254110703221059297811735383527543743606443576538742413664447964953765182048337436762447416378055790551202842133365205298004940112044060193045385919708240780930390905188593434176511233891997624898039961266522176743527801620459269289002784674486737600902162262117321618943466239651790414033033392921540197925153670443830900870014748137252331871701948279164808374229525464128730038448153621763490984878390128338969528146891279410215693036477371991927530316428103799446010612107695433646165043463527447554743657094878231673711498478462366573771020126095212709503067398303158773496665226590099407222850742179116112048589155854826237576106184541089729140184425760868028456732837032971411024776312799404584646686787757932235491154788005286845944219616016181352754449482848152526451019707691849518932577249070216390243516058518099669786973016092007444660381014642593664205039373295758528904171884172122970353156694736184704487125239001855734395745250234617541710180237614179391862113001401450894015612927597913298516288428665201805566186479841351593023760015086744143728745693968826978108335459971190887060732016079829683884293316691193706855515654128240064571906016785373020473968779627741802861214288299154598769913374912779041265872991525551841475734748119829465554297413774216725110536529723579304930731427595709047252360845455592479693566641095984073876479495241852064676584811587174211798406846008459779045803246795057923903612872261094188341862625746718707190336845488588978425788414421872058600202507783060518048053612241596280433684495788250472712056083721273080057403833668684089296989736991163463162350403580067574412817414556175084404604989495043384048504838249257123577544724939623287128255126017796044096242390295586761095676466719672507791490707813764850547900680351774455827379732897595272085800548007192891787727263396948285606656232758674193796293686868979923382791488106033450398510770808965428483892936298958709554668756773057596951431883529637253240915715558389861401199632253422806679790285704497379285153080470669247493604323844915837574125218790616254783238535038440513906560362545629895548108652996834951104112450761270507812528710344287020139651974113882626799910528839062472304499553263003405405763661938290851359824729667511659623351517825160436239087571007473957569322262765823378717022004494113304731502094328867857884394592313084796286106884080135418561614753957965579740152427752959455591281032206907473693457175112305566966576497615997612731820304424934787487163381584660246613034620687109433289680566943118087781870045913480432867744774244398056806203041555557339299673704221898723833763315436514095957180530011949498600831227479650187187509708646538765341134135613510039281978945895831187742663499335714814340198682616552591660391041656787748496452583157534370944164246854903177738674818702946596827878334023581907960617607565511529750156066246411709171965857473591188891285444372945493384874619596749292196148659817750708648035978143847917396517128064777209280243575318137704611950721217271315740104162408874411586559219598659275606286877306110489946485103970479163647092820018973255996285902708840269320799598003057404858880993890458806687969459508377732412827801092074975667981473370761522595236027335647027411409766200283851793494132155554027231700114131950538948945754191368682096120882654227458335613034830546490696412972597006081891939297277961104844980447248986293827565729940242942414016302467913860083359782063130591381589825150697113217208397495551594458821033040031770146479799970475656846082461361724268374740011661828380037825042768841745287236727325741561780041820739483634047035383434058868567271576379810760751615307447489133966840380990498141275778695893507872626761801934012973219493003423154777537066401880519577086391644337147073664401830161706022604906167791602637611937383269224336520465610928956280532625683763015665230723274783413866518512195446909744364685887948845967636309219290790067815273473108539206563969459458675639237733044884902163106422626937521146348312419445338653589242058855763712145535796802654197872681767512596447026463713208023346880297307568749200689198066603479014641778777544580516418892920354776289882262240729603053562418823621608886424458083517253369698507158187919815832506292957161999808276973206363458969772571320015139162643713774976555113834284555101714118553796786960641563029371208003159920469291785132337246571507031871111767862571686749589947756418214933333720231216369438345860712658519973685830991973179510763110398144492728857952472853795859444307655527709025943049685843310092591101228863928232153561297599325651411436820110373778471887809154294063584670890527719636508163851761917447678425665196263579492052165912540492153124965446136217071314492371426698841285863749190251381687833039196568967317707203729837958581292078235202571281919731971282796079134159882823436706154463384003989874095842077194496402814701232405664354980315442020150336385813414220254775220711776354608738270835805275098146209923787383350212143787320154261134354453081015123476515648067851256346237362606391036590326863451664933010327600238066424373857199197648712433364455281934440427199200624185603376456944801162949381311876015357600431228570973433695767291596315544673149723094439791278475577296862090029935913236388882385414519066219746385528013624601601941287938878580767226244123752606256492259691024674396406273853793352798496850713334570679361102649207506660197836657392027346474415022397491998842056428698873656549339285007006210890774476417930743159929964046160247960933262794625872738675416354604378129561787696068895850308983916053256103904337080170211708231061326537533079105265252528183968873535601069815832761028897471644043894001633043844962027200000147500080097662643139969911206695369494932273033533800455854211934235810919505102648543727383472197683940886189127647009733161034517356834854309046328817310440705112798117640581698956617959004870802119652076269771455460337956271531260556836861937091506642685460162941142338851508325681699892647342557641101810275708646695643144846956866979006788171439774308251348147802552386493701853655399946999385060684035452020381121831941583390262866943583007384099843129673481249436591657523247338721700111790625196272604153848175385448064313007111609505072120774942730930591892815259772821075926029348949735052581148577054972464560381410186020975495484537250905971753999918791915412673092384497471365200911133683848125393555816674490051007010312635277580290884200563745329563914794293392169229221399165193234103880261489218873919872584291957388796579623442846160136224114318190218167067600308275500069894366039394330457952293916446113236149857451344581028946311163641123442310002934258918723659796051943109131044072143917196006191247675835110644197381901674875713706564788494774763708540986483078240402042439849628398996519422728121731325344327971540845852159287352542818047810958013433706734277229385476766326470276216015245278314461341094131906999985631872628707624800110271010751802995933026892940531263647854013288528775554616484970932207883492210498575394252932831661648215514263330847647145587110626108594097510728674758209336105830993191931483351695460004823832001571552448834981789380850534276806716177886526921422521820256034635559902982312317561282339022644991300109904356047365043918398626590491369943455525751698367616461093134792495349813057256182903673616728835138671350233201219580407188473864529364552485776752139352109235249783321534298916710658550813742241303708794451000873049694045191343977595751963514118053940595361547920769104998235001047743404872339447597591527784905207226453762994430535437047362826632901228332770842070314312602856387041202893183738553902799346875635770790667319981970100966994843449233694976621572176125079546471510561377986003594259206564233650036809245700707756849763243756088639899262859510795688354760591519677747269646159120936979611768601565853074115590913897071230414838552429833716575817181228401665299602669464201575655085319592497052169195330485091295214830388993927127168698979357750428218719792559926364618132622726151543472281512803872421723762638892882097452829160263161212781314541333822347122408214401756156952526203523116427538616421536849913530508591934222985114002094274108252290590957782488907592038811775601764905851123446447058713509642241586261389482900083691770840511441268486148557436241928144818272025347588569008961253589772795727797504897584630151403843100351333902250744286814754986667370926152656345845441669422168207735790587995879289124266287538146291210637415316050657628278085145958237605582470209996522326535685895528659543689622647657179136254605835451719502356963302267853304740866026267380732061952297978147732752636372218288203113914712789580430155742878703080336083004678981303388319931770829644977421764631370831070580887335198512823318274108734549577633405926489848185061252173427794800251978235779376720218974013371095767511997136803565194180243877734667332964740919602967324305238327482763647612188073607580714333650416764813437891279624831229968969617946422039808449247620398020314899058942711519320228579295848385539942999347464719837073378397891083384371033810792482698673634654425680223836223798275555098888680574147016916802125193204823231732971301192225875144602426759448289336404496310642323522003988222658687982696261627636882189298629070168432350160983943383140149901339037398628688833779287413593011926124088965927924058932974137488752953648201132107983783073170278584824014013622852769114407826012625593262739778359170738958108097591881889041509463337854483785975296218520492630902120302317325906476309385529365700318714392654800259644037971861215505143448801130317548564175007971054587918417629991449946692952196662112533700770314662568439928560338544302743113292885003137588781588070649177462038071254788606153141708462723747818943907831034446426399608586399844401090511139546043729172477977547559625347616111348051152756053654772884638128487862269743237413201253826456141922960598914614831499576893436868648255769770442863145415679607359372375553958897274559529129706145635397684657782841056524525777253308243307726447368041657930729536376346591169733100208665000221526355992957145594569580193636125540506536385417819555422133462119655370089563871012961859778716951255962537031751653156572401485543797105193728103993637703715438637575380150291717705782025150902472516132403943711157394493631198390963423992856329664715363736881587020018118256534345995893409600839864752629397504067331651672334663691100281044998252168913085321787917847588926656502105447626961429842472378748277179456879255870001123524119522140842157127175774848691064632000204536268155351604962733864295029988450824716279333106377030618757647857144058007326888552005758108390975281390250205599946858934867087691713120082445371137134221997774605747596653838869942510824110859552044214319112084737955987664469042018547028866868286173347417733878914275725586262890337050405725228238312185150449853831222651063053248579397925017094455653806876579169039951906652604425784224930315288644241115396075566950416419163113588232957307071532209278109432775623915509346772985607614605708461952303060737198274839947914425363302640797013158653137068346853359966562208729194083569342317296846369183174857568738802810943248782691365135132048251032265426065320357990865671871040524912739853289243826138313705119164242496287047814358287524609402547992785970938233089915368599170347823464701728285317998772863082222961641949435020680781064763941454224155738531170437421217727401982078421043801104753174241914224673403876229048161796257320821534552396561534990196199196712142143100780946499834840618876701155429576647179948097105218750016067208029258199066709768649620843199138663662347760914338649142393456688853049590212610058839353411724436476521079041024953184658487091048117426079726975684323986562000251117533541857596319258759761857848814821595103679238069018853115626624919540852441464902712221013483810193525197696249801547598341343068960388460680555462385518241565625124565797802210107246494138614694803127584419170895589157163403591507011925011868677887328428286690020864407898387512551617090428412244374093254764052069193759404917850769078887802544549416478152400166757273585018456696718295866773689178927884220334747171571924666231316740334120091154516301703419684359373712418831517974864030647248940991841717802467412013117168890886688454459816705989768698904923845107173398066698616355892821341911221168124627232490651487904496704362466943461579234727131344055041616114182708338901046214080959152126641887321228662820519173723025672117884552599969993390539109037790380558715005916756432099715352576891183248692980024231007391589810516774751578466895388913650174189345975417191157004431105421255962825898305990906691926529725370491212423200875995700889296620381083357311637616469530387569931077638478262284989195649138230497202188975661722944770026475398929941377880173929430064415748830191409582026758032648107113496986908574793409813922956853937693732551640071520322887677588133275570365278056220416695268709587886300864921295681391299485233378220496843042609346191298159978613442559277409842117324920665576200588103871259036190611805549056321855852810482825444770623720307774651827883144765906777897430286333309868968727703162416681340084669227322860065900932819054938553528724511850687699562487487123912762833935571543846462801562708840674445127654286011222063335379387506961206437452174992547648316430154867074639393870564310996238347342525626502812610321363478502718461669092889418263051743658643345210992050667684944821715768444248617215815161325702825255568045816888236593932766769566357043099537355845524019109525655239629386087090893322452104281084147743654201090333376188984644878184632938896568902613361316797243032115381453550963797117055665869530637166503452319171410935273609775477831640499643355748682477289430459053384102698141089884358970755842779330847765014379636289333217298159596024308478629664785653296083857270380291512370614484751285318236886610325078696977504787699090249295971103264076898019408097015237212561611559102913455849557255162330218105537282758879885141811368329827998388060909533116209824360031720668414055664762650283026037683598765980169017230638282474186229427149425168669484032906931260098366041593836656468788612429818571489147484470026715756572142235085987713324798792281456374144920056785274770694021218744086255775288613229128467702812455240832003495585972641062817650478545342769103795031433974266859510860637481645202095604725892314748582258702640896178652228331936736159702138353180460245835491432651657711009285349145962697335885864544669513493376741998806653513111622955247001636328289811868341082817682248308400704391767638469689417099160769834967564673222027315909921498516263890575682998436597144704895346129321367159995459382591369340781272779124509325110326213473454558793037177813213520524611187482512723805691354083079392324088741790011220552624242312272398570581363690620222590777333785575817149542621208078076751831976497861451705972323419860421043460806684589693089171760166896149726169232929760788751999938544318565326361114610242669744530844197567119691937686430598279817376494604889801452793735485890095706751594962125063739038768090629722497938749286289317358814406073580220992576433702920486523610717240736742820674959895041339147704151093254422545565515295573370921655679436031851557046284316599825242467715772597809105165815246491244853720859843067621886959043354905914186980372191733541245519031512070800881849431690097806559832994596417831957848944750062749379858737581576553396952039539018016105621310970165020138772933690099100993164275824045328441922076287254417033514134974651016897577709716438881571406751586955502202460162698502157460904843464986149005092878218772270974467891655618467087918018603843557239820882260228778486571380622777939799543858105269956126578343132422855746350830514644690320506832742013749082621972278718762657949408287935507942430453706127557913818746790040980771373253240346049130070802969416124477084759919172624594754187709899204750485837840646582801089470929136088964786133977344937459122904225953352091126179177351543640548154840740124915455531417640926786516646410192132464938713436716143687072308025350407637326121236572378218253221046706954828096525517769215801083454329655760693354181115061735209363909915056617013060978365793650275068970729214925125636772393179059391378057765445390978980293891690130131093681900719001653943856381204205575146465754933453319888196205140034065433347489820097808922782843724419050740334445898298763202024813190144891795706446358156112741491444438558742961403682284211826015462455489995207582502610867500518186667448909393739928326199409883577836854377023266342212865400514178059943097640014652674642799173208220774866742890710805647387630903783852946060892357568507457805927892242415327037770789153048853871204926755146435928501833382307341699823806558041828723441172146238201155107877930833886216830109544718502830278727408682428602799128711075586004578250651452717632717006924259332646424500593398662927178032411420605690427924990154849157357563191906169215447979299801166887706137564884340043258507905290884744941995632509463069424197202405130424725266565577970229116915730972586911350492771004248355347833083756947983960438319231103018911600145322946955521661675006704816475061016474303816033715767504050007746693453023492679231144362445951724294062667407051948105781197807111114079335588286968487962546475094538381711981183923073519067952113262062338430364833780575529711635750286334937552348778600734421688111218753752381512802548821288782773050948570021470091110474173003632130443592579428948568615336572364509886939970304111314246133422241413594585577255222647505501466694593718679162932791352304886254031364430608226282250862894669384862040017187983447576709139346313548397219323985629675302921229982415947219383898910959482550912856179743747975672144604065721999868540841298154724633884690279283618482012419761411753341524282439800475768806009171432374442232384275621276142736506223841623399789829430057296953669716837621241379375888519319349493614222019708316180949773231690736230142531225123787408935829367745989445191280765180280586740173981658233232883344876145179432365280646147621550491381219250054481003656283638383108108699327821299716590652932132975668408556346189301951692074618979924090420902617197665864979874524714838896424660920638714203117685447901289127122811406516150343664293913555745681150425351954942471269113332404310266551315034521819626827984780806874477969325703708943119327952680667819091028481101813182123833033176405395818935735712437630408726559395228131995268733271655691262747443043108247601674561281046466314531689075001489886636454674530114042600613102395912585514283785045087166642263379197616237877331064463603751946658733557733366919592280096961421294916095042412987988845655434321916016905095572463976575531961985665545006551389997532768547592624934402712125390023548225123284693801906413727740871979239584358946431839950852962745474894154112517296475804728431425240344901072208998898005745758441611127983230007624960401595653747121523052255085712936889056985117162395213882992639681004818881536245371966362354707574182271777303837951400789262402711248710661620988318572180958442771315053247581701181301978277932042428245407483542498365144650352228861501473420812677540011688919926130000382858347186241911791838500553856694723693180436195837983466059254614215461600065460881269402840179849939470566867356605668951970103286548398770129713210540096325659551514721378575430651486872886584839186760981911713279511088490863609676313154287783495821602407081972840978833972276179110070152298315058207196321340032428057196578892600323922846920589055155132106433217358429450725307721421063533610332905966639864690050554492133948987338067383588801029858800753208126801348935418400365372921423026887816446305911135722321762474604441780417367687533148474921224171162393506083830291259367468763434566180158610050866163126623227708092909573925044223054630383390046753043685412312389295469760889153833563105909224136363979760558620281627361884095161457716775181205652245412001553256399779218129810154104430216466972531344121085875790854399941379579462387121383701709621622684127786833611897991892765096189550927603263784975410372442973740411666764194813195004159338928918923967368195161395815253714181797003630786272754635562244350485754769048618719346059087484554934623829933169767022653857473971073225098096172611093175002493296205269273819781086634375320731389919447151500751794993676309356494454520809007468213057826490976766871234656406715638453152523123866297980221242278963541976030725125224369313265502787559986963664614877944551959454263413644956804070615647476196171088214760282035413854570401343088241138516328778300127222056343043338728537306499959675261264018482125385795836887602983491397279136218859398103066108987509805935850053186424360971518037209900029923369939860819209457738484274927899976537571809258518479781934950533188238554308039134466338730429668654459460946182909920948287974126073429718766032871005105639061498756834318197978207654108920752346534699109424788853685604379228191699623622044232007615838395277367584481214218833847994605395950055872338749521475641768870435443624478656159142483272784322421904723434516426732940082874653630348448620853227092192558914377129956638417720662106527773881227903187933429914685817698908350009095491666626599010997010562183094498631254873173041074723439513528800625556095114429213905902519556876285553462845502927412895612407122222726731430132555395843720931087847666471075945558603919163303620978448019421415864028958556386353637684735257693157663258567071648893341057681706706800010333001429888960192938695798614789067244462151333209650628811742671616169631780007063067783793100515884762799065512454458111662119290000954359352676640204596639485659656092770651284152950717962485606408659137642961799390681290674143676203618634557598698809082788073259515505089506082414666121355243985072245349276015178077803592978643390724264742805928122883608111981277900209351367901137369489909449826999910037960118614819521688748244362275971433709965477229299282592431399305798737338884469379303696718772196539443852469263918813462798498321552490335530282931811123926689624594959942649087848144016793800734670016282257292528221734296768453478256133320410430571531595232918604997847922652979830062962267131438327195313160385997388819625282657085818641670064947127305450447997953560778859943437053873534345032966974347275524218571599872668139341636900261255926476296199431295775458029032317202347298380713932318242243055449529975341668819034229602174942216009699683126456413519349198319935005923897486820259946223411088024115826291164106059540298998409567246525281515161740881504024423087170344047440345642686594128940562125154830378924657940957070215640766305006172116704243425232318302697643615849228128886679455659509669443808712973483211949907758833520279141828178692250024990158444742261197303374359512660714552745431126460520698550848910450248918177068840869393584103589222468388627594410257812762001569171659431409925515234504130096609906957710261863863629067196321668004035058434281325499454916179755565344018456691420323778702253262083221062267027432854246218578208673361711090500548133147169690997299417168615790402524070906315784932365958868671566334242945138078673338898814239328216801760194692479364564130564870709926369833636726014812249419104618378059060727501425673566523625304796891230643356048766714830415363844093457881745963794578140898287222283247968935499618114758964959077633754912908605521129836589462544467382720470035258971584689627984574202529999042120283639478043640087065874045947283569769330542527479989174792053331418779763776898728274484509858760009500819272608044023523868281650030489200493215757655899710929662669196696245107250488993438232408677113131425896343191590817915340619489851622478498089024587718473269162608208977406685905490317214343827652171129863063281595037793855674553412901152873979195468374463397686448881260339094419245653643722915897694922933230662307966064798005787020213051533882151528548577207514619373765362997601773621032321283468689845248148582267771437407505206367146105237237479716581762743828527566177660422812479863172286492608432614980016010133487200902702197473454786255153444848383224639369589567135229986763639489604999568741724407386645671065504384424321250176404476173438120916540787243380873153531265710140590850651364986249055840468970176379452430091243921737262656064188805656494793552492923864945477278081533540604999918202526397645073834088757054118370239139221282893491379017057838588151357604163115206115392159352777085097453400338410174875026540621717279435762033449719525563915432471425916921376316769878913833940878696886638429386622832588831259962019740779348052337549040963496188451671702169628059872578735141276897346867501272344637268960235640157198695323143708285791661114901536465505708855428096499385790647487281760714393381857215615170060683451239556743988589277277443218461965979454944145627670921606406938470141584455144637144688870213882120343077334989780041587025577731351258215010345152786620050432811538374983458237724463930874537670649414693925083729572028311627949249245304203353726748066862550919904720282169586625886436590653434299832231360710979537260545892326049875196033432410237914480333259851281170144945699000657504089851461491128208063446057031769843491095651477413935096357553741295419464206225212250396055610292124681060193778405459801718965173149135020969102736351211150697650908544738794945237912294343291021058292812318918906094936856587467771152673281177587137734037819193057119186614793702671512047052608646230520727134440147400926786206585136715780958185236366022029328453790547268355451463281916242744383778058638045941128303620934929232328509249123003582962572304749705761983673597815227960896434268799603953354582747999317677040036513419256742806982346188548709175069681553313782581795110700961626172116940612830588044133406386171429236819091713908628056587333687769142401860134271929695552041825309993609601056207030838839623757021181854419320736345492730885043866538759707615304261439255690839289529505572117074704143331321757604331358045678820882508375556290126210388363328865796696058584574473220031551676831530050467752471487329278079161652904167907540766551867987222112496358145375285480460138338197638641280458486931971607287720583100352738173804554935112067950141008391680973143140047411240384815636700501916693110203990328247415335829758425415722110339804866699088572606130275592070824035588066815020171571035229924350386542300503536537241709381884564626096488378929869589566779018461443980070227229833442861235245861168032004786373855872038969432874718433565177031058074908478929789725663594032320238278975960438799649423256423602436537916949063599623514297122553481252867546370549531106475457233913046424420609640912976945674819995761446776132175555402336505864108254838679891470417525605333965848906017188122728342123135863240755417845687687397003005162722912754693202864310626665426820843732357095362802771437005919438006607821575207556597241807744112763268811822554880369993753253158638426214592949931970577340709785628843879567457753005795671846568687210457255359520185767539905453777351960929482617132857273824529995845734088734301371049882953830468685885327295116547664868521574387853700236897447294986394834131904587549070769094087199800105297124135093889003635111293689791000303934790274677910928970999423385626051481101887167436608871565019671577500070740419376783150534990207295490207009786886541358342765429778488781165372579863830190083715087106426957363134437412989651385411896492357710488490600705457992602890600113268585461412045116810143169130360522338098631671299515584379942689322495430977760471095840311340599676138182537245352538218693248632132422584629817815749542324500053049666967631331580186658124457345862418283762077924204218308579822719219021929263544107652497284475831212477192035775503270932746778377515760446963416418465971729834100781783977259189105368962561682297599207516533995576336485126664128056328107832248207140494040559531582782651637808894742081334771394984343314947501054513149529501453031782303658274209786525964592256697794769745445007209482650825636422778360821903950359528320420985851468234954693313637382662025036593176069120251804794344264930547386967179089186200370206287741145537610030597142142269252320335773540381905638620865556218315592204174210381701655539590824690005164856430534135222972426756077480696312797038845701956540876246941749593161764994629531766117581240637410146296777914769032637834180386442482229263894240311629232745334096413263967948702495679008271549676905104114721654700757346001618188438219918435406096288426766024903061228876542256949603954261708586002390681478169298741153720803626297242640566055226240307772764652046988010318163599465454346239395146466268372849831599639376445876355759367574541652900353341552030657188519643050485898456347358167070226745082534606469379808751738052155380773091702891368663454921336901889194617359062969098175533580890312807800478641435099670704752781755784678501625643386861040721499825694572786593739554701375686553471574944483614165965431702045718159810194830953175017303577230200734055814911786520381790799952895620927877465442085256368976062092592381047168890487185855729769085108474706840935384331213321068171846945320068559487839386234481316084406987247726601479099361408041474461680666672954339692696543656595437837520761522763036960892234107957146380864021601226690712662115206267162582949146388295309242297388675502549825122964209553944981867587302488944022993672671185797699677976651120590491029818282673137794551209152470986302225428738527639912013235435127448450290220293396350473100273912304950304912166837773801131164508749462664180699510824245520079839841899689035642127084147673211801265304082303627972433362094453102302047050773761907611398192708752025583515865922831058392753276759691330188097931310031875260940799075125446181505745657574399382889080475064623693512417909370743907646940109845060797709017150739896946972203793511603774681178341744607501383810144789896452941791900847126457348753515118046398184892315745501149571049189593583268570936410311864063006114333028514618767475665774011457807587540537348278864250159276609905213740902479191490413751538408580357140587356462894028819940276143926390253290753207177771581199184264766192175163317162236415472315614111027499353320275963115007747537414506178841404687837280776890692526354964872545762932795415681282091067887330610236270592192310693327046423790458375759388613954215515453388315419582282150180241354731110776369609688044603116808809208687021146817120417343982651142267100352975442074479547387827092237541613949222437566276231969979273604915875850008402709876494794710834685323480436629874518960484089557068800517583150157531269257349953980366921537783793381812723878230506216664647484551589251682635007283026421254423944305780526626181195070752226229876234707935314937621973903673527684246734330290054208038845615769786997658192731848768973697248018743773618151037165183220365655430362870880905924514593876992264689002124761275385614100186982828133295615129470149006455671199903946317722663423876974347382158893842196310306819122576238867786356845111331740515089919333099182153041808687512997961817080451693643543335765749646965043501525724244643144395711732627772456870340553451565740578164268043668854987752528993322628549205753383272202365942509910411916416791327424931673433858815339647051882381926467945194483556638884228960372638541495030510981869672664207738119411508957274126614553468770035703092120177900847428172631140703393236097506320859811452032937512825391858775838753857171549374294357559749032919748164106848955743794949360766706824586263998827032100384606666919657463495283127017563345725268550251390643736000676054084731088744622880869544000472067524051447221112533179304521855898278736709219725003432725947779580699479825238725489638614477191395302433817023858834703155379894273038881869640641501323411223574865744545344800426673717883779529060576879339887337618963654942970228800831040557567093359932887471092286875267492518932031639375486588085145270721621105121811404851774856973558039615007013181958301444901672983531185340434658467359714373856800339114735741114075418414833058584215345367683695475409198421519650258379577235453075461417989772535846700251096923244364701839839171375489363802183871158247926048374419974734181507116747666705915385584898562536189016356279900056584411344584926833970245413646931751095941366135802053692992163977487433391293679997064898306756497491556311912503987409103404981895777911374026762538949271995392803480951933386343089175663455816332825922552619562030771720600860160168018354227890128850953161493669315904236878244201180405457385362097809350173296765473697113528602469032240026863038772161656503304412860872391196868704758679858499097494680447680671415693212174205132377822847715207927137205409326515460183462781140539911819996440642824782878348782482030269758186724821244907825829125882088250529706925712277488100440635240866050645869469150047436532555637705788764238433385691651740163761411468014088064447405311368790710975154448438463503789409905059923094101047267157454839937430532640213888129052039661503549447325338803520805875776449859188264282233132613177879143622817625544485568413177870661116678888173497668908117161443864787946569291148237141544593355353166464193745391457522165860554242849487126966401245483636219367531425596608412238047441210423401978900747375874939989793196899518236079074848424949849155422929692523165443261938728509166673025706555297758239954852143926763321751507658583325958327413980904100666582791802401999430525643329184919087086544332241018432935742390239149625470894758350937137165867048285023147695745776921790423087621214179620086395594515114174691102388202679632728467189307388295791357162181000096792716962106499339491801911282001193570935164764073601833881026741150546431147466380542855332825263886735930182740326553331223937125512788910539755430338938822051027116289569328635421323670509563415764791612445923881755473249934452857282289058314287410528868265062504517472639027777211022512260975702063258485209634159421140683197244790053192876874689548070619325704827619336887084162328615436879187684892216122172018401261017429213614618109211872066633425839513255667641919566522664228696621730412878372423863133597292179454429207259276462884544119897484345926142750008429677638222564563858409405534574209894763653044894360575102949511641850111990524472382819979430962421928051768465846637355509340811331253737310070680318726978046482988222317994019422640840766163468366114516788076913713493513714977426583754394606167795210944199618364799222643925066968020645962907062869897715386355680099065338462449284683076965641554151502493011805259193784695696120854323458796023025638644197078858600558650935723956584257423769214737482487436773273332867133936583327999783731706113232700088895436504848795555299624775761393338177363725314695132622091175074683926938839003223632744968326243640718272124191597495158693841550966584011716092580958254330354016212543501159114920398644811053769978483596270170015168246822234606260446458618871050239553228482597913183123850604952674020735313851793953173593135816899031950123632116691378469598102104293266174336090313194177419989004705769308429801689886642718441103045122474267051272734248969702507207573643534273430072181786703153973756991223884149601619210821208508506555398968031929334265951142226339575520854023066844910101850688719153166028009097899439863158512282503438794140770965028424914841748986075019402194308554747369526784080921487670204805257549687034194732452827292259561289918133042966813106591152846195474029261246623539474104809708728048565477582360475165236550856989393960080881248546329923745328777656995121025097805791029354049009888291296275380995691739188361445448290749648667652936043412859831922468495127606774216117038860346992371061692921379917092634399169587986636513185486939767172731448548750089888706456965473103342318144357651367007045963984952816397919587061461969680161855690802395854546935208200320630777793392257164405951820990000447463836759082722535879126725853702871592003064629672153114247814805020698651600412773465652776856679193738651895371616220184757556428490821285983321178229624600893831136799367147734451536498464208223457010697514317987516993656359786021326678320978602175764965111852874837817062593426420129144534024467000663558164083636049948786991631856148984669624495219569691508312025219681427805375105713852572096013042148974467359070190018989540079632806724355314549732275212840828857539019779947463710848663425454965243845631625982002157360160888481779003689193369969968660747288032711251250571690461656881897168507296712551782945780156019134273905803335761459288956912734074874830342996677470613262245631114767586371517819806471354753865843764643423034986361960390417264063534236803160308699639660678376649728286960640582944852968765033907679644706228088932975698186754623400765734685573005581083313265444857510889803782017980246977953897737666668896674501455928033298987338245512067686354505405350143402812265532195879499609879361954908672101905367260482668635880943745471983559820772128898229780231409247226146605896965483148344759442378915664838573756516314425190641813970897793130201877503183773384258796793270412325156968626954768411039226425660072660664477247931871288000031722516780502551385241807365414856450852843732404207313641058534789069106674476948098601198825892445997063055977913196949851641453006643525425982486074827199384315345035179416241047740724931561956957122582006848008229803838385468461108472539251723579221429812568654589850820582979962928741206912138694351243104259867825952438220010482497329282546997358026523744718359522525008968936929188619746053592095404080490127242406985309478773812895925754278530981567550461187320841174050031693957407088698279703034643600038527580929074559004395319201778306344396928736585259257477006536523316392311711598477836107364463377311998117121860805228601658781696953583922154570602556637923417685457765773098827228497331273363502232894750289281397426660591906941972267107166339673717224802931669176321970877278885182630783303966040178056172108239552473616854286240092475064786154376529138094488187279257418582738547624241973774890347384795243185811098576704819044004170979649780542192246302735584826427314458705041267528866974805799686928699446475446697419174234013839898964668341091339579466566675971239520430416415841379186850913870293368309550935378414148353977803355935267328050078003209973950864407766878087342972177602081108752182807926975117698667306270782820524984944514274884836989762518531609550501652488064391717841856322307521741195606980754689413397568341963891842103785875674398896338023661642146071086298993323494857807630911824779775876156182577991457141465791993144538285079540438324551857120368423146841814715667663762108651314670209777243259071421428178778231149543007085889838165948262930814239972238858690342572561901001340952685826617254762842398390421484071085697226362475723815776281394627401282897585397401659222585732517412164419586744204219375398782759766823846040258257836796834889209223710083804148261970115842784280729573894665613300234778906514884857855974986477107877800841137006993399828882533193699555306460521061261490342210629440439957430578371376389585640184824552851380588933554729672107236791236099650724714413765975958325689939725553999866824655734657783724190540064033470974425138571704862121603409247432744289626991854895836260302468884448681615570182619768554562814761339773986712976419262011602937179443870305739398737660046067474741234377123452968526425547865241492379285091308792814778362319970320227239921264709548936371553561946863495195001101554167388208194114366481064277837192573251572151612785086144515591454543241746299303738500932735805127826634963665030844893755688456967935872645004900735395819627227399238434608602619065624451755353847136572463246523096647636711020864351709050932070230261110840460810264175090820159174445311186028376221279498406188141700717653326804878437532344415122465053236928062812367514973761052217464724492415679684275512733625946824387098840988335864908245341454628213099432497976685224088207381809683904910792446571418308951042677779542966203045509751294854138653529342399898002921473460121912625720275480456080983225100349613006985296504031547217686623742623633825908100533839120296339658751804363560775680270626095923484849899716539424598347381172560496219801494406268142979497334935009148190198358321452945813838704013935253688939248169243055565065591291643535453942537355499000707070348272373743189106389527243284826318037891408303926153078312477060351460386306111455107557851010641264702344175755585496617380929058797875142303973360689148073963554615649725974369545820442116129235876299730652398057804210493618603821504716659873060337203322136992591369558199042370368284134430263852301574939832734860532345886309878140354878417333638415053260733835825101811501573767573793186720603251460367913502230122027867450119879123849908951679957602304653481344914102859823215932904767346442544859135669961213086914767224302878719423912796786105019520865501870579713073733715325400330273562799068486315249512482029340434545958732021595449452755179378598153729629524323871127367410634288814369799851573304036099298886618208320763921823913253490464342633148803769290021346097220065740973609913714852145669110254306003973040799858547879865728368045956909422514834342256403203475140067056865486432845378867883460576507357370176039458375846110775644192003999700228360383767945615324610282030006214744292217975627953669739154404816731174572286684001671052453193845903295873233324594170957215052014558746840976481250026687408247489009931702918763537565441409333032592564094344366955661536616764786472665197197874141576400299974764009315735390618377609145747581296686332117872900941352889971932221112012145774442911261590954754987695822807245713219426528064953884126888673567686325058598374687440386682309441448447300856467343422968832494187421862838369670136749701408737043486779359267830471177306230358596004232743816021316762279277309365299647163249933534472919758040549117330343268937147596151067096461041499832974215223245116745920542190638298481028188346828195330010547014295194302583927397347289252300915437153134767092974700603869966419410389147792230871001126065124978575251849393257354991540736989148782994161882738996302143932408983018187854631408053942524921366669977790867958432938092132970458489352979484049315379576242666255950239616167189662514821148346734719528507222932912595520261197776763106379871661641939044228594471285088114025818750564701074503247821068182431900593893357451806044086429086204461188720357333193937820179542504754235150053571175387578262585020148789989845358282963727183895055582721548479378248248375957260750015382722444477972209337669228204723329128526799264979452868884416870121344477895450466816565264955244713902120647417232877443047856354710406368940135477547065846185400753627118960519877815755078401681013151296329942919900193953831482305004622868384706905700678269993964891310494190878446205653257959701106647618291619929619635699198769508109317099522490162614236330228908971972982797808955137174313945517119715964497714986772170706698568885328687312414295514283014889027686041023313722966393336740586074287554491610417595187529252041542593892099732926963851009269797143042269168283077884679608671830379239282256401648291245272893662506946177360375748607559225032643686356789804868716132334245187996006724113650905126493108516548465211326750797361026803839377868054929101173438508402404294862718598121799647744508171200582134865573748131035706100054204998855311491547001315880590004467968064567398096416530267617455334953637460605419732736411233071365637484060448339656523480332603521936604192661656847723389366359841636649670418776194902653783469987253047583549898342832865983984436401973525383876963159807634756476222582610398952039453819943765774082313731909294887727940199194197091510651124905929406698790807046814623077871977719520472543567240060112697814001803967369182124077975509079772725339561676395342178137140428070772390599529022127225496618395945780198043755960490961210405737166471546742028004551741261606452637530868164732470323981127050017210071594099029677489810378589666358597957407350067352883185663562810366931906994448371662439531283065359296712521890834765385212064424900933820113285493430547037773662289204727807557049945050233821273449331610442441007158554361398196334101701481828864004868696616696861757347908998318332593347730423007171935956770180982020289798157150445747846407830531199877365864027355139943930778658147435131811774390984721469931770354890553983204560895442615951127367970843474223820072662261941168635158367232916907681250371606753496157357523882462317512242343357072008255923966924980804156509752371126194343431263263720048209872770494365237371267372472274916868887680988809289186862529243236249414860465110979672949401670248428981420869633812186283893219399430308033562301269536146568840091970764270791008172612907339900320707376495332959975990596040025438676287604787685678566926421464427007777205780034826308838174487901683523154217040249928013755191719171686389706196322574433646483873369394858940660571401247819556389614585314886606923497961237440932774709911186427661549352989071239519092245697757935011728972757383766857734601081794906623056780139584817988601986894755175796281513164486489045550751307260176514785506080090438024656943109628504921409576411570779797569533748219725250829526450978745053425460354548139364460803220969366262237612937181473832855788284004384025697713575286897196098577285750403192838295813884725533738549465731190130888935207918991491773631391215174094855926194821656386843314368699911153219324743929129077943986455483456050184849911089469417226651444084096358477123183057568335920965669642797709534806705990935822814411712467811506236598182077591711830548106327222897568375282816538258056060386323494094762489624214963828887235867084603441107363427186058385564470584237078433657728815644141392685625530127673481810971561268810682087908870925349931091972194615695420848542272088805912400442690972853757052750152400296358729091000274584577584930311921800305257851608889068935478856847928274137172602590356805493458880362097426175462359163312650804551837693744701419091792718569136966658848393187429598297277065201808464515458209595263166513210783658496499805658090191009700393233390195146119885590771499423798563308109802001545772935666964214554091433625517106256434195570249710511674308631902906843026903100532819404830002945329345883353429895169309089373674270742609184243847906705826941579082208249567253381156675936947394574206239229656646704456331210629748597531614221841495251596954630977803372637650687896246854943914287880138757705571390675315915205205624075013802774939269882317102491888669238877964999525723376831265496224894922258696440500377540352894413946346745299815920938234570440892850290634433517920119878033546735218574055733991469380262298337293765912296086315240990486101554524875949727171269988748917172170832194055817733714655115854082765041524494115985155136654048651059828068747709633233530593874369034408101967668410610702969343513460613314425040224468311314920851781614692666069638825523528978958413327533254622150277937541518483486032696080945436088190853175012992273396605129354325240183089079890564507427657163397630034967090706907577990580287774639887927225582045264067583548061513994527591115510899906366609767258962156214724471332424827900902127518086440039211378122161492916081063557944558189778638570412021848459986777001759602663023317110614985232368096982682419891170363155625840331235097406325188886002678436203077835519431760995321125011809173029508054672560697408724380635594670973057225426725794310001268451984882513322465618851884799449974754411209041552266937813356985957831949257239506926913721870722724752057016784601995992333202913143019096569796406698398474362989755180602527369057033723281089961448377716106915499990224585552662626527749920094587883857517907335207795383627170680281407727772204368165425888907843670614636005623587640114313283623425941600345524120938266560373303001209616536817275685706926542085171868352631303573656104896105520489029930758119218124433072320555524907828684418534790378660962237196369033674912667512957028553093342600393943626632342296175567984156519261807679054037578789902749091844404647933810755752752125626074330142245210051039639738542528285788374366897936305595523285547321363918354585218644746759736241323128276608407303842656711295631205646735337565281534891792452872765873002307541893712614646350215935864875569492745391472307219092206919049061773346087058193289745262740655923637415851725120218127064572905855652747620749786920204705621341599561887517832866487688133805466254638421111013244294815791428629818101884926265494517119126217406994682097387958010089024276196640214909180315245166701088427388806530515816852453475005498155510844485698655574268412530529889810732658180281619787445633461415403156430798878039228984155296900603406463875122436326593448553382785901153642442113395383291103417167831673426819844135641288349661401647329194866508345167742773583648539300167769320762366160624808670685666840549869796190756751245384041659323785702007680383558079293541500104240309377679893239139145239864000107048253216169379806769201336836699095161991475012752034299771831505641712829440725512553618425016107699530118434364279231221062054329061207034682865830071615629486855266558836055314339115841203790685135199605701018090627924327069900402279217776360652097663082110680609954294426048622738168352501094354195055548032911518117744395268268477200372408065393047550846877923873043103602934490080315509085265277874085504499918308768116645455720552710902217465809906348505905342145883923903483275274405372527684680467695283143888402537394338466381299473392467090803113892332385616188980307860460995529876295745604246228780771097255646236738092973566470038352532618882594042192946216956187466970110791389557127346087517080009201665037542009054217109656585360694322209268812101568895467679824868625777735197948764263733250905359928261299018722925478383688597074891236706146900948383280646293871672215491987766773100156024240760135821587464624698370253323379425854058422114982926591910148505141769372221587861585996575507853976671814720026307721962316094512670917952962168140935846091347347747889823114994237188413828139849415621867423128600439579017386340797739552901315189780321292561469701467773585108563722825495030033534217102873155051259356213079713071105915993567906103170521699589913957489244128701345811914504244316281921267319728110996087685814484037001386972674736112780519510023726778714740802923969310509958722575032823501042268665223148845043048693744617834969785539966127406281203925391186463119271507960539982515389371104788500370618888521064491481880826510826776748997928184024687349587550729888323196164525716143076105008365613381744104270911729031843754798723710190327903838979352182338182128974880748456039117426844479148853833915531468548035252038173753031939750992186104524365899198391015490202969813303684922600228550379482029633437120908895112954779956204095555860725806048409813295642957019173075837131734288872218690634684033453997322403948669440764174734124214028943528805016974061190759410244266107432055981221837569166981488324251687628053459021311323751791298293678131327705968678267028087643694532210327292184274180036787478359010741968441519886623913678533555867200674332251717406784431625471261469343111721460225522493062657705028531909173662161487294706005435842544941793096561033377095012364370390446774655081138362023700173606406931473742640820195016918948083216730423872205964082724420736113844536017335939606877319654181979106409149251522130108226030460179643715131907502727000037187842779419653273326236344897418595106005794693638892538892858022068261997808297141981287022002533669528164572980449346433233601856406960998672482178104213820010755704635423926097370295578898349781439453238787783677970873047940212116674514126563046458057206204264610967656722871211950694185878481164589738966803958219016388679550858993188917127429795143730283079110097471918272550619523473266973145312788904945379283592010081373325551291179130881802043365279595419506398037535978768700163345584094942993756542354431569541886846481633680964022198098750547145500931731346811921942649226335034986338026783654059828434287394304612841758928361819495105424894444790252460570700474736874986115040821583274548036981338523947998736613756764375170102752856526959639710769698245997395378677216529646289018835234640931031702300375814194063324698680710948511528750603420124734430741761055872097628679753282018763764639636476215195538798083811876604555010398489549712178530171967593256160970847283571922327448582932649841886679207348397609131402609923671763219941633216225389089890516637057794269310567103232352437763414449996270849218126572130957365950057731478995533168821434824457869075431998365113263165025684378489834956062821331113146902782299232887166905510885718480601461753863831669737632974924592947353740998795085772043158901397329068279394136790320389127663523753514685656589090683962515212745055090699399903442035131671313910449443092264223716095596432204349306286640851073245738487651785359505864073028360568419420964982787009638180164178608294393040177699806563575831260021219867310317907047604730098284708826685018786448848283928992498322210070906136996563174642288951398232764080315155712948790732139155003360301900625670845253700526432999559683674323068348618357271908912266249611095344887637746944657696344022339756992512337902500257647807077608638618616692031327055508095594591416411928680232001336976655002542291271482393976955960285429252768169353391475128197518411921376468658508482938624982147356219049125512220676791309337288592617736771499862932329361906523302935543493343900451045090994379656079761391200302202993786320494801598273001941324819530988302063603997519941712436492206850109145067808340964475501759825198346781830849493013284259785963741163884067375142893082147640593022024781009723017801394453519803872274488841816037757872148362128654220253003079663054416296427248963817704652219224438060026423081492981296397970407780605437119401497033912775960047233565919366975764624507157712313531856128764296895760491642400188942860347729908663022997027304970906159012302926235912307845530986447055732001626466510220352174083556980538663656728349034078408519178613990998407462608225295883344638718459872565780170598509116749646939119293703147993333972423628844522668385925846539188052393664789847002289109267330312053811356260577884224296603852352771483287395959556763745781770322301350527740590190156905372161688292695801223225693273522352708407461554380592406699332337272810427076709337517879266033061022166294372945556616888593101477998368974306376781385932569949015149413914504238333526553473484381868162852337550873183957754650729564727304182805144396227325503603373329026128061454972611987581660087861157370157110943012952562139806129828517515918749006418840902477911115578882868522690772949068848993885219569774509853676594180490443275221337021241629245346135459863909237956972400303930934085283159494634504383893778532493070505110722215693081820310289413359303281104066905542301748609530824290260500843524430729754453916999915416903704567639901692750156488480867125859145094067966961727114911053578707713784580383426710116954856772104506320028909724702111455563904821893602065153408713966712564412593602708461164914716344452342751160817837788313806281602813168243333321526470624479045026758480955595130953652552694025885505917753170016430158606168798027430568770490054721017793505089241556697423812485258001433888718824215669916909285058227326929982742939424719393975896959516760194229625382561734581985612537436419056056448896044104978896974215628535229923089099941635675562614617760426245670070572973058160571330562834807721760635883354654294986066280780419426112913459392997703742725685134267559785771180358079389949381359100686524540614961766060275091467862129621325486914437252669962222062739860516197462425302853401392835727369804031610893945354058997196855199641356053435029614799976745494616336566547934648774302929419912701038349827205250922941853590336788174037156916036278881727718589577005198968109710796773090287864616731812776899415404685942793416162507307688301739001245906047085264556649307964058272171403368763469368965706704214889261832568423915129600949445639883299022529209637280474956011034401360403425206795716617281168357709355775847784498558658396889247518249702370548245816797397763055457879923697317719960927235997863747189938016345126639471203333364170623768585319768390199888928777261003535654500231935004292307250968733590706845462411851767129830629912561328671320555180442191849631935935836144117267098671922338951021418480584022330308092563846960277795040562066945706416731927913693984084856232930604847954211185427579393792081040241309722950829709685729732687608300564290145670510427940345767040390208517279905802834609175362400936300989700359538978950960761243161480613379730678066831725757943997447256304329865812876966842757666519833760766166623676201845139455199708601255387064037338481268592018524072470900684820694642656618659375836761545526280877683304598627903897737586703814907289350170312941973238420720317598710345433958659307460336250691543482720163552840997276498979323813543804656302524055627948543789565614437087318838991380108451619709926718406586741886531779177163939826667887224404393493023936102812307055536186710134836207464334075861293077700283839706101030581148194491766702754528276740239068600035762679646600768146139028497434704405149906233498873616965256437748489872451845531397100217557253785149875947354188055320795583941907927705250457066398617845664074280236380988411279294196202187449110039294485015280525640573726840197736938843846781428599016095874702179701679777628679894075082061021540638591232888565446242291526010677918044321672462691575010487156182758453729740872383390580260571143228326903198185255955987755994555057713592147280169338854662884263720977676906043300665362136066211382495663333215041862717792354222927815261235233581563410956628279204420724168475431556920826076526101411166961123881835906092024827580623533425207280939710324689232272428031739494730199551821498476819600152176081503565553702007810317571041960459976658365605428471227310482836213130306808251963158514431687747946892804318522032898321146962429922555315046359852924127149535838226094322481435465677120350625817165944673962196857596016014242436749756111203543760813441283457902392890813740372877002439960746412064385788689771625442838976388831743134056946800199895159653579921020561959927736658807808793383256810867359736246086505967091727496989541724785005179004920356591143080071212061934948374799775580823179455597377646096417072137958766450756178609218772654312325003040124851068178208792350566699075913224028157438943422836498311611076688505153132210087520265947159943656422978993768386074856617818075447107965171661240745260543839645321104102924598836409187529043112583153522884458582549511026984475155862383241999678552204078519590075701911875145544106943410212704091921294953293107261841497409255800877891547674464077197550012293254723865245601132857149547830446548752024207741681716253262451042035858800131407485744094695567329717205111294312476854569793554925875124678683633892319706936686108037571530329461540756694971995691507777480493962921477564555180944842440385902627039135271015445180713838794894247413717901639070914111388815234407992874496672770024803876486521942478857169360243530638197329622824392984464152917677017485053481076094037190085241236499991530356501563925466269056157863883798576564860446019363554167469347986608829153824670760825228103878138434093298802121989423042294546388595557869784686655184025736788079827635393865340882808007771777641961928470167582427326859670922392548034963605744692651078731124076847813135764605688195837072350577789730542792539821230849699540873135778830674013657285268567928023511253190537331588394520135773938785601152492657271594443857805363866183296606978292784606875315733880362638096394255274350879696278966879890644753298490903494440154466811755959019769658314976893236055907264764078204944363856590257721113996130085957739579007716075017688434784484712256564924864801061436215303433697967238255860315890037519957489908211493550531180235697626578817742735682277810537857923575122716712715681886500749320820463116772420532545005598975708988352134146802569634404729355505946103035632330659919642582644492289960239757405250058580277125877465906715240425369225154534645802459269377996660616288803882213308245977872404950322305638222214529328418062310462540377904974435459386053929780713850727125887514518326892397529395608254101206184699559178950295846486621677597228293604910048397129976198865327020695811872638628276618445604471733727127107651218041718075165328119729165712352818128093474113745879490403836636780423761155082778207447590785443468735234779077709339907419379813808289773717058534686290525013770811307142015518809489229747583982415301092987837975294747823454197491907213674676579667551624869325582107136504106072852435576260100486228285538560804631497684521757442361562068128605300508227270644906050904209799758045887940834035018441427284050043472893647555019044044726667256219957986729607751744384859157517088457440370356616597328623974609107992273702589019561242616418474591596490031352793723683390160118799353125933922731804287985633606776983429538061967256385527986785704762059274149108873628376683512210973873595887031359510545753175984729391437753401571301051974690227494244092743004325684544776074608837668090549030301890766349589923984965444805475400899472095304237912793284163866308277163341288993557569329295835773907578475631125554770648603880872578953039129176319920624307546562394005741247927770685524055799569030766953378872643192183628508560975532301261349544393098123854926547118982975512304587212709772047403613938833394298872974307665044944278816835419599065507787276448344337257079486605005186275431862280919730043463709933422591249906579899681274718741553953218027727345940772330515719003125690465809097326286249355349704120907036517759726253078458453916651284980411656143963396911255706460688238132126832162806873176319102500737471462480261309290605675550225168771904185024046902526143569259148228998968849611142968580983447595574163928109719454334415430760304269963153141267908039813184718827188462145084050331404453848336869775163852369464967009321102228637879876877586856158810760752210732164894200381137969142857508325622385445878121338198612219128902528659708413537620568955618552343895370815942819318397440411629302862014775644248591354940201833639604706949860596893476784717762951245591110212013397232161647650149033508949051541930124734224779002145607161783394430598874538601781649339523106515996107507498827787957152414813802906633411832957128578068224464477664993829746550576670017907950087853938841902912523802891158216700024125322160206777910194841055218430590920841863655583065891521960528116905943907863959588939994253009944299526391651816554151492125373397159057508166097865481013890534288435064488423859690576750425492859674600315191789613844192019960875989160966374814063309241937639642873153625260592178975178477280170508462670483022552281334711238946591073876301672031252661434290871412708235878655694251138844874210512183082410180716936905560083451900583472812553481093782392336228747587682740702985266848273224205495281046702674971293131259114655837949423788918765411865429023556989838958373707883262157365973696355416094469637025166284139222645050663841657747709899296425864023834254216231616943564138021074689032162155204289417366307091973425758065285020687869800592984251618524701176505787208450948461947539362659102841586222507819614937160899959501365400439334517448326652415198871004076352537237917144892505146781936649345173267588107619643252528856418915257719587295347369794108792616470206833236874212521786101804173092941764285431528869265068588690751514020707147814253803621648853977873936920003583190032889712595118780260190298297210372063486980402933587060656667155095217574173619688106183600055380608360459052288115392751956252106132329406912231690961757125703551433637818240259477297889085168073683527856681832791540933896292606355069826842484735264315079377372014107376411466904920593706687497173307974182864437924087600145554512529842008626064405970370020614515503249127742765219462739114768803868268110616054552445106379407949356935172145264320293503705621288817316288537645327111052477869088357684285609748391764592432180182917829475973844849065397738745743084328041215465159644413617996929322621886045912345293450167692146920160538877065173587603612304775315901416488646775687699506243497154601369461015689890620419392701140509645101915753250989628598448180100715015902986872035706071636179311239987128810283449377777819466319688819611593636539161638788432804493024300698676424397580380497788485832411417090591983675789191288249396567609942345330759331826022673077054529945630377169477388219637144904608437346762231915430221250979554992863204720425597076052553283310339010649178570784448840182064902481924929015242171241488877987791616411962597668893314040343330699074655412089465455073022294980669804367392736488557518023809886877012715509186439909737654075358457332348721303101864789226793211512606851669383923444686296877832484629693756642434478906589802848863720139509179062142253537798014043693912282337568462206284023572853885796324301904349682721692976810609323034528333282318145682696492330449032587492194357438082591479096788226042735005612593935787968869502181372199567219980838696216404314963441144354762427127905870734082928841831286159986352010806855705024323862045842701547223098745376067534216519665246189803337799232728350092880191295564955669210772726883288587916349453402172961536247535029832207227791821816344231978179243367935596038658402533873854254609281524416734025697668977013503023948293336917089988492674078009942721116939385716905647356378916437008343168098486152453459016791353518019696136425112069237989208816623158240936436909921084256469440231133183485169390326647615779497999051105040575350926685324631756351224018588540989991955493650304003917976219500541100673384375226297549055086615776999698054020461461916764871227927992778130383912153815356513311353983977332838308121643529832894331108721686516162174379445311631035834107179476450414713034488261406742901808419630408000618103659668184523866051892784266387966623359082170634276165864507816580932562170247531497014939152773424721441770935874924230263326706558193166314295579164637632002944336550615106390184753402096125186100966623449128028015742806708186706867303960373997808964801580849910346014912934488391183202953959071739639745556153809263046228258946566890567279178515930337807557468075525846348070374831354176878474462189587078493969413157498911842296848596112281752146253622669974685849474324072682845560513544368724691732238193919299595999230946916288589149251981223451090508952807646555801191245463637416096140377717025660509578240725148436767989696980270327376234847386460722565558810513227042188180084013647421263320821814778621721206745271036732859640986560969265117935452905272257646972077454271685818394885594996818043026387096340669384745410042764591466480441577425553954227729996711720790586909763668738340312435946348830298649864500448188823434358149206305466262822775277804982655227966434102225334980525687400748429201425435132704457347154830282148236584399370849252442379681068455127288172229480423209340477664938040670838968552122652308243420342170282889111896017286984943156101355043122737357036827576047808613567867932149742533436855842364013446056261335387539426279244175362917047436524653114652891113610031604668332781789701873191244221953452175693870077127556166621577445810679373131865125522582575143449875266374080078248261739740347187845728050131094143405978051867069878306342080110418739038597306989586703970559972526099290127871183222173954309630343418546181537284980134740111965606380926912129439714415907334373397461522637531794923454881505034875318953184209774334084201912891359721735132480851456901931674842177292182475391834693419286178200918199450836138317124483576962316591659012261643667840702977249067149546976251554329604537136446110271499415942900531972056442667661396532032801286427416685372041273584393701111285444058388335926074804725276254990953868834332743565677907832624588188824572112576285281153701793020885199420505164698618462821932129786400077094845366343990327910770147904083143562195752457719892951145648151322077523521661881265579687830628925679998901918661868219231050151577233713677250284747493536234892247550870984589211030623733483116092227236072339345743078105167984618428944439828823057357453935311459530753571873848638839336701002898183869411883988917515581868278762061722114603344215361430879202367096682300225598523837857851850169597362291159400310360526088281778932903425045594142280339553248882444766265496962791493035477022821556153534645576901424723649913564452255934311395149060190973960482972392669170752525052667746454936141600212116043740730397350836238215020612879013664609545972989336986307313226448899497181772897331872149666536501844027446093259482051307056420576303169702187534852022974980042470101748084788407890249732056663229011624559874651582367857977341379295335834805192323775718290589141564630338621609031590461608894861474728834381286816773712236807432345625681325036279629117466118790147908299132585362826882617481106869045740191928269208160806840373884901089195080369036661425555340178129741351956022643445792921343290090766839117853673183808398303014658414082842410802719072088211110035172049917900863489496259460507292663582860080787082902545157033037016323243567022443783482149159259016788766595172281900461713806384606461601644897376048791422040248403767690624215229871934071618260713722619460850933510244697030712740466165180165886390074781571760134444338193100425779931219932887529444503104495695736791458280090564898569547850577256186487783291071431799593347549033262748154321382921990205433179439004128301038331619849703757785365704003060191715936154636727120803885885862143474384467837604033664339956211955900543658316838401797574337598515474641808741342687016462769928626922647412051923011417362726229727303744175487458283138720646683907584779834639135152915966809457875850403458923098858043106112481461315077238207882728329320933833234578288378057023525828118085579662267764141813822950490415302876323550888785030127002630995532250161122012587621555318187085042209173215508551736362577989382808007585728024285497687828469366052960329980150666702244038753002385167367805478891360970667497944096407768026828079781743699023930915435226874739167435887848286179562744039665428533558031731220662735705613077797150518442338139284891875250269607728057075715216639644149366224239451639402150659008997670058383058177248902951532537398756792656853236617560146227081408576245079120473658861872029994676950933311171893028202971344261726297186676085864939844573179941483662058468425680472905482166922679175757858490704026920679101149191495041226213743008170809969646880814809156931711909070868533530207121465371448831099094853343235396217866339103222810739950216367714749279459006348668236901330227298008665318017225938853410898490758531744467646042857235238462381784901192926343105505827410922542605312478760145102344088783898878279940931834754332724505328151004000186297054528737612165163040161927994132036004245013932211648613858968725125744186782676192700246022509572240339205085986237235610833771473171275196760198668886413631137118178185722295665837994472842679431694545838676716996811138591887612555872440685596060750446204809591080545714007249662783375836183403303500705881809693994019176622638428793568217991043196595478208611659657831271200581153103622102782727477848953042623234864654513382534729015942239246547285815382165522157978212175073610091268412129837458601885256782349983450494688043872821574779709623850471636530332086996312685892975657534299214168195683040271905886765024030593443013391009083435856131403878117487588586737242426228934912985925678403915900556131114055220108830234547862579049769646749781613493381878196554563276128597039639537736084706335671775393746837722376035032897898188314568250411147542411324068547013930823502843506036513542104012209503134539726968210194172537399124279639002089689502705568923602450661892594363093839150509394844166755252834905911046721778068362668340810115382219126502810894090198817319030701523475712958179112454614696776844546927379928802060852022875382374134519845164827429364570937354051700830810910121922548172316010500459943532911635084078583459052133550330881143731542275217892653560503574674362506564259012300667241312260840115084693547681972551626562212092480120406814875947493852356793852253601525561517189323799223916043549920701798766247738163691197748790799800483828711791992325732926655813424109156195374753533479622648286809436749025965392127687720590281896879351561069929090786329070079573541233769086628205138962805508652584400139177931832738038980680454361318668811201380404491467626946967410150692026421953176139595802440346255392546980023539741688678216041277477952150418776641388518479617826758381774655269459077813696239362832722384830747288423554325305027867859557091211281948999937687028628616278800951338542501477302216578502181478975267766036376502210925822132113617790177817927915901730364739320676798027984971436408399156922182078837099067516410884105817972123027161073857846719668018876746570704839296847126386936305512174674315052169388341300201886638793969093519015582170765797899090132339880761552459079928704579444032125647801909851797583438510685902581448925646021471867020652869891039903683452466794762838515469782739485621303791911148370637191850262309182981058580307854373181251460177232096826218917735290581350445305806763964234298992914406825836842584722663690093549594806456381114016059781640272135159235057978992231706235125130941085021403422877939131422751981261454049365583327141478456387269670188588273948895766152821319290728236125362972720000887604951660682318424410102798082974165921693637210494488677909211697247823601785644912459906074252755805686791845294459792646038400051564369921368500028270996366370405125833237386852939668203501937117259977998219363754554541211323711353130924172240787286248671139025826912644330292307321298169125989165974653011460017594834784029557426031069731927675081901134270249699760990842309867959924618281376882535754777547818224524975599506780295738150270144435359132608086574344785968778364127434337590917095168988694586884497493166008155509635407020618617628968600164569407155299461019175851647482008837770637894886159607860426050343550144618172653761896406794821031515433565169099360244817029811879797976957731462503902884453513314092151439715325314034571287006356633642128357460801902578960457482679390534484120359256255630803478545920491757697290717604570172858931015070553218067634447324689961335179400254331375758069268241381084424835942783794353121355636048663331943791547499262428245440642773937843262202013966280925988176251031753310136144865932377081465375257103368248522166523529893102012669893930635644243911043027159728583232546211012276510364028436249925408959052188004579079394074002659193270502258862819676249541771255549957921979286146523455540920113364365499249775782773304577061557673046731013831675900191841961893037291311686777885025521132464517268732730526500125801118714400854907012129716162211666846827539467466851722071752959861435126578958251235947219881132792714966968446911280805482936802892468708131381493363413090928417027737976613132802052300046037585902857149737680750695480753798234114161030013278425254812028997873505916688217160244536200469839337254510171704894829131804726671340902057826480758616271749807365190414889437216955440306964810560629102447445491851391767327352023402217464488250990888085376079920724218439745482179746366121349007354731726740465598105935164022298994275718959893558338099388808069543642794726538249859979033599321433744218676024550690531815471221040223784753601738640258156584611357871803997099772650599574963534081181674117622885983495514629476234974691988370821404195054991062027960919942450492011759804668700926068308287965423597716736179762116853919343832602547094313642170677601377823327816994416085998017746068759106353834704692278017618103858235140054310483977244065163038202682211147751314402848884808148696314534806599251162577463663343437578205007678490338069457306981198079108677449628329481318286118010902669118957137798511973969071165901024819037855243300062583279153111872492120438991386198235026590798089769386151204961730791468135570244280425322696575910996322949224386584847261238469537920921861775147671791747174772801788484778860589070173508253585159078045005531444980382067846013794020139788057204648001457438699752392360405639797487027534086548372495454393612257851066065720427175552057332092154953730705702485749493155732648558669778538434485018052390372396072927826288801918878015584647194043009290086558235090519863293123476784854486990460678003092895620165893142801668366957054480573850625853822065466987269862398457255859461437311814262750044863443597434009133620888971805608637088417632567903512026651642755641809737780182178752721259092884012415744067411609386865541639611256549661340957556827524490416373002611701374677800669408498727306503259135355026194530984601413255674731596433685950590293821851464192702045656230835541400133213034071106690385008204887186466808739322951380907496466085676656708654741504095852775546163827488874607341286001168923640986882360373086804120902407562641657112139402909905865099850185035545002358531161754617609503010474447473897125981473867953839446995583073855491728851791836897439933484761587368909805986803205269670482768531331229078719403380888962066921625293096305844330408037284239865937111411870484005430932590770424444064308473297623415607132268026047334660285469143794786119813851449103636056771503869197210681723432602930097905966336047971807398480157335633561266726523834548611608469175295875193110797069630658245956452254818760230804817220308147883330123757782078277907258446209471504780777944157326990834268465515971654129923614238159334123080759318488847524176669613554990296034110352788355226053853559102650840945169221421193000959741719314207557830243749582925328111807484965427568362920598880755167759151603130352976130623646744005121341964820447666849901303052907023359700319637237616962258882657891454435176525573001104295620240521871055164108911254229706729414778073638729759797621367271071404931239746119466680445631759271605888025304394511553233800437125604938665090768090904226675618198641633634037161630605676319692412472520519710546383200625484218200611694437166361292720401584871152655452186423811906571300056501185728673685978959614882845293966249302866175204072788603819896730212850659100042114125166761370460946810582687684038259126565431979538048843488372707436104173416707354353039471824192180585613008892373119506187703663010976262806593161085313090674290597306167546743265225030409135572785355878778036767185387050587733449115310338020990681803959764691343144903220157732841982161753749169352197463366849269245474665029381759724326777348829133149497653073015067150799443668494831409682847230914767679258338341900424493204794386413753764997542086978717531671724831139025409505560033968179000873008868807132315803638563877210348900676486483094128812040175301690986664693771517478777905908358318243520908968761251956864812784595859367039109288567899101327517494022878258718573896272539868829777993102922812635063535868846891865132556268408354402500459238848976947541742641606057371536924149380826093225285172219263836367060231456718154784659614360457753753523688649018112737688355121826848970812963355293560565011803006581369778558746866158384630568017922414053190652942377524187579267965836705196468405249728337485933859227763932649577940198457592462114606452106895798202468649613647254090271248904221686147733018042994053193696297434209224105224134576676057706345354308020407233478205801578845792642107265955457475063108618871249234166437343924186827390130472511709150329096804815840751213088079885400259449230241056586687223161805778497536914319511413962669221858794481628903858646964001451370360015816645516336193946169891798105715799613710142809192452953833017520345082698546492509181204023033455856954918418550256584286260624437266152745775643979963230438580607734043384359891817787389005953410272904794170164372821202792405076813295272295975173290038352539108728526497483545840898327995872008836784982618315008387001580303947549486302791926173978210685308604707857275894491635542590159404066831714312978798407471790351570956209805913336900042180088024380447191867987800493581565501783039822053036739155488078780535698123645658630747527699820810141359297066621910985741993393404829260332055954998825185749142481731712880155416835358240949630389394841451943755393985521148789437655196292755485960088036016230270852129065054431604056993569344088916016336211296711350082237328665942348427010037286690890811257412578982751431659159116851151201652287354365074327449369705995796206476834625310209000663299044820434547166131520170683212895474361245769580929061237493076004131229239365285632809757349226888787312337086686703328857283909729194701370510231534157000047403548996109394979084234169494150829691684270421046138001251246115253177625005583078545005903328452456628250260068033622641855329040213338246288323262851180094321972756853771783064090872292549469178717834098120517263074171122289901217672526913750401902982189211725268233489677973855333753615349048412408990879994890531283326693517204673277723157837826871255963154530058507689974594637177355140465658840269317441468908924259784914038489518377877157319905006681016108633519042445718052152922576689393513604762667730358080719643417700358263185589719602839149626257449152743249168507839459356554300356706138482742329562890689533593928970904595331715234417136807197114717013659666376395301570867892924888319627357798113325683031405713166304057047801295154925654458166800210359667565894901911987426906499990639554837536929557871908436028320155050470954581668971797288950221266834551764407625435377941688411125219864008952132952701492814020990951270398237958996809517405807360632966289721720783863227607786339960770136753784509030918045680169466906961614289100116097749103924776925757521908113525060249334322411806562755994327058551933026086756446125032510538770698016773264613127846981137942072583308106078784391128638521943567291940173443632029231382709801169115880335086601846657252759610873703184299386261335724562729658685358057793193443095798885786630181937613004530363254645692640624577371904415041853774468810472251837035642772847374275532998477993417702176949333140445136171673643477370707998839424408914836707382573174077681653067082953113265275846518371295773434021529439484263334898006015273902308993152490782778643532838581696388481136702201738228069526731613098186373948050688682310576795492410335104329132605403677821198172302188096807924628050006146376001273672210681638630416610439705175762674824914688003412459658827378094300903930432211303344572183170092702502448426655811015465639811458491992699717781737763271797384354128671599027542831609625196281989391379624996863099022472468719691127582335891100362335893097510812030874046048428334216071075061242117305819607684032044887051099045063076915905010412830096807467642344609225730195628059236694774557580575499919940471465795195377603924134597049164625455423828537251474148903992615406883318152461871549201012684376453687974958286114366716835444485781669630110205404734705368063074023443891142029233743393071928274489654600499232148019264752897036626747001385987656250564034602021336478520548507996943387770410644806641535078467532115140956240525238336323686033122884525152535227587670151112930534594134978994187123080619158038986893340201940409458389684944121208260237346323506242140315325411915482107978379765804692632985616573503239250964528076766916137920372522449498487496671563917902698066283173287961053967833818517467172414958365048234518260674085863394837663826396928685266292468075563299452458021478892980727274492905772330390271956957237347832367011846508546117087561232674822526237199904220281751802468606821974046150774519435962699070914952439883024732055343375608260131619558176612954675363351020580875532684343539803370657808363037056547113585089799543887539087721670294495667374918786246028590553372390292093449483636518757144863167371566578065299260496260643134005387464968118766402353981862248941022600206974591560116493205089561462540730061964701903891800918361305824783512346958233629306229184132797172893239598109825164908620276675179759857164961125972216274471623104183961987726855190419875178852822900279328677986699754535769960379128021469681469233629452112427755793184368519225247669692041810836407645735885565747941626834868490671834419236554976549757686459742270507744429047612657185521085157643113019485992417126511415598362140451856135891405291070533446332147987533201950808575370108460761901579017342589956633194611588601766946022822263848310980768249277423215881157918875044822246581715353750521389149966859269883458209588649204573498615679826626394517545517504161193169774036671494122811895199506137223018215986424088416169623392043574809096591620528191209014551615387478553663004544662739310727906864774493550930310477203809507110094897779253808204947959240547042462442802601433690482542331081751107444185489522235668021990643135965321336603404362470012913508084795364524720836004700001867478873889500801784319001020293166485612751356272447452099404410544767090804012333925595542389904943921338955163840511012857072065005141992581113538997859659558629600344577518030784364354148059432025441251427003710955021223081363249545282698495355005231191857446317760408393798774835373134965527572567771192683362584461940992671947600555131219967045915973695697803977398729180392774904283918232307373623041500897473871271566461263130551569238720714570572975013099545253283087218835382447423935657403984281443850506127906860905893955027835214276325049575748426996959344913548152289173976428563270699013945194992980066412576743414500612332487796122692883351272297488302582470326714345595301806023787278193475229324817936502418168080229920689164704945967030155048856011135803148114777523780520480962454109404511627649597289907398120039287293208618924874750264260540844909348851637959625852604302001597185738944808123603401982739731774151506251919546550375953538223343622545899507219288416190581231939443702766775044083608936101874385833429112815194847386084969462045995194588216537843879980057318294362593624965032900845942308107204586243445104571251554162166093907998814871531193699842754760437465657958300055696898159132295530628482673106790258596921680807112100182567306951084792779510658443610783626876888737472930825632956602440331216919794587013200455735747998153183323004740662618184497121145364583163554268147877969681234802998022221804693990816338257680097260999775125292017547837528655239437794738626910343485035402342276069771925832841758561445748101044590272981583640775066218302337490929377667353034919774865257196732987339606018486721543946827483527431428065145811841671789614910810998330405741214659615792620187160633116437931395258040081932772503935861373587429190697925634711265110868417781345633817185315528834419362942941068169553640256160802776797648675892957321741208876270950841623583537643432909947386239125856378737615224508819789805458897966526638145453676711682213635041884714669590368422128306850536397076910823458867083936846330312278715757845925115639334721353647061728279236288527416108683893498788114642984247524425725884220564203853120045594050855257267155535923182604394492263258708851831165232807619524739795356563634972199323182384435530047308492433097251000363958046854732060354636075993222109322968071505862786436907499520458505927167974025389885489275600320550284378550286543150805052458702143876270712123039862362576335314892569137519555691100880537088115653304057648456351745802598093974473605718389380384869527165002604960840683998390549368581826319186861843939223550349173287934544990326282852658837950463886053399507112311908231320969645388545925278331662028500843624247935657546549501124839067430435210711666995703776911792752466984046649334402616753268616362994398430497323486972526014943668532417115369294055008214061055066533778430664270029495523757346001144163585629790429594168017351635705216814974566839630794681828602055567490029408897908280960148555591016346546119619583977998718189048472285161903776875895778683538109523687009998267273900700811609045131538101918319329221527800623028006683703337484601102373164301239449936431100268504156914091756718856456439184061638337236979023958607283338775404300533523269002718470016923871096674840316390475902053221031626443639511064574498590187604197217915043807511537909916257807736920195946424340598766555506659802517161805372156951015247750537163701531440233023842836968774680185270741156865594377040205254853659941926358571676321134829968124585151441630562567477906366773517557298350335422417057242367881795117103107150090636464047615580707387931558966059072505168131799461173873795116497842960128110797845779047414838319166854413355543352615471457574090837126009960549774326431931247530607844825229717329950778919277890852644708915175137947186240936085235368664062669809355571261796989732302170901171227613366727515170004686981529369368704660204973359853174105505802531418184173883428483487435846439947988551451447882206689475463929335837754057510174159307117703754599622238067723870854231851564678971495710344611876373456804580172820686897591914523889421970201314520396355997480562582070526666622509355158312293661351542237977876177857742197412423870299980727066591973038900352434323421151031331824869502165817187647250525554690296157297868203617985861915642627167245907350885624415754666512677457422364664516881668675948029841440031837312800512707305006261851662780879306319682332821857551705825570393012494245172990485788604864597343207694153009762505587487386993521335713804617385534808789305865059710254785254767810447485690845176958965147780636305509113795876594839621644373327801884624318344949559090277912983615376636180578257681962118070860041345093384557623620860864876575886025928629474269282976500883412575111243852957703913472233500679257387940221591386635013878421234949933338542922768336816913069163776167852460727701086318275397966229427191406484672067454369093019093519189245171148558426773718865407106661496817805636495415497759632881380495316467568197362164671673491028154520726258546770452451444917065192318844193919858354011521412819791773744090466496140330770814819903535906932608922517548216149254196278692153940605690035312935145187037753095825465934380870075682444684841290210398834228762177067534635816682270653300312187539524294530374915976754916381913517148944015550220763295612175912887531724158010809379534065713067785816586151792874608932778022238843527785638608067765443615083837592755427826351706933686947845906149132739311601547290851251527246534121715735154455911032766102066395733948749406116564900249065324541804752856329215784069696663403228111925859958299494920757315085104094241555441508843064594207992069048108825060843411929480008519977089830314129853910003302523976757803024789464358794133610426608135407937587310215669377073643736521410963991766619545950549308313851730122835608952582529527036679860989264975512918062452291959796445580841996583088136597498019937471449785460757377473327923217737798139052305319606351803333252050956758543621289932417861490550570674493342219962567567902011304498223912843160851729208050704094852468059359095935299263677902464045908148107820535648795460743233754813499644014181427781915418001452766578060701093444712094462996527276872624940843813180583244381334079446762841168990061679235052218240610066221350846582388065147797912369590623322499704743938727097078357526270379639678498657589056942548913021473091837453335451598350837918153463848115654320773136179597713524488253405884942788643814301856893541318060388667164464842215026382773692320792041650258611626396886925449068360751344852303206881685630863790319278138182054484038811802061084430564620057919034885201013350752494489693381650282399693352840342570513782242664287843148939412129598860221167714231047586543391507119035322079037182678673435560370392222943722450980952012550258397458369976257622646655954312775762729896911501806431022052618490343453329287536407746288461405420977991459776488100108715571802584600524621853963239510935549599254116623441217282306193324047415969682408165215443795269090204553007823290718423637852791164145307134442119893334648085863925431412705121879788051798871937694375496107032459554819898255516127911831022735780768279545524868585339220940274151474487936926451295930686499812461663682639532489543842660559015591610374814428277225878925884506129974605135046447901676145975450968780243959359735812508953960955036552875234103142672991804071899084176463551059565252652041381265822329835081011199578296014733097244099359377144731603417757946183942346405335982945371323297703875944674534734206271599014877441855995233342470387877797526034480584363244335359015154015892537658367341995551603654747187364376403154798759577033842825097061803726726996287816722703568451404670404131091346908404874807350472165966011785932531147759175679585930923793830253565066504888583171875493607185937305145586061506059137009786172657481792908374445830198812277666417906748329237020203679504450888041901543923583647445649830059166120704596477183891218551943760971204284439749880346191191617146738044034980121481773712801049419914166742978654149915689032661184202571866944155358816617699467578948235491626690758134842356754081438363899357766801178592035878154904849336413563767440787948629150941135700795608212953355036755271739228702296001691778782662602023446939687194589525669109520595725976884167656330184126075216785577256250115858951562060910233378805078885441025877835725008082270845956528886639773410079321582870303889082799607466945947698030668916822497875194771951656314264939654404844911899460484642892301973578986740396834367284337572154794533529808364147738838704169260021704077589402102256627837076385433938084232075953337699428663502744982550286115100391453879104364237647084851965688603348515876207397883218074576768578926751640932825370197104882643748986026926292317047438516287306592949346436557539153398498851856406777878223480400208382700520359086192154161323328618168744988683516545146583955949790926641881246582461686092877376433039801346842817266711260998163202086677894560234865426866360278523916870837189113905356500479666534224979162673031755956740303462762930078330245488529078047260921181740878968151739559994531856177648564420030046649163554380742316027057898385688955661090281369815803117270084430709107022653325277449892287203432166742482625710979874136201810669704282032868755921467428344687964308294216989828935303340805859754640683673646500655118347671799815545255647415075804646134277944693255992120949196408100933610713583511016450309409212609718161776996978499565960975943324780101783151860793511633922780966300414411619334313111896095036700553702669863003646680552637653460441782051164525776080572946746893395338266282627170027279450237406384980311203099529083364462858086974688831782995491845722647931868744878783086953967242032543830183171975825073130288387201967946162089115596817470068206565297563627747689607629668888422284036520461161485850111615653054084675224741774002277618579431480476813979209776918724244919741246634563551371014437785893406817106717986688136617142666006415473405846397556954077685034599514588508498728915289066249334665387934886963033421870263210581602391353268534574316329967039285460416768476597688032441927005277990628980976530360301251222449287424744750544024748509012124683813367972883340800417284546377828873117639423828249536895539568174651634611723738743551162094010562147064173591082891327910080127845746351751000495167184104374470782995761450091575957819016876563979991386126292312142793049893099094649501160227852454241889628465159135265519200659665176228125772439175531229487322612027880136060290877652744310164982800564382116764831294106707973590397731831653040353909124150482042544291629528164996805656612239149363670295102103465031818541658726968283434239261018461810959875095004840990401743704050788931088928181607980465578563816731411426198116908196381143843059339179244377559167406992586478000300369992148922360405018425913818452712654346151863242098417145926299262310925591785897566153568895521986464874638795107806262255463729539564516310475642692442771975264852248703128855867232594140050542743709788105338167213072212701075752111232609179103112258460162524324771643553725375432269727292867678784708641403715090895247536007253144364096222044727394892444250853665793225126590143307081689350645097477407035786418753070833655362090409774747537000765378981090302025824342891722069030371222597113228789685832413326274951841676875628011157857712129951539436845778921272396865182460644523415577029974526974293297574412385249795938498242679231393829625367875151030865175865842780283294627316620560986475969669845428242552384114318821785132279962577324586962636909973318064461948801539550089087160637844869255907696442456043274029064384064599322939219433897172235582239112723890740983319377812739987253798235928813826983776391980811331475792863238460365576094556387907629315391189484364578530552216852853679534109042414939107908746390188425254287929943053432157304490646133366981744011432689224987964557186160697322683047312880588585094353073926248276713029346920477540968737410181523309583049046780175539640936793393130511174539292257619110600078382870241872899770852263935315349756125782413573675398728803992237295372829518663022727630302808212866863787536467829490889121089722467679376490407955414849497302988472016986991696109264842105320163063930145833467240998102755810908354508354811062055940305144533482578085775391459706111720702476967951334442777481873627752161510474789325460413043604578021315884346591947801322162289110086655531787412336580633624065079263642315878604411178363270617578944673985661373136361734834953697333553414911925903845234632427143732376170779701707651656224444940904333532314038356411507831199838077562660430380475644305105736797503941831785973882413210645650857342381634057834411016290352211169624638755874502854025389570574006939970356013123482928231723242720957334667441205168417094335193869222715226050363508494494292832235263331559307466235481751687401478934738263721487775767361539713466278907346126471154209448757028104354940904816988044936998164350118817891751198880125772265095149999940841445453565585362912957277506791482112331538476828244170922517458510380692593326183836674500090644564309309029382680253611392911895215565792453357263229271988459763890612778002238076228249012226861423229950909986692867873643426675270887002439022796614869323661077987675937082170792729323977362301465642054727956038038029671660740013034131864871808358155684628282210519106220661997269266548497668118239793860677291471676310950838186849602212771118848194467380476487096835264220589190031198340487592128918289715385521976647677723618070373396160121890621014583727433636196963785416664038269119073335612904642873230467743276060949384508250978112799022598932013707897799295588585568662140153606606250985436151745614170619187729211834130559856490273430621212659514757728862213465589336157081176952702182335605130942405881928213897567206729666137918770389666712572171611675767775548442342581325476224271869038126598246792682900661097445038036356915758625556400691603911265085016266838531795736229895236816422026710426138146525805744868304855573982885278331460655661848630190765085619339290864775941968063042676266643815905861276478275407696141114447300274418596696432144756829596087195910695733756453850875142349177041096228753145053823885304155164970551866616406237876974522432807180633239852689255008000809808163290083366834980632108151859189324670121562331037381354053326360694254867939655150082474682962888770188307834799970133519913462717854822765056252216263635081353217902934096610624562746095370504517214239457992614545631404513058997332696810560689611099550998975839459863104382816676774165812647474176659484670151854077635900088063964454825347174935474595575252599413955967310106986063373027897944823476300487738394381222774294175988973120113794571046707085089989993127229982630535477620579973109321359185938625265080233834953232093167198410294302128130695839959668196988732616518296120517367231079109338714375075188900460413188277561733312056016991685869830007653652056829478318121631725563725725565542159195153305929769673680575447916265443522842848392825288865290550879142762731836568784274736838304235254897113125875456751595867178911225256840215439251502935985609710439821211478512410249478333484167426767399556440684418744533710607793395644860393034902633943187056105846585960637134459174280244675201581145743911816886540306696326002490095824239737840156536157138976691179116901364215670380654341685252848551419752869852353452380379133027574593124370022906044162068831341732506305256351569483312532715841661126615893436916515567425598004119930050219705273649224246611014134533772797899974413812601628159147039434715424674648693983313505873489095782960227564805848259492886696030819239446099480833044272200730375485879012411795837038635160441367055371140207894040943296440164776001488341957877791898539409619016104703082469323359649569529408187498333595157969431134258939280114194300626139260223563056995181492991129961660715798560096322173527322600743688907213943776235055065228151631075678480909723480813499382332703670726222814846021954009411518497093135375415659417388155801243709207242872050885642081828874892433605351357781796141310967579289024446996510211598225288711401154140593124685234641187158532864095068761808600126963290613617406523598698991198686570593142204799461364908659007023114934221041501064629235756600509300104220746143369221987842526822531676300288088883511491144422174071845814585285007230148502249602611642305340192833684487041811410824019967547437242648690017327773653049654157274612876792075879093926579981937977566402598178123913116495116775132909804725095157846406758416187440172909676625907706753926640662673882993347227867445135534439843170555711835270856951880527577100590550413846782725382748686343560740565848610615368565877347320931517928357795561220219479492068192563337420654461778893001269901117840992375156136367908522999009230132543438041381228748878521448851709599931540368934112939333809326145089897470504081217268520939471028811624708845638523495441747539785821473545739880013307285182306348776176880319286263522031016731735074911378465250574884475301067847717151788453717442881533989095514433129267855760259271282982361428976745011889132363612153926125148009181671439872661738379084368124656446446117554581060710287684464415747965896693310161478539112045651159490668044216106858310767084138991286544118142722677580860216111750233374014372731421229280421170827923135307856487052489495937664963089470245748942663210375661263191109555205202119086986447715990187768914268325781910168973232796104922744718664980287766652114236060677945473056516565491310823371825162734089646298815119246707985440460689004302157895504624685178305968327226669686325225904693543428192129014144088580364978147962006238931722436505810694388245652316725010608924809062190547096961569983735146502205724252892070304352567352701519408191090301840335940417512559672032185708315668576860671102179000041739654933660942021421818742943249208120602125080761525276875781780108486331215168555938860772460829562760461417369201210400722642713334683754102111199839932660259543527363527469955507718484452348436609167363310653620820302104976770458867083207828863811900688635209063266791214576379669976489348972415875242255650685918405682153524749179044301690581474947467302763591758197689522164467228477960680214110994933213075465125761394584838474741366451799236838814444284662719598840270574573605617172866144351182484382501455881442959098633379564603537619061362539038568438801585742892255321165283271796248839832414582124308293398213152814525733788303714107628384877300618538606232098424041451843637403476121095751377793145974036146406332148750845002098599720864027428141138647338646479536281915301334700556326238361745266075154233443154551068844209757784170474323816059324332249588806129470187302621943290392329203746609947427537809707678591649402937615921184225746219723729451585269848671418043320226548541169985809342466717490776013385383001437123389609626318866468906262169522030791034939640484247123310666798753146419524874503029832051682762832975777094177087518249306433432861235157427198045669783230271332159726214461204945108909967492968338148064326200779046708409704697169342763243253149993511034801761659336577266798895557814103005203102972387518101016419225630276104975890176611497355162349065536697362173468932682545101031898339423325648461926202919666785673131039660195443710011705136579871226168066490984057109357956210581441326907892712586645427936290383163164613585578845691036658220862266618704497448055345316614447412722038049403289168513485304142496950925743907861641012975200688768399632578942762691514335500255162534531525019488743316434302591817319654015833031191008456148969153497380883015020585546963087846077472612204830497260832687105831372455618830733474376770827713706001366382725796954705246297491633950721049437725442429568396891284588872466865990078860543629424124978178242321834920916929220069214837919390724142946481878896976780524317196771599679589702337340608564272403221135769379452841936080713094364213972353020898090565724101413683201849057827961532237188162439341394246825111328803847680230032598752710992762872781810038583349018161438726900839241541763532392780050233037283036389571081618529321129629604616302709738564872304630264063023331372530262665774577783738878373437982986105443807320489236174394997902928727776800455227369286479628389972760286846561342950806260668519476807010302259060005399253868876323552927700455814039956491586276233945390239895159295983974999413152404022361920031407245069393822556047528211481951249110672804489586393847640324076834772315475595743087652354867979969607575871044188188288215415104247335661868242565069704293231663706474467071465319011810770046149528694892201365704099426462286956981738110454505950307638549451219058921031373150872236841480064125604748695415323054177305701499960852949328753802082907695958508293246760014362013501017519579124329579586596198766513066226495077731975379356220114745199824311187335737185921539024118442585826545141431103429110271439216223204483482754165479565195781843229110347896408287189864751707212334983212176670694065464897863254390833100555869943174482702555000984348393719787816751534675247616770399899223913851066206527189812317917857936224529816621858140551201143793019359109759402138812092443202910269805949579956380995314245913354478957433908162876361648674078937562451769155307083796116874540586494797789458792212518198882813554497523898348244898880443983515637304810010380514014259334806693759080510254575512283250414017033396489365993879513024123267148361385352775996762220836440184937906968677840070573949365547379801011624448830505200332113502654843802520733110033683773689046654074241094758545079854760812462376578015852709171691577933752732068131825005141286813451531881618549406868348314850759333573659743507808005590927622744880032702145536108958743122344037540026794354107866333934889505632812820205524128173584730242726142693621749735404832417347051824368378461356193699190749557530458991607803522494662230732148961900463539041914637285234086500474863236701446086577320758142043960616273748474140459974901480339336481555759098771158482500867036397823760703623541062905169141734862429048111573173073699290411579653376903412073135115593393553285814616604805619130437854638530895743756887301497599768503045020482490801020913941319059137113377176321720732768518411723772062094826053389073897962096068508577134933495970215380686967508453405794866372431506015847200541726256051669451051393165061307792946294965156239242764841985443593387668748283897409922067873984515856910844360990160445249352720002776327436581767128165092929947770039023063074787438547279370629621331227636654536929643998120789028405210407326124789848806153495801479090258828886075667427058937194337166836904235569667417798044072751032718401011164237038187059314755059828461499408424053564830656631184116458543548191122160863191188828734485333545168923511445117124730773286684452418946950902274023363334121667683350458839838667243050652833828203555707571603410320794023014989929336243315768275526447434102902824944038172115157028290223299164300779394190589093931809254834463702601645273893198593557209728014289716870237285872689272904221060700411531914517207080029003795600019808392469113671339849238543516287862704684590172125909177439529781057071630550127698047827821809977639830742730988359169317130133608251513876744861756114645118806403788223818731007207531935324837948117286679544864271007918209826119852349757780131058626325221411252505777401839559988499695446562850554235277584811331649666186159219308732796521609802095796335859775377695880488686602190500372286591284051846242659395255351314552307277220460979548010152426857212445807734914471641392578580039471669755042830082000945121680935324120110147802187341429855874770291724282163697334898481813982257174783428115752495632518638392803092980237253178898711300917171976103987874533195831527903541289525981679583878721152047432789283634613495408379266485706644083255683641793228267460622238887569500562216114170524660230315863557053300354825983782449965746647641667041417636782111926537270575938125581692517385956848689530837448648863260359461514455802535920149513941085312623401104016498947952751610333413020572497217983013646130751756179543068535138804164833845649472704901938497352598223701417637837816668526771159331437582089835940614281447519398192969717039464379407351005421590674200660023155144609838111967742399265179286063582069976900631313409474436135068507666454280647084995990005682394186527856446487410561028149903726234066068103394512748513598992415451916167142408346277401397956167023750338156553123221948938384999487300527072381190949182492132087314413057021348289365475763940841861871576878730887811021801372323696759049337190633092733280201888073053493163962820469047033175818224016327823745314296486624390756568133390951105891350999353673978771927222740164636798741878864856089242867566834610378255003222930791752305568416314547660100465053818321860056658566421151625580048662532389061476381588225420374262061687149834496325089938542148799059438344894076935833236763698026426815289940538496751530046624792658670717759312416374547252952421177026967979310374447563250413739833818566365593185724144488515274550025170585503133079337182960753670228015709417148192984507697473189352106035367035286006327668677748890614858888413641523499592943341772638177304387053001887880363735884419954749504132854837957019574901661389984783816733239696588690930162346384762917386612695671078867180305404470655671160078351192955750753391224455107251654022856934373851291959884332517071860317875854257718844599900920123324713805032893974523220830703377558412681060216862065667600365622240613206872211203639138708555242692237629719167902461383950509953429749636547446500891636924652064061961549607835017290651688169251563763668982888196331942624261093044778513103066924666498479515748376957514810272288477750763061551319873076955160599040153765311131824428994514775007581077396471590540613512325570074848435571581034220793920881927944691204320211586478939219225995077460312586730732536919873444078272527921325892342541995340452532595340545514478671169661735299059360300681609346403240461902389100979109880523456383690184156482873092066274326556094539079529852719679015313996307662919627691110597985640426182699179869624188084092425052470422557614970721773451348293774181564089035416625484445337441099212344693803733568929025082052888865369971977091231931699229184807929002986590762927946429049684021098628545049657061740499052523687769920152825214214143726338875168319506632690517314005575618247614236528688821559906665532284249697761167388096912237917320961481394060732145779120048294099532585509300981985754694732850134100011207217290933693350628583200173899004299656974763324659744327176918356562959300092830303178532305559954615906653901613608894112139599232625641241802765467924123886093142938680303900484676480206789778868933133170352983386767014287300065159027788362190863649157586568423543474414260156464439009720230588364273833495186041080373671414580923696949782863343750818089349072670926379454653075548902447626170571914737410196069640288121712301559311890602083145775350281644590413085090957827572808121987821813318890380281136846619814738776467604543443448406541916740521134322516260997908726126150077377910754176637869892808899318724921103624079913476478612332982903468219741096730018438883455406413107309188123691821406036305708605861434219121448811962799964959488890207949777391491489750104519180080610515347774975313184888109563223870011935673072342157208524413830857256147029848745468787865319437486661178233408385143198759787906540677354881769173953734217018222254783929752732117063302271239190795275526510231928529175648815397834680812742940993062506802414479076277095663110193964487466412460330163469639321067053462211131756953089327210368389923481190353722178720340804060075377340337769345051637961810534237601876136826101147446694457673505732118068704880385327108607661181777776335014582451668339733542050370206289929967810478068903807051740150571611436882522000808605762983346216942127207592841851662565725371781693856686458311339873223429705620688444935588419324614443567565123694681006645989512540513407539966455574742878195594754661699678125811963818349077238012718650436936253291704603536803362699117033439065523431630999995280847028830128719983498150179116820577390619599371499306704152696194784364990955159154395075354086552311213274540968442097979714313525463675536804778892441641563271478011792975295259087415492912626121196057312934641212308947496511081312065343237050456467556813354946242499977283037323440821667879274262430680339402858484830120740563753015918711897920947549271066948609654306834008719965358018670673201972951513179235750208573939081593460756895547238849302951759976592079879716306457097833922386080655486500210796638167827280663066329372444174822076767338752153713865010295866530357935084219898724064116353379433640900509668738119244926026697719912789499209083387817815243789727169755060162139848542615381224044855266081895160601062392359976847754767215466941923680691425372405229477475097602499692150077218290517156196665779760907606959907999981612415742010910533230891786324705656148356975142114583540292506350153038736948276027986503172894721952613198594232459133060510995778884182685701790779655517721276711685803065183454396776868648870090837155614192499064787326466088782031611313784827067492823564276723697459218610541122791411256524899406613114850182786996194647691128173109008709681576516857415715770763874353172954243679577167951623891805900772641316475537687417461761920752828166023519597166639174127066211723131642745283899327201288172689219210621540231868652983476765684721154560237616884903154754546911182580004416847084855723920746794798811817402386132088885364040364419835383423899847015118511279912276676796374068849147556774976399879980717803608806374787178051246815164074743045844716297010648721370953777092431450175649291919803071842962516285186849374159699658606038331891258204130541121530153770507413925372107266292511306706336751887664457450754355328539603348022674715713726310469974903067635599521920490199675956907364099984721920798879150796519295452224540424769855065810003308109215248530675277329060076702726091287890253310159623409298265784545086885360821614882890180313419369221731183255422819984683223396465569270329195912659150261725919923945085993091565918889731595622371607111467851150006160121359466942677323709025200458379397682451934741947597207524315672552696371149861518566260005659692840365062861608499005540502007428727827508454845717151629262905932506801601627492268181724787220132580988530545155054905583893613387068099536009265218748454036970597063804474782976513779239764307548702676068942931534881049762614359490951613140643331256301787486838726854238129577606645284732051468955795616678000720124397444634134445053602094657354190137135157256803837785441886687975655067271698282024995951717967871019246121741014350279937263514322933607960317336064632623692020554844056973444919904780456701891721608379775281358437264105198644979407176969875526271638849069410354932015816480516355842523813797880494342887735650332302332810969653110272932677586917800345773689545448860834400626155399260030583107596594823210804965618883298833525980485768158646231744699736338430946823726766950847046292182712005303115676109621188073974377974923781451282934444369267260716732400895063618123109904228182700539420710238430128695090697905724835211047822856450133435146905193983473523007721326309209237366327441514807788585065648072226808502618529128606383486488724327156680908625341560350332915171568887556588369905655460653284906551824365501873396663473884922226402012111963887201428259340507948465900229376459080150749249106507780527776654910768788293021624191257903638049385194314364969738682898917672098690554551985459759062862741712755888223388034424057482846043785131555213089347710181103135029369902694609500446096600953924131030478528449077608417757986577674894614078020268141377123326505168330530931632099597175867293510943537577457537761381866336963025026912396983754152405286946403119020658833335572696466280857607746300063542328997677344817578499644336000354998030683135104565207091799661919348142882339167121624215932915552711439184341464292878469737674079836417991393205681796389239808931783817888109094932824640486257343364768316258076291443584226412710231551066850478516115045268794237780332566508216592320455818014238377411280745356485676927538633246373798842530654382859570530240416440659201226616118878107599110693493626347800844062357012964534650828944123196667424134354313492741871606014874422772987281451274342915990052495941930281160323584788273704153725493174103596253438838641945750188999632205550000255300231936177228203019674677188836923645808426768387553662650183464009909195598746653924126368077650212987140405122380119725217847639938879978153522675275772487882515083055485650912174276604974201186073487505052102194490992543339765493124914854446227709156514169026436226753414284153881458298480583017250957442566246404352806580209458098126505038185455235971354181019200137622251886841831092653195765133224711176556762890022491759591929886890861498131033966247781834552317104181633919041471369456126881689432447923634097666162895634657341133311122275245472536995931798200736591133760406641174540732255477502779553134497174408340259652978288725361021122229961256723518448986894797198469342087857391618714184818336687861248697915415195138854554682578341774786216054330306902391191551116412716615713848075099183634747651537916695844996489137084591756317071895311671603851386530781985758126210977464938126406052990760439307310668502134635443044236672788219495211486742320721338048722197079438055014640768272324243673759233404052139725110784143495940332798005464536663183370852850677587535589163561831707373427066650450002685697789047318473742267975819046574967224766429060483434062473480006781363787753409976671081007798548039509585072485137239876479989521686488796046387825860649771892447649922622114522845453837459944765738722136703597697274262406461426941254505362769544181738947034181334004520830576073216510757366485083713776936610386429041689313498800988904874632273920556033452038791945456875508758491480323771008783320411373953433427230251289476613541511195098079042829919923110612380687195645216777283973565270717378335573035995873930132146484078296947455646367679079932477118831892706352735194536086376664437540698139484743239329797603166848510139969569020039133464188213431385556675950992337600427453517103646772219823809203581864416314748284901911478631777453468014107147213492382172695365466269738352588179751143770565949026607402407888085721108245758577705501496412486049162507852473551222218987930144718120144370894968505900690741974250297202211237422677401717016287736065637831365175618580128703286718766659047233813356695417194040576934770891365393797627474201339805217810514992409120324860089003890291929840499863645460412939863686660633633286741939619235524549949415085989044845464601687589070044023341723203559536879719105884384684897826516375423071685890282696541543813962868680019925967740236851623962305351206928657181154490065268947322875325853314049366268773199520676981109261236133965005610037591652570168859831546947338775857621130828575748638111578852633469430217336144185912424207515761577273597783643215776340160080863600006848696201667401345568024500373084998871661158818100711015951209091226836983159677737810008378785617476409258144692523004017961837987841652003059488815015861066358812986874790956711161947616545028440442687925220445378632029682734480866912141242441006395894274683263111322409442326168173535866269532326021685971033117578647642766921015517049896228209296099067445126696591505039851821580996545874469237815667079673742311105004228064048405620003183577539548641895309213181102154917557600200967387319402143211747317494534897867265017950297572931290177257993326259874192968036689582976221078497620294735902553994893996814124637162216790305703450909535989163772754362573899016683051377872601794294539988634660683717478189461947723519553295442683159191573417052436558615772599619546763660307428806024497664176002119174546494438322906313624247285622815977391303217970426962886686604793876559304239567618596595695972922705756865889926511129353051061648045399713791321568394066259533923406857099173135251354119784945284822142937430132353518352635871216995071481714645576926781413725682010674991415882104494005583469910825738272580499847817365147136672520958978578169842891299289768982589822076911376831474545376551688495631030243349069650093845483451137370016969375310914228770725185519304739351002791798527151800966837923975706011291326942637201561212738246500377446848909301518346315277128233468462296291711615139370553444114549755278214480834351347754631863322947118537182297241747960761481215063270818525835832612528633248337740936945339736093130837901262411073021557784325390118818122880908126426757771520473417043289902770996658031113064759457893368577164397891735750219463849190258985881406346995442190473303718707566842790181473755785326206014241111876493192294960284482262848876503877201512917374987350341757502825287034906466897647312838260295605626549406265029076276306521583712292460489351737530117751475229597066403426083770146997214202062507747923047674387831343682164011534329586097626679970649835800608357390405523168611410515372841602847878092444788757949886808570908213310316281295827153830526190348689897434533835085348585123559767054848897373652293886599569263252161193148321898696387325837976227071942521477787772963397515436034480891943599929988535226794725539490892346416085419642049911571953120871933467963446227651172059863715195546755518369921385519118717119641104597707951173400835309792908896395614969108574562712639796454627880228567977733678957207986726177552976098725720319851800392366148005746672930198573159914712681665523265007463827283688214263465784256489606493806210097982652786924394099582614567945901495345620437255732058877530644264736292370248628606385488644727216896011992576128184592015930877125715883813459943584738753503319200222384048546113811031212944243447912613947786081627997563421865765050529839539373642314685487219960630418058306971515492037811100825306569752148255513676949152350871300602467351198235731850827468139457860396148703600159379038765226627806051849796259071002105305404863449872965244980224255228028776033682903205204003071508464033870191240998966569262654900028122237449477854906718369189652740267337180216375330916877676368289512179154633999588132538906727940669675943124703256775309076622364552367535468385039124663085606209887693456006948220593757540605309127800762957916080055581191770082463816488666054278141551758635825524439095292068310085372586078476269019228178241067819764397971362965465236667042613137079932155459992860229799645603371373550838223834903576790603528411263367038549986647784526634486076532299492102423045365422302698201817331672726980893201300791143766913636476941622244833986010072511734843472004935935018054208607888099215723635248447666765688079698947981042022225051673420070472063136920903891356908291404243301347478797384073163930950465993517008874536155870626899320304059247175612433082060004744698355998908194466790201000183458961214637996949575193742928997688437370661274696614989210192630919276081788381153254542364925290046529859025687359906644313530496316870003245705000695142104355655543361962723796650091263557025798093327541431851696319288537188752316643325350227938725005094158650874250536044020455521004777921687722238749069382967381933220127860366886570419782025847878022567713834537724838970867019347538287107458951771381430919708286569374443268630235106555971784117710685583801069126776386645628130864295101553491425366309394249977847553668790043008661459879848228727854882061485982350660976298583467306070422624811485150961188273666533338416967028643551512705584230446316612824752887779372417666355115187209657235852493970743814043349517012870201333080801595477836996363263501894506155711698367702239691778489431947194333566720201495506590383209363923206758450910405168720298063696265967374702290834738218490850967484323293038667839262618315506825340525877259216538167705473378346584656570475117307019686802079265455639467117020310544858203092504954270394201284842492811427622310080841187938683846932196700522086918639366767755179066441320977597130165636764933648158454853670487778963889513258099060540138438182794065054524510376616995373433362877966838178474615447911735494591429672107895627068075033151638480045282014079142303101569128861790529361187564501680289315016344361355252640367870828818085831880480241947140928898604249250952379184658769444836710008636186122844245916273708932223396790107053098492833740151133723441054780815264638875676536506795434345203774924815286652839447338944746549827486632357148564500389586977815705297692222190478462410793684118142007628755726926887186600256575968956632937099026471716531240837811406394389708749935900702282627508860264089858199674631716449878481325205486347599004061399261641368109595146927723494559102236455659168026052539323328579687551483792055588722778436752046794399942151327159817660056434986885819254376227411239103152683959943247847226321405914958918911136449678524844410552342657972348815735954783405011408957263075841123977388614550305553638619077941022765680146076919627048934565374356418345728754009253074946782029824540886599949758378784458386140644681862658847690972052587390441363177363869228172833510015957035858580198809145002071113303632519519018789018714650824507333712413988913008021057458482934028302701084755716224270693233973241387627053791198841059179000106335248334785857851751580462480520704691530936302083746940984031365095975084878162679054121741466545005660528946967056800766235259967149093434649484472046508374306527680600771701649234339262536745398986856751945548639393526701354025900347116487413233283849840965716856446078204697227843361315926968264076103563284403913477395972984677670868839542787452579281880351047324015311302996837146196651834088093708157072554030658042935086671939575438937606674132046514210519990512287874469348231781994836509606650406292344151178941794903017301375230553085316990895390971253518410167331980665999584517910321423293076126279251157129119283357462285882715197976725261459301322802657617455239084866845574075067544407520974835418285470129664178714233651247850430220661812865946034012590651363368625161583964247674380551701737209172172708632118792479930272166277312288622097542488451626315882275134352292431457725478668776402090355356509890000045294856105413163857085921221928400026088228476804197020695134418591100278870748722087472441633001016185269723609059385747572999239520753343467088342019549750826586308972638135058139580992157026988101754016395458742627877218167033220637717184944671084935911700685314097619808536435493920572758098553687015419251132459221811185173750679725949297581589986382349177371088736481998109658533763340965160181257413781013627285260232797200715014815152975003139258928805375428661708090938086351210701891797030630448084971413014287539471392433765618388841262928528314162809784420450227733707269893831998161686069939494561306122666989375995151538129976109946490774706840983779893583159867904319371836969736997722605812528451557950868958590867400557495656893505868039836829316420877901726081194763372732622632026395468718255547542398188014957139121734274106544485812278895951727453011699876847747655725130291347624677035064386677041184757506068679036134574049421220052086981572669120947483190212696764822334398136362417282166103319241770670514849420785006889529014373199619022949765085358687074704374937450193060107463757637694119452786072843608710122402965562556773023921329268289643137167980728058503312761476960437036964689749699132764265785948969377973656501956622385403563967744443402569628156038607717528214172815235642814070826897636754543759032155771442565525225121804924099240344179748754376931104944104959944587468037453115203792744183860654827133615364852971748963024169466583040910625132072102962663695739269532262525365526783589802672115905219677641637060049278631558582091807777806973441158786446536520324898329836463940541236797037626421371674964791083502277090715915945579025680574256372857934598641306265088205466684909467785133028490847073994688444890264644970967886196268822263910012823089290416951114795168931395117907997007697675276601040267132321023818396718438857542952338160589650035104313003122954345994823177836470173460471956803322569439807939582317707661903204753627717226327821554127927156608503612861375584505130512427176889452092934700346558490659208598401624521873094607333149043037099077376066543390216639153878719441083542341533081962179812508621752302046764227411293644272116905068025158930570111664336005154773614918586927279584790457729071269700177568588081980558367722752896238241138711663038567154312941432985505581941346815311082562111207239240993155684553335163307168584730820551317063294133555792829118368137910391097340332584313363116579633612131086627174250062551258682234939272607161133813477774100753108259640830734123171682060229626831340964811156812804923734639804802025458411067314370218787797805059144380897777449029633951255017386528959445265141345051621618364791515296497652619153191130805147622394808671470499988991569485829519293846756939401024414723897049667463789762239277753029822710812250787285067622302196823225393832640380097235747609113875761304659832074124240345252761302975192280545839693462070583450078775245603928617537115236046134265993139394256637352811460617296346885538411399995535832509436059236912080549804093744720116138525263585960593307284061176953752748965057004906144820334545680388553414940036372558279344132344333502350316011077059556212092775198684908085313448291403442694306514843209602400423213124462457460496350102595849114450361286646413793254644098387510026483711030626729203559418122994908348045485660205186014151429075532492378502529318183785001485565860170729759609572064125888690659076373991047593895292624387176408264583121746609986080999589687850762350435312029775115440975920945839306998670320478276407302591037079221900368064048329529609661405034852871354100586299952042078340111835901289594139764402896471203179799060532934106263457907829547282515304724546195681276425913044116378098172893703044392435045261085907573091894621983212802794869440204278449072649783485830933075530677660330249541850115109012021533962118380424085492561215746417277834049459137470279524021823779924760217447253098172460130526213141534496370410531471591627360042413739382554725305026262772546537168631916220942921114407398406341527998993933933976698307084478658648681662449857226074517036941940838473777156538859011245377108344005840800477108950998464465322611750733802081954510077561033459030148470858958842454799973769336799327665385934150681643378753483708721062248082561758069307693256907190296532037022667659907399194829545788074744614009460548768456365536052881200689769529459259075171162441673553460542849155993982483557854909749282921148549188752670063766111277034687669287048832837153318956355971079978016339653327047876590069321861519391843165984116747060521795872551353921735692797817335648921452731131540314623545366244035671124780672362732987713216626148327694233492494622221727453116526777061012020389840783615765794693170852452714577905972673196560749578067745069789793709788187954367670273918447764007128809097871165524296250795270233143404766076129397260796036244258631645875771282670169459568542876545408825091780061681345825408546715415803107332768840102556251763839481283847664368955926373759659966096078850429181745948599577103131849886480722567299633300587643444992264191498092698644993225101524550891236861965036239879248990869998603354840420402779351184794117077335579248759655738390913357488386829810118625269827713406906961195573919758996195565503742793946818941928728583928324381231429520495616587679577191380518999937943543992043137621903489824994710670957137575542871175421890557400562353513168460287024999241959403327109499056038543902269811610566386730527390295423760262520264773619403885643528016755584560353765354517587134723590060370725749644561793926762313355598477431228241638503656069207270841438190582027367969813525363385638128567147617583540158355600328519726611765066604473007696957480830067845552409896108631592118674486697183736495173091792426600326488256124797329749233117826030926765303994966367955553329239787531723752086575169435370210315746200675763842790402163839896322342347654538306540052509897978254750138603986947379094613731221494597624159427148661308965241790942135432286459497395240471844388906042374847725524275738272509167122990238265014392422975544414868415158509356573167152318758330385498678367429929214150686239233069093423181749000900106966283725724011294418684413811895170638282142653641100531120674031865468191517883908541537276900257605676235043924939271753472710886031976951250236370978283315924155693694471651922794765882098669785642035894382036171387561150050741916511888614682925869973544500474049198877949925893455437713172042230094888448914561766246724275052763162792454679776272516749569800460122868024753284065537187436643810138157898043640718468847997390737735020211229233319433286300453842652847135348276693374895455127661500148466427879468162477934064313507424650833354145820626409884195764656734038014414486821067939801382639945703666932964858571586166312991786254600033154669555568589215144456664827521928581333053294048178665077757192645157668527493824948317684495630066175974806199675896291786220764901294134134250848595749514878204655146303821414647420841544956175094446283634944806107708628422759236132262201896112405265033886900251143836487450489994145014158965266914730004203827141004123916163679055017888280337662238665209758941997782805324746091542586108946754454600997745984930985395417435711237462059409526775577995865390537572628128726454817045289220628623407061690958403891849885551283998055744283910941574872786199867706021688320834276068368887585994092085242177652474850641910205986286973778421926280567298774181972809086123826554447975475163766070964412556562172702224779446737878262081597182451574955446390802848022471868043911176388589380143153149166821161949180498018468922445067085545835823201328214848590142963677712053289588753412058753469531179636796811787157645146328715318017811941085466806770312738607728761252794122860910875949065162978464973007383049259708382381691712280926148023096894847480682885800050819757772552121881298253045855820061693184216353635709958643948734485063860273366572755969407630670765684399187734690843933113816716616732217832004081976705536261362423870564202583612725396672510601103660773026538858080929152971101100902732353038517856014129447928590512907781277757070113724902481674536641351054854511183669442315277189400102794803097799216158024101518124197605722188461949323221060947616076355946022086716539891413577417092563699050884806580015481691535325056619562037321524155969355494670200126627275730131748199327662778126999068693216917594544015932914925867534238628194767570438760495918371052828845650058852207609401738824588879107841456953549317784715848441403267912473735575719544960411530574040331499195550321840540363266532161063105136780818733188983420298243574188527980160848010445256500977679214761765123029519935722213389016401651016639635624736837303777745040251888848407461145686668090419046998753585811462924377742315910362465139381476959718724271320749932602571416175193437545065800696057154174560264632454595551466904404415647962867877454236874250966068055548298548590073362078681976660486659454124011151045278912634448755686795367324208856077819130299249617979307335618967137575178602996318611276524758374167687068202588798450372314470617968526399235667362299818495528955181236253223246247546307200978665517459356161981656269442435117134501581887255950650885468512065977219637829199524396740871016297477641376175406432332557722792682591199881206977060371424760792291560532689064385412256188122836815909944626240665659428751204296918649760621717966862286298498613619774837487623555684463983717786177910900964200274650133621194101777485188772936530676703065810577305164555699760346527695154256339664746994327788451617495904098617058485944325875709280413356612162621832477695748422775997552756125522820538455341600121654008746659381337731304811708309225011833928676565687935573635385794103381751784163993777141372490186694431060593520339492768951368017375675755771037257394565069585534580156145198221369192966949543822177534016744145890062822661827781195951091180025163330026122766047815266055453797450173290329391498118683332885371319221991768643701787205334217082630976386006600154793717825885858143625704005360686958430470985396239668636513661277009386018246889659893283482964043879127012390231304721490094946126333148327852254793944130651433590521607245025213991917473180302477466358153071962015925236787478807040518361205714320621642658555290527196401126888079214055216450315214417575295448739149546825683356906997917144233405509578085872161801225486484815743665432904055720009960125553194083601690470051700438100671452976969358661511109021720596544069827016874986805349091525005376471061439368661760250942247141462391818780657793167464192658638065592077498149707297055287112688341142537234001514050463610849370367127209831453585106367497318622038524633222120507463321851348007497277464621520243293589729027319330820377068011159508280557893562117738932268941404877367883263707037819411645263204288806848679291666074175216583700160085885783685120192414368572767765140768955604346213679091920007634746046118187134397520673376550534282372272748858951999305199950132896042372831756321393907529294700626407532102860497814165638107043219912255545802215851772338195147534513085290351824495127865113436946330150745544444973742455429460829049698795537192307041202450622141297056183523778175842705530734281422422069601823690538171008946304366686360895536174925294113729218318889463136503016179606656732510100182724632170395857472905552257499850232131573588469660809208457710659766016981767557333984643443585974233844590779590718840194017121176392335156606950534563105380995707751662183241987351495113915830592107855945069182183977560888757835150191846414167437277480769917182154241406170124753643273853735601817555334238412003062994680984499551392822480917183856803281287799273623398440642483307665925656355523105915587241641203462509153677723267725724065144327985939151074596761229540150376895727046724535423137708332061948144672447486758604863501817781713784712994430623552755849172727085397236205563240163674559710519833752085184503327061764226606673758907357013332865676424287417513347904086171196491702894413618612062701158192873683595970194225483954970391508135180022519198676012181876601391300657610995795483770639115231323936623807371656111598451754033034693577844219146119616202426410293284825423282839060224122408752634960196429134744929811267237417673825732395981217246581155435930351637189349751712680787403865410265856974409397026207250855411521708475649192671463655525242020988768642788394162893892714837777588616949925008023283080064515943715277813053385584131304763288400457930526660482341029414018843262844814923721041526522439895167851517038032513164986833433841716022482430139518141267119824963683063111815813686758399326569258499954976846350705481719433937015647015366195948159154428571528261190668480770643621773899466089815249809422809493202489390275015754745770311794828730251925528273258023335740121236564335512579149176321523925754500585177440159824605378173414313969198114450823250873430606822538379359082869901928657181946081854139192833045959672324392785520218367605966931587084223639953060356702731600407993608622861892916937451988281649768926889894312188417985707607147219075875516841068353374416498049945291575645780470697039876886928237441707343268444864766617593692671951128061058526986547726002493909090459037295176121333690780827169991294911791315938084060755794291119984714841567930833386791045956872757158671406137397691108246036667910671119682816953704049879904853753996589789185360726217535566017949617458827687297070883752205307987094072512747526821770609598920319322339849307108912668383314772866911707964819845916607539354485412350867885193941046146561582033215570270078862954364945063163098962229812338968643033160731173405237884614769905159601936893152521272086413595336643033783093801260659824351748031587051678678135930832229720764065646684743497660562572881188895550769570484244931810980674116909131161614128672412296769578705183725375985259482652571660249358023278610584057806119919185242592051010830055123584526342217809227743057794820466675058528110700896001149041504743016792666467929338457986483606673117431480342233892513246634092071307528467463633160213535402588533542594736793500654179100181863561199259294720118071158190210330776797373387042545894554482957056468890162197436301024490022601813313395827027539992307700276955143912016677465451125892030027787220206030477735216842417814237750261281776757079562114428612510253895455807327794851468887178333011935670513209378798548839706633963043460919005736544715088113522462843398432336904089199304853697954747745172098687019158172254056613337499483065144331262119645198152961115179388651812959393215328485584230487449391110670243055126327488223969792782019677352527896353157117220847329236238053781657085830520822884749941886515279195977056460495489776005462011019789465185200116222054275012086881276502342849587006702803273755120037393388860544015641125802338411546458178969952492186995366226140054975293595262995251326294251806042310081663745441097971411936426087971635925925334333247133500742443140788627385464978306884821716955698973896262142413360635994975080208815628193128335568686340040368846583122329203019610854944480098821455268043284585523169367635978490233633226067852733278362021504838997945030048601655535738919149511787647533713858873734851009686561898368501176369024833882961316577380823366487553175390724880669573901767142428418489248752397937291911218254682981092769985750676830038835927412659393394793524847674493912981544557189867343337257963245058137300429367115595852048592606665718860840826346942497522211630084165266395016219494141703184605634662965640389555018924728484607815083370326177926831879403762796815742042966581529945712654978077035337176561479443743872995256888408551976065237801208986097806700387102901916864631291770613586231005757773326471001290254910047111431563434366673100404175536967144565985430957203629324334657285474473055964510011998839670641199049226778773343308993026265125295193282973142972443366887136133071767996952723402792589678314517010335590532781057270278979446894322577986200375905109525042906919551707492585762803885888612015755770565171772984110898150091954229129798396504677447472783177737114658772779480582257672521862038845340604882919237960218711121090795625560557452583400020704519774049289786622678936057962143651594682909744857533229926252227426773562914806684964975030060478280274009752645737913627129858004268842075812297014344484844347633563339243013019002900746352592478517361535694257409542089325418187160649056027016919863026689067884946795031942460766179792336942873366234208252413785738871522993046761510846618248958768291174605308256746128176290410542598444840423895198810549431987660821744134883965559381827026191373615435712890643890619569462113106223341264038432233948294159992337353276510538373246600766504536245304238774876307699164040437998227843476271697028440818949714325719851061853490105941118609404331241299991044725221833686877276643601629606891563961733842607482467461756809785869726801139391355865429529615706666403353251468615289896934155470433128339098131339790623741987497654564316700909041219740969183756443259668085623196755629118021622062828013118862007219883090117592407467896512911319497950979139962542267413648738096982148632903862674674499217580348926297325970576710267557706753078358915619899885233862095913584566858175973772241188710425699357218610235454616702355790896117521507999635753922212071352861135450567845239349923019968734650192372283434434392663451272718439170429113791196331726738483123948200340990107769661248470887884479438318998370614334868871143705187163517237830212790510151256587073654616353100861474136095599781828947731389145820649618952136413790792078245506247887247358380494268714244064458919063168972540910540595203051614145350723368878371461288498181941468299432189943560350980638783372116621465559408297380619326310328814828837810017110363448383708459534992404595995570891671625343748089574549891931895740346767167609917348812399980042953178066617144356490201559394554138596099286379730615525392518338639174609457486194808539883950152279795600456545810631534538161936546472600220682299370925670022541764624002599285365679375418950663618507218380297418379500502204616816741444527197096669428953161107205401465574079624413383102236590928408162675962676659970582704370424512265597034937226974908474698994434364915519480388544858663893924724423011507468478852458730532166769669025173254628024197443310510504457797805129203370391242198627337068215327168983048847236624589638611621053270354536827971271897560169036833616075210087883588190685248250284800742260416535300844185731449598322891915239730307248699158711787972105830444170685583917928099281976017542622976420683253746460787425569896713967293967260541275450774541377985329855429340080493094395951540597189668329074031769038575864375855767261842078216162823642876926686554545922158949945407210854217966252266904492822232369348308828250345898674360101834218870340816053459388025166384506125276973746292007933762629080458053264286958012015108415961006877188351217354111677856357214498209728649397001600853171294927937384075390511569750977435735150052501781174703813819409921209827982826480748639353160123729945366249433314839782859356966644441159228492843127857588304787625066226737081305895596070083729052947838302449106038560792899356344736658035598714140315057469712843498333873372668054737089177528806834527833741333694723740706863744681294676532289375889271162825042205933220308355209792213447797987647938364775754299165822247629110749337650615008989051694413353614061631691606770567485326805781737043869704472097020493850637239011079243996251191627226782758459919095146066832348136265855693257430705988695454968894781380221587095392468733167593305545498325655162412986816032857728532341138385933596528282976397283747154883691854510881431563027964224126925633807327770275081619619207690008920345597819451448024149190619129779854961289178399412606541802486975406418769695072016473768362115856520011372595237351844086851735353324920685482822526310580772197923537923765088007463877756355848690876392963770731896559948742190028033540985138254281421767100951958503871570491746215227770866063207197949519370988443281609709783127200527646786368133410290975251468407538278916491209716722890573909716919080790273145360522300098698815294629104017458112750064208099420616309890373387868779718282504898369606523243642315429664864360966471562174307960247786931937947234773941835029172129932884326216024880954312255809240457928377751060325638819437574050192906452107524058312819657505620396291530561006206276099616502753111158418442365111229499056793160363705252566744548372641554797197834616973256393842690839342926636487674250318136656377543417534263600941114783373303136475853066227002572899822630004871472923505093269225725022644477919930164638685771790681644436738387980221133074503494899157583139296301758803493085805499683111076428518329306464624130584313890046440784729718404885830013271842997998887197194464870497424936879882830621010048192966344426826125144741171806748241140592610326152381640571869470142364154554832529726727615453947399219259302719464343229437592931993983118140554957402225226213925982025579502380227382110478260205401319310726617741785021869070670287757845671600728473684413881981496339135348766845197188012105284627245459048758216296675623009150426412869384939431809231408349695338167345637162494434520336791126286549770156605719345476344596003525972250389458833947649099770119762243282359592254702289856419503033390943638923617700917316740159871382883499723801582365391572858139232314771336381307398220908182787556149878509347327726720194126542044456966686758979253871469893381901478442257210708853777227624992378725097439945947331807428653518337172544744792963615231266750075704272251965340092287352356518703086672018680138394097297615997289688506424821157358213225087503503994608593877851943972339652703358276673681690505397857944172372829768265689713850429518014564674544182265052777966775981773048000771014159362621030493623672834637131365566550406950745711835815614868554061951404778049561881995764834994062727543173558872862057239637714651649223955356084818086375470237460520687621339435972086574563249310567070645374303416947637272647151311883911747496762407228812909113348315770058008188637086590343298135950633565114705488606037165995303197393664876870410118750342248506344562442932793763515218177327253342004169853726251056880260110850127858725074209025842336733783146723463439076629282471758452362878536036688997111644606177073331540779453005716120264037918815126642242672429385529186451589961966419445638249013883891830235691935393097026109121241309548050109981136394168756220809312209331539740436140180108711811939243569921809244430043573187515311464180739113693325108027647416240809508054425342454438721462006854414028986081662008920152002139485582821382601101992722299930236334361567730437656240225974258116664974376711751961410059207789020398658528578872203883393469460129111707632009852224328188131512901291248657784266277736498954572118053117727263064100952560311502601577693556249551375502172588808349563152842806533113359924860020158795647538308947600865807412844729099553544811787154060602019831811859867184268409007729126722759370087307290215198115079985308588179359530679567758949622842790655498546576857628306113464779924727796946392279500776445472569466358843230562712561422740023985888289349376168659804543753123687438952589048665490231371513583616399149429587866980765752373261149774364382243147131211036692748092669296640480242023530941870134369562542705145716841212354489101587407675965385776181962369715795297367133127540134121075688104231650715662400909455200589648757745924322473189153666180144268203946737680874363630625765787215040056948605545144483318067200451180443961017062507506887463026173392042469216313694875296077388091602360982617267752158636313452320860847889196310500961875354719301216087794072535670956678039577040107499279963764802207167855255947451746872308094665802262506572367852187645487133654608440403558361503456568952261729290863488545929036483764507845938759449781135326944690189878314909968763651097510606692216912667324061359846283809400526854917367497434289310432312156333380988314938740328818111362779268683936869609180308108035832002893568533705891889528190618257123278209519072538740861826853695056001062159954763376820389068291003633124792101452888599431389901306077925849096160339979940028905800439657410326462574885221114646674826240221502846089135656734285248902362979386426733941792886367195776917701514627290467280464298231516754000955676771889205584669346176843435824557391044672198681110257724147629622622533261754251847813576012736056342331634588113536257933654304483050877988472705360207590235325236769088505104944880794582627240453030154119396541014438565086432264642599484741135678576986572795182847980474868372203616824835639797869747246875627402345076229527206714535698295062773382450180746191857742326267470347431258634619357808448711286051990391690962998240605086321104107136917099845323643767795847661421552664731296241715565979275853594673617680135551218168459648057097023813351451239215803832890721956966308068707553702888202662221723266119935944580626803769550026560597266265225444086419952126045367580547614699261137895927638357477923327724328148850233521626354956638545978897722618374178319777798320636477723381115023399730104228575024229622372074385057282552808558103575687402660094282640782888019441229793765621226437041481072304176802535033054109544668637571073429485270454129623327168849565992248892107623810200678760941139271183939913068163861473355622164510002926368558186280072564316138105830968094849475926516696778395669193094610070066670986106560282247792932850704332903334549709522530844407177445344785773300997784213084886631459563857466550830491032584095669279473627557270327261564847897452713552894748965286860785166255106556465556799452640782770791044634945430215864330467457734809476315045924309143166304830540332674101296330890775079801643005433623377519312340284359688968443387343728165652433768153230371112980376883116870433225587509477776148474896924508705781720199446141938798125959042660904615458272413485397107536592051244247203795814867299961660752563964540318135461481340548369729262341228575509872465601449710848327177297584840180070721989807005829559909909196006786242310663242774826969023344433104501402682968317290106497954330563331009764331419342441791623722668459280323653097657202444270590300628029345431022274758043474041808132905930125399861663644019598814826110732748393055547192596346758515111179036530958818378683584547125006108715151790820994327121751131024621004337713947318191016885382163878541334570341160088152431974550116755695692635981886609335821012445790017344448401177663732620002491226115158264064779894024930684204073630400813226991173396145433103257620660088420053076756242245481111860701361210298549420040908526210323598353808430529022899265691678544968538105548816343766267347591560869990183571823004563608818932537825269971962338000766263567325056238990370173623780606221939155123685205187509614596918704857836202511902841452880954873940034877582171291948104803667962615256099133977996772012377994771499771124411805506280946910989258105327308225417076040376709630156172977128631322834892502608317604922572837958258318607446718308960382848160057764754289134033134105392833439191060064236498238479536317787339667311860704909744129644755811696491490105895742175827629372194299219444265486840432516001384106130595690890958027536027110498101165401856481885658125343785474169811730346406479692344182720734217886636369573807832584135485594532808880031747450226556894643666535779498218335229730705544879361798822437983422679473263217425367937723069830434003173795642535926778505711969962759241187765867992399560874352426377830692522405100251895343058659056173311196135250619605706561755403292025694127791108812741885857562284661029001416243506626118549633047898406281695426131419582687768123829125709710855681011789848527471874487230878144317218278975894080952292431275657505035713991921352247524373765512151360860527775305217324396608789289147529256698397955640199478240473316201890962438732300779833523522936729993054985677931765663018824004763125538382722903185046373463727061350096656562821947651203520873364310390024706884749631957785410464990754375788393125558879428822939095987182358569278384494562819882632449982457412084325305261136382711703481200917835229772376824751592971561206742899529619366310440831364231951491472323550183466992772761285457057457715143953396293487972209168771733781592658689827745868435477483067494802915443881656326642720066339511170931572632056594878117280850760654392334948857854140592101243767551562032515230253396343869837796005406386330393139508129903757093072862129415221091959712602196107984948544686716487800084212674030252503939996670542137099798496122641830427615707195725815844435335838174466271998646365665049375171115017648644299552235514701092342546261407197260566712875092135993127121862311335999664386740891105069553283381354430165826560640945876743816506965257654784338590865561593458513527276097782476980739265926387804278673451804069468675632611660472223624180938084631543927418544532133480426859393107454606516207049418312072419334475504873651555149135073769595016808550401950215019307878509628430110705478851396129580315011695233098296771498771537018787063854698531082925643905470671493407927973560911904400658349010264100571949450007982833000089411470070804208722315637926251712686013059407252815542556431026030549013356290417143245623930897227760577606707079148015519048276720105487176235098140673267040405949048190158547710629153222684217771629298752553455691393785090460010511421137319418641056974299170688152187916525449036465347236801748991138027129320661070100997868868762595624479089349495426304728284173333321176185300758459295489197878590429547160536425246103607788157773830561517065771844044032016040042463399091843122328052006712085013845394815267663701150806235248987736188793949241094571404574359087435180107601653958337055100220552662613857254559703111696930479175022153720929050983546148981815151577240577898331128450473727602542168928359536276284506196023040735161511944278592831482016479311638919956950823120550662321595467952724801226297622218194972018865730674720196819434561853083000278820718889485617485631566582274439837739682240955585351902493997482019768131226369536493627778274846533588347086860757846626204667560941404430297272293980206594485461904126321765412817815565519207874695085351669571868080831542987835792179619506040935244222889032948169983352617796041410800195779256754735801377450598791848305614986514826164781811685788307299603096095149930425068394947219534606286334522409733392921001487216443870536416556135162583112977977929732768412908412633394362806243990529310077940034057903892120603699473029206701838296806712122262342332416565098156915932940325086701577137806416221201931150596081064932586575108647083028505698604322336599294231839257609426560758566663764130350240897882369503290776846728828804011553843072723239113427720458982009851672727753425093820805691618812581925297786406300584673478472032756225252540053148613156934321999137285181408297075298895139059031322640666967046935028630829807468708371523775069618669121655807019035130672962917830776789688061225514874001754053016537497712607300607749578446771945479916872607938829548529938187239736343681620773168497351047206458177856725837183002287196232045813325043081143515517203063352534070238652985138407863756947626369262033140512859944296123704379398680881077908442709018522951691007689514810309172703417737496561462592292913025595450471224037667989990529126439246315262727094394676778676895454436120985825395586781422145004600253570848357460529528670865023017233837628219043007972914784649273527381135667363923860738366043674898536931576523703498800354256535374665047239708806512366150684924753492401144420356548169976825160965786996862287179987975253409079221554358377326894751844488120308607365441813096113151065381784118030868665782907886910704765551599785913323394338734914755861052053586512177984221920343547353182988000540234982411672760218524762565069753424550039199888555451335331296585795896348838473876524250120597002916670464325913277919410238605227755667182196138778498522925325681246639702661423298259592609185262386763570249036445958913848865149160813278136597328275543379336570470603909854971965231265034877804954506654179454434610075465394190588517506219198239179315585589590882399424831084303747573516926250494369671935133759732977989572484329957494020276186035411822052632464658989889063355993971174109044880598937813296800591980204557950934785723113955438517835820564634836337658933613993461588831263545668845296094321472404892575143064118825879609874666691497561459156453321860049113983001807588166562766560369948596653802061406728901714293182505084532788185652462558739376556257948505194771604628044736806680853430788602496560320358219296753772676618971740435481738831512352166637124403130238179347959922364844919359182290763453870963331856646359312158157725701562579750390408341905418541941837798848474674850589137943723693384489598870437337425552192394659902646541001455786345229430360291007380934913333562185409818272106752883531316922758476816939216571524032457255364254489424617767347763114657238356936916126440328519317996285125452888942645954368049432944943493511743276233373437921669906420849446814479482490633737199164390876670936693291336926820391270539439080556660191192583882256991138519530824909127554904763865807251399732740979036526858663212803874892394949976573656066255854048972763076928811140828741587728738062965263142803499527073049617314440762444510639261795452247396100658729677539569370951153746877933100338844483917758984447594224099240356743058559658876230728964677104878476129446778715841738725480654701907224352798236882760047019327264437363512749429881643437324851985564547305637657919120740132557803244962884265234290349943278055679921225241689482940212513221990652029576283500837114146227876843470661187609203360105418346408442173937739438614181754997164009762987570860628478131736313975659063060193234782042652234002744047862689629814560442819019778256025450782948076710429172234276359422711000381881786442158119844461232523309041393640219942280675650498842432751646890542774303623391877899705350437641848056724416768620050976355273552862152896805003958984135617336244024841538675237912356340863492159209297503358973906421731729995930953829740068832479296210981029762638400562980153859126062829557032690158569777993132308999694438915142444235488909239266607207454824626249179164472308165883878499371473122933207233159886788757007682472966436894411290488408451795206766320148931757671163250384495828805257254936093363071903794086487043864481700046888384316127580539762850520657684600787080449942851545494126661761234235862896746512445844401584306790222872453023447777756124990130088647023953911396330097413730326079436511310591235751460305044968501156107606740855086635680993639121603194027250899977863285863572527918385940063403524905077543332561401308079554090437558941140562529361917353328095799668311899487006213251275959865994003768917530539070605711810005536634467201862570136591799314621092078176685907651622422550250506425857815690153237745318368630055145515921511466108743373928657358790257882383594395717035330880179774918378133377839521995949000212090125613438828488485169612765668968303453672401393093019221209044300072253360982758129494332319892169846343374954516676133389009104907861478846007659637574984751767094780530091026180498483644422230395119086441469089521621180587430655437847288831663446465179172983623243762652462846522149159657441347253246492270526553952078800127828200339239777380985201571777857110632092542436093488174589622372933931694240717535495511254151457898548015204725748019743281404460218857788686867871303818157814577064648556013344173243186555227632835731321152827221307496729468822066201061936412518933084840335067656885566337312778000781605808589043931661954993264060606119855606323295926615749819563906586097420055549777484237011969485655512024803110924402391494045380741383865489151492882385526688687775917110480271893243518556342208763736432110343496947102046152127081062235570934384000125036174462073441833623671223681513970491289195130730450756202126456786691536326686179462633721630955703243087679062699709357367763962410257155732687806013495256444706750763104846735687163792265481307968910342928853673163405163005447329865336656085259398238430886516520093784666672372750937239737345324067338555002522852352791643443337747109956373875659570844473965271607964079082803090326598495447761951416523796812904567726869506974765732543957232257741562626691387510237635063554379907017525373339886228362891403157483588510497828072946239544272612843583126671868772445053340726799694794682698427044420873537436926812887654876828977774127249063602203976029436462355006774753303887413978539489415732003547288261343113758154896897763090667213273646176666197822670245213341995063362884832042840886500074216138743757690059493773409787951013176405472486900272269530619175026227355473364314806708709300215419175079667910798958788423251487218790884350940694200296836191431533110991232660122578060303146764053549634582081119732391993142235153744293746791883524677065413839256595641402999003002915437427742597477605679999628611821284575051523178275101034777274003276406135064956696506171356928510150381568882631450007487049885636669015841459190194068977858641111645775372801425701706159433466793373387511878485058740036935024124014358837177024276432085688105368640254892009785986086167405218121156272116102497238749751164550855094542885309480339569636803156238948838709816285178415686890000559432825461220844534205220127979616536568915898515583807935531558329018876724054042362766683574116310844074148819305685393119331380064800461344698189220346658302431260689276137726584975585119332010371987489886210388371802916526527518795554443925444720542469741366600948879645508799977022394901935451655236712911087650899588096283381990485527500827375327387002880669554000344645129388907395953297113971582574483362765073001332629495090562744854469908593762009902338717415991244782128231623426704104464291471164562713624447556558907646770973252382512535463736493681575317874703279020352954785111167676923747806904917594425984347493694064011719543046143886338171130629958884654851108007617609753290974877264992629885403224163547135782515168673980944652290071809687815691399075283934862031937196400370686457658071656455465068274711556495536675276090902393402093331629380842680510827524895766457417152815753594848613001324561554052245065594166838596886271033941480289355645827467356275871344945906454885214064401949911959926847317452512631628027471139809477645881549619054892801734559226247356907909682789535661181583893245180175222408985876500457524019797607924965597830326353564667909350564646723262506080044274517457519530748077507398994578340495483034545040542244184753626075355985807685443084297932310761256448598079193186045783423351196709511006843892894547583114822465634908450355658559335142252056247882108428115837954607407874999945488601983721403774486064020082772702017125048470567097285826417223128250295450764473994226932301361012678878679707942792483914918321389061529708711213777111250864362881583655427930804866318857251814698108781390049266536351642184132066633966840014054247187555903132260622644403551481989592249253899019977458646538257577016494108168594873249642775949693804658800147724607764203854794683053620640506240604395968504192345520635058444289692603603930284065665290281121639630475355687576759154590105636068468865135837986294645961559724370144376583872401440282784533683332274603719847611851094976329586668159145950657778553018584628982042334036784381276228784553341439165488104823757657356005551613727802759420313446754880085653774529280113454623877895413008171965685357034205143174741988184647866431894890894958503774658163772528364604588903993686270219948077642802372994972813587208751948389534006269978020295691103273169616175968762998144747152387982326224564873370704427049389333361022479578017210863656583087289503955922971217638423686008824081454721685751804723611557043960782951809612720066102454478372703202531498212111576731524339409433968216319642818013734507680474718153909428821910797280299007498438865106737996147906709092371435759377044179506770952709246364734092228651608341724533386443227571774379499651676714650832582062618238807880060763601349678140058747427256161907225041385255353461319610645728469768286972960743838984189786437629530519569718379484780258758118791217699216754638058639178842741281618876707994180910552518739475125949937443500233495946089454448486224342720232122947018477553417664857788037123804556667634401126358637881700166408839573582146314946317566732166331543233476722658819215597142929320028028229880447905448942562260196745872717014716023388807562296739048821395937780354501179331531689031460442487287034816033444385181628550368834367320086930197753626368779053743454587329414527683081430929116379588393464745076887418326838401372706520295864228451593965212426970118626058425138939956019263529126399252563630402436120533351698198282490625031492273573747962937235722375239405393649054725419076468960855850183415476013520970150734571268006621198102879832810692428988014517152491805835349180995984037009345242924859947771529177879168742239161377218107629242920836737688075027872510944779494435821405466151985347794268193231052034195580917671067740169242530370636970337386011189189614403366866330369931944656585312633098558938453307043997778241399707524863742900375338445104005412031505260912899622183043614850859648346967407462181308103279107451515797394894036203014627833948446150284026733684133661506145083900012188605178223487029774284803338666819076644491928694286131061344965081526168686361568543923031685347835673995828237963217280637817540672648974524551647568826391314682894775338124122090591052640166040254524515734296925109499389447275896432961699028418105204105468067131044925849209102395500632024768427516758799627255960408128077376362436294354316309910365604967891155711559526332865631066768882533935591784623724755261291086829740053336149580006725558043717082941281363446783843751200962585439843716493741376764502192560681837277988814951417107338720642082960560567022953217015835337495198688183166013863273879621859498541836323368645250007579334710504206902290124503053075581227951475369317597642672734027784009160301854788777866536380634385611602253464801834715597107149148511983603756153476468048164835086239035320228494817721118037303950440788260073163743016517592861495868536722812732241496752268095736550115163893212448791083332602264965376924976121405098634521891985380626950723120021249908965404901045237381802862480433032349538807578776043134544029400644291333980895728388193045457003979433078834544782927159697242700402991368897400945571230722331673059933977825714302663329153654231597002270010199174693008763761675706928198634867778417320927128047782309755008108206618241183255190136585218856386167815285757442995998219126636738116166501683342580817825893055116368320317934077164362249120471772112472973518941610373238808482507698360867230715851654070439184824742257017645411575886025408107903322326973410614101695087963964244465062573161035621632107150242122261607597183072216664348061891612960248530671648993739022665703676057659210589410613226308126654543370752237508968789590756895755227819655716943896003851771501810141554654168652860755718197959570024575552539446862870263576075802255180674823786007978715496510021564666161461770260275958627654668215141272996445636058000528633084960257333752647244432224269269981695375547253544739236075686921448346057571824207766248711463309956362947379077225563960906963922448230603452485378075668157086830067417894942625202450361721189046949628677964078365926356278651855100332802283765663285062327121190497450618593460578237064334234324082562822541067454816372902034797815731645008695030163095283646306772052493369281740322277118442609177833088648202819583880680797182040773510270403525211325097461021746471924231071723100103829815277179580812253551319267044595956852248762160073867604177123533620550499863124077502458872265382978867273935569520047255147202520867392824657603010502051434243314291889580086808944367842038681706042685578102551914528399361312222638637005925270131380730986152943838663537032573931631433997453160660609688177195012408750539327157487204897841549506334557186001987896829396346102509689139163517826223599270716898981223599139336858141658987050066466538470013015540066757896641624362495525468603965380171961616875094696253347893084145875096485362118034462911777288500252519227189692593949769734719718140633592516188320317387845344689660283651805436649013735365264968366930283389436949510497292279972883949868510877583383158387902219519667161443997125822405165063982498362783343124749910451260968221094604861198687161128847251613046719377202155106145283048495456484577300030705627304330145607848071786150811554001204463662444172907146009677559679483376995234158877119728963548047243839833585355377019146686747364409081194355900224356112558786083773601130861885159975783303220419639218366024206147195273106894973362835982327599659177584971904797085196285946355625241310623405200061683337275793133178717292166275761177209150633242264208071065664395113092538579452724600785081493926456452634563295296923281570079043840528512159019894798945580868814025165322053542324318473530071787568015838050740968496078130816040851701781962068342604698506959900042637989377297581579306052533401237987860485316222682034323113826845886955316178987725366138510900481689596824561689477357155064490645760602624057773897878732841026137629919912057848562954120504990874720537522885503479174108982402254401000748779503776792486240949252739707982758801226955612177098328252884828562950689946714244516044778020625443667342496045652913258808054831150213711315749688236897803084974999554736679321186646026628485056878902179164165602321605246507546988555508626734687563902673333153235629902486467063554163032080399077621524008415083525368085683297464249691710960281796058470614111472478114611314033998447861019827653985821070507581448146787281506990300808800678689237425776668115254851831519022645198299291501223104721850476289374295293289281028550790434201954489705108327435627934161803951879711435288494491488089022993879356572206537719729494925119855632158061660961049149200954485537318033867410249544593230866755165455001319080395322929106448610779150738809176414312030092594080491461525445775138509984591984965476498486821650872340688408119730847869849336307974248614514139034910143994803244498216135906668651717866287156350086836210198088020265238293835972512789746695625200317366120707885138196638921379257434540468952668187937261221578997418875303582408494434677428304003923823521128264068901268914489491936397637193144446802230504087538113500366242901384769100232954070720848288796159888551647645226065270777500706280916810137311267188013822742628362680213908765150132493773601107608635991059845528392316522374294923104246440877956630355667902391266827596722509043981261052815526491626444539796324555855329669548061926583493232790495337533626629775294704232715697083359103733374486109132499925009805584917961748263793186792488535526157889328276689414488623381838227936326125599207985986291938462080701076845775809012298878126957259988937762601080675264746120058472991491375753268644978656160821310963558145217674680323171899382260321879254033793590910212857201695745894080096626807799061600042201307153479875446529824519235538558393195169956356915139499221665093343795400954175965537057927041179230444600393130831471789643278498548946480429881174103557522827214789085888965144854839646000376495550718472569062302501952127142309901356069658367454213802471561677276375152221543287300675406888436693597080010469867838000682822975766706910942416536442929488436362961048605641195687907253978408585767574567366466403726384175477466887559007018104657077338398250431368339860713202256220638701386204696680815782200142834789121092475481500815165945368759049865911107296835697023135373497021539609542565013517925176553269571651122488634735754809031776582896202669564557213088846057158542546903688475805031763033634937851959139263047302798778759974678816415916799423416409063454683091534516831800570825128093241785427388664868229420630275515032132059701692110543658662351576436478974262573381818957031797010785811284352289785621357904048000073626025064856035207919724366917182887179687787280589807047006569892435644815597985850014947762813632808446767805898001619295787007004596726981877440035170833537767464905401853025758850057287121840035157823743623804219001442427021850945147347473984662941690947691622301268409855864430030157337785422840112883757515480933467786058043278252366098152595521976245179551912085330567282771817864397997149397533286014437641409305279285599424792108103011654010826895297469705676884859429125769787956644429204706147721018933150059187250135381594048415421912418575479796856637815011871207481743326764929863204981507114907310160770943411094441130019272408107849852193726939506049634219066874745110919550072704573774748782980320474170708064771916006564797925347389127040252962656178989954939952690297195097976157454027428377174589185612359069866671375016871152225907106587957355080539565100244542292937468120676768662959056118928072437429000013790521059722427441099994946789010986118797809492722128535209659648222464843376734520850127140404751497339268314326548778884654456910284872944055416492048462733845679201187497745858005078677912023799447476970415049193310144626969112798691285620623747751125969195134058849704390450172300183828739922082962308412870120958959189222225795948106090562982787860955723174254370893977509903237674910964769490773036320412134390276261101351323008202546643384577608078340959057582192278994105104202407372647519453978503973255927285166701944902841941721950805631607838331561490846199193093319153890762396748088151185581764272854813139790216933962415806718862299141093645036575697065542839142326000988446391092837059314557902540227387970328969872065459130037034410343043075115162955682955930500066147643482778826331938827588444407396515100691438331212506094265968424786940522240874705976429430504543469917506408365205496213537293424576561134523148725785940778964966135662562336304409202657728530732998030791852594747375881870115997897964846403869369479665134076655095785839221003186541634560172648590517221302015764617550311607315219205808072159649647058794770100893131626444652489030380463842227098461209291005364524974158211019740731718244907630715904711596439928698772199806190338031620159006253270821793890856930841876532853589632977510085796581100735410369575013154634985364529902244372930615173257228323948502015057832459572677510249418438159677723428223942663991389141759777334836240925376190507046576186218408855070072623302488916698066296630824700055102596398441686896737889169830112963121680763991563881557398357516336326581120517796225345393028010488795170054319156680356000126517956143885627724699170974962061772572082382254039323152808520552759950842300294208426279532588241962762252577509028378520466750387301935465101893401541654864220096846464324807434639242021941005957084304064548606120636369022294676390094793333300862995865792703484521680645615555300387456734487241802260247070542157072554623384927228192288209407663595070078414025216289870966958488948686717950631612369191928403887854505938656819083640409731833355523464647370871429927319011234328037275469966353811262592585566586680453201640099812761816005235976751400225676697222426162443278711392953177822989551355434679477313884572080598552059361880046003068967012516022284626763673537504194740028838694502672531805315318492644286998826591402657485049030552942783426127573189406615175776768013658882819763916724606580913256183632864293837743660793794991227382882164526222881550916869301946664221947820870137114537713484686786027784263911377027481115708883042581651693152802120300275346467186690969953080231714354074438060555722929617572077761862938460261709262288560034931252385603897520651459039212035037222268223207067531646756913018045385845408688741592667330693450962825635295792187540654588695295515347043173887082760658915113536247761128561065079134994463443992826044822504467652610108012912791815700233965049924932039351403723795017718151180722955090011300313160640247842355150360800673634329801632679812007374686505416154154873496655854264020755658889309506302474131994271846281999181819386683163029442803859753093714824078808042377009370819535980397361514050531939013995845572318519679082324500385062812125769830812622329518408773012343945501125275573728349814752843973642962611468190896718197582567855412570625285828557452371100257513477553159029999704522951201676539130794261630186912999142232381258467747669564355908655956514795363219548098097469055737589577293729370783634756771673673896652163698121553897428526413724111743584971250661269322946944355709040651192694493426510633476120175528450938191734694690799970127009579663134825223135440429411960299256165229728067161738080076724823737383565433507395133487007848234122353338490530523824421747981226441907155684007733334055690329259125695033140460780508564461917889479801490809100002526823495101917677999824846835444666707707788808875660161051536338882485106387742293793596113196048657929855226652780051211803830180198500046120252011666425049278285224120724876728788423197692929821168932710576300888112104840834140720613783724756981568483232591657197663068373733478193570608876933441581219154996462643573368376662048147858338242146563721122110570314408047671596654174794079777847648502561693152719866337241962554270300776146411599251728935947020495457893929247348762336212640418102284722889685015907607186276365779236191721580750882744556406291177754188167253536335136255237875247124311823472676429154408893878723729273745328549319597540792932531403471852941143020667800357164696947163254673999998247880096742386583657601675842507168300459647545992770187120230831369014476092520563728559248277523717567176131084006605812294744750334490314302841995063012552785359665880172358580835543055976347053254588392797537491254495637797006049849877588011200415545666129472748616279980594069000247264942846715861055403942102099567934694663966335199144303708202173121187497845782292172807962035592020866020661787300279187415385120986173870475245987593693444304785168462767469573430277425385515710161710026432396775691856449006542669201302786585771491867803521193494300640168891767985577163579968033629685788955416551954708231247444518276739017448804013853361815621614254762946772928476035130459397055810604071206669932999749469011751229615662334264686001024997092132578929209618103989604523126696553883278024184712737228157751111906865560306357877255897440132213528901735217473580810009919355102541250577400783520959467640187172513191118371637509061777704260646450178002155363296638056188199696678576390263924380644620664944315784598374830424938096310732926810513607726330932397810858173664954300132630026616614843148734624701226366525084566603906549547250476746673984854576571844080042332329797584823180387149325921232199328901567415040560768399488785686309481683146530271592183117658088995901869508185651845863721646704286754452281292174554563435095698339473176306203291120483771445297550167238935605673596653745002121832645896679699558685787418927204280924938442003590795921080526050920145938723967498120896829773707368433114601539301745050030323766594343185551734983472455270339130542571171628232780270316302850553787935402259124907740745110997025383802426679469871950399170565510152222936482745214514615278521839410010393083872090044032537007448998682639214864187670782819120097025711483213560910396957496095966968529532413730691814612935986956752619227043860119325770999831497937864406796029916275841219311986916012984810744282344533375718639280813133871031204528317670092000718112792966770384914994235759552488307137650922306683430417688377105769951705463786801008829902642135366672430276286666215319434439174742606295105538019929109156263936331471501640981613988228157248840853776453985980000799888523455980249108218518523204783549000105600792708144419670015118252818569408211010639993885731503233925109970963343067048966044104277982071672779455384490103236131589929664954413886615319708688422253186216999977366901176954109934649668840449383200265528083857532262562032705503069435954425737112103595297961624495263934562606207900519634892794902374617919624463110062450115018395506070797857960246749334352676846436378649167374637654685165071761077420315735709201079700876517220513266693186909435646297233229741522719733739930377904473832265762453104045622898684897792521420998810012492367708119603013200535993959347092238995460669986191168040271112509120433062013240173422109582137721714447714285649178316220756145373955762529903348425208551792340972536816495117727661653698105519288341539946449410617100973441669625075017610185007678074679406877613121796564308893722127176523044423583081903343092753825981408660156440031999356971264610568551516586001714110467016179039994998577011722874020222458986672945752716360238925185706032558780063377515187481413212737746047286140635278463961356093983906570089587353044674697634328087758836917539189379460533662641695028872577870263196568682757803989362417299391056182767567423884776070615194769867124023455303624124142609785884560870622874186482321299168634598754950113644394992763615225070924720891122756527889264242106558094807148250467874565427469444938856528297465031897950758649642918034600268817869900658067722668602689314824613582806994882015893102066885009243650214977271487719595882877442295089473155404504077750944454351475130102576971840310436890258535649565297551760989298914467534794443951106598335548822300502066220993845312042468781574987523550795650335400080978933854854096633223132213969862595581072939375929418637969883926193865847086989029739761945803155554713257622474066855156499074263867233643373732083611936018292491628881314036026170959320670075484220084748447410869159377290740360032246250198681363833474154652824014825653900580822198388016294940115120800527726150807365588220788272552270603556713337586807299492613876155177914008813398367174526258123515682962364569341176739912495095034047778036626756639171714818188329939264934690097328374210719027218559791217300420821459569185604459729776987185364463302898261729840160990606113897813910034213614397265311025527959338202839818976372621669653018512924322209822374601874248200100347311404138427506992412205402329902124861149932658522246851479427929659148304015428703855900320930557443192666773611578949492355880187264490801892063021507602518147530202642440092981795804324343849232698815702175932885337531597935236965559945172585537499678540510330829941343861396463871440485074378177177417319870471243121893002662733090411141188452212781237275135048452716604135418185573458333501311146600044562826963461959703463129952371601297420337778544510151641156152572559021144774764336781051989239081341339413601621980118623391366508752272243140130170594889095601348680555691670710553249100264322357686234970477207824791042647093980541016086777780535997042136208821307946474334286962149688166228236329991293823399351306874412701045133797520287353771933368447468116536201536668096006607222856358533397475005333513338079729668889239453287709893488923812508830336278942573484419676650477382375205811776778344455325296114725384855817932782002483583864715124194217169797555027052649128349597592014011115997711203244962004159769276298518200838832230880489400089053922613724403102502684351681636293791128572974066870690379738368917157637355387950736760190609657143134303506721818674151053496060277487235451585102337493277282382420328025554246817852449473610999850609252522728595502286325740059638716081152232350891552217639747746321992054584449023907218793260065062611310530074840802184875664140220314628049878751250020978264947824272165257282057381678489626000910105255872623728044281658457832534870576236571911426817900840276597003584913352026387610151597687612505558216687824078584316767720841914056270773012195835831817947289072162292960730915470053432276434370675225792035774017468856396689298095746040286750690381638030149046184675069540889172679928256248589015640339664068559663432918608838940439869201027783448240772923168230335412616822079164562456950240012499013504386471487909087706830692035702372707872686364251574343065776629565283868450391518680480115394898967328293084832234997423790229236588956963747182034000939762330631159123832042986521686295330408239436602598022416533362774341193788573640601902186899978338299551731589936218499042676810038422439526682880955563982181904868121514404524757364952569352786072462492608799593466947175551229470346399938899682751570678304712327364474325809908353896889613211721175533528940535370883608579100590350803895308392369355205663851127921587543338820366594353703459848042878414832834762829480861981848183688248944389089910157850155899513549524436151215289887543831235762550738119059448716025692481964121288703108267281078913062632482913090583370881878898916872030492268056420252854029515058699950272299907444428048491388275220476863724377089187990195885348388764773438150605128280591711090397597585811716082094365182662296146966978683747705161344163596540702084964374683752942739929942521749482244428105049490050877560842408307689489961392613538914917586834480796806731145361489767519997981970355331356807384308990753044988405681189234991221387995891836031359841089012550520905629453658510763625679274352540514851456471426311837594123320175912847499224177186364359667862877389675297792372674267272606971586465422067457641288383461377713680921985101688036103094476424223769572389988380595892144304935041321087982554176135166704513274242104515585768645244558155209507644983810485480119222958041505843643883156342674001491775277052854040778798005473233934579217020666059680300983635501147867934536988314867210168246288667022267548728664868146037052030995832082737306928672393799356127645660479735615525538769231365409843051486316242632354403481438943939420422170275508513594867720756341921394824858937970057218405213955802328522111163070620672282303085823871081501262673964468075963712565338057314523915008440498863923912010653908373445234752372589415170933216903803983727523739773831391624857579779421447190745596669344048604046539613618708639480406213779470712552609005887209757100568157194929854946261468584814135335794250160027089769797503864409934479255808001942145013337158122342641232426109808776732751664237137976357979758760461473687121687810595660711934481741388443703690280984835303201568366890843752174656278508901888399729813732511709151805431210241118163692234977661375297907268967951747979766863215229392760368089890779301964188284109712430207755447114368018582795754811095762939673183067818360260809885883042699422339628075639216100045954500377340379115653365462074592999126907700467624229816487978976645493373888081221331614774045597691776274951595362928620047544207848651508493187365187104709332780507178479832817211128541601236279302829091490569218290565161433212109605043877394979884681130809730528431183352803943578481977763998923430788207695398436415837372356283642818330926080266972645205096821599784051552849633685436656288638176142587097219041286213985918471870619780943697383576459250340435251895903652841511231355629840972111881555258821214772640675404173358192676213022763362004388826377822492430022666377887934159463003124693179476741048980649374688421634632630540820586599106227378865091684122620306926126881824404123007617089368148372083566345008968225769976891239107025772451462810194980774607033896091888670927058905947460900976631517718109108401522810054119302217471347157152302579270117470241394450680481532920376372899891012976172345407346957960853208995224067421600203951006666083744403155798611880640750327522481428285226999147387478039067192490217961238271934101283753901902472269356766493617215197711046167516149965836839656738656104284750690600439762859194118706531932316268601500167926460693038829249015080516204730136095293414726726559953923218896143727382174562929059843918552855537330274147699110419159912325027394210868543989536545235247571710588144735258932869202696094855272684559159520981651870979943854001417408234434630308007999663146227177797074675611716339775089937393503483253358322466312944183665762048798346080105091943900552887560789209758137372947439270365005282679053351034048594186516952976363899065763139048516274247624967912100952810721119334782613688831668235238802727756695676264236292151780150568367378555513504308205687124345929851762541964878350151280790081243379268827584815065796828414382303027836890000566383929367825602785140989056301807249253335102446931585425640696053876854567737854556879549306568778573234255393244067831720405716910899363179419193562975400875906303274271942733368671629894758283586235411128603090955514736289548103812700613649651542308966738720580213841846705433494738083622224364575920810159090564097596042376206619573795353672625233206000883540546679332295333408765789357706201916025337901769388265470654272704675550940014177805414706619001917235070433885706986277117680964689497704991835687085457904213861914510280284591588721581679158258683758696601631391343928357297918421105724483323698141121049901114718447504560930202911817737134925738920486401013631883086657285062822421881526946990408553833102815500831651596230550202778138861788393856522113036709599248598926672146402487489256013428244989113694955417753427762608315177361955470070847259800928510297719564808697298691905114683040238028913530058317416557328886238032670309365653445658517939003378342506632846498968962944148986573454449523217476484675517628561623682807807454331334045901039011331538216914488554702842537959305737970215566258364965117915573029474293722920279478356026512907845643920743266007585910593691937597648080200246865336825276621564842947224346751582477694067570992422962283246116889797286232014121899310688004134638829138464257638401644732944299361976830110554701546466454598757564008332848055285203753712934278203122655765603437588945329459067391191080952707939227592850296068473605440761821993159569571219123463742119888989950495482172753057915339846656510362644276294400661343834143081387140099731718708145645274039706274483733059905920066868318379514346893637524060537936293932973024929199536272474463322770729898583066675429823315184472187180130074571102214801245554167734639144923292226671412781710448313466252485734363033467107695431234657523384292055491044254752619421043544756971217329886703053437191574279385677344010453513750853664252780498307609699067662922910028320078804128212762447499248357686765058976821400988786213875252364607768620735870710174166807257453353003237974751487217974434496285274122313230656212723508139676918427056899489969026239866813037323855833721748569003326048079420281068117441929755297995094748102544240132167683133947394129277923326705116993008893314884952254778286269576969042518765114294269453294403564049212582117819714166718856501301269922615747515566726967675683619898369961167992288558584621240807065800648620933878301242898675974550477360262846394876841681732490616710460822001803140606965260274175194752803075854049436949341756711680812320339680282670808121672468398133738627634361650110832058686666917166697035180004265097328323171859866205134702978159588389820247957884159772108716900586224724399956337308307958651616254586171986799873582723679627829810991264143653920940823691929659103586188818927951217102106752635436712337098899623416945328931906696617235379143246496161818781975165406403028378667983057739851820363564443521117765325051506833955766955750915670026358008447056234517534959186073373302532349501545467062907931572722516160498843607744223608759160925907184959039245873376649027955999094586298432531863703849794387086990630158546715977418484297005265559815317049013670685554179233987836643344723127359143799959684041687638945122019474329358786305675377656670231725354404108229464995714816724903332167886890402744402385380593556755609226680753823232427378130961762390739250910373079137189666745436449769633023388267331283314220539072885622777934648986304189201754687279139621246608196818150603146732084987607889445655908937795441207949992991865608028562313216865905897824795235774116571034096679482061561901290921330429832574124381653477375788548336744672192206280142152692434874706298187870858981094353667539551859135673391703406011786372735350977023415587836342632038045540608604633946095187622320374350399831462157926995741320434164424466001510618999287059808378949190260252301911699707480379504937758568653281175508304852928185667790032052033845651938445174717500191784922409825019043104349039216549895045457855238168922232105717804161408010435337618959303641730186927028084648916540337622704060416107391495596466311378718029333201965113945944314182810274412127557050483139240078122434098624490974444895759681379994200019075767495624169585717803989887460072445511247282944314926218487147023716790534172513741405951943182224482359194794093076026050504300278684413407522318762067362420051639208179372925784712426290613659335900556472836589633638342469582219546031422366510519418147560460438586988468190697969017768198499932044140944572969877647608823872583783888992392703988534053174105818219308085021763170793512418739704896575631897419419087670310626331517809498152226947306828308185029831775645054536595147238356274103966137653166043608058290214722126245394029662295812869560523932394747241887318548604086151364099074400092907951395561379669691359785619700429217114728475553920737019020594930753946049167486756454824167020231528822922890901407002233873113390136941772959168098948019757264602863301047108835192506973794848192870465214559066435332655249981927256092991871560137847878951069474933253798780634441391475433708177153192577090657010941358506929128172114100306538486951685158837529502800617820322104597572397347832029626068329566166658179362841569523005701710263893184273594567353650713210511307355581351230654473398068340631580120282022346338541170187404421823932871263501999644667603322067567449371539333583091257033099703237399439784583996860090258713318391841398960918849321879116137273792133430243106770866932679736104416869312597650009615319299219392956917497078709255760509761176993413183459094730741011018018855585980136011143703881971383693327351471429311639224505202088669197759901008203888619232208341080550430201658357471129659163811222484199422026871519363348101560381417015086605172756148198283148985883427646403218524632640808945064854265343561337977046985854665328818495361640951887795417703569033175637145833292782073028880824564995648541360362655663572603702317289867937123535416446991669036894570176435201487227071570365102545574201899975698757569499448734162174068278904163064619039339280575220135339156514378739981813992782490766739658562668365356810222888505274855315794004939533970507980868583902548556874405375874242867360592783322533573620866954828613458463458915784574335649058624992473822820229639023000630555096971743346297032817605763616113323238073927085555658923780746517011299483516119007677275922072579556656230017207895047925438017190237896501019697836781031197292533956870393050825563580179576910838658709920124709316440590837760262414165151565469874402851404320568016626140530610031842940988006326048984736401999936118532366438464982748212131440000918138725998827750275672170376746032293420002275096643688672393311069993266191162084038483001085590357129756605705042614020090501523352714150476246045647240808450325923092738719635252818305293354892758943306044926391778205052169653764637603418670259156123156592167111576674033772803039138832386196939992240026273761974809864910190012300412112549209150537984293606159722381990889940746137437217847801251233609882321427148375477892239142839636058128011103776629327482266706754842541099104356090199159314487149448015100677217961051911631754466433840076351980910979473692453685579174376265168469642545555432836112535585334619207938988386705532512867483016192649386866598922055821803969088636093119597758133097476899975022578910575611947703741187842869251961596364630603490300087180844253160843182239936214952792946065853471942672221497253694211923536841799056145603312166021581602129984058239173451648416548510641577698104891212241220419427226803630567994870037736004317986292960868475231819243292131740566758862036145353548181423595505267016150686633615862854668402292043807259275740457736595032809656012614674262117874652149486677834619218741873261021029068631644695372714720840242525113064377128839184390356500821354541064262119651413106227849876194599772351657160871477906730906538072414117292536999030721918699977985208085125765036313372540833389539211338143723898738960528838494181759042948249486921470759449361891462033094719327768746358174194073477160080880738390381500788499651239188189555268226509697872024398534884865863280716370442836621722093860611152477259476174987845866102555951664806997712059525141366843210461419779850471391037019405777196129657956687861561917981719103907560638784386510501728909035033236086738161816367065667109588604324280251822937372385940181408394333683225230155756793953362137506612999574238752960725956097408612198594066791138203122026603920968745266622823257730993868893288982417209028600495508323990471556314114957676329688801023803069859217135919253457838306389648907851397305152211072102747014012833766483359760603189628964641834855433357149590135128328766769218860435153461864927011642279661969686803866364515984175372330259604426059611524742586517335916110195629320679088814831582447143500309145653427341202214556197618398061908155821850100383997469569225551804753168431860438268992632372208705132575462287486267876751736931267700269984954467766043739689883812796137324153113683086024097034534088466891507867163779520417545334279499199546660292980528749744695902424040912201013772241991638527581181314935943125576016286182208871405494651956484269373546253185236170629035190606658411367493353299560606575322345044643171955642632020187312424068418434221281023155120048732686322112208308113590683248386550091631044737541630856656610461814676497781345811990888487514250875195532014887013964884682596979506633884788950976898184963753031394703366153882695968188982153966549909900861794088469621247310499041916968805141512264227471540213033652671670164426674289246127991085637604348469306544929545053443491883807368233105203620871151375596212035761398766315064939198055357510411388450833291744667628281802689692760291220657575325682078246327022373451229799784466332775570323579884103822536419283506393103186653678815394972998567588932271474384543856184044990397605537514355007134439981449722846239568863217831373599614477038020146040900611597318751428578769185937665753842166650482079463731387932140715822170322109830266750981450772927772314704660080735562203348820897396082736256133107292687910365649700313906705923676621360283405072702941143308276060156430829552267001335081148622874402201937739898998113623405812202117785198445587656355348473869135234514684429333690066968017157582412749920525231197448677325244419015929192592813384267645890685774128514372385799077105362342355092218554240710301901282473482645246046587658279601446375434189209962891591508329608274319348889595548001091485014735610284503277033814914595517672087996542649015577064998453463011317925664605600848632740333345596051816469203853779936814102735191556447481066677431634111975302062688906467264433156654915664087729540977733043837340789876233773024781410050296082030469705677574860308052797756140905097552611293079682542265191896525457583366528184310075445477583830197674231235288171339840878552229449854165330687244520859918527179357831580027747676427746116801845326774022758277448031345059222960127686933584788430677778184969884437918555584571154948182597811494844090192556632248370166515279938920932760297213794722682670566655105247194542857610087127715855224478319186176296403336534516867310979527540348558098902408869350224843373103822056916682813634575901496657942507476934954308911108560336134190740224526265592024309636182338181601466068510131540727803285742236277895702451967241712374250891228236894749267621360556256039541424442426364496023121608265189397562798877864975743684157136597456943959778545860475203514130522332386862034017237102123528828737770296746564041330032095656764660988415925879316562542589753611179130780364357209793740720343840226357025329316470410815528766120559337465462349938187227298176588838492619792388233808436689546236476558414886814631634237838778869817874408372094740002098020204807343629068312362390583017026035104306820259736638485383107167481877824119581511181811068592583184285132488629738284786620954312753607984811485679135774228656643599403967074368820551376405136686637646514529039337198935036046706412519053868767063428779252070392903316591042668238111429590243227537261200419027688463269864092320752038169328732760721185413668436718851076981005108941365778184595529933580604004771204379084519739147674063002935047779577004511785119715857835187995995480637061908314937651327739255201958853279626012568249729042209182044100805881129633268551451920993840441293060204950462093091022026591241514343811773781199943875134303776506414431720465404352397229130711415510767635377699957067567030682638192936039257952295122921360295261169773024771654971368634284877478252170959646730293789671828425260077295864303064790588498002565375364430569632911054557474835220173989970985182791204260618754925335834475836839014746485370382958723736006010376025356598697253850369355824462721725945341295278812015105569041040144206052463294690022007628817948165286306492978892006179903351142561602773447779163585483289274384159291842374595079729487729494177686544745134633901321809847508053266693837147154526874958519771975153534716052950147194833977012283553811252143832891002430291637120475180538557523369007208382821517884191870615327638434210720353198210064486085686762972047331097012709797939914494065828919438923778833413933182331799371893754738070155941798058964385599662901496418490719324776233200027789475410543630071525586554978547823790517295049824772400318065350502538123050675593562260434158093524417872581174211501755054911715008484324415102074681619853997115198653066536302662802782850629285576595056332717308261417591413683683684330379073183245561703426290938583381873627142386598021601876813849634776425774038287668892869376208446570854292955548530783389591541480089628616939306597411326510388202766630103723304844977511700067822155182056037553410545243351107633196107340949005632686557352685438859692838359003955311830586767363707885761036674806829083827062049289579490135907763659823249855682299345300477414062997025763779725373989494968489437740083662803888108363055311835637984735336067910387330513973675682638047749935083331307507972037522331880978771901557270043522521526941185713422851417399549835559498791491569746172177524119254152626972174438321501011667735315687614346579054254496713555154028053629096921828213427105217155261179206021673747403784393468549086328625390824074952850533648022476029166240349538924671321942811391425813007969739431923107894945766719891942385905291466537883203091431972179511016619699520676485081083044956505824041979376021140458398224349468738374788424940250941452194502649381656594578178815829081959147482682801783700546011857117321695417050835627583812888946708964193676752652575191264282764698420070125478810033147139384181260268722223510775148506244379416917858048500092882063747427965687688263459305945939472773771485760949293016162984686089803989178674089537378999394166941336207872550048144994233276425864862560981557311175926930837095720847665719098900711208733468323640484913451222081704209679464338097052316586052064084546397299113585210829540237695394645005139436894114062341031970840711865937089418185856389191900125028397225101430100675413215408689437417516559765309629735591772865635467748334648164693362502729530551145288463886621412552773389684724611319194047333647648437414691204681040617079449622952813349574012839850542666465527254175930901433356991776443901198289272673565587804292661416606405850211582432365369422850527795006553560960712296280448326147914525865682206556916408191745893425455253160828292359915242732752300361725538001807702493938853704292135993862708921377563347697309304952799941139784811816666322153920755638870211517765870295353130685449119212246587136885480825490910954414378964863576935704350246522653725645113558857594184589361765592915894785018353052714261532650438948187122513556491314479952637586337387281594203973532160277542815013876982817425810362892913872738609817189157389846703550400973847492348083940204808092377524933626748197766522801480436388773821945350237434427703569020215018327939654125128793271924629667342188349578341261963118095884372626283596581594844649713977785462399624271119782080987400763427148116360208189724157988064779538602751316167914854623975320490385779882788731065888730238900622900063209809776630664791481768505888759875555205873326123849458806474899934170391537591644231997409927506791809830710645234873471296234271608587786889922174064695858412719899834533394225037937909890014155199685111342131519124595105363076451575625851848375617701397308723873794546491798369450443241381272782362100219647497139875890033718223439906774438469993502696298007208283489232087596550698172931749508605017407001564341135374420227657649519602271669393725700140921192782500820212210130524772768521680001636801384307748221685885384392859710827359797221291476855492345803217598300881714102204070163478220947436711577745686452966738527452329827385219793193336253820991281947566855971841564872789496302219897234876474009803102024522365491614271455659043498396040598926146328255825138687075515953210927621638768593128370623006570743887436482681189834880840759530860238742221879308858030849775817306329344137708029351508517609198049877725941326777689252107356978088357908608459463265570819476723738418391911278603647551637616917575710293851650925975547144237154076981776882580539928546155049434924156358343149721376973033637895160031024091137616862186683229693378296033789295076140070569302965263055543011841240984096517834436316262495237310871505980166933207417275065328564940584399199825816557645082788329511264427604538784009766975576555840360699513003053085648370335742188026011782513233411521400514481248965006962409325494930255595182724709544853772396582403462267532330813210386660297015867535967894943707985502874930994864590767915466931924525748084422290267618082481864711552162737363505009263681530014727359906320831101112200525646076456303830010947542133633892086026597022871111723680578217484668480508529024537787653131738581933527088294745524821028129400252945004395303948825494639302369532239058164458910934823564103713989872873389336995684954953613134356194009476193720636919346006562190118242404470956055116401890637451684241860709339179951347469827424799810185106464089253931756731117488834684897312945536746796755532227755067586768797253548672499548111661059200288803080062989262016988617936816899025035518319234553620025683132598007783354138555497502206056292918253130258833481863879628388871678270321835201905428004202620420461366177688040961514699666509569235581130492110064528656669021757050005437766916097088467285168703694776514843350803816330380852374077113056644464858554925341846174481328167919100566605734081186616915479625083768336885403087593761776099418240850139590984248125447311918071627596914709610015616545086126819606137241777443855529924211502323132915696177108528032559650265357835137709995457590225895857296738810284849375573774493179262482100899119491705210806764823912032201310213085537967870811766926144707789043606856614719921886014907312476126836965595652294492343518006878227414381787077983747943451808764126806842308637545986935232821185969605651555213371459071025076163502332782815109039077487259234791714835288506203442593013262917972974371484398647427351356336119860528422006065745394002047857600658112870022876573575437906335933904637714984940715293170853873550822221920802680127495102997768031010770669001308627964585915649922799018979740028526993772548366946908181581365715544004931810148792726461185557732582022238727994158487124632374001100228022368117312989507854453116158846506483638808373816664836657880794594622771251423076634729130418582913192185673703504461223395895338625708875428079655613731477453520998346948899770890134233976121033428638218546168055374278002644888567759961938181721816685320143714445993489603360506235406012750740728516587528336157653900289537020356292101576326127793020716885065027483899636656846177959893261673730348921565763089332373429806843702199814767552195652653779234824658373217646998324060844951239786674767543222819602810252148042907145004090360599668862688507579637371888167170380819916026550860109943132143820623356917149266681848329828046182957441237757385984463948342514864490639479040619832882323976615787854199243701783670265403761409575445401566458899284625134714439586929141456914215488807175655807508588353354391520838381772151489437321581215348509259609950656301154301666398501442957842437648147950766349375659617330729686943495264827871572841022217189248657321795715817028832855149329041387402412130168773156414350283056930081423377159079846189842555124246072376806522466445202510966198874526302488807676220844327383941306758278479883219233073874412249555262392076930121120531162954182517842271362431614337874426349240916937228108899825095908065239993113159639860656801921205787461714034526063993896829248357398148130227505975428651043499673862485417705903892227252307626709457983869160181821004188671808735211824802743844584968320741963157114337179118339052967694959202937177159900004430416518670759862614297540090336838458373532344303420774527766691874202966950943211640540164354991165130885480081980958233682137946233787990489830653461603568233499221851584891190430840988436541053588528963308314577399295626638397686015782432676730201798726688025404095413425269670213192284286871698529511472112166034670569360745373958269003341851069788995926005736367209121357593766996057117574117072122740290926325361803912218203379734439640295898640138023592020508491994888413820135676213519819339578222626975588025215832691322174015658993029566212273438433503312492923726877384319116434463770290150949474065115010179662455720854340787985610908496095904934384879895381293771002764138163992365160651452633360302988038895339997015592390233187485815826086895480337792617923313935974088958724913572931755122090614323380491862018374197381725763839447120453861054828255288259353522608247947661511444629774612509219622701423817776329219483526269556445136721238776156739978609034914057337798155522706471303619298298671421271800441344733722836386110810599497974755982509377414734212619130173131574784834198140280432355784635223962285398828612757466080705161605761522791684039652027601318497039962135185481633707155466095037661747376222006541422835204100538278350202299956337247174396383921497499503307901807090365562869477336359594181604848662498932123755489389645521641693429838453028896346210129179745562901869551164948530226875106977412090773459183515487658149090703280597216251402256106152513687566258894956313657090462689028370209710424254144806306491830688147356270761039925302124024406394955100813680067825484820927175821924249330008101728997667519818107063831595511616088752463547185430164001590592566460203851158704888288276589856826930076304798451461398430125014281062982949482612266260391707450111072390181004951282048438788844067240840967449058913341666829496459374798844651295662245527316078816678052184381935412373128329885467479829939583392886896908875756224643143461703922986123824724717644422996897502266394884060735855297902148600155414705679470534079832165858466319066436999275756267386123428081184333635150806412014003798156071072085219234109479583139908690003626748870954733542583340066580991278353005235480227719373235023704663665553473465861213835535889882068025315332955731834258120330807709296466944837571973519746631068973525397783687690887491903135263375667993891104973816196678658180531404263411834969003413175304749252303656126297469174120278300332679279503528071345970450319244102488912376096119911150807574557304831607202322595353302072344114916868461156750866347960557551924736871080201487601747621406679697271196033389415347492287890248375194139161524681980150886567946460550221303410653885711842858802718259691834577791610689152874401961979359111395412965969470577727996343635835857371747790037934528558034462658282783239631027183137601821080935978332348667256561571393437217206047683994378546384073457232033641756651609491035979578636640386575809531466297949426677884829529949459556522339657340277630359693383911076131863387996667220853099366480698447465329596837766404379496538713807423391179543242105383540814400331200743637570162779984198805940297212849681890730289748504643735425517438357552926803013115563560694174624057052156927830172142742637655959375442817994932577275058992039130209156386955014980886588590826223752409987387702658453606682352479429750551393882188121426411291161775888341143171302788431091164057842982389775629797096031070425132538869491462741403451595764828208525438779752556679520569227798140566824866289383457607485813850205596018018775843875724550099361270929724917344477733191869111499321211600548309470601258165281192436224195821163543391371127291630751937242535218275385374857043668746238001931217232679075850806442067661981632976281495085165539423774008688493840247256387452280354068992706547657365857646349252507925459539379551081120923159037777426916838617024867832185572601883709405539638499291676855655067745550222305729328454209166584609084741559147653148732747640530288677984794138986122340935280786521252244444955500485909257855767473465510285385316776538013176778895362352402276714279901114359958958375350416631880567092326116739330284128587803733569169057254825403530291611333232507498058295127327825313733986645185899941226212634702352352733177972785371497478503001347409453442544036638059993048194955638449648855071267965706222344317518794143656227686820034718964624117339952953584261434847223251652047589698132987074992310876490205121264396917219207160002768991517593252296355264433465341095233922176470115704649983102638751900969023206315293768301094473587988062640342207366053953852191402390852393946733356930309913963366692492586259489374079980120885974827237895782143810044710567509009125183248211380021051413077537149145323671195962488721668087922841493736046999818025557135017378500257232343815118407177162111163679991847444685730120841842147976505436315690792027964915586364197223611853670981438604619735724104881295894962711557940850003090943972708457537340939491244854288171741969946866683195808438890641775152177117385310536085624973079065134300635662982311593510447328569426212366421783021953087206721981561400127304349273224156445061280222308200634693336336170099503065712974507175225932925645504448122970269719816829631024477991034043287637257011642238817987506949548979310897707958581098862733368766861019630273828922611512418113515940415210223337284493323262748573491798574554262583244639340097202539889198346763866236312579800795623254323084542584590208422529703998149294889773404582324477762702360722173211299355352327893647689395219726039998547187343873385003490578306131826583755654555544944678858686689671746965537500153083393924990037279168762829927443788817854832936606708732452352717144231704360613704927778390968362205472905213114546345165529297874603353503935527116591031061435667708607289566853163471997336439457282441095057591431489422251719949686764819501528836108790800391675260429623111234193755045807364528419460209908680448060290049885105353516121921029704173325236556056469835790380905993736367882629735584048637014880038131395933732831931601562988172622840098762871468411520549362260544403507315941202858295184338894726444525531400519964358155041531025289452583665499955600767503520689957079000921546003044172261614842113305817295565843578245054332920281438306051236187846179855263428774886171824647396562170495987724869596583754658257800724004927730150742267520669055594004849203190168176490735784299646866565672138384622207695002884202689312112456799043534749509144612745279274833040406105485846180852030989593689921910597860046761480675228643530612020601897260952800611912403533687294805903450449539827862068816826238516765747393964722323821161821927850528509125931806754602593938235838664862592522782800111923322009392423771734023295492354312797936272524824438408742792039631456546138191340026950677059952965813452809881837139235962791663445736109083771663300815211430891511548137809584203285861822703628231336752657879712769738985127111497799182348424757921809338264441247244517040310596755921555993741997443955205340382684179922038423995456561109677571460990936499639000487076623609104589043969754377991861981031642677315247688753256433790233258360640320614677717102729470669718206431577773296577135948147906347290098415552397287668479954647054401520685418293917328219206029655403286823558206209647719221147818387822651727739922929220585658708122561473130837528310825855275928408694232117042393252771691492720076736516562493001992289825817745330045868373719221724089539856196769942489939728244697870426813512930847730316919954246805392116752061603932739618880337717462368203272353098784702103158234006912414964035800821069841096586574018841379381428444437771301207637478858268061282863710677326585120619084056485002729575918853766070137498239530484301463333530701470105951845813631849026363327120052748267687017489684771568717595770947183088644987928501285687283805481238456709866646725803001715489896797584388178202707163707446313848351079355384748200743435098476927965437060397376547050714882470281575255026186457236114472801988892657809383154734356026581502737807991060998995092192512589769276095992518760962916514721702835580754733468585949725697292330241331318360413176276672416915077998753465771455811390608845117696044292526280314882216592152177899031462114334660536888530552970709025073381857459326027081496286454293570797273019259849324179186118862697516168006884911222211337756835472020554908180869459066633552141885272732535162908408726137972818286388968091161960957102184105800142798372090935365249882321164516396581803354867950374525626023973778164457597753434744005185822670739498420605718347630339670989291677491308351545224854342585117941360095275756252254155609529586707577800504606307036774448283423447975482565548482232511541138870538832207917531161526138213006719277543738816425770830309308001926265402391649776135937949211918370656050525198456528416388891868691241357317558544104934511915333242294306257815924470064259637911651553581321046334898932975336169150712429994243473824229418313837246735456101567538039589284859780696625486772315063356535929870793637906992597361121451799161440003524236562839046843792889854716460350955759684199935704313039083833512874841604731433821266474772229960095870842700082402341407151972109827591631421001719542572229721465823257772206479004162052844240725535832327513477258541704980415772707110145455155013950360743935737329065970409157940109386713982113453146393849017738989131701199513199144480427169573889732518072300720714418649175697544343338156789163502284659112993628855389242146797108226659980993032432830858322177843021038951526118111105456817970657556647823304565766903747200106954597040766992511764407048760148046584341969660808052848947257222936146730825121394774832837865691237897047811687815171608910918383535283623987352253094068033994869191372261627042006416628830339861061152839976396253404992462429074077977105130055366644562561973757531483273447858505950182034251813664912304184830039880889614322366703577403308483164126989277055335060468643911505323003004639881986003921133743306929026914196818195128283039150049460831827472114777472882511866559911742452602670459629645885258280152147003115428714062492242000905902615924362739710773052365294129237630413600639743770882372332177176257884214926547863946048286493548402787050640834228930835762487927218374125788859023144887982984517887560882657616594645576861418235359484088708299259453186796817550406433561189723608415991122615241999987182900934875081872626858964641047426664094902120073952759768523313179278483879146619371455606767840813991864233965567444390046339400842953069994905025944866416600012033175666311906230736060609760676821646910152187237582613018718556486908693156058423816179353596601750296625699315068673012728878870191134095440581660629936564046943458603900502461191027849326815502034501440970523385191329107511246603616926218347345483287782954607576552000170907871485089776455802014032426972891048858020670967655723143064218206818578033413890295521174868567128861798332657826676321732046804002184235624469413459132169374513887424010212588666184104728903960478784387473355744749521689199587778407668430290184915678986218019928724990893716016777805370428512885104918129835438403623285541859486974833540387470515927070245754538740518938707237275811706750419020155388038765333755132458888758845838000693896767788886643942418132011070664643019667289361788056246585244639014269935984431493482276454393510974487579937555528320436731277191138873937089580204772067409161686038122127992109536075353031029192237437429234504148545236506676552795745950492158038695108777269770866476514840268533945097924064340803268469138356444766517276283782734531849912284883260436143937940932987535672387525827214008120887660778024278368821003468825748807860779803730900334562932041388273631226869081841068857711126674758844250222238440104957287825677029663252595894921773384752715892202643855050780061408433833165762440905225917127702442698204328774924701393828668794244888316047023225273159226566644066834462936142654953443991877533209386252605856852094151592310360261902230320441753066593326636116612011976914002993209671287103656865044197412598956811145349145420328993484899958464410000536097776800993599320821627473019800556587699134087787683595609946244308574297921681558888707499723927550756415987268689810616664405385252221485719102717615959881987833147452796228658742621371492141777689396491474971858729444748529796168688213926075112749634164216064257116932483606547999637019709125407589271502442509155596701813067309650642260712651010773980051005441742762713765934939230889466343201408412965011613637875503241669305896145323836262661652799841366365373625920042531998344147681925601560593219729379866846697371492850991532520825314419212573069681033631533684866955493844499409379198726660063052255963080511131715821772390837561435438078415024732816854134653496409629899482360725085492577314721261481023300002148954365528446354354636639782181765444033618172813205525058174420897772006567497582878282436454067764243800477863365674826622350904583295289447440339377438991426916623152676314259141842907220521128075018645257129560340594402271714338415818426830316441670907309183717552440039355452484764672225407642278349474909163477264620631601706091182751906657435731945173937237202932370359992276117688150316331974746555780038821415337057253558178555045152251755787877995221615535899519716323360767432416807130701687538215145152732525555400877038418726297465754714165933943431539346286542783387530474857195633758947487358591276036848553682139187114875216619339675710937350551718911264511435852585773501476490437357559867180244398281209537040399869917921841387845504333675890841726625942818091449048095195017045115067931554681493641257987404042499829948828312839704306276026228966472350950658443308256112243494026149653531527088748912290826167095513024834835680762281451861128678390792173824545009106323571675382396039762708921507541414180381572642825785019945998439671570742970915748330184642290830806925327496750380668308146502264227148427541826281647209890994286509391019727030102179124523749370514380574963668760184075773837253806905086938529627330748415556369357364471808824493615254845184868953032011720703152005678338098505072637292764575368797547875680674730492368231959513629033879868532439544635859500492393655882153630434273800243970766159231427715428322822898227695196632845076721402527882716482463575924743700128815035282035994341848519007387741076654940164535197450437296762004102844659084258568801793370221620826000746286466520799631993687519990177482677778943065715473331054872754520038730266446978358845190126360770491871226582483362717169465309963981039676564783343148240405576254374569289731949178819878342362558404118767191197268486975439286326174749072669538323132352200909501365489977295095668146849162581101428386461842143440268244539358924008243654638219306310216967664252111981437954458764677016028239856210884625147690672549059638392076939945707578624278657101563745846468543876022152731495341498994665227526724551021014074993932651083161398666147373877532700617683772228992124555887301735093424341187284504019211886244133122012654104926536154881419983922473250686231575848439243005669184023794578437231591103090939024587463094338280431346439203857186545653606746097992499195073780618272968315900944454093352681959061833062486950444102504741756518986073304500290975451087012168871737398734082273734361728106011037400170173330646952765260646831851697489736971005523609406679095073167678506590142679374303456349799479337059856371868100093821550742238573356524453712535756445855380977562311422489595065819130808124625147444390450339986397378745458251289994944151563534425008096070499579416373575146716709679384557146057332747739811247784068227194165107441352252292767967898204526581132040012479107755059324734050431409722972386995218553466466688248844758507851129044084938049189407080592711909585699665920112343832660108454496461211556628842351513801192141416714315294499761161511530091435052527589367960873312804602858343240453972051224684138738928714275052811616192490989243146377239221949111390774792444801726528528416652992096308525419311472399287532541259840693266183188924527509351081141110992829433203843872302667879328826114510100253285592598271267600866659250122353572594992667185869865244022844910436338276076975036880373132726096043124409665598240264605748364687059533907880133108002242311424965168416899682161109730187114812014933146991780623612122413188067903585850460707658858743666584361057029861818766391678300412346588023450760165293667231104307417275484635658467356469475040137686175085856907940848573898002137639801089405221773864564720651887330758271026142663410646838495820164603951578645359906590687853289735590388511973117670487295764543767020842137380735657842595572284191568297785205994394007182267684111946069219291464854169914355487806223423675520539389054616882435228835557457224199682032050615825293800997398509082122350149395366648538928895713782159560984890198311848978118779719037265131769620553800520713496005577785700164646951684717925816218409917447659899076605863626246040870762220780001059882142004036367581030406361459668785565989690754072115350580516660961942723918831102678190802583100305814563654832877694023514589920044871670487385224122619551975591340844168656839478651578058557611062379167034550890940160811111680907140074512793919188865823097486457488435680604391478746143713707634293778574375588790131451500377659251913270769618309436100874290233843716727137541890793921016185094527260546700255550514829681469463243787950239962045818879882868794534538003676541811790885352893365163895658616485440677807997886691533770370574308086562699960668639443953330593125450009600482723707318349152831298957213283528669713755812490641138445707711714064802493161124787452033786273996345153704931369778727755780724128387056329887959400948185612535478479936386855784110558184541373124561045155994207903643607518502136898235800263029901940318435766457192178324588860202232462912085991341816950700141195296174023896325166602338692225707062399401585841547417015177990170456129467924233538151878356684817585651879752757788495302210390899875182175740408672916058004549617727157917145642183971191082114053382273598565939305335737779724692817022046887350137614742853451616225940288436954175602929745674949617152937712453746406430208400265808320916145211318028433868548414835873376700474321254435582547439878744204940304200618947702280083418503696978716017431420236302319516317017785143334454282060095950911325133064470529090003924858258687964447110870329442992818873740395103854729427349338111121823624296226922737481738635564958043609749744990118857442833869367986665300302525669835978978603814645611116329763063399610875577273329662898283925817087410411297112094121533116305950799516025879825740017829585895499973613630142622553208613374591671417535922050446807839017720049406762589966611323800885743622570513004030446770125460855551351228341545745687934074881880505640926945217679870659381827492412071717022839594062601060873125955154710061101533870409123982811321183575827446996537481440062017589646374064418746639012162278005370432502261260820373033885123910055207508531183390362679970863940081474575993646431006490712504699032407991897734436742233212372918310386095724736907372759422886001413994890404458649867917752857053485548642258273830169612238648397619982497750257065741633592683169821285409186655442544336113869132684307225371816762346283697899443000038488914475797603908054971191411407280810055411450947263149504454390062109968977536487028767297886681255691388304954556912128860359638287146535958301717674367977006895604155669621786660425500174500848424845533189386466262367723598638451096456416295678000330263763012644550964105867809758759837699759158891376752549506232364329568309927841307032317165945810142464705932267046871388114464449734109338102607146213540834166938929240867602434774027658728233102135787589535563704759191319951515688633076979802318887078107710362297176688153026617860010007998866986308653083720176915402788622887664011422601238483024885792994740149112066576100223513774579559513492372563144114945443870660944460349241812389329192045187448605225711957611858142836064307617314324159894159270759675619493001517338427826915019714006931468042528125624856918605192386324797970560382469567602273767635794899436921828731740931013623590830545739856675575877088495738275228678772148583310123447317874381615688623939971431509761908433066931755396654460238882943622126147921821058560932122534940748009493433952919411655896817773571571828912620278109591432168080100232559399446851042301037600469384483251009980564207059454316691977649567426831689459916273824497853241397804797826620837351422046947875897536347271090861797168386701162565714809763156904121511392301134169553374123998447746108924638581645392630433816763268129404458505060582919205283501172874811213321462522731191645161318270325638711820411479045786060502508390081242096588503054517786611249803070765221472412802007358307689363209999101747730848736290973205527817522639895578395580856675503060270449040055671752102323712385677360837196596753752904326478920143893033353199137348239764188579971999836766480445682603365381052563003669149718550595220721824153522047415043357791752197662028718337824312390144805303031134646631390738429053271542974271741778770431345246116831072765080114262599738659526227643187254774849784657138300241090672392255270630710510083830092491111587322472924139034288195060637955425410187984069635360602943478022459179169587893771019983347419474061800585377905390573209575488299077584172616396272022129825868487582307659625505491771359684986748892347259990632038775812910646673912876104700178863137407485076074708773768082207116332545196570693854694256658423324827176257464543706237076503653549555039172916507813664942823560346955408388506037346056338062318323223172011847705214075412839175468328508306916635403417323501328920570309392677898774214547242110739095856255367102706563826415683249917468135757108038879178039865258831309967609844433592394393665242932807429798658334612514999665229824122248285594480658940091790654529076657204319359768561153286390638726829831971886832714493483819312324209685614645221128401668807762314225532546411649657453628540585777977120864562462349299096946624125674357802561679069862606338523599250769556940066441220900344606583032606204424172426005201476115538774646939555949424569263223234298767746843175469498234242974404831561988530376429919919992203532391660477448189323997077072625260367237674005794340150881315188335713778312368970416069072142131712215899452917413497409857833813059403288593239683095850838848595090687754693552022828825196450909727229792849519374775213943408107195516316909566292617047801311730027660644730679682505746530213543302683593645408342843338138887682127060075453257964870823239570133268832612250970126338716535804318342397538520725499851591129429023219538812369646588331647119645377828595769743517969225138109887382973274959825134180096028517519093091678363737654947779601181331056425770304801286742658116901195354632852610926619710025260372718397219598493160863171384463462325382138481536798005439596296049143724444953860617763818994859654874187862136876009763548877659299418475484121159615495008322764676713887274611197721646656166109961691340353535103475177493112459070564534513915134956089892040739238963935235959263859063741070781938508784057978084154092429822455359650814189306705638509148503239510719636894350068370358954822621664688817659920338502586203064020556522110034423585151144947498812171981903334234028211708444768814478130341249446810919206673322916271900262907988958306000701855232532144678022275195942971831004387263728883787555876061691474906647795922511130184773915128053901297239823566833226524652749700269662735417030741396161314906160508459178133836302513257985781507978563957881112420198026256425184424702933584317831154738957633520086741640429147355995625059013381051081108330295684880772938486573594234001305723432279448206428509612075925187708233464086922588646709946176106108011784480557508526022112414335244705161295230314226028320770022864432143109434123762464182612448934135963594237330865438348024628428597625325481438771415919718180450229956052208996566640535241399906988005986650198810708983625696360934745987594725747120811325201213150163618051529645241733178920663712893863249580475649765332552978392631426262815503422488537911474939921952276842878706074249536133944349013613678875541254897148306108890421100769164446391094387782891604770486897518050394557191631770981302966396285196110116983820282669596955643184832782893177067165634239805187817446739651931582478449819754411002845032718109486839638688262186718658560595626869805290407086099058125615061262729717275656125497622047753388915365415341323079263119586557488590033528247403229375611579590847287944234247186966307905037606574702448347847867648736380549849130347750453887253318166255124122574990189472107062215957656401222250340172864340196568976030180487821716879235853396408832138505297974198078941629608510086459778229066112033584476078842352946352830894005171790012968138044991254939125147623800367638137932074944287707603512579957418355962101696675406918763879155905882191657755265032781726154405588397279639831557087855726617876667656198506610818556243222726874778609741382707571046263800474736373186169315984851053025399279392767575284933267128898171594497831780814402776454082150981885263437850000078112798576886268271780652196160952247760986552322356071696427355443996949839115915489047462322832969938992845817627483962717453156686621898795439951738534099231073140055688684402681510670149188083564471332375729373953710420843528395991742373104252285504691564433676750229165703651859494684887651284990325702856862772017071405649034616488140143020311039751777497953126581293368134241884850748358179793718938163698159027424120650208832417709685400146032195234141179197891625300030138319242077160801345093840975741938684642709272944893025699551551580589430805084603252267402001813504232380693435174137754852715511981051140603248343953339664009508949614451160364072936754315583362050663874363515072598325223876855895192437633218838653673097451074489312781735290954596574380555419716738221642900121495287228058777738383560961300521877781699135215952646540214052493430811223649175177386198989568043762545592346919076950270418758590425478986392793103395148939416217721762553240003740637878822265434303493007139165574151317176384301357802964432444137065999327545811694557250383435727498481596309869015557339739675824715920300023387721615480821889742915283013429348678767784949033553133870283549981798241380258622986384577945822099322181634240481222732786909962543847778379328522773521217334974492709440545376636950218340725390998235704643203056653056517260427512469851462765434099946360637021119121903993653767775756913050348173910364010704273976504243077526694015747268919086345716419332208514475948075154133482613649000290017150099596310842344633414776312795194588395495992289007072466382352970341388733056369331413937453475556385363265441615041619905870390986647638482754733209881115018324541910091283990073905995682214740060177476968119510174675139062071591246108296019120195081094397576288129981772757688141131544529093295821341436310699689867296460135719036311377050748839981634530989378557030329702556281024853681021831038625299385210473637790354055001106368429608568722878841198430106799036271868840151564294708882570506883306424599624588199332288688196705952354151083966118308462315729347873379402621826285830571082227557422263400574829491399510003099992242003515939175529644737049232210155095543404942796822114269376396017443011854657108208859123702565046536709701618510418160379899554590022287846171620050190914473538303512632444355960352724813233364274585585927507364240955374166230039363118506494172555922643854923103142143656133160060601842894679328958666783870805923836463941533660661869523981431198594793709943980054896421210234425874611588456614226104211181449414825812062432168260416858827361940910987806158384621929988628084004125431506123609498086816185075866340497802560578721949279652209118092838642684295430091128070693198427551438990501799538430924579759623106123805591581657525601277232380260941095892335706050887376150712689585551261968327522944350332283566109632055530105034406525409286980054579499921811836152992711608574310650424822243143512047263293301068477358640646138191946676881103930039434728176401756240922446443655167454762536151494376269806291478147362076648880160045229119580620136844648806010659430154965287905736807275523492044196954238905959354718432072952915453401898674293104058145154380380751237338298046857722066154360471985413761603480686295433974015902456708772383460203844150360909191896085831914858100798273575564035200828365804540584409947443359076184175252710825415574515439491364112118622439075126041593854558761614777827842024308951587200909673924498103698909349216002490291366529644722624202853977287497352984084346356532346626730260647109367000960804187340173359708508713045616553643186632032005146745466942504131595852038370550318440067480562329295410216682766820907010782810489245334688792660784365204183102446244610969363076552624201198428920080490264687364652341372285179794782950296730101616857844597622608070109327209034709694401985290257026997442957304482188209884006355460322830226998503151884132607667481936154192105437559439166356259337533363737248824217539682515829300601863961995914903475328931933107740523258471341981042456146349736504368043928204045283090090985069141240939761531329560754950554979188266209915221280969247968436700141926638326994275679302040316402903697792328891304918840482231004266552448398351165919372468974916771186484017200502569830944862996525478829280053971379159079083860465516711973377911721306948367594495295639284010341127486386754854087117111602091413038015907999476506009011260420239348411970763433169701818041648215304269703587465727580340928722360076178501823445631132293624256656277886163278154180584362228650496602423805934920924838285304723702170994766141712612698514030988321392849440909249830157777685210766685984666392485190980908662210105308254114992370158640152416278667386517320989543214514098240926285136812131704537237072770350461404087275465925261245977107294550764612140886758899553236144708787814199168517323307224967730297938865446454092782556722526921428897513162432494267234075515921070465551361219066458316367605673821115549416818963296578719859715795847316059633149088275830175319273182945950697036533483280643877864021511593171599010934976461382063526363761035237147563872940200436727130571889458175910217998416735528714266110197190830063678139119679026993295822356009432560845083100688894564882237282721122739475277654994255634035758546347136036032357869787399274386611968382207509802177335337708214372208639545537272902213754332796179525778572543257684068104893973557996606335474441218191588299465052811269980326978182947034752908369596086142677370147766550622017294889669245899181987767517257455069624318289901390501277342179403273905824711024221225119613687206626127648468565921694496695231811142237605404828234552893463617686009831930919367183060093776508788963111713885425895272631003950798410635808491948687827332595017407785215439983479858367476481350993242298231549184338935889786134822615596136184588300432726674384328705115481944203865035558272438109178993932736308744129682362732683808079350303806615409116651386314015903281179791699084638128900638492010334029422581352644836131172981378766951850522802530237962506293790295901811213356023008091049974153305083935838773499237608757058892786086965636824371945573851032377865575400877582314598662864841031123702236597770629579986034821833196159816682010331059585259360986533112742063607087726202579867509799951630194991052920889056961737827478700977159921322039581485454133266639407761112282679651949261859405523376733923857850216198847166208726961352610516889604897527192769395757559092808628974285106557421899113064902595912697986547380705289426171855083785718726274616306503802816882129235254630763490084239445922269284723212435840702259836606386574640243113863327727596341738149374480205021476988372608254135915734076342758771907408780839785678014553687328462181461300737334258443494779502538052797244293769655778544536544741721296521883729014045326857305623385633045116951184540297384276010195406920541311299057137365335162990749560142535823534515568576223048672353066604079259139438876299155167002284579029698260740165211583829043153131893153182423538558384689762586042170056033493823614201129671162795329563914284771467123264513155374260524452821877596555336712320538871702746386855990547824753102220142709428026913970023061126412348926890771337889605310909161624476158598774444649243924720380251133480385296817618466119195520883787808517281337216042099336166347403475066957595290675154221232842656910846770221341855406371128330517889987463475524324622206878716298853619951358310832718997780109184717334541889899851986509560737277339333559988055955739283037490525053784266057693466041137763768880356260351906855685454108644278882179217502763858426071362774244092661596149203855508881643429779025385574290893834665012553408555854418195932687934629842167767216457382982118807757372991457677854363050864934923570150479851681316927498510399737066503722078240522977437180110435628508659171799179053334622435710286219209772986761122543678863351501043858426080204979975046209845433058119015027784419742519412807329581337078145632988838823233863728076437816381951374192290414814442611789606033737592315325304641791851683497293732649758046325910695694300846619142536739643441656465243120498011081245754205262862686313643332980681733659948745180941279618394878839987412457385723514787653439038106707714159209959332279822493907160684651620936861468444530561138542600669472143687806538536748971450793986148405021107926431441271854089057709173591014013390497292071442903175454257583457889256681676690574950381072960616828479406512177220304316176410654557968150092548765704487385655410805436078874964829247979726303460435069279758831705131867878574307590049344495309261301635239082059090780437121529164276926006905958960817617850049652421459062690361303553217661365152227651121953387412449209896732053593508027469486093837077840632827161206853123884772388187586060643550978501479230132947732263080119537720576018861697457744421277156029117148060281538585298488848282836184912963183153514846707061816787606905231725059463983767688228489656000266589420309634923445367224513735363661084134722628684312107621011213648571133025985647539858218873381784434450868896440030647127543477969264886163916622317541254698018912892391539471657759840173252229530502385601844483143605683526581230786349349163867492541458712038779119713417927218968363497239271441494925971014042772642084397591976742723235096486935390991294883330092459827516777347734307510449029120247973357189147807071237785442905094044893784066303422868531279297629436314941461835201606224318702529254292449200099675989918114269865342620917084642736973000974831579056363827557614556747708588552757315117995644279784070414588430606082970274503390482754740614266750788917921753777221017261606925097182215736974234666937695750135770933537988280001719779426649892350806466543875920764510334340589014791406857093552255035003097084435710517457453134089612939749770353978787091198079093782789771770552199447315779536873836113391515000039549108628088264920658249884673747583408823302433776813814506592339646953804460060128898274555800808578975546702022268663357146525659326949719337414920703378528583193792867305451355281627425566612776120892366680964460485567997100083254621318725904374310615506266340827336788704544224171708274611612080582510901296464071582074961314831831175591946540005078485334547651775194500762027193904812697918555221659950567590483772534943199066362315053735007511472448477989210759481914241988003971507318348435518427458538831862432113324190547050177212236708080673521851097480986717516886757005568123792023837062934948880463381840809366909120674558728591088466087685342579772062335168328932606362859978953279245250698008445522136231744076022545674361402684070748495169153383108373026277861031463053991175410623460478040083525402141877284791942436133201675127402468506907451418513041095600895612695877532124475772977665314757810030580573282906893606451010342812973356895520584995239081414912779486973160452023093150237665627382950985949098091240176778834697582973543224376638820464707093197670959943799383140975908082452897896091261473704911950648064263113728542363296953852695970345479253281337066169423367703942562516556396170064362528106187675974477286388964165734900573448844616726291227002279102175839874730349764931462838256810826994764670476197641376205473130190263703145534900521832928968898517775583851259045656271885782119738074662112252226874752513670992165596153175742831246363143087842565957739928856797564060769385536033019682284588612767286694974770280800803188295027595749508310457388632636078287777153689487718788650086261178915598686876322351533368520747272709216635238831551563645810154860430234991589175832757760791128502741560495983109803893607848845195977722533770610553331680868663427517547097972328444630934814644827502130013127088774933506142154395018283389017305966335068903742487700846330073443818913924738671604603340977360082505682144755655744625339740113149322940248090991886588367803844809696648721533233296665157082018122106172633296215294094338338713429589687237839797160674019161128930346679238075161861003495369172736844139868229132610145317528301706284253876938255919952923859907568417298328880150944220459692775890342423093416975834163550804113286740212823202083563573182203042117125386453018915669200341671465603544294196962441012792357681841285422530714171860991385229200922091305802280201882620107582587549619345584442166550126018215048542009211172867405186847091129366099200018589179177515692204844788921906331815707670491066845519440832169859629934808084391177370439151244235643251313351508974971689727062295165746577471475815106390031737301024740596416595984569310935535373238051885919071668189408095553667475221377375217433855019111590019849557915063764317530097065910329911152879195517563871690095713227374530858864531726082558595259821764595644616534831209189652765311485179580110947320299368487109057920415108411266637133246882841633120809421423134150846368670057850519940269804029791712946700658880470919386465527070390648974691870494463791545295721349287970353857065550110708204688762562982235018852764777666729112331581876304109365660039756856984394676723260488741373750161278202005524933186256346203662649357967976340729252810024496460077516444515615371620419211686146696402303804687492471646825908497358817335955640762402802169914414506654081313572343524128741373804053609782475772024640773111201963037093160470760665329063431563284392620036891113087649239664845571213057690482848564140290033161041147363075245139593059651937411276912642361219431373888900118313851088640150624690048960675185078291402084430925232045327506257681128668864755070269693865365925892260618772101803809316239014496670390095879519107891623110230935320716748836993466748680985878296451982975869759089608233703386643654416143528971589348429197594195913627097404674358308995961320032184038600597980855725566716378390486019187305987229569143860223599623747857111524392626242999357744135051837555283189692400212976896058852905281293401948496508651763293426541184437114042566334034715007488429604389837937266309844308146838228196341166957866248777562573471785259672178247289020242867159700126106147559000256610415130095481131284558338711593199776635616081094194824891545822474210530039900450674168418231552115329487061318217242838022353318809251136671609755561044646302969221884634315538553992279512577045688785272187739820648280842357478096062070495736718814170476207145411551023002314380855517686774813015961112012582666266105163404760008878996492725362351372319092216972809979940331295799753325267622960402496755026265237664549201275796087307967027751141616634540532426709272526698042532371683727435712048205893873775739814693775538345861332212672717577143530754999174372640559119650874652092227803844755221908726497328894802306859212689408790087667747652942402642529711316847461964365048256464700853913438109340001147002830651783382721745899307208573876876119946017889134916166616473271610474962944351710827162026491588777954455108315739094386752311482963111787896984694791713691412890244294442941287335064125641188828408793195554871609701734065387947205225380578936226896644260705356564526492476222524356695888664976100962781334669537833847925424197841148435127297618692489361844320418282788929723862264998868202609008658427240421863361929670661796297125874088853826937831842612507514359463740287171906158480612151749542710996500621737388229045991938899941317743792648006868864299004110060539745363170530168280893858499552520326572866563823655432440965981976861670306187700502076803867739479285869437406382012245080260040504675944331257328435317564580416069257898286112083839877798146949826797896308495482240211956931625904421293738920344990106291837381009706242894609921673059868447178912399582467672745154925975325598276723550362621244624586227342654271699266027640629273466353753956265776850593712960119365665745386152516573815815511603198005476309152074579764689516405556622497197330255086172545881263468075991710438982223086458421613456062122703203432923566358961116185084983344961786996854253499363254549107477014347761464183625239914044684706448209526348636717113313183044871886697946129502853328237551013415231239501443269093837767425301149317145687778839333085763884453430963296698824981467312168300078271551581943928915828403651698256812085392806589385363538274972023184418940730004821114700051591563705363974766617315384018752717029933807952981771686762220961346218771576094653339922408583972807276926169731910438481877398282408157202106602945611598860205843705309300668567718510906477015902166053893044736881496530559507687395660471003655308893036655609454049241270595824884702451714599186393624689338030825937101649178122959184241774582054278897821650596221526130484477747780090997684029091389222750729811292683664213537540381975021961606142641877829975755240802453320290637045356902063379839343197757408640062337251402599779277672578646970729895331995192898916613966725428276815583083337314569231833205432094432700719613867120502362144487328302241804193200625671200707876638400971840379866437617116010964185567504642390416546066924007113304983995522146860670088151282340082162935686645679805214802192651066122637370037595582363395773692737076971938195877257961281937497952136899489963274606255720858375403789323474416358297325163608532472409304021534736534924317669057683760588028758436928117680290549410764531370454971246756084804597645159355074294923130159694076802745072317318169444378666324951553424220538155439302871761391233038995826715447745233068121437630513138870626381427934974473444725093598875905815111595783958547727639664840861653868014795007894705724846867355074735487946633135821225355361224707420410968375680261620285787392232170906614531579811048023413013689418166377371657293808319678587512324149434113676621251545076812233408791343442933413543882723618622028938430980928913121292115797853715341378238311539322654994088393056329253833957718315485852982379924827703216491920785762663007496594831789484656283472357835494992136176107891638043651177413352757209678665803909071156666515254155380895016731909247861056151511139780089692189423141068784784772823706601841410749463177565165252314593654906821484499112836725942044335209640596213138015044826576393017315118416736111852475563186282045880403541441364319265371531768609741939397577309296166503456849815469398962992263789530987737635648575620997513847045593525637162147738338012232912966343268751023077511106785604922081512112785612336023177894915865885209829476162509259755546901595372332124354580564223587030303965914968383578120346859759082422904382113887106447295543359157147756473041048939133917781321979208227529808959548636844437721455763108241225680266293603091657799118649921455298647775801202795164613914677408105342006989912778292921134685823658710392036779241703893881427363272070689014180805930266614931018655367051875025452600879875761145884614117553847470975882915001539339729556359496615617027219928338846930425672447990941509057538180939731367264162859336538078225177335410608972275142706710676308072800888572057877500246389454098044577097148787007192466231789759762782299879565318259073527232073078799765536326602814657291154536971445340467953879047391232349729652271229321444652822293130140854204098933420754346146490423746429474389904484306536381852907261009085877553009383337829630465119067426120707563003637502844779055805271349836677113044469167013782017444817053067947401175468369866086047908632290835694999813901070440370224351562406668545210748196305269534617009042227466829407146078111389098311375869011922801555859948512043525785802140053257970261976845263061948255649514079917239370457616981241699472987853495214303255404765547264338796104050330920965405681859634638159778973429148288887805371152072732990077860699843312129480483073718874203960629047021457985124226976113032432416903768102458593054813742625990760548630519977971923528159804390270690983038969655978519174553774077422553624143614507882182129225308054956855874918319049543945931733639291342498806475332105053955920888220691538700400525524577510048189036568154668042086061205576085322328361662892114940652735319971232148645527185650463430483014739559938759624737097489267604945246678828931636334417822357879745878147810760911554841697570138689408495647454018878731446266691115902142705923793028088626588671354591155449843829000376902628319987178789133969660617357022032784479288496841323638218734083954039269595355996811936917090969959942094247590927079299428025264243209287129004534378924520695917879582301698572435228624770281450217640510659225756011649963823702539521418678963522636575079316517231183848185389376663140638369820313137354617020148842148516241618511161652294430235337001331644638886657961893433505758918862568906619620645687490357212404860927962829590786552949773533545432415197517446103790411729610348402094028314447535992837248262601816457349864989221893535195796609847815566749611617677671476800335224778273322124844207203181492071370173073221422019861113590807757164336620860232684916729257271419826146713373429602826220452022064022178672164672963346803478882675490031900395561549999029581021296348916619183600026004154074903163056676768997682298298974322812236969513752164449840271417332162771934820087167312258901229102780713416346707481432903258459726957921762369302292348148256118850127103835921977999615891773892921047014891734446639451486131321367675829748528214231105724024502333946992047875146095318384570629927929715869782613363349721761147215452973865607752353439037828555883657509071589395775359812028380022543872959536311403825386154799172773970142731521266788544508501523095077770880294698856926947977308049485806916694541159164251777771245609522424738164607617431777430969344430105807261867563869305859440437031323394956159127079631412198328304069434017496295412448633121783792649520352872036578236604939757557496295777998075060214150473096896413262411494400201598417340657459314264229115421480778006793008463293162528545179444141248300320372636436960856237156469760006305857355361748369612048536886552941614929235605024191016094126219146902067130974525121096736100230173609290389293126564618158585107864720881750233203079785467422413114544798515657126173343486048513053311534949651993246875620287379780485509310446514524465287144929978300485949405778752193823579281273082754389210066762569165142023775430672243040318693111042949254019303215625019805968652121364924921628596138148190514872694832490311162697891804931211267288549511360604083170558511152095588890448507988149558837552639487859220556345971520287077708754177018780378572602876547827247804377073520220544108912288496261207419717129983581917170185182213036137753657454216220383878830615400138822648644566715769577278896103930749285291146054120174635925382014246149214093071394568385711763899581793373960881447855860650901240755392369409411151384678363243004274066948825372419675494523899242308405194147188520583462121659159842447592361076248613955920401263489806753272545599614999366438562165984986598331900011519495333773075623439489133241877360346594680872406208186359330384401486041461188018582600672096651277367113295445349746675164101156840518163863525563530824677556220647698718969104607990687714422481636759475427515551981267900706883498767835043105441776857403667551259413106358961516949969899939465767633784349036954462050622901408005393559712630791010180395061750821518170726624801477449987501933577726208616664259693389994050109678167349612816007308920354460016421594224388849655193658107257433250524482265174472357006326524179958166582017334852004559236265477064337619861447986355103130708336307493977308224711681938365332541671800712885412883537658816613061542268565847603870142875769965642616498556661835434408843270812272255822878255378449694776670301104409712504163918073875801337346732520077833438590910830849890159597439965846392573262078690335528457362002385682742894776380873465623019546850187839626506158106206368537486300534800842465275245355930244022627164622880635915047937368572461975175183575987131801104257639566228340650140187018221568233319707921986171622015477379602615258813347609913977209459556230712903722727436957126418769773114286374849992994644760109696896701276867156745228962148520112434510269012944534167563274935308343885630251864697642612494105773054531900033483010750873892851356783739580495743151873516207588836528554977330822446841426387932622326341861122251966133026255590688349022030080065789391976691724125882717325324382414585868104985288810090688281553227131574852930792052793191663773779537687375696777679780555000102213438657543891810180497062807042421650498064338116671960312440300577925224710212337706784207755873442286195724579468069087773820864309988631004645937049990883221877972503120358392199301795362043828909163531731126991215059926955645480452124107779382800015633402944876233748931930275797000282591014268883076892962419786863448841463143218027395140806931664551236020971317978525781555999043258477709153934987598255792358557150129833534609150035053710506700997106237446022568248974595857677894671648663741151356797098937824599704489096956890629052457534305544707653828661652530596033859533576957341441022725660848604551687996058843994408217446224934828991612989531291099765291220710348968803085693910574893040903488485852474345728688682849148697674749211402078098368134225165300474048704381971089623675634896907660623165362845430226329502428838381637596089701201681884173684225326915782416699743376624419585975389738062868731876953718211432414985755852039406862049453689746231725275921717494964427181686609900500313674334414770013640916861004330102704683633340253860244790567486720314779593520479650313766283098148850542118051060503118989359883925577268636171981878755239152651126016950705309168109536594954133317364584648064240049166527845306306661491399408652456557125297786589519145963023193025563030202569411714787712379416269793317240114222930943723746099688551089740283505190042384999230338779056040354110148848713147857785008005056983973096574954115572912338966164398502896822405264486833758194723332629194096981928815555640833712091034577145690340363587345642623746077234654044309024776914248123379129448134566316298136577842582758001941666959129527300094718583974929579012623005921271407976757546235106676510553452817362669364826194683959329871712062373458625603468222065902067646883990554677696429409472563723539470592332373634239439004582537894085922411768553694677452548855464124216344061126954599764937876108355884303199317931908275060917506016336728262536048034397801332072159144731517075573250922461149114931776501621561588197702303754144926384147902748160268273049981512966685984631424098172270439192326516744860092688951967225422871443049158045786802494487817290499952215940522150991249791472031951904726339114524095694855683784055688716508089293357821267495471238525233548742625700273738337731671895671487188222097855518706464249512458529869177541042518175738243069065997832165331530288382697021077850074769915113818323929688612358149193963168387560490639721862000484153187235005840637351431702365449398918845294358470381779272251945535081167174913680768719393347260481630344265314421537284398239677646339837789898055991338238704119583999569586543832010282472915868347904774361980890222597179073615850443125851972666821032999332056185449387983168592268952216205944160282385163481299684502888987726918794688326826213775052611445738590596956906738841237422065279805518342083671427388776510528857334580628021575058660998901467908476106072679553622234310008810899085676486400808744092337496957311224093404725477805012742935282669905295905195198276915404882958508704847352662607464318789446842508776182472096750699062393457515393917936554992582023433275317653203972971518377422983407845628968998481045935370167375132905861026355373116601925408326368270527626938564225386974109222199880734861064350899203732854577966915078425269861872151202866097967408638794475374247103855642235924789818806682807680856948186445262829060147297993341778062118385838895988996819416864572794222378004927030352868027715057068894279187680067638411154065633820748541181688462291708866540150303378492465383541233000120157837132294463892722544508110932846617182938199353750420904279530374386002998884730741899465320617316867431801779897273690556572791745422588210301805703469439911669624255179060216934497994666840219070594687946436717786322315155388460221577600696264325302271578193109117662902474861087051923466281372375562014806345423818288593127636966722307344490790991410147468460665151712327173611062242170735977096536905683682191818398803537477683349510591510290003453392585184830789515257620248794516853693651015417775486277715387310269783206406323015595102422643659530509840530729128030184233162877169903007662959914489538060073253390556452492447122023443636743667254165690238399970687639089185197479533100700767314933804607776590810758858064149634282032456367831374030530562306776928350426172649135224430335336265567599111787709791697221803968098279683078975381145579547974797750448432655475754982262055642277318920809838357306563985260074490412911640040475030751946415387557658810451621027861260886476305087098447991369064812250511813827929256216044227408101564917305885707389354726630079474123381312239191397616991913750952326325764574445281438450305795138132729490484402643841871888797980493175013404572973605549011670565755297420137770429530178545451760029803148663062945683153463819388694291026136913838683391237524957916016666961942208659079239860724953426610640456904544681038269352084415161793162412402941531993743529890075495719016808763276335458747792396385185939715413342239475709772680238057790358930572276647762431790311547607297938862672152396786445043397302697185806575528226968040219544513622094033934424081756439448315598237113549002655573242292803441910032345603490725553012467974928677789184944097605433151762749342376095516892073730059391269057286094947096505860081945972602270014867006789938953753277489813796449424185404445825557455345284231407691052994391079900719748611421604572788289243536945287784826017640514280798656730548461082352223797300858577164975606726837860955845295435982557288364055660519268615575114378549580562988908331449755000045733373612672051863721467724736350048512634811601432795093583728655457240464683234344865166845157027154314117686010629397399931104907287098088295794093420612470254504542330981489236421149526656449046015933155163872130347281744095158663865680431743617016176516389996930399899051576646636231621487589653247191575238621812422081251502227871064578309413386233129587013864021873444506310838852293390118740826549552093613084638599860863377088211479795087288656252178257806159501212504433362797921735813443198651485985973301130197977515965148085848549358456941088972568406326274875016455382561116597440723812964822655089800490074267299518211594874656857080458314595780696477536119302543599914092974010838097974709856918295482184587537243511301049361358772811180239943010674756606713485873885005914355104131524454260938645982248898441029283830857574096087256598211685777152891069390900694264242432414313569918807659089041899261687281081635002719746269379932922336301927109223834436812395542010390102486625619387284110301012657990923862402316517250828130237714091237210439430307315869022306952827325759499626251587614971230039222702463908494389181084618112063048213083009428569551356224245325420070473251144575412823192935609663855795034143239811759926263140898241479305306918124957451751056470846727582831409976671010637035985283345944647152182373308969811936602359943793627891409909859262842680491634331368007183932524862489455847874468770430078003044374618252755119093135512382578680363010459013599348635594691537810284486866927567459336325815688968471793978453554936062071858095075394262632937511159469994706060936375958293671257880573192163577669077112282099721266982379754154822291184663909124417639841362846667874544149764707999392020573405972980233688159752035882290116231199811292911579379521667010269837440793993236850928467354210274822234956548114530169284019931406500435612196768550265133964710052230633213807280077463315438442522711277020822831206039678479089074427755687013497643473176219274407544331019877052871311562050058666345917706351244040388785506102405458332375491824009925685744003648905440940749555125212698774020704206682097596765147450982440536611924482072012640656903463782408507969064824307400636461796969736374172203383708141705802117316512420349466306289654041954900969476266044363828244386550658069553212433688442005450759736585912742766137024334942365847139287868237842863858220762775601849520449471730827898650523844738235033214331650781487732922238303551246136504605575682070158789059243470095493389088366532664703395565386023437365224640840339290709417960288726105320009795219787730458189154620116576873575635982849108103454999435341400172963640126556433235460660692293768004998149901784018373466674478832220713243937509468123995855588620637285682353535429304803441459649472945034677187511402292762365435824926279343787703724916969475900456286105278755138047690050150450358208724751682307670300992575079344230640665105692912118620260455927147766459747443022758504803235903329362366794889396506183450156451371057927951170171879607078792426068568357152144904800063088667405026100469420744640200005164097132500499525532106267551596712708406033681583711363500854555284793755908518000628205817266472863590688705177846655778339653841126117999185998265244784181045895806079672361840973662101514153619403003211340571408404968599414257143172520599869595523530957464077684254728834516744952637661530253896204674467756270155255063993991866711129760896483659244963955363820195041252456942584615047683856520776975824073642152614492255716896839984158545992971753018077133772747694079578097455088494469899907355333164611089917202654899764625981528644919952181758352475602169479461855523238363368702281387355207700101951210799404853333736869457092858175075485200698319376380563735233886081060350317189628697360473176534403187862647091336247184781428369927705160729109429487133490095986118493160819245197520927034912951074991713994779917913572747788257303357459465891367588226091409005752466712776549520358720792999115396133739701556994032853971305259145372225157757448761826850158429293949181074293356619255275904539114289618014563470588938605280463939659003302250649669100793149827888218974682949075631947108159111718197960452382042754883674109205311886830092658848088206537479283572750365118233314901382955723196922185496869106511178699996076009351123321128991408907940892759085212165130549945720707649738158702061832643594162014741742199928506963222642313466138704974250185873901895992338049063988257625668656819875214918371096650806407339778495788783474229928000086077414678081466431066650324034939148646681347641242226990122552480869600844562230423176232178219001273744757942925024025744343527974138261509410191171641197609690209996530284362248331277087556195919679409873621139444863982357204992745744850159753662735741661931141274568087125570666989982688203463353329898610112496874116181873768794694785328008879257762262141297072418430127167543036529731196942007604691782406660498288128968221028238070748085653812118351832664791319854132095969541467219097152736339809506224588705470207374116222048443939758282854865342987431520169430067695088630662591729525665160819227695935224029114183270416194325729617788754543473026964437259183669650398621780483834950412913848479597821448878415131184825863871308278833581285473873901308492269958496659133668225750606511105601905076334283970663340272212460983016122726183236889057294030825588320085992653674068324366744279588813755576441380771567274206691341945001103711167995507713448645557322629272079357787455894907748416895813904852580527297890570338711753051923659412157656518294633107330541971812704364916872669041800475780268412944607553328560993071766342913675919141241088198735639847118501205080913376924152303091922553958433472690038290374057719890043998148198000266957261078488990787191372640171704226078796815594704452945554633974564702155576836245091068912540285186403796074246983354070460341032528170600446468682123526001009233166986578133437279253034141339508460260134230249611681742679943102347885445306766666968394031576030849452681555143011086206048925149296635128884367262199153028187939336467631018356436547406953487493070714471384730960658257570868959054487139168225845520489604135091486355063206974671452579001477166912298697631216720234244376899381472237054926339675403808631724112108876533589944554437282039080869741504079624302930775400108811842261974077681362112832733101098033522831246056311066668839119423219824601359680686824908211427012122327689256338116848375591715896718390369457022259318895256657872578846438996995934311282715779186615991375584354110253845316110654930143267825469313348973462154703540967033923246639499149062740202426938250540683437973849813892805719549350116934401236867003674752630357065691390109827594918297281363938907767090907583103541100806974721678130423799953345187948437037470286990381282627392280415381089534451372947261786670097176876686163589029329451479766733879616153898923743014332906640482171591112494428661822468688204782319611234115585076627000719508778157716121402155330357181815027717720679037028841803149557161969065560537882922754231006257849154202453711669995856274269402713636583387818022029651917224311614641068875917870212557937779231711080119639319956312213757865008335246438009782506107765747971120027196235062517093884930336902302954781882839081608836198843560573580324393711953746765735980282942112306232650269178790338198291503816195656342846043082640868220913937949179226659015228816206822346954838138046197362180454723019192071911012402473853976218403050605171498746774892501622518085108461665778413266101214046826928414153098805953748200931761348387706651635644726606005374389729325107278119537248874943030546460513374164494069241279386185277726566224890213565110404864746645575627379924065488363295196793760919852030916707401156768688675770197776146270038165412331470344447926148467459854328542912425300550665009395836716002402221069738789397361464742563864665480249539253310799301150509807964273719128955077978611202206972008565236107278904309560948777583108181084234736637411500498349477969725297427621145205960532861884619823046930351675379060785650559508082241614581296816216303577663013500896571916546244648396130015877541033244496712320249304457350070914981070238679605678636488324559376233629309912784605625168670276455573221261152184529395436083201179216102849418766379276740370433561825557683374870941545244251606742237239235564041428604202753815060043232572647380819047824397888907065710315880821514745087422811177787636987441185583678953905483733214698364403240547820237207441900040257406298759050562502495169393147072091644266164307016613076623829949048475908698733805675042706127098775832639759235835071239458026120135455422286656682167304064874681536483707835697235979552536082964560261557201752272671672769506027787251605119089498262235820252173980677296956796639198206678035999160589454882860450277546226459314352470570747403642409338409607973471749984683435018337381086850877455176075699853956127119158987114331646426048126068602487875558415964118815192459660452435857840621459222918405641206420171289330674661391155064651472490188363665738638995273118774751731894289752416825151177944138541181233326396540337596645847829838131566177026262513617947347068421820021948010748678433921203365761061250512718761669394301802675014128142829224402765627019034576500112053243881662421283357135783063419677062172029949479008055987604334346588800549625474144733119483391922568173961096553584817485599743173724384178073599934605827717362078630233996348964695081017627275347199370842338534405527100891340021639512865640814846140247142058676184950570881515237751199867134424817617950448244178948303192299335125557297956628736148165675552468302572591161015283077803095297440712104203719210349175619467108405610041490656003574677607191236961315198642959996605015557757800003346972763701380974403989493819865061071956347997110356229728967031313094707476459348669438049975126196007282117307043419699352675957448730425534681125876271616791272900519931175336499313562661332236145032708427194846119273188087883238400334034849662714280540110341191646510677257965032555778021471302643962862548288842394918097386212923377792608601224098901551966351888006510608646055139469995177046106984498563082392334972341581242585672090029440685373004068697849806540917039461333702079375712478010818516813036378957498435205057411156771809142034933959485518017508738017700476823611976088070897761395984769118846955730477689225997004239359574447398509249306487744497634971232586369304827648041062461898016220896494583655571713436236119738987273558077274531336796722711449487175545302822009472329245152488641354785712193445955053663191178439549853444140639219444856334574082653637881393388912751068896598712852959379827863421833931320107769449848045598007885749813468921040665770282366281287936430279147671781314624083209035884231486933678746482944651739892488601181713532390871130295527545385692124114191771870322406164247517215964777204696106113475156570005240948251032628482189786921319055681297124687697570034551998642467767717708340268892153719092717571252322832017905828721256786038379763829778048081581069230891315479571399657857729723310042428780579588504958524500111048428495183985933375308583778298488947699419811982373185175950994179100611075343858113298094953293075193184113031704862774786249307478006220047581980523484741207829454131622358924457646085763253531326461853609816554996941823569332940998733970603252573689147554674903992929116965528562292513796497262138259578036167291742364456524435115054278591407290149482279934246595748402951230793391944394392535806911942049661291353242674214276081257226706365729838536171237500991484545543195912103210071733432527308991270904656103308989233504889662810292163463317155200161698175368584914004680046190914488961960639975889975717324348080925898939887685820625675878358687020066035803084392348682456404089377219944854639052316585478510404651228831983667176208081505161099387829275220408535645344387667454969320642420364395788475419614169216197207564915646089798771645274933483854897481364990517040367018661519942912430516920410445423688051819341701668953023975098082664111996382764626388489696426623536670141038083806423657980300541260164266441181167651747862798086047082697751584076857460208174868333821511179247840158360638277482849384299460376742013976888243503401025706492757501741596425265301997381479932586000706568308589392847664977165452903412888543270963123705416745251164658477981273780958346945599403886367228775560544057319210037849512899550085575845168146431027243407121679167921106909029746588668763987208248659150829226924326814158450614759241240067258730176912215327613034704507215691823577952354484932982708215264814942810237860744298266521073342365167344474991913852900622245707146571777676953599279638562256717426866828794459705545385797682977649423825321283508637995798140874161274564517962096935274516006825581331003775258461886716260757779053680661007142167999417921267389336357621806808106461989385638269341666490093674281457138947495582888205060822690628510346139854185170522719679065729212535356174072888784474836704071816096925705604713492509303314652098037583219650444093149233714614904963024289816407176797593904527355962261489477191848090160251159248164066308281190248375559925315623301018716367759525789363585528343190764880590449385049402852109285974053600251934267049447472687082737357388197580022588832328303508978047469332731029541839928846649515278469999996035819987785816900141198104309633993215685737497673321729298760030945252139337690274973770742620325353738822235493312479894150424069730030355764587697582820598953774382895707748838291304219301045261067131444274744150718292183884268182872320632960102725384399146921199342728561436470812991514123155166441796171777661772432961774447428567820863254729581933791096746487658842610573611029981213496706733405363295756700498995096308794643026068651298026843463300677932306730893578759841812271146321772417874363217872400448861402312602703457184102120868303506417066721153405696435954965894062687677966021569093152975963335262834743843515338717812946632936538859182871766312266374285218647116305818242877608585471723671855734342204597300568842938343541604273960342731515275356865867251983844953905891151881941308344885693445976279974449150064778433453212004308827441055740500568611882063386114255058635774829135218278089329114413829245941348340303604002705503380772446010548480735090637555853304756297638363370552363476469261818525128390571888835782648399208972787625047391020801012092148007315825882175577036470566770740171559486830363350330847682421716639311005469231002552848863624905603768367491048928977100412196989487616466352067319092920925899440455474458268554215708948021032466988838346488614016511028004922376312408978522639894643473109472776989091885262823609795942072929868244746026680317899639683799710546423117477732646573846819144258866684450802099509484275150706722424106790250580740637393297144135735300392462315254200741926886235341765125303679090836676437072563210872078249411998603708675330553802507975400039837476856618898669422240366438446972401935568126899604861733609308304459440005124505289414720717373405479782086703451788370507150598464389156878421772035352721798667786601235731004112880798161618241201490816401433668236711368886683120647606282072337737110390174721637391553191202795229894051387789265781099139146410869979107440048946086129610856139983745892291650160874147999593034987776577703304723097484383944104982053031709651467414284955470726473675434343975522042264484511750571827005367024359607781475959906771565233498362841751644700646922415146287110486081493207822286140350313600814810527755762734992121036511619439133429717155626161652710908033911111814465624792351736390612618984709030536813880691362905518308326484902807704160967338158334686871042179685143627749758271283578948940986060434369172041624572169432709753622382233231765374167458167264334557640348536782148104500928822481117179013539991082103373969731886299068929763583090399774584585208681649401883394416808587952911045255582400967788952907087771047890876677908629576701116041051935851161845981290734547404484808834347587873373907583212469477654236247234783598549727763879058393740119083115457627070701575320308527247493195034366255212426692431485185218041615162871755778215938482539348083165320359146252587362232805518448110285231306742582717068679704738888490602528770847413202747568645445256839965278022304189132526356653068126817624299109414224813160697968077982967528897158602797474317590746218704086387932201851017389367128514835822187190574232729869419871096176994798544271849685752020419220893900141593916314415420088712683293149299938587515470257041013732957253104706330220189748035386018539007784755313711408698113207266004209546131376489743469726838759202660691903983423587948450328937456112746360500542023723078763950557614048675006642802860870949108423251888325474562117260660448757810373162491282838560753453750490611804756304452994265221204866034134135534700489707292890969664321568637377140124253117956016905111791842225950979393329269434479479806054075809855441352652240731934171039484600268483629829060394995801679088822474190711783217556742542396744780440881288369468762520953756001940693742223197596080002658637625616134861272323574849015961097407439622549780661218866833683044024635687702299450044080895447962995816977840200359135151767862985288145974719113899236561829182912696035692272514036393207593262224087809733399956758259882543728823696083880760702342960286570964325777515179496151320499698839030576494645728025606367024139224492714467128705662795381911047974515588979192228114680635470295264277547620159297486890498912505405914979889700338177545044151466043334402352175656640288412140525223128140324495817313893630171255220223290185164713573374657233350341636943319123197497037374844180197162989660291250030695857280987392653651859565913763169453494322572620258113319800878767001617045311524807311393481572567098440816587404340847812826430546706367264083662956203424784638031214744428735389641412521912114385872907566536976602991660794364670148645962854852404356608441052911475703102954844532762579072018495217424842168876638223144404832490416375451093752485171529358437701430492591076179354666662753752976849100366604535800766852230001024729934553032590964329552503887443100318521733274670148605884598799681439987317826513174577774612516303171532680344480785626714016199094191130941090956765901920640602613056749780910640658554403087110142732832311762919885904313907619343621295934136292206467173252384773098179862784724931496727606619390055360539527805682039765878782196754264852619997117132549778061088198942179385875171546990614499231910550975319023212053324175590990713751556998761025897793729793185356775085894227038997879254710494868560217234474278474271126181793083462134799514980437119481075600461734226746200885056081760430205599688186722678879364570015967938969267514269525090358413127495685744207310362029876760656040147988896475180022432471924320098470146002388093932605514708264858170820988386560720160581446463074157718942729425790845138746359029568538707336287934737510144098692429140682763348368104683645152244655987038047049543441796600111150881466568459407985948191334802318787734564301747463048249873368704660160978190593707936824322712762122235269123446025773124403750428664748447272387905733248315590256858580717309783877224775638716709044944294207148959657033839072755953452637612242937571870677963213817893116847843505398259169418052466787131822122438025448652229971884660037622037551123695454336957692144502933254410405595419111449093075294695545040132659664266880438404738149559088182474532714773257145876242789840119066223932362244256840982241757733993782837610006504816644133504404796637711345406203653276465750277561797865299002389550130585962110550740443762509856219318129878264918606877932584058902108825780778254744502849882792321053439196346034716670797049512110574795378055478240660357069398651865461596833781411915605253817215104782352368866778378544405705753388017040206670256890815880295127476304504946233015432663495215972961268006723892903974145048083048502986635278948566044678989049398094210660861733302937547920242183936091773122016069925346486927874908308653492379450311244422255934527934720946208278835917818823494618264432563660202441480100457137118292336251147576481270519661371725395120372521802586056144241133047748863269738183120087818163912213919723643822076844626516535810803181205744491460084054359962465691493190573832894108643727485987524077629037947755425778094007225582019927172450684969412016851497529641349349723608187444398694746887371145535260548801268551066548313107467515390180487130775256492638975620102519926335577471089711727161504850111767695447902178162897477164415943280905984690463442354394422522502088689798907865732691036896337936748350935539278017078220520121022486806073808898156186975031718749980506907511310603024646265648626945873768914240511945626042150418471398888779502682709713882047963914249350237759857426710779753809861650588447423018069389669599903872979902939538944334412763402954605716285138625053060969009358403992752097145483417419792456176612094498438585820232488901376416168539425661209791555823872613110559395997114872749888176705095943924529370326843381077471045368647247008268415635380097919042856702395715082795745597298563085983218333260571306500226016296649573219107875636073112023866747781134388244768366535904499488945818510771967066819701732318256103930979812967324814421908451954993730508540690111721974684604094884664102917076394913849587805502270029833701541473446285885875460342979433234178582379052119180565870792588021085363661965687721153427941801044079057317833905131362684118277890998119434651632563009106473361878407128172055111880790430945414237558070538006300051319451635859776397985490589871876938343230199975687768459344545525014788367212488621192246327948155172181745271150171910874009329671196524570828660628731706511069244592806383516697162952801281592094479459095479856342026614689966052293288701570921606358977345462471539115007887488448831316467202543638579210621808369176334559506545332354634094369855002278301036859324379103206183086661168902628283368286741187195444241858073280138143949673114733990931290947835936718291465097022881339690452659281228105464064404749576651721475651224804517629906290371942812647487836997193582995540248544848525531719204855103335964230535114015826541951786820102407539366910851787540592819626872593239508131909270143900723741684030205348795705442959845668401143151374852782694354847063890685353017629316352277896250711338665238051905464787543744794590355525368022161483612884311850438124180546382361701875658103218489283964242288154649206672094322023988387183745774774293415515846402993865917451623836820517060299627668845567551767366202028243630185870451773905247046724020778406016879111798393085418134270004254208614132361530208163298052078590048373700243120963217524500597482652771752924290224831854234947187255312113979570708200102748656417966239141703587031362949322119618472729759906108430648123261979411167686310255397026166551668714485842539193335843250727461866259617739366135869004705917704058515672513512344825885152087815870600895220861846911607382530313689307441579811575813364292434842966788494988515775510358363866175715129944347777489756123543405367566785056096264759755877384131292117328753906178157514094593034138908984295533869664449990416153569836192835391928068447890255581915141349255906706514874317156513925169643425848626152980325752678036737178145254917021612396034620908545857470915391421987491762948943839666782808817806965176410082744580751338713374188158307979719566148312120879706454107708629685830697099762104482249859031891896304263756736931678531749025562742243092608147071541066148589682063960415678806520220337546123130721149987492193007972805469863858844909570765493059808255010046402482198238367828177303929270232478362407188284742729707979381530873301770346909510876570454932821873201063110376962920945465965883053921596315907058945948594104480173173454468904584962437019037393547631979101922742625266164239474113379963653285310175520535817623104839895661561985324478544253031356098336512064945249585426839366723712354938261480866736329966793247992826175878929359670627852226834405037724039420262238145604847004426819192887651705047830962415582700073050548942343217290666436635783117738108941446136987957775421806198029981225341770504281976352065166818159692587628369321630014202993956334965968424881475176378199629818636471556794735791712064845246400252293278179146220456001510876524759984862825774208142591389528949587611085471319538085723981458673245761524279242850753710580658376725744541168770563010811367377635452284883958845899083149217815293081977372991697601863476801661491798584618057751825724881407099479318184406350064528372264398541381670737299910165580429587663881279473747710186731684060968155287646226763822695967748712186753008772164928678887117780972577398504750223155296076160010065517932973403025758595895788395202890704672147277027616445553593528534003626401168046698541043425206995550063791415846915739782141581955176336575295523176800560381598218183786293715092740366707628621211637316046309265437160467197746233121287777009500642955146766213595093993760587673394712297204881128312906395817585256448843771605063404060389905591751336274885119575085469378991043950697434751248301087300247458411089579602192705037119113131095370599293405270510505271807317593090264676311151822321971613065268226127276823213291018425482524856274249407725825654195815983432400548149214583030102327646298242246408741097252433794602148468120336525152746219246133722194769197906403367342896019597831316192584563128996777951187724483763602126556369967862617051028578104350023779975475336286783281057684395108775083366929373277078857548188790997338897408528926166953811884345073875635760898560523189357158501974305007810203067335298313785086000176695743831932847915498709694617765855499157318011780091045111418365668046060157992688159263785136813667919526614217568614084110748000136480976024799117920173816574783195011160239021699609867736955429898471633893050010680000809772736623915198483358387682849688393123980416149148174452312230588723364775276322566761137118095897420904171410251475117871620803018283587210166737573321938022991459836486211735327513727940036095483038925641853862208757757522489292581368676481931425270634356378012831564257880398977229004185184091428763001543082214080269804157163566744348901193093157693431935461006795540014111235782278322625588874877327698985271446171943268107714318670072463635241674093969069890243808969459773709863016365620817916814117467097743711391294408133516398688775800349010744910740467010903333273349861948461806722958393577651548510797427938789823711949743866177588065199308487634305058494544596741287686137393127532141069992347180496486845353012369067900592849633260802786901744844775531378122985131851254464258460146335657109365158410990153976767814285109490682831652525639983989304507357608993632169485353359680558745661579768996437825784841527884443262983710667608425010980199760584631420819806512987730746327594981343008462034799845653697155320998866029596917388938469383529387928557029766753855817722486567489319964359899262306143885928328893503727123124739741645361710752480097270257419891251132777544294417431523893252017502851958134086624075191204830330951396176934452833956030888560555864772733784181034033675178658897747306730605353508692902014345400177812057609587111293943551216864338837836879046156730178023558562883883568248547151663225737193752333175118141026845990697084035899473948026616503511010905061874726921322376299553174289099451103453727399913631672380214048299145875054662761187754221458422052364382670720942208655787767329990272624108835664588757336657487974567681721035092271604187670611682355395182811799627871716778672800354180749657668747583961436432724856734844894946903945956696851856625193029353813542765925321616466333713099325849664969593489328477196736830868790712195143406541178388021791666292410483343223816184374229293892341051061248457838540207802577303801963914215568360986987396730395065698154887930849928697985873620174636319622398786196966194608279417943746624204958374807434738996741484333424476933515404190095825374062156679230398503782027816497381048078437456086698798545116467248069054621090499095159379533250142191431843310474006644680119647297008956465803360363993020427902224652643535664787221452649849353456839994290154935990113997304067619139369429461502363445105270002973901402859326923910411376433081485694030254199548908705140493798773206727107142692545562456574173481654886060000131002325523782412812511019512574218310978575995063458026303599402853555454447459274956027832030146256228880040180608364554066919429137242689844915099779077548374240404893047899954007926674960317758718868081995195960269737704043153999974670481696459513213516402751851591726888733578821117831691180354579306242974626146193274316209427973584902272148686166812457510783023100700166083963484626147487213523269767697401834970792740570181610450364652508602789145904992548607412974842018258100165330955913799415940702774917739011838342029706918745691561744293673613275755207557301545278791785868670937103717944064244325903914122968754841284924146652222734231431862487268339784870282413131601106547432423093154575353028162293020661955160327972770169917595902866641594430613839306385210787412949060195294750680825086384243295983117475526737118717556472944233689177425045408549872640280199262270358963855404974733686998276075483068010441683904433702750371445636699659243209704854911449927287944925027471599558415211178311484249664950541979245591862635230973291126165678686930771604787215319729915807238041492241392889103980045162471173671947786760261034121388603501306737604727237275282365173503177369689990118404836314284995889373344840712769224284308845790817568485873260457462543327363514144909805458282043786555747095722898749785706948879665502875956031640510586038046915122461193105161403548523756238537670970317398065262195079953850948488407213060843390644144046068721013869890207898696513890377626299400038416467237707420042243338878039611840907937037945850885495334644545617613182581134082674049024704464544115215468914244122478341322285463788006146759496498922609316591853570117833392120781694309434956698759075010199683708627614499947486600133600808499681720775572691542448574527477436732697661490225094966112116909828657838659060622251184343414606227770650376858095731021634966296353877134363119200267227302464449813858349051023877149631195455972020588279216216805655335289587625723278157413337713876702755977881021018540329980027219999712455208504430212613202631141898307094803790428453049079083726785318201284854300225323841031773702277953419938590734530462275245611575756299155071512272294044833692198532943220698476485230596777226871182505109908275091873968563194041459246256440953017730187342152571712701582033967380368261586974400945447090089389589582177241203035640030046873560853122144975216990005488467913021204612676860917369991196152539095078399895396963402776278299453407376383925756699182680496158269780547057923642195592993452454646372420543779099381089056249444292264725225994689258859446829787254667410989995175190834308809018362549819118078561474004117283614219899111160556403715230195738320564562835544781469303550869446298109939482061269448493554699257655365398904479007652719596608423920702867933242558134964959029050338327269878341308682133054924059181655731441132119254208138218294715026011254333054868018403157413231638366231757382144893821599960507211930341198012739020808515649319680946631393278917382767104964187747595211887711114810509633717765346713849990150040295192865163539560992359544054419671689835115073828660786374461968043578644741240160151361345343444494207110935670342546493623553239240233457023549239600016942222504794999329246275686357912927035251082855112382452626442596272361000345375166661708304131467482858702857592756244415635468241960125196324282172434569012729847232460577933215411619896692253027169904871392127795301951787979780186556895382767618666741338401999701753495962367428460679503757362089334575248575622072574490942317146131165755838672540960615360316501655249871219308504647308188721203027098233824704069215813712167670400739643499978413828008011744524236714550153388172284228302571080161946711658094004169158190236890820458861713148695297747613175073542593670680871732134944671921364526283684835487041330033619494879060303852347011699499566307107966636669106845741535759481270215013873486792338885762020950418114901352446004988805821106900773290952370374085935157107113564856161734558360972208267685240706199172573067857295045015254628669730156762539194888297821545212165645126193403666046668028547211459802397505737401621937908488498610473156859872392758235540217892203123875181229409512681253088582530853491599134246677212475264653697517372674592831281016785927652670185923196318212263733796835774881866715247882497183421977608944997252975876796499192267057782293922367189405443247415578223786494836741187619740482806615654725521483031207800899771341680942669851839819624358682850494707883143138651979034573032395020126913027007110384341142874938625389828028581341056494884391088626281817378963428652541418022219901622495353887721201165313782065825871153994837446740540511161577786754052658560099839353734235840171907400357086094579642721149384992628714731711207028266500212365889461258597447013196279816156351698605634814154183061628535418748430865934369626454455749153171165658855169930705567370257583005143838188881534275902831365195975533976595073963575503513886150183434787887727037191246560628061775754770798372322541264885109697769961528009772969139319870104807839863462893615526311909654877540766091860505429956859553651938628355386925401913491486809738194852517416599449974909801109013386817526888502718901191283716947406660328941119097640309334914858972867677335036829912906332446036820982538550191885130049647340605770271434280477974792724248749312748336770511410390301618715911414729949544787521348614945754913403266675718838709597134272066315403836298998192203573837210302608073337782144497580242530877056846248273700822358650844785607161706520363168110107026852789904971689258197186253907445328325214102431408172913816856174245980031719037012370680404649629028369800121124872814550421158767844925810915203393863678880927742997728881510637469595589630030640351643838061431713974878906292888152885994533559764207465740958968586509326207972264717961679379763413882223481070104160894300379219053726964291651668911689240524767062985372195542285074613856720743786558590391722542748897726380885822210195635364452139376609372244158318253891176942836698740096902523766034605033307270027923982731659074937239011314753989949115486781697655317907806824670318745728856214686118994721187180605511041031208035340547498758900632279774960885785029753792900324276400223514658109248855924608724135029125810601397228086751519515001866534613755790510793536483711885764753881179532573829070863314341380530703935942781884367420451181932386505032406787292997042136301417141847333917549387453484140841678512081118283033132476942241139570156763694002207600424176634881452179937293608895874664813333812302787822583280487330953056318516391234758651144099837959591254488028429154079469653109432612844226920250798568264397244587032798511916414863193374438353821865977287927306565800541061436944469844229435185168161061990830667880115483892257641110447034205849915681537002722882933621723486811606910512945951205570975146880453697125108199120309971294099482772684860471991428669472426094211855342471825418068791700570381631777515733527954179940040855870475191473490282214909058538663047330510440655165303728578112871418689399528520746199723896651624260175796559927995606591157432457883281281539839253649849952547974671162805405271257470848637474778127463412145476740669260475031261333098958492389657139052164540564604398232185558166704168394758300038099764529830229958613862662807029371153442068349303281757098363360535704575708314421871106936105457852464974041704387346059850521264311147311211053115414228696110081206378815685577336337911152048337015435281538819739383905201722174666754262736341448640196307524766353390800281086554437644678648270358497235896798916268104990412588970295136169165357033513809915453024921108419555952716786492084988532748749269941197264887501769916712552068751648269564489830281774571606902148504727138455190154864530722257163539977256613861077962756283336945230989480144045329482102894777832086504478573013888030640601196985868406518393263109817309818303185642009892017952176148621325245364919284945135261587023194937387990431999724672844077721744010060219025462089670029822156816440285060866079070607877692459000494965810899204886818745186592744467998656394121471845887813771608160854065637299520088831193756974339602906842078862766196610653552361262025536786186326519016100069619162331168103350457797670956488088199267595470130452934020556838439924859854267827389063977791980850727099591341835934775170613621530560218791808945054318822828928310866185504708064436882127456040897447112270011157320030498619986216527624508122814107817600282450467772754902803977878094588521067012678338085714327875945506897582311548947676526819254166707257541495337356967878171845539075577568127579823476796323637661999611355508867973745835693606047642748356365796020247301436035542436166544886203663214984035046629303337920251678674106911740518702912181321268572537870178959592900396108246109371201441740809070245297710778384589569307909231202461987165521856396201879183274655034414181241350452085923615000222870434711886090296212802280195133381892465738776124264818151810511514677417465233940004765491964797238562056639261124925054825437126686008826044365164515906535543506368073313400429835837835486780574192422666806790465605080593834858939704013186868418268300951146157539120459840511993291877524802052607946368460567237417823623171561156768924707799408434334587598721952863573358815541524098968492196537093400504715025516195035837797737752215933161381700026317869277393286628649387280348322481900432176304567180249499433581493425704102683942971305519254336676264745259379144196660330696713988761581665105088909219159251697382226120257967265316609819539015220946334050797924376827801013386871143182144131777689905197686273713258560761320494361857236152863742134236086712951696072155999510630305363282079575833033066980033858572038120170709617327454326211476460118860829229752912567837054255881139884084990100213795392584834501127381630523668804788852891419852612985918087406829971014759816011681342215830864044038195247824139944932256776052441241384018978001934155544699456296533515979915012228205128286998726932626579823534211870918565980595632919749482881448065177219736805915536440295818772113469396672987059596520168088048949555994925677029604808509056664703243560460570504288112436040998231702254298954176257178277611210578525834327797520694815602695106596174005126485501199696966254307447114666212144913393060327167585560654877664280503153581516630741088912526145807588812211488307080671771349285007493152026543186871015645948159786358656554631281471688875363779004892829534702552809360721539087638456409812088485545992637389186787632984600320332742294695759354578637644582229251046491521139690432077807599527300206062222922154008851594831955016439983105075010631265263125719738371131897923869034248765895614804947924762875576623203639164239799040946194311517090700097912115682173878491958813811807824171680848398831126746453219572511712590473368902154168452561043776073910652384351079588115053119142818381972931656387454114064354810356090800485409273395797979083452324579320918199488858210010294359191449203931970301503646998064673703507853178556485665738939968130526487470301197637280476694040400631240468329687313668139627781353999434164035198387604749938986570945292586910128338586159983518622690357523227794432783086156194959899466524147922849173725289977117849073420630545168144562921157313822887760941910209415124497979306621961083910755584424400749852175872612307421953964851009066734613831849582538788007703483987224610747522164805912050914834416673670506457052574687386962622640730949740700241729745399440685585880282862633075669919631508743773803416317450928120481779647938542180400955130282152732357679614434266814832867992085515572632104844068328238170272305471561827402326807422688972952773777481942818056446364279489005659828585511955157636800293023523413632446837078898609153743440750176789708958694421442660534709939733886160620709520030349033464578838029825825930882959962596310719179481070600016475210791627239107046491968162730476351237629257009450148592294564165825655482170393810961649116323844710212611940896120678313943242544151760605228461617070357531683176533397293498959674356791639425468825844645315634805717921406057013580956563379034336694495930670136480731696595812416264253846655849906703409919117842452311500134329362540450784013869777551862655651291143183701157749775049277762229487072626351726354462273108532862286983727626533257001665643730833258722011502240878616077331637416562199322146409653305407358328109786526164210353622163071287935383259488245721162116590190938871750962230248578296711200652419446492127757884549773389430250219253269978341574235465444710403161462975494720206124437025846365963952728017729872965189109898334062594056456327168468363293781984774213483417285957286716241938514230444548752978604551280529560824586799017960680287928739697327093230783213284514988194254232098764296265397397924605845905194412290026292374441155083255460766716893666951782717846115215796427968518909374209086260310793618130515810984332875671477706834075932476839056209356329187036932566366016982273098062534822204895632434376217252764862527691295898491076702400584590224362044120541698992516571976177486181211503796928385851561942357116779463068183743320985800210524874434174946458132265135295720668254850496393414219460574133769052766000946277840242965033887801151831463193893192549235937466511569687314705241331155868883822382017910636613590953047422377733809560585667473504891593933781518844623698857703169745046929824570436432549137791205328156934395942327680178088249217520189661246528178768977383623266807026545596759132277045780140004785568398703071796210012926567280117298191749893406810704576477393367454500108946693994801098717514753508709321979193888205934693614793964431529787686833673503357502038868666472500196158434938961606366273839001212586177350745507025673877121389528305151587236628760717609197749697397146648319241044062412888959122068119108939533486443602599200412513757306837694454828603150966185712492644681454428348924638242204090369333399653030759507804858001369758467962864496319318846725017460902116165215610733899930698085530039169696702884398269706092629313391299490419447910713908325905249275312069463144401426693637246114523336613010666982913583363095487330165906399844501386427649956902890423996555632210712389382969974805623423480912094589801121824487339194024135101641543985117299148878478535400066869639592403568481045462556545426454065727984225225286447988937173568778240636052193923609343311025373456221450828253053415033354614037067097646398124027083000558768735427335690616609616891772639897526563223757489408215250405185807772222740529071303736706195155219999234789406880835038679500245538382015796924718303756272776999474686504990783616701817977099428851405007102316650150167795769112752518433697088766505669064864995650021827126744570781590298532845831069897836201143385012284674048614554464003066818216439716386969624024982330774462028063480878672158324463632073785923631830435096985042059763565527067317751292111924999217481813985542691475245389141699631393085181260119629607635741707299192341718080970093898623056093644135900816866126003285755324364787184047868007980263761532861809165089893709927216606740591594065551105368951992806271959498844674356255920352207894785473936871059072850239114530095356232427708926039589873988091647691439187297820060567677942944480049340604624771623207764386568386826099920360930444951190040064265149638378611944963217313868296995043064534765581772011603997244780431049338541441439891836054689540124966166289182945848519063671853081173310396148456237277930026542750620982658403518578393692541133975262714641850506781583660923954838248549244101785636583184764986763905325414996203017402376452069184949658420548605967074623523267962735690297192504658365476346074930816405853235459083052902922406213159963946340378279361356509498446099306726546498366993508806494534516970112401286278853156758518772731308253007323640539637507288881014085933211996438879185280337610671820236816981298257291473722032573512603709733310028914699739010374360703908739100273385422291369114419178704405745184603954254481980044357850076256821610444425376970983705310140256197237322612330835621096034484225450696888099623451026086920770640482876051320153043965513865651350305201901929204989865545256492560273408979567712517223201424893716522250508707894860424877970045960466629595024814122696735934222803476165992678746187216056135988470397166502497672286665650481593541956045064830312321562102096368859089401769425497871195675127077915453793224549123755083344029801087128888092831578532766745256556462785775878980496687386351628269946135764804896652816109612916645578082129071458207487259977633020621044167459455242774386544333792921517775192177237147313589822908809422652967230510703084077629145042622095083018679227457556334992510856680053235625936986263070717801102363354470566095832564535314764158051501972264506401388453709351752083303568223077052680774156160375475186037887560145788380920953248200070580915133153987122489089186998700273132355654691906568403317896658949558627517193693526086625579054845076151547366555916295879989182141121962042137941621197560937386848075266493387795590505578938159516778892397799831792184963110169693366202002169950932120803509594884059249445986008940727478525215341645870721120366932778585387540396626565178867669188666919910388591816261807028738073980978490532031276417463790799180758004972148600189729569933386220100225113132323917347233302263521204610845951896939424091458354477460052137843202726574773372559747654961494706330719241819208160025835749276073207150977567867779951195935181799276480275590957453123365109129773925661642615466109691823508193837696008455426933000666416181904267518497074393501151826018871636246934350497188774998900236332054248136590951046107969151943887796130057166854112839894779399844046931533702190358076479995811903461291008646868315593310275950156821466857349342062718016215321522284082882747861122503866094938015705607209495928604887158389661030889225650453954939942585149540263284377406222209208140310982123624631580002323795299533158778426708140257352805375375757377312694496515027046914082217430823073800463745636085628914349803013696912849949497817094937660365255702119130357106611059457003849013186611189605187340972907964738796765032208805039522616402843031686814968092192022527473338432950825626236718801320887510328819933041935689511769635201965397212663206126738271926049249797598565914299909093645265921550063601560243524601357926826194913445484716139529045425958440587996866142403837725303754268793139930547138952416584520089171552176972666322756623073096789641078677650889111675655630479170862053858231663170460304421624548477359532055665078679144977756727130482728119775144855737306665687310011791868074782786672095835985941054536783134647960081775215297589612525699967584852129315982232062660515872735369272265417308742482578797676083131848979525242329659747233346202523785857240650800691003786784724409433532486824233000702526706730185074085647708956152837005137651272594918276579303942521396967727934808614995155370756672323386670122564096413283990835724227409318459433163453664645841378168382712139326632897385408621692849597197776219875221127387409368165857558597488748370687312950743424379216200908406564239650854138812228414953806009070455832245120246528920656195757065416977965294769724353053397665905870920896935034214676956940029024371242785639620509879133976312843760971977605200698637116186440285657233791059573769297396540111733911613118101886935797111639893083081683001575525348100311665156261261326458832816336291512328944514520763459001211290762973868362185073624713955274334370894050482680537967317052449239562812405305681133534234643504768817196351087426975703360770212508505652818571231807985369460319881884617640205825357249122621028819984745035820243502973466635424636199592883731121303015174316642999438594636033801125000327888539077036358682666093304383050843172501289739092144191245577075792298253892572679070750705254434985613838575270806897638692265154130626089086232478704228571327255378548992624712320920271018305276596129924802529981473436827584099247839973647477944027834709971260237581513211132995754527724246326246441737216793076273156307630231452958624839348989572976155728684071973303262174435935873950843157572967938827369927151688728587990212457747241478262282190744737268132436331850300825840146170034451090907105286231129418594511191561934277794373790560175723643461209233928114226377050557800986067550117394781093857495186045307073887693047637270507040765289536326895560934293840866624709321478642309959277542981182145993656546555924614196378225198049101479804017273046572942842714899583020780200930978459243592592192209382905768959049560963688734890848050009580500990640457396431517328765428880064490191536538864945396615511869677584780091585049077153545472028121563420033795635805670359911734200478276617846621214121833286656900125192239567566459537869605948560615296642931543587167544390349476029228890180909570552806645661260321281683143009197923041601691136069390679707262709296217945209272096546233274303142042482024564966876637271354341091611492296744109954158401351039852668218093560546735106568692555459273007511643465118621197562450796972599159544465606659985842500804636127973092171911663494837613090088444029977999046621521696285534130627527316477388462310280279879713195404574846740071646840071195720553594917120964592406499758249785293822337780311120321957078550128637293737789538206221173543205972646510753948586274976073543032352471257060608798352128335286410059873870793207870833506943401787393895534590897852635587910745642909693619291510824665512252946843212077943240550776438339741185424163157962101482209073310036331804665806476069823114063884105830082935214039959862181580027871548708940443338403486668807480642224448173232531377015851075144907091346419328393526614772910875729243376064636531590278010198285129379237686463572162981450873318772719076787201536945612960514491878214179694307625938182290416120105473448095771670453193590635020395520564680135336340937510642214324764539552896317090478689684799728594251373679210740918642456055599104139332062185084465141433610213226621857397028854281432016284713847775884606624140975580363586199716203495059850500653780713322823568546193824288123603578946417596282292722214584432118823127892566139527439317834117620546309801833285329110647444573441407282531172438132343137908592054086721060667575292670614369976171734074557981882120860302934460832490772514466413924014499156398067876107821073152266264554078396130235692329733054548001252799045564610508493875074443448130441347055259629292486644757234351317057639353047513731436609178803065191468143419483416296581218861831992164419566909937545706966542009110685299216997994633552137367367416131305988090152716457843530621942312435984907100343578844316193236884791089966508200780468471911404800338208946482299852075196555639366824131178948038544600835026577583193401165370023715270967416727581634146167388756798204987469921848091991589740521754978112201998406477960553890005771626483846698094391133618974731334874449728674491543180874175366375844118452781627623940611499438074759189160285067819136159157542476128852537309837598208543299731303640244250488353367156840701554232706790106196277670264342516396710923546907210905182336539526051984788686075629237640124159116140183691232579165249531173054537266185156145633172047064575169774050142040460605770906504360568982770715128874318958368721552980943356707393781372268218598016003198358453860346477678330192349777447725795247995262441802521108192324656385412105059910706784914246223195320344220798377683719157645388129825454578766280599755961523420107741430855405915588198918515080229035759814744813040041376829105889632423494857074392353953252768597387651968276583773905200461906091818251932874102667653424819343136090739180688558331775802429348623401766912285928879589851137834505631588769163985014175110335747320549473802534613112152300556311878070608350539208237622098627607614332775804309685301312232786546105179278042754451527325234090895912508957005747720874505991273658288510253417657437539570663608827751239960038908854116414378021276667131962678072871111885609383180721444855994720953427968914194327864569694558168030711321173921734744954429585413507010349680666307291727333705526074979150260349933201827792391830047007084600418016991337906942951634137763964099012570218138942757008629442376036108299671604171325616330614170280050920292545260931306605388409878274215121783266449025333176896217876230553506907516659504966296568574277203602672979421444740453057178864266416948196955385359354896355117647996168920590097145313148274674156278720181806456899710405998586990437077456918232543465140104706249110446542003143528767998163831099787989825164975296900522182740044333266812883833650376960580273596424527880233937053149317023432280449851206834694179540575845692215393667211267166737868745011776701351547490570216969637986956285382780621544245332888318037888054854214741735701974463089603513841358466099914133195308515320395702567613904950845621004290433393184865892269148952706653551626593294746183050732560524260856316518930723818330227011463312328431685415645412248529803510723016128573200584429322605978400238117331465713173621614367565280438921321242173101558232366887685582732642568741769842369810240893054482533578563611611742843050287138006317861629103136097834813124626423374934498741150122177139632900029715179336134502437442901631207892456044351005739933662341100924789401689657610285321315506814514381820760639166193241522532295276593906991182593856147742117187473342695639576198901358326331057642975567040979859096858055219414529057356332903870383263974372646166495530282558613841073927639234979720617876621192039693119631436627416121217047794492401901413604747572328131403150080236255461183289820472229398460881522930503380450968404241938490352015742390668020015807126052603928587303298171337752350571659834453671580655315759009587967193196335632163550447354425172174916492808839641974709297738641488231984228752645918560624074068330414327224890252325212191901491788020139942982673489399364152198510976461458364449165962407992314577827733162366125026673315018325763599248840893665966766766652234645849019926773657469223397771823106644250388580312900436595799161124332407103966817790263808487177427022979610977118601279947431431777876871513422903810769102494634003646874722490251997329366880116112336946028111962618240228418775863931119222081622553002170330506186909604931779034053254364585112618515173853030557888523055591986491144934373693094812567979172276962446307875053458737099856409662740454723047535356609812113873346151156605743114274740453442536376340993240991173815876235464775004767833871569938907656950594087167172504877211255470385580785175428481916453007933264224943046071158385773003840745405312459974840374098489526850746962870391518366901059483030338663619286736778795769530111364789347097278735787654706549214586928838195366923759592849186241516658467330475545887328182759243685569221514811666949435844054968642300624870041688048948185272566531923486540384833264084711815065102377754519574137996455502379795576529131290347802794906982561767285798215658783350090930436934777715072904954265279393923044168801301216887725675522129119668072472647490469046973263768170021676335445886605746770711535555410254063361734269366575865392957632813363441640021977240479838469992256882303056886079244476388722869972496087964820738652110202031678580112388031501085664795730961013080024906365759661293510657101041143171896866514769700273221196646052115387098005431207729583709848218519974631409068400865324205895670587272483786035493218540832119689808499907018362879805734966497886856425263731721091954225371222658547871587263610379590155043335055047241934978164386169474132201625321956864503440342530645521403226248140676530182621821408285294012042801758363641203017585475777048939784893763848802708209975501544477408311526871922264957675258285668810789703557088103778319594130441075336203960367242559543766853275742654047064245702184176304830246835085989819867491449349380658038451996699694485057179743055305632774614680321318720908580783750258215891752967365359714808262751933742073134342795154405340890061645771172361477460479707089230387766141826126718662308706741659449049366994737192491487538399948411184052610455921149955730592141063659533302979909508761761109527873218524564944561287953220885523967090896484394289770925809446273480101071706762127802705459742895237122030938662261955604178987839055922439635305686339760458703947321111229611148786812798492002048418097200615104682524616714951151490197514994444604849515551583946549188427006812732866919687518350899665324340900094954044930386043829356162008473736155083631956622592244470919579018088989929644259757056693922815760417560471428054258396785637839004812351582772956021920778634629367469434217866985563580401597571072929651986270587636797725432873257860637933501277540812396818225840454861720118610001693911653461084755105699898871233343936042175719387379659104055731869976481322659298237276156857351235197533329406041903412808472897317498194703198592430754504187158239968088008852132235418705762573068624079358485491753077017775818532046928022352015131137811681253362335186622463933414483382406171699502703331330839712848912166194312070353499584372641758913261020085574612750610529172604285473988665239940893124844474560619640249355940878034613831821291596979617668131522412350083967642006077909917738445897830106880453924430272915883751415862315224827461584918541691934563775626077729041341933861134259452435599262432256623593951593310458739347723984258763800796046400509752516155378780439759527654737319810973491336099057704467655269704924103231947775768767229125695283206247700302621795462141686676043979989073770070438990296914618442502839793381252125073058455529801985614700968893496181923693107405637041608987198117194291049819031942861161433478887674029245808803234993338384580606297342572455542315020677430907786156674682606820153799098682211260385219618324838532931648865956808616437923820855043255719434361529118646295014383212888057338107099844841230322428377790450322508792314373394432606169423489274088052478229594836795222047274927580111668225768556292462737749738852926105413686726615772221141889370731051672818871108207981177284696987555265935357688035073155141257196091101393917118637248501348738270257671062981075492131831920700419729393365273777591608020269866335314147313328557548640225347712946007454151652495838537076908844432038192099341299489871284583689756698274981322048857232391079071603576902068743801616852143507146713989363725077034667963893408817895009537074015245277275456088095497780604822064220057230980881006943420992168382690144274633340121286285538141593651724466700933993099433232825567519470342643770562485372240845710560054492298832528099974308209060131038022412736568351358872623205817223806339062144428589475092792478324327102542266560958155188014542207933124879369471424337420953051210572363413470624364442413901460711388945385335694970521077398434334356847795235714732627491700421138820821029739447287179468691494134548884050321245166257202277387537320812613372262568591957565188884483070313466229053214855557155315890386968861145156859870136699734423018259249254131013689932724587050168956108232920304685246071151494975869467454312480085900853000157942750609422617796381073162713180450267530808461049376796088612697720463675461149509302085937562965034287891034873903440648456262982249996131137706211739721459109230351319922547690945468780828389470987222041446814259241419884674380098078660153720510238745018925442919794586497119209284879203317009933005862021551587841456273300400945802913613699410063485235684437514418785704562238589050455117082118297478872489963022742951281815374089622835533976918189791974876698517790774219372744775667226630010957027600714102992807540232376652416700770820602944502871912887144357966153497899112573071985942466926388306795314525108509669184249409272837388703887872774564584031894554863111604147992034061268582383673303751407377569936098316945672748651489524728853247151925728068129233004997473066137293407395307508992457709355658137654071170377315118623256779295601915846474650794590192583400723638693681549481256459545848667163536037675753063177267955647414921632215606992182651550455704095425166410611680885680205156463735202340004213393830014686062141400904961916464830883304820152258279413122063861261733572481612644196833927768215835787473120270354764791215221446050821759695620911716330527825018360119425365328809105497119739708286830029731702246173391355653697898554845411709672558655053368762189387156638863128592832338671276793980455554827169354484485765086019900865349340670777981318067056940180988771626589583088020157388226866389235545339221626080755010016284191763871870188008427150841371486925130941814623561541955143377538556580627467781497446755367347651681696836361857131375629869532583305429026456352869120580063234294021609105525976665594809621166312081530318115673755475464665659602430336267606688337320831508680551682724435007130642458222237495115294780992560062981326170799272212644080921220382096262064815004817114351485461702384216380146675929411864748607355630051269193448745179845075863020254355202145434188259927487378371628995161284139159865670660495347255663968067886806898251139803356001232910248487212527214822170008745819500931233840660093137491535045832869078892262217994908912462641359686136740280857238506236173854045088561462892043062312221704873377293987225510739713111020813372398340701755724126900226725799289327919096013361947335370255567922584670323095589980549644883506755827779590823152767714242116978052783155776685111753751727194014893394349302303075885141071845028905028884087902699738280108080169776816594906146533472680429669320861868993934880468606447698374741398215992604025402932057152548991967056336204123119079175612044434323419647948558434071022514970933087556642201696945921813325812782330893372241559188365437335627961595226419735954203580539001933807190318858602938339249364636237717804946740938207508167276692256327415409390795633857614319526615685662715108296894887627622574274600381915616615647031101213727775108698096084734819116792320755475668911908892005907898513737346722188223571552493903126771017024998543954177167759078402874126372764537071565232011818727173479245740240438753774602696094115111239496615715129794406570880662337837602705715822926967933386550550863361103730166337434749141830223059042109435069948576041630160541452945531721738837125655407437548782015480745042491035690175509229255561145530693149921881476102042263585578854944315919426140121265498225623429884258006742811986444650732469998273787590704846910926040879759061534394811994761464318086809283840210049268015317739960950715865850183018346016785231347587321643747451794103140517240825170636102082064608817110296444038364922948593516094186874663057123983727353949549880442873662643656604976006670769301241542809612195307032492548859018207110526804909774335274586964868815581022493703836347970040981152613527225340063019101420510051106395215975585715795407670802451099254178532083645078492032549592039488277309677226899578474009210361906417028067979386190760709685033739473909107929921229633829727807369992584816351709356067161431515065271880664576916208322152762507209233854917962572466421139154689094764732889219916099703331482033952887641874882247520693642664661223017247487365415803594010250428065020286795713508871062504288639929594162140635634496369997253970751014719983436056144535644083143965046598012928355456868568042360474525318657828295198983240240219129470329865963054357596840435867211266647310170386272446977272979749101358952304347011045589442832703559407968219702142019524218518325667125851795256293569872008172307529935315731801135115995291258459558802612966972618550420979400350433936175653306456549592467708904852745179547385446286876643579889454143076489927562443365319546677721149015741995583351018234691408482752388159618135454168809414380883847271091584761297566059154415232641480883126350675416731574448852039646498712858231750968802355436023468632044576825503532032324171669133987582321208098199525473456437078422510162396892713950036504528175112659140207054079576010250059201122030251901390146425675134633798650764537789232653322804769632530250905559308459728705354896187333981512617785467887994924085284835029070381870979477174330634873166945983865198529494354305191410600297918311637013662548281333578790881290629373613368114210086276114028257812973788559371576317554555404410740811180587768694471951291158442129090660550002583698803752981058101305041920934299221666720226870530289214107295289263432415528320443616353852265336220114357221166251470156332624834506048443080303662765100623381108716260913601259260686299064766023752295065679512321100701195353276889714877877699167268036720137309992671577400632017504887722824010370260793955588387620009010609827348723434634079062389763013964114300879990903731644105373003125362983729839229406112232586422707104465537079064069087537941889147550209353408523320996087887604958725004194772034254409652440212185921628279006425437725106455861081251617677221714140337724660911535712647467702334740688789376568530911633538384179260741130630642995742784287337181841593148365727905451471635689489766245287682621264523972729737943817311213198593418663615259430423756891102279027472042300815631861256335705033363855775667905085687518152344138244920081601051887861165020905565985421539799728836451460668321880928882802049846495533867920238447758298385243826293128431033531294189026855210754857284631050161311021141445191749921877152007948582542971145594496673070622252473946745271949644374182801790027915972759796092453818618711449972809459085850095947744681460918768278666633221799366103838896514044182545201293852488684721822628462503698154911297187300978495377280084771738446598722400270257710158476602943110341381184803842870640671333943419859873226287818617353987041489699287848148164086097395280170404342745768303651637089123377454875010202204052637461575186738299827054259934156226376166108370928973309179920273363007667956657230166449247920975984220545036045922642086263686083004655734659899019145162916444928918780110241897565114946140227473407807534911781323965699474833818195403207041605831764620172870144687770029675521789770193226282039959620584916510913901424131258009991138073899725727191829690068729290161676527559961803676623975898773006862926561286118525135633613969727931585597065602588100343679667550937157470001258999876772449816353400466900897061018760649223814710442469630453531366578446650692711170569323678796806498661019566583255833482313903270208806306769811425928022903289398655837812096911874725298868912659416883481486674952498294172479797012980045839275322854593404862739912829241217925201594988863921636596678629953317454262101098058267621089872633020712857612850353713326669529601403750700369283533459308185942638172230603568132099039244495418057003646638425876113966107970988099347949118102132632315293309221609448296149160041092763835117085753482458708858954834159400688852212141850417485645677877660938912340292492760057788269012323519515209314001812131727772708096942659244391158787405485967065905960360412346223749058415959373737112937794186091469836788176314914614513088680307276201922624578889029825754986112571856606064984818095825669269943986341588009920495815435444617465619693907278700909084408856774918169383310230912994570579591450325548779299484456705085731513045676688855216424539657681375025023573802889439831107575463097348551027782975091652106896187835474178703414685302481550797278645669616336522628789351876543227043882840254954079289024266889200773176913634124656769432963776157465211419413574118910629596616382207033833619058394652222231345051605249436297872049224075171818262329320982179619640596561614314000404045384584021708338377913988105068471688292167702799245011993955157278171473106509226508554456129951767438508716711316211002916287738586100742517576422005042516653798893019371655777539411691918933104374867692555266578155486416490365642009156986911514630700917010487045094016624975552368897758943254203282091665715136879009026952727217685569747624618907696301717000532024601144429345397195497574256024777215718573377448834032869243542664409155707261528638517590566125182071552420841675584773498493719144553792914665560055428178992636303252165427080677197593233958299005558048735986980940792838564248881944099735364668408767692117018704272003147013818146794670993680274600338747401630091673265942773921644794016824152335775797987126287258640885358620875305678968159713468839138042116709841430979291854350683835426706282845435250191656950813428432775828873316866201186096192550102160309106790098791740134179954396166369520880889093833356492399908718310521888407423467081943053015334668535174297494091860136929310222029233742666551017520729314994677236861670953967577173619783789700878429310061907411574187403353968384734452208084789217480596650946273651742975425446992328053971778531037612934054039294141591123251113592863643234652059403714367186098112257621079430283123632237380648253474074877964411544496672667048032390425110924654155661815505010839664783304771888154010070991550189139219420294903236795534320836519916158412931523935622950713949263999344566314982357442148112153164713702574954233567280065029822784423091043458811854167086491960423234900610717308984022716105456681206441878286430742666269898449104502197042702086288328648752395951986440887587850679411527770671441798325582321196985875885650852086811818045995634929370790058730761375555278935777029862562199586013172222182629174322589258973487847472388684007864623426483986017080008813408822528475866777604265788756323302173077266468087714501111353472062518668436819753990513526073568743073933792356991871533703475235178255947462408383985664069463837683550315821740607221420088501109627575641013162427846904172736607110829923375972636033594412315611828598581431167427577712405158640356011411599850657523879191727371755655035608685475185661758733175098904261433392928275158714926071069281580474622494611166276330995343417613063365099231718156689693717194385953765028884847969056635386045342645034824647776128065589899342160207160364622479379694401986191088217006494414127976650103368680061293952133763040798275141910679542048730671588338163284253314535708818275214740910674879077948251938798551243613092222712544246119739445462864859847348037955749667293288268334153071586350420122830720319313263803920529656169452023263124204960870036189039048593320379442453503197133928366783484869621476409499897678594089592394408075873449193979813905487001321714804584408949520786984969204860960283237629005841318461940017891399744645057858805540706834865005578483742751968127269074342355393679133068398717745871216791100769838418383569145047698500592339180098554677696842561477732834462938596378998274832622616046437616692402262906181684583186975520512340082317272930245619684899657105703904533814974498156737180400403890553527959891635065337130561609666339039074134695432164295326055065744281117601441428420165415718410426180233702580176747958037095411278599710370140543534093097562738138344265332064582830123124197080788685502260949150577076172336486195237483796655523700005049604920525338022096579922313989281841086345950056871081095122121529780733648289301861831483587247034000115444398915686457212905550781023026279623714146135947143232960767767653893949891310429297201710887001338575894845176832196311063878945542491117409422754694059669843285546247941888508513000199659734445241770970759841368612532992177954424646383443140144320915308665840548593159105190238546658424719880343064310067510808791003269902757250037502187291387104628083606124145059626337648233514899683533062297114866938381324049146811463064596684137487527109370370735186422244130707408369878546435628991704673816389069186587347557985708183888934336896562168127741745122721679739995390469141776939216265673945532518086024224176531557541133301399405628347094292681826423918717307562356234437884086269628972788947207261866614693250618273797918641856711609343979247421901603765802370089188174111691618011055316532809547809965862315865243691602833629127618140343399528160497191471158822497119414791456679066065696008726011968376316690224725688737928732859265609930996753175469144363916885286976438252371216948469658493435218164373944257442891136687881703091009873543285305953889051789917352703529426195098549007622990775085601395499017121399130890508293054880007275243490140368416373637949098966251043109828389054801374345361119015420813284015281688403390218633546475631279642653861951959180934809089104920372906813052583293372359537618219867361409646865586353941869352093752445399570766633093570691677402919295879096441142792372765920686247587448459248882487578553428468925838094316589408812436171893593513344723367933360120211378019182978119259335291707733460808449892578672082652496910548869699416629621688717401224641061601301674565064650560654625721681037221699477531934649145112841469505711783200038757351344334198856069896676335149176591173908868755053256570715771042754942701100165946209338739293432978638778374654422137534901964193046661668957827256075858313036628552932490444465059682623081728388032675037113700142097576430879861750396662497236370054399553149609796573029277835273679173163866188002593949714985651333816766720101535758580116027814952459384758061115359365425708289052473750784207875622287299756713187947897298876053173415893120474669762979431673066920116086916812073531491810637440967514284552453997817262816290615500678471662938045155242847235566645038702007383940755090499969033016923409438244804418680394011570558147104534436923511469195027064695599337131451107798317113676378642478604522395450233084870717049044864345240677427616177659142816369958890211777952889377515141032879311546394558249809178053975151066336292182892662384727626554939016969208207856891692634888438581488663797122074208702153133544546719670063253261148040958904912163609620221070051472529513739356021507821236473529981984826830815684980087416254949895808606153125849304294943744521313396051061165971282969829324718736692965831631058069470854563252708933168774970006909041702087280189094438411590996228728831454230910281354808622274867939036038257356772755348661196090475080859960268548842873321959113786961754358925292889548238897732387848303495857728462431209703251383865293657723674511892458304115962163384186891132606189050395274479863306767273470610396836812150990479841944158070610145873637855704010757067370826723478566330033049137506842949130735677321496408717162385796389550409366938575241200354690455787017914431971053089672532738390082924134333275484674556318202167210759609921181078064919449780903665539427458225446651235914002128137781531673115566513814848344346516658646790888136628213778385680823075246468735317900954472341465671893909664868757380624869580191274092608465775075385873916296798897960188001399681693774563962533598705343724412182428502913748055889767645011361063595057097630819941111702536604538272664685650802438331780165922153496388248109696207456878124051062039825698654186919189958337834009407660221600770171888939473988972651030673985935629501757317216721226227271815773353505735310781260622637550948675317251854804901682307606903923666196425100563541572064298164725472488475698146538957058277726450123160753061583122865449734155717594184198000421944855993762859048779641501531734713985255190830600258847764961705883544398373375471162482065331365186578213226983841168615121785345266912737044600164072453079708497415956083170500352715696535248375656674520066552761341006096527001414541541122489039403249051221790988546988681570610932083471659156963718489909870906239890161993408021957304957167353974522894792755507068984587509505821498349394675933552298231107330063097903655417026777399098028256367771770386876443620171127516351069658269688901577975109324156224269765241626669637058661051613693008038139635176580378596183682519756764377902553466780655166310547235968788524683146430120154453393760541566759369804032884421564478672362356866633147721864899716557823031967182394518654043686880715508328889275374292830866817132698633366831401066321513972067363928967519776634047595232650570238335124405824196911361794980303070105374968089481732825220648679009637409435867349025103794376240393363605862170151660595471040915760019994189629253780878879835777217556540992315515084710118854770569761289691668178299256682830598786131578854636142752968550976389976447762180379137927026814000899724901170702456835927545117647415196365921073700272840688218081870649426351681348678687568146928549288761434360904453751305417859648743864248689264130689094911493330360317061709371460674186106807515569619408086320483541978629530276500685104485492852742637408155498251191050166960680710789964686039183533887943369842593910500968028169926482874127566879023615417826053649255565887017717194519760251651206511856721375031179241496749433650786650149380077944582488048334709262185338766398627055259725514854796843756575417536683958602142463540066934697616222783614007835041067361395008300955054876741162088649690868311660891631507731628000727836068369160929728571388284858018184603304000798201553393792763300633087731809396928337109561685808633103952290948897887719213518298234094310997284644736460103502689892764219209065329931373528124741769053573614999960964587847699298322969088819597181446184608486043890298627073634849439203718770518219826973203509452973350728714257042999829528643353502016097157788434993463712925254546790034122629164192481963232691496317148091486853205690093421850962573604975007804275897167967704656558978952009102566134129705345364546370938909913052676667008026943268429250456158243623508030950247229659637767002115293892484713881605226534073919450905256539849094202826711944132397688708119040981249124684295159875893865535690640799542650939351380507136855981157529240342130107285340872333923259893719462268037905938106123783169855031338933271426270632448230850270675693570185383235070890979591508385078527292549482358715007774066122092164972310662966344240415366432559263533779026488151436909346485081497257918626196407042160018050378810244438074940488829100976194426962196061913531979111446543155340243584829588669182497501942552615328316038036950440090900126076042046555253170070125002997020698915104854450715777070454190805837574160457576675794992082397322996382517553627984765464326740744672466210208933141940518811402244190304011876308467236579341775294127777547635326605305464953665988655792907868938713144878225266285764828311205009260624372255186030688328537808436786896028582359797106608783824044734159560363339467771481109571025959793904756573922422744453415176491717434418587669915157439232506743079287608913812915609513554018564633781811303939350860238103016008001817228180578587322552368081565451715431461602926143986325964089456806666284236618334931817260997037874434222192161133327152864825082850693782655028441509491345841997052259675467697008692042896894938025388298661414250719342389741131320118051961024759892517187288698884542452134153696545921493769561857420786937170090187626492562311620943425737262100906569813446766760981724584758503012976020918636014794962701121266267876949392088642373191425697500432419755959111012137224598636677677196553142875666721602720218055684329870052053189636653930375379328377250131176488232433549099356452082915610603016024860608145610453316009442743848111688299825553492190345184534267337793189012721583440053349941101684161600563040451531684358953448078196852369347638277440326703130901007620071608304139324650026074988626404143397131514995065537974569316692137969424125353413335696555634729174122272829582876054167914311884710704760321644606597631706710997756296678612692244405205599201805536384546475464599670737240165642040291855493085555542680427022706518897525644222455471867584806012540624569368397135839059064145038974430752949765446706641633488098794768776977920509406482622912643874061843446478937156077631873899025877727729445310183418236575788001887259039169443062553204910588182936841310236764569685333858802860793360600599542930279988692370632438927167254289710564615533759821232954036593200711958290268754599440540468768028228472630013799273153758405935632867866342148211335997349254879706759136836044035943801249968224267462470667677668863116042701967224159410924645585929841820533533639001133296834540801060779731780978649227151396626325461857853696687555729386357111332712813697769680081833805417983499166468401012917280934036703198016488868032721698503909317495539110028544307875883311736102925015641405175830930714888960462226758471486504752626655671145665200318983373743968335244455549026273962152891002629127878355635419598109217759076442891793881515026169158252061709192302189258974977120594933291746731944455356280722983332841960001711914755399104948011036733350768856598378633147532989755597918021876917911829011216683644796347985804900286911960796938878612803366426799462873468373962420942087993271109103387661865385049807128601303618286635173736083078312668519187619941231518365016424156321400244256781720606745637183339016597758181183870253369691847499115028399406513794824573541279944459002216685387576206165056264343568628100122508295446410033917642516894067466734836283895715128212653692082528738101251716183133576195217285682594105307583983672803416471280731726626723617173896422608398361586704130325585473902998600911191407208558839601428103842222943494778599964185976818919412859000333943087732935414852159543812228164390370900521695192555564245016615774671286946314990385141464997934600608705991552573227389939126263429969181984508551433765885837221006616361223803925270289898769876292725487213263712372449408804200957188413431011862032021539286227110559457023120538294441982450909846831962916677519734181340847764828969645807493418101214458362759996566078775528245888400698871316089391127083970124954647285011942884741128339777064186325963887165519780005799255994871303151513310535135496214501985772205276165150713650727530089777165019695064661930672159650016171735122229533414867235455761590837777171115268773543315517524479540014474669574269288046620935732438143416664283202309471081718265105336198133987194805037537174981171878531042538397617673765902499694368694290513661299875776309402036864372858551083302302509823330800360946496608760546698920069323053771751180602896226035233094657325631032843018815106208048868617747672765586718312451066101775384130439685175707680752599611930653520743383693515339791457330193908714497771071076923576643417228766914574879929827583391037974657004934835485394654746467218884430406772825067093883597317891133920908306406271296139406298699243675816079992568143181502018194716427745847883726988393996231065651913158597998178469434491072871205183675394092822062234501378712576694447223320008903140742275974800680337202598505536972403084557824435134593480756068455557908788406461299637371153539366458503076978440674937506398675526396372142276364412628429252444187828607900235358321694529666283668345392276848767554639525678388173328858386190367676681052252295039278950622861354155583276527948448686716584847525495437790645962833934430005399296540118737284641205271372176231637765977661736760427770636733193160516464964566123057295865389028150566685549258278219075805077309078365499981836840775467571054871320629035452037616869697035072337189362746343569696842993529374615719760718126702552949037779495998693410174857880012428457032363417550422214907847755724596901005639873529537414909449998917113192294107318248329664018590257544311478471149905427994303327251725883909141380017767890054497490006380514176369987211074544080749913641764281870630690607880625518026411507798076759704948788725711853957830529252187659180750771635093875197373879380780461685727133363418414674135647869434673801140486914167793015382075926957495480234050475745982065248698536811249945052195427374797391416887545382631517371215495787290145254432618407709883041981119020298051437288100734648033000694906539460829940684558033064598444455156460041313887882455677874418980264440312735862740994524488098572081457815817902000411387869501459252053243533609377108790759822138032349840673789393021948412376901065477209574745509168381589911839840884897289569078250976725245305304317071930359389216977931061840334846150318225348946990625998942523800190373665316386645356517425562329320637489059334880454601965139512470284002500125326982618306092318527781259078137848516350804500358731814215934092612120290033461389038987574140780671711195790643240858712855549863456473069233833195397519197742148550341611049548860683940712536685080701269148858879446657630095332584546712826963209544517838737689307611525426763588735985708727822068609461862828346546443975319786100037746297637066110590632013585065623292963335214693655094204442361013282718789952064551157645268570775570512163865938701769344802246038038262423244333302874409328687080154247459378255073447098337633537941831120076662705490917877004690557242533443329549195905527796375849197855148982388100467671929571451437956017832356830500085701244196449279196933724019441143679389131671438616479509924635127614664456246725091560317642547597167233342873603211391226618839893239012354931891111066424420482178397348707258295080830721118054854703483455723386205143663662374906558984918889346047840708940718259716964894721560037940373680291347679006489820342518331138594049549577113839744955654396277260439824758628205469537608135506448486756475405378400217077970400275826753580182914091177428915722089326962640225227149180445216749357141309458817814696803707690442270265629864197169126314332811560100682776335564721530325191266050276721133315027873222654032458282850218142723491573492052112920803212406104112664295536296503834248297748017574496193141002243226265531386689398836725471986533324921512438337046891079242076629600435164126766073543610626638210847070893814191611985062190572972818814284475711703403128758371916633185684765154648115748202413750288826458452363115244594980625666027198455132198777316165235723726074174860588955297787493195610397455075549299211148532482220554801933058942451508302172408189674291134067117797010517387165072014697168930705901244218341553629064139062595914508393344477216620134523902858151190037216147415121471733950262659319442156985064855260530452804106131793359240437932145654119979529275331640202845117034568430644359290330570349060776202666826577460164630500738734149044565514025334770965348440837758697144385582342978445740302269554415469835154102263111206057936816267561271551343599093224830775433399430460218542270908406630482047746080158403185226005276937591430503965557883879509022977348006301280820407566766107956337028610553096027295521880202906832459565281584209184110002843803201677606118922464952001210047552510999183373202779001303454455555018172862682840687566226930338524945796345105061128668272119362140847002133975496342743838966324583365645465371946917300568557334255102769871838548642414014258637743897356726018010283271243617254339906513887065284359487045363455574223304816047367960031478175680203084073927588833505704570867004413993718054322938354625049926898448712687311762604525427740840396531394649304172704385384236337655621019583437169369480718836280334929694739542935938231333844063729707306143303990414517753483923867857801812583959079426281008323531498330605090884974926629550275554829803485742960326682076128575495251765683792389188983130581970189666259018852169336049642991076368723480939786997458289312164456911760189677386450591182670818574742676971503886224576144318413855937596893438718805651923096292942757928842268301422526349465717477356787263686355749330477060578299664032791006570707781723862496544781762008800573609444974972136560754497459846457410341192381196680818205680790423198441842220848552610494095101325366475817073306953451535867022487791440719657395812922545269619419649063490585906671444125861580286488133137843008408411949299989246885799217808830659287702718905501228137601420429286128725030177870650916949156704323575884179191863253185933188632784297127567632931831832143859476964210857262579804227931578934960422707386058769573210545422309413135385436862184438635749778422389142910600052031121785262198728790214970381900808865500102287740240803844788725892490190085673065990459680270726247086188281369375741470270179116186593286434873691472342975140582457636536797313931514911975689947292221130269513405788851233645311478630186828805853498626129489651212767701235901378573524978358381848161325909619860064868994202669591095074439640789858226904878940548086523933230289240666444789364867695203890495191570968568580904484613715986105425828597115202345487096716399854247363196944777916439511158870462733010984945945254913739631314179122393623118203419154229947928612164656310728816120570749306093005089363560601023498266116575013852874439997148374357709449695075603981053546842642919880707309129192596873666994201026189664564569935521176933743007062217073862733802501664330393095378099192075942062216383711605653120509252465078618206325711183596212202186258526425140328758193599330137113680521683650531244697276268801329182997602607302768944219959261860822969559748787597272555648481329039725957450659756876101324714707822992540882151249074439885354330061916235767630146025061251040528776294423967342415989608987385484551104189879224809769630491897416322560131841893287887967483707563656025048348088007383354348592602176142440316550619516582534724650887769116293172317055876375077436810090591947915514619856104349475239245596818408583306396488069587530771453502784593540734457591148636577541640693081361502046618307025155314922464502725531670633645526064502846353915646650678837797694414627382514558427410211959600920668849125242710531644500737648176628417277336079051072857632861406063632881230632818936046006345461052681559224185441975239785286148762597344250862621674538516750062897576478731214899773428651990956825026671132051248379662856878227315661707282549178219930989324508958435355057621199285172083398244668000808852727758883135337717111052839049560229215800820944875174292547309653775815338550684121480889215472204129771227898299879466286057652039326854781248809265414813544757457370975338234165860696784091742956326420846216436173499766950561288343060168968170391635976624732150991217586980409070597029937188668712190832761446449340716449688959757584104023797181652118953294211856206148909455321210130408306614178746325518657686859858469933737088465018300425577910971402262568801300722211213327340486954877920739714922449211366561936959466651171209538604684345258190657467071275466012601228953708647497443677676852628791697829892393456814254224638436335360454673205328426937261236910019354881926496699603633005905214316009062124972940068475548436173923882136108743535277492970683963309840832038966286426982875536689564546948477145686320068338838834857462497453890253244824822237174446633645802290398891431795486084028859376675163343007065068427772874980217621892949241391636104635084642263743499723050351317421021843358302637632461733246919836850992893497612435485444880818424018180864261067138492147441356257011379919911361813059718568926943384702821635180078147133104379925089788940598367604770530014392459154084226976910225786078677242070769526720060338382663183740450475186546547336782239110685664914248018347844732887585046516921395818688112877143138688939328602980476606368358241640722087126116645848468437199270292301848671711941219480877069956918728772101033508025152415430054496732771578594081728379222368432666875883573092311588620680900209134404869297102783748161042654302131149693022954670221274842995213119871820825155199105255272103753050610618780743264556697888580624832147286064145600434135780505783780974777599135543940435675887429077086619989812506354554757698140761387179026673960844367137662666688275290285130628146879387031678777524300158224125256480983357778590944631423881071344937188965702537961482188942368399014520233517846882421250829351625026805304714557944231343254495221658572651787387585954520992146433099251669263139273661867729234276261497434060868950733012817769293490067342556041061757981549324711627751941107635109579499657451031944444510261834584673792911975268847199919757080608606635152116435455414842615318548598042224346494921490299048971416103486280776314595377800514690247047200121768647540889232140669494024715805766376575963236859031821487765344955061738783561159107284193812096345641743938557506994300645233150408875593129698943040804967785317963423394403334096453376118347244727484584353564756907424814717544734052604511671404812916707389294147024000950478713428855444452378554335719371758566584831702418820951828838368518109559297087720761092005147877730292676968279385621560317327506213372569092833587611772663737070694803722843838608354752874564931258206302168923959234763530266308734049142706078270800841653501324875814145566281318003875950278048510558223966533829345661074272802809604791270772808502728460148522570304309913300608407669249254249537852340259505896329260620277149412315598327282829249953712256547475631849827538087139439677938883214922887045828537105229362783447123082486546626659899210987735449281748472904340615241561793733077724521469725495028338309555223536755869291881749334287408095438650097366503120268436914359591648847038370859767993738033255483631599966109619777325945069139208936919014867528732266111583312919558493993579558653286578684751248195729974076270067022028456036686727859037712790113356257017889482401319715594324602169939856583167198411412269845264216755848831687930160038464731458656135857420222063861819434004313968668625454915763312939512915329887305394690014764187267377166131184017112368199440413406232250273010891130409420973206508227733793553755673340203650895201200025655427542777783615799775377877319958798888361743578988731911388795225157691806705865160113761402458434776534741002196980682430081577493468796770718213329202466922197410998347305635106219398088999748673084964130991841281305659021903505326638920320926999432468555798046267533198408864402910064863491553483220294692397667139002122337272382090595528506114986487007667794965849608928683467149058345763069673232143209456785747562809383656622317890862721172686802318004661694313961442866570974522807767349207789068886608839248845553249655952933231033839891626159156898744344510994431845887624442058480521589146299273140936531782735265375324211395586057859667570811378707554739178978042952315362535900431981258411843454225654746368069367418354496799385213425730942624997176236726505170064651902499287063235130057364288508039786804480214858954404796044121342494156306059859658875860801946486644769526031319018415679577526687043723590149076879796159534084579113277921925426621998525479306665589602139100670928903418100985133577084225153508262188604691265603061880309662656121889847929190301630305527320701303113757180598395563932035446028701351817879952559978751830478450432277902666848272540669557179995913459629775092055587640741523897186270564478206460113565600769214122110316383765403137500678391215429165312562423921745904424327473811803070870713450006028357182019237835622650320292970249795075085896276858504165923800851208586232352155359134506744678708929353400999604486237556237428592000889443675559079997981294776644185999670180792324999081885991424543989483352763906662331540830881085162841792865954519108264363815138438265879549414186010170428047696171421540595418580494752801821354363075474440827384437168952487624293312179177767567555054330573917515952240818986549679862540099879038154111053469511263205514468780837127386709821058345810756602376617929030773904979511660789239515388457303011467280800666236950161641039038624458804097922852306716808771867895209961058540515059428912577005100135008393587682820044291592837530033758097862655603698026775065764185532698517475976271749969134112551377548073809835775200016050776692877160302295006915539182483361347665720782576773333263194711280150369570917782489150057215963485337218310435627875208739275096945809887058286408920212957870145918616337811700803648036861391562263219738612101591270648503301973739837889477927790437581054161906845156072892787212202693769717721333711614969193592558389198369884470052387161125473162245317113975747738285055241877709704836454722062943423550158277708868545186522147254780674380211214985409904061926016460086008161827841994201195488112805599444308091743955047534117123263949170146298846077945617233456260537741453260493365288324117409481670396642379431001874266134685577519953240029822554146620268759664305467731582083352652776493758340226031215098166168642761467077689169031123577042582251662041642533833868531855217956640930812621581826609350682534930998743603224132721899872766160744474514546550739335373152817519016212527648407999570731458010733895057790101662302340351153466047425027682440237257274564146460765157191824414730689313819180002965893385341629077698726379894363028712148333164656482110322306725050351675123925346156891759721016132500122534588806079356558621700225556251528489860625972559435000968390537934637275735663739478153943127395106335015205209210059381887193513776776714259009921240161501749500266541576962369864132395446000701417937680490144587383026033880997022726271427100175055276399335968947096694872382297069948461158826880983464362225381963581437116944455653440393273734178710542265962669501481613061215843109627239258670699681394139535731887935102247522695121744933179678876988516454997334467594604239231509677307065280605458168055752313705901724108808224458041568349149687517787985137316477624116709211171481665666504538541323447062026043393032286044418102544025728553689991346606194124649627522744267905841444497261569065319480504665625760115387934468235563229649438537920305825502905146360052946503439187780631695053909118559387559843253257471095218828138786051268336933428495722399638587131875282349794768362400168999793890871271525782707282553844644802592092964592076559427256903351149900272525058770813007785410821316201790577230989386404494246350279382020647995421104022092216842661602484038491147583907950261577914705259492850662646940969848127323937330534779207722204043689435128656435395240527161635348893118914195524563125359964820757981182946590974183860508665986545018034788259380320891357135770371270307978660075980662539247496414390573466021640962622181209652428788659436771687097969320541159455528671537170087850360511780036585726785166349147839527763475766360651370783075668738413689071543047712331001762699992334886701262294987995550967745841058350155383889466991746349820660433561208187522240013626292057968643914531157206398484178985555327263508585575020561440789804384968737665841146142649521071554050306675951529273840476702217793118110370363531639283027757260194445472476964340163557189202457596883546145524687896946985503655789580211495196004635963761390442000116421272129939225284072414909914542583954585728040100834637372102566583945284201092862060499642353889850908497111864213551246926466108264286203335969084402675203860191809692330834318239739811176648462174551340100832575197761656527504436966533867109134235358419568892633355405152146096901830842856631862592414758632999408363291200949768567054062992830665746044831829146215017067403327009310519484175447628030039957741261110908446834809754565535875702782462943053672705521929401399551242982798240279729527089747701182439072739921342224248914236624425011331360618375573077792850522913167201286028778308110132101581748819962338171876921685574506287480833816591678668506121055025736326600958800186780667690998295598575449916418230983935842486592293468308160362140994388045016487531241000445825590406638310383714874701267400159082996768534764699546666030051358862582514827580660571733237955548885074691168338464692649303499704782055962222079832104391466507882637458872825986510453676705522082589941371403065421765938925393244250446140967005600952674257426127942560179073627965593846036539732924266324296687072608961573727191392301182863898231357330617085451905819417181627796438287679475380142841009496205224492415845053733827726429312407585925788171277545864951089679531347625160503352103857646416551604941889396266654350334019222534807278840806420642043125857985272381705300906569497331830691355558259982524472459233850535489609929724363207779619737079845710699865636420427669415361838126490123694101741599957594800412290191908985064033038167824751312282700676100751510541411662923828814742434476160936306096840243028530193459357827456609025075859456635414166823912464901433804763944974251440351628083273371432638972158292859422579544917420757881218839984904479409104389972422412702355191209597984044277035045168417291274961946612348812326471417096429394195007570307815038257563417929826450214169413316903739143702653636912746732410384812811270972376688456738094199415661342774676796208115989930804828428524721842413379459972334798261357244701067114456263543532978702741173207670347007839479428029209380739479443922862548077028866948633845321097275498653067274152345355974239340921415939309612751762812058040296657499757539931517992513102879401489335267901100537065323418473266895205208149921593760835761803113848495140191188789532969033450752668369104866101773846887550566216526189306461448701552798960418549894873458043436415711371102368493943981293130105150119466801285928786983280952684640329408024296356760630676288269347213317748387494912696679815861096481690843861276307280031975720091050950389884822097656344088852066522111261814541583546651152414956947119476466057855727109728159499562452894188456230560595162244828940559914774905184725973398774859160560791018666289223429136649022269712095840927804162214867353567355649090850730695432044345371925137873448363492063589186831340671444316212245352987819546400124190739402048599835268831154105217453199213401754740608209653654761421883923459883704662687941334270728472351171990091189449487876126566459596525191222596827108606176556000132024510720178718268585657305043259320245988861277514121390397565957896652931673409061611467654531223382695258584042519627711075659102330513980728983335735380955820765073154260729579155507147175647849284442782188006717032722285776340016388283909299532783781520093265919240922312289876595947984660705125870148849709664022633032657805260666490738495804288901911133969763179549614161210493846257989974489167015619196972504033348050113087030272871431144921664787833741299885810877637788349066959274040251428327337722520677719880797255585389951028388778361032562858913991787300938941435013501640804089864617807839317709979220734568412175885516250084596906177447696514328093262358024315327061499495229794684360074654028103137165816286230867570848554378969616976105052516322838752025309815347911030357152567119733653620065750074497636462770944471420599154741621516406561369062134168974295942101361220464739213754578125617255325496429949443429652602703324362569841166565016637067716990267133063492399564031245548326650417980108033049889141969442298663821260272358159540554943651373430977813769846837945497445035984481084112344020913828924986050581369214376472580462650253256483479595945170822215710311535488884490851499773503149153045525548699341615961042644573587033476845490007910016472366885551221096293947210460043428649948654288004687556782170706750835377542656531882284008449864273158777964434292352842375639830296106417102081968403007695228559472874994436503869099931024930842442334297924431419634614482998950084398915429860160678637488460174523045976240089839634498108522747664989351791545665407264776080965967684976352890492589910398230234163797521976281324841755312030335970847086698743776016993883820320620455104705688504219167389811113440399367011105703869646905683111222400023155367587877074240446858811004668231667422019628887194007435067956315622242690709190929001082291139115640914977693207636934196465263375731268286469152323830764152543818318209536389432604917337027894798275826287793848954467489624344568095736730030399740490245557256390683475368582047726717545758156552754779799677019181373502322266134491854212007759564780579336152989004885117208752549443361795474007492558340635669397082132239792203144089264301026152424032936893848798104134850035226825385984131046206260239791540213973013409891246190236197657774676600130225041096744278092135046512932965962805662938121038696980212751567234010200214142487554998379064257945757393270417053877602728426847560272171670190256529808807410395926850707011795389851618378996258898979979773365426736109935009692280313257167477897350399164187823017366040745422259996485454067939751972433653157404008967366701882929833813784726752154482219678754420255745882749907267047356195740865968467438991486477631490746767531081751013794091486380562837759023235793859658178122636412229654805738533687479127261140611205676794372912258919344716430781102331993378303486619557283514925838382772874667005274941623712599251502079054114557544465457909384601040668883003949430164016338051758109440446132760921224224977628407387336165582683722295136881691812512180221425836820819051118408515523798734630145526038649741774369972482116287058691425186487824136053734653999777018330574131520587488110409359091397249450293426762598906086613703603659412420369160594907283262663546630594436496954519761015391867089591059251461999690274433614866444388534740477386657177977613391402422845765738433802181936169367810585133750559601245945948433731844272044605046420576429561146029060436433083432222622715726223161531554642163369880425964019568133322332794518247780594520521049931318882021586810114401108849945200778257126405798880061836748347243691679167079245844647408680254156910121342059358271173897027022756794813233134242482211388625091059620816457791816453409567519730458540419474059647026226980243251423263555443776335576306637529270397155468182335533427979458383805897356719606053410205393200467913353297706981370923261433697085702885550850835755506047991329897939568418886773872547819919572567659380861228385794819994304069182022790770148028594618249416887633172747351241568750629110109633031023351492425653624647410542432760988581269125654042040246747190976984282714905958382543338168448863706996697883502082167583653586746823322217006837023741253042713398904049657884450511492988360015348986174759929460292041159806116458951201867554355471976395515809669051254072859129484358799729665050343392957639844356122767671345907435086581286801562907226275709442039482531041662189114450449825962135707335680724647023997326950970524538250645744357561100618985515062103170501071034459634341505208246848556766316799309439607264521782707516971947095039069211852495185425673118651841697898963452848660279435237171091893061293365454764174337731865773931944526053371180326560479155198888061021214464925319789990899005449475886903804215200162945542892492797549501682153642777448623014515873038293736757585983708571987048608378204673504090448892868951095494368765261052705367488159495047110983371118691113523900172555287353061709994036903964919493498767065985506965700242263972328185493970369211370546202565454092971604905265555647432593012628700434407512122902723855725060201631746344894151819387234610022560775464484950341779766425716612227154909350469469127907875244667037162489496582561242010307664304436478768803405116305933451753456893094217426745813749221018533154418552326844330202172526208520815782752575122681282194583255701085148160124883328680094591589743994345261740674766558207022474433989512473508490036544247110885620030652819965423749727022678144031736414323265097527199564374999345351493166595392473133801973949282574044233066654891162471443120200945025669552447379357733011372129837597033537988053116160832798833872784097011516986418845472274434019337013545945168716985192552567065042239212309416741216063237618205621872684433591111349503951332453327266543770677927867308466153836013038811377254787877459409588880636611249140792023952746265371328346005120475323065418837006591931592770879584777711669506243228628859777137988705458274728287677560015342672513321291768088935802950009880898711514507712829491146396493991641684637963424700478776905697540599632215128583002819360680053783394508040047332370764517952016732704078590157825043299909302627392417147779929204704056085062777069099115934905693513552388397457563576079702634340632083037412583783946340306417287000281315462755169848434098368252267372688560984807682335168299199749426669322370533813411433493347332186168850858740439562585363171985135696411052717580219265668887499632681736113626185265972218701649179893311136228430315157558751813097552101445816294539636446439364736938077427980328649077403107797965944597910442142296822414955582224251179951941427187664345601688780274573020687903784890138284767429220733272041584889960496284336473681460381996718650847827405791501473098010987283768335166944828131251744073077508739487930350106442672617249079473633706904168895591866684015996858469971745787890162955975995275475140896807660913733402628636563788956077182371205321963330996129992250946984975820749313246095487718526179741523806558413259758860074597185537329556098614992323916726871838709905936308017105451643985052049143158126009310801165447216743351963930309667237776169766459047891468981505603903197627614451875266739552118401412114398308308159582061590226532910447210448753698163981865207359410118536688323794071916345933677658999892597944194423765751189068846680664730136992687282604303254099007416505291058383108504011422724404724744384707010116174598442010926933378353348172613098257485070365501419682370281657200090131073281627660352997225126738410882983398156163424736701640150014997649602918088258027187781882806148599828130055583943896471531137045417074590690253711029599888712531819135439369943290352208218018086817503205019442223744592682358577503000934339097110583018921149599336346036361656723457203996977728183264952632028037113642569329715589831234803151805680239013907062369768963235775685195771996285756091072583256863728761129690284865910138203429768729094535081771804933606878604058941688603589582251768150695819897135292930000416588175109718002295166622023665329248310345736632888542617973965544298634142963869672434761309073173018361286126348573974466647007673753038898334121529092247449411496222241927515540211377510792102820844203044844116038878645704811422281898485226768363119798473955751006837042384033932168327819759234110263531049268540948075222792584732599124030365183251243301161327474051518261513228449247891486092735234135112819320951580964817557340604640142905682658025743687052110698497296226575527141082938155782213126915722625178200148095608626975875571980854525781856866674944102110602937462697226214613878022001150528810873111859800029893922996204139835728275913161910070327136651231191538213568482633972649899804945613660648614711186661521567982476364023313924671327912265237556053837878642343003741742483635235042772898208500910639235427452642303823082959511834839164514067772347071171164985713930617225230255281468918934003990452071712224060667886083042337139963113159109428951572067835715574494761035276989073334310509578097980929056702147024925553367219730314834599694468062471853422019140166124295944250307314952638230849723633705582602280047952465499175849566806074895905236779690849841412209872588475230563587872267907779923703347966860103632973578654604565445180888062115053897349515310019408022847251645468835933790299619597185630284593962251872532983095388738855138906622974309338080687112492148635753006781160143562610987011363486719825043410127050899996594873969555854942714975922831459340255645106497693898230730669074867551904528791954060502245808119438584115821528429326562031848822191518287446366843127951238042247116873522045482831206053845346888775371973280594515595015382272492443443136054952164358583102191911836488514842789306312558565987901084321159323554471301402510142395185024052365600065659983770358197693075155877356710867533826518099128570460103952159768285959014644933680696594947983725788871490580075769316946791949880816422023921072769541088029851999716678475438848158205195425666798393119577926133404410763670837056555642149583011315315082943209096442340835029641158232035207966271090161302128676372893509381434636417826271266492555330561435627478735254263248088201660878426362841225563035657816511138708864632198843599676982813195520900310006964716057302536459538960360856170508454128901759721120098304539710001974441466301171923656411781451261976620254703477324109320979315928644546417548199941294944594009526513246949675351323834833107862066863101813213076464347610918657134887188739256693447523283363261558954375466056205114743623870098219498821848721144101509039598578475133898675465772434131908629405263335785006160377250538202553095534708681877069866436911057046872278639495057080452468992868139143027139732373165376293069351808918470698990173125587148767037749438109642908515820024847729915900216268030066209077293325248146146714215998753245097092086244236655718725784289512828108743812109864444284755972376080821329253516303546937798513142429886834152271930252081860088000583133375342416705638388152414728452349947421041926810586435515503298266535289165793950737448875582332863221403949240627216846794620311198355178771250921550547312064512714215015665935344570346541333885074421589078818712253499046217832406742455074293251780069469448897457694510330749149480712922544281043073346086238240470209200100314022042567848156296996667658695753005321951100555752875153981580552598363792627724754546443413271796532358124388745666547793086633908102110957336037526541917645676242983149823650760687374632174544903494712844147671859227916951642726775143490163830844167270918277878935672789083456940537095761382920065208480391670379941028311074821058624764290850931706412404241190075580451231952972732594530624055219053575995248452911925505918853595717106481763948748007218515810315230395956922104382592045293901020725309561123101671657818026278815286700421528390737036413578527488380639861619351784309365310840785445674926817984841286483381283705286198017187868927727863498860831177362934695412791604689428669758389064738233568309193978202156521832820688615735672116022506652908399487368343793014656703993199443904613385121831662852012890865337904931686594261388329771140731773739433139906734871877676318556765984125415866103109203422053596345388476863304229967665626806399383405932428448925229640791808685630820858485175687294433153799450057269897902251194509798301716495102928030224009383433244905975815603084814440624197645768202152108280187561627534328252080954284847579354812226843331804759179984640902634791077448471609671318094804197610283845108224880262624462863629522183439918089227787148055097097658833557320573446368715945963790891932363114084219123756462338612581705923574020727082246640893676768541249204455469929102814405815451568587923380545972675252977819468421517454763469143854106324597864243133374523962858786724290885949014869453684388847667619329723253031516187777933570569813779688683260218615638161981023029752035950735036832434601182617999550130660704359674876984876403770719815316418276383397401610601528115270839202874610048421530262541259078914172174488314925060218159393281813158242038635373656031863691932293438773897262343295280369206002929968703398130598463627930288393663077507124385666211949000641042133393939785535603252721339944123596120851054182799590874085701827372480377242309318385657702156092293068338980372675702235298637232157650762495083504726098050595389196827342351146432349222209785039272571493445972753201043015884734129916402178527245887499135675555895888481938203968062785090820875149400051773278128372370922051195868843637978137495578362336666636936862587914273328686490408338729980530356289829457673423213918679724769309154575100957853021713560732146175751447268074291886320257412484416945911774938672996107203629024661435438316996023165817314469060986343531856168386556291417976517398089323905366143050531958999650416605223458916088764724194154014040330429347725113325010334268043774138195508179939750465378625185296849370581913151844760019557066229085284739170766162733067332917112918750787869547628715222533380565064993885308651546741295280418739635895137977505201541925789919682502431946435234170852489829173208246722717223216130473845095234883981858868983522311680300948938097080515461864878641892329524626478807829310063103729911885456148030660087737763304074349520076764382283373846756595901632175416070581377079866248812305375044352328802842584857037217723017552095343388026618417475259351145144112428818945767634232486253856195040166843323632462478945657956818420288319956895942670603162984035036381631025637452086480314216488276505935094887849646558555602330299303252050464773712880196656841767263826718666316910832057812950655957120238265368029091890190950245414933839722417351123841314979087955151491106809588840892585790052197199006485710786238100854111312911109483197987534524289641127328487054692291074395691209056008674215523165543791839059231361985648799516525958277622789414209801124437487504861311921497677062756013459403624012642000062354569827562149547285880164222239888302057848415566578307307525520783556408265731423273425080316090968346748909892507413111484298294490351920510240592722744726970558112786036885255355047335225314414320647557909522602960462104619578446229454183706140963684618198706931687899235030048456175439742767353009217795423532180263230488520245297703077068742753284218955962681822250665731411940424511465848328718561274840034446600288861951703722678284126376697269267695684848397963958321135273816937739134181479013083654475849072041166354379379480930541898642612932235432723869846138954666754194880272343799681090571062577442302505299643612846886769436906388468547672719721114853768801711051603022609620804828628886498642801270952367711624819506573910587902314197105614234648782994836996773113202835290597309138494238615671161517453178481556210325791038687566501499624135718076407076176237242285413711762031496667937880881461084249406948518300594482180481077850216671609468478414065423488103271837571757345160389898858952535979245876245404863192513857314731745333540274485990588754277134224956688227293657811905104260107505239701724875388840256380449540865128122725488499787100983174000660335494229036134820351720145235082988961351610658543850910775731373370795076566970072818679510016908855436975336331644377938831874428310888333650239339558527162513959880298901861964496178143496884304810097975750050814396733418671611836758011831893658024652857361442908771455037357947850898201924815758728934506154837648355460565545585294165603138655759317843815771477687138459919929310817375556077656360766011465061761549536293676118749061200639150935940577167124018800336641049717579034315740749846331101213668609902165581193775328184510542995447424055099823679055861223396283491793602072612558562831160825050924426811733286222118452203198218923253897151639491076096715024106792274545970321718746826228191029407202433625347070161713411190547105726230159910456124675410412223553880192737632382418274270365114124327457147197607395745515000187896147058443883647663698553310015721566245845830729906251344231152432150567789542177021607725928607795709379485213007862077158497998366697552681454136405402772789177326265802140345169239856717805857048100207245152443623470192839484254760666671315654720276592346170213024431904642266259096348612342377590691587563608495292986339207275851215377336393110235467156450957707874376139450930329421248451757654624173727877433120417589154120205670674234966381538959167241655320305842116004341053673647539304951221807880976495030258064615732306053269706896457899691875529001682593268133757992037810119805228496436102621182723684833274918358626686876456723350933364298760301104333059415982349044110025177787687484021328114503339315626236716162180833793618834077191781186203388139975973595486688228105393434353426522820755736506310589329669012586413287942497105739570243343327734522792753848089966000785199963416703400307708882493124375371584656202548575639693185999938593991322054105534212200016916773073391620114930874381627957632220135254994961982813006598687991786090500293904301628301926978881064413281264762541324231678741792117671705632153734319365346406567725612070682177800191106373108768645594183577667221109271504635752760572615959350744723711548951819572308437979489808213795182095237004938327732080957410425181610025965864307578099168475278405773127392112774640797806906029736330979215449910369152867255721092080159575581203758965777330981765783456506239971156360640410598464352008853555419301921153860219611844368384333181782120678114728506269915471459328694370894517034741812301140309937471776522383526443653796047773596538355081285670614563503553954887596932440818178677501948261421684483553472900302495707725178663235639971093979463483032662722817546362930280815260377438216747445696818396327375396789420256443670542923237258893823308510504823864282369310713900591722002552315669197912299516120189733963917527708649611948043603818813537892660139487270490500087923189720419125228898092743537566790015307570942630589235102232541621205590887328147682600488869141669133462698443736040066370407479441236147916344019638763231612019831211435173634525144777048666294769810389234637930273584875440149737980032330982776852387788679343411125130689154031173875161858459164313170263703797693961427216280262658710931601540628703612136303817007299826898820911337414409715812003340561508149551366383847715666483868707149981111229839462908781073578265248610004423899395889715418135365133154174968551696823574008323805566072793298584155831980382714630705432986825118477702614593473865188295487460467810377402595253622791176891537105489617220167662645544389596812635132271742410046510545626300241170041356298295751880475241178256181411098305670180169738216809987513050339502393275607575555415477785184165352314166640637624068344934480080553097262928684857074602800851162727589916021800294337459545655073792271119880410389681776077789700344290061218155527012394727005960319537821566143520996268886422179791240739188800983593233471569167586028129096793921214258365564722143944317954170840633648655396511554815596674763086491755639497409059132170121891215019235305735563641902535954060474857302876334285955781880884413527927340698824281479421460060653826525023214628168776099934537560708453839881212231367930954240193554005167831980753975476103796404154229508391434153353296186676612883712143667869701281523273527707484489615380109480113529472250442207716281701992059192487357904287337602885646499071312567073064787720441045982530635143837509386488788986473437928255504871244446606936725661334306507710913438121173390053870390520730103748503215389681000456638020225445276842358712669399123905035089865742979914503892940620182779516010814718182075955414336346523478653285057808264229525480652207048397980031043699182185164920401815107269057057452396299164055267340020296948017861080786237829962971100896111807569696913962307992893423203507532383359014404080453235420462781010307571122820722443606469300836565044789412144332242061040114099006766213728125465012245710558063206975709124107314865406594200511887200207560758518427865140452924767726240925374346455111076600256951198619698154229379164306490959822947758655809265333885440762873126840671050589926924222796466759646450009909624426159872281066925744768008758418440677371655439978353871633848442491703648082060719557361277298156913794728747880088508520736613155450234792194081171812530265345077423654308566214959788780027334030321941718177888872749125593439839539667702277149883961006324655602669031201002621935209030933121177679541718242706262798841161811132013126839064226099064067247822565473763453844089969888654499329142429384022921854007948713215195477797903211850344923469157057024223802959509603603123744588418230430015957696232280052892808359135308923318531257767850953095772321644993761671955791131785052530570908826142891167512633881286215323476687588611739808704916238802652168086046564821041883886374772195253641332505271139914663848484604788967178992985432083839964125063745446185790270633681964857427393240663780176229762632257948005440982323373065608705990442993660154896504747640756534307729215469174419356598183372233919486423875388003263474141566087886766902869575824322487548414000357660244304744006921551252592630566020224246657089083136038984286625796273258629020493269321165102739454198840658777786407272330455767143910308509389526609075173787820450661767119242897553070647506818168763954892625740152526217163884826159830416072101962291177412828396153698194082559809932163745598430191451058798990902242734543565686456203996636418788055964323009428364947985579357591053347716959791971430810033879215446406043126836714774359022597423586480997119315586847862727478905115485664477293140742119668084865365147943488893132979259143724751739150264720005769804309694615906533941022968039900196488052725818810820748186331991333266809188840114335694177628959074231229811935587345957283329434826468266597038435825590773118657673801455639997645933084079964158056300884338912749399575651802137688663304122239927933991777724394944533226258446572447951832835056942873842431865613778141065703103747091151241179037617426496510273180818218587753806474296692700096299843017400341747379588456287295219594156963861757087285478498831375432662343236877626697225098613132579394989109795909031825764277273144530536414820106751901044095370858758177326381050067920072202841085153508325484366096648444075283623537179597604719421997781726395032255722808125826356028346075020996157540016384144953361586290548146459895494023243575969512160449298079943295823585066227823151194014220103307980820080687091542762557693613369552068708755392554637909916754505866306565611700664001605914299497143183163534985866236008974661830626637029713455818127277280660382779547647315695732896664403429524919201533890517168232321267139061802070643688779248231915320861024104604668940868547585679457809764597363294133491682662411360210155102828527447950571774168763260125199964069396475153639930665931154280767056471301919248941319363086046188410165119052851542926928392426591283147631877646312214051039036854494110802746451534219897418098446925544567708149844315069070757096809560961293236054156293495659141392919081460077861473555894432899908083502676245604663178437301756267129758615246081523519146694462129378811782579824974380799313160695960837463562847178668986940114727382617721864219074297416580456340593267760204367623099275226067663292091019089258907608882268994256133998620182221126053900850871613136549798449356563705954330800885976169109175562808218475461956339783692451311183864871865256053042020179360662641481308055469425715372923841531428964044092514884858828805636814744144983580805370047406934110512527344998584342710916288702793946591011323079955082044896173347346565229071446475180973344779592285420080073955063184585911826242140120754650208612800412611380790158523028676142149098378759840845175412637507931342938288723408107203576583427415706018268551303927553106509666882255177489906558616475084733958966686205784276108519969041766174318297757702242789150533263904266603682951830530719960941094178414265008972867813518976489317962053468446963833895996249440700943944517298003632296062938935542002209331506042849360777918053842165794987342661744445599385779521149633680093949651459411634980755316852265343338464051868289091860273541377931893258703570369255980609152269198065334045288343679604413730915003472870954982024621037018069136645276569150659515461442392893557445505917853258199535819485614029382537227219378525152226532804920275624727044013486738762065065623754676716738570474912400422627796493187607595920424707338541091180580880485442699012798699615745285971217861682920541130422155196373620344483311465791528343414137852072792928864291143704012678578960256601657705197829728140053489487236513722165124431879428827704333716904545544700964297474356538324453780350203186191319219259659085702742312968433930292618306075116423420333534281895262461903498091757193883091048089943408287329048052301165615681479917482395607290260972999242800874886200578926970843299032780890189199182107675611528560495060264147408672936208477839301503242891646882682390739141633884857432641822448735256576015672545506258271808889429638787668438504542215240098225899210746423342826641132067204653509180984198126654607888227687913414433177181775158346422834125839685744532649806281985359749365255693429347588475579708604193914885297253474023593519855613210545295410628859541661681321170266206899789578909554612663013278694299660828400816986259774867570951513894710341097560410522796196690569671759627951485172958192857505030264744745985056068686120427098089516391048243070687195049564345292134345274111918801379791040437051756131141335348033692330062563637272932198890877075296483572121009341724390689877865956491083667615404054776464544733527414013199493091252235288787465823203460896324936775525172406127333524211313657151038656363362655633529453625444411349175057463469779995531898495171037613014654122324501866857776272765561438979809321495345508274646240287777937017787856701292377196213230703745075733760144757593450886226666671290907768594953087985306389970654741307154309930603098428603181674403130644785648207943344058592479618141431476881762504946792821830949920735690905769778087176603206081857641390881757440734388203582197857650921719987657329475918286406513843711265703304349510938953395748249754339885980006665041204828393937327991486471788628290686088915732023166043098237809994067600827780094049436551582684791714072998435293227184274255424386922066384685509981544820814723475460215206363729307576677804144747887359518825623565384213003894530119570414879000862968964294393995129137062399036389570075590589139442940422454913459970791089188669682140574093306950915485487415719273613009805097594746608266440959003722562062960120480984176601361526106311978711800504400167643161942462869435229044511368395980251737585684466610018961142092819551939216783661158256801318369158049479903067316287757118206091441641927545493625234897568927989843761832466919395838366696565867331432144239537461058961954108038687664815905021605508165517236101919375899273685187977715273589874783367321802683019154678335565500007806340435476721173391561692048565104497299028661945116725089781001085341221957330382057026755174183350501452613636470234540443323274847713256925252072117431474000804303577255758865568564725513619045922227455736286488650827015336086216930669214588911962491136980626257200493459482001783772834601637090469712658807467099009748278076265330537785883985074860817805556861251294924944931708581144177815657424874945134508833406180216373037839396585346900744624145495799637127359008086610175703067270288353471931199906519052971501331009939791667653616716112164253520982502870568565988035941196519332656121800091983699755538124647275817819874000593739305907903596987575817845916813091194938711361167668252468507605694250072843457498960093219712928151361729059330544857878605856391305499663775326620372967696136423172864311621505980737894354086964854951579288314910624413809205456912296058677615475212232049267597068060232687279770430271002262639534620419340215742937037531194946518939297428562186294700286219572833796998489320714086217009583214165726002549444765181394929825520203446222800741411873380834587560102704379087711156811970640520666283192693260575383993436734175013338054767473354868524752600598234892111830438765405298694377358893424024593425013927918596245904533593054942259610000120861114846334372277059523524841791175876780792600463388627807147606692174395630155757458252893256853699623083138925369875286240118632851201164817589562964728438894121923065907266683449009995671276690578112368823706438880778887789904188102681411266734288019712832278824117612284701329682662769528781655675594949935671070557678362539053652239567744450239909840613906084008889704305897839368561651748226432914713608322347685898503647274784368959844023751791568867923303081791189130574823321829881943866429666132053613921898257097407622778518125075213629968727551761045672677011619793696012624043962234691825311245653283727292166708097777130127835778699752642186856738746270352617338661787828999074695976895603246250971288466690502308343115499075072291279538754207991437203203954347366585961628044027623377052299010270545076875557253448915091875413012102281624258107583537635346340685131289484746851833033651706542868043224293692809440162248272164840218913768695113858621459386600293359348063941053644502473178969669022981483874355080560136679526874231216914835988136955645670860297909516977645835155434455025529785160124792376822110699803884154192334460563772692633275646560909742694812719873940200077568969317891695406985925947231898437952309434454796371196725849220656453691701526611013277200642074905538776375969987744909431822986418437636614804396255529715404237268722025628221275628069349130733780663439405064403101104443522208371061818159782645600018267414779741516312022050260890785883532514576260364681011492218544171817576512691822427365733008033284470165927064671299306344858509794232138572868318757995020463097492722310162536262786553404532012920815255405860033443476011265519474255145381399352542849085749290832055914151388446821677816732826505535006373274444713127704858990180616835414734820456046454221423432541794638725827205092410792507792358795161467283243291110910541350714351581310710655132501546325978522761895353847914617703036469381437521602061197375069437422434236596411514221316405412816784623145406531296965812872527709228637279610770482740889602192501409198886574918402186570542381467428576979446982862617752359348802180872834942102765893592155174631658272967613729798546784835182046293657815547584294759630062999100814921173844455783332339296609495276163793783723540770716995789804060097101371947146691763729924710775031623959206431041603268372734275625515845003700583643722082748507169921228794985620469978734514901130490114266564093535204744116044774750943799103612934851975378816606749846866751759663816998332859470440770755908626209733345514646383550084007323982286176288830291105774230813090092543287062211200365782139612574060472944665583157332648024124700199677624657623801407471458401645822128269503038879142744928659149306200373086261874445856476158451686755957730770533973461904395393166301889541563266239489781192678154842344617780195382583343041625597429243450345978011579418843789871952461210932240217458976665163271140107708909781479812818287939957937950762866077866231229666463738249816483686290814032960069732158475367927324827421030027585605269504020848707733993378801751104719476771939536454371064290446418506426718171605448707373885628075959423466657688135897711355861632626580492292146515300037766315924225115771734260198008207098856805932366584952398470531838434136717083728122538237507717371844829770100044918499659715158233325285861457371628214015976844380707872390925072800681098321167127711791437632933700316929834855523350163094489978636449838778149739367477892579939405515600387764808878108105753515207110178115462529418329258997530133980872748467979669665776872450643621295986267759590273681581536951193612452552802140729716091450213731671969681501042658316244299328734797354616245270897817843926614708968436248958295199737790445238603365321550131398126125370255193938387590559179726032649329515472699903528266000987019457163507469188119941046637591543180369604861770738275293615411182975227789615719056488232172739779044847314856515750072284107668460571033803311519304708373210498078343195800532849561068349678598366088197189642005750499455956187824199148347535130038871778915159297888129002200200800221416016826828881310509295822362837665003428382889071179463333063750899931835699367076606725796540147659584111101023971430794722964853581320558907397344656477375588556368290691060108085833794742959507765907239081389915921300248458574984804956389263283257462397067816479431972783885624162788508991076951333891418263491642555376978973744403683023372415977028919370157372716856401775475740673114124220028716450322424966919054266438599488259051613566185996859378120676004719430523343207831926554718312875386280344390585509735509991571378318697868257221579780982410627594198484545581633930723497704548152878182671889352409680921495131673717911689370895563438678247785107219945078657820001813369757944774258106499270579227263109644064643372094509889390167819745805280772746633896075763517327855498678312524704240965287059220022521056517798578546727508397782119731971634251412079271497267391956114365335378929952412162983621629141042117208525206462559686449333442019794413265498156752605384341575906692549028650953841305652205081215293643757409112077747859472634707573822107395073179895663678078271620257958172698471044509266504738669063863037780309860701792948868709917159554910037891639805112475686884351522532434914560977965694541415100396101484920241768329256133363647485759849962042157449578711331501394873338341576378669417200298004979225192948684607728302809908018792093254059068698434675575760304884040422671697865972942175321595988165468507079141263586508930317589797289103532179482787795217288038420996179629304019302974872645658749967662318842534175386065097237925204346809578376753132420546381046129399750803510975350919095266655479743401193836725870124047051010466981575143220702594724193903266419155950292783572176863974869446127803873722136746498578800666062945903646668874064542971059906804020936596551792356638161722408596232151635670963863097021303210755189111459985813930272112046867375617266662079336538477605165845503901347025879423202195737954273469549432677549371731454964137028856597832009964361449943256960770069951910479735008552006763972685412087758589603764006750485942118586989507960374316537338301205318104691106962919119176624739578690056785653396444170289081220118774284680837015522633018176932876993921469507285226028350502933578326829733195041498985567406048289353044142317749697878405081160318142043587453086214307451758152412131014439580223216399989331844501212794088248603244052587969662924373050730626068359348746690520732094847771633760766313117304701179501867174433546430750330708034089547016539554579728741014268400875351109839939554213797180522766459357664514143652329260914332681822353528428512983885384381672377486553031229938709496517535053352472816380128081491089733947671123077045413848626471740169504921593676250249937148056324801440481730307244914871248518121589961500917014657055526020200359759299850955897361682641895487909838010268729931645952505151089434776572993934445376695451391078615676420177772898940811312754422611267240269168404107733915941325428489236425828653250869353956284313571259028172826662176354250487773076090462918361975132023362564511736148927521339474396542469232631237739589391596723774901163388425953298506420726201418831465214962746943829852267733298363630894153098858138894276547791705291581778043172399762601301086809611221132413947924468008962055878960088121419105019820494106928640949110750862248452036850904868634013278927351530395606232499347592785674063193512472022578106670979190170220974434950640150390602388780045249050149022333466671007498635574415230505187831567955378576409657842664832618636676853810791244624418690331624263755664863266331602976873666229208601312316415890913656635228329311023711793016505209732866411948358673654527722759104079296251711039466455486120567479732849163822316916481821028778231807382591771283871556154296160057103301318438288970571345877473877486758077794832513708735500796576273437441170263743349136941974881192617829759572515188494331952970083939154070819978176419947352659003112439272786624040465143158858551677844062231474455564299696783106714435628943157396002002039123304177271492721706182072424140879450964765118518502864646270389953647667937579733027075903496946131032096803309398318740405469684221769382230880813802724377598952227602914267878312333843993602899460733083688870146171194846356698844441563571400997949359256583792015638210844692040825566270720392072098177104095053308178644289112131351923521426232263352252114892181918663055146126728073303011146099224658433432190398375283604736693516869328873973251583842456186522882998870912958256295232339551307455474612077369945677228468954910165643386642700961362304628609525598484001727094538377042290633983698688444172274184855524428955562888467151470065128461045712383680802859200178958250534380055150463449651347955698855113518951054236274628036158326492426580704810488364820776164418246270371696869057445821738953201231181298633858968378025787801267651778034639820332963505970949134012338451544159334727112039287980909064066725206017128837113115290560446503770553565040457633951689628701535987238542576342107245453476879519103432189360906758611744612029556235497203702562424155963807028922071789687797562594550599420699606128924955521959495500237086717993786717520212621675732825069801586290556553320594639371452644067308912612039987830822085155860915789154677550353497096565522568926915181305929113465180184363852450683134555585052660906413358142217884571455028342569992795164039012133965379714669468390404778359819402737394030729434995749159843822936323688653002536275311323098208921182334056703713832434409940649111470693955772628469134444359367536747535897575584904960389179757507085965271648152959812107753483271580051349496372812309006978631780134281391232873047753898618297661229468478824277213072094350170339391996402980547334512498083360497245201479702504970209913696487495345403752890090128079275352217899404626509476980503355209982110024994603365924531331469351981916179615965907176016577738005961103147635064517413786038950478406386522597428291230888880374529149041169213387156343850258634678669239754155435285818422525830009666108722963453215165888982843968462935104532645296897215314231593468048984159727204040746796003932890131772357671692101579860141023000832735831951919622628519375981601592675023414758428040726817324132647138073156289378526223164078338979281212767825906062844126700800267945384356315278557463710346784952499904777117632993323063222843882303700500518951651023769134886439502162499196066512291043806209372146351140809888082930449791294719881265775523337805377038161692708453668127047196009711640528429062455255171838035857945891638564310531905280126826999559364760417270425673174393740651877779586179479320797790062393331270811709445549806075437609690491012293353379243480642710651131464097219121231307016276075223146929088827113522015582326634717672811401552292690427480198789778220857338315463969132731959492169904323262489465679969802889886588348213287980614130304363536613107703883284227900936476592650559723364362935791438239527047014694232650753463315852236566236206576164351921305230883485076689554380045456340208088846467642232610427466898029835449320511629027563953140777472590451593606797844654753450763686061663000745064889631069225886192488425989660424036699788307578028263304325954811697563124192834217831736257523022166627146581594513820158445015968836238646644925953093164365837883828384861649356604165234854877770233507230500702724821797891601872710382080472734420817716512675310100926922889382684201017796020709508108597322715134807774504725476823740535033521148329471679843394278850235432001688895817181828431383266602282796240438254451570663901992045584827911528070230402257104937489989963592813090075646743138663946873506136905963078845483124158845122164004908500405209630333861878215006978584429876948374052527229859596841635827311681991262920042895216868183986976314002057538352985289352253344062117639775791852395797807771611550790012113060774018257423508536386587064889900827855396160321510719142902948420148325388272603717737319650966930901820056336180296195075431312665185837777051237805422767028495137453323288890558700563257434681740694007693835692000947863964287885469520165895806180257597714249097604548407788446956638293779032183192087023831563440488575369093810465532618027996660514890320880192693189506084618973463422657492248591707145229434996496267614344263421073312127767081006642359692683439093372294611656225267773842036939565991959736761871382904936582496920176710247360624381914519644045957859357143823255787672811059434547263004473107060741278135990017194879616012097978625733415173991648739138638097702652114111899174616040902474758345512994198083345072900593465511931658541189866032110187055518270901988867633798647836256031653010749411098314902962556899969703068545811457994043001064017819543478945722884013294561028414285458317585350661913122977391627720400198064007060238879964924503966969107044981788146611325462131452409967970748179911711594221315759938976296602170216679708898650312927493213020502423878498060947679933260261203658644029615880511224506618568534896811791558304232266177810726667906858306629054978358426587424742154790363381172008598319358467830200159494238262669635824461046318437395034994391273575158198333043418831281237110450953912705237512302101560581935802024953802474109816592719778748157760698162733730993730877980980531541728168836996193560688900359057484740252613563517517022320469628287446506509083866977911167523614843880128916376719129758928277214885922166788001432382774774100130670636368370799290471648457717341204583714740530869497920542105309265575576002833874248638173280323515985014856780643570640949830400668200597582652308302151419657999984425556750319621150960777582856561473491345962854215140918222178607084462270637412733608345691209071930826480530432273039447746053575369053772629041213175211008055163179055488263803857216219061635636283902374908644318673510090553979282897753431769797157227256368910923812375684288509329663547887786887034275267383682577316486520946410701101768972080212490585353037875129435413758073513332275970285976013083352343306413758023950029575703154237184046593677643865092355901864141832141431411853081311444475419920875048315939528832212081838229152030593183296697853620418585456841991662558718239283208278479820855579466563083534577544573445554456882001707058232887215294301535436647214882157408098110339377639258583480135976745676032628982223972906814713067780372364844444720095047035400334461542350005824481292834217913226115648482968173021145731059251076086406622257749167248253979734711687891476689119815424480401057116984624257752183131479691665680607279532267085475514725762642513451021844091356137274858671402005558017773350646633852369300950981346794507277749032795761330759128162551898064467240004837616086052151185361463231849169222059096276789610353488705367616708711573810339878984519721233599086376650410308907824784827013857705855122971347395538269588072741546261049058458574166607931121870556838480336917800147515256199178809189423288613709641485762443379941428443055821321824517722595463840525536595102307330777734859384696706968223858048166718719320283370943496807223523651202908621645688379295183036173503603739169298555966739269819900755045143623674501382985865260975403638470241512943468352385040612907263684744821971418900346348840063847127377868310561277566190355867322196032656960514863769225812980993237136325660738062847264961466998895914700206597214094404543118018987764607444439627440479793166215972347737548972277304680798801977239024104291219242419387593724809595833448919644936406441338093894764322363816664731742802535821049897238123511903343995237900324753031970199963801885879850402879980809494896257081799204220863078865599355185170969609400690964897935142494888496804364635832616623968071080715815021412576619263991532376811497602271205126376283989518923185221791897223755783143419375651887342384791063024016157308106478090013396939836412201209975924713216403830862722780952830838612638801578239543386720937460351322697401937760816316142429648988663359470311298643443262221715714628201565284427831896799877713625938870506288678854683684624169603838257436430173894029002819024244702669878738497329629179244628716862865115513950007149008535867283988678816865972769691243930612671025148801993455522798106753710127092723944912683778612698646779356600851460214981297022605416118130940376410120796189509070115187556393641310669201319740583664335472521357769321847876306133959040497346403724867156356264893482136959557326946755834774075020398276738517853229942295194516918805568945495144550080865266936215645109417516188914764925618297312621196175711755025612373306853228063060938200400046248315179796969683289834162084625952008064450659021587708425825299583917958907792019821370985093549325370931097690329196568797775593150902590785921533757441095573259660865497268397112775476274939433967092882656962996028702995359823633618695560935231771448023405194820390270604702409575949686320318429064518012257370137813076587260252117692275354131733277391935945551307723525954655029010095976082041756229380146628571938611946513210288511789534930810244826356682256722643223150972844931918255035836759088734385172583491247686161100473790395561723066225901517459294064005736706687795878186159314131372601034178673201180137679730851640410981419217943939690833646057583164985617485286076892064862917866580688753393200353218871784219409192403194753870913061174476415115039857114311994470151331973481468311946984521366184755386152512492853433566450281202333268789086126770115540684320902771240100910958278803675357306105850292198034046447295530599347925386822729247829233685176112655743964318103212553845292495890311596769339238199560468056410383025826289312750184424388540178552374423224218233576276709988480732423240231507003446532148029015876006471966490065783731559794290955529854294924366864959549697147215882425142170588864438278336599193668040498378387865339925038438320325183024239488930988142178985899519760389117112709425308268672066594881198809136006463151257785241329471039987632492072911447362383120471036218665263997248149297267756696187147517159369369081783509735636178977901326940062325668535559542103483207534505794992207226085511290270051888590442892699993528601990674568654376365922101502360971794870693764725755836957346187353560785454447875892384644969546446769837957423763211792953375274714979589063910329816490678125137232779419264120823687687447693141285478068811154865969865686675197829088654210007764852147810546017795702396162948323182339361884178640228981534537522923418222962370801438624124221154948141126010591888540576353595847741939724109082786483083955829499061760963253693853853890405211540327636436535705500534197217349330184145025547348516946258296653638787355317044437843026854841026047114734932511824433353790160223211714965188817508189906686575445186533860021324256510055036757561569298371998324273256395720748143788152238447292525631081221633250568644405603465653674922623909640857070541522319261526306738303675856378914570643033429398125014575004137482606863506342387546217023024101177166549488534537240839587622926127327260600144698899411916492339154478623515261482950236629194580880520635879112630588467221346599335305527251685480056121963087210489204274453916481877152698983761252282551252859013514888065535623214056243161296454421243394222935521876351193562655549214586949320837896635558705032617861866350508104283015411533101988215799754623920016912916553372932318086432292611241120863336813547554431221817460950984957638987098551855867037057667754685535284790821249120853714255001775444671282442687558962027659483740105562452807320758533581315592288885652292098748884183845661443688631187759768112377598674968725083579589927157791855247175616053422974883048937132162418415922319291973773646347324859646410311737834783550175633177629253420885614463086229762681703732129562399335190014546999641155682693620566310229426318059806291517607830594046658222168093413890709444755928721419876916193163469620907197624376507733093432277555447891617534867443365496814821432027263470427607860902166272688553797662092180014501892740759565241076690647085255337168366676924272080003191110855875820006672728385944034760679156558095140145539444397635376982155502423533119472480759324458117852870985182820592445348294293362429549800730746540025484694630398074928034247225806854919025449667819666565322309305152347978805184839404840613498339772220451198894699181025736464285689782514567543873704085711470861458165294827700574024552199860828861824830912663803169249995358513140298964877312833841861947551087480731756702244851231113357172088722071603041967124171666224935946658613761948752368159615617461808486478774596113332901392568418739726011837961351750631304209865525560624884135471590756679064057511394484568014714865094265111899129329299211984593654341792981040356866707479416393593437756736048100554300358757220760463399615189519980750709072462645973304623295320456250210777888183673680368767143184360479419087415343648428951535998706520796330311156100433415535999517433915154996620348919438941617869882294407245990163306846138742672621924144198334943261436126654285605200051372891011606891447933418358406475012096756316363098079669768680414418584970716609765405297393981199349675869073026084949278595582206898836811304073013406437541851096873810576204859352420277151234813887486323977143696900157114112173579038428353478719109230603489604178440038954612170709740584546753672310974580365839295194015405189820393180612520623387915118972105958642552893702662692081097927752273159634409752628042925455373603566501331484738766128545126736657801810782653327819841400276032006638121905898907093817845029659367724189057868696234496933817777668707143337500266914696816281354345022763902784539307083967993292921404979491664683886000189630057221930970065609639386063908285184426278752328024761626351084446892355627822817743513024695626757598172547585369937014803043681039186269010067511643138192140385256488582324713176885458691260460691476028165483960999572697050907653897665692636525211333569373165531133118423070910702597203216846585199906739173244570265061145314989211547377907484163393852546185307806963922500777571844089628885526216913257594308974067343529355446941899436320380418789017604658031934755031018534775912869537818423340739871194200407287601420249832369437819679189470836304795216618633142878017450166624569623189742146741175714644449925085585153178413162150951161124639462740190285410048906836860816279030804976527558372696694482823161655673032693888191312599509279438616249758427630278771377399404343467764799400346628926923770855681835430455459224230324240795982905213821042958002938056556702362246325069283236424656706097951873769720179188168763944920027563021612134917653716847476609116130306338933942442390522796332646436407932234973081551828486826155149882966048174883821170892327891475469230427590672949923997594148046343940199097121008365243515890975141449006901388325863740336870112783068392648208596612462980853579303473897136713785248822863559787018441152047149573777977850456502650710375052732066687211218958306231118901609012848009134547847790385841300163146142880822632872515534715065973991235216449486309926418181971143985374166854207713173822642044777383173362031947737172330301314129626897178025413932930070728304833433183726679906071388421970608439043138142708291525115031821939838135807553881864637422893460479239142640457240362702896368153248039049585530911123113116364895513468775030510191900363635648456386993837411606160361817145686877988717228252370256871031904877389876716016103614286400866630823632883634994510446245468331968365430638553040476638995025495578819418888660750434388237982178147206681865281894480202912771068432417385082952141895608178262530191706815019839359613326822168302206358713404070158421867601887098249129212072757410117207692592119074710984451288135513958026120955898864073274637909107712965900790259793150940147736552326011301742877907072432860012193472898350203196235891706961065122026402676897469925603574104700931832184256498412580002949593424967396194316322254526916277815119648254515831576846997918364819207330156947496772927636154726817430696499846601280974517130768967787977191972739362399136015284743637138699298206163359943408733690913300351872428496625888527842944276191295810036235208684902334538233814894102854340764273013778716637552684431128722557719622329927902305256851942628219568152353656348796604748718159582111689900657535819185388049629516023372461489796400012766745024913655457844116052806787441078481545620020680133412299908828666627607477815774751284127025726620367695758419812891625350178982992968481133306457804486223320218261178162014761793971101129682697283195341986479118189486991680522504393113381962919107232442051254105649840073104031253880623172409627135296106988415422531863474571634157315876276817376971202055019811739333256136746925560202532565519137011516043000185926426151176802002752346804126199182709514196266706506894680941605599966122510920227138117498239238581341773327849025630851364781116101051741501898382267237195876614958154077776647778498030567865765463439284424575125246590320217564019304351942806182509401368587992711227666453643075926412967597941225385839064094522131669596646132629556739954037087791310954577231149237885068272508987595904426630188674137700051536152283084271805703704013397399094394035783186772368305751645204982495548311283696356102638675462280777690025936818424503785461202143238736115007277135347130187064626113570290668310564769243322920820501376633890148034944281367737815379304228010969047224573092679024001085013404662763970164369382787067680800286097396977441787640768131837361084302405867374117081481037617160801336485480264543099934228552010202115329550742727185551613828117582265540835032645003402308821848740745375720083752584722807658761172336891352735376166940100515950940824708644062551826708258407108625240544214483881675506101449297529310877413320389933925979386295251757832530903551363508591837038275994639198426418500607779448174035033349455545295767799527157296197184053604138058465436652029223718711087131890658277818216687491100544811020842145268920205713116711760763801795074616071603294965282357861811401673322409233699641633704385529615576642151954354406421829437980709466031331960036242772596143116113585819604299657128568428030675878692205369960883544701500669874073004215308369610348814039861067873955413580190338520477795514257547052938563374103853790590733567481714027961673871046796347333195095558841055576083204652647572874342412880274094429380023832925246764725287350041767789415494190798623868025364564547947185652348697364984565918942043908333322950016591465127338554138983336880741392487886044476211952399459011389290746932401632329829562132593823603193879040650227509380088068359096747436173964721466330900837351802944768772568435386132557890490896075622892970981508004601533364540814775272946060051297339258149604977768732364430487533863554544173592367435686236460651952575684833175180065463642154695111462563909720226772987925614204891332820904702107928363128235417747943650424822012113276940271995820904629116543749400395776620235227448439030481333157805085515878375633104475535198553208506213809845327718455972820406209774217858896825356918827063758040201911467263408992917484493482066774723525768855877879485378956572677019283271721413138483029742472606507924358145051024673065717852960551041290397465613027092809654620730640525772379060118894238763460866508294373993784345477097011356704296843975678453882384066813987157234366874141332433001498000932103731054263705557959705383265690753507469885055604029784615343035002621501139403722328423137815996835326774723881242232294423734678067481879570013198636148584785416109818094171142532848243533586430230902921141539038473196740975520529788302021975782298992351965725899559443962334999019646463798503009264016208038154469797025774436240158167449759317815711179496251152069979764107384538353991625102586984068798449753942140605241276966037840980636833900221389320865687128453154869683250008761347518863591628013414284839729118886820033686811275259637482045607540815070221573701439939185787618053857485672034631474535891949552269596375086199323334077435986308260237389143461699959995767781520033944594841288618693973307827826508045911481416381161454495051763222999716581920898217346496807510203007864641039646069379381678064385201277776249283142700827000902688328250945357923772079238753422192742799343521071167589002099355263282560690644996460363972811340837751385136033088328303569582757553761156286641611924393677701753388508216398962777844739400720240528967741701077917960979402515823921734124273418143544963428539898424625906046786757178443366294836112540119140232806183906776670492447227731487134233477059867807082836418259382081990850828032707862322361005597446180002535531900113708760517146108738142622069409806815565390366358722171970135539207701867402254373605723987186516184451309946479929134832841660481852296091385206369703579076346974363328106374826339346815631855472344223644368232976295390669926925429353973471142009118300774849218369317278846221588435508995743011925339244976068909153606252951660341124194132961257037028479732864548294935852186389226716380351577802344348499949779053814886633477087388577017649821840014422756397144015267295980294369686086235853713833687358734541983870383782414920071746630089879988436756225560676132843153955984194436312340347235539388712409077718213005614451541735995875673417259305512657968362986084283509479844747718148567615599103184284011407030451379025159807340489918776417307046990673313419150505594702634206772636633224714666820359349903362022408751181292952722657928968132267267621880498381628163439895309552096246165407822009656498582926040747495012361885839025419324162507860132015972920400714011169137820883470761308776319888684303856504194113133537217132542454349558580550256754480981192594548857016812102102889751746966508754374118621533205915719796089450347236038951952467809720364203266103054890606171425497797142903147416666300628064210913922075639659976062647821035689122483400918576089283166945965584353321973791213635357655728468785628567916006049080883342192474002045966018310665548978700940768458329621498996220884266908875435909768474817211629219089321749213687852769345787596719688207181225534248556919473882137376508042331654721505279628971442598297663403281872375582927672454806318352283961093349025983629787872217936594522214922860019153715131227083849273853920369226180563122190008032179367715600007554133814877547944703779069075876379242614258670535114721537851668301462847250821510445101475990368426943847515705732173156445321740954933589727044143996173705294967210607197698883651284054476701215698831201284955600102358841930252432887321266070945576361626291666225547795855246445553967270184896577064211696487237088434755914677294001052732761486067472880196599450382547080911386170210771253849657894020025803866450766036460223981424261450100324042939019774182306153800259066734444468707487113612853337282267308928831149512842372667694249724410768570359936704094765112889223990380951706899067822992923985595105887419444033726094482355903411128478734519403974238348911398085413444770567064065203628328619909193392540107283400621858230945975043626971669196439605916203986241931928699535260939397073939268625893635361670520014665671295395230978310969492856143389989878026694958055494598458650385554546046270817485039862204384659113988065566004601246833415771789209722315863853351607264650828354016015568130059130828144565878576911882689324006737849531251290188624380039102840731668168796998843287018217153240474057526800890133286047915794159288036139053116671339406168070529225188352195065944917740669000928318850912620606961037294789032273532879498826238483563385039434532853371648989565481840170216870492198213765377694563829142332897045515376279566489051077596209486148743086033176795684194976555323505164987770309370817378709051090203613959942328429593221788854442344592695426619131505691212044773996626868439086402002752930577321153238908400537880220089809153638622369490810386678066754671242679143031425592661176329468804480624656137772944481966194061296623951625849041719760786105261748656554780010425950807766555149909331870051609766683341559492080922968205942892056803825501059517770526655958854213537636863017867538119978146819026390480903049926064888942663292274823325431485551997695994884895636552632577421217874091582884206147228363613688294779517999473341895112066654699959045045472368876395005171594652817196869154470407738056974061001739541495171077120608941645432916114740483312204104101792126508190531678332905323546232928823753365803781182724631197712661369885645963488249321697117075638167291766927420643366523132076950621971199676213472333759477411136977782322184220684917243223313030329344441247571854894963122277754900752296947837046397498417389576393639502795515389858730327290087384841544818244747902453835707429873517928768760542798983340433998710119287722885597614418868227301829198764899447897118629972325403517045095592516787592089696013994891087229351883671475960823938632161345454769706766570014773372171630452919304151731588061020233957624460717922350427950125251726184902478804323696920568637954850119608904099220195253464474221395122160145451225570426460820398660467539686133811446537004564317968082464340126905457939824085239614261402295097042338764515043640162715769519644693106571872122199716456356706893685594076520300994118148853548568953026612043041525992411750892885303430989588167853044399022969930449438457743224936856196583985921498889949724563685016629876852357822775834009479530411173064745853506750042420675275709581720391025826022721148829392910456935817366117564336507509748407908815746232583002413509775003345323505819946357640747085556130199148146951032232536103194566055932867724293020756802809994763784827163925895440899404815384601393413780390058911564677269322757294532374750795544267346180775158751404091539562965591774176373744186396379730123704361332357063037046401728362298039900558975783383083738682656833953352205789712038359211746940181471278427138039980270974147274091493169837036302547201522308160777747912719278385996621411675090965668395633589792619994413009442237849844059870410363806769929110916645293984262490025827752527841212899834746361973230674925516363567428759746132483937625421253073230316316934494222992836963170262610605048604558430065112280186945083551465327743411703931848945071570003270274671317799091489835514038754762547111007544758653795854279358595817287042321260920414201060782227221692462923251007811457809954550848542821171156119433634897383356243414943111131586517295759973178072695238315604700751036442675959254973650217542420918548751259166322876705225490732663978301843462856850305351492606737530726312410672106905224385430433686803936692376328227836139541689588704768227718923286454176565431259875606109831420455563046079514840396703080440994950610410073608066416004079846366538905124037711953842608326858386032764307404412090919295910766026239491220138039785146243054070079049792932529303969394711987898139330221353165162419155000273478978708199432824535237471041351212323396247377652375395357787549156046340391773928368687774385235574932308591599602374577731742140395657295328637533226761462500775916709501200029532753684116068177036795781087178549994222431438693041920394687541769789381355630939716671168926023726675917329090733103616180957720090656259628900177719937023850821326756348966275030897411349553467232750983607607533762069822254420855308944947809691276306317035281925969851095777770951983626331158587792816023492144994276171129785900926515485321123770915157250655408891286048321426499478274910633819541526059173913158407516556822603361928984571634860690275995290304183250914643607276657954632764530873360894767432592667590205476982834193194278154520360494718496905730906047104342532531412489839033310973293709030284901837530934552333174946612713303958817437038826853594299226025666319519085123735514249379947401562504466580645802880923180986265123359494659556470992110212016291872833724683006214693228661566248578881773416209645205802100116239434233480222355382460004247663287575598732305923454206330028579184084413296452581165398154005916302082689257301407067801115323824197283447170706828978172139413226431257036454730008053988161802194818899416182099575002671121245479281290837231102805689887811624415412952794866237334084978433891218481161210379111740857734601621545031332157019708113400812646191958594306323140819155074018719476155684435517945087118932220524694105816597389121422649652838932678663425928580573345159697548951799426045038332918685206139209622205661150972042418997613563202379660968254368960593913563000881466291805438340413263038011474148824174568628129596390560200309734419422294227203997442425948958206182603099210036077125298678675062063585776258644516279577857057574017947822487720276554872634135320303569458332778965552919344874547203259322943291064925769412989636309055078808616165773100899662632712071700177435403188917473304277169980912483846568954603644449313330822818444972738955353540747102182992123982865281524657415387534946002068739082431581896925097213449394723103881567103764519610843360762961879469119138199735005026190510767253746221803446380169069019000149653420086081248376288791916747345015547356337368868781160176156836294200327349984559370902168527723935580459576613918113007867225545230604408678251042105108338661330533506858290498780979833161258013577920989642011648508779654630500370589940254613001951034181435416688857577028116685746341012209617349912752448820054912061183970364759759503999158950574734741039883124707600857674581977943476983115136024243467392882842544711207246182834746761052673551690293920823348533012210769601300158180834702840707570873402850918233577741250389747658794844642002639673776476159901678618546030071616967598765603554770873476097372993996936585979455932252429049248664395617044767954529325120598644200711181084031831879542103456441464411354203410456981126860642922370679340458746726084487064929150233830166322432511251029036435215088842935635993115128897261569683253147042545681755610616686156220817396107315706483759152545923814965323045355660826505917680112254617168684338814111552549949634329048299861864800015000533158561876916379149873437643164307351326971249279757319531491653545671124357688740505803867207974856983316108981156628438005242969284791199551511632153723599149263047563719594130508582723846688241718341663307468326060344258030002862930723601935561677515075036898654913925607361018184170002813931764508723154870868743724656239977047873671739316589239370019098962216030639287504554531092712491042918817724477450822462807079160781220574641389310813633124535272027623709718799625315814136280171153027774060004865621628548718230474547241448662835269775402586988405182502209729515810909638880847429990257865890022433249381613240450659281579442358477788373590413889469767242614252365280172818552536492720014721837575212739933152475768387725312767116834931879747821280530292048849978717801804223712651780839701326415203040601460827085958278772823523380641241384983914013328237073714916389552631238227192373169524737614661683140835326182063075215483614770394904379872188152549478765595390335867503480604544864257968635110222197871826591308061354253164459699851852797195332738685369485486093417480589637687321450017159570349068765462714361158480661231046549623151171953907067996740016268885354191095020171802171222467813197898882503291377455480033567468570953874482053810380976589491341823836292188678660652251066187240200160381797395822072682549968351940323813937720239117051091170638707751345552554545846904363173502109938670297381752552445648604256773831488396467735780177015620184693016873846039650770320353875150531911098769662007953812736849014671554135152489761718572579386182687338271712652203386780664357379470287013327970308446138291134457899395227476508958902730911691205872727552500581115335813415534799098542998168954244656445022534653247624219845944731056883220600297529613049900955752872988978353254080270854577168458523362220756148529457976338887669806942050667389642140953825713681749839483244256909808115728604955208904142001467230465041718091512074547897776458149743651602299599810810767007511899632079751986155997590401990560321170212450352041604681242564097427763559629704518121300845712352067694099667616265826047768865135332118620208345797151179744374791948484822345619077889442330629900889889985866273279325743630434162040466270292451320778188643622920548535169520574081963240567593461987903738984601149558416512732687315522105898133583693593223753957008504485126012099379770860204882821472582811393525224734560467624393005614600617161580380323042838817989818015795173387952533986191201130603851326348169596259862309440039535534372846872372784390708814180541374444507459903994203679767681429086388907952036848696754038632537873359690741874543780029065150256009352814057319424460764244648839838206459468125483011196971556925710851342349638531952576651169279057900130526706165875915977976237214319354630569620210880477289295158587091315147702389385856395906237674890565421691326112562940623412641817010341045996387262270169653311062328271394257263874239684273383658257207349223623860718513250813740202012200172522443077187744596530493401804779135468341829189866942811833303284426767691919319588088100806788231929714456791419242366621713826406196255444141971634479580899739956574430616304588035920661860452872673404857207034150123917952145489992846000617117188426526687769783713058500899612173448418699181045625168372160826760701613132554416683271558748052244008757425906753685461589548297374649258414794139928812343866992910930676997878091617712590214925757854661647030525177710135827369034120881373269789491501127780116918736123179608148400176477958935801425919603672318346067878652349605980195931306240315445484804570541117171063058422965582540202188631524716460950494952625111426714587609823900438335609492144770069621037038295399346630315304790189490388338865121413352053281292036787106169861990895726186035085612375367270746159530048940272228060676087630609578815196515630914658697492278282715953870716718079733424696322673090198628972630128913792836346591838039111781751288821155907728109170040589780399115933680960301992558789305813838598960459366914506477147549843933831697736469510884018461671980710032983157534284320439110970565608341356283340502869961365845013432663794015804051437417710860328257555703980834319183771335545471142257878009301666180794572371391481950323344943389686768117278826889927719722419867164441367182206935724890859273173722244619490444404426388911982757089279978854094698151835363918525162532937545446687269580549844632779415291156538276563683926548292162368584212712422986219454831891324024338048446356681862927219595433234759649880805428747518617467655008016293313231237546365443605439692261814584463534638905603478440680718970362105816407036738079179329193177079119550783119473592077441253815165467195106303007217659641064814995211105380709698037973949571039340751253187734175247916351630565976055338872563959565854102195531565543572817440775546103139466687286657308438919961932569022645156640060405278853993446393442701114474848791746185086720502076986450195518184376653348530210017024597236851850928658336564522691135737870768981543698562192206774296272754085284275612009523318519601638040261338635713331074749183625270948660386929035251876048776072067360603546009179424021172908209931240694489453410022746885101388225451211121548395492921328552444811509358023187172860161790880146310188862321339655146361981309053948056912876424114573836591614116063458245588352331675076460547062790628051553644281848601920881108936856412650773103619634654354114627294621623513757338642824855901770015104986467861423919992395864352874063173449364605280706834905546568071346389966235521079808724268576652872587951484827771398184685933671468357202527586700861152632095625969133474352613235256598707517017078220283316099078889899731026449263198925462310958099391085137554190162898288691778194787043592762157537874341684479329140602053102719016320901389478067883837964537200148659122209068520664643742986055376581199914112917136472572681563394008754373134486269311593088166512099086136093261867620910012815349038327703652096741311713047201227278362320289689440852212402924916106279619165041064626339920154224068882508302214300385474698432413108106567030466997307813386161497856259771840204216045411682988220296474091722388759289358394575276395794628665641437399553041438695077099675035296718520864193394315438693464796849915483655700977292227568390238529458754223701350611683545101620705166102639198234402489750141073579558971550035969337786919314519367849878256205251571220887808746551459333980399979427381944423957693842802252692000343977686548763191200554979492923899911057970305879701725197836119534848572870004747883895219606973796410214476470469217409283672155554212367864412401817301619669364416783108006853953252178760875082876637226374729988229515417163819376528248756863006680409459662587646379411132882008389420466378854889117808361209986615775937353779699822646167428681685463109767563983156978238352028146324844285876404969016904703340226481256373534572001921383601479652505020088191131053793675014094089961631462002290844781846954114858575428277126435841100790736112153375447926570095323801472259334004215424096289285532394220255243282842268298946070611910025107560860766146899327383715906683104699741279420058872808472505480442820773448191027714824813827748228192509912179819826564666732377442709899633898100138193558675369654043718030366865418812093674666944723376272162236595315633991803306788619652979559595947396442945358306310332557976191712352520638503873349500325544198112265952250440898105974923871537205415714443058267178934844262486841004732399457085457000852722720109107480294004860685018846386760475851280920648740189994520872796728313976347175277585616445948918027401972530917557802964009064751666838242808044978503445680915802944451534751125050096937876108413899773115778028364152435478438977986431434058195899951832383151818596920465018918545132851095928291004062809440066335230619573392120331781930212381462168960751788544285548593875158946280228566211571803997892762289208629086864034650938641767086294407589260099409913927996008332077649394663791813021373432207929356644445644011258447813944213853374236032503791111763446791852543116853879849599552839863802800644337382407340845745740115672334179193862520383235897579897210610792345339997004042223381664434646430183759017743237608688193620664434919950983251184239130180148081642019573103292244143511484090312912376205102244300922814356561918836886257585191444994961302817150248477094417662041406401032130197386043363285444336129021711435174971860388833141535816827113084838803109124860445622904346207608614127366875466605641709390849499178363118904728803690379352740577051639506679991673486445505717927243608041821151156398267641264530331681558339663818031669873670724327493977358299700297890818099557164989507918549104198050965678221219512114186156888700104279701231158143164594929473836540950874162412422570921673891875082594577792995784259907023481271904247481667604823699236899663904422547988252707863278741614474975954953113149416557178837616004125267654040054128698000061382177849429206930057232484641299345202076485603551843569022359010483672582537452650804079976910790630205460251461407732273747096498207264912315989457121054101714679672955401175050474242213760664493559383171042409947480439393596189150994143971914385251375075864808615286065680130800796849299207386173191494781029671329005509380575321727758231361519207907240680912057094951077958522080702266506335494096129595664274067087389274091582401063052933077955746684670021648062600986746690541081279036328224944120826883036735844433854934659585947837349394090640188697089214258936825895144300053699210720484415560707914596128589294619484522623962621002185437813454070473327680187001905178579980292081792530330105998709213136441001623204712000105872326275610524323053592954977243703614038029306688200029465493451996545771601435650155903504362454942716250010596378686113497683699303045472179257068747703105106591936156936724749856183488409270694809463645685330887407183225981964423014150314496727216306264801170695381588748290112400125298980257763033628619021150102458172424510806856293343727637350766657579619995610515065998469797152202037159160326779900392200763075823755119623746409107286259357246253217627152498319643022562930649186049120721723731738355677731069586803146341726075423258957641630879917773959605761848002876276533077262086854909703349145674048646814133399234144257304181224023392894288778043830722925097476678756603113147444522655093545968626382473317390011852237666037273521966192351221428076934679698092075010613770394365940505324759245735949835320135897920170357705032067792303420490648009823757676721064729085458842338335385621975047240106246764103996624379443779847228606539606992226032353884590390762086920853774849010881849111971264580673973891364725960555050334003556637772784762512303358804553305886911696313929347150848607080789279194585525205804405740658662577660162076192438016572862600396718399262965095926844052988350581238294511557089833591428628590375027523242872780191988166672983045009261782114564596555480382879064716358740461927626180832709197172345035952730845471377110106159491824105858120840963259763297802027654697517209918074146174281549037458210843440322434694752298703095213141495738097488635841114954950339850540061936871490440061937241528542812271565562878035524714980157875947764173783855466358570725184402170461693355673351840662745332341297249848005910946050747641351701578366875560859942384222547937565391888311667295482700730607327919257046449336521378596716015438643299701892183069596641008560967182701789923400722357065269976289540968918188178625854351646802501435815938063080345739249968718285654142290532768179062925967614394877150326317485413408316143624740205706960512795935761401636914175400720493187357301320284533884246252346618683310106772044544156684469475028702228201370200079034307574511136731842201675816487782960710565474230018263891328212912953508838556265960756207041011015922008819370657496247360936579194458355257809789266501397989017276869956024933480778558689562885618237011826864831893901057564573935857999422847317235484450072088789290616415976751037337886568098057688458689113053771457613198881191389109100383340048952664237241055417542572096598629787304186390563536741693256559991430091844047566297904679803635582687413374061691259472048868220177787355344289741308902581179692545757490729778255211202748271950523261715511424267517763048413610823861257020704676157597829112559436091414476022691805715824156438292103011598898632951816265132650830229954119114993192753988950420147581768210335706559058099441770458888343255401057998514250236175490541595550574763386037841163855276125969789068906407400848882271545860895441581696396920809877052772692095295534516170026933852336424577964683420810204152855128023089834022329470819884915343424854918988921575240478981491405444295738685724718725947071210585867290743677009321015336094743186792959934252506888160143055174090703530604906840120984015584846517017212622696183612257487649657358733403814657402308537317778076396812552986339099139417710313344627838909289746104058435929058520225587005882299667880698343630909618636368182827872688506452110190091130784088218162162572034052919098587532398174953390324951254026191063415283953806563546632390391796939485193205150984779410799421337674248330324432300300839051852702902641867803539162239564912086189914788692508545078694683020519309071631959179250931344621608806674364911728960900565352982978824445530543728668518652258493236016074505084494404865301673268165352909971494165641046920290625918626195338109236411185760899760206693256649537065929954276248508999666111161301583316056496772504709478138435474120340343660444308929987210270499315666127569695010076746067092320469505605702590946235458508457924595045800948106019785244420032774356153917898767282206989113284105140195067962460285209133219026288254613395434990692828040285517441607581890710987367721118988654944610680212880367089011499245835882795324192024084196840137263803344646117474750867774914509605956575743606133320347326529534481983985217750101415032136869281498440482421768537376525530430552799308301327198176342773308302304901989230584326158383550609468018770501334512885612485023346630482788059073717382378683321064692056516606686966615147889007097086623788636466217018854987673545380995481045746757257882015217936580933083160076072986088082252240120918157796934872676807142673330380006074068774643716909955539960184722009131056305466244322896598813529967746173559275412730101411490259184575867638813823733850071527519252975360867289077174204997099599316402821786523373414634714158391312797054850036192863643151272494473236109439311647031537275417527209051716366934425461489348905519516453515596398327075047097038791738536222125927283752877931261850199806400574452277951298252468509595941491904478313100467770374396621656374022122821293676186485282545838019473566946590364066250306560240264049550629691000927962871423550217166810015348599736874663116835235844085633172468253530204954186050000174197454546501956058512307831823928167939723070464403831691163434649248487408370418336258565175585114189924040218298176987503953087916518363027023526711859847864676122965942803101881686246155413575800362119736762776879258364351200774290904308088136706742901458355171157857720632276449318058259126153089747090303154691441650950582853362699877695937172558332639279404142337464060971686844718960739228415237566263981039361931873855330504759925031779409632987205940591464729073469393379303008701398964819260579846401441442280465895158619659457686407737656848138691464333205175552357112921820628398371197687501475095459898267073568193383713410095564024301658445045943755043082072512283459504887804103224559555577967760992884328105196621743802172660658305047082200199258454729700935880051532946307405136788044250312279535899797683100495099058150859974410847163274325839083343055017953999115389666806426251491227943601613544884087361077129494741419921154674156644265915249896182439902783855199880651833893096142074202329941448277863378333656631453185914252030190508209384829802258024362336178422131166627952337738429596872427997400184023051041805309342985946050257800315659654317794354387366322498214392055925307564749825381393137573507227658175857246240752559555942224847322799649226415218652991303108745448146874371672403470738587512386302208919897012004820178766539566172701762091898102233470712039842589606115506631462701499491835390103999695647561651984597422962354617951221023603088660929062918824942022575314631933116474144692899838006933537216441602408716387990701326653143628885852735592902032552432843428108178608795160957044930289627120522544098161091391429640729403820198152432365848992502166633416177815339752452238787912844301963082826319133605475787998966149944159813643257685264552258878454591728972214277172024688740536683567242462262217732098569937483798515031935525549738608579414052766860748826916356798177288626925013510311427736189748947735002641674015990479609186663076672262234447954237834326504882695749748049227943576765841558605344224223351292097941919353012333802988386608241963921157790757094680067759087592743370650536136541561598325834275325443304461299092306189686460749095564823953254521698087309013112463436411601674917048500181069726978118873540853233307787929522804113386796051041097380102123258353269327207716799933341894469416932347368937793738358156954789176400464925573050132302102051707634725258500230755235959314543144000541143487974094982402517782245329945723509050116559127973998314047326326880417738964763499179998528420572646620075741106560157948120887566049323187846630493496249465287529549590835022811284787392196319438249073127776427214886873340780531721976468331522039491491800315616163713265641418913340316562072935461319017794475424904885831536794827052728453309069849884644846378093431337687634587481236613855565532861300479807573867448729710146962742228762848660356788449715127223886502516255315761726007981773622092130508805925313768660838816451159711030285545289956134930202471240758279482285333899009468150035089698932142180048031463289601952099494106222503984062258461331461398338534328405506711821509052396148935348478820891427470913164501944785472542199733822971725374863458384267668272457721619134134738539263773153723967190502363518750725452859110998410412998849542496008928318188186674782709407715241966589134421286585817597681318114586991839568850387014615356996834391308093869860059109618101034550528982820667037404991796698882684461767843650927212326276954227920885041713604530096814938922994451250291136819328319699968793896899178529277000202551617470120341706961958772744189580017885672019770362214050775554675884419096877523581514553786274169792186849885132819703878780943073447742740312598087526911201487958175190347058994709881466945443586460705212020385866134202120644439774752387923081239926810231868968261815730148289972459705581834372362465947996347974941294857409512274926700630439697054037692172505817415113499257443257555511994399665689415214233016802756012141497353081933239287634932654090253812181906926402371344467817704288851863680333661435531747270539314579347003094290729445180540936382676024354066268938955957150750755714348567492486122092251759042371727590613898929199185994096138742176773588320146575613264160338948534527927462323015394025795491413459891067875271325015169812500068807627604037920896833129757030480766865081411699150050479546887004799596792181321353146694459400783248544872065717898282528672272791919503907059202231649033561189838896987747487273086336259749946766048908081876707595414479609188978235125178742299547861224674861484393696962462874516228301572290673598276993542131179665834618837787163365996900826648137547977278160764882309960832378821065309038198425863264638023515555671447652152921426490884741588965416617459568067895309394072636863114928478424916305166081798450024558574703181486658038741866916432913487393746771464055160081955402043381558269343425199461111570979688118025058455179457448086326808106363941483596364298274381293672406515463632864612457157790334500402057140585448113583165330031691127627695475544722053314798659552361400993436082403597488319070651376162881437056641523505131463410843639318066476721418917562942267924079351640109049359794509281262083533788541373498988701112387815341775025700936243364599390937797515856257908077197465084840321125952752541215041672648997043648850782636224896444286690243590200431841204447395585845244605198274483522030875226205498359899783478630838810211169772503553682104741586404075789513315651438137206658653848280713494177045934434594936068751629445393191419201019518940160761074296915938912241387556288727817314933197776346177862230295179478779446416206032587528122649103625852873309183715267634805523546401838608964250985422345035896242929260434094261299215542126122410088857032428848715076491471508866712656868464894992769972213904240093767416944463188396700514503545383135202363176832822148615489303675083149058509297425333785941312032434217787489971795788689196456928746467331224328091024945592934303791148822159798884301914791726836329589955318145276663432636363026071470459143995316669506940264058266915686202181043394953798373841623512353179000279170055628526542985386448008898144951992934161227575609466889894802735644452800142015996771692311019710587483256697166139039483821181988261426053220686196939475111772077541783718686865310915717383438809333968143428228512376465281332914183413479218479670354921695233976957431511264379405291030637228716959510662674054409423820970059759606408573584930744431932598236543513999346140306340679552199103188746545534119450649816307111953126824440819065638369808640481630142245089165400528869960225861623137379886525306540240182522869095801140876666306518724214605962339032944325414306827306370805081924705845577556345856549606486953497588306215022978566290812480015095539199888629450999046210747810135294219581778081964661892483474980285634122058142827844528991489272813282061821654909576309373034449155310879617896521434145818711705756623425103711664718817631539238009486520397178710824381056668769932008193059211977093281303846551359907329219033863533747784358650858574848138599372996041114134443769994607758421292608883673997459366185500224218258786605575087637257452328234875533465903584992805630208272875957660135279946335436159910982877938390052701698314688348345739972013278434340027307012124144365002121744872597373203911958624322794149205274640784657770154673788494022331191044513084796555007591529606824115404946405118233820870099913765461424261113981550158952088979772224094041844849872721320633965472595954401328971110617590639049440185873929631329615669924318760551228196313336249012137755205914013295869403019900460452929950948635886549130469244569852106324812414255953689029374300078265582408685529369670843870961449285195425656287249816590680031178795522031656473906737079485234164659295425485457019096333224694625420810823685220046027294044456157248159275928164355193130055279308705668030245649690947765413579096573117795707296312572451956581047238016784482424065496036580651659853631180351936329896151155993017296589596485926156576051099619886906653483349746550685361988322468910831292091381192610789799063797093628277133582802861348081123101943692429690480347876169621328584214192732785068762425559044081898717915452846700821165665198999442247821614314678316789760301427775228963786876323190554947195242900740677537861464907614137751302744830626298794080046999168803186482725691780284758811836898663926432164752885001518093736328394886956186899604461857131887431864790439760800160471651236124877265347231244600857357483801234644111524833055893898291142182205240095870848511275149843408312781736087928072652820369295905346000907140427158975374196636885277211395343707948377845328154248882256127359048141653053363304118658843271249036358663569070565159981580366239448138165553871340185821064216124632730168246664870726590016625979388225538612340525872333095979760517464033591446513920556270324988674809392120648965763542416885315228941041509746699804791041486434550952487591080611475143636053374298060764157460036337007334387678964160191242967235596318670316168244896570430673256823508619356339533103137740732882758951458524630031306916908677826423762140600755863122745875547998327230715736816034591290626496163096639133027342966136704648057996230215573777574813003973170996325761088809956006245692541063103499258025716336169090315823265491552119606989954962742370804951785552231899004834672178786222175166262798058429130370263478072100836106749597233265670437153885255001507977230432988990393952513178006209519937333020529055209739790831132922186246172666431018821479698239862528533970748313528996437214019799322315036639408229819875291718402710261475798236039907962107424187101917173007830405620313062789008809520809374299818304072119462744513590431641759306613953990761288602076744732961484566261077452864719201644454366131721487487271103780516469977594732405235915458763555239387911961654809173207924670328217358830290060060326189739243326266008227506282289921137115239015076407289915467825878937481075114871570672444724768755164918009593125677129485759513614483338010057896450312206805947124979232032324566109491263885596400482755545251324472104525639939643286606589579095631784031217132548927058005810539894241672292623213833832696996180010136778565972600768259114959211135649987898009248687153931921304800457365051645620615918843390629784375906746747670397114114138181302568670168673488576331742283117927252011115377768336772146742160306731015051543171975405795858984933489100887067958658230258081059965042804071431203950256564205841681765852486760234923373689164716662313633887223047861207847409907862484885825419544731691881091840495067430092425029528540269459138018695128488785236312486166261049553712236235478829470993776203971400294732575312477191982344111549263200330107536888222796616906038536115371502348749154993893168261780778644524149680361452749371864347438454914652177812422083223186576721079474584665288780832497964639517530440713358346521742114783107451990249716500116511288606934837465099757833687819143048604586556701824691981498759759801066651731815177654457772028790439562255890400139273585713767349307172971828832733968366927014517493483004708837741641854533021204267119290035329296831798461288870165055449717999334305719797951027872097380847578673490542389089423092169394633615448138820018089917817650097887441406041782654174713431584736965972886744260977412295090435364960409433154874824769222157335367307797334610434494686819871907052880250384089510506227132082867810101112891458696742135697909517909706716334297350348882476578466427146051863618431053200836420180594264684942849538638287428047727671030199524455613131368377092356020813701074561127747028548203585034346494138446225951787245310134902224330775946274357954437965576311659932657837190361837090647378662706957708387196515024713578400273831855891898984613291898327396452929237594899398782910694584913932600435051917682081043609211036975763652704105073849347648704696237231298573367817055511898344994051842268850617139825773980642932999068162071073115593573019515248645876253750997300916400784414171776488874346934231304432159451016290194769887436057880674032242215091485033641441276716614445179243610895408784587275130299450878168919120094120404389107359204330081663756962730797360432184089298551294740495110793106590190356276756013928674678220821088243124551943457100477062868793252558767649072419183455567117125373874459217186174186473403761241549630751808318334970487460365874059351471745993679037976897997648348515493411779509958718958628885919527009760859492350740151371565995609941728648704789976571230738891020359124987495494085374336256261086372610195099737547674514214828352926952188896683974798352154320366906846188521101990643126571810297861796920071039630081970750837149851524510326335203331518102897825998089237827178738967487939891516685957201157168858835867471186787292779721730006362242178418450802796001687430783114517477465705989544908496534755991956713833721195218246024962590173420367071527530578788780363889961804045690425624649341752602530296008996606470847141494359363876714491124617772646423899247729749010637238552193010083884884447242775398728971019153020842662755282577101835503418970412598195349262240823230598257869698314648505341480763010242152197822194027164732088021750619647988817549020892043019011713891250555858131394915936886240400868423242908719991287474710788810437807501833796173322614318317409041888185650546034563581746405436522717382422960220229362863626365143668006864070412367786060271291174712135756786262914664095520172990167094196435240436978467661890230186939947716420471488057281179057742953372139270123070656439753307936437287376026760241384982186923886104114720357384401703814708765902266265002189491666134611793641495361548886475839990034583071411979139294499053402844892797979924371832672068062627985577729410277674398995503627057944888719894181907498298339183334624248782257602454062122136103202467200405679653368399810888850442269433646293571631346349970710957467449488475933412821658349828176505908196834399295287791431533394265678230560147792030888449307479486811690317554453166422288310465471105267878952930324796353987637970010588979006705902010485669470181749002394324988613621682455942925844490988724484718151278730106670893217707617896870433914816072588998436201253662774481156781258519951312750361988683190746971390308696825573589415489263571123127798736795691826199325852706724811305592344555972369023867355365894588641479754190073530987949155436196508370225493220622219935683566203484809703117180766396972452516161145685008263802391060944670590495662788023932439564283799773467192669493310047028920757452407226765743981493340770622525464516679149105400650093791869156880617899589791539185680450391545789792143516264823223584755397629994633536201801565970952360537142402575383270188879979609007466663927548362986395132808579451350079807845102213291558933762172671726249456253839180751765993494618513878776787627125496329808565269914639339490045521391360073701589869663612321731745522257755958552521856785960872992301003929536973573918403920067697854673235380428249621151060409993570204464752221722358897308407199791264142498050466240047255589065325716761560722518690858291033645206437237157634695720480619420099488979630876110633283218898817418416435092197444449642491152430632827512642652630683114877219506101601145851519969509370310559272336672160598038980828008296145724191925317271097517826329290272783771768265855974499352270937764112418874939697282084739665963087466087072079719615035062847009955246319043600525056282589783618390990076492934957302931497837384234874247681749195402811263830789315977104576726188246405200507474959390561230478034931608092902745468200139320692887983189904400041273613551235440250570081161068378004707106442942913255865537747314582183066799726682906466137852731615439938005212834105359219014354461292237029073802581325098559446159087941154083845901861883649047660471814196743358304118069531330320355669660847736379222969041633939394990692107089850149003407256228143770940283483843077953252129596918104191831453940816461264492472817350706065660240757293717588637890696910884487189074501239456806872014091494742952616945994387682910959674738021847382661628760717329412058610015992525754703479662731536229896605466451930424958625461944341010643307973101764466893168245741624545317430335477533283415834713765046901994746226942364242530737274124884796911870219241786413415590389689480385911575024267868503172358849737774933094216601259271921950092272352660324430642118325663738178832956047042548252278601141370803906419380422048268144665195830776317687218848232738644077781533494869288482384564358375218346265558928589598218165335998075051545075344321928351008030812551726267388101539006404231170187527981421676048802140304054190151162367103460438584944613178443378517506723430482574623340006779874255726050214674286577807976733775990642440085624111965285998695964587217159032709143912419716406502073734732091286451410004738559194417081314753163081879229411269131501695634163756000786891936719213776827696258739557748274815161927229452852309369896240122132358861648158206863780237823820033132824286930745729982749279345884028782192825836188345028129670974620087862182907387965670349023011840756131911847957675851292582745674141993036125267838448904402830519387399095181119739504775875596905448969404398411240786727734955305487013012164261381060942447719125224596460663340241728439349647677698039862241586569700774184397555552186159395350140154412927417803147420599053677226374546681581219278363018007714715372715618552812598506280379229212838197758576290744009484829777774329338001290463069131066073010866736178299039102530601017103248997091369802368330298677885193260042592462473728033247656472426085849716970300038798753627792974384597770363294362971196856197619538591003526620935958701038648395922397093686634608890441655126705270694747800941703592003438185777701623397977058988016395682729010980025211532105143542629231573975266709200077731323873347033932243879611342535479715304825949036964691127899093032241260646452122214590534742528771021122155267282726759405991764062210710553929890949331944020346787347775043142249814857770026119950437011370819148611105092770970390376640947092736045073720681202174786710812201456225265087573580935128901371886839482066249407998722271264849813371451167940987500815679871509786767651191550794578173274554161218559720286789709480024302715971925223768835739951316525794813389410313102234186918123788413467394689616719658542615424560922453100580782993529840232789559807126953157043175272495471904942414471195122546979727453639950461751076724692359123189856892532321542224985643889487477992657986145353467869621626719026648343797503595372490166752369629240109349853560914964214325147792797657097947001512442736716654872693908778839571134693971699737120063758704771737209243613694165230842145585727564774288962709398128245625661102366240685092023288483966314939012646894482293039324000650987279107299019748820313554463976738131436734600148101157080469112439599731990815572266370788404359242801021454970497578602784965921666725283431769778589938655154963380717514026044703650561347870186583758124997948885629585383911628081030891179243582937535433796877597952819169612302079594873023655557378708288979588457100237123917271827021317078564401767951549329703882414279140115928722283790813958777750993538975074210901592924269144184499043383424783304157900492903744236823736763568483887241438008179321774899889578405196165083831293848772038618471116071655573548297032797328923210305944484583634559280732768655446578061380902616896594580881327828828236261273170003522199545613223546313402099024739428252950513553397048922489684377729165952097488467030600560071249832198570788644005762722804684530463889715694139644625671551522834849165271187093268058458078240913512539295724918400934754224642363066873316053762313558033928297586178844081719655791951360321917626774720878373388724910062087848871384956113650014842195976100790530473225319924585474862648810625371502222100084784884382349548701662625100421212408357614395210477219115736103731188407604332386260226619558293402686791168891721367167836244702874368903275003204316708929811506063729759772994497315957299900772904781132902621676203247773971475638871048758953292426344148687576711202414473908565157774715013284096893704563952004887663320532691535069791536913076112703878028521936638921091476972931821006048671276621713135245597079706773733127665413739754851522511410985996178852318540432094902178776601599291669827476535494447642781254533597271270503061136697275862101184011313283908594144238014431624717984576609569315819176184070862215505969365918150056163313075644146773033637738228847021921308847962770204253163460815099460019272399772400543068993308215355136952563021107461623891819578786886517484659721186720791930507647216102751168203974824313852894281686311273761333744053187612770307823705996040380141611555092865016824442983572061672769771193585202364568744977549185941177441871846100570315298099592801184216724248083315928764480062956783788120490768684160633008386912923344036749873249256756395289884117960573243783954304847138933212156056959188316532075263362291775571093424313775766991721839785948784697519770374700211687559235457912616663195808030809740695361059769743738322497943670097758295894685512077701476061699229443840801912326916138593579996129268756121095832183019801597803789383112223424914492327820875763567188160690878172539105188952203756456621932345809835051662968935711252206966391260160277535277535695710548503961756932943652742190532414174291062504815059060962625282661993255815359448579298078250150424529435301394468368032078100969286396893451218077513956518004226165852002922123275988412168073997302780998300230117862064625334918818068790743603020928986952700879908687633401635303180355434912248328469093674258897428922586779389849388580495952392322989979703360630348537556132926392804995857460753579281050752814678522800387802062028467594682236806497235923376333747596464315694934820457385568908504510527960610653269345538005942564502332996038253841068418257509088289878044407962300529621949287480040483605348013522486230241749920870541081073889980004074237339159797588111341240381184514939742661405529826031487256612923733663362295482512731667323309677084078154729489140378648375948638024009036722560116856996320742949654623156031652981365090469900619143427827826361082664548384397191290471918615057904900980425368497307102787342477700581674963086393349773529620962244789632736301922092918011602798889385911873744358794868287714351757944169968061747495421849654233139914707014012228932161116615173911960705884510485541573826701598959677718241784128338037452855725494053836430845071555858541666483850837187748399780908213074274317416740667349492174195431331006985516373127413420372674055367956471631361765884847478224869383683125439251221212528488337959910095655964797773968447798423139070182797401247133894617025028477027753752360187586630658603146314914533623532851936714600272371792005728607810544781215287462529887621137083789124874780193260150736702755339999521682428095923559443952488918629254770695866081532570504860895974476989085168108354310796987796525393459670400339118129825636049690304342098192292226252209123496851931512489380116644375252832327272323770834913825603254867111168940722696641518818705667521169928101945091219048135429740394371708369664990080068742500576206082263445560498540296391508780956374460166056747547768844552012748687610603036963212505068842610865204598598502905637494459185023842837423549040059664229892255499328563900407642602080307337504427886064511532973072942595532681893055745671294386685978900618250610167619169360187404077650952145127164476338533294180631581037591201302050948175104957127421109965698452004141242757316867658130961193911218294846187047836319446872131408799621813223840002982497083885857947248519018860400358532553008724001746826608068606879384581668343259209295677764979800040674595861358580804767435299438575688958840437081899984847530884429394899404594090932127862572296659503917258033622670595798921533927153455883983014428314786882771018084049747746232737165373663547761425510651849637687378045654750752886896323254715748926637823958260173949659312348743407547485053260091065888172195668683868303920884585834103287442697607862606815011944927910439658172822171029701302574954479851878562848033851037880848014820496422349731841354605212253786240727266278293035713885944595357515428395663875588409642870516272609281303251523480892402588692058432121842782257017508479295913661474853803744268054219992582927243829125879672326586903135633120955486455676018637785475232161579105936291349401677116886714768039855990614783035900199936958714433106111655823637864036745372683735566466776506387740450084791545104292091088917571952603717465500384968990259450924463163224276042018861086735869719681171868038310188716519199668523246694457082062472591218100096935858428615068027200732041157271737567367985306716733609645999320880313218552135752665107644538037615950016562853974700527393379231466109560647010910857955474155227264426075139425610682574341352921271938234952167572699794174999436101292837976443134312446271336884456828468023813337954297085878172429106416903293820327544062071758097783773843011486064270403597679014768238412025892318788984889185149878158177122356759725909745643940294839113122320558109146662679145433117798164669230974686018233357651935402217971172833338924208669672397691156547639550470359144139113113590272698106932026776150525229810222792552251817061219389771635560459659033809066791202308603969745470390316336208623459719871741426345204597811526032651274225197976834257156292154229275140518178012341986373396051397691721344134314870617072253744830191776573691274413545304178833477124505469733075086645906820870554542439085924591777123758614744105460510696808701233573853286456070226584531074565933779142414902259407430278984828111356151521832819321530666420060930260283397975302287625313932528883314773372679523211102385824927980825005144616337208038765570343835861732387055616797536834934950558262530530047136272527596218678326794983502525444687884358974856152202756628276151359387762095955532917986281363620213306880775687834819161955908471953633486666971411147452155157714097911350094974421225849030118376834476369768253620906477002627214249178748814873236272924319146267845334482905945579570372007907394402007084260125298046202148990890559508981721275370497532126532994302604500082438069496875150943707052234748894293834211469398873620537675100234347000583971054803916050358416926286107630430067291037464997870914441987197309900572296515903549072676412990769460944850208013739643887943509264241970713955845367551400229796079952337396426599021065863615038384994121794862381246811466221123855065317355699702787190678118409993951596092094584391649008125426641909515787729704085571937081592263412124011279412616598440601657789376124152279466163149684948612577237612015783826289435298085006947643874147661674045788391758685174300164157011397914484222395430755653578892119446328316274487903423806770856638380767019456056055735899947298434000131871393245455743129040095248691404712061384555524854189628268142222989746797453176037089307506254188151897521540068521293308435505154237203206760629134603514318711543609585834556479072023308793799561508781723812628834540179372452851741332842120587476969199260317899635262858906922822505177858849382672081123397247393832380509823918626888881650806752053263952103024826822890077745871581388149891514007469205391022774165425656496203958495669058470698024203449780527589729581745359875633232904169823989025046629058763960455124591101030170087217093016218124915909351177629068443137129878120499027835422193870169622147428740170262382875044270447126994731647257084012540517823147411348860476263846139241235851763277255530778954074265584673836721117243680885418506620413293873242204582027997557793847893842706305803538269628073316783205591255931985784729947231157610484860151300985315679278850732550531416506206810319180093665131347852794111851160882120233000042350690553220369738540011465871108873758505012370496625186349112383376023516068526268111374995194780621027879446058559413356882079270973337961376438708845159098316032470757984383821701410732276140426927687832006003969608530646736394342908270727129789814296284638825899480131832204948986373669563505231173021594479530489770736461220360415954762514935854088557286724308709033713816153913908515369803542751205609250871771377074230488354489716966916588430604466702667859560331855985661379015240319039968797747590918159450852661709101273178158050381443728810509655222379823593709341931169107535479874791126510155298362491994209456182919093414525106647786071873298986384732998758787627850542577630381850069192814061825264952890574187649079756793267996262809803363479484434919276584779203697629496724740287548035014284593542319892594221118602639442042929786962930868778546819836015533852458636064449459479982746827057306831635755629035503937842585115846532262546979081328051296168548205835909551869982644789218992733531240275974135773901470501392836745681652552043941726612004902219153036860869052852012243695965353675033612649383837063050112935343514511511023105282231310385474668328541520551607768863505121409240776796331112966755176607142197090530527333723557354219544172193875432541972819824331739973594169730531670828458593747053275857795103661444077018545913298057184981621138477877253163268972366890014611923393267638437977941232793154884765952833538851156296559167308123894998199392238459062859525802243130275307549488984048290050882562102702387975136044184202339015188879711955959689040188783231575874062513572453881948321680350629713066794525872138963350458134891233596102059689747218606764689207836482880147341281057876732354475127584966190479321309776271215060697117074992588716656574175314215299726605481499805104644266308674781092771338827351914445173181087104999362884125764252203218199155826595966580153705869083565860007525625707645815622319039545572768151756774145916597564368821660794772896869748915020096523787089452331270498493192022756833386134270659162331896528297089351870132539868254106624333948219675101712113306378857542499235155198149521566506263856213675962746557487546143526525053872992019216310509080137488176557443452315690140657747769879926486111122954260327073298698461759694090846018813431397917180793978669556336007098661529865720695385231445390656570153719903392173483027915437834793187470022011315558485345041980900660993306697134440801326388489582205574074406717628721320112773816352279491961408057180442181789342297924681837369577039598390346400495330014755764026041971898708152838508790207593698622784271783948987543868677798308251557113980693669160375860146136512248997771747931153079838953985407618391874815398415415924985562391354740464480800376132113190948918229801718708244165207285041665161259894086494895848509024166859806923257787494779133523678312141151338843591103303776496376900165463946196553335635792552280398464531682147511858037349032337929361772845218292753240875619358866305641080487242026047498999879801472295440198643347998457549264755040461213833272014684030542266262091043483502597206591204322327937240488794156178562381220868733804695663854178702601690198910290966776587780653495473037994856039324921401208067947807512974588472152421806742733654692571815053489879057599180728708399703672090588700434376352299865190811900975596279029516584008283723453679458042492893463015417839925512792879930826719186780476888725935182154874204868513858702484104683262921164303451328257549028943590451679472728748704211363430012520742582843592790338402610019309021746268102658059434497671447633271075958578134241836526460960949080134026826891907792588186773851973414964260326239681568631842980458442516769115440201687278869862205025463482843986781943245564345330245960722658335995011146116381011501879046554594030903888565830585772256196530350528268936423067082774813312256150628047803612753183802786086600977776913491553550030632676911417228986270418443370168392753083222482634262126676755714966542336044029896370703387580333045474876785118596535777222722914219836303279995395347811178036377562597217666688631915851027759419311459779885930836764288397895744367548488247343530939719390858767827921541293029192024944489170458719147384661041945561862685046291222163404158605503239684444414813188371269099117950438252872428026352157695379523178288043766735056039731498691549196234156137882959888873594780940109852658423114516376061176331434632327033652681330033259320157298418028263720773130678595144755912558809786374741042242133951701056647442011388487904458715919463018307587819608339367015036700066582030090593086892972407604265492076759901308176005571271369004387929918874039457499276083333859795755003456548797982392164124612259816849808628589295647115640094478101854877278158645780853624349298946867220010532123222691534082938413941020641982629053708467945023267981580024466579780332836776245363889420637886709797156070251159897345294127543992453540839097313878163097961621147508194728922268148993371487436000516503717771806391298793465909558549256308013653781902340495669672947720554091197484742542893163098452863997643010828371684107746529330170514802859888522298542574482805090874421440672193755243201765246042070277533214523679987133978412481882636734429990115193010438617381721902135354473976772947647958185246086397909475837899345930805974609559362731429458259999906497842596158675732851319758915091507382887466582712824753921485280861311519457018192968153673820268818641961178257266441836459759785803031877534790902825526965368826964550678685495485943241940665213806575539338711957672745278867245309826155320433702140511839224497374032585608782243142069264912993970332627951008940403372730659528476423757681183695221805784776120255196395126759554784612150309676724691590937072143598715371891732715361855939900965653098865202701038241834368405201272087530142427402136284658171164250970502012722817894523688857902199028732760147703198199027165892986896906928846218502888050327522680384713851074174970104934692816209657877782469967816904481680276095290921167652129525361063284040339029351045405569580990175091741367087234089966032487485490822622693517462752968985107396348477323884129122323923434348775052282837729645412072668373538763959139489011386556856118320159161687385993587519388849079718220660321185506302835223541340298679917578355664623419386110610093402918761903348896064043500628208707008033435130783234560966217086302033384815742668965530612476536154239334118778305410090431356750248252111403101461638487654249307981518750784928268356666745334195593389427325845089194145631440805419737545289430031053041363010422525082228773453584026956843058532133299251111703829725528239183198052528883333127923476897799475879319962909086836110052042247733745110725077384772194619825325340209285464230394962949791666708020826451000136679825914296439208852897842994929981044860851426904462782034883325428643602847436372204338117780194700253089083200614989597841896378070256606142128708305981029280742772609034367024155189767648610207955088295518885690617330601659197284410797690233385441716559721179802574749477538565991687908665389076819049159694706084969695028295605997663291713000615071397656003443398818820046116730872934480213646131864372286340066473699231577896336752845903594970790002936951641174355719432503595706813233741159753066678635932763842796785798003524691174750953913353797862080243150440790190721868231170534669929913840353925756287202453494330639470793082986986952353931817290039657702727136475179687177656178329554946569688268113762899258078268293042763735955511969963016462783107965693080000112599187368733553224493334363746835468069916637980877235056171540759578650511384031995267528531727890557282567818145317125024758366604121383429576725733183125993341446251609303744526917867292822873204919598053995868438665250103345575333572186283297328202063164753490379975243341958619257187697442103117986494759922068961822159832770622918759626479445993167974712371893791559246239984614168771913554825068018219697782105174477119254181858759392480403640014554797486821917684900218824818792765954525272559763926926349636771177416682557311441287704849772713904911489184191311988742073397532374969990182676955499996909451711066690553199715520635524087881912372885483368021382387112758504318764701206479194193990448131201619700577080034390250490878303880158620467263177031125259854073358643312477310464947082391145089629687100316117852902044839416957413613723531540109007611043564256750079750919009038829862118588715537430822813536433712207680465982271766165074768412774180443209457793022262824070594216049210067585119578456517528003863555437222379345820263129685510164832518591007235845709109471209302736453810151626935379874951081911602310812312698245059663226379915171974864075496670701447059524799051913290531230563064827716953068262673454699574212870204880431203173578789630728246991963422757340178351395058524815762890154407362818817855262849451353843830278854582509929944660452426865943928080743272238470423104863268445185662174374668399936555369689668706371641967125953232813397775952943183162494638824692292858469041908317116746580276610755203121755996059035532816017527114192877810558260568165584288536167960414425535056117468080128488218060125803901182496296846693004842735789090755886297359395318139443204430299848686579418168190601537135320468039975051909738768788068126121784964025397586609311509921973646448719183976181991826790783768877926600137960734314894869289697567969266389205298199270072411608947042365152940240450996711243557467629054252561993334499633538033834566225613521688678099895014045614633277767191151489054668662645161338813653268730969352935856537534983025036026175585352396874995810067325928744112014256049476539366931844649730900989389699580205979797190217210048804660147983586767902895927696659318944320697072628499185169840017131557335333505350271844839453035694952112457171354155569443671174151466371767448575506957612167439962923999080424738360492293158219752164543378903660380106375829966565386982360312837753907024067226645365495352479761355614057991796398996952322863328753040006922413252163130031007443641204156719725700141354486427295619749943824534087656712155795422642641963956419750510580614410936454747759082457507466174128992733188136267623491041645790148891990272368388386225371925707796117532797004007898630187673423306440503602499350518119169768500670792468794326345568924127489560561696495036802556475747917714062633693958144491201981073975153682438200248041946559007818136077702566197084265799634208740024565213020518779353305387037461505445868887883247863303513147895734411752037710891174433183471888972622710225654712872236487687051023405632906001266073558151303235963382182415308554112145775064150005547459525438070138751545723648148722701104413518795557374297994780059619505697731019038634967023557046446831259702212704597570100227881247087550891846330908899557515515135305138277891267169076257303042994398375606945318401277451901812512260749986094309193554450121245415061019165109478794005139350557776773019614672128869080364938636133898987937091306015297906944844244623873567692830662296034650205097846187153091263472704749230354658637763365210153412575778731290297521066677464718796998153913139476096305101574060340084166435400156130528033050873242589980640099534187713249373204038422608292555735447881691927822970343734202940456373763939220862816706731449284139870651884472808898489469407179947302977613414624336024988787706098937367737332506665717319159725804730069159381088582265520413891562087321825986701713250480259772003178083844808891325018846883917501074686553071053793445945232036630174663374972690078706934034368901615597919490082434744298799785298249938798370760521079296069236264538363101603854675612349811145021443047743953670379711090923830717417921915282580048893876162415045816471013689338867232974149350027536734312949051653994216878134857027536954274396231647484328523595835010383707091593835543850686070246925434418466352176833469539702314909068748797148535553572310174446387445923609241551585842879900676148776405083780453593445447644169573129874358780587423162615579661281315423551594203865586747060353640463784786530588816517475300049885200668001245439763339173485895458334511818751386529815784862635254589326996296767658941421999418411623203691867927142530899227000824255593359028184750089336816253552912517699204811543487446690982744188108844460724930530202801007287447108331465106765984027757572688372593106437180699137527324813332910573313051210019199294447706017762803451863524967798465660345760787480914424707114784061964146102338299717592061088780344099933250778697817848947669235081354848169211004305732988500856019952367550147846452930581234700518608377711438634195669197463454951425759170949857928454231032923167752175487589473761675664163216637035934316620536518724699788833992679664269046027405833450280462710404099523216045875398136878898800280861180233763777405166022166241639261133666536367055435631405804478864630594924088102303728859728735550650965215835219003876053790311218720028082114447555984801461459271442344438776480853041445640068492190825551525804842825665827800620088861148753880079946518040751463047103139564440904626068426471998047618246881806435325595329464022936747624122636616440670728601773570150365381153530004044172778216042852042130350672293153413252769012350690692766232589117879800242224784621927882853742217686709066333699598727468349402734712411973050772939635704610866075160829145549568203985852902821777385161966674581122922839594805584156569958768981523991255965822278153109254806933344748119478921749548003783359923539480707299331516739394260039778451623152605175434721667371653741498915542045738567680623423809849683577892642003656695093712145732810239204384261310399842309035407009398566261066104382140158973333705452304311420468932729503571225352490052645460488915021900478667005018896670640818980376555052131847886261636520482483749809776195173845312486432943998906894318041741182715501918828703207593674838812993621195146667210327934325439141665806232122262195330412771181242103032964365945117226497059194608319418356056243274739679980006645689034211260162965247127212383752561908285080558174869632691372896430455207506785913588343495441762107989861461613401774046952076919137903892914450413474049687888961850747439231874608541749819890481611514237317749929138880966563812949880056624806687253542287256847058737951516482350900443192148006904175344246818649621636679302700912876033019871222758005268749187427619556307767540763509113029532024588724256800558798105305721842479380921441457245941444240483400726924745116333518550200600985220046003152921565072434744038443437768083960156949963254003871628985905136766213776671266456678804474724568919389254322021909861975773749227577485257079089108145354349878543807738062121398495595512889472346984990841516492557219961533396604766467536116316760131158508089488229522831560019544136376120918161514512501704942440099273014202031694959010005687715673272424710872827172260095736473968213287654975717510201540568453294388080647348870445399929680048457871874688875615136330379686445394173998637034398655393908676169241864861249756004852898961983694644098681695267950484988660985994166813474726316143420231120470062584482488296292148011657559180967142327446265734604687875362465768319863520080228019401200002582191286370830136666819146319717310534006571165386354844351382951286900853362531232401102976662187342051907507739465762196215020837204780965158635198367972927273877553764161256281978618447628099216885656005262531474601646366391789221922989490231499260638444540888541730274442590784236298566717697766040409514665198844087760604486571404204519893349794388770865903158408915650850050645325795724754589643016632798535294652640702686535682156550441584288576515360060618661859728430765026665733184041966944370035006983086290592897039603451262899294212461970077579178870248799166785761561410191424092680690135057341694235482323304190181120770549879120114858491284126301072516542801960980390396785152639829791231500665512140160250765655153495624674746039955457477663940745055180695351630983699206405711919510258339085233451651392321092100393041613859142871404602659867823095381446804210318207721033434167280912961277140347377041635407539427203981394286510233962179158190189874686974972423570660112262495301065376115542345349649280066582220257374838636035121640509381372949183788094573623837631447305738885923065562177840054635963124294821031412598999441664686651367653858538545805417265312221060540054417573641410034097744647984518099293359114979189586710096886973240682286548959710669679283125335684492983325846074722717311117311419626924952002708492371220387650694209067054395739793205139850308085143786149604912195176204002470927727261948481796669258294041065949721398362155886757180306024948285902548439871650029932685502928664386861942294179965345168891018902155424912553969865440772899874337613918875822027925550509769430633985847555777591901723978807448719911854598546880933187136150928632137375345045425489772882057290610632519979489509103638348707967591132014306481898502185466924840809616593718267990307344173096924201052613932304832050336365126180514608637469454515034956133646108689793352740554667162287737009385506698888133833030019752498987572210704711756560833720513463146191383099350198949727815025150292388537028721899656325828501617495657016588901674755068279575105590675328364836263783336609712500036350356715804540840398632351680677764959090126756785339616312023802172866761236339929920572267904042962975411628656982316497251483409264548529766049573918866935143556800781578827396471624021399062065888451112988358812471469490287202530623382752641826348983710088347567606772647247820814277298302283868059898169970083041278094997898717432250267387951236108093823996244372296893447504804534368382358450490567640686459206747529679042194267363751783987650427336145382485314892920025859985900165714452365207902114113866577704484876034382821948246197239573698434917475729601464811162935416170907359885062573480819538015213665171404665389244412968122159678674795029858873708923227718321396542642818868532689558782050817459483093304249073208051915326875201370190370006477545181849171934613393510920678616055109127799940387652911308001700554636321782438016405485078768551536582877508359732562168474322811467391032691275150654375668857088420243620467398662922902518995690418212960596306276191048056018616792318150510286369279808352047050104567222303108476993487322609679679555212760889195694543916523143113644444728322034649755702832811371490938242747025275490012196769304036010608264374022177301797504844867885045713813964814024432672027958034212760880080125666149820088129954985353341084595448749299385014732625865120781661339070281648949304473855193763219603087321884732298989579338105435999381562428811540722876799972630988744040504683924718185149467740454313091196833861612094710082694001492055287598141333528265558730432999395833228000651158435841410116625628123568377848409549010618924297457970917300871195641854559047971241906949663304396775808506526634790697303273712594873237288524338488261072334911748777685371862828545526856891015696353513479217255495437311709944742730467657113480270091517380148869478798473728677892089972323468935770185643929067152220481956001392848299976158339242467893146601073259704724161509487174230454336721804122837677370498290207597288586304693687485406379212748838821298029112592666633250900976753852870769708111853159975599361908704918391930892935275438541447547418030072218352617688127023286694945573376236830782250300422342288769671025356544875640778829890373843002623010603832303652016658800193171903229324710925892459211606891192126105278225675810799867765889569324050446374975527140390941655594889665732579295020042271024660635718807285797538336818360447490322091531645512740918297072768489242245331842397231057909355999525277860735762917760156576617990981710624827753997905690094745849359343922040943356155788859873217386528018634137646735580705567483666615338950866092852623248797895404475807041454276703958495098879662577827943343201002248235279255651079127731324074805686202812518307907815846070061461731080087556734055169741412841758222917342124659139560127318814849686165693642230642022974971989137104596706664267360281541077048119082357893554658242550877694650063134044098898093941141304411451294699663744046674979777283492395149177864021703633599959488068669914366716976098391337073971597185199457949532838017320268590958868258192484502538253873278797961647120673112688192852222523988226450760156423032476498340791366155629445829992961305725222317833156105420671259577299596735145626732756870672964629846447149908238601525258713605367362539939860103639601911830718347593096941287894796976774413816965371168616693322751196406749516728191748501336752040377957373522295362652377350397808571911457096188623056418204254140482060091041487560339295574228594245114478361466472650874306432780170081846002151973159669760996198669510368776917597131687160958197562462522225810154184734851610993976428587254749961182222203854888405337726517967131357203205539004568452718897179924742731544096127887306337105077996702797591630735974787268715104530706484836246552865283244183968800321477916970464354308467960405895674613905277951356218568693480857711810187293284805721052806003483063254230587255016100016733044215320778151347951345573417509857374613705755026643375481976130292204287315489593962876182007046277242418905047331023329290827767165719059120693230710214088526656892105459568992261929531965955090473135560146668819452221928197351212340194810579359772301619227202055220004770723570698797307272981805288167146871186055630564231348705687914189969092866784461355954211431883948043584766162964205375376878124676320841423887713722301699971204788633819892676546215964749337274960611231182636129191112015115283889464798469677899448648802233403547606351555891121391608037857694385233635201406142710128573369063878172124683188316926376751466199993155505046268041229236717024991383703373353474312005239240847415659913165368055723896629380331979075221754328417039187455547556477410492464296969751557766644932107134974902268538150315814578188428604518476288289204442373021147723417414876867010714161785707232019481173668481251811901087588956528174888013378779257905951835915890709863734599105824448873923064942433282720623947597912131533991156001410254303723152958289983765287792066730166134278510501020291784931716954584997828406083294805179190289874458688876916396549569068410374512126005657110397120172492403632503309059079804084650358430649872240201827335419694524920665279716836591178986995485367457548650076635906503065270367362663976984319362754731939673729247902051484994575706410127617043669333053850618991955827792131375302291722633505269077515027872689105828993591569075444647399391263644060399670744241088566190753600720792309686984180077360660776887174998565051844475221098619112444834669693021252418133699282608172657375326042075106808309334890655256779034574658617640497079584578573403644498318870017986137195262951991489026485701272981844864590619918668965879709664585176384768823095643999867597678421426245877604819608581799570889917163094625005485054651565239593215227902456765775880132491100317087169594315396611562492046155109106815273405015999823713106282071726345319059175075928997366725075784591620058853580569705313948568726622697699773678256065136367052170863312333511098700699380978185973933040130753012610145058182253753320866853104171922337407039404800961094852004543796745206718931490923855302589074149872559730374803946050290447107470950184802817110785217498050955742626684288968949456327224722874023337290860128339470127040318206205154142993063648896097887418013450850766732608492372223667612152567248165390593015108226900621788155984709977059579583789295132225035030546939984731482036859284985994236049236604990254477124858846605498694671450196495946434706811653841448199058263878282949283553637832129131610046757124212490625993564005609817815696925023828062900124976810547939837957659458289735046582851388930281991966668553654279157001337763221553200919493350206104011309208705499328079076495450078811774444512653555383714573377892576983588173220098542044335024982906890103258448106807664008444528996650616081933520763587018563713351812349545474609015149874619475179866556892708037693258796032615654746420652954735231182380817695215875951304067860345274591790902062311707668417707987567896749524589585721048459707209417941207386866230074257155527814940529438939481479839416222859908354645230629551091835007807369277990396160167361241317024570375223492960982717609586299431363911054052926813965006959612366862712298064502410467556113183756204868067755248297578487003696819108403769651337320379008018322936124964033380246557657800487992742911700432253577179024873587589014466097875851966829365929404743099522165395123205911078828784226943667029888804670765155799634516500915012982214813217381846636550273995023655468005275401793336669159864564514406754859241279979777796656168892144132409795940290722013855394981624827384285814557772726699252728312617613093194419714651416034550292465865972623972872744418719802231056274620494438642249342487533189256724215498834368890175278767702843987799444614058817469364645469644171818046876459199739328026439295922173063460107424874693840057598203416176438767341395601319859230653446097990094883572711104617014096033030659877975155244495413233059925883147113663352185831494303185802651491279583877304750895510291515631381230323144596179721786647950798723241929527930011605159862055588069463436981560962494375117381602098903167478994901926957510660872382870070991413078737171598650040848480143079744857155901253098466170340092974434390550916645314504819744436324010910387175261804121934833087538942822746724498480153938450716958824329715597787369879935218894653747178736695966348273357866893623169801336846403229660456866443770588910560296028637022212908241959132834443275135259535758558046043859627509200878922821937941084567971674114185237489460095309320156262333884419382368202808591332309848079183629485114741156404222964957627924216463804144755814813295387026728990677095465960004130986013905510332636039072458647718349203784994706892661748962212308863382830383956562838052050506172615797447522298286436781475864591498299210434014955293618518022417382368638103535944310085406682636639582441948429130947705239864035947738387609271800357425543786261636393388619589381391293727428484028287496723318588319830241252791565990954166632060037732605104512077067414020557058577891944151704615935584248660859224765831238091959393022779131243239666285671750905071389088290661193723318410328989344066643540583527143855762648764982704898544852220780012467982578957991151353653601310257338275990389548325329708755344844342300693723801969734839390203458783939888626655011411141128157280149008227707965880815913351126201965785143972776053284259390188522068391849570146349663550620574457410350692893616135073225875375335881158278432173318253114729970452015411142791626136970335741132574201596619076184175534162677299609819391986450035248473816733951741812999483358603054131654085777626007715925998965337241219583533399263008071964330783632684432557582433702136941731125802786408115843528800590794480199392525810382747350039476343817123190359964035692260159390559902920321280656898730982916716606773937944793872297680384386456731722227673156113905572335345104949450763092335669624964871994738158024445454007898904309074530386301138731808298520960541633251343385318523246421439790624821173656471381435739229553599668168982921744459261471906910647558553257564282523249415025281934225801011722759206852135571424681679754234725795202604374621126395441458704004925905996959088540062873329260230841147926614252928245704982924391097816390943429147302163156031126873245043773430929477411056703161521736678993424620967190527466279908232827477213683472797965838532175190995781689404000918198509827535622528549146670686353055160468402653127738650222936031281044054007083411402153626857237959732662794305712869317307525993592536869455017642482309094244647186123996117784433489556726039202621808811741434141138022178119103218325991702285047516239330026234550605498559025080947246174016071637590280601792215703225845536433719550035429437172966104134166806440453195164001985832019278214437890022507316503600103291565658194770900925856712139855136704842097780337067799092345763917384541659432412340027637662140190624635955375977783056922517134959275391743932501044219128567232905611717128760151946440129977483180653783667465541306642947009890511729314019571598526394203908671869523605583323409053918517518629719182554258520455969405181814208843256999212462346790480912321208674713795429406528094527456594266023051752359791103709013125175103799365665283125218753430582472149464517241806745512591513544872558182424010346842378123855244436255883544475954461040665986056637368351376213161613907083486830988715753091547946632066717809547872869313288274748639783750700935956209733027102416790318481164170122581559630177794122385935200231575965629623188487977649604008800429279373327571805305086319011798400187874772692839729858914676531147487499371044365715756582055573441353692043867367212749269072375720377879595433912392242712519083474267011978373046184714054830728087385007197972054102976265274612405734330688227951223589500155206700054694941199017025784995910102485448849923722153211314107425309631599241288101491116450521521937703985430407413519717107366362903714063384188535530883425131318118189965120693508749871441832349897333657167859185797287921483616581121496882572883459538712828524440177015811050275393341763046357185359979277484042141956793222340148637426490988467421755347066282171085409401485175064853233894767268028676450959035686944063778424374099220793101935870020464282597939976056983026115061118830904973425746862244867958720204190659535519373548022823643166914349332026179930992473290599922670971856905446845162886694288510559370966579414127872386451088850724039530559974316525416070499650081859531013197466137014640323122301002243840216630322158571816958030940097584679504759571720294339628687410724157597326481438695972156531185705812899340276006404057967523028760722417803550946236248048037347822459747080570951711515993894039748773046864989036793282839454323144186697997491186801867984058903951219979283597583330943212520015713463702199879804806068128211057316867903281758942202736076571081578571610675510691392975395019893149748790757126801035152522156608666153086999222205545633389984987903960269650120532891768782544099007615843038302510249856612833448468800617709910360376557862213647734127743787161298204007649307262742628132568675665516748300216369260344005447786697028453477604559210035879203949230185666158027427101759824871420172741767153688930169489974856103253210397314139909191715640725243165070534420708963292588509363761649570500954279445311884969528989914882680405300991913849990147650271810226434249982538706873980380672217844875568427096623651447591895227563208994265328105145074354129871688243738129471463647341966355182763336072917750548274307316938982409625042997887692597650986202636890083364799729561842273709997683192829119941675613301923214925025967089532573120989400171458625948461685868121591873746511215639693577014292628175762159012629623501183417822906418354077527798830428535589313694027835021951103390741551918363408786472944850104466819207858929200856888715745104056191337601896815175354654018489696991429583916114039294591828347498540167864472428733931806611306495711964449131032640665949484993824484874933810097854253693628750496833557677512196471173928075930379670638913207421647540149922749856399139363625865698733879273269732459711602422223904872868094548922433303934593661518107773425928116775363325585790551758484651179188887827774699062705753725892578938777864531745442267592229047833479227980870776118806614196987775496269938873890495351901432263433355959465657010490744117473544344099020939121380666756460679974932786835096868699187953413147961851660949837231960104512485342306173522916675538606804620845018549298466767027162332969959243858599705369093717141498391914031771976636828122827115048015543592599397916966957381164682470660362022903770457551630923405628635292796542125358913920280544189010618727394880281485026312160381965097771470070013513559674845629506442680388284858964935867902277501119856532228827126438210875245150687629787192305264778072912892749262612244576404390054649271866638347819151858941843770144646109248462047095187898385199542878919145496197755714430267746987038748827983671082328826038392546102337724693505511047346411961258575160886622698009234861427098841887082220950248273327505038587543702001678385493926685989501634199421316586330303720428162804674035141960848516924241766698307649590865540837510292965172256152235358094637686980775556866970970731067167718308399616530599627108743873097888313713136710300708000117213886826541034622453709618660931370923723666430052499333923021805805680335848520388666134868075285555322286305239517815733943890794361328789932986772749910340288390821429594959984571005303322070428831164919317337400475219194102315824157523885269355948831649088763797039819749880336411684416720863401146585350923445541797608859578258815384119891193579111546238044866204598864541708940678442943104510116253292863656524733241843778818175591797376798953513782889171526246439855124326500320747605216155654439690976743352617067035043602578188656088677618144829114635921050732980924102712848525411096208657250231210326514466894440684224909425637468584393201156713785599429193147081771192220082256590980837693902642100350869244488515274741055204312595044238338893135779226256874768880644683948448842260720448360229776692617786881617553968897587249264010016228217871722141120588133384383035619515933623579546721199213463641250776761049733227951234564827473258179304118460432428974394240764377156941935744570497761936864923316720089899095515346745561660308672048559172605625592620792690598984325283964316933153690263280100027678470707314209733734346451617535694615475624305713830442130772312640652318331073871648894084564992342417426477206782823739505442922247075073886294781191088069648643902029854441757444705671262706764193658616045076683912253194961508766320871526061012065399006750467277828377250438205564061361507606188320212595231668715573762536331535130165508201928088838535923476706951346995560905832205125763736652640136847207062464581747740686303975059459480736521409235124853333821304456069910291129028112541517745329113809942133151915798693401300613442841484594555753584892918974216653136671121231351848412931196647327179803937039506640873182011700904553896725187363339174657339352008776352300306084730914018982435271262667963861242688054011117516791478390861128389155982283948715240596107482227134031072508682765788173878684484424315709559163930416701588057130030155806935257368413583587961244409533235398132520904629101867471205063856729018578462237526725036824321935648339773773716959135282976625452008423774845896830790069342260530130797099263896926816251679919176868304104110641927166720837809863676096537135639922159965535803635818606713028920688768898533034116081397880478951941052311524339610730352952775419711937428603272862536412996533019987550010490454372958170448313148506147905821113077433105090128392918895453506177379551673344813459003450909932167418647467598512275701840222539259105671100437401669939673599076829463726149915992306212092100743403887735088498389887082386758500439699330441632028917791173478208452760756239081146440316996113018006948144374168130534184029362434241509526545527998456543780038884952086400685470826109067778866730331319502143657224044267473832404943615547026032481595982244676793337960384062376241917125344381286012038425853871223854320592122518365996573918555016253287918718697718157629422720967858857569721848608028052644199287185109109372806865374819278620341918623123891490469569589039587986257594265363687230034501628247679810921580584413838784727328346322580420464360728946903933294911610028102993108887831597331463840232545566849974805507656134254149727751764158799106138986252223067396297305793276802184808592870836001540282280735857559913704941877081209342556535660383060311014016999706620916874377469233020311067637383956541207675424963795201518177031950815346348375771583008821906459696261008020195728014410944220605741687426447369721339280524728355491079883429038413329895866927119390704184577692698711258662797254042345551843500073496506357369605646829680205156134852806972025690341428271912243893438536261277074211092513533267983000286741975116444306250814727020294009098574615792564434410090052487327458477466099341750250659475038404918922088275422232485239429832438665802808890921983169423198608303918409458431506346808275771788814306715579995017955231818188617972429160822848143288764168454152002016257180041614803821934037635201813814240815201305650481627782423020376820509111641280937415336546679972803632767429708595462383051348638554721192253060883719940871997055313528686667462256034509965890310514334904220872108500261932895919358457967372383961565240111750760249687878734452994162141691120858071756372777158885544245800783587181052027120869635583284816817700509310653073758647466950671971567059076543265836796843416520689166160554114105509685799190064317188140976926084980022351731690209301034611133807311883001792426230579578797038428319989472123513456121913761264874586277968490083394113562605416474870152000832830512459745476166075789529440598744334098031459190775471025395122443161996175587164046525181763654207180170623943566728646156910013905586845085610468023886701672316986183641655481265357462703468122671792881625980939570959256826126931956932903959759801915314091616177331888943009682802099267079245270802281993354567977193832328918416851361825292434994510384716757244298908296854670339637389381101755542937102754283577849116338169791298778355017697090519757235033847435798903300177722839739196611702824740639044604607650069015598229893165664869981670738436861095092505900539209696646755880651200336922930056977800708170456040696025230284210143890307485397333275853482605753769660416827240481855516976518042919838861857923951872223710686294363008298948162721322327442014239413848650989938239579959643637829819290503809630894734319600351140287162224882693222916451147410272699433143785890169420675772161351584290398473267528886796773805935834484560151520412779186202008442948792804776051838461922463220967542669766480160457308606728682381886898156286380909560240543694061670198717775442894692184966677136819543954512889246379671710976126461879635101677747887712822759078627519846712304851421086313451162443611461480417985143613940989491835539858196654019982469702449399430493043014242219230096147843563209370560698384711066053416216279938143996328458847395511011894343927600045421948901999226180410733827272010551116235804076521533178508120058028725589991240446312766304679213676309162335104905572632567546433924229278073525287595803451251891149132024156693037427002186252188253286792275051889952504600298090048290091498291995076013356536493791124222770792242756347877902705307779232773758284606250830865977427860932916715705094561414638695117243670342864050386249545156160031699417090059562162178154392011761470614480367306409658056258857517729592778025910781333948097701315345844460858613655267201972295435726888539358191842785374716370124816998605975799463295466025534470286790494752166599675974319334050815000026059498407369999632999188477925328411477155478078076904799817014694106995062314972816366462453044405771374668012120820794950593039258916939878637836952930729320878010003214954711137727129715214189336648971498781310652963345300068032853544080006594412263138607074874176887742749518931179039771611831025401800863110739122603396332563218292538574790125731861602861834871056313501176064046714858001028044586428335675533157852022182327341259887119869161338427144057597658424197635190917335391072265385409349829788380493138509953250583555634589135903788915731180564640614616792761005871543896683697319986718442674244873759463969049603894995966496979643879036168275886330399790793581400289969698211538313987931660126507735030164794255611610145916156076154021459292801722970842607487678853907456109897208808240908098345035891970948873107548423630124848302799279284114906653970899573509918569690832558346385188039377189978991275851235345696745391798271680996656073437508963481963860374944088775024662630456429229728397482898252204429678690499356193768856681956013472091849554828102656494616571913814881796550978904374436798428636855093950981460260310011396851580429642704480816058621010976248083148953152181194042796685417587576058844610001535647827945555374351952861287826889857234376010845855665312315357484702702409238839602948741592136451373422039407707995215805956797284000423271295876748298421186684703569339830878010532457140481071311568918583895757791825153824772162853122518866748024468474583936959137189567266236257562744801475517707637702415695793698964611141658431684013645022975553695647959283590682848653120075165186265272457465255233795022742812452620343959782835417787567951397074487308953314930046712050800516204374894229905810657883081921970632649683102227153665009477134287136435873452692587243789841462791863974497448721770018199122506072165601927112986000562539478149232771938943086897282018486789986271588758038032405601324269900705402947563663743436440553927087086481293209683152805945653255753897874619307234314717172465946615447145965143291640857477939968116379530459872352377699009805197938023749057520556880992356949483751165146588466579424169036330334618117676099713489400527201403275646374821322005076950612997850885158206017896116633530676720578417668411871812860948311755133093970701015103660829396077146095595173272388650723424960186298652560638383707746802712125945288191157602282058813433531100629105349417775808624895419265971285755261608718654896906830518233520379636911720571398560944720729160004464556932145651518820595223163409764046695111379572373153194022308191342620986663432333443146630299191789106157209225838578191117894425042551296505473951483814044796244271054479276839845836917535327164529924544142172452726726627450622488695830024946467236633178910820080518931030091357528713780140726761485147448588054173542120712458306475328623363818664164809258360107006272433297824733344700971365614415153112389857583769945852713415502161952368381582545191966539877594351884177820304633624163650575808344714694605700085696236829004669938872548366945402837842788120539821041484044841527550378305085249521416609119039368795761183485085678304123496074693133384582550607658713680982744437593453352890681617419330958175296640717045823140656751184125924065990155600572461998744178507504450294167444846090769041732343871300696380381197948168297332480460288224973974495661028767245142738862875725482435630583827919912871649992548104458742146790181944106692102636608319910079731237331400028128492658163516527455959290734732821651309529730564187089711406496878826869982792649357738893195774102611700474557077450308117477075131340152861970310561338733117810641986020137739093000304428887551765227673482828054094861358367989257561233097986413059417010826676475247255183449314589927416594122215028556285690974620138930777392463910735523147143110950348089893816637185582604888248161066183014271957858192158994582626038071380612026440106408977475898560608690819088696335322031771377650461359153656105351129089888097083679331775642953118833474095044662300460550334283788232621275626810269289385345852009240905301642990596551987003699017194327395697534111786302250971057129296400461792252237474860023014860963169642638321494624891778191925254036663441457692883188981340190127737409054279796141817243134693579198103538963268151033689285932429447519883984897847552420647966301114474569246352178126999021016152997688336389255648593109066740885281246732399747085830709482791809412812521062970287873387646969079819422699202469959702491649343307680389295172205521432620684554809039037274453424281414654201820544882708280452163112858272035776780806570249953334252592762269040990716016182591537788824316203612449675496555942648386508776986677563250579493648455773771750492159578361305382224504357249025930973762871756164169066376669704723615780885476867861122453328543651451034504101592195613823812914687091700175370397289179933561872533172456425586061214782742803459036983819757224044348304289527500027226826372758832935647977801681030920956208385144120529920230147728400116101180219431465811044857268262755074009099610175650059957549692681888783012712744390230528767577216920864760348083986971570816296250209540599955842561814915598740504310389384584758840792736982273627822041071735447890178093237930424105370764620798339977708047941785557190447907714490118388374782570583773969952970108810065136979763942699115477790102680935007464383855785410822230144191737175102934223577546233552191268879751447130825518742770437866872296084388873697582476065863787506133643051999902961030523407837329027936077320925320694910613726671604373186866702748097488609908048861109563291018994232248854503004216321257803274678336502473345763933272282242647578260928544799932292685409594276667574777331827191243937350247579735945233782088640974424806463196392857228621818741353387161470067572123407328572434084641275894654884172746850957297759173829415614188079262277050526043122563935793336595040595717445670219489827155763827920438614633039239891924291191925703427599065545793921096625932317403793676463617232395880343047108476360710314132546958473462691788411212194939672696606106233463053867132749066301660418343022688859245188011298916772485371660165289222917559089988449405398436358086935124247234384895262055111562738689772464872482233340631851377054850520160365998348576466803225875681519502849589546375932206276821848051112644785767971680373132628842331996603409741264012395317398726754744825859530710659292715546050296802106394690635049956622295082295601188225848430639090298556032860750317710450924924291347833891539409561094869916673570109124715411799307627635240469788674551934721694953587111017862306221844349258975939126705257385496016321308053109448051612865801333195873897116265118667340991472881178896393612578010112467134519157699248786914329523495131872771070600079982697253007823785895537477768824938059801734824390969084885022335649618589507201586865454112692319043718015335393472193267705403742277524713506144065617341253638716556607903665725152274319442570734681716194093807425304265766285997889317854083083274063009855945907598685450859515922329233362779962594203427282395357096011584608906050876052249858027963789981579696057850675601391869867270219136132130830519475206953048871156917248592105149349396092918050769684815616973019581262472152753566961114653801605957275398401789623272655454419855709260514192128540237621130675500656548812110734672472898741635464677348469492632392942973977199612509146735605291469802994769653163515043707280531862894018210260529468043087774227528733917224847557206314371699573648675526710578119639613057764848168310782660419075375281584966285061225994384902154818141939079645229810631165059983699117510095665930049354149417243627244163609755326446125023612435221868179535000410939228026432818458977171158925474714448742436831915813043529185419469776472214121701910777634190247469997081394446488260994487013545998549221828148455895460659382676543652992015489625881745100300121465717112649823999880867406964288843942106724980672560607754983816434705616002804969061555610786448102120123980249893246357567259818174215398218945697165225345478025287620567275050671329084602166873481629872984984805039757990371273376678301285548745400291175224517095555060878502268694399809007207888670592373946641818093352854375975626676456026621733717698953386168831181060426275253297461060495017817648009999650102876941371605072008504391217606812887592039839364737922561115507085858886941836038405292153808692455713132703562125072395924503005668173079735710802204086563334012691331842173362605605782551079790860570891714926094254234455970042868456814133461617648204852574979346489066410338435540171343543194518844888428982998675055289724232634724863133447600946856899289578462152595540228519411710395054835007120721567707685170968040525911515985171019925027035415728971725225746424920510189267973515942805846808723146863085498751999820684491367386943997851720217563662379271659207076104306603188823585386586777182870255575290966920182018514097816464858858641348245179911683571428029748909470613859714860844407317959015249452845670614116720154901171505840699305835824913025400263979709903656049688722178809260205500239918338334255903786874445527277686298587104024029059610262613018447981336761243810108393530903695291893341179245720183205869420367749345997663986004938860080832488781250985609263348387469576330678474230514350331944891658748189489723857877904093770483032926717049955456677068442454221985653030718001663310314613783114629510513993835256743028214831598657486452157202302955366953522991637820301462104697259586210375887694139192576488722730655241431685608870788641856137678978078856240640902847059500516491026619689973667218079516604243649580188381640723001774858656871511132323099198516524798393415653309717306956076271866260094312964100845047160176546442827774657358542878025288028222691026029748317328266203175660530348504799015199417687035829691464084767005662162708927862008976633378181417355884181312110167050545793689567766538454989072459507547740292941560656320129562849906167045062027885704471188650292597667189066793290100323101099729683389371091836582307800456347921594322297600074305884777598175384484282996199067512353706014397636856630257109818064751440831979220811855625693141584136892233953758459237393451609061025491925604597628153482486875767920467530998402041444323811501957119322199681650302015309474362333369596803183331604504889589369442979650049994443885855142718081784408345525943502345597849664527713908764048944002729167867521822946846611139329633701035150402084929802578044010001900254742505416177679136075758073684595081167625492221265612326370509329249469594728370410346229697743519063030867928826259635878696799920206262350244714366468926560646498004953907687970729081846264384006878950606059204672112909933845443506426578329181623713275109278097881072205868857253117437161387346732488804922657477443392972165221371679548395339853587001717494367441856715726051993706253099791398910000853948725129813591884109781245487680462235479779465907393929351779418949051911028289996549212470787427645531180523669974862788868081463093546262757010875796188109025267654876745317401557680750304773739178919825519586163716148524295792633598343874388644307691577151307840139791113542894171741133057554767470161358169757779418079232740815592951855876600867524583760540879840461610012707251019768017326308402813518016120747167262350279452789194470465107748178455213469411731111936893624263011350586511116699014448579836188402671061277192640598288504343371921318574414868342046536299438659815628066446071051772747770216711455999780744147433242493955412920001518444354252091616933279721208303011200379389812288204672015753565352025086274796800245846726632230635538207289981065619578351579047253207809721313310069033313689336975253474068382883812798683752066200482370497466037919203300403947407844077571204316469098593794914889587122223862257890726004256826272820064108113146479552183490079055643070064598584633830025230690609802727178195837060349930759260833298088010538155621347457161860732213463665308423383355811674951396281160554348830812603265158191834857068695930044303873353514261347374874195502365595491372214473183361245078150679310108095444498726487846391193687455025615313736206016175661389991483507090934163879220965532472510835470634554540672258830565389910320748440952435800828083673018807857083904854822155986877704819708580651275147755591320941818843646243633990998627270825814996636765962341781539797562736184630246634646686629656625848111427472932030965489964470180216177801336628407184473932938985222137344506142548259203694029087904080794834403415292610509145247217995656055491250000412622844240666578412774531203847843999616868700743274110957459777156702491548080978260577310457093718329358606633732137398607096397397198692693936178876308464740774253819399020805767306154815655720074543789253651587686233956224119096727563305582236371379324236502560077700854877907474575100691552980434507090368925369451874203860576881234179351796800891689999586713028776039111133072036769011693247497938133823719747088032641838831190057085316001152313728910234698952240551741356402065741958034135314620652109984097554380718156397246827369941499732203055663691376922125156089826255429682711780497921356225377221907591447044945509570673947503350943919795113614832345101410767340298857101965434352167718891532160287228984705944735539363624578754217717127121175726733698853302190986278597696109937088956014560914164252420135514029373716282355898401263754518770220957377553580660025453506426595221637120976587580236976613098999232923323023132406102673735116126918427560463217542095274618899274367824438772893883943003688745418334576879197661112974158684163167804626520248187549183096631349120414571140854626630753913079353747587729875214233151928220822066127006313303454223523498052605634638010094852982741409059587193032841772720924691713247615505961404530523096761458247689084602324865242250136205386056363866022181225871832112005228479544325563046306268044668728562004760788282529148750205420353529171418832044414677055296201325181062379541978942331843278776076469890460403638880523939677142753646367674217144591120719367538935103671721001247658249112420247532131735026945521162140937926801662485453066526504054759388074179983573537703357703894193900898736714048157993310740898835307341553165015550878837559722058602747049229966313547438552164574399826550568944836553761070967743378639369635680554278473137846912181561019317449745141067373699030002904578725125560024076311526863505208322782190846035056553105701845207285812357658971202246782082587769971924479381668510587804391207020159890626273858021737230465950996728542836168742244714487399791786377990873071746862461881209507727045541169495693762046754633971512324946459366431124307483910378963338651053534639663013971469793914019002582968461792937697560027285396853308017362225677186955904256100525592673914317140461496933763352518723065034529194030812381483139555418810894718437460120587643628160955702682361330400599309553333912276517688552393963115815405364033177083909109763554848532063319662220695067422725299493170091872137927884919298588258660413971042555528688011325384613551925539842941351798650046333360422615589557779619413050367235544619446095891940899639379414612739620495519512378365248307841548708181777226120394635676500944029653147901925650645775790926358019408417195174977816903829799839127926058344643321966549087846165559637152662805823113410181636351965523545386206779762354943285436373789941166016498022248335602305382650976583370384325679567421139264730021959536059018409700176615887231181762327259127654574206894910221708588705823429547818243426334788578158390296729502394356913501445445077328427987811260437281928769768710265932827514643924811511236576249000380153102503774690804005508800800806046742037037008658498750330149888465972985052572650022179696981136502013006858348775602885140883059942756474858347422965233125479878023127662254880085773943475340812472406430137700342023466623348337990990514780607581127707234265364989138641710610351138957816143295249789700860332650833886478573802074447850160623451931425752756375058088000772882967104226817534588541666214737611110087568920611388598964167058848019044091560004754465973814521376989331798854718853491927814170779120100428775348896789876692721357332531739512616927521227509168036951894899523881623580762856057663993494645068173458791761823989393231641615803319768088580394067351756885410131330888265093519597314123599504625615536552426613142990779917169749267590544638140872815205653529159852859868906799100616339675763998973878099422737452461609121391776308577737501062217501522484987295854122770569284984604490127216444161972901195550762593500550406007992131505216150896692226210702922152919278649970094499230636363169057673686901269736059455781080802076895658417866191439856473585844911249837985858054071726885842560605560945570985252511021145719870603509090989880941042464482141240651294458854769192109652903343187604192377362391489210842593726671864358336885485039469768538161838826835863420145072841573309404815582240831923924709518856035422901785186046109066307349118658742305033635739830133522321848012804691348320993031273496890900281786503259772338978986151122761047920948393229683122841773970482280238889367581238978165818638042885923026632316993035634847527602522545645987661953041991084786463990157983953895496198347338103032690669486500508118062898713021026499940730322536734448605489141426614240168362345399982802845913821551036669756760143275108682057815956618993609578467067184607344697838391491218981041631339431312369972164859249980568849417903872221887005084490359023374716045481306444263670315120755205046490145983686328092063090139929373766934299577483252660763829187214691884167237054927448640538926230561805098836016450530415278790447904430780268340360381878391045203262594020596382265734450529848408710892118643864367660399705947697648913867829183795746621190463745541233557074744605187873209344270788151277326820285818594898845434667117249834149507242088910429460133432549948428726448464779662429406137232135140003476143884852957200747533500309291032120408277517599001951359750286287336912341077528625200319198878188194961796339189807771728868010331395572384114909957865175818677744342136896113218742678616955614455266597833653599622527770613232148127863827118147766264348557197633704189921554456849101469491079648953314558923332971118320869744317515145502719700252851337935212905521661516386549187304480385587571765067380997003215877730916686991626877477566781347550240996459030480811387437665381181959353200452042863546909564714907943453089556297541481225192675498079096162543897908113271870170562606312721836604259375157756479051789025560735661762946544860056105122751716773687192691228163914244279382272108346754809953280317139703302251326716242598631863672422523225612471934411880689243242426748859612689006903775994911221449858557717705696174915230323832614796776621734467654688936335855943905310705201193742871166747649005555906337020215214876499755502612164771702778710942672332659450434514184517891339158624844123753627894626093148619973385447941171106712127464980250373988021226751370980009567472044117128148713257914897190286916425791295549976904114503814428328544203290767264467264790775893054694654008636690236915933719565191324962066571988425409498285592182788030560986010723044132508546207763463534876018328137190662854709382466413653274041328298177152187237793544105112771522162196490233590325942255224174979316212663455422737957610011184935740299484873454542884727945940416999959286071878771449346454227123286300762118077011026747514802336096166799644717200575268098230279613943459423739116164038956563357219353172911419928307914732049820476864289125406095717875242812549687114018749334507463881506780982674367794786975894833546973194197635119424880352140288827416474692362466141634632646649542201837954181874210254188848957921286038235263327744836995355288204210998550954563472166006455012343230278510926800155653629489316894633852530977581675704121254700043980626149876919970197391394569261457055460401106225362585860954656398633866504961577789538236206736080039932186044487433138851074503023203866523685037253324039059349296443537848332421044406643758880378656341164782819013969912050508873313573648547122171890878474142120683227532340714590986348978750428753997118773839980653860962860325580153645009163215955611899064242247303958545104212573348607847325226622650713508576024689154748577747284446739993021228290644779498722218696601767383882884122946132148471190665420958675642540000533616704095510953203042353737425032607286070956764574666766529455169616590183177811957205124161432833386366247177462855157577153593495949849529810472467041558993404594265374108913375782480422268267113130738091859575457296541406839138835023615950434464858792856990996433792559175003005217647621786434853921058829760123375064761216273388930731166719865280581914961360811724432257193301942979218200314470325987420043366091060936272733027042465137616304473222813228593915838993341537450635839155513578885004350860204273409011406297459030299164143998390984807798428723496407760144255521231655734964354314062125188431498476986338979546039653926195939859123307773208583187539852862221885730545469175821320178421079393376348896699198489355024002356459343339330392067604890946025349915586504370102155883284665716069118454845418878850591778596329546236745947241153573060350469719347531863108333287108286326196886652552476105407930617988544905316606294231960704519154760322632955119406960271675129233932895432914738206303175128594313153850932378283323638735669188266236192495421892106655250396339746014225296987544302703012065652145783980977033340955066481850818328997856695639501544899474189758548579556287517347888882544305047287995970106133986439904570728005222190122877529941182637330081002959322117963216425963871052948464832173486649580358714984897179786999874123839351738119670021331325068978495045036079295857176999020740452456206832441191812968618655089117577210796665934746706187927905514093901780956643369413570603569611603726798205373345451283756242502422624968981448548090609215743064165396217443574284251836782352045491796477604593059978707606582687464783838283491147866899653119021918297407695614039338807036679227751029010287352876320513216762665486586737425067221539741637264259945607245643816333341908978847071705331473119178483051399966176799666639005293297406550155723968789826580794982300347397120765338667068073272000030699310990872665290643924195610256400872431983873793602202677776965497389585408694618253877938566134920217199116816927799179652642297294393002411029681615037919632646854251345100122343299490790127406928738559469046632921155420849661180732895298430914612917177688270727503720091402082608351869153255610882856605094930517404919354518563121520703510644146341452170880797890772042977742311140804323334441286961959207177760460771849585662820815934723345375289236865823890332867172620080521885566570026290788158125689183155655552452662987503617750181872638506515319156767419290540543308847630238166363261218856614453453954171349402934079822566120740345891740343178344495077922906642848924518764639012591609106116044560892494757716282875663003686280740239569591160402444133837813649287504454269088596159637870262460283074909387539130895660879598133671145903182306741901784255864417220661169767993068240743120951750813183676921892098666221588548859815846659886340662764397938445347127908665662996126042068633425913022240245627934973581177425905898527548160130823523898409916285364991469476047203580564164816031434044178852966462052152626097027912466111991483249889137146068353475179938063973749305913819121015290205851421208091491954619985109299735310505496495210887704313437606355165738280833688359401181892399187137760234967085214933899068118006318197128412938686722538662263200003858854822624317951158866743848353652037820481451308067281955410743536036536721096623214784626094019382815806082743783995228148006368214771520993659733738240151203593226128578439409427591312201573065313354808424440062856461903387807534458015789063099743731543808686247162962823450809013487927233205581506131791593675124468677083976917457658569187475033220036476883854811278925782567958250484339217721717896106910342591888175747371291394767178038116098483150862233760247035565731420654269850288116608935359170895795019571914757906482137571435426708280384669673181594888857816486372521815516312614432390284757212559892228123456061854420057160586503728112296314853224790462301896927795743151443563882411829791595569330334339355319743389823600786054573021913061076453254167869527352500310110534690772860211687854721953504013787589453745003158507587475511227051786859417618511300896625290759102809814643231333927248681231352353438915160859509834557429737656510607285844093138067173585440245645338075401795135003957773317418011434148524333718849582799138116025764520798176689025884037609698848996257212011426003418957958691481921453186004588055933478218887384093633870572882084028228906512265599413594803997123136908542957598081048908647382287299461323169939050599749667421320096715107241298659249004599164246966572962373751187141513163887210126866059387530159444941623381831611890179170587568269795535289288902409386072487264723780523176210227711258122164013389708401518240150974611213310749395918249406141188304739324014928355964114813346835960593018934672385618543346242670555644887831971041027324541663028795810660893293667968485458645234768183999170969424255909472546863970598486138450263773647107167275667254615015577859081787490971440290312218208684809489610677966436783559055870977694004109898074917984252550198061898386392822624484106205246099085985587214093609778613153873266666725462595291248021617550606895461254175520702146488848467589054441044221859357070869928220704898779312896107797821185662457469976276357108988846703490116349344463440577105551808925151989882624325204544753766759023722254510149017616531359080227681083350727922991070357249487853377030425922618587765364397578433121518387833177063408362462923637041917444053232843088081941584143306335881184004316590887311075661687481054845916261213066038469145845534354624338462643898750306561229014326629768879701324755346926538587579337782887798385230656558145733328020448644297896747571587649141509791866840046671297421015995498679841344774717332922397588894377974944506795582403551826938393283552967897136173474163388347184007862343732793564329221675315589646908545555753966058047017031157102698153932780848676956852885580623755570034264971769385053821346904329299476120083801182018462975009903747795069853557403109699860965765569534542580450544277492371271134658073564362533307027058607317209503999793944214105508536599009956075258038431972168041130339529412951919520507486252042544533944622969926042720737411507953188735084115365913424777081775839658926184909719172972291121577541695214953841717837537963020434991137357446032699537897633913948210107338582073117784691661060212531588906220281599265871764499240664768053678678211517041412247669796874397352399014471705089533523786079261101824801252241402842190627412567590518303970512511209654869945724032488579869342645666762144671619934449218167202075360722418205388791262513790413994519632267960265675645419581703033660893780763709148426382727515809996296241664807180962608317917813627314469410670889775692878158263990360721921459022095541696537659238842396343215573153601289677524639987466693122677234252192624896926942243535262323515881833650683618203265864050183378001753852312606348922081180186802855394596535328406125078647062785635139637281149796642435357304234000711601564127360570694965885242292151861947445779106047727131986268778525855839997289120685948338436370411831194644297359068630932720123044665522877935858830705507496417722780917639497552819872874169968161545979758559833109117516043442690109407648050944411903207525654394708197911204290026563980001741051584698343091638581570978104150120032490898049973446827017636530246825769742590470233714824267183665984534720121352165367145986439845696904168870447849243635948344858093545524820208095345486581940735741696539843883352352387036490661509661828618228519043524294105450073779206143281010686369164742415119971084602304811806458637024823490230321455008780058410170268183853811936670142006584619967190645953286402076096139414056332460339158609996576657054762105008308373912731933615039835047994739405883005286588139302642348013639693927768380985108337453087533253940863702570850523668986281797448055443693106147765868674210625916112761100211293932452561877834719019463250443442070012761031322409397495741285544085055761108694688104252406983396555505919818406866068241130731810111889201756185801987076170408444975145752148803362536145592093763475975660065234985069425981384674484602266544146541599415453295083493906302951345667788378181036993173778027210001082172079829794670604353596303864232339886265777342804625786219481443018701006519263251028067139404046028372878272374014151806885091765145956553139245056881664965182509267456999430976271131634034831506465692885769993588583002062028010314408302766233656711472623514162381664325157439031219700154816496703137001887996189431267565871540397643340636279020303241869141561212017587776852793689840101222813528121948292424792782194779214503097433741783987012502204058420776306531941628960930708649653287261097440506290424767174500431066441513611601002371940688591596849769357065821682779937967643006937986333433986913095144900330735366461138074774359673692252301716457148861605040821586387810134314481280329342929292519697494477218398345716347293030856276009389102515829312733876211592329140965039216229389845757479515890243860281183423213158144174129053999335838251181025661834300564345902543922812833727156178400454341855345948129447811466137936346109802409608581278156611895849180900416220707177150986460045274023515171922875834880236055477040443298977384122619640185641947038585188755468843863546297926676515446556112431236568165230817379618425513688042335108852411847592050836744886429365202944037182279736896698104341129691374887312994652902010410247526289345971172690763799850623995411075268511346008099305704450240483190258458425263737891995686532062030498139677745913072757437272583860343141916921891993225149384142486083726994343286377920050438178386166204198687766113331477154233294994398648525056932596759471227841475812991835620246863932181275153980224704511963267659156674120454168442203997926288843911231253490724018927228382177327484737698357602064778041949215973637855162313930691013039259502560356938242862111442625536842805424689819945824923051725325595857342239409517442475329725909770291719060843567138139125961948860377835621400419796012955741648584209510752677509755346849219266052567972314758150603580521647184707690943724882291102123134473574057547423183635448932293439792463590616721180539859994676591817844505522490788136186404624322110178783024709992986391721506478772893320089734469714518463066525073163169078358877866873965336280775420253340495316661907562688357804196412527045220941831639594376655560919286150662513280470808261593512312023184094863332615600400258969792547631376352493179322529523964680578154891058282674214565984454278606700973929342269611227930899186502997368201553611298174975429553648309477884445773713737169322413526281316084567054928017546040168664671728899674715924831818173084717861428295951642941978730242953029291189153293628994967607593949645055842480204493411048150661826391190751432239431126200953429060616834603775662720834704494173366273572669485831201055845016253749108996438363248447930205505804791311518211150423440657042927974527280741965489637369463053141577544956717864450072975209190996427951690375800902813170790739927957327767099022119541886476311379716445637548234992749611339897551113094647381140416261475328949075389797093406462671335123160896334188200867142446104618326871179182247651486263103532671535359886111629794079849756211515686938322701490054859218581788484301323522501617681930691474592582767148387195996013802888306607419824618787341252221475343986520374612658363274005480726040019418415026728214815184666749062187881405731677111812266850031715593470859350352659139627566798605094635452108286549915559896084355915669091516361835949812659002950147495446289027106963931006663028482956477836468599664434852863231708448417282170841612945779232743968670570172346408552889816163558463922336710034419880843207595552360244597412761593517129876122072803451460697198220527584382937442066080853532345166710997889931597195931415191346608797570938661197961265113655975374132244303135646544183294991957819739914325001293237360712422234067426003107923215165521796037336427162049714257834448592479140325985585139440144465977556929435011120723366720700108306742046855088870605697418741277941919367092688667333440974913716053518858412933664434765499063264062325534790140964318390730812622872207675272443046693511856443748637085313930926852943998799511802218243911374310850685513324931223231411715586655237509816232324651026638297518298610323829543354914363372735326090181183876148481118334624352921502105787069141339914283710675210578697666845695818697868469626804068495438555682657917458961459939022997482128495221306822768229236785153949892079070196995402395940929733963300428267577670863363497388889347562136513933956435125550568557316076753077681242380636804999996528300445187706764176222862491152499544588927478215782804214534576048695978619276555880654328821835401229345173349107441091627734318992659661262718242542515353395103041730446585830065909882889917866243253884993342577328928563150511808757196109090772544367388403656790667545944848188891830362711348173160747777297281581113649565437825109703270124525034858237408041603559661787991602749285769763769252195962947481188114518575710645861531915023906664961896232172851672573861207846778470447161100649348347584367024490761575461210697278884150620444600214496198921806049716345759982594078230614710351709475166467814203898861966523128371936588231563312743712284903018082813966343192718504517690712388037232921331817160598726536756569186681182556339485768440281185796258674117151830895212448549487078916289474283758587854166669451871144758471441324474267918825857313200493565342443802344277375086910981273041415704158137540978587101800931951455229203425507943540655202135590725113002525101545792975180532465396829584979621244417474659213380063969640940744724514296366685833113270554205642173341614510516896810295553251878104691317579462986413382402077040996544247938517914592069560494655342324482051635965061978712557599669779086675213392638759570515784339829914344165852514427575001438999265504818764267053166044126541961376062552297600420249263438911160034507556043814776705324407706913171537699944577150037631875648591274042601841245324289371295244989102819210673242129754110128128823463606414320323906623520323490823897708581882219717256380393517135050557026279796781483308486452827615909668831073362600661061042737772895863098646133565214705723800367835673484465390288670491464281861902914777865870205146021666217612377724479529398720582482102853860142464390150567858929839966509366304044689874329451727630542771475037943775839854006611052597355672599939192516122781120969425510872849357014885922430655375260300308856614869667089951865166969748085153552688513263141711709405338320335697333565568067674958213100800958752260080701194309608484773925978470752799672903175078453840805692529224662987667517049707102713373315013505347820389528809770447224795264176032014017200393565337621066879962270860013994421144499399284202422210490714026451224920230682932253699530493447478281219583165737312964454073326411005346960919953931811223869583567248127304350639156454924559274952989801701254931740099953098748273998647425951132372423605634290826970693823676849699084526131597921229680314410246794126394793481498941741173241020750143372429083903904888869911639384569713998713977706403340420566639861375534978001576892753167190649055411049171570575516915381436525679739858087246025192155819552640215320094293699488667887803686072088943005784012363022596467329159011630975961293783805615776971363575242609263251847909659937936943732724694622310331770316203037644097167716997055221702381023218584598112477896603262516929959139575286495240856637415498062567603199452933953847225442038429387783630449344132186240807361879222517530408110226932882572517666429929715712076625720384805302656418569662974842776577315052023925805092928551891470310229019052975299893883539281366885059258740851117466904387266108711725954530798132193570259953109553750689665690712762366965748109494525233568507666297748192263692010112845701761141257428673810309715188449251579100918066390709034617286543789380659190044801079542024156636259476492384489261625729920612521271812985822767024191972769214383776332100373284591091443329234542625772973034910912977938403501242797828488569203598171095202564166335899399355206125949381133660833500224661395383892874005018560824383446811212658502312471671955431769102976555830703150576029409253760775060661549504677374231742636986833585584571635477324448933715931061309910741492047476741202252790772465622936279458072826018704809066482520523073865170554489874463143041956466053908770544061875336405226910223960612288481053155934492369380950133162227114546539916947048140101913690503734981222529480152942086100130256579772781490916596629083496872981575089168988061859364096965902778481253551985365559456900485878167735716250724849377887037232420922580368901135099086265846501029889967192810894681919299369203089729093262745944798821597366556385405378301705395048020479760084724711080703269276618104331480746469750204133342696098351141600819209515018572504342989885803932347416745544476412694456151962004463736803659978469425409020291308872734706920606799791427220091149032789779043431882904026246211233157071175934055024941621734942704800507174821941072232449279509381708862035409372174341103138593666214514130467845155495722219937601512426352487890351027966644512069110905954324914896590608983479679614747170525541652641617126596113644296287105460035364306979456130643886237063586385525874054588127741625696457075572841694199733754575573265174292904247725125859227029385668245128187667792477187934433474036870045502887665819757441666339187218435873168959371259810477565448544802493499863084351590270632149534220814081237150728083364182601822961531409043565330910328775500549231636034177842339582844222099731412990341672776516901736758098029506348297563376743580280630381676567584506282441722398818008322804688740516490575138839154720676248419241904671849370035689968427879766666423790147688043944141974384701250710161393393591528230722976094191242735951874688366335018259241007595022887108055031321630318739406541538728116928842483275037029544255053643165149270957856160998984718112948933840634032818852458986377085874780660249309871042626243125281920747856709381368430168102613905975531920773225406031340066522765819989581988759288172114632178745646025269869383704970996016385053939344001652102691800995040899588326179766918123316275175387127005041084841077564968521145192882333365901016065409465322958727173348219510440693573084386478710679392691247437385382608971862595269919913282023294111690620203376372718615484099498488677143620889573387385599045630646114713359557832681208638568038494165079481564104881407581542120788264376107959486122539429062942633807932411161856589014018326571783200157111312368471400264697661803347785452167643560120965224647490772422299518165802120292005490920035327794694197899993082407519739512912001302572883449228794268081143360627887168188405309110785409153519872653549175832688949320147002546943615839002771770333823802096169600556536231589290607870611799073593682213883449785734213123124617717094861477341593698559668534606287931268202166973464874573302660235334416901482807617259398281400749061620993606458459198901568953987325819741059941565312641292944047633821102489693013800145814517099748986747266027164129407653807661837451813025475118528834073534055605467007011442503186816687692730496637393021409660883651950241511489806919577264387316689088088241765048787312086201282080239854565559473189475346253039252397855809876275576462060472301929369699915843759560875114878611729489864866806727162803364684715611769992155544511066594465136909506418333295692127968008247755384402982547807442714593482748997977998090541296636823385367691891787156747762293706137463002671643446862769554474256885208396883291970212968984203162666594066135619088404069713518745387528400840088853668154530924411501733845004617598148281948703232811260776489009147258978575375872327405141058967396267864331177068257155618259605412111272014268645585403631323886889060994005647228622386767144573045624198456662689737754650334841011011831057942053945771679624520142224101769142889446313415025378244031110779124748313615864393774862427276201126778305617092695382647755104412657754971385661562138548766186811474036063136989179557822390529408931830150171499306992842768129541488271610409033545080374787676596372935095710512732601090646696702166400308386761815710457686455689562791840589100560142848490133992456679500381208710015060195502509773564655527883811685128948150075743937228096687162799843620209714734065957738897468680216147279150462514663067747630236287213868323937959886951718522609749538098828794890033434912452955544649080122698543053482455173804131941158056712532645812926219494866869609682765095672332045098800863969058198633961669691902151470909797796898541534395647673396020963735761465963165150720393638313455854096763671706982801435799181982186490016453316939089912452569128075449937806667464885295938438336039279161240105452772412904033701352748940068294161168245924702360318337943234334671203706346887324272602578143503835798274888226335177837148448528599309623790825274953351164420678568410104825490655892392317429956458856787089407019925798669594573881157660454917838667187614969430855914605016412545807986731684372686476617754475961302445641119934422390663743722819607408466508411294929431279360348024780301650808814999101886160272462002633870184696545152707783919632040295103713218382030885050269580976386904399879696531957214733543266754603390681325132191884187557690947211172568071114417958011241330000122511578816441584727670965582451666788838431765840146401971169105457044581495989287794706972766904479138714374690911305408645091668426753876630665225423124328614531493604143844465728098490140009936038808646165209244304089934963483601756104970082996668837223062945648330881079536815879317161784484888407594219165396727118750738837030470429018493212669155901990433958713866681802792180202477859277360512605604491854190837910707951681864986666450308777601526337792749356324155924925697356393857512942981113850102620186912077610237399162884384662403593502624673138722470723310720341998501842194974728155199790413036582792602353463700048221601141990123530691600063489678227568445169274470313965783865739451996082535829817243135938782428253923495425225905836127742262169184792889164918406302565632668049098615914164082119381429092756055930667670199134262423336641560145438230644483677139909588615858017034222478061537839507526301567344109217333945774419332815838415777238699894386390162575191560834583676654987538676125837744368179307145472502993677049884143813759670246463307850005559666964472337630916702535880565656367682284472706500948497993722024237161956735840008048111471182828238336420833869080262116869563272837182722991468378027902669093816653152338717149600056364511450795694279018178403347542290328198343923880970950375049647557756501151781890296688820771740448316672669488267048985630927366807722263470349337807575371902457883447994142650549643993966324710528744749314916331102698721042938623370314199308863834655517614021648768817176252121919330536013375575812186669753516552956935509165110550601755340105933487424488036273109751092422300834545109739011665363719736396856041027721003611308215943396606781070454537559931802856525544626708947042878596218538341416912339734370758737084377311308348809309706287093204757710835323255379103764247830809560431366723739726225253853697049511382671488083860555609515310738342011592622954790465111555170860538278585861755739734620815373481196497382206227399198631171684584501945163203486171339386108351816457606643391390213546613500992740723970935665057712238955035836599631744671049080168913203497142545241762794284299746847862500063047994237699692563530831294467302639995154952021365561694862605403175113572136778696423933232649634050447391151535739204804061663116567206360873923829566797560262625842130705245847677594386906855932796454666158519955688324198393111751965878586729320289329497875793399276823377943801293650318235430859886725602280558813465805373883843271831813837384070317562029298563983397157419707153894181879083770996522905731085841908310117708129334551085966442960672224697981297449512399730767114489550263904502793680354035521726969538091084483375230445152735604655952117859025410776828477297958962054264128866747541933739679987435479506266773582730817107248258297564473910578186353200402380408202901487589143184366042690839439976055087427839357198506719867476941904088035621692147493010450100160541271810526879820088976704074604208742085773886898012327804046367655762795296372626663105408944464608112952228287018423516237044960054384281854384437632461315923150004657147444229415299066248128823996467150621363150057581394891369892572140021517812184480623104740897117098545197638627331340333430867051628118298667362974714564893456188908984175891772576621811644565586015433586370615465938349507502019056646338832616104559021335033248040582864964801246649568433841313544276413449665045712031923652205101156003537887077866443619701262799426731981017241008256300540024872123869674391551041222399182018168083770204389392134232417244453619205472565029937225195827649868486465243406202505170729640440512590035454005453097138731108880676795133971416177578156554679319670472702976826395195702825748359354644893488678968963784303656274280009934071868615212607506213010089172207245730025130068585447960517079438791525771995059882049506907539627775439709680468231165712938505884893569894821911867862711425437370981003865367842659222247203413636446707392229041496884143906326265014482916994104296773285408320765654250225728256783578914167287108298333437109761137552466009264095549973971273225768363682225169461867390198475387295857321181374842662176624268649124902223589080806103801708713141924647501870516278777633655085861030587671219704113570359623906377054776208587609253481771894326186920435403823424433104949054398419142105417166374265401978634882860896149300841535052601768302856139801139700092648248375328431217359287987400030505766647195503317116795752467847062175235766974290743190789979164830306849442770835459459891809584604958000044476086386276216981431613595808046892134383792675195224962395470602445775153144801596496969321525607331754305808648440870934110217459610988888551673756334291010608698242006407262986469041160187050906860784955583576840574936375630964495965076880407889310023037982535715692674022283208650808043282832774600569793518792784521131572817655632413201717942907813505887819603872621991522279134937354310500821469870549848589630637742435854238585114089856745370331164862926198863898688221326558604158037144520838680063451096094255238052467896868920098175104215968607594046199440395732335781787264283566995747189204171074608364608243521706924458191240609627743114274145767568608282208248898705233244010578303564778830529955548868502896479809210943499076745301090202004633859768005348014373540969170839691450460297225135291408004871672424531056155587036611330548313569258750473292124397704820941466021669172158981373451598935068865573787336374516181444851247372907689053091837866091162287665090033990872200386033289362145697180409679886166013394430705952160512942308488173164173178064804609071173213810307080850343402542894013543490921733118500505916380182989514817854380287935957726744913011066317366279425006607517477071887781741331875014876872999032042086246931359608652246555952748670720743450387625252086112734378078241320575541999706247985673245513392645691578905470826551934129030622805574471169326820271523559037048251305111632222808585781203378668573540356522165751958154602015644510838325240860027958292861965470486659440799232034848669390186352989965775443532474620370450709527469569554914176267598423704516960626778262525898020856610271351240250311683831924864852225910873498516804529378823860826600274448186125856213301172289914642729673185133878248197393518122115682235897947146832140642119248464839778518304663309850780439735986384328833974733518671854780939427062651634007903016566305888074792103063133976341577686611546117764386476275489705827356887115377365059953704857705515879924835234284303112520067480970690936943481119919242651982141583419150698769099666808902917815307361472212648213764513642579618407170914089053953758085448245260747534036734415264386601632300530089831210807795800432631992418857840333943875409654060460268471437314288109729860352632366938265408392954567229367150732961836717453749441319951963055110211495369216493441730036455849472672314656965453371900123650435148137900962753800306036763888034634650746714296877931924301373435519564120291578610045137288300409508582775419276874568565632312072543314779443501502886136198341731865069077588732449413338106389381910830454364971481484385679749896519236100553972652656316337516775318008451977341234702753599619892085180727474134401956997799287069579438525365416144932843573015971466474477150548671809369095408601329852953456488850730029688951588974161114386955647331246612663932333979037680051405284980770546795140541851305295455128195753197593729576783581587559212695827684319719926528865073511366560713780364783399022870735886134100402829551076067010331235592602561679779712928145216218191897099631316391278165688194585390804178762695008357404345251127272782720433758316954182950293696680356855298895623320280566979684693425105111450477326054597918466040147379673228914364450959620964488447739527320933280983868296356564312459488363386131204528014615942776905513058977271459134501295284662416606263412120546481630868404579095209643802033734560713923773735266924382389683711009320956468569571986828107698571737412232812154868505659023255059445016505778425706212586724529417319999006637675906684093266440273789462314934682329465685142464234126321516089208077353687737779285340356312456214493861710396923977304105313206106187513430132460258129541389178309450466541762087568069572097524153661845181727629516764753622341121102022049302046354021682838613798796599671059507952564005135606699759385314463860880828869828903977989168842028280988449416387319967033503495891299995646734068690466672284611838832070404531173424793045282827589570716105572549637514772901294560009180563777322033638283759278547775489632859608698799848176209853527517974930445870099180475057660229656922634614203541095062742616637926780894094591911007743634585255279035671575703106031756298742392580491278673563093876098737996859521339162738477480485432650858307616056365868514373948155843233674532603932069141380558194966960661903775739130216311030836107172105043903420379375140173341627882600231433907353442174049385014136473690160694282991080561681591228278651072092817955701435648060169961385548772400994848154313222963765645425972382978976916443071553661215416710605555828009568938097586183517971695805295417200901938671981334697027103806202465674248125972169323546203691269770565078707196357117839554268510474844596887199148613043557172107408776564807546137857891377908100851417494007675300803890388077670683915749214459174285671056818938545132168820695851339008771440418593646471470355034430161715224342793056384202395158778895358054920042475212633009808789941666115188133971523252060400464786212892976969188319071454838992694590034423630951142806132184717096216848680560281906388248739129568341942295500347182915134791022950331347481153046710450905350049355198833267433586187343324851954130337214128545348801806767440388285107447481716424581532769556731058321926901124929598084524170734617975375253300192794759664546613352839579865488445722884843334220140971126988402686269188891150471139872754326379356300064710407601385589583316232477771851745800517442557579106495552603446556185382519188629734758778445360552309657600016684414774542708215570707416221528539306089742380702012223993258188600774597966846864968087457881854911557989801892337657415958447570001371698715363459997569645532227109254248889034685261240868359489126027090439233077010436322972812451493103152100731132756494513792057020978145496448491998835896514560246337031602243416670439626232593321868859540473489305482934703047659790728997928327017888107210662095368829184806800406987814711064403428502980349383738555328473545182103509881353985835247501150021415097832213674026145070064772263554596169891311502974493525635664754135477919552530801401043064264249343672516702264191043579437273124998792299394312289151681222355726224016828980500189413461402912558311682504038011134132235475491577732580730682392068600172287043167217143942596221556386626695359957009009700298481362819266836871569236355232541262402116611102416312884115845271375270573469018149480222508203039044260080262842596666743052418670032263097929046672855157570402837901044804124716112046393416992411413199065134029828533099396704270942275687080928447275289941422738467606793436060072144587796089851661256293354195852308265941554814126500272852720960003349247875709102673667438452606520372237009398852833534637356948394860350126347453296725981873023916367225529694531603055056585673232961875831656135113469731381978541074760032687087893511726377771683152493938221611194867328084562296860160189674005476462788695861086220232222674395841384660964224532078382466972171206771941476747722042178800650653025696003215563226830453998515493868524473729166503762789202363510416403457005086208703742447457827846926501236295514618833260409259417208096862501996163830590065594018650149633894431906939240587533958209615834105871589622990913767198633539916971743884936714795099320253306555564393223024566767198129550177391484864594901178094827684900689283208220332773045488344009170952396554781289837379154596671166958149031320572198547475144777849558479099043849044426382182053111987345044909503885083634463051073574684180647682174115354630204493570240136874517927936146913055282596077477336963887913987961819493608272247813680752767552266022777892087074462180981358071181648124890840032730256092645783447917102104337954344076361469605334512747301138895397071556896136665526265090252643104295607242443895204511242469619786758859545382335864827553138806181885553543245625723319263971017743194834804894896062529214649979897029629538076681395928909750772795678719635455287405911730080846000954301897531035999125474286243941560340792212948619003872350478196395927569861546533646234419743716660491702732894251151643671649181099173508332037508799182708072756865669880573960680117769651867464951016168389533956506682030299957858132989476604494340557362698554255938733855032134636208565359695735984387828050735264340444925961818232045196626990941014179254735086416407765432847458307746892595437178220856556489438418535434554977347537131700979811109494261014950322348332161971065202722956954031498427405860662751217735193228094696174839537835653359099358923024732979144235588988975450599061220864008826321383727041360918135272735140150106653085546250242085326963601129476720836173581779834961127805414696405461053848160963826921363491856572970503927753761048942308973385098430999492224702111171049775593400029051074540934067333429768815004976802643488843253120148748316062812413081295379634962273222931206702725778047339704344554283941941888395039485364948029573545442144051157175280192622251302370948599622443246988831275488764254216374149736487708516596816432364457636363725171623954869471813290906191363692493535825196676895006169776301211422219159549661098941119206544390882691098285103690558263969436214027251540121245158005211996690126893108985450281503557047061805725114559168122465830251171471740595859912694370916906144945912483634519110476728335817657595061219262904496330618082555076554878727738155965472261175066061215896183692624334421274631551957576766848402952243127811989823850270190963307276635550432734984703605607503385249616360090235056410367163213373627312400761434912104965414238471430545889302129324471557541065193551413559381602111593551844976181866790046403657242340157157251051070725977608243603604165421467867041988140077556338390675757738315737937600402060082948551168348418490819496332642709942515484552670640917682639809361103942534638445454829066447001790359953163889880335490849707488718455078151294951569924538560506663009113130482671739253971690623829794285615695020844875639272368821669530967775945049498312615449427862762678315145827947922209122149551884768163515275024026958792885075850476165879642175038413568394357909831991669783958730820559408183369218061203159796838396475666067502619051567278744035243559585604189811062848764831143161877882109085747399614105667305498471021719306692332122682641219029795520956014082855233229389079819388492932438819667277827658727741019664174162176961250740081034422153915906108558362442606663184374446498939246021732378730691788269455851817500036604876843461531978240818831134122757729077377483267687605250448495739308322513079646715522891252641650372574376373691002265265414689568092667839542531498922840893516926445572533246691103314839106696940940007924267136009618198821287488957371748830839999112655348315804952206805245890663961454603700230042646318567575814596703408574552284790734395696916973371206571995948300191631357666552943422444990736551146259958574183874015532588986213371579641186366771802672634649065909761165717895131134811582480450362275461988893006162879374034257393994418601099374589869142953296142359484188607514198650195406750316269711503457334320559881949251888861632891455229393844215772470633270926855829926399473246332834868821589480760425151808224262045924329326563896617205942035014616188241203112485115271650772630348990102485948012338227860989628414129676608929203192848955732098344693164596250119585911456364686046123270853188891104770249461312898030957238951509901092539159195782751077158638834093962965625796053113620365667153667050633264366716828412818419107494675833065294509938350979669202740128008354469150884522930294427369263915265247674265921359987093724756793000433863220842926557579781260558957900172020017987141732719038839147589057107109195433133828954230553010073573559553062995392092927939203132420013997765083562734356052092987877435500597866827430430150023935063258921768461442858190003634862689987125214904109237557334695327296132465883184020513682082051115853325101720202786925688266001052845474898194931860369179089630170673947571583425934353597452841647241831207936108099262113741641920751867289266092536549180449932137920782339533462269982525912464367356079058874785888738770953649714713530314941307937716852725813469348149666707963982673306763973709783161614212311120237450775974122883185134357551308521589265946147832504435342540326541644481035068384880555160883986750334536312611562756040606199080878089944322540196993532815485092562530927915928286820881427407618833674077081416154825103237933176870466657102611138201028140156538805917367545320680960195142981721851255213185922208151298419233430045283799049731860076984787950446455959354833789045169889313211071029648084349985117951038173736128164056589678941164981268056296869080020034745825562684069433595930204833806609022897013339019260254322473445403289940927196930993419593445162444891635309343909857095228566344717408747133362600167344252841211495105143420641884062037376863521986814285133423272311147125370194134207477758803643208928215225899030959131186726005013012087217298170042380920462329931029441903765725236085233047972905444548316410800163776182768534974367456065338140664792023131404078774285598200709066051823248747232540238585969633049716775739727552344695478451400560326322476039367896446821162196107224681757234302799329029723702456439326275108330597805179215842289716231518516099303133216821331413459745077300942412006628915566428527497462186401145701262208761100322901281391953611954318652886905286442655057108182252694192743781737532863088242431651530478278887464742422190925067930033379257543281565730491775943611013538064806161742839376307449446176545962565345632259769308709285328345672214422755099503763465470782458766304841319569161626056277547159954391191928515333922501615852309248773952516346292147599757790671915238479689446513405256150053451053847415684469795213107129842342727286204879634002698506897955804422893818167938005655230628283746236328288680891466845739777335691702195944507874396060242089072896562398843939216916922199424297242804628057072285484310666468319734482394183440300993441315989825874446648996238189223615153069980383927615606037700242155880114293679626809553327995682441053464234544256187151050079457420510380728119070092153323347547558634430712911923586700118628817408475274675121451662231134592819667583570039400993164529995902016674498935947401212245144446159697491170402606128975266451380069694952575455831857625149868164611720993273317304286325799092097439446017048649720208361539987731187532351027127953271822424969800281565612381018667298259515480426392251411243838898967242656463986021102904054638391024827342103055250708553859016576341197170856077189746872744684457314204531339345594275379326079101053533398345977398656581764754477294721483402743041063114032127766859448479220476592311550018368874235845583499808265418756321823610163570843790886885071979228296741622088237927982374288906672569699915317018365295897821110127132474857594017169650663435322488735427486394780196708710298356107044189083310348830313840852239956908660890858609810627652340500518093572600826921744552750419954010696649693259797605333383500642901076386137084731016600005866169221650723668789505131134668802113304778283769786341152073656050473925063605041080852234395591026886851168826834503096154985931192494971294179127803370083805855830241274591576546002315055895285324641309871382712686458979540274823240583771586044947481746420464583154051328446871350478646551291976084970947369563013366278458779995954965209559558950715806401415634886840655435033700685189122651055978041194317355151736759273058165100368777697630351165666073921204970937708497138402846261345921374177169164749771039335104764663083477214878911977798967515006424674610100666965597319875397525549268941784566197639104717906333670816558890150914198101151461642152511073459877399443793560021147103023592667663233161433317779025219826595607838962911510222725263938717342552390338704317842171693488019152205900462754491908901701038528053959735519599619376774997460596169619611917621862831624403484059721246727219123971343699143597497396187608212233693793182333156558744922825980958627288170354552302008414803901912815937197288990741752824095215857987928691567110182976045936768024594271450590391318585618340113066186041565690841862667144250651744251328302496937203071764620532157877398168267327906101219567295016892055070029193387284832541088560793560278979506397552090837320607870932920812994262782510336967543761711392631611658261054538983802702091774976635041099320976425393994480577191429895688180389322421190688414322833319863312551900214083192049217113809413786254205726891006074296434436853737095266569078631568260539039971997581192883551436429347180547550038228863504826602066870314673117418311523658199458445929247892015027187741978612829746910968142545875041673109589966472022012170032711749890244928201490276752839835384779120649931493095202168315874256189952908981357807129617509902440904950577707943230513993313088020926170465484931725890982431039597134233519498419017389163971038162487107230882268235711512059989371730660886423588589519048330863618532060796927856596557333787895206292233421327315218373119802397298577154905492118720780916535830646361068376950345265785847705755901734268175249844357159071316696324018153095423082163379991607114802392667415239842050891383567935345548879380828726597017928774381854666635933268695630335310008674262228186076891391665098089445241234063318605924939335120342693462779109152702311655091040981317664739552287888885454947120315572923658215112357224801745444212271982288846835440807963068487120844680513657427246958142774374176433253699460072164814322225076069491214819465427063443142777416676868639926531728798138151161984204259067474450153478390979440083035469011934218620294150702204555194476262351287956353709994528754125312176088236340819815646376214239406023193084154322983754974138571584564083267176780557599116468218738752012885402401706454981775407586801928240408584636526504013929127205231145908825836329172251041626226670084020801859460780407973465660100066943663386936798401911800259664214319859336133070610931654040647116976888848346414138891945929554691422376540938775094041039391662961111869710112450436032760693027829075459180603227328311249771358587384916983433847598391410359870383489839442806754078836025664066590623357855393833508799785844486826955558938174593806393901149894892845209634727539148222900076128564027310567921775753636183752974601898090656460304655847976375957199067193658850603025681860712663525412140773274427756460124932160558776741227361465230534181861300384404340490437125101014060433958237383700159179826635792563617259049630558108719223454187400693786405296192153870598199385606974034673457328256712770201613982402856904792400794214655319927091845785264537551184175429084491076677198927537831988569266541279942213498165699472394942503312394326076296086656418407139354637984875293801680490010574756677927070067727666943432617302417300133262408247097293165052931009447022908799477132671477996018430122593053663575298939596055526860789099943626171785457635166838778681378365870583628259279977318755638748765055972054571237892950425210103680630496863374476565208459662251720527729404635681630718061737385646582328576547013673567130001783576478243455255881789336654841387813751152583301952778178392196706092597490798885199967437194320835541852651369315225863950104982554513604081396119734192237529767415131642714530944738521656649381217641411450638793512797535430822053087635692059522946094383179352055263612384244291571431265954084602288379158796618696960030281289094269865856893699804522853023987950607355717889685063065466239435022549023044506804442781318428471665775945159615991292555701879951857650834441484157581594700287796802078942691741475722051570381974394585103733457903435229599948034709475465058597717300106665478094001460678260430001242882646626069453720040959867259034053610538280638804690413378649962123920405942963948551973511114571515599774504441694816507143200322885812257892275086098932981762571230355562130701222292479045058854459926574982348198058597413079166704525063200013997026780455084049934996756202929032529843180697701353713426783550992793519396102487305759649239630974895452534518760109986198835365601383493522816770987279402151014998256541696584421779579497089735658514149524662243775991346276770902290530294140934552992387374048945166980261672725501643092937924881584843519197259682604648012121880084593950941469231859434896989783111335964329517450961922414204545181623548675812582940291603110180804568430164685196859753047165454037201322239247738050129220781605400591201283129718496821407726931999428539121232160504442718248293519928781213627063922533379574452510016592047346429519183326093050331675705515544291549602244496904749693128130989967277927411818195331614535295483068060421958879107337870367753035990929790548316678298326872963799585750613504160643417102367858894533379436256256132782967550737684893632742019280784656065267130564834290173353737288008506334762911600955250474743174614714676752914150738821182847875136961675665885656382071537413073075161982012447641772896762109581076842609562987283182842743181246652217158245581802925765606260829201264078096667456167058401701233288645470707870825855202587400142488741547439051284494342655766963550022205898990846340980488584467635895486699668976410801674881706068097195103119565316081027397669140365078443882444469212572974356941344462964029640758839884367088566347465850556165459917432661739173852729387424757039903366934114922783179237008981128515963414241288838714943737698864268218617509609531243585035737975613011560495869868404103029684934579826378355885983664007714578250040140270900498717823925480724566983167496200169328196315870960102222514403467431062196788910243743715342070696717479433218041269287671145640829673830048894606808976310542454295423935035297785545451744827409766979165990320904264767411609865405660186457660972847586228962522866129897835537601027249792381940513317605053809322659514192045454265907013835024524649860508656578887425190874369670341752394749888026164448469053647875558568804108437151606937065798741127822181562836603655877723496611679542675283943299796457699430264969260305139901037289899394432647680808881440547898459352334439057688003551071586734255866593294982632067848348820066066364630315975713952541941332698341764293978556234857854919758439253352823140859802103318169692674402722355741586110857681791552883974551031233148378852372838763802327624779934451488143242032198475590418119330588197608334038466707539574510945388412365820531778448338356735516964396945752227239941678473838773000738143940910868620694773532401309526968885475799044643334560105695898312433217810684310986223885884778813773923338827246083425750742136871454622804878056336040448584557279305525779271572469126877798720190227859005631120837300979287583588873508460078265864444203165306557174766154210795487455391984055999146421580114066198011128720322644501171436773167193465262117765122446940861486604735709259379250826021750197573968309492486981149685026567355919586060235037943037139177430265301258026837398809617326671964651383449066885535229438185571722701845617034755223187172492797957559057340657347068895077365758750564079081595437931204946749105327252395833784761034983291194137563428681727259782174268391450071572980764807007842721805718452978246189232947099339035452027267219081419722657940636556296864685417985477559984907312378937372534692590702159818119001594980442277778391961569320518574266082961668523876174105106895149770920674411975663573787255217525846533043248775403548760769072770177752964937037408333539301126813518277926427341851634833251792194217860602550927153897262581140991789947419569702205473424964611604114289994391899097732754966849827969538635468570703340055032699948074955125183896704424374225680001211330533676430937912927337916697516400149171979539621396346501212770133671700912177451714220702710220293376874364077524810672871003007587205498135048911774992013374633136393992508327009800879245479570714442499833155068371964241615068200114202408554381602085788457710072070729259463988317734972686196502235208256674044493744520793256820881134124131264441991024950335902874710535912936882693960200734332816987052323821323941960733554449517186430456147432352157250225827457986785668879485277179095248161742741087104757972764279757445231909919560012336224652675589700012117349390516442152803998302851452435164544720116080919057946692584015835693695582653939661082081241631183737842110940348144765492672654200573102411904143640683421178426410236875135107543422834571690707892534143289615880729004855810026870240422692462987034223259540539981259635906746764975407169493426986029973381076758944773074235229483155337918200284773991428173448027411407775272286782036380056105371087405209116246993457223455094081211665803836303831002614234280736918086923280510058970969594183550944959101156705890531676882801307471933502556223401723041248152756298478260156455965796440912922708200564214437200798141487437813834508458502999892339666528646171383607631258483974020940055315141333161195204155180062968442171483785015065332346645443034196705603109516314733024639076717746987855927937383865224732265247007895623567927283399764814474867407872728950490010367628208253995872887416527702112143005530612231015514825962304907854158309824802176028466676503139268797751408124412475714174559590402244464281578905737926963684822647960877905035068974201624172616227700477092797175251034717366135747927101204719980401836816295312883534455603619977120641994242413591002615108898379340446155289413556975904755847602669360358697079093205002635335102910707844537346571863741859803777515771436409698273672880275003577587017738958000224278914695187077469412744435741499604190327745739632730497708998437815858467105191527217502407767592794611140256530547634640720992742839661685871112912227974956081253663800034141883620231533082364262014353083443644565270337182539399880793814903348855567140474806588972223613307778712132749396280124590262078120955619202940789631789078878170693217520087060300326073472999988235202712719459901830721315394140159772369506822783785610383507427948391796337503226844867725998071239270960578306279430544273405939948688720512692350729621759325299658698311451752226168947981230492746452625388197764776016115650362035254023021080790373676469656377953681582388285654979573693893597060001825591704332076284278178950222993780546545201555746761876505491222667800455181801592458652065643886319698748645388265145280427339646093804430403782507424473301999157029866807145420528774448798127381546782963436540159086293606453525230186437557543768132711646777555257493667244022612648699986587585825895901652096968518711252990753486715647635997974481330588024313395871472275954941614000727166877327109361959829348829759693925316054994385952590822911014902403601033546492590124299063604361321340557521950922726199831337735107314068219120505228632770855846742130264041596124949657830981489979954689615971186092930413108232894376644669211993743695334939830611993981830104498184717930906855340268549874410559433345300738999980931257578028133449835263455227752781518789138417357843836850646902693620073637881967353119704306953156766811823227594679532367163868595791129766523695206327564335364366576154738591587579145999258970541752929946436442815623850214633313580229730605043760354293020815514093329679967596351908797820534122146626387244343373800683145182179443341281821673727630496469415928484830049186511993412803738733393063177098553427355468851499507195012846738729518118117624864370947252041999104314857956153119569448919830849816808255242195025455830338461260336244308849751701335950437315519061443303644597273266868242764306695379907207775239769673279933913065148130183553747967008062646798408744779048519639914579482910000918322218763816971223025293173969033715853251152853354203163878428114236930687073056058145274913464446992162562273779415733810367314364805233401341732934326024963553718473156620187190850835461943261095299500485700145451544786632986556986129424781561858864363734491071664312781125193460139963935271710151360302125824636368988855332022577909772409010531553185707734998370734574190573849604934272632273196097703515669374733115447951550980492340375938530612672841513956298636609397193372737867922061910237116590313260829594724654785438626748752313228395145118201030439440968705249270518396506443333207849762424753338230790311493372026831666780209363505987038961528650484597037445057380740176113663547001249288478402407680732103695540677053995702525247544400017042191523610472090694494568122632775198636431125250374338151261489567007159181708056940453365936293961188962935890709776073449422724064356280277851347581843901805634150719209976480773785755158903848100993158158022806562429492602588709250576440860793996893437874431911010952197806802323144268332533289644660220386405320878348587337005934501161633829863423840249835179408036132271282850868824698602619517405750226628932810099223933511189400105637421134670023072562137922390130881985897354261822644109164831546301780083003094694077624178564240278521466407727366530507825892723367205960998230835890163896220856282499995988088708260824351633579108177191677240537605274932257980433290132315136913739632678345066012491968291262025618504845075344364923817349297123688942766115549974267743736774776720975346851941736924654702538001230305855299200794547735329376966541320254090905818243657453959643591473821024999532969064313366521987383929829979345506407521089529533062911101920081048270316594918798197146780498811566881403217386910082670368055031147253156093432755092605246406856416617941304148094118496813685339071529391057238765919907776694681486676826864554668870408077790546578013216127584237658829572261031931214362771655564291425712166833379965363461301381757426587403219339588342789588876852865385579682484785971970601163460283916551808474128138495267030731900127742445011035220120791259299796715654854714314132566557022143656954524392652844173972093277998441752909095933773928780559643707114321900258738300809528688362726065346567041685018819641289571301000578796887216815659675706292475668501277633345778309241379781585663437219187973779324352921533488690701174337233713280979431533383778974083798012682174442278008188446430057478972753934636305929368371149582349682444445360246681535801654162677434050896323133410801436343611407249756017663683802830951895597825826550318137266955201918255710265393324166385029650462889217496420334794311309556853833928797245006192428188520656882726946052650944764383960252618526880965001676862617130683292661227092888228916763829872793813055151991287389142830027659128452451433471772207638165981071421311243295553453454405319921873152400290264742431799705379556762576657542398707275331461399668076670336075844128621128010316021192446883647811838823620286601496624440422040249254385740167512743364810350020225367502104066777719040603411130873592072228540152540479807358165095696584283321848650611902888223942671806493242513835949699190876199798527632315845178554594997436670811100304074950893671608537148318335216621742857714505377140624608616815714350129614852229600919500677057802917887258384874435949303223242783001025167337455848260060324153356229872350423438455319722948562014104258355112930406297972821036848250632210783385231957612848287612136895622025604579835892976448943447320809802258635135974390121954705188484836505021649913409862095962430523872285629350301466100156284183612452156780468006923476358952522094967280454414627779329309291783177945835342572172026459307061363343295105118395184800237589871856199500883667468765103302117443541284377713303824391610942553587419572060461270511248851871510235679485246227429712034366198504180380513240761968987440975489214615881192887964742599772933363972039458521639722374217062848424665791107501010400645192956709136939699633248116468973636796656138484940109161990745763884854364350325859831684840350347904614857556370507083070177312111601979132532690075072881609567288222755660345158453035771116868878287233821009640474649882864592626633178121894303620021761586821704620429723755982644074749839102111833646406629634572940818542939295738521727249569110672017386975092997958105587289925198117684789977807288224521882509811835440514302380525233722570478940533249530008812822425423765430937817310387196368667452282831682251730937514536981535944497516560128010550796336939400202836416599570145078552408924846526539106982439488585778688487893846850810262635230033474868819887827576519888524122449491351861318113657347760852960161296069839107240517281172344886749971597884141304268991164084908703044054499609329832282224119544580348597325786237379520235495331815761851663342123163588729589979932018685710916428825726975323561640472917839984587384026892631686123300690136860690095413329397592034688226413339237955063120513587224129361580674456140102738770927041197693254391349557500652714841954444869772116572818892367882080560575311574006516032210147173362527637165363894398640641563195682390673044726664074998624049193433500336120952699006415504009235688791219362448453778099343768319080065962646987418368431186314200408468884083048572997050081312229284658233250870943489147937668608659576707362920700705336686462802668531133134626776848183865725643687663013904470866518703243638115970122136083513019417979545512750200517786812432874335414403147041723510268888049469484563935739965449457593743614632910250578740613585948107124237167580978436432306588228032235843122773604203193835516369929203095644658980952904474995961121075170854483382452551502041755388253066726128979847907872752508749197485951984612038940536355252392175786616579305981672926165401866089737658045867488480683807071915198429305534268815467233885703894986132512278472089852590826218083093522725910614261628791320569166393785937901747421131590690279506390512861474862899340156850211024011056348563385471748782397409867302680584056290721936465350278034618033655993071655158049254003016126961451222359483761335295622460811153494764217962118321000767323872894427840257891299896047231908267804910944993499687794033065721894751420075820572799185112673118993539201729741555970231046943021529011084551352594163629334537216614465604186531315186030322501364420494447651189108594661083830466610709706240084898101314760728791974189949012548079096851234498187651992300145261615088183434366435849786237837682137974863425963969231179695505239256247400931834647330177639468137076371538586962509811219676762122861554345291690618585094501344632180256704058034383349558541900138887460318131822576003902545302053126689026287626969908138396558706658545320739261741181109216659917048450967745176968839490965785635938706413884415441526000367862281328145867553592421538230562336130457523859718747291007368794759345140270995605970253268070605369257062334126572300987982546029507823816815667840182292789202449090594529344800891955844648393131006795732831211437217922843581296385902406903734595039536707796625113835193332463267551137864653311021217841465985066088134282176482512055511503626930054402440890823556647073614403470461491084523240423618402397865458662256664869911766296195354185795654712544830247808140388888835063733454897526583012378235910007929367266234471918991813684352943079011650304077523291916426317298129736630932298593345643984074826097209424951750391697647937943507355743099125573249108721334321943036315781715483177522291642022753375936158276341972086345475338906827183095202581986568825874458616474256808681495028480546187713267745183394891013368473927177473510411041885973292796718447892914540564884312145202160004891298114106053694442936712306538548031175862400182150244371815747554225465278774569566613666482628681050576156361436176478795745191621396990413574059964379572134879042978059203937396485012393708370486335492040506131952919156744624384843777722373764829131358213411340322575818169256066930936824414956832346443702598934492653734437963083634716023376627889180900626709489741172306949348849518158947096779293619930568204764043921579620031157823761841575556784386107066143227467829263782142369356547924924055059142562827342596284117396158673329473232642386279987730598763117073007918793936007400429920193818446599687189489132550078030997479199721827576258164208385357962586631019043917325228231930626686666229156724882793452566305455361476599360904530906304160940376763518065765903866638028994463285674521093842464989110400207980151535818638726551443010347438880468640794785807888463542090797568925283742245870771561725071602608411154484024862731758683096203461125643551666442116533381544578128074831241248704706289395526313914964469046502140966279856534486546583458780683138568567679537735942337759370532844072951348920338367154890212447054360774827205115828305589263863691522656337059265619717094394574598843591619168712750004203315362080684522085524124937905717018802840874029376892876068223201728048522737498088782234038040079209219982169979768914802060727869699542344966628082950775491056273740912065884279912821803740034729216200425741438714968895858850178792048800698650785132617539915143110512704191530399250685962442584368185609573448851884318751354976377501562767861890360469393728338638418148118935948649709133660371982028176702690098481332513077968862955341217240429299208208913242057355944010008191919464324750279796555982406085203707188333031644243262009786250532332140353122213811808215371676786353963531547396747042011179677754129442964723886821526104135005219651854601091153533115048683648321881025251026298874175946774436663152478958287561533171127440263729638955272511133864760531483698829179032111189296670712078515674783554616571096612661434716249505832898120196077881534891718286743343532201138841525652352060053374159826626165583783156231921425282236462175685185129828295451974998926943730088596533610082796388184102245898198302906230341201813735628375104851556900978141326731052639263192221594286838960753348401049854102282916136282311157633195866168975887138085249164769927927731450234837938150288209423379627802590849476489937248620282218386738215707591045365630806311982284289720340584805533665224449714523380260838592356348890315197515137149889275453224007577951993455006559300095296169938296180794162329777120852487536229181138221156432596890954957335199204518456570597396012708211461696035959776288381898165286579405559367238556124296115002656008788598950313563282400096322742536026966752547809486119811090992724929186107467626183903506196579785534252855076763866713137328279281064826635740218345197314710067253480724927158877871733972386431386124866323607282265859225761197478871448477313866324796050741562746797368748918559596781956502630317470533324520248931522141740712070372913626902395724258099743273765520084150769464786745051253955413981022118250353148121530572061819158453502626444047908637038630226327288543170271661997427160939289409925207894474249920070608032694009775182954356765294547705406402182647229115744493825300252824891975156737475377313175339674277292164539873674480520428060420130101511186962335521612728153176177587212312073154721806640406694269449897531887224971813063718467716936008912872309197982250048066873041385732663912727854317871570550113169900333790896755918383719573084480410009561551455930729323283909768384740225493403859451953004200281525432247742214194996973725027364163902662812565812097973986960093029320662676026023235824479627790178989692912481170213572613421615511303836477542899931620951068416964966885814160386239878896760159510330140879876751648759899529903963179252482463945003192781447192620471753173953666579819434861053204448883898852437012618099694898158446606025965943978640689675361394486300441056531508928141607205329838423948395937764369186677427699231094110153656619160084886589409893363757204288891345556630399519031300509196210810523502695199703153473364185929308052094033163007709453861141565284365680644087619548554323471779591410987402319949005417198486345571583149423782910983110472331636934226095034553327861008340136309254527368829119470377218909783330032717338214753633126862835016943850078289315137579628681597099839011588527153155007970816494091276248474696085640391814877474345602778783456757690087271769282493734454354009702868770539650438098311272042640411569662533095199615489715866586801407634850293415046387891628706984285704258010496740265939267423212296960812596952912527315464915313059849506271487230625584519947727859134261929878368326442785607172709533581913887271537410767124586946607572040412057228451616147519608327288564569519799512647070037606919896902414078160958951852167206485025893283383774484038258702489322576297639388447070465945263528644702069465481279713500496269133503906600984058539981638914602588565781378422173018591925791938510572315192433207342493391132253834755465139466626354825012313080230992044469726581134082223796503139521034720939618533855168942675827536965824516499119367730190720158728117346421469246767253246478590440275721855516278705395057585035180146200756427375171357835509422129129517005714661460011844589770376916305596305858156352292969335145965738006825695664208216128906618271597152619281194334000351136995839387386352301161982976291959372869267647698623738789444284907475224676963142644096711439745378034759425180153848936791904152404882688008996673155917850947285260864089062938998676690750556128264169684552319661593546532751703392299891398607814610610962352092976287935501719234813711797202840464262157499941878647190532237972265659363254563666353905764462517101833504785163753880418628546669918893947063155475608711064359939266914123655816943370961655749879940115442051387055593326416648884079067183647011674067628032103911762303155507904620033473218016516529483640386241199011199955683846263692988746232057599043918816205939211332309964133009201029598279745198937928669144392175279684012872916709453094419731266453748007597907845714021128582888425243768472937417794115207317871771967865492261751454974759001946457596801201953586709624056311866924826909306670978900972816606930486315216389875423484632019544551081123253733862117989836540017244476035625830667804052709891632162611383673063986521239850849926176580459279534568857956973182010041222380032889438512748682806123614887243673216936053332608695382727881662077741340689950378962677197304931359976986394406817272298362825809591497783183590690246032399583316703968582940541028265508371158534282361225410715832069714253873625670564830801672866609802535118023355236576213658380213167620297794634315076836408910228765619978613319828619952287499199158710149347704732991218003019686908627252443293262614280068504369545325602609961680703576995970097984997450300457209890562594338259554966366632469258698304951460401295541798369724494744789137527309394807579740149201899122013682276082233827598714701382386454870024290035586507731569363014431136029969280976004456901487532850870327714140392070955806526152126181149973773399868213953914576552779438312451240494406142398265005054327189702451568381158954840550437561299832009147169502722958880411804906643997832293000012409559300674374346153875723402393558541977736249032180268202343799434512988486693598166041893615680049141971303014293207094557274216109657891482999562741536086284936777811713667419193009712704160862102157271259347570733216270824388832455692987113541448472726136361334173496472944505063127205519688173901047038463525822976143108519432259567626912480387553691615046436383829900277643943839009758068773808198527938337704208625636323281403769566007506173572358860859291407584193207720179868193216151244050768638998679881449885892691333280384386381728407131890721270624762538851803214860065655520933126690791046806823600151653176776472691652749397895835797585823179725585632361797256144807360926701018538752462576624639351887305639488152096199022626962327572686821329140945950951980166534647655371282347613444855777414259662434651851595285523410951339313169191316290682889470399691275337275507115314516706103016217094350953571929591166714726782340359335596181707227881205621119990198214360234434189780792634906461238614574210569396910117379296434372265689217174181437676089391392478186745763294162426301595556136632411592942785695498995561790792074546332603204710553827664656714423062063126562207764846585414374709512036866887556816279172924153560630027744296478560261493379724391285060794167275855313355927201450815596391933836801134329409163103693965813681259216730193433256785712075151024804935229271952279276676849847265655639428545633139453080655905584649629598682540594632891462942472936591648929788087689095447374353201455027931827447400247938928938097155209859885872276248082373372378479699218900269446837327418716541545957831864845122551046202708969169768876268816541390983071219041408712139542896646530157273934405761029085577212001568793980992968087291957898636620400451779915185209066565684821782423975873347687259103359449974209316956667770849500877741561381118407701083794331724365794985544591102513953926511187553301304739686851947323720387756715452484588136052390518485784700216469305248594599987377429762485651275615004540159001206487382745712464641864253572577358699704330516376146832265516558411878496529409437315693522863572260013754885659516390331717988260199572281836839567832534652705464169824432835362679478210062299849036545875858761573113067495810003092465075309612052394265119779806140177000583163145260513884692743495939987908117571191068538318274155541608942834748599154534693120508957993359144133505394305254252692360837316336503229172239550879810954428007630579679836409060695098146659671152098350019450982808758788816771261489028245736768742312356627852455175769356084208598437213284270494248891889027994742951069906790812118082541544222949782402298167541634340902058313234711610839257805382480054956015278548602980511992832287554141879885173348396216268634994252404426077006829585487893813700115200387957089372865425506281420214936399747552459252031604374838742861324910264269742834971376535554365617406116603121845278057382765678226674151168517889663597126734221183151935727006404567832102662362697587644521281837183167178239457353056223666906106078716593345288965019080777576401916464760294211912876238405336584596213680983626016522561803743645879613834555329568356069779437217631933131824953523510464387012254443537779513858271330348130226197420013835634616235993561880169949390704213098810595144511785864206402739814266459097278878359386918422000152011688466193815870952680637736394845292894486939906340239642727985056714740343924268434835187785641075227203322871413004485729873075828506538289651793700876332312562399351517876108028326610462980844689187916347894427012766909454244851905961070481776987293596003760855462670504111977793684042254244245968136254014640420357519440070112031908654184192227959808013093800473285149739002757597522800000349464643245045417521417042350586154031208263202502878410974979275578065123157719906200438073275968034748769320994308446639682662999970279388438162327384680762021331412998361989026419285860482704330305584603760370642377001449140353157895634118640773134452666329538050833554950183500996297471539082474797302828999200301860150563583032285743026375255845580511305283737944136585825537525101219425124369973983682067304611379263511017940631291137119667309617763597757224629852835541941218054807421922939772263770276344593020665246371592156908469467176959156567571980126135301413497984011898446501600805845741968417158535689250724533557489661296484427585508585883638238384517401650852967976417105118132305086817766845551785191446393664397597340912643493167169805392222864230488582121955493961830768215016248677171526335205788562295942721998361307296667116035971734214638268894739932986179408913297089848829456741076788230463630119071122841061911421019562767705080757968565921820441538141533549116700977284600715873948023848543895009248804332225955414003824264617971864735997116496703441888991184962393412583193975829505338465653369993330329205185600923969022019340437953212512731514911607447172922573899475312067707250109628563302928526709966913306284620795371522547632252500209466027939801805614756204786592619257654605364949730852917009414765392325336902574654033779827890358132134203370841715546861017597768620342943695219579207324472253250963449291508997932242753077052244894338400155544667826373672017611150899135951508339496568517414386843842903911288655380424381880046370503887410638033925943365543881359325206949297482702108826870818134113838372742905194797777136043925976184988831571643541071023197291455629313768106603602503678216649412487887121779754258244840812494634034786014210014128775776852564613066869552810891458361451894628841757403147016282580718133669714794247023914533045749861344838253227653308016944176364916390786412332352799329245831390226278519427392734901578532141354775480161898147175720201677358462472396960492514279897336866763127449620371902581606756876123739334920137861655179790206864987362061544739547219517096022585394645193710704079732623830537814476903644638322623035023447505112043009768824506262928370383162249335265660332412172077232633128634295367166651211273948402414771690875339301331078026490861418847806520103616850526468747460534378600743587727745639881239839603637718269674723386479499988310453496429952029206774372933952696150782592133023114076794855724174703840335065254625631517665852494302394401933883425056480695015332723763264777465422219267705577578417108570822663821976251863419825475193350308632887761968996216852872915834710500561988524038376138646077494479460843644510489465122998748419323306186563719649438164013913679694617160480316680679511048000066356263532404807026688487409601978683209256416059334019965752549146309132657084445890121919574624348583584557069484231623929515243723008824556298466976335769108987048014133945002194737745251813795712980226323899340025954232943616175689016239954861327014450391070121117590071949101048278395078807872504564838998837850979941708601490577568058321182750739915323939768568903258664811411541193273836842374174075018867823054706725458366337817532877593287900776731529123580570057557519870480314545730072924591918234740341436118727944492784753051142033412586776963087980753025103683946537157699410932253812537695246184791447608308817394022858370102372730359470560310400254100929938499154450454867646858973148261967867149953070290720417142657117176507110194241618187531834737534594091752882424010646958093755802895045276234367710223475850255814865302631758423842225876190969121682760278106261159164316598338949803881662055683847160081665175051341350631346063600580316869386983020952932138962072297105850636347682365772380404179531708431262852355301040507122829019545691429847741978509418509603054361929653658552318141674908672478942523411571967602398965602731004515318841958794290812673794160352466321996548426029715326492670136044529485135666208425007376428254266656622810538536853111125595089712894266830515013216095773760379797994479298200648555973841452766603171190636224205953836340635675068577475546490002735046412232812581345833206278229376279299105009389274279102887865841996786389526565996040625425648548104865994429891016209767363072995649244132682684761246246017410214745616190505453600749897992052758572783758520358195800030020397961939265147940183323701631064149050599326518830056725860222150649751529321103475676532517959121431077497417959370112534582469151030490256699820202476643802733419864479814744678792074808701244452504454434373598171787728966369087347093387242597116069982352575991718801045704264496035744446374100892132048799683585220338950878341743709549078724710186346186638348896639375830266406459028554391533975334922827035697577920128509982194544648872107660963658968234197570556028279111729776448712193141411058313933548580504008268607246777896613510485807956078924955621542006935991894093884374501154463953197893075590090419371980644637853269902628953581008661474209925802859561342891572557442989822717017521569458452013883036407903584668268798065235616444101501238928733399342199990830344601427398335533953099963468867433204920598630650694306366134030594388157611651823687576886349094587832030714148846819540094179807508157237848713428103401559486194003133524119161800158303260645448462075714736771489711868235390511459600008800565207513110902161746090275438069463957160744411445198455105891457361487072577647872135410583606073639559611408002217414491248843546265152338786892446770661748264855152361784097743708943667988391129803537253282302009213946053065307716497732721196389621439705623122338412100164707656561809855727820891850540066315137029559969526532683527713227077385725383540040342372013191509027446303042137634583017616995920204244572778260642877920816905160249057754832046416914764162462175205938507968340219901877358064444506132134546043437319439138622047714210334401303085531598690107974774152436346560387792725790165495514718845099834766265852701065809164718645556937319534436342831259153215613068498095655104102352702886517936708859940006190098504924839052505910077997183346411511405369572835229142464619630364583316591862464464312654462675531683799682495668775192414568074101893044631150260944910101435478290207314911695221731797098075262931477059144521153700736211841917634150692527798714105622061074366155697043989999582362940447049671335281551725902555769156249190639716142556557882710194727532261946539894245643637046816609128618099246135953688537637215438647207744126288046422740719232680913576494725568881220049032355446718507012504869155927999081014669716018298591445745537002206778943058116580804644893914936167435605035657764595497046368022178538804020926026686675187676458210537877448804765909292826095113787105745602108374850709185339639695376991931228615451895607886598342044099525285237016884546206198589480024004976684122118947461521747716731659145753570668747854593128574568757134965365560011722061195278940051493522392484509353412357650162560545823135384366962329503233661899652471468005490246544720259953233112168098261762679960242782624055041719312619406729546132656247053024075548371504796267659761934871907688537680188450147993185112128995995756220153053979051566690251776833987750741415622163299429539428567351536426674170432058598325278278794560899054864834728038423333558331607852530135874341018806280505158206412739864794532240241754656448285804854215007726582949046092600244935137466424011821361005103243952354353921787206419881643128375057945193344019706952767015953015736633282408544713281763734885013736276279159146217977954143183160687487400167449639176298268260329032531766656675924188212641632479672608894026228341399323008686063612072395257856099537174544035063882217624773582050844959037750441188957723856974584208061805019970632572520195445922759972530596579250731587440849192553109878762341954069274521523786083405516960249687029265727161660952641470290623729835279241817145057412804287976830299247180971349658017818134453518039995506039016583775906381037180339630194402838789250332523939465885638922711885474368860885851251287724238326050717351762125607064727636539997126852543157028738152582142074131854616284645987529738052281881298562424520499274462543967904647478245902213715239315299530567380780779059686398118883784400399159934114687389774531919308804043669924122640467666891451003154525176054730074894454330493288843434000404552300673392296858498651656989031469886677186569370466133769363949878277291723098056254482362138531546080972418952978490148174407660082536773705402477446406782665542466829294881919143702825139842505439235303050570519783400486280324500855682889451005565204634036614200064727912631317420632441913897171795339068288179489796619230703705507866481782189972641564883630556114915964623321478498899689378650926307294770366835544428045706359399332526454376575305806606091744185222122797295190242229966322463469948740243553596062423755698873754240541500421024179765429296541085297855230846854897123281030629238611831600030239949172203246753000666263511592608764606918547298249804176155215911560139914240121162932550416598859415213214894994631608562612958013558833055992577790425190710996380091442230214540270103158843707160526689090461672788108727899999795050771988907052301250745766680836731583338447793331664764679120114389031153757720466947349245701270884597950885220907865652767408199127447918739881470157889345085105666569086912583214714699886263969769818273661997806907997121552381220680755582175550962860896795658138152787369026548816833014997956005651451318240155190602760842710312908713900667228845991252199035526245583680532115614206246851310791739265724324887293591775085935116130175682958973858520133941252866894991846834074936569105912364708925951231333788479876520819161469011356471739598634400955515436855329184117092990660796492107317276146619026450959757377040116205929716799382396273915594184704200003818718286998175736650830746701590755931166634648445352888177159236653122424553414353195710682881191185777521481489634072955161438810468557302447311750074664460879500173225736817224607500172035609513515178571808855987694735426526575323337971762399555476767267280654497295806511664421691446996559714590213299149511107918196262446846303972324765825161368799994593875019919419617907284690048407877357601342163970720022820902233303016398275326365188102889245949292886281748643484610394764728345142809252553623533742062480651370907963436191106504109181655660026060187888355486453405024833811108741864128388037861099050624611844960229061181313631246383602398350544239776769551749041800079362503066612927705025919493175837118406574338003669211477179930066383270806311721339012240002991972857091972356505807638197981835569527267373692123222126813535764379692850261789027230848831562573602805437183875729039776692036318078157860868284469290310023151808870569279508417021327241888766446457982727545499112297205513229379265526538862756822286779698769311772714322566814727666655570567178032255299666389148516799565962475294520271930014364615589106946424318284942457880293461349546660790564192873644943858416263912434370324763997468558199103694760193225504420587237203739726905082870857894976134205667800901533964425719121512900737058542721716590348453579384513856083580190874714696730750154471132093099190086913608826458075543750384221150964586956712851240421059442226008029927371737193585896692350531724757601726426499461895728943078381288179608564032049192793717298032344710992665857357417088387628734178455356742282327055315067569426592390168656861754640973205807158875900542674033710111799992093822512011709202440898514730985186032903485903302397890421474576234907171342009195156861193922202350780126798905717214889823471428199668897243727569741635499374309007421749278127290759782622760628450228089649149057718238191578966559373130820969996103928030939653271981914111301437742938243105681152655355020471523794750821600915431493190098128644967254759192084943038084915364606760938945875585275775316769921739768074442139575016325127476924513254728142543915628766865774107761139748153093487619221304088139377341201944891658501408340192333868989714362860410835836356075834802172689670511272642972989721802296417237269958725800886074003321345395990082558443169363048628370898039834874186644851600414940154967250751589844304532073742542764430313822192179708643522543545750798288633992221842760516630717050413701521435674965382434037584412959508078559048903319910791565260906737163147119003379338485154831507295520428209993229750972731821139640589192262604766128210219129904990038921840494465317076971800103791745105724839347815939944249614705801000989687908388413602607790061648550166716993774237845018788067338822950999803127273804826460904889002556120396726778980555057276336515182842619828528150658994248711876562372600752018234753295137593320580406337081745082070021324934490244072209808892619771953165883339097094918835990001410545777402031778065711609721421942227033179986565783271488960939642771105792366673768446647523835142567115455160550083654001699240903014964687528991150636390191087319597494859497909562168542244116942391577178444679950894577932636340007033932043948948874505969370459491287838937242742090342811632857216551119287171533417247218604684864732342591079687181735989808709584325712013700382680030654495116024410637305509768426013499881516009819590920674286830202926808863491405663433595822946512811357399051540065194986226614213572161843992111243316407141192846412516496515543672114959904645096803937208177710549020813793151312831667290767624394017207176159871931639880237232042523566480721523455921772613661966094757035099002893764591271736227600647305570994000677081873374980501246019486748058686104287062473852848251872188484898913310627340078892983954756033429821899171290363868716323406708713757725143445545915123573490090529277006747169991468158071799483471892969579193513362105455495697560940425900925514635925876158852730407851405434546670286826478419979204367945200755804733183566900876646494881473506516286661395073976191899106778014139589247903231912003537409946830437095776023101416896183112662139250504236560826387466172506717936545354105213192598891391773798101191312665832920100518824964351024253839736311288461291150750334471817925102252113553964020569791489438407836107529856992728026871956747216663325183272507036811759305389703328528467266057727715213689481385726925547093267610396773809809823054086570735478154953710547471608972630487174093246063569565610841244939435708718345234614836352846583664552707252810538236658037896706098435072745962217913819208370893313949783549747617391095716401291875701634492554140372425644938018581765198364408797141059324356955000439003993292378410741939901940541323257233810321120798365480861898361641333297672683359860116009837428716090413006682961458266683742636108994086735732583550288367632326520046492543966714492979417573715817795189526422874704110478638898444516690372760416051847069176767341342366809746754113158734603141112074067036594279979645106545235294855483627560015435571878038553486249272561087886937556188772396295144539407870118141587583079923402013939162496882883490941464016508112156678100923451928645591996819796096492655888128754153221537059640904303689466057939907929192435254495207638595266770253053236966399150192468868861831548118620611998262623361689241341423037687950081143996622487643300052890926248521397190122990712328398533566498917426054189163409478293953862588358118938242803966162864513356258926417466306532790009308089859026584896658243664920024188213575348758818293809809419191287997759675943175784683141646548888617342978680633178587023065644697785599161639342836361517497961265595870060720127949934499439986052012963556234260188771601353744841830170273027386353853894997150240913904282517245876949310736372849564701023038859896336322126122773927406386054248585985161499827229201525908456797269457321903984485431963505227464940891879036709114144513639417252634222640678530266465629304992700434669901293971551818998333169320983317604776991237118340837463121141633667291908264160015088005798360282605703350291135882041985096259241459401640799379271516123345803005842195922661174236016086059760566019641073418660792098625024270718575050611436657904598714263430860042824395457734536790990893191446906294381128260657790311114579668109475430678340340115168101635281623380573400294986917579975737191790882203197206477201165053180359328370968776613492815441308798279787800816614875584460721686400122269910688352617977536849542522632459599063471043332017212298648702101801171303708988323243394900107167312379241681180451422034029541451715894485537043875228922478607927884076831570905745946762091458420777286692735207741693394839449935011872208784849041910417543431652554968355520620865060353273827498937670528630014846566270424537975212935946064642340172543374277121745696940240645627942386250563537699306583710455052900114725727025604155262190785782182224360660413433826578310354759183643429224673930108308017753758947935610060074421452352028152137992478482516116865372979104671654853124578903126925214896068872792055206721268706638680229807141768888825887035014068130994996325408344604865881790918952109292368144053973768604647406853153181700745155597783778980156109390177553816874658914931086514838610784060975956628462896962379391250769515852321062738446138654405048120644350910487497934265135716389617047933626137446946819594746794385797109413655258122535070278791830374334894338924015539334024617237138683516869754595966568162564558935707698198309091651154315834984133754503197560466416413507443246570459924859657777362978239077954504657085002853307416888716778926996254287436330736249256799206224939858609883377896184804720016731947953486891140902617784354103586304883533682862475935573044852711115360043934230637103482260640896950295474989362411784823829443879557184709973815357946790518737228695488314603345828941472688132481665786748707654290631279580014414036944004282325366880319091998572759918878260897521933026143578626292422872765579016353371606516268943937671092354613180888728542249282835406618220625068966255647350879247300977919021448064882809961636927546908108490437137991549623690743890978687292695996767294680143141325922777877337198709406899210140553399823706129599781341656698274562387086758003936408573713796501292720443824234681352827293604439722732009031364295109377495649281720708853126129092726043768328518835106599824800079396608449445268881584077758025381287612448520039182738253071749075285987637254010070530185453285994843245529788376044565613238386759234432171792094894774420258059978748749667684597037252635567341952842502968890322117829795118470638376448111112898770599664011148075308110193869779920875789077844755418374512667909500540263901054024456721147078747347828059647077320926985391025156641963724403146124540971076546733059282274255217205497047976493817531999461674466294875006364101003109527346826050535534994435465136562307086495933977386902920754559981963264874771230086078653320625449621649768668786347944326501407455756950409384860108592451293301640521156063865463918240202894289022894895365709107778306298751185696523191958869819037500045416393967161730415298269779979531162529989821507760010426981364857266030043053303419295300186819953749703529417097226980369820793423060358924573296265089027830083616159571611493196845654926380152851905667905192439180270861455158185345974208563985056735363689126466482952951403838523926718410519264926719663386598049301872308053004610546981276361563403986077328966260147522254664031775502230350330202762839264693428807510445166015460315564536215699854775467287279674849900289255492887457632036873654317858920773293747511133552538637062823410610930651597123292012040252811569869643733412796098741086675077693291011929844980128479785135828219979280385396901972796831843269804319431261970106187310797092098702628329783746726291164131605094599565157136503050174315447075460341486861728986321239485935464176396879431958136742829225371201808856362591589284015461985460554944914970162645991073097713155806818655026697440921378972081464742819389557451966266247157992760620481727855829590602511917862894777965978817515110616240237025867021589106054770851414138902498483322775536807577731596310719900537390446635441206551354314581860547479382180965528221198507206158934204006737286451011194521751071618204534492640983030238387793940264648151858065026644149625175426726491073003680172108423333442829091117149112077834928036279877483725971357906063555371739832568598400640011528190804604122225876155934668882864851521604146364124065427897497196999848112040572866144709447152903524536490399720477787587797598287467214853292053324274398398553140177899882661700790918554612969085517003301000135088729257625132680483119291547114775343544319187521540560549872633948111768213177204969620796229555332774486573597021983272389915249341280854362384587459892428446936651489299306469271902154552385094133896450622784370396281343341227746395898812599452179549338085979153111882654724195441508699185139227090264189617839371495648513452142469345827816557760267343423146418322260438798946360062568898377702454812047043818259188868394884263564559628201619209936977608404039879446357643359549565523130485245556663510224116086164240927385091798406901167928148053906765558512080233956235610893763000186916923773482555078912778447380970094327087288978575425562640098373986649523897519739742164680863373267655125316889400655342812614893834029987938018622370414085190681417114569617104744929372181327855984471180373133084041257995100022289284728928573371018289633396036215437529270730924578103559871215675928063518888438606170948119312880930387491647342641522793259089167574778896145322838934917511809534811320550950234148035793285423462693905928627594525328479387576600526585925831779857312287657235908528231132816646437939786781125262627763641155240157982588154586127524139920342556769194299227599197568862481979932026355070182083426845524924851981739347638672669745282246513420044627292130453510425962215921332655338398858412474407309275561465260830166455506037399858494458933081676832190894695342986288165499036942895882183849082970263839141679490776456323020744050653795089487234401774803980121210676370832224466332104637764214964091875399300179315347269229510708647676461920811862883419182750445783544294636853143818761774028902924826025786089335490897047208333669363463726258576664788569707156900854799357533168491523154161252477645680023318242683769723314207787208513616412833078595948149775948696544723042051660991925137556795777068970089145306042571730449329380740909665920147816292242641656795128459259548211088098515966742166959501346043725540950563547436098522497672984078864297950128124328743436983813330789367321947651215496025689946420116968293564115527834330405395044610640250507270607278282271268496465272330038881287418028127880178593251011346084147625531135025164762114728558986157870454740806575612875626599029730459543118032972342466764942309783312082626557769555552719452628907557525050010514700808461961319905321646497332988814223803099717109692509180505269250285567495375335259629327270140513616659596947476698390103622413300472497345358232233155606788222975255091731499400617930309731825114261850405828432244224798092118887059651166665865674844910897294136708027361266847878395908109875041178063297495064141393279876348323422148914493113200843457172895592315098686064512595711854648495459676452021284206758729379860254490124426949772278026686658631786149782796678842122999762949318276932068122515431722869824449405085192724566763986942111269933941389559650503090094615361163442303347024303063053367397185586432132178820976529794744212248907676233141309679932399828838329827705163178353791118691123506561276487656034507763605801190863570155708907632497677150697446807924969278872897330331205925238694956819300550100372512740059827411714327040130584484489894500630829044793225366062707510118347478150278998436070097755872115744144405474756880777633488653236852306240719761437057874211263783033274507576423893225854451767474296992445350501126981215435693334965517265496800621838820737853155903553578559965520184802973697709479257201130260893466953466796489135236498424111082302744509912837829601771757864890430452146693534463969403909139021925562760629763427457207067134389830975423193101747383928084265957892309365679267966585580750374181756100588971157878021311269954229055390225187074921501076625753650019945305346349054869865438237234209245123374246556562174225288983992712486963119862958162608618190116980691798764913511328218633323963097692904921214523805562087174110136363275670602407579135383359042764713526680023775117545004695486828349176505774870031738041292993033242929048688333558642539052659128282779283374846931990087405755307148145848987138430534655871752061109269188411375217511538403589995710835140656056776585737158481382654207866214080803375979951075629623527631966458720325136102260464336132103834507697014382215637924526923313049890941209409196853544622947759088993134584769595897564695585511900010743510621705747836580586364782817545295487239860189053821610383069850669754972142654617663881642544793416026021037530217827176788857549264989298872543555059482156502733934956068811498652703810444601013117032859255009893335409281030350298211026532433737999576513211934336693018177278692744806094909081673924141516695316450957318543831556350042844730507385370487478295065292431803522132437636577765950336119590394159252602939094022430632989959908047928356813666166520875468114957246762817160961770406235832032212103776745260268080399073227355816408452629924846120910615499151575914048668292830464104029409488130125713811467650543272053367555620966742625741401228146348806921189307369582198114475882434231399691012965112705541898727682245810929630170196578983274903512904974485947757951397470071775466342366788450704853438189802291959011968103553121513964065369966463377896058196723529309711976516890816262666822521467732300254936075812714723857149540263757934609719194218980421428468575995672667616161856373530847924392894438996363280706004472375681444095665566521903951000268143914197599125389300546355146267686486942957737984958138935936459240776501399321598520848331817120732718601373212629048796753148710798294450204651377042724133898528100863439798732162514885042815496257603103764750715908049626169615129409338084686971722038697608540658555004874379721586543696107352143626288587942064574134947847072603556361626271948643329704166418016615578931458338466086960843647542128853579910604823746815319365854017088036162666656322615494631047360951636143034395319851999668837501180107597561603587948941145150237451690562351927244460324264744918051544997487239573942495527202971331664016615048816715860153645992267494765684609907663902600840226972833059323835481374208608551678414044637049016015636558576588528034461342106476636776736319329838574614622726255746032085628327857218551150622590293772487498150724409785187784627213568318114435674008633560852409447900248087878991270824587746516871290583065982044136509892248703593323857924802816077082833669919087260720404402032686420536120850635004597089200842872567319143465627831989546354851687381877294803748295492993641217408305825201803191273814388921108885777131470008915310144105619632492389064962484477962181464384165986887554146134913096208524476569007875707956558326671475930804934686064714687812384632517454165632772451939622432954280405280495472279898480464226020847901232748118692239982445762175739257592850084335902583730674501887661699928332142526543833881931007421208875561087334802388487038554709303982544525452126437632423067695270143520082371539358795001457364436895837153046292157522480658723934841332490282866264887644517253150031906823462768216043849575957727954678254274892469991618639473200713875284775392367396846108967860172903453321778142300527543033710405080828812134996572435129231777265710311631577764346363546493017143927673792878820239635622330190311579303768561381958912407177767782460083183351816998631759062038885798680133016074448410194293529863510365485461753509444217611670971767523048681969794721908548943381145999683873861172089373726186991225475456173605146413103216695465595261951721804319738875560910259638256307504490449406210330159869684624379296155949615261331936220130710948637937875866243114510609419519687734055558758679884444052452317391204568489665798239949484461651333185942573903316008889076131642949947271486342941818469660520986288747384958719466938145921599493023983560087449630716832257650204875257058909622549810383536068677698879616275473204553565508050461536098642044239448179154723253905525998991115084210409453403541418535688044586850806705967140382631499898091530717064007312186364086621427006000474499485635667450222208224559773882017061299216707074090726792031790788253258899299226937498030866531024732341901886223444971411184714371832344993276042619968400205187877526520335036211315030236133836362075589858669977112827126737866032128689704511981561077584549342828528841016012921520295485465026089812303419483228857875110693916118399038686049203434813345666545140239672544260032622323113493626508054678886825109073238729819538180423826353232748583272687725253463841444483786141320980895636204154429971304217658338955079630239143542297980401582791904533769271966067250077766459360334213128679078923926267178515544449307065945042729368308693609662421386975697048705877438756192817951472413215567422006978163245881610555755515320819679068176228245862794164048557331056134484688771639655725413297246878515874677649117712701455507464077594644026617215416059290509215109996695848687662310684618122563961215290179113361074809543543048004677868170569769738337596786181005474847224856101702908531087724287799091606081410300000571809091520955858509503201293779305337768476802169549238574327282463579381450994677753296134304582567235674286359228805844952667001514896106317241724434097306501963923768286979563811938844545381053044835969930011008169745254608848953448216708487070125419201828463498161446306426904813905528605974686676731053683191726887893951866140290861643449606972433986389899501845528723718804231818726205011323313359249577354443405957924402595705291847643524377489583779609629722617842989445030381174310151573446981010385422977986282924381408353097189725368723255826672143946965188445751220774851580576444394354067349315876125449675540628830771769262438108653091224904820001695735548536888945607253271161220956498558824984887731555870487820829606268386663547745463233828013750911762925092908610021714305335705118631924593003861893145752013743028971042577124021988278629355702265950020042300577541208108082925458180005971484293277188312547769262572164038524397124624262913046708080308322146107721342588159025540572034523959350814636936728848200931114187044038760124175957620465403497666283203411149023584372254961116470599401639615450484612255665780523441165863063042967388925951212874981119171431078658146106727311491333821972527397499503860504481611628420563222511683282676477796226031820468198487805650319305832251079219958278983550557984991113772894971456647839999314540480344322414561245769102712583203252344497919636975792209773350752348700746409207350685029153542382251700312191394115780377813200062356980200205471143322395869219507770758187322415713740389446129340193170167772380597734169370387332424070078298100879769862377916177903081241612596395974534875236458296807842731700629385238386330605790945543497532461260826158088652811157810151704581135732947910319031130021169958874226046048520116653811405746671283592836659272161779781768377143863629398802700492433741462525640919684073950090618323432461099555352389292766220963441164972996264297818611620022182376638759496597852033319403228588233052001354101514636801225319090364195543400164276186639383626767748985676288080508529443134486305354578382092840184288164870574774014015201916629186503520444477534774035815931744698936479165717969303912024558284290934706432317391770532879582153524855881603876621284699605312206200340780085319253922655139737369381739117582863023657726687193094870129756512142165496105868730021738463602475996391061478499873553297290137360333985595883643664454501416128439950608470798194514079337590860299150144732397377059824680219020091425778631056608595144105989830102020729199252885273643516253184951837787803259318439339460830193922124872532261097913231414443217372681184772548121928759991936703097670620595965387006758410527928627637483024095215907081475799173960931484437323930620141484370932700896213428885637775098008812346296929145968657284186362960803689368720786671890361674375564703338196277131477849551895144361842044059661593959673780765781289933994322725635915627036160483055577117802948178548255663999907926206132259300216934719051732020684166269193405471521751785621029482614128901923141346895443596700392659332707682514471494130131591333858487575444661820134820914812021821098085778895764288200963789745125063012738572452087952157461054817096279437771151500859654196162634560447607374804067467976444235758613014009389876161237397626463326987709365019050003278684284062582626128923035142568943370069645893232069230946674790269900283951133650300147004084851937916976741775605161338480124408382826055227381240369588838793775302139709358821505933559290392284555585953930702770593380946740940836062008320421598572950190925067978568775246052854043941571045358899374991298673128500953375139174620500129661664123952863486887473833614944180118303500162933667628762296187164544445668363211825726609804444108521415894250994081592722565136443311469800515315235296207731656320043853785819175561633122422020527050043480778453983660174484507996640238039030069999797469189230769077307809903591035960872279864130179058374742134114844958049037880875146985017238353329799063306516072812486354638587120408740728154813666525440332862701818857465879817509752100362683686608606298284901901276092846114046996677059865791349519474932133744718118732143264674737055749254101615559005225860198611775596409874669530446475362478970799164447895885279107586080296936332664738278688638516879283229947597815058837796003742836590590630538612188365276619090871982298573925430223989525863448961336575190596536082804098804858951032727715127536498639078821486171016880532725272961351091304075485621987929272226707219982648284068198787549246870448093906006944307396871080444424871525157110950137604853983459290518815449822086996181044298805510464342631823699322888458398405657158443112491163539229621278024111153376502894525793716550807555458908370150093034435097810597928790888948562910132782412014730980566190596218158049079957639227017010642897943378072185285598951004469335850273082658655913032783625669372734779187973461973876111544591723854165398578985149101497051319744929741180820150833665276136728156955645949437021982914268584257812361307026509035195401150284177572946828103383235434819621101684802529198509509778310267303959707556528071274282772313689277864892586406785046189064411438369023409563917525228961373243300827208104862994756927653359137721846052870641389926223990360752559906617626925075159317858250542923243097549121185303406959695414351160977234077391120063387418145454851307585349903253402963135678362347993172968021949184458009103941718754800491727300618095345952987224023733065475697793441766325753724029129550378901066029238046187165724522219954064974357665872865766501317064736675675605088516987754608258501977682121442769294720492477779629915369559382465074569050642591559133548493946794523670275724871570880784013502800846607539538676922192291258817829448751807848133168172741529740966131053603711260701442313079236075792811320639013952405054842715593155659679175979001469436447819539908442734471714768539924455996568423716771970909305813899094582978693069264064996844807845504600344758573848513322996483268387959982302909157815138828262072363689035932902617422020402988114374618190111477127153018497031951104677123720747896081021780944113074334568310075345550029818587782914594085291508597599420796433764796456904142663237337230075705795170328210972475449326366461740519564783849667024267926669966834285234030092881105390613392531138693716645502739684059255107608935651965215647317720452530349564957323273974085039572424555709414725117352855842535664628729257373024358657206493941971490826624483819746564298339602604093295833426491451418057369461190024354360052331575147629776275061786288276076780338850934509416630415967485253737348056349108569347256884978162136995297883617648551812472837411757287039136609928316008182897797179747452467785429379573557994804733008028876122279888694316139530620550003707709041957755345029700813675097562983923684188212062174159887948168352613633248978989272312909325328506113870197669288733727296620377148050876063420767105204355739812717512911583694018155723547265876987363875931630863835405546198791480219089290198799201966148901394856725577529961495824789288703859929632733581955808557394719395534633594739743435530516497583829559067133626288360283924111166762092610074153032719239298783019136993008060598920362059187587394480257354699251238314511830906341296737566440179884433587936097459382237985181727221103424821716864016435167519048892348107860876251849631869104205497822162579046522677326806836922291713620958490303858196169671363998793556216241160228166429125116355715437467248590210493726445379351970978460620510850706276644204674123269033151841302682293338906931527000088166319906881602880645631275490924375773477120690157988326981415336946968268930710998783266362370934509272823101971063739448902941982197581718406115089857347600256951828810251805302364588632235878216730000252000720259310440337408991459068685180534451082936130816178759765674218975420042681174214680520272651647793042770871653830961637017869771969064702273861762606169992018604991022047609122500530492680789810820014689165182514592874821285105170554024799060788464894557526745192284355739757521063397031888753642619670179992224754620386206563502254194590920897997293317363455123809395346057765632847898919424607657582490031025962038231317312419362901127392842094090457692329248452046157918288131414119717328418040683315761228978945224070986496589144227236403794523510727490415400297105215513274064191011848635527834949169068221889145165094800598969525828451483165541825537704631814541903995907217340412129444439353699250616683534340582617290170089569351121650085567387644022177223338577419349359882752873156231375994254559251909354635345584286661884253193939120110766559553090401018121576583153048051491063504160703627853701814580380966701834017466769414127208281268659733403935311545304684078970872250196443189001348893918656586556393872342566076581439880615746278796353996463404559114375359479572231945802968713079513405420431699323917871901155152039643097926888442884627318959403397236256282478085717196183388070848486206942062000779103696907600753810475251498737039705961615065620484483652366296486343436074007964514479721851890372121887654578261865363294037967668428339727523175640936875536085141545516641697692474455002769643643277309236695188586265277565742393184467293497565710492182156290093249747043714211755947502201062173176919636464106093363731595940018838060329239034511272107557977695449754715615088914360693443982840022958839072713745613453470284594788083845168489908451844796762777247919551943978447148506960936932175313271891612451527144498407182136506080129613488296484328129752903093609886411174067100643900770744657757232474366007349397997289188371645721570282464187960813449037007652651019066324829817516587966464685579706944070420039144006879579531344381901504507325725384903412818728388695547956768250042148010189403605834125573537860684803518049698790503381829128548248816355285514983529089599583465655060640429028961977203225549606726193826257607636309099764010668564151523862636011759237630456887747853484762052594400837133974853198924621477657334044361934874869480846166235848755151128960867209821239518805106682535111704378104573366685102113560631449665454404398050959322870503538739423306983114069771608968341815686020672449145752645962198329552791658849666748000305486511377355711005477063312946837908235892900075486961360557558452099249605771686947890879234449300036917916905554301454396519764913814501766735676170758055133239560904621240981532959012421786206383215713206981248817399263992550367687029375913179796932193069587040508107208683245380862246072785488038835154014956018442708615532552320149540654160077549935761132218001346143620621106035057847850550426996886654390319154498585456052332022659080385302477512832928421531429622126365747689094819868725851240929270101951066324326762886672553677032737459254076830948014402607982661333375945650423967403973773872072807733004352979371751423281876500752240927898244142684152500759341558130247105289255257323788709871701597884075748177851468662822588033098871921168616075619337436537777777982451767898936286262196986132740724054905142120174036714341119500359816965934797052784729833005207267981666977822600196270561391079332606054233076276659164511351414374291717375644193999563942463676296114049815662466576643853431997088302509878405931065089683526351294533902249461806470878070636685100519746648631765831770216711608456873225044892112661330031202389246530468936873988541296758957989175811982935946254296743974061790081423810807168727002727113869153398725364792271384512312535721519249267872749933385344033320467611399416369577605586536158615910140645321156975707398063452143322581095156329803111937007988266037740220634594342655857566376062311386325645843912242423726110051224025301265895177004264583384589808290858105102390858372186749136248770830388707837826961546851028222749137994408517993633903840079361808352828434195936050897572122033908477028314443301035411932919492417486048791841910145675042853930062540821339509484905606720660804718251444224032564160632280884148266183878647167120986037303308292320932109342364017891418381835507064802391553091587072539023696895608188306072149042892268555559706770688977776426584001106442264164310866013496296161236780483152090317167726358104595357930652258851709118765073530032957716398554946558130006576203775730498744154588247519910563382304780562971213188754933136591947836438364570004965373104087032335123424887616079702283793655524635020007345950462166495226417783559542741979304088777687699456773540113379196885715563014873159920989214265486106940431576505758534228921411105607572095723617366284191948467491597725850969071106293469618818946702552579996851897588555845403217785433643186335831423420124287523366571067323412147631638526630054790727394139845558045186367891407327668855995890433058497037837512106995883460219480414524087112187590830077134992142721932316237247296839708049195165419912389204521586696844828270850992871424054275278144196757117664193229285802013241164371002401335234153654740220993553866802331514375747117198359796194929119924713719248189929753920143543871643309090595803745313745891795400985200466405562954577753298467085567751425741650004902234478801830020093344124597210185092142397418267501083959164299763482186515841787252212885703617650724023633004623998977301802836501596692329019716202534072794166158515820772090739583562042944337813485961627603125449707382794566239277138536999281996435354787924638099405053997820023201469803920150530239928880211845033992578386701884254003354323156357699816394471296442928957596312416867712235072439108024734554750988995984027204027832477372421954705251118651257304090969292090916918917153013668823774816540806915658909978292330904602434079864938451885552261473164347073604806031635546972125732260969474211439735065894471362779085946460249064461111696991944314068765849199149612713109786841174661264002907846997242140968825775352982015456854093611358118967420520940751241898524031516904471607999475266811162518904228252356444654244048251962138365166508035722911228291219826331173908561359684893907948063442376441253910591502341699005254606466539605235691989563912558529957206637958636473483237496970422907733159929901497958496982140447282517552589463595255280537975006694402951659641511130817437355866639490045853467690002872944902429759886311934921490544379391630947695353756056560168288249599939455718728680514079873003673580485598928018232030899184228065807851166913296357353816581653206014424395785946467703913011169061871351952424832811660143391651972711010703122483243523299477978696226331685328932055667784879588534167171359711515722926549472182770160199445391669122927895741781226365932823304556109123573795986520918806989132765648450178534867256622246024701246463121065350368840755395501777317444833662501031563248922361938604410786790196827349486339309587685780485959897884736956366145785892497675071548941756952644480002139586698171673241226469410788956426845831297391752504914232191901346233179092920703533632844895948105637620501727600807152845645738631821985552273826049163811246934873270895116144466309212577298568751019561584518323429451162370411610085326667437140474501086365220039907628271744867183659578980038533800675657707406198816182144226472907874934422065114367715239063091234234935761592703940666380107890908753550877486101007705510763360976062272893295926908856059201422919203719217361510312955326177028389149902922824302094060841877485706799224612394215419307340666023232990928788402128103415602483685778059305373373748242905490938116615445296276899552857018314826505365440005696539136930036003766485756070135860508029819559015521392418808367739768141354845419598804820181897127273338767798244742874776713163220762103936028965087308815970414835707140408171151303455474797714993517429400104748607709789948184782594975488611934598100148745243756965260977801526820512105051666212336024027811472620412879822422166437037986789473969718959242814916821283451983216314458840779059631555070947794535336031453365874560095173080333005253850446835276206699608938100443308380700101056653291832466411903582712835823816036072228573593463734363746047367801752160205107060993617494263850751666177405919263773673280404883861790907907748703274366901015631467577642390344100762556511525436325723321901707952692349550078761012998692936502962097819653470056131064918536874447771773637442748982933854220782531249156779926603687213989224119819450426012140350592334170593288819594204723110267228819681336496784385459387459864522796099738580872641625318635514104049113207082785340202512958976574713824880143457404817275236865649819148144528047632866633113945399312957403234357625478030575408635357995498551477464465254326030682946513150759757102928653193937463539158297027315064054772007431285861089922496052932230293128728392591259781951223072816179154393918145117823097888702572810075266493899881253368333496715905182888705325392639302772697258037246039912413659734140626532357910803635964919447932678472698647504682930604379757606432726193093235052418467204991083970104293552292468676410602683141852516735425567222043295677889590278194278519802721859279248253503833511050222834476314845279004044215790805598129334314734531913078650494500687763898128498768944672289227265597788763041258030981870353572490163159089261110232452172936233431769031651993154447870741646463412015365392175707710853096377720245459231687001030289454173442045301465468339026821928951263624167693361681013955242408325422289047725498381856250372508772516767605658537016235684657914817994240183013455851546167271553688316927446977251238303825863915356869398543849249821578690619838125571786958440928893192982576095578178028414353936232870754993015467877489304534183592823462465648970842733141492452756118719116242934685917197743948195639281378023057796306105766443288442231829725659340440079891098397399952361874456478628668623396082408770334719326215001757230992770468662078525281080987958356625135101504769401449556712559992210201242580101823600654614340277352416489797556524113146539102360317486902457991650171996165387527021125589620936917291055402422898407193736594084271481616658142959445401484073299338055555473181042226481148840129711105962910880126424914120849530616413218126082665367514949914916160809399639514129208169479689475071540790359385039513363552825310487595590254481388131855069522603352612823480166720293453853428577859488427084999298134224403167854929994235876454988236158224580257143796852810801413282597922607677780926635798432178176079477218491640125458480256768253697180325116664158090848023826421636642780679261935465811105248514052016486954155838713737932560090707889711758706031612920133220200597207677885675664853939938971271823046265198575350842442808971187974961223114807281012532578948011167045127702431352379290497594035086734163571128406938120412317214078512545042938282088900925385340243706151084051165957869132125066113072993904431107076559676624895396257103743937074673968676626193582955408867508605332409598993789662142073530422478711626884274781136216235116419648555576924742607663487004674667851624336333248232389514338472925184827544224784398552412568207946394263987180271367811798158741603063307791400227860741526682073351267976478837117823823206621825276186409169129766936609585627396968314700067084898058229608200803777852839580312443533463844707906586666834267027372883329970460733678931172930268153862675029329585568089554540195855055594620868003001234609249065552465853937594429586478401043780825594735407644373927287866439348371398395257208266015308519324410242174292402991071060713440228703530018012335918014557829061965769555051070286653998238577351507062049905398564704055039725968318459399432063855702779752519875430387458798187541824534093971512169253006500612507199619589312491322439645723995880554273900970389778902618449116760365182460188963871180049662998902703185563123139069292069122384479466730709628289198118720942934500836800388250555143980795474900977276684449013031463916396486894313923780650192935255068831770883850889641560048756603552638175056930902960609678712822760238076365004215142475269844203110841224938734556470974246526928709339737798179306344568660706062897772017815322345013822385722638743110566177613717795116543239512571511296533028484884661418985650195895182917435543274022565753930393068937357017087272302261294662085469741099805168001739793195450747155794968051189405142648022749344369278148888215922761212699592924130033621236431705147556500251807066219409647288732909260696302422582250074872060468217509166583552391376296402465978599461882146114887569884126853522014591242557305901373690978342937282369370573388220322259354674713808774310327554988266547968413030842849094397962732896106035546405590363453798248717795838333664983371049918227530663427459926778263089309507209700100531515031751183622893039220719652783772949621545729325536449136782808730166909107994268650757590782402496070579111705950971117277661465638740372627212926270083185900124137696175741790396601963309870876586314611285435198016212911823596112845461218320458839527798076533301303344025965118369744090508301288413216693345209974049233579562239758705768554408971734892016335303689790011540063800457184265989156233153906652819867737646622932463319451976046844577078236702986806925642612471691952866847371910648371838294920078121093180329269917144291606554177271494927049549364365131551582982707811042069471303055472049386859706391896902205533585320240467316737090723653006700292535264440526036999485429900044406759216940561833185492440108528340354321066848784265960657379774175533047869804992752543692363888494024778536221645646935881210315573104376869588844358727742973697058824755922303986055290745754447579189395072910672865396523964035657309362694945090891723701195776702459452336556207233500730908226700932688553389986472642156491481099942536625690129981048937495677790010437374455295539742549896107027417784521852382693224055189558904985350809077931107911136126567944748497335381339898324348016591093256430450495248110197704192718656864068994124744638151874485300032498311266472583226841499309787834528737151456205017858837831319127385743652911234442434320359077365534630718481844512034780316950266105418170564064597828253278262583732923860378892320362502850964373159786295451904889455844558178926510030461218354024580363549099272198615873521456731456890711108813375750613531264811018142235567474301343254313680019888763592713654450330020170332645512914965231352611921355536545643212116033063171564833237681740717855944416562493631520281805931944460028051115909210857244014663414287708439736130095152278435199575360967354713460442520577939044779058429392710241381231162630898518989165129160815457269991439534551945519984958198034165280757977347551107686726002648389236708992867851182832762706685780280851598069179628563093095899638033765093205481406779804690740270987298129084560199103890396531610164657351712234645254608651026654611189385272086943797719266643818037430525699045654403120683356681479259558799688222776898779663159777538779803198425712771010723401761980961405304995941431208555202619802045329925734759906334870164250202773596943435407527145151048979245409189896355312410602264655488200949931963626752081650505774772423504249270641864835655536179459524695263835826330727443451933086363650303418423924083679094319308227707899370973213509350682945402831357374451635091583868790067512346839336419077173305513268209866428879535581904863014120278823679868985014500939209570827805930154873040461818841802606860596658662218751144252324296313501836629159026176105876085280677879646885689505376809109306965777283741335225759955093761675658426392361907823938993557985594233032886561048216870113256819577133346984714855060835090144699924421642538353757656181382906766270533658712892440183942476902071656228712431871473646200664598408113399336366290548895175443371227034639109261147442177360118698626973839258368110138988099814373100637293096998582012524577247041483969200843612646314524824893577729225922917763150021840989068519681481549321680180774120947159259070053134204152880794725833299138962556613637689831874483626884139563604066786413581765728575399882900752999412150328724090615718360803702049267845615269856252836039076508582430672323134682464783652853481060660804824995301083932330194183705230667166408314486473663163877180749371438454954342827320742196833259126272104860445147878119430454197624806079979705538966971740197439147909585186111046032057370281175099231855756991084534556314082209378468771064831604646611883637500101115187327862332635148356606153384368853835950007662238050897069058285046235865579423547342402652131536937110953338150357756497035811919083705241262256572125086595659359911738513848709289545910128502102112775656588437798163266690830765037721513831816187367717383864649887867568113318502088695524076614720404159780069175492267706888117859181817657437093752671176685817879662242245872898342481669880041148661939863687668508608193073469009430277227319293396818810973070645209216644391662812220541484052679981551653174152081093241264501629863041625764246153027445612509128035707388908078290342491792514051338680130436798885536828859212528369901822627230187285977498773436900469156957103553741827262413768336644502292529821032086537547142389019165831472005016209404369352531664222912597119435875184649283809961919392246973979434521130216465018056803662353443171945710280362263425521783917831030536474878699474163639566481551458592638119299498005763866357113649142564992146485586950014969416258646811224269590877547976368130774725257649837611283019236832661990029383570166247415414102814660444419166311856239113679225471613276583798341089063804347046491768881090946500565377270876803033213381915980130782508944783894970862561263629321860705652098221000585878989285547890304439240338743518200031058343993034139236643205073055773488635838085349290357930907680144971172743121312975505690251228925536905787183847129248218346414612347811253743279282417834489694885415464753483322616382928326111049877702381400827919265879254399353977646192388515673541583395440925520449600956904975781368902597012752389715079853695311103115985114684647038139851732979384108984154755400415538407196274859366768272584472837076211126101465879804675986695001636514365023768368121362359201471594231298809658205316916179398454697353995525932804316163946170764769291009615091629175906754055537418773782646220450943793577151350377612690970074339714719946552994842077844168815540423045683561809893893625493809382233723961919879731364281033516528796158070247345211486290548421814049090089292125358978811391954462451508494278921278163515825242981581378807083908889436001865824721506225146714063862518106538210818738585019230274552889740290318391279943398364220977440681159241982915878383764068914975107608799140655671115145262974957646793530933460407635225804027675153980859545556392823241607061804272724663861996015524219573599704213057263991355587391020565907762490094693624843737944423761512435126324977345479097434289440202113057333982920579625248133453631375599764935492868344549738602454868020854286850227824209574264383760319257763497005749973772463668994749659518276427482145220473429813561026152557662369535252506506811567971032765123163505225109626453165026736226399720164894542049413649246626527992575158328727972997959046062463141575888600073641334778264684296528780014718659264203701163773876874833430648793704874492400138805285791315185076107108439528419805887965313936311034670892420023192584381813514933310241033539415743819778035801198162120276723961271606883492622080190369693135219345516556702558929985359675571351048252453025791616908819998681071275659207109299601752235027811996765012576439154042825644288192036978800152717479606991349491493066885805790703576612803211376111370035437034680688822194401985677843816306870842720416806441521786558317306457755003503418574196201155482146146826507844752980132927434740350502441631705084474179826918905137546677793809793465937968084483517031546224247634951765333348306837281477538566345003672247958974609445240652753172228156895579768880482767386368810597285705312895810072614768555863871862718445541108077516021198468301377363518398691494563217338567612363108385022920681718599172240223522223934806063183048234026399259080592654268142802905022902589851383230401728871742067735012769857897382696085229723929644515454659464415489713718814076773807323735558200699906584379272336874361167058634953484940034012675821437373533173196183309843745972483303098046928649956198318206121089688607685082142766272534660685749318845254186693996778735069485457222256397912931842000145893746104061820333528365295284971177130743092584649572372591764384724494859968733337972400457025977660208291314938899926203326272285952747122865300039374741738968560414518940692214948847596992768115816805120734986817699643939185157444385468430801809027809404471790869875410132332044374495269533901111408778254100848160538018768551340469781408109088618643048935335215820680898073760900021583888937171518306257656239669094325891037573330704023706341025523836439483686508541638445453302566762307159437820528145960510660565503708310428002612567399926413286542218256526769067336995153808745107740971533984992871308334875991738335777622040630706638135418148125882232032341188443840025142939433568303673534496918553254186604696628969398302510653949397558214364949526365138844130202109492152812693891296039486719884090493375253039121555865957097956262904887724613042128252123083668461777026340657791276783067665287831778779623454779866521524298385261586995821051552425832224705079856967820631976570124194548897489192580875335329800891813574401086486154537180805402803641544282811453130982001209019890474130749990713225538247585233199236074344236700636352317366089732882475110574987199613070521915212482500048670481740592378035769926378923195872844569267191422048574517218365068244247144311929875530424241687311090382596749511938157324634898090987591035110644616840890921759539514593273852525413325199412659052210475255578782989855406180084869117557577610818857504305810905412784842764804468528780613896835829658045742828792980527552534688224981293576196779808153758096635078386722896867461909926406210540202037560954222366058992501642123974200825290186101161175605399161052809299674054042462084987829784841503655823345330894142903763677861484326737104114785585455402463043023254204610826942209877702744572432388825110879704850085256396081747911974351385926480408332140822594545130206322006740552350184257013387238365379306817638834233024450567234530936491882123787862865045813939274311780492161626627624820460759294322606348892713204315814724748655431601119922220203037126219014651500460841313512915408665847203719573136001629417889153387854279780740356097403756922846424301465424974374557164581711545356064260091964864188124853159618383145040987962861356942050865225199310430473892269266096929469239070339554063693784785292427774613787757965955123269650271043973851289672370667341066207610898210949056356286982152302615427508113052869276431297864010555501623853450902122949847901265524507671514015490163374045486441567065414932947377465686647826524180768489616384373396668880551596631959837681059012772248378410357927934068657003132252254380222962955252358725964651273369215992977556251060211825446471828628295206324939921093437199457295635482364067227456781004798544541559944635086008030705539893718575697772540043531106565572624498312421094780305377741454721559226191064253601525533910421540484731599167075015219761909420242048894222764714725976367691234281474462366849521504589099068517254462078385513507330664858814061564614580454476335372419393797425812362214895268547532157272639630597235768756658294732286643829114139967697744297067270084597305327700978195763232666569686569226505176880279528481673367313734399581269154870832866095648998298102639572774824916145228687854021765307623353328518318911274299190446913623788922756276189105337984883858178613357218182683258088830022979608774524912888589817219869387337126377658958160989567661089578688708936720444648331879824612959959921823127379921575286518867322952676862627705350078960560261749360688220586191816713186369857117508345794063558787990763505578532316206587425333468551794628041631755574011493235877239541442068765205620555562057864252971706541936288915105676502572860901552711859141696979449009284823769204323904304240228751990814537968797881898014565933161801339043426946890380095739738756419034803299031873549219352299030985361414361296059885560530929656394105532851740867763445030214402560888470774513262879702302677575714680907975130610549103843168457862107039382246264387411045218001233202144399396674738784571503996654800839642318837080579730178265992940265845074041319346395265258177149790044154681405389761985801684400746215759292465278286107578913584048634133658160832857169732234143867246335626965979643536945109216860056803841740794302346030657501843538211327436116308600105894401616509826543733073149327029821011581003366989256776377417630537132982978823714958883151933833381262541436337440028810985542047321318543113890492155559558644550919129197313100444150521894586306481277673116141978533275274666125709306276883857927994219568630744759693185597622498856431703168296493897572785956761189045957426095231320330390682323213791175316355721340632754358694410621480076183680716151475072342425660714880278766844541770970077548957332456414412816542897474849673494328910292392881879395630796242262078722527637750789708937086488036676519461473449392979843135826324962554935229889584794043832929448386748969959946476216247190857544197202524559074311897228787290634411302516375032095547225936421166862103805626849112067947997168353699187424779620848919215569236701988188939649918738747076838389175279215852367089010445929553392627828076128001927028651951705175872664851742254342609604103529067238466005525214317706932583645687696556179354671254397650551001335218099476653811239423399262403988973257247949473684389604436080597102670340789154928995080615033513657168038800925205242826386494980795048230248362811842104739436012683855099535736602984227394914405509978119998222424505432047960494951922864132603987757743545857780797064409342133741942539029118540739149218464579817773292059591650254065401926378961301245617257279274999332214067448067338490982058108062826705642524205457517218466363225238286340880912272992040516058454828167989268555606413987615476102953673060035143248311419355934397041422586090206579132468637413883010546160444395358519543721262625429699078872585241614132976098880240402464390098427170244485799206226191469538929152307660778927726704385928417535119695433572681564793708629003063078968878989818179314772484828970838146663003203723133401813884690322132550919899159104674094845531077850383443605110510739492725789824114681011850866573776721820477926131464022238086137963825279313840489515054204652899282284957730117316467763638723972157367528899179812848285673111794128227650112380772296452025210596891594304141269519386756723886443495784165387588825267115154935392774320573282950192865870352782891149511556236531367226781093726192661644075159936555400283815252796854493099489229115246395244235145564200026863899347404647628421668838430293120241555877065048920302445440941044107923923476413368429670516460630909768888274914482569947994547444369747800172014687756862353411061763891679667557609908828322268836010949701188448631927587758568539639850243397763706446562194448031804100447326929968276173124426627990541552576133109014393913923602199450840256215882864058499527441402261041414796068077474787571312413320881003861557796321638398371549238139628809441188500433871768978779188551476484612219515561052611200930712200434430286001096333429693996092237583825609305547890377967255538942502048239519200698812627812947279142370732241149052704163893234458015970347486603945936275176166469386721366268229139076191634986677280286683021725384372235554191172831501587574833043425019005439866138213601572312357624604591453316879823298984024804165910130887509666060190201752717228708985609912559340108338782631207437572226203648927563058332209957142425272007490619881212300379943057807054648110544717059940982094597873620429988842695562396986097147251683992222129626374592285834931346833768405281011508511207354523106038883693842978198120996785049090371034944787044426960773503277034789746129674402254004534179556027182806298556705919042380307421853023276813411204709790048829604161819881945054161633341786745725078102626930807438873706449801028857639416422638371333689958718610563809278446459842185022830599635021859394832787761111206889583150469995480432976559332691826344321428083584565659745921711235138890096023082185552556956130169314613020014221935008709934428501989024842104369970952296798935095647368255692539329296625288633815024957250985415507018740078959069319322853461897074885239011016110376428491490047223403491879472516617036050525623542239835097267337983069283165414011952602019405410358143967614131842860149344525434598635752592522958783992292958938984926933057363187199877212213614957565676440524236542169266037160537760165711446962352113483516517380789778095097185795515092033363405512992110646729413388604185810825121807850024532996574054142767756937618951783462824342242320761444200576203893924251185879320387578314743169008988538395270635589222649511674673487894404319190125396755062963758368253284781841796739492988640534174853931053357727957356143038501783220060184754218890717891243612061291046562359050923530083281025288467343933426893381617587819343857292967563034074550946295087408537923454114395744656254180146870531744700321737157854118089451344108297818181215041728249590428921943710951588908129739944336780588328139220807591341917272993087103132000959529901719261067846715809259746467206445188638199212279650496291282866753863454040172686241243245605820966677280759834394944094135458770719111497822638864363628143807604442733871736491282927828424240254704480875809271707730409154910146817240468516006837864154790486104451416929421936974286305924453981124624054116043607304764477230921452824424683691576139450713671576759548919439851696989849990552765561203079716132735418301162464551647274267563396177108999882023741553586935529398608522977883668967771529533754440242202059692025573162334683230699291970710796449632810662863341848289174543148283234027446398209146110883496278545686053567285697384398822376930972240459579078312832032615704619221929165398083388843470991911177648616027459505581739895923324356156156244904252505620283952963476754368027230719447114545334147161654547422104692931438709326325584937839508606675168772785291304604874749448712211906372811986543205570237783607092098068929677129722104834637822299112659648265532107600885251808491998725080135869431938387857047108970986673442504882460054168057794826704019546122469061151823150996532153017198723442674705444716713165648388930698040690516823077406266211763862766751669789413832128888507284543323560410788454262979740226802348246197271360506655344721778529827135142209564236342943246073130427815848758942271722384382952892227679413091905830710355433030618948375143131674128649248417041273992231762590908293711123187130376401414701382401394141831758295860914513436682443536717250254107187310617307759810162707786249036074110647513293935563453949691251562094885233039861858971907417339730121969586126497613082243442624895833339236449132645918088855817569401838506885489158011186910852168569196671212461946426360056360329284082274384220523382208785710821523140858507977232120028001410443176330220416452494205117463664745079556449748355644481809127978024901566280281007844338674790977244877845468348486648466489506640100865209398861672586591730985560625597325538677323841077457438589254722602697656028713715270846140403989006293326561217619243449113166860074592588138141479188261277521119698518913831620203790166879255676449644476795852711370722607778352208121822347608166981895611905510028660497516811025968445127831299820092741960629425711809741623468278487357906084148702082593801996309759263312760302737549206485142957794410173674281594755605357758925224357897160612104804529071851663523455342255276273770764167630882691390589332493225781888510945233803951535090535909773296749713369283995210274421488898181050329230753840465941829865198923169211530891047562535523851115320894366012608390904994922679403434771523219465349973878479296159437987115110684109042472995521501240307419416882422703483838159604456070084506878877986896131438389230192937677556867984454438147386461240435986357079316585921813921431705688762599782373177283014464151084488036093897598184503996026676176395880862508495900350836909274392018751921019371670388295777738328010146571429257640829874458650317004842639678969003553391135823368847628373198284077008912583587175241306684228829999843085470304021046638894217461849561602959436026400423724057256238921048711204889523889051056545084155955138967566047246101643113969358144665198112486999731891581830702634061030311776535261395585521798293441994610745382701028161441383103287501799505024341300040442228413705651333706171548242980123589444936750158896479979543627277007618214501424658639592685342273825393802528776859266087035200372297723852341863931114733219323364635130179463976799533466210725269850454936250423154514372508379247149250291387000954103683248509002871839618416372232470032715751982603975171617110973658379598459310526326316566807556362227774673808462280523523748996678727772706962466930630332852250974363229746585657298084330251137076472761087042944139119515832955561984780913824242878080191032907081565271449936380095199776763601480868835988219955443303841338408581990742180852026309951446395500733479875402367669814707160617998272725660133500228686732894405528517626802041671358178168859960353680911920903979592666282950908702070317200093811268409432874614702678458163464311330518609288222771467481905269061019054631033250775202561047521411264602985910135544749813298734688019989938236963255881776961615937010868702307280428229495423878294718741012884839470076416303150399443281439695046672452654015562125625319336701541156263513427840604461262083614898042472470378574895613185029456452062851860710429388461118076071164296188612665899839708126638758255885243132982257583966431519163257267398072843438554429425787776274001474732501304182047770819161984217828527141508337830464706404817271136486445567579431883926265112557851266764719244626865020953737180814376255885083986470488868182073445959449210912174824460618299780085578817058842171501050401649332157856292230357073572681575814124145754047405453816822610755441644219885326888454339404378867393541994733067856695177431396245166155402203719861199702450716216403991193007828243950524275581030293863447945851829364203522715677206985292933743315718170773376772026301641991681260896524003121118001767814956041535914188129503924570225690505129516291989803221098883255342520048090472692846754979340429756088396525890210388179254541752819672851977410974927132111555164106221076772482041632782706165727984543487355899751013001355690338220014304715485179196015570982506018690229125298562042461608469112516772288393999894057212922290793956383556352626929916550611062879086056635690089772803280056882206813225181978101671941125967974789177775054376264976890345579152906993809843375883079172091248893739102217349611632124074738611729258851531261190967014829038807623749280646935399879329839910309400529341924101355962408058666144772051425131527354930357096149473751799026472532724014133576897673643594193248752888754438169013770263803742255052334835839291588528146779636279919526559040286571795075414792496261290391417173881813984255020796744450399241624149047863512144121705496093929226221605700902756834547452396850873240783375888181864000356460304849391560869130405175294799627566962936651985819267341233449442578321593228655164932094234305193961997894361658278298292207242245589994484348310725503428589681570211281414167887934185830139745100389357531860977357915950103228874291132025387853378734380076784544495558752916227450049225680904418024293284091810686330033286850829435915707740452647581929409864141091716324173518773892065852148135026251039690952287042464445731138623382407347615619040343451398570102525329561014022637721154546541518914600216149173597893929533287731308639237098847936838530863453854023313110234297649211799354294882365383308390434355679899617429951414409331166457926704038246694983723989853571450090829240441723181540184446216611337998449070690976542195340026646060171600136303440016007489763635719520751110811034480831883852242469803097888855500151420379613095148806971598101467557397089098679055822918313853478588763343897478177934032563137885267653094620034555921414479155689069992698389032018868844663982146450278229555448418938154763310105489091133173222351631971408485588268012161608119236677375076803942593711906281678794049238713460029005400007641488794991440170072981237305081282728635183523297056280986051803960816187390888852788425144130889510278983029312215750244785071031390713479394210631346951305468339020063276616468235226903569250224430343108088574731544330609721126906121439294681306524719713152650037854061700717224291381131754682287803689943811866560308469600980116058941096312877690399925728231119755700023815633381306768453552375247729352515455190494959987356279454558958324324366188933472639555024290276800079554795622877219025617859671205506829559440221541959059696706196287694988439404755036229961109138388720199797619460161611203473508363977107913673375816194976899805013408477303118845452141317025034691122059116262247375242996986041317079311426184748412640538309957112523249998485284263332509940684467027678133359065196806745364227162282668302179866042808862757956649697464072100952359834187991344918574135712753570558543784070865675648247026837544417805866696306160436576585913693523007010800952843091677440492285999896923078439884338609788044016180250835199913918022150337207189767203501818636893133083409941797549521575872207028193569763709680274989897718406593138930585799501966571221323423351264745711493610396576564929281865636094021151612316437390472962312792475449164315940741638836231130000331768348190076776694441203915076007760451803159994156124271395655760099145198850203833811064402364078727009709969580161268626332220980700934063664683689014194822848298768930137307684436548073621007533394347423810606175579021046158808403702424248992952317815984114226452380138949091551699452955535865265267075626332638113297798809825038812374022557166209822491856069079931669393303240128830134150817236739046012868949303156691586060192598253774613186291016287135905749193244753105877522326590780770953908984931678013886082410359232920614627170289954834906654214915065994292194746093280460014964744530430987372819154195747595463730225626973014021447605161992634951909023400957133635996385639416769352566434329714560750895884662371516488315208659636053590405624281773232370936341603191699146662928738115601430037890546953168361609486981124529903116873747727765938204249926696803138933090804193842481808064670917005100217670930279936044008321078420206042876928143133487772077716103148611345930390107569761544137791009224951602053756858891789045350127750543876072600938344588413332280971887097489441968949502386596623399766584937089958275406479327562249662452234324354277107329684206086409876554395974619820721563767517959991516812313293681283795235260312152960878977305189679992133436615299356440218975766177178516345723870595757004059778822339053118503725835572124597452777067380491778597683632953853383818943753061192290785221651699107352785478364899902754736927102866658882772903534004560386943764915785689046842410921651045321722031872123140263895617066463087959076287300284288282101883779042100553057775482648879856195755387968959445498830384232973417900774935101273774863837092619387079333315972017450274760853879523672809725487771184633744556968088006022448259135451729800107711097623771078587660062923125188104379452452429814812795755821173743385139021013255512863125562481234841987065438133708542030650257908906876339581505043615789644777387112158794242518360663627875134393783527820167978366255856061741310715590838119609059685870652941673218320104893376487558858525522643162819649587648991037910086906408767109360460421653127031517326889624399861371993257543348425659291556778334940235934940797018123587591265831715415233293497549605580108946517048760173437651024989765833309467931971446792437632812742728053392799197587574938148219759154434242580215312299423786727546412810065299237906557316120657452911062021766663929603182803491410548665628217990206272353369557247815613986258327232541898136599998913170413472609425116643206867549095006562721999891646010314619671841381685723263014380941644158859605323732817344886056100072479883191881285475478479108324885733951883510761587509044007123848875443259750321679604467140406949957498395080475959156258798801501399364609360933002615410612760281093479118409280361905284119724499634298284064711307134591815016274810273362729452426043381612461833552683559310543334225370249332671083718465521719367313571529969726451358471794905043818817842542065831661895663421674881145482266314421033109950114148523821320980235206352926576128632140579022422397034287590700540753202955720648265860165358532809406685211006476755682863990415362413897966061548743687982434441309369311616266930515264745649960233533393103128077401333706545531988577861717248981771599623063858213811068269546647203923037490285882178654777621262892454671529817663779584073025692680608313279495933158186710376168886025993059989946125500534032603241627838028118774592628155114087429281216507412989624260845584629608296918682548180091816219044125056504814117745707639093595882256925194188125080682318872132443189407100215401110720840153998378231837955488856446282581635847825973282450515004289343354865216585492015073765210580874189660412917138184321494208846969289607963915685202032507364145399627260204784633013828360419154480609605429262580603769053450804004477924526313392897943366901457297592755856143374648293660938578606963291468265588757594301392031155356599486424303133684050176785268768057734331233112678964481529128546704602259465184851257391727930099765125684180206317491324081379910782738672374978065796376902471329673509075579671993635686930393395585835928992917326705768623804879044891551709376917683044883205126180381356367563681523559495073941305179857613366360659299449270237265345583916369157711374657537333872428941298740097605543984341205606720280103611169626839509170151998040968499859163768158696375420451449546148325005760220992026660151197091715078025043232313804939111329756142296643561178899435078696475608257195403707651049934688016411885964095677965366754294637839813893728033097190386904361248774710221553590717315636626980021746787330384782187231627672125671149204421024704894840397523293097516869096537366505775526944859917900697439809918191197175694081566050746223458521439644689507101317942802296514681449352433404198509301435849979507914950077163314954746080455544424500792350887271381644353067072175406142769022220652331481187105492114280170955066848927629834244665154600583193397075640152778972180869602861458851439935685428282053280723914816644911332489762329378383561585946736423902035810234914128435671778179932697159167499718984466420100607411619418826217353814945294249751570613897113898514673902824936071280159435715545034766606663267988569319683614139915701310816421732944916938470873182276549606603205202191854506569870730611704527982551666992882809154815799930741990678062063643978094631301158872905598033596871262871355143745593215901803491244066358713116152954603057418813236514153922312877909819657120604309737367706357608373854958976575627544606456340884483910281376794471316798655747650718011979917105947990409218923600922376772953786821170813213457179515026965506182056769680350522700372847587527587698855511306702986740899365355651240973125154061827546154247165009655248526041992478951930348183757062468327744387684244127390034763055302018286642906743372337863917722908852503752156647647352897756871975738802762038156679488952539797568217614839225321988240718328671017800157377400923761663984666389151267276923495145868970281419023567976459697463197113056301569652819304058537210839503655041904556647018513703648043866813485675918426351819235064879939960348306850995663009005253555066691900345935444331608925119078937773574837420302883732531031120977966134351430416275187673047687259853271177925672659080004642803203418109346969556405673762922720625587114937738325790677718782276751337803246563055684815061104334860592041237773194318581130526990469513777826427639985330145347915723260726217724353405537945966618772192471835420915142087226252765547394929491404165346043789143618841746296429686865533895541961859958977969973619119483599757445594263926076194623816105938362920141343387081694673994944934725466025211093482734368729622358226658201413629020595404494276801051778610799630475054933136146787626595447458438856706481619822400015577270792065098414365734403582993136119213358728368472096456147322241677100286693056913484909080996301047755375776336778984623396974129264606888827632352484880336736787864577503253592177392202335107658005910121291363730156317150940844309188125214162276458667980586290872345672850156546071364383633900736833068942804662233250235445422446780749987373868714728283531571767939482739938921564341085694802882127474632596884603948366464631441008889511761255949608436706273757684637530054421242490936768300259879784269073600174429052124569544691165002980772689420091985593908680579564079511593536027267352203719252817306463584257996183055181388524497993152640774480166897882038762540610417064466084805743169496637882794151309650625548167906726445307186108660072437343121915218592868687044381015362583482177974313553152568951327205054028810495558882281832955604330782377873710255995809841540304290867943063620586475833424147354423121546934591470835223669251227875962004428925530350968897938480711777013873937282454051729649833365509259156386585956212139219440492080130526316974259756748831604301190065837437247691705573504837898990279705059314566851948884502464684054535932113855752833576468009987736742588692591310539275576726698916339293597626122751505574910137881691636217086557629826919945222513234961715952602326411195646185019796996795701325347430211929037711369737230210314382322852821533479208730464473072732412678045054419847099064646907141116178540588584568428371799940262961106128514685633135029770067770195034514458145201126427343052265842219059555104595663598393223271499800322084496270573890272561217933216406195123753316530642488614094060074250072018998443020610556703504603439757062584502558536011391249888960099703194079689442914114199300017690502620521132456288064778224931593306168983710391926366222288403302282781649375994652715206149356076064118643084021084472796077304892463839614643427785094353047377591848195758201939598548197125297483666234777782110261011069085524985670406342956015903249713195091450867191840779443956421352155570139060264610902516404270315359104804694788630338455872625276085636962587318807026191226815248296735605653506418908264260999314046633126933808871503837133629209947952875306925540663884091091217313172443352999980157198537850253183926851234536053827287233678064783531729375645758807531087824644832682026948281912044008825171435529492987247883207898470671648367033156461418835286211086056829021995893927394284271140139707971483196072204280203975540879019563552418724171389742000084426393948424924807004692194427477354147555958733605127725278785442391332129677646504806299873210919354157096088440294419081201414608400909779304308003427166767353880659862751605093373822878021496341660711333710510684459291265404442778444400284893284780610048519195564071754204658461778170199021188276430294345979066593790256458243660149635623159939551862104480867395938810564637909960629550425299594415563974661170782286291290667238038646534808482860850290219766337638829029933529806319912674511255894739914213614625495022318340828247401620263990281337207217356747753504986883992323977008942602084720349215766148745941306751719505898377786052491941328296961447871618212788719743960997331597122212693711900984409045471160158295897899711030807594770731942140329324314927610110435498740460249052610376206843303280659008461040843810394791249587654465235019330748730049399208777884813124584039351098223735919325785575985126940516894907397025839376022130537155875589704861333003870532796522475177088271227868219210875919385579802721349363521475842859400348198074018086213033793342678054993127086809302684604914068889463963404541706649611286310752945140544810414118886551090037495580698118936856273973158823587752609920961884199706723300448250605113807763416325878705613605302751111376575556822807377178495132343811538472742884022718268708360457282749126499488574212249172553552402515437804265115915360971293566998926036768185109920119545243118302471548893786587866636356456586821934499525919006816443249185203393989775136348314066951532730442481955988782815074034922511574445235003818270759917320030844982332293188490560221260169279304682338845876812345718536983678778426243525688238082473961592007882384621943635634431355547710062314675237670271588195094972432391875209938186736506608954853113830753603419376274709175877687357142762996242674320825411702972208341419072470087328717958267651297910278678670194563324195487659619855783130501044627759943649229592201408545738372561158209084375708465984994683273503459800198632757384350939987573092254732417161511776559971823457127366956906068660868910198266417359796904603733532400118252939473064710524714333232640247219165686183592028481930514880868179586782302571792437911707675777622532913662869616527241806051700160783008240438920045567273267899504653518756533237082227650366947862189369523165229033843734875320321484811440319061964397827296700552154894430514623081181674421905390181778490014207603923279735012880859294834445185649116866494886128807826011786092642593394874987904132871758156283038212663004579559745237910342942911808736405310621704161193325450177189972729729491313020219051109361681485381023401817598487648531670559087805597667690624308073678242616753558899381317294151556918103159977494967564935248222739544507136337888377855108182642049563784967269862170461717723199882208380932223307522946026270530857820341524528247333371452434175018707493012015497883847987731209535721348385131268915633172217610787671300310942999521361979416854298323548961046769501702288028862008375378123797211041526498582831547731443151264254729530878406959811090311650876138662480539996403094791602858500094933653807774853146254821973016440677224554125445688809774407763680724469818704238001644529549868791344680481327909749968567932406875308922161282867898154307107825561030163155853461345122385377585745490202145304797211326706112072380509503390398412294067356367279642157576586595503559141977892067697012951975182844003910784800312381664662240524004489888248225459261910778997287266361908562300787325870106823205107247161534748359098839523910698583197765794429700954991175378064590498906601080855749708286107552565152443836261814213748098344387967208162214413341078782977030578335347453767228580038903684942652006849082249815610948141348357432125726477747687998607913117154986864681334658287160764679539362317377838388582930681570770107814935146321582975960744771938601450829640133931266516186062342791677053043650054577063512170247540827838331439436133067522114787974872408965576618845338013218327132572954693437344710479036291536097031072647873271910746848594588512964410656948220804621940228103258493137574103200891502490076605578561218659839221357420175551337826648990899965122520048538533211540106431282086058104116894440131228788212089031362464612856533476207044089745502233623756015216434522817071275726565208863934192618536420418612349190035532493980378169793633267568359467182479341553130152215815515647633833447795436658182604382992674368203269798928431552396441814487171380869929714844634099019445852066421391715521772110155013960876579789771075033517756453977780394136910605814173972501473198592068697760867134182830199305807514537820524164653718402425858985329624027767013400307996626211752573053681678742291078806056633047282433292511699517042546402646082311703417941012782998303480882227604907460425561430919163008070531805362022975289733155374950522177824534866610143976870500306334399920201744745531184901230595835699944525562859485375333765591279503354263446743635756431753717978235491992330099762896006413059850517649291966683126316538874269174672176554321354708771211839343165645580493019845535680032879046361977044694858442334664601523803107241582302277515280042472013458657597814468190868547834811851905308732559776185869554499722850337144339333860071455268814531029610848193113670132029112085438514603459209385763881143156318187156043670395571040098152823709567424358835453099530312246375829426283301059604953751133358516259012081359124436334756019753264377979317394784834572354462067574914137594888763768965478961230981987927976493541117102872897632444546043684123321349175013649733665560747809587502739921407496431132053710096412091417962602146688684423724833421451918380466889167058376577783597367514084338421163516868638615564484899247642442431412501369630185077143949440670192011136989553779583213543304129447750826514985296487760294840774122571219277806572102931143914562226299762334460534831164812365154539818923509943739680256515934948344257987402113359269465302914242477949557046015650114157943710065221739752007454637424013213690211924480366236435791258943984603751763832295533134393063004391105708228288465802321406588224932925695006881566115367617768989923602382838635867228905402768247029914761738995444342636996921879768887732504401368300648134996294085373850099174089722463864685019239218447604388530057885251179205161285050100833385612860747194756117928133582534306997978031555319604483094605664257421542816640129644406426563332967315136345855946092299233623275974986811608032972067898528729326593367499247202678721967392795109576069919685751339034098371187803874970239517741112830654066108893968168655690670565374013729695303288108776927634421699052749603094837394511082188165386477439953973512621146646628260534635190203475294036931645807523983716702729262193289444570886460858857692308262148213742210382630890714109022313616084254415633413490620467155812525213213202782546710358134713551375363151567836180128728588417408510265889375000378309797851745431940720705500959480280524388908161476927031077385906235382180141554767707659018924872377119056146665536990958776131457658677493693830729501318986369475348136054721750422559764215253465497839985608823751911143835635606961842770312752820383467307279865327374309155995860100141866847176916465003257546412341213552234509944664025007932673475720440559728549943923382289005724540925688319681110004671694210961462386077991027307515998292741632960732818327944658233441375725798952417434255439966229543875504452462910661269609881608780801659350524983123637777794579295311782413173666429735493107738791713057128869579187892873859950913571935207943010810468865922240416362483689897892090959183556186818384625348384514141664310706019550880107015147491010633568395227027367899769813522849917150610841920217311477886417450678428291885462950465450577077697498813358742075220673947190109059415704865953006816307577010639845583060923172742164917718281187148524695954864626206984667573537789735385847417831960947765119408560955402138419727992339429416097630790965527435789130938102729074412671720237047176497303908300123314435361408236836570924472362202457497560980329904519055119584387849118287344675196869867968542411365478734914626425921852405738742527772592578925612192761863784951066552270827161999821307261332448793549711206248110868005201792330814388366655479882841380051572982414974309546511101673942923198456841294478305912007125820225153214728161998742010020591825596120308345916333823432317580969173839540090499427979167293986249966971923162128209231110489450425773236950080846285791872697891925495459046365326536630967149688312023887994194059317600068656884173262567340851615796147198427354177046042000027680008309098757871797635493821439884034082879608425760899485157943959890754811834996501686084491421357218647623028998208855635030732747096512520473532756455688107238630708230188053008458693181513950972289640285287866043484499363341005365270691118556111403708688115867077800145401696877757504247280523505094544633327216943224276362283692948050779822858696038293831487687741009491960338941727692899591145748095627661044356514221951812648534369650119350412227929085066838996909443665659503593023014985439306415406361465360541356289009151234880148053502959590953117565200918403598656721330752248423930371848481786797398213411003849490299233917364078583828536684086764720752515935617729215996416005351710701939022115640433838405174887776589507997578386220088757413516383074796330495100070807147663519378824434652761631547084757541096374556574088905980974374746541844995425216086647756647810878307639084258111354030378573863140541323591355205511143683080400750627261107111345277675814065052334781162684161165797636054980437962809497349327016690722184620983272177760971786663965431028002435573221164247399153064845988181548991867866422702868444282399631355332865488029374536145877716348667903322177383845069489220872148247385503692204602554019693880311768325200814445936433222771670711708922087071187563887863638159708360073824517345676755233561037389080376178282774350383039807145678954705933952858459475634847819987207439806633032756642647704613189252231085911858415235161950563233603563785556487490671765662921233033425850731351620955695300802560704345053808501747613977705071808487557198638031389009869872644021081465586739075676902575425402608294202165611168619418453971573328912194372061133797589948025400263051051888741817951836630150024121277488035499257438454964598150319139022988466178391088448577687057049400972417862602265098898964134589199955201257180477567574083076105341385713941640264896174127531583983336206655326227377961421724342051875755906081847136997852359045119546388854502063784816436784850668941306382992800652020737226536022887371131739392165177161949838984601439345098390588529851004338763974502054390950722573933303117699968711861802470230450245708397669021583046891082996938314590279588795482186289473314558813869933143111179541482462388794776783007233718888074542914353155912228439585271458697748574894321903598953399466118841999466151392320896995577187989702004993255242153425970827724969045853569391921282280497075451898154700533932323824405554751243584140475533638657258191073906895238798950179167410086117744458217323975752990502689586345450681659509881070296770386290604974647319670154540701849395246564229618932274108275866582717841848664058902623215081338180847710183541043777274588370860734524556346902420082198275997625057520112489380394378776493124716130724031003831803882384506605898917943031692255683905114512076469632513163221099541971382521912387892716305406176717841883824636727591750901263691327215693385830379159886807241556459106277813934141514349176742808821275998566007024518487045232446522610739928921075960885470987159310898128628961201199579433850591817739413307417972802700492958765443026512250484933834329239546290156544809741535272478350171148385073391593914567825840157248950026999542811334149698805606064723920795458904614508900906921764605010901046832533286703443262321555325866101773678502621210900688408773524458753434655832683214696201810202946280213326964711799131420726164579173487293908813372617820687779288319161469920479654305769348304023781470164342198898279656158968184653485569375040211945336996448532382350625749041621299917201741064112803661620676163286230231046887684711376765155464505409271408094081031549247166941056047965738667458817058834750480727988679264508684649976537209400544913127648281259379658007854318259009071045732256766232686740352931845428137295668441355779198141825600947616001945288678823101899866629689681126283696178424535800665324931590026330209491420899859552531689695233416763415221337421035251105828134412824271474220914299283680516129447438681378801512681150368262783878696359033404088191978349611377051302990583989422629076585410389835749153580643943984427920460388947224737197281849332888821382456028061044259576222428250616678689815220429758564748027091532910518354117736992653098542646724088901537009518200836338275904944292269719887616340759845111607318494776635207699383210386284271959142786974655867578092077499749001289585334568351416578370559988076933828286724426384929678296765598005917132966318453971692438381009679625031288254640450181467517346579069222016469853650262269158954876012032806022928609278427163095001547292144107383025768867068038008762932658052208336225330440038400741161890156496393780187056663916077777820317077643502618950494994358480520772423227684062337404232004101951534737242666035624210981012806830047550798789558443414983996655160236690799007480494428940961757798371114246795128287166129927777525668668585011370415453495581512380318572408646583061862960883059384694943466346925954283365953589038166550292992368694593249966474140978208929632379643538758291171858073699193180661429303913015219802049966292438783068520854898654354950497825325511430537853128029706053611403582588982523320896627545793216763424322074453589711703865527233342190251134552166406006749967639766423473293681499795941933879334840740584731624666933694542253121021414532870159070657971571451767000745276843650121119043579764840562880191737488707497635593423565750530700662652199700172043889299716262039498355083714979507895185952037027434938534289051655165374953740229994020641099774557489117720636801226383878370033883602874317169708563621776889248706443081035089795265540262140436257076906074063082067985090964085209657982573399124117903412271970689024436471767059170300391254364646520956010547829750619141225051628200320948488203457996643630113603531067807599964543379082715274023659947807779715862458117514407189144020355892937695175820659609793875091543291647024234368067201057681935791249706640829269264596057759948539909260355160162092888094301194871794677514769842864097084602804718951270292290934395950608194503237171322364895346883013107481260148233258275637109560067124430587394929215971337550753141773586035207350631847948913145667374829628744807367698340606167240360484815367536889131806765071015473529352254719781437595246194780659847926359814281950590494027042742179500179491370905356933944273883287958799676752010463053758151318394903411470597296905036600592083688096999129573667136498689699386340980039872297906524155308335034578704159635371220828193991129116755153912320345848703273925720649547785535239480627156105780173365521800046559087902428302706360783388721001569440239847277312894424307824055593407968233246310827906705966196564440864214053875092200587048778009666068458452794279476127813655656022109720583459239103760321262633975046148815304769997229641312677872822924312801041832820499446128370588165840640331248183962504431564559017601863877967206020111451567409092728378040433754494604066243117693646277304315153116656994084249036958767897841250410791157160843747095397488347402932112870129817920104076565970573606803828410991277384747994472534795931007073543286741094546581448757717154566788266929017271061183628242991250779469010402160611547939152738059104644677776160910956994317079714370050327450360222538742874811424904865040468720461946477885358672915936738448205454750029183457819377824343006234352297865622649403117402459739971557059143958525736034248551391444734839067169759350194021186957430249982881572097249988303521708124794718287972157510221623003218855641744833973487552406055313566008055558500417652193592045908420102971461697353530339187135173854459915525790394185670000950825954299835739617836271709572456333823160121002640278901880336818777953279023074644632779501288995079137994327995574992451096584131745132471231661671448574115256006625951575839891941399593930497421156913021972960915419110796332271505518739122879959179820700621508006566283464717692832331362904234230649792064680481719355834849497036152740610051964392659164777161587000379311599927817933530975696476952231358759323111312263794406084089464136427665691139439551908375003514632043809947438974993997171100731285281714353105148830943341835471393579279351639796485301608643195751174189373096700127676591228837687147268075689622956201838521735724414581278663141704023327353455563238113980404847472452885650645587778675421387726784855465436425814112653193615700236825496253213130040804768057305989206507672855196647278204600531587709466101695885478607033902962834813125356738156498339260135237890469405677859648243988585171379169107938311188236564381809540086136438135061807514835883819367235132441554149080545488674103031165920741767592629338680857527714469549672622242942533154353501251844888804247826085321830021258910860188407998102562048423635672337730182689563143094187547283753721619359670721886658751299850726160469307763296822699001619458808752308122006129545792073634438767871260078642755047597443552348436321076987918898104840843943734609275234509925445217559272151858100695670990288543041725225473973912494086989900285184738493595238170644626986933410444046955581787715448784139228323610297559330239648513724006290505120769852779666501631140359930386982145272954031270990256140423639109626130372058747516956000209358432656742740110675058129712002361043594076163720471520790635146284860435960264518652999563956840598773614170668805427241587016836775735167706584122969579290298836055365781251229235116348658683436319920618651530261020131698410660444552211334720408441966482163555825657743761543988705634664909114170575340294232041786316904485338153854918771422372425918727958392074190448816676369832320210463952809601471783522138820010497515561847832592781715612905694427461919673454025875109112268050015647911847143814981591615928012254024270632199306885955375273552071395752165233929326805210496496166746184102908904136104223409476334561368027437968915838416632837708252757151760451683435443068767590008386774417719232505759852985134641909746362397760873588070882279261654696857082030748155863758404954938641410368615833102353805977771444455724645314123499127528603845441735043200118924121399624178691391313197441247293731643333029374568293766536558513654956273738865933986112205422011303542088983894901002255944017580284082686463581618513621223874818504643028547456358250992721412209805017784137395048416165021424438148118816495834809022405501841399720327791863559459761485002456276383138209142548771710565996157207829774743958755026702245187143466604825981072576476673628033456730732686115421094286311633001644726891192795704097126371920014435475448359723959397601106001502597668790624625990285441681592354383859285523829800800901324066687994985931423361704568851396129358277251253856329102663136400843163602601302185245977455036096697723020586834297572859207808525454861811023885584469825241971021555369884579367661992625598574453385854891026551366296793532638580958435525892011391574272273831716877464957223660420042350281242762678125061560367348553929006898614066113672893725688787047857784498326529608225252201939917621957608823958038327918272210008953410553724989117492571990491057435664614718000722485410761296279457439234409209336814200199250944916057857789014631553099488070735397385946799180991868721870756687307912824346998427233596976016954965251020436248225780576718217751460585327072048634000355936590931095805387366714680335410537779911459544667681544558573623807775835711726352360732604100779272073033299976633106119876413070845584107238595375727077486369653155189987930436289351359701208601922116487457698164317808475947163516332355243912907362279599499389717437226406269911210368232629622356123256486057290074515027976719928205457215467668325424120400021563600888047341961161543372121190596308135099898938840287886536664960685960624667864801652606776390682725153090628311316713858376024026645084153448167274550500461112810429019275518094152321570558233047485297398661265881978577920289527805649136356979159597403716765204482100093497965145897720381056723009757525909848975991319188540633858866681368766361864575192749006600236380665122792197406858363897612183931950110624888599813168217399587495113774649898334694040200685425139630071965053611293295968701985356266606202641303393608317698403897389131860667462018356387509213477182872835179996098169881334614402395968753501010461791527336739150580817511991348792259434965564498976174487286417572471618109131167642862108746675481791085540540750984744483444506135863073735712496216117693613980838007932853821976911131377400748057749445354299532887712028262073819096784007847782723291396403119077534168292767248351815892833064750613080014949366543691192315130774896757431807846402083354751925213814990080345313018647713490282192332995591260122760828843605172451742018458994066039824868911810615158579755121949661207789437524901593721383467262105366867417885360543056545678491727660803118818447572521675042231370464956364864423977111922619761102891264628496927285366422173932962661705771885573922509110017514970750277312692993272198542766707144117533087627991939649726411953919217377996327788842342958216986555686581894027745445595585310497941628721275164601118349809993479982400295594908248106780970355335387320505600171487141674700598205887343459992455641088234232359342156362402601396553494627675953612327950949382153401420008165360733030965829399613435208655049876442955952936058276403670422650521278849304046538781187659513658595175263187652316668644337524058025798367095311916154306279095657560221827815982266680993429213618807541901222036317876474267116161772610743021369665812856542002733822828867170293771835760183909422459111661753741073443470299986923804848467278461779899893312808505008901456901694696146790675709570216366734395162236404238149705391567736270569921335395347080325702561409752209455418302715290004918668011120613930572676946376680381216337628415274050978245310490354388634317901490089894395218355002366847081116505175702836174502297020254943890411775100543504234720146296189176420659855021083310378426435284225939651234359705094762039872104929448584495878115482653380282414203622095615223259374208159141316281605536848760527449797458685134281222567420238711441649740981334139055346676505530605467244842361892973675886842681429822653577348611027228672771226377943501883449799789835645422325028686478801966788211715470535778114445172025238861452297511499402753983663623347346550452406567021131710473777833433575221239473584978388292425399392084913101837826354170315934707322837379523831230372038715460978816245765138758623240730232197980354265639244996855994707743426192206903370834332797285864861786393705488198383545697358470371182769203415166455813623369388981376557953257443870980748416553046234729409466903349935193361517215805873594740121256424463520964424427001790721570242365949913868260133610935387059326863122043765532376002549494923975528264946985031503390825443161343287488452514531843890588254774376319456796520380014566426526255357753194159369905110524771717033983624906876266507400725147763113581405487022500512045347895948648566662403720956144892978571027780597605549127330326818698404521725245262889864397434710587947993667774805432530305842554020521098510690160869189296829063178162480288935745583607876439507506132749246364420982726859646580844156259918240345688496416462348851491666902033858740055077791071521266289639786362829693250994310742928165854888782239700356608461512911583443205052646391198129102482431021140789314086469205129096448244147735219836010613152523153828550294514208855855659526636977151622473798607700001674296464001774400010460585779530799570998195219002375061380705094266265535471103840323681583999848079966027673537401638409170420100470850969504919419361768357782669790498981635934103471221496255152565620418284297377354078955269689313293213963569118514427924462432390399574390972577504969031987051603946129480787008343611649183176027289078508158445075709817374262378800274972611272072868408607048276080730266029816633323732610252000661529147694562612336128548761259232715116654412436349132082603945178279768864979865754460935295409904548428195482754987925248170193358561590848031207446951363357926732183240833612634099191548325045430507971684971377371412870093771589777324939154469254741225836914438709415529717624433941797787188358812462771718301176563704736846412576059698403841655983700045271387080397164380436923206901655943641287629593186111408944991372278472580428352481344657332223567348921948520260244280348757294255048328357098031643409718268688125002761857494709478359845288957160724997490004882872425707935317207917847024988409692757503086639506157302390015700782961219044157741391612744534615133651562248860158378904751335454789916151189009243052205351448481569510318156503860519059312271170561959678009980655219013636031709376614981269033485091225351128620071283942295894663319721823336095141490077965401942486448749012709872672752660895767680513988030983329110878054532119768152638264062317116430911355737477077608852278220074553485652914187443419371214177982284092711767737104521139839067180641510282266554752719698348191888654596174974412623008732885256638794410153682808404970144834816993863745760026958860957338817422090884601495267043963293345023959804305828300717635497178158837577519359415304930850035463799735938659703928529275421067646928737372896593478788857185793885841346647951890322405809852693696059990811164042214475960253366664144962430912352618771378938149327711815147462786583873103142578616458898779775962573791621357808921482048817021852002645939301282865883698110915837953345216757705119122681009840384825897226583005357949014822541362810626265537966065225929508109937948101473350627339167485198942219401779076063197661428218633312629692289400497650569365761358344628106975559838744915847291966789477075916099364288055210810672058246588295746493196134949526639682244940025798252840624847418863788532183987479226642044195744498139379932139788669223048816412987395831928373944790868088099428571846448355654557400012352416029005516715866690100629456901085268798022569987754782859141496054305533695642299463086241846148577693760346887867340786800039487313392134011680027731955596349257909725700229692632407102120529966804917574814394089357743243055267377118759528120065997354406210359944257859524456008342224920104757232314697341810853118354957670571837150564769932387750437789012897892307680651361896739572406613415975157152260099718708865222619263885230626624292324268596190144228415961714671090646460421335246595935865585358315664011286098148181218060081968973051175544384159675962111856419305201222042283794748417202857972728403520212538267681717036881707736692353647047984661431334543175765548486268730803294334218264677580493120283255957227275927437464169324872565209187326976164930353657848988530381234416299933201298998802650364115825126212026826685695270868588133451785604559619451946073762633885456927880472364289289803492886082063777447943080564558417700031195483543005324095486326787591743988678259318328547493593611967139139061620195765574871457244063898650981635902486924967695802688045946191440983939026495810701617380755171109994444380170738387293778838500259003389975576933180959104451317005122997991430886614384645515791163400650704370156598549666829058934317150468784635737685996596101048633172444011036587234072912495388832112582209012414077625320555897852649492675408529156524368697949596007368109249833865192888395221761626938922158236961078966966940242718613538539884460470469898857273300019732783997090707863693479064465462138828892033902379616480654500441933776689198180033909640615430419222704795183741468084624844966510341635952600524629964810757057683680084074290582752718908288541110579410631718514508747334033551046092923211974121434414129113329730357205555725575426392795762427137241931658358572715362651763512314701533530117386760319404218265706814586680935648599302661937458160437143655770013848608909247239481383040116621879156676811477963728150887845697393478077527679940149918709194395037360524848124117662123291803645484386873826744058377217468164625278526510157571328619420261049193589612652979336727254352623544310065843498258038484065830845577552782940395175196351910269971030528731489865835968589360014604075202535887986835267947101302150287666891675683481651163952853550034710082791234627712421909525471822127514810473599860496326159512698331869681473223219260896217630515276665174757084521811103258333464719223476808722728667908975118670606295779078051358660208765627921851510511022042755039092846958033094816299229144280588088547901890145028086038442523696633461020895439955635394687023314677959466748372036766884913337388537700013365889150338695320240576766686731569697065283074642869118469979335984615055758733040256010394070169039617299915392344956636473168230386387847042170616253710066766502391194188861461980105550558636409634265451229448161740830509010385256373540867382945974528872984868128974075924101359372252973531391277644844685653537624152579568682871524475607703287075538485406685665632965289427111087665706953346460896203279533086034502107550768071816541449588660024915935167464242378416180868006617108311710489530905379562551177723537634985072680406590749387352796223590987345386507679201693793379597377321962526858292163080170480801941130323148653054941283521856578577383619373618155729916064979500038352420172003972728975915166142627179481105220119453421295253916445898290122920554625011863454390489056313955181398344812012131838409636212470051177658046872881022386992960976057209014687413740765397347005549327011037775839783450921903046692175784552739762566882643587054339269188598181034229016184211903253654429820205487555205550665991421963843854225918881395925042689401424364601985254235190085139565835970298481505380275847433094702981370263588094005814360653173443305427563186206927307273707334653467922136874527453642268112052964178176425475675359751131005778760764727631082577699223148710101147451748189335947502690308250354782131603536540559980068352460456108818462723791641801304488816714124141342791017606733419270222907485787832701597479821269571381512768166579099562204418641829598149355996135557737143538067568610294325017439461265398425945427461850023213307555657675053919908505320884876937265036866087104489254723736788504094771988015391203821840225703635447440953235777841391347990275247646005808271402183273655739950789541821325015799640514234601834645839329428697371331214516477433897880300237844056901003072403139468074945769933759496609189945832146211308308177748572305933464485087908082890207735525908608089121634249980689117032286299947374464787015058476525080591860463833304761075511246196881366954619395751088666760695346786970769149882542217558435192563438161677844040706339560466270220916409484440800785871543393602101388062171145429383990875125507574488409547264520357448934248464123861040478281689895426744039256068753525806014568184570417945263182805291684977064453388475878101420056810006870931600782042721352984809727507114691239895481517919446783335846891405148964480140382101431114738674061054593030047921071003162464353685428621956158869188236100936579680065599579219267705327442657762678403727276353764406618902119792239272106685843597171849535897815336376969641172701468244315203788835582249725156268036716634718256480163599327410525234326768562624833754767722705681539474993130886667347492013948907147289330659508472542633085578272713361281414763577703753494742291011778882598457162696756951990324918986154891481162607713935758010286849176801705574723007791027239800296556033904011620393090847521740389889747485074504001986958174150040051127361789243495355776495377034502821170433293014605594413673735852589642973150095193643228671986839636676693822252144123553018857499132125296191585628484149187095149152111094347960157146685130229033879312951329938722615810586069267814992149563030649024070532086860638205775180314696356055750506846113634427467949612462007612325650565870404150116487840247301330496928374129269473470513511224217008187898316780081584231329392886201780442775332596281446788174176419791768440163517859698519263749402966606476659347510531484311356333587144639982044943040757832595302708030970193953003384772074791859283890212547572215611915746994670678805541009552994603706577096104197455724541331842425352839406590366673211419628650355318966819011485778384492441114643929168494936639927910541632988811947404396624428492138257704125831863086337754583269046201028825786972645692790505667021788870548996565328223535593672002250074925882188286780516441139615031571408857200573038520579873176237244786613404373707866291016654740520099075402538672448921552077579346008476484101235517808598793417616703491824870022027462937228175274552123025082144029578899794172873746441142631539757938364879078476142272383387647281651564811737796017146431255313333449095110264949830458174218409299177425149500036860663958769000466616725705946608289819277259746012611561411067112184397325799482821636194050160879636255706092605655056221924994562647504471366720057970164903133056259466096781965976239652249102093696470757670521006571690376701680335505682071172430924600887624874486966155703974197042448364820125441685438561821425061667021783164116770670857180947284973183623339051142739446878973522599243863603573285592736615626811161471914083882919508842971937010308488131892988528270723904446535155890281940950583437434940141868415443208002763661092044651405606438222265029924276126845280479810785589132311408734493833696314232551301603855553249423595451805825919870305716980962660166713442187917196095876817622753800799577796227705211746025622986373575054689261816540648034392509913404725031281741024732357593647742692230338494340409023811074725259494078805263785614486664891903243570060349256372967928714098550760294895258576269622940663380935498089877781833050818359404821654718895370993673047000044930052910878494162035433059715796208264702095583274344609607169849146640759317431993168067516690647792958037603516608355497615633124322563169036297465522754744609230770792347203735721888888665204409576778675105018074063378266657052636279272705620909099630893485579275354042655897052020005284684973380587483690860126951525039498455848516128418072804483587812885341606986945885519556079825247705351005141306996363247808641006865583173232672352234516505844195417238369699891260586258599755186303325680479063209772753059771643798249306546996398957214800858095095942135111010437489725988612916367232506863019775497744026540612038499542081398460017146426504477717245010062674344557134194717519131805747352335973094252154208241463805880145976302576585436573278953124561238168516385471537665847887664187605554604061150117277580291369035492306275666891112603907186801970085869999472660569291026280106486888616226559375243645863817209085775517499345957008481513050756217824753619447061382272996556565371396941671258899446153285832282255752197192590214034088577108802586766330188533649691250311557845885621955774779421122257767222866558075305003216366069628659829340619934032018114831881483894542544453376018907566075389853328529275554451662191956241431775289209378833261724012284569062786355997617131825072224469400939539786527094621979430378836551221517730464038132714888918531326874676743188442689463172757216738262039907745717130887342506430199253976835200352476612851399286558283168108860484633413959637488105011783431878558823022659092756058944275717482852639898517323596752679159243685213015912590299892483330547193618164074409292377069338910768365341734915708310262823017793763905546344089102239413836147332774899009501963158016109503288013549161888248506317675600975993780586633325277948658634926572372989409422264155079207806621631553241850144021994281727509474929811854604972124109626256493096007279400103319960674582303268341673110605461595163093644413116041737742928845047411942485964342194707543290033340042810294424141910579527981115619767704158167435817045664230995156470075543998455376657170903279318696029345283177643696151728219525745981658670532319787019707382815994181537012916278300318767998469156796736241979180034082375256471545503375842838565386876020722743342069426382943747652814991014234128988572920237239689351770266937133441905553337121802023575431730593473867271087272596008644084664613203101272909994039993149896954854674052764200747166160558809407465891934421482179580325123203527036696737115916410891066034573339782251251609298293779359314872276384596188043040979701045981236968897022148501721348985940934839236020012345885352331990533390309610097282601290554871137633419032206900193737123374135106310399944058104406117358599584552530924317059218732244536717972853458141682060596420566015588588206276745705960918481970924089706936672960121498566405319310012283382871213110238070971224885956382203686802733869286559668240084917861827920519115178812416933036686347559941540736280158769473499406144973603217272583980836685607497536276403808836819759956877439415698856069340326064449565148084689925598338600580601542194845528171644104710627999703800558333662358912671034595587328358718402709286391782814109112281836612243740113900630223142573878114268445868111153647684854904358993296261839065465249601397785414665371217800210765144248861183422563986472339856356849173543785329190585959127371414449054176349569381594809539582249677143285912318196104991271261336512926223844952437529191582574901267206759368259762111955672653826582739219896653006807305975627058080135910925729414901806714150203142067929947222407219509464021270437143473299911808019951776518583095183921188488783085340005839135826748632278541635519187908026914468357964929208495935435269943991029382233129184865185436779209197400834935858523471999833240883883290631323901033688663944215914371498184499478697664407798752177913755964090568737167651439712881652734201435557738874576924534566369352009961924475286553794915066446876615988670450435309081232475172354299316295836456589463407881851868574284460279354698912007684868779238064934628325411062553932575166826342796427380860919489272026994936217189002981900187280925142189012543913192758677493531471386171400370101881426273773979148972467701839007156761845879382439224564325893255876954954893138423323928407861091536901282203152479947550194283801407270369631758915954214200393155061371379590998848502302116096957206715021307547101657619907947014600593140048018690436458110585300585624484236578978001652215127840261582394536215497730582220164797302410004656733303826280430600598374841845459244951319833131456088757760138439679912132897919497745796528983873032884207286765335287856824319179397303545542914780490977067381182605510242162821412390028440496753726130050755780816214510147160367692468806896924506141739808060081104278300838139255216438487910045109256181476473162862071060181736905328714357087898669744300197609821694190038628058523173223430042676219307368159897605676525590443714381318228574107237204784932361675121574727933000450289537617629170339200679844495569991662347877556845481164667207867334048672058100828653906324790523617225800443916485565305420057305055627295294602856435288915746016031553207835323565281460533369198194516035858517704219831784381652889428560182521436829235450510566622647626552429302416318579816113514471720936007797075756853319500924231693783751013844739516040036149925674156277932703358781272598259482983693015913498955253130006335476965895772573795114445988612593932489006325269526966876936733209060462824270316887113529013578357177022129897283616126093931530189919134288236783680597625396347793390279194138077022042118454794765088550668517218629698446526583168921130435016317364434853922626900699712459637050370837491570893606966062761853748873490918285188783777899897834311462228800950896239091592295309563375040674458352269098188762290286924117961647043943549117046849012342612243966396178349593184786287657484371964096433533976449883259407968525683351471595142609453519945635537694029310849999538562258387492254284996524810464582660474897487142497616209282276536767699538304672374487990560858816320378379025671436925666288365550587984441135363813829564338900138694300836783032626889450842778444090602171008166560634386953851863239756404922791485767782473690795435451199307090365967472814960051989168555801690290013998296932121417616778598987908354052620816558411730395989073170204327338686250138452914513554274106140422748936398718158109614664388867805917689749348188789753054305456496403313230265485881392027194542308282423768304589518543919450623127120834118890352785131511037629492918119211118932599102529690804008097125881938885231688410520819503461857986297135231091083181252394549885487837706861788205600288928314488550243261775426517667994955700215753923539649608128866755757728042691258664878276655501614430782479271219606193777707054541672315672370222963812940341844263058176029130806854091020375319972823857273279049118745319202539155333292198554778959828461271616793730713432303275813355108384383925680461021921498954187204866224249396583966005310962827382228031644687967321781446933682625755840719502551647967362146936061137170404575672771548799858616826970479059095257813760559469523488726984481032605546080731568626937895678698138580108220084814262132084194605619852513116582107825569471013982410559547446922036384561776731956257034248222495038764544362403159466575370368612411692059439589519065681801732170394394979990694926020174112184427115875432061844554504174228693064606319163629600372232090776757422579300025733223551544608548827340375867948064489818317895252911241593529847110295876969045111840591143803421343533666233923579726329720106859417775039787057620399543667570801934909328155294300342386488134290504411115136597557422118339986222549725464500953759672991780855734890207963460508255582485971930596840071861448690551975575470599368089661786732757985033212109672631493496508672331528730212538437310769081559677990993718159707017790678567392805645153320159823749287358637413996243727211373790057017854630229066064029545160868681261742115004655124886907198330286905175561109109949429721586531346345375361232836979883992411442589329574357241380413420052935655319796569562937921463671755645942053576453865543589056697674088782631150078633486118890050617804655391973839462353043195057594743209986259937751085695466716349836017012502484576105116702608190334398813768682093797073112441206473169412800854481810721092825899504353697409363056321753995904876426828088597934661317806788791445425632503446056697561117499436343063329254928818769610305202473595442113838176873173253081771253930121761802152720612781114087440246447617559620259045999828366619795751520807335653759725039511406173358098119271314247369900606287820114401019795342955057788831970049668415767089228235558597254836586564224062623122081351969737716631592641972635591378177991772621811011336066541245503364097109620067091518761300953152686136530306613337024554383414035620647511092926471501853411662711367034214637880043536241945407752972721612598515253067468068678870083734390069672472760498278481041546131167054404681991814474260924569200052151264775559189534352685323151475843343940270790155797945774440461340996016744173204586130394854380095444180133558539990275418985623620028943461618330065484050476599226559385291462993624860866815531439006211054366819098700461636394910104188252111855646855959338949399553565852402250422856682652280796745995825945914857814596241606506111261517224389200979250394194010629754656985343308206705697072494582602125062507464402065240323721504747464944332914039499726927561573270606073743058932683280769753063077251705767121780396255116496998818501385830654579017699783961882189038410211926423913647357557240864761048117969851113617848482838355686963634125745568804174511451946124289820730778883492149812410612763509015606636367950170825645126694315568742082947469692368221528866484123039075803838165667281956031932505305296501981711370756905493549992844366063634263597942272270011780063561019963923708209485756559906320434447292020581105299170954209895431029270164807160270308360611827366816854232839507043890643267801438533647769122752682701651311656416415319643963598275335954465365188732125829796088264223479770345803088175999135149507640535365830699603842582729821262984632530388682003107463528401064055583772312434506533281924804834448663449549844989935131857192969077789506032084785773640779208626611155088740243704535624524368340198622695905469782797219441623216359366566704430907372745889365561651979932907621014096165091221915399702875612183812838920112212813735445385022150456332865923862409037073549777049353527875202195833309262976688716175001325303930745585337295404639053789993607120882659632688066079480841453428971969646592944730806595420372017813194380524034770348397752839943144170106055359015931419493468684779807155820145915949007753293147958301993400623137167659734929467671643262370374085930562849188437378859035243529480978954243026747260090964686305644293422710532268269234153320384834292563339079430387323019038438057173452932699727839368287215246812131028712728365187978400851755914097734063820095271180724985956886543269324651734646419411928743907961590610563640234755594947573184427086233735526986022091471698131609329513767462033487186869617177845508387074289629936572984874109512157334665397583258409680603139031766440562424896643991867825665404496918726229195237184954749009433113766266098655762294463583842707564288631469274936623289444444016605061386351352902621961530018701973143340207910702662757079604978162922235981374732446712534211987546231878354704525402468517118635309728123175023455764746919061872925420576417875094904191497825474900055807002946347408980424361615136104370187028445493971425933511855005392872056515313435157004807648252653430148557875886730796821648045666244452280704884249815595602936711989318836282831394981767249401134886466976179876556952260998399908127272980758589306064325112262632794868904326226964688289175175821476985840796524024176591511077281185384176127615001823404751098205818780046001201665527516439261509593282518628218639661208101766442965886594489311403706561196791905419855436362475886757712600407919956479719542349522114189603937771562252364038575169911891571430616669178477487416350872545988119749311944948714687510919238554144429834189943670041791140956386496520201523089189861817644439255233291833172860873094232989187555252098286904883245360459645397359392789079779539851547911061571463057895842776403930244115956331135252874789581993927438894965009799483991561920426419068776684590439816014315385988229190420123493251691254469114458283676884492876869877092933004110061716216612870548508032346920861032529286153497708454912957636951829138850144652135983871400961288056474195427469725076374754645094886108659025982526387702291748310565859878600637012657349455248701444800364704219150389656347231375351662804968260923729485546832851061901761971186693966927649098494592434205636593828484681758859311698239796823281535946782466048857371068118145135363457979038193305792473428491502138265998168116157985240719466051975890962530519857155830725766254839264286613590653648484033880592928089187923188451842401910439458947753296800400779209559256827377521386257598015606527601836500601087768988581581095068820706649284263190063337497005554430724779508575798815873901764910452461645522175081775143426239868801549155571399319756820511215917943608890012652777611345778960779471012755484541228016799544708533703645597673615882668050267232608864292954633242077040458788958569900271342426295053031647117969690809535443031194128860033016548661563851030782391677901930195248276845214408447266212415275221807537517114226469143132889708015821698501814596974838647011991970743665165719954273966026631322225867767508521452239150157674996084138413234505849965525982102190509298889672314617931170156755662712687576881039134347063688533312964854045085922777000242163701976927193937832423525949468262038120318255179437630357650163151497117709242175313313367597851270434851066011708711390755698647637950139704902518938911982387528843596051243342994179556284418831140684012066652105004889332494871752051776498438977038006645277502561934193182393448535493915865457990229209762516403502091016858606321914793868717019791996836372028050844869080864270030252752502764910568483342091972489259954754729710617321052767379294029747340812366905796937479545691168492841820620360111089382214872587490094833224222543893491227714062007992923136919736678667425886859630190206129930181421428526093141817156957517760842917296723922403353222456583770146391204113103572359039328469332079462040754984656163331384157437892184159248750729064728067762259614987579763376038108106481248241045939591075377276030134737747908473719129498014713078553802305690443685439922197862744714560499431481282319833871400953417868314097027335826438289923626533650716054615706420978795715245478964962719960426274490604047848276549431233827742854284738597415990855651086839384159056781683879857082909949025450332061215787321280397492903531308187616168004516037287839829747731930413129877717009853967818362333268884527135265803895859366204997475901129151328822706035578439758647659699141004666456445250505518692062195603125614031346639412202157458556307137890699217340204051383879925714740798488723700721692122969668087041281110685007513995960807746627879802564186862989181178057536181190261409625306529512614888373369539985823204002806377870228327788546272294085218937023112089379714544982718832003819124527840357810775945004112248993076294692301152725473160599081321250804963183842482693815921018385167038390267051207404740291889925089517769918698136658286304953402662017511676712866097752786599303705471828120789420774911786701189054228264518235922743832917724717706543923700508369197225087115838183034541457659262906374831219655372789090130634411471112526795763305662008624240963016080212578137780251945917155872607833485454047459858597376596852802629828020893904366991345677621615034052618818864650713805081172628754366696571309217272870466698933801410788415934316038836164501511106800244239887399276750214312042270906088123463355850828059530647251682265402016896134559255034317986227810139642958364207365344600304484928491130670544278161952373393409476646917876916021009516011173321610714151814162156429860795908787497916541063643723259091021530408144346573279351174202405443417232161635886134686326013373610341542384990235859240138184890479120493219117530105136667741061908902441989727551108622108544892864545042463197840125332087974853256321236081759465698750831008681395602174252420176600082409477210498583767397537164868290604468193114658370322935197137387942100253092476240906386618074146465687044570910876585005858756437286404718773322111290762946131172604154043028946058757902710682794851601196497328879305949080047595870638546635336849608341509567974633740422599936078338679375036844662767938737370756113153703512669109474819643017753599033234846797824721988868354486818610667990053300085552185448848166981328259057655805500020462201998547159568065332083442040748920002920419666313604100191417695648247049803477473902064260764400636490015871093834970765487390667588401466918785870481867458435984040303533780620094385640163290629263810811979562183627858411066193055742349669029100959456843261963025387087021749840012232136726552623689568273052382249574417184669992532019509180765339999464925787903486609502995037995910001708889533713238166574313736443552780106324946632439230990546586811047433958869739319011532124961493627032860506596108873403588785844998948027984669192904437115951057340465079522863089007500919549502465135438977968541073932251162170446145183700676680740848353559136149138156921155187452737479258425814200857918184112908579906878981182441312859264583729625990734493638528044720716090419714509954742476642859895123028987205151893374017800006044366644392578143303662886016431416839916429035958222340945382751452700373750124612910676741012155128852963864916598168650143452736382450105735887805075411352246669662947598707420049624602181520801369866740562026894798509018247140105572661770952537029032590602135335007068781637819873675327696495237475701129924027306747667984861079721767439004767568656411003356922870343199817511557181483510672406217129946496342570447119820187972123085023148872242299122866281570505130891418554275685739223887013353646389657362744693082412040218393735409893602756172002789311149640087353094117864707724988051189933641624972608791425487939770399029258809670633322253761586351849401865261333718506230455585575024376001667229830164332464019851347145476737066209483941151377960103099578268572590089011306367623371479347578214901172654593822555876556090703653656597363416578469213888169848266137001580155031523301215449384509728896397192681299144660263868046986753257374540689734024791725172009753689929529172283260618045570818184249119522005928075647188987574677875924841813613427429472299531099297942502924425899091018264482761782174294894708291944756317642865353718143965943607443697526842425859547673584735783487102237496490288056045168545128004881429885412938314849718900001863575414357829461453581375248577547557748993320672700042475248794630560778875303477403747604771780529670547728465905514527811048649137246373746772551152493255382018059660650688114925718142722547611554828609886667592499741949189517040343642679308517267899268633286809258773031653538362861166138458680939353446147225374897304761949509573978214523292021431692174065198302189912377024606068059704112817676141852384044575693334054229547050273846464876688458500727464830602459033319616922227027160000581030987016865642875486962634184954910183094919303787707918408732212588774758461536531581835124172282026452357471258305272051609311170294671787010869001572395760733788161163202057073772112640494730364015409767259958712948925200564145633538286729003797603797957901692480421043062535984685989197603977351422532694602997929208342722404780242532071320316631645280277205951115489959313179967267730706791793035304374076737496606893776840349175085123660342185194441949907984479615332312028974983513993369489808151376938860864322407216766123954923775937301382667482520945608796481414533541462790448928720542186266400722914221127406158166964792625152777651727277202724605623095501309624024898757375473758703889766006222969691520896948827355496693337196276882616943813403593109369207949193606441335331743078990896528999155731212688533126258056025525860400887878638476858059817153414972118659147850727706616672786066456627573962917800807963833547824164919968800165114829864823398541587054684787641042368395546116432237903477178660384054328571309064871788879294242574948030131690745642004270854018815260468754741127718630815687172329597458867715217386813499145200902890455880615432353560685139312495518726655238302924325236181782435624359871880858527164027118204509537514258008859570396719535152108383373482715728475542143655453988960089878942733033421244901605661029029424249471559778411391687292247078413536216723811298641771399795936635044219772874145607709786348455518660837778337856079776189308553413835537517289491011658591655407630029532926132410304641239074866118686512503048910593712892062499318773333786165345295193155266557879192578388096955712837614982533189907022639207430897912002440561619161467832128262337496941508464007888688171790523344075898403866745757418714450094232091813882114512405542333698595708516916602765483915617508493632925024277922170382475472975878950393263790366261209995888924468735041608316878355270261270691195272920050027951169276896098595935255576292740567686002987280953987652048343317079586793168609229272439068645267971927610869714434740730891350906712642892242376923910482106201227056472786425878434579811192208665275935471345086491548519389373958493499517431651566259269545281489119748890716690121804066643117029415680904773425369713481111983758071649797966943664971665579023861134358467594030187331260261055698967739785141900798213683146601253594819346869670534742749200999827166559643978017252951027921006490982169814520301517689549336360710441658795071834225203925335120838163027668008191568522665809204536735378365964076871468070334521725521834568484650687503104801046378119801981104842932696729238383844493620008001707875910649042261706195956455341127253055089275577369806875357754110618327120909328011498970253922916313187002313355803241424641300407341964700810510982878538439327106112772749310677737427229213243242547896392764194507462699607612218455019661891529425541695443278375876295622033185465873720734597541565211096552463886903715283954502696538975827895671030983732868933981606850680791045832961181053261376117496212752113174023342625200117776786903303390077550035869624648386679140251120370814333306986678850777784634546999340415068878561574983130405070257255934749011047510756961586199552208300420068305477656185409575013035499388239271566754059787577165184046781343844445429326259981506922754550030268273327866238296430339306006116479146962844095015592072222285603067647448406890573239903923189030436714090888495309289464236147881034354329224917179420190781269907956420784510204605121160676582555144355947178078790317000084651327731559175451261436265253122800625912847718518276927921406889069839869343899491295494221003319812430319032693122968542860423181170197977065439188923515372504795680260992171753630440418037568335746137237509212439601683732233913224672773427581062768602374903738472476436742678770640068788758138298713699562740326717818110897902085799831575893388753263886242485006782742860942830970928458141127004283608352876668878536260827042075415029390263437810973616361526147936387078833322910762171469497638308366806607188573073182804557951873334240522175608181485779752125749530170571365150794280505729589155259592373732865533158401208695253416031490437799326759484701294398452507133292870028759691376567477746204482452655231832685867798029924694985037325684532038194983569304916943907874328797635787382702307122608778449729617906145758813215597910397266790388682634080065303317935195421032764251339635419845655343496644267349269669968833779945442623093499698041358502721475237307914329238161627115266326852870759671946674567161891355683139648463732535638959269425413976467426132481764074475460327947091963922445682695501596278314969438108084277219357702423717708355442453131632318395059337438025417587558149450826869957301300188645357068229665014486757933613330106179538422720349055896654296731341590631072059032390179481912687068195316014548880693663946952138967060723988880557730591042836393699806142279106003775363022685627427899485635748886869064281736449341591370286244549939194778461942972517686939407091518571220889907671365716352593570955311410524791923952198649681192623235658850038381899489075515162178701605572004535136425176777294018266265522315866231273802827780860027995037767215663030777030028840213750923846161578111530694786860818917284746342185637365828610217829874627907645147264923027758012182735460918819749262303032635295624980788692359359526415596944766042311706793594856535153641521363696232709852704340612821928885494721600906039614941752600587075023942238085178935378684075529629172673902598537119674135355583067013931556456752987776285095678409267606401153402746849393774540943753398149225422121870815650569023983793353913841186908951832984367121786427807358397895150470125781854006391435503600459768451295018244743916186033570988102797387395869509485819808206367067965458877556950055006182687358531676354003573959364954917008832628188044651717394079945564952186580274315064634337964161423749718003214827555869227241783977432739216681011019599371842095560009116279409920394058855640393822089760481439968380922624560813373808181541607768813141205250105138193240489915607485244893687020953552158893791686511836324126731373070392468831223817241910947173462476963568510370114220958031268716627823739145521722863605127591993057766924349648887937997495712391894681200546444066077058407192774935655405354778797878451757969457474165387229372757437835519539466292043558727867574495772109416829710597743616521495246436165990468833669423890155248206768352198408106246162951932276073533601899291233239261017160814434912278120119909163731626395142156237368554816593939360726755295423795362551977348469827663355816134244732196148927781666871752469072012874129310688707145008726491997230552028147705062028339778705033674624703290199131497440684724463338095320493065486480989456072309074648491145893921790390905848879845098472456133593724907001164420508763060115463992940206332168646413094192745623479428888616566811524250958187988689503273171085639218588227071128656801377882911711031403097742032139579884609035801980362841557469165854899480453691659144479695331514601283714432614091707922106472702576301741031004389499247075401559114059873619624197256630969565813347529105583101244394961811371741658885715746231148847714843755520679897273540024684249971737017129180184082807532635305490112558956991195659317890213661888945541723110594889976290161707774199539946790545504294376107224044323639234521208722307091120488724364036209840980083729474084699472652047892912150184540826580885509451385565735146987906635323363291817080947528822690744893713997260886695341796254065668995275846951942168770437061179902947642614692606378050984018148665107585796796689708305272044558296693856450346156104814797681615187748398197529741441160048192127017369149844071491990795133378957415769327974411122296154906732133112959057094680278847561685740292038427498857166597172302506351113435835065384048854113561612382991620309633441386842709242980258788323630761048031753806999401399250094430380560427325230408600104553641770487345193259353468219893769410656620750052944780424828461958432770080988366321936475422457435797369796877686279072926433063342778713827823649271443098342215887832543970958359804232383276720915783260737352951339826499622147639300980752587233474367516084453159075922856572839456468826547704762331900898194211532919879043441120749175756391163847376042718772757148966123474468910422185091064739712631977516110836705751907760503540971826677566009220660180400828086026340347912744805075708242259580993202563020189266499412562983173659010558051119584350747430979030187179245548325131992427539132222707680793876933317472789415923356817251393651534866271320354268265049794196288516751946830254640429921345646603298371953752890192190103645680548994155383514072271234468282365540918754719788665218553056972219518981609051341732588307462054657870705508537121189800090518338647473687240336666885444366265014242168627916274135079189242592301759841072007184714128740516222192644974463460864250548099809336466614583416134761917544941226633762937871318573426322213359288921729014049943852484185775009332467330081676316662600052865099324855418287929926055454945819564216877372240319231249276951140177592568879819729623893937596485682911724463170390549543973287609765672600366490961606951937708144522112984438263643472305982267588840423800665702082663983603288029756046356505044505294173106865277963018283483983371986753870596466979527625991596965228837665494530482389849402844029703469989556689604858078899000124629031464727340380698098380410824590136053379228075583862877351026906551467425761404496704762186107226225689011849274208258248728643801670572309005004516853604750225348394911524501999264379035640484751859750826753925679129744094123125742417991987342239554863370231767630540945381442141862057427441184061897500343484183801718488949165505747360668510703524214107217888854239270962619308391851595415033942692139846993136156078065372217838828984134008949034189942309939112596233769528494043540725548408332695732672514583139774488377209415683324331072822813769781547493148268124029080839423798120351336309348491449018048509351444462069003967475690123664940562200876145589041205369008477738460454874656372561067326601067666894742269936901674653694486105077971020483816853210819932874278121176014521924827099633471243093768457654274021117464618199983859305555196983572376790010205095148458068035706997658321302475498776490994582679531536132726639756624196174935801277112622834410671920937436866071710691400733864206630284188275309965759746360870112173433070285449315588155390335401266075913273020983594174039297304812919574235231722983989202827937278767571967139819001145168877751412498640791745548967939466676331428791644885340005006634316231348066839489664989941533627026779260338092021580689415426998894617724291186845470399023444509518875932222061529692858181268794841978670504223020559324846892268466939710788998102201883836551620995493385580156888485742920186452779532320805992586962375611734412435075884371585641496946031735547901456276806596960005765301283709552589616734836163891097569860282104685959675898202824272014541642760215451066152173526163305341557445357678574299305010773568458675960289856089442120461219842447377039912521899286685093631216967913710615382626173817899271477324729192479286478233901761429556355186878337027337265608037388062156428319193647914298735037521292655426764585497315689071637539979090674126025562893855001938349628703039731741030869310144756500535272182376663848876183031732101038959899607647552119989255403859443737492349091087006359950110413666538553301110620456699322433498876940545083614372511508807551686327234665295071341644846814375979228962188801377887935284650225290527332317668254954755885384922899730493450282260434255324478846415611781763774653435859581969725004832891816913991699003149121533323228314982174500558244345547405781172394349999530543797238233809221675145262872692595011239607168265833584826650491491160072852154570889621703079144789423299155993501649274227332272422767760863502417146097513673318024967155480147898018697490614431235611313081383080613967137635264258933598516805902053227225136366632192340259189145894013493354719736362246561611852014916970492738544235453167168014538292192001050794109028852801214056618348282370937932800910798672666969823502603116294399745986986943628993264585117722482970136897053309615558524415664007137846565120994420001029307247826454964985033083200047263903960603354471116099272816801645475951497436603973776093682644470319991806912138545320960647038720296023120504111436661997686829396421237636387849207002316113885795436666109044387512172373521269091745407575417361380712968620422202612069702330183028006424717729560646896920237853408136799097037311756889087227940735857247889753406607104101751154738605050238637105554265533116844774666603641764741687925711891551783637594674692641411819376478548313722245345758222369827922787987153747194103980550948773418560214517053010557833552174184667271182843124625650063908623480703723578638631896257611792774251208151315797449294377656476660250934039844853999914059260151136056597829386527347277631244892283502764061423936337065963849481104958588178170690646292998808364317704773949779011563785972571407926636630076186547124219615832850528854834511326545141026647047882023422824812789116276579551375493651326613356980123203840752827199559680802869021322654985805305556677801030836212438257797182721108903813890422202635681371017327062058414575558797310858738691646794654886898058176637106200957641119738696171283252720344243425905357655466680854759418140166571624360019068067565649622235552636934391528716165119874815422853442232089042676414558909838683956801372238055043053123424181736255208951949191206891590485389467066238372644476219985851647348306955215625071263214219107488594984540583299733206269892037552908351104521456151233553708817809321716491523817918627476461432802963507267907039773017409987111217512968810250113366696742036424523974571686904538766938659326056488871621508269048849507666347697268744086154299213142086504285361730192252199335623220327230055373312980669132489624649567689648876307691605281372774903124351075694120253517500431305445802843136078601707559048426758666152525780625317669495029121084994055751734424231363907447033379040534949533343139419946333048169312771148578863144079143548035576808287924639396952111510886439285290146067475694756926672805034879665646332196539311633934408381394985054159518311798481872305133918014797419970036895745268125567792285333356058299944270215285465969081039709815767633468518223677182409258111597107312546231074504360223036416472171723243344213471350351919660000984341242397583566373887920337192223225789012389552661977270164417787951269226277413660618570175855730002071857851858373528399689847688459558446434591467574987337779173168335229630725468637146631345710254070667364599538924938312460625836023990039569516902951864794615036284573832019555790763680916364629558376521293676056664351273650610065149865794855135704476312832429593078205077305881885951119174927186672739093016096351675743353075808358589488283233056975349556489816511448927699493945317252389293930091747803202738255398585720200380752787133331151755183913604910814779155011040091845985255311425918911269096031491267908620006300059500339847442190241442152427980211526999538890225939505918501116479579953041918891967253263689874951382574651938226518489528351986248944290881672899150303231557998958390489028285213924088185578858194197259625511582145947461274888061954708677367766792871214734750609533838900792243929962863979487873186797761636249419757294725795205711777703613378345708519878308653464797113071296572985936648311764560694165250074825965646526980844816262509126427256697435668181325100451281263777897762137128895894524165148998509102918182282839076703152996912801635714384305313399224523677529422931330337904751527290741052163413336814171757468187529243241456700647368100740360450297105290959802479615546966123787687018738951030455125303790384271021082101147955945536450447164946292900777731863317254753181549807504740436832617053099408325344231943336497236642578558736389833580082707370017438604446864911685776842569034589310568919017254402828040303792988685998638036971750226177431369146877295090994948953463497299070675344280009632491798267398325825041944989016108012461909069848919117421127310204941247636443163235932994909682180445511662922422957037913923558608217775937735703855447539749618700710817762411000780736505461453023219002922183764040034009269184699578362014943160185437118693651929140160364539806257030179971114759210624964655889573156634940235023990251392892658884065518282109403043532335891745579206572056041419200573931599761933031376253109698575112130677211667572287942289055557557798691764703575010372271922389574619061128823019384921804125460563479778295608164530780544462631400621855057798619081025583807089437102670168579166344504766912699932379556782217770788568322720703498239157054223124940170706256306473192876480646493445607008793245712649314746723855520677252485674762979426196230611234582398794112458285863063158052984797583176398612551364492966223379331252356995486584561731327403888512272967527416029581959672122975385197162354541208361831636699879371596132552879627224214568193111173260595865953268718830173153943321322589645796208984654256627030717580893358118892839330684423178022485832918217513372393436921080868477211239029472219460617578173965063343110348555780550025876301789440591490218575893851571663442560158364478702586092485909004675115476909022330143404150838457392476517971185325993122710209538691300597227533225932655733986312545530621674209713419709348234133228997475522293023312365392622526935583041688532273731534517742479307328160096544377725816669548739195613890907962836386129669849965083495067918311173217566065121678138265882345244226143548588175290975894428028663912676307233271727906205159703062479001128024080790912834719328914857583054411792180342663024693797624799822472984458124402943161180564871545988693938571680551906623586894535611493185042760374383171356217511195018761775940384882920215229605041632589540373463632135832574893839876570281340628947821716778762947279108449696437982254143452458265063815915385270393255045261970555206907241804775959568065047789103118796715039049717156878921100557645272906531572640098704601082754089077951967444379627212482851168007708559338994383976239008231041130494189453385183903122463610767581831821134042807301256119977021795343458043040006278857178321558792477297392878378842225793339316869855104854230343579929060128419606884880902472530067352641511755355616632763447564739072719186340215959932852709586456616227886699823956752554961265506312224344042231246927781040970663798593200616257241281009361700388555218665810845894087898121084963568013727802631216085859799947088753784979136841750704495324288959982172029014025372165476396953339729527692870193104731967868343661781914006108889305846153308886001260759127121931527615296796171960855027631039143226960535330351131751408395393407734659057630499946365895967639294898192151338407713769228372376699808505743552627838846570548214439195672451788022970281025596749664761257637488040494378256266399448986352457264496250198334896346281694270298804698436834050538296864160842793147385140741019998953835873088074959002468360092561052333554784856931804659946068897666990498028719277282888569124141720357717479335910656365059140879609945680096117165208941691378916344262086352097471351709964871644494213116819421246527165227557151361783533138976038474797615793478602098008635383057500093477722299166753795331494094505070017936658711718918689878045810152518775787895558968362828334481496597512269148969232109165626063464256596329517679983066521690877723571373796950194369364371701322868511462818905301378162279093586983900356806255895031812314244849293400403110401017505862594027561258526314190692807538447864532972898746030125469342749545367562492857058261547941091571435596217559981414119987108909285932097811987201365630357514942936253067338374662572020614367993286742645968530239839579852106931842163152119363638704476103737429760546117176389122763123652281129010892556500221466206463894634190716258860737786338947967710982187610244072829433343754810311275473059423531681712668703574934979854398193507717349532953814555091351657662257327742307953752136944174601437406550557067350523007356477999883304369821646142393663751262434373593922436393762636902969628415527763909121014629156148488498612952241210078222729363414992682873374229966684529279113752852024767656259348162966708658588383444739522341021293188787470367198794823218570174539007729951276561547211055071592342890495341875134826622467808392023005189955737090566687175756989232715607916987931276115304537003467050615512135563717957042195390087271320290021239584888367798763843241915332045834809968470201273435587781173993549289535083117332875882459580075491806551800440927452501072879902603848115881568914662662683451268398524764437978918245136671397111588598308856116776378288300145964875471780141381113423751939179739124682864175261463567674013644414253932909215585098753282353248989591250361308992586882925531532839973953317907807955428471311927178075739361961527142788363268929828904545284877865992855595367740305405289600532541085924220208575215056249252713804046698473504580168204222054631959574702400110978845574367923966933600842819025468717741172649254835543224304801708454557195415258234621285646301062412126745381846242776170675371458583132569882101523994869183974588991843943834735030613835035916747159355633423934426742002754447551656130330281510693695026573602795512037970288701080170747466612269052535751194083378541656770907115243919942212853034998321922545074446409566822402743722689179759867838461494740355380518257542096507118410029697937276067866081944302032769347352295782379338610206810356505986896089244762433145099246563360504644989225317877257672975067147820963345369632819445685031028767610117810001283760787300584931245849551999503919436387469944820664413150903320173784143969549891626904401843108583798869905143874097594619343391403460377184526437809210293411819570181475778706941968371705715091307016223956828856685858423847474772034577275771552060168753324197185229041071345833378478315593137441030332797157717222711902886976909554963548166883565973375917573878690102661035214949698731425754697825787382334549544458075059561122948562611460150618285460558649171797892843064468336263243775687268709247933287027507716267403119564758594061826932579162690965692004724584552236294265120209514279641320979820213128940497569119691660169761365037622324540625826484198830636014368033399118544371186960427718289991324623268719812757458604578331003027499667524087607170687763889074720054020862761691589976566799598956785066276897479912425692765669030735934675573403943303392169157154000837481593609773238507052673413257491691376231065652304978769967434842593668067694743606737207703007810721090483581441889710834955504497688292912102560883738597446672115411120989403519177796866511377505665457635468778544149292333174376539949919591021233236262252764633901520292433988521387046960771944704219353823445679956394766645977029031224388577630984680726818033336810247249256047898448466283665078655165987727610685371948060828651578847664544481096977848178062631904603729840857939882203243729100537556287620024869711463455132983130919438388748134210943959151873582135884562166610300830500286394068896016270854686952144876256427238545706600439004146939178862708841815535246242747403538901831251915987561012063209985962113218759663748818841693922661123188847235410213947509293873076011893850125163460000554109341810840145549619607098350832367360713263919390882826659029688064968071137689342326167104572353065956099768429896897504025012507713641250474274915154152725711541009047086028860501634160162325026285821026636575591043788198634150447223041831814674248755684518776511971845095798738022977640401784400280095682851948135818531126622098874788782457451683885895248536832743619514316221722240655578408923310481068577845063922073247316108051818272787303722024462531159656970428231353949813179457305188430972435770813566417441263702656972140153227802311286240206877614603621857263565177726166706290718671658191945623439837233200915323561223393434605049347395729350579595759360311870653380924610782897421572546158636348368770439023969161973718904876361445114839507627448380390368655882372360664760216339870259329621325818841811946068647475419561133249293293226958642155546211271376382802074580310666838902766826167694824805877684779040397167940125818787734162077953535461822167361579524499651653841203745898871375882719586855718779764558987919480788875841891853470759703657934065800089200725770704929214810081828565748417312461404799245997810538725713982856454593880431899599966188918575277698968245549318740575050299481948546572065304841318471324998257188686019872135086221424146129463197205051053260360018299352895602759623265710832910841801119088078432151533989850654099109789627855267936258856391331701651882887926453275244882987154091821609170507305477218278083114315015915124707649937491021968410445031272885878999058121806406746577547014647985481905182354998173491381804294804183475275625081904018954553361465648071805991179531916169359751458237581950823228122353776056968789044024885408354846956083484412314561553582193350331699663457521898616669241267007552751518888211227309563751020055292025306896953440426669492885699780098488090417320213224513448352152082490781882727022108499685935607835912227673846664859856113595027207004504649972604448352814020249745991458984084693380032565320926573196051581558626907711695999836977338603185905806608121487049726984310357571033457400901865630900791410011616482121181873610096257016821054386145365783214367642532996208100840607908213283681348339012147244318601137964374920403964412282536240013656668066393177074923452207993296510603789410190989606362852448589576047170074899510289487096881532884067250384969532797539087692314980285044130041277882956881357765192293937267890118895368319555439637204544103981118589294069678347189728278046968600819778930522079229391384726223723464338880147117845019379983163107814630453853976411577735588340967819521084335767852668350804881910324621052936655268803726501948064104155369554243713041246195588631109048185816493024218617945968051985278483952254017560901125544210305212691732266905973394781397700523823658527231749290435021786881924259218747147995026974078909829514237434026540851699731529534970626770031546420623709370001653834114032273486786454463898281449874304858072076767820871243421243069193286943716045873223217147007589359203993460820618103656964538270079070864042107885693792780444225313390878206456911485795290594502940693046727309549941494635421792901740219741602697275803759547448692247766151328372765379420134592903921388710413720685719233991250624261833513949319731591598675430715217611847520025178524371392314081195631087296962861535377662014936934632554783540537874616901707828839368008109014595869273593167978147598453690874497331284522075906390835666661212530685071523090857878235325719427145546880353196426974867570163280834475132221411557375221044126888515075329592056144570145091540283410661880143269653964746746971843975640221083253694719759472890953946922142449972078172474915522651994273040836256871122291847941040869972249064078327321459236359092987857113224459637979599952900852517020217330799427524960056909258347799666943899171311368167682200497249688481324410113237451467140220591616340262340012302794173568086188055464228797269321256893358610076653420925471506023585037090057798948652398072586472030687948542926221491846488909514243266287380807758540000976181827122301885349824928710532665982996273444931936720259959573701830930699504871887973665021303076624713306641479409446183758907319756430912046380675759775058646654808656095460583538331614987054529731588554854278815727855294849683041008657327585362890724768361823294926432099972363761593236430399998034306827798109634800062992350746116642313670160613029663025082966279027957953423087172066596264585292944489283489774849882123916201725078124098837726793975877558567044058640958424212930437799028566273333620787990208862689584270928453459230004927967278896364282240270571649857424497512188395663429302805673921559363233704782196468089046157135699934811764653630052079080080457686944063601739553069233803745955106626117427602705649924853774143518443859421913779366163008413240579062803043288028149347906322178565395582705984387469516186221493758514456757809215870534037304579487077340076306461016040941434303234610456276030282755703679843144041949449472781579970979657527810555184324867947510877083492988183187025576417892179421265585617275167008698412351516627535235103063676181995443338699192755446751334203233719839546701829747215015916082656904379872354075430265954774331972039356628680769349379636730692405077411473594626138664623397365565036050924608561720163826056867119551247315980558021156943549670821229168314227284612021339743270999614307185196633724316650714758668408600768415554235110700687235663110933692847235059897917703342058370813637102232067531616996503988722785138454649371514636764894950030605091760359051506352915579380981250635946942985371690640368232548743369448249176185909134603701312284437630760755125009884758594140033490604748858027652504956437556736790682469430500454383651595631878732508599645115670985569612975164025577970061129885642562576803590431459683584516021193483029684077202653557497484670120490490886116114449640890724597966595740064035306115216033038771139693787328398789775847357479374882716992447531603220662362996857466131868097105112551512619527207260386292126416547766777596870086961766947440709538468655271542729677591187451635717278011447435888180178498110688391908463493555829743475942310059870687211582488167528887757252329407048140820571861330555964734467173438440703567312839036854602262112381822400634694717015035477148517292825813935103878681370921820438198207135551195246182173119556177908557556796976510896048758042696459600943549698276667902807723645548477615000244671191738911170248658349611761739590580223773448869108687062801894509337018904050030541265622086754212276852434912404688292823594034132603311647950837392063160132495036429416102783458485288447996112849819097913679004717508112344456315165911946715939923895556938688106248924410124208275017530406411106445838742360097247812941650433759307772999734463295311990522124480231454298592313197590789039567927628772008724619634451104358425218428316701550349197605512376978594939120365843329062703133025909916192662198255888812393675317674310264244593391576998967857339216725519200656611927914437833426439252474833391706763589534543007771552970086560368596498267414279539320708330998051563571079518403959184211563794418243694992019545531866061049128265619769318952629378969538295205735706552007771934714756646407090125100589257690182352276221390947070589828465948867886464030538205312602550297981438483353711761384226656010689188992452640042744779843028304917125492156657655250944733011379336437001687121660142513829279219651434651279055712903670041978823399225983797890666704595840760482692822884221805484585871679109689455321743854536185565752071061256787665258466894849587622182570761028550505802470619975174960925850787186081999343021187180563734651530721942499218289226270752244020318482047571246391271902903792670216966078450711684990117425550195182119777108659595932498809436280162582044040602860537676946903069883726430212053447451436679802134843271689406109435021915164221428132342703493185721587227911227108619721908843912498907622381975018259432764652247580499056247261018446536262242821465798068150594029770842429436278090493944626274840122496608530949843578128715762963474428588334556888540728444596950153382776525320649041531059866996398484073884100346293358260377370252826139360689083593109732166872980652818189045929074318643795062003228338803327549868936794699512003147824499634981744528068301646123794438698969482087054342833062186144195818998414268497922450672189153301206024966501353355995361387737652751542396257843622604738108514212287456454249334947315411478139613406645850180598105416290712921657767693252654795519045943373505016241304558826203253554146251103120973731162104454706577869229137105342362504010736806893818842278605398118072472393359679971603260080151080049984658086755972725398875903520717254450726217066374852800344113179790104473550212520840233527183053695107251606945987739359295367943437393962170905281732495683957620848058790881464338381748296405159605322320196178219091854960923559073534070033950398396155671826978630126939171032166073876170360618082855882632920678933582315775847863655110354832110767802360238736422286726701733484622320228565707459979734042080932066167859128365208050591110253210911645816983082513847197466727211724602371280505635418804835997837438347304097093822586955866366255259284684123100305814804247975746620146973952009820608150806099375552551890410131450253818801702467961116913492637769783116251628020404954919803433288729517071108877533327521352762448267204572992597131101735672176620184326129477900344864645971418812723067222805561210908562834168874348689806578079144501127632076298357554695740715270583060924232444470313116090156078983461098247483957087338809155400032049155789845773943317191181059376995801670167111613857407847926746676012313892101020362192599341743897237101858544475736136458951841582409090051600441486470367691748347008317680058590990670964180803753388676878200366533098116945435795914613467882245354181870726841713950504633470471045449936648916949762406667966539324913121689705658229724690128250332633095491899895630602686146693946503211557517026778909396742420812367276437814854371024997074598038284752673361175549299205699570386012632202793314057513116473027329297035503335899171213197609175293053952433853866652469274213974544769805518708078282178668962509516881202256792721880628478157601623161119244886131364372336510810628799469135325770459750970537377586024850205210832157381000347100421394505567443688710352354313432402716284168948463667864614403606762736137897933557096430221988807802598944217498412187975625851731535764910937796440597330345869968982906723279398021062565758478203420048812064426018353433953769983270457975806476360286927858884516156839137944560643287754305807375182875111037378025410803549496479198645827596697381476690825286714011910725712669254360913523610702237656901184544173322254528448857455865824231367500919838737962155283289599885742459594551507055782883913983379583628708872333013913462721729435833160402332584839432620418779149987346750983242643648930492816244348752215372563155965797114269562845727520878407492069686732894106908684943571441924638834412274528156852660437080982462275846067190457885423432506977143740132832944804689850467022235657932725592753439905305305217123943981406053129313466846946632881333456758729957227693305380233513828089211309885281570773911888038687924083041569742193671323089965912881929831958112384214065655246031369290859267931821226628967485301856958781692717549540352076916110744864212849620604136473953622373509589408575346555631379675332215743119789051699971808153162428405849338992169869630904510132785145415250268735006513265498184176848345054305549661661970498137108232155323313799343731999274523355450802437445971161621144132126437808526576515136218132921935731034867341918778194578422505872289629505704414069182365123430452329432900415727529957430925227343265744285031581828346691941700416576417025996382810010037462150867628500210231337072327314991542071574644820677290335684039500493649392857680674670497155900099338078923140392808830063961201165593932372493031733181975013379051791316599235628371060605882260311748341919101307024655011267872068857644556438992840289818349731070567373767000446368022435154182399799397901312658890046153939852553460519713634931670601718072490262360051288388783836766332005849087091147393618933238361661225159983059622942061178986325299568949258934232405858619607221342867408536478755431618941653551041708316489217063032695676534855193269145605930893060350086491387464249270758723836319993207295997908415593588969554140483138102934144212533045203710122543720507840461468559908115621614566940899281731569902765758012648560802069809769275344261659401935849478936124770537768801689436855200592475471219639092869991684419860604543990316425492534139532359774727151312555561906048270990147759357449916703570801770399683562964178076265781638243118404681162005283262332984705276982316541642097962717645861892086033012834007533451656565836542631260431252870395065046319703012031130742091790636076331709905796347541401976385252522214250186309031134837508172995451610695001540406221457058495842688018369396238193487195972420651538908442924620733693468197822496186383369944971436937854219986935274666613956124909751780818373877125279521123466853516509288792807289883449385193285001081877631740371083222434104068523305264240019785425905459943738123182037236047209248165630481286509738068582471339888220552601455454517438352752884819551746949074639149204350839237941713445378867557036474662169895942834327236110867765007303685954789242312063644049705153817594118735820366056481367977814907734475222710614776109951912434034475062170469327471095216379822003033153835376128585628526015343419576949291662757307559698382739819164691087437738109241399162394509295082353022655993023048993825858244516431821624308517615215991838252742215031684326193616032653569624416872480186053774604404492691828365705804554937915438983849997128132871832636728791901297468746225215387973863715468390318139816491043913834912151609212468355822268283405209717431787294005332709687953134680764916317964285889437887893947111168837813828433287483774571028116292473475680488910994289673628437978783479755228204157076141189178003186787707681185180880793085450273010159037093270316449799653591677146954693370261351144599952227502025134138556973245349321717166666406175642552675403853145966800334276969531539751688424173496309757854530739327149808063891078579361099130248201825483223827549863157579861223382171786462743636018846771422363509076039462193674618696690334837530741738667874233190507561619438838810376073367036740083119956246248786586600789895116313835790030834501612299496692707913248629799667128387419624755012188978599494935197081909076968829223324054562657412622948865934294215211691104537176687580257449268539903705462103163922760837279144634286714619172086530226746518923716079023275021460578960515011957001622766738431844911115836143951461643049351913143314376185228549953854542715448961353624381853998753456926154824076066540102525921724874620526628856295010842769556926013717256333734002874766508528227992096451274051675820146692468100002992706919544950256675211412246377003218951816201681441220318051482501674957657608546840047243403260983730955297765124685958881088311009405574251765611151028245513327707370102506435750553637424178238488202951334528963164226557762384903118616148853294642843636324137672709128127581948050373501980424282995203233777380656525999145844420698342282478352785380391318695500581866762874370967612478771640037160545287383691807969753041422790789745471743466645386134574760100322299709317870844840067485967092913009866630033374938250716534837137884102808458971298709222029459161689507547497936398939444335275940482261314512057222383164678772466862428397626681271019941874911107087702872365444535569963312633592484512471699353818767607134970777859617040876328015315375845473150006255701987029351461938409120246372536719977296438457909732689108027100978455294296119646145009282765005184461491811823469757606303767118322264666708115968152714507119518455485072103466558775521695756374195900982769590610291918733035291601767764939558467970176058529715069589549380209498677870297486623952823032581169960688682011383547511360535493934795854562976604337246133927137822029200475820972713620632993583046639321004689914299853834438803183442434177368668170961876444430624313205388593084489943059236126790394455435545265307748547483959222593000632141606059150342887542205831634656939845366511507904762394207663073143116095840455133939988440350109340580201824767186781975833368327096921550509656892611513014712026152213793610872982444384297967482218819254631897007852535760214668194486659953471144326989685745883512889476692035729754501090773983689612704645151367777752302484169765542371038917510264143232058488274285792209889050917250128140084676038904498385619239332798336059296503377053892090572498416102043005898581751027503803002055456219211919130723593078664016810702742576552790991858676050730604588157151800013258147282810700223366683182711415824920162012804924491025969138320888516849311543141179244218058242296656346530093184859583106943219116928975083727023871260400867290317232486529372900137525602659453902814808319600839604949662595954123379272382708860824597304235324313962045454080474166631536519419696094812882359725857487055920925061447403261813382381525419083733775205948887484834010744776674815156242314668253430440973428328761013717300117537676484563467179788835998682204264645782288118355068849599352568928917744207763996187386224540999918672760003090686739361360960221235348929427242641896119846541648568182719367512991358122802648877738993730481067734995970237920886755078169763352045204295757547751082139192714036270770398064139282705274354133816837482799234144299343327844660962186048550480184654945367950326338888521679785366551889206344964620800896052264884743199607411548141994039203001081158128161840139372460968624272625406676058527017088650892125723693967718451965121903655943584793564112419764489721815563298214811028020278998048375219253412363789837499288408358785204688409169805614550008920476882963430361270742007139768649358268109938883641721687211013818721698132079140991139433283701744269835952081105030315555880199392944719891455532580670083446840441610511600218144971447850133093984631408606008693353261855587645411816156327435694923228380898936158363435957240842243015479304535813653698688102232023356140870661875989883867274765182612728200865831208843233448031959964954306533470160427628467625855410364059434515800779128782780312113646912637657594939914932250212158401316280062199930059451972689940971610172260347973096763408667470949237109234713251280270114184891988365104473193288817872045036364364823793356836798569996887157334167010441412677160446538902902391242920521879955360797007311793967353952242770527351427058460690505292702043851053633101803972192788862562280338875279839242353040550130690305434971095437022187194444152611151654555032362413918615476572871892490657902593446212741071733742521888902501842617117168606929927116244266398304194929249163388791594222053909377388001447935863659611267101905970904459836039181258860915490822204704290835974025032985682189711352361181154783796417723468213528175049965590280886489663301486701612545264766266558145851146203173877533258989945101205048308662915436799316877525174060658304482908224657983101119801648930978342909214414615086125590233657089038597650886302057651349027172576147563681433142500714948257207294889919561841287141808990226350159760214075161863915073760793573968489839872202794043939159861364293747033482964428596505760122025135493093838591675244067221714013630677683428846681694433401462349120369393917106694635386717638327454420365873925769406694469168310837548680680159075322385384100871769048072920170256034092578324711647850882440518051789855194778627980855632866361487475061549728268796920143985747492357186052944759456026541398542905150834301024458878701862318998808554182601084610794216800035494328067711085040789771518620854191000223609156214279575667308069686861467664731467945801321114963986180630467387000680998469295705652959963452273129850878674117556470220858927365315854165644963600186079379987565132764815355991330210540253036251974407163167106254423235970761878831429220382396440081447640100822288511287489268904342122441577856142898863324797422129566222287425912476357435368187708095040417442607024683013317573829695127847240893045175300967054726948706389791111938173585019150199682435501728856515113259584433621179077228159282964743988493391361972683248699234526043157820344373792196683441944004986129297375457153099608928382424549630030712360183733162761312759951628417826150139116683641554660927335541638280787181025851854641486701950651695592308505301201214251716962405413801996595750663432666361375939049729558837892388402405023949749906067869655958953383355705098817718699004402170915645001258373497126689221821540903199671851091461001685492657973862796898497912329764635370012071057723887811186266134088770981987153225910307928799276795688068061934828513300933312738189607905381526199350798877196076670880169910118313065433927273777718546757257743761373735031819127516912720489172546069627280132180947282709206280546391157886885430994149356755084219748274974018577999412172560367592966329255775577362510332340244403611625860796373579552598486910803023346170796168892305191012574469844747897415955151923126616893248260417882913861920411893995354969018962069923433832348803095246392267766876797339713594534773053457356615075589018568103176260274513728338167202509335959049457782032889278891532374354481898866537283604237885772563254410014933965318095660624570891097977973724607832957230426287649606378125282493764701814744181434166921407110983073486586741824679661718699668118456715153961093849156836948766470545356612087565888818400183070149145948933756287627243721813057158405880793840620159540270809451300702403003005025429382007803146938129698818432608827923059785576018975721343173249981300186916383127655489253075135908738579129338252495604261193504665948850863922531482510953793950256692654468908096282754419338702096482474308103911327228364860536263102691604709004727451793583401210829036733871447627174526185405203612495321233374202574945529407722218770383388845058923135257570239753585762399874089366237703912065610788138325337300942307766924659302410612406070532188701068285074302046350151385571636632385090679998586065040116279086761277347665863725828948608729648239613448256340551730948419397986996377051383085821299765945791013142753535416582205360533656262339891117221761791661378386699652138594069858823843494922868526907312197593731342310403411818070722540633778073168874678943474948512720167664954604580246009657438161957350395811067469522377415375647571516399075825565688936481942163822721526137767995966513485344503658698048621323516767462949851069165493762373148204752751742947787770718123854398448284325016571010702802885433667298409199802151421219402897100195162499807503433580936766150962218639437053993494298562665625321962541850495152291578218906729036664070359961837518779073698786968406049273516246191575552694086741554107183709320444757017139773002541372732313485396209870609791321782457217907495667405209221763512950136457104211794051611461782757425775345281545327674705131373775381783644794064711759770266249322728759754353824014636433476669945367129415553994829791662208635854597112263641025950986219820661555116448769945956011585634526255828697454831685131196140771273745908054200791540295165890250584346358081398730099336334478108940497414815187997922795504450423654191319256353903080345805320502510873321782765246333011353882576345604233531236080500707125421368272675117225579612485867128051935463015709697789596611130829857235694401646000343101677653662334333451308948413312009972036075352665533307884475609186312076520463285405763961592781873215826271946434356904948943530453468414715005539401824247604302263008407159563582075148319999624996789804865479697930613231052489202321044138986213858282728176400792784685618059447600438775531900827241831353443400312161103029264811486888567818215820901660809076608092908781003743837217940619353800256861782130746430469384650088822322212863538213328888292647752596786979319665689389191202271968335578656389767860908019021577686375415839790545313056643405351848907646138808331340331565039237252661022687037038589657960701712689523322359402498463669046329747418075890948692213611218568261449109391991168427313631093629790488074759891338402074706375241427675233401873173962407050307916735236804568905257084234354082297778637058508830414145005339286401113095621622054416751889193740293053343621420923675131489474896060501132767021789110537039094953418672967152123152819984312472253796086273030752030195715049044386980588182771846238111805863406347797119611661110293390065854801914697836885837559250536564303169331784060146124988547899918688987323946984554206882105936251405741581216518995149150621982401312125228338638669943820441034182042995314577628831878982518170969156866683338675910604547657493204285530993979893546255385774381470794950947779269406214035960997370800171544052375451637620621128196909646337237659496604657142249691994202369492621559612733549303645703658049756474091345901772091482373811315886319949379362425741539528928668561767388159980073476394628240704199194696509478783320146761201981631570608042837153762699792671537365811300252502988111670027534664316836660910669852389674122402224228240127105374037152402457387975451212809671528003518225532652285321339065383897598576798024089245355796981176173301150843571079724491984656640716541150062158558081617139797699784469062494716417971346460983869100676679114317055435542639472592574972809205063094209630455655241024042917212048346751233991039725789267850110914427626284450447764798534702289250719462309251708414107971863563569689783262512730109621941804356312369348837883032123668519317054629307994109106306929198832487794271596426431964824215766509583977056214266958787048632664808084914809189210332776687236738475521756143808078035892376115313508704568739247119953854263386837392363309172058785888821959671947414139678768666177228977370297521003099020679211801599690283820198490284969632509504852488963214028519873075190888435368362633437199486669370912380648877419985079073417692936949003150569273304217319842408418145738422349369926789953548099977383501697015816051147055521896143058690750063471532307589191893980731120535614439446664076474310975778575667843313529235565322515704478886592231480548589889098845569380765509389267627795165617222691267179433998051605748667007212353639617987381953457795319197026908252505059789690833006006468141144457016718559876395411088313076986776092688715716895469748577801924742073961325055394950693821712766966044326619739527556800316451779818864111544270548255632119130776744820004745781924640767081487849489496865447556998784136621663181578731320907417477668796237483840809047288639338671584997613288742710708803526209390879927002131344271924314015193666788015135493441911042888707708943241965783553697160543354076456416284280357390833334994615346134647500261026831579198658241586150702451507070247125239828658500715920442591354521780106122340789746148175363021798494552310682006067041605468505223257480818212098077331771202371266739838326611688305713104777482583392085857386182455677374461409335626098564313485320133690229673280551838524422951190895803493468681739077210176159079896816836780431758853165406209337977289687718963622383143482499748955913002857798106817047831617787521529375095528468425294971998005274669779830269719868826965556171468519871725757351769501511182439508890735462954216593243825325788238098163533749842619605814192256145686439048815490944378237464029175370534816219994811976878715468716117946775296458999927583660956561869972177423698474139060187455931937911239831422549313876119178052615254688718150325292848570615312815834410751473367838503812908522015717128328706653949904329505603045692076353144170130117776511883596812734069364352047018554641754132338925211144859248032234499781603992103256349248187982241087044810998312606169016490497656276658111407061599497212515398751608969098640207359980478720612468945544256424325939990461147445324481433775931567897738256851026520441685448956182807484054148067741845590386128207829375193541638459691338171525610535789732772068801147842383053227618629186601640225391400766668995995307380425866356217561236984021317404123792479242831238033579654308945151174961391597562232128565355598721030181074240251174942267792935305211836338589674155354158949892168333498344131674461888039560700234486080452113782880566161930873642936075440682561745454048657855060326154973937025197684914362675319430812996842759655517214642181341652727482834944477876887261246011769497511150685412513050833243624914763533083464011250665942897900342982785105216874982595671674479622488521808307006665699542426513841696058955506329247012149843603992344440716904018439602800160692015605306825665986760056413859041489860209434018439312808849275140405185822573032286083305930909792060023883858294152574228190667757754906293861557947629264639267255939419854959457751487933885329973916760410527835803423888612163237150300244921531502606495787410837386533018828674421162807832753203653755049539745511528188499566158358711046310976564887424117923730463480033905182809464380496239861183283641396974398378341516762214662814570108246932225779546099701882998283131516452493593048140582380376455979044510681364491004205172659464892582789399084337663572962912993757266281929654992035150939216684452887356529334371689118312291363417873751509095800621637452078227511003087710684715683347155623794729710739242537728690038562137963241477039276400154173464312966495172754854061790727634037898563159999178102885516359105543173872133512073988144319766895122659331182394391494774874001864199022306392146042235674728802172793015026423746257586969849028954995846681199613016411628331886160019543514710345245399396249694711954241437646634913045747016625296390154466541452292541302239825435956545624319280067386245257279977153967150782624964423988582300757275937934764873620402910046884178218014841797841845545870951726093485384294852664199985395021560114530281637548592262460850522780967807874843951476500779555170970081356287927455621530855574077768489002411875237571270786446231807285651887668549320602570324525909547584374716947600723648496464349495376129349704019489071274974775855464058603731560918428080633461760596738540709372494755132667538058384109609167036718628050980355515138696111409736390115238714886567086546105540398319759379164820679509529631680264273314601236062846245757478942138929061730099207025307170391336575645958889654519608078583071017361250706830598172351765285740041600448926123313301416972720208512625781293729064700527307522352157913313663151917811291597289541499056855075321623277778828223211887900554306864893567409707092313710645312430209521399916770756356721003993436284350954688250663372203814596142906138354031220330917994354238980828183023528305118375749366129386469108473249034534339341498997064615929122115668169154491864603701466278969556132265599456372090745328434563956091798612139844971461832473586320895817811036721797282579348750356190813769210973048662274140999710653013360387261371824019185211428216012776910530596568794020756398586881670505666103512794647436272244265947103570166400804520055248521949944926744760320526539269113981210664052223854010786853361836855030196544446101438808550218741277440023924485193400890319535606257885975938703867895297217574267657179749901474731998892093697034087272569272234558754964825879481988971560218891694490888453522142185487367203856631355460444877008725245942017687231058321343623246043508422615639922059909419261074407687752345434403399310752820868475603910567409788068945052142243691237872142740910557887965513940133639165835663353565851908232465844475127648725928058573968724313257783509658809776079106634388263210338489965467154648053875742301212711149086715221827458145107624569059583941616619306652889552416767632977898789867013740797447940935749765691430613251618797020879333685257437808642159999073023103010087777827159053704967235358525319606893924368390836104100812394857504771329500867543921211957959606098991088128183485084563013057738201606802490485636886050332456208231642155737922075316932239954226774054898299642206982305334761375275121146684868539476620236534052256424826081351503352318579792006600356541590063199026780591705063912393822439244031142255992644536264765358295675757111813901156893612806018645466394899742600174416624216280955320438108423695708299742943212661508634430166697625648015442578253760232512105897226125879682091618185606343006839017973526814944665806790798066491958422438462652522055103023762984763481761718168555157559394514320741215345691268200569468703009427914630071997251537760066729116925084760302561029557612742403896873268074329929805729080503549174121240756843252313115457381954563294678894465555150766554169069676368406581027832835326134019353715270608310995192055666060632817916869318880237336296008873420137192672550972370104520792790168391764412507578882826222157486277164723994744312066204905726804608662057135456641603227673231758438649592025930899449341171045495216763588734077316727573500418761495258174962528537857520323551113407548153490320926276965443825177432134720694334503816249179516570650730891539572762639722509206238993409189658827190994164100713421147760328547693165503089129726075939352790229049993118241314574898018224810573031289789459841564030918290822706919878682066115444621136331881961380766681898435802202596276551638575234732161653695700091582309175643547339899663244327592549655224638032460253146194959018263884309626514470638625750061362765513727976051895592241868947766717036310201602269920607054765296252017813238727671641548508159301174008308789695513774888849022207021812154504346465285595611145139684123949061205947254782561244891767536973351772721365969178069909256238883977135741029314986158703606863629291563211302876066645178927519003731702858228764429941907775915915907826682111458364476543099492540575855608502002337639536913265788596185641957471395606010744786491346784340358318816428781144861926221304090037456983973095255142377296126879761910243444754381009260014574834092380728277051247271172994334717760148743536332142226278910488492121986730769388117125378320265351575263198609325679647402883603867203882171184693243469816068191608349388455218260292322616324059360630583083899724959790694725261995190921215883251574095382431876933705460154550219033176394303085022256579833130871355827206533012261763883549088267861787672170436763882014644832771656662131500519375394901592742210102302767808562594193266173369245217284826651794128695765608913126067757094315898020168510086397642149837326871560690825409939988789764209503460352501412856951642407165171094066699031531417002133618363509939463607965129311716179018089909268118349446722757965771484836130788185627987219550567988836811300047589064457108048563238371624177088441927839339409468205648527167294813562356849940675923801915774168063133203784587635469463083441527561534304214646391134595359651449398153917412032714196596535474459376140779378956351809376452107272327748815155893456177966510946574449198209223293668262450341257573127202338815746121806458376728213827615287235882266714306628831616555494656475941516494991029806325140163599999219457323774979928200854730948549461113301657836092661555481572723002506389371111977387438350508401250773132648837845901435584416004619721775302458394328042076717276654986647486668243107697269322805035440765917586460142013312025949100666522773806422694611471245932787581236182714141670547885139915467474110264255706457137403502158537637496884905772680131210837647008434103644463174338012732066652088881058893113787509472617433009052928831977456894124453823515197135681379952650423681584770859488771607503135405933421433475111399023526158755164160582487157023865558691533719336793689571174696585290027685031426889338611934455870366830962296990453650028246154973196041957437919949772046113768427878698563709878850897696472377063691424732090915449887375688804180141020059900463196976358016927164804889287737101766743551666908424489654839225228959150374372403608684649893633561155824325393933958457051166196712160364865696100328744494112381451360489475717256440496913429637871905567530681465616604638792697153096354952877960392782638467074081310173431211508047157357769635546601307440459456482660140307860593102455321283626819684035849558410160725921318981087973929601412968081134405121280202553018318232491460620102699776364875428793841503998079899001580017747449884677596519867775775738231385540872042060916756356974620690918450922100552228807551627335547016085917767552759316507358670736357490715398969766434095840692730606842283296482911267182270126240338110212923990374382550701980572424023590705470690601307735760444755365702899533024393788483736596372677112720010845842658139740946871868676541940205697010796610510617350682027450121355262504336942880054630541767253796063789305106586515359817135931539090240771354571275405589706561396274949220363057455080095416785453305616818130900115654873299336388015753085511018342520029883070309749472247619086576071082581720076777231887103931496646234668561393645560200699699883371788473787070527776749115092086117256927388554003178974901199385217856738301126165498687351894571276719273235857151628076426401856443907758868684148135738193471863376306492166439625658435002208598594901443501813285363219634225652111529727884678773108304283914179623629740830301881519923948401092828640470847528600531415112607995801488484114783440636688046265663552126251312651323105823294606363647848378301853446100726185429172043659865016311769243330943808660932034795914787301918742604208950625093019332811685814572844803539321920210009699874397749867547165458194064762925175661805003892510514501657495778242977611021337618204860378037720857458982692632358561078076830793636412811172198681823285587482309957770237592537763057893715260919259907691663012794430567060061771798516831657767241788889080036540684034931533046382382261799164350050964024094594565741262842490465121706014199176988567756664945977935017798516483658952821709123054720401136559010225654464282142342293950522033750590756728519946592640335514412427935609592377386863912745606846388165938247230621987040815604550034773387738053679070232941372295853487134974905246080681911544498899347255624472412368359616038757840391620788586205385692474644395346467014677068364965336833744375360586790066258093419979980468328497315419853115812270961941377525680709563865601587718916298273084133095758331904109653404940052086230006634670246077825973614401177878145148565554925719876278374561746351648900142079517027317965211948343190107136550222188978134169857505914688093056142960579513907048267645261425681232905464752351040761391685187138273367843488474779922784264806522617745041430946872469611753073915383696599945943503658983971369512600603657909537212127443772145807097845780587512585354629617671182809612782108169471971749323882732283799957879287487074731532534717971609404197233951572167607189206559303259102884215393918699953948524809165390126655568792516006525738842201000117242777370977367295447512010338769862073368327555352490754827648467905868914716509785554820356024724120219805844034241981541717912273575910451192222916024541528553280747979307738161429171609553149257730620013265878273445588664765777434347388780105770726903705886872497283697283830783281272251428476680950458170210038455263336591693485829120106380294686955753144391998632458712579780947669527873347886824899262855838320281330789125900642493370873684441465760113995534752017807893990299593778901916278959758298699191393811606576787042786575955771709656132986049793864182345622683613223156473576521802528041509391268909959104871497551260410116444743715668029321241406977344488792930101830644727585064855065687194965834764431021906804267941383258408912712453022845721796641023171203431247204489091915744107606025768462602052385106526012441258776873951514546647952540798721560211961736501170119226583158087056540093708243580024357997745257785099370649588948243258800914444288385537466394874423476341153192487740049839586232462871007553591004966393903970181731954135924268357133864776171765541211603313195942064755818875005875866373720497362593152900320129075840108636667273976218068368746075614868384721290241923699159143071414898304562970366956427548394661278933402021974449227308244155544875505074901593151052040565476785860148541858012731975220790298546413238647280762728186173025753098552532123831968550179488080575424178152762799387566828288741985927686265550554292012950629552035902280214212046414641595160056523268668845964777091446384360792204240043969869773504254688384647812969389334662878718495352992765440584627937175357675197392268666221772752139079923250929372769641155645989479987363528754587791571369808368033944961712197789602705963475182219410374382179074110868001501622409177309458661339945936643570678704703269139618424831706451330895743808638441817219124044474838677820695500979390248938842011414066332774412895316874944922582423391948328705020579155060962534193018901169505504885898935194486171252027416188085754114809832198104086499921697321891229864784551135259082613664280609857794554270450063407162621320718401245348848535386562888754806366084191089644542380658946308547370504903324558546261731813894995420908388706689165968004154399495153991015529536653680308113949743905158253518510468883755828680742452860465429569367730197770043557554233416973251547113604751348982590357812075026810536196872394449659924241682406447546473355266724559174378133911404022071936307138944292264624930412550113239601930592696783957539322222763054966656029815427546893901248521348733160838918920045976116756915432175347787023188336618783231334485601677059629996405511691443178096725299231942351131555807525655620902141721387134609175907644568646783521480526833603567206522283410420006649909156372669069747961085188153823459639108464251845300852289084854241599687428396510419505878071035898343706897237926041067311080758565224102006054597963463686299200493452719597434788645869695525947272278187522609274369725370090486456630645003672570533025813490030371870698001990477581177597243135447533715144884948333833242746597570761125588187824782069758275663795166770900210659079928158007678846568085380242488725439370984118946262465555699417958310824662112794833010246592276472434943005758678332087453434480846567577678575785469598888921622804719045416854318400167673415398173851983273545066246417575839888571098145859926998094551304009566902982624818903558438924133217914440003537603489452480381694857150760688251314134586782635657252818159997376320562698623322447667676534121127132127257818209762421362945325581856917793387227459958744947715141313819387565802759791452142631562899343060413468845937935880944330762696382829540333393924693095600783337931985265356710139029809055457756817039366195829787197931689564360746655943965670703727774091470668687010802433330670466516922030638100538830217341010067147678039212831802539199620964035300723603612262445524149426868299736566053194448728944764435718542083859579710488235358372951958017536211153276607653016435320867520601350522694492456476210756443393031455651457361065498917958513245037726163374808077345227398069361910588242978660589022820463633585693633831000623477318439138240424452121049836721512511724888472197348692035114700844222057237564916823132242739439027099597853847066758334045751426803657487563599267020209539606757135598953841236687418645290419863909851764859523202172282820087648124564966636045788120521048920169118974220783122860180060556355149028103489701507537553059842341583564775530349682939323531444369514071454958745456024989397335218391648494773691557274241498605842974813016584237590775497023400991471727329721638092329847404968597631171033787392178184616793900734546319225715729487140197727066524050577448635705863332927740820703925740809168651052569405706904596899456615241227156528680710061777553539873301859055846014352093778174951742101810400256716715113274705790725972246219512581841329691474196823976937743271377438323692143390626635471851138577982458760322187154450904525954158654337239936755625088834376369242458358730316452193577828046497593003860957418708396096653063778589858438668161845450350582211778084341624159895687066742101326713735316378727946807175406616927220813586652010395632674575612318892218118471032933316354992808182507004478872331545458295513186480674025516910381731034175378759245915616221750213414787168248643175471903931851506414570996750761063089634928031622049920245199418659254084258292550778262089262158950686985209336361896986336338835942903998326599603200754742943772526683092008368199513605335830778951176671277388858206254433281752035006362540879360611688909451479598671760866258305818056168932154718352442222503263047980756529044482787011233700000126213433879898217446067894345039644803510408836474244659716061676694087345496888072368285405526963667361427310114670737886553125013606929744174697358809746859285420651545273174065853195630123614979106547550670775105903320400512815263911911383537469042597003669221619173336190781066542962535709482009994068858486887575126417149333505859808552550576522357003124533035235312862599027628532201598270989043763562913586231912517050653563981912612425579192962973852240527741044353168839517536045803006557772535019996475234452645501388081974459892176839094416152990366516523218683338413566057436250156477409283529206298791783332711135068871716545854816985969226296054064941627264965333753195333817336809987600922957438717037747628483181122987683253312113618558103516321466213362842043986042585755644586494335147139676483661126812950270956799842346874929533960579823636214464143614936348590913923689722441000162548933585180359618284078646924383600195449971853993850999175753071075964145277216865020467537192013480301428405328977836700292028905885311598821633538697889833418684944932710602223056438323116806885842056191949893961467979427094757595948593779775988941423443608124482079266723061157643333352729366496492419856936669016172027126745611641749109474844005207563339522714475488997335228495989242635606046598397703996793170985919202907718749650171488849133051225607949639100984782206805535946825789255745435211602448747498128239575153951418889165837467034749794097484728706829590091455214010756694846265293392498783469240695279377723911336954555095254539395344164706400077233117436196397090141166577694503362939424308190535676018432023601242317033276325607199453156510903245706926041591983033921141212456369708716829312282345841774875061440320032334005183705386750669383787412899738274179089357891542518859469818307936356263936417733695672220808545675911315237571474310128809293306125172494910502725500043271921953262864883083456647621557048451391770273144339403844756512144873678813910980182532595510594568383585268387595830471381446675462167849136152562251846914453895647753671818474842610149931407790846268528255527598489395412470796505042128974680934527794092356494167318397713804292675501452219137787760839607781529495259878142180340353991569258530421749184181374005978526307378905549522162608618454998486788944878122397272503999078104946494020261168665279548306045583188085232085981992193264470305012916931194055375552282646676020547998930941956863160669671643119263791262610926434688169292868069466749900729240554891181897204036503923333462757382220697460577514185783402159192178550075511303467592938929896771871535844510717305138301280690232041767115552530724202067765314279959067454620634265616826151035296405171255556830543726749323183519879621902084534149653996420286543736993136070764110080374149838402255312890873556785836149279650612972452811508006913237889231315353790272917790833989816516148472412320484168585661125776287068795899362049437855759019262657651408838450422529570730775491616915813562771087378058499450863409836245173057252510362078345468949254924389993167589501124596139799703648676290281518368025022272231741729435196128894154575415594706146584450830376608265889893682204863948757494345464377973080631961372807086988670557920286716808579726439358999836792834599300391840723587717131148155629727052992159913327811459704564894666779076152932391896406830506086181471686306885675738366043669200997364942147966836617513553475774338751618934862038716288608131398438656825671566294626295865056842476622066410986814909362459099105849296726854216814280898426396457911030961894628525549416723082402369952321323437731887618241274870823188946036440637247862738499063981811994957636174772598316393519317454863603936296300860686378656383031452803153141918082945156410160089117384242451362969858358337217310090708312943885117417480899979666246870812008179801920077956016159052666077251889869570866735427662574731009587622532235431531912407590620863921367497193831335487760848122397816958031421089094631152730013367674004699542534289505781237966017100042571477818622985846024120173809749385428021979517468689738130006604077930026471243341953197571532321997205516861177082134610717866591358347517860668163217034873352763862965173280650826770743023662332367528397547863704958091677046759993139868892793239896865882885826208992013562797886228628008499225277239536301826749859996241952734858137782255959266930378137879544715332714971012895725730159772246384701160785002862610540688694928155422984097684531684497692937272625482407500636745182907533562295164610320846758564614361543396602179401355836910840313747416933321815680364297878129778830756361538646583354395620691290816133380908120677602314269854486918486204488812688576963198849664485674825731289737067218482871086364253866310630886236532883970736209016899115349808446510494706798758541481976457077082546097300079552398359068363275369199288279246009664621619973168174865867567167627522942398400807832090696713231955203476266136134124859858431926213829920305490604053017651894922968649276708174234781510877803419303183625779869146820500406274514586491399154963093131244533005941429551075382457170501949811816310505887884111354277532786741603924182126400229145828648947745533824299389090123565353869751225136419155927746439173824386309480184044744226368743535364478749330081203039178991367289417319521700458875193635612058562497037864294364049570477903830592190755409330136449660058324560865107550381006370291346374395948704387485766601221759234850388938037648698600449056679757953112025229878605331121262668614747088117651828669579142540173759513139268857951893966015468345139966233452161588507170456202094368792642912677371174064592530479407693796427547162566979620364231862922537194196265102341937471344816519168290074387780530272614386715186146415977742420144299049204777671319432496355875654399347746757668132996478180032115857939032744029356099384954797211584401431471586334188195707361993888397255169118429371107766915647745762082410446433507975670175425352965902561847844986215423008078076050595609365778102226875533983365856725967130817569544279767986614065810864217555718881205307590060132296830972037753268043986021414655395986448352077574111527280306288796827787941112347483142902932467085009179200072676380995562102084803777568039213337256791098391683619800910343117496491721562367619944294404223881004642515111856507574658030545261767283439068317784406286817261406055683850703557612607587803158282093351771751198636606946136680531866827464250273628209153189081622844072701855927913093367362371542287369749438504877855302859959745322118233674351990567969945215680740427324941052782592042949231594757193092663677985613343293662060309994640540023902527190803181117267572907415066173637439298623901315514344510355295796234640745693933558299113066812904802928941300605106481315224815308323361391620595432351552115809061999182469305370333344390127540435248942023889786130472828149759150764677505290095157249160121717005983977605372909589680913763558242453505907708525998182421306942935788088463796267977165879981094397276669825911912488053225950223722529631089712365488908656428187945316551728676804801294951239182129833262302341246454371190839365727319589113962003858287283548618519645652503805516834933996641972221227848243659556193106260721001013269580045959038924343849723626759611537258407101923159649096603193453932731597728794482227626324160709056185813064750555997920389934552344480324422897612693638438730967971516963411963185674578522229368048333598610780677503277186107504136110317307274154828256334992259552396467183961373589014350211803045902647400958965547011626096749865723860537496805040156226654961456619744717548689362609692590603027596703897769948838753721227828464288073524695476786034323288920620422357515514753360891677693782787803893013353493172851498717817417557271296858554662700686650029419428879865430151087850340282537106003671729978234568091735151736630970768330565846179898470659779838049597320443888785080065787363222688431884834517404501065789639730145415558446887771704449652933058373172799307379134993311928583973136249183138383203302126338688357270159663241980056525021386878043663303490212353983633162862994579881276871886566008163374226868034621682471268481918063923476173111550192836970087712004526878678517360469292948939114873893890704909076939815340377047294440586422954933139870096888759685797996402394310573553791784225105757918497641947811614808848748155469597715421731301960698342859760810284824414709035018193797062875984318035735976058985622729304090089930839746610881941445007234772616836707138031490138090295594225509554950700782837373929447598725993072615121880134387281440726328278929145058986363921476949709684651726630093896692339463284566408314820240833120953333662138412223794789003529885988926454014961858738933734143794023928750907090759676651490859040791131019430960294530528814542475409752968153036895488399057803863154461338819629555791058791871868231322750020965520848041226917817743686033305851030188556435224003665315457673841278360182281795132792610649175100477313696799501233753231584100057828936407899532529027482984681151792702294948089199953743264297481966598049794377058100900288032688416749976287027276863358434363994315212755304114842750979020189820764076447839711521852908194318924923137687846375300131171736101795604372924728690226976168429906049375347053073312737509100259619883331814362178524919742477481847000241105129253460264492924061759697650622438742399588616866790973668573401925515410351270468203415398594434164389512676333745753113266634097606321155883898862222727416089054166538306745637438677304411212134543947413839849106572900772581778569016228771135159710728863710877284273988506047065731422851672233546076283020052857154001502428878606415758277362868204754373785301243653650237448015595976786029310779171361005384309129651188389647940314993040114433573240612742845318107081062645994400735879392927087661597786402415093728587714979066469325026271727328864222736288116028929807421120812837821225871976204037374372147738068521653663333502117347982694162335041929288122890159643208266905102481674576116875040352042910193517140732969502242265512223557005614593442668627693070330398044735221206204066270124663364507425021516185674314135289379724837059600405727741204350806668287856672819188731591194798341880661713866369544018097525176471710870755608299984187983485825778485232597754543405373083025298286148793248554457261018085221901702279489869906143723133359295807472291224915587987998074690754969609780143131887279251862870244732932030253235338666866737489740696343158851753476214212453815635722538774166934765903330483893451560951742081302797918881240760473072491167982763162880468302553044091109670104356595321773296466974656472685042578305865470430946269911061340253970914768172673328375217263851917930502480936958740547694376652871810181712259738263225900670093485008748946906245854942805166710112840802864209332157017978480766512491064477738210308165445840250557498867611735881092424902852778114535328812828232507161011147360216008493638520410164969397836718155331928326091966340588649029851213905416869461709013584444769256557804859370917223626393774240938490471702240060305806267635554773044806475162525593348300039234919018996124263922248810307079193732029619491253209493562360280903861482969283736988250541116260507523379551133332705568863418889118327775855397657114691636188985905142146658133096339416490899698851449787151009379746934209623081793439104511165623035212593511900451717353069407475000476506415074670595909494992954539269885018263490940840736126990708814287496282143532696891467216414440095856007452398921315497994653258693281302807463135486407272743541922676058809231247538643632053987284415594978702409084667735174477616009770298862255107918213198018159699781074153679471534292393889968815281936691304116157948089065056403258704023467256747788031759701614218040129447686843958800282220272601863861947706365071860674769739183405544559399410493724643211197533165567447387475900475500795079826908324054169024096959844100894740154931006493496651688685786039936586878363143820074727934687817292708524579549953279421762111420645594337937834179904189746901357735735839039759972414872048609524208366323784970977058011900265217787466084371819932903708402748450466419751597868623437061070284186609674958799153006698613571377611335642220189050837679220129047161784997016546099657918261590838823763625060492318187790595871793217652240506666805164155772309968130170876693760585477936944516278031771677250393671713362557493332080657915743744010292527591449676990763905634357137846115698852999252931879032271484662365102353570897380016068932764873299635563001694979717341342992280923899787812823434285019658476605412832166161540801324846230318375807263043928148763385732143906560274243587005097430530437761115819055471255738907846729365729051176544158625539314611064268663575439279428696591320787833757209924814654476416208518131696392951871017009274551937729785908026686814184362753144514863879643524673198841182467320658917643566065943364594636104655434438632776562412870228634498079964188262609779437260812270038357542467998647877600127767928122086809590448063980458521050673474947509982130313257598023693959091324740863271943071713521176324086906723506098963494506162588836149885666883251772429340937341453905305920694195770564243443243579032341049074984154931312086038629519718280721902858347869442153347935503361945088050442880972582629007262805252565465119244918819480340072636484540122461117288620125356643277397780495907459622402845880651313861741376976551366092595873215560896428037240830364126201942697226208226680670119334563079245671073802119488954457546648578520211225800070943507798696293065013550575416977778402006913418057666414981094855435904072296732848679533094583055311277135688143249275891059327219925343725272308991918250628501439858424611564285486401594671962697391599872584898355567603887903809414115050451667357118025989710145498917317847607538819345497163068991591932630511473390396342356159292274392627785323735989366075435264699328275743774788524793269955297248264425331981225055574772396124863939640544703343354115362631444150206261404622628817300600110284001176193910115822668847308485543704761301394826768427264720568011508371956262633679125375373777934966864223746285072351321856974768251704121998062467824147857298350514842039525436975388945952478726185250542402795426734657462916509884704222757948200491672700833704088759119268465803776003755395990104847013673312108495448183387758061139801883085687713100366958000514216138918223071946274801263636245466776346090372758781284654823126949749556812961586872485343467476326753434746897713494114162037481688787563348354375903838333212932329512297444492970430996152174573547244675133196329038116489411298800883490102879325115094808857087130638600418602440244853287872778922726037841216541120943021828062475859192306407578103674926872127536209623395295990436109319461777282001656282247056210894055065311879454968471350932386193535419148148276297928052045580434849751226191567206989541909579417601248365899782207329890285384639843611985465924346961225493163348987916559026195100348148581659931718415130861543747724737200303339194673404020206858554391499301621252359427825599711756878244804808219836916829272193124071214300213853430958569486234990271709716889449483337994186746304097765877450526609273598327905547231604511801673637674682072952723909427979426031818799456352765513914383473914860395370214086665509501971707769104132945315152669462704589920996033513207005395242233468771996905053073401381634295653905764407187084992311301336616046320072352171816696416187780667783230327877715940876124661327775249633722055264692122353225729811029139462320082853352532517166002907591592434632395204856622932360261699024584187951215595126066442900751394748900451631549598013038216512385757112856461746283724676856278704640395764981850475157511104131858487545934671971830177131105144786586035314545357639178638984799069685393592554555994672755368088246356343431926852025938713604155062220729237024007179978840992163673482112739255315796534545589230799194568352984573223795185173910247850680034048840021776641382160896613702874867002108094874528254663850419737744672297191899432377996847325903167756244471054491909514903939604226966216941982947625945303489983277272426212927672496973165962734461609258247227688828800023704096208706402097471679407055106691035939485747411904872309100667743669742185307865781534632114298913309930417454411826569208258410294041648488996722276998151942187534021707261403069817858700357308543018099501057695929747296141253278086088554988760133804768604444306989517345529155312007040101105232205650006229804879128478399726344433261337728011779574723433070161593037475746178219873504026602906377860630983543757796531095442707326652969692103929599591342503439404945513425533193450079125281754554815822817930328999272345686673262734501508406341972686336679093704283911969304334902977297831791017922090897894900681034745141932943082726430831004529039837810806488197367339129067550249656519095533251670852423008117932311492088844631601088503529185338709075793008200805368719745442010284235437384744553187672458615521053817703582603593732904560704238774614323674109846833698457597553424608951611970254608419388953666126222742935697423751859685910900333114989799459288091775841923816449811990736991666270896588815122559348081837177966300161398678206591370957195220182225578941674394613707283133248408396797998509079050127025569227268641776841205817637656514951809608144299539942367963456488640300117922257977613241240671377435068311293130984891741348818675868261238527484970144243939096392740963072823958990904149767898445953033597190798521313432555441682853680023123783604055754391985318022744722208170805512077060304023909217967902565740558689840000590631831159899732055352230003173623823641127295187308168111126039859818243909125297233127338422735155686776362778458190862846983335820177192070754483848828147830050219371469231564031578446493102249122287423522271968334054468275379730268505724653052289311801048853407272956981538686662463198005525402589102666998093891032221689172882499443066078316066483880188005379343311949971253852739603470235081394685471313747673692312589556417703604561538725960800275013975832793687516147419569824600716219307506638425741594896544986170806945824747447130804882111439390794428988756089118648759372121567277988569822054043350440435977727327321128692168822597019252843398713566494489951925093251753544257420702022936910359850644741301398070722940345190137806861282656480515281477687873243242709602337666902980581091992053677480087941675412513869700147398299791104596721269312962055118297522734381298396242217818887702053360895398775801246810814727811237126349922094959475556985918149032273865219747761145696923908819841683703747849154362062213723453474640013314137268758117193309568608081777404363904060868127729193156306545775115119348046759168041449694467701474623316428102278358930521489976235844539668570611999659034268976179459186901353322844879226586530512057761127786076708990756836919827159140290924886016677100722059279535541007883668593096558214534883478010298992027975436941855987602916067312619052313557405510876088243824254161735143454269548081813415123002144739328068190287486625872688835041564207155016851605770862119857047631502528603640014548314690595246996680257331237710821345634733875256232303371179046996842705714536774490419190842753488122008182478205851209857738787307241938715724826308762035457249300979718898233568498213636264126781853034955529372640837966648687850170122742195767862377590335078637061149704202252386969973751687490564848544257159781642399549609073131716746475350236351934070102686397341494784539664834518224361650729399347295656173744726404661574608388127500346917630660626772012609436702038276833507321758393377440117725694187823328631891219955258821916379957832378264831140106428312434951956492945467909806248824093106960737829805514583370739368795838280997860880874962619801231817795844183864759427778667298326341824191888559430243898830712937865580185459174639795615676667020639461372203040155067285948183461606309766958578218143111591559844091760935673900086308913862188246501866743025627124525332663029987965029262820830502813999886634209223859513210227381292414337957827008113008865278549166119200801042534621201224696950861467075951556822002655863122658446135284095182721087725126237631005110437111438006697703487082769685737266363100015796542788190135317603277073784178766234904828274406967089183772198232413101240040203779616285460836760656945782372932511491511169736763767135176727858922607848867871631559150477582958428667696107485788741900589256698179469982522918188419846211198910794366502259421963665627493055610508569433138133984870916388212853813636846264712982321693080031907569294841081906745137040755371300550575940511291025334597481721879506206766902907757288647460717820957431688290198149106941925369949300397376236213568980232441411641535737540563221078311728615807386516934945955748600286676277819337566732897767032238974312131268459611992144056844668771314033106502591584944900359204940039889825020636524952243141999913982120893166321649893118267257142871589121149326200244235307809546175563314427806374998488872147355731642053288576425228161370221935103433991697981685468851037403062807692965318076009695630536839111634453505326705951950758786623705917753878231004352489293953774973393872262707186308452557446024966567402578349992947618694970569071366471454426010834787719995312992082348248488440171002198199186095984707502869842641537220559459633017477088935184708724639503303900754703354351676854283356117116227938672729780514818278989815639964943718738488069690975953132788282369479457679426212124428717963614753422403788901832628682020478177438566116667444631084845494884444162124892553218576197647639248588151683835916640996790555034468063273794863587117468298127922127625112658263122377047381764332620221789960442875558398578613196659133502242354004347678244547768507871518847260121716947849492223933280308620748819950828235156649217988087245782526128890661320225160765905401246011270320427490440969370930181401337589512073150613115282547230174636623372877860670392469196542280276492597417777912535887846318366640513914835890986281263328095871117517721877257950829196592334600563437370190590332323904877899270249938499250652735238925866314292705920615773777257016518714535011015258871300427516875559419486169756839159356664468325302272092778440511676007074287410505598655762237552530740947928744464154046461994473504967291248286061164359565967652678928291469155831680151955969849404790583733501533380152783716056510995377144851315019120974231581648999391271218815304095013943682138075209050914728604658278513054461308058365483331629002814601247623228315856405278662097055579129751021962458227502568996241355505816236311085180117963546430753506970583873261450305629015858574537590690184003505413978319567838481213577697647196254153512522929521008437450312169623389449526414099934680570905850808992671976547499210904202130760651596723995650020413022132534939256735840456952436864356322148544927616362880028100324555445195327655891614727112831239059141877217902755111556069534900167555606107266749633246930625509262164557305683731174073196298159667708968458578012690566660045581492058559170849434138601773592115471412506185081028599501330413326941096876308036609080124380067239629670913476965396076157982148404450763244521280705974458597060922379072149237611555523832287074968272984589608424054424971330177149286481904632939728031057687851865675333500148512175935864295940073599479711655476418608744085797796074413922884354190141651981547455337898518897899205233268776374716457774571350298824037890523642002120764322729986888318367832630196086066689065702368616532930147383241328070307937282950671502218942779297669449589020660485983948663599860623010884253931373840334871800329369431609328399068947907696531991046079929332381786511379123727305896176637422777803164038429380631884460593284830649680744308749262579847805841852535137025228229803648893420623680123130426088320288008566582021745470545846959786243796336045761849683347521352873833415684279336228165990033007203065381502245375702736378122728987747866465410836480622669695658402609258474030121739923222271319425479278903451750122221586741152550230660449057073870270003898458821782394139454178207518274374989301855917941589047331381282839748300409162500941072639394194479800148947598703728140561134163518608547355692461716583127996107802662635336132366316204051905725163872715627939351934131327997308680968012437129046318646409382770385519289099821544336616983971453472550670976020430850117548582839743029426981848642100325774727597061712426848862694773788976702641707349131255883802095664158331477805524597453730752160271703007913234721683929930975641206078715576992113814921191468628460634657015260984074439161007915375116489154570505461988465650483017983823164972114665446521917081028512980882531453429308714437350830989989052379517430942761617702315060774543522679199477305164875300993755945645311832963211358975287367701898427147279701527811795744120172105408270645318814333291726726259273984413541304825114340388321039339490026378751151263929456922967658821847984442978580742706295189350190650637289398453295777215232994848391078517246892853061873797964660820972090207316101200356288439392331268067335142247765123925900942252035565730944288101049744123755474738702381353167300862913929042489405807766604197361453753432504947979459671263900614990132297496636915144295550262094100603129536613971221721935301257013766228619302163900242180185769887803516982553241982528195914488473336937478086707770782127395679810730354839744147821945667739189237751892940129403588891315163936807698319099978409650659116912958196996122474495854997101005361408373593025084982165764878768968338055695968607222943773730736320964144483115975987801264126732237381736474359664651962375051052154873017216295130028758226954720378566761841343738550243121173361210244727721241676547168803700282694796646049711107268058578431924280431936165664978325174030678828686089398726002668884293291108180132237315909012497009089244746361463423869844828513158284669152638804130836459446916088592283453937964102940197362322173152293612494251728266622405474338247227154977001210006462771278827735793352215290984846451848076023357680075086096191451471371765787516151450126122939934756802856793270619367045067907574126991801343917450344695944158190970321386437024023762289035129383242977833262028829873001013216903532173086988502380858048799851480285475349735850470434523352629943300349258333200937418532162303269708604591696548767050560383596534171024995727948256215004468353874257848566131363377592664432925659965076758595917544347092145224835841898842022444985769891822415989659878489222770343704815376783674973935475307262464924559374989265493864731084749689364020568697338121476693619097563916385463218115042881055491828794600666377668408375535748601967396017437307502907458572444277430335031601418932861485751577620419064244793714728359418315794268836985554821325032181707478740430856033227712053584284782802817280591147607779445794863901930458853832583468609623518146227153591495100209348981067255176122081487407129323948074012104607032502272864113836941867593444244302727177267437094582446539477410867477388582690191416105030027780696951816401529669483678617402413017910570636766954249233798010472562778333037840007277069029680783031554503434739368333432312887082571756692334811638837490243180278676274691996596081127994573135643877090771947369697755710026020875930598705211629595884336130242886471519433652838385732625738714273156392964193895319584939649057172805167983734113852983043482898717049733330648316824669119352505344545959588668189861786848615384358297015535294568978691493664559184811555890075056928223981557067620576238152856207050195653170180890040413160800129942693412270564554751074885463090686451467761600522246402827062409947299331966095698001268751171510047892378723097986493022010750136224381584870741786248395263185170476798912659745413094602804098813571494166375464304154659848728026124466624422149515535062204830613629623647987469174950902768658467604638832546348969266913257663798921519781164953597099792420572907648985952111265846995975227823001013760282840728214511119438804468431013366144438846184148582885801145831701340888973176008482233834757806687148960200168302958666284234837612823045489375629705555305390719104804517106246442989252596059243962551222508527218274105293813756808333870901315103960992941851508776697820894122334808285192120032167662681707534386865993940964378841315700125203342307407860603091349201026518656430248738938148643800925754491323708907009728278070147871377226598110170092084659012227201649190843790489031103374364358774263324239223926064203049638959804680865278576054781597848354547769693943308241538805511494532705754556541972476148096772853625493339510581654158828835698758818007134037157198767524272758896227037636314683585806752853654706554893740779429190707630545324959539847755155339469828036065440940827621499274485878715970474777194289151640897488556875074319102671529514339651670838260560264776020840042141480949662250606946184912869500321342524306944476412712021037680142414932133513059582582779610737830085440798448522617977256338367123190794682507404454982953301952546740642827520988723458249248310087500056278858729454582863306676654815564290625358272911994190907637713770676154092858399342232660326347191821257942576864744302415990190304730723038107106524533238713707652441977242591180980338327061403969653924306835745217130796056769949866345436786334912883648217408575572583210748258251495867266102767024505849193783038749754863533074151061251364184711206134070086840179018687646556690945810746668716532406560061323595698203469133488955587503182990784967396743805160609559914623033959271737504785725407046778442698320960035541881464717942404557272065375602999278239884000378453973085525288070112505669710240868378615386769382068534696150593914224037786654809763408065088269778081402361066414445437475226165868302597096689297629742611024412528276709550490763572367026584570353212738444062507914738577687153744631332250815752552252240534949535383643836028858980463140338937858978877257150201444658646724600471360964331274635521047083378720529692116098129776610811990664907410130638722561199148669490995262076061392866307243890640335001713585226777221452254943150897739433153545748603200986191696302408294192612822404150251054790994084261442777594070293543828655689609444298827850008802882813496573988568745091561374901755448985138802436002698220142649798932123365930938137928944535281087137222974399557580230627173394382695797313353729446396308401922053232674109985894018564357942889924024951994941726229256151777230678261649337078296935306243533760218786696090193279648497669605344788711708849625167154911888209533934339058300030556757355646141347937581149825001489421373159368249571696145756657812040495903184233708771271806921677440581594646562097833874731012997794144962232068639048092348805207726191315434831115327332126365645522292325724831171024701226646616071459019427909443691981949212496377285595784298601847834426422940928210093877606031668175132689494032871803735061145858289890141749420425417630107630697116974689444285522775861086661721505378718569727252325772086910546432226856460777900907009164703451588190501137128365161020277951521560546849869637186564327695277331509321931301114244057124631978454457428898280706944240904565246632767127197351546896483746309195296515215313809706731320320693228246908038299867766319363859866077092419953645752356931133516489445846879392455037077910107043512151539609471663747642563502988195340038099781077055800611078148330632482022606531119998250662077331653745154090417755001687751976486847229579470348262549658876475916984422020176645913607661054366363335207972704071753570537043844364051300457716256918456792009902783817901598398584766835896963914890803406566889714387318753951701854242439217089556249375813634594997741087434567655839214544516093127330605682671840074441011562944573779069799313124655295244262603899817968450996004923787681532998563044596925622656646637906123228390340780381723268677366622455752347284588410413068733564582275888331518119115202188720444299451337507360170657960900110944991310836380781459749805569023573401316920534436569598272921735591453885842307757387836591896076959073881700374268699880577805489557568206923692480187226782206218002819029289749263258429987274733755896404216664165712560415231360857000698590542126623538463823143801848475324273479009330347093552976446108369648249901499923579628593818144502350681396950438616219833040275675866660737825812081393531751587281030841970343362981270020565345939381772007078823714400877831709876700050455919331638839965664372097053982380399277209817214873743080312125175188923305107760772775101663200664899845631861358768861241334686943976992330870399532346033125985542217769948237140389017274866921477239628817589147172981100745891969779219914650428183648661342419383867935144997665050114997648790042631218489455007558483916323390220856021026602726985917430214280685303703971393854145648392338007409410629177774141156034515645981037915248068780230093804026875252737011327116998664465545194924386327291738170866910136854870528411401530776728469767349440042426510315685079978616720866713037713228813968775060723870308791263539988439862582017987281376353825932060498657519979161523376195394625645057798863658951311603031831650775322206353050792794267877631814728572883251307766215047396522997910242915882887485404712415403918552357812978513992554471738745267878086314794488451384648384234573313696237427474169440623867290814441963670185631171092910994769307213797649431107129630251224261116967354738137099105082968654438884730368163623704686990447615066494759265187638343736285108101728579339282426277573637020914997361825929149488801781090487240861610019501070197395246598993973574671659938543400245871868030888402762762318161076953424847341826035817616568046212845008113376892184045867719835666170424847751813564595299622095799219172149199093536786869580241339190312121163781544075689190206885505676173116980674631528966232826901652982091871353399774825258241410530936872498425047663453344624357526112865217878548570033905331608614523597684988943060774896985080669660844722773807783371048256457051424346928352169177887173151641669697416193040036685742840783674883173894798810292294379759175022492689514063269839505844414116055363854764173212132765701420591445169455960864396501056276186157457818155087115333214768675331649165599999833552631999177096240543694163659464764395546742613456150388413360544676713027363864981814313712677691505212955671852977781753460085313864412758477991130698390151515641563070080232037567223630531950314809496848369887248172178313055153354152002669418148542734303729930094463889913205123047888148265563705115126310496177201485711720453265171624327433360128897415527085418487781335115944242871651651966108862579460580961677337258408140204485442187316134084003589503062782431009712921320929935254116880603040940185716495805169174193138378503164667554229887452825653555093654048768099874023726324132164757449384796750635115077188305537666192367361119546300518143964471761898336833685014841376434781176939618402659146393342440121607517580488086440122595311077355145701740378111665977893175403270257978734803444277750540851632460299079571422684485454644121474039093592142353610095513250740909915828732017839207558005415350911747062905774818165099639508241879600687338399597074823896771599672939326527524313468249764049864592468823995262844863398278972934167675745081544818031428720668084946710106137680663147456262431566373525904230676522842506233917558925076696205691885168799114126535173429254487758191016280813593295822938507977581738730055751769623341042196919658873702394543678274481540880048196283361912731917141264475400782652722370461302072355287958288254618724010615695817752933646572848071786438542777587915167424196915625437010705204800045573152091320740856979762165668933018997766581511477018812029310076494946305001897204146698462483659969086886929116543054584771243675555704884601879620263826638813014581732080684306289074028232468853613826392540270693509478923435531079854680225703796050070939219181250106320064029074131035095778442493867069893895392687278469783762966732575247336257250821228591602059215746800352282519047812290568597178105591585160758247964369603204550134698554605375102024433529392939749655272258196319644681342550738705188759515374622507360010071549047101559676139381426229850009338857168754003778838518615670880666779383303979696725256125746626297730858596742095037074377060813251977526507186353322748850257366082233437803133969909111501795671736732114977989259512896231822112682551363357604272998498589195945392531895048087085824380712809042724887072291253429360513197728740276328271089278153911037073971566492743139626635833182329702197331233397293601997313125802257709758501963058124290344169142699467815650301079278447698430468170335801886990353394548535533067406111420917046982063597099123366835572389931435614574749878767080634597168214840222908139527068800233336290659416485842558831537401138605981609472251742272104435359843865157156442234610549901349760379780266892121230656452340968431469979976570268565414897887353590459898651786027703034759737073500298707395180808411785441943459150624431238043630966698849232518612435124174292227745891619606275719294845174462607511283696155759039171138856793052049737914687468101091928881920286371083675651158962677654152193217612085309996253405263160609829685679171573476696196756372274375123957940256776847138330405135505811629072011387410261676181273958876468411392740534679428110289442413315630494029043590543190091114884898285921340547740264876595825070246507290807346607793523944118841635818053965923322872301515064946352518739652753434766783881115034096240068169308174824816675497421662699318348937361818984224775343839086570475527022127176890497784409887590680525924521008780724954326356246132419951333651987862562319959853951434668024719461310287230574271008809548919996140097106630043337889767750267650619400983432495811906523641456688900946853405771470179343192327338556063321589144666682424935291676325616657954882878428359143559367885374707687107304605300065990036761398814042675793926759475441318376535372362544350078994425197927017756385763661398899267166339746378517951658135067386186074366407970174977226450573672594718701228253524010102636906459842374356981935995640941943996882813537513830388511187116742689778846055917865393969167102167207084976315522441386806626356226590658776515059214207175258032213380766982383273346248874839246982194259992403459962667747721343368331514620437973962017632696587946747907750391681724481039518998333417219631632897528943791729462056398821664463952217597495837025098998085577059609113099299167500275460883935724253888539683856894767832834054219213927130678563355876622909684878199411736261723737756848544037451401697732455511774669707137117231545679592606405017950434723531340411278339124596291116354057717325358821433171205165442380346260575037767610833648117747194204783863868800321495678506965194147752179455713103933559997828676689022407644100476426909187882217438598069103805721963152005017635906530764931239106113204678126889526494966655856149288408456419265179535056421073358269394896852226429095052866584670514381342063429066030345545732947515340284155199706214967552753466319268257544931674305933836748053239878589788270414524754154567114205886993825652400755926134390536300883464958045651730022678012905058354834019069310418737805257120291586614906104527447986385457821095013542830593420635809949955873351302232174403456664693579532599740170640939626462656888332428406928880349983342646608500697121119499660204288783836590876225602436404305996632565721344851876985711009309762114813333911379523506983991467598712825667861802950370627179054697414053988278992813344802747830179729845842986597977283925447391288659654170324565417837219053844380055665954474784067070803694564966680033749195026351580775545702112365341925024249287719229446014539099791225910437247518895066565344600114728771178461292299570455387770813351154567778304125765101338430326762252768622451835411513676780217201730925880242797119717342835670255149893514826802792321726194282878521546154260629211801695244642216483195157902522262060603266011945715728175011966513024789635045422373693460955734839390913496874215781936530701576728386836815687423640141047453191259366930428698762053063809619651720167574281402148733746556433834175811861419239796863715627760219632454530715650810337258990230990170770366422214464661762165660167273884727339578776936759549678938485383416438695451741734904732531202024670154989631009881853977071319037613549615545443786354279927008559052690598307036796695548068278278407188870848828993331548701846586323806187192897692179308419426618407480192962915598960677128655590764204927471016566583419640634873140914188566369012171551654399733084812081289217691508258063791995483786450670939034825940873853752966714858890588950599010256786386607106204474684914399502329311648794276638698177050958431512291166542281654965837558586924159639564493638816026895627578416343829495436899864107521194851094934795525378915369545048576095642023793055138151681367909802960226491235653792507208776980746775207020508963290626779513960280723810764584833246390398428945849145294349600873882891883029920024098357378634857407605526280173747534433123268511964804482140797083736778199987461142207031097109264225505963348421042173218381450232931844416188097632015877052475525984395095541867558150729667808727893618891472658278244456296190204531501574595431996869919762034707902968394109374799915881985061244707902587545020774936046758594072120477405579299477531850414232954788551530946457444693300365420432236341421582792529159220022717147390681758293400592869336432497373312276875268206312730959670163099828488718420773815983738009654793713610347165596591714020364954231312368676666840078552636987017585294929135357359083588948449443740009566760100980716149993303027490713957747149190926488519976935159729619632569538771544120026029798257408636483455757109761755473862308597829172432034886027054393576210612567952297338187371953127735048193146176434731062374162155852582168560157377066772328527364301982095762701744130578312414723752549788836064104060951720196003063104969979531391470407244109885731470490674347876600053513658363532842204942125801506684747261333287943058680428676146046594883066495609537369539938055632400631248959210098196402868204721854507603955468589056619528993116941461969489249627091553464210435290110707846176356657869073496416840887489972625157560904535204551595500705140325100925373045708385945770205108652118943843077825342242044492624151102548974685203671012930568910943662464762738233971145574633955301369674242719162682620685038401046573527734208628151654318245572518099472574757990393193007403321580541202485680434653368593910002479809983121093662270615237869204195962074878101989172391348673305145245789801299409615431170517341286033764968018179441039462033468821017536026818072803115016566116330186135769613777156152655207869667296039490704633792449768585677936927870029961800694591519772714441040487698921872697364114831300312814062160741704567182070908003309589949926166342746221208794150658313352391712033467732896824968145389423571450330696397218662145930505583287731583649827536480836099174792906301038665135031154071552615635902614260298551611929023047059463198784876332396632598310666065512469481275507461490055145819353004489985589432435100983750042047024485178262912270581050017499519683576066493495318737027504652112967635997583384321673329979472602569316393552896458841497546396064106709248956191604185647674278440682167597704376466981774070303076312665308686295954230812123861480082390106360549831506769927555676456882607194468273594083045460577979992959869969616453518372405164712648407805525558760018245782357408100154553017082569597131030421277160107005547445716451298383573939153751553601046322504445196462739436743431475440776290732191607281948906283265906388986831285064248968826720828713924331293376407230879077608440832537784386990264862065723857094908048760912052261129077999234849400813286957690636752377589560691727397954024980820867358076609625818673760792540773484754756477241283431519439341104259479116304086118529465570311217336317417065593445603032453429594327887640697671139934574901435211690423786088935946675388828660224889216162952791571506417810317899960509970374111741223143124919657261444471494920370803903637937313851963871389744220101315508849088324117117054514614051639387606086842990674436350658238866721325150322080161209817206350218086760100176873888671853951123245855327805232934903976838746371079560622391968153014551704374469326273342162053172861138425427605673290854320914233928662294645073364325775379475874300683924768931414728881989585466262462394412011463957529446664527395457208642905314140366035534749728661687199537129172003095128916693689466094581086524430292487612809583769581924865099068249349858169380651942829096292987348394071540219375227993861683327118841198900131097178352323088876903477524548018451795301454521661958893727633484750071292218649642017414577637289153713527344295471092836754110348194529568760298030312826452345712437972830581761913827361065960952522519226363645456927502034755194811207415053322562591330439662436893784092976944610209741051023981763448033415112227985940521280634356129309567780550173254596302047222373187160086543914238625547757443619540389236123145099088809704978267193469230854508999285929195560284222927711883011808320193336041308570768882080336099637916415242895689564510959731390095380065374502237455985969233485273437423593844128706684107818913203584018664378545176963696788230029050380151431734251007119685411244529506867877171344612728449044210598379367120556126931898666179112759443947770601514200778242361958692019627967911586103877475286420415487804636611466726372361774493894703765097476396959264939579155127574427368943033792486693832989098844249693182911263060389222939945161050581014052034666122860786154274182630452822572790959822822075649889995749169178098507733112508040342721688136458223962016772043044357860247999931359766850923197843121974928420857775884119156372332051886327197372877246263925372571165646696749999295407390144152704940727799656196754731940403401754907878239315177138886336438282816476965249935767618728712653427144687317173087127722001097939165616492816468805652347311044336669308277874023098569243107076996202609544930658233084465940450752537570858328729223236776821011966479759216172859793724668071883618303103594247489173393989464387470954445749741590242435298671033595531392596563283772434260123774461876217089799393325129457093148124863804807528804370954441183800431220932567052261813733879155437009787679104169105516669307825912914618631056701051684030952320019525980771697181303128567440165050876633434711235673081170182131276966560050945519796387969092842059689989030372441969503316917835647727647059870814681775991914780286402934044875168750424259084655626739124348760604995590102249937636821886170625228792828564869851521465564337433374709618697889457453395648788674206951222256359541365438847746129015046208374082671909263786964619869889646858877482886745733166591598022779811984353111660331083097655972971511705172422588614927825754925455901022749730650894287340935271476401947688039562107425694287318080100342532119162899685572908433876065487675357282681197923580134443026487411964808978730153370679366573151555517883345942402557846252562229692109077949143084940735372705449739037853650621408425805073866206037812762752367645469685761805896021388626443526472045930135793493798179860375473083489449524656825667103337568869922351680011211626643528658092558052111430441932624802493810634241602635071525486774161887215403159481853482866737493475356017394229310295176236120785805679017148834240311608988359562528593159291232561949137121740229583711175071758010530222259680678739360437913377650877183123767145700371599424521673695116871467723272378863806525930722372165654830260320105284426611809074777330361753305851953359620966986149634372539238429201608474066062544863694621464429792891001491256608990789572461018766846133965101986762559516081834847444204331208976123802877824202872138079615680604007324077462802514402092026419756805136503991268637004158960671250947242224121234020573537941714896626805605308092558648666856837006511342265008582433428224209657970623843410384942616137664007653996289308266524418896164479437946607753722327491828224260162062102011670521572637482269323506438415445909142947941307051599531437745286037507095092828270983596652174426777159032776364736090439113741033719113160314863481153661143124998068828271768655863305205367358926796120421045925456322563454367501649389393051053563548724989666366144075509578131305412096700859712119756892306769159301572858051304363827021610316836959027968329241980829787973461278272995251349147262608298448123891550405182208476804567994689994378429159628552379555855013860129419719909869137213342689291625405837354346381275133537712011030073509835755932934719934131121358818367928634965216172109649211544156498710533600027676691127763968626958188289079113848882580898909211134407472817415006205623697173190267065496396397330970757539911143826173610488325702799331866171535592653325764165024089931085274511802633933029470665564596184878210370773119900934979747563987631188679306756530530948387987669030141720250515532679429706056038757579954806297330693920591223601025293611357694381456415666570457510635804471596465320629455325019499459023687000902341873976691470142352691818766666289924864188094751946218471737720436682166809022853380600526679705354286742005430418507418093941394508203458925425588637883780145248993584404020493594734884730597850218039547542581541558580999290877479793950467880767187264707387182926812701616882266720230698707629912179741853473368275437869904315028854685059185269885694718243299890793056538701271405474271016583407158639056214777318255375998255461248833787147095182868133828984799956951205870176086297177081784359239609773379932299034340565868666673871561764247166027643156220060096786772058297915755312370147951137749964379944110793090286623797113019143555851148229215037290345201727854397065937012218655884659543583682831092690027362048261917324798338170045896314766246638008646537943271904678553602836229389779003777673550747419125245803392813778915831574365212668668634178095699713567822593374724998111861558222555923733092011066534868659258848518814210525034519594642048951212753173956130165405685196735446983899941177941837600849633335005102164646975064598152342713437843327934572537857859424594916631357906381533483949129034713057278785564329268464346177925700801851175125227430746452404527448878552685527380917826514018920433092650718855950225647292989863866222856453550907696452175815748506250503452118767003838155484109078141817861908265981937992220979743567315461626175567394739408613450760109974602084171014574661979667712701779285886527717343272867857215886713440792576970890976288959103881436257237805537761235827139212754192668315655036805458787624215315856551431791779909931444872287677875730750535724331300189030530165953052225190923726053338383607370489988147948381858280367260802731140481398188979754436376137228007056911758479842505525025203692880596457248525384115655617778984821525134424854959026347635654488750161096242159724087914883836709999660758468058444595979119033361678803956199710672740930313031688360292585397515122890662825097342097380554682216074250027713767233122793710272516738610288706418437757210112333486505708711799966503816221300562052448559568796424800950359549583530284115869602189647112389396401714726731433597186005686242200260840513877448317367793564804056324753331611898079634886052071292372562351747559304180443266218536314338136160278546642049562441933919682808039417635846925272667482591520496366423283085421388500483647638688683025224790761128341539060950856813780328821816170049486342246280185073062674185926484485476709072950615981118177823502877393703775622934007091702603558957231793038995453746937023192464361536884039571059533402347842385070085160116866333042476893097255245312996562424300216107705547561634507816670475408183675600116540672298305792966919592181066436489482308352257163325533618457151122884156917119487273004826133880047735575660639659606375905314654586377048330139691879950342649257730651223747801063045840634945273000177136186736324359107311545856199840697622250344496660678150547293150459655055100331405309127962589805069777076051298751145350533295583319215602976147430933671989448476967380225211213587924119327745131042210889350011281600422509284649704414381222645202246162202109946694496127809071535773264894391215908208998066944816227632151397381516356911673889705957046153309263705306200552365694815514456167975615742827641845559669095337647522562338091111317236878554716360221671833000288562297259567238904609766849731721035555823566566506813795165035355199178810881089486799109090603818527975634023404558050201786064885319373670985534363916583360631485327832910541056844718245087124076676238442882886510881160302288353225387143948407252023336376958976863632774695626926464790531297095117001589333388725771257102701248587534036129791535111901440111478088217951283207898663783681186096666450045336476199435048453911414317957395495198303152357394076063927583148523324827159024116570950764503083175231347072651130456836969643180805802098793746899450596604436249497128064341468413108026152461708446739824519359750751544944831339070376867341246931741762042713488802940360385205016171068393394294767736057392480744966564880164955707552719396656585509408803550991014711541242461974475300821903503926353202055723183066156632580186653864147470629625252726056595646598812430363885625778400175939086742131286396814703951777220493363487324967978755887371583231946655792665145731980594888361389030124840279012758098993256162394491736169810311475376445708184400498629388418510839118858461290415842734330905785378795741698030796134785216360057450434487624844153617633690840573570712089824355080066250294565639202846938186447597425821371735409188993149269745385594414091240436173136730391743362354503087850614595863522895426901926372639744933884439081308487365241250355235910022273553819897738217621381416178204219569144529152028140799825409911486693964395784013264879542563400520099607048107348577217496597877123802719379758718627780708594618131654951015574147997953039589561287536213609839265642664226981230005210413503241549279802453882070854440457591884996701892169654853777262309946857669564470055947623986737648079405387673293663949408381353846161325428440918978682308261741872896022975020237722358756553035641376521035065995134717898694036130029026011836746543612566881168778274033619341330276455616377965040578058884625871413042465194249419697537460506645516095428780695049175717256494216680005789624028202209262636056556738839169842026744258156964538775887406271375031358684258855632502250718538524856894117397226761843969345762540769485658092072328551547327049750969255782801893643176286042294305620597983522269557015422347518859523710418987621318881213461823425301248995027289111762393540534532027899242126904988628040091451682944149846244698514736060144237122787078653299145422114560157304053429296240316777803601454531526225284949370331937997749721761731860121695338235718108008154196487961487750793364951297127405570520275617223167580844013518555930045440998364446220590600884522216072676686299062105332915287259524293855733707690352423799565079988222003763897874569229952110994341479338381175674414550341239516466081479776107305051381455412016319078947772116928013020646522694110828285300696540880171327752591866134521030699221688959977784068751352267692218393649414668308584925351963151992764571158539523436165928934675317273129665272888033943172072954519947457867974021968639102403687629558130254325626021056672148257832909286300920799967805083662710582741060121219275293799567970551947351867086093361392801802314394697758628652112174769131843051435119916168299610082435544477147666422147317800063448859586028825429226608092368353143511322916685363941161240101966118061214214521719090814066449792302974474657148923147200480140301195250559853644380933278712458061034944323162742959381278995820326960205564523492201753889939345766530733031668357700561761881128623005258920397372646004148344101233884499628049949419985667644593146515160916976285401623561613884593110384378781770025384260629326176621315421378325860059786686991493187394119554896518995656880725165245503913204023211452764416668377767183638885719735884662075246931809068703585524723095482294977617636849934702991913338978728270908098250399398639146247415615524744323089176751481845034548992604960228389722953164919385629494128043554426393928852018480604613644578530561910672633787746000132086539576132683240495777819405087768252884588951359938668682378486201602465071081981197279757753862109030761376876008854790810246267660699169655110580444681251721921496678293240780026295569441400637571030665500984965215907939703357696226330194010377711107564203615172051548711044639515888297171329712444316388650293406332118391551374494046812351320715263236624029077697957024233072304930182433715839225596219411312896397812168256745384003623273362876233459910697362916258202687803856679025573337396798398146330391831041213094693858109316365320887534896555400742470587660389890476135085316429964137941153036046955936206646988567237562034807503067331722071381442909682916257771508332746414048277921259807801121543055485033836564256788823202573116344998418652455418787285136543264312028038299331542822549998316302390138128046287573411767192902629946684705126928486392975567376284438576039539744883884770312189116863862674770771297580750121944080842386549308353504995690330184901223736870728654387649917937999059139766766142421460718364094979122390812553354350848370522129693489416824423561116313723923495053913985333615859794020556959748908283087108765405144904987865076717652464547664397741336717423290261253629873815604401445966862435278254896893714575514590107908888348836909345263620179414742282719923943756973122045577249864057339515816637002647645257672437949233001953234716745724792597481427542044115711314284148812028534149106765800573405640740698167622010337426112361575079713694183007598280364312746026434981144804796491066314007727059189928984488856955380911623959501308236736846806771629856262376743666055749926770511136483463059441658948430077342021097904753665869408454637786108889482326753662579043618246595649124629338980703081723365825414355936128219140636061314268154443619665416304927253661727619341097580081420222406603936499910161515740612793164199826674459416262750853932492102285246628149334692200081017271312173528463035620287082225322956508222478262744130061961914419773419771576007395885346061222306482898338046579868857065776858365123807104637695983566122525353859974325682578624859611014705193048657435477724164783023497828005788426397115040006683755845180440904647671088662048881683036401347869749726588026395947374419237067068360223136316742708320770813761168179865058897170008492378687704479882707782404222229151425151585794721322271535682452020138671203075949730020354887820108423971859535370115103022358859243638298144831565154979662396141813266510517238615774508305179731555678630455014682129256374205012937574327479172326966393898944311556928488690094377905798560968400752728615766814076004056036009294971111576841313793965436064441590682140148780308234949588528810515269912354074504715107438469227066184065699828308187298908259685510220016513717191373138517238083938632356074793653943135322383477228344469012912113341215546362311755891477555111587377587043042844601747516806645620300825880629857141445814955342266670484476806235960160244718711022177891671739712763770612875690320242875626187384649455705846438935595807247515692696527046483168718243153330975127514759754278475395613322022453538631324917808571626303988915830814638398379033878855060502584787490412740950026349658013158060401628373832641203007509842349059883615857412384440826275156426257137438851423727183573952654596932844420867427098180039725790533400055676780562455556450261921638562280509717055249218667915984443824727498211021110830444623471282601294080151604240989222020213794898580393940766438469556500862645396919700050335887000805695928799985068037230880698781211723108895707689338957999812954388984169859398216878877035547499172275879841546332248723012055192363576779513718926704285003539733447964883337911330061544459177430895704791417511538616849424584163124126831706613478497055437224723571359893310196517755658807113677208050589258719228580406385396156118576544792193203992130797659681167406232199562913035708584426574393751692426040350021967322204926304909379949775364998164489173256903009668719090387306423959736916102195140386561608801935037647988607709124372514566164556119709750289614929745648601957420936504558149501714017941725744470903246264819682248902098156861563461804802302358783303225518829440485901750056527950510518491673795171789267625493007631558877665607512690317821660486711146406098652098182875849548971931653490179066585281627741703793517092238978316439149390964967916364129924472639777536716107266085433123493622619263972107923135347801779722566164876664242275901503612718597982826206212865713177746012768212392572194318907361276970100983109281935672808314059784728738166423061042467658649226005532624193487441368705435794841122194492375943753510233792800570920376099589199512172435342288359740093796390796256512424699238439286956410177848545185876890888448593812403229307406472338886281922281144471769154050141793311717543207825866305816693407106384934876925005255426100436280848474681131443192554814364704702709143478364481031031559287897008627420374622529758819880529957502117121723534499264500353790612745638201833935482543160311061944959365647094978343568691793063115702977418132759196536202513891210307060812245923664415809967763385371099889142153450289806379179263777917070960484162770434252822131100049369504382251005366740849437760572230384115627833013736222616396443908715273604091855310613533215301081104598401796734447770353515322741415088935025911481517589750205409427988917577041999558111761037639891568171685589000152131178373689642245086889481659139715096739957527049192829092564353760783931857983509163985232067957195126258579193801820713678907639605470440680161746215738480876569430514066487317596192490575550293740077987694366793678661370711691748419733266779152778409299423037208113058820876910535072911688851577873795022768998915733290005977222265964030682812443643959446583442688086584083876254675089962154447699431451792766743807615441118098106954352221049218749496734039282626803163932908835923991849421405305686534128507901765301633164323664857647494378923354971773626790732596344148336211155260054747154790849270922456568352319193367449767679957526015097726702002211036634299146056717753805653766955096427081248098386654920031495147375753175375491013622674826441233099529506310737673315762250459991885370815601752698257776521526786906836584816680392078714066321387794984696949529365842898407611961666013775609650849821555407122421480902097238902326440339627463710804795072389410747615509855078040946978553384671191881570771342623820029539651106236925659742648868274386897175422224061113260545414587970512738867781073498596171566950468693942699462611906078777672625636124317999561761814774891883859389976008174791877612602500695218059468115503906835794961923319809723349966159723724038695883456082980188967014831638798715045642406549219842605440208919389538943836783681075229458190597697943216149701229508517475049067227707564302427356904424838913896508215198597605647051242041266015721977969648152167811330930096633466703039142074924004855807243986375191239221150795076205680892577415714239259024157897892594592242247469186368630598998410637928028510901178852228988716339030716128362034690708371686135846336663956922389622722315091786363301872243719970697842173604104070586490647926912761042201922296521601738207870428628844565639062198106916714375255925074840916905941351159425089134335187343524161746293030313322922479994537544198888013246744695468774230015457705147026667224183947302003481472662140288749000777792538552356750050419388180390930144061189208977440788361386316891662814983562291081259118515888383072705410918050557039693221312410666707337108374862701124741062821331353458219453647537210719843483905942985240706114562526620046257998790492844907802408663046687773038083288612730962310042386141661432711012801666555182876153074495793777968199962888394185706762401853498439373221483550798990223998172075658599821418008868477424745204279506900638378240072007651249878027877110352630420485171588684793640925164215083445698888000953488920577392817222413020922782860002316997686821854597799040949615163528626541683892240079763243354204069314180566255015951284158290519747470650353574728249456389252859858728196771078306046870754558613677269255848105722190735265279575795949064361415977502272224089130045677735834905465731484903379141935860889660105802067353222570426782565264647688065893444395748118031037871501833254953204657704418840290045006381979305436322034408978333088845422578839528993570122514386492059652989796105715045598248639785331141558052370724304830666051709136194359262572716832545859568920565066559464501394195340646580593484204760317553039885613813410953045042607550852169314098957935061390822898921562070380294317087365587925783417386713250926473477479406274742910420521462452963474234765879340648697960324488113526496396489897506979775082489301332150809329376908686652440761190815205175760338409220158682293925475744582514149359649574974651154314013788638305785589870994449623485888773634662324266840330010442088566257409667489088576358152265274594093278278311932093407516860335657255234103326507696938617623385911303270434820451280491614761577154779585007303131677755814851955673102349130872442657325691876106766756904242065635928620232127651817358391587575303008313943153548574674734712397103579651151237945967274282596635999527044439772890780671481634347156739266144095239994067832539008246369006050422969949926104168678943737895118778832127240888314804431043051659713215423404275828290523835004896217923440647468471049855242377193145002284152737012879592635653598170620449382591050974042197798651459724062934975621385289581293058695623835414485585525351993442867975387705325875860392992184035763256049248413586272221204892899470862497495470724643486980786047809806831842728812065800997213430825232177710533607580636706869724597576357906850314912871663420617662468046677352978332138051736216543577434606421821837910223395849959894941259658486638343196306599583128896713816526746994524458956431839997764277145105638301855114384781175728331749505204807738898782465476012341469142613019059283023749548437133412754726685430129858054927815826561930328093375502619846478426378994304357798044179827769568040321323613761202854077933623564565272401847345768866406674212947759695897948919985500530137061275779623024405550473900019779828014268617679598959975035622467988681419931512916823060592335665434616694566144723910621521453747568326212231221428618652998112815021965340818959318357079644112388855741579026013162167975949339466589270580318524264553163130866961190492914683714119912223490750586629440942387814107168273229149536369002905921178373231913398815419064114218927237837095093946686015883892764345918109147344576866352914429295077630004388404320146367676564874976602989518613981424809404076732305114023133354473580300715160915984797069341172959047082338660804768519570239217645944584600164072782079574476694334535760138100755661864233937126443265985564561243885074696133346854204410263861008329149680343033044121690327017653771655661399270477453672320380132231296898929587262387823137888741087458692041000784825373937528932469721510981485289537716814372432524340207249000898651053552964130164588415267027273479101392180504058546236476538705247879234510033987837606842320839482383633981481587273083927916859981810921565691594986527382162515451575067174512183982797232554294254548925695276958735701890359587378930856721920203601173500477201512732279016329121793314319474829594706215657476444967616221768161946402022962545816356024480178436108466358114912834085887403801409823773497582824762766667431467924721082798644642210580791588736984776068330632350679309257591861634678663177434501225066605739377138119883100157607993465901842019281738655519626565653887985095127012768012037407967289907467874282530805501400863889876427832143053167314688742141720615520883426836002010181210129363620394624852372741272612293300656072108361201237830585538808835987370602491483654384824342539036172168341313606401216506539704099920505066925119606961536277510638503828938598296649302306820174348129581873021487839987586417529917152991090513774542178214531487565205133204481949411028448381544427602844454043724336569639051384998065649321092270524205043162387368419332067408062586328796481451386324786526512177104131026414476274334959342512984959225804554531554227558029015063472632716971224295734384003037957310237308109200931892006949410401581362869996043218128237503248044217156563145134993683555296956617938485183674912228525270532216100998325913893592281218676344334023130524624804186114045518173385771081374041718971096509124799622115034424671039505692088578990422695405915893261718679390934082040414843140458478244419127024867356010835381566780655611906838314174548428176814347205295565522654171345928799484587876380052924929475445879606284884782003453167865492484673946815251730854503889610503764204426648849141592750463924835191604747529119048633394630624377764814954220629431957452896920216347136509506834725886027078510796254669526221945926684283692772018068937521367735878871484978718196239261937790854939386457907062347586248553869285810468994306046902006723540217608651568588144320156704848475124510307235198606225514755615633703287347237636704661434846732502359974807128977605752706439993293494805941597566770737388334877103819234073130339533476042835492336711914811704962467863422226009680959111574981100156175192848031082640754287230865984365523531963769476096434778100672763429256625678527506857973703289515606245760639819649957936405543862964454646266301773971630870836308492983031957282693263149214906662933573279908720986883380418597619440858381172976114261516083151694822963767139724297161772050886238984117949029138138649658963470362731693483740392094171926974445998808959089757643878565342819022302908382956448337813014008710094836161920632748442285666873625489859093747044030583955893825024919278722922949405705115646414161433543636549556643765142374354931664486938976763919547417703373990759622664487853738023834737066612443566939193894759639243074184350809365832723808812808901643903283030637221544614521876291056163518283523477159941441049141094126346133849959548502340901734181743562846328532061725496886004687078543225820310645812464092552211000101424141140380334442607685465767379130660231892861286149243421041240149453690884480279865336267578592009651921796948335685106777117942989464483533371353604142326460190921301118867016260805901297989864559788624730185734543179431338371592199243765790610411207936099827615804594825469408406850288043316269352278792845861676891720116572882513893745088986259599492796900475203745577200335073463087483599637032215290853907965975277897380124982977177938977630692770309848939651338270080892136432717495042099144402603325984836829798328219216615811650640385037463918700891850404903658871290966624706774389399789155356735356873784032256123579151804616332448522839965178948844178934691211469728503405123036307853169844227141131469186132033903055573004237302837929153026079902817153839001894120532514195928564165358483577402550559736633209251532731516270871744759353991672054529204103195808972837194923005212217636686703150344434761629846948520966576231191439942857184828363016404854396082999206166144107423152958905675484719829359589304132948069789676409566599068548672893569518900750274969212814771223022907673535632562380437980249467269111951293152687952045701814164867728641901076090316735760171117912191336630574728329299589370192972817004686531015376109412194780332027710535734611558675125363388180038152606997109075445781029847910105113855593830766505560582113912216263111731358798139610571345815888851064502010491224013419060718549812546559585330462401352168704634748140225290910760179732650152511015186745224693611025746501361026858470329329427647386031277449030656437162252175666840837160048252675795432189374290060463492619364758303909315805309155154267790226913319913213156526205041042059362046010855246073470755456715645942561725532746658387850819416426419542526329646070759372956866141847259351436102432743158562633602525415140756845722489707491434453908386694988503831252381175265352660275981597735042512906105728460150789418593132600296947187948079407483146514359274989941259334374818168064891794113979027291077426459589393385911523294710271087620554392607284331490789206731390693031841959665735639028965583059636621563081147996943702320864476854971693916670692696205753993270397657062407848519488986924941963495556983275974004209381845870938056822225604929512031522776615930326137250239983518350732485178116422643602521006497483599542693972328685454526374141923787995542246924706652505602058448900311310801040647835571607249461627372576328082456033694358139504289178472798747531222442603875841735727735035098914399794417889237213372067716374915079734691978608770194483886933279915161048704887561110934305342564744447835652958029171572400754822676598769122098743288354967913406198366749285149699398348955661323539191857059007812387958346362403388324095253613687845559932554104303660874526081085162080156247617234414692803697747591483925536148017085864096176471343035833805993287232978137270443491503642807012976494985217325210568183302455279555347628270098481650229244237531609178377135344919713601654736715776029640834334057378171127097015305809626163301620722449031345024749281062845165580573066415760044952955326396203354188262686807999968392426341891149839887979175287820862257043828664437249845807234184814751151427033851015777801927596286415295191225626805465933780762878170978798171273653332118410338937790092750570946658542372087873342821338904204848813082333024881169803556496117400265076033404021890874746352469823982664855626385948411781286606486341072725185397980397852155945875598823138084582850560492690173103557472795971157237002787933705136559164895661135976684300253126209990718544763151913316114018905455142528991430458896141734420038578538655412198461999674340438972579771954342815526468320419556599732213378428914544738858108293355369798266918867652322484266542826574795623728242262544293073814987814042735963998255146527577921393382327042712500934640842890261111758486757990366230773012042090912453265479292401034991278357749321618004538180641136947024846507754300120897710692949408431152281980632799100724912064928846027100902088352667483519558433659782902347157050871009527788276486654281111545483064693339104362660999366775690173700563540394262754115339513234492395214399470219279701438622339153626326688339617307751350844585494082190480156344184127801791950426898141951254587600941895126073050769024517472344862089078210914314410289374619775312690596186719721210266600521017527452279899098712747347750258380066547945777399520084282782598302632820555683581371035675596508344191391089129927308118222741492683033707693614119113961808654228003117280574933379602323539744793942953048822294196691314020333351345682800189367579966598241392365454287549160142047270825899530679894524292602724790253884987298649374692478831462915092640603611694637259174799745299842507953996417042338394396222047357546951689028078584743446647197264027283120701147174277343508673691295131684661596827537634457195264867774052402658360197091718060316181568617602102717198861806779354552840246461995037866192717284590664224623368292215051739302045857150403450782657560908167100241019735371844575606702786480216365564444483660946191699744158954927384273301412873913397585805877330771273266319308075942451769261972678563450071370466296356706117650926755231688305628288320089443473644479969752826997071452350941158596074154878800783388155247938223079911327472756560028664607304486971929698510944214986416220928157275907028263967577510055000871671925142904407514331903654037490946744029804799079939876936634313975372294189748569510695369877416867250837819587440741049704831372741870589450906303162864729049626866886976810790907245640136705784453899632617748853253268256054485867172501728658158666818042379252026477791695357805744875001379236569891667895802435081959497597021164240818277401441170124163698854483732010490326773144491455351122726871669406619224528855239783165897312558505024542567157302982997644078959600445085637012930047744491649805494181484028271027013018080878789906187533489427182947276510823980949709403901092215152624836548287373466149715573837094802730429878593483789418830116739918464388789130016425807823382975752999946916059187043772742693800437952579767243385165734403090908717666977063187599465161760119615178841614637293626964099747135100564175605562301081464624681621605396805600987655691990128677523380818162186107656697165150497932214213551738379940031465194838721173457801881768478658652923698100839837704124568368801785131694459603056273980687852119549299618137156323684697838209073624169948967788045715087504058568983484342387319569524496632605355428734915643049981240721063042584640894461852999096367405606557037658467313034683709936270981546498216445464362605202542480335276743962814593381544409947741469568043095412932891479210881105062674830953628642214873866378679709191984943274870369807191249264395891062185394818715439285997120826950439175239067777770001822882455474781271754464880667563850029989471147754161883228421303168017955246605917452243600906802503634124548336676635195372484059595796770297139035240157159624991066253520646163654577580653459013462865721954475897945961678923465950632807829251137474562558189634957713767267173115676377339010988792367500950089651920355728439881321190944765221964330303667782795673492687666754774050952180947913812405274411079020009639319535756731370466017559130332503369437045870871619921476362580270377624121264978302833400195192736931815536789235010757463362707352831096912465964362089915054552520115665893635807019892836032731012735267359875209240751267500104108152006273248034475515704907651409297075741757649307477362244474847128429975835642368039650682875658603489159079780724659561714357097489552527088072961112314354769953121378772423795226812839633391896632799188917846348586152682882609062401622813565535855333371351199134153565881747632628302320067962067729540507830584155474124414013598384755406435821441028802198303902885393054122334828940022640246548283185144055780901128329794622766771671904253722558541901778074438112301859938776636790133971563395333593117438877272804113202517804522991481760545277376233462931399581180075539658475160390080025659872748268526296870185076364904742693401387055836455313530650498042674236039795753985381095414782367336499405560455495271958137596746430527314868145443915415102678887679764526723450462327064512812227929044590881279765059241719355336942067450234121336120523489401126610292687325243378831339960072593896585261459787965494002386285823180092663769919234266499177613148709417677138131490389881013952457432878269102181574642427017702258727508489655542372430880017608258114524440123829387256663512362565401590374066919186573506296603275965210875018878336579307162449390573302133018649258555697183479838714160069366141780986054864448830270892786513246550182960880413127369263828023766926241472603311085023040559374495974206224700867250306604572803386309291350524363392041762010864784014398661277566347122632819768249646284967270807074358456905022905281660102875300476157105921709349630400373641192803388633900094089483469799170544848398729416038893572784533219626611468932966638197498529473189595639886898082363100039771520564746386675693583609373112551074989422776132670452296371875802055094124362325557236783891169839762781949439915028547856869392743343113249025834271068729448816501249858205351588999996169017536010430340366761969807140762003330047998780218570696267353756518264411618750200849510544376106572459659135981388571448510863018658225078262934722539150710080121979807800934439590707471877147291164296155207657745521828457197621890357190602634226364147172131154172408220346316874731261780465116026761183300093633284958877787560498790286293337398536541410161590684842481028715658923851952996508357125487717184757486884425381617494268202473719360499696557707400069963820539429254297269819222342293198635504505948193776785186848397849185777332073174010422887145554519481282850843054250648033867563321568227769572487883455567482960451132620342679679919849805703640277544611007632968110387868858973844876994139448532686561644528687114497318526796625412246680386549804271979199951819662428663849979923345618406715438240154665589324515419974903810446443143026615370519803739835322457226165574548875060961166954660114481173532151493019427669590169360541559872645533669005511882560586556770896427361986174675154138876096867680956053919110528450070058298619444036145724316200750177370819787494895413819602994321630022465042383772610911027040519119323774778189935580906073258892098548547456001807580084740090130619599334667921621289215290491592002332687986673295342629305918157652975399139728800322684951187842443337635681305305830482734029457519249552312431855758101845038356768575210668272235760801757069271284557294421324977684798072032860124253435604147285839148746797317152687981302509289566859059964213212701394830498727061212266703502580114987737660129741996570149505366532599131191622695424750105448246400557772519331203364445527608881103041567059564584177522689218511879966474666758946230687117198915911378548985006458134831469678608879159312812999651924605607749122299610828605052526887648544721084684613602660692838021683396119819615120863378914875595189672547057838981434346605756102147654312971354403909894345673992919548288128447791393184050508851383894901287660286910335967123694820044687956260778818607063990630836448642132580982378435103044773835232045991943383144436619427030910498848633859406745784579794591572055127560804670892075363793156462197489650928221862778219754920964872611583877286009123553996832360001294032972470451046260051369371495258502822310991333482901224383074634504194463042105570519460447126710807853335803249703470250358157151236199635612643801725051769048062136915672132025622746367931096309955727638574998774094949229873899053319247330484703514735641949264261875485198999282629947413637801466322962745580500096625624776509105803555175712155435694092361019761942362942386739455853965763464854866620905021713114066161077314483479287870868062091962144130963443515607994906731270254317823019108796589394501389758453848789298004098841583011329386574257017948411543105500550586163598492009867142258017058089393771924958856108971329620210131826135401983987763043437743691849611637573056305580426808529582694275940918622299061941037261148901424314651750707780365779910459966184085327014280945827734460543500671608223444508723713562577502528534302607951346106653928296647867752784054253320960702996373237840700895858249631292488904447586966941813935705341528442885633918527138913620797883387026960399894654922969049812010472883887508366282058464695358642426123123096742770397257066322200220235354576678471529688431848997097542406741307160217905773046753237593518756544048164660728783780346528582088067812054103966444666158476156104878489656347451782520253675754842918261416880241734970744739629439882392441531736230855289162071506722114777994128455483073610083465254818544496621498077981752250271458762425481204377910556003935492007976300671322569308372644630802972980437248894735402336430998974156595357668226475929924823700387445621309196419610929015678311801035675000625922900802453008356805934478258529440042602036519921298557202072915176960312869935329626390834295521962420681295736898104789793271091916894827897054417630223365120776151305354658448582905692661498545501513271435591061810433917033435300734769588169803893966660753845651606675702869208662065427784154801772053788789592618642637696727168920422008359987060851624984802694770484166428365335982723669535894630523296712580923620613780080564390037426246508777613845240297897187638052917511941618214725270206378977955344504889945606978836704237485409570983963064049830574828143204212822728502405879193900326806629905637959914004909151672218343234175643958033315866235688516674398121803590214325512039219209681042117839726067207133743477635976658950364872670660759329337829859752642072101839260354835924330180660608775684695394371150006071003593606625011229214644251475079481255500118126060731944811284059131070532065936898503598052328370858601417581522812883664846690461896089613126327455190689741570310416418044899719431127158192516480151569563242383529559276385825666513077139743107668426762216082946217148227810481346948553571492268487438123101957012217381956018725242633812105754368790564719316541205794299349251994077499112819145508647940941170992169024423291306345957235547130752343523856392790541022788971355513509743938450677205436571730058695567057795681841080865924112459622522282063626591199718292014395842048643342908315082997567943543435906033323564061599622322196819681211849428485951234260976001003276020382275701299789240428890798730764086109977887022136950126058874029431316738744354076184092750725481826165833348351270444501282884550544796316974555306971736557105577392854169082382166852261142302258264740819324487767333626792011011731182412057757298741366050564770971707925092440891519672452862585006465340030037161257250035048032428091940764682908055910691147657333253122313370462882925551566710035374436544640133241912004433459500678268098753156920883597163387321841060896134154319304181960723834538036640164148695270256900551742258605235089791659070710433066185245078481020515077709074117562281076128390703842810264937679948927729354300847015270795310571502903150645743006850212994177330490834080522672021764889419727979855357560710943413684014326412060128430159633569179307230473802070263126571156256369878833812388993171476197968066693340404748074817659686191774109437584174638992368935159771790826065739475032509424672938996798521186814254105410969158299229358993713606998256247007724242558435766543246139292427167803906778524554838012238605179425324627868604840742422959304354973746778280183778816700840632103410982351748986051290096878201314514531411939259763775725644574198916366951967686427813130435319544787199181066740395239253708140904365152809156002929911732116861047609620679156481989568573582879224270723076473650976249120811094346773480270111174103535344900373779426574212222950446472077454140933423635188620022450049885266710688940899657352231141081229856395885872286991216354787080324593639337900989339584622938272103719040453045506352186549221687125116559593501242093420772887386389193212977285165953254914559032205135467192751484823015792845632706383701522697509151311634193067561127398785036285576708981218174735492178718218690096037452409706279266598404824826419547240213436831746257571264619604593433524028660602429836196622470835605311944447865808118798309648812113147965600545594850930557473862620881485508748980918986927959786615739176933061188430650169380124582078933533306582218779675139638974264666535847094797070677400251053119605218596992562669759789244368182909301519402217137480437181840719669835625318734660628284342281749173420292551427408961841416392737572004169113448683238397645258449014410043606807706565162180987030513556993834863545480913466665752471185194712359561733168552815496801251378319405237596126587372175599991473458415394357562573431040734808937425460735880481213187447853050789548326277250057797181679074353269686158038544400626548627680250897641836854401874697953158437999445883095911257309651999825921677253108760344274152574358112201083399601992103731766669144317520743361616046111935759279145959133416981884029502728755426786903843068932116482487126067338591305940117874203307050785465320174291861845738225156285264573979317493651043220746619968715241446520941356830178465752092828442617197183850368293879119798375715636519301914283381357737080032469359557016795634616410578609753360200287907615948007091550361975532519434250474815812952944855144961382232188941711268685391188689761464827895701925993641252235864946112253293075736442452184241969219324190561780367733137005459943642765974133378687037652301265360473283851896014816735640060369591953575033310601443647545571621428982081099799611967611251948453860481990867250278945429045872585175214474685662578306777026741547315185343862214636933414187329680028924228560089340871068038175842804926341909736754124102958951323760375901796426564771868992665266818223702554482821310602828460360739963752423654483493612260261015178563787464444178764129474854596757357832060324105917472662578306052739129253914569631596052068447107968036842049369909099426343102941910817218760891419543959273366248692162930058084301448567088340289198450175175237816279758884816518067973472476630711703943129489002481571961413030354505803720602482543835319067200800259518904735557642436917021154884441552485002973855549292105672579042229979909375581134013877927095404740877443106687253124234696706208503329425234658095495639712532487792594507052852130690182148076681532426840342819276478224516726246112104165161246077493562830389726330949689366542876427609914300023494700622613199736309450009380406340943892465168218728274810513086897642300499876624759256136696142992801381358313304620987415841157203404039286480656309512657525350805619939306649187435930129661828168034381273744378437957334444448717790010226350290091868551680909641588739351209592965409496421852751124642305596218359645553571645223996859108869347289924450534021717338104134421880176079839742222557205515850171197243549065054561268036518933690723674450191167900601191474838802940690020996265810518082176815972744429498868051183470893759738322270737260670803057500812975048190274169917267173600953188347246201563575861453239640102856028888979761365400367520529206842025533930721035054155315531047137341603380517600587395128207323893252063853398864825671924434000647770670775903559194982108776482098502514835587973510607037628141610520257553117586563248492774386136386662674044722247746112044893059384935393755042673493734465530128432610706520975170466277870247126616999583560895074884440366849980440006888634679960844156945741362188813060462502769877311599945955315947418746997718023978173038495169842135013037442560699844456770774818373715232943168893779646995594559331354574615043272695905203513608630912119328375586983873371765064017811065872420733496360081554466188212783139075906654250131046079372688838602950367859437782990477711804723821248251869056477146100106933151588388899657634099393775259107536326697841565218311128882769521221902582530779293851006189129399825794803921127640401441462473487530400964679351383146599639950427730435169540839197424609004900804560201913426891765946989706006636376244361731918499384256682169074044721668047513987184142302920349834488328006315630234174783019971107599573779377171253242449621186837241683437839846668546040397178475502775717796176699713917340974596274067692146494037492505455545763502938477103192280203609548031940322569914054160543424715714411596797100533216178971037297838265473275996963883284905125204020231143418474017358017565503752657796732628625860755307014649012220569319239728779729837345060534148267996629792599152411885537775106510752251776902323071415059492238323522609149858118814715516463217587821066871427476497212579685832344782911876482282042224179510402018904681811319710979990315858617517976318851697149679015976587675795700132203663382385760029206103606093916205811789223466767043632827994601847322824147174231760562686800381896161644878523714735349999669148966542360313275571447566149116545388523331633859953887840969095725814333659176907011607810847345521959503386411701545782882979737899133971349101130720195039586645252903533518209583476581256159390491214904301672652147851506042024750652126003889587576986059890072852997492471057467538963521671863636321198495684573000764008847246013299956569809925705221913123236257019772727302618134153937400854552023574818869516491750509654031287015595911147935993146718888322779555112477145252541537856530013735598213074874820460600427589253500749587004356546237784553941976498307862400768568275687806262715075539894244957891234285035715266166789164737670794356447568378312606548593189719684813508107469149018637707848820174177160996177449023705564813694028830281175099967634737172317155934290562992084473861594209491055781208839721013648707381638023186898717669043275417348788378151082765039967527679118781413535692133914783679337520197995560722227231341839685407892675619903532946631343086138241106568462649726242812166778148191231030180868270708757607242187702948128795272224798700733199080349364901302325237202315923474496419227586023295658994077221916443895359290566517099577264523163211459767306971155077581024912307345317428280063025622004338333846097976938408085080461342799312661676506912825069007066891605992559153427823041576941847785918895487308557337308670532652874671124985083978260706214407954589809524456799964167081771834793507105493925545990492277031536078691871387238446157029779457547805109111197091423530148003010964272242123430061253248185240391684881486268950350380232405974906996627312841539406876118712839223724518686376675968912835135668738821939035180318786285660601752237673339627530651203685838775056057799717073754378581470662309776088500374262697337887330335169938003272247534671124785984062462287992029414842226512139482821270259066744962527095017005111886820095375272510363967290736913109993608347769512484504575077296814678698645206231636435310051023243703637068291483570578554865323642335383516637309069095402032130881163862027392257170665555525698561200027309108049410842563644026104898264357389670524694891546765542681070551991045385460103521378859982872109577937548211593590351759587344996525058517589361862749429935984738827641193487123609643317591970213844208725776990946089066950259213576890538721485649850822439076392747267433567151439012368264548974425046213853528252142485746041352450651078962795904090043415283346673624188533961027849756163937281402556736284366287967188560050868603699392298459160929839014564097477146117004334804505766006804846569941132211749770267817717783804936847889481003063011597700094504312687002903168532779979679143005877822984226338048100458868258782743317580644708152841119683981193150021226972361055316788009352993953784519353922083215009103006901107610679053806160526976583768558936025590144886238130674956675128717771559777693167425544612583783350640788951707162760610200249739585298352154357533629746226145338235603734472603824748288994281529477250476699793940047099340467939524408816710611872416165170131344577350478240059133676715388608110219569007120685892924679217328103127599781429210930568943075593070853389235147412780463758187001498701104852079484376108030526129369853982140867908796595844759141876474140346276144723526089234411176246340072746496759731445769354207762845222734581954435980799523102660691304581275750879146175826786210092263572834970969069839257302440806297675267327134918410328378414056402161385129350701295870704200311421462699943489816884218132135828243560295286821722694889726319393535465544145827593628055399103355630433847712136409322847125263580349105657906731890087564770649776449294317072218690227840179790382950772808678185667077401866085813575129986194975691812549267931428415924433789805447412111581835790658717489630100765839576154767500921644907809178795690167410046363704175767757870186651180592017281622857096393421531689463927570767084154977009027381849764466342647229066391868492809298944898669942192946162237411088206617634649517903134310761806852534073316368130492829894016705811711188982088314319027761679021254679494059723206239335220532463322675753121194691825450709259169950138479585150787985756939095949324540670386884272481963812026718598126099703553343535819514074972166858371927032200328456384802424005295892831321303269300463041345547650987078774013806648785499394327712949304919625476413354656928552776681833820862986987408557826155306956448445514368087983828651103677789622388686146492435486336597091785742295342746571432961782397922281624468763826108581040416233477284502441787906119557987070369832433630462659009127062482562357141618415756765018653725417625927059137638207443298108302273062992315424373038785014856080030987942614745451743998146950786262601692903013727124581735484952171845049568291251377338678434692606120074355346410594137842129098237194779262752717019278072353909085920221274096183518149586530467264770259262777720264638988838126871851560372961655645023795225333382019538455471726647930265429605800603004641265252799762870208778012449386658004928413361585070654182121291692755884939849869439991630771357550013870296948197123586113899896470440212814427867014073589662147044859677586805379099218403925038075739153334723568819683615658399940101666681790667631026414454298991008666433694732066186838486296606972233653687205367270157333325478003473340423463948449920186976993902166944558709247089320412318895334091361518017232295135781719346477238151182894451223295783367160329060662385981701598174433896329179459547067784512073209064526294468666333666801682164869884142396003521457654541919456902114118722311233262324704623881609312039287650293297364731507691684887900851724489184568815625256590224742234902162300909569033957312617399038964685303920208269330293407531920038965589702162251756371250507249043652536555460706402942989110001914495538911627896616263337111699959496645147766050309584136844167213916959637856938521558121244622073201906260954940075537548307381185346752256772549839776636679932097153140159548536538396005671595455728372960944876944294978776273697053767361565144116816346204083194272123269301500962353772245705673629250528792875203377866199706360416878925463140683039725660633398428026463808244077141158694797870606409669349833796852509132182309576001785232548759915159579706756739635153639427676217283321160324831878868508900023603931257165776160051199634860067900973653522012612532688262319965061577477565374591692268173194593469707719729135455046524267965766839162984672563362190851910313315042452439716499516045526452171428442858668260463167884995877253136096905783767608875662977158064957395344943869090300361617097657832689100967320578676710493242821676194674287974089112183813488123008889106113454062797839127355885359776743199611204783771673193801787371201698590901458778492235124296136754542402557957607887565968880951643614195926982496008605546169940825748835752307198586438504277867149304858660214636935643480013129900703600786086266310193973146027952275174011233499061379458075419039861319243641682647207739729531405650292166897978790900503681226065882057915555478224321809981389582564975910424679213890174412468234308251341248023235934787122591475821222822100619601986490897870420386326970678105206498110426938163765447617299049947646511977882772747944741258436082226714743445960404313632939476392080215063232967802257359522066966286125709362043201373737461676670173716495854543490012236841997192032698182978951469192913909471910640359430900312365837025842824066894518809382708090894500616041552042339744165416305480966761975373487450915706021034401583386012406669259754259935967125838114859257095106148080427534048042616412976375597279959298676509317609088321386247425698619038800373461207725296259337672998527790880105804292066032339487031716523307830061537727611819043445055405533776475948159818084908874992756611254184732091557539683642981685088322248134788489519461270547984937487391354745753962556335554642725464657157671518742398376234511102769114416573430611843044562940706713948065045280216089238636765884778664502222216859043081547484716741915180463726531224129059835040175651160640793702389107216231102832058487757262608526033497274650459990530435545442402926904763522191562669502942859712223060125522782310876409807237588049235711326719207722000267497438440627863571263725115645825865284874402206315820233314501415215195127559768013603018459221606484466765551750886891316549016741324025612184699464084386104050045831896261144324631723092879489500062227053867256838903159816788368896463674207016728216780209253755149162322700040708491810343369111328311990071166546679272432236481906144721749726893483771503329646962400275644132761337783926644995384349363594885667185680729659929450846378981721728487018676704190322674848587850014292485452251232079543362279630482372890815835832346002465494195646159081928726251276279076949064641308612314100562002964899240433901695725891976832116304947427130186194257215880265645064789246857643744731948768240121035781234240900882067550478192177091395847881688750714081519402377480409385385358548757234155450254536831765602296069155129052358984428480337296756355703626516804463354941942492375468773680888456340205910401088564859235751790189093699782682929702880307091471586437522551467924702149141819438351737674515808288390687450738093291954922116360643063413192810380520229658101221624245542261470499242629830786251866201291163210103669658481055093069907997430982873591577501412040507031263278809845073547116813616110868375929490067104955784996938787143794405104330416064964510930673894567382703822435087374389723655870135027462301339359272026984557592797115286571746218712618521418405971109182771983571773906895763191691179518254260203248725914079560728224113344283858748376321095992413126151400191565551047518619821134104904639948835031057428470831715627377361435441112357249061750633440494453725446287932646567652780864082420970807767376027504588178870484712749024653813762494172883208775216760427413211232837791312958143547854852211258855976416065057513176691347250920167569649631356963707456604072770271588358157097699332871435879660757335408824042458053704799265119711095160369578825735504597898597996104466148853712914325388495502723280374104449504898771531408640490356075527543336047057461655536365064389430735545538675579221175022763642744235080368399431042560283367787405066842382864174072405209932913455001626353660757521012523009174923057616556280456578151073727209787194448529806096214694823728351239816920620175173068902943384578988750411309768448576526208453874569496489415714863333090695681030241964483800492605587253046133017604823391614754731537534718789110553103790979394511751403125558730781504626043389543524363262208895814809253248185702271760695516692992118671629970055987378441186145291356366407191631533661094221137467862937503368806400301919052589559032398130451881852799253176988069311324392419572474774769839292607163987682185952721620705893958035319362871328157812157887571895354504070939969987911725627805871769981805161412556283359721863824941156690480119021606690169361386616193763811915064430243391999364327754956859076746039491123734137462922622897035500015249596666940078712473282002008976899287283718496166597869272789683451856646996780612884006850275037633728007862646508820733764850121801015668870055185690243564283208567312514106161542924076944567335087557767988067144500106666280361279246153279340812156041946028709250789875477656277454743538824685866412597966904772705611840749077417975249978946121163145768687783104056520757471858881425458173056138558709955086907731994877592489134563254628087296120159619175497042776079188030631132930637500473386998533982713479147528937917615684659979893207196207493218840479551463623123638332817602275846875759396678910554290824840796128392877784854643874305652021560666355204077092418185237857556495278476602016942910284707478642640530283531201642117786119427892296955677862561037238190198917797447423702305823697833092976483087540409994064536997479633400294986149637328571935017046271067158474226696815831253799514980402043141414057688104865658953964997332610016724549796175724102559152954415782473274218065816089096353166659517493546423834590055098188443573483694198458790484892154861157960719981442145317072327073566999274414424510569548155589063996871940475281488833578972134509843864198032029552631706950791068815593882494325410990368894312976936809314470764379965614691678071581711771149582962399529073433973014868994405351281873970240080140404966049975826088287622916172527722679410841748260561718257498889547638691397340499897558497340994189159580823144046953343067726863720140560900605117831136613904399823919591179683806934088954436128195486021825390118121865303833856538590415802720755149861671363728647478233274433429520192688894907181736930838183937576670440748627072039013195905962524932495445980452291342154041881187310654251140809931139143520998780376241614442233289803824271371411965088390068181039472417943181672736182031101374493616909775715263564100425757516509445497274373465637660490025169407730907315294484722692987866759322098913680506907797811677076982093288680056887958583739263818731029325855144724001367725841013547809916068456798471699637737823930999685266780103934284014196346293957510713839884311823393051337515659058675992076303828070898063635961899023244226975127566594978647054097538754784588250319245485813539864831818387406308906616816817549773352904358253697077544001552253049013953780251926840072233634948724425513127420783051862839697211537657674099851839564576137589237549279794864270100659146199427718999077058428636642496134052322559732271427815213878717994562198178261271958211545772646214791163209502818922539862462901192490306149030230733042643242275429304155667838672251311869540668020500583846858636692887125028509057702917945626310010343711263478576864622238911953496806378767597714522645741892002822985578915325011396981914928065489387301269282502712115108379046508084612840179171519350423133381182194909282972809398836049686432139011738129224085776434638896753470628516255901574648610606097044598899797736208810696099291089926440771744272220765893912484449659067987525030568696566260131990478534046440547122376685725663105410545340440119847442617370207679210890200772900554568678308741165173594095403882192622966967095182008011203040913198287360673298584395144353321787009421618082006759249323507466008063422768289335271934831877155266292897816451055542218559203984316791099181348911017871209632355658151534799079189567936059226882747649139379222159852250036976055868766394583563182830696318417206486409730057061123147105433799426629277450930811472739887316273092721095672536469912554263871565744055403657616126047197035561070607200546831998194941026679530847693502543050637812293184168719645490736528785880048096860137066300094011587421255595123446273418653027400631802121653794064333449968169470814211689441687709020928455351199618640946433183306225276967846618713301923076245766697185173738030122862461747650630633130089570518605160855501387434937490711495392247883627495378680782535314131932134626507988205597897432564996396315137277833197435591225660991192186826447611401073463053258411041854896449066311995399874048073284555498960132679926109936597924154539545112483320581828811993337496994023533637553940419771715288829507281067718365747453708070213122428743049751521891516738132317336599129328830786329929022386125358161973488753745748506350310418785421706736741029790368071740657755091971197979854774124664000619619663146316032159294299167188604650975215514953361187748992171476589860991358998420833117619832998120161319235774313517334160754584940922977426865418115499519324576700418859679036490432940101054059765319415424498761297726449100644284866441977711433110657580166882636562199266067886374570864308461924545328648753845400698094593251891224936202561580913952732207952338388772032535679784435837559949378787071211291631045888773844687226006441901668149005399527116103022320194653873853983967840788522389950855335301759538745946782934605631972336034493040616308114527956949749995721556014976757380384075711005481393253371345860984746637172755527218384200818502004926073366939258354938435404265311180978627239438087301968258254671020756989994913991220447452480414915564294769760765483330452451361276332215122700194021411649751812367313752686242950116619742185791360480236897000322798496490732968909503725394361921546802550073291511450573006916625962062365622579193428718535527251387848723576640214715499772046849264293475851036916277380828345084619781244931348933866534686976175213840574218248437081369979051511007960906197297162540427725382575269410672216383142169935801367275252483119232537120079465240580790416899620185942333069714957124550343724700495576876218645601230334432804407878983047191320320927213986950457233195244393527063479509144121763548138493322483707432961258003126224623178017190337782888985315624868928503183898670243950216213640166500574477813151348222722288600758693306969270651299678256823547523999230311713709546067182568918678257894037315905584818351355655126312315959057770178150695614790476656885268409733927831418098545471999681436095394636283330365689983340452070493867627235423172871464991019710494150011930963406779293499654740332190595718131542915712032378330817376490322147037366813942366929749701294995721511435662640897216503830875498775005604095260378958605394523440691894822202389561562401648681826014681423818716373568992287339890552127877365855864122537645971258777797385098354624650913510681845271353933950278076480091426072596374975322240206076044199828313923542495620232805536525764559021207762751574133563962035521881846789105042817639040311298534313740877576431332348593836346182296764176740326611529053106972185993005111520289212249469656626424370439343528682495125203052664162743116762953327682323435764008993509057121246701026349351175919676389029131088627685123333389228221360684036818614034085959726262105289301217945619444451608257512274847233734132992383297967640482406973830971475905218123569223568635591610233252613161553823877666113288334300421082955391976792923221378319654857690457725200422765340927708610468300170656686341330374263726208986167837083909345624874505066140644060332485732352499203495165116138118819192080787334594758391258256409499387435344797039484850223124749001011808921145590331447312351654501074654525248289651966151825184879727399650881665053033022222023154914358884351362849254079077389478310586544419913807621461644079736285682378877631394213171898182469624369982432164787347259968364149751807790630441316554670239160523900794825319657262092936337925928528723713878496918076006424933872836547810082893071466450577307140261536702069044549494357882971194810426371503639658590068196400399783410942623908877659982671812233789716305712543307621682764163143600058493960729072171044054154451809727692132769804088526072417964796422184060730194514748632337191919431184963303989757604269968715784498762590994007306709599036411267647271913391743019446573487235328170459408553171444801402471165193177921353994165635139813264121143184795648005816556271131092470838128705791439168492879566928183613416161616133137506731436461618418677957396856910876379550372505258879397505766171022972439863455892231797413061611503941800548284628260249032808135038428437452531728494529543355326638303874460615324250041422883999974569976241032225833731955810532988968192832222361812850362906509326817282393058581382333644596493383242240516082131542694372937273727042090302682811583429086132918776097025579823085941872661106281525711692222397044665327281614024012181230654286748466345295576028712723200235005069427665846928153772073137327762826473913062217676927105812537396653272202585581439212299643931800557372183698292282703186349152630466184016545039224242266954854918177247452933971831023553906530623072935645144382456994656450333986063981716364378749046295406847697587570870021463666634507474418223743059351859590532560772718842472151488069228551400084950820618155691781248794339808624653753510276211273494310467174755905601727661104053895005218777391518040868049357549823087970970273627250794600228622495130052025399656583321578507785499755794032191064054126482580284742530380240143510774506996826714122966548605071338068049401284991048112024593565551500169140605174376622006497081137196801120771750665193023494878016800047651193211539505117920286577881402766108779668267587782047405296906814165004668077349291526180620306861086634215601114967724517346464242459963172273798695276701469397862042373555780660405786255813854968678782979485200327736934071546992558359820133843390634156335155514553145900702503496955229198337535618521119969231549097535204787471474258598066727924819625534285897050202498929804891201215730989338372952967104276166017555741852807054424890206843087903669264878211069866254285197821527416223308217024510851913288514997346500950560691062810968544924539773183372334414393858937104779966344337796098637301043473766833963925589015267575922053281275745192680210873261373453132902441800070270502409203469521394478708679259019208034167038122063701891592978756661164023633954202998107941783221825306136574629877249878627596960181868993491265650421456689290630408319657591191948508155100273577234232821863124502849211119244561922888694059250770102536495952128956120850453364607357043025151849109132515119245138258234062275700509182396922905813680500507597806662426685271563908869742598211996337909927933193141499379617829314383698294855446873175461328949348535334021021810487215452450557076483948592912410495353589914396336639896496006711486594539561569985242661931847307796657081519212578259666848182148632638922245533827773198863727337245337945954661451893625496717466761766466203293016547480925527596605453075079155765242489114560826075973558864597224454510465112834704697423478343355402471053466147341756374941039731804537397452827450722217728424807511349904146075225122154040819101362659664603653954687952659856718132640094667119686774519839285103133327404447255101032721893616759878098038096571322225427611124382547005248762456751785908993175192066538494627498502079986591905603906586192170406191285356293119749530049115040496554576097506301723558646584632160500557662312683443018154513629119200336793437288389750087552183218902472323993613209991517811351953255773431768699950126103791590950812824974678663011513194140924181138032581503373136410298749761178396742080782552662220841630700126182535106516537230741868129020632005328513800182544074297588574859394316734838026129000387794185091457688500755833182144694339622223895416622404188016951375232466711080503095780183806474316586470427026601952906811557840406691327441339299993836172311807346829769280237276154958312535237253508692797157272707666419601757891436626598534525226176750195690637819958489870838169437290236824934070155056230852784900475610416054225878257162876458754572665801821211955901892752939314499552841665592445700539585160492409364952088805338187628399849103225961309735633710484368989242727329657337962175695652291892584610014308304081437249072619139079706149877941217104804008559171452202414512374718992145694236985528849841072379713073910329645363075421013747441996326084731765061126491207330724613648559159484481490345149052841089773886072288998837373262756733558806355470408946004596034059115676668678019581318103356802988988326934195751862671227113917694900147739592877743113078306669226808924825826566061450200016636721466344576143569526565389746000246708627195133297850795286671236063670280020453185052454406828601302837783354823271468042255687671256424394688656843017956342571406989621317728584788109491288154010522894679109650156073886021323907675209064512714023311052813272965191053101853079358126882845223321382435343246834647954361149755350817188598266391062922713343461549519055582744658917031538485591292590142565750343233662691897299620173298731517176045306631680702457751066862767376570138401146601331959223422435810169977221643792465545115894956523009588967036862992726065938195551088913498204099792505881890800206841965310867654731300485032824241139361529334127356124260553562683719403082665024321061344357926987849699915267816145287277620650023411249603684443737323172527077545902682116096528171640838258993072775556523272022273823448274984807991390867351348818830364111186414306219393400894805492597642868925502739907118439699209909994275220688604609747658518366668273555183210976338444315942075910939700002739203617158720459706015366125908769992455518653178003843128002829680242342916927782894515274991561924641182061791943739509419837314235581040811220774272941573612197522444945074430702352563471094548994733238654878305444865978892455759109367195773803376054003943740289623705792346014773237409534012518529982116694826603544148319957555206361234012741927888513618778298039395487399117113668568347761407262711708248395718404239464784282663817720737069819963220262181392454496430125474857058930852807950144936453434942633036667729534286338202346007203288216711572362977966908999757481043030796770142183080487108707215507436364265714922489271256890090359463090096195851844634809723039658317831489234446983236059411189351095556865824824950501602062398933339478690687697557399872548036314538990250676605814063680913200287140612354524155393145682296988027974598967391954164665691288818216660987499235833725511464247854819775843224971022028994995061355109213916453823953044236319126790516423536845217090208864488233691855738255246623604841710029620385966591850014402345365362632455896092822665778752147618206532613192208960635247974886911684827705291071399030135079286639558042751705457133515243178097691015166064758671788094096386516225276750559971189939232610216690572779100136410640214198655952915645475439010914305933921747785656309808594068753703608390871377438340206797329491567994871374912291180607566326649920466963439085860466864923863830514296996643514837967624620976792072974698759816915724746936864976458578137397434630274734688821696813076464524414240099252777062718389601637748433057404826500001373657802868259996189198237260222131092356804915071239721550875108830671276847196380482529824790046881962987241377419298952451458212829529394962526260114287276160942196999690281812108792300762180914915722001239742098294227251278733582481629545875085015429027615039752926971969400860899261713961056268406241544949184868173091883752415525740566782932622722085291593790415457688112416579683492497231503343109174036974831216406866098251092072882674532121478937741111343809844259335261868175544417849138055772288749546315968857655374534817057663148968888422685941143543527751821838897999427228651665148299702085580082557536515047891974889930019015175202126297940997819619372291452215430808201315378711230383912213919945233908764408859330864941381055936252332686847570771659446295460707578695726001835279827187342749965327251170326750240163056380090650798614005840557110699406390912297960296916576534850450057171059374310605396514872920157348837393107251495696019952850218917493557933837067506758319483373372140497430964693152135196763056997800490263182812095127213767624168998353281240094914106341717093175329745372709535296339347392541510296822163222671614459660591913010338148001508549356745534312666531011066962833576822218561025925960212032844585824005705168429866091510041100179220885593467850583659984988743837777799518666437154134450572138982033611420228546834678003280280385071264061640713904209723601033417311103635530024061747377397125159456207287992476436459587757812663333347808184414973451073612888942222266365272140685793418002150804298387057720064320888721833009397508424773929111919257337776405452098326412825655005230351871509561426663780329812628234139312153392166381472562315439474441199919374044907918649547616818848690031162632598722236201040436149061056214638634424991214311919248254253395585827337104788459382098483898969177660409059071377560723179271913243681542671226767520728750767355946553749478038610947876524990585488124577126962541265232706796179615389178782498818940176368534407275315497341317728027948833208287227394586490754757507105649939239071597564398898887944689246276166621316052635057756386926185719167664187455588146182378766355121263548101407548050892117583690227149245256598067790741805737999409520025914917235235086498520898939316929145764881878486482914398415931119428473959453357040950250321527702504436365636887944220122023494150963707217132834536861485078472778093341713490483125893293232346222169143737540674444853407704268963691330202029202298653774078014784838903434036993977032117617763829163952291104082469021396744367532253216768689889262744939377717232435754606859774382846103486948062431062959175775075787860409947286467955191666401194975284690794686034255582609423904560387132211945458251834711380385972129772681003504765165408752132323828412036775680904334046582475650557106794532053223777041363772046146523809119200747226629756024740800388622958604949754073864474900411883702772657933002867403571906032113662194673330283068835008487157738420470832954207419758171550409776716873519806035567638088813736560020688816996716863824303475960080776861708679789496432972591892384544548656496990749078681673919080849048323223436079305444072614554119432632618722874066996882857011589190612738469552418668334444873266508551266913154313115308052127255787156140813285401919197863022085868582227949615422902444444098236277736434620065556001109280692061315651062221111674032625381988337845962669495298821942483277238984138521137251866156763523595045755387985922730423844715658575877503275696731570976335303989888578531707428097965088640554143350003607779443292056851560377342427204296448408363134339531879471849776704689556836276363221068534017997436905514916294877108123479544343774169720676040949644170457101704734267190220910799542776426128820132501029068226629223411222566334998675975875655360465224443943496113882881758091871760779804346539458806610118832424489448306626310363000787665834009684942925061472875663599332401504431064699657345386156710025464123119104302670554709586828187818004466299147238026626405416746497233189123081959426373153528826209409224035209897599338976426259006411002150256476219503107355978721015927654045723165283433860978120445105979128897547603717519547142129789837948634251198361877965299312591932299016752031642584801566352169353869340922084427898773158537104479202089590438532753715169339429674486944663280504726793881937762161679559271686926180942674707205752343666991712715342074997684643354305095802546086583434474562733323512613553973753152007051979968514120832544151324362274599683481342222776511218561132801768373239467856189864547462143785464996525189049700365700734023972703009943958467183119762831931156196872149968107116434189048563867680200511497831789433482134801924158030042805091506749985325676736444812672285818057875416143379942701534389101014316980122346335843936896458693138526940177823700011366368815975755926524264822800600673628444604060792193913158938769871577620752346969566753386539908774966556558645791118160042104163409749474989262438563249649405981002098380622532416564569603751814083564437571823962243926758795731946633634146589345350952319785396508458344674471796273263779458183892810254631083482243359432788200132627014245212056048537013206037634480647648845708767544540584063237133055261794504783182268829884983477555188991190309447835258785677361623798424485638325001212853207470490237899563124745128875777624799190722677217002781298559540447491362192981625053325916226160471774734451527177474313813705630598618233759633754163071030284483895793621188834213591311392786802000254843523257205539398054957812722563725045587865003582591174377551876485649684873076818230073782254379764819027227803535781828700686700425469107479517037619208461730699189319902969223563905143752016696585024443070607938093241271760533044245268446066683093793352123636953170201872208178323325407772151034014616998142859988588076214987823797533138384398849056202237188500103812721014385397484598109858433222234583996677295500129021087191672388973341207947898138388252883615629494004565659096478801272914853994873216155532102339201665338120953807202289122389594535971073975857538646164740854891839111530662546768240809905503498365281639666519380048127728325171737942258717662553449416588179796740625264685344714369567856536596641647539063849030967576666824349383912638721251663745757751146037245078492679538353925447315548039997135967180330084815818615252028768693078860304945507875984637742747879875335926059914910835292571605033572188367435925844842837133636983588847736124184033078937152547303533726532120244405353590830027869794816937490161179321069204496167612838100394482451797814629105368235107939199078059314081858366612396624571394640891083311688538196782298500068383201153028717415622338942160045701109353810587837663976599021439052168444201899598183069370576736358322245411910014560706035436894873031624449371541671513987325671459167971778143002214091099962251894747823127210468289448281467966690513522444611267188519615238674021107949896251182355019399285663825566667220901673624961579594258603574776346257086373918353027744217819280727373747985342802627022186775929645362158681584632193575773587189547629548846041447819890260961977177775067591872067381265812515597384112809798986424626888098630141012466010104945740339709863126374529391127218328633589343179485693203212593303845315695505709610790287064797351413915076859264579626533250761938688314235198959011525871346870978589536098438267442859487475403847004848373147691664616867798234005759314946928953274578103785841708198950154422642997080876828050844321970532951639782326995167519938544039850402857261094347905548428776450639610672141814254577255907616020366171449131190338284401295666728218539662078011004200973257041593236159755043619189644891882379774313561172243174812391819662039642101891876347597668758870859095553745682212984984252738288169240096070777976650664580592807710545634015494613991514001158974921326077854465712136849135254134508693640278340885039688157931074040335979180918708542830403421873864800472477552970560247406940775893217311262719972826400913821328203490619420614111797783487039606453058692035984075875274942174639961802481500606642588479714892807676661882155026770418490171428156314791982156086542544579096936365807117831757217117389590174267097599798722815592299997774116265848200393253573774438362648915118509739054953849342671090432320336375614040593230741228412426735075225110259878793911212798512085804680948071888011003672143508605357201308892332970840062428564055019289510886238575081940463386627083479935506813580747973979544863567599153070405338184992590041696608624221285571592773756875084561255880949916980119922202369610084627967130843120290173872446085909073129944609553244166080063318637756848731266898932153407701180687765373731803329024818494049673235788270280185006286703473223695975342011701925174091196357965522150142698680517530708830344786852444071198804439981739106189250133763474735227737164633075964675216280282720725406307786889417745832082451938552472377259449955199591860158265993338020793989479360048636824996882354863259180570437212612332198322639278581853021836990558989094274746536920385439947064346352368299561571091451113174391925561737812938758046952995144909545770548435668377523945473433241971795740622351745874021619180353694751101888391607016685858231191088597147911174040681853515829819027430738004535498050412904163949708602478174333262643834520314498079841823762358869679839331718165045636908494774963253367499647735152321204881395761887610356085373411993229136943004420999644061784540874759940579227121010026474451742227276445530009023425766485029195454753970159268836278030612636390301235595095339344091486812628547409279703036479817930220746668439670214137058942309997897828243398208658030178042580399286738744231612737851265060984041524978512527538419892518912842672733527533047954124785746892245591912755647168497826617806254047119342616481796629515729391460221579489260854629215149098954389315038450434859240475202347234860652920391512998817026754293063582844039310098356841054618017592355842543373254971995841293393788267601870790613758479659249661434474400132895085598372668046904965442924978956268274655012398580673205499420861889377476584392327668069655151272679537662447781641261436918715202894992394469872530180253723787511028076854848710780464285528448528343946201124782422678696887542710746255872310535061057934268091758830161684428323165935418628983754668636116919590208566752241290290091495754347897577809910245637977782275227231255581809699387325772507155731396971374541929838784180986784748581270616099327246977241010032650040508162786998203798647745057722012510338826292049177815419502899129622266990144932125735496662248618913366464741638968369140558507036395169370782161848282829133286461315749731362554047122641800710586396642282585124960678869223559611959251198579824189804357462969410526351209188113516789756459726691405324625612690024134037408335563855571443311171030277440219577648222706653523783584393674191595548002213182709511857327384855364140117219120726243609684088430537006001739518214001614639133322265664334126153946887592947467938810852570459065480968096762275024199484766655193875784459497755071162303123703434541463703553804623923840097461402864972438792326662265050672172610536523600670217778806036841107533460316229661909900230504117056882864876833388850948711810254046999287128213839297440567921022924268366880152278268095007875928224995297077583813709305587782573362705504288014411291156640371190794269139346065821830038447504807051349623164968001113050626242670647614010527313013770233758587992733034885363805414699894713542564695470332045675721987434560412491364442209854980663434572666557690472023788347080004398761157586765426712445351061495730002226110158558672083925542536012062538867128341481878076311989615979241054551267556363948081267180457365282711685547565611663168105634698550567111305325016699402048666027366392692726037978214906200729730088873898948345404123873929697291198693652364673064209609707738000411821564442529673140848838311043840051288580370182922089650266290968576835129720738193941138124769975758859662355341983794262330730406013010145958510354316898989936333260504650087823194211866652039422887118512710312918252127430283451554616645092935181432595234838336227658444000000483957112472796825859610516718713326622611510861701779530328710992258675795046420655822461132873814596848323117765048803083954788388691745130488795786041389112519534927029802226598551378758639272305668137339815018771686935853424733967431406452058016934590181622515271253584902103224928150654307358641920643417220408276394182194933370638959322356983709866851087283620353693139624369309785434834605575618769488437147903008755528289650821035136637522097469325662510900856113361828379721033152844565253290969569423023100059323176519177291856851002224461310672881655004045333965161182156193147199867406550520269070896688403466832061878235457952013426465693138019084237471923073672801404699812585221065226850532662965756039020690006539287040037908506194328379596003196654629531094723585132975501516155397300468730354995633215816023279841075488004403567174515854626151794687295653865806223001582414755221215161927072172540225880829679815847132776201355913217624414577620298105472391375786016457484646404839676100357523424532113919642303643222192511898543979464056289400164798893959268649280327240986502472922856694410813684059207804899537378001217290604270504416304483470125462691536008442990386774315400222477356179066669750595932364024674320055364626375912423601748372739351444594860270210350353137094501682084644655246492879542499438563143059831817447785172089372248855968381255839258534130638978727792461971577820087039220158488040703230504473719591731378637850109080524172334146794950605430832981123639751234782160155806599238815934899678590001785235254835627679099029259751125973808930734074223004580155642119418385944983003921512265861149194602662293735360744767750129430920023434637743297103399692339357938461420400035982095925312302965136563359958571127834252959556730271278278298878205458692155895868704690223452858620930615906131878918370084663917806185388795963295757812746598502501543864197537535219267843184347121398561796363415944882026039880038920012711130541491134521343694154755874618128695098864656600847379351512931050024390201775916563098719566899245202015849607792528265577184640388692918928886792214565169070643329023996276725869862181896238476659494270154714136278731344572873300424822126322601566850153591133249011388035229048922860030865635787615426190655646329229145642965281978021682901072894987083854048808155678029102054639272992487426371271806188832368480543794991627408995090468901894727988135074578867061158068431271968623181032498628926728668970826947759244205452988812475025247513113190439295639287502803944388846799640559663421499314452091795952489371624737673780654617423702079844835675094999827526770031378845256469348339397784091130621581476887065830619614691795340136573129230054243681161673166563887901002441792054255637378669709840137493766736695251935264223186105428948898472262370351824812551344176239463736169554749682411969616569583789478415378346011610339669654282959751185414987404143551821532750690736685447259863106528747584269081857253776522338905182874684373387357047481221915103411612609217499193335990528491956058292592010751235937692178947744837805782300203858008993682537512345476264707196895164774879590971608518852015255345726474910263332804532034553233037278836157714151908296219451563434321226742354813410942141166466842355049921259714259423780198597148232602687750625551911836527165595639351285567252598694140521462541992264299319878651768538557321695261296868605676314606623910800360779103117795579913791870032618110817007823889625462681508346811433931741587678202067919100828308437121569092568094874496089183144137721940032875274397325991129303061335993426166060970915335129006580943045306316596727789908974583717240370156896756667479353741701150651191840435765349887832518558381575572523474485140613088173469357897821848235967632266012934391052014154452171543041341569906584089255191263933838161987711634473170486467220593828603030994196078235133593481744859801535581771674500353335872353931218397384737351372571119471810672629026714434939552305523539801838068758792603327925245957012068431281417437998854890398612050094040088744909524275794022912837599113784661238433882483868675957424958162386831572022223163208518312910870300845253780002785814884355544273261834901812915391958257687943596819520542935606666901814219937294152673835039923671419141616935574472828808497537085746728867401729952392166653243113418557081809327356390698436900230278228442169217458364406072170395244897955887965825373585032476747278850933746299080418776073640888613027367460393742548637871490589565993399776443987459394892986168791742746579723861848307745703092453528007948683214509678003551060459752733826260531991492499456105867289701643637590847075749194837860341717038726724905089383320422724185020031591441231565475405070913210087501586015325264418178106253279025460292188852501156233517421426506773541157790275700992511018839587223348526995651690803824143365925391804217112108027027470392127050854652153342356187986155585316625281506761037449028101016440325554171713943525515125735855290373643572728479106527260158621605619929808080252326744262679232377863766176849664519370735794840225339623853228652091854080237865279032377435217631219759018081735569294202811806158220522486587646135737626390759594359763245869858875883161573913250641225314951901324388698998171684238294211247017355323822331127719089621168643573254390045929755898602875784827302933668566573501305033716218475702163631686684800644323369897662674267697342245827282587812153556588857184407904038608745351278901090627450506767569254752016591744668038467443303838397509028740702808364364553812611154589372209304004724895416521323216640556685595797551061863787692387396140367708779187290991169252780133687405309849964817793726539624265495876089521113690343880992354714947346940096358605979856368475873711993753692609760832368016747236522389873308688847709783729853425090531691135485462384447463278894675410059480135980552327264991899794156805222018241630982755957757494146031421720460132132594802695897138274902384847716905995132287962225195785662739180731854647019399655167316846485056065465774064215707496800630343277536341995175869488737041339584505446169840680818886274160174506551709985181302938304106102714109920146589624232346743196657569602607596878131532751962061869038717547809317411918291830300152795780977725052940088967490095748731794935265305864561237552248678852884052563528872773942549557449619790507677167220153306500270828739578350402216307800473270855124091097428438319510537981978663938783386740254491084112870785504157631533045030308744444305777739693426833931407344008621879696589322742408476909252676514419954243513364443472368842286572303175324497317500805705773651354278572135936383561829294271133780610463964949259767219246728984062351911511665127529995628159084619301501393121425543851431045273237798474370040059065738259880081639158846380343369204508678102482090651393377652736153141918926918882747175508679436629838296828548112635028181991002461387593211920340287029496848033012128778021003021602036114778470765323974464159331606474740649058047114894648207537474706566782258004697509119719747487005120145702183401745275580865117936072169338572907656761641760613754500235568738028116801122020546053324632992377132834647561295954874903708968344931920631185471030084729888741493793850478640585790871388451919737243950010112366261495758608755910679201981141895328432979059460552498051163244444497747208523069837147836942548485038541972799591119398096615414417082919334555044834928975161135780666094712039447509479910066817081206324960674750698992673359491340002104222582359148020547921029704180491102956996983680360443993304739825654665678109520852874559052407738401868515889292639209356151583307177086505253114276111834122162538953602274494515422154546950950895695802930035793262762991603733147892770633750486638729000626846463730798582834155192974414104250233564161303252736073663290676221542461817736804393865762182608539461528599092341679964166326036690025416087950018975991011289622646876407930430654716683031039968170561187154836170063875012326932935623506994339668331933976881940176005680563439285292593082765121661573253015490026001651147011446411425056090851697498053790223875167746092563077437047305838649834376594782944833058996880882984985148516703154289155688819765597272329851987845061509994391279033467189427088166543206354348701987248216962072521708473402816563451704491236680146596045214523326020196100482487851471686973034831979666204028520330079055758187581728352659068087659026016024833268808424884668106243294342668210257392689114677498986273867979035803973134600697346866836645771863966427730698358667359407052105542450310317512675477330613809475142251508649966998647431637285782422007488068389165900218625579444561762905225592635157312210594073767355946251463699074307196966116618724901622069355125836129381968991028610020651382596724310927421628526384184969057570847406315054095216969765231133030257018011848613988754650568427879690737775198685078074538464803482693813426777861564775672229928429284664381892243967662602146154904375670018508157894632790593886575744284813134669628515287681565951702789238998060860006344112168420628541814965854736799313315980364367547910348948320049457724830612246756185446178860036524740592364518898316248848537222091994651762690602412298085506683682419575559254033951133329518206078703855964999477294782110770919617350366505380036419637323143823771549213649823364556716273594116927296594220547190635432320896114298956610431852143827378757379831083236087401714668352397551791078029958912689133642935697337513246966413981530198322758021338992005702136369259729340178563175098579333697631211009772597266436580711193649817531642935167692514641393186077746592500114941331025380059612595479923858625466108352202163534990284561364276501133458791710764731003593552442416729865371378625739733950186030885582458025553197617631454724962998527027898311987301169085026279534094650284464783402190773681160428408411315434920709596521872236696404260229508956266076630225003204002513647508329163032835845494580708520334581621558294332861287183613883604968809461147178653826814702767209909937793879065858927895005125027431561458476196795491466096164655052849228969163213733269727936025076464538349508306737787220065912161521196650170892820189902033584576448766522812717057855943303014435664484125703956243082715713554809890801194059785421959903293774184146315609865934774538340323547509031918499492823625811381944209721838059118978237708716555934927905179284117345919263985092713364462013084421331723157097136000773527341020338312720427877430481176500094322851858184241782179966227548579435729192857447182973673377908319072301781684145935308970277953102308641536618768755463182209496112593387520667054054569088538080853857206308922173254632791857946440104159978485327929562965137328399577416194089142590239722474865886395192003299487620306088047481929684961421047189019145481598184643577775869557114253480958647885150999186714903484613474293944188729411756413361067269676443736377971048958895652775103178122755195267708896079130614745715480326787259038868567814592055981016452967885267342109054471059683491305035669609216904051765337655134997385080591896499150471498878399492546540869436755691650697503011150014184649482825656139892437560668399348832352538868489620732231139050176618134837953758883816626115096822059695826420419386542216841466740126773636893429840215159991737373364891613940191778979135928022068639112674345322260211823819167647098121017475787959576962741029045068287047121312249795662137784366997935668357240990118529789849434646600933927359435287136894486403507546114946617185984422423815823840252129673784773644465906054690287353696525262820959310451327871878372644775082713382750606948038899049539845382455373217065407536768648326323177459585255279198808609650383648947041829564396343103618596656689527634647932632907048605073190424932758225728347670657242231362228168870457186111017544766830036258451813699074502180094586338319509195717366886646046907420008727588362051939836526545271280030204960871828186198007570807709293375890262355710049365032342308199759976970571902131874011355073700416672068741077364405596338083677926270677235394594844825130131719496161977583539139614443998950358614451508745699912604468843915661982748520248629806318381471538855451872896568652475194119466968125656938002782103105510372768303114978826358291658733742150442364886050563848429230993945761944740573832509565906037078895740749225695039604025140545868188441635547305085494327288644665955706678959389112049069738676141593855867562219630293759182021836653512695839082673630977390725601298135967966016587796320690168102664608812477880581259328061965736753093783838420658527550688139100550247294840616105256653536564030365619347847211712400012571944026414542599989589101332825196477979516543601136424737194385332469594647231860925271600394939585467440327139657270163456213200278311610443551527186635107254772479305487494386022162489531799441991397874468159427270453713919644804270819500258200415385125751907482144286426838361596590809346249090428752747552462125161785562630583807152797161900623541770892116412248230092667663099715579308994461993584175348357184738739822594215363231066751353619859412076560630902627020854034213335463594076926689788103442601493494362332554863139488788659659039762237663138689376040032236048062593543317281997399582887810742429684730429621602721385006739446952934900156837382045323492987367324272029514533688014023837805377392678192786045820363414732339841350234030818258758461625080919497352943216827306384524881544703390700915775760874243674613860845468947967457488434487928749513269406883685855052492542789568501294452494307663120796145482531133797460076168701829937046319567535163892246763285559379249154161959712893854196179213796951397365564064070815164913621392978187760441690392847564437828615104336564625487268684333151146644057376494315419950222849656902467565480397215476990886313254578095758427641779002451979330113412576311689271186764706394171885734974998800073567696676824814318134524062705605284384840168392418128525436493859047635600849647827253147584928577110610006690630261298006776632252620612658846783252525717170520579978411668792481736901958606423327486036731480577181500938058393870138071294931736544514012209717895694464424257804201760951875430346808095926580129982747442785226502330774959427286132170976066720064896008920815005709035520245994646202284611505537858399095029145256228521255340756930971912632130497721791159542502806581900949419366520751882220363484826779567942728773721149542357922195118694959868213337412389965498864550735156475564944874255741585041028806591193822772314896992636269513020272812082911795858917549747625313517701622897656432655513035714425786714620161362452345796380618229726117422117276636381014050814157547453967132587040797859881614375976445866509110082698053738479174645730996913177985722082969281470055435669445204494686897661661261998077183333925002908340606285689090100690485736817605801050511709254249325029221668316361005137730211398691817352262233926231218633581175739486604169578165376213988090341257445670707014535285620111044565209721814582940545990437591233295705973953291566609664882658818042619279450969912430353090866643341975512790364879138516676446632520467997197629374127366240098614699177110868719282336551530520008698222150863597604965161048896046900033647098322687832888496886029862032515312521226126938826898227707404244297082370263388930196286884254029535531090011326554237282609709811084837193159448494888451551938295045713989188139829656006764648842622042492117328372744763848633322367579728924778980761085715219723792639588861137017652974319627603358707133806899120626083454995337860743094013391325952162390028229484033259285241826197703804452783933377256435986961624274668172619902893905001449856152023096899254991928738579809090004834024268162552251867997412303436065422455226408478109279866129531275196549229197340310886369712656598213915316094563590266939006936256330953227420974929256887705934273377634379346097301350504312463558369640082697139871944598257620887948645554827595029580175913824131008517401283388850277405844815247262126189567136647907213824412412910077687845958609044612506391502730324279631720205178604168478672222119983493794336011137185979030670385029228873356970136191713857119712886648700921827654073646034460726833829005960105191983455534352459031974397676844581572416835642858349028752567137447294847204253862653548282990758092269790143487508791102261240835175395430477264108059830912547874754068792236151834906667096195165606344684169423156103976045073573083498402671241414998375557951886972753565897371127852575603440693383967896360049489078998005809434085891995168539624175142892221876036610671198456329053182491790730762071851039826871317762729851159279045202981699884649440826921131952322871207336468210273359912023848921503204776387460846073323811815190683520546593201188647389691593662356703752301384029642992204840487997243290920456834722202992855258451541398782254218791958708139050125836210299314453264470740155487175761845590437437843641212959548731424451099353676616268684904136906793778027846777997654653108093500562601839544059655347224109142522104851688779343457600831902324436197676262783503033203257065225605670788533249499394947193475613347223978677953731760681998908710047677796230778418754794313639632148088236821073097244832446813410226914779574706934622218172258837391021542086710691299925644154340856241600823925649829890941628525715596323365981833943151591563993260738812337360898517015542169321749681059393594956518192784340099614340039181401853508719964467009813284354283890620036776889919976073220210132552646129259958332433047028022696105636738098419170873511334267479422047856758648602467007187115829813396534233944730821001864837285278918201088890067462135187505337529688346657753690067953640262182897017475303495015639282548779662919410431372049062555131619600181960358805938133116494309761629349024949174386367007146037143338326860831723118195266191927485797818663903370630533500620602321101699439746999264047263515788867480060967465225040979863279324217454617499248740047805177388319453837119311752308792531307068899543954689873669441512658983561969506447008502655946332193849145612519081744030134991094819596592097309424736981619250150283667057720589000367690101419746148181965749170809575109638764444598551610205810912469121809378914191401393424599113859790385744255551441634013508365751429010347311230644964411332737840117453172567912079104968475536729038070633258075824378264235147897247195424052729182228847767374755145130283063862249735836814905081790431494475319522003729623971268586611902922837679583959830153545730388623263105892871765543115764791649080382130815639709085807701299558658804771945676252848828800021954535357936532579257449199450029511238651582981659916349785121726594054837164516008113084562047050729388646127579424608153976259761010630799780050208317551523932634675940350353365527644938282638369651383018171742709157112391673581188802042890330126793280842040686201831470817669837396571301085072829902509145296278367653855077922049510243089576216400967924408073006196909717285414507135300045202035166676338229226186837658836306429305739689846283874272860217297636455825253315102121068804958482557854261194090063310540286529045307053796337838027381895687111972237595281094004015145988937805793241520578464755489386464522134975069550713970422203813816211053059302174444554563427911615205071750805212538165427697214671134703945741597189522386139697541307253273547798209231699847949795455877332859664068624267692644961154604577452061302119283881239450180275854471204281646686111634544615540033788022558266372432013391876759084747613118858281245307440232461622508296402083684276662404838554947347814452201020960728353113372582083077535478700287453126814111435815799171370482473759117250835583088565059925179485340073478642175573369188195966616337999221909755652811304750565106052945982588042599267872475773198609876908688967170655898375336133268222350080286228198763595943701340779823165525473841535108178722014850862125400574542308079393639195465197068493607676881232679984956916584590881602434406410896772485039056345804372859671524826676237017534378924557257610222979127770273010575786062795348458817259769898959365783341874289548414392863241845490810802530383884328368788049768634020964742875143540473523029608062549567820167376384739178429159514688100982165071943730481187765405329317989409264306851071681901289838502162368411177782013786351962527629357615760252138064260473348263402700514323277536707745270404657041364052863658753622596393567540468233913078372572542208239800072874764079968222958365063166821406891876802216807949566155787160347400997746470389622883244187448097747315816650702267918795762148105204025111530964161518798453309746632718029736868193377766434927230415213785140201313420757750577912268999778134569548776654128075795537924968547493713139040188401229497459835406552875554913801425492579883681319419534158739433751892096212635165927610988199464666245818376722421246739978480628842468376398823815092305485620150425543871767964023655053206553906472434351954483561051617078490812248457839120465605634956768550045440333133725750944829950664194364846887666233407314329134034209778067325126342107110155441407050370220670539592247506250188373225115158406027663793434903607790790398767825548017347130100072683150130312913785459432849775788456774589764522357806033951024292718778234756371972171279360493211764666734717075685608896020513391849461331909096699021022730342825584222476311588923520211848196033865387963917993145903963208839849862163752312803265640812389067339511370483410195638415414676003888564500383648122768898865444665442366465923035395994602120869348693394983043686113667802760396620826524212556461748710068669627039716424963785307151823476034661627680955796374015836183457446721355126928817090203445943127576395757740652870534758225403032557067912600359073790842821223023305293898794166738028695383998097326710757777191524539329908697876599776637326806737904873725355771461303765704348243349511903261612719581965510289012271227648065724136802859228581148397266221613648920985973007982949551862908114516138494290684036629068286662450689930110722158935735548783153848664249265930937361974435696481398685821554308587995162972483113929857015566144128497926037705821794934009957377237590162462911214824788268157495162801128097746210997741102960513041945845040316545777164391881740315907301461448492925881333530353846900561230121918118316722747215804114054786231027715547513912591686436168609451059292817783120841987564044579087071360057158559391744601286307551316304630435225965457904789980192996170334754898628869504474746956796500005613752211882812443368361753093455713455672848137492383505229104297787604134703919322959489533514602947119977876406468313144868268195753892269479841033313289649340855620410226926403324402126653904622233825867962156724350871445398192541963622941163564768936015229629474497589935333927043945389565801088623751642551209845246791663782261550293338812950253289742354961216146692058354111744572850838958858932086629112514283771391740296902985863563572905287295417875807258558206904518547616457826881185510276506339369869945193349013511707546723588721217700642598628115421303304426821041792967811375635335481809073063744032142117712623744942508902285057420572702578708860440885978600044096074365047881458230934043258000431025874458677699598763827484749634297811905386764074559774093049106708993493020130285557645328254654270478415705171929642839770852896709820392130876268028989809871744468239409306679617748174295921279040412054543331262261225791265263921444332294031801983452084284464308114130084759258156587378824435878574920054537155716736898987868374388096608835062308489119735379937960799374643786975329556931535759713045184279475921448606973913503277944574700630440894869125564395534126054604506552554740005874762580503668727672045703304212048719126697971037995499215151357665355846586689492072448543126320131224614813163901877543095064554073994018783792139726018985592454613449282738368024214705658703991162057727262118746621390114957498702817005814397089480944132631000230501855467752855757389381748348715948948735278698034507194353997490599344698984754088165452964226741268537707613934409954819487507836055219095291691946437583176618042326792618981735643925496172541383988224747937248478051466155568136452404823565610312888188964543509084611112001785944622923238000364443202477051495862861746363768028586471116195274940426176224274241332924826959193343116658937817825881424819347831457423146579088111584555026530541355821919648269986494101102567209198344995910298172854668512880401386035177897036508648118411022429129128106824763328190044102632866318859041597812804649062551019102573974229523774386496889264526808236381849562072782329029014331719328935465523970263568964370350634526490979851707530511452703980356204446694273647189451936688464606927001509062952737140515643294875446159733164613565756086207711654404511650696826773864442675492690039709806259745982014623094688370399787928862140228130539514843013347817681888166438115915637875010177450429874817767700134741691562189991307250975537033978132975247719045368080267856183922498546714524435779513108183708332016527740031265471103153424511224122954431188739055246650267644779602498978701125995897797845384130718741814213228647204983457249690356343349715858090152437066266496078401488691832245890725779256102876110294190162513622692252662990238314477635931042862174755194551055841963525144717349055145185968704120824691996377325239104467796407409617432403330999529745492313082530264332527892785450437828102408286228882753033382843039232993825511465048295881318887269036444332996643398016015047775597113105628962820185862333514994902736393242831755608909778336621696408602452532388327564010163589040635326148045049191911286342582248873480270062776624387975000191895043518858408367631220658938721114234918303821485470332267141774774837017691458393852878325807333989188804482392957459243505223646050963550305240872296243231542483585407188090283195614623697436868593054696199990053228532310231463223052695629148976097723891355551422712282315359833288490892807986445909763254172690175571176133096204966154728954733716962559206601344551282117390664569428971503364600784545908946432994935236615990271055669229815564835547578665112362163655671782082496136451652841684885134013136092093591529444729066471101053018087809293931893152803899914094520214612675396740021307666105178463270135671003134872276306638823750220463044091832100773193369877998281804105395129015571284429634632277136032632017917904399573768027429405515763416376472910543193464071675483693583885049974931142758168928116989400841064063893416088421438494583529462585894281619100703470991129078114165380819779258299686191291921283046835946679246954750797774510814322313992318439879426125354431302928304842590217575862712957516441106136601732929530423820340520338327070313885652213687232651203480252316421085034700833514270682061254724782362631096413828796976280073873164694581429374248197445486497289054787818850155362145794614900056974017431105924628213438386689889327943592388779710321779506582928170730594196643201715581894578420221053742339551436123033259712771069028353928155174042951063186821784536804045683084530558701438640159927394346717382019696435803169405007453177549932075971212139761831751221652791380459441141720558737424555377472559941876260006112930408742640714783123164336883347835706271376929077751756681888661994548066413471493215068552365334931906988675708352470070090000024670511012791966767440543642836419443765338508278885531606931436204646062246445966998272157649816318668189792672181263133504818855857721861171581199386860027348492457340580348346889342348264301508452045628608647533328238139131920677056903655115739542603168257232372381352234804671594194787580853125218487816465198394440110992578336776837400849894083824923595812645134772780786414675556015631142552324647548110986248385743874326644407836859694083332573871163301666938067970950352785843973731206008797860714552353531165286239579488750403213375002790140729177517089764160076690979328768222089777740344326453296723764596291366401134362484080737227955369705820416621274208969716851168099193554015014313673345477273313608894826445590444920441315983841728356084192458736427520162390935111617005523504269961759800823055587482532436836182151818564859570939539572761621578391542402000243158617755015855841512253684809673114588774201539281564406131721524949637593023413982501338723562744945118160060424411599941647313882957497924956678510007992992139049666365190852617101567798400862567307785180227397053647798112022243218275938629704431906862426711083191967255764879913520653032280990839162893493331164412647827383664078341519479788002976948458442768051575332998331753448252714235633238107865247186450420424561465950677755174284258581571644284807063600115112308104500111933123198792888039249309524460233687944005312508815805792730291345845458504229551699118749326767434139076954482676382301823856443136043154354539127153070027650887275507695459100518178928480005706713786020841354299226640116913551528954220705195079910748524087819426872839632378056332942860442071386764784290665630623861434577944280626455554964996528139987628158653618051957332669081860009159718772402776550300881153758529267010153965243304236999009266031636922279130622838022033437339143218326345000400962234401932012166838528550744399973126191721103451277679000270732741857910283791689996163219166809904233711320406413963558631008600055910311096281670033191257801226913206054201375016262249855841313579611041545818603585626391830273856140278383536562320030380288520934106539216407113450809405152133346277903293637165255654056237204308986958220585638866070794753274740335132451436450836288471838888261050910481850321509192899102480737427147053006061000995267663041828308257709570644651758270571750625030373844144504203640843512079520854765896742199704144164760997460581594801288609561206887814106216279653840165475644733103305322933432540431201481193139314837971922108275472014377308423024812295984618088746273664795413185929999726399791853715050326442703182550627151651469039374835548297102465631580232749874455958916565361820718705721676800391369821213190794687356489371576989308815396687538974653385623098639304900097641086387633512342698026750507745377293431259575992683351480445707121815963608888991696218884484896169779499450899328829578125713590750813736113583706317373670250659242561032883172595219962461258859661714408328398982796989595441110516522354034540835272280365645404437356816585653730049535903330067162439536971826407476130343300835799255286942434763410369832437516909969386786979561169313412182391959655989261047967947647481328949723351638433561243053202441594579341364779749403158408609977020165983808772858199523652566917001734318840777319222361747694357850021938965955285315021323394343351009799931497468624983323110002183952444233124085878944071203244373516738315335692284605096062841727976745546525503445112044562953610853042137948138355957099899144498431287142988027184426346078963693009558482268705320692259782318143062781285311294058625309092807382434695792630354413912258723493256388227007979831007148102044085131679804217724795847994724708807802345562520620168709085290838635855023176095566397510981850081549140580324311034155234128509050528996312331226875787674727233214597756502695417003198502749874678271537295181936209327067839829299276333388586897280649714644740069155330054332496461144644668000898422675758268403360204515577699067700665087131713412640719861599392725397495202329031377987165872028210395913767479827081695252010960511608091442726968009474554966900165303128584366031276872508469245699443886688550096916331490769094410949488928370450820507748036680286864353341919212349923372562907656942761916542291081781882635757201161064826777432281906403544271846700787051804110776044644499071099009571445034014360457544889218658470500397188379418081127494786667960620163017601397550072336242901531686644082672323261917769612654051560269841774496557623862280909243451303256740751176572088828533386568879274581381693628461657942785236964876037445880416549666190470619003629157187191290599534626109360819115837156579854885846679010406045455171936540958254249783737407571278925948418469489017459908230776434693795117192325575092387858539885286640990410258961183636486920558027308782049611036060588659435806094833945091098508571203248803361250344140712777569438370513565248605501714653778330560764606238721937038772439008639270765695833872100589397083313594935542418321468743704685340774647113159861969335776811425229755743768840647043471691304002524394532185720424372298625974584799855294821969861245880768867425195463064914535066294216777806463224947292931463922939518318930539776913730689082214730434387081779228991891975178431172001149758045114453192296865529467114356826016792287493545347625284174153396704707042732358603081302198715398154875417577686053919339850804778872042718530417290150228277248033292882546941321830692683992214819751101456493299036881202658416493747371436873436357227790207963845349368529005215840081981539936141310434438032135370825006808668318850677288558884250404628864402252124516870935958790255076819890378784286055348469266440479764044749937976214341231279136248283560092300944677427272666391998018481130158512661528113960641473392835419293996462025590702987768413241240181574260726899738758427690454739353090633320759153737717581508533479188756019033159328074104392206502800170183999659876825480616044509146772376365689519331433734273644829317918102710621881259398292169237953310549372961650166783017140291655157566338868232095613241438297176597647947422255228356275818021481494345905288695204552021545328994518366623249999348304156564366313923333368864265389578774203178245182378721273207847381107028230989015920473250011271870030951719310940610768242767508619490230592978837524155695378305119324841414970838644187544918469622634347219964701412645099778801138229170815377038800164401856384642054217280444859099026528894597835961476334766260340834103966519774043058190339104111779164335932905715485955583778248987330212428814259503457000432381480271499840002826436089713021768613787635062399221279727161287650255861323399684213909947405067030719522574068004936133243152826344157385068607595835960554046072636286596808274175246328260900629132827898053316723627544610776338095339563313811216528930673170446553308651996982126515551506306822359583813201703246324369440533708711080209567071438588683051841808337321327469547579423746774317034303180915962838811262054917596682351535704601569540277446883856177247783846983194572574269014622134468032299475407197893220002687545659309975523050943884561215571995633045623144392286099471851503227983098730498567605912468418558981879210755645887652857836230491395909793465862937690189280032510270309698597065632875127109254221886213619795479287340325989617950751329402006069357635845083703165716572750000482796708105602572692263969207000787846671369706756762222237615811392315542567411558917850032828094426222326034860063022493327718315100094679196023391957173258039647729606486459456492663403991379033579264444154911315898593488701784862077645627465756815093918469562372169581704545036397423045485912514223369867534814961386912380297309974105230631604677678674686670466442961160108032320491662401691124479474363864225820692651767217389013784627128057252412379807242929782978558278341968615780166606910983568209382542387331389647813868192101381731415266312673384810429867385651641387748443079077765649073693933692978975212417591069199254538500424816977645791283770066619202396972129109782757214008333940255080919019893156788941502211319276763869422726378398151153038457618369917168877594164169718502051229407068908083426326210201006155346714526040752027703039739599804163318260625585403022595451933217176793987218027269750686247158374620801768230399531023716255357436056285523930198074009136620806199372271655321695030483647494756746299259147197732259873905980385484857752368348942389371941941697224112738161439662751713182388490428362863004294268374357858341613900571862928051971641916139785906276894717482094769768123199115678397342461560660654323089147565130920265991353898874558478849201702500425166770256499916967062798695489699853794177083993363276837896162158662602721789419797420664844860198721467819264414477083229416176449026378639431689637756069212722089350204566760739466122162012892066072652240542246078455373757834709542918345343841707191277990771326928594011321978945866312284390091665276377321578009772948811735186879010544346691463927602212379721122473349198147382956809130473966476039711297142714463933789421117330797297994281080409866191296344005159616445512410270751527918788766951938201421193153125946286695333111049671843605267678789381311592635173462974855918488492837413580002163063046390579625984918035571425446688568900655934010507164308515548472651846166976772316422853337924021132771829023682395056712194643528813501443649459760549571146705281869884142463766135997806540666561690920696151119042865806637664538233245429635332369676057625855031374164977370698433047649163829700960966511147804178038734021249743384861710759472610788432145854340226452449967861552755942664291641397665757327632432373309107276706669934496376995674836075720960284319053674531076093468477088081901777473121643471436704995360762135317928732882764245305648900866100101853235240386730912682186265211728513121875309246166451780900725135209529044162272401809857780380265685452756721219066921481005538763923482868673182757084931582527179919076339691885383392536453222757941355763537277541816531679061866353591107573136299300000128449031418260373598785380047556446646185902080786164135343811622382177072766880532714877355801446593417679931156902491789730881094184601178954405915224072714111103032786523201988332115694604992954805369794941935283571688333128638639720050222186044384783143828217006793224224472295382406481945801901751118030010906385068483685040608564239544983533263406154095379619686170405329002057708120444677014155084900031952220572324995977891037279354535560485106217920851479687146298192507905517978804338573732413946892639437411231539511729088285335669910215557075191274397541197188788676761405375746915212445944132961258387744165527401455424825039578633088658196062188925281911980421628650099639547212679804354979927735756565071343323632108989111479242294654917205997240747368264112681146957401097926074460069343602966971938556097755277895667994232435917162917901616861395182071501932937272444133703510094070520999709740736261261448235757273204655678484717678484040683210374314943589529079210536923273220633118484834837055616194117639380530971267898519992309662192154650969736986139204335391156006175059985874153328591410078690250189327085652706375167059368182581801133844860445620013357089031770525391721197828734550740508334600147584721955927452048753265790840596392098165314356426267791243421331832225835123408636102417966251496852466335084943860121016449630787229703921811372070247408356977932433583799318415889742630797380052730138301643903955864019103605857966459637622712089591752179902406985264616327411933558032204816472079265419192295769530070478194270845687175920149682369807513633072678207157110074878210122838100451004700333669969520232007932911895594129592133658039937579349035692854000128511117865570391024939594487243329582830305731290620039624757623680189505270385650426773532171846858763096131453203544801127250025956393670024238956350981417840077373979967679862417046993264650957337880159303162841729634773419949642501421684559977524411869865083236444486128241629646300009867620608142118435663327023151395784335543858542223834496554010803286829419020342229031555515307791426189888332994907356346291459715770102595483864797997569702730960783115253801691582172307133881506766226561920787834936739732855126719677136643253033064915119593959582777848297072024699002078499775065956290109076642585373851776486832099549031379739991912877401290625249292867754289728941028736811253810989247095193135809532818119738631127918912630202865194884146579205663221059405483983136336269829042431058567799233706549278734815305804106037493662560497950246241149884566775291264356207648684965854656612631557521402610987091253918472841567435903929228127977441781484197326440657183786037800786756867612887245387187996617375632514857899186867453036652004564565779885301009248399973406465408140310737609816226335133450772535668054406231874511303617526418849266935417120764723815774813597973097705588048619343957691126109836195769307345202948239587661748106360540016954519679437354426990039686040530973541251710481626287384206636958872971906106762889627602383463043141509493844648584842698271319688200537195028376617176146218040398708920958464186063913007601120790594779394998699262947864207986733319032751657060321408962637574436866969754188191310301793950809085118024003882073046273566238975630843696012848453885563927659049713279403067050367335052146127452431696242005255116940806998622278782854095419780930002312902675382035346716121259540561415134422189359022416652207079872471510655245273813417404417952922099293286692772507681903722780704210001686743238069136677911329967198395077141252623072319558219637833294622809057378372420787451679759964853286199824148511420206664729044183978398288120588979193715756239363308065097923390260557184403009385079259753627103715347866617406482379549627880628986257012530168076578187201833491831155531128350682253389680145686509093731600260265755407705640490005246104175714969651188472135288729426974469432173771857414763302052324061197498438886282674832712048686403278015194289393344136082054216941425790679939869398344602977052187385457704552892651490333188223688327889043471360069018270343953999025115778944796756219560423691998560366865360074816809421075422242051966652289037770348629683250089259950409257711745962664599671346691738033062160427967190913495355543100284370619938926717385467976758796136342376173372047154723146638870161756904543136215002056039389842436575177428510654064398072846155581204899975368172549481715629157780280241311901501270174336808867853675197264405617331812190720262991085375270180653984523140062212943476709892697632515287569956608085767926771433190664623709999473606005735522340267544275055451935975194504275565658936237847170108878354861436294824644777555019078846738428744986964515015048112681421381373370061057802688806767011157356759093185015926508041133827071047771323929026882199530381268312125096033693383366437455824473137760865261154761877984324578669848462413358441503410931056928193758555869177476354548708996723048587566893769565822077118730807686276184584504977294145418440551280896736586992975171865640567556025238915049313288228385069201337558987578806058918248602900406310021225448598421293244684076532949119503245439374956014683313348469391325784076667567509863189172324219989396544445972447136992118562940203691050425939171557244498009705144238954416851588202617704777153952013198282873700910853906801007416052248647340031234699111630783008971235782253972096740975337007605553076009027904705226318397280652358417313863835983533787196190602150934051319505344165980854808868055020685837844034623187357456365960617748496294242754150305372933451177375841801262585737231194509081571243353158363260787883358007777387955703838467337989357173985532592334807825979009931813760513540239767095882090876582673813000473492330719632921920444067007545768025798007335134945401963011152085580366507319309121887688761970175134802793218144739486624008878129902472714830336134483711335756139034220206477406251052081330634941837310230573237125158772326688727030998513992669122408817761791103041499944196754207422766648750745900598859194444306011532980954914451826405839798546648757530732522110152318919544502671561792506167739061494770847839251627007159161566789340265545759050054661112560573937649902999348572672147706459681572422544122870887368414437529936017498262044374663515856049061539024495974453306778528448427555561207801639122472513222598476511835911579803297735557196614913091537523865480755831802781861645598762481596180307292579495319646677277722271326813983883488052702435111724212188987039760834390547525568269852521085165179450062777027524212402746523415843115293882293511142669422490921384256629939863245447465300206597832538148785199492593584862178020377576352565732678910958336243041360079086943712718521303038914464131793964424073960890913095421570594948697179181598766166249392649563242855096735496034481792128514026267184986987425752544460506959532174078468324603054491143620073526920277880340140523478196583154080192275094337401247393235013438107098421170577332410087089084761680985729678002136891766102849665367369843823927366876852310224728436271168661323350991595831549593367157787173552698644863170480958604427300543218312290025188076766980210373905486722597032084515871723930723615032005633904667976836141570304205929316655400975679773400087429525205184734523801468489054931710039469782746168221403440241300973335086276300586426748417076335781875052786479183682596549111172057354636987713230705275847979977424480870727506889823037208760381404457197539027995674479371730646601848758095710472865307096819000681098508656374071940284709340845668113036390990856262619300259572820349090895079420209499251787682907346821132268377595963332556629769069407104127524825334984164432844937944228170777136632569714861847597908119789859333566156993711695263182817889555982341526916152280851799823850604753936737506104575647730157889774430713683152314316952189727858256781079875222332129344959356980069757029252385824810103015050393531599002937150780592880929128750484248926136453795575668250165453665249912767957644694148252002802709040243133079927191855977961590501987088905103268619518761988281869692276360690107168196566694077436201271287655226841880347002491014425431805078124414850216438264718925562311975797881179947602968728214327394302830460768540390583457849877579364655566380365594026556125057935347059308980065931021849288042917928988299355664689553218754567466069945905568304142245142854229230490427691812288381114783370198889655105485202929993969504364472611672669283005756025449802998983606932796093648933574233301574181349656100285518269144630294462744472312867755573109384020676970611305659418757561588312053139729819320133668810350531047927569871631359324430115564907836750946759915935092792361543271994786531346759960197429011571103505487793433833903709387695384767582507042125783963098077854851873530453144012949156275658569831632081507915180332356845896926782538872699092940847972435358090626960447154446238392372774092260884698511644613306739746521191238920228358933499386030368540741104160953918328568274274051545051812919778873925241201727338585602203625553616699513710536642793936018665812382338652631374165935932080491530966836319675611845743188775671733559157813424237089493048667867038678535230099009088147988946314176976245410382278287051956357721796989452504997052949688804165638218947869109353970613780056769683536810514833760742426446040739547806248547425903012537128582550314017649040170737902874453750766754538055653200990384421165498880568854364420778662293902410159255396428482614991919572110931912028530127476206505144861154792698582303537037760787361105559977350034981004158156332622773038293396574427006421348792912980408249898421974203576414295893047786944127174559221135109872286977995416180958713001330547965838118859106335768332486623767365517735059362907545363543020584904242221670087962475406391670472744429785680393681661720306700773284291461419731186151090471325561813011663619723772670493485274298329095797543129958278820309198002915406986519630455333640828634575029638381167056030710389060168700246193096024097318848973781418400458591035297234227277981913410792369368063475350197658294343515241109086385952510090530384599750225105106922456841520167558264860444863543176808205898907120193609064161901765370233458951784199715274374696436313088786419879651883018047376394789735095743367925048574049055702116504743344402326276170542321052818226147976092993165110858566337815257084663584207793794839345802661112499956001909507750617230058900144896906215131584112199658271900462513548139666688781309108772563771631104269490660844132227817191037492219178115121586512475953690812014608741241078835852984565693729405261706459510484423027947114906395085304423347827898134812187162015898278955173478587529255153070140285731358040147577970491673290654183795183043838437657917930716230551287832142906049791944373493993048708978118332993713735487049442060079183817623731634504520806577703723180949341257102694799607708507702708321167250021063136566070976348133569947396241192963820992003371931544615546352662031793490406834696291234174634831436945187669073618904588168460181778650790416123512734112881928084405275606488062958591700679638650849602624749167054688274177889984986088630709040660854168687824657528142229376322648512603376556852318262012792944579732948856533889163629653996019672975843724217407336432757583430022295340183905101699858659879656370421966580606136998139882353404246531728423195222476287312867134798498929725253490701461781813451880898148207317289391616202454520169313393605439775273443543926386261618484431541548487504887854691743310711922900452170604042639178275930515942891240974848104338227924905314934943020693687392060943114112194135804721372284421422199638122077283166921720589283988364606913725742152175375194021630775579564844936260141723364998254392881918948719445898511566854093714103620135507267808334405689986555997728122828833231321320309942062692287692675730486179820289456495951533171078334508325904443616869504221675296298362057651176476956494797204708280028041110971670236675834416229679593856092936272159429467383008827169549676996054342548663532603168983800655446951171048360578902258790083985456037262769058785029320079637961471661527239025630084631917822323454094895241462555176021342981256780011312570522710969882632472263227402839108745647434629587137117208864269461749695528263162514699082951497479250593382659012709250116898458940071212748778333299230039618458730471784493711010880462072235346038169006103462763218399481128163274340482606358522059257807504214321638624142804637444859533086181422413052686977590047060974050489608572170644592484374985728845539775538175588977021134482152108708945180906155723505433599615535266374558309521358742134250665910028392741745897456865337460445959662587306814463483963181933816442177415564436241306139889709441436855213464929868818040480673603670049680904670635269523689666767032740378714496194990548932212556236905492622953517741349829545421326036999308057059826276021008883152244460696174250388841862269334078768813500919851312711181758136777202690839008558918338516680959796368861047053351816200285841086502043788898284944683775683945455810297970898852671903536225716333216754635593692840481097326384777697323956867878503531574112097816935830994465033457797861575663711605199829879448702086713891011533419077188890685108198946502418937300892070157350024007117327702233476175088775115283119006330710371604057644271826358294728179759019358893986674290435534652654895680145477171302260744062092578429407717581019724490473316069779785314093606404891055290280258710928744861634680034168937093158183828651973369683657775927000993743358099106799241513078537959448124488038132425141734820253771709989235614593715180650375677985378489092053523622000220034898387185696247021001699537762177226565667995610991486569737856165041814413368544630236362427439279216468223088003170049393755518547962531123074586155065057692884231584346313147074155478852402177476783855839094425820173011784295710183112366401329619224279009415085803729825178334619722847680160152824520262334161495094708961922490592073509628129718645311779326046179506494316880320808060606700520556777626309019955304721222315811803687604632436102063909425175686260203776462010177632652442472433977650519141885780859219902429272320238384684989093292634171384608014526341873649723897097019454456973814868508529982832504335188230690354075544989520525216522186275585289681083927427382536854816091002302971170654904102884025221199610798369619194913742572533925752280236175712432105201390805080320132483159444174491614567609555228316925145159295692257706654711155439650598011328670723801426352181254935089340442459679260755104802075099552682531166943759075254140829586863256306976145694428904701542908535891019304937594199798004506616358309901072929748803340225931248546263598826460658081598344388729281418663193432487370616346244117475944576406674532961790050574627160464084527596065438780197126381486970645686634275405631592123579201542981465243736444482749418357449708531159063665773181654595357179383780717502769751102788704178551217331621027162962511265522488809070086965085105769127509036042824731760596986630210211070472592559113442004718732531278205490733243018097403244442799473578264818103360345871475153250762563730518335063288041408442676686014374855680138042417081866901447118164011562685866894394040150426088114809377049422312774221436908022452141663905850560387937981481526491787084286653838918137003012864547783057214938491697573052414317624542780309364238673819016612855108891212205774635373930933011903495965234626836622291831099599012070785383275123181633928743933447360311488112934015237435818983200496496355323657091202543140223941408810210362658001802749419222314529704537449774461869668002666419875393957697314997255553894638241206524880716506434090468347404610771367578543382485927117470064423888815680726104362740428145378345401979995775378807249553528298187450671519103987499789640709950452647894983411060886141057376810695689083628922295455666634068037081136643054180712577800280041794205077617041628857544839212681904694445882892047876079889894855661137491452832780683846394441589844743636824264496119187513333173264619299631785017699481540997480985321321973378167194071634613875937722161150618052001644282131959229393112793936264638131778560674500600335642874292982053363048381674790389261102362440892344367503119529692758148293134659602827900053212581060223830496610276364968530051336611666963169134820522065772976149907902266859535787933825456449376723965275409582279596703104280052416830447988493162180907384896075741536650423700369967251948194162793550186258234757193238151630544204358046268092475701212880799056438769640459725721402122154554955619141027547947683088814779000062862048622024953696343646123446627965070426350325480590973456268781544148682476655331454567490934998258754234076604863812211682985468101349976771351250208215284019665584215112782881372134950917634658294450883242388755582641509243446213022439642452320245833861940249022648035224743609923369292700143695360957528535519798537316438729094660411520574624605737570928963273439707345042413399010484485931707276247675364124874389191972379003835779396279744235533422291147553135289328232690382041980596751864681920205674946331787650350134930287183649332330636804158737997363330625719879427992065471517766303843348740119464655641894621716062586152850612280988629433091046701230410914631747855288961613927504540350648184244609928880055167742002087254098065154232995560912782940559824671483346780484627627886069373209332010844921289027945778570256467723120132877302180321073779137971050782402886498881698178562686840208625605316072168856490547887285803335937625616065756468882977734831933395183804033019215350604833559687374694646449186482006572266507081566079975311426413135498279784281326486975929289850032748415543715708074021155951935028401117326964782620687773707251088586519700662942310101771815382383625556331594937416688457437218993376471587712032392278667903914341426854295189019921717961027409332643471630693134808196546658648169195853031004961334564219538519135787389258878406897293233887880050632890309342559464825335554054326660074424861336459273017806740509228962707424350807159809418355681189316676615671427119920769175486263287975790245765455291720268113048920390405136717501757910283190425480477367346953270911069258931598395521039871057199170919492299931129429021267453101474748349779319366991968063345143890235002159742782969157331397486269414485840671474079450006892642643662582983008591244328204371163908450030476411159722998752195740787835531902376330060612226587061553815125564080809540859252454006480366775671822728572622865593997590766734615429297781148183091786928282295809567495638403091449835064077689511729259383230243332034512562351258043251869944408463260641722767848819126348218478981533787147313814671967770801347874560128083671431364859436707369763719527011525214837143957241079411664965136183223274826967745797943144434146431620366987394695331487770079411442689433709135755269982786346890876481735249716937259999815009939090464021289095978585037128290711704010692475475111790970472309217274803075071962066238602390092763333826700951825939414832048972840823148820798244945780376756815740547392612162292533314804718807325749547820328872845577618941008758035302391667444398005867864527019598586026783519480679991949833820183989784641959343126041173570005582848756064394265234284878855270241771533533591346172125181359286058005638906818350671124735552362304840627177319804982150565450793296377340948814453036711740366272090886867266188057868568752701507518892097076626780535254802719280986922867110001226162404411010773837260678482154798784829940863953224546700041801061099392931153556386104663115990863510785976639522934477567958640704729842030645729079359882106091716365550974889334416558467766225084252787570088833415549431061985802525476144102982501007692937900121829830836506120453548007502248322001930533538409756932669451678361289868670029592370059673250861507106850476679968475909223563361932676116956468402606291610144306772010078029482995848091823673047065243213958860013875791019615561643172767847453024264914229405328945106380283133257627046835782610764871170869127819680547870351628147414698276009278543117982122141345843326248769954237191023699047879367227560961255672743409383270729281652566672878773074979244721262803224028397600941726768990282715885859504994574879057020817958033295250208221619121426612227813587696384039686846735755901953029778500260736445995039085177706255673343919009736786722458150891943816728704926671114430850386674940034000785921425871260772685928451336456740061911803779710319279615895969690108949570775137135315374837346359159020135599912049306088211176603198237870329974755117568422511774332213258422568014575567756863391760858071568926527369111204910046726656560397433041570115558000095169186546832207737431272667442184855684867598007585811640619277294008630097370676504863593874478588178804648954048914778243185943315363854625306246090060718825724550103007398436442448311608759186190221086167486563186271714101814393324416910952280392304953545597884554801464211597167610272640616264049928886248578035303976918177750442792905235723035828101484538270150020547865841574031031733778636887642584785955336655489911758569764287214227305111046770221490662625753789178862810157104770822977161225886603319420304127129249021315790985748308901261024215734706141113343861055513197853299607933784484304800026693728071166262224896775471082479519704609547932167344267115339677538225286207904838586707379752063480058255032673667083834069997864490790725230983162891055922595257647857402122614298003665232954710423730297810057843682955664538066065741864847006502460494904298950429025725567683466988441850134377205886077469767200043695649565379026682179394345052885458894739318909882530129295937460573856480127311522238286760533882887262193221679173179483734824233499949727146855962519251020626573869348020033884300918461276991391222462807265327081937336131631727077033856708868643536168886664121224187675847147487497881873276391181602657813748649308252538358394010376514103172700769969657713554450901873053834073081559936016998619878874075818925783058478474604551306596082803173128037114269823380444804647241869677350253291647938066449415079561819217710348525352406725653875317096758541522558157769185527253786685242178234449449516623078044447909668007253932352381129163303422770099940649577541337862378820423523065512815959054581849101157245256387919478339992917258145359659765246714063016093139472912015172349850797996034321145944757511735360779226510613031465616037611657133061428820124223989653043798343082632764962423683547226756261336823005967996475051604210591345398639071325990732243516109070909335030043484708195015145688252249446832728796470911276429352198305778947261975663440855075328378371996062042342775256613747123746321057271065646859266729400740142104536399123034425218680808977455376646523106554154474494977791773868583406208006642180366112782877048129498621792919997976090762205671125676258728804752827355964127853470869920521985050680410688872411756136568575681426470276238481553122863181944099477181229796089822317068323047056458094720214599185041006543957674661254756658290239806960980909050076191917429814504207347206585325908545067950622230854693982003498014385490049982782720122738075419708624152643460082819968700672490864891699330869977562885161233964197402451725805955052415614541969642912441414844322533592959229247581042342605558034058443014642626661877711278844490382175963076147870409038222443171836039024782043630357959585280143207094458374864942599285360794162871650159025092569483290029291587074150884907583176209158467015734746280754348633543726695947612842589818765238496924062943688678422899220882612519913327376341854405046913176803909651050090803327447158672236025925930919022135070936665501896703551439612183677285969845630129699874172708635349056125534423339915968190893505385913044550432942622140455560018929664594831809355766698789949450995533870206926944904038607262667784470076935572914642712244157804387753554282897309847050105403782676884327528511440017397671683186803231593222414408351779602420823817966656499986007262311488333385765850896857961890688532691320711377502325013697755913507278091065502664804941402214765168635978895500671679246166157662987064902920375595574135834388896412980517208139866390145667958139598321538654940894574624944842977138464733374658747947201360418215929870603166281451358160028537225991333080065650134113055319047026386050149623727421601948217557440621203992744124210800713180441839140606025832613514042621217795358038013196592808150478772130223214313930895725979451855231425473038026094769087869206952518138861267528877654892324650297165773550804516557648907463769726798342415287936646197022171217745657397849676684970525654000204533053417009054136602045154875461287461429236507653622151673061185104267881559389089568821778098470897516287191709818588238348617709736591708673145882236144477352342253345228872108441903586297124746097202195163362246923907008779156674423358906622501283061798538587414905195419789169359058637125191377553713349609453403302368052975108149568121677305489612881222056160474631198985670654433467518894879698164182672758173232118677006362083990258929625146279719117201229907314839685733575428675913896548733860063732699098514926554809313487515201506955851055912555777673254888027577449778489178572039460144330103420399727747049158159032335706335881531699656908123806805933109997603117760342324153485292334749614008321800051616978798724599327186010801008303409130723227940141781138581825699388756256468472948794543656168433620278450379236143436787610065079455114348963932165657414046042440171449235366741629828162630092636046584803023609500900382389354807202492358949125517295481233126258700872800443544868705869646106488842982958374421688854869700654393290902411414082449091720773283419861756099485039679101124824487092550645664530091190384145190344095033605693838379437140649013055944201560714997508877003667365094513407530952128710520642522078814119931628731147985622948464242651827689752980519509378336385082719565605917829402608143848664347969911732375842553210015723264701031656576458806705045452353877535846802341844346421253349708839761452201464009806024718745853525973502616115985792073606822175987779887641620870515130440484408771321186972483089373548036784752781065559239826058514211050329750526173255811391538194225841241982326684486223500922255481850027752359663582315278313728358765672944549516972395950422560628894929462151400686818393061303445512883450295408493695894611446871198662272172608216973780993095224894311724542882707004409211464944509955078201664872191743687771265419097798574345037259721051993789218023038717219637288465581177292641398892747758467535796298168599288400793784674662334269223848305788705276849163495420965318079511660748154824227089340043859379964445178635703146504661429083667397298854999705120751653329651126030394916557239099467637654800634936927011769316638137053052439286764223100151636900119735120187184063603031142429812393667659753704572879143594213637425920365497932170999913578604628879233848676695140118562970766373000012577930829642807877134398965587057865087951280518276043265524690959033052093781151217922908361895741738819332871208639482270624716105950463621876221735453770981824871733280428414306559017420162317231684731846998731070275687670609257743396596336269399810205642111418024163817662315603604571807940934438743445598083985525529074023902224923028101750086332638233270229665314650173605700370183802488095557464699060975511918895757347975064939110296294787271185290904562616170788454679941300022910843955276623876217970552546653737545340007423115153443211888119846978557467608627776795043597466921023286578158228216648021750922756258183896047349835822060024604606471218627358247650142529921661837264820666349709553793052821892514531075125835161910559736132232857473162430084242865200012551498236409200057676296254184723279458840484500106221710638588999897739238248009520457793039779263237469744299932639338445409632552801028322785839524018873725395275394336998603553640895042734639098237111927869035299493927352099179409229827612147768938129281512475968144167111732316654298915109137972712500638245217689993491631744561988566291874744165526371142026214009174042478408812631605618582014984674095938817094432466725481503445635294124639146124295532784402158356887162598785662034648118578030985158708205082250040387216287190545166882670170595951846843662738126447792868766714123934687503743237085397027335049658843359903070581728431379769525159601255215540330715450219753150503701362149233223082710505772782918224238748470713014039053919345469976535003447162069349425114971772876783552059030411015756350681393817931280725396256429923127086219584148200232246615156291707373071504792318678316942048944824875657329057179182939492735966338576286680270630316754884329656696493188261494785675037005365400273285367758669502643921398382391951449668860982817938427464821751163095178107746691125333714129528027053818819802229631713394176866648342092711275360446420205230268805024562376920885922300700537393673582410638616357187333370550814355566785908599159530943214256814354724638782658363057879142518322542441768713187935596368454672119536691912185675725939587294942576958582531360959501495044304848776753358233594848500678301140674365815248769195991560746046993214148781989858192363644329045694070112497668375804450594603208504019926002085854329414058302878672307428869174451212975750062022410428965780113339747348171092882790793770237225677300858305260033178534925619580573823416721844453250137482555711872856208312834587095806757006559840255204944237682562333314709258888410567869096789296985794423655679249751030549810128049055941879167892189602102583578399177329993670882840450566539134843490674795523708286843346802489377091494142416215204607711179545148078553162685697288359082266576878300228032411897442449805896027396699839048155935528526843650495916678690255524327755694213358275602346002976831041153200372244163715688292757250569723842617261010828468803083088997917839924201222011252346026407994694287534056576958400617545834386643272140873891218805343472505445390339954010449147442341170638178613541836695104039323029219795303176132067504943730152891037731537876038498653333261582884114480048428764750465775779593206010467327757896250022859888786062973657656541566795293986226810563242256349619802891554314685600061840840502920702781603738475019479582615872098935820695092391179471021559777422328220720942571410123412626092797412514248900976996733185903884547008565022734890310776639123647416354905616259855312829786013959089909975065483195660847053305622286422871218015811140618726274461291841782475983426708721753908480633082478491247858731254866898326212974290377765160849813209336701466106877646065025902458972573367509882373254443112395688691178374766942169688351269236941043151294565174401992747326657141441170732612515144730152462648645689164607017262853380817262413742410558822934933501286294965141006947443723998985354014704407638600895471338272693249813536235662728426904556028383521593556030068989896837570560341562856119382466161535171162051569160225423897450881280636181825104301929753694841265356808747680024855595046926931745567120333871243876052713653392849408364591943661263815432372836363026360022175499418392940815607141946326828197167776396378924922876329025990552925115127339034826968193984527839426669060188050310354274815647381616945516478932713606081715034919712911007228833973303699661164479180648829364302650519083578440548160259192217841308165366677344171462801311340502471859183547833723299867406684637167600487184416328307381436974914091516749360229771886351918108667121067349739026452004170280368621183384032512489349244531585320056949611005727108845613133573889441679044622659707455736098639163687878469713902743980317341363241168659040267453412042803934628631400901397603654889091918383663389467126556045192850537149078831099010383150306011709438501933471613470178044266643642031842198525814561444953530887235373647021002070108373513811603052256604785747081872298747463274487997251060434841336967599135836527285227422112560827172092482305801339661157142622096486716149034315265367130684422179920162372408968454586870988763745958217911023630157063796795591930241468484926086669548354959304247221401089463900598835788610635635094928873873714441933020639776658915080365354727401315771219278693616959068271322754854779209346143056434148321206971290685880980878929684978587108031356736297762233212081819464720276626185940376406103762508640472844061605164711622243080396956740954836721498262884667286477437477399826257590011931043858656999084754983515858265806785737665310764299596478694899321464372363299642753034466426094009048920925370956658740891685949842037878216292916187055711651010502762744950435225979040191336169223344172392007693695345281157283769327880884177650646489394899389329497052794967848025532539058064983664687800254469762697676187641748073827230265325235777738127745768961667537347908366499736029753031306980676467366709305947345772159659428512821222665635920735842402121612889091240292268123650976626521784717809066011110309574185409300604298663832001026225085238631390343693110228547005745351276476900145115884601197540345598693000198308481134426598008917950442272344381758436027522375184098296526109347338018610401461740613872260604656788410676686084832227469917070881117428251421558181297209576143087997170237073973079150091783055858185269696296490738937572824739515940854971989031780992134682320266780313479089293701179740378743460284975406825982740325056847386425288430436513671923852326616266945994050580908454993612864063120773955005670599103180512544831654027953503227500472843451268516374045441843663523680527536938664787321072316915677135007988447486573373972636192610553231842732116918189997971373971671200778756974056912901692503083522798523787259051685282316681998042159551498962603708973962362164979673445980327760184773697139379026122297195294612981762783834209200163015215715500378279524932617590148430645407702827417604217421763644794229087264738490642659868438707344348096533702932741825226274003682626912820976365633672966855835847325402000752997308259547202233006202242071914241491001486582430681972053821422748609637832615827878189072899855698035118911420546359230374036515079439742389843421844315876258054062431959297745855048222814108687578462004855837794992286477086706688368145194673906946207292849514209785748405262288983702522206300729024621584554613799907227513744360755664955135079806423791237757469013056344116968742277408964901079959525060458365663108424746129504461878967245959806905966673838390242247915091654452644769237684676242697761601870044981565242764148989792687674034109044268501911592711482105572314013664552948168634581020151967261978803392265109796946207278517335644147676817649513901109215531497953888894484511656481014969501513798944459451740675431042538096038113781244888306959064852505316699644277400411306241146999705265573908183507617900002579486606630652246814544598934529817763558857859333931997553724452233080633281016598784432036553868749211184382160112426240864734142248439171958625576936179624155649205453116681962851957973356746013380247537471929316731319448075467213663081810239368835925791461667259387772146261726511438950364251585665901051176324828979756064285427054477873383951403804854306160891870955719147160899659627520674570207456319547607962578335109645657889485748924636111020725549128895976692320179026216641135064521808160516570263842430182274265650034628622304368163282493138345147183159454086887452174886484813160330126958620044327996616691692724262683282986502290822624085994352243339372717469893604045274607672687963685014174145928179563613776052827531073458159287021834629358175178404048366945507109349621025602823292672302531536762236227055904251485900687747962876127838333967860610669396046661044376472907261073106287794400184283990099446893433723275517662427738120389887734171791274131809228670171164413426760245959754021396375002792904017342969670118699937205374569878227022092553516709033375301491527728406505051019450067089928016615817284781238303408403015130513037437804463306225071760641587883655937076892746921008013504663855722805545289918881635928220345799684919253443812621642627054798365069543170194509150800607225116491210820047016558565679323056476661558780792357880289397536429662667494097680557333958471806691377253363156747604722533186619879987797779931729519585819876377266663811720632599286367786135158814302808473423465824909930022364521804237241159692840331173844967844151894846102494497520884066120230239190362772507092829806892292709287437190784433841748055202676908568508888408260154691225187973827258529950946809178099556228393407697407092226828525110256337199215453801228584839379089836012140046972245951108144254281217765083769594055597586633672838242386755146652493356014437326370546439451109201067553611530976227034321134128649883325832395462334881145466572625554550967047662784700817767635354171960671324701507211072869277617954645100581222596140886935779561168140452558792791298282899498972206122681009454845039318046344402803728440489550303272720913222729699290521286935405267923882828125518329747329655479343410873047732386888762680734584747669367219918928506479742173157679224969014019463450876202196805057500756512071419008525492525811670119258567297790727327556708246451971772042607640564389692487674552936786928490972656081863641838695532598489051181079802367096898626977957311937946665330322553253470847192152524313667163859332868272003739550849178598666269764721744472454298337687260639084901417005694677736013392194318125052775407265415098026430140179606076584036186937952545987197312093234384063143681848485677236002604546287435457284327739710159868286065849578484659584302596241814734327063788141151355337109105023765138171953841125497321873333715666529237351710702652330685640628442709115308951017827928011135539966654546234126579363900732578985534032907782002294554888441790751194360278433068895577224508076359219982146415907855696614923412768330980179976394288235624169052571994498848152902187858194305843427399914158017155909233271140360311961654792893730634388718807728271594024793945591591453990418836065221173360040253961972970751030074882550454226828369058955492626936438714931152360983755138064873977148756215670630497717350973308259549411792966023003100237149679765376972835785785212416675127350792240501834664703437016651881499036855784997098205945323658561788709338177389393037424791067405188410586417139469799304419350932917881910605851820989958124251554309474898797519201165125618532316522057844855214004626822422007941645755353722930980414807039164252921700630815400046632325163392023234676554136024569972231518091427021936764913993093031870052765619148993378874482669954696694454532993180081469512299346113653421027239525883477853412025166462824498528210732804969331326638861142923764878425072592784896761567908176936344104240439035200129772741115354183526469307981551264035329709412297687585546521636701457074854373550225839988406558800805817354054934259059030358836279729624721194881904609669312792250167221946565185066377289730326242184609960279436695909642678014858263972199575450431723747477386268598910955652726618244106943870546585243358930295800762016568371886806335674412380495236830973061683784452774924768338834694653443914077226655899604462870022217203424019276777203416204674673907702326120985883117456846156842679509861083013254529102027397623457559441131460650657038264240384015364505952320604607257540212179860956243725009060005711154811916858166975587044402058635244416142282052394297923611500743537464802858481809667255030109028678487127475252344492038424472170896536843374025014428454588581613565397911481891339661943267224392741043162814622246913365158117219729027509982703373070957211872223872237479298943417916656798415006684414095086223204458691071438926941277519545654138553826386611219447775718076988075956978953323565191916310980647011084811843157414467358771011664869134791152815637848797127923164013121856530244175243394436486085035924973625867976813119843144827612673239435354884363185909978090910481770877630903085554622036001633176781369828678978568252267240259537178243484546120552061108484265164861530162652187254603598703255513142047511929393421221848358924439764809533098853366515327111564983993946025109737070878883127521889385406949597068282614512322406436697073013216235592433254743986189075475243365683830032831037788901299942959800282399104333993343038043767888620209382008634428409330926423360049175098281682780343965140796245876582684137480221262599844017504394816742703317964001278951534493840149717815863167045918730287804678753170038747471329337773976436522836447595686436373713702302531867257862479908903005733727128716671420059520070825598024974348390544373382733531616654908229095177227976499323545692617142428976185261030035849789592071184704711223092574973038726941899960061216218284058108423880533227113334218978769740443929752531332446378920844476302977774954166083097372954794061795267700961092070024438639700837746383999687128667113657951484369729287160892911266904513218455350909160648536351953463024312616830987777149564848848854938224784753111425747165600321315520872392271192848391437411778426612320539895242533125963289894754194194600804168470392533540289881778403851449905833177618750260736771833371447208947186038830559898444719405091463104316776514198385129607535554314779458714915095841367985592852341375239167190672943014848142333507012598785530392274441230033221374546269822963708667355331253047356727575929165960342574464100685300303620352151151115582331183003945001876722766908139039096353604701058051976057200466957051302909310438980336118740939222414636584999821742157891486297141514755044664329566656693582239780369576289590316232749838392614556717396958507102617175861773689714913734702815632555284913450956829807235763754757686562057609691529657492462744543415155709973019476648643234249800962225165580177114477444784649721976177865432117570890871344317249611457826772195918471012908184345267954369963715565905843557033147383745858843917204687099673732751551952833384832004163622103101390891550463472792606196032267703152435146656386273978238022947896641154150330513663089171826487288218558735301130980538687503219315009058626843217088073769652555977758744361000652225680338089539427443131156810593995457698924891268152578726635892106698572780391636629935652129875286600094999642518584263153623754173033144081457439367125871311729749555536396793889046268361821558846507467020524174712397114213603868686232178091737602692994231426619215755187197302613355699460576530890169280114160716603808271225872898494827001789330121413568742154215399845418821985990810897459718226781121763446049652331456534321310910935102938859775105721543586577107708079759968520796944541939562263555104399875321071207728729039432130100067470598760753000833468758913509322339329250036506121465504896362413865059411320371319344395535985322239206015796977002475962028717909001541350716840875094281541081289820183542950132820417377027063064079789832693055115534128842406944354184966623940854610512778141807231073500893571843400354217945798647019009972792169080759484512435815609740680678793371927634941473192387945086538806987289252236480469279940901150564673073582824881266061113330181609743838236533019409237158562236735067555249588925983814185161547035640233827798972391650113454151789469422754960799950038756296420033696338122200104897001882185530055777332642480819868809680325482675955861569626239857659272347969029555013048250092113773546037891054549515016515123682704550588432881150242552893794022382205575998244073185205758109482179029929372515172982054505666198290002503557385649728806358233732696057005495621751990867044187167373199360862333538062869000420851935396228102651538933904197570662471336209671979995926853995594350710318152185761264198796331211517971293748907054701024777912377855588827665684283680349726609552637540693232280559962188373515603166687818739179123874724915965460426443493785394719849173663698681028062987015374966000767347590230164770886034532971650749004704807126206934899382181657820773632813169569554772229003555400953740807684465550338090507666162363252312254933518914588132825338784937731366078165117926649856531920277552387756601555744732467941692477521372092439579258524775484793990052667098720593839860526952342660025414973856849385580122223334496342958872213290544372695492650211119607952462703280411266209895707991276054396092099346227800073012655406015953532503988960249408916008269590058076815930046441912332486988555285534880030436354482343330034054175781967915297710019198387758359332175497923623867602049310418230574399312961813356930972402651967500241761996514846427417850522131844732519285797529244020941012221069067531202308932276429408407787924337589931332881862329846618636000369119070232574914260911095083361918000746903235105797135746570444597049917566588429247185099157967015114933927991772488775025806606908276685685998652102173912837904492363409488374182374130491688213751852716979271805372417108495499560456468999729023428693515736342279617067250498676587272557174634921410036674428781493047898890008031258186662752658724584660244956178205748292145184672689760941548909850738098236778035159148177952282550217276620083129371339101362572395535513820906507949797363958240779678454832739811973458406345641876587885794985731939783596059901390084780136732625319406876320165700095127368608413176980547508324673723474328369303918112087155096739482927131045769255028955506053620235725361404840195805734136951865824093976291539952114034746316941477403294712358688087293904947402428766223474046564357368618060048868805508197911704931156229917904232398926662703216658738411786770624447872491121763874358496520163841166858919459497436334922932633512564632668604874902100555252871782008345230201905182677913684209862542719116320549017657152602551133535667405576395604166704039495121312812272672737824811006437160391538233527209238489252583476469164023422836845121376651242144455259505205897809608121986122931670006437639028057918700575642759086243317851681846606174195091984124465801983868906852155943346407758159420337386982549409608620232665629515404170682634857852555897238030398107272115694634133449023557834817718601846804790042964433533647340309287001581777220281575132840746069795342194599532076729127520007288700595326465352123625891808436403615277400884892684229024972464231051448255489412978927442379937700498860632172576975141275774981327438152838595483814580596844558235501303758272360507725852679886043701585545116523422671884922420258511341210657606347556971900659241212832698382180111683184712410190775738235420786356245544782647624487850256167526933679306908874111539409289772435543056103427076742796240615160830963215442279895108010156031477335409597367970558607721426973961458459238028132687965155302767070956354376749363866164154466646413812629409672987696743197145593935316280682115640167180339570516380042854686662549409049234266122192954488588999005641696662385154980006070055697325218809041551667234670553072014384536306527591480058683693079051025771308818486826936155449184585835457463607624473327407755988896351083487066618994117716491491610733358451226708879985065395586821382444245447309984319545026566109436348906331661777306588693554586619869314788183909735177741332956295986488733752379337187702472682751003934881967273931968487986309519948856689520361878878523963614066583605807326225018290396573726634108862720653593424634039107864051597252834364721762658968336447829973649824852546099392826845542446852404600652054048267447701350331397981386660766434979537024692181159155952906583335069163736133529629083915575568062164550742963254887548052614281779268584876005107886465066033436118065448619532132094832281432475672483541158935014967163498709338295918905921304266065469987679431727169252370674021760336436107905188481919330149523791004288108951427248879431838006171228679505379634982659094466083588564225152169876842219265647337265027219604172172947636601471700475976602728804870609591743270464270332074580061351852663141193094168082262863428597178694670472054386947072120569511852312270910043851525340722909979837571888287594196554248390081549850673069732824273412924999939921062612627634975569437439961366333332627221183915500316950477790746560934967660396103552056607978776526522590478052633233772522957227768935267828381926763068501263546634746572868662738777425641304501514986703637569875206607714870307154462457862867866689798789179043513285687850647023111621594430183039983992299695768105964160872579421490221401004624823317015227618530983317810313442481615055610981948307329450116023968936464416156391848747095623780797565465245699935798024137434260483582982905326252057164776478390227581905146453636554054145431561343205658391925987005712901652398849424945745608315397796103099841636680918656107857138240993720681035329212381360353011272876620858410441639746155681673971715106103978630498220135460167639745701605720058243632916331250616066307592575412132300620200415803375989680990621910850589700079767596604315246378512954143539748031068860258269331204482219648926664199471951208103167103033772731775757920892218367474136759463851914097935812920233321094755724886943829927779085714423137673818387067241945112442366284493412981338611480500266534680383818622029193620253030540711892829226364077766399623603905885807267422430140804517058137878315895365655353274474691040445694488572207674196996696157924675584815134006518245546486968549908386393414660456914744095298459951987018639892318731050634865828804997444713382591162901829216434204993580416214992856860790862222758916195538290905954048403036089577727777839245523705266504116950857991620798858637717836682703388403800059678575048870965853929157784414050997469800499347743265097713223651284176187625951515222891792844337189910503175983717983681907747373867440890030993786866511085564690271637698165885078443954898003130261582466087404065623414078925857651862294454169464756687247482488833120095467722296421925177848794614683779184798557676600723846045003255607560802006626964256850966699412986687003980601241004954618882549186806426353481750911590427352527372290193061206948481615928950382164702596213308350507980126064775942829970357735181986677197460920657835894194128166904907044182968487474778824985538828929875990748032932925581301970555899163579013244700130593679400727417977886295574585269172008950453492805525321747335773958647591341619169365933494377835279085433539988823402558389876000906991075289204443876008306276840379200276662244507622798319298059048269241801747887918748143930483324988062463305203057126762413669512728437338891047592484941340413427730667275205052176341668145183552572829210553699477366447602643490207691450641797876709701251429184591549459646195770151225207239408338368972686472151865082261006452154291235242314127986409509768994856192848831452366801540365949279138542270051689324883338614971954545662264515054278434583222901681322255451332487399600082968104166794898526011022751409242179159901901093699555172708104313324334654529685083162049941555416389282695237804441971772592556903619776730424319070769590977449459294149336974735744559491710284885673507713905319625963308968296159215680457778985252262966618714498611842906208844186799385102301114885501974960947404982995178020782535117271202734511660648187026091793606546775242508494100541916953608081183029255239906228918684489084716083040294031859039918967145952573171662589735037170493698652221261664212920464301680826663921738116736836354518362161741343792608915654573569951676561372007081758398329141194420347882474592741001332985492482710484333151671282649207449854690744864046610156336025682825024930863138716203670404095559964704185759067620804245791353619461098355385284030856640080501195219323090056861734023209580337433943645481257023301642402006297131194472492873598192222007802752653054595436718205771178546621974624101439272770585655524502762721153884618876596237029951216666157377119946290704348171827564312415346902791926184732745535552103387119173512188577729434999432884058561131284889884660714396826599746592998758021828504913868760027853416100355816146053080863448692316590114570365415908977840200464816245137805360364589789833809682224317726433801687341434294157388706331529569894936018583044581882430870365617024187985084569111004103968972733073474736388346561826869492195542946254292229202162174667792427600808275246800017090404393455998584051938187028338058310273821299237455175247693227493641101477034986629033255474114726879693426745479635575861727905956460669653172602117910005624766233883186257923469267291986076147940552415178614965145824430559632414924447718162189664451831448216693104591245135992261511947885611861212644938073289514789510748704890009834066412971398352210329682292886604811044861349311150042169786737745525533007579964388367365062178066468934411960892792762834646825059227134318967849043451201735127649193968818111214868547344538711902687084069229646478571695362593096869435353493265577528658822760471716611178326879685788275357120465847679247640146289253199582964916680654761898699588701829449428107231473722079398266515311045349842686639838921553693710414252297930463542729072972317815444759421126579404464684974869661287113163180240056842119973775349422948303654771233956187450189655055593856840488643140490997487609539846794431853124803230957443220243408059441927979067744192342023784160647145830299742317314994857952050208360522495598320501135869177218936792164656439317879516330279705338489540090552271159795750051059467799106244871301094426271454869469933714998795561977229934037898200543407328997291986676713676915873087425586504421386274487593601506417863228893738989525840340290760975361481102479406962514625325807970563742508489731352616707596481012130551929058961191558607609595110712624787508226448142754724712931142850942433926762256067294300881550217254280084189411112509532408964809104137396667130177951404585616217082922128133920459500472135524326757797659783973232779109638363199792856032615393369044638074618134507018834073908627231267419735356907970900757926343222089565857506068801249891721879286553866046343793622064379170919469271775996240553654404837489827809566658775609392135877905565212234847220775589126902761068460439849230124852189560330561086811510297899655035294414344264334231183871006894085001434321784729246552710808134123963136128210359897706247915567991138459953406258389922088685245174751229735062589364948030336671691062325315368911017834366518043280749149630834981496969255724427482305826000575871551101748612371422069032567446333357428892331526351960038016462871849776438948907726189963646168434733941687801557982870988799161510745527789440311868798332223338313282533348922701824817713055627842644436033099634188667698966181615996860570225306530323301407704125526161070175186641819287016454631401094595563073709473649248769261325944620455582130140355159588954588902235545778960684588967718449807862026957229850456052194618222844679920234763445424369428630500606990746629131353037487569539493781596080544072699882448133082469850634143589810607340633633138634750014014258618435000755152718746757516434464945975727154315617553306149424163523350156604384608872415763498675591199941622198634252928481077838003721264037821158632296131405649989612035257978244818842432874751848642111492221983809871710691957552858416282119383510630556899606690018942698586267173760883915140211307953379886871232224386237512795874462392272084285156082546174108018215204293392817194998116741234998046751067178002867276229833803711834607401938967604500896629475712401273598390015050310971749636247702531534643028202441528501895348891490064638453299454973542030349053051633588159789165298211089163782076008097649494535658936774980907654777423937251834840609552604817837334988454980597401112881161712148372234440209114485972620587818200677801698233311984734524207398766135757572130767055874986458243380386973212917583017502093799768267938277657216203694502150270080179099727576833761304858980806319472874070009460007319221671577775839538401978332007035575150479773487290900123362792058393745242377596602557307722291511444693896183062637951234643489154774165752851674027300390670297052405891885175261090305106411611218983289958366067556020347381543821877356508021379556688497832900672201637596931344486300816707426533773606069136588439627404280128369657220991138666073155535757674473622859628261276751424570755772362517030162836455021769232013948316087683951366795195031171652079428492682347865140146410704997230572355644523745359768737516756675184008682419810377860279864047830553482979549965317697262919769918830980954902188251044688903872805415323392352258035375697570048754889030306342981638510260845140091718744944119146966629413001158429567985118627383327454374771509962003743372993724822395726448937656773841033865887123409585711291201643644232472507327528529898677042490683149185686019228387944075680345616523318696308979202748471751960120463729084409914567078958373318143617605181718929388680373376358270448145564118424918695952484900576543070720595416663528983594084026840549094935279543992633415869614276944486181710894504534381068480252094715218646759198020274314005706731676846572859300582723081513725760789592958753982064867899577974899830094907957497916392555490363348708631990716876041954537721604821422102619203842510884236197041815430302799886728608997397222286626852091734193956046918162915672953619646237873279555873630516287528036730544912650840818939443244146704567339278425498528437261193141058681689240426661469007207414292144000188244030785984678610710867590323738976403009211450805235455108006225519757947830241148002369177275515470004879302681886545679548587238839839123990714105454456343226943820688150960591211127701267600023156850208992686031738422965110787153327806117091651289955051418119466969916890421832331691377502131059681339000391171632627101380403873966366094788148030658768177927798295950195180549625285135556617972909205828794179331954941766318782432712815437417612694302921423884621724703408436034574404247500135729040667894632214631961928358366356775874414752353007714173596807647914069903863218447993264317191619499431616011547520354104458905500141036786997938928429942104573454004453576318064235170891605405824676582631736850733179149616101345269624180837167288066154789210218328940496164866019000991891171602000114688660086079509153838148217972772815218363961386387373561983765226452590556852099769610865057636890282248904848867840652676780000355698943556050309913644343189528218062990410427714150111795744130640865931757802810567849145268969823632862011911979544216648251682543307866671006719494264856057247570195140896698188740240389276616333401958772166157299584023831112431655880340966168108843538541928504697776831713165780766060136348400567700901195122004075039375154983462057583887783687464706445178429138329226675029785837775313740076255652175430448190531855162538097431185667737909834591997298425142059215204652158957341106259675324125572678072088213127999296935055458460029667780958952318364938036154479723481743426963798852883937678506114026942841488899163491969864625152076462890016924485045405257135147676498273083820361275734343026514698011971638225774778869139760699782407470665886136213136916787957852939641045035717394943461464457887354330292338530792428788983548455834885130920215390953616112788345807733350915040190146113670135791042344530500271401910654700697980714014712766027434027300727079854494939952231110103965232149775924559654719972147331314371984755587767244038173453801236037997838100735802423560009840696709927151580993833673396892979818158110778370526651465720236191603389300528123227815785840815887651723853633152070874856569799853370268552142722196141842066226635859477961169986512606702411812141745397863590046858779933218627976983808670507040122683752009344810719606324546630662240138632239914357489243730433187996759081586729813907035159143198108725017469373634564392922528174273391587023982188308498886292590446418101447383561210560099287569998941120457940871078426213205965935650878042051968123904002843822054988365981980746287744742756014066073830738497378856143695429607189532954773553840647122299829226506224957046313123585680967183401017598499875098797555353249414610023601752932483661202846203395451579496402040078776991409829854722447915045492773081645483329096030239886749882065620550504945746752225679088994537851155101398673535778103867266296153273573636173390960266986609949230435349158821622574892657615539369273999717591474989451439164942573101561603802299516248632392255040753170279563277503018092983457456185252303810162588245166375756795629100018623271710824023018879800499295263220924682998887825078194260775086812044428501222740873184622317027080135693277273401927565374380906487601175087942918740180209638753958401359625208874020733500978874320643970512291855022742201969851548946189243354753999703457309054139282511353452146776902717589454475253721619443355305510841199663585940000925976278207589218113242495746496812065466397944237180907063109537370742423997240423668905674059848355448203753705003545669176197363859757907083736577347457014738389014536293187612901706432362888215041794095350089066271694570542343418366505316332652924221398900252968518630319267021981645126529680700912542799441805049066265203568276421364618333726220740400054735282708511753483147971587234308935984205512702791902982395140643454491416525175040260973239425422885050293633500789052606393138158065073378696188799991447846677492297117925548581397742410401761294593541637983326532742498688589301634567596335531676472137670096471991048070115612591817330519991027958622697097791609374515635272873920917499107034767228020302938509160216670771311266170881712145416368189511803890338158897221878479710909321781156902365274580095286515250273281601733229218597328742582779104925204111606939798762604166351555783906272766359709132862947003575767678298510238947602421816802658517341333194096306272838848938193505309048767590976168793559941354223988575002403303384983869175395036101257760499429368515476872458414489087344944805888719363658618876113545076225754679054297604030500684544383044827798029668741479387350021080674678123613067710533202414311570504247306493445195647107713011854103875792420922251309432411111736836830317866163411743785230081181058132043412255375015274461703631857344172662161815878004011717685447339728291691491631467778988862968274655396530724182283131754731082565435388766573613389605851522482118563025682102882659689324339555643711147748974088455339862072573953472567969496560256050432550363909520046055603460341820202349476392889618612570298352038799859201094453207799395429075948277929396933311444893111090007068976652856306066845215458038105148476284487002273025116665052703375809725296531205506472825684614418240018250944054726713027856922994950668234469083604232193776914889256622295015455712447631229048574480300649580160162259245060498883283502646314317344120422349366442360895084006268648256253174671513726562577529784438913737339176940497645906920572122097771321405831205637995370127754342781188552027564347560222287885134578600053916927649996819867273162634064946355287934957045674373217027091034995873049357862621627550935101999357592708042569773434755789927875243403135262481066324589872541452017606272583941148606314599200040515484910489631844122809392134164644621886191536752038368707771809505756379913496096456543649193483925464088630417282686888819990930972985676171492941326915810323583018582178940136109089111721216279315778589999905163259371483581290713952294512821912773400711873197732370633027566187002406369229046022180727251042767404192046566916509766547187062284766206556105230573990519543605152929443693005551193737361001457592656446867758671781732896938244380735910867652238712592906856581020270465760956703650081194703497349935628827049942522823660990224576373480889721803973894274004945377766020609526167313847418235424941836520828102090450701912720675106809611799053845587602921330376556486948234308706459495804685464895552076500223929186041560359578666099032408253596942607630632050628017126849856354046545937775479799830707390776147869350364522790224999916894800370315126358775981491788933713597823963273415907377707886677035084522391660641468944366655795325104918631235814031392210731136584886883470106615829795870568291562962297816666772757552124424419533391141029724211739489596676099240164416923957254240968827511955876577111126578198470357624318501752234325745114649506970090747639097637950177240695221981717620623962516816966717189406985487848533580529086280674305958931502833933768207729741942625114156889952561814349204956868427644714893469728012798487032471384864572852878055278755534199557696860705790662519761611666471967337924847215931621685262068851937352787454509483258760757473225638318879921785112473152778640202320765800951875204623036667934594278723788580393615168967902210251667633123038387726523972554664315840448356413017584624356534398480589646314088960612576163186316832382559557786615394009078310729539196468543079430304081772086415554126569748015967148828347092125948340966930938724038287205026864444005724741498962607683355453468041316187086466464183687900007027015088600817697830681329833451706970137232164215730086870827380773777625350137104993606251628277755361060642022121500708508480035863173349658928716543018119744330585933150311523080941368527169069764516329578327120534342338590567142861491752283992009516398804373497269580533801872565820729016199608031330637104690738811500277778351375059225806498667829041942060895938784253108927258969599353110505191366867374681326162627790951797845217083677476625435038389949078622321948235456471797173610769270933577687834940047572153211138598277202676119597349057084725135232400420694512220331945181649293457698156715501639519697661977875888801285948954153245055894740139354990929641366500708463035551799416303372384010057892744365074425236742068524337889376824088078505884564256778992588776365817964239760396639133771324157446457896794715894796903680937660817143717705102169385699182498199690653711509685899530762085339335762302747342796333402034544609775637072962870191275831767546516647650249360280846697775817645212929461709953973470031050027633376280357121767795634850139048446909242643487436989946778880783531240899318177744918404913800078853969502546832610082089725944144756059391383640783425991424652163808435277487233956209217305170251682947218758659295751301214128757012278848321752520751323072600601705665042977927361380657410515494449325775275313783653296581324646169041415953276024943155308800896331309820409496934525700582592491511228444049118068183050819970104976607243186336797982499548952987862388110874004116812024231974329194355620880272083498231728394171462123618797445923621921077478566995173788047811197685512566271928894006011539184317233348806352834485334464938699210168731018099459872313344026384040046973218463050151478846391023758541914266262698566554501015575864140294711023634383773650741619208159675976839154921210544387703492602261151781348385187223238179862393182440657622893314743429662599619297536768211180316948767358751048352923403534987012972406067771481051795816887730003396605612162365846789670558126788635851563217091436981735481664875496551097815981462081170360507797909098874052133817204446216501468044622787531607495831224065020871361026489065259806404447316559984269924714490721584620406131481186699002951571326325278486321032319387741087260338142706966249373915386510226336456683964579063509735737704575841226038483532251549529776333525193753370056878735533614546757225755426375424543255875545598846405121303294113979051772484392694504933772040994679104812877081479627398499072712319839570303389148414867292846565318219197566350867758079135830553352694467847507030301117167278513256577483392846117498426605394815126857552002010220679027240698616739298946265442633584078825002690154863192415291205449892595357652199281368325931424848976249260484609802271604776482498106326841236140374470215528276802224721193724063139686872767236259427333819217112169458038402413807533520332364304504599425960542880952019183887852680270503600387845817651408565843924252090800891683408362678160398808954727418342622263937529846308465799835043570912069258374823052980554168182698278415403247959140883875688562990727466322418356193730718233633058905356480914747599949473447772082726915643768340874787546787349975790822887654707040541516874181153517673098441551514630169002500963702669633078965196581992346709679108552929591359594515314861202410708805437919707391460307882226578381160341621153668573011179676666986314530740024797173078746943197780925946272890685346740280212301027275084457042410520415465300854593220938876674059499616611012154667517367957945630761125072016782405583797938397313630557207902048595003379827196993310379028822212554025645113529885423232675792994156520209617287272900453603272148775925730936697856470042171152363286604153698891327511141809536118821532834951825916323031541346601497058448770589328239111719473546436768619077237060889364991875572451444134356382847328539882523217462948032575220640090926723913808758947002676712572580423410090538659323747939503912712234709491340529956526312974209817236775887228648491631892313871764680534597255429687124150689045627980267115937178829127833629529161847254310161679573092507267259229154114390728025999192230195893497392316619378694304797716338881146788534758868770800157396467610736949587042587254467816482949822783075723208836298590241092028608348752896008261403188523214120223124875943444498675685636964300867630524694371679165637347099770152080546801164806708479069502668274468971276064336954914162833835933800225799915675545469657622143931609941081339734998696541596162946254142288737176253814017357831266654931122435710776971915152505310061483038791291817520713000451373308415542625422529847571719286071483757125615229279131461703448434527485978009632070191378645148067370492217326162156915772835635039195837370653382854701147586427006697897307866444379467456491622801984422693995533854306523089596872986462952623700221638951891549687544364682609271197989072230503166762091133168979201946294689056286532721432721614685224054661890786641972745606317392570058285418995344794982546260892402899922887831744881614531107795763265194165104426867003554378358750025162556559312264645691599946872418041096104965350556208265814687953406404446532958632293578672743817283406028763541933599327972927094219155345624499153027338283741197542946895285104886919866791538580263572418217059448887373675562506453250461969282217274379075511274119840060299308685613736025137606736826493716742378129884240645585995058902273309095882214583313953888835620845083102746594054566270914885295684671412290588655224130223104478338072739145856990128479299684176154505500182021687350872221865103943396569874747952914417667579463018934428347045629568545867668334379194752861136220379138534631330617815123223071201600114958429960202138022640627631613806630681372466092727846034240487963707916686352970321741606105011748882381777114320131370544336863280939771923679945642872321938339782983935609340497541211551829097618922872812811422983288919113393992511096427773186827415979626672780165523103920302995634005419205507649652489800612289841927629007656778311355542821702370491064426300659310399746398764397397622005051941736741135322718626777408103790520697578710616393071168300696397016464251174754285883609274711264209262773759400652632217492202383064544908076009578956674583348431482365120153486978160454415977912662655749959852812025976192850536753776513906928528501907517174028032345775793649436730829334442461670446118326468345176945346718171968241707001018564696194763211204116989866262178402059316984323326824552117764621070010307162830904824790194814549387323985880894014468700250929699849865987208845365593826165722179141027936949573958191823742772611739914917935550334646567204038353782076139026765618780473378277732595930936438403074715261584552380287208515635749077251904295269189916959876995043349915223541066205432424870475294762180687129161749738821988213752977389412924746044753394501251409090046877917465370606157220379631867096377725870230624402472816713178301217022131151515113588107530965944397080166696684277980765804106412039637089035627779874852566445112756775108516712972260372843942126752650439162176827529273507060004582672139536031253554749060658046182051082471210373361788885230939044643354205478818955230213523917615725890542501785695790539904091774751446422736182291055458228675119627037842682635964568116906034881343904307456900732609293063743617778891684601995393502020093584737627813929534168134373906402888401627088244481008291607684311877974435382763429551160767408752276923567183501198741491381623976109296795013433388236052177290374274577365850116706289495088678813705709825947246753996688875352952589339315946357964076361975574870208094121491644537879569848827522765249482703128876989003548366094372710205279468263698614733025495283394215335201209984029804462927039668457382633209498127253890257739049563508963600324433513267681662597726763893513185022353240995143961374045261009269296548757401053772313134983837452068643085317248072356845304032150638667567571323354296312993554256038864449904473465953634281318955329794268913293968108466487712849851638788287203255350627878142543510704133866828511759925555611632263131991654091445544308141423104694560756165948952122604808421406984410432658293595298944134547849865094670617752093886178668594356975786957615627289901701828131510926770330379367663064361970642577174922075923946698597985036401928924665170083610729720341330280673781440907314327426458629564440421861411885428841683508246085180998359674539536648620109104721494854612086317905889968964486421570992956908467438004834445597863177968065157914532901125986155281629079365623607717216727682717283175943123234032002210491056914158288061763427535814226579842625268350693500697867170344719328635115216377090352692301046725364568490293516240521147118666464777931040922612929058000112977162589962632122181357033791321082077663673112088364679387535973098055701132562191218759266917127107050275507595895241375741583451694058749815438668916402209862458388686027030920795123076813087941199124196266066318673312759915464811868957097135605874537776275648611578366889387952179491953761680724969488028119097089495502356627904097274541873327838633070287466633291098554535169816986931384616539414527201371324832142506781435310207400588736724605354758252826971958856403333875924914026734825400660879124191189693096562668021981224494190234985517209539548972182878936610564656156011189705272316297883126661636739747847688121345256773430616757722847081480588295919822912229986095476869043999183504198850330206541985558812573035788884238720440124255855709233154664353026711735463711075529010239941156911778713244336291976094531905873718727710722730203295682912312450532080535343890137298277382907589401053564505680898770858990836069435560301157768928342049127969371169543020880510444867962485251665528264165365063435072098804886931021792997852726267235869789764133065763024040263752418930517656969639721268170557069830171065674638381745981156047330978911855793446037730363933373589911720822993636098242074009709272252187828828559862854439748401825500050730643421592774597907251821938048386841191304319529941960211422299816024851844756994922802884716038524236511381521472956942289440958597846130592784089272838709721012768440038057906765012767995848723216555262132189756204336678374864903429275124698694223986796551271698939863536371549074600947700823763220101829304897757725521440584452701571879458876942238010624128656063802982362172693145552615445446985610172357441522842536324726356516495853331826624769432236215618201198220049145060875355852585950962990616722718292885285317899941701780504258317244806482547292591724261926216336485707568176685331830732438830418981857947941207043980711996435942156978956753112920719937973011051829751609563338136166313072448161487511677769255836044817972141618999272938645852267296364310461635156577282327759773865551857056044606440815242820285977615963656677458581662396939098857744496738231715459133317429362528990568424424515634007243481144881465559278562782426693318877459388075499754735167520622253182416979450781946265790718425890515804877127306810644686346819077307083173924546466668391721570638518660747582893971877271275696581492079775656642113703162240116343193462786577287685135182084437446160246941664510437997422336070062993497795603327433540140303865354282372533726043781182914613274034537002531169010949431215458792579265391747435367124650191137441683004861331431375564912279338156795942032406634333179379925218108011457177519210759993487643248913611738345850345000003807237927951342210307088766334068766212592600276271619043018219721770776679563747626418357248741541959066779796035362198016038222102353210237055926765196590999841946894492594651500467086802836987351889019027928489461746400051189727026483834042522228299341402800119985209061480391939914478123988270177408903933873720009932644430711387363336483592744547725934328376432289645924909392341815995008159130822568709333949218776514381543691276886156976754512937506087271212925277030568127582239510824248250453355824187304770435639584822915101420867164186092027080849655455946395373186904505255830319855128598358697378242899402672514029913316994172569538102579560759610344773652873228168818094925878228539507705783472406193323796445744500691627565174802790722953236036268734927255204013857097972830682388124950730922585974840707143795826784377746188598578719895474953180826661854888377569446788711521447719244623813962896233521551999843507652592682359583418994211495583046867001611551719464815690654346017444368253969783269582719799146846029484373434930697661799116023358157770313647866764786685655811270922548191506757023397917763199538821819730416583717082439718539207926762641437295493862590578751697428184812242644071216987747963167608404479800169579863837900889096697527514480772734480108334263426522481190290678272132250891396549333376629093788363250439371947436078284232460828801049479037074596769894560413680355889604755038318496421364155913208622729681687651050814893498879784730124937592115124878756428875415936564745010915974579749021478386639058661692425306929809147655013882853780478705895406992372130107569253780444762073638854312016200558342233131781497351738460548706044136327397170749281489312689872625972599232013559785183627662650863501905126864168512041380919774575165685000257029248192636811193893290565033180195834565349455382442566254325199544962091453135150778134625468828282279486428808696960950245521996599761007430285851799087219652279969417401078156858435142576053101095250858986024773511843855405569575588377649452342931540949975334365914364243740498652002196728942702030553062874018078417800939847353157475212211412712951522917460313862436338332871518186471219161043338472656598527317100601580470271617601964767807341532024650987639322475396693995114970486221638222405094443330079314446339832721724037831737316251365623227367018736031929622915341341271398410048772550285331878672018704711334907983718791928952365659558135899039414072170958853385401605876012130351300125162734962908918429358081336279127408940183174031903320707662159314644767361334799406509321075800666433945324943792610594599472156890392561390549221488495911510771659113674511746890655195017893480759646330499016826247423092556251673953085941042262983133538128420723153845573386898271323102645581433249060921332439930823871129638287675652505104720773604015885289275301910664271868490953223263045647914287259481528641682554399340832972368698806373827123054508873020041168891554602984556562788337473677562769359200832709668110952404583620001106421252582576684309916667982925679414177193916922806132055960783278079079806926486152921570145641209462911771150618198663471075216427406188465363320719962854728471439418587612983746408146386707542688969391378828316982261777857348029276275834244960001124874655591964456911455401058082228573877232035786488032470280966716341372546759802676154491350569488102767827179687842080304539710677495228717090336204494476948307673254567509136456178171348256140868561890377736926071206250766061172227183313706909741274679706602905913446863607844304277874064719732031307784123114939056597418994128560286110855534130581683653277800995415240208387723042899551925229693479406181163857958302950483199103121532638745528981742193606000738921063131206328862000284227109083882629298680202113616935940670168749724619185261997489468039723220312079187824207978807129580622951697246784631800246194709654408929238686972546191154112110788140161330211474640093379290917345073876270882852056127414190315562066946852639475711503164432124236689091078062037727470428892222017854386877811295098850163519257936117653842898223778590769109612893077383595953192984172435961488565987425785663209190491340916027597320071808836348445342270498334288371390337381139835563035262492366406380019891217032173719820683498782168999691830963268705154446202580789089562280115676159795734954179906358852976757630097023933267278697758911085495933663182928787482263110124048398218772414488501616526855303959567088985878338410096010559348267793988254358285997610589198250422094065572890376819184957263350262602178151761280829173824997957740755881605435387305039956874053974906452032906212288311166796950975831756573255263414968594198429042371510901346735492953923603713366463213172575263045104728203903535075014279975919839670227120974183593440276104621645921862248049411710120941546017782866257966719877550440569704835233542098547561154537415386358745703883929879758517912863426034897762826380978618036956644221914768243626291296160171358241425246197069544029061026453097664397490321233472330887541764450904825758471340697157694637610763771453163012973611877633727262688931978142708105174534411792873029227852882890276004040035578046663749508903478011499504626493232859526559267785938644393511684328753172338377327402863278799523506909596492723572260468184035851048996126128704257449743069318065623984927819661647591261157468304301873653152462480793908829093437400537676890355696658887197458667546313484442185787762786112389097015466892487538802327623537926743237004380471700561344733885853854275217325764969904952239898052139655488978580749354937962441783035587766118445600663556495828158135155177375022568761497113961052317899703778551934334007127881040957162362487181029480122104497846829555771454548302003098930879164925201862034614960329853817360441131992164235984708225247127671512245596505744124088102169830256062488480140648584477959398010055196819006708308416044899981519540916806799487992310801588623687155850382629624566367426757397237777116873359440849510166833821412103374257602665512760773071196420464117388547748429950647551886431268146861507400444371002968385101045688730799237544551043145938690003076194515334370529828317828306432303855161006583611281592549726825022821422608460094939423620532118223913878160981262913809900624802500210883478559456256665100190624294769038103695414365002577093991705377419014933819407977292215680314949872862028687589690034047114928325253668583896722051570271170797101052781368876925578021026399285973837004288860083513321359894657001797762321631788370260942399339383742252020558890079640370181561665251700528257386308682739844532235762298950489841763849393928514129248554016058335186400825204266614216358506334649228851345646538613869190855831897770700082147322665294637901306543977256679886589752984376478791264210990003362800366910885126462527802659427326844407094183746435114391013915431990844287883341006265482881708110459939909621285565913998985601956185843340160211483128295006746249086044999942913548529006126262881605135290750371435847081292213603201254599493914380022187950731682149822957521800704150211584313674409637294559354130300412881334069223513890027320029734699483629222813167467720231117048127298684343762664222909450190295317311542482854356018996322334432360784020978431482004224500339108716456032176834985172056551448948693466949446224919783040927352093543367140731774044047790808148623636017165475945585449380050632781582629045840688578786735479163848864755773779162874158948511102113123995029158985018849017205615686926293354737394799368929839118176518536290266384555838722623788578730057177734532520247592591418036058110802274012263605021476428475737556542875984895761903491787875590658256941877107879258774183067573452012215169176359031501083239736046439404712568837476214494016094215901395104628477940536720217624823011782723707286417623983011806149557532224740545843702046255843077696902929844805739980795244867997888088070945630495200731201102917630938487131279022503439066989117345081572813109206975103232646507722269646511883743744092381951620394225432601277423105364543353117983495745686427005762128621682558879589626210836031695046410560328088024184074879840209632122067497124993279371834090190783611302820669728490951015426983346638613664007597413341704765794544224019174482484048037906479010278796116319197823379364974142740239311471781860773323280538742058603419693178797113529616026250058616008940583540804323387708788562501744738950284398326641601200363632679632924243613585874592712392292689270644887681178893904577428802795959731147954284314084193811633972899822790237666663418552915469258353379917429680159802642313154914678535347079552112009120073194788265940076687151736611366971260709387561093175541115692204432188692252707733970977265527183426140751700596766367130168362521018033640681418604589703332819450976519620652077387279941703303115097352866955470161777394199709343688850931036465301053088854786514215297476572964080795940276156236403764444046691509886923707214089336134163871760176412869869797155102212316754406135411193794473823107115180411758522283689222537714579664770938555931168820318245545909254706634274535947231345682931496835393629843195296135928377133699924105435486443811819604678880170028427089242302453332336104593883471629302057371786780649559092810005355862177868456645288711339805749518433079852753156368739780574796138243009970638285050064335506901960913602837227981234770608948145649268901378616817928751847917500072880181261212977980193855497937832840393513333372777215811520726637346742027554702698460655532703067143934405992303459192629922372278167964282286856542738076905068843325003682180432210273982458568722344301284056025534404460733119189420705066312552423965375888519854535892561175017582437008764899561934810399893664540047650400154702388456540872827004599084979947739113520407285678104035211753928792533076469450077644013455657814962598612986617872716990339811378726410365375033480815799487053401900654342534735462007226861866420650454755912753700902050640631913545628420275773523896159167605328522329256204485423552794029458980917741754755428503198494689773619190020642259421198835471835388199087172216249894532876535701727444342616969875488614307766502458273832962069535975004479713638226892500071634367338916345576365371762027142065812020713423014655400927766897793110917386702207446873074791627386704896646541758231760597462187886059369784789913877955936673772562621268465146687235101779334417702265355534876061804454280963118081643753272513316937721559750683328501953115879551153538978892013158742797321669209382290215214994633231750097222315592495319889333462859708587207813539609626377424388714108845218484974194969554716187416945411585294861257046309564621670324011680096951379833310440197703599947354848120871721967115398631888258450160084767299801902472741232908705917882280062296109220174388940472939594203018385974123471226643757221279827730245372962691902134420862878845556662440342008422694009902740526962964950869343945970319553312867153911395161703490044176375642522920820672019489752759130424303704625784142826101026461897236646966414415030988794531843369466757383695989430853439417615526630162358283240306908536962887280233453753826779284244658751554248820717892839412605209037871780279443200107617535362936154401980938265167717315195444090495842765668330304602007419968472634511774895942706248134128103443358538443757317263528880196249183774635974019370509815293622897318627078992265729944829532999067477953969361580258219770156077116305156590491343294136861470510719295775436399401268861069558519096647531845207609705529854804522514947581237435356752733179300192080060740904342750664466097172409213614228367592244735398566815986848728498380192314797019788190702406348548293497481034628700351841692127688481613044725035001119924309605640845672216875611684246732928978200799617352885670185730573350016259142709794793052133411725613581321503196565412878550695393665010999409200486486065370065016744057329419721156390482801587867999275418540821119586859719449833051924541957748600972707568952980371535842619954115470715047039079985939735620229173635272856210259223701032040949348067457831029232624601637390840976074512573337422828487198146252743190089219777045753027944415738897971252121251758861440358998116695791128922538341517084184167903275110419931274882104039126774321912711885310658544512987732697298035885943368453038488806006161925161417301947078954205066283230745185446596024564287882299271583684776670677383526383747566561786876749156913307563699516156872853377238285790148075913719396620405034097929995059441185962058006199084716697857053765604763743010334551480550035818233185174454731290510819855765256876538628466911261044003739849064539402296893534384414239029885915485130007392688395566836827330493133060265764178782398179072113376557289509872946059238920170213275512263616914455881416096292484242691790705355382392911217227461025147985183082117908994576909988923064434412648522909687928165293406643004074384158481694532978163625804713579296009982303973201992800511697939391213731656448723729943496889744527593765840788121230326177291683032890040689439705434878533439370608145791428511277826920890884427857153438473269146550553264203814736826990285809536395077766060950498967606615123405368248033545523638643068822863921789661283160338338336060095455006427059379479562180577200289070449388854519856658677686748051303791062007839036359324458280504760797246589921916947994615374000597578075901443188033984340156010204354813465909553233076303268633720925650723475858709671539984699995605169408970917593755471085603386976222312046354047906894765388626583020075140789900053284015254876624329020821953774959927291481749199243488089743566928848584003768688431872579783599797375582463992382605004053715494136318933607590717645708757783784141547289745991553430625670875570613296311051471260210309466870911466051636408795260099037023864639601556665119134843628530958542493190862351913294589075424831381575496825219662854979719661308555438280771852423516145608936122433673739457939810264560487034789897188396795142066338434634459809403815599685232372863062014180880515928556000269853580315442852894698831455115532876686657625704856758314935217244128918643123126244581868611273541878134210426260948877836922995016870239794120470624917318734058391513165836583955591817257717782390888521287031198377044624038921088619376163337747866039157752862831881255364177574891707633919835555517344757228020441909601761026060045207232847841613611957465484959480613737239380036051732914591971427966727808773661826422260177849262941082799698480841307903795799321062266295209548394902724299662900308638764178634861022949571197950565563912889397761795386518308412512914613195372701822219033858586130558377804174426753638640961654345141336246073285322490970786084182174176664099736625033184165596523769786102579781709127599013977486769123976982191801632077390806665184138323026722071225564560972235634080124611706317835284122862880628389933231952717535338151338763448660365783941927330988357971780358266414712202664745844829118512925656506685456370963243333965618160394716735227811026874093942239400036658990886019390935161670028032902038509916294911958222699284092397459063357695174731868013317291449278502831915545619360664486048579814321523665697889901217191173506545012220694324577885964319181707154050885060332165181597239556030713806373451360644569376570658698494626247579577662843211686012515044311759485603660438188983351453203387448986954169451577758728815561124373243835285199781154053683975006817322271090304151930086271861633124182229811820022140528795888068460219110160451591609475578898588207477536090763457035415795484936213003709575328185893044530830780225804149589603277267541467314280530701174410131973412126281578681878672298227126931835498868925605795247552480111182998536301055438341868579814322611201495873320375445836200415113745337660196796224488968339731788852680853646119786174745358090808890032559075945835811169123656860066424964024088381068064432092302323865294105834796721770473610325636985023969424866936001331685980144696082850362596731610614474178853980267608360088503130763304743593230418298895053572475351524510402270846322934214428435328558577979503647377864191663284636577055206180567461315831591334515582212768912033045672789026479783636721802160202779917133876517371518185220129884463881362439659633763664738623055675184060534278128523547808298258650494212829438752563424905647014591477806280735769404602936465780906774385049957632013740565868290343998865571821968374666512199502412007065654470097324998636786331066572791326721629730025918695866494196735140599647760014600608820148642406032405505710452649866199560306068902004859978730282546649523625961022685035023852131311102867969781576130177265646770815179214633739724096005670360447709158714450405170717953734379644142124100322384154313155681639861182089626471473790385485179609932336197603959980625910328379200074479671830105460162236707196814937065729839503080802860369443495235677686446569362596118828617873032882382957174905918207067666598610790962941966231136979419355014442100275794425556796168532321093676149983428786618836719164691309060438718502773974511446723930062887517578484503123646853121362397497467809620155540217789657747460916736927786398975675497458116436998815406005887440945134615286752938131985920307091434888368370932903347793861354840252682494447733701518807421076697515256114615513306716804508463734212218582639172478396408397466661121432438216202993109004476275646405797828161668750026629592020098774436001475531913496343967608169476203438905032431503777791485887603175908089263622190794535537903826716177001259171709221308231892826124873494227847960984845093063902640301109417717192571635879002174114147290329389562246622212649378185426226654209312756637431245955753723515898571719973193622716483203100147030011288125550116160895416039861558785357765917931220417686058694256858533582451595360956472605123566897676975031471404361329496633980658990462648740364655734789698380078866952800640203325431384112980702203502168519487507652059785036742875033838859439560790404575132136354676652674266427180303470219563128185294185900899076275670495330189722360810736846833306210290501060288308571849234056189898761672318484775222755317241376393615888237715735610396564057435766734353231956114089102600103786171053410522663221464857658871472371543251109224155519928182678477836334069133325408811180212539600676865295534597597073903058003959590545968237646713623537206208827986172531185624221011780654097457453007921736511934323174409123116757378014075357930772709208637963372818045454178952587856471645100749688363829945838759849250082043675198892291084103557274268005147776769199668255037516532874292508533594660689078416456471918646324679464172385778275953236208146878879048477351149347091242143911170304103424953646401564486627555531603094523207392440723070839019508618068824754135017874704968086861723743706790525065321163413022284510899120949687951192788885821382453051864693123440774866552126837859440234549445541569015029345887113930914004347682289883048625163093929466019821913723693999761502521317263674439738734969059235207897654045355956259643850349318674102040201604737525886740484546425104446474482591605567305846353406361230194852598753626931594949477301608616924309872885063014841248716346303048961541516097298589120105873128950115042648260216385075017547097248326378104930045033457302841273433547119575782231628616948745064294693595619407080862711354396634026510273048697953738900489129598121367095879465480946671073160452424855824342954090398111563368219651172251277882398550279368541239006524253342378732683720100492206068795523837000895656596017433259074219294415573469368127779036300046886590286878072904089241205451662400880513407360356537050475683589419256568286406975809717114672827525978259839068611053764814772860757329800990591677664891543196155735179065956554071561284091669119997927793872956044990672485615972252776740015950450083763570690125639907349141171030504162304843218891090841253906601794271750397060719890096047882515961979876719746014170134714553563886558889275542075761853170885827372819089032157617457746175821515080852045630587597783518865128834726914314723668594928261663971977408779727532819174132527312317024268380972655213690264592310018600045894458111364635724964504517434199429678415324408885448728917370702654216726416465609198346523401140335833073585487507150202224231797487929520171971360330450123967647906002447109455430811093882910260628492843833517453001383608004533946408303852423915565430971956449803072270852045450795212325508002151373505375516738980486270511190066313212240790108301382211730175928748108255435646736285383825394696715309383088003077919622078608396988963671834937987640638298014750747032110491636649747583652310479137782927276619453076044370078515035169881242833406738076065786925665354114845041271106964807512395846822775342589957177666704203125296609889777119376087937543976404596150233588049398385940400416009288352454604572184573374259118797940303637127754585314424835393127521502749098751599601161944797033210874906350674435145101694722907161917532993599302925637657316598994567120203155015354792831761364556829583515809399872617868692298723126010598353913352010012643887919363214201312693491682089240736329422452829407684730450469795337931386685809296739652044930273836598204178375342073711401043338205177935643872525305417168930262365191959591138800658755413521473145916426826181623972794601104383720475618137971150180712953956526016479975495625125291073862088459973247971613663224196122958474587101096204176023054084393334207341864008605851367694890771664698404218138163001922566350237747966672837270700334310135640600316979200253983152428711913036554423813560592556312607486239714909440989439026698214107559628215553290038853079621380630279500470370302304525762142839873526088113364343792752999717145770109019472181365105927394797863649200183074094965480252039008307896854708512893098988623065499562415692640110813640690376523748061381166626809881698369083804692230256022334103118037645649479995362908768740943370693324299135084219364260886383104623578131778822430349370493631660844247882390752008892541985730647814228850429478922459100931407665148393659247276593376182031285583594584903285804901264372963461200222331141342311302130915473850527862836151862899371714544303207774497616940083398317087407124131760614859952663244415216344615620650151405923450584639950229651492423891651535638839598121809373723302346193420578793474574379326295180542461373231860092783566313807169436976692316848939647105926678781427973656300358565701684771816461934141718145272922107378508085639110725334802466328883918243434998111712180068218004170413082517129331630748938641671776061845149311694188169465559577379530966975698762289912750595041352034653539461373759792816836822188210205228756805425759569249498643778348321778551427892065723908183660383162479750566002713659346969310817628996396768231290159062401875177071783963449795662189868748263205499523324771508618763993189544031127973680377431046162009388494642027701572536872150571424417421562966455775810807463002852617661278298807385681337928648587354411011599019278391634054242810547959601940350389711395550479017961490527602942555321652785938156821177499218910130301223435001890779036300372599645030186388726661366303114622126002314916632895817757227628675911448826997372592149873564568173097373569113285810672386682943503861168406246861180191350796319028341965741448907512551013110910461213624474686312766392384823760320226393846352941600977522189540563772617142139834698363477241652492067942479321355392716375996021719355100255367122761560907810374786548753431251639496550887639539793457389135010729347101168183187858918159329521065592969658905411236556886041503720854786030178077109127218674512711594649879987800105178724793610142952768166327769417402482354629244838232207095584077552260813354127040821141545558119238294486312717596569600012161778230259777134218134389603008107656132686196313782910814126519842854230205274941780118280051245194178068628328377460242781144396433961549353650154694492674482700985400305516478353480033129369839653765547552740111576187080738178878447973907825153170915072535927990748429719946419290764414046131346983162790794619646805493827452272628936430917299874719393604074784163489685990552149551248287497436202609561540529016052874056538161554975501760188215283807686118156069771962476128698295000954461005685988662476096249307242842663244163696935031381067107357702846014137778274104766136864132440153801039874356353862249552170627454508549929330461709206316268447973503900472454169729142393315127196998375372020359130409607043068013028165134381702406876743769723738880939632511989673092011679841779383018377564398568469360134503365281636669107225990319924744553418762121117976544116618149198918854597572371834190136960930038258834200177006265611925870110551126642077790423854353339293251375864266263059893230771718709714789518419247711160460192324880036827365849025991233737050024574371593803221391484378500809808514039362052733529130922711173359150429908696269035136985756687198419739029071177641075381691419170812707404143624691950639699294148057745795637230642702786377170496440335153601607342000672400179934821984074847294628776049538255551257295876730174710814921794129498610899984273103333499576513461580539201921270591977453725962704253973941810132749610792746233157001049421885273142487208053400016934446697611087181774821672887452534176206989619745027543175399301929295296758627540409704910409677259227817703906574467256569874807073653595788189215600586975880401263339513196516665635671642891782646141802966803080581100813799216446605279574982151966583207500631543539528549784088225243183636697693348504487131312356827874046793816325814954866441807323694016409457804260884289553264798493405271777395577707980109232434954147897053228769413138679765556576382449394516867418534159345751706430846844238652345994029676455172916679285832996339378642624021546125100081544446498560715459002713277532033573752008401344871120069341394445829724625771609492374197201734755661960226217965473823539538849808639421603221131417173507610764285042825675310811672815467931624359395571488997726795394792320431529456193064412631700978212459551314059276674429654748478610658105587093885271342218364645624118066015208796305150601822117080923080802653008372537542121293573392345729658614508412277979775619086791337924337057546380826129663840925535224221619455057387903697959418712191619332585818591301813894153395120063160993780822399938620519766227171448730962594317808653945916045013230596645134396266046676712941465002679090974971793395154921702507830252900843476956018354545760318159857425098809073032671050901138985123682093420558027537061173745701610969016543824141818751688877154712715300325744523569726439001494014694468939484333402858032513005596102643107615866393196543581068698085455468885678837042742968586865253516217604275543165716920927948373920861309003457710984777306441616737343412875348439672070635171381345528366825838222771663588017964410096875813651212260823302725534249593170948113164125891773515457213944593386688050602500555292433694777899402145655675108555362755805506900086410746379902825681317992198905628513969939344141922644022378839657158560654081526587198187658249226374523246301530363578387103726983583173148857911461007779487839254978765016751765770173142057833781288636460151534886402973561412711898527467391163672216594966593257086745170258565820763355775404995507275431001687657577619264974274750157955866226022392543451134879785798655909576277541484559554324810258921855009085442603587841001512408478446283920231292097395737870959188063025901348786800178867350290298152601319168266907356553999960146048546302280896714676693105486696781604576764639165159575743790214321999507176246156522728728351479278246840146310929002663244977578193276774239896386698876044068414942785429054577258286348941955541544218523680868060112261231259371234739867170150716621720889700272538569578371095200975039623361946539714394940777767689617045394373551732638133146408751333321644186041999088989043648526646477484817856782524789274838209226467735015956239182123032603230882887949478327475692924370154773759427311377395289870893237536397532226028293453213784665787833013710113044017584141492668336697569447004770522074973285667447711942121178310247286160339619261573412402615064929530941434910961554530445369409894306330900961184718144448515293050961304657843730049824213124403356847754422154805123142766013398517334600278967391559690949711815937319477023743205805667762564705103531822051223757484770065877632175303131874299785015874309200213644642728533027722180672253468590893970308107917607135774723129797226725301966068009283471321998768010145373333169863833012902489959142686777297324050357535123010340467723366555499227671728443243208916223893018215269721477164001072198376335393620898199514894967948639537327871623531952920491554052466127583164990768827359760384915668132564735056864339781767760713582843791963654997279319949050670148450894811034733012915143771556872305513018107735435148893716173249312516211181305442083038245366880798349835500674850361370967068852067834515353202720374392224020633694697354706016057547904605734842151693786375386661982959617897188641448985135918808105711406627561590066270727066338215706314561199842232652871649452074885996049792283528858391404331839122129442548196389609991251919932016982230953657874256265367875879003131248144497709108373401678904405747477078075038880698161541316504381936301614059387178073644946544374354789434298615567789636553765746355395144984727147100966168197880227842426909175463313304827496684361925762910694283474931621086717523476832895227894866367805641304439968541774933546651857007821249034732081682883125590589506421767488621291048230934154305054376452374093006170203443724681540254122003896470325284074586224242335076873350166806894928312177044492645479512330662835516576281730643639358141397342620049271509104275633317342434378308175705150045072226999912844838211719272380742067175621310610232396454787302567827251311604621916178137966149554690183682671016894616634520099503585785237310341153221002481693570204995701331217483112378366829844564978475098227549954496497482767593206849346967799637404951289761350072161602065459664448299326971240164243194238923003467142568826853781840143081301025433053402908100729990023704195400744615110410618420943589773732049659637787194141001380344811823496200626896462705561358205045326681813612787134336377074046986071817752302660621098916754523560572671686406895086873507408463868933627540078213519873536124258365749615502665959623544543307252716501805403849561370577777819052172385709437819285454871924799403704797082868581674990059097672864660884635651512145150285688813604167070123152523283083429954438669084935075104702699080117033584663556981723861300060927849552452686210986475871174002723697448169320688912671732348397775019130640887576334686441665224955312640147968780871899899417532087996726641599678293568439725711630768512639536836815799070443905693022066651836431915396213166639205647607294471080955983739495353109283778669282165897723692730361243905480798918818679460702276608033379185081991795502877543394469785728051243956258487934257194107181210843263169093142911056172906216978708476172418333302569667258389850450600016310684416851339304699625396809906087370632342893708099648318934255448072928373403999523450553188460188782708290631448412046277784719880306520502692125825740856202392591948937634735801667039000115964238641101900894338884426901963623007713021842409874862888473151048993799675987733420294357183963167491055496810668822167669133469594583308907326014814635815763389376216227502256385197381900130960580113746445203575410936493591444444440420847781407383341296197316297918789125594642196819847464608531166791675680956078361890110571140001670915244210762072921393239028639127856224738757770679702026342437290244553180467794548037739552207299234394474704809217263311385055891634557206202950936086512074987084089310638573801586938343113063364681326409869989509535274567697505025893619808631380501500570996061186770518641250798840128632417937180633490031206517730766875927451148638099484209985608636431860204258058293590629445424279613822250356588276133192470719325249570910881275594947947197725654250882754116677295048604376702673906975553818334892324796757038794315854640858866549491337892398251825042716908046793302783889805630809938982543055121696913674664109669909254099850752194012704228778988816376016990657439667046747980074352599929767677852459388811538623335347326855294684094233478662503613893723059848611620593763883176469744487578043613843166161769389687688758985158457496776755355854244247831286403692935064407509378314741902404033969037025164422595311282003005485739225631659841039881178211497495928062685763770582426880988683571524120575295762187535265865926931617224417421654379239911440827614778411990449427372932154996167812863609555044061111337052690292059641137744079008670862483646715366430487007709881029923215461690354268979319093993776226935433195323753823203237943579435027077732342442711707521583515641252739723469177742909495660025302530842668619334425857688797137573531671308621930292940480636552225990673520474271159474430364367827602908799964333214454228218844514903026407438436478092936176885540510443474252813147305831969548914118259127100577493100638312043913813284841329077112269489897864413978008704794262129421616463650085510814641745972695492402202887460862256970914955697294470351951662747161077109989062680643271534607131060958757178525146442599585196010301158603347958370196278804366043897325268883530488951452780570005259560020119600644470812540506998097268103760199941651528007832358059934431118869019193981742473462906048317097420635030515697633818164158164921588688656965402442385923817762710111213495323843782681433275068946125085154205186165091041603701960341332412888035120652069139964534657572660967509430983546252971858547101668022005086144173994497412291552778750472089318004091952961363828678955736304180074024323081373724148364951120580961791443878414784118927781352167002471095882823047818464466799012021927788417085175585238800315737543069552200369085299314241510497171554609731035061930119016366018347679395043792782162826540029260557556500262801355959220478159657324674111407307463242077956701192310589337083178837044598906113705568630438874578435226415600928452026214538751999070585638457471407865066216394413580716332393431852204161815736774842908295987771893153186458543051530913832679690266130741810863066578466000870656418038357324619056110070395100264400279972297053512798813459397870113626255537962268793205289345438296020739669883356166964314045881007110189091419875536539915773557510227159728315384865129856737665157819452258338529506920587791763619128485789733615267490293563082774833481482197932718025886967731578777412671989504670977237078430676443813818958646513079608905081780004725513252834887906845683437820392931631827845999966733948582216650950055257184851530676833489831574836241610745475622652881477805205649972627652489443986051668853436549387639876004570065150923568516860379278539465546224800990465965966454299718064231438890201851761686437169393813215236061183860867632814384249385990348432938289767341561937687617646446446043570996795285973294433597572459684098255200816441864568692697139800184910616791086337258958130618196732023127380089466400787645527805149087776756026330093351507663161862394137982709814134651544617755573114268620320136747510505998491441958830096087199824955509599571496885713156898538653871615131705093546415402468994173881235302273700992594280861722158718196536519283190499099979830351836530501623170721807826033785501850187454028815778529810706840600943199712611450943810562217621208983332136532456016339615521950382021449760800687416735121437007781182321511658260496789757882401156622147919942967121140734321689670529825899579273302094015318634187268791505539697527598491595519033568602960412043253888374198377915421560303590875962456514304338055459040267177785141815990950945278535634611791402031070710054815525684747947548894897708378675612005813889422110362599993595819303165199903042094303765632730791018838105192742620871316390912103709581320424890179892765403121234254721479095264260927866797070319826156277925331799244349872020176844593011567933717194931081608254407087345269500463091520411029252306109697714386394067502873551834423088390608950765766370228211478922668482739418138376808523208244334931429467433815545220077487831532978010176506945788952279493973553316674396115024302201953785479291950233587986002914563668757860493131758897535703518923373549501589922900508063419604814569664249847077979784181772749682600921704612479698269255584473991146449233869589165160233954968265883803894098613251038410213882955439629080425978987260853635386819993592092088195449432364476537300715422845166329936911086758672435782272120692649560429372163737379067007198555953489909052317873824165158075656397704896126303987209765863725252756682914501439925884275138433962907886658239347689495611478470224678027666319872819751141509827060498621746806190513373963762630626708074257968099005257337218111412520498035580110033956160060820709344026082973064847356792369322322119118918518642752850416401170610523887924907158397368121707052854068056799727111866474828890023853347193601915583582963868219668784483128001233466241299922526608922909556130632736326263365181474366753994487362079854176500880962978111832165197900658400000320087193282747528440102355495044336090601925746219356015908778458459065158480155059270880724786611353858625478745264875719240101921250780062382940486085463722623274159192046241779027478692650511766507294539294625324497812700816406696937836203831303728810822092628451044419969157084860312505130534130307091331575523012800178763272374668777003602108281802252049536476347984427354629897152686255933511779801959667647830172906935650043733156603165711440792024978285252957791016681782115893724392434143571831462604317766094430234215108899987561632926993419859678086637736610318034882556129333004587812303977696560735716751800326462771141443126038267804820169561975918284442832419490142591323699815282645028610053732492413074902409344403890578143165175390675207619959054488675858596862498075860409598952111233883223600621715663727135991493537460207042838063576911319213553527321729377586577496197768162902864014465375509262711253662523738387262613772323499260522152835954409881945271089188260454116768009362134847363698188322414563079295080535626534963456195568715380339634127622828501295735991097005512882424958936314782427419007957737289836368521198437644424621046920414180073705930582562564802648419617243143000604440983498300211985303709892239574797220925664776599879335613225983276404356720172681078853528633949986510683045738822202138219193591692490500048715283495948178175942246798749573183453806626748826768041339195569956118021485107877156831215076261434240605810683564654629690805590244414330910764517233563959644820502470129127411566193979971329476628429213646186093182492161675614243362219914848995805839108124367103150183408680714061716480965585711949459672224853857625037983591366273214981833168414224804151246352946492015530836641852641391674037756066012888478126168577857982191665028363731342052393719701263496170689278895579271859822871377790092384549618300789419368251351094232723431060232472595393534793118584009388195884564546328260969599478542337757610905222546285750279667666276978551694172110025815551151701074647609603159569797345203680353464424013021961430452199517600571093293590752941902909320047523895632384454336662017644985442525116392985609490334559307043283416563607448502272023452025894403926874096318613792925500615365550688228638125428011680409538221141663607644654310453863795358865980488010202029308037724336783071131887207438680867316696005948959146416315790197762854909912643623038501659795284065450966488779296762867999118623589335330040029291109218007300061506120415164241895234502610848099265983881219288209410570262322585705184535852630971949122730319932401978266881314264757099311884744019328977196534442514512132572996855839157726663796936199892256283139543507388244028454948391407141339836274240540463572659983234001371531536362329861544623083585702479581676993530633841343832978786226526013182409820886549958198482813971609597366233247501454086081295914216788772318940740112215974191485552709721574672783202654194188292157234825315127805514202705386746546822490258158859150732271100253008274267199224946964729142851708987157105872922238924630209928525900739263391773954970282768042216481375532907627749466194373918461567695491593711583952634976179327299588319271729781858398885019877242486698670646815261863421645395164346071458593056215784955187504664230746227657063356952474742937062435605382432933824382743627351978279760218564657955725895378892801872640689078850198937909924227663062145755977934879778851210953856247022495726522624810297354166131995335726997051750863792044160776936426885273559456637910974038914007974503498243048620887005666645686801854804213190654516139752414141227327549108586108223750465124245923330559418023817498875535850860345392844864536808258173398278854161527053859665886550553357733945858172544989187439814364965725633976446978650138980479633319601176144349789178441368878427012406528035637238789304293346564351258607003231360188692728009951598711263296761733181905467724755775546546229278756175731171287059905942995747642326502257867857068630599727583253465474276358702972286174712524580040511965143521669930967470277852293327536978215807226924061870646215487705981333710900812226192805922511592960347484837159364433206355576109423922066761802231208770593983323399151147831756099361565822876538278818102743223126052110112834956234488998513589795217460306617778812534055799856364081507091805153330955084361846560329746967085147860310261161136242707357152815491837826483006901494927256789583157513455305577586277418599010415177604004970157252263266924709512767781915161836236991004137331330253731055968897521885919800279049968051979531255875073711658809195285967107571663573335059500159554208252576565594679389597891942766906142938879369283241495795660323324308660121707099427277648033683115118190315328598844947990740601850539872951540305308271364408669657951063696753353848138180885659159048475783527952715143697806125323896027848387783302208807562704424440965341806532197393008206437293875176144884979996244581940310530659535596113895017198613608430944513902789108981779364163992724831468260985658438985267411072915016604461563372618784415136994823818362712435342470723070105747543076852186557488609161514117932357879993219837042955765990571248152055651844745650891116247266865665742136199965474743360216175463958325745575176396609734607591873051663093503383770143742683788104410225799846256751018356535565214399970577344434535031939268172526997028887158462166191152870666573589309313820229790761133451808568396980149817512816240339200529455582417806112498963281749749761285035441781239850343901831545318038956830218665915301740118289092038866601406697425422759443445213761579082307844679124502156815844610083125011694913626702721995536628989064301155061790758864933994093066267448193773496476193006578868233073523245969177350287330896874901528075536987251360195152506117523874581679990742274821842882825326193057519893139237732358572659401766863464049588461826443945304837268861061900492076540842173510737241696062952852381457190495215409156482130687235530771746107745209470508154646509413983916177491474566439413812133446254338978632997729517717649668010216942711578069026785047026547610779778557553316143906764557909416981027761732985611871286796486347672957259855865812330438558339061459886577981845268150152146167561762443919092672020418305810142679902055804560420465927910667324394664135701685825906162871863978972271543212393194364857012415077732135533121574511441769731234377098419525220341516510737859534421250227303512738618554613955762152500686113593055720743636131321760469988422879514343851320637024189192503001490656782086861611679354087512321025544125417667448997642883659522779792454200721070290462701647437603250170408485710239572876271433505613316141915635684951450072696046445148108280609721417687109003250276595109601121948700821617473636425697115229780591621676851393996084407634741068512886983904100399188444428815028005480390005776766255955171144559381689576677838104887872325488961393047858628628651327216390337430886102034117660809594117636655644798597712125328039978038227573736313847856319469329683619984417353063941671049470463879922024736152811999261859688479167102263053484472933353948763086179064785289065460135170997396650120374261280951037076131669740529116803814744046725240248355050239235219958234665013905655530196509008116013740795045022496244186426662359428601751177539353501640188403674391235309792393820869393952881500319568162381452456967829636836374420215744597081905568234752990797150587179009568470916713573852692661923938790270148300553300929662409811659560712106394931854183108389929095269740863399649379766967806878555090961326757721334856691864378096278007237120437274730203169555168336304291898121838729583215447614021116286406602538241977899261936619991823774798689341288940474988913011655665788583153139533715697279512284581195857813726610386516027361970407554518437953451990441511545640203027797725347591864673310995618744142394853073001020722744256655717153514917309235065562110046428077911103152403311951349994143402740827796772992477863559387243836405099003875536830891847349559755384012520207779397693553327831243942970698000359141014795687150054509137050275676602219141213216966807912810614802995053362945517859429536669022722259491004410735090398207256713311147837670554511171110016705759311457976296843491282489199485426214776767724601042987226992676969272903506546836600220898570080931814765748515573409941283274150703645087086691106905031271889332873853263814024697792146997205569493028995476151270130240732712926131994613560542960770100116751907190719751367789018986839291260082849727790479140482025488040705319354396868707101382205366775541598193197353891215960688649052290805840817429544096924379528100416854885011140192646308513322871486385779355599882519022229021829447314044277303741259903497674186780552528725641353147344019037918013662644859936552579819977627125591219844628442833330897753456954689154391190742743707126880848171267932217792154513988567930227803339248644682780565462579437451971968552572560798679711655008662090708584265807172198752845433569188630920195353936327402281122170549937159063856823427652452941563509005882770318825436251684612968146077358428097642622617923025916341870691093653738446396479407643094815041076218885205534983585800645606777803530333832467016265256318865791088355136333051000326522000733527244893897810294550854696639676548188176888315114355906247231423063058051239469568476158275327215198902205095610884711961948954692921764281971716735565929552067958805823550217767403888507912746164452741523829032438732605496377951391671994878661006855300131810547701065365508061817616713362617649545031953637951091651159372974815340948984378180170393348246184129054880445568925563307729276113023324190430146302841175444214471940868439927732929980596713441190049296676709239508668566407038190378890414672469479934161420457861696033479934113240892825655631745689606380979785550620180159978526312231135906878357425264307112439835610703234832260956117073506342349550608590993047032893220018147839725645210869806244235109321203732909861464210937883452066183022407680930841922771735563727893440933934533569999230883981089088419125939217970466924515413180366974654247180076574346449804956641025755500823282458440683525981989129367608361966212474473404727760688038173211887801458271682319112665875401772925513293710150875924296168118342147640230214729858826883850066629007426377327973835057865546215440417071091113057322035561492792546126968049131758913077749187183775403817734787243974367336755540378469292998499165971676677929612045736276823884578857436473153655393063456971438378817759873851071257503221154218717411956702642975243790569647972125166557778895319874283259532420982987769476535381509632077739344259690220611538781667027645851855183776596703616798667696637718602203377186474623880511987736323585975472514716005368262526699648537035028229649695975593790557101179863348536493261116230831584833899311534118604416716181636478847133849610149605281101611340669185840376990158223367159174807642322611714828393791080906981651467105440360779975049303790268489330545039025895206741092194674943665801311589563388019315754250154593245465116516415610985692984941200368407476008258937742223567216524338356961773102280068301172576625661008932340947551557813741541536621711651992461512721411277241463488996782248687060018433647754236091435893828415305433272367233838279450120877888690605314293045303903091609776956602788067721578321397488546073593342825899251737696529101351672777025143507807899699573594167461022692418421305974271144734130403229646222363612711877678176274662219626660894569723091866208598961344982398749471166429645081869138221824461536525054013082304230624023529123403037958659038544254104580089672481339497080625111229789802151606183597673650807569257445409425461142619645893237925495519870064072392148118608825621317219864224680362309864636465351876185418907600825006203098343868313456879268059816019397223719523116032809773670933263403229981718255547072647661976581947131189308990399353578044576712826841005313149857041790247725928568680364359918922372366582862153893274409923429480709717538930796799897866610508788409261808162814751593976926326108538699643675714738512566338022095284277750859662294090927242815863279220760569081235525870605022177225299341905803356980482813351484985519191477857886087733443502182343329853087376908815294055752197861658510250687861157338658051996571385216815941019259587343105348441065342438639963999005400728460207673935296343017727944511683250130775937208210183095634909347891508488500281718934167526166166762957926352731606730287002663279189188716507017478436003717373648252269958871629538564052295161608699986000820206181199375930010873966327440216962746213753208901162357652246328893697424319701126015821829527388774140491687851096595545668641367645723447374150888610184929017047438920393997062854364387624289668342967125941372047789857597867198773815350170456489979120907106727253092027677798810803401338977818603964266687035074013079466763526230634779595110044483891867463089156942526124396125883758765965872129852594652263873813582770148183870932224762086706495405941590504116295659603713641629091621268129953793012942763817669774337344706851208075747535630609251378759754524661996399637297915300575682561394220813581958036033106052404925819733660345931417317019697471001348050773567591434873029647279509275958848092814312269565743543421328191336437197123842138599997553470513307538519640660738471073076173339723822483570826818477108849390264077618051983808535424386537356021089907659464432364834519635914095789502551189802572546026263470835951076758413406702313096346699548273981308115801349481626876131110811109077377928922661317243632151990325159223681837791072016472245897240326267409740862882122024692644230030890928973487958101460735967002392164148540626486086434328565804103135756597192536078529479231149992968704264165861069549157772176953267545006744138790425712611694241478626834937257882352034771868121802928793269180683935554469595442011331284209419494693170873670506270720900300160878445276029235980884940056879859436928909773000559697965867281711906048272629720622254743907810854745968500061820538742668689709694832157478229711259310564408036669097114063006822128952643599201016962927011854612707745472944751170332053136477071220034124188407846918916541839221215688401914887523991186458656905249366043761066114601055593920082120645727281989318706966776970137324374170234933392303903849949693246613860244842930551543773431083217023938593228146271909180214890375405893744376089268180704746580085117592390292140218979168234261491815276885200514214117104486636167513925108695285884510658816386954491990238950436141918678524459783091901262406077990197573011536650043910883972827870771413098173295517498787043038571652217496910333555240178500622898304560011415883721118524207705873568867179887165557961534890430732413717122573847405231934712583711610249064572720998360101762668363047582354121156440513515469904799217826516831412325143714934687051647801313480819859258923960983456522676409584995685462036511215674633608492990171679849130557248953133024087342755236714917494759991380881136280373430418133794507353110687345439853665073460017265464036221460294593541120064251897104170612023340229031670474720274139603033382902105048472535601047524662093465711876703247595572196860635466856718736467020546828888079037907371647194137443871300621995022783660480328599454589599607642617826535411348288781385901681698554693221993644639379239184295087438753276155517222787016394777740999651894883654777350464076378068518858943588459121551346954674833017695128505561105173980512663636038113166570703353934123554075974590000427112926979733021192535692922615407176107932051459900386391117938439712171350011782099242335466446735115276153129868619697387952620939899364601220864806331468800438032530286081398658985585976306935247525943350084358623120629243153486455449663954061237631479336324583541783330873635088135278327448546069722123342781134917288345782959669123435371348606324398823325201476423558325867493759864042782860884293544384836100525156392422483911317295119224774021240607090342216375093106333852090328736686675668891345057559060376543762293453505023955050305384930411129414790213171300225245199572830395715154328810803302543863263212826310566969342772214771261050597182728297624112152826913669442220344727407425825501344301554595214255419015541201155575775738088550296838471505066757720437082236583157433482145162067749629759865513835058483725608245069849673440825930105229999722317884340837678317099002862129939812565834273441621668518758636081725584885263643127701627409312588245781667619596560114987742716734448972484143974288363129199313839813138350316299707546797619889215328424427820794720067395937466725956104697448297550021852909871395886132467330144235594690087161887889975480883609347618907802211653948940944521894245533595749780547769302488041110794530296115924201589128508137706661327162695447295583711071748576972628152952151190322314404946336590745084846004822310309823771076239157591950697997995809992299306864093297899876380564826783524834076181706780707675286831017960442667399373282154131000005322695597258769546138403270281621437100111037034777299588965966750890675758468208976255842627061574180900295536780975897705145677316022597175786256822332411859754595992227682618382328915431051029561049885348422750037117706624403130668528402666353266598522212641475746396371806313578970385117915918181670612580255964702353134559328670273950110426002295512723376538679718864057240687344684277966121607892197520914558854426555859913721750414941934530346359802133777362431308225377695085154264604493978577503722849640657569479263110328458452838134029824428395504826230888350683374860392665795523525268612542288258193017935720074368566581478330305839209086250665119423842652673744110578354158185930154520298073016998541237653239600025502702850264842681823352209082080241764350419012792560748076797765941850767334450426302703051064118682454233981209570938794291288451012915414710977263709396501614383593498980447835968817007533404913706170766247316017830776899117672206763022457254466463949519009533540937819869509185441336823147638478690233802843048241015131575191448808234775659951439198998989837603973290793158811754242149336167352362502098138735977021938745050097703662963974776804554795745546371489798127313937560927209080554192102483597679849443553559870716627599917081598283542568677612013542334802468184103063730352762991345546492891781620255136736169737522155348999322039142616756939830712056910231390629929218430002266825109836565495880661076542803661975482153421919189256178190337873874624812393843359574313084274620892968419114478473190883861284793654494229247434562398538620441032798697047588147951259908511537720219281633072502694868023791288847207151669633901357702096423058629610792845442561717988159932024242755537933666329508532760276477795817443829655530506647489054760365380381956214451547143268913084985608232473905108429436263228365482345901546574954086798994853797880583276003141849454476540281963359430992555705190324501998351417724173208414271272734390533947665700170531138294742241679563209549662922369988029184018291415694247787007840792870579808325330153645791184061099337010796242113031018843308665370722317794830971748246398535686919097706361806945549592805658164563158500026833582467892260027763837762742007702132650142055657731517968559862490817853508080232216662952061308471645268608866696735261374208582844741150536121937434101781055361894842807935295395272379481950028354498749712905504642668734612482918854089203278650777227115476113471204916526815077157735821341291520419468849054093264062491905127284727842317067825590394739192322623331756390678321893619925301675200785939476447576325803709488297342525757722088438693460993331863739707036311252639575327921455742970120210282311083616630999886942936204395458966650897654472486659318860942434997823710398884543750678460338797522814080591372902386897973098295340603680387997931379521822743531618793485104519952091039076949261919223116621753859071386884179658554753303669446625592656016579919652409362989287487038787730146284367651612099701591631941470463782587500595980728057478772010595814498110291981931391532237270586913442700178995459536597505389810030665827815929593842887447372202877500703920435847872258278041103968674229572869435376214790464308865279681222217742022985244962699608565822884979912501897978549187531933792101097809258517647977736757617100085733939385045745201853936784118960983454485747185625348987910089677798623382880818790137150560851783399836743308145489212526824615485569012679152287724290951423216607650386732663140091303120226066591894084120902977990314933688506668541344729049744111901162104898182497416620457500057949486297149744370840024742298204544501068677559334320027108933477697649243820371319612146026797956904445435826742293979533197709194300202774928361364922989286527524080086591814023190231865711196332650139848922256324332856591354316955959225721678484679652930918432413804484860139045191264549927595621472499079212270819345891915917724720795335911483946995217917134662393547734382274507825597373041759462819994795441782701940039981715400444298826261956818448399105634005971725817436661729855434873164825931682438438695379330567662591729338993251768621501245845829504644023424854192378218429069186536515135489978481754011685521491994322634478757426358808596851398787429933862398369502664176115405075288150031361838435560307521367029588656439132286451053394314591685247694839330344211840747439033256109482630560035461342972035801878518654802459452504322351986685199662217316761621141142883547363590592715733489992695819682234340743585375114137179592835708451742792007562880046395763486111540935680642176067755271803996094753738149185683420015667668846928712227837596518190568000386026714444433129632445782405422165024774788672275591665387599028407234845564148362970260090702693014023115897918678942540593792196781477309805660605287212795719810714786810814205861378871905460550282816660381843525785597548846542974799884494675652929289967251172318639912136800510945696494681224060745318814635717525260758493458206463987730991838826830405251375858238027697126960226006704432731968741883842650891231018206226531637840156181656790724192167531701733509783673244283481357647285178470880972549170116951386176087383998582093568406941300488908378467460159038241102667037492460906477056168298755030115158496836896709643503070741483328184969922796737988397123989846590985475980857308689111703410410988375579276703217190017077936493117970791058136921879106964308888518805780699674473001177054641991927239224161613284972940936001974516321702393408566840147745775779630642606950170410339195689549662187113209015353471294800769185122273117633382348888459514753530234512341470906342983824238806731046644221386378113822316704174839936849065498267257138012869920036184913719106062378433259328139869594733647125946815431234070274627059987644496271583905029638128113508220172339900653168789295874995149885542086608319121393345751050324586237536432687603724411631011277446037914580797964556818983869907520544522762977025602596056393720193437281137332512827541145187525516743783063221734580958946242774390162435215493180659155184510063397729406537245065720019587883939672521721818520087081203749505266090828856070843494604944368841110477099162481098979323168360318716795794189747322727087874794546093874201116930412383293391374720201640984382112794126259528287978044592718988466039416316004046310030863776242999129562791013732492465021809009286790485118850626231690255665986082916584750888926356067369417260326527740347007821198127089495780580620683611427867749613171740113115509838489990851513060519113860449307539468380422400653188606184899400514083192793867006367861183272523202585003170513092222409063921425508408407193124027971033927556176965211971166900817205429330767701827663244554093606691377332521923599791769861920500366107240734308043943943969982234948015508537429867417961575117942990546595401722627532533744109137177501491554374121729712254271173251188304913843652250883754513758039914864572455472615810216271320395102832320848708158710206301954006093686244273035804753243562823276259183915173003949173226209838371648462727438369243258365162856075048060790320168317632563588999396188036430170039510058944274635754088559428488460018856505247998459874155323234230505108574033422929242492267827118583020546824394408521299828923396361170563576237964404090319792577727990563043593354111641361075801823619970809340889635488615561772361971376731337029969491273981341046047593997952520666761869122726470634814080898931500447297834517918105555129900419481121678701159576090954262379900861419572266307353462844417517415300408946008885919298313575116285267603318977353064059731220070987637123938909673501963904499079483541913008807058925719673998466604950568930102756604031631555566316555658090214061303179552749124978124922531804925751954931702617380005218968553834440400368554521616025048637750268298043427752825283261121740998311032158121838182902482784153354029500022531114938522339693917172159202794982355095847719107995053694288640414639498922241116043215250740248557410956047854937102594511644617698447073483892056422893241389918116811586131167839706151996056002493359726496816684186352775064695265809992144119608590338585031802435046141152373274720865777852145506724898580411484375503707738043517018305902473580088230068553321891553211754359846806157420353507421524591151659506434713373617083068415060562200120839037091701988601101850174924480100256901770304949331250280815036436932539028715933651574096598155816522538771923992813573743909866880575418915894807423353752545141614155002208622517425181953234993151794775926741542830337528854903562399911044902926908735174016238433378621086054649996558185751026937565458069645606981393510491219160347298612877552435489187660247193304065684098133765174454425823034866159310245059521889599961208066415341143811147771209777738982013987145435881152462246181569014365704525185442424210174605548592975682206177814205317484830309484798752361111020776270627604103318814262136607886172577688768274275103089002051252846671577256340796631633517721477432092310401875434843218790949158166827949032840961464852759821268403069367012111701149234277737370245061768810696851222117165586991960531040761103932148481767094252939295062339203774316167358992744209641389137176030421011870837515754081192443524010542528274937272882513153300971886913154288970353792793903087927413472537734169971250583991573126102348986427149010950488117871274868306919584813682746706637104395201513219454721013482538395215616616025196086210217131432209876898076133841770957973403527906382613915292318897512758066084930743872820650874456487597083129111847259654699840613118876454579451115210792264515673058242453442528432698459892502268457538645200299917880309375329715933859998080389834112422835679774256055524715548240627222766333668748606076704401535282333516902120549675459463061650763356808961412533311524191596770479893393481483817740501079439990368730673572982583312895675673074208239840429132962717744072107507910879545175008921544281987875011504609452575845004119708591993403751391532932035188994144181605917582291759596556481818380670346745379952735768607561712996933792441821967957755845888634547238580301639827999420508588440258650639936328229910430276463964007498875211640432789280476571194258205535908856051577363473102164477146595846221870215675509711462596593412416352817383285197841320401364704368546100672477819224054153019641870645900751396794087664569889626404325842537611200419629087060463717381553784213479437932343089843188661672789579916254093404219184146480663241729404892101013320732959023062601361299788693348295323241971780460401743238926168545236025647237028988459289301560047791403425633919794133296982267935790033935318755490620740190732042322393380821120795296084903825884881211187521154927603546958935150303272912520674183687368086559603384824079435629877253117394742495830257257794870200260757700089621494831239441524828524338078148802325973821606275672649040600108482608558176274973194486174306925347085210749430023160416698722956988864919136032029177992191359248644040155207215031499450338609093467202639214299477070044690086572939475435769130669300393906401021666688522903841296011313237437708040547109964807182522080685486475208306489929133694566338004375744487405687242357367288657028770467299499933720398909956794918183623385154303364588019176408660657740509697395159269667989162780333447402441703192374023287887986836125635310433609113202397159045093937690646098237974341438489713028173287532314380634780085405220859949501959277359460385893291347370818543362903744904659964976629109405160626250048579672894865007884629456667532907679292195906911584774206741073954320479751213108850480519110153612515010702113335615138860396089972279099286468385968650546497015872499627708639316584681578178664731882173835436453098768012997959125851487668737052099413631109699275722042944425299391849173031100189832062037543410619041671118464401107960292942364931801302706600215978209271121657972805846301933094283805660560825335605290398905029180752638924739245813495927101641804308870473421839991085914286447718666828223447740043078530167779979488713856408352129941726104583021964744516786604957845727994505225698136071433880929846903783755392072020094918183476887236334664665463412918853769244218482664994792240706790096878350764305591698872565321086958922984406311437532365984573898118111074778196962701772530395451675836459197116312160978264329859962805954216633549180437782217700286440647958314942685714630800491446644654130040445061191125305388643716201370807648733043385044056720569374419492233994718660924236994967371938638534561822330035485189693099609210832137855690907672362141926965079224839904139163147537238523921410421377091980209746101863284974290594054381435263343361017015516504417439093077184246796867202666825083044416165154196752845649151038069772971603710071384590618216986209025107594223301196981917000923254499577004739280878096737482500069796882263407541844023296186375533714961675579554846274242856775212267167456822510362049386471078623009100792195180468669519492362625817159796234622403830213961952977337137257248455997368126361529249972993252562970675596331342346056294467074920873068513825557412706022604493742160457792531118798305018281739684746622252094311717771970989742248818629351302261526570401650810279131395192075733669240381397229138768289605896454333753583781402368722058652739751932705008322134582845116889506708161276741710805317864009606471945783437170938179355947174155179462790389969292101676906952770785695355987917993463343137648027834709377925422793431339080334123165010003498195490426507299823397572640604703909277458714124233688676687700146561769119719256261644933662619726599738447478426571074072862365251262896266989139360576240821759778806216519627122555436110367318622570933752032457500798052920174318966563553039625196145263320288833308888212858279971505160010786135460728575748478315791399311262758782352578645914204156234337263132404372417490953711925315390439847613126066036683593314641031898388348021001548895076821432942905295824049163822579391584523170538786702077856824464621827351005104442833269100315065460122719998690297493696159464158824645293698824396189187439929304081175376175110960301898407124397108112859917577562855198297079037341001794779325934131964301684154618145930708842877006008353106806356160748530635253390455755379728027249740392532548656800449313559209362062113472009458879537283522872881663779330700986285063945161307144459339804480725290793183185130712743087018196309086378314314627879515763864191543926761682721482577572256580286998171694565548150659262391941158722766305153107839525819927056482616972604836187995470885089808957752715521848267965133971879601304071933989440748241802948871901114570457002199156210385583634088303278521117021023993410991616425067340258371355931232776203683208147180350474313822177169650203180048879016494493054749831807556125633694956064125306312020975415168883543101823029157603552473151335952134024373669406068340831524397850057561735198996098674132810450729577297122237487461756908543665421395060236162957338134293462840320663328213914895875807565009820393409974189848002370272148226811419746986378037632116396938544250025730335187485491585006261179296129536854006232575979948534728832578386890289091471675586745189722412520521313216172499334343272327441289791225214794432922535167904126815655583197692980622173165261036568942308230884888421104836944877699977101315741884713872540396318585072026075069232574601499527338561850393506875599195232932489395240070303947160184820580063147162482940281804741717278231840999051511887740522499818041061412252436166961455353966538845824951366021713994148770524313880241446444016246093521561595329899738680367334073116688555687281860435430530427538167920784091648207200255809377585722478669877292731646185984897154034708828210156056630378641634277964891511105188138612279857554052618762672612888292458697167143958314928031972332208066656687509777817565251861797945283933108292715617716624066200554098000713526440381729025227862285992430364021393173440315350809473881455080640417545536386353496348642573006814323588316706412973185857646634636810992656415470730156821028936375875300601617599041942970649009614117454002705381999903020273635782086807225356840357651978743686633588084063891529144529385526517503125193052787895266431870504467898550585788973743505746557019637667844571954320682666579274072926857028098326293659660130985112493983764801035251877505494052508305478576277186190695131808982511828459049973157572426825387444477978158339092638338411495931876077525918989825299358259572429392497411076285848212453402836941117997848422607826975028745376709093708096365114809624136735720559786076341302801666402810978463160852151738670644655690033598955636774561584630639564569357751033425208178081452515907584172635916104084202241984298536630742464831212871700997950254846364806852854991190850990927598757030038370428146583586844170707805760028562007632671519267170692327276194210015300174910267608856459440141612308935212200966829595432151304715684397054041866085725126764323089040035435088745476477029426879601139528194352716750019826944329814288024693701538855905728070583052840637210339160689353068483617508938790015299431069474159481150554690637312273976226400760062400178815246004585919054008620184073471630867014934814140255181133107212921708436330136841252314350695173636116555133291573395462528273720628978427816372364386001247988353840502672699653387373104205228923503405561981219228386147799012078760934176770468988932556100492627349504736879645521167405072578118687779731883956229326998786391188161676987968906932596817620450104098603012553079781366066905768536602276853599339878548460593440415770363511249733170198206374178842756386159411777689862202092754911987363766614162238079954254338111414524495107525793748078058036394043536732947858834135972993020814826440637918527726910727808017810511031700916878573469459318155756718471511942003518822685246238109581991836224042013718679290708625380188374216200291432217394140931310952942312501204697004993659249210538149174063969298245880256965524126082586921809123823516537646331895719512965976492982829715962972851174139534041022797203881413091671518397198557471043796494137160556458665946971860687290366852612158345015996446159644962620208917604658500203988839963433720035422380909955247917871714683955975014257010597392675463029326981927187378503464554488726576945282689003755953772333001319811287005974314594455444780339212110603381690212338350833125973279377875260817849255872684917373737829422430177452674007201711895183960644431652222349713326118980864493631969621201568778823529825076867427808338038475116369388859748243991846011893720873672379410134525173629098971763560583159424226525425471294046276787969010388911680538064315554321746835538279526560988029673698562508677109346169730676891896385081516607760870103154510983207703492371161470612988606836399239324590526578901552310720366855505435711569031755503707043921247741360750124107998562214670660927343144153266901549867532440845093845620235670946728012236307610903003382047924910159213324517712371637221996480533267546567256503622756204980056585574845459965590813454641303023342099534428554996261648477315462243028290723725443797695106637745750275868512727274360231544732577768495558412366824948175872566487334065666480390220280972597672914410548556496524498038363897093200929077441898049256966449970099150444121400416042373302340127433391192227507702302482892582253986834653437013455640043902533758476566495432298244628110374853253434643413953028328625236959130910058288365222645593833776209607818197675061371228249606389453427863314252204185812868626917413595475940631124002580335970404170403777864291161815218094882804675755079169492988689382408591598736903289855101395121829714781221255737250307733281447108801926091574054894246356240047736942877790301883054253175831944102237751403770464327751401403791564949451900720283036886472000196036178322791672772798469722576895039907599219435898729486730933398223585617957738347569740788184158926409418589460960842723184873020819367889465028760100856635515554050585023269298184828444395617159518282169699234740960071769546271754961716144724497369649145035104561011160499716254340358457761151666397639732180864540170571219228246131703700192201597860130459693328922489398162542288918074192761827705776067436445803289749406993269895509611433173184923907494236170416317096449870004808520399849107293411760793159850265037666624574512635758356139863221731340224895202374875649741310855439644455751636290831579866061432005610957237258447013731104612627915118281758192170231301958454694334214735179947245408624139478669516283837076057182560604070393480950115015735182636049132307270453004334746001146902791868373003736171588827862894753847619931920683578586734291682739062307688639877855443474711078650670390241474385564685053580739336593419588476448725787503852191329758182427025832695555450556800027949155359874336832952769541806723097575745608137919750494277033760749845920240797434408548599048840777770420955490152452248028416591336962518667404624170443619801022187359672341247315069333823986816180533205988882727157763136346040266692222120368076590143776685749083303038484363604021325560701086532032129258564306326161613920678896298166313866252578966575858154862596241566193914258383489116036097888661219430624487624520303465830559995919057528306297252851505962377364387061731489892329580548946413213304195542326956103572102389428935152174862919242556402408244694453009089367434162045828141922228117419951846039313768239356506685484644798390268978107190889715886083798436563353735605119552719544377774436031121304004824954880858517899205059757407270299377296999599227982574729566333254170849665545034344209177867468198160528916567444995026726214483207286912736851944752346341465857775714384016715658293038279566534272143750637858570278458483577280698830014561544381937674024607851697758941155765620100030059101698639279251058326689304303618144625508012679798397664492730239149296036355321012389364659222318893872157366740264393722550202247940684736863390652900354334484842507300493304755157423531048341841677562040693945627556110138957287657209425732645315933514387454332814739858028539078973430651858747718838164581119237021542359478916180497714893312302980375223324807939403663051106790077657811925388692879588664543675418906273947414336769192999882584523062840894759129913778420801060003786363117057113973989758903978055267331564890615070341366441483193364759264023465346482979682500559611912926630096277647096387147986495763149926196523698913072988142381746711081089624266260008565804879917930672695500466490452939405316115575519299566804756438464788096034953464833295835800707986757174728885074629626818237548816424678811983046328386121767303655533584133720018723029395170341889393929500401549293219534453819903873989159241038920588406248075961854426087672714852620912990187714418773040253924037661435798015568621666119076321771964092375247094049619002437588179699785131423292333126925042681377866484212222341807940840273272634062168545851913357294392659443080324556538881462197974317560499201041610561521728375869098907754940239370779593538510047270833688103224212238863689806324654381741961220957920489343794187318279448223640809023358968043028329442582006973423096886106190273555824664264368793418578445166660726458769130496194283042795656623614621982427515126392435071097510175548496624587386792336093426632710523063811409500878385332050277417980871721494905780769233260637702860817724996297691219407265804801223385698734569027198711905599475060033656509464420912303011137984810260800033906849916619782931684200412207465624675820257081149238639531878907539301164417921702820366303460362228887222516064680298134503960319859338826946144407827972360516453117375759492336375846173632689141217714324698846448955547603503884874047531811253533190181185013295187705573156941125101263480088921337789232160101296154764839594878821863789276585361363722778876649812647791151313389610940811087599842244328263856140113984503707246133429539702543105329797806175405242671211541348308546697385908926891975565251974761522745512050286312723433674408896938223901702326710065126315839540544626080696271722884420752549541792933232132944728522572228548585893512390849323929235786667700003986708604403777920708303675548339174445459990370612756706980615012149662096944306858153154641885353213805261014476464618748969372895727625067781766644480705758282485437602094386176326437315171230221476807652456814382688621758231781048370851903771795322059832595825696765283862818363389293317072640641999269614640961166962869927173591050858626465547785816228040458087768905499415786147489167697807286188882972414633416294165197562369912529561186238091898184990383246248523377839833234505465904766855968466748155273596291163991091318966125193570318179580646792544857273656716969003218685901562374129350644730451594574180159285432199223943938944819394762017584290915390665288922347175995804659345235407004080934033224814380615452641851073645740842928066500428140111134041501276295558757041279211931925029435760830390172740992139246295630272845807626724420382732021299024628019724189885910605719929494988708586781134893983570613552566400561935414366839257854088333619489422025741310536359188947082446506747840978697069284425534863488444107150090075434589983719804671782111582635001581684347638105140216103283463165442295865273396312215640923516930767180737836214622922163025556314662651866173597280348533670510997940484774646153536048276222791392112442237548653195935434182858967752184306238839882797796107597702659965570556221644410422298106020670091133577237189067778252195172813295075805079736913997733719577056733924180879125589552033500739161071791662703026201405698133710713512109945067706624686941701176834181727061982578413587713351135070494891063530320566117841802332002719238190940858262085236209369786581633732598336817319218655386986960964706883056018793899367111333369136236748627784707539506586862697212849827149648110173636825338488477297645422656247891135526478534853881892885429982365703094483743423140508890566616471208544084457658517355463948272261781550891667792717275743940648806399498684366595701122979227377273233841198087552242538872754405617981819474104562518173058390593232646605240792938814273426629190317772949750372455859902147963311438385903475523003016914216178024697071256238759783397229850391370470492536271702390211781173065931920042235552959295741830811994231899482543931503618014188129959610881732389588875953220710640929535859913442224852010018590160035938715637920045157838092974218116701568947575465214821094998826976475635643260458084210112673792608273848165870879555469244234681403076731377293016432840480371106835210894801475614051592904368796449769361018145054316219917440226133068054932441485666431101403918395453596140021486524981680569917433155122372187845171281117349450932381666358430873073915736352669586865844706993646644267574434639346811700096021706363215288946732766979928414719706680187937047985840475918024199055737811969407874283725364739241790057098897135624311377080606299868098768556819939136131697115480066648354465403345540170780132484463690948972430534501925323635718024609587915583510502442246736459554719851401130398160622812695123670303907544497990427374653674097579247436786812765035144549571275421762360916117519874425181996461923196123123675650532368895954407956235131211554089087249303481442075948385847100954928615081082256349055968450750699142871915691413018001023620867811124692000348976994817443156530030784215249556084306624894777296204696437786206033792060991075160141894340417880518191676264708662032602535883557996603823922636596209535796685547280253022340400174115825255175647234675320715596935524692384915453356061903887582999371454286472263379675271314197828811391522076686462062714475545787681598327861066520910874174896050451331462054809420199997956052672475093584459367124569534751469193223165707163594113371941763940824592051643941844998184463322575342672297399272780916223214237490402087869866264133531096580476074532073664387133996485261104686716276091346545375411640632771283707553182049490853164421391481370748669923135033789162744774282857562208403520692925917687588653699545745482223231358014250104424777407891081624386685303165446781567054905988727720564843640184628997093327341186965239069980501927343643745741041728124082333381900548949197413287083592557782272564688133740832133588142154432344798469462083525507444572032459115911750263019312906490622569063135973867889079491370616744000896449652552907520304183145767532126355720349138373204673168303058416760555990365820872576020704075241546498397341375386659863801237762497763764195959839077436642519268121494678107638315205081170092919755902347864806738950405424851105801583444706513117161247690574498737636813663855592112551153361246861627453600366921241262035484787126094285188869172206000730384123179717690520918664917365801992273059199327986951355490553306472061254152108291408801174448079266319510087209915629031252222236706048167418364416704742134806694548465381105913159083031363029714252935961592862770041140803396896168982226508430414576730740303717961420586729623355292162598172079476732643413475373483357102134438591741639668669393105636622959832767249188094544070751171703332375281260795271876484839933481149702233000739804376628489387358960382164151298516751691533353781791757745505008951459923477609451107911764249924290580645227729614066712433048143717218200367848784263516450260359499901865936448149003284924987102321426748838355019525274425375388612460704308488782712010558746486127964255853519706232320789366023811219824075620219105010295861923527662906360945888028972969656364264593218828326620969380886216773181139827033302182541878750897687982903806960880086240341380939478110727425823066064524280993074915937638321900626193189144010485762146541172983317508301402569961963280518332921077523809361171174767226421333634975135022770000556419788519104577483678022113109786022615133804558170846780844723737909361035420597540973689786712839178101764726419590165469706047394112785882540771875510467116128539062998230438559010533475145618016350139973090574072555567367968455104209267199867061092714653002374245782711362050822142530274231533331927101062219376761601409872789177243660270593969080317037563373567893484002996592521347705394998618333284860134930183430749273766515890035994298486655352724183929836287426367320574162611925200351057721807194217715187596575779208956849072535123164397047095149484553366762045011115605594265281095449533193961042750779991925023761884843235753580474769664517543269681801000796822591210007955415984712626342481706635592091604396927702408732054631994620678065366105777213948522113528177616396210549301328914174804918160947590737029003835003359735877942495164559503911316007342256595999221989242383315529011772824351585698808365121276962670674912472121162103367177803617618965016174589065066864397762182809312173246803921951490390191958727817358455258440775470860632137959604302420545317850579923767926371739928383917182233615571601455333504008838817128945864922090027978483095541246350268356423735313833686587131040820292135552582830079891055641085237679863055728266987416585647007430990042387754527871218894978102539816151699319958533100455433156805959833397528410734571753379062078137362849467984405800354351874132902603298428277339096780658354832068581063639498856297083088463881179908197333455600309229243078984737215312556097853624678202269306206653398664311578463168067897583397791373356716616233297383931687558156997950930477518428726547161984214122027974112377482452982624470507489094541995586427169449800470499886348856915017492265779108162035392001836571988990451474028762682036729373230061890072095260393965456632775797030286976271174235411380357743172826265641075913987657668215149755687862152205328483094000082211862181561972568472388942009906084600867407680995319442420232868820373256258824014068885453043272974080024637837423051073055441460934274832510402069628828734762872118323025021004099064540344703500603016908812574784915433111892493328208307205591785093948273676800673754538434051686187238544371741389248068539786862921142087743158537211920601884354584723933569497173191242923178716751221058124896051795227274473685366788902511217086695632556629139039715915240475013797194409782971625403190296445868815330904422135684672856537735659679923830083183020416270102056556493054544325331199028695766321621608261027217256268815704492244816019780619347273004106637025106226445635413019094467303879960410826383780607290671352712789967240793228575312260068394368386876135080959309624215542700228406652870599247474426669634769737585742183553903816148118215650151698617084283382215791490648554209210673782990796873020040052396152357082833379637268758099186230001539366143089518991599018945468713546441064739921300573383115752696152546321185983263241234815243231745714107257018116739856514783736359925484837261821563721294886733535308242529152396360348930056013980350038892681393952281191762527728449352378665320096809558758242031219274238960572875025537926080783570180194896931075734131878736138028027999853339055848855759731159899581856526579588183353483468622908721923999857695242786194585257538980161346305156861079171009130391445717283669088578652725579792098133722666769550526908592668705087521711527454515570435392113236130292695010145306190181715473398813150435794321394315466855483040221565153743521428278325626374438386611060116653953428566221702312690303432029665379939721203086753197095932078279862244778541239494419414058979013109392623199342223297116149387691929383371546086213580006617585794375420188054205504780924570128078849586194989565297822745844328861840694654841609360213456472392129093389971961824123593069572666150216437135757259131413315491095130238349663209972091958217780772794067925879909754574218854843982334905830407592818076292018111011952419517967089063285925240437834752919054815626540410412494177592636945311228218587564239846385439809880696252655606247105792834946437406463236300085850204658673108328994093662354665147707087571700556673402255578627217716800862406600156940130192140302725567324068676117312012312003933637239164803063468057721933634609016719884961076585921170530261728435301436838104214186333175407707737852639334305342686009522181166812849303280744981438201206882848177780042256733819422884820687490466063735928199574358444860718433466262286487897395771530667547477798967019298041221409100668791343250368131213431828806834728867985196665688046152158232611395725240662747103699624173415682210120822407569961865575086147244235827192037087140274029217228361769529489280489921287487478776119279580684574265322632928993377806058569943860491070229525662921834869320040686026377549127573985025128395714710316538235779707447660542187527659532362258551865530654602583478568919555804557809626626127611271196707563579076054659468979129753334338146955603982246888981394613774510184996462431183207815570435670083549146386950051802491601937959592773185685790822911209805866294602762844891972480989264815339007524276425806851228910688146838417126161869728608010113722818468400295223832499333106673436947346506380113462493768346597304132696224515246475816985080477089525222701684140654348290329815596100682447401243416774779503879736724154635833121262620433215283383655800676862493849160008508905458053178696578817876511800282912102834383325074497655095561488222077064397326807206664982282961756735707988365622815475671526214486521455953966846684844862979335807922611972105497254258013083585060247859590494454635470166257196497147470578213724922662237846949470928957396610039411182934349083030968043453926032069209393132433400929050521252523194599476990464763834111706135545107608060901634768384871478521002645935518151927118412820933657731308434204721497091118472361358158861621201609316683670383637974828651906017721693925901059896651216462234817693002924231903981907317176089175486007358912270912133276715107471003340634930752854953135411331175654339144390100563783994508062145098324995929132122804498200881813775946583999622898132842376263615554738249796023870705919357150020516360815709661649711449745468632162084249343570692070093220595067995643693657688099816317689052898569003193392429801336402751509830009468669641051752361627921815788630856481736859165798311060125520638364288176407187155905360839342894828155808710991006796123946900668528740321262886162329076894075738715519969235501478384953045846020615117095864554054992764368873751178405048930748837358707140833096780602737238421404733380951227506216673996707332420305068264195162238545918934997831732099787491157464486772362414386738740076544935085795090699657514611210805830946866610408624329529911238951364597324807492346794567705895482239852405608500645819454996753773898916824066685353467146126035193776032231197451197412484329075842378881784960541266823184069142681778487243774252539695845464384633722400988142989922097860661442126922486147756086500022690908204813694214958266893572344918058978095978918808613021691053146769871631237680251251217791068458913960089764346708564778498633219661618519224059985352654194311042922073235404332733697580583680814760038608886552284161248167613568800363990836555243785677654603061775980454155933163517631211436760849179385106281026662778155325874987884197513877086648093098398101505250663449942649771012462154566071813633241763297364973057959491738148807488264588750728550260432140172214352772802909537795367867164792764239614107630871483092421838803116958995406697772906009019978166575249310961592279048813484904228045736783738146456027072430136639344102631626162047995775535917223863741684563871654484529245398770391415482059615565000876916509484802146067794413051499672262083139216203137695069568521858923351637727046990420439865836527004340689648689887487448101475686921272582480911587426762639567758135493623681027804895200580142526963476100416072030267648387880935403527440347134067361156518787541458827542726826329735049375080850345942856802241485714265559021717347433040970580578404699538553011525966322206533499175216247176908720036042214810367684601062934897995713274440746819942868972723106304617458807479571265168424760759089060831427823047610505783722413622745136257335770065920671723258212316890564101123546528082880953049971864843993165416375748837377042173724397065424712081182856771811529579512976977884069060387722274595890171705292552092662458392581574258873239417515223768666725608627833717341339075934310489119288690943075797514641934632428228642841052776796156397732588653284978392554842979222897959156602938346011680037978457304134710072591592236220067690410489940889389368008700161354957938860310058198042243165116332289328288334119636181919884617334574962703423438863456189383865360395125862703940462372324264082770954869815119445007431562602764602303964276975014845286060751266112882671512314416402025153849812831905385685860191635159710851058164104715722998517837293543536753663788310214799819647928680900085794948681804509359544286088594760438850696701405725997604480152782598674158590355986400540736774169078529886918362531674792882719700830687902081099996857759867908780325451304193395759834248670789643556023075167059875104097139878004653020946365163752897225504093512982398212432920008349079851034560469714474436791361203525953871561029220642054787306065249013560427846186397132114484661321445475002453614669522374679775201284752717934348463398345466705268245921232251044729361208963473861694367505983301683158508510031881134856980427693913791511142082394942678636947141568059943444126459986969271104272857640213452938311847871801867406169471058334220331148369797905453528730531419040514095685690341824981132345665418396462845433808119526754752866496195460437225342632747000452617787210559221241136785496987637378320806464961506947045644487984395342085986930063643378592725676772462112196054427334912032789122085733749622849879123429673514389877626601960515357609690782705504542015159819598771469290422226056802730354937493707266127549872741488337099642064581302313257659212491121203507298135942897424291330474763868654033901384672801899765958624226852990330478324061787207094556601250896857080924275491378104280127324743229311965939812348745806351223957359724152159680471791350791469832992248331321767606960370568758585694269515899040087155114573517551169394116039641057075276676945560477788894950779839638354651115764843843741540062837839511729070629188907511407430778281445428018587257719519614015603801998522294890098548740420944434256036292299701135503806019882451630854676404895080923355452973238422930360886224167336068693640349699090047374030513029634078026805326444147308851746628080597869916752793347352303175598368503838337699109819691689041600023202339373186711525904642837850988953468342777246322965085044005368189232176525850947555939220919185724951370686283097610074248874515472884778863427950735461282021974666460975845689985236860720536673005380275691091323345751716386911513290088958254459945013072243334652595012221132613337398081682771064791855539728650986585822502465011628367183266435842345364051833959689009561520001023961312965366887380166347670617300909815363838606136325962817974843194427745404330577723979900031939243627351989006750573234025331975944354700278779510771025412544505150864900097371560344845662326052031966822908713992061879007656761178121556541667210018424603021876141419686389686833555753532211948009259401064179033594963577512485222158871809523347716824757143471717881730380079988163270894054249453549723839538174796826277361846569997117204798564311896759596442762772003991104228205215642422928694794018102171818869450481622249999397012351951057792578360158643305357498942142511339467433126672769798445262773812713301070111648386340313726344412313500846362204747313485135514752184872268318866032679844084085785785752011193379475236720104661931478680849035953062641058099465559666990884372906483371432043718013381947901130484034967737637487498613232423736138235404719137696607954718457813965356946720229026494996679833746500022244376760655091657497532030773048210160979127566665482735037232152282067014054187883475217526235536672700241328866040465586779022528386316135791004140875813633791055667582131742441752735256347684692181624662719913402912601032501993216960045322928507988807064677520995975679900086817164015061599140034871067987926160362284009950576726255376729003764936589804400291631036865014366141729930046598113632463150177466115161864306606510424455658450688980489994119530546815640794275161465840110890907351609643288996228147299393833335049358133266439335943974311589256234287623976544661535885004432155597828292218710665293760735222043747272844027453360204253711900533739011621084583109268175465140418740826010251896949933214875608130588790610852300528766073517322410490342821966616422457222915167988936403583770411832446647826854689535898331262688251948701682231729814124279673320528357100287882418911201837103609235484569724768173411799995652864385949357954612401722926309848630957511320918279546633301032625782559602095042596858087297243621326175604031889355041830316244281028013710111578224103822929948288430477780706334255757325289576386176224900968694423627760074276039858326331141301171519689946826337847521105978796456570101974814505011818348191569552775346860338978035688150402056367990497439083556222619455841370051473896534404123159135637041376476050651280885433231903750520664654795138193686864568355806536184616447735224947742450509450819621612318486206794341562973613214573903864970320973670708387605125034726222879176388060728686709544541177374520806567717935686576022426932287246734592147777128658090405461170681683005602045259031082278250314326606038620918499559305368328211830035102098756623229227223949336016941137822292427019219921344501736401911682434565351818759507475466543134026697933567323185377603422779324997114695957795159931482056043524030500915855269452860032284135602825026790267296501087988112621288396046111987998548187874871387345396690348991733579934475983041624487912898867452718472288995839691045305594636815494787378678499341816519867430492980625823091612113916898345708976946688172544722640984803618298182240529999363631937970930883894787180945982362893106377215181639526126660392146943558349037578702294963958451260210714690338958716639910636992025631305403931061091888662312198601253148419788481591273031153988490027531547350015491983019762399824735388931297019036374757091156708390227121898193627576214685426694841925746908423986080000466390901520402324058384116865444444778717669488556959602907560305386647589483643459667030723817334891438461177831216159474164188480640204118490518943946431976776291439407964442551720967956845432665216496428727396526095708996876003947681596255638143568115446649926467355050377521159746647418955715593263505170252679427125194284305999769238656248818694779237880259594111980265893495395570228135450149947215074556037835209489252165907457140947810415558803170728604513050154335918861779437706714304078970557630099842317004382349631559754936963547724927346885089603002446497399702166327802830715188756483916453429287579437417690260107745596351963155355407775546842080971647696922820641892537498996483579560724978379318742913097534250812974455309262496791389313599028896490686063149573456581737407167712211693639556676415633778245980821121367422222123431866905936859348160569100772942911103419143644994805038908357816131360355929154056855178549201607023529499053715736527611713958375314180530860382535492954866355901878245933670406191014159724170118352217767206184065083776118443561571787515020981043242442883370639999819575691539270807793313160752955444713095710087341978941488348752592495118841500585330314000408007869693173261924015449198802420317553617380893145723388243162801236152802357489313010599828141183259133112266847688952404250191395441231729626661822216793845760870834651932516392057198425246074250873323952948358079351534906889366443008364384845138326198588298482375876103877372350129868094454241961664681549368220694309201209560765557119380987106547255026404366979232890690618246084323384590303803106992623015735327633152628102424767100915978707583674938710590413614565816388143813738993407954953922846955806627881668473307016844470559752647965706233260567280178265146710428416841775789085027026968562581213619444453388694333592068396425315980064314325800764547622434747405508323864152346965421107644262487125934746357640018027560540095765569961479489163896990968557823719062745595030782603976000157208766347832795528425894081755118076167431312762740769137241167622269115013120584225925267050142226835878720560307708077855613159960307195026703161321406376936492285714231221293990609239371533398830818789927589751942227185009901135531248669537297371204659703662915374344621166483393564269304860916727163679040060247995294659092445852179105511440759752157180557375852244434353991274560486789040669730741364757889946950770977944164124169352552765502971245514933621675281914992001500318271505907262913518937143063408463753657205562225669426367563688779413615009784410864471486833108243620082651435149722778688673526935244065299729713473783845240537554198495265048533941248042368792901532581566169474798660131575670116606239881404423358383378464528881331164871456392616136297568919754030216810997038753675783337372167452096547830012540161482929673708523322973560921125386480384729573719315148427871737362278925752554963103803781949879840721067788991630932451381482104844673192554931443941481096481112615623820273590309283424745996590155108547174704338600190608187042538118315326914337578810410640130340258995980275056284465392399447893596566225879427433500237523765739227737764862134528030175335123450150676954595320470891378666198911183210984729914106326889302310711871295370284509352367658301945520737818344825585539225003690731496303071601497679296929881346494430697088855233129194872625763389673035618023919932723023153797486202618697097261715585987915163272013582746170624315354119575166475228613647951014820694490424477700022972987280738099706512824443022015543670258585981761635389554778185849201966348000587292293677469208148579782850729994607236052732384856988742162383882349390828251376671275714645820866094177073689286463262273452414112444030298592522920490051412368395499999902858461134680221689736935818132212755265725775072041584825067870091029517666958518081510221820115149824881430000417545273761758053678142386676075985548756525347261000107146087098169373612614628218216711525643188216073730613597598974890642650182033371849523790019103620627462973822532029413583151496166323823832600815546935868205633181863219316749364724550620210845056389350859583376861554058401191606356983243197602848931015599413346688381813648746639434672780901523397089178454720330526861044427498263434535985971030993256479132689419592350843908655734581696933930994926583715322233865149270680033281204468623231039608277153522141984176891263069479856993145784747465268207348079649754035367760662476579892982142490047818561321318825006335034139855199092127823593734984256732698794728743591719814213172304567754579314043125611049738317187578149081211070936784377725364265431763902481024745376316470031255976954239771384967250608762048596242427825149749409527169146896727590289212912038148418427665224954752868572789007592153893662527651303781885147998017451015423255065773674671060862989210218594894424346700837152789276856710383477936970324175265723154273779367239323436620324258916253076720397946620890245783000500361576942908233746609803664322423526397050148667904009271931473968614430283616030974940741232555193821430632202323643022124424128914194823439580959200991113872894413285412426410552609211163530733548778449710515176039275344746426755366756052531225479780757626806991421612436010255895362501478205310892237186622967876924775145598982717268648205656268252476665290049265201586453930432081359592560323282367912673938695944673313553353179782816441227948107833659282472629702790074267851915532710666217138045801773346985211712557616883622540933831998383855281371201381149091059773106606666143765666880958934540424569453121291980014605732442579150502525084743645802676136304731764309917489431102320188939184606914166327787233868614194161527102700327962795218667803992805489133111855839407542522323362619986167816383954094066264833698731499192350154912982650355180816779227245022111344395660267998477749034657376501667627031325486299906682674653287105949417185646262726830870845305506195526185906008572620931855565811722553420396455716563234466976624639167625821219498882024715781071331305709896955096630814675661938232263264850202083215056068745289607838254788226507961997783648709045519719900625358406509418751838142149833457167935044797699164776204242064319777685114404497475023248100753245773611062590078575410954770177009206492950760037169284466707824560719312729578409100385984179030876263535115018117494944701014394020148015106720760080401642355455632953749441469587709781964068803333853116627932003220469985022599254016325088495376462456002587088617694033016485000575274353033802886666258956083353669940659853814406539081021893602982700254294448316796273832705063902027297531837610429916038064798500499748333367118310732490798217662823574977370071763335758223978112168307755022605791923316454937956662843950456521003934641553859584757949362192945071783880924714924520803057774761994018431819739149903821638498670490397324654522822447288477520278001612039048011431605221366039230039718069612396806854304841596569642377387841721921580776425640078704830628247969762581313248987962332208146000428736150412624026198051982583695157559811241710436008513383450188832845941514511442019979185402739368730260094720355146203132101721109288350556719299430005876230104043251181194897167919840098073752560448675419665739546102001770266252505702871094782692083590343516542324616828696892014220277941404499708174734468023352570019446820714249412707132964493574089759548688899217250055200966942205412167617004712536372957263392661969397425001598786819291780233902922699903713508036285747719819073869481705533343339825007889917694899468727596613236378348860119541757874362480422551633391027388590485978339260195202991718466060193970745592510908811328136743927076332374471541485570669105334352664083745126904948598455541884860976456359457711319003171150471878942489588487338352086900405962994830305991235645821610250118682037491947399561086385467184708654312740112638789478602953941075476022077195021949931056783471016524835905607452316399275665533824598876133166873031538547899020606070144643856804181927742778689178563068839405779453691703357992530995100492390028870727534640840691355157648845707488426645023846995578431181473635664399273103256638103502064280325496601208284080305613450469614030334442096955321666180547830744871230348751760079126816884656654571041365507380172211171072488935618697427911464077502524916968105040945051204018554073237419364751327334123446554213394033634193962659276441574209342908045940869065566243242108363689682347311579874596181253270731521693814017147715740540294941907735427180861711758367925923121218587636828029441954739270186368283902421510007646479336044231984951475285107147892537256944933283071248923029091532548456870488301928816545561025919623389531575998987106890608662343917221862636079562577705024271494512202607073865517509640121872474095992035548116163540831587268455141633598442606256431865094251931628630493701021170648074752455408282513074016715678127800181077737548428737203949713086007491944129309815499111581557272237579930933773289914569034062415654402279760201755500270206855837393925422538622147233822845428366876566930728333902890954488319787322979311494222178509807404311798146362195986832212311997228339025246377629911774929924171757055095171749383847948457332207191770962245845189379373298505531570700355957306922700235286298935947033518717329260348158911629947525777594143443776877879171419280992680549776760821911757095675502364339106007051543564993188395519834769660937043463509427921275275435328917665562935948193569469175135534911262668477653864941772203632471992978704890354026266303678064138014420910774857770102989381660294479541763662153363996565124715179358285844103438206652764053150630962765349066724209829054025667311474919062787984533523360857043466552740800216060384437950937410899314396822495265257770286597737800231890115610652876656616282068411153014990523659504223043566875346200788165718522700354062265941794940211584136925252027394985186433463464393583569095282894174349688994199373685014934613486049440649009490718655397929502161372671981689178576498425663482101820123108445308105586352046887687212638304270871673405301068769503933809093646664530207122511315297831644225134993245870397558981618947783716486627286931574895200999006477909074094686593504083719555807838785834452201653839719099423734460065639332162211065470823849564569827544461025987702755837055029513526321378599974824869363233071236462597402802208221027335476230022564409502694876603505931212849786193070985047383507385251622628407100775298972954656989943359018787347477314581140961607905743517477018996719999463381517244574019449489606876342250643657243568324489310410635487550712832690383945349356880120254201920179431910886557072651488786566590164837109442111039491536588050569415562392205524699098827239758679594341169387549339553898390375922532558897207043584275579419419496335727208151581030993004112962403708077430161104671228208673009067987856450460248430506894413322220741378184715997235900413885421385499593502630501736203078076479815875198569253414813330807020891835806963810824637400517611022272630718826600825713174884994526083855901726875056904448501630763287413627017231018155179749442860230899435446507438589308514378359293405254500877630856292152285508908616250249492310312471710329742089749145354944836583885667161435040319904585055812284351919188899512832638580362090623024560194311599690672654309168513908222671661776847126313107451464898253115821733773270867741619389529480228973627192899334874427711939599225111989487767477511920753983422931536352265212191714318875087949162979064998001293936897792893806241822974696341622098046349005073854902897140346763038227044231833931597023807984142362338373948792064976199466907083264165676168102707249415163995051926965809043562845400887018525737658015222387597056573967867590828425453295143854953164071562152065028096620375444264883321176367355611413431227630873151423283849673516597438577165483561208376652351474464008892073111276616121376476082226028225009679269113005113117976371487515782210999722087117265130532278508508035363887258042623135914034472266785933903659570698195399806941867533992092928444549087451986797091931014324780272077959565718650930853570291187561284063513451782264563171117632022956808217953213863017474329456031967524477903391411037137803854221219490365206457253898734632940303312035819818431997449552241315266118866892427470457045924537322349910007767020106951480983475666129922550518149851050494913370234943372397517924100817032394514112026969603289067486772308780757056506018539171385202984444096084256784646090587389004717482484612315230975107182473973828272357486570987714223006058121569742496642475449341790212417286463459994688190885247707246809716391024138019897653057343316965081185847086697344547646513434253861777296398530663649321045404925025275555720781501324415405798256842598980498827208991049596855255505662647516523019299350937399822191103879363549870774905093973302068847042179809825674131654569154596005142383077754550852312015733799636872769064335174409112729480806703686900112394438404322250507694495738581811145963355647472539553606087603535561419840962334572600957395453768279729604570893603943735844387189107724405355631238435650644323284657480574477093195701952075091474358299473342967233202854893939039465322966936433399127827506274473980244643066699818234156379909722661259191915949088834547517056760668052278847693807178339966634932538354090978699733677124690611709930102005305424492886327954122640178101621697456580513078713978581452571850184803782889155244590675934769033581544258707652565893818841749517170481936304803511888335415208823734044157558745303417848284146144043123113912865262265777207335439771183284600535429041934426537897822512847046611408349947930427048120347714780402607754572747290165243583881575029529646064514157715946126252389483026984043340639048045326336567344484900734276067388420767738882930211980888594189903028700548808104403103117955627116714633416918021349623027192189326004179765117899820364819868430914347076525400553168754607240044065833286559652334999701190872512814351844163395166504745937762828700018292296947931031569959000573839145608810210333897860539979720624416749214521481326756329740047365248809310187516836736551831577389659952509289869910086667933168835920623208886508036776206681800713576589901948518169626732880303360256985270354431179173586475671340873683545382053218957733224264219388110202780154231291293983394200888920857631052047251802842210500543531183021867367029858969048385780801356428218211322092344201919446336847566679514072478835239569389015310752680256220305170078172964715298913484111447120379324568256780376140035140896854035344291307381177840833656490667597603886138590754608579384033286861404487105241115003709292645012942973694329790838256319912576277419333259717443801331321629088897064369678509787390229006445779764149430111285003452395090676614934140423807582989940330343142797525657238031735726420944985988242851080038723059367636236358377647601363374194244638882394047080796025752718968471553803643072493088849070203819020249690249710251006085236658948016419435744608408518380878603699443931674352949781612029171431151918100725409532010242261109366946718373691366966152535326004549507179890875503666519875536695112181885365351465975300166637064591774439378788102838227638884618074262842556777356516096403525450274971672974840275995660930241492885589040106481613344389514697659593365686563298164404187158932672095899927627998321858753842482919079463491028337013515524858217433903357414221492713263527864828637626788797590204230730910798733634901718596617166376150227350488370397592046312883490473548111911140895915107072803116121734173789606473029399622244799916974515857166689194170060516453586720569619253950900193985660503592791663450210514928050139030157167080240994113774908117427220465903586882389771431079970297700897174410107283002843558829921463938820178336446280009104015970511575761150031632377941802941769882333581345474039078706783893947301969180670472848678456161578378666273140388002077673853553989838608829138447022828980275803537440388479341052538294076826963076002063778213805142958948908186160731116784732132345496096385963302677033281738404884997776728673191468532136245221412685461365250698969684123513588168759065687380721849508936670608568244279714328707495470334926711682664551518945614068747421297861862999669233108004801713968987469850553607944987296592716367301428761984568252576825190099922255045925452877185908442424598336297411706421670310783234894222463990891721940035095961467174408097136218980952832877398227570304340236135041716329877555439144294019917822369938457344049080171944482825994325732287841052186142508306769674526695297312701304944832214921376341500416766826303514014230188034239389952714578000195335583546586063105177552802138723049323656997999142147703327159447143275032945594052598911236322734808352029962060015271076247713765029124082279494682840619437149351137313879318143416668598689782332967413325880660334265317573058810504455994787409806831895971928626864956316778764515100341110896932531383370897224334822638815958271888112042186273928517381537605692667987011519899630441295954449694686955309066680334827042745620517187679927684750166740616149538681526774445821272866606208654189753259548685594169358374620309472656583943145417395893238074741970201397660551674195475261258239705477428336601617613388596468839290534480906969274696060199551974749404318590397762027463888061346946132081179202746131417400865296760359115281499204590498814956254759368345178698007820273994223718654828447951400081685944364246209089289218166509842428565922477833191853304436162532912608674407659699617183932335181207483370380764369376705316459156651051460743806338020489906732903072223901675861704590828233751086826358216669216677720868793391140073914722577857931144978773412412068347825493349650860183922031750917598384658660774644572120738772848265844192812969970405915468081454463850351269145167910233156588027628157422314253901323197841594229321009887485480612043328649577599765619604884657228788680190956177981421763869516197638338673390536767894169755329654198491349883659157965011041854053109443942964445860331338958142583820811970039628190282570494609986973802290498380836083085018692625703316757518342013177931026357069644203328012885664995408968887039974235319400757594834504707048703249273985096338727931671919696234377523020220159024741530948515889691280008872063181789953820544861929434579334854315536908020413703657636419440683222167152310302333880670624504642194881353965096692187336353746198082047466340233508635970925777138960287142310094203023898176769411566434896765930361996542694126913196065540287276640482425192727270185503679228621141764147666144132910323488464551475689786461994147984473212780942309398429980719706785125112140474307984444991605463599013175035787020573534394325065650784839515508992639460523714507884496420658329012172888598069701698363669617186015164491880536329366172512379753028917198851967618756209634380775991728892988566400820122749733078535763511979839513444060526979993994998438359624131968647606453640047667385406663117214695923816070684457479017743671792339887810358810133433081773813336965763197133019252380210959881704868401653524420873372578406001838098602898390643758356487345827512751162674002399679551469999963291424767083639016702107046100274328020475309314614884066180118318592940245158731797229211500727913376470066322782908602732477440429557408372972659795163216456748445086877618450240286963441398024005403498206792710630195166014995048713584018472163369344583808655804592337024206359885201664741749028641182336032085216383907594335492775616779844850611749260409472842823206070365863533876538201279165801026797400304811455455620063084257864911831199667867077527503771463131767952704587490057661620310264463154840579649322814244703578787843498699857242441156879260525001031292853212034533993784092066389911451665116250776404686886891484939853147000436813975082105138734590443333846937703810232006842462610116728746854145580392641983434800698093670889239460047490040136036059774531555883531709033011293179662591687172053595441280434989340911236908034212316936619994928600571046454379683499050268400669905962297021954975701919081089311178538960476607789648164084910220225955083654081345463186357349505750126149807827816525686967452185108453808159743210981692085668651402582565955288485747005337431203185564596305555510569902883957820984694921898261202263819798009587348559483112457759415446749156516256812623463438261936309129208083092142809862980846161891223820003032711515702234713750735458775140554930426748232439020392682724794639242120764315318999915696286674823336442147769012811861239542906249607454144156758547032876589546687278924685212525971178829924140234163357088087627899563468890083176286751243788257383967028331824288270515726010998743858117552820318098826884910731975036295381745118438641205614736865299915247839422871198899196793911489123887026823056853319084855254635590606550854509523694213819167807006666106551298196822733890108081201994392745964810096416860547198009605431347932188971900000951863296021458326665621038719388853947724965242542727111759460160636491003911824870700977797199001475986968280975653835080360727671897134839804697693621568681068073823694398640750635807381418438850441055315160445393835347552228302678879204133974864318894053689792271984645267066372892029446160277962517840189455410541933812983601835261745307618050135891806174989750791483465376655680836690612629876302650275115324049201608718219436816925390123793496692047250706588915901217978457105585958041071158644115144933629992989122635542890542864791564741013925759712246138503673198596916509455387094933543790102072609422895053212287809776253644087959265066775707615720434479864563773961704069628126715924300032049163690461343881634443819969047673418327879810590604081934857569633427862513009565973044069443513463769020116922849068663283887910969129846672997486266342929885650399505969496211547591635932592863011245022712126066613105241636462486747750163994119457375229241385152103362256643163527660916048873197269108839888639108441966157799466537979931543367403701062444132050390801744549531878628276083141406680105305105445742655105233800138121759949695753984051373632169209039514911973101716691686117611971067288006200185053164690483760122509601600664699281827305820282886179964601453421331964281772319233686815327141493075750834082050627473021518621238421828578858568219139017066634400010567329327325287271326734035597307396766127447339622974312655642404661760604021571763880275854760729340940027564232223281251611718961340714941637129052925523025707683646389562191466214116776333023718322910723086867417580111115634552546209435286129581986935698794828843747465842220712253863656987958193381443845703098125361742451339115944396448717144493165321272803015491926330994017560716959128256529630759325900591285759185482048630635063875153709787503399496400700837767794357312556700972274756586029421119864420066859299152482211208846794252341304193931029073176670157962283488220102014458556612549504234292323705836184872958457330534777873193834205108289397663860054034679789725502470109832620518446936900152535605866616721479676408782534940488614504494419364060066135446073887259993678769472871752060443117571709817502401042916003757495650471880123224823920774626795307605017690286916885550886495888271383090946088207907961604366153367873794554173300152597998091537431156590208340609920427909624145792662987004672599624247855566457941077308199849941822655278490777200849345166594311049374537024043565826175556270211058183423905195026283970822498886792754037115400642871886411613018527919859487588899610540615631690930370670923551577662597005972423839979508418487430781537332260380716993919982408972450016477661705333802028450086405547036681289588761851321021957736624265367942774025828006184396550798985389582107648707678619170249199833359598271422006674887284576394018828287801749084571091955527532987435237619136292583431744966133300622565422112871158327553644513476743802021296946241160517675632622011280787380988189613845709144001679042871368399601563537110627401811172565392438622457668824397754013659939733946881178174808439238665216337848950653744384557250167240201391450535209514883894534517685757443175236948673776155482000730275324228791524820903610909805414519771473789388574617123826891316597163591984898305890001806997108760549963327162925477504865025964745086624691984891334470405393964311312165961730875981166873810581928654547313832157835337966832602866473156872900240627976084780507716887671391519863964889542389443651432030941855448881637190635839474601566506061836970615817393518804561684023254293844030853581177927178636783456329041864223009971635773913575597853467275077202354243220872122459974750769567337089138398882828072594425975206703883716102732948659504767913735651551708953326018714835360301108296353853469157287349967085581060515815327689659789279329790421022303879604555902852029054189864082020220533198301742159715047089242294194955074635027200666571129169087680118892368356954419427225930864737066069230287077353335216147954656466208784313810033228724856697660682349694758840054320789697720038073545538697704048040588903667624544012027928392940461295733223037858021076713847653540342228625644752953930380826534545514556009703231859825749945155589461935406100179987955554536607650264086382268454803552235594836609295038416790086740839647852200617500147506270442149274583943838995335124312710894794843635378577809420702084434247838284449528345054729389381447790106054583001242792630186407573145578141454544834219323883372138775214136287079749121464067526731397706256006194154647382235668432685909188153635946926081936439700493095302669313567937528166620334503568481751071205612210416745022246561691021100206078072393138964796854312816118267067560450896895817901358005041559163027241047656339524261791107299908519245589421335580688676838065034300329105280770163795943151274741076525356933042905989457736714953338185493748818181783864736895836755888012297608899309287231436639114593074952918152313760096531116606915067821964737339674515709003630487036900048606359811840222407448479211501994091763742252076385495071724264482074683042656760346479656910237144775409748425830466228918679745609536065059703147833599208665055816614661783029222304599669738717582040676692963964895358963030621015624205716049757368605991362277144161525683498030494828686985039939582363349062905286985010164716274587899685727571063370432158731068257656309943200373067581276661119854558064109555782537052228690062876657764015474283701612955757804241883170288033514690936260858323661448352338636421300479599509026455210286442715664659234282781142197670662646831782384312895403421846960500223766378857756938645940576794758913297597738890006577013636976422196062617436406657149097849347540777360378694026966440744803934649786110140411484939657274162237886150954086203863065325786197156470929338797212098011855036458659813615676416659603501330038075185171841722403371416535246517032234492425102102943597730600649384542830919208783682715542160059478426134838913638922722355571049757616260373102157352871001253061306321119162538873474985002447582048794382130646687232203567682615820585357802695503040960725278382736904736409745544127163966329637398686569747065964032860374337581344076937284316684218810999437694209924119584019205664741341848411375217658644533668104341076335156378575236310693875464329458530017973483182553200395446427166796411355193803691750078087156853898952151723444310472745163687724545412475602947135646565394232026037369276514996446202002217790388993239498720924673265040190200964018309232457164858527266087089221788671597508650108369362312959564259821301377037149563824157173119317522854677729995365142599369507845604148802566849833638160240855337700881001237262818784414634359484454345256935463483779433718646633669240230184296941766389408504618360826394650182523558736791893414088795088404291038320265778853878937833985607043273595711730713531842401058761013938660637644415858826428434231425364635924110000636032252528148207090470806575834053718686834316606761703789904722414632587857465501825806495264415166975494666519588122403092603529266649537269761176478520402330932317184106841462655714089442607729601489600641285948158828223686572315134537613985203917805739782450490979810512600201201082105118300934967037369157059259917397177833064187947469160035511246229482723926365154824222529894644464120306618980339959868803773053958772301048061095505198430170336219946272531541366638869260029800645386070779932910236777279241317547469948118647039815836963693074355748405845286648001872503221387227018656583737753961904589846471310810596842612364504261207057596210698128293746630884896657981255239827477561393644156229643456936057978805500347901922175204497302607468206416927976476098677369307780545170186155990292270257977459332652320389069129277463998864382223224438785004713571901107305266198683268537672171570093308597580152993130312169699052613748770429179045735038167941830352794660602935391655745607264457212731717159472664222315683043135875356506060201469350784213332152820387000858607955342496921242700361209204399717668697562706786059285583968401780622251606550032878315748726586355322235095824332947785318477041089357103641976367724266532467732502100371709669037901200651764232909121691181460670514419274471655136691292068608758823931003081844570494208304704120449530339422630623566714011940182852702457246103536871701853323519288599711096845499886530609930998173783834231068701574829863158790881806604830787430227667085784762362768367779960522138703770529771514846738338553460895637826287677124678347093530678837330109389504571109515766365629382231873453102177644454156891323298827640068518909121771608983388033286953191877365964406096425997869292325907498527162990344955184526022626438999867813422036365268479031609667762135253313060523223420115724381454558911261428825824459772812565884467158956205672580206610713416260394435518626218091375867552077620262604881075992572080100268563413105244238605764187896648095108828173927445905664584215067846307464038988540916137084463740400965496235226252173017424881602008307214547482496753872571379318973192879171657397055606330447513962109109860819711697353145980638500031600788542941500390974383642535430376862725427105255892424798462039801556878676424643547435121379052573913882868792222716508791479192589523642214503811864894755776675065201347174986035182542000102862852747774801099082906925142496863205156983780566495437917347429029738223352710625081069862859402341817721338752856679910265358287610660246404758950053531085337274980249680160723729110344773050826812349360072308760424458766110497942213846530317205492230445527984580066183851057930663222630250084266213963410574806690053399956502131505923713113830974857620036335853850297494986662290629695753950075989200378783197449414153405932836656324229281732674422661033024067233317778815434121572205386301648411973707016358119062288817645707299418473421818400739084200497394951944277280977374589604729398271386396193230865520366872740161941498220542324066860509545821088914488968071236633076729695093613510424353749275925003475446534943787244959503707170086489515491835242489516709528662490114452707723684858216470682846735823694680093634570874990693019628967371193308057798049055476500233389243608136261234054220794941351682526689173974870304817501799687513089679094213857344324418163976972471187887381571668371296931637592847163488452557582723437871495842996736904626369476372383251791990377981046258168496731709735600023935430176449730026600142522099470375906536469446720994924621746849110336107549993887821859336573637026866993895764692103130597459470331082873838313271636357177544875049557882172283603658100587170878718387464539099713135964619941145162667386831771117377859679299284575872955069122200793414990391348261852218108731430444742775668423031935470859361469702398693081997842108164615086913050378489293612799452543336643691368715429999363034977619740775693664561492364340017600051410729484685422940885253922386483266821533579297740087164800328099083814135755083795293499800953676504565229749272199219690365693511917112845568185108605203557312188087608048356651805774644949117129870435941255759272657448934977611776511971657856162529033971802629868984803255177075592621578826383410501643850955520786301299531019562634865452585366071759333969568690843175991471545199935241673803789700508783553209916537772187054026549964416984557753886492216107213708693212518227749377282048035038926545822780391035411492331232127578568105576581521368084059428779045403466952935268394616718335492447206982251452503809649024250671461719160261582424553554659427864270055260981482086394255432084425771620965889509104351192036415908582506500551093544478949098456927893285810339836723609958883669972554698421972550574402397714954807413464610716589153450722548363808374991065822843622831215470777652603406223112978466664422125703758454860105971051191442201346917553315427358348184843476194933814083768531076682333768984259256301640228550643011313030516591549658457509012815336286755079372660440267441846635924562361390931362129403139369797902622860352186668876001868099818750712781545144019025311644188319027929769837881099560912510496044640795272860916926458203687034965007590698065924391662842491333797400840109366055992236317311598720169930192181131355267318673392670517696227963479838283005735808381152103781173277537455709883016465438243992015549480810250136712874314384833097834036240331971279962191649923462765268116144929951775244551882311291685445622103737546545570043663644424280194500913117638449366758309690881895174328877569596192081186196416216320600299795364346636006588837812842624319863428905956844434308923346801644388212967054857995532861733260303192200882003636493195943686937201651556715195025745856621324308202489363156160246576911668528443469427703934888006034023563317495445486234527488185274113479708965924393508157701416178761028900291109069092837253092196113788253097704288506459928049781512102066928331754795992386238586353446858966285289881941131398882042072877453497949115552459094714096622997649397209087181468845946316367451498395935208860190923460211357141029631676795628531128707440590468459398029005015603566208380882146150491757731373626579104893753356988811196962414635533564657426046248626316504848150179722140243364223854860743706396812099357505052298554698382870852419608952466764558899016204072175417316263567405638334422658235189526754469954782947425016727418782388951724396493030470895932205158547015402186466653404353341756497289137404977764092007383010716511266817015315555598449544225559001491734931951152410557593347693226887546448604034957133585240424211074056342504490039358785136003905115160457837951835979199394320127480285832351553236374341557404284530978414907311781543855147445650133676427811655552412668369595580251694504911490513407358389711280569675884540456503746711013400688516239430905273493996913790535358429083475526422563528369456035144893956396439143944249754663136529098764856214695541826490810893259016884732771243846401602442792611385932280078174137059403831747791196880192084188912767232442435936511729990836719065937099889103886634514939971794567912458604490921586517585699357533357075222608619081328626701468974569930967040017809136159110846992409771994849652074831799837176664905583551396152903190441938045258116241768588091062288604688266723826511143433904428767160524498657154976349921027134170260229738144664116140255701339535994950484620693932145258325542816318132559723737348877951997582041608373931683158830525481688665889186058667313835311537326137693683349149483395849617238510353193834529059683165115119611200468974683378465813090546071408339901815297125896268075445742285380158783107269292196891173446764094098030352618661767816921533917516562081434041982311707723104349606005042226613939402547826525690712330192011696452998292850643580586781129030021138375008379001658504861452274799258322710322271540030009636573586413939742154270492933852504465352703396053958845727887112284738701575745773200584162233672123835802288452196465943545426720029329185191391815191203132404106424859884722036151784916059500593792615547359147321565831249696946877192525207401873230857705007619401987871989303723113358508535638129406904114488535227605514636692994087748776209308463609100147552718216378734637152910426964631300236203799064139763716522718466437371132886536399327403636957406439620834954734678231678390822934844600875435391934154259706630024404092526016197497833573786231068028128864664545197366282104608180408919135883859429290125517716448712202784350441299543306804004418138505142239781308606066762090128289839790781253307202974996515518802889529513070662327811893319820130340729810743295599576765125130914228831980520321182317667872201136667628813363255460267757375201646427344714372070666447506328656948808648066468540424465040472609008737240940477323502304205654352804038443714397605089918169201835561657238755614267716228707461470213021811975179064653977300756034585231323750226073876601331569482346485245807187720327130694074584388105877186459371428670266059595793919262262430950433034353464123788909741214464717398117323862432265775919903353407583457225286625806053753751798619898837661462125925546376739715541740608763013855476380380685663128575276114879127155197639862871654031419422288250741539207983978313779686370974498720233981936018948158627941415871277680427580145577975601234787728970503340764146053411021857028380770801750204033914124158097150136410165826214969767797499292576469218815570164624710275486637619114951400162527103358206546185044584315828734610492319261129073011449730502075090096006105085176546784207474186926719931027158618354824256485451598255733953565599702343733720588510103081401930689872105785574129715483843057376836682978645290786686568433122607482094612501348226915545208241785402130705103186363597663246294954148906854204217102774726768433977414770200462682752621160266830616159177833812238763331700665952264001333985074478558816642098595111274326665933541581832963060832186623774837879716236832322653807501850682827780168428031179788379968016946900754356270970377347565288415368007936239739271684057611922509833931661427804792747752441723196299446303886547918441239028474227114100787187934060289596160958840658606977087274794726469854462901738456355668910788369519752814152529530406209756256312190894173091737457785493965622701848946405849504452282613986492238746257807669377533486251970208170601061521178920475978827417489191939545107726790505707368510953053360999120020861536407055009737644122096195865741051476997650358116091355615607609557698410955937612573620848421095970223850515760443768570668885541774379703877175556277980513418503891049220030813483801502943957501577573983242915721069773452310569687737222496432062562433432190821696083973615618413006051945651941447358901763900574760296107416832448109072251366654310123264842958606790972337431721194177267078554650224975698901611996646243942983427280253862100401722265017255375655142861769174055731847223891973006431290158931584978085752116702441080198888517043723260710935062528535329696540423111843363252602238663158185630265408768648299793705892166809159458514174276098852793786511559630144044756010836680396349361538434957554632678485992691846584210891085248218503598908789306645042117784938709123081948775342017079279420008621066786735817061767500267362712490340295575571609499358152179761186656429255283129890112785913794945801927731344419892611697675347236260315477445585191868785469489520503356207458231458011478876423528608501164001947667396545729667980103190740559079542096690872449858958247349781904791056235872427125388421675100918303469128868160156389891412097227394752417079096704159380408587289273813677615367543587132023394195028193445665865804833335672591253515583544273664221419207011913897048532637085794356092074804013050626457030896631675757656008074329088711255074037089234295798939283203912466082562894468243095659618029986635808052400344558992100680055272039232921863271124612967500637931463920069665576220348900083106310843192149452143962506794211004500712992255553861976433627090111317512712209792682533300707461766156342717714520712191523598451994851065415738584883955100715462746745498740180417822063619114106707812406256747415257684598691331536224404176491069147721895718379075675215150498194972338366933402026867565006784152463696630266750757422838987519349451939086171210151540271347936233722911734975226764616625673528396480784360911518415659165657605991140956015755251164365893665716119869408432139541236657849816061791406751510191690880047565459750710187582860142903628091840328255885407619548997385052627112595216368717286788094252672920118823480393534036685165058999887740416086548831892262056064323594803353186751325933782811785474151985321116914562714657839271136222764537055265508751500082603956656845234634756267108662795459072082109494051947235857059725822034587723946387600408668877606783019412289016611443213023721455953518393940864064550608890052658801473090397580834324646481030328402617195650793112971423102181859783551777046730682303067035061133261285412819393255716280701814760358799862868182339845229086519877148244260775397810156176561036840995348070384160528388331072714870792813703275823317911527352442700493944542363655009781174500048579786816118352808010016891226927561135410871985856515081720666715851371201207941400692104221038561728864245092682108451715431021224630940950855732512861106503996847474225447783325072549474859046939948971405406714257823145798199162781735971678999445813934935918034533871394130745513435665785149581840311374693204332398432415279079398131167001530416784668355163798364777316006314611178276666958520215145532246221921495756751112209068215824274016585357714789196341145901091594464082713111524592499695766185645082965179003471367334749890437791163083407066406669906486531056202660219810744045050055217578438606397345623021174360767406686359332032548013763200695542896471192852688788662827932312751705583185777018861342303078857880703749507862315607622620526560504536921370750450610800030578469224862486115478284216493644719829612812098460941794290802398689246098551552131317100838871570179058512747222160460735589975903395023138027779605446044106878819417126531508600199904681893499007646905526644055404097603184049210371988850205722576468774711258279979594142579449162888645195469363818557762817078714570642286328976494709157433002485861897665828566200199592148109370683898478499275705039703973607733748567253534952886182065421964233391165758815904274219523168789520853728827350973916885277092377092953022231493685406408279491724385734982217137441441360025283013567778521867089939723275722663393904799524295255016927955992666938424340018265529247972138683353333546155291718310194893748555150784304603323095981078453091268856588058458429566567483679941065113774575283725306919750078856598538958458460798839361466292710587335061234724283852139913096930792846410538926216576278752986130562301165548662165918630861308696576648014556856496766076869812657709967869595641404493477431335766364123818218483412139049470590936536750714516872422049190413359360633260527356931329453140981978055758172583268890209729805718433222714624637260183439841605506805497994622574031219664747086984498832050562146596186834720834667149309087907610816452675712524049528983571575994876302630325159495973861161813503535447399700252064839875618816328818695543153369033292983221162993249380346217915914002083350784021746262689347139274166151298663608628846732707271674036323626663642269325028740413918649329268424337867805666285406458021149367919107662365226550226720478961490363296624510414528527051124219859851703848105939992193202801437297458842504395583229064642578748772685338841853958152376154088452911993329680653040336420646794163387871435631389225528863059862435971218870003297299555846348906886760680113071556429127865943956830639372360912216053595377648293736670162188837473774699292103995697506363048390713566647966096448568215454832962204154170380353487883452655190010065383746600845697743791888013627147399236451028256319619066520745216453410272643232566621183398681816341285837546881491936346547968005216395471660515946215592794604362470139923048352205164641648294488745499299984636008025439883714882176821955050344485925839814416921301277641377640020417239812421098400327027928198699481980406836611839940585935458113214353102856275846518834099592142565386115201319218317597081987883420616477659823944057328607661150274201047849376626245995713434084790193934448538286789903204810626035781938608449248614912902191885921199354471351727066955254987879018114398004651599248088431200856043099633126775781830675838794338499119238911478210196574261743798450065757442878458399184856638091574130476945155575100118010003019794980101184639576113308914992227061813848351480352708691172289189787715819633747027455461962188572350074375253722093579559767633249363440572176576877015391183266235449819039504310946883384882070440318180883756491969100437198517362605872895245198721613821802204997700435449989450340234005825865284983542242621435561016609279991346910133470729878756448210438236197152295843590934200881858765090514821495069859657652034826722809455806876612358312621666333900871462512654830702963228431759202553585415529567876579510622802111131178894427929508833531401023603848336616135167505719243647929827561289314063154086661252014552719262767146820095653966631026808361956318067207183203259162912555192807973370922047352132577172188490672735647181148265918643120729640916044718998934611847824362094563193478182466415766103491032189026412424993568610852348449346327448266251691134882277171254289322332681194448380522469438907229168451330881861882236306288536634327690617161731881945235295676182764417739624601967836097590630289448485671678121064208990068090656616110594427560415613839495699360033572097093927982072992775440570892041563793290732991589440152391026207162289734080915184458051405973732369481537177123545968526249985252759395736495703777053336553341680865493487145245246702773646506781415707079242120558441959446396047685468848059076464257349137790205252825054676407162793978323394343484902333560551324455080199052733003530241249888499603711399005750711802867810868155970934966439831596444363293796135429369667910131148986485729899584972616622651202155500070346389216334522150664613803025979231005428891834935696691598389271853629413089667381182376004987045302159356107340082854526141029118609045687717811231813099261667961298367022274941146178580822638960920797364565299670663925787896256672432789417670668849297624059138461718042741580233538273024834560784050508000425398795041164758217395586524719019274622243548629181727808572494828587414154773263776251035985369205054994524112000306273123530728510910097572799897561515513096436147546540289750383629146767329417103815953157659697013806664597552936855872873429173578471462144690108545206375498165351134693367614497635421674786224895005299064731975367941124660903719789274495632442599136073125734835684158889221620187105395881148865899314103101734618925755534849298940551520675910830697032226379440158719197111070442790385130842609224464594082617700091905189474704965104118607127848901202703278733458153425171880366663531875563589269698589798970842733629320181144944570340512974757570454766513954944074785722365287062467117303818229876578041683565295717487503459867965113723663896687520930318393726669239130170983373713545871726607567085419371895971422714008434294585359277604905583881484305419645359987082295783765253945088108007991070297232105250655936971477467403227817357530620742748719425503992535307480183292469845572796757910046963960795137623225309196031571520747083485553282820802096384613616088404543124251418592982253478815571713348300016694678211550380204419320768166614282239896749202045147102640161132967080820776049994455330686603990754457791211385281171580997002011826915378698512889577091355186270604966765807096689426911281539170870591612719749720663793919331012286925964346211214069985948960992562143353507291532516296876857558765117384435263930650416711443052452035461619019664605585125049176997617573252929925981623330769172605529818869548746324139741908977977935728261085475063482033650792230245478737727563008604643698070599138664013110369308168153863458413843370286378235601939074819593984170844883292980916635083599479689046925502436385744290087493474151828621042749554602093875081114233944638561418656805459305738590246187215074805697245555663521104103547489664033531434029401790002244698409752317195568673730133364696860915583290376968722272165408703994890859258307309164209729641780001011508981507536069355945451749447450547703446920983343399918429733325971345606736599053153680373562332581701296665098348218086691532425409585081363105082064979865034630200534991434598483666045021112428632582261722598509487311698425177738532558270681631009589656587000830246421492834623298431485831411305624812480752646514727435302991403689682617064221708800000580138389194542820651069952512949640806045469172437291211974960130333514395797525905028177018107939550733083188941291029171465938366917678712469616017746911547196174593579253187642079150577000245278374440444297394323424683523255565648415160967012708745255585272123856060990827044452638182472996358923356069176076145558357527878668595416562842084870581443683197255505006067110738270686816668896650362528406018584059181612999147522804264298627939076039444637743060906402631060152360075067694961797808328140778124124777670209984188607227309830788810383818810711550768301173850309249277963815155429268304907437853951783494426842503492456555813204642309385082852606933585563388472651371981353629982815930463352856342574846469202210667700900500691419925146442246398634578603285738889062674655388806592020959390873092670673914616418127594504885498375272765607774285475767183148202059011479623847499103666581495718090845724080440163612434544452139151506413596786655743862462908884956970651467896040961621851653098098793149464137997085788806612074039328384213331220784704323676788174574097091202757503257014423558467960120482888175080689534450951086356695146981602106654835472761932940391434351778959147874214055035334698751262560763839606111990273095310820672620831631779275387944286901109876196746800909389671751852839822960371506833257350945607623499352992330279044525942770850555018935840710057563694787649421097349792062394840911170997084129243600052278032885340594298482751241323667386571728393474077711933744971732787825617931732694194784324610813499275665163916401821240460901199843346814402836994468543762235233192113190563115969333639776710862582486928132272886470154639852922520038487121157104963339947948936269649987854323633325540249291433487890922043914022793747680956059438901621566379841257390465327385073330307328413578207692757048720750457094524107279917598712249002287032018572232488473339340165711364054038271780107692263999999126349192819060483594763406754903794236573591334358107746210935120894618487373286738383602106010020438184429570127022886906953506761080038804780487965918094498872726144358345283847792788583673976795199059580657782306650683451827199538573284650454756790509900233329944231605853895868791230828730849747930880992710746778249575616069405115676759775252415884025054415444610756440822042623412476498678911347129440420308931655582767716525253066521445995754005834241165040703575747757729660316108134592822722893421045757946777150583087744218526380696860150209410933240901905513390868281217840258822074284926777845994159276697567227550447252522845689634047085055562757193789994913581701500306818456948104787089695388205476511118679840191722405808544185515000482232422058334650454522480265400715815133614134828311904051889141545052368551581557946959642517050099103499080512520632798539943109710360990718732811606967820336945161732979280055265302793280557058663576461476292766686048685079643191255782142036286046339448668412423855025747364436599887643654560297118346250689390655614065076253402835405847552389997475869489494310639594551623480613446413727677819108093612156494641611694375906746671088122479798766305472335728607864914761202846997589153385546538344076924016977117462507243459456636141410763306957594288260348701803071991985303686677944652409030847781793118627750240828079518329884537951450014575744854728556541620844823693580200343485162198241782065609629803669552275554200490157776807222672751539085463618110244800048072057428264963542435029962059312524648715074096316034215431558554079875183585403332232422253969084672325457883927928424435475375641701982540692628021848175995673315796472135256651656114657312512907484474788854327020600252930436193120997840850658802494708722058264488697995151395523391666377082466403407101353748414379787717232117916201560486519132143897413303961538406478054686219347025243077879496753048075247094881812248450200628787472650886367241280056797170198317582828673751966845873058465336947036616674902869912061619248078235435008795401866886461674613720326086677274315467320203339024775439171984312929561830318772946401249851386178231367215110869712691341742355416716600316433594071079871422246877932693851209549347848810341292830232799795250612496715946256245779618389929733857916735406403906436844436064071931340592205990495447131413155120763563266017867667659823747081296743637559787410818007986419847043290673697165985772316850406132547148573624986946223874280583273245726447082752753882840388571289440593112357004848944325261409148532458760558963247936083760558079960127757532104839853842112577088062439226987476518617429936170937836888834945109322090956629892977350927122159640241776216915923740474108714581942243843308635936208216071600244707953603629212522722203109045307816681730718138659464123304067607344280149330214086766505170512222680069577973302363062286544850503020335972635431219891680506687400129089306796467641526084272002860677636404630989339164653842892792974928910583292353440644275666578567498068449201489710968201271797103738878519248010761436597408637500017917824697309163242768191419604840078112265642968476393640676151681857102448286096286916239797521611895870905901057883541756795834558804156446972727416876989938065381200906719161584992969303992893416939926561577987208018186384223928624456552282743383588062003523233950148980698880963728231517815888553374433593116054182073082089754677265476735691605380556634457106911158968616102153845804755167215770346728630341963614140120485634028294510731520328000583955432678179063196858785889724589917456561727706710390104443828453460729061768192098008162503067781037608080694999553279928422777502427652157254298315305093006226241424457838863467545555110023345239313445227341894356974628626459866934539867586304358337353194871053468514298515827018646769322836348484106507133297067382715295110680615664844332848855017857083874245766540834395472985977318100119175562609082164034437728564550940340482725138855883367779290256846487491850235846439801963641454834444543606720098574432422753037743146922216650057766036751181455562108872923980801543128692525436153160322388385300219746111423843699024373749495000686563433745320657741819083464145651991969131129189246072742963082624687934035562273220484374246579315974245164060708024249751030328769280119233935239001107350806316732353517841878055260910770202587560880377597149650545764728003274263326613664436552195284260025699400895814834602965241710014291639802575600685930911727264804654897833853787690808216992751886948552083493220884670644943716663865944586521728989842415851338537805367868222691895327219388659489245414558277176234049472559416372731972625284158009630190888099932155680287376371390212683776621144507246510084300642387111430541431433725020287346145941093097897718763282781246363925098383821250962330833841355640208673489130307622365199319480096589143050062097035241177696225450136522573768286850691944514090640564017120535339714159506654826111446491365668077964276217755757857040574778200496823347302872147266865443467270292896103422161928493639159511145729736961690221436258169339807972807867655788255831643217010017402353843590003867256360591171098891350619109505642421113080215179017490484478001223363071191305348558031436160195685626569485360202868338674413467592911294919899497004292858910936171576588905152717181294153226417647273347414864657042018257084554981029754932575688693166106080995692087397463484989017456970354618862505977463581699387045139432718522002373417075890296318076689122349352734322750899528142329633517909197513345999417343896320395233363151795725181702876253395275681091558048725669393518907411462980307281180348870745372161151856965560477453739052440793369201959814001590061552642032008605148549595181212013924457890838089635647466066944054188761488756943461254719007752377975574490237815087169705470980767222204791181457687433821086729319925262761839975795644679115182417859257667978114681927240153879705381727879883135515019647259735227667380459944904426043731255303500017832689125102629586128700278776306875908251483299657680620846479298507302818515333704635077605459367724807922619588807252763246048670457476940751186558807470018235531076299293053841366163674630790723290645916590288123319195456503024774125396812319759353053898078929910436049994794002634851548627682352859022426404538439281549452363563449941354403822165382444158479757508276083328759399725954313923532779215506423337943092213900688574968510150163533341047541797017897980924175336417064998274678469621138040859679854315438916377081281151533775534530135943652851207259024871637909173642684932023632015479615785360262822559686588046362400305054113175322226704077334443771784470395024579488815375797687032448811068226208377744755724655880818001503609930474849075456006416407570924038044337934324630586141515695223334113649011456161886179151287851263173053776882966855511815166887703512632846535438825391682327663666521063526563708430640451636250718771716291675030824231286060753862432166988384455732786317509805005048109575310389533305963311303366752944209108906599607075547290265023826363709335279530187897076235912902633871141165393679722023571570815710599972028512433906584175874997558575172145025418961030565057632746950930145393876162739155614086369224097510658939964326647972625990742076676707616175390907589090907684912210587635513523024039632314687656903223359367189525067415555647235810029716344290070030710492575703974868380368287397737541848333826869823933613595556828917466103652968401504526838346898968137746940304098477020988758752874836807047105277536425024797229009577845585944387370741857708331212811626974827977660267348318755924938355282409323803613169669617441150218361970758750783475946945608139746047679928254049043728180648300826994043336759057697683160497536027591174557599732123725925962169805193625970156756735133961198768469240005392916127455351345945113079381050309143842722854118129683246741832010879643167851477891851067577540228807453678323039061592795654867214901504711359961951371732359747897567797862552718849722563317688532929174284281207495547382985434417853026938109901194035863071390642067383869117386943502611039536455491910939488194441117697692837390170217756720828847931758693124087617996912126227102937995777893977230458063510966608328130771113195612115075349788568383581197395393088498688069872020200423013714805895465094816549723915505624311235909564300769073615314156858452424396711770638873898175588633627164345369808442234952353198811121587302390746962984408098774553351009630649561918491723082185084193878873343663360555353964212948718984507123985979432902369110038865552348147919297757904103683889594183778507708881741774108886630035008286456996856779066400807387059670371741221338642483861322674269063081673582416261485208146124813220603081424971664110765681983454907071241039623032859518337382992201837835307722876161364833415899107599999332248076163574520239304163807225224918826419711573927893185756464290894511306633546423396402319063053553712540133778470570562718034068542925505678108101686094531295217868234681351267340498900242979458149989798079487446178136445674292715728164502298792037774146240518755250373211739979141206462173529595153862455028151635802857378499354202923907307137387011621967624213857775031377504826589527922757470912925003894028384684969578550448786620649506144596842084330022667290476983146851731998077600144834529473887317463968054859080901335331008214728125104005358630115696046276074863985591719646710103652636572017401226748239612086418594490691860305087987868914546604717990030101709011964459792738632662026309623250061648190718477845521925282528611668476642845019788464518126793767063002711648970097932247008514726002577648681675745461837141099801422274091138376240127925429788670538669523505993698194992615543157949439195104907189211288832121063087564371416688762198805279898128848611013287881060512090491214993676678176477665583648878173362222135633343270396522400105152404534506211097484329454483087367230077384906786664171130783488933933971630403365004497088397393601989091816189521206433716140482462318471933396671340965229028020622620078469184418591439416221453878290107500529023735257299638963831615569126587949846213063176946165428105309047245749800582842971362192645588704029561146990867258344461039687897934939232514822703090032746406794434544093433915050665593305546696623353131830635702122037016716798177549478063653542895523758877820511834447483988004121306447617125017051304584441265192224998846083217679789242524579625377107487659388579137586004353077670339528249714585137279986322928229309064603985689099380411033217692922374378290607473065525564723205447549913134698777779508294176374622302001570099008859008043462700513719038247982154088965582703476711592560276841514025933895440953177843760998069281092335385503348797760778691654419166138052545808315779230388723465319759702755226011225599281410833772075546076948069918365852534726090260494751025709224856808326845125398389716783634126655722050577274278706429293977766388230496301662898593482858189521975388929783996391117086177539201220207904980677087712556318409843956043999875472300469628979806177295958103191414207842944625458257220137270400939545077586069717952838153863152275885166454723588560475452760644223235314752821737382799608912751629818003464847861756036556770888948843166099518199418711060039156223332020161478968989987112024437981463094903892999633222212900739386223166448429168603659535907960703157721181150858937886622422790486574617746091305362826329433299456284782947960388024188942737468903606729073442581812183885842834519889491496937308212146913722414324135029897934247169838338971094476614340732709110437811769614345735047768173626868176633526906725853695780551774785251970403401513801473510759604084611368450205389993928628526610336299372508565479053480737242005574448998065908020928902996202759933301804340656035203266174917659840926189598786685126373639477207617880729680864283773082084939081301931859453988555689278749254836001457851733801643839878551409297257355433466793669437115685039440335494361436774974572064459649921110539152949230491753148161750033793541958422683443475985689436488713233584650721164057941111987587312712973213888903291519698541588427793754696872442837055931397669702694445593136444201059294495192838972984525571415170076551876688942095430812666842794301153312292792262575180302635618008975617133941189418286755043757750022078898790132488049335494428469808487544865876785414549072630047248882573378183953526283174688051251814073395382656434058815160723497895869590284694624824364609998434105831174666308860144499405139912547706550436043877282544583148935927321647946325335796465282642932695330837029758293498630137397067998328874520395106522859882503210413266827578661604273915274246937432817556923136333959640361862934963040314745765783427786206597964227900088286135474375411049878226392313381450820573186799138572721783264620092247912472801497702543859497877947466322771823239345539844153542391006415989859533002561726384752100679849552336107917844304319300921375004794935536518875612279857616980943570979507760768660708521218400859151055509415754160123946389420643021965371920215318201329316871199115245200096417797884642285964465608658695570271905061942243395770240675088821417242824564428408792331798438278162574579622405526865366957926615061238009611922050499745642643879636116497306042617884625357697809485474336592371681137120366141710425746911758794540920726373139040231014814498246876896547896569841600441894902131473652915971889663649761508011022320151734150956412819997413281251274634004979811194101021782353872197854038005570409766751170565285941702892159673953625960921326796180250837024729454821680419417658923922202294349258283903004303790712685205395867748647562348453800077387057596939439461772079521887184637060013922733564615986462870523914381841165757986566231290236013341935205297321685247631159912511525943813779657217523118760985863063739585087929469891976823819180961018732202151740746926428721999403840348945725286472916237519773197296870041352359259790930509250098842718460378095745019027169130565027022284753258517335375382946914393507782902580560148309007054560577419791951863391584450953516690395591475608316004616095721418912068102780434121806546919723145439199492647921630543342048328913540915039410605061154328451093575987609815840148969891474147014665129249274500688199204137597735949796177305126265980980584236593830221709140307516729603396212982987470233646736958165809798321309673587504603262732602975748903932367516248340821454306401638628094253381004872382938638978852770407377349775999146538798152376360125760742348311694117288162789882744387719643168880402400379690241367887043585788866619771353207020265314629000810178948012868060040605700216508952652574431691566610717771699535599063735102642665420246484609409765023162864704978596542479643536163583994577805488382942030927867556296476100926766026537538712376108126267330112474819092359216117694441987407588520079567991893272719680836833067785956732286089625992354895048842156490988048606227053380683663301332146350365512546870794036103515398698974761243341542538039585780385083707582303901746335468811386028609063908953847677907636286040639054161243716918818063564140535519896167730693415641783842271290439726833687935141826048437541697931071338624176527481379569605159790141062205240630647648550979687612918387456688065216080715608287569079228102967127872791974578312788440927047129728703413571625939565506203252959121275990583512167077997094300668992509508430766043885179437627570776232334685338308882407710369201832949153098384750802616999699794893212383625044621907724745720895088378648723838046624008430529145120899142182462161854736923289406396090503739487546692983716217328488381138402192682123939228136500349002413598707222385679165512684926041295099137759589589113784454656117042353915069254530295389667302945342450517685870770430228435474470541796932472219239634631633722361486977663481114448446676544853078230614357333246132451594917797821815873043410501222855495626275223137390670277334205077478214526182551818753840410015109649730700385156528219071539368795001987972322733792133358221964564756597869276558120504074424902213749401023133492310058143838708153447092360215746103725433125607754501519281389927729527075264905363375845394650636025795641030202007226302039582867393849413855507126894130957048980742401941170025605148678696537987709706127179996499118886380828633746088716862507732175752155563631176907440212653512314727237649274675240562781603579052191386387694163432280302112105177572836964829894307540805407810033379017799279254525566875866769928490840654079531665103138002633607301628927388863683570336822704271240213884283163114537015281993734958584051757661545175788942022798812189467580997719099241726991169742988246940571405079778216885021557106216464953470169477823049514937532243613088709818726121961174448009644509943764163623919636261626054144708307801866093961478763200270648646773232396146496383564337685903105053030564356930340080632552463415115763926805098742836373001669778546305632946754738620511861382926586123183098359593737892606783163356898098911266987825156565805622501374930841938327937617238312090408610586280881447107565888155341218739351205973768241504450119496862283784795789289796283782661755611055920437976187179071709654587301031757387553570170934623221933186099345281559507532436093245615583044442658582691481498389681599403200456671437617408615461507844126147205425705050579931937286108425813511858314317824182169542980007045180583997856304330326592493250141378750470182310991115547689208879116764944844700960119562746487465366929982869021746698378127724673223466073127913098978777381611742521828987373690649043229442975620051432714286211980283010881101628748262076071585084759570561382527027481316889569092717728386099339863774275539642196496766977092467964048358245809282020570079112494230628982091536769941335440301639811253120465203860576555561980662119786038795578573255004327733578727826645360135795104638974490391843822555533338323653615106575712216015030805900933294046398684525697645908384897554628942282859508729670001115018585815317809204924670675081348588517727987572842608451064935968793302025639364943317164061737491440950709723675196213153617743899555501601375919886990406461642809264094435999952648327556223387685254929614441576242618009157230052264071122155933003726197284152755706803288025967455793898936047491833694448253186204052095252150622099346396329816976231349716527709089099113550746976742185004239178575282416589523502836670033818865538409536108826853969012377094217935497587579985628223620816979733906410174153588828889388117209948612510845779859634104822423320412692493796284245310588956659347800215772385746352067244967493317624326542827196496850629310831187372534356391217706668767809736760206723143751666564203267247631866536176556736293937916144750266071509734675532115666429209672837089929564893939425217353154884387247648685331275288271438412272071828486230320047165108469364588505169717528467120801864815897550581134622208887873593478464483492906764132935252036515754213593836858701409868241367764742899630128088783845015810434013334431058015862203103506754521020243619087609268019972958990080708576720508014481822278565133362948683456511643353063452018183038723216218840658041853940110078809974069464518777690611964656854182621944447035086007242756715407902502576296616472801092531994938462392874318573826286134313613343437951651135122701181256390565668187685658109114696507174820970770951469615240172256805858224684199698767863938111064005861765196125635358738768565844231546123831552032717967205170940984118492493925143579342476805075278319079766778722705352221823664906105020675312592319193705763327158736763420327344381353059820518574079049589121492147400815918432633828496466013073668064948875633171069575152755190492351013270248987086983649842441985263269576517479786342388769154439275045068448511967026265241345099601792285824048840049010132939732925640935312019832159813976162138269302527272084884363263552494819585253506114544709859668205594402515597384473813934708376194781534073558207662238105995119018131443300569472907765542286203092215520912590052917114540267957199632371394519950143652164714736204268691584317398108773861056154408347021168352499512935609717081383408018539301023918498915240638028956635947747186517927514031039051615917426952253952051226383282977278786441077742392351749977295362712058050427042656230394215283853154789254671321168970986175930962307062595294107123011080862834097524909003887379455879386089065722914299747557717723831266997148074861158942899336200326168885500754442224497903240068704173761053578007944996669591422920573741283575454269398684667640683105285153133734164244563632271933922707496377157033706139716911731500996653531516159345833836182630337144649973086070131278788831536729884219335198197725511334070151879408176682519348061227181988171504088885977900209751701384756292113489726563233526979965350604000386267204569136719840857643465510788121158359248434271156462847430269613079090010187734230941105025690519014446518034768103748679683107461269480129381481589015300218763535652605043543620990933195175680655793043830306219637919695019489831065542561736283877190930516319103707014954043865903912030588345907712410527633243586087447497249395552241626129791477010149087085389504303590910240508245207063172303223536259774975739719736799965041348130972838477766789819026677929945676001743380364341718056649815782030215402346734993382323757565358298629821829680661345744034351533820105034075983934658083794507808240732934630949094947817579184336988443832536428480099005255353892780372588262524556385467118383393728809437704409548843032782380401896716813805405499172290757055411783883570992429213716241543484658732616551409696761078473886956534023488014912361756776878670575027306088685360294324600594838490174184351459291383112276615150507478750348028580543267085430162301460097331596716797146327516963936233063932140390932833143924766839437755293756746761284878403772925178261743674671357327712502556951026367862416991310081364340217290174806373073167729346467844668322509745103474734632322078642286056372715079033226281780397261200630747940834480874037605713064045857216050927498649367095800710434459685344224346698970814828313262593820970362164042925899672666134180828100774372528892367493871114712711735527203585726229640268021768998468609125764223486288378921908453197540446738451821305569728866995128928811996636859902900954407497780958614940822892135965478003971744425939619583060969707493714579037401913625651671292330471041200232302965574981516075605222438552271789973205975667720136407635940188467216583451659998916256213980331671322715907129089884732290418998589816473997524453259681335492018263039040347539669058107395479872567428399341233126130437286899414087587496335449929925136357454011411641786912057582877591504830955146161855085376706158599142180946371827082498853451568307706517300771490002495017914977476805824576614555180169421342069298142558808751544676192988571636742000646712622843261024376789331613280275384960921191608858748993782713928554077157203862897331252898474521844156915617549925496224578562655141956451790560019717863933878057006094550376112746668515196731496712269735674652534471723095659081842007118798963763500934701980008538679016502040627426438848094721202515379371078211098038553480246069823605892311334315948165687951584897249668650742251741992422120341812175957923065197218408264261401021432901718746568928018590460825148317980538261132435817138909502747341292770380951083946283168311271437302442671071525042535851919666586765737060138397872052557627095682314914134512788128296906530931615265933277318739693876134100868022187815307721063253595781077800826082512013189428006215426616233785208097355093143791052208634611364448314202099189727516279969339367349547846481314137418840287149270317935672792116234719342017714367198668936192290461990665246339753199194440682048675878843480396612363793081912578193155846589266274571941241827276131740865949482920960047043112581600643014416816984218039315341847521276529934929110825174140797654416360527681863833659218536350472469205551594297122589640694369367819429545085793537126701766012002991751840722014066057732800102686426258937653567581767649859706231096239510676952259457176774430012423735644989017189103204768223315204679237715746710823203429274914347086976320489057149805274783419626427710432987314766237518406461147386381568406401197412292807237518265362595837336880701784211575164105116417279646901374818939793219281953920772457164025659301108191546295328734986619576599704713077751828756259093704793562872254894758448526811359473356225633865413479675908310637662751659653788983256195245066015225548046445519832164303591838868562054047238745727672445882264720610229625697647359253402579222825620341290768668174918396751069067203862787384172432292687745976434778920813805307978828911924714791664659992662216398667754687444498349982155870116827167793020267912867524942365533693921347992030219411479774227288683808990390166349824664454893534759253068839902569384410143052885019610646955748085971554587521295543518754571345608104788577947291263002377098717242630624662178862783159114526628187100322667304320066267434853252318997647607227137808105025044846401446417356804763946846699262607040589562975134687120018524529847695096389874002893555019627710698412524651411632213072052262154640813186522381692410167486004247004699074960763877393755057496020482796761171332314153044196674219246047755373015122275032686203934427416973562651682717551471615599080903465918179150229318746591611460370498849859489307971919804741438281273048140171021335966042336161195227500177552280312261695413410465716627061196122688761404566174024495952361694145851842108273732806701111883505260242679751046540628423884537483744776553037106932809062601378577519935800055824930457438960066483758045163432078348244780020794682638400098772881318197724611479917127453077571556077508739984564418707855009310614955468644609685390621980055545032075501702170793798575691336299331835376374400384061099308958282095599090749868092546140222042770144265156138744970068727696778962787323013307361307475893074970350929678828349865977950578446403714095664532705288470654685640833208856747424514631294485064585871281287371574292052605830744764194883433635339453856168697969945444880016810907988047167939717335091527064683655273803178897936921500256342873458013752330981762192906026233657021744361627873189106063630244896370902256619753358190833568782946045635821114363951161135567581300519233061923726566962901384268743500139048008673404219126219246518388783449438976089887740232065306106096384702898604649299504303459544454350294268427363980586291212854127806327587700568870960961206863896776882873111964155110643447947017360990976102145929852913702772561361668494055510424092641498829463958059799630970754809444978762846966472769813461206193236405813440252304532880944290562599819282577825413215637872340168286715098988572351790453319868435731626899643588700948649144761529544906731214979568543424512229947417886699128777514401303522835242727401097921800038141462815442563572585622388562167813467350874752126174454411704275996108991393516871743788573035069011531350975445891516864155966902556552250203967839603078585549438034025990138559851954046188669007345722239846271661512847152979651505738168768709991308782012655946714859007648304953212596345757141727063536895802819693034045022078455273739744839898189238709061061645468123507273821926939764003236929055489196803507856594819070064282738636702297198662644911650977696904147083632143500813460749449164671313210175276842667825046597110249408857743358590449091267641919485186871512319734668275803801470309262994121769447302412067513920863503575633888556923507780761060951757880659725248774589449594735893228295393329382095678440521484238628054250110636190587153516363482744855740890661422819029709396273904214969955947463154223896573850575533027208252351016239715352346180231315747559987899134707074519001011481593017149233957622292757630410356232345117477394252515239658856445936261621267969671877014859038504829724362716776481435084419786263948347171475669202139279684481900729036615626469769156465072714329232493206619116369705807913414652599744594785120096179992190091186936172368861906789506591690261610699136082446434899853719826964413412816895876633319873811530937069434715861653797625439809067794129627027374577435454344927102587554917927360241499279444742392203230627961160618110978180104619084081881915298561380983265225974210779504534528308663509242158324147636641172285281385033089425181454689923892125181401337545077447068599302396007943346573861205757788337489227231733410151835695371932035901333315003727687215734535876101560973312333131779056383977506868406019136603418182054819937354757013015345803660082031044045381160108042059242915773736055588382708844715381233485154932809210646784768460720487815927267712878410933296991026426157034836084525024014168387709110587551351238709524383517697004288057758306746659593262770010397889047087952585981198003392407738101652884348293679665708937187720968413173215038037194386530495243605929243355757178660727787351048221916784041223200082456860848346699670901852141847183484160909318656673988491664821002907038821473000743851817207606653251224217334609326988512944611629182065678699660722153901657933042565798640868659956546178156840410000399834892784398647640703971853656295975559647393573252925600115473569614513591168801466997897745840116159617280224557325200817057471937460068623108122814942060572113235179954759221016874453331645347525671724672116364307316806813507578642670778370122135082064042922519461889268452489140396850685800326729312821595535158484938383830963728707898346324327734418175784551891758117985515202689637398760444820300626027448334851801299346436721397668015487918051296831845108147606752533688723305902537546946480311459498933662313351322479034954854443085807287083170336148883605542222323317307467514700787887307815854368693286863877803760655920592125569138992968523737981146843087243752653022277123324686132393084340125598488247236001613917751321868940044257101478630530918778394300335696391482749790996003640599277740534287603120599782552333577631851244377651727561190092672490571566475994638451199523171982545701494929844928619326199994199468436789162140153118139093449250160044147210179567971247906267166328210307440704607668250743835574616625765802209870237711140361586353932342002616714643734711390480277040398004321695480130905320869160771565719299101560050380292409982234246049704392457711486508312586923434342014279316959114983162981411894344363472452298139113238014858665403516569587263895244428544782856313329844184890222729244515802427254295352108034350007937780161629454313982226733514789285750204293851986810632667983050485289504151011153765019773702335735532559234964990163292124818578814822141054362316619368803462357018734952079714755539069477826212518785697410990060047454256293028303863534915622509706172158228013309266041121407929218654308837353034789359292608550417394269649471318032490673791487566557935847565013306998464890820336183474016222102884681069052231936822699123286707963349345319454670336548410491159308171811930657977297997836043544560084138360981835535760725679296144381524287598892307667784795955858253492843387993217380265461840422417788528294699724450341008599760239413567818289417494841572905549756919124528677508722301365639928166424159379786296924724131897817743371353483352621035169032473423742940748027199867660106712341010428932904743013907961398914380391108971750257379836518221125682377060986308146131020527485550789392480248543979445460288533131257364447882445764476436144325290577446341093347617765220193391677529122509457567701211100307886037861835845922208524748448820817423748827375927117174038662574678919127476072057154005569244520719043245126458187488231442126710139657651319721608887207038252150784681034250295279015106585954839017249599830086246512369246795721438904143909207682452873311915775525149657221185834810375044579741824378687014834603330594270858542160346510383970609679291916752356793307634095339557105020425152408333881307932663281313215288590859159584276347765807859807667573383754760073584927787233973729745506714883574406365222450301390585070690689335171134418312671572548252189953412745640833271203731959477281511720972830207036118307971981015128714917545381925193147302734991798274178690297010921813372227566093956784898734265144005867661059958763203087482096556499127663912220748545389570002856468087138130470312017350290556187347808659713242460398070635979484205948036260156836109618529198954228384772227115186690171886118781156548327230153175788489849571512133744034909714494634772481211561685167022944744068692074375936829897846245598468908555911758276167693811180642787028584928777888727841674677615786006325870260906426336138490572934956601875252890094381972309674876228362455659427834174019237651153883354608669881214326714519544914105353524318603106885376286619384366503931136338274275008170148277923212037849018122450639797917202545848586936928304581337027840464571961341948144219760886527843745691741122067765582107175174906209117163365339017982712662267320498726445515393023917224662589710171393787006684041672733883308726233567368172257938606753716442714993690477340464085909577083790554825942429691990215965704109847735718122816440060881801410948783025334674080943814604541480102262321354689461606868310949616281995333183860455535967714664724268751697664716958300300123068378168795624832402604284562020092171111931463067472366662383935735219228508285566503659472205820673463681256030455602433769303788563628095763530067910271040051419100184908993256757009597195779585308911905016957760659246574318492091869377319747340256217921358679654683992004187896034490388645827532067681025022792740323307873450722474793243873320321563102313831274609797860851302963078414068384327026241204668112207681610614225228073616395570862080462732811802487667789861194276847233940513830723208732167898590473694163319179127973090903294558621386978528449761881650358489860323248115958313783932425321480645668104606808745694553460484990796882673875012816352552452037204340385661411650507927069309449408093767521266377063088898863047272723622387472005935550744466486084196033515782203131331063404269479636313239802636688301501506643389406211550509616839159069942523667186327597028660578347230550671006818856830055668986476630994408576724554182952305866091634328714004532305249360712472616958112176473783016267777944169108301974744450715982200031888668065915555634384871590972347679320701557052194018679807480022525504765920227170379411420599854550273531407120345222096270597647023070512806231279342994808564866669146377185925562822831511361012342624402788871555528134404445371385430831941495758256080386304557532945017451179657576530721438654415914464389758956737155814162298505761153968985550977189339188470424249034885088413722041261939252444177609882462851049243249825353786809149321137249424682158148353931386977779909900641715362392542214405331353959033931678022865412661362415952614978460844929259349547389206852886469911355515461407099325133641732535352747423628383942360465510911945278221128448458939181940621245017944107786678528527827425815146772334285507672870840766750846020894505930430312806325070455962197289792432233057450922128868089395820978098736427323893792508788718640487549606642105162523159062914513739412518672797350853208232776348052829560157286247367679497691729727450386853430494525735457396327558410464126982745624456946172140973390856837926776725559506361852351337196684162242933422622237519545863699827403150128779008468201943339209000648054543257020690050294540408751096777197634761501798882350679526556613755993586845531550005090268153779228054868888116043648734053306057620386780032909183784689087810400807323106250309425170633693627934745619833346609604741653688165708220386343218768660670471337268263819233522107675612731428217771209255865006911422641167881628768060746625472839514295409754987570584967878098447467843342586243452903301768527950675695474646436487353215956590396511952719746530429949745160895243356760178730117963726567645512004677682883719724503357950742491111090568452349886853927095687681772451092795714830609255580314004995119397099994781187801095906604705774898457432367748588861316021730626378747729965617198861715895313790954596420406799419146357401135029181708117726545164892653225629301075922128736432749113775496156762771856554761149773592246077581717677042090049396569938161938922817472819359958483926590927983663987467189178329763461666976234402155636031830733222944562621961346214323017198102731075432294748416244113306428486068547676217565480492015066848595192933811117629629224676974660911810285624557085660060267315993602383811128502619598506799179425055828399486836818480568563358862616323923006810914196312131723673742030216241499107651908843116788354393337305689576794827789470574358263615072781126597654204694301411433538804135071301394650348091735264168892022860242655924219555107656289471541941141725351786385289815473418702728691841517880058232779565505565571639677769308232343953076117899949729580725942081625965220112462303097659099620691900026926502484466571410898566304166263238262661975640971580720156216646069535777298433566734696871983903469691946852682090079609668348593676298104777510385721150111054095555187814430306303184054528191091526676839354431320484931312430654146106784016705275665062814244750161309424233014759678709012350831179072151934332970558779999319435427671930543167714890442543314628056557656751225387517754432962213862375349058343564067943920687200423667692284353699876029557635940239320324035139505529206261162040813107465953366509928642696394141051424463158967083017248367215704511906241391928137297429259926789402782437827664691916903052666563482048946602758702032242417277115362921899831813794640549168935624511804902997085069322021126114062735147689943040892421658387585629724012932837151148498399402806083839945012965842161405358595947015795786454389364795425557988340572249820215687824860023872155179008568818627509869387634516026468428836300977934078388086429176076057369752624921977195007648304453619309605348028614490182184816398278061857715696691913553197787729154173266741700191428485885473956097156758639315986574639434917226398480221101667556394956397250411270289095952429180360159223823712829752655424559180910036351139714201714162569794174242439625114546241667933515777835616816118287900334608738468125976133361044788690407787974379713426027261117063422102286649612093161389112745815729942850246891652430832408250861348110648660806521467975297374069045360932395945303131092264679338091160684987718546966421973979985611255860096185820525487586985717988696968310049457434276419778730194195438695239871476520121283785440469885955555941281307684167881650554624591175960847949592873444104368234261582958047079293754773887219654134740633854238706083305944428132068354694617598207776844998730283731033064636632614395035121057189604795543945771597472533224652859599989761767187085315397965275494141377255828786618468969212676896812748757977933122324922704133420550644496397086812013840498710649525868946687360141261165839503145950830740587579710791986813279614547424022078724925472744456861369552702650389469319929420358643962749901327929271496260553966719291424360111559991264052419872444243480681243592499104578482570311241435917406770938474748527411228089242563541109926501873805525897028607915922613435716241329736503846727817417901166371384403969698740604020148492008498554246878744667642419284263043778206686451577366894224733469469335716884491730076104967248897089754699348801275979943108432380798077452919369884013232240461147835851912547603539007170944128845840385988715475218648780956693735580163259388333002157557490566648951076560425145040850582352381574568190023035771986977488331823161385054017727786304654635110402921005432175181939868737129103638875112642832032088535925012161890170026618109697484877982019850512891691752351004201511290912859226510722301476421241708837717989130292905961089602540768203134885608279427727682485630949267223635552164084533155062618580353689001073960303173592850546487245556967136143165878897461016546704189781696036663500988711668919558005602010301840712942907063499285721578971919596074593131712053499339692440143620371001440881880317044984350909538205174617310963046434251969315462957847144512012270058134411490240888879123257052701577893447124249766858797528144361013347585405010385698750230221577306698193864087607182490883575677931768775659843257752054269011000990793009767585993930383841629026910273101885087699305111542190145620474540475895485945761311345600126092943278857220527929834229657200732915146001920042911557775062456527182942479248251143831070994410204006744231953392194019533532547862658427874648604866426619487848738282018237640634635045412625904679375455137814136608884056764827335960423555760617322777573520055858418402517115503589039461141352114435471503226761936590827367469507883984913836965387404238706373399262314338000971640747243053801417879385672214066032338612078520286611473425093675091868006988335006187508291766016455834572543890701405343120679054107287045219617039728984141969568533119900473347523005383456400217753263539062555239350973609198664052158912537269197624606398068124654071108443664475445363323872218633349261487929338001930824986723273333135425164442984371191319742674718505019304959101031893731663020410274809037150376239300018556772056450025816497306177073554299486583787571111210168118450992214356470404636687828377528714355301701165835741558838469774822733204792883272343559393635343735633156995727840794338685923152301821074645947906734856320711945394127906605660981906342964640690389490556471385655750332029757799133877256413462733229514026870871609637867910765628080510089975691070360474375115460520465676304775742158453143483628215472443493021348899018863937131419095272599554717945603611283818230679677589035439222650120352022993006922450054643901830728278533987163839267278625822251191524461925873729972837293805186297297198535515431311113942916598603251239939856122673720246227286746292884506855022695596094806531679211255636124256217222238310979432538181273860742605086595732435649789450736507940444653625519409799716657942983727568228125344953518893505320786349910323847996214150855941023871291608465581807835868131042993209810239533958325177034747446744613108626026959947305426188654435511726370688087287801556246358211047342040050809646753934434428199781203360695420297396475813047827705913132318749061703400781658061812654399910565976790846140980368049540014448680083630417413841903904895765512281346051535973653898115241239571949889773708750217743856039138771949341854053541331188306536520808373181386560321503402902182443614246349932517347606278024135160912110076117496576923997992622232043579930872872717448905241787170752270567232296361517989930436574264465288220226377127755439080657529013870346761914391568906775055626940285233167903829979717316568969071163861203241550581853742302452322995937806261604704686040657056945119686276534885249060006524786810352941803004944258847081383856265216551747079446686204166212288735571361172898308643764125993848835278158521741675749655650378387230682471278972113484184855037713658091158408742257830408190146120264990512341153780920097292600187148094001122975421116045420375812535525778264406189134711744274502959767881745987984871042224249935678649114470482628167460589461870732677187471344739912266277674801596368976004826472248523979673316746517786818949238974403224368140613195673688994442319601633804936655164698069976083458465321959567002707881599725714857994810723058371420441207394725066381356177610389936834532326036872966114089408179374761779587731133660666153166394932745552129766311268476720161572667452084027889503038787030712413706755123614484446111949805929434529107896671076280860202527164351347219578058786963529169567824403350255629177302596210878142432384519790272902167563142400344125529168219268501122662151990419201109102189483059720958509457535201095855391985737469125015248144241247257086590226895866512966384250546580694189522584232016068981582790080709614569561324353555090965540647920109169629978287876047823806798029049490265953495691666099354738032377323042200921050136323328236240838075424100724230197833161841015229564873153138957075098570617244893501501741851137316248353073556801964830384516310189437612343834171296842349001534198394222948920543047698954862673115785450263735495440252816494766885383347167426641869622579275627020516897609817110839428061280005049936461551043259816338919311689090746506644386585398613473897477881898566690315752564210789654016302775229259619231542011064036752491377875302596581645026149723217098179627125422849173201544063129817715632527441298568374673433793814324582977554075808450917955484815913882790661300813998733972638092195685752662007377992067874461429959963063082802967155427661702274621406954383285479978113575151659747739791696395176082687726791333218070579519447150649966931662198336640878601190417644022282487550263386937457193298387563400705853524406164290531814613180749319638193400216367294663553383396996943015783866112683487428211123902853015665061969084946760400631178419377419068239220340033732650452938063162767246310023952776823534818313457901902316435483671486246990410192173947748174294802182091065941042930085878786883351674020575229120222123569469007723364628162321276602608939682586294527256396350872764412455151237972777958195682919627440766585245494374500459629312375290981067679348752377929633605805910477736449096347469690599418962782705459083688035401802341831378772024278820279930759167099865820699630290836846860823456224974422650162248845812456236498131109185464197728044864330197619662646536029695655516124054540591973699125422689386071113598451452137308993184499725466998457897110045480473134948031524354583238346503124724258772538700588163343659129341730488785512868223032541673836862245365434212367133953160299452280783872153550682088323304609448849557480460812204912470172892386117614572447907606381566870711199271390792681246781552520896610334991819746905331828508403603156736959663769667322508385330073087173739612823061773841013056303453712855047676866209604988288756769314467859415868668368791414509553434273832960444611793271153867245670171311464079871374737553801804888032908314067061080629374063590521763785234156467250212322835584479575061295481667925924911043841720820444036264781284432805360855881006450868591002949622659819335784052983739827319273930229392143581312102146740500504132866840767456670462672925078726749673468186914445736762630682113682954723460511568308613275778492154199568119601820207733766885603080146094423594927073921916795489650372748214775100974467857931486300879864733821126248260536880094937355099562166267403293422268145937731276909345167700646976006895782966311925176423199535922444836757728225638798052151453839560710143766514975807226894760282833115190765304005209922181671741512479948397286297483569925151886769259737009572938864516690062316149923867827318837708112645927090199071351540839866532075427970695747042333685566893097776304361449426914199592824428525808317901947600445642462403289426780630716313748429512616499049049266410403563466007884646760468920785197554120416711107922029344927848409049603250523429256641046653822732814471319351949826798248592445400683220367754524821821064143424320450488685260113503504076153972145987975978681611616014664478564870112609068855663373189513896035146102687835815945861809700928167227790095000539692151326765177590755174422485166242363792655987065967077206380429124550775285599845345422068480107851665408837970487526856731554617813618823752980192034127220425983252633410439245516508857140773259347932673408730364422404340511658478291451469137343419667669634419644818440441071698768703217008355354913692115379211628965066379271961498162218264590684086091687513625502571654834835808249889140089472467068811240469334699270883787889024692102939563151315278481734282097523019915195490579576759553487196799320589198034414466580725278951384685180427249197173821281265889638860702072467578533795844071320218705896007292660674637073765914459923948368404915753341495856916668744896660965615216634538246297275935227444924583888058343660687476966020779933630915188012765417745899552159818752013285766310235021974325394189475430258025562132949627561647500308529909224032829234853295418296293985231304889101251642858249635823420361054649610327611372868592302334820729813841176339239454514550882661577420365253482695464937827793472997356928184009362684071451069672680175033036551644004921597928119628300269247172230248171708211463391798122693439805089519278083886915403732376129794738880705994511344939975755537174122298301849932440642701782596613973578483213161441185054587598620636152178600587608322551444644083246983225382726116411762339314182599621000131175715757095919682169379323154563368236962758776781891378124087643607275224503325884261797121023694896855180012450801525846785476916372624797085030964643797491419832220823374453272969150246490739246530684309401558532599107775126271736893862925987905068344083376111515179961185153266830689664436359058577222416343159986176603069839502904468845642901484913505563893890838847601624710181282126795267438131249527146834799841543198790812279982097506667057856250581661378707217245892630960557328433377862972176052957217990069629224816866374060559780756571436631551878377944687414692027224912338374990568654357431944833374980256465872536842055430844045198044836945611436294898300531065161148186160948681966694183671722763073308919496412153359033934315854483200328759830821875172634574483539805624939086185120377620119019514882604705990230284663256560593058132575405595873733065547279282768506756955304859517641658987316157185653620315572413585267948065576848819659767938323945601467209179591850066822835435261848813600404065601335161490204089856148838987210942643053716183520689340576366946431725307313317044636454552317638474397921044114526230907943955322483151581904277120988410955548635192639724734234929715767254457063189262129998413830039870327794921461451888700011343441221850199240167460959448339203365451404175704816942967552361596695669531094608009857774900210242731344394501978338791392053253132494519752314797882646556967243247665811176303589351731627990026667065577636679479930240862342122977067520668200072282851688544519137423895832078298415997642181789854485567562655564310157751820065630583421818079305247828697578471158121368514808638188578433464834440083705601174212883843234900608314768549165456147430547476056376361254354575551523139299993637253767298601613362066242395818381064351872203221469501270919475927890876924304774346626316263525467523011359198468967097089347037804075061565016686203540749823875915090352077927487480673209883769475265029779542699305063053279545648982135799767589095621817051967808005941873180923124986179560370680370225841645307114448541929079200062369058917837096200724868907521021826234826288159171160423044688601963640987328610602438795494526841799768809408801534841445156720114349524512972172322057390558156704522676825719931809137871316003907733229303586579014673908777054120054680834190902066389401255125761096631794972149815403484999600843253049307517549231731183079912528183809916684365766543194431552470180112048496918254145255210592044181988166474199755688944030522915392541893768902665141224554602010997935421518385966659363097859259651220373871048836618191887424157301128378168071247284106092559646086073978991847483823774991655568162233537782439151043085028850584207549551051991098089682316971908121913883179528194690896864298475601947682391967124658993092856465463899664698320309785227270770215214079186569894065029085763285574711673506899638976257849722314278519857309513899993069883674044369105197758406582580457464589072215215733917240645993355819788085400492456821098897417075261890507536654074422710235756862558862202847373781981660568847897998298262611411450218763152213622636801026394410546802951363856687665486062529384900561447711990449120235002354729631889287791331247327153188183725141720943704619053054508110494308945519392641088586452384786859376652261762442419789643363185747460676933203740623207422837229713502682021510668986233488009904528195043654332494487513422978676928066948029290918553387188884450354616462700275769523295479603022793755315441595941574764747364241995221812414772965183708452746726466644672417823786183936724030009950865830488596465454727502578386747300239340061030042636534463400020789221883919909995988715046823942091883395509241330355975603005692435884353457928649884588601441376566114013645265071239247247585865966710810877506185870389397187720828567241277869394275574233474827051296076343045767859056780154840600797679259112320534384751473108010977471574339950008953285824415227290029938218892807085378623618413236348579716631214976271048625203089373052030699822627210040209132199367555054585416976463662447259988487740759471097244189521301780117998560370361301800060698202925572209845713433843974214938814499991370892776079045876591030510539448623570140458365167625799813154294716473645066369823867330475482971778164859347038071971298816796910660869738609126850623259643361649743426371226588450617023686598422713206653675791506700780996347110637014213783771930718627204534503391326928498220675678066218919389792486974555594122841747439136431233861480818550300362171339931911822721451430625878001422808494936614369422463641318079612587069745520047594804001699401634798679580597763848384480901427576498897908716887689288213509929707293258482104640286530243367619410217225179627089537587529911046611539424031638398984691040567922116417959102708424513400163132793015808224883884115095274975013034350644126727165668917867219487561687284798874185422037892734089770495288792196070993518541638551738611384864795125911756592358945788651673211563598853241013669099706174775744143935011995282558987504473843243029681728881988585856928857298547407233272575651499637656522151279576976603388097419195124283188678992201767273115738404358755230936877657330543553522318263424463601985124093029258343149260651407446275029307856214398725661052846241351480242652168727894600695390319627109032429359137645477683775749431526895321379488111976622441184512642220536205863424956528490603838320218067715264493369413136458103196558186322474086979200260184711921913257193894462435263571584624381100702384861758945163131791705943974235306075575306108988686362924457846230637884642968605560300104391504778639557662486521815378256362084811343993712828734130313584948024703435926349599274350526038152639635913759369386698745408287934156333411992732127151939079293147908236231544501629126486954197079135194266459875961731740175258113271893509585715645423782058325139637828962360830421621931562305864241161765018703648105386306524861008730434445785149860408496818845846602486570032507225600298684237800446624870347196284951283030772534351500493420112307349429378000965505402608570626303347641773683859683931433399575184442857246628596023666461848507766244691620824780594158610263744674338477333832616229206509382826618008070004556848647628858484281205607616010685475364034445382601241592119017375412903866925657354268313505688356856169081688807121284652187684714164195450430302732177610946119542184508254700095815586513960655773834026144441387880846345103277855739710964047171572127663336483822268818143309199422408146376129655026394256896151681956798851572729294638244156340451639575447708990003228891536626207321114135796974849473952995875479563587958992719172684679596768103197419387973087524067356415068193698442153467310082645821843867862933352719348297042656382937691272184751168663199790597170938837025866114443258485588690801568406392503499995885753344525936558968604810464385986849250372817042154839971059279847926340261236265883227200793995906070970976983512563621415955711367475053803936776075451332873256005699996578649179330014210287703298291189272512764541621176221168052562562364613702403457062509112403073012489782008844901967792329771869834554976094090754480511893972267327921053902564130254137225001002065839024495206808633035176618199442418719013769542311430715419163705483407633345112266188686227268383841178892619152251113937076335288207511256182260308088150572925483501164177274995463999012028747304942814867052455669949652424557703574299207480976329031403134185641170461801357578452548237536704294258855733710614467350845291343549603931894646734540608557808575956605132050863052874140793279964525766507739908565214605357815972801724612912497080109089791478834819737314976435624060331388637931517898820605962329810505784236107375846566481307349863440832480793934212595780352720159549553012981917902965212183091024457607943907685599810600387988773495716226985872704729676060176276043514505026176755750269468088128486405020990821528728488509894520918693047438633892553281925606567319977636241512147878395274750590185234405654515999929597106322410021318742770663575404744751968973268423902718957306832406728018995617124641031444456726155455478339802198321384452937749214354922023967436732114783546323775942755437753849819398753991868737785907350442372751211796754324264496611009278256803717616568055375407002090148575527977812908927135074787324785776871451751210646024689414013190999195442258213820077618072899937793578635705409474890581708475217585793674239823272013322951565285161728804002150374666234452906513236212355859578536707883241933558183604141816534604448991827669592934749309346947405780175568560381525848302767283949975428901156289384691666626660803368663878377744443730405174884091715325217816492325826124193355235014397141662008614283676069313767410337978748924454727185886959799831904944527298263587296339353879941516869316469047396140523775832242750254379444580561329042243005380901140304778171018631143371736140034143279166584568841135639012133215273500204145236029323817406988793887806131219065548960535610005030819714669262037358943146372869058108472819294551907812244611473056783668473203163062166399504864442887942105345165257087550060156433172356812728943041406037250602074567537896476358275178077005381938406026679966691173632357462725585215555470584897016900927330125853254727538623320966595314841218877482865411766520013348919374431078307410869166345023012956528005783231194808378341684638016775957666241280916319303083558718750206225058339523322152627820502887178410862858967686510802331205478301661993153973430290322604471477186900141647716657597037479130471806926700105071066202359862332962279203116783215908152677378894715142768292120666157697687047841909080508537984457097439942160866113578652272024510953368065863210930174829086313809632119492743597567383940879201946949839642826980968093475493834202740122823139903473308807917107747618252762832810020754929962215202058766883482422984116799002346341536406484129379274330235117958252195372558337692236642238592526857055493385142231617278719268554622671539649083741808070353006732460939717438766603634843535929941353498508400321359613009949039913034913830887954649039351285260822744736662598702093217754847104140501663225778866702547018902832730730001357073022639609099046178127683231714194972070762313556655748067999659317990616305323436186399752858390364938249945296806564371751245869558573376810906355293083910917321349360631865620361476564043486828144259668985176975135010948211853578907398772592166541471566458015582375598587738860669093520142001142416574862424660204865221958377723627931605060326700878744518566204677833339532333893220808623856709728527245487919101480809168563369421444072835800950993466911247076474992566587830800947596362980764684820600954401661030360135355909008052021218457891700132881005098802041395218047413472995205204686296666929568503788843811550433721595594663638194687459315005670893348895024965553662325252392689173366221230057025199139710343750534456446019310196703859234727400557162368727287971723736325790072041543880072370757544810447283908745166827033612889496793798227427784302653882615195584551485730441646472137134448911574920085954415512225993864710058010749163523126113529388528856920794284835036989594085177808780851556481830522641212650452710034512942603261036303470628898484451663364394422896592976899791197418943280921038700868315653947281844841130297769845160781823946929397870772555519214307646623898489357276862255322119307261242470408372930455521729362195496209563914112830368482142242060210940940727332924562253827854448657068714342006558572839908238897725343828839026883358563034844984868459786392601429998171611116187517002876620452710963529779726024433793916814911423451275001091854203084905195802627052146855993963332098129477729907685731180580296307743950362697688892048146711231787087440929870917538795539930002510999045793888430129024926955912621754940935034039653666606231443335046853966955890648056351180637915258247637530016741488855448636834753618219304169083621707146554139467404680168827736586864765379380197217389602237522839116064090284926571867223969340459111456109827938658772967708229663743988837370129882081310732724963075329890319219120819446301456082378886581518986207908835251557194736629341088617973352179030074217836144480404965026008347677153307168534727452466114284467509289012170488882460357026369457205386740703129031710535858927022480946697156707045089291616062314721286249224207227165117593409339480758695720024540210723062513624949928663072923683191904367835952775869109945169427814822189991280674042486308786806495353249605419770913315503595785979353585197832175094532614487837154801946696562935580331374894038672612178001240610475731234893822211788090795981164347568568315868543795969702915559288104717088947301349814786549090039819424289167719968161335872386030574899621693209020664453884729272448272666308525424734367920892781151785881381628495631473782520633663509638871139733111196082401536472107069509426995725792335686925180356389528891038810199910349233763748360292232682322055738889575294911477059103145376867974846228902182997450532329508524914213656587585733105260090684051978769588907707913229442659331041149730475158272072654487809466211076212955708046637738103152034542038966815005624278042960668958523867763678217596839258185572964026697518006936667379919327921627276162020641413192556731348782665254940732500334937090117052571181067006914198448171359763333329715825975706763383135055102851501943282081140332432901014159693606840407185485284729774074820570341377432233525456287268996128089394004990747068574559369264266852727874976250571298879115738112248769856922556966778172664421762417405152113106213529253724134332022185068368280451035110104629375019230469421679813499268455972678232463846502555716498798482889880321964389906272790636274438154738649368372250669867476719154264537984732269903868107279884413080152994078220131705841992280980402960487481992364420705339928342478259915332659397226866366837342401399755588633906677206497600603289122490813769223682148337797080611875652539314997273977443849668580131083352798890735658811294378863732349192463225634971384287591777740778159103000333526520035747638872059068638079591678326118925326788798040002727495179358026891355843838459315950336171828200863362833080380902096113290649931645436548178107802025910589385181358708821994078862106044472651409598059806465198563071804799891065780860333941651843724918008441564661271317473264802626525007948995893704815244662822730606073589414007860524375584993402743877221092843664621952544747119948952435793182948080616490396265630836370014514072234787673698090177508970237479576038727121121280525655312813118823054746176396023642033176335109315750004644389546139700427438734563075721132927143502002750275515408278806257003576764094368541430573209991884942422862200972004682415374426958362266836720917441056547884836956322038946501793944828442312849813068954568277526159067514195233405929340144097108587650644682961179727270516600051913282695701627516586365553002310853282787510242953310267352953682037319023057536130999611027392191429689946186877861548829127267841602740802391402241818227039492099243748439838060599225987288906187365429461838620250664395395919578956573136877712703842266820717507707229485048438773334581553429412046929855176813479671682501616869983188235853468360503615176503906647596823640690642299171752434809328648483605629480198255601597551657839129003851489249438889392423883100833027650626196984522405168631891500195263797886330173903848786703537671004457118363508704842341161170558939394349561577724928514370656466104075298969334546431405704594070248774047056464068551589284232967666158786997237442880121706078886388718465401856203039205054307100135318563535489255061536598800255323802192902647636140232630181117677543988636002663286958471524810077587760896908066227749493254443915060021546605786961179113574409088357287060340041758756804783772811064356142877669172844540396410446784428632372320267635206151609006219981606389022484664374415253193653256103663700978178610400545467304565678305331557612089697978806960053616744257177734019217416512085247074042315061538329587477710624208145476392738567579151222156653485413480989413050133860906231804308758754319900433243580412141402673731327915769686323971666409505173795518227286259939352595341947311005974795877404766558239710836670595611163958522740165980865495505851082098027554162475946053355251451675470579559715929163586730528759039523801183310045779337965053510990785225965035980859059299966871649702803714370857784846129240500677243378304433581596305940936149116752147499628311648837454768070013692352080021604378775746758160985928373468800542111006330321152450497755598652325069500510745518853436511430557619007591930034187942823962081206011100993756435646713142336821922575543615374863922907964912032585188212210423785374468097142032592424998692933344087297748196752673286526859825954742020185497296454810360738813136160918191727406935001324892705790729228703927191452696991415775738539271022348462841322161509876683678164054851247635570340531025969408792566334582743930830773031549958253201349197459279749033749248463079860200941924415545033134100269020387650974630779360291542518256292189630162205266120765365343295484691571524532559017267874467022943822482154283123074919896810616627562183756610182706182908858401127381791505908151728994418985542667848933530449928953365928293005754858482412617211098938969582801271302446366054813698451471243103347070042235225473663220176920272127504819867245795741101499053254066740631456013329455623102206588140066257272803213587990869770317839429208307196940116921986268914766823389769230608005904051370568501645564552375048535399933676785459523954031880480590482505793279812739165384910290676287522289988420996913144378621171797360462880432674859607812178898595298822151545533010174432530234087923807981204845246983551115309015816005169841504221801501281563266551447003897344259116175914434878975236060256585040245301151961546317355720886876053485671183906795818203671535227555232491495853117249595628186532148902208109536359841211837245342734438228838851599950594116577091100718913288423999737935775331824469118649315168607266520171976498311695622420270676032396946377376967936260310434543648157236922931435998303435736630449080521379903676478563181974691991932568949100189638393480645378035044337680253999333853794563313375363203642107783620834733804741631258532645630191543179238701326499291369365408348710346364796574203255050583626300901526512607450166101774076413526171034830127088988521633410069034518246965475975305834138418352870670286667850498271382541676038098005866551085601602560751403310196441554646275267177012468799622638683576187503143532334992751032133428511237468815880945315975164394919791588053866002176201174815200584853689512682781491415978976141209540760772336491913561462873288132138226085876617204957199207781059403281192658603097412695051053492281832355497829670502388980908066806113160782992347938908627481891595261443649208033788146752543532988003641417534360537288002938809215652206199926545147418920320187750345812880007333270138175538830195390376162951234777280670944260262161568246718654776411179567401883728572645086447151352814179513590216252966171533419174944107847332895555887546780435986193377584938431300072872288633528001960460470822115528581654050113801266451629589088561036258881423049972133143054730538784924420546896989234402826974072488249356949792112648204828490730964957630192288260181141847535112266691250070307400873489652820579026595513215103704946987339449984377190654415621134440301526757631198240054295980614569785335879939498452024125895497451731599244210285306627562659717532176844081374409791515812481956305855279534982257113835042432277692001940307300402264377102750862815875478746033324622407545871764645036734800367635345272632638899293700995345688334304303740567624652072650249051237110660531782211143567681148430496814630694963532395588733757449761174089631962733943480790545367229080443767318722101795847522227538568421746575990073304494242680408552921675574596129531431774205029619175787294793619275866604900946237521744021950195166780410128874434780559784690949480504160203452964756856206507826964969822789430008873186358126438269139233791761427686145887709861602218266642095668067406451846419615869206824649434829691619745644414345388825602831551003962243238122021198997781028995485113485015027791738206986208004120480471066655177816006120116331485265041943705812898419430203151929364408719470173875851286285935336555706015945146996288134661081884535095590566457670717130568157996738164212113736546539030151885101026958068189143231523993031494128568803201570473154842118187291868077915667692988410488108898708401822444698594410096108122548146483778545877823592646184684282046914856389454263062059993618958383641360987117773013373071983273857470820391641554693801808525735287245162318768845524953155414992894563288612393461361716639352724165205962206549553882407579036178935534069628832633363645086859129888496085113069652154012157690302883309770853405206437421363719801561617293055423727036461100309327490827907808301321889759307678305467138589068507690336755770545651851258288645022725706911034182128637050880587320378135182407358255525067584247376129969833363098949782197183404080751087252496630390107555173009176375950867886245759520514265714874705539110500205492523445677621230619046101372787359520387395446726274360857289547440074544485852195200999210460772940235790058733115930641907176624028553214239080514122706868121472995585290498248194063475704888696181971116391943901770919831112731107682268326525751192166468085564198639574245362618172697471856397308311737193109696104286386454382302344918045371163701962148847819455266702358588654197929187971553339540759343463160412410917301286004346880384390638249951782540605172499049580879804325285366170475593408147658433302090663824473077986619879643851822475874161302579848412374461556047627082964792698466960881009439180982592939421371039143693824259449470987131888645035359873336201750996717721591997676741019174768969452889053941686235446417274545067127816287500700419439361127215814843651941350829381201755490615096942557521516821054398078893307350448412722379986238206102912784789449556263220602743254324093039368876030548620089411142659960530440813005228631474827455478582243330821536075903322642313457287927200398857764173669111314058193647572080343541001761016984155017963408567149095867933037810367488294025744760346484164632508367843700864598200373117572897083455192206815912506141440355770368334754875317171146421538090223361313022314564603282369747193924469854530435768749836509113355089150218243609900109033761386065856386569421493329579337375667547119404755076350110334059302516747795947250645013175721357163634206845930643994403563210639752328395377923448385193575709529586334331203823271055347879390506586359588957903899884424531375929010221088149725928268124843346190704819649876971579132049299969733637987206729665251920691402472664741004707176327770523886491644530500736641237169468737332707907119573282791218750496996103728665326285461535380214768422041103226359777279105102803797071440856605158275736763598625631364369952509766515475423233519729765206735200836465182458006492613696748829853681802177332393086686660405026945156025626364370927412246236464840418220269108664329462434531639505553158548365189862113553865566057177873705314967644796894280077379508485285348909509383395997349990776095933266458677169311191215554308533534560128176916459663545576773482154656344561690640652296685606321954898706124353514325067485545348260351674305603593215564772011506574935237172503254782905402329554494877127887330440712843725375220714668180536066904195358119758094871415274460207527787363412581015848645998706478729708883229975353234833297695385133890039751580297078947684334514876086705483347101283496646469349254353956057645706843968888414715950302903839387094910189928997073252238355531728586496675998931553107041662824992921320739431147636362262120961393235772774956278842618595417902187311819706588726528195064912036351105681973960277692202384173438536401499909068729096177855098489458221588694287366274613096789411714870826021479881760072909567460114649402176747753695404795497249765780374411055322425277471871964640604923349027157866009064477690116078575943658771082063650431995652914179372170168313391728515115020386031534914641918766016806961445501711779903491182734630297560786074516875945402292399693643508402301505038992285947649382102178594956437440210575805201863290981105136495732245504346224864989421912902612718085907493263869230566480603005902399307791517353698551216309620900643917579531431703334838694558089574327956439292475829061060769483198592363834274001276990916840775347559146990747817808458129655804476079404353022081603979953204275313593401687656306632081483267481098295656973789122807388908327515091056972654717983600158635372501225744057220126698829617357511731585212810381888376369145048954655486747833099244556099663033945146327929122481022927097262106915528574201822634896280701367998744843294373745589225575053999690562745746955768735965218830882369459495373534698830438153795342247772139168544197367499505740572153317717335228024184933725571310328539767631223933865033811407526971967497211484789795770386410947740745973438553151752474565768497365457106925161957006460848411153821260208534505585168525061606306480089949676262813687207544689076815219496631926240780139466332198356848265800880460961826075517247808148309269129235995545439465995514293055326739365355201786579256389926400825568437880152472468773321856410612183803443414859302503581950386235483473707659065687619490789555633572858263156078030455869247262973958363225077341976230534981422861829493409544260781551634310089631553719035006319769836703046904990586968099817477040430275323358052127674908136357598237899727215364099527900912627903948501596201488759420539674170975148597997942148440236019962316000448127099670131570285545634735936175123676384956837613558218561079603031665897978386096001528263646339333181451305546033738168350592769446918476280039939758980720207670275521665512880588413692898030827134519357631091194852554456602773253202821581377657817401749455360822316509448590547800333878008583083968418396388587186326400763426975251984938030030311456586187305593251953502109104964893476940857203429444951021401614072229235979898625242156409052649000135973550247211041128720201343880391685403344159119132155364653140955128691993470670738523694243221880446484072838687007408805824869048272654428980200741029870629524840279919911946867807525159432430110639055091814792416393677994053916949675989747073090339243364349788678314036715877968621050410641817404565312541235476428489630848443368672060526159059863511020896067118428482629911759340010220697409914413410029107926175839089811797865566233330787408376845977259918895103435241127572751405769613865883498662420501684445217119939161243103794413261493685711274332975307648534623429315031737338158217615402105262194254723737241326630171711954845364832982122781510000074741860483273740431274384124782590917250381677389786118737398558849850500294919013515888919518455164456437768251319949316995003952636660063471724426433159265864138475215025155934861406730124495845821461858204104339051585864129680494173493471427080089807883244990657741851076668364797752363233007573859548040735578604928886949214152506159245382153431798989409289255487393199049286985409136997458277473650677023722955285955619645013356593635792454965667530162528437409610692898336293867857710243622633075522069560035180750719578279239274373556844494496915993759108515611108589525948357155654751600265032952014749903332030047563966760200781540159028310958750726113391011787325773583196350916582283342889427706449043520584186162427415036985085530690670787587571343056817756851600438888098154808120535848438490850777785083235345557792973895014698374466010865384241519886193150774308631531991217396663557321753621565970095531176271416423688918518072718400568244546832281201187816722800513573547226601350615547358120696800077183393041961704293953118946559133186662671082848962453128642787312327954172500234466647555242638618851574326264901264422249737816911831225128182191037185524369609745904791764527608590633106059702079132963252781513555711866551131328678067038624356721070901072225515102210801307218952383724169130688001393579057352067110222896631745989236900420689692560317974027586625844534910647027147904334545530366236841833998504397740640267759592881952774959282580776535383152305330622869953092698876541790331328734456268434778375995210034115774422885103405841273400353621352512868207830865454978776014971430929253801770240062831269381587964948961836868368220378155814763792886314665816666608466808796884571015159793072261014096793358798124744265827613604629269849327264043515860550486153144977182269775943614782529711289771135562143383932061677708755341602179025284576864417312371209962540870217936431906678708065281908429042891114124628027084051309359991406563452901474383767353561269302150694650289222033499395288025156616881057527466243206788363399156460614415000431694441042777545840475606775843675174892974310484621478045480955022368411490219884101405600135376448478451313407601608508309378058666894208734220841406604608807430078882999879500600149049941891417150006794478535129326415132215557027690877619549587869077480399052757257387561701451222169321863208766172985415655274751781526217257752646493804679726167420199274745866620221192973436228293045549340208778459554340067931393401343726540604976824106035246716924117550717897434336113619028105138455834190254204250120998675533656424384536342944639139611021018693282789891235584918201524523028616617529103642042600468351488085090491041244761220600385753058759800388095325427959054149262302318435425730550677905482064466936273127573359001096584193473098148931759631238896292377433292145492283302629908963509176261998228636758017147148773795080757393705917460592577390149615946080554757498245123939123739331901531165107528815457359662654749315349753782631983236173863337611745175130210584386544266440997569117331377318051526633566988195488617469702805488735677819418818901676612221951676464101429472884434544736413653549010795501850231439931627404165785225651069576341770864912246728791734751096913020726323959106542990290124252327769192590874139480162390610988667437806144366393849860766178743085578926637122694966447385458041303700050249870368458442195451802835503047425900843797089943675083716156065948022566567085970915188300419177900967339646853596663979813623877902051304164917413340859843783735024904764187285478050634485912861321161786827890691476158708681534499222306201137856350460817129219739829579045882689201601666040441144529801979678477238690222113343039485498646909311499663267657007842543529459648381260225900625299845947837846050889272823258168672304208013720509349145161468927335722040433952780308495746102672283403802944883815367201042302538904426995026497686116532808502738600232716038413910118772199464961827085989747736185487443305473009872541657480043861564354340921812280252707898459312793855523793558770357570304639015011942711799873701860068231885944668755050063962510816441431048446225975335731884930792975297617286164301575394764020868398857028614248233701411321434659623020216027239562643368614059293490464105382453010953824323732713712562455652559028317017808491991547694478180941813945774769472102482781115031763690658430129263778050210422888451902875101809057165192303507495322993437300084854346990245976533328351153530165385224026334080453912406259191712364888247793633629576729120290359564791480779046839734024926646519280563045593360706487479886962299057833694886454289433496144273095237577570207330489333164082408687227828186643304578164612931289901791900627562020499010724491985801400976787629214701645646711247664982755032242606548733349279506120472186940395374940067947540522560320852755827296204760330922731189044005035826637661930312807892549933151908173290813546029863606662579311749060060562397993694512802757236031829072409676558306292488936361249444558723963068016339861052969660968912541645779631246801125243129173263743690907315597806016398941923594407909269056659054776115936176812319451419515751523882059051557334404650513365195022893614931947335374275116251729563813806320689302242130229771044597426254153874476415554731693696042846523176048008938828131994793306725826067307843226116293157877811145343701200435278152395002577803306465484817292423544656416081627360528659227341168950202919272571725257649540629979131759909821909161421745081571190837989911061688060270449491059714996439068759922563449554278945675701111201264268529556943587705879758279992660893499040105153512815488307104560744497577854682682965769859646726130269468875348661808297489462700836440019166805353590548197070588249220799137742254429682060655904835204964741865669525835065600366848336181536147191932131146858598947331328967604395271960497523914454331556248298063607211048934368417753309112207656911448688618863829433247205104952106641976798705707982960833124350732472567086556543807074078651653238832138090219013287575489253288813655071737590646759679220610629708098973506182561533390423216210681383036045679016718403581624934491948510852506356401260579880987775940877665165438207661402194913723901085945071898600749712768119513851749584059904033498053116064905041319851429946404504672494757534745973996404838619688490100428053794034790205638662829984037390182958288056925591924995192238652216314351720102006132359505377737228080033645100187479551125458819790024082059255473582966104114522404725619031734793022677601096752182974228564630401125091065064311959178285772937190633993544755488479160232222613094903613080853173938769364100235169528313152064103407782819100418902180739849474844949195666478806619819232216065388869419473552983645621106261261804658301423871873563351288594243456294717014410835933955583559846808402523615537377042056322536596423334951393109789978181954565474377597556469646347798632982878611254547466008758982173968068155990606162674878478156403959993066188754835575802694618448716072805469426972109095172306542069464469922617218465387140441164044190321452716703116014828737535312881642481913848498535293064628082647467481191967588603407629188885264388482082835476907712236055169303820387500298930190133180102807912460113658791761498642134843565149749965701800998635386909963935161430146123209197151904015142136899366802384365391667854360091943330397620037191199199724838899964215406441510707722749139681277853845396523876053961474765323022247565398235626255219058769529925980516419228072317831658263276588925439718387659311436244148960982255493004592304114234135298767219021234636731036268701448796978477126823407239739523454565037312056766442318726326235000794616210487874240880268075491719974713722772772504937863886966027432970532297396314950889545236184446039029981914734510416916383456810284366458701338591568422400171063147423598845642018473956336044894098328575169385344733817448637250616419290595283472788149778620102816286761750386147166919769549276120247644718757868375588585097972793902767809939528845022634437237216609939334802216162929519374237674717528035612953660624884765277211435854361948486062628434875517321925999570221406868845937761049087613372340923364420008088660251466759492920541366621972505693892587372445681602612908476255688028854707401537288653920037401355252185082545207739296716689547964880053634980002474056346667266229743770798257259585599953125959896412296169076443626815379819626796185514605928534793568977664126504609489501188536972570453027120196321990527842175963609524613917636174116235662028369355425773993239726653793387838499206616890638199427501508156730712129981107067306977045009519548835153177795146853253267425916265377073467480191324454834987867845381716095743137919800669167889877253672234250791612491130885483828594478650229334927630098641338856876998374780523310163929197166979027502415875409186625496454693654659000142123701955005074924050170194996079884493508762566306431448874054157277840091434777324018739919409996341047019230334385023811363018513989045376200621574573494741569460091075017498556744439915579661203861444100875283892145652676565257940010620233391398001979959396408725814694771078630734758922402036397788136179391585649170722189851154619681239266060345992957992537990730130542481603969986810026792345755865331008996706277683923078283198233319420075338872627166736668885986859088602565565744237006712103141263821178330432317072429361377580505468535482473589071822791231731517803969615106498916539390908951259284386283508301538990820841676302180016792804117755023965775265127617400329511519082025342241413901856769425650078173272896388856079335531739223729458561040718448907122263721254391239954301796606098954834361331138009991040353454431019636991555584887824100182316357477475283236525457978559987872311735137943485451015488072614813611678790046702776452467198544807516250330399382375381036859994778679515871079459922267259375128593702750650351336274608651644173935073647795927431491608243664977223251999669608643757172572287344281260788472819924364693521779714274503959212576947445125183535934093368342009904388050843232453274914651103899531835467481614000328308735950362216279093451096929562014785708291962022617321135253909081190565696549120847063318664865266222794175539162609081030444120867356804558816328010646986469533901993610609016343714845974590054822320021257540725281097782418384400942047630891610759300437244997698297265957832817348143897180765000695718434797644037632418295039456529224445978036408086547615962840591803600820583939895571460151006395471769715224389062637709608578331716524022587402093684519166953207690797965847545093647454653448361562297455705956757282158724440583327215449594356521390335713715756408121478098350425294803728914663336879564719239899804635528777616097139307552757197667165135493673045608115946300529887316922858274783684641126041148751612287594524683644609172691555972275902089228969870963716785636988965296085376822379550226445336323001788642392077465150874775358182453018378147788355391729222673039868655479948363168784952322760762071501148810334128182127780701435760605132686948685234669940994143458991248237065685061071992961803772329098778368412821558909844610795189034920530599930432467971071924112702184702665132324656988596349590601764001421573828325703006183111627061818906892041870314053848779032400167322355077811115497479290518275777783865745700593207023912609607598485686395047525046897576821591128306901256914261731904669545965448895231033280371717654309174588920434649206782080152922499044520441228696461266068979691271743395797499338212525254472896647113050201262330780936931830197698679172097551940088454294928156535227159440024119101794523831821674709028235410193107530131448037317274601213007081742155079256079868041542429143437912868291463268534946948173116009285803178589476585983910320176936987735916421183406080285125062390510320823687786646825116357075679083133497567443749493397436649548295906513877361951518062775655926892625495715460477710171148156253799507268182074463116990107033653514355011905715679234061429991349860916119167688056249700166668122956713621237615257939713146584014471512532642499752828434317468318445344300612341471302426538041560567920745560269764638124307317577567085353089410505296476957435250540316052917451451490534343920919248277964319510642215052364880452669069925650932146314259775250924955897449352761668406777021871902593106399737238032568218330931362703192784943434989182818620833142231728026826317423633996768467550449151258442452290344663031963947317776060440984547207062923815412593504903341889775810847073135003231306609638096167778433630479709903346850822413005709716329249841007964254200069855181313811277594475483275064017560930180786735667698657759015671203835819960054507266555544413537825628919162882039120325908536273093937025230722378210312309811911741356140728011224069286236055596171888004176478427131912217701746019176599001602656201894774769784686058923221981730847458821458084259186081367591417565911141916776275176090770076254902283000368582574929339599953885241874928258616573338718993182788112984430167812803711571131082565899862735445691927390387849806767378633579569138126099106147906551589286752186946242797436204152799976008976370081865815091953497452375858995878795629865016845636428417294675310758613463797032426143555062175407949111715523600512166991030290223050492188104747817607912937495834621608047765593473268661433300165840110466840522071203408357365012158288425474460133956597326361718078160884484957505782690162523534390867764758474197291689579913675963137010404870160570544604787420690096631327639705837542285430400450265698106670700633357073253781332845952166778665398960679789437963049618406854616493016171972476905894289950734131189961664314169676250282335883215970666938733667757049043130480458849209614776491313839773584090537110922766144123633408877347558701630500922966292595209521920913119422680639661568661330899386176903268400470526059218762150288495416251221415750710162235329304695850420757628483351240859734111743176079545629100194800992452623357801552712005357759972294461908091848363382684607945766296516952473296109044985126630057699858706374507589276944236767928227789505165639127700695513904303647511866738321590196910096794555201324863354982934095305810109617981457193386725901727379161124995449732387512199733472065956811097256258443222350957291882652677648530854361216128267765411908208751646986351800120182447823554880771581272865419060005443088439226832529324262890147118677447157760363609377543986633127503770849684640234291337512698615925725086081030692910952918852163564348904334827808785533487161664631074351138597086044490654442171227985003476465973347970704740298529053505209067803602337561179992391450732320753962437738576550557361913155198218686199381640536860951972876679186290367246977961342736367139883289214362013723924157602784044431476043219536812655735471107194192152420756125476636821790340296064659208797992906368616977445538766112356242581353769425422972884769244137187552766233799979521250921848487409205116750526845551310726880393220478011781042515069033327800836376467493823547875855859514173994807798424815143878899618754134742388194110023132510036783989226214498158496466296950872380931445905204730466088944173075373157392890517527812437474321568200813337625875641864428295398700891658139678935402517888480986541795923533180086708251503828794468811127809349758471071911432495805237490894602356871008299581502821336849504228218363277645749617410062106544979153633503452773351755058182926463146601565993299597620439594135874718948477144499426993688559959269070021015071372166571241262679866132080191063456643802581070708188672170498211398069495369873953698030606065858955815963661182308652016976333156229388681752935382068828952217743295902491574971176236900318398737465461595813492680585735640639280280621439764428491156318544430689215479892300927307098017323064206939045439779747451253500033684847320869955684082905840993621266498799290610716878933668028447187247980524052791871302766110287758503950162801581101884867350449839427847846086157256021251537845906871720905856884873162847893501728517767741505425537534538533883319542506734783719320128057318877652592367973586210554602460818631200545498490061753979686629062973631460372434469078243712271865476414617202933012890250048025375472055143438315687500076049444895119696282641802250994557552338483429714682669229226076605150862801081118091777865361096897878351826780295053822769141375113361896950000529439331846100065093805306091600599734858700782738779469576774121762620610316338120306193818905643970323919977138380228483907619195731029278379392846055893561909834537310891030759114249197995362243006698794519767535307112995199267068134540596480603749438794506231956673544723139990075491904349767548329017229004022153062222350111195613216442833456279362299411536420569667079823573049301528370551856393349768920638096024174935826801435054572732996445441252768570539617262761868095746730559009272098891109574612259601091870879722374835183243417621457492649748421092041382976824304720352947735140405701386328278909800308770227262278830977566887102640158438101073929443158272206723730515112351673491538067395883251850248127316123133688839692964936448446712354668910860711171728145284689527284248505997793028976426377675749604769994027557975227884897920971486879899911384770654778532896814725319482220229226728924675513486090485157410487316182803036316273217856970997158908670258720069378495305316913877506212752684438497324932180419722661012018399493381066590404504474662699969773140377260604198339883295662304064490513164060062411637233097735831960194694850276143072785956795756377034448911259519528913641970875122393488895178956185752961211076787143954099288580342838552686863640505525232183446900868464281114404580614435386068197043724639118562251896451279704804541018373501844625379891612786687991912327679808741643286476413326478389085569435619188588884285975993574328091502485212744257631962228833881238542212042457409993114936951781725151586055127907940217085785374747809247078654977264099315636864417313005229251093055516164728897834745140410626738548958582190755911187131737328686266108547142139568543408544448782585870022150914330385478121013316070670392892297405617231901798028952517643336233487862827296449021309374412045566069626127086475704910719624441401634177795223210219717233606073497103156275346596184011639338720560851058711859395862836835579068536657494766770642215662294434335376451918982391921571494660923691986051240270319413621942394568651487718443083058525822796942109686877682592649277744955621694269126512376238080708024776245352855096031987866742824573682385390846280038092463902658422914210505802874199875049950027278105774990523472948904912027260548585391743005421974852505781419063835025736973314383931652436448423235048996014836105824814990204373683495155874860408888634588717425079552346153017070239060494276145322000405203054743468992876151961487599551102061868758482233779164304902235516264071632616580789171731560333227987366752036584077899237634690356429794272904481722079598958300901123443318403352011151180715492393218603876488456220866514096107984885990869122795019362298021050900982433265690308970937532677720066003725909561707803261728119199562454264333467160047154239106203856763305485673164993399903191214112027682825324383320427318244584865465210665622382899289982202142350007374991993010425800034964632828634757735274366446508883506050585118297227749095792097352750841508890190104968313621892206403201636966304120310103223989527137157694927033562177805222860999689369594541397277576509166761435196012865994592807876639943687652533856872126078006316676829563918627980044136641802314252065431803639715772301067147426886546117616368622314571335376134067889108537309021510223696304444943127552994712333257369476533130036196612420940537184129335639749098591288542063451677025566804268227155824087630576499847123008868926190416859006044381996810739632624890418392924925846029855269894719103098156502625214744498160725413611167597744257154249298276400119500593987771966338551866397356799675679743939922256471133907358784736238265340649482052212125751226799384825041394227010303309252319408754715456935815362320218295178319710125834101899206565062368207306264891768466045873633030144498297489899717327762412628214307139174400365986770539662254192874151515549049534099730887348136980245719121274662106161510785887060754536637654598411205384107757265356176934014881445257972501527933796465611171187894357527196201626422480356051439172565740006283865194995980877587897577807161438068483133775893803410289253196377982393827935247702354323710999951668151679908481474939501433350871098860963540166350433324963766672782144419753669462198475432728771568634287465215207631033191495919789581678999269423702620683488422992880641973088562443540962740361313473083887342467929742243859319400330674917557724068939851295560520693214203316242957663733493107370154089749085568014312750874396926953768087271342328835472741702074926300300883944250003025326629387798761458004672814589303830727551771408568360494633764868735610795456519340093043480352707500469685006959461447424762734137482979883034308483448482243407534476327423367304559458602025400301625938690997161852396893759872973561761768797361232632072929030313472158223655917784189975924620756732674268052009668461185818769893387622769145749775997040361792085345158287076942594696979799423719903583666686585267275488447550535381716136367376421767245090306457914827622651298285216830945525543755422170258157562785741722732480034776744024640731330835909009357321762980360623779434047442340020325991823999575750951408203635486770524849364795326389406354742578930687043246805366022336145186576080625663933281248684455410174493165638862812973395560119002524936206326601698596528999281061067671856640198160975191822719713617145823696598816754884243410987902710367321597450337613534873026228179867628077100412748246750598777077997475763050786542886282436483894599324205393226093356845868812262033738051441993010235995173943522745150324627315025785718592116031000870904765921568467344073277703388620302193888185719022928698192267389568554506944265875232713215669789542201496985780554404079028812746058744577140672302113874538198525707204395877756090283413105095381600962589004320236702261760337960223521354567288837669333323245228072699695186531747497922106097684854087486584480127240889637530145965175185407911573502799859775333262395054714116435326212577368268731030608599979523463428364540121587458469140718872979467065438019449589298960729119262639566407996653100536501455083310592977870001158602849810901704146451045353098927500319070002820260201891247843426699875689085952588476542269746250520534532029831741808166883904363429709957794315755412517445957695838870003921371262818730137544777609739037238459037116582028332272043270080953632810813084258443190476562779506659200711176283675078520956386077873969273538357060535795753683854065157379546477969289901491028605654513948666739790349747145655421040893670988467108787488128817618678257499970492221960154702132778497967727640660857149239751185468594245124940830847698000034167459859904816426626681537279508936081493079424715860667929016370489946076509619747271214772785861813901652790829156962642004883285559176790959488345568083287928101204672196232225481351268879397090513296867150356481549635570730009667425573784417879543722476852011692260385834820482254163679682028854379627743783805943271519340183221331847279397368286709711538928489037046437970954805672623366346632058551265680053615318977032569421716633098985800967254139894267620435422740136941158975478878388043548432900687313389014570258768304401845688404876678440895628732061195910057255593552932758917070040912474002872702169613602162167442629814345024708481598285814693890309088532620265865387902096084283152665430759905024312807080754321292791659884849154065715521544239238752290610919000020764089467441100579039524266974569742223173480651300292482178601235586538548210254249780198550865834103028108629686911165059371387977063468941749180467551286499472265768386390660128420136945074141872849105244456851252418999380785790314201159240018311083697640678679102828149889203090635986375572152831371422546163363640770788957480337975693571898118562075764165995314047522015719790173043699646147782989205159823049376755731643431112017798189553960992683738925140752520604255909395491431008051931800562602030204672596778532248553612300512849886056259254697802008878729045813590609608353557105714833383966865233329059128007866556831438492915129967091846116704421854069906345917176974194431105864168385983560751638273412791216174571525644650972224516068292839638683543959043370557233331958757210727235850758280327911823730670350149522340053811006115567325854915965168164579415775758948818628414602192186808490940135696061084303817298187218469709113863051536519704328374022084671617791065504072693823737915791726969992881122220977010179478265819937313775036889858511599592559956428171078243424396205856850786508219154241362345936251471505994190142351763403310460310498590826636653301988044974605638129628521547325537641433586582469410556706908492484407507450512534345820903439786982055474498772687661449346810177202209219228682700676455290874697398716695745943662680186562561954682471885969383825072937248097947482431680212753088472802673833563820720820788199702507978475566845834796789730543876228039849149249452353871583773278644686161939760690754327011777157059670513815255991038542648174744088988309882739533117228645393437830885406206113320485343519362136198293887187598702717759846836814049751292465993383872613042628692089320698699931648493161039059676172328563737179025548983378831870134309229117247735301247647228652092223740751930156992096117611162036198039421871411211005909661604195452765215568572443098722362187210591647523544595018834617460173711686067609948318630588176901036780623133402915425270530700350985833987315127051019188950987183694294623155519317460995394536940386666194109706561671601548443745293570252444188733380380333089559579035328032992636501039229486203787455488492256790804986113935774715566138251238950239721163835030056979815576940239426476700349999282031738741731151659911390385860249777094637984092452632470339235024957605272662489985764999710777301160823684732172492119115232079449329812953177831506881022748977662766190878318560778865017115088744621054239587201599780198034488338279562577321378554446246792091275630290420586946832280789361572644602597455072859324327478462110042134220055963905758634670766983252090949226325785097317774378365673273704177994838213311132282722888903596777014295427744582336576705151637060585478528054762106335571577548874472904678347034835279162886468288524709222196608670239678079064383369894827933007526678003135908656277239903267025557518629319364403440022420964539126975123826735521570849068027243834162526060483997682568697059119992996640796340823556083639869101297561225200662460097228783392718732026661694512194655652777118672230282814783047179910412485539176920706476586514382141852726685314427617029169603011841114251505483403915073644981019425375079972040678481406045460186093391090248310304003844419573767203967423083111262620591689902671489743021137031727735126157633486420478751318857431900373239129532144880146868853367519006125530807316889182320880456406419639084678748215933885213354691422852001407960828550273800528303713858088287579208610659804331057880130178743885726627382850935097621117930732222697347957585026357785239658790050726394759570057433908059180019908904497419758723559650578972875600470058771918212991580827112105220479011192037445396044025852441967503387006946646821107327796451792951964072431185308573231239074446788050838862263709151776987250475147371161759139902471199315111684054775847683444200758618713898613179383529862092777574662300356900468116943120950619706877318036905848243891453498407842553738732281946274309934516226396907174175276250405480511161481326862465209469289347929748862488099860354700245150568957960434965691755941848521827033871176267785700660915795538575216421913755293351663031638725180292798525712580921435083884134358619007300148865458218135698527802940022746597213216810288762844594540337174534586522490007992819015522587835331441308115523674415529729681410642370396418512614249804399552061996834666872946020880087471215933277436880392986256357755842416401192052370469237906989216509693743015610555932298588318856816918874231029881968901822715119946853886806125063519238607667840644420046894650318837190759701669208390860384904295373539389615768037152546524370310112425833181694372137309422497537834209870833865269497799154178701896893079384411526012533705466838078116226881892426734999724382972110593626167322312849133215862236186051393940016034784672421656866238621658509769430089556945968369441313918191852993927057440830237445987295143922759962612493761286769180046168996016564856806388601066996755364114589507919963587859000838729156681671766419260164479996217841851945083343882819210341307197953072875570446205730445489497597109994926724132693177017474315029767974831859448906239912900869635205645425575125949289507096574866125214916271156213673162279935922567097294460806451672857265059325881669413289022143023544239721401589560302444583252466292301938450758953515084539476485156774989890438909713491117268711106485108717666690783771111553801186275751021453173305354145555738347282513296452169069438890279428236293758787894543113594156825583528834475468729624486920382950903868973311874697146745887358009705948868955550853186210331449550789398575117369471515309655347652408037193683225623532377664354157081941078333046464372606523634683753462579344285544454236171256243653526413271710364543948400644232382376375439258690315515114788048691849100527017982579201673926696476364873720259105266701813016288023365296949872632747121686536157431407474467084542804834115644651333116189512486672622419047386912086749306637988963713111132941685949736299597279662044984305500328264115358759510557131855319244377626214914671881717765733034750292180596607032531479324802688613354929603771211992434854005957318801687210592643411005513800764950907733054558439965394148041950306414360380151519090439832993537587267315035579473055968274238772000681643206610517617036887729158296655925213287565164555937650857784290832682720069849372937952216415882048452229614946976776845081989405513575394444549867172442466291103292588567731172180473269928824775374386587413931513622974815274608315794444908521409358878501219118771779802989674205966014776642939649761180845907529005127658696672878050548492859511486930322500815333349750848943778994652242661280054166578519985432361023885822774579270892157883842020770051007496270532220088884500878881714597489981129409916510692399230323550408295121847458716221801661480866022549289824607201598700583858358344989290320972615362916272698427945948529851892476482800323981455683335456647158730888414754420889264550360034345255002909481911100821460882965747286744541290512080556967795076762814293075478877886375827156826405967377839272641655410883827587639140241516088078177072087784714780972969207298103344120640803559032106404857435608098351509922521820539157795347414302057510882932298605550395296365969834217517842321946155161801312761367095618421937674549375020132815870442489375453515613625381133517805134870037266479030728742457924986709832151066094646544906349184466958572811446958009115886903678062514724918532066735328956659407471608719648452179324112867031677929561968780425520571122238545036295585917076098394192895368919231421854687715642457017034433093210293891290204557990456625328457351559589089222417656491418536476472851808089611058569155618917742021446113352417056682479118740562148747119594204940917214225444156018069882389892167604688711296886812010334825526921018103203270577740141579207244030238936453666493760944312550189660472049668019182525709955068833718390359908561529667879176055887262968730709386905639861170601097276117257547274481771499656304410531355121601365303330154853028201274776740311561969890305309413617474091544247456961954974263635363947227584578222228763065810354575556469793961530897740513404414781163520444083714758190286348738787242959765416061785959395145575996418306836725961318108154336436234013306043411542089415242102832923235655471172194123891329602286979191516042968343200627629829934083110289187116749063390423922117319653396867257941118911380478242674698536521204833410548922224274317172078376255091564820973001795731189514072777662077666174011326576615635771538209017230614087896293067725155037353876002545724045493450799469704224143191594931522483409351631759569629540859840954541989865018340039399496360197184230417097207023910611259368730383794898099793883735664817988286286088938267705808956401064139412667565444175303389162977778024670890662521069366360399138080260921020842974855363323084727270611931019623220199617530411423093359028742297948043732320630314849325107105115528490188669728896468942670009906104176394370425906356760039224125023450568780096099848152806293239255078553299667260206830373474069706988368984715332495470872165650575915238366227697269390345273433634830619908278765720407385087049783525626965381861806635653004264171016501273968573047838669807691241149646952203221794989539461705073125553901854042699657302120972144150641112937293843737199677468080686744480824112091414756403195993224964302736675010663925561534625404173430066628931705367141871840582040454516885419604399150259226869901646375342274075353261901097777635420459260177640481924840641255105638561246189018979121511122386011065416523287708012123175016332093325576219466562027214244754391568654150806541081376568924396706500692790883300830888210267029398097568873869077781609036186589263822437702198088000001944463016841928625717911518258226847435767593420311394708752506732331108400406820628608834435972410021674210475691911352211706764220587564061533493967570311185043366878723168265983154261939556305471240903431998970057229165173588240100338970573715603354896933975947077214276837820184643509971540732493739421486986343141445319034730942323155467175840584506722552528056806742928122741840529762395364300853357745612286342226785391571833332088225880095806397090915915279691577771762848637199919480913528672313498879953214226156700190169575055527288158346035691413632506140336245545607415970150852897116279031451896664827556758077945936115776308253652221732350838013469666104667545127241880023389846318692984809579759518665804653400713625902172388269908947667749263452459056552557157406503484819088818407040016911295057678403667175439813074292896907888497854646270716669690559647521117774872870548805766123927004335153061145956096112237534406425243274039475255510608246340119303470466770814349714609285332958268591974456797562555629065775007729985085760791113798092440112708070710260302335922524759263179993507019253017616351008598336046122916311308470579110365603839087614623597013537626987070047966194038510606427106906461823779350253583556662910848637026222230854378470420549942598145820516015940692574706785644960416480772362135773711110733350652523420105240555316879117679242316267769096448271875618916992774954576510783457449599925656386080706603213612102310649505093035747921466817144579599307850534099535728593084851880835806207468590500807906044835857036446386329726071822212273385025668373622677700492998597747197548050228835452950230150198313719487386253496508242670779682506115012028647645125438921799195061395099458342617581456622794421206113168062751140513695850438114414564407949583875377500539659667797638945327234858609647641744298453531200071836653741789551294446506466292426423508670209430956471677125415576322399265204017744303717813606737462609293820913494738045947068290736115980817005722771886364108262300096569519471369575173391001878700141912464718241576586978449702727284319560641193544202388217158666088718213390353305416474200461876400764075875488425113695715340551970915156809992683559218733656933028698082945933335892814433008956483823941883065530108754869689489115148277339203538884692408842705130090674061414878124637371530456425293849552968287520761456796012670163744361586337134871281254947268259052294518580356726506405286234058411723158187348446358205203760000071698210841189658892964716224377827921780929987535850243619274862291296429609410339086003229010441830911625114699617333771745606453762657318229736899170149380798270795188300456094223275062354436849687988464860394081050406028798550042979138791267905204947043208707883049524101134643708265724387144547767083729370036268328543807502208521701193069195986527528602720479211883864800722004709543350424451295469179301659359866981130746062846037120738852411162031463915799569510084122132080381653458955334720521084322354758300295891493696942515613634585297222543698391085466742127491367241213627001506903086638517464442650847028639268184393128936245227624306757904580269345645769901937118004916362419019741260550120727293297849922951249782943605087913948663024588556397425211534935609755725211058741829349566746867643782253308639124006613684017940625799758179157562197740782966515318083024690662073942819519230378523167065764759796486319692303329375909628981196486543251452098858926041549151684880606870852094496086193847295729507256097232222795457104655358989603549778901979428112375155350451047850121418009906388118540001433870225233496744889769375011939695996324865773461971716561752913757449243081279102093039989908436222925859708737459862378482080131142394443879397267394649488125186622197679573228206678405927378657549633252768455596501246044864071562819936031821542727003308689183212534141618091548407865398454176099675759965980040173971253944883698030957410019119853402765001774410768076437897076422490126886422819700027998378849371753703833570322140569602874673196168947089593860256769835521063609463101267067485154427511978291170971908850953806734810317685350180215283956653668701700281909646087336451614687770613994944874462613321547957203576822992328084795349991797507081026868302871334510129815978720756503108349936265836286320119385414340412835642539290540506546342326235615361914035600234477742271148545241889823683985203330277789984684266977805274441409118478027378422988560633770057645145116693049370462166443218221900532827540084404288131189164361497428438273414561591011572284579196823357228775403296272142956870468968956159315996190574443917215775041996817279569626693585495682602750289234328823208543431282064014034630370226019171068890802252543698566298718350988852364936259943659459956883294107734887801735503553001401731344874547575603948105706525245921339613318784649157346564828495820788005440277928127263978663799973073200235895393491339297284130925874839826413621540976652688055895381152785231255911649404720527736888313057428120896646003308999286538384856824346302913141208744233040799256124276513834528206150140388573719953382993695419142428684451567646779467337197105909423798593830427801039426652655614922948971656313034259934657015989668999449545731305481208569920622758760552893455394104249983587812215754777373694982661968637796225941176089133976589644014679413811238074501328742100404818673261506197688547270908370389156375855142561614193747092730131960697017117509968291743500098788444932106457896683346045832563763432515152844837338885371306769783298613905877304919684800967782849984597968632988411270387844927236160433173791976765406711238505134622383094825941400410579715645773354127139602324799269984594549448416757929324921664467252665549309050951365155613768378624888462630072934459529029780824398999674341145516015612056422532790123478084439023064289231307757786714249297450995510671295504658509562578159680692065700916851626876966134969391934496090747547593579515555656661973791522809181702748507194582544607540814899783565420534287846815494079527743595698854549677041214739983923845455530443020902604524325895429208400707419427662566541773732701114515980952330960371116807205691547320044153284073020614282889135308558529466550078189112053294686868079080286750829428618681739842151081584541428450514897152293986165593168968065876348099046129953505013609406006823342650337579896610847514390704213868381380156438945634868849583485741067950161368530426129802454319983080369015055873290867871049814874955888047408725397173794693689859743521166618309866021333232678183280021721817228249605881239494838416018434895632486521574146486037636208482231098493628525799266072661075085321959707686369662161714767477258054609909990249074697870913770781032412374098477336500400435117358734865595645401358125089964436766983505410332669813593495013552565027121030853819740281614121138557604131015584418395253241904962264583568721736809538795053093303782380179897418017502494879001893702649393714015826240955736769508463118457121864646604025064377286594055741920362101032322366761420431125046316497378433920468295537956583549530525920305698884947272024961563012045130422399429166598801797356227104923498829968092199317686499551239492499494354401049678357762057813006960168295610200456134117058054767458382539604890356290822661472402892674024313833085050783530519533397832774949807641650616747986348094758184167530017832100592178902660956515514636089052876870181020724123050461418104331435685481167748377842385768044206942395817504536033655594360133414425471876171119667496949568144858397927244576296430577306933267601392422562171661765841612836774960682027233833153759571136821243858669389535485157842859450675276384803968781538047229277680794545969959319620955100041498212503115256513759393124674545627141821247562263870366819572115561721890724536947683143952609018052362658392564608785499312338757912347709572089405262053913390996989149934317737430750510420402684293193482942706491413050029452050739803294823815628274001673734731823070153846093448010130969308504446004207228686161751071986954191719737861587627118881857995521602899211413193378890923521619607451791138099254881719722001696168379808469678976305723519987106822170138220439770974300428641572809971374823028658062158094300639754537870642800067944352698721977176615587929265910846495148056071160036413196368351388553503782058840902541566555221788878092432250497805937495918065029901299804146222974955660912921614677839659744746723169491172586410789424897483989589819950517948189687737589760889070391507640450249490658378639743041509666680790863508160947498293954722213371672507755107272916205277537577722443627728745851842858381303994827765113097115336897802959641675710398693446364847237952038646146997732776950563117198005840427694809362125757333695937964410790308638194268796645739013664143720529000996778027333152860654963956230632134300634259867029384044943261464970374774590371198536192573699587788774883767387463749440984688421128273192661706043767719659398723312334827116486175608299771006714863150952157056446805212948758225079628686751918793855072046447531150305484726907688572522283950969067030614523309149477830730799974003084116235705148335203169935651786973808455252945046649579554981660423096002623890233443476148444839553899659247361159640030416924629946457063889239507795515751467974164436562226312534385329989987661595438185221656216582050703720738760045395814253828891300010048200602363327618972143370776754598465435954180199747991323985650693283529024584049626678581635641714630255737701077638960856162925305210948986367649061467219168158218184018141871979849184966051616879850044582526888680640582405938453389651623984199309057041170059903769969680311958239439993509195981913176956706226468845281081862605117652096398007500889087503259609099168569484487228008753656669507008905703670960327153602809007652455851986435724574179248126328189762739694998131171215476778717000988285450758276759952398325416995898780601786737611953314789454735441849984871737903390202158069175097622974694828583883108138890869339985303097042951302274045819866698294291525477947597331049960604916940241309559983114102545358593812727704347297227514381211156218931483575470843957287797367501505434542646679327030332374365165661745041887794015565499626323101450840374514629726099685865469207005336415263898486503705847505251881198423161831916736680193161092320853206232387424035860352829008411098595281766538400580026107976176018786239400884796398076056677999738263355708443502721439052707758895033072386776404408275638337131610511555513563631555209289036430218253255546077763554087939611655291667837716955440494619743773542264622197707313385758895250860213515236985661200105055828393305164611821843937406367782855572612104667788000565739455019802145128460415663253386882163870315722601799285028480201918215858230725712556426880532360288180366750457870932845823985362859536881984088076182359175287144610945154402900877981000159183414900338017852301185077071170948947382906063857861191042070809043089542161660613671677122102494461284494062077235622975218384385374437084159117386785814323853568803037148883069672327635578456478464004479101018561656672838479245942209035395081800661412743895013121531792074976974623875995029816211677947452300616509963387648532550101735378763452506359164079229392468878642920993693985363265188792849213644170208994409757252060819478574228086087048147606325566800466828086586620768963048881208758265793479791698029705864331829755583442921237637814924468000431924855058904174736315815281630409835400678510960287153716248693091879788955381782236181749776425189264235389568117081579330355324712364863526325940898778347548366317340671645153559307378876744938378824810705320024998075389434072808339908260713982292030204011912485247471910469832156165079386969564314749976355149855909972238565662345616817055218755709792574447512256025768761479337547316507873479467384778325754525161654207480550974644843881042566923123438686131726167101652592973737778368617018597686974639821453393163140690433746769119789875470817319413683942141519219484271406625241912595609067694960508819160105262843715798112704762122264528657962370885918019814649664862933454502839829265076584788269489904766761964933987443620677049846398099060626712789180164180045742893809415897811827639240093239889092132723624519630509190571743335175651550926432392434677520166569918756596464767820460102070200057446073826874469174135900218660389290461720159151958663911064871656581174592553955362465265184764952315948311284930934599973483851807799673315556882672122604890015859943955423421129849430294783466026044474575073865709414555044056447422822964304801395373851797670981919542776436895579677488468919717631036983426186337512040051150637689339624382925931106305092018110712736846011576638774360785514923653052678920582431217832237811203884143109600129821428079207212848525930301867278455862115282178065508874600275888830431155788339696445993223225520089419002514970271886088508919510001514391829479802088183142383614769337989976936158078754979010047298230573011826699861890367439455472892096753051957741341812523428721770768456788853058841812737324176291000029231030162236665112086621400483639373858462866414230493162819964164546837715674108971933284367909463440666656073101477987111026866092250178273987315664588886453829354040134634361140742612264906480411712918653733729326018726554639887366490825491289677721130339808581716023286958273983817968179577747923876118892720479141456700225148920556681844379320280442732199934035324678891582675152473703728902897542635609541287321230550282327584761711429182569154879954126813383424207656670227315172408164606370317266635144140504480234253706860239010181113038492347787834040675256519676416938465598565470511538195287139569897772005786466679533301269782396917431579529660382526977118622998926283300107596735061057845534964696167688723382290394475370570592015020225797772446570651206061255830540016751506572037420184835338054817845926926986499310283180957830339423415632804585256758018928823040488381725398019930777581027470482087417962007309214074174586251205314566652513105497937139790080176047679227026586651455205421572172741214511670343876878322998462611811353915421391101398305557215720524981036430658267777183732037549182019235645713689222763084390212840099789113303264932093977049481098044147824740071690034159494971091938637889118846121759074616091801947344814836126391442816822494784787917901183464902459934684726887951653828182444271117353461035978205137115572363744576247891910748047980943436454548418000852530813603449062712790395257309365525899339657852716419302712769589120879384260750026641126971845835824909515375623609438113946731625927331135227971608077495560003249351209743690314422949326535373613435352764510111469236200868517574950114098775078381963378515877281224093222860369983723854397541692728728767434117743968515228130206558626317488737269308745349642468875403191438809769425891166483174500022415015076851332656192228115677417153212266450858535348832019225835255604340270873970218280003856177245432578952276013708878480607267139521089495764872486430584038469552979649033528622270970452628315191187669911277244992517076309314259402780547990322726622789591919811744139628318283539554998277633424871175810520297081960266917674576097645260375921402715815955621571739377429146773009767649599655166065409167544606891593350453200296368872455995728589773311605199149889347360809586713390093151499802450041081862457390424177315400674780407387452418878981541393690533786806067096091749761420167347478653761742130039691280684579959643583834019821938272121849232372097797706937353752668288389543118096010007383929838702528642707393203448527073323797876283755727771466393265169612164578071350085216117726506746275188733850963668725158298624696258018984258607420486449459319096601031752642610637856219817630215835340572971506602267441337446097527516728836097655147898935531868100712327768204510672684668960106719780287744399656301486317481264719764495515645018450283246887948648850527429008891627273536271560356865659999213634497103439049134387971014880792786932442062295398569659600919935260469671867254953528004062788843115796893687606554416386182586106678940131930082374645756412397518443284510118457603793747019838150030144033920339532412261177443661001469241926906833657203038705935295245656209816570689640828959402781611864706243955667421743007534108017307301030997334862419415876201964525617510767588395840789603209019915894463997445023984527439849487682325721975487600812622656923219556400270331237567964907580006193518597917201794755619114311345694312085150045608922042230703209471758299885541803066086729038240092761953043007523054225591320654772962723703074017997690812655252136589056505722938916130566690978458613272050961992015174495149519048927824407598029612824222503881532422600195379410518909199305212387632929566675687194380972559226627536093040762540551628861309877544158273300016059294044662588880818520428219832553946187159076297343976299502031168603848026821817768741492688361984656280034763935482555765055842683810815940666024754410708118023498543490749918114676171687100493972913591885344102652587444674451801458282357718734055130207265991997165702184951348582495896326869698468186824627328545236556762338482323421393896001825182234079405098106314434971885447114067869935818851977731676893298643210261077267517968217319313185539934125581901993506949976908084827694507122904212141775239023702299497735601238088367444412007273193262283919476346373700285796714975971843428459102208960125969941670755992853060027948439857583570003285537529364458403596244008433209571961850290488608020141024195703995905136542077958411283531098314346122409309692659193438702820632536708862572975371716999780569124641292927001369518272349789711884125790809029871696176602032130130834953256371194345665160706564236231447507269079081465819851223855680578382773292332368875164423223309596830814219194065004040682586165094262504861655975291107007820834546854322842066377605394494099978980485619044659828390682789650980698132983491695251546589616582359724162624912530373114577995256169630311316163564504105670016162277844598296757558555052441033657310019798542086874064850181623076606554826799083857368570522481306592400240316199549607174617160218313417585081296534606999412763744294512266501473151286974737226404094287781567524665894979170595685799121280305101648510092488768088418267278699230824689323491506207794966248595959845620890608573882404736291662073579326057920245380042292998169210231860652624937419544803454700826243674228835799713095718205990228476008037813285617431778700174172237094978047669167642393501556652522144079485135677256385535781962257973362013381414714925207838468349524272808397477364323358943276759069016945307000957788806523508933982022422805182956286273926348601697610986406660834717531791179706143913930740081386644199551900121695489409046165442851460078528857449409289266812872229403338704256239617162909195070741486259169393792996455732625167608172886364492326121459687881283866297455185636214625845462738493533847634838434786085113033427614333022759092830503232522546116192465023152194463386026174917663129336054960647248216200057583588055841666505316741461300134807755736618492238380735753133799624262809932779532937708149279844589845506566751051052699509542030851595765032232936111826368911291960255914130853536754722239274796171185771266324569155316417526379636271869856497281748999964042574078225244518767942860543656772554728042191592232077470268771713449380567368664051749807471149854848638702566997238112131308072992984187010077425817563243252297543443097753488884188242850406757181743428623013028219155134003098460815131654348146881711523476323890419628976469094670783535684616127951121559532991233861174248244644618927653193571740914982106539518676109637094475508766570253625160425495648047133514297291380602911211142536004664121782912856376862641032203071499866437797152076669205701057323606564444515830594581281311232514603536190612488840074843167658847143102725142845504590912514734964690417206736221422314417137550370566064894369794358774331001424297456459278578389891448256206900844672738678143792743704752577087359864840694465608772558526233970010988169864276716581693221967426625986077790521678078226913731045221512448203330403177347827487381541553614123771107025158433781863655694736551849095180342694951699422496826065439125629840962266969442913811182318276642278170205563961948599590770273563043108474034737582494083767986327983426874736207573731311116875630471565026449571310776990866559914018001341771841198280127206186084873160344237859951225301367859383074705209108686477937617420008494487955376469082778487727145813679671911670384251477531002738359136706465671971558850200456233889754991058039466148260551655607869649198744893238006012249356879953654192651815874129040110521966054721594895002971714769006506924307826648945475884433626043192120082605846614708201337253234546898898114946887649484936154235317135313933471840699327816984811221000390621308259021782626548874378765148217800989628163362586170342394507481372077492294595789371916781617587937866461450368848690439777760860569997605139015289803845002737488960244697505476746430812788797333235461599127259574608254858393417251286586210109548410146884016561818102856231986300502923908551206107819370376801649505984944570003701107191496844027401279612865988351935094950223295761466532146613030658604920677299542417547773163779492612703843857340181294656667798070729162213328195212382251324117722771027787256711935707624188883387120993505495106507915029667038569559980343109544757322168668194376055969919119480751771927481751195278759763974527452186048187645632079274560472873224634378359083924127492605483057291378682823680799236304771101729145582218820082309969189569302069657613371530048260623824325529716805473780036301042464637956094612316903460598584561880715419541891159038499570843023775216880466178248497079571634373509639194215645637818474904613377376228735844339315162419836316687897907012569782798553679905568805059662484938992846126197763590886242170440356142493458573843624635624529706309071665273251815094655381950556932659500987968257927496621050424695420823486550489432011485162422009778391635047928740667659831834546042063807929346003727272744434187825664499072004346324317632552246925310602261098615883695021012002700598508573679612889677725863665969745719818381700790465289322705726417895004856697348285675511221915451295078714471715527100090666190245981424828650639661668607707788723509445034165102049872221045111131572815418726463179545696963856775363354626343922679879480276928010779279381491034501108653056837091868072987227502211362155162252072592800733390941772434967978700077955265175075780533084188426552129313466138848738369196444862152998703740527585513984848494948656748799229158561943511227025162936266472375823615170143960207331509610627016983201998785376113389764647598279614951564631589890614724639905569665042642448219079411090518683219161450141382287863759786142028309302169055712312672039022832690035175734353849182420976861875678501398817258849144585449915749000738934273601566484482023927933098329217336709750087319515241108783213471705523983089640656435737633345982000526707620294718090669238836134562791958750306914201810037809202380266937652102744286010516522614772231344668049192897356655789211084383560597763457701739745054506954062444482083554316018568077350803219044105236312236208099808972633158054242335304688990342127382607047952338176851767976074209817300235503693793729940970414884932724268437352566656469492782186901012954118693507922280707154247014211412517764641016435922510101561750596781657500420473391026356168605687959625125303797886439715764828531599539076073246281982268985292737660828379210388107739551890883605043103660019325419123750644386410927049065573326839307197356158070245865298380817584122008287653677647778286061897304211827840663079835992775350004626905246256510700611508604197520868037335945299452225772823262621143215785072204353265892138375049811040436341303241780074648434219970030862949547317328073686185993946569358794401285677223681724939543529419405338001947046500716373417208810496875483493277370898001030057228834850646255002781006456134092568758362925193657154275994539145144409245338992238167590606242092487709961046950099495472933317368044432538055953609192347304423813706226366909984562817733343141397553221147340677187643409936864123521290362951191981196950557834544064613559774067204519117690522416933056694818602930690510632796272652687988579800012591807349816720933296086622888117153428443954784404167416401266088348964669063727069248598142742095154644664725404215315740429182625644105195987254123353422576119044203724476893107209271769300141107829782943477513960793509029130240597862878926890326148694873235219533990151911963421563635855440705415126285571860989981712676270593978483271376674135138720970110945436966578311313752798745218735692614626290129199724689351673297048372430231264885781928251270081972561819046180872033452711827455894578384389354326616950972341298719729291984885802548434437142110810260025664083077516634224957324950215885998132091391468294473219798020336092471983846093460297730958263590091069641398384724685882406406128850341978464711941631126836272548806664727416128172558079505756182341645361568286165795925370404090303281737596875325454740597904554714326014033627200539579732555966132936336977616367665840393882807980329211308312023895010982265105854332651059326489080313692122093756103891928774532892500097528796982904259738778496931614631250369465802537759381759329359741167312739731582027523900597260730197191543372990318413217917125680693206830574201172794432385213794890404156707375146658411918556401162345416157111582844613369739597032338632994960739832557322408572374499725418707295990953452160948480775932109154273794814757584672381753139994504142872256268249751266975017286093499922952361681062270359491418188125021870651243968293212526940855855760374833280391768903972773580875086889217124734180075063695677388846236250436547403142991787839862629259818257321149145351207947898511286175827540739301450991348383804019856132831876667279219092386353806695189987358874449723257260207023937600545387833013830193834067205718954284939245173883225034461247205713612364479960704632001401901206344994258848193921103384917985960408652021396181028406778732454961478520555404036273675330742897585279151729234807560349312732684819094379918973513637062158966943129974377809429044451221828813643079185354979106708825737570957317046383741700648107885613076304016232545538652967251172274047460462045399146511179641254280722035730941082112894145407253732488396808973828069888567190336432246308988434747860207420907957536576146896534959405750130576037186689213790848192606234848333923711004263743654038796879852930233358901770493366284788213382229393316949467600649448794063740067055477785152912798979478050528003416689914894542567392273524367819027505055544942786787985185941285256273775268036170634654962318481879696399338126283121977902779703837024773237140278308042258612678719039447066535348216167507090706504957578829187964969654170655687529678652312651046932034328238537022985647511599383100799098666029767277317338079442132303683255562665848109336363269833071571398001321009548417206927557456359221012702615593596430570521268131424410244859430367448441653123183869856419585049735822026745425535708646073477966134149568055815509737469108002542129787857400366158383403053884945118316197269959451360670637792841532946392649126816517023613393741024694752687602871258674771549955621842430615892748033959462214362822227956693546996779877671794382257920107535762621222203289134897483623847201455793465475902672306222481990590716531093569634264097071537283106956875379817123277975491677817275042963835143155087860559011065918364605853016778272741586196392797380840924291423476679411232032433822070104552232191906276135077295323428262194197647158614526178230575073200656269089526837808079404032603916967252037386445275833210867799311851886226269066610650699906243511005879892133433399218922994591023437055385326152178165970147114190063277502774453299319711326667881439011967450550863853103733986571739384174284011376871763418761817802536756029743179991963706627224388989587613329914410858348481540882184981714237284578076465977444912034090983451942757440874939431267535949497489974884222158858637529284522369216437095128231401276246338119157893695544443863500189332718561784809057095291062020905804099218467712856275492538072700636817736293919305816277211630765868608285626141446699537691637848240735731705009857629666033662233188854810653799327610999549092145565501852556811752233753521309673112103050734789179362780502025328128154455760203969524460663865519193411806337002490223989866015170397995167107284632854119421005086583526665126934465486744114505205095024112060182343118270819896904937258059916382448809148592789204600113315938670745391570176165581132537367257757778506302694572430102169045287488892307443446986046548670863681606353075352799243715807441805734908390872847774016136043763682590413960788750879497588031983489294993312002867674538586828886237430525988861231982940013170205612466809700363893568128663310308566939950300301734375911919692096469952354987203595646883058186690676083524034538443636823012513646157960040555885084232900762527542309790450022543640881997767529461505409645186409746378575798271667277256997342162284482960775075393560836151023387943933175017081633255189725391676245446725665314421487823969848574030131633467152159885132995969314143033165695151341744592349475524646455094311491700977947928716085830047216879381983880201404961881911345599651673903015922096512671088079572918520984446550332099550618733386552124788388437799920907728218673211010868150363009853082864875148249339261600968723772921424060008437519187817087884870488183123178779645377093350353491420039436989034443263062154521181755628241012728956205342471050878341092425598971560385696059498331591895027336346821484577664220781236380822277952482468014910439727555086617296297655283130741369480771680545142511247710397424726925178297406945779663818201493274754662001183067316348971171640950209174729737090914370027628560143383331048130404548016214384344700034201557140264590837630015486770180889228388860357821904905018755444115586420681018662790131406111401645578329552589554659602693234414850057127280072581450604635540868796584369773868833653595992967790801461228249633594314062761208468580746539693687985574309432503779626861680609112193581411687184532617563318232735416491936419786455370942795584375575813927195546761335640787772654584498156343429760093032403947223580837963274738356881853316397135745172129412503355985730785458604678936158324350212260897186905476824418765199980810591315108942439304773513417115122942085355195202842386796412337516494156061974635729229519297260459932983516589945104559033738940984421880247044711262771602719204776863391905790733045251208998956023447348859787601342721776536466484851359199694008451882669611015595837807435599135193209505372073940996017387937271625366499226853384413421135402252050324271753675685696462491384461017914645527423213027468708362039377621148171410606624599278283775538780417840851273088649942182713933128210015693303735167957553655978341204005469887386641129370106733877057572457588907784700384047304005109801600728139435559626931908476760323283010966254772078983255999904677618467345598126647750301938388112948646435151164182013247200786755056353526511789005485523980793023344588075329447502823571751040048519133840065225505917327844313104715123280620461428334595309096782692502833109097488129851337431753337884040316275720400626814791862504325093279738334426986319817340270894295904684578146474885363095105845919284002108727938354156074846921978110035336043452540038317346724831933988175734311524918089781828303141804349914626168697699204295336668227766441840464598743597027521591007677092889648991922372597996276183997118826034180746493753031874830160700344877781129558540881928709778176807161744071027006655726500993436973952394458603276778297721670979046665902183503359087292429737637537481793022590355898760780142820946877791183392250548562294718139406913375270128898663918637829680560181492722435691107664665810951323792878807778303598022292321736713377974656518227831207272928302844590771914585545333226180598962756054658879738265794349531216100762869885428293512593444894682294418960986445529693682387300960931473141601915104082062333720235393173473828208635277021540516123108495259993815864383538447365615711652708226342463909517641409625145476407013547000591523830408514220257479755913700798043567732505488405382173882861052238969561060361050858218739933298132095734689703431843264966267028844556988752256722101149727177894054371570329628384212834309888830947197981386430808347845802529569230684183065856879592700044374832822429029848221168159239818907074299008255453306673231393516427746765005669076938247125431959172178926003388991023964800384636075158443411859246386895203359308781294759007890544881946655901381885472004280985536503552129010879001890966336023961779529001814085609179294375101246724193677160737243298523326337293222383147528724746425590512834962444278142297594324783850285799498718445819000054953068310132054950913691962208017543382131902688521703193510212206175281424596267354003842703368757195893579326387532670886347739848015584692606474001509128274858008389190716281818586505431080651545958153228655803925287721744614689084241036676036102831859322769165665486659258339136095871632212821459108191883641411282314068829700561296413001947334251003067747546906682637108521757827267403607728784621729273097955809362198212128357776551818666009083243421673980101348631736379339115407751245728407399012100287608260761387414182108880137377050986125246707237664993816048765705919569599456573960623829866829346070226408685036387256778349733757112784993728926739305562958722246817828992136841283324360862046825493892359959615965727890305447539102669916558916550365458810464381972639610458041699652066820433551602138651791107644145548295452863460470753299696939932286106832838960889404599137856865376321935102795173351700573985610397151041098500200091342230274660497828157177976787845397714054005830275855212911697781619931468598121139580022931145179774772501862261317623986216470963054362263502963078213511881539836910726232512348352612802838824155742578373862218612983876160857759129230467647798509946268330224469957091783387106648103637358395737831395435161946347048766545749624954171252379085550699451285045133039677060067902529835310409400725995595563801172224779800891572631295904736926570693893404853724273833475002574230016166630545555676810916047473490472536371694650793060201569780072134598899444800177620506975676832377494425724469459149169615665053201410494346590185851119958134642495931099485640900454993120188777201236457883734092942708848840025718287026788105755798864441669132615516326761225881709434963907377372852588745180812993549969788833729530081947311280067300037673121178863452196655867372366138871076180361176650124333674206928561948969609111035993266198365272549386463820413853987099343954282147929036300233685123140814795570023709904972778971616039923571029542498664023654923994001821262621432917748784503267527875893378818259759026801733428842349259969014509528670644203143045630237324408674226934523925676824833382320786423882453763018443166661963594028958463599388641147472917366031912877538564296324054402172337636425471537377708964881547282088310866892515680796789220729228010038053289662772225622961964749373072002581587974539879455661498361942183756873608425684456361311929650361954026493255243008206620355192133768620608844790509334455801473457056491677840100644441416265154524809033347066950190602422024259468349019123410399611892482057753771378934505519949420422715782086451088064944191773819324712303314189137803495390795275081722861881276324194017671453635659968219274078961665148815335453259215232814079695180734392709952800465569214736906697423297831403504184922402498138128004765202637736008412351116698410793528383838291328384392561011421301717026481132503126835575734362327990992194609290205994417330024648730289114119975547815961159734692519176723714852395962925612276153381508573954789701231280693227242988268937519512265815531397440896067139359502609601005567416973787250611034339196438415077737662227457379897320791118662281540709812902528838081705736639532999526882206122729967319299096202936883360290066148297297093914455281019109245765403527983777506193675960749798667474034242667872419676297022865749556647438774446350454182229817732984967819060678403749442649904888469162255769835639672096492399888143127446781766739287069606626924962749544956431662564049514532920514553262211689427181732250263118692997293704732557301134691605383106727796350631115409988266158210888509316657969855127372211474246871739405114106193749965030860430248019102375814791429309870145475624367903828534433853224345034875918718408296751731095691450595813665789595142687243010031849477262905938442772285249558713861859596965014431855061982379148995986268212458459995252754970648443176584641585379048619817805853990060198527811373170922746403117174907254872534729965576008921259612450803272444844640167184721996187519189832062242051330315282624187958961810186308756619524647941105946734376665954691528799501796474377723895686977148933300124339360897462710107187836008681976609518008082380056013272420236078927054967456745426894218699645552113602119754233012141021158602320898747320976667607946466290561320183402217658052006151246369461581798018800232526004289793439326314406436299888476782913655483729159423009586484474260873293717249013570689170538405840924716120925657306926747498084715914825415700142422321428353504899838298692742795163753102732006888167154915061744151355491980885892730489893456658232614898021321199666314961188608756080039857569754204473941801445615223918079798830655464025134445121479085785110242759431464896152951923478265687325458328443242173141286368076247212548352605316204521280605321180812742752011920818291425302285480376885966049080497470658024279542257474159083979042409379680127786720735805323472515952476930929836040307594582130511043056951641654285479824887091243213759721265905431957762097755035617928808053271133078114828173496903453530070171463254932286713682477941420578621816929391825835067929664213277830130876822387069094714925092890333257026932618903509522366654840518665743546952351409290451622112940698012357346029862497261403232682547981911502638165722599050380977554317689955857638806631102027891364313223067911085132772790066892216841529978455981605842494278796639304798700100740561629946963709379311840295143721839003626085557736155525720160714916644625099090193968044888959862549280659873307637646482690433363113661145168890971120782264277200529463866127599716575220970893275695415777669550166148264076150942493118843925228156479880681451417914757820100296690979339566824413786020558903385898994373917443522717405173801955401389311003698213010905723712954508380388396065000208294097313811840216878181551674917798999770754922930921020520056530342973635310686644469816482503328858343588747395179266836692205415550055526600170015545698164484790162685710659335816090971020011214687817779513850719454807248737391829208528938366450227988707981152500031299153700946201107887012792111290832199799656276424854101190618305936104398997149914544937815418795254168304986452457148631190792433916741298594801279510266890115719966291059343433579977304219621052024799189233186341915327662852649603524931191564310178374576499096373551155977701578717265509833619033901409160805791393172765471534409871377992617154591370558706479473630225416412423557956335110411664634004881324564934968646713697297271553182563694908677235004546674747390083206315002617316249602838608139132767770373949836731744831052905842791418915142707542671720321242370121124524690405110191071933072928311796065012347704427185226953084891312166136676661097652749482636679381697425642778041213926244356661148262145903468004810254639047620477906039015462940537936480889108166627844205985152593174055044936027643089864836313422309605247107518369548250090600605056999784269151504582263687914601366979818906743951647472942491283339480033998681264459027602246494679189604227403059818677626564175542685012927649265574499376007433599106155959276830589236096579341266782110964002838352488943467059035385966213580021593586610199342102537171150243013532645407620220488740643056498429175373284041102351525575424221193105370270483123251533631361346757948362652017737704421912123317473945556869923423011983670194725564086990506313285974470515037508787509077727432018810294078916986365214433289319255863028469162530838430742440376004226143070661240892382737286029878868826854949329569268647294747256556170201217118136091101350212540529680763676918160163483014161632372686163957155178192579016212647690364713123357986373913451307113146644877478180731413729364916362285061323945491690087001516043312768927187190166753261996363122140902772890233641618519502949384585336187266519033195168044362038240452271783988590145094426512905745590509356329128956402445324897443546646543241767295990699794034066641661756647311024448326832174267045608849705145425760541791437092823656427652471437609566849575938093236810258652064878332502147215172106927495667557852650353299240027581542349548947748477639429726514234511248021831666312606032742916594517326734120575899293773743097288979823434935138448939162078755215417393079085229459689197311099647233033699421377314955305492400046576945184600682730967409806010838793824489969260092745403445305560974304267072596955600992514770211725614769460313087919558787857633454912417553205357848867509362507328154193046998367503339478398457759803199216826082378095748833794140975714048952322173469950068341103382977132981732045995206682183818098726710505002504047033053112268780344675082787853731207640655028699927864135439420316029364535433899036601753130895573995950720848444302104008091582039221699515636779350451929513142709921805519651227563211254728865327504352208749846167135735201900092569771944442722582192062734037309397180485206189244217876192996210300398427108476731666293904984522072636145978741018983634439498799023224798568947766290500287141538140596373227720098182273133591881923639561868517367496205434569144093751033394762033048056845699322914368648824436039388387213356458289701418243356752596806996183851500066992685208276368790977204040903079347042376997036354765097271872214101131576429289459214631172783812868110213736299885100727614219782858418769084031347127324059443211981501069847144003137759362433106259044499492700272053413256336927953663029289099130095261964101526862514167083325312429202775903159201224225509100979609009248514712309049287730569652861324010646496376948784370541506156937077288774388820934705034561481634488178174963560749609914861445070055441427174925963247626599927992492923479467532624441350235550097655253610410003917074620876083561380371415786228564347031364321368054979465994492231075138544937440242829460174106458196710358114162373766316205680016976039448148950400746636681506871506893121550373918236019442566784042096635122707040239356676121730609586404682723011663570989938211519059530800409109744445599129585702035541608235048058141500930851898045076425926902564497069850458000560605456887211984643520388487399829403734375168879193650462181811632178480611078053552178666926865689117837792372922180205807362141385725623962982109929795244492443206739083355488872329334013518261743073981890099923854127536281439716566948643246042744956912797152095957176712254898272463360476253089465018518934310471191078806429303912397291419930581837178632165862595599808188557268265575564846912093958423715395800866599054230880210570695572410755512927344801397373035013555566430692477219090722239260128225487190515201213442140670900606215603406328165996721092221971797560923447909399744287598717558587017952902710053903206157194690742892578792976274553942083598208492228327521174697233685907713969317398367575040116856433978147497670036644397459404825471700422126685702512482483946934268529150939281816109771389013148190065590023575199217936137844871626575748142193349877707003989031126818792242400036966429542840278628917070976242968848509777674114219404947677827934125710567014556067024653209117598093331919952982880900854806233663718994096818741468477484592827310051992264116407989233456644710257404022501015241389311448169518931643604680881991189738133799766821745791971481764449706219214362405319653500886213101703254089865210018496023500997138099067397041489328808291059115934692497008046076147767533371316091454166161530828276039491117288988810683578968464163217661652035102482823154243160772476929924952409236047426098187204608649750271863499855699624571982244911607467031464527009937178941070906440804330129141846217302490724390401812316374262890299399544447061872036782294397025330522986005005764430370719072203036046782891379234705402348645993472333839426495439999357486687376542409800311044035817562339715468238415767265581694235226750391588022516336781073129031818033080834478529314286369121819662906724332231923444327425823981021183856410160168223894660438768017666523385494781106169200955014346286861618011423055134743513409860233822447252325825425559259877737053108574956269589446622878985738156320245105625949844752414276276542527894787577070222768161000277084294226393733629983985018698582708907785798086978848589494474191029682334918005035442623322619868745563618109455675127159265736352108264552765611616902550911001907485646354094767266283142863141360253248831598852730656792284508242161987731442942792655684183147894721833047860401346416684324825377230557126603191435650131996634066122983369976313159542963277733234739804459904644167712243921925829632418989945858228783316882237345865699862903156192039962606687552005533965624593343440913371722453699586012141387996035965942272179969896924547940696565712624412045712496096459997890285809288232702730831656432442834156815691947143876446692848187481712923073934026334276819098642817090785993459132069667643241798937113230884023440771205424523868013704589937627772963842886889613281363287408311410260980287704525688576153017960070859542552934585345094706222226659468024746542977344021584485873915393367592539197824129465650227088189439483054303609250826656324065587783961973051718087560195983711542980294326567715176234451206352957990058828468287921887540074213313664469323306966578402891151169773953937127888978681915811307615477685755965136250285260887908654903134673563197310306394909148887325689401569588017383277664192700111850702192853030878243544729009479372208570835849531728548412660929327034496891169647768987449078927684930844878384507542896497190304461389738622002692318544346955867931822273430650877710204972519979821196733408362230572720843686462688479937485631496854968515995971886642818106943102411411339098316114465343685285082073171685556129689123851547121874263578305954359879973462179516648513779704604458897929899597289703452305216053826048822649423543361315691474908309252534604213611048232015574793375596422526375154881217769413992064924159639608596317918600886261145324327361484086720978303734701525950641819196864576972317794801999750494968927618025331564904723303791682633274361238983175347169176115596220180619520331297773939283193628796623652126717226260511242765251671394098812377445955881803809799301825824188834903476544985707835855711729337749108004161395919162005357404606153076509805992792150118317166383592061598868932940489334221862603426568746439177400932971202594947399867229135690043799106702281176349294740417326944321251231875762123627117267542752219836218416338798248325323863700618086301292020132352040116352699111166320155217454770453653483803362238382570545469229279030484879170660256318094213607720626565035274468837927859392926432765289964202072062250678801033694538337184702203493558725627944637676829026973536306603873609893349649541747746538125152099714362183966752186370811245114314697258610692786211346336093048531196525919423961882771363699201981348682749630852822436156107835045212457264586076039883684364002448023401646765046215108693518395165416426390694225977412541547273041027976391167347869457281070296289665822875374616457835064070798878842278647214066588782249837102816146834726073662818305738621185661464667851157390337053592730398445287311305563118824307584309970487977386622967168664082867013122773279647719625366001221332250487449325507764894083631065019556523596942583761596227346981098997532326882612944445118931184341335425898458597824550544584207340588995383618219884342026372891688704680957451922199412775111279368822065020769267674421149515729490255740396246805035819033070482542771272287941684415712715246332184704177509631034149957531772180541208470402297679072840217758170297698433459997873175751210878556521407766029465717088923008623890731164551926670586269487331586548555549973782844156533061859163648713435246672643456137094467531130836941336108589151630593474619198342256256408434659882864275499535378587111692794433709917338435356815376348806814423101857884816037136244146918686226206120087619794923625999570650230503837773422387712705026498718968064948577978099988703687356022674769279294157479956958411047200027793275539641747910437705926026748964098932226406476612801890710318335318458683920784170979883686124555443845697499600925678398393233201609853598510700408013014962763753164447622913682866986127759509913935192485316984869870347433916494032824840035683938818493845693235271467060054072303691703700865417003831644418051423885091573311604821589320320051086881458088295720775913257706666680842471264785928510520503966912467757607238916928293430869644786326092979782043377467028593068303764784203198143884127579434271821110718144322703276419460802126122952053281116881769022720605451435603960824971128820813336277549811319044291361550086253269867417789613852535218126047719227611715175852963450966367757055333308534824115772137317070413287399857845525522241481077010562725546910703870963587718328803878137787967622746753627648699012992609374660645760659060512238672094845088101404654680239579183026251717037104695197110844366955037786816814975421203159306691870605833860012046396560960433835188526999655657654602178392215795516290880475506198426073684212284133668171323263423664866814810983500678248390258521662529416052148887934911657458957672656611525851884404656638640014936138992341271603547257359932420335523550172438414024845159615237371493440887119854086868689961761280567684684136007031426053436336471299532516318391426745841886421149989347703389899809455401506754639746095703832108012921444720073458027528563775450035899948943402599615284833256119897945191198972249507905033356106581538632036843640707344013961981444685571803400582691335693861404927949216793542906545475742157431649923348956364783920730028948738067012790926823139954604788486986287780406238638418495710184357381825848070986016729952351996897023122138259505240819290712506803123320078776813952658824055522887227172114540342249363852848785450989392506652191315366113362997748036595992946358654303679324955101482781810500813384754354426563537234160427972875628988241801861226840693030540438628003408117316323879418302346230018083305271785221572292856518808975400239645609279828826843857918659804142102845370327380421363055608831272034261207857318944254308702882232018675477797553971223086744112941806069501427899759850273750652823994817306882024771054152617035667795656045622451787946671516449475667238199428959315576970049808145364932447929991860577511931752945761520666405443747932978532130721742293295324235423889722406612945292082946325047930808991743173753805909779087947123867698731898838885281292959594387798820091144305938431856220601382137896626154623222717000842516830494811096393268871485768666130867912016353468229534437030649709247261775471782699645978001077539200798344857626380746581064584902027755152588771674195733931242552094750627713521524257928024732982252835347950936551413473771793037899258008342146627126261064363993612734406454137450816272064824268790191150444042627257437521772083163341494932299204074888363917417293542462348204966295774769880484899720439142011677163560969537141578341678282215456785564529126346027440129823589518545027770369015308448593482470739336614072560266479689420263939753463572116679724668138511616142710114966830384349656833421413165018116479685490615751219339162483657188047049167391980489453124821272589339330350326433326932227240483735038390253218089157179491798423860477066112603158564114545873170779343578116350068790110757696867650665664069514923776940514352401130805866041784907860044578132649687885393234055025020722126890553071344574529734753307074552575209133838796450347482681951129071407933519841038804273222474520689522215151400715413703447916958336835641064959411980572916881344830496019424460737293251711698839547362470850606956190398724253406209533878228891217250556982373158539944817921534168865071924819347735494320017166499878213538109774609415321896435509212798175195224253640098415185199609495346242033614600230169080122253778209018070880801020369121858679192948306395143768790212470807413881061213488881552869297759068206824112477461967478152178817132857986653354287343798319122783750855594873602123054455712459713586203871084149337037968865600314710852016620186249535106322479789064361689529229337085918182718436182421551618273399764487795439031226551711868297730829164101680117762846343039818333542532151191665071919082031727911327038704863008637679298634151597504797752814043212514317947539086617547334283221629639134710168275282990527450856458753367854694228506487957200056469074632753662934445466283448305502652430411621985372851248340217654827869816851547329881016343658098931153289575679209535277018718879510042711410659400828648603993750958338092273453727359041575758233432948437199623288958721088574202211548214655610622818374056100353135106645291340685285866285501341248904520508983810899575341680496718873566318455169680612487329366892995478772759484761158062623343076363869485914605258335918708725649712658405260988970271213111224673996433195454451555818668652059950827723696650919608205708623425817959552463497783010611905660015527686377543438113746757755828703896050844204422701622595094875165259832754704717356387234867437928121362381962184845803334014199166645992817430700518651012315496514003439731033299169638721089180978927903880768263613035731651251229234514655057641681475401940134324809075871771205444808472444235391159227603762844771436726030818734211328591937519589821905055891553264534583173745871931699262710117491154266308062817103714473723077952778789437388674913285612808846810314270418073655695612127713966085900002756552818679545481372960030526051887709362862882283019689101330686703936176742828622562728395455593419983835686581445133859037182354847903463287830023550580058037545350552120583422633110151842918422680874037080787397628466317573699878094365331802279292063278926103012814050170620925396426357353675262633360545826440515168728880247851810440736602613976446102865319111365811570975084480871490671075520025949409489645379313621733836380886900229664887048335128075838173638483895679413759170550143399290573442833332606504976190083414842527255867572397252442934929738891901233048387237591237130506988367860189646160097734641542453451393677849407826616421749918799181109095140601617123213156716978009340536257545717526131353302165265895135919147134287755026015541666656628144635818278725663576576979565394791859722815747307363349642007361475790177677745667386805491925431534306547981082950280366296773108547532207002812825478739468060695533210393636479041127960493313578660556305934486496664879588901939548102955625207128506504972322247317843382746136515618371957897737171393281453148550656322386132417840086865404985205597844700116262050596111478347699257548892210922611912309269078496241833487243734968404774627301857146158097831000221652174010085824030173706415454802002280283891382048905475212844555126609365519626654530320080379496936088503741092607470715254197954645963006216134008913572695393713253348064581840718488752340933134346529535255289776620636881057746289658811669901645809021351107111879981556520593576320354292428353323102544340748348256496005365895949749354792569633647788026216143659663043329001521403849900502458536755068062839027040510061115187661490006750475523467368449420514130931666860929136195788411292451333951147996648430995296238301618210880682659588924129678302700908571919372190054782342314112678142772657760703772715894518136409146620296766336205632609256368519344139171185403897227580128950428054216777933760187800726801321878061016413990387066122489096597601422745130811999041076451109244006063036453773799299301998294368082100068934170975418883015623447262789622756860551854332194449013650912084620217529283913330477687788219863825076618543269874769832395973937249678705538390409352354310153550331808677169774760456831749191669698381737426934589470234754181490270063969933034813566332858261905449417378006838319862872291900331343122279382003087842346583516054156412689013037212853171488636078311609549411279471267339045092260400295156817306070826761124809491793271509956607168797799291566708348106889028491229695977298924229227243575764362923617934202908122850149911236157828175899140511010219973812925958261566896095652455237847753043871177767204527803688535255218337940055400466916695221777239405068676054398147962770193209092745604029312204090216509632330240487815363015258933482420882468390783904558076796916923926254344292062516990459670300164203768851452256034694110851006482427761127447618587700037897098804704255677205349099617914097246148818582316623236453901021002516077298627814988324073926240798648765223366852240870782945834728201814382003065096320677563549951660458746544058704899892322184744473823756728594038901445981352169183583347213149112353630329243789645013692153720839027910077894399894790793447633046370151789873798360695003927188081988647453265649997137601352295447052896105123064212424284821267244547090774421686615254166208786366934415442153646524672850833393196213602865605414367703297430154517445944644754719417542465383172998642817091003608767393034236594090889696946847848794474729306555730282880282782832944404100347365890388551361980496789894304562069887389356699505888683416877959493411292743001458237045433164444603867674962952343446743099632949079111563467702103956368062675394343309003255823339429855904238390645691241737216943714760999404851380164260126015351901100216825172738144045977222193880061863604978120126608035184913186028138265720773722696658273612791962943673351007184419278334050851738941507086655110066637350811439397564167111593079896176507150910349329559579002605076630777603871036380982610579903379989416520883691312803031756446742954269714325782632083527207750186095129970587743442131046779370033387219094689882297610677112337052670751642170642612393436284610490859493480863280155357148612091610535347186394897356232449563468358103227552549642201461068773741565570851012251986346807996050994902508603553912316005089018247565317899722767636014877823138910590073472937873446478103496197735856104964198012982318304280952509423971475929062160451596444431685513197576610185943588184027505489312804713665834623073055393989595955214651927624046936691714336957557945322868553546480556016525992824660713460869104102915319886887446138990740837986482791408452917493400330880167832381757652964419688579015206864106165647470752564519965201844977807631588379143617659396914386589784934300564353724546905815169851706993026416171916294277238772104829971229339997119396208149221689973729538774851783030603199789542813177576091479292499440371522095722954444377204056459066419694191683324386440915701720004815699324249978741336689424964539673981987972596698093646537208828133783851916222282495490996157021976612389823852655999835978353075346999090601844222452257406973877280339455409083539905878770559904309097961722917744918310761716136034172406372264721745333621760312405830226531243855437754715457910959032612280993203194907630627065098858299199650081758609787428809556988637733018562769966984644587116661765441745294031364466065588231013214722833496604191212872436944736603385370899325190075632521885902645098758520143613236373536985327700566291340074474925171501608256396930895148704895403288596034315159059862160833340290686080561216505345837981457422394706322327820904467659503265555172625620176912749522532867456684120168527543386160259125255846198225255448458936809638344880547464765744670073789468553633620273399241425882219853758530725161447588257691640104708200957825606427712487387870464706378476339486179811595137741318537647017779895580128646119719633614758868423176087698456004134470988638935528865823490149990553028762979792299536166274163360046176456585643590775732978456422726016500608204563613244080253222852257857159114311804312041893945660295796705755180785508116967414043640327795178691247460640293864618965551368017601056756177749345100776469835197006103912704982409842686800005791237426847570232481333290208393048133759839247550098590511501145091046848403114516490370145480156237945689834359832387721536595758335956947606544908718022506934976821957854904750947329762011672601763931340296916879114299045846822715610311321095252355048895345554878771340309998156694915651279987305959821282127683667352383425266509653493210080629485556730954995088138541157057263261635264717874445235712152865540579233422982624161353311226723064973425821985098679420061294274321506164387846891010206769716214831530402790860985507070198255516533409004953194958332334389140827476145191244597095609717679658889605567002620469232237973637141317365597432320239060387201649966662170760151283975522892178083815660502002535885702304993609583204802799844691780811354515876902891247163919196035121354726468616997329840447753428123305697929309040773758733112483714881541786829328502579889582296959556934092783467402220426593528145802912813299893935147115198729572540183001072265339683532016250185540584922692627279351159279446902076073307714934512487833191166169947023465343151340449700739299537942291671028973913427427413376472730443151535486580265655091965620445720643274873331100579163318634552464380532775064912159736704132902110332397709559826512237870012838818885620542749760453686011140721148458189830917497164916925048194051723422647800649131313749169190933330002610476460574298526692643161386129734144999118660034447728586309548365364496278493713001666875893789167703662591484549508498238284197216676810780930423893847491620525623628278741803485480857294571597071418039126097177257921589354641252889876813896070425315265193845302203778136625210518939261742557876844933178693789516276832547823580020415559121484234797442846884505508887585221956185350523308627701294853939978623180193049047049426517977083706977967414386385910810124635279616137463689908533743343253771526521078914349243206947799822189796091528493210757965143781654776054787998965138393327218436330022632287761163815612974475002546778426737737185312546147134597845177543818666724096055257445746353473598774741851103523970697534169152888474745395660982156305454574624816622738378861444610407512523311028565376066694611449929137764725037268657599997592059478090094117894004812391365774971721400078682229255277875900508505403277393496587671858832318726538882287037419256400556215070575231841506014139804160324291426793026163832153535637949106533051847661223909321595227301851404422918682601034442473253262162504444863420933751938643340956519280918938935501619692204063336173244013404769377726409205456625949233654891419612302401591992238955458129870741990413272834424075769261331244827077674762568673685989335604343907336182505895485954751319150332507272158783887757564759771064982241383125819184691533179948103840719847200121662714691191973615481280448138604946363787487212847996181008941905551000508331722393641186413872453534764590030758817439859010142158960654944157785392651608758881267847174899991386242180582447536628027452154960837719016413566487492896634355931268925887700637334581233801979531514928483561129548531617031208349310130611141594505226329593656154793150987602455619228766242069322680837473782635735014603613426156356572806364468653364080294879034355974182268711277053511587526334249247421643038322267144279476915777651327774359421409933399677093947542166051428858730534498337511262144458602920401294315140647964549679368685475408473652586619778578109622034888635022345147957669012255423530139324834243474963838891764399349850873887763198667955591380643837544476532437508055863263754767430802404757829103684215455843860796402951662297275602349370514032323105807744578265085401600158648107667220139696879617314477006230827711099047268254037637476373757106680779240517459811986564468901385802416625035082339715762137308496238461252127186405445074698540585818265213291655229687335665912260074354750381058842416750011467156881230759038851368390211482873409854236038230161793238038654693078190665939297900658999494438368514135815702596435404132732537211832844601247679256697807494408131150875146534236060859684175423719458009124165820418879855463956233697003703757186674421829486076221063021386830803743587545442850288587604034649629534700852717367261543019863767047925939523836577320716934260091924264578436269272425265862162678864967555419670168404927657982859944604505919086263634551726580624005778766557624307669220297614059232452247934542093773566735025753111200780664949045083564932788574811114113274253311189846174452765818310474591083886844702664377675721062326873774349512861736419067342661505837615033716874351208720953820615586202157953673016164469491422169107306501361840763419757605319807998207883280058319184872452391829077706860985095695299112950292674362315416755484043111222368266872532069849559554691958144728346692818966615802869004104646741290580867634554463617625300988116709420014828784851147134763062491540562574374340579148910108120008483670351791472241861413747506090064286133209372958137674057104998122433984520313779419641820574747587632382244903441551873247604929493747235423482833401405645403884423722189753812073037248430725954057167229820928293545117236629742769544907191411409242273457981407174728782910767342858643299926071523035395057088357241794527385274097117734087650784446753755494811302841809890850594348537722644606012965221353593097844132670116539576250701846809272933257716246124328802424366523763215040462147667729383117441036710271823454632869354970036960269332049903554909201947651753715817756568483978004739426125909305874155480428370250206806595333980883206366486478498104868681305349538868300832474192027747186953108352459417369101500396289543793389365262757441153247456411159615167942010378515486977761950659232197427759676836343380304727130058691324855137763248604946364298230427678583205921592017307956776835035254291980555118147058441679095795052191501187773929951330082227082884073923262821359228681177084440787625302127017775039596719091771731773742945437776027539618431928216512832270259541629515973338021371814639599662241069219718814265407125713958367045846877458753263059110577587895004704886036496852500266642136358499729782415777987785531326707632579834158697957879675440327491283766625680849988351558319535302735900821302577562175378628360021821261995229520264973622324052501188004545253121458928565475982517169518018426139178826185969091667274566052562722947942243443876381279837509983091522988503701351653939450296659851125872563839873947416792077985421879533986007629132052301463362275947400736707580363701413846148198442734953357139309826913468639190468859190668194605094164156616850015735271428147921930563464132427439082633858769509811060153260696692667925026891014486924588937625149988894990351806122735235625897979570441781824749143414436655348394714137588327751594481366348777794385899951112422268924378152667130361436119477177895797150091496079546088017375682127480688537882850373169110674957989900721646459100120652964789110185006871676373423778297045881577089220719161591752503778897787363167146380828421703070741901004427629832643089170278162874184739606899774538955081587164369075458180369223911879253630152818793871246773244830640810585058866960330884463049921674765801662683436446598200706511277055104999747879967250039844342869667539512776147198486652746906425427614677949499173993737573049905423490816364102132957818826329196891283590941273960775840195892162898664805629591550529347961258234855771484979714983778803871133037611204363612782720445412960457589482945297881518223736675701888140701026754792222379487349594794234083496113305349475604048343515581074721275137684144484334287915261780098967993575064534737660921291893877771668382290346942474083321338601697884758792017493462800873560021731330369129734386002906638023996213575457653344100458983793083609845046947325864823260733344234221445180320268966555814661241584538804063033681196537835531208099090668666560583276121438895149412575756106155324099015613779912379176575262526763825610667912992907620703131506224932331455099777114846595777855202060411044670932761242253637736877729645414527744614244698317709862730842649866532265439181514764489090508801448616857880463572336311351736986419987598703053069990049739686019542138145101570788760481318147906260693592200923896377156488397226017895073558427422250880428717678334864501071990478539796528915322177212952513672361464749791170235879355537002860722788959689775427466968796487136246512044138746158051180253071416028586419045716075622711005347525795198704762130187422820700732001187115369119070754078510999181161034959421426045637418466327778238345057588386101255695491789444048568401912960254578762610691633959077393096193358303644041896559936613018380324410690634555221482322781433210818446847722603337026861005355583981333884389675265537207507165755092636041481904159959733375955497042973282708221826355410747693532678122215459031946979126175837927585936674581482743994629681241612960496904579879376832763423212826827585774418732268163460809985279951806819953909122870001041173541416272256586775477326919801919334785533162699720885651939426235800167259158529449139467165316831627246323189802616769455213956359852112110260481746631941965274270630761075508487634082753860147212528414942595940051154121362327182273459937355823551215282958089537106588836479986447786028938520691186638212356396137641695103487808737554862145584268126678540451834713158763178028639392734901326378771926345059469795313768751957835796139477722912562289287962352333268212771115160662344816887228720705847464691077604819593596860046853069160323648310571988623162648639039226724076908170963849003024261203111257210346293356691768296051797123631173893353789025541061488087858353502018617050501045658779443327316963600764124430806303203137692285627991609145220573693347345940426117393943916024145468560220377696652438512618146146774017023309951717158927578305265316489823570377802457475301307300288098799920522624943745084566896645213637110433511172971383037657826738975333838566956179772318384301623071694287365314753903181640166928874368631901525266135089790157003814675592919015506657807753146591180589901749641215616391662168796330550935278216133164225950142146305115738347290130353097415382312385909713210108178215461773433514160442015398979849868224660535004451902255278129126134745229457969360706528413093967575030767144920139569775153841515647824713752592143210772513441347909684285183965162879136103462684042446529949123955461246934012262925022785100656298334281956199804035226147653063061074511105237833512649606136699713901166413839905236378993012821616401096015934983287652316484278702935388346263533806684974130362434121635851451997297248304717311173113403649340711720099821982741936465308502432556375635947030111061438689590494111591666092314742864218065213260192212074992827562848544559451337457729094722713193196665674238569299903990278777100396584829974421347159083074955576874823523786298935111882978845920797507699415512341194697519740242871444652089088565155999681007627141951607634254714432681264391180814107082317760347746748131831839598582752487128911905113663042360480232780526217550749658431025609495400934073140076052342746722167782075979796288322150339027942704736965068124101298051595713890978775262074432196842808295229009694359141993166621840651577270776156702024078920153512941361541496048176123142351627287706134211130302911939778421723632783639501060705361080501856774243333179292974579635316217470612242643441780212222241816457269720406330756869138121554541734592024517360271991697945118364210421523165789102538147443833047953943041155085119459979026331135594056056513317731666433222400889758683033991687960416314305464514501455359998554914563286530668683902321596107055261819029800400133694259938080568867823203685503684103458901720240284411070494028422295118501791527237133703671349013362480726716366156400967727787522088124340671948589285603571105225200331803898715865339287759632131454237646053921475874327677558938805190226688277520185206800297595210307551614379596114684485449504757731771902978577401013695405229478114795853022644053674238515030164426886248979672956545848912335240774583107017726830058327075136622316765068088156037510373967574875811162630410847961474872683142757833211558215750686045145706719015406994894783532445627664679414687254854356415692637614039941470543723005004195537578179531930560965940452599876497223720191335932920985966431531927335998959890444753992962469325753577043429650619437475712285850729205516274414587204672643620409920113813484756480766749118964143645802074368146873333393340422761882254048888806561246639768239739202861389048325044851437478564193766362887826473466000380690023762938842755961587710889349992157582169225909541193996728554393589433765410867695906228987245748067215627082628318710355849652087620824536221023619112570634884629942417316289235390517759000538553754716478857945655392343653263681960992986008851220387719894652366449535633433300161708851961142649896959477833895602996549640649389206241765846661039926113468795531387588404553288103146887398863105495949441877385895941242221218573608019996049457105304069541318892979048792366540360044981879408129209078693026279819844692241248139058025321248952780829048006953016309845249500374529748737203481423102877527487683772929160709629133237824765746485869002675581218118670794634018397693255434557811805174539092281090785568657255245224472589064780539770292578862085197348342652632948150583802783215697418528632301772564127977860607057946388022903931692457039136006183763763512524676993096611163323001177150830241955141363986688962352267364667682010250671348790156483152850037155487536309515409713186722473474630952848024126019562639608125246014198223696783970391463782165677540273845438479120866865856672999564681145378677824282136486366039697870652334286883137294737979888676920388329087082663311349726194177520489086622386101128582080669711158231442507157482610901231956662016882840943561876589418457382207549857214756096635147781770350239624575526051307763734231383797037042995198753157686828951312499787500242418142947852254593823663555290397673855737829428680831855249814497555737761007963953076660811923800913168827100622790659604044168711034646485462141139512474288765423226482837851927364293052199285575106850104359271328586634190311209303600853188144115126215533410804086341764673678797748413119974738414123021702464975341860210471111208060214270255882321221524986267112210405984953304259769308365867760789693435729272570199565292451951066687467440018076899384449181614389278399547958883811054311311830539776236840460002663072122436720845749300329418347197145350873251816407024847993127787685383040830737622896934988340013085744354553801756177244306453777022463042530695741182985963431203068015787356224514310400006044559731480250036103701589565214429334400239303428862325496090831679086036778355868862630571099905257269747609286065149902238128396956721227052080758017751439999478658754535480034843095898828503846280945861259522222550791426636371417344226415744365145979544539069978974390266731435963285487914850456938557030047199681246113469591841997776883301008976497813718414584757432989709208544970825758160879425430639136064241632953657990228996401098889448760248317420970326784483531669923989112939405452144473405842330742223456558146799080354213229358447733444076409106205031727474944533296314858165348950885506534139954271940202893202740571173172696496206837079263444723896008304306190068871290921152317049107759732202205683274535761431855997454945905557980088249515697826394608656621374154849486401980009521446532537281050575542755575406616928405890682731007006711666917183838943164844024160412424287539545913311082199457663099492907199008778410963768906603835314236625999961396288181411377590539019018001988187128631868273337697498785664823893780543535716634375743208521490033868829929542496779823682097447419378039318485629919312411649972076562849335302913764509353995697928557852079262415552495608122867701850609449889925025276548014594281748882858879932475258891274930692358629305390815185778221317099933819305446014883880140864786328960849231793536958131539973191953789485984158883789721325365309568062420941938294381102592866150680782374144266969242130260615961469528207323159779980998971988811020131184813777444602135094058549676069201031350979648115059765248643900923823990720623228220892084182460038775538098784043138569014660430984056621794759017725105885535820944541320582929239575044421154818799039776020852967921137537081869100856855530007404638352832386631786057541512424855182521122102007866356958616108100470196386933580013698337797660092214042457737635501255222929557997350658627574611156244032457205438230727074177471127785789928432280198297521480950488077443292092548785553055837319312902439538117478275166853152415520703475580639936149866927966260215687002171639287576331884648306609668628611824680602549429092851423238086768176805861996606408065745435996420226719374927039551012510181279454225661447483694133511734085444652438592849567389111006509984387882869990949772375862462404546970066456971552183775299256264917955343066288443984596277903259496062986322718938983024455936071657074911341421417286500035985816322714003947344826348124569246394037062783757355299464445864298455107025836004324187539001314792986578388356822048082968147768271190332530708813992231523326680678280644696937364321357746279787093256182472176020077531533347229265198710175357970406388841143263342201990632497075868268168379868827607293624997999405963118328253152138662882140514014713114753769842783723242441014739307907394311607845622783235009509970348963730833627562035325654780689796723990739760827456067726977140595747332477810420424323698674771710692805344421664790938875919784023116002746171935225708311041950477757365116543577653911328447103907378822798354214642811536640182797215181746902605119749691392268978298704784799327395771739799523147791075188053340712621956386398357774858457044695045385715857946821092220567192734713649831605643012776398960076580247834270511454664260914137317686346034924403714908536359238669130516214771850859237612830004553407940193095051601838185046611318690946150873417600945125968375060182440723254142501964111862071186835896147164198287723792563744428607869716737064864777838419283740430934069000196061282505438611772047881216910769928010440797322632018898059302373845338602942380730444250320184422339215608593132501137335427541191765305806604959196435414377391902370280913586974851941927959050547239511462810329439878065418881883184089568596173545028925741426949573630028707857080298372844382783627088401335559770350414778220774720349599065082219150736663407270079838660342931124448327742753113692276849826909760616073202658989683752076972143749818842611693914213842191144063647902938530703705577573351399018401483104734293695729085647159143707438894243541682436533019370595108717300314246804367009953053422727938692235211603299782617130127930746680221865731009043010384481978529141090583322378224474821283228500036414107929591048119619440155694909233954888290983579319158644369738216823375434643487252372518339907642618030234750647527209464046350834960355133094835785677266944499073857920516924327783654648342840419485466585788733952816238285151365488660942097732767965017901928849293655638602610349080719690894747002908320909888373462471104254560546416892855582272657324278442488392752042004846296782236229653997478730327931372159444700962956293379359854414863243039668040221114276264472916954483530440320362665486499718154900705989695701047792777378978594736900215803773476197288168845045476172965205759763781820459804709517789199524223518026539895888673924003895160113668779123629983608639729275102122723123796569215604971962133899125833278533345487500105936424685508968312081465654051686742662362208516252843008363022626203487418832743214073810914401492326078751287330826286911244918245556680881448425012066154278349747666332350378286482760206655971269572885543499034012066954252248325578369136166717122599623840232468487444480285033662986641499619179151162578006802973273068990705236143738096499996357402434077589073442549444807629768364287685247784320142997635772869155184952934301849414651827608727765354799036359903851454228702211699438708773917544065843131461101896925975348025358398877541658278988258998127433324401632344406967981338329248426831871198095505330827822412699866693856045435247031710462669869725564974666895975172683249815561737735532656235680384748775465267159556180464438635378920683194419979693658202894025967616996190201979785050299586701309391590064018200696830964711406839244087607173953617889808139208694650042769706065788201527272858969555418950229051503317714927606444902764325668846829999783208621920873701924189269125869384838627631446297635182433863248981744104343697371680252657387993030224102481114457257530669183535540564668364022704880321435729738286608054639537239725584162052132594070099341268398371605280257663267005311484664580168132910725749668031371637939614736867354746719292297500662000439936765153048443249994416261134108079604531427121238393939318466655592142173131149466583677757006930902821166468943017323085849697865692009990136161939225162183600796331997866324065029191016516688648793750991342088479928324282148250321228983454015622554316419499991517933434258178478909034302811010061624391494192027598328860446134005085701584546584743551546296794184484596829691288012164895878793986955696358588988376106581711934395159041560767044196733057824802588506160360631615859037530762806259298342801428100880355709231600664589632616317924342848676892981854281791193790360867877307469272517446715714844137815864689153187769720530080778918993091320425345006832004625174534967019892032224219983597885617238300122657469737287383496412087616421744126639447194487006768915287186764278638573325834589884585210053545480485598201373923874105429074574467834942108472728463023618965887673167450499945680038313889467253791482986654717885809539817366156864118023711904304178490231142386525661088587833185836061442260183898001494007768213114673358369860523053527887785582793014488084713888756975018616632721595670253966284231974026778667597647602062143663944115786629508264435440516656119262639090661957274353551140401237199371313703456498297416576727052598054956417723997289981934068888957544860917981176568848134763635699846218514555588176412824553586624944142907932059234336030836761244980916013969358439271138735312944515917609313379639993579755537531842200982000749276868562394897799625636938052924178411293087696563141782047677957642339300816502513281346694305827856725999222437755777226437830316071374657520545623938405205997202108732469357427663387333018309454574445756011386807632811721229603133624297249180488446358375812911600809370985333981025949163204413548862056543136568065826895821281940033013776886388934052679103204779042366980333144058732625656580665234669079422651132002960428512935408012212178296946422680653804479024429666640188454194645352656432100624189159227021408572978005029158870821528003803010139599547468013573602766739734888543550402065018814919349877074624682552411858405639968124437935478905489739621439462582057613579473766719860930035330470026290872262999669482328043854963713009501192736037175871569834399455022071787518099962551515168572854435956450312793271208351029532924554641590455338699546371799396869535800972693924774538438859565604685283342743662265329635904677102331362320045341113770333291243053791792014909591434815549884860086528859375780287022503163951613858256320761354698058467109152631959629899136259939058329625259722318937380078154185695357331304228152888885013808006401768637744423502971309387034646303566573457609525625113306262946935787313700770098457524766723816368537051615120625756362939072052771365773147990532409558530870810367909113114151871754228825057711346926657757112280845536159222715289489896140112573409193442517535809622571551293517321717905239521259054610791323876312592437695659011977802962883938086507949851446047118316655162302843324293020319886889308630308607407549601112258832762183142093993259319587315753129190281071457115945844914211134597280282046141599973212174651701342372135935091828508304319308364565789713003916600815507521603802347615501473123455194960636363893840698989206791632889529467162925775729490331311243600062016626322102921665820722703389773640450600604139088423714841672606743506034842023277258245023540661605957112330933098259368003765900277197165158648309362079370868500463554071933935807496786789305347314855357675061401490934101755108808344645412077207120675766492324888330465442775724979400718844230143264138340791148172545126448387901479588041262239663135432488494241402225253108290355254363044330265112846749596740387519418531002167559564658493335296030121333883754527771694855787180236281147171787237066991497149042936342993442055475739755089490797733403400706929419199978037206396867140941517524517545102069252640028679739668529304594972321336669842976827191946969091259845909563830491701507825267942972660901849405608229200333495151271878993489174776288945267346533356465861673065216397781772684828563935743530675744318510441103495281558800231344744854583632401668722503117261906079592311056499709786183330372115607499755571847103995732860680736657284256903798576559671252678574404637847185346181946554031227639433894383072117070531564301194710095672984545339520125719547083961201680553674136676619539125711357958363682913197248363668231966037301169825793804248048060705394046123751070055609076559233797024922712797702511442197306680219572970023214173637236486315892427862154920213502033240068355565124347901940589647742265621089896476298860102855734752461184773081004052122568424775596912397938843993496550054021313611340183938343918552188694865542424041083974024655501342630509344990645509980471061316696659391640997081747482623905289639798270237185934174897169898827726940339910568292178666811490758673942770789040690355562603540369323307688431380890979354803903480296209877365837597447845525028474298336869827799423091426211639554158786227991935066153121293853893200025747134430563199534502393792548868733291647005995657476178736890809653742322978616380365883335198827458511591861845759210535060915784294725753893469746778109550839488535003531781015014556173586931293024425994736451247691985776850675813756525676863104702725426286551912166561602566851466491992418537436130821341849493773809079572267444199790576176646111560321934096041562297742608426789015425860343898149818296551147971523090919920914119225856530456649026620003733056499407684713451017290564229371635704725360493831460814893328875914511052500851731749795732123354955404967301554323727897382704086063615825864926026099666296203769220940877937495761914713095725338293518474810428165330473244808142426492570876761747145773515905470703049313139347588009549012352515626810253737717062989274938137965643431384003492485605575071291750258788513885569695346935873404118633556419723793968084511291285400299813371168834537864611677879559245285712210246528957590137173371803783634831476540439542915615455124376916510369364583564649208771947288857753370465549024704137919941677184278649832030221247759435832419040585604415172668999101788126539256654604129007363609200861238335403804943075992112962396219020851623740388188433830673940111481946626916014649988200941793177213685103375560546694019759197426446230168725574644953300622241257714145622362454725933304810663456599508053211660838041602612355860440978447936558025812617183702789242752643124747437254062290006042495333136739445216464700962520646442522673673689142799532624422100597164894186547513865602191820160144021272480306417684742423817197262565283728956077220117236881581673512691179889892279262193080884805381420723979432222943260099391708670558245142868094236681373974613374970234186113394006596175953183039411396260243282919244534102649567432318014403958366258129144030628215668681742333817693171607852157376147799158403299492000374042214421484666772457020714602927087101020913824523155275528835933434372023606159825514881283834319846916390101452151243072334112888071961662951950590817279595882427135816141492127800147158770240453351166496594936913102518393911420840927485118621520212691117154380347508022966436892079007710297271249528841625673406211317149088588473268567313039489485289007372541428186490604331369961023316456818051458458898907733963376584432468506772510267610130306539529170593676347759377193176468407675987486976255132226230562575250412035550998434953889303375804879449068450069297093262250030478365595654501380710889762136583104917903111671123643302324545791278357344810686023189633208467572646396483177795031749384262581525274760481510611731497772951031511069529921684494367938542490814378010055262630427502690364095421931898780175739168779559443179970488966160260234343836746723352460202641096567219226912079310440812495270901745306734336873355046231041211882986241446965844508751030191789941922895698247116437144649599269110375765372209752152739048573559929890028188415461060174221166782241137331707305146312005006439140336906852231029801314560400219667068251448948344927671945325022141186415731861987819100452677784031526171959212722678880604517083134947269087813324557636441158613038304459195678169442664660971909819980457834623094010325578734552585737503246959262037243338430440864683683554850042761223023344107764361409996040695689864515751313925770609951227172031477716617296666322435238357554136560665695908991547272730434672799860849608522203604142371323069639290927553819723280363884024196271236526794448076539354170243659194149826893650339475900913941287872002762320456332571808494518099614416808973944226168527119608511099134643305497516520862743023040335884174045393017010789195483132414021566122141274379462524267849766297254801454731667317564396855889268061305681842274622951579737753090095808717032835002134942593675126509261613180651981553273353364270731198241540911781194403587379844903391275933640278514744256181711819811362934245517433088286206830904452025090580853568566588093640327671720409746460918980713152932356363893260362398738572205288941768672554357350151742506778810966660933929686468263801547339664902458926748036855737663528379785287889815131579632845443765395994826374194788467226757128167102113732589565405898738983724421513190978901070885495574645051126606468158763576247746121735832626488778808038057470541578715133251042581315823909120727345915755217308041318619347068648069093962873405565843236660159218800642822156750588108780572064216806559471799426923544887748143743920416317679208831591947962095874963740209992208880761495632997966817501198953920959094339809134564156930903297814117185008086329026908332985895125767360775421348542098503348586507743108135619731341272136378563299638685687982372186323973783607844203285653428654421207792571080834749971185152621096016686472593763620971289037323064278218638605940876986539205435281503019006679866980221867403296595224504446238026225029642538121476057014903762909905127547843532327105820762298859596971108769374245393440489165239622387025382420285132694150837401528119448684998581715401415419444335618540470920925897602788317280335150298266728811724878241212270587093916526050095410309411492232019404362990571488407335664674026519157096433942503283042674284489317698380692173757180021272583887791843864727898592612479433077111433888426864220845606283272323500280622062976001025314642352461272846963813003544025569473704874230541609027070235656271623637009764608161408159699737717228277892979388668100594672140537445951682044879846190660325762993705466063588603654247305042793132755161613282547134223364599279573913266386916243130214117073592041987905487526424290926875906471276379445922784427565155882667116594725566631282113215599021916628085830739833416768842875633480498151877454266382531728513756484655807562241899399258973830510844056421488680506170208520129516707523509172031419816266595444643330605533189034595358200027547118940286640304271712541549551907209455271069162058461402709412195821200416211897529770913680802498791406042523036051608124478147449054125458744037967264226403584960119541856888502968353035929790229612339073209674456547816675258164731130005415607459662622000557453148349561031813078884626500028191912341791296062493480974756167336149786878037250521052154921793114451986936340769381203600932486921438912027752158713466501528880067204903082189292248062644414691983508570976510660403695700210912133089059467875156835665738585405453261614053036303219650842104729495909017059403064223080807451653475335001144757946867186959620264809517130939283376357152272824002856600682311255119844298321789478319264074410416071774142208554921466680043216301779561122046580889808883155280411443149595892930479181763726143364437513360502305684722165669706014482262709135250602281936238684967325421927220296288832822497571744238629901072213869793322022801370703975956722380599171348916688668029104363436750658393189401899347937148862290554132387376337786368156310906233337053770206583443679053733347462650048458485343354195387369504944768198100223753687114855062923737556528321686785684385459548192087753211334525449890832480860727920827855961478023070617514438856098391256218635522754001810765927948018438095468461768950213626705546364064410672926225731429500379014794869997238364597850114215793232439984715230221345929935661192630738852539359441652994047929390559105505540874926819548991521895207540273751943451319483071883691089387519172594844441957621457240300782638081653923916638581031882349351012202735158588860770420966686537970071506569871462043694746644438628302422885385782255238282070775819779187443948596074241239546002782421080326397301125943989909946243528456814063500309224014645882624242145346369618170252110570331927247402245220475281086748843470569013751269391846170338062298118593204584921566990974756289380652895151829486452176402955016223931077654357204299789264951123275567027657236994609797441078237484225972846451479568927068173681005398451191801006967574456609949432961050555138382895758046336114015233856756160498845517077543729571074139227084985437246186765100451673511517660097554394842440815688367579232712704637532983944667164763701208071892926705417254740015006160930069895157594161347657949461481018159624633042954553004155096766088855494613819722163855800423330980954429899416013468832043606053686716203082520774268093977589799310866656730505270209222058820651809997787643952659294216905158636960591250439811712235960350560940902584683264243462107438370504052434221547396617207609813532274594959579578581234923387089749764163348973789921184737430015981837054571906698832540191256547196178842316924782141140144890488607216091971169460855919290619613161084090567904600079589423515102437730524033480700319515095700990069543056589798855674501463687803684896833468699723923962526524862800807779428467882123788052942019037110025620706438047105284338276924404474532603192515513211614403345125407617962477399373533200405775456069344477959783137550298204334143138912009331465408928389466490472156478883774642774746176477787476396008316664019226330590673228540001513415663451117864148324211713045004147097361268959269045633303753236963552313921671719749556389573647140417501436264450819989977980231206145617190758880024007210221569560514508430102872676653354830644807448670028219344521556653825504944333478430851319839887631621042410106088835150125294745680324422417105511685060486982795062062658354999217999312392652216778074660712219174268312532122413129979728824175986332897641791590112089560621630821623137298381350070668877347639654026557646826473392003504573093496395089601303267301725692240824085249366990925598596372668209079699216196370564614802600024724260286197323715877681001066421197267976405541263996942689022961505057475100648232343711996782435688748144873241616787850741359519991481987428218475823138512279212710073447160140996114762720153908874197121120775630438515042470784003339931593549660762893187229045867655156103701176016890786213208895653345806567084732797522337791330215260668031694240568384920315199037877908977640478085689797802892117519453158220504859492016965083051109144274330767438563381644984541781938734420522614088580707576416834906710012940301123695558508520679135593837132212027259668750943899855308003544199995943888145808553904221817384442947455199232058830966274245220881550497056275497889624966205123375963093258772339685510593379000554569357181634066990103424770045329132513338615907904155389206661509718792977040330608454716764674661313587544858024425207731888743119213879550242631879836274369073126080008841688637257639206041585106502999462693002042106120501752684387619408303050588375874078018853013557815115500445119835377062898811592902934540833227341679666381109368569974583609641749358081147610877389423426248780896774687056225967481686029960728755990476668448446088302759017700696685237021157171055896780781921122968994598840367963883863031770560042034186637219590686000682305775570452571283589399274109811322518994074253019294215365029117412479986636023846110148071874202242579814025357047361618703037437005041284828476131855209422669727706485656812365624161774775095949150341502705557300404758938986622188588131798693598638723049848174446765016937953139191564188091131267754826913147217861560600130447528939798721833292489325973793844429022352415463750408780448047795353509973524684758637483040033402418319088741937424510652761823052897192763711457085217286276986081796580335194841241516240058562432548824904641986660294125438078131252080375342802193214713033245154672829551823805108269179191490177555163653703764193748562049227124342780952223872353702045751409280786544827117306408953728904439091401856854241871867681624741275712731704415569048031453426603860062094830220212422245181746683196810032752675663144965797386496376151135031252085704772081762331758877596524887639041004220629621012560299117077182618440045052664205446694397598987163026590031293473805182242476205908569495333141928909596962643137014469812278568926950722539812990441167223615973016733771352194337823991369494766889421203858274230724972006432586150232149054472425844265659096424029742821760491379892644689045139147211211268446839515805927197184200209740350219165458750548481324348623341197113645970995372115649862181546588361783742253636797280095759123569167756028245861998930994918284251118849872632217177106678947954722010514951583063735274601671131930455133848287988130098308418770395069354062772421502704431111450847791345310082901210965823146843489820077968555448586757618578773440687645106966548371154865596851529514877053750878075527586448109499493511515770950774561113877088759689955669445069028297995902425308178167666010108587430984274607587827958984415179918035316911716242651187538238600396750020071003431850669264962574092006517078974640291444010786199281020607324396148865377385940839075371802777271201582240937593016202483276702216344573141934810015036442399634307025744922815528127419750729609850149814272427889326321623298896457802148385151885938772146127957412045914617479040224723543832309592283254889999157297862351154058629726418909298707281122177136551803047904433172558185043554570704302904221669734729907542644083715025778649262623205475885355825752431517323454637740726292332050526097323796045016397699913633152876742946839113679596468470739238660181335552954858459742250980528674031114794212126639272253022458345772829119560557283134878386789366930275338192735549074361358658518562618820045310595054239101591179956342638794784657670709123132975374747294516567539039859934766250900697287561694329888118662515142758090265432223830072194598557642624384947080334941885867671223675514223379540097838697181317150696910661475452646539689987037511491963736608055975848453086823403948120589414935657483351519201258834891403287267196542592922935180189107099765608513784177634652259841703971546514249415076373102752451666051996938720866789084574896594816748526412982710094220973533807185868290857901430791591364408437642056481362315411059968351510304379509904087046819602679337577962124103015294233829124694398019840404027295404938151694114159528967770408102730702138757537709183709153628460409742830677469808823701051031074044547275097088068491717808493136232637533133048459132206791620595271037587107025380590056772282260598618035313218751176588201952087437516369011012678122143061799607340667911538050311842193770242958294753725626789550553494790317463824540128758215986913002211742985948172661642977185306310384593692232266381400143709434864820923385318187032983993567331087714097385300577046017987695215144195659287015298693607275997042861636799841609033532455469202038987089064568729493228657429551529583265228113229983694845186715432205919292941570786995189993358639271805351267227250246714885389152818945240987487809662643976406273551990446729607486127483089780147434368321991557131437811707150437867746329580380066992207212835419406346820042232520495588504813052546647423288494816294999893295192710997572137384974032552553987902467207629701027101079040479357264510576798084515024158949978761936832583138003123239641952210576209955808677353246447824802340618306335634477489886409742401922303306802784644524973889443435002447978378757143030180539826486964185553078278837895280156119633669743410742030402574507858506482665070291350906228576100236565902100039852268371612537294512132131468597806585085789916775394158121147111732472969376248412950152491274002931581309552334945340333433375226693525618430669625678328964506224273250574984907570045086225206416841533602675599549667802046834924361352532548961057935442558942404476623843968478925599893217582532873707970418121287821562628786129699941644342853656128723387235498086547720506549386619670865978926365526002478889858259257273206662524454835919207796480003307396560446163054896495153634228604052546627520723866213907224781196197892532523493913794136034193166303999015568237795468648454083984810964689569456239016215211361208930676924518320528950390388845287096948008718393868391589167796078224084012675403573033760174399635110260462187510783623743344179889238611533306589528202419949782159615131564408394488616788875187489326289825988357733125186451509369098368366674391329266686504275174162013321479583259148559958801953676874238593158092349377566301083421972296942734596798910892366604879381391565489391549776808139498382995263872035080825433538376317458432590690315553607480564714629201221810848415543369180068099872388131032523945870400780956978601558608021644391497395680576452077916798427023907337287355718529057725090545153032498905566420196306189619941000783834859183263412663128563513842053317843759110276404674334861286330456322555502711486386045407129887682854410131005388325433690305866979939310097852227035631382934788471154196271605757073143290524508652764516902915993166816870648059546305797908751266380723840694099851559443104878050057790256900131445371031321292080758384905926881883547521579966484890239955412014095945967199035374517864958974411982454701432696131308408816363011011747666592379058584433732186303052737700616202697067124317120889924576275217330725151391806412905847807346404579728258296125741267389040846929410051187449772437944226422481169059483104152093624923876403748638399201984398761202535614211490636305484661521845837879487826843869768443332115090028442063570448319875185885457972168700315784974320569159436911126346258427904183306862490806612804120146490042922941902929623533151277746457153865675356664591077036755871038149115200885341487328672874471438976082112202401638327029915447316851399902809242509785167394502948695727322397339851957573124456410645228231499220334713116830526188828355058306077104208237881570074843444040442853706875503516217172296483157958080631801156509038681087778463029353167077506450268382430705569590139765460133381791997259535442685327949553572231911944797592337068878893094983959452809807919771601867743130891385917258959755786479052773010018173113636947132068963158640543752200028233834376934298160696030948351185422916144251085916283759639652949917536627031988092667768193033903140378785053223095838666229744756020950221329267289062977576796788060882052822567307189061155624814849080204959204167072201734985281922721864569395858530295747589352781170376069586735089735544472312347316681537754316434225777600137558766211972731648835674153403619627137129625492300775043462804526557388320308161618911840569434777827767719070360157503967162982305139805966139275668661416967819607003610622520319401712579821752986390371505274875895528625113953110852204125480399462055387468213350274317117680788698303926719213718627678769865387950426141263657516903464322194998892274380215715554636773131549505095866381984388404164303651032758472808799463965478323557282425182121065881344697411079426894313379326445712797764562488269277653612931790848329665492368698244123529532175374660280529848558006436699361581050128627857496713156962738728316379979773137536504619681266637528585534879129643366814978070295402273969295549844149751671405873840707921790745232925550022765019571073949646864856946388761505762672690381511946683154494425228283955616687671745921196189792485033191882101781028264352735589873819983896503562424285468514456776032388690681981983870044171638211150052108151473278953593521707331955347725528735555997700045804042476974505976831928746932380631734086433716467328208908149919157190813623818164300323065583985928747653212994803519322859678111788245167165990812791591013393109776681764241452569057436227594003182704608928553807633373328474943826743297545890683340641581338701429268557594521251515279014583882792785601173170773639541280823497510443053050476344121756135810888503864698328038948483692217969980559874973880457424583648993787567165918276198614343879052285250437084354239237217250134694732061243762243831612472584304966217443498844497550631042429501000957543837072874709238320506488389111172808425200986080831459593870072041591541222233662578527957547177648831460190691674778250837741264932810430612760347038910133011109573721105351088784369912642256710005054351408369736220540573484291581537884610005220750916955384555426192989385001226833525665461020734169017768789226367731248847679581717514906520338691499809003505836476436482046544717083580443466452959569734518072404376066821135052234062732355121867567712487613646474045211532160290927831512353703385468384463091691467437245445574792344069807768555067946010774538149948566796103761046078319932661387486914331302584897821000755735714289089714325986560468925758664425121096927722055572745634087395598134117169519363966833718683909176023708748791525095495104236960673190852482065612090386526903356336291637896639985755725662326308542063683374380311649939676539549834325522267448661933884103867675173614036097312529986125850353272639042560539328498112261644343307067228619879861158227523131190100021578002404602543973755649564782346970462345155890953658621065626176598407522906976827839666495653688415267596206602808487269357043573891314117468974447986533637023943555685841678043097118182582669814471791354973291844369291108211688700420261545361608502066563979538841699385960774492228155522768571186308804331444242940182025261127513025224732272927330152880601416274210483322758951380235730207814801701497875800397064772391840623363909711877191935222758196790466956952680908801206744702344245521632777610181337578496661828465634067347236902288238430852077675209805089119863514424472752708893982662322109611959727946149567200574517583086036750002175455160025098053550034577720233641869764086690725945169082140135491428646374203301564426953731288883778351449507698429525637829408330480136878541708429156229231660781003266975431480955240289736703450260984475044685118230238488036809742649742734118423996390513656893729401811322513879329206256053874054130541219575407548983668762031667412961961568464511174292797196186758126620702289307529298499026054355206661995703732779823790432809253265248052612041513357435322268903961159622721430080187386118558412611787185492979828936027332364298772753008557089702680689427909829037096596977185312053316962472174052477967572735373018570388287853515486615744655149824787095739145631391667121988318092954754651919525786345648842586078591968922642018895164939124577873633668323196021681947141103476916092065137539000911171105542812600601146123761463035253796456825703425984019997755939794571734823695083284081387290840803909828791086510353583804818997944031469361773740029526646894699357655874739383615510219536396756677352856640643215434455189572009812839782380298029834178769451263665185906609933137736719366439859321783138807335937081473961621920227980905671384324159383779243548846348638867881804470177205260877583311873903097212015484140695156323986094379784575643441712221417568320629726551684889731748292934972314751997956152598684020602346219543711093641732064957172993084974129884497654823285659722601548751484088319798491414881109691834319975404727397898328772808707470686083245433823658910177552728793060809414996622614696652918710314087218307635602656458888263122162725017894748065601141174908449027872513407467354314049682881204773614983643597771167909348066545287705032146221846680990371965125418558949908072113664570670871798527567958644423895870741368469201895047094879269464948792364023024780128711976327193136902675343072700196192373852614529558970533629369386746018502707891565500927041953851876840073421229991952100308964482485363510433980144104433269796199196206914957132136791900829432316102928675302160158148276670060729595302583566956940995467616302333108161073646258266021540711883301173577702891635044852248769637188691875897785672014314784296299041625251433096391827111867028648518961690771922475971972345382963059882088080181766312763057931999111780958660810840269623651778648815843334621039941641039467259305420383426721514419848813891575133187391217093192973092822478374005099934373760200317397740005483835658494984325524653684812009058606140927198849830680667126187705992064821033049074054851338158377899093113555622534797579124967446594153418432852667964660567213813522138124684222741593070974885182511725452457927328458004688188123859886152824960495221358504495673556228539549795512592929773827333436706283849407390043361543751331595832818267481691876290519760382277213507881155211966681073216598002125817843438058582171422195770114984332879900798609210867832268294576298001043141897863196021190942287770446073061955428621184525253656285200943133137096058818524865868191216294742904731995588145477795677056872249009363409998011129242389556900131568558027788697311081693859333890303333739013188679739088177782437385575440678487799812717248759321005703151844807203381357475139753844050700340410006814450414946517656788490621285234690554354743964432351271077390931884175475758545743773561807181540571557953324814121252089465742849663383625624433990428823133067131946879308173351614109420604260020904386729191403108396155108615409834283438956157999474394557638491832911897385566749726869080677219771308523051823717935356262463768057172980091478332815899385316658117784213782967393213531370529721345287553507226660086790938295799185206895541751167983130999133955270836981479440686992814322108036325903359268665367979981155824649676836172045285657774243700696740157447898340831861475601963360890188594844024543574761602810662827361469117970341622427501728412803982425733404730325770539998109091822113113177901426597196404359134695455013109255774321988868320745959469528616065330654674265365515477388367790278205444991458446231070535166347404077936348112719914347612652612179017876284862665800307140913400918512608782893396188033834329421195175738066656435829645886191369860739093776331515828723753756244445210272210755274427046692058548235347847769522997246765263447637070530016864404449510273285053519507915471401134552599226802515140516688335295254435816287478032229321973581721069417977195231191488568923177383073893532229597951038941270610132254705862114217829892727421037901599378725842104991384350558585462195858368029466317358410104405065028043500677643533464402232538760286724666237131173331409249489403996500401239296294697003675461762120207133494316402073870040514506688235373702914980645336042066975277393373261276834438621955502935593098370556802407005809176351639223853119457017313794496272495055034338073216245336225272860446753501251726196458800346566593114327669442711461800574341142184844574812131352316127397127461575244036034418380397079610573190538042620731687604932555951630880031261394991132362212994854716332382383216539325505041061619665626465054129346112729780032373032893091574645290903578739880768779682968578163985845914455969538058280073560338518329407812395012721623222941392579272814621415496029450993828662677232226606716918144648432243614195424253227208284217914666401378065555114731884072464597928485753697275661532273153774323582888359504227370023713825560177934625280812678716791839662447219033404634768528015465985476790435385503100776231118792758191263347724797550087196862043106989108664099803413643351571000603945090987812721279753789003895239014263052706975728696264496675337434183773937700164214935137160956162838603852205194236847311955405644264648171532825066875667111392648731611264391421312638510421006808692135766376254473597988626865937577576074879308339823831745329098136190549347398827875374559880275783873488171793325595565576591182646709315771676388782163633467174193169841214792507631822292750116499957163427032408025360220067911684301894466971273423310790886147974642625258258431246617254490360874020002224951973900715155821032398170690223883444678207598081278272088391492593169155350928876386518592859370169969550493915625243494135352309803807581200980250639286029182176083059704717221727762578423484961858608262326928767468065008550205549782124996429531326178580675906343313153579185745137144272718288489890702754614336163134472094608830139530012619209270583398001140452356151830006624052853307617705987167955875232845987739258488890152608955276598153629033422857652502910522675662119083007293846590313155839632081489415746242199380032780831090156855833438291387839833701674590307320905013456679002026980022254223644141476013676734172500046051994652012431766700581351950134151750182210919861735068943907617919326776110703244493664191771358438739641807096203419959149784146173337510733835309682566491687723865500367434026943203917708233954069317817427032001414691771705893394435972096216293796390446051111767984623563962676509484307406689579950226081270868227723604301460101549119228763415491423311008620374538357482874983549678740436477985320201337826308393746339166253657873112667025988227367716639725200584174497673436180443937350574947880120921501860598535085321778427548725381735111109810931936855687614075142247399634667302231300757044085439160574700353968973559758879238816933112518987544162641464183168553703367627547530279630055583165177213476791697405269851010639559185154772032721897945763641929918121988807073919173374900406420907934859098837347487459935605992419537193260341041863463638134601962634375057222207825355043269650952405403653717150764138827458514938068692508706062038541312530539559115267656724269564763267048096369951864115732875089366726466629481563971062307556841260268078329928101903830285074715160874624190730792826735629799360138159930950175366986890861014138422602084653229594930550231536007672638382479125609105285223198635401165628439693574664110466030659571655648247432591077483285304823001179703213358377343228315128542247266809489135846566708377223954603912132047702905828141337224061965771684747591419357505725509897992531195055209306249852607067206509788210499631412158942469008262323299748155737409726938860248849502215042787717376910156512398916487783616332064206952751422122664104301358146474827192675562014137857441886878019560036059654757762163009695466493639526025321763852175803789119835922677472964185619827137148407198951305142620713331320177805273182048888193316937920791565986758084674832022872117493969027348089172590138664161654895398209178842469013380995913658699753990080980937825781371773650175267813948818593599184257103843209650984362863428126965262693218539698718845201063386614833141373221972915772976306782794838575192824849665379085306756615758014364651809792046680549142364884382516924191834159391666606536578307035833137936691798398583458678209539268324191214988655561647750840277287191890455920385613097775036246282365669981687594398784347947644940311982219945853541210500211717086040883439582109825115588704102587093201049292476529294883284425161491967963926067133730202925785948180688697267263798011959533252853847014312084248358846171412921195194848985958802768771743390152648299576400302299213355860735675268797238264422072163505196558470891825531051724787262837484123220607220961078302670533771562186721866780060584464137459278276180197112907613865903218689148842324989706240738020029576108847747771173085804014901817083811541574797350757059838359207871977346407628480260537031698672798988803941715798135819015758175962775933099127117312689443690085109227285475832393329613551759205334070588530134325669742024493033762992624136760560031859328428576469707192431741322547261088863831110208186277343156236381608714613134431018774956062756936915541059941290593430715547721652983566975170381485944223734847301317737926417351524109627350966092754903322807719850106464392010517071826931950226257622375994470608174652962911763880006000531261671753961502905904110722256226443224362200020097092316190973573728403602934634109057408552070712146173172344735148279740614020151317819471790390586098709096905177185985646569815167439109005851281114860530169156482218251894526372506123719859141534397827557894414840657509662726847150186261588626580374445636737311184133971705458006732185827874168701527514889031083663556585648321331020476057365705120763925313164204466498046810800508388679498892788425034175257337420093460546797628920473203996973096380398094107574399672969482306621748544595880097370054847322908484869115577945441190494033616864039989962850233593644516232410989001241215199163887315505142105622004400664396226053681549074439680062589170694201693875882829721298821995706135169793902292388080631617435275434020943503779988371701407028880481174185858259546212491559578461313961478798987655326657234410682794414246143315820590733682019520455322444311286835810794570253939926122234246940275329840083504355566890302642664130341362838313750966525160978612977196269016237221858616602547174732153288777812059531825214284269139807719087391616952955893707585840468956423689484772615707419662863413564505229642408601567246279927445075323740184250689136533472960553025883842392923042127228579836872695318898415450613604790351337000323184399050706090863735784464535888718859147518256685657126291005341340485598116441300946819695519879849157972839627055526640917510507102827749052462241431548202474301743600395139506508852625300635671562747178732116769693965635036980379428909141756074752557459321496153219017426342591311613383414389418118924465702809661314778055056702668970239621105763756540851838800258644285299938965635533073679851730306696037883183171403913172652859095873114322006330421178851718123322902919008305679216826454918758857451631928264556179239900908645945037929892422889258900471174016714667531431468687140378455096729175266934633882100518668838845751848238063723647495001036463405131199773238720844851046451115813222707290878953336660252894342653181201982912786872441690574132849140417428273242169720763271035700722137242672435535510188956843275648251144520273658322577240704855282339658623812082944278503944082484541907789716536830111063067927246952546980815791647100461841856710773914258741529763898469239838294676857464058560668997528552814154776862976111905726672061277798676914469395538226107827902916584536573234587240831679639860873725854311525007285123299442162061803511710495764650810464994446730362976942001178213270741634982428551896633599948353562479309901016102349810509123753436050211418518332099829514987153076006567181195550363211701022036390200155747540522470349318482619817158032629337470208409859839044561270081778886829912947617772377498794439055112723334632828449589210063379748639286869430750013939078822588883029025689933457055192236795032587189193096403886658080343391047945771756480609760896730674688208599895216757663200869589937830507090609642446765833126870237221423618561377860278508421524237632056901304103924105213128542892013778951930650685451158513162261491184853489168276332838425893661779887164001538293720889304333617717501989491094367743185621439538441890547084645310393270686674277551907290647856710783621182352565170979218525359889210048798489943637272600796185696386067032507909936758330658315141216836996706890988515410796299704443415030089182124946776548042059923011244444545572257911637569269136139765441205169058593711442325535771146939644715356654208019180174047786382134357874705549674699386741313834449594517007457600900782380561453791234682104691808016713696530537107270005143454885989729495368815822979464910777261586195876310383411210986432294645011681168848908581543601535852746237008290091975826929491101698125622743383919303028628875345366821656282878102184433615513593987856113018093048342131548140354512625963762514918585744554722807594277336818203784452732124482168297525187703829443263728412794785502131261725148258730361274568411412927877672150157927259259522771681275608174432083441441888707758384437090160305051867813931480337622395696850558099701194602056752864356543646614466776328229066494803015886335589083056447501433141435576886003649736444653554726147159319238555775371827317150314885392647951055444136896093856766253338733288985410443259536532865368995179262472368796756568305362139905087760708887680768380521023092885378882541626709859276396348126562485144504050819421926693690561873350792973660891611926006880802044642082297757580154469022684333383546952981613835748259054619628476842136959807349957979488099037017870438068083465870479644903339754200454756782297842258814317493555307217533112830057713228565383800756682659113948219944962600619912529287273703973741302585117879534689502702670595316878587331660557086905539234045835049790483086966793694728579139479905184688950221409273141925669121157190029827082723457670458399218530939201090780737213797073099734935739500460651604132575794081775939825037572950700760109269771775813566608447670167775611050379808398925368709311725389820835586812758683685987782984222224782781987945658742420903982387407539912389888015237203157141437877351553203730911630962554928027031235589276731808704747267221986093769949078947773341817863511342273570631812935061441498059634743958436611130521717395755447389269272218474753754310730523389709820750070335517698152109680715294676359845622135188495644892679392228724340814826570241375906453920320567256024689087929355761150061711567349061608046752595160361973854706533330893861800818891475859793138844537904842655208675600865003478937312336659970829685261089815615147909362354141713726819634656476888156062797693697466959327076025835572524914755309700435167965375968087914303392456921845418671643240156128901944009295693747969767055613833725413403453121791180166770682681232528001402279892099468098499558282191259240928756142623348655237271013939905732350592911925683412584226355672354365969200219793988291294905783881824771491866867537470127136711993583193693655434282386755781190054626513204398956045989996616428513268216229384615600794409141448221155445737104287575273957230790289472337800627639856983731299385803073713320854998577345872116942089135422879372791061853562170073004177945688964565395611180482758949321319575377305778010587169784266981238370943165985823607100131653339352284532121063880623210442072432900810469504535368565616350366090889651194700516208283735741225854249966165638411034656939496237034957599066525686475305221265631584176448044720776619697702590700654261641950307166050334601760140564904908970423424678166581034047904088627338826763884413125825455715520579473912053087462848020465398398884686350317001159460969286031843096720387298022532386126859372391177336162571348168358607010934194448650030853638874012234208375052021949215153553681484974350748933612522666205437636832685692494796785954242098059035152857645886391789446140212672592643963803062353659360037586679831714847084782110140161181275484513661666889711088245074091359078471942910855194978358902350459620301065890917214886221200189462327630628352575480816014957825439632970552526059281938165918841763276825505442435510610764698469978426476186581730633913883212719923842562498163851380728374479626773339813784338254317512551197939243750024119775300833379771367689841831753141673892219166194092879256586356338100861490881594131735682210502955844729998330223798227266700477958446973156324626199608684862704907417226164333882281382298704946050930871956397820315809180840855189943952997468298931640501847925141506783142265533463441782939474872681812363645024059792807853330646330607531879261557589765646547833888100912549901456190646075561408610764393899625151831915719895150450871324943920293625675116348120657300646367321873316821261262753969720788499459421581624043231143852351425542092258583130783274464001695759303499531734082276493231045911941282261561996839549308043619521898171394152195898916807687715606955516994388550856863589401583734470370223182295304479628476364240728563432163115660227679840358898818285206120406062693753177800078675015788588545822089662256352160933180176477888974774401711827226568180242328557343138321123418617618127162704562801573438937476548494477136572476373819329751148489943660027641194743287316043198249108297076532072964762988814236846464956388532474760238796410718591176466919762939027249030555900478723365878967200566608829907945491457941833376334296297118354301614520393494704464829789343872745966987615435541409447825209159586778629574328496323950347506281221752637109431348089757977041804623117554868930302731343259666929105871485988182705429936172007069490058208019073708533779557950157852596237960911415554172130367210148538456174124865300492931125524538893500661901599493632979239435933778874788221384663451516671866852025296460695604033092735325200107742193034754508521221830605838771677987754883842087503125737061938417617295939412010368584373559231235077255979107987268639400559013524122678209384053916197429929080886196068292425900438735526046928567597593942378659754859104962680869085326379568950507452098334450444940774042718530441889828297594623922820528302257026637213406112598621816990950648732969591280681520090134745596291822032127675649486030363146354085301026446068462575866768893825753027695479172370746906774682571398910752613406640268633791270656068344775372831568960863323590143373956328156922583706534157310758312457694227176372975815631362542434362316056379869010595146644353530365379707518730925159471904604070119176728755810963561096807754696442521095311578365343152896905584215113925711054670858894541883270071201463110829841480392669841023587005071065967846486024387974051879214011577414914953172093520068989365533831917986163862481750269642296752669435463140522377569124624835699346012254060539648639169434928169779987660780388675380117794152500164187992829240850461547291002955798585450009522761806051695901667939976795685683709805869865371502840888087679072062923316536046681497770010329006611320884300310640669997595387200030345050319405725692632897289940380537752052602976358117533358376590479468600374025564933467962575329181171852907157069789255236075570893348588617585741414076068963797653839805372736685018142259374119028094943784304781199591629782150596267385031015344655190470264327561450999316711533503495889888239884659095533302368498865716855110660128954086278016694351863558129309488117312747110922909043071078695764089627785808443380276549136863805725719128007167659091650779304862193254716048392782449990276273463068282904168235162727047432965297425290709785625985008277058215171806050408922976858764568935423202649975685239351546321868499511501124966381706210715704467565361082376752939799127895148071496174710793663226046093898798879058109955306209945857342050271836699180545909892889453224183234208330382095796977078663365203486831595795588999058945547053482669029793425412859181346672335308690706104482806497464243292174243003855315926004337389744148660133925751129566696151667814669896987364774682468716466648414823315288905842770251161372807456931339046676408773723171973328133872843048879782973763507012177229406540892311998747416724089836986149867807866307082131720215728922714726005590016533513281130278629787283317065676091989479877812615467049348408563678050318127268400867581100527940727913373964706327456482963793799021564351926783298639858617141100783553368666566775139153637919399178866923522989462774713663204155997026821440585406315845621031976443777426199596823697178688979060257773774178969603207225676040592879009919035880591031037185579694709926720059691195420309205900418415187191553325347319498163764275024749954635052102244072763375481858703301130171988705201310275121342232664468123991802862275521159696737197902114186358406420083560549089060785305379058138610756360667961512964584700016308355024055804946794834639682214676144675852291493270181993421035452353370894134551710602693636077374235689932606066928857222907681878078090455828455693736247014494892528846693270727637076998932767468511812419424716395773007500440975840649158769556173069443374070584014623087226391711649609905421093585667751708012953015740510738307111149128364871780292408317372612985737124515688109213077040196785675850715698937799639779651736262341851993787510186227754353268281929479409443417770283939109845152672067813329093603825142242992451774201281483637385382951713400125689203677891225576556883280386399244669322106968047772112764029598790893176495557235092190052282012384112828119282036949444083143349179252151095483179504465975728870408443551032949556800113412131117373888034867944628874178524894958201520661018304780218625423668656110877499517116735061321834388053677156277688345207575362491177091295618020527868462962236025503541226993251012901008140721243296279233442935613705818928013742512295398436604020304749929557213006716350982333928320101290097047154701320256101449567243142391982018143579859066613419833926782808108646283866170228974533924718531255736895412067012327997457051677497227830102100473195838791386790048843834503702147141229003151605132753362546749430536991130296330818080228845030284411584779898018067883317734695862723103701390509386845730304750306932120260359785015964016054388890178323122265725034239397006143016893188768950671378606012123248954645234554240902943493273991935519124086218972023207122445935779695611805022414644758482959940413937329399994185244382405131295334226791278278221265116767632648154784113127724463659830464101675145416840314813944367367316607453093219214925542945657858555116423745826207380877366578912652630491025918793317126256603174862260888589410399818131477526190059861337457027172879042542874216840284862449361594321892399912821897381655917826798285129529229267610522142955678641640603854676747496581731890749698526954098204009938095982552646345750400701929542892014511503804251407481424998848749510364654836040543724444349919311708114868228415054657529482955909795079743723572460824861616645160891346518338257608069644173697875537944115330828209618226155585143450247659592093036799093500028887136137010887991036185871597634187211260179228038611534964851576881500023470993890319990506762090673160544350028978590803993935160111577775868265735291030135778971920359468303119399242486606391912851061782556372502733405385847599201697331701399854250692277803014342727198294901552081839925324716227503594487741864512864410123759024615336064036090435876486896947566281416344664269523480675416175191395214988311498510640360981351939593431705713599374142806595565304316882309827711786169645058750068977502275481026152130399154154462098243234728746332040109298260008396843667784822974865143067256225937066668680380041843343097812700141057343945128234132604606768557787595130749442772529598936437169243271264862866140541207784341717396671735443448940263704940632944458080649268805928127905635409418269863045926556781590434623087097072746353089365523623264809282348528428605024092198736994267383251168139425909628199094246671964921249658784883218109766400842374303531626311276302406946289515447192703244275895838725848238834673867738290782406636210712605469154680020472222205090633924047660162445086923044767179632874472207657667066076807633122705010418029025482793115895208823961304008680360196391483792547858687519175943230159032103201858829795581922776222908177103948493518506860719293904823348335320930826681699058691442789754796559979019192092091370086339737507919373105477340355098838347446548112769640622246057889385004393591619114145304385675830237880350127820396986132797427346675625076588035548076239674345877296456628928605978074342542030252166526491468995305897628448159804711444904246155559886924779366394529022992603573252427175974981332015144956369174093383022455819167615242572894669212219311202368638683768117313862752031269306892898172661810492462186130473256341592623269040570142817019313805144292942806313869024533888545694795741276027197068465155393741646856576943387441519346332280574969544785039435956111104324795366364945999810086745480191320873241321979058810295551167341412138817509931000858204022489442707178354540063279920990527167453198409486368762317167131920419961434972101853226376667465725232624537724872134359981325923535616841890988205354751440787169464288894134756673270373333094038034802979889205400415132650638456846167377354814361646908442805962509908954809512182395941475602660234219032625546478245605424193850107907694728984080758198212346522674239588082071410895820596185609210439621393872064145198845923312246152861752035418234945286932142573073328203314209201274802675178011479637300805551068176753345176534908666681430114251360248941120051727667151367652118687808888615754609468341399528909520574856069183469835755899736004308028297772169494386191268423130548145130947094720237814447373892912058452514173560422042770896503105446727845112383539497644193306694524463085983043446912640888542695307492062739211852646255409483712759983204818498642809602664106665160383504239023631732185690722711972516691311142064028733762477619075513841400916751704723976987460971006660906423222742922534659052862751126743518154197544614384682893049724542710710564178912896908682877818871133183283048362152365973409205772224838038508453352768096462518609080178765505282727015693927175719500243643747181071046413158329263899168453478336287153934222391041986265815823574719854890664879488029028628906438630950136388514085919599131006211562199796099889200160836821803034706749760903684616646021434316725529893387015578921297262740399746381869302040643026932878553234398226477410841480399845890855967079463712541453137891915074000925935893487980379779012796386854000840042813568610171041068884723312482679900515462343549159883774900078964235637069837300116828156290006574744508451131165133438590790691154672174163649989229890894585438537360920205540471937537989920756507914273714347278222777762224773142822089998364831695616047070908149136952394978077452636365173735917881452887723538694800282169776333983085537740241777794546320677965822174698519094919044648982867226154082049608553885097531635868363004364374877958865709939503122579801982569256187066216107265756793959586869035310924466732504595122514541117781738376606415171798078940080445473256376139164447572655591370001327689088393594162872578871721652985617847034054963247890317395776485719045232616862372367430015599059375271729206120514891697819810654421785935237670154558044672902119252737217275684820522334928376615496451520665620212724429780687572791649039289471155576176918916386715776173288640930732077093375718245346218655929303675315714668003078090171258788063474913532508138565474437142649835703762950449348299582790472542548842481275005120536252659428239718153563510052990153610904676599040995007050464980576130369742678756653020620678225805443005379132186570108496909898111568279325829579822069366404328756767153706301819075499878212161541874563734998224504931006483084976711356106459499038707027962247588970643532370431622616671644168360997109721345857450480445100505754435786382820632028095280052355952090273862701072579999314791609878196377036988549757113049240368880615988273116930140348847767333670801931968157753079945976776295845157267332878104631058915792656396191659135903527123405309106943967555140218036417353053412736149562547193655257921571838721541121095061136688595518828370142969199308625056408023351939235373355654474427727826898315259080653467180633240672139854284286730905978292813546851344816296712841106935768286040709601861680102061961768150034969970474587829740873035568569655698333699981826888506919571949629253668997081263607380253501493592683656825263311283322067502530263793234644015599925463289465201724263709881906523560021591735826309826283883322492032346977914674624314106665558378110718549264684539640905930378465419080856607683245393090838524962711600982377837971834667714212871344227313617184284712283404446556040300074287673823693209954202451963487088138829589424717892656348949255627943663199920217577379077010826949490598747921494342812183748073998650716442287749846526057681230014700864994562128803166059632952663859313174880754825030144075096283540390577857755531915202510419961257220937658635767226780402279682139722101505801447848576540329092069282316052724781757604474152207814971701851943665822255806149813313563221913023815098985992716428654488135955579195227232239355160632720040297728597878507861509781341583757832377699985178330289654996685879048520701379022928604898176519725392988759887392742663971569778249975056795515853192233039927920205557245188005250539329171221503443428392671765730177703156871028379269425711366182121734784135176949750899203267535318332419304386748893500865340814836768044949941688480161333793124541047668077295324775891344023614809455767755552513140352930358013052969362613881639727856037834810417578769552997502153838127306228255573675778962102632758148268449195152066902698533596639687142043281005640762688871035298798454006715295326402133524803619843809588353917860154846999262308297018049754480793322784898237585894799434588410707345613454125475609788037612321989119942039013924823576651225864110360970285241861135045594173358749658323213062811592289202123536262009862398174264490068313230071915658060474639208247906008760841835057066011736001262733903983893696281571964854765046146773128311309945731574978131951815897919999207501245710303409404126535182951543378372915518708735006379360638622499432879017173032673725789130340489429458237889587075739542645324702433929537642278492784266111698587068626276387495435771312569136611298546728103703479213497568590856545488785745634321679950721036307339836846955004440414716989012565222005217896724909831293651877910577265186704471040850618628306365079932969227984670685880709243972279902656168665504347798981569664371951974601435106968633276540900228902586969551317260534584925735926112848521615810063821234027665440130108640452334696094395806156145632773200926288714968187312683293349896347682706006501381338545218432935590717154308545050833400846919181890492691997114253646873085476878795970376929068668481557657577529809754375864321837632199927233980669305125356334526869838068527006946424720862363865273340333136766371190347082427450771996721196059922490819414733764008241422492989929902434872603251300362059460200236804345689347387460617124863397100548677849161288186249558817251298739026649088664349024891459946877140746189197324232249382708535881169404752143089588013184572531413031289945877844944204519948497649961853724621361654463368568765256840106498636364132493222826158613010052153489606572713388634187570014854830120628048600467925019010807526783836310085040511120520016510909442731202596735296317636530292297135272869784869244142002130125268551287704258547677692860296198722739495686434193205776016377524613314099589265356993600938108258678465809362137138949020510259058274544586706465918427143079718846341179657023029724142085713857762216885506327719677759467113392162894475893852552352099455644326825981277143512207592193555823323719038392789349392752953386303953427585112917648833715256177036395922170359824826193029438528404561381123661554410307280094480158535051669378186717103493931887931576878960606291407894200768338930513918530091162021136034198004787623598956194239587575924017927654534180324380212490346846666880357034639430599484464972804933842350902294464734518739072371401730821151331927010446781704649594867723864708505218637566586203052527809459819135339527672676077446490186210324922161383804939291809548368417439765683073832192457048190342542438777470188241258309754178604836917983849689376844899414912753456483676633618425315116267696978919416204022367815331527487283422017308938857796790031691773486478852731235551520647882924146584047748353599627017531054006627955452061349060561840542392893157085458068754183240787689311335387643249830878490517601544594919510462402018007533269319608352779952820760550879900260927832275543583241474933963473470529722033460771402710253452162803885969902807483249683035258983255475455091674200513364588657306523990007360842691964282765957314763388266345728491916533012043949566067363792821406245367206287249113067390663128952990992532471285191898617184108519249487993140543053328325837604841162889765752002295746907640630386897598844925578990125899507368959504665485648570222322760195923935863886349740805394081068602291177613266602610287473158727234857971453544235248817726859500875782777014165042322544352263352170883878110916427490377773870919318553332518394815241901831280680200833931956759150502691820908995040312624691588528842550716891224215342587076813572049417847987487515500630540040607687063960876975558738274187128239481999472808893239763773490177488004487263138193539952076757465655143863330136130382415457265590623739157533001975903801443242180732683137250178764942119604932700268291587203499887170871805039198100480599929732421548407675218552337600366900110448126691661868605663267842386730961687902967793140761993269841978743431449170418965778366255937442318380373939635554804478238336619445535388693829862285870324355566667867154834793722362005867923083932286718621261668569783500508725733552982107926342730073539695006781230524130652294270283284249333719180786789531814838802154311861519537148744079941721834523252915577707334470823858870606548285521050583979360657467520924597066779582838612117943628664711886864094196531639491310573356641555908352753775464465731813717848294399439620436245314993378859125005553433690871407897783982633593436019692511994395655678621643888601262038723138850414138675418757756310869808020007848497886231187049050199395695409136633265887038259058250239856852278399287052771974962829435090269081079834100267362944391718900954079242863721273375099359483685300117249577549261147011547103223880292234208726124482897534783582286481837665066719995766564802885907533739867723151912885582709500182261434406432186323742327235684850373631956714539447228520732253919546463832721299337176087839789231610611356996124695186280356234462338926850558954724645549484198182472457769009527866748766578855816278641879439651828904147171111326535610633543172772235185110278451247809510074832983319950113196032073726298575374307877964140727840602191828105661443455790207644598221135315662078849707671959318215341792323406797179477157492113475610758166814943014196270911552047947482342466480486626802410912930044612732792336086029532232202962476889270306620138100768950639850025347187025419560579380542440858899949271371016000941852427367395756645318911369844966138459439210796556819876794345505526007253130910749869605667946319704396504390262590894745599477338326885007537310854637241920208936658981401694149697896555965938739035022753859079405709372648014544179137088520127185069360086605223000964924058405519489992573968387259085788571716014599354519251672837982287139253119947822670611158131512467058333475263369445588258021586554975855229220518337280480670706536422542393096451293405080049443536146516288493394000580257865669949701323482140792069802673282882808518508220764588813349084867693697033397750216237465520821721050479942445024742874775213874591197205125200163013517923158347799912706429361001593102694004604317825240241828728756270895859536358001332439082312011921809130310183612057270938472319075525722369487522095460257552403117789133108744843815240470717470100847994339298257917439545638705668123451556661871728325281264788210583581141629774975483966762470668185072023465402673700378373411765186535344832557174779138055011896279059083933078184084741945515872176054082724462281245219579897739515875435351811709979757711217790242753243947238332030732330104370674679606259957857664078222377774252545697965739688155096790013891596302736065061178751878463346770405617129828043125082689994000399216547962587308477327963827327914964580503213121605977068377879511674607649385976622060502336137110710115087796304566250904745740851323186637181536261877176965407427135722733992963783446178783937822495666359580665634340432939669382312096844988823267210479362075316253174443528806667557032329416194870922813263913838492886099745495620175694811954157932940993959095665034268025051262466451671636806938550697310803280432499384567788198073032861974790041114074686484002918451259582586921107890967937947899307825214684116350969486428679050453471850335251770675138180693327091333308164620693618746958847522402938713101474865191051089323928509689285618627200902335448046506458207261894221286644104872816866575338661530552304799679738932312601356666436656511244937231580377509733246984684012437411149897928379587201794661191183411699057506035299837212666968511080046115845959938177242389523185572034284301082317058781035536893344116390430129957010236484344352890246253654119489385456088570165691650430627579319712835605245328426687252372289554824238727733488127017563267826388510061425607894194336223378131144914614390859820494205276542865354194387809234417184687474574783035680668431239900542849859349843863942283431848514556358239700022994711722265486511555925945486198101440204049506951183780430198416442687862207812287584196642616713962489101717807915302398411459000987929405871596031268871933748710503431369069519152955551776638294516523053366824821883005354939610737433024306015038246995068180019182653650496615121105826005677035167257937989373352468733209425963284516894268239707604991720449805516861321773238679352898565880555778331565100555040203329787708508839417126870058571352163924511868253107478126876355085697512116222921897449836171748007463029114460923265369822302014702593203971602509466367973723022824053502723448803479301893462569905562719193380786116155059998441897624893674992329217840536348806794655736275291576733514793567979261693159519793929786567684662310977505887081398905345738720486418761085647940701741134979100621224518092041029988674059327940428579938495155013435596637732973412138333821813950361011143831542676126833392249433654307927164457303039557541954306308585796950809915310580237423743092144475161338483128546718646263864792858376729445378358484680631664326811841872483029007195834045744534319282398600368399454612595568826639882573260537103203472216840760991357056323158888031468961126051962189752918079602376628248442974073537323223786725562553529950178677105018655986007710400934391749249776194430242789494527556955645629883049507245233978958003159595326491680535081223582990810433829213637935499116638423605603557209349133973896984351745470236522193316749413133490527458650511512500221447617620027721796321068676453920725111453455697108121673006528404621941895340890278158340610218035459677981650913245461909546060972087814744980500405505755778388804321864779380166247830087735183186833674247395424138455579858952348497934627048249967349957074588144982067459962156225483077159845004061142760603834552448964070841173391198083776061087628552077484176928715365539757671565159887654287450217040533281180180132178708561251480573887929949775142694027727320428181891707330725780789490017762498166906220601400260893120327969391767989599756207927834004934061689036350854247821546909665021223357123477106757402954301571582410772035657895115332752466148740517469653532760562006707687547419748016989263780022101183837207228646201179949862497389493566522587915993702215358392136865352823195378182814832922277530895175825681849315911834817048559831943658906753915852072628578189952105097702212299443871627193417253280272736940959662280756799294165188392844378460451111368877163365866998077630512593095564961450112604496041695820821150592247994724163498260400267649625972570935614320235170299559158695748243776401019836372711014223195074187481139505999666626263774707634577250763135562084086191330466792204994982937553853473634343920183309341718196501388786574486708866984063933508139577509072964189198822672712673002403731562492271195713166030432844320597465506020906342920065936817303157352794217145247920396157047687532938876565118471383602881602650950872944014342978321731301446979144674662915042604590790752263793543531423592950418702110114733928924723145766190973382637162817564167590891693179103111026026250108606608296253635497612593863435981971746565721984093536665671610652569113966715450617271734025690169186787802661694576001589288588294934494948622145568999975865146083514518001313823676904455143050492427953252073811464909997366399358541702471323647240996684860147924500926875312777773839307729792703940640195754038117919114806548714684092375837684287814007886323072918749087969270211910844907106050592402266052621806264966990055984120196712846578172900943012731595631432869237552397515518288868803023984274651352304609178039685272831081688848382924676868040584953654479673347857071084710776865520383873464248883377262454905828411884414046102948261248471669043824965637039533994804668429262397488892142957429703897973680957410994741728076554861197336170850828603283441112803803756377824626075596430561502243306159442787924721252011123484925954720593252856713072201529564198411520205661963418069283239133263061732482211879795246792353237469627458297314731930233564588009528451317461827759426227622150025257098905148992427554262033524650901589801878826490137021880931766721369536972858864588103326797924518116384006878046606398034793540272277279961289342736781856135618201479548984951701579859775917248015957605711332340736450979794014360734744244904771108406444411709881355209467856696393075047931301332296507067662812036070796481699747270116281395569478724275722553698893225085433836964299310960814287657112422682691177498369083736647021873292618189187402285431906577325580074569310645855047311135097107713407728169046330117555868401092567725193569588135968217192265699377180529413208588884933583398656789333907198961888526031379178209161766858338155855402546895330982774767747502089709377907977900544214224187499216770739013210425866731937307165423620938291063823007729898233384346663475756850010154365110214541844213776170280572785913040939407894050792884626968421240196643734224491766510005335931474840703162076795992535835852571138069755355518115301544138125307599113309887729804076479433007355014345069189705811593585575370832922449292354546621585122199378753962490845458355451977887612434646925779165468637019883785554546531953895491522578988164905643723093182559242979798693661789443395087471599553485466489031980985630987351361916100419276165932534997386581726226442093877633840594812270815192938566718054285795915572013719667470717300774731246152423716258146180232089132255940310683766104695800254081393638926834668657871140781347779303800364048117132863484408837330482448454999962697779954896276209056140783307989290233555948738193886035099647118943098549642995327815519434522722340219407186149292187319156303603807759943142679639410521359500694200560573978974744774927608880939993917140508457655031870591761305141893082949212861380546327098906086043118467907324721633591042139537449340980794350034614922942301234788850900018197907854003559958779203026743299899182460829716028980912567502467868663814708304122822525113551998649803109013390212705861658012498469265169629902397031764374449330806487541891735574866031038065340018377814722359020547015023831976256113849466746700235153380908794692217670026274529735027745419356703189234500620788923684234965618257995364451813823029386996904522707312435950809013751188262298531503230649955994214917011299119655946707403437337697115943189402054403818237307167886891235735700885420697808477808616589245460189588102752334972189143356046661317438107443849941192942769984387500728735810817313229565617702851414438433318521995633992175741170421643352405399253561411491580134634759424977176900545554399352054268210835554079732803325674436993837774597170631735723398411322112624003972906849262007564596432013118262570361319486771481080471008373635416218795570052240189735289378685150193258138525306090647026637646589668587622446699782811363162573844436802078497392624809563238555692400359113059827577949925995371035233702669778750452803180992706597838054955992157654181038292681074102272033144818963581742137062612878400418022593887951083511417727759669236469122264549521443256259140602268362742362380053732966697002453798358411750826903834100636450350347474398208271426802183932951227789327856843187698647526165790153213376977801420838243833208114108601302231788458042239604822025506477038592786554666445043774973055146934306614077580745249846866427519542475550876772024454684506572055605792642536763075200199615489982594245168519502069171117338111832907307720750284879915614514240677911513429283289012151440491730885179969893991214875863795912854411225512745101515712454725648614316968217276683066758768189615551484987379523507559075547949694708900637842930521764209499691493322136280480705683468821504287178601129062053370544144933105883532979588221070833431749338689694309856951399280779490889052773225142072284280627431893564884058299908634709430275357770982295409421841316857465378304343675191632539611707961521010421993275120081760610947453513420783768257106800653284161019203206479059748942071018573389517027975365245739288842817227062406313078518356160283857769919903598077444762854829712768281608195883247564917701046842027595423171248991491838080913862038524040596177192662595982253134754552287471303032831556246981261981314585839338800669135147964839941944996044086785525104795264758940612578624331835444214146152794890898266667262107143307347087136164347466471631692329875285076998251463663719809855433496679778234811294225491628166798396664564090992405400401620451968708353427851935745096605411152944860981327425176740298211595982199844168659875149181056750599673231971005853389248832005547699447244109030716643126072324320668320296050554610121216208290105109146347796564370805425772831074131248958159863081661894436788125861524251319117761804352722537457769105042383027664196397531436759332121621564058604476560495995991240871976449042872774842573525896144129978721976244395727602648005576382485021263358133640813016618876196423203141685354079062623652292595319980252049737809317041274808324369479362119373410536020415607238429908566581392404149189580527830538400223634274262318060946881802772416871297960322303948327917760943728856768159407746403902805168166017457120885572819169712956599063919702254993212765397742287747455349265252251996489494444505859540858263090508270360073471215320666147376956634281234603883407864519561010594622516811093288366506822314311808360585801026642298838060639466824748228203668768218753871363391696036428021395608288719355161761986007853681215681648409565584626547458169850057166707526846712953824716858896421758246771553553642783250082214423817709630242276100083565253183355906059073418647151274214480038012209744167688968842171800616880416155735275697709040941831633419228628692933403523843205453858739119331646644094689805905355848892382692187767493988325673278076723766186563283267689973456107653369493137235837018447242784950190119215715961447148821319892932239427867588078643630382498699497562622261187353467746933593879319127788207395199197250587481590865940001646117239348866017954894320634206439285387088637251059345116389183641757994795357234397565679682221081937373730540232444582774408925062797921057914033842360079716750133461738456570402778121292982740034853400150251787500114038090140375521593058607385904556587950359712289381952836505445421891505502514345693984933409503100989850441185230571398973070030075702005139174439823334719886921129471569415593906796612737056764596434398531721795661024988851405684257156064097847563143877977966432327680442078479742536477113127680423707682727184197520689438984166118805590881211500935325476807427712601873612416600781345783976008919260272422207880001743671257821070873857338256834083270288986999408350131470974072404293463877681676570278255121593552314709177337963422749056924721403652847185698875388205203066080119994668183030784363163890728694104148031324771727014249252768481121457607832553283337379840963636233059049345217261902419344797813325862564296960564403368234644123969461684239895562128720295276700999339807050845790500947704176759144146773478378838120579640695699680301426283696174661908481470020834115104881184190351921609135136155223446360871270557226077566058382202749007132537702757194728464943901801575953581238377293032929245993451328580677542616636021453901391244779827747692030156214847009171128952668705501125333870902120391062028836483459167911400400380530695112396151550849485934373811628895067221779122511618750263801528674711087988388709206489285321034571765987537564340943466925227531519551903555322410316244181407165754981666209198932422969949264913949644315120155917035465052709807753102179701773902045774706942078988666298999510028490195317885679551424656891647727092064054134999454061744258667903949105263727065339917913735883337031589900494019431230400606873460951769273504800002195258231025133050038450145964635475266079657722374085955862973177728906184117556469305404942501348508596724516926779458551897336682185371693995173877685481001623918473943934781873193249729011257096370492670759666819041404022881903814759822265754381764181682476248001943905202399122739580249922608842886130827540548904470033380295590724648750304959672373410170855426550165717685573011034098386056287779238721366900649575580715010191890716368558657631069645850953119438589506543536821710988425158482627397399811864029342267063538208610399170951361494983933301019483271801339171579731229023515678672712565036387385489596134578585497832836308779241212061489307670859803452517581288597094068846754386889618329873544927397570463916910930310858055092292498572355701708157867436633439164169297034810036551970131676900440997681741196683567989462551702653774876985870349364184033020908938603299936054118785335920728806013679038630534408540800512255788657568701549514771430898501708764744825269173754855897600306559170832385079764862405145892053787144714877140477792406022929440975366880277754207651903111503861692431902879386169985267542908118349341222285145436993525966937853748896715412661838865363344534629909567822154544454120014250279380274593126103544476984356887934470765265245277094445415470035237409720196048491016392731588634901939545421358658652482501519252468454293781544905141090350071352540790981947825421248667166649437744600025220423032759957016799059045123892448977123153390211405510693806944419978210575215299153706098904178564622402570003255037216179580472286095941896756487606142428910487645633809337771570635689539370843012420778859754445148599829238885837656516187732188100285259354703107266065076837054005800286174564850131974126578008150262020468640822344497049238927546688158927880080526198654788087466590200498038114969774300605314080980668062081954372484601029091374945971183333489212773664456480533919937335657629723975986705091335597060468983219326783004366016838822983503636488585906223996354690437807685983347339176730313049126969595652394059105273410767997420184369614494931361420420853821444512355892583810695535560939916720191155609643361468436103988733509136054713450908509418338901635207425128629673312931776679879268454730385838691420986119540405582120673012181873069117524241603585926143272837762453618652277915261371602406280583199913612084952255347257321072835207364225150783685178254642145312154270169361968741066796184290088720890317081561069386222491972139237685987035736127172823216089170253876181733405274234781490973199560685418731892615521397198735369559320628871062228998755358021260993604839289517295153775208053357727111201615950717307426471064406657691377774900559910021637555429729393801719635561150544899752446060257516698538792785752990715527165148349810658355733124461593027534217923075992401888380505739893388653420703513377541061300771738498505571207564550397715558424309109671245050640034217487687692128737446159661829750071536142572489061879067872426065607328192243119879590930040421312964075460724254776399443939784698801900425610545243948753324786855820424562792731894069622322058636439889320138183365704055760462165526756904559211790458503984466704852124932507006986551037429386927183055864032054287296349951989409944703630378453638894768186929958006081366702067224405766831627779379582870713594735307517461476527039147770953143007625492198300714215728287872723323669676020239669368710509023587262905392623362757500827209738967392613366854760703067334301824687484808209604435627893448890685084723410325905651224720425429057567118833808392865836070081621775989084964954849071797853538903897842120172714260518974891500107911819287650230746482340085486851405826522813401870693564683171241758886791334316681593193043708714661040954784040414059173714117077252790009074217723693268153317741172899545693161118424906472239024635836922411806520117899169613576109969702627269837075620395532092297726822928450700075118850866589341395006840083923271408624908489927286395875858192953818115737669777237368766971724787561822011808358593684647011911974689192771896079472146361983444115974474099912725098285352408701024919817980038783541857009356170946892541429407655657539091387679303189398217900437649671471298173412897736067242619929572849342984965499713458974067091768796694207931446280919933821148373531674057685300586243683364965581171741927936086870871234305436077870941317186453940602136550106599851243416924867071208717073652609469481956524617927040312578943559738369307790402471365110214317175080258808856304080895839265037783635568749233435458209939693586610739884844150243645566679385132780996874315940614076321170866184671863050492170516169731212938719321523525606107508619866455870479698286756610317249510225403743136803688005363916775409102715239360286149170989814610533714821295157430060091302669961896343499830704882404625776911775785983328027257437795470853584901348078526063037565742395909308439550418500254053151154626965177373422529912870803910012528876132721355719461371233050262337058565267833185778573430064425286578633826960735768347571651013063099118158294306783431362413697578648425484620621858507321160033199721816196964549241968220298054734522529536220058687039109431237696352933498044397034793818251414528731835009391824115233985597220643502927700244215861693688858028654485306066626461491552144019224533919281262948536610824845016429111780953190235979993232387562687660842278127621541956493506685144479099297332092708254042256344411513823837328829834060652682888123367820052260629167960538212460120870235149042010310157989033027728252391237732786457780548400433417956008510896990989256586648172561730703653731827678200299502141451024798151895159391741391991019935839146506135535576150843485905556524580461763545094725447954587036786805047849804963636005439201420361084356648031537534980361406465809585008998920800070256687409472452357167788327123459602742734813177306288147296699439176106057391901567005974534253659504055655965316485622306859956584377059971310957010109503296633904889997051984297609362606237562239798046762190349324873014374526970149001896644634936996186299297958909653818191748344411242529126762977062285811485190124074262434172849013745812826936751705276097340342807682891288854025199413037842962472580267174744235149226099259306664782851168524766176643645559146064357468858093790715596351911528548459927682464283194489134235586045772123981284349477949713681319388102996685543344702214610307477031736793164563429383298621280642087457116516490213123498576080617808613028195887932279949349765898076127395566729320685611216375478601696634667708920443328322910370125771864923292613455251746674621473662723505513701078985507355007768919839349480987425761155413695676618870543069835858971474582334276896172106194526122416494224903906877590358683790835419063657344462723305375067907516881983619717631638473498366367801049673367460035762062328780695912726320026658225954464216436467981166920418489730039769076772075230390364572523188556344067056664642367455532204021307279788888719724998275523767769865779148628219969322699989746634241788827002224711827502880107720833320720087641546741045201681205461369760423153913217565116529890992390006422337973642658386352264990737695397088431372092964903057903252416196969818133643262486072337725277539819454087660708126896829395751908583694642939595864364534154927454995947311878927704948833560098175406906994210607064982486225005663218617228294125726824730872920423076940991457848842219296236519824138423361972102525964702790746734497135803738724247336578012096393161742926484968956871588939481135725591963698581106361299012564445668982752294470415491657976240416338488033919507686120850350305642514343144547008986601947551362142672747927690948775214973514445966075511383841229169694692359084964609116240720145273387612374378312595141174596212315328594677867009678277910317239570523715154115720631708977517348929371478744736024769887501012119855276212080506444007932866945972893804454700297223571043470424439870647981794076243135726872557233860092264754028641209243819250266950239457104831134987617070533489613601551568059116960913147481086633964970845353353715146046354702859129248112797879418107160096852968512117703904445430906799800017199254908653481333207253236354878581928649728936580395133399366356771521390161371482409912717169406272037697657906339166323882240605311642321160236110949269514866060169313124243736085751922305089774789571964623721156101950711547292533812128285482519602510332766448159097677264596738358829533378934198909690891869987704268182333744592474821957706938736403053549392898694486340600533324491084741455043567851125413084131755421169137912532814499842947485612108825757542626390709365464290085131011344752012197706798198732230526810568411382742955860997622575481665300297136991186406236588849744260582963695957556269610497860524567422272237144964850646046693185770081910474393615775733788407015136873594935244624375182931676643334120039249124550352066776478288481692469315900485536808312115992808883271705763074351485984858661794635402393357550257546235375914922752269469189702942526703055307247641964027250294237754744674041365829015005649405104790343441590865835411740376077767644437829752191766094899829398396979013366200136310213354704218061187475845752394963935493601400167166242081860566460940688789154327227707707239892818686217933759677596777138764322595540784365251235857456481751510945056306944097233777488409385435412603825310975425185231388551334425160966405425635275801748925610258537129999033398651826202624209123842487972249442522895457073418017020156835211437598442949825861304204825818178988811853870808914248978433466133732357375000531637439127856298514687323732793768614991811798126057186789357219195083906013029240693672682750583030939672109658539041830948261648947102346315616547899836240605837144532175765185789589228239649781431850056758088460269819104162333560641380884876968082035049016363536086690583267091947907610948285989352885851171545660866492720301652293385231789235428547880937064671165406590181781422975635684366746272410346924949974703278305251994858487322459054518119976204234260772824487969760711251521748188263173813578742002474352081288614788651353240439180327625780720125821436487651216551278397069215419066967119464738751777509761105705576129724330434571376630222219387567019621633631045405447189417321741766612039497589968412414622514973123982364287253824455730446845153028033049232657783653516030777233760499946472209804761414919956221166091528190717578458333583174468382280159993236909934616399445917827889286932351179307760555362242216476523787199818102526441377166136962891681111851435726012943580546971235042686986753340846830736455045858334105744456956928459423459782377896715747008525764667858785017917288614459080008800717695271621455321058113973675421524436932329977507978052535189859498601312403627018386304004445786251726143293367474028405561936618875974397571692276005175011762025950536296259576549873108901228887612621548585015148835431983459380420902961108132273600375826161144941036218033578658848846454840635995733755733678024221814573904756653964718489895254597831928018526631899008197061486959327645853996138654567710971884163135499127674979834487712542469892780382525022063405607687455232132105221103978212463734573391393726353226075728299533944263404716409640471996515447560334579339862816289305204097370316790448860178391010077086526726521877716560200324059478598792949621312101689947482727325482177034640495029447468295432313547903430917246415549011747114276545182002244723426577975259377130756115092565040122203641278248730903340750689765380779721627878187041924280925146834433174306599588655384689019842951786585369053230773640340760118787391254807011203244944272132504428422175475302292928563278547171389582062232666328418528557379650206529203248028137855826374901206595921484528246963648177316733823034414948528070750807863413931637602632221140754417944511858112052614042371955876465737967905919335420178304006951916281519054534605991814310212320497758435973777183125782121560973865556346230789019367064927777130490527616625101418274560282583185426451345025693691489723735141357435944147436546672455095693276950023288787384097653516983622570016680068665067339722389519602142803913749220694205193806956966340832332362924402854721397755194456046583609469863827000132300011609618839917257122957772180508008145006078853508482744761029678805064287001134322326893184058852631744381725893020860792151278385871980373033876549969464542341690132611101655682185597796119306188809908104437958503616871963921239937992413276134140995156243654887703504386877668412794289696927383384574299607595087222905644480936187872194560089109390271830179969459916580230376764707440740742737706157039208609257916153168749866388797527629515556936965094116409358637018557133127445124066283107735336879612254552004958779898889912695934568266621949985864608438799327126498822478876695536743587172939693571251886388378213698373669247790612588515308126537155448942298283868481715054552742817745032102725500107076426624458596942319444975950043755912091115228244594347958124171739580908496735019800190117143583292486340395490337761236632016687451274664115367483813584004122933309196991246947945628124500827636717567541205169072924934001491101739483876933336087502925709963143519586258013064972663326935633460189024982252399471435545854154374258987242626827807546745903030106513366591868909427097259278145587107058733086230845081187627796291027891323385053354543602940601123414387808523191108633102176672464993251905874699777717907606285890421121910648742752358615065894178878295121949683431892430919353428822547946342780230041251984989446808790657013273668671990535361546831683243586909050182109520453050999941276592544326392638503312340906851955272101538508304262033863854519036945093587672984474399305054960427537895191121710092609277274352118112531567499976224412017586543427952211236578853911818693811050002395731572117177930306252833378224341629012722466793077085504793912267716857397520067666974196915311900329838667565679913712584457676445958350639033033686808615284146472099218022854889513185175669915557580248786541380674878271724598625675835275734206216940037792949830327336819150863978762197668424138301503334830010798683715183555390586058406413764199208996187664381614414643593890007669632514440141942129916379352024880390458039932708647367509821506618246638849945112952691307125393359723282276035969034885476519786295832932977986618014101979786991249125125392411686050063565617921623065909816607177307163570470991950055846344349180960927186738880816685490443627062993147452548208425794133011750655195626804947733358301151397699760335833360346545444575295757862088947845557076150218715685776892713693579829671490137462704363779626942805694524373434169840844253260749247068946393985304663643265973028662474152233622680200841389624113628236873444455504531708446452308083944220103604342245744190523716850805527562489832305528953957572857581608589357292718961514943249099325321415325898659345530711622486632548233075561636835086888819146530817685954461361487060331509217520539540409031963492855507061886564430272052889450866402983083478170588006636736743168028626525549112205851609757750724617407175721158418306485006812913072819488971729956081188445557469944280166126899372953268312272076259887728212294663017661895791555709390932951900597171703484214706698259297545228081305389205257858570038705883411872717176259859244446923839946925874484960903171575523938426184680390790799082562291992608838260890885045543701030868833802429715285820512379916614781874501062273228607544503826979555013390719672773824876839189878908131081151302733517901100498482825264842482956466339522772687421624649975835681265002964190833560154381556622907858352259095065079900200493422079169282778321564607582195894742353465366347090567089935034391651222132651587165143345879515617890661231825826439266155572450015757621631072724106485564599981659791725564034839849172958609754514963875673474127015489107571620419121548582862851811182363100046921572097761180014876601457912162537455773069243732363325964458207706588014679141849177516029280875708593746094430662768484795089705240154925236142246045155942439029350360033791554353452949983938006986639862514976907356287162287838878119584477705162736815079546584371070340126434633991356120340912572432357982439222672889993972552341682298764056726129317204630459628422661500791275081435062577446548978575487708036925298052197577917079625931923433677759557617837907660113025359025893875861664222360935129809332107798387659004520875177304519808973257811157079287320826636367945194285860860315577599247182841700235508784078858822353556536944814242522855476989595821487936500046193816125699926896346080854094422885706694187802975017091425374504552708030040752324862446644000568744010214791680653426473565754438447498794508186478828154279130778473877022369587529389169041564052429749283461831117228142926856884299634380059600995567107346950649506787318434696151647563481364733269650038404442494276847583513893237705870139688325084634745573509459706488619556293592389436692651028038186758456844831571510329111271146492762112220583007582431447471831865629865483223680210168475191703757344672520044701524883143934834155241947671619875874246992548184159080730137488891047875033512350768293917491284552480859185153352705894224796289459899695340450597906236997160318049574188692031544346193063714438288504922165096105436692966359128678337166355574282591177537660134530617545132338029238160461261884563305704815335536715021073735780106146229959656747293085949884646481369088519846555179554336381985864633774902839473078147259169091252330038085560571347801376341907839633428841807578594937247595350180944245131006956073770899426473775381225262854792233293706979415589492470247313802747687762957553403513206714965807351525913283586400192771310764064072965741340898849985491330592312733836783739540154674220304136377649377898308520735783007720682217832213236365448566773267578788482945947019489542770446477642269766986659287585924025462049644136424426695511357736872941271242561768909950124988365308327379786361899426196188775979767744426380267559911920722848186157741530839118686117653155555497311144423231617288295616868872044343339826465914957926606726712231903362339792809046810269431213522004827438470807559334958389612234662638485909394532576503454402789221879308860079935431203012191420343730239427582626979134539613626307883059399008552239729523333958670275075040575707421696466431499000510770126082882462675707849450649329693846930680217180255106967312562362609615398640065552679764183748123608482269846423881305268929615227060082315696720043785331399391119372291312567733700067060066207761706867445793932343529828927962305071168068069816323075662270348584787420858100573849873372312868728173086241045058344503004908915421264554011354265206489873655610651813148853485103714147803951769674552319284034128945454922374456716393568094461635405716988558907234692507281148093671917862048679397919277513211302107416994304765930828584104674439453522917590544060638586192364460754481757877852450869381896325217646863817524563710614461232628203048903452832827365058267363268602613484050526730283840267598822107434661988742190337928898359079321259286688770903267779532107919176426890816696772775150927386649392783950166717485662800471355890694087681184104925351252953263649161171145498218752567786948083463171931478017216021103793127144476980703898087540062137858255768080934687732773697966986952683807189954364476632466119225985085507620744169033540293846047296278634741131944473824361387956117668374281891635090170237799543550774499276182733893900053637029453778742529514683142409562982020052176750804574511800093841925329790406132684398778132400398907451768019905888706359929331545580683131047934627654191721823422949353642655719202184943819340504077116384167575638199333421376560145403598901066649213429388632838199419630500612901708071882407313560524096650944075037265446612133535994625610302001380120680293810521671329788889530228440957397159326714888392306154372520969859523419484425187136964046077990798326543932410084161388147133316617201926243674493159501472745597828140569963651118998744916004829736397598054787086144227253069268021951007436450741831430497381934393798504199595375086228009093738797339271046702403078440142679516355824978605360886563854880028818806003372704156025349724084443420818680279126007577192730620762384196787742177044089912648630236894454419025828404173072803865358501190522248224590355099996420874849726226349242608538958260887295787978650609884839730347213715961977478924417080702404822856327080360222425132392226046401484584886815703167589637435127668015194209633588214788274552105929211891278015103660661999139815425051895774449934506857806821858966772575141598900854455655018646008804142665376222419041728171937104948283678752729688754637148005355123941733867256650957845178296924896632836439508449926860375229421740084986537981553657022000232717486573226311018887104468167533767952912738395819321728075982595200911768136527133210864013277708174583038064928382729909806163302714884885123674040515611295198086704079166659251261709104531513610759825751451087931275093613892893268410010151701018587054025192473861312969314149806084901146141708134980132270357579520650924742009991373909409139742317122730924585863608463704021151953874982951989021470294260658851509526363396490580110603663180531574084221114394864110544231351284294584804522886016323823533180270995059647049696745388314583096252225006146708225285810463611698426146833744707115227448458544643071871238910839736640783722008865398927236632718467366449452629379804623844097952002535868723204674525091818589544206857106035043470819492755144566450361159087997037989520506857200464927158449266765459433194880613352743775013562205568253851278783509379429882994183811245061384087635948998198075308056736498119079160034207015488795945844937717605909540649353677321236403795705461331400204328954383222193046512488685887830178308527108712568245486786251118342751902618428535399321465285168384105633114345473003834215754921678104429657585358207256264399065784609557266184970485819224536339099060147953592257912467074810697091583776213512538880031042158749446821237456740084965961713067032317725219964914218463744830313804249962356968217151425612830108688254600110488324243389994675092897361060669305566192876887280589145647564725774467290004862380754579062071389397060625807364381980811943877838636973061536762044509484761674359953074499004976359923562285528484629443026367985923609397952660552607607231272605026327406447193427567701047227449850837036792761164772538876278397073655618742697160544280503580968801554210966873545181155871149858836432910146143226166955562803499435795066372616329666577212890950199899751405639273912108892447045896628611144051047863760940040143906870883433371804669729247386241952251914638967176698365536640724859187900915512666310574944884839772997336375422758275661089233876911948088722020614497433771506500735420910226405735932222627295517392851904055624819704164878206457526676946690730288015052822799223107723414189067696961633760841868329033480693185723314455995017671995253614576158705526430204424123687112463762934380030140398390751605963930375631532732224976826833442726453690790882221610054038293884725344611865112600683533867468458028825678950231174222518059009551465773174387571496009970168406627606858448817105049283252305933635120495000142113403262964638729298397438779303706015736281830162445896604010330495874126229253931936638390663027796922801009370025829342655794273272746897859374408170396966058239799215023931387504370118746691350548243687370008712509600412586663031566512199998525151374880688398145791032399017078181080405313136906086454295373510449036588040893352456261612170694698075913114961660380197005726565239665948232548046120951245710190394708917770364514046041208597578967809625267789742858085330423600036298011352051346190955158836997789361727807424139428859569086119937807358607483618552410974247293783375558483317704188599897005312908790138986751350267263169006232744124684559682210749246508192706820022505932252902381986185231329112137934377755207567076292736579987379568127302595287726346419744824647320694550616510497464276867045235641682180137718978390859133387470327673059805470843514742124303445226099048794806802036422122027842026968812329888572973109736773226422728895942133437328060966346076545963302536235679614754395081439302211101925013920323495380610087950785121932141026821090613008931312467956982064262709043347415221984570862166378717126222060299756676264370170478243963019517102256726549326218181879533574147532796647548100066691174531435070069546810602884705437343629100081181652940004751848169819430603696646723853371582356577796562069013930347960538893970451243468586956074013836782041036582566886170250162489667945991080803072247843812502324414620370726598411799454357398992515552242082966989897655018864509758678937572346144688013059022196561393219927567313332561667797083099080612361346218182112527189311149889382023019724657047174870472507748500578392865399028722637072755702478481899355019789787468441563546422648825386385049167659800052316974509787233358703970339296318503990570763383283857758764860928759843150514234398291284944228886096754657353059578155543850317818535583355210249625461282719364187896987423996385500794033407213083372234233553168512572813776830740633677628889854764828292395585170913085214138851924898517550142295097435943431432849874960675353504231644728277061995520004081430225693718640629982845168253147133763002483795218269681449580484452969382094660728731188604561828162160227567679434703806148665104626812545972125967071133196365178941539521388888973732948765375147409264299496917877756348950598090564042473283814375749807922754064434150537308132571439169594803462715130349614144296588501315017677563772365769219063189454021741185883772534926031026087845421246089211919873918840792465649892139048504583088706679336606185010156229267753320748380370030809426395460528163382036682783154627997097399665799994588772481384266600141206983235258040570697413819780132524700060233994734008520880216168785219096284000527778872431439755772673936853185610830741786401599891200076891612535145185025385328185984281375668573933408868815267913153714016818295349674708041946967586042186617340159599908288967398735147841489820994735507892036085966891650132831673430507161522751943512386007834364663689761466192287501851818582197770354161576671279809962272147210597051724087691483923545463167692238547840766756435067514843577529026688897777265616246211459407584864666936067966648649795010014973758996303081758316388704588831696836970273847196101494943987457132058104432651139421106852079745591170902406524315991968370114588933315948237772939924687195509256977401116589716361938732800259320289229420140911571749168603838235657955441549669180402529551044735584286913834067699511186757185729601206758858204852990374757748057183853184382142408277874930219949726274739386560949772929070840185562983598461595044622170174574873344646765699955954251488321165464222614173204645187124255890725520396564058326518466151392166219947928554898342754895624383405475500290712309813597946712143795324124586531390537212403311813219040856658985362185461158292396462106729459766448875955535484583753533424999892258025881616833148365929986877626713947561901636104893344553393321618714064574916141097575032665814232570012772011196501708029792512189943808297595394122584560567454578186119408845170529127169038899532177293785037549314894373365483339466796010909984820800920438410090778761772871791918547528714194510695036237779565953624358749807602825732809684848654604949527817724452906711382193826767585171952845770068077500986251683314204131858707181430896918500417533031625521012473585067873785813989278039691913631475992632382257344552010306152879078711930283380717404131239163947441396287155256402113315089082150937919470257220423199764994728846646723226229721470686384894441007310302401728842675937743896688256642750128906741341158797537361476930559486173472795153625672358137679572088985479443027512751562278779613811109659301015568915620413134223454687018171002844623784366205087932824378361639428884925405585742179565613535730519522819120031071609070867254352113220419740439960635148246192796044998353598536621130538607119426493186222471138213470495040153827893713132131180777890894201447882499396652789845056676962091434194702808447203382578813552829130024029081259362493036325658163327836560695808787438473623535739432069766846353763632285315155575125284740758318799865219781345646952024699648274549604982064175634282851433115041431111951855911534680336544327578920962068604979678132058684205434671674133509176072611188603879244410666100885735509329524051255011208009650193634863602583866962312893076265986083559819977346734484041861857770431101562131983617843538363952120328165437077521636086969826304839244053004295864904377154808447151626748009013119699422639145060320550487645313526113058933521269936529824688487994568850190535403012859039247712759297949532901608790557674515063821013613352429710505538136440079282795204681163617425368658282219214840610779646876859650029123157805823220506662409963042462594843899738666618409407602030923940494054676483279882173293811109824416791486944518032959298683546188552667974068575850348612649972544413333343416812979874772249905450131762683223431442739033907632504923705880047877676112925606876705400304858574536623631275292772141637433811064514892249175494899967013148540025782915951705945522786025796230145913767382425792239245567740425285788887254508789808128569831021254044753387716385226775834526586636120340698007945244967496373258412381103084146135444068042794275315530814809976296243467770352440931906397265254104316906967393545044625328412688636637952791251766515113998257038408546116117124439027754966912844082291940926571615485070568391158378979689950730844015415241754092804519036155303632962355799233431223747264094588116715227389363794778924666368097689643519169369537505226732005185390168355108190066502083201273901046342598824715357779259491006076793574187528090639984783697027395330238604724051667579575170174126997839387785113658165562128046823421300019294515773479092792521480481680552169274747151196533013896861665339387466303478644566566763561409521581306989821822826983784395678071912253577228300312640984198659436547518274795042254124443965608913339146993401989368330333363105960477252894947340782715396406965709169353289272823558320781554382646251353676143578667738772452317205933225028938143827621336860759604609316305759170170546041226795408610757156090986100547042016502970573963224047098539510245001248596666543144199871372096798750759833996619561554174498834126170481827229189834181236739378738500617546406686469546813150510691452056299782832201044676107488113923500963878066979551582390525873355081765976605805489045012104656272510633497827475417392957298900180639005778905415671967985041211153264407310130798205255687187170253235554330720138938338389976290758636784099069008036426756602660296787074454012832101135890878207898445201242303519453205398790609446937371502537895438071436787530440714309087696913617507899160102691329345272029399325534134744807801496004345176581812948495327921796676381141385092334784721435276379625003187504200724378178955862873525768522671268059254919466357488057806372451462484881515809583307031588824122961886202732379951213176840666238863839309544780290249554853043622468789323063190563467247713294118246012835457025953555823108378217995840859910752215198413238879668067554206605286129444183855161883883818762971940534071473173377048128921318777714089995420870227611437831466043119238069527800636444786913358597802148544513210748922974663010243589771422094868073075446968263161775513310036104996531029833862118085606615545657176551952803685842280622977038511425881214827122687013208084878071417181361926327338381103488607671984209149836327697066341750988311621352598060795153125404074327502704382987975843630665871396107493828122800268201847958113755056960170182260013179397130870112001295047904764759920881892670479192127904419485933405722882301370041932359163648113772067420376210771620775276102511372383895502249535347722276446715608240186847177178847914878737588518292620262013965024805385325484254989289097833558066555404649530422286152246500244817376019437673029177534467310787079806713284843990922519686732457067656905936359089207733126772615966906205974304638037737300751331153409127123503389759757998030253490010263122839835916747361006212370078084591320245327776677488539837138434328648652779054943358268062369296464217339407325469120506875129631686000804192839600843074196052503038892778026189593898745352574937804665645727669489402132924407658842196031938576305660832510592299156062401287009672074723215107846058741056901610976100457153727928609683378856979346320503558346744508799865766885843837039002337411866642599794922384816734761834212685274050463535608741161422565536349946479495220267844902227720521097539575865332316325979444880232255253406611553260018288538549492315071470375053132526834158466558249549016813178147876311495582632081480742218369244108277313784592906823435045633845759439357035698431485706370224727394558776844654347152725825402533011252184145075618687571404688912513046959089886462865989876563805971531475506216553257542014814730597457510327905235019608714484567143291905787878839376711152546243304771243952713631982151596856964333440649080240693542457537377019334905694541149285320973837716858375240633425401703953186011476345505437838798501670650955019777723108288534798307733606614340568160169989307039819568046431003387787783498331341749705045281859293904537174568350861129869775111167347493155634687575406097606992345200838195028187716760699341484569189695692293605814920389054119199029080723135993094581936803146002973868836993169184444591405583525405137981816461700188549585550984467914340047015491732763256740983386649688237625318745109643913119037461581147463718931242849600433238924658793772338635462824340023765339953790245576656637651710330327690066035201895372493954254174950994657438543743789950050527744555149380930351046151336975385425919748658236818171775222631290984798115001841194979402713452626404848195781753500026298392967125504284030534294610703405081798342989134563567941659968704541060116943101843664193911458322294505532064627892594541279013683320098736178717671007679827005704160574425477071937549126353004286905581085044522039271543832493494872030573557543664676740773670844982196951300629164605123117886465783392466785851481215937639287502223116447032819660775746516582415665082328973057657026377266775331385175916436421952352224342869061306530320402509401984234216791724935521848956031381803939811104015834648184467450488052888363493358283960834214387460272560688745605536159831344958646137865504353228574797768061361276250511428883045626315227832079910487251718694352498939723135550276197090295701933183475544437344366220713089281055988521495881139693112102231855303950851725983034716135284972359587768772385287282719083280579688929287502414811583204602266967527816574571818675504638766200330106549421432911628588660603437484315712050736568417905497332709508306396922211790205735135720786546731365202387786037963357964655578357596384697500473973616510661442807260580838056581568243924704394455936381071660227320823533646808032354089841364801848969205279188318139741281791766578277741744484972493126302322368711316568798148890608887956323347455705295508287592318423363784532577711628027062546611478821792489826670658030334365905923292798933439725159688473973275638513929126937356569936981637622328646395088265330559535334803404697053457133550123222693979102537413746465855436451668858614747614971455837448110669783228120015390152152760183410878980028819708838523983897758569364347398149968706327827645916905336962426345715880372814138905407797553768889433444825781047156705719967086255062963389266796369924972648662494530826118773618829580378021995062366599669586660768879965187182569034757491360727870959700389324324415796672600217249162814200161052583521726728928586816896038512159288553971903622425374056179162548095002932023603073912748442480104376011944072630462042227035352832567572814437802820896263797912138915695180501039535485520258334007736737470515558474758894631328154909368422872969066085026709030638152284793980483178026782053525734373929913368710585888942327812748765914064902322425683029748729275497948516453654021362867612195430003199554293029039666852976172934262788338518483039075442680888477022725814940938623117641673589694638603380471095717372435936150379018313486832219746190546032949376010710746996599864022387458815510257035590431833740729224615888063125211423261294486847415398672730563877791136163660399811187610166176667180232909203011757473518915423841640106562019047782307012862583304474257874727832821272791908929147636515346876192862399323475445676601463407663901921453645865311331202688591539079454818044815625358654811818043014427212795852659038922076571612666953077230770712988804590665477217023105440833838520978141529518865979072355164038904137134782051436629413236284458048013853076682517057240278015001485416990875339584362315303074508497529337639455126283723369823892950152103913931203750513141992322008505754922028933890752829934382320429658051680705681719524224609162653659907568464017479015176053677634825711256653401958758213282463452553391265609291619731015284755144152966065228558306576761260712962126403703176352890165918854923784502553645067841955348676714440966573311054088644339755606935102608619580787671549202306214498586652426933951283706053088465928082704124988529170655692379484134016738797974262104151814735253484303487836744912540528620928155791027787547204502231271365990549695136005664993457292431678042982197410005369066836010875478162535060704213206215987505635601241116297438975887081869875583954426329217179983421386336871946311965008949103728255142466810264273730650805417908871768061189927086841397067952532654496374323423283876834582371802593252538443127153580989103740485368661015534689700190383635540383207803553611609501461694686654960188261393674010911391970341292684792355648409585834763009658557045259568502134429559572433613665856332718666390158040369251597997823858591358004778114078185762686534511695859595191190203519821653200948996458980758104320213596429170387897778894584769623403991097480863000943411865656021834032567603632959011964347199328751786647400847982214073485536939058400453988696216882662330103356183217720397757161256593401514338921497552594404860272235707365305000096366373263189211403457960225002786851476522963198623216699653535419541104729479778701987801524596975690052483120237025381755266292919095348217091773061776664022654821414256416068379956567896468317190476668178705397167354973614439093931491206248563000866589962214992972794652564735917789783121317276801447106882953347330110145623961457596166311494701540620063992285109053754439286225570668118337953390908388056155910175501151348270782520840140385417245472718256823670259551796088680695121210592138310155861040660573713978510785125838352240395112880695489339845996682832992066350828322443086369306978771758272974753426820672569149181462608879667848306536523002993267832519691940450828883032531147665126028463163058898638887723392070906283886804337220347634058368154207153766100602688999348205586826923865804680622095373129730053762701442468096836435969234111778590838746644357157305733490589924093194249868204553789045657930915558848955454441066394667056590002541983476520848296560388094066777903227663609950221982482645397886339132841179221862615797166151392658994854316427672263233508840473409761961198852392288336377563755810490387826044644082408933616830467662393427247392107991157490577735340970220746605678280138089458058007022838335537676981616714906507805655362658657434985013877402372482673221210650115600376211301336577441725134044130526890760422112256260950810498878222335889042263956238457177231006841624309810243559144449920256782274737471629732208874299981640047972467412056589360735298750384998461029356779577950983698168854927664304791216964011433882179078422134014450806836469664310145083838525054864169110691617620810339735586795366781554560344386760836974467106673977699256846684025551437984121692513347131505871755427054583671925505440125640452083697422295475342284850338382947650681760703613437886167978085946618166799619440421376077175973234645701736194240859303130758390883726257062305955489559776301658793649162980887853572368629221022403794962542136174463304059709964251858068575361147548340774188067218685850940471970425507961158145293365641566151803143888014926993487606137016600306556171804089798408031199520834185422795098451917255734117351814030760372112850508316267038656087176654537668203603681089598710546343333066186679496269181425141978360834758242246963996855141648693781875299093555893776685169870631145277395974720560220714442857963230956444131968976902495793121487405657804853637661876103375741737434401315474891321221169373761225033707336522296564408325356233594673848724613332049312854412450294625073384192855656156962191305736534500910138920778314091348862051784499756827626476192488264648010530948780540808999460855901406023444316337160354586717411305584073000723228032383147899258555471054593996253931636019029827505487353582286664172749952084680705674579550104246369809265333525558326623366825835604677539041433480620810179296321190729635932539599691594086234204486384466717688031533728649823422055602429231062083731287635647180443955356612781555546130675280276254990598614596156336078976996411551521298909317052712204518795367382795185662737080149653511309097814650753437531805392443078881665711397924469367400897283540521341419558719389522970876681845467786769039095921046274807983069555826268083748865419881920354668035591886169339540903958421106863344995113345710979787694269572661361134391294341702684341214804497894575636394256870498944786282600994770270146684539301924527084464713615349085628915919950558958694369656238932819543120831446501503016643008523050223025691412697522303466646779457462345613313627995160393397896591962904821399739361768764371479910465742418988433316009138850903021598740282529985382784437753622103937067938778700616335332753192620739008949237754360626590751502838912009401125464641351019088947159515729118309492549168701454140048250487574889053061887555026467242954731143078733387080917956465321291925521652867022280312785556176841785379783468982609432787782099133063719383000987209291907998783294103243734554911583016262550561303992947493684240428941696037306628814021768190544984067996730537129542400676685279541555866408408514921262744929856858046867865005452492603835925404952500851961020161071426231373452758137529242651982900664933634089145455105511659138373616140266762324749397344874599142804932512804913453335047084831154451663532659957417272322969094710032066535388868169462282986253058721344747669197290581172466777880199378254994748311957825290933039717961851889877073397211873086085945145492474532996547354005744228701755962229987757541032142277113803569503233799285841442735600723351736842497634635167964454788684691587476811105024035156595083397355250820940476696540925148075660940007542347661377894735240101526402159205039578347140060049398843883437037108081990592223163428182519627840747906168063990609143432735821852703019884331003070681303270880630236507417276728776689092848065919653806390136301894371971554121483095425126890454318989831053736404668865940160431742688301145621768381470721075910080848946184361108513586484468754480751630918528836873365137249487011922652982050147214912703873695064441630214022145694372798991751000468444873000237666004472351414522385177443824775880243506952085974610503134186387638020377662806172487572490100845113527789839668684908811509398819667840910406095885703005462427416595183079021506096455560596850123291972352006817639303596507714433615443651659418865355324689120205274246164123149691093742477701168098970239960720574357734916028843712713198008990605949456877798984223549984568069947199333570383447063324509993212558093489564223552624151905790251849555796094749999776363892297272174591879673513963800769174490631711613946230030066911970466999152429665358394323864480486730716221695494163019983852414354473788081453884406288767977442893710903302390669201058051454834669029237975862324291628942180719739963836156501965504101060171237412640294729758997038386925207702363713071090243370992490611146251993684505942122844289671712633099721618491253224057985585489177944551155527241902650375849089274824580514165500987417686080346904044310661011762025393228118400386675848733991078802498140507081177774475538260079135553962750214099285712585449427419415784417645892442662379370834818322863040765538010333309263394900647557065080649842306939713166129057847224982941768688045524383845172288299199261961556586837474548588144768382226006667487337888154677913789831364146394581181973444835932945871445335803837181708432747100441078483139616758524436764072253494989279254665337407105224335947015044520230997448532729109186736160680451617862445969290448908477766219105546266247531385174637124590306684246120381027568557140751462639324087483803305455319822994651563080273151320504969494937145858820488490942371718305921817955065498562672725419022734831564587530762437925110731215010422640185773778709089649351642201224463981576232306637562887540858982401096677593524901729764045105867465776321594084917212389050695808694723735020858115220415199097290435753521211012530212925579798340660707204689914744859929349533280271822012835956644990921144672829262890556499964885553368512958374778901647568551192357045330545560304680002510211213776819159562075131300162623929996136362218077092470802838893623259833884303739067627484566133997556046785291858042075163475382156674065505122179464604070549155509867890333070448654210412839704572380744027436631226496468603681234532761220597016733628860836355376155939285897960607328529902375440660042080130281882235887452046066709795696033543718446190282332616714940901811936954982515509040121270600757926344649226115603860804848169702263987716262904685415285817316698094284829483466339412055800743144600409810894492210780150892930922564340677722815887762395081135092394756738611708333667627618715551483789551322741944893823575789552706812302200463435002267075143973502979146593048626501397081500171933934686623456968107779802953036087064226241445081514559344764627907897866125124235275659655413817795264827555474583705086969875120951581443355153823174538316905030482851451235472016130256253481337469423269544149307058943746940329033904148139924016463788176293629400144109431536395305052781404104369153114439064965459366428975123967203038372714038977214164051544604946562533969420852447110351381119995444809978232402204218133186644754587733449116494120984881240490846094985087119766504281203432740062939573678930179837562672368819109215480445185911902575699157730240283298352125199301877586467418210357718011200633676432078369875096937180715448699072349724913897784470461262657836406040053691594633070936179764692073152611519303545902256506459077805352611086063826005376739642799797778721777699997930598653972153852245930490646184209173037370290761256065581168413335044171554167737517618191989751838580741790314484471440207077170213786380715167526252312557838334392808612607524103219781293672530118260051073292403385388924590666347894659920204100127858330452639517507446753704066443128473779203637772028870167111080615651669635642357749726441259533501483013083707878116721872623195268218272806002382184275388725135341029362551846556193211330489423843117444661316317612730499299018488342245143697152049740984749896121212876060647172640906792552463002909162791055273012903970612751542893643941736785374938200705298037186954711467108705461596412602772474626489901642714612740365880817039614939684932210982541812406379341984512732118756578294128722841947213793334585145860131676699696695704443685314055025874197911259093150924800515753262949865652377743386381227079879128445009983377735494342629954769225091938507030114828128297987500539077939161342401155339562292606245264862452680513324719065053873199343372003607242095484724536883770969428329356901116780542883188372253072766702395439804210229740476091965027935095846256972532700540313315505876837371267911783478946507137416100714853180513454870509370297159258720034944455179113069598133510656073364169023074761149059562910360261230246885775252866312924471321043140744695572132363638135095061205215065591730026228933098926455542651996767429856799002282045555448317326963764269686213404045251649422478045475599549324883748222839038133563937689161381536457422685841977291793772419670652886479319729374860971975088582809560931249880660846842433116498151370661647991870376794792353740800508237713203598430333032889081854121025942155264258637890212219936020408673611263445620435339749861722352225686843888926931281793326645782506421424022544150226581399695394669401839353686765795116402271264563335286896521092128172969979108209889810700506801977030534163238490873025973210054786348387205716526673543056235804205173824166017460732509732261540819336717369734621343835966982147948299140079686551133320425618205269296166429821112448000020054856594076264369802988532917060856887317301033932980604461844383043586261756237021619344397291527077594044429425084111644070105326549188921998291275072603002279399309317387625712905549199053654778072837506678803202363063350145424908205922270423619960442735921287971815791782742013133260444655232167319883466515908547938249343531965774935786262254703343904758774777411597177823248585856053686287492661059559366338157409903544313698143093142990284516161304880017043461958696447061161258858403886309914007012226597016652017842352409774128097707381146559767775501843478757852939146362829749893374590148829734882511650693162921936932989549158513934367600847407021686162024903806689977757119274916489716225366358838534108176432688771675652113519041927746965653468119508453988499438304729402110979978983407230498767825756432287679868439995257391473379830888918806332738494284542376528024052605174623156637906694929906274510861193202359759058582531809977073614903872983886965414267454085405004753366978104718495923000403394227881645516351254749511465417003564852047913474173663395057673565147252037398069924704519114343965601086605001195668093562214458967763429533207073769617002856196844803687020773478369999286644275977522948432368132030651872011274131166280221097576649814444431484659933334482682471455236777901196855467105708528422855962054819873428933878396997595622261600941597301040356262885944980303949303294558462316012034581674392997322616465232867725086941850226756871999164014057927397138539741282312899789449066500395894699180664905276302297090928725264126002336163547534373689177916057070035294545071540724835205184599472640672868636288701332543813163343312090633483110908875470786892975927470366594668534012220034148908292095222439178323999366645137415951775874563205084356789919748150763115087788462966147627253363924852826467040238700593217885088272204977213165919725526980036311000568463775578833983137713833226058285880453399882145981748179974522633668253603620115435561412369265983661379526923351954072447224440793992858579721711106467172620858283379671702075012547194885839298621090493265110919799455022281963699850086827213239911651969974718691216652516926472545387394781667316977269556305650005828259624360519532335731388633373660845956296964582297289851597969396102496228985936238471305287963154073844358411002107464964553604328085456281458417514730508894536037468548837781947574952830001012435570329247392693850934713543016458454057627548962711652419517185571052581264003650104833083572497760607330547658870129929819360911247310820877193193435866409345476458872367658189261128981201387160501183744464880347442812965705080374420525889036629970909868390462686500703504075332618074162761531338128757698676974300590801936567862783047755059914034584054347587815394092511932882861258981186044823913619052138840888933597843563492546192163223227025411979980665458525761503167433337909943751997815312356616286383326038287883684966594032517748101709121830445983098104267598201500523450327699077668946995157136224558053542218501879941467086535352927469723412919313367569580250823507409962010191718487714393719148760029748305748022607890361389936133288631444318907393641038551918884459064781066607671979825545481418199530056606510682231402239280319687140617176210158013394242760372399578172952314259320358178661773029841178946248627208455035712988814441431514619331462152115070465496004962980668213454723702897178184156847353252835308974677038918976227797373596742269249475909943475996119365247012392131618297002708186605257234421835532949421949018915059250512957247544598964583320152442570759585552088368314510150842468045844358383470948595501372433908719974332496480374158502692081888270947055218895401502517988424382771947202034784124274388348564663063321986882344635744006879901008688087642981145428654763182048219966248457268130912871875581730544598937312549776440533390043302880507528390738987685523141449893798776892796016473645919650229634143814816993203708507953887509815433587501595702066635601447728392624515828946832236950230953954984268515903909867012120133746885729565849179920023314867447286262575380018332977372627155465728615963573358067547582290992311660719909975182679268406089396735192591779271883185426734624938156822162715577440099991550556119114135905958476276462804407164932390970275292464336571017754620772334892869331697665185897490660893771268956687388702897337317834047430489031297823410354271029834438744583975067064280146784202509173687287130466701566025105116308065161511385543462399090821614394174364939550853133312733774735256398359027649319321355112175665359207050660087262887663998929038112028898863467180593680531104886381022815201740960944222346648262084570553598024392149623486667741990347353379425948779998268692764218878488352040617477449932926256917085776328851408656374876342383976987534382384713506849175044103087146434460757174052500157041097972643246759181879166604743909300833721076880150823841639789366707925724608724021743440118119189454649004156349731415616234659479173602675575233646164760624641821623232605586585058256496789183357067012544828786569906511265146170500169979803435761246953189048751600061987145124702266738438152557441159530999716077394394918069232382653238363350232825146722608551931013527187150178107764063571252717307235008988287644853179932518498623555561331135673198185683867990949840813479362208868958396424054371168249824466189103949889664726360545575049677319102220121198357048438199058017290530560778285921835236958884983562153470794028199419949172926963011031815154934360259051095488753719519140686776551960030172931158633152372227972520493996589072288034466267430691260235003994673172455450386513100715414086762779457016623748723950748479239113452260022578646103722761312241517666033565145790846763602389878964620387023446277540103571877011103203824483627958961945687546593312897506186611967264021921384389360006747067072952676657501982857740552999905303778206937165071624607770613186259984421310741123666959460951502764647540371958602504403302809911104394452880182075556857882799782706529190577469706476601102686617938722806158591889926375060270467094478714200648604230588018542436979127581577889976580511609089153825458454120629558554293118949258026861277708040071251256728255138906430644456873346373778552038972077589570051480139144526638712240126124657712692757206953890902257972311200878848224735972005199500800196226458623009478451049451452440322786487618055801983116391382694282264620703632138904145914113350366596825585047712527191266860318204776658162968148158000142039403992753444766363834785823578947739039287075285181524651968961418245891060716488087848886197069857161241400510685084919575952044251676163662567884380399136333335472794629365338112047767179960414453017638110661003127497492426526128342261555060446088711759105262182378028999726128648125818826022502452763167293528692845207763053074544528143533104129542005100051688268260882465340991703552806604906158710946031364223357619309419880912123657122990491345953049592214898774196398242572742238617472122081683306614980646134740781842588491206868695083190496020287919197349035535015518165851791148892809305710600721545380495147460068396959627186743906738193140414482435753207716338976710717199092575094737935215548944845465796801014979974321637733833310938184677110223000909235683064831764750318438406927025471667184750696984185817031560491123731424563907053257177628185909891994679695643194820530232342357327804877547155031877136934477171052768361253493982458732912477505518965909870456648302635965236464887178165973333806796189249674061258593800687071985339731479716169134374489425072565014838510152684001670317689009196374991930198382445941234413858926901250381589201475773221172809152621077496036401197279898154591551207678385705652673943994883609893122837138358314518552131152228906388099401081314862958550434533823084245596710063741401803069970320995395226921428709282625620436596158991441686104411212426854245131031202768994862760222049182094939206940732985171411066929181491446784350908909490806563529952576584787739228669873943451504479158844566620942307739418351758648601636079804429010161825910344812539006490404566575016408298220167457889488779431540302449069031889539526397646334069879394827586370115477681048820997718847256023551994395857608848057853594153346589752851412765288181657258249908564309822374525291737716432779857587749256671492829784489397085728103767334192374753833179357233530413429867814858397508897017918871940994884848321037821742371258887217274290485883689563335899903751013890719850855949618850811836904877223548345965502359034352064127676092278258700195904587567605128247010567140272103678571055778133981258209247607610815435333539519645041166725953388460695694848065557873093081091589133810369027433884911363853425377814877516333718841239814352237755525495974902378961182637121447723555335471601052531837035879832533919865665987014477956594786407308438430312870250659522557796162724236659078498113793194374688432631937127741505145988721054830627504173396944927438632731155188283575922135668623535896160867514481253216666268802252201951132814467813799004708466337516195800152152996693759834404912954844790151700875114691399972006485805375312291995218278014488659512487337700690022205980161678974017839425332088735225822052227752098046657423828757980291451965442067991638721006745045625033183609632687461799833765241944848752940767271274843289826364856002223071193594282675294246915521626984018449477035143344722523058403502976821130007600973559118270571556677422492347726849214207557906107525346730997339287028009518512823344292620620720774062121486333095989987638853278483159831406797120006707001179527874020201611838723935906828716271500002127821182980182777928109228040505908777981681774374446326106868353269182498029462049729545746219378162265500108890795916609041342100180234141349644857974910131322777981774878558257724071630243275249462557178185194422707261847832254000918090441352037536671569570440216287499655861617094520283293438178942742271946040573175203789425288628025684525750468652800561944111894567563860582000794245009657957549834877326242354714486512895045403227005873616271978922688558631793821890274641996541952320678855717330540509892945883408767023213980462608056237707533680586727586983905996778237045160435737197945207064025650742913241180473429720094012122616381321552154957490168105045763235622383087794482409889345526181506131430188565681203872041806318133786167260960947854105555896579141038136937874791226933164539218528387379021797851975177823294491655004296205858881305822021486263312718812792344622270480056078583883656072951814763128249510501680931740239855610543978846334276770544020519459714111787241946343130650519235811840185698603746287582564377839261399591219481434049366412020093990042160484338692631657116684731797156926414711107457435000651846050882804572706738030489916881798582727031265067208208112556530453238879564261657030271693405894491134182206351502252361678970260007502959790563655762114375052581251517691678587816719586627689365120544362247129547264787057871691109694342295762482672952629410800674923640470918958294651966516909481610831388680698391394077657844314229457795728942387718766149622726690035617929573050639944886759531874390229761108098804393402603661044903513027500813782096474362691328822477929453944749206436356157961899411117851428921027743873825842554731118803413808826651315137887299487212029159995673453759996907287918405990927949982347297037162764199983115752244838689390145366421544175521776361175533320603671939215707870340457698365737481466530434302891470749321559999245680302423588871740188087560118588981778862815092672521046978522031640199032108059288882503964862935885599363297445196393574105298088870191507730363901228338320738283175245150528047218574881084616995123263490955435004664916020455389103486234960038620180672248259774640760134942315867030514967242080598026192915700383055574984097009086312967261178778822368001826668616400215609246074332014591821664578914248039828406314269643129423154777319760843364130354863823534483013211603696275380240668253449760292162167177603863985300238916882266193737526775842433096116372088948300613586961249925201591094619826565823461556926831161848371323883473057084343454718145301858325362309058727014767473693097551974135245229839933188367968252338301226679899079880669509694530060446864100977255904697916187188091456138771093105659290742506456300532874705895159579145441104899691183601226850622372243535706829082848679395734049536466987999291929892732009850240413096482284674893549716323423771747852985356484544236592709794914767340153030631141035534944500413592497980617425686367544541207948338764659474970348418266526158674676539274487271065527329041821982192229914911262619027830629190328588727103492026211421444350066811934599235323565985567315445563198122718349645236370504723375384059815749243670599671758646167088330133080373887231098373024229416335894943440567635154830834346982796626617538086343116273694154871285097323014449034104848881320740460901248758631827882496168450401706908797685129482047577960192001974460858919673068148735916863821114731036283814659906622714611522464490224130317396242823389097046260493965786496356411035552301390314061520284836033324920467728844826804190632338157641372916260293717818840603488511653385419340341253075104281173864079309294577839289964508857539123451685916692958620999466814705833299697281786551173086045932220609782024082068827763511859275490592154611843604118712157347010513547298439566105882196612750817969209382277795648189078066644127188668224523044112663170595119942967940678503403843115904826061748304520445363695506991087891511409750377524579601551121849199077970607956212982999790314870353485943429970450171456158002808455694285881289398322586745071462430449375839998489141443324200868207623464054295464511724923948561803398368564478769407536969575544801996822421292461828882525808744323732539952314899038566075582925552234175529185688401439914325868752272130325362912067582403271873087822793909790750598377766748871292618593514509811758775156643269657715089986508752605896310830403840565157958774964837217435376701912378892611286722541101230806575915822763933513924516577328778441521955689210129110314111983517172412880366378857233478513441843308748183966414623926812837658292403454224998228091412202445625649041201292389187262650332399421116226461784617795244624143066313978218441365248295340038471861951768516081185614969406884329464503384968319488332370098525916385778199407283377352948704303788784752595134097489573874665430669817472328392328297945098743164228825752667739939719208150827400704599640943032761202251112228428867391182092180459584662684789279400084196801671876507622841159909889753930215433937954323502146568189094991315047972431004595399476587980716820598447404417505474463688214174935578581855293768445382150547905619290989478983791371566928828124679492893521404563592716693417299497960312533321202798394539663292686496912631104674941758080291461722278010310319372261218118783924544672758046954658456942048267991609596337983145483414027261330787464164410938911734823337898884536623895409129870401039677460631959490932624108193086570992080839085704515212711334312741691183694411079911125665953667166975134035452795130915251520754279998720960985307462659797884342181737106185524258526423887584175143269945776401050494556725344017905284736924874789943216464391177247367838381921388606804546498500487393532364242600155446887341836148097616778246267827722156959284667579119268609646029785612153883509763426066734584520537081948837364584073578183406099412363215940216191598912267679087396038066528223649696135580731321896020230599224814235043071732351867360387873159763462351015055408078807806628489531436108201866337500091827512045396410585438502807133863183772005759973782137942303445770029181882570738928901229822977463638479276828401042623122714054414526219119879525754935263788132093952374398945663194797995632978529943030677382289926934851928711273915055571006785381800412682369554941501500997746580147007155878914043181902458457559782522182770871991434809041346755212874672316915383547469634986098373834364279510002293783588200518098881744113459998299393878838114583281570578125128095344493688291101965712071338616178372424581127881666179246000896501846443545082309472397491660227694662500268016445693513648159740517513459131595170209762634301167679806123862225652689750259004591122309359902025707241419380877752728958571298460583045552805844212345991500791373813299243236776368072911572771581271717325139584044574165195648756566747486537819083801452694685006565019802840904005822190846473571007483446140552165253176359127992268652133254237540281160395224842314417534008943203271068546354993857647025863023058828274187677362047639232137126540918671171349779412460599178982319609312202287615698539662455760309185164775094868072933010039620192387950335998319683103990458415281170678761150118787699884531497933934274605052652775882310737221161955777192676880357350304025320566457064749121553948171319229958355905861731823489009106853882007478518111578429450740202916173853485924128079105531300788226578630414838402250836142468798251657490212225102333623154415598396012825321939028159729536716767613811796873734785758581519894676370952402281725387076888898304176949916952295291924919323241171446380999572419210963972807877633737507059532311953334359413026841482188159618765398315655679443146554047063840870437482818501185687488107613099545808500827668606217339761616413487608542775987879394580970751668613419418338203522748584373728109651544686215035618876755761878554990347444787940611930760859920846830403257464936603379912841808516122167024689845504406061638964881113877102922857049131351439349670888770201032151392018958025171283452669811941493464343651161724188075126670388449495112694322304463909625793699950154864986686605395211266887973862073335386505401813310280568878272425877018885680917478643932384014144815372822620463685419399765512953101124531669955548296588659906711446548867439983736894285946380481415745022904260151525249747912232677922679753637204759690973241887073600582571296450024630759400561738194720812631051700370105174175095863493216252781258310561702650550457276462184571567690082120995451236801503057434801959882015019113061504477458175044094456774477110242641911305607993969705437693019071320083062286078703646922902320892332485332030111608053196664531067001692673878868724226007650067492084796883261203055801766349260476978978631219230582281391780926215310293224918960190066775054258242782024869448565952421025440428864334814161868142663372720323112572396706537525713789715658059206160551801877017139340250789553710705968335152040909233898729735520568738364920528242444252399699337303836413736361972344807710329529094056988017028940614513665470504903451662564878122657438682536298515835602570216637216414171999648692103033566502733620769747280165241760130787440949928267804207186180432103547877993434039812938899156963559146853267450641392746439085529262796822212335568028339529250609479855885802260840486688052289982292041819418367326918499263171645669091215241594818417562952036822459487898396466313413234435232746586998011345957746154606404666657740666871516586706151726897005897947093565092542211215229503643867063541687718321894812715116056552240557960030588189026840878902650578253287004586796142546255861946176302263997079438220319306682459931200360694404795742943574140277271947471345192419434986331228235403852010023971830073073445134287499355325719782362282952054820057157295571733913114231460637539417292512823866438093996506540823069086019184095530440958755758243884291923717087203387634143310443439410465496245655791826569064187088607385045649677262532192638914015362217114833360176155999930578004464892009910552923993801577864135973906025661248579681635419598216288035365913648722684688302348338095907999729550080212636477853176153311689288581472093797075868470143868224716317102661054062891264689034976515991228424598855877148841844509767128364619441197814061233089251783472100077267546478956758636825905274489942680646870119149458922636460458222451275173571358049983260609233734019705888193088700773318612647660321739176690264983094658984513209112480667955986638080381267280222299814705451185916908137335906410981279757214778762650404285669271672726264292928181438853633567300858375811785944143032211447146966607318200526004167498721789879523120314346737482481162374332848812507605420738277453480064856871381256374869985850444507155671370864132377667809910193556258610011581623404863774880195220725568204782959953030436171032200238179426095802215099769546930208496125874174555964769428709039609109078295609898976627831828868894242592184080798175912713043539606730397073431775389416069858789172657867224242090188229552368997389260823015096351110623929567569336919221827534991748280511417909323484655091726371437797465121078007744039646383875997048979671431660418447622555230976426762900917368937680955205893168827456037426063747256647400126541685610465539864327926746134343962591897006484062079410477250794110901093903511184895446403707356217972442008869819961535162472407328738318507581090660104266054297324354234088373265764276415073372129032281710094458982898399890655839589227944454999669998887590908099313562700262928434388642071349072139983766993723646361833335490884140772902973244998539393114177372070016137455608103987803185951227688357180583063292869693537908872464442666675180048297878193020635838488279732726430674445879861452573657094928954544743154796757207160566909807658267723472662754198747921959561086333261214256459209872315054671251446174529154381349053028462253334020206786607830714137598209907734537023447037633747901305931910770310505943327167891570862859678234945159758829976176665421414625798492209124150680409628166095849816969194167448318564055910626964628926638953621526879806233637562050731762495959090621479506531815810493981164430865618844642961778644341488234789502356040577076876114617941895882864492579789111799230266303921683140218175153122414055786034395069247257477985027869181131411634504206084323916436820993620747889623668963884956567259860159305095599334999144829927402254463515471008645868224382708808584303963940460385143013253212828008680664802446523148430323145463843549974828059824687688379920384779140000447120384807335569460063752427554520043598984046921163860431045871988568084400103579670869497085914480347302944915116364314318980035786214374438284986671687924197084544283331422239236708946855451782793903739611528113017798078232841914067836282813315704746558365887928946945494481028788781404913552096984107986696045255085297450294828076738123216802966506872104196291399500407843166635043589210482498235826005264363595144035442739970294138472699975414872139585219009299207769390007712675719209093723898791958822675383306100275722086027558278732940566054179030984279246557453764249775240863810199471427345810893395948369154803392020348837233396417746776760967992854578957748852281432402910258006459065868581226937933903784583359820070229072144757970745211529273829204504859583090743117702726118981987344940801482268998392872135103140414074297738835438002133682702773550243325582298025409001862885751464156120135696402648421007786130912515885665524682885639472100947796084531242125489888635321183528627403380568433754838953556426222657505868012332170642554839250540584257385763238387992006074020830584745951987835007111189156165287667166770799080863523853021438771746803921896450358828700173455471188657812878953568545662286088372163023898507593580492441664242995116967072866470824439727197798237850803742253640305724190826348888616628432249782482907954016051094571090855926768161696513238643148668284440273014141798415879544943703218367710473631539562432249162217720569618030573812992903066448257468260621874803365144016256047799745411272287406909853990219909771500637412400722577008115909007293230094006663603839765554982613359123354712715371759429388671303234735723516714269357406585390621156852583347553093305152860520763065949405759330774338424392362573499317709367448683794421890825614636809191146426986998404650855543992723994725165311174446769583811054978511852896351599456859543437559845195873500101705294931132692194756983131113261795240319248319758339380153384616732099537428101842637929404835420284144782322435174360954456707832709022416971559365496224136283847971999088674823343071609517809801129901590355448393253744598448471755497412452219781395161548815582088922477723075047252621311806005649356019408942148187031124494479139690315812157891747469779235146685730150750422032024511351396551609462484402186531221961130480493132466485154052312393461475880105619081205885928123424164608060880875025418793587434650800143598587180137811634909550657069864141650598287370798252347425695482078617050694164247377187739943374129264040779817306287481360573613125970331332534451534377913739638056503828423194145232207396338224572800980553975838292572715863979638665456527418199086011332122006914865681892020872621470338812021357071976393699993260435650562053200249783421406494075929490800653630454706851005650914500355839025666619352020221203458172908968675946904681781540737932426941998960593505389602168771250215674806731201016452359775807867633719835730227129219495059384732810584982497003386038896127529087770705507019729445088149921367044884104974628595671666859422810582802588123299993812181320058820672758559923096753706978108641955900273707222162848019477147944964164013010605191622939864841368137357659566807283274882495934905341413065888181537406666714917778216246336505365873677987724402377324987157796085752952652197158919792130651251869349647804121205500207338304197072273735832073861189676784823334913759155453193463768343218250757422835865513722840911856379759578720084489397424493374737173505684411114385243951074985358132994672901763643898878136651124986130953023299091888528098273177711262184618033756969596859399832997790599057376080947446796735478707566760810871177598885606897024374492261868256292486648727768122993496271593669046476056725930482338285224748479793745073338242038535231569813589104182845716050453825497778226394695424567581111838961687570642566245134298318066884856750369654940043921917563370690093890637173926860234200644535499803968865406756375253877348199600117906786740044078334154966071959395141460298776116632772332421897467267381828048875878305803197657655275375723106258898797533299847438560536154398979803364270684550794670713196355090727149358445975300740542672776022178713734383400027266139265987204017244384303973150980656948961402048192169402462357422740218540649897427633576183010001556844986894201196762981992623363376183825111147642583270589137764472730972658466250463298361743415896381896568779610779653640046755167429564024703480807933854491611715836824522436276112838463895860752408137342263699180629866139927294597367845817630442732659194722211199782585146148202537645296917894057520824672300690357243963339293434481991813368086356383497980293522690225505177268894261631930073644372428168136905408469740303920386627678992448203978901875316729882885054598979936486250967759519190558440817778051299339305362063076752353228638717827365002517203180401221558883288520035358457812057617648859186975226286925898271616002813658382976231785777726178106086389103482719392874831193390791611726825906660921976129990176323338289705598728337979857506476843204562136686236519857506464861551256417244540343988186829798434651580373073472162778339100208243949410901937701277673942814210738730721803859409142163486971143296966163324824844426368585718577011034764896656843077075987139765313403030528126872850607903795084126793602462510193950884191459074429241678613979353113334566083625987563801923541259006816222758965240009032867805963622212484147891110456899956483094562370995023832040393271847547839814243037485895188553196423166747028295365855969406527734876136715499082567382371447096397836597314416709895683126232518698870474380182126919997129456968205994838479285977090471157649940859632815922596172261877676624802650022272659134918876680413540157479862869271985752860763638521785699219089893541991363829800026183255726818097548244287712979284781997969970450540201767241717614226011570177723642635315113364937919983385829401343246020487116718005201567368234791861426334111838417281568731284346238882488140442414507526329697072778991770304912863344116823393018981388430989106606349545217925814316723469909543083988482408339733905935701287504837683368603423903532095475499990128053500359037777687814991173691050517829813829555703399959288299574586812847451356831746060496759190833312441840596752379475628153990963421806361186221344451569852016194028001944988589353925161616159240244042099498965291495176127085823452258679321762618181618543204142280752572819032837100455360166246282935383909908728978338778158380602758580036291781091824961255499007052970496785602615180134000719916348264690346825042084006359560532700211471747200677620337675892430164897945806474086612235352283594939108773226541796744726303001888691082038096634302936541037442807902555713522572242294873751842635457659855035678343656913292762578371724360971696344591772405237403838013349662758863984607748703101597931428405337774824356081242218129715660751065346158382100095954239195321793353947981214411211549893359717884795030097438037976392604630023204234649835247619745924603964119947062570244074995026265843075974822777393521497670743049700182266727158350707420163169185153223607516697877021984836824936528634654064727932057381192529749442406196399246304789536245928351734612512483630454393962748350340276672173751449814826592617826451447284550683658930858474465058517770896277880424310212748378583131065860482566170766070450759965975476609919051384048462719936974056576768642081430593939775455312519430071526813898318049319978282409795632459625387087769714659127054670064431452086680277725923080012279571199103504540068093560361066093665833028882744714928366378485748429443466875083376723455707981984095002047203714126176860147057001482922268507451567855668343362952292553361680221055410959543678393522355056839758179612882617679616392197702717896697783522714818581315216099430796493975997536838844392650241507780060719899894325584915565801678973990248501117239786482640156918458836984184610896314391069195924521147278814424954755439484295306543264676376217048151783796712479658672407500832094571650216881452758342483531608124476400682514704666644492596044654936582582836622982162308810688461731913919542593168241094021202766685303981276180884880000896251171873863648576365256931635131376190857517496364996332400836256793893650344468602205056441313572610502430027392992443071727648182402855301306489742989629832598573319621191806527368365321931876149739211317838211892555173768962965308906270501138006222479259438821635505547458422538292673750473030045669897242937922363445076472497249498683138330876594640714837683054231557239527940654814449993561129969125264278037495903841912662474120714843460021130623137486663676186685530302894624143688570723101463588589109880243868642397159834585735633583630324554779342958003032022995059459222510264801391824629897824380038723176332740325939592528634874714823972733756203633982998866124969507262130587828431901290256241630797130373883278284438248503025565032075768454141914970058560297117700049599086817411608252328181725477913903880300246058167559089846562097379222557445664149161293412299865286573215283438780726724679259270756309535249505185662878353730878983901434130488115094892774082949489650758689315245541582184163130348566114617954986694501356751646536434116854935546350026482186005503772882263114218875166858826046410729429253006906544763112157090292308900039148070993971953620425062617564159415696455178604130883769566455078702354723897253624870133905732893575224186406332071617730507496269890157461573771808921215193778392181827877118476061815490910928749016628979666323397602626957566914069023194133519026490861835073672788508511195452282862693713388257666481355534618007555168454047069636059083489412431778509511047410938494451844775763615576624039454887275990924457870884349473400807161386817699420495198503562456838481686691095852983152050270725977902916888604975798142715819704477209748812504656421819805290097467503431092600976283979716521287761433196195478477185551011787506968232652463264828901842447613374026572004232440115350947469457409795665277108530250289381171082340845263558159284474788171676247909577766766425474700950517756943364987679374415080443903270505943955776297383755061594889182808949927204104853980400495713598191984109448002591415451236089608418769617557855014372119892933623861566849274313648768392538912324387002392473898895713242922467914984432796627183379554797781970350928157520874010551976414972058083609250617805668749579951635926649767676864534671393463764215161905959821174052541789189426316993894864490347384816238250154839700076960585259899100840424092551047906837115402264760452694087731893665148315027697607270178964061965913106176371907608600636330219579049891674157262414617345019621181702352442625374831849139109708231105423945901461845602539061033923500759294708050283043837488871781755629747192395266263025341806765750662455151587788007659576471197628322026576838606603563024537489232744831513304111912703273795240207466239557102193687832263733257178255090488129282191301088994075841111661957101127114714334551855009636720207975294033256715378645206453689952470793170665440726446113802016097977016628448926466319408867579351299832857325742475006186311439560347146610947885732421182934165449850651426466825546564489465615527336405186136561927357081428311187031243435501311821581441156388948576729734004131098704965277284233888559018443945295657116956708829309291291995845930790239682650371176587415218946299234399195348395812467143019631351525452660070434015370613298789318535018632488877574057923882270305316526750123313332800651604926035528155157154750294191479136924889724785019499360032897319662299951744130027459091378954964537241387635070715701306920804361843214647639143523386946709471238136350339678051445211058664764385045926683223491021699520174379141527413706703740057685376895912244353421057960615183219273096715902903849502010682133239674075996584235791513935348253018133391585786810711263430750272115073654561080882817755108172393417332388231102998175958628481727110332976986080769264572734098226150023490050417458792440407507863809817836051320792975713827648621237284975137686180572452020295004119823000912035837650973230157526744286085801095480514244158288365538752776916913084463026082429006634626252550194665465588284584565020148066248352859756250617847821601423259783927931210332442911251107046803880505932033804416728915003353787963376331620664100285197056954103164624325332903185308117053199130173509441346589566929011793655901462116241584391534912476201126948111559967787273289473187322888734247990934702452089782081122790220422525397094408249687108059320336490181147980044544215850214480406954262912792947024781431253681714408947032151152877201114795110365625552700115871921270114193036540212352064923624324810670519334112653409310972422088351363629894527931589221420620306707849752120045221722685418438206981354132032345398898254571199346807715238770281601749089942995398484233015231451787143111212649656288242314305897387204221520088619395240577970388095967372041360082772829923940456143215465338418152120599420024910404175975965093968399574310631325018424146743161350748864395262098583106760717234098831665614047498177207035711882155559713434148278778892776122326025111668793033493881057029826595242896583635170022631139450150606283943803738269355930326115685922891560974715121254171783483086072706314952184891379054337878281194555330872579161735089123719525642452441378129226412656771201063397345818664681099622203824578707506802596140327647477339476702492022931255093954033951135954556310161273430450477367689086042967656937416242993836606682126090385960984935537485430311124913598342076766805434071574098443656654938169187457224480945610795260949500815924997229294808272876992090374756269004028716553462313251147726766521986437072400992048340345508209878478847710687116175980822541403745663685327343636096296194860288012795037093673724281707175912296008132983779862185332840104829477525381750878784155438444020329203971516574192187598674035188760857632673408599161075403990230978952737895501337861425271458005479266463370656966361415170069524384932370952194218307605835810711638902975296871839921593600826201053901829293487213611159276015331582678746156318291931172586558270696947010727642216996406137536836609064396432124702627595647658184173410888680905338687501726077819574848554050465073568245716655852850641821364565366949352528666445054116499867764666358835056475402606903502174102907788443434984235769506809079320036868352487513231391082975589771142893924635741999419072488914699507852902832476487809160979184359011097528062735536428004416546238451594338262343422853350825658726835145554496713077507602652688287194076375874688662776298357408811704955229940900894665722432955339413122957854714024733729501094801564294379422571402925773063014432087503896602397101585031430975371505456223930403622754039513082380890880259955956048133719750792305066719226424175320592994265406364525261870608068348912725489077908897716389581759568619387204930252258030154289647941952472149668318278784288612701587180463945569811647998324885695778987696223091668918682250241007315677114392047067570871528859674607046980081166249357151782281826194584618971803220281213964426865804219894798752624005546886675271168595132569904633550445085267922067467682161453846948398119501519299487122685818278489082929916424703199102374294856839914164234491933797008777100975400852866745471266666438277138702573776010781064945334441563662135238159462976770649016843413726296598098160018311519069272023067429615622247916868450999890288535357172193360854990811483028064253181127385032692303080685170933782049314556168274203608173512460382041044525556645936926393187916449955199848835264690579616400213264990432521791378343367804893796263724211009344768041699988430276961824074088343197690017852573357049287973292080163843648085978382970137428235305079930208766484983672507876380917869622646407699689206593729468198640392582260546301307529012268769097454638453692003477352892358814532061690874106791653172860619860357219951633192031237633327545587506835150417580626513021727020141082651907906902141668235569047977803602188444027837417137077323023772262196939067717169942339040323747670140736336147409680290932251077968986296217226133751546212558876012397437138577905078322221758074548547129622252828558418919553649706821824693349480047655453311188356743191917029325601164121723503034029736939612693972710849765656399523085412640060834734068428019794210461227690941162763158974539456491349707595748590858492064804550691087353069081079336545361355259801738136860627140810681867737210579299994109930109177352205329556019390670729462376837682464787954256304331245525742987285433552021962990430486382992127983665995235536992671564510523692124080735461894188849278934847665930890045506366555339455855155877984265967167714167351038494599322686754238823893993653393839073699916316330328267023662361829035270944949677100962116023313075276518933917608118640281634619799177903966896522096639118119239456914371111314765451015326557352613996423853363173011080803821239456453932538005048094357911342782786062882525563457019015385720367402805415485269675904881157310670822341793971541051664959679118272309854099325439063342604414820684583202297731173017473147823078398447210326564691325251100567840840685261269382684587139499531334714565315334433568612942190755651370158596287170092148622847019521789011161228915103243445493219809692691744704918059185273903304237561470279406465280406774365104166226794030593928754276620089070309471164756019033803444173284696325204340758493010688888653098887008375283414343711171451172905183180718356949884463689489454788516302006655035510395330532242921385205606043121893528785029395001573373418691326236288598179168260016745423748223719047122815198652271084721925603379772215900450212566434905942763811561807802516248373333252022142390209571737615869670012604524712697217608154015686580304080121808106313153832356377724852995159420049072317272950788849624295392943159462461954097559679369366972580727406311984727416126472004523150875629264894638046052665664649810558336868563500351342660249450711975736499368543414902628918878951407844337695686672646979577756141956663680991118048921117217776772451726198548354007320503590523804428295244592229775269231124493181670958672545132768144049855309360494013276473996986813001347224991110788375300909812987346099789892256055437368493748408758565308818670101146845676345799208339529267350546745318189238710461628203066973635383882749459344680562484603456736298161081892030807403409448847703559451153526838463379214750267842284365514322913576628085627635890923625616261921438041626648087983200167580957781474431761229873025661095327735246056242767868012066211602242244718672003932568502844635564183725247310701767262301939215219421481750531159352574290007658172679212858220121290472511322364286753636349290718804211910981453300621316525809622407406850165057025270052442877511609932283230207342694499367096800465196234925862662287444330593452608065532362109740324588818677224957376305570726691914934889899551301898138963615552691330429904450852486901909911778904266824388666714887085641111284725842612052065553383813681864510868401229547186195326995019259587378264304280270595364840202316876640220869164684319840423889209318187872297442793536295576054447495975309311664628834898708523306585004120979482478084307989444816086747481996942166268795132828445044979396326570220056913091511555615091038518858223425305391773033025994295407125407815043132250521009982394672060589428374014958713419530700806151342079108381527356527893243394519067305527005754164377364643095897872640535649858250649051308041327274779940859798278783209873738715619283807809567663745979616700223944952097233462361062314730709820521597820644366766524717904323937141543439023456005655417604399151402926687180186152778437426394599742113607833738996038174816014103463166706060471426998084207878927745029149409423440134295251322345428088001136564845299532358738516358484086977255824499071464097246807699167592747588721828786690332714110148539294013031948798399830752865330280610022806206690938770615979272524240322353281981012896202501621239993270970519750426978534591847672306170340967418001449049382512441928180675636507844101832068364054624162809536994191078807671294351484551070320090542920675535765759484395282315863008306326250102124708995035504356336621818173370765013448856483725496679809244896072866007276542315397378463646839560331427241394433277498974175568023996283061280465293122843362020960838133328800137585350381904416095107903744062361813634774565954753858289349052950227972935235456058675055833976362559411132612492275444867288900043256486197373223626011454063611236980663698098720312640449916790565073706276855662102997875442271649134144394971416768356890891484082891928252892851136698789587690485031683021865011789795868082439110648053306445555838475275576535146160429240781917727429796316688947195544450844840504019130755889276164542018086209007720176937742683921960008683890740916319395572126742978799657657645505120550477561873778503985193971525165813326555223750343650950468820880564973557686885989413788368476951049462911323011986268643970686946461020949358918301553621415163408914924166453871541090438507198462122639546807364204555937977674526986447924494069087548787301555714321415885150422591888302443771751886078771542725723429603323847268580145206573890765041738274731844085599977956700333524317857723864260375735282826331742241660062379075537936025929286985454435544644480849334557564035385114487518506616019186460482245181181629867613598805461393854517389519303701381529598679755224861387202435368425455629334265215855023855455822998571091348171202498630809643086824546584253557483532537886142156420315058329197205283611173415471067585054014601776080484554999307758300207557515656264528569917283093524708390037397516208844914297808049733882763626124573521156171407223411992658275188121172742799732231636651374954262790387762575481963104932000839626475576374158878344768861229124707133318334870661935541451508589819222460487117696574641521618799560480842916674751877933327584158078667418015607399862028340696676858928269828990000179000119286562467256030034392880336993143412031351494148663284784367573426345318398355554040773421036386909241313071456479783809006945151629807935193134448148235933644527551471972770250171321754908765209388708692887017849574157916518771779898148947637593144746190899638627864712447168089354826932062553130430925598896024895510751234444063716134097719798613800127674938635338131278137515139911480612070680160316702460823002363324893389604262867535317231832453272916053961165608204709312730896399684760025856102645077488273132786323057031561745265533058624991298145269296363714743176283375487961345272175728123860796883275231795638058251858144387905160050205312164342027236245788311624350053169164605186571951793670693788798907466088185603832336503468486664331437695551287650170459607770108164083543363235306685620064539205706686555540871049332064013581219854932618198119641296711710104421793801330939347894454968068875793385720951336965144296374939631393177682402464365980459821292636409424448271930316761002340295194469917521721745499331515691575409513256469569773137016277826647962365395204496835227928839876339082905360870175342858536878983191313769297918072343498673974020291351174614860820391447369378968718301969692738588031683286273011063118363117790902737895367708493135190912610634381171610692035261322971059663908494155233315793499723792233486132464535313123316909851809908165353591885417638609190269919059921410879323563855726402604525254147865067414610078521030000305001508003615609170515105972523236190115915235811641108087159332122638364535427925129683885215330224770043132060713125924175364270818315309150406657790758063366361192514159837421026206805181694240976161266032135629362851626064013407274494344385354111050781046711887876274126559254584241865474243297118584379967401574656434885601594456983086997278866752925948225124942160016786466526977168789669228527461214872579719320182920247146245278812490865235989517439441330285707121899909361955700510314521019331724559281400758522588599691336065093580685154440362891471202771614903475834628597466803062148705542265073939827237404969151106384627910521632680897044722096648191204657548256631607079618336771163118861955177590125107937313562612687144891830319363453166827432720455665298121386983435992481217685900001266558565734460297773459558281375885538583385382589138997818936595837972235170284610523122956521445158723757126794195215547972788899287198580090188401899823637869780272786762105339740144147203265023696205283999880308355023967558074346102076105805224086568942858374593193831409355321210496425619836087888966259235553973368095598769992618622881920709871363928342166228127271216695572032226876266828354272325068286210019227681030905651249978973851544703228336648483400755539426210114315313526372336810776448336261926472978450102078388771825053819012804829349952409079278491612636772729023410835186605679923376954648093772539945147146947175563169783741380445385574223519317175401312840980410560042537104464688330281010510334061779415584137903213401685628188766189619472460109265792283747935274822093907316786297733717342381794044346702835236372640771196625838010439288747554731350713345611895394007676307616086304891414751068889589446856049259005940426677912465933220665455053093692721915800017178937966780324234949603568108558789488269364996464944262533216510426738492412120523889316517193778639161830869379885871398503493429272633210037655187651888672236463364067383064789418133330890998380510207308161456127182055458411916820284802739403656362932463473003373442518009030514663397984987042915340101896931732216385124324673113562894190435975625077099234830012634788815000517452935105269891846787065696156073290045282865115531610942355821238341353043777565643589850216438496115937535374520016425953124885009275260983985093473876322248514202732669125028320535711051853809775003013980623403552632569449703603596218907712468155113057307265529808688221997638626771044207644749240968008089831714698195055957654464711330611587250372691354116994742780480330753048737729909640453652094473249538891336963908856922700484540726706748230237227298779763170146739025905382394875248070819735244893449981730450401061538188670087607405975290419001351636429513239582349338189943592046258034778383668578294408649777569893303753980985095147871754923321180469662402542182113345730878010002499638616771465125306218957686403368026547798043486450745900093360627782214213911430821578860984172216701431274606116093767772379153701857710993568970879051928818244997071591079248549769157932882832640501421275051990169839981503783484983468664079766050892572732318369421118036707085219241310168407543887320646796748625693311182268667705703230973909187649106108866346243429840691495232456249274962574095138042532055604689947315454348478235869396081023782185650422090586482610509514025003247859201049979298086936079835070466747596938750398515343871919498001966450565981596741621624454225697849681387854945258737140370300701811314603158319623560586877402591212676618909817815764869666479492496851518161437103929877852974828175920160909408846978026830849106442562889075098018667132332883450784392543527645433742516709438078104535272294223192657364041982158342797912523086129777404372073857257454994823922634288432472859480530532479580187627530444863520809554437321747403090089829309294432375705055299527810779177361179500731459678614755542102027244564435086598373955509529326141303171035835473179029177169937969646281822166818998680726461414466537689439461320326394170605336700662251899408651145332835083566068403070278508096052218701226046649038214537580471241981004256036861906470416722218677392226705756870260122042247035481197563133055458178752082840451273511421354929875344565706790863464664830134471496806777302275985900447667208911717354538891451361519305731268480672493772845314564107806747888336388257170057437738650393186652572730441480889410466526522345778762339547334100681398435202009597821519859917529726614904378794014523584557831336777618541543292035531609911811193186021905255153064419202393512482191795597272786292325936030849495975907318884782486910327224782910438075680206362754966418559995899344201745136331749901623892368486213618779215579568203376331560140945230536398137564918236330725468400991660110234978883298234952296000740721231358936442826126962844824497614275795441257701731466406451601352884590919167019075222052697079259575497067662306159319120052989307457175412056011542387679467998957909773592607013848519757880973865244145433257645774096892087787083010770961778552289261894399721284399178762269836170395218753643228294536631287838747900007431501729226682151643022342369406807409692923896567934594636764347219622101595840626377164675892607921566552620217446805904397960171094132200560028257698708613873040460552532204892467677276275881838665034842529116532870005985494075088479027092960480129465947004764047914450666055846008310335117349192721780036456309355455998722302394618063390930665916738375162326500718834412566904857263268068694675943089605761818078117072225015222208050607725459980399804808408875399553308840426532492997343710552945647407563753629951211358454858573760126187302939339003966390279177103887066054235585978119817492802191395621405936928285679956260813277763279434773130613388173893384246120771127248928728337712769826770987310017075224869504750360375931368246873643420416731038857519168398458696122449277866409353716481415848201819316970637823486112069035048966275827445988506374719772218968248201364413082967963440713255050465258231698665615442783658635493214682691771242312045583593943674776152933741064504302285461401128640389970846368061449745403023509382656731538604152137028372980919419326779210662801297653423842200599722684557964729351875846324644947953577331539934947336129179570156332631777027738123826091295957296652370680886259762523006288946380348870011013524029215214674316820689727208420368294086611586926191791582298528779574632488983173258651341169357580569448480166966145656310214576769220514809989973351646339723880056321991688355327918616957893005322653628640216345815940939552137173554538551004884315789514320042284664402028435344062603381988805234011664105064146393138014348193618353207400290123262978044380529349343490315252439713524353634565327842640423377873161304376919544517486274108840340885460433776641585878738747631937506436643470696374136467316756486941310161024052832410823903845113299837613095399117850896283473306438701870268465261146365346650659629597997935649055431787339872014929379434130528611405339718816655962329834022844843365559358656250024905970596765580037665010585326904098882811177992377196233780751792743204262208038021791916872728110791632607788399214232779212833854464040585652798870249744466907306983769741299749225105245201821051588849114958566519423140850228483654556927788035417090467516084972542903575645018222554440515852580167824728842117206523564350790141782560904107600989725749119309378111180720189119248846324154869416640357868258426740497761057771874247283551297966012164824513953155604617818554169315825419159537062818541545440657803061378509342405932783364541314897240812373656470081640513240043071399825413197139676705778699578259098372128633981631859372246124043140494593988081516360499749075396230061186950020270156847986090067358693146583230356688783386877481870763389482966853257708477168650230169467075384099902159986112721916654428361797755746344510624028915541119671640736478942253508070277121746173735461469420676287450776810738860076586528881233007332493301097590837707887392154022463848051396005427004118782754088129391433301388072605739697921261610771112160246920620724007475004967128948264965417448573372479097346743426175721462942380381762130190487101160548090713289990417053716372366594324137633323677763462719042794671278519766040456952626880547527266380440378275061951260764461233349630187414464611803139383146281851708642455359268610798155179855912139314252794492471242494394045664038611447151577129373269664490580988272636184501468607759137961170965334638472166581608341721043081596527787089437106036760330455263573991555369146737669829124586829852532712338459649499056031963433910486983966425555439330286030993013885785513992959190905924806491226921832136786583295966384377137319252099401586384673238338422187150848349883597998222747514017601454464800430087658651215709810361891880774886490565668713015405524164353608714187222124488503356884509425038226727079309147439029247241307081315258585798870516590142830179119329253858534215941434703787537881933446832776694467740246806367748843558089787125336264093449390903834180747994403985920170764667037037269681439242628301122192726903307852480214267428092564505521061455091828203583950481347928608952443583190135404264575209672592477062644546636350902684959548991794556965502824505513372697503877542493774081649104427243811834767898315808369228165988990051384227070726295210166151452959620477774852898536560886844230138205673387702138897398083754043574582363718499020712900985705846823539267628420387276530983214248760755797278581317514856528802385578280166294389229102842217066477563002389342745125021649890064857769300323391670516464086177931548699343159667622163245103457641031515559411083393202165726899125972314173738776612368156637113833127464559761041130072695306621937888021672627875834402877200438798314178505367693373067731514990760217832749365974558066063682769878376656343082607311109143097492119353390118850876959534711834796653243277667860475270528623034196467711032715900439338642317629439375173199637037230729466392730789385021949822667110303894305081125858150836423878117590377321119946973294506995344158640757354158253683626667135331918828916495447018525903356848390170582544493793125644623680057815407877896255174849780486887538740579423317364360786012556954654453991950066428829938002121782931069356118228769962935591700462052956475111993555996273994072163197712763003467169877877770984435750026882069012290691541297677418309926913112927108454245399410694071365312675398189395891144696935685408581889891546225549086808652902123585435648476945404067934840193454940683867801827335950161246691315903136775780832572717254836090897968715917346300344486671953003998704975832532081176150503185418479471649948080733745610672333317739750812798718953368410512561118103480546416888948008749040141200772503826909507911769520888648919590888313186472565959598453604441002777197813228271637972374402846206052805635027119239715228539410912690558817696140128766928746101563315733693314363379441639412068594781999295789951675504642358269008821764047645461025915298208061308980145782986658165669798769860187728889831985790634548187246835113361559014897152587566803785044237228950122508397752763537724745161347204612826384724683769253614481507619911781610164380778717005420240672160521971405069107012974712507510135836365400665534639251865568509707383961161425353539498196615679699113119127262668637884531493813892943732183036870050304282500704735371813985975540468233965362751001134937732269694532474905239037413175085537250998550929683549059700805864728794885650805223627590436757168599573497321792513303222355360919417540541499769454192671381705595611078860680311769155300724089146290911445483320943500249235006376369344053346323360397537298417720939002337519863016095496079874410800372802075985774704036666065342347042386807044801916715811315282262645343649120839763544587851702955999112313288783127933183162286867929344699917627987956630834075984515377897931781032159153695033242193856698472967396979866877342623181033027882036993344758386952988441049942502258940644027764172307937673220833778348469499474407984929788072899059950413916876995475164128102123173253799748477865723305008926672891441464971389118799279249620059735674359254306201004881154203199719112154920024055368763331615923740057432936254354981533382913796261393090360207901878650661776624844355669044966982382594321963051830296370499891125485532806704371689996433006195482682918726818805923218846331746234449234542026774205741659632919125481668900438716900862437935366966041309115883864544033507785083411190264921145974708948544951423137348585626856577213524026140697860986890433418342695638017137253739360435591851029453338012370328291350734829003239083251561045635710801175670974116532416289243177641180442926742903899127416262016787422706215783184963342634490408685891317502319070674594356156120960327858745556286336311165321914290639301018542482170473217625794961686790844673143874586727029020307790061358090651681014130358790490330270449381119073219736523384758274717231247303769361541261781672832335774079454956828622925011892400954748439231724492496312939904783606550467314441211941271195751077556585935877811316969078352474930218809146272906444620868560183148205915087373457864907314904798749649245472932906383640083232378749407146918375219803763885840253171275931326525522464531633089578368575898415773115995470924688254169761825379520546702006598882636119818452603791025553857774564813269382756240568128605090968246286390458338138084556226243181629685518113693015851233524090524486805329787150721022225566433597635614004261492235563405325416155810080795400483784397210487193530809257194823970567660033526580115557069897509439837757179986972551934307438974030520112840262684755150556160757511334246706394975385723418385089179453951501818822182202449605421493781102476928048821847006946402759004615014280188965602881105358109243917705638618469059721817424233775032769267614288860068195216096336274563908570952742692652282651740022901457428068807134734406026106557717684623147827474472911666430878161082968642314438819662371014648760372006254741167841367194409487929184169759555110483097013802884523164369214119609991428346637653199722125305504246082956613796216310116893655010353741809736751643317003345462278783496829689829211478974024570177639005003565308776325331014770707753682374490322205634754824349452229181250047863547805666502625321081778523017873505713507316726284681484901320929886860278388154693487061044477398971317704441155400497064767549162076987027963086868463242495392939985284359497534963075992609079049471243597448888727442954789972260293887724331665712298796559776601083738014188352214406158825546578891732178143316186792226323892394379811357244288887784079437879028397150679396248590601035108600367196049547559779104375334145472063408128976561304706821436559787870935517194286560813998127453018407077927250684425638712686446706415648814304635599772669723047941070623617228716249716068702237626132348851317384596465671041977567188843661718077824830426901573828608431180057040328500877845176739689627025000010366196593309817379597306338437991926518815339042242677258659679914767501914825175527925960349580477177623549410748043747610403811194364620812304112001678537654551443431752269608334589805475505158045330952760707594552547416913271399863535742818345541969779429334801991036221873829807114881848775394657363100198910715532340948521498907504422473858744577147765395129552238513194533505432565014138380251374258151399223570946646043643275930004744564903103555632503931113094651954958792166977364610174249793722978766420388169439842263476410044856104291597953590267138112774833146030230581036931606254851912411662027814504909016702286852586081826185726098449484217322246840379396577896536770458034409533184324107073710741206560888029071040407679927531792014119231330050831624283592831592954491995131153021472603572747602289570746327008466705647628790130006645974020158697158103484708117018510304043069095071039245999704715349095721834273563721074052396416097385925174131310645202853497910969439509158209847612808224935968934055470117026144479251746538204922566966066211351684849477265784955743610926644454974753348026245603019431764624077386022925206311752302887065404333094420653147992117059006817012323466533369404413927317413447629408642678583125529634566031018187646984261671493679240429321650815943706204483259199487996954555114774756148054669602177655651520818433539147515823542833476839385686168946880832581404485742520691143539241420036203381221185889520353250729220699928774555883642425014272920825506991295911663624996100425468018564788629744633112101631142833016605638230911241138671061269012560247341467602053046781571233802096866991903547701517596658183359973913761644799541467309165817560394842076748533669350518234944440460901053134021927792951609879671217540199703552363779094146591525962532040560301295076675063656471377100355396467914678471552488829047251800704804773205505558346459709080171040707108971132073641367871295429861263773614900363341059502795483319354849373318325883009786801693474681118296215784347433519460858628714195205417075546431847157113700055014803414729951847987066227247234218962347775815475882719725710566135372949559688040881496316350763106493010276949190829846062011058856356354096108488598013473752286996395815566475086867519533018435737891391275152358818038727782141234116918587918901570204947394396805364595093004539969801140509178680454278501201007655310817071663750542901086484725405031773109918358318575977059829675919655957225148045522026316661556094370772615662900536861257885898040679758495385431180288195051758941821975036954127657612804416456703858708287765814456274716036448490148600676828608190744385397108260981771023751038146229217571706879749820908587766332528223206285535107323376639878273875160577988930392653536078394719678068524483147080551021744014888281472892192762232252142032397279912428972664269460300160274406701639822004651065175518610504738348618382648520960649130780798330125692924593997673074292052682930254280790016348005712003060574990076388967388725778556392623632208750591719761220565667453351289401744498300646965258041704158744558411647045017260187711752806327201190163928524057679570218356758085119563850066973988071260808092244523453792824233287779596212332251789765579707422560341083313434956552321846138353340846985911304460461350076845908300880247857560886540835954794261366321030749326169612221508376198614011333024294127611800605289413204593384574305103429381276929268376386432765550489985624386918013507038743036641507503670603073468880243485087681878259198528636601585926639398709471106944383341144239943244968381062131341587884805687034168271256735310953995078487543258038546093331972916330676078242251304135276842186766109790723024241703154948570846747094299857354034350168588163897576960658488423006763420380832974563678235881426382438960081137300686917116116468693819092837657497781882666824075264476245549547513718052842357183097783612911958244566349558180183804847230295676586595585652952085924981530455908995435520012569561628731038619211928734407244200802412623834415310862940655532995009701953684578231423234622749005254528008574536850234832131251578718586224019717494033563494090253088086012632947104918071684170263756534576242020383380011282271360352610016327370236749166021629246593169273149899712340563460834221743462795497648202329694521577326287766242902377663623797393457793899600175931397684904550119272985615597648360349345514626800440983020670797300282722573603250699315739315472288765897466123560628948278006848693263508056747270580258876735931700339739049142138157051365976636371784380436261160824992789277850052595369766876726931485488678745611512148899165929974653241637910428001588341241290479595928021638086905611319237853048719307247566054532314864114908098926498811779406691026482169207109954274578449544426905223650268406830944367804657227936785323602662284470756195551130029711020458385803319316273099476509208436485588116503259846471596133464298997108192450523337518428393667227455583019251246969891476048764771783455644077746979751063317588475845835870355760158554007349954796226587763532632042701129634468539385929626041168130770227845078587697731147181609775543060657262486807675802508645714444018503581553162630289245964235005433552359114002066392660625225847873292639605864440347775492475518909236122546878859458904682315760351493611649218600676546263816218403724593184104595153465505907962139842206524363186369105518380086448047169315090092654513643708267309775270353209410522853768582509970805321588122934586277806404823103104562580259599127180431877802744688012588747053014201584510101604455926015701905092914729764867527336363104061248747381435463056805596640466462158721973556002742010255627774615207100563356663349454947753922078034311451374859774675519270473962555139088470091532739405350108911138158580171151193716258342570830247465849053882713195235501694297937407174279200962193700140716295279081440585823773228118591727602118909680256873810779148550477611345658815556774731052006332687890490195578384652340176934919408181512738469580702098940151899234543842811782999089246086521798975080905167082354371651709043816637006346773772743075514492733729641350140148589523555556474866103858350423086623657406400356404992297993523209943683177075358538156225631031268455434488561278256737763724532291748019437479620587987128736285243437761592785001366016187293085919541302548287770613382684111123735950047091171144888530954566390530761923741295012940022389465220467941908603239899301374140807117529047077570439748181186974667010000221350628876843467261268802711108564033155136146044679265959188063954124196278510937563172962025329409291707897997407357409354998477090986686985242423125412892313284455009707676152198115839667628599167591518955551292458145707366300336170476984933152832761686356249399842112771366397835005418267396864666018562972262712158246634595809954116889380912849295007895122522929777898479853420868293597293643863793113195880999276146734889625199884417447340265282354135761903239483736279013933507849345388202689940264753967748983863908767614736349059141335894136394292048630781215122136950619736493618543847168987208972396295455347314354918186105643880936553529230966166736758821579754136018168856711171271651746804865999899107811392072303001700599539881039734544913281946716543092900024755712657713855274025736761149201881302657717510187728659266030155829882116869111791070245015793280018954362516061605000544479687301186847509060769337189214571935943896530094245208476655448904400292167526351457590586950880297345127810166590189591229318885883112429042521422714395658629586229751676237630300385957487879256898482818148653186949221088187161397340485147848573261245875396352872744851694938747720746897282266790495329993781036275012871375548380354340787605526008942540505375409695052972589422425475790273705225395448020659810206875494668434766119291551373849980713189982877631082085720961439597578517224859379581961364027106123618954586466453445198209645211496375566209971129242793691919708003861431749334722747675716925568779520296832150009341223862730831418109192825621530923940136417255370293395170940490735891696204327269246752054994513926868039662974648366380953518972688022109303622312879608887665715963038620446713450797677401818055381469483775619078718344405869650723584678267721401532240553195035178460344874174578956134549013428376355137535447257175950078991234329249548371157754427708876813556581610850947890813909961873004338495643582736377027390423807133656198390988807638974746962569105467383919289763732430092585102028338060535573952829323754200219368660197152730915373723493940222681359247913796266901434779953923860743982692967005434366657485791829293781109007960748699034068957843032067654149576158748987963636441315834666860707357643019814814476959232324589638737833985797198828050870238132446591317363840951415556782664355440997578327148852839185955665544709977682277853867454790932740932596038796361591566101849831891719171582191509953507841470769801722632961768816131443589727038768947876601674174581073006831002159745827777385546768712950393585021153937968540611249448508487125139300400665644828926663202896307904190198646624076907381055371101608457654684258164081867952045877753453749761462479628713185479492095420493573489578345890904784421268169478128050022323049236725679830573666073945447931190636031329207740117374607286117610417446622739922071577645110565726118403741130045140069376554230539257843575494200190796146624126681588338643284615318438205729866139900206363663719968291726643736128555363022355482557032616531375118956578791783822760135724779410809367496892042660493391422308551671412651814127513266694430860264738415252260872641653526715227789740844417686674285820342502900710022294263114231802183208313077037900619113198897406792749901786174866348023673542656325886452488494122033661892305560078108811068030887040524451696904009982530363372927940274152335235567741493640347808131218776052508089487408336963841257408934940129022288754939968087008426406465640903202784136511528623200524329787732449771621017393508762838518766329897363722637529952296042402254405142956167908154764650333022258709353253623969077955540374647729033422395202010557086124728074616283008887840983420787453644188080448144647983361804427770579630874834063671623873002226811956180941518364483785098926524057182968761658032226254481746645765882944487442800803082791221446371445914409084527132542538735543276273083548387227963099159401773911465040121343936328532262883221955226158247489212971619480786087568192375457225665165738320865813618976242253874574378233453400790198588489044850199058409026120760876966438378402018869980437682004423685504136384920361525762532067566853355286758312133075355413550605356676937746435273326795197984197619421049317852473396458536906296025911368779264655923984617133553660239309937866326408673678079859207657039682656345952009787108811641412457816933034927751457734527754580795961872752688024787098857391403886079966048417134717249991242855535743463634589868738985304893815455866241275050260877962091572103750673021684195656030310337185342550387013217667390050695895156946112759979127928122416951561277781917828871111550730201037800496279925363926893183932015811617399571648784211207098839322441024611379790703332354519468618278832975338852130394302095515925925060110806956305725409017678938088002727420563615792048817726890577088441872028091819173038961582917596710159014748919019560902493328959900573009894641733619548467711041233915712561713085285345253712973873585499072613474813784483214448979215626656820101064822403362218912785808986328045027651480896702271270582129779543361648756012859362154247547809953928597311285882347976021164831769576076187423669368502078581693701801494873396989468100629212289845202383629473799579153093701520632168768471240751092700534049174739228159534509840215197418366787537763388610770524497755384718821553460188653753047399035250902073896010821025553041497510699364436187921504286235032704194751416625800672723822890603258297800455363874210820097547753267750449347908190398161304851832181794017214514876074436007643276479768394979624233744294510685459676625064369174447823875213128405920099973303695024753830422249122766799636381550696104414301757343214795155372590434441599355514171462125193223148720087593180148764115973637807914694874275756654394018138449222682933133160714011525634259573752369389890003086967592671181633116536109378627681236916141704565101057868238731189951735858245493984470680000903268863696461537451636649482222933686600663747656839723761067443249417418413298812451475605787045659936222862028001967691183903971907046431183499036763742862035016599155603744122487228335145849235758871499650250589645159707557026152326419281678811343572737205036301967596202135982890996739135700542326942957025166537571848280605024256962953595845960557976414353164870283893044398389224400200730116995027239651249328298980930187477129204220184490078073586956116976801672379214619056584828592779055510474790728938086104846655877382620592748971815850051179052703558289534764724969972598413448255214283632960178032220755817493902962005921753257404177051160731147224405235073443474477904818622618197348878767713936771605276185098668454513186575329128549087072815151603241069835131469631798813594783266169347027610877081626520782538378207068558374105106887174241092487325572265482518844232625254924404820593262334789153477737211904703743505345192304360047991216830770158662145098724791534584697476481595521642350584317648592312074694138928102499771144379926507298396059540014307244715999113329623665052523844949350657925426773796977978707252862036273375856542186429017946863623753808176254285632706647765617688249879891612803279471261447306787861343929295453523395646425039303586353102328116845228124171602629535581948821695058832875577603659724045709595475298523691599874917678381735710335590203777284255633895386680958683440263650419706670320922728572489244165184547700322706314457155201905939176948822590291136807301762242613962344394053708439234124884205943219916994429766661720571522875417526448169510260376064519091011844128674074854030977505151543132351515911085586197343357709246299945165248416215206609541627309904732769744410225082933438965686317128877788465245360241162565782578625592535812050141277921952539612605962917313458706057181949311462400515143619276945447433456933141943843140060460436916000459784075281059201950708027449787789283550741954770307956413352025110604307574454858064317829326573955358344913318737972627933302243443969020592248787208755828277546085320102023658540207335364043670494355256024816675523324697552459030118235528038889892679609575695583449140910406253837442835166616159329266040900318490252750280574420673767475932263263270453502645048129805781605684791373628944274926243543795057528098034470182043057468791802939180321562743381980152960471032600787531537507234844914607740328919425200632434635111079316221497372572763607920316646312663853615331613766417245484724523537014706737304473272479964457636955535828412810304085340496319018494048709645039111179856930728777747546438519445113279354890715383490044255853079955698628168695828636506244542822935721089707406119899839867648352651041057898828190009263141137827885861909452713780834897868124393854360222862451293716452242850678173231208456250873757213087044093682220523299438324913207382244088815365495575434780040983259192732197310462858588938483806321005137277342050020155481717928958533438714514445530771944917098608226371702850554787876138755946499021423553565842863845108701118288191919863760211456417757605015850000581313019314003804690216432138223553352664310312149226299762158723411223931985160553978504055471429330041161073213187607218742431715108171481165821050741062260480974539254457739853794011477795010411163353631125729330939241390413871121953282350691270009523020672582403024166246869324206100615066316018457711351153196924711375834963473851308266519057091282320737520339128329493584866332936173698794313542762607344994735090978724993875957036750460269753115374378860937195750372626126755115188154437647171025458802675640972640787254867406052654193828935771375050427008409114170694726017899139317444973818316804228986199289821518384980435208500267042145229728670644098671194733124150996411620497946129823823492895195449674209358599737367384343092923891055994402597362802383587597476388323508764606851795933439123325623167924247498431080379591136433488370039964331611230455447331721487350319371259259272354766491341341818116797855079210975139394702324186675109323213540897378969674386456293789232038232601631441613679219745273364855083081127930076152476645929281714010031804181598283609390175082258220577992493030345882485101539838647192204681947282775873542607777858686669524399017567231089642848990031054371459416223119742344902036599186720769046267856023803002396736134599880440019751504623139615619030045886707469990247196518893652362043012329350940427263875293461263402714907271987111933091932901079739317835939044840338300171979617636001692696212348669592461305200317658770784343648365100450006433463191609182896875285312706994983125394750152087126500277375179828503574537509167487096033783909738119905190432589733777178126395451621798250381582644523961491612243860553838783502257163126492757566413534016555148832677765563639245107985566648214549374697457804620984843162075519928135734844260515675389860159822232845776438769176728983252674233394981185116776991013044414759665138525186658497932761196609929143836867427194239563166448904628757265349009489754112560838822651158231285997425394661082406755957931731939991803416777381742841956604389616467749189977010079120247580770634133990385826814587652700143815057755866527773550245645659798041404841453462231314653359587244539152220234494655583936974582886308699397262026549936440202760823842259136964841727898307487760437350492465659752129188649255901223240666993445654796334133111167106540895104799181662543266193922598146403397131375995488262617215197537469726989026913331646928180207246367747507403020315592243064484483491125692049337420905881421935817496803477339661155673847738965148441906398005024654981812004886266983756098932256248038194112312843104350069522941870961066770326841555273881410213663795704282289923701276138358950868498724928619287436620835085649341465688909903296996861311500546716033364275162650757235845270381074109867572088137845177945168727236650436488197552214555753944348687051693254845801132048125905615287665132060992526730259079551319086325227967665272851985627655658064655922939017682892583187111148056749977067644939284498529941518349891984795984051118822734805779946792020498999278685525532631223777574100188269735772124898944680038356735782644549111226889390391977480171755003209186242772308292725742784807825284881714258543592893769883777898746820008516192710806177976886865456611335587594159957874961770128107085441989174897360477804088880758088274642497544376588588868607753190728472347770621106209812089145975595172424924194749136740315124683455753196836025724859820313628861343515886771305920113267215755798370503970195474554436154491709585138958910432267133101575197502782773956093024541208751467825782622482695823691461635989853307253655616111892390159823069499782945525732197180166982009750010683491341665213890163970559745155744759792048766176525610295559739170477721242307782908472589600844329890201021755230242531706226342263721286778374425457767598186516951656220393710973367735655803788700475174212050156359376470702793379743063886327998518965024045427533026094036677194378873081510819600900819256299093368896244271612381529245667305339629531711145622071471260817991525441608382136215294796745983884784151597840904244541854881261664268424326450820846473461341620835033125677753060827454604007732144645089643527974296512693900535177128848811717162870872002259278012086616673651021737347136033351490514620393569156792928683347696756702894523498517803425342947995658247614964721723831052327594229752420662750474784683829582524619785368490045657449954352560121981534997584246060503047458857735401603588502152197216510447468504586430501836471188411671556923309971799555673469720276825372013585627380895702373849117096157581023439271419160849757228420112508721900663394198430655367511828383816854088979174453170514209350918051035240978668742302127627657016505868123409457467422686184707170894803426802864815042718463986550325317529768500598383189981376756892848795565753919333672170924482580012469323412604967970077760092313085860611168720215023229256193321260652492105023911100623468853313337393003073125574430878522239482425496849886619109451441838576633439893583233684943399563065699147056180586710042252747892657284586584406678289161746810863546262464064363672566676864851998182543500160723523712886149028342618120082352194634792634444207520031253216963344047471866695712377931680670415381647624383349989285481971034352023743686745168730007518189906943843595105805711997857202178275453204838406429080589852043378180484110225690234276303995384604658549008581917484265090731659266929830576014840471868521923691619170144999914395956881427479578471121469825180479533670214222128848532500930501323107714607008094859601964615749230420414191858921221086442019342908848550125855593587127462372528358087151242581156097630481846563075906905317522425302278062166146658013629419221862536160969454864225879896221776119274823671037813125445271673955354067948665363546435019608483579436765585849324591995523659972580261542547120407982799439069356606044531604521256770331463267321271643760463404315669474024190563096318537605886117421278687987890585237664203694693850902424279115858687041404159655791818375154442466915250158047619495269456866357185320496108649519972002853338873679311805979184910689806573679647209332061166752510184262804593962727163502056257676143880869079386705608835811380719756523839430125050543907881987721678091634130243857900978334946708894891888951873999199481807447452441045872096071300054206473864074996389330258532128455252056472185598262973211692702737347427979473387959143682714703643431204993377978676470460967295182168503018808852984702404510251396900035431052598606641569005441819200784225835862021649358085921341951308875669636923828491634734065090901797734820230652169089350818106739305630974161172365218230232706156465591357708696335189288692469267559770197664321565501225370885069040001650729324651788598475983240192447230722804779536823422391413157588925349057791287000679618921654763203130254619369650421589961219559124744520458154078135349173374165174273620746818518636504902753391723941162799471194112926760416566872780748561832238543752225428147605593734071270385576165891910524949482991345026312472648066682478281933638529707277202323410028016401713409628619567416241900113491369311311205248426962760485893319876921632684438128195376696042337138121687780981928191814960617704782716347528808548249479360128526501292253073240691659931389785110609305184728756859612122434984495160037683998399973186948626660282514387557241645222691303207743161118923360909896854277512201535265840678386171933753295001245435813461736210772496656995082484033719933571544992447080985558988703892832446236859089265181166737561612519623199211683780002834349160256236597479189295735357164662982706404045671600269064176930396217611465429362595092959588624099910881697667871034398379003021393755088701606798918373873440470856841665861915160974056105174007662644521589827028480824905698234044275009723140380680977944819927352951900696876563400862441712653777398540848204034494328099834602835601920927867729904980495737964967420499313306555651856683745807883258737924522949617850430132790848625951880039410356901298026772657170038127431858763879090650726728848926758442882369584170454358081634993231456100602698301234163437451808647267413353792137366306588239134953995974696967941119264648180228390314098637902491744922625372741500022706235765104838922515028706298958495839393815683146284608982561028946383474082994723995899904280305858644938748526191333689469779375561214790829569837588113886118378597806733596155734726252538168791020911523728385243277123518923658640886522632911254358028189110066556157957505709825559247457530949357351975144079700978593281354789048643475742764628947848647201166774470311946124725244838123630620643942131996542826424872598944375188360748136334770899736537899072050064804652301084448678410691626264171311771291952540507780287088512841107047791203069462640826645540493401749869313275749780745580984323115717685741966651384307843857557099691766556748990617998965445356518050056109530464825505964027820036346178023112773509498818509503025658380808775576262211148219710432427895756482126876904317130008377005341374328269978092428223342515811802492128053932482519063601148805153236599188371674177100871152099095644422880167760369063351522994803816516277191247645154433545379659546931943455316726150893451396879460208370723406564218330672491835785397320844818877570282962171074085842582745154724961287788786551156255443478930010726842447022026985236692166295398061677709273280051826828834590032088688572942753186304327033688042972370300014785597053402843498120627140185326040440632899155272606357497858179323239653246078560997009715766171287368392110188290073361849344964104790571503462305996819630162289066278472154086707995050601022365768492277188092496358767188480567139944609164180180679645007725101490456731161454712164783612304864667252330472402097394870873680542364164179079932864138441072016915561194731932213988197621009971052191052492681349745035170410115116016467060988192840633024494437393695564575163602068550226406829237376761373711962095998485471482400971282288499368107651969282213828678285092044346711702496465431986535542341528464400922151663491905287721593540843505563111285674010728595610281147992511743210750543920657138441191161877760612363287739931900751844196762122965128786160462725266674989678927500979693185009439927312982328420126015847226702614179047200860335647274541971612581220265396365531109370045600863669465584917425242578449503601942416459587576404216074172363274269152301797745389537921605843898566905111295267457217884286974433898705338914278248494034115853156745905290804990041547240260341015478113661969189061083993057546472660911110686310535955485467511362395278459506289463615269312163417901693150128296583968453099369881146716001906229160835997866460697098783134224276483576173065204895997894901902191511868094606285486055569521977886784378733405373493374683192920455501331991854610594794515458588615364650821495945929110218862216267292617214166826470541838377447609650702600297106069457833318463440327350845775864744888276357099400669451389619233559623367039944030268836849185459645258920932821081963927196115406295843495372980243550988907457155934330380413263457485998911999529439669050743530635527836521296034409811749568081714354178864096576220466500004001600654072239033321085106700396131483900735161292417262557689362444398149931454335520638773633337722275858971002051106216753637560935285657105739636086795619957367120093208397127979560315271488165930788735121093560639956710058127386666432232504679826247192494740459960451423224884668811164892105242826484167118786278575355600574780211998733268176005191918010280113357060613556550260883579460134424831842720868172508271290281537049486963093047250380197779196140862956958439684095436217468506905075941427681308825082781633550506398074981200251405488924172725725610865347104402003197121450336461860113854721358604560330229154607301893666449896178894053315761664941834288477135289044751955215195521324618671205176780010195098542948167613663650827404956008593385037860477302754172201399706063885851039592239381846632482317262301272514259219333714148690280856924214538227587466419690703463100620055986109630074638263551131469390399023147985262082770347975736462370855543925416880283147478575831357745913141077165833023313958179825398871276238905113047370529948027004112189950742883290513126829202795631699256664817866924615153207175196607595452313136136453503192186290698411482461484664476749320502727125569061000089405967279968949884153024808634192036743373376328790153923724983267399004517530235272802845081192407210024062462372381145710569373485009140915936097378711966612523021796762008000123771070032097030160241112637782734310340373082465964195474185589629598143678950353940404218221615746119095768021888064723542414929428253161263425687195080874609362224121674739513874378301598887790673506783011296976467571861340296591429100041374763019347350984597614489573067509226333327730608259076198195721173474259124230137156448548575481487410393195469351670240781504399439454449314061799025162020075530872293961036291936175192304204020500748501262276800521062555239457442216591743241787336417005154374960948115774459367540303391399843153024485589813383573942876685183632250009270547640648477864581272497822460294860363673193883662211355482714350356264977612372575374753730749548799268361959712544118224955302049888793144059606142972656401255855951177031638069597364049161041893935859453755363914640538904648466708644101207330076837926712526362780112685906343476394588035835618782174519520839959826803463141281711461013635877718844802121230269631124409507930219228299962927563398399259186968403698343594411527872506888258472557365630576495453736719343265183407278499844570064457437248623137673517411769104667879075316600405749119526379029069627230633250492217569915527151896929011643740105748185999405041093696097726526765695052551837404883415186719492948952509825890959463523287852123617998318740250351949931285186793330134798513046774246500458568203297154635939118863276685440019504636005903948974254083916730022890030659530902883971760505473346671510177610295696347554730525791110910572245003984835563219768674808596186727883965036574548631969319920193209384379279220004309619658274133438345924585217393610685423336803621391873080222271365681612111202031561693883372387726090054637163492731487897196453410649552115404206540838197199588035141294364040879546136901466721692879893737648799425362065821550309842734645627279088290102319993681685803071510722099209096196411102525177154201544913220690188503592817100346177672423864919820386050114736266990847030106989238400673707797219011854516927168851605173076009796007909868284952801929161298728144632472871197390424259371076493387811319624455127042789759863595568068635403393852578085695149009572570092254051331705197142503555787091351779016047403248559610288966094227072683386348308914649399984470312048029904654658664963235928496652433642350026821496338837032612005121016078445556503947539754200424660931279163757098371612535408985297519717104031007729531028578129335792979780575357243594880451365331208891467751766429869772141782138485331539255516559773477256420549650883654492609100880465967623459551137474363258505477191356451148695263202431048040320575768044051322266260572174098049220231558391892430568494025237608784433398028092074078722355011926270023763220708093248043646421850922463773691715769582517128706731401418136679617508391903177693370393024646638444898897485958558476129937102076582730044823107845819076981327441651826794003359390672433860999127054943639550275187579436973289796928962921478780412679919573672840984165461211627860384600304815577738560851698644176095534566450702495387520534550906106773673286837337579044824027412679809582838410744152423389582114765733935857899252533642417076136995852853669648110699073887562878186636081319598371707841600208830127212227793533365799645341453784988910484959415105771539178339675194806797452637812133143211615309992130739854909543016238797115634280893507532984347420126715538507622245437131231558458679450864473153794850294226567109334535135940155769953910979119574102060529675961771642346470391969148301521093141676501578601049018329421246342115734739104917080461716597224693386951527476235790911795044769989353800418539087356069530311824293172205903181497502636815149653836517540685634195890972492582834916999897687194195532724123916053672548250332886292192184934086329810519711035233943286838191176806904476455080530489933810318458419727328040089448694999563197007449592734316033260228186961205143501482271246200042154860360057311766227451836481628536501028927760336980921960233609208545890805715859380725181736667400850726630234776529692782444145748485229096050384529721392526957345825367883645775909797663264399268643030332296984624101497952010201992388722428498061294774877610009698841782474151349072141372515295771567405542435820673331123472185550999269646187899771048422995367343656761102977503180116024888916712771008702669620541770415701303777988167883977638278823049140827254641585193823258164349822176680368992949360490835011966816906567604000973677549481880975698835693658018776211197661794688741346382739207687263423356786081663520278594777410201210876376989771538577021640538050308342743970209585175986348048503053299528339842923372312860861351454933839915659693394280848031433007931080502578650269584584581695505589952913979745335414152797375634641345103633890525610266347391400793957775117665235538080355316314953338121231220424997145006573129112177417757347482088584547748787324457390055463207849131196998611199882629370899851411452840783681621182092293291402680200276153650891324555903968863868994064618558748357135245400136031055099945908410998319078460404961846751417083884038522068039106515965669212470989997890678063353571096771642950495151495595540418696769304397659471434463588918059900012927529197980125749013989645102054856830691738517740570517864555477368119226186096173348427762138343916395034928682173961053540422356069613394648232259140114810274169347533214269986680521641437883818332297020614374033969670372190079376403825845932619362380906265337777431585151597403800152128107844931194186802143891127997099650622690124160522972605731310281104534722346248601823960992148380834907755402619916902239460083136455792831607115608856356040718340507219414150472003652759353853486337377064165996112488729973402724994707411492472033160523196592426795326872682580486498596617833439956089289060111670033208023532868848854931124409399126407818418194410113724949259662602267271405793461029868787074502067947674481286617086703108661971311041568030915335892255050986771294518281758249472669506515193720712472263428237619757459776954598155639574063123141850023484770322202032612484355283990791941934134723510301300985892506852351249671320327158445493281597273092294292827255652266746198928353944441208212587726613700405998637929945164329974750549970964653985414433073585335606819017397101857448223089614992725033618896511391106042878632285364706939904437902690926568792035495644422568357532012336194532638265670580249770296080919827340212338151674127590111583556472457360933076958138925411420424577477387279464093832395474218863082886738514686152291019282186051044968370455721601478117989199180367646736500919891804959353723623090858956198851763798039055616707391860720316643720941210270541499084133508989588451110727887038769629863810765581138825062216289393771048377996162367105037381363925436312905333516185210453753110125128411640988278510784842500181524772285992737884773775023426511417041339328966619777309424296341967469499391201460744696458346970037098164564931191586772992235807820543198617114731339775829000961789708246642416733364822774016473732732129333115340297141867121697214771079485482433432261297910350918975475143200862107702327497378956308782042230958583237263372240521888844046074137213648517393547321397356449640871983085605181327525450306969673321393165280989048402535848629627360110906971104061002520445291014781656623889466383208016813549903972086954177201709264995836088464265333525400175544415577516234191183996490061345014159237021203774016830731056032475887652256935116839360092664876090575566880573334066550868147427839025232702209904927553082793466443937631940989757206398114329577528781500792613495022386552351843015839334996891648148894774380903880961876181280698387127308744841851209940659916781003166287573136848432799786603673318003092165923895271689704908398417074438494905359859621260245016531861295806462458030043172203511092251718472523747610272494628112543490309673574960036474826962267045689163373149778534768613829161818302651483962312970528861116767275375558841554128889890193213279372380346923375993428796592697205859999043611922054474413666275203705491768828587956726572175366320213725171802770134279833316452173473808313495722805620762193683879655701403951759016753789623059097084009890666419280194796559526534450407600179155738870389546658707668447378235740242213853591687759947269829549168477030303759458404424701972573488063185778635881305247024067392624041956291290254662457704003904436853879323100602762598287053770228259333365686462464880464864851170479001461267748728671470760828810913000149531548207390968249209008191147973303767753933000495099490855846380584924105473692522725868073326785581065253273485316359156031596372517592726487008569523719409306420267993228300065659586927532260979330441994245248994423375129855140307517520153207644784257113888001584099761300906349271135572859483197779861287500930321682913924614127317173485303974922728369298001577075984371886355617625398306677273189907465887859139620250243867914548457900224992480292190384409660402350817190361134015591717748162349171838043698668323962999345009211346393302739958632019964996426974719631950021587098626232997201296987794994360830252933342768556730474963730385088727341403766509357999505646701253652173148383695573108499844212420868625163463470052535870658538584316588766051795245745149061208207554586612242598656521753244274416865970101546747204426131660515724697567138210325073663964260696125703956663717477243482201448409867192104374352313247690480668399492726590771196200524510622345893784920790696443148231547708953654798259145078700203987254849405897456870580281458666563986639134738400241339015965691797286237306585401778275479542201306622244090729806959735647360889151900945257775946804320617646405822600144810849319425686155092992887062501745786687151308428329317792724060564380745600685673933134506797509353382554928593973930235797487157043410877625015656814563573974338985944268403680292149173606423701732634729308458109731379106890724269662064015704985351781707882498837680386071748532003364519743769400572801139047299497333973274590039565487024326088349162379270820443068318265390417692602976395907202026593311167696843828717265499021607637696660622014570786458612136136166950517395162644049449318624701299870366150885198405453206107616248075948350692965400873325032606396345797471849013767571574768633521693966119358826377511417442562841527243505290425780917493356110631547736065765692068072248314610693773622792569265683099319254974607194169075288595780170506927259721517341084940478514325854878088446555629644807974598358716958530568654804665234696420002510893957007895327505826356775213072309154315977621961630681591359008732844003506502155620104235947738212883701396970313767262414194627776841626412356436615261192446292306555372508764974752686908014169805497249034559767034152654072609538223442698642627665206169014881796701682162946866715789952872857342207401320826208626927666362837108453774151689490040637478811874399190877654975314285611147928932935717779367608847000172880499728726858490582720011616715323091852843362493349736931269816335097927912221615699960397950288938675203542775039727334689146850509688185237729042364139247840518950236434482734110821251502631081569944553450098511970006550666707426694296534667519161489568746959456573571701760267545989044196985600844721255209292444593056057501516552067471792649006302649106760565043654869733161165782150448587027335922442700226808410674494201310433080760231878046875049828931670803438969215281940467227810223643258258862661744134824905738755721406581696160740864782914784509131209821204008269257454703520623540099266340710067901164507271158301111907057501096775160591677569593451155647572153382093153146569567128133993459410214289777502438630951757050590317400430189973720097038739447385027494043165186366235299586483611084023412228313536028929863623578075875813183581015307166512817895500359372663483195409099636754319252791527838125343832476414474022022859885030812669519135687565627935460034764755196156510408199803635039598372665504609163256794652259790758362588762755179511672590768048167295526583998739892302311371710313494443370381694190755333858453214063371927794275256395390398742616105395893162576279746423720315299632563322151252133549104634369570842709890797191775574208911001699146286877898062189056382873581359184827882749735264862281449538291128375792758611621801409723992541541347952034415223625212147782904583634348429031476118781714807061475214884532093396066026916144066068976882265398987781749975198890624202305213265722396948804735249051139579316611812208398031066741738243995131240420076753767525764170643502320529216654647911530886629945927555201773780742104652284855519582795098933233184030239644293334518207544740730936927858700189126021786977875252370832482055353736274169156891228558233467239516886932750123982208370100160219018735753432713662107297578023784014844698054299037976583187401300220329387231543734939798374762995065826298765720940063178809916390555052116409493950195070186288269636642396340496839659775958583654511470127624549198729021803252594448004407711427334977527659707646860970600530582076804229270718561710904494065614370126722495139011227342643768101421891491343124453208981528445963124495342647171550300710143381083890711099618314526810396039405005513863032375201198440230231923682157420659750346902366926597984677990836329003737816452408667742068372639667719353056781385021525029076993443953706660574104697782234385061269701070225010387731731673253296210015473748196018596489027190592811877189285532352745293186666248349510417596497503795038104172932382746624258808490233165561593370861749577585564903712537669363001351475874826639556639441866647760712534558674605939257396348818278057834918751496757571093505529978967914871376593411457637937883628523578534135804414375561306637081223192719620765777937656304650541660574251491299197669174368057964151797715537711945687648061046533528927628750401810239447008982108522992181458495938212079579209458870404186610356752049618920077971026305460994804348986441859805125872186921202981611852019658387749283161840475141773940828671446373235675784081528901134077762932783207405289620312016986510508188975414484546649854136379744675198800675649868197809450681634821895410608045134690680985356831225153909116320162823164602320641471091962114606899502318861215446345281676581270700668652781076650658791681139164113256144734177429812697076273627295708753529210869151526291432814067981984347118808760400836651266389091255162719481469515421265673446938321511150079369393813374620880476560578654313514941918213330170509387354191391639194913419969501827201945584759250133140239376694190609320337603791658383115883068207888903392870933075484624488417258267669901674907869132497320867907800382784439077207630111651084510007529963476907618420308902878179966381244226032068212419761141727487828807843488791190161037041507574654560990833384604183216868334515603619970685127924546720723779001391440428506596355529223189317735277800663698807169965719298500956475845461868550105613048182427756284546500656847910760777543520621094767811286825536896148945980164557997366929046496704679792992318426241340116816965876717344300721257655611402881020062658600990799240706823671057349392938642087287110332370024440144301677315987507681220603916807372854883231118256653193619812222476826702658255166092208256316032951729810861503817764751015175132688839776546879018454932112137906055546349436439754734897901453877447251825321679351678048312601665634044769632881423177982929405736431026661233172088900477607340591875085292954731473199064087700384936311911124469382579343752240906833706267144117507251243721242730406231430715612073124647017826221151390241435389253155130985304677995468852041486509137204399268480345206908215276846417833661346587809136653787369670378657543377166140464871489531467162836955001816042851189318140761999829067128091030467717134213455276931225903172860167152040046804638888899877759640641534115596258539586689905395505311327265651300720833397311006817627452996466751678389701563669123835922180613619818565920469667805615358211139742550062221742702503915586151021795045353199505367865411593822223560777598960472853934702167537176721849409929955060191067041638047802483512174696315110465323244913572946976541321485283646334203900825257760784973334614530029258423334369017726364562904676140403085054211114158857198958886818222951969206531284203561973403820099621447338429811778717403187040613162136923877939986846177764604921351930805759891062892519663520063096901212179168491582886842747593525770210897880154445154309853273302847298577064163868941729685940808249137535992486498412669803504588769265730423824374165810255201811636329606887226929984175634728816941001572364034195925579285257642511914614994888397141612680597830890005381097533581555562833553125814736350497115621320213015070584822262768854442947337891677251127976110773768913676347089566751265582161404857459718344754337014684553270786613078019219134642243965330718491333894764922311411913790923232262826734986149837666646571342431921601813299617179969108240826315937258161145507333668174235665942446090862824848616749981371106921356283669756123352913853902729248429419523383963329004949325812531907439694422329045648140365410964883559605008084198051051228768550778800504267486639882184430742833308338343691838370142237787448825366171598051919306328164866235968592739222965932612902623302614543631450010039190448114345143404390085859165380477538948458210769410203992456893109759388340750971218276310755065589905696522091120711226526652935395661714712440915555323138063863232451200533683679026870247339321963812895210734483254547365255233069172242541586436256055592446230766811983504929488703801389247454987428341131175811752045277261805731350785078278184267959978475304377633099412343201637622612946074188489402309362527104029772911894655336700984607667622896809734849941723113220354411771077908354438198697960412574928035846796773162559740067338809503294518944532773424976224313211111160076041558282240351752228325330316457822739318800687050425723006760730263475457108468087985475367472876282857574208536066534244215093487463040182136858719693977486567948723612806533752514200020629045465691359770889984575306255218048846750551566839807007337821299516200248837332313960583926865409586976611426449076700455815076353904859603184370627969172205817082483270681547474819809128655839258015016723641615639031993814609601235635852943328945551042388352379837806229968496920171121869792456877462685849341132483252873624962057474704482042379117586033123743405705229453088698700413494817426536414767660257813610749294603244048566176663712464776963793526674397889271747139188463582435422005349181791203640034461116338994195609180467070359054647497327837691854079223660214850722338020557030035953816725163739440149162157003772172350978758781254642070978586313386339446663621245973855096414205423529951938146524880807779351847909278275984167678117316034928572064624779682399419707315472846984459408180282458113411032042182581439784935352804560255440390707590740781624295340175156913132613516917069965340418288633890166373173662733531369011748020362084104748469127943190339900878456034205143404303526082121738335867195289708723182705532420800105882081388169884932903308791686426160562041337591673630316758681632272581038021645155179732382605477692836687732828241553621961436234119111623315999804852135393875167382575731501060381299104680322147392545741553819849870907821209364911055124811765475456260096657590331389856109834080321467013914431002679890606649449038039339185545212697812155352271985335509526909846012909541144218225595155771442763310415469585269967955337456485434805478872032079226719817719217408176576370126297192048928553534382925806627495647722330864843505040386488779417114925711665387410123182554923763386708959271940228665435995156403084807660115128942406918871904043384084901425235960183186039669479355707905283739269508063405147500442546419663720063122278377320671406873627306668539785470856708658502754774016918670430334318670501918229358792821160516403468441452970569767147053244215232106491611518324995805276380421779792521014412455779004121878023303013797450304349902180960482709258199131902829049449163731771393391052358916194963824637288779481385028346845796023893973034194044373174198652946093031345608032698690872026369088578205882868682342319627583488875698229645872760323427255821277507979896374324887929165472581478148175683634949624284492223982749530711804328395564895972537035860602717429600029487092534542075006841352578083329247491180493573263767587643724498125947212895311273410080296213361343243192862704531085645311792715449373259979954342497309775702477117921978984945548644856573893717917580922519224746334267337066876840009646199973092370721584191015082706499988253775409384021096519573557742930302668859484006387116950371061155350138858420941813572013633696814426443954575881934221360429758060237961302536833023599399927219025005913146829000562245430470794026996035398709623395145528944035556148878226081785210115216768011214956889631815026549233661680958352309564827842951215677327530436006283965146323131157652559978433398798609240627608135841293619244447176732897360263425443530363117595393375851320414589868163545271773802890817428944105693368561369175571216617469513417587074584307986110624616722702661533161387287888883571164062527093465082303519033891876686517684615976574592218336053336138561809972718879140748210713038613244899013816281960668896607513651342131946836675839126712812730366011348331522603006143774527486635582694662034098987088142552097035359113109105119503185027576106667297388632337210415247238685830073409902000186828820161976426877868120787205806665387250418115957717564933501272683985653411271191894517385680666609734054091808261714153252991926632238750976270357264699838418038197372207688306982401086951973081743197305230770040909459518675985027813206025909877090013779968730268167213788014901749735011489086003087514679128409142614544482089613187002311293211241546093387259969044614158161568848738037732720785660728008492542556475874154190232756556607322840995312366654533768262996047499041596104484461373368030441712925321680033101730295022062716953066278123950232540659455097728315294399463548155317970114995385475310687481459924551687210385138402971417583691350888370514690236803028183110676412248410705800008783442096025172124290586645605199699506716303084354840710456486982721594328857542376425101859519604911344593439917385586304427391066614600011813211972418562663299975407838113528955160129968302735847931124082458127469102615932410468570469163589829596086699139911513255118833021323323127667105687499638158487426717034042865943787656417135900301225488080759048598439791450486419566844717396143829557851785704398554872038918369347574023884210732246255035233239694413911627155433580313119816213339397919351340234634470441055177086088583653140414368514002069437175047196285522446252225851366244940062453615074425927197110277043415881200557846853144281077418175942314466504762053783919317378379301655508295312463710277540902770021538572516018547615436328300632615638591221933925969991187087927168751308044632730007097473317006417121293844504883265344257760684264245648307807834177992200692945186652838906370891740305314620112915123007079225713327745746142791415870817845541684309680716811473095742769008676590117115679327419453563543662356176055788089534294523978385781739956686567408004349997291628456058230162882953694857331832104467020085355279382330963083357569096303410424811665265778418303531455262884376302829388267512122982810095953421887447486314493339221594814271548851179405182148897882548282459192979746576683648106971682442127628135252757738978086623317522613316392728720447213438637540030768941875988308015572522078471781451021903702867761497232392394343703342669889355291968710366544472021783838477545712412712023065145887197350710146335949806391060289520835178184404292586770601756414502628489562152096702384406940639362540261550083093168234349988308165632586954021238996337591352022167147916642748585242240499889626929677263888051336350717054768714108754336347495066364317949178128626054395882019135970084673063357125906171616390106626273643035491725026167477177170290127176585830634850882487707783905842146035139218365444764106026092477210003813542764225865448911712443580876653845016056753741054392334791105296803300150415416391939535773699840822476722777472568345928854834780221900552052860863680585638584916355538137487287053740571990182584772686431037297176840386414562318598219991641660783073464873051311396202859544889826774872870577910162829175599011166372536150838852372803640679705004984383305064153632346686270346103490857947331928872690456923504240706412712259704987843048049256617328510992360446158377227961078902704947309335975939035201084175977896458990876478041004305224025781569522740756623269494985999538659705750309684968981112548484702395592887741622252038134752860512548335509981888953869947627168458596597384911545979488326824325579870809611364006961606426340754677424962277628482927142820439159477379061532370081571581327051626016809370067346350119185469892200431839485474004967780970790065887294461631689552285595056241605381371640586389794182675789035926529220350618974047060276054674655695257230233411461748557073681864775344489399860395805885732485342431240872803158766618603191355900128135053221005176352695166055104940396167615813673572775097987122089497887626382202255352410060724049087132108168313054790429440899832223072764734096346469039244776917356109619154861553925710433228882406649011720443956531126622110998860547035104713359322764434157905228311169319446033593955317223177873013654608013870240533525256999457876617620904298215915433875111660712636329651763185247866689879966686844725765284381679548015410145108936134071073989916330758881322390965209150322281015113278375820543063037524805805254334812355067725901964216468460553982226896018450504706098302024266176937349169874367545711938956548720520989395830653194239835061056387573368445777566341153879702429333986771354793113465656814780698735898926395578761425987766579285029507391894859456026795361906929700533331963387445361453119650503473286859971811636202467361124151593826609887119365739849028649508029316713617153374838497311879450923467371355805508966945871213848322857542446221189530066094949629096426334033405025924022995698306305489133977433902601974320501130572786575300364636678316545805765383498767513086707181890135698601439771226916504436436895748897720496158393957468082781311590642851104276158951052272368739444981239286746454451885391293302468824889308680782795830064875714974545315105360170553688403158697218150626356230011636163887365931634609037805812918075878057901477475970935933376193661467671427930368770889261706705469506407584033309589593863346809952254554759283238577024846518978290173237076170578735402180027277159419560814516068116721619712403547305028598457674958300525645530612033821359417423489934538137936226395628911526890671367439034597805986384463166920918046098252160717757159925767284210870106198318720302164607534245261450523829997467589531552489619596897025426959600843188604778271008621303392273178069133244534222190078975138837393111009852789963847681169319474852058758661043430287520375589365164688249731962746721775464607889737171491964410166944822406640509517980731331752525597870652486618657234653365493017409126852240105115373602025246309751669475239584148549577797613238654925466625393876332669435085037759833398814146761734783057509222868237286562654052005384256800035433968960953863526431204575656806553621181835058203293142712489227833263508263210075487612510432639010027407285467436878855392279842371733810677760178305030402876471782557207621081775203933499150345255469460880228272588452745031683447596719665821663943554223816622767167304179020385460838363672348686410119262923167864253947800467400749439825761253969285678650257902081326604509111665654054026705891473834750755594744488813212576213357256974689828750302538685303402013814881001594649560938977208724108433057241781656949022685357213643068316348613790425691175515923196277713121647034675178059190211656955304663006357566137462731605684750404730829549119941770018747922836452424964253050727701681638387544922669875386834197053162395509563534812479168470077843145322204192408656315298945955180522923518497779065346002770409894477503161622986586377647345299598517317893561441744338870517791059603670490093203163806795305368652170210449090944091352226944851358720321238789873938810872990924794718026383817525257860529909381280464315642280459036733593379070269595664546700248855597455446977867701584762711430440163761801589001877417543959176443960648758864761675085556386502408261354221352656143376523601969155250832819870459073134677199776031341509366449791699925405181332149800760730062996446756379934717264181299337650710005081964649904340524915867112785654500049599698990054554241132545934208380342829597764899043968935431339470691586418957359518085366478658684420090848245658775455675247929725376327428242341276366634962312661848445243285045908226595164954676703231129769730371404346373791128064173203447502338852222888701706835044514262447396233153530474637249168562279321290574563040723810820540490531582289514645340373911549838047097640311306340117706027555041509017643147926391855250884406103477473492148687700985290731793757162054512005002421886546437908469329181145682140937062740563804669810323387009737072687602328759419365939734319523770114605034482564789609504720815411879988542905536868930948101210838165443723804492666313063416284126236060491860217756650511265501888515171101962263120074213773695783036021843913182032732159387396918180130800936998211013488436544572729900893776718424593681709444317838996273609860483666055369905688382697343322225157850263262830170176734353674145564279076629425567324058056211860284941746645600635313667711639880279702838956347106390533193474183012638740294976625132793439577098628694471514064452332808249817597551717842535074239622746742614301079456521239734563405002584324524644009250564710953026427096645193212529330661209590309888342313987483571328029663132436205538739264697651995256838154472528329010058908702626976201290566854021016020291963318465822996430753595208279867676134202730393246190457939134308411137917854711242192636497457972046859541448232089058135930378425145331699029922444237672154873407667316889597350444445840985304637711971462127078300566653670645274397113359269142962729155137204457748560149709901693288730129759662995229402874308308071956093627641437219227272574789982038036602983088416644161703597010454139400235714479732858411886279056769556656343709190635655548558324629802919142169507345021967832557586584888427851032237555537441787302778908538077093549703402339010308212522093493301282153278274917881402750196334166400132073518800128297580155135761755248024451903584850511356463653973628155457658467258683471248367855840231010479567602572976470067918256446708241233514817437352101838446993836016043655322196269774194658090483969577612917234211977566895049734828123429146361182277255961961414618835293323910453570555870582076372657950978420342132575406704681255537533130276869201970095584279882880428622486638111068848635524038148901149623222838594720606142996240413467813586476945420088032274723521826896719552237777422449248166299886862255931830404168229183363263984926865114202419341789679195155710082516536077514218821701221732803185701322870381328999826930429969913004692958645551649965586308363077941060994467483892368115413536234427087148197394134967495754618988402711018127864186758341522497247074469174070828471098693507844367583001544594353721913287199318779252438750428194387508156851430040544559126269230141954275655297121466867618289219538758026114360593254826764444832817828111043944840999211769215036765484801801027671225750478096467904541061210521803019938158457134231208860315293176107627321992287640379712066282805147771858880653438825427732297301273929211738831963529761728364511509704578905009734002281508407246583564161109554953882624107356994060967421565831767013772902174453010353936007331216117662160076087091474611564593328970507076587657394548048709205478177159837316382983530682730242058625282868525971113784632906197750711263589629414554279109130306819320052811136110819004368548267426155663315319875997078702937350222776910246592525862008739187719103159427789408633015081412242607134824851071241385563060607686271078231108394619650308465317318888716316692538123780185788243058257039430290196344088290860620340527796074811426179468413779929318322734675568387999731746122183125521459454474275045504105492216211199113469566497569571386670860514672160085681256840637213862831626224850863068043695071192158279319399837263640849291821531671373084617014904731452980023997815883738123077705094632656418009191535525014236674692958816285753567908455271935745093178992490244025240590781437724459146112701053312836783736910354921911114911039644624517374706166048925617902561684180684949494138491299840534114607604468036375190205761251273192574524071517746255213066112313124146041744511222867533705525343565462391352741099178661638370707453112132001396100936096729576698888976284480374172618352273035213679820871377166794430435522742125550854002022808081821258560977812878778332466202752565344052820193140341881969358323929916432685414703099445112997120619721884826049279752516016623026162601527657957225709968981397366681793777217259943151689921440410016383558599565276697603956396017618259863024781384306740209639354164056262881308447315777650674214285394232023777099548420295535127451774963939264562037550532360521479787051428266537495489068016546733522059111077189393022785522971161139483994682364451365551597650408012275529745319035701055481864345418558799360748258114950130873178145560553627571617809077255191207437449413767409538417385797271237245910020747459196343389910446311257311693705879722036640773950845519674458157703808009492157787420457989632659741734370420112801147882040785807455294634851403216005325463322474555960848661596422418795023291434573297863698646566415823781901875165017454891732793802156205480731440955911521736044086282110032844746537028489850029955306203111992665748692435918283064693280087884965805246079247889998334495033872218859917073140105445088078736167686474080703589871447809875285998033104703998318017749058326393384754202671437619345196632186388521303147857228729538567539871243111040631550481856981349734898711071318221454851626614890805629527595289873278767584614649558119183663769542174887297846029134995423120342058296356062932097814290494625109085417041253552145495897879590128107092066954218887192533701265018816515103040241839854029073541699744297647342793788754267780798542438610578626690859757981926283493430428778506534707963248307323295772269516001529933576403821208444648818085942209573125715406062878537455652687600269542756680029365000573146638845371603803837817872619310756812497949746811195959895629190744066319760551034587698529661740232837530713675075486039450094255854794966336402726741372116017580479764420917381245022111591700237680077962222981904209121977327439530477617592548426275350604072626257105120251244278012504351226146957313773954226920356154278541350245240816028414788455438991067096230875902145589526940438579480902827386948202728706758783947170578387998269402507808168842535805150573750398749461089209347616859315299887136452601759531134783442137155780859416346151597783577145878379551101430153091924142546998426049389047870606964364122696081769343125715669810748892565590081963155942217047432420307369291408572977409327547852684089594806794933377157797340847594059052813395700469993624017621819986975413270442448898168764459241686832072581107869785620016704048659775433859104369057727856540343422032439081173150640431015122927721146040500129991266579288294435608705181553797967998746227316409894510496940532078322361624261788808458988232722327662102543039566804325343259209212935692423571104483016176942636219017166975888896314485659173821162426152738730579851060923937070272396439525017722674764084268995942469123841237529609865146551429073009558654415335981102205786493883897028647434443376325340931718457802982823560051997859285411742877905146980846989111481183340025630224092469741740233860796569854082893094353827168586134521080347315338133990097704019045061543427752084411600864436355633304077058425361851151869880997944270403337442956437435428587378264495056831237947718902962835820012210724355245032223857192450871045939698483709668858424899902653475957703734476692478113436218778490110531254103365273178866742819244082516084506266819594038591500989039171408426444346912957678596590856634719390308322784236394115465932097559983165449279204149697615716108089045174796614234207532462637407011254872106220848650270993061561403708665669967885346816212347345404211050402800478931557999285016675710130273406294016001669829216605008251131364724261169271806298959564408667000734274836006887724046064126605482611139468848401854034940228105032077246764621104445842357341142361506378692540240953051300832945694597238222871582065827170961102762542833230535833566683003779057770524287186774506557804406109957666260165254367181247011518735844659857191978115276668228308762395503951783993736381604115498860918982082174411971481628993184301540784310127163214041753126953284204712594388435928257507933798457908101587713170775851058728230576671433618599633951699424557718096395245624620347505748206095815548987992105908785790956238695898392662162069339774602857012325299262709855450666701703346633671968595330484377023289622680520347947200575814749896652939656769348729743238415473060909823978710039343401609223558999333053844099597534614930223698503486048836349935172717940047176774955441306798963795951865360597646015877305052592588141578948037101101708442079676931518205713965584975594528286768356936587622936424385493066787507789504209488626921558577447784189452483660986245714876162733547136268370127930634845990439264569551836165516698000753852380023381329601508097294352049291891257562182022622714984671495821332387767499092454511448423174357194431466092346990906284721766940760729150746971183651664813879280182061353069356468639584765845005932470953719975588763745434946786399940840601909316847026174974556775985655937441445133129814392130533425142685953817987345707448240093136229189236463146213718177004034121720051520407268132840153718474299646307786345302958297109023102144935012135227115357128163419282493677104674700206584522165676678746201097183459403153128294710448320587180235231325251874161564687378299891513739221986873529130287661828410092876420637380131328218179090077399848779747899542683332756893835379302829081200010348455044319412579755029160516010793667364406550077415061503124590242365008687624883180295748573582056940860121960915584442812408133155504830271872270902626832690379757561187349970888594185416894360761445169096605598208871277216582115772570686760263420541215811480233574094017837206920443963696611174910244414345957426415420580491898785298246328647455586769522107347418863655254650501600966947539811128811308482096505354518228133500954622539400557967763639279738837061954740009942104456263528167516845760049189454333376366788791104356778694122613330790740787261379203681095153096381286517965114452175901105204854311043462786156584789532765175488591837583857446380774764008140259097986383562645010669294910258997461649973970305372385911677720661648242422452367605820106465347952246561883070891540920339662280316721483634358818285273806880960282224316430847435475677381993370908985865437920655317430504635347288339605703626084403297133413044900317973322341206284596993018148976775613088881613446003249807174931363118826762372468638748766376889023392686126914828412544797507054302826822780691629043943440877393676329543263582748084036911327420132329278519144949284781928467558497925770618068068851033865112831890740646905801074324899840889655455392226395177098275952757248893282116533172118979829937171010837796155598522611635604967915734369186472674547935825477150095871267612798531374034491079125438212689471186338646591739965595839733474059511228443095411481221764634622524367656306776521024561469569074310596510715962566330000682254606231586370019718115879037861292757606460945964055194862395137310025213320851614767478731628584321744515553810997414995538906987866471644478804488318512303746695663041038555509097005548417640337468493723013276879794039612647763625233161549586830184130622873064119077433618700967045918852523387153662841663637538817740715723538388729835351296564643099490814051293444203678169106332497036754689076761288314800192696669442311330579640599128531795789523915657236341437706041846670217143644795209702580571823276436762337479891540535945036131242698707581321071328886081029422720642679196426784994487158637927106199878988458843801701868593225203366528565176694369268572832257317618769079339287357583980223141543482191860026844799285116914470039183084292941570732991036280734979560092542824148077152707164144772006718548718634834600482575894451207113839242047067533297036778321947070297081287057164812668474503429227815977696255325741874513452964600218152947490760250278398162053929677738515838974802424837744168683061293606875292586142918499932296403378155615250291725404839412410387549276770637776807873020409142305867916076952974050775514196705808431979731408627413617363350296825204110524336003456700491898636391349656807927883021574998051650767709757118370460835487160697857007761516027100164452209802212350701004753667520228689928825905959076076609216604008234061239091019552400246748717618756381399337178089318285935733022114858535750922542144170647100432611175423600928751966516756963805472509060666296221468543163549614508019522908973171157120997474647507530754636845460767662338850981389064487011150830497757955536986842757555485016871908069002808122720074164639725820781200864762128464712172779237983390855917698199521644482348115605839212600251923996178161390629357106205951992942369698949687222679012563453306430158243263915813369733291062335614190855115550695215230431098093390782456539793277031620231962351681432062855380776603902438740524057586773740572469805295908065091404935135044442561645648162909898524463601074972371363597299847774132021396600988589941070864217290791318615436902353489409223502829264978883422400162455361810903591577215601760650510123696116563095890029889972559423689525033482173277113413709973785093179181451217741178589952246666016513515153502060888274543579977230792559624266974483608139963581122790262212676008172413457577163887735086163925566177875625278329517541041533128215417803549313542053232228583784660821843857377010802088891846491922014557306769268733578228603311821993603718828356391944526341355508587889066331223497590632504487312367864870328302870898207173805845499797311046046925945795187650654926840462774648759596267341337830180748691889439722470411970222149112072042150865785388104141117703793871306873872703139247540445041184776564571988158681198859390620308177161036896924446378108749571031137727530198838526836580715925552233118655687291683051928036954751707614907593604337314050683808501065550397335936690569195398102806522581043929540856620643413700615013540350250198035319033654405381747735884833423636984536648159276427429905075161770085112815107387843484964352257730198381535953250775630086820907857972483132109987337666740836534016668705798008717725781453588305154067802938680362317292803062302284385479656517090426582287999446183320639670669614913898979276386219806837398588991468325262798262241635511025110392722080565254706787791399846106552247038852513409627745986416596726354190412970335278303207851621197357916118948077775773977547969114475541862374007396186647904264829229280567904173731692401490094055166979996703216748408756442343058760451958932684814680413562566786247186369934597607134556018944111084360577966874566564210775727136015661253122781544741221505293122171246012440505850002175518186170584196720065683691310431880853374182441020833462619304535296886643912817852137623976879519051920953588900863505195981609217983424885001004216467445781616914750386625265152718104441244544008282100083534211928771840473547260373500056839055020048193477093563496169597532347178817583144637537019026527689572536354906242833113360209304546687473195987495424573446393050230319716988616244078744158748713920838336954525478597141031451581280608070921022791623238944987884281741817079872610338189349316161114670797100297898967304176712184439167514167515353582129940071701739788688490268823444623400115256694346563798904509468305241394910137469336310926690282565428415865985268782950964195967552569175299063075185344532982056393273668126819563963878935959575430012144996678337799133175238307062777342692878018214539464973328327967715770125292745236361583681193728253924501348267667330056802343563217364571042656229585147167142921263899826048723335620941843644153749819682060230098948568258896319773558071562540942678977561390494452313765274584815256019709802757304174093117036278821517784212386774098477112989302521982293611605349338880227608967760517068935578167356008496583203019059999865850660094340847241784323187991941795446004309118352343598566783366689584956294008263320529100329566944998449831227634114981588623330151184867579102613763738826358188851749302019929180010346702061764762206240148254229445721005719210282791776477459322737647256657409224902975459784599258393932611439855289975341526266088002281377664532341289410862371341081629018496093395050830912077287100780249582677508678844015602531154142273756260392370748352746284945977393920291263369263993866733621016628961240312383381641609968079214219244740919820738652418152363584809574807363788849195414775676733922468779260272037657956063971299057522736897517718152049839289239037011566193806599137468382065959160361483682783778481275592596730476659781541548793049041023833792590100615602942695917134783519567610235888823377600211124324922511732927440074940851369457846453418573643372898821164634099528620416882723005618923118488336739732817936572165703145715039173245026999556605222043300893921403069321287776081100346442081414128769721392349727122781964628650540189613135033197165996886608951455687468294541228626976732465325386346980692975237889027184836311887312232759571594836828500720820765888444607149335961876223274678371681239363237236478209659938996426437828262201902954625130193481836720406545611749775978660718478565158418550079340983996967077615666672258798932654268586959896914855689021615551206227307006778802732548600627298869933091058962011170402283423409463627056755626665941696046300499345631911290824643740459806023845674538533465564407292732051464231012643044582716162239700154199454394536508203259697684649073982443948813013811295453548448197145605350817844109334191226559587603453895271530388435682837559807970011041223143088010063929848285751631002903903553744731373435358651678482359494483022782785535303514304916764947861835410729460915874382622997481299681738646360813976064192061454821732100355091946748782471458702670590148194768202766310770981808204946607960297751236863579727890527297517747934572453998025748006350985964868648021071617917551513180760877573581333599258750060703287962606865002146468983273575981219511056293331398523267603627983743934099140483086718037610534717878103285839650386742392236083044069366789453915075674711248188447593598086341516589830210226161903979991681367891097511038585805738995897169135998874204888254006272886834881925922875089411196365658833718280425956103208223084282285581111873240764988635407412034903828605806970514653851254768374934746667586468167959210268960244901982610145678740597337629293632850621988484708760965589983323376083194199576136407311681265006443443349004151423782303072990668256148721702453187684178641273966212293127666322717573244338412212727589245959448742786671684437876483445799906257393217027785813430249476933079583531741952781941128160913773230986010872121346612159285912573801536100157907277726264375106420569699518091830361578965626598128876500974705233959759206771075206315450872241113862903805143255984248259372510929192433796342458480976166717531765339485295321403098602663383392719802663484634024439109669828344593072182600509219246306237048807328428932556537963832220143712237635268333492757569616589582893468576082160005378008286858303648881079280136959055535662969947241046796033138787527211659878601521453650841582588528867487997494891942072596079076698680517742459704293508820229164472704783187359295409079136785262879518424843268492842362760994753154119307405645216486504624263087832627610812391947535254476924800626688859762719837055980090375623884024878431847515322845946054604627792544437897663469260127548080567701454324146545065732962301130690336573598641411494455367064004019577616434181670461019522768864150630608531287022193363378317345145065012068366259583910880586743443492532408426840311836673508605760077046101655824448323236523669802234941900450315701000940958717026813467465345207186717982107946023759094100957431186561220963862124152185879341292789230574181296194759546353027707267761270831003808954866596882817175796264918380911336291066023434180961021427994163774818264596186277840139825086682788196466837287938483785385211770850920206852990466965416213339510597263379554162055408705656718693811748318507107354932055568531816785151795229965972150629967231968635116369143464533769052795175499236462159399706296006591962979397697351982688939739505055833088732840799244793565527720641216054942974041571453566254772785064994861537065545334127213380003098137864543010359172136546944406594338472913161582747020279454008687453376296326635300971018951127929282319047471842261859434687522245882748846746599491176552431396478360775135586668946483979721561896451521719717506837140728517776942810235615669165613439478251493366449111071089956346580076949016931632462039650392683065063647782203107419051936739759631930957158542050930303975456479408872844390491505018808670812005575132332525802293766850218946423882135136543386123610946840361397201746867211306950547377988611087463169400246089517588107206579548828424612300373101735293304391593929070850092363779861183360975849755950248340587252326126560348469668818315153420105130085013964022146211528308137494974949361320653385977424400072110230461060468648559051360497045389058834469532533837052755230306000327031926710151109128185360948073785953938688195720461250933828199101318741918296308286679485919964485576103634407316527554626568904102585844548044807259636851235265673433401468515521955593933234754255606804760854385947576166806072071781307769443897104954224849245592948213411065111679402307183504647470748428549106638916833703901854073341208466006411159886125337379732158980077925563572418854182025962352641833364469833539468604453556951467016553028861372499815594110980325822595362744018096345314809744516387498651403660826988634812117200095609063038935078079178538290263417669586451354293209829125056579879171103798310334767339956016086237594132909719329034563046971489823091422719621279427636896354312782171408453923148024251085128965438788533890938724566285644632839200070107903827096313452980246171432106303493349468194148762389601223197383968937423930977437312829922897403273695605616314658815668613842235674379533263921254380855389523485777595090329506493367880285362718892640545772693202590694096494376393469120271593865562474515839732189222102807172241899122396151510095592290702551206183047478216173514360474414336577484367859377693396090409968991420460489170556937679175449818975378084401923780900134043934700832731960915360428698797567696062153614278587265960674201087000294566408776029652273604731990371604624561023834255935272233986402407556647192685475084482818435662144566477598814549658077824172417223502039679807835262737015632859030798739160407929525992502648087194655571664819517023802946165169961027556477818930446295415995856505555434248750548524782263653514379857834232696778360318191337941812906106678945773125129386746661341185427281165185114623146661571805024371792823344601962978050024753040327791587365359235164408546252744404577513049342218510403815205780504941067797291551925741266069632500534029595102740796495045478382292507157287396879507227755478270178515077157479849938358979192470697459570901666872080692063921022978404361099462680092771718777696018896262350330266118137897207555241589584325513161321266108585898361519434353313310040616818412415049318248358300613161911467787245300134225861216468640775942638947038976795928945966275062895860401457918594968856620811962819143378608473197824197061956994823006972815035771416058169686683770745509768068098353825507189178936699233857681186855781411703699271551482762281606648560495318267690588275562606872281672002359027180948450364791532554247502015415776635171885399767983313824416810463382123094223090257758453379452168510648580372511673301757638067455163771520782177091719668410250511344407777052632553455802388373757210616768386603420592552073412717637683831749805328968848536702708371722690259379975562109145375260499967685061123608628132726169008021380804281768602936377290108687355893402878450692382775863750253144555180465025138487164849871272318689531853473374672608902045628597828297019713092415243580195232814208025744879656024343047735098209304121778089171268113338688409701493468738870304786657168855531856250854552821382838225291192896165253133473209156097915778033001143884296054206551311302433821747908035644598252227007157543917804346282664741319888277655253685518414130354738978925903019232186534676415583817866894329764516487989612852794056437902800447271764348842082373559294311087669520163193149708979178522453361654883366275581037307609816380338164596066806170189705994179979360746384188893890805762940802612080085592619138771106912733024938857804861086060015658396313658447135770478290079961078750534201586550088405385489048187326627717829379708632790401459055707000472985469550396388663668313611387227267652026975993457525268436988876936871465699877470248330192891947235904551681690427373687294585219572165924594044571088312381289479281931353565232422334037843923465556851945241787029977843214077801653413867413252562045500569415052681738016659628782343003277940211994375795151149487953873284492553009971109125250751444327161154324881495904895204061221412374101760624639392877415493072824364095322437661047711580989534595266731106866671143422542097627643834792232489045661281361270063032052085777034933610879257195630831691473377148218676905937630568584334368300179301273398228172221771972478592698814681473785238491603063615156892609660428560411783482581403545439015628975734914136177824941054238503873304221372600000697276109131507755631468791684161409563093183750253728796194051302380566976429237618890500554104734533844782148463792758756213187500033996442868374388887652116062765501862069642614097882015181156963820981533086949416423803913947525236157315294307509842419115670723101777912067748810306362221173847100119764962763925090459762583342110486669461456535709342965631557181301039578850931545650169963109165395887459920764017933862011011489462122138136201651314237205456185314538033178576683559336287321349393846561330872723361092242719738026396807024386223391121552086523984004674539956466152121994482731912533361027625072547209914733091331107316164582677850077567773973517061055532241472707661789617216322335535862253280130390833869503516050989412152888651488055742860587741287702924109005350484895210893333645055048594451940113385159408018596507374711823063678890115154899495037664558333652635126463055100923256866923323363533079113061704422111210816189668801767060269364434497915623919833276688559739628078508014371902466098372761429374669073181164542805578606986669445728347487562301909130593372118119157583276137216929798271845291326923043678342986730853946383810788790625907389569653060357408368789044245744115687219197734437828207291148324939185863291651226909439984678606704855964870316379949564476647605834945955597388043763037263156859652697574941172766864403007274415858963685685481040349253536281242283566865380087239026936006089481792187838354026245206204151301821412551727403784822067637505921547558100812240443342530700291501363618409898403319465767716405329356291685728744192806646876167879266400735752940647569563799267147529809187034357014182936052580815138872328008916323931755963238286996030046596883820377228752078727317943310896557663179370865222022094878728679052082169152625241016083340689576979344300789867451153360474188277707829474640690548274031092634225760220878136009240252776874058770340429580012674743564038652898926257438056163476033072315822122605883881167718124965549053028501860070893564062108742491844741301170655455076828883449287980782994435522365155708298677277015368083834010238498902301907893518990951677268911448712406615042761090240389239957434696218543381681083892398645836357804134270750486601934353609161636673849521919590861304607784083535886388952621947975548749236822193334864600116579162132789326850051745932206815216767792594412199299208617966840901910907873653068925566260065762761284266991207352542484090583183293880972864313744868691753296121972249190999130647972210284418055907447257696756824367708529914731510023896081746723105490282404535090419046780589130698767776588494484396772626613481481054428340458490502590554426422053728734129278154098782105871356283052772573702960424829279478655401290233208970502946772211094099435349808837854719300084238427455565531194874112567983968071572890307736249563491834941209475954368312483650747013242358824480166737050038138094655737124230730689814163274509282071262135652921614840773940144052184462966425779334987055914328405497758071288038424541409004575247527795702298991059599474884585732730567431857721548230622491447970375870714753434004299866695098287812435244880192173507736114806917838394601605116938721401217176810567605604323565184516199749200068931786399496438985281479759854358284336932672710897299496763372902597686585517695271551192373790124966462355855722262530542829880286248301416734979454079044402106279086569794697765366229434474391932005789590515689844065889990097313368210736171602559331134922094022328109591234391959361547365547786162226140380841485260963867134215162299001624711552789114346914698126032623873396805980059908317462630603104581555015954073598091788016882909501250505256427062283324848666836502217030362399025119508222508975130916919042513132309811908317352188733897652561361055890032817275460563175655716342346747208601753633188005247721247454575023534647143149730314854050886929212055090188217683898444852840217887982036271507451390285756677590083199596405323055140495884885637188327325508215680956889017776413531636489983648971077121103020882611861502152598497741443604473166927494727924807354110696589991184627943338958177948070940324418098934936711432924769323296219562489874005893738995195568640396073076785741708131044880470143292535878744563535748126572303777515347822487042371780872793730623084863799042931847555828085045836939854434050734082905910641938579700153656559454878307786309961650110946523936602921957876935040058777025533252875843760203565845828564326587085867838281918653035618782332845083601750774277581353995355177801973248036584918305360424759011914807562546956314432343571646410559499782715549393402560318804651738695188066338153257998988477475626857215694305550281205583164659322786261179023214055395475313234471761635425309840986633438706732982355254355449914861448568396381100601091500804548328638183186535324071293231222135575739273854126096012719690532981800906653629934526982152048392905830584944432564163438545039827519106433982300419668442123478429800176318631084458547504620647890019310038480800241338053753955700876414587773768144475246724225882190587401272197381309134306867947138152117697332078675110838591362562670714014825199535707773441457223042476933990635512341412345207038916548317199003273264958964763306338531713556650516119084491179737229360986790304281644285023873732388855456117669269386898452889162640075861832392250409611225330829755071282307552862689632932876221324802538745290275472548807618493106062054342564012872082813048128379139781131516519546176547258238502519478442649419441730951980981660267166076335863000252807286400815882366947924142563558954065138612552352118147773380672816790196159198376334032097271773273207519010986690391512897624894096491048000590652998069103198672262828017268582256775628873444510194564347024339851201601845371043269215252863794946929039511282885961095371131524286067490086056887009378772984751759821739164739415099590314686255067833829876672747657160468048839854924887187155174512802820508592745611957135978687338260037629996831544203313735784461435644831446885511233397420491794316651440249354413734774740120886926241066527879366800609136642189363456614005293164841919791802750688111446479261479069594704680577362220320763711326713979881497431987361415837816847060135334292295526159143245607246412245526566676375470148097082070259357264717135819732922449018257295682584946928921920219488242742583059490641766182033211014435946500740198159953248667292124702507883659569016995439632646121680156939170943395629662680895859249596586834923382367703645325807304843592749283489939604245079994537124956072198663386477112706031481292199969773398210330721381760202475160365335464376926692687847781836697215794630623720558857975145220930876578819092201469162381141437999052473941241422830052271728938992129929523764608044059738313247868595428375516358137644647667633277121303976425328598626073877393582749710544363302234375330073792307711979515554230577629764750887573508914321012195375634039328453592239809603004460882680555531771512523658305945709439545436385371604052058308461669590125277136736991321656710814262292101993599655545502121826737838179359792463756232979416136819315065455816860147826981924302760779253873875077201771891367257058082656262533514249213239345127702061487121185409903823860836372322649070211367094387387521088149944537720054855551441605899479057633600303318206116493820259710163014671952779154022253309770305558879350631492648017068491213411049314683700548152385619535108338754561665863738525398581836133049333682366850500901995282311005204042360208907620493057902579920095376282714506145980010601636678426388217556248103991432236044188099809406094566354641483246829932017836333451696587739866954205981667549387459017305916962870075989912067046577080552016388267237141638649029725715188262254050103346621538043288925084449675649658761025469676384852542439643240713150334871622579290588495776879713767694272345140347280417994492844696478171570815747589531495006778334392373177472919760746745210791645408505913081412089054755693831732602631316689033665650479104979321612727527330240183440557613808523717171115011023481666349310833039833259674542299148373507915640029329087559791179827615246481269203105863948796659473203852494103334922870175295364631134161314876883558587191750122352062972746661458005663259520462679706820654402660343920997939366705600585589265554828404909023207980499879125918483155098984043695739384552975526683550326867843339048737880270898932908743549663950023881874412766752262334460175874770512562464619092980165642569777576904716519687064342708835558415904529802940394456438440637095986455785993949722783414544506985237852654750908601382471702541580228966672601284837894087430505197398799149650018092524422231187290575981547431399541591896454431138711537781316753737157072213656888967343830102957452702672433694947491917343759072268706038269115921549390964958812977338557814763789045580837782926734536212227561252832109948441265780823844837467927500392184622997376094094498744170752690666640867116178661306331153659617168504766593396977433875829582385906567887168404816599357537067926373066431623210731438627318169419317686914166969884923966795507289692787625878347154293195533179626872062931343004342496856382189561356879818215532490316568957785409725051331989502156040095048996510448499637429847123625391228134363821794393442367829821822460901511189168635254077536908208475329534576792502002869144061692820950825707948115337237301542296971039580196816950669026288132661807247490176424836407857396499399239896247825644194795975034702335357557932378917729446390376261274096286623952276331483808795948131930459335071890449146544645766559846904707935106742306625100902944613499255669319399109000550821487136992899567774257276137041688333565646221964989396620015328687799105023153970421904892323284668020056629705170658936830566076245481423550775273089337925291462134833261345993324993325474709204026789772689896409181369016586023637106095904815599708657753739213990725228060510811481239009042458685828839549254788924421427360532261324570727398603573496497431738177046712282432012093914586710333654913236306292204777630712097387523460977667891360308229624573210341026068020318730566504530938753143733941653091699180452815137726541285018665654021876322982681485361816230821549975631724310053870852611446659140679819799018243741859592280155051150925457360417830208163348766499782928123909203969555337976055682593527409933265383904922935572451785376606598787167725456322587154725265314778029555882705665917733379934085604022004922506932952189987195351635967307940647219788564059500928741546374167354540373556485074869382271143223087127965345588567430715429872769544027219629929429928041843696863133149589315050455522094605572420603178580630186746766975922358876148067680526255731393054306837739252794563366284424555907490340157042696559581794757187227277674304285546850176263219775094525117024530068932863643405256846875891527997134055644534288979055873091021768997428395261961261097092309951271725601119330404798640007924884568314303119730973074999858321775934378101371548047615190004604702741158874253233399243686391356581768070498024734264729587006454851523002857816156948071437778504129019017933907760689968170917498008501838976451195955603452532709991281992688174595439550083748671615504533919421916549104523152121252508174338906836943021853547348698171632409367974329608678042020206443141150617377983610048721546444110068554716356335437899927639438510745777341430318039699281508646350168316745388142372100649668255398376141505080493709932160988241080268707532520963441294796282920259362272181389044487337108347525198197178763564892450035906512005618220066625946821342138025444298321300302304373264370092674864567619750828542371919142592988584302350425587629632823031533968165933041276925388467702135863391611686314163835165173645482456163091799131056974194098230037456428656074576934828731989729448348388442899049190897301068389327421811114624508844943936035676093382309895050011177929449494986393484351308802957657302590088818836686956409785841442510856811012413676794884006187688039352877218457889545179160667197718090554438734941579635773163695971033969227650060844647101445210287713563243820842093514921669968698108011161403337071662652005157000289284591164644407115045622881024367343981932385812730353003785739332613713959393961883444498182502931239013219608122180412740576715241236110866747537348588804656637144023545263579940714349041483316558412500009077859057741520265858051765060965732917903101169997383088246550199179908250730576757708048158935890431518432744772052460805326128881507778084970806720519405551140110565742935940978189630334540078522931468212439451296184218475175216292869065690508369554230737510090789779602144823286460096924196113755261693788327907381073613517764600782395665997147886298168875102320435200177154723020648110751153702743008513355251611466549697296657736694724733892586595986629086544550555074910167527915346040852408742724877709426727521371481503417185293142258758767350175572326938034135989427269288346144652256131867638800970881915473784088382513980847009153253348204241403810485557313195655466408149158678554803394772412548382032359271475972329469078077317741615585544031468708596096909654272960850122914547611027036704976475518248124856438398735411554906658781484172870526887037030299386494965230650579481042423581975144375071158007146852830697249752210171107478660233602576454394742103577616478178545198225799111997277429525772920842078906144101433569347338707229116669037184002950671743286812316018557564956417340819850180545018653150978403677113358305413546766730982164737458886199584286279585285735776856774025846305463063814760947162784365470905764064028728691556167853622279848171954387365341609161966207503032677736557011715858152672055798421166477100085245705544187160995381502487131612154634707156296280531206735192639430937214666278403616720370351735235549616389290462065498180504380684811118832318580401838116365748663488209457574730899462076163958382611543892728612106456610862790404626284159289235743508324209194694752100927702179008690663307681927023903859783656928708207940536146615651073383485565907034719320935562889355451853789645924553376421259078967822504585124601076985732417092266839867923177537417469936703345154038875841180607058584598295135102600415281286639151841575266883525123423917664386526153206752727992936290233300936462505354470253759770505183258274632540425844669214884656988992065027338895607327544050192033954962055971989256922491078519835739823493647140853337244424754976406179838065040092859606588132388430262799518585818751966564651927421615933080875903550982371733328406567226089622642635548973449578828439407937622215598707526085092993753252871972335307632613510430606780261243117972186976647460091175587654825960946018334168596791061503499672511524940186156737505869173749218342916528940760187745373689864525173443220330939865313110624791052389272452129052029589860426212577866283520766423095770223571547595012983509345641363625678305027396540934690390963803335993267865372641641498062444453465068411644602653977958712581473544979328773524911941755023702050883682487383050746789215872880332755161651982023062632756951978612173640657843743853635961974213573126412193953130897454296491829340431168107974733595095847720620999722818517910950978938960379380912399968994114504429456465310379661180742750514776964496124572894167633088055829542265855760297181853270091453085686912376234147099643134514430631408710337082186693907282361618682846677338134169367321576790154501143724147106280818375857936230664258581097367406834855450030653465007471618070929922650337354092783299608864370311942010443409675501767599935814021174340658204797026194324444786342014034488598357256650034339499576485310138566649291480425268486637419810272751766040815710578423593213352505428310384855758415520640094941305287618896161324238350569656605383238977169941019014115071810654341329806743327450663827010441799848155206473907927913397511306546841922498127569074604203149606957895847902868942088866673400443316736769314883071188759333045251570917911481433023241499586189122779551802027203809915274505556668734580809518926439021927616424986283698353464180523903473722662905808608577113901819743132808428807111313467848493635035907180572052802558555034417943242244366292486034112275151391530999491967034511880196708210059679258148534953513150594057176195667991302959199390654417245955677732773340727186632306603457421422108566882881254812221557148107924684100896072658900421721441477186686202636674460849223109502127552272567608859282396678657481081356937264812986259387027684031660795507608118335114500834307440568939340025835115930058207072491692775187371774961777471310388923348399678982154508520763948135487087823805119137128070055636869230611521503478730915119399004247809603176485018832024980340765100802469219910948450729829331958202839678369448145794794504699805700109069462492242444112455708448357468497347646293235013201194703697530471497565248377323003832004967647393827673945350799919316961519085661043104638917040202731657960554155524495684476298504792139005028743347738264207749038499566679766900151060423022659097052045151519663864038825481949357613951344491286639650279039703308839874137168376957939864640571895750250999812747828239296260249900140272915131555073668985991131926558328625196219140940799324097110580895939624477062851137635208945234613110252174994313496533431869623690942863390389105111705101845360882954155749627987610281772251752814764187170411876945856867314321015274753684510427728769517288722861723875057000167846859535445707304162429704524206829173137673582418549769762756786211390294261198616158229750329035640497244305624259892982562016307346763761382476668502406076602098712783984319696365122451107136996859178101153915431650338094386441743238079277347777666559440619427948265970914996702578648942763048727913273361597622057127998126268603258330987593697662058999876189101678938110727479920048482855182591151874250045295891130125683790668400463124601198775603757044154268946613885846214841254828080500509719882733100649806262526761908863739980773779249748167397792677989931734782682497684415592500783549067442645091037016738193630681290288613593810536909690766796899666308465320114711266304631192790107628217827820843900505238502348894505044542297573826925693614677053340479018249153299507720541643595358422440398402020489029794860690356582607972813591318913626118178125719062821480970419136323946793656672386522229716250169999008590356255802458030494079141903947877670139697938843476165604163077566668394371666463841466023272747126489769265167601954148324480325164632236069662022172388948868949604845689086254447175782970505776274594166743240000702713736310196496721275731307023833413680017218974780483279371729221945574769073836218755852496112996870702578489196369449451154606499700654530715768593362799477868472520693120616864355039959500633445561279181534537603781146204212139830345109578402340279645495632416753573693893678626806196963279036994224701595201632441744698911497071976217595260433992578493832855945959714276262434356210325245599239098833334691335238301466338986248344951518316421902138002178018916719338293533225888415118351197645282001080780969490424364184451009190408782478097535374137449964024597194716556919365033694691781312158827432068893451639538775512094371756455513338617738060981513817472077382849631441461546810657016080508554548392896207621512162581175459825729999366376600431692850041093662360325243986781621830271909682342104757163138515100466862269771739293195944164923205037507395592605256508281427265954153315455490703681194790025274999106415589593116594144173968698142044290267628853974888805396299482808406018731289101216051407202698130462889398889865223405907519073230017759007138796997410936974646605185391290313682970393528579246870006194247489767104921083750863531782305251489931781262512295360467332502610496570391600210483411408677969627602781978884491976215987799428911265664499134164501379857675369126401482762723076616263108775928534667439328305918041969805410367814371971456718328283586411333503211345667113926641218703485337805833932304163570825107644141441782367025132330210008710151795423187580110133750854097816952144748205801334984501764059783921540889987418119258290871609028825694498082162747797360044666331973484883778795582439382087622329784336439886596382591283252376356057380178979038442147392594022141213508166305936470659937626532333426783515307952529778195449138334891251728153679659694853704425592049577454400303318656718715571657799754300011836838138601375598007501981955431840176804687990320095053940626439586815572347661964749080290723181905671280177605659669936138699097823432309147977425213238509589800925426777083226419351138313265250311691535694657496321127655285778669209267531615960511179173615195420561726761691854164974442213127314637843363053456433339413492368108245714445056024902282096716174169074128027212601531874360201387759262951544762658729858120193489705639887074395952292668286309601565423326889732555820456083011950517309709688808032096806017796034059594969666378920199658697189637297750826554272541896355446834095556068110598303363380222223067047370686517164348390192166728149626003531653531934223218542629621354166728018326906110999116587205132126724579785668069742618247317270365643306904919478904838780060236349869367013271062745417798864306102416811575332503158634602514583559566909649768593918083390478857060714519187833237482032756406775986015492653063364605329319949429949550036698700477233726207685335290319291287402012693684599656917336959054920390813546900669305618230732251004648464915490110167145709696990025513964942163844104213353160095884535710589338993917649593087417643386028723473039918477859635992171159828686949268621694901641792056239639999302702424235510461722369507738311295713173759955172693636714858472462712931060553550164043865558436479894296672546891297249334283276490544766934890650234053120038945454528032836205743520096221775333560677969956021231863307708919874407873149893148032855414889464839862544611796364422639075723907665062934742216372648160780959292807276755515211321513241918532910371912358262420966882410929016033399859361618186941931753191796174203056342832279571381963092313446671678798741791917780296642548584656484766222038746454217019716242782237948088750874422477895684609824619815639446350867886814229493629857880227568368988313266557012850613974786142761959714014001324259938947495945128643911973963548359545107900835328112517617513009469306957643104469670084120831433544466004925117818752605345661291479485841381520492036439406074670612423371382692704284516524858871970203923722822152879532426388184674269124622716341056693541414999147261471774062225031721818441793459954839596108443812959477915503208733693294282285110700090065116359341555162049655960024410570344442201071692021238103433385727531388694984852042371470378659914439480642899601137569695156495792998732253971766787550775317352440188571260419351883549356806304203234888577112433311419487273045247418541668830630484997957171930254475152677268523531880597297677644814606430971756177004750503331325089367032769770628926476805342927561205533252462202264139340558292932433210103100898296767694517320004230720702806668790366368489923441409977831117600790932967045338801370855095091526314068479699410164941549378721585532876760448524407475055028460082104495148738293510008811830866458585948297931937320683323104689078311981744420083282339500700618494748485106336660778534531683344301487716658310674532902105475507528731523854055408420489352978820539807118933995917233552934770568108051868716009377859989643677249518836320053033383539159186958724520189762129746057719014516398855476105729802926308384893522324359249940463582884149847418691409160229015667050555815491674953306753535192122518228593194984564355579789130322087297196289090117675204039457478106929707067882126233396846819748368960482689658026994771580492823121682344022602796773484874080301783428334382066755269800187255443315022610926792039940945077249941854358352079815159122693711068223542153073565919085391333677666165417320074341830549266826172120895160490304174313912796288474832564159167133334151725385475722215846046073010450260254861661763080941009452483899948334147656121551462003087985064633590678744236037975081650042270914074696576038373134734533282027995467265795339958443380584251918243822708371267884196520749476177655223594028700600923325215169644175227765133567726455492210676691267906614996628131752106665561957389897534489817028404751704789671334639154328015836698128441385054785948316908700385960407258896321494944968897872306675295878520968485337144342865609103131340244781045972737798810960781596338139887132655292838611809543333687434978833839703853211957789082578135239409600958580208101185063648078884296657207974332299114977692418289046409688255744948970833516902741735904383816662476754699756080065655479113598223863068903433003928118519170073580672446223436419410513651957258632568170078134927692700289932173013443963948264147928786090846525008247423708231965431715132486366615795846698942213115579015665354990260621151386587198287078327377273743895818727549396081687678429173294655046035491862292207754779212013267924208635235537545518200786249145707039417633693367421390830744703118373621642743667059101862872689776009396213705659614572246441819782006999238981841815718458139920102595542312144943438839245416802052208634113129573787427651902015346646651776949158537767590684586021778438302943684708500477612234949293039427949846413591291627531739831647555042951020765432316841929708197147388083371392930857964953516904452448626026277415555864555674294594707040314377031146847676004567552927921676924674592566754709582591682699077981258264913813637533409554793349175824139517382303367163156673601046766607946072001510827176515932034130977288794817314280247181895092013349603847742372935399058132211059730810675800175028921452027456599686340684391969728372453592945066240230749490059506883130707601251349882357336256810385269055580141789279579759093099978607330483254932522201217700079056440277659082132855215343451709610004569361327605146209970014611805196491399570708445434159479882445918832017897391855952440264228076238819900663521161728556446650768953166490887151205603974818493424801143427087585062906414677677452570839526473916685261324178231339790341221727044287254888729451047799417310435182311521321735352745651239750298008966457403320413244454180725733671383822872646426205945345186944683966209506796702645672402969238298440316847332922652063204171184326328540901081029886355767704817115206925868210343596571186108350089403681179070777626144562672788068349401407065768807787183780379451599638488750084165944656375430536975717052427464889608955949514849597211400490011533793557209164327425999041891563796207997988376504224276747311917078095793471286509630175740107610797803881331144985149006822583457262456989434807584371616397287763380350059893022342639293892232235268877154341837731104843419015132338234889276093620416712253326620120868769136107261886020012884655318642866216869879845779953865875729466456022208525762177359265245203044697178745096241173383673380047863792509607741014166471250971727296647460598926677253793330390887395968841110649340095327941452066852145022630715605761557299088951221218209055646039077642981415758041763347153731484495676369203111193777755329765165676320238461886197271001467590940606377218826700945186904656816698969509731366235954580205703036771599878458700292946550278872435376627561634648109146433850169401527660003932245630286549530567549060227043232569652655720032849962803397914232711604415013084133298610877336961513337348194500001604652686046099459063055910080404251118024268856755518605590239884698096249539067320616029134771165476775750023967348283980095720709981941934193676411707123668641615204526033562354611533574679213638775941887693147018309337288487022866138172526014312240695454071036734315986008107522622112674195684442941712069341335230585637446457988753934251822722813190061590319982607115971262752841442924109514352526016860453934010894707841892425236231985520987220862607678968298159497178849037921666861152042223633599564632769942375243423842885340612823940690878211975481555766820119778638858574943700664227131327898348299888436456217299878068612534501190499404719053475198596075215329716077187482063491005424791805586049179635400857970991649920322373642710366462688686259871355842198155390202674407587953709906251167276512657882070397898697923394883047299792800180804682340434864393202519388638371975785237499981902838928235881993274903314934060333250889190676978081192778075161799724914627794888953771914427651139500157790189921860814721331073204861288173598613966684853096808741777182277299760837335423168071714023169034902769347410314769206129459954536567939194280368846544303779655558215229216820424573579547773226835829113758365897219209564814466363529260718304638410527749128385599768619230837518510563377401198781743092250691782491224204594965973919084625371628787063619708497899790180764347821519632903714462134762679505907376940562709347109595746496205402460662381931669289692529767101501390860569599367526582062863278086262238730557482182290484044553478908267631970629053847370085546688215562061728834730820103151557355744394379148758297730616405225438410759519181948687882638188803481743573318795270367646043174568894594488066400015317360335465651212537754713807549042480675626774696997972901517444368703911076675129216058330207290043126631077423144976158323261746900027246261922471159266337468519870473559538187600844238311304730615561934012397381357504742054782437746316795128214450190283743022435854096932755240361871360577435390240212317147679041235121420641359050183027042739735425943036529069715185345648020985159837875771580041791865009440560809300839953607781837045819933030204333392485653625742468035787761557293451935987350564906159441399017757526946097335719409720148178553978653403869814230014297641107187100858501430901459172539319317297036242922032514674537692469821719211272586396019612877457018947754519308476005440365899195699473686522707306658643497565137777674546674281314395953246636278618868876446212328064184408291459300382058919172048286445702133346866477679369656985908709955339493143287949494010887259012239977835304161378507529441493535019986725359300355073361257154152881692802886179811310689432624910114850023742254464533907676655592248635569363074272126038787627988982519646838451585617316758604986263904327038113476477085260158134133310472384367219561534214853321884418900693499241678578299479885564836409508945528657599975698632597710024347549590709813364866185370202440774714221354898878197817460951388321784391168548736485053756958888948097579776026528634210916662462528057550991777634982633407823031340455817580075917298043313000656325517818755967329865211118043347149854160660526929182651964899449433588938370861271699408593654133653363330917659984893414581933386341759446899476551054563611043637016474869348750516464340502447616655242377466592986559900004484935994319940556793808168841424615780206906841552230361305974896235171349980781247299323105505337165642602857570810397218368975710719412674363098908418782352247508373876565539608640237219478877468929145103045895761472222882471902505633555826486308202774051897732730423209854332055971643894493229373677266007933376643874180945921824225163744069846889093881128193308202688213451882169131702347040827809169106166790705293287029744265970751992332194833482364230098999783276891552178535448803484753957636782136845886853048354675912620306633283891763666050912741058177438372284842578149699342977522315159085589640857065520748851543445657438268541145722118271518695485822886926399066971594805227592637271762954960316971287691173915138575607474623574809690792972762904444436260577183600264352682897751287627320528620830019170059586225841583022688647540059563874252533314003397698310261889645295200859643271569635582408748484524616885969802930474777537976822268884727930436969601435092285546376405344911287880959816385446388855625732675794021668206970047260598355893483351081041639927888739218696052748665550991363007105543630683434954604543314670285452849075447796853958272236217804371098782109309541572093950334997177839081954592357353060557184077565258029508470026146057214469717682563945344994163860508396897653918530351864098661324156611122253987316533565674173726461745774388203399444246936585071998812085697928334964154018989020983583713419963624589532185199522327841890687176369121581231964952098462415876470031358036424132057620126447142275138005968667563581746288880199678831250471927668480077093835076961075341845490038214619784737159143708198162900969116882907048867824440141681853239433410794252138938080484900466258247530885807882367124069730132917071370187828781178772508011327092528558544380627052849801968997388369558669358815356632810997962697500906230526197031128185273949029633394471048111328299930540530056674941751853635825400683240251418409589188049975853810498882494228301959150965353260260598411527258685007977882620041344484231658069773698387635506001663525176302893258227312108222059439215160591631803382522386179900629691195518283791659574408574344026012654068753383091955686787392538916574741361111024983238423565445995027231660466984198254295393247945000934367699222727623406785781000266678816775068663057039500354153168282258915139801545118065670894785354490119934374029662478862572098875328903237495795868060134595286322989688660556190649185706690240248614170288904906215510845304728097923192914959692508705905733386333533048480535941125474844017897711565687373705956233664501894502949658463995567140807713963947980058329159200174976966262129026607297135736962204193265262308276777704388816463996332029959004793060462088459265713849860434731749205785749192962848735037588976022358578079369378109625617510638371918187159227019226803783740066553695203354058413962807774535474638383655805972750897717955588600294628685976385028328799058373882303171044268390757075227978897431451615310130893520775915106859647221015930905772683331498779048333920327973807638180638591192518446546291654990310591122601602758841431551509873165694576844543743174300033651023493939980991713509802808954630937549956890253631945914780438505332748980106233577661648542572989914002263352972077912479221567905147431196197267289417888166630220152531510884564648589391588090334350800204797890378509008433121452318086790443890465869183362189008524817412260422787714087050185310982578506254136995935432197071594387484411008615722749937370797213136581955016629606616416213325688423430098896082723538924676038624044614852975162552135559718064964632778617200288521643207276735866755100911227240696355339268279396750985280767334524538331815817190265766654829854351356119003741548736360045170919930868405880848075705327773724339552336940620019540314507444876251442809053609822663831804136418455322691757753328965023886065802531300461176594996055258213510518665878721253119469232529416347552109796183190016945417650992403636828397789456509760761683065128345518936471465253642352786554120971971489923458149709622687648714171698119664765318451644455091497093654629511912342406918377318929844201524217353970901473586272814927440081817489849093982187705488446617078196632062887467174757428866248782168356507813984965813784676536493360691583504030296903752568677121438695644179589114431368090378299806745912945884893000627901525669163584308354521410085829375189876095774493426396789547570961941721634274943012890467629832718625570163860609630421782528522965232319276655561276829267082595522645986484840674895776675313979155239003512694902576702047748673816792471102793279309969780694228059228459233310203660441658195505098752321416467470152525201371648250201721539252182694648139857356723570181351096764386179989680435746465639835557644949583135354529513590182338610314189983129804492894353908816208345429352511311572477807335986856070408125869281815695152257165282156907443806153021169890459075156571796770265384672882238458788138672193593993056882266735384235804643277078711885509159458621144425078626258799741401030145415637599181390912580855686078753422334434227550530367094532390460678855746408651232349428105368394458713736762826089172618022986733060663162694780150887954410587241422617450464268092694722977416824048523247338499961773042969731688642738628194033406210849492621969923711539201596925051378595175481135684690764821609623400591873759593742686908229643136277811149856537882737177780864917660497082349560219346458990383844986398855894202867432500476302601032530452675427316338128264146878376523953677988336121619601991653816611520339051139030918803946643962848036961349511996156317888479869015955960021707571094975517824159769428590762036463685516839812885057639013921082151869672916468015499913040117217495828669030664791555262427220740112834607692885245473668988165765607593314832048550054675988013843937235633032963590742739291927273434915947440693885215290339308885117766753920201510465035796779871191359472482524927870862690329056432486225253519555449554148116254245678836912665809821594500539994647763747439573960113236892407416358112084932168575760145854023727720356491496450991706492343768958585298663478431727109940619159933144053380077768727893734326173780887102910094631031338917381067193011719704209510274117535889812445886679313428450009593338212802208198974409766246892342946022752765643608515354689138176246066881948131254566010834556427020951049354260586681470129379315937637478788401680289879360061247053310030375121185765868867102520518702368497807838918496178934141829261697555145286802380573157693762388578943387638538479097286528663634305610200778871389905377283173114257669987646407152527168278416050676099901944410707250039296837032056757889947658956471782053219450541524415059595870959940691348191114470140545128415507143798917440046198063503038290502118889394592286147816562940535790912691122967566144589879264895858651930092101060123636005055355165719206916304365048780577885024969751106772055795684083636797354865294028098053308363309269030777355622005636235013711099775519426887128934979158569490030451192923634435864822704324571629122954953078102768807765275936127086537212242864622782044259767207160154652566346000964588602783501235798156886827821310934132138717654524349144861888659174833118801370178862236838211340327358993950284095870163475615677616605285541491989365406866118699931354850801401671582929933128601512604159987051667786523564470410984417916000382226120233025119172897962936755349064445978780691764074490751355508898373612839070211265893732361297948852399165696988608965841857669448715240867296460204366642873084360902440202935969095376966809921125663008612699293572575936272328564134224721756082531185347802453582966485208384652334286742603013099958170623871675496608051557459302417952743440769832828999429327917589207877922013546502022313204693835976278801865455311994909644152339702195977354523202678543516858580443820502053377845699704753184441419162630986186489915125891386145609153622006493195065264163290580463384248807353101751978636842329592697027677746750910995529851763373070322102050164752975449581398155708873281842998293631589629485444739534249333056787319394534909851055023664142139117413656382942891805212892936430314991094413081012880235623071805888321414036057525683419337093793463651453259327057254586391800696756400600650371690243075517603032228797982425349297368322486338280495276578619113931880734860212551345986126694465026044206163849202454454795457250747595238354190021251275589399105409758402460661917012908234410250298293379757365854660787170639383554668523485476157717988350120719986715345933878666529400453080908589930343829250151311336447802463624284851324533557403241721122541340164872031228542613779293470976306801547369788934692743984601262515078170464934930879209182236357837971314969917836010920815523578181867563435778280471544090356427054961434050740510502197398902702071082269484421467843298451823043923789902713790318018023431011525975074347841449208189244749009168468126191909491662063816077314075015596940268198589738124851923905184160948405255481141302933064171985981609683144144292312234606509444423931064858739324639167437184938333704649113209418749657693972363319430089838108856833575449361829307555732938044155773525893288494613058386350638387933130394859477202719645871814791931283555903639118028958512047479170036508531959862691035780087175193230456750567048058087285256477383715265113101008597226172675728607559327020005973724663976149962449577020499288102173803821934191558221615693416255917572912223154354920623905404779129339405795909322055092062589841720279999619459642462633462636377077094908030161294497995438501372083087925635468337683869544511680648287134326764299048218778485136550248573293503300361068156818903265397120446094479122126771855799693682247000350218769313900367725849611519732721925961264790881031834669831898599905900376745710578623866898206429971384735469037936045717902759978465088759250032460271477826078027391851104187301025897585104535209174130519849562116359366143376129478488240121557000303517734099897773243479065389232158866214831079610335925226266920358037819891050081086566257227975947075089095713894249853322361745336288554610064970190211562361067611529435575452419426973768519229609989270834186475493414060569312354612204486589428349121880357327169889816350567690854656049096468203208317810961232844982653710700945188497372927465110548622834206067376787333614673118446821829200841260483572422401694845927088555153555801539714070190125579058296271207694971207506123395560550802366423492362799280322404303091416181948783073678780666876683736040754743793754204246350168941097219178314476799619669651439455723826225356739518124765261649128845955375069306937817349523670780817344098933034127026204945502476671485600871492737983882165030018727815016448063007348443030192392827173349655602155356025696384230392138624793013004307804565468597526685884269510153068810160604033737172087775002730170556741474950450518453205242965469557477682096480533352490518806711380442349271640670861662886182590173986376109260560426269378437586559013982080017900780695102295261499950194781707410056450307966286792423288065928573677975157179002787495479296709625460438599581668814789425509381568167470218313258017117347582919981271424350574263313323037081668598998886357860019171548644611196177240567923007204340857448713049549296605141158333539121578252563095986267231649042948572348209360836615854977690113793602334292515217982958285180662856583022230169590479675015976683314714905421712157836858756763545584827824873241096288612482460581197539398839164377555636444620137519569823008931505174646702886122934537983312411781104000548733652681471063928217847993604182784555171905460142591239111797477850293811074085222910959129994865044992221601971859085266913229024718690646290945168098335988559662796006656197697881295193916991591874098677243762663881070671210172927790599765714794830204892676966595715170168913342186727796487829026632610258367018867092138576610313848880206532371118328658998812837429540975167133419126493318881369152851874937523754052508252023764045031156999275620273792964289316936061354361799672674809657921095337379355913973270970084466956649893509584542125309688922528993170238057909973375428245611176846317909151500578269560146162351044242852994122897638014752759737040125873710435280038392522508170742933692178773256717890789115942176079052289904105570062418227120106682593848115397553486921298586688263012498762190440757450553489711966739637271658317241001481365179918448824945926885121771210785836416694977806318995648321058874216034215752108848404258435262718887637363656010890331869944049516430007149309143173871007892902765167633400397752788692685527252373379471428310426655933966655055359427730760983139962754685240017540913129569926445241946174264739278093250260369664945736524309473601198913611940850966862040530487886289882078690837340517852075417905568046051178955224571901382043906526880899154043211772608523185876409568550843965374642675778868994701589361928318747087241161225137619919298287859501907135582314211987199142937178111535844901898964029336104411581689084965465972439943722889914015653175974894780353835523736211572551413487164054898323198090459913847902166149918590034683448885262485027470542694837229304241352324794721959478958664402515237454667122804900330100122526894959298928444302529210577243422923036069685085685911657442008487121760909189744575114192646740554414227422181297335696642336048536538045855499147970821023438313644984374771310150259274900076552848873215566704859844400770812206261464860482184418992200249408398290573259397931256373340949771423104179576849745367274358207621383115746740882579851451514221391643378530642542339556511060985001939590132283149400627588747264022451166139285794226836329280857743010559113239447023779441735797082763712194269861513593201559802380758668821904641482214691776368739723091561234250764003935184968684837240711267897517597832260757819319304528792395780449068364472766250091914928578639418746601650054445524751496126202264440053977331409596346211096578951998738500070342480239621949621788993939079126872650155841306081253283641787655099576265398373037679348399606025379661641443286213581201758132916829740091429518522195838647462214916878880988799814269645773055511344414306725040866073062930707819368457917602739763638160854276365078864690118637955547283355293251190344115448325125222672312970719532455439745607103610111105180113089042920772883772204392172770643425605765119058990172944986436705344631906578149192893248905418341050906673489916556544812898890524890886524959242830568585133531182531382906575571994860959025118804140234478075386749215806829302565187163112729341175797699161327025890732589939510760844824675025124844257265521063443154546231881507515580373527703410182989337085872813426118631773159823528652687678861694072131885335709882573641236389154399761516784554099629363750460300427341619977601105239855921535030680138433752867480469637245696892046830039929277469943344760529920125136252539379405884503391350822383596788558263982769877245865259811871594721782991632614208833650353200595722601062741096349153280330616904753175199702982124234943096335842618905240977568048359554627708784776655989913455003134639292604591804265295366893005379806117705205010127974485679738100131096575140401231774521956998701594745668229864311034967992911196406744206761914318165591005644531416047413762759386771710166314100200503667398915238873865597869799783033606592444563247336202086422875542151169621030863725110965150301249020442856039288759880532071880038971550706654152236335004765462520038534934012453852565833646093309900041131961044814353583753977795016752668589427710372262839284690810818203658564329013043872310410702412400351899622936795380387022412733553390785071166457406299259004902688060258990535396232333804821625954876948514151073396526568826873746804644953609686242883535761048575409986386948392003370687098494253069504606984141848536316771681290276858686070028287660144510870639025529258344086430341718337720745533131097818970515009754848683879321359828721199793973223483415886910802500575349557231351038856338372771841235662148489213007001050069678153190786370706905707914797811483833137389255426533882313358853274704735111943460574299912803090693615697385738426225319803392310191124972952891867510625832366555769672438501924395678138021733922749656602933283683326233669548418638358920353834408594458844701056895540087686285620139075994484025472145314186569603080701357576315077017324606994246044147738046650380822483072930763902224252850122329653390607522068244565780117680530323028471965445538195519011271885317338089376965476098323697128006014037889956024972734731913413741693771354270551694388568258643630437690899810116572105674997089610165041515935915977134923917445311364706911753122903748093645071534365782309600231396059920733480441346436875214206822920460373604123132608267618488521666635066684060167623458692237367106644704710485242239626913270201598648329457815245340528787119610310519014732315004607193954862329766234080001117458443533436585496355465224822396603082811424337762122763652414038493188090755578769041960265340257161863744581082025187623068006813374962512537291321902653420522939062322407289700886391445290718031159303104681024554778074043393628723408214313852643020423237850705429146408213700617008336835051186700492594218044374132943000259019268894358176753774144530519293428926087968920445457881690373026941989729703334391254173883665168012151952677628007052410843230026651219070587470578675842899152091250031754549481176523912864690950091733763660404405092296138237004820730513618657769404464019313391423237923276453264394100100166495915116313049030851590247974364539619033662587429565951822141791079317568806606984057396885819421775582458969810622261583025322814018272969286183957086240850230586588692487361665419220296898260159098346818605295550496513230488685904862680928581929863960894993642494706744145708272028808792641707933247060886821770553199559699659265081093298404155072229372702707017567734735346447060937622435932186627998266514712485527463185326880242703907125833643523430614473372401984640071627176166061827433003512584888708697755862543006225193524469187962098836413200850028152190607022661246065640598068573912379309391588409824572092161694528944026969219305714953717366143344966606588744492681992016559929426785253858301531500984806330249906868197718154585418465865308109099359502577836309654100891151007655741658295283642280733579971030358562855165207609761795500144338607373040309017358065903857100625671515185419752182270744822144920385721898283232376679912677895207876005630975563613471573993518273945395235191546626564231485313961218070111332992852904948997998228462958758280150016691613674966701539149701909004396676819848889112083469118089897880566789863746632708679961021309392812722810271179792065082320798677665701149310282214893454565996104553205216200966765831502281615643138183710863013819916443569533002235062573675865447979836309236851047938891272475246038266309549658917679241472412291196114292812844780863059611555208075948394513365322977973578287770022968562107624304412882286047224515425537398227869029959183396248670993396342357079277971040699953227123644583457670923136030996393529882923111276586538153035552944289697448712169339590734226324918291992987105804007536725363051855124807599048858658980597519827915033284252707710880766051883931119492127893885673347058396174144809691610919015217660050435297802515389267620598746676940029044424958454726578401164658775788730304705119104917986191652618357359995866372468951112706518641832054250351225805848503358981488913491110246404079585404904562821444171212718652682384951486917393081921629553148740949682132158662951305854145997329652442176184473116078519436664766193182764190399387221426869112231022679111362494668319577040296588686102397064151703751886690525654569970854389623468910266381511923325920198753121850966366378673980168892450993688380837538252602091411986775080000961603794091654596573226149733240201574471821003481907651248204785866622270929379465406700063425880378755300379814419087802625731569638469048963197754583430905769095934255720625125395431664002325175895362226056382578834726010099001490483377173929469390376599890390654439349247028014309825382987301357847488207077343523689657650373375451925263496622977505976148023441368138711848059745468798006614391789554977389503985206076771843845516866011816994344889144191691199872929407043275735668698045926568183385500435398907701336652275849606009262705661504151948392625915542947615544100275566797416891155187813095355526735706348497338151039244140427266928779078698465905057416080621961669735460855432952773678477439147564016611061405385197179403182939676228401354029882339764768176146374039034026279074288405868679750377432429097329025825148698696889126998842658241557809828110835174805138376939048134192459571429826716973789328613226370039670939993670713104575030921509682851521864250162744480569662089370310169662908366479665906214017245293383022610603992606833731311886582121428442027439367528039188804951562065315649014362927834828556908076244575452979856660588305107379256027858084998304351660670108369317408891026449168483833233291517866864089269523668993347560215851271303832435468639651349804654298238609550903297397076730334218443460043605645247577677614574413205104174456295254516938840101302654222679912053574496050739739290939646488023348842457162994149132661210434292781477086494604951218553722547927507886473110511341494620322210661642629993660640687788567434835922083588156884029787666942173974346990832302653041472726085514103149121434804319958408851408826739774330917978983388912906246052241557203000370363146837618626670232547907393677741539981177307639091450095145212731977858151997615183516605225205228659816518640586517212483023744342036415214193711624335997869611201495814993342405043916962474622236930621619499837944099777519614216055618824582595024972588165003799781722713398601473298972673056456691453393841868557747334806935936628153776469078267482632609209452834035770702520369046551802590725616183684304295588322427236935857981175864545664336856413158176608773572650994710707099206927618342031403801537083886666404526596008912294241206246596791299929601218905966451458235157272332438957310350932269776516814621993080079508161435032651619569849207152099326095348194862373259111953811836712575649621265213027483698985722441395404880488937025746420844708034460536244665396896162537671095646417893077810175085933051485632248223355401981060194117665436678271440620774619386631086394885211927627111979807124481096566150694443801143699769076965538323844639506511806166533862040716792008797633090774052039543199680181212662376449421657794840211610798643965362829411342234948486731847109941904992023676246599595045126783718871074648490401225184685978029173100987278584351838140936325202110108668425130853263168360617746297379104751192999275290184438396513592442807188283015324785217574389673979801302156338140973316261744668170042061142968296676817848043693370526045134502619310474586076807940818837287710894444964651440001890305585304517488665718970131947472863408286769128245562960167795535275120236621868423399768292981605345868348316985029839473802826799554304766989767914478512495504683541340921918167596035901826164812451491476270302883708916129579583478382613391656410845281449673665487235808831444964297905739941823211896199997789621058947581218878405513468275688258334657908738322801553200123911752298685634378830622621017172213013144427762724324808130057715582748047078402326820848256192824379635669559944291490688772288814670564343798302093486517364292525883092874310754906839986723196063734540475608104277240263473551200274211760279738744361778138023374372991489597107036766602718744011686894765156402904905881380573364082168069667711139738090698875908936251206827409344907993772911547324981582498298643915939295964531279592807985717387141827859474554773426254367220121838270668875182596427065258227766814649755102340594748302249140883143949961050663681611055260544037523377108663956484970698218155316110686484040942928797938906394445609627165299668201380466389539720365375002748226899628432143923533640263468744012641794269959503205177275668475343228389613621548317531748305975979698526759912435943207324416681808905930499089739014423886790249081732479595447886644425824194943987334487022270601075165794461105832209721588808671334554091333609310022296989225747279520287650666058138358517589409078797103844870210560756852667891465262909918839133556399280986342764403005929736135657054192944754993704146320722615468019762346407481640887631222875593844406223666927321822951136315219204260235423200715972106403271799062636854324429320791197802152395129157388168483596099738554778115843284099806664004796453958023535960379423904864107929902786916988608587253109614127049816958555509002480101908404292111241672280120046409800822218782396875431426648844342732059466518480636396600633659899048348162689385753253479606018101822097410965923498907653608556081335349595013556770290358213661624469082275957691506765157372551578681447914034501531300460671493550873090824394680040413869781443705598225066393539921789688779382095787735629013324788960479356452876529445999858973849518012821322118527599290574987862915252378528181189912207858322778655724593465608886897731502670490635058873116203957562393255477668789062723506458176957775077978790052065910424954029538218475742387224020635730360734584302976110302875120010127746235749746116645565091127846615706655909850464963038858806000493231340553468314792122920651540183764317300115495493810155675585452828119527391948616113281571666827381915771943020649566571044566826437662077082211333685312024664805285750202176202618129753249869305313617075421496788477299034326522912082724629417492754564682202912587528202578885669939686725292347368858169981941708206757364960786861017204335091095572412593513236481117466289505966508781916306278017949802003300368950922569186836822696525626584889927542444099063508977875171791024831770374664260234908453713705450941433889214378308972330751660091174261504546261008572201631381347510695113588485661445950463564420300998754297758694484254516091895353407622224392986245876762694479646424814140130450551054299609366108686183919236735175398463484708058935140546137577824824880310569548506888335688877021541688893931271903069822983967119545900749533197543742075100874935710472996818672538787960686087626243796778760794093088482313114381386324669350532756745489689420626784056505655359905305716655575123925561527491887553276426531273796457068988601454031654585623071943466982010062443764730275889333883219630679734785922420578039034076779952472057273484142579543215413526622365775546520205804709491948268448256139710945968856146848692166298898069814547282510552733334749195134334089902667981491520302130147769453580588789661539542099000398999748212850005533712851101390121011313347061625661171411810977865388731723294466389166534834058186986546344220633751783467412743365906504855358487623547368847981028016696083875397364256089062999305101820188178249342640829766882329255809491226783371780023905678597208919170733839634773812590813224547924001907999144502269888227529316041909788207120288240597636491237486145636281260390729180900075397740978288183235653130678513667420105919234069163365098570482793280725708659198484011478004846150184677697204130038196988920713014516947068449520866859694623412151145136663343448141723396105070971843560361337322619667339674208563416161563814973422518972674337249049864937860531899125131879511491773995835011232389455727496998585993528970646599478554678196179384482796657374174187077932545208031473493690170335853668639161526224570842015052062472403477708847326925828039617338152137509123162491014165305656499887542473326024968185109190977019158024368250573617532001123573218884619078762990524094976642561252832867930994433190123086160025276497522839290607088680350175598506788026202312570991688489283373295074273934301791704599360874897001645568736288497480886098805251901135734811114998032734890713861965002863907286164814009862790269297367718936533356729007944312206054749909806138758502326242294714775828032608452740901806510237258836189637098132958889504736537571281005054875771150476879241719375603393054281122776670328179551224046775538794699922034834408606525212936064387143423543082582663117334518616509872794571645319202945737982176699057900251005991797425000480344559886563001327027659756957097976979627844674371494010555381181348001341173774203128455818915768122273191254894230002433475291541687376609255901041238727708170567076849625910396801901884776308809504294505292570931004061376001459217881540403261430808087368882624332483898765408406287252043979270963905964578674099042788654611754259982854528650266108363921231557170758183795273174422426263498763468047157366741945325011961244687233295483262313745217676762400843848645154778611740280415544280567280566017638783674262726385984325113066720103918323369803532758559985513323850941522509955738758240175009849945953473652432739763682305459579429547905255856815963308890581933292745724657463987144443050117837321891178201948303752565701906900515094347099098333039022197442969529355140436618020277735871499590159397130524235691404260984043713462939899392436880874584970917319206916564986623764568390259594983117971846343666186996180357855119764696022207798729259600737910470514665459398254398993279438666011285623232000002384154731460294008695041888387557929565015045409299489410278605132590087882027509928823353610256593765938353286749483391250581769322742290010055048299981486090382970126611383201954262155061143545223749366420750568548937550293959137745227717756263884847333687211066384714405531112701643023627261361177222037931684039721099065021364325893287197968391846929866325402327414375230732950790510167507921483589587166730971982376428884444342040287785458671061785297304574483819540097913259139095827738080842325210557078027196788784512317671127222034961887593694842393556670121279332022362426813543520334888392148313426563347787841533150318713945125083357211795425073417094196392622596057140304969667509950491263977158830469856751597421537370086726478908114808900396904404095780275052489612225022439396941246406410127659108786147656575141667600630588260766057263286462088370799122203443485225700200713656572221430599705372368806379310393076213272002633822378728837812287033806165907691397393555510177529844899554016441447763561530105148382142564519134647420262748038556256133024347281794017573072549360559094876552021365826776289967995273550473015280133314012278840795274744683028847998071083443250402054043253048611110764761935772160742835815302877909153341513573974799046844414445067246320571776244150930622930732842184245988288272889197307602207030789245276678645632623287542517855433824931870734756386358009666275822882632562202206286010392585537854545725835684569745693533758045928718439602591782686167909223094376714052818393931980393975914872596103241163176998552928703292115743503279914759972624904328868465404614532551501379499791031987144230539982793229841057938498021772922161593224012296415121523011762223348901071405597919097476897390540259052742632842411507039272453189915870061702909779925588463223598208822822500192494925495967854264382107021978601268780524220838475905509468324760336259729031859548704366060695491709894810055799514831012045694479120073677007551712103214658514848951619941907192272736865963387848138045286544857660250080308978431382770634973800707076110735392522123716609620676511280499086737767105159406411221121365816353672697268756490973896916652587001638663492427108907297110424121446767914992140049840530478539187373455457001467123091758913144654044110470705404295737412234458748886465168903423702279109240795990293836353775688467628234293596592222849851599082275206697299809250953034788527559138118154843669720521902466613703136918036907533523248766916410138373782740971264428030027172520782322002617052074093181942148210892646194006489884850606622219674662182301503157239073669403126057202161140799560791833618633814974353929183919942597417231715483758919098240810906728156252733989507731750931122222461438948325678806819671481525624071022474311952260405212739398831561270976585066219631488192146637396248217121866083117232836194689514946748894100814416421563699387612074873239543226863165729100223360257177772373233402035680198269012015159410401974642519843992197912561034414446679556642233890773631434041902997871789584716925898567454085802532369176466082006029895421015062236304025224766939030989770974734973843060184685403797267002433118429833447619139292361767530560973727903187242175875913478177093659370236492325674963067522387047525913406610845559993778026739650913785790115956640329105242867047277342402686603852741291464173008635380379136345601970190491479866003208704666723015399929017723898720654454495109354718478736983476846603526072555386946959490172563216052527630744195895448041284473034835801941106755436885749831357331769744932448499247618112526302659579773539945131751745310944091225972973567983584397759421211013220988332843186329624306489927345958510986627806605978638850324509402095793691645553897484411381802512753433326768801930932134168481248218217950439846380293823155165637527777533887907534094331025325142392243402235772449170737283723122042878795056165579665776073389141922565236382396234754361912534771925196153150451143179392965248217717898987703968854340700063540515674112229160617006941941427078512101377164892611154169869631847121080896516295009522221236400337201760921543615081124575826382146481252024400082347357070386990284188040632557951288597082207787623451988876205489043948831574127585579293844390692851722955192785879642334977863651176278398925979021343582224035012591934714900219083756196061169554333217833537068548626542544427581980755976113013768652740765331517181881550717491774695844961501866486501070671807285589041274577172588376273136105192223036160786326425817505035908212734745503126371627198990537446926833429171202017291216977086103349806456172081636780022573053033690006145034816428256545320129832622597384068812840822566248063611531778449948765743468400250152234200656681169425291792801580708581755658433648273185949556521791167344858985875216573834741733673807693685340613403671676009176732256635374207505413409889225608778482107628310023971523788763858556412504185322167406171836094799817955773857096244532938201091506534824035246025966779205738662013818906736924216154492389303859297613122851356963358408402115910111101869241288088819549632732050435306617591251818375169874151171815122870757125292609876954362203330860422035747202996210379026715754363359693128787844407458675164254505791154269871455825372393099840216862921679993912160460743075699914650114742162782930476912032681770813113577969533639781179487122553859557020132011653963996499155464523713886120083957082863106553712210956735168780688360521929440129327230769378016491281754413695531565550495024420547391417585182697441128377397126060355773593201836948964885447546422573499804005824789099323606372200048012742430161420895265868358653302138567387402655005459675356872599041416914174732858459008292268096897318587070599534933434587143720464965893742202200501327582984293937257982200711474748091060120025839851915685174416615957392588678854089981422019343915267874594464373435862537025098515954641953418320403007019118709022096029889466348458540061470279254641931746299728069007107890444468170922959795199849174500891475302431500067445158886136542257303295089055838117420480970444690588918489140243214953972740327792949119327162749997806582412718710242999821257256802368053013503147125723552256873045778147404289090754143717859459071176249823720109025825119371658319255429956824507791931720169519165429413273629788435227499255522497872959503112959555103399998917795079244015268179332225926966809542987948310352691014824766485883193525309417925107922958697601157530937572136425442276843076890577909934106407179458127572214365916143581297860041418857151193707453928660138645788574533080334075882025858112619341207172869758410209017519941325343225489918790560918950958928712138554796588699227705522101392459821899846752622175184407009242136424139936184355068288731829289435390934316098042851414813855788028136455554452360422015066846845011127166435377728675730888427117564976185367127220237877867888503495779445646376252830708506460339699240814397850217618595545048130092147047744786128367907785929116723244488718674976327292896109580775971306361646784158677080502684571005609358095248533323143389416847223231712763706910600557259483292310684574999024876820072216223155591587910339907954815005263387571524163494014755860493630654189294503941818446619601491511468621573232432214765219833565699787488052063489061690450111365161467632828044215670965040860183966569176288524657001491225719215583177535289621045999381289470897591584283933138654506901337635821374853548049504662342495406347069001775522146363466042728652832474941827713692743129613139731827074029853680369955279563461560866978839808429396408108497466620929297987754260769088343105652101968362319364475153562939492444105161746927803871606810276517266778300783021185577035997247666752414585873668782899905139593441553424534853271441008283931106048628121276606857859086749025413359156545975265492114843848773026511762305093423795847082171010594074262834696743006254344783419077900126848705510844375301730333464366853213500059638938610808887431184099387080038214029993577834762739250488343647649117139917328854919232152196023121124828641698667010441598792554992994281669552943053664922290084554286915030351484718613550552508369450475629014432052575173507200629607250247832850505402341165703604627157633294231129132096959401631019572383637358012379110915717601935011282249125394812626803375767339371750123038413984287703253765388772156160524523262738809308749711197591596021909083128512592172542379347199056075062660831488862590339027040646980352915344517569368411759874874474069204544986822695192404107522593299955002872147807421036251095295456943572295750513314268891851394936608165644579333910946711928648062105300588462345585860319678183083918503954141176186777207803864239601710979585364493471689078340125092319715633893004462548221766892651314273188980843572002166826172049896408004434706729825616576395183608159278619832309773226300348449198862461808945230506928013150728077952027964311807060501662397050721164307482183175782936665518495298182432876908268728629795265061634650521160366931257763484914887014288073477068413385601082626666744042613701028588541903778942728785960908137714226379095229414525538873328835439773703899282747827398221205667611594716813554370322830399120022327410001539340283537089986974853128251817155435523967474874162142040241981062972752671491585141804958068111961182235326466622115607675082675467379079621282997630152294023655866475504156094500977606675280850381969401026445442568615259359950361854937664620528699203312252264624839003209713186137553632643125571819287809244424422783445608866998793662939998935428323439548930672301458070394245505165674224350621847035013391290757618799563122149788021081104136808214643349698430882174111086566906593483024415458293641615455283242340137257085356227433728082521203160059456353652104076486595997058718687171518697757253390743926117426545187382947317654374462366616834344685477633943350380194398150492530452513640498230403653637679050838299767111801742848431270909360503054659624129504463395304442871073088411229472375115137197660840649391967259162063064040216770507483258554430334792004592404243999932679570448918620587425881518408479247735047577242552148201608663055989673305925447341900204603902414370539288857637816500662752591751361066331497023920002522742500105941606866799539249283653040868370242455421219609560891798961476334294099354990519803212818169827785707523151419968698262422035446204530970965668400652324185705983720164668486905170675236384444892138822931696930979994289718950730137456087806909892873265322598414322042162600689728141349613695052353574858177015540889340803814969385769986850141199082619416856904175126699592387220492010300306431197048117262071145505929681894474500347146443204828870773514712558994414771619060734243054057292439976997165766252944650748670679017502317702408780288619279747226125397183744562569714089445777185474393650570492044094439093208841894451641260964964332449911841213354701325992400222450587179877694855710036964843505330061630242166833669762784019839909094801530826330462951196146176492986502281035492860264357974150459504720061217987992411432670501529583728463275741726944107218958363037291452176024505705204853777935058045062388716442812246403937223764530665385101050288674815663922650569063337096168997769249908749501644504066295750198580834866834277408532115359186043801728715050116082738033993195113733195050202446690454541548496276475073841396651033564448873271666481955799744025494214151901258786902736645619235996943229222090556963602231792997443008452726552235148213970296498197522534869164544474235602501314980229139768382987597566509786425346874857793439631523214539328085160795921108135975378259558986742241041135313618764447692456424137652138675587389185875440734493909938556394330721403357033126343184242956445911097091011114810355893998399672528943059972268973036866134385350107233979480054466335667095621623167750229882899580713512826225163747832135318675636433043788563531907111471584288693197255018442704418644636086424798986229867258264324680555002194570849583466416360868881562055409428930840291698323787501591572162042450590190942642276846081992355680813306818809311270565956687783437006232250349835938224338550609440281015543352777509800244175920516154317000606669332349173641476136897714419854600581978720129646981054789554732918349991500542337743598011776333637608425517122217050518316770030407296627352020677709255153747004837998300504719125134473807336830094770365353749309398694272321717312210345983676177364195191653143229784016274464863092057333942330058097153415542529856177704638908515479619944408899746771041659061368716328214981179444294194845643294934360425080629384406409802102461068584048422060473823599118605428505191049247639863300119325829645597946200189034078090436152905474741060177224533303072609540736665454970423678687164219333962183839462508252923223970225655981660577893636760388003903962301492206002746716462288381307625099274709763868901946305272317181710604493192917028480654477285113825101992521869981985779085195622705544397601364721418287200172006617103943627438458113012700757109687232953011626901584357047085805271330916467477213961471740070034687893223425039808134606128627145368667276762297230670690505704067350159204298372340588938110701201797726579903307752413437199388670269140870356031982759252661011537243246106926751134976315213967964778387472862731580889809437036927989110589295455867664572965227311036884588849264623666705941593094404815595321875734415041399436654527821632324848375853571194631250184140116745737664534609573949768211239367083374467772928475659473070640886941193390693969004862181234406086644791450359089608401959148378627200046590659236765223877766245592825184553740943697360215778641810227920567898051825413160671932163365204208683963746458401151431132006228150497998025329378578803790442109002416267701725644581039304417442253099182897042713736250100080567362201217203407715827054622276548102885408503456026409369760150920487690568032645529562181680173257319000254955268214423679417952719286824917939766694204820718370712426714493600820889379649467789347989125017069258373499172096831051648516348018538130382934048903660412641962294527956921650990686651554632463864247534203308899522641050866456586285251663902513399974430931189124145499246939947276361865144084342846057669477324361832864062917324427028288105561545758105003928100264898666546910763437951826209556159129996994985647848382784083025520006942590817213783904173083543889655356883662968407307340972647362620391013871728250930374391178995755648270509299739875669344799952308803411568407818404639567615781716267478412622174119142691500481238284698298055535267128685340049048156281806019120738797803500258093636474440610952762095886532253831396369920372207027262430739635869077064874698067313390442040108604109814868452602027652594280824040666050795544620408782086226689264355221630530129980357143226064123840292466301865983712494939176253424455240455153642067188804301602234534083183199022177512125795845771566324423768869550958187731834505791242501288560719222827681016932719558950871449051659117696103499172181853168499895055437956529366008754727932292424360335215728765244106575007292480046812584351364675535062408796631624775941131407350789448468292037521872944965428355256788845899783093697246859729083057073673806932576546975999713713941653327937723750542675634592444958518528781383122754120694524672305299368054597857064152212938482661037330438952835872109595680527606951361842472854105897436275246294112159453194478528082088296068345116593868247985182731954448822458443682067797821171758012477016014679611944441096146979551551131092998394474513457482897604804495293321660436715432801571660759326771111816673801123024825616378949606554174883104703048821177262196635398093128253493061053882555986453471424326043115578963731448283542303589812335926911992996828690825866715702669859523826447276767759390965436764873550344677844853132356750855315158315225239279368752107923132806104792561449786015156212747885653510580864993331641843416600815196726393443419958006798647103837433804727817334798699515622651311884214195121623695579091298596118423782192190839739124497248150424052503838547640927806381552727984039671873020973967354037107270329731429332899252460109759516923126273813298780155285552824741420868160202858977089745527383023982964271166736191430734371721415085970518426077401916078595509111193755839362808457638088416849034759744275709672224634703571109353239325533217104600656915214731864498785517735900168734766651983319661640093482681858222169896706425702162009627127796434323243947386978626817392775537867699955774799951404374474032582329103899596409002872450745175775790372001917459269326401569485347370065030860641770657785068392053303530850994397557183991654834983419835354098689548834518118067359972451029702022209861923055188013571541605729227615895228316911106676528878688676195784850370327528330460589590456523419027644156973661225810043202035074607169844010942391248583951829264506933435537565110706785625374754200347648112300527545407619125182279727357452735743149586557739438235521064203293434339764385010512993239693050031100893001995392043871329961754444922193363128852003174883184952776883814513403108459754790865335148607014692074871923614882059798299138046621677674336233678056585743989405761153316356426433347174777213339356585543686521735422831583795445879515385776343013566498418613027319531400249236831149665761417584470261577113108599525237983013482021879309681473919020014148961269128915272895898166555165029945369071349982928611670220105229778953344553840606544834022934402892603987987640725620529117024295797686143572137204285847199822521254569842790868397045250386050275124997373345642606793989901791669817933656090044422855627078282266847459586016839376284139017188484710374953330809986745413221483244630402698699420453675556299852140373959484474081814011758435137163529375531920321948014224266140057296156156850939583642448005709984043679016533513982744311083457538133046948402594081742288833251836047773447493753554555650779547646308305271172801660646394878348495429663541066768759275481469940493793820673174994512284769458636335909015172683185370132853314667798766175096100367864434320789453865070565649534576999016669099534383362167274270825462236963299786015792986911085279023294513771277480311540861257928596112211200570163870425809192925446486602775152067244793277796014898161289894057970730978267896638131876825301207075275306398250902856497962432892368235856166527584685052955556850984582233868800138148139492833574387511195631391433333432617332286156829996339607813582334132242565475150766660722829309552734942587124375642101825985523831331732773886338836552762391254376054587395794967532224729334924705420135780953139552805587026616525338279359697242213196689427661562887917450704244485865645628235374476530459573382265988498177204625890869880489371273198422742494149993081621467870075906117250912772526846044224311158389054899028591792132261721971574620473363355761540053102032136603655478341834546743346360859356493774682305161345625393430754984162040449352037347682525147070070730230501016902824522595433131709849791979118217727681400973901727465787445281169557090328038108857745766231194076683439055628162995008698018426218838301328481927845557380171305571770852361227286148721002459697916667120836997550555801470628840215617308517511826357981712613789183390219089109409546825316673231452556683447140086484223607400196229688888014507536941298316044345208525230687132692348585265953707246561484192813461314174913883335473434132444849538505413270824340324658599053838905942846095117187867611600688114984904463991169111520274104388041225503368713835304125739441613867308815447664835118937116221934605310698511133483080887544783886307367878419727727464907767933447871455416550101261851519466472459843564497356705326948496366532982534775936381288801681971671937009034625489153236212877987672825063555981290259422475224947254184710950476011640727116843090953505072060727126209967302627212909497038397450732640840005212464701693507793419997256646189349196672256455469634558562815235779915771492925438773157792124016157378994325371536846811720652700521302923005742028310983276909188622660718088079073459217484130461688716266472490557151034543723728284708040201823808198477175115035829570655350876108756057828074406412062259166704345084117034765298788579319486597274507385371641498135194987855841082621533661115808070670583625018400467534105944143924052777674235710822828950239857100145357410701980657871149811969350339310822201201787171211151619977706430165933693663126417190784577979482499311932999022570466845703396884813984631183132260609605742282766925326389023092465548560484654383692608426371088334235445639473008630939007115489965956848792294932306513222124719659403286410335758313612610661963602369071155891981265874371390487266207901593964032600397712217750989800214526251385606542239276107261833315746213059414940020637924128914617006096973540817998489959946067147977096994761559428658898213898943139153885636198964246661648451711645462297267531855999364389157468085674368718245512441370677773359194022367551876461781777221696631224690956289013015848155160642759076394745447833418223279432409813615804309736593797200823783933726419495366969336534149732663643514581211139126933293057441504343562060116555547597427133505653645233918821689399906282412493454576701800846234564657355271043408008022907068774693197406923635455264813873202624728894161537204515395724468773274702393519119839570417790892058800276067374547975902577404309582023859783875000724359244822146722126018831975930345473165750647148715229789689379608326453267370318989354669075025672368199641365077660341224969432496710180349485107486146315309609856298366820243815587914841200158454727444218119941967828705905814859482508581088653192136904272992023453681448738105988434468503919954619592172939568383314257445683846596868108689166481357423676753011029251663692937922502193643011243787261185606374576819609445959053576989215369120532335877400497598083855837330623437676860143382762764259358422951766654461929602195063645136414737395660157135625262406614360992098665206956649889078294852262594946501652951694631402766898566625899668021478987657414191092940910068194004044755957063020417564514875272222537079731893969878721663014877122225048372178788932757044164303464574877645502085779273761615785005684755395893769604611314012402596246718743217667093505653003509222440369552002639285722841405072978909507725739804673353202010211843871463191221311374494095983800335723027851685473782934221544972189694410701165977184342741840520451282641895837478154518821594890285094143572528778133348595193857548847280449516675613193037737515925041096961904344703098663800261771533174019594395913078781226502030210651769902647653867227728143569056860487713240783199611245934870636205932624167491726365318541593710693543442121813575323693374982406478974362318749153264351952436770979276285561494842869667698694880697002489827242966404403782602710162525155893536711760990711037595672399001655681587395088053725570393777429751467023956448831520731495690254692556227115571917123554970866211848750710109785864368133687311471354994239805324586331857259282424807393068116416572594561506524521709455669121898990685095686257880653565238976888592047872728200377090719909209713053363726720254586714967979650745822699954723678020708987530062485549857421903496087171157248052661995531717327462942152266547420433838213373641169814184245470710284192234393993688934468620618500531854836822214342844689270249068196499602547792816217660799838771236273706141883194922617184113659613091826357001532032316263407483457807118609718852395790828445214568925098386329900221735398854774831185415530219914159371963550613353238079321087521512055803036481687803187981261657046828993091224509098127218995968035765265619206820929889825138761800423547600928283337979404555847237197932746441172592894728735057532947497578036521304301261444220542029376814808149287053909818285668115859254038507549056219740790699093229531024542115773551848960000435578226994397423036352862798694718953439729690208840444688923107298598126260154632107748868318244402326106013234140395455803817008313656670060396129727236061206114230485236647449825771657284593840054051161083196610664122565045994822525428053934302124599892332217894653280217851321473683458447661856553168271130834508855715041857361009186118316642821654752685313655040742029416258358217679470990744313786565539001893129609965123635541092965196443539064568888404740025398614115410645642968753973053381738386588439194227266617459935051584196891045741129166428865841171878984195803803137429389563072929044391471194614439749216555898198581734613383416693299502247849790944513004331748879437957389867516027106486263286246403298281656392625271825201967728474824280353286387783252344255167824900656443306043603297773525931037177891585406613041999408827814577886753895396358677112911029381929849467547120529146794697978319284993203615810558389905096093193277778761682905983543511507715810918193363750483775767817375859902204612873413458470506841578311473852001757092912128976682409366290320312726856544167885271779715982797470494203452350899555549314179997616117741962951914474441648165175737745380510788559948539665971594390977867370107600749819905491631781715191094043313656538638586334440275223047942504487802011518621993885522414964638334228304029475222661855523057576344356093309778885550715832503880269435383271874322109054810592240066067869560841848072414269358155954697057764107453535167004566143004805164321119902141456653087762388000472651077402383446445083580793819746938756929543089023206435212758275989178945316065676047740111675171343518363678746589788320370657378527066018122162043996248203612412168814621303969978064077842381219081840789445372135252311006108571973105439071501325603499415663386480042845188266688670854607692655777991447355332625410972955214192325748939422232942739829739348059148305839574183119733574159710378401835506888478780485982759814083294359715468822052389880042013655896208942612367145983633975098019332981960365224252928759410363512772095743604401451829876200067027099247406799589069485891470992847065881054519338297958603730684647396374900921320615642708426044021379779290831627659900872106012871292787545500630894207064926639837097817197866180787218226784961645033969551160511696072791179144301906382028231936503561369056042838425255265091038141593974322661390073871240399779715544128361820305009495325757330364218866118547879881621299622032710019723535961458335209574792692739159524847505892011240450425644666684291613126461213258824794459917735300849925786401414387464817850541194705790186653040450739887613852275036321620685916144917966341269397417923065929488409218248320287327358715193755607699663416292285527177908912299956703087121461175511517337994569651508339427471204858996861959548234598078614867305784606036329724707891435914536973728256615298935618091180864372965437962514539895206886782124922000169646864453922558421781423188038311976415044700202867250762955857878979877913145994215865353235242996614814356826913497270825528057088814360900828604590592141395672074141739886056001850443305363790914237941227102112538949807826252151594548654510158965662042367534569524428164983173588823947600601549182418848617439535638521382613472006292443875493508788485800058462049983183796055112945251283060452927378687184354508008405972887318606107181381205014689242384174824876167731212276992120874913952209661075839024048237825855423523311052314064142310150728696446586562799540989563391802671919742948035193555470964232509075961524405623743359136592255735183377865961774829673842232830401043891751496607572874608791854511371533217256421234593505346904279183098539311804919960026430598927615716782871247652201311643800965843639141164391691624333666004657593307524830195416542816154258564712430480189753776635899346117632027288222451088883686856220826309384902432448590444769311012693569804645557277941586642631887160860644336747596465445872883376845699339751978567122351746568476520915943818839997009073549046632411292890883350864342930202521992883922182368984647692786451361089814318378418000200217049894226769058548011538267547078353012823875672634971010529610066031950734422601158631170873493538614894918486082779803632580509389750706114026744974559152267687954274712496561913252765383724662202843289347766329815411647468063791261227592162323302427933576995595011574410657685141376038590348260918156170399839724453051920946473277490692097727856990864756945154873578932252264359413977444621870545456770084086220172048895216441714220970085784380633824860463809815121101564901798780970808740404601492050671835340026085616456230174210705124185178280693908885815500264445036194075477146969338226512916805402912073090230538147255995052823328898444741295374563067691176745396187332445251933656889597317069107746526876062883438148841932237945641475500041119487473908759359291331018517611562430550167154199412356973797891582025903709403868202858209255384338900141322949945815681041410969436658760859200881966424360316348264294789866283773977812445123478122498196574989972358186409508579259755313977078584970570176321465590015182404127846097421313730751404514628295318981644031352764786893292515466974362616864707793115679000850901820999456336498248067055221637258097890395060037728224324064364145269812767717679306100717695509508246893606406844006514480789205956395785441193090228099996748784103664162487379469706686971133422978146629061104167606155832455178533935756651571841139179204292042126293241345217222259382380239979140987126809569432881010497298312208807781624106386294741358451367004865200011028928143694838948138717008830631648835157555658429734670211134633923289466320510515409412767764171992956567567409594242372333483896915467810277616840814186930433674545163726003134560048973851129936932794224517251908143117516445457263999380108781573452409365737824648746167579228791410456412814925803231238018427886463151506007776339418403909034059702383042773479996281862314959482278678426850153925984934485982196973250788912593047726387476681351598673957250857185760274384095251738614199962169001844300067544894637075794338827824456921963628773312613883693993531305330272461230916449449780054861134926645157861264435206728218068349509531314413264978534635745139176955028741948493439318017140525924345654667626607761950504237146275673620277774600345289339084528273731624616817422821601812305037850883913775774593618974782667440755533884632399818698049207911969198500516476853919104000947395618566207609010325742882759142963966068024997179770541498105914095976144605593583829344551691471679381819953114178863127430459607641917808812276104661282817078583599454527014052311181573855805646276564160185066140792488735878898804077845443427288987937660711893677108411838418650042284934555403080746851012048947307926043720706712653552976633910435295349481440111739925751965108483307817007011157254866850760669521518644686034426067198506746687136650703932410786881306818950678581614835510874616889536943571225015364379789419628222531585476522720501346099239078176834958550117082060039862200963214478301020441400752046054271220563247689473091008081932643340647174081145938156322082705829697462542907025995650415958591590495315333711257838759029012989342439550523439868809815908214963574029476268080740978600964690332024915960617147049838363350160433991505036625263092339767170433121177446064595331162621158714436026295624169454081238235933007324512286341547062080765763826356388864838211056001980232023201044674597795826603745432686299526924935656059336394960168137702107767344381431184935013193033697524597023507689222523750615342156138957429297403654774845944823395758086911935059252740298099070278458088174036175566477751108420116459007894613308681871484246180296334450600350604574439998668393059964268193726397837647094620102556784877688533618279944582794540139930450320592265775089744970473797361704087510185462531542829107096485754543349343319663399221208820470911356354784156867136605248008596122592097806488956132470192887106815000799891224776078683046994481488944583434734820366879097013542734976203725455423691690835731887041743947566829012422148909437253735699985368359093559955714235055991599141259531739283218319378035936519177998007935481218368333467719073257016574992171111052332813777910596367081824816275385765686056034773199261782886488121059500559175539648730677506311940724843594322397308357666328277920233128722225378380770233398769598876353792755825240680068826257743138599812871540940002911922429335815583375522726970047090758972542746190606688992740744179347571205620097718131539975543726568654945143818147133332022288711742654533868368697038889661254592165714960436470215922993278151394240176948087220971741734708951120407068761377466570839048697373716916252138940448504309070924418969627979443296428313353802396028381208699383734613069533571453779954440142884668259812864715307983937569424658918919841329544438299923412818890250218874977282915315629755831856006648303308436208399346420869154461654430938797700510482450804641303292129093993537073677544805035287027864932351499495311697498847120276143368013595497148443229974892210076460675722441925699330865609425733905923827676876389271251137001775070737705020244384850938109384662763749967497419780957165286318533495258075316502738096089339685677887534920568643022373145946221847550014965418756513863157731242613657185715078408396680893932027304454058501403965218804945225154577577285425056952871463268928390503500297442190483464593498834083389624762099595067361165567594792445469207347615921836768814673087208826288642033643683577904934871984243397167694056829063605966502211412432503126499922216120785933852436895559895291565529932059956086952954048937383876627400437592677674529674408248675275128102094506952519924122250633879579466553416633703462440307744733822688212045340068774259385964618354991636777087574728971034358459330055044135009237083577217520179268038099717562513711343345540251380680069029361045367151878861070341119925491487436883219435444404651216075636582070314129151401592589656396426776857020138416764622959694660935943472252481623085605734883544564030108295604425149431078005011060017973618296815847971633312298291871802014261334790698733970352391862473490382910120075998968681249349228492782393382740939077411253545596473727365072792976870987573785239549436423583841219628447448344405436089313713319539556719167187178886874464705338603281857871474823762330699624582475301242755020874970458320906121991111918771468157865354211512103039338482296705723211018768462494023149046774146753002284404706645340432067617195475287913324724536010152206171880964347234881384732215655213061027878696514106603377995402366210198623367056446061020682294540187224374702984435862869449276558002714066240744345361658866480918251544206655126989820218187150058309392358304123812400139157917445693493357234563093321108440214188264591613755076641259395112079183215569432723618849644566111309062973603344593367023420475261417675792763381231442863141065962638617110391938449129183488531677486705927640995762713803385696561624370927629515057167026308492909519775988339065563631448359872493240584972746666039868327220790082718700547909767928738907146911581065233259068912959900687857193712910962902142323864218878497347269671118170334313484375867053707246872562746362085630246838259767262568425564513525293650254028150954808054469082697111168816184535444906450033658497919882712971843573938438612046371285654371880608478195283278790184187030589220423093349398191868112911363670751345215458704291688904892633214058405441320555491648269813229365872534365987188115313561852148534437716218547246321735317236096503721652018387867368044928728210896613051955579597095740465258855776009013032609696427375446861600872481397596150217044122008234199925109013859764688389551905684984838050871522583006388004633705197029235703698977967884455631175951769332930019717577216652005151414600660873841943850520038188189478123413306373743070581273299918510344241360436797246482795775618767084727149817723159333886104116457826579306802198326294623499083166108667485163730028386916124726700295727260947602561262706775680007363424988866935043042882393225280662801653759645013528427194078143075416032243964579607034978512595098863950299857426974231238725679699481085709159159221850872749521075674343610634906176320896791630916217173402061018439179147118040317029134343530464785830208237529066560435762573262193586008549939889952510489928926543962286308825100076789982801136621445265888488391377697508125749964640635510340560588338759991434685437429776489621245130749736717633880820303613754711690666627000045447708792755114307795854231112372999825291393664731565836758164846830365004840764344766236280169531364122186131868489299207777836092855695103745398820352546251018524288369642554299122190490556992797233898385868699306264969918175363415178085138398972367706928041892704175698440665067441072560406336335860191945266213557494361456281668707832122355257183376322933183689672097201126345360014648752137388583726693920804486954344728471554252533038156835631460498370998434219565011695287924237125434345297559814486076906709147920317538674562309288042574093348578714544158605723122316800364305976854939768842912423648409369878540509890661345519591164148312286594660198084530537185827967852585585150428291688912421347958050999376444072164597762065166933373013065133295279003027157375543530185311609134864768233323677164690270763898317820423805896639247287347681833086608935864661325597176435964980899304477304188410838786921085316988309543183335460423861289074282812249205994915387921865119915510991564149209696518858027558680414841025239138419809061662760659951713268328566511075034866989728997050667758500829836004682153688213303193782400315201751634066381769536473689667361202268018736227376557752552529076549460120976946951126335101497129708169884713550036265799594948746442111200085901074234288396659976862004157712178451657106696587807768160470767273422735607042926980932419396440062693348264358039418312049625377549493529815916381250922788372982411827043454427871519602938580739930593363993033779866100124118458081116119293660030705444271326870637682190524125282371777769319113621223296138871293868853340651313707888297966725952400791786686330446650700965280066270860238704640486863610885461749235615926836868357429003084381449318278173492505118315532643092497690404669773234960714880917398900090486877295738355698191606493037448485960015086962991654280312102457323253140874092796166210103316245484809071126076760183145083422641916443255316100138236019538261021332580697907937152217613981376410033985592144549490090528627582205766213276512735011829101700886531247891846213217056010772616630570281956824443310989806386519294079599433293074101437471568818874208674822561922936888771488418600124272291725556237780995957460349059197559451517559063206468902457832065690873342744138063078003840928053524671748780422450244650533751135697629895593423146077696823957651824933905399876285819268816814724167016893239164785222570560712722308521352973287277058900373249358948119380423991471494673505373680275036700824853834350015835315005207293502221920436418622987108876094104326641936253892923490329132944254965445575243819768498162923781376371967013790861391402974633832370683148869932988913343915772776567663417617717569416031521969744296957840138437054660964309982606824311370108074858231909674660300010180240155302031838436471242199618757607560264144971702819078496462091533338485196255474194958850071450613290689771037668004283929446838925210800100887310660285135585604363257812610162104361657545164171023027522905078326115041896932898111743341051620850387063802547331332072428946287500102645301578194049162603453111707976896145468230940814193629834274456858321348375299890157729233031092550362683396233255338610640662883225315251567268497322386458676413877838622931240458782528546265620097641712847565131084650410810567714020341549514186955566524449718188365204427300962299120507935399465521631186253022770953043156369393214983580508091113260357761414139287627830171567353235508101086398149679476700094268055629713525835799260107204619389371458413485766419392955820774100319639566574693537474640020006637331309011306057052842854716667111857259146434595687855644678445399740563185712956935166184600051572208370090133810511392094924681873327801706891337052157877805444242229761463986921210245232250101185506734034844922872814620205782513281459940619200471073002528205948265431352515292300399951927188918624804895394618023711016675037927159353525845624256578121905011519049131028611579527233745530232324373412954625869379054940050895246012093345820687408818402758451523963904491946884533833601136474691664927568074522485816627982450610131240637635361978296920842013336175780085504972907444119380702634949632123521434355331105317023799420757604055755223216977853613861588012530864631823500926013195875214782141419528146047222548484519290892381309382768853898569761132143532195389830267109669611480420721629283204153519576866012651655613029269812675837907221830902329844446647745051240066914937964442758158644499034233769702858519516115549262452932773777360872214230968413559558842515214460337075573739371878375831083071787119557381921888960283515237561582305103996101381236486795147076743838962277707399863681126757623458341196000434506934034188709883905980900901304613881238413334987246129491844713077500465692952307838779160032251941431603267706766121263479819748232292817001435409161203428674930044568109499953300127716751006916104812042538905051280752898892718264761279742792287827452978279605756988356399413886923668644076519388483363430812071161072805592625942604022074829706189549457889178954691314420247656994829837808903548655598637474852660296174727800259556190221203510252664424769483669187272765242321725312566277559850959396898297269693323175461297558185291559214935605411583695607010416032415256601886337259661621386012373652611301061667017445195615889043536061490831906480366171692684331723124857223055272731001856169086337797299128471312981679056753706099339064762096868807951967222854956037439117713814090546516589057664922537884871562349059746816794580250009187626278181229512507652446588416508772724013267052892890120163790019534538945718347998272020135618612983591478445702863062744054178543661057384264677014597570925474547474106107315762785885824499121758932559029440118314994374281823335128676790167655732765363771766046956028229412691585425877857624125921754016589145255310967778088092585207278325838471584690065497287848233054428439223291625370695467738832154377399774532773976306187540407321263152201602593461979544114808273319020294242211277059029323559430366607748539311601434376360077220299039690111254513643015885480715647629772505258162523647336045782904269944960850270899255055698287408231580282908788418443269840216685180649708113927234792548642863974061352484295356836673156280906767966067007526239419803440395294048711544053915711173920975733328843005137719362506311390708101169195359280632839287733626697310924538749480394917684891636543149156227953611885993900436798367582259980126939194170714743823285761498061120670533678540981830295998260050542704358226835875205352111062645432926300963388518926696358481295350554345871469356935685115743466655383416736749197989912577179685451456447891024206883208912110273201598044302276972804217942296429417251468933263220864730814866754085457623193735133201960706014670471026743581765766725801878441701195649701150084492105106423874876946950081301868429536825356891267827010026234799803129296312125526093216434513843653910377011882103070437463849663139012892511587506916191688848608852530289345247716709114566188905880333812333954446803039942645234054223144008195719123675075222939359539144454106895135502506721153021708337559385103112067333051252154614289124886829388251081840189009108907162101658781388283211623096341291870548169228585115991653822905767864685611288702280743165971649160629796540273105531659354548094200777334987319149262526101441995969679534087990036818199491360550079058128660721382181773006376700898907715197400699310168084797633251813716278334357153388012729396954756935437399803740479519421866798309635124458975268344909667839725164101672613202123895349736130378318766329797405846209682570136470495812282741521658516294136924671445069686481339603053277767835514273936485447942954845595420360338284629400628493149565386722587677714008110512047458679618448343700200443891097752854763227433943877512167086457716350253162251668871454872666910550576138941241289429229956352721505197628380723144331042758597286556110046625259134058398879699044516393032261686428833920142037863661065495823302342751861401107714144162105783664669546766597733845701674855542895386396695056416447488591537816557104733404910880822179858883675965730344314620518104217726399251449238768188229990076814049428445425846712870093905428539541678206490644546808191925241799860001624920437990248989073757926853708865399368767171003997624424983312534874656399737822961804817430806303348655127030418879885938079346395073124005169588934539508646656974388197360040370213117595551263953270454766802102287712001050651042805484025811799984678422011420718563074435588154241917596153169137810650291193458598072733472647393990762170100079423692352708169856497810870490844854482236105523671314850628370537297947856109778698027044939215599328853229747985666288490808913521597016851871447313011987941402853434211413938947889257317768372304609155262975978145394736658921125460845334040354848254060181275194664002407207545708394801036314105098756244021925534107698443721434032610426592452130265134547774486616044312919658431421132932805769478710656178020772356120510806301270347931254992119008013622482075845817341183960449497298640391789633573345138321731817257924354819132781446451123447983726082586570425072127552844720064828154587655893859697533802635309102660836978799257512231657814940735928428336847272913518293192509200875454162542899711006822790648225284234916031356372945751438463064036585969734750494879146135733846409430113036282398752271394948153803791275385865772766885805422645121526529031416036401193734700226762355425679860730264858921901574021132293152932089827396743871894821749627493024822488668267178083695052606336735803676740520634108843666366178964681666396511122952882338515305764033315748582245233547847008168854224232278197094699993936069424683607962048655816724644340730726968323839141988555210856492453602072193945984227920490531410400621848903326191377646089023837956820885770470602261147736228221525242946388162442167950622633539071762785164171539907305257428183468998067506901485065959615204747539990237434238934428714066238771482817695827703445646095271438715855194201693198724931415605439254963420694255638427543656576169237596988075128065942027731594177451834234199066947542470125157693746081244907306192054701090925505250671664523055472202542958944260739990991298183990141160331196771664487050858024220790921686955374759992355337409552695061835274328645354051247553646852049660876137860899144562743770470078327965491089756481208101501217514275510813308361011640129159218228914223118507514339331685579592782553229672722374026932472011064165151366585511889256185280437829406277742168953984209976104331516685424870839243449917391006098410115241163355792257769739788551641128242791676855675361084339233329748385866811906553529254055935793007152206898101101271588125798185720698712063927270813611759636095936637346000985856648304336946080685921211664808670083997380485086485272184165790285009948737006742920723065718865157646551527837041569293611424305737489532431234505855773098832600815582135415636728129210596090675710883088075786546662326385496503824079190089588602911560641095663921291029084456782053941988791623488168415017872076314615192871024631870731507738336402677903920432308313587144729217568738944424944704688044647055398593693949473306769953310370741885626812992645966799072976992581388831846123853116887626679591684880050268254030810185476017004864156880393516025087899305169243192271308218849492878943937185282743171153394470960310998479476510567875855921162702389125047238844787859364299471856769622663033557873931830424557176983351456076997359525992687610985608245418784707657657583495775427135613635766796170303069523936547973567858974583124182184008734126611323491124821982584332813112025300988832555859287185890204241060030797620010788755305026959968791396946637891171959153636185667020367410536465472853685149093411893610631071178211740927317425468740599062171686678722308896312248081453407764399486532096811957831499318107151266949101854453344176047117602183115392071303039425479889949979516306599689625382883600916048748741171534524423656573535008109943811020393927032075880701122252124623704376926356198833439255201740443027318131257647490347884899886708156086822241983931792514460463185056338503732153999168369784925244883183412103696948194702245098872549759855609985190817319139779358168407894667003863230669670695095153380689862569686848145012650648022996956724154958873677510525819604869822973630770523937929140758604433746057765014468168141147906741137020472657095163612639190827160349673693528843759706479878872093811737226219901096416311096028634975734311706661817804305778020279658702206757370647495546272125659783812889543524346967333882364917087349647442111685415819422807539113245047207120900189874932316809678372944341315599786364570106553825069748242128410265845234981421922121880692263848412453398344972196683022076210597322892360824067765052111135904080955098276637637484385947246702102848068908476429025181178658734917821985692351034506614512227088509328611180210720488840463521279780093626163659637610462200941815132603113093059263143519029941254755039457450801013196130694270045836280113789866613713115084851138015676377923552829533420159813363382205199164057051590622028233569170704879224448318044180262673493401172335271353417285596144158522814291680305891153254111128505132409031752418593177330361625107346727966974310197404767724438004547672119431506804796232764649000901613905495713736987718934637143052997485669300976615164431300234626730510711694207268698957600675296493590568567445603566674157660738496763805013814175025805791054897999696917945965422934058581444074319413088803383389924798029610860393483176418922735537519592951533988620617527218119760440384083947375646153195618646581617552195884976133998663049031111363424758019884373943608030169939660908698055793931591407514619046766603820534989152423507927762463693954563777196024779700873440549402676508199765599860270705367043907098811607265723808215193460429077243954638448174502852827370685785233107623127936564744577351711265849754849063363729941077210778711952032844911870827392685974687410329863516885754888411256110404265286408029028639716960123999793811185294169525050329297491346107046431885838517105302908870918752331467881171063071813163200964083555328056205621517498441879092341592898297542574735814435499579256425877064083781298070166421332597962910009706619891976216280636050764071473026545045238927834519904150023453606239655123418022326956595305668207853228815208250802569843649845566884846337616677808754799069517620291615521375094048018092933415691229555527048573009832392811877308247930647574322444500362951526394983144945019049714776264354999528213414985194757976361503234697237457844387599242225427527937073694331191983271919508114039363992475384204833763189172045222897960001429616891924738126819855610316692274896838590020568509692312950083852842250443054985391840798462350395530476940999906789359495692194784364584200952524223429847781700881008305492447134041813551521643251857179440166257175285570712423027382735345335937178242189136894539679496512240344126047631571794346371408712620480444654913429845427026304455867289206608898253743603368104253567860240514850382475545414875326114187527667865171352419448139904023562710127594754730985094791519877876438667882900428167346870619708653743764380505665004550120334774208621949160775609402517855709000389231842305156772321801539050359142534765674388772646393039175174470853649295668649534564778268118744844632884607662478006327931015215374443375727483080936751629104588492690255616371982806451537757313911434158832076014771130685065772926072250639492922297191304499409386392232905883061552871942997368988502175132843645807162988672521970900898261307006056346591176261699544224918034985639805715871755717216751570524701956345820137019543182998710581379505654661139267641260140122914443767275398349398961550732446637882607299054026068221862259704390536491400513736785951427947705176007026454763716750761115179316042781514258473821880840986975816414157808090830623323325853110308341398652456229772988467533963014817910322345060252010445614655511854293997863979985894906504114695495672129778109613675115311947716728521461136246374063506128114275580684307533600680292224814173525084733139938378640573182160346336781816701781420836242581650865795869798916304252169174720662097964055771333985966480724011121017293359211379277986885679951270897648872838799236698650959653226402859746420642704259865075619357650261110978670261355722443458972952222064040460209910465051013883642834423706009441893068512949810306584413253855223486419468488234342047298048017440745157727279120886517716260606029545298648389850885751773165363599514950438832967265157306328342009395367177961827135945552940574580110178307444461964015897949335089757319326766247092322443984357745236571100836557847965572886554091253357191554653474168514183777353670072917704502919138049405286979231397330862717466975920507717715342904020958808201261792415882388140992064000017844641606747810120822071535648039337013555602086354303720001238360080734032668182818283258799446706143823244394470612019009359251728529778733064862443980364167095257733590275278253508376296234426650389290896917725706629083486266734554548628185456254916242999496329427220938859519535023513185860485766761050778497735657817561743532484935237963134012544224248204726049345832423774672504021652600223919107415887433424107222346543246818734475468222742626460822851178591295548962084389833445001007867367183171242959071552107216429348941557175483202134973761805962163240799669068411471848841190255447737256068001606664325909164263495336400766177100987146788845310934212525390625725274376608311041817697999009549766679267964320043351688775589574081062286931652428703465761162706457420365974623954445307867540692697638013772015636418863076833511394561528770870073958973108226841911191331136322738796460265723845937767301761812940545827627899160400079592736782244561633740275671561613163507046427784725873731062241530052363653040001391762368332356365983680410822246114203348243844212064148893288264412774461802461021669778272262367147259236022278386839560466265740070446390744438767462856189863740233878083751333584263994561109310193073549741813444213387431020510160843322994571278419204242456465603288213942774720675607193554266910072835925112558074440682532282137163078086033139534973453584170736993813328846420321566947027234190714691329647184531954283454715214925257529605849982137172557005451133451850274410122282527529032613045539600386334667855376666211128037842989266319362578414720970639945248150503648902690040463160841939152139426329284434599451780637843193163745730903560958307294249045390837629808024524731264839052389932013081780449650014471810789707287477297524119273543681715527424536624801144959760974017142706886893862571271356702096273738524241869205940154080136849388558405291217394394103538102651235893897717174628218752386967731810147466265256894599564297544272468728529592597811827465296628109199287163090473794273235225939280555797837281242254331435232436583911516464594675374197111077768346608394409320208325682726418977934523231762815471683609130108405072733133167500529780163448496106751508710004893230165228756238862104159902352064937283359980830661947687904341476784746537206067737908464321468519348258556535007564305515597809188907103820080155831026744751641621959639884865170101339242241015513901804538115872118497425435996052837124736360648053335257052603149428156469765130102340133031697505723173576483673141977658032222087517842427553637061334555140615336385806444074677526580394076762147610235988996333405484387251307595425484831827993201192184775970973374049139972394705352040847019999507189202556569317058742756506898907358805526802272965034118833378295688741699343253258055970896594231113527019948671697547090533299231341085370192771343179015745749753975492548824798824057836162787545077538076535646161518376268360204264569927458767831110774143739309696412860980764400104373720460450532471736673594296894211088319847770072064447785798401371781137086237807024604789853349711186949939355272279223493442970207798204075312980324926102045684959666570840104835600280782770872892536944788226737259908642899898026056906302732264711922566750223150264614846919287186992658930091886466368224227214683356304560622170899983684205890936601489175773337665646870613246667802068430186869786924505225543353048689559772631473313063708893914076721789713900665262359997776352210643213801058568568580935292929852821164259660916136596277155751814581099900757099578532849905714509855551135884475728385617843874566512649982419680656418489859173032267794171065465818275676787416165940472563397639928489288739946144126763321015501694586004111303356323202153741771520629133958437275981450937809797798634256460647953008166941370303231670819374219947440255800148122318801513201805688086553429183295466813146025467326602080182842656315087520090908081098928107208925706287618300502295046146123915526545296655698631251548302339446545250448606727731695269949946650009113898395063682903399767135587334089733163490013497719297535025332648996638302182133761177765254060510331259961817615724180119926231521725704754179210266659123457821705916947530214920107211056983848614911181290136169450582151999248809996275987479981778356667348930957102932746579267777940105092739850713433937285580172334436878810543453060765710975149647305622815142427583283914364922380289037400285818526556238094766177778975635634438010170252170964671170825776402799083893175906120451295496752025612970971210356209381966375153317573254824083137056176548757804006553299102940984641228605850602303457066045915672079939644748677896963846184590371812936727208215718169278545773763756101113272938983156117604484853373004115327873230316550141938409808976900011098831999555863643982416360452015084009553002705002432197935840633327472759401186043999510630602134513035434900583751830240112673044409982674190901529920424514135122937026380297598598452609455083250414530987010099377342672224147106009228494813881914101791069028128591485427941646666457568121869474596550016076155731622073328679063466904666566976199817572783709519437133112340360963828237683502959716786416425587007456193554231678776643193771944818943111338382083939765202083012816102722568247852601009323699499853858462199024415304736090547946095614197894115979042443579333195383295729584897558412093008334506075807714767035945555712156888487784992762557210510697142764095779431029082415320617310529168773144619290983066510864875012840091299065457140961943111042727220666356530182430814026580296054711011643061243711781416352632669307459340975269338320085934777282966206892781979080613143719573372297285630650906641720920095462918125753290961450385806291871310572576008529166161080793966390028055499264419103285229829926622025231826450556313364483440821512606926947112864590365642788789087555328796668539316447791844293466922671280645355627908587342519394114934258053399685681926983392567335496408121253125021595464929659911372782739929666332849621827489268526128401404795527767468753808213314224149820898011738658579297216944909048921301115167036606151364006062263076868531408808582148940146398240528262061053012138534955499017647475426449422214035735737942853395288951110601619241744332277630358280230313508365023229738350465386954765607960866407686611508096009557895081939343195329890122540220150531323195090870666032989952361608479233673616156313611315137186114599292000625699713532834229532863256060457689984627906684859695718065124160617299977402883163342670350077541994987863435284623163357032777812287838733638392867372461463080176064869951301806485154092118552982438429831233613869075359252839367277890045759800966865181239869683168031931734977931495839593496624204074150054078321026442327003407107785249704656664541428114237274228788436997202370520356333185162941750686295885716998000939457387446485732819673757806917581266042475285279671408925786677211679453841023810262377244913982426745506222000231347805325013507905466688642944541525712699089097290510392682471505688698026967960291685060396441850490205409700409241537638024937587203861996635560274554908852156227369247007764245155293481818290184449892015117964908202117284404213271539549939198270791256531582234911793301465533088814314855075428090411859461642000155234655017480619038096289231171815054866319558742471578322946944598870910561514423024656070002715661730154022612885383014557145326140755363999515399659248843770561929455200167406013333388340040949031953089155645562510559803912061276976452358965049754675144407179947558772354384288295119076373218714793185328239824183452657714121965844636715252413139600404663078348522936048723591180689361486712868406706899363512823677010688052928049532409298353211164306926729117822509957476289397290208619311370227014546004386571634683659567062789920193275418326950635858517534447907738808322700191192471411299305588928196583510375093907284801540438339660803742580836425913510103010325273095599001627508269778372197356597686854281860419252857438133313682809705491727306013353017182830905991148059130169732009471018005519929329429792981299970314388393788615952522300827837421427641633598547724558330951264614815983495145365729771873648588397447605476921170233149663378137737044435810497853037830085845337331815200106465382388582138018110443369052239450888939534782448522702166101768547798968780798621298270328723505010985470021445891383383349643620609207389025197880228319498288026103170765946753446888415298389550796981722967098457273607733727864854750021960877963399958193067568943203249103422308987480734308450738852977876481088878760427772062506447748423367425517944480624023310152161773654038936494314729338649675476572958839272888093322431532073362712204143642943335383808238354690661099408821385114765783230195630211290787185684332754740859393483365068905888031328017625092641109482256377498385311761253320191800783275564321343366300826350194723718046246637547865549650581632631660316998446204178019055479066247813908874279039944712449423742330482041349787001832740924913053389804842638510499620160965956510318067527024078905827834147778178489883764234055457321782962273082500719961218355799657795258972962420031301543001008792449123063732018543475299759357899391377949734680588030376111182621446407065852885522519844604188358816884694814696874321756832952072685414327093134666374625490695495267686532780008922065933721565673884242663559556027185783853049813466835266067368755594476968458209209082706375089574313119274578681784806945701744419312442263803961342208459793808321277527613294763448924371181767190909896327140343901916234392102167088120193544304811158548402066513492953314261257692007376727012168511239377068743837872141492787898356391319714706263749434212766231704911087407404026349854885080404132014294204700828421092483638533774887214418867130264422115285914073109537938548229216618257008585348450724039122263738903457658426029854253638144079667066162212514572438996248165547926458181508368705272498042348858490730138018499916206757144242508973238302315314425812141703574307718086190077301928622614926089589232668706699133117436421067731341322259037619630602591417750053409387465343659074913348049000134455494894907731393828600328791023325143133215511105105451047073672351744175119610521678601814065781376593760338407298316520801748870633397072515483275789537896240243094112126035236750562235174895830052646071585500089418973108134787843484363590867960578509353163555036546151989607442413742881621462688000928544524112087968051355429579995658769845370906121710204459781947797292110847598109144754443493315444292893550330650316845539890132807493041133178986945263673616290158845255042788021474366301573789894687173919971417728830762258764197935864896319396271694837605691962068097921210092990652634846059687341108513566006604806523739274404865501989976056640757608436938329622605655635471582353230487306729623681877202966833402233544496183686779835281705222871211552902993510023582144460444805439021220099041808040054619775639603910292041564023575124410883035721511675365685253236419927330100498711756820977290545703151882789829929195604993219043667477193368430131867558385797001644561151348977590898709509019309738484020098108902965725624077552044149440250812782408448687987931488838407257436652947952868837141848054895628459632821191620760540896393772136640094240296697711815653251461412679745128274998399307430115377538589159934693010447455091603792431732349400893455163127667413384417915208207460793857965341803173675113818432985475391875954131572294721085748870035436077585204847688889313852307617438232245862798922114588175697381288039095076238444906920807165398713957751173139106027374020507772850481314506287968807694566323637216143761988561938222057182143488485252244843479834161466385269052026218782684333438200650256648204637551678445085433734076990800057289091396538645313561853845889413296794753322905204971238601790442581298391072592669323539897935998129241154788012763440188997212883222361865218168412934879233454105596573440131019918482587550662993105450238731056913796179167036444021079381705523188873703155151325855583879865436294691977997229975254742994548042126271933780482970288818188980448637593852280496717958327425298355334240101313192912819629978909951056916739387725143830294317906166289869976404380397464748892305628509729897524168363781555154457157422982203591678971238275879164136539944953159759054391943788068130827792558757301948343551085588850895301647150825045282597644912186237279890709127134419309151639511734123651639338564119112257145712279001180147744583507108870790164544876905837654427077430435026219498636881942415818180759307427575726766301287436793673947835694307287381295636588857060572620044563800370004383353415536786997828609158287552230199760915651024614815706376776980401882744823222966623642731127402578839578274715651252933048671521503069948240755842953327348853871631841718769052387803535889345695488940295013990367566181435365381407877538274670155183954909891810372514212329236456673651925147020443664709256922378037083737374392298254372322143198467425041079163651868342650820161230882953258565377337758011907661543956039532561184857265218763798436983127405213617922430443113846011497177167853758581081559742700496469691643731098805456987971761680921091993692186133346762196202145958245260518019999574137310786578952932926604067645726514966362878810427090031124593436470682886896943010701329598546963413908540767000909788459761946338491517129743243805233873730002029991685204541945870166331760212710886289872403231980746624448759729443548597563134446514456183707262528201225668960202641335715493407915684642580398720664630660493391658839205057291174559604466296256376773999312811837154545919955984389746559266877480538808130467184424032300009283739352626320187353775356275924690794778837755472677155758826770761023211877737323343119902548575088873417778635450167685278030714299930342205146162833029947063888765296557977722749374887325841099700660862008440195055569767537046784921236449296355680972365626295075330917304209520337523921136283566343784607550143167375177997655615587982472036233487920873435121617615579117599770965622341280231325013578729966274429296407680334103197784272442186689070559493352370491692861450716213773152231077129456620640163756027938485924806753537307725323487629521563618881107858631747908877074901416646773543135311993740624066847852658969755593582966349342452769987882319866567234847940884283942554360947573333679302851996250977378289603064756308910250018314059706857961107578101229408366376840118135761494942674031728175411427619770861516481719155102586261857189655190574589645336827395738266847016573051604454706522344426812049458995592925655801374946715240889281515236809452369720282227435038264758898178904703184644986046451181917034731284790280716724295248306923884386715926092129585937022017754561611380802162423561912013940350262097886082997259639285004692910964694333164485658530900657467648694717027103655635756667387992840373044026521395208045539322343359745074299129111609735426792748465635563294132146105706919172854011664534013532109627681880429823424936994992326837194463861275657838954334376525669159716143460372998995489686125511258800489649331983795895754519826356005753775727530676013021118436048391799257854621660202746771065331378275426126249963763950548470351475411482624095233845453434332747155582658881996654015797519759599325109652716291501972050766394171663298200985064866937351311310833021292474694911785268343011111065859176243789184728180048839776784928584771165551914291210688094150114807886421713910142316356005922445623596552829152432802579983123297157148413554302137063369628376877802241729812897287221701089061481993800409874685588231148515857927734754893143408667148113971734966960936372968305527925712235309019498617473281930562598740392448905951035841584358232594994518499891833104284663281691710974786806454024695015175487717477771689453925068707429657403441419102249627902528175388344905577764616818899325974222429830056533341957193086069019494169092826611917337864147904905100595810876456175934866381037144416494721897080083478545132904393614790092810667329239780103866750426078307692797642575873241189970271047686627908598065110772704698908804193317127860034795429821871994632397958203620409427554177979263469670698781619869110036084915085274590159204487471737110475301832412288661856179331512836653747925393746147844159989396620301435755028839113016613429216822657227601005962621531313790756977185593849091528544786776098624074228139226156066257424624397345351278190884197896916509246752552248249170537308979128153176135612350180129614384810343153158038920791826933549464967289977256972180829416937557910970992184011482480062626862366229609971798032582433447285053246509717549797765420605392224538051139150407847158568757372992986296761050955385301511709638445709808081852857535417721051617862281086109982669605985324789583082481540009561297216862401490737251016098272684604305930835525127763666885067892525068177373334684810756137739886039907835361788077577810202428189816555241022991960596332003627400214665475998184290525215232711799082755928067494199947549587304051608636958999253264540596146357811031262469394595601319723305780807945223226264987511104647425806120336925900002460542961973493333355609616526620604550895037401586997196728029400180856403639592762813765592870269715888240425920761514489435096941523433143326846410032910714972646168905410669143622840897980991502389307230026695342605302795824551664017734071589984712559597595076414077081477066764067940876348476399059928166074778655890956589820489769226600764343727684253138676299705033491183338026859885081712911396300954172584299856934728165835841161609226991270517130875002727036483853644310625546600201075820279785107524571049760580334496896213129832601793375543756659173931804753379630848648358092211394451706034751623604601869408899191939006863607188957844071555806571597155190156630126464896907710570777195102186814835935470078398097918961376982083442148242340749820327394541194576679717449259152770189117878604051998038050554651731685456661105961468656763057513822582757401255468224760440286842883811571090980720712052425324570338328231320051037633818222234604749352943714165895086584977412153927385701737646985494715263111047423949688325686809482516518584842267364964375717817139207188361607241346422521234026393734081208237105870828539089979174123343740118900905251242360734127462957800268983236472998374937145774468618510510304315510437517303303195245863432566975150661091533176834279386954447788803699870215630878749432789395181973757167772840646566682256845968335238147275493668343983592239354274152083816990778209619097970102176936003601676170080937079753311901182372499635660973674620839129606156667575047070935872508565771117276273524873920733233862704768869772660478910345956994442808301969568668698996610234350037173661014433356034430601575209420820348761863817543239350221398035222942914249538747959278144918710735442824789180012921479464552789408034984249014158821622320135064348141711248815773856491894013981034668000440453887278049008697489135461861809165884802599820782896862306260885377862524374622687675615359289819920095780282859350224922759531012121688365316228460326674395891198937768236015144576830584953167948944078529725975523658998770160439657450489259041129843585533239628069762808474185953418520665397925481146345208885649488842020858208700126859661708562753799336051527520759331514893927036163936874841021915846021784828732843713584091807154923335206452051979103181010029837418487400484055227413767860176433136119102776471498854175472814338636120517240610674789589896043319392068672496716514152480093755395629519374846423216759458706263655832472041259441113196575456548530664465955458281766881803378448755533221144954323973655832412720464083219460681592074848849381874192586279493251702345205850134910840157369503217157211375530326368025518190051740071521087781899475145526313244813795067034602779755802698023972312124929157757704792471007536856707383479357884263646372566852503454251215302827844601097642404986977631392582224212263181253774685913441670161037687454663874098822296197695585712527231648262232296500897339497604232156212306936138746575331397251000927422987143288585531581934573815053651082301687768076910563657023615777259362604827263264893746551311185627274021346275820820024232318916639881414507931407212848448709110747901015320629760335261326523763556201287557086960620533402953655555398291151168365567681605709962252314838269687529169470883548850922169776509436081558205772730053028491447109586138656574404156638585385852777211290549106867712209763352441652880160275870615164179768242369456356517582651248224894844882148693448549399435271593508899542378013223764514496849153524454045448078874524486256977234485323217779151971891787285218548872438432404612581525309189415084375957043642436154561227022154483711465146976603031516270070110236038265132681015603590204444413036155001692895863136514331034545877569929545741388923143606875833598546001633299403112121932891447048488204163531891708397757688929466620551005667670276856104040700303071914127794546066471316959490111346268539505620157794201858073618472286166494778193897412155961414734893087557843989533757397122016748663161246579785884804088388195109698109537392665116892771416036584328078041398031142431324897430385293260066868752163179859893070391491849458407970447937626499584295896360185269033297871117635453740073544605630833076250573952667353145418985251855315094537425639168509622515339808583797169187881642098418870758874518638305495168695760497643262590355804487620763408117385912142582124591795008695167449868936153859755988922698221245267166075314016749607897424724201907737649222984904514748211592591717439001680124699519408756227030915437559999911001610227747586864532409518902529822501646952205346939809072133429088198964422240165415761298153964392726464328396043724645236107007992208094482264937187889519952459075330613733793764674657180806422004414670297520075321814259904277472241970130249508756198344804368216279501861254178763243300193275755411210917777619672293937927962870451763969805044797296099089798862513192645555259252522427991817465258418327609056759590910859747268224528527671101397075118079373533187247149645473309607192125877919077110367538320469494883925308808184866525119884298351555793052492177591101093765984067569571323509466293108050917014324806444491313826470202247372153430209329464705551425528201077275308733385908490040005420625796036932618207584560968342993137501258883201972579990839161240416365828784165976040450632311641411086477450975880502831085018921238274566543793113401600879677180908167040459604192802577971427944674283829409903923767574134666245379627482954275088874148927600976533410790925523816935226906532620968208891755204617058077291686216026518500575352768030377710850017252203910252540139386933695255940354500073175924799744303139170312042938239036103576211753162391841560897166284126795790845908701109078092348445765299185948940838084954499354444617024268334527964855870886477830046394902014322373220412694893346484517961656475819079023983492717505187679364461432118164493027721482584982997415066060792589134749478721434106453800849704563023555959959527989695249319406889985699489082801405432488872520197757452561036320938057394869183837883577052383559279285840125618107911502600698677905480511409566647556793043683342253513495696378064887243787356268022666547882422485880522428057456309921376866338255204257498818691882050743212672645601410492185658018568412076331131468138842107943549887970663118861314240987356779665039282836557604255329711734024352191455468821112640356878041594505306764217944167142347301869880141482686223938046018945877489231035482693677670843857032941350051168820066336189711830966806012972521085085498032734142402121104440557381097385103110796750403872604351737021766438299714829493258855724118006927843145630917746560443638368788359958152104436176852628634967280101352922667605733245000788493435443362340828209856411284182275158847121948764356514289216191666645494456536620707499132941299656035367870857165405833149506482144928778665316912331927674786602462393091365332481955252051330614431999846137943121554134791312368243575270212872523906965610650960150806579734959260114298028489043484608718581265810872520400676513262867481370288948493844595795817266024578356766456741340913403394976325391387620072991597657547034668955187611835094478996602565443895364053623827050780843861264869044560961771725761974801889079301926304676586707224060331297222068202012658110077801130311586159624747918312856036033313523839221585825158508963067198698453564052828346102299918927804010650146180740245955630528497714363705563069969077458070174916843433064112583699422810675359160569037694064865744904721491649639779727510909079885291408632962519287410192788539616148168835711947066459998347781163731447881483125508096550452548491559395697866415114754876796992137233974069772258069104544928131075211309562069846136911180956404419605318828988737879280889223646013565126069011529850611013688554446998404956710328388373856171194951538502512495931753687508355315991821940735482204021690485395375795169912289477782128467884831886947789224727290569531484726267562348733400452902649002601235628800758822561740926905659250427609831333937941099507863108450107872051496379853985667589252495260799352809706495437485937433617012941437126806688667616067887297113209460648016720806795277302194790569637955021306924513460813012136521912098566389888164717475575189340676507027149517222880215405171749217008409911303647467432571837176461682625917484352878594905995848419778278572939444252832049894663348142808055866137005685314150202979500061059890088137973072720271742837458166503175613548825834543738713448402298416021626157730682849920623244379837827151619294276570047028774499359991259633108945816862949850537381165762745948034098651148216256741484808088374396266183871913969237071383764497706148257101604927099026535919664584233628165350509768775641825706923300259257057434698568386056321074593559593014303047301818693287840264677151413295145601839995686917510195107581508284605295918644987332997430168496703616766567151846626917589132089270841032963040500941799394483248081549530240104181761153981783723391451858704294569471829545785713193602492808270125407076824638269528011025236740487643000562440332972879935942837325310881769535977658617106015006854628017066821096262886225737519411977990662155738996666958180437080065967375385999727706187501619147240026078774734013045185615519430363808650602997983139183516748641711886433196556019105799007356909928483779591041872285594282234712473493100140300701908968252246377895088761316900802317927745677951951459105970575384270693173910737211795047923141372312279523932962752587030234122393958879376070194588072779960382402164654212505251484335004661419699364477015457765524922818239526255406580989758446524910454953247354268008500802831494792998321050249024624197829172817312938373476504662342531418556402592694244375696270526402035508905397950730944115624037373533696658327371295106192885113191070847711950613139005226756753915423995376037240803008100694222997002181864911851817492437161320730483185059044884432333609133549014764857772960693657512293996380645418924658106435609553903720946413708328967487022295539648483788523062600164056281021622892640239831528743427588884856620455711561585651614985129325245433931169534739132836922554372021491316594644604417588586922330742366074910793522786253279882957988487178523446944403792387432290626289131786636728302771988051926407169192078133032545110438953255835872141040755422715367238444783953044442725059358837130258817523540938522963134459892226718849760957098230339652225645043197742447017597543058392487831240316006270034392903239856983513351592188897844049805479731391903255909243170891979987964409968442296673060289303286608852397889128690377315551834867727311463327824070432783675617096065416609803378657298025883372782218334257646286826126385612722375506941680665777470233571940662819064730082906641739480384284440929679027797541354328024792061522271858608797845356386912277800822589725972412332314075430226360351950173679994670494735841323762197223365668499994852861860414032686240268451168998163696274451609872079891067781628101871904052938491874729680220556684284228117776995264131571597631524751935156509521782124146337545894331075240710925925647588650302808941558976069837031163191230345556277135624307507152144085812095661849084948203646239775090747553102022430419027460613430989757974143679270105819707557037506696070766204939823545515882018659861681301975844918895245399411601913112402842192209269760153050578940660577197811576600737097051406277833527152411056448003532246102880358802949929615660624101680443585518885670820990278683137414118154773481534244032773553355454582167211616610627354769150101828854340468932865480168255167424208377836066470682465345098837851143436138370800992024626737743546457379718788444794373116831230834436754687009907925305071667061657042629120432247432789123128513190969330779284414778422447601918566320453254386741367519059765468290373490815135683973253878598989139873162135040991335528452723231693871496016707920159987140997759210509559581477707477585771595147986587433972941349963217558499104323407734265388965700885936832828651165679330620421364877188485994245595151608772529680101193373013649446126777999088149416854429647281343072303983527558792556886496879316039809411654249108183232197901457823736364754119779542537742147593615800846815538445919152240838796493444002974168674026678813012757324846178707719994320298518735828573419085504056205609376176313944014787046046295042289664307167022691302453465807635682875778126597025081620471385953161281740271218109476147261557187372982614998345259942410165463174999432986627515273945364355918822542842281839160976212197286389101446683579616047640351461646371079507067742568049840591945308088419167886330140405827717507447813090921931431080309814233972394936011169806623509816585476996926785325061821202031923261616392312156153600763322215146360979046184347651087674828093407728055900009329994639650759736756488972693333787332283846313518538821258984562018970042395857680247750622519544509293668740165454311388455355359650627124961445958933055942109381496050178112505345437825156038274382571182345981792934151392608211288805529833087195286828250345432534623596527102323692543701381606975378433707353715787463386548979753929067978331165514218738572742208252660108490789057210495809273680632726559676366800163043457902303705225638020987979464183481262778430116655523259308678878949125589397577345630894578980224580620358254432990746329530283423403975688072650657675608681777603739567917119463748747727975847682253906510344763304147731605497916847823695117345402903425104245413914835863289145120834342546679260820223999044285588039585525844340011371782264574778222191025137099796821254784348495651413006851821007380308864520536897762107846042429586563920128307756204219090942880599488891718142560857912584656302061292880242506772290005839554977532340048897561818571808647721614655815909013407695461474395909693293269045844438348119388841057935777964526736732857094401199397404128768454729143006261127914456698186944041008018789174747749141013554310755654441929651501684325962408201043202365015648056801931973046865216287377562101961588938540577247100805981982479333773345507339914961317858866193866417815176585213548103221079500306523513578536906705630388285014509527032694223273484750350856217314804669651430848060044457687895488929287183557719905789391312443600597230085246737673583562238060312397878102440555612201249700829336767288625958847880090752734095674790294408569408272812432332673029668359525889874041642291491719551048435047843605022235445854593047228668531875657611687889845663653819309190675398065497448680885131651780362419800489501693978942085095140588133208085058896137808733375367581930401675153971553718970042459867494381448935372816921255925248161381201369245448220442072612203012464374860075955350958718604232580812604046539109768677713099586947322094857881170603919620102118080254940981621814917274774880248923799362127991528227870642710410686148622003566250012116811942656614016641014113584339122966351074440260475269843638207176600293286457400776257957784864024828190403561254928020027962758356609097345995773332636364971235736979797304936409140752992067231553770672448848455131958941466929627836998919125657562702818572479942019414061749760188714566961644163634477550236849129956060658684675099894763246498140117028602880378581119798106207792879904423639102158729774137790533963823378660324363943601750830132991432203074972328784395919470087132155220123552883119818305983995380546343422527296588868352672591139540782869658714330353814117076024966262574883260336500274603539230184552408202914862539573328944381361544511889361418884346258444972997396632532350171363667824714560654132789313925965194755864242497787791000624155817774768283583751731979761064596764819203682995007173015095588424631838593223866953023813808593324979693946194731116152416706138062520368674037596195989032631109499057146356269553862292517132714148445532753110620600051846562043962911221402521250558929279858149657698166228427551654990812773213933038342546833562202067529945856570619682802134861660909620899930622443630189402208624779701595062831504190330072504148754485975472269821022909762549605679974080929562864811705728965255165806578276116624750245570434956434634525861917788225453900653560606427117380506545114158629012052468234009518942201462459417269064637604831598763283202883087128643691410174050182072583367118485013996890412749614999926342276085657914010563407664482018764527171379971338745502253819135170315566740935848739831855839160190352809237113476458405782014434036715671287650369581425021234797098123183980451437473274063453280966567257611641443416837637520662039236621880704942303380197093797446689582290423841461675741681681455486600307582599069992681406015378141219902095711420329969295030421778457226831783590452284437844036366118409456313429461984390429112717304994474214263373244272853663203713130931298828199770180181250011899969547282367785846999610079592436293368701657598555090886227966856757845921889428446754999163963662930737191789650607535919403735378852080400064492852077856925738577684209618221432307181461928606982989905025854615285023704517810817383369943259948325572533143730360692367283584781213681438974401095685530591537583351510540783515039148038022994837248319045736871051505361513905729075112261740522294791546982011000450927373431171554195913486349310878821889089825921082256205989838137819427833779016364612234465736694307087312250261253604483742413821455962455279365035146866515505630144661643565838684210513295211754917122657489342642684760466494573627349659385444444458343160104486430032204494645475122793321353075307902641167495351679817527531532306576873222910344207074175472508248681776398053979684859534121022603149760431213091431500048544223873032316063299920153625692826832744757116502054792816803968931005949229082379530315392854878940359834506510650928422161912111519606889417887232395280681514862628818568986308294913794200533087780659080701691799380122838480234416842072194572994438458733616363139323134096419032016753162451415134946059046839490697928193793490367728477681229725829677289133294412233349518876931000918181896447708687320020001460746362303205927894918606104735761279795360994083846848096386455995064643452873375563617919446101214482365445405364468055707166918412253059032319916205214288279146769459882746716522475126403392878233321315382501648649522517209786883621259357196019360669839768721920699265149445928945712270686369341650735961595835960188982903282989616550620795599674246140700470331721223656421985922350012815724838343632573573237837081401086437448490610846436140966165369539122731077116296924502076699539290090197810824491052535630683159845666805424836372698288344155499528585750013095811560814323131946470754588484973544896108608541240374682926411407983770438025512967083842921627476949739801228779653976844896480363933502933592343072740682119983742311188491021554130304013093781499560377147979246760274918854834537427056084611196416268927705425369727819488751437775322801114974887204474831594453446830846817598772329319181222037285839162294108446036286297362805689127383954682255989628224039499285490536750671626786753742268377080670447801570602577430357075446877637271502230378866377636074895476622101354458269863758818157647875623688386218591446631441682817006480274542208998440499228985465946871330386200322208997563769981584160540692609461445475965417043397466062587767512384319195375777982670121976565579209409900106459872114475125559531779166545151185372359436438883427235822638071724146415742745278969158326041801268411017929961021198398662085917377144460747909242204883803375636672716762832378181903286080882550239465060576541846162239953901312195826424036818443522288585962268902546729378772541246732039601433761218973311626190483239523578052245816110725939739383650570258300510173362752336207084617135437738504601618544664122685648255846477120684471961088868690683687364975367179284650818662030959239099055577579303362599302438539731356710736180275657089287809521787670566029992173127504043027361861944680051807804040341212108339885247916642458070983588228856294765677616635194076142957737609414323424227112670566504489251734931193965733953302766582211859648724267430099697308805839915529745675437002496077464072295204847123520284692709644391254362214825924415089716186224478918978160408687030591437913927406674415424946737137119903534691174372249569726965950539911365282036577547784993859379737050622732272202476812520612487168725586686274286847844718943551599735079362605556972580569711487976857444268268384245466182841915078122212851355585005232663285143975153035995070720542365064637010961456960501410595498408147622456744339329287522183874181997588450495459152891366589292812141187016170399583229719909276468318912655807723565592175602328729183070840662207130486606646538677372834588734233179285811618950547966080111186321678732841911246138212693563050936820924372113380365367011436368136097589481167181988644125596834610018056112155539573235143442011874836669600083927443720722205498965122169203221634164170040672870691479830259991744460866390397389247905063716994096431395639405026827648747006588317404723409321770898108151341734135041779732075680766575245551231546965989028682567554043585250669316090834246428222543726591596127984206011755536369766360015559993083763288814864807109054061445571386967999629665590791955749798086218078836878195750110981524424954920631176123095739862605413827117601368138245252814778249527607822517918901136296222659291108265846945578965017760685546667885084010983376858475700898612079045158991276143277065000318318888333065228740251367891987442865924650363905232059263918396398844839518172510328620757505145589679342784541811807620922503638766623970141488355855687133632715141683660145055679374120945370012687999894062301857207663580149799896097232003374075903957159217396352012078417266465131402615971335611446053140492037305997349274831071522139156543493687911993470674908960059674473712876926693554448425847743195640346699738378890803651258478120441022239020846578508204078579316286957589887790054738484007215335079867089669012169072543455970939905864876948814068929253239566627777239119477366330450214422723907158667409842462737496976244569675098921925554229639489634898886433951000728221806208296960118767585694100864699540325427604600819734164760223903515826550857992461271939601669460312769775022250255921456955617676765926241417729842395399787780340708459563530805726769058292474624699785935549482263905047077056421394479445775730917453914497068975611058613058757810945694184180371128400873365487682883091687447855482433369870257506660509580569301937618626491896770125038719585102584366913579804763190039298890844513334274614797573864361120610430164453194444889612047504008744166232640203181540693727084804337067212404356582582915527322634610256890392821196994654372877954287128077788784944292403344271454809262027423535394107072462049887736392018466950126291210305160576711600366560983355792459583335124537723479364841385994509377035361809758848119526806406848351213805495799459736444184241450083356642637300499370087140791214467904484105632429584925178608051285494777489180728661297939299984856046303641263615740675859687613943225889286788370468192594646294506239370529006916777544432971084715157309611781693697572742091884829738806901345686652038284708650556369084633349328284684303339336226764764610269273735046200011292098750550390829617395190855869393053901511277162692530827399502001055089915286236315163983192802393771364233375944835816610203725497180559828795485911606565514325393010591172937600748221105402602159131735255391143048302885577591574945876428643146425760794519471865259268838723488457788971745801913731351416108150963295477975665935117399583067645947085618242131115572466684452687175518911748440786180028806098835120480408392376710855646081531166255734925476470908013177300440682545835378966010507427661774911525566744973759135215532997177632166004718969525142581623490472055229832014031717664122331278368753661686942064973173614628134270180225333637622176784205090889367582309153948418436692833458565994754420787945352788084252917619141381845307108153971038318319378320050791275486987819880526853762618046963790362699484323746124400883377906747762828176786632119928266193335063875859954762908690746944245276323395061967324234147428130081904289548531394602786553061557360921200005981960022522281817698824960301417647677261493555904909704676271874993753846727330089552714105230594537385230377643012779397696919641523107088181797050142808102961959747644970829339415906000863394266469758696012934525288328030044741617844784500181065628743089726508698448818611681030275355935552662119953392008105932310296900576390536479795454386562914233328201861785442219134184688431155188420903316593291331842529761159835664375272475756416203135430632843587889451356059605265264457026529550352575401685042283390322978593453418287979588768076518729565929523001058229464850106118280913076636376914287986610783211502908306635149257892766271302489846166104684288388220384144176755027578043989572035272081459563450712942897325976121852503238953024486211441875517316491563405861336954052257415261701561379267030292452631912999725612788755952307285064700980025309477048530217006189369553303013427020093207994166135823664707468009942966366217525657077602747780400479824922862769714838445535210506898288024203723080659077259907336407407411366260672352974860805363452167268240022324315297614389907312003268499645154460258683733863838819005443333809677140119672724798617510370394788259513666117269323708303823083758026585922633085497637706723532090078756364544376907063282469715950516057503549609953705114580396733624309875710943458869956506635677775122611868237269511237173133568550637968603175495427601079676604942780655213251306471747050937036871224595161993952372054437423942834047239788925227812921818963105518131803060067828424210004851697868536777024307514802662720997607134816151250140932687413790400937833339949900782601834148809135172134215529118424508355183125308651175438958402688322541598333776710751905983448031352864847176503652263044537465765594088986457200693279550902134064674603144889170426742893354610630975929013030918551591468822521089833315598995652628368082997274996011694236578911814443139272122162058322191804844262703680043415503055314137431759391162661850040154541925722983704839589336194500543650725461534282626281084638440669273661937875327794301596674346156048680317097040800965616911582456720192292187687919965398981814048950081908168461922210247040299652344049859176119242060736919874839431851008161029259429672164966680428824011758597015406843889151839554562093996782663798798986518040217254437554940875304366523950815765712272645592904646841482179214690022375197448781469820929356344397233948249360689448237025383651945462671747041715394591723467671338961753846092574753326896007688283962781725416095770306271608164967134063726176321209005074589394657000348119784244725271376164257409642491640332456710684235717447257610253422299133111289001562070624133734124037980137427110930545233074126180068967011512183320613781530196997138867463086901253938635688631203034934545999393911651237081640116970465179549609638274914076547285906535834651154521254888730466441301269119570163949562499465845039411555737160595552997267915348907772688394997281045397860633554644167395860794843135634543084937094281168776470615154531507647216231769726276801224059107214421815345472257391141848169484855991349211167057597619221370785665576971757000069975940831564913546183509236044107266607191852719198037723964852876746077472321138555320499583127073262827560881086357099505240812710344093220163520754211026508686885562231538508337093789481117198822103045106921507321120223892270683212164849759828519657958660496217670671378872606354702271291415849127261119378526389736618554297966651488599661563247177444822117009996333648906102114382358753986628418480072199760421418892733200770611262618783764723724129881117007418893229215452722441051801407908607524891065462552996091114281913123380891616318513329498842487534975997284506529979281640329410288862063780636453847429601135499849197113066508830974144725175736279305963491831640616711963984827038890292010541624435578104365810945798848104147628336542501863993278596672470210964566104832344618701019589048923066905753808829382446760582319473898897586530024496008679218022395921972705743475952257331438160851001829135035572454257671720666797057409078869273072652968684689372595679064394749581990621935667115026211608931198700814302167244383037971011499192421407013963918653128442176145175687627770721523733445297857558186118398918882659255723497878736962919686241759183962325777362923178945917074055178116683159275976417526372678117070196170786049106323219096560785061328781231967737649440908789273390407457771904284878382516883113674671852438298120700231236843659186026264790230331128574201909957204113893990653791990191320088841091340422564670533401996014529756266150198831060907267044296426159632858618409653529552662235709088280756727833140766504329235179369090918916804349814360119158654529539902761636171450784619276461587284445118277491336551594146621787887749254209317845355371065040871780677643032630614987435785224711698662133419185776663792438571728285864132618763834834090434067733009923008617289485655638324434405599185552024278174789964108969647020132961733934438915732689764630286240331367188157689839646451752778678020367153262462463560332970846238344494001845670055220180574445583682837460303120796323062940326869692827535548002061456703398041542761905903894145838066522028551142358049795267395264909964016084228967279032576522080152609405765072160276136163526155867234367476654105324066110799509530010352884671678869931598962586172342011942673137050910339677380533438715852658857905260181737866470745500309587736024502419097100646900644373065248982075092795364119878303806415225916090516550560926577856372705987615308822725666375572581748414424750825632024396874079229091626268338914388075122394858417290954699462073113699283692876848062142925251628512303299178395492218224989085255497187623443721801824289283024925799831737477396485757585608036733738917557363923587739600102733837069071458290601369849847644444183893813019667769540823321014278746127548090860798303569558838046006188344619475406034596960624406518646527819448704186852939070085070397152917660019310663488133378311394382840621784895720629908182497499629427914642759835918362366636498114646912466266662340669897999833121621608021091777960291311307722496778806815668138183413058540558303418248088648011627105951130252842167698838050308407420310190630624363473366053314429274513769603424035541181818055840469534533524724959986664750189428190121018447801759465567436454461013528739931531630324067054747193472350200920287362937016807474556679714322768952508648988606173651664849379928615842917542925773941982678248985873463941454483385551783000012791257672952285584802436327880308032501047382449638178623855427390214906844060473709486284082417056360040587393175335489459872091553989369987488549828547085689989982883528462106510387205589634272058918542421474727345796934928698755269820448034423888741939608313721222112285239642960126641142268346629494166206899109381776103586762273562358891221434210219187037483712085440783106895593854446611312769180171298325371451246966625974123366912518942674702872685706155762169987782574696220720365724790530981998989119885272137983773356878662192658138735626903111634584431573856797329788215579249668855626377745690444115492334021166980459434702667162797058178476570696480476561086890552074774734848544709880501181655643020178197139774075915440741808325189561108002934799477296778555814350246673962504404856854659596913727469508486294090835035549473006503558598274757817306797268298006780172952363294003593908887955065774138742927259957284182514070828105467040299319669289063404889712115151971594247681061535744587585460550181546110329527292211328143840836811523435975856437011432812266871107728161944900022688090935085924986696457584022125500351127747791111960320437998888821793781871858085611428600376976230419364468149915896474122539455171931450441775173078803171998018256205443109803859995770628056063306671605916851449653576665951678431119949013766720139601570700111024819182570030719809406091034447122491775763972168923235722309717028906054718617416078184299957959069388233204739062188543618702153647549771763838049297868153687839439298574247681539665577818742545696525393984104618626605457147554412462055439548838086294533568113036245184549484950848870106739409678565380455358913706524411813637816741060096997934492859656731078853938311376941830655631503786948591690491565445521769609605966622869974320733414403757003155777021787178921440039835024715041886515770250294059404136066388156350859544108152670230181648107468826415925515730932812894786464979582386877747366427320636113774100072140287704605874003571035993644586770760315087812273489712759893734199589298750890846659804806954722141496915954736174244963921922231332335506807923620045138177342929263116484387686956304017495574163992398562122791927106476950081743771071227126573034095009010195474044279127823096735973796860102469179854353388110019134347285633673985843566008694887913321307512010254793284037386560959966835969462524351073026941119200061453447787334350712849365340935338568472284744095775954283267855073284796621187802088886313807141426643671258051065317876674659181702937750535261148759335050310531974186121215497583679319270055999756529382321008015755368323997862629972283199405214977986532561123029330560531830625011581893857881746379661910007580485266124637827637312966131949682109735141499881215726772851624765073858775426928357716948477505325136085984111927139911785062710625738143212030742978391736083715385832862251599083389042826944702486834332054258652229186622443233840742807222834979903818518401628520987277985769321815397026988095612264953818006191525764099497377080366961846216906440107202992717169937092611926929395437227621523984863191933710941961951297835641835220167608917875215070616011262961179949141683168798039911447100605286491600390663436807008536939712902764907293835360615897598214258735914928606090986532000413723164653925044999777618411634599587403200086918070976447959085478828000739798031920087393977336155856558130618789139909907976181568305102655241509529639043654416529098638918327045837127203947992770997395907715115642867415157907853453095349980991269324843406109973946486035599916043697266807829338629466505972151635399735230492207931309805067699948235481101174348814693843204024633268311214463807358616683114755459863501396914436560152537842608188208337002935615964573375282097398408719053798515337534368410492112612171905703001861823468220459145725712757899898462365995625673659749560490297892123812523085754317195699970097084215864012574053352284859085871759485307184389899758096587310103148960110512934324798439291465272699590266930313918179583949828318743927637082449372746710346329197990268578843094404670980654244208344077672415491110761784811097039541554651244977657624032381151910053641947113418415371355358389763631824255315564438383890308186662102582733782636305970171706676490939437617606107819286335212051513201613493080847978024736555384904984141877940921737677007640691945724742850638951671047177189473537765136524179972804871495441169797308661478242916216500541582864323983315791871212624912455434680046355312767299182791760992176280094698465322871399616608045980116344611149724586714085902518742418232741268494702224469778694702224947057272954383638839194227749194551565917285043688046450230531048783044748146385704683802231887841743596099909779493386588411126825534477971720569358428188194284713632711158386060351523911143832533629520148459591251093225547174989829424089440721163311971597999398579078770931292828408787274013601788550410324742455023084568242097689605952913569871109277572597865603217102804461773666810271951093147468618183377654251912674252947462767780539385922346186049970134949087390534753968951973892375797976300280276006656933282348667846279819299418258714350656469131125025480604130772013667507121682561078085633510413751365966927256557259339818580050010575988983684296083504144923600425227234746794358084309909470665481432802302094938997683712216073337401570191821464343812850528011599758490174876859859298512176684324091550736943644382707681855343475220629718555985426479335691095885459462811922024207476717500132151600112747633960417966699440297888435262629568652250180952403812078984673448446675134351793057934427023090591439191849389092884635332816843445180760298466992196536970777457756190097905580823432366360008712728085234863512719057191188207608470157601739413510180050703907002340713665438572695478591524545288824855425898670617053767578930784490630888420026932702633724169042547248544018167069665630750283261701964749348177016240359535197788420236641268146419507621677192296800395771577445483628420507781185601399290578139834294125079762420418232494130843095674804266929528538535759105112205998785427119464209090455403391619348936369853206141796010939624415887025533003959636499647254265997278947991278504997018113538947876456419918986469122846566672757786883933055710096956175908120283480223765122985647095326856577667905736512196788731941294562085631744002824078706985784753765091927876549435398044010643479532027277073845339026292092664422826511300301130514358962442144269939912437287981210889087296734326209271772109034626349527170534329203838594878763875044402971547080080240295924859976439932637206060051661739526342819314945498551627637455891142244109505699766568688630641057746791298490205275052278335360798134105346670701454080502553539165421625695518175362765853693252754165149497661827175409125595066444144730950720781068786500098059639836891815624211728193286201482671323654497858498854444788697047458544709602140098992659743778465238158194389012189891169044969340786311344518255054064432758489807683047379535926370959637227319250527202836507072281084737595659976497641886559809770255775496922012010628120190110022879415171064593291126452569767912548529207843771037908021853595533388798983731367576515327789563369504602611891513599534212298329175112290718797557623785832023735194103869178924699863869034796678196358490682607599593343156965378890750722947561857532651248409707923364852860366948538963793676188279978314579132824339313476755911790244629477736144134219407776241613800099307357986401527274700529731096962888432695462399491718934550292432728342422468319648553141617934327019494716837274640288301735689447602768531288995728534618963337224479082215349024749494876852797091346972685785228785184802131665420197786754450813526882808974521948632687031783778739126005725024175871509551712764644717277225574980145048325408098195076488627301538689261764935329195243385927285044242369312181722997041272580833912781527261283984785802032070834858428613774857816351058339053398205037174911558461973448575557156224476851595916585964851849695193966690254489237763576263290646849171943690391122100494879103923003644050897141907893676036773322068893152230039625284196113057741416387853304295835189851265724305720485628487558135701044703379859213462691952016207021488265485059892091127343531730103947519161877096364669658394757422340708162871542262841576179864036676859125191062383930481170404431821451959488524363158848149209873009675102081645313165526843450347067034340957276474126447396669482712491978623136796053724023677096287045515986268118830123486576964200131573838117669130315131108388518150655711861367351681371393371622049326379584388867938979812644782691125502304283862776648154586615410985264803201614733584900617585275322438686302180548201181458643135025012931301408626850633646846730914370564324079440120383218562259889534375942285070373340889592958422486656704075350956370048122564407932116583566962071614654542595781449967330235971939569716329827385583366045945444313612108645644244185546867020762558182733720767165729959324735990497477199571909535361378864276851688509343879990948063389652038582406922205173768838522135722048870009008222726125362238118993821502511401028505977841723309141935159998611264291779803897766517480940477529104898554731653690395104206394684440313347392878238822159115695375654118513819159969156676853190509083525085434972885360908758544073933477526376539624436616891848591595035318457861445818374682159919271209589597774810105001129234532727662179109107349578833569858457555411588453673211135397627236558452044670960546553299333270861186644711503081956627623755652564376979740512364819700290725287032712196232784806009415209927421773547726390861008726919280598550320236626040352430520862725084001345222777104083696477892129743740417736922190346530622770133080772227523527921721222903357441451613400694977132694662135262425657773082205658664117664730382511215290910490434368787285697298497687412205458583650622651117437365380301218223543658512351664466364017111159946799347834329837397595050440624065660664446361720078220138713199840082208570697700796220034979863111703769220317298820766914151550923927922324702958950691115885354428034011923624682077292443371873035659109980843145870449059977550272089345405379068590031677156158862296200436265707486798160814164499336806455265219891880601748155375289587690784548447757909043630687473357989535148746718741408389586606363931398279957514232387083556916046935995764354428640853440017598918755972634353774902143794263780752570095890253329401403620618621462277172886520320942033262627746542665295847608002129649400132310538896447002155694792196656467785563370476585293896406404063124280785831412992467440695943857423369985448388044795439308743606233824006925947756283464350928728973614667615399102161127591846622859869641599000462201015248110486293845546070739783698262655754781906722870487645416692295888346863078475322097367322132073670937742467357614695993389760040550018868362177637811201190860171133279301150597144746097518812545114160346897767120451192334128643508001936301078220018406015970675425991027856350484520118284940457777595589900613738211251891172951426803497347285838753563898599139136028382725022695584000003457622247822323720762852734388082024185823030967793942115884261556738746845144371146826907364760015557775909827212747178404728138610545282572304521101221567104891615295889225588111385729610362681921966183300347427295219706027125621544827371110588106925265930924619874702588574035287496207767350795047843666259488690529251035519074291635708884253029524496546898691534449672504795667220979639858551871074385934981514337125043264191037682050316742036555761910963606075831789032370063765352143228549615228760888423126154354671206292592351125324560091881720546663388483155271172846721278239000309327880218880060984710930599328903439832387132327414165523780596796093181125379176465942720444322518211849844414238210331580543713321779154573094822691543970045803243745982417201901162072668559470794846638373216994249906374217336577903497798045197634787637711887150210265941987356114093019717747270594484808580434176867947525001106523122038947993556725663560403173448755616952562401891844771567383569248331058971234522138275765976811729311084881376387046234738474102948419265263808896878498308103149330233531603617317198705267608570964701238185209120756735900556200735944219730783071505026330613669091883366571573778510860095478802077738358880640223128095460646309581326813473910431333050194382561225979627478239751066819336501119980668797218928965680663644767834275146481695218420364133495444689863557993390648439722542130894755750906317943677928808256614326165050281305138791700417570526324088772304935435458218377923279862011374857902005956473843783393798280388839768535470658052246100094844125509130779401316391151864366374875657395013943573951099339199852727172983468848375412668343825543500678233255329960309133117371442607998909610830681022622606046012849853217266054076599928637866900583320369715114399714764743932332161359809091262469309625984186296427797544027423863660058091345103737384807344103329069201300016356254242451049289689552633645505112139982869430804621057210727358170710818752186734555037499480859794111605648907614891035166232548381470161974481876924174075455774417223543610436195876785610656528258797038199504856043863458444506008868811258911209947265897750535802761457265661144414790922391241938720551697457949863788171596086218446858931631384983594969341188906637902878877456431186380174789353098553218123192640438307668654427301032053689359688249563779474220572905076415741713423852535456855480447356725425178196254844420543684855852007171667737520787212869026507803103781900262674167123860221641455108700639317467677364268282138075681206443340684117356156803597114165107174989984345655411465509436573658858230404072878338781670879057151710042998264987691032249241657735018395522284252540248090126438548589726703632009080505744543953191620292452803744323590083340139779446736419951156839786785920864658914834197760755177429114989577151227261103055515575716965171121974415639772000114309771413579695525371702282152934983288547169244656123204662730728535190974565125221475729112863227693374042785567213188948415221266436280423989070891832247679314409851869381945613151253909759641228709540212688625565463418372396212804050011503912388061163962877673556505029157069703417460255019539948442263522541902874628742697350087539791398674253079645164741576617466178930297442951736757027009464782761389782614990998745346642680606550311801125391137516553721422688621302752610068592371888368514844414085771955363093220324832562810030758611692892402273553675636741444920928334939809583391144332296782672061159993076128615834115983433401191789343832269166661583457884894244625807097657674907135694653950294866326767805228267516162581788448222919677810074771942801416143849645526709803889990030189968650219011906643776960876975797042679497966112678124879091728690900224638085898978670033903522345159350951986429036451442947884500850601237239888065232678584944851171937178151799342575769182335998214834494097109339065654492445141943405366874357299300727844345582238550884021685485625797397367282324592299435505534390079314197779603434132326959414268907073914702512012544541921302088855713962731586960683258699455015546098621014156077015239626379094357413070986172373468209469885290352949352782458833592674278955151244835679082241406951187200357916904731543984486168510261640260260664615596978497577410556428983360008193564095626170440318333208858164632643679574297733092221920540489926446459463707446044006748632476712245663453476286147660584453464892520841204582453918737009205103724368186040906615248826959973427127505434334623683728560153145369180513571174005362417480961045596452644031129072346791233141593085306015615323149159196311228958699771396760185609170095881859327409613870266620946959574584888710166143572425194549972271787759574010564322205695146684446694936639501168338132577115059203454129507002054672577500680041940999062035124099071773564394831896992473349648501108365637502843417751734887211263884742491357589841579529545835228343228113648588953509262316202953352533183471418619440899936267040230237833116130201935073291132330642814520580004749862893247084491805764395869649826366595983545153812091645671733275787939647295510411209468865245678438466499612136738373898081954773664872192379069459411316343565740737760142929082676829797078201034086421536154922597367544048146408667153901388957573046815896867763464810634325302027335042248352014134725888968394775844202095107667924477099432340360920336529941133653457781746506700425944155919919042550414298965402222631407165256150381442226324276077043541995257745034191616984594660993224865569494385489230245030444308831063846825936417411556119152617255044508074624284363254302581402007033180956297230713099732003679554051738757412776171034821945003766376981740758459735914467205159445199471249580095059703274348166445992473723687374414665413578976460450269589683027099100216928954761147869545886914605215297131485850836690852185168898556498065669446366187268850493491218843453821775564599363380320577164491760041503782794237350507084979513694639177118631867071424478723133940442109016105913829746140043208775590559319964981995283860281760449162550650225149715808101328681536729283720268047383999126109704238790424726154705427174884402946341307298308326252873571361171090344766192461207751854470988540399231326593966578897081908675794309364217061035840391538867874625994718424606327452566311999498552884374164868286628361154529640735542908445383819935705139788412100426583012296290715512552749914552960472059557989443470089449351013600202003108165675692001460029824117242395433893874113035793858600723869096044504086816009168089686324926817470666533093560589780558388545316073638097901880605135078387904304115517553949522982641398593238232061401448405241679956683209990205231221018500242893234621015413924465409179088800810718317014434858087647472112285724140322987480019564318607890252039099688682553262232270467510989031705930675991175002036228172773883732898917694577027919300628469825556793048594018011925021155643050683310200239047757490685957553119843169440084748728024608433133061545629803053880489371583086718557515574419942581707138737762301976890126413631454960850757758692916040502948123631158520770952209031517783197571438873555239439141565312921567030182192788034695221764450130325233880131666674101988770191539283363599591974952506356780252566506859165377626831075277650001048954221037411843764015602809147731538390726920386738608311128621301432818441878246786516018889937668614050355629083428853630006233699447339401039281090068828546399323142271239301250522352769240823745768882107106936242325417296703687276039459429552196076682675778861177285111332710038006111111029689698388819503204815508111015849180897044798590104409509060747034439696384295935085211484371219674291171597495187624159690544822992227372942355575257620422307240718355430246332104845430325645244977250481628818141640797609379915254022565989647222288135650046580756548483840342453103652266349244675392474286514294917311500743199687576304822847460793660580157050114962396864826953980032240240216927549859185582027939322515611418822030762365482023707669178384295863747052657223978027436940646264537092007413580819901873642605844419958577297005463345447875166125322414413698675069543117990957331179522691917832183320047747548564441902506890991148687004664058809257948893147158432701197099289777847494387673074102686997197903104251413821594341759909797877284346144895651964936388377191264912173092300525819532827149974222460750109396359827442454226527770154819183890331228693472486614484643090818813969337234437601667443016502112273761634834873685490178503182416519825471286721992298898412258560355535546226595190029469754871483777316378611820378493808861156872454436558690940845629326866896429397120579352985091128349422949362001282954921163227276959255198214158154417703956555910696339451504094992655384777995188599242108006777673783122018424505679361913261538865725769878727295181260750310758186874261386507521453597398686986666786131434999559872791394011778860107246385440355737388726964101311266772437173073864495121830204908344223946190786618385077239521417352855905304414730124390872465097459566577934412038761655476583390699298895515449581852085886407257182118780076587536314044750665010674103030359521551164270876313330202162579899006683132900812927650524353134495876979912714929064224154971685204711428212885798771090654827563239040049906616372116552098638031068165772488069467076263064987191408970782115179512368491744604604863028829293825938096402822733675924665255216683328483776354497409560791692778073983300141868121170627764288599796117182982349907079028858392342175416071985859164498015661439056107929804877822157970853918384049131030598255356396807260274722181632760663344907869325639554564039414984823828121806387719069982536725366404676404955059739176810285413149407644633375612664952024897197872712298309473599358745602229922199363636662728904976212750593510990582165595320981878890481062514188445071982387886278824181817131330998537588285774379978462678663872160009348393720229856793049461371471937562071605972268557197347179947980491856757108512749604327227453649483605965440889418781340372986213044253510507179251824965148854694984664254378558089997913630239258042980771116603038308028224185019627066183001665891289348630931329791417731576589484523613421426302833778756042029759213636266547191566033404222776542440765080089283834914228113230549859395348931519195525838684807102043788894790235037832138349835858094480954290342935910990584832158967634541972452873943294218528179674669545072255679842604318617338866380100163833251892095730988164379071333968700989619804432223708956315155981683202088516600750308575077913915069658265940425306368806669906386075701719716740225227363203857610599084896154931271367892171045465191828141474937375252229524664055551109214852617203724502149307349157068952626744248264562988264764323404023821638116917630915129610969909570338189770716687118483118659380792317481328845579879548626350600567252148520952540685249800834890300714989518713149498811625516098821703932642374063068119798489548331351831329281112468881511428707107789427863663253927287013515127777887629125862642741001345440095742266678411659254831408975999076594504585369352738035065990180350012643866622413396962605387893474229827496206563405446273521587764006428183554679427575413792698845976796096451584638215723532809594099208052486916335351446123112325646870965307375486136762919763282142480742160707832245341072231484145915456717832205510676735121129270901952966704159573635374170606422002867913271861114484687773185685842969286366897438988304501075501525201545977839231561938902654661305325912245865969354180355568334287467409484033022637094141919746412822792718762680469569327374573661045718575682775107333925162124031080976898904842671003873682297930850102539763920204336041755950439648956502179781334112986779034626576441102919132852632262434315487388385946605942041416728928528606168996263911293449979991853938596807969897935288751736901598706537421074023450108394989305202547377865106720932311951155497260697627049888264709700449733753427971455284393529042404118917007332183835549272059448976254404179930801938776807404968040195628696604823273622535628733191869105070679777518793306877340532389748837561803253545149699616434586509200386852991898934303847357843664803784933476655051838159560514726582285084307559963289892032008448810901391935386155788758545702219023277281068490508473481493798919988671929355887117827027137198835616112941652680962072473726210567265422597880870154776935177499611550494003316325857971712285479483603336509028748354304873583538353036782652346112919227853540313725035194992679728808555052834454168205700251494040909272745041038755127642551191002492564884601002472593680213399416504108468092083957452901160689848129373897399148429217310875252350679216624365920460514351388026289853806830413347317718152230984148617908577798524373582084329018795514670644714051456096652136634302768807386052660745498805156054669382091366595727999025626209634815266075146268965534666419846593931045648089713356698769049084053647627609988487047906430077913591621235989200608646227921637487168695888892026055243704227628919773051448257357631111942914881948532615269384166696788781024421059451130531816650763359623708424986334909032035768924243084337811671616106220131722137094193645161641021463724358536547319713678493813984068825446153254939808315842112954683693388916831670540111643686027073660099581268623711936871347716847330506264313761346888496263808902032186873953465362499639434113584832849424540604030887787942255688580211930423125974323403744262844485183975239709611192225305270137429649062159236886840484579538670985925026902732883415157701919983162268122437848269817687813929533793416376817383066181964171459003911987069965668421183034063641620389272810422316582287232195072162161041455507451282914718618605679501170282098413331235975990796008155339727170323793098005884024024172102604343586770316503086773303519302054481638456404282042839426210260449028514955695758405699940173289919902502730257692183234654917979380087573706205795992216564389210016550738520670309578155722230811656670971187799401560585580274170233504233975128372116841260594227288903323257719555824848520724649359452851623382344517030284188850405785048453648997109576099432396997492308601935685125332511035595639046442752068704263010267232082207783508318881305989650018365106443690961645404842310120277314334160274426819936178608679526551563112686826235584247534392852249366264546988072294162864668290651973485172138624725823072682289457212070538882399182796122008226778674474061646596591305964528189633171394554324800446352941589471743671462919565250741974050768054839222161082868885172310079871182823109791072273839089224913862468428427618183795478962345626269459082662486117416341938990744864905444403272925278481045407455392869093852756726199170845755389635737598489388823602578017883593002445266904151860744225265539895673585255548958483362186750018559513379552847817523173772909158835354688688085479907294580703366757287115198635716551976852941304671755305299516688549310634972161841246512925236489208819509483117604981514093473129106777427530630779814501848307251077923294318065541580247157497513885684769150492586962764050709502379341776910235741079158462878598573374867693324358571426590624630769704574880975068086273598136582074878136818003888749245653854295031700582282900703695377937477145072139289085261884539602632710047366738876180852231007259949532237456194625252076492818724104056343228315929874649092800396580347050358896324132498013562993452125531665966989956689684922923494481351990174518906894576506953362457795277968902160014277254625738124803416018591292816006802557575904924163597563142629663221021147849946265883016655878881542142500742559381092898740550334439174855056451468754898368900971475023584172121967436090700437738399116892703231403520369756210668003238480847796278877140752461826635229069581284179697695032903030703757222384200741177065250069971477135872833221761229956090334068020026336547549811244611801178370194603407975646376854702176535539740170925575611436642808255280800522709182671774209896319615916715610544839335031752190456661689703469971127551297567631612724660247808325260018629003419913324972220905476333676479460025453565910429873238454609470166155005712280114098161677490346446485642437917431061930274239254335914678869126472162474127677417556628591792273234915456487362247559612271920382923618105521480369402780820249867228588806398052609332817866185400326112719410503139367645342572307824991113746669327844788376926890903698228526868002169731819154442637628445083376452078861930455052991504865010279103471255301039036263300909243814790667170793661089609597298655345418742917006866740531056254739755172913991596557891727951619741585542878810786878398194850652050411705876806719196716466898386151376549898652792631336307464228757860798863645410727917080698098914907951364318148887595621603331599659109828372267961897246339476313894751937178117934266502791206236146336149878373885447262324671947709435786764297411158993374134161959812486440253737254121575063147362462661337970454193735835847006612646127701446243538920319395527348809683630131128005797772356382768692354617936691286882835345960578861074647731208916369949635475546707355115734852168522854745791457078653321499561583414605979621127614006838994031328951240862829842027834225035114139359078473547642672479476939050311248751162708212151618741964040084256451696563874496052819158494916948444462302591678700819996039927049402582378334808452747769636177885747055583207947684373223771291531257215338078789917215351465874291847727368727854196253916363181044588121368494724016890700764504612377279733927436230414295634016481415797854406911176738225090113903770332743375201906013234456128992697613011137174119122861386104869173761505850905692554454502033193054136374377586000230631359904488204129751391543220675877444698718242077295268261417427842784959729973095054589880210148023225780180130171842541937284383376240174646592045295036330777746062979387972547202831239945437176860287919306223702860202179759946056804543039869163103508208305187209335040244103733860881835717231417207860315391566917786691575886601207789164659038375193374648328991929740789556631692183458286225188283832030002753167675160166561677881110453819370790591680565989058506288823213093069028301922714899587617074656837457151844795959088531453633567584772435151247049223192666941642789440269718855635332238973559881431695891966494948616303914307785169939395112131748875242184952468381090255199176156407450083354188086667732886296232825944086942685862767978446168814376705172393258074155226233533417401895043286037668076405185324888691426616162052747608137438294882510665282664932845877290721451304353148010053053038918172660096913529597410313188322294313529563916527615549662824438565076074971575530148978295422719790874143148333563191441626237618463967798716646145154523338921310151598745747878739861532500446244744007445609473534565635180773699170866315435783779499645618924316709411315295933771768897761034605432297390297538929287459391025200588184988761211970585218527991200913087644342775853538390129411364570902590279756988227581166577039348392190015251107963444911709589924851674502647933530461936640339583878503093949043399974323931348959657392391482476718863987740413651457089773410229822630499187093629896972606536162624200687528079230765158335240265006895321466791432971772478979495554672165617481889732820880736752728404679228961077240466461642449289511732014697209083186227647282259953149978298930362181305556524195722295262659297102021960868489172859147424381392201638149605335658772406933971717930881926356565571672705765040783585036874179767756110012262826162925334998995930781327377067527105816877484924876508152277503539529269253719059276174622213602359977876622972251152173735596267455890350252688828977110356291925307905243540007924774435529406895876377814254251557049166919836226584735504128138163239012784042921975375241556293337550748675788803446576295988046447306456335582796830007852413574841692251840414107074907756283709672177899116407717689707697869635185618493915318863669959611681784368765012145157631936270594495838407775965661565614962258712741848848876038922984373146791227746922716175961047405987927306873919826281246323942101097412525944063743107609197021666741229277751870066803106079989524498598359859902199394618191493220823532152773711628041235198117450197464743333311364902832275788886051070499674217148603756497755988829189924229964538495664555989915678713293731954171083540315041880648908933797845722156877943979840495474095090199546195075457398534734550967411375235778660334236798944888819290869155541743023344459162340012543448723198637491998403016249897276929617927877453609300457668428736999948494984523455140456182528546704689910344448989078802187875172049293176054344209727540837117074817209077763112186004427998773279690225422483882892241282686692251693528653575872380688579214630302337227244554954355650103827623134007912335843294075085714054698692963769019663399852347115452209936916706064465505766435831035853050057394230080512254698201977840957751204112367628704898534844544115513404233062086166177586493932526094843422322141945484521917489660367728863164200922979222292032132572735207186720495299934390861348169704251952995162437641983515639062221234346618404697852020727283877494358803063510496469456322903664363561805019525956338327848302420098786442397301000613574061460714242487154905452021726951305888246608340466481728234805414232979274217205821666953937635869764383661382937203123695428947659089974485849259885446576853551164118048700035486313620605532538345433539104270781164505643760597643804330183897269858526094282812218194536385878334610980405322860933320381967075943471306542339322468992595657884727374943652034200794165404424010473469285740002922469366369140213544637861315892099160675383818088444916054049331547644139588826204330757015600137445020440872350256428572334420877178859320426261295931306607422330699220756632067847503017886034467984574238446477897167760820106989446633126107357745659280656059271585425833440287605655072937880853664773422732744994363352079212263830886195032185450588842302894444492873869614922410808704816066047397033726223135061636361724002607619887727533485325440219813328701018453545554084138006765822461257339244933561638045464916394282554075975056890792363162283003595710504163718632739382970067178948386172642281354542048371820943900235152580917587504204983082181957556941300851160525686015797188381859709328075490618475095338975821875169724084386510542067336555621627727824690023108659136269358650908172021573106399672430777518581813534658798211697286817013273894264645578732310789483755042516864675538680401290829215133886982819369715235482605882336162395269907757815240544680184084503443157014649891082205176689455495055818459088245087280680043764401959712871701842777118734759286931207465791972317403845897707743876411284688618370635980297296856190477522378463522037340109594027765615283936408628111904300490471148789998801234101239461447360762509433746525221291871151358178554971861760895270452051879716134447484418599304436306403668176327683553618648409286326651222222315490199653847782725493343056863831683017402497007281230866099646835685009628762032734144462786064390236689811261161814175571372204929278185482289349829554392272441942415687203446589434788173969840827860716711922996393832797343843265057474338861894570149064295317622885517086756001222572945431150387768760627308196531556021093018702268796074018278805720180319914014354812152239979262331678392667305484460203135862791873488986257920824399456472406116759258497890309410914582306813956640496028957365527944032741221318858725511155728571942807956740424920833612625161567319742425354658753489592783515057175481121224046719353744965513368866465710958732736608491025351645672674722662349294704429661282867903322496287539868605991383500883365540989897820593424024291088849739239778057507217871824563840604232582433843229561971407563116107336524051049890822195949665921026107546691570530991320202306192284947747065525954082329092301795207161930234709246500494523729746363484174171329016840692032838312558377284275980513700930159520228897940311432663452586139692842660718541584881564262068814784888767148472163384464148838120886056568527697782259619136840466139161848810806944850885240272236154850882646894433151642704913851142565003523916721742599053715235403202698483772765820012564053542808756742245892740297092149663359434113100062565890492351809910278528195724918516083420238880491714069393033387655988600004774963549066521484322014611950772428221598355723480253919740468251787869972679786530733656083669338214180688049500693646206454742918189924991634687718831374931294813910047996371578115043097626221427768877868031119571435648454955221946449483224068437728519109936660795422540166969932957833954851812174603799271897607324847637470263025564476992673140693450923093391286333114018804968288738289484178649880939284524088317105057514134835368556070831109330426364733659635477709511455886241381182278653618057079649798276237713504111467624273390330490900140681478788563434318474761521831380140096821056309233413816587208944028868628557867635972698488244758842889137720969471507603676758054224462502342970296510534644339479613016804828722251510151206717740933275315453536779114308212735726487833474692095845029730905266950283981157429375485228680753986411304253323017601359047350093917274669229246613220752609712918259599408650754223541267130562413983491987638656097168486524799590793682877870043548196540193328037787493251313085811974193949772950964023432009221479710081590631617375574376179157641935078362880271540091997562847330579947191135731690784433474960720696726633084696833038811830975850814653616290177797392938086622583657181094791652803416960704352456757036088955842233305257579780865047331567027396501013404100451359270563024129466095584128662384823581415346092576096284318389279777716171662183650629845702300843468287754922872203396954098538448787192700959893791413883564261384011710214489792431516724280484101695860062959150469788301793396744159891010593294721620619171964542626764567028798383438055383416152405445678490269607070169676346254591297072185986223697499906539999667557631903983548272866215772156412646417991237381792563841759922589738184497877213072466117864464992217873936627503309841688481280479351783502428216760373768143493771302740991508558132971855775929371695550877025127736889651799989007918644951996068014195036082215610469108050735357086875091334846783755286189690254007717149895638930781909140685849725068341973604457645670132766870052614085180652776073553315296158932061250795971513552867374937563149575994546125273047294628665966975723514145250125859336575393530939797873714477938348777310854042747466794293735317751441732723004350959573237469244020448251085601498099325944636163897192684951291600110880910038210264654839205517610180687820514272895796430132212825345904319613207662740676895260985359311193920161200818571066359184658234685265973355959397239462207637882846734455024722776660485611630039596056537577857536567197135513914437608131309738275502272719822458199157167786080504813468623687955382253454495864727415715998838351030108488395474479156592073111461795101063909375679770604020559963094118056429744398436622185593601782161953230966615669133641758511538789324672570622361800638822150622934690501844759282883474830727986654080426574507737763138203812566852784005959420386275214717148974827836935315339463236858071321662714672332711552522761986832869767591907982841772482295248495932889785598019832876626308449566736797983618523878217318038245858748476640533610889371891039159638580271838946469947374886743296419714902919426058632461026089986988570530598186023752535279969876932263931796897780416611338608561336935715841574448780171524337748306672263348935304806580059798511849676584188376593393276673017997970997844256462868877365076097300282939057783093828192696541607158801702115689914918863932857841766116648584715907201846879390770631595307352481938696649743606346616756360771058989417675724613721641682839618416278732163424111302592954674377818636534658008985753354148196278171117411668919902503987969435127835895436037626102735154233279068972803834921468431255053772173037134519598603721800287854376095157536924402314103727900711528500328789274085716567598905519712870988155975923164050670494614654046071865199881507739391629397143670240466215895196731753073409064330175713013537284227973421240290619390866346280097832224559741229617233295053763918921721754325038938206877596860841031321855798573503427081065635407470895826177149319148086541016065043389890551260674339509607562928711671032129678447298879653914046475732116295291033913802593146716529194935422975013388649485443909016054994725132635197956635141436268977454685873336636585874092337304472496269223059557749952398012195185452443178311634406606219626445107008661565449275918552279545763305150092252144006651480492870109454153330294255080977313533708254275295093433228692235207395142734386507901657722583630137612928051327971964654713504113509779118389642514390647053618597017078663354081786605108490511227911278189431209735791934033542656378992121757118585002884053280023582605708287273156267412052257756860535670758153645052911715786790799170339572320097103062479709983574874433828577437557538426619190439536106607857176857880950311092009804551897040878674999337295570490138658358883547773316619815400614177240108267525954276451629902346689495142828991966328220532321730726757563260023250915395574155743882617114046026675210461197111197726993223948526504200947296783990391484890965667438949789936668814028992581969483502319154310236403570723014579015107733636170216427358878404292643271233378229201425602995383169933795816643642213177785083811989250793761125830458050699766776238354906851261560759863483973756857256415744596076199852659885966141547071385923449097634441728492831021286315838395795876640792875529967425875843698259131320251911812307265131678987008500066129684997308165527669834585392882513706787044337038318985304712360338882889170776469795087724286612815125859908130872081326279631482073134448046086196229831505171149328340771682743908785648629781420769756385209780035547767603766813730262156267841778566302133639492376043386968089339192314574866719093052152292423968411454403800810741824806030232847156271417647096385945730388223853759088095543908793177231063198480811266656113796670021160143361642340674212981429260673005243597418565793763745509375319588280022612933382054672199885373496172726355380288704651494200283226144180899435570086740891409190623983361982483229089392801618574437759814221730039585132916851519475566401387885158990509015714815051819037539448346627687380883143823553986116111849911452581098158350595283967977695011896990231833909912956075520259189928835391878321145774388498582418287206117080569046823107448212226264684804516225140599845680056146896244773829885229526102734413994966962905898792312667882645970644016136086440664872840133067761135389151518734691097422155151935841013247504372811727921582959856934185852779099663334879344601848212729671265916842271243194669539584069720759760838491095937449243301227376007191557666099198522105390572261715098755272858348124735404352588492907952542864690449612634326924461928172104670458796142961690408028494622864454178455066084485121749120328976561390269821625762944908401286090397446995687224329342953376482754007795943850873302323192238029434224344581093800644358947975506549206899667832742182769971948477782895026160855751572985435800803397040215266615870003924385452854826628267929781563607689272856922778131965601262782941572551319350473278099414630401742816339336766538698170179416742369976220674805202543351678641251424359969557033490502498563189283610889998082043545759129909705670731371063428755399323125277153680970761058838730932529265109322308845592271639630288816847196173804318293962067942932135489902898631478090528373034985916990574326172842919414459163891223634410865377044380537686993868761905037137858559258641947142509229606085209953029396909926491912715837978775643428405071567043965221275863983032276106015243369149009581131917809006448295821972145749113362302216508553159228172474356317696235908364427988769584043333160857520784839943367909983518413597169813117820783108092728480067911637574876364485038434752870751466294997245336070025695515435579845072838636130693119085604184303859311809680872891843260761465996597064205496997691892363957207945510940791571095166244218733840518671947795598231903461218442596443792744685467821618231813496053825647071354749949603440095741173514581614632045523512978311645278742563629464073258521649377328021348329847084212180359655910089944636405873018579892024766247928524186792467151038315330154936507608428367028186163836645077145144200642790459128049280434236039851036606731398865236606189410969677209864511501085019219370859022960949601523220502588509723661753647960424271471219251801301899006577295101235679503076250670300945401258727511533810063087670512086314467527070264065081618504436187432911047847260089809690506266553757334724761197273900210057317560135392746847533416109294419749436451858138350961700829490273111615897013809778452979979644422791849801101019510803197779066732193971657484340920711337653386016552545854506146613608483739845917413920289437293987595725172511923821316230106764109488327991710826270381557278893693827771973849103540990124212628539098614627133419449822006887029141814773975300457135181726717354272217763435665820861152642152996589556269619301842305329013282672193355903054598738612215230999756695743502610979562246902676669536723721845504764710903645348288399718707688569947874092193647765438831016982373642036542612233310451322089860561450343380890119428985566340314575871889228735118144654109412933193626685556357137243226904244745747765156955722725484339900179938681684470724270689980118802745907044083149917711804546973473780579621605372317973750541556253735456004784837414889294794302654703114257681987683576677504404850505862381786230308949681923338288038310657290019909447285281186268077367819347766227287047796397888816089270021572784843661038853768774539197076128236033328266454242076869611567968696188567780141055437640526119626269792918783474400122109220673927766053160432420046471909764050782847781376280717731282988236807379779433472047063850061354722672329319667937983810614090045425678865331421170010530840266655060164473615024454514109300106764995559189084164550900520588439278372027976964751870985330417485001257249170095506880349299617450524491776689614965263322615448533959134113171480905206800119043323710546958045575978499199251715290158240247554142646313741994887487772151217727741820867459347625874056267465244834820364782105631305844826362150824801681650708810667463542072607384390336456102526691310804521959393252498353021768015184425280471807853693720806172776501388071185801211887288434174646653334613685856737322900190660084959719274111683077050129539228483607994747337438716247241916918428973252712462121056000594717881802161738409227375651953842626096677977867980554072851494224566635766140630165104953914561994254872639360857545158534130501304726370509818245361502626172349118339363771627163770379436630449887623024522888088062665558667938604573158747822199962299005333935413867965765006832251444315339187789034235215853281208824482030765371338497017825296634043531094808802206717483061263007521635618429713002159800458049199433634468133373761062216823523905158380376455985391222078650328152121031013546429620849390290666305365903136883828892093788804743302282859990977314874216748380430767138488610638439182451286930721063196198522999853489423711748543939500920852279772384214190657970066503344793970698855876402731411454475488803471705740636066804356946062449319304545450085628638782913173345592320971694169409431551259622374683303217594631006117254983708748336956529043133576784009871402599772300396919933180995653925736856456609535246502404810563424284437980084417848658968160578900340100871392160693657425826568170926432310890885028125075840214711201214620533266638993268371469881452375887957613165702906519369624204632226694196574338253524583744638955328504428779885724595738787045874225444590780833394104212544314271872854202444114344944045318707904653010865319540577326991820472828115495017245552532463617823876680277500688039699905926299084228503499739182375298527990889689038477116676829790476079542754562279338323496552586029643698910548480709418688078795764452388205579814723212393791573909590534426948566455633466842641010370980727164688834896571742642497995217113229571643830148879109845159728229191884356212815931126988323384654718467017204969627381767366950606239122677919301813031399631288687430023844647974122230818813308856567699703576891912400166723477051804263505670644602763438809732452964637153440517791322934339700638175199614063005801892472038555107683814694237024994169408150510573020298932399896792663346060149545911766387056653194266787643489498163935540417275931296331871195000214775510058488137270807148440694871018411418659447095140945915115989613086846991973196846543124359418177262364343635779350151059530048915792241649606990890630278141079772899059654783325932372213352859528602493361187987352593922403390928143142505109290716522157043104767388292596401300535476948630792270313640771094124747964647975225508394126440827129198884688453612022635381546462107843145607939355356609295879740674469681760750665059724389360781687146546975319316687277744081366333449059620040255295480364575344899907730373153225530108800594869644242468344126406510019847511932113907860744975295676879407862704545261839025767390190719280147838170136275950929577373260038294199543807685670226738999746992330513251217495889921079161103982496611136813033215908568658038340226065525690875606830459923700815169988189846629903539412707614251017874929193055956775912353413432256867777421008639717268529827689907873095070184300557347331255749568840696596624996543494895735537203558029853305523488211562293190244823931059207158687755010842944695727529224868250896526796155999865337566542277774174280178394648393878629902562775050655404239897123227088492402291541714935664281885315447009945864857683358898845497775891552857181633206529473577132082947526429168629473725151056583049249307221874660439604565281408560596566339391086548107676078873450931783302313820079008082849551692779642471825815333657018214668334027770339734680158765792320562986219837643469573127778762731430960400614956817633984682196412583579644396242743826307171480897778828726508250297148119213825987867175333886540125330783727430396401776122153216846102042013793008371870377752538190156669913768197972588765687878837465355395003679685015082758203494370445669481641939285288073224519308977324206942870137453497939415918030815023836240735088800611253133379122385382241197983227421374922646199202007969669670988379092463990144209127346338739092746698041926571160458126220033499672334834022892696493218367578636314285239068871032632495245780359292779878622462897517298279836153082903123366287396915397350829872596772373150076414857096820030833450190595911552685284336391093152341559617814224661589051795758854822445526968703804348240890454215806343202486238562220656794411974965951501922971965842714200865578540809633006107584907333516296842687896885990145501483825546678827415934652872464002764767627498002570314423553817813753550891359294512574665843115741436651179563233730589338134684743269177701550463425747774567416711115054373898813265985547766893526791973224127774317834230026498137222811088946021688390256594512562939622491998789729348666475026755160195487814562713240102338856508393758057446826837328373270604888481511960078331454285042004538538755669154346272101767339713401628748501390448487831239746079285873810889647365302329653918077808152807823322505765079366126313722277673131822097239829894822328617261189874277845731307776838771589285774047925676224415712017187930254943558041304332931866537376058578889372032236303176578514512513659947898201657691612853294321795736212569465129765026880182923865248971054865445908327557299509444674019659830206300093201155069952431433852257938425673663464196462767547547927997277874677346821062790803255594238641922616971538372785096764279819811142714600180367088075271623003193638869090497123096921850231234059439375066056224652745561508802808220433432156458913918763757315079442960531379478113974901535055388312254905962140643105146922673250384130485823796184200583049149612911417350392506107576944119404013876544949464334082845119616828289866015766075458558629424842899820082970335670654686736121403288066585739094564629392455593546995488984621228454357227404540633604591416131695921469438780674453718545995124318750919738662973667839065262094367540903044430482757347317207517274310587252695722212766909699106056419407504790826850362508573380722333491266208049425898903489760512211640202207028330339352291239040110297641018550295706635154531074177440759897513842919298015448029446562086989265965692355892821234126531104110123741213611213653667572514980299077289287036893704149288894787864029890058209057334459214509579324529532727415736282065616955439994776281685141009535725549851295574685041392558611445486706146350680861647171200164641064687631865000583491583914449829768722718487747896133233813867878919589225317232286535800237901849885371004700965665750637076118182881333334566678381612714533238201703687914934501320152429056162556903823535771598027893642158104884563369377003738441991094791191016220504294002919332207452558192992585890898752392101181167198200374912794849752474810305665416147450016911358385483422588958941760469584547836234969754024523985416999951054086491733757904280883184560771507133160858812153415592422104092356528546093941572830536996555772949652918638991719962505219818704342929612359667608301455564079178037311531289405950682071003966197463213996499979688681388106195835902241178971162327964506407788306537303549926382537807878237515850640873843386973403998999163895151207738027181748150804367083014277763965303527185520104533548696472065823790718125165323483656213037249945180961367190095128744893040152677377920361616520198647542180562950453787402170039305786768700180674957876993431956315103937971140651381441048254827249090536666130816479667132505959855896608150407287990264030025807643219661972682677366209613765986754197786600200480166413302065985289826654974364967227112411761776700029831136805520871810182982494668272723212753501837789093661645617109552015192292801587233497364268397886497351485743652176068822151573738281063522716672684309877051557320503923155988801799431669360974721466738009722960717661303539283891913626758398095843382110001080926561145058640928577148154687723648632173865806761186178414838057895723951943882415962685876592875870726822885872944081613737729781436817816195649279791783821581028205222147820738112064886546423867146070220055863484630431212688945404831872006619554450068261720328699692017744975581109087527896233986573700171714631855683435033077298565109277499174284442941110990100073108012131596721754940093454109055756537191770365454187588285382744055174313687008542131331422673695181908548153274304160400143863451080855675930551011994646917962494100895036262421795935781951585391512653272606825780187268270551489587868976454522962612602429530984585469428714277212977560099967664140073183053726259121158809860073729475791526873136609415276020443977077758315373386833882044118033343230523678832047734513328282683394849801644155455781042893194192660115878819774674950769813548292786153939036279928362553469972545165640610059346251245272081432301928230119130037249502233961341355420868281477766186872316889169935841345121575244692912832929880518303306327788090099407109031201898287173621242651668704672048206321774046543371454798043236688453377021107108158641000284604916054115916385075521946065434464351728176238802200966816886805538821543605243818962006925709728185957075105507440746632012621342984601319613185316919695438029911844047497709816923414813037041636100277601226919689372302546500410831715598899999864094137810018243716097607354609393044377709583775866417054343119571844276770909249013335654622028644735101149789687901644193828380701430248167870461056774691301493574595342320666270486343665730422348261629514319748693914817423096879332122695919767777751282625493925475978224119172511126942513553891359189432700728762740167532702576587261578062532068265029117638738832814417911834180578511525302530033336599046808770851621686949648353709466317299494441769879743947358363813414112648805172022548561911514625728163000492806502604906950073320241514358151320096736885684098138915032522142816657453961657502384029868891291273691130223037647911609570307291364856206192638365644207238218006136238128534530778551072436406603588790259619112265119597021774275924490272481410485416808364548635684440941525718411688000774561494842334014688081738003714341777986902465415839561239079245411328312512266608091650053630639054876340426742793670502595177545383354117906220065368144437190211457062237042236712147257973742057731521067183647386285556713273021091355794030332345296508880075670270402528231715809071917306425833697916447313091832615256922672114009794889685914663606409578860863120295943367690787262796809899269715634946684474346689336040377448806817791449331576177250146999701240682707907885006299939517922525955849205360427624543269131073744846212269889916828945921678974628633888523713254946557047808161960479511652186930141061079515939458026062837646900917510789255573586476948937906370788167896485320458993207688165772768927857977792021479748309784364119466312492010555245402515038808868844668148968234451857602183433916376915669511282780474069871440727222038435840874074801101848784028677126526999781133670893509346842708357358569137159160404795746106020241007477495022495411368555256916799183896872016028553653733498074916439595146019273929306984057899541522499236413585111376695208185730907827758728577770780972888918550535584086875046109111235081782582412883945785890612467256204952682440176073910652896254854101575269261601995070891487820413429861981154428423072154049952285230945624127692560601506610345891692513201263703965604080040972632131519461175257767309354592028097017292340122015619306435613410730039801551259537107409560695983131053903443441578016662286996237330958245616725679621743785598623046727935198282350943242038616423184120939563412822426908501971749496077807287596550126561935510810470594921441288899114794972942527513616194400365213840379271248821634700268984798720588796405010045595974496569806280394337908249491939084801635522199224254649616746050317468254092796828589365772563995279452660483297693426671104622605905921169706801737918685541286882083189905535887453698850470751170403090581375665799627610314369074849357118827972035355407003228321953003420656279943894967594599693813518216928130846610909226398784603680869424270704953604080385457043886906575326600302853101499666573865860608251838480084707431083223798533083810763244726203182599217106774514004171358396682395620134767488051525951305285737561869253249672913591463038026958997915745996647553035227589271263047608772796520055168621275905016160231209871458339982062522668784811447650995762911973642989608834850957726381088580509239813190977655842924000774036392247061643719314312486073975409327748478492998367450595964674018412029392464187070501391476792603436872730112165616316772847567179677813119793230878054221300909636087954241705913270068114852846948774744088631961458420383122696209304090012605940461388303226269917790464358846150118919939582925177849455012306581212304165718298826589614909980120127502011487415933232517534091675985959884530097014579406434987047731198848569786398191138493965099984232413078497177324441660115314067627588584345140147142351842186748336867401599292608869207488627114210674240576776475112016407979395421968078192117000899261692192181059419828034781626118360800637675182043025871877737928342507765357583314413226400785362644961103447354188848028047268350376194017052246679285659724657255376540056955262022332244561961270725496800169072009475188286238479024089757525773632045071532004297274714699320363014711760566593737309285373762955060555911399495992426620258932562409596156881188398509920585681946225480646894102165140612999105067575380520766575684147494013505010871198578907839488833290161817922175012292209690884089566753999070394669771455684845342681642847637464812959121301577607970976801493963184386751317640533198345580364030123006007484796973722340809540613781684618434220107560725050464715108923930381462983368301292017377735923029117178241794016845660303773822418258573147690149731643049794034079505129805059459282035193133101472983917442946243406382269231501097476973527860100601643842046224697691015344895816787842802465164154080540384567672599160104392652112584658842509219244993817665769172505355453444456871050578328142800713954401006019928763855110695415807536328016812406869614476366505909642986347598802473466985174005365191324220545093990472894439088950865430938525907945089166873158865489406099471128632467160579375643939903193151950721318969577545222827398708041140991289215658407554001907507760596764888862555728780365089879364009379340925457960522992642347304001976571086087724148020724214440506852278831296279641508429923522957967933116202781422325719262770041960154683806915388405031057878654195588851272429381248797134564593162583399710860923262255038231205440678259521392741469450919917110388665393884589479950659788827871388362844128126358317424837935175980551291709879072156944748675939985337939249594818680771274758165531488811106262032625047352665154841440955291440228999280870981082775633123920465521059058245935837008417287596803725031437393974855521785606331106615474916241769611663325626457136202333902317326737254990874622778461705644150561024765206821213011104350102095605019394616567019723032022282136334983287485494785448939181629285038562844285343580446955290626922837310851810149744240611982781169006925543474244236187499771631688144180424393863649882423151637104025318743299638804706081534264828502892899920987479897588362576999740077919894703695217756126287422878125938306862365111605169642802853292880819884093491360683105696274590011651346748589075731323459500091968387344651092798135572361487433780450656241053823635112282346033223685532619618521862331961644559012597068733661848408759851306170317876904351804691567806058567843108745888903249847047611554239785470379883211354126563716544326497126198048221084029337113514961424977480715014999766337032531549621746370670939090436921795500321259238421252328958830217236714876812041353276525693368330553009454208502019358198042314203112010218588004505746503062137626600698330060710951097427530102255245770854793883765829780353691288978453705781050689636216916059399104243033785541205172260386262327164096074844268090227705620944388495048831808760048232598653857082132922240605545672164145491135120465775938197505551825936177819838080645990104880834557951225066096322917407259451737918578803158636596085013855761612520236201155053693527950732484450159306638790404663401409354295650174395544730982302100608707743961501374053860989338017989306125013395565349664323182222509576345331739979182396260688534883862691985361325626791166709858471384005496436720127429902868389510990252562632737933090562383598630166679710571761171820449380986655014401648334192786606727627494914319679242413701737012178367604810696847685463441789579666720815989617376982209376364844019554145346149781199110757184522409245461204768275195396725307610319295603733314485686956749831053001123883006915217566059366270805096258590619817927885416540275214603473419677182294509295128713530768199608968749842914235947324799668246713455958677219595726131478577974167486286406996540970661202761380285240277813629504669434298314477352312848640250032430684689721474585257541244124364301507250305558355045258768075938946856928178808604728046943252780289064180347587869509922140207553892613883485718484466073194366210260628440402475453766209337878863860380571021577648521233538410125686372727790013182838384191198131243622492633592073383406019505217160449794942435400893275831952400951682332042187586584424035218266751376958229943112126490465357200063747232737241259875028319414945778106053615816840906308406259470778163628289200597423849344997804505327409306437413504136188479056950799707887344391994805560000131353153293568799594555282244295861846059904045156786705488055094161549927195502778394950983815486063190897614095751487155805560340723632702239216362908345747706732545542831331000183610728871711851897522954442352899413548871476537111133414426484362972552231141701473537452208139839715428716461971727256800135275417112022093591751595080407214415484677739724276637249267446882147674166921059983372156678675337322289299113476984211665581056868054234624382598196610493216376611567582118536997859716768491153461567990556194673412806941275751098871647537987820826930503141899608488737399705652084677722302356133563782519671758578772174537297533118593246250046551431930714704759759451034398697523444614579025790950275414342303087836549712479497248795727503700571399886666232489265217373764136501763462883873894312151030589477595012659542677306024972533605993211382614285143304764856499304994233954383684087335232181768922413034729766449517897647585133085272433520341239318073751366892319120539561102506112050496753313004311022495710418366092396450880507679851797910601509207982771059562520395278907132324329546815751808462130330439091761431020506389310013712331415646173991006023969248673571031450724478856429509150339258016866802417746233303699110793861131998872775299186516949363773478558242341747003643439361416419001988745750766281187913276336200940091959221079092387366706342118430516200261953527597060110031559029680339873295087065237021879156577746208600276693678589844290994107749640739334289722881401248940768307425146970449417170307746789129576340638171710419504925409907785644303371266091304491826897175100285511934043218193768392390959945100579966071330636763275355302253751622801104265303078878532887864961766433392267300765284975217564720023661850821392814977769309895090287443902918995165911725069112013772907274964321136466878887019556071883061347209068277619151850811537902586210189644756151331482883683624909503802823631738139870948516471569732825335744594525374513749799838768921598470981544865311722459094192528051069511574606159775580252432193616363598248247700585201476436973034186186261268775934860922702426359182054036267146754673582220203711170328500349736876928625290226059201125819312306041568273048020511331204943295936013599862567649974338594682639670850557498474552330977141578277219450356551116721983144252997901318485344617839000858278983892344593188444611790461747624017280325864750853528326614202142477802239143023855809718021910054666075962216384980030301247054834780565577487732937716517857119798737629501427667218567737988017254049486776174741970488111651049172959823091073955863841301819776603233635700174340919715708045919124700821779013675611261859674096061852816597470867033882321527966899076140310461613005814509966123824743549210082984609876476146547590177041246006875242178238903319574698082202864950077013040834819839652562867453100865498593253980351814609897048385561749472263167074503324057792185535280300489694688156168650451878822071992530508624048468752594517302889720967366710933866397522183667710778421330609689202214160608212720505894641877644311643884307991282063665627118376400064415060799716367009291183336917518734032700429220395662898238178736178206720518953502780908394268503933185104335994169570672036370138776690890760429556175022857742681754328574671685464455686756855665932409121281728574803168245641163429602916820558031428060099404229294229517487006160121253870648376798266495480181427521068341551192867622810584269161796990907784683789041346628521368388656755830618677754352926097578973434592050218458012844925185553745007849906696183926287253474824268660451595157836135965372795832759080518631346659942595261775148539359935430240028531403080461807978169520984247242903533251716975122415061075594329335146830151642140018640459993996359355341655271633210189518887132571565112887143465220697960337922152197446629024531284789016900914944446703323133127119474095303054736960621513235078787349711864792326312019506182118511854602546639984071214240478233918395642489356728768980166976273594362034046768984144560143833969018875711417512703766366848988092112499270469579453455881527694252582951419166895644753604944292326414196062453293243852500669952780437843208184673357323852168236180500435650224361786021551035019650078374690736030514229568041160559540313236617833436289239589832880461790830072304000204342711019280981709642557986704805780941935553400825304629190611603146608034631880645968517821071124089193059070105636697397256646890917475655168833693786377893179116339736474537460894729040530565978424688326899123573605234832200774009800979868336696580767693258149593180152992472207998636180099228490978048182479089431216304890024324903443092054792075751337522336185896576393770555041005034064332145813159243468267021801571186294180075035931836666493175594841803966765156767787177634292169893543045445008214253660385541275653946683195150588696409249005081028687093266993178027899485258940662330752300177682382619756569207918103745580478060356289693214039488723995417842000431073460625912000656898916105536804953667029674429071516172832974432684144265718555055874952881044577727994401700396628646555265740735976446631998241795412105240582712030134052125061722719771691411993611692405824990707156113382910137621499430704914217840528604543491965490052132650169772784384661272648958949853911673388893289858869192108568476813202153052753671691420032633526942861047883975818038280488119303526341814021330679542624052373684368841386523793186497164121813339834647455576688065607684982425074260522134805514510288190666929563559975325919121445029816918864959684269139066960496901555416283384652697960624824840228594055305354016843253993622644573457478657533092951350973249749224369839969560609372427167984794309914148471817770233990957778468126601364071386367494224531752330854450909183249113683014793678926189115612880840119844416104025612178495585029901406724258778013220384570056958128572883316298840510895143094058240733036551995018165009282802498495003505878829686909656856621543335779458836229172495335967762567561144952719971375110316101055470552928171053185933901316372250632832596239976957583394533443730078568216238259278939916262991341524290775210802940646421498223760823656382543265299178303304453854707548078247605191435695221171143066167281309858920249287486615181380008085036460312708205002511017310016036715604178688747270142700972117478027513577770178115103202856528393502937990299160701968271226938027110282837791481077134049980863955694678895533907252409144421210408627767630251165625139242230433493062633519706908474474472914121370103402892843118702379044338616320685403655171038745222868939495266521838305506417140572405859674540824861464219698761152996696773416530896665231495286282831202856742800025346852289426413779644118253818226071769742019722520493401176417134996843032329791875634094832958695808681155133961643535534740708919917112816925135359365669507336368025602362050135107584973809582122362766773219409092850929371986147519591174916620773612605877984349426172468631506531549123206719736910586713173794746598958075173010828643427141433815279871359298608854323241644551498157439347295819731516966034139803064769956571238459806044088162675617355745143815841221873603765630889134984103358619739153733456318129785214674861768250642424546748163114963494595065440835933787804201647501503551577839646386136293424094296582538117892591473446649619053872659950789986360557979119893243825667433508852234472958253376485939290614466057820340581418524615404801383305811779668532102846994039838554528907137866734444615257787271633546163017933848821911559198969870261191363583424544969449696356855734804851261577380553327846537954940339985049366237521664927372828900799319472907226998994087864847728283677507080184620135772098125385765630207785200320174772734240650189738071022258003335177138700760913167974683884040052733743335420513936308718778426838269042595224956108672574052058020848568405158865644612962584925463460493885844742798056477234254221000535594530784754876608426116916899479443960290675343979824964292239362903341013685883315076404779570852498810328634591701311866956463865990003253136575707944687439580612463846728063557456028645723899150122068031190590280108598243386135673190028524263769706331502896322277081677305592458494810085219113677409256964768056117121931194422105516790810339272759124683291151023902925269396807868318734588231153345867264032033897002441948943364319547739397049106067066497412380958224163211379174913793367741065197269961990866925333502840913939547893625711606660499366423633102037527154040353479798025538682057120232939169056042270304020469477598195135235104335972741115870775165740786011724409539551059898244685696777697834489699896118359274450780435722737364752654381727093984533235288112805419143129984370255316487015517078115865980842705340758991719556677101718480854973688280700018955478283499036481558328763238888608853997639748778837974285745530227073826526556644057414350291383311977393016166717474401481882905517625349893105263561282611472835117682162550451269384120155502112418684871412221690778695768616164313885879295592846434700781281797181378046904154422852113134904306300979486344341755486375747719835881140351956774715393981217199280550785467325887415367883991346054288178857497916125702633939957317453519880720667179592987518076067096514906970212305632734790877024078040169243202563181983876327463761270063074613974816167398327227118613768056283280840660251714686044451906500903815914696161858190586637170974187603152185726664252566613600157698044835619458962363994094724893731025731370248677930836867472740898779262206820702662827424128284874539880359451586880036792292058667683759449162708043914225742138842631904658844278855681351337212923501147911212065508540537664022607617844927509059080519684144199951438882324141588975737510101257100843500189652710008815640951906168495141689163728626872011348323856964171085269137348430041415841052937882600694145711690175876520075216944945906676641452547678150623817150374392430704605843793134872510890996496800582967997387003530086205972598038524425830342009550726208872164575878911979739602168079879929391918043681787539417107554885500325613224784550590265310165376386575228581895946195226261107950164622833335298501349030908209950608017258425346290349573805932826137397082073374403999623816922882068326396662604421641716216409067581163159653354437002256722295066653104631843700448380956880596089341495167998606306501283564955757791337921607513141312799895394613086011158154260590397359048277758541880270735770074272539031888127079221951482525040613203249589476682410392618630777400185197157831259042592121408582500911150897246764296690762624979324667337228468284470180636351559394280028992599386661725671347194043165731619999329102200141926629516342777753664985766370997347056019820940179956854685784480585413403575819913191627227247660930077484507714934396838742944245579798748803624639526017700112343200509077148129098155084398245258403862903339927014147461510968847572744351163334094311785412278025948162885068716752516940432177745122245107782903108857294387640222599505569979698676767363290386080345134195126472041597046811158578925815383391565796896173431898165254785824524022532668379814653621499154724876610949477150234080293453543195181097913272153794038831245865362117762605838576047096471285915602591497484955948886216324887374724433366727151701621706485873036228523857253717341677308125856009520598591713448749769982232681012066263011466418888258947624209041448091944907663387714873784135015119556835329098072532107605828446079850325422946485550776770279333042493142906258040531216284335005700095539784440314158419509622063452244094580058505268923647296355280490885881806213964965261311261617235539669533543423741661259800994439169062739436937313664057575680754618425438334962543128930535538133732561436785381947079860286715199801524920825411878366729565767324358127018496180859702022618376824630250859272035878581020084201418832174660905851152797689976928865709027440374930225739102646002459076447746881687642977347246962166456977838164407356006531225138508323363961946261327260384280000738483061881671361665781001845114262556207742011759093439590027776378479196498217599948153383450261112663276831938774770809773999419284804291199835328989252084970120944864378625540021564973556275456414003094827852838959613700264187956958045856680270363162480670723397373703695631920290917277677022376324811653361682410471402285792482514605114683080297612403799511554131292467293095454554543892012911810848023707747537134525093274007449940898719865483509153181558240260792380991458272916088791074145084334674155225003428018687688860694078402856195433512503496148644435551504303001098016455926383353463237559677773956095764306999588696373956344069910395857079567320738766967565126622913999259449581546778927149861850428694670052216906190118402626253645014012220445465748821671119771723612552787172053250364114321071829289535644856050156999868453807382574423027133758515066509955296354930973719353687080061055267642137264242875166599371787103330827850438223374643176679094184335507509718298605839161918136667096756242312804048769120852757061311299983617512365375081450409408202046143727732165585352031409671010142722044245232305970855209782822767206310315797616689925839517115009947247989886710247317606324566002586324593388872104573807493123175007804389390390766568778599731132472719468630342060852961293314006150268459541938120810618939274041046129604744864573114783191375564251299512943001512008678420477332999670151074121928376881522639061687637944379971865187491134441719145859991667774453876148470032060335963784320796815576055225066711280565795847118022487115673958405178757433724407057825661627434638862105217222951713480285889298180060312924862486754000534731879446810684319752460416773409963379240161415487086388159591107848842861209469427518556902436252252397983960458401886479507967614769777507386502041237987034376550895183302682443036594640409013078413347782232269686999547652514047087488627834823633185077032583399685046917787518344307971230782770581265010149464691236627700934893898138919185325139816040323551067356579543781527243627830943333679247546292860505955622537588759405878591228685691563893357723908560549280439421108352058720701572298796852678147159326420719480182653067080989779704780872746282460639725075113209729645584371611971654391158638591306458348883543712651564293812268452189539202603100675408704840875724175382530970899335043685346858786403623682383946015563520733650187088864135697769516476892828959091074117966797286470466092045432921260451713885601033878344626340832946381244378529452177184100760041707680762741970647770155851614366721244042493787362842740009237833997600483506808370887161135633357060219866453925769816002294082053589725093727317596259181864603598693480294367311172937551450952434291610366368457879259486563083935562070065532983262696932625135992884337611999763162985689324348739521616720002292146531322438052228893312290123510208849598441279021751860973704107773571697711970136760577644228084807641898003619793680551243731681945555875657340780103600463539920661391723552970856325561000359906118371948724388518685124851244873820611036592008895841859633365437933220589956504413223529613285949807361427519830647889228219487950256605016027332656535207029079650940438649838301023662573184606884928287848973631951787372681683888130238651121937413323353202684627410146904521884207547114768713120586050021367026274191204276206144875855745777193264986434192620106869827537532882478881054731720448787409499486118111420210840521647333198451680093965362119307814872073382952103617971048680319505013942020056980865355170545203376938780252777763662763455667888671922971102351239699208393814690812422663406704885886772526623452062230917283439710709917844772537699637353458879343775957360341919629108849012408359024805664810250857980406081869567054488253133274340063712294972539828974059989690326278087249825342052311750257556592133003818925095632406749964275291430089517067301550948423392183387861984186567565113321388778598628550093313914201898640212819030285337107988175664927228090082971049273976877666378969602767596232669080287587877303129550818003727720199324615531478643666629822505014440385913089754732318418215710673440584138060105060965970244299829917447872874178305696152155472053969890129648336681142911534462137405984038708841543333064273321216910550052538676480812072874273326782764622174294103372863430087959082775736188789744196513305523072573874190927842143938541425647958055413011764867273439015190973476945331179678868009249430554879687454695239238958549683410145451504103323012220019041189231169908796899300346813010203190476379924021050787256207858917953026393354561824724553231485739323089744713637676813296969252000817223820231856167955840080839922788126707696935929932909078910243484108660573410804791886591354298131250935803961875008720251331382330066380147525131273424712584428118529300994688326902883192769137794316138759255426589206006992519120502442564375315286198276543046769554738523521780925123651275789288098360866236013098156195291916832434660546974570908717893608907051618007113656123377783170826258597962687993989719674251272324717706701602703410258339755316372764013040045730271240440296434750077598342024411209895517163059318384213316522696555923803042460605573645139589238301763593378894178363971523997735492970944596704993386322651178696889115101645026269780768574767261315263470836973688513649056916022288242587058212941147411731413907161577588735285736111638344587092394778644939579131426279588142089569274899883783700867935755314938632294414997426638564235104632674284616374559957662163287240194396420337184995474581533663146657862400331075151637528481697420800946253221654884123698966073615980077146551503069585394787872742190682731505882967989272446268458856364057420495180718782513781564771813376269565198630092138323053374765209654833970850490972866071631951629881627757358680974256144207471024833786962703954757205890897083628452905197150622660199518766337174049940083691622033360917971151681749901569577604612484359626515318974997018016325921512007657499482287847106582881908021889119889888779042311798538315561808145568011972388166753184667632695311548697621441162613536434499115083566977311683784927260055531514883685807439882085348845099425735924696283662929375152411076532099826816068265165741568263676148416159862110343783623299515872386620618137215349144408320910757448037626568775943120437121752077021404851924935996831249220670298624328282237029787608681086295527815900000217522478754963547976867742610401868100055813849517202349678534649306720866974433360477403971219788234909502341371185657894821115518774912298913883433770908351303416944455264833173585679259320347666570659202215233781212022857988440368375835619240262459950994391590256578440518661765436776714488962935414976718798955176582875667845223126215393443554275481820356856402054173341929247612291692644310564822345006289158291435697715983430957961189726741151320436485358268069212371420556933172409850023164503651171496155708735830611434922428288912179475847440938692050729444011584382201819139673116631591221719648794788493600399559011284871607970562804800420361688944579605149654635363532100528931094147484492332900086841352311220344835291776405931693221824316166147328036407989802245828307983444367913703920649825075545732039339832589303751870732294164905003770388347982617179751851658095283675123115223613005275793711213300223091624141474949484972715277620430041041924857902454094172145284677573096406865207889636220761033465482792158334871611138472236315280479972275510671304611712133408188316879847583861434146720987835016154760549412542221279469643240541912232283119093770858496064378557436197320810284201961117911262792498602793502676992399500806696786808553482266839501632082788076205255799340872799038987479901323469457342456320080098198958369625056200267092609267048067771504273888153889405542438280399875085510220981960742842237375143152359923940588295234460826443225894265730567312848019458000920043244813258280464138734453256419729704203026499367825048712183441010170826519792378477951949557202957833596934558750194620993446667766450266169151665779918860681062649904964779605303275750004807033770010607946258150829766913670097851472807169399982723257270194643481164688549011689196508371401071303971947263899446314107130710411486657774813984606437454210680430236362811103725030655668972452933062010820437515445115275522964305445682058346585380599979724634957834950053326097683585589756735621968251350920557741167876476155412426413354025714538962706347823976769168747497544800612939969483769352772311037914649071898265662581686855349105293799279567836278610244596137479545602016176013772592539584181159111280055272713902994237515185167534148268982410000853843848501503807259033204602990777208012845508602115964237465115022841538538494726900745230284138716362305112784103335975096407933185682376750125639871227176905406759657166085826536719626511115204416078436844893295661153554372704151688789887302315592870146686090020420693139589305385106208573058179515803047104679723310629760945911067543908525774366020270393389547871586574841093876601071475420650258787349687122328756379471903458072564932694124095105919373875826311355828324569615915021223126972184076426945705700183502766124952548431330834593525794166668595466206672294890123970813896991601283275935395789829178447128846014795735909474563286629596371959606657687578152287011517068225205491485644464930118390515641490896692368204474937515855798657664336773327484147612516172962869947950390757986678344764200487978821792990946163456428670041300832994233154775473595805418006422924837977108226507573270653049319882203058740081022847345781980236763644400728921830365035413450208526505564661030370221524903629803716974726396771883816691177054014204030931789293082494759858823833997910033793917709165212378823813186794060405318623515564302057099240559397867693943372175120064452488203628070381943223327024511986396795279682310144336672612770599274586522037751970247084695402176706371466140877363348467068975349229474565608162594398743086164024531573652720637230108039685505785156725950994437684362577812989552775422218091410135041533642001434174406985630479516526651320873202686450944896856798894750783706445582874129323940849262306211391619480342062204056472245858097129174277760746199294935341820070057935738923629558696910459958958672784736330080323524666344286891832585346345342472488217614608155414778585444870452492504594364346327052429719397793010374338938956918866439687760919429131717334674037615037492243218323849735648595005649937965414321541089364206151009846224722491143844688441911029449157375438633805225605433654637201538832727478420119840256184493760903288052019888005285998449283869607630167079454044612692954296312091213398739462129737048815137993165866830123388373973823624889285605017898336881043838128714438967004776461159655308216919210444546435843636235447027067045425373874158424725365748805359445604640118609059321370792248268148340194289522078849253175149749173294496300854198796746420185227422197721484369434105514351248658626237025572584916538187619818260972198581025177187282573677884628008066491769430412696692909265038625079107682152612230206752075936439667771722874563554280034866756649224313110984327722776471095200265202171498589793928040571023981872008438585417618917925041424873326505853206887264437373570464193158472497054412585611369473683532122951021475616935454384539402742143053263884461862553597550056858213314993104799372696936650500286414009803270231480469529786409567138316085293060740456490171353009249107140158336294853575891630887455188651035810606558259733574653929389277252048642883274786650702917561770266377529203023129886484516544757959506489749265579666833623287522262736394037691128809412746600603526348206568964565728574049847839226991649011830745538598727587831713374155128830120485065934558276810112252746881814972637949740944817881728252670551182805487651102233729660756742445656734680245638654154677956600422882096353095073942207227660748598122033456300048550476831047154200249522623374202199994528068435898279749347944530532964987335906082990119020891447543918544766988074379964236787071487821066906931199813955590306102439401982538757956006169715425683984599953345887008064709059385127444499068725663104159072127639133160085787755704414878408833976229458493408623671421023020449943289667180655404648180740417962816232021856167608606028914772285608777659604112984833284946818475487143457786669865900883337039510217502315039580416603195333184205275733580902767581445562587072784430611875245574948301417276698978506345911610644362527528753474881138552407476382695939442362481887717009398027670552493255142224106741993879234270608347322633202658554379457104099874491478603251041242862175063316593241224480433976631491039355110718028472748781440183206040994625310770680209684360047018712806011389629794704927203239095833072569652274053529072597505884522308565588025249714301582570314215282570362545880214657457110320687721228956254812166964735025290238524477729710379372370955015359405939017872308871900390287755542184284729263612250221548538869084980962079206889309603731200962761721128251296552100990589844624558427876709786930004000638919478251164135327559812976562205868954049387020829728974925149220962440666746832081466296250800621976414024516636507996277299625725513972253130130391953185200759682705561049058122698359939954198620155478983130336149932501491551993016949527930379946455799539056287781555492304801377820292939305103711681292336479693491895783552798166936756464629644565950600017984469486300319999706964179590391590571140019946078245977524003162010846693991030438735749944027441292958148571686641627113576517226237985457712943417713602717863769310144841781664487548881859030377531879791066592798048640150982532034743452502667769835815249423686866552859539936076436315395856762705326992963275096447454224418467011661500580302082930168927148901532745579392594027838755700187779682463181042158405466428543014606078836873481123000318783722456487745394103103822466820885056674170621388738417547402721219573626288328242440879252044079842571690063527326860701898448384971209154348619427641141174732076819250302764012228271895100944153574279847565684254939530189175492321547566593750814669101595059905038418758836377882151543074944930891640752029779153740937331219985428099108276748342735123477771934097230860297017255167096932454291219534442663975318321962440658171203140233724370435805953764489188367093122371629770182007462495033056656380662231215175886483643161320805521038366417014814237240063863193159382660881548829990919561202938818312380963654539476179247423670080600557831159693712099873300943956982433291386991495023813770109010346644192541251552393018898320807512465037971700039933367163785749186387602791842483216274943002145047562218753782873245503259130826684583159414480682057986217633244760166233161219614100914872500315984759845468494029623633492301257925055547763631955180110542543724736488139941150901903671432626753121805309848845616906820183872152005599727221724598271672469418576056820500636086866101320364113766763956794480106744039292045869700140056866961251876459986706126415467631818509426969844262647921790360358423420925903019878220129571442136261732770506884878507653454494787240649761733120146374164674864738973503362554038035583743742776041361494831133068517585756657729509606991388142592510456969257900377267717928132910575107892278913281911316345913112127163479123209589497873747450141380040008158495469590053644450815069160779566741389376487716157364478026097765323680911304999663265753001365869411733133991510151886638227983109680187615500707153371683528522814810492252293444060604327906896928688834926001516671991793676737578457015358146905705471766879322895220708609104254200256810267765118861783764842619793971971402540749786227409498239620387128044435360481469649406785247720432762003493086490091350599335244373093987874986103505907951431475736593545794775900150539372111421168180524207211639819351832712591655477725281220846610951158471426633762609577973012543632835595447740170785574302555005009787491407457801845678233168457366554323052542103513096983405412962806982587281332707212199573550071451499675914291980473876869489913327443478266013663189624971204159719447210940953369745623557782180035631779097973674259113266803139930010278256479274137150441021581311302203440303028475740391631671342517385003627346871233247395921953795692858261072985532799206374680524191451047806089368966848384170325171749490309302835782005450299350059003928963771859944448540329233661176323080472930138185646989294342445258883437207493068321501770255027185747439267228026502300950745283239935225521990806071434075831767194013501907817052160285846608271704839944029970586216673590396210998202146087841106619231180657275468543998428285133119843191737339753910978761078380220837544341308290781823340890873627199782022368287107435725881517464560395045568767666580825293107989225313979473974947565858552900327895782860320805176117793596914662025079161630701968650288906516767209749689182590488454924120503485657818824208546351785661657488036606553410695662407883421404967410439013093323564065385360866472004216478179033623098843281481041714173177523921759677766888758992640354793344299814606303384189713741963797796701674864195267618357917724414190240343502685774990584121740208063858631406851858926922582739636933169091587597684663257522417690315024736493374372078775478581869588535814539652035790107042628050516286918146935913546818940380380439281976293277416265949907899997066198072436081103392307303427506620892836165829191326524949463178266695256625790302911181961400028624339579212037139903197098342108910996446810197932581206693097875398164015637205858158441754087772460447342666070304240199754410732260078336468098655749212138637422604594444758324736729845941289366575147671468142255879670386953203838096235283137372358908314809697283281437452258965696906427123562633664797324147803351073992644130086685072837214656913795324031580293615539841976599948458397806246698837646370706209592616164863041935537722206592590163966232851019093564587315616142453704508526252964191572525970372106097920382733332939029245018695499616924977363918987194432636123016122876950436445395623492590758026244703562770152106901105633657725749906549666155327626059070872741979363330371622222001556411627054415578550540103916982006436122187968837836387949106042870269734053508563377874691780718763609654409689031278220747697176194911175521801436298612899117758041531906250677841966175269114851322408287722910532541085013477922719206102250520028527991820462366434731142778926330207402967271278220634391979320684610270372407999857403140376080975529108654367498593323520085554589918137643361980438539538147741158946203449000014559914541676964513779401580142657944707300438918254327128563605954541441115047656430212892132488257377771204927338328904842624620235620876488672599453767357145985216528149794369679566243879368541460900872511694658901543796329304113215434374952261274077616396993706073949449009356313941408509081152691175949022912467445087923023412179146758466228766235021872763701771023766105902329592885423309135527973487299611796430154553600961629514808689395301250861437751104845782924749268779662461644146136837597795948495747569325442180226967009437669028937073819492251258386176356697285579370804136606504545946530579870755555228576493081474417308758521723574684739768779212921518397856790745941981131934934497056381284654212359640481507527604479029994813764444597249710540072631103163382866533381575027907290766912461655376132970692268631480031705610756202330766670439317711514221706106265354953118543274363013284950764912261121309283981308076155897338333498881494767179162922042845835593369876369906391949987329888632262775754866428253054427692806719283250165798955709609682502486689545736862692583261362577570232388623082270214997603155095562139582573827173789605749351021819172181621869121113880123968228395308947913873092356456768452026865208661069369559935370096365940889945106713145215096492062614758766844044392817433718325343101018105198147362551530332311805948070631079339466503302464464858116985734210086679384634964335148773255145479161012283309155104727016593897394135271239036191344435981655870630522210490264771317368151168108534072544970940851287272030081010383054381477734763146731381720776625852386528860541228042336916055417987734242774969514689230429133239685276251752669615851846211718870926696773527896205101840361855140048938710275560877183889630535700027986877320798681273119805578837117800010967632330758585460486104634114304358201334649023892745848749616326370583592310223901370166397358982379132918257064776058213800249620803004478206533857788724821519430128826534966566319377482084404958885577028388878666153823553799034987537467062583482504390469183038702638703548973751642638130658532043727306137192890235195839191732852240907135599595841208118249727157890572168527262427510964632554509560141445149723401036158539648694934289706707682980141273246191321275059393110972821760754732254203236286944494008848742618607438165720321702073626239314747768004181238837119587045587580045471985849924965800561662932384821979775764948934931735250027839837804628899021989082692411694189265410625460198241018527364810764783897578744161649268016372980258774921998988334240407636084292055194088917555557460139506471788699988658087255194705177125426583455438208920068436500226627035430655504368070086112495135137613257414276508648041709384202674771220043821836190717639095384626671833105050428297179499182919918219989831342423166584486667350683962218464197613866925128395680551202332522271048265758886895558835304760698711637878218650743289536944387033728352012281497550763017408607156638131065751446024233389307178844240373593533578024127360841845388760896547143365226920033215253834938934540634242449956326183833794859598349249457823445050257613777017273680486971590848210340653779823374080991095290805279986820251112776066846843690413706587173997339804985814862735759730132804386794981457783715886217725689603415963148543309116463529119951719049143932419358148108978376733179177291389395490385824950122740851656620263523747815040565789532755097169454528784457444941630665627303070276052696820671982107805885460048157653403137365460541251072493576612677961221059474099077652999562029207729416107124826641651319226067045616707496038402381857705091428353789347854888069525321552299782947430899461860900896835754725726941565228437718514699449579566299139447629525816887757699841661634973764154126572609035133522078915874924945565929783869510012133943676299869416628478322621713816574396165051799296242227134462108066119877399023298614576793692162261100909861139734020729832133932791794459716347498886126264527300711847155390351756217106022162450116592001036924699340782655206760978850233987315314771278826474072472773915490241383059458434677993301604337330386751224218032568765470588355715385300467910327755340469843316509067038093051800154778365789100513224887776982913456627910467185495999302726878551403054486663022492945027305928013927271995581597118508005320534570838646500250162464288762585193651186315883657597117215468476864911204914697436743606838547463130694114355314230556049265020234294997723458730003571307682344145870838802810877842381847211963679723754040989500147600853182070179059993152858636786554720891951205589094688237255965130708128950899161904620750782442439570219788952816946017848509689837417569720439730471574039771992248018990851746646051444348913880721534182775488430822966098085518806352372582922123945264577379793718392221913395546068737426485371530155977075153352927502020411407419820970886578707578487355341931834058516332319036886499144339565135144933185841188793706434522094108259876211920175883897363395547171433394801108419408438592487362921999420962395711494823502565558536583894842067206942492149596045916210067400536430172481206869100531932185401628275375474336974666024249303751246076172386969038491994187514601128577867550498544112275758411268149660987154628748963062349904887848937823529755582981025054876350510886525753220584531409447982824412980701895200574111802066677038257544427709105354721490002297931430685661419777577529086317948880712418628731425120744191061694575465852724822613779248440721846561312543266745625628828239135078280256858086645637887461550194928014942789639478220356780506876699446535745730616322764948578072876783095719727622527536158116475222332791836699796355296607067179677171594807553712067747588601836114697829389414589490847908407341244603377933720730071847429357696251832731714445545020605690605910201756860126713724684406004444646559223717167616844246233595604898694701227065277746489977654849130855005907562120029692820104223128719845399510306807615665661843054569853023961911819808148283833334230095379502999852521252529559837554651830812448310507175608515449770466641871531506216997719863127214906896575352195373721105342889668863223262691229015831827020786328824949559897115658998203095881477280308935361675418404431498896779593253553409713212902603413530885309660618182239963721494368757066465561324142683902668575229513339271691720141184369717265970536958737429330681681673401504395349630547732275016929140091567278777773092606906888201054118210398851954831626282217166737614485849524179301298248617611737716473145042178002120837160594261295649945828167726659675886424456087880920435056838494520865420332334348040740657285403358286076631768758564509480907917030277068126615084475369677421763845189016448518055093881475369937249111357236053565744684942759599026096937475461046987159699891632834815028032349682551168117733301995189126538371821066838313326017217533620525434647205780473760427193529245971923549613886594045166288149860151580747418647900900108870341145222293789355884180525500078474598773490835869898918733102551768063750162906663128904098715675628042626739543332941139170774797196608250751445084931221002835448159743768862834651481217086141410423564905939538294790154466611493756654330597664248448526762721654791023602775978263537169740283763003082770793002798784784436462491565999467443817543660015983957574458116725065407817282296442489217530810279275380089431799877987425762252922479410817473281488751756440123284446735603533827040107261718468704858948088637180615409860549986042212051377769104662206809648741943838118453976213458804835692378733066167146004965376343833239319018845395467712774273691007706176083762315433615519978674135830049262112279645305186833485979878636097845938019383286775062125125787611591908229879207975607550638575184398965114345135426377609178817476695911648852961496654673494954380071671516074994533449484300844358980663385453994176047668055919863582093414092594169546355273839081189430320061017188604162863355891260321338625760439881277520253597245497847748886992406604343594275320527489777624513486777405875227281130625488162117641976192767029919004365470778791615869323225297977975366597127861651480791758355292193069279308402480244679387291004402858707918406728136516912881998016586002069211838381352556760702016493454148042968657240179815605381071347202045627568777887888568586663716543604023019804077534748272523429346952687297148093667680801275789189381728720122981372863654673373746499237190206471782112933253216389251377551552100135782973442685997002971815901705734032650964578825636694896010428322112398943619129763041147374579288595802711717636852061870473463068546592080872479263728381828542690788858933872596533227207212688877953133935279393955471479580383337353523189066620653585068569911964994770684763940102734545204400575148881342768529771214408623921381254411544936794595874097020204886963050730759991437476884981376153748281604327411531531405244017549514889699864991247358118905212299781500294160620944635972234643410768096469077336478773680705406962370100872094766716475036000810063544340011845673816580680105775334635615251814941928655971992667273658044668521534594429129110427241378792404987731833645720332357767428115744471427560255417075852009380175961382938304440461961119240222257132916789331041374041963275607922202837698513945533551071120145636923181412698166146259618229649894718515945749516210007290152760345315245756371318781101840255791214256107221429790967259073219707873059556355203256588711380468656439071091191747742497786261618615634255393581931797983428154746770326655751744555169680942336429368909790259599924747722824276823414573682185569474580644100363355689550670972641477241027597228201704827058982745643747792235502544099740991148551754213906305481596920130777218405147315654741444749055338805026508442453033882797491433869385881486777053633551513793845517979453564663164981767096551263473395587547305482946239157858031142827402152625906532190694568736368528671889897928845576511055107161656826262387545831952467070636854230709655037122804793670952766875509902837744786997770467038203669354721643794679901860717366854532648471060727965567434360296444233023276282820996054415086001937965365066408120970680646630494880931880276311151364345366057151300030491104626976315186778315127477488254827448364341068092508419266372173974025282212992273143445267623406865696176685061280520796287968127035724507593162034666714316136875910678078619292913408530662637414795521252630494553616344173497350714195865076006957983932647024441802245786535808079381568251616532314434542670945679315555117448750550649964803234026741326202674523931277611766767563000729565375287539058564638400552827824290433209634644213214178569151696828233036846190199659937104710096955783308594811428800872802850600480235338575056337641490439232219607476258678049406135523962978876197939197223546201471975043084266190193360772640088071264072455249729334961055318319273345148763707247201834189091268313831027169254838535754814840024832573640736086867306651212879402262015538888604006723772788794647021538962029784386891710150841559158728536819108253718891708934321659419864701702687651786353079241464016594515435387354149492887748769557824078941429788670512951838904808950562267002380750570870778994201370448766387197029097757752937956609857119868922488746202038924107026754404207165882516844591456463668907217893158636576620249272450229119873681043785942959331527670616240502134977171264368894606349555707611855171198690211904360838413482200646769862225663016509084482747743367861845352455961287573954425988441043821509059997086560079920723258494176451407602747024906751899631982415970307141215846270910707203135055315648192570819253094408788552239012590327195925312155851336718159142689772806694650204647908111565070048936207612608468502018902426244217468610554584159041983387712772606113570079362217776406347508127756963181282511089704393269729440757167751919061312925132119740270626006495392597412145426074741722981883112298389912299271956841237053943278066643923512172787539062107233669293593816778920197888537525216198668338005874383884911539509895122471407830045988098508614480525249548209446727468671895376682714424306775587206665994313010358620745920411402377432186474273431023322009235622027513056273870294906676907981315112279062740750311559937526814012347956743318541757726399267867558454832224671261141913217341633487914864187545602033651535138193678381486841331178724695703271791991532121919789057917461447437065215335218566341279436188840874802809548176293560219625514114526072893380679839491799554084210727698513953422221600618065263963305967371517985293071628431357915294521909650484022425911960246528560523537894405573184263545666484122173360707669038340207892611904421535679080417954044972833060821433424516919710446494661238632354942964268786633724665640113415042576590993086913423438307806228968263099285908481701066722053433949742597808642736192794188676995645864513736966176861471957224667474958929082088041199069587649057540570512502065768357461256440857328752865246857339694848249640672002789510942122250985373504529052107423666462455216289654313716993613176782591838302415628402087591087600082003125715998667763299741304989373535238707131545032069827352840786353961360771402156747461723060881935476946281165125214666034996198992770434734762549100422745138751038292597518861697003153780744006088371330493638808039568388133124864173624180236869638706441207863042173832332487509385993800348423475923085099756031943821815037253607424901938676263053667604085059616352336071860866437532925798390585179615108992930643187267998844610185192330755144416022858193863479341607644604353177764972862402580768046734482427918961892906334907478784494482676454739519843827537442506792874162587713193328236522597421532483671913024031062512128781726603664925030524747124669829076452851930341002038791709567793560417740744891317750403996037332951969010479625145921930044522365294109642465453963833474581437547890074743991858274219136933610514534595938715047088634852699763647007550483155253955494266796133207345691991242147310938476915313777849369249889295868435807855108047916030165285679561825135994344257061789750707953963270465955657258411893601683390925610940300913539380137283968278371333899936750899104412471089795125865546523366429969480114039588078996942982086563801697637299606337058283499256568746266248295155119591049541308235900534496743787466799957755018020871778640505334147153405428729589559202115832497372877064824409536967847940901385388599012934948435183361123504874921156332617733293417337876390289382618519106077540943734950144280834946527761954938646792161393639596597756172285362842637363100162702356280885844225304135967911771359181712235269173671585428374973774286907575591378936717220259886259788757541738222170122293407516289281702596956268458626697267393064186350573378441688198588484690484442700790576193549617182830054903454969878582986200249129629165051549733145903863806814012513610850039772271655121464739209651700666765528752661263319706741069239440296833737564738513670633537491387731206924958768011840118315446635917739277070321344650882823361386421074197181833390594955760446122691274893143378555463127090791112354166785315237474507018726603904035747314705435670431139716001421633809364873094948119126629826190850281017151454328841341408482296158110023981183149607917668891138009586534384625133640457024400226699531776938857367448366130850278224425714256567351620631797202444119985524123056768336937231842338075046269059920797319576274952971852885064732417845533617523623551653259485710502573426533699023639503322557628892683158691625996881195629091246615398591639980652738778631700928996230211756560118738988939625230203944681305658555886429201346803107751473491390420700233269477419252738310985748542501038757114324853003897052593323812192061578234085728782216133368883618921279487331067496625772206406445425545853636297582249878421497636604673314204078942940226692420940510043506539957083799263247665387098154252621178091524559204599912846719563838740117187145389750022182430913631729705821346276348306874685019986400397222945159771182071912782987488036201309288215247679084076345116256135700286591575309960234209962773149348370472987123060680324624657289916273475672979132352355612359919857452853351030285569953693044713398976685485110045167374777190280192764327050889666587717545563213030384420908367518031922988306796390413207646842246297883061619156376922616886501041607695352511173048671900015169760752071548445797651839492399697374722637224118555345523585920078426091954559805189135079466977640109794890691557613945028618317480856247281888576334997920600669951207938566616897600364069723566182725980687296106504295979799988826728339561673425416372537778579402158076839240856135429148401112556931575430668383694433692097027736565668131734467820069112046589357952828842557488210076796214278235814894151131454600894082903703832256600033089374620181161990922842367709682528757372068176572779792570063889728633441047142107736217846981757371955059744363437398434699562716211509994016273976474794986904363166998808688686729314121283742031867660414205683909150436035618070716572365913122760159340415945186496474104892778997630874394833048747262337084272751499929503345594845981528757608746884568674095809367904594499024718431753860767233541655901152505780084376204476544337439913757806072104252655939590321215202584256560526233086902083186914163936940310504820585742248568439992859657760718059467943321905905223962351595948580063453325233193090178839062148974113308985440264774757598792319464892791924044239173904063500812006754721643109255219135639866519231705791811466027770890587834911003451265059255189111722310964198373083034258780318653938488784472433136566417251346305503913017729272508356924695841382330403374315864717060764888809377420954420908606035429771238060470290751396757942592073759573701570908259724630461683902482822674989862798882487716272362629486252670408483778040584264602914184849141754628662260863387753708013929846437825716024572173086046322684692435484894435305241821778384895128152715591902256534313138099993512391399986129737311296080246863842123058646052895301597315111009205098284514439990437947992330526938402503512378902252009410431987127809202953536449315505863472953153318352375222415039472264786707930039667660589759339079011007776321590731411160726755417588617367902391012800878041004126864148907183954339899244946318619973297558038097126936953211147551910906491050802977207410677377249007551399887438530396387099360946548367039096894445117389854827444136012621699537490779640642355953562281304488660736902645471072645739208735176502031910604548890708387116108616455871681283461363256989933217651187003043594807946030192556716300820845164898325802012262747789482571991754568678199446444096440675916268097882533439377400733550215592200615322091520286485247973324033988552996134611263653832823498067787232513799733781501158995346843593202700626066553932526024191942786734576272667911803259956100671513982654363096541906193690970306985035820998135529267384587162599388046242593824915374729191201915758266109845262436169569621554889728513647314719699412502732222026394996645782012990615686692315520728339334143035611781793061071604491200889877876783120122846689855483102072115039970603126687274729471220989768149835094643928278173503670177368697666215736477990062730077905134237451092941013708074222826820401370201181694778430120742765003148606492733844395087966877280790806218239897992279733614454989085631618983756208804657522325074143533778956452986151528765064908607197148250916077336643656818042799485153118385890443705534395276430613689381319779424950801199544002982049479420237480476560350183265685436697663963231157987079108507474542971209053932146462659837993463654207625152322590972013212895628957963816632410405290188993932720810966334481668394106930762104321361052571332436208468257317678314026457392212399453287414327581105548820227666434305860764723150130799025539526202709120332409217672418473993783188014888175662555729785144386527085868405120207852659808734925010417426036866024478555483038915232142831988649301073905703133837173756620368604813941261143887567550238925808313016664800258251606846536737021855018971309195259696778204888341111465161136865884009391144187563690843179231340631513962762451729684909006358920770167350664538873673553944649555517223457915788509727937149490587791812238547899444259870195664602856639590506870300770579025064742775389089593425125368842181701168742846434314831665806295507516185344509266866538421896221588385243115391770064627403774134071855401808074053023174032050904759013019551696240730332047230324015454514563484830914226904179973951929741009746964906935396765968136226011332733907115604223980586930063252527013844624668439703968201116163684805185153589910415210699607081115313071271209640482899128769802391313602216738395087653386352118173591686726276365142775590036776962970047363223442226990363534086023457236934869753748676480097874021641191055911687648768664999037409735062869395274366140415599668177972752407755163802065647953080010155839573658289087576558830459710176487546000408353557028800854673682187882576844736674681696926083004075513228788712751220959135443155315742223097125620884876562703399806933321650747724636950230883519088895704440525677940106636729958983830703006235449762743142291018359506174780026136739390327433483473614886087882929392276510184126320332317185401040627698206955617022282753449744801996696024607678535218562161820533419100198369221920187640642629750105377137332980089081378565844064047944240243958072896950089020570886412969787692852145198883475811116903502395244682781012321244137366881562074245815206769193274851120080287226841996514764812300715491529476340846596212733436970849817587457679390087511706202901887776369832916251410209858550117025796659132973820201025916611799379096009580544503468322039726764739284762350839627392002408546649314307075948646684163043526421110651307123578965813992355903635629609949953100816220891323793885330643001408767268617470109067414535105408297175280242158484535677686636445776939786296020892973139614277436355936751366301268106276360206810768054512876846231753495380492525182925851548093056648109335645704840908387838518009652445566466564153463668136911944396712845620280922394041631433915071980947797234122270432672104921738211108989336218382888819742411857298155983298245302884475383307319824744155317724514483990560280710373832935952333589661561800551599117020345370017405979680166640334607581487112704756841044710964692416912272996484828772398703903954539170974425100103306058416202155210640192950797693036257801070853926767373217323364213053070051474989030657701204621983928949466173311821244877488469866540838766442017962850879307284412166687529458547973583489626155999731743448376483139840951083464485353405282806337072920641140029371302776321408238575568334637109140574680627954407982824896593000051891363451323750107767176470958433164096837103094795694178245498223913691851631612063414572245816199936012174925756518636298159919958362792040189088010640956424650903994340562944540843208386910337154934840681297842091637318940595381311160812829506075266051841381899925383083461599438760385348695993335143524050427306481148060736037537902815260328837706768869903038909130693616323345198215402354058841103243602907559853233040684992584112654507331508104460308415346601754413887753195875137448280639714710237564001088991482031092354891302840710716760001150226944562320742356491594102651373533156636998056869561868131280889359259626190305512403035007854846022490364901061002125283929137949288397352859575082940287512480499843795281212097785891165815525936188654408982552380283816964522222151047459213161357492576992421746960047360386528758178575522604331896546160360581041534430247994840507602301340612237175219179815181124382410105618766303084064421899026140681105053769074235451099333563193110775436811120497048069222512913611362773084691505572462511157837945657993670076430056321661808898649692347213035994262583889052286720357903581443184367580854099465366797286603837168322012623984259133038976835284498632576229363763914049266409968352384387329972206083724367283545104443021750775729407621800516389613438111230064223776528779733403378985949846816020111781534299314561727068079430662056194185401254217263195802498154591577873824338929909399349786647235989068394317798276800416803461912792925575579208578982638020938258377905457792851703672853545943116445573619489279485720640032527371322968966177968775240922786516154462281983973218141211483440577103449165492857368455072386169811965619274263664835879313209312668789440393562561691134251057010946648974268385282344598012910963728021153356700956104908990268712602927530761718624901742504230079594372921397281176529433576874297172394020553090622221712036418380231864711189652586748937107230305560645447705692021302047464856384372454603744802316297801808910245066898337219532148187393221158479780719693265851543850109609041073476364113758589004033637429339527171937932563438152724107033156428174199931156726881778790078907627063799554992848063509585279392538380387054538762229211382092669883105240340809684711274363309753428458017828634845754999986074135647275283787524408737679572905831321034950588050982403959163899622626260291616786462428631050808305626240239869465031184062615674520610791940315649983447750885540055137820716676063352261914013916350215432336002745774682954876331545688572220894299503485278988473794243552461158954973853368599998813961164752459329891364163344220945827843103269508374517528816545282666800286235881190134374143806404695659288086330199197936341691443170029306979163305512162291839747225376469954272441202494542426187111076364010139567712058278821580935843247084357536895039588349260549787475844678342224418781044935938884131472062504334860919901885831519699621834694818232429455346769858124497274169977518455658144337580869848319051385999340925909062245047858792617204024756179247264602699152709332306881074297207250197738710634243147367689374077841693059357612496332005934392520846085484347643522229754451327988628697339091576532856113564802980904978575930452013085461051185103973107888202224858090654811041561162800331562824821930919037522035074144147589711482013574872538190056529471955212377742046284358133437349959913148553757228545006086059980394095933668634574306490498691182215818769067351485526497885518906216348342099156726982394445584820786132724921035902863191626652845175590018661030110455354153779807698548081261278784060553764804096912709598953301395787711593042838604540615421406577648246176847297934213922593310988187230757457888377468706798861119928125728815586366387945630348008787528206458068369504820101333176055007817393177998569631271383656129270871129434964883820806257757897527700812247762410186043514562867648510890747759767071408692371231910959402301820794645118269392377125205019406418673060609142365131950109169920121658182295886594574501023602392910601207433008132579179726181405391254611633251731544143646072552077501668257824073907134944391076522371313405929009449814362245981006109705716559593479947530567916342200855154259445344213049782886424634239343976994069455046225151149912645453280461708508954433017952101417069859328373356018476348297145633448843089271644309857354887633341117521585126357965252151245291341675033404033688051147735553014310691507581677790703562440490044555118230006660985692569865653667130205213987591666093648245263090160872170180968605971699664638406694939361934052342449537630846401546183588527096006236454417390965321539672818254065834033941812646304678480548058206563692816908186668274770645705176243685903578739526572058262702238921818029808063414428466404472329811961822063419966763477907634294782340009318033985410356737708258028078003242016079718955805318990739559510846732536980897544588786818390312444957922326081090271729937914882542904475207686851514915610114240627119965752081753811414945949154441404841719596048926519121426142469919848501298355334780072073625722447560916423646212740041164452253042480134782730730727690722233276772423274367805129850476015234500340724952538678899120367090460847986764634969580479468044115686190364030457512560716652472472093773820002062323837776431956259260058346334830314690143452572254791380444268049005074217634176674242247507266892344292800848959338745995949141461112451467108755840392524925621640745459763231392559949552730427163628679137437286134274121475907926965725498807175831942641067444513018501321399665675925791804111559745758586290258743512220380262379122116836774822549304946927905807745883125753999803345567760400677326539299321819486049722190592507718948029165007264118373873396638862349874590048806132402115995845046082103417745016196358673860295650984948478337866559572514972426078806067711896861140789091262882383896316829490426090651749173668894079846299906103783538872573456042693456578735729988587680251125780551160362924951514351326802034948057258884361006772300991925046657778313578639420985520177248313522938174649233815722934099096674266983888840494942640067008346120799339157963045703310476261892036018998904208648660276074348860900184720626900350802448217872804650256855623250678693266205573113374992600026214953593095171256244168398934653208841359060857342900543618159278462517584924881660277047554506877735322533634511866415941733587854278486413102008184700838536973664377474030113113321929010024855793415343021141690067030722888651557324207933131346190080292513247037334984602157884771625348455841584508522727811690094249508710900187300650778158132884730698889062128772844826710284724787238994982967570630203800544757113287455213640008953874208999844450050817937453332294580830923467377844084237579282903221037975065080155821235958547634753624017703575993751582460387055361394275351631268460719453221446178309796160733271175508715561610164563167801136725540143536688747910867311937463590029058824150819929986159505086418765533362399358536574716077122074497268730803377892800893708860817458963534491983133228938162824802739023628519057461500713731598460531629588791839023871605787550376250515292356925645222354047811222275688443207896721895423454354610200393173925657053811357213759924063943527022867909904539119328051076595756144500615970606514531938101471349906517812499799476769528364303109184424477012995176825815766908009814276911702653741027034627671620741331861487763423671227085124784502542031091324625872730173432948751770275346961562849721219283149337130248988945784590134838505618458364911288084090405454367286577719954570982443023619464140429757744042838886516297681198677036856534714714413213529254602042616718396542623419491116187948456189249773463096085300270027077561377075365926912677768772636222495493300618172722743433787267621035474553706112549820392713747026031504640727330258358623826470192635014907357562770958994190064016696097537494730660386076754475461827701817484024553690498722252265950924689351644458325803535754314108536020135726667794034462716696381679725430101616452655169452080172224794414120214566586875049277528379301816804516661994065239023135627041909706499369630582947097037663055776055129455067693477774095991727762777235595583286594134447631978064928656190607675749673259376419450469531169982727181639716158504580056966568917937948351131631651709747152040477403855587178582049131119223493338986264024030023128773220364598468993198296125478129437363770979190279757012431030493330230130608391493422038006757198647595097973260778503951662568196009434958886174579164619856014434248838310329209877246728386020169176357576736889661527254773491876725070511606370545100782215560628065107476052839956857224747701074814865684434427791078070086858717199649160337056656254900971003688422220005935841118475758098321007674351818167634271060451906653865700421549099800381995352487016336013719626614749580104385644598673457477743367850905443047074684625272461303457726958136625301777063953772453111436301570378354240605936491690073334342982159786665826865489579139684194992822796627301120214047155062452045207850825752894480197498466295031638054028201502536297721296595319150730171156569368821710023290988008484290542434068943589423690778133034801315662458845299350882025599126754440164113233195798522525370053497250698848381872943188345452303337317848149990615778010624093787029429675065320934448069092848526850007376759426934851072251415481648389146797960713791024564778027126942578591362414300598336830177599669141762556832142076344074796876330991056994118383704650626675488390760707577247650130235668022163805686947993068254007285946358126138968215155525930406508252416307610999130930544420417841413444737152532056240377488782468471876796630604638519823588757241263345073555113695769917434193899664402515365224517128871050590757468993469293963874057639499198214033242359207980883664979723777410271023118254163546407967101257948059897166306757723038245874582476691228039478325568538025934115629178303023659956155795658627097370270372445382134819328923366468210420222163503801876524345167267301261465788950440241242969263662279489950777756907011705137237537702777424316024728194061119970109873296434521767131884980463779826546615065690679680234194158103023059917891383603040182791319799120960702676046917248286044762182508465131730206452130617514408745307917103765515204721063463575030958301952710388788774369522192396679966306368496769360843673397386118458012821325288963594698216915103397136625115956527171280132839747799203247729317810472246852405079186813235445496804030027115366058131571370826645683704276892176595593408312815088761788918120244019703442049462462155021089917316360221090368632398325690560728370829647968073076542775500945268357921123406729040028540594421820424947565190129781696398402246329388065342233573171277980471464076078130404468551904801426085392888971094491969739659396237163870607954013753492964715706122940947024387176250965789744250546799822491262445044435436634981760736661040435985628538362614065425917142430692985555862760557193887746302799604563051401970323519499496025113685372794680176777487933618574201013375857894169165334557288153764231047520889731718231026956637742210997315225085497704638104025103990627821293478241126105623609207671405010113827043699125307028741256161952656195693894128209808198952433503537254298146124862684255908126607542309428677593182016249923824796693800965372870508336374979383502313770802392538164588016565250052256927982722877454655116956307694814040172089287066562756076976048300809728376194000829071993341882471523062412153196118011173604225152168831647439262774532780745996329360437818689755749991201186795097154343504454853716593117469215153577978309622578203476006881468775764233323505623790238260757445451074687526875628333096446747733881740922577202760003814092239771558102971864206425403953596759929553467338801744200173041020757422400724824238211958999728386871825549933808325203671000966041451898710691374961821713254218167401583498075828597989283713435725921460250733216765120460521910687897185711108231997453784628930047909652562878147396805543973986831298407925281434439271017627081778401870758643651913963217907659160028385479376549423371483945741472405186303522827785659649163513414179099548819900723406125018429107553587902791660491246728347259045148187524560506222923920892027483091469092653984193007345749368419420876037325436662444661296812917450572900172866218848854877789335111177228298827313054234054410307901723425817672967597293596270452081882170516866743868553591849077727655489417746465427721538173502546341993194199264979547691389251513971050055328559395529896657423121185683377612269621089495938112119110289705427878433541332023605480893420796470269303137357033689219355126997084394748268144429117603121937493418555866672071309256335207404558475044136274412616267009666582308736472943721572642134731648365073948871713165439333253460590878783926550779051359394187289224738061261747042887629740828523117330355429436303107942302834632948696186130734742927775889354953647365244638894028898898960660703870230213338666835951393063614411449573770400357858114609697975750954904057706887086418808394201138731241904958524157616257764217447220238072985444994472917035254835833985507609000791998011126234560695207789358380654057612595525620720536413247025022176867311626362753390027159152102281349115710225853845920301768561325933132675951544477673094126596723079703217242399259785359655208735089204598463790013680379433666936381439070282997305135227909740452690946343746347449574108040584757155237540827647472519701158440985663884407527156552925170864446612098844189617628889965834815875638102232183158807144017186547976838705521828869267800493048577191657509710604121204556152767789398779674322656358270712678000630764311413772341189591316715362867225605610760851529945070462412597680550011829346574916068500250817705588238085606693694049898955983022633664051395149149036110093006775047301424161993833493944272899021181959413023917769907991676960028146452235642062719277010492352577820164760066679622553717038919040902790297963545961642282677714715108184228501222987750387408836235242980999881620803929978079081445269108776368161836810030354211227783856227774362559621462347492755468591009424472428397708171753801823010327343172276806480515818725842365994904823714016615225609465495239905562270909459225300779291200183767680940226639316496951749505474407230628456473354872505546197957449797719288072071260963303299742815187484898622309736958503560641198412188044270471696028389652287450385763017512568095010024476848804936957325003134192299836776757273858714012937628611210530427421136532285986970726037650341827954543788226492094356334072907830319638538654459370756018374878111990239845604934032212554510577114839614967137716818349078386057189614678779983177003684032198637563578086618589093497767168640325068258443210976083332221751232641383914617749692528458820438998206651882114899027240074846823794031232765351116588878377110281009954137020018401785101787123216402684518474114558128070755193339082318204866315768509646293430033148212066783494066547037850045044525408982594868882792340522006097981603418018425742103639522252176296581767910087979950660117127935053850207604949613634884268723187276672745714884277779421666076645633327568547354153113980890868914005595120802345945427043029577261089352921511947326684507143780312485089913005357129567890043263297088536289331222959732269638346717736752183864722055183651981744158801103632331800613977422038580145205753385568796217332940650702357365873802138722952562250350521770614408100051689432902968464113142101343758670791458157967671603729985530723953157302693804884536610606196439952700421629056862138211856131463285017822876323563943536580564061506603637032588576277771522717914233582307673313043074632298077674877765125131692223139919688218640301502311886445801075808660406592890699143786810402534816778214687581976643441298185344157641625935366748863928967993834465082799412985193512010014007864337976376290724376490650853077304057303407173949047714860434924186697550584913291325288109437223935924068678972790843004065805845868253074452739128762330197310985183928869849422177831016983425591662384828407012973983673538229539699866803371525705122348855025747933325037654992697864054072434799704290524157673417450031127978284160614537972058764864694884536978057967502962717374040875159157109142587888421991753857783752089977793574016881401952273607849985791064474254156314825025597281341954764684435749652623445777264153704425043811098864171188202246072213813899870017902713887934191549096786606179112057704625757074021782815287759145757645836848591059672595400861103449245398167002628741099468572779702746700126288031632631424498013704827235874379813982922059947177905151505771780414356233430543555751002199230572049637145540474131394743420901167413234337032172175403373225889502415572481146050931569759942830226591198548917636053559058103015539260891870804034897035900637959529353374151862901847348055417332192343686244947186831764159227921865435348286591325535582705085139695591540045877943776828290654448917765062220326395434857677332354956331595943225210216133219346133761389728849149294680792122061924810364273302642355813971765590610614764488806371089089697027052696901323918751930284645643540980053574487224591005755852423192638447657163702103475415015710532040693668196333275037110701843488505683485095330447264978229726689000424937371108010601888500037390836253298646134392232957988235191967288362198405756916030922469156751178258860272925461320648493068484943950954127447966157539497218834427532712067808897256161911638050076852160888839375665670859052220187939236780938492864421763383712051269243827349624115565784454164331242809438741539660315650190525851321570709975741570227786299055662906106868459480764421876413395327522036920025269365406014370488884523373812285567070462905087848159353818219884333228556319322374362865633354493215824436281858367908665660345926964152376505904483599175382234441910694166157889324201295182741711932736453793734688161058874511262346226549634798100590817540380487350755983147333771007214877720615797894687119187530546853761877385247333255333672931991958095163051447194640321352094566610226113258634250650117497940833849467442213965563485635444191744063019703070985224459351060501997769042932309337299006453249155693222642229427570384356867941387810626413929796297847039387915444383484543586329794888068408886486030845051172712885891391512848085910728462897157139394860215638389859006243221584366341511805354997449245547731507912820927961128689489736595033092063625893401134656929809768602702774547540827429468279257351500742651314234437234742328723366118675295141142877928370336150712356687958584122543736871028856841311593963007837361607903810392569071237028185925580870790834675482956540365192535592040121473952909976034890992864038835112886202822361969405362485100680046985018531118022758355223248172708539913425704331826080491272899700212890986867392255130160014579093895458782578019231553414751223778730203960055413110942351995144078205006037462353461591604284708081174160001882705412617877872850273186968724820979031686401507762971440275420135060476272783337466126409904817910275761866563241904692016695422750623732454274245811837912978763532226184608087701291653164645868968689894571732898157182903628437341253859181767876534205060924960609974807409247340952178790113850051941963749211976940978795389289459702193086193131714243951286054415941210161282676650557923787674145822300779463118106377380595231339736739594125499942869122260817210999242338764863714711552408493445681860651500844909161823150531092691763793437298206659720503328954005003787642090260118861088809197268962860331111092402430953549645622051582372132272312423156089112708167704657656249394798455300076911726136628811809699353922228759071568537244488337756611782897484316161281167145142917663841370881155778334465259160034651075829348578128010584854039141800402370824220159949459178020458232048791525694757638472699652866015152421891185089950941527022884291808807368069511983711040071895730907844962260456299032869685077267443241662737243755453650888590378837205134506699822015186470063331392566318845756868487476278720491534686205947349022500659822957313334988759077699184125768910708265008255903694194196450304067302854136730306037586277907082712434278254416290090327686951273204936069845735833294971193540470436898630425993186623481411469031621161995008955894674465301474316648871109130439783107899162606786368360454378599509400535333058042012629295414550521432545494672893109006445003072296953490412280907052535148232091598504478531628864818775615048231909903042780742462658843452868947358036049006323484451134718052663148085854939098155522365450876895405541974596878459078809435955206657318693974736387566630025980745810202816925883772219437168146381154743371896690769837064833910446868885444342819650443174110520030057489152429532279439486735344825845439597041519417580466536204894907489215888868345684125252116143533249013096518012471328438770488672123354705726916286114539253292835872096622947832308355743549410180812670492684795287377616361109967520943614923588758271117965110316420301171818802381075880540698383353384376828220910405592296609582435997555177115751197048902722152486673267083005452618316884964234165975889671534271921405818498037594094014713679273209133379178407942918191912004918460310503825790936126955113965135759361057587125717570615544667858091953030483526142681435302870389526236911563161228741570838716304883604629674377117115864494720480236498432911537768460112960388611787346126255631697863329137025025756350114497753574291181666347755197128146966482604480094545397955093582793117144332997060361148067181183075099657255568332413295348294221416301345832711763356615700915667752516342749016506235410258857468901470475915563786836191275004600016588816116661709654772717676495205368154432096802056539460679089541625453517050396583189990974887889218847952194660805830057042768396339395670945241103360567050261514182734447857647766325974703945658443189165526672409992796436391495137418997493942834908632567906316819069278159011789342733037559947975126631919733477761586155017441793563649511777710670427684539683670627332983115350330116816473010839678824223607016165920251906401723164773255755090752387138688732724455279016796897231554856814054776698694499010111491201593400775592588567005046730024136698027870633157973034999356032474580746521124146481009350325654130048775705690811441834148752579733923701133158501230731203835804391346059834906882585922475889992619010307203216778794489653176947942946022283100102007948314052496248259828266092302549196512780427336552513736322331323187993914670121055994453660368017094486203876705752100327812296735814140869806098179369428245194030107639976908545308802748142390398448258711956328477364989172875631015946457807081055791099714672406455743279362222928088616271643282449518877576847203208110903642854559647847876162643013723050257092312428590768677772215583027988103037423847968776972949069949276167731755461667929198847767538168794980467159159277570910582497882117143330920746232681185101979816404375339456392923097912224585543600730881595527841842178312656056781530411029449065674355434059577336499277968150303841833361536382581345401437900513866678829014435504766054954350516202185512013199571361938502562535798471056479987717038363744347476647574179516017183826508100043191771554611941724910006472859146736677407822133224557567202259114835973987976290926806124385475388199716058430296030343022636611935711858190617115291920491886798351037007330758870822539193315738567925356358107857014220661692167541004128907973552463347308378212069791040699785995457874452711117822056919461505941908282953694765711719118777701382679272534665535597741361854369031327847243892704807989330816991776180934310753022160517741470723191737449935191320323852003549162453100736988704318195244316643652306053050206431912838569019490959001176277793823965484776600956787005513528863077652373283279387968052302214117197625262862712339542982217931620312052098862186008639464997549127193244446347747692647591715254835425204535021445829493593331280127615746111019265938933143653759148126362984863932303294707386482149219444978570777949651983666975173283669423868797141452658091250597353658899356424393456619220758325240990868095662451871939118573937558152512523184903642200860171251982026365634805525107091903112980691218302936898085915539202521974592578211899229167467012636378649016168248614401022382950410400125373932758182904433871485763056037175367159397868302304392787124867381698031561126379814659037546581233270238846033144861211025055217096015710306184887685444443638091681194660183658616019213551686748302472834421351296063199243782082144083973739779301956228565427776395903293938978332699624641008349440382608729681648431490302182159542260409101703049278620818707494844526999232295029512546937812735354010503916036077124154403558066586047729221204456160270460851244502319077928854317502268626184003837044543816830240904494735460584831305158576559980727496975044969420587621045295322192613345310173376775879180570368218778283019601872476732171268530774484745331973950319908905792709861041994530314726196694081094721551248705409343281322594830530417291429590449669571067941692216379801854119094443434717788328924478713356131258261354446919432303605626542380376588583958889338469935676189165587662677940061709915474722451061421745763497687298610521061168955480467787982874464843747936336164896540940129002171360004379224089878178817712846898862922922146297889812635129407561422539672018263269717542724955261884057152351880846050355465527485406075264488238145648895311221288751828574628978165774989761460131418358042179544362806459869704068741465732392824247401074111411155719522194972169851697230013799953384488493419050817402784845005523469044357957124588812765652452657715074420672073135719075652216214707845080954336857527041750893056568902992634323924105862606182437036830238045826790438101608815991958277121865103346191431069940546982168152860870778384938823362999676403704883108899738957134318850433475516624889102827356102135133340086414788150740046248470980016106603800823780901026464099918013176438937457148085928990888012527464658443865131408977982527707207766469387507006482888765178556771567832786362758444268167971922783725678679994429000546080953283248942342028763902795563768648948433216017398910536011300993770719872381925142231523985952016780054469495369890608089782676091138842263493440596979273088784262593904058193788249051825702549490737823579561474046898074330404355381922149851525613179253868510144128844066770220350235677358484642130381702262398081692807638201746412709676584031349318035682306260944378727270699802454818423959113851357304669422593369177316469634012495510493320650686005548274249883234319103392671975516295788959811313838264423785414552567205654989540066723828709190984592178501255955849251722347608418651051772495751484445282240314661324985048471371033098580924799236634130329548321146540151452834236215686672778419185846058021228014482807143888992573240244696191415141985073813674790852920231495418002126005265463502499027911954736284454901083647637136044422245686179378430682480859015660806669416023181058391255581676980181619689216468329868702024357187233941435454428961278730276578740177259500851582808203670754791457597127637400699518020574709505260560657698161343714090505609347292087902511176521970099133491107965178900473476005731089581476637014028844921348727772840213526641549160701282852562876671399609530312356159877405303821862513060358091487930676390913110441337110098733470541640069393535897924206347623813973619417147991118305608291770056303116543476196993680508587891245605834588040866238027540831266244545881733965582111280897476646415661709805908448395658136341600511221397107893827511574192861475216059533475765712342401651004435554109670391351665867421107455634554551067734306061463729197330149462371578599237406177657110985474001428827859397411380631338501485819435798576011953967110264796655985258099811338884717593507044794303858031324298165336563983527682686262346800010478701592759064117647235706954221124876873266803802874905717453878440700504237000446958850897604901328762430674539449399363672362623391575875141672267822402524441992523659471564448513114421331542177883004307311940640319887780813586244807003187726469893927610940787305250662461166631144894122095129603652438159735475946030119093721081289287363692582289733294755082115419361071803230967249147356113861165175411701758293885262747139244662441268528116545999822876343670848743123931244267426207307995736693810959281949689607693922943989566751685905353372996203967085042951082426855102789664419887139789544783286563566248376035917056420432643852690778676289282520962216289690185035188404595642475604722279300563596758278616377479708895529795901568517179981060860792319219977814811458531844158975176453843144123677391654374640459900999878564667948054048797563885131351638866937795916383707383094450797664497724145131507257235237308411541162041227981551001307197715924628193108900241108237757217736311697084436286128886473112559197044932744708340141581492157108614730763551579118209297617810142966126047168159718195008534983540260232296851672876360453425894826068749782813139851384722106691799190559066457108291006097017515335651962105198439525294517804159986610039096479034634107155621638090104118886890387248178086941714530855329490972356495356358306897382581797193125452732845594878414438253193768513223160843361326966873279478267382093764094201699359799168019514966832184735603746774572341429227781030201841023417589287542328768048248497191510578595418783457750982190229291282393019796575998842891351843510535098761342983558083883809902555124205034475993230297414966964346289808746453523045247914689802745454630978896120798872227284004149823991753487334072903903738454209019432072443676004366250441410739673895108731104056022546869829186118482831380083692056051676988495789786202534271304837194421665958457234746422774393491969717663011476073315551018785893299609215803932618358077333870316159778331624073754784019764708357060887649183413933993940788262033001719151167402264037563389914522600505184453777902412634653875902299480106553534477816240905651944768714892750765338548076459379768401788807055705143626086847878070301008668106486594773966064825409392157862916047644634664120062162425343959137298599327386021755067157893556604493597307247191982106063255081807881413169826541782755536078318055728476554705330409020716250469826384925486612229081671794734640479590418496470876542413581873289479728039723177424233157970232052411116477858676289066272363762094979599905756740108122294854477409305620550055690326682601123785501513206400281221236682944119079195153706424856455872372173145452477299987380619665763784509669307222273769614733692918999564493631859811541301139651003025970860428825031108154016935642206844594821846032047032916520599926807494095227389235394645818786096962806911109127214285487668005722280735414435378138238526409979789443496855897113338985452691064709693329724170751166026202808869441605142308827509927233439439439267741193240295174812126767871707905015618286751774616217575200985498204651819300099653374887015364119199445200687051101423727522426408033528177653273856764499470680803085577380884097607584606186748085928510769051249980738360030741475592792970698404532622964063391307764749870056469340431360342501323268529675524667575915344319300421393661381116667269907939517146665169544638888732932569198578437872279910248806674930572384479172783536058754541452516203810077226719100986256770500915293692235842866172647436421026491174125604324249016042075506692683512835968417901787809738952581818321752455012589769406127132843397766792439812347896412005501824103710878940563530176836102662427736131245344065875749862550237680273166777303118892207894146020785138272252366520861785884562392515106513715469680553518634375754339302195867217885826729109718103041956689677024617666047056630695333190578383192378030982655684800999352749748945807448032396496992316287908871238254739465135941098822726206689838470385086486553955498496804554827408764871966252869016157799066239854034705263407416787625393891278936793482741148021246987264229917496694865910721577369967063649594153138132983295062885801308168050605081182770803430625118602688968612063984065069920218540760678998726770851160881967059586681005756925449245539891257724312342376672742850798731738154777562320234920848917150375245359311261310943709154602150153694446723123594153209480904586212254237743706475831275351380900255660296764395115982157180255176405749098731040880663887682376990858737627280728847071696740266499717974701090096384781485271827244002075767886265427703702002669048009386661136786912910211823312456637438601634029641842062378225788991250737797634910626016147908538305503801451550494649436988694010260814566227152530656410111423641223042956620277408638742028286318469490748839986738867343368471562889393613648066592856394856091843301032588933706786877632499789232055573549992837830671707251789528075538745327555663966499214961798491338857644421665635269816094696143650559095019331423040609380995775693340637087658937685155838119035026268118174651417809312360058525438586286430039386231851504916952068916312491238601809875836503999380358791148084762427196477131282241193966508634524742510963894698177170938048809825709868480040033434648522408265057657904959347431790784011576681902883601292917254662631814222522940822864427204723553124549023013483115206342683280483105899339395438530556205404787181119336186875426353096410532387233497720163713095883495696924516606586488687530655263482134618893059574209453435409730996455636009903825985610149184789823517077661562623709702656669736219653361265506966797759515891602490766794125168732430505210310480719248367728228232562664186073140555434378169748317785236873045788741431250420668768553556062516018700165437381177731572410009360376050876532327416918982513033864072221105106222554323717766579128380588423140585950519556762364244433192278844201355044523709324067434544526311885628997909921065374623475636807686469753271739215285907834679793185108831055412640218273944520348173268268709958840262297537972865481600754258663066301520733390626632770028162446509879697027314458316670172324548545267403433802897213582229574828314085588648442401387771569188170321475152347470875530952908462047183212965259042143444640654814508211204475972248363354994100132718946339432248045472974934675060845708724134866580844171777085028611064638470207306700682683782593047098821250033160835085532225365076181818430322507748714070963426956957439788305361660850560122200222070864259376114866185911282382800652667590695246059106702041263664104971933568333170159999638429408755015789120286857389222540015883001929842544458179875052070164874948657706661806473246689414296511008930056917844106445156976000883608804423894278070414059207849058790224763826858458096314916300476422961826361588405492608595771953536056289451842034983953366615281110487115349576194064194939937941669901335237437698025323569276570377247111301904379181110535541228789565667368131367043247377444220678255619293913090255634528379355440174846861204055361287484446451988913953569359572588179963553562400633218415909221424231664331153495780673107811224476444104882708483800430081726494896718235589186295745640966386768060447700270555929806408025413560494898727398808780122854783358495533716611321475643936517179638080361947931727079702650014792459876564471869816714659347885164197672949292075237950368600808162260471022296185967136454735049786164277092454928256446738427162007869239862851847022132486091939812459480062644632617659544463528561809815234697096282029112037624721815168745020976034922646742152342119427138480962175543707264530210710976892786640816283130085259811684167740296832355745342626769995693619494522718910497986237172043019750349534108457076037654940504281081798795456180227349521454932726464299528006569006951793032527767334738561734003795273360522865782241934922900345843893778660445718725218992493558979430127866009271568635348071735549804318396922622457885148525064336720732957606731695358247356185854318336870871182594284510871624582897655022067973874511670353263550078247065060454997019650534873674864540365419766609564871908804997899711341097301059317285816045014215330982739327823446290838639676659384844628616615603779804007657784503257426364268234826369601100073904657222192846901219725376026446633879430881893354449689804507472394488854211766303589931845272778075868619478097481347904438809116438807873805956851849200786270558157920300077020611829021884162506969869439308738708637172666402003751411517171040911420306143963657960294255158165832362566522779454126766915642430637118328769161811493772508305259467730484089434536936110624435496210874066467481183920222863068727612479185997487064641413049137453537774165398877659455651022664042887715513983493697291447518129185957356976365651049243319277876855861683087658878148415471154520797770558348769395831113070182194984840110127736678563294128671643762987455416793430901357374095922883553218046717455186762323876577270940453393497271517806246823540099456999316420404052928612268246827416682274382944620778922197303586144754341462018712665614072744516481164022518995526248709589569333219170310274653011673628536477025741663064352651509724947519668050645317476884029613630901168748047115954990726443512763767353507985135631836735321356266254885727286903274591149156979120423153988514193390746245350682367447157314697315499373348954945476103546614226752737433999115754571634437807422906895734276346748968088642325598331259475338399199813250741034275795408911867520489618878540426775817311658644094465910104089512873103338696372888191839982079549006270517586774686773199452972369422190990183898675850484268858380866957793236921490284245665207002753659679623495976032068037540896654364682283137549425139826922350377673610443012564829247826544290908837331369153609196513370942732117544668666258763790179048311196890985070686274195142051008791543752511604952840555250794941000950654355129044562515353185091978025412122807085797287600635608840120001590486210693010223917776514543925771207387209164986420914117772259630637263115667907336735013633327008053346864084742374643251032160526867908473379406332385390286742027030274487785697547373323919850128375773144028677827896280190766962946226345652394578832619945834791999654397949615477344216803647681696024541787410913752289001107390542843369335492511213130952408872309714411552297164270263289971444104452210959841374110262622869346256762515807097702143782388053096665943468817106302750315721844607406610519630981206000920245470360746529453485313966067549633515384277518144585033883722484130981472913372531778338155952312699775050894861723710621785022048560421136564347987931755353819714731912413049139494112155318050875012931523172044402743170517761090383224405465889193158628225854010410250590939651664059316236500362171669058030171560500055345011154330517155739881907580595198618566846195672438498027512603140362908141715518369616721336629920097401134255432107179392403064493545621201121644295626422402823437188913646676073038894257876224238713909669347856303259607801304240693353786872699196849019487671819389882183119656504581266775737332451695393941357418756309830932365498417183918542569626566826465603018556736915819666282417953570055899049061607220512690184093173747230678532963464650225338870955422630360410599350147887806215548909266373226487798693200469019800428265817136431890329050565746906272070072135658761656749468125436798446709881254755838937377394093558806415084442818962872533812072331743894803428514556786406608845153029177849007971197131425807819294482867970123797545977391157993696421935592223502987948147204518224101037807518938762554596407769478688805294004386723698544156524595856450304753798794641234586112426398445822115441272546389369649514523822900710252931350389379933890985993492452848958103667136828682299757995670621957623760263685989493817416914248644361282844856172798051929104070488486769570759014733959593768971417468981266013243335179792330915251328346299962191702105946158026343489133887065908493194506101594120524245844048428694915260602037987878996308943309541727551572372228501003459340953495465781728438104047267318717398514864392435206616082766212599177521843727148234193717022561870354033248324458888681829160617297103917957033417434948425102788490505243834018496716068511267940611261388896296750210623371213297503406882219911342963840393190210070232461474225124621458800240164906007291764911951923467556294789760729372462644856583783606305680836180830392618654101903315990558985518524386790673423988444287386256402588798406954929752487067109820144311197761524166529848787976096594271680902582583789980041848529767305788512912048084746569847064480302631971121926587056381553624398764562571410339887561756063202489423202142985091479453236924194607900155836380869784147565095673708967486183568384759371612181385283172271832426484942436078364291842365011188753138611215061353679980717869204284846602387611874635296683217203837106548059699128350294669595579232137352459661181133283592744969666705800092683829653861913833014387076461142051101170731502711282724318766855834474562012241285769209626061241935559751387812530095527647057574506676846814016048133961411693659902657130836226022555429165383571658786219557861404000349391499621926111710720198617450284821897819563869264596008934588835209196268358172224269574888473597257385436125403743083823745446832546568042059851677073029911912358005231326956711249342483701631446964868815547922008001032812327445584502271868777929460018737931421334222542675949661399360419606665834549069469186371424032774802319287794324961048927407377942761570797409031844134394575060166916600599845144678898717292323626166278537221039915870983391107972824661407964774197251749198508170626745910323725760337629496662006028639199912411180074978437346563792465742180272403809114617461963003858091309733071537919076456062434001976787494450249131484371068672625638551046726213257727594078678825307396466886914023933710343473640098508612569859866395112514141950884496204579469452501658380912105350424608557264480546799018620741386019594469751903410374044433805054704379649544081107776662853607292665718706951828932744242301436092771645354751315557362204731069725074554316906510862397291068575740244761414255257888077961231296411565098850649709955288332002759867457356426698452141350367103423947885881424293766613210442828029165897397341334662147399422586555920008369431531114674194909218243942815218585121222909889546134091664843192000688968664609223032452676180683668520224889867484498570658760411956531622904097551008548288977936489413648039894564108100469415888076306760350521152143749464801293470808111991224746127188512683232600464846845758961232215427996153897348081053530923945828557502696472955380754021580845081955389873982413443399758694177033519394581644137781961732250100445078913011514600971603077280374855525171534670751400686452601338146213631584066402210109695734974648676122979174429582275365954875745996631194441741186728820656043982371929082509869600112056228425042087903760401561555283520096834172485094951188505090887141287574292402452715597844474707894250628379998556752382114212385179789720376028188763681855590181855929042377857004753924531118104437543846126208313009847769033696857854976354692769159657404563792445624665147084096651324584764777455740080212578549560316464101771340998088994441355760989798221751485542069354281432588934160787036809878539513266794221800053808071660897051747662101921858895914500644774761099235362201087492107709634602190101745593157274616401542630737037994021671080432640704157141541502183300422454064346028903320860344859750168561161231554667096063946750104909724452322873424471233906272495301144487682976892965340339082924930466750090339777405608407042635470224089725127070147084708832750897957127974032670989195527854783817364758573256103262408783336708763121272834317552724564452877840211957999588842056569390544772362976054338734954298119837413343292900364298833090344873494009733830718062618201300823773485389014837136437695607624300369020429598600319653355742812236273877402198850827669998782516984224047061656147833268704061504487658506049176695050379798556816960560041788784724172208743694461331778786970172500382920598262322508889429033460857837681277402099889456504843903072743801592994907152794343122258866952434395369539667328451169117928469546707223815520787291504121341342951689886121474349214397025825448446211208327898805029336028436212504431016405379915559099993833449875460562307764550044845575442986644528110487664298110047409167327730682492946396305873936173449732044666145702243052494922366361744763837275047633745809530614847224762569938312855448793034603123528103622844432135077745060830861745837196107510274123410443749551303246754968534492541503281482843838952844687929673154995967866176797599867200197751879219600494236197498371265457173159331945882444263381058706032635025039723042166695472739949782326665368294460564330952654976623306969464375163940341909714061609353718979687712024066647341942177470632004297675886717402341397893349556507386261989628786771784838597064964712808651075227435406084457710597831658739953977294076989822192122944964924292134358802368465153421019186082504966034836641862552165039996857764031759759420095378081858430790793367148785027543513904919907256841560379657458160442579805330431360653429763672527459840320105846739045186515753574543572257117335887111219009515002565020493667683994254421893998098914880031252049777595113697754789012009329789584541172723657604487455961805828588356261143122020666189292201548595294663668571609895017374227365923284547317279148675865181456764343369909930202235426394591059561935377298791419136672661050412840224859408329443523770468592414198484340155896090822754629034726679440490781554731820439478289152865934830149100677462971127334994214521570068408943601116683102844382700266356874789556202307155314328238513455270585783293128784799511460502724299812502546565087326625089243817504632199105203064914815633151351158371252882271930641111540830489332640399003560912840183364545412079930994528048858418461776376978855196472280215726326549334421271212660724505426740263239009202651126226866243365309488137427064714388157999820971119896617889873698385384897093573951645310308760731612561868773216502328974991910934924154967112701665078547086901651022441963126290845530443169893324315392619052766677537591795716037838101581163949953724299758806051625605487868353992406077597315468672345077817499509955621360094967358963909137351738802355679955752166988261196924112239747290690428798217083726768781806331688245236574329367672785790228081091805187050282939283249992825583130744356072625830393940835501127088472132926695270412782245038771817587036570143515991042603890568669565382626828458514860783521797525604254533887805599363338021936670206574775943633080543102624961100952919354778594475455952043417421958711159380716945143697825239024767639094678245367282753604453324140555152888090175518280962147394763648905846647508262039387454593056185086457352987614160601211940788612640471950270922985140895630374271341344961763499416430385217687127668822419108145141914502098560115594913660891839961630508628925074753887332325520944413594177483407305756299017822059208275982427846213282675130246553127913981549430934861869206328214210168524492305824426729458353838174793068019101636957236390322647535240816788011361063028618795271671549441840119545614806340848017463615481260756127652058390132639353804085523344929638112172867519422185851081931988352679515271559054897984265819084471687915320504541936995965914487867978708913421084667381831991752244479384879576155066291287901574332628624079095453752286694972843912119609685467901924827214810723075235334839264348913390972409831666885117423775523085037198503791892375135770207173608170850627080664385457149913470879673786149831124402150621880727580146538301015149757171131373267463712298613725015873740059851487095225146093090553832603120860644849928856263962041202319624316127894997233028720410828517917096967323536247425856903113006531233431200870789009550449820755563567533580800816795670113271893898651982296404950141738042022788145566879543628307690992120447055611364044404437918299732061991416335216791576909962930913480098729906367134387405365135473858484749041825143386142857647654213831323130191060285732183063197666289484960262734011932647853822820208221570338903732338424026258934179848998729799425471895904137404783890460663955248642198044176390300592977120382318110534505897444980800790256680660176790846577103087353698116952725691455829619640255333957139629085903853501353653549277757970204226390190365375858268058872341020828641896737479414524665563116230093901860089870768919294108871983580025864962352661985055043756825532884263870038325744822913612334426245027808685182633770653409509714322897458630832713666781630087093865914936193332383072886495067069651468914370921803311191911780360700389717071439500396406702256579479773028252783408500263870223344718715656893375381526070836964993133686213032871581560928445762531177477101002813357470916024343653396830779035260095693794525222024849942780688277623522415183556763056643502689751513751508689987690778416825927144431006656097180421945563791044547731437703019173299273554798179345891547616390655787536268240510978923940241507051509829649341532286608348876445521175453657224466451787178247329355817982257110581965045004052578482679761542807229340588546067846903905806589718597957951988130051526513903421312854197834341024965719314128751891752901152288111204748293475549460888455639944650446746266449848555943268967616986014819105178235514749083807985764177081640361265441837551891047339740900132833794582195576031807669627549187996074685168609809704260495029610938123488725582985249728651862190749909486268586531825051268891734837043663881408759918166435498795335809351080727305745648727858044048292136004671286303817009462919884294010365838762818512343371554355510668262617512451756745155876596335987746820983439075318305220771163034053489596120600758454710820522131895881294776932722359598723211717251842295648515826226789146064412688354154233869015856124615770490172663545172040902057816068842444320389602421191697747200047357719250524507147642370219839745347729568310424010997738497334647341389752761957899512521185167457447641240475635579021023201660756522904389219848779522742667387376728578804473763028604923185260243919478779994464530420574987655821370197613023129031450905499770366162733931524358597463852808169341640513071715058360353609672540695534791347963646521245832244485240476705551132241011281288337968041530177872299952656999982972275638118994971231174128239028863411975860893525243929470249521678571901899247353534539137600489165679034974404233628137062799151788938752333904025486127326957077051607404724455008672014727655197100472020124037514768179064994823884385056305198589578965117850350797615884965971163754936241712306437772954884281019464638525024044235633123187383259184772225973866114097287870276213024413815014201784224855928796168081587015595950612106665301060240664605938356584733381423594083948273960984975023501397998203395355707146624333592430404222909992317316070365823944625939283450998011193875271199127543292016983215556596807843678379089161404232780893360545471237445544178251555939290957318075477131987120053652512455084980577246512697874269577869809332520348939036362352887121556617275606193503880200936098053402417470023302672131617205064135377638601176540395856113435940495167756780611698109785659066094645556205262404914684092338145764002346483682847044129011826857318608692156327460470463986383745688631928006573589185259229962897989661739192694540519184389922129228651311297006158467265805217534780967016995200821415714921144882199250661260860604755817541894208629752779495676668972636787293927502203144206828289655368348867170861857934807309383591204059536610729249362575535674797330341072985907152635328662234405064516202025363183351645370503918915397241113868748378125498494887073023451286211362619658347581666364687057867649765898801428322132301289616779717591133947229271879077088340694487016371907328850913423887927705954759357868720481218669329333361411716611540132581354487311726651750303030111490364579583808003206505512665497750803372262869892061924654581012383484494670220756024642527414960837464941541366444088613743513534759867004223167843312186722552076467140653084410518778513680011568648701126192378608644263890250188175685851195896542665903414268376386618933309510424441516122709087710417757221535752520293835343976520019368191364281402955635023055555377630247039085173438274168938010638076088690133793024069620252537403025843440944095320027017738962987647900434445253849400826536491853222925152076157506944853797237347426992807667079625775717982463503533278914999233018059476828314628721712073762384849950822053091531276229813849545226293539125643929311641005813320431982907334552469842225922803912578192998050897769073128991391880624077700967777018000425623310939874943409662217630649813675524223592107458182109424048286163812732368623752982084303572529743167371456015890797161938738578647479240045055635097643202323451464969643818905715428085955247591807332218189864761437496086904537353880440963056910934570168320263994059764891990852417226771039911145069763248613134326194221461455701665819095530944493436768772561133547349514276697824249511441170416233615686838440294316032107169163720067842102437194449424814150913503010284078138706294268303638867717717353957626881898514397151170830104920550348931856155714886322358791538396494866131053796548559888023070454734848295269847339066864000459494311206652500681653886488541768927147079599087596487439461759041160180633594209345166003210259932888178417255812823089001631348487416591347119773460222118845148835435428707179926176788916712604679867347238165348191217480409840957333292599290290806487042155879202695270904442117166320346627881355292526078683745450233387623252541343294328931281451426022376372822344212033686786869217762908090657222327812555142497169154698393304289194456378746959328145417077571443225512791415017161957932258771824872795483984320418767765038755185835990746903335932012036834643901779272011675490251794443410144894130928288453126440408209209046710175697139258277442642147862468787695164982621949786725681581750139503453579440944604604137858332225847990061058188440654407677911705756890513045740625749230620915730103992143721168648704075374608090352200588273558577602209076343518904412170306487571227625657425445666830410154868772631811756648124256178330493383142224257563547386252242776579076257743856952170818191740900337395233046061069948338687849579282242472804495347091159475205919552129841884527064052088358907751121529362369578035810310637320859315279855584203749182041109736467474498415759398146064752494231053939739201946272902215781316481527803557389767484888651890921607683945904083630922755356951785667979041282028837313324649642669769330752922366814866068365130981949718544884854998579740972918418320018505614334010833155604958466967885199857719787950948154625384974111796032114403000851987455413565507795435458938800045795888990649078417738304972972612465935697863061003478326564743825538795819100713703001961208083163286262314270563704107540873774655523545527250297985620763602352083784003335654714945848428097881830768834562754759108810347415243247126398185937712251257088456873803192649285137198438736090481945731832928284621864759513559533769294988456036174611991365563974811054221415974343736641112777369427668403083849075952159177977828430035116978333399736710488815513218877298522767606091403711067581646219685196447336627406367260149409191981373238629913182434487162280691588861778810752720419617688399309081485831987325126797661997627449103108122381413740194459853178230347795773981535808648957390908877146431131619659143489954214607419674842214827163212423201375996142618685330269227607441092145406855679335433924608491176191016371143894710018290506478939494803383990534766322653010061581435260281629768502994691537696061483929993676156280786511305306062978942297823709629983477832262148148073857625326172071044886577406751147980448690655200637681720983170269869302872056565922981581554494927120302101653915940695603135342902290223043716752644234776111591172498977924214094833066293940085076243009590462292867024811908460240082202092231860771375226899371902921302838436670143603414621260681928255370008117983540845040356046439716993691965332721242796127534841557801303117280574752815351714427736965600944317185411686213745015744365020609771355516505119837679809275549653931797514229886555166466576885392746569553457534397163413414184496203661814733160447108506658330831084777888778865387528741897970802938456488065468473746380233063105437774314283220118330862734327131050287147366007511503624689642960253643453938740670252213316261746139620398655615071357690480380975570436105032745262040891470359939557220966377127732313120802346020221825741459719531876521024750500649790682638895821055631979530625477635368668040483518172506132395430330364780772883477060562412975349826558083458694369795871822441558752094920889613430728922119670654546996237933418368571898109983167614231302595317248805526509018207171229526330353252778019268194245981691803533858920590801968046526548180034006681299105830234590768116572936449309020461056156597148194263527884041653277738648856065378528664512731102785566961331809971516186685507736261674131419356667694029350832839381543218137538162385491480899240865340624183794771199332132378072532178219475143611328402574405885491959421816214161055767976634640573223133688732623950207559458203510539482811537905591621130840466701724389767444449766489285583144091821408907732348171992298122663019213539099310408685624258700867839597996677940171936270810516039375473727462439064466265072296098801900151878343266403202121513753696464874463772569578121988638169954260587863148629632973719594021413773155376606929069820752265092783658949401731072039246252070882463298330545662290797232211198351844435560972361502122141335315057853312232861018697168932111510382139923333986038211798111824214331532341418768880267823241598522811392226635055200442267223770807793275075697843890048690135785469072033465379884279848982288915655644343119234559132451023593378520601949062533684675313970652241641977109286520145524382449944629096331904753512099537972751818546158177674761754325892503890768636821752951038107607821309290016365024058330365699990490573639970918765068876805035739706349693450242695929193911788121478915239276559692341724002523899125363591686729089627874113201719191556381493460903963252953582323690501943616911583380357018347469282119486518013945087855827108349567837785898151763228471267710456817960400641468180737744081516716617415150820533165116472721517030764369899902988104729271236987545330626047492229723136364461009515198736052758916988262395319095564643320577003925558123180014710155974512587307971224403488032770174662150686700111049380065643038892451041811403124854365564026305997675308214443277607095049842726731731401443571942566675369759267464221568197620771847076536826045705923829493832049542617305519970352723708390692852118789552339329150557730079214726247469790896320649332931178474713220050918818099386002235479181839268267872484130513758762983683546794069323384256551981439243978042260438381079426450719888232643717236245087527826266028399449039522931744767298500566325367661524559358440449482850033809473243760062180038094455247187746670502745556825108886267594126390103566047375368699478445859123496995033237693958755870427529183174507582952324779992094999000704524458446941502568568964366887039060578525662646772292173868823745808201938308027520062742829811087060386706469307502525635279225669311537328416094880964150158256939274988763549931230789331821660376794194261242746904648757403481498922695745844649982484701587441463366563576594254539607839217352233946561816500608291321340064784586164398580907515335514650865658118207850636966120871916802967368241995291122195495121665105493735957349040173289908548386441718540945243985711493318278356541727213409756766252706436407482426337566867655457379992482720384351695946664240699682142403531951988072227893012254346170586359448846998127731341861698512471887109306730911479670355463426950259530774018198781303764530995853577271413247350195548466472557192564908301715255539973370855362047888720738932659935024003112222702603394781479153257064524935125901606343861314738769456497640374898441002351455453786670255519231225826007877464583156301315511529590237718102735576224552704980294366362831199173708224154968864119310044963972807552909489297781529497173259491810059728278030785277639085605747995037191999286681831130566595194882588229508013942552402982029203978362833619699340940855558277696301854411451243942221806878885302338192148454818274505117494977182501794304398512377169740229377816397345306429000263311374865718517481398721174522466107062417372407413045059330607648719030277200980665880758660198788733649011431958130035679442016687474397585960277235554110895334776547032299276874777519622619905928830629535552066090312656136887334499570443599666873792237506833652364890919158262829829396659596471144774509602182490437790582559199857807635273397410562470002722773276258657603752322900966506389899848895908984729851470768265125821950881436425548886709001598235459515231435838747689791257729247483388753723159864575629236924044544160951958808245315364766403030753386967166315822580359757437031626024572288592152539249887161875768015601256109922182596559129984289010530880833868289983148155628347381920948358509516007908627450642930281715671409826765945113603027759249999992794870253934077811651966234269418744445840794766394587432752259877561162332051847027292345188531535312297001245305476217686355674663259441419836981378642700679813140167136393581674923116830048999728486318837322268271360784028125866619808418803564125041745234949322724707669954967566195532917749634936306443511917913120377383186701893792424880676872866527520045820877018868121506837402892230238259715436608726346416596843628128391232879163614080251411912835066612408863813584450231422643477693706538914809067886455394041060258817175632529283602386707359600133283811824499490326556812249694976345806160216715075697241709648946888811621443048375521285264670062800568200387603325195983135998809566520677820475179643452978181438425379794792350374571071891778598964852816122090906948020892070913528177285157311515558700635855823200199684686855474400827691180453185715265003167410334291684396655554690256545820193766115493287741728469155100557848471620663965114501557830303041870100220671391273257659980864231224665232772310813050231768743566643829142007036755017429716034540582576364078101181143518107586093562836599933697782362720143294069163296942127853281133816828347398044436438143135730970228291312486685356428996596424742925115923837495552089829116879066885674327497949029110187735070154185396440812930772765723269383275609968176218855246052477541535363983804791840838674382034780031227964424348689171025872814872312736539000342190774304422943203400747610020741383346197745115626887281393014613238778757336740387726942190723650759684665158590227770191864745385442522036347898132624418088552677809529775569351090519474677211853181745958397841106257135734308762009352275614264646343505853421004411558912889924219484832035574423948785891895290492362663723216088657110972132831746537710216840698276154301500641281364691553500769889993893413444308451946757269350218618065515879141706071914066766889760347288626218668189858774486773933629560740284065970328216285152848638900506555019741215547826928533685477841700836561461127821296464818970583396079484388172502135678890074077375122399355437317207762217465933354297298948455908149826732044621582666192025386209854227382625922365691361146825999803693136991498067042678321328998005088210430505297723506927285053086911069269057534406394611663724976022016666826380202570113262239531784683170987694241716482137770712727811985718386773733195766799841341544342702970505730191533037576623011220133208395569130241571242601444369192958326174362156177677605942439392812136239076194277434622876003798255059282994376872914161282577506452405741912278818732568133620048518177701814426731258917458109579367221848989024285761263219543097135365253618246920520847188540222391477132085194302889422374065024676916923976738930595246993542444197124473315011638084788695595066051737227597101647683479498856492437025031752411223479781551983744572132091256998024393491750664560358934413342363482934152316403292991586212786953698885179284710486117588512098815819710291392557111705837792474103024470225075418618767646736487430963518799953042236642300984855412154108193508340235524148346721954526069016853223531389552128672599360224157733400914523287005334830405758132650906019811360842903769307075202235919959156622636945544370252370547897539771801635020411754159700694716585494146334371475259300954835190119078327274680869535740038573689448705265455058298957081883553394987614667457857971370509470391691353096704799071831957113230705585813700162282023129264679670006087643429493400781356904037100316852667600810546005392844098319467762834349808006383097690756047421283841661270606099635411225297428143113125077520900982852732920889766798520504740545457355367130433331250697579060661406741681814747743622114386181132501364977588605855283425358895662836022752835140908171588825163502560620872706922185938422914106418716390409103306960724290513254296902720631007648560460752947058170855220095315066041659549412435720949392954680005007265761489132841926529283050947298455783689700208730611878741332728633467110078057448249166586837504531080451380629473770123204213605558947052763873904907933627363147471669934566430162031177275621142477484753946314226283944085670019957593229719404025683765866143267255917365117216975286784649258786481365254208189568199255180792487445150600036234236815746847695174367266945506685563243787737137283875346310722257932772055270667915071214590163581829885167948238021971549447886409593531212443101825776278199099644246114078177940126506182439713222034447711796665133717769544526716049473442615745785657188143954559974799270811812515977194962185486399912428454021155450865489321773071961477387537422538209668644670026913396750569089237078758249588852978930563228899481826611223404527027541638019074639207720650415929092656623639257141414519497668977894308278551242597671352250348984281537100885500455437265978174180809310789047738184285059477744739402474115027938002716404039235915459232463451585932852628089130215798270790283331517810431812406598631719670806794416979183044803547503167546711992384297243709551895823835731198961284544096897862310096791315063081344037368534619159931747677607316746891607814003956445902583107707314377435184371191552469121268274790119144197443488371390840039759437143047674848664522965667524833710606528410287486951601570940924662989965330337132483564597711144177831262256603908483024917945817116735722171074335433551472114120027021370044592726004501441006357380327652706219910323124676014655494616439247810608782470447373603609801375920789896148607948581054471254950663469710899076706681644326008113000968567217120443809593624924284817470097999977425501374127095485673974511306431341337047341471906320308590678185478518451617378010343730531973929733730771380186443308366895248894726290060744447344393512547176812515222332624197439310221368878110667149994878228151027395288828741819060339145417615499439492121507049546330540505591910391975784211122297605496426738699833414743570477893837701288645590805583950281306454899951680968025563599266942974937835746194451010492970721341364743717045083333162141915452988667918973257103098107729237541746372880783840616786706033912753515092635069529272761079894883894746635203378677588738931327381044231039391972252879709502558549533619201322041117237489038619203837103161830107887547604582741448232299707667403498925331741322681695695670136746939185080020155306771534936338111413247848230125739890609784489334230449242648699294051618802745406295473383045103821282748955216103206426448486862405458887761518276318434057299719572808418563967580030962591016945788050327668207515080822668487539736788823108101784320656650668617230714880215888857987329590886348880742526115429130955016076961783383133135433299873288071553197642848403689210299992782715889784486825373216821281628138272945451282445826459273946038633218052710956142186583242900558913226497169119684404392110765985280455452230877361962670902079927531456948470366267440231292273691944553118088268161251283854477442194671602763628997093474010469840447063796086755285154867810007170777155258702223474908407904625786030510924291839644450616645016400812446244205224864405508787594795417137802185047892922820821135364397124953453122994475718684142348652455472246312819436467008845617482010931968747394672805875189910788530767250418818559425225836748913045482094636199232742816969332902089051039394311787236860820455048176959310964018997476943926832468234635328429477381631889474685702346466249084257608749299801574672110329512275463342135288378696179437854407541915956572718739299308587985384499958538488159593273945263854369032409009012309455763578023713394197562535423508902777631817105797030257960251404265736461809214096339689855785047733757150606638053938344961368845180888696450148562794981435465979661951454757703174640336735451791964754343117361510616588437422162429358899257007800818223683999255825393529669048015951703195279416009526692421733036590061714057522423962175770666134393294776770811086019522562582806325190664431461461773223700386422269757809260790041999525043355179043764134562452908849966368283530823847441496553160459796352542351412547290397641593981520581355497872226373355965802462238538041998599900346677256306791260258707341729788423168716186712413511889408491674610502971399023161667770862457587248287194679051433996546233994207149716436203743724025897761665503130614595816375008228257207404875711663884624445932851307176261629561174114504348792220055265853844415519671457571134292368271678877031585379710012049698162974439372521746236711521294129392127598690152943060704631945096805724683598103224074750887152232884459795182253487273937271971320923575590432955048456706274178488639807930547747560732732479280517263205782810014491103296567289683912926054666652822525706328903546275544138092748167620581422293161459658842753249042866528723995179954842157352503269905746476764976148514419331641190809940912712116235004269407933699716682787566711941503555571809085600106534281214546699380175528153035166035068081716897284153219012377755285057801076727223211612203153684116674789307209933022074752704757602557515469893049219694122060837079137618165565107170037073267234442459853356634144839719461621543374295610294844271981498643745543445073566068979930823043361423149633897824786895266950346759462756019108317234729191792946715388483381513844706233523489285698508043601988042295283112606944282770744472366241203478242057828865932122549236242944580593310148705919944752437311250539448609005475485319392197242142264811779263065100173561721004946052749260239051841085154469923840657243961089848647479452061252513940856028348513364011651727087577956637178041443633758209925180109204477887046692696929962568722753545856701890680808277477225684761082294204790000191950205432591318336827286882032336358292312488192390145216964863196846279458156818682452236166653582559285015468229721617460569185291401568393127128324411074639449530396042731224760477184925930356035786448544267068886086246666009008090299680050467384051465301900629419883124508947887831754307052511197128162413661346488273604726456521091891650483242354425205378171759118363108735675465302370927363880190464719929964927712553311746312040486920447324334631634509363040547205573139049417838788629225694298648823694498609005133325415072521944266317541062957385171524551494227223900046253931291252718636439736303277865840408635421051842928790048867312761275050468430725293706334604970370900874945621408123193447239315467529176588708829244517565921627513294394245616809829456616965478177238431460849874707801360086510762499417480438991148774398610277330603509556097600458572932588101291635375813669526155444582708381071484237974224452306113493310643950763944345140287049302610001328289574468758381538552991448401096831536571059036089478992246875052228979145946331196942092563773326359902143476313312946934396848795733037778896418548466304865316933255070677135999093609895299463211896159700396589938195092094104439429514417892859642766685401462142178443836830035334819953578456210695008757356808777733304650646543744396789530452056812289778787792128351745202507445651898084660511239745446306486993699034150412427963378987021524436590301119777479585852964679597667362701933914317537637688836231738198645101162973081769071443984751893261332966440504738730512168589856984224231182367988816925496851296821399271213552271121892751832795732044452022882440003494193417777082321232427341780589790442896422932386222835505892935021438747466156164230103429658817268976520344667685808312305333779998575478003303932491524411275662339263538202098325230639433461940941738497897727035646696160251944790372021187029348028132617971696488650495154234403471176387059027616739588640049520060516944394744377839537029027692298398001309109076402894078774842362468635502285158871495998857034360768126945114421714016740251603355582917436864409751132640177755318239357779221630453347149463529494495246480269663526287965042489372154900130561499424432099227036459330312075692309830853050657996182250480875192924819720846501548383485385302246795215108691605901297505252614685494430535967630167720924726721273650540054417090248827872827424584368626796384839499341854869032539132945412152128626394647969969160707543340146299410250454745035920890415388223948878640968059322598928884851096036929702833052520903337786514007699285965478376692375488673119315574953805356867305430876168365632390975130202719723568631471421334860524082294294919699529574447614451299760588015672912505207930569726483760365867236873898993813419636333208149120958304318838256095982953337423095371934105679683889546413676359831378017007134250254754957477678698235082235835204691731592377156317952153733384116267604114450617903143003687328308442462650120551148617344828808642469765204963066161148918284243014349554300822327394120317973298527273449849667685847291988200170138162500105703559278318911376425283648516477703479066759674367263975095712567384827500575031177733637495479166119824046059755253627161832324704008376106938097196575841374962908195368232708162265807424382009231505174414790713721059148769329828406300113831480123332644844868638180244941899883389603239248869187389504165902607934168526021089734206567213919260713521475049970622368157893741281035851642458272450410170011400913860033331190649438156465463811230421140484745491374552231946739545559288952466615683141354568355003939188252580723102364795092507042969606231544658772582085407699714803361662585193201648205628875676912063143392185388918432036166436873040928953111782603001651769597175310242127275044882117220221665571813538009804317227074501968681152860298708265197948420612216352149620974237881046864198153022468746208778544266469801646816347521867259937617052846275382213853325910951909005870131707510373226886684918686672993012958662253734123782474783616895813546124440356954748113229791636046498299775121944081570372462999892365040360414914581431810258574559742905419696942315294486521392544829122697644311070857827438460041074933009622236876438882512412160165380306699464079997128210896279518200563767497403376058428408600785402823421655361925733058381116045418835555038363939038145039779875541969843152025826149133168447475717534121627000008434063537477519525085081173258282679521221708158379683663886614227856990420005984534384096155629710459052686481661742866390974418142619838944845140350821640069259456965614166144085810142928516040517309030169543702679025985603657283047288437174235458840039290008063484512602778563523173985906921316961484282604218633580345294402936006813419164990161313979581460153114449808706243650291703506663885124436912427980467812812939829723876670657155344101230757583311240697680363641770734811957876533508022876926041329118115925293691509688448198390704184656149335580915029941741679043938009882673956502888598319294267245934013168647893066997084802024223285777486480745479249104546974791646774771202659420665091115718659326696817570059140117642015064181771716576919776716075556258054158521261515797805520710173964125778835785324209907978586422088990820651557652252850786532239298255122845547829366685191503167059999174000649182130035362490445735921499812108595908934519105179332801437025398150236530303839023417511193939583168961401875138225347592994360586325360413339373202383422527504437983203970111387143854289736791890745005571872149326704053606715562395818786370741961391023994631897406924805250633090055807260933141199843602063590520371359655425782452258189817638025019336895319452681369902361269053484841824421316105717496329135423148070278182079202601027422922910546576512853951136092796046589487142183147590885497552700365635180651052118355212629450784120082050602182403173859145402545300291887578044674539232906772536435277690773374925826861379872047211651275821045937901260949117164340992652396014946675058958525130609095831132013740887373482359402193864594369952027093625095973395896387001212093003807432774051206446957821644127846579439616421355277112213639534658409661328695934450688713485827362436749595336061001031125424265521107677398803290644919842876399442914143864992953183687959555792223439965036452610475151339302430619908961377509846333821328258312319999450421292242739641500226771591578460581014109377725871446945771132472946755760207133786189222686263043195588913428467854401383851738125398924851104819734642443234848837306023651321239576971779033109876603194398526625383915518097518857635778006572439448552793907922801023125285211626755448124881309705895538736936117526605481043428155780377868142336474723600111665380289595130230293943744522260952240135750468362702071447629873502001036682598807966294913311126106020980656860246624218031808505969835777466213710545294566255180342021547134658450147909107075009901568290649794990030045051116515020931808883791184625240745929221507079419941985830959246453036092200456839724251918568515857670773209589837094807403814228719329727168125586074798469447871400858985409861739106770671726506470546598433614231642720482118804717278860285647864131811004131845429577352449453694312492915854701301920379070569914824189441933498637358378104715379040774846768469052656729284391907316263267588101551328120249754712939258489986212085650782005560796834607675730995043787513026884639308187152240584480827881427912287377672671268755740474064555563139102894565788795490240127777332259288451753224344917327117555608657016242860532900430170199262053115996627304192848034372673814369343871630355680347867389833308493565752612335399810781503567539121697981957796430141436769083463674752421824094282960080760929708833488658088843536355799151948275502232061123892776627728122852007989458694250870390823854190399420404128582683333614961962180703543953409498804510232107760858565020877263057988386016337053421419622370386048945045822213668761779135073405720478096817111578877007524051445823676955161602701598878486772819902620509625823511386150578862949603021205956859513658792990517289006392879068263799188146382210859976573467027822145909387386014653097978306760101423069324771175528799450143609353101182456583020372600133480557969475080195382039429471798092284115189382219552705345757022096272101234387274736794865250717421139945763570394283548618356743088340024800586453589089760259361431832692156910505796895048492811092341657656035509676037401875764111380316407384996778108952256197154454064335687926732310548865772197453387276441693839961367926457107257611547680804594744352136833428262096989064606087743753324368921547563556034256237547866793018335312332755752044210825756256657415718156771422919598653531203997562252618677127978411573789478606992423338532423166525048556897675114196823450410371355902452989106955155640523551955157894063225081193704323443117427336738067033590033871360713000416651520676694633417065284195482426720143836784007090407939912989923484444495874830759211897658774828426414340771874766160440647766163616761622707629983365856837049948586678560876340957471974977264346301807613714324627963096617676689156581259326601228101612018649808069761353609853714742000266967911175516925336712841528366795374501764354167532282730395029443120437582235044350642519412458804619160745403993751272974755088785029120988533097858347354576886580043986899172759724433898237602732474163036337813123135508137438780890369074167619457418101640754708077457228298532649548847558764266045236660233562623312379562326297662435215971240725929682907643275752004974971640850113590037162002574683909213913901877055505942101847325241654843280076582672235191633518054841138420564683220840623230484602745726362759789159730374709739562866747751303386549777428738128989599021685483920144522544381104575870723905123655154532261863794334905090829777946354066046410663332163181285613241860555822994367528502652197246805608995543649490362388180231494036515558594933582191187186053119456887321882000325801665109783397211310445480024954063389500015723755197750467766047485441815702577284490834050858213990319278274642798434344323809436600927843394902132292824746087895487711326154353035504014029449943007322942657784044594283812348978941409225094528707929316394897389329792728921466680806779605323648402447414867581398818328614203122265215605457702828635898451670859011957158389461937412670824828014203886533008946552379872600975646291773738560374135277254930583048386758605212561543695690273803245374130031254684568030159445194817300557753829792337105016267995752283310189679433097764145541682009281988263107709906499881687284816632372745262665199098481882813396486512799192434101631543370563597687153733657461270443180401177779384311450056982424237024494142260911328189916959944890102206211917445981103067645749096556542099816086135427749175070030858219172498199754406940853862041880262139308227167931406185962487870831126924387237870570394231311653033194681343106290583837833160820927526697269023546519536832515883006653653871443635142151618167299859122856694921391592910178107336270544388177001327699272099464622918659836398315578362246364986113076471690037116484860473382622783700584659880718516575795058106755201228056292131258898825551434003198655297066919532694749495589486254758178306789184314017931676446098601110536595984260877165901873947483642741507743593312870544989641754792084615048945086075640574126311254744887815680725227089193829608470093593192710597770363855979748112027022827647677885673009698369545898910133119873907848471021002542935538210334679892502437519511462334272143501377736452317952847143419169972067233022332313761772909974392206408589713669279074558167062560172845654474303245408757448671236815111900722031193182301057513829043951062878139593469067191269161229751272846264682482247488385142918414019430458273319636571212620754416452860904474306251491362963770389355673808975697202201591790824126237333016856040022482739604141492232454799971448416088927052094918424181896676616527655870315258214875245766056601146042773273018446570151611536881229020783607796216024130764831433611449763530130318250866572843801188701722759035228879149546120797542159051285491047079686593314673139814698012166862216562575112952738987876311828982003415306508870869981597574320902540613762855366143273823368264241057380844522347924850231593950882107597658178016710755847289716499895476220233267601375626762259298920814886758565694040254781194118923620463137249373370016811060109033201807055055631076589850708819058652821564317361944807224663518258472390125891941892413530248287838927422002882280736237114593146412795139702353931011546220252082915231828295767550990687630125035434274849814493227449277836405203452273455086328684927152134335496930407927226395796235372587720893298091531441051612344688082018951669967303319634878530237781325743658068437053597831984616524480618811886591610153250005509617572182961914380253266235755473184289367298039175600295310161260500785174443942569409976706527775132592796136266702700158905236320564408785254063460635950748810263030910266898391225740744044898262327470982330813135600390375795529356207476081489526005843582667140744564851335661316631197908948834443559541692122052169368734686853642030912031823224509608209011215839020713206953433103206626153074867145409450345129611200733033609265529653115808834814935830428695267044673512573203080102231130751549184264219958723686672650254966533773887309429861670497121151137364514955567910154977624645672155138887847013392684467583481291427246543822963011223477950424372406844448234828496957458635278490222439151089200646729016977563825928116747272727586593265420055701991758560792702997969274432325921137824785398083682644527483898367365327525512840810807810090952210862177489633575014957788363089141230773362898248158518600241591705918775848347096646767369947787212467776872727706198110000543233770381056861300670941315084925599280353877175779892117824527385291053016326160631573631687907363914253516175918096332975482126824362544726537569300855781965703688288468637952152343843668052246703728672018725063526646253334448069398128136849523025556523736684190278324257272478966969665102999410757605198893481017113576558827168468032345994926178783439707183527749740166719625222031148459875865901966681953501074153843310688689659603483676524652734080419840560367105005666175486652693001821536913665626991674841706216442320869092852783685051918891757449103270906245176231143558284634976147792188232373710986864298320762909806083084933442174103001905556839466714151322371040323535043150011015607901762593999997888503797088989968091433893683387445836767363095404255062354623241420294196813757608506068685283252803839757189630709374557198806685965958868868177033698848467059223610180387732553242632397795376538600150110391881806996773726041348855820123056086443211252519968131610042873511522770061581364207789413161815758261436792516694259857292279991567828775400804481523165115996218815676478143408945521989561173212774119979513206307083634591945857799760996119763284881287283633424881473462944172664602495002767575194400825586032563569902253439596277491043475273738612001727449257599729816315063772237627304650398766937144379870121335570670018711939863142037954991676505117935327901846429021921511821194090833679701359153965603321537398892120974817155064671170202849319810349585487455678406324181189175686493128838046981689947612450162479689398631708496521389556008952035133396771254604070097183670163217866373974436076111851637863749643686031262011933250891817350070031816014437558125312899592209946324315929514660728482854206643872319671268059877722825357328018574060048443890302301374109343619104873834866912486799288097106270880924833769671355811875198139816720984957080867277362210344014338655579181503051036560593703373900989253975491479525036652718048501120275020569459088413425579417149923561559591623389566028161763766926106833930746328650977511124679371699650805742615028678957643522728851605406407253366720795071767545959267062083855302772969872231864480821072465835102892552630241452997022942938119775152413359018010002809242074547843528333863866340434734614466379508003479732810958498147162996726577320739289206741767884061499399892777566236108772368037060837069359303301079016425248281443712234565563493909674164905144389213192507206830775733254576801325477813767401080994501223964308322132153365794388177821850369174194439696104413116121093079252456215209491573846789915537893656644322366966223927862222154399680481173568909677547611471954803762551429883986924280452807646937569836153759171532354260802243087058837000999201209914758966868069203571300061444315783445696264105909831702001834013471939020733573772080910835885525453392770656313619905859785038607077409741018551785291087362125137374645452916572519265933768446659731774191046414520563223145167352827135561020038477771874336898325992954998388523903277372128292893020821182295918445541912470582180140706619339375183657304752357892339917573947388239471800462796112805126144768572227254409313241577873246017682544123561769343273974699472610821516178467020624286128485431645630182191446331764027638087660418354886220203866497584141781471348096472122174603034080845860646499893907367341319393998309891970003665630068014161079949736208943917639825698539423751824489564851900421361359395285224892109608610978501137774526979663920551839584274363831359316414013710897857425644824837353275540405919005242954644593986171150879533854610378455814459672362799914377781929682422536869954553841192288885463689891907168862858933918650455516571210772677011506539307977461155944148643161141658027217884834199774700224233942913731596923533736548560721822118582424425173184198198066641676569695319927604744115110786999291817166283830297289365929001143482121769418499317513472623686782488364128788252695578114339422650751918943369356998602562473723830386117244014477174898247797808280049637907821672183754706284348734100982519367649977850629492692652588193150346422824656869267222557416826927195018370650171752366495939763700908367302967396824101553197961777643468543022104228278607557720774179436366113305311278650973059756838039919974583140426756828342513350146456055502600967310746952080598452297471873077791690996897076231056245887518314862255961925038335779907694239832238125731946486558597668116169992996459060018547382597465562215293885276130079772820500431150824511209069931735556454873993098312725940406389551781833801439485957551119950594685851059095407527221319962137302993386694736471086125063436904876890836980405135269624697677466549039687155098773663156513625048876815371439309402245853100629934493207403500364707052488159724060731069181446923890981390665378264983992057716812724026209481715932115538124228367126573122895566269242302098430494826353907202950064132202471084966797802222618894728746502094867908952381258358597563891799133400846455897736323371372200712097234040409318748381911097970762926261139704099137570241474418325435804420959674050051050458266768446493080864343867476171173745591670644038728038553389681831517669802738583172980553999687731007837123313181586420819496344658997576897285344176867743087771514770322152231318229240168388060568502762343243073049201668909370705124256977236043081131463583086411634345959007012332444995149259567581430130654263793626745721464292198564694557007402012238729482498061720283321427866229769147824552647523131404683987715027834521711984601779070876983334300547916718230433491149840048639065035120838025660389359020710099769023326379388041222693898036367865202827837017696945476766448366858854912569074740622132831774281182124568251437581719902156394501096563408225535765393468562328980077959077455413626901282836409354901611799182068160733594495870721087911175585472986673280687499776255639141807656486372130240695746446400443644142840056206495604875242528109770305257660873126260656758400010183414381553677015533652393668435819669078109121637544903382026710231057208943611435087735177785155342297615458973955892180953368338451450302956399746554399992685197576549480934369481723530213812030738709608210202068552332341576430237371739661583977396981946275505220521737425512957205335253231729288732061262472243973951221773890492323371676104904868315243056612793122945773078323949490396533197178771245061569162646252301420306412073164585309596643880687077835389083161961501661070850394000199067798372418191047512670842151352012884488096873398322731585698834940775979616689331995897754067129062852836687693493483727457295255308960692846552029778738545407925423973367302309743248233558311958720896915450294887435788402827898103621922197471313592817030644716479310321269241842133853877241492941609412981114367515400134256182761215868383972867963376895978205121377860009864915559508700585036448463364317767429788356191538240951642651824931187431794393066789336776416367052480532644605564672050569860053488984755225610321295928015129624307413352547013394439911470673439690590616935080219869725722907777042465533608149180798655151925328343998851848205187119222205188545329105306517922934614649235029953234804931529970141669357903718337505424214547290028288663636919220742637559834748596830025709892053288264572288230497744536893837718610998222822689996104212260321258856040665262724344225982571037742849586042305276613755825366489354236288280986077966449386829928812794555223772004533487628032888294066121825203917217971247817821089158205227307924925771057199975719872898550508655602231438033193491835964408760096735996220912442834611730795994312382441517898332667258920430110439702710404544881259195725876911171900330728048804252867968466140875490820215421952817921073409937056620197898254218350651056245972643202820395593590907389782141412327256187160230408085952645913565918079062496590521449055805976278797576449291685402781695119018384704239868209467019353392113422026214682388260880531982191528874847644560789592836697524753841795066915281634412417145339886812500086874621717578811623126015289134171236501321171061603398690619040277266786259246350964358413601377465562662343247828110586759977762223386853947315812379518144210188152136977092478366546228643398855191573294125973915911531420969484555180964986615298060851492423748902408278547880917027024056987853618051798120788640800509465427359861072589383403821178311352131486830783231355083140831020871765011263418304234550938997694639599699277716351753188106341574949383321282356678173328559691269223246933018579047130947100219515915366737722289146262951025362963610963882297299828047674416322189684873280586778705512266670258495916973036769253711117486001563758119897050602358456873682554985725597434861787612909884784154460274166596121659009647835647685787396090647755824525317666268428533171367527640213086069344773963619526075928263768251505266038451644167489134535436776726013690711471680736202116390268032215945686533735194595409962079043261095332243347369394427846394359938649049026482514130712214827549053720131746390751593160071804429113041677331838855362286314417029720280289462777285076707194621517192603310880548240201974167924015253056663472895386910986584782029179698420487524613757569556223782474084091700496278840671757797888131671134377171031035246584909224276593428979656192169136603633795992494631461959008569619278364180034516469155723609855453837068320461319697404780912361871492559731085106293992186475307480426619507625529945843290255815770638423062364167659981145796327294337777428595892776851846805752490889878260196372510280272387205104684892887364784910872435841031886658832939833451443670798511688217870646719734937133758082808834010421971992331195441735953119223331219011784978745183914444726406775250668530452058674586642483380823145323762325942629003304662266590085905667000310994583851518373077983573120078662436148027741151545525085729718777919575664104436796350385123266467998241426211406163118553199079369380385894691002621315607339646948986277814941361728641808142757594640692425434718144609070511542580757302644729531705504174764251742599481229682599974686359616533710473139434845532036543530573705110765569105338174073855118382846516580621805660658867008105575731182609261322954762886885691462850991912648766675963880510694857241816567278939845326486406876286250603143166249927946392096726630625010576094382966593325696189927320404208638407585324947654394956206197359217018778065266280845209323050461288819634832711145705567302639280066146710529527008461809354239879783659878931095720847835357501359079251701882042893808234436741130166589009294716851701725350290895044347697480096937845539319154404490825220673916550757388644260651178887506967166230101270866095083877824250687324510907970536795033742252913140641879260910573727312720873926298788968977825268389338745986133064988014612597412663582698211470804872265333010666814969372211204103811323401244638579435339313090627896873868072488837676886692584960554924911459465050126067082013047035897017357564307684408443748375296397784365674346853930132550240986981487329265602183461733547510095306886181195816822290538856149971644781611656299006857455539098915426096553622003169973116637953468078256625518435972300843766318518828581155371081274139256865694479631337151580445115382571268621855547295462256338699015863073905829010222493758496273898116532323808489472963430083402610375361896529849333196096482164025137624249272840702949135335931138440485980221292029544907467596040605365400923585124217157776582233970804184203074238582760413022921686525563609674168411748440797293910925052229348029795719471423572826829221543767512844745296517180096544540287676864996590931847162456937724249832474203001326502685302191424933114919360362271949401569642613761034726143322147631157680883302348417945664351839223545253326015156920499012144964471032343723286883034363399376029621139528712547377262985990980279295170941996990255530756092140119038033301525810377635225780309336409828714243673643550478432617731649920552278657622746743082648841165544226961719074237560743189547970471413357002792904496109666317345034424285770307258216893163109207580752878292707389519756393252718501447022219974176626300078853812775457507884660500004988214387755837943949598099915423809567922511231500656555516592058250418559703585494096018954538967504071578520157670149598803453849056385173666346270736257380985049670989246201425390219034559766132144237882335871804858734129994795327783823844154562569172842335966745745587742209179880393245002836877785880229509533887552036958626699142272674185315745915249549140613869647144562387427005014567147705932521547560047594767922051750091193507842273375953853829509108930608610556921943595958026441683167666154404926329948011028379186320254538898509424397452730880091435328204794025692448752324767493781674691997379637158961683868319315542022977488286968819631464929245917575010763495437163281384278160181272011619230511653915022332235412173038483916515776047936649669962856506623766397183787042815742247847570851142803574486184184511730098072964199861185127749538453890837876610662795437828069078073165904545892327947640129625361404511792177375920618673145393592725213184990403561858315326663737838098799735640247863710582630275097997094610747078826362045767836817118764660371009387955683503437900582957932596496334396542278767536138882327291465143030148410423439168714110447923753650155299480317820278616558462546803045125719967118358559647829417663230025920341654469323174023226293619734693718317304987259396499055679642435552594001953978906937171964565325937019643543112394906735059652760286364102608700269283919414940864232653625638421191923850034109614269224518004524767545885009392677118101426140772927708963486856304264935597015453589923393277258273655355596022383741115935302590930610254314442458222660302748968130857838447972689396606177422337977883523580247129963434497812676990678978249076798368823042613799953606297562097722368265738914389654080238724292345745283765396432158994956270432987761729365753624744482831737387510047619290804422583362859245817277210989728968265096883155350836841030016895281603637921295971428327592812249765868927798166167258679973019683074061778479466601069581363802237832836858581743890777006069035284642146051428438075724249166635812900022533003685725360758181374978615831678036709142684844527029763462412507013492800624465070223198004268481702596223854836286539047047340218192353509461127817796721976044068737853443913982262151459291865137648884484169608514266616195013345745091628306758229790823284804293172582370902326949717976423266675681598828001213553846786631890251488633963166336954612615076471566985402054211496684194615576359471893665373535783899929477266053233691463470410259621608668371880211715369113017982796668032057318841143259465559847637350375741854275732986291751959964683530128529188696346603951583939174863910648486311998049446839760228420890825138344441881584210688351389445100658648386632302048202887511887295493566795916357022240585026424432072237182839435821963509307721223737372363291224778499718686619484496824891621162837548517563287091479447406252129216982820133799956166819107501139384148800961943083649135589573775978350842564863185947006949491632325422725754293307456616472842892478730215678462203402043475275040082634952139395276115249450033483249971542113905820542250053519465600325234114742007194748941198897551500135005497781088867588463994733482337854964733787454237831665596837413817300495500057646539449808756041501225633557068530424980375715415888038819594014576093963456934671505426491405232875506226117698717420957517506641872057149235511859023876676996010259508776754783092291330654025170414360869400367331517874263647128871552686833639987139511306356600039131803360418090287188437392086975446110479541934560416070321798373881516911318628252010806960620832856579057915883600967053946689907808922207283599787879093228181532783399147095225254809209318889006622823716470978953693748715758964912480212866999481399170453367953295261671630295390170273394718416314824557777161217817883781841254711023167069240200562960443127055157112514556513459203540650213930766966225739394713487993614330753398350736319034264531116937458656063469073870754818292098471951171717430178026775446827907848534080067756279554379012982995934875580881582679914340984104901486508509112630735383540900620865979159247142508257435826768497273543775936015725566811978082400701354979581026547208205651648078433849727626302965733169091896884787691363605064500257840556724964592565273234922040850203001911750752981759606763037139939851714854255436437991485487229614130490655854246709970770729346781895185368277954561020224464860041408029029100063375630139034226608149398250798798541792732114480628327890032215217041644776029440359247256371223037303142470509740437475226008186405741071917802038016932420014749183099675437390767172967166839768590278372236930287922863271412054317514992685862294758462901022724755594455733565439688586593747842491677036392434253647202973729910049594389047709803618640932255337911217134633960668515418016675241833543432206774480069189378459348627314913730688902510538801836353646130532503640102905647888959919130406423428250983916797494335170445672250012540871256676904717780458740871877766585236145237515674603742181591028522190164039294799111292987226934148827679879600216012396960651417972897061669979333988746026967260794144559476252283151953645744110227404311309026239393311429301748739502296555654638858941196858348893821022934119759812827063682564976599123183025273506596033164168042411679681418984705837431192169669037488914767399518449287615556379022511191940424498735001494092556524588935462581880600199699614582681108046415921604166386414201293952740714206800760957978733068400028687562323849421851026157819993355322714127089824563570576469412289636409054183266042141768192380600543247761541831118845707168844006816719628566337884226342688047547315657019284459844794298563751396360367905858600627706547304424188271649223823144190161490684731136940546520663282061097937466810046922370440227722148179931762835197562689349134053288431972697491174729539578274991766326772422441723660750844987486058548303601742350579440979881167517931914543404828248640551308110129285855594239917618720391982220525849210445740256978485477012652862486620663478020001346323580172911885636451867869129028252084387572436503877291954224583117682591924540369484522664169794743106008116914821928284022270925446029197389668301935438008010937749564506378475608776046429773467264978054817771833146848867255303687724891728162476455383187812080406766545145142121987320993279521687815629239707528505299191750594266850226502813149965644728925355300410781850549765227987814214295535801485975040600755518007406957497638156065803669052358368009665307049907337034480175471179077728043723340025216671822941888035359287283799811662051022437838890400867841465627996113458836617877211144420969340095270043111247102561858473616339482835355107223343375781442903175365595510763334056636000712173895065043376583991578636413432974895251079983460189544123891643333526135683139516079066637483355902803027747583302586322542703198106889418424491590769606711637634698123543944564119403756594223386769407521129536756705965811775114647102175697022500291372221111013390363771181093585458195757375313087195492737487182654701878406800031815135888085375544928546757665914821617175845911052996986234767916832893599889884302457733480605398185521491287817603413690619167651140268224077799226679409959465207515990645926153277653287478202677212183696942264921958605531544057364465495942099856553363918606636366872617475947245851716737434616295662361066825709327609321507632241400466700666612322564206035806071761219497207276015975811919009638259514817748772938948267504353809641939797030820503854207173425625381682163434096149530625723313508823829456248971550215375077401933023363475593600895225845977329356308968079020337897139084427945838300821013163000883679387637970503923528201990144884845740203171524177587496112999355440068004150386346584785322678422725573613051848981531179629974206641172972028482200641636114194120175591969920221306567344272317277062049269474892460622776197933262493501621156849812138412183594281746297082780973250783567428291265958124144973995799837592892081266475457613029816652434506842187733693379432467585865885191992762785259457756038644273571647796690355505419784461609128346545536123104225645809695725394627529515586263621289354113001486695292179501826915186553698597484321917595476838621138516058320779920343057991222509630895980011411055469867920669742028561017682272028715863227276094384970849853272476911339883555852330354159503320669572362954373763106941982405403695312535094930580670149691932220291130394250772996439803956630697374122060334778157598489328801943827362387319696762185031958613271760233168056525657242795013272846148506714634159551792860671246432684414192994823155586714009923180448653909825395319236215493731203832865754293745858855147329895698313173047889986714756364213009507531613376123404588284248420701411351025468179457827440460532655055553065139228610816078635338936069093378312874883766819097571393389254650523333960910174292096772123863234371518434919053579235025398705434810554716640261261542106501449843989587949076778859773064971412417260348381437761718561261090920527153638761101941305570653305693901401008239497205707570627694967032960018784895119744710802834786304691640979745975697406560776642021183046891829648654257984708799230816169813365667087446122964461960830152219543631565381562205790911267521388676297289901013560239151990332266702327596321244788897156025697137751095192874407534404230185751254300617232393932939416397840135917924614684763767307169502077164649690247885677432827201716769107914537045613686097532273098207985141660504385674051979254909117259179564335408885725026762326979357588898497939415842273198338562268882420691755960550088346775608199955366533141261050972548106383941056579377548282379107881353679060563684671082651679814349934074144516117124165065704051328750043232671587469076430772716285893726211619554004188368400631034641086701705360916558948775198615098603969444380219362298844508177979332713741716731203436371241258076926665414985392323603529539050049068512517919174715441351136998784522190138553708669922817995389116097672229877555369048868829304375690672620016208620117538542648642292551266344619134877067178264781477171317611575640271966830473927821218143462107911199662458434484105844252211637275591502469675484443375531134081121542871319495946419382872115550888825675217827820237829021083491985594452004186556492244241391777533944655210916097052036080316408610783911437724925826218068355123732150655038082989075723957925837247558443056528197670377892813022882387029386449675783360192090839983374979888615442649889687427928434284960923882248669826247463460906397921167043747729919075988164401970312563516871000464865624160117232852198431159028386211881037324396098774652542696027218775934333955636396508956953360163399205270264856062980316705919704884290192916768788732828230715717751098752436663696358419749917669321335027137097688043740597451627385025291700548180407488869026876506653784504538863834326624913936324304995863271585116998939212692721721975148892110159401038334664866521318220332745281444855664957289264595983375327381184945520497378379060881641709812505337242535527262364834545229400383866595273419321846575284475304521148959258502670180950450600886413769168143840545756804224602869911258557336935313716795285520594200714378655659446559040434636111853585786420042974874901910467458548293380582575714122462800134679872373229289949739109644839218235982372390647467736547866205610132167285223128649339839378565416362847050073525792491161172820098961625989220554319900577464598623942343702470914660334257992052075373253550819469191192409246998951836528421710411875450050046357123943509487782157341643902818757696430429302221219981872145287497547586830673841778827294499526413008215825647458939286976732504079167187900967943071025538032427398275918820238849320741062539884970454170478746304904793401692723229538930060062085664772148154559080270076229603296819125072940167108529962787307642407798424389574149251258117807030898077094331318629963544178996497701859092122458920673706484805059003084369573192301113363352944604845758144517150133478051948280504370161230883895077001404019936927491273250171789113517876555323285432762679664886927852776211231757597662731629053154413881997488017465728786844556759332984309698256530785173614501504806941984513442423929990154267770222810396806610913180900636611186401646932404021735813089608965361023940189462228098627675434918060973724656562212133479157243831135789810937244021141923687861271589568354878124513420250592653118012119186719438766439672522858094749691251246419068001616539806963205632686075763895984279952501578212933611453443902364175899742582768933837427613563983883863024792404080234749411340423575320395300509639096156600759439699234675064382632334742146268452737825293590200637537114933302449922391633461565198322998533133969191825883699351124224157863758265250410515496473082984774696217113888029175284809552573256705296246900694281246141309094742247099754895052416761946953107262595411197240249248844165312494606353216456699569328106601215631802775254768016267465828053083880108837152432409062941558356446088603043139673284286253834488343126431737837450556957245377039162980192749349358222241555215591099942453429948682231169347191611896893611288691747066442176511286677245112225415826887968903302954222871793870826941494506702220302012348940302498662606372462764070120841404542736605177939303433445417612342820611481536438612515780870715326431390974703440906019203914017528664027044740203842761598550013277081055851876686456951324822861061753039771062439101812729124033971142311166790128924127179776180395163845789825676226617560610507807902836984143530222044437744401788112856673598124353682179923747877917877617752926649526684000744107134540053064634506841562838481798345358210595440292340410451213764426919758574937507107784626635855641123193675115003198399340745095201801422820976188658610193578011974061466077349148665913258034383418114839037365819365766795247909179167592559579891836829097980897212951990517803602146001344434365273720378022049122638315281669465889448613622186252774670761600815534705142196469477383109764006499639245493405853388397409946743461487639007198778420086970971018367616140261394714071576500029229818208909038658695852552454936310892196272980978515172433266193649064865229868679026318181714207587684141492469341722893903451741610456833606709682046260264356135155969374628807300898186788392495683841175753751571423974873622409457255682073516489186473220249811079961916456327523322045322503583849177728930683878707825409563359798784471318855165734452474192655099523140181637367816230981857556777822031678344151585251400265192790664127633979880291774965282912621340287441301006864032816862145149050168632255051147042172389700860323354112569107785425668913941287253023512991609725050145635994320496225543426271148442300610785623695946835611535331763416575319178325135096647078457502008032510977149534377387170960996950534128983507401138721270833597694805948663639792360076177080293126248026181282239898151093804597791278962912800300183898928132269071584629806035431022497517382389625718601755484440462087498940410593849741447575335443682887753644120920075508248620873616943642313243969316189319085392567058554321572512838032203314144584597215795842520749092607711829814600786642927858131590085582431553275607327132641636312136764558889588590224680885307752242154912892329328412123640944356617886957883917151819947582980319089587115302812423920649016027299810129316894198091559475785036601009392475936281301589342366127953725393535948089175402995688333954955940847024263926171756837038213524658721066582708415394139820491606987926193567818280206339236129802749141708558457693110380200738165310436491011522332824291443811207787925169141435322120453772337518239485031245604868277892478781753708845672637025030243229594549277213432068817356170672397755342127596748190527938121242582864481883830104102789578108956941306603139224327302205268726194168148337129310847870503407029809574897974840689803945607066774655513197772705381926572411118164073142538397350520276190564958165473179091259715883935834159190707170817578175993131937742328736052879051770874168708397649715342432448669059235445575794651280057651688131994340831863647468944645921875085377255171890751627241362969578087892204403150649541655563216311731076981206000053400159004945093653728860979946621233882388270801946080558769067890198758698079008821263382284650348854346780802951272295760746781010971893675278085736250752275561896213003570897455810103473308187030989370338157046692979553738341393285366067553789250949631022038340153722399085668099185210667598543772283153264444489369943732692573559282537388917823448177339300043172763467292457989068718898779600000723193141163856764312708234081981580965733683291322655071213244891970996922441053182169146315197214587940925723497740944273051010173214997001563547540559389790789504240609968797250784702253393274269045164847731188437652103439055398818696380643570185469810300809594900241579334894254101493883017487960419752997058751601347186991119587512571865080328428782232178618350117018102539129014540886472583944562487055399303148867797626297548569780686383503149204312812384567184362594074004477356147739511644250319692671573910482089289646169499539234152683120880549947356595501649610931623843577485985501024571929289319896221639162915613555741454793056306147651026519850629312440100889856768138841337303956045431007530775445462512471425405419341626675804211695202451122042444328863049225494437274951936120221916671119772525835501320040065457163700742218819647270794431789279828174161607803613862074048021183406216643395088552946479836496372070007163337040523096581959046459198365651141333639476192636910997940388938818904920891479669964327720117067566914871910515084182104723973584854589979519564651772117649824757990799915877928512130907744260949421881674649892448913633269229246667025747402282919581717672453834712215379600056956937012135712124464829682755779807690472975446177785929101430836732518830946381015773931478690563155681861376420891267517828665347152677410944741110191502505367653083181384841913239778981190167796446444850362151455284458263895700800297174959532026371524668234200992573371537195239929107290558984394588196366677074576340670999376784241139699488493420254797091715307860334132266964517222516584186766033770425364838221264163524124764126233319592415215011003656985185601562999958411253506480451076379277449228819902509744135688148918873924741824288224945382682819213985595715291779109610267765228189796004485959272113337579361822151445209386333916369574484010719859437125591190548075838377628758105264914601282528036056026059755222438631819490763958465978309252363229651659397941138736557413572693439734804286586704631007920796372766560819784061395953305389388661473786697377652199063541830350341598659038162753742919674729422051502511250410018982987282805014021415557258171730235709926412250968979884152399089708441984017677239888645867361764138817806836875757906625477824645973939939050573072505409718659498637302458090290587290070745741731132447253008895839954978008732540253803764627583182779163044144685447131165985350325547977390064421139126383502547389210151348274863446581239144616288357842568549922840491991000846168907693116218762755362396485907061319841830444265228364926680139293093729879271773266157462573507395619791367977456911460682737077260928364327130826397473390158767412093614249284141012958054804661897138953370851526440123935845844761870255670052926141805840346457800077894095500291542546582241324178290496141250791485336063582578685324427658956418388398648745628599251949973729853267147264677254084348840788021206220149646716039398496925999635861302525122706458090993879509854855865153203551565742729453309455463731018226862734684069587127112063619034178043450300850419754263235879427828662601466600496154899709670570910789965079431134247886223180582924642048888801072294406646662942824676401332736870200571283880141392142503754944922998001066250507142029970493787423025428620382732158128835229394596899170393224810789780512742791081145518969923746181650836216724643532046065574166948458043193167656180486513180769593764604863160686807772754573079078772383382694392866318171225723490554701110691935455546063324672498227777384831624571928615846828488676125804310812705117789960801555300209160050263375512851725420693566254676230687672582488647689127930784686705237846697511424000005929425586958824511306723783810227636487653223762133531487471081454925381568063559378692142857465906913482376652045918831020564312320969003302168754236924679512767262522068057090435833172610155412155717831655204833172584195469399766236109592623694832514761320154826037793048785009224738025201686924051071898880889787631573622401138518637572267063703925573894965530519858396776201435361458409300062519901020877569475080237604699009291005831618056720527975418648746337774824169814410653086171764964954916889444763537494187908155460078271333538912539477742441178496187644718808306570977782127251632185332798763437719888416060517837094155173914927161304148992831236212372603455641199794946316610805673133588305675022852522428218111604023347370871624016176877341337895488628392849897787135115241325797873957621864849351314478086897619280970280767281724880851757670954322259912890890043715244486803557488472811429371616315167600872502522406846506211103493509552152969974477124235795135259447471174904221972301110103735051385943132831546213707387093597034120502345979361883204821488127515166788313450398058491375681944795533009500724754509298142884972907041928403736352902490164717927142635877929245113564458215075432545573807380819964734667053344857836791747327801174226531452856418560366702169838868087941535208377774581304248010074792310436101397162765583620996020278164538101658544616489998623954793463064856947880394609941378359246983923620280977649858097677897349512213298544781537008864279528593164527572635315304947094357770665802276467740813685970867235699733387711439706311027744011198105034781227007802290216515235246366432348080054271622305888869382359787780196710452785249092664512483217502661602017296106481805791790843641282556891543175375578481114691830068897237620736555373521013551897342511570372336232826130315387708684102667251272884142424902594011856974014717534138944536646223507278523842455259216285762061362386849138137930575946775467309573739981340340834813623301593275091465051142690100918657036172843636195491276620137408749476670410904942523002800852541907917582549350873964108770509349265817260751738820634490680063592301022933235013179738704356735576575159693231040165569367494665264112059069319865336550465107261453348490051314803393803787579547020262543911349010271295369745333583125027688978356848441270126228611900159965707812348642951721657263206915581275584918916926700281760852079364756982566399249208868118560603888371680849978936995613064952836437989853386664972806216847280604062651675247841472242399274569461088867194804630532948122777675701930435291952867793795076379489627128852891082819185522410217991476986134310112375179255554598967334525230174681183009843910963304073965062781819052986397103613537590611505265256016533662436661255793163938099253516332060486911563721036264716908181043289391013278208873975782151489196843844643863216631638741413387027320250346978785565418807224811548246199235601189329031403315784571306733241703452879011684802450902167261958803198998226771266254323043837238647749861998627998763167862847555706760433053180176433963577618346375567972746269217248626475986547055676384151894846303533051558136573077790644780069811194460141376269961201749140489039785106437135931241673269462732238786301330312546970265300695269892454131913350494991258818192558152845041736794894424081900027436978611050286776528042442847450332196968911966325957903135440343953491676111622840023101837833659549030203503972601331172376595196585208354084470603597512610197140078195683687114117793838176549420986269516561808421884702493181375749698257673855113355789369631252183223282736314227356705146673356745971697564192645612999883466748253129941615912884908861943528370721450640623236601043553657301281096377957523738436075068993483306994738182917193247109461706249050250136263933838161450913210924940847008343425892307546988678174110142301175160572189932420020605137002777706985863111320276871518737849067498539756224936208595775473632042415130105080457028726761622489219042088631153966576748268042095385516485792601241735974613776804652535720116558133110369049724346850860991392785043415004942117235070973999180740945449840790960755009412211682666656207556279360850096835557542601874366778044216623506364536578409413903365755602165001615636057970297675964247369941157494193151971310118138790090576142205377388963655036756529411121353326157656139910748325500911258228313526164823391139006269749260248092537541557299613984573199575191405449644723381681023279773857947454261907385312694879263042786041934308555879308590862678083764524456351684353312664666518214549139321012260044907374057580283832853915038942937303981873584612791460966535660505584672150862874182390068028199433506308596952024910549522688485832980001095697738938564632583156579705082817720089796063976960759149095543598026894317358515809508303583785510865196851738788849445393697637529079989109136384300869210789293681165673196895228177455735000720196524657619659251972878848305919546747448045412790817675472146275967620953403497368184838481142694528734516149114354354878112660464754257658255801505981292407607332383216848857057938587117542270312591052727913615914728079139053611788111367309035231765219944798081230790328978747609897823194474867798647986608241859796182952335713510275108273815911210744987705500481573249107891175150411914848892981284924112318032991982841906111634845291906765688983311300955057099507664318122093353006907757700025721113544601989842704705444445374631915863274072370120760427538026970099900121336123835396677296364137728484510740808346972350933375911303837365703158069581708555984491248613414100708775929889212442073442343494572196999109448153352314577022085067682298713428557133474067296242602871149540243332769054356899154720182087594629581067618574639005095141331868477234267161341638139991518027761248971684189837040823757368910764833415515774497416891474792154783498538514438444999001588435344149433350377830362220746862061240309858247736080484244571177453699687839994605890148704643196255841914221280680289588468354053279441626326760190815240390281395452175156091397702776210848233457541979376032597383583029385784178439952924568214462546522409512427199173530701270140367643878500560950140418374647386606975871621096647361228564333095669028452471434113130260725363223484390512492162071588760378784451651208711975145254258005462449692430836577416377086601586285697989449227416366386085196160353758343188838316208579634810631691680757554337751170690641722346276635488656907228774227204922562831360246540022615721320122231007829075997150338784141319664845719073100200392513359844534732380634669227220706528427077854625318864556682068830707030944119875477920708363374984631944419555307956862578475351569807544601396171868971209478934589574064780582385293850623837930013104092274028530365568156970333302872655743726718421717943595007386299286084501715227660907166287519457207436628068554658416317597610289923809912209018112641443958648856097832897732478722203185830129853157476276229814454153525152124754094989332890051269710213101847037760631801963045784058918877136363582277012598960952443285703038837136806521505909048764584947514597969734561104213865586016330089438032919559566083437119865923611675069493985732149260381511140263780670231595053455644096051011257910201150069786356379830515299971192405329633421306834860170991054416001568953727521409960228039343289425128187016143636695414911087800002990879769549433231275596501229297002665796744613594995031159583340516557550271868503521831548064214222824839871046387452242494476677141447504342062092706053682879767123502124455421048892063359685755690094476267588017151780640511871100073523304341054497676254829611925817596640406409283866020987754977270242287204319724319147666384237019707058899697604457211296521102141815019868827917302085477939599090627256783866807828695032700360224326326124763393074108037529972451087431423115320840508160173841712316499835798636440003172091473685586798493534739628125915669759085379978944295540574914086493282234716720984498487883882398018348245410995457714470577431123099392404138142203832383169032634885324233900860959671203049481267473805788938386774206507830791508997525046980988808617805128640997498931751499003679892793777879156700142627530568591155250650286080989683612922724826817618473384969153463272264079779844960922122182477407789702191326102696047563331862611749882772211462870898798604877928530099866653010887814883407185112000882800863776523729975915945827223388370988496607074004099017861883324579035353158304371451750203469349340290556278521051014937759831450467108542524743039766723823112008336182381783276315753553526991976825963882133321234664872513099032593773795410056370922315833108603911020901427267781897043135617503461007032010819082841774899237726833434211982940157102145216480694158355400732935956883150269960081496015996880447425050701165911544542332352707476443655785014898862155689262724042530787408353820491223439352070621882170880031834574914972297615367285099917835136738222217368810165910300494891966107152809419768309481450069752606078153078182646520596414790140044725450512389420772350046691054853936347167893909808468468472302169217306488899128836727941319905184669591177734021709611739331731192138134540837590807723128167226399693736813935921175713888573560293008089665074772896966466841111317111417912521170305562578300569591962865477108063013876227119864533951706862841670632623691232801571397150594652248274450711403441055782385824163862900590350568555008979580850987018511770072188637285938065477619030854865304290235693356606765423156679387935036291357193266027213567934992363105778817497687170226854362085183255581193558057627588622397830038136110331096307066125129478932402763310826185654460838838180992289312865124461735664279398271161413292257946963129975109016216748639549246599256907259472450094638163150943793885309540537550142600429822428635394151162981827259973906077449540500806055415392973760884996825546949778819159082758388841033638273664198423474149700465139799819464084103212485963309131719790254033884288949400960740931657752237836797076320864375221796453698174733860825888124250904522761777650171921347806186876519269063920640001995338551383010747939498973217045949484510941746473295987848687925400556519242509441188315954803864521783330282025800840645776688562695333737499238188095073479087936106294942678373156582090730904431878088420306068260467342422834508166589947732896785659193703075468517922739544832621632428534402284261561526391006218577867717112585047866355418578060243966905033399985628241789221112572800569557315866460681514560600103603587323023616924957361353220316808764490769313872666133886712399920891704157410224492017778637716210335503808912148936582164931416981184236250689502417223769190369250780425094978292387571672659326620749558157271420332456901836040483529666354716973929094480610282624811255861764897568154408760871324649765984635885820172000804283202928558592239732261612569423221408377403095382341459251313593385821864350094864493021926874468487426107013527856324075041035146068579240754411199258980850404207550247082087160506852149136517252975392325575863611653466551979741442352964108836303830180587345140047325241312274757054267479406455789373990381876502940598206308257794907528845384736195825960512259213602274843031095717685251830106305885809411157682459497231603124574277586030969767653928334049521367244763112704948645132921091713101857823878718357749099163028451538651119998350087227484984871916781231386967241835741482042092641934811993873234000982467104230006902540567522720119779853137501166720871332817223776740609613268548064623307481546844100861705822130993827031567937688392072526280629265580644202424102811150469254663435602045937694247366548137851973503293463955668808212009474630354210295689725133709351670976986404078659909864341499351842695841703346505385859529891458269486102855715401911371664478246932839347345171934009190339776214577233490776018195716495128036833874351109449141193857532478563289333746589429623645168536270505600907416459780108783390872838466446054294314383970963275576627331086709630375429123071874710095949654212019839066100494145072698090705426384449083883533725732004453027017091451690747381759620287731146492087531625700699908245971319246370873044437447813368137344495380743688748394497241600561730878188570480461134743637055981662774200050346321401866500881359753774703005660626075421984399599581448009085310850947132589396851435948967378296313726051416434703692488851107370308865042166536490224648727966346298527506369578538303408023417843857528819146273554806546802581981771364644060175668094611803756203564030819075918919577954578343066687940815336517651839151334622786790354273846246165121697682585780196663764431299302070849675502444747331009638996556541060762255707270043383166769190711364025407006722153780505954731240911096702881227401725858487526718417543382302740666769703207440256258357219565954608973462053090830783577265893299781015576185071155770762396848075460092710370182047874280446933363928993318974461233773794762966631449106154523497383233350505943327581933450377865716976319518552857398902308982728763880264605438976984361845655411033413399571062253998013013747671168223810278607572112194903453656124442076940120518429721426832007966020867363538817035428634461521251006454350824871423486586533699658067911886045493929917320443976743964843111884174683815293214433774065448057257232766838404642696653955726990263447828289264456835424910883304663030562704186131620169780822798040961993069549839211433172018840165800427186126632666548640808792168233873687047590364805513069287215937691154885885969247315485320761924721269911125770652021767737936457957643715879689372827454971513427365222744565141192918906215295240277587218031726560465617491636231697524478788752063289569236300250852656972477872653779139461003409675039072312472360885943704975631549596684887174955069301331498842397217460554539530498784035694628766321991399562353386544797395296225689734547281254302444936019166290101474252658101446694226548484537797684965597602213589417129384248354122941930359178201820204618090400972388673855811389239760697802225882458489262128679690270423281247854980051649729519589006984697176979587437158335247059754294508849400878852991408949623241342617073667974275800892979023834983370314239965105763417793558485860226540896896215220121566811615711297413913107439367302308344773108355851203955420844101027644989114392403320210771224194216713960952038431020432519506151624462515524132262820610280129202467886939873241992268817609493285352895982383148494024865876182197052564885634034934132557749085113463036327858400006090820247286132121715977539328615451340871007735366203817069591945741093279266183132534515223149083058000483753786378854370027907772762331680083071240637249959076970854247839878491291223067307729378177934048191572624858054516823455370779021134577157496444262826040311464284801784867092468399508173049473577824402531981774511622195299519836452040675771798204083851874878370319337205589904444231389841315671026062980198197233470710998597290268087941937878702897235953682766685935314027615313726222402054500527466509189969356962293174547938449766484965390883224804899849092550459974145174979831383278166194006282436018954795722734201247676756482002902699389842317617068279198304375124878692631790934603058762963118069495510158737312858691698722341035602521681754153139735839640163454787157314469375423109063044154034757973432734497917015572124424809506790222720286892448888558383079129639537541664952036201936383549967514266887062747449114104021892870913745715166048215248019670541495326667274125808095490702227614398486214832968638385963870381971898499749544294717063914765648239641117078684843323847583138037098347932140174498966456054014608674098866359798877916023073573865421123527651107742224580554744318617696605040683165803048014395172141437237489379986067097357969937408054833691334051375254055009522972585968948452090965194602806365868038990852846022211074049818441585033728799774842109567959084057411477076722310588388209544793190820968980957777114412660062836037841431990523073328551821303414605533172822460799815081033645935401128029242816544196338364991112117009745175825631602258947605949063142081210451109572146969452295728195040517468402287037594256275377792224722033594537383282916991907355886503700933728991542825647284723241172906284159579563758923301373133535665386613895900518912274049207701231825644895746177684038900685059538567492371758308013159286525659802721680848022161014280485580108891174740961822656660462270734210515670257882669459797991049389389617634843311057057083488806161536142201030325773595393001392752523512296198085628277504431405764896028235206924698288516580151479530326044596133455395340576258284338160774902579923977177959387648951813676630624045113644322265095203630388673170980922530854976943965387404428137564652879340701169962963531340478333747819779554661326800530470341354007272671373638772630650104622177265086172124257384334422457235032627585373236035460372539881403186047018895581270969675480520487350597907536257620711639840544920307812950492108199871973407829020052452510445038831026005408671200687298039166972281020708619848141406064372462990452338504036477868965221515717946323379553766104551752795435323206092032664629528018937958609776536922206790825219577213049349258433265038117534245335662170757019754575905176564337398917589276597424986004587288299625312290769747450198884465284521733377676249914434414516774216128642334975914170016765793819065388942033761080527338916151207180314675549891936406456142997684791776239405167924501158146496647863267988973772795938241391198221715156965651750278672373710941817034787492866168551671952043699653221983177141698585928064371524876626323924074271906817638319662289224680396166334350277952422769594609066084924155986552073184852598172520861662713933046645832249963468560683640569503802144508791888879400355480243406583239221054459564827677206596373591053542263630893776915130112131714187699515740996071255837041093477366495335221855742262368028184376066633252322675536626023671200225154382550958654250278602135230319579779485201366113403204452365226297588389060853378174129604621047932123184600637904057986730223873264798455003523097240080341771534003457931276786344548069873187075471798549627873798810450445906607107937562412296894035672287877061951502199920565043212984360054940493029595456704359261314620495887905435131598770568920289230843333597071127344257898085310654904592595452082833289382511997592561226085526377185550325938086506517960277040167834456983537730593805499045749993168239397197647044529517871058963478779473287308959838773939844536346250794555542733584274682274531598110905647568641816915463624699030279711576792719430781639334825386692461243486837716677325115587678633746115808170267965399732300369804128418227291040021761241762350444449309873934770885111123210158701855702448107558515279992305608818404550287393446345066977977036686499011638276151866527474186512034462981042711820290281932945038175415138513147963227008668627586112840739857518567443662756978011196306410654616318862084730352998758757859897291243998996238700655974766016906581857931572017402195938544798418835559748113943639916954729988501498242581178614711154082056710734728770018784928665134036269851975729114250588009061289517268885197576424952252851379798987986085950370488045514097796370980611460833423523978287071555527294085248213980992667545470769287782577040159388121734918068875524494390361274938967326634297443012173749093667578579729855321417583145455580297200079569876445673800180431868553604822002125637022412245258376527649670306855193460805510862377087104530320862738064689846322453013195658899073528570162155671512062535930422896601484689967592703131335754931342681754306795075940756239724316188721627790383743353917687017918963121149417170183663283236986595350809719555469829012186936071136864103505322073158050409606991677396703151982305950058426819839078118495926494200053225322349965860964119933042172079194401942768941142916346525154942042752307642756725374326694316359134748743529499457141697769404928001932374608264044106029634616166246567201106013778825580665756980601853332476746248000202663742536378368641823382522598929532693649370147268272109908203841344838610381269621399463462049297520461599792256156376561893819908972543670114938663433120815832618290370713444237107926240203845832642448290849248210745777850752288246490407799463552218251981543759528479964130418594830577199891713396509124670111510328046865111385279646158129502561862031848519571060284774469157727453587377096271660809818680294278380770210170995338242063905365651366105898980072588532569668574054137659495913533506736714308003221929922112180326258215266286920754944369215910475792248454211171793247819782154087040009617365951559622409315590375778127569319077535113858731759971052605975906534449477796904293520873032914337485264451969374481473011567264617865686745169087381401662054800109739291220220407055546489063009528574154311514452529049841941746492134983416881156209384445840353945102910224884133014605691487026414804824632155943461334349519233024791680057750880226308803856533676049670158352646526420916885477856967175131556473343480967622773659469580013897272250213549733248351856771025945088879458660414627083847369139588029375263203907577762461534810303665526765496188737280862569617705150883141674054325850984273390213923725066678812953548534725379946715731894601482143469987753429656440444793003411779618290193444239595743789655138376491096479125122121625499604560957145636848819051873188633729098976389227021140481623617026065677616073571093371831564403673709484920099918568494194046112158715256482123995639675737094272003041651306646865929853321496958249377287685236731486976449421695463269750611199361664599701863486375716640615635967614990531406685880133676772230835419251009906787595603972407394125484117183914453106146878512615375229370205702041386292962656812681652494331391102171258832180035930085316656553194290805678859405262384136380329712631096537232624176323148197180380990572977046986878772103010764821080458724777831871918672861134476235031624422126503847641126617582565299301174873318634562983108425193860846395018859977649105731026696218325000771137157766141331618494629362334247199215299375028734212273431043661276138335797294803443925253663507743700950823512256431837746541948257300663028383152207463351637696088088499158067743767070807790028579358697427361845469755746224772914298186132000644006109675311479963433173057254040908947871141582034082294228918577287618693095801650795515098929842551256722287579602931454876025045805136011970672778751666118043574175173526010478410736460844076063621512183886939785197696280451584749475910412728105226410386530874941125054812939296390938126723125024491184395573888201987842925535619720653144012218841238342344514491233340841770189403952638586483822737848975258374376930802921441742227605923085959483602692286803656864428944610336255998401359496175911609822176208523985897486799800522795485523465732673425458880550858876146845556004017174865706816179469658090254000152305656953798128210935567901348766471867245536078080220076324407890166093481753601371434862574854691351240096325082170508225760625614762823277588596665692507201297475271464645674366370888477910279123109617656528363991357255372262431483296085740949859157376010561978817349983602804557631625257886618813337625200289965465026430110819327126887455183117693874993219894058046707809398940676422292457255702566581315448939241655794158639048039690036475569951962042453780911499374719015540986248497253604721718975568710859640171301415355081646375480243012723742660538055263113879266186202766985188629821680079933853407813893810707915750653564412171852030945280047458519221959991695081708656978729936995647551962485658240826684445229804085072871249198067297635238703221616510308411016730590191070537379006621633255059908961394202104195040750338887306768072990038354468500187966795824849889930942717597608186278807749133503517126118705162459981889359429849474696545809599010588454972140885423435300263118244568040564373755414032963216624604349380151467668415315711446869496570604236578918349652498958519303978391717942010574382525851827793921748796996219112515441224038926155439202875868260520253726597306175969751313801004571668450587164135557907707949958539628147905346623299238035551128528553536552584382578964596433044455189409054748617788658743757181208956860094179474246229381195200853508738039601255012380495874163858134339881200790480688692780855817796164672867318656260126482384985260050642036957754668528185320976359462725998262244967024667105349435787843669337093519230531211366498725820645119393003833853123779912981021939475379305156458001196542232414925601884375021655686677038328830612975411576816617367499626703858823569444875021878551128409213693853873036496804854155879880289044926998578044500760595227016536747247565965675878348903066045395556914418545865360420341656066951704575300073209171031791430873314839872306911558893853052292326839546041044599064302995704775692852934131258105672870658902611449282948495165285804814230200316122256626743799126389182413795406608229752697384870520105393185772914027875213478969247221971698395230009571448712741230202996050453631277499689685803963862329514837307040990441237608838396880255582640010233343912008453422104172431410864865361125113518812692222415819982171029453617541986450024634440850006249043109983439501428378694911741362671881496787449124678285655056881073723578473333805087724564986022592518747722945123630308900227639428070894957318122180631789380058064669122677586917190511007855231971319544982280504730279020030760063899792120688647784973530347495981982933510273844942093509192933053457411693296951925854870058228624481704797125467738366860270734181919995628395352066363776009054271000616121140135502578213555838920008420669400981828628968112828148644570274113478582761115293272896936278463917426304681173559883237617952132734133628404677787172305686298239860303417999991839449686000209302371148633054357425119680024579448011511037065729210443739206739364180668219262523422649332096874978400566536258066964923493631476163785755510885163971974078363603984693848829325222524267334893543018788428796499825583828008851530140692312067881608882703527343171952620393519162020609135273913447818602854374158350514272343378866023846795150842085081912239554555797546394539898775130106227771990289867530202232636071982931790624046055368256110527526391414684421931525423765452910926761641049134112054234672619864501330341814423242198503949648568373603324586200306917060956989593194503518793279942261875065436113673691320560417263491252039397131149940396406380699802724918912980091451873560893507977863301476938898796388772958838018754150630370748808284276175180023434087694519752288094113456221056287118317470721654520408758283815157882301663613864095385651827245640771953671586432916973336032296768899368352695645766154662764128394651556122749593384550859579056837553621578985214822720052877782393654835874686629132863750750510616279206711367798065967292187352453194947630457593300325888686074312226137557235110457144480326341763088621965627239875104944271656472741701955292279227698684955751510412244287588741926235130908140069885354630901279703669837110195386988245144054865485078253223737484419042768470955423488732581251296393185696129872175679964864167228063486369806164015465237787906741142052188577472820794933642124755980518441904156817541854285476464033549641407624077287443240908483702553137136827639754397640524490354765849980952526726307932880823911866858898311485686818707214671428491559337661027778532961813101580742536722669762742303343911651462940049382982149925283818075338072208460503250036619427483828895974226824619991277547626281465948660940215076686365319494872978961038815068989335129643273894526044786839810696858752732717649745947897026296872540758683308150376444088052605002612658425558602474759940895286796708657105195513736007611819830521776174875839786027040629577577063184099072671807626713549446053167986456136299241262223275106144162558452468319070780814972379753548812481334202789521604433930509707006805013692961477434504714368735826894107405508166039338268263090635992648733196717207916165349627193483522838356271652720187814008457645734908379059323914553985370828244951304525653982093830314260493670796542844059565264554445794595433875964570853746771368111450495319938619307307532505720049391684035190842043974735215800675422454075572900738036001712855199633587995956522036828995166297895329005477607586590859432962799112228251837568066844497745803806123710261993746600860915124913454156211452612756063426798933724618146774999467125795992115185735923845470731101722862173394985299328840690558484495087232602302272876676313511653072962508485020678235125472310958899112586554426938355737742089370885602965818915579081517387915614166642541523056417889869017199349539749172684296746019173644687539212923638796277382242775624540167869194565929619862356063805854490167436579658461880405258543018353766525834855844432497073370437684287302013386745078317862501075824584849606002752691179684368498209442322983929965123537382695620707585809304187392725981479533194579432384830767372419067172330151091610268005087650640107643871634473832665377687480633452356102831413565584130751030204507233690617315572448781464876144238180177103398213985177001406485705198634867505185580494464890637759152011345830599396052471447406545053205534958712481332889916557075255202406514085948044748903519915900686505471742234103384284168432286145833275519507053306687405594329390356185547230436157474963683899950174005567233572594074475305852160893414692240145609399565881044242208672216202529653607277884536555089472871244212330154230084486480073914289907433298130587241226948720902415391369482386597861177357011049164326596659133195221343375275568681776022447533230088324979465239060895677667800617230221722781791226842379826939791420592315609963077328369720272010980310621233537776186909229083811783047886911504892617550416398272979716766288300013052567151399513223235936962374653580520715007393295249881894072202476883969049070247814259398166935813765715227289985260105760738841934820385054679479683222943524089402022900920446310786210218913864795550303141637320995258047837571157875437542215532609585845321860742201922625197621123635543187303471176569811750494338687496582908683567331995071033970578303632582109051994656433036526028946299644396890809753962544425116755533090570534434755942223223111149791051414511484595608120084110970661975332366316021248912747777908280518985912363260955328355219467140103794542576214703711712020270294851505442580491488305707133994422545311101924572930542033816139358811042154610479279301925547651658672751298850547664098332022343507784560234818532809476814876820211492996878123134720764295017427692763333117248327492670267484068820304619546229564097560454790796313520237480754507024333377351943089085576563662435070705864441196882638670180558975041703518059366093977877806726536650404632914560891214041637103023988350012942635851812917991887613083743052994719666574705605523399125209991936586223350061605904418310676343806346166193108258923939711609702736272635903208446505891601819090206956598207711262793701376352352076837660940852266913236175349012219384370684326566579838849414361899915582843967184922606063280814845745755941795468778282127196934316017634229816867797729711632695418226545999525193402956498474142736351078202082632052440310552580443582818784347529600082877393200327179907440414296689340163417495893450127807957969856634040908066219440462288987309945639408335691284848381155349431619570492407899583754569403740714017604959222870656468696459884863320679203763724479162514289606914818206044986459611348314826738824258678283019103749922430878430185828772760902864502299295685052954558967747517258320695109980980146589021040879770531122336834084531428367575013797406869221254362655917814790999294104073338662059315134627460993968582880354561581768754038671240505089398902987258058904780934069760464974032080723770043112243144034697881566754141450554419204915443800040058312560741892614654282611518563959771078139791315020935733449017478272903893060330473794750965765960958083453215530779906423353218902045298119954996384728918889283485104516929197251111014824273746175467964688732333164804536677090816337508949444903165257403360629925804149178515696566122174325046142198515996984228168554703130397542114968488801313446811909767889054201091532766422946172217449855131560991306369773265140090538929543218313001101871138207244969228234528727843817598740523818242058073712872555544829491165795942710031930776344550272818152451397197070668890455514978272180789559941081380457311530092569810058239914417684185088576432634104878357418797175541814040455404148460257906528020294154586919084705118361151323470882535301166904188488714075163778664315923274617425963353672346340257342719861840289656192140374504032854665557850737403749240656297676905261153192254756584960319171191207097992471319924152340843956407501429442967817211671561416048611411703630224034074502053199772856454228167348815989114906101387600285959775482980750987823783382484079690896159621763308524644721864773157201495250489673998290775277136392853027691569089458935370179899785623360207981796735414791987768529094134081659819093501994855017635665348641093789621990484689816547795127556061631380262031905422146007349912024393010978798166683416339094446375680334984544994145255784333712965689233308991449403168231559880146750554028072317868924172549389167433726011773527743611024637224835568347147144794145137857587377582838072833179861968616048945846939678266741397208078031903427137702853224445038866200569908763447651394758402429907506934044538767628430642781144251020061422573750685791216609399301334033552064374827724350481772936532983216934465811816905106616119177454282366155214010871484331897429755272753416884137176939501750913901964788783596681516814188554896492974029506575198856103667359382206570604571902201116794531300171697486400080029757190370008668710074220531631732891658348739073854113501609121092918489922392317731672519067325940452533176702070412954250977041610194191346435953699611996905521524729329284036589824731073169403286142982914670781169541001566870460273202429691089575340091535542473442042600376473202391745665086056195690906021551769178883830647944119819315044523844161794503976771904845614762929679225078291530010967009691134772410812541486121999000418541899784654275396127777241147208846648455298546933506274850047027927240757179678029294363227379840586705919125169393410532988830615251847103751535591477573713299540721001526065696356592287938681219091816206185536141005748137366575808904942183017021920407761659855639150944545762555783638766526357862067804499065983670760020650494500668893130802382967078327583757991732303078149352535294838450552939087265380262610022999768435741730262732223830648166377513933892256166107230247360126903306687576460687769390461621783564507533314726366709369650873640543801361734715476167618301525264240903870256474533796507983920545951996591713832368888149078913162696453077032399146015470859594020735444548643841482347729043822781214439035702017011016007045403347622519546052079319451629053917062528552358389262354986204032701783820381198841247436447943526878811855665421175643623054477741827960227623697067322775190507527788131960992995567267701252800480168478025081419508064189483583814409035281173808465778872034040614467064397754231487406231989557862760908132842259069821453834540580553669249319424503287244426322033931088512337696814422135550375714698493106278570835131547405569977815748207711447022317687736344683456219912768354753325659650482171263142732161516714748511883510069751539318188686360554379123076900802081107594764232186705102366026660740236619477432243424802489827432418985256864505711957705170855155543001160403717559495283940155719981379891764614173699013623334652754963648291447229921181369305395261275106302233199720525905048958493881022327074223003833336151921789400477123449800789336039463838676085243034593263426331604663663306341269923270586962996240478531044568341552705763168988870108732565729032307973257448746968164998077754513189311860223295675168358892986267594796052289875431087854499919659602664931753232012188084584362796964691454990347881572176990977249447954455368915147969014512799645380928615749614041037072546196958413321297559043318061865795790152045728842558690495589641402574206726440294662806224220740782992897015422404628234181493454092894934808689024348230779519497868444014313935931372224587610609421620648590014219214461131279392031205520580103386321131336827437086376759984014140524597316521902458753931254164418238118570636720414489336282586958553537021919357107246215637230867180256542318125878493219664712892305888985679390624857096640665614630034377729223695910406545336251166509197043236036995269094799906132983690629514893827754495197172732299460770860781461193137182089551555023629769107511792939207832010331687832135751874148625104108701758543912416601641681482459750449437574220225468900634091937842071715347773301073338123012041660775918335372750469484572651111584212662470022579676333112719977494544561498809816848363855690955941069089482515322246067676853418996630994731209085698195860588520792721452395671226605073864336643097952928128535531627222309613840858300404555377206284890810694643282089770643391271909720955628132257075398268826699983675865257745653420796259728703720324230241228912428107015305592927430232071106917345543522856967721747854371555232310279095747614292158986761068401740420169881477748263387771834030423948317175147055404067406383927645360111711501876954755408272465926614357309208241816044195711423280427614394579561227937955288710199850099682584209286631171647086408223104001625020243877253357528486278890117937990252039596017343595321294205358361960053061926610681527429657940749976965766798313962578536966391007683671826755200008294929828359870710414267925493725962719682636369708934000545016788843479167104222434996572651450248320002294062840437321203875418747225707178113943598530598535580931000835564331605033505029546558659706168829945558315972848113590314197220236747008550335362527240728885934368256431361120984114310612341613232472832154007183844685886534771730118178238191883076263594367744989705596238188941197335526890328954671130718056451636766135512115285881694721143281532375437244373841141524647907949200939511714456052505201417765061309348192473407074426761565006172879139564052639969007935099856642479638282496202820715095704335477888541512558137498484015627115244348370904071179425800354610869730310313453200145157610613559371517860124776206815552649776531570864429498825929344680944786594546652191574679944840556006967440413236879868707464325570260689788082465852114358333827214343627908753264088115088924360128064149551002851661884212634683559505139006636433956012205189146669738713789758050850348047093733918900797269498232567017255618866682977053991803758625655436399307317837532561050031312477657955113232539971834201242892962628939161277941530560083179454631128724447003673014068719494147813365317993764957149753805855259354810452610571304887946147915209758277609477799130458575999661627993537086139778059216810791412075950886396705919151850846887581169930065952710532020365918119927522016714414273261105014985060645842618166474832522986177939037913802230782188317337758702786702078221434861795611806083621123729894085929661612393311887887681103327506769305053107684802341347903704567637041582316712583169535930452721975472879461399969593533859384833708296248066550844138943715361968279182069962377907965050047643026272320735792845856778658202377389769639731190866939956089550780991402996426499964668930423241247475040993298632820917799725398074774684291192986947238209041618596962103022779176985977317183182132783135252955915391468732024095008106231402791625974325851037521307114070966713981940709061773351921142679563737354224859930118966001234704678693775508473874542332221819243520840581753285709264837634914594413565928329050605407091314318004867969765136397997016240761778339143706609333088755321323140039233612389407828272237287265801990333293438677002469136638482658813251141578222505824766362946511939075736250352275162106296076248954405456660471189025897416328463408814296035775153729272755981342159821599476638300490188653172653707238571229610658443973511573331842679100881994771229244509736612208095627889284375336909679462534688175930306436518160992828603537114973383970862432908778688431411976304364312074787027914212292450491910594895348563857777067300122172131803395019960381521049893664438464618527877939593539040720354131442718318956217750315399494942054871252272214818030042117639672999979785756485169755182657417493765189358286555844856420000505536830774994916098106069927634823265823532608851275291539524486102473104432323428397964776235321027112796819006898007813324997020443160152376846771520298331899150391407539435183337922641608739212152233296997941800534925557226387887510661710686982644337047348700217104956509873408090936721186949005779240948388059360682293745146326220265803650841980953691148039178157648878800318440535751912376294934133405669411129666871557929052449984466870411796070656534012958659587684451074092778501170200861076566706526011918987180153643542865179671540889980779454191432595235517938773046539021189181689390245791863841460424232534567804720993704666160124057148318502872538827846240755739499739813152482428305082777589477667353885181209701679496158977602096925199977292753315935105654124872815544930314218031469297252999862888168239555718502689863083261263870754619633634010992576880016998986436164159434672694334632353183536947626733381066105964977937707639144788333729511476857498496412166936438060741344591219083539898261520658071093222415914323983433063712326237096419054601329000215676401585518507899002048047673391826328918862898986110949731045815987914934218234235240258852870174612063003016892167299902215591425779113942203681630098125781439567748767328072615312924765236326895831234127131721175230375840049132532736915816060048444716456307744569650431964377407988139731105974858319645701270689622947291340591702605684689012523698237875716406358767945415967416347500164425450682916327820119221970567684962080361157558495958839163113257143643852029142482674111459025916586929262499908362317206941037157928350393559348142937204367888388587795612452777690620615551384442538444689598181421166493448896607783729517712641685191921682181919643220723198618632413962668001392478312581563366243127329203809996250775944654116531472938310930473817137812890881926495350907283579191641602982576815091073363223677336207522753258081556572706863960978505691403989575506229631535563764322564586671742654999969412237262290921072670288952039091909054231849453092459618775670645975422730580375218029573489256554080950208976417449733188309564728531307262734590636421110268467392067006227705045402481954188490825760682171021568557819632295059568291149325640240713509232111368327384575522491028742144663350471579359869130464633974321827236195852326580688733795387728060658734247215138873602240385819468956102639888492064107499907549377704520315385481067709673482057424567237241307139768331614868233929764431164360986563316616348372725835578825918528559198657717856879900299954137096810342814253922243496647947883612526225171925051692878445228441870069244960748797998587779070907393521985923358749462591752158243604558960600718369766253222960248297706384651203393152947462675325842426991978746516331971732018438542910307424409021310080387467632681255356235551332197877084461181914583590472971099111819899846469002220590567625283251942166755602619178825014435696078687252134379914373432308855124664966813928451337189071168990372751133958675631069719773094208456796442868687947034741491894766207077024003194740088946392671229159335299410736249211807225686946461258373718085824125841638751371877637445016661376161464903487531347357836441556285225473515089756399251964070265005020455679309335557398845790675856364639641367280680362031838863271277791399514823315654034113006422245988002899627367018335005192054704514110867072153040445408055346475516137062446601302630582491478546858493844979586607981929967972827580943455060994587560072959472687265606358784992701020693864675271574310870971201721863057932801907524414615480365786015885303061859947746783747569525137863460740857143633160345755494922336726514170596805132349570017942426672486057321309801925488504384873364337597878910561121518795094256346572625295482181034739243352175002867898554156285541689624653706916784664060555534134413794365768911717710084695223480842983299667075536777609624034212192884554435692355346235538030558090044561875599228223219242245968888454384192637149507736246376423357702694614604677251002057259742541578182588392010643394102438981921238026474706215190762264976172901692594276650542470565444656806017375724638451106364002021397536120872168655592815479330963404193737444835938744734535974357658648401515792711155491821273536250460086263493661119966106504701332332037951077502933492117215534609232009216864233068908593026731124174178863930521906089780031126076829196573702881544311878459783584113101136531904332204757114376116793441838605557808197920417753676117051311347299601059872027663817354250785489547972792719923021891910022770119093300185463754898603957096859777361165405790847428139449158908016610787109696416864608842179857840459450204110522841122377214427382755082025357006170323514043692663581320205452409987349623720588761020585003081419537753627092884120295645454550609384559079547843341754924380222631266522985073715386535710728254058135834793447473315893277308032543264253089921779644669271626610413108182898114041046538777440815175926064033463541480183514865109228642217190271632142466855495417261361085420682380124281106777592111534678538066665015364185766341997759287016424980584965312624650098559925445135876734196001722055607529603291425225641054184643708901373980773630666873428976450075238413992350557876322066499019623968621468465990397224130300971732835037501436648356029353981468261017773750884096324034592860935239919162993001327120266728903569037642202677044999465843786919320597651291470041420068644651830890822803445597670115095876764738164369789080867854658075174638786591446264136978179986487366808171692373455104648754466566748042464321409452471788953196740307658858526724327893644491349982635313415318045104126934342978773493600810557791359034716852426543963709412538303288441837516741392632274206815491048991972102080965289506749569270997649026563349045870345911349415592322836162149717106849514893702261429251182423069131341050207018758635938815572721770281691722846622500770845129278096419636096491434226553817897158392624366750560252396699166442434628895555350632424878816417038693550740097885198509022350424789838964878179497871994425037780403621567784522183601274997965045861279524828852154173183275132256718053658372796072624070673106379892066243556963278381991891538606899169979415142211724542143609666550607601332179614031371074282744612372350065328224427825031330312383237999517056207661089851037309248864388097588417486788409956248486683223801058538631720867724100152078684826820488032597380598935994096104919004100857990386105675650718833216553974311976069633576717632906324495201287177426071157322168694144929493165554098998749460615620274686338285097916967860259443936174479925898275097368641080824825833426703916445588952534925027838159516263015941812105920249887784946236363920740094480442555533272063641299618682000409770506137193044533446086737315452342614782037450471638550515856530897169647391188495417981714074371322645782728373515886032649894249993017637071525543410470769697544520155184243913514659314446328610996519418048377232645176680878961266319843955076427744248975845541467215090692935218646210561449906177830011121939595705644259649404092380093867178559990538346564214631042114854607854950923201307046053155845286252077560800859812389789058538828194616311789505819494089741292469932199416427740988045358288287604161896051136326365424887597906084840492809528724642964573708040713134062766719469483686388058163632663593695530629331544293487308255403987139119747748212699629347647588361591064479862854356691514832859845418944524205408974857879581432694181057937337019368235092594090697926245467225962060479991893342640318010354907209267614335111081327086027104631389812726302541219435104063682056908261507658398832268771064748930431357548975717033269206126872997538109636691853768838505052570110329999536518706590707363332934777130654489634420289478398659499161481872224418886743507119206374727414020272877622164803150857636870463475823536720613644176940334957966127670154399623851168810825696275059985970118489758156330490867227751450999617634347408606922747829821184445075797608085398857588386998347869524008548630924884965539841791338802455461591652922642187035585190032502606335994700960869612709016094371990093146124719536267907516375029138895908349734892174585841419686195031107948578654008274932862019025887809598777490590409664793992652770451575495337710736869915394496932013492780959449341612106178489295653008330271551916226546076243231823849429362026296880265830437723477961261314541764722133116171605304580905090395052947005837833724621440048746954061728692867052970016419867407169420260550901707908227207252585557299112769318767729794697378116899669856975752588270280506595773579613577126272090246978255605303288996352817741029717718794617544707910014133411933352330611471668348164200962749590444360880434661769418007432530716157898424861807798880457065153739523335858661072629267297066908712371263573569065587902180524267173401112899988165327518741532947263373614403896237703750853316963157472520481824759886802630301484322932922492753745304763970394893305734389113191510266831059994302907182797526828542345958447984054244892137641071891068639990630960011873982743538486205095448546184979281246361252888387035858504025025396769787571899088849915344694081365722610790741080249782749864446186274040118128872290488789195254617571575799902879650398196324021353716805921028768718125298738788301713998388225179659232940451912145351176676735759905899462322385340840477575006767180385750883617425151675216765159216182592740686611740503309409737609952561568729506720233289477036102568250849185098403509368152607787083203167612297790992717027211759573974372893001268553978755099613723941573795325565493016904434349176635212669111555831793461016666421368870032970519825103707148678462646791318879711959269060076005112753199302397954125402970070085360775112900499702043985396700888766467637527032306361199978868802798364075479037654511841279544863362896827437559145840775386003599552008347146269295267486256795835642994562473480682054583271592771207201635919983661841174938990872891782908807607298424581966794065805858725394726158899249338862208155563627317466973479985105868438699349116037701305284709957034894945879045390416447717954879403196908452274402357115056311770141471981776884720198620014299075058629545643844751647300148392781961849641668123525710032652388714672252597263861528666103414571077523761927196938795391472748871407885330815821737029838820456867988747964624233036909558007454308981210040156185586684259194408715735348985754117222809151194898137288817108819893622928168204795220500583245429806420296129921055211771770582939201511823820196088310292788273459875398338225384811073308350868503105170692818814365803094434454194345037033490735692323327594551079481098057850178261170907460371930814216454916878223020283830918216023182005278775353028604803079469709463709975663139742473334053046269182738569953229235093386651324812413402579128647297113155041025153682962136171921965457887314886903163653420362092777964015470513547095218293729200912402354045909532651844846581910399764213348769434714983857992196922152310657021469944031218658413413323164681498464079295988317708494883520680357644527529361854376376739468298733232604344875728676932710138572926829236444814968475579405851888104371172230002051721372495711268060826273740609902215544540844139230432781529568243379404799081049078748574805106978024432479442301120921620998711712856811823462672547519120980383839902298835752120782288179334538241554801491142102958822176425996562776101364130207674311540432551296491966815271625853021754766389539378529183103102421931870282992210082687545212032748289319001847504834148460669376622397452709668474825833694750232192000741838430407497627355434558357365841816854321517228039120322914112217307433749170024619367334427992876736792086663829165015110484437613523610351680348527990439170588254585206981250593256723622987610209391979647768576692514615335099130373555193643987939362791368870420123536471247646825058186360937464527563613254149858377981243376337789441647290895285870926660847573248209464409909556108621744631218153042103103704001227654465113427773154625570031395598371446017904118870561913120969736600310314473021884883331370410738976972479784811575477003898915450816652899706348178493643687870389659022013603011751042407786649303992446609404537941870616241937269876177175489223284993976444860611018927870072412150431580650465449196856617699064527363697059345959535138024700810181264652932256203081849753008006876278559115106023567276577961684457091623182470031757046713532739572226151676314824178111744976893788366098396203318425008407549310711014439347206181799959554167034790292025138007884859999478603579754784508662820568816527367476750397116272832408876716202639065888889504005886437513868948662019575571393801944349468609213197464956402906382111637461438142579464614013065830148441065235090720526232855391503731200819246201931180139190358630883424203433716395669625013619184304923653830670558611771310883380577090165015874949918166316513643697918091816596816023894683477815660024700718261632208974961785752927097365478777200425271185284709565972171804465841527969264504636973851006632482339123037947909308797787603241416078672188184674034049889485602482591785352616063435013032161526037994419820684855279659494366654985027568124984576137272392415093562753556975123940929194969043271928063148760225256525640642013737306249284050180906506932473126099180136494242932285626342731959756021415571457147828261646177974267615677503086077090792071952526033552264619494512670458418241024255854831497054931825265767321098345754705452791145775852472267562350195965999552162691142381983466725895445274741825183850291197851152176384365202866449649699555043066340257027251708404729617827297905242853759628975701213822770313149559202722042296731414079108068752692922964316282723213236218966800745677360545150919635056602756233512586398177861527456027502912807328119967652046057020574118099319954643617427924053223554780262705472567729519000607746830186910613870104846166749281350975362762505586901801261021005463111670877650793031953860464118797384138820498798173068224810087100044559476493567503123168426532400618608636510098218869610029416060112254811077310798776858130221803136703484903228330050529669288797586440584441305859261074270124765054366075174877191141555662632992291913725704102471807619225491142887078141556674637527325661864951798657187649429753704389118739693128490116515269737303355354988452733787034276922868213507203764789966290965552741781611007981475062246686934898163233574108812888318213723109594919078086776351455355733270326619803774102819949317492730032178754980914968388971451119171192324895421136471582111882681702279369854355225998592816257872476564616713010082640658108435520447479607735837773504863295059990050572041491235018038642338991512289663419198361639657255093610462270377281012712083369249669465168513847730516352450479390317455398205579574803031800280188512461049969333372274220603302023313688809550995599966843588931261757252435983426041331760748582709840626895322583353872485251661449725080962556656865468210420100118246686111374317105631781947005983760339632967644053138564686980124369421261948873456871936054006062030507549591936786417520427910731273414692577231496641627835879439621855623643234649893963936769538608142350021053257903801136506997602751272555311076854417795353507110267640890453232437542488889083017650875069270313177612300475066510047323193239114239997746948217072960883988060850018458298034171477206934841956913640508578244236426552483989346183951151446719647986075545841061756215500076439136574405378422399361235123057176434694242054871386234040007475916147231387741808948628108711295095652942394463018119718741065339975936977894357024178393846289266094175466087864338706897519547575260224453367436155991034746280778806331150303851332933068734686701397792036130635318323457313120940013824435365777694926713295921124931425718632828459627360550668743532651039350204194936515734732750290043561960249322035555333693589040670633242627557597613364588173423173509659529649094705790993760966339360206179086313324845283056471655189138877224594816841032708056490909657720388790251573405414844971032112709255369796017857308035277435806790210595931145285852827715784508540907922956316733074105831279972211912010812542173611983545432849529302475819042127987064096442379131558370084391928571337254382379317494588576837759945832309488791466290750700837277593150346583757529269634337534205948472702139591217980159840000668031474205982020703753023287486907858598528828852474904687257268507747240358103980192105995468674631642522054288842088986125384796935233715561253869650173523230809529937135585050131814982383843285919914744340181714682991221374970601478814524113024494322381704745062335851705983375845094892740360666150528913943511106944304997928832646472622850796649708378591931343693133619549328856613395836877598304324661725439577599944884628450756991502868420234732831411689676762152302215806393847858721430748252233207323924074568015620019575281869969106079456521600798355137607515319221937387907900649927572985180572857804304120949860131624939556745915830417285734074286145592713601225281524085711636432471582625562619195988215750048502682560916606817487164491855879809319709817216543604775996101279379792084093677485992992591855839242276450392148291019743760788159832295880057270042049398495087157740239167294070266552645265154021174577313171602422826527016492514120839207344531863213846080364745645974409086495622223215700719040273951869808236799335099109072477760067947475218914872356352340534529655384055033857898614502905658789599114712369821307933768128673861215840365185640002402905626636855003770239113863011956226749810939350134767309000568997447172993879872507440665443881624239015074929925091858538166663150346497206098080192341876658135866135247504947326513621789009115822810584461766944074374546968088868758297712345485741573454801380743534284048830964789440171371563911503874919135873098278506287310445382933474524112784918346520866637512212340847678663109855805215015318616207135357331856856150098520163904310527336972995109639891876219444704438936684636598197871294618560934004539633267523741100810273372300068433778870893708823801091119493561981941773351097419155705575279202944523508305647442690995864194487954370584526516304451905940914457621291012971108953867687405960930492166871497799045767584008191572402120776369633820974627052522606693178004208148393773897311655576018452771181054224559935756184420148035913039927490928211026864734906585205099896807278764272827235727236593328949727828127596223092235479168387004162952008431526757842191677214355829073655251176383117956977902108444560797955752336361165303688887106357112087909502479160806944828186848207777796627851961011222209453734980144254674187663925735220682109599108311478871784259111391935045379915020804364442883778290604994880031111349976467299602538669103791749447352736622233348626760045315288475815113648023011181835670807883427906284425495531781266546199929024832062190034360415803685515214149815773438009052729198168699040932868843949587526672033966799147596723720527179306391813460439559491463426144516053075818764515381846285204730484756597902631635073823298728739048141776561095095209869110107580307041149992169428076094310384241570694823935026867686003748411288747855767923641913686996219056535971409101153560254521533994699175715224448452583037818361491513273684125397412085963165808127107060596205203846100247013825149304347509774430742910866354452739693560197882352720643331100660769526256642328955369670207223888321182326158986556475112104290024330051198795076909569941024253909168181305896142452436436052846896255212010977777525301635746522352002063569902421307107662789120828253216428689055487373095216492452891082057224956284754306931204289280103872213082896138134321167769578413295486344198058666847535092471086761300622796135812436027357535967825871546557423069875665485720606705967260570580016790627462022662979148278210663202722241261744387548506007708816057217835856932583882627477103585662240339511653325304089441994879755975865200929249031724243114854470582485358565021126002170961139070447410512867562951768152003650126558238403677556309434250399755969405121080954888996271220315623582269162988856319558456286251429422881997228146085691781286332496631001519337214250798553387411166828866416210072971821736318870961321053300048778788505687665141937037159225516041224465061323327465735324874933611813621393969924274365064635109689693478006773225431898133221888969828509741281344367284129878454061401806112351840570181704186974739310538812936648526559192647575505952886381824580317029385004369779518775648932502828713336497384075707300298899766431329078646877536684056169087555126097696450895608611116162996556573500164124523994457050793265500402904859398036482930425226590470918870755180678909145139408897942719889985509937946776934297091527020259850358567758170757950449834090955911180023076648215654612725809588590511261618068324445446587167942438891826909441215700928778571442600128761564916283766293302349835162830597587998975145827457207286535988470481040922636510651506456788794337227029925369542663615438533130685900761291151978111985337240031649714285095324400587902065609009342128561921777045756824045298145092214720255951654605782109398801135672351048851358517749651475026748538323231586770387027753266602524637395310763503785941177814692252870655453613436820961670904221349003651947530231625385300160621310685325683493873825062467137973098917772053770573771922203395716803769847855317423102615961744000078358961508013086930659447023984327700765891131348881053547848969944084857810942974413286299100798396380740706639295359841520896962550448495261950597395633122554231511762773120803919415368539558712991042781201069339744401498582440202034661356086564006621892765991819656366885186159218191518043992982675964550591950663723548432092078040993591677296056918126032910367021113039065223676229991140155110098575306817733965266016085980215240828822066185777182107746066100749551835739183735906003776019268148396437749661079092211942135910582752369623987374393258196997124337834025695884164998785453800808465376640031591006729199526711355218627370941077358811388501101926959548737453995218532296704074531728094544287371364175688206425992730525292730119231500570910149892754083227530692657852023319123168535512292437004034012542721775592776739271020688638286293314853824273121001590213069690014054700723624380171410027642036582599359295032506416356501681903728459950619423064566574998736812554604652775580350005453478346611085124924513524501236610401195009683915771341919429703279877669960204428360287474733348522935344465142404284772694825786452719394778322550873377641945847593834893938641753240669866187891179286457312756143394957512305923335432677769098524017713971190482667567875362152728683691465704383390126285952417377064634413194150383503227591118137419504297810683896289000962623929971353768897017819979347384152856580703627957977245724537259061920914244835817302463797116608900399448371581792289520078810257355707071942116697436103724167760019266552659317913853404034317670791522120070012674177167924142380069904048648893700865429387273638213966106368351582012496284465814421886796711216139342751605328943544383770560213925866703902381330228910891771849451559655114082864935832547485774687494732233827703496719362462475256214765380531245270756489061243392238670928615642393005841069263937779218005670263335805653126760632011922705641480050661088458745157375150072320438921440134206972926588365567184983919360795596656613068322823966879415620202280173579654705756057497205838439738330985072562867816568109345006847794529619283317680737740243661201287192908535999965662168703852016009997892919037541562113602529093422060037117935227212370570595656147660010289551687488433279245340807374421017575994289188359572689971472769550796284192663420135717033953997028860455147367196443540475045745665464544209692951379437763797251409724229269987996304435030669098981300915368051341226388644077241034575234213513072819442330326267015264051076705184720686838033177889860231353091823626119960735095207189634003783630211149902911849056179078509087206088792176319050503862883229012969448205603090992546359480707800574717682477805388355649977435440174614029562438052668995495438221371852718490364828163973410001729401132517026181763987423740545609627295337308006079138342551451810748930675042210114400771485477407368069423666986369732428737461181398864003505875404276387370880886146303491363759702359346141797539293502285987789758714520427378163012397008611441094920575491702891757795295936186294605713117202529099748427997883565233533770928001099596828512744783828917731454549537724921933506299703789678200430593140776436033614424846971800676146546311047463709089710544687142186712824197326168360084168077296443773815528398865785569684046880656911621833732636988949239080144958522703168423197741410767034105877761100392750979032239582642017277302049661979487318568640118954646819697620106805138389889066572992644504271284636127117588141385228269368707398563341245895010662059907541628497976426638839221069682942078952697296081164248083390108777631025345087091416783257857105803038319762870344092846447429810609058319104776185578731893272591323280753142979371056225772827159425878945682597507929931743321722973276846166060129137304625749754673079078296556275399345030345325886651019937058312666605918713282246636128291031201653095568750446133514653908636700917624949636513754401280151439577996562609462893563576984849665320163740110683903961131985130366358574594277351514809778856855079031875217875544281733309434181633649883024038971969425513047029593422776835042173228680353087530820109367897091240125661751986582474975225396146137844576503759865418926804737025966063062069315020617906464104997783870101025364446660174427739642390690737514820247388350400715179100210646669458277684981790520936818391157864898598612703925259423506551581304638345302028254838551522277594868888979761380561217315617523760167797751664521668472219806252371651938232843291403924736335846309324582037535044683148037967094750322006178572928229246016548246812329488479648486076728367963592877023732595481225024123046202180482792437707196004085112754843118338947549653661966028358536157871220939342635606162397409283379899301250670532628121409583116059897006032751833705571576418662578685974696755177568005085437541385455017010259743769627112658250100949995142058846499232098456559398384057854024628761254150321585717382367177322547181574506607482677743343384057505367833342848621783450973940853466240283013241955149359211861010976436181717779262343956180455658969588549781129135213787282619373304686028674954673508034575416986244885043618968860366429743700486333672100384354458307269950066778089512245406177358876373632381194827289661821669099972739187594306893188965715373440398136127194762528123252254848739684644941843705427811093999236738261503080000222680801429090704662897756596923224921510501469023170418217266409647499257676518034772127742222396058816862372630539069042937990900250111091159308347159677519046812924240160957821483662680283322373673617363251699957019571241029024216103619231370943896003215026914308031466078512502137412504020534734027649544565418379154193868761602190625381540882462947442422949188247831230142339523425698940066160102920140025427410483312967826788355407316349665400667569861029397987356597048353719627251941831066459825675032734862302159466337271034281295071727801534493679915019218934422555219412881146008070600870094546362058004507160413782792325713069929909618286090796838950352254129216423924187702758393402968846951368402713487767317130573460971437630883485902272781102901627983042264105198678306156060509718757873546136880767598704255416356081164257566464898118944180302064664385433397091808809128395751126248045963665340284679265996354284857087169569536081519059969612292076363117106470546310176898259052736406244660207755427349972275166703201065309710462210014748081191234183501591976442981670284836354768407856068185558617791087941343302244472789435125025919451175036704662931667365204630022165394862239519028131903541715038594767820124499344968954482725207953391227763850212428138537825491037882983914339858371184340143157862593587235149833932282294899672717827612386129909929107121547514854027681177440823237280337342868697041826561213361578276645841520206292171445122626881940366191691031711141663976272344456377795316654492821366897697356202882539269321636612332191739000008850153046851950604924258923176092306684792201797473200994250978616675599957393340575466946379115421051601714221208881563829446672886614416177338514159387964128167792721489886540858999757749843394355843937532054310477264172829708796790613748313112595379640472170262682771024939915879799860796274775246418839758555539596096564520936879326125234668109720169355071959395491830112404530789743296253416227820172359822034851921152975798660510282950932678941281418360410259539288453465205763830990086197534730584446877552425166474864666920195714959111193165431954195746180069750688830228593640719622056052554346181712114268564587601389741780040337322887181903910748468919397731123373451095256811125422835633252646861471522719714204168690837538278955885373837605734713062690818746626992140808719074833260955535223409010852607663867104025433140154599398893754369893875377777841767558350140554689185701472244289949236156389920996592253661495603723700627481772044687004064605420802797473952957073084231615075582762490127145093116686397167019849730486793134997402381764708044193584455927300332590514832274028240575311102388397630275320422871991737368550283587034214168279097901306017934135295980440181146051219675417269671953585974008669384588901983774827523491537114569269778520470419185380538181884154913593957974689356766277927930959321607718280839870075905519006692879627293480962482472050645812747316688586110451745399396999120796295778484206120746007248979220591473671285021388099797889096851205256717577365777032542809786010369869528099730350609066200654331616638888122458544879267877844461433814969037700914461747048682754213229529626821107059201405426660799508956898738328753814456551544521343034441539044525960179273899885133887647412958663804893081738164318784800883398136100586496981811580850802870552188076649054540533819717529223865437878492820705670060471742466923311729896234060269431179762873117642656767688194535573952621490137886164422495685387306982049998874496179695459569742513884498263416304903600073926982666690845267321426786589579634583778078313763228732423678494669174494992892490921131908768016015508579648928134500244750260187512121705729476749577543845520009613613514464582087536455894172666008947806903465230207670874924436753299407345471713450677732366207482359254738587521131762415377332052583826347226190029880194623071567109259953042866403249232128054637652764978218975824479646639659587384694786955941469010231336352158267729091442864722024774277123972653407665666702821268421974840930895380484143803094011070560985325418881087294519546105294860547680973108535116106337663091963680382139796423327243987951428016567759873816161907320102436172144188901082895486835065242524198997947634777401115795848115314119739143819922685467419244691286178068054940258425695573824467479020663059861955308161900370865925676826816343947219327958846461964165871753143819203758496223369860343204026294966248703488471276915952622592975489264498680132291535224464035067185166173502907805120575851972340972790128342682656514694401600185574444104721207720330608019255070597956550426153350621237123216963177574307646730196535610248346146233102039837106764466561390239325398541245201105459975242164730419731091287678501492647928131105970370258170614860840304449893846359457567144987362937602266728041696395995377131546035800549371603117741158162838707802447697199440861691731091344596722805118410154407422187790786118107063989570324138438206273138895834794649658195447856035474160510465806998223428010300816018495864846294211986230291543694220885309000180652734557014849893891645377581881418512451415170039579966321674612485652807732686343706763118349446859005225636527160017243948439631633457223990904078999754532302481040732540782971312689696291937825648283412174196778010198044643853941753474327217419796675539087494746871767878115612338684255334310623257690972222543168819728037018029635570575430861018329886458007697157935808179329196181336744850958357585158857977998803808707531008150580406337515925590658341033818814170811610676538831532022860663416190333103930954903854187954581838354958330429797781466525995730787128490761976205052750469024404778638605165861748488945517404576618698932798164087659413004044840396384997566420887831369540658804254425272497707829397865861977457659640087115011081288304125453009190893636566754479045265449969619782466902104820558554712346681439313697935105007063649019985636625273266218524487928239802132771457771041966499081005740394812877242057935626895914214502979286516991171940823968975357765475773055482763528219520292295062729677890967288107284666300577768248760039069179473236510551645997358118115762234114366758984151097403633075752371079944633596964079139358932057442137727881429498017076070869713169689308116635032171449030647306056679007216616019661539644063069565204539915859443729583734582244595019798143559353418094033235276233831574122962466754543821401154917094349524359204670204186264660353710826646208625726009819580096039596498681048048865705630059490804581054854287769440562773713965139955984710069742713930165661187148864515516027643394423998960075816047126998265357992601172111582424249941515444884017250981242682079103112280889937615268614252513077265708250935630786573151195249197807826333644109085589604274765444500171540753712002761292167281691595578010370732854548758032286653453292076234189915397698271185152306815600591866906973950024017240788616604917070910500600708605581739397433511177242690974356719843504411840055086849175394453180608800345019740308707870943939376405718737833766015272161774408407172151801726483041871074104589639642450374197980149668308549415885453181058477643403857017426329265104190482119507506984448252838943371594040215112609666758824529573068919942156920724909885195789644456771165480160403012131346118510885967687849198583519751100218993264623852761871376913392165510932601332420611240777922150095537750184731464747251720492459874028953667222615214231539455956068656124875146069718434921846705095493891246294646719083942224239042529127420225883488899839607126628983660076756288216397762828160402353836702314759619931322797065748330083839128732617749483397431029889806442270066634147800412858650519562285069456460532424616333742994020960217967115249780532420436659373622076651407773051492259990249604734039507797412742150613723710472421005602185651147478580714035268058730792419320482210305862169565926107930726664510961519105834952188915667186281176661405175062598886262250669423331178431648280685758488373004248467278660642655485426079390815386274750631718977361794493272835843015794603433975748770594058426513181853142134347339540719417061789251159506344733928759067492997014431615587564138368110137093643460103848844064385199348032901455986065431685147169641156854260911736672987900397361859222897596578275390177189004355337895804948218856630569835870497186156194719808895248225357282656683309396260545541854503775627290036649186432365536586759503671969645270023027296943533789877350319227682863169598820454859471285862660761686950249834793547908476230348903762391317518517587774705591802179488141327149404302160992312278490824797732753189741206886943639495450600112341472940315733492319228747268348469169332677708774336086365724805851247038924383286622747954054125573963386377353938553223722852615530349646234741938312758470983968296185722040172698438097562189532686689146768887350142181818671985062387840026006619886896741279614059883455730673764180488463372938197726309468251919687257907685242650881805100091117042454806586255555394904999223067417682957944993046458442913783207044420614715370836495631222875686984563241010984737590125666698756279531428529462990272357235219481516710712049536428251620827330001475311484392396596030209724834385786414222822587536054373714798908984851816441051978534275298778228729893397023785084927810202350539163234293483396590928147094112892784861755266401033767101209959638349925407144527244940061171951857444936480050856274340987445104697293418808609190348777247864426729610905797757055956480644740321105660036456534444847570543717586112437864252330606017256097956801164818133809732483127333117111413377940635472757400150614890010119807740592386188711848840356566234135551097873409165795753545189937677663101972913266529553100060856932482890157925043615368969416060926409137047403657992144964791250186262168581257644829211974313602644087540769610209264835791390984162359402569735586810740510384396207634990318029552719722468726931014210906748384144956835350034684685908649398214892760290784138620957521769678869821478528680719231293405170703243139169382157004955335373389370396505639153177752510160941805419869899135385059487207929940826939883338204997329086016372925571234827524506905610411997556585310109961059884791748888138980072209184971227899909735864284355503924824291913283658965311107662323793495666257404072251892391820310783053456804326438787112434139168944929752047728067775011310460068309008197692389509564962261224130937475934715303433933255683373148028613038134960070873573302803144586308754972962838517712693995231415666777046144454454541251231225529188585284161020797543071031171930474273612893854954992533209199040184142320855443300205084074112152959765075894827219249184525785273004292466894237172984140303513650157797557861363140154954989711523429447989677960256829534031734754482859532400773461209530637733771923717943605142077789860762927996994542164915157692304532620025388213887909278847233907557683277561597999485868899942334855938533321639778796478650431064098519143664254333868116178145211579479291303712049745505506088598830634892036598358262454419202408492085341605754912343646678006829863657506423429840451975573722190707145542649926888632679444937205919647857184569379444946089723175202674774075521393705689276171884695952584321627890603925660283195528644597167747493535411343457098415648452139532691147799021170475896688553491133473986113634286070116991431478104518908597936963385223202159761899468681495680425086965576355751641334086824573974208355296369197038902250340862256262082432698921951799073912669248307192068759897855750650589055688661170161796138016443897736957214030911202561927898982325966744818228728326357277603220740370783544372831940898790906792962191909044638456351159129438219163883243343076057013354878565153498303737162410855409297846774795467103966587309498444642412155257771757404848053891961464524953436808590230453552384972163178903902821204837206022012869729111898697745733994315387462061367537939731362471232608183610138568741118068864368742593380320605797379097761060071201746283150406099000018616866318766018278272539296242581076371342354647860944216195459345387901970112350684032235174454763502280240868879857436880667757016902790626837354201316960620595198760862977948304248156131556671797105926431765877596486863586975417007848994514567298600374602539460251240240037655383357485709515193241278759720934966331445403764723135757505861446091534690452870401055470787107579168739017895178013367299264802210430284885645730599956806696720991631502386250674493517294595154735583601841811391556162400076267837403633575327503852731038188646875277050968969841260019015047388470365083920856373740139016700703489357510398563097816119899845735209448841016613601787527027966424290721310467503088704026598965766830481093121142084064628492124049071928897684020843814473279295550309103203997345418237288633418625661312854877446633354457327932193578417980609961844963244148019316556279326435076790799241944402198440752097424112347676533721023627966403741809867257616705173895396918592642005125437086017306985100715620569215340028599583771690768611638161214215392845800876831191981553211733233514712959488840465879374248395145789080640787140743957509755321609631704311951455861401582597643375785344386469626131494333620933561221176470204641438751015240327075579130804752391324280798553264658502809337827528009884277817593523230669137674458726535461150754946754471918242848691558496251255645855492697753820710265670014250932603787314660258134897753499352320772196301912797795332275426073944178887696676493666838373055509725490327790207712803222922768756582637389988812361206448574376590684484727204849088258843446857030459972864224219058762837075633300990470285011070461100985851133909082184687487599220859438751831615190297667611632659822519977863768627210742331895709354355513041646384209750919253981520439987512153306340484159179257152881671459710237874474408990341496926058807010819544800758684707345167458671307300370022086731644588507447848374159893940128308791575684433435108127295291434086594182307205831881514445060268324160419624349407437346123552620954673656437688889840729333439180438280213127242048298062081008822395184900691398050969329203123949302575897069865821321983741404821975371040161624297955773743557645794333448213240086723293098707063737002411435166290302969944722651238736778516214595918400974489336130930700269432257974993216702103818513790226893213178010907216941818000523727307351280716819561020162667684627121552619360319977648838400854632503464191897834359015430637642558652470344350614462334384597963921220909810763624881073416001761408297291422636137733928006816379168235924409302743392466765619372994522183832144207902622286646477940641426024524372558490017736534445248493821591157031214816275157403942636977450864401887952992356482363385848363978425552482966813094155479029460651683311219345202065444698911253067421224621382807010155939107961029999244619881988130166914863062046030010561013339248297797025628173975914083191957668548671061739152913122313094719774924351920774993267547416549501239069456338494239568483015856276395119295272301003165312316830787937821365363218627471907723875355424749344220964127384956401575621085431126713891973787626034515451443146557799747646678320343119366183437840415130520390860563394805466514564762543332526502786059914251963486513577291453913448841208709787735960332733801516709947454086216918528021516459973212759502931528763767842967766642916189615366095260859236294649382550008396497346474940797442312493256002781772937438843730534323901060613970051348112375062534704920584059249814595231124581075690707968832479573077021361002302701582271614447560885688596892442795064609767841476595869336537930169808785806758177910675068377702356674095014157762918367253594792055389668679370481674285819760412268009374279494281083520905947740865637956169243199628049637084335324474991458067956266544804857861287279757583019288286834717529990403194120158374263360803898714600873479422352045472484023068448318977728588450293057331972218906605558774839137312129461608309656174826010181114947930761813230051344185338293540488454393790985938805434228048328702421055667892389267371191797325935690001922861770512533106745083213561966070541068484830576435788038987513307227386123476623527525429325175500992222811467592586205463627955788313607331075737771190956926914422998095966867456366128532302499304631514551042107675648236767218692938732204615697657699008166693527114426686636349732599958813916956174844390088683024698997680764323845858496820823734446620298274580430530665397941961254985746157252946778416122414595090992061112232314808720128713208103383516814570024699513855069151713117040179848680409780099456665563089879360616935623897808293772763646992240085163310796805546078014221391833328043150826798277241207614786814441411045694040964754811813277382574748598779256257802231844447224546117541576504972593785933677668845472439162743048893012552406389942754442029400469457146634768507317517611100655244607914052277048714846118420733853675701059604333021313002600875291597819997229009333306387580143999858370439925374031547575605253240084824997536264578468565860013962173473691766624613505681561290986339601547827838078664621031791068932007547541049835075053045623263083654938794040914099130348922950027790426645353732000193705569738876192770906210186800960698202052370492568572797203434197902519938818798412419296964662132889915935391680607096094291382121027090941870264176635267519418355459474343865965800491458548857375948245869874095459627924236769356217224435846764556604101368644770725661637791553000711409211570053010385684134969655129777104852439901404732138583414227582161320131963735288182065082420653541002497643516770624530628563003485782674110658557733799680572576692679514781597778230534391573535918101978830042545620561984981448030058954115390363467631366091658043001719027591559296974943997539566735046397312429438708907790447435849752695604549730430134189111562231874167939508656649886722998318825890173886201319535935155101990645974615438381661637281250342108997827942650318414266988269453491943341906983707161157972366977781159206322529472122294874445577848516930472034236311132208758615396632430115535458787230234809005395460313766258202453376328666908910007502146306338514414895812532641945278809381693101485712336615557386351219156978054213988551595627037246463325280885866485925999185543411094313843270176357792376360694428200736301946578505846232724874445349746740556146530200817528951001838803353157624730504933054815076690737757566664123115711782802366576595674378413161606701425497421144469593846744480335592404190248412996143388302330274218867110700876694010449142284413689683715542121398628816503023295650491659220876113902596745832703406804952117462264633198720264696165050330106020951600469774062892923411845816744774005201930263624297704986442932457224739971030629942390257581956425094098896435893801584192864757162592539004116663986665104051678625801073101674286854796055337943385441621839759779645069255684174770932726787607075057250236411216639294151390591441432093432020384730151523209305322398887056182821738259250191521853595494146468586644208459429144218409137883639076831975910545352520647642202935821299688207015879683717670683756246765395666483704820770161464852521049136752660557247667002374892619503963067955241812193439188282134302776202791744454691905045168915315863071348688979984673431371919515363725087106975504803860492438807173495195670014267233593398080443225831017667006162243083560325207172733395275404292150951285953247125037527477995412842719769534828333385997544406845378215662801158736656869244342055702398849306359395312766803792508595595178408024597546450172079276673184557900066800817863699564182256955251797102897069472675293671305955731443285434556035888228636376654146465087008304446578559032059957651057144430919739855107376180314260215388183063767444983395004388366190053447183902195985769700427220314418345421664308020019808630052223080326769535314551344308265337253502534001319794817105396723927151131993493152140488368607726628867083491159790767273708248978848233434604175767141415638871274391292526358241401202942164595833262329631575479271493356967170218892322780280745922723647192430646011773763073903429478139212558666595205774458890676208847527793090113778478092162754022384396637542164177952574677151030206120672815663970870787005062256228410494573564350736235614007581779915370497165479233696552365410345148919571410849353203617500558932087624458307613350915750386319320542237824896143418428304825500223074442258321626784339403905094676122195344372666889728259437601634175186669623944814532331549147683985502554154078283026116630734578613513483767549205248945075453760147191708799956582792267519493327135827091810944440446093009716160800634275248965043293834497728243538435384781829613133003349828253200999310882130890175680594248737075379322816090142470162399669369351637501572421156936115823091125147186795539577169003738877244205775384521914522894390620064598230565407322505963936939599357519010496467402315649980969380607640425981199946292142194407217202090964863889452978372194434635214606852951201766638436974229938051158555977587311122073505184788727411563191578131613490347239092639703861154397169965262056154780719586729910545891024193182509074283706538849455898391772572325857528441539776533080736494529343672813998963430544673320997127243025688605021487452215055494891567074042647414852433989398259115316190534718214975222977756823852252990672501736814946071286066637769119032676393626562929581991963060379462587072212909995132019134264224149793893746275432139151707991061631619790877039877817941756149559828073586523778331343321961747601092160362925895498470083739066280355406852555610017922250705398109493961619508319024007782602280620206495504116968541822271285320114220792236289674929782118901904372834666318115690008925479361342248814032810548478908628088032433682060613999891665661878961954947636347097124527724762579795049586432064148228586006708473868924329456453422116499316092879337144927021046073820924564838621884845828345267766324189816296696295781679403444375288340307312144030294658618521736368971562051421060422466341697736642364017969637476809979569258890116077071680061790156963714599745767110295012596588145542086152163358589872722176345610885757425947377050621437584265341350052192679053171796079796925406023408438572881004231345511551949424545133719069018293671443763267462860171503327091182363137112225381005433071175687667180768217341846737034230237174596960066711416711349614901218026191789771688376506692733933049197067385534098116105035621981782442655709283375203007252104449551834233883919666912339503209892078526524445298760592731116566032882876857973550398604076585499451010492591916109523672314133263939817468664875462372714664412202601086630300158866651941943492079568431840416527646684063878219003914794047980044475981595655704578474212591388640108087239667013592671041002148865616213680763776859493099248455294273776675885514020435038077801281172439995069943803691857782938712138720435442423091505910625202293979328359085282282773777162784203171066359706778755556317015754852878784433329204012435417237016488165651080176375239980913948119223757515888556942259069111269523823996649580619364168676290287079402328802746190950484319956361011144414918175372783196803096103656291870758659084717626296186456523247698770729189517892471374880164140111015220674205106752748747651215912546894304197150716449056998255646588639663250628917762779926786151569608415217351802601952495309051577729452608149912362119129274891281553415115418448544309747656810703333627579666953830514906904230785851951388872190045935232797298920830288065281888453716488943053066827353692760704923710592070562445946454550634931223487159970744754025118995582794800274809157966924703648664810623909422668616398496491842736919978697391420572106019109169681358947935698757677107945219793362104643943037916021247350812338087748780655838865115995765708724142592113504677512231726685686212596092513972364774973961167319023067961457577085509935693352180982352236967549883901330415271148307245157153091159732850624261345795934073869246209114505197562626992802261715915913359469525258229407051545543114833552340546055474987215513646715461324095115193210097223153192418079995996778988713957715554544371647256505412756498542463775116883767893805338922218357319538367926500704178627965398585105764162966208359817090278741299813557131910977678978533425594805046100379450316205214101778140500412080030874647424187548567839149991340206644249735484847423095426669374820470941360644084589931218793688564961513159752427474667143010816233919243148145730295219289185659334092466519653095366181588196795213728786909007462029890274999650269065642008596809447315548279126117669829641647242395019210263794782961011126061362147667642382285463031339292180271140367439791384761824172299899697596695803089903649871980029965046790601816239068579119689681747111695974712480831036896230395122188940202135215309069868737862737368740986374253943694019081813289585320366110000587575833379728038296788710982399027657886071540617464543741097657127061084411356103965162099516796363221639142571030211926713127276717588560465434784722115026158893594181515364771307938877604494365496640860358143038735082044262577232305764904447630253077314183739417044420706681303013546035125873530800546884422356930859132061906320751406666667398295855989534211192990160461419844494964020718683280146277923867309218050412298786963596560390655071547905017770037278585464030584072048780976592442361074152731739102962056703625587046327019640620450029587789935478280917908403921019503118268663217619370755495461224640467872172059932653947850094036107831955296586737512895124375417860890988013016353793030298408760144506554393918951726292257513567681652691006638379444007286478841036314421321204537151494158432886430911180308129401783856924392721068914250545399428626719029075198085261414263364402467967475034064482623485982651995125584385635908536479069500927826328093823480092552632555568600231681235743695411910984608805556067003684064721702668569140183388659747573496213892543305916223692833808873889003530551553019582594477492204074624972236628425156619215621101603225832805811103404081096213956983034535737179997444849097171935805895465528356887581305469194354584499582848969793776636924394458583786751719294131729393923040635748798087121331893056058738367630500621334147272495311534078796223316454604462719103694348273472742571410934769604218910486542240792402467324478389270533179789746550734958707977371239755220897615543309343147563598989542913975405230467175364177293544715228802746151342956516949121829410848474541561962377309982657490568708681023725480652640496797526535275619621567864555772003528654625969103665010050582775400029384352367660695879712274874223324639611684336805407510662745554454548184182716777673617170074447662908072704129143889348601511614776649015594236453705495244628323525367936106395392042653074568537063640712831904871768676678805203792384371408523715607908629376703703889418795687752828788981569517307931890747410521725317916399549271737656199472605535333356221110366171459642557610691657987605910172819387023733245952358210214487643824432602104342863443551429902833983129260351500988360983305408544316565067768744911116520225842037029279457777802401022583532669218334254984010649099364715096741602087377228589433385998469910357765035095234092742547130859737587993208716770898099077714123511276358563178535087526998206604902722848199913622546813273518588428580940158732624672176538547887193859266362076018737322832437408824985575156616009370227104159251531156058230070731858652952971139984187262806366540007314218304179809722423121400793443494401955990175120067840685486271789725080290890593939662136459613520159196072760668708092581152060934119548238620625771988570332377839079449430404135161415183531682228823700441053316400830335210714464560288958146189740462005832779138888515379065999977705321719864404152520098390502342816705320455816913823442879605410013240792702060401327885217618037836144769032849616519140405163597656123451430677811326411548318668179205440872752096802370385266882112987386364008561551257691504014446794603305406807940974252402514240554227250044295120063950366260045519024222590172041371677147910094252148999940095051448610071653506632731488575809688739923431244367805663832199231256726001117815908048816845484896136597407516032158131761160259629996535153571908958052423308083950468680928794069645814375636730057874409658634020784669653229911639519032074580888828650053967662354777510921643706065999870426760116906045027305912778604528369604772753514040697104817585453019738342430172023913038811102827490274209255733174608135619489252286810079152922681297097841592970117657975584144757311805127908239539376238538614480785629941693471431411615622039291183643052949836204654972797740748813619349376311688400360128297097052401066717249371759557289986050040349503689003018968552350562676663575377991044060229198022513136981734250566017588981552918100109783266667032331206866321778402534861382662779274824656452545172902862200526445997160828057643399134391520104474355575730381412768487929001285949177801998070622075851992952954633430162554736124004887904875817239423027890409556509487294737556956119750769941222265237394577258237443974687836808190452200999529003884333183472466585074866241859150714261426588034563083256086010662419474641706891916290918327149849062181727566808037091185253433448118770322184622728423179623072283795867225284628944741679254952536148589109052543346058729695196075474499335594056440696250103587673898471559079692736337708191088419860485543505146863427687001994522331997452582299433528491734112184434188165760472435313242355171747679003185288703823680868338486560421154741875861801193269821036755435767595490402297087580749316741780276192030228459432841861891385518565666032048555866684249308182001510703669821268993889356257137508231320278783711755941702399248578777059935492435579612781053740149852469425041952612888113146157197721853946412489788670956835003089122037214240859479021920774325011460880269245819376762716809340096044487056321806608214301728323345711476056384538252424938998353580142465817809072556181377504276367640319382868916111847457652563647886594037446612231248231803913085685908591011962913702283056655553131025826297707259950422978887014241595342484317548042273530963004313096467796685439641068184531747349707816396713280626011261569157297156558915741214297820951412375826676976143388003798986721179297439226691408977847847261002484637577419250615794804893257969061765647718287844379731381164571889146414699946327121812152777512496192999516170675182680301257981454957276520979138214402431277424517118730343294438674693309186207726358815180449791525599925345158302210212264079045047123226812440899467708207564440273342727884802434189915107924663413709014454997605735934099684717507782360128083221271655489506374304229318629946309847742194890238550684709090145239821957574018556139641515700635942162898147327596435738934021964632974795243802480352132300388038839774043335768823670183896193309963879464088472744614068349735487845556949100380702408383469202120324733190222466627555589969057856623065454901924279022028625147303717120662939441397612273778261122396903537189254080675043445519209095944791924666332906257599491727327952786856521935152870889827946800026420038595779387067395831497160663528995263221028957957292864412624723064212578906295392653554680347223757170457927379270724236236533425805890842927702651241004690371058483645353879750188936924514810627461609959924962502570649128213135064125282376906572765576136254548756949760136255767056214583766471406822098669561947303625334616968876641929162422267161122265536842444084204804363764880207873194834787259744813980332435316742331697881308069415903850177378526101906794020437693499115861102401875439454855237611440051886045204024639829331005535033453960316707114202393125617625496077410911515038854865934958131648906391791732194579190758099116821940710906031183485366662213683359186387972975783705882634978417931931348202656937898362953457738365364968229284371168373659232008219375905340772004555540381148559470512253058201868580406710240279661176627616573584931141221212755158308475101638751945534556868530458453269597847452399672395345541471287982448897670383149718982242981327355131592385279896364153232593615532275150282691122608108337243371564402998104660238616415302978097804176520758453374280695120480947155273045539271026624196846138250747531083453046640950375480560579105060730173850211257789478313055894180877644047232401374557951290274188350475562944308102200075124131426243708417807741252090882936166111383221584055880767748122992344063974188002551687835132439508864530635181909223976174953006299037847106572513190481793193046094391792900093402480324486081679852670754521001919021924603513730479490859244547041482437880402114411068523406297756386424052502308522400590067677056838161936026716837208616301927012321717079698772036526266807897002930200141389037393011321389090286233157815739157996709385958976791689810471431315383790362273618000367626300680374065133025063108773151722580936059565094263566016824698160766979564771060443635278542225338060596062305234230843322237945149310431879276953791174122699004471865521815877242449572419601963322909756996965070181928656135756229427242754464086255031657468268083219354215461012780369528739256817650157119680756231532802710127398284889304229395260623976576645447744742183436699776271570966417282053985570691899013306249224191838898660613540813260288434411643712192745162134538507561991798478291784696744908212416583515746740113298763541078714687172000265323296161410870676700148518402385413577160203826967194793190624048149757490408518643806276369079022441776693017126018786110819018180339652125023267215849044542658559959211133205790217914450101812261584415633421435178198401364011742134889171929703392076832987125626522897820694951746184713694684396165359047614132238348584402300060354206197975906071045996602533731651397316689204154287900670674370443895041285705120515630055563540993961842856194048582375478416338048924085816209148262615821413645631353097721693315628957624455459296902730957487114393388927636069836389961059981936982820621170125568852453781491282177416635282325771076174087241234375838970274131975258521988852750934599514806729674296420483150593910754451956581877252347589251903575630592585200131451030373734945259591323800085211326239550088838135512253029446511091089245329386436393589375236909552933448482621743461018186043874873459632429484942351400195861125008053741039793287343474374849174540484088771490942356917568895530489464402263002637653100756286920479686414648936514832086707273975908874271499493165139946599517747618928162917267702104619193614900417380713537831469247008595426168894157837650282046438792164982857471309618321021832273253282924741679559817557923490423951071945563542451516858027113965164760002504670114218047510107892188213288671760147070604799783714004476261702932947381387279383647120535711122701486400769065739771368890998919588083985609887211338536012467254877995820460015153189178329910555852595662087260268618736308151945083250034019318876334663919325129384462669030086755267496840775669680700340175165796926815270654406506737895060467165103770468035657263156944106296340259536950659860593115995597799138649308186935720455855839895879558187990848819131581786843006265583470591547164907853559046147612542963868691624520841782371700137071786610676622443755095846759279612027421457394026246101130118932450256224466277121950103660871298258644991815758352993711401790361704097612719894860046631018747888779560861699418076252775639460854617177736542845484995516963052150569367784613749292857994159126633219725256926001603300901615321821213214562715812730766810989359249073657011073544828378285661189295024189559432415243776588546944484376002403186081042726785709819461278177336769263982328387447851874157896153723942083302359587128545093236577791745326916258702794735497661973763478718412309851519499999967572461813102435667621976241955586841820496089716922102696475334777853856175720640669179030741155890720288091167618813656845586288603384500691726696521832278846781038317301566676440417777622870699710449010695496165282339669651662933856899167848414171266177992823034885865723061482043160688119007918842341761710744105601089938173885838142496744639071010631995124851128031140803407429211875549241788644542441621264455215434403955989995627559681267350786345424590292466167303397110718018200342288886563280607547340589701754361325654270234861850104895508733378370457427938176068242064453047512988412526196998350541919625593577729671783305970843825112151765868639953785915779236231144888574721977580089172497757797845235574715368687883850857114166498960593501038831136748290104171983676277506235722301257992559051178453809605477981480764874813927921745981388695634717977059964635621558427523159537088592710944208124195809482657272115320590226160519408770829312921911068820025474412074076607954324236805192326058273202035129292680006173113262553749790863312973799597328498165989565239910309468739330579827285919694307768047426353126748957800431548602788782825568789778227531350707004332524955618865408420258156434209122359190329408884199082184026983195944181063387910618804161098371669166475358528958904412931337639919190949903764018344558764434589121283211738751463460147696751555200871265151389802881713484885847212853391667590339579147574336344684851976762386790933066161756255081550593963992470069554226012346526007696997645468018203815118615784411553840038163099375240511201534355431667409113953660595234028989801713576719156042851123420644174487778806125727719786713308323814781868844056527160458586661978241827491025546558319395683612043115791434411423547564611018234986056743984055088702274404432177237137852688570210256559581801466939920125001883339953535912231641060060271809888007002156094906515297055269628955627575024895794204898654970172177837301328942471464096780865873739754819929684498251816503700066271747891152408544239989595267378542269213421571211799015448881205993369663427279529709628076324135505573648651293700730641251468651300462220833100168116400478336334705368815612287575421608269803739238205232411196707106802042837044495849229723993928635448152804012131350956453243700407434481442087540106507874536104306306075310574834084438479919817690726572267219564025340492803360209642242721290728837039924724576268403451071820171642015572644134351948149017220802451300853298373936743826880260997734825167740179023567812145509706960967817224239282645127935588900597718279192044141895169748175535707502629900089282779252055773476704543773815480569132040337910467316135947751277693081119319041307638695468054407519123921003747362167198174780599672396401000109336238107491598338024997204207348338462889276591329534022333497346506782149592942121571831835839653694952279305483974029616237878060945091763571191005113527976171296771142371742260155110563315367000240475501443314267280571178572745512769491181825295597221046964198864854838878349362235521475423178726397030910915176054509793204432805326318726158535938143622499316426071416844077298459756807054852357032506652609341342102573187511452034945960537206170556127224194166412880567288155696845711485666531547937472915947386273160707898443141074770750287208218185643970139305101830724746959033380479895974513400847351054835903932485581612587348333294601701728672677587914352977472143016576653005109188448242809989039180551918359939003460889706723630437480907414361735705439122140856456035059642672518637785127613860401149430673743887953084061836180882787177833399942072730829690540871759829905511987983002996465492571092852022266375697106048759603215264416417804422648352496426203442518669986397780865260899767095786677840388378037955191556691069223879438362753097770456312976657648927084097486929320198970079345895001072589671563273549296939296574580577170658862149042646271140526160540296621194613101332657978845280713002473019877479196125458743568294319443307955368104691109650415966929367146279191677901953178736306007902037396880889369473866362483858383172206547320430589300179976470611127769569527195138512824401622239648836672932482558070878068434189868485067547992547916541213243319095317016946249033981314910421584459107737831484874230645493466635826602429613885692262236082899009819685368677611721767889574565843041164860517549168097360036062520041346668952277276318509513822755123877898511837144279690426746423289357693862605202390383152838222243521201497605810276802363652906076887302111988967225041386433740038901684021966069922653147497210004259184457093869027257898797507175320322753263014824316156943387210167194180513229174507576989216272750491249261275641424412420568589620393601506140279660235884744916368899775686039265658649247645064531643145742760783795130850696542131122868489074862252032314818574524351984854862878053453500353590214210261910817418062016336714165892852747795394287641766531385048885463618324162572905278640466188562797830895957241245068284395765711349983927281813453147952462961984939793278620321562704949839858487854809329744022556195134816824626252938937545709072060854297259283647616740663301869251122408348400517548733485200217467181686056251325354327688017293140183818942297948649500528006982051264084992824509040274618490565979345560913811128380513543492394147643431072867440871868332426697155326151609109083716198960816889430817127629185958734350856300415173745865677239707078394949243797843347675915260591291663872910444075011601220720964128438820596573469043387456972075451373689482725086057202720880966681885788910675291198405174671984750549188000776850763574424447659682315730969003247639723761272365904782100493815991381950055664706468537407691845880005978762126918308261667760546782100353428627833335089115376005007105144054466732319834716923052203649808596334025602825949114278164796385922080918040679792569035341547995406231844625052977573903494547321734121540696854403945943314054439079108739878382145378970158859693378338622794016266324493442996830181760444230898845044835154060630790496288908924347654418423328630919123946608634735788076075471519600700088580772117063845059744627095479548893197107365611277289951010788936517835584726791527252333995175285422752083794380465533880317375029791395759429090623062245197100867698193747843824133604817860986014699656209923268991818019869435786472453908552224268695037824255067431100524943136146831981576227751673710659953652053044151756350032845978619912763308262335128994244572976068024924049925848821094968130169521570359364254575409221754693400707318312652361207995802543877838341401516971262453873856924719069173712455144842826188837517472223050671514919033686053434511525375738607206355649052558541701746316665821021155925440841161184384607265514836181875662815639297988795974114979894738276967895614520385409041653596323914760227034966499701013575883731002039580603306622532127330662709902980367732885155801080820676880448016373765305800456430590010509074915196791064679466281160226674000921000807017099983986553631053262892634783565890335965719710431342326092525507339877462868215209800206701698832902422887765522377823688510254926754468007813787627626184553096213883433905548172581326571073789698876484240078542145334079227690604099533323734463542248999359366894456301581408259449944477139855765337798750170840815534065364729153090407199185358066349444711344768272327650681595685855126242075206796289428050359601661575497489577848170498121053182461305857953054951755553577874665396844107784018483666107163183423656421109458449579174802833983287391211050130965989440134691452504909503949715207522382642358771485747401586629334118844319694340276279843712680613072616550118772453204465752840485660986457060736113819584762782860118835943861867788151935546939353342942392290401362298187429750991836694713561788334490796150180280221569247537340675044264256602138529193270717890941852152605026419102593002491159287173719071823827262117689897322844236439868159986556267642596696499048220209918931731289430020207367662575530846230292618802470188912299868760266760263365194268368739743855519568373122684790321618050553731897279152438334164805213460135229680242290471662997743037837682765342340346120036975367007693188200353233063355981458134175170773929550073041509854272400770602240222641245042814098839090152191973222122141811915262075458122037304807616459848209286448931435419605367865276673354357117716708822006108436514903886543510678093855015385440954624116825415990991079465831952482198000506284114260987780666795538591728292705610866282819766972197778246983224952673931851670281516537623462671737900294178004768300536752852700284189024437950163662256583285161648999832314167501362542396412634363146247222025815766476917241137566953794748666769127038909957518907748595360501247476502584392927115061428512997286669710243197632335667597621398583175515184126244703398235172146389137038930840575040038700992339901300151251909493017113728769617990396713661600104421597005235181400090636839353935340769546719739779965610074676336247333743259973058728873530753229718513669056668841488987854238614955879294305926078632560780092684247099546911296022738444570541725791869079600392609090065054573146419978381917013107552907815152075456272472159091083736529494720137546097079515075219927070509668539005675508113472328075773653973463646583892495239480717423513923224149607536345287128647009933924648689053840269545195267327721301585876031470386498978432098857649526663275208156033978695390838000326723497395577919299312825820936143779105861483319728427575738032856869942797892608286086849058959195692697318100837229076817862302284282295270495270167372121672760858069200564091062409481719778146044123891569843230027850359808921093703005317315384998458064050126267632946372429406097542851613533226517050559141143141025594932053772910539460536019793460503384868057478722043162881209264442280040113321121991425943980044185916573623184211237268817984071988995092630679081987813859301331877365186818823933790976367151074943342735901555861682294604856184506831995600428081179441509901781269044961396157263982588411396021494731705114473465465123834118690591105413740436850466521244202719494072432851950074523707157774480138113960677189682479223593041745342195228509387887701804879239302561430535940115672933659526937755263323749105687181173100653013063563454353979251229847365181756283007038473388183654319456349153116514771807330773077609421542129310893164294419746632229005337967585896139672761786611326975355031124643929383764090918684769019245093331208161727548155640237521579899783515712092843826592653436438618469231350079882509498123930181383879096351482978148890223302286918380968597576153515407588311170437710365702711993659669576711983956886561908697342705855127693004715908110512625652214564727377156979634284291277484717431565140164104014814185318261745657139181725165966171395809506297669518693381842495228061466107753758088691368397935839216468028697660473368175152494080306333937841604808192823139937436100002949774046023998769517281062180092284820846696434211917676481414444126732910382242167997134013253951855257674486112161392468929843458930304551752678747417443682002740545777708851781715673081670558922621193738527943332444322112537487844851309166376156123946566443727236236994516538137168685211449079460599700255186789951673445829086772219866999219939443284838981152404706316766880366258616560053146895879453159856034886271565680952738299203118715402535556513187588706369234502362845444018043312563525920897189363551271431789289609168920187838934716488995660042010821768336628950970618040535037560639587352120383235637411938113986535103930256768773275210531140012495780862662591335966865507367969304547432307271330839867169357454084173536086095579542985212817424072873698111535761919875709444658427905747806714144609412307310315101097070313325794052235352569450160186520436738743277773655174287622582710800131845046191851620226458473723638030600649139131619312502522670075543483671560838908551533306213263608203521068884962992688245673955484533060268762078157220048783237861334367550571925922818203312855107978071267594227558758667185478421432253963326864009584559789277089227371165141956353730884991101869071334948275520483803788267839590451112991616050088687044880666498497840055981049837170732998690998159483321592442699719726401883522486471343983436542235365668043647258819676289069856824352131172571631205972786973594026607245991833336704574405207567689125135576098388192451200239743768022640889393755943029675207372506429410685692728498080970704360785650640573033174852400135932801433051924686170392890837970700819694231971445078899435436331750450971334497815460906824092402917979878732686523916275918403545718686678749561469167992664259674213336895905815119144725435543447833299525902889240001647921415555152240593362899084972889665119660917482368279425563660145986873285146071838770207296508153053149524466421127071310374368356788878196947511149791123041728788693082105072555379138678674264879762739727008035066098088945354349949836644937080245162893505063490266546536025507522311911257676061302664848520850497446381533402566551157577698014423984708053029450558819861918440499038877598176230932244703224261515262430084234487561575411052995364409787354799832097409918974876046606866917951062711068430451104564234757976421523184994048066743711832007126586904176600760154506007726465203111348457505717370450037473793315918194225053011664214870064938519896970053126777411578488987327479561528330393112494423268950993101817170523626034237518999711526489496757192853096955595587495356437976916710503530582799702653407957633833773825694532837873642847743852290543901703750262697050387184630578908453994230536243862633946835583941235716931303142960880427750594293261626377316667094321434802821552281427705472723234644114695157289982501945571341863150664361186715485464336846699321994187937428803489909696629933620870661137883398902548592806487959963614387881110017839689317503510240477659275537010292724619182734289872474082171987071244031503315613935036272339012118906388926483665886062482146431951378096074731816021487040142228108866598963248097905616657692553358233801673340688551658863752370939323148528991630775206933102763690836447958146296721061602844890191107545759175139762113472400317108618796788758682516949661426954536795037382281980302188954537540809844822259465918717166489001169148544877761043972827853024451706599138360214459899853574011208819946304486408246399777604183030274693726908402472445175510655504057457031471433892272923539906401858706858954676888659860787070505616107111023159012888506933851124641423337722573142345478205737083997322562216238493987183797241910031600833057745344424802173291766296404142362208901475205631834847612631485216921120757293727223114784386813850280417556893076867028281166505271344356821334379628378845126578630812913098793069110115146836720378985139529280882580965088742937935327320000937195427562367188599493141816204669585820178430402156610891930973636878975283784224601779553449089582391121900072269532001853931420374347986927152606488650382748819098191450771289655616114827622772578238742773679678668521300661021792016519129380379549703895936896296912792258077945423853725965040417502668979154818965634046695445207185036065887876946254351775238747280699497481374001227661859938493670117233358177177678648423075078676409270899549618107201383390648525992873135005572889820433862994834890919421551550090225311185739352859091503271525433463600989132141492456392583433325309980916269120683957268080855061457374247055606305642761914915334717254118043455586722771684240416224357402285178733274534899667793828020542343132263101408397202238665153629041640554699207710497332941248808214633931254378877371954732260807496715286781461170871602708103786628326603682507152882040788957946470350466651050418154007164024496005745673218026395103871685266489847868617591779941736034743162618760622889158546557036320821161045590718965976244082489960198334654727281035751473489728995597819886469791429296319426529540437094105121009505693129984505456468836131447646301977949990167531146881922400488952782480034034349553287314672586575507316302980946298266939358035209823364685102594819074514572863872507659608214161906562829116092093886515052352179301996158777754126533082315459926244947046881342681944174108237152914462337213897489948737305131221175572886973000419281926955638502044371491569198989038038620489413552643744544266990117297954931092689557368855981521270995782823371845822654600946350707469362880783748325569202849861458608742403142819708320929950474551757618370484869785719557804004410983276204123218285866895357469754312748128425023240729195216206877541514786627141372073335406579634117787436633564845787298388968340667842337436018538222480803874114399227476816357232417072661662032395783470812910839474175114589490732754464092052901090197849015642697989681575132656321904122894076976743458483765029041158805694000688193658077853773308408876076591821172513371869049580016284362422718307044459323897743556795506139616816366369535240630322051699744436576801388823844534577862977164779059493759559774890740640685356570536922318321328816843887379389552743706522689104521225626204899347673297189991896444651040790961881298425144370145217136073057701719239480353117354819749933786310408018657789683490426727291700531840110320704485147097852197087539436426993855025049378343003880532910130732528075308082849816456606287149414924072561555021657647724791558946111496481718482752068135323516703691577281298018894957799306161823913728457474100530393087412416388990045921569344807240438547315895771852149321687907156946567637277202688528415940611467903222132690247000679942754362709407083090364530273787550459989546665566524070487358014429915514955163298559543788192523278297356006022315794631953675869058290735776735480319736092143124958843766499140146779946088839495091422086853066758546975390389235028982394530004877588647345528381708048952081938365413827088858449002701008565129904633423742083845266822822252911638556063711580883631660744562070734696316251955407780454224946169636982983620298693851711502454591665459177256821968315483106577423463675929513172846256893181515877724619480155645566280432005043698362988201361185939842532122929823866456872898260723140595431827188798168564773768590354798654503619469291604618307237890608491808258090874375431225497071260609276736040291254733271452403829134756147107264798427524435599042401673893805690545148904391094345916114883980404259634000026348226324733346467493075498383802910751763553384944294030841483549802838547181036630947632563199571878342495854698322383963547236912881282774937188330934537388852625246258830302550466145371125803653180880222611916592109394813248426713059963701182958081390689628383655908191677416240100676980459645587573718047893270429070608280228285495229056142485058195075004271409883803104168589460610167864088239891813763463092954145916416048099544923326201812254268948864290286408402676907041131215218906650030602904812584827323863346635131912927913438277034757138210159564534378945093577474137441404070652459187718400205083065184897829023647543031708280991092800420626469123655498974108539961507795104975417248167847626644214505429545772963010954598744893769227925223077746540961963223393494460494556684396925703958594382908552454252385072251967992624284988550245602204170199805397512418073910060821733853943898813165543822364719641813660279865412226534978110682566284268626160538369158795095719286179702288909021566325042827776562682022875804532458018440769707788063223326769877402940327301174301836636145013289095769040735037732848154274475226706600121444626652642327504062371336756525287670782377424215269935896945333833856219128820179915972952357671925725587378174343471858481252365952280365797044449389606832955388879112740575141249444932600221544751597619932506724906469433151770048814435443338738468593085181884092081263684317849827591301815879271829300786452944855143231019903531332242243135517777202210025148457028528125145684857417760844726094026328743587694383995229523291216396242114407597109969841190814789590708666672526085175255646155736730518555801866711274979462312775354016242406444832008491709279012453884848343685124495539435242400431793655066834564339260317490494180936965207295965518391157649641359035393633778697465163569340892035219470102511535967279758822064435862126994221779517361556088172623835599333029646453269658284999690873216364802232999475386706879092980543043451762943966725685264948516397625635978884188752050224550838911386209103829545447899515460655986976361108540203516314462852350230986996054763750139964947009552127948888644459498186853339749401968617387010406060790952553987192363638843638652794462950216388168561529473296916736947144291013075625687078221126885275295671607466196465918910488585272609475944189402788691449575413997954826517517514509709424245796623013108527074136312064423224728362858972960675292524572876299282661976422895258137544551289763677161046210984285629274910990937350949734448096472018697695407908249492643541787580822465900606080061512556909254511558582589383541273205470455904681415477785720191468345048127557975539020402899470442824897786154910305822656741149552996148840689333736806902673711797325934567745445217635377376976842455304461609874424921589586888009026904733321610390440397593936037338765829023934486232019345374948643524023559920370565630482912717877410176792317808401639927306346177948176804404753927376622194884607105892006480689111645536693155943442685769526993699097322566141699712807795807338319279782168040705577700802849100722439594872799473518777373883402828190119670987639580221315829529960244511950706697467666512485872562871335139155004426906546554501775898884833855927772924052293536553848056721024999029377534211760971648233504880592412627921982000026450093898442554612150982239458427586802382690436984949161046254728391404409099742398403686444952322348226255807194829819754506690847561284370253373072152149353462880202205720250703261107596839246279985750376601033884102210666360189598356012708069739236453903696405978804778920471992259932166577290316201377422668485567988603111336376856869976387310777229604845125171221811516199165907112602218752068438563514809133309380992056478305674120237862710470607305510293526864206130570607550999623367472382456482421107326151159520166269308574481047672573304881792320263201117128775910283107984918286058110265688036400084080059910486004272107479163931926552139662528612274973142428148441992011089426795451342805631488512560490548363126681191680058701224264262446333799694872967017645938646788280972211825220249900245088111199774425182805551664304103829752679598305641363242557462887186175773484996128419916581850349189244619589066185501084403574751266179801701162878534157710995984559317130698492563042986779199995667570447788109987576592697512362745955462819623508162603376634219458582656132930930776394393828638503088395696175676449216067364975079461918698309893016157974124920860062381409936531089709210988639346422272230898010508979110824104703934707560055813770486082028025920373526579552599263000281374481008473767512645576111350901236091175495778760113333164105851752484684069165765851443084478609024025031111287285745476663588241488867299674317649233097967533537584029232741945197299291882827997318258197728363602586100615488674795712540443291448893777657741951922477308013994146813170700844878841627411361413976377876451356614487304559129769059461773794809797503400829125364170126212083127479793822854777645115227901203723502677918337950587647934512867397761005962789642915661773922026889876104073750146932476833261110760226174606434644086868641720842260568051942035847096169282966694348266737938009192179946956835117797574284784875122216911312241162448373832426069072058390879058264877723959190288515178740284790825100566743036143519338252289828167729469591849523124316852275552115232296910402271518030497174861580235140769373678051726429575473420538447438424041516137533898420624619436029602797352677441983962481338804972001784752772940553665459028489299485049846977645663518892001509455137483422525220593315884241992020608527299573630558574097921468119581109510189716340111840880721624521169321820815168346814455538629414112983580227537515028811992475610379175373921843927376691424513282228937303760913596672231998681769285244536139975334119074446949639010626998846466211863560036462748936336937080191495273396629928358538617364247322649607402021863852940660119151364290101047984429613907719628115783107328854001099087929428886669217443318670714340468884818791865739125685696921863645786971263048585543449938914253719242780016269527841758005678623945607743185004609604573976697382034935802772807359150325099531079900000550430069127766116911555786627618682898081739090087746597223380128307744792962978634713730854447599588438276146821679564226283239006948527389582463368023582531098348163784442110587036094561921005843439853088308001340376627131439524683167537779187967055568665831143771825331757339472832514821296635284649023646967195421597768865732951696176080326957327938481223685479435604133644550146282475227841131973872604849130172702427114563310313861041119238904488679320585446415566204455881573268107852548019608012918871174975433652302904993495596824463310588396523447495939930805744437300389555276755787788027578956033990852561287673025687060511676242491099304207962174560902111047507242317585819719731166813614872249354576772282609696316705562755958105431499643257781759257305586979384694162185049093506958752473281627634476439551397620013423235227398320180675228554447773032892760598906404471935672433680411397721136880154993435497731599506974705112821490048214114730329340543652276467484902164801544695135140095311366615325684227758721440648125151288459853625683643694675758955531901842635460739760603842034787894445581862016915251673846194471166067109110595313245637926620736037813528179642660464244131852721923290014864341791871669905718505527354452548550214522757742416405503537702494252604782799313405498779062126146939651222402779244781113090652738142809483492942313626398540626142380577180961219902413051527856120899593739167597218957374011802327575190815756780025828184015599210450814134192459248086250355795494994308003760967567809523535247372688871214015007994439190209208626505154262032272304228811559951569453285082203789674572086540331181014713104077951924591332391073107207234395446551939530476079024679615261118150050824883974159500391861223625669249204148835065110449692312320063096220736820629362007143119562072361031367642365070114479937737974285670402029451968749325405150255504424297835152677875791823217616770951366005827506233744119202339802141789003798346332105948172164681525464684006227648182839162489947766825527705351683261694615883402714940775151639417493836151866350356823477409296544080596467589558023402260388515100171230403897090014592919315377075986593835298550032244748888710285464099911218813393378017699210883340574425461625095725817198399601337693612207844916215061059134670266502849060537429654589083157006709285335801502584654357185663684987579406384856943115948907125947603490998895181144257413987445661558107604463872954163794753662773939816484477192156749946926039023933414433636851620355862875413654978919735977537056737046095095771400361052700405676055782399255878936356186875635867440626638796028989658073800225534031365300384193896949663391034807913703850694322961351291995776985916264025372753638944074268260105461288485555308977413895726663901956735449323215936157685958655252627968049055126544412168784783888458090418928647866653409672866132269813436295976704274227870884196782210418329419895985227029694463803413619423215143928098630378560636615126478708371967872759153073291980223447208935937650554457936270564691366961989413758381667520410963942483742590138529063122854527460959106207956371794999921255263770609177563010732968357305630635401711851014276326059870038583405994165044011383694989440970559175747240697831409512854711169268488102493132306239307617251314739037332579829036502335917532746153052695362008456824971937524830509599720147124960613550083439257491827264978722648008135581262828637169843623862247870831076253582247372330245944965183324319111187793601055004751678183678067171433652664308817004886030463248098205750952705267153124940836163447227485082303846676444102025556108937035377884149590341099111740472726312928214638110342907591492112529952885942623587489317933317251875718955511793657205396647694194043233178522783287203208229738766740974810081561443997494833460414759390524899382579569121980923827718349906180235948012317926144831406430072298509848349018781964981210074341576717782936160690900740785213132235159058582157193689634000326035022154960518992456963780907405825536898086605228579568666107961062794758681079133787715321003763273750961766425452184490474275683593652741687352718938210986464261482517413355490698198711584802842715716648060011728098625310285740463252726293533016710983727982979338311632677152210591743055079436676455575232328306393196889876550953731537518010442704728839164248351898708019448375643066065418066470403751305085434863155083154109289819535224944094007593464146670829811932076687339316164324390792107677699578220695766729403852099662791509705815997719455386949093302295633553110636771266246999420245960317699202209417659007367355283324536291428623495308587377305796593024284477347228313587825476104281947712788365373442126761904549336990064929048848372536221476301642644323310742251136774783763458827989459509727568596256441039907326189720556468145316419843778056777868002203271141762935527047839817264839174126350613636177518511888119986673632098587587253747698268366625275086954287051778949113460954471812657881038859452040976803296625617457346708222279859438655490243233239799822686951080378676399060507920138495408793963995577061070320230715543859271790895117427095902509770263104362965551709310524585458185435006250844613730858065865579403863803832081665419407616926675199965786077584700620480689347980309436335622602685160244795213237410449716485268568649298407131028264816908115097179733305124149122958151503773812634690872953605888925241356058580599445537901306366190930500475468931980520373019349852885033497982237782133492527693889253431358446808505038290467367159727407483739487616403958777850658919821438063269416523395870794201715451668214314396515396795638080172305918032605520606313504167692513125887029983915009350740161129321933030622179290306356782525413899748090021702684269904867137193964595009778074321219399495131810113453286567517496571868378103299917227254623651009602668898201582836565692185846459489580121431556401955981165027096895843041658566436642499850420561279176340098302020126598938190695373714939475703349949293492890455262480165021934078706544472985978244931009968250159766398573555857128561119143414784945617279998799519789822098628035810493506464718882746577098823161892631271582154790906226052831335617712345705576243658373812957463806389573593511666450321076998747586200880870150811954129975351525375350908235418823441028570827091171374799446947624660602577203597825307218602111317321696172101697661763942639960034302199203619611432816082312561209714556169259060551587093617365657285542548003090230151877956919322020390745150489603349135152455618583780281324744307593054039076357332779734118065403910367493901302860367997388981979660313732367242539716984706993387820564012362532473790278773662613378254609576260625799001154565741093457680980612225084000672987057990817280053258456399095898065112829837500800353444298419195992375819560779920899235728475097195209038716578012584916782530526536594071178803768026870540678830379666088591593220451723554565632656942991176512428038512389319598288227745822458784459412054629262161495080560832030766819385937017124909345188957453311178142212631420161719182824159189076115973309597647650034240554479063901937888381009598785883020200340978983499555975787242160296115844524552741534869484213669281551493340243822536692189711420824612885756781992220368286735979670702648744305157131087437264329415674622159712695763910637818403415346433512829261107644214548729053268099540857699923452647907973141013400773352055046694643893488301258570269428347372746662604598415733884315435562896657055198098499330362142912942712789457711328336677533869565711011183781141913053432237278331522601200078669114610872807738709255391342328778756486135787862157202587701391939374665435298577222533436092354327988056441262807947764127919980917492411073550206752153714340690823887222049641985807486488004646872891036628498140446485949239377833515551598244299434246863199496591133569041003583185968159186874467410884413259361000864458287202174310482444805592349164024323562845779072143435670213544369647240497290800027248388876996173374098978103204745072797564853033722167974346123532751194158627349558250144933341776411142467677571009953311884261494172309334244598875346851398833573544996031153316079023583072244647673660856119330648271798511732373449525466976008259134934720468375797831255256984662771207333647457211093472279017988130194586060306081146246304731079156850956501536346162897345057436456903839935149239631473056270526699868021791601374018589897625002746360473608716907824120043660865795454166033061298845683235689092726309121747877199493858120410100547563583031840253722322775283595120332387735433328604617389970119954218526725352415226109216295738331067373355491412900278552336910374922567985413406364525816748753896491582044291030797139034967428325877721653324816076208086754241908787676148948083517661098287275302056081089611056545133483936614417011332659891781022819475808478853151058906700300875039409832194670903634939623332945248706155661992685079865957053019494034330761329537598267478421795191180962611706938928945580651275449066670764298555859187646757734493842045650251386665151433355523228451757952549068519502240946709529690667613904658455660418875815230374773696416828311532555417929821218118380617008000895031219981993579158015523195768068798233777893636123649072263784167698156735868060815374162923897979484339433654165601441841430009378619721504188263311474451959432471085510112664101686082498981834221252734877257434957681257253481721497157823549285105614237325511556196856066836371295580119032353227271637777801228742948033411787522537162415581820225185040367626217229768911178676429829861276299282284006253542469648649841278904154833660730030639027713897240926479459841493534104751089657624393391614227112112980604426356551106609800320024343836079661826128665197312593010536490275970246322949494584882045801087938445378164513822478762374539630590287343397192590758808185214752713600744057444319745071586894949700549289024390505936822493806055784062577290457658820995048173250004667974554580700940448805327337717556505609204237961001787179919105135976671152402954773048539618643842516352174302120583650927791036139844230492115209551953262360121822843138939751352096835118359885929708951201286628950288927947291765461769528324241329369194170656041011379866571573417978935395675390341441586368520653528716923089746510530377705841810194009307143409314240621574760196091782083336116750830321891834384876567278407098704194892820681907035358145569591571228095667538963417342430580341249796700910969954343445171584038949619849996693315515141709040363888653749004985663946303663277021012492335889118351797422849283797975284295394454367154099639216962024578586311872336712517994167441461135952504196026668283327565758155937524565642715381660715449539788112756831937082792846660042195858456507246010154442380727736064461474651711353984020205336066919113781694438641756487823263327436187420279902396402600703938676906824044485177584921326939002945838121236842092320672086958010852432886678406402989602452903127355412132180004521262033092527080790179664248280284047648670405239115504903754281903719118995543314462603498881359750785273366578405949010996281741695279121881602663568741895245117217264637802836863485170334477182393602886245759108868482561735104399729170755714646950355811904559899167953301791781494655289252416227536009872420124393430856464097292327948486789807519881663915199497373780528307500506542713085481373241572970830054418884364872023247027909500618509162980667410933435412982940226660334710616684960512290572035620752714614468569029066495056928295375934223652236408118618258671950997410586425365159903997252761106196543717953712052275907886583469180215995202123661057786337381629666763598314083872380003817459847802485786110083394366566996712794625534319006343837267879719499779775136617200992930040998730649550009448052407244803038514518261172178642502536545186820676498245026392497321016826235012899559082697245533747271627361805622109736308244953484471752682248321218791266920185092142351641941533877983776970903505231684029349461279585034130032699882565247401956729113698412395965704727919874989549840591420813979281256020449856580615743007312663171024298413346690180459789065870916383864336592980380503547058205491881070867587122658228568343291042687819116137752941925405099935777908337307701612591148737062968204198397139424036736082016114844121053228913397497373705952123230919721330472820349296572766521556925413873370402380010587817762593316123265464732381011677770340367860673229194118646095422572363680411838479326621394312228220440257662712727853153592377214157095656231319092616830679805359048960598380295461140967944898411862394745410419624141898080862870674405988360991446947856105201588567187484817420106391678163832973634741139545196644132249689975322270461795704083818995960240840423656750226088878847011439700462627891055572701639303228295595714464941258042635270359882699811356731969792559661688704424317427467595843889690920055839603654661994059144551179989654389571059365512503961233284084003080225154859512695005462548192508104013438055719918748885947535815330831575433002771021476687007013374135001686773680320920272463603670202946142606724623491724437441830716978278592704265440558640912634643935747522299827016233399578564308864978407783484097517365645385841584919436367169100079144047785214023326618906256727563158198816311292548499708243919268444548769135106241756272098911544564722818504014075722875829464092465284348409675779059656527350393103286666217126462832079183273794890053848880957966279971491442091050808458073740486176957590171777677130304935492217705991657490817184733427566498042572547751156163302688578187029277958612797428400082715765970902343348405615036394258391385070026765229857025229581334439176223175085832533560139490422917395148610712227753040252455703912820959041016892787585287702340716881124147996671473153937854667071379010646929135798153234091017357458727710593576978442419481763087045148738557315119808325602222714142878059817527691742069987351093394415980762716376684598794602027811653686497138157976534051482664799660013424344844829894430725182381177284704151799227025164045992061783035142729545813417479688479173671104544214213953084606461215626083001712029582453176499667584192668149978033691510092795357980126928635534625673483188833910695913223987522112221412613825578061557534636574900972437853585285355240022698478166228242079392453875743379063217256955857620291536161605575248267269911395868965463507270869031709707940351761169952594256482275163502375808019147460164031089319402393653362366226715473843531434925094373394569555277010683615280997324749943590102797351459594585860722444997448904483901437067119210626255584845821728207023948865981937712182925103999682208507884734581400439490060257777931922319613167769006823718540221484416015262703812669747039697131414858632244813369185920102484907925701462494118223176890425051994567567598949788063195806098790572129035188483304362584028502246544958954360036440923745598133630572416526971873800485062267793600178458825317128799020964912453303810960235133799934162997816906785751492061939405997467369005633803525007428952952280812141680025080213743374356741966361585438329968410182906606028570338294901431946021558529166902189998757419884161752651059398778112599174588745007707858713738134049916805872865419625029484737646179126951089401328972785806642856472798143401364598657725511398271333625489871018324500732471005829641691245274367267245339890354356099702842980061389279455526793116191565955230438344322666743585964366058047174198402048605472172405090854238483729993052066769759131066288981592788474453868895670475055115812607073842124315451615468539796072172697594587285434864070755753442222375318638515410583637935714875640350569058913251505644800002905113656022507406308772919423710468068323416761655257742513815123465561577214502851154963574639952146241344510236927187939494078125764394589919651941410045583867921754206947991576261936746822535659093572857899537943315227851452613710255708206580215361243720689974601464057469586193597127773458916734208949785836714006286291916542103989895785893952123233792074151063890083806151507123798046182447332803062606982559948787382777639527282236918586540785574828726674093970205431035701536670608697404991737908966903561112275961752520488179227231097544727154396978361673202193781770668258125757498134672151975041112831112165191352700470224472030459280040636095678681883431154197355166285274723498484268845889755490731367075024808076749231824546950315437531316369460061216048261732890684176363915235163127229225708506772746069582427233423444103477014924960945065298454728089993025937662420044853333826178919569475223647782823567862431387665217932648412710297672154087085572684688299710452288368845878248017536199705482415626190967289315688392125345541749082795745380972894284910445911334569952294470431995381974418943387343539914678708914016079277932278360713150405784586740777358266493195775436361864798648212628636640204749679693999612150345441106349780460998139087261781383678789229245455477726966259264697568251723858910893108164291247417325355046794086021080891350562711367029103788505597473813754143914774390784971733951585096774899375307251912730116199984454375176651375295701160452187478600088002678345467334805248055009236016928460285691215448020654448357994601440298470356780329877622119463010041399818191779896107987095405813551023824375997710548222744791167853949776112313284201790865692247919780605641666190186193869948823403484526689818590921359006678358803013044752382717968818191850647948953092485529345049255345189882151689527775403794387902177616190996765507213511359936848712220309672035517853746115969967048617287906619214148579817569374005418084604362685066400147650760131389791451294124493251690485645555985490719737709099294887409879674995236978550775752836322472626830856241924901656327883776662300401389820276172690904541617089894653392025539225672303119745027117263998164785627271972865044700557587332874812204548425914424752866309756475737007809692740932459099929115698847568851747328719306370659171032027507233467181674213249879081968989429848023596464907399675219654160638157464253279094198872751022948484830464051868788936034162386214535056841141043038238202763343674635187169533296609638243447922666275663786478368487554360672355149523145090477721168925620604001198174441509802904081559676788956886297636817650051077952215755478328342791521633740456777522829302515318492983920887043163562184482893554849609326572114530977645466163341263105687427864980705208441775114169560093652200683809495552057325883971872889330844520457006538142236170893608065987797556226948815766378952882338125740046584855018011964164117481221310768775034104769489919997534542098731567747409862639657771762624438955299876117366169494295740433898493021096952909346331427890922861932503704839615952031386578654571393767048735972487204279960430171617190860409804951297838464726257475679434688586661630647794854801134473274844290382758704152166541247291488793957047858427271030558782574632389548316163705627417414815945558133077253869401302345375080750877293492188484865182141823924794878633976385352659679021505100292415705614665003637960866413777106585659491680598184214331530788937977744674738412178327395830976140678453963258180480985813080827747016951239701025829324032368388918945772700737041096247379818303374223777394050658527246590165950494499075376884513378580387171153112270839456303198885842982270644911564749565526490277136227576022733044498151066167179543394292906911702739741550205657807572451228481258878491429806423721251776326067359004878308454627573914701131078487376772284945684029949060835653308231782770348820714590240076098879084395377007273504056407007464218120034448437372596521066831494100336667012677405054975259347843988455605603003797138569505418789782495322265070628577898543342065451082244895021909693587452844577700006921187187940079386176830869229450124153013645849988557357064040190477721963588994222836632799014049501388752944992507450220807007077587552213253980513218231179552867710139040894269560938873203847172020562236601192012374236522926360045758463670050945591068172367979658974622790813745154487969730240253243427288005536495986169523184724896699450797652457297187705502183355217921908748810592769337011456737566787922978714898281586442330926089602210648255682714973420463233735926844032053986295640637586651617358885903347550709712264517843388040680758307333942568535888471894015324456804651027317733329685366336624214091134023674779683678993275487849968446104444593589392388355645441553576110253417171131519801630540724016531335142499804459490414264444181209186559448711867714621078326236098306387034707659752931045502560636755526911116336331058315214575700308863976598820473533277073573305903555113024653807295126387399429705215169275002578791053025092879995656697394208675393940669937699249251961918527059097451369535929245618508990619440823435729678425232775778770024162447430956069244174835992935690987256772163976517017918637960642900879349307709791815200758632105570226488747383584180377870224287510232274704368071376524496281299102845323092362982864552275078536217371234909484748518153132150898551559344463312390952293410819060639499449923444665181419087433880021887982335111564888745259430480763504266690334039485280036688811626672128731709746251334193049123977352252048848046170416299455367989739575578904375583075867299623120469240208288922403501454626305742594615305437335528580769724065740802291660175656974314628490311780678148152935739405931035763246630047939860785887491082066184115583133646687981906271094236042917690142365351625192426936300290129468890588823349990961324118914814625441651941667587354151793637760650153109718363148333237082588641666836592710453718296419287641946322923235672486381305331496007758575690297632878462273237448362209944268266926948258928179572315655774508879019898442550080230611181744699383454084562670625602392874131690736089971030377562236569978238486815189523707852451774558426052920230853267117285190520186871875485449152635074302220634965882794824505529594397846996593677152383874146438423574552815683123288141254485111028007615312644359241666875721319749302869909371700512719245451017735613074839473601907083570102576757983104266097149032048477383375221158217357286661820540103962131583910344759397416631722052473927698416023479830423906840889090310183096140749941141469250608216411323079583081940499357272850936403775932879359841943754735448103372596169477585811280326431193045879017513794699891503135926314269297285165096053854755677919062659211998670278931990646126752379044304129766813301350652993640219833064861161748340360099128706761531151781636478343508952299603643805043908734713572225344259837253606995025132886220033791238881660833605333192003639566480311668637951405093655095314120377793586002098025641192534075091583448008421923417877645797809435233410369466371405427435273072742907685070083925316411304358914378663364488777935323798386279609148493103347311873703468660353581157569508215419971424251563975044669748704031166185537151184095643101260164796942191424989306744212979860824386980780222749682038199002531803165852676880167780469532216760245669778081143936102472475173368214270040508790820930745778801293012468848766906823123472624757389947870920183747646180710501334004016292446112990925639628670649661464409137004209411030616160319121069717098783830108763229889019413838713818613612732431731706427678923445240922972419609348524526313260586821634833721871906544678253006751318465147921553504103162376579918414999502909559179305710475301454120766888801653196474994038208253000309265547100915195222915443168542084612761464643214266001673873973413417993029211494856993850767876812530240835446959433582641425117342370701435401658971164694339748172159087008666410718473710809907838817711459277548687302578445077741956428802484056135683994506500612488916620599116348992670248975316457546542144528111575056466680080440754656543882744859257453148369497162653754032253462670977898763586189938911214861511509967701396994788739575541934357421455539517874840610159529850060811779337471946099478496966065767387488160803770540785463427432397375965826135327866487066017704292083658819325293715548187632593370863051376657969014160459872964880747712066898734459840362480655541286445717378305337722810939065460468619033451834624608096675139410052231107771117389064907266878969542497820134452101897199663387215539391347647409381649847429361816071689317129407102431726298922093414155691973775631263316228954549937171690816856391898468730208597550177943931508403576270136563195565202666425882919642124252778432642050901303132786090959180348047582745051541858255323138886663334999751099510666967252424176539310679369861671920628931525118297597416555955699839379344107456258157351062189125383643201706272009725685987903108722300668239909771580316363642245423829403071030842883878955069073916868062775971240501486648929647214189220793082744574753814026822550606570867828053472779312790606521268853054209259056773029492658398056354751676658567947833510026830697078441640133276325347857298150568993435874701323381590788313343877907084676081336075192644448256920486059479395062325379548024231504228281262011291916069461850735770806497048630827267042719582162343696912877697384217640191980378555270454159151232022625359207910508591341331588013280999709670571952066135001719965005249046256280312914678687839630838342530490112532195093923889698509630447344455786853393390591519036473248408755271057401448086588462105606225769978749868142925096324282597474101217882579212766962712577554957556195037084835284579747462972767135140293384952985171147981014183427624283918419925343384131457629202779353210856109239022302573495833816223787157947410356926588228036248731827905013010770152423143758187555852227604151589460276234642086042744679300313137682072336194033712991921498500144556593011305945421497701279185995344995595827037632634105969698962373026324545096688912755734198962809395807352404975688549454420567015756051856325849183868568378910124353543103074958353004036342824413001601889324583768241008844310392829127914030108396962603545911538979840392280484121084776926497477522726155114519184025194297135818708938094949946766290455977104613060781821683158431789063354316552316645021678295688796527638532608468170863624720333380717766967342126290686453528761150484464763006460162368379332606544968678422872128703614605591751410822757950610225112934659420590298494755396085185754801926420026698248254980500843261362588634362863819138471830060152828665862664996983752571796745770225050848310399911789166757643466093492856345622492436402520828384378252095427389293698421817096558748245054139072988519662676932211414507671698190609056340162748970701275885844208982571228925320259831725958570791157603862355310871883001830024493645166995451076722909344026095618391749755183015405985042357036525138549410134137107236175034135346735459494837161920044983035651988686024214933159232351508551741948397924883503357965880966302454418107283249239267995267963868910595534992974304159101264453026718966899819448145178811401103977191535368346169568737373801238813222677029581554872254904269555129683269906018405109656795693673715350019533452642059309781356664686921126661944600533995740688189724101493200411013559684170716390394214424093853139531400335851479028196576791632996158113516054081252277915066774615826138030207793943785626777598033323662026357033775059257978690663361254715740874705087463766461548556899507309933813304472002100345946994624233978914422437905728033333829055645039964473140280743015089534731684713845605515456551236730406187054544782641396803282910808482446523130174728507685679063029459959984546798251838735234205774765169022804640230900849983644844841088130801089069850222602423605345232441950360012157501936954683440063592584344472807050776724741290944225492896983559952096671148025901759206471391107699214975656676086138583286292865974812915927633153615463666079363241087499083679617044233357360495331860484811740887365204117511405450648100055450394378099008317984383478057617193059983834902923646536677240610430361657896704063805563056958066954034399353087996855459527231803471782259111706422268241481521403367074817642836928253080718784190660816991788674641461661131715603918409021283284585672254532318692718906977143130406403725863923226419667993508180099816595714188479498890497436732362599750960697789059424025953293496442220539195321770046702671424622318758997008159335643313278487141438788059187469036843407852982370123738194165689524044062758633622480702469499269929887195735046569697044259994522637767607246068781380147340902896028468118926582292967489117096055228340529837307371616332993782016995688450473942140870118901275711251505929879825893504160389815030779214551775756714843935100349058690730401111929699444338613618995156088921732441749202370168352157524321417244791256290507678952590146952469045842193822195732021983823354493787789464337617852223682162616373221767770136213213449314689130619325619579226225894139440254828923410955876930727835117933263369266216651953640502789700859821188117333853533126630162665075583226828413572254416058301848771255745800397531578124566479218856568492156167592755336379543036492453261248700006772688155176846510807685899389500762318858885656928774879906425599182866786916488219472130853056867300892226702505612441804719571414669505654471067087154212131021325768221422262030257239811642336825334808472041212101904409416853950981321088961180894156801165486188299952299966144771592923492899389158370817252461751257645739386496743192800146927958160436501466707597171262313263928441831687436701111421681688595562968319836869459109241804781838058125266014102887581817522531162162100353877542702222280603884637657921423207310036495092157923822390212366023942197637029013971551936779652219382218759621299311758897623443951554134788368821148384587162614811226981012427694247472572521498196850261488184333370821893055818818276301658980735305151285772848301681020821473796802997491692789767441841490349168189665585025500598834863560196372847678344463498758139176268100598067230999355536579700656426186585224430567486118612409978082895932986565686667373551482996742431014485281260140252940255174479696513696510290187227518057566587610457028396099298736250572373100188525718601357159969195563006876470363980398223943448029079952814223225086709003322234719465281126614707707115387497479908938408283637220722435952932079983423735883430911285768517526045697095317072581002289473602702146146251755565952136412672093375265880749172677382517884366994673532883236914663693494872508007100604800933054426961920693807984642082225603950524786986215363790370681705960290000085798286754398926022662352121176685290526922656338810305781962820519395546821646703785669702027188484005583055512325821803634343595773829805500490349660923791303796865345406303030446099826723443509780503660817493314851630459077802160877238138380486741472764676266098715260235961214778645639455748179704034659129391751464465570120065949428451157760958513374703711720864507292575253426724598678775471293376496025934626932257241511203071467023021478378813010190362231294652006041539486092010487311489000991732560589583402385519913974018396026336946092788247787601021400264929013236466757457854876697744444296336125377544785959993046483446447325008144346641218854254861812745440926878584106983742896668556028391819330296745637182412726719354284307551595922683090937366331469112666761356019758444821029959401012195221187047257666747803188096183031702354865281817439680591339673038113410963652307060037021480683389805297506039073571012453820873992055921297518036308102098188622882454682703413672808058134166640238893459590554948807194957965708134745727922961814654144859641287670000251438838618837147128946653056406207307875585180892709259690226908813354002642736329167299190314803003655650183347752668591688632831644325959941979486763517108985733380056201102528788942483963941584525111223321533728869688195368028423876375433589787483913344089180113139153098045700500378557486720257598057582130331014868407495463982272228315496405648157296888788797776252773563146490734452690997190376995351391491454783229021982256389188652456010128024405096074219158538391774598338850314914329642592797567140659754803959453681888144648905857028648773901700618757176020070561615972534968929739191305207169655214753953986695284942788248686436600026627448335486102120967057939121481622472890508282148188304100851642853574513273901526036186132725345416292870018259800902380949458091260331441528048186280952999899071391482047036063632508661190416955405031025117243212065865087991643715436401954070561560176123031850665540508899997614934157876480045077758257604787844265855990968963811030448704391780679623946971450097020480668844673378793395179783035441410235245124148909122541501276735394288102218233108270906130340688711833221460389551942668073075420648709692677085272436958588170394903465627015161182658590027277294110173087865539809902446848342468016902990226797444241312641853327649163257775513583083977040790528918354921053694928429879397578466561614786698300834409291891290845159022878768057420032499718327364322476368053158366909501560682442173221714575254751261250042744010963130560724228944356317707302279348268740021120113111445018006548858782392442515973064319166833157304545443998375458009727439237270941943817267807869655846203699650166578748544477137997288126286016586017682330041037147199325860197817155603568216287843530235487003632755617920548509044339454417062965818375141503043075673922902067941287480303804231588572169259599493187488049328811779674201637319053345575530561776751364792816254486607184404309483460122851194111211099077119470366859484058200144042149470857580891200265455178621320359973136050142771404814773152212601013662767495814142071581686008333762166043212424342615774657951322444675890139686192512977124734116608823347671946635147895010370218230008931723030173015761134090219670431583154003088875457819468058265617843050742717941784179605913555009145026310648427257203248000038450378402738928733598287823991413311199090303408095249189720223236870827685412667168131623823216005646553384913776620289481892072008736026648301559674253350623352717664100446166770641566975932383996253378422569151021461508088223282440223354232978261400260075220361747055133276059813318314761799482769647571278291831546324272019426086118264902735475633716541087314597012254383329707523949966434194884333675858028889704816940337194842567462166985852425536598985609306577447941168343604792952784404964043753543996168825172601059032231745779619610215437023493919579353775173822504805895139972300788557640901661400193778335785837565585362843725523528398413829114683976599490402166810856845423327046420103247545755490713280035704522330556453254361235085886493714180293924744720209060854641112331639592362983691289427673688029366753612266855688378735944411162470555228230320878661058330255123995419030785390713185226883897665102092356208628563498688678819842268403686403947522831126653805156538991096812107392065025828578910213488430294243661276810846423303137673155844375650439950748782609663993132030995487027275187403345891309042962395722003133149641883492281283364127727922768062200947472720011206588009249150055575299406663462756173246411411399146450259586272191778576426537726963220429742118205164989190357776577265124750549775654360946368742259396518797046880628441406709051258776911251814932752604419835343850564486016564453998297092701438284139294066681752429525859669256485926248870474046997822224573231021394364817109448430707393122522835411300532071062966356841908381308691788856225077030123285815405592741329837377986399736923276309059191287402194739648206872605512717159600522700290207263290143705984575987034808193387250245486700981370776837427672819159269322564871653926500725337668545438479585830424339620415508351682682916080985739774839056966279716164473341482089758351639981494134765903346587831810338068185669042647354732878600391323482163446527894774445982286964492115582181908713824362350217729860677562508122704918660449559483846556601776907140743833767875518351495676765049021882345302822962169934913999341271409218049071432501929289998299511453475764825927716046531448139242029405726541592194694312329590134920887252279523097938843679121599049722305604334718540826614619033300747908694986412371527287453843669398198870316418274251716775121101557477245747346237042667497435499380936471069616900717349746897074899150068245257588687565898305812421267096128422870524570584705913531795393110911855992071350572288743283564541463223367690239076396099986177812760983661174122382425489630525078087509571490497029835069972692069813008907023005869245496966644649833864518538091385033783057444216922940537973168153637146446084715361700674762725877934421292773104384202287950811369652877971437300845305549840467772860173601829807453053424053617716015846947123396385982517094430891469873497831697116420440233661481877151888676746362753843491354817241742834134787198940158236842165955498715014095970332129710864197302761504837650696744091671200445927280999767357802314385587109205750015843421458227947633325342143407603718530338686003481021872989499286244614010903171115624414353044783184367506381253399413938957391559575318608636175330287115087591211173031764683529437984463186533972685179641979323894251973500358324112345547879071645429048978309977499753963807847444482354413710024571016224031228106979471397377498745738509008448841646337931987160564693332536515666923002885537114399271122120944503441397215576196302728324808249915535318449547408576710238621741714765222880489533228458627627440396065563527144677414454676092582684400564598946439213069093727672258244596132249320235234017832406257501685880078823126600436967278570132434191236379593349569502711622184989196887723287208832549655297896737392478851048846890753905339014499103617465495215836063432300527287228747624243671349504422524058333855077086300580675167980782753420487611429030293515490150315283982835033402813955315599689482949230049551970463015150628874084967974058289380177610861362080869721864115718719271253061893087242072595797228350329129578108729573050895134195481128573321731328810942735821503118812352320377631954805212487449741793352790365534701891810224910275394942932250804529550146393640780443681165898956658861393238405560336698461011759875074160482729552091320930808599622380022066659661546536061279920774570284756847469340187984322914949221817515386388407962918561117568223747750085746224125867430983375878280745136194578595749640860784023950419263962127514806134448593119337105169293000010823765908163394584431287111083968068223249901251352422375232071666892201216821395944692232783311832305851729478769163892551842301845492518859497871702502910091865432867115928137300650580600093036582259509101884269683393886747881643430351968757982005379807013500268584224414110468108401489226981429325014656964676841356160672897442867634654193988518263515849764611988778549288240703671668703958830595668296559378815187902884162414814504544970487523996016140522034775973712468190830778270500789657749783675792449719128139283194143127969430388663570435300361244474605688486587535741606380473728026581496170541246560762586203864512973720075237277501416288433725515800887154689800566719007125473272059349819618983550481651146366263700113920106503609128932922271871584201712694943672786136706293039468484109064881426521252405748175743854217567048359282720049137730942434224344528447997684003509091619571069792223371137664047341493408391576331640580691412421115975898859045590835279780285554665124075750434455277841331663665760230793114960962938093634202062408442140959297328447001934686015358830141297363050706295518879205321842144273606739228193110859560287276334343605371455412147086578776087647040666732236270835455054213206612561910750486461910945586616658785339649147022153354160371017197147200708972115948196089227256286491924767265540817618390918713138465009397776694719000950470224065534139208051689737410262747501604361159983981765782056510407938414979598515294645294422966296828635090778757558495030034170961065741137557051762161556856466965494589309208093200091706031405629480249275079755051359480015016775449466944224426751957225919514717868847750907528263650227747538101419041168715165967206640245993952226223644781809127414225988456539179339040265927102672015520691813521156276063883881863845655404763435381955219243148627791772601736290646464086144507939111064824725715277306812856051747600997822835323847563131631462943066445992341355460091970199640650714778843691410546257738281841235970622943357196203207580836313997046512267321112508441534344149881841419782172635663461958411556853892965135748210454209129422804113736056680005372686180620155976443555150213693642463444056661276773295279762241894009156499073811547665986551625264954935142884527170178145374985882428907171612135584361283985626520236928226739096947500578371773477393462257318317152319711747884730936833446189018648064634768393043205748237876383935243097674007713790150623277879957713673521210301665429221611318819244850012772902029215497066334379361268625232590552587050170775042583367404418893852406042865743605617544740761643962969705869031065372674332144109953706882003021694314129832519316038275110820622735646025514327068030309689993696044612978372842309183990337459224558384840654798335939902211123812754333337524324443786774606023088915444198199140861145185100313028950646469012561139055339271536122765526448708323750885844973768199842396134129803712964698476449817722908580377468709099034968610812880430337572777122764681429645853882142351025785131808337481429553037883618762782948506674578858525773182543608657575621799453510589234993648567353668648001816947279790655715310771784817578821445678743632078731636316908636540974087885910504451574473751309288172023582045117367928720503706814024463271848658171290964557534033041095877256057366722896049906139758724666171306212823373984865636596541364451991033006024541266061737669200026875750975621047878009049605721175107397480773572998534462921762629995986235959546537893703578090365261338711661099228192662380968236885958140793614104856475518351250086498611120626941196931696937304063152274517162036446740659800764557424518929604824946083327367299341736975440605512849434412792140769527957065759948762065633845962263572814178014998023355675938767098384061561529157073322011697681200126411935826779488074880610425342071825316878328298335662736200023800328489939079793021394749766535635767003148273345010653238205576518396962388602992785255542217587611093632582317980504043726173742774076361460894331596865768762813691806484334123134166182705208573036395631046827089601140219152137584619863452104100106189300088445806959659548196957409325765316728589933365907444102254795972596642146184902964510329494612012320838644082973791430591471571354531552660508603611974757849241765717156168199772244903343520329072611735417291116193248654774041912183887763802381719467494923388448264487582084822048933691197803668974797769679476157684894044831761957233043439113036215800945464315760943910905237690402182343906903609489754331874713426921956871354361172486030070722452646553619984022323864751408763988560414580458951773783539801886742443134351607779406200488300208209705663962564064027266696055042380019626880959566346210457313627514179529425212178554528915102761199190061679000476299641354253256691741448619558930895655300253224966199430769379170673397430537536639109041669350798678659439282261057205835249990697871217712043156248917322964607141368840096116333236357126114924464942519225897799466615730423547079192558234362088436431715412463039843115571461822140715731402808433490962229313609554074995176032945113878237898497733421917848302827581557853860155184722323891469886699435541414856982654047285346704382201705163152076885560855941958508736018619998207342730321753296116748259842891915956312324950885095731754395347105624476101091814330860009180101008627712777309412412169727540728589135366577708312850325277170064275376360810323499653999925775593668740983702944211245448107794937585732552048121178249385382129075710924023576834365906905656312301134616492901132239928198671007580352356623320260859272987822468026968507700213499704264062060271011996826549260802263016743097696662073225699004788419264606703481488025888530162838469684536524313902108798419691996847990014301252502014973430655013920130500934695497680751656796071983149185631733904185650246453428400323468998524224517648862495674840577120140740476803395605950219196759877158764623003001745497042594706398150066766368858578075466119891090421815965413225147534262173478012923569760325822710464350892602297658450970813603671604758840587977588417582418423026708599452246163612316061530117901412009958977791204774007426567595639004843433604792624662074230295805695160546844585964542309361807249250331246163897289827866062592501741641708074115956900942359696286757161403226391078693510638168074727453723709618166744115909281632441982573667271789781944760755592022417488870970309297837877524246552023450916980134455456320203578590832187814711068008863746094723493804652682051628019818498079761234375528359426411501438730383146065693683416685519019206510347837285893557422229283538339738070318028889405766188375356247045212831750977081946233989991197647226406022203239430581753980331252039894830346594953929750401690052700797341123325293644268246244354127202528117244658713839412156835531082380654166359126715145867843334802187285543303299195868076775554276552655637331546030621648819107625693379307516099111001303009958578592614917404944925900826807162289961307677508849681913755650849286670569211878438289844991719632452670125711025674252951767685709207724495898197160625186710085625715241854520185976362884679543631298783700917330634538313731413082011128994716534629971635368843182445075500796817549074116437997947764152990130885165049386655695057714099895253490236512158877244835398569787245949195699972665069809601278428218245743471061854198430558864016678715249337423825503259834637928156253438471889399885051475781954805293889701018584617300123176235191982078113379398607167653580618725903553665916121953038326717552357331160862081213691466279126704600038772965617641642905629228817456663860134540738361516902903205461004641286319458176279303074840582264560610631520367974962346365695286665200542584950620435644780549469940441579903185209746964389437109687360285679694384783326965239759820923668297665690931272040243112625241043316723995930992431405122756333065415990945500777047215522157611433323195299220488558641831214605807763233289314724076030948109553995549017179931042985954526603278617859988035524231071970076084564348157839439691014220158392674459830451467736333174825274434405502783982411854236857271216506718339080386320136198688071059344386244490412873274600229464363293031502459329380198245614488630177721837576182259759497855347428876558938154233322408825294625664504939924475365859549463740519003210639002717692972484719555891768112724168454780430815113352736156723457942299641097974815154844895904278442004396945562433614968172422386037415448430113047139376870172786164161489982870791406316981186681404389860836150865416720552892709364788789835086245638740195231316143180223345345855217594264699832400798662049254465673319154369290896060099230650370842434700391830896687476531145965189261469485881023740535923061690211748256012319333617262172472075613951454451586538484959367892008004034969779766876479275781201622609096909883544187964482379446434709482795978628664769125524218146589589510288926985301559397558924878997364019347571945154990118112110082799291632305098241139880808975063649791711502154776381073986597684638718242476484790615598861953271276691100812546060367865428245317081316603478217111829267903901047747186193109010494121335291747716919376648943900131628421862498879366522407939746186880168359944827133034039699236842628113533181133753300088824620847864470685068218264554848560286097336890168496690828170866650795326744785099798904929897567692131651152105560353057318404397517660366936101102523584835508214030417996107455625778838142057864217383384105093893352028150439609536732332965468239452323751192833395345751929075991487683291199406331420493031296612161792414492093285872202509834944237419418503740928411454480455120995314665072487376279973077980467575702987692657539573719157064749182816735955766012766434392638927917141672958696473757481123517523097691665976996124595953285035036187121209117764722556126370220557748989873406560891929774662545386900335501399284837871981801136693186662167637103751519201888614454173580789839300855390142765190286760788541128609177638553300868506241694078909756444760129933729583241292447526428859239834858808709323140573753385850119098119717872947829158828447941110048459174028187684438508921363611517709717930494962457233523686758155707138858930466661407925436471712034321373074686369629303887577175198493716940316564362937446850193260512714272092635078582256511725445987729946816369788833818495246231322971658604663365901285110552642261750689864130101212368600593769330649514958223538153740433455643519922859254189771243630572051910032333778302557743402280315207318031725676427007165273265211088133108158854346736534525495206795634561663828096969621751952721287480483239344302968336539922805129897119071386741584591570701522162423142760241943256997190221468113585669438193428546183942289809496170696013340227802034482895083710437372139702478100805835343542240857623918635791138853958976158045879665458382516185192179227196682023624258541331618023021910773966486966834467577577302913855559130927338842585612202020120921313959488486171842913416220192278211311569558347985091756759473470945470549583269539705335440290879237870605735167306296247161156543108613912293072168917105745829731695361625808940136346430481500440134218512729735577119172055781503887984235462142918849750354020321036110892724487128836228512755307185648897199155600072454709809084051862779687099454667357166901383785853809899096692525061886730257303970516692156646864189329950887197813151914095992763634541169858415877375841464275202398739927898082900461328632093471098981150929309814687843260838792703719883210676782985302663982075988250677988308943721732376391656649244082086909762164232373629882875014136151491053064109760939551493676063122232852948388243474563067042219310643793060055164377742782540506404302370912877023567029489558861605073221033334402413257275617005351675002978722498561891487178322346439527292684848002708863527686028018877574431877067428714374763767204415446437567717159685684369996559779837120107933930121658307078265460117494842097263806482378942130066853608360167121875643026709313978474008253303624395020292578157062992942409967039558699880935219367894349783749165964106937470070227531901248393720860427380957014514797391932152765017214223741793241863906988361737038859934922860406947226041682491377769668577476376360148582740608635679334799623992462433496236511255261113555754616329132828257144538838147188649014791948392293651074097142952157412145650621725783612850295061557633718808523523161953092535995644553635454076978983006630465158141842008544440943418528077250555496709499893686542033137096666451442528341952872095225639438035277291237229730021348906189355091929933499440212392986020385356309291652953786368218539458224936624901003073276077058709672213608328388293164835367294253323690404772662488733366257024490146673442567363559843047274771386926011172556465663703774587579047236240384662296513439527686727391519988925987340793112937470250829498103495097142618449868941815719806602934924493308674215938180690901838807343588134228963741343784089880789641969544936457305941826849783206285167885974309196373629196080661847770833686854823681095284524451116690763016459239242376566495643761596586911139927265020158055790783467163994311910286666375473606781028843734012198413744073430340989306279498549120782096610177286335765104615498557628088472303577301906030263035121187880837026518073252607007506134053154600930370500531330405996495378441429608951377246624040511943621783795860793080605768740296512773586615205469223430273127465469802375796582921246799241643851671582647968069873559953234912984128024196560535118279951732155160959695675277375897633226205233958608816221406104683474631122421020702978700282113670898394197046808437449833514575120208428912901849444267786895015145519218420859641652311428401857055528472066465655990996604515311491211558583105174238095524761041078570928460174124812945039876535087572669416374128004720338688534149670631783763345232724044915561788357628195735306263946512111829829833939209497363654641703006945747185397438126749321505083733756786691368887288831276645260815248428473029669245467372298113705929665124436754360672289468345212169756884766827813780320667757827291424999770291899012304167656061917780875542737963565275080414424319194782673392602640225835554250631144494187897789287905090118307237988180392800044647162093079891869514811649268382364573491792907197214827812980129105480128117273983722531207210565701535479656083889853232923663422664742994542948671910148705282242961766934405113453309611660216778951906226829188251193593862620954794765837688237016515761395432419135374935508515181636023148514998683640647761243784598960324157425741773129388817701207033984431929902817778656877096471874603518355090930147740655410201282176668251367731644886275070535519896186229944715885320488812917039761145957690851647141779366185387462145320609988397210623795709225694817289320977617402003028984575316691602496287336368149497027562719511349173133478753335668433802399708426996700043333421925073625523479222617278704387771563065024080682635214823281984546157920101600314301636839569264880039709735938401627168761719371519214150091444295139924840968899622065483281846755178002409977779558380793143233148836074507251685396956902621498940234326786606626889776854111783830688742215144103914654121091607220071362923361650423040258103017240616602443856526445105131968720364433495655374837356747332841227863235870240234445165758868929371646088926923639661171776767817124791078001983866025168950877624709731517018497255093322582049032638671399920111983221622694632094846187699607505917616890329373272957953819532142721180773051371707107481819940494065571949383177267099472523558553210349111638921477386127784414351877104019213828476966291935422242625529553577538897478992217451287280592281751422357975360823902382230976774516273223628851197391264465794684661785525721767539204795339731844885567701623129976169492044789735889461469568719515656285436865453477909988380517314841157786882258790710163235064460973592202191357922023632325624609159174443154634291993364874700440204520729061334329501050701341377620864098363217609591455182467177571017434060731198347245453085263416415364708677195274480847625450993197103516788887541687017642814233192173721804337088241884177560524851824321489437631963140176487769077189556310348778367861176082130351278859493440332674165802666386083470670024653371178419439629898341241427699443180610111582020833342922447841555709238576215272601931479426920330974375679492912627095333864955767481593599380765759981388388129261560583559471733739024290254966132292842915631839129617654306912592550147400088098583537409096189256121551139675158906255354861506752218356892037932958248543025756196608927116135021672912968844172203464270831800633904703504199647836746860586447627386464328105699342496194567111287527840593337851304979527942313920236603997846864406050361175064254990351775802289310355853535193823291170348496585352004330071111934837031223301604222228516935456457651503390015426617635397929429532254220171862925619318110351248902535511202557024755029062744823832682411895097748186688033717452107477678080566395492740481052992234855807540464037506428317000355017995772193523136651382617445673601722123035952938460798613507526942728706582476204465912333288064504006180102803241052161430067399988568347986485315193502999619486523164105954087042044028252663384190364512777429316418572926568466787544781200675527885680207589655202076937623913330187499274431192068053974709867645984221672643529362410215729506934331925882975656350221712762595686078326629177510319305830251780703523417701943853012302525516453654967419404180455652674268071600961999262091287566228455743930603463148911994267255726212439058703072554618860365338863282922427537451224124692219125241280055666226327983506445720589936390418714528879382198301405473304830202193956414982191620361499177521344756575332896651927438545149535049574061011102063380419677563607125685188859740447808355919618201814769061836907794643945295931937840039108989831275487813092665371538925981690254258561230203249132958564660940436105085712538321980030612157676162446679089777925604849702859557152144138926612549852809025944151371943010507097066786967318661924517599511322248714027072880693012226591613523335706072437424672419553669361312748175809560994138564514886627288452276500725484387484211980653715196744787107522147712164460940576022225495612625252137928537008323437324653708283791096764304252211520141318350267140820512381614702090013432022579378247147239764822509866714281478526071449973103533860716852544876141596508605657125776532400602128248607848443315753006466004347853586011110410057681244003216539223142022029731454019188504766642303766540731493233367338386317472296730494348365857672751703643836484775356513008766127942251932848847031747110620540326074489116811822077798978875605667031891132693613745520293692183439580749505949533678440930550297792881708293980114292808904061113785188938753383895561071940077298199091163560730639607423346510259955029392987799055647115722027400303396296380267739030697401277472665379632697171042256494908168360594787955942173618205793705923629738421387912936948709222769649134613223069940287480054037977039532613950819264331307281250623295932317074052322293119427272076474081898746387381380479911982226268724107677287324865177476471153806867936269924399616958370544034567074768875228668038173174982963704409187403149989374434242916224838053775504530772360930067850613992725908784889707520926682302393093018186959269772438530142785454290998868644911346226788667237409311932681828604433888301849766956274021993842293466246928377929500521422081110541326119170856385459556982247863369928352352547131049105087783980081598103244904338856953417962222695776011686866454583025780120453943599052638225717036792808088377609794574898364112359489887085493094878997415532427860764235570234488761096673981711294192029657426155646009732023314556593045778177471205594089473218389351785744304676263787962695691160459163749146967394775351160244629184919398259665351771719269498102977153751848425053556514051465359359759567933212006867746031273236012309440803641871896030437138592296634886765451196358689912493836624877690743646300785831090740151709535968171222282968993238463532929195519884879737083560034171314144344216236327894394361700458540726062909837775627633836598864470947498269689505601737676013617532416729832793183511093319857268759894204257720272488025656819752176739402144894729719292982215618210342502725882047111920067774320663380419287081172983179790526373443337857357875078759041315298249263432386009140168889441914963049734076450910351385359946307246876287368785541455351225779685394192864725088570037461186141614971047542900021932121438406550862607622947694231243824517882374470756798931095851706297191847632841117222256244533891237778019574626508310640159723822611769438040053939336643416199719481286783393357715070395668664113085269328129931817306943624352325503884645525099724624072682885156909665334675501959079399311667772156014315871683812933664859364944309508420174498181843694155641747958803274080922062922427194892900489696321152903259946435641253538464749099771805628583464136896863712062857662091466821012053471301387121492197188716057762481278642782523933705302399031386939108497692334502889445547715151099043395390344074022795950298722070395866896802286271322143354286158580287386067675285301841428200434640983841133903048106090723513034226101405140284695915517373878313892955461637932018132330740687150767614618149554954495118707010527831513157773493132825033337933995485396275691832521341230693824612071110659431470192373054047622994662886224028692558189311885436026699725140057586673288228970574661796229619939537092363299419882186398791618488869210232668175754202325871928169696463237674531920791255007277212219703232954160375388592407528399438132541034464066682357519910892697146562358090520126627841609020056339301149665306620399482812949305265743701313746928707236510191475943000195885461465361220492487504050176702205723568929771456115820326497363880898869066158617358465080516268732040977907352345436416004850870210307442108680773542483080314447118745093032140777194685631284058415506818116824518890261260671357674285685556091194052872708647039538830940341141979326242218047556869658577181047631327062703992315858415412527465753862039781240098056025747301520656816897504280134231674273716799445792273433339420326513188271463165775933683903511511958977648563881253525048915651683646081120205683284717312567406176736185190447643014899889582905340549688330277490343484640896913546292372968516013787569666177272390341311904927954401593238881458382761728668651468303339520510189116585201235500426070740602310473570625034779748125760890493972474281034611858754023586862609999269328886045374512960219661725461568123811618004843569473240360907035272903769745333418723759807758834706845472081540382113665929888855128950634962750432891754684728191545121325556178275832738371039619331489409858570286958729529326507092894533712180090705903008193886486595998076078758636232565458482413684214091750944671145176810356297134173335442659072371737998116253595109066071343481019012276897360399067527361498158563120585964736414404919160675348637922084968390795071675284286114756146556975189591374338116160587696689444787881044252093981115429582240654894358205463517329791439551163571797580732438211666981876849899383921153440795658114094056370566514877512273930436139367320018803451615463776829040948524093004919820762853117661972377624436406683066950237178779573913495214872275677671836058410909578879751839612839120243686912311140130547261089576651592614936733678228725447804998293992271814628576304323139215876440366617051061053925412666138511448072095867838409765008552404903555948335504488923518713680792410742951102229873540057567871212185327463231983670990549999055128979475935289465420167229403963400700712800459885678671040100638593703430371194657908582202772790535789979234363102313128395351256236662354296811143444964542990886742051953985351174504089556745491800112385481612645476525805323367897679090293879682819192404840777341940387533654337510352141752596540469997412477022101340725940796307351223464633328800568858173372534841180948837429875971034298708375427245210387254509968323463228578301427973297251573212381875363886852369657016076146229661523768314619576630639433393030410547902890102889031948169431198612728064712224996790366057257056379462009601182671772542867759209004043837117435584249050079468500170418162230142302354747489503046730951819321653641436127848471795164620506430996062423365695686043369828380947694371504841341405139654307381753342834969763310556598982048595442414580845208483074976769165854284043892086723953608743825922410047740545387354716117948604645955971052174756268697055113677559542551340690596516647647791411658851370766170918388751831895764251814549814310895647279358874604308718060994068909689925088438166032130466137132388892449857870852699984883946927300453074656804124642112082283985656673236448822653780294430395115693814594703646006396050192277519584233520252497937320277236434549171945131332002041947329764455579590840193511527383078937011807231898044377047589147048214510789052333521212898057502834941743405368283649844197849087499425572011746450426589805580973697696714294124735834275354716629409355598981132211274887248106798611185567887658057271810856149369788498900993551075161238102890880506299609773790856431247957990038001990701279682837299153461208292709225643963142280912174600129093333778568774134547725933389722067984476898241063947523621218245326968102837692728836600954931372948542742452719944206134581803313850711450845990893565060068206564648309892697821488773555119543886238592346582047097728548565056334376952481058129580243475562395126457314272075622249603327946906987516285818786238775410193998526952169411557590858628589591360203595082088443134843758476325772756852152332915462047807297953543247075815485622826059283003732560349018997294270734704534515610813697434432292867414968124981727475828275927382132560128970223415365432358469081100964961089636501968155169925249157325348963196012995217920516702028313137341709964789813064089040068240375909068531365281193630978017128720580987088019833600907243463484349552359886838436305772706143938852694884926078025270430501439480600186493159022517321827253722490075898122078847469414780758263118928190390294799872750263902363918967982749717094326734122907914114971742060225815556771338487624285295603625071506444902317059769773246920870470689062481655278842353006770324419421278604116180788912403548512924913876679895843447870234618765437991984720887222096868716791830368272358676515093353200603944131580560624029269943834940703586081426397924024295077132798591876950418548170882863342247637189400156116351263437421770219406164912613090573667694035606504919978998652739573713023812816148607335473503057842839224737582168009843112912388909241270842206625250258242485682496795222069161131578381021416954740252200566310648377971842741185637642357854192276485051037124658833461494122971268591960854729954174879970307295532269488730878812159561757939506480995241372271892861162689236982019631880823287716217530453870330559171800649149810848023096670505079397770737663021605698644961771948629277550661215831606798395597840994649073822815797960150537834713820669363662591191358730130475505992950183063614011812676228770824700255627767919829401115971244433659077173319642958913414162825265213749959328753236675331724748533485973467097923368220425648888533611278417402455747157250281476782904716484424079822054849072253757088593240956509774367486577420771427314493444830408468137172954012139319711929370019740569539729278110158271962952293249265264174372238899215420350534464867585301788311107151754203441607429722254510566332120463357704825916739404130760040554976125437857319762388327090729027136765339659277602366266120288442131889231286100594038027757293049619361776495088940083192039591174003442702502430869055533946915411494558597575109310213910633335202100767458969953001091258884519750253413704832773929106939776284532275689061391897770322749174014443132464841867163559952239160990647273345707942289107845710528602446744496317469033201246129588450549480004325137760580148128375933803371784890743332942329982434441957197169038251287323983426007374133726548565480322186229667814083357073353460591884797124338699181257983606049940690032606303836177172936569593333762433084178139042859249693670444171568361455333918094951801914098904560944286067314273442780725991761769448198812707393471577422406342839522294881775875981006655625480345576023103818358235151987199083083941590930887838496380959801407501002608229694011397097187942589528774757775866391514656938550943107200615160629547694014374145005153215953089874660318634427546107639622074293507390899136653887343589574997688344668882055369815093980013477422780769255189960057383901219193501478824585571895302393046039089269731055472960739756297800056529334794918846673628843052797699648235511331912435973924173851972603165968975525007423936790191634922914472889645486552173039783336814990758706525587016504223467737139981297703763872691162170675290169947372246725661060707871788455847743827600358332881390980734114302334495855132507713120954171893482497178136199867401483126809547728797795538928244460772138408615946491625335453917452084809641102822563349703273005616655018631981245983788985661963434977374491380415655584367659178020422651231756573875841578222870054299911765710461989614162906341582319087528456586192941983845463215196462066465881196429873974172954041555313778592376567065002098912275258351365185260788806288584046035461195230385608393542975916475031731825820909792842410350918827154914452044793838963628435202360469456479067153827785528640272616205400365418297286470782016516816263139855009780868929029727900263280377054388374722372111776212781192215928920870744186156700635842748184233610552473843663627887138402519469340314975777042304945604839015516958533846555891398725466527158388616480048304191411053831681054333514884856060222403839997335571749391195911031659518134697809584394816528664912565080625091778712746324212200590822900246078333631591833149322382924815063230916011264308271428464797002052617907285742353996887299708352450524243743049461542872797807446537194746842113478132375657804896308292790777814762949343505393748787997393815037525523678829238420961315417299531484327241039123747359354552714122849286606289959246912441831014583635289449423462481412779179183434682853831105024332748353623947363331902002350110295639659140357814354444829661457760262831347289667319075912425465051787817343483359803187295544309530655171294082861771506082571550337325035162140494449650995214706462608624908913885403415558969568680051078655015209729285332185688937342932662859447217281261977711300750294336763069188967110734120783049052601964743947665833147638397868369235006417933090945990389424307254409889854759962469245722584601050216126284170637369883973004975300149193321220657430630647914843588790806643235916477834695662452685692998920005853962492739161936228363705680682051820627751849504882920540653103205887553193676049091953572172492588104307131400356839122606871417933751802163148475018190579489193053403420965361662553473585414017049504960156287782597576226605322685694513773047251327480352663280379117149155539192743742549175173264328305930343618205846872244257950517763351235116820383607074900038091195092252400913262031208988752693190204817136795254901350094174146264588082130932108023612294699282665507381290084947218280265074940757956887140219190280825584466221719838614781606156535890866578670046676632802426273416545209351191821504558370291031747655377235031153842017029498965858219430937228806347336114129469404385740443792621469630250406529890968054506100140261532152148418766498853603954905929006033123374471411273006438480769926279699632306515214571723842713675223236646718450552141292564877489772304042126526912592094113835448606343935341264522570053889899531024939565791454304101713477865638694775759263756611384009109675910796102603860830158119357280881154234238295080837011496579628843191531772712045503842424279028534251104023665368660629596140761865477123873300900791606522298566777455201975953439531151284077174121388192929685925907977259811655852861723706245821077690692611686909937023248118495416817978094469022153314399764772951805147476326994822217177792337355392305243033510921859667379287403531634076755779628837156108905484680712333510746790689684838274115770307778751447674320642555362994719751798510329789724552502595703004848421958034833729978239013801982182403482742574863354190420320553858267931972304076248831744702496733205083921493689336887033620732708423741061078534660924213428100921986930888083639669682714816272720616258265535400471834043223948044334340576556435452035075355694448685008746604998117986122917656306357582041459111310430721661108821170438611011379691589300447231347851144081953087572450047540918179644399183730708554906337551099766609469435069779006401418266045368285713105101344373136633938614601574453795731636666482274893661986532848517188895452833664316070472178742008833104407371138693794873044396636795891766329887637273319183586037771606828415528202695955494776574560093586808125719183502703021874717855432908119378205023550504276891899779661837691722791867715786415228621207460766743123609291340654362540700313387041678491654935504674994526562653827382558492887343315040169763514455237941511507109973097850538299831802487598694898719272974246596574057499146914901945951707263593027792183127587137340116781668154993155957443957447327224459436608018313849291181292418801362113124373689411541587576460296784707084118379458137673696795086037775761896954459708070367474719550814054657482998002686432401641944596099454818535025158393217156313507981715552570200871962929592875329118996771640474878855143122401331531177449832932367329650776250281286615918100772263250104031539920266247019127777937584003746260890191227251970524805436524985768881365139189382435469157622901855965940196737965369474918718761445150133281457736771187026267364129205284528215976079148756917206614453372655410531478023666327893362751555373496972443583728416179738302543852253988689282214644957590058828649832420614430786919309584676143634814533248911997655539257189487307948388691637464169097123142662502974851458135909654179256927859815195901772091045683686110466310203039286381819186243551776404447189482998689882876301317757871101046281739573881096380215972590207220392116259263016359687513680628543335537695949939412732813765024254292989220759925417280900657781599575264662917967131627673646700619416379793270352796120955864747498048529148390075246703727931165281254381421916470293210196564225606580916853858757883651331987057609652746967462578051821717321007403821699625017340927668476532777841724418967142941762311508480784817446969672683418085115785742550029724728812342432953324324837201332032458522594470746183663716392496598558918330684688736439478296687068263860559089002267150117350238539459752413682546809962879563148765485874631746222036208841693310228277542341205464655965597971588849681274347269128952343528709548087208567464277282981486677475936691062545960367811145208342963465182372320360099206207995002122660263241139166050715449200826268844825104872368077855878513192093141565815417641370822183074662015584523321975201094844125220747378944462159536673462418062526707389675945717383662970229131473005080782788655716563458169421051847172775898312742242551995005506464113841018816605088601089835337326363008110738922544761118934050417768794277773801737556949354699305395742474165166200890572245504117771055662351503472771177765942713394938085365803788381993999039660366720837744997957973605651009723882758931669699303947392417543713522270941709937024401749414315780104671159140859365632231945875705951547481818525319039213100186843947190787248163512874471842334146555940625730048814561772074779765863730359473094311180122527505426707615311331482602208565749065220858329651972160954590723891546462830871057518949393425065712104645096150355601592433275757062601627736434401247808189928372304950907301217610955071844946264783892568465498503832107402173636173029907794291479415988168279339542861984835949196565388123696284705400012400476012561931330264168735523910486629218425461390765906037911906311135843214979633491082751555189561893569080862463374400507867645449839016818539000970440578794449920629856542798968247739093141827224540475925384576436723665123487459492673230298181154213741998723161096333601780303307996407587210344740720827440421506643509028124625939203451556423353298142978496616433168657810895883707543495643243958274230302393273196505685058531892736288918627910617207014467894111501977556749157429988893478423626210214109999893492308550153216614593271687268451830966196011091994793957354094543614821079441206715691578570001348446373722061537228955523263771986507325696070440680914082738424223299513550582365860999282189876777237254606044789802940554037754927111455029892872823199003233697508748343389599661938157061052953369949065073219683328628982327650747484310975479738670305241751683958945327991427291609522089923535073485596577910707293766067497274719019904870541581144625133540420871933674711299274940638646078238504546132443705924518439388112066006653329889682772254017697082822717688126211285165549365948884224548757143738642557406579928776774408012871376264592786386947323506364447823776530540868027205851517093201755963443189482407205657023594188921468069649638233170337548995976924210883835550128210319187669930698785087661634290451218060920233497930132696513769809404588960709945357831983867971524772223126607035784967581817612073833743732769867218108226920716201764109240246979328217582993086382767619450834447643834781117447499202831465101779075107708466009002209774530755988510973716778602018558639321766295894216760875399136490086110748530445169541837644794920845981505257114493899706260478069493929892517453764842132456637832996152853201340234093919986649305672096773239874238536715792870767979112007775696018994160278403890712953019345411635267173054497905587909524633825819516937812267950722036605016780192396323943460972226216415942023546403204646352815607995811939349903362326984961297358488029880593208155466520305267996800773895655469062433313930682013286611162118069240983751150052882178561748014978023610307645800459040876501593342227064182027455358420913825107715487173415163813012336075611172259181626877579753495576319847856010221275269244187899550635168520579662927550640995548691976590991831724260009764903911563000218109437933363292152900737161670520945204021622281532545037378925126622276145400712515497547099025889336899855028537865336281633512975626851768919329667399048251745163715097343492587677699959319342141627400171708111008900840093142865564265314060575320870133566907961982386770587986928644405590892241835828664524569451217196148937517849251981687267686082011982782911196840754120729056546029152353680286886837158542045696953881209776418032064838862749008482448154777024140822541294053616829046115867356608575988993789523249361353424031173648133039038235743896927123914352496134907823744286126174505922965179405984990153406697980752101795006819897919114651446756347203029318107394233969059425499817602976161869955880656896900259002578121126189146699795749563361166465312854779354222607673147688487215784094558870035179866652836971868107086523609545183588450028138745120193337067631513456782068317699667919158012585373962964400728751101495361901113450630112839337595099090308922391659003120171534297277714298402516878270432470479551322875445776700822412773041731308036098857753422986003658101003520954644854768058234954118766450652566442846049131458718132805480033705867093929293742166389493266491826415105492660284108292877931258335297919099602232549551109661767822470079082864461698014427098629271320701004843361839272881639937308877263070081859690597857429184663733224214349371320514346267469014720573527955723016805893912101597901565444670016127047933885514487594159948464063476718418144913329402448044018470351637239354664004693204721679926308189002130949603002160083775379685016832194111286654504184684035248420710486487977837952401111031667691970198483545322424037881263610060207132822683614438954263337689525996920630834524967615118042528871760388075952487434198404385441247620182242712754893061831331725946826467182185582207633816331535711624685015497963124009777089503687705690786466663409241640438344749357873490487951689450896517869475922472391616021876760993307134041410856707025489379883604452637436426854522882035458736056640909883628002473897639264842432569402486933022320379600208411037635655648207015107916531651568347182780979312942110525388995366841987879204415853124093780797855306845969601478710554278195535869356245341042112497073014043187741666053856541080297817010965888815440485391730767318421052786668081712652132719768094167034747876250259274952523819756222659558593916482092942607262229247337056167899521660861179384250287570340774468523482022172742982186232410331364147765680829354283765520940738508100727239923018095605711079176966152725062531660170873369953164568916734870575763550348159076106841038662352676078317642377569955119913569566173250590032418811547832498026919570306414996531944976839037622050369323753507832923456842954428736200904238043188686365172963679977750137257444761436967086884101831692704818479052112084355563741282181028000118498458993346501850378412295651367011805670941963421410557514191075388038497995166590644091968318345044710241210745979834640396408586997258405562177173594255763366872141515501460830347703497774689960058229553800835668463818842850824632368405155310937671243232570696357935897859204216986273713003002652623027592363234457856948193342667063301442623580924255562998411112694107323324391419714238996485765652429160542372628596157162085588092596619019465608461471397179790902286783889598666430477474790161585727373221132239809594776262675584300066982651205171657271059685914678124404347358843744617412374867789809264100658596150637471005033612276012572225900765114281287941141956409091781692842153906252955792883377888801364289530202608330103093072692387353891966530393127685758947779342109237544562411518852575175038245449234211328694584072271961983980504945183099342829362426764266522492542487238970995306826377599684941050582124796576182432690680255622509715714022076061260257265749765577235069669648039777011098779750036108020046803696193399732983333071210475169312214114809595005280395180008925608534420079364113263759063480658777856623082576863224725285975757416748411927726387530175330407495720823753695754868492484262898639602236576976661837704733068266639313724641536041036952285772781079973896457509041205848007015511954881097955331176612825619801581878165190838846484833499281840623179053063533397753281744374975277649272631125888859477396093156315951460967750803948579179838986166011377519831754940342111721236285648077362639151131828994082032227465429393139754626576011037885180315309985664812890921188225459476781203567270017992364568785736017407996152686283648317959656791815954807013611464695606826973993355309828901014236264792958459110969642528350211307642890956559965254766748821883810888417503273193475606801315200478365279752501367201389781900048003986067862881778564514245907707368800554714221968873058315058622543838149265773781537999038529193963797460165981133113221957015696427394287135493344743867009899640551313997427421793293631404930169206195833887130855636746391851072081829252565507039135826503865569999205043093931427893657390955574023306614092061242203640618923599292308177584314854658024913752538817615070332929398565088502445825695565219823757092962748593788106210867894695563646404775224655502452756076092292788120879364035911059086980644273499058435856302753392546155802747960141625832647418471149107889363451775793006872997554798115502619540024344580659880306200134653891588298283772628551628469130200613180257982612455821258369526231702378685814483344181437403379735569731959465809291097431493196032282358194196453798345267260912391675363821299527126265033100911070934507334964199251720913869945094815072608118277386722432630092287968549840268199630705511276127790947237671381010803180755839923331159079826173445702513949836808770731876291703151238932153995766476426892372700754150092260298279562248957846579029840346637910460274882561552432617494351692461963139358650817858167245042950573780021401595411598566913858842902144855090092834500501164529335686856544876118521636632183849380349943617953586976036392414810134900264148581115681838443471056296930850770112950502261091814094033907109348309278734777919082154336642886275509982002787077353494914310859916869928803608522560384709334557926962999855861314348944593115549208697279860150863227952050079665659029248804559728160238787959148120638491830972777829950359025560519024140174059890862989828101278846751396609130518633218116149941449114138509906931720556727367276155271876616808555554809207433885890199186250950834077593621083020983484156970486422234849883991512716838472368281090894650847782686090693141839218234270046830857955243464566949572675116014479363926269416876876675936932240781669692900499310585698436254710686478669748528251403038345885857484210398704517208196755844709183063854038475970403103889412022558717205162983935483051232527114293737856913045582299651919808689619543476071298400526779377793147224019886012017719403296285685049986961296825594646842203402529880423188537074004595113773658681347025370690099934605489128478545978662194539026795287632701373185767750304019152372075569808513636283736781648039612087352216721418094840943684962095063980806858259400209411385291920988878852518032590127657710720486779314587053701915837361506989390892814966280520810467077702192889597125589303956475954308862784746715576237843509941725611897888911982067831356704492614948662878576842903172077418558107532577464151881335388704075477260575663039779786271238724476531507412430207996132294330700978203081180543696780701375190086883095626650917081703640682790050241099363681821398430444765178507556816200375265514551372869667489890336460581775418940067449046864352226553835255527360486460626803142322813896691009895898486733834167958405629672268634234378291568548301591166156591372039251976012919520211416718035309237027647386219487603476199479430326043448655794638072177944133838354253613162123790071745481045138387664757285034814132764120973771356832421104787306165605645729173263201109836586088811930268917197828975990626986146323507126405069898376067292218433766824022501855679799057070456874035978111566167684700095699663605735069445710245370482832342189497778868224170707532355761349710266813358665406258243723202014532755143381900354017707886877170912671964281681478396844829166957972532502657370640962653615845263012499711261065501181367977579111176168001569629058426059198900590214321722647239758917466868402733840107863592792259308801529967066125873492304825102256657825018967434798013152263716656691328624156615287784928081932516835453946198803936696812153523406760718278262553868237239392905677528146096534645793995624559309211667377917286829744947168759867579820427426369602678930089448643958408928790293532711454320686688538393015352884281639252126617328095058562418929506588757713217319972038226484241532719899234628080429901315285532780570234879246799179935035828899858527179750142893669887240939123667527765032613700773289050576889987525241729572382706862845677250392773362305477597761046753828209694910416284187262337718906397006387613373527829303362990762377335621267847220073558640406992313348916632385926198103734490137248836686025830551150838742111181911781250874018313189410004660378573576677728084789967366999765653346558878447640315030712972490013454243553913086455026995907334366719009664218024843159627360819943531430004215231752143690902245355878408427217518646048928456744223078579149799942976132884307953739218960781320960086703298853119481241339174162344186039529120470941892661691410420720242586476071564516911514747891918749783694568114525835079123687032062074513220694025751592736377093636652736825731564154888319615104570873724068762527716467605474321415784357475225292490597317177924890761227734081116751369471172764991149242246179410089460248231654989555619637993346081839271005612549976898995556887577503206944167045362771064017282933572640790121386056693820592137218416805338628578756843412108173407759256868484179613101038028046177313515741237506221027832713987337845415691938419725453478849619198987884543364940227307307857775355662581611051686504143603411772125198786562698439607964115579546660852985539203197763208285156007368841231693463109042980588348058997195639456108625494927642991189833704079429640920497184985485231291719574154986291968073355511984099764299430444449423703628853529399088183893766923293583989200783027673203890587235687578312382898009254813210726034556049410471037912344522067850374210337667068458408292255585440927853200695498492515950410671472079465860848904576268130336027564289816876684055691020852847319688526785328639409644450786114793247961224760652537949979016830539121293325817646928527805627571009196068401522190395075160929483468185216100989880704102468898868491142398170295518344664331185792390165214042576331443935971892666750899525724111986556730501880021164985404767617918797120267278437674888961116874754443769027552434191600354686737625991155060729734636389755240844119831302738626522018800238079293566497255760879155404774683065810479541640694845879565920648673451926771862926220488917296246823537011398397708265629562585374677908303713426704929638007071896885430581400066030713577355359967822267772907714305071464573695156465315723346718148686600731534669181207938010645649205672433866619297548423245198740459663274386843605438461387668061015708023661531464013711575883946888054146445718009316357340221891092728946261314296485429067608241509767645757685094103214341307771838748782151692991742117792895905390303303384500640431324605728791087200698866275255535930480363625389949811446341265644817933850826481867376460385233956255918774731686070921587616379181020145334489212944346618148787343903078916685117513165072068488060110497525654675020312491874179248236289623968961083138119181294691780936790845500516045752089396105952012232072577379737762316336466281670299249801273156203616282800683075924872290731938439565576619529955752566446202001845639525193399008334442849813859210986081797453143285969119991535797281456151535493976913606332165414626366622584162802502177303576107231889353303079510916293405346024908235043599640995711402164034169218453253876817070473570484241574953659434593204681556878031032700356305764858874956831376296674613477012235310745632182927646698432948397069777110743153581571808796878750776833391864186105175919221348367058759869646746104468950099586416033100926761267902503743651371071291876766029672486147369928075556899453260143224405635026686488519735552305809849884494286903560681808483795569993337497253455374670934903998206898670170803972887548667976107309365741658323969086446308921903376286613191390726602144505236364959561537989484459679856797459862692729321601202871305179234432158085746545339613137871028563208742836559328399526983325927602046984487759094135608552452708571672823284845820622037522821971499014922324547113363212270812990658558728390776678228652035309618270228089936807525605859057587111406200799331407202374231303633251747853866217127487626754636574684360548356866804080145915246591057253221508001650691030330792037324239975929099826614992612921437155705725198948176414879045650832103887881105528486384985562143460243478048268322137404931230525834216943004974088347590604499498559736590285627366016804914985345294862155105425834389019685945721802215429040443693894002351764027559589415422378254326916618941980802795792838535335752841315289092611004580892481270993002187716588764656922894120039076617911903375172148835414124813505108470300881163204224068937998262162048406386323492292133449810259032459421673706135492101917411387825463871719855495364253205024300479639630236094055844351311677615651057745328937307530156419278739088463065621513881448958140102197867833490712343587452703293961698129015179596770519141834416703393199274416891748907842174609238007386814233092768228084153959888346125575824033198703125711592744581246665717372701361341251180478277338888965840714714935671005315824470055294626132041154381543332336486354646320294779318908509145744659544174737229769698958486676734257616341934054862626433984238059305288650586272576098026911379122162338965676702371185734096960108500229688520417764914727140404721959464597491362941530899828286402577995190302796325317510686468516497310711395112778603172592511379221455659597183258692886399777196583508609463945351965467960914322470500149656924538878007398287056804938350683979791784196204080525715340853241868021961422144724984976908614758446002305263527738906769381987339880661473305398909357995740462138342953030488331087659561277519482629242733252624755648596830483206561731479023147199504578100226939018567435693613195266064657664110424379802676621183997808994106919558802854910000838535218126151647321980518705024193289640115775247148663854509075837530862216437803583014812695543888012655291010422990471630763092015614790286429214511552944822873622719773118463954287434982550899445488762863955232398417687930589288609358789835014050370788178796444538525190676001001579992682389273070187264214816983973901045472989325889932369672907058131663518618804858643958934912325015055122505143289882054932153950849625992824734041532308421917461471765216278356102262866098268161833889569783052921652489184611575867548323482922501135061877816142280456521363198011138066469154822380830990520746851530841880118161608813186721631530730267884103344553681216796337895270736131541327211121745889581117533683704938522371496229031528951315104004691580227299108258414582687183414222507812813011795468607068263540447001493703255571815624233750225093105702230298151538516207244609275313416955005825409320905018025794354266731690889651217277457646236504619410627396121267411051633684795418227573787247514049216811063688620801722245873071836954079019548141390878972234040276870072421169933381105458629494484451380256329858981914991782202674287822714528252490717705776514112244006801136427235956344450889756362109375994866268309551256595257491282663735127219344097540125729565326159754580327924530002366817578838829659342707394504859893846307743344414221274681994425172929407585207315624592376726245111573955813233387157691262714661379940882225181018123932355401975176468310445510594733276033584595425842527963811540025060028549728910714080736916029999097115356720146105772903626740782620577541563258625895972416749423459120476359279673922769778387442180016283736260921022807225866973866190732677278240425557293125881194128617129584158681203450289679408667328340255585610577224132656382628742455029582421424145775120150915988165165686236355001746700841953492136500525950211479836677668443825232103010400856280673135012270481239964408298876395738891875396632744364207146138868527146615233230325786557150567059832891627456902239988009502825230670837702174609170294095131977869853626361055435470422571827859103017919596925717831493511960702953968823430444770840421202138436723670698376759753506501149356967651441539117553748413765056605436117979304450621750380099883335000034153071588707016551445837212819017280993672136658054542096716671158956137396896722488980896733676139123813236917735896515097959086617194800670709692589933198684934262118740650815619324282808284971795815051765407068918971010094572760138185140975558271600486752353076662034832810794523537371423350165034071194767263040578364533322822723971177544235393498869395606278074058810072581870974600346380669267113247977514198267947900003563515474981410828083065788208511156861522316364891826514337481467738216570492465452132208695681293621520453236598887129446072355954797308296989367887043788179881935848061866600697878604475045040303607445051811042431778736590434076935513776731834169299230176841243764081154203500788775391017712820675650422050512008941093400010042129598653432355462033883585384118799188999522707874220532642549135785652538170189450624105357244638857608942378577516109141647358247726687384372526630905698294328868818802795742379653358046940029069334172487779239608032420446429527660059727432477560831512758392254196454477090746706130087018861082425525500388543129234658036715365947181427374689001209952802753763322313100261281976164900973545630445251124532544690228502190367996778668475906464383267874064720211310603803687416806402902127486645525605251471898255156738233106175860794194786816995477351400314004449255880511645893187293487074226407880038748136117830887219293675551848000792944345016647510646564866293079728776249391804084376348879096743987902461255406509516094889922280162229540063877837935498522684385378343569560888568278653987504318726161963664715563595694962829812729475397157573771005152004337785823682108774846751545150962852800552205162069338738912559113288978829754819675664216245464215967041786020170457863600633469895953500088465091067158030021482819866768932340641452386455294284490367911551290644849747968352311355894533122152221912303776666733612143101306397342583216391462749877125491590512967021765262591918738511544427722458092815095978362352765910474220068671755090986800959964434651059106736981088761686888545781142317827031581701986515404075619910769090973156766291382905883565579127759340704937817965268842301583616975632554674483855288752897387932760710548065709552472990886977068280328789964886541183253756695875208870607739019078795092279273047565167352670034440948437838172255588276123034031026122968123283263183705162122266987844915950398954846662593717116643505061998383661916761564646035780520690011205455228632417699669857568350892299748477896295907642251174339880409589882015323812477432132453928834832234575796356850193801787638544984793698388375218460950134886492668045055950258210359359224768897764636574801951864590401874531121469208442687130277275776961646213961710607523956184138133761331539566298354743285881076715780765521707375182721050870177782088461659716767517971490542215082382576479593320801622610919293764278665573002377439452296829314165283290464472209867681134541361248055027357611126272009425630618043554684575571521235170469695381395660922067209016797119088310934539272772698868405318655844956063467473406707283549020871537300991229550684941389378729254792830951262991217448914508963205509587691259765166876545762927810419890040140239951169771448683428410481246771129060998888840914296342369333526302906695860373574322293531658215996705436495774234216159025301170190177856926897502793802766140864667968022952444715461685948451561791341397572016683512673645441039336052677299752681073506244634215028803826303194531539790051654568824488503607834135692362155344046061864926759177294497287229688245748173021142208051680271045265071373894836132601252495869963223656622573961069609576407139873206625467258792885670840613684758332479231094747688657269570042934717328699793996066112297486020012976758194789180673573215680229705380986198332908822053647183333000309276997840518707739443207552207330942655361783499578580641613076980152207915783595403944174171917265329978840560696609590624420690957916262680355242715484664994276247237928444089330076326268210191903465217075803012707003587004734018634473137680539665109622863283151428852641688109202152273349057114726044133473568271304061050361750207806432425516694940456205145719633080678398936211896315244983636594176242219951632842265636724598572336308249368003496560122118690888266338338314263025706177825763141092409492280148222819696654295246452604935299293395496148485437690198472711542724156294204875117749198171036549065959920000448793952276908274865055819237026774890826403453234518793982717340505643317981213230251084342013291801566863372294069368338759246714454199837052630591227899195505535383313984110736733111575232226519065265073046442168098458825998344177344092293968963325457438914095453558070244035073338766332141437756408333768546595364489831600508617305645135233413683482185866584572680613431065551345514623506884497759454621544392896834523219007790340660903237094530460160693258422987865751671667504927635316277719766477109564609466775890810389118744806705039962120785556925260293190224463911339517495892372909275945052603333995342238446751888805039030882349143113938208334211818105780757871036211426483700962425355604243335266085644055255031898940075814270531871943008184799173285382523481716979143724913038451162790043525847589330486176391860553078775460503995159476204825086515998241402784232329112312987589116674585555307493264008298794494511934507271843914494278896781898448243229197377787038032164827904889672979365182925084585724324637347921299380532086775770748147921919232027556566165057311961195973512232411514509736729128458525403238515043246789178732012634306244570826108621921922960948576420325974619739448594428072009144694061780204480903041049199273380122854807861607947336513012440844601030020237412983105768837438689936069122047247903308787824213076598001101846368267632238553084386490317207774140577276219184193382820508897332124555500349330707032204549659773459864748881929594130662708060120302918334828695131384087277622893384373011737189645577794825845553268195004003334342535201371043503995024086755115989919940528966973014721064344367307507693052827787443477661606980914256677372885699963156168690462617314191138007932338540442706482986162870686646789375571695763634408159527491312823831817647937662875494782512078747497980571583431413935586616011695767146886045726546687464117720213029159375140628959405254879662602842302227068895768532254755853530503103168276361975942043915983838437245598635754922926147688190922556352283052711771977988822656009982271721044062407047303808875818405661452012852491294558421414168179056232257413099432912634594091835306180379841779611254594209766089756461504766977007050204751322226868114164997267971178820254308349914276990202634406249792890630108905394816010113922622440610933740667132870576166007804118884827429827321705116333237533637620397424035482473695308198699276014320871410756234739491140150456822540077146215840117482679727044834294365354431643466854907036903627468792795569881164798414648098546338145359043816488669355248336453517015554355950048991263130134827130700824605201227580099449530869071800062460188906431298490240021000829575360158053947037227802423658257402227695717808997225352286940712755827937220846606310586960079609086651759768225455310788750886214471636879441256498917242659196458078019528030384468712325631693953888471815737381970237775665563001815699678840669261645559313093078903993637862653906574220574247082559927622641003317584377891962803691341201858651641137317613370583028195259443836098267664879637399811656300730810987997584586170757139028028814098375485419760626674491204001971181768411980368996153505859793637416366950456518061130158930635674867580102828671375815188328083941337403989914280475433820780439073464840861879866709711512596058345581908357083416222315439629374009636298693617719213267292746697310190224451369290448086500277501438008845902629162484545805861695768862259842423140983869644112061941897903475681896108491698042295449694766642913751248573342558394947836669206037894859673959173323693843725689803700234071196552339663758352757257866383345330019594528106010751690416242882227080730777500696666062187153642072140794926173571659920765057859919548929903275216250453148079044365375241357109989979279163721907453681097791281289916992508858518630941610692385087165348227508395000822186330542579171514356124857214829777400340314494996358317386706812570607365421978998043211644743286125508740969702040264935597288213989359440840227101616461572077519062839448101804496223803808450243107786900622564548688389396089547996189054757148202523921061793576536652704966031687617060688687610053210284427235830248537812264031667493071377664435246015356091812009892745264078413781752348770961418700108058263717232324822576187901901278966793217144708656016914570372373510526787740959687297820534035833675414082764145554558146393966708956866180560067027639094785609175824066507378369417077600513980549652931728352265148617148635098569595183732807936878886111207489799527491210840237809403965410517679004394481546061123340261209543890420055259676937831504577678374342308944679034113289276326065078878978316686095238112638080164940856432385941803440242277500087759267884182886120329022175361766332643610795684022238540395226444822315526575590870484124017263955647265771585711252157049904515419470524413467774486811679111042953845156032253787688097157800110112913173314561558853405859069945628842224748240415142114217098740786067166509210115963945053584544974803100915925885661470798286176929592823595722932896487810291675437409655785916480638218175745363868453849344666532974494109084006054708268403953365269410219979130234070535759656179526603417286674290168228997350560221766795831000638653443002673732223551146959439823022469859475069579158342205602786485684904242710815567611425394006516775189233728629899163124278673580365124179073401334565801858407827832296444270019301264655472957519555007043206308414420223519278542885018484918341676592920929410604805834501586755705578291318931116892671349583312137810108466350596455119590143209832076715899612440466999067379612426464817795732639785898651074421869192864768500692619042861421840894224020890522751375075342971896644182158136437688905993334822716553376949018940551412592482385205229857174659181698124203571326507191013199364389087972981322277029438630744038984136084611680901476121813318509167197704529900793979253457719338441483118159162713352853642221970029322097630856704925338763838228160159145390465890948893245789958558250978565870528251388330230335424054187588674262604581624807821891434531788818967573092330640661982850916143136477388133572132888328350441736881842166999576432405746616870229217931247022030764437001835287857535691388782439818585683776583049147919271141747722703606528316460890713206933606879921605512537966727519347120895692810773035053655454563785146670924134750346007481915108737673932305575051611119767800595912468114497850285350090573305471730953131406994338711201397123180012800638057603092787767877839507893940707939727105465425407838825498788873803841423923790281670626768502563587838268565930604023913013830037379020959691447466660013377989513216293117956722194002971060065506581559771151900927860717328568989082869319646965561163934135056558636970915105739700444040801408322201058501074526268346681105263779723675489788123558768733578888918930617707030071769100993283357902666871701643582412028024482834644454047830243445867322699239304232319561082457686571733917797780624356395571762365363718878708739147824573436115928577685076534182125570023325483996577507357365044250981950859225966286927754018605049906465191310983588995394512893866611412790873321542297921547579525193716754203276584822586778949545833502301560112163759527374688300198286030980925390136101888171371117315957128350134648974672571617841465838974260241440358630677028597715153753512790183367877928901379536067505672521289237660106869095371251231781943027216076196064506797203922208704296986050663017044223504805495592628929856035683573657402867663025180284203074145914954336961383684794548522360140667792644906878217268942028043905443795990820088416216769554665111420882127857490412550618037158572521322171752219820898280843273972466719590486526084308091682198220121257091028622178499346765711826148067509486195241469818162703079176002628801355557104474072469315992512695834294211456340365015007348915455285430282421711197966622654328161059186263096227863845639655176340255468724424803704124109552813796498352724789899341654090344927265403052603059717234971339014355304062386328110456711980450948962513323835454907492476557755040269362102924348799555039317379031443180344773517851866088967015416335927129472151640319098709312842145983710888033224729516865842118662191266959712964800373226339062432451000608206124281648559575166316427475567147414297831259489713277128269374275543532050065700205424520371546093087848061717000096516615044514445247508372188682406417979212585701711340535714267734550830554654076390212576521093120386573080965102823715924332809054251415245713040899366266197884653494757831950102493925368234790144977782394121008647265062080303705939534732318894636841158006004121779446784205289239427920351666337028994422353870625366037147207910826755338340957802896562913721616670752413040070609428123651433464832560921881681485259373629629877322681695915088711554646685481674201788177160357487814346155216260268927181355427617218155625588740642818297998305045302204863757202017210691935910205712206850163899190970410158335700709434841998296060688047182430496574768291905098827384723228482125330450813699299896441781677026536012484887327066855113043088756666451440350954721309076002283879159187379507898976715268946019068206267767246313043337011053114273620120729085994217753089516736352403111224111437324315775117329579899938210802131841508786148461831971655200432391493730130309391415814492751725913343003855426878621482520382511680087594160709343257329006396851657758367987783809151911389154502946889988676726664038829381649139608608042228208747661602598756876289171381873224729133028451779284870899139731174227748661291984667528753030469128494005897181326719612577673611144857138274256219402858441956154057885599478554694229792870674065723962882554872044025305874722816878968448036863522623884619376325105666079481936292008925849319472905060003558672058289068819040144350001014227182635056804875849831723101195079682431240230279950244808219263014471124583047721270848375733607330345053158746403351125004866984985402911180876198093153355021555158488120050685245016554882880306020480506343178804061542168817310592220747442038088578131567528993302905272111732225424949868599973108761486939661508226050661380679097504340843040426209373288561527214316472665346019793444446991782178516357123620441243919292468607226462302983168980592252295792771231301166710034147980314269217769534289276237416576975234678050455735007861789478473731711355814122649683849738284716051988938340936680734132835608286438661235645132000784478985212154479671153807295861383157210447109930414512710482567620183642955187264713972476196360525363287320861301529080326736088348422064466183322900418263627786165091760645065674152962920538565961306516976567131774715513843818286460805603757451812333225046711609816964127467860573073559184305066395957497202240272420717059934717373702143484016589874028777132164053141875817090570785589836562074593910975728850509007150158585638592911729506067740689148448861078053340650246020447582861554579871694641015206340730855039530294237556729520568278239534081008758386672186048051058207333032762393370974402569134201837432050459226107830482018387813703953018624647625222001421794954539983659670378350946797925337140062368942587644683765609748310587147595560051139545875851090173418939082621216534525521978514500577267017038228930182744497171938822540444460246575365268112149918406689008503757845300760873606322628003314570002614022743126398999745377314305643018687717289278660772744599920505723334596355581512742838846758888538704466798584893079233050086539030014332543697121205390776056088907875164313700777654539738979271880013711747547462759527867630307552455837992665567322083334726223741805613727791541288484994986983724081552410047064880247187613355678310621429350480014484477605600119460887656877425505998716865857196228784753914682435857752685567832434803480691285540999100974335714228630447721605655926655019268921668493830593396576806782585962489542715858126666531859504057345109981558732640297311824610330858627890764735890351978606634827958932199398128295724158435131146307419349749640177187825702784011108715392430818557867126665476760374056270459752360163151030354045592598018123294516355636264429176314559192071484808517473159680704273366952431449824754248716502046388914114381920882518686558461701620124508118248849842503795256317375032148773102262273274508778306325642984033937871496220034305669891968572010171673547236099755247259018737446270228700869530646596846895869844223815270025449959436358800846064787337907126745443428745138828770200025614106119358669614556036971417550156845260100380346228672034598536351657992727956651610347181568145721427682350273218108543363451167756969732695154702943627647051427273231449103190714273612852942305225332201662636253663495707722982881233204647627486322725019254680367340285142902661841958875494980970787599616021616215687794635816070331506829269887053689701571085716616838255306129120432445744191579733487250440342320214228706731767827779531127706913783738074366083644255748525896328313920479287710142283079591973064280090263626570646686002413099671459361285469824622058995597042545337289157895478467992010343741060566515201378379954264612587085635980016865588519798293872293621908114062557705699450049217181889654807613898954480364131680525632388878987466220605936314358927290819996138200796094953389246486315191426420026104465988639523253714069515241709990431411575183309479003167019673236052623176678989334505712182249357490940160764745941236719300706102626374649152533426464804239297160813564697087275746879194620472212039342953822005704031550286197692028397400352574118538849410015572234933990497521518249279910002021050991916582521319262907010618836581187872321096110758873447988930340928756648333920094558435562106888761954067895992077505481939643292714466152365115481532838767845284293939864154412581572307683000278895289493154632220290437473171458910595402939881152481430519323537350989463156588686032460724874893580936319145106548703787345836021510773277071896212286483551347342975573774838888749200468119508547139357009159914082652376065710895206382004723772348754420130392573540353526002887843320912019268933491536333173254335345453749683032333967706755319401625800781936714156675048062724898823229824073978982372074839813416394821340122763261914020630404399012144823988658181538166732408963414765205603546832437124684374555718954032044793455210086589171354176583144147752624103646743485456965394921408509165861965088836482441418202302095271295458431756597583530879867606242601363330715125995367726316887007263780949402356701018834690480465621665280511661136616216517035020107958999022406537956771024243808344784480712081570580646006179695727533112731790758523804026924557578401981205535004354541628281371722878630937959415843513241493342890457731695925235236719762075972012139841829624612579372212942563397503162078394700345560187334860863415037446868359881664200911140815633854951071793077357591223200196092039828608140078022321035192018356663960115880947185301910511153489608532183107080741323581808869158763577129968269895126606197518498333670465217249498272407980755709486568149803108196712107692351013233823104394214362531263338562556190601074142234299940499975716248342183196629840854043273504459251878103977082262138224128325763548822335989882349323631055251652475018145285041089502330183083003553067104672095786149905355786340579452012051707463345991912020569133862067856250711231054329604987301728870842582094934527135092842097900811456273528951362635660082583147197366689172525981813565515025096866349974174617184442847860402780106209288790612054856648371853053126409134117010664069740000199321218560355544931156330120822427899423263980023849312944579837198250125013152294300672274859222019434139149687304875915455443974477309270877725571313605780877150816669432806056848056621905977555291227741973400857951682829803558590291659226518123774673194032026263082528197793037803451560353825743727141722951622402288180616394459479543937292993516486405693531012596116086185316956889948326307829055535742109621813678813898643803813985065135652475089412964980483406020568741174302389691459955852661390091384142999061750981456295218638427914417332983244481509249614339086543453181566689646945884694500116019829224398505113735449118404238067958999292562024100837196527998677342861068981072335652806425396741966198381405890518619946265892798356425843142845608105106756466922403425773006180936398103323109406214975098606296591967580512368649944777895855460583192197860312423309442124528285971020764040183844588468812116471825613080418990581323350320686905989145209251108202390589519136743561852765873462443997836897702803695887228466859087038320512166836259224685793238890580904592869591218712849309619916371384302745317787503751334917219963138312807094308462937077140147075393871788917136467038502662547544616085536846636270324085467368663743997460632265515237896658022831358331706956030836008362333159383692219078451496734906886604196915409425994116987198354774213764978569363762469937615672741535138396577518692570451747801521589906829124303841334995735064266666309313557837988303077665236217067765965523845670901821332145211451598131728743057411432360629522775677621361209229654122047265719571620868481182043079483765325926493556474493716071851212971097306305494807750562830576163106809709870329545380433928487133715066271510510402840829263451752681849169198260348806557502536429375517546057688192382170146281274597927562270831542556548451131654538569083631348925584400829944540630185323118995736120856296923744149118340542977741245296724121429300786288224944345407922610075564315879112024367432660225703980381831550168075970058367462306444162133580558450102967909020585575843319376914457759457889869226355171137794904430411738742855152264315925361185470555048056848935969909020842900947535442998730015894432103353533842340297425082473068801739351599556255679165490271777245024266559353291478857070799660696287095450926879444872571572396563768704250310424275304371628274772093473422158989389898834561277826408349396555297882728203717999444953551631619608667444085999437071006343219180764118076979682453442640481672374373098340377545078030200436459837481982771588183881150339379011970656435602273540485532942112094139827117979129687572197232434907139034070818754987888019817950605884272961594976327584893861453297681994425063303483498275180762682771444289427597814310955869046996359270202679994500148235523205055358851952039377913459514257385455533688904051556050365941847072546612932869166212837358809758802975957502093840973770488811686048353404990048933777710005051287790417867930211187458005556614395361498663413648825128699213348260370277909452100072662041766994812031152670593386692362944405086267047483519981383699562250288127471171394766258337492079155704191688864433737055087947697476241750273075826322241084923425379652747266079498383284528360387923732668640387328205986651703798660178499623636094421618381343680232409394372572015640288947428750728283586716886672216809841070837816362156992683210900191718335600108702135214272725867016064423836503997046083998147647753097172032308908236406845223301985514051896260694526855625582878964699054091256543294306223047962425589730786585041487126897778912600957966372820212535367337737889706009183546359611002958548495352556254896327117182998549307264963239694152758747542681163149825422267135680193226457590878928946886068835890933011957364519182336218686817731104962249361805629950344867845747256767259893040969405696439713993955882837562582889914309341588996968425947718505706419404341797931933633563890239706740584984919824261831644159135863858899509028446680364915630162797636517235368093742191898098279061125798307540357799496196695335123967538612932040705021583602015544508849611423790628460746943072983218193401376047394775952645300690345621408609176573096714200297657290225547893210402432815333137791916160701155633811038065134279844803237558509419487457407396158129959578735178412689868969097697501871354313902475014913208446491165096546606371720329788463967726662399456992531221578260229314353286393651240258329187345566740540030917270986161524215151573609339844108321029718070275243802736465633011984668460695722617798381098593931284684589514471327805276822354067399835464822834535585662329206051958312009091652273956168649246859866082418064660906322496029752353901363875710091438379156114053452711046913824184328906064019406732371746788354608882761749300753020112135569090781007495916442582750059682585092024639748551736299310697041498583827550066783591221185556550032721515261970821268988406234750695170864989976167754986417354111919791997152154529286807895836706693265420563338571739409325726047940671898316169838998589075530639673798452266185793912857505001479242935855152441640769248013412768188561583930743787776141997739419721375446748367420215593034745873112989489705150167915961657954173613526217493013388297994919645583691610641528526764472073677249846781709458669517864189858416262464457810454039972146599381191861027569288353623161038165123692578339194215210633051164145927899629405611905909091709809634305132580990784051052164973278433523158648931319547498554319075417476640256861390877254957582121110126497821597369758507586094849487394330094698677251140982183839393301368542035424911670806569254555447996910380766283150055317585236249810264745956781111125896605729276796977382536699456427506709367295930566391917893365980452086946402562667800225447917568505206295634549789905995823244425710487636826124125747130969648082798685887903143235294432772395477549832075506058555123054122746550239131372153049200705044090153567408615213688114095628457832093729915237425558983006146551158097149755643689225327659526232083082557042830428343280274543971654617421214360359590600155567341408239256103555598832093953750436391863404127869390477375929459253037836521101718115451034094570729942680599969149180046888461998271456607365597189758866446457461751571697900862930802040292772847827111859883741679832767309511991916592366596739219705277486172755797955193624211277064731927147566686077582396242016827012254832491451794885807772954513474757634969101983167547529543902235096622594459829988125747938412788904256036473250627100844061637572490109616698468039890741427681473993059338628967112911801427022597409704604237539892575176681670110884761528985850670129885089380172514627792555836563151948802529128666568998867610926663789173588131676081526924135403693573438479453807050424894950367455891506851968538655139330247902041035183184882525248365839247679523793879125573550427818509267225645824860500583797379449205876150344104822295826242876610879475997847142309536887661239877994076134391333946927866168207186761113710367108189536091499965414649388481688140440941573901364677996028318959541746556413678531072517367225456288305046170227781965743199608815375007158347705958642022499730052693840701741304344026244088118219878818064776885075493812238067691284153325056981930062659506595989462360236504455004976765965983295019170912699576578533391955735379941415281399118548543477229914315162348416174058973259880806524450595306525984929354064787504397780847594257775426976656054964252760244335212851431392637025365007672234503000763225165533781511439708662448177848020373264736808344589922255400847809358344750433918155963835992331030533125462600548547003099514619296435067060266957764412689977737131749837268661389204757021101224473109224564833004242526024567724121934125809943981364712177299491699246277938667847756950182068330905226599020938236377184183046779129796058034008446055773887711086497781373644748024988061331529035335298342307929851090672468075845262200166307355625572659083948973356742222725882552894025886469945064635900765446570925172946915740090739065912891458310228916275745852138736570972224653261181465863987284583463993053239267441888800724495969920893167209532583361963870718949160489307827641363542979511637041879306399683127552821624808328163104254034482404661751052851641101150849063201404897819637894135331267148678280321330888929740612965589089445204071871131899111663124520993936353256371592462703100452557435198830537353772565194699172427040627479453197508880411257545414102921724466438981527028286569508478521903493476306910325049812902326961303804713460725383397453933574730321696896047401686682091918194996813358231556955813859783078090379510989517348308901362761619972601641596145303407243527765649497319706564530172492045737578343007954568668467722640249109077003825671723778951667986713107182284446530822355058526314155519241057249683879435489646707320761907752071808942921135672843763465691600713559781886162353350142813870256725771102213852196433215096327821650782998831887795731595280961810470325403553265522778476260282794344479695455030095009323903469245590320516312368546117505927987300921866998978263807187465690769458402446754661311665380954563629827070850354110695962854869256712374370137331973972325311228317784368666440326721214890517383088976841398462175293989859229017157464751532124698315244558157354733729724994588774525432895404527681584760379569540973801900700469708639899932079596194455544535619218294391800765911824160176971602112884178104422565376055305635128683543308787450350908845891252643735687126434242169766642344292173459696426949565184255850158669962238322841586719492129203238264334719422336618365995537187517842681994125032293675955788594371145092072372174769862840506128077697840649339800743422557885157689313110816556088658761016016316107044596633635575913392908742577952741306860458178734690734290674292747345477425998243157917384548113469809314306053389051955818230009470210755050994949831396002208124274135201284087355976330259362466566194680044756720880052466346581431717713317034182569114685417319015842354998227846044050878193083085800425557515754574130072412902820552396578511537072628370577206278846365521208379411506399988753905493776888532477615918827073588575498788370646438650663162939726143055705708458893666417479303446288021417721899377033031078596163813279075742892792249494688930069054974171638850596490707226255001819767654349189178913834953955446099744863400436417203897809207113848316933795535599552530037883456583549685277271692767950100661210846760346976042731805284946194117971296859966289307959839989170678828294104824020932993201957684036674397819360527379256947583077861534567303126055454714222203986831028354854371897154761791849313297695659902140448779006199311459416914940320996308972247306881309678714661571363458294083691447326408134694322979162545993047365709070908450694325870384280214180663565714127609449322231265364457768632627776979076366472197174612349771335598607588662113154525674778976888585924091540839637919932128955662729610114372974760553117061700041469169696559589770405017265844180846703964277086603017585208920512852625700577583700849050729745720420456755827917766824597690466157914242248738437996040901187466156345593075141965636546443903859625449627279288029043395770943633205111603571076596001525151307530230109398318454061675216061658761077704817385832992409028877191953706663390943162251059760725985689214473321727144507471725470507230655748038738491210584127552993230157302483074528052113703010088026365643853522835200464544357893169744840802466303638659836524662852150335988427086021166972345984239811368215281960373391592739068028228904780746500764096914057395487113760123954862140427182353389868214934959671501068921009074544241614759096283011539829245523796200827301969426241366006256192746160161471487997687508922971044783167793150700071047460271472659191240478275948994562364398199709510417332184994898576192551847751065269594219631953616202037503515639900774650191682164995123904862591958272486073221371684963008649048119711458319154512906469491796740205962802814768318560448725453598881439900166385987905579986924963811302018930826028617407880137090425508827334553963287481121885649198558840841697703309459128618890449218333636903155096698051984555259126297040640251290117883405805530344814934972700877649943929058470438466524506085431128574363243515381807992847223152871774848116127051981363850647084625270489819343408809836091336196465051326313996678870707730447076866832810122413141160594672265489341747209926503032201561447691310450743576277983238539357258583694398452020519740026377984229848814508921324456616361298055832381203758447603590249232413538222508982960902448521435040514267809526655290671470709785170963787164596028838652567487633377872288853915650534064155288844347096437678029177808972146861237741042001848187391227449567983936195109893858601069692239863096170399772649974774057185754492030463897086398210956790557162769582916166601720137341606523501138845134833469560988583320794529295508763489830370145273160318778723912282976424839688654175334057020346389555210105163038359756128292805686471236920943468501219321474983024955661588657489469336166452995220339990772721406802623060839877022209160741210070022783526216643621539326573011745469603241708364610779267610357466421657094387869019376080984429935577359469723046482299809684958183890189997294342118614858478675446502510319211197788799685707782229254497053073164051791404392942740860342682486845316354624475842774835338408721683074378078356970760610513673528462737771405533375372808997314851045610006090200133635721382246026443650850300719023451313344318323508186344867596715017826704260242890145721042314809570078698082058008256830094120193828422242948234335259053202144381253342138289811901410799862988076340105838500116485122559093698947556523868843753255886327509309316174499872751679699180897761490811054006648495167008847505125380781276360239050693948353087256160524341579187689409388715427566720618379594570829206426997268904319938114800868803526242072767213661917831630163910785248508323377814778775886124709881886784963293990798203403757619479796984479119149888280031973293454970413840370362699620409947405327445918941673920542361729107997510052064663799297114873001123722866430890151147023381140420861452948181036467287887148488398050798688854558351790801191782018476975323663054846658131972006327039413689394282953317348080302145540944688013494935653798552214993367801520379424426323384233557129836610603148376468081080463436131201596001521486636677719786172912213359586973407914329738146818106618425279750693990731092414221330126808319701720690318285907457161392608868121645639746652904237356847210916445675732130803586046399115889656987817771742322006812541700261670263619169053842416793001033732659995720030462286670177059361231040148112584112786975606962913187966802808646696908114237531669076220490026942437281967986014593225600356511228397357185556762454846369840535245685607743491804308148230793462185913782770056379634476480892380187001816693197807314772274058435889134299294820792588907248647854074117458191303048329419175909989252629478348850841415379539128050192560561853087533874083505522717958410124676452423333124634483007043820808440524868561016300348707402154710170501456683102399299445086536468554782777608161204554563946714366557115311005331968955426841809648697878426568292869527123663858933234410090236921888333969685487177827026945674335353512135000409260204745209552620030850051966733286977523007981624954497415952094513999323776267607653074837992045934270665407901475920371041844281598256849690301697886529873810851909294213274946367218123967381468716167654897451440165405149289813513107210846686039813445441912339558360607585259908983273034597199882395501499916112131998844248431323300133337304500547168608113690924762175211686388631189659859471943709245563442157305765351417198199517171130523821069852167130791539494349326119515954580253126287028560351779570654517779850672418317965098412288707346995452460848628085943063715609609442534473888348408928584752764877225436130166997040911686766735880257327425711746995344203287257730501261771789215921749029999715634887377767435049869213040087076927083341831349634688146864541718700137133467570665076143791066910241612323754870864980981391269962219931659812947633089265105934949956014412580489577783210838797253188120222816179598194390933804378215517020396290646347565123888986318442198893344150339642063473880438625869267931935184136946749910960547553639047133256125251607430169244056786734665471859634528979157639862881011189252596771250971357289545413345520647718474281812404618435326652792802668866061060214515917404019408783545614492189792685968028638142498692287841486818570886285054942280288434459665426253208759256777398789867094465525707336973542040899683237333580432952574162511370462668653381630994622507564315643260942393438765839130595908532035625192253498657746103258950891482981151137685876212320042689555742888660785482364047943097376553479635215156891066917132106391562001774612237772518333486374736659529268203871065750695450938707487131777420681722550313428871694759732862208436408356900425900344944733852482528989879742260270257622872904594582255257454579198188992044070158569042579882116620867897058844224140005277923485172639120364525249858763522403967633350725262035651196887165642110139848547786216557948999623592556836832526893997182493709120146194460849241190750161023874378157982505339680620223756350992851495653366812671519540562137686227312244958789605390159714636373953770284669311805725326825864655806029798900799712572544634019557024237528441547624232069482411404270066397363264606583366048712397168362180729286507066704059835358906604476985533033236488992153078931887075906131200680530528814012919990531103258715793316596077359917826357651072672776261751890885188672881886713061147739100801977231690253768597974312324756118291715589038412888527887658290953479816625994544007863181988133762094035067854466480546182067123576439024052149144439549575961086138436912940921114922747486839375481958223910032877294409190377279411172618186225231302994717661235494993510365554341372089040732535452211954784310540727511735562438003714739330984195546497616492643236617822836157993827477233473209605023768272440652781000637628500936403058373062718638414984777168054256419668478249908828199958840948833527098612374689212378208949505870929109104552151007594118238968965823776292806883237418448787584627455696213856903574253575460450585266463968194712676766235023147884893650713849550215433776033419625805795471235730394709745445151262210601810551402917442826348609794295102614589037161898647837464569172711645387581713529826989834141607693896387868419941792692112510140940793933061836062992689847373616176205587809615572642521593607063397384346809935055443943514494990319309564287673433703462324148994112606407745964884254974813356216012458374902561896375989204455730761240538075997699305360579691759171869430457697256335198595641904936649949475766388129096592576619364147371670130889387253583687367493895904563710564833211825152394264852350471880161533608722249230231503647838744398446419291371213044368293465436547864174023891755995709901496018356144585782931764774240439923059800080559481143078476630565034361362637337677165820058749502347042744565650999096711236583251473958604675060193009044184282552641213366120129137241095225888590107331180886361911192169195141604125138399220222277514908025621566567925630977598574702358136641650793078461941088532734907383097460165029451963435814513934500084120052348064047092849942060221837703870885063728184423841100530838370875125868268290637612666887251069957232909727059446907516764120087979486123972598020714182688782839038207502204700822624898706085380537227828268998829831357975542478747552683865028624842359019523194336314184184493490087583262004261800840739246588235260241553519036206228013902507193012707370356435024106444411174149484290050913933983740980254238132119580785235548123202528338142355011624115708485502622312949943989522233393525468460708845209412681931959400834543760918002250765727053145977186542410999504692469408407552000382831215025017320174927687529135992163184366650539897882390720940224074611767007557625820670221711736481414951212752796514487404617109792666791951812089458568088686251985461536613518711888965697645854793065824947745494750232640951363120191940673553211173497806127751081549444414926032449873051344748549549087985918792875829927730054396456998845731988186387430906468889336325569590313443710777586653530311864379756866654610703501107150356479727017877541133600674079588079413740496475410667269457169713048851148329471049514267714069105133979202722653945118968816349670615612474115120955628040074936846735793311480838940053699775882775497473580538162535515440401082128303635329746326541252158207425834866363775291661211282042213220858905160888976959586600962586721165901283024050194728826680062686117281779594346405101509928284234762655086998083202528879259737786006605468113153120775813002702214319546716235159550169659141678602560813410497939395267273683627813358077948798131776765292825839311727664524151609782516651623826029940929988552815088079543438095305540342037992349455475270690860157520593693088242797166761165141650341840532473033934801980055339632197043870976183729370874282690898354906504409743292618340990889716357367060154110947433763808684448040723377230427810859558210904345432920661505427129327718844171689347892924124051844091034205620502386548015888544379609690776987775607520749943722965504740033147594393535937459590803451716263491402075369138261260492795993316311442947921472789401087307881672356299729881720225323792662587054465279200402925230164175881924456396738575704557982266433874655450392705173629008164360224252580882096815959767473540507095083033921120448341906045736901185918882550106772621097554328475044218937609918700185304671328865192839397959462540862127334584066476009950326817883198219490909635956736931992966273654880386370703995823030782161649758393521331771819609400526722008269491904801735285088694717053145532350967499242231486720561435820575144130245473197161512600139190259978508962539092308593437965441866276629700932168504579642612913482455865274314646770859126761047599468580615411511270594219589634990234780981755335849844841771664618138851820706310131802684670941063728592468685112101238719707175214062121184038330222619576589651573195525328744303477485945016044718972849753914264305844648509048850650251287420439300023745348248225453587321001869905518054863119632802207552277519070499983911364430475567824989787124965338362240530054514002192130280296028546295324298591650559047256717032658204656452172377883204994324932333886422763894784070635474543279828371130479701595876690226690362652921352282627633558999063881003509892814831231012317994314170534219982073421380598153255161629846302674478862337337665050620424102795931291671201358540525648646042386088825008365258427628495701860402435049562387092099404174632359357224627030810735231962000741968263696488696553787643501907833245461786495005457257905898585538085669679028161319728150466591924483124861014476482504711108266572583632601270687350791599541231575004769004549129851354425653262847150057683804031799475374435568703926640123297591253070087494061406471111640503867955878594501883174225870994123490847291411570533024026871728191966123202864331134862675947846270696518380779079142708238349020269740512591826415000103662233589787822681247092427918918436745792251739659880552738413113152417008501669296898842261769724883473535504550743056914789043147330874861539081868471616706173807131583987543021531488745611556400328132027977969137398166444105083439072376446292900541827151436736754934656061495344736489267852671168267389650013992640734454438999046912206812900225291612966239407860859322227529949627413132503272609837176984806922200751269666044590310941327502781150884884606805536921581799250412939406214548394147573797341653954672262536466504895503144004487005106300078935313976156299963602231657579260336423393876069606589967409613853086018420027987543302266262742518499699452232520801924111225418808352797513302766918612573795409599373367343219399488267735660575952176035105940924067630987325123572124395454198775185859059958686582233226395107706815161820153232955135727222797870639814174732288138650059733611062387335597462960171506980269461333900897341193570598056550416803195604050932156269537899967407317951925423644374613590379033948148598493364390168864418069914141029295252494964295187120078028895467898793918908636172564571028956945553904940819708903720941775858965045341268802866276737910969678782070315077920804780976866613101833482292799656610682256192503643775905314812046068489504115141210193703931002808012763969343219850164089042163719263560472245069662376733020190348315480577732796621987008826860545011443959183930834900595241684963071369485399853324469585716532876954723272176753388097166863744299402451071263953128370576074439282015870385896827227602514346808491849657365758176217402481512759632107024510376681429842101005010630417139553726790060964545790745714702979645269847519710272085965079172404469033919968635836983938415220272267522886050205034358204740898509815829879027265650848431102449192214528355302733252346853893149535701079640265337519258664953596160882203677808789344151130113769495271235153003994066161457256842902088242637154375918099183739275419915384525959965765278477515835587650082399757690568974247557350735873923514602167484881920326922546566790920398356651959726968277271536567735264725874527394738344692486611988147260788503314176552450273411738531827197556203254259466701814269402084536448373032054591284080213953440553794352472173794971376658805700777093345357131744623156090102346911821618562903434794284818801533309609838768299693660859315313751577315030244449678674916825252573445164045698239688698692583721074732866027923401758725568620580102137984138941283256522374261901153404325800415290004574606872856618300269160344910655027032040524761357732622024528201114974448150864677751832589659566186718879414053429286652903100001313603719656900394453544298186706607726270350152309536881403473915050567519698662560638303751943299474138972297388899674279177329454737482500043690293364736021758640378352724533783364388204958554130790773887285671247836546990361054259095645433819353828763523473414131670470667771376933779084298759580089175356608702419324865382202483106066791288877125262281055065207261410180120317692389606481604378079820502149777360511762506814439003981795014468360399898654637308776433740906008580237693240454928553926442438174713553749779230564569953419340978513462089347418521436265844462283502206125009051534998971064365230550725261580834725845559483886885136908740019870720818047512998583704634582526815414715245732011971464169479638336290831111288182351768040911859190519495163469212361763703464438616602040925880587065844584169334480669278123518291218996291009278662407170189797663572203731610160729621449287336969101611535634472712500481561488065916950087483637668939714841314962079464430016050435479973723413743635408003946391106293137854180797275534177388413792614326315365388191734631229460080422980963566894898644082667673540663070432545422005882439309150469231007853530547392661301094929215979161232335339441182999571066071056288678200963691890390199157408841951745478189331229373400092008914790836534641090380066320327463101365265397900587632608377850802050434845485716029936917964985033674426784144565125458410857034379876192908638633301094644535777675337800980052643537675853799903539135763765018173960629137660950637817284747725243266095409293535241458465330166216218808476174369714259725802777920024613410510440247595012743893501598660873626859292415676153661240557917862292447941424991553347711958057590051753456518243117286071960730061677084383736338239755416091570298477060819618797300835094818242222402380318441082056334136348058844298021286352139375248649355007998261966013689018835827318645463311898614401065406433072071105999445928887771577419476289997954603313260631439701461369454567280256201744703063009672862265871295013414282406165816895008156186188675412252386403466196222973423731482306552564805756113904479509512550588664748891457801887525022222900624938039154777598940658483510007304685027272924386652855392463781889332055890495502119775999559454458390758692797279265587385344138286239150608850111575424423735645811631510967002370624651417059514819086103556450016894097863014019414056148689298369311972729045948219794960386599846459589443634423461205619285425919519639672356123518456417767874150120637644114420478893574659177930027555983187884077170301702482915698850520216077829463986823242927808864576430000559495334136006397124295264764871478656778074924405267405533999370728782321659226921088610204889161702934273881949523122642869423203624890060182818982754576071857015297618523291975311667091877849106829335152298448764588908539394331400050814898903751220860791336791268145893234570230237757372417737197071834649010172168430532697145515820648778640293594991754765804704411394681015652550110690735843404778451530279087495206481221023199991871424662421485196670590667359955811196717821677155497455306149210216970669588291038720747805343225108060239807036619780172031631176054191127830357227414902446725518530389653928289605664202206868332243085868930701665153734038335444108161331314175653164666134647790230647409419297706401642959589951043823108817632580481562888302743644972721002561455774543946741185534999940648444027906262777872568913972683070685607168083798466725136804487782587087465738440818939049684606976166766024549116571057261688211203272846540970699504131259200179040811725815256741221969297154589385079815363359240881052966776733587849941504610021282822438342287585598016188442873997994530533916203032164219113934990246923887183793371073358148994356229008496749259337950065998672977603479460729233996579461407474141259036866075694301188270129066662259591215159802680227059266863557640412861595217008857311167354483833038853218081112474753062424444751928015871486037830762455609544931375286169018593236700361228992664391454166201487402380619176362832588393091840500934581180333746888336424594207490790809552218116830507657072279968061717416942142451972091713923926583229040427717288117533112108774125712130720120789562005390268233598215546168061845610952402280656346388533958994999591779231515978765246564506586120939858384479888148465365477308078102883453114669330356363996324130105941787337499054582759583098203466527937552327224295372614320641528234983013505286698844710365603445823246250499724189030809285719476659487453687850489778829915180673040839392025259068474463854210695779693612475945264525183882926652655087423837458409493096064060349780633848832519796622132027192502924618009318253789518347519966762046354661485345426554961306406216905338292523818077950820865342329097906646979957838471403735662095989718747067940923872810713664493942360122500434197856634068798482259035766048849088400182777814076323813084712876500854466982690982295552490271042244577167126606585435728569451942664628458401407966158230744721463958607256670151722600129531834328201863904020789981166111581798554625401263409322122314180342977920191385424015476685007615955377517074266766663477765007953408970012825130717802793249978643102355800397865998243269440034168028178054165094779048541434913172951238716914081708100104982604062294792042534272712007233757610117801738905205930398471046552338348237984417160226062955917107923604972506154945781097272252374117569844291654208982308011902864448167910821026306078209623103330062430043303012985561025424246832351225308233055247542011266218367202283659407169946296166356178066959679801924238896546897396960669616144806013100302311077565163407517856264550195029686217905979137023937037445335950707437626441224002744476276284973975598288919445818035070863712551682273111271962963228189840328641509561237868361986389254238004919124178998838645334023092764941164069302366006686050476441045939760154732579083612186684289002362471196606013556612240115580406871331119844668294257456714576779783645447898661459022376085794597483495369186221621831850931025523310014813905101778422994475828895109762894464494008832457655180731132428932468883213173217258171250863492646261467556463295221362540822261247648599251849208906484015758093236904850870256941265720432583465757992439418748025448910323393915139065204614843721096517891266832173659763869511443780162454937861998510785154076526767952503066008135443284013111768555662675057011792346632691463714350150061869103128596436240726938455340367994498241863966542363242616430722289869207384407004340788658879348816634447820530244951266893488365466078026919877296725256841090301700023904382370706221045089129251143378967603391021576477009297881920817435975943611291735841368505180048424085969027088620520565020444812078319772733567407341009797920014818059425227363902767133971561074541890077853868576295978059659829162532808368257400549016846678346031543676164433923067486967715451553534793544220143878358348370247896000994845792588750179519625955086773227410778456688747957399922279683009821203656881642625003010832870933255681262525542934251472509169366696514163444387105693820499274965207486360068714811171135534037098247055518816416400561449558739499971971889351590884069030484276738738583178178329654783456124100753795980703296199222167231340807684794212588589415058374298300921765180993159416110656792132766622844326422113456750465673445441325855238195160762931767971706021347393345765204692674838681430016660594743645521073682429478670945036972712314461660342263237093227481579936720081800011841144288372437586672218645893299187199041869020168047994575080917140168346620505294013638313525437845841436797752041193383991910312692763310034970868210566658682912538016644279417211120141829457227933115619529007175425328302502203279314399994690284853053898646578811804960896265328627661149336919256916791636395407511492985988928818571383456168263241152528639886462487696900463902829760735323340511351678719909720291944411821522801606219175712218935090500004585896313122530669295966913546745175883498153436237703159180282780530635054631534486641710104436416864937057836432728756400199198534529350544351958958761321173152012690370085967235222182328256306846725962354650910524159932494043485614444776656595696213034903339589438199837791589662696669088246211680675093125537654816851949466860821926935574289098647010988994355850437787426927185934801432104458023997270641558563866110075741399093977762766413446801489045454392420613748813732810371182021566036548624623429888177418249299991646669045002229207237506991069726679822400750085284714825582507014299350768783663991197884532127773014174614449055621723184279948802232225260337857176081671418748306964913375639669549284349668368958293333547885892536241164947009422933838351981447541956510107425650704193133768075969263617074974613081362471923710917265095952253322108002367348688979470855141029491568988124012784707657664916070338156889698445595154330144527723953398352281019643549195847631340326282575387941171996882541601352737412757055998366434690366874324276781726984972202869961074142537458956663380845729093287730316934967053480814053615911272295444995276853106539306801934270663967587809500634372197957476336524372804345403720464889959156783819019651855830430564141525652749154498257087119238373792904363736448939188802247055303369800955529206667572514400974631494011483420283735311195782966955061035092963432157071552310552180043233846510894016818293425299615614894900291592901807235849665761193210067973776960952116424075617171498299669231636660424411365645542668829417395094196675241091340630360572641545469937361428668583095622450577591016994522381934584278248230428329238246485480241982798542410548445390932499290460304747515573899854412264059580733206947387416474339737874753515051880922224515437343158189478128382031206008093404443612748837674783373200620091077982570882531619263533818250042465778755619161124910106276902083265438797743330418482369666959352318181733053538478057922873914568137342520500857717227311705740230618713062637612292929415238476522388275109184521223548444272661959927961772440954222899608704595015298129403337085714359802494347180661628821974972913746891423166201644297416396579801646942680415047926176059357169982882462441106975979602423879082371442627655638215254302544694601747502038516447674854598003768784276781570793622761128946498748242930938758167946706208942163187309007861499895411763694103794902947765525688284549511073461990109639697124492313026865476883400350607782379212631233386345899304979008679631402639862497938676036358486443954509425900060979626990749540224709308693791297721483606219572686117046774773207128921041523650742778467150260464859491515632700162173919949847960392095031556558189038184079795930929085155852135572106158366985603203782269277008705546999226081701935603601357142114488176476436372600518764964223440130576870107667049238148639469490291897166456578547995317945482878591346432046055889716883572930648938956530460825964048728079925412064138821950684262273631999945271698269759856518976241101264194839040313928683852279187898627977238464084364559168854031887222681745161593641115416343851998336439957970964478454471725156082578573896627496549062631050904789121658781942336300539631412907411702173364234189194171741913703720390197807237506015481084733301200515483122146268363023286884658528173040794768834553946656038504194271936094765290244638676176835709729939141422386922336512607011528811873858676308073624210277112383052946603424637622462303290870414889815294355792887552880964313013133736138057970795505348358086687531314504669761949229650727926295028539404983428800162280058299590310985133122814057909850681159820070959798363074745477664343123245054070824847345542114109707826610894317860898344066843083252535135400846936670590301708687877568133813730317583830809807018007205254093506148167315638529706407386081154930168561402935867176835107063036913828430850363257776918925570297486370948844581481044310914166555222761097350512663738781279192346410167428498204942020169081666040566805392670063169277570332491543262417502188322684508997596293025178911038346004456077384759689072070170351714332538228515982348504809486096281095708161725009613696021575460515190443054525081383300683817462539592530256866534938232523040972401245581941003310364747083346561375844363140366682073626912092816110995468657895027926847025092187818655915235746908563696108064733510261831639601863792421881327032818980982763016941042408358170170328448522144250591052843978071644219583277988748026399773983663216062708050823885460119462952151575125963218908431924510042824881613624763922602226769938154600660849313831684564081987255828169272305206495995469222140196813063851397198103171520612736216720164831384291902160921114931415699093388412947678761717985118343013417487525618639902705325502257829311420850324961133110368557465569968948799557321076609932600513456769496986269434147157454112826410933490759449952637600316428703854086753831134014678699804037565492465619648786763513666831152693713764963737523548342833470396046085467390800749582402110663370071979852249954832407971129118213290174492357744789388578863147618145727120187476524676055968380932758974937307052100557920782170903493830427470435907606879547983463508634746545634004479585446177835515667060045539015794322555583440664179070221555117006471809186834598441916932511222888129782652775676566295402406503178416708540852108073501769295457128021971721639946854212649507866565844889978238204788820851430726336635355785293895241077951320263616722516449727725017778638003808371019161969615116320201591360255909858701261848463587167680450717235936463811738445035575944378080280603316891400044445130172934344500645571815659231168513305995107951737328764216564193855983462329714187932826626243897103639212624225109887897875169685627133920582834941982078150351281040643400704013607242320007217823483426812864645736592033965314835851853893689347373140619994717763201566791121718055566125834891799179837330347263086662597049245820029382106691934214313909886464244368705449728110276723918908057912331960893422063820500434972135715685795562264643495020083665364115749056037692110791597020827260105236441234167420686473323135870580542415904434334755684228401042612462717718826816469428374392273685409850797144696106121708429986108548068608692389518097008176830726664808718806534965399079207463808145425180804081835838653985177655220223447842003088253986233103066961470532740299228638182667323196844301619819252781592475931391926825900421406312159190648212304497905536852468060943435852006805401918451052286665566107996936006038013891512214367954039433863485432078267382290078160761404397404057660196737557995566456753140759807422108834169244765006967982912034767227293813203974024522398121458254718295314906997434295220084519511751351040377956195982977305308393250095022995329775206440172528914881466804564778212054640714247132261036038804670930570132595590328072959358429664670788224334891514160461643126418696976133204861409107418722157201511976549044925017945844736646543519305476201770895032904030524866144170011921948243219888381233212638983202673170925996857423588230827918384972539663985653964942739441197907636604186386090221078420396783537718977636175621369423531839936929971768089607964024765001821873251383606454437354770819767642517679377821359674513673444150896854241437435310030297151303169377457306246257078953737712467150484516823006947738077424780269380846452957674584131689957396663805877551449209942082360185862088529932919288374496351368030952613709586019667392540264961985596048060955690045962609948263273040326389824148913151466886582554647787923633740818988281078559454418087278521815248348313201248585714177789067383704920398532474038864390676142017326083186298377776964510050822210529341141079214664707203842012786884738193637489293758090146919384748965168484479192316180429369560309974273055382952122907049450616378364264153100282551900118609832668649671270033664829641147401664218149907242966444197636587627527553192253588951848119477626756407472594480488186539315563628163041275996425155375936751325086425773472284465836948547620499310069400600934882533381916794572565569672360125749227595182544427898988104310616800182102949517603929024380527797392512522318997319150785781207701640168813031640812106988686316296790083673711611944333584864016495214546209077727489766384002310201439973135083699538245076929959045675973584110027555716760493078506540319324515974110596502576063685997769712487165712914532921774306483722710087003704937452630361740486391203427202573564957442960712115152325097228058956648038234633598342938871713805610930104395298311017851015436486543855147565677645758294477820081050402300467795541667947986885855970418417082303756575976181283215759999222517393343374213968124035744660287538583302927897838747629476712280091280547780137363851152642620761279140074595664435508496774830215046892526453434048736451591046758553753947643251668877174622582742466854206114331615373538800640656474128742264333342914111950503634637725501749950326497289043121973386618686052234889937128044430672656860035877251567066285824180184912911292471255079853230933782556853848591962613660743426508975758521209278265081006615578188951620783133950702780591149299900357488269617506035842791890882017935280166409621209351629300605077861384680764728187352157669303949717499813621285830272672377368296364977196927325687900372819491579860264768973208802701424837199523045910151890435643627805457024476946458957193228008163941501060966072121605249388010230063537509337988298403509560660839062365241188704028702255540701315364930023848473981984158601595428729382966755706689675258822782671839339239831724443138623062821457069384732881685184577253910914819104528308630776552035843136298619564395296633504447599821104410874206768375021498174212025732053605501696956529788018744118031156275673466350074564003743544335748269053133333084483815623311264411233647296796777728664323634117607276580391301129024982322429764654600618852610054881320661430702082386324547923189391724108889005154053887152543152142116499070612227572577841058171811048461021413958000508602134977688573808144573584167888814843639679451971932202745876144365124795316052767755684356553347335562223746438153196434496252013133567114054928537102585013869318042928457579653349718209364897515893458983633849621150900338658707586526420442994834393745036537271746868659957723698429892206135089596511235433446148297175690239867760546173835275454525458314071257787380570768404044075319321463125394170255225910334693528515769268964998595758306697775107215227146157875595327930817540067299335606198825486745786777761284352736545583352573199041092445974263452118772146410818975354410862562193387135899730803386289141273408766572423313227375363822022577488376450549300158244287148870672696043366208144213378340774265136453305346047100423508971215426212976018811110650198734732742511667597384029863498491498334797642114798227001918366353182471144307169689489070436286667302799388236618882550236118303983626471581522292597492373857304128676456463351775781254575773152523203719642578950109772683557425872299398992140557478587558709022261891388817730646173166401094769029873063958624266291794114280032608289769290815341720480999433987449258247898207450534487740911286495100304049583237801666897425163147185670727465708000028407410872470939500805632292303860769548062242683051495676473989387769349497823977001738496672925484016914009601058684070133804675946950447407987952159968087299233010282660708623739179127472932571194331489055616088590202654561621449137673144563702068742618721860972930695049843504263673674664799793620237181095941846373954271676450505750460270781282442770049545117730823802075855227627714816996778843292103618613282254597690543543773658218497658223066776388306859282519515949486854866090948903169505574364869414385930240410776955889477928504804549884920125321765387533975621323410199682086547364709912134693678389985802200220176012223672157018953789187548298486383605247369190737160348012455221978901036917588760240253844796905826889196266227364646861256548752690873786258640446252281246406839904850701968372211025092730121157623503211705994023443499119176845298755180737385143569825455357414560381228731252167240259294453380325517062230800915222563122933528650654159185864410565977173823668220359692743712114653688483848838651574680009062309494707413196321684178150066729754875765857889860358483936855423385036260339110853311771445923378328122417095918488132097794762935458491337576309210634901929215008146149328138474150119083657123841586463121140114625547920384949521738030964069382182089542462710642387702155995274307646175636116069352576882411670841495005283899855708165776031056963298676542238751486091461874525580385974892180478624850413057288340484150832534360889222661921590654657058931820928355786440094865953311991323588285696252480357339197387880878784020553010792916504729929148213929656167700829348370963960493930607484202127997212579869173547876269357661638688008532941286705439414174869822899166694908733161682604115953790237209900844744228367747160842602866229780635611145193465979798902982873281680486968685009408174505233465947278431869365517906472160133616680347551844698772685002137397685358867913623970038585381745679882596817361678321804919528280538163466992926615805598586668665721045895125147384241483935607605493021247379600195913733099665606412262181994893822729778176530835443471450162619727101681599166765387346348675852538489664740273412979057216616843458373041200330067929365640855718496946425265874000799388974317648088576792483278788701325493604735747443847728010301209994103183624022506080464654255569232593343279987729667412991104940888085989513300581708590291604986794679327714403874339406046510854269458096207338587719561728504737785842875208471432327219309463314749226911293811571400677852574438566067592835132224557894570278816474590511094669712862013091053400012358296551194204702345161652307754545583304237546899647468766754330311302531552507593783261951853530035306954162365270307858260878580935667246201372217648166170434314601843734827265848197917284731016660088248780403508698429208625398949104353282428461610717901951180851059275562597900961830938055307884878735791020356024689210362343424558941305520326217225129297909570369564720019402367888320625728104587029019140675870369690341832379585456085758809395101381936452676110031351152225421259735779410980806591155282739967724645660231079978325412447845565983209271362650065269598288319775180575175751089500728378470728670785567188950591482640666155911526220101944933245097964259742853692141240711468871366241813879518894590379475883287995121332372720720430702545338292643985119471777410617332876582921673702241258850704389498713332738411816601111148530307699018798646135389681790651875991312447071144010269069352134665078939076874261449787517437298954062123323952768957679166192339407523371406470066858943795268856203014010600445938246256937639249351380070121248199751041769498729156528738030265737808286598866673455212996104259836216928569396967298610392984496116068764159227575250905172257932697088012871278963812071051218906603214041300065587154229758833946495942342312795021312849022822493380940500190494989216200326042606096685514849542840597922921763053305263687577131219126264997419431957672101640933242517892066570492235220550242472808186911978707756731180403866985431834223107383462670710173613674105190988500605910759068127064125386312040481364075076005513655749955962899581243484065953596974388124694585929471010878853094508618364648051675694892730075621473565326996806229970344484562380805819238846896389771766864655955216277281391399362834723971806795555784840832601647038975659291817473701813767007201133996412154043438603213137329963373179338306998183890976012615894552298793082357497514708547183021522171119922349410068200411355346991646113599015264135469662643004872426484129254959671959407390806578478064325591448209829683661806620395324152084538117129710880135426754665579867525086477911571892928222214341670974011024429998902596787723359120341920236042472406529165823544979960209051920612224232229934994053818747772438610752688155275520424979294565188665162194965456840826524800108872391437243684477177092038872457049692589338897656880352231024140546409275325240472929442368796161150010669238947959130127061268922534773707306170890103583481825730404753330870856993413628057589224019284080485796128349161060026997356158075470581803546462501146528570585817168860335770503899583550558979318415638151208357239373364581447410565367707119863425287912633082641525115690249468535492341027761008969203178992733837425695974579376577378949501508882574493472409617210193276966326119682009359115633396369344834758220691474246773019610759853131028480761776966288052744839157651010518307898243579875064154013691546692234740684707902716733041260251055678549015976757440010883863550998987607993149985994800287155498502799800472248794161709907886117434133296363785957933045599937181934448221157998935983613383547647860174906614050833448688971941204804553746274334451182513190616201667002899313091199943649755769541190303816856220015749056094493511296544652533186942752612163196337495202842683536357596274290020714403910947589874079570031730838086108495352882649758371457548449094576127153278705354051905139916274772798998512813383118531911797439506658623862351537165582830106541624027175271314047123003861399524842255536526135968050987323786137057391061633090412512335765788320225372533978587325425572101058869460467432055545156713205969718398323552113235813976930054353743768418362015494868067125887800589907586628540923505291335663367476413965963323745509054115994414023646038687999067008372347837840118745750023964678187454090079929919413659176078062049032642270234906568498209310881093757309985970673092163940623946376312962548487256091501617482931360598434548253841549750424581324799882313476097800620870134612351911333719232721686824948989961575946233643984437435182782117775633245114301558693348412042570434734201849987143246787759381201279881039185464059441045485035680769364953492169902679661264881051708452518704817430002284941554983615551158621986355533322497236706317692013982104800670174792213932493640156418437765881003976186318940162205620771795616056612799431253350686218762393867376722590204470919619878324440669243674737088708003564597544127628288155470447200248557628568710222970961064905759201805329330475373289629928722490355470623718671078501420205582789818571231182262820399465526677393991060891544373148919115742699013408095958925678954484868139913717263425484664823506278073615518468463871244324744352697336830201054160091961879571077684380810427030246937315607823566612060602907355434342646482514604592481964639247472750723806639094672145868412982606020715801841733445448712798931574228251833444655643146990651594110123767948112602898020129272220458826179644172106018265857348043838959454277051697582454155779242692479687984165236115111443237754471417827004352221268126828620757046100813824243611576782533234553537716875165132496412575742248375394523349754649634637589773736604702571774870723312965832077105175723417920162352778803419537774211182032340674140876847793075910979602811802994639797872829311084922696895777776605810301761231723158358629143618886155938171955368031041245043680550314323337334855274758936160720244282455332823574632314037636660762711705670258094298797880205506619551288674098065363765321136224558643048772087903398297437322864530192769560166643534003094221617781937795487184097271862249619925798615438637289927462748772221981982474059606970753801657664933979584691863216436074066819590521980153108302681689225998810910661801667846430198221965180171533556507327475051656551819810729112553893599055906690895773478869063710798619475707242685192259564871568317036188972740872095300735786065877582930492375086015974355147861037005692054895429557246344877158974073734484382758079603513548948514720526067088969398109056835528481675390139182293130249570050301131919566986762816738193929198103812257747303128489212502308111599722009570551042686796029804720238576526533388728296640238907389226468626734697470467274449293323952729611959694994898342303187546296812928855790593530498473990969211358895392329668238287652670042417418334545676529066739799746976088547862639462087285613157453957702641213549214109518341768566382526658441372594080897501339162629714561489302256592747866399998475955504193462685150947996283475297049247952860063011704832478223832933821653014761108137073788608931636291985215186481163456968542940750456170405588960734036043953165190509229014119849816716427202140417580236974343087243970984180104049553189661939583891117297298820808751794954428295657481793955714296269868780315659565694226799197356732272128018599129165012093334309894598922111805285025368293955007133988161442787157759805264664638629649282901258667202484546020107275728258955464521445863611745921405436359422983425216992071343198828950822541654743821524525989049616589069595044854302247875290111401067124296423465419600809870413405792846301252731114748870757661708897282847262058091670598471624120166893870289355451923693543500428511237333678671977800866263709887896361551326944008722227167362203214508647660355533818458849342745909321296953999307039553422958060299630449930120932368442691656490414834977826491012436721494829982171227646622133407806769590702504583582342304092988831530625159822124359067418377384417500382700501437782279511196692025169416162798763728137191141275360201111843758516670208761697816537784238597569591267485030721336086990944649823861174505558159240309215417454631158468319752387330326630265834864508211754160010239600560717011266709258005996175527460828622685018059931359601875455173023694981015554631078524555870375306160269784587188789443885103131353920346727343209757232736165951763063587786352512154420532443421829163672595451801167836022639745791022078797746263952926724722003768203362136171915486224090150367119822960754751719219309241201867986983382797433853193375116324245601094601030930926413072976566559565834994048211751502354478112332770137941883522689829848863661006222688130680963340544343222145491053180077525297387749001949873147867996602461943608069441550564291929525206077407950152318430191070053373918589149357091564677439071984388690427984886925255630451555415155202677810560162494698206390578621245545825888679559135178931176498571559111607812985927596168579662432048769474121332319259750494608623395699949128243837724637072584701959041951325032651073095176378001940158177685495376024145530429263962241837608247986144558486965757479618343102531565878948733112405655847771407517193186616157594844622050458065373952273037759835158753140984480433938590435155962462176093407588896454198689772022213678700035686558127531720655282272994394372509419425231436457609297023087369765313236174867610604555542052814346289881155872748303920299843875999381235685115406519490389404217731722018241469469777802615471422630182444202446361484462461802321567334741479939456432652036702410968403500975057088273475835323840928580319117267667100098968529187213920201274531771109111723110725277479220975552739298778548981401047400212653685109540919013888744499351144250299016619679904261337147857781698525041095481316802143286026791781782061815211277700192601936058508603342809414090178097764483768309006278776266525724567498294401188009238660572298615021057642622957274470097222818116592700846310923955479029070956958455229304214633503543864594095681247051624426883287017948739716198378317744707828847113508533491628439655694712707092299163598193066699261148841688932582485682135377369611254544065799108325357815720377426360221553634942426997554087558923419056461869772890440578721522704875195573683050096739351891894805823577026813772906298634820413317669132869214247431626086305973133168655044676503848429598431841400413104789515721823532339489560362142137097822198637305239498777893221257443753822419762360714504503903736061240061345046331567944994005671461394114504179213947446955714205469972159618825086282972058479919563683507786900915445188250508938513535754910084684285617321430834647153519348053029311885527282894385416388424340208424352114103469892717986067898893401934903720769161808257414226849952767842298413663553254004265606106035220191414916989971537157255343875491285844238916447925663465628567700894010874990115759906118266370666520814188624144164831002683964719476941713676395500678816113214684837875947372107410506780961397082126597103723652905477773332170849929318518400908178482335972154366885127285026518876203506494144782818867376369832210839462368095575242214327753348707665162837722052188606387927544432524886106655917149455427282670457540012592474659369800560928400341126343010852664262455598577678990839310567627254146605693783413562638275041847062039329002310319271416740386739121219184309293646466406884376601377000327489215140725430717857977813172848861451122827192827222728462946529921571917329302673219355921839218265829161108776462930960114346388114515078548359935789204847494123518771033807693521177156681889536296706943686610335069342508700825834976001198960298727325897285743818833223244325120236477390745778692888133467525595465200522461869514347113029771825242060983625800298252401001432807243538448025661277174877157176228874960666893532661048194207660138383742794189483880481682689825259777199150810883410549487281097308368340317166755839772734101789918882883923512754559327899932661125035516543651220266736275893931004706469581498629236060370699732489615101096844675261502594072340950832242726618271577246425096581478935232917857038165962537277013857907463877481758194894162349815792514501648395322428320526184627893432599416570943324236357061808584505817159377576464267603509807156477989815481702977925158722215693535551770295368502088851215065535431165995648070591176158781640173837901037206223266896955881650748474499858099755352621180769797044753594189526452076462337091101542249985709235346982074087042413600996505547265999404033236706388592443253030811427927970295690624749138585098579344512575959920060955683204218075898284965280150545104645200836136895949685864224768655722237645928296561211305492528910062510843767262685298426531283185683547233618985667798580395812266303575771823641359939095629067249134836225332732894171730800226964912969861355292547742126981104198081514645926681802757393296293206931116901478870017473108265742424120405254187597642023577233631309006713466000197294589681274363058373188363029146087300288314999761324043697771089417569048374104188146297200560859051286747901976432772007985101514360177993148723552921180018434423659911196533321799091569362771792294990451174051405073547930685298500280583850912963612305260838079954056790313479517578604567949233227285054260648727699448968087003207058166772441142562309774171160213843487375858572402766942938879078330886381427061691282040291558725743604411932404092030823823495431245394266112136891253442834991595650856227865663213201428463968063695501441180622944566255717922197861917661624744671335591620650778669170420769965290498084744350138043451830832389246615602038112341676201743894764041196673346542799592707639152904397469435205272170971390108883517443038715511138610298260739617770040049191692123273138873765648313695982420484740372752597607909978288520087507140496520701487628560212082216846875890066748473672523489778052461258311077951596524673328857403154033285709885967938697245569917281862471058918789360122415078806463679670535592241297621977300401755979611393154272487993699437583208004657789749414833880657614182660031809520350347842114304472178641022499045789604446343474737878915726895284259930450335417370511601383294896586553129739800931046716576774806941290336844923094269021636019160670710399687442631704693310577098840571436539502157468516704472335498665549945739148739841487958118544393573986893473872366608936442527832255100642281006620183252287442174056701277377508942761521545052779324614690915393274410050682365571987519774220487337875251738511987182359124134281098120713730261841660641367759687160822172398503849668587872990455118039230905920801746896998391252291423032545831471845540623685695103643987662466321752247831340656993315443416546784242280886973762116407158814467347669197487789128764535851871154096283796087562525326254969924899727141174507246551029303567973900691216824003069857928615885761750368585238928474115863946678429184112476318365898858444412950371882286856918307132797809281055961775974772983457577766377095758551415393529683108311836574311749383900199246112750038639199629712823045451711241883220656146070323553782292143527316897591498455227273529284412829924580739100554390266236059097211801468946652356153129041529383054189351892162476408494379460024100816829834162395697172875327531414712298693337720801707094096754019150599228415232360265195297922050969119530370163776675426666611748973793250877388637853847391588783814084537489109162293215026013480914572228700121283723980817108391515069963496106128883372420324650217067109627874688103092228200665302157019449706286078776675093570114780305041681828092203854551637453135822700083588917561951116058806372114898138605823072738591643848784453380946786558290328737976990739062667519590717299754142731821195114898425211870264207821545151005259943352984952248176571974023547705144544942986659796923018661745216668622783011859339574973778843248603391970981618149569306710600334248922002945006039445754104740646011854508698335097349301403848330695702752965726184679735212652665175277971252765458666277426086952899974658758166409993993513283789306731018005857194748760940770914710363872217009147652704974749679223881720510202777711619820702673267290198961377716881362553924834456265641706311617139569155898702004308480135843976022486573562919442383520207066034295769595907510858359641628432298728686664786363554808180846174567513857675519402307440583921977484483576314074423781484375603813764885904921094524418469937459954291736549454114327984667080297933425696804538478795194647291757669910710938549750632922495204019859915043239565805418184101299799917103653114370426166098252356698584127042612590993927197814927581010725120973566500410598384636136486113345848029049226876438880301711029551999861842397738030987872003955889101697579726419513015863661032846351550163047459846040013667561700927957987958047720952608371705833604034581026664726542373952475216544649221872196144747152218453203070169976716359691971561681671385049363201653745287005805803943332046756295347232798055887067550304501006395299732402736811856045619088617576899181213440740119820026120291091650974365825728439169184740164873917698597134340001609741132514317178980802333771023768943391757439399980182946615226918677332111102951111785332805000592575232041198256127440867160893037057331787029746944649872795567311060312296367997083997967465194420142613778407862621847276343837215663286700559209878016403640029684231731276015840377029392206575509690094205496599438616206606880291749116879505056154336996653547238560281479238251549755798107516350105777112672679786656467566045538616554287533326705774430696886850780970261091205675900030208930098856958163096830671050259383562663108163273621550489860436991251294880831481100181430270869887505087708924262552056076020665193188225291069616503065552151236877146068337986625437797975352628697607501311738989405365938929093847557761676197926357581063260126088290402709321794746112293356367137947208876544998478666084861580740022784661515892171274710903605123305049574244481131022372211620773636900836410398795658330959623375889622856016288487221554345098778746316647719283993289245930265907752251191543085063067456213298108439885052726074807310937109488613175797747211577578499183690770716757961567496736505395077050004609032924346632466446575851327449873786686474960760333252990212719084460892571613238571876694556095055616222628172087578868712591002576646203992683924019833599840499628671810228672570159096269441089724277749396118716441382500711123740863977659245067508118201627055265568885447829261433799094458989689683068267839212300893557763718714057594635827312524505070914883376335539429983455218544529969881492865742307010336680153927848062233739452427382125493679128191579296495832302422711032156698668705616127829785336689435565954520670231211118893890822099416537892722982312033327079085588587401808901298248340455793943212780650263054480625638922163770565054295234221464847517499122602041992159932258447261158089209980224875522649953353672244219102834301774705292959859180807596240747141120773702973290224143352518143869265405084796314448027844773075289899300098915892383653473070403639791623732528791261733915749346030038918347838837230704052863661720598579979215256799833621406927021790460643277453814930006753856833568669645485876604732779642126265356456558932595720559408348526571508594335407655244968796623902835933840650425112644230523903142334309798464982568025718119142903860584552547180815751093613884080353947976056828095196077849590686341486986173504169957130522610726346720502458376773487086612154975295488646811669289662150663180435623611405499387065532802216898769024219202137143072943232924657748006980966789819748869965589369501050742534592371070740292426984126666670980574601869547535263195469303692005957074975943402096125806233315850287824530222264775242460078218181643508490862555171056998581985435263806633388244191017046569372215137292450628267789900168512361185158711002260684874582342261256313393034420020720929331779915709514227002644196690817453651393390494938456857903009200578207254158684941827490602898727310765922489272746248457650273210213418730023395338059036770359691077158858639933498721511701416549393910319228288154851427486493348917271907441351292529125038212485091588907178011305283064694656097463599072367589557205747498144479917569817658032382245597702868419525979220429298488041337990114682179376688533185634376943939281201191997728796021476391774152020641698387218239500213550117082283656875918408771232568178861197022508173991572675142700135426935597533309628547381730958356718639566163864805606910370132350446772042444573632381048530535288403312428936401980367746728113600089862964392453865759228381182701286234572025423458877640202395029796218640759554850053287125758875931501596342250964311725453999575774658171546370375874000467145940744934385320119862299952356247193944197647965181034962889460870491760238926247445818205747136826370302824473958108459010936757935878645192484601462538277514449931196964164671204124677004794633735332779200315854436371792501163680784786986088263201011458351967681964705919111723025584188676502628099207615439292091474429519780928942995415017594135517227037523126323683475619264153141806768162102710596755461764173447890762088852719890808281126477379812758146319884772313910308221122179209509794901841062782435630602541011248041529243109136120128872211222315630339382204343368324426373376373885877706104556538000834809890697121095494945436372196377950320850588068727540064840156859827430516100452427874529591403039580613764330779488542188479450287083352590679834714270277456786141443731434952860576945525309320817666982099051932528653010406423200886127028347530364485683256525428229015778567885092639387090833980081257101710541451647295129189289926489839519690598294410624209904039221365554499868663914535268821309917333877308877218866858221427081651479511819767108278356174713377382696405904848977031377749428020250915620716709581608651602353526693062338435889123067588136850160892500004028985494126246783211234474030589939446812621161122999425251791614870996475488245131770966432120540920792647362189771060922834070835544570474543259801385129828366074519014860612473052801117652138002617763593459334248756835021760710651766241599326746990308207126868977473972196508091441126408284942539671021421546103115022362394403183761704180822892779827754798017990890992744210474903652092626652070403084582246222089756559457455203712132195638820787834295228409360368586301740319918268207882083069604598968373685757603832217638351647927071275381211324617784206760311234320549004612156905178087022853384166758467910585612950611321568280772598676391942837928436885800760434081470614413502616440344583246393952996215129981989473985300609819210748234143946471246450003982251687012300497138072399415595592220747878257933819430031829295409364266016386037397266772029543685515735315710152690144577932271643881473111879823480361505904031812522222638769167598605636008008447098391116705324431722769726561415349198069944858881598673883204222290474209899407119243305952971404221964089109840641351735560106606155450938332263562178162996400252628707167882817651912062421617895300857530992000860740268484477504639438682576440299945319866916180274550822877991868128216766081238462923616682409706562293082981831559134325074689969763280239625742150715803345612107728530627421312580723388436754416683071079843151122634250912755166190943902733386660912557844112206699382385124053331738189623379545719139099299970948747569686738526906708389227855729517592347645138015430326985565649275811402952813491740137947002140413465466002672043293216503768119004446253644135364782879502418524156081778861550154054170404153544699867787786592656804052654314149179895297120119642424271263966437889231294800940150540946513582251613881478822140496024734260197183423205518720187355597688631732569436059447816740558894625157999576353304072192385898197528904108807685999339551149861516661213096668351088512808377237473387589648265085421715078763991328406212264227927625471779946814622836513352461720837556458447429604709341504354285757444859191744562499056913478157528691376967225900285188032585262210489776516929941144080680563800593016456875750630379937030360425678896976317031316349303341707163768466463264342541972740731406946599574568963392960413540526250160448478149095197342431439181291965409874474612452422836007490598805290105185057464170328242764897908140658130658160249702929928102390294858137917176040725376857369344138238596230443843844513508293868785181995581164703331878862519810490394224294066182944814268708025642927524983313099424826957342506218404971895144460137018001909000308155076628313100021686769607208977589134851468038438701384831340635312806940002048163640183724399901021194654131001393381250939514930299791265250142138661321949214183762881590240039480871656668279292163332683068662612093425021545912819678139816502550456139075772740281822850133508270085111448401880191863193537663752613105077165977427406259063203921519383079737514358298957399007798834150441153250676726721044847389250336436140497664649607758414054631362857000620419509478024687357023091093036537466078973403286882722327060712234756768949323343576044271364958456643143172372950329698566232852381797588954633953647341575701073803093165665985982825741328243126089698830385710831949907213177197491548978010192251703607149475317516588373725648175533792029013233872567784559433708804316849827863043825008740106308654419716888355088641237833078361339469628729636562761919563371523658235612101469289239938411446541771837244714809040989327899954045454489061488038427619800653620227995454349352425235706433347790736301286628866117283573572501120827393035841590075743305785304559996562596580544827285207980690320817562434115684250991223918315005213752541331561904468717946088030229994583491864615969584369983022567667853761309028254983004685758103853923525918755789610419720264772303373725640979185902412715912242804369867465079716605800766420158830690086512162130475679984613012464105300918140300608608918753478971274127280075277938318402748312479487986970921419902938495406321702237137223919780009636141926665576244790281613509937879430926897965976294092129035588590414388167502272616401383332952397349283966702178441899612117654045146581355647202924621050326575457688333100900928861125457183593904432711700900383194779717731473949756348655197836618011072632388516870167106459788975024484407946374161320437657316345291342030827826043715192059691163770544268389357440898772889980781486155077335999102542543907609442951422058438239192734205056937037132034089123329853885863624668779114576232003468875300558326045251606147706836212135389210027836704807201182238635555909370882627126829511543406932211284584001995192133796431812011061929248477233720384210491650136605020049571483681721371212635168408610538136768156231796637068798514371548675607650980814064234339684424571454063742860236996967066242885735924481206569183176940493784680292441679485158658729255359913518015146612679934499662392097585001087676718070955170717236998559342841515110808866809456477341004345192260077035347179906083194477213420333545410960399943350050727601049816702314178370031162888037643443447391726028976451248114543663790948526608951877853185816797260427902306242546694197826814312145735460390200001904933157086573549390124162849410673735169548808041515779898591392887780962567806038847326839905395911808076760451258815033740845115469897852299396008834330763814193710500273059274712088026600300365615551485485704802756836372147719906150736373037297248369423599864928951439203373717252896697492980280695230681881284735812278673875486564839040122368330564107918934786441302380572427885125874829439279062372428115944185472626056808323601925420281713408742461232821491444464116778182874271533145814363423451343475695778024701916547094082729259084374034618454376009134455558406638876296365017549201119227078647325061717970345234644934491298185717014814613794101680866697682333216749691400784497258867608074612339871559896595175621871329540798952715386626304332180994920025405650325167699999725377005300056511684033831059387453466636636760507787711289886441886275246552016457630297982340725768735389615697021174768921127450974952055176763790885886651324735912133306000609524224091435235079938769070396130321510542505656112729983375873772716681616521950778391910970062955280379064296382988454871330420514490232384114016460932766581643372006571545535269807397730391265879851394146948990944755849636520090769149227666801937651029087938296810395532983671660912255350554432914462436281972109800447106214421993306572736217542740986460145645276090545502062424042853887720519362614759653194197157410382467804562144033008422311835412013296606426000072188424845747857425679609581678039664604148489337334886003677917856864271975497607354843484880918650173331763248795794617107158166422650510132781564330885130663787642613542330486116361297977253482759722880836743217194632567038426357260284077319957003196910233347335356071412643606896518041903894275139775081751596466444184698653293866630801463883782774656508470881084771852354032875507941089382161553389992867008624049849524277074780668168879033755191589302699296293419569305542703333070921430230213201794555627256246869147092513368848509092815876953551419011923293511299465400475677557168857858382784484949459102471295538249118441408639721102871599359892577962193149329412600150887015674434712737680581036686008992151843294873644776480450680466798735109320428703914696027912120493660315789787418719244578540820179153914205076267778241917957644548220040681993427445747915305693527917606537825723862366226480282687420164733371034800709290189530367621829662738257699433537271262287911047596386851716592033223251190688012357727985735799744542299680940933041000534936830071971812534726836568454932508285452999828725401940208407895519231562587969836230798950701733769574217127457998759182909611070002522355094482839802539766673563553546767545405801695570679211923059316175169433666315032007260328295163668024256811637007213019779839286611124271787627723168872776496009803158046184496963787374588101394011986939516179086700296633877831171144831089365581000220914317238952614330816503820760133308229473469458088307211815524816963483667469552743993243354638864053446243689408800493775785022670299493608615648477976759698296770253604592051528794577650350236939938500241992960182297721514333078829012193910257857009189716660751097606019167083990738479063441683491341766458794066739137703405042880189867717151313234260549394252625935252721729824364766729742014709298005946770223518639097076087179422598438318917978252687336975207389272644098987287652389568658169002008817336733143180253272486922424246517016051576745475261330837583833425309048866059666015245299397757703241822356858300422132660976910076614615018950813651394949168168879074875837428628108265085812438087176451528888363727091441413089506798040023517383449303838174011209056456937420905341129382407105319694327135916404230377848851519502846141401460902686114665573249600665023483836722577939201746992930032705171088304567203867355277828771853266263268972666594419318163000413755232411637619994023615989077846836269274911722173178147430128214752519218943941443933981127152772873633562401592182974131092735687960416165801791264351145797020419785837903091759069603332771173658207245330320266822466578942510104604911844288771781430689205402764097032099023798235031327161940178855247851807464926850409320458280414563022180348116851763657116044260595376481829384245868914231914483169124956980912637565944676537336317522484185354920943217833946421321316497255068582513641263596343128397035480486335133636503769681349254957115085474040256204445488090567312165926896379211880425613512453039432777563743765217532631151922048095691972573350610567453728887101850492769396664355767696334845879700947645169754831942251456764009903145909364503887941644030657181807060169106656945739307846475325149694743881098100676253108970630948965939662357564590846537072220902289835294447716799929072474793795716101259527535485137580585419835165421851807325055273917927449641455262378751009606176975946308867935614574046717452748762705762437430241902403798997998155529705838959760266523661813966221238465259877114103294627112601013700275176218546547076809562162484091534150669732328637084846112061295126656067509033412983719654736246931890184506437359744658963545791135911304241491443583496920490510692998863454798630549922450632007976211300321776299569651481041186484478971539716199294953045714852908593243224555133941955241983178717102054520592156583231159034418924577650891218879505538806584971802377575324054284143534646283325202216059390382406101434799213571581318949041330673128168901513236627909366589744796891956827033887631940454381652194121803658443550441586883248601038327675071751309497417877955593823509102838299916474784065607445029063603096386436871830376908531281310742298682508725410970948787497968793410538370036680042968331566313521671485145679998108090687884151576153216815225947976955261093883845646124943347303119693574285241084760589044322239416151519674704618091104356761113435156610401173050827707265026754639697542597000399318625992932299826556390291875807620856904045423132822092162707245572925706833379792539609464729035247181586357927571256616137992420941733641700330375539102769585083290260399366428749644436559790161053614294240262675582002567570160778936700707288213212308041178493103239064988457979533267028387454622609325860627437719545537495311357089515963101987545288837495980302886062861585605917016464920278252285473856161145121056826430770463255976360503377098165476354822292726706291126769237994770512252017696020162786525454947695155973342665106932237731878747014261242598655499594804839555502251115191668366191075391730406583166609257239940067521250157641086317143463986205608916149404270387461276937435256126502419946218472889183188983542261173471145177649790783627726228206304964938120886690257158144984054021087798748541281913207384137597978586983930968618248989225182396802371526767793923675260426334210293836239238644631614754997630036340983150169721447563707634714850508353459295685120493575370965830119497833222089964291304787938499488926490134822135795857799867496389801153766668587876724164634302994710834579857092295431579129465582623837549103652672959600039150194054807115177033088821096666309492218344503337767859076218356952765461056115354153327163736479126533578875042541331964312647275121623120127824933251572297033978857907002580373549491771636778148107455503299206874361754350554441036190387018180723994888411962609672454033610525433235723512207297276076973634601011734012706498541799663504342944479201398972027244939343648166333711291318123547129301735558538853962764391700895883531678251961820320241273428072277345760494548268095185672265581580451464876422894014149510618200502561731618507695966570077199974264734197009803373391062540776143760355575265685374937076078832067671055513404204894426599793261953962940522426790245486459029330995752740878233394175420889930660544294948817744107366539613355400472666539792846411491426906291804815760109664424715706276417076890632275866845515088612798588195523360893432725805888492098457901000668902241040237484710183035502928856957464247316596909515558276497627807635225817533477764577962530120366065333117363058522328773639129728109768454670834496327256055134574467426175258841234288747594761595605727043514837324186022098002770851022380291782667440261500698074749642488485191154643002545347017463291760059825785772456136346515918148655510409263066786815502826619653996511980162436086904959492493103502791462305941773848000142084831874278939335606210234895411985097031064906331093561557274717890653055537028443562214203685175759501017129639671577192699399281044652118982964062763061569185137096744064610393180780432999601507181868890280466465722131913002674225843625493008538376212262924648619016182618272910009394816468486458057200907831912833864368846296468711306897403614489312606056382464559825382221210855777437868577894322018800477670663738061337797557074651102274379850710046581596102357629423648452229700600752270514869090278772979473376444108767156274999596485437751221622570019985137743914605238329442090356212613721548292136840510703015478688076446793938234882989986085713973488398761265069561369658913355707098209086558066071338133310443713976225354267627667609756677155129577108923226216682465187248972592814094709265025528672676032368383792167499714469499282769901980729889856721991924920327476497777431229072544635111601736825123608845949906880509263185936121176433659835200710830209771627911798996603781991893987139711314472273591031226304857788505330017660482904346465719794715852614966049667361841576370233975887356818807610834020045997430647971532360410695627057519533476342681055260020605723477978336830957656963705680770574504529932208752557892600802305624999247786448969136648835362258300602579711802224817933427788597172894314292180081408663079471527236936219360693442384947065562797457289157654845567485601208529003531974838631514679389846138518686341636699570102964965400187566587399444183259982084544155181810965065215480899623457603332861221099325930403958752676111188008899477551714069201746983434981702949085408803084377426762755323338569398651272619908524849782216419525092818981350784603177493590368843272423379534106022935269261266069110713662524518751038888887963796172925400811859161866802085652095723912439086479323392146689842327497262249076501451630090446305188359622041455015091588268795985551803939773303022327359720483474590541641855176089099185700761200435098818548403136171167606616686746559926865683916684100944809398064473342106415449272358829293259590618793143042486272134044368213709720607967106283048996167014140194358606777192634148379819440329088132392137488404187166561926099362158534381985821319921429676925179064962933660994449436368213983615817395923267759148252269249522250861914480737471267714679376421712432765164293353918833274745391628539159085935833999135513645175405056548434018837478411703084863526910419559712064774645517773311695340968504019147593079479187098166755212729195953323755046302275211832761202581635955823555915287080915348016248068323395189038552901425348655584461917632549496730264209794020495900416191697210806099378087058814934465691529887005269877734460747929470301487446009401333945976631444928517439548844343946420421452808766551236790232184587314831859483610021758020285056979215698658353115758783053999758745556377672284668222477838712379792305753200923214340566607720863692295778685980213761080360231705069407954804500209069485515156348542215875689761628133244498160158109295458576603081959506836794170775746114348175217042609816987024181951983840146544672466532936573745694580159050396823857810656257867976461182412440396632257948050043678617568445984362085224682347774103225860414990185363127411850772808300518544517160230270316921875157135677222687737691656642082781067813214468446302757610949203375035874752459125035337744256181016595333855783519614730162116033612599370677417964549788542586262027038248699762543314344602396976647327136773803368114800085450922802608529588862492436616925530846351389801954378974867929898777576806037561648496354363029421700520682917106916466645761715564581986791574176559345704564104835146944340489763653303820166660447268098596183344544573675994882028871516864546145728650725527025859921480724414950715306584729078219246397837276105890938424029273468834424657735094999460490275524248314550199227421259849336645489288393140481577808507001041976595040970874687293526318836898251585268590546647257729069963966089407661995758816446560444092088232068319806450933447812744007679552574943567480076793509907952558975055307469953589976491815531847309073134045991929642199003628850927773392286624027595980407820782029600904175594386186328351589430008830191954295591108563283731543835671827827827414173253220849935353147176748253984343636377511028077121136829635475822454277299934847162560164091364474183258007359492831132942861995990176053943977764060249621283668475853177805272917793824598390323473521231968408553327836847563996305824996430859749608785038841471851105619668111430143096248648993906198278813899422681721292669664664487041338304756863051890481930617186244688360706707236513316114229119232934650476360703397712332374786022293279186336175744481972953791536505780139020419082259353135960546867084462168981336697015506037728471141053598776845948031775404824497297070895771367242372629977538150463133167161881307620576164574741864320600951439789016005949861456811714283329436495829106088150163068682082085732951199413296255338009799528202351372866178554285943968646091056140614073316049794042081697843488457034397649216845946902389322291032294650283683956296899720096901720822782189103760477122104954191990256645122325831567468055024490380908349319604158844164170087849603597676531706268487740634851015828825981317275050855479302028782425928930527812432912375857828766858626152129988371496064406757721317578701167732496502130439370445073826122866128669140349209678710539509907935492210240987319598493602720703568659085363364127690857289336276470678034807574882868211170174737510538885512236449073742710857733745999932987886793324482631310956552369476366873370740911165393497798283173267755397325434616958641381292619149564638183283321464995558020093819416568326491834410942492810960596866924663487945505265962027724349738227837886013847096856599007409786963468450195156218856148955298637982695716369163515557792604872243571926352772528941101733975236341298635594069655893184842004742204877524468758689988247929161189643506274386187090925314824478355222878604868510112097507051924605948291503007760147557147731249158997499006346830588044216513642652963773048267045162654878703656062305959128479064733226137909728419398966212270703408858687134492754472236099904310019622126875770313435771302868101360807039580066474192355788770780312436503405432612161781777731588570637433964139437819081490521490637862552149318071637063716256861806514638180585039570825791199261036061983707692550259647461011265209104452532326608309018411730783327258947502851738451357502206357335358895921464061883779725178667318440695148893281154946351780145221956409288273557005535722152748538648151524613257968521454506490139380299282312952717621664418471948797580624238473779360923142255729905255208986569190627859573348212630916348896875315978828666213137863542533943738458552131507405312234412627070836242822601889783235280761805006459538426747371663921311367398878500218082473847434072665276700280037352063374493643409259645068871086465141171133730964352783515314123619627064761096962035241539737548693408458492982757275494026340068398386736129807416293330862617931633951307092601259450955605569713335558112498516366931542899406670151693897424484279431266611459322622271163720194617020104055436380155870624732968119486699425959312667167811727644548630411989979968650605286230589374804035192592005039942191131680623498020131584056009945591217920080441140803558971656046677957715487335816879801851519432553266074259697121753639612877252489567792736848884803406331639661591626549328139931181597866176399902991255920963654608708013569349220894862999217824882415924036375710789428071986808787533321735130176768383743740767913832025268998758681941674984733545651704331359432886832989825618038225810134332344475145724536638629051899936738683065380316759625501481255446202193879222502911611130562979432355108126821089505288432553301870280033222827006217823255681371450168922022687045224351878327455943399066873056479886377683760923966876675041067636473295078897750727182389537879766675584155343850439096667785648816814101659683831143976628576368996616915002664173089403722974145023700806741927203441527536445157815998796943832389691382200725893444588873671340185183770343752795523366774669308681776118287737124042521904263055097251214773378169912486017864842930821672955404105858189802619795118676310625449271048752216560610825885357078767294099566127127043398881263982366423792610956680709854312271791783786254339172758476702613803717851056549082845653344105020307617050565401676738289365860079139748988259262173490815057245352957334516492575384512366715971662033994759376132903309782426848298187787782928383512954933740685487246779427498650768244800706955861794674649667504674016891940857723631963952262619017914504961389748958224116785606315504159954972175100877963924666645550172465253975475282981168332094969669731727031369717399299010640745921888523724160837826303826961106830035739369623897625346537640503867958487846332929152932023707606669213610146878468954162047776170938307980565263091106707761686981865916580344123554867438223684262937036961247393112893092567191753315609759048488670905616401986584568557951018646506310984717778312889492929186088538334557219616207102686829921460694400194828178899968507435219333848562016868141358863880748795141517635781183264292038088111925744248644377377334224353758462290915848458494116988921844073747495092190208024203464207742310134588934594090923174461700611999959490658971255094797887592697431400039478524921256027938656977149794737658279070729852047329070639558224803284951636428264092637243374370652645134207411515234202591663613000646316756802423291810473822961041927250325274292307746881535239721038847600109913187414499883553037427763841868559667949937216883352584408242190492049508413465953800048809472893102465235752207252192001053944058976916280142234053548034120459533005086912207894804017222233878111375933926346847856268050209976764695110840619274978965986503977615415742224050827751614321805451124798516077113812013434452182253636467713251780344891960057778660557387106895737530553904698047588694569195163666862954659500074071128522486032037467098834822792711647109615623964042182439328391237321911306784205938331351219285873994574183205937486409843674220848034960710257089630251845012550592029469095718833785971497171390437441354526732908271525492887325711261365337703458850451683145926104901589302522746949853566899428816542797862212317737810749845385101103483798929934655199016486360604156208250688643263321490175224626792932299605815407491573973711079295837863507603602346413736757325254689825345086215239083000005088029143558226052787047782584306554841410061547036539425916676137222419483797179499392010653674304571610823012132483367567893784115990624466831460014629564244861681620815240371828682003887057746832020608323733806645323645740840224851145480518294976037851620679995283911182792638352474451226748259584681226646366158920733832037366455109327079056204090918084689914570606717497751287477194516919316810098017504538148752959906416643474889775860022146665585929141614735566668706008541495999183024380360614151001964744533895869613541727718330214305848537038312248209834510341806899943164867414188117331463071855251544040042331027321400670065076918120739529843415149435268998593430409688090374373416382487637556608958428924038631485122490749097846250310379347708477308286097756872223022658726399737960354212868946437705911714031185784221402198428728053196920626494861134985297900007771638329525721159677365797748992085465351251729242264534643167209557033518960771976135917038507394843120734630422806807656426291076472957774868016176583809447791448666938185399943469697346806057390002526828064603460886024284874248522723479672667444971962955844337928989456284867228364169567586296961883584261467501698517707430725602095038140092845772971812004084899253405808273877325533801644678876052402368318494996280668562590362825484258633135812412239812114162999524678170422005793403095598115348667218119132923199061469685960758997905595296664408283142815745065685191863911892127933011071418049559893148116717881627704048501380901809005126598519653419403915698229129180998879068547617548016253695877460565158339024392123274738058951122428663945843811527742844890364429231734810024206923599423937072806755454736917513956203444715781733125829270186786423699141692011054133036428155485153424276321638953176116887639219995973066590063172649161286641821459251539149349591585675343364719043115550930045356002899622212846127115279298415627101122210004458481585651260205915414115801072608533853333490373051637545180910856176703210745705962808348020490981761007756653579526662666382571703877496757534894485313087684392107019906715920776895390972177064509561840859283820338168334260959246354746566736308104354726002796329614364552209590357071182796166017495743205169689855344710908582231885301061144997490254021401370398091807316648042336708892675939747892086075632860784554353981092082806150427206794156950278070368250713431127204729558761532780798560272307331200176489769003799344679748736503506803223340994394615092040694011975939010727442134340444806338303066283674937204244248038284386454497161326380640021503974914658713392525827250624058664125781143312427467982670369209318133079803024323325024153959896277250185631223263832892611714287159541664704930095328822622987422773546304038792579791656312320096010036972517092794109150493513027088142935856412858552970828988958076864249239916130174496950735243775903893125107161174967978993537340970660163184551970739073211503838756264362762030938198377359233671190590573433506063415807023328380936841870320476517723978959399136352481666967850925810890283621358452550705381841652288076887289631006739426401975845271924163344694058362193467839351143792430529979746725009723573633790853355101051596044437869303874196495187294797521559459081302492768119262896661592101584148859808124723072078936671720733696168226334305096939301289642264372382268690602664906178033573315275813757175051512823828986270884099559334991981252615167620185954640382092885387100179847029710271927592740850608773267539577660360922645136809529324119502073118368118602709227660767083976292508803684551926679365598463494194976510097119049386073691589834551229424113630002400965990338769984415825941996630101342141196110888302939147731454607979186871737007153437500443020935758921983690548572402956901410111548623255552734216611588301479774116063821543328453049592417265530264477962568522525035773593207123573670729882600668859267354295798421493213475125448644410330066295109524452145092887230501076906633227809626272817981576237478154515257719076940354564923025678402066532042120760864978074250352160194864646313914340767416404121017547766213497259425400597359434884196477237500649734923870860094438446426281167770611422166905665937364813788681475755963658624051387110869145206590700595862891940431812558774399820902625028314953583956870361497961517490122316959422932252187319934952126524200086041432351788533744238248860381334476465053228060344384162179924526885921999289250371671411447645196292459876162587950369559109588704935269511627515337744315008666985279677098521494269178496465316118742922197237206131937158324943054541754706094529132142223659261703463255825818962567988274802762942997146622852217644235919292613822310745419743444825656173659299837293651368927230649604778935096629596140999042854000959840454599964371818559116754573368912900863513944006105800144070373351843637896579785910451207796367103855091343971247669772022802369070162216010770759539980540299685425370939826556971153536190520717374490143156262963494471693472912399402206475231481405717083885729551341421810148678864985030973389996253930589023031138257349917364748539991116773937893553617177896450965045188904365416756353530862350120569660578115979784011245280894493098619596855280613185998664249925715316210552996856651642425419146267533226416259047088920636060794324423566580367966864857873069264844625577860351995988415554922162585317496836654901478075351265504630488021455996657843459691520114299388448818627220088400895105914101988480928810984097192059296203967444781548198146947342394431782788881873647389261654032354596606454194000964101970726959908077781784084517908176536055709642665314205135392882274569453458931173335555935550819987045585759697670178177961963897706556256526522125656015126607213846297880018611754749991794532175350435868439933564854115880771077140628105624953594576600737255038004552660233197654092985328995255159343035751820346762755489402325089887195022581784506026763190808106814119931294261276899320745838726789575256986309048923438947638918343209344963157674836390305866323733511599655199116162887541285173357975801074546414898195979214872451418276288253577710174415058525002198205903505404027094148170021758099506778236096218335804028476409358852182509372779126691356249898559801120535912418222247731094345489884720524514279734442325886605041481865217503483382063172189022086727045751208809559143094851248629583792393899788484797272378552016673578240418669782081026502884943755957318854304321453934048878050650379072835895666831139666198597458706537691912318958360570888909071055268235413278272314847242220104380189871420950882385006872279822283687860339507335355197017935614384861008260160588401496035312736460853916847569316298521640398806349683836697609725965102704040649467660387594806586249239892166344880054227552859349359057645571172377111116912851692264726866176736520417061953215265549697068823757264693752700943813537396977827512833165554237911541906132313218540427510164284833260572159179120260078052085451493581752889355675930965616537216345420450119917027414267478563793601806151530367055115455731744868695888640565734864146390472284238982698544314731505838485577874735770311220649178777541561214935226951893976449871832093984909490174170975833540900975933301705814519443506213133197616918675924054055125232591086927364648773758726855393028189818880681253509395416672983698817175905775097614794744537511035959366597811487909315069507821959624819989237775431450685780987169464400512370740286529252105657712932819602101528161029649268887576196568721620916242733290334301298061599205902619485096524851879616080943479937968411302194489508216049206911489774631828970119983401917545672269247898044690540139618806834896189327755972440381432111067727173793780142867336042057502025784654972214250914754355578181103942750866106442712959819785312970955062364148282920828666739727008708318727083606211012306839898606507333873935052091641680394462442176565092915561484183383316003831154363357999126874134409442528000418830177666043058056683511528386784823387686742425851908308153281645065758507987160782834324792080826968702905725075115697844261342159711101470379861335323047239902708972418355474479752793622548766770903012696370375584208375676339340220726761139677056283155905329248857676009144852614647436992243966180732184058295213631737267977751504596198646642954997411596618092480729516746649971554133739067821442525346736411976167450332613227759246408291697480698737881001701975619175385268224880761087531720389373125580477151225570038749204323277428530859617681170343494528569412352175341657441533224021957750256609678900128394197865942432439862894690588852443520231027046323022989848541039322134261077007224038455325360679334404891302203194336287047772207560318637360403458694771780249956426281884905316045455196740377733259805904062403050504091906183895703582253825564046835949413998063599624741171438863609141119682321913852455718332417730290016201478983212794489297456820216942212590710676131147621032405204362350855305288565072792339046168961898632761392581789213577301353680008774915951807110997438831236987510245029550164267016949382749589993351051889644018964014793235330174067199862049437075959627177356412029308403322784599062568173098353462797629729060774572124384602526449000326055271851371807861445067568659363575116670259488446043850966312609507451755744281559719254187125943825751273837373558411839679882629713982141919230896930054973659325352167202079155539790598233080073204318143425283985876449888523455767088296773952218179953511393234995560469776616981642381796519130655266848239945203077808318233659122660391331713321693577688765625457275297057663641099646008705335026325881775271371377116901179563632541877793781808458684601748373845673833151046132018591872681087430123473516525883084812831238292626639458765993977233939534956065969822616695051475282276823358882454889987548366058616368715328043053852220366100242533382045282189105100346478794438761341316803108125767857948974842113923906450385283053834395468705415507463988984731526297073820812044887776653245782939619384779847414485817890005229089114221539327058945801474256317563071324584638232458292904416609293513584803782399948053741786223386389882703626304289000426815365073931581017923097421407296158474047042122006490939374089536985604920656084002049618894563946042929345127985543428664077542086865969108648817234490692920964226876634116922160068290254281811641464954639674267488183409337536418429809855603100303099302828891804303305199650826356210763551940796804589374383435961874807445266851997054009688193322276478791173902119063415548531119616577101454544226222279807780028387134508336707463240854394396949313356505464810633102206230824431591158372231091144150827787708335287282014559605324467649226202796681088448781774778351640654818309071200774121249794860213901307781060907495985183404866243646716925035186495555721002145967087033095620573369253558979268255834772232576986757668571435235355252816475165738290633145884294808589969597294021520586471475998009139388362851529065794190030203495907207907883003714712411517324725176069675478827268422606104558453310188281152661254469854852630223511900492341256439582314291961184669908511200944343732414031958279287029940322367302035468956324713643467072577006408455785131798055878834190408775517553785706576654694595548881310626276394292839901136496605829627059806449733336102982180181414339478771309464457359207091545950250086424265192920929253541100316577589369886896281931930048421644331350424160936785605596741191192443224572253998460711217204029890628349399822128059761518121513137107773028415772310029375513141969475767035563979290702247101912900235464086739454425685617513927572690938780109671571178993708663355389906719222293932753833844514739282810254774662412324043698266724059394809929850652273554758202376643861671992674454027096304366562444845276721336878683716987218915655779702298171679841239111701765317526052915429363913277377463830254616243686321657493256094613349694312088730108056292117509965696013981375848071108911534325643247652559761296034884894123183834851769751920242483499154913782284446856611756838009354532940375868037761600070578674510993499048986016700874007557759957303996904103710868321322362771195430078748993004730621063825182074827199199620258476477744715628434604504778224942359125413868413028738599980829147893821848648720365507805583962960388791000247177184073541158068071874136510776134960583136060514912860761553180018296110903568929524706902707229847213626778524710298888511724244109152654611558976399296164920522193888342091695539141167048116061168274850406234357565892095944393432817847078636928449970174096474497196670663332861739094551118862057245274216536883561551428458332420598829671254245413968210818235920881715568947362406724948957955195351705926374712207429817537272502965575494187059862385603572938197853899920476457587093364136570469591857987617811858144279403536729923266887743215182300148720955458325910721672222382200253784158540910239441992560025362429079120139208451193732275319615888422073442863777769409112794820010261508121577072679061641397103761506634918142266478955255039751317507758852811637967006348106154488035637038944568346144040041908897046767212094924847086642282199270357296841521285962336385983705189578998369834685575890166312019194799620603895801633878481628881765209117659150981073847351080283348831261713529045169804402650408786163399468153904060579541457769774737283055960692879631781176072134636753944675961924131740522344468036069135425040024161330727463747631646835174060878324655392304514667080933363029431054757153662768495631030320249884711650087192078040531538466153367791315688630446920982924376162366244604189776165185119170695265798433088405005884431736057671154911860813594026658958590445690192465926510901596610785747207841176841441205857723575816284333762405843035777402517276116656638750283574923554665764530303660395334567467509225693749165066830865353544714277918531703950908045667578143317974772694214350157365710323971582048447044031022579044747654293064622284865435012393202982992473757198424861284755604884292052854255795363570485287443259816218077675844218000139484958069801987294580200602481789372760805582873429234438866524300758135274497229259391556237608165250297431859605487509286449539559573323011063748205764957442157128381454355265702738681485157358288004277249867547085740657029657110340258475710454498165762724473652714513177664234533396845141768755371262386404510509220670215615353115198355981633265118547045083568001959790041016495134363453746770179814653105366352830226511408845320228321751302577639240414198199394639899741444005782096594360763682946353716468983187786946093666615694511517468541696647501829339036152579603580876863039042561680770419601042775768391970474006899090177906551210964188599338712212463618944816152022688417151236467258120368632338901028836103912418024400707838045076728606800534910518519257982660472743672058149628689535236278737759472982090321565291679795706653455858871715262257727992467814561150051735517233470612822081969150935816285824357136773743940120041457429791729926524916379644374997922210899717490327147024567136026335276910941923922940973813779359261514469301324465855405775672714189825635658089149402186278196865057175629073468793117984543605538232367910386299965340721693595463065890324919332256267052679238927195664614866026943624038275991298875539086113368997050159130347783279133874727784278974880396312163714890591421231649800616907985122871320305971751415455844176602693612785158992293024373359270677249894607266358618071353559248364792045539793284334583707224687771694633265190764827301565257944793491341685755142659418371511942339156953282118698501075589068365818968158940200781656366181374831099491908790046399877962588377773644991124261643201745955253953524326349955009824065611513848716174214474910410066120033149004467222500771833469472188212344733851326797222318281053916646602871497392190651169041438229169781130884426247957517058306362594340743900742665745043678165610661175724268085393225484693032088060856756759436135989463718675698452682069841630381904386061370431693468039455224389993993075853314485576179971189751648876593746212396666000016003011147404223787333282040988660762609233089652267727415777465495952185670659043736873268711630030972033370790753461865346623144469085337443769096813449801590826164941802188817111693150756930017455175725355864735265992805697774432207529818172911751929081975605892835937318977342071471281124434941093611269686490325186787312080255688557802043567152214502602767059423452956513631882579855672628110577298036644087918651800691542548912020154795532011330125203842267421659001895198193627769315599832451231265092821047364399426230685664374926297893402570070503704299494423280744446656972479364893218465884251665484115219007645031431549353879664787169725248961156293191295636821312008161448588317886388013902285403757064212219249127122280956649968403699745818728685928616061449864164853430641528875146477975824238764248569407394095328801575566511639923374883815762611490634039555779687314141188316077324882094200575236762822610836670153421310174546110502256666570188818415936362268371855079416799312540106836279143790032578337064663769172948576228563966743747854587221330872045347952721017991122443343717381940310405201317540884016862555540582636059815370796368839675199324955266189797185526315647003870613834985970042705647191046695941338588294637891959329954336252094411204845808566150713827032892699570857744784528799961391594318495682647884718186247553767018270994679501443321386436759182360604056538902125915466079943587533096934716630504332874281678402297577903911279874155945372889067521585430556804182346226793424835145123399281013307918424821121234801749493262679390787616229648987355043822136582897710923817375733700706967673615440645341793983583451225168688225714132684392049906810675527456900795806751487182873325631203714828085584524388603711690849713245391448696798742905911409427916900449224517264000128471988822842992852587877969253302928964420808972197050685489377349083818005622613587271372707389387463589906710001083508432631340554525397554956103070392556587615044353791550068544107615749635281781398866385027921470829812433031414158853063912644651218575919598972986407518564657625172948821402379587353796227083199431310784779045109753600506087189217927785745807271660417212018411000036173595142585972019086036267475945834007745391996285830528162236209437518946482532499349485156257627533387379407255153707197975823951077157505130223825218843155289446440566568781479974104754186726747467038749939448135967317910352106589678208837101205795780459017375635212510068659610555642292545658161171606967778644458533611142608849443935321513950219784911267563199101798644033550338525168030237405173557376097594782298078901078328144655206349686367103852133450865959284721237272164551190536697785236788470426277189973977840881915014418287153931760242519142844740440054207042589560706295738024236231257650214334506923142168073630333668923848344971381925232022797192654402721595677877277622039401616319295918723308322350988798583677087340436396488067334102589552725624608038838611350920280477874416749017805700660585112368116636558672088485689267985472263596056468748608736241832806018674447447183144585702353722422322769230809029225789397760191231519353512426370946377592804786790134467012549324639625975685384958012534664027034791116763111118657937926883551492870998317911622161241186991089196281843180040658115979567314727049817413025401491261647795681351517377433302546290002256712168671578015627474360796623826362274012494109651577735193791978177365134738747780700905666495282852601688567548589052835289771481842573964902663745233801389906436362216398198934586967752498833893833778141882506318214605221188262371289277805356291287203470584981431718814459951299897032430358736667830228530214572733200802032616957545716623321016987243683018088713645935398867384967615668623097467066743096350894411727776107675503579341103659784308476026169989488413510666081249452617338250527067211321423608272548615472077136896974447993776599483279051645403277607452688454704214433867089881691444110711954937508430265018417255807180588430922984238181128545074954493722501642865616496348867974063592245064079510859692694383107761344680887355968192149151900505772402013469650330475789038269807016611316489847055523209107691023221086862696211607881419813933544827838157428943301669629637766739506634513855125939326605117957692141344418466802127422891624175513411225067050339709790891622328346769504999534214662479638268158194123515351595576845244296336822865085225373576219353136111815296746610025518309607269355543849064434827604746074891130722619120074899116828011230401536045684602424941204284070559451107421042387298200564982046101194729371478721948690891101586878289947983716642586946194888708100988276300273044489318104876199184741703915297221959472145816900472249792610563509230774219066012563531805265518029461741889337731011550000855346738760917417361041534042073032979786973729238930305430522332311782227017267969046346971711131617532865335410209515099229494301018885347820226703399011539798328914680786018078453866807903395336712478231539901684406961201650829110740890703674239484407245090914844718917768478202731487620826567957286751156821434244310477967476987387329076220211975609180526983582136131272470563128629075410362490519698703691158755016911427076692243572534619794607442818833595033407509905129650925066924000066364788902657911850239785221390038264543812741100437624319817834722816224387376911818314463805934660027301741958414341031641102390872400103576901011939036107246023297935296564953380422086300384217328193700383003300689525217554499050582736203413188551394765899536230942428154986481895524114588661646803852985361027063424495587498338506314277251280026311733608727730816706365448847507520438568739243900105631621346918752550377778166743214681011896623492565108919289822250290404071588750565539844594565853950443663402329156270240551903400344761678876994072954394688123220917838971580854746825105701440188276622245020666696712919080654212043041590307885978460572851436672621917545344793012022929213365974880467102326003904585683622301323718497138158251543378038424118105963589033903481009762717112682168031662258330915000986030554889871818183115979606715392181743359367620133854994191033384826663029855991179073619727653467023698713475282931303995903604185902547685417432791240205432548105855418700508090244290523307176105670815362655353770542523611711237085146909546381608629346225870586949410032947505913469151083389832041463632830348445188335366579184086699534776834486835525941956050055276431184785591928319742953089766716685348914741933048468651845866478217221795343576065616621750741848175065048388956768454441862168179201039468095169820669679705919697847456055950049916143457035718459682832697365060102242900197466298118304621220804145484074148642833889529549356412027696126118809373753465931069648702304003561344500096551942079887547783306697508040620144088835022193928697670534154795788680643414758666254638361807256463198918632619967905372195864805539451369632782990686729716583120164941761104854765143601236677034651046122137041861353322593950419695528358028713860471248405629972236890787543054592660231180520734155688092864918956815637224220883040694207251162441625684212586981139132018203948048748297014105850503375505025961255352568339293314901174505653514360956881709382906566662710315011748029528473732610891233003795032735430729138476018659508026339115520658358815936486240621681690703664746659073055931875609640198100435260693311410657536278343107755430216974157273623634026504653275922258602706540100956395465321807263933935970295960466293423620694981316938067943949898888330149903370594823529475404130571987140757286941324714322495212460760488137881576803065409698881252313186665973989939758317544480970989134626392917868446288244533023222930459415859216522214399615582979788321854975495129286013440601240472792905540777725594950870092845320963980001696421519223365601094231885846285958022518758248457167247913502359191572963361401470164363383910093085682001225879490379755585570529547382515482371331722739600607283377680617725258862649377194800540394701551784796954467710923014335867626060008298678579528554858904841012620628847762041283726951283605121324473829543252131872796932425691379032102168220988960331855755963154086374281503435048046541758524229728968360718840506336140117926600849010956033576397757989468577957863457869312448016264984243186501269511775030841207119350903327539656423752323490590766345614800331247754197764719591588560024946757198572479481043327706544030794473837273006680661723535729728511866523154363785781416012891000750884070731055027579624004641463342009640784409370586820184998180362805051891731734301518443538504482201212206477878080730821172682170811224931992287151077773737270213227769840855617379040131345695740804123964508688638712398617190428951446501126068966829812030114217206571413238010212831035456011333956022012506412949143950774707707057258120309629874398617103797533859535468338009797307936678353550428202736743738791126819116356871182683064158179361985185895515604475414101351996432289190121618530154209875925128093479219563140779564411850446464227909276795034140705726705445127127357484895351997055111248428585938808158702808377019995548563606685896254311938179531446547610034324200699987183114809276911168326607237811800557070336005974429805135161192469283280320122243139628921233856132704150339259018119966566488704094999814960008229665264078731239982926705061794294754921680130608892196795910617722492901811763034487742815764361004726564975164805773154705377097102918639054546103067307300795027964513323303925999230522752581594615765714292104522929391267184069888252406091353151959748760717553244543348294307713459049581188033634965893883646299333845372408269922033768255207325271601614453977527062606447703572177732667845093160071115181836364160288589162720847624320900284486653165674026098755066410098278945579773214017389417259813920058133013532385003897815774929771092510645056696358027233056938256425047832760639014345847682979490454835605573824935545954517810682515878004747110367685701232435050385953161838765797763132643602155548208430085987487028245510050740452081956181766208381053038897190020257797657492549833734188999197317666523113390644929184415748220254242064157740130542537569412684482222919036419955924323432554108101709859186060756536167422180738153524786830994587045204543686578433413910055712490659903023284504072284656763468298143683482259396888217124688466595819003828198072451026641138926100431035894841215458061027675473314927948760907526076537265789114820513687867806600600502595751314747757770892379705447597040053676371546204768223303381989185297099970259639664363704709716725724046942299906209187652703710820340088852013334088379954546375077695528218632444540556065929618414140641292070099215067099555940401526599073465706482011489940119695866101361511706927256178433306349740780222223039579837623042224016695363491890762485485420660177232918635753372393150116543571064584083113423540934989288110988522271917800935279509869750595990291996085841004439899960176451446049280655222417134250827999567891763509244661630975260457649743425164919303688554022533348933477642152350783920746141282811229643688029710027327685060169116974536515549818538340329039342473688381762333766681614510026939295169228299371074867955305031259251503990128728875489001390325391800557098629973921740059312260845094762873222079787329980556553598064611386220920530875601517976813115258775121236622401488004345075370921780956162201442198088732407337557230270787676470131014346998577631362260648408799242614062473187307115278059649188361055779369761135988720533497934645779727170548301371814251917118566609940517562238610440712241000346945318306196924304552646281316797478358809941695126233622451223327080468841749428479348695128940388688143624845428373626821800026648381281341756068380012169912769482007190430074277525435617983199145615054747580747946345938157995755089997272415406691441415128131480491186410439038462150497836603961008401883935006459202577809695436043146982998547386212302017189069934883378383277358364094225272982320249316135374565226128061634725786478258777751984524596846146934084990847076974394895994774136925219417536680852590921702444600713344934643116799986111669700544151442204301028391321123115581004531372680328149735086659737004879221967110140506818215710142378017780138939870407492089727372554891893779918043576154113644180600389729105020071954968386513373154673996873974375196381563732442276574480272001650276741687756920273616101297824224789994371096121902999934402401067590265085027015778816965752232547092837479335031016252103436525595467644798580520986399435307785315897684626130860827652987712205029949397882179565241936611652013922746628605292567769386959505015495855231739611279752706119669850238454753067935168541103690594037490485343574340908806022132823859398075823859766025207638409150721914667071613661437277859706655966821622869298372362759704254206681522013651474927750359762286147451235116663925620970129361850670664574252176009809623072674160266437018240534245157947409091762680883589331934026290102191634398504410617852803141751879482020813673805410165759401561628311764144212427857632143412598175035941115426387116796371085682405426344811996588377177007110981807555106937108623919923027014062730652728391682249571473294017194109231823272828987635008871715463805799018641790557487279558018776335564290091721734305428750903534948860636446861532778633737981694458106137183563065172762661267609651200440039203160001767515465935642064393291323567864692086239060101541063067713414128439491807743802872605478256297488320429072062213619212379622595948738555198530100247221622732418339090132444926756410364021994751521084664758513651779248507014383762634621038910924170967248337040671023104407470943300529710288090791841711366857528827689078665167809486387919739622392995761100641124304553600719018432893359314466352494940345531370338256560677051009689610587916337878294802270259334945126979970643537682465790666015179080663422178634527477330991838686235916678541246202782345696057704642706532001061801002588730457914305667320375552179713224366989976321269611482885442936554324634145924366808683419698883900297607588779029411115398942327283370859682019843940459442495036198066420938149227586692069040387284205207039085666679195305552708555907639438055598090198039041211729877864604002715548511947998788588791255893581123829877271321393199991174559651668157435898761486259542078289532335817232237446910438972958470495932929520978523245416258267049783300777271534177732314404637197623316071910121482073095753561656104066812329562154010867163389528586668094791145392257866564213159273894675786682804577087395461522114889604465525185597883512472938957931048882265642886587359235478171129681376273821036597312941539191767533296883880398597079327831370883355018339409230886093309536242036685033061741474320556241886523621865484453248205198281669933651241226840690557953265201326868929385872961829809540110774053906018142307301149335897038095879138000253456593775756329455022229798542135616907019853101989448811013218934829759060522224143085102165771714130472946973967493193213304747247219851099592960320438396879427130361024598815057716640760849697520527254515514305258769613416333612265569969637102105688593902224067639268848151521870167717411614209350500350714913041588496976849907230229400002168829751149556186679012827202434421219089342230361966323273107284535181003035130720622150277590765778809280795301535363327952954306177738175489239228245426394833457447539789581635193272966212998313686445829094655922503495833636632178418787495953628014860061052804202142493136501917271531800786194238485657966058955692309989148018281633575441242484106113701553890738142662501080090015715564794711334266321383394733409179685398577126426911999347762553885416111642231881733645177882242357338121319957242597204441664720206366956866502339100838824439505332269645655087409665056600216405337094912468060708194128548528858902951828230013008302065087633660337121635519422083650770677901862418301821543213190061634753427798698472966494208157374837297683744569078481166988232419232528243535997512101014112198477910611113322756380512755270653381046740323595457811430142466791306813747497556560143509132228495509406279365401259689216445928717113902000549162157601976415258407660894495606035942891271104686801164231441722910706978851617402370702456407025239119254811669004815070934021551896215590181427045326689586062511720501573533287308142547631946740073841002111927233968175447947521483154690904318708900328730718410897106526190427728846098341078972739231882061215784027736334551751370689132287126305560027812452751002329009227978514503136691586819386203262531592238200711593030679452242652802769359659657342607254650958040682894305440655634568231549276768039277886492491858768640459509875867955435303756622739545010787929014149834965671708701453600180050208883440994675898919362026257657342372549716090843362918016204618477627244546831880716297319458741950949125889398536348610189549321776950590098095351722632902469578007526235042830727882922519088714839246987455812294028511282184179767792705078378035247849183136231301790707752262104913940910764933375226506710448249322014876400863561867738203083776605829836215753695156863763852768770390860322561346630489126241653153586123887220162208144044503400402545917564469479837220514126176694318948901073151615252221253743534257786214994493710248937502783470771162770206118833050981971433201898986808989828050870865757701092758979580264066725640368695898275950381778292226290066638481182222269477249170118936032611308414277302283183445572124739728588505194305600438242579132078131618939902992840784973549417857560517745340687758027727195963343453663922743534810023611789767999382469149988630165795091909135793589931620459967630579060320031539792369303500246937380719320159248190834142833258020003496492118935682300193115888614126733938989682547496911692529206843423377270410524020919202103922578629795231493330931254838708515736970864894576476455108972777191961458277016315970158215354934301512959165879096226945448132093779697698647962997393815447534928554684383137773028545905084794927689300002491722687253301092988347073277274826799555344091812383691074296488266239197838678920441747714082717332777075502713409028586980157167733658382174573274561249399335282416106592982554019896337934063857471102193613554691197365804977312483149154459135143869357587859293457871943791501673219215503745163604174615784081627032754617651343056772882416651547447804270595782001853766837843646107345501006777186700705134926844512481228324865398336651723374777152770691044514171342977811361406818394839852545552502074273315735445364845715220388071267588716326327748087116591340866004825763238623174854663887778650833970990265226832296926324935926721097457606047141822574087308173112361778868807489396609417707233031797612267504067158040225311735834048400400674218841897468991316932646128548069127320746917814805244454984866811338250433828033757949036443907153213824881032851755975873815609197319231748864828075410969750183924904744671321958889738892181157294500645786030757608258764027396416545931202788410039570004781330703050502515488150064264991869902320979245310161633322873989448619802374415283113585054622624401109090758022097459842531840008148694389129746087629935363390351367358007001325786549951177140776105264503496907224168216805427518488449479255508294121241415314985272108158152919423931906676703428644002603247615914842766467222382662844904784779641339473404022771527835873788399442660882080216430164258067461136937063592249087615382950000228017994380337267943020580843456326563393809427116457036521621251250177522300535313674697329371792949171337940895542845164297405503122497093395401142429454660644378131709011819983732087790920197580382329418238830010192407523656665789167004937548430675278758893314807449804788715419584077237487224336260948625095933157516352821197425971332920890433901160135007715936669690816247268107471512615017334819801271351809568878617904143311051096364591276202758069649250420469774940212193168692016725313670963139476321793468853572910384484959331210538685023423739105583209868887712401822289649638437316296408082714161892105014695204267210389327708841808467535247547615956177148947659138237711560231899596948661564448627376872221422205326397532298552777069785274342732738894894207579155325322846620801719609055395792170073032403718978739072585195752118479732557556564018124797251344426926761634484824251502216930468036341613683319783770575777488790114449348238331484614326674932996538926086799331641481668036094519726609900614825915385489212466286757621763129159672368408557642332164845337841781051475652014785363022361019738801016269776990924737119170537934307730725208076372039911989593950443466099856723452730406205048490469545025670731694279294236297052937931479655332067899647429933179062528773471285011191007568619606078847909924325904897040033449982456703447775682821698590694522669662737079122814384355556461894750057202031783752319614878795981324150521094185100253115662207251829054069988312778864869969833365955050068092448462225152544097141143391715432600409628224708855933392398635315068162994642100650745753774263220474721797887586075165819424414410126457075139013041237014402383809527137350556099052558345742483790023230944105490781286086583606887311072214041203281794834343987936614121286471446777269456434893527529330274928409069101850070310026803664480259470036822610769588339671019416722568628687741537921517520772013276351572238646240691331261661376308608458261840766502309322027894516344055286316513748108154038770803562403616087897660651801413296782726471915159643438865645133242104424842721396709771502508082574264356415225771939343843967500422634769463758742304685679674758463116054248221030139578543453113106993494639858084137956573157815937913559040562767255513975997896248521987353394476002323106302569383156293474432395692945346901496497963156099983314782052744372790981390310097574340717214812860396064762598600823990679278808912647922831829679326586753353197446357625777121505105698698932167605413599080342486921524879791332320367747683653138498756713614695620752775988206829286870213333900275074248302860298595390456169262364520288825574743401489283768829270397435403933368358256040206485732955346229933913167385600818788285202434788015610860572643035704643651778871480211071866938310214912626004991882355718510695104401023546039344358033227341953054722864640098438612830925049002559862067147710754757642560375773633580582402323571480007074164899650939229065381834306642113966361950318734473860754469683920393705032575545012991385291436948674155759917267226020190431981979936196710740286564811742928121015675720100083228102839842039274914463573647960796178476469651029347813556319777017561102092758434128458561160216367711433809466704649332418707052159255727403251085599424932787386127381567754291016054617210267630305662107179405325223494274195447409527839645433959970826730240797380196878046467444440707222884711206392429910326138129987470841931300026221577880369830296935222584952750987768903484007186661141140748160616309746268601382293877147646769121193031560684643909030123412230196106817463320149815323408651960824766376695992349505815791586389845274385196089809131563638104434513856353147773796899228552916662042809955036674109028682896175992591166663451512016427744056921205507696881315187329218492967885830612953857933850472845821278223101092578824130202100467841875708209889166638174408345583101133578662182987700344487424034375439078571338983651919304448466501501354158373767330420012710816177374901888103163963787242653575870716741847626945917994848528303566583581315328216659862494817358950193370116306727876067742661470299476693129763258856130911489634084413395062497124163668040686911364353418157551344963840071996877218865020796308901543075794138182147057168967580292212818842923186040048485538918294341333661469482679550066355035879866698935579560744106332208170135007470225236800439888987870642960480390026317217277568920660738612410066589217332744277611632584048180642870784856197648314301468355060817164846560964159374912481305826962924595541235727934345228703268276363075748447059465265716116236092064099159618220367343975826173033978741946615672258984258531721776843427290799008781284569496182339167631476814967588719191637919644973783078989876077699844385072812332715426304833954509112879519625256848844147353366772215674742395663456435759971811155768643236864704989853692234542302885081172294111804508494656832550776475336536741567568564259446848365257795895346978180370524873580985344216647162866135263691007783657588194348486774803342065458527942671029006811391191432292611411463324533915149762706752947239008452530905336355481519609453924159912550925975941168051019000577091794246492508687665672080116894182677796479937340483451441445778606978370392786198081686233049257923763400634372525120273351124100312696150356867507488576908202727942820178630168373569709070696848297026261838235509122143610119825509708122983300718391922716392530161137271486524638935823575382890593415355627832128001369153213417353017229497375228096237545121318206144542019377647411238239548275707268143491218828406707351878547704826853191379436250142047976415051071437471165638940884849471120365782953363483523355210781424122585932456847350794269283741461756535128467900391457069502709257116015990546448790662397009567632564976118597134825402059596371367923647484377988731277747531924827688016817622806687754497446297262334053155230747525528705470760573618856343323431731080932075052578438086657775704594454227810675370627541882066435251749954051895699444454204870609863138094281062041568056527378119938050209157748320824667943340785831430936902447365500678377304336960816165834115598555552089354139991647402607699508217198562756154892154912666724392478932027102893506061575308556722487926188742492052903059005266443886634302642662711849951128916273926194950762730563915757599396646800109632514636998932558537865658884047306662782318284519291681765062988332010640456887944770901671398225152505223556191198369486963703946462604361389680625206122155745414926650704388808157802063632940138366294173681344700960908247404675804118750188539537313775565844986689390252333942102672949422895968510395641812397863362171586018164224423213675709891931966864913914241747115071787883788675296121469259916094239235132215616697677029594465133596067209711954686619675927362865799980908905678141251787855523522470719563143233672160006374473802070909551861960545182802753584293659469352217191078636061551144296469702098453159264652566441488587189097956444778964585654473841519960015808124105852393550361701974002770368179994676450341715845533102555362492409054800836965700406765089202554042575598441344463174798905360394762084847379051309230281965415450851497297784456669318181378748333383298917419038851465136670101081592696007960342588850997244710750303394032397415461748771073571260305621924440179854360763990631959046816788308887899430319944446342485892429354159900334508777591842572662187466103077815958648420865106962826255364378918154183831959458519816347792098517025393334548361056430715801026312225427971540429451883297018600620882101594806473242105532428346803892992472785605977360677098671427379511001950141892761228803038118345681462490260604118001935350975270108426810866899071499708634337882954050648119520352956180706966741543640900136634321589179386971702621989423065329202715665174390182798126491892128799460435412684963228227972304808738527146086460082772062540714456274118009535360364552026089473126115227918029377748357710213486627347823475376419861843306399880803822926377014771315310194705801106891053703358148372339807219264308202616698335724135810207777099273512455986430903988122202151386175685753126451003902444627106672487104807831039943795707716641753025244128869172519067864212214599670016539868980604715200703686022939609763080571238277943743937567722127894140498576721433225647879935880887227782807282591784963522279887364120975930640228310869623274875669068278113466931642588293906623138795891986250254339478063431049660471386557443107706875298920984867273167062953562066980676520269875720909441851077327959889737162029526462037847920552877369377481903654968752150643644107963336955819196474605493102366880535998207611450663804854737959254265197154954778122573177613480713998837394516975117352118677802988771514333295722119342920741894255720680091244027433176587086341235491048730611134416322552694996557144370535028883560148523955538456300637021225481231443625886979811926705698223678602477544078919070435401701710720436553604508816851708711009902161723851923807423029186975217966101401953387673293929232170452811039648878193133096490323424379839744025152847840046320593247933632857283891503392474781915667261192416407420885026071530322256159765576191453025972028120456552947310788578828377066281255941599840381578581854721974214659488306355216430197208174178906412586738977866203354375941605708796962029311558986382919212994391853295673690011929055562345228305792198685667245998804353265504057683651970197288701747480853126964215890900296634689244728102506341660011148052550877756763392552790731515750782324198831975903613202021666502794714858743705594189644334634326715432987244873251039245586226629168278342932395363768638273583057670751728048738960089032270693172989060577050209841328892080321690675600618803044748907272062976059873212773864658221415926570458535921033154837300205557379680369787570443287872553942325394500307602407159887017681193933132319176753635423610588703806110190312599945241107870218225486511414611335399461657813243996870149126930656458297227987121603078822605920318095899292541007640990881944127446340007031585210100285000703006285027420794547007110309133680862408307038688283123974424844848135623468929824722057529583974488459613884053286172640299560948062408464897317550349372911356851363442863049085563789895757987541785271565717105642403748333823271638591870294865256502172092633462224418622921723364130238283142776457356571228107118483087200309252631820744661421921220032816437357569054017057310742506181131258318287829944556873007909969045721067569535360338432505610796288968876899389777988545193584665155654072181162574172936176760378967559177483119823682448400471049672398902823028608479749172261756456670141707693303875165682112818121444554268840311704262650140206178799229282218564509798808812937457313155826671184368279503298165562537490169398265328932857004895015256399047308992161351520092777530064393477642780633466336134838023957148136527123272265955487368852967466417387704610468009792828763234733333400377943872468184337342959707646017545597224435439134298883511681386154879772648177833855000673426901052311463331003263342708867807911048312966898641875274110986457542681840246482707373313169769353023412982645900706088421238344162085904990813838694184370011944118086857067009055542068526379782703000576837043894366864497343366566483709260180187754262908165887633588958384081014057378533929020637372223625705457564286277413458711799470180830715282478537487686456249060547106659480446946837400038165724156915149750614867932781718768492003933591126312186841517093020231381666183665640581321273014339268905504209352902298401113867541747279697742910472270071845294835401388078933990995703834050376213946746994564665930160384955773006646514596591576606424421876850083611721169673951506187740475312521376757628448490570537510434918026188360599037942201615632878024511468324046362303196429112092701590359017378146885422152094296035838448091615791286168305770275175516627186751768057715045864557426662486625541895819112263846616543382816495642737329800908824042138531642248391690987322937320414893398716199635214922122339042808419533765385849529954279486009057056369617809011142499226228418630075542702782494551133220940073169995639597572680464648701936595142471862224804210808307138757480878658956726946727052154234831988027263913309015848821133963343389431254544021522824691570605778016496643155245400451355615971025911619331329454111824558811718489279863936882604102224976189033383359534287784533181404861221539694151407775286817418260494482108364445291841921730348143713971637747405384358665817988551768742269096480038958367148596639459241251942379182104628698662713874835260039486691354473497888304015888114905253797253640369750871111218239041521041661924682642945799730465820407312164332871504566352774344634508271058101345478442297039409726759721305814384585836477632214243845255899126181110278591695671013648420902583790349257041517600952986355420331952327374424040936818494379634870357011077901299065287369370901352152327529767813354000850341271858391369187982819526325014555533952615405111574271669385113513577294988704349329592222494549484605620146394553252177169597821387720808398497996780331738259707304501088784300238108744856598832083398447769841793470820935389610258318214997300256583715948989802686325741737636801703955746677686346362705298586668054245369370733143566001192034666556770780019705498500961557904284970786745883733537481085239112625961668754920380427625684135003508223939201642633231379101867763797472857408076852196064753139402088783196208137148117222901423913125554517319618453436519914862677521805290738068384667687336644770848055394095038733680740541866157571064232713846521322885817416420218970847207402181444280453014881120206139737142456840445607775988136107185666902737083743734502925709448328529229772060110983702863785221252213813129137930189337332229572783280190954092465943738392560181067311111835514635113554799975628167614300869073855369266375656312497209817101317454259996845075790644950880654372575749651131562022272652387452326801784784888431689020772751732172465452053776358470898033310099854363149427044288968296632797456668522274543341246482739279106629126683665702763376228271662801841309723749910560126003548556077077323941064476042827093910422901595417421469888122212527011978933523082447545615091937389989884265663537035141495251958692525211576370018471992614376095422700566924431597407533567111864956891278350861522983694380110919020437665736696127500938226312872227238235085358221762318780566780282371406698177079503043469028044232130882363424428691991756347422763662977806283500952161087632636951254596530774908274734299087273030763446636469247046634530689539933766754079789516496856166486432171482228837391250497929700360311573865794337780930202639822721631190272634153566829726998345595548342016550782816583477846871385802898450740424415511789817647069463756618000300972773657274958087718816864125970418462612008595953832368805699041323316594879601175570334538574492006147472241832935509123883724668027844001973743974700579833302666841801745838176629158153874284093621383520619295892641317469432073707881779696545236191406460986657934324268383389158088506660557132273377989580841753209722465325981784474032198260932292172556242319737422828375695775535935029026578095842654475677781933788237526600346360483985040194400483039141186618249454898937356056471363743091464535846230219711401966751573734743741461578279976975254312448620931221810764075437801849668489731257286363530243576755902476727923288021254280151350612201584149881282267915801429071018190919502733116537214578241508885669457343422776981321798508019420839880679261556582157600410513723160942893393739018683397453262846656207364705584216257198915488643950722272873563080971295064585354907435792406433144468122924692870388082617408060362983575644529047410116682167801017468020390351468848211920853477747235288161835776361413652410166244164216170249527371500310716450943688939437106548170073810336159759464381621426940287428737494299662947626531626596034753043313076343191364344696429057687488773588679300591615273779496279159122086609853715625646131831439008266086702600303663124389635623571346483037059688014281158381647328827086560424474134380112950355641475543950684592357801278092890764910714354931628917428329152826554840888514022807516572711973725558467959005921351720923511455255188498753947258464923967650979655035147679357493233416587910576402568102878672711061031339127868518850019252055584193149788924199459389196947332324663536605532567982041056561680188375565431232458778844289635501882326599280943235091804117831047301458415294148521818581658819074550716902663426932982423944669353296061024274334973362680348329918496574250727809103160027213797129310430412772065192260396528354286264913391796706345945767020881195320540324682085831398853015475250943905687714393123849602581933128810206706267105894110085455133794662732266602836589466401993595983811939388946654712923913827803843697641989786279749381399783971369669211097714497333509675097459016188003621407593621004656539743101312313831511983377214574262079516898063372144840257379137453131071317416233431832281312714168338520001749519232740914534271608074169678915156067806169426990652823893555150993331785522130530878895439816282264187275034245425297315768679595278497501840025591210105127104246360877360228934840270459306617895879386527379297258862322062870894106821933051115340361002495911369381323887582250712826019978356197382465184828972295894722401300412483114148311103133479627036372635481264071858827037244250288898516744975530859408979676864838472048842123092443212897863558563014088078699493186214591861335021072532902526582632599391667868429011153443401425735862612197334339537874356065299210139280999825455951986197497240292542602868612302362074424457235819408174339831987556987905463671551418883781811754765161325521647579952703333814127338029081573701559650130747733243299670979669795118988227159439570931164680053156536249528958292584359411438002575446250036561363567511497294894410913004064922090592821791917757342985298707099759949528012492961634816494516262486437343131812320561121161206217647567925287474358017297619124428258571286619718052965857243515455028968822258936671415389986699053921427671886668521630367954259758947777348238658439437398229041651351741562258806217186119103343930171203702757804823012836449593438437550751601894497225207455473029025962320623368474028430520936598474852815552604803814652378863580187425710096507408989118942324867620876663623629604544759487320434625573350018580834183082965796957594464346459421883529467463746113620366348281266996967385105052835524985171010789536531570981146906987901182908073595926321047928015307153013721082733551860288119979515990161928513751857979377026204164040096947610070494663090053236770185051062982366898687418879050407016384513272475328156490269297600142305187796957048363117879312290305551680153555628703816436576905064112519518524878181232161876506032030997682731719978996368557132340818276905834078614361148716131553609123259034612458331647818491271364413412719356582227269370851300710566053434594285384759552732843962546255942353358178143808927263790693548869529855290057690905659431519357642158239584675789706566195614160600017271038247871918057641660423043336663589016973491624299527822581391816029727092843335242388601619115182066694796131403527302543188688375643135401463810759191545904197274734660251177643040172409603211278178905247798830585480122302983118224654040851928902693101081511124101960833457441995239080792965410508463593898341948619871102970371813588509231120017558346592373393641595976521871391022392597236609452037139033889670122663860947798773041214448899936447579531507971045721115456285532627827255114746063554537416286891960509169715438949594818871866502608197845858705120515928097682957391661315737766562870258416019206274027432911352829700132948036658405045114768049379101198069951661244531379986876157691383997207686052322418050490076372665147915498425923114624679510762324328002536086691406257189500870690091009221637530640874855326086586639088412888931156358729590291341089405609700618162009394410844346330067563162764507472700733491095843759030041998447782300358468292119592312543296045225791565606463160439239894694340786073701904319641783050500520004337149244832766990025501570893005942166652079796215688535203106382492564279861635484543756773381121997858531993313690147808799706849936313206801248557415589649826535785459200347582265591462946423220379513825545720503177336870026103646989755847488400258098594283039443181712864446521439209545997450928678457654118620988110777007239039141753937402620293780810424315941798424839640662545191025143171838081372464429350559544119837931881716462724197269366821447065212593915521233616976694413806680380285222545320953678805788601904427132884123957659758303743873686279626995857740031098802340997115282145427881901103866199758598318738386334771240915173161784883960632010097545741038407088735321998490220074651195266634107979369833181127241308243028002252627641538469503232729216886533339619651223593890431337778037984837331450604757196363827152590830240482448764856505223117257744382122379478079501748878750646728736328480990658071629783243525735113241043725473062401224236306955803281800371869875281457957597914073902884888561341976840340614867394414282667882464182856406403084617685352190076853931139061105201733189647684883246561529885737803293956773178496899274241445526362552365948677243153740082217365460759021454374206453919123088197545007270053179166483212132214183743811177744510623910851657579936959269292050576485381266593822762286445982267278517609730459476319880046235240328087030765310188881973401966714955180054599831217670470809741436568817073471573020282988254308231596573073051436022698779047396192434042216388183942243204882147026553943711386735295621702076856967880400949472316729771282449093566853866665627794193150531444697236541819141817613926102601535940054138754933801464371487164775623313839812060670928330953849453228284955332866108989020735537134709396374714863470073411224279240791097689423237586233874060619187673018267861358515527845318158412247587111945210869848175052411383351290956446503423921041909855214393484865862167073468814143032944686251960616821126701209601759930430651142630075166061702532857881636267288900331159813233356326517558618267973644955214177973767610539027680115367005892683922092610190594539670616983190022987773228703278623231950422997989898858293706506207510016547629671458579739178040671183938468090142888518659681620774756635395090922130169111689375734748315607948016284699675044430953512738372985844087524987520298623894503900538189041771716309071328133323717896173353009887326001239141733230135351734694551292776259340297969288509156311764963464680560101908099392399397563610780203926845322515600067167807272318583414230276514368551060686641578452860706378137987353044301916884504926669218823110473542820602942731773954628691406043491631317018929713853879337010471310094658127919909596069145270323520545648696759812489087921479599161451104986907487444847150762692479340699500695809176970971089528245542026013733530154238940125618332504817569803549057947585868642644555841817411164928984704900927871991062866222570886045209277266754471332076394227949112163047525060702829119477545227798158235175028689613172271574330793745424174778353260907447789171278313765568543448836171496420131137927816782051894833708179442034467217306954443116205598420754513657022383374149771040525931528517951591669246853557811958894481697823988387851423537508664259968255999012289033895487870692725894359765598671636723855357812033996579943310874216769982023580452946013575470966666647608708148069379292304000623084393443863758482027669077049575032702442292639454771827954987048497730652983953564584738775071212451946562455958909017706527743391442749867777540382645857146106115903000972219834426785335660299295227800845876457207211833908219677641498240479749872221027244665095145629725734720363451163101404211727460041466164900463410597914053014494296158328947652860829096044180944935794948554312383213163151205450021282359890161263214363142994623430104004156371392987228555025412854866393589122617952303067792869600813039442475219540321443707012714387368527201483378996302186795152991771228336247688516871333389298087129061227924336912205645323618217182017599622291614841817117737929417750234007641939858948893602504777417615752047493469594862857953166187140676442694767015460181226153052958170914162938818005174311082082584929672094866306349083737044670880418112164675643854714983438300015670695459826138499188119462535970651545416022985148313292108067050757975514420396357323382475933830152261241936216071226885297950909348257670146725605405741076853006321102839279300371718354225710088460823729472689848975125236179384385853662575962995330501164684436143175945111255455672564199399786433763471982054874465047472096880308599930122429050896277394652976976551274003976859442695425265546030245194803706752015071320092125376199212818388349369972274495266297385985137557849489364769520626657776268928168246671313772329746525349038881627901319530966575821551679511227182351262699605034778353486517739378761756767049436351090205186892989234359013791392370227193600042561839639741438885681925843276827415701722995622496779015944095765008564624822183934380834378460355126809555590323864431902774653456904928613882650210614544976749379891552674579498031809549148957616924848584348141314370120531390655421794123652796604037330667586630951745812357513389140561511168218174618117794645059609199087644479270370006089750005503421468915874101012226440073082989120533754044737786212425804471412168544283466778173714500607815652547571825543459432109065562566245813050566823602660198782085742418523467864397903868908224125716153231970536980160980844750070670579116602581690753901449090687708712641684873377733261303527775017882786270080780259488772882157794563523057416498349437656218642161780202931041754076270597738492110137021676117617687856739789860087589501181112534964409514062266824464434668248924247305273316807382695883126961364985772348358659924338185060015621402831990283968647439254474797560203844232628584742801688903061637857246438099852853158391853621627296407045282802137857495180599660460332095683248266795783356470573848570751383227962532015926482215295923588471545044901017688675596018445603543348487183528266719946313785815265545444217967973581425699705162336249747011492216257635116446179223437045356765495316952269689552134822403726492124770215265005555074909109741247030913070792071782437491111539267165587337629015033833390839670616610088732266970644929687689140911911452652067356961975482772264777378594001432785375881560088745680958363233534789349105040844559898939694893798732878272167657755512105752178079143413781841659367276654317655083990757229357058143652562332521507796762337722539164966375097917433149143324083115762176838583620373486938844085856674624850488395250173377610849244173532494459205521043905657163185551517183155997843426181920421919076824306080891779362356498239057407828339999329152054671299139203264044238630217570577924273166186066661300771789720775723662632480036514498525414225726198819567758922849354099852578105007217540447497372279666224789920530617505091213663963718731065462930235613985122114568882623519223612452852089673982267402926168014770974946556347693868642378623541189110243324614476187284384514169582003256072155125867899421742335100766344857314317115838172069001850429526429878515737171206126196213695637480177982227963529219297201841923278070950424889135436063392704808600307085553417260476247081904746939183102155282479563624922995731113249782230776794762317457820939817371342745054507903225376746267289851759298134982176951078759593634254550015279758375486795990567441537944894490661626143181942985285734689266298604335559923211917351337394805818052578503218909512864379050745682964145446863248421784444964092029307175240538863223984461002414467886388343552682669653473492918734941426079970750803452329591819250009180989230369906187296665585314189513866983057963855991398151196895075453788660264577823196022138628844017753239376452172298854320680922918974853683629208071034378391184786534339412959897000384457830311446748004553065758793866235033243357480669683202200532274274838527288547084246276105235220011761939051155883722071454397518613382198375879459394129520608717852943471960497621447741802393648735757372900640981641247315383110671035733955061094920523446132354962127554057741629598808979429418676031636487892088507894281450224394916534898245477669414326691441550766220356802701798211378183902952098471439629576365527877354063244916430063480861978099081389378532668183024087541500478449737214652382227641990882015131039997234260090580708981112420226539764887907237842876339791010875229751919932360369579328649664324765620237085318758375889144708744295449015166722119102612010626563986221361670565643636663292436956565258509474772015393734156315631437962430098940060269856201478643506827939821861531720074239636214561153812266013620495926836647616271106064903634959231789914540941561198901803567615151845010543048953794111172980825411636008584856701620407624642418814743342326558301824875627752852175172717867028315089733245480797481748720081386583480183669982490675668321362850976689002653091395403109606158430285884122608913035890721306370147522804352629226741466247969266115208855238804152403836986409510371632452427851484216698878228387882231604174579071454101362285318891743515503143431836976405861456162417843631862879423051579844499486032653864800546640729947405625277069605706415716116204805480911133944120380022157707681949154217536568182107338047043014235443932088407410918771999868221324039647185505380460938991044275372107309838072512573402301001288055717941748221621785152281090953747738123199573759675969145293889400859107604701143430044411659951015736218345172677442633080829328715490830090753852330336942730493909327275038103573204165679825784363525260805045905140251341706871443832625542392121963764063899778552305639206487229758705211938072507621310485186123388727712400240245015492334365249725791320573620302778514965817965727683988379202015552677923317878274671366970141680737254825646704883356777838179414270484765953308444369404486208619887938650810110440381383269041247138158324686706093071340009596159172763239400125403331973236684797531891008121690396491784577646530129833557871668340542703288625300628413929310731303998550032544723732776464098768886774650973493396653043928333988032008713457966773840002630770556547030444064019824470803846712007593257547196348942522937518147630223342205774786938361413640590480163417880663918243579978575284445935718591428974904865759042120715323970457403140697567479611980251357182404362278398556786736153589925205487202199903326355967463109609454359303823128000963663035173614616102712900967238966737780246844582734783271948447401426499844866513495232982719464073780017487964206762796085591890931800685552131365147983771346442622786377041710419663505913222198678085620768397221902180775426346637679793807338203231330646540697723436005629809897960844572340348004866968133957672683597136143399608206932909845776933704301999843289386926362612540458438288833032866195175982845497075635861259465423729872960875039938141511079896727445819798006078153836780468968307195528097604931445852047036195316392361989020934447671253378116918084277400643357983800368169926464152583904972412737977401505533604385747993299731218996717729301184184906412875846908601378756094048918866048097712267783255462514987989765384443600900980597969761799853667089939645367343762095095744715634348045542723981184314109892934745961200628364694130761604590679099213964812229981097425295142725892297339693189492018216821569782200272385521482000063789296538098374573339621952944358530515248925408985217259629868158013047378141237266335550579693277472249300692321220709378575031351518202223461798857636274034322643899552243878995952766670602733775279663869995235353443865801005953274916730057990812629932109282834765645512052926435907400284590158939696032653424252670591638940322593149860458063227845031422367964768878036704028001149131611688831109632529522737735067339917909070150879340285200514070792793707651672904335998483536277315703394678033405482801857969069424605489155436481975106258283844224923523557520278351278392924647643036878048607702533907187073285605743758144686652765668048894338829543532466786651607986614063790076804291264435789038667300783224652069996177097796585276029964331084109901581591207426526106142041580884513880899456877445330492299336278774426688032836064272162144525313485027991654834400090836217380278762021090569858006077437524221216769317969261898095902161923420007707195317906435016720113181006880686114100165982501741292023835967624693268519017565366579171568108250098339049892266424790246320339866697430333179647945922318795289110958628997916206989183150685285786810560778255896875487197704755484070907192757080857788745604560901721107106787141442155898743714582757974250407294137649013716476314413044613068805818009497836240930677206804478843943917313226500183972589282999312237400223670224582643195950127190012071487733783977918642413328790935937790014982874407875560803408333768505404591794026940724216517349039145379710481747397656877222412589056692187460572239133516287107532340019568400571550855380485510934471142698513508095755728755359816057635195399578227304811877102197895937308373078896444353398500937457032168964448812392951484883131694098439006200486562198869477025907486227523338824074421212972367459295522675286466368460088326751507316205387694428151989474178177940536626211281468481159393284184731927876018645494151030091098027719050025313659942736994339778203797675617149917849627281955472620515186360958551397691190836722059372715846463200379774683737437077148034671410988053187216780809641966233359629254879002601826320754760847298692769354312184011007780672863430319969786876558841998689186791703733131561474644990364694997144618092153966517061309479768179690633537223802738294751885348517253499128099788920435840561892167370115237358413112524313161762417451624832572675021058296492968907203118975557796401101966650732081229276725198874241997775461669287511873881579561918651902525985005260973728969714086141889799679429706740217027713829821766723528309693113134586244714177846520633139585712373668997808558900371814436516601310923798029859771672446455997699843907032084025737977324209490945553099282655754353422267829682467272001656845390658486591686927133447866382459481788429249032189624354184979959981269466812045611690801165971754114859461877457562624316958819093535716053344193209127775208161323533037962024034699386722829531682952882416039287351127837990191125274508236600072445754536872971491887336506606866789341929692826814315826937202634630277486967713488833010086368828609014996269475060346992382102981820250090189439731574825125644643133040194888563441092267824336951848316688018412812731878501075608834844108930623460996390932005405669363690275225313072014704940271473913335654992986953223524539142070554704297181148416223919695981537509940346265633029987950352732361201098366083523664973293072623239393531998116211526709430796433762608445014001846491641342617349378031564236642280065738471239261425041619731642552175449355863379104663903564994416933049834514123721907597605903358927357222852689265216070540501758248669733728446073606877318321179739011304770620701960062992280183519545887969536520480796381725055055088621221265482243095786605528603064576020878062653807389676518044720027156679717346088835067465987612069116152385437904671832373204156087177693061227092065644644483583977150989643165115639974529726475657551352148020473393456480713506408053370147800108760182858872810560372863514600747155828949503906226552265488502974011930491286778030622899283226074590920224075899713346604976607090241149605447117692074788637866986280720875365464449653008526797066679946673935827374589363149272369542424456865122910649658530300268254151764565872051407121690751428446321979923154471110063247084490235269042726945509671565934328539001834534456009229232428872145967672633776229289362073958688511573425257453644671109913485804565722391143095131397627260574878674582206970671674970106833893461555535935861654440299359178421040645735230071738784511275956986871522944248563103277383654250121810809816907268221652567126674545983018979954683122908374121089558753721232889088112371318509956820468035255985391226495611486846124202815336200681001316374518871866522925419175991774666809753507941414771523263246131829548739449093952690863584261324257621608411987460396143319784066369139054384593314077881703387614872550773024746166380080312154296476271220887601651361361306177063479653833947165045962217282444994939608816628713103069913092768836240010617747343356651678641153057016406434557574413201022382565595318503872436292594879852781937818034177791217680893062026324938608988640589664041324248358233310463703084910372206468593233183557518107762958415267752304563475810268978612102710572937456507917623809202438710814860288617139831236688265638700017421342413379525828625558876341430162017570575707020785714285603307368082145173688768017462031790488432065760540501575259609780658866937623225066044585521185524914425648804356173432747677589809672380831751498947200776257542551943137374995357612700085156866705824354870626710785652030312472459484843503875053157216239586040870155055791756847367069877185850479422609394889777333856420367223037856684387263555872649588702327136075379753280083560318402493678475418319248076203537094772511730601524161599481419281420522643940001968737466847657517085252928053879049089920266121858431859199921965373046210506755798510351236033550367063361062240894832861650401970616426352005521186242708131782633732778830600654078885588202271469076765512406880201963592423839233633653804228823542734337349482541869306845937449125661205456909268890166212102214718154144871145305824839063870871329821566110233940979202171269664024425998356459894700176054806984559052443838915264474815127691515650809579003765430661387804696988175739722234156250247390945621158352837495654152532321130345325634818697570787018469466539328063209605252935800081928258449910070017139261447746394612755712059693261102337096843977594658983146510045168972850048859020558637294833616910859495819279287243814182345045344500363935889199868260309932969173243550684503902606017652891397768788584334561657912428617443076015726053972515488774585010825551394496982691285266253144888710111480973976026964793714891913760048051882352469105515658436506479191052515413071892916383940842850727983394054637998257072689317222242624966526041709722192579345963181802977453143894266599520835741956499561526725590265543560159796165613025492378525874066729595317368570360389018487717168410594476000007997531813346909443802142676410931318347793064716495815713409816006988853988768654804477194925359645999778536184016742136837224056140608755018244873476462495595884109782449147011095362212837134000300370553669769652904777017103783420156247467782679646799706264377815143604290278536021224584734034744489624264898161893762185894208257651751601066555880949666721950609700744036507844537061351935939170018301607228848733629274929634831076777356331460602006191496282411345449394917944431020563960297673760595414290122102197299060438212137359219757859491550152111853733363806547287655437889730761620257026803521904550348590604054119163551179868884161997849347833052743194615453758730415012055348542782049530379975439952851634049328027244343253693944257119024275414831317300494337325851338252035605523895384073386675416417028501356824691344453335062972700029136770182832343443298171078644851047534025342078325694468089298631985323911317316751718345009304927956905732465459237436221118451681946458793906748181723212356503518244472100647393777481017592906518308773176309176792072621526110840248378835934433327581316775690460233151139944155463634337921405246872726264989891757213307197167792705406026894643782235617265505257412941388696722964016710549617385055625951538798159731828379005888966192322148595243597650870045795231435355785580496523858412805480886529122028779484214836187828907375182317705072702878321608145367137031409488129465244365578009993673105593059390732102988119603125084947169080541313389853507450070311717458312288839131251670893104345726361586176077854490359176786249059779383030173341924362581562158526502088929876531520571896461656976500649812408710896810566598770739839080408936276352599810301338524612417656438237934836853178618729855503030756106827556396228688999282542245743219603413849413612101906269588483290326731624704353498155641271217909802529047431027857276200919322611526060085985318794632799597479351947955418681542631289669844199780302484648427473652365338693230578151454860526087984963019994416455998383713974802668802910389204341059528113903330700410358095818445363544312528418316114791331772608739461457875207443177126124558213596760009447115369950446558567084157755934700176215585724558872866901652774371296649979967566670502598922379204178113629847057971380934338382503425062486719384034462107547881897282316568128680276211305743065641986021515105181721342254720906771910308738422081443426504697821945853395703526910751944521495490905445763057638354405855315971498226975299415922928401888838119631097585160608483237527223293558806533892319623659459872344508172680980906325789620689478366853554138713514330612160003481734080646624271253930338231944169620011812408333470109761110509131211756680762700155215862657809384304702344409259548317493133199632543833813416273764205929292768970253833665348265092385649332938795747415268652129422281809363022528260787895626110758600069961035901101855212726224365889360083158248917545503280695088337251884926443010065141393815675079773970091363284923528149635281319734116977190642929319592490268884290125713378274606383198254340550815456904066167010177722286735756046615456048249879635731672972186337359121331090205585802736791173902561740397982379041369028787991637742537027166366260494250377538958829489784295418233175990522270416192379986263812254078122390594508845942094461663554274948301616702325025912281738569852777862350715194823041384004258666688068642260684723135895217971508028631123210346541548294163251530110922196061496374018442670266520035562297989963217247696415205567127020539959221575320353272014689834845308560657381234252842347603616968816292017152492993932408187608856757888206719390051567474622687022215549518319929948107525518131991231300919836661872108241397690334336851894994713256395942291219002518509245183280689462898522480325916632033453204445272790785093189205170343743596468650374450896863681250059532471032159880143901423965937085625968619500082907538531819259627639614699495167015553568642710921735959235185736981048082124317020722705247838436953752845900117357410829738210466194193766139148694222395748355788994670184214204551888935280522801624197256236636146553516612542908492583373027572788759654634404959124139117579448723898064584386031390729754288369723729361267798457867749399582803951280608548152990812192847167839139812087462626352136927886791269618619747759260820748505499964232393452312932192790297485237138514520245648601688938356016444039846916925952830093776192104937007969629460575824934541376255288638708795270861941208157388335330896064163887736313590101086047708888401431600807784409463592483039040005311443044954859931067915772395603054958196413478939871821608406701017483819032256789607482636233454301731461407726375374578616538909565431704952860377619089640236766517846168787617312632842418437344500644335246804796493587307101479792988037407186985200996957375466544922541061393861702273604648845114383972347521315230233156796934320583953332904922936266338467892343035963851794799123257809342134277233095621424598164102032621882375857724616404676539907065400559830886315868897528183304501566350134147847196867782207051758508067725868833747129318560852897302995866996021580594591268272803162309991847610971759068240503302207121996827171888679458875183409273725145208860984892307237605452030396314957330882958075548761672378982038234161498547636619326792836638747069831662475685082685888333345919152220934641076882814618011107169073462071176512529901791794257105163073988011088329628833644140422030272498802135532587728543843763786442677086600800366759908214919253870981863787189884657181329190693695187782847458238966080703279962678083482115501154336881120129183217704093485243002212727972926271212839301712166925592659062242807071701851445236524534385258076315842686558223116580070976457162307505199205193874300794356521902107085340900033594048333655381527581637237974403579492737708990607251165937836628843839886562991672262686761051469047642733556490686459221611876400278703242720167404393675759724859684131478558232190762611187585948073651467386012450538308787656955596079053903096590098650735146641747450779016003515187704181552618393298055817537330313268112704486786036979531389182359941963608330547629851420989388242875496585777882973784698042868422966433460550007257877770391990790868684619224260068651333957780747854911669730778275757317510502346463189842529448977252472540337763305942499853041519168488212422357762292030670861505078121986373710012842210699843428082044513843862325796195355003153319746344458015627014642922833065738369260256151897468426356381424136801700726980135853507494944164911935954537305396715931851497923951787335581456571542013512395095483622173352383060558554892256346918175349458276476260114010721461233982351551602865128559869848603743777031849699879385398635714624540408815886004570433850755482898297834105045761794985377574782447103734779899889227075394318447990874666811704856862925975706613621965101023618016125869946705926494000706168295770836462172202057966795811937431764362175877820418967431603513490227563581894435690205681387728164290734181004188654359537711405144946283157197714883528908213271408410902813178766468060641919838642104692110091668068731168994185705037502053712253033544942704498598687825303833642729597704477905242874535919865573442365169332395568857165276039779180093118374252783791508934600175149563948523217802332018338905781489920630950271703953585258359135865853726602761187230565048670717657879119131301475355946801504108560689935925448644797809014180176034075873694605739426501324062438127263768361266522832491795185215071244317620410609739432067406484016563786043263242371819591068361148194550007346889655402842903287994714852384894250880130493906812375656643892123995750455795060958057707269882491920100206937729264358410643929135535264892219078229935218995191152385061658298508490139413990488816159378076326950458966678834263897830102307041505787599513326864496703638799153009048996825417797496449767694268497367354606631559005556616233580569973388647500819492431076091268144730749011930532188008930300740974583696216295157924937098705449114407095377762529164857128661869503487367452147024621471585093169730727297741754473437884484590446314330898353995537445131886436906025358256132943079690832185608168096230387253515563715705153938790769287502093106559857281398103345250071980409683093745544747816488774587739919888451973033049877189609519372698054092038293719681091986224555044191401961919963824973025188105707858675692898148596856581348423393078464007192382969509916388540941075085935869817746032287099830788191755677018621785988728620003048786734448369372841969829615978354486593377127616782663893354412141890934011242438909350157864482660156047589336244515289470487378461261979206497596420382540255188395742069919386731694776175671787068487729192372648055167022956240371437132110939908270191940925041042046712728804585506668394161752839575902225541098940500177346488325416064465750356586784189830861263147641040582493445231569482081348920992339946586786657467708893130582618850026946725481265747106674613988980836638412403553939545662555778471262351918940561391209992524050521504102659812251462253222334379686463499267903226864973532379951443087949519466144269166266906749453013513934014388418439280404895148049952107148908850265658596850278990378267613716728711184375449689416515181648258876016100099739769880194390264845955588478938535152951422409703982982705978076965063801130389757163957937818626185022278349615949871223026907378244114728714406197817837471010218295163444845302262442463280087150318880224125467814412051677570446643432903388171281938102733256345873988749868121745082676810138190056302551025186295321514436079446305893959360669286152910441037311321727729760176182784056259590603135105432343089962596362707869676110255549073122819830772251256332471890508520953858988607747261108819278537205810056888424834893771575819816162457878799735149105568735376950300067789594720929486183629147363579324619491254506812216043207123364358026205501570015508673703847542823326395903783539524798486330563226488811474062414528583141571175707261412953232516248158101261144756264952030931787825076366694272456999881568109272421093462717106963738791953050495116341090076442762812306253854382810659752595971908189599644495721945017628071297227313174302087604072468576856135316658473707722132997645034132569733802980220168382048926604792605228334568425474148983719032768734955784386641344471129634993700646754677872363313133173606491207363548458276622947790690040349207583806704763612466069405785502537444377189294766008664126770342707338475094054609592718992771553243726354320912966708626426845649583120645794194765837191933873456968852719183218011304625475897416318054833351849297925368536519751279379583151848501043741082418970616031636146699671472335191183221911600677937049250163722160066201526799418075501259771776994323662885140577430138291366401818161078759899860741701590458366176073426083752177764327909567645514226170316662894499693671892237456387249846944903353270950450644351634057324008272227248126749822605160455941850025899864679563499004313565282660722680777565432094182624174903432683030586621231781800477246951070035340183566527953655220210595532555076842064191169888413234225216067690982671238943544052989004146158302494432867775703239222555517221787052016648247970596279546876206145171891812184503039514496603377392184825490104418089538522337845410029138741406363799818285826917213010958558294492900329986509935771855905223667201602074106664532807480470626889114243353008690698470454654647102229577161279767340130282464054202042524971865428321787605543529740525919225006639864284593763023202292473132971317378845330678785487270055207526667249372981528398700793311455020485175735320983496458500209733443550744581153694967898500580634288579472042284017394203081494105225892757624425949978149678410601176125495867738315438392530558024997592739092191615441478403803563647926020381596772384724636383529414540071454540085614698180949112669309789409979969575434687405829566432359132626044709001475791996213801725421965147585869180854770514571984454472704523488325769757491507854101475077452042743963858840927276027678794257222562061739853429813351018101838348674029626439904440983847365086151078731034919136535674884327912983338718463306239718171596336012772227773132637293902543019100201630985161042976273792592278433225830681790291794846680755311699670125833991538483852276183285666657665854956200596609341783788737826799833495598429662035723363784035620735074105399216613578533877172532551514412034109439157996279313007111405814308105836366807949818380848778109398863234722241078607428157109376988668569595238368781178319528216170649700216336852502343488170768994496742495356604904427233884203023790474496918130253167656485543264823471606038726020830893108041124303670974988039372728997449874239502184338808359481207580914093263611478125432896664050522364524817624834088551527136889907335952476544210349190512428112273787400487787526093996411701145499671002046198021094503325207607497317904850247792915029628472085457598998722503131428883074973268833763924289054293798155386631208215028705380084067287051610540977758268486304137633976234724929558418938636786195653858330375795786108359463746135930237680695777649838917614738743654068355213713021614628843682767907449762600898323045586240727239784827075833813190789200322025506481630633443684689711847730367854918358470687173606376088180836745528219828206884867436634919176496350641173991190869451433979142521868518540190229155107013754660420910133610854599723562694733247484318917182226000715646611851845210650775060462307012086158285418200353340592037132023648495993632857844724038390415282730975214343562496875239016625902754322313935816078526743799509499881274317044532844963720508046137352183833150956317548277769332889567576101171559793864625446758475034429430063667837456579473822206574530865306818918140590081951673459531221731750964089498943830288227090432453105017370261143610450536884569605285838018174830286390312356043488594389810706230628747258229577288053074199641072839636503481558159335317801527754734131802618849390611630807054945355683562080555810053442800778817414716622540666139616200889392948435523403340526841634597703655501265729477764601774579763287485323984774166528534761256592451821768577239094961678425254846940743864283541494548687328492721285153357719176643315321806517019323165564604829219975555485283324005025049114531752981625377839229153419990464611917944549872185052780083796164449994779564706229762518173826327596154596831720519144355143314754276128379248102564716875690938622377959339789772174898659036794254003167608634363931038437259664638661957337033509582262294578287351526464701681256662186351159287806901925483681695023223914197382495358432482225200592580448347649801858184779239432490748090037829545670553297465999445504797677167583820868579355674347518767724129985420549442470958204595044614520788671945206367639542781812283589338340862810249994462001856941507387093821737626043291170542798090399983209764962108931246252398426600044894200502851374605158861585365235269124406173660691013541044380094236241144065992780693304098249249039935259204217608274701875482214956638507034699585353618541934990362341861589431101286641078751042175679584103650822596666975652874573401202065051753544143993354942001415205660498974766662528452314838507630321265077241417065596935910962542046830949868747931239458516497235902193931666403732058615838649169128686426889943298746544588001018748302334515798710318701148338776666934440300639864286909713587341532082885121842425406113942707484857999762224195028251962176155897173286439888256274191028515506750247995579333614292794467382532299223647227258139632057562471678170087788234998668012757420269529921412440247367516544126677812181843596061402852817413914602740195728952566189437493166143567383988746224761663556692553207768988715953509975736888879861387319013919697219798927803260432988644234029770290713388296034223653292244968640978153559449473375079706015848086038797742382851824124521909008380161519818800982449433517311576087893754847107674653383314890262335748393012444169247997581214387859689154381117145795654861195532241669745696474281661513655692619689908884303793334231206789063590893270759019131398704726672599025369581573904724767919232775270965087780670046590481315796316042513512190625385041298252671981345141453192205638710011747634982556870036666048249244256284989271760252942595100297297286145233472173914308473413545752773968065238438179754663792508429115262459021005220430299787849086025109471105424049344429887002817965617279111051733904878627850997476564253236887567812434779445318958923111434840571087063159271294150183315717958035282124955870497709052801659835798105975744313845106102904159047832471963382704863806339517032012324959973259031772998982930938383523057967368065940111099106491973340494028258612785028505604497744811552694582875968294799981696808930326473973659675836146522472370316745980707642523202333421502601977594716849926438162219203842509077400680678327996318776554897996519139393290782775969212612098124818960688295674839691827956531602601492428883138829390156313452470422386020582226329750701010261006579857392353164018541949357496115159434037111725409480277564219710098060085941646072496903178836405085096504637156027685236579085866502704552430783677215990342759241156593324478148248468033919357640987963026786009744756121763678078766139958595190957327836113981619281143698660343002930413186189423334873379040176848161501105684486432731373188893579487125515397042585195830131120594564748923683398780344816407168395389219665558544402995473533622130708172367754530122674282397379100583955676699332456869443986049929063644453852131157460532195839584381419803056657111040798160755870764459918449501912362158349756766145552390554840206493470983733392421189037106824141034218546703232755485298253035986006126134302904817844507263575075426824343230554098593126967463858521936863743249921590357869098034855356269673400404433644488977686159973854596746472164453985424627310800782016294127816535683572051105170001227463828192423104778268843778012529052667328447879852752451205185750880465838972079751954783550485496245277508776373763662410197464210658631079930595477876673798407808718782480267572726094063868561458614452185586381600098122036006696205237860445543868263238137010491024115267512401115874501931232860323261182163522584227209150734687309649712699426359023830383920149516314663849981544912114992632010782108790886354143397405340416332084143936328574152198129710131098913759933269476858733754781329968703188616642954449898730216703519950355098778720201095802657916663944457782985752666815783092879267250792949968006946514950561464761389887808780361453496477124237293329122597785996413866104120621284454807911947029644209992273427579002155520182922584643564810263646967407389660928459968131547265407061458847845698822963795318795880918756382799638957180583385334252363544500518385942991978663306433287219546995655208636669176088619801065814124178353435478698157653240738692034917776965092109054321104647634934070869017219339088826643587868718567045567367812958454796550080157991617816663219853774307791749549445979933436044768954132934443253767017286173503876632270106802962334272621025018183800903328903962405556076020351402083466852560149367121006214218836270383639452106528467206887285336529922374924523263432108907055135157438366948304964713993906454700929172390266806357650701335311137796874208492013530276762514717103962059356647475228081321878203618243710218618743579869426752471648541121148559998237099325788549737203283912453192547237767210523138274581931559772585373323442090097961589167486827954077625543409604106656932859853331985766787524466212204063771056954162138552817035456167107234895743232735773490651644317783337732710196443499744846285365701824479402907260609367846138254648910657224251872210355490966354195276587288935395528635506337044608657362873654221574578738552609177805023887171984953589070176863445337848816078972238609477629812514875796235651827627664680692885053883875735190728408812635081564087186739921458420900597030945275097960965143747051955902777823561743600969355981488121129868311415272104129944054067929887774591172043337210008483941183917618160623929187787376220930015564874691109351672212530336314272791863775828875519854725183032626382291640481228108404746809547861706947679870973028033993595474628408488230950356015742810200125930733692498812426751063056927260685443126951414035999713652273579145106147850945368764282675386415172076645461356681557479027584093637703644330888249235842540917558427348547266130359499757767722434364746062909923072228642207075829857010013397245911734494994207007074388920565683092344103948009943698636298514026139620110428516318531531130983216083153187215193141922533522726327526657838634364921528112312670157023043625596935561170780975158835333838020294039712051209954975050033979585019481786202234516812616526929849466491952426195702472110660954255409492136046435024859410057236975604082296640587743935668449770188135119613126530697376149963825746381139375753831317605378232579536187385663074961434778242860682454146165079481875623756492525432071920828200917283456331670420093733902290917842818970618243293222381252285454435548487678791831668145123205491687983840356493927827177981552267235517270604352093424974094042913693054005800888917650536275794801232759088428405523492010177660397859278084162704844293447684352566567593676800610472552236510402697125150922408065162738749601564318996267776262986689369506837461987157875004671320590522145807357014469866427976920812917561849289776591242327542026146585974779302090868360132338131430417204082934703936803424917634198636240499363052278564145397476135293669451455369315916572537915032534767277679650692422609279278313556117324183657591891289127885919247355873862762572950977834682613892270198020726822920200397949858988257801389966671995273049600264440085785111592379569178761608938112858851743225551031531841477461967868098715622566828306626270412165126213194645730921446145152210870174269181461871035745150526266134796898498360959522896159230878903203392020541056114671275446574766329511708914643806522823914953191543854586135629515615387341717411409172514990162316065162219730753826916771938082010665236285478273274004524731805489719717245362202568486065629114057407975028752268571216449490674717612575502636609040103199645950143411320713204343690786287993733635067761302197471903698055159889108029037328229693765016541911747865423484709564678116061929974342589105619530943460071946390660613972650110846412614054877569190766896059953885010883939992565180018539503116338380476825871324416242017581376177278515567208695111512872613544743249196759337081711030687311131401238915904130646784428971617371562596579314003661824643175356764205120779069607845101884716032010659557885835324577715519692357982353042270899192864593979776842343743681631226248945620365278880352128084920158508277998483698406688011368484690082992579804324504327489583969805534060884678237512510277954385838146999006532986942138334944690433178006563676560328801969510463040881240326053629963279589568525361234420481224984717116937147091926362427026524970913519516653758095581779219234491333527316442104358557735435115141560792411908838521947966644040653879313506446815341871032199969695562777799568912354885210410379416265468620122010069854833482642193870507420927419180639483635826215730010325933282386830899922882653416900880841564038469108152332632745879714221564305868871325136815251078894866146149107850115886424537588239383066132229103409442715553859615277739192796828712905473760427148901432019895748995689821107644133739286026368033863929365458904218349753772233157549842757238716463323370150232943353590238284522962691688973731634357073071183079532026777406048146816557387333834621512927933478555921122208937342300360241384695252901009727149772082325045494828121662180458826727727509501788404624781736501177221552074770666758373984322216464845125366564425258369697155491524044653476068927285532895181888602258670444541667948365201096779936896999785408204798973962592458979176115568298341160179852907405414534515433856823908503510862047243706787355691987884995018619284106403504757205732597740344269415593089665318768992485213502137231838594468476995204683788460533713453956691522370542964537699604569707633189955056055225412940485408135279643918225345831420491478984758238778712188722835200244073506922535507996892545197647873837106880608707605279259632608170560674994880696766107033848776023209914612207207965889036572924171065348554825477382657844646307991687467862678055346757535620636195692268254538086926290867640505129097668462123616888125918608019056243748116013673986290496528709260699877774763662718108369108317951027446088435663273793518319231154816713047863195086493837769152216190350919731943004073922280648370193360896592048420167887681946933321256371080067605239790746232869937847429136661747543285887677383269368621759623624117256681574433654936636129162824105189365222780667972765357376383755268855167645944148140712668755888709952358242311617760496709802639682598675008675908000304604867726725344204434779495286978854865704219230138593699691261894452244147082189598869414478904284405418037202964704873510266633752082505904180480209075116107416188181163142748144587475427613748741571479533285798011534513414814185402367222530164507292041140703723100100908159238497726699088845499064535185362604545517998912139970850270259065853274150756944838572717513487790020297163182851858959908988140244390271839932871624129063936890192375988341065248032451658906591897886062530359040378542820207117755512307744082881981707439903230095876379588855512865323371295417230675061347127885361224133153247254121193027675440668226586981326948561553470420469469543943257924753156872469683405056133911634892568085953407479615588471075804696099630470416261651777471037781219729962681629553530160776044802912430291799015659122269103682498084808187214970462279265781427726037044121409109184963139990303223039890124296362181919790804403523952879420831806089019502833428109748944072377329478057837485502612036997623231484003325359794758490358091039967833410578395503240908244218096526523984752273109536323248061070854944421706943420818235335511799692205727701057099526595791256440590709674372494337527482536012989256039761691335970297865510329874524526023128416741010016547951162061050328107268816185590257182576690246730421810899618487977820806353117584552901088890607017765763763663311854454571473103460776556023391452314129368692355635425283383951427236471822113821601165505194210945366319675000825420836464831844340761140383077030367264393586909317751535377271829619114117699051779161069897781241536685286192703757663273371865103696295314466358015354313103591333512014449628293571983629592534977452886133457062821849446956375573219869123252021252923389343194848414136089477944662677539426796978617105217686453268354716359297155946504819641939533289675744484126049593358765152717354092241744816950774649119151455184696985764119382765084045822647334011651030341036291540570871251894888224207228874580137956937535531097928866712928441463431346621944896233684599044718163504113645766794665608456294680621664001871188523924031874850913696025436558712175665559810429095290899519360121009144390751653245831693154162782578364921928084707123110191911294450872931652193371018403411460451748743199189495765224932327533335804239764200699212456570689752192759319955642627290208574459760536313654700935201858559937010210205061208034630432801051452738560208581065053291883838531589266134565254080812148967683543871672992219435337457738611924083938457815620569982105870376842844605905204438491836279679046459206453637354337828377221121197202005102958044781661359388300665722980191768147326963921803806848560864950189786466993139151697370989340243887453977945035701711070962715929052254448355857506066012920202042321303997918811968214636792459981538593166734332164375860309923902292159584992492591574179153794655844163704244940930056033317227263068943973365957020891756505100823177520211129563356655030277943014214820211668298591642563680324108791764523926425547309344424272517080876735127987261977600865509109613978718026889295280033004751701023243615114317579144330422944377930106594379386921300068168049093991311409162994354350784428030291485996228290959249125687402052997920426861860244560970395644403806601170707747458585672816442351363425483210898346216840638781751716974971311440517674593268960952426634866654088774406575743774121682128450482773363203979536769790225986455158529270748594495441372690864190557146646764942311390279326774884729798904350727474720837247910542653223827711802554513459910047327360330246060764775977779463450751065764568484483894382130367652950662532740548301442971757065929583934172936719595769657522418638615427942780028956644937921041000752506154018244185620455424382207573877819196237574896080986708244938209885905808388772763052343615039338063767602210513993650307875200262607454532579062390896842437272169045373904992802012292431440475633278086818051187985097546395360498643491188251833283839406312332703673734611522042715428744950514367945209322063142552074198066764448828499311151966706071199641971454059415516981191356836260283358697463469742533011007034170922117382703613318950840779184913450664541017711684322278229528287426502787373461119347446346695514694852551832168802107033364484809966233225368218777648143899988777364975483927214742664637609631507681445908150642249315624674127188166354304577126192388992627902663205168278190994546739607684259658004434851869015523067695504166277994052700967836648086936909191025061522487122470697837751686501583478169030498240655917786029135960790662716871856455442588911486165910510616448394459403919816445154426804912222418725726648650666786324553275658590411823224667343262823524227986693702361381613428982792417243028137987528894183722701607151732717455871788917251125473716176242718701244764865972976966783616008268497360968413337646288697902382136014560637850556342949103535641166467873592702921796021780522939051199714100571593320540032104313999165299309953258315819168245901763030844737684432099639535281160581973003871750675433681526386938734974863041925184871664349170971132114936941019086603539975169801833943962536287415677444142450574827722350266826547872900609164811348469607581586682975110613611761297840022651657976986574809016756531070404235690182665553978283632453090479375796712956839248534197654321350039341154090368264223491898716073258855634314420031468799942781379883375690520256505624326871344743878252344655173865138073639890369803332376420167960037213564569898672746838037423651828789841186406933651418831620203466614411493036506884281934371564866114378596361852839682307623802397112298143572267120089501855411778500388054552391765882479893586180444162948913665177702898978239479434924749905070200979623681731223552358818266565823774308238433532707721983756752948667529393537336933668636739279363355366905547440713332994641628589888930702609411880696912252434483903108016874351268822958802842005493254347362428435701415339084425095639976386492700742627186457326178720155284511464452885497614759074468460664675855410239559830329534254618485540645553519088146057154364487923517031807039004549602328681332845602101952895260823724550143216112307458595526380137848031439569302744585685478047006226324932725222083670339831435816167086925891222987880187901543828834530451047981843004809477051345299558209966906847256812225585594355917752806699592473436539481075977178201317900103341454407645946362987120991830367051451030377795324029674390682731432256187876571179042895831754439473858453237678062637461514127674779425526689116588284031159066661899280625393094453095962849334184567516385358051739789453849922381667497315530904290249924259398634796746576661287488886278343980753697943642412051205278003191351290713145375114305309631579056304859438229451617342349173819747024105783044195941385851417481313059187959595944716900183228375404176866978940160633180081324473767797254883761371104108973252662294012031249550633188152494452462405499241839734622385625660902141686732761280410858478747321477871405741783216025814374235244189968051482616552751655974657448464766487372428287809581434767580118056121194455370378461246089534154372556311372345212936237946176926289787754450854419509911354231157361280254915787960459529438760269324981633672195516777500521230129206514372964465866415214465023660882730884865630908096786720337732085921937056722455711536385200489771203692273991709697121973806466809751147984777599191185724792515708093268331241308315363605506731546572529619195435718095005310509445225935996713675446934713614843418876332327971405025912354873026223666292904778820633637676157630984319137417475610401321097196140807303291775512851559606404349203457614106031224011009273783042725991715470998594606972527791353149128612268537529515601064266177274006374851066947360755378036485840351070336906688113769805812987773998452546135416974442962062882907254129352826127970536123978117934422128939392995405636142309985202811461556240791295574113322726773410680596431598321083353334477375317102402001437460865436775214718146477673601935381008314666752217723107629918662731053472053692884651083963075314380590105761936596374400004533949888878971159650211494141380665183556172978757050087267493242251010332592904662052650600168817070657208458986751462803103061259704748844903811504541334643579304691373690382522943357956575816549862475518194637353796368290417452115844186576828561075370819438216049597717676799779748489352080820619431045849290341892155591287281093968265950413493895471243509926217984636834368176021497020270764220518565065765895846917114740060455527515141898284044013366381979044066780188696346093993384534573946631799215144053755580369965173643391472357434475323550433146040584010065554655405508741140823482590050923865953909836850060601201938612178214234353157063639081903329717241743050136936230363168929612939803781649186198450582803817138754935459457633283230883830757139008377358493817809784260114583086288271060131650191813063405986120452673265116921898196666257516224437740930350509798356071161595678453950244740514713886065072096680501223600300946375809230774233403467822518233403653571983054122441901333902009749750708629487956649013507302120907036177274717344901245174201019109453772893002135171239234912493646095035730418175625956126208647378278194560114551832290739451850476895910245063474237955568350652729059124160920159709259864332957343095917629426537830411874287737051620278255807187013732535816556757234411289889610610927727410670056063557445981220937920066793734606374538213761588094704490356903700235724250109192656355147511663786715754306775681147687683444916678518039532680516849822256812361425695449105082394153619834734242788749400044129198196307534015607800438905719018913682667523921259938251087296143155095866231472468425356654241179007583285541607732386282426599400073345131427219933095709225230234167467878911555134139066011171386939950548606367635832558424679721578426733728990656774905841660738921096852608809164933464506290298498228136475764660305965450851419772802670250192863531363655995652711814827768117914041474475006174165850552643708391104185378574765292412552277572662032901157746401770954566808880435478398504557087457244038395959215877961084022896036887982719490194293959033521346161697480539053525996837689099516323741348988794437348233334854358425023567073153224486625263113723949864018072188035011409793215532698961720482846064169091062626341036797398846766274730827573670751047359513603838500136368233319113337480465716081876832773352967821321664712307101681242294180536516185394589828663282718727704336144443948743675080629382139538974202203474785906828004144137376177429055680082779909787304366629723972737559613734798276575087154941649375083558588853666614076503953849792607795462439056329008004221620396906973221014272475539791232379634140647102771652769446801489488453130444241450339564522307450873905280587278834147243785741093387700074271544013158026540131251285075744683239139128175181281777790838160631824283414993077657376912812483170464671619385908075467951791191871435783511651468128908809783089135791843394212497084494159554013745933145776981897487102571928557253477573463782428530666766744963638419215417741772181536265859918768052637377353538196485291671288642082698593227052197263213151026181185195405698245030224812290490738317305816710057385164929221431215315667887766376618935730412646435343991824016787546386826693501943220010762544415144734636063081320618553181054936060846226179103874552358340825208087677340585962404244112819230786654899527394698164582057833980966216313978271913309419228324568708338299405787245292800891988615471623230713636566900433593619193123065660015062262268529941443036454110641771958214757051255359515368905717876336484886528332157199002639692497413616807725697132629566773604057831302572057983607473807813023915498894391337272435484457378608486732489545017207830828403181679591949395529029070236110815761335912497753558395577539403278513354661159572183329738671760319289465672879428463928358982459437934245700657149342418380427345311518010433609564407836128021195162322307383304224808809042491384514357951245906103001822860069123248576486999410273109332308370034425942147654852805677500317840847871725601780187151653586368548225699371737265529426143296234728857968799537188523749483901876493293494601447855498737299814715009639863626112952498528464516513298951327350056686148771253050589424017973287764653874489434832880321692687263722513582644187558745546470513673950300565606983713606092485181120604331762894139285016580338722185477407003301460573016153780972003155600552744150605222154480207282411997469783631257803709657258200647018469688450760166663882505221155728320617101434963658940843873136921350037683438948348146267330637550337605952786273234737525335426493511799476546008958553650244521036747729298598599446749123894035803824836993751169663503374052947375608892188730722521332152079069429344391469246787087425018350373787280487045547953887465815690561020729820320167242256763516772530795091777732840633289179819557404902755391906115679274878833673903531291344121331895299643192266128001619099453087008857292672605824676278690290599468765263718033783161571654473694614682491283214414506375162412382277774351554803778774663014270737675108182966987586459928032120980622918776467003001260296587210427780147428017811249965011908791344085150267745507731629006780021423983133194052519711092637926310175122598950071089366388194516222016602949617768164970624637803904350187591646462640350848669681876674194923482884966907609759442420883705543721226874959243905876989373746414992785440819394116294258583120428452317667288553138065574549323136852456205383784811462069798429636725435520704404279692467172804800280511424237618387423398794549372135271064412646333286387184168624771746305200846376415170844768173468034922386745271081552573504700480228981713548886798356207245713296647732798424706085573159828839672754881744337646680583866457677935516057255192174794185257831920612645852652950629368697857901927151644102891301363599730466225004124943253037742390465494161021959506101068346439343744728912494075026195383537946632100632533837538237936244899280197535420936938857896709021674775030129032987644172270716021186474270818805375303211801433721338994051048811365278742874787328282508967307701015039810234068267802405271149983641299616393221192189467919703836681870548957810905038405696257795480164310015965889887819105500163357328351379099388494018899283870208297187032604561686225088481057747982938493247161735981179159259164380960973338234609512626622594724756442743078445066294221790095363379854357275785315898252309192101530667566214710959616075130701057560458605151100643891041538618098089230376807519148005894586557710277038691681621483213877774130791869967542973714564354853116713238035263342566197638623432367129229501658960901944247174524298175407912000400950033850539085192114469053758184341233074303889987550793553927911804511503158664464659868852896380785472019671121509313284036687964819742032271436858976811659288302562444671999634276335529043488371534142467816852826215077088242036460984556731558427281243744584097822556868760451005874035197905565825877229910908138532294877836902775382827681584577227114584148432813581490431519166815887110412795285256536305745700636834490852043466624049591906633329099906286416451630204631968170765840324783701889067256243328961840884700510399266193527735320910706048739959638629388093722836220005127881759590384844311307708764811007812163015562411281823866405285176600137478205948749541403715623182876912385810023750837619034794798113990562690138320292490492711184053232267342460663728854863337274418424271814782440690391582203877984632288802249930787679245356746441273207188091853087528407131650592722330855995161313758675469331478810860762608896564240721629681228976875176760229600521074213469456807314195907781167206657062848728218085074996993332849352777998462698794593744945432429138344576502915867384400096923230043945809184977831405813103125662697197141830051692921650392912339539183109066809638470237548032375513468875129918842579883952400644183814881442444004258905328676047898628809752867796386316739356415033732424931414679080054355415513192463401379722239042496163535782728802392501119086193946707103374973391783574197915525286381222670600057515353506444156187656725808009260541612254980542469096079264554478215659194528292655195041672522956857534557979315799053399672803286820629904650519575349880212864848083471924006723598999959196620093589791319868982882247192364542211124346858095593673435565336268641555486374444774127779257853105575681455128712506948006584508135806629687375265206980794121328968586046554042859730740578005074536541153846978685585613820062115897467694595485752833052990217916458373801491641029405043851755427081658408530774152505765203091701164675522969187640557795339702018502156792120761536003408320875305037826992461514126806397519198969138339878461017622553834901343292113846412319890665309670860904366646707597596904804216862102549245202598878428926160038067357904546545716737282742373792846721146821956293936062395823021718022030129189800267274262994930491149289936348503395455521204440936717889556438457341035777764175129363417944964499534851958817499373776156741875776162720639293023670848891031991528346198087228455971509513733098429286314492711696264519263619448404703355491359233327501910354485500938896126685665867537860484631058990223683503731362118042260309167185342894262642016556162478260004339427206129249697284707584388279732025347628912643545898601850341378871263219475081177083114204166460175087587959777459764065044900808814183764732464535382085956292709479574531459447637943275026058701914926002483929189407196957464032432968990546745344501138268004258241670230144978476686906579625762374659254520271953393917081444384696638209867922875067195986719327865661519250608804181822512886581924296900937744244512727055296545634576403608675732249825678393051841528107332911780926156539267620515520095142754809677656622906361575008729099968311956689036588092369892441815015702004841386277266349829658026334308140993195843290599257400820676839319008992531844089751432703623773340941510324192034505814978554022704669944937963536522238416530969218743908058444075006097584981707302428285637977486651406837806644136972704379014926103458583360453643273249155340881440320136443925649920282840912285315364027927104470945148355393226264566766101958126617963986578021701195188801640381693595860760090687633432254390261473585985014322442974366758596973981601451745330044309342123614604218387194260655938373095636434633001947383012254759508323148479485114792107722570228624291604005199546417781244020031977767955678940843938794765402397423399511195925177700165526714101959478839905725495113037863004880497766715612628785313536979593047756979332718222267429517179472142902349628856142773596476741879127709558861493792378471689599930091709236756284371559748581828242677350044283809011920790560771855644381913060151385938783190327139007169299481177887911366041442895146719961755324510239624927342869966764078028761288404060356345515748822124265359921127873117866260907839350390113493641539190179914911057337962303471740529724546077675768621769259273361743267257634416807438945951945922497237718535282460625414165209252675556942532243545969329719135745027489463953386022266875001289106841260506938658894318306814897673639134128971713708272239403917272900952725332526433627077436287811186283432759036342848650067813804746803515189441790769252094964252987464054805079127953465018133006611069178704632881411119870244060188122782022980256548602704735926203318614798321985028226914086917420264995334233846075159778431935884875636993785516304411259237154197985162631713394496617953546355697916585195454638981219851903323196038253291332722097341742880442341733728577477676358045820113467106798606670124486401293168050682044931691297962705260245194699904647801320821008890122471017593571007403983589295101724289043275619224549081809981401796290345118233896601762794818088091996898556742594827492500390727214359223263413758112302427817520219193105335565807526380660289721462439086909733501217962754292356923655415261501515654400349867347243438171249158105943649477798513439117378546359882158642546011127493350172035185641969044416218141896066622681681176687947104938861087501660108719622845878285059552675740208344890005503430266050300649540141448991376019317637849551923582223393474167121505203216113989217121376950620597283113123931727336081210823874346477972579621127523371341825986760536803069133835836646190342019839556631208460952729664191840611174607009442491443593095701383616208537023520071105452623462585309267346749895032728100039698039944114500433939855661919285219019662568730432071640977135497266182909990245781865497954914261610039958712035508457318761798367444483587821502550420369666749644878633127446941620713367755933429442597119111480081796139548164154524731661814621153329454876341377810154571381776217477496072729879090558657780759235069430357313509664842185602449824676285519268831541163222333180842243939516153618486250130574878283986679208761488846673586927808873582743821204985447433595900829682533021207953218128234309394101564465960552388336787693078017338336154372765026047836445257235052896263911718383959620377285924764450026135523468828546070898225495183758833518109850659308399620961776920559846633401408361512685132271523127071813301310540058193134519148933177199656622721073535893759265633118681292888697499450337309017325853545626614220035609413709666150511969228053718000471692240472142258101363909871515121790468962375524287581451844446142711201783401279841373206788472308349778770103643742906600327404582502961412203989937519798622655914021969860404535419061411919929812234963618869051305392386399766821271775813369198801164144740358500652842389757893919024251552649959465517634312123165747245321934810173811420834629218201565782868047647649906005813431389679092662214939328054260285693363316772400855334768240379152231924663801247624771646226153924345002326970904656403437785774617532598196876002866827595115205797680359382633324603114699374391131092462945093568194120201291327924756304458503974840697759628601173618450865959752112289143892795843239187252979921653021062922554551334393387580960278818236331864852826261641389279599220576175719181788775545514638140113565516047270026549297757071977185707883374922485252997593125740285213117130062370404785697646277690856728583368454442140753190270789820015217792287226398715235732389955499336093458319569986511319564963486299345455899245712787574153758331044659182830740615150438459222820305162007594367192163954252945889822084625436996815165548597963947416652960020339249081515330261573483533999268919658951681823643936150054749662289487850460950613713276120938357548791739394386731949450627993148704855130908975981025405310290130800552283927394380828895837829730841292193257980616628545807833175734963996022405530820947124781064986953239450959888597211114868911640744046978495044056843047395933463294432079589977301471300496341061747075166138105877882534342439915437268632589294505992708453426400027552953529706871842618572368540223139775204590134831283018079238048514212562294309934772720598630006490466341363735736501166652490897257051434402679891814471403904881702903856504886611573527073729101264058393296428528846262017723467817012183317957486391208638140806400334807416226201270660114816981218395320497312161482006565450331132011387769012324343097054876185398686436413854350301218231472616006042026742603990339561098694299945098901843815742916075490354676830983562079509543674971113098304469497510147889566096759189465437014046234803014383468259198912475012784397003909870506648178210624644564247515068644849885388290996713875862941363744410158675983875612338106791481497419998781376928361122941652364503065066632250121454099681956169615842726566564072230356278049092306530958860289560218213089916794722571717757225083307100386688405361214666771589256227450135395094353806270309516305711413218314653431285821769929592911999681707587448701250172509229240700488210477997186793475559923357045921104874506323880221421832321905745682416149504438247794444611108661831548826859203914638664826738231119436643869619231039800466817292987409876920288830990942957095474597700609291523697408080083693750600585286847569793374762487500913492263053223554653428903545701298532672804606904900552490032293300260243208934351955124135648700478465520378261374274759069031346377896220157835296500808261433970141132832080118250531363079014965488188342856376597528682783578231242872131130508340445861350803169763788572714643505362787239167406803450596930721406870840217195775386508379803033734799798443076651046480313725820998815464119377075837813763951882694868510493620698667419942437648360347670486846489380347325359048230467336337454091855594026863052695491193453322848944369387859344684008695059501460637637683858442346287696959198230919102916805807017884319394330495642565145640427491773994663707064384905499736692439700628180583186757312795528202515478843403160853204685912726653340710421814479734032671644095845355928677625050958739852566607151207260137916960910239452907256237277824432229964684097760695119402537389974415514186772143631494940596749250848611446416673191859495384460315895141107169397854347343579447839010470343271760562272486230372927773908261069555925372595445475705765194571759908319245527468865002634905929298460143072146954012712195500932335082493663379729223516605504355769613869716209336675524206282393267104952040557780997309838771385220572215502764035717771215009377809775135249247277718390807819334460576323153761561627100289819555171951102483203891977727780250881430810915435616203410267950536991825777414723482624862126682471714356696483418427095295929299272035069350806766007911439600086538362833856485764873969248687750140159334239563157174683557823413805731114626797275399437907539446657765156417731472419631992724549242078488993695282481679937578755989261209334960540723210103038363945667211113160081137016158681958194029555799776155420253650861589080642821115777945387623398541511647492207481401254242732607859336125506240056347055171814912619742996283792672112315934842529095796050853210688376396056991418200212134180321844053066689489534209803458796491915094373350179603749934095363218889812862658584819737374909448616730653275609392751876817626441158848968757568627998963252231085012785190365241061767299333455865493099110358907221000394032463146220231534216674255078223877154019010187012967885081581218808460772453310062213916776863901628558927024107852685112574556145165790051249182386242289924921165118176968013272214714219602205928733175092032272350714467618206560371469694021827554298774280534777470827098297102134501234390144221116011729021973648718657915144251003833003741811769785670160329951343509924626119953597403778572612636135940693581788128859804291514944430193785866514556894563331247764351483662254976205730527573622758764906211535714350878442828786509224165079820850991191900825618964111715562201275051269767027803862489911949773139665235872728342439323559766257780816991754173576009127211244798848094082398705698679213762708063467029283676183436818825853909586477268575444578902945418863274618999973365749715974190496297334406472081786801872015831342717828916837287400134203897612877599195167885064292593144423527565885646584218464894104715762525774421844926208481101720790892989662964953491745411373697813217221901428374420024868069572775377661618268531000890094232778525969009222519143877139164123260575053115241250548492373335407824687381772609759747755324821025048684885949760553466037987108982698822562053017947383131553905384389355029352663339549107200693412880044622075687742363312458786111693920893316100123568353992822094112078047815756324192687570058133088727128869025900729853477309223534911021722028257572845420857145694011129588516736503530101839623471895467434496561291459029852541197721490973701588176630622718352847724426944367732942472720849228078593580991084205885443541313956479543608640037198544458213832924997351278078400746717396901987698141878414622575070025945238625322839141478141785493150827208706749402671778966271382321609015347835439927285620085415691830292525797122235525290395017673662168215475401624315229455868194197020179566543262303641775155698965997458648940665054883647878128503428385566924682960345263462178507314088106387510036556884280298194053944766699209708205212651731844344269918959529990030589621921446231681388134017991233828677900431186891682723364691214765366430708858108474516284340259622857234012323854136054422159930471904290310534327292607040369746947049472076545448665270879493162275933707330877575357613293636413850931922067893543201150653689008724174235455267721429345848537272724728395303518361533365003917206644232819586522156182165066830171651844711795336990794256737551103547714651196816547339245704364600039546743983689509349408453884342455055403268023258144127200064414040523668506171637858861024266934290446146109318051227711626837456882996996518593109177005549751419461941728319663434304434726046635846153336639667153332907276006269843228218620822074468510257219160622358416966596567213454289456197648320867081043037847100486836874653368740026541776706311699644797177448884186514759606856299776140211596067302219405816326401906937811642314552594174994924683641963306505563451683472228658879487043372973375536121148819952371718085564784898821811390201777244861876247615110706110533844072816256010301576460324235080779254334994878619456756329609894760063072197415084649486650604799267386401932603566567546244030836047986308319664799994685899434082512565415660332695337118261704821890444811473451054486032876442725077055761167628141035155232182450872492553734526618810878906165286316728232908943606747073601681934303269439535641680928476585331189945646821661874683064859099330857591991527764130739007840065919566807103456880061610043394130432125145815722803602075928214710905849319704975937664359990827831814330807376815834803794014699341205039545926106629253472583279034257707835591417177961845647268187080358183032126213271951492813101209828076397931747078390393331610165179443358614963333274049619528204719802055274207195904294336425726705663902156117027159351250975191419465568809701292931826382578228431455495273881030989563824355716918155390967643334003841926899662861187423659039015295299188924019667343294062359219199035028783968535256224099286957326913796738714530908099515225830260761359908737281273001081129761251215511244481335788314118993984307940630565041076188874108233823512144586242622285769446101454523197785713229403726959416228760540960927230267032628251016650825694198171353381079037343990704167466954345294950729612792187787752547213496624412163942096218126938684164126776237386665501110614159136384231322241577758064349068330540748529072168156141777202896977160174750836116196219494835071411635262145426164603876924448785081868306422606532505667656014612258768413144893010117927533047426088229517158603666044900983989291679011386455305474704293405003256015776430516194221758037926742608472685320682567664413793392767600440668736216305618662388125166918263695309342161298414526218988252094204706245240998706364447145672174359149909914408238161773398261791234024272149763557873312228731103618505940430839245880376125717729849085829120542712916943947682536670786408117476047035170116609523940964524806625215895515610393298555932580060823730976391085734683513860567538731754128033948515016150517956696754474326054444135839806507199156110207452411822887642978856171309776263104895067219008383467188775711583719922682536441003805722119809204057164576795322690441982365868959962234357316217480603384842337635617435091077640790077622763032445641588838313505374701080133749057843356301463566264979229184751762358664313176059859847372782218944479981474447932654410999046414262073528748027944728688610868917992238670662711512533051207517849976091338815368580964599276444650748751423751379961323651480270843944926779272869087105456113168024872540720376088502822254981644609434072599907761060945713378700486806367805436230790635153167258409937624404633991991676255779065814311111023310711207824281848644355992875322087346405264158077155984444387072526747555612514422500000608751993872535266525016868627845255332242836404970397502266970828576089090217610331109546063147423726897932291761005090671034982752454767605864978722107605883349542346035184284448617146779443021588333433213014293502706809663229353728844263020477404134389228927994871881638473054235623928263865874954597585476789429953932847830809986291973495925793663114656810744842939801797094286795493541017365204870157655255001749360508786348354505729182571672646642685124021612602593421954371687382011604184465709493385000280977861455078137560459541170101442354034727910763751826357878660037107057980225419174996536215433409897979618889007331809612970155888985151024103267741671768992468098362128695170816838593009917280296862081517292583037607193450430425467124985241336747367064165930784830735324799730023638694072769779885172916845387630758026208082603974928153958291982422260943320165455576490788229287396487768641629940140896907592144652772340064446249814388116104459375003341017935977314718786059711436349792896788487619349749780868624689474843761492419106566781716623627422333612585228800628681182548964076203263543107299607757129860340048078020018865831884638257553864705329461558656705499542368303736940433326699840476856652820691317969072609167670859803746074402722372601087971057767651784604058583543358336959510375402296249442692562799553844657841286920503841005305888899326043020820786345240764996232865445519182642438276859670593715442697627284491760408087926341317451462428111994722104211287759407911386631120417508356399253555899794073726819967021875465945320555963735903218408501444810617359369004971955920241822876775502299765374106583399434686375016976370984012528927102163447297674560881068635823635205838409965911897162762934152971470349935206557771179635217312386980455971695376850651404989088046539287956061492409947386155161359159185910368844566790411518250577122327840602105860590059243309917940662882094958074707103904281449729613663466483181487262080831156820601457970665648246962790652963813473743977984449133690361350072921909975900642036612462486716175651970122321668130297683181231124452954979628955419615169211304089255380286871018781674663218153666029511896300767789616928795398370268452857916983097255146967530894679730302721336461871782075175329949583628625484252073390723312081365682063442823819293124756692427723219429791734988759370020062456992517473561640786670002705257829721851246195282628775005440220866643714508926889719152396450018005461104092315599799567063250015350438912265952753683974260099382584060723929995521301429166433072809321705548182370428049682851274157138404019359905422321804408662129693518175958454385864540310715930506044203124746976465553579570692244434644976199086476187814760486317538512885745497764808193007179989439064253256254619012698474127190666801706147460461717874747814032936728668841885082499455345337569487658638819273630071312137039510104661989828309803936438749993874046996643596569216033919596724842408366206858988549036803273441637442089364986045768589337827024727958598023937918513746828567819520373978955017261461218031721423778510769168087849546224045168507859873885668159741582302510846766699920981116647453211361701521081134075276743449539164235163365497943398468726791519769955866558470864617482007875833189894347588414244362000585443468595387946233838707966279331685754269559319665543943482498446789134650059945992348261535817168487643721374871644929057051825404123713383048608118244206692486053728983182188185819697675531790465672828540160270437661008033269433564615571315386241105866720160015975879989720901027832632566597642452777646720634340903510163245320241201102393797493677809893344581184425142208742355000032542697354721054497687173043797052702559971479200100151517954586416138868400802171733433992480934492992835895382394794941795408427124347261779631882681099056107060745941772219107266383437621388638549247593854662920033476558005985139157094720644317803003006355470221600489444174894666892027642672706118717505602080606874081665730862146606484030667490245037417944870647744621492569806882921093341125299389729164737774037075894330235676703299093271764249776918257353547879181682677875134462091749322364880084757622692639612699086104047057571401138120573815266556731142375487806750994510117158073848195774711762836264273049763135264835462250654167887681232342813110551154512020426688218163310799393898949420146204518679712047901781700907526480774903729072968813159654629459405963476120495156600874430025171901988130232535285827943590358467343165923258391436739265156435460045377394807493772006584996026424618068132133686465388901407847403341489916677726826917940534570640604492282923991796438947251241491730470370206938954927704531181546911968436554275730005683854790227160122832581758972459326612767489467539382341195072929800925037428690052258956339971631693762518381840788571664533019436946448207979398135478945098958981071481278201062937297317540628647534110695589699135676547467938523181247890616104242852627970358196328976563320703931374415031982700300621507754326629615869158347089507720551746513451188378161483288787609717033694790881099620602434277750894028445926348710241602058995768107765949858070091809126517762982028594785116692683843606097377684073215012325320271598890140936567931274173691572886940292519453762774274035348340874395808520133228019705760445406082938308421023922192870441551825627040611212899717728627519110822663484704193240867022790111603394339243440793963712187996698559999185524738899837358711638559181039927972978884195916394022832071433095009016377113472373742774953634275292989006313021889981913306226874298383988656014607203369353240729391899359432304360969411144316186815161083786237479835566619236846709024587961662832801609264329806428470179360332856314847218808899359308166735544638841531331744588474512772165219409454193167633386371153899108659338257423245125966078104984732589503429809637537211063263798189523964199266068402252269992609740350739529238345094498080851366287035798852398217615025705496747416512678521861855847070641858552023986618806379114149886607899938227917078035727875874823896284638085435989284077445033900453936144084195719140961969786249630001691648110216876694951692605500460695057715009388985366454686626649936074617343020063765549974891054468514337504358877578107187620963717346879641244578762926616763112246569113683973358006227853984130225768596364742268761507007956537974879620049337464675448539814850294838988008313611245531456539071551494102756032579463964854899634394400665042482852991902361250615263235011267239379322705994770761104353603275257901877136471168400757956277966870244879668630680486948092916103362986246587138623097570578452544563416393440379378250737565520029089943438797043497491994773242010261154234157166267596703677653935705841534281592747555563091050061217518292044595895067795512826360873938076388681247457214479994764076374671285638353821399673916675691419185854145284100559015485893802842945026782159763294777039376883451756352940849055141828577656945726572844631464997514440623479003800840229191158968027480213357718572757259477798762872798121053880430340181947848685992883635728869243004881788012008364758756611952676771329091233612563118640232085732594829785764263191544571696390381257203460972630865842827176795017764368437544843112957472059919879926993687816576926939373133698825030106759534093952996628275681033686589787674353643952445221916272210785882976819762633509557185791575988018382988360699860399260518000409666936594137238377557409075589496328752688790507725705435301678724078863966469895352827014988071358039757959266645768674783680873838829928570097589983950084698550050413296238366700042010983001211918144416991892404428195829628020837127742932625521750180581278842058912352313569579998618763362953184598349437543372754496446893834587240625314882966529283683034011207713650503501482554552576203292653960798556792733659292353600018245714915387364070317537768804363585965566650832027159389719089697389693602841017668870040237465491732009832389195090205903721301650168563129810183299776032607053269868726446280441753090262262919965204743199341044412114892044943197152628443725860238904887827094451466511854354313001578277647454704458271793111082114011927003337163388152963484523221502558307166322028296740578100627259529376080452664285456233823376739266882556994677424526032428787060130868137555646649313044897273048447296006602757523230608450100985097306558378059327161636938623211923858166970306838677758262672344915655865306909317166253474258976813471710719612333799931695256280791323853303530788935329312924882020726214720242595703404921600533570337127481632872564176424469221672236910100053061601414135348038531752186151636907315069093368944397725912496639114212249593191474981061589102020309967130414046969675787427275521493920502675896205528766519961097759099991652802460219038559534120028444168927102728334550245491991435601431129837158547689572544328911256098788470430981683523570875836210262476356335767843449043875705396613870760571262124059318250165172787913906014337975504141276032052725550695556489028530897214029735212963120873960897692813660541442541095222315545598920091095689097841342923296806450226030223824522694994988863043758401565403631317554652924060131862824970106476370878174348671497573631942077634049873409813004019303741401249286533370444883718724874040383353966998438616296281808036874291742538443039875172749498205734948442602932926505555474625014341084391833475832287973382884850374300421980278525465927311922134741551134306160204079208800395244819254979986434662823210487212678768131952548696002909305271994137899519989588174794150975153544644992933746704153463077687878707756579853448176096149909108333290743697972130712773112473602373260808851192493238744954806021608019987295485720775524088863193001237725644214566859142718022973179421493959885359362013631588634303753122422500978511861178531152485535460503865730209315750359377351474463354405641100700334410165978855806150875801535186135087206663547322294585623519655090112914343722171711610585090207010231666727852026611207790671557091438452094383170254597100259287336386926504667307657663297052820268823271411358137707066736033144468825222269987247992257239864431406519960841310406021818648863332266636874954256023933359061158290400389996017648396054894225241646821824514141268431978223321626213850252951434970101422998680218707123671123938717009184942372890595678306009535530165853250794766092746534511344107133002732883566589745705610199997106338779229840670806614372125480392044567335569684669135032665569659888569234814507138440156616013225852104694187975677523427553933415001990876956699293914023582955191688689556457527977380697474614881322206823994339894776671383693534199038797991565348739632204138897517827968303566592554776664619931537790411835179134526177309316793992867672925491390756360335152510185322328993101654718708893620851989290409635006291791237829667067694562057772796988202218484281335402658586490563946795205748444586480338420740699199497947133727072193183934397284743382588016893742130459050938484109173468660084447237305681199897715403707809457958450651484486247606476865007845035681205166786153248029228704137308402414892576467040737123607775141957559310960807857844639687730292191228432749740944168577161296363351904890796432932590483881805382176160288401776563732199994711641776424326245043933751004181557827842918792825526103526291028256479473480448640657725399305370707223289284783619221670554151062689649447470251208779143139837698334785969541606426704673151676182458346769374409461591009929558028425165118330340067253864849312262746729799795704866071752008408190009593274732463981958618481729953340458132848703828845690792287813636667805748345227599476908497877074027836014566920230512201535201993738688592046502267786183553133051256279386942839230932827502138368229576342891336239719372181417675543674409002383098902668613254920139454049649341692003426114859204506721169635257508208410157804379319482321165821637132347641858170437793503398318571224967131031137597438588857340977637733135158498557388960097913156348777866756852973028360716306946317977978712801686143345761419316853024999032804438376519360441603557834869222096267154687025476155685274450436951148564576928738452682819026771499714000845585350693167560535801848799608594788172740021592237396377256636029044162521392761741639552463308421011486710347985988557139659595426282130079513344715103399240613734571853964271984079547123567368011994403633436650349530379858181959937088991084521961264179303826474818969511499180931821826545486498193224958085703752336575711633869757568884800411287265974301435984968687747304133056450879608658878371619230832354039877186379887341756155290769729048840711663351954883690879472441871164994051505323648449177162810705194521071437740265831763840509444882294946958339767087832668418963334819568206880543836954885737559267361489289981447681154340625194826082376612881583740540499741465864771703194404471316765888983355893288551173865632515597226327313308985906995247447505948471425027388009950566646413551273130356858064517291183674560312868861886654835539337776424839534830780654347989584837951930848155081181699940245963345728039614665558251339732399582200949771829359854916239767044280877074523392157771299328995037608416793957990491102086311183800018253431551979982084219635971464177025771660235373291436202287033997340571398358155640566741211429059673554405089929399982965927060180401274150940305276871977939489568274654492760745177109186078168719539556762693927813714972377609834117473020009643026040329172275912782222523445305355417843764625314831110616841923387892057142854648402640813363890020378539700308047090110973497639815302263099195852644026276421618022655542092549021842508287713759955899877723630183732451890112319693855428106429735343368130282906621926575489759865671337540251405162745447601016874520632350815922222805880505960195080427916969970073859289764744403375854204305663899750482500626683698871778333009277550811683561598508079879234257758444994477229214386493178271826857742961126516012280364780712622803847760698583525381420676323692514857578134099543228044930690980417950488404402134497951432035652452557791572015683885085938144139350742655822713225538553695082902456307242883399861804678313372474200300853509567375600469679514668785017002257218189069929983811985099659461277975981078236302425241582279294710685340534045170764998493944404734442648528752109303994582681044779527282622258277602020914252105022460422017059072859021377805123764193418505058878396875051846958795229051200923541160283329675016695284908239493820402058878808465365235912038160582421393965806480958242582218798803529197992974044802095031850287121874224360852830166210613219446040380315759633840901180880974207017795085682601664453544431790544940998490984616454263926435506182511523659614067977173833676469398240202191263336054310725981074799357111383856508993168012832089793327599482351366690809736185353262351910158805125418490599007760007500246475362892176812028623379507025047141133111023218219442161064657798822449204655383631485337425470234018737374545711870882609591018046278603913356381572734077176633491211175655565079989342328524772526178464905112958982551911722333265338581419772366788486193571360925583095424248295074205828720843300061744367590492125575018330566356193070545898340843892460961562118121916897395285895277103761272406436973477272044161699742607541713038367613699852036298028536276328924804801867730056901601097749190020587516626948030018013288846972261150316383938946753493923905768013120793296285738078485048106746412580580908585838768384310415823135182687019783229956883297736281563931785773921968204682675429831967296794858638889366061368666278207174329950852718428748576519055996889200720288085205340693885520576665754342284262157068952205298860265324331367828825696716502222453263040269455675547974315712638305632575659106801815976790821346266742819328410351369772034035800661291846398902945965990844631524365968812298510183790340631666582122192616687648630447270666155815120310728689033238783770186966719096012754968282638037465332220339440717855331291726712293817910325019579686644416451475487008821655440462671459523501292743981894818009760346507635254045121102091590574350620666850213148968644687807741615972111025963923022935578881093231516213814793569477073512928672054090751764982745030925067907285492275761766412560148273067358731464276919787673329002489145237665669264554424374910435223650832792101156287311141722330226148799674436445098297973202917507739858009481180239392274453202158345916584729884746290074825065453794605190751140652833012577351996608255321590717223593117605005683478543070688305583687956138025976629288163245904072859852263467414372702844494156413854486814671373719793358899159716346200872151091498397322472132889614142560139899215461630473373557770430222807091629424542037808730377531081590257987982641440012046255782260388911362467739406522361042521331801883359602372040306611074519843879811267124812672887605934888005712286422446380148294007741767338965479289647697135147855583129106580784597745554903850063596838237197105680835454852310425672507252569945271587193848514370055546213166673948893063439750914902653044090701631870920661987150846399581674676547415551033217351841341595782722521390754315752539566164918517809841076835831178202687160883950634866552606805091417700102826328243797997369004999855149210009706102822558082786705106808894478716737884869003758926247208820632705981363040801925911080163139856739782705162836057365846589104929641182380557481878198011399920160356170954638152722000319840202665133291360672609597840807154632276359306233642155612148636545551785006927621748028760764137362680300347134587461311800514316938600822664636305398015666758730202681206078051262653144886889848796368052118985859652048170569472908014549389425917974627690798516499187954886495644994729040137038294993164607219438802302786736131112690124722662506636183498657457693107025414486059384817786945643839763789055087423716027876573857717855487738717693055973157576764446522362965002288766294397655226444412055463249250996606735167353742716347104247017828864942984365684793590780692820173720583087895109760260642756465531456147657538270908815005682859482072278776529531254359304552117292119127023798274275402863969100885922199371261686613095270502521650024376499743427420891517660432517102070688118226524650012736737999298471372879845007542192974241894237375802537797522296574509643512068206161037945480122665822420348213408640269085646329362160605986728323577270994752426543400933075939536609775108259125989551432712227663699108152687652181275136051179071266241907113675392673840501857665707712173852631134201162092792889839899901793424412735581750862628397696089336187611761433424618611909464529968595751081311924779222840359143970748557555470720101859132945503000799168120873045021301322368530154865965208051045722019494217380389005773611840215771908356870967812824862766420823235903714412887719103051119976090528627061334120523278808993444041264979969998640784655082896501123881966793271429109332995436306795706116563499968190312491745573697836199277997484479199323730142953337422531686744175968513244701552920792083246482770313084170084589149108693945426756847346924742658959899968993797920838557267122047104205091695556118963211798508363090282624508605931932170830264281471201256454529386051180225535068790439132415830454390769302186022338885206906353226508343128664944829732779824682489691544798232655317845606214854499845236847026150665157905322958136047598029803939477483292671503161006983252562725233943114945819675909837845178774394604862532445807609333634782950250359778330987967773736302977496894312457561459097318306665289713096908151941858026067725967325085153480856851445586507624763896112578194631184852924385776887021157577434290091576851177840449624378023938067674505360695896485206956282665878579645937172799310200324337518965333463628957448171272913117206870544990485589944478319906635881666497736216607673341322487320381946568726729216237937871681314169556792505208266977409847591728216895877206237597821062502551058670693820365474390292318811698222048851516212577285702580646288535132211109178452197941756137295997516839726031836468837654039823648768432111938569252868040962296452477850144594174470948357701689645715974235884884384725297153413807625223582215975920673699689134252147020677211603660224395738807034150725369482839666302890544332752987914857725563174780747300219243447027648263332950082877233915155932546620824513992968377262708433995987462836183877830390820398705433576437407039977317437149820677982453057387477354526649136667303749811882484423908453257933956619549941656477761954568201483699455866979557896422790229474381197576649524032625444228314980113323076904772793258631850202772270664856666387397004416317057547287072686765535269698215394268371583804410379396682687214895977793700215959342375551427917742222620888026155984553479257831241357354273525199950891914704476507570843486211909842923157988629994551753209730994416088358188294181177440858876094092012330187844311858583941738303508209109409304057657714732548285452131247664890127916572415626240075417072210880722150414599413896858137652906799926529630957754473797511244190183619625533085797509799963230214129080607296758623407534776075101165310724704173916000037007715729656004268032141839240929347311548689574535220678918971062089130122630215741775509103646575568240864441745360130868964000261280614755177118555958737983149440770051993717744317366986739447816524321902138538639521462953397840951772504232054069459753863801546395815321921897045119221787848948111853783122926568791063077358743211407462597957258369699469319748783489603531082520826883331266745555510239291704163220757585380887561074889871173757437269985827702456520089877004568806120133360372020271066015996837127477870828477091962283287729893772426966815577474566021335657972995482620602946213444493035965092708116422304072477195227834186372710937295909663293302134924675716908829007346100356077555916123670448963027898071380853451116531607503122081145416871127307019497715030949356522698681154681125015985094626862709240219860699741302114454886801101435199054391002965964650506426407471275928347862335740502294785038523013323681686281699545087775103724088252459845820560904295905432843937306437192221466147112860358177162642269485595196386553378879420822538635101308872554639543606484432640593505961661103016369204902922983584542060461060566650032571437826040000604817378306116787853010763204398366484147772390760693769064924921456934510749340185207546743727996625463034852938336524937934094174287025024327645712854136389743290767447918158752505776745442074738910237993580526100451346856007323022013959072656364556713153608097631461791817417414464945980482258905821638372078937781225671505479743403164223955981179322852568862328674326826161910086713784271008158871323784629092369974130421103457818977354063369549141371184262220359413762795162178343021390994777071191838569330281225091260034228251714055327604572395709958182086339966895796750404641709286683592101993764997870664773903656310095118299292024361010683547328477488248241925097255793734928516390279353565035589021615388027554140728043619345091748159173053967050016121306681278189646399888287831323734468673788346138661866404939870546692498819188544744312957823165075816506800056183868719233041608358838165613088162577632938138749612679889105921898578374317435632222155158411065659866197185092475112833931804850889825762385167773479143811981341213547764884702361358050662464235201448054761365114696839217194911671680731274551921470616160428469729887436422258307953693750258929770529805675746756330679732422754163869583478015192143107475157367050288365643587081998283408060114360639795025006359934973463393351464222920110008159371195841522755054212612976723098328238666277841494345880356481704921157470773207976388575743236571323590779638575947376674574759621491885985220335234615881213977172846991106577195104405684226783266685704770643376452440235834656825541516686699976514140813111467672334179424348727601532022030124181541005713087838462260911113382346899831602072060286276396146303129230428337104515692345913006696917928337719106550054561855940541756653900980142012184210790708760259007134370600919286956982507083389748104233036835433681259030273132491131363808252954982873625945421052780062937619953039117972528289526171427776893628740303936709988310110833292968524482922130262460036695451119690512534459448458260539257441635900284205724746479697567980916951591326621418006480871616031106683027999485415295078385248900811733958715462256565002610761402147772631390697983046310836111476640489981472178230228008793637429063253419969622549885761744764563272551365709995351161143595373587288330288472283493537177423770201944815853391344469718917128669069684261205871911473566715316752935112276117547104084062044750487927797135942129195459310230521252603678720266637033751967118543052711422315309717931075580345402980275882648082546800825343695896337949314767249369962956283341895302028276656109975737516911854681018647488676583420570645333676568384158309227132516826504493226818197925939254885862030867768992796157512696396531889745001295769351650256978066267906705270614432819686129760652538088231337919034574629230534533267613293674435440993523899061062058147003880611159600442956692451392915108869001814247322558810476181960557752279776977842293823164828822839124167470689820031896228047600536130729001178293418177255916874782420920685017583055566852380948283898552979038752139109102159635270288321238811861823297438926030633997681933057934641099181784894060438903652728320732372548411705219342103794534785574086504568954316836284000636770039224259145232060491275081660770508824585259207447959343317980616538562012271009890652338096005401820888475812777502166304682384743637192854396070623509208664103465205475760807993725474583802820481393482095839740390235778823133744391753756382848477113901841496616340425387405462156823073313768696102708076180593613524966641974959776512151105555304236908693551579821036375222600178928461418202307508051604870922841096355355210873010245353884619740176344131582015160026601893747925455474368914144477096679700654376212006864955244801385893333307324933294800618090401754942233764006944802560179680402561932174753732241260154929287985135374265016556053578151484485012242798577354566155083425983086683281898367400997918286536147875700089794341997739315616004032435356371375256338791523687910622419600645559132565327385608989368038439974631592144509114246411206145276009047578930619153129424026798008946075034227443877854486891773322453267742712762168021758329753889079666199991205893614529350682751465530875651560944386221523940248267096865377042429127476918649315924961066820266393652787836073290807861356589059935303316289904880234349716951161503532064303198353631400971974768213945287211651530828302448793021349597427878171483665350563176880177043293742444777454674140896277001152314330806907003426844487489543804000593887338708072898821527421537565136474912337365654094997495895045324480991282261449900931288871413478351536561982757367636070799803033915826032030687701377469876751188953122603513524273417516514164588592496059034960920857870195031492272492112193968512086452529952803528660165340736260853970786414707604709553785030424965035884670359453201133336269142763843191196629472762433737751174165907244594058638432614089308771933329285763758250042116745710149499566370244266114142850504799286253586133699014647644465345506509448400525952363117224932055242514743101408497304107709685962940782696556134750302105814786559325680064042052831396658056905179057423442740293859352320375137784088990467468415138823621525140667079535270574927013315617207076269001627959896862924453829201850763958687169850144756547433235436526023034688413326585194875939254820955013453987514667543777451871593513432472578661331328355296662948513019816939682458833734621603497239789888770880661370085256194052914956446605228167756389752270499393107685852237267213817498954914035414590259664784659496010882986269705955163573231158552404469393796171943812833302996191424216527904743309459858079590042739070469006115397850217713850268512747194198075181117027369651506020929624526983835506916724469633552510335721605598870825491759861852567461407509248182802114179175806284066818529824488850538269577846769810034487372451587271121634669202651854672493569290081012339574305298649715317003296469513650284799444008909788837676078546227396982494420602687684501597177035454737085989618936132004157940330734815656860645949938479985105181690734632839799937594073171068651659831933441288507397293178425673763856800270686463911483121557152224090660202811766049495603588712117661965968518206790688886146749818140449642289264774745674476018112292554239493731295262311493099028680382292539906060448484351416556759028977280150202034188626901238882987447580613554154241485952458719117809181448770023520968135117824261641608881398947484336252543510504847135192254898328530651629235916941755682556179047475625384374699997417684511928188349023603114847884193048492847329138622874667849871915901402354135461979054569988334452847290413601205460837291945290068896495528237535223268786193231637090844661670797141580810399933891561485093093788773104362130721515816029578343201519255387740234576874477552320240564261966175846855422772828923318106919740593287445493035484727959824921231205660879346302994801881450734184004864797301320955394944480700404101126948374624343397034774393536319342584604940799598228828516720941650644653881096725506800735283621030796700038291322151550375927206093477439781559004468016963197296222645460869285431484819282093044339611098561980637731743857284452437182787072362346453645252150470419341746599478631663449984989982255745520261051853760584107381625239661373577211191107062155132498807525815702375505993920661037840650707007855607170939399038394610226242629353536247012354432088585547717597952559871524552596254750335138727106646179523022402248257237307356600472161929560931300465333120552440825353292953728502461086688088780657691657569374778077044065983644813049961302880645187624794869175093060058562676300774750569753666197948718837646504433991299510646720616957496229805971407757537257596019336288574574968254816946800313099447868077427713025460535827668483818113124021061633824651974303626697726321146144000840907656092792040047101408294222709748344575790843439522067425298355567772182931657607007766661344665628756898596785843319536581208136240119616514261860141165804974831786452585081485689154069228414563211272534491372020819745956474138429579025915998910392531586335621019286576517810448670273700504281316810078438217408873474968743840108414530957627153347491595670062909201117193763753245780800374549194654479011895980029021269663009003286752672627570558393404251259622478217964061532645803218473686098818084638277918944611577422416235045309354442321618911638849569649021190705438292845547896964641603407962302144548886864164167261712769471153409265643311388621019865017577003658157240262438217710787664947667045850679692438020008124420494354073912737210749164912365349935577769137108955016543315863791249285515605805602156134727147089464170293433840199890384852423402875470079042669111959513196177362398275331386917997854431041664680979982924621724068125036058600776828398464454700228218046352708261826055449314650604084662460348732462360884272659594253320100868642824013290820845301631504032390642170310132374383359758148176025323285649416500571259174016176011045165119441617374543262128947113076482899799003217313797578267202147480364069279927215120900765267389023173424370497393769014321543451733117929555371370383087038878899321663442388678640103292603488554844269969280095934929010987156852877281333406480476144177403003969240200343537596489928512707265065333431171346636424943278965184223305346347132539119355296901774844594474191381831665533126984099876021599793306108035688764935162142920230346332370987254273826945380011550219533381230429895812950842583653308508443469554520760525056610064358114836371905381956840502480987594550399317846694212011234973669877691442744954270100421524803874650104480349833955591743833862602259919843562322306545269380634836730868068583317053148717916338866916980738901777358434953343361450204570222640264466767538653258329105163343414036418073944483950343264632569872999536133487100243589151239762479583762868648109153140411932886279886784625289691691090335223111696784407523271714951090070160787272147266646672009599846089827371524855064403000750366517842245611893836224750094523932684718388592915781761045198156110573547424283605676042024941763111645451187822354632336099250213587692699689972761765073766397039198655888836707971623732433929654409849441901223305816334074279385859948694943165404226599510728512956070346937727116088450737761679489169700556940629789828169580606926394822228233883207608507775983700639332046568570053411745281973902129407062276825636115655372151910271648450138124450689669064853773639506725489982137853191436798366472023466058643186363062271177221371496645466228636692521686654511576291713007090223778410963550271849583750055080895061402992175694608667100610456282241690767666571278763011225417051293354348923777195482537239918474886566596717861224393460279130768289399995068330550796695175611882117483643708700743388429262432919133705347530870201789203525735259934051902698973696230352661851863360075984167583314506274620716857656426301456108897884961905270446268575388346608500375221154906180331481228037363728734543860919391945922604726989669367023439967434292719000883521845457501179235713931369980048841565904976210898012123131784121198840414501896955460375098296928659457636478175859478289150140423207112920094950685429817735160894215133033451155362597699464199054026073712438952099220646460830972320459898952164341282508670352790614833897140726067049879460012955385160215233087732996598587933942331645582600530673662006780401459379294113595322396200465428479553492878823250368895597220965205756138392333533368226636578742740688466245644685254565134753087815302256002014988036478020528430506034991690621019024080857882498830126052486144773002141267996429014911205859171367666209271296401550073507349934265750442425626952189266536641967930424192337309091216840940179493781805705773796400382530548358904976569524725398061841910918525453691963571071382200387554479954154838800000700249416766812000378752192124974953274151041130195455599220031914486047765640948494269038089386455927227796224051277729361218061806432414287890908649922464840730413253458704385605159702979923886095499600236536118394474973159654842701266710404699714013592529753814868947679041353344644534323781785346761552043549946232140495620125119927063957383370739593550992149255980452544476707544695214077428240782956582194172453899408216499235620290789889687060368804725106778038249272230650755973438659655977999514065263148839383224932162524669693958025223016946680230114585045979546825602036004639392870439116250385109920441097095631330262115221777911612211021276652132980703158162813464127239005879641379752999233381077817987526231083782833682813954380431643533193139760864149482071194560914450247230883070799107430746993091647770085454497033472626099494518403440133004991640463275324577754196341580745445023377571331535027396530595882395617633890186302722066194132369377241841076374440735205257565891948922953451969422240342590370362439989805218974957696402314104504878402325757783755114968212633392639077060941673371355592244107744178830564247261868812411582800755949631939998303626011258350924033979277164423507198489315431236903881941250091438818427546819011790278697476700544612770070140593438112228243283784047285178342736679956039801491594757709092043263184087006610427064544746003259972799439777262732669134011814055989523783858224242004602766814096710922376345253535753475929952957716770767955515048658659894504499007455179291510525164667277688406430434095843808157268444960104554255920930247103207266508236712181397202702730015819880619210833663593426997215629157274272778724933834675356254451868958084889638938641941847305784746370444447897492437120658112025324250377162565277608502850859098955046644272096241220652507138566893129010103355562959771168620924663007955676140566419424409439179711958943770843440464631319572844775249862293060460262000092227093067548842927668855007769367976833783563666219013758633842527596956189885080000131311871919092959482133209355373821676549910946016921935955579636663719063837357879244712901309573447654870345468255203433330483437809665623828671402542761929753551612766350861621864142823506558605241164385134379614275585093373072683610256112458574358330616897018775618861463970505556466916210672645610605114591691730724164688819460879043751055862963797491867533568420264760421317076791202871550694399217257362323811100239730300253209701238151067718374124604276684702768144886117180194511790916695664759687877908446734125276350822224081615974495062794634233075122875740908359330249999385931080766644166034322431612322783263538853147849591900812681708799031798387664051208623593660986700069686287825912303738380961419017644045829890128594521487443918643311952865941998554140017870877519850684799401248875591599457659270866002112668984878437074261124573070369394284192496737390374304116623697519418879607005456552555825223426044322518577020051966322245489580372923298323036891754479285056790711384273331253085475117161011746226805725190765834577350764681416986808812709437984672014187233664984460304220653874840019171633916975852536042115105520924301335303619952053675159495892326307782901241549086451087676755269079839659290425769058849581197096294856877408716538758275560481451841402482172591510281014903691334697963074122198010041080116075751808503764249907420814269673855832104170653415329819567764849403259538383320499525645216114576105045807439707811996926974490083841988835761649727466054958216662487073721292295598341102605522000698771883365079101538504434245569226610816420479394046326991878415743495152215886731446813279716395744393747245872845168876046061383513972300044997075504517671681820296119287831541347729559342625740733193176566869192226305148985601042948353691370242942588866986048809909137288549179704061361445627148886625485320313231429663424043443440422304935871390238346519927195115247797954419191464075590781703812784693892449848182390791986139003181840483884732873451100403583252850514837263174996029469270153352919310619490570651213982611643510012575327789922325425077037194095222460402124539342298223606050215972044247270533769344442151422117589098075012037032277239158613207515579535666925644421708503681344012186258768941059069397822075150471423842286055667246944215880385073373860269398475219502639011851507600425203490371142253840372282885955846199641834306381340323653833582024340078372071823182917140004873703453676700621646599185461574859477575267136327745734168035722626962461268377798413914552393444875300666452002814320240184278541608264811983265556915350170107938716054963746502558602532672565419737628684303761062312126433744683140274040801863454816591185234584011492816789892433802569622421585175198214994931023469367744903789810551475162554056196961430210906861526548350186588813501009612314782880010802361316142220394362896937175171895834762460109870195396349542516413101742479517216897270926618068974484729967316193122786179009478470862702896582866732003988176816187518000394551575387321946663283815969126104496583329023364865797532158281650884170795069799945771614920220170573362082043594472833796813190745425813200302145003998034146773701862065924804174650834648597946230273390132693567189368922634026590449441432697146645766510900083821117067331025948504390718606747764516136878813601182401249009201544105108912386420653581610758699272033073146928925752006555694332030760849127175273095542069261268833005518921440596809959950205913521405558345892841628671791928612336283704474909396452344696068729052217595133292153607659619302920922330398776972807067931224887681377969646145264600413744601660173350755403139088617160371344883702935537097599790860450230229976737560889346841602076888075631787318614427381973604177851501911048015176252601153200727271125584778294852260954135950159005722090877781389731027465278451260956562376067352466703222308407995647379897538873725888674721816499667430578903779761796125367512649330455619387163012674349989722241441663888445657621700640193630935391782199960614999661867088073340047766545203150891867045211843335535096042853086292187889896613680717977080226319301064445166748665250352231569744938433201944855700166623839428587089774477861955663707242500493837402009718210926022818622082331642173995578600907592089904139008342175845110309005333328844488904516405992505660782797402541278013137978371999597595325949953614273999612927875997136625676290471745030291442014639654382661379202997374696172270399872325926117473957375181199329248304059809059182380314961901289365283313964061186445218024667333450246710359746345173096377755070438606070223919751503718051369830263912371053240714134305877296644786071068440023216408198456571387417375558758735689548816275259017725879305816806824107184383010351872002013077246603357614819808660607161453959036909162395903162455379696609193482224768375761795082044585807917253770861706685992132387473512219149047081961857693948953311683535738679008342469061859936233111878106224744361383078587545264683112707583810286311979970869819125104129424067123514661949233623033535226550321281763236592301519750648026663706959993009927147840123688560692885234199325189532292715859768754196922013254680609121971938414948930871886650880736555598868716012658580296625277127901335357044126625017675760287498436280831639783953846325734145723418355880465047461798373553225075296121002417865882091761785408015079520707224377726070028795372411374821563425493092349184924807623676992315547467098972461697136487546065129517783493181118679357630643788557651576501525966120938436087452417434523233764430006321053492211914886046780063181825653569426731416559452182067931304146022779970583092010298616579710553418582293549699395017168561419362055592051170578242063357342182029082311477043519776773476467886631718247155678271289670215691553071371481707346691674642670049638783945415635337963464359641675512703387204343783161853818704009998178867177936293098625882940311609685824910780824788784541155284959883352659222863781806684112136047074503685921429206168305368108778288533422376782474807404813562357659082696249136340852519866042385661185539592357941371090655556685454030407209056602097149254882550060869793703284591332478219536246268407609513878583549827417350099912662772616557208872561355673693534547980537667366421000994295630677088050214951941027858993755509340033147917481022587622136252451422004621119598554187269953813059586685751235213224677288777332563899754918929096366892750576599233430713768669183049042202450176885771733474970004763854117173664636425233335352970521362465077123101559035517053900449056284979311447873583681187745104268471372646782899244555048508599288782289131126849582622479941215319795717680968364194406871624865596187841094988036706723871916855270286097311156138909584832578151137405659624972663006852643222351247506815839426912051579160552707638092709713047496034257595297768667656220987384062620112834070505557281746433112160643965719291948958889377246988609358236708020966043243114773870452841331362919765936228559980967996076779031743821439849191497602533774704052869125596696956422958168456439797944314094509420959066463359026018150535679551965974827942195886663298066263479232813241234773349235826131621476533153482653978966081962739437280488295610975733607759227999165717909657390024173561828397586808268545982308771029332326005319545803429233615052124339958045394941289870565563849909802409974719461781522502248608104346617828810207493346907554297276170917406079915843413193465840589491021235774259070063324766621029179341520309656356850986843850767884229048056198726729041473801575285389706540342312133946367233189945473427053401364994520481212586422723596538553418443035904552437159502838901262401485030829015471629235471685290013911249689252449860189818805086582828860408119410692292651911236023870726050828609470788588198579570125646052737100152814174995886607457656806540187382099582946687012864125587618032835477634692365006092387940007421844619142729339599773582069154824975973760152233538159867880350153823729241237737110818346556845536345026989622675424638172196721620172747550763575981886050707006358580150592847354188598753840378489806581937266727239183358293633482622776155221561383102389839528119645965552421304873867128696405317808412347129381118866737716593374443804115772871993801225412706105646923780447708332194322912465153503188810775428288908066738861661552147754929971316787308702548320929980907968208323032797068076190189539929429744708686839290333260642284957041382881036530474395582287891723223073953874010935256492785161393977672534010239243623425062687097270718788707254010550257674601629739960262263352098947563126709977639430581146307157783547127095061865840930034681271232598346667147891593703936451356476534894329491183048945588369699176364376540517523133099649060345143385080776407065980663870983654846838114281188327831545445093750951694039633657813600847980909669402509070230001240430430678481649057294316358284761252611633129254218571177637878637073029730620824746956812772392968243437868904198842752897294964106075781171846683972408407745748065714671164813086034819877920871735671436918499961257421809026499985481771631810265690714596832320999014370293919915205209624319004692114909299039699726645932636250029426440658386084575016516421405641560706412747464650462489860163328628999638322221400188208130142033167958860568862856409937999770302818191674994846899028043466281880064992111439699464469133434985794469798270113078796183042035435033892366280625430417656595410625688443365548835368807072566616960153969379827553378926956001367817176376236690404857163154889623103418097804926819967212028314863738934822882287637977412752886886020128025366376121305963060783336574561314106995830627542884107166237203526985083517599231022339665101165526093586320264328931053173897849769907783290261910725530474353767650361070497863656475404084804635943597416191259928784058144987737764972197248900606644521549781852528929094109116569551581846528750651654740271543355065413022579231912727351462804098945535436307748625378105205763509629862291680984913545164163478788080990921980550138631814469991428068899544388072202554652092763507260169237358558211729898298081618068396474878340617660741381888282092970359715986630014552313986839957533626054438903073529680252975635386420195287593031942753190657608956916314324368835227961520539626956238085675226392946737713044588100044626838817147978530124996372424194488307593820075069284956597975133369741413722154801865735622719775643068613427090235782597394647031212428660226125558241893216744683556470690282757113620744634058525060732424820774934066729068161800037791139828702529348958917813849330378627727826173312164990237670031326627233354011762121910139321543066260068263630660622161075192481759743770153614231513892164589419488544268935985110098975575650799061520138535258211275684034810058401315263304551483704527116286536728746831231593064617606241839432991733242508442254646451389904949640571670645214160381585376484141266484278019152921035429443559799265180210683698457366900655391711113175970671666768795516686102822244483993498196570102668166235640872265745677047829857974640511439351561640923138671874585076600108245742405239390276258878315597823081273016544608188692305695026456096197661867446375674233816120489209719545489315112256618070338022790146340592441291805499077005592225455647092030448402687748312270116375961636156993137884792787483322802263220206417436800193527263397312786909456664856086034634903012776224544945721789834879040389816360867113225379367871964138844081298501941790021382118377758205402471428740030097065218058384043623022414292099105277438544731618171648686184582277560021306468822664502915537689981624669424966858294173487938827298464898076144182407845315778711118109737247216436224381395866862305959122900853590196761191746384745469358010541873920334049863630685686842106908556936891743539441413081437310455374878229073149467563015995926425847324547325227211316806842761437370957164404146593479992482361881213014825807928012511561562162233293635250751617795257341458180855387733173355259221381895471342353811047679849374277242121964423048582139449297043999219316172908967909712981478599093082576829274388129107327311387986981593310827418555459207340894350120465088282044530025293974632151802707962615414515540727716437330487281315245735473293699614918882359181052386488698589814048674208680176143982449114667580152817251220187519375590576766971289673278044751096832521696730196418803991105540775921082620873477233266002940925968372316263217077197750924720950454517821675014391551797881708044017393220591980845531889532004753134435495469244551579953253288766688943007734554983498298033467439031554278138358469738393002890840033341425312286595436178035731202980518211107938889162239525166607486250407768088303180788627931299761048726402757703283756942667224897515319238746509446609974411604443668470763866830246728288532075675324028668005794587142427264366736598788203933913046361146078070681769893108683566627719811449084568215448981354308640656589730529989874003364243226593294836546565325884377689276450049383216559146282707574374582090521224624207216952066078559864373411118209234587560392171316011220856183752457548655710488454832390350673007577234940410527995458596138473496158368683373365182534857825335753009571667250631758370580411717659786963500484881340528925247004143222676371942322999954277788750748449407216574497820258635845241510233722714275414545384950935467994928527861091748410427412191310206604878677514872326392077764057100612169046136460264858961873298151887058354465725830657207635683539901791329597117454947300953875500232159281980589292120143667613712496952734566205646776384449233732500173934895403712673616411529966092504714725971246274498241651320256823209859197054802906174992250028005977942447349537948986434362952428230432842303583627271162790458488098025143225870204768517803374872625912566165044867948181586331957029218980836006037677550404296971170911832783565576552905280205090874016699856328308580074871722794434780925286658648248858159714403298384326506319634958178684719227260182396575531687875967206058011394859370404268148008636445532248007805222976694681460774928549491991821332701986674669390695262720623153217607535564633425153967612110056307892630290155121778872265727748365543597619546312930812858471154328348229272148709891585438853218358186087210431243901071179537216130039852500469786786044219616389867327752556770547072826342739070655911934697822580645070043967706901605067433022860412049364631997713176133754136879281633009074615147794088162237041884672324796502127503735524377415875417512502698803007391375338826262672692828075847789015624755349955906920640713805069888903164945011903571315570216073116565193638906991237757857745964056946361339302085730501676708054454902388278536856705874585072713409893354979318559818437631861094751406902700800306496895472195022928780575554467156534209974670998104398614433196277855831394366990050518411099698549252027963161677733941141737917165797683609696952162422901265954697489445766643336249881183457672551750216216347570335884828163817706077018059018593252552769889224295482578565466497796567831853474039995241012350739093100160975379626887854745916663728270057267888616699530004464769386710667890477535755673490114512134023928674808601346689567712420488026388952697998876994256413462326914641438043122344721595802791018372643371589891454848194233131261741786683601072257717402575566806980134052341370434170091426476723745570665316062864348675053023052161788152183621670308016278591103990123560833446569248187772616295789593035119374117618893873548562136078447082404092517921887864965516749681890296163213574551431028123876872427641122085716768567062680523492223044281723234632856266559223051343464584754358962304676742105631135016283187826250299971718333219787592066834532200189832052214599420777584552720742350118947913765565153173482455097427239285483681304134670485548293947119163759110985235903907396068721690870485824006635574504542920569902317134366309959607509323293360465127892590505297258746169799727546069755840301754225190144909801339764823576441262812422050059180084589610077027953930067195987169650532277823043326211975653350932109991864064839755854086375288077225069991721731965444181113621023246265392233550756086285457541836809141320504677082232801014658079368319999331599216120368740538903130973650052591140708930573490980699612559959739956891086746189887997821047060186223599541266109787825825538387763863369166685439592681285909241089252110232058975825460050636700874305597260335636790943883001992452570153300750298754951300444380059774684324983911650136776911428474422575139226316598570120093007241845243719309823102633553361091556577307029270089575546437824118809303145698124664964506839697071336591645048626905586401350782581996355404184089771009617162284953432595090073615011595859312132894460229973216576087935396527567255987961141299374842286794811232971746414003066161219903696533021706946166488294355467360120359342505750412680819436293459941298243085743784757396071464640820227093754171477489324926142772836433168814560159746997945060507413546817173082607775231365230699185112632969290061705050637700997358973952140285961797484120896341498023716829571259640573678168411591056328952361558867258592268500401982925195878282901972489909127071542485511377779784449881017284026157970078246048738296808520192131489537694851611831010967932008863948925755341646070944170438028801795119040643365105980500518451744329380503152529934065049355616218560089398621968686741072745100278181934302325362527418224874630619095688403702491648594878208502480885046326943144314846063516377525348716571558235991395613108042024188934369437745522743815897222436161768632561951703203847770360402169762101364612405290978426409447726148172001388968067125738681720702782332710521596597437563318924117804088571747550625642633560764927722114207671832732963812913403148536016074224273062201743948009276466281394629962965517221625168508672759770521580671536629491903167556826019356162764212421602994666786623990850122323187505155182280706513849524018640182244706037379150462002699429744219107010075631740572206611968531218315142156816287782650707223581908332432887726127423902274745533541338198112718230959706471452096454590339947144150990981370526316970222372453314451736581808964415608223686044449211812579062673666092565791399614105172956764783588074474421899385062884053705388529862322066587090216839986386131289899899726068960156508663813202150238151777776384909291374099553575286922532183539453127565135705213142780416620957148152623390169322513564393066974514011128497937695263079738591428019015554726858366338073173388717965772011938496795659938094645260609063405810859513532678833966102311862996845119643613793816969186232465976287985198326353094190753443850783502232723799305008522426006519244100266805907078545879591009585943782526571592075645985244495073632854630885142578164868256027746060255945446862067835503195596340647880806734378032929500304971612050220108679315099122356081743872101507715073863991882597276664125666556586430172376337417097007421233914226966624040921654049837071350065098985256460340938515041959601289484259777303117057932303455917051044981888089884687928631986662995152253138303456726874864298744527246315203887249119422692731819907684337332207345880692448714058858678759370043278106204195432438004165804322036217247221528994827424674911628300803086986740872975520859512512797655463792493413166940265860199940031873275219837228470295218934387925295191974532443326938894096030609711282923723478980223678741618181928955333825499575263647827176657970636636876215119835827953076664835148804514401065516963173682191700161336479916294512958599933599824438588313690789585570585317278051032094346886304903544066496851147055832213255649370968351007667907344740624051350482867242425442482587254077071004745182981115575531941707511526578533543099085658759407543396559111419773760713094921569068195881679753641461965749096622912939890366119514854870090367386238916495646931599925534905654212732514009400268423819707395827146546308720689274701341952053312533532176565021956010506392628612854652279395372074011636616656986219642634400078317038350618707565655606671305268388589087142000479282204071574646237180905229908276840407649465901435888115083793102768270176172544239231834716862310243639286969701127908255206550622838763034931845826862253632070236899803732343090792822514606784340857448550319373343071598202108824569031649881737000527665188067736309239257218985292452735562405696412964102285834260718714247067717251950099783450471405984335832567312707508717141217748735646198995723904480684197376518814572612787258454630674824631300974142803807556519424557116152664243501477527964703036347866883387218486262011239453783115961407238789421478568981164216947746036533382190203944887309537423824851238064674735027354651065756440278268901939924190071979465799981999607119938122191353716595383294079005380631579820971550917433920500300336075411838605752137313627503671658045437832571038540290835825890213891071098837785176703284161604762078799562408620287513580188030772553020127218483411628706043463722691491578131942974400274756832816157529574174502599933045378809359519766213982141763330410949916642317648145751109915566437259987661594486463845972358908039062035643117217904637078723236245901176245361091674161998527112667752135190204879560177501406188136864369623049336928483749991979969217672441544780096536797445270050540710818704183933256657683144069988391129399203156939786251692090586261104085995500970727774936031342079890160506034050963582745518915173574122526847250778769118466393695549867569533983640361708418186983568231877670993568185912938370792519914151705424197878049361600911567863039952743930883643130598777954986879156558741634260156080051126527477260843023629035092698726895810518287054806176840109751966935787873877382298619387981779222672088314261500017158798527011220074126863802268772855926969644126422345467262695149345277950691557437228607262652272916566388675674976051588293254161774266878222857656684805598050428617224123527096915496688822849129669110056027447698188075721075122644064562062405286365939607124390866594023898668782443983712531675152089254127356203425387087355089513214974350491230523097189534873201508887980852863532950007888531157068914832690186214301855103573288820073761477173001490481142396025729945900107180108865463980364964276107476124337230228754823629647794939031136125632516028740537769278976057237029536258501406840136120902909297599524038576057714092628614736922032222268526065283669580927322821607358241656898676039820218711781637865231969063169233241346537366616377268537914440490055175295654598163882028170596582339029354862939159358799934076430356365084737584109254975247664275619907170310037527501680387709797798686815630222681508511263956844341073844406455103076430809201590696353174369577478298095778752381575324412351630880294358855441172893827938898260679139224867502689088082888267939933384330785229555470474394735878021976194878403414996952664214017777319125055056204874157001433695677281463080368491305133582641240721619821406641181068895491749554187660248539764273290121332465472497350944810329323858026889047321580294768710562079392043529896438428593312380873078029101752751807533004936547943701284388865080631228016252535802006327050970329119332832643281107262260686423131576484621968946473429958371405425539704467527395316736401519399086168282633211382591722230182758220621170613035515317198234591636624459836930474347249504627814040793073050705146042679221423098093360673154165995446075618673729515853886336056527888499877919031602172787531370429149368849373452482029785431495478810029730154170778977270732175331569275188236070300485780277629271280965897797168807594429820293745409307628752664183762934758820525780869017866581816668173930519895090107723978001456209001858558959281223479292942489967843487384864008698619889524170573147372930105189079235207253706508503446519408943823207197472539767872700145459519896593168493524298103140815844360730661835829436006443338278214036699047154370310996591746884148881530149444480403350493024077742640957479433152209989305745665869396284014892472611210907216814193229483218256391234422384943909909846339494841679662564245501783744398713165336909020840690236662592911182421488132893909994640535130382875824600200228718418260656761613304191883180394310683793040228131965029925495733268524521687226006569089606856201816119967606429753568286643315966403857908637887625080388551267510448085175322350319382657288459138965091017177122533441763593399869480640112584524397094260848002627339656999063271363617766185781098976137635755640723229028000569197998380122802703113042852645211424578516601664700286734360092138166883966018680418389886029747278430380062971681524376576284135647850572855972806774961044174924977076214052830904470430956812678839495721646409759005446735153907959895199063065344125535572805524967543097482437824828347272567482395271032390762254845509708069664211719349111508316851638988667078558615540918989856801013619696708493943856904494831203689891096044628469168238301998585561511961327930193501343843130850410255079230441750606590902003117904396348851488858344254545922246939133641565933032786626418874491594139340988650694418119661736979254804479932733550343679043253028945147694432527304530146412901127671305667809601681545221670041762583968744682247446009696977248860541337955138506432283883808590770049604508791501792013627131695231355844493902492958402315057845181463961035803858186243427279420806906151583824169924657984885046269507786459077728527697189591664942902186943849323627402111880895813661683824375837982741106951673260683053275111121013699458081665085200043142531504826351125262295731342300820792587969480347715493470408836221646336589962955778513209722958355455041009657073536496864761804216045249683339400684492169360477669155015312934512330049444256268874467581704689011967077489682144774682291522611029104681166996788870002090887385898182105212846165161755529400079217010768588079914742032266466604652934790443158562525706488533157857069725079866134909779425815597461622695995552850959915162241446580023009112546983548560081633553399483786104760592549344776959900633898569318465339088973742687730615699230574319780314700191111621849979059023343675655967585124491310886588267748948576198567747041249624645276993474415217717867531772464676330823145452132000056576876407072613920404098373679853014620224454782079423998116658730938375782703754596972883145062166678321664831524198863013211935238509408070408545444014906800373697218459492484430931787523934135346857357497913148672071854492773465379792134997544312476222971534560829151638757975523458730310382201228980375486900926134208556986548899619545793246169787462655993688124154238041273399202757479185522606564979758524125280776741541677550178544999384282617150316362137382727753179563584945051848634220542338103112747870156165373990081441532080463988700520336383274819845582387653026242574077119547748504040401461388266550585309629315687225144363336117481486841229255214295471517657833209694645307917649064647381988964189831664613791344381073264097023630671576975781636361791961618232768668740256492064011370758436806281937380978315796531338955913824884826409517698219981105853426875400019887683731225343487807808262450593527763285159421325153092101181730464557161439345118164476681722967940216936253683372381818050570255365482993705665461423004562826598880228729853604811518170450079525627223153725774527662000228733016849750103439222263350927821842746886194753629614353909242616649101974083209296312027727036640669524843416025217353281557566480120656588682770788911829445622696678544137065839305217257754940693407665958794932176768766785626444572517671872891658460196531165282382245536870643493046248823599117030081485503140316925888440695114146806736248233556183413964797288683968733916790784266830257673748811651662042178398735345930282061909747100011405741325992836170402751833795776321472135885013259566072000029598448540507500412998759122351236547751660835887182673282958471086109465683198311463428305095404480320614353045986502436611945112558553575920024026641202209675098196399296379998865199221187151129645737631734783048575115401286454460210109265724971947152941901068795428687864685693735403677589930160681024942730473168864753761020207271008843879699529330894092597059599394014785017858526119007742213295751506503213452754525690914970044904229888328873019669593347143625075314441379537406173620773433629068707572581904969908043739681021754889519155817434306321719495638660534891386855706296402341808871098224270213172078951061739349660521767266852698501347223559233514006577722186744388223236488147392429959675854284594602057913771706010892938147689397028055414513965432481056309488292560220520353159278850297645149168930522568431432876576404877279304530784749626689004516154587969366484619412630376532794879289619026904351740743221320442525578790802688452449306091484727320244194055766770042131857027717575731102895281344506661624359850685839634038878037295368073435345586339876254616214193583694077140378153946970904120508903436275454523905441468102638711281566989587618669134247606951388948590219350891286931024439821399976527234645128529732356429647308942692737276232824891985823702442262494716894112163743670215718899055837108554289556249991187975775465618331296724869675023210810983445991361857139055466535449417202510642610136284475288101483578048995730465528102466802274260678908818027404004047948380770944172477307171504126639718928831772664544852262655222177553760998957994614704116769127268313712301958654935368657945040066676601150004273259740029387529901410485137459586612253859645362641558827198393483842750702171065997177513826664193426442668930414312271774203524650008769489281955979775032792541988075376871124901278010714735374155168845272917396185401167157347691726990330000053826125581484813643119091967843629079340954922837266868832323547565331431658166400669866985889734608673506187927600417216406730789222202558598064574911332916469906889077393244134549963525243978087248631035946475651992512831895520815541878135995922882635518490647885493711134763514206488754936629608976662764254161077121727345643448732788749637450387261370842616947796938145149623063590409029467770130457280772086067156448532398705200778777574706486183769561857272599165414210707421944968376585572914310250900441708431730517690496637893876401646123236521762886548436402787881456316506196667182827267634365563097009064004477766692847818575952999589773343916095438837362796792413147756335850425314965874833384527750212810382616376375258833441118034730772070228407070440816753589275561447118049354634394913892706500488764766353582572401818650533158839405491234213689856162602897322867362660521028822561456830157803558071237695296117213430455914582608100319949561935143202468999833720638141067007740655276319176121677576830021784411142988236231454906852098965951558046525805238626961448454883260199846714620177663271515462236057691337125874743453561581504696874717126989613655595953028734536618762512118161765621736318986451515671935097915623114479302412696877544857280065054743874450676992754171055665906118753538596522993919972110518814478349771315903395638752558556006847861250057840050595655411272952754918919534213489489601541634934175755193804885115292316997680511419564548361022328955135495102524284016421288386172062597835766695399845458806386367527056203663146997814098002989064229539903393772763006632178672791131074734937933608980125546840415783945391539479563306159403433634132898791965781391948681022896453324647282036798850081416175075553316793663954627914998378903890253455732503729627568820279216797236568329754302213867146200588910235685585127487605666269847944326710087126260128871277628039116263861039380360587927935597508832027018327854152686055703528699163207450305856400367847775411978425930137692019256754588830719153995823429237842726917395852258793293144438181993927204916042740717379577530162608893816972906755402777444978178343134309861302322012935091688109180454563992281254892949257377291748706914318978557541430520342183102053060041805550146203629721530111776091134243643973334828631088654326791326037866169263151092193529820918816837047073750378832222669895744801935576385876574836329854888562891103330313272127087404737993644439054368009721701400733331232888736820574122842898980109880780087157452614572858141221334541481938085469979480208166283134136396388371453722494452982049770247439387216745786960208701167773176180015607111499653487603909966096594698597758246883205864641605191570873902571107478434098455720935969418029545836309849902141928128353963418437947858605807790949719439088085467903152885261969483167470971161002211881919791708509111467352672592022949695495166836810697962619029601431232828395588864997530524281707810933453583862019004584297933197241399303671196136420169782842664249548631899523481532298597626787633192826209936223385098124142162386253423448961178683328541982268413140382228268182650791890762983160675217671939256586482217140893467129501532212454888721684645860077829995181472187852686738353771688621802293609931597591656235655180360922440646013116783062179747273307978302697427922148194238507575440987248662912076880332061791489065106123539865388641860287505901064364553477393914697113497772257885362337706859201278685326982909873565852687143226796724381258818536085987056495535073844834455224077609364296270984925998758245159767113501901268536100073553084036269530614507320525328192536234409901559104976153579127218897906228522609820489698441673349282526628788564861471757520472670936181667575002319430457419485543699079616503365462057726297475068785850473006232791099830863937619376974106423161639455751319683481883075888423702758516579545556787539597772937758302598522513873338217703579060000871731058511829597540424907823886145886782164430220424697430716530777260125612534738382866785265713730361242995851614475529595439347677497304610828947163004760974345002691305880432967853094609600938628134517586984277425838361748053786275066827537705119772522263132495443897614846023070300417102380380365605314903096160907581531638297067867520438497350145869337047257553743197717686671708587644296307515793620857511085390041255592209496192157457238595093530698097195483319307416722945184806564798625694894026208278477920330267320284157882903628733097444173302361158318692363830573453771601434873526848366127684859797161457790045793407337743981894357145415318528776279093071518821244488389141866468544074663299518860194920883735906935286146394434854121139236466938158914733108313483926300343663878350178742677138540770008675432362473864597905186504285742315068141055935260690010680862373070564060779542250021223787990210451089424255086512885169930656583221039310946966883540269442057623183707550762340600374277245657312585783205737207544735751350660125976033623440151772106853049012220023956323697202978436532342667379427892432679035881154521917858675096206287195383624183431859574595257430014101098905030039863046106560082005305516918582201397281838847091053712057825537217429934811907927907201182292696709647954217387049083323486044863063781247550409367215566635791737345992424361130516871802093962069695486162445620736593549075496418065357657309832988060068161446738747408741881084422081975641937344524808519986294166104578925973641571632766824819302597952887127138521702164545049955196945419258351596698258436356965135605180255019473152076998782177885596876435070274547711690371553162384007311729209106737970194095665815466471353583487961908743725591559690928813134858414974251439976108880497088100783876410185969111621081480386204070236482571943993320725412502588611058009123507476083366441932327368165321214570962875137501278881550762863217363780715416031655888289958405738813901128251769213367725148690101916321585407484036587422580816015766280360822059222014226464546485294582527968680549008657613067278442173214932356942394278917961534207583908609605626373960479015174508982618431707582048763842192002184276918912289052667385119922814174462712794403987712400453422502285055279475697323385086139817654220153519080851607934124301107954382628668711083241009120052768570954554564867252046324725354137578526958663993487880786506410408824710650672738048870396645671453052129911649620854522676538997071088562809397505023939271093394285319663902245879936301293923795004466204544806817344928031902948699213147287295790541262227305060207896323539347076577783062314645337564991360088257262592251758350302969986478572103849142238976948817588034374794812250967174364080793622196740903865046125096969239195311746521367861423153391913455491851507701530812578884610748452350770138850100048145320376698928640403015089658998903390015413331280854137245645940228315709493775805275559507574225210203024741522986565829609717626441531448121369861778517337069432516526873032764161782817291909731116835887441159249602145724380198411618732050390273603896658028896211768242115606581976458762724824476986934717831563998573169043646910462494141414445535896733383270662779945796677424122788051431789546951474125419221202734859934135378489471544685673865202989928724302713284043487494298082297895817562618863913677177116215421631857341266992181093095979534760723271369675194453326037739635412369986623233791539643399929707253192667218503900980944358251087244769385127444789589067422912262447104464798136440470851896599437309146509177505565461975210602389983918759111090767816693489812509503826320303467484836455360914044386925019192259571506309280320476903441411467042564716155930390011804694154766576825551640756360613641319716127866542851448550941543240223217128139701605848509014362635032315309308387089290884912134725353543791154766102121196989407988585655683189752684182851861221174992894417914191486921201819124368118478762127825616821411134749013774736141995418677783465048876859549090070838170077976836273416639576437201691817963725514047330426866220856962738229560070031455080786210543820836615319382003380701977263666994415468864365170139315848048741554318583464319742887991972880934867098971375886116383051833158156734416156351276615644487599977277603378842964704667957559648779406475226772464251073332983021135979218062206802058685716694256387570949920470079369016628545115462646808293554668684902626488138032427225866835703077010105207215271813897083726965610623152706854093204415304430296655077729965440013988356130959785059846186134955445595604532019136765154058573934833001035893712638257817468624145422715704599466630555254937743621179654315753984642852641742659607939220036318670187052465965830212021503920386080847082465564552157824968711758001919997509149967777811710825186977697327638222358616124476359154257698694127184476965226952061351153577635565220502782589556451575447254517537586823032385982263566582962269214507592896107548918460411784754026894936710627573421720754042917884568006226164027823465051535955284530959413143049718407569169980797621995826863522145003872806660096610798522042709304750655491581071909648400624570437897062816390137634942370783261279555573080568379994285860703943090782250313778696159769298737325839478257987946765213424562387932325951838431554888968825264482556569497058445485806783130946713550818998777048297019353365122360007573044945680604679536359381028956793714276006845260058743014167342118241466829013299296067119601387633886584190818018920250203520013008827431517533261997453339267777733663763601110779633112465312064306597048679451521073956176620684646200082814888842124780416582618498850700560730404483613794899904550769207542614273245275734318780227091827543584105044256563861919057743706547105736586370266611789983173731414849277801426166866302187096884413149100337528109407255280210561122880811646654423785482534366219416231852543643574989543818361522415261516861568381518034697739021369636667010051244984336828285929200640577889299999039782876295106494420537868944783579361711769982993897737391498959293578393359089633996224012196977932887603836683836667869628362994717545036167369021537202424107243593601728462218236790479534166702635803656781541104783027600129719787102878833369038991036630115903539323741019481486068087663566314796520172362461987606836418688766016410094730843451446136785453921620012821528542629290501862132729378232939159985295419896757815871709632509438155265867904693774150001171366904504339328564833847780915424569353794697259026506863307780452527858213822621359742600312872791580565077612489492264652095952415877269542873265523844129297979027167162547691556178712916087704423991130351699761493785155449866249496499314370008647814356069912786975183976404745475115851119869574262559705588774455132343520357387082502128360020835711904676494479926482169207550950291070467928454629851292157766167481668236737235519218756940043053965628143161899765463957492949239036169741372993816903363670971715069429510458071249621561666642779887405537210648151214612983576495580884795704895858987872613887030493671698037565495679945890924269225723040334441035037230597592056710245759875266946616653930004762757524112046693726774964193006681177144317328845534361754897443831978509373257773926793031324939609829154282429425501317079970108987477452230236180409566941959879301485804700025384471659300043480500529131822167237164583970802226940572775346840152924073488105872773452970417286045591402942316010278187321694711518990135104094756520986121556724497817782036715754246171007288135192681534992242707880011467448710807846697900105490896131915715559693246551913863010299682199430586183530172421184215313638857593608915531536080327239470367308334963434060620155244493124526732503693652708143714127499665526266466260510104973788767318992177193856522346005044049854317676099947699265751919378910489918205455314019110800785380501027962994741916193698202432580035627482452260430319676535920180938277303689134375818571282678208277066219113473382986629487614184191224311407858078830310920324965602458071437422755421784931613806422180602431058709380672002197287853307894062847464781886864918807097598935376814425751492231297289404930109144502807560028777566274148497191206153195041889929772606585148422336503651213898806343311873746655850029393744985501852908931478476017568891809062976527923425041300220447385481660592416005888263846630137918024061218216186859020886986807464861480169205754640143995432011052331358113579962543234246938022247602973338741316348553894173616486265736659016098652008108160438430459317550529931671919914570749441068979820694968088674081824572798097839259926604811558843365767137712195145083015992172854808885282530903245622733107272037216187025627919515151699163920855006907491760785387205079384686349098830898426753774741779145496309051275916946801983617269488261792763943549597677651084453626109657680187942651127269454918835212247947900640296789450166732856441397487534419161661647146139583923123009744998490991194763634560591268280192056449365950532209170713690898677103632869090365478744371941166675338371533150672296896217789598297942129645724855003194952619778703544099084233363673818762766844991141253911950028775895254558251323928504213843932265182634155754291578355365328459616721705819341700779074198295256454819178876816327591662098848449617503408423783721244990095684361258239156280837141921701631945643017575651262856821906002746144314467329816411017087109325220258098167415964941610566956274632118406420361951859993884798918187970857581410821704646254436998712452740732227912114344141358359294733111922378754587848445806053611334864500035272220497273256835752911377169642620327181378306467250752987166813481979131315755584700708502881721570502653242139233524137613143552020943751831775617135890332342947089924686083881527638700347601964074449374590202587910232677582063440687510788410725486632117280690485781002154112042123535227272571274318991624084379465604360817836496225549415123961960922050822959853835340293521561690690531906069994027372300417930677001292482262147449910561848913728138878065133025379467084912695260946743821029346252320639379777556841178699474248556183221733119077121345907371465019396690445298697588706937039691915627246092204151805199902261310766130329751594107890536068520392953875762085597989886018983028312740022050676488603005249962172666606659843008307096685134647451829604858126531662967832363568739472672947789747373470442596248899937179895136078382029593066343536730749387426537747179192282051871394952848637921971622396919460115023177698056808972289912129016611821100963002180614314823698897516461029325563067816987922263958358914547715395505906882416375890130626872060222734668693415270860781965173580771035063972829492048958539685457855853477041159930741078581689140079262240913793671377257984572704696119169753329748811624686794969621928050885935788036629260702421759609493111477891800115941905200426711007621231968594773658665081466548192754631009359930041752597893241492116654990952973092749734982631056070359428268060967718873828244688828739576766130665524144998238334019226584700156399657245198673490911883290870284138412122295044132629000948035301639865502325018046129956402717901297637382325884664861819526118409906795735965512626964641292783611239464010100100355085693602371841029183614994074845639098024258285075845751001719574748275091813777695108807837577444399723233920822409855414586013884657238748627261905468214973584285232625015960857847498146426954314408669258729325774062795182750878473567267314266435786494041512645204031689345163873189185185570971502033228559190864434049028582492496851870683279989401443874218598628806018648035430176147173400993767507832122531640621973233349253052091866783814562600097744563087909119705240199690298307525998454469408557049092156662449738410152235559653164080796453387346588667654089834687243487055939986104025550109094673005297520129153514485319759087556741778352478860649917870378101463713313724975440280118862242590154595524260965870074136902531110183092207290837646478772172531517154614107000156479290353262737749254472880256703426912057274624135727249986876664282491389185638200528462202084415753013120715321673946960775393078683254691686179753697795442561341637406002682007456425291806957038927317444967486096114810306396410183188378370589735439033016557927278946513600819067118617747591652311582659857247963967783642426922532162664210865694217971102357057814026475685466632895984910462785912499421825952528851599515931214492248858307469640332245739679139793270680089330683818265485536912447165166644165268448085633433055710590588735327739621617364060821947450330015341698145355957553635974142830492293481259893598262228056930131931322044701855529352990618497064487374265399981279148268366493284725305474810379644336152524718798141937967983653150889301966568782502882868696395703627680426051004287641904452757523629636232706995407455010263600447394416340446488242580577244101290345843482231739416939868051761384479871037679970063174617287878774565280384439715522048273100977430923551600416984185914539922653587511243824798440456658859406003563245406889391379434186076472653600274842109371634003242866605896609421091095108918567123569526540934038513993521790026643097387592819201933933063836308935317407082623919894790795542034863099679552373029211016280757440453497521466111135038780486140007299688992623008752154577588054919165113997984297624949522358399873474061642709591233523054234151684137110144274673685720939596238924388921309801486064809358506923498074716898280346125754222729366293088760519987612774978549838565219617201454187967467990811482525985619695092272681763748564651858655360167083377899062038210473138048922302186346655001257126025118530183490006599410885676885258788069961236455737940646478573113601033415783159639965246326123130004125574522026547469875196213478715942968107519671358385575997591021320343297303085745672194109053784635441654297362793163026223302608839616253010831977744373737927010463676648321437875696557946933925446021007586485777625701265078278794083951917219980231018881516771337301162128158801647262083670951759643673527658402925672297600470273811997931378341064773021281561999881887189243368488586387859983658295004731749065743217741970622842694683109295573218674061287987940332895977735166074511072207538252122676935805775495599147707775250574184420474569814716178560664773794284174711039492091332059735218577783581867071658076827103334817283884440301284241396984063695184778862734345209998354184643855502614283344460840504631566456315287628417812313498023111503974474576328493658082396345096037303467204646012728737597250847932529069813805897669758501099437332896550150859275804775453488604719411001665892242108856249515982628563014999363302774045940350921676575593868509026160327892824659143114954076294012911055716419663832230955214362085678310039884687031053755476480445817826796367116893738601887823430948659913100932878297018043440890547770743520674401254445916122754790802635459650125695595099093039306006093327243450551139584231336835869139715009632034085587574730045419628854483310480208792038056212052356412268010857923403254092886846582179768575863741538193755733123909615433334862392751755581102433279714278715984077037840318695281398243033366721503605738821367961636085903599422196507357692134825060086842329905056778801494316666264824955974604816487307779700705457200094602163735719911288127554290420391502000206465367766273195261660903876080620897496123629035159919026680547326715652425858637516999053216631674525915304489900538078496325485879693901222094161252026873612714260993229418724798611457701348240744459600779525559826894257996394880634376902008022638157816237635512308224404725867684275186119757897159809965596476056410964826996164824217537700026887536877595695025352777464905419198842259505135529777746869628910814621763858662145398470468721657699749018058268930313983856594557682407406552094195259467972439068106304548518805012309435241069379539247016439888978215132508004290739257229609341975721955427605092505660180299651973255343045501144090809042372490531763761697205037472656256040503868990357875988468867398758948713939790572496989627992048020736262425064502903872049154478969877489462143200445965529425754884851833132577947203824159405949894823784307641288247515108437925025976212176189325637194367869853536991757668126847263704006948465464345318292225977953791241481153598104420498739206313613915745300694294540474480244104190014712606320162422192133354890144182089295463342445055434903436864014373848417954185077210350808224823795569366374778744020627829546567306394660865373944160409285284540077569386118919546657915606958507585602324121068389459593847354732809531507703265408853878252825186658043404419695633522114794447721755101574620099001043609420432459079107525438934265750223572748613489100090423817774138717296190296199831307496983121874882331896400926417933875109268983323839133836219114812729172539232187352175551108328926613139915823740404102701004730792302213215853031854698653982838184908518092334268698613314974650155603204833990544596281336488636355401925075253365713811954240066185994700422246848099644533546294598719999106406882545398356686330316790703767523759565360852032617725631695066906406108302653289557856318877395183011908051053657930061881653920761598226182058599214494824797119074256149355801294370286053849193278981941391140798965974367144171805257883100613677682372234934187259353600198210548705761218900354663463242187632326015990969877964628966696233959805495933107082523988046727167623499091791399238316164019044662740831744748775721005618948951281719267047565902998715713891459364724987402515786567015757145275969733986463307765210217427573237799299846620057820680222633170952212031682946819061077983059593330017494355380042249841178924792367037565046565128633595548942222102828483493567467018479041721622968522707707559240693529314782251986668453943637069856684590619077785343880106149132438857423640845112901407322795947785371118335928832994817503935498218527572033573679880451510937644461861811771052964005872589150132271615715443887345404527999364643267515926716287049541665573923892501706561996456183856358965308162514912316736619528974333083026193798758480834105545868939302746069872292788348896097720344445123009048098494299307600311252636178964733454694368467026697531103951648822595672387681021468965265152270074140385757680263969309928127702911666303682590705941542634571886212635156908750685870566660335581702528857919801574586609036958109624275009459365734797972257259971672139124774811007105251395914043713164829543379177362943659680220282579734817666456319197938947058412229562984713890569454567558527960609187273700999473362182771869032925650997082319644202846312815123035679924759390010242758995267276201172139873648216662533614930627526133474257731810378615471072506935436967240667558001423429265633565998829255755509091912753321830303418844712811427547665022852936805773794343078659761978811504758137797265994075929034733799784112288052813679321097435718300198205079723778400401806559395152535860223873531521975534091303641501980269471855934703086445035562713207057569932683337321417235926364594411782526057311732772064279317642142845483794518652216940493275318140488305421558334208274673476042193328675187689727965482487862841520861059460234910744798477830584588384924398036091956680341199101590613608801086354253175890790102964380081365316578798260453093685950177241709002920444956321143726187869681144046554550276009874167013975898099211178840030843845534742891904358932161019393502563077957243432047859822783825931773289503882220247855682001395953726568014218432218614368680708101083541305321548330319681413534179286208651514204790149483584275873397770811109059012064553988786302296279580281228546227154006669935287019195823356882670327609306430467612396952181318869623233865177706951159271393270610723273021102021958158739718064282721742919873318626260375795578030688431975353936651320402142970747159597453105724050812222090952648969307866823334608961414357407345500462435911939224157388932943110843613581496921514753308958094545255466159560617832580100671719626919411325333491192662998722962400277143147188177321023703368129357512398378776899974077394890361142609434625769323352096833853189430158805952372441216329282607613921180907582306994158550607113651611251622895168771122690013260829493143009180088142191637327894102354247043035725915607837823845365593575954944384462297560885670009764039504485575746494598925242068069806845660477659706322410794481781149790582863675783542165411427974008692131219596255403268723733907235197829225203208326014014459770347034542879566589229102759531554525382593448383880988905791182193080938972855680097274054674141398430566043582899204232361655403014346090284705245799346060023283335702909038544879626642321740791522317476000209272754950295116304814053484230001724280068438788391111335568693511618512908143895252682419556764258865174837426014585476791196479563289994439196240657255476138298688709232566915276821755553628292753238358889296771177821368787344865491299338245223490388243042555208147315597310005114474901334297475069451765267681475480605355387578044513243041318956537674186365326130943958797306044801249399744088270628615790203699950630098159634349292989571972823983110666961481383870896236798754883883994476759315908421147171416499212203918634443722702125820094295991385792557446964834699906612364796354974426889029840978246840565315980917656377710799854881939125203712984641480779129137115910526627863148221677648423851601287579666179640219682255045287664518060637101016801551223655521719053495563487821360326929929678735468349607914656536609135854094785324150911481240991377108016183845828753796264438091248603829927653867172242625346737068847462280384025395786593873158528825918756915604402379257955102242782127136218742234630486810804169773476943730807711118732766838177706468301209090820668676232997384449236310185448473459250221853003807933174956144419394177582986001556035368800357372900237064541703529644157627152128108731653721634235330527289973405771183850140370966348910070541672847228595364900038687341177336237845829996437097792126662875514368959614390986118048872530463599908038038091423938802784785335990647082712797643688195627754412236739936395833802194730480211720328955325998451152634892434233857263206374506955351350234857653859201761217197827446315766645692330432846686632768971045189870323635115555701194216852308787529958428804315175883331660592236071043104383118282395679488347456289639480964689866895906476365813863269337282945104698872512237592628198471858860695548650500089801204681942333864608168632482513756512171343413970158265315053326603001422207231763036551000575584248558911358008669949713990983530690757725713808939761281833189871281649257499138271594055271419050892380439945651554244021216173892109935293532644679730824184726137074483281903022718261138689257986747036682114648384758204178734484617160544090628951207620933195537795033012108537838119573483104540944678902774278213459280489642297308176301925039967367394930418822412264597347270106447226596818873503356576997775503432297414137072221477728254932134882954379036241477331142918071039317883525797622301686151315522561354783977304465073625014666963111050430430569461285153413828060684315245820154106936927119772729300501769566876860566649157516859402900995406490646234057561506704477711700480482303457077658847222157716087662058598278648087723223751507824563502453853864078677640469121325121194964395006573847728064808458354596178904660719480949249746890591261731158299446792006672537190400536894551393626610804195395025572834008940445942971413354047616926528824878301908729823531336670365768796773278063811066350074993634943774335495908650723265971160168273547499097183277514555482362185431896489996659696144294638427151978071718371234332538614188884008961732835158067666526263976765176896007402276002786674427999331171341204427520927458967350122338294292706495985877356937190970393904818499272739469081801059034029507383814372605701126194953826229244911873361517369920095865840016013138216816168252337892386449730909089154610344616351605793775349257877316607903180990938712666864857011730510454870204597294311177145191847527088232941132966443995517878720429396352501391022833353185065044912848469471466387181550426526046238593492112167965774770355721599991126941173662775358226551611395633571309933126472810736522512010451207589363800474949232976865748930098644240179152405643358256198957197789151301875828393786003159290231685503173921530080607132187821825748122040043682958527563393040462260261769939422346207787829452430583259213989608839800861633394856675113622254622403825359837913971253360681206186339376113012857415478887643613986116282473047488109016493753780555686583255034744237569944669640500713238404082371769947388768009512688017871957282840925120571474775651465001313625590438673006170085644461529975495467988125730177781313876755363300336832591501321159526431915335088684304491210715594102018128889619687065128656856592376039070461417258476323883654990992350147669981789228551803853550171891787166668769098359361126022233793829047074931456808646857344317318257944013138930171962176311249270532574123585379022972864217736218680978014331167946228845530122406619264132364930144737150967681414227526846051055650136792021479469832542989990030834150238009032575559916262734723976542187518895906760484600970097247720665607835468159301438625775753256055699723929738176355441709407138978461513225741602210018348179300305003039210864050965416198144278784728394674313929389100394945361915932954901743682356498379742995461665944062858316859382478483585523123590372482400105379383112741171162084015809026966401730144924551035071093427435877912059205031531746828754421021959487957203225373219923343487340333674585808748100643184240999517711508187413734388805072990716570259556415670719462699325027984874276082767615045623982781680073744885317638236530709078725022268889380226239543666520010973431302011146411179460850238576327272834360040191179299835419814063183051717494256894465888970767727119404729205308215388598674425324227581573657853320394111613433289731144256557217020724553446874588237177105738858604906412925620830670915465392570657231033063846949203490062250765825322557784002280169118773709735235084185952617513760667505389231935851412952661495652782036799529585629428447112947464332697810407936398601203280860071948420611646518878560763464516783915471581955426488899068608155981109031517556122423951384832131377127744614897860114904627988632243884716441500916672795317079747103111139981135802178389977154362289550034070958698038324310004436280157027965025477726626606305509722141399616251272490646343669427766944519964620721770663542950083971546053002096362932469599188401174072086344592335712262285854245200951659900484310964925889605092198494418331970521522132421757925045153279564305149440687326839088591486481254158318635607625914495196374523798584758646118108488456340141058913949758573395339486864919321524249952458386692193175684317311637088884464662851323339424243935135155391633060194626924835879800332638472916059972137764181049361230447272864016904259593093462173748189264958533233381939838122726500096060085035395558311265189777706205460622072942094359344568040558471540305580147173608806383962112953172285157317258424395274412432727341305282575013386978866593398960349719849038790872108587169010283713199196726890208699342061785761971541469587636463250885763371473033390581883418730288133447602909278197944600945002222718775643171130729656588078987832564244448431064499154746801164434297759021259481118532876136097101614582460597790957042795058903467335809465533631913192266237556899760113944956147037732055792412704421745827106984496006822573355857779157549015791195166624078032433471657204880668675188098675084978154684013869500622092279953038431625225537031537813703934374054088711574499799525984555906220654785767798648197245055566894734471889511731726402399340699590557379416599869418980990928523260949505672518453858576220364840729503301086205367532065603939948035160980166842858974441106578056592182727094923095293215820003199425887968876987294375754890913757778146295567574506733847273485375338111246941735300291087887861137775494331124784346669175181990294517027127586866930100234710917916437862738729094511122355401449688427062095539345016794366024383760121807793505345329164543517946515076518434461070526553202482626412933693738353948994605858797700730697483688204015127214017862813798602682073301978263564367707237801835656240546435037285101898274212230177370078278961808461177832834063820049641013264958445822356092736881720912711521286075804501768456128498216602450391863694956012728058706512572417140403856568345956336248490490366088585249913213356718694124258164154816809413655639819416542373965409136601194399736475564373312613667173064282169282147756648634198150357931294671046649180290665016514377217522589461867241039265834208755911915559074750692272964102361282617210468427949097767127484675324205253019757381273383233594893933160517392222959037744430925031958091516935973152663175166708653704055041935900904144131739006316337676580607831123568339960274879757739136540346062151947513358163569336168352103700686214080768056839468572707459200548975834711114851369101554891387006856367632901601087299126075146141548243253733359589233131423739118765445448082025647982141618389483522817649821442082434507321074032300811689721578852217609322040091774251231613802370311677480301093499207208022455655623661518783744547070469470734711778934814019452140864605246239883855079735139647084131209662845408608136788998986523910984867301452905551107393250495011476993929794867330328814788845570413423746756853088370462426337180342497330278948916892320485345455618359003534131677427172427439270858604631713977899017242054131067558483348575010137242594228550538305458486559352969868093997680105144731879724111823697693631769516519344041744379931835986774118883558515200292762669032445377810511214132794352079243161582091696868084205806499365305422784741266039814931548684655756354405683186840471312718183201260225322068429414939479066037275036742079626223583904994083051170479802814304292293423974859701193921839298740069607800793647287672229615767541311698001876178265139951503699253048947875981287147339471325976396589401162389820337067385410119304432540093725080122431759922511712760008961646882821470565044743132331331266680808044537089481705274747448620606374272332928979407368676254883220350297093840320336041147950601082122383010432588756726747440793351649983573769937661047048508072334565405937400030453191359886128605320192153824388501219629596982986867389219787976096778298160747751290816479016852385434636161199482276929684355961855350247984472900106638575891830910080602537914214309739975115746468543578027330864667322340930654233733412800797623094348612438514136864237355219356423096874080932045668076572403409987353238187333692016055219168048299434616844596968918437768706485927548314748854591843149702656066786636973417211773296107100620557400024308034658839559990494073893063740062581395974044256433658982860569400103740507584236520843601959625321223249134566576146815101579251138403118806029185488643447502437948579304741503535095155252637331253322778002697920051543187344654149230881647548096023434141399640723555897163765618889366443458114155346480042050145858479214353540530897503517266874887676661468013768238452145134662976969007979060995021468333678810923924496651255703627121967154693347484383751816798740973170482591522536369127998081212963624213398123622470072792823173998926410131735296539403544194576283570079529394972750656855611174348401166218863241892357722701942698423682930637097611220837379652160105677805085482130599434820647715053764896010648042039740156753124656371589630230240463178746199746752240404265592980187327850636693155469988367734991101661069241363991494736357035915262165355677012174405179403892865469270633041172330332775052469636588296286469990908548312087695188690415325573155618786144652578844989004581458656935659355353184048407225557883520795519191987020204013722380144914307945283058310321198230000973660237412698594749302159954580433102677576133420337644057941138791645589529073974039337160006511248270538933911921532007868262972883640671924897600232659556575844994150698326381846926763702590515451733204976378103199765526980458163343408782361956624517650660582947493618051370627643007070456360909560621745582484394399417715625140903413636998635801470278992146100492310940992648719222410580083585331691464506052445632633691909566734806607936529638181771008984683659547137985765368251795548921537052762739522842224550049062252117941135842073828418350136001991601823368182771957444768444869155859997137432131701063617470064216472138460207604391858354292801865654310807659412594756238531884001944179274542895496865518272333300089724091116206679646437650323342086074856207635595119339773100979759974816529441789956669579164026095890547761206263876061341335146425858311179382268004829081576835571224339768013303592737769884830432964230686357896370665965392192776529504791014410939321036927716472333554672112270515535922872465376621772357107473826347272725090684424460568803058928002697266369506197247617262148791404596195305471219539995727506404733091310869019934681701169126941905555027146647412035217970534038690063629406519185454704034024327763404760443383620598743217412357652945348841872191689661706142224852745086629703975819689861542825037059711162400898866830785829040994996247179742253891887625237468254710816045638907737782346831772300137428886034570541616435037452425833541581018924876613735729511378676853063368641300008627649090241456615469696319285969986497554162712970775256904971978079902647286301945070282069137742045561209430292976532900972777768094038804602717706549001910192134670375956143222352067334468353945891252259126020813040357168371231705117789750581521560880382423793212244806827738819794789451298654769486140548354325780577153295222290783772923777942452745591566451822009242133551848034333542869403944292940995183454756595322274438015075930073142455395399353966259370946250369308784129695248303301256520723336767470346657238471786092737440165753999247608644971910135329386034847895797672742659681148980199065932268863530104491468212927352455272554151693837482210416862388050317685369918535592637165263235130895448665013366144933370169019966292040508991152390098894772464540177053431508286822734166138869735441693709132047197938398980710325339432066363911398894037106459086665758813500589090261933511701902634009532834094244065516761334040962351526046619469332227623327155333382386829017293545371248999533940500413758794707690295166189840249150924704801620630048262439988415948996991571046660336946654574171775950891838075988558000462242557733894642425939842424629306426762103892689526488756377782117088482635769667595370382104728700977282555056932070666277932792969695673712288535057722561896732872130938900320995963704225552338668866405598377759988804577306085778365083187068032430648498249306620937628160205563294302117728670446531337119937930457573811842269235381634727763947080171833179143762246680579974687332743220407313802744020839339249908855636287003648959935707774877931083800041898122527723224998098152398740367325179063653721376442525860554635903408642291661345965733765008503352003929834401303971036925737502857289370595460895068280174814747721639959380677164273044306962757367638634414160084888802015433349149322392646777369491653597455053655969356146065898675264758761667148960832300937879800017818195494498538951405894732423629512673645481686757725668087374527429914125353077276293148423276645731964867008472853878335115768405979543243308528543579421381960646812802364259319649724985666012414467836437562079660543309915702451010771971430237576807615561083451827226807961709943808306707610386192175333864434719154869351349423499265411235366935887112400627493503035051240873082503674564720863717472518067851116178937904048659252696070373512858325835617702266540214451502448067678380661608111800886552749324452042556537146434086618862718924017748940888718680876061857272592117452081099061509429768323513722963408381933425061281553714991747890859727285280655288370263622189669608109120646906520381204697994157576854961850576911529533082247792314215123725268573118229877636311802652322723547887297653756556171778372574377677749814865307223663467731916383128413051692743914634201549138419624530615529384285948506350144417619982003074609003375756114286290929971093562999455636367639123742140607930939942815802592214352817078029063587097979636751706694164603753879533170477106255113989164326356487366585441898106902190136328337652540279883433117944308412836615260882645916958995307235704386137490985793129560109276593338585879226548990464513088210408947933671308453259790626729031261839978251455430180271912764200335637930877793363088345862993592082969539652490199056106375398975413157953007849444210178882050546655810545693334714170327185293887269536524612107093607549694924322691133871361911504349109988621842291757160747617147926200047996342329235319609826788233493484643645084670459736579088989704840089495195432667477603281563310667342049988876474450291016301466979133549901034626363224532758077132665761248593620507514996940560063249377975940664829460085958529442165864380094782193068811305304222609392215987621143118754666910954895928123149006881529641722079687508769564783597747207866983328308746685748063129589677815988984576009214440865207829280107166677983597646573545373579706501436290655682598811055480708054242208479528125558611545821534724596134466638664195860000069677307156040108881578299889200457487128682483981678115425899330458268374524493610615994728992013852547160281540154820263568416016709095637078429238156027375876141098753161956174361272055472438101640730099361323206991247328212048135737421952306902327538773615481711536404814527288970180888424687328116688165076106703684591396331646134436337473519396330626659710650738075104980938700828900955977910898714637651729257962696867856627850469361574102136027700248755425072349854503056780718816063452772056104494554556426521245011145851055009794821045440752264915940525742401720895145356133138286511328972499734840926106469134558022795451435177885543721304976097222833213557623564967196830167752579377843097779425561079733803011825841970013408212463814531031690580085511877094841933581085375307595046426904769671218124278204957107814149529635686280408040499773109066424143873561235856020457843842819446587182950282809000986427645048338465041787617526267496058043961537173809291704682172659465510869341112597620802188094784982950616619768602502044538714276379413799330985861000454371293922710626823657629624630111891777786468757809656298823294877588565202287029689420143745260705957209884527474033794465961275585551530535049613585338643943178654018713221942464232097850501369669028802080897192803969084007255840347436358785805637566861160828152817769637556755766421299526504160039889398234996402350918131240572320943393567464584205971139660816407330145399147182795682148556326032405860527438976285955435531190044695311077987483348501010653099839984650830185519700857974910362292284875198118313894017069158599717532923532777707982882512167231777359388985710489874421199016287075262403680131742064659984631002447094144477909540472953508961251451865714071273817558915352304319586157279913735360653332637423524914009820788180828105597597441867492215003838149881547265074369289255190186875363034359302494967565365719004419698780983423265829903176485278753428777085880416438829446368402579342190802558999466666380651029690262373033797311496059687948707609007361188190008385205945567154688757393986776800283817645292238747112919562080948787371172091401730492257398187202267438911977761214916018676879254155363142051029286171765539364844317741503280029545838180136663546078263112259076291065797628287696882988236966255664219349224916628634348790405999938206819018125361450498405734960540611150106458781235387553250650510441156792326870903916954033382262325019663668511739381667048327606683478231586055246559927868328438007179768659553509210193043606608903282979892916869102188915393879792788065548475203451113221871602735639510528383106663654119415529697388798819483084041264622351834140394434251140038541870944281690944371533212403488686081475576395038004822441202881833762391507285228029157798946243752673323306281967338739176156676734279025457477515088723678416171571960481100974544584100950493949730010874930998500414260300962547503556797097018911418300309004112736257166001423699417769428172537165106337352482642803660548389045142218367172801415440871540625000686962891769139352827193571828371563188413266790898695558624634873237655968987855111361288992018335641669399254152233589350257660128672625192287365120673534168878030700207248124213052313223683611303776206862690444081309157045057073959737893330141583475147384042397581048870175249813367176132238359691213832194822368470219223418651959713387289768947181279912053633631441891953882845199678172643627448704544538533325626734073330181597277794154246083027817252484073552116349095546305237786720106838877942076071477905218791652982632726655259860937682334738824881541750491597380037269465380941848038441250294350181352406588300459681641259289585298936928410436991499941056348428445236804178785446134379409251100244057367318052435501681368199995973198790761776789925171639483871596246761751142661137691352671279547772238945237254266610364594929265082227454298117181299542418184071434661446142427361887345964357229998941381691257285928022470497476612135125124276119852261538870152522052285682003781606677221415692011587314631303783803699280898563395491232029366124181080740067099760095102963923308087012464477041363977057203979788687720426804645444481963212574300745873511380240791218308611726092622707128268710390148781950532728270901931295370650965906086021995550009656622896725358845325632347610029560525764924353521019395348148209179136774386106860576839339744876144971882544668583413408947447090175070572593721180305338345576525647338489032984524515538887514785300187685807743867918340411413140446105940621374389944686044247450906512011433872744007542208250627804601163011552483280702490212009576710752634452719167389736709273048954249387641679808583731004704580295367501890634296513061731253835550712313672895775109380618822927875414792084434617273697286266004027831145044330235880164706068043071405656624355651933810038385326824351099940086127623167804436655548873228175386520743407884029027144247253135515147002353478861551809013947254702969291520231849859384939089834984354273379098286772581666703195452031122884003574110576675328649956256603251989812324486151110290139060038060139268901172705528138342747431492088407135714572570125656624523084738248875538392485087805454046498852450585836719111351315423002428340087479463344746822656024268774240790417360543534231469537043799663216843735593196586235262915701351510199537743062162398285137488956223363555785928385940323003472684424132342783697446378589983323290956198980757529769233861505662045046395178874094960130276442622219100448766055064700665744603510815365768086814607014477448793415130704239854823862260028405944868103474862396005668757091950238088677663461915235536177625977511328032171795981505096600089053765547856885041621619538133911594970834630164979789547269004581574758115293111400147327371711821123468908421103867276100905410034821136171329515461705514376402564094028624523972092802828019581864319683596342799954576284930549407026613863008711982922707751668647767841790284709509443294232537296726838453500295209225520605760542373760601929421557991941363099696996662982602389645774011082483216328862683359315604635856856936522316679096050199797110154674882392388927193471698379513327899650961527494853659394505155029162833461025560860167837622300183655065330772454038371376200315194202522509494999447276427713337537734557154811039709993322744713454173099680367403875933030953461836797040234232206769273802049839042506338805987710098526748656624993017552242274512913233245057155298583739500076915997173353366801816223421135566848445527021113386355181476933495804011708846143259392907127033944517392231151634315193448775943066176277245495321748821348366883797927565167487260194812909392558999645502457589655655903735675430732143313597047741362465704196124962501879598995229391322587211382217181991066267433751459505695911853208648389978561741149224756777654903223751865338163000138388885921377546978772860738448031775212718690655860054781486243017973466330255213621811015912933141569188898554188243382520875961146187543393038230697161660580296309691081350295312298073484396306916681014647660835089209762354005258005368225712543005546632218363867236037490086729980170594329587998431105034143637997905042913747833166254267464068026863454336015712493426234562581346394105134502537605498850944501091596062078824491720451823835526880928717832153273852449063702220556825936347394784267379052525261877141453459257522660753177414836939714056657674185411907760671845125097754134781457407522222255469198287159963522955512336799472405566264249560008282031487832085699638683221572614625184247450919886529001553219194029896439847837574715431585020971163730073982467866034817852903386630227275269713536939337598194022643479640613077510931289693754671755928115008899638130070030686941458652002983881702664595840622301710490558202576546697337464817768289091512765363071867986138859526026140221895832965746403045030720827571732755312536819796789118575609690334185236438424810983698856576456385065459395390854619508472421234237149810289309509680966040305831622823196247013353126642413205647591498619043427993506659522624133930051333312537147487590497888198769379943116064696904896012389098680652770898130748253345036289874125375492794413509257135306170508981342883877094238617713987628741125244832548721700403984998795652827323576531075917486401144673573524141065480786424414599114678721906908776406672415263989897523790441562120639805631721234156074149011941949592811344717891735861359224931885793445189271280445462146498106659229620292906105190126135562788682156364707512249329074374716506505122454879039504182703201319738241739984805969145664323777418728711194058915465345767973824019022525000077277594591836656715805844230032489857266274851227629362349271680333216922897654562619726485342434149868911128328718046147400366604131005392889504093344896734556970690407390957436848963768617930543793608390300701089205913635036647132210896453761326239385445586951518132418138045614118983415264086538865320103354542787382596988728529492923617065950887503339296053120758942542439803144807536910459513406404181118170715749385654093224577920098888645380926601501411483370093801431486237508706281805729905414419926974787174641932425351723502128998896286393057139846056028609959576001829895234505329363455414435446351416738380999462560874839969838452061140352567147028023150200011619003334294871073584724896400781385414415959495676909551778994140205258039456250191879867619148205989809063355282044511639555848626283540758167956681012289080112846145747164664863317475626433438183978322404997801262787224001432865547103422266081116401520196361922461707013546511048739267602218919120987448188991396628516867074643711661821106886142239599439365046329728349466915666230006093282485335514367424302618437947515067006642471681755203416169928937041320229252209432836162192216675106675153756096366563623383999264179448744107030105979859078353890197316887031341406455549931094014000240179340311881554408458436031693503337124326788342929373183363120051866868382244400363028895315143394210117453823571503610850748415423836262143206926283307539722309339399997806176795421550578988372178389260796533402142769145131654089774258635729545617780282254020885257829568682531576089816568697241145645514509465868039731731674501423659659274011863334438667073676633581297923502064878746100458663054910831083084200907533000077741900547209173052188164446465953524904094540001673241060092101591108014709397932992879627061095940653802817755464306528796416835011680542932945458147021374114793326572240893202452824080271382499705766495949802293064545898643960745442562864201195313245099129499390539586451468974020900747039485210299636542079987026654247766427002120557753856772656394043426908053998637443322506121464462810435600484901306217794382348074860733116745645302860050863406434278932614712913350903894261371915173056975990140037628750166770854420045491389933419447603126178153413161039672549352206266401951034383422508440501160413547226985516091480325310075500506861952511166805517971217004867333066357940078075253681574248346618536075562499949343863755361980342296809191405775035789074433638878347677483305109718883115889520140700169374509560383836658725927673298463161646767340810645484186478695679454894004355160807078730160444478727509663959771865846733690222302540757235410127208128131218933189136726137211784729749689098207234728375642868316643325130228675737353922459304394435213093822601852443516369986880890212525853527131457650908557114575587380464756092239795322828431944999239699248427080790715056321867733621210063440752155857843491230402093025624513196205707832167743512592498238242173402204535364016558632205983714263835192429444118463898494517301163555027980557849099856736602148738423360941005571190952288445959385926612604019484283549981043042605029339167998108379949577218810544968803482418484737306704090545039961844138914584486334330287418636620569882840084869461677082569123532223368337798212169514632304458602575730108370410307877325854311145395066329716835974933931668982184114615060895604276117420799550121834773135897703865793741277936936778449355814083914921539046130513992448730048967469624650892362413091887834438531887652893649568416109270167035120327734469571827199592060294980729841108718331094184654654847292369128653448070651744369456881747053051507692333568160637322970865673517998555220021073827402948071150709527864882045371539737093189488752320863204459726705159142948274711385284258740594746565897860736660386983344732465067691815121832446237405187379818648104612807645277874847891405692670139830108115670992211099920439577633875558041203055546011800537304354086538660391007350885913933569456320251655225688923931528973306717161473596661683974981041971138018978390070219683628536081113045957652264369181559868550553487457290722756737605107972219532039172291305088133344119249796848262823654583104642978071361754473955468465429624751903754116814960018286241229381075366567039818144407818345565070468087301944281551064523819226375408560938891376319161792831271221450017855274738264907399518448387093932057311091539144881497585524769179848832243038401331416962691709477676877117475879376065683674256779397894683618151801488253679801929291286004182051540026878954664725084084209805537568337307974952035571900680518416645093078889552914882482078072231131194217859204901052059432941098792466721776144498493454541630270717308451259921784559824187268015255034392755991449255073268936230075884750094826707004857981836028369599240197790715392104248901149857827903319751808294755447154928968049785778471130272978067858009145002627977233954840403352994370204469724631454438301816067790414608709947328806091856545358639793362736253142631932861170161357072073278049516523511975627588207743762948046482585300423967309451875894583965504597980628539905074385720381838722593086681227840670367491901257554790860903166504595377861396084734180317534249633734322793514161074665429250240591681499330159866594069007885105826863144794766732838218126130108545233821762230626077787787339644012041285805684454981717644483356587456339089951409315786243756689951409442699791809427534234653969304961778995677043855462582727617226135601360962726804367661617930989753129000490949705755315777464394599433826348575612563143457943779733537813400375042537459040363886789642560829198391054942686260968197187722676428090453404294906642267804886965060442504863048014132753135544619511131984588234275240075919622918909359730542162085425304993827888810505785670098847710461964015876997782029509891062324540893795647899910738465835862624637895657684102741217601200339909271772356595263318751749163470129424449796359235076208461800490766968831796405285363209491007701473307644969494453123830908592670452323769211495919957551885943462073359230430207162750280041294768460627789254109063971860131289234746339818773257382319875752748764361590024144469237502490269624866345981755578759593442890863994482020523079812473274081285958477590603983638370734477114251581770580472871171629311677964672557804988668254780046521136454704871630823729677878024288867875822448497187306815136940472232411428574055808501648761062375962684719552054859201916470506332244835334072153176690760461924691211152086197000287865874549882689523541752227702154589328564637372230181152428147671857715936836204816994666449950310481173309218003730224056845930002522386798920646698890674487469903275697335988491437709173669743999594992740786549945385136757330467829754183364650097007930292619346547509265320496376326328655789229907312969533551346409340501394354487614148264245506699344762340892352382563865171891772996824633923108700462463639293814829785389137031472629545821280077319588416201110737553376597441581449401420746065930009870170075722203685946464686379453845716843433644469553345707419837700466302162622375805511639375315254926781618830782907812248221607115853153181236620337055933668678734964421855194370495122633954730547269812592402176614203732346318829473282972619141252497416192885660762883091832684648769204727986540995711239132722935023552410251126275070700697400642005802059022903522031381461718451826878926686045127265252840832037454100578289155512147324601998536870979852300848582441987775752516699738043504673376243133792935868411924065897799692202869408607701710680630978688152448076329790971222835697896245608324580475410776131567674858056686090757341054145249316731139768614895974137087457687213209499016146400213909692515098187474260776040126915401648145308576316113124122601741196603369676970582127606250492803327465111869412326844677433664174107105215921748942735497096502324623916264467037353432603499387163467766519055018709532093086959843022415327056066600457667674933595049348417766386885675989153282536262153558009996396789132620750026972610311526050737590081752348529681627465713280067039820291855044985556585410048822280129187040171248962278107069586331854499568895463132733461188706059481515514540440598623359991820678434927801004927221720513873281449217230544545618627721367758734405390243401986941772073772681785331644673684051166526586616967868493132845450588478310772344669671363579665174496165238642451382755172203811037880489137326982757122764174010547130270627140476354661432808356161987915079046618253997004624535061306787787107158701240869584722455100915802222010591470037404908542498200612106957869434973335098474745018769200618859100390159226371214489203933820743420436923181560581097642777263948596089280234701498305518132627994896897006928659966577529765063783583353216834906414295250161532534836794705022293196085886091371622851455331267123892463917758528216595835802678561494489294218475035276196495790356959293627278723810997201311200739771421362203201625613459496516893238994912326452512816592805212284952929340794669648142035662860707848372525068736994918180132047554847550797520146915401724840054310642077810374758581528588662495444001934616729498915698814062243978563016940643967247016576002068235236839683825293127181853713848733339897313865312359988439046830063257266424422064860398095921856765936013997708270934877114721641890631523796931669944175898879031749864902582038842145448893685883743170605363783156462018054736145883385336626722900725060167829250863290644995921798774380675153450228104442559216101379894584509650330111895069635276132643347137633085454087542651001845041105771907184013688260120263263365267698765555830787330177041265800511803062336012360477963758518309874036667267723688591281576149215984004170610266102532450567487301621598181058173989328680077512748643152414464087401200343146220482610554184089302675872590891379074265220776335688250539120317674416860350353937526770635599240425901851796829345732574116692367418799795400433174783733167250095404578016272473275974435304093568761619841482567363692069248097998031822375100238453453065521079139721337056315100207329275697576568636434087034946143647564638879942103408228231916917101915130356278482674943008010735969786383140468908591938050549080830764377806069294817781475717776448511077778344214270806231062768847414282376299395328147669982622342804906053932489132227325186781548033008246710010121209825160166946777600022993291178375181860962073650145978012110606111497953768963345541819281619805293684445535973006675644193725393049861303523636990190571069522859613445174576362514176300509468300103636743519073487962418719691287784597413695528339300430209082787805144652550972311642196804240605201728706039837887688398708471268420597201336509914185934117764539240711106780361727897550969730307619458923798889943323298442586123873394739901100369724518459290377034225806511561359365607458689948571420284795049025733932344528120298215736658106922834141964929716161673777875113761957560647673193548288745134944244502227909561306371748021710418382012212161804649376107248466518246244981036449642376295143164895341719023020124062467745956072694423737492842016919396321790550848642728850930334181186438797391489051098422359646517542866988455740290902697966035816426947547992745727520084659401775975181567646727747770148995393431496758610726139436896445423970917974080800767349918299683860894463007308488225307145977395509210169833834236945061086739391780974364853288994321669891182951877564922190890902751794940772034151055162991433976797953493968067993547669041156164539314981347386009178290996360335253247906452518800652503070915204080809132219002127023857005417433637154125168094642213637885779320582619977546213578712603324145321218955346088743213656642628222505606962581980860294248025590564568980612409557532686582920883753728771631421340089281997598936112374074646987798968346055769735051582312930502567290932768175021373332354370693639936450942626053035460490048251433778815653207909933066389146662694076076764465698349745716097397100284525764153684827170229586431773531318564980747100644046324074684690370659837560378503480050210660611105564444358692589604685617811160015648234141479466005150580998838826056870815974495774129785034650382246429899523688230188455794526979174567758793195745200664506052133916918389409056896479582506872671612377673644074787349896094969997490508436993534022795765955419407075238860396823745631297107430928121687043285477460590417649812718653157110445752407000287108026738118540860194879671879220452803552718753595612945093904225476958906110782551235114490268579517770723106308684582404097004971781549967849336125860706743456422553854103939780807017034852035872311228566701863659410192474013968620182214628059716366641053962256845158290468085725461222030757421638055022469117372362646062626718431386090562341140675632512866986855058845285383793340750922702770823919706846472288814544970689169481580520051359358412342802615294988287104868403380587981842015885144564045683874381794939508382636138894054302872364971127559617878628299598627848225406907704277178998131330983861061573446618093382406587979601856221264625614640863782695421611871825410648530473195150144490299367290575426517783215641981717876571192756152449753976585373014357709918035238353126997124856978763349876317373744860254481445279909410442023021648256060418635635698092175003956252851086982357186448816191767778312018365792675866516732795350253546367505222146780184114427765440470121557689603777567243612389382717644235942398516620276101410419003917718223831987126039238127795553646038808021605574406808684592217173997300900831898575483473966652670592868537605895141149055125802771969131651256874222175978069384694532943669980331196729625324628687374441153335727353968611898344974758169632158538106139148479836774673683559333903905012405446426823267753581749700642385717515306960202794160080899815700708822302180965264292258230455260777502192759281167634687156830984667760124227498877371288274606729490547124824798840175385120976268859020840676902081712102120437652028669305688918535183607569234151009176914598964779635707499586876339974696532639871327131003732025330287899314379024752818196073201282970596098223125882922074987614593226926821982350285893172943102300670508583785756897642342722149831133500676954887003626486608773180503799246069468207316716279332488867643273072349773526570215358384380853875288991041051755151111860342229030938134951899089103996016893568129768471442099675920806650757866776486105145681669956196028410494023327086725100771007190420790540817445022666805593962551745457785343521246653131522745143547044992156129622366329861469313713406711431784255366471949427673047715806639333238765034926143924248199125526263801529713147164570300507122059752602954173960880571117117585261650651321737130428250250277168819523963207187800266208586369611845485455422000950497918150147247209678963066382512322487162429138448919906594981298763472124978969150555141361791423363862474801994713474116797927799041230013342693335259678492414849806950304173325649242801250422248569925283108213317373090198560820194082638083939192502767673979107408247580968212358627268629509359595483833124170992142725126287105924953728396930424867918704044968708765117185578620517126743039198354960604370727259457312280504357658492547085911662915082273023919658319434929633970680258041032766180960656372310914637331020824915078957355020871897393367961627406780986011696708766603088304295767849941595141770161890103172683948716917947728370571483583741914930933322207692122131081749899722527647021763630406161700966019161678658996013940385508257011347974748169946177753638102261996411805439426972706389803724207707088692478765001972368183276236598942285370192824720688652610033039193036518142938932593577371288920530383664603450045227490901818918204008887581547400675225741169175004587690388871690432048825040802566787391806266797073710956664201295909067561541078615572447750113036206069659042572526521867665871196632052799280610917061195286993033773899842341583361612545371155521494960523921889433245012087908033741485646049527067191912621611750362312471871157790441318539839073930594647359221911173684178545070578424177598141036856491867022527391345898172638567997085096245081487123636105253215065233205883970875504494511672274340467462912005220157450233185013117874166367320954428902480004178926846027297008118047596533477540194662458046345907851061973879001701064619469257796198158480221015066124778284544097755448647885715291484129316331154639104968461181989639769453711911802601888867251328477163364770080409182854121893300245672610376985877965592189781249768410937000250566685496011082375286375126301713561021790795736470294454100697589971655125125196898760180820679682903121362967123011567059799666754753664539585519551521015809837197487719534194268617318500032800150761602474616183964450548998271509059908476170691532977005830693374254475270447483121812090093560682415270484489487110104518244310304860464172898285985717612885523754417535060580239168693587887621262048326848388789633496348044672747308744596051361354105639198138561687202761793897902879779756677051636942129319003154237079296697897328899497592513328710737569289525006241072839673345837055856670253922710461592214394935362471036839036425693698161274848128832669060136382467898250588699478113295961165718173780818985906726749872952347471123780224442572185502542978781998698681406831885350583308345729390939520898397079470459803292219527735353070805080978217765346221374507394126528958733036183393706350547403714075873972046222392632779744393894897180648594833602052266783425423894938776068383994492270209830969285276312315513256424153369554440429705280391675079856902563694236960287616405917661441232119193727641344249629742689961559261248805281448837429408188515864675838082677268836689813729041439360647702303681957304312573133869809567483623987893977566244541849850514323203789021874489556407815340516467686073379973251316377806914015381263711429474277380459198598975937067812077428951872205800211914617863788054646459970593300287977156502536606232319437179530701168365273065220570793023845593631007889144538799237592180937328960915276680657672520611439686890746158911675745345145964296981719641298576710008153908200593296217605550921589077375588802989959686413091770043723026687901849119134871148946389277775414148079199668605510991040941353355130193911298839047345640562647145188969056979977880915142919921844845023988659643516638507023769467967008549782767621333049136113069866082781547282832781156562299561747531922658728493294349107294094608314242593214677145486408019604119198947690270945660188137086906025810317276760074482629171356288267787260728498329832641601730561063923952698707634193054450612902112798439851102605733933073679930138076663191860100333738717275536145089079863170245324761406091950420278186000518987901820455222193873157992508972783936194228876291782450647761579670298830660426256845060252507381334466390009018130622498254044264073762171720593946337371154090768273566499932072997492699422000750043863695211964330006519219383887405246456377392857843167394893834596026562764060635220350381505309247382757274600222175047838410556593378520384774428330096125690328100446326211452366153729765491976108420570953410345061180458926031557082412069540612070307179268858802819325676082433826823522042616479718446926145415670769372785156923979069261383416226710030842533346823018129972494001831960071836782158348136147712857405259416071698257890900979338398139635129248377721787795367844755407455684850278476082070079046764011253598446870083364417698902896956823283611222952125182645570323974608818767644231461508935554791977311118632331961580138616741019810037011097600306912728288224597630047651311979360834860247219999941052396418594465131316530016439787915385242009318406612919298425996235484989224136482716508151491569351286712445928821810428585540029806264210329190847029237029685969627974388654969899280467166988811076950189245241065671818849604305190220616931508347489143315027418398001993372821710344532521787178898945902396681731083845000024094507209713911674631518282516344374448519968759659870242660064667448560544468959318758785633257859310275361166503937137722022181736795055466164487460920158432668568732724309236967123900967017203898553995639627684291636830598595049749848852750938650590260623620735897423427815246655155685259879018410165022426111009883230917252510633024091918477480517960952851424911390505936120449626699727106812632507891314361061644809437673782680163640978667935041648054151831197435075377076976946476865041558546716238893939792517312189344061711812466737637109537806528939014589101190536740974940084419103980541090716299455644484420487531111327948816357876479448770856493844459465483929943081719170453026824583803128372319193884656192762416760886614952800151596843473255421435566755879092556793554199688961700435326067104801670321720582635333202482564715583284041325657602005427577872665494757742114726222867840284211692077629225771983876435656710623596254417954400173739575765916206878335386568695052993197100089981101040903394086038032414887770987211397149121157538510316331287605785734650184737549567660686060209980262705549376281698588622359134750668977565169022182164294688524160368519865306945413238269043789031478456511707149311303863069858356942535226637632157302691581054013158966513139332638682039797771297865188232660419183816934966621383151504182385704088328675709999129694193693965856797252004405367719521215685881194940028072680824391758545799226067796411584285068216306486746810120974602445132190491010912162156539224331724287050626957143787396637226068756288477981145432492269765809882488906339557001340182651602295716297582399729287542992104236150775880785086840277209536602024220373699452476920803818929865371018886948998553843937599404171104342886783345275541638572974667430915989511330260430068555966835922300477580655922543408555410444228486683187248004737865748159824265180019304164062419283356371780428480270763384825553943888364105776754038724092942388526823520465501000886170090442174203530011087235785755072597893216175961232908776647181962334052437585425544055790925444450227256362153265375734516813927326166180865356633243023765162019666782919048058877841548680439239617933164492340462947826696368883361829162914107333358939091693580038052389576573017226483256141080625069298904628001161550341188757705849670378492000135645362721096696132768469679376822089973879683079260696582571882364547615048292007601154197414160677907583967034035167780618743996410846323123260618000594424435014358683624113866474854172852805342055715064293488699242623080832062260641804654060413880055832678399659043102698561991330625874576377446550673856343239218479641191390399929486400493548375744851141059630571729500223340334928633644976559412310265018402434783788436997040578877556013641227844944852107021504098094377413475856918098934742938597075453609002876312337865273636223546951344159630927719936864524585430985208682016974897932215495648588112331302792961678652911239275467273184112104938935008880554759277511718880626750322745485767625875657085938359754745983436473584926351020900611757416028073736681209116179803177997829806662116637607029886922700051332512919392469171380149946896496089931340691200000649478637615277954365597124053979415841944167189929424990468574489309295529238934664184351360839810153818271841644545615685276694038628454568912795370293610480832488737421105042448353286477861166309755405323908833673941685786848874463389784945401584093292548633073538782353169671421533519870049161664933110333374472441821278910630776513760396597098330577729247860212153509735073405292051260638031457791718304733151078558436105160717003638261588163553569957473802139621664487012755959808961271698176521357244898819447879426182454458334167675332536470023136912894886262202699076780438800027305200617569569697569811623959782110298365512406702859960514922362767432425034812185234380761384251313507189771787640560044320019430745415008766876460175181548411851913477950529213228417573918951511274029983262650703111241691795310579425042709754571997597545828504098819882678846731243822970449800148423560206170509223413112522308969899700057221931427647044958218374940061221940411163019453373689428031028295031476412455376948637538235755211851195418006597493741212313105962082351943734478398908888684401872792221536412155609975889850995967917831718892897634393866510562920509282867251666466258271194021262452075971001381792349280577952953904102333122190329121671215293683563474318522596643300109837104967347564666798920110936879590728817782751992896027811046307869769689745049385062051175886360774614833321160080857306025512852951747078349588791657311889531445015627934736671604543204646510590482612662620261646044402383127922809365292087590710396394854735774198678483239192884324456890451746645144535734391949446966559302036073140152496932913773162582432625400967022671086374490818219131205481823559485723265583979447932665144228312730474107994215947829306266197326237466589570800083922276146069910208223557879298593804280778988361363858774634256446289397760316158647839876478196044640407537333114642800835605111232238235819457583757691603377343085180382930572476589963721708089775349288410343069933196668429420303741187352402021015278722813685288505051773356317197433590825989825711906467966954494529033270085326004318517690713488487466303809658401204244669888525798935461209543924674693835854741442411982266211347649052247140645112603210557001268747296183559329101387748713649629540601732255667617333809106189627551135634662289717119239015411225593481754503765520907976514870231616496018827871243685382831060574300028874726838260225024551695426204207745332780686982941665664145258315264881269439044115027955669590979955439561209292442948200348815740488364402208670247760328935244060763403678987381215881394365561385520592906342937747582718997680884430331121037508363594362757731082239124860073255291872713551369315099585284149418887015401659541638269718683061482980015670113154881485261621445845141515083734058166462372588894832306030569964743830750382380585733919194261782250591208518927781507107818665865806807663310353685550881635493855099994838984604634338094279652989398345931428405005454540553262801087115879914055896136442711135097328435626876048707455901857562679758834359158162356503070398605502625775544951228232343881879550274386663900032724572092474033296784799414816135095256686655365932419936832591555522907377404872665003441313167552313808331861513142457878064706430727552456222952648083103808175888403330139514332282526823267385603304278384417263635764124685926519550689149149109867855709929522408369827059341152710835586582682268804638491274786799711957307463257068137286446090693825507982841463593841590358805717999833231046434021111342184453357765232385751030087705807237171015991441208094746411406196457219211820631961684873240120098389116965751929956208080534982762369578628999579653470826846218121181575126106158399669055627091435352183205723818722895992529479691155147643974363359164271888131412335840402129510036110117367353929002342420728381544880092337796706024440812629841508454640948270390676503301531035907723650368977932730960078167676681017811862381978101367786579174067011279746406583590977042929879267766280969232946753087240132407703735781682960007568481569204640660766061660165186731618681037689616054568656501439368697484901646155576640002641360917011725136437906969667261155909033418703570134203192878317857518647341320981249509417521324192767740037099690283616553136242513000729040990480144110109515399769727315609714696127782162340273224165349823657278990064154506183023405005312842468637202638208044588717738913298886377278573781006374062280970322634170123010395145372874246431601332853270341697525183484959672605879739843615337834176637696202827762333516558288127479364996009522364104111285855572614670358391243041852691720277579647435879560090892881762873984902722213442363882918417693137660571779751880618756651279537477353663480291644122661395101094511410169842951506312165434302302546057178919572165774365813659379241215058886833739112467382711136430581633038046388122518496080595851494502983843458031370766954186229970490161377669787954291350326251478534618012954028596845233860757881628872138310324381941138916957227017505168007862265330650810413839714843248925185623566472357403143087157673063059626162976363739239654570792277617544286813155601818121092041719007293458335782519913499893140042827618266970998270288107162808579685056707212031912784256191090936449034817192828661135393305865452027817314676282601305505958835011375438972971320296595609661627470279089618813047346042360593681463585603467148125130905953281148532620414439449883523816215485664755982991917292729899191481167256694485110999866875097823728308752955305723821545553638255745590414455662895319732168147397171257725039455669209516288936513515527930608722236712044540841552509696448637309060031030576800707683484133049590294704871566850179641345103793089144496897219993964481320373190154716379385894808448283476751631695544265880620768234567375513362682129267879154087288417152231605985658455509157061180381718220657232965373610620693254759069889754284560469595409942110592581836277064870074090107223356017748254539778281135711492318554913732036174013962895662866500155075927657460149164347800043807508817408263416707364760249791092980939475013854205880240943463663247897566882307298854742517014323352072269161563653240454049092292269842498100079783637534165961899714373756381466118642257486333647288231802250562912980722573954096724742989566499986463490601831607274637927900739894130609462151703712745268036272518771792798071601032184161595664668534500137355595410448687915779600227217634113885285326373534204215070078401463280116664553233009653360964893191987349276065871283482487442018566036096699671308379804430430443846352948370627751527652969723406917713843290682060675607156955895126883528486138104090043788138930469687336285739033824283461986121683781678605615760293100195194965867264958709355361761884254375913131616505435439148576804693964238595196117467320714723641995184998138465171518235850066232063381106168975828271147877738161969928823941524923069148066142228903478999302237790214577379279806185196218854054578462471336443874978422092123781409487294763170410502428504317932848003576595452534977182445596943330329417408250148193345138933784938516156424778524156815018552761102702519010341280885557303771363963428178139016910852308887953063864097922083256442721747854996582332626479360307383035336392416245933888981744458944540230813001428424712916670073722510937906832901236986705944166515430748396577995551039164039588830995350625562965595645458233560652656195556318871622669547228873112550027867275398750677180603995228523930732679086552380326391201874341344217602236251350619891413665341145483438535317142488846941908316944500002668718494279286826370056041420180377964466836530655760894490703540929176066814476459242566453502807182469897949661389044152847674153442702891395440968896227259055858469284540575929580817455788317843414203891941892332619556385154870298122560733471384459378181794136666767517440738240220174243215961808423445768153983781267731995296484961066052359371171298083680436937346023914652490998118668948778253652765687637112183032238121413194426491993872234825755186431480999997592839894774238242639688176901739344715832574639674203081689380439696062799644501806646199748172591123398711176065674823637722722256398411336857432446218601461905614198002508066404842074411496010964492098728608462875822846928729340597230227042610538671932430157883135651814891309765035140792093030841131183312049042870166898757955018780784230270190806533086859534576237984419687002013898784963067356325427374319198389879645244984920275550345785233207698723423711916816765382027954796952989538785466245090123829401570456369140506308642229008576185846170229084121455368394119756315804367215453661924102778922066557194414884800177919628482554929875831507027599878957606628467277523335414921359583906464125728244401289209472106853080356854401248712523251708257699494132205968685730722732030926900336910294056260776484051811386549771751317822404576923078959377161090816444993300728653204361686834574451879379064342630670894322671546044811981250103413738096240801627504423200411593682340228051046825940258662585490821606552201341527200101896260240397006400253046477274412372188118463962958024437569960216990520413301780348036823055333959841690520509170566610876593920459501548287646854397226443396009219539044616585522047548631821180455149406891469908552584651698145590058898618115190460489747806858959136310974340652907321597253923389807762698730715165541122245961357467964651958005022551490349967761244790199254640205947111846593876660324627859616068703327512157093625171608216999787165624530914450596949075562125222593615400225185290589255036818753274753965026189042344189933328642756415469407848511118217782643336512806554535709256656258541075160127094722521561086110309763589005556096908592293274452934835046913795484360567005459553921415058865129527672857405122183227568477189269117058448892200862384821534200506276300425225744447345676199573098457150469610526183710503639010035164375507339507566701109665639440836036189550765297972038811588243876219657240741613692507749236545605109572120640478941938370981508490685144680096755222900121371382766855125473230955111923996348966315668559375244003719500287488681573056214054969477613622937805259144488983673347491617934969052104506078765366484159936546543914519038494311847501573521602556926660636793278228240743354315794914624981025170092067465614233393015085597164314157579553296526689563124516497976174050820310411929122087675370930174922991299029295860952776743323553751373645288517733018228694489827989926969126472096469659031063196179045305542979758026501999699522955110883233465234103719056112084083070721010319926440462640482733020395657587791284240996833656968777766617367203033446892431841950021376497589437216766231208424024967238162513300858684965085505153992568978935347038938845110995541589032394301362168929248396554766401003544898785381062344765806064195228759404280690210804603982839603596826265327337081947725752009996875458665046053910646033709031173200290746677156734091738500824271591618609565240783563182594375375141682924761855312152632076976025613938193401847700728384342935372470968031906820647563911558216335707833626589188610957598619614699069124452767928183547969567807159103461659253304698941795963735665109563141029535365101233507830424693502593565719109295845741007323621486086781778354276174181991845528852614604792727129272127891188359928939569121381576444695136140983453566119552351284963340719081196058728409468301053307455645243229476467622744795943983179903682807415493218723785437579595112716647809515131905353738452445990035428321177681993324414107487240790561682772921357880148823650757779371004149128882096441104636454150911553046029744230795659544436696197820444877125967847503914313187809939664566565314051271260520373905039851415786289294068654455921926783091989476476181046666201268790178894902408786005426349172714773494805804994234149060665593662468798970633273673849460419357438683533693877571553468388035832190709823076850046166607243907028755496515836476668279651741050430490806170161055091113058798375337935507591592304760969207246211404082873340970398635597272908633103577257810823804658980827088995986280441508278301859571216009615345154687351787784504564420960144008819454188533839630677809655962319704540205440991646573614199495457700937445148195248365513974667604405451433292128743315183951067149814012601787065313630042178781581990017284740395119373254242715112556847360842577918420445344220213652928723902544845116221743684052124730564748313781811347561310069374979300831936372078196731054740038743771033957133025594020333837017289027180059123056562244882982933659402848610916342779343407700510335845074903895588512214952854662081300300828331934158151416387202373730013173572702274722174254770095834089234804541673324846117020028474268342789919065781234715937060200572127986094835544245273618845729183530579948481805884421431935474524512475959585220456623812909306081964429893904148866526106596032072410275192462550969951094117590311723721320393506899993877065565553176053077331522755864351782659413335039411814445495047918056730176769855878150514501319775947630641818897759896083206819531748921971167119984771551066265970991387054951224611702857390522436715594795300820547452256496405440694116311611286821181665184065325350737141961385910453544326426309350120839462434619023846677638608342788128251979283578971680661366497602550905988953538883074490978869190049235041044918221515109305916138041897276451883163399191739679718520549903904105315636043221184352593528490699659786047947831757121614054936971041594258239826288348350895364557038679626128590006665280380687843638428074637008564774407012945134737827948487196349154926615777795238029879036553704569847708290003576527426666855054895023117769233005069075945518092246992416986672539077352836503647113805378695208624871196454612707382999426420234191231078489312694149282947548916575137030132450249608493665318508435304338174163696985212393143372787537539237451360914635774267963821244218227499419297219399274610598820375674011596596737804334338187951145674784679567880818367513098258637382593064880095821974327283543421188305396956453248717397215760970291191823050521066134215980351037663352108395754497776665825113606511373590758344623749424576396825312989247025323026437082172235979692212165456431895693020353855814141365124000336779145458690195695249198630965419094059324011407062859987166008787396941419562071872926107787931415923379402685409998590107105151878186112615819787778710463971039594763233801206197266987807868083904143322089513304574303644075768203379647644125058378303298742155319889859398002516065480287241914918638295895968875030694803971870977083930342808975292013957835591965985176580238295809081906371986625549311756674483693042014005323719911101284592391283425605946187174317599751928888413921631571625456584305423667543930330233914600345804651719420405431485561746592222716369825537417657033481579641094626772380252030486077471299288755219390793281363927147645126954805779169165307816426748402751377493214008165958987863453472727322812448704146703061415727178425577090515941860285752796694765477928653239652706207680358999005096436755240719168475205837146642953034798742112687292584157443586650658777023835646641835962403819525818810751127910573741532207466396818963022632443377589186949581003502144015198453620674523091120775434688018030369250238144496983606900935890277551915684984112194692486116835609651269743115844650023830533488767354869098455928142264290891457834235647463342955596564600015116376681431702519729573079694694217985510416428423139081163515304648629591321296338393414821340190664187205184040506024973381112696922956469454500857171865974545554134404521947612803923815144692944017553130046108787267547855391908577098734439973886370557328022249597363823232069151846102974051211954558704422399869804778422595820808391902935799472396894385970443638018022017905743757742734103843836909253788991090337306196520051769414096539509228141298473383016817551691387331595567874039138324639775784863897169397219158191827543405335145492106097178460602061332437085740303762871371271176211173083803533199460229872645127146275141774308423193799750372289963643243480742708302531781709250713303741771180717711184836455173671988697652672090944377038794752603632650052397527142673227885468185701025258916044779666959057851533507348990231632474403461164869219365685254746889736932771847877184750310020712414409487630769902206019461464424481844404395758659349943745222298922710094272234683447316148762457611078593990695345656941339362070555011202654374755448237119788709697316196605690745980798221242009147096335671621315479382540142740927450772343616171499208685039468967619561548946649277538399231277784223809385124937948001760444475687885565794294743306471877312940872317423931256297913573868852878706936069987394857989485477382657998514130848120694216831430455491507084898517197379888528924720628437630533025255973776592420746215430539903577144583516626170980502313821726320571342123899196689984106745393481791675577171516325452968555104052362293388348882925450434723773836621437926757121467786226916167752293618659115283687104175804047465756685722911548534049901937205380787523379173219403936208572841536945611493063517694285349150072589924995423619873315134971638158059572870450846014101972884722941463296219953669465618057858016424012943380177410682161535798926493768128675787188608465960163256775246162445335097105568325347158112467510664797032153347072951943832000172348462141001765097911444105493633591510018892193425223021916910835459800377032356532882530845502176873534191336928330850071204079520717422697593885807342548207834769973176989521134684435176810980711861437567781788797772865067429655586514729580155452408065935268448416984624054174163815974754866558118337667582411237723440347375443581172178716679075185448666965430388523995387193616423298297362427453011086596668247515364141771743141945789939652083051883338944697604351154703163327401583267797614362468713741780163000164523280738920139117943672415046499007585819724871127215025077598418131860325348988967622038360294191123758275874467051813954085112348031519896416667654244231819033686024260702535614765708223819848884191188095725237444159130337976890341804200368715805640670167180830340585230223478406551302055896491482662227382465977948526601544612653152924583279446121360741545459574926365408901598921352821777655786853985660340717987905978138130936473116508240112294045270727263790473735255568321042233286981167525215271690239632803379621889290102207332242531698915083157063542460246002633352837919210836247042123434739489071208914054947374019365827779110368733568250277049000191693575247834678402861975397748485135770339563647845066671184071443906408844730101193686681240279981935127061378778109963867210938254158066978123155389797220043795767309450963339169746072623147469913213742371605634867813581258133548547001549368297381681892421600541834839070862659814579876127405101725157494730056782158072564352007187673686527720849067683442483067743025555986894601029923666836574571428590862387787644071607153717109735060062408537536253503029947994828851803156972127387478351159640024911196684966631703059068309748940896026888105328389481927493595431990272616357895873512777378727385947265711439271551601644747745853261712652499113900725682720523161851030036528702011741834134023680872820472687303583947725809552750107455009072344076252973953646425183454831050404531374333052878146709462375227460625428315448759705890771332585731921151634000493149144434744450441783587057480125510977002315422820714484993926592011325905204455729086342116870474245822106411540952284365490130954124832679584391168200040950759868641744349807011572874326325567949323170794118332910834391009128766777615274345663251599038994439886699132723025005731016238175732107099538277393728124933838988799748079659409380442923577182428669987915007791550043934732213885099714472614514458411783722077981500691773833567543423461351296976258612237987278147329673357561749098555772411332007661696513666069635850252550628918668585090671192373998037490289575372749214261821096219279651455999514879474611344783206684675543239872175346088353665995502189142269605955924554555531479086926138853676430886117713916711614585993302251307619369523439008137199520068050619501880316763312536312716778968056644965824950091624899458357344209381459627437843812886189897380592230929106268268821650164065039756283352234236734620332665882245491373220093341804885254393411642764279297157895995168594023158365844752748814477032058992439783048029254529457527201624769330815049894455127524784896748596843474527701056349880218309060412537482228876560176485265327961346967291729705174215928826191416395935562526556707267099328353560202089561422277625639460019629354118988540068534888413657439367530170618748836862875484200000083323755953342115964808233908053424255405630985956696873205274650393816938997114242642206544051297964209487311689366990609127237846415979441037182014795667429647798669890344038062840977652656386189593627232719854653141590700766792643033823123440703543722539666382810994170576922595964996765152282814861515115222041313633486609796778666493509894740746043980548566519633098125721598293847007441774616296694887698722807470619089016878320843738376501689425930912705693230673041351487584192594677000740109165098446393570972972642122309446449202884130435603820502856644556070932954951389874192786332852907211598833901942003963648749458722361657313997407103655690571589762181124375698599576559396457789480245387099013179163710645810734562532428407525199734249199989852323739167028505082920564541087431441090859965068614362896568883161404583577923376394414447032970542439613925486666615656793179780359212018442258246656565078789281278973928854178013154303823229192564667494118718811237299590517089103483986133293320483049671385364658381782142317247046193038348615017682323207554897939906624009919195479356477308747464023552602797334285415885229234386472156318688178585087199489593499200748950487921868670781367618828775994340789050448437210673710606169843317186877630069775246031273426567875149972886151984394264837643342147520692358115384901928727987337598226226475430860171706469024716858385363734594918272256867888349787998523771353751705806379119599229009682980190523996253376513229685465993953353711767357363982249196910666112737626279818856949278782916068475083310962058680875890382454303241621180674082821706311857494332595421829934154928336657847277070674145788473634589886059951311960850634293180851422130225250938473369672454436783762835500328503731265781662222682020772154214655308587839901304449330717548262763764823074917799844999407273683699038177834147228040148017137963280567944328544624102171171293452208276986644802124290949434064963129136975279030420914270736195739352756109768286739017902313421030418626927171140018558499293682359179556367785909609239867113152960990150456243196403147852102273375487609470699886571003985409275879190758907912481916878210796256125652743830373781085869210005546570993223651634721091769056740693085718035923877498231257968689580356399275808813127394780263084153060449596967159808689474975564466652137340916032911854866877448279609622501096523225977439191339001838961827308477443139347759025904152898052842326281715332970019526313942151796550126984358399663892262449994412719906721695383880174916532658965933666613948807453111096954194934479137744056004318886060768582245607643442945167406128263766453783916811843871231803831571476456713293454418289600774406354141445526211452123540475959973765074561328493017174012201703828597680522249187867384276217577948868155456046539813069394529620391913931869059078649364451772302724762302957535875779061181616751573102657650168616612661822719483923693598794363069663674654356581022040029340833758694046998171958520029856982564214091473674856002111040179042903050428964250365776699664032865149464963579070630400026944714452005407639496019679481417937685331798750218308910153178684903919225547833297323375157981515467672512870224893489436131611417117311858366886602811921989882859848471934741336324900841144976425615513569271058448111167272555380779649802023456877331486592756304349013218413410190314749959099690825390809567124799770696532918181610072165731363148183757498737227136664717189370376964872197794507762720532131236853502601183619944193605730237944913472019493571286289172130829085096486348440120843620423686210119166023555595745742728702224991017342387430823679172192693207427557054813326209288359131005489426637811245317592081969719398154992435877409242999675039557816788510492643414148278849369447128082838350204509511096136606375597259837991707374477310073901933139342047978384527808376945139543184544900466564284465376542542279611767724998073325962334676905504903267375792677845341440146728697606767670430469391008539478073547376359554449549017300919983929199262264784301476859299629670532480581287862788667422954881593828548836324633617778445097972192041042175132096634124001561941934684190242191720791930051267492586156640507436280254517453998968729072763166634319682933845491967335451490956234531961184526065452336486117499803426060414294671467959196982297755470195752461866842237426960549122969027796938401418713501820270148373676511206332665767534716126928935382861823015788617634763322523977867771468240268016603352550180606724551433559316117775254038911739205236375036981376023701626360381324685868479451005223852969223106284881740169874916183848940985323590596125642569677445376249792213688060809204255384206724173655962328105943618690352666640715366811440984904266705818901712277844295318788353954307002678245129775510922215037544974171943644783114928754942567362178066001260940201557410757445299796868930471454678578407451588510168717561857264891765313340650033256178432856195178687685965667555617934200931316859405930391460242893272479060937239812165363168534580951055948426427604675201398439417128884034300407649886016451367833096642003378492076257241284148514311622432260937633248075795791576712912842975600750866097304329429922905661125409204392711491142978917178421242919900917145910376797946322430049521551746369600322108772532495404931469672605202624043181912094557984981244097553567791028442599636714173953607136208084440325102276599917098975856287174223560440773316297733627070232986465587582662962960836443903056916826942106205397855540335264527382798710061685695785694601691063813545436265477244252215226534685085715278306951948547734635430933218803715725702131254288914155312428226154705706266378519999710874696272860810824655081770063701757832995208508123759158639060688016686483861363921837509736277807274373442816518720258118017782728772342032570222202920063163816219615390652955828816286333928833355430604185019692445852944629970575168187547026074038177370023075789546441614470080586183758466988316577647168144969723402726250294496110285543589040666956847942655225217605302071196259694578392303026619587470301055287307727050628745625512300272425806076988078317042100426184617728568756664423456322346239355893620748138717359462322507363716798871069256292379458082054494449652597705820034376953743805882220700756701413971043726525395664304701169428148491801405374767162692578529442576762167703192896716238831750403360962882808479251908229715471339083299775322442957880240110378226012001334740445603980999509446905093189607996864319360060793450924551693371213559766060864970805702219660779170113622039735544874684473519016139206062720335855501700154550635905023806515632904080830158333506777960834707804064805811411112358389557198225214918736472220840656467429397699392332765103778560087218894686699346885996038621086056297190077901230789153072569938992056821661666357256899219545503616963066040117184221296830140047919299463649722177190559710639001923802800588629306019550554471582520431807877909356685086763271676056550300514272535885542638601182786056535751648688755068529265651583268408480292535697080565104055683744058836954889672995563542695851123095478037652850861350935008802698257847854223419245320216798598734157032447717026786483407071530921660626288688826344085659433349374401778490219191824579280165961003371600682979783642577553028966523155092614279140526394680523191567298769640461033150870026872341730344567619148680394284251286574520193752928121934858028268091066096366824417622854108448793274872840824829136508585001979009515969703269699365617020183217225279476890932113918753374331930891545380179207106901303022663109021729607421975531387371401110144440765315473612760506883667330988844048595764834518337135116877128073040333437430696557011391507982296508719457243512686859651550981265464792436639204201435144001791201425678225112016450000393471751748419207813089125267849484256064695326248598166642478695213659631951696138862077496580636774756019585725027170295006362919017212633751211246172725862292620653388326726911177507373530977330138507284653983661186756086600388440293008729025170315369547093022245650050651363895665002628551299853235429933942667708513446722150272402207366331440436709643194592710703365310523216992284031495080545301510006563125024464936684746067382245461396069034188072145509978015788805270399265152481120751620787626260655578165945419089031540542676429902141214005161311260165548752284829505853806659208558856160432843185656726384456048067429737588536788516053145179276644354151223249765537710698379012770040470393520019027209163766387258405957831195802277819624012668509965493548617145771651300242052554597903732600000888945627581186472430608212577425299647661486877244192227275903744062472082185921462842972864168683664935909768793525587538923891254711274210000951944430870709768921462629596499985728602269985516789480222059972185072963825838830750878379722268008406714454230060678292445661734048148857527381043895439465543555575123347438215773516586725930156051266258263610868462892876167156914293629446802130315621013341274850501718575359033198350933821262085868630385428456794663984992491434813249957050465030250130631824847370557033461358195037971612989242433581184579515578421947310305246410019832254973437202010762994723355251732283500683217861942390302318070803296348673033281861824042756651052613256743195126569964187990476089557449549750353370654242256572396699455790529701927889556489396204436932937778763316633323703595507114598270497196934593690501676552124111136731679640295276420973463837615480663670634898283979954169644581231016300981957845643140489597270388518747339309818278441101756651704297698108710527399601596718629078368538639827306244751171118134996064732177002816088057060171612381152208607559148638276937280317397385666566434164216420013564754231714277334429677058712730159661179017616078636723903265348265294468919868078894419621924046957872534921199339944550784375635174067174439973282303124274362958953432715001654320137819437711703132748605035210386163603436852334341635056922348955371196746889610018643480715623518268505589510845391897167315156094036851353068135674781162595706131269170378676527194752345380778458173339228050525265726229465086628246047480383508480770373240051287767373729945463906257077692206036100227491466726527451819759519879050844605228601376300513090424238238568960917604238571874775517454685699047073130653765889894203106740296678783184530712549424015837581546558476536721501545703541662737494953392000259801422044188182419987938602163548566198938775932921694123021754003670572635200073796376720045910582936315927911814126829570313497792602223267408018760995782305393411621826621959334884632316251542941673944312374262715893488455794785612401006349946122096196839187919653493957217794218989529731058665596486532019217525223565690129800643125129182682871601495596872034321472406835501339832964468066069269733104090863629049700332569126952081766299486615940895406587011384155206456110007795247270803426809404432559442805704711881365658286480265833127984824165711790098106925066918159730517837539730057143512096290150295123666583826677121136690506945821137932950210546871190981651257988589868693731124674854771428456485191513325758051431011660377278840526297216277217395840542794571689887592121528523220100469096943790645364982403831916278118416211184447005428976829710947046822308016446949494378245196386497114871824558053589429226651053809407364458098612558948652236276290581210623167602321491261822216626845657069403377792586791100296287211670687186255980534857248496417638099008179355006132022609913587705500089605615638108964002011597385332278683046080615641405850138260744712980039432935606769527973300111758325043654057474633268018233491146267971427388215386203421733777206130841119841223665946971007620997987229857271409410196969018956181963240927291790013094074279134991576589784858997329584702268910424338809460311742460890084243906437618789665652609379012205243925220074314176815357625763714189688560202599948420736965567196544051343556833861645519561013444013804657778283795713159610195223588784585662447327599893142126808068588660300547496582550460550061911581171936204611903667005108923995289265754109675600114242256985256979952780361124291781591649645893022080279605932623435048264934659999410767689677556139358135445295389014495154031492455901623630318825617224841818982725835507028284598434201859114820205298632300923931158493101285827546810828719575050255931411361529269791101065176641373225010078248151528163410559866204450817587334237367492041402723974011195523226825313535584557510775198133320517108877455351461884505767449081742631440025622907872478930609448025605857568882164790823066905547615756168743732959433229462500674460345099375769959859617576452593968237147317255853245492382923909333276835053462423978284641253103634552548740382889731143452472797431974312740188703541979885001933975831563921135857085737238688326607154766216261906856754228730884433715443989914182818623905867045213023616223724264987557493480923891422665868273443664874238649310874083506070525541840886052201480904601319202497866117316314864424870844491772482481044845887699281465438901682730996466061401874224579743912637033497047423384087043983569886992298354478463968858962779208106116106761352610823255747992446025546845262602325406949876548850220195777702070129916606845363980467145731601872133623595797922030839847588775980398884441503119702097956646073103654008040101487249358638116408268561619484826416002731453833933254331913713479822659838713122788119240179199828829076524433742639574512029339912768233618808037883321346957918137169012115339131331100521831144164406074200746505519386889165902611162578398432837594140048441992038167431371413753813281137445946561838083465186432468689220225917713441910631370385734420552055587338117688694212693815075067122231120872522817479017665756380721963389022201169457541604516252719421371356991356486745624674534639981066159414575989403901760644898880139064411428445980449169701229674080292674914448450580969702524449697710534607035230185177713015126652097353008765081034579045784726691068011144458719952174499356215742758456597024865696746400604056195870536881854876159055943471063221071239085160174696908014738723315097989658984417986183964233926020501482029632685577997240292598421798546319109137665368201261143028528869253736433186690573789911526949062908595218191026213153947230855239132682693169132985464219543619501178999135709395206674400308255131595630767005578000715775234807935090927776164310703200344651684830632688632487890403824956365266968263123878625002454318942608967608765328012274966770908502980493864709902720992257342833841998094639446621486266190907852794384336957324235025890613184766955178076172893912033154047303371754535035521358904016891530719319900070398622832505889686712505375258544981723550447943091746969067342169730700780270511418503958756216869952669761172866852464319641828708528054214671087077793698211561151993180215650624236938653658734598053877114425468158286722516234246199022136694116427796454096866474429913408916391430026043096780604203774770897665880608705148884263090112335599602328816958790393311780467921146019899329260483050254146281350688927210256228650109043339650938725126005955499368050135078197286896766395929453514059553277649378998037376371143448893884797644838100082772851895024798665106443434128327709376679270056607321384992924457487584057658494838622717055417509603070887828021388466813756253107468499617824515813856482710822918497338747292747950420688157967616113755958623887565237525852428730476961419155473839261330496899495542906458750593930781489561976109200257862254238814297867181832849365847619424710713263019428944474674118603166759496251251867948517709547633355436720164836120712830110598293237296785233315374686437664692185705567513485073965834948545843465191623506741545741142735235066235212770530584765492087936956819202246114813236306918948873179773462437014907733180495339579680149511627232307522102789366016301374331678081228837235549037690714083778836081614990843795716398937402950853008637745502118588894983351093990736632955177260458862837858763748527167840660268600627367191984362976452815740889871689327462366279736043675933280078234093785034224990331505718602910886498382430804127989845500459023941393498642266324799268395678393178246415945254450506675360517771104714126327287394065036444778628821287604970656205582079397574177742314989742425227894653686992699680593515813690440900743647894111283516890718477693515067990041162159757583660650795152395108062664006488113449917639018783603889283686934536530680635110096003907347810306642351562995198545241970604494460308787693145460838435907362330880518243219922703328372321630442664371666829544037531286292076249048000426914154018801512140897824142356183310812041843732635690000635766042861885858093974350027171343958145445074220171492194149056272339963385774997032795185789360333830191985477427266373034580464085670726992744321081396977084348609474520120779108902802821903791750670551020337488699199877009960638456983243191447266112952619861707353037513365884297025769996727544286016261541871804786312924503697054143306287140177452607619411529361703025120836197214557210279683601780489248547104616391867764443964283094691999360482457146003440421567605322285395227967268978187551097040642628497065467921838045622614984730730340700835955718642678278101270171204333394724016738735796860064634520602377036738389022870942647785949100437427350099933663574493224947940758015707958176993955129795221741282768283969123142375707440044231308686920148674973362037909087349621535735096432413124716455216662287796538825196615926153504245174822040330940859441794092676064091573391511355464028960772422208969541382308673827431180020965143613861871098911278799222133439084205982569083321803199481297589451867486701002828306154694751746425372635521276084269817497560850615179812742846058884152339930497024768293522817571743298180702195295322159578030351153285503455241094598786780048984508683632326140568997396380109525428432435085758324599433609547691214967121644503105387785245066986660323684290049626960761960817875706050729741269006167706136243709718265829837555112495431455839477474542323347042357020103634804885450323080700190066730232910499052220717074682797100742057083683435769263639657917971524610274158640777220102275640399809179671269170517786991436569172387756372007126962267590066850148556500190300312034333363002833142007156795200514853766898142609576236443584909250318640255447785157380989443309572328495273398070288296060106864114238226604557534536489599759450411602835966664140071533582047699834114298101773201581272997962697355369299390613884600183440847440646514680616242718173578826927409362832976510639969831382633727764032130031390938597884523611655525790754019124785864846643032056780103159688903602815810767770037120331469432383978612438212528597780087163017973578046947889520530477732957317581815028258276206462463176603202654274241951515160627685079558547983157084540507947029055875547601613846364129550323762813590220169016760555781402800251511197613426981246117876329049336151411893625403709461826247290752533692110461221496144613061092745862841181076993877008332246728948945740960856865920299323159045759861137510199049572173525058980911909389407265479784792418521998585978588581494783760236269655220584686683620723441013227996927869010237246873296801640856101974449342234941351582415243357306078848514941130242438573265147773916114630870905024252392523914255898472857397958614790474924815336377153862931308182894592077774183854601702220572646894045363000467187651243640227519649701516718470196041952368776644970764653333064759201464645378310370521396708231227444658713079740273045940445575919146254095501761641086044352969114173165991477122452877355572960274053318505303152670749892200332565718152037031071043667148702898393688267942901375151599631902984228988066113084039222995351986227469555816018059791699073625080939832471951880767064912421270631833737373758766877321500965177576674177380759411329837911031765922801719217828030691147796701918473347384889382857604854779952068477601639232447749843922676858694164889715809614717640416123886376123756164655727613346518526406160015407393559115513261757374064167329132961916729094987631456430734056632277166001369377217196198743106383714729707450023086155413660733823659080056673181482606659916783788571959194359318168005937270111410402998058196451339288759068754270829293114804991680523002712601027259481041637452918717327108638235405041900874814052568922501240650847767516885951691041804052425121494019743780895156153335641453220990102676496685597827491691467744386983544516743039811666236124029110106631074190040113241140224865296368337404460322146984536244466213078032226434321460283259529162874559179623799265546839457448696030158282208154160291671151024249437903816478646209923590695179617439373332595873137441035595824398133520138233667187908453301421573214248760970262332443419071074063576203090762313538209160006877904817623196563275100772806265795352018232915663502866420928014185764298060167212852511618122986627509503221020382749916844027535752616839947226579752566250538820720424239797128376056286378994582633572733055455366250745194249010155563209888910127504837808515219981076678936119640406510655842598558398530039834793669157890939092894455587167033957437225395248267309274143784921175605575810941508757179301796851406209082198504710150051159784966752061892002521561839686915473418451244010946176194380599956221601615059366722509545692913335972542614420222765510316199227768889405831083362037807017516116650731492739767816564514660935453987000901305031735168790294610138685764308959615571827681413219993442760550476355999318272091714002720400633595527399682575355937313491268978623673038526175609591259807576731340415513155479523825096663642105546060900951575333112085115929872855406506414157084355317784729713919207944808760677844601369541945014154084049768984282604316745325641399867385324607211234119565216030513192366808335244116074083932509971686851070721299207052368350603458306734860491695292897427749556283307661463303044791437160248469084927834075434540832989547220408945198205943235924430023384974409299992495251567067056163854009925126278995699210057490927844153279484608982841022659935318176863460347211318205117954881921250623611833543220377616146575041444404478365985383339449800583468274837389333365329372280426338178323584593065737231651855988500760402634450542620873266525673380665237392104578267340329020039696136603660848026447689080408318283867588828112771698360100699481209481828331055509879788632881441093980000056526357911652465995963153827596550807940011974690526633069925851432005321231130084114727674780197297038902756219764888845730651974711238542009052512589035742277150647876360767232913922389288154476958163297686893373263799596004295711679362574835721444737242505251555917895793493142898773663062471924783635410917575397512138255901365282749024242211141395403199221038525621590279435762224007251646747003124536538360080117105458813917812750856775348236302482089698588726874282583546304370257852732813834383790661293833558413716251039923668077404248921088240068618287664594721277141595314657165158529130868971078269671652624161355116114209530497606388021015468454437556496158301559628574602136210435649348908777268108032183714101590600942532888331791075910277805422929098473850993772309257428091222501605825248274668402693580019346818824937533796332372314361080011583909061795331147261707359304547147276707597381057311170004056297055870752328876641388156672160132648870914756370877379073330154732951806368340756295194161195859432643133091220037184833662364559637951567559318846865959388116333022045902970898048780476993262851304042655481098069635076422213453052386189203538960113572471477760718861709269728090689542297806356850598181954107041073930581088803900916969611689570274478322787851757571163984785763248834050603144082482075051143295170941585397251962382354724712481527614419264221433056355800365255395968823938652703983440530282818004308570767257214967762882202171059422445990409017607537154803428720592060156624663708004555105496549982762654408969320765623525832407803234119196990383670880699481394480964759883106236168206215666646490414503075519186127285642264653861911161901175514783508117315600437521359412558613306120871126488262652697704684762624043373567587450024766795187560977189508284708919175758895599844714133809343863759863085572542009052801738629005878974079777660264890657860705230590325090973446908877380514928327666483722748124228656271478354363806839014875736947688174643055170139895859497917572539178743160664043265797182942350763028024763248391964181139372677640008659135546324543224908204249119553227653806307296878928069780078500051661854811183455643258536105546703684375856949112989108168979121418917979211445773567364470645972347807131665248866388147944904632814614244331491365065422632615925145377224275608329622448001082353308923640994091831772417845114567124094888489360051950120688494310036528072323989385074957751182416139174311637462273098373970903993595750084431033148726530105075667717560624511989214904791658627934080898814166900034550287423475050930972603777980672562542521672365875827929692948136216524976617311583364116388291967766427886671069927123848335139614965278649564435232606867671341378029357705014894449617159871174698247121276290779609702844083208298458817978847112208068368433555535688670537971741489225409655267000915027148519000542826982390727728775216150365720626216172063451531869085166062407114314629567614604613832785657095847698785884594070406181040244715263639029107985635684398119079185722679197302777669783844021657726196154860296869792089412463671641340220382261208081860738936890929833773566159685646064635864602646000240262202978240806389150978269394332156910052842510679648789254960001877668996598175164791491348998190747135476275156851622955085582233789961138510247994739707196739913422832809831255828426934076933820226946616792453088285792921144267986786772996423734924616189992036847876340171419082288064309241988613179636206503216762647749341344872492119671150779488977345219164002756866748032451120723234744960343474741072153585008947788878670668729391365001752459306019099621196204233399005903546946898015393030892491342690057667435235819824107953259257941683460973488666493028343076909084666066518965216193361699195767717686125059502165953130054469485590562112249462955734001907350674678028368439884030666327505392323776314974206253840855036685798878588528992332374386369245781751605859650363655163321398199908730708158847052258946971826206290383265173522027897673587222505110036880111507615076671286066494695585762451086413854600240638459663357818071082841876427847472008385067323068180741834759691338890231342474818086553893480737374132217600125766565298299238252638901453633163769281204098913739873089519475792574955521363519625842128624493413560234713821641636719203639911244183816594592335330432183600722693533681135046882477784239685717073884133187371649235640734444542254930883272128831396599994359896071821501961546036838055910130694945923959582331810871426748003916385556814352692603317915883174590195879689983524572796631020844200368475653931489171146324917447810854556992868197480083392610130754624157180925338718857228797759559853904547079468479842899633818266671928103816869394790257658496459389309772877413130900822997239636559103699254643590322380162143896888816635250758791053236763609998654562240783380802709005322935544614651929253570030935050224880886554844933602871174449494814730304269174953534942319241583072065569049096305242364387837346428070227239178817994338932502963361095915439735791181390755771151313787074506743391468690224196258232268964204245302688174751935716995521266305624513576428061517116391357237758963542743023945914030147777941619289790968030231373860977214058882728533878435299543387599195979277319062499881899225253379755712656798542300041930402951177608527470442987638633280039801174101493325619795384781629553335655116902280627640682449293252687221424772356057196674006798566313049067886260438998446821028048967340473861078610983435637202957522329364693973525233518632548618619160194759063360427395418540258875566945876399566631291032651487887960604847010862995404935540179391565365167301708812644197750909493813732839127892204588294234454565781832328468028722734444457293547544022100497855196738018601655805070208505339588080296320814587818690165138705643542173747972531876749428580275402007083590526439100148398920352029617620265463785193021261949853370759744239327209071383391027654462200044803662614883942203709731663295802496453980452259650369917370865814972521483944154683674024805793842689495879877062072702832163119734084106592350796731776813619571596696587904303109638213923301998805074236277804752415188619759627133122653422344762922802552364206794832419657511644822939971925590415514215219210411948049672937905202557680846105537257531351386280467607061667706409699797147044672714155672240689467326880520039824927547879598290823308764982422729430444553025064785032255575613792071731145551502257709045722306627562265605135368303841454295881939290643038609105760542006457129302841853636190925367753287084360079206477114445803135391602340640657755280322377594075934311400772198757192117825471577043543454754632792805936825474071270841325853521063962737217735703237866270751689450487145743048527382856361288218735127334581488781911808956021308095288618592869410882582928708989740322241991820609241723552550472023895469445900228878327225684699009269265764067153964102943274614512517483388784862928114510505228301293049817210001874631311739919926337523121299013886668902846535768960635855641076582426423710757745164066841109208457140636745900677206285151816881608438917187398436304426005266870855434993423898259633373011684528454664570386438664714506615483987638000038199180353668556675078262234895843180245696814738006991078065406496840478187907769013963506313417726312162771709073620422673899492173177803417622312760598427387231346327833712542029627876969666398103643163594065292170615781723652286257500559911902604912062319353637360035428771908627842549707014100335978046135106520679984089372154405060262680832333897915902055479887436473910490387196653241310337804242711450929328458411101718230936271103176795411730886600192046481474685230009016685870948524932504568363225363689601356683694714508180097156523963346899087135054808308166748715117433475944615654462808644642711426587384586928384954194450671071121416822355707420653622418584933082013161326476458221883129029035033082201201737829049055101673065325187057752926509213867237705942736364568912512877325468212094742353851391197780455988765638952625195887511521005630370921650908857207054403550379691469897306250211844108135896921003812410351631091683758429379039541377185093559858409419411444381223573810455121382258278880680131653622640787990306489839669779679352265452320524480216632268747215225071174047109313473837470305172853859020962916984607534152154613163430013257008436599450723808376215948379592450354409253943751889545202774601596330718729348306339473813421147257368674559507389993326513212965894988625451299742694885611689071994354604477112019910957448908446686459954178336682159964770359670613902182196473432505376789867236345878308940023196152736635426803783063032302167835982087840503090458490076612964279739409809876773028774746140162171541840185884404720100396162508121707672322717570937379755888339679666809920185167436138384507253184126363845618713208466284244982454731605966399640223751936957760675157698370285108984952374665787434978367018352002122569578264579076765183513469469593743606955660098679212704842414024483527961513570468944046055926806692558163068961450538912635662601063518552572697047597069720907198957385550323558507360424615882757345969813796754727517805544827194621732028561864780088827135901645385080584681247111488365570449843787261292892466125960149160695559295832266793736255629656025565194868063035085738553326949260506082566366696427294782483252555359654697511050760186036465101057643171238840337965240494423274186508226516840673718930117457782902482559797635235062899198219951044708068878684973655496054967071188790783730960101908906428783599839615781313060210675537620451050333754154590240456241553031689648193545637257335832923231111174401380301619158364099518840114912045566484684995938398527610236908275896595135871620141141233792737666906781459197066252298320001675586252735708461433675619103390493639297461004735422879346092072792953597129755084530094149325753399659042523936322367931764782760625733585583369971274796312010188441927910983497109832219187627446378090200149002880202160335939248341675569446550309055862630093764258417404311368838420681802415713781717248301025780914195819042361730833333539037935983627205123208557578607118302671293645660976525672196983620530357101643921282861244675599043068190723465740894024137414573785279786674520177767304311196028685281809560640338427846249678880419964525291370554938745388421404592902373733006277064630076674988875271706605782682345138442708342900372490963107050347534930953609131067070738615014660307236599305483065616929503221094092129986443721999258623039622985589383399463325122727491331143489759568145253960198830408934836409371076327633397502926670698464276316844433578750263034596419204502853187717507808885138487431463808118944115926268567730993983269022465466001499371565392148450132159014829440048496467923082785780693291384996615972397343718838275316657466092765850451020875340789802466712389351736372383568725047366758372393926674981895424284439595538833121823821465234219636192210206373454873687556927445121692390042152116827856521721402603969727489053227073624957713029262937087397415133867347477449801522332420592899730820737496953415643655649418247423326326782161840647493314609805406488332520405472353424938179439616755232979275009393741703742349461861801183836290535497237817227588481518507092060404516250120493946935410811905523326076982577024572325219249225606373705300313912314797975856430977101193473215546586725362223303504256922862513726351292976954679435653622052349734957167193413894658320077036009682283230263813109199768419846994908601831921340987413568935715751004719761109748563526570378082239114545536101241550758497953660736755655327976521818752917237491815865625232197317071279646461582092488090296128384960647466640946547945104901741922228398437289926535121606203044254535890248537032814436211222568741605378507343858640978888395830789837654040676312301854003199862341992877305384953453259709446134107236410249194854559549955627449150399531608119154077548205656518180283247777626206994690278124128035815582564602385748176206354090893203077748709707084375161010722979403938173809067121697305464049507771948166403869072656865968753061128765364570980775188830257459676231507861485734760137422683507791381413771189000132270308148158985017222788674455135701359447437458420221332945640190858841958411122072032917627377970157955842978087206660007287595112240040021075038180606301876897241271249743308238928223766462777560414109238025847654488008640198635893924406282421099272886444530732174573851857177277793454867974641186300676124094894204130110712765989883732221922873823756768596831015054714087775419030191576049203760398552714935466202554782877569019620522539320278856867474082576672017279163970656450177790692309847081265321875187386961177765548787634584910850849184797457890676399991212577867225396982768550776065928350356802093809030511909291947083456166906870795519115068985198466723460225723350043109939867433074912916009963493624207880521156914960271695695870149749341267051493294447550754320247826196377262884214987857376748974081571894071869887330957831542583645880118553583509179603746323627126048711479452629489151063740865294248178996134803612225789713266544770040273560618120521635339839155051772118828699223212941858870059641069770422310278608822645011672078778753569608588929077318954539943998687094999548919690130575235425997849861054877603954024100276144676088319556792780931159937172781731554287330534763693415831695007074447828108912640750089541906609425125999841986947014168631410588000121180037655513622760644838311827213568072817109751432882910631392520133052429302417333346647110410502768242772615400969810544874611220216173760386432395284789123271091636237700047500912456982638636804228343821633471934214857879725369747079161450943092314458921670156938608033125188636426652045885791231893399691597348992191687614891321427447188583978265793502104580821183484944357829373829287754888315987719482862358071490562187200799154402694138631613647248348564441629746745758633297543972027224474683186870637291977922077460116108189540739663132126860309241516657112205430362057977958106526092106349096871724780764905263751330612499463490747215106487580025750398383967038826682996091420047570976998707184866950865223988126216140337252842456745315313427389667267702645815096896507181995902834563660545242039271418261689870955559906811226381668916194188290366936290431001473814820810055042269686217328447656234972672166044826772028210172804256147681685755331161350108302441708061446903025670730849017351136099774606434551802936625552218235587735422302151276046336000301571968124104526908963178550857736417034034290909207866451433504925896096558741035285710838254259918267323568368167663484624026727243027594103574575907306786758873792722965671162057914387044324070765217318839187598974025242627590466017922925277603071741817431661998874965396840951214897823149064101552871114480692704919747317063682319716584007970446504878138817959968799455131798539149591193388757170955296089601333199887205240511972175058144406860635866209906673636010437953712699966136119831239698872393794899549492429768132547887069156931019287440796297617583237229296948698393660663333222577348072527197785281854437430529164594274597119491051253657801440663749050162924380926132261045490905682547997011360189454323838827893680676810152888389337753144181635150034167332961522874105135645106376707738528097055943734048987287168595403238310609299765158431774024341723477983095722594543684869641564756066137123668932622943615424770824047614625626446326115985348585599370532236834888687780276933493444219310341459370101029459122743716672682990887955034587733998386374258359667353668832042632858121669036981230730121827717779425619510980062652099205104752735819593293920187853509081285343261872275351700863170750217779080235572058799755123488133112909407446018648398800922113578332253043423854324147303390212846654100155758806105178724793365739995192560275323266108725839660944095704463350508980565993950987828692343340144228836177380835755430893572879295497493770187458129810613199389228870765797927861241543463623137962806295992483717240492890184925786205155112312549361014261122808544161079366027914451026804110526154627549750288911577432792421243263167626857004282364317646014719432518988628924317182022544342146846301351199640153569061122376036165619632699322181301367605893254784553947085050404053892601215983576329060572503117248974141991983309813482450187005696975470392347023660165538503805624473846558769075479924005673312495779915667653709231843430682169221685441257713888375407680173835736586539790535240783861968322138220695772800439031799115687167584839345536717714576524510240493304965466000396132471143321110514284660457419956317264676380277595845113192332896049286588188867452399483911255879237680078581534438551401980166186686093791282991988321665987787795256396413049776627938994980206707017515653215127908378688294610362875915313169574476553581781450003361774967009812348162362944551378943021770198466811225029987311052012907458223995829564059764595907293028060971241834979280460757372971616413700172741918256371828172918762661813522493599434919520253842841429364119438824830297185355977337872692705820242299927668256902452322971093467785571850900131383239391395649466421710493692223055918526240251040708349969237669732667653690968156125649261287625627680207877539730242618840282310104077307192991775102214755176440375084216590978584892234756534519163790186949394479885080430756966412339145559060162704405553221234315801896530551599833991072820570271802750766142043555913288306571399266935316823683676732848686777494390858818448168082337700804984397226400073386775443485284063447805598921163854328591621460346463255318959575527250015084740917981911095527758052435338948108784978100124559351013510737601286615604400750384649627253706744123382501011325052015913738828387228460869509342550220089413988126502121074944995329307246825760815762865459948024949939370867995313290694576822566431173673673429541226390583473044238202437456398870966903580440282294084014672995337573070127823062749537434028737801928294656101240571818886128637162918626679825286591914234526567078327243735918979204481935103316729768815522784683841175691978104507933816236941343775263878731435394975712014002024501418227442826052067298972634755650626362680433281190086742430848859885581851425590672259829089978492527239855183578779814970224550509406811881330561922247411869654186740816474580847053725831561471328494482634577335673790642644078365199305704612598508215907620955886597682575874695865346412971283022397292874663000646735607699776742463277598060810310327643574310896575701389117829689742224089465539589210350542797691363443146414786712291919586413334970011098989476512453292186378591651017111851407323767841231095639784228899634787435199894476835388736366914215982641439778409235394007759682166545469434222563570098672013430694992058680340469823516538519883350098054997370606587456738114623533132231074757053472526164874653089215460486897496855500153503232986763271343116543614830069151262175008499867173430007958603042880374134004988335204405051226540976526709575284446464400611962942722111491254760867581772398241727951724282420257846549201913999003599750724681484789054379942665688800583465914527416544063547737327543991916255789617057573412769247139352175968720658113528835075681067926247553811136802349656900954230926444894875783973198195532556225673448642517908446778342598594151913285084217002756477362968557098261359921665350083086180389575195717097707027768392752854963085426501802217082984373370999649886275534953810822984024103791750313569553877725033425164057719061526395707725416638366926857636847548424287251418371094880702907497448033371598780078057559035700640684236861144052782458580069725395880337492476855555710770262720834220836512500270363795949428303846558255730485332317115634968450795235312552275645997967558375173041170915588849759909071982087915097822736578169954413454416861007237188455651662227916716030425043341333390131507868506601768821324523151631620729691116376391230200368185648378722313817989557552369457719162989608004475030583691654920543689265359349928606566593948866872871053231296396107940905464687568460418882853526027048360137911843310417901879768348090784364741235311460893239410192214997046125621007797024005503458201173898922366709298710434794576954495341182091455363264605943539541371518224417167955805747235796311760453190861911542203262287094299616193527533754999422184377697584713361532721586544186846974136106769566853437954180761656215631539551059052124572135152010806083626574577501050596988638863586574878611016042177537767358490148812114784219543784223867638990445945078364182280436735538782547597871600769479671784833767684328386130717871807185079751980273737619843664814239519837568371479858583396567417790109044747974411660275494958050632927428122157187958820280403137026668502165701526607687592908674853486746687946468390705951394899074924292119158507025480495353436607374299535540560322561372099007630826806872927958034164012280292218684053624785090415870775971329081358286927559308697535531608708206052178547834367512667740437473859529769612622936487849458304442643825864316911326643165480705602437066976556785857414420513603648239771263459184642050948891543978419090191203448555554933645814040196090816459468024097895776954951702486880166038957368755497915916559125218685540804303763870976273772907245367769926623975555729092858389060229409044839342694928189619129734941823766734830827766419555198665869805965595838252130325641336947333199450074197506852725002621838473195720736751732281147438451768186780610299035004843998909520599314614262776216025167305837299687995098695356257697843789848775014258590859051770356401966048697591126076436510904156164286631983158045560067488034042119280724687264094064785220572301455652907118554082922031276887509482253726361659521536141737171456000931842785875406302456689991763232470194687806395720867264968600344638035074480427656064807185009249624074857437036739709242663829674525837390311721196047942392890645915509594544572554983229126239846992247595036313414485403717191442532262704123795617937573974553503171399698730574836821929243984807770152657196913585009587780603393662933561912092142601119086458259728286085890567504476671045339863361688322573911147830415788416257314657736494864588263417125113509877028351803060234913091705149192338447946781394299574942437140753026412251002163672321778592387988166435352412415460116937185174661764703520034078330978265607789073452165352059484603310276389698108260042365133362065751264081602734256779329752254390481237169907935852910680321000964068929850776477265782914874240589011475624031097368439803164835648363542185099605135935087906199375799856238328551526703773598815975694369026854224242699511017236817931595248740398647367367897073868967933881143841043491970531643062369836669737152537879986543865887702641430815596406559494104342154171562749532142329031141828247009672242346514806047130769097244910130350240915805660187100669683456165728042855587360014275170118838074691465960994121154017461793317279639008385233586286145554839080666760118159183028434476334178741382619454397258605605564049376649663085110014642710449419152274583415539643788594571469425242853020321112900012633338284147736679397561324744040554480772260017294281119799706320793490190935682383951323239496862493373567858753606171110074155693981785320910577396673885170569694226656597086572336433176903179223618241804841344683349353091774465854747305121554313672971960760902455690214358882338748854100172329469890110291333104866505843549350623266885495760408647250936630776577597738936081671067752992266467218378756405940065400387052557408235351940078637757671794111817495205913438508835094872193329527949030093277015482962657447751955252425838241786784618909189997409186227399766609453644735783975926054419038592753307764226024315447672308375474974967246117272036153357167747046988457736292375020362463401375336122757140826782559609496026478206143702452294319330066715192954153644120499054271663625319831779633364431235198911696723432965258564354109944405914170518043193799300167943663983528599189022926638690102354992960490364727929939604372204602033510238862503780691269259620300338074513791791563490496856636115380925478915364731373452056461531607052758635473451298188362982989331746630200571398589201219661830494495752516916043223037013618780205188470660241672143446189101744401373895932865242625115587564168829658136042811884180627551805841626398162575729154108668836660831049547565870508315923614101697946296703663939690367340716191762476669089362852165760042202717755369957944760042810094994752834629135427980164442792378565355580847749825146001133417157989698183450787072319226897787029580987953917594198752565443090546938178999646814740856492957858082489940590042777784915816952666654784253047511351044778651270761848877538788555135320342361984554116098138849043446243957711238569786194053420857292819639126543504185496528782025875536346626245021195035115833791310310885000187718058245495690875908195072247342629019436103144096310010350403091044332326418209414066803684100998033327437959746316795430947165832009886621133198749844365994472234757743673657912971085986026736066898162215377556133048101569726188895785412459682901007614748024043149506436418602419972594276834823700352617252013951119442386122764807601210125430469249785851693135813267892860950908929951503513718417554026205051938762346411148803178118053832009110217846132388129457933522860139262643176595346581141611172199428381935812742611742446964676420701721284898686675849827186122383237212837041195500251173702179686043056408866629914044709601455977146412011389358568241920984851810527634241073315170322511692837190753525747386833518769987234169142825779172466746928869068165797320182749125196244481047823376564569921723231147412583470777286140448097237116737657568170530018791415012420416116494760574333898684602179286723518680736238263388698379050811239502199937644340300730498460767317745202429229360998664473487112840924134469803492464868513559378632647574887413262667222205749729924659204686763788297594574770345169149260651929581957613828432277430008171127628889883838562209946301470856295397693921701299658163931132586314708706472383178957692941390208220503262198301751019145359495335866451375134999250814555723233830740139534944999557318474695286486683303385584462293544603716681416702016208534889734610856287651273517900294477482516498727179158430511572270984704308888275168257630501435258777084047062672495697342347081045918388227410421911526575224367517696419833005877226183364837044926044757234190821387521067563679196584201401934756286334096730488216728398537877345885314490810791710595810086823681796953827784505600456801294449229173080244316866803350208620931680311457003307904833010315462530782569731043001149913511486286491309287428915628079898939391551318406554363983986020109425178608562250239159859664325907581719974399899131088199015563942203617908632918375483401669099041373456036016482610566377505819947293281660824362984771051538468833866858581613652206745260166215959057386276896976257197093101324010576030109368017482742164670684000302120710336285336392635704906747471574062280595937914506065150521905436055735594289996591927134280750873122488869534440741730528384408665782091539591107166960795907359580893480389427710974081772618917700721727673652985375566817017964798768795274218788720567099614288111112370702281689661577739425555672015392819373493864602011195131125850691726204605960670059843685729971903520989875044632361305932212667392913000234351574732126089379933383142793977314089474464820113339448435904999267795286115604601742726835137814365132426289540587547604497049942584713039043625529803053020991981581143456250617596615760112409414503849181276738767557196550337328267836367109525256577193242214706498908467162226518652494445020605006448630948150002937212389172095801497642789291156129765885020104286755862924383138761139327981274139628395443575988146734012448495676822564606788930506889779431206934102859713571318687595892263299240082906424915220290737964093245351359127787716070660680810989542329511177647770595025839933878338345515934408053726910316285074512551645511219746461399068742390973766083791328024015645311102201953608191208226134072794593804923669465841885926519008507977870466305931575253726726850578397350482205839432804263973334400341084664177573926268997927361198908032492213648999389877642278800872604862531436678988580051381457442166584137040588774758140910142292639232768424573042478446188489219771975335163200329650196238165643298997720165922108441772903714875959671711618355895131136721672924690465294943135997050927996523902097382632598941206461349691330014974787793073653832680155063759819654069408658587636337795471373895569624411236604075631507180699647995238019174470970959898920687986250232254212931543935194005836747031315431085006303216427320024340922973546919768370596061540391396401320984417073194933792953707753939842584285007689043012826228776103082920341361571670000130679912973028854849645322154021881344020346336745587287177518658792867761555231790760236759978154232752488405012388685321161001127518404422771849289354902419750246392034195249073457537527788955601441757318139777839612195554057079108695858352541556117116785524939714881489097003266164732277296226143200478420547347856162680608623658581885873232090102143855744172661874235777842612824609282707785095771663840123086362316689120498882361944478595854470243539694119316479219750991286697390682977902687778531436335056895440829605023453430439063498490338295694497143036202134782706217471646262750906670379751574066908209575893032454384699948316990355938341034438979737229744418412027063842474032552027994582832060021155189648703825078286117484485135113953783985361552798242479621928962075806334999725568202381222061018059429560128819679074189840129333322133278922570787719689768573732596889758744292867873951894829490914602228619001978201141447582403891302613351551012593029230912172200407239316398436815631382683445398443554999054726645283188996980574940003690937006761685451554235382994071609372873049565971552088123820745484356927592314075079684294023485710410991659878592460985806255017985888888883930414887746364790799832833591166208722574792909023527533685661363261906380112290794978698707384380606998102488674470606945335823819395149745048611333872129912170847838420255852581722517058318944178581759503460530838873876975509939769396122531622547440683902311393977327307809146943715468110024242984805994857210875287877550430056657077957170952808281001976438778280891009617835740075110559721053263875150998059348671705097254772088480929806827306187819232524332401776479364394057798860744070914607421422374340533611680436477323244631306547595410781047056230739415624810755442505685059554558160258791534339343319973273962123460854583682647354256586024332566054424376421401072670639032621025470340889446765104876851069320627776930005283151023721187051372828561295611694360527258747342948946370135656943402342202496827516020802208666244897649643806705522957352789342977386206914869531157266306465527468741616018873333687951386196209226466888320623360957338074675413702158670315441696709022924455302484775113665104859032369666731587810965040355420039270622313720327453530123663682432828938784960148984071297068510129908836141165302104750142535903497662931430432797885807260872675458305382079952943307538337834580782982308442136304721258920197447207763617044593530349726484950329111612480824415189761060472712374150817878084989887897230905217459372007022601611512775165137448221773228914886128502538552966329041943755330111878165984828929587052789388188845203970000673830635396830606734766431527226071118831273916755212745884219615103484846700584306240421935620316385182551716345496935440537023691617936405213729279118034240663538048945718778653162043354989074547813352754679452348611985041185456247785303938459247534907461905613283042236325917711797897877933013907990119404235011151123514185132294878237175939028635431326705493875524321607267560937102713853360722788837179343143101520104977378973163633214776960209703516796030372963193509397976772161892341187946546458350868492952699979969424447378500184518749365351220822990048098075987700827295552313151998103460631980142283877973525493177629013013499695007135839290325590175475876774814645505445851288438705344061001923512698029469123816736144809794167667334972757610689780693242297975080112620377777392726195567750806318154049519458841626493492010580348300631102020041301484161022448488039780943326121723062498631183136054955593207497114750075451512499496150915896209947026039704993167308434075470482629679698123404082270489792572358143852163952461171691642088782081538525317056348579652510157820403656770516690608621537129016923747017099720025137372731729878356603414534165192788468667193622537925947057304407802990404176814057249019652062820225878875602276389227915520854311701229678027389029666590776621752659294220426902458126510354135083167684214667073290899981574600636512890504632766203573162831349923420364396584263780328829745573022222274356479913054381999777790162985461846338956548477410525131595466814373160638513854314336918902278293297463924476775280686675816817232835935962830017516259352537470587123458637064558518572103208094406715257013663368722079191050374576179384143307683307688367946127837301313752653749741877304971916822177167990561082522218747690580707786383441648870584807541242827321537554354235170839446949786034136254940081445954544049671254543367249658473189063838784690488276223109591001733030938200557168015806239654646664832410436597417455014083740679509837776449483328631595273205279854522289696202755112412835517785469001471120045001133744140395561301086462698943423142068362888167142103898876063630980759860786222429481858871961193566793704334350107260158539512308887353065002071437316840345642734021174408546108190022448694589940717813031813230260871295718677165384919798705059862994432042275763153498699738010044329377045683726082830692595062828020357330066321165041166053437565174458164453316639468509731187990512604912813955077866662279784873239955915668030571793941673691176532427934214208594662715130834479870878350483152886704268243560092071549421428061771074061330473651212556507146197298418037698339529938268921856917507463856056664959942933338922426374159952055450142590837520880854366671406860630574799629512713638835388869060342858355485922976832101020291018925472347000366560979132951084494233235373138673355584024267264765591053442392946729270484701469601859941868970209848666785502697178746957235963197646840598590731030594067365581900848223668201294873219505621270146685066273773495686496940384574681347599399739114979406389151173033808056879906855197592619674924652668093660968047411392821533442380082289362481604722077637304470335348364473110316294814650333665715977478940493951138429861843957602613931279014371702502511191823225846558568944047674018026994966575416661482906512276228916056792000350409575827068868938041030334366920310784744741922904295504493261599363030411942632445428645305540248693163278050076146005433053310870625654423622228774989273472345724063572732210868952142872354394338411038130955574741191314916780162607265328074800076213820561478019794169514850920371696232338210850427070554131364687184997532061114801849428059284153549223153544982177593971773591407127425476173863255122919130495311256616063048030221201963821326736142458981691943636596032925089030525848455329336650379274519153054478412208143275747630183435582119277940442294763076162151604127825628661121990120360777084313892834281001191290357686436778767325867012874696141115621442574177411175983526317538258527285672684646091182660104703606136593890547475157289981583088350209558041715977766391788233108036320272264646237194582479705119044643458142549261188098100126414314695922449860628935552235965828684234835058391158884537315879297643299340882846353166959580587994506241036606929976780226141653294942933217521494688467830616872091593279166197410425647439836852452922302734033045532061059600820682872131521557311598816567980238388373250402592212801164006597733986923847409774334423524831904867519418416800668795559757169985832388573966767332302022904039764880527838510610723866804221764043744409035302200816594320440946832604247006618763502711001921697770428325312722023478615718484130180484085591797852684185292873210421760661571203771266533255764249551447040873039058255557954778284592530467742617839572493838011200577234644997127069731596302738958497040171228712303981667657965786362573611547025694799258828965640798545820887009851763514297483842306666582552617973847011400854126777130071114669940844274723748691625168932613788388127922631883895032438166477714004976770777628172678044973770862402805860899132436083967057452622638868414332481426822320256234727415264071632516880606529543964871411340077648981381923387133529575627139247261611680631881485043623595609982313465389823845319101321361376324532353996942179066019396178962493785566006637707455779581037575892114916838837855220120966578915231208175469594073064900445991961628103700600903934452259642371795758198015235727213827487219747506559227879641156185331795808116438575611338613868136399348370157429326686473579940957604171970295275564752581575975812520790836142546883282709097191979576543813323292704660382508520178847805084454732497274034961524863271939196942135743239800690205804209666365877245429006195557723581437160780703453903997099859038438485220685518058504124419037497784474116302209109144849671761115424558867324275486525554835661331263109085557834550946607658743279037613387253904834965302937811313366262566363462821687577277960568837879249829418096687218586139341080669645113614240688920214716507871542090704985028721502807367031314207112533331523482046442350938411380233965237797525666928752678374027622047450694751764662316716455748831932876394090103720959070190856707245003430000367675882617917450674576680560916617442653608128481640178376733145163275394947473973078859802992862470584323101355883659374154993459506932910686428215022179622748224878275552646286891870696309368828171055837465114230197347916436441420596477822880926652686431293089483360466193606551488131851440950022202010218252688214235990057136720250000411250556615374816283444994285251604153498011321190797503061513052016029371970906380470764905289752009688282009576463575438710402768999718846472329315459128696405363796822671861412900616936483654450631858449872775720735862533039542032640440160705556120801029722226419600876723326933329513493647729340956404662472755188924137318435979085559370547255522277938135485516971802292202394707675702317417748204592824612188648845823661815794564841725957583457107139936599554003601720181963963969512274219448987575564242523552145774278296428446173752774183588936157026407094394002279143607774454512850294641490553942143141321534953320475891285159728120469455335011111120750203285893365847004126113266598017362303090469293223464502240012675014572899668329254466263434344166144982071388885805808086870131556346099268735201492629594504698717131295751293696277027415307759805953738140156786643058447914229497828316967983467768777422201577004665213838615623315122940085319404069123148300058912607152636882935550607776153908464932565767249699298336164915214297422708765206480107304977262504107277507183948075735562673779139793306876655795754003660672982474187070096945832511170202657726419867383048060949305528369414503598613336325251858466080659278767450719269699181553843143291501149708486876162904850448159441962097157407011834469081736417306230670106113159574807946124221338115902062523182311267366089752305259906139372329400608442542787928821060575864634962999684247021051005262198017443883614411319188880937115469177935904899590997939565954256452150085331863672989658714502150820653737587766928364175016879036563200207184961663641512611367573143512184946514353205546414825776545016803562280009186957223682762419667701591553800870395786836676492767627245401113217876718606056016218637345526720886994941976937751433385800093055097390088123559539719154904655522534741025451196596329035931348744876005447676012527356479212145852051514321030477826103892909741439796087770115738844833776400109881303721693339873307132248741881337949845484024317260884679407955365236179941530840987358761540067723307767541425524143832238218872059935002103580731683711879564876200436785233831172965400783114321803959657629653426129170622596114591785438425694836697083316395558931153738192421869758651691642213060366691094117611472247219943808522532430387648915338973606875607309621179691843068768798054601408917452786579154320608834712890740410639149326595526675954112341217386708232140427389785224621048547346466093797942138155506132649605831835819662558261830726995498964052472167305645385669392960503651255807031970019077520284540636695324184013079449354688171698522380838447449126296126943623898077817166374483414564075529056813442548147813234945959174560518062166288654958051818239498260338070376214485191321409396766792987808468890908093555162616518437037809447744721933051451621625927449402838069960951394287401257070368627872249940447059865960942386623174329922450801294628982000798188260045696518998461797244243500719916733407848420721098433083543359001334927892730348035084262696206258605572300915184327033185044275709054343264078201975390697539489681560583081305457216682244079623584449542597186667332480199286419063558427239666253064945186241892504949530184344764511887141105566524604002391525037344084189709584707831116415754763630765231111260672158838208553141585876975093412340735871510086763516730227598425691736665176089470562021517501783743234011416623400056682060023526138882358725389837847803054983819044236386947260588235852535048671915716128337931406709112976032708244444182328615894417363124156005168595349588258427595759853388552363403628963210321875194986177898893203781922396382033128936123482415377650727789239894257655089263446331733277746512759003717712045144925690154920322719716549596974545768230906717681542893992769267936200867802389819009699773551466821545846416261723631426555036714235391269626451753724701305637371252239360079083821397688252347929789370608556631024313669724094645741236821252978801551681856472868571732046823279757069602098339319963332092646521350007637542217936468616789901688890748625306358558574604071849499397620780259137382146142654845493880638566507073999401015640959002796907592334872769623534264744672958399625459255495935953181174233931399853578264363401228351593118219617612518011645660608412196777206724262997510963785127123903596056148802450235741994466504555426600578239891806589504750865929442484574398288069592270304151628683230062668882836007647078973744086058002036908687268101450019149514668822819385958763047099499431331291412222861712657541587723095508793635549654218528352262264828072712952274907574564689848427485606552643386224803196173879967627034065452458121622658086662981439996110686747953644877923868633342539020464458155010971436239251961331350488737398593378824523462050072878215237095457375307349913953042787073418199789470337600006048626305861739969982915295089875563722853196920992591737025954016233030425839379939428384525599538713388617379999872732702091383340512302854458456857559102238037540443686650403017036769622535065616337486120248394498832931661653568075066300601446315894886013871577762732625747423593693322055580524676243746902355277107910059631885424913857089338561195005421907938858248937785107505776122050459363217755035991624084146948259306133190334061094086046667852559987083399240079130291931400038466611775580038150217487895534269437683099919171521090505442586542721649448450001345653311582627954185477937001291779559617795180493214392789930688414809293435390579669943390759880445964003330260411328821640553418760652084643236445086837340973130548593352237943290735286802972069704528294559035108537337593805055911463469084198447953799725463644880664205362875776065345944519967711723682008055599114619862047573721821971937201005458532246207092966068670012397411334334547749781654291495920629957279781942847592284022442305270394544701903232814673369613016672204012088278015223751634807567836215111762021661290011374921132145571070867723047160849463272046368717624639023533606071104366037196244113315678497302048643922742507998025144407581676126348381063233005044920070650765122655405200958606983330955554860626191837512375741599963049941941508545950531414062930411990809949581494699089596973810206925906397036699999067323773148311436789491455499566990727492502113479993429663807615693842983424977470238772806850259166856923791555914797234932959461284708655073511421630097368329929310896427012039721097952463866826772567806025822593049674433369955571873575700598805271634720071929283100537189129528438071470720556837386240706504657417072411402689998875312083674599290492303520583979910966636612289007386326719915726138237869210544539485516283002660826887801860179561220767178493186804133125928910376081913145716333049576449029876360911106358998764136716581273540024351836099327939968660567464142225404259052908618037620676697108222688565208830848159313208966251886934684537515013803477154821968621676410542069420315589638972977294404970118287399960152793697751897261603849826250497689157865933173378180998525242887685918321104658345632987695369239825228096386817211682851318399061693522567246172892854189937762545733521233457815810419468965527417687504118037500772145684247119033970725147240604220185667430795658920413426987694483417935462998197840766392830824733447760988509037836896151814898027305824112130173007008996901153577020597379317019238038747081199352672175631733115460161907982282505404998599811794889828013614615115652956384112890971223310939462256537469425843087843051605974624363777191637198107757085511935856978470587299127082694964208530964018210703407052565467912212309795767999505626472462256040259059758049964374599930751132277472259730334641086109243275845815031669952669120827895310364256124137188566590016676194664221109206238985601861393374907767893608674352153504197043632976156723737568903532318234862966124414365095148434332710723529216952259002051990994969812832837626993677828843030209715015055598758171268254492871866534751111865268248528293351902832914938370002932135572672466559594489414576821027762609486407948474340243731735684157472669816217741948776848748548647834994892566964083138256511465831180469263171987560093944844519960349257064145588940081601587233097364334238797415573150926158422140026734103022181135293816368395396527481900816955800457667128056458442503853959378733355919975145073801017872458124832895839738867212135110898810081218723873299138334872801453091769517655679232172997872643211403530063660395828406125691790668010575710800678128827317321453186949565758805419602810333940823014731431412017691775669133761694164612810433757282673435337672003978785328360274399543219802641040701420997639514435519683071671313816085949764639752513590823297034161498316045902808042776065825581041911879096914036893392193104213101157342997423639589730749726543452786439253770427378551359144192612388827423312687280417531441143252307924429432314289591468424434238164216688310976284573658214296071267388137268480877617112720230057307927715499159066587799734147468845329409092078612173786007141125198430830752851213210780011141086858675058608977220693450844211635680869435824453348881928040067551879138739095272139383143795713679958631532094712683143605109427717940229495462656769045228069876508237245559860083011414348569407987942595509731112595385832728515635093081881937330956979721392101654485489994701182333371245878095781430744512319880933517393067780273609169592911769001190877800117215359652487919079214179209007874059154299441850425675680938917355513368682060124562846616888231601542120687333877997026717485390725429788008996673374758357099200009973324831420025726562317473119176443601095370215273937538756493408409829260261116212087827592736028906647745866239697965106795089856237765046101765605605175767117262177463347430493173002750693849093357486815096419360447407235058575525085016773613752457835498465209548004797331887327119563630246567288669004298144615296934954823183593613760480109176969315344268333385328900936707061964282589383022762502155352109101246881897038527967679851455468191892014820073108215723519335803496258784133614809938338927585396051601404871923196775164036672673034477044999222941288100997546080259774610756124109881331945701532643123910190229053248825606456679684176402006789581544557948521723272827399371613064543106763486699618181394990013328018630022474541657185638931244532461998242013029886285167420309820451801888339522176768917303119329442079644631374243956255792979722303184903427776332644860996524889489825183499145675132423164022931055583109860338445246747834563582162225911992461672035150594604135125769005011278227415961697394082678949206503251254784177182824544175203656507035533449573244860440175788638575458284267406830316684967954210086796813412212511617044869731424212883646266876931439288884289708827447744662456356107112748781732422941860973026136926269288126275365982024748451883777629683773748453940353577257604247948338374593899868095459548348828552334910003627916729498188798326712543297357936173458196524290685706823897865506530386778501691764386701174807192112426103900368617244133738790216534066767417695123811108721007320743991003179981555333700615404978996625807362709725763795742060931583188946062387369777118240993635657087573212701741490904409891189799143871754576168215648009226669084315353396197345412710720048968225239188146382749145597888680488284829556562213876670610892300509638693635314372923886872009529443281269380185482659372270213334942951525990377532168146719188370200979372664794873642573317685167198582811736938994118532933051161673922820855358883003142802053214371527878357125309328188799708616387663318416038780179742743035468019239850968572477362925477498945238864643051863824170551511212089623801935574639605087844579648789904873491815788883626536109807602956766752572387511528351030176483266864200613149131677452968674930465348169989712884887448182592319630391183126249357605848196028020906038563871490281832147763954528432513703001358129402561898063898698463284514846867530240499926714388209375492378205517021178070020369750013582297224351723515945838280225668238487157382309180102967343698455619163383402020185612378378902190770533806709840031144372657839171498242652522478458965038467414733585349205270520620070736861712487234762541036946320802151819722586473232751463917291549630145174007305394324888933871855028486360095368521152116071218394258329709348714608502134168056158159354917541379228226497895588443216463457505441789124686252149062786724590484018556922689052584131166535209568450871255037265838334485332744812157540208119228653760522348336929759276238669209922245023544716796511301396003182583043898077300059268088616778383537800131479227689238646769144221734065515900288789899173340196997410098999191796196022768705587836571598709799623754665906403673181168262671226552859360563318966288464481468444791299310912690785829316275344161700833122911774803873241414240556406642234111741205235297065604312430313261601535227492211654453029636450569774901786105518848789831138493533783664362243671580396138917442905874711701698118918570541176075039389732131233068962367833694162042359161220025031943109042040293761795331741182147184660713393319400614328690255756605679888049049185574064445454229014046987168319164301486908010683249947573060292883516705164546016862795689392952609695946537536779040228481836657295784363046356135295084912070787659085396112993088206987116271602331049776759053515529229709820334958831478189258082417467623448955243417011454634435042407641733378335454451784627682361497376604529255643505759208251457512219317482545340777922835729106227816143275242341803961179826197819161078653123866807349074662035361351318059002134523226744777139841240081097852181721286492486186151973196638842723156254341183198512708693016916993698280696734547022255009753053315308994835336070698179388278704243650490510044094652786816148947163993665853323888934970236378329899015092323546883961309164962465505523593846722773482315356084083540845957609622209633157843314620444628174161945594789687725953493194347981185218349619174064959560332203257738115898458303087455803229908237866553971611996589814399113770003966027329633027550154964789889527555882440047033375773244465982165881522387230771215483636347668455348599134349459903835689124843644627534803214151404147815548824513135426738413672955927511733788329285294870969503682059443317012719513811393576344732999392607407280284517862367708103914847400098137054101179089757623184728062951786046305942460076643346441890521253023373257812706082666496937309742067320612159163215069277421439897057932212456534348328348251943147914093522786034559531351647975146354288994839264144282230417649401811737755415967462572533517844503558175035801401912305457066782897672132018582331558671920085539736294709707163936338017459353129085248234050324195993256840723560503336719596336869829957515548010416558531387839828870625436435106407148451234490513452889241343879042327121501477721840252497772702182265339449859356306843588416710493378826190619721468585109146342251553815233730187855068763714560701052436287645923905768179328585383074865845328769805579366066408798594269171198798700585148236742388633201405007437846746141312811578283252607561767486360615965429532533004933593927082431648128066874044508775994445721606255044618427048960101592258227388852869062223823897287530873055914050701632738329626106584178761092865135943584684656650798234278771370354550015993901256579679060317834111347464249894351871682589088348155774913311673757913758379745105977411873814013244170978311600716616837211671079828669928005114222386593778969419755394465848926741628356307814757908194905492190395530597245576679128627774017546319766367504515883888857846200620226686509948239400693915141175406343754523521985478201028505768400733704972315661752794510076528188091523520422790060606290034949863942496736491623463175611343448383473504160510841528932323781618751342657633764897955835106385040146355758189857043619449205147560483243380943693024386403512079335072741769954180143056347059116955502849391179487873078610456127360139593316063986090519926652676980072296335876369033578253163344657083496969449527821202172854054480545608156554438198207367866746407590310590468445859088687241720869764547125418046702399968402836516328671082899299174706777921628527516436551995414247079269493480225352766568157818654280845034664962510701319768404529136085473406597887982217748327803119160890214450000182846310889310852661637912534128728015250689413502999209421180407433493417753536896576849121134376382531501105696581673933327561615825691410306305158045479404928070894232011515996504092443459536398639615123343199154318174737829376862178876566184787221387823967286016798584976688856107051958354972269734561771167689382604344738249603174707653915746606276558459661259060250735324251415488672739661576424070494409311876242770566673046061659085164973718370476649722000883907567309625067665892130976324019141417134371820353687239353632372939581373906071908794001162671795514741824666536031280822161076788700269533114301689893218000901276903838285418074497451551264683588351273982191109953772463309952557282544989028191659327504992439531117307338922688298495242392561471176333332492502835820462807816931270213920264479128499107838555546590905895058276512620813128058192537478428296242059932942823281028589267842978001151161529145242588102319322281293153102232647971580420960203078722486878145673267064778785824347800090326942102231534912429279006504103313707381921949532967512694711681569887149777566571998691957575059310341856388496832052829686832097805323746680637561658502471458476540731547323820799559626739368839745731675360657498966825884790806913015518734093017181291018550635442045790433345023769259705425121946023505024644864221605119607460819281586835924349860661600335639342916661813526928230162636929108609221626653039429368354513927941419509741548936960010348367684225381326415058477119735750698978025157963348927530981627579401497256067354615624550587977041022864643229754859483789377162251208439101512373613007667599411356701634776348028821259892806057560863810388155100243970662489839284900605367357314688731850143929251358759922264361764280685076190155238687958833832466510893611294285565930892758363456699162117237683969259087590116334952859675994542317123997954948846274673861655067670557925108573408951648318999249064495520179362103145924514571238971676594602430915575859470271761162900175530549860654408814050937862759259772464470136929663558490134134169518563936681234413908732098850411179526692194591100917361014248559357657424926603982496472186477063428965469543274247945861338227136449139023583476358407045689790354597793151505633067526572882500407689690812068284063764492348551767968902387691890112639568370819176638266726552421065085196302178078070727095156183451309946883260691377580866178894975229479858508125529343194859160086742181495588666524074061742544104960606565142208102994366919924929646805813792911973855150943015465205845636587531694882204082345068893439708669487428474117232510398880491032749933880791441166657237246331179069609692714779314832747853900111685066265116079681995354641282644520527478513691266681192028970973118916696651505764424732377717905458394600436274851198843570519419537008134419157881357357826173189442446260732794163246475020562278733041863271417920121518370264959457040757602866135521966052183103974196501261567432735479012638498608274368135258305206088772433945413489606400905739797020376241290826144498604771069319156260628244117816265029960322876949801747108005466240906037206115414018782650677520384110383338643078351597825486611726673042416473084392033240849616070803019972169682469659482377077968511906288467008519120249826212532103421222235534708602869118110870212367526688295791027016140258507184987013799206991589658385106693342867779433968807274919837129062141190060726005154158845505242478480587213793635197093144082908592453341784004568888455970698890778030118157335591694078488318221719491744987869693397169458865482709935335497468792738098082706426268567274502571037655873262971601392773855682872811439142327755713533229899726160202735957235288549750129710407507917946387957730463677195051507487762381169629615194890632819197528462123817528000288692589153773364387743229236104948706074451102829595376142414072971227210294921966672013255623659691870086513982030059642217378577753709732357320466959998070207198735966154149903787315177575994285898330003756331411256022898637801205411782619209535384807140770726721900083727724469463966976961623882501999486123810732436775265394189425407670221076922330928423250344996140275044259691615563577910890652435084253840133975774883463554242869079794089547394287671182952292625357978212443737611487628761118342915416092159427266286557546046090583086266200217598778823532015029942172436236154566504277834257990377414812482191994166060999779474671688661542041854280890614275585660096505668450752745506338545214081489206300082299635167666112487137885830650220848666471027054847318389030881232932787522401356454421977062004391697422422928150214975329028896239730352023372249219947683066883517619996915274722145481606976222838598247908782736800128911752828991874641547216765344599104720637133042327556845225541850632736042774746815804659825733444923420410541606271324189927851559743139458855607969934041656083677833371939915010942154910470435667685452628376155242158918545362609346835322389377693520001657052195379759608974817680339171014391329364771815448809250325199823230476589746518015559139788925404153393026300982846007335828122431806761038047084739590237414542871351609343903951628688290592503977252201547490250093913415504758803806415029349655794975567245046148694897439972617559021693315433953727545008942076374122458921766886096797504553236773734039005508186860734893552232887367658876789320078323522431369541414905358012775971536650637128977412071269805486109662759234213803467684675692536278069575217037880497525868850646452690074966895319202733396352250064693206337325939556927842070443990763660365649687751813967692443073833946348961223290785748084086514110529897732900396547791048544338140169663838765719728085368819012908657542342115155792926261627066281614375667921520753154681689350272579063747261800032985928478386054601967231523706470789398053086246650506825574562943809009072964405489156052093706614448399609757701587570786899247366717893090997218801917030878968379993256965975400579304794655031528833957045012159317654461575151727825246455923192350948483749532410607925241732329529351498750334442606276743952935898396796986297372428279379375083855871261250062726998286545746904099709515441189810649804847817369699550280045353259112498453869456677579379053422908228674019607356618824111962913336399569186773340047413185130430014613304974886964177562427855015615165976935030218645532576687589001522417615018705998237345871737593501557845695817122116137110618822412997743095361391757419380008583608799500696550262631741812621952391093162673739599854127169905010867058782832521416284447583591740842583279062399080485234107721031299986158294470563721139678944600333544097393482966240376159841021166099290429932144680236774010542563389155680005653140412566021181595062608699349563223333987810397437811271819164749178453261978828741790256536411357882388146862399191834928903074170272788714396765073206511621766318233853252889570373274841655019197145425437851708250387544405224515214682712651515779944876288320081532207132713971723419154753297106828223306702136722779013492023397213535955267289241149846030648987992413091568269610386057307039763824231788062173483724655487150356342284160407422336705236817714033735233470612242550107413101828670842766888269698573697065866131091930239863892742545577923883690114199437496657533211672888604626679175849522835365074300850964206192370529092441296201147888335627613395642865557586347912794099414154321499453107627643997639839386825267716844985925667659598621697139951356709061425148952053246265115246891299266883931844864739417351903150544437860129957566124914603237410678057384382526044457455734964243296919988617823886746914271156447788129991661443531536210411877940957852744094598462106880827937082418779772757635261938450668374105038182289929366382281802995701394241205347062158495703782527432045032433322750493004777874805177636156167085261153445127315044190448543112947321064167969754597551827697339224947169727779063165037235399067000058220035341710923621019238543035096982346905491696426821949016967013486614429498248186753929726293457006700934989998383910495538650560450203285005343993842459049508745681183598862280413507189332950775987224086769634438078082760840747332393438458630398540405101107156503191063929336580831515334889844286058471105894134952959312533457387493420537970257762205409196908669985941504635899609838868278298849345830880778806884532316553300074810385097216970709700758776803230473487141521413750639453159213457129526717694320693925305687927991898023850369996415595835035519558972700274028044975595239118941383424657049657056935908146406403595846383361228266234712211180781064138830695862046516005439734232628828768757924050765490573489609981511235568946458198482724818094226662728876694542326156241453098286483204972827300389165272305864027692589800985138134607274754503532424901691059013796360748643548545651381978082932890062320072680392341313842113968349666345731488553718976686271654974199599552876578704275297295602330059591411541544672260244033573118622498697786588524857024614298791716232076110880213049314951957765072153331790369815363217757797185220092153202351153628957307408954819430750139587726308589556602820840038690191378838580162185481113489677091061706243881892793051676574633395315379943540620411412263048324649055633951647418558589686348782624220720868578647917477521533327066833443457229482965495560956168256073946295054423179574033128878369822971087045654043047153624910253332124036883536244569912019569159113345641521032732844012704992180675160119279543410589590305110988462892616426666745531270238494592453714454252980486040647328519501635827233244184351695008226979696475369636511104947353696408065920328156793784865286639836742117564194567855299982766755013201834742084321294872150528229101374687108293758901753885932363216100500649689386710088422137846459584736594513599245421285338060213683051190787293431237860613790125150260329960965789940917413636952535960826166330414878931998165433618816324412412060807844598013678024913855723017889765886550782817545184189948380025603159978414821910279226264847263742499741112365021981966554857888984685948498564148658899015389881366469483169253118977177373249095877937785051867738214037933706335759715338289316116961843229377382874268372727470855458015509385569687725092971632917968964098420340715793752363798941769381398800756295239948705950656171885401154001626933789885340375915130668355006571587657077966744508095500197246093541431717373833240824255604551874968051771002343997334577538612830414326264280225181906857637062448767621755412501942313898021081339250968548719120541027206109298491519306283021046554834824470940889741449740394652398144900545569641956194250139313942300928859681403776476357614749837751748241297813659339022058810289169590487179834914889300472324009114471407767506305801794656585435882491708857137367567763204660267896902723613021166505794050273301228826923429339549959894319633996026372195570165515390933534556697534800052762372611754293612900847988620422653248759134287684800248728922083031032593867476280701432410769658305502314581071140151853827113223758990942702071633938113850944533036130808345866639259788373675565943196609248907032332168772878840856512194182425452134796271832127304780442064483873314341209424856027559901805106611492621008433819933052017150558374158205547316045949731092101540042444189766334105519725104215639582377848531436767794653766965969426487690846615978411079873425213792080842912316481141275069259166589209358316967190909373643427127325199978372820076231722505580904817512201795514437997440344921886506136864680415564437580237787672138325494450966604323504146942081869365086604459490272359308060974860749192547932315703435228417151692634029578868791319943783874401047145501512363947420863106564238771459635384533583293666057988518820628753571833402760103618062872321891238040869069785184486722536071960834171166266673620258483816183985838404961435110101164372567388743902640502102210350646126196950264057463985146329374422001085576316356287125957781042234959073725000947511219767215119292910920971561103030219233344329990237707635843338892479486790092484192437714569368735580653740472162495654404449407635050022868817171518464049666679646959889670789555592956005936523908265008901889054150466941090713287372090100631448219844152572743776508141113809674666798102093453241360140710572426342191584230769011510259005063853599932584191085852510847750015132436666117895101985615412182056825176507002791930110866155360713739240906271737846132963366965332120108473077943569708156689482411002249684222905808157677914027585682904274870353260255587369485380379592045372313556645706643418402365355427007431735972785848984528751173407066338655335615781122748881040139429562645432207866942884688497477836613862576331784137068728281761970866581755860473331929383354967849555812284554821048146285890397980163905373180965503193696902389045701699841064295838815561197308867674828445257332177617666061647231505301693081299526662520054109272065214401164432546965441063805068723358102227356685210864859332797190868779456218261952140903931568238036431451066820160596117705182321355509161766633336128871571029664411634794933487419720654868170567877518675730419637492245975317389791640143883735167778507188648972700952041509140741122624010928123087279086492538764818280883708819697224974364296492523264891488808914983415710630012910281392412619763575651584551311125878094766928049671420191592443787261708827619379949348221861240448323596699458171890947004051013026093229011865874650165727183220745272601763820134458739086431746377873003848125922190477084032267733453817143066431005264600056166849209256476328888792245558582808870107427205993957835916397370631263694697991929432139994784685848828203685147628726231988087358496174371933291129875347596264648262718828620230023667103775461017010727056814313111042277308085070105990073844855381404915025272707101521754982878776430856164537731406966907532510156570240703459793226083623925494416259204186492508647453938483511749846215864305477242729720491144989680483008778998601360600636899870186713666683254591713972426168543892710960700208373448576021814718848514460404021794886301834948207115595415571543791442611436830399124289175740438554311680206987757741943236392355109474902210473698538248953858952337317247528863762031733956104517522207489162935705153640557582678682391954793354919573515135676317632370751532905966465771370302212440285385133253239231630690358929646801231990718495356183514956039201743377576827822356792923635197399163417570894490043083253830304157284353997144772084116261767682852158281180526697009768663591334715535372088323172375081334897232229275049591868889419598630699121884776230437219973180984953556435401726837513460808951986898843067007250759349735553026002178204636266957172426444288361064580566507997309866760787361466785260242498975396088392838583325791213962450626553070353788367710122394941404152701900557603445732430091812381102382496218138154546784626340167728185055735645618168645903445671340726916739744998224409626177065455538324452642005966659294838670826460222780226779858919930911591331258334589416110637792140661851075851848190556907688514563402294261043812345271399580182399935513968635514369125965857607830453904342830766970092043797371123096775319231126462074595186243555991555791433267441092282320309473189607865000847897882768893347317204647857535104091697716477528217687548201504507696190589308706319051566177840025264734185631256406240803776361400411139660569074891783775333935506605400328339090324421816887728038820641817589745095734487270175524776694561343205096647221044062552708299086043497957435127807151237526642137902933914283662711596750249027733305351187728104456813804726966119784348868839838745925180799724353692512699250722900364201814254763863573712930335582947101334951807947133175751832619285075294462474803830424037221332966032591902189004529188255313936581257711051696950719339187601764051797716402468409824861062138095260808724482071024647294968678992828092147457553556618661830891296892095448083870429019994491563514135404667680204352553392269759434930052516311273734460751909585599290673682575458055989524096108596173250444141808123837562026269416618025538629269128670869098275808238021947717984359825110230586141092103922395703839728654576613088206544721242414458259073462120376451379950406506762745206103638811500935356911983221082925655486140321027411555160366893699253770041357921352365273195898312201079875465539897416953810436697844316356636785890727116145026027031554150863587306414156348163197773058014559469779328511805219459695206069883665795709286592393133060655880610061844736816409071721124401442040217134298025285326029360440906226370143242740008744460505661698246814502691510691580220261047142282096838435534877020350456952719740914797660991273747059541217927690736324442720875159482040441634138457923021559323551228166525708185195564773322460574794827001020109537874037302974940382311254245077234830810949000181435929931551419410644640411118893492490356867114548650345516381612064429778392425324581792600299871957298354948567857380820815762224004615291472780739295014802055346483680389384063764249098027899455284129184714951663634643940857880915151817058735529366047359245606132286294502797956344394911171979876512664769276591158164604011171693608182756232346894224592755913061753853208303153096546531275244579119020710242856070129769173487345168343607856138323014258767458517110992720542163748951865707136161778906446184480709777621554342793580173284138357656790264723138480543000834720073167889058415198252567750572792665320784365774174260991419360267118416515085937056614584432004998409418826508627468330631570984566584536703696974578664892263856504735572007559871258144335298598717204724997972000493007293614736701417016889163112427480371360498405585359461983982647198643602861001226612839278431012865363885418723324942465932548632850062155327456808558523237784260672336213596276980147593083728335109890987681386239033704544825420473740435579750422487392465240191428511066628616431464590996810989106839560668055807109309916568529235172456037862702808670622416188674604535054778205933332031104286234791737661538098448235647632413183700221247117548049594229263432283995621408730019164050352633326766776763942262286566208310980163535209543428014453888416786681652431326612064069889683289136317082301071357878649470190700278549027278108867857707767985631169063279148977677322502217620202034422020243608490366897161257828889039349891481184212828248133672166814714135247016863936343377618660251797945050800590531111821224812831155250903539431693253947934479512809432344841599216280548555209068455385432626067648729876902839482031111512788574368072534977208725699395749788732256430183746997552102345174110588107622047764307717143714899832273761003951391437669125105148269099237619518691119613348538649289915658437402999045934614407871687633917117672027276106137863617968988683992415013636156079008383800158915232307741339162356999835500609007229070995345353614466691274302898818230790779166658160005789327377441602612469036645522603477784449342842555869005005509693999599830919127513738088294116416817914380746220332646134164994066513532760123968187943489338374033717547507581117244451402902765417264372070955910005804102734039151556093494980639938886561153115818092107686639295027019078753332010181189200835561490356837109204474482454549529017224416681698790683886920345479703198391955070003472848943930155820965911177518649335562053241451322852753986239426056235399482009114241502838444739031071125784824144057533452998065476312040138721531638801280717455928962203789015312864199366953394902227102596607960722712504002021774201559366931753882108869900569629225060581098119036545937315261068470004829645332676415634806595102179240280055841320736696009731750814376359797509228661391767381476810981056921766320436306207308475172192697054876428151873025657483841475093008218418999268880343636885211777103518265363742262503470662536130644179888194511164150351537880054721519257362042802173667898399673179929143207767209589986783759061172073369052712800476645482684472462815257219731539874014854911766520992822583135727761123265579799315248118806742306522281436824533671476954447236211412351084630719350010055008678617583375488942217395768935933653681719920624619867559810480626037620681666126232451905042886185767049734208154078193883133374609360904502108663246942062100755590909378457230506114627350201491297067486293780444364432410120873435889304347295376406900980198828287729447240818253628315047773110470607172104149762096467234406726721213775721006432668033219393315584840637366727544698833756864691418686281155732051640146859230541966626103572846239631121276113872294727527163042050313581562167032205989277855787561529360478348239401303494804318671615409232922909393415882141293051851251870852330665064643307177199387676942736610570639988373898010477570327486768689782537530645803959526519962054167264691241091141670702886630029615607829623781128614912734600984017815278258478701550539998651835660673719048908293760360536126775084925083562091643414592603376339642357332662412856958827187678411843265541462194262191775995355691896475198852526955827057731670199884503806495883698131376719195709120940373379555596192131551131599981094369409700775700576467721301587176388354697473918008694070222193262077464632542392631629344539800684998291456854069410316220672351022985098106098092822273500227026233147206785733515542004687265878415800519232808779962284780342670470342144297129687882547452845880246869099126065779140191621107805694402846086430584309314075387196011309771210336335783919488462239087039938506889501373360489312407469582106565183097483807379763748622024839953558829119826785707134982768364766023720446408354580860709688962155985237007817344490158294473617122332157859828153925642567985861539486209077146551039179331813298385416201956454086599142096046724176530782539928108783161161345226685121043770432652227968879908564791659542153759755969974253050418927798268494589645888741283464169598782490402614555380959650563576739015622020046876423834611643324435388114583833010446855795117908458605512855622433852060958163296503149777998376370624956947615167874713770187506638872529380776671225179261071348211451902693242503210818654707260823429818310229274641083647421631041546784911065565897597280233794088482287344659986797144125673091732276481632697687825332305752085142734990155146132702227485023811679234463386436948585101958413413085064796014866108067296313331778155509693551083375581995545385234873931309356508487729648072375155303677082975522743976845918524670149413934524238592638647393604230437028208365018562225120274033216072121057876334996860685679065428036339853876129023358458284436695555364279173318136242547000461418361864108683183770490355285705162811691916433842746891645213520007783253164816932060112677991606168902044554588521610119318413605990879339750583504751870555527859176395334544245753746409737506831569616542357953636181740634351694618234370702808222739510126284633886993761607893111651879285190932312217840657965006081869103341537891032126890611383058955921239277666888699017162884962440555161141357049528663725346645829468940115595048161825653536218896083472583639503213986496966299041648057513822068068794885632520287089926910370502587612484300837034885681473643486895622739977893470623227349481509975848972889727647606667830933695509902814910288011555126229204105212876004959500507105316968792708354993235719410185799204305537961521538923213239444103956896089275820048639886268739901667996948561429660179338214070239526236548858522577930242765710209894478147330578465626151952866874637920533053468783952636952681330215555008144006771676636516589535697934456022149602101508021482436502558183474537974918338805019951551673681933214886769747311209407869739889889601378414267061356387614286132439199496230296789328077324037608342421394992213901060679434545494800746364151132715229556630025766023549038748151654728229758330682996509162298884771329983501437314978965713857304186181358678403237884710841462712318466856420712410733224751579023395028699215475100962942312976650648741730735321561346470234897722886612571772347267300907460784721606855708148047262043114487408179480287605649627802015538428117774752624825946616334983656011643229567980351316871875743927774656002506753996881531229261101235250115721617473986914173800861895432981495266787064722890451530845122900184931455263647484025615939929358878670432211083392339241857669553917807873197771433457585663944600822146083014359699766539185790329828252568296714821993427776532403474956407257869102255997807916791233347203854233285746796614536312734924205354837010823719329487189483729193627488546424706546405915726810424678239805704094611343916046753035249694962492175816309401334119203390732795310435041603680056205914354363600633948942564664909269975828858668687076044904397049823048818818868837544058577163301736182469511471582937843659661282510775072367065245442239444906659627848193159183824020585440420767537643988196667149766982911313931321789984390377499057387472607528373991988930409484264846725205080975459126081196869627890779397547866393176984878546460263834316090321895643900731233002911545238675384289831375686205411045786198070829041835426027871017639719130516923299470375815682520967585536423740851504028505457506603441402957048167326651734680996505847432723194000442257703114607504233823512352010105037290379919440471810089735749995332643477269281072924737466081567939085796514807131536323001045098097857450789388536941426201792559191882428745814431441763438250904228246614447083473330872516079220619273030087626487029108460081826472183454207937689633906476560138541024477111574165131352308232668673517798233700875202145665079833093539585887082845163305161482864412196952152278229504756661175074693145167389835128116239735850355259876218789459747255154015631591729745164921065085014525058969598597418512291702536068775904533705676192598389315593193367176208392941124712098848849819719040171282125220703700259163797066973211939856474169300200387933246370725840776374456505890320188216358174050933978821880391372929563951537193839103737908692549698480252330004544906373580731760994500223764002781227751029616808120505733461965766201351050892049251115673504072965588338120242935968387637522192499546247593252462479984935863213142881655699275881976570401665701057575600104756714532093221338729162690919205694900426438083601284531660098025171687373797880892501952270819557852502881160301070615566399959194735170429660357232007646139416804794147233217771958348858118681426478767420316571920712633441312248484151562315582126130812660556486567851209849727827536766641950977614788857382841084350641253911778392277138873820332287495133795172487583917272203830157935955418101321846159160570592524083533877363239726251819797966761774307070502764196858421213287377237127812847921312746179496405524561919792254206256222950061001818834242006233886728627498353421840971127120613821368243622005830774037018764649784424830292070060322263374249360979664249349287138342864477284818244329505873464035373587431932385378332129562465965800639533613568239353336284517304091279202954209676602448158595439508223753352462520607954019980612779070041174003133489581010332187568087644182495250860659281305723843473137722108861424013597922045932070278887276273488991584800835922098251298194279455342921776542559245578312654147643950632988017551973483789496655374662664929188432298380671627353854357167138593644569336386363708038580989371320185712305098246808622722489313077945495709401428572837323684852504323897061230089804791825883564210467674513954629187751290834440135755182308625960378678211858753205183476976803355875714979100915506262659845663093302060621119274388280661966733124735956109246571988235481741966521932089715910437995150063110018190542648637264577271672775759801302247486142997774590637810405853278298998579812676423441527468533808770426018375322163451457081791364927963954406168890733137355442266337261117227977763316070386307073452209607017363940742750916958540897523129178303598285914336921128005501146524626627449282758047577426249865151950210985557724096718549221935082091706768868561147598041625116243491702699255279319877793903096793719582359923422644037912591100296167353440478940645932443039848604063274567356022006879412189128248569298521931044037519635014518681533937460568725033242846330382618389591157683220328115712414744115226550754248366724169030455754466717968112046261875236716765911271903386622731044163447661934484495539833151308472522893594276964143322639738645225373762825921908759373010379379006323643831941515964968721329109823461579955981406823653218894202969714197382190595605227283043238235116570916018019541788700434607805678524173122475383725170462549683428031160302894103272206813289363450550619069185801963437549727953189603566294075877182259203718503485112898340205145037266475682420761090818825108661778679530339433748030389987189841457619113336079788175061769433345723518098470748212296019542803698488765784974852860763024636886464298388698785603338610703945401037205304839298542823522334014723480963751955234132381742271777041136836025845005083370842001599998171769570230299783777979890195628463632956524527571123771384862725587900343563764728983195386008060007958759639322042565565797472904381369128596942487605583997220915706551688919439678651591850837264086573133906937799186169820399709096509117478329135086787022679806703032237183680346544321438301579651510636107441832635608367300461972156111724970205770949489780055685879769701140429605241860207026666734967182986861950332659356297896461542924591237705781694559666876587844761215767606728536537224566463676526904053437705309087846756575872956825314761730188168236038519149993034641459663645136543280921348246607104491601580130803537339914349070911290198939515731797447246071901312170033690752090694309390640878086699420688237657176648258612059816857342238948297526216070612708410595894673189432060158958999627306357118275717466830621495382856451606952426358408196002308940416639733090402631704803843387868571024547100403498681948044366897013304003418169962928064092888182328404248493168825256060605023520006933427651068591272272032039889938348891987442140703778378987398713294070598380948152811008294368285020050434530795491413446483115149482892571393533771616598007847742337289818969637575525245709750057366868800206842546971411483134394645062118136462769148968605402204535167025748661142108343875700717189917268129090925530853730090017112405358741169909173740120507360500234962925407456782919572726180399145101507585311521436563009595192854676191428716816857635048457881474308602991002697273365364306904383762922034914413460482767584830992925798088797934035382131620188630791143822694337741341664218618788803948943672736550525671006480734203239722924303865109361740474919582143634184756874569498652051127937029653899548674451235779845663250171894650746609999510480699165178580974610314520335925244687466680529252055753499054386809677242572974413099212175212112645591946447216459825876547189297354348063642824430965851723106786482499748766967119651146842580474812922342975968899051764309576795119002089339275219346738362384565970851508292639798410810903516095333117363515261866965494152189539432243059720009114597367556633007393979372556751440549293151383263364683751392288008436661093435501364801765631724797422213764624923213026633428335390365886688286240994129365513115640469932774843964541243400133977247679833129416316287478764018256371032511378188534531716330067300502635839021058562146965321182864913741062681384117249775309904566155597201319477331835410451020850003987409652703286921629652053898525264219881470849856576239236523696801598337357483677253605865369468817454023549492524012406302723276651942728965980674548747758240200695561686317128361787325119004738942129164393386718992272622470522236137219073398726614134027178317212553043646105791842008911341513902361940953512799571993834114934842567579785735728529296118211816064021764643007847188407906500382671146578639258228290164172468582678523854067300461171529884360925733921300042515303285644210583288288423694008553409116421870151620937107506814822042595711968284744466503879078793640849434916151894447858706611933642132186854965034142783952683843011262950068677094242750585593452778644530610906958003910158747255640799132123840463006374897127133214056202772081763314911304630357965755546528444643214333152790876122000737893051048546383997770109493207082429366633745128036237251275592748746220657147760868142307959278630644791879734504741464301720142161431602242368642578606057469128530970352775374457058003632854425436049948121326828226653406552799945880685845261414067432218131036578008839489428568330087421209699788109538663133195094602781239259900946126924105013440645571014054501771695817933399392324764672828160379000696153620026237119387420875003860190802552079384547096255362927480324100410300781009800953724381680148401953654952025130839872762807166769863011034674377471082593132552550517961656760158838353131907471508107414040208131027558249424960726725057971067538543400308400490319050378763195908318225798279875728783731488364424896541078291596116637388787993193105479751880259760143790276255731325063234323972177471785424670731544452743405698597475309499988922187168765752018728677311770165830920423678916466624863309591424544183750118358125569016090844020836334831987673074857921109307029350609523326498502979352086517815434116268322642540228680228710667507168712503927351008439611714894285598332377423160268790171026524923547887936558363995096740652466915439105319375856064336993439108805547426559223312701136509172599654095894348323915921749613766251087730338176391503719925769835134005105061405413932808410639696434662955121774341711594442884726152159699898662011906777657546869365126287765769029036439025604918416881649666493300788813098493516640277520692823997295781084734951647552835926991171505632502419400383141106034786800246922706525042033819790668122234905268988779123777397928505624584716618688916176402690859954411288821930227273705610212766008563238260629669173788544005768831943375430304159804821031371030022494635462137117187721820294870266405429562025643817067555362277910208550542978872387716957184355642270066387102833364201759392910197965085184561068388565456764865181912136888905929508086840872180357829181075129051248612561521519232176881343687957164009102568389633360857348872199275290513304106464393207126377344858304803284606149237049360963476758526611628662856716581805247246659889777253372361183534130106901492079369646301504489024962396135614614583637106723005336847682674128475650411182707146978306133825271621271891564545259195799195719310431580763049963474693021672647905160241067685079917540927424697657505923528049247433827001593868440193041161666476462017809772705714377597941865067665281669641542492076871805838467995180016284628344080135230108235375755151350448485318245056455531381192789949979474668939908555222008551482844449366906809499798285161527480094609571368980405222579923141177756381424378783119766806842774875487523497077791189038471268914452291449389648172897226400303041761934572102800177639005814414432286528310394519815248621398286657057417078198883401380189618611011405091307296227270094704140233283312089899294840897214285279596823409034725300720342909756238361909813006007505819825325002486550189886613155786101463966925922954016524864862888236437095086930241141684127582028915887422401408329052334714634143716237226361218030275991448642078705341055424436798862816612361450339351391531999314008334355174747841353339217068078245031680491295897326857309363757309650713533914488343210647946810850942045894687098770561580157514032747990451386948125103619485534948116507027860554722913321614379217663596276702163606578899534325051057006493537998374430414639940439602978155854354291178873717105830292505964848637012288051918029794586505691482434949792282234402630108942759835720831539705960910748366607684233354606808463911697764056807880087840242196856045140373963907601070795746149627057868484326654928523356414677260904125502975776817899008744264293593071637929956412403041692263135093850969418753394479532307336174105334363742783432603852175817801614525213344884664505738608831390477458149389587521542871698917722303817626662597801577197325416053639299946361353010688710173481092499965983144999548939899096805524942254634122325670177211779500597944667915424696485277631582376948511629460246673271277531257549075152371773443996693981704361850085428276049610753455585879520220597408299312677531531704053580125503875062398667526705133548140462677597619429039914667337749170020559042743455997112213378986956697454991773953043498760969636697997465261017800883302732305099665155301522388613751400334278742712045547299312637748264631745873920454174365117820298912558246419979115569470836316159744934092108632177181416073930990123104376069761185927572254758364889373285124480341805874597204240575929610591755417018128819781990897436096599399664897496563879191093918745839362211704785766078919102735676317470763385901062631769530917089505287442481979546666364912652723342870934413127057508042920749298431633315211617277589988167885655075030775574862411549169830413404639286192062157681665486187209518579249252031670135586910835688143208355313219926320942801915734743699603070307256024077162539738136559895481833586668624797503104653856420037413549640231616384814949205167840138963778569449223598282220195563277285922968651511473738376823293527820528486199001120758036705416012053227010183655278858893018336042153804651215185643461439791939099112055985038279975483434655591899276748042286745493166458135759227591734335624252236211528857524040812540610829998409179030771598459003716834938758215072606791107876376431908094706251623166252534611325367678410297733754190423562093938338967097038844730958356107740933480762962376177573807175390094599171466314934639826234588664768960461905431465879992452704871533701994450957741901497820071625175372631459519805681162257136388761136729595917569142404429255325100731406743137133495808241772800489829411819748708131937097144014026558556042859709808886083528158445616400558136062206585913208204528986462620711434016322359501587553138111716358847230599072743418054571810515823160328552360659319246888557494602214848983744443341227483199174109604678083382196803702781918421068628816204646666624258645449937037820949587020821358846571391653050889292183310572917630823214488290944271488582182095001370301196538181515108819749080954455780740122327327572641473242674339817007863036635338153464087289976531899924765472737006583131021654654352064490908446080244210716601276648507150226251059358267030915699141243308096853612296407724898752154149236368703399245687263116625285937125371550761311376326161492809750096060750873261898738301814914513593436008085495775725595325334761832400785349306258238720962151294814325101452400708500742932593169781583157591270793047272982205492753233888674670913991172057118021255872317544092612875213410929855864555392619337670491315342224289255389251482804676110531691755813242418576732339004386899264622545101563789755756901933388968058378141843322680397914162095153978180946301392620169585094224230739324862808500030908222334103436960377087188474992254439498462694314899219971141305142632499875447607865155826750588150689590432289635361001489645340466763675536583393025185592258302580446347770525003946610922731507444622484703593449972590139478068217188870326160615479702114258524639502194276180843183688031230535182473422674120323238233832595419554324727524002252895710554554966804648879607665098448027603676417482370318141533922533794808457219946612018530466357698823631293943300387683803901549579095634807481039271754649238711101612947104709507180772566484167811434385283863651488188489670029759073546463679176898981898452601654336347790345961479107963484169696065054902509835343232747795800760533628170225737320207457708115381318569282783204080153531399563919496571368416465419357441919776001610164319896622582432829956623759065038855503315010707868282793134246351832730288528880521437667245218538864530319524553761668601879701120719608478550663218249060816867316898840728307633448201786106252035910204797665992409209277781051461637644780766567069324978444664287658056406030212308163459850528909152362390799934187325876670011363809010630674891659245415727077647934757941045831711028951900266002963465854214232580037116630174773016691236664367729850772467439503406216184288188360206267117144885034477528739821561133492789196871907338111734134760698583134845972099715936347813110385741554143595975910308696680864299682549555412925584361450538241033430024039530050294860048378710993701196629347538246011199118383046802691822476084361032271208631617610941567747345077660307525334132792799705136010744288705012030445341713990620946230585820010465232621527185543088779915896976229127517195108195911577080155378985571627124308522271949119038524606916328020389766010421750630111454387141703309200132388750780905437221357367458832721868398488504771495337920587479365987248482460388616009585387729052663211606930891092602988556037410352885676003546399577929165225448220484276332864767037320553407043655683638234327002729325129682100676902603210892787397652239330056756696877259581785995761542996707142936387023635598917763369649450533449104146303044358835688300656084698764772310370268967630491282442725896280010765294697730386362274013305270523363374618883592253674607625473777845268438708028627602499243232561746902914549287022064947993481535969335982684233885245920370394512433258440630826214146796103623197455960957872372161035577962829712397908605920177698304895573494266577313741371138722790133806444347041853836938125897936826813900933070930674378546568198181511423566168208959960381351395267701219557780496375821152144586443316393124709624623389227309846772842925299092877891330335119424937804703375069552183561867020829876425738649181277371905760158170359022435826596262042038142913254112966469073137152506114050990597430187753980691848078021734442884752127904407395429166914337226418077497949139148588629891550405126159673048587771716129631819522367630870449496440475940425676903484220079541273059843217217125821531248017384212288798954734634357507940549744587326898914502169670970214943338106840618055505334489786352703137350573813895100589278157074452421321603739723505812109873179064712734406784512060205924170441571397428556433501652576166423583134507464724333164938324994013754575452550884502862985408780979873059929730904713257767469890541343524218153606545494040539738655675648134631918115546087101464861589866414647021771863381316418314236003489283437815865139741959561383007848717966877217668450778515262442331079800593072109544813720564068632344466595947837201503260557420967555771483134254619647575179115787620331780379263666218698135985810814254743897863724516067996509908142334051752438092338524489117260151201897066730056208503335572941410306657192201616888313754646873273270999588814070915840382592143387848105970820383802204896113318512006301661399612894619572634421377480852885891995091999676337856255115706894676377915666026438586602918745097597115623903866832348993854627998249201761951991535009570451800647497360514184772422244973173748588401539138244931656853228154480882915765533911742986956769416184411327744948048393662687615031588627204737100442755855646809084586486178158796652954021557105979774363698264689865709433857265160280248365446910636007174867935951718191019222309012536367405699057639525019845759372540079568857873206792082928179028731378657249475358606805393230406970156733287513677100005587196050928629375605000863294798456890682617809058658676718784025878664587160442796272659458604350514450340622981377467799861098943910249398255713389618423739827823763290958486839241099162241644947080876576739967131576859814798376260465153623182948837709477309889321541767811329990548138057739862841993017164163361229308434850134939396310400681736521795125201063108286646190835013915625943181792627696784125725811300874588322693348752265827559790965644750169017689790037177932160784687199084965074647082490814423531444478435233753937592618065059414553525844897803854872550493945655389695400007737848434313744124335618676524348859142922056281225107268156477805716009232716799612887072566397307449804866845104750618120918036971495870498182042415975003073857145181683418295611756088955709418973185825210897444602636836493397584693465253151113433487310670325627512857181022757710762863046421360173272218558991769315494128053251886582534660439146453877779311555703994701446347638085359231027963201729058292640221564021034975214699965849082216683226682376110820371575730905690450346400657457169715421361546771280760002674935477804001132379823414990146118446350968631647316214530873334046385832657593528695892702100115447278450911014824927239215768359076784861417032352745585251647287023423425072143473569264877193732331484921773635618648274334799387370397372904178020236264346921544900695531520041928866116566376840259616992444272929116669272440380029601344821721943248382976165914248409291111571949045558536913337453587686961814227102965718120194065446202992411405934272768492014058415055550571080864778364082069880099145038683040047757096823931457015418141675791804783366582457789580047491796416069876234772446511534406741782174837021786706754415765448123413215951373532016758720065109668650907992205851043911526227824600991489975265199653160609890922393163180656883680345955890910842496525053068257961772009561159904610206525621458344410287163302674070058667329249222003805476615900180403185258362338551223014654401700804270783924699083196188856832624791307658088632567401663178270316561362729083226575696863100291074252050399109420057020506390864408248701995128946673737918538309684900416264391175259260829817618429984867431615884061579704892395087824723053418098014302799719324893501964296097106160821866942215970591500289038993869230225847440739256869380124820780100220404288249347603259380168532015900661717680114597761452651083198842432135306670444768692179957150136183244253812865420003461637417022135720295600856435191661136370279165466883761440190581505125067794728679551629929817025993558392784816291173400620593669284627894509586800119256392133627500259672388267101668885359430291030514904742428168656382969319098702451175384024934671248925793399547694878645026569464521380000494221663048641005020029373880112337757858184856685613103343219199398891734948570170453635582356429575331645655177103466759730574828849964151272415659906834787331478809924964015718851280375782994918050063819879442502445178804967838711362255913123982488483636452460758676915090574600344172399036796212211980394959332268660814951172445762375626156607408909707224771871819357053886163872426391300560458673959508499154338127900551672532461959103315692323240473814057429771657289596914324892933805237498957295279320417520957359542561676041239242386010733025075786441944884942273449517780464831464986967489837558335850293032280523213675949699579363927638340814031117840344479369396092268436784406984150359655056679684976242520827473487210288223995181942643929255334190300591593448266252903274854070171032500604630624131694593004266046962309807679293832849422689246367941946194210154276173342705439951529932539744976853696388263366703705572916580818469145210929799981386144334582313867138960272827902656969239769580700674981185164631354166968762955852001504262506530559185051653612623476703720003609999644222060424901822189915932385146628278479702504670927603937855763601867863918395334670944232038156188195308512203558091488487360516889368577827911299836239771904103013769248044818701448558084312969101680670604671739778775881000808414491098074587055325335251253286020177865078342551953128160694309833351384665489242305250772448197357637155401674989588726550665798475883493428762833686189539775772469386555443926436230066311259672028325913444565962499153952350940721790807012884600104885152838607429149801739198036908223502224882407423440257572544337623043506466084963351005682782080762433856045376980263159458707952365444470421055276910604710221705934812741106659189227693056130058004173650438836470584070506448088454294698997766967455358740388756787461328259043007233924123396439450451530785945381240109717622445148661980025181450833643385628988583336300698243280746885174984472276981794217541911295949530025150027771030411869880153079698700873868201080836748079705718736755458928320232008488867151136929151988840299397701983982365929961173661683213645436858586266431874990201623166841989763140530453541566129132009697091817388126513902283939078354778092110738325348695383505265822718665626797533551334967151345918570957708521418702910830037214187911301646524830832286895754097419457012125802738501607789634702824493826372158707988071212603530509632978803542743646716431481885815858613776124804934831899619126782403518966663686439393418239643466936241045927286648514342587845958501269564814953020833487404834010276595284204416886838231094054195333666086002716058906008530597041529665459833480693861420329724388018818275231693582849223194848414821026758902381774238294415224842760825491735831218120907914681242805874676364420440549584261116291258374084908353393837167082493352857603915002084289355350811574255458966135908163589167681905546832733685155149227341165979563831425532659470974333957281166140049580116133959255379849537435064045179131729624622429585813475129903665974800715982364856412931860776000618246315372341049221769624302678401015775382825466779127400697407668374855983686987315417614138976988943287481067561656773710720433601764040310566233166051486593294976885541603733294646924609826892394944671908735559415558435416649948746078039517435577071055421674237355897190382552021476939482564826093304916160405362847567069802641758555888955641860244427233432558574239992372876979036085701722366562928932435407996367181634648615527356233061561196357483212983519466585769752811398812386130357472666162801672584303210227621627221065940359983878579831694585607442883468839198961598395929415224332049389015491009267388459606139542062353983509706434754405161792886487794285928453599125078779783681258624991670683668626190090573745549761260802089707987347072494421488666740652242254237449417027000822845408037021942256561248809165908621188259789063403730675152642030308475379450534349013830773562169121196552267202881144831536494229559756153879411231909953833932159846463664880665666579608543073051198212905750209450020076333865194588171511946499184913358792516935572984675916351584204482244475774910265938930316028326559185256958491456273932649932320752944653344122132607872436265100386546928914348589377625920065385190330435486689603503043299077568704720898012043729747769769620770030435194337707092522066219785717662029057330649107487448247258846389568850370064923663168274253858964499805415061595955756433802745441288190691919301479041214588361273827659106764892109347337078272238078229211568029676723865915054816405872373128590970861267892097179531507518910373654550078665219032866092831255642398959227188202294929112152021447751125254780137136600464950256894996081202604437470793877216324494214496995083055054443231788144540289947602636540199479890568138842626962356484382531843219440020605367845940503562277802870759645152242866877896731588554144008701216588936407912773681477204906133119312901097999120878559332212587346216557747674501435984561571197231344473641667106924957372557481591885447310922851216696784322187539371849746312667345104494778048432819157626837945248087613935620623926659372985957962794961040142892525695494751054761660504725559913560349514255979714910382830318555136330027827938941688668217087326480216470011509264809977133546030032620867651241352940317983595818074159260007275490999590349780486331666669090750732353007241361006463890694024214259221340097569377537932536595523038940542685782362764506902188701015621501183897681388762893446417948281970289910633986120204079401110178018433588036926477756783274168903812597563234888190511105017358487782167115280852506479071074193930785304208355755998324295761151070329253119667812725163869016346045090219916383567812580104123564568369472457477584560354014992133711324437891428087888617974427665918298239328228199063334050482852820891958576467919921106435168266252626848425689133166902943000062738224718855696906851404349382177157607808353067222141097135398767174344484129048400457324905350255327402173403063633792320038646454797440295890111803260821178145326070693168945721856171305491754032817788249063460707292934859634516720783506536331877119438879889429174980289315717614453138779932568290611740576908747911955911179913785137118116681002991117615722036239387188437216410735768390751235614207446755591199076606453456681722154792890483430099435316752396458200305522796699206078188963362666797591845078063811032478195530942637311306074302144389372130920281358584993229166648956088174808893398395600716470457351394663991052841776822740492853129876531524455837905325793387301257904368056692020776540828158656894089576287509674707492238313138361241776880804047351080115454736168903998946393234476411355412019948759321706843737478039197560726803464837147450237648841393880217604274647575987876814398399319870299679527415179476517917680645035214231432044044896979962073349519992912874354262306846964721722519840274445157526180756152677648255282708405205506746833874067161473070794706252169736569346542142819879654955143670238837795391319809929475309693942491843181398598143867763393178829342399003432845564557938176503576240155733052863592974432175225692578733673142770615588653258352497490814265533545322792785387794799604264274334437392459157551473465650178535731864254122947283668179484999636518776373424522118599904965181987158847009792758758084540825578482251449549496204007087055178648035519130285263245936150956493186899739394435726161639927238303566347338867095834497371279020628801781635445482010287034006420102148531520734736126461180365241875821687801192059373997480875346119223033931221816471741830688720866310853109445546870783455938479920084981794767707109547743352836266702184619033324349220585360710222473761820174455633899960949220967428630707794436192082478313266828316943422597257792535028208389802702316066738989435762568804244590434200161483714793666544530505514890533032517162405770170619999842772034497302740349551021578167020894707369650948932645841987586261026662745593200039860319839921688954293947747071645576643973364134235204125343186713990282989182405403755700037952918414959870587751170912218813169367609508305764352722076597061272152622111397821461049792637737386755374092094078911657949877210458443599599881976230242262303282012746994428061185245109165022978761933565236330210515628924394647996402906218009343645339496646030612288267799598321598287133073206931911796542734840427500490593955564379576074919878047861686303941256188683143895071337662622200504976554044691113589304992853285068015282127181013144321431113795621393828394719596870267744777199842519692618402460297957999212970377470471902135134638058224567499449192901704322862425834497531930027010258879875475313851201001853038845832985938222598706593827386098995144474048710482236388652045621749021902405896877767779069897694550554558320667784756256808625018626301711737674139500314961941330819415343862735983234092166954164318492786014719700034543951688672962920805722299125758117436487654452629985555679528130058611694125376472333106277059157123378867966149240711206201591372598240478154910484896109633474939839407353294758910097043884770071691470734401925990563174950428763986575025307339803083251592214505379155171413419542160606973921369572512498972045214308774534435058917613508221064910324958720628733386558952163147826752298238498744722420806644629803101988214109637406490570676811329602128896380138772429640231636842473589436427753194230395490465111184984123543564356673874670085615273038137739874392549203800427493790445116964202372384295779880263353844966777426701154821800816686567650248460397209451835341388055331160505399582494650128956206491409063354082302481747557771753548598355476573755838348644625034731100909125965945918750010259723864267512946693925670481444693493720728514171263973187863817129269581504630377559957231293044997966284732214618126575872070731950933145549392798143218410104650073960809312521199438039771848689995964620929018054966646261501448517524207665588292737505963089602578908489022915175246254427884019266658107586307602145669332678864053029167877321725751254595416232182271736272562769997578245524554073921851218904745232046248109232492773824844451920896404023094885875368908211828120720551481660259700012214015994907268786761231970298399018902792399038036270145572231975161865463342171701272018914266488822655139440357400908575689680872168841803255204719431131378269202352971450420973568546867613307689305701323311733332203721472597428093505839329037531076602343628272496411419412471170433861789708215303745916197161763649519034536958471529309077244582689345788715424475042556269116691604450031914117284375949224035285996853157660507519145619283318951301696030274076089014016265018736081480385896217311804032531855081838760808459040442233822748649881950011710827520901330126400665019137163806844971689462442649319668724625958033477971474464884436846526255124598202409109211132772362850329352549378776935519918901781829438136623690030177780886702268073410968270354500830591444021184331111835946057035094755160356162265852826315109224929771156173174245539029049283047450809825536071004436713167053136665619888042542318320274273152431572759058710844295235691504762843226307279346779632499933505204350949011948028857939650856902927617478586627168865721094418289605242376148157832928980906266471806455785617500621662017549826853773792859485244915401988553266228246973191204102223812351707801024720946179517265372694830668765540766433588484754916810918839660117128626105366654267309518068501440380721109868066723797720959839282450173820149155575415012142506369964501524480536969209284945626603500815583123214611538826446840202673532581436974041917681169947092346366183081178675825710472789515937864568733508679354150780831664149238507544476660294017606803518112586896863996579107868984964949049436632617510452580098025708539417765610206349226767924407307858135274787151658783246152224504741049557943628609129944585169672036517423763419529438956388529308138855657893428534519807967354007420854721635712091902162479270661874238586658024916985517875277584774236376227084547065135110563749365875348433204810457516719597237372265968160168420778935081175935252060040326408123450785734669329874866602706518687060823628366070452591847075580279865035436895482676884845967536505904139091820236268790192786371204892126228534125071164223585677859303972278620440242232177648470648173017481110396205633089592990318887949417069049902549768163401509861379682029661978354608381154856691631699574315481739759206566020640501840371593705253480027360339913121433167871948761227304741411792766172498452634015680291980947229558851737838611342901778702374403671811314158142366608536376873466860329456048622941350307995474987873909675873649530897215937708528685312044977514006848193847612184392127360033670727531504397388835186261835130558757037198039879940578324771933869965108237566230809081247728369565137242375468861246342584822475350813481317194721044298822217024859653543635922628526461026040260171742475487183833118584286080470087320665741691063319178648347964292406957099109411055198485850650088762660237669651949413677920570119996940565574355566843872582884002138211413880507530694253855896784644387852318916862492783787843334634030611932443742909395623254689813655816182545816829954907430734621473134101557770947393092771458988724764691020937839385922165033709274373557489868937652987054552621267306414292596437075528414511597763227201955171748688595930804330552340566303530137037909227463935248189641156653105200902988560565046525628495961163544373829973432027407480355703517229649074599596205146924831666056973998528475609306843041015926125813332813871028085578923371615443200292149836778607360715835763202138991427341948944494617099200723766373129687483126807845130409958611755115683400621986335195726913148308047844645015147707546848521339812495697820637997295413870590262122587055860272318068953311087313851257870585143950852228508490274793885434933745168336173404338647860496601653418058282359302564207505250739562487160294445865403210277406285080041044732222992723262464900094767960416462186535269048248265849661541854257042844020941647225199517163411178620837427467406245513272912059541101898592833004107016122996929082244114193175102252582990847039971609484991698324671029923936561177365629729080471441778852817988778541387409620658306225209671743139566220747392731946413272411858388431244921948385868939739245786580135229515341152475117877180651448542401258194999236075306220846269750133367448534709997322946050849886128738569352449315319514379068781007736422796631753761284865117962013507081407813572139913025654406934464291914352256023835022291443676621231604912387726695985688465322682215553874751244870845304113748465603821582539836249192240292865311871179102998397489755650754040432687104555383488848298338029761513353042041836618555749872266436957426312179027029158237525131899135872135453231346024681521453623170894344248992791508112712642693012115480819822322918193554956438536606447592606973802703018646000459084610580155858321030033840655573033027371164075798196807640256761102901202251771287809460443841363398464790544704696135618616494558731263866766089037444245624660629990342505756085414844040768624907354611287415339785377432247229389418957822572602002241029650322104288327803972853057201053878949091732974890611180368401351200109449107828959075868695005924418066930256674961860182242083502625640524968879657574061186413070479466131319688482106332376968144785558769943225181690031705062346006375177854196842660582071013679776365798561538259320224954946733548264285288854122310553863509447815442942857179741198263933609340145986388071017289674048527758083335721770027678858268505168416504855694053988604111722068791174828456890957046015106282554639681626577446202720585651194866980062449846836401323109105646155270732187788624011261549468001167078348861752254753576326115120889946364833777691574652640492175020586104456610329512937272313944177954221481158316907579731973332221570975753827490997140538524725891641036067021071512729298974257113922344392314242727398408086775051118137970066013912831578794732805070320599893916785526704392485654264144664294981867105181452246632952408440962436033644266552070241707203244022743860588700690010288010164012047859729998840983733088755717373675581056979644394303838416366572354097357685068511780449521064783096717785906080372926086045241339787442517101754298797346096311635532568890721280912462075794619413416976330480097695740025725791502997619889603671266489976697830328512081229308287860890614130903091928812715182389726949914076985756339769311137912963234280894415105054903649894121252478996578507303323633599417157516131534004674073003983961025944702242340994167412257186405307231025813322465967777441242136683952624474227346607359151940708649624547581994549561227255165556846375801082086616514964666086971539030937689494140316401229245481984519343078984352459228137904843284265989170040094812710363177909704144207783367559327662358169355408843939289752087747722189704698404445030868437201876270934215915192489557783278418356316418523251546788163356502732203850301354163550500756063241712495219499835295787035975560981500261126747847780612845388026140911213570521321479078556005054595761423033979843967736541554622113129702012899066120269238289507521357768144831428109499239615622367909552209056021015493380695523545477345188287211059091742060345717984664168946185499662211675013299251432158945163099362629230511886341457914226187353762350459162064804934494629836382667772400320002346979502743221674649674594383669740043465210444425208262649903016453516264961771421222747169542474584487037357781088751259943752916058556084512365405995920111694795736426295096920336954982945702717409148085553317425574743419843684485568752494383300698582938856723494932971006146928007425338876793760875767939625005276670283695810514052114733222754065131580702007678885289180637651009091368196536940688708927037751197154314777937991806656342992022557637367129744945067259852950854685658156820645845172500548192306615161213266049052894908201163470517347103280849608765512088170524886549911856919027136083154931944069504597970829738832713988724205219438513291857852711108504774552391037187422735311420256426931935310324068577062129548264888455308209576967269533965692140618896060489355595224597684052262468761171491077924656232890118721134143125349511546827773079597825116685091013560454830278156372153233207180313265760219508057973145398969626436330526738440242009074736065529765568369408121095113070799937891047404966654501416032844608333783331202189270867617358109538123547930814068595732791911274657578306993325909506028372246478410202563547823830316293605963822367007064357562709824280955450563805445918300842835525479686587312177508548245068858339559337233090946576747266316812647385407076529663200736954915867121494688403784810905230150096524160507516228291178602323109540306389896569301612751084833979876391235476790497271132945051729707835204313009272756171767984187437275450074264758734027316493644567972616075222323496515432030008744412308507824387313846694128843604060316921979954544454223977299086922633936939013580771053495937133775925894411622840078707551223000889835814159565094566918532707330961105631853123589909850887744487873920366427550365770968163419924359822879500486077256726373245810624356696034646217959144780593979368933702149197095804292261191566359267163072245954552133466195259043470552685422854430261497965346396788855669509795207394539697485985271236383742832415841406687661867991002723717077662048505519528192873898465874949327507266326765378870129877576270155876319357322080082636546114996826212971775738256217853636104851170428078411857986719130936996555646198857067060578795202517552818775484293833283304680126750527097364859719902503063908935100903782216628816569634520740689454982112964716390793460960328113635766295906358122960669906841359216495194330167689397303482058184282869312042606339702225268625727497348710124414978706119671428614693480671120797368969065921641157585565054215597699624884254904482009931164103563894009128672475524164376660549648557274820652898023807616170275617606025876478766837958552692374937966912436931865484401685999316801259804725223182323114492747375476007124677071279544202377351075639557706459640043566897627972838880553993887965508729188901256253743257696536313681649637184333810432010425498655064203452469259976943717485566247685368748191984085970938377408921369786233728308687096216711543112679436469462535223009699573654250649280845659167258103392874056644141002246146419239065522733839121176021272468988510374377773088599085334978005973337478887537899043177082950545339691518082745530785786601329182982520267991016159663880115066030366133910814058498147143047792772663960934732928665537249251277448159931883014970771828632248465882602028016324742081863797426733674223994433127867095003374221302572496571761718643622465520254233278972775959550003118444502856442566588638409733183924051250665359023054586757475227510310963003570969819162861779376727878654370742326947410472815378835502214745429206860353563968102487763338814999163693379312328609584190917149281400539429106290606115643448752753802705863943687913720506481292881186822818612576073561624365204469246444391081595175837192801727544104606383681932506814888577482778984660006297119325322204205400615941163256156313843275521510139177686491399472202909233324360891583888472157159726225028672928440163918442983447186630783834077347615980776345121126501572316248150590843582343805107336943166752414121711468347549740344910469380514464187978863202364481193432041879659088414943381798138438463988938000030434822212640641279334322389315426081343657870994288057404041658053134217800281521050254234453474432764873906881724803977706182758410913423332564280258307216446728201207663252543699154933476477605430560953344362938615129793482442903254268809714646547670246939887717584841885871241318507887207776271820822383670369849053222951373539969723126341575784409869780458614290753543887480683804347053607889285383520543483004543245920434766906284556691666983664910097629664911925302419502642482024005887700383389812902517916468917233646403464949806130864396900502436903372563543191288593794114939254022360802089003640853620858413585934964398838014485379084981544014829362681194391887448752937931840441528546420194212199712090600535735430765090150140590166541430409446421421330348067924241258343113755691394774591407498888374410369508099709881423213753121550658267220029113928845712043843150842486761092647104167960862118525283826274937398198471033685684582787485197260989056087143553834887145346659681235931271349499235525580141528285765327002394409592673726202611061247011367442592681584510879570575441789603406479725689693556318563750452855115604641732296574031254271629352751630137211712243547540920565237736725644000977735492547559644138173564047293668719201219057106845475955754790544905228627734385053676270769725794974549161989134140942878544325131896403889310786203977301801383964282735662830805965941862642235712977409852464672107642383871858504776024875353306548206999866511932668693498257019931246090281089172993630163910977322485229645178434513655551241452968230771634810042365030534985643632939562706867053071888694173191166215251559654491078614157733531055962310693273972901174003262475993156784675248478103413589859308453455774505965279488789921390602541739854047328733832797630451707185119414156153928212487898651465046297392722519051404266661397460900220170948568590465194405705473571547198158937498346068055476455770441971350488667605585113831786686036960900416063799005753936904308049609640793864893839967590445439665379512614234735194312968602090035651068655378470758183795518691967306345899810828354273300226699440255930446384940314168085610998202368263803220266299264887492271981187880212934803444182916645980115876155785875013004196384706490991012609186665332625695394119163790567309510599338248361320089516608265699184216786317586427444303547867678539406636194262316664307180828757013319839317293382676468841458315630321928309445901884472603946796564903566190618043612956582838853289658754976517180784105761014371783147930241632406055816069729935571007979743638188022342786285533098140406962610688818106235248968778437293210496395477224214248999909786597446859142039753624258248023939288082944495872098755698662515923335189249365411018140968456632737262456538057487481921269070583979257169869306976164297689919332844299329528516286552417694825523020985712067655909025168674951732811373009999448397786589116727139243018796429402563472740232052439385533657719709008269844159058246735428201718708931363650938886256362272424249886532174543634160340937019856416664030829389442900733073673320822318618667443673620488548237002116613586781237644885193544963417168762925402947805514883374120600702552180651181438244176739689044883898859677410180275561369661369503689294409980060499034051531850846009783903297773040022050583244593193509035200177227271356840431876169043093194236920503820318632487989270438331485880870579659648484672242061189871516051498090025535169808172161981243452971048281148509590842950445710402265392180748700055300816630249986627522305442210764327395641291274803311540824909563752090131229678695228667836211876564361105621007436720074587189828133706056155907411105394597251146747173088904889784635980542471124702433596229915131701391400849498228886232639842131576166620369674574548651708951578345585861560915348118974917119851598018052110418330032876022603981539864700560894704347994373377457894736370623247669162190745670891203717732835077079802776395191859614185031191511251692799618217431077725698988929892556125807746056895198269199288618646849121410826451466911360747753147509764156367706955160051166193403067430752578524195346572984421948085514355867002952219885558341958535852455843691302340640309577656612475915195091238207597529767969289936178638709502429877530049475603455755079999849623097564309437284558378202031897294464143582088880700814249877527427116530398851559343565415853090714512706579580741444187957244166703528817030735476325231437031383645715935269800004003990026912084394139760673114900284297247810345340016951415428070098742323804182051047576385447840855892667365141761292199886194955498473683227186723795150441604915035156396948788914391178697527901826242061677683271264867614099406340727102671337565285659593446993904375378490380808165996531401652256961186309613373084412620650700745830760441722446698353122968177219292674392362684306070707391111858182413695007788233752758834218003607451452246638543792162840264651838615627055351218958103281902147117555187802301247671676637397196906152418454707789998921985593075880582532314079927417645973303929516412245734571032025470417649338039450307370592112485311951576329270503719098227068747133005645090593699290535023724023185112888838155470420314167124975138123612174169671364319294656391876882205931174163379258431168159707853043785573412187741915600787816426041992799321461350668255908877429857199914975374350580207788220356917860592454191592084671619321439275447527206225139279555608493873123088431152014294045939630397895050638844934197031391217323747336522891005395851349402976010789247558519443682114896276261617279758367878823043027448703730759353515803481191275523595640334158935723695035451337688922647612862067582301800583997354983544690859013455718481631534663064600252521123355640910584743854497342128396113402227944055700369004210112985590270530732684117584282688827192474881471014926967332699589563848408779361872310919393793381612967918545903748805735206777905032911008720163463240705522836768109174082762307361855863649767246831470920228811469742865242425519831306269726971624900528406727570929115617805591471023809015713508287392987333631924419596613914883154780773408469414436325432786972916223889402473032504643900729834301363413040202784073181044705828579409539848049115576504964416230190028141563554267351638813287505562043271228497654865884226077028350946799480764081184682436308459373961155495967669093156881254709953804273514378592930586080789049092035453606173207595128165062921508032696411426243898053216795525763538463512133732600073050388334647978152970870054073038201577414574496632340288604756689603510182356451753776860543853888319848018842006918785520112747561261917988795396632463644067335297023645085347831054224650423347697593604997585242691979968923615288477985583978963944330822164613510555267927342276818396241126918245900822526261155070253642734645062822362851423576535830020881646565917032760960835943344613228718511875670248604052086215890113498971092318802743690259102292021369603992853110655673542352163087071667965999267248382356685949726733758871138436162220177870049557100258199482418464533724997084604772124209128599720275508437725354896474464352215700524688156711810137441712441890734126243143075552435412837565537923932406247667809054647569460189537741515212411034142431517538645020891203180425921024261710586907593378081305058828547466265546873398416659924336943258108982339833997159765865928014280960075892526162625972808686357521992403478671061060533573917052381955877064254665080980584264096857306904037142526941733681099249546794041503132577616339196421463192783140110258974176632339129755355558423868390035223033415177660808964578643714615061886025091534335545429853077979690545766638720321665707058662724385536116521906380749507637312024608994531903015147307864037662525740006243142999227182312912158632674309183266141268656665125322953309275288826235214691284222546572148559453911658666597334749075107144265373944852698320078849164487542925878245439658040951847184488398535533064072207412435105770931989308379102917313246669129473315778156686041745490599045354444528170135573438780708743500508522929821501795969804240620810273002564228302495203829964542786914128359786320967680905787665845222042555895185513519960309889774406886938841715228044528032810594100740943871435168299433421930988074315590365896159651957342915961521926658376966742429018335076351944500581233358949876784499105650118291288738277545754410255680271489164926162335152030948637765561208712552436337079680881010171502746266588352738229201937659131903541389075185328721339443241127510284880963991602560445573953156528217992874548759175067202627013880506422427640766496517017650685670620985756800602053826531952298198030952695978501551785488420214687046961230328187370745125841035179976675005076779211264080191013871485826324885569518675578424833949755979762494332393929209979069920824993184625894000491129046039531948071997835272867032508347467669499242805462473266947691784134083092262739746784665676517156262714951385795747581159891120339742721407128709022738957765357670605665215099051441507787239702001718564270577206588509142946981062737909652027972541769840242128916363351036861540851211183396748799388057415446414732893789194126639692345000804769036924326664851495243298660660062566966891708632025605574249190786046066717731245680011543124380000239998067721739586878865631897143214422244150783838307982316744936436682617881375502996634852712596787344351847835693215384450772579550229445060193766643223580296297881458481685958496756690298284047872004574126579070862447976404388969532544961600354886524585759850834691580570012169583335635788442174408151935569625526245986910977002980940303179499599167109985958172980256967780323266306337691555030682093027716470678373664891285621475032388461555396592814083759743406156237700097653067512318601126150731370810859723890993262096616447243688752808593512758481036703340901648931131198071964113576331836641401568117672801042212706205472556920742321413989785459191988733479028987939298084834574323121363389547273573691863857784248229327587586477066417060403255936931217674060870303806177627523787947584265548179063404737906385686267838258390889870988789766985006531139772723302084527223799185153009782768152406781451799127953638161102567716158525442052716369458504904878385813479713331680823599542066185804089727373375434823480875668054248925994481887315336056263839485514653980239803182529020741712085570899871086542030059214440754224914990263631191811379974031059046653782015965364395200270138255934906661028349895773156657750152641454848981013530020962549199500073344768144661892479261440583391452934186677329321677243606547170900451541001366267777214877462734173562703994589237744890139154405570079778358232210280347983561102544313321124254970301581017323423106402567055264363268864635290140451407028409168073130640397412430171176398936094511253164539619546136467611781126550862736681724235915310326351081674614494701550949348794676356291024459837067010262719201021090140530248778968966243403828537837674778139754509620824012480324828582488767646870662678669344934100581689259965735825551976720546261381551113665984158347875982209481064995094034612724151149756235414949203122698035181520493926040003838823500820202378629575179138840257689762333703795075965654408090840494814263303695824467805346959135889730467397367286932888727946278157675688573890236394941342245733067791937612430014370934182880192205675908132234020181979525185564775221098076388101511114366761125484353082822256303022774403027010032371023344714048540617015321547490856875982571508390307006433295394578863614896669245154993084911977845994995554821916796548078890701966156865738633959231864786135283533191338740727337387610497242858420647352604883469883615791963078784048063264463462619855983034603034585262598846635180439494361506624412117306975926947420073007453251108483966670230374166474916646087726143432603274694235405240824841362323568419574809564021733399230572187306023746187905505323269599428650003535336637252100369098906246778658823625080686976063218170342711183911703619780967748822911749169286674427282645027217901458893845791834752682089133950327831450516367535111433499434125783704748799339212300427358568454756281722690375346461692497911634982816838943331485640834360226783060483520789519453998388474560467114945522851542850574187939502228252462574615015205131334737566115408615039159819200562162021372704290485241905711126094080968414869961583256042799483113116278970934938685840647993861653435470316601354944506868720563893798451754091447520969085190010491812816781667957494771825219583467111395666073216755972544697177271217572923687091074182587352237036673307668604636026082128844383741187258752391619263972648921682646690932027341877483849943565669462580833808731301328190923585051312930457761625772972548500985791984286100990798826621150129547629946973992617831007466562594989464597606643101175804497777854445216401102469716801207981876373914286761084368989489516009441955946834795452461869541814528528557987598717251852842697695896325253505969225526872231389330329619531668244674747724751916265716129483659916670033279895189882808335822341192869282624808915585914790208048201040747923516564566171891978812747581404236766778007587252543490975673774056604680899332232478579805407582010495594232566059308661692136550759974586009411358366454510743304011492599568879475641726622457306804764782215207856428146717169181221318529544503850460350720038573643534893297472930216443681119942781206310312477911559982320377485665685498480378677538462581823662372912128869029453384829164084433543645508324416809076339559724912854955070228143145924131078281691383908975076866624135016204057881985808384062216587744020098248307976916480390186822959607049797845499489497048954233030400936727169530793787984525336172350874136188509533899451991606568011131602316076565045009345558085303854406523954137197381267709300809703135065368992877284295019558159549698012313074623891908331864110956940405240719206308430609912575233023974283185471209435523355659684325420630719834810363446085302481400578575566446318123035825671075859394863655045835747515805337147029600777159495819994517953603606367256982766325747073619155642106576777009559893964027460278887054619794341201844374779227991916498248541747408780554677853919345270829993344625478769038439836909084235206170231370601516174667821695390337990702936154082456987326444714083065651821888102579842278023788059727208354464076087263062557334671998225602571202677244114113707253333879601091572420879650763655065786637284072231040266741377131129003018436169040755162713780332553904292272672463872274112064147432094390494944314041032716355969965172769113502809599760695589698667564607742375606525906073686046638504189175518750659115848889223503743175595492047578261781845164346587343158862354386841716647843343076689107373278173781923459415282978705698559350575468556387408109285687245408705556715348058357099260711517778843507814040854867424770769274396541523523034389469199415347479717677292880167227136528958340223136947361958085575250471128959869858512109514176665743932793173684786709715505034636471462755094091365702733909699418477858007272701298840071293789171447867886926459026664298860527302504123652731766476193718103076366493276207494045064517061375318848289902548620000731873125128314110432734058544849264739788665516336998474244886539042212609555139405415586062327278140003312684726769532632282335445526805179893285760143990117718753188605491970533681397079263152148016448705482308256888481966339162270345897411694919044919480476948231749234526556643321790574301908413881338542550000918301627406701614908771612177360223946149295982140026083997406079709444715607055473010437861045374914922743528146852955029227337357166443204039211130935531469982741889643941125734800435059119264732384156514882496964123577055776093147752641450063844659874249117818871891963185802649533817888623015205511456906118487790014301656505933260359647105469827930057226112195967263783322105860907352452918654995337678673020870556351140795369749746072992167327993414081655745064413267352556921645446468705070165054224308210821909839441925179197210133327158886068617483488660181293867909030522433876462224082521482852964349138243655349496363773593677737603948896503819977628501244382539090366615234253362147541268816518239572200562952967020318277980131719961891292291687562593956424236128702016930704312936221881431543141534922731294000471880199168950011585324346580761728594727401512039609115108696859536149089252957260220517270766679945503382926406093774211844316360388436784494181336808599479618865106346780074928632648592660734790950660568850644305140874839540585859306256244697757075555180351560344667972955886469456078351789490026918983055679563748790024794171488508366447304667350599070621385385739236082102202463746329799713706415511698402603129037723846263371098001945756209475074253831231152672105101396746710105758833890524573218299227234435077910623650747814683623057301198343917925896777038550038000360717359262587041634106000561672708328084234196420342397688717410283186398568074392941317998101050611562787031990346680502535853676891597035117485455399140815060800405844770993384312084287845487463114789519742945613842528235601844998555132310526212106719136134803636456264473748494349136675402327223487165186355559959048726081385600272910741108085807947259417271743409769786997484483710402506681799861822265331746384560889640598020687336344545208428435258853105726855526405259553276863427516244471310396972370311719412357850766596551136043455599217385583658821577647740162827955986329628976915911197801323596435791229027309793226443837565820536956885168461490480191722328864172686711381296090278447396078065885431845506551090540542877875651065905912276089208478797721392385496974913187765298617864894656997825547701186664230908992982539369506237089003177553893974159317840893203858697356295040442154202611146400554309232358127138205336074187049880730002857783667607152214820152515053787312970891709589054966790695469391269765089830127855152604118116152907838880754136202034301030667308222350010520857993674053938009157427516650228576243137045409167545965284677066122340688860860210777353716398284129337637392697416302330151676470723867935670755409978635054997290340718527417920429601700239497959525543100126886324044165870979850846419555788623887631656244431353106488782309195293040387178275326825348256883413946314852171663325219301465175212762405216025144554511165080824116635058689483419835676589512693767944860407627869836661785474621646936839307549024050281231432143446829127813240326697789599503491554452371165444547240285006900507011791826133369556850362022013727641776381151400186016613569680308063375672813655671583479623403741895359283402978246835107317020743558573579040513892328007437320205924242419123014699628084499343943321274404303033989756425602596262151801295335588276522387603790569053019908680639169828490778316272744709127215215690801810969626169646916297345228166470058711253122381461395098175196106709787642904806124192516225217753095936409055333878355662352903991624451943301594200594226707946015801116283113625851593762414185934034748484297108317158438066446372222753630418441063935583328735238431885732985019525717974138938882535888368671744580514782426110724781966994636601532898538648041123284841266309376493575373178223412280481926150208546434467362022583003242944579090016794327126984397736689937585877414355399570380857488386751626086775861277817962521415274952465687376401217577459783881839137594639476524022429598254372186651176713600633595664131639692480680160385238814770199268057269485769791530290656375045233048650564024812358000633105367519585902807447991027395138527900255617430423882266492037134048999213183520209428034679782396079826081456686393122420250224274246517878630986912567244611397059995850289414930879885754492829501038155842398679487713842638185954725926029776220509673101042929994779936654590107062067334000845862585522259884144449972641399387159553286750423561621616580952967461008237769086458347825186668366775069495560143898371231727006948863370654305298930432648343272366919823333959809247954068917907565746781997789722729166329223490744713804745362350958153802344075239875115086555115413216245626908626860961985007854750438349454698930156030954959182992745132755695068308660401234746854666932030610677500010735709113413648896227736708457836954946815694368403780339735701904065786520366957660404538096875719376507937391502746559513313117646231667690596392057455246931882285560213453610449587002164085879816740852483336644069871662618058228706562241508659294453162682455206782491246722547278350243926700443323549415223419297169337755075803317819736077285643800124019844861072422061591702330968536474082385718535383672441942918727734613884435275062565327366285081727574665407058271063972290724541697167403488554318173504856446431936543218070750490068364437443112165556602285684343425577919680392759017077505736482452400877117758208467379581001445952769716739586718876130635630798223767392256235189343218936603727449750729846797918579598035937225248402207846429173522019118421423949273193947141852819796892657768462110166668995813540097237167314743259358122641623578711826692506630912760628376010193822358517814089579656545136725622984889717871159332482115506903207147469127457410314686140464329146857921921172327530439871935141095170333074439665312758048061874566170420560695257379241757868259518983767678441741881600784857476045907323989482947377315722331545764279436909043007323263801644770122184235157745479306524107436489044589734149298961702018754148379487383971391992443026287364167498279131970587379968550782171781805030747749357598587472982588388566731508485116063714096726027589801877720589022216650994406150223394538797658116019567804168418415631023071180465864031736295793554489416845307965513488132967068944086017834339018203417038398456195747746292259020623999326308896130778113487483888942328393108604668202306419021938123191630456856361756525118463366494099626202518197190803904620494614153429507498830159827181876124743772726786219760635186041040048557152741512318234954617215592895740058452694927365951887744426966911328660596909906881857806782509539997912833403430155060855506745937769813412852532279173590198444367532480651236359506450768510201440609001402486038306472716810495130337153011587487678408131260570276264534068965118356405668805893379844315386096488775879642376040745718038106220569330213719535970446928796653655265187124611458233950243686807103340007989152420378021546148866823933109582793452927093549286628550032541066016294922298024131668001592831781421780644778391867305644381907603243229485997032173115867187419879069300693081122471125157945984098576238016881623636881106245384665140889434751515326249849141494730578261851129463422376304049849538303212012195173769915119407536689656717661015109000317316806842401248219296786390884178447737544441605450167853623741151117732802933064046978058921721170001587418938416867097597574540632076033407472872115008758103141834057142195619033859992415067958290660483731033288048519463927548166336602564131417163031123576833759367629066784458344071341694080642339144881329290056991983346494876977248192385888944447290666442356907396728937540713142712666572593659708912312290966631670644010845605257413626603249351193565031851947071829919926695933859029779751306538532356107498914511733766031202475550206680978385066060297916811532786289395636534206903072121215880509105456790338590482137632661542784373354508513529889283557305017139689796555027690584666637847993849830431472931404499315161835225021029956035783628333949424235461749483008287055100523487838032821142867770454696170676805973758633316687987720356342004624039613003342168893591150164860060891887483953245815411324404306719966892850600245400342795326718646492948447414878065637720825319309356636921739797587044787795277904097001410121885271829530068721340224599938245831954473081508350940838648758300675240371901606977239999783418643478141100652242680390903414109985230029598004493723282607177431574173295005175270728540557576021461477217137947241668211341376042996891374311537527318215046785675137902236200494833567034479816627934069264924394492184190601310580743709053039264526141587471313054711105885223565049841325053253330270183088050928082008603804420158874362083821479786572533879511954390382565297388370395392805735674923408861639985014139047199131890571936179406555395534034526154289370870484450292824018020971254885049909187910819802158263327281131615703541679751594167034758081703033053160153382320964986411550884289476696805751470064589179090975185517507488771332909882955660975476799202471983724980528065533914546179389914262758056143857893586296472297930477741813718072252138584953566307400394683709082126620816189097713613167111721754117353666341424742032618062359590808458365332074221247740295187090515381062235543903996183632639296225869360323545447506709666393413328913024808321730309029506154129032628058449113159832042938468102575422451166865443009374060623147904848597467731620775711905787513357190729234315797441312336022530410838595019246349260589789554147974805674987734478019184416732393152573028030120555835523672216103560900071892601218228650019356754870953282186461801440634581812593514642561342706672896912479009890576987059440015164454699367720006026997863130103266597520337350090904342847176179969573959557000594065786785987202097033501538389074469179011620040144420003257879015786142950073073991600663969053732043565659383532264363468055545655250500757698259224767008014376250078249184340675250306958319808742316379871206441610495856771963793005923423148279104414152248776390221925219987561084417917348580108486812172335884468591469087543685349317532058932615228591085868504448411646022110226837219509056301079297033354362425254435172463229003377685161308334101931666618150569175962944475116004486970062837524071169225421004231844168450562785428327631060238218497103296224903343660043121421002154692487069255559690043726244453955936635304883310796492045328412856046198101164863339928352473438342694106932578479521015031398396308049688847961536681852221609904183018166942277776386480125448144308917006967914567813784561369757186091831875941699625095969991603421084608903280946304874728877842013936043767925902201905380183975384968005020505984610468721614029996535231279526973905175816736669389140438873196562810632336609736977093213694017971480624122853216087284985127165855764745338886105935916187330117286009291697948889879041656485645682258817203401697682109457814697599987767313365382251178072063042660800809728274947022305261117110836547035924470165352735604150176437896447510746434724039643335430156834511181651075214590025213815718267855583200775586144197850278809623789244427178973508414867915694824810763901753707915451243453559280836633486209916680659812904247823650975416680902004386565993797218805619208330719410861997704579282877973294363500584700107208262547239242786121585506477665380437575514432279084685847663821693737181153439981919438614756078602942955912669282757225785686165572705465191860292735404351384411902564697352493110736976949858069480915027041318445668525567637980648586088519706437653623075864144773209090794518116088244510439243973800315065546636936115904585753739727958108659723800096604102657563970054385698603892422196132042063227716185548055049794795343556298791877162887051508787117011919894307995899837840034241291055915430487955635638452375618701707296487171034868285962910654765920581985383158352618255800166218592510333617702051291406720944987390054175245101829754483574644196385085624543825201519283184639321987585572867245316627035386963273416763829983092192093819345281114485757449950472807472847548009736772624826454478644090377585583152385623596246384567078488823947185132604268940803663104278498648602867400092525449046407758651982169950066988503042615103781865938951734180279102515021466951585528930701763112077596337999542883781882251928015814704194988517167269614578991615565739393886644710247386361069573795634653762389323869931671277288948505406247936140005109111576363598165907251999218047556067671783729004664290952840092638109132420768990521412054153393537221625571833972143996633329151724367508299019440058390102774677195559898746972675143242520286957737327751852083075740233715793756041571731365591938635694725298757648072152078663927229480057768322616078935224717756030214485276318924273430133916985079960644578825867160851741669497565516770913008520513893097245130585274101090244839710629860230845912105057769263538285088526083296682062814306253426093274165214023248854031976418972886626943004064898439723324465986924119566337527813253463913075751391429181614435772062671360974204551370192212757863594197427431783226867683250068761490939440122459818771755835346919379246974672848693306345175386013962652814698981259864264926486286456474269874959602114392513518789762879513490842554184757118353329323663461420074740277899652147387695817257219318998179052143896152552257082481696032758829651477035583654512339887339359303003358431415054955219697840143720006172057487149016063021172840851622942618785416332054400003115864204068717493574251584253411853805324869563174449528119755691630160176933879239443970432673507080141408413937265666469033844182013836609003852380104887563322739951926120872629886411557292767204077000718990313367113949759475462889774800611493743535604857217741865784433353453452130687196909533593407980882368495467730772052002293399010197316271925675810479277387496363908372236120661810478796778384791486328877119225204755844020414317940438384936983556485991950816395691571348255758371885403211561259957058284296816342101208931002795652746102344207529070906650425585059897352324630622362748127635257273905340174288052634291655153266364185489129951293977998938760876291755298685918813820734170013712976233639298148966086639839089883401810774229679150241963738913110344192563078285370047210304193147664333822198665565874964812577463530536010955370479920735208171473120627570578105882247899834097802096571784262711423231255815662200952577587818198176382829373590504589969651463504321899115333483972261580296834057990060264931032746522139990293329874328095072948189873154147187867042671300292556362380430580458497425436856170714446431485130097507437459503666257570487345518517216230665614447910464778573502286155357512008725426931018024853242881857502657645667335138921630538934133857801139068001540990445774488819880933955887614714615914502188108341615798038153716830236796060271815643467204633228493469404924015429313412262037741045654194966294324853248399124924215535425281538758787192505383637657692594070377965396841433931506042881316943119506510937336016809905614891378180571614733051449667864529945580814620662094154806234111681551987282947817836932131564670844263123790630000761314726819240424917141520588739467407951683360474347853516318606063182994463554993448792548214096269401417573963010053843669486319858793923195749424277944460897519210132287355560398890053260624980128363091782013090838266442512030512739545734761504277236602208202818553073507078293403650931751361452182144590191720715480256659650481161058864715387722262770068358850134911592070683954932692360748481712865797721412410763383535497506289267352950239986500210496132558084940885642383990584080619963484611439036821305490496401970404564138348980087039094269233654557680267170500839278579005446467096383475575173579549990168179157290887458541791628236608789710668551678228203343827446884763242498943660381086772265789985676124928884830684848696232489878527394102130987458428856886218731863843668601494822878044011873255876872702637503654295850871425534327055515228947603813935578544780277871255724068660789335653937341760051629978720625362540192096381560290066286753185251804514086330903131316327696610406324555918831413466242740916527174587770924919741426747114846344011064108817504155549553947091992509523636271092693782821678415539933653607780796428330194621832463452761545137138029809948505438287597201876805227215205495952084467545421431851049593836738846846682781972911885516697368504792641441506270242431205797425193743601438106506406478819363573220411381287985365719544036859565227986206418080900838294026330491613809209529192242165091954545503648101140298785805593444070576671711216849998287717487620095699428624069481485826803348660409683805159651690851049793006049472505001772223705894969514868655848671475178072115072851506397365388243265340704621368201048768671172963012681199619097900676592540451847533314780400745162705114457638983809674448124199522084893937714796335543200812371692289155120191238749875124413997805085642915230607853999388991857259022613012605340039355527159868096982641300307819447113539175872561331824511411005886793070439820063991942209325691096581448551318198546762406575833913804803392456247447312325365767885437289748328450762403898425371828376933358298844412272076342617094514249629079377786896224784302671721250737336981276624467212707876085505035117716800812334397664368979256843277448876310029451140472789689509163975841397782892731512879089430209997075583609219511607683254994755553024051615347856658449855710736810454974707997335045463347109501283542251522645283692986384952187780954547390841555566890465859814212289107570958386940233974666913903942783984999311832409955154373774752262949492189917437906565821880774039170021669010333893518671966425872844033782071164286189396931912757130200046730138688834122572901329534142841823028395666941435141955415643462603539984248496799812285471175479112658349717678620640447222615168558245386949084035411406174316026539891839297221542290127248146008866257723354670689240788570729615281869859205830127510804986669071266689468809425622015257519373118791126053220380147621595706804983645586718582073628080765363305046283206975740081587493197359999750422827461690798703120488790787944602062974155834115621524747382813326004812955723093544057451213455289811305497049521518353687247778718444617264630772334078976210194667850556706937726333952024302207249430744668811068902585618666155295331119110431870971155748730774672875010845884060659810751046743340661728026804822248539851725723541675906885685087266230657840936067935174116237146695825812131971717241891512620507371085940437203842102022414847413168966577781852128995766205808233238414149321486039453507337129293389070806273317913343418058844960010811225117652994267076679431944194712520655736057417575827388519587602919975395188181318171144563691325926612099543368125235661302530733636552082159611397305566838159815862799739598910034109007045272342546231134362937895527976592606507378603285530057810363592450291192460478624215203307823042617628722722445934938238081262648612505373590059466531858874257482040160752882121368540739455156587152634471916038775594512798453650252381267462721850331097764492177351562229304746994050052545784190045290190704844179503325599002856369967875274306177825628948676126412637090052179237788749288384328509129454707322582756272751416167317095884016604298215998407159601459737563634485078763603193339472414059500934146119849898233769027769221418614690177702127402336616814967421705068635397350321089746757384936794240117590633210287506027681324438408928911009782840690119178049831785103330463383316695205984903180732247162026685094787085666642866434574698201586061600469201074432212017715126360557940184351488470935057987972358128225090520738041672371426065847206749205495605574500197294883639037243816374737294980406441387370415213787204629641938119109082004345327947420637706276073118396272055274633624760234888716182002227219227397358651729655857775923790642169319774385725533387857145037454259521706082954822288373941227243489781709003154814341034069799909822027811204587993366605062199228703644677194481078753505000232580189135974014225892723405961617584208067627790482646685752886148331007580825378527641680770488742630921799161729959381986680814069123738462974889525127374650536884082422686368658227682028833750196800223594534074505599797502202790360637107202693284502900342378409146718983477655539890626624841562086747914441510874251242532015294922582980894137359455806664122188004690757875412737709345551383393369882476728811283162686168869338165839242075809774279532310024760836274943588916908225234704502660863621643608862761594239442874499029891985211997785723617382806845086065024600159083984733719746937656725551248764926314943647706079878497344387883432814390807284363975582318612969484801573134852129009806844266370446066220780854859880358467785182502749783721446565498679711550621603911934728469315395946812095400694539843729460637882886595979496530012755794959859317577142850096763617049785361750900506972590958705945093068871273793748257350531559690232556834567773304868190847648151260066797138066716431184487684344805373523312178232482022372045872056421740694319110506507553162646614712293241055646474000647537740982398779872934589560373880978179773004450718099410359455707139759584386023463901185826790061875812907675913313709439758966578575590047192408986873426014801156814904932249076984015309707395839947682245562326426820176464989236654248061547118941343652088363899599828280305220634345572737532572161275322046375062967951359618298982998039573667344265805122080139562050424404167455000833921571701673103278866313644089755958095662854265562662877712903279182384298642468972621549388487337302029461846533984288681717288919687159554623881465292830672260993716488194183286391869033648817550513166557613930022983610980340295142733122890642382734777748028071023249198998875225051047989884912417094553121505628963920695368669586066577711877128101506199626937054436028560586177041255391354589420616285946757846029227824194246506266452908456295530313123920694230326226408205696806449371752647348923800313309047457156915131220445592547179030952272853658349357050482574191639911647332540646072690230764605844393908760543289323187298332908412349460419528075760589202365317803075058503025157496758767976477252906934208326207303446404799083427792253279858782272214476767242169079262566431839251156383526229325998371120804349140900181712483355061882065021129609294653414781214458217521020437972009180054282133916674597563805108066798751423261550368352631989914740888466956427809211187234933505862047401488306807384871030184678989945943161940388209791048884041482613710412039784862922109843261017884437911269832993506566757191035956924307008489754922891826773199921198484029923392706338862871336589423772934545041165333746211254856377931116226601181992509026527540415241910059266611769264130090651789167899021416773650436624572411134709053457401337409573827252780616389023174610202669201003780681247751268358816629342241555403349526705952669723227048528942734371907831878361491753417319186634592718548731578618321975584280814474410258681959870210712690222673045865446629843941575311509525347695189268864402583893326834550428755653906316431944414769248029668630839664933003985241056939039022645281573403618383140882847393331485119403802651499724367178243317584122442042335606228571251019109810554321956376705935611783425841785533200878155479685566674594761612495963641261350868746449427152752673279425140656627267915499308826347196084470052612752970335614868395440883412548752661802491230401936290349779726763276731288936555152609669903868970116386692866806265322682375803443359915430431143622328827565324793287642394067401219643029235322053567219335641278460254953127030309172555300558201795636921673216800795301539504324008611193765734902392743638845985319832253063331390444824603822869327946953962674497393955464321276799448734151772822677020571039954194159183334336282246186157653785693869761021333964554673681327472880400444815784640451179759327794721099115553112833337925745156958059599718138599925798114824300556514062338352611955968603146271369047669076489637737641861657971468823004325108348314924671606277329035291268390476847164884604966550996543471217903266177854148010098254636634194414261984846956266140184473011379596181127273907335220065670808515818850741426360141697089743331352695652809978615957786651467982600901601636280886381356783924532902561444679361586577107702418238962600363705542242166476982518191690445464138703140065081006496564527772842484146106528417134916458796819859657267719056806226408442879844171232484963240393109161969258078060773691587701962388463482341697401298639816956925099559573765940675718394410323623870147785516471347018924938570048197645030977392965775568115878237914810246419358180770293034781001593403339560758544586936622088744702010821642934809322771958979772940493694696623487288777216025338383605649205147732830696253859934360742681387351864891095842358748267981872378348088106131822603822006791705520078187342008072514300998767000269975892145422418563915726952552789929261298078308537601085775916868109489827772420333058550027912796831941889857161044353973648993303338096799035776111717324919941169296291477588754836538667351494263616160461470187966667916226264100399832219491647493484088353810097407620557892593681343124423053925284457598923302079380049235820492032197984221801082963274986693346644065360914016543155773895819747069887559799164915865211780644664211503917044857449277940361032182026382620684633310562621493822534703173146328505888392115786630870410588371063351805574189190931553907870113864746195272961281571001916431879267813409034210435260928331934546810581291643383080701503779031247080229268695596791518425746936739091524036768331701505522344772799231603407948586975071541941293619618829454314672735641837128306327378291412118855905744698509225914819828928779254357066019947991215548121448892876189183326133723339961391515996241564327945345718703866405275015270652147111012011221317571939203545387724952390900887787904921663665171557549399177136909494438149801921279604751789966545696348038412157136899693692359605045410870331710851827126869101066425159290960609044276116650882964700348525787329915124661014701291951813801677269080733639658460549816929600242393442031614188236154631787278492131625900337139505226018748091025129432444657569064682300252591738935986972460971507793070544913207536441671275057633369165056868260430327182973155152285807210149546358276050957464494937565746695187039004435468521790024062323437968764006694290009121052818116457981972629388071920230719759564075936743748645538966187618177715775068612460815853716972244155986792548140298560501492049591806963255028079709716445285325880512309696789893288333936974372762719115167405503463451753917196816854652866330313822002589339774680015480411385217267899701080382326647174714649241399357386914986856661653590419090175663633181310667524435274866313656119772791464493634648362917822270091960231536871773774694652846595262527868674470288035097808373608010963481048522820451795112714193766969429726386345526832461963331878744732561982833238622637796533592392279796622857084640599650342790637070619632665259380080034395874296898773601420915451567340266451496453285524376479597618437683597073204788880951057467451602294246651585696548254889228077817934075963500933495703807704765686487443774461353473634429915886499345804445850779332242862618531114201212004093151647447789618784180074184643456017154482549056491753828452700231593815694686170918065511723520900624108776543379148323349887039883996947581262037352799664672717660297746651376088385992588860873167225432815311456420512674443554827559639686193693282393407266481378811557766280584828227137102890278457283239870260807628831041470245032526509056766463230880788100123026723020202719076267999148603152219298812766634324391442633392470746009520014528042636426681231855352095956015651641303598611903462193490374879417559899800461365997222198026632193041189872516024416165148987283769386483451533601575585351130210668373094366291444047229540933836391547463111705900285912705254562502778058567530090938267131006378387267810237978402677759613304096950853657823943442697072598146016278175906379035228883536735566506206572368967014283297211317067704099701914089385790279559124093648412717363745732607953647640370363773282630982504620560931137600361806249139710536804090626719882599795015214261886314173912407183633120764389447007345683508194366264002383517582973205424747270468317121756145868852345456378086234628490438583281698950948551039292152794441511453520002596330982550607411534589115429017063795227074619787945884789964254286382002056794147245703703923624015128422838273070725591492879357337163223093171432010842680027999839108464839949394368945395797776886144362049126649514566916194134864343228310516686085816217195202327900295936630544205196975873075114957279671415031228129354546793537535073161717647429142524550486969307532248018390634418825012926694955370270354202082128968396502150580293599830664132754388076050137503036677562825545440235989374855305939044021876111079168922025065919499624806191699054502763944009198729560048484086124780267196541091614090150426915625758515499544061417277296543074700110356697432938266224412707208269870386097823419176005602518097806479863680297148628782435962455547661522277204830352109637538984946207784182877739497577849178125175143062130389895840873844012481402128061968252223685484561828901865757740435639822244771996347446790265137773157000969945294181232535687504086880285466955335186323727123142824525481870313086494383437002897804653135298112044633670691840222778337890589830136909831795637035107376194295438867937970402463006721283381213301513237712447081030156243706378898803998183277734579425580204994116870863646651816185785188983326344640485953959122889222364524075581641320467516827932281712909532261849843594560910376073080826570117681207982067775049493120373793887721345100067399639480599028192176371919929279685905685824110695766646973975608028075478628739645763833125448296013010146263480681515546851386637884480322874557477933754095503299587538662619589100815756195631837258120500740393110830970834631384314385066015947779062354923119876357635945269761807979359178191939973645658622757776913875696112082072974243424380848420286314667403309293713106569278059284538959538833747943141335228927170233083124981634829421512268377928511857602746339620921988367019720540563499403919600704962794015082076831338572746538343017383710300277606153704329880762998976644977395176517105140555402745512722886741901999052048577838047395381437308114277771456264464960285955698579651851325212775085317100981908702557837168449644299727200879918254466337824715166086852061718775299186881990665690595119983419180954923261567864688124348109873718686705711023774649741913000042421073349088938490376674786439290294811191363065786689852096910025411295677831655498362015673301242755796607533825516385815276148777966524404196452296327623212135136108809123922583500706749053228810020735177142137734853043556103451100851689414653378774082269307619136346200069603984255013244550072929126858139566307397402154583230582099478730679144374350454645891007087409701969984665366908032808366929686182711711501218897245034414433629550180195101274964166457136286710292483373246711888035602896062989186685586954091848156196979002218514054597760580971584438041979439680952910275051051724289541361591998968532993017332288649766347690402956346408184791687867044196516671445893386407765069462685454109636430580745279327769565966344325716484364526758691894908922883058797580837697899504816228607579673375889666946702560395546701006250526833511683330924903647311962249535114861320211785418013425056309387261518462343854506026248502147603445512621508963560424185346497733259023416742099576377185769610000053656330933750354583223393346237901754977125816162873475157524189432534597344388666503880632980218432136175098896471593696961398936644268486401358425068370725960664444530362496019046385587755494396767379633033315660893222328257741260786131441084201629321556558449564217256023721902534401814283503019597582183860612218943668301867537969792637478423213848578863489113598456174973849225200224867709006827516310204065960890309944555993163968256776340149577913410522860662104329309575885070728332642133971757611632126514734513189951461413501362234862359672847410087184954288968131380875335761657607478309788494678091021786303308284003607549291981523210436052708853934228858876051756659136280262752264349110781107526192416590716975978764086237867171041396087076779228235226134762463195940468747160300559038077420922880855492892392492538106466482776252671373764501654616014383362161123253056353942412998133541782527081824785348697929962103812057500246421795355124390939299461590952927412160556258201291956426791704993528099955233922275579466410809602822052280525656333692008492706408892866662042602561051156134473332640722862178285268685993132261429338192254467682014571550461440074620085792048478272902705679140887946204899606404243747864271733395477483875908551869875598836232371996266738079415245301984130020060411446048419088696670055341750794881973943585164341366445621962892813190727949854450713103584731323033969457683866061150863037958036907300081821647704194768660829794656584641393398029087241684879429293740156032986039012832439641425946597374383459863872798021139348924050110230709232263697986326359459964399441311140512385293336463720118358994598139582289665163029548328856197553400112790719566281737353341359445240221507356563455170272847338425231222909850931424080393243718467719304128011700688483369354428396268972184825055911485194509986066001346292203765845070292670019452877015783163080491073817055847057930058297503006866608435070307503843678181625320966619815377765025070363500409377676177657830537541475097868211310958057612601017006475440647355595232528041796046838313313101154674110247675639138459571928236497365821679145138981400972902456727679189227560526090263876746707358175053424570166108328932642217129358961689604200446502958250023066460051433663163376874908129057287590296376635210293351677537237339110367719376675331812638296815546153531195781235414223151608239458508635405840191427957034727731942309465725661187563479774101173255105957629120681997435186022704146838221066283061449248977860740912882159335685612033188777065092063127724379893148799947110393017073761267528376712017983040536359895881548358827359545918238403902123679450231298035468207932548429218068904014535462322704626940930743949671911131489132476289124799535317563159036160652930675620652829886015557268640266676740128124555903080789012795008669034863723827760028371785199359166447536213460396672607163533222513521885879515273066360372486842186319986763850083997836082478980936711226026904030615590823019403009791412972887273473718349595570582017697283526168937317090782801029926607722594884493878142663025838458276577009408651355419599468208222943260987451371685126544984275715935884035387383898890979083975630198160044096982839116202796114548936974250868782860952666536190813638463531309491279822255260569080407066010429696846621622471631823095647440655632543351099095745768976875135412824429822425902743217456766326464655880230658056272388282253518920349823803007850822550251352891886903183703967628126946447842557546649914268813831717900831671425691606142179149583768653932430074102759487370453953286967155596218262668307428525800362834045294688581301465221503905325637035751395196661577836075853203927712045485623962869136631245947926429640434225887894770753873067823881692828014290493765298066471950935754787025317114102090151341767002101652052867629092001416450047491358321077993471561006970192568662332543025494043896756116831353954941271452199185944689132729455119959169978757467621460041159779682814911532036418307971063965627674189832467872033428966713853528873307835004637867004671245187460623994428332641439620752869555133872448969778082013106016282469676114044351065638573752845488655685893178990379130922442738003491407669348116034901897604124043809476848394870071373622303700506898646010352039492099850686444691688784663352304671746639986107668375328824801851832827427960243342401874706969008085792356961353279816767793265983088187304070173705406133871251503131370140103076246557976149212288223712789081930549634121769134256192791541090169066514126938474338568521230253515465819389687466785508854210659169204265278947960658734620208257096189104920039073988182298033970419269825676824611478561648435469890711845267717756220605151640839100461207845880655054170098268083940164000414028488898107207936899414440968900674960337723632371792738279829606518205666496397119856417446534433570733942092302417123271755172391308364245553788238948234436763168897695422319492268165592826245321031561565207621650500580387567830027370457483073381147112987036485039486235975845698868877413342167178489140432953301555736626853057082931780533221325048570978758033504050525705569398468782963572789340955394346934270995261821052903455429911239417131827302235900205565924620131092024671043161663142980059047849707995425344129270550926589269481939147530531110265125643691144906476911211286884821996142756906911460643544770961666649030967834176227343091239794479583920222399034114306087491148379054101734437782618671125766302064182002500781671366159688018461842679621443032008360724690046784762381697053827806112548631199321095623130211335944835041634283747902544327225984096962289760064963006724749833257315978427547370823443770145700386067803722452403973710734892394088950617823943819855163850738483458247774226201572331454033336184593322905312833083430479330389341697585345068198587159784168090745321777016696014031481892364676784208828686310987804870542225782591191193352444693763421940257630401184150792996315507200726202413320895430905529475002512671784038567798770727508136816043615325211382860782151473633380705826171534458267307377040964136552064845764233033436783580681889424013588265867095116717738039656863887793842961130803269859400920780131469315558260573692193509903551089900686729664945648163531826327007350300532642503406119768694692242993534316068315549492066609211319012672948298995334835993913027031015080179771143253507178418588312488257806791605052602420645457790470609135378967469770829191733098276944487427565028808814081804244321550757647735305839380101672956878956957287483472080033504344174197726303564820950254274654756954496691658592691743700218847094702070241603828832076030480540106132679739845960342770199505016050987772720946332750226116022043450300350990825343015640395093832038581101816846650561210050552188434461560006566601154568509060330781254500962563450536962876565964336807595989714476475317251372445809482501318134464055894692042395611471269673188813188465062669800513825068539275239332026000468752459049206789117039913059650793469029401586528463811335799531477069971297101647167021674201965170193133523370429009969652965826777416354076358672073751669621691561275066036543169925183895695776634166434092492798057131361197162423631127710005125152176052129461471030636455446902103875597272303978296126749044878257612082606706266188442446594605326775105152771170003947343198580818332565687535163487942274534521984344997977781162276988159009183227868667585495969284330763272937104866761601905187553219944706744924917009153295307331967007399069746225600074379517442734910231770823728649994110999611767643435637322405303647268973369085787707991061643449829360358839224421233719884111199276282245559754196114967807596081300092255244140633535844820246537566755678060172506917560171629529896154456392045074254754655572236751694979857788202988226802495286679442888512883155635663050500332220640304361084636650930855730239438990269087065302973563893496868308141917440706639619719605385080391745123124850768899858365345619954446696121081909936296817104830699587486859894740267478526234232637446200469437016338385554979521940744937906542264258207212347903889406321151938692812934228610683645249352632669937545104831445346833686184222212120321690089702156592602043968774568401437463085835160835193273694547102679207220942981725048804202848473638227292175825974044361668903191322048690838253966621653558466880678492394799117563658008651062492677671818921997586522963886295563685327696315481018250752338145376403456455387736101025735684229749244131609151911811809828443659432790306318666895201552049934204264458265457032793073032332793818745480288833029212120907745000467667504378501756133877138624204331727171910461344263086236649021890255577656294699911235427836134296857976001956192434732543425153074524463263194843912868219933095665910723391645760236386625039008749010628617116726079435008014611156121171342738313435333245240143640641770109534674716435407890536551828981129331856706124544756351436602170173786575794656086844067151953169448923175767067714258383544543747425999756399803354480212351459066163810783541775593162738599576220527296930850225354331613543799580603446029145434376049201788744365228465704778013487792446582246676248434100470998997494563685893556854577522825482164838076441221824671762682323740749716008185067941197956330233716026630755954220476460376457771267208303315787391276475074286162167126615853243074771111961638642861887061960796884368919713903103770181718704848112445921885404244382680367324021235297694243734439698456006709419590400665291113244125073388201858808304182121461815639607815947920003969356397291009455483744512994190730075054515419639060760005334638585651307877264661161873657264984421871136453398544053138905535405385324060435785537881299507218802705176782114907695104758844626470600412204205163559537309141980731607677523468744507978230128765215143812162334140195409280794299850132689848438340194200004534405130406705632482029117100801766956490421848428141248445782659841486968530518001726014153319673617950976818288498086536194713136280732702165790680160044710167142184259853205030206219881715380191470434148381561822016010482889570415810960503011367386278078602021755545710141466293040873485021928070517494759962202918447843155273598210620817289973318842997593981442126628294031086600705278350847568377048725871821921725183784999871263870951093217472306536615816532167194312278846840695132627577461905951662662080098050832469425132028075574475091336458150265398825206098943866016238611526056814342983377660879257446586858151615754590971064329874350297324831471264924337173011154830764144020592341200783965183282287549683019161978696133381559017848606589225390851738791416825130446263638648971273840174496957948299856824199919756650856907975209131827771489891507919518612489377918941534225743628110948377777170254995992046784091865515017103204744089592266034954587952199025135362723495713705581852664809121920939615876170331902758173494259906974922108736979698621158847737834399380031124052148238406832500508579941186597928476308079074831225516742013275387316670758219933413351964737280982786842257975102650468685448435380418989674067692672046188301629275273257779235312724753887979638433346495751154841703554432493235812786351836967044346104312667216211632511732528494264928176779226581594306824319809294925378291824257920820931355094672802011318485676233780439920186353475668726370541610478943981429012514950155674905022851630964446875078548190487123229931105418356547025701839977339054862223948486402183459731750173639931269100143447778983612415907974475783253483268863135587155107796096233848947181975124565097523317219545029063232291533983220375270198219769305740550446058386654812617178083104730745033280192241094734895714041941809007714436898554726478350009797191249074637627319317642546748933523851205047381395865686311542071641784782476229438286829106650679065733540573553047924824518151805134221010620143806358168557047037951556104295016313416103461005659309612817620560934469841143605516387171345583403986641557759980789505488955276921567675319275037712144244998142142731613213764416649192081119432302389438404885307969919820283973248414890543439634542637056226304553162567949777443095194415976326588584806886699266911858032984504328711959427739243385656708925541105327402322706868952544330377929272693191733279235931655206031638666224013195511757772320265757191499418231277001277885115434561319322697443342593266275792152359832987249052953000003457420346872091621967110255436161726534814066351569237724744496850340318876474095543016331976539510816704005248183499087928016236034801877684622575179223712255812273028142991026651395321989279293129174256745711897043044612965793932244594200125510534334367070252045456567716498595494204675474324932817080074518393218926724322620815053632549117280516209752637699952983924195808465126576342210353808925768601249531334242913483671411181047317844080151542461125203727252176752116394433969008181114037028296370752739182234835819666133321292304151808762533656586662875993745875792620612687369111031269123948418241245861145331077039323222708187943933174767858623783154365667255196684065174124011266102868411661257670774872586521154981906403197879162490596022523724577139971163462370029812432212787185954044383861389127936398994603927007567798038196824412539730021476215112408856943477619827891695114854685882446096485138590979715278650830798553340471675104613439739970938533720381962988828752028605881601608254281104527013691512500250858432802793819065158092478192337259775117756238170495438266956480561927419048602490640353707327827382958074347772528746227254168954208571313125511975951837215826495326524945878695607558883878218680828327857918947152899612514974718774367972154729605273826777081183171587975717479902481998765503424171965834632348570092738933444168352259723755572670214606648086546542644527628763822296964631499550372704951514226421570148298548746529784930670422352597170745371279140419835636680915951575193978238935629935240718318870907233803660620810986774277408724583347027579747407669784585432241445989809556839268087679474405649484358448329456476246411555117658286742512969577194317439371769455007098751232214978460933603347300326330768173687512993158959034466101742035297239255725137453195559879508541740533222628252032196016417143563114964493205439113378823022691961038577415470087163217345602706241726320658442015434367402762253715510835898734740497037703235080158083532907725349581661260818939105778036658832421356511208399664894633881997958177287036807927268538084843801178842003500563550561974953763496302208788039466342963370013699830054040132690244912443313206627435305760657895874442383132698319141140855174391179989684856207414681719784430126912781436456078755926590131355439066910590010958190558599439695730838152777788333509311792606352891596697774137724387367474594765838468981945792619830373595143496159181123893351943978879998409998289252139850624288014923900989739208315037708922099693134829333147241008432652133052950412137203424675733775572844373552619590637192042401660861651323103247435308753235768817571979957828421422443387921941086021898213533511432440058741236103357134380785095037822963647147541090044572725903948024978952251187151643824070625044452028929289312114468018594575654346913283252417009133032981460492175036324666649273885213446684234517061777645696544129405219817007971952008130563414118123502370394702576954721373610026246256958915032903673903447306783491593605046932943394837707328486925260230977978984714286505486998096982709150470418381553633132659441034609600635194794383484666962363386255579933651660819400625502405775149852575352726539810800270289599593513228578152715012189424947922196538752131933546529509245801622222224011829279770251871754730696047379039817506161233481501619953480633021182235480148157446805435716540557475579461464167838741338209953637393292740397895800854126504388283907727287667518999686213111715968439909378717868600966765093879099579771281233996712239312809586821053781595256327955899968037943869583292479738548645267177376409680110102232149418895956626069126552114357385462875143570659822886016282166327675520228058162852588347398511424537799786030421295612209660658901310480220828605275684426489978753445287860911058933804850866626615365949437902946230051833084165908948941407852428346786189394068758292595804581144184860972081326528625699167061694029240141043756145645130067070742473827047763324564408110713301034517324121044914771758799800921041154000648714006661171239222770147418279273350845222146839293378404892430103602051124715233641198535401273367384611042974253471889790034139242855412130067468664080821940317438288495817252000442549938532476117101155948266965207507691226994430643954657110782807238270058686164396441182240611781382914789397009574036798473277346960076096524289520034617183976039068944755242532694216294962718295359393888424561160137167404036038970879828206871324076178190809672372806757764888038474435978081933513569658885686126685081808360072433842076560492432816796503785817833133581568454046016224263090701324342026814893368203063109394435410054055894038308366333941735470929961990962479319434210797686426841395771914627871301471491606779829162720314766991823199993849375697508424862066516543749096880969415467969195121329903108547871240116975039851106860209274682767073360604920935594915909084744227319694012616132261659578270805812222430708571775861456399542103148732885769316514749584767260791851758186882184100233925492855692776139602471388713863788310832408751332555252756895381850219451838822999960926698761585992630663395338786942714458229734870740444495366752366617935245261448428586351724538462887809513107086661298146173637662088540161547309274300590563967549309332958269604186061204594491191213849703813820327446820762413906278288564311003986332255896880898263842093258002430467524174548499556871727552477179481544541881907090812378752654221325631723929059513865834952394007498571813302796005570057900935220718470238364236838038054758308071742568809881738234341632579439017419436036191155527759393875994860210565308303990019087348594599717424952699561015801051469021274919356438189108885195874088500651020408940426762227964082395840500824963636284078000912095438094219427682645448331783196308165882055343938226683870610843364948897396500465930184024443978805138223051868024229945552361601204093968839994609529883606528975847659884318694301163033588896250618460761767214332496973198971889332012537233204502568859125643593228561726372325475219015804234658374109590251981296640071874405520262415678924682396012213506794361754284411653020218908825821249944001237596039862535318636875191182858952661073486640082198356243771769257771094567869310533027379553792471695053200337203065531208296248389401780431497958421403189039683282761122297371780521820090073940701673203742897797075390806941793377108733482904803416145231829833495656033276472005614962886685207766637242599253988537652051607704672024431859338232876516066546552214459353173056500655524483350196752922262367828050388349876293412835562801980432085971620200210084863272533001487086684371917673906698311797892765159153756160149734753633869731952550924173177207046982351021841628787995620593843304178900506938848349942560297782077643836501037127685403937566966817133661225742897513547715315517295876776857844388669366837346219346718548289556621390351405163675354847680545333919111430074407799688196135859647192695589638697900093575320062317153785336933792559076538840011785806064855770987933255854192999228367115053052097664268571464767470947935530345245630239595666585803889480269444062521264631690050312930024691191196982338200952697480717604393695441401763777732056730062187362668286096096187796633799243974847824756338290908023086501261423102211486404919760580529618134846716929771593197869260004543043069965573423754832293160274208323805422549325416545460473450428295089062562845828307435842693194757542183203423342242761532532451841185306048012609733466281276054486990624783231758091378360331573092653041480373177826932919939363453963831222280255864107303135087540506963961416027464757805533877796518546931014934070945186432830784969131402956722614852462139389152657055642105819572329315190984304174382666515364504997963976549880322721142574368977739610209541270291737200765100293589564948726761573472267952198747379691641291883599150088788522927793684435090438157425780964993119293565077602189027357638265319709969382029384412422697184560378679245352808573502452241303352147457788810352103817880055798448420914695552828860866397590683172237470036784230206306042446421945127131856108273042863587275069461457852741436454126001228249756119971873337255147471805325732371164803083381182414726333487335111657782169800755103221665271397153135119060762934178945395597654820875578666955897915726649083780348814923696618328079725655866206077290367349584993427829370356704273324046733802930663257550722606037654843189296882639655549706317378744344035821008381075092458023511797484653703334660003348800299719551989335595214776350383469143815794483697591604354608863644602813138196378021768488734507424817766706593577245613237950979088600108146858325449198083770591564835391046416295045278733297169601723017941925668860656885659680306823291156280333407870609483784283248005363764220732389891714756009695490373374141236881180388300818810906969196792413871466978833063503693927055068642069078137050274068183675073641126305366690811343510909591517826864003009909534053666441131692948321550259014540123990375418351087625680599345915655380487173416793209123581895247936321496202261923562002142983595564864389160306339483218070990065731530483659046906865642185184078266396833958304318086703832105944818219489405113161908893483693397157753781106754629067928941175059427647372710737967681909906021473364818677848254524399237603050614781074691618752997215086807316379794745055089931198258624076873279232485353676760534165579325658210691381843440002027826119884246442382833563051045941507777757980496902232368093126054032915137911167151761239635904081285196061012870447543746475304260542837095569416203818163765669920887278795051601310525614078262280480557239270407146791741328443611168067959674047897046717950606419799015764959085195447181120112327605968716714600751406398018902935399726895723405631167799503236937378361355018486925529947624986707413561513394371706316799619161578296797206225078356430304194377449540155102177547855023121887678685888155305952936180010027039314571497203226285765053405566174998957356541695508570476663343731150245283127462399383151949297856945171589850036375560549990681376680856068942500917132343267403842833164518965551535519985104473636715897049270784586136037509790747688658852536923133591798986087040432706611434011707361827912585215969681193533622274856992275581634819564546092776933953800040844709494631194717963890046373507071204102533382287461686831550021769798031421875993980163569630291070200345413880680462960308298227569635246661122193980724884446340385111538652549130198312347550569987786019500888275856378556046071843707163207488817554836968772206148338167736079612856825797341078494826088137821620603462536371818418190862764621935640724248481266140885961597953207959319521934349898769494051674476700867890526708870454510003826749091886650336006490012221578008966371086401913687767929933291534506594864256686390783914721586423507435467347313181030580066251512901481397419307257103982750573450040348866473359215738466324849425638888083954565678236052911593996797925881706790172266504240286346175825877900539087886181920983452238254019632984732837046192935184146309103949491151880530789943250091401331923907820044619764477604163633485268063969362232684184656264380766395182019149444637233364727205464925626817754282416304918653599042999872618646592117535174664162781765491019305377781456299683178279916762629975944531007885334098518455494952803427474975992937755089476472292330858334060731365995064194051149576508327440461045753966157190061572062065397114304747207055638899809862370912081829551582466011650844196797984340079680992408345380206460180163948955495613060607507236831650458756061226210204747483867858588897812089457263988963747768228921529229487548647319802082500738521700499391615070292303374060329321636911145495333685730279427692717460709653172424388279002267507515057076910651851361823202397564269001482979538484708845164144269774422797105204951619631021307492465059089329448777217623026704701716940015255579402790582134715697166174018751956725533060356577298691317209485029729415464838233421446018374388950189413915585225011242717849300201502536068932440851070292948451130865881324812820152558253549933079505301593006171903102047665922628697255893466664440293552106270287208717782053527856838924558004650939452451299210112322968332909292156640244482132435741522843516233689391741501878042161597620527761129758461762985573390092883107344432304985507288255731559658750550753001452489310260102205955900645006264478808892348846259634809129443425346747228206023305143437502345702808243218140023222493587106059331645701818396221069705278741525614820708629816572044741156847828561688827322694361794173272305826596888200227188850870880184119226822356448121614541586656382526525091028610952444317932471777218831161602097148955866032877410421446943989844331164619775696233444846003647270896565698633653868620279431897793735363833520039524325537685005649922730530765129649344864208606639905975652705833347885256921632292144659290254839592664218363317945259721571059383328977609239388188615937359609012304426619040310751071154524662282244559634277837159217264471100097933708519870469385831284993910531139687124933290604497755685020095469626112829761225398806322977750020316319975411386624862892890692543592562694523499541391497728334507084852046021714563936920869170146436500844503438960175301656157343353275434181441024722647817406157595616024146870790661044463665827448993696263677917617704696907026427572439607301950142038279942913841373698263090315739344341656039049434809823718547638081755269264301010294592035638808201684672964751082716419302169635782623490783204887526854085790187212063188551514207197004191672047365150042269863816219521833642384207333891868111482293240746077626719607826634824169882970636389859197684710026583451650349458476893075629870375329366819231492382080858890416725829459736127766602693467457725551439608842419682483646456394434686854447548268391843275134563018022162931163233554882184005197899935766107468866064072022388034982437167064273099773450178116951909243731951907344571006219677564962500772139162402573505126311781818294283186157728571053448613203075291394251572836355153441504908545378489192220558836691005241157863581699011094772793748613684989192514575510131533011392187187024402528000410631202069975069854778699675126646464616119011386277325580923922390231801262938225862170244617509670986951498703644798258033626071699408821626829285268946045716502157483730966852483483629308268524925142689592507871201918731117214298688731692330092218523426708408801059065648642008292828742065414272911767713102871721723274424375634498325872743784451430442762017305558190988616247539875306713345029049569457717001801614920965182213990012859687948743243687927979405352831508377748400270200835665321026549615704759855193007710478386428634519296948547987649537508397440831232320689629612730758211733931086655536362430263928016262732587509158637419306751732438556458416711363230650698715514627799875805017039631804222784162349812416826880041199646550019461045787437996642725326305257810622552817579177282344290665709524876744533378908401083773696411978868566118568581456296678598291347858973324234240633636542764274609301893515581037436399839943159327817048202711634743699062708413715532253390697686450892853456836403904170054625556476661198022896992571553742093225654326216083398770666202464085275357737953553580406940429526590487865398968607298992847586425035277956155010064483120632482671549038910502636436821480926937454246701198408678400059799466152669240557450665757693651700425312244189165514586325409944532782826319275643553545543160476720049415016168860615739655325331800502825603081353327643014601858490181654035118466911010687811027346861018529323159935693906186000863395771764711303550598237009989361499176653645435780598984351886137163125158925084272613255210622660939993395565939696560642595176133196413302144389901089345039928129196246570094590660292168896949063525413457867734183733814642293808212391109064347086170039063582639111249033526149750938569126620180834293938477794180277990098577131850665663460628333281012241090823932466685384705023378968525339038121044825876893442719597780379698839691006151296265396120090092205643034909855541638749443337035395893072078621549976363477822650360666984030762588232481373252860708960686920663400430359957870616702408228924813366180307363324418090263710937794957417378530121907501584020896500291067949132851281433791456623660832382305363139663158944809164295731705873101971765003442369155624475988985455625731404127137674953705361122738214732492188499129653409939410614422787738465879867942416610620629497787541259314201174564157520154553629647383945192264524585762810905984519743242131579504650951711736455513502446305456882635126227983344811849140184396192919647018845271643063817669253836517860506986329543883215825090139949317617395300370647164624085835178159193793842898481125501617330907597326997456753717592970039387198889322521598576566803269388567471807352152867769891081874519264027979839477110354004660208507274986737385503289383438577416078709363589511091558110073389749054352139473994502287294342060233679746992674822894924464396989684880525502026798724315070201614996434649185575590976831371442207853244247765890059862835885645682646762790169281935466680023066864172446120054517695248745621134298138715549140341204243509857540340843729412925156687061001691984337554118044972827973244789918406832055002618543223487190731279340039092773481272734708375659152282328510295021541662710828515277581374278082439543148740455479675564047365450246964091227922546403177524556751865784311220810325324345985531912641956803478564275068955013724764937382555410097743219410144604210049230414871783185724875303937619503070466648522576599388709719181997249399385661396223640928528776449465828355721127426594574208983197383023510518127814678742001121459117630339092152670965420373466084939539834058300273325359050074378445702164266219111850005831021789636004879159509412699355551999588172821428568399911387368847998566687823472346035493227004449375161764481684682011678124425884664211137526442053794186157879050287017017546696985433820221471941290340929834073144026114334971690123517943129267802414237318067944442542855872809767407095471937929593291448519488895151197090668323217561441456146974902071548058923985083635927198096638539384863977160928833856521535140431548155581016570300996833070495029342676693778173598671816320854945843557834396011911312019082992323240910846119745425382152544685329734417927849342821663390282864303125055075547133334250387394483837136590759595624517199033353776727548487543299940545189719346646982005133486465396535598484448898535546313118791305628153227237208504158842609054145683554641640146177812374138412171066500480103364870346538041843916470246719190687633105146202831111862749633543689212903282946279137296522386972681918184795989389365691031358391315535584337292416858025011854811671389364055647734670965714081875286169540908122525386405392463800151506951062814687302497877541916192792980475623294695473224132992867861072399015913564812435734195829589501024173290908786862306524829846813168115078890638702849193329012619279915850985480288697775630703546277524872488045690694854208523813677317482689007198125018017265115450930589536127666323375695956997284987249362209807205114656834496567761913446602934154622593854455741396262965310380974242857801679170162065077883320729443579128893670511339931881904392371925740697095179480737604027498785900843395569159834732139219304380558221424059649659744868277301147525620423129247596453104532769652798371134073769791048610745587524575826541755928177763968274621456175399516230231916105911251640088978987596145334860588968364074536775546456112799496389715130109606497650767570863708055244496552792944858422357732153004030937383783817157586110921078447994695374244132389286394812033103115539731002674708544050878481461560978760511535845009751910937235860843925861651029257574952019103491849031493633312797869411037046825030950051355244617461208866038509427182052512437116883938360639600266171933986867719393964006879138075828599922946395974363238549158537469794084804533478361451534049130364584048210757046565339059665298492533336230320830253999770477915517103579892767399890072306371177971702325274047007240735530828852230789709011610365338091566755974515185491561483829169653233296226874985391319724423766737751397762017064716815726037847508313979082216044738576240087022937976377883582354604190528020766121433443988510133041832772095686786476262443323495321731647939855389847162322618975303248823697805032769430763635220110874316679746192135226867881175873494955719750604816036178342008391298076721360079307524824927295374221485348366113462415013645397451307064437052370391677831587621403278983830456359442377503807564730430977808587204693441486059806414456349830781300511857901040732212806936260589004228753377908621951459225919804056829914829185943124894576641144923749052213558273393384272152597471472586267968987724744298546402154109518330001238553124043059315901265818604094008208028771737719358099489147501784428338098920495992093320203003944604668905907753874007255250223484842130751856247384721268489675564717277631843396461997211863356285733069688342311739323584341256909915079142476125944474858998467581954867069946198134267441842759888557596498261967938551410476396294331843685402264798901574115927510653304608415679353109218072278631950695696234419913786794236804367997643756722677964647077615123604141071446919075208709064270928936935997938195149664906225257169210610824467324006130146333200684774371906580160503146370436124512059768498999469825515551682720188132973760587274815386616968931059419213454416390950157990559075025484833913611246596461875100339740318806699764189463649839532254262050010498205644610011922639914745232137646433527783528979855327952793786030159901825527410654314091142714295476906469278482223339620350119008651691078660606321596982910323911232949089729686826045649026669916045196196683793684554147231033816456177854857081724019996979048752937319667791763797021004071451690536785082868719874342086019364850185690608285631466070163157543385746804406855450737345388664439751023159044532393690557150487080416998420766911444887049060955512296842539334543447673585461991128199168352793714376973285558136075701966020083999434030991868275851684931576177354390473564369177180367793717660908314930574040840723586560485673514406290100028273792616220357762214437348216170577487454866040571596915207013852512944875009921247425459255552806348901185760555678650486709308029998209711367481785628706842355870626415712050756401666522572315461065675401517966573112612068924066822092006708019839860262652712633853133302924701042898030407698175366567802915399196813350258559551201461546261041080262658548009867463804620975019615815489463893802276797525652488854293926295869976874831307905782271286978696372062161342209979229179226053851316513165709747928246810879783449472294144242665699496486448036109166726950886065798937554872566883962108370329633475221039956726136017058515728566258426587626466010030536235808905894697294329342814701763438744664835877717831846204805687877349873031885281822962817330861967174910309928740700653293016110111518630020410745170443629291167887237524264889800197424580873656342277233112820463315921362792291117989613118834137790868765888187939619608539558848360809121433760593575655716759541242752008971475808294328175633885778351963848145556791413999887710174541865593095906049593374615324050529918719637806361526991473606596045619449935993797072780688594290934837165834972301604963261237238952027052512850905581144309750210483966978708006959324456037558027071674209859552970558496813765769557189303960743571476948523008774144619913182938958651311479405001706492219097302095204938015751802908619121744036861874793567690747315656903515658198781310498269159015533302251029656581240663466772226300179058825221814971576498926235829611879560732713958992929893764210959269372699824398165548604605347085049226470137059335024118842461849380885067029385394215991419516618719024292856360930602919379043773028845785962424692883978784104671162458155777530927045782643558142449429416676571767893486376629614148562359235902319326602241456746350814348926823034686693881710029866034721746391538745790214294037677925110566667261190637231478120805535039347987721161877403131729666577275509059802184904496044679080819445429543684034632816449401715374914202037408450081202668715150001226375122359185048585866021632932253590822211073054000239531355992259965091010671671280293820495970824972323901868481342286646226379487810567011343347007623211154435520533270451393821954943059739982815783838815862563493592689352362417088408275824045616260162958762670312398545353211154216767277410292961626476441565599794725765725300190239348963047305397892112376523909270032611784354523131694745685985098141488139569497690629132240514225782784377122504009968449112829048721902048708816197928128796056844895015891933012723359849604727567698152168516147520303618547709342686326937304671437902074310091172366317329750351145591615383894711209247182875645626467701134726440510198551149927876946073553849508612456074420231199055155468543635876917371456138754610471652226081037257517723268176791171401828502208120443807106098899107946870977197551062014185078479384550710679928848156384240402045939002514416724418472438970719935903720034514157734695424613737641284735595942791155299023688917162037327029915907583066268973779194915537269657498102100690014956772540466737739926455616941489006122340806171297036795486238697271510969677617622245768599413950115627930495271446428708640754100421464871186935281262712448548814790557557897669476716749955510322433061924182084508667524828282303045866982664509726339579220010159287615553185730421930678809957887299656086507975468359225201331604736781816648995896672650411316403565087186358348537319331864916896375161224857555597736893011100906418379314886500739386274861775643214713063339804657190774054128256338547758401227973230499223992855585473746711597283789163151129385474548921650917304928612844006369262744670033654121594887082131355757881950890654245704731080805994647893133504448699638044257480583037652449596965306818467655136772489707607059878627137974508588242126576706964230933145467322211129551319466879987129715888011037143635153573882220561382419361563733078579589658745202065669759277269108155930171845169248855021080355923100161310499871648535438393719413876241556566695662840129578082664508263414578034621616847206050946547241811698852534970780274967148557469699797032954392209492459933154849974278364885701151620845971878735479671716344524814072489471353487382708929241464691317591928390086192944500017791058896877581601340271374427617772794537650663109414694539951797564256666056581369228248832894491882413675621092391147382866667876713048181235719032701788903851293358237450160172026141788792262727790019991018526511304761220862542856040960171533784820016788677005131972540071717327629174784011310763716471369833195963835201063204663687409939937538157276475008862589754611834672118793128311065810925614006645966558245906003494815336207840967504421657691864439917403854814821191338295686741182101584676701834015825350993129653919873611857269988067909557730782912803387080853127445146999045802722495625554088689970264384663901239237270606305560855793448706930289727493644378385198878420276624320792803602024406058113060181672792908956637091722044034359116603807956572359478674029578998916294839578568449721367207839740536652145707718158109389354038146539056392240866297689207748457930179319289294301632633660157605028994858905178347129234411197461010110800213189123017712367624491294097577431010825603261836894852298060799693127390789302105801857061890668503638049531974860696519683643657891917974034059720783776626169508048501973023016715050473820640729334394041475495060742853561528940598218570700214539220906716466689355386429642605721215033573668983360840272034564799799080513544172228365754945757515893157624464339110266118043390637236966656022185086122537430512309848913767964020427397729068701781987700542074306373035624035115974678325953704830030199886728106753047784351665091832357417674547037029540323824648187662133802948088016764359716775046044143864718967197233262114574812937765218227792518494599341270399451766971973681448311702700015385765237672801072758924746764727082099774486771954325224298441537864409021200982492716053988955927735392805821420955591956073466313721049141676208279411784214247008638776018087339162206337956889431082807288543993852499441037035823121677573266331221180232185008803811584175549744632031617407209270741648414029751400196356266060087916903490957851212354585521934872077650855364793926355944838244917909466315503358648192966978076183557120682798282663552003436792628048824790057662341285266403941028325224438024894089301382211057118787991224519407742001471255598194749186503626354646793305568930316113658133585833424643586604388506419503710205602461175615705228144068778326564329561222965384199305156904457255931723998329311592000570084306361100969209957852654603568277753266889277803391201800831479223203405275625756673522365245576208096369660140167364182184444709456879591515027759627846128736386895982068541824290716750004297814085230988891735747717014626195742404567810904469452803988900203469813235399994810644153823101856463451600976607660394317260800465728943282060919944589480267186944269627295719851402200372028902254724368698361859215655169650032266535828377760288017661406731917648323653670830467328545083514503687254376081743064333801317879035960017450935067955767383253416714029126539328183611112929956393307339981835397184521231612589312373590615595882197185227262409880101055843116413366395962578245507201326470816404305345762657517746252163460039536528074687518523363346830225746299111002354430199421810516829547761138847282521943399435402604916163896283883961810910313351696660207834786043141167883610231214931168176569081589260844523481278409553569461304557547255400267030970466091484804468949114268996130462172568848939856238503567174425896155213961075124950426930039004296154602202769376117497111625109367818990999674081859746178614088753893646833524979279224894874895040975467795765584780462906421732644926431293925626742215578641633087127935874934584044905974718098359368410316243948686746722306911017949753400855905713635488905665567784980381671316687241549695966120244685404660667567624100781890154273836782434111086574827825380323760532664259632787179339568624128696138671153778992770021564735346816124837599655010544499194308099477802301602473326064428408377311786580331366089455895793976436620013436563900406469811039989168577575790458348970348901169234043841671222857956683390228535446554685710547912453244940420014134040860937813019095282698239366495062244000199130036110062521531556519028943515491916390184428161805280227754263382622155172710478955650718797757755792019184192283895953599045394518696978863324186728426683598861056311290613613321865446200991992836575125865709407716733707922035651861577509777812682319696141185488304875666574932213912694121570334341183309392955358983395347617777047163709957487141278517002339483680102150689177932684158320531048732367817002881014466263640032864379797343506325341541778929315248862910275681985559577840609073580645466201746834515790567455997739720866692387396867870620784322431306127330296109764802441623920422270755081023410114440280855629025910137314317230853347828438308067960775185372180259048234846048259931352937064344137108086916483591010681997618440976732209195867479334445699752301372269158706482201005178779060506020698836452631315337287106169453825433865542713343234340042353451927428464960181771005765024477449011394218681303151804531337243316759408868675343519765596538580644973071090380991651289669114493509190515273207006646364242545111410692518674030333568741877097367485445844615850386042888336754452422673838671406467475908452065178108921357933906100589761853012259781644287280897727896219738587382903731513245110731425325609301101919627170791376760011212339891223104468455003207946888089939209555274410161757107434148302439125651107214558932563534907762057795186306674198655638376902460617525947761787758469875463577148460934623503245574623312210324685903106538891800598168012575297892869336980771765397165103372161022693954885791347302553092465219597570742172649457292943034678824411990352371184611982133277795225442736751859248079808805809137198245105607265944418961881396873834396010667271249859765559435083617934893760923145889294875404328785348800690350100778394449647641337148934370040129482147795666056543785523636501725069385206203452008230940216179464017954757410525989867378804526051334711561485893059227230538477934906183522950873720207387618843380356120134323961924466245141656816842130947726250780945306545716510390910242151661607128506718618574434859390940677806470890750022816062108108430807673492267774130313706438536248686537334580408816385043531388288612609858536153757413306325676646708886543554270539149956353209486684670865550455378402096389306904107064303724485540299848658069744012673239815158838868139684782428851574332418514486446835003964377486676931643629947869539226198085247219807417570194718661861110314046701893742385023580732157787333063546892911323619741993896963055198176927490584407685938790216022799278289366161553065952076405692702565986968148595092363414109277526406666158965833159609779130274086381849178683810449451505891873550075254185960329277119891580839518034348015494309464961613010045794209393086614631596225003322907264439771449235750987402501699289981710106121648793151313869022891167558590207642251655570561521163420000806145188839383801398201867869611344091265809244332183675025372810521892862366296923253422327871898194235356570578026781157185481466553988599319700833216379897104706098775967706497179403271592589909289507698845405309428759247252286092005375962713082996217753555073763352197378822348517452774671840796557149728642582242930651764588263770507153780174338006013122335855059795155020616210104600544355085034280219952520935489085205831426043505651151101777009154469058469689346795857088082192830853256165429492962189742814494712201171264491707298685713869144593691744613030892879740091099007849069168826709175759436174929369981630990892954385326968387995636869100024451707799515654570054495558975650423881708850565510279353083445760782832010114327768771635139823004231684408430503023631196724245517068700330121242053118777485103057263655309651900853454132224155813923370892357170904914788368151504398620651707384222086622761728143508532427191627604627209817684642884288314752524871629904627637575414136173450862050038956590749466671289608133564867433017726012451088694454563565495526183143626568449474940790831979451481737712370739968103983120600991679797560254382792180240963856078652175817339995694970466262519549667461408080943020841835518551325128614767480171214564836873990388065441498474379997023701438934775836581547233090286786771799568341016499515828343820716383703989646194202265514020649616862895633324412312225216200850905765140454961620479522867457384141306379104284330095990728418138972512439663716710251810610183928698743078481864785839157945202903347319434758962762089076730263493019839760849118924900687411311430811861884838736892850630312981038781176537276689959963548462840348580618436568350028610107460744960093512242610302035369875089103414759144063880727789557414250265270514825505307302940008799654520165217496399610097306349545748395189931357536112179691875868967952414545582025798954014965307584429905498625848649154849282748193405865969067194835002788941385265974392044699257231004099620250512560337292177234181705525732091155398900874742641796185532852653748119600212156471168012514090750701155843339535804305768038353524313226431457539125977071189954873549613527840512305071827931221821258970988696165842102020191175994105187369747691330861887114833328342475350689480400080420758943049418573821897832583673850882123069467390722325481320298805094256716683036060059963616553885700576844318907544011267761620976510032307271111314868665132902462024423602519749075525590546784818807810032903890398126348427229851222252210851364658593018965364766601904439002812490489175054881873651694900809715023353774374535345130838116028377612894282432384006169173311839884043917063420608535543020158437112523345312576043808258193856787017065568922799218220445180010899970932722297573830468061737092648554592666496701346800963081132708124203989655433464137823227043026408428477831247554200546996167395142243252188124268987151358548782408985749315289018744613506874774880813044226428109359049033650482030153953644102893601176042336866780665739086615780397419530650653143446440705438872648739857548054485172229725458820671745594755540057066372232770604054598071586975241711113108473538638971249807142947675214873759315270873972868581016506368747239329427234375900373949079155796138929827338833615491932638477966133588250787509608357879401796889457366802515318307172179219149685136412916332377551698725822843440927069557568247996427702864763234644799245788982593434928797101643829698974310662450511930877141360210604759245143610135195104741489449126161771757671658947704867063107143342093682417939026141270999630061567027244391386085813152582487603475514299939039630313858619037449384261440122259111725735066199722962228894754682758132747331208516026087940795257938989341714502965574561721630661638209471000674278039505047740570608897052535481567653015683206014238095172101234791162722543083532259934997957312477189382127193481217665103696976528110876604694103246074207984433903490922883244217251451856099958734576605909511503973430761916467848556400172913857395081508683153912475569887828202671175015145659683845427245043134994005839944368912651248732431386643680993971086586750181751679784934987189384476747669388346431150754488018689442532096598208652586119941163682476689725752217784155041123811514739732758491719534614039050232973354891182901161311500020371414051510420540425020055352141101373718758215524138129940121448461087579812229101416501280360704419665349189342714308046523705308704803040288815725240614151877507501614094463524625644459578919000325826753208997285264760127564126570374018820357812667490667063029521978923796217050665545173576035144202456526033453553623767399383738442639437790765891624486043952982885131265332905339621250058971128958411083946651061415319986165004398036573125735357415355635866903467860724982856703347575461307226732500331042514826918841050477329619375904881829303919763872669203426687904825568688985619547442200722098840148069703676117705299392053757950818695942698056725777005775232557565471428475430576953940082475564343912996567585379035646602377359547042847876337096257168540287514954770948492943781300433296388490467260566982305568003373216268717446641011180807352089483165011199845265411589096259398426644296283947389911974162476254941220882413752775666529581725604596192802782795269587768130412359802593672172274641570883593518434866156972175398751849186110908367134846569950559450664625402996679781434842429094516634800719004772879408628134596471117335054193686968896420082799197955083767105425685681049350706326061523342686071496802595488079402618670026612036954804598217343586942923574620131890816726058873497435409673342267158283278701826695050951093154291326550153278682916998413390497144396058208708220746218618966934444597463364472902765460960450041192419346130120556919111852384173464818773472485764236541725183307828501557326134262807824644323142746335256926061053187756072383153893399579532491320080877837262787729660733290675183989383859729054503787004434287387686230009338470229382092077362532357796804939245644038639811274253932743649398722793636594085597419867381143355361818247109704204509529936997640438973279286607786556749618688297861302504512361072483119646993144908809503801188668306070123343548168557808951420149224425008964769612269646856381809963056070210734315292678138019024956809129193927456350333412580843298312023453260727823394701832506103533943316917780445766013597766512105707445638864242638816432946243892791748465501261653249489024551412837389019346641628992681067792187962020480685676377506799259174601616439898367344310704506337995523275989624069090244893431831451859344541762593856047495060463548689455083531241051113759947441067985900906415512540182155054309632410869763003893201020291450140854629620751999800053918273476478913847638299250290144197101004097100987902827829364513328760674888959637647232031527808260936136258066202473080930310215157835069214567497545093164242943885503436975047726566694530058669506566499120659893702715102792902088836077546076261476409116993177461105251352458495123861996252805208116327020932802846418053655117980599056979020711718572420322713815540171177064699084733223833978459749360754639457294907935899435352639275229574553181846550241585022206265231692400027907188594675949543050247028422437038855973023149498766176120506644361729735436689155414563525949133536729819023647850094625638916581906751967893179543328482447877121705589981164542836309068408718744670821094254914709670720092132959171848604229852343097104128197988413414298542453596735103551256332095082176654137994930248746166921589798118192252536727839512143790796562882204163441776215321347952698049321378924188045681248326288034694620561852160899352458981555291678705692025473719535542570450739409518639549350927001010631688198077730233979958957591193359309632409930088715019567128567190917013808599987237109499524310608215042295086150644258314348581340428671851936829747949329218580378235099189626290986684187482838354412770024850476879506955052100747576229057172602773671873660832926821451591164766136380171972214544338287363243769923131079754571309314274481689915146444158105905253897997423697378876371517588610391637393626903313103099909038673815594500429342667591748939701319287972835660440382344036791813553932031213119059103273899936650055517888016955325048433805030377202140002318016138333856700413913600343220533114378293293038916595796814350199387244967986328420423577785534433471136821319562142136892226874430428130616629690119932181161811199704007557042640392339177389152826036149952033745737768303606444548531950133900782272070072646889815266477835812804271068421129224466829503685356086719875041448797320556774238320868147847063496066334278966956213799090659583988091510006410995740939755178512374392938982529256012580665804987295900072324283929644771602071726808830275020814653251011845462079105550751963510378584756448562645404680689488385277219393214747387272627188181447019431352157877648624693595657891289180525787366391813399420183195509680908187569789029697974373459729171015531188048354608165911979536925098842223717821622275913526476932651186999012757612529893066726825683694575246273449135926258436212553143892379816613935024603572744457390133222886709710071993109013959326562032572245706089148994080587595807292555742089148306006510472881208839847228937563904321343928641602765196888822252136603399836749553532495286773789122639685377018248895798038435952018115829868017640949819646700262516467820392439305220024711936507513275413960524183752489019393566374123030006538006408951021785154860838774308362296968629544696444007542102192936978234630560728055839737309455490762405710669226261537619941223503216482283926867936351143486981204822693883717486034135675562183099113107176637289247670299291005877460919238966036719336881005480312084359418046784309976466878808377734745606445011556180260993158427981535993593065393415986523296022208370771319455761513455245389972458000106560441550889944769908174918679529397408205368950295514463998211239035877665923743393560357050101144727522629524343559178676885006920630353128840768764567476905766312555862346956265977996732081703966824882496694516060024255398229845837165057359889213610801883938052027243572682531027217803315987016993353003212872369830173927726962136491952454053971673337373534496845332171484379899164102792820729461022227754901027907152762616602831719833533285294351805258923421113976344843439684054975815583492518433323342943438530621419414065814437344847427029006603830932687605368297439090357196207952342422902159466183454944267751477961954606806120337653592270901388891520933944794868288641547805959655820334110730504970376658225931823065668611939339279228753219854286236895556367336019741418184153523023058852306493240499277993472392258794797959860224744461029852621003650817050160918401909327087007126613052318196804223978296946791713262070156315824522776818658194896630087306140268317329892861358039833879593903656587593726652941146306258980887328549245599919557160888756725399845928678093427784493676307968071917781360295091953309674325043159974858473161988674422705825499814034835122149348277407292901462815999445975326892524899075963893261783077301838001032411270232668824617263181551235874501803266415351322311337018231127833356335955164903042661713033879362646629316144935569555913520173726381385637112499400255949920005652812071297615546970121915627037661534974664201971941505410561546812614532045223570594996426340135470790862922558084409903849944733920618747142216177785280892383994625525619990553488129582168580073167722534339555709791003007638401337920492105376072578273141702430202503837705267278691750455468442047537924905937000794726832542282502787760711124360193631454654211808056230433905893263730320242583387036578044327429642998312125668151681821369698042717501225615418247158669848241302784126951953493731989630726581546365286638193880640608405587293379579701739620440062732816549611710330608654945541653695443993067904170445574721918885933060035094716549086523002252798443149726039102720133169468277413281487209362794565987092539438550558197709056430297021070037630163455798969267315918084540803186712844615969723423076283306548477511725574321073667272312474458552949277602718435028264558966634455922458224269290045574318602509546165398589301547439648352446999434288270512238757702458823798594970541823342004043226428150869324986483763196172067990165560047597607746697701307025956323671406341468743237133868740589643302938566393503808076030418888574331025322168366252814704715673624112807889470524270790240129256487653454810049367775894282059906972120286476479935431146551808989569538650407836546192874968805210633961329819468279462898401187139358619435698439603551916988067885332123256885713548125468547319807354540250381224686228309106607726048275741628188198348790318132899758085811272543471688796797092791867358965482713760434200596626837671962299793892835807548164820169718391439238576677085070546922451845181787692626377765653240700144190302769892761251888157549843756700175418165792167289484370397883894030330039864004438575735158931424892487575000249834588751139480492413247187909220510923592555159593195716896178668621298034316060633362570337276523882207955254636320152731748462707986988719007683629384474717997568520426966500693778357622167997320820883435228439936843656861558975896619993403690617366894299645344205076999608445102619853336409565752488637881715168895173256132314513169847225049145698320801777176761889773299535537930597094440028089070339410068279124997375764298705561167870119329138617451534964555097912149149902574147999789744249412395015697222927004621427411730077677501314159155418036439489533825660833329800818563596277929084801335751509211580846166169928996130289564360167301863586634734186035475069008562439532403755991865775939674260317568395943707869184198506512762178694634228899074089203849219439208007018503982813253961494057481872361888483327593864989699574312914742694270611505632546921826379184844402766312923016458032283325517183492271999799684544470322157969067251185293982880932074851284040920858508368765062303176872916719885976167554535431097228205713222988392945558377519054946051591607354679841408716189450900212629243850543567410008445882175519281436365566194066714453756809354521048490854362568658427660217363294524083184623191807003757416428059174205447375660949459919337809330068774234779950521889090715767717900668915288987776022377795314218055181043861116312019656377996583681208444195560325942675647660246736463179223964586963236926852562805997789687619931580444657691056768509375467509962863500122804318469680396980904593561257733133114640987429908392224016070711339730727390773906234154610801596425683069146650868399380029665105577270070293659785462286978271669114519986687462167957468002275857148309363255883704694821731112231361282556804041371663272436131593794586432731319603052820496148355576369580917465256683176576198884019976687511739602454540226107152824263287924150659580429368503177201960263489995888036677246804990305273265152385804580003796140649386412263194836667571851783922169941689062044784978349430669048387160010189109693814727116073999076962939074897811937567313682046302736665862503051314651871566125532346106727629733607546936281088579521719254345482721879491802380562078523040598744946366596458660037775459660112895371902319044145602216871913409947289461245745169182286574690543239720729446767205520391507430378466680972191307381140808644125650950578727798508298050888348473572186403700864225841365853738869506998969107670202685137358909004715372270435446482805989550821416337605531970649758286556219436619063505402893319382404946396677807819674735506538260163185495410528587085684649942066643915093923086444302346359704444302038644882418234331947467049612350052047033334473557847702012716684840638787937634552304857694648622564938036620050961996601157234144900808887129829007138227751578414241991619192647075997790939163373749361654097330840706676336834329955247550700105192119068134519227483634918093553808231405547155671728931533975023458896008093426364081195024995878405337531496582329295799551589941410775251463406165539405734529968688329714329541096120013533891224603963619108123791619376724731265648660122945746305685749754650689131249332205948463037052764589025263882702880423366481883209046703422326220247265996098326083266479850326853417769311981888059103267852394856523752774911940533600664142961744083848293022528376064165234029097681120765409117824208268693894965569374321547161215305135910316871377948045688596688521734277002837555750148740073148562644322106331726461571218986772127050686259387473489705504143124005622336862207794177763846752330330182352208070160557382695557554527035406301888624020397271639568510318456303035993937348741802542691490957815933004407148898668503590876487496415790946901340151599022224146829846062104600316189802970130997182125329188437483501689809562762448957901706041022615259349067772215416632857398277645940714755580595462898451087703954883962319574301888897261762306619245195562509013572587359665401269511090509558018610858680831646572599009597606378511841226477853917976368633321624268424612054669613541008074915450690073612764331748449393563932341765077047743700538115153515604022037397478842607351101559187695000446645671955144590801815307072579378542508935570949753488510741578994588799797692349712213540103449264708378775027925384788893566059330055510289460491678016749647314591912623952629811366134996398528359948538433920977666189295349432770517293853546066040802700064619133557233379339003252710016840431270242789530643314616565008776598018594692732269853640079625004025801947051134734872773842757388606648295090489661117615194504983225455412199487355773117698618689979848358377632692684019602444589775961116947826402287303995519270946563698593118594501229114386016264145647772753318204111117522629636872390786107026469547953104883128823622097689042136831955291711671588245171926028047219492229586043418920764531270245058876806902399512636309959360604508750556682155821446984442006582624123577483540645528883238845517828712152729862090631635216886933396168717879636540421263015383363683437406146059947487930617743895966864631971468853815126907500021561697431577226098522860540902090281801585989732605291664310489810936277183482351337459108080392496381341560885374107100915067962423353102490549130085484458580086383107195551050283757791192449306399797443356890357752586203486497089630871755302546591852044559392155385432791384537396442987637472876553448490043615168678723128865635647544805923635834022789758714037864958895903584204647637035609102719613416456282201754129708047649664516000614109322966799317492200409137056443205607233368112444404164318451436236544377933039418531291106333431289466302902608143434161837798136191393154744195778305531328178418766061844645357153774159543709976661120964588521626641856907000641739470785710040327924719075319721138044360269275175992175844087074143571637591069179984708451738508239276456936791997658777114365649180409160926303149684985370110405276393283089950446977486876242099995891951067294049550147922605314351421700351043202121424968721511816373420593311321515255398532233238691719709853745416396115473857136661259466634865071317317367754705378582647984662087569953558169848822649244541334317232751234548287777821547597574614861865539257562616375034552396810106615542275203356209323818797489889194584720943985440564717110827386009831534379680116339675338160018872068532487313672153357083732742749564245943881424547317038206786200726244979949550142069439470634319958807775587706905812657996583832274237557820289253878572283409852228074585742491176940153325684732152014025320270570603014728289739081183947493574397966794997148132775426720097674864873100155930692775438645709880243002728787938910337005640270862731409455214429919627302691093093850858794643542958356165665343135576329357616367593040795823935388786764641932276367675902331394532539337915135842612710531798430126518826184179880636990451013262228504214551453826864856491207204248827402107062187523055415411163932570169573083876855102627066440107884868664115922481321947958965997186434399259836090738574534301241826607239215651443850907003552627235116414198016981441904768743743000731863677616282984390798100231224356678486857205298790129547131823333019744514465335381535281824851353536628646904959211543252987202785826313360745552273646793738585653591757385187556130706663993517241508856019011776107298165149197242348865138780653965403947424469214408407989188592422751665957554862435952827834678871275229976389558446605347406191620375913274965530718809438561395545264498549112190672039860497166318129155017262083177151688914630476287115099642130208551349328881220679572882918172684665851210852037273851951902119651855139172973282325225977422992325190418218480570718930976241431163706063749380600558918395159553436380165626496311684827853531405294683105818493434340616685147473195288312568176516890959198817978692953660936010095868155496320853651184446634350384435306033808993008826346974701840357022857804942393451723902843234147855330661054458009914403127200861083147204809005672015233761116379821228144126728983241589269109746569064307058272313399866477249632605365896874753339316725192270571242943985080193957886275849826733851657054239163078197302834333220234650836351909400679234580587616609032023208258856916440856357374157141750083236172560634470205166654070479176652234985611240517406773520208503609404762900798570117557960719973154603580838180745599282344423143197953649933529251281841418719118566513312946078418497545679644061402114335597057529312423617655373525811471937173186832836753919959053990461304437120539202331220706896879929810009447866910115609147229835778529148663579112897790207669540931761443306581658885079806454215879753833965928094492466232585545980421391628207693751211450134383263037064769550106204564469234775342218102518922550917023684842056283211980590304739298160664054902566948650578976946736654417350128356518496828107238681930262872334272684779984395371018231273554070413888894809024916861872620636278355322790631064998687844935040935655325162251606364560719540927456975139558649379683540576507229936999855006771903143006422719744095587585506811410233114178950280199598965493844808100172177624753641412928524392918733304129249524646896433128601472613693346001695281182647906086863048442929600278996871388800557684217016612984041230908689751434580466233884044441614996427375437079961481143615167788295871998072273592547492412047022408322282614152561351169837616139554251250024236450594676379393633969558365013870809619170682111508596453555419948282971355555870558889996483855272953603534165235180541149162915390187522435261287143931560763040627116305639942098763538322353606515998237218249825675628079741576514660822555358682725290333548162348827313387578775952615328762820588804712462161576329819089760792157663512653419089611589321545407479913911155802899025619427144979009844700021490116807228270450168701266055100808854525214237046015578269609832880649479438370007257245125207127157881853332354616047091632484954495432374624610430972025507117642760839390585894170983804711390729773171769454890620482491565272381688262442121347089560000578167479645875598481676487656598657925649814300643287548688002369069897364641912658637718315932585607907245356176600245769669305460207656797923829692797595636558184575346232584866756562606807860691370374637291372941988575316107762191781884369115899641803871787870305870438176068096079644339447781252971139218395243578692179287168100088877820542707094644041751105158448674635162095872335862111041676853399219933252629079722604917361060420721608164776616593057462200149548761932667936022422630817760123803875264453140436933482890510661095498634977486161847942973464339438134308705110424086254141093894407802907172276347744840553890966020481233190519147568453981050652608610606015909687859188140827095802398790832385892856576100142521125664337103435882691669807841843089955995080100966970155900388351890258174960644253298548328808632611803455609993894166791559617743609628641273441147167872356393061025949989314885207428269208484249252622390679723644845993049643253635826386918238082318497219553799895645102320278764357674670937685696925433030990817109275509793806456191578086177130791178635060920240541500549013877681336593375189579202188829605183023208862663867323125218233666562304777815190029400264468260838845018283377134038842652738246116494526732621198927044869983400417966185764675450844920285340043491667790693574791634091896698793549755107245146074604731996615817559917203496697947537850473046232235729286301524585764369744202798884079809277956440562476116397814681902266152797870364311614511273044758088580777694904987814703971176395133519648306742611461480105852093040904393600122965981674599182077506538020451318582288258433101793973961916469961368709931432770666512562657063761046238258794991918269751312029207073585498027253958625826666134636380496373380596624203170642719374496530377916960619926115566185831940075006892380922289385823497294042200827990348489419147092600200469439594792018860894085996474964380569629129280640976842017700159681823643262373271239785417543080368180231890049898196567446757714900074141416210726711017221496606988100211597852402231918176395830461257765987171748579115310710208245889561966569389267731696485922674194780690262672411184694726074003993994204260072526465523236263498215799156257009135413723909727839657015390807206254756283513605884671436983553463725874601187462437548195027045839085690652967155940760137581424389843707789447809842545177291638503712622087186207628170644181844425795789680589455541873499340707341640576616882359780738903399785284230093310839904551962231040442291973122668653471473067618350268334411326852535569403619443114759673523128746110564136065084241391100357746906514153200747999812670598767040249889691591181456317028567541724198888599766838271282548655621884795162356262944383793501739736854098957835117668782562056684356026373365302844470528194588977569096924726459154316420893826426428261194987949572980255939581711726608580466213540306323827851585896422636296592722204571466180698165929420869810675654983536219949361186133080833320850912118078204512142829215238401804090867102950606249246117906749827149789262052762862202891479760427248201048689272719934049633584051438050741570998722000192616547534844185064986609752340681469633869533210360318580106180974886207923765021050450258062570883954813285617588507873896126431339363399625337703421884790392134656891865693774851863096322207251747011476890978331536397645687192706979587078810740528368134103096514453039390155889320942401802978359768201530097654869239118718409780128379224833228063361085689629004854795066305149708010852246396117094727104813700907906133010434892661692384124160150966199384447878322897692890593938720493026749688539776323856694827396305102038719103922980699261777487404023114643658231811848293422946335474600225064585365253186259717620481456793723185864057763851800125279837665748108554633114080583035054588728155027293188066481465192798251491821528850369240943644057658980198410556234403121916558726378929063910786280372389394180973755844936393629738944807068048826169844140092273568361721086605347168047650058650142992760124951008680753752221084589484911190723053848477229550192067540280838927424074295169800616280092161637487861566715175529642656122426734339816719821836341950952314172871686015958997589391783330728739478999958620017850667626829821195451417540263397191949429317799351915062757802447465154128445840118312811446133241486072773571424562786911769053562956941571127102871574679675677727880061119052619831944641062246646422532125697372857808360587973793489331297324313018669885167816590820284648448855582457644144475741675128611481504957672209693940476420728635644356427092112660227814384261497396049723747485176406298062069525637572797249779467513736474390322241798602590081262680180807083934202854196318339239103558892312706742955102695138668730226269383926597361828994016019803058879026566588060718132983429285696966907653138968188051984435608256698464156487927558086459126160560383997805465646875070835580780358034127047491815911828478646918764683167548275002760586543792303804408098568772011232217319341487695009870563283670421431814619271378039444976139078799381040598020488907490164924758728412749019015653924879490531612148247770749841096602210424954283484520592002206090093445682470191087144257439130427547313953667252864039219252667762828729571982289464613006171151984016809354270052788290728221216962478742199038619899656187863525201238196512413535849970826686251497082653364516684983805532603060735151527817779091601350435826501461900424615855283812895408046257949368252592952800031586874826486054932151593715437218440366967178128822899550256157679004287446561365499758584042880113130243114228903703961870936605339433320948719925235669735125138608900952332942395680217761092819991663136011713927930496720577929189851453776562778743844100528173404995423484650949629624810248276419451237695890339237906288248390356182044624419604025070012387650015925005785626359082144135284983322127177153329969711043428316277177296330815441451288708211224665151387882271860899725383628045458401905481824401267411219083486691662027068201058927521773732111741353004692401128176721427844640042342798429498686550822663672258611579335564190427278850007749077866332434838455634232012143680439465448587150060492180587794151671663421012175084109253544190800416359138388838263771929518448208834936002343708979987074015823117155999204354909262842243912008193438349814126149818543994842362456809701371495586159273284521984159557885446753259764229950974066055793738776536046325072697433947176640608653832821954388803379704124339869847462747596967165177088469994514291608774955122237088096053482137219136838928552234802799709114615363838584313717062764262905648505932715187298137140736625368809522335038285184477204544754162077097370472702959759763037954620473628124675760648353768631550509002159719827623662081109532751362294197713972250675054409676598634211409737521936906626871246971057253027416462128560085077212824183522360252049178106918974080249370462336513425902936191405413538551162531394143863318714633592566715167314038257712996542462709986634072115464095411756674203735811809656577212496233339113932788073274084587299909377055648720955233258523945665617315187090979751376100126743629773605213391807712954649818723783310604261130407894016506347114976684754301081643734469403772333375975382313865465062010019713869532004893646376435201997268018372994953705828811419070175964392194215562045895359214290160548319558309874716769093310380948502090261815356227315681979604883482055751922594363637333355109471701254247794482481157917505375113210475159918091286176174096977172521827215457377060269502923945372542618022764110698609631568328408789915074920815576552829236217731121288481050780898629860382538812355651992278811599841079561606744591891678128342254865128936950733110962241081967954288413592630224939083371564229094107880361396258192654039389424543507638092548036133065474233980688962963823319388409972950486969643386031610336057517932610401181624880182624883976739539731993336777766373028958615374944173095751032866112024607502549102276360951430168563090962143847719997148647620695138181381678076803876470942739563807757312721594638045272478451752607778820282819081992562681023344252901652081153324805930354046380188270707180028537452401923221247139566733271347317503851250777613086470657557915445574317143889076780538785519239138546574626830259283621079723235562911442268838802095895714912643055315095055562764416806882921232054473255745727682624433478968474875991397713371403726404132060013257990451937711529231586274191952077814819440689683719986076525153121374230815418613227245578184376123500598112884720728078712245185177894558991144135195780876430985185044139488689484115822099539377743210234732556282959604253068121720056039529243478178572033510326794705066018938802604291087674079519049460653771286654878145848511637637775598988780481125763651261427880990515494441057742728586295451411432783008490802018884973263235578986368879077243509692336711876544737151573786711388083157375441852802924672044224230863261914273706666675876495746541055966013528918526989299992112956670285762427019294252093564122679449159891761912824893881901125698512884744833652763325350347743171683157837190486307965268025129368885954548517094825276641623354404569656267009330680403482039045381155342761453048406791939870467820064650937771965644318132586133534258852979645707597335997460764758620396116003801796415603690176571487258829843828198712660277224151602471812219768675636294098057283775901966186163756864183938038750420644220150822721401701509795710205564382607591861090422344993424310353546060849872632142181841990059286295259588640794842171437134224293020244171067058296728093368219590616567273761899613356259030494787673366234847802663633928729867825003675566624800708809127087194419447186909212416739584393111901757396944214568336308039762760977781227033394309237138726522832193081781083398739885974039707801675942952269422030098696000147865979035706479109566577764322939221740923001715168459662636430464614207498872529199874598555831378056334853048500121646120337350642249868462231597018823760907582956385169236060415542821342551088216655806957767155650136184400193691405371275569487059783110245565314319139878057555145240827602721161927240279063942738154978512578498818372445909132754194306279824223945771077064441842160815935915080870045122000374632258380771898278999591915140423766223509033263173735656170785288200433994378435069272965985211675791219468193764926280366223937881747163111989387855787910294863469569695025366717623298663864226460148866493522514041664086919299022163624733040646641024568522793118326720230012252322932423105580834510219984710765467276840722117769073638246655208374093632557841352635286083887485693933915035614294717145775990271976384104752106837386371876735103168161505997797992324014025191884121211438447851105508505094085607077773982772338011555546622594639300115394816446804099413494753729812641021186039865555511394752772465686160442903342313479743442894862973861637731881228092694295432500493441587776952438218366587529058617627789491889975424948255789603866672365427660122809619258425132162022461395408059881077006352016414702540296576569086179126690734925691276997446532851977110234947488562237650417982744988053139493733331188021420534694526461756823313530945269553243458405175084827174063933716692722703057323748323998413831848842027650477625854752054450233320131723622226634589029765498533956925200216961558731590915022300551026572040126972291928916697934211875264063468990178906336313710618391697278757265494689524823141183254461545456709402669652831589448506811771323016084750938386411906402714536795479040914907353527565906449190477694348417178890954563088691915318760250336627790295438459491739929007460568067085446745221857390453870334645011675303332904052684948523587315905405003356557392022909672608963221509605033860174260691966273081915392811296636114608434003127168058449501874315779383368800403271053446356152906263216469572499557509773374046395934367070644861710758755818028535097676802942863566052540095371747045539386817341960081284070271047591335406188740234305877935636419441640039891803381674087471302962184828248866222072405546692471288934428456680245371529289646320676832789704279831901579916304457147702868071281034553571780066216335250038230297020436665836176919141937263699019467161366875961993379473685373967441379420888661381768005191171924439737405169281447563662667172264330625625858687297399573007717751376221426858644484711702829888672683517574957636244358504487804987745195235001505081591891190367225591519937003557067735170154798216542238779022725041926558174474301916335102458724085671638019973961627289330570841779107006040123968734659909157934859419602291786708723354428381898421283777114818805017888874868889355154540685447504303783628340604959344228477443695910429029222418476288135172279092894929635637648500865180574694805621016936129196606755646566758020528344481084549920931155910246995189342029389787129537766292130476271160996938545008337222546195787400959078290737918330181813935086564791590221934125350810231174175205987358592949796679297691356565640624876755146952519671513101997895610240367736582987566016330719485912474214258265736845478513688681391144688685576255096427263952334603236088562306865414681157796102365730996832521984450410466922270933312237069656087653251256834218004076694317680129344457581353574853675169302901391817978145107109902073215427439196744961733145756547512066349893831492503292524645019981869208245726497649149041298310526380446405160127820371866172982126744216691210999800521840794862370006642460275918197341521340834461831472545544059405996307170549345209017132785290240100361174775990538839417672195592487091213488610642626963410810229105333944875765583780351081473982629172645065668035761602987596471813985113317159613355961738979274893676927483598273466298383193104920927949254649641968394048477165645084988628035819897336818505552595898315780770165505896029287309165993112484935332399409719257824868666752601817210752337735631566606701556620792510040884461188264382498518412428591632255589770710790970777625483354962808972933550497948251635089058190736415227694349627623577787997708853930336648285950215774968956070305075420859652618377414128644989741364819916664615877351722480447356811494807709231207242732372260258244929879826554280832173302579160433590002896721231881273719692869550522321654357495875514688231614001070646853376513341462362879307313964227684698581795242106163565247187457327757632990871773763983860521243941026346118550275824008187867769215232087389599653673672675579010867979389191168802458969940547473133378134576738165822387920567075700692009326891531055472881264610717804118586158097730690235813068718784396352910567796664372316651737723022187528609219788727130139259979001640481395421735161777802462259490713644163271845417704110450425329663629272512105119612739057500721906058494235776510006718008513472794465617437723711293873333887141336583025170795016206030376205229045871120523245057562914615224964946057560818924789185602334975083452160447673368822423599564527264861216447578956369891322233723389880002692363678135900593288419214419029368996545645140610810783563434689255014588645722873032250104756436836689142943714783028279884256949782005717471613148547444997801091360623133350139881650081924599004043482568717549743357222180562822961310225547832324243144850210695552154308034659100681486955289188298828721926674250778879481992672660905614234106680834026064870203224553806873020212671443436007038871733012536925426092947601732998724217220268630364773996724955637024450572059326536086621034240223162155725799144491096161018239159364811555020046872327630234793377948228627833237002692976389446346062790723885188639343121417342793125394469973602617932456277291541333209591861717192753827844817448637995507628956989544266289898962011766653662106219251453157478975242818689311959085844768728523073903912464315042534240445827691379691178303492947613786119705817021184703406939942652976756004665891175750598249224509581074480115809842982337688127021042447742568933530410953378187837925964259465384626412697303714065103408465014260281109019812695929684941136160949324551726696971573040328599544810359046056239206541254493965850939223755889611704794849424060501822335893171208246396435469272261928051447801067116183111419901745637200342420367965169370984787631884081947660030959241843739965823230169788964492950448694713926778005096242384398516715193414568828831329461562636842275164399977204084121326184625049018179327184350258892773736613517155735645578511030319631762263648134981989058750402219350756244910157381353686472543390937661129357392471185592928967513045675920241056389175681825998932750180446351950587240063564967209447640554104043528906055436342440131334944170253680268517303526086906888644701896222619851860069384801062215370707678329415464222907407118435888572690916159396377362773425597391193217592315583144142118429666988283057433948540984716030397895308226450966042161335734663489370039264207047181738149888582705238230520977567674783850996191028362104339236438981952243465900893125469375005991114270573478450511499590733770528754485543252077080670169253438578415765539847539173573120136998353266508749718884289557920886107951268279582713660845463114478318816000686767262804630034246410591655512276045393941795182049990548607244990975303657778352455959786527144681153197431987534907897385392853122796935857866902511069719431159133538430873135136864757472977618597049641129967879795102321946760523202136518220237494479860991918561521935455965606907204679990801257061894145633696962189621940305563528410843144102891786680558883985935103562137080174088903894260940100059490387561374743717467528219321739651473769547760355960407614686587417219505466307386526022746862225782444408730302187215787914584414113611780326563430749693598631703956815416977255207473391640245908811952239198848775966762938209601463657518230141912469771873319839730355787514214048277987563287086816238542686698482995691936235366291491537580563334886102448779335012302661458340345239534198829726927309803175814793183037181696370100672543440011143690678907409993500682924487820576763998116942124479970098395124753440662057909593404114710093520977873488514530717310155574053265235066155285056292712182406129685073264420058916661940182320473755418846371258230994808790136909987414879840837700240565764037744578710345650187882279871484746394592848450683996674905920064830596732874594263157964011935388931455723925772615914689133758497750170197387313419476891245634606149267283632262390073911744943694134154094582380284986633124592395004271630547455257010627476446707670059847623793489316075159146096198399309715660632787225543914298970424927779564600531707202813342976298802077209652635084342048640902603349577904585118689633079823834305033584309855649303487352685160335639280114375317246160500292080765496266842101135079724187522707821389171125843272155351719870712215454031369523759797058377655744356628707162220835833385492426530646857602320881428467036266769605301617932421791606086202341335849348284621184950064641309570248137927449779111508766578844766206822076721462136042215381481635080669240536970538198717881488592182052606043770762740412979100297007217919937848661910339841838390209702030826244404252672906810291928613648667499318400450369452431383332983138757898042811612333813251860034293777196852980232404399757212935142633652188556917761054952320959628004128974923267010635460016277307706779137407849432693271391613455368631380033975294853264612568330480632789197204297914955286551452264176330934953113599534943831263931399483966433014479603217131318728439572565917881738890621861883442716748998998135375986610060412476896927127202008016761640640799428949942402887431232018697045672722258841105466710146143455162922459616572283797041854194665281884355823477259543907349872846247752690624747509495347739001682331809925720640110434325233074027261127315984335325517290064767191203108364951071183297559677266739336242483362186338371572710230994173422359295022730212834817775770370809842932826381571511629156765361326493852762636012613698735419699208410345380461610498607917463046207012739912818699182029721181145473810757669561427690987402408227427297023491745980031630238354582017504308543989968611266647364525220809047016385607068263444300238823998258374223235937774924166877652609753241559757954032425665576361073276194927250864446122657518612055698161878584644338892944028814100190465540993798779247132274035246307409862376570745705711413745654172014088156162996089293388355977360026691511670837955407520861202312657744905850951685147937580128412459644924993457392598440815232353276145179071223327067179023311761019026204024172151318428282503857525798937009076136456953947049061165897662332484967142094314487791898715003699108560927864807928089091161042935512877460936945052644260998387916815266481421527760292018788949569442951472750149202294847628421895372691233273544581501684614065296469029514591940457033341570640677805308507607216238982779289937170203043526658843560316658501775324388689111795776497024682995342247413006324442879141819823198633508772845079334653050314915526861844841075812199785923776865811930236096809983633569699130564749487742101784862334607501524605781867801538688860059957264513677537918492037027996359348257126474495745916606345881655210109715840981478128479989508617895061570934001726767631571326479299694684832081938910143628742057976763089893105261623301313373549855038512676958701922141448153185510290075600044610962000124116407686194593557065272222447191369335120203173234618981474134613164011481223754477300708756758040390226499571446377296448321726583628179683788506487812191047533056972391300605529103675113312716228548099246238425246676478528626622976037893746386487067519607682694144380259406611053878666960667268022239653668954536237163510111347768902789734420407734636490520730502427473098942408490731916030483441537129215301753046885877053855181710752869797975911834399201447092630004288358110807069534658305690492151673843192539182738312550303970736864202425359606156196345096242502823241334910889717053811885304175229221981147325113194286666306051418070442930169759967523726856696946021375689388131147505033486510077993068787847133250757743185224574302582304514067006325577655120109016180955537796211180652904823310547149815456954415175341680947418437066373308572610729191017690090881653948314236656360773681062155066423973302646994844680971728709165026622657154972439383890559788333507725295815763373863031458577305927806649168202277476732807125740336412139105406597089506827494078229755367627149908058143416402440853652752661967055641937562992460045085686201654875470813374390964045496626217054784697099980842982670479311954170126762951147283376603378892225764869126796072854259332418020518574733417073016220661891503575671690409526702249798921127424504238702102545242353765027042739202167348753768279657749929229538685974539553366855279292331084081168839168281367909209574688939546225971689078119962623027594176582286814130223647520980882918984831882332120289368449995519862723706219603139694189745935121697389316844440872572574766292580396097327339811822865628409035679475279963828986051761091207734926625946241877140075221287692120115905653913845230668796550716690227741855504227561018751710756574233748967894609391003413473801257013755533267477244379732942661830359721029725505860978480987441926920818863983522364976689783369927309110165967650133934424407254381357300358417407104233001068516658051541664556076577508433529421086057493068684104949515425684053262872424504057865894973442779673519831246389411760312140765115118718715442632703003279836018323220550700175068882022074481750333921597002350978136501582610270678199963710106252196747790287289963835671212444167312584645027174682800692722562882399605307743329326764839932609523570232314200917958121715809349833023071042300832795454794320765379268139027250494260486567507897093054202406853102375942321630580223710568912849944966362555660469428008208084695218341931184841137736299341654154298415488499379514007220162219554651569440764072209700976903706131020034817871354917749815629253233409021420888268937246449120549076478268348330226377443431274648046600900366325194621982377856875466557050311779784638246443398479835778805729795865832197474123121310962247528078385479533949931985304817525156208687835490238331066202923915614947234250746513362525387571020123791790435209447224519359473604646497919648235850191925904500617064412810414413635746282887803874073288664503099339655312884536438412761139159766336522742731507066331279219737521517287600783751847254463201990059857898825118780067172697157364699063938576448748176986520567787577351568119836984973330345854979558082775429385853620515063753623444452217489241107631713012795032970439400937390662311481273182527184871870312231084160327221860908692975469594377413716623843351695504525202993773462523784404875591804087280509781215230430311865134215104697923378662822969409240398934002274274383166318487781241773778483747264022421052917152275442343837522946131655461496175776379284131575946168700536568187940753024302343773041799608129395904989975417656764548899115881530884282436007354718381717065377830502970749103315979473091843613796400293928403415349711617179168626122222853955262918889489348105829636756367171780787573718008502781120929762454806061407187349177308154148075197588335716484563496308141314339524200852521525035857727397012901435644606921611558712912786835861755347419791402371785310004995335641384896467986650740804983185975593973231422017121663249209805898174363852893890026868184380717628364279135317996124364221169124965749180968983889298580221733712221145142302420352011522497347538139431004248871219462013024933151734848484416343303024742699878636393036700907784056195131102212898246777475832801721253400346544536546440075980145099532390064862059748579006783385489801457986780961840978850595508729159389903885072858820673500363133387362824294216157094535945059024010794289901289786401790228856543889733543889078629415623964408869316625513784629887389384302903506828916059093605839641610166774994668628820578017149736821218984493816781536375123844901076100072978370655502489323718407422344937235675772225368463496393017084939169169487441035053913306108994810586182287601673456451565825137488459443560787321004300705862119693358472781698432134544218138816414408609641503232019906061610636447568315258191068129494545280399497293669819756534570613260566394586449903910702323748923255488643084159921978840253210045980845862526624375426710169966489364191137594273211030191700961688525585552753425766487532266924760118242182587446438425643250283979788837549205693744722053336654943573682056773500876069931296410467973728178350046846441421892656679159831773414811798900185718931222280286710026631544730351569622040795648439129159645223566947037819716846307447668152515529929646602501560532522109371359183474308611142318920363453050655021447088666748276084168702268455736869048940472785413488560129715695254273887686618976100275928818067349331715657342836934163839686760863599855575537250254761461321976102070461996217511068744789473349401760772483921800534771333778735345133508186654311151268508107234009351456974698219876953410438303575706175008901067341681581974073259168474783701150699890947199064073952442767619679096032117974150331058757657662499653368328814298962904183854049224146557672532347051975457175626783643244136033559670354454043959148139307920041438177478722484148839486049417320171355135833170816416923371323290850911591041210602840589168047946991581102719909596072414105154190467467155653477709596763887688860039922399363507649617003615610396559063099155783873600160033675790860389035602596899666751272678496615137636484649131441240762769686089646039800698612205036747860150834946318144177262334906576181527601026920138936839884919570081611129495429740114994275474794205696453285970225270538732066951877667629287506748876878548250695318813406079788450545791043957179626171424007519910516422735504686110790744503871847630761823781477048047438786640052070607784414838423167971174395002258891107378935567628338727376243130618269020863268364434671781351164938726247045482514053146986633858226476085090345030321484450919770743672103200222249958341304476693485388720260722246662574242603882671599900541754107664073247229204937450030171182385736081524049624379068815728091228889006282130300140033425350255440108437483581048560458785200013629173005622996188624356083811734679152256189959077870933545880529238075227604331898584849336571550749799191461595359336435881424529933667783979151702302482335188657984893735991833758026571544462894075876982574676351612053751724435722424624031983161894402036742250880106251275515183170552829884618180343742843094629051534597544310110697144962684042045912615534212658670718512259782384259691823936605501818731380303010250964377250085013714038622150750239267306598713637749963700690946008994713162430076424306739823324184170612964425518311824841803927772293371344519927566443442867098252110093376381713939802939579819562867851155572640192893888252717430145916140062337570820938141670023416791583460243672510074189903043703223807940225744921818600646842192988837374482351254274957508130317292427428578282599853096556965495648878290196720784042058069567660326991365640801487355460012496937013669734267567478515747765271006992690636385024521647356108436020930886634070460815087805060376590415160240850650760239198330037645982349200917682938178058230156783618196277174550371267758376183513276743553273192949903630676310050460868919177853717629230978217096753526330172458717143568736775423177971841511143242651336225563615543539897272127075777564279662894863848794320072346926225985879063903474937608874665206244554067502271629336323049573761905847670448231255049208830791681487467453227650902650757667629510261128628486676994328563894226411838384405171989276358801727343154903853434629784826971707805567597719343131141744097828086602126839054746399505363639866459461764080413620050141954787075571830950033675704671053581558108773874619718887680525001347096817518230401833860531921967876921963755713381828390479198757779621173034311701886771782709182602056812215123397707740540802024709745055714948807622365934031236913644556027748227508799920304376566475750099273749515256081167150605042055139185374700751943530227771783529867059024140666217863851320535034577671766763173074435249025842250876621574107562889227097741328021907291752163292347910405760752064583607383159760716952292701022019165530386163852699000982160116411691116934167606070453291613691837532298955173561703542288266735457473407976381315375553585804724596423707699072730378837508227838880740427014323329554329599147908467641669775219163237285127340735191715589249313345939224447410985717255941000379802396986120255359492254450977550647283266955192217178938029346005129417928275712962281113189910909439423246819650988739823580554967624370234594148318501573417490134555114949260160100008198816900162397254393031835252040115331699669837670642024158437998089122202373742328412272734954721785747748567364309805777349834389587080652463404743878462414904310096977401794919517277750234413154249941394051198300217222534054529007246175680945303690013581240989341999310427806326182964254930042937385560395717697974297356655433860634182276074200484028457772224101461524851262439478321019196317228254781949314139741171000832394962629226239689002124594398556485208640610637642815570684125177231985279488486042281615382219425984870551594973248233753620981462742740521623204135662753683203697356807219773086962556091528221119110806766691175331547554995124727894275198743580937253427987826335952633407756764449145157909465394555417668941454440365633231603657288278869737116768355014626384533368260089253908568088318485240216910606475951338551326970392154555589234457504007715187849087997190948122863064749020839003963693620500458933272670408609778320590352684658662405439480971942251647593358623651283113149263052625146942572246306332533814983710459263497515898928717878031718503373368385421682006122948670096858079582031470753782987268759881395129775616557300536095716528772229934931965459823232942185013526667524022776305370252072059195647507075097584282970276706439373522955825884851476869858308050092033456912742500225853079865990636216541369134079043683179464692770370289064070415193276343386573168632486125549146901406631501157514561852310183109553592266594495024537443584058061759108299528019038327583589828258334594389820755246899191621407244538721689711938169778554996638283212756198000946319698484325383983565452078082167532462168567013008925066102346587993568548150515594433037910254433447502178600390112244591576083796993978412117817527135479864431141223165324369313585485268807895804672748018928640735497148911530960869386104502449146995452656451135352856069381114924743676890212300416449129059162743268896051410725617635152978219322282757996957508439839666601105270850313254135106451769814830633126010091461114424206671166402210287700609414353101118140139057323930573871960737412736308695734770370860803984748302511426886912833609887174823880858338202848451976414116988139343982387883647640857104028997037269122233719625127339806241568944563697200156778664927055492818430782848366116683622536592567625704494489827394931608613224099131991552941603445793674010212596083392436375360550972788761496599016002706823024708866776743378664279792619269460761212982353656528651538424346701813791867293588082558373694674676301860408275106760597204101614011017947204377209618645770188677979973384189518967924676798355820925021780927654917864630435783262583979984419840305421224460124516101075753726339751248301302791568331199033210365639310865182990485134458952080269255128055279471217569116710603789151545344194658623652355940137986701998446567461287734505727973902091687172365521007783690195821987420380877434873444403219982345008376356134163360921628410288548320119120663637696091371396902690070105693664989920206804569981405852476519846243189016521022813253878335389353439131463645287928737757745782540387120420803679882918430606469691201698546033622573923976217512228488061367428203469885626790320250103427966636806576615523347756931253881948277437746413946760366919966358388652557557236096587805884625350635381980133918697360351403772688757484734215834968485776662659503874520181182408014662377431292332008904566728157864418115173325039633005632254571040243148205506566275064160843087280170250097175789830857934820551151974067689965429955259382163730453504302996617238456515936947924153570908901801210505981330062666162556305586791676310080506951604070032192994286409724775681526660557297201729912510955064191423905952349225246480216584079099287693139845930677330372407878619320654939030765313525776257607426272813528669404939317637818269109345943330988216799276558013336517272659968283240066938288477561202991569917076622067403735144977531844175041553413867504766235530394134117162531510326278676631257332023035095909962452570343185804807330203810024308159761918333347727137587241407741103291157741139589587494489059409473153543091810691910780908348925735547050060280248003265902503511487313817395765901451283729569644974350824793081650833589452348292327613435538744395120010723121899628637631574094277064262636470723399453978756557602568978244615236732021766838466958580659369756422784054407249893803338261199626818309013606874466598264931505125069069065090502877427007051980214246955882791847815065595942008756309595882465695022647413853846948689133309419160350278955491853037589330100693017095673368873544340731397554370288158990139922409280478826216163746053372969077550035745862446099014769534553842747533896067275383070055899098477969806060773442669587048729308259517730569724821494656561010515830749890629297583623692001582789985898714611668125899576188153053712146847334315315930413873081104006062764148418233043026521150494035666707709149332399363722757762011755477656894706967021432380614796695709438409380315914414207594179335816824342852939079035577321913161776596915373491791389766095721033320276516830182297035957241528789587139938447726040356085495397071497759988579856620373734652713559059297566642600716083497138458919104721868202304252874388279352833031077822641998349021874052745145601002186149071905552025550604307000931689374877316993692662912408406066670850231879195949067822468991698818728693821822274947721679898750533540618032755346650792128331057214848873534254220201066992584982232111904863984757972383529110238259207963643931810782606040849256132729555105014278999222681252089288799302128362354170859355212676722155908906506804544896650304680309377140516676580310870135932881810479916352627334565399926973516894295841338519875558735419333675620348615622162360340686149445118312005865634227007175838687492275077372504031186240783926353700329363641142709469204542138617744333439187467103799881237668922347403859389132632867101365155439689588154356516969913207066880777941304367407743726837953829846009503250529581549306435668624203628278776746011867266994476825901533279764010880961328161102484908135596344745777333486371520459430971207295910943016090074767499821483329014590920355712499672193431448909123078979416158299131008878066468374048855632088681861672541964152936502538122183226655859256719424315993432199495367912366652436774646876034529408236635060196552733853416172266587597797551282990401129755571003685681787055361368812107804994001010287760460029018966863995631611826292269711362671737031336069376559867226119578528097218212342756966033379481552678324313147671573647050705615533670859102995136384804997776632608853882584356538063718177342297354017598647918103533496437458663683628347068128139745785036815112905644236950860729421388166966278290962568988500040872992417189388126436819155315090475610724395623122201526603879250334355182926826498322569860767526100312029198622582308594353542873217934474453355939193805375197107835039935985974263353626935345896985299290501721973461600798676364028981061541019585130466278675258359688467596318338956788698492912457418035154400925443779219406607248064348098234561118648761671357748008019855740771881556079225136048141007102306699778460970974189367224610775917985829277776670777408691603247962870010859201812427307386974387010788933205398693792727344572414372260430735841356045375452751755402788970108294546791104267659249360280805993420535312671071653431126748242474099823074391722687661461413335450451568437002113580601368669218836241777645851643181100122751034477898999740498289529297616625047584954109051634301864728560923693577445044491346316865345587052602012733155936792892189899517258906114223504006870907109687879504753160063957765794501828098281494534725361961101706818986912612575058732698968812167070462708213977374211803345165829734660853878367979861268010512118491656780204670065385761709227446470047011992532427571159250968305644366910011682131757796034770741555865986479775472321763281646725865322039660990447266890324580185089911053905161290439812383203422689140023949415791392752942016306165088971514769914657603952936151016254081691746017285822533076762603787508635808009719183148806906280932342576824858715140866640435716463721290572854103772293264595344868173736279342815815735326917538445303645920245794802181697398424995303939133169229269040456174549278270435915269213181484265996587143352137592247832229376726839659769970293789292766353529433542149158420498941539510198223059318319944390279999287351537962035756913868112836667729546452582132179692942262288353189696012047260389484123278310533769668691633163161645292924737565726983836421149175675449120474486992315887333189846175973639961262976174851107849276508538286370455337682557550814609850218826696485995521388497563139912505760044315992114187211314381623889905587508028908040319844153131829224608364746057394863891926788963536920671342084308629842190149366880421158004303779825585654137923622926619687982154066920776550464620861622706884191718507253508718346246383265611658426474612974060643540075183611167294269189696755281104642471309476291843730616977649069290241732727465953897728401622250715846192963601569435306448749695207568880096618972183154739484342004811078177271935550426737451106806425520482784154542906848983089947520818999746497146302356415339145468496041721748497160156935598544943332347488906954948970286448211624924194155528161838189380372556687835068268053012850161711488531194901709373883511566307122597908362551997901269932730942622231471340328113647484157203077745677502362077514210211442239926251436795100273755290914837593440288019170683331674857052438857486443203111804096824205148372101489097126758137758038698796536235525061476684378603846865654429990388431103863297253694063025511442236004735628612242181449010553071836997002264224752704803456273703850649679052008036343820314958465258101897097503121500272144356020875905622209989984683502689910819709292599176250925069006194026932085257168400547583233935183477485292480852046021652930488594579426097070516809574395705508821512929199424411525182599709581163759198317671556571324629776597921922967986757153909038635871881966646941111150476867288743200042038205435290822232207997641688520436201213664171090543235281599895607352706846135010608621675527104078612978286442439648800741834436123853774492687537456906789449667500130525864471083731493852838757613002601675921454687201692477900300141913523352429854206683489733392117587071304648367819994553597759921388474059666435041262816408648641889299596518881117406173946991000902539772507134377320740318665708244534024802880327665428932521747977208799561396546062075264109168005062199955415021796779540417588937569114879122655579934186020406341600272315142314092487117955600364135723923888574265786467936373104755475138060513704612066063306519307686843406526052064183596697221042545253296252029422653809622147817642447758199918958836597642215588851344588832052182683056120976613362237992897023100117967446714095466336733902765692140032329881956110182959870094788635137968964830320394569297296070445731049654705062908845873975776587860502676002625174079727868130243137415392305485496298412549265098258123282356232613383426732885593253893022269671122276374596157348301702157012230453605094459289948732171148402238734838079127905876103710893512250958145415544383994173872134569943140824048377754547761570652958011382265698647623270176407872194937476330100433807523038898931780069331792991959533330096087952538720517050669508045792231006624931101265797590888032310948169806253567714835398113814009069785499648247567053353633698827756040824693581193097616959955957699388935864712026482289701053490390983244293974498074176284317139579213783920753002738166726254917994758494030723082300146431808506089051487446122395067398618508069733951279388565124383870751605407432350857939665764503528103812589593411039772320935420208733120445741517127366647905213893059065438141042420062857138675021675561510299569251009916299183433482571017909272680917183421958296653040913202980951216966708841311650188309324299683122044841640866912254390597218852855247389852805440687050215484506162671083797541405004309330524463905825690684783399043649889702630920436273059594473024182120833926443337158217053958791662425743980741105651388487117331090316820880612132566843205847196107997755941849134049278529792809750141043072028919633792042707011138561797439037034486630238948987694307906051737829745006391778029270237889610624490375573372152294362145538939373476585874718875389525216401175606768608401295760108386096099213556798378763181795350876282677815948535123895988158322991791785460450926090665619077248694850739019744221915023545124502132329430070996631898413046315657050093179826570899032662513763089039039093894071328722829222217478013582508734605464010723149842974225894694234869894625340971991141006709363603161875736607729069617460945182030185493757676758762581068263568865535326157947893131757450934862821629812343449586952432254040756544086472261377439147067438077227127585469086179500121514824281806930360577479857335776978206970524374239324022409437484809370190487394004437012055922606165808959033531436886425176195836423561316855318174036941983665717168416656086728448558506883235504360156279433941340503448108908343415236258611751192570832070244466079127167468328091009907316188571424600025673923311508219215060555540929714694795316955288881652131733564112227816875701582114035271367708406857950008416020155153454242004683144007998654332577793959818450695973955820637881909022842801847290196642060160110823103618101692539449385661516355449369783594818259751193562086671575421134420609452444024370099826375230392918044298273820927505831937013471388162983361959832083295669051103270073709896702470506074463328498355893677936098041432811901635281539479124336554354868799925159391152774546850224815144951873883154877620775755921166353503105235449754081633252383677885671340084395638234472442670179066213407111461137725854293132795202129890792629160381597855948325016839664603316415150753069538312795084443978378818377836361355723315534740105528090149059059930983541442457217123358804235821120679752529517614126734512860090874758345355754227503363400171803200970180805994372746745301641480166772893949795153075003442123162340177789024851584871413009050637291901314502013462671172143685995808263835801475804012561996833372684698165335602958394617764705946359643080990648366378876679843473249278886662731574600458928730886192518329730656734587363761623872607489260593542812401314825611575612658084274122627651899388299178836421271184150378044142797227423663420143446185180115379386950568998217367552953241974568344481750388554807188264256726356992747291965537202003460870852552063491195753505526323706597427977605982735111805077934864836698620272822734654491535916828396213397111649805855750014836358622900198426975305619128418206455988245192722131412298818550033739909416729030495714775975226308234477201092508569127020756225183877151380830378838050483174748441587837322252313418101242442350480998113112883900406268561982705959362494975108685822520656900256477865829769308926026635045928864297319834526625574459096406936990286629481642379516125411612352402594320179460693375726259634701089131583341347551945083174296012823564976866488090498547920410179533646344355108246703386944611485635918366726242775347554480787763725562184019376429458436850306457962017302776806949789568897821730465382475295447706112959595580769413151986956244785208469255346115587091187707941063573732831942415629481508773447119612755006315619742053987945918693772030160412437021533870669162532071132071154611965531668897884416548794993558088588399123831828000264205636676768496673530374760329724629334746493638542057389498272624739973756680859136228617767543488229294844392781043722727888307474537557160405596957064109292850900360228812778326272014067284964653551471682586116698853446993489760943833820257557312074263491024797419213884635570622056396613966415648443694100754015887396494373725155304906604819841448155934182314726961333305874130904651475109465498779998397077269804953030567097889809475025678658301187613137745224720732917658998237512998369360712998753379300646320768155957743757833676916573546026634605345865404822057281596917341336474668636606242670085683764736353345674756203151000972028488204423311883610867046521408425990331077311673477504726678615214095808429298169154206449629072069215116929598573272933115145579193641175098766366296770157287516596970969740643947666537309437773427903828187996886388859257990925745797685868591094085385548860536442229539439323424865589527144834131663663753102291000550715194303867134670767801683210762247646107466408204094901793046519623222140501899078452934821415451122203261213962017863728712859079386456747196032911709729293012379365851127123983402793856196213061862874279596882535736241917003044935693985151873749745935900385175792482543192473653943503533739480536061123040272626824499293741505589816210997948348939318407851162627245023156084123437350698666963086246268028326643049656906162275379864831979984463593296273821544469810689202413234939840449706764610087959219161755500644497944713192668579733369234358121428205498963045536362330113474230407102762624604288214879650078747213839767366319094965540273257214484884016710774313401756391799395300681277623612895286359338993075712321621283528868430604497199807217845528195311130763556663034842935983212791207402587333689139739692636037631681359413043496317695381330430676002540161491510471502697795178854536646092847842328246164266504832978956025938749407691552642025229502329233042699293280594856490798123454281890175582528284741267144721550276056828582963306272209859661825148167653110892175537469487785895503483920161433143472979647623959106345375411590289456572197376878922568188906485411800495895674626853540549966459928787384344469810465900991915615071499018489169982126867647876042087056510897918489718924624087685193251022317388933142414779375027552728434986455638756694795003520100907606510026184793856260270740017721902659573095485520238136662553334412441589483230368750378773711008152848442913236915766974174498755773051611701768547744654763560794093934394065443116053389476069255720967807218275912190340735308497782168211731142126567406570660127241115385374204565349237722601833800554916003127687573859680711790023560804812819577709823344046538705702247982868784439612517985357083087688090321446750705087756446974069726746583614000328669058639963192316127630170224896364260007318900199396497268611049784328210309459831148898745126273494834673205837575657372151760612396773160804879092093088924438493265061143710554243478676996333247881384394352500338951986009183150535059402880519372221779845220440877541283393403393454873998381319055348057564748059434160237237458397295144731960456751928673906928087681196144787772844068987296537020086567858025093169320481110069576369777065172634831619481573875886875180561549147273637590380436454084969842860164097940101271650144070001183254753838436064659346701903299631341691089843208157067979200837284002886504118026483909962475672473693252956204083296028304295889628544220948940999939990511840938541951584629834064930261523577400841597750871645634528083028737447833482567074008305583254904168535182701773295213404352801562259515347215282661138577162964712779021926745612912340053812281625469997573004641991600254383538131933161805006901664823384629749166595728401187764813028245167764189046980169828229287333316040534066180992232774100453934217262472998218947976117259892837320249390554796639505023920502895671968752500661268740797829990776537487325832942473279236319693810343095794925288894708018193751351538193423756083057852365493627092900899536273116254298695314480240437741109415733922894306647888530845848167642280601529124716949841167053492792164884263495770175634700412357420183347734691564057774687861928448011605117944705235830865888536347886791214545992984208981923991489140000473135248422920663686148233930328119340429816249506730874875013478838959992496297629320064204217286256501056403767280179851523983786632050677098612916895595317113716884815169284186079570086951105385219678926407975813045842564358650597737703870591018796919083213623127739024341470935060441818562733661537453538118294457743707669931577871271025165433357099055920812943566985394038057678411696977386119563601804333203410708957677749337158351106471101610251333210033431612734856921669106208272237497997366356587919566014498933436261828810979075919750309930446672573483185977767681880653774788132387304989465267500737142695960368500462844598412459857455036640554359787260244991597434513188011312839724342213367101418566661618093824655751731701961836176260070420766324413662323124603311560438554512287029958249830028011685271693198555310498443737150929411614395981457835533709709333902735149326575331422421656099215338865380750705308808565121522622601642986702475703020698690229946123291495053741070934015599660652309047047634593991047869036392541428868830355545574471070730234094522158150145878047847622578550420804447985698677515353189660070166164208164745380363282108083943843954393110647617667866446261777544493015639155241218574954382465040337338179571501432731258933808199689511898796495470163527217998164768267252662190139939445187725725368445120827935795783691223257913781648104074793132575071265848790788309317744372037608760985450603267547234229872232465593966146661936334625685917604007975418172978597267616718076243740092907634935659914791974057384092617203477015263047171667996125592683997866982971248544029963072509509971789517623734744023160302698839513336928578823926588157003289121047573864929356848603594824376665159324780084639045972958200470659485295037841293751535039713788437528912439073654678506698099612866532766538625567456231754159268627232883736606255247182016784875991489755000260543118143332403140999263206013270017590279484348868175177246672948710343437995185302469270667656419059241794179674027596231999187156691401810173266733225750616151007215783724265786544653314665214750439151768055854678455541806861612336928472572002737968791821822443768649411893698449903600730441938254385703891356889824752381322364285855773401979190925117537801076718306312976974634809755364428248691947080993652117702629064862601303572280370972376857546145934829059488465901350188918752596800472770344882570742996028998056538015019074343778763595821892687220610740957351575602968740152195309150275758063909908401399790208424442168819242933824438608544373684454315660967863252389038000294466809654802468110296681239903067991716203326764587580756713309326828069911571456447733078559283441111853009354121514016681976621725539377870504742153671175180313552062302022608118269274445266306803828923164440792388198903738982204790686156479423780039766322174254651212731505904413464178228062635841437355140564301244469297836776696829953179652339790514061215018685546499904053486542727563988203762512298799943629885617439692571250648044589104142004439605443533269504560268064118723723399205413695282909990256167072516266656262432973595543854371481273480938944977165382345548263181173790315495678766899746831823232803567252145858469427267386787182910258524336626243527295306828136034794347416596434311474125946561012229344765096279386115134107680806426111307276575884079007095845395576438129010841852132509815628283809166282230296850350998429883334245603849583423205709035319562272338778791673277598838703911575889895575789563927958293393976416271532507599287455365026466566358390891863634881786990191463258198343348431244982937212314438506965740674946021365409226533873926030649524942949850226816168704699580397435039350188021199929722346813022549293659409356295084314202669233486154655945827719051676207174989345921029255388670091167095824402767101870578861309346606180287133860440123477034430905353505925979388990897233806906107460080214125617234557028212699026617768734089753106661947332721154461403113485749212940799730644593834181465097160612076481829190049793840664978174615826924231407552533255735118345440156953698856929449063718969440026079939807838467150617611085965497789017978101462407793871873135048411400945364498254880503478284270956229005363160509730099734047689005604667408096240631571357900727945792192814847178661958249291170674308550409706338108242206439679491191964817165013571593942342247037777344606159609965182727085068135615754638560839190736701066717078869890722689857469978539543221838892846430088586835003770728392514679783879349803327644240707031323749503607805955169097355102857564119139280347143875627001128709302739200377710692704015599530122999445411222909838897088253819064248751388411838371201109592489092678727734543107541436420862924680583645652735135126854111559103402460667435912129312082059389477125737769102398083487919319625479402244769112773721464894580313809075712316315654470082845269542377599893536638022591666433107203678115676532995659027512367410753923784667443556028313107705997652596340959195023299120699944573761275776383641175943391493909174740336678352695301739115035176719326384942451702724686179863770873779090194335533057770792096035441277459888054197265243008865210049489626502422330243061865568606920942624916798778501214972312801354426022288704733486093754498274175927726167945215308863344254888810218591317244496840150774352491046090122870097524332603931439249797962636572534565342935039123983678907227897927715986427730932222046167616544507303246994132589450915375023221721643895692866549433685534652833116558369730701751109385184227851695225758089849064293217139131179673621382690294040950835197155351747210495703710296712120849126580801173874082965460393091046054936452269274354271619516509283311730817206223978805325402531232300541658621980729481170775525983545886042087114428679533996245239581721889269575352591403821079336989675529611660121929756475088631067973333462950944938123989305725933999639956252614912484512196815169497393803263852170073647127683156139274757381491063560665184320882539594528162377378637221228565526093593545276957538663133528970069682488384836156938128134923245345217457178784630066883537871279087235552279317567018047787138296945595490541068075547312259048616986998216211291157712567885023128741793812271135511038645913826233152949634122642599551554783428851514858290791684642103268439430853970725328725752772524800032933440663824029368038209143140881921097947826951781964352480962675994378028808121674595711989427067529414186289279956370843153635634038981406936206645693764610977300974225009787457252061084928593221055061470052269323684952680494552302133592737873574842063964514282870747991839951114818328656351624017686092656890555830518510912228818600693777910703256766060331282626926515331038514270534310372123070470113096256812897040782168530523428181769583012867563332231368403284670245306912956537871121189431541099599382585666999068334666792346451708655491691784214831444412696560058517118227934522268921973708922010649310174211849407641629911046697789570938905178219098418204875288069282832671084230090251478996842439273298444752817321895663195135669383196110286956139848128736549201698732925845607984548854664596131402191706346115995202315295082714102401750166138623646266414087770055513817273954023402508454885851496575085472027434724513805392246136017269111627545146874462794376450845224186335371251059862201040739061384943977112446882754504440314114923108676338542981693221809728756522385114527775833340583616919520323681534689990890452124727489993536558683870913043914301907039991409240858804304626329477838965860380472119296805625505408345080744701729550698496908026979589984047684516262922115736966328809465835525342396697341211699583177461404727502052829570141721445088390972453947247316137926986725991721429114092054396181650681668088889179252548799612870122076788352974430897892190982733749693287004780733319438781597424545008588357921518077886022972462252491429938792133655390320256075640303138121652277404634963362934784758050563643148165763288631114436347578589351066676220068549250963381521233634939237144023735262078426569178586882160881054841664618976033712951513820224093739189030481912514496917700125147488128368197726690522665837690240828577114797962955037417715331237421984280578064905842690217064152431240198591425122420370350001077336838435018585509892434759656990183599754475878214784775259678796628705289985897090283156939518916840982297661522777230808870012219269365626581496097433541401864433953376534622533513521493087798696540260526311701295198831922286534219140957435775316129405314836056011178637418458750978486817662790730506342488029947011242890574148969579828451707567719255830531944811804881950483128649864196896414980533446024402292552229091792726464113965360570327317664474225545745097523353439072768655319567888402986204214291917707095610790511233415733178633525156691482813909458313300240977268292655123167888832963752199726911516485055905178412966911038963179026124940285331875057975026507839171447936546433807374857026909140022830664100340468551059634071985134781213015147990654874327284943604218665830097660415471887630234632773273731628946705452391964400424786939794484933106331408958719726814837052460292077939911117376486431972622195387838524364123301616079720888403813384592770791081517901202067582235754090074212753503217319330693902571729325823601666394897903047728980070741194432521246418364735851880754837627470107390728075244241703933282746339558687609724714235481952937316822249945729614359012502832951609052049568271864288532146412310463068930694499154339447190581593992995939637878581556768001693386105668042536388506943094502240619666749018334562761881029939514966602709095006689711176454550165102123997090319080310232851412346600598088017894977071426145977989277634363035553914284182812397255767181988009987114331650319969767362530946338246396012091411527468597671169839777044826344326856149813992061630026141372203068524583525665296414825276288819944786014781581975385263534782378481608969217669342220273229691263331349021407969798882026744838606393947720762119376618177888837012937115922828446352089468079454825271014506960292199200236659597384886308521701192199262361405140837115601828044631165868218686306919185410739765138475736505212152077333540524041015710602559274389204084169905402441019017034077698312985573511747711815435423268483409907049076136336937058565734190961618522925461115834291450171595762653506112252960635812032353412073918896912890594776915804522019774795446369814741913599347151104031163402668456143170469947156595630027718382920848660629564746494171588863984381866018474130971492131358292311210541754261860452191981875602696403353336749632429908100239978140371376418670685757667259776070885333565281849760809289380361394538591791953747187240761301978176560034677570611688984829476870810739071597070159717123259329937240755822204834616868109903676677717979842389182938105510216997584415702456503571421747545384369210345621713925591697910237627106294572389905307469310495590180130585216282686095852784772242209286941309276390603498759832020041580914542151622085128604285006002098878486031863821911409281895876192618048816064360513505871521189198138779566531594353162893247955564354722043742582144449080513525803243364713079250355099918307297374363402384869350575869861456279498906400035079087269042772357131927785344449535782319194317390483289174230602245858253585376033220780981977557482475652451550086379735807399841063664039708531138839103853501660445890955636795266558402078243955941904753478843578482228324520279097284854942038667203693205058325023475208569376380882770592902940976662845936608282844182034210716272205169163424442012339120392083610515111309402334971763728675060617457938382573473440487394113535877220269445513676899792063555354096452967143339305353123955294689441268313668416301372696878238991792178655581305444108215929585214215683184014092826911304710487532054899443792508732333445969526918542281285308792528299788173689190367868403046637842422344401585166071407089684754714644467930294214614886798254387687780850128248253231951575492759188776221347956041987385477400199720781893829474651736371025176232143676324831312637734817005409526190435401746120175657502154223130622585111274268705196631009794244813521122279468969316936094247998155343404976713869539300598232399571671824744600486705597121069269876221361103366887585231564363766343781416713783726667826770539206232040252397433517605427833937016461145639890332699506354673013729511607109112742340137151243535602196360566248555530009965145580514396096815413736045370622721743888318405407327303248927953182282452046668032225467342599587177959358171061685513568818201362620768116904414645605200917738552034813337081878887575055517992132329032117474890338268790483437249481567532184682637058679913745686365757018721744930893259510191747083754007313069171773090318259711757810739114283461446663106314520557732544493473533947257567149580660206873499072833995304795453698493968856087242098348731497840985889686500788443364601863968651745520052913978005891394406282906296417654875598954487526121300005139011613034877911529870203873291784368522681557818113471660445123387271211862783288359222002665074065081927154577034331357397596018890889191919087820633840487557548428010459547394617929042950940899491915389898131400640853913205048138140941553946393431501999022579127243118878862703287298867327162653163123278582630083908899391801408627740137524372404890691182331950530708783273738594924862425202880514728239840060738643786890605164881118561270464243631263822191801827657504365711289420742386521880798251423255672474202943819357535774081482867662909643320832638487628150731107867335194046946434157720392333675163673622227287019594879783133872075606272683830946621316052365531043228151089286570867163278343566489847407596144945386131510500288459387609133011143105013295345488360154174809675126156857674736816301681239879859280007269742148892798119632925098334165010000554119451390202601026814587333362156772888444120941281259773133346025600915854541635212837562284144852913647420167552028177091684828731095837779498178870450439136362735427411736664991219847898517892074694348664689976479111065448889428866840160317708055309002376625592643689475784981505689750577583635424940415799848951301264362936926784707777648053201020979828225109333665633201909707725015372673937803770250951137233355561159739855596663916133155601279993027479849934216144916750863617933662502691781912506079154699045243714872004911605550918033032503461505773445165412014814182368071684668596516176094634657715601796314570379361999817449849114673804605053114502902070117511613555734455604477364866786503275282057758342683596210863772099913107386369991637023770372587609002182568168803600931483129891986854580591642224418850122080303665588495435899771734567616452424459142506817103804855905616321403707501867811506139022304036727884943374805405161682654587119049424199972676582987245596866437386608454832257321029208395814512893058695569446080436008273735026789908736078568194848288388723956052406140190456294917637568249159784583366256137470442405652296789417067631222231640062174566253662400517803354023642873252308728459732792189830119377735161541444834556892699135005266963805023965008718271330892894414815412513566654292256829960166274596999714700747059167849090558935794740460128557922595830087481915836592282136136429310663261445438061567589041831517083038713525040403320756475250518990049468844065831932417578196571327772816212193408400903259202411385175337960048635657955383613037666600698212827520264972077207643711587387255031268658111306422734662502522287224949079126926395116261815561575138008508160677466967179742063366139718643888662631097532780322612114211675002143988060747844862749409580393182573316218058698093616919393546109401124409892457908380498707412207008179504439160227340885239166709729495941018243756421361859258715945414694354232355990856589316751152994834693440873605023704229279351000068965421792030688398427053810969994621439336540528256327371755817743338499417557411544616831425435674001423952387967073802675425917667227474171181695470999880888050634016781598089473268782544471672929751929417208663761775212927656912305562263837759255078653332317740779616995184006803343510456581140150703567541206951293217714937527222120680605441957351172482806608443872289573993061865296291160843409933350679264352996336588317311149446873759045480184923634667331805256297850803045207035614544056123986601957407893672044799240357707090408460402257164559557137315489164821489732953373967624042840020095124790580593073246316995629606536769105234354512003081942915250853079548528748234620458865876839837193343982256026308939422585679447537037549807955054213351033580721537508731194719093608226063091684061681383924494075748233934131190182410198552188004739923579488505901217894186711605220839500387024064381898664398159040639774541418263266724545315982158695703406509913123085855347940388773852418985166091061390180998018082226088880059610756556043755218186046019778292937811231907787121441047978019943211518355783344912108023498775954755086005672977257370051253811247761813266736338351063921591680364176118303310549934707368692350217271163440397774088855626761506293520737765741099075387996877262932472174951703722886452327995126125843556328335661967365136036183185538890581026797388164312791274109643714448189480180551208094626937131964058043364031979750086718524101609874419499050810924519548265107501555962595326484792913732419108216743179740699237860855953033475626367577905026415909675008363186466678786972743890976920743837388955886484877517706938245250612691271370260934820753369546009188277899740051502906890970837488203405279597877469824111902248963521234014530189973617718207162501670680486288615554543892909104420292898428096497129774535814608586834099541600559769257097726814556483875136279220659249771251360630683378127431693318878222389358833888526613107758042423724213942005755160549519855920274204117789224887515220541464964659458588531597906831417112134312256212576367783235757550778786720144796724803286068434673697631574427278128100478773170254472429096571031018520477046973418265600750168149211249319394064564240760882406637295449944504497726893994829601046611589031085039822204092243056895910402074651882547422425082471809536657369443390737964904113222501318656151559020996525128384993903201988668592232142135892525426774888485745709412071000748523690654715357031625544572907971445594569055297705826769471676863698430955803123415381523901147204222781141929523579144830186050428402870382054683392479456146192161327899182108934911300619928653242828039874682391846935505240715948010025307566004431536957812021740681261057354949917999110982583764212300354855520165021064878578702114698725587833225482071800891220353057560459242636214648016903462416989968063099603764871841018944312611807690900840450426634756787056680365428840734814758300770822689120559484361459531889598726834110541210057786178033681891660468691502600976822311249188047130393850319569778923337109317424212730237635356663481332254441978291149360552579139730775276093088776695278404186426400088083672214654431045824179698559596174910623000535589696719149627042703071119709766872267821903357035551674604916005953389230067230110596301521239328978477611762684874656015266062366711270920660732525566501001772485214155883492145876331520999397340272555971208097631066698599461253099679911824903323028799729176804781924809176076244178683570768444638832039468678201004290592988306379179257593532908211432683965609265443444522127988749318313030003805806962515299943260614542810264643271227099427238328804516457467872366999478072186798879170285984253498326300638075255945581912871149330646814145109027009947854911941708012515288936967538143737718031577212849626049005583980603924910703611779410015212675553226348112023089659504744626676447113242371765435906139508328473207010274409225773933240904986873319581013136158119014586912102414964690718911874414341674824060984185077696563792009304296210997611217997598372689966307672257960204407046136245541711291239467187963860532183550264880335975706066511665051386704049832855824045442413870518408854996413241916448594485554084063430749118524569855422257805339631911353565101916941848310644578820975058857547998535637281994051235286149192763015602631722071374367831018575748259645074203777154804295081432526980665727131399050694162042202266120513320490636687213050858990201313112898910416301974868327677320569704964732176088884570139526038233314166169142103374734469028501301545531785899912642958053336601154802938634004733932521113250061393948580453394596843513090599937845660568158487770634003621574112239267140122933630155275445550831800735801463084975102266670833806884107034702481021174828470426755919538457253436208398977742494867333609979889459344049592541148229079568895897420813026173686164840641537232020533259277296144716460973437380368862933691557820942623054883130162413132896236873615168102882732451006049953410354730764339967034726746996761040922843977909465005490072998144947792792952884194354124931674397110985390172422409871244199504001298705443455127792801872156389319106924966564985897881856099921866434911408760619987262534416626258447254296622499457060808146907828116919234225216333315276284445734097943752402686279835077276569643741596636274772990694172863690405403113113146759353206496113791570508276640131571815009354553421843933671050965341194578378453563618816289489208164244540703783565396707761099482656686410480449384827375698073705082778020515916843450737998472091460188514929458957311564999684496910001421760448584505279014304558635999766675347650100810365398987670282229458644690943229095756215229320893412252967648010733875893874021157532810248382107046668818771810554681865903048138022402357376346106911564666964142826571137686462593571730159610634013843893382056273911028319567967584244874560012734940164728080036854746469376379024763558077832953338475697396542167633853528243058959326694593730668879043170684542155074452625381706237003599757254713986794849812954512368526294512356841588540691446584983862475851013096019697764901826022387677249352842981031716328274606783296641284927207947782364878735842035182564889659977557529245148871008894357952930703783601481548137370318177213237620194211260691326702639064648147135549461899749039408177742946851189318264598157634260876167455732388086066548698688876380657862998594386114387692952510528781805554610849637263881109141536403721509269141569453342642516997156111098228962789161393610696219220774864161489836917583415350287657861317494914168045648531025723802518511191689512743996067518324211651498198921547955954275800951556981226969249093398685721027463444966203021667445506599576446420024120624026978242730183705969468341551750936297375640736155828559410931990191833180972594687070312059196544379119315919291488295457349940717018126123171564541674600868318045980925535723511536401076203303736857104982231507987438596397710456006765705146155746923979694054319959994076659148417030897604323698545759613246981651012504143113916142028309748430491358543573247519888134181263670563701505529590326537992321658893651025859345540862296274741962849533004849194190510315330322533959963088914342087992189766944866146384721866113746755530513994761482569923950366206000510628781884386049431101235663571852581445917823870913783103332586535794227934569513989404324696279588123734090749322633809402377564972142101562383265891833312833027306458569502520112346641016589270556493865299503448100625751576133751275984577836789730575095321874482355296688581141898073391628921400874360371485097536539872160947769745265624126982588249498090706717785041806009130441771851128282530807990892411043362545935921528176031386706425046921511814836709999358936494541722061531562323425068925757624932333633814421760016061431998737912658890124641196253444716493361792460220773610545299237142689813029588715697912497016874350334742919061011895662609493608661376940592672901056972347172450547386672458760067571160861049940584752988584487090466465368223385997034236329811139028141780386571575518381114582695089232879551908503079381312516492163354924375372311348718029720333399173995972745185075584632802622389191108450189186508950461077008207230834384950973544778321294220794003884338361814851912978144671364631072649723541164523363988178470821997223586706947669972838390833420432781656318561358590248400450057754513597338845345386235245300297149347898430526823061674879417148123991134970737165031120583094539193890607090106701089045497084634347400766042668983536822601507974446510083099816938511849644828987218872144656375701682350516106092771001748340378647562473521505478345049616529007212930939591185353546962037567068216400409497644449937118411928920670223009751701342069246856364819011813209672998440967771753001372583432558032271663448492680559867500168540799767940959020270616751282416076848616542704220559408295398106321556088611308163554605284796265078622254036937284631246830492617964461565451259021435434136736488170766158461888714506879913558589788169125051092100840118861495636868432037209199041022994148072028383814244192840327157691377045771592468939034826414244432200279117264755973183271009094426575443462755892672678859345161886956896471255534741281682937974289927818736740981037437528404376095472297228673657875192745545089043031797176563221610719540211952194850373584346819660712384696375042063435045295731664940550917362471508083772327159386581865388721127699394359486726886211622525132703218413062897988300676658994707467183764774820878264514614689323871816642063036693238105005437435633980236191716825411319970930481242643931782719819460059339179046028373158761478313177968317750011248216189388673373769343958838750174536743444043373473190543476284472979735938134867444280115542731148974180408933642428076381439804015098674799164004262159899179254377692273729642143923782406629159762387840313016760937927633017667543694676880207600116012267777651299977067055140098585059036758618930247881521176391200459491634723681951195452771435988199242707007636729263930983588775631347049124807448953720224704172371785258537911026401007482733310974654293324262193119632547746079769448951563493297856063560273316477999446854758755254131015345265766756313931366715614598730632096751841204915944976785998215770532049812150957479416263812888715023360837505819742295825198285404721174324308115545707558732215699190809406173365248823707147043143494040026805360873226889655726543254335551864656681760673731426677592896027659665652402390764490977631891048422421464565942313103248884173966443913425595909218012371041344269875725121228620980743063766468055487139832558536078095669031595560048443972485153218405778546226824742627584062461852791754395942764164466751179951974376533346087581122543038151261021057418519789951191509017234998032098286796351853162113941135179934112274563984170123296140684990125707582140968229427863972310024047092216781776334622420325741076653337574284006443537644277958537897878529840366388543961454060134843063139845839085420267813567921695474946490383220912689601929316136192801054072874513520526174490173538511264439200377852981541409471511435357988292606632947590115143048094455735704348954437745114517735694484673121796531053214654806473283607567781965604397043241830251482961667713001882068169136148568339986440796584739069532055533282656317894813644091972932663382993235397130130520996944747503201980968729844461665654816823931936714162042342419128416011435561526180666199840045978185115474366348701622536050047000419374746580409641207075698345999221558646073366762449360240100653033034093647007146425642420049364143439699413918377837101739484771420950581402547989083690163847432137449800049788834675640817248429431418787698160555619945820308184174930183347989939981235056572154796761015759238437953235802918890478142441285171480118598971988013507919159227544735901587412712378038409033937132071388960009812293308142626995591756856790513915547428279575239444296587189467562322283713620643426007402553972798357635225676497687518043624237884995336925607596478263106476090141787542844261462966811238506107930450043063538214770075538893227979971949418396691876877057171633019909183767089369456388179514538592947318262647412422677579067952129218065568689848226330705942954716758833845603906462073669344964003490199074373804110723570016783484952170652863433225113155579431554329294649967428511140115407906237824800596652027638975656487208079385553657048759482929700891863707866852147699649624050999153030823116849624417168410908118739672393898098233074980983172416212137476753217741287789320911021162670560069775074551325053057363655866695303279809277006986673949212889642068092797894238100415639528808620630226215178667186123230238401214866152329581222742798902564126743734538250698737465440674648076169422172903318805690487245503888495000725394290709612526527112176841206717508596704973337359711280680299654147394166328828743739375656483031266954592864983467467541779292872800104684955244240937124426400507727784198133151981878986705824505706475904710535707813610587164688196125889793508825876090854700451379189920290529255149077782019031185716176491685047866099977587121312671271533705646067197485809704549037007423852938205799959304659516534341447293391901809540551174709405995341487145157457678477917733364956745534384167577692597632064539641133979896136248671051414792067535174391413768960752662164399340322003119406287530989497086694307331379379433743203882057538061009216225578383957881344456089117273515886536814146867273075721058998033853683705108317327439478606050247503901115561071177260241520696934835524444201034727891951673636379165330550460752765862475710521707701829135008265732666640348859079809099257014385630793779111207424345405174428478228773803591372052874005197847620028646133897524466315549144332360576291826146732163802985247688429092537860571927094543871599727239711474771315063543662462083608495338759948008314950463100072856261922996981397317735318742600533158686065763933077585996557029558614958620800893150213533018714998144267733205271906302448098126875562044599387381762381765439667163842976416170177322078707094537403112347689446620811260054454230692425282748337763985368322310740188309577086319583267575535805120261750012209745233916584677359165182445946900883183287319975472220621468749370807937732620003680598637548884531125433126629470756079461221477505173156515830787396981694722315458991408762410438365959104462874558402933332927666133037762307922540611965708286590336998255697711338457200826777031100998193515862828397128680668729952002218157650458964726965296685314572888815121130677161930761909839162547029439564556106798679497970761586981895535721225803842973232750856317902365529804527815556608272972708779478510382803624301713038727244634773181203122098045641269227554619647839404889571200380119990383479569418742751841143261661994684817925487202163758219101726269168479024753970775089101779361566748803299307206954780059140945359172720573640000780400283587813572097819311857959541121802950741537264038374594083021140016351792449055301438161753553244193898218714817452533367180979904939229926374385868727926555529303554085172241916032383817263009643002551122442055862967387354158959107024267091739198802336916295935676911761525860827217641691100330943031513610796743156185786537954728953467378338482314832074937445292490199215715222167400086247303706477514299629139105205915041590360224295080962048807741044210828794706910360582195472294980619918417711062966229114618757887491917536803567940372955091498791074059885237397157509260241371246420353533501069628429926610862040010479364371502853122468677211951894997856545591740985683267208965861472849268153059117052522249865368610526919877436072642282822523126137519727968596831957807820679097495978007720921154756899206477363895932803484781095260386365641889485595921327354507636040353987266073476556754570355050319846799950883236716330923603605548056010946874706264392570405928338074032822562107456690553935255812539652338460728411261328908671409241183492210167854367770151241106061977344866808081828209108819613788858951353075466138754300085108239095165286844746134821111416518835091918821482350530174176795280277357564456218870887546635674043822961855702443508367746997811362201559616131068218201998786034888647513013177601332734271285720711401965977265713743945350194943161191697818254652582882888411540050877438480514737750976723921535789124629060708892165470283023273963835378738533772564224993488538573104221374242854672009314171051704915343766991564979363882205439689413234933100419793491124780914548013910083990299370410949418149999201802926505347028610869306180782350732450996628359430270629771060957571747592016964545567037489458087631547323925463100676265033056627974134713728358609395743666863742496896438738185460957260937177663095489807703784763449707358626315206700618862299160428444923599993978402061579658478252234040370628346530563957649388580251399644302441963428983736796841823311583487378647210816531737128812319032547157400174355072184126333834714154408662701004266979389891502527346521163103618368936593839986375952535610223305475290488163560758502339572547327249218507877147112581336008052282940709342607502442531799405866388816638685258632684403619183911847560632013478417866159272146899999269438790221807800300894486444159848543972293761863019282016075921939342918745968689863230986342601517404142530604626977259006968233443681910383498949500834508453658311781857551118360729204879561507530718221070309134528308861099747112339922949654951377491911030217509738583272578984702234028399514279561105233502224708093541944547093604063837933204648039563852732395927974936587816561898250607254673583049799909404329441830791671903099598940032223789850745588065678558566051074764381224268121147151276289495302546008104229748502172128744360944144494897266298990167400306407270010929534968458125518367908489468669023268386384242384699241287436545788784502259121374432901286116344651226498677355055691359526007238530795764961609530307890698999890548277717544979171588671791241172813129209653909883015302213008168461143194146016913133941269733956462018921376767529412656592064165658316226102941200138658136160875486910001135493928093995154395677022069740895995277378388039305116805579422117748848106221817001817329702517817087854395606556552204901336414901629749859780070821134696451304078189986489235991753601251519996767635643404042434153748007436241973783984900141068268778757615779412679395587492995844000298928148505709094163414097081324148801063159659050966814898574421621955955070432743828080835632776125628908987848547419543661771112706865059724873186439314100329464993680599308187342732137237047795280761871656707425740650186591615666553316308932128491394696905969738927246686122874667967498423956477195606125983738582675032335030394711434850796328673264251220162946820620197392265253295822152774706195086610889198022706289845977938864856548866763375142546968439622678727034314559116561463943872905041759295002792335040970971153113637290224375554129717173956719417729906288199046761016219648125010638241374406800332003987579867180235643960802618573235584776255661471200065272713798973405570066310472247712424465606556317403797791217773899350451045506830352277840685871874440411538398857536589493333369475798759295111376521273886297523082421827402284705814152526590376433214020025432473636370523985565079023076741443695194917140039529494997647629933001940156991282054332298773700987036397426082201249246884934081108244117425922164767812121902979879230847257779916313952679764195230056085927869294645955178083285652422069969129544371401187689370599506910729960099850141674604207457350913868780774876450626706956888345164662190711399030535264976769339177212130492158097518928174051152452682962556070643128473010286173164755838275473095300392180798572486509714129712409353649485248441733770403217241980374698469569311800127597185747132434687281894954030271309870465133935913477100600939134134634551730538009536519889611972774836434866202768526039843697950282749511700708095983593524825428363601715322917463153035529015383827424199787426585926682804057737762428576375025561995340202530153663522191664365612502924177267929724653256953254898612101721957676729435374177833485589247059830263759066155135765613059297722283726847563294935433645112978466955177724312906438852030185448467194487579424651636416380637655740986022212264275406754390276034749630424702173783939605453081608672524379442953515700015804841385375738303089383610029699402191993088299402256627818587365778131286722336689297175857339790757241277738602292068204299486577548154753119537393678899255140172213333917367774643967136541118787639526839268762653020414400605148595845273102836589944673167496472664176143861370890635193254552639016391478437003951483985851312556682282549016147769319586947059168385487609540712898751465933182989544595044530854066300568118347705060522374049318634470091626038626922931134336513761777853186834802049655568073822130384507600335900590034321972249125608039836886735806542254117286812359853786372095824033257688972208720792403439762247980545584309755219045645021533916459155341500706294090371488609705181239564042200235410602578022154633366720991604344315316760193046122401134555381678143777879261865982324265065492809354525270461165928445719802239200465415107182428211233954570088041160240382290757250830958817290929428577277217468875129900199413138166141371951784859407689379646893113651992440052578992908972273212709157774374460062607657595740964984223919590831095094787008964348932214266894242734964403787213940609181808280182853719891015086203325827840236121958534978178025807300844041400844608085218652127987389178095392117506087435161496333557137138603896446393935063256830329237237349086223904771108186885128946469443225849881056218234209168506345213283197915457823048693699564368952076895622999699202803350216751977888355990909911246029664438856608326324122979478388650342062502413122031050871917270439393084756576109117664693699748940762268135945426213952287948148521496970718490872983439689379880191618950376925596983991424060459090688060367651513660827894193125327398538687524303163673125592098583230612518031643948963821405126937252019416515481415643298618906101470363378969049200992651333420510546423534889752008144506450415844088918845242737884608313734674904820290047195041788112422182619457181992763060690073911992222416436892832623544419255186535141075639016696449170135092875267542770352493411521651150960663139416790433586264268247748016716462974336417210216195753869226836055203391302171367054193008743519116376007610951167330945254560237785952786027415923016681990462993336644752517941616803404727557807839433899510754165973889680802432080618476651873480602326559278584683209489040560155727130339855570472337557196847729039615070776699962788179377155179826722840243373280544386158365551128520020913555346535666694523658435840197105998214341521123505325429321126149631766576636099950351596276598343940732869012488485861942997779433497377342837388222294802214152867496646212509028027657414001302531243725675206035701154059743057076343172722088291045446378537507532263449321862770366143177302203096974348137576417011346407296774786465006164791933341319680180969183327006315738350533718883458367329225323823782947775321483546081112163225422520063148688358863420385375630736369026979554154809524365806957480796636521695415258166389697935678954578849869653536662342020540735008110127285586389751534020650731070707727667418586843881394451531296714750615060823422126620322235494808225670473725633573273970822405416342512715463470612096871575162052529366494630660985445009565499297281798449824137830251239841095340071316663917842058553290808871361575952331330653791588684663649681926926695929919347050658556207027925840998779114054820653905687904262439304499338524106586522284378760373857144721635242061901785727683933811556725160328027212557926195903568657964064709254942220293560622503763914374108755119527471392882371875539725181837794405605527337713369630711669890795508832630914106950498013034679631568046622160315961652357768073851251887796984040450131476113296592339574470183124384475044130575697067115250604114408731698897117808100296119207489303462465330592270312957810130784231127828576025580922439882551386696247986814207226655729446621283685106657041068505636833894308521747373148959028434417067209531296233687694480879588888457307130252694106920866733641238126744782254612700673091802653266961946578814153091699413632266023141449462325368468759047001443587519746631329637301841243443885543348409226284895179592260808580646066592411755701945487396892522751426772761751329064412666363079052104220426731756223299082765705591817153237881400127906314883282683448761972597186918789952157381214720282598016355398018538802327531842562930596249334504584447619517924653725287445565179914676056373197717322451424633543669219275365136076473994338814716078932076584469606354688368825350062165665393825111637475248928468762554314211890218017294925904479064098286838576218390469068736949926778834331949087951970132719018251286058242534124924244230720076705221345928727677367311600820195907858585319092135562064518693354887008272167250999403197688904071613371595819073567551465714169705744120081096754239355784926487904947432966207455466468056552188818313763760614286609293939686983955980423110313467241090659354479213681856158557325784333120697413049163192428375442260162106636341860921570720228963958566355304362729404866474295793939779530382837473080886847426716301420548335204799726089211263368352949239572111508582949155788771138275459218019623072567391181184011316013698831332290466127039746664797675126263652892448414822788370664744439465512038535734694539885152765265626484800657352025162699375516282963554387522775342674309474807407373397803762866035196726654481363451078386814261185342751533557859812406859786281685252284360968432104118343696144167966732673135052544212504902630570549522222901389343600625709929713171442149001287589425773199981694500761579841331657984700466155764044987735334710129283186112414424655502116237978742846871755761762799763837810231565625938580781595503743718397448737097173415947470712117354349460622393608553832767108092645588868445934809178673440323514245318228666127974255951117900581245218128797463421856714223372436976312400896661755728595338487342009186748439129546815476852520875741047633794756341733593787554169194855616499947898142874670426833128077270442690078733560146851941943924015133141200982735495514260519306515612977969895104416190242591787535807124214074833297884644538628565600957963863700006657885524181727459163301330151917102971266295794254061431577091485865555324216067048802289051529018888326176213720551823635848170422500407525220578408683276455315481263001833622613436680677429321858706554221725490964277714045144025743916619211966037536873718944077830012164280386759075880637473085196914710418359095216580387555275817270693683083332621384519930328212561823102524857253768003247057853082463899139693466606156576451124571032729763512354473045782060180931853313447696903201112328665165527731497751346222899798890094818979935271056537767033654584325776605829541904504872142488062878000692733352110175998234558764702683815293700991874846614100032645778953769297162307504580804964177897982364618928105847830176717053010725735155375432026187928533265005764047939278622608874096035122071390551244624197939401315303587268622240113561358468918404266171477038377653527726382904603451425897472856374247535374113028714887260012778829170632349061634534663474768299784610252236180028651073779093290579651839340199297352606074984455010770771816477297483905809637502356733097908406754419187396422690021018821768694449177524086632022780166337002090748814185309510648803329242370294568705741942081990436499350571136710779717592212232466931631378388769100396411031567486079765665861147798899153559316501473609355478944093741329218621611101395878500639270210997718829601273931898221856189456881308044243013009473338012396756014173205029723635688789629447775759287979648096696201607988015271313434332711942371827650148120857837950986326790000603589496079619932317279325472528302511642329594005701032988915493279350302251578654559325701501943620162287811858257927948614225056043192703393984655225372506501026393077126399781371867027716708617758696163307777900606603633026525043039125521167592391589484157370630918188878919492634865667791380990467959196077122936891283465880393892376174978075925292781053523223122100916740718427721516767261514135733311040565942322839743296454594048956500364928738180230655449515079293222769104953078464060804350277676369793634666481994876957212446108277637751841212742447613843067015346937103820501802874989367844106510606664801858462207035808393845876400858477023949421026675714939534921834165809588962605929592665157841107242585414531383154067808564463630918315708440118786544934551879701632983923954931707254213768701910662159300500472657732123300653913597688026555375755439505023973161487664233985876774849378470006548010833577940956015469498530621985020127988006934513940379601782526904758138604269337213458487489243904702025517957459059668168048357254472648593903480896969105273464036453324140994509042657348444536562938803060843419178970986503236364380402876379449885527843418501655015982316756076226816772809134929170619162817234618222203417073715711030504866631649021720502949541245198142038188015513669444038811395591021498916224300534273863824307371118441541462710262853794416282365175231533042452488835913066506722662517781872456625864103771317801906430773810234812019460197882916976504099825438037345852548127672473365140805727190717245577759603637925139369085671206044703571956738144964863035120578426761595018389451541100379704731276428187980548748664167180527923934185389960738480050906583187147119639189243802107563771078318455998867858093398721625366419326710935214850574347703535625211940986012290865341463502893469362384051106128655931341030781469566547815437197147509157420680562603324371206751510369877753327174810493711495136485736046438448169552987211123905112422201616982332892339411080812403751554396257453086341220092171502677258892173539075990270388549727013463411113718060340251776189924763018842451646285110354572912083391506218468154406961612386844080310467921466676060435213431260266326797011519480316899999291284585482752021975292699460353491480628194613507963578244215461034257044925947060368403477295614666792984047307335905028398222784945043651292527284449736881592371190747605079882359370633106095570772306047409787619992819185120783200940066022046079372072418496217694072415737485585173733306627690987660850625586270395880272476396903704456608529107529665853858612357085234283251125695029781272029823284876222061297558626059691642128585624078314142033355983191888172090649399488225266513981489246941633736492617349694638197448783884098748596564671464006367174805712337691367060262002916260507826916265412551745599638052713269959303969561294148374576657333671418896686508895232651423698797907051859110655496446009994558613517052524645658503001433768885535496163125825031317458971575381026183934225551697959243865231123659022883679893311999571150571420009269862008561616824039724500896940968498527362509972997586344139463335171063501593198178469710928026829291880559500991755686971545919454338164212396720744698839733858433001683929308959479396319020068603316822625706704589418134274204210561660037368072196313101664270610677591056416433170087483201040896332045321060755746756299024434196437806294306694898957251171062713950010142473923475168900975842111491220075182664869736535939594741280400878038068232604613486521228190373685556759079211557697832244958835954356121685869159862748590688290666932217426941334357040799785636293555820045230664084741850858543457397607298637368274266850854368050082982546513488294804296651081737565573623100590685125959364977973787393561808320235894467029997627860988173523125047742206978292285472478311193783200268216808134600306661834158353461165449949342104563215957939952395732181165277278600304389572533668770680278044784778160684268478220532566338483975824483157988305567534560360280200285176889188020987936057090696618196110734017604146878341704472212441987905640064055161811387162711452429122305392147506759902319227871331092967614439591703624557891549246504791560281254369825046024120150041352157890149708748107626604107471914768484142043306679573970108793362692374367098756243951987895914022777567004037362056019330233831074349529621108248491138954065621451405586804987214653082609817741803816529696571679242566433038484507433341377347581765008698256664709514149370048479951526845863809109367135922602931717269565451941601185202650796895248962691167222185617402148447999009850921261824478331081980197230471260543058035534771320408844454859451777183794631700346254121408596966399647593384913064719104829486745849903248340434385271581342571531048562762448766624970391306973130362016795908116730408647345744402554776945893396551535207181030186378434721177471646559568276586056419921527568993076188781234382992386442581333131044341554844389638504732247239806610121159420540171333114821787124052723077232924750226721278491930878095876844099946585152129178386251098771081895991840632468712428118132806020298461250475465172994980359608470209680882400810517026008926008618118589486770606327395878936876476179496866801573749132988213128655288368454707041214033144763268711254541075438466775785429560896529641862656361343489365290769388944540730083914538260426380722972857879257765756388386116646907255477989083289400762511203455412777864391786713513810621869150540504311193479653033696662155656812187232749370778571658164009240900868130754202508538184624490189839492702770114766299473365727124491385977527158623679946633139240458611042482998598252767484276748909005331288678300235835692359009752388788151552002164897300635595795932815596013243288396771330199591265774318220655884336093965189798858064524955922766201966578704387287831963662291943443095256568728849842498032547423471184460660955524233828450323805814341898833564689514252212245539276936151330389189680111807879608885024377843543976594169084600331078075004540818497043240752235481372343368395148492507727909145129069341487136734118096315285280700749752030475860569798054973070943959509653672290905391565786671412461249433267066203072096453535040585911100290925939148395379705837541695660145895457112479373539826067062696545533710846763398146622268362735335812534709632412102558212457633256842457293400520858806198543916076222780193197570021039490255928180794048008269570038915301545805808274591867993957596814779582120510812596668257711612692608984890880774535644656404655023808981880197318857047812761989883240834428923236464281630595619867495568351985276801842022318544672080221089819185573041140862146079013557790592759579036656263942736644610449102282763720561013690474823519517883421074839244235963000903020623292984113056349596851822426000823198055541367772179300186620323931135133968003939804762635854833157158935560467865125600102155538022156283354810211225713052481250191280953547335245414735777300986146536835304223633089165333960595724192221691967486482364843693444161202719368351873314069155958676799307563160246783474148369996665356735812232972796433459831159767630146281091633345545500967091345017766177147242531493679496070234130006642736222141886399249160480025985224999771766997671378303680718693157666614690768118251207508018184773189690830710711688220456033507037364045475426005886285273749102999804528847742059125055896561592270300980514216264586340584588622708258684667475890694946243624568940247866193123800218120508910421014962191088632397358395547798716147102700106791890380211531060286157831506996847658716695023292050318910853846927308577289455122653109946846104519232357834310503091282020573892495402061227507758130449701811492556335727667633878901497665617425390794910229037447867205610947136050715963176346082792573600743663633753696698406845696844766482507907367257392499683553173657382447359558787002213539619337249924984741706657913186221534969259299013872136058897041635246332456997871972591486417457814204310303092789929557242324526541671394984900441472706701005515257993940434748475310985657231853622723674962765398498473525137204682747950446541018167273622807580329664619299669535939415931162947622493117886333565767944662792692378323489373676219560518807463574189133307077516868814727911521782862927304487669075690355368436798350172560367750579486768700963644032286605669760593377955998456269290545866803092607305011448158629080856944644512621954363704153991645747180633241057629045073634700089995822091847656650065201349636502071984330740689852901499137535449246847283364782148552538037077319098500129851100327068051564809218186273784357398748743799337259612850130374128835387545462358510110423963678667122360675902413549092129999443673553606170936193012297202811144864890138418523882312752694990992151458282202900888009519609864694677831435710348362794908808762607646484634513284172166915817865057784537908754185441767142871582727781600396324554611517876888479322808198127086368192543417665000005822139567386786867156672731498582838087820507231521610370929275966208887955115254739548067560556800864134877935608629770455267160351325823346416201664443202212611300675083936503118120573347948409887845514491464432734069566007770163708916863496835130345587843077884289041084978657619059672189943909315260236557885310458099475731394497326011635156365869778083881510240114214724683438317954731085654768917506305834854802144756309247525135842139855854496053959358683321781730772236015640940989309638412062445789747244440625121829940790771337364915055472381181635116153807156528611636008771802865232318592502424000417124783066295087689336808587686946593686284779668979570574878533974856941641524305238025144395832511907930837238232622087876116060477370012629658394662345570799128636120056954184308963381711250915674158563974557703586491873514965378102429152430594694958745139066831359317527539081665054029358147610274197063254103129260354162147252883490861228226858362450395998168566100503483934120208120763728622854993994533766000024168347501904623468385399338745216078649365831348373028177890986706802739631447492844460594268801941700199910593775552688799794351484983376203850990546504978671391531774162161601420128673667112044288697973501532411425253856663097905570010388136470978931404704626009787155890515565456330846156559731665387244493376394740694919512140923107307395857627551657569100047213944991720517604027962296796580672026095621000182207899328175365685501699804109837254049227936394739688618792992970878497290681723177452176794277778026769955518752202100883007002209301583485062237095228871211558117275628632210885859475084114728790618175841734508415546650594119417546099606660249139996811236882262803380947750511027524005004089488241415468614291621848416487442826741526854807179587354411544953706387876518687440551496192247565439365454387592275983383021808201433622499620982398869956761701058917122761697720852610948593697066374219802960709281062353021295628565099046849447262206628950671960917041622781342498282134336503734161866056934291063374963655889311881935174290670653263472307459835368864968570560137589351832539087825917346843986512166118111522622998155081634556857555720031291260105192761903001587570292267111524511905502878307619781279039596935086896221810309397116500463482025274110016579421117167566272229125325942164486451310043403036988939188572713585033181631204489716003795768539489792039329774658260898380701239177059799720937022282468349565452354410374098808834187185055755153891483427891808866221316886333337588618439315643318164848061570182391895630695675164042159172858883223562859570458315381683731999301102582138648690368165727825950652724699794447104490745930037318579327162405482073498917302016723288917720087021985355971717496322475421436513880536042657019998568925978556256261389066900929680705328322792893740532466341618584894377433936629912751731519623894411970342042557809042950707275037031300396010313240846425694764294249777628797338899520483671408160694845503172852007613181251859459018403188039798311267923889719990607438564950280107503454161033121429819688448263558238279693713450037553527493850884498873608668256456712319228784859033774196670905865098903023284671927604907863138064686743604388040486059616971599196853466604730218671546060830363188329358673650637721140777582965287076166640404700487997492529037359897195572131658083750095220921347951137532109623144663203131906485929504930885985243131333977111528451551334730114516543462716741338365377029335077312473440991184532052556014315003374518624289826780959212295907075826748513754690001060801069786590207045002447906955603131904718728150091892117228470825773171132379727924023190758551749857586536528781469825538083786065104061278968950019725757497798584762459846848518604715521224730290637123784167031757847697680481292932332052612112048046852213741571243909090301569764541372890232933539955122076374388494749810395794679574843412172250893225127207908426143478470727327968497286045217392373461834306077689659867169002203852680363803187739456221798796185733468783435579148889423850106876906985025659403960715317213489031922316343210934722879206519992792894474951877359417985698864749646703918051519838365090260691562380890419622493211544450417128793472762503325395742877744714708026204355407297979181519647076976586935240119183074955096236743051037180901973553842203773520338298747654558801696845125694638978557249219464570253818289986642022664909055766026061521580925859175206616972191630622464586666778508235776713568200741456641005013050794877187062257685357272248215980103874164428707548921855945597467003427381326505705423267139226518730833155083866155866314870110990297804503750848880904616624089852621515219200005293781581829872267026020550919907471618154417627014042422278111642117032114776829113344245697312850308601393358830907000865300129428908254953935407480172976932535812557640559674862677319118210042775437030101077210585045639108821332073646548003169555871929849200038117790713900040902073421030015322212772078147905638089292944607658636734352017327212447209100672932766265221880024546605433519372853761557477055571299216222217926156811332877119455656122575713892711824106012837563749547850077910862092425035314075558075653396670248156995726140368352044027622655024885878556191761581002153354053515366974221329466751035350583738592045079202449480496362085519279480398118082929722193035144227334784730770377725104819059972132390754352506850181508690260176697629897317711505325023819069256118593801395602208698412038748352683007783838348221529142821862792930503969799643707768025093901428680406476969316291032822205347322728497988631206236510040713647988320400267073693922804430497478186693866317154587708341380991277367040696501992253454427669395372157566852128080207998190796455064500796693583311593410964599720245693990278078072461208189185166881848483159004022824237438780755478859641692675207457147849671603766374860910008659039785411773143171282099922692073809649889863167605775430467861679237317948650286062233164525608867417293342303147694938956972506826048007213911869443705497794175372347566282794947294283083176128136279385993251060687900358976831686442186246971514365314513984325680821259540148017389911914621410870317498841981850989176754116464511452338413139251492041200103550159472470337820043760844723883967108770746979483250313338715565812793243206240476682957807806436524227977848174906665787786187418705029138617319516534908065976896356084668038411133050464252079950147116900311511183181111654004213688223519821156962954272639738283984597190970989905198358670025997064246503750709415793215448715465544799612032472774760689889042072784198228697781561195080656583812298571222254198712301748727888198080870662712511924591466672614416528687697735573590069306044364730378171247166667026397534649972065316648587274880190722720625576768764176091660920220084848424379656334938379840027473625991954577621926015504288742822434431554277237535594141403933963462744127913844005554370193762601142366055458948472228924578677901575927112852605794702728845032397088381524412580024777475333780346951890578123641352705860580823131050131777293887858419187299789664439938508400181514206960094310539718829594851259866192150027099295276121568150633764560179599667939724528092497462381724533057926874403814763627597018913078703304913784113302577247043519303454139385105340336623216941539425332517538506804526783603948978753742191832188604799091662506515621481851336693856122745419893648865456214885666150331693844593567005276012592225487466313345466522141561514445134069397961575360624496200380931929819781644846224905691388957545808005627215864545162898731780626764643099343599441812802846365277328460833134147349073073085861289162005815032437707815987768419329435141875456252604822309954561929319644483045619798011636525740824925598720591078603242327963361941187070542418073312178506269125461590091857035463152793536393733261080006473850359764057441446395849380330773654546474661360635608596035119401205617524425908616828325939355661029174302532765822859463659728864469555669912039304655132102307515720513383614634640095052807249121538615018589553959333395221286859149447333592697512318909776678184127145797611200697670931249373557459948811861058391397275934818816030009642906140623823334930138816220479218709216558636634921510195981050097742203312021260900070594809186202268009083885361102467567928872446674345443802135536130150051655986754720952416771859588363556151873513007318665023536378625342178735639356250463667993777723490656989068848877195086973523041139212163642035925874684221590355344558563151003329527889101627629084420536976394370881947994624401567975523951867666140913786458838461168153112896508984264562548891867294078907423624135913579794017416573235755812007098710543775323367130153418882995153273111100032616148619043541839574006296373990845980292748174372251107673301366713978536157244409949959388480612267340968234069837484036855733133462632304580743335026629825049460647761565421422036283082982694224334176939250771631218911760943960053944066418228994551931260929264807404471433978656516422358501882665192834033952235165003544893112433307972084316188455599404682035083829575163219135315952834115284355044154893082441989597186820197371629751731229880418777188675803273100318698555703673481851835367145163399357773528759251481459847266360142442108069954424210720187112748821359967699234048285620141442128080777066833959159819249052009951962080968429394462847584963663924042311057667551637195204940512631066473763952170037138104743946236149691204954615949572245358410922226109972508354764594234418276546223361775847578446122931521108371816163278490504362218951652756081501292122751233486244149329894248724762578187439520167592829381660850600353869091149509485161616116647630432910494290298145357498448947252681666455416192763955222304607731748256899509125853131401163285149770138699167233459656745071297236181422539304201055864535618349316762826841101008669513020538903100546666369091763695504305672031515930964410868466494716309517083159656362137749131755715694303647610213705233892086838857027922161660940361909807883060548437793512487334581491463259375999549022543390462930291089477168876485473268582568326132637255146993615083925405237016268903534734709137952472531773743682236757558164881894167811801705856126753244913464932348604011234747155117073104247851687282207696512797521730675260915868271381469928845356482130295195636103762700285351340846833407911600530754602070808268394329439422471015086266452105906901380137773503045603657844918146285577142737805590121064144918435432006943184505634489326704835762082973065285380955772282033729316155832679998038015208834990174804067616375667022856978218921411500840505678227725101311520006671705937422394288032294479429136578184219654136701564263869074530466831171670927993653081524948560170049669718400643023233827274049048078773222345797003044421798695688195148405386573635680253284867370396531099410258295036288909747594288284031903122418225102982790945345022301898366976355447768883185452496165521488792917617380396671085947099567976377425434148142177136552123190969086899013201696841080524472142965639554363088602588597343788622539424824209419362718626940651004491317918697039149588177681483669629931143577222157790771473876941171707586423998544369949516513581572404532595648693598537788215110834828463166057899860076698466795189155395236089555908808959088488383967694317801392640215069962670976601510203474285006496093429905326555082739223691937495421925948506961751435749956076882497588446369222598779454340081465962663056249199991265409402247344893039030207824838454060253117509644669304667229656125616643757174259367522044766716631596662162004617089225765876636930585935924846978761105279514522338630870556594467296306207168180222660537281687643219568588622319306056916233967134769658860764617268548361853427628391636470450929175195944882580074111904872154424857892444760234272200438060977975538159984929664015687420675402514453119396881295523985439251902477357277835274759919686467377864226881562961191060937778956103928545109971202613815687579293469055943386319202000434309265050322455807680032011132750640522685131878889719256880529751263428314333875024476385798391854951386206022647403738884263100553713699726921858332971696745419299150510252671044968258014260742294779968905657920191189233945324540491677350306506291097182745843513554965817721379821141796805880412752698938941999854444624874221953070187421890232340368547206951805004049557364380468052197402481787175727078528626938166295461937130382617842535949671190304866087588739014887739246889800951459634201688447485494182545142790078339219371762466145890247459877893452808359929947845477765404715864500073220800420169272956636500821105599229283500643930177653030953461426945363088076014602849196103195816294174821313228981950012604858176370144855561122104963671758734175602247586217849095937884330191316382998900310243258763016473250090586363790755514021933366598618987041807624721017057032222589590712698794414767778796891235158207323502373052011964538544686966330657122660664629300764116723087199168484791135545646614249652626091452949768294988566362478058453696279458593337592739348475569673816861092862700151601141910463366327167433973995451336866071739908954826202086900678674349871037062594459011734986228695681049804168617682642789791962694534894525208476198101534874505600773726781512358000007903312864291384109212816113072085007358601995313784493577382639775215609188655728301580439903576292885184685557607981474791588133780146384382340124049549345929865586264253715417308492296533370681291500135463681110659173616647001111395688896565960715106833906554181063494707697062609032599238627356114498696879539861058578689925539575508907540007915446016219603645954518160313746325706653098831417264886920656302011724683711925487149408790788634766972908649822969981944105103898666133316540025223156808867605397963915331171491667496662555540114061116247595710846628062878510709706595651858021783174634860353655543586299044848798257586966154626819605199027691498127119837490496760543892271557156225890845197389344547860220781426115766464150610711819760564072615473293313416755368165574161567190166990459070529543290254029184857494280624578403789126023858134006128354285788212461585997849914035988663381917939053661798904211997770599321258314018367737467244377238418116905846211425640043508359260167778898425714986759379247056729194763939365530516150970026950435727530741126135995531515111103143641109710007681118006762753168488069981889252736900091529223420997904004835325515913625228389965867660457085798775251003876890952929809186145860532586672985345793488562046961792318078409446570422089422534793772147348023894570761044595061204485088453236677251690525143031621080896313632823632806858385195272089773462723560940079305249851456628174964674326936606445090806486000889908513340391429202521359356051184984643017479460811385853907670923821604466680576862835154038165273881478068307412254379576643215399145205853425832016788150588951301202456633586995652570731886729171004238024810989662164239308138932725356714929364363475202828992867097457241427073918812444019822726163489748374134496798385474482992279213588950967955631008907371448648580012795468143270594058768558271349164700006026599078942207289995244205392544802524975423428461297042128503058946933190017457669616850090422745819705969748238198985709727164239419364495810026871302252601530035933817489708071167193881209711297155632661198189294191012634227292080668561485395293990795442216945849880641325665774592104308959759668172800030441346821539389161479596634266164749031782158140804633924310760148006193069611790329259306993334373103943310060807161264548951401730721694554370417614553752095635495880628245126187071656260965999177006533747309832576784353115280595193052471959429117780226710277009226711484704061125380041160829884260215518561966603495377238535427813421065940911034267639457501730212735088468287296212071530431592223388237473592417040572869400819582370709487781122329942556342216551102195097574977039049805551310786864638543806729665265934488271857247768692781889628621226570123197637220337450733527963853886260271967408702218167776539151393443491892734453895893002129234108198787015060074171240069635860232729425872490256598795342959651858403539907477573387715946254971833369666012741595728222160726889981664142307015067489576458752994110045448230816449033515547557668679313527330192429609272267864881976843796511653994026415199609530285440973591212615669567509285216466282179171880778369064849160620877161414369741229660071299094794368047584305551324142453112766639232075794505789871956862463222385196620478439575311052781007003639034099817091825091738399185905211764116880562830631938645277206870737780517465242269000192822024544784685772815313844151741570988121156008403127597688429217222913197514479856187451511815267319948006638269836492208391933671832998160593918878144175799732270843835618359823072442215612515674389906963225265916535230028775949828660194835059417135236953159123397504032754100420291001545093303533540132036790440529012960512639965235996769134108083442746547713250287467637799060216776763997403992318009454965187566388913594903735913851138513047051508818039414015259036638942579268813460729721759547278889628167794793805707178329460567648525486357910394059763749753687293113130275538336745308803857941943450691563369238132387472185759410439489452955897572562299214381423459758181545860411589396623885974706858665542291831201324720528346378077216982104425411326934578284796977675411217243034537376007309938374522738004810158936856241532881330468058241442734364330433327533978712690097834491739267160338680222819469738120257957186401828329812304348165968980154865186249181768261229372930811310528143375006517537022974770248022560561684271533279222688490453025160175617657091826332185874472612512535522274997769820242008550416911791521548439827987763620086183854833134380710646703321445256196667926626315910451680306193655233437115815419193724823882226550595609861252042743150780970744256511851193037891863024864078678773313833790836355152987471654075821332857347644908823245674385527660328282202584951903991941880116885016724935124699536645404298304335067273260499732342261321246984301437644041182194037165054092375466491217863841589057867816178150681220512899379640604614997008221429399323374917151685925545589020084530326643675306139839649505038498527607709116808700998842466223403106048054334056471916469634573902880635432151129280017695928408768104335864244665449640265539484238631416083194265309244339339029244768450008373272972592292771616611450201408643702762228493932188974355873682477271268746756679342201080644397790685614924255152348497149197721793488962078976031911934966696370547601321404186164362795174346573899460343217782198225398147035740314406005946270397356811343496731305097882208543112830827713249644097525907768238555287760057316845079789757986816936910266075730997002648889031461160804292837236977001907160123549425487188257609118689316000676717904852730064284180422772998064309365567579153873775916105063656101117347471239867612035990706809893360156246358342138576576727414928194303650499930341083882258991985384096240694633597587562155003246417017914766646138873658768046469940216531423490178623039744377589278409802096680532772360869859548959000863016681601463178177444221014394709947605053256574341457349484286478176285977419153522745309304423421159740872845158821366206681757511568774715259203235749490908602235203732599005878307065422881280683471942588436115722727485765731357541724086683739628572961243866142683154565165792614178735921725104590524031807776845919085599773171964978551083954853173149338942988795436099662803948509625745439197219126230941799650664384321540141619455414117677313726420066898674825817441260330881411796188793538943321197304672854615906722175851321235699169814828503639696302058795872264438313898402536121021873894174994201928611353439486783217495306185830279921929136913177681218450990245341085714439926332515851162666982880230990762996550054662623486149709933047692207078673127919564572673190698665229664197980471593608154675671914959950444004999608595806451328719189739276406910437743423692330163753756734029842061631695299942443053561053599440869718482498440272937425134861419278108777167981098366865174918506792927810481823295703918962278369572362854150321568027247129261914945671035581063610380629264172142285321674179111694055132728313430322852872102889889929333160556823126130083953532484575605806543742760288144054515144290410291083868180917268098461433340077356530842966010299521637948546618589103858561709567727758171868008968237991264747328690672874028055561852842864351422301476612030194839517481897886980910947680209745667648174332445058215487544150664526458889621038168651158007594673578264286357472045719959090533495376096045092859801247623234159346324840009571474535585734684993761480472941976439284808431838370452267199505465345282682096711006162686608275973493733939676009257078554534474744728620046137039804130527625771170982623555280915948236361929116903329896460921803443652414742659050862186929525431728800022472661793193798323569813782758698524188714470689615902711247721886608113500039563627838636425977890581931278586565424402188288615950618914682220854867065364312747436371877102532360394884282705977585393064360624881670360904417827421098413259516779781158425994147745795872961449228314260477996077207820273286423521902262257073987642939534703676492630174216325633514418043845178217531757603685014162349054997000395505657121917176647475869528093121562936838352390497008986805596354112683160949410338964623955857186984942906808645465582909561185093993712791468740953427020084887087876708916534945954199017873433645092597375004462242046825398739100880934450738360610249786830650881154445368004704119946204221680354187932444253244397120652027865548608978350907574399111796138377429417103612696620307491771200885739788932009328665168615905597847377134073810926005864507458163040540758691516767431106904875723307381503974715596451029418162778935283035951258942967576181492391877501428549858633003480958468464969012135389875337887173333451565895483706286774225828469656701798890896943493659741436165151143307559958346582046642614241094819820556206914914354151215004276958424621159791815435358437429605461351893863642220433080768287734247820045987188856413878453521204312821131771483330030347146796079912095802237944184905297172766912619304864670280854611676517715842312383400924416060587708109055532950648945837282128801643279421536573703430882614025714211633292240626408279603254440334874719820862125331576039872155274744878001732222042411586027905666994421279819882584899321599861467248033117451687328332981726313842688509688703063089492831097517458481373024438001808888315033990408868335867508688659239612015993629040148549023401300797614587933365213731423779253981506365450506683406278191007252381155245580502240494033177994180108902181526293125359285875429688921036059518157083951839203693163725535733848845316074215304684232985786538422549017341183420449813733850329657781565692281128023625430171131219952081318579160140553493540573370402160566758860804928828756429803580371364323045116716992342650482151041049483443559905633019748145648273857247664555207452369801626804647646098289171792515952143575531033494304842686849434712901736141443769167953918785409986046791060171326120101345973261141748692091637997825900019166252602593808821739648323998113488480361431557782332186240272401602816566202448272456996376717034728947715217638439372470879747264897526350068343342399553553287802474821705237826137037548667218224876853051343685151129933408992208006380173395059511114112855527575168244362125676216577689308294478035973269728755197323838242109036684202507547765948713243588831416086348779681494304758694743104689191976358495902228344956904160326016652040506361846622234114082705104443381440870933687372537079391445966412925269127718025774555296449392044284860515860841750806573797324754042774855344478142586516345747638871648099971525089228069532655901907528541624748795976410970774555227894257504745317870204569629841834344208048923534827235813457305699228271185474421499906853218039251984012420860196820198329958396543156726032082858949725738349821300477306716053969308506457294964709593477093133669057044316387787273131230267775843883422842605622565771465550690521560834697544158090379320985955956284376635188024713623016903782830604383546318207434861777489329840727588629540117680801575232183021112219490839258179855865054241523665453416758213263435017553964521818340785322482637357089104267384090865129837446355284353705042918826421614389289827495595558464559069174818561087260021287458140770588209467391239093070506894363774018849490283100587712033211196636814076696085466906011554866311300592943995705227228356163850286150817286320574957131687211225904790570312828294744612090148252785015500686272571510210341763720406485370588726597246555749549120486959781760957103529415515937181934296551749129759644624924457560083429980753748207831557835882509426285809255361528565189591701654156741669182700520338782292417144502784763828793076673946642624772276198333536524330589008672308048970789675608599890118337113027458308939204305489369619321929455923119678586823910942201148993725143066959149458135958652894582324491879356072007876563559077285131742018379142571361005371585937874709684514430509272170627892825424521765521487977888998989120329563872205799513522308898640441190583558068876275092789851490507427339982900977527343760329799969717312213644567709533191433579804956025304755442476514484791820112003030471505192297759927537057997409991512534890459260663579784212165481683790167032388424548306843685830762290121257048456058663093385745986934191757458525894665825594571220705273144262652102300298801607571569374196791124231576312181788503784944679111549723893905723967894330113093106430557900313847754784935291687033622982879746831245778450419864343392115682913368170594938777048848720540970013931659329734762636435572178405658341285124799398048219090655259938130514832830463645577229121793940210024633018048652506979060785117317668897686096251005852366367075880238073104440122086374655772405914324452645622421322900725048125825457025910963577274909944266353794378113054045378244796001202887364655522291280844087540327541652335162422894225929851401186098635015115895391392150679559868810697800367470987430760057605977354688110190326380862179682036331056240632538211256680865334081444216645284945423485921800295718383513959857791922284700516726986217540327133850582198436247527126609704950393644063478985081068430832056073794260943459501255407723314429111234677786534722239056330237578721762282131052812410925690831438573492565277368409289303358214836467163499905402120647332254118737807448875738547327231866473629784811198407825461087820519393544564915592913965244290264637404251714667849370178237666460023852168706371740044044202632283866588720993111191400926849674921889521110327623617829212459593731135750087322536755694382889855753374684092642992515602379753941779594933635028410392271703557513388224531478201192146224569263350124649657390804015233324498182999895671791936628970351832322581353702279765051098026497787429266119914665328247936588551915943549299627359266835033734988379116542615974396454490291798677206498059646883259836048239487639179669279749804244429661772197430658735777088229382786670804315935364500180492392821095421952859332178538353765335152912238701534803772401479105569315966316283005639844041144834803197716921353973499554005391948312637996946558824808112650422024077655615446313999744853137845336464516950159215880182219584880651835672089762122375478222309425005622686611292180857553759500120877086426096301130060915386813061021687062125800867616873651023675661694471733967921854979868648890905182096296004569565048362375783379751444053522649824942015104441567967082085520340030283103486084449279263160420980798327350287364095361754790024919780050265723181355344703331332816398571141666103873071553559465056391527831389078959207954564585212883711800939888039739081701393099698593436431916180822742601311195891933960216205642099562891655381349699169488349393001788709724483181274753320111056947838444539034904479616183171800870058955298791472561985011610342384271507403269369304025795824399177028042731220132761769980111413727904323281413997102603432201791605119423476566075690836025578517004334127322785272264827134787421977048806470988984807989153271924430949073827778473078465347110542669221474719655868593394970030915408204670050469991395916253348970477956064354659953770214831574593853378061217121823084166726323207571426339517019099739842355601124496222657154803996084245492196846562680020315186010347610768840814372120160645854053735861539693128380344481421125069229464472033896364721852695338882061733665401752856815275013747573342204035761109169963365920695696542411955144151398575209962438429128326507968796917491231685057854410025874983925095763559457165592149299897059166670883423224405230612349272902548997921079290359787254395882561313343598319438104864195345717478055032168206251971912946707027270279208208220316237365399539401299880684097445224043886059557746375227939583415776381975407512684792136320882281888359271667535996279427585522413529254798398038356620792636955585941492084158189973424912883578461072731622132981340944800530858542793487926485707900244800818980743987313651078196156356536663264917276168961991750501116484827940049198493417299346294748890005512112991182656621840635920449712355338633727171722959240625128532300388574491601270630659432607785095319351413836444940710054247528115538948126301561127927356276190572295384773668587654077811340511633459556121243879519112472477978155970199246340622720505280884606719511184751650654859116434405634683574259231131826472954682746002751483383067464225713876626180947690413119179713045646616438955177462597527807468490748057325520340345188112687668288832954726461519541669662874971544404691417546990471770712414065466314084271313586326384044461301598967928054634671385064062883363522380292557262160468125744333916526734241726107095550824367302109626428329387040122144073200399818656940187590160842555382906436233660143929259761577704649623347902124996782132110283742777516072712858570690960581832091308726845942517231432022751540354726245260451202249097057575734872758893778411547483423500698234354128200699424174174715511453413726271966830137336524279401885659225920301312579749200624546384808149566746206295124564819461062404883648215974687267777385329345925379508687552042274958610615156804816389028432198007090357059434354697507333629872915185229897361703327062421689001311716071701427244789622693960978152044953188001746056891124713462507467934333612584216958235841229985576602770420261042184576993908302572990290042107479550699973764871167218728990026998725179723609751910563131134231361805679277616467507066951853736791859144382620977723307311829995999848018513268517409801097836637242151305181438462824507595112277439988439543936164398286196994686713373590999139916676019326366080481004223469243146511675660033466724491582591506169617765322828270094519684357398253739776912035252374808769104285297351898473155043757036132319117463501370609135606327340225302407060617114147492306277194142417585893048905982354443890679368259571436546375480569773039597208430089678882659166749642196481541298406839119134923694057211288182900470912721210716947843616119729705630793491227831588012071794416851499462689950623668185077828126611460685876583097146212786192424667507215087428075431525210645421158440814545226423083576877194452878485460445796414628639914145946761263392907836089799864668997212313489134785189999079817524238843315012278554111203048807340585242917181592865351172228305091788811975205684946983842670230578853364759126737080551496716611991014704875120956732131688963538253589133832859512982149716815962804275157413153910263631701962888285521612795810189774998309963736167390898049643830993078646159600164682988666664745884115576017933812615304706155316277456196297551728058384001449355590961351780828690965063622713002831720460352496548116312909957459307564348609903203503049550987141149101007642773376138871311711964490536062818419966892020623929185477739824407698800359106686884972057032957334138991199329857684351410975601205184903732335221261153580635073934732818691711776514458640110071203810916957469235093951919566668630697913835338229166514793304675189366632876698414286365070532183389745755188916835855703458755112196125268330919005776247952609369747391792493351081349863337782334596324305028874407714846984873823434116279543714918269602778629887319968059927200794089638190102755121323558696177885106354589906118270441839532220157378033640470635645456747154394080738098766255076087574548471108192838460622327048188303901510265763161456443870326815984124410077507267477977891121121047977970130052672968710042626509296122512982863067341154705036163394069862931573129527421888656324071527266748135121888008934826435843104011380889875397994510832839587384196832216522393358852353347795261571812953801998166229819309167218012899551735353879095342776122751708735787268883172466136684952071398360274566170950143025262505850257317593507180811225344210375697830201368357014012214563464628887353459039803670481234739577985618486609836346762957711843010396066189499155734260009971647684984119039443708538608689051038093414532821791139350034366287776275511795418458720767696576507473330446165070727851645285155889736813056295530367481919747387229636258550225642135661310453317846763786218393825478819371137415572352645131259101338525527246322930648847142618803705739062465338653052595809235417794606746146502435456025315673364719534718082009861167231309189711789619755761235105395456703611581268616328901756067896410678601753409404754742009604190605787812928491530618474222287968966240353130274847207228006595317405500025673408794602571437945655161352612151890181558710553368034452540456731375180964074891852286415364586104686381363215404169197523065554057170548190270043676680611994222833453557290715744598446409161203501764345548550795097213174148760881725460045316419226210645150187366870551977958624064523258873554666539150328750422813708591693292174152286871955320298681708423939278306800971724129670669460153723854695726121965972972782874127053230011827184087949673840892554910146257624376396049489764202518450388190265243054292482031859369100598587323183463488315744480862892867633805081962830857862375081966638035048873881367241873435656699718207502763286822832578468545667499638097147696005800652389475554096950141474647238843292622749947529223294368916867461543273502260964654631176263370310789855943588614150012491769453104527733763181845126080016834559913607568560512130015211365766190614620760095951093845185868688247573545438289713797347216054097293109431290714411351945494569345067958701991697336361232999745096926036729399160487254556055240524097965322538662628761520999240000929910470101329260913207400985279746370462150958124892418065158495838667198810192657341361176992379504611155859637759912855435193383408846784753308403572326692379706147674292195516247327063673275472305746049669621805675584905976414013619182568330703536932160277807132860878649738471996114508790720600641486890456901581111496927662870384431953305306089945253582439335637064759004495314623426918834092165595985394120311453043696577373903349500689249166391424797484261410731874404298955795090284865483539341513902782767218612504276989888210651636481528958457327242968275629108189460546251058320085243251437705662631165455773361205913475297934941146673846863610944635966672505988038261474636644214866060717702765914110496064792980185338388707201971529408268071643587929167838278913634885361053378716124700538581379290217773612409114466820869091867896361365440765863036837426472087918766216356638699370417106947932792987017258040678199779230017498647675571489228035637722566616801603111236651078353247432408267309688292763047637526072319911805234264248140074137940818182068077749794358114060229245736885464700458174459965093411459073281974796402310156925541829634157508253063282482324895295213679907345611669686246605449796694026959099836810122497985811889351208910899643917369758267717992448231802233755814514149879937549702334076651965243538545162561345518543481671532137119042282366017498760034136412839366036637700549579737069374513195534422286795087749650417508131715730735144963546730722800309350920992392211578483560047103195144901715388185863514657734355417236030177256141380903744481392423981580634166727359549198186620635717731688796690893797949154918632941626287855526096469366750890680303379843949759741319933631866582581510921565199290194684981335411238975067490331494248647525361534528759159993796433118803538054288619570958396712341495762895655145438190120119384159421857469137279020862726807915228852930906723895061596972652856403028354878066740161893462364613757015799378650629654795910989575948528416283503545491904873619253643197141377019059396159958818209533682738311506630116663205686666263395084455741938343772807631217316563346476728324400594060042089958919093460278290759218074223952460102290696367410377228975449001286464076700861570698728840873095978015578900410200360016724041974690967759509071419829647472658377072106309755517583919841878359727373283172971444578889221751073716551195992399883534334666624853464266456780653998735180091220515196627286627385345091533588312245723347617331775884058226914858282616242931739850418979033246669033187096358257788980024454731668963253258701624190488761723575974803767243021238559073437681069248008312220342592929483083050898930695614355350917980532654403796301522630408942900911450847910321819476115726302019033381136024924880255569944330006034902600522596795237271183841676943479301230334133200475922173161495316378126675419192544072548928971496123321619662264982971748833423801414187312949330737550075645159239179584110949114475860035197253886457451872508569186106544394941858047927007169350826977839601064341353349519133958836106304964113951215713934548744365404438784704682527437614088944740146785088548036702659827142205472961072585412569914026658095236540847898568384658563279877543844338055176375523844323749251153769279467373598911453696719065914538187248612193062745867938386217380040165542762926728024660043272215733121166522460328659257025658456375152083705426184484497520255662688097547901502037640558520902665247922765025078867439783425594155971518880663347993496144367257248849487761244209861829939958485391262401032230401275720614239074675544341079239438026076840057019729480074160775630134002510467311618292230496739055449785140398974599279284777178779628738597212325378026138407096911098121563458279816263600682976838322412681630110276387944290987659122181787266440021144788684605171192404804873270433711441638230997330591786374349561047866371044830919899537786667339516308971586887755176034984470822867195172296380228248687851858593402117581339607494889724561623342426990459658749499794628007720605049745519368814615176300923334111606575037176737166659054680555568816779164056854099381778820144438026871000233427163309837941510348398185600892178258006961108798095060527810024317257728856112705118590048561776236623970425425854875544799830741902465776699027720309071831217252647492862270115154087677855121749003918619052755473029710408504306653000643612474857251722794698236435225574546066510812474887886727786321063410314190038955082431333449228965925462536659706117766437431433101151205193224548217669032718431416234975259136915999853384989781665890765861030123336955928216706474887675704702661422278310707796373160858884230362742862569492557185463870474468666101060530101982247310219380479913722666433312854890143658598950275133970487970589342895855499611822290342407081177323748439666130067158236428324791126578547740974002279239425878384199233720602557954670040620747311796259060421620276833254757147614259952867627066075601929793638239483762618303713735124529358527684878416176928119093900085189514039887495977006898440163151028870003050866256905633789563147990708197527343156616953879626478940617573783111015577234662103410656949026139477720538308309094736375928569630902121091677980641550235890054522244976904446456124522710737003848023914598018090886324600467073608186941999878687315603932949409297519669775396835407181411815171381345374820099485562540917130555634997725014924593873621073240038723481373376924690030622911106959844972548176742907864869888510705517637738534881471981039816613881840759113623993442550564488140843166177191833415843262022885509572845756342499151441557033401337753060711249945765459603680703330131841041098091897053354289429304112584283827343673579712499635956422274959874899620171408909204945015801134366281826184945257909416859699797459418385580239313586253953058224990965967009889217820391435026985236352133591928871736249733442698432669341520820363417630124133966617090887053886247082576304837983559810507111632309416086007463452477032091006198749226515982482942892667272643602626363986513038960959915856916060013439235672843288072247147469621213181528682535400450068047587402931690317896750088207047580829777424153423718563380144779336921531198084274863894166363097809838399717675839534303179659818006491374404295864690372662947260962962017795106782438995724648525399913952913864330611853228073568246884855437909491160227680464792719411714384351965760241685180448253659517151008561261345055107299415400134237132942754827304910723774597987597941199886637430040707239160609324835354579261871574614757451719059378563627690785014319424688957075792382016710874561874376937044153534990174995599720975129426436578461909113427525983285383483100892888683483487117687889176321559728123549341099173482118825785608861213162018125834164579958099797221479088792753769335481223164889528798097531677843830446598927046969446108480125081557494453462258928097967636476437038194786669895374174244288131320220572533888866592807735721215123841154947279060002608376158935652378860716308509345121346555342388629223815942896579544402363569185222167646467381368111342764017637954437596341783247041092201806390674427442914425639789569508790711182176915671983923620460172063237495253155139125938313929999496183614158170726744368187378356653494255118486905131275849796195169480918791170764058835067909648774090613159773546851571063956862818308522203087054555171058039858618702066438244876376687880263270215390480221478677418891174318309943596231686637235906442054293501312160261606762180044567570908023448796475135518562425620631116039944038410620507646067696847352842066888788068455543627688976075573087969968897868453332681744694802996715621662299300969475536152972426858918186834819794737141825015547598108453507399208234429797142546828648847418471340524554843038754667199168652563746520736757964186101104737916513366145987365353000212220566151297692099941240384593656753838311161334572076454927451650291179965922368532201159954089293558115548428178493728193573481087991017121116262060599972696274539550607512264585302399883153981579638532839186330972896623992473641390945313030935568246471785807684942796834394160364463171958071240752205255463181602357536193601258138642411905961824853955321758748638597211219932289041964418484336916282518377023831543677128241374531319444641604825396992309595056612543452881482053922878366914001477024956138642167528733931271710195963841299267541215076584484210420573521789519613313044788470162597079740279054905990056202964611560737501106800337082322031124695757004010531275953199203669114111672108142479864504887126703950570084886910060977250704914377648776560795385679353730845950653052098163662700181037395156023931594614275758363214531458079270700186545545857098268793321912439925459077817327924161388172558334610528178018874100411846642730867167172545219562626738222537207713483234639063397716950600785001122992455512006032642413330667757509399933718219514131334503562824818020989734918734653800216897880342215458738220292215144702651019918184218901914528997086347795911801281306970508405758177328827999724430611205199549186191248362758856005526211438694248781355387995070431966509213285298565270005279519652569904005801356649799973988905728856344847556714973078934564866197297219531413948550676192558336438024665279741469143936333942644060961386853240066064791905442242358140762481182696744640471571205950365911360509341615971969663479005561052137469133440753434836844911216773230571930337878341050842188141562151817228307904730614366846863190168775642033466012378071257373231773167866670977412230055817045224742494122768657001614815480886389342327808296504831411117125854366006129100301911363366635462725340148163115699097546924506452655915730781135669083514853461079087450426893266049046358760943148246189109888331053435981449183070042950258286853802665952107835794572441321903822803583801049187879696028798479341014720421494937708191997720288734082958189307822443828640949368156445584243286138158838509414988608159972694174184614241415605898124202331461838832951647192843620256129781990326606681206593964789590844898201805005110159628059994291303774571483148178141110384597524262828154161108958024851857571565558751262531154763673158008111729113523915817810207513081880878968497051907488844558598282717262167756149893425005530004309955730616600615362188851860381023109441491417292833348809865423545718321532282952189755560650825710389752090424992099231693273807626362965969338453275449367170188013265949630045091418113151234760763827027989108302952859816405514378437676656887931786453632037158947381603186824128589000727618633182049727080141284703978274669215249125183034997545419941084588588451324611492638178560053251783552618456813878358430963239825128121976767834757842750237332626586467013612091020585417876895274644521709874565679633326214748748050556062553648203427912191856354602348554614612703282802894898609678774145359367621224531927244824920114670647174099612786478731814598041341219167013141616516321811947102516176059214049010550873944011418882980168370637852175153523618214569342515528788043420087606293308866907668144417406030143158935145096476779149858502329236144411774982602928011182349421656656216115860231472569337538244042974511247633418263988470532032859414304359477857318451320318719940180918422789472057778983112983712867251124554416795600629277748473183095581746587421466261633421156181515002182027032982633012340382933709013031350014886169695870033934432847826834365434139249485973836340423391659984647100080686004446438120436274395934010674041457311318518150947355430659374401733720926006205232505524668174299273112627527832955529893767546817917432083630876325326727967796065463593090556143626335397913011877795176458131469249319543243012214605443769119988122049105188431080398025298158212057696917056273054629110027819907754106072951478609145548875689676656316630909029358365595896773797407587996262964246197319622709462100786172538811590514692077869896224790092111613305446210911368727635896395952074759156868880264217805547912726554667800313423121139574963726137929691332308988706927442472810950974251376259765929072569804005918356098057835318685238586103648751264272329509212267984494241652417399987970962533780416141035115162167506920600056126377536912729360297837122407507542089036112186114594949723972565093919228935629764370808611572818476327363275621597064171480792021244325555446884796988032337973227589676762940813587846857629667447460117950319729138871454358357785534038930285083821632082521795596635427001212083351171839688277360308103048828806249752802047572904007582277647726162956311328166430164038117874582345638767771564347264729661634891279326924302948920588509732332058679084282510771372430894045949344289207340412130412015571605098104603567650504542911866414940020684442861826012470981626319062634532458102485243685361592496274639637539174287864526097344921093315343173288967206172426053102423888434481360646103737976910092656479973946151549543737878863554399186935102496413352386446747354848523494295080833093624034200693218994546537228296558583377908881142610853938251572458445278709114032396040169222513275405627734476802340740590899102736149163939714246725729719458055942732732623381488753286730151307884426577494952851798648133595378602705691220638948689508409301216748761134638585152512249198887435676082668136597123048791094000906289388836180118334074085292438006834350590559834093444846389719260747358312841136086419537245642918200387224479142246394581900979306937947235112883457401796696098522547681533436349597834260806421734890516359311311280949001444649608679676294652791713350361762455862848491529954417505109688322237069981659138221809186295622923401490588042634077774709654034493663029885130552105468935362021750219286204749824258920763157527289278876826125417684940500515594775769121650230474566801821076234124642084344989217207555516519494869972644383574876673870017215441603998050594693543682063350874490386877226194560120247345221344377710227290594246236202692400116532226057812010417001113891674490660923293640071117530615044687897144090188300955487351551290864299761203248133918224119289963165087476688976060723735081909210608238046895547457624610704514187889413176101170461437456973068776596772823892946738553342347295736451470677974007822957493851138424890647187866379942731027481236065817426657750580595362715826613182476658902506662053149706268483682875384414218494868031343134766208428689506672722187772750176254118474403522922431324747752278803064560114075446887030359482979925677984477236807263589241819454078072010009286606937447254336126513924372261929681324836631888886151237554730626483338588779698852486257277172325414457298919688543354880681156967044095706227512412690191704517982964272101217613304200918921727212093235781975676587269397721605088153192331152347846597094152905802389251626410061816444056805631193575677976793500921257338823015989217737115295684880307126300708655650878425529429526152214128190954397137623515488135621093046668277564490055161874204548669300983105883368890168615690567655832391942414032907626260436995065753963316340756428369651617857266495164488523624043412026485400453084524030991315666967077437821523571911139228315983217425453540831269881269812965263109137314540612048052093227865224240041803768538543728608363297599023952883335790264013955088373265160864644895513485214430360395805546379209654374913783829814286463586177515683395150281729105652876492418102399990203257653665696302779870570977068538625396078997427672177871777453516414674964649742655281259767004258766322239322671966458999480401331701429250419776507738060710445503818342537363272279100749214577138845629062688823985329413862832556971806835688525506668524365145903473569407147816080894560970863735991466807688525500035324466654151650311783588709061439023347098694505795294067322566471158301594112096015049485231400105726817692953628630615730570263912590172424012275227965299873921268238523686335943784332235238005522555331019303799860901175596016940902778464538578452122950863824037109491814362250367270209670368073393083358437927361753889078273768514891006267178336698695566760134507479726945913255291579919187362910697607989678655309648051348115137710805252037341144569313346299243406781712873091448010594140937233632636798853933569827681417707163003457779941471957463084455849480993276691267486762274498581210706351449497906998840715467211371066952089989080889772451524021727941216847180673468690330186243341251867711402099665412881410268845013522831571753342447422768352383187311322075262518783250855223486057817120137119430554976680199654217103485642623677347679579235948764090866317695693810444911035542092780005844223343820035325363861724807766475901818614814418259377906360171775204659380910180561260060126354415756177410928762651480343391053621751968033880812161910338642084158105019407634874343448168865944436576503529623430800807835118325821211270355207123110503546273086792302104468894879196430687149112072226889434689363841391392386312574853575448885062817938425749872262279589007229938338179465999797058563083438242773327653104982412798908915638074077601611406080849882317112456943710027842633569550538891048973282546929247134693599524828641083193643863033250374451052957915897750115120230569748456080343741191991533992009309871782905160493362255007475437920283404594389371117717844201619107824433890346356479744727080254909821649420062370882003432931844335960259282406944807851994834599860575018496463783573595516489805106154949221947544357440574688118343345153766419045040915210485086577996358509794874687336524541584672251073523425381522959594009109002285745505714154548574118105570250556675528462155392581387557425839425332769032128441251898808410870175656777355877813452443042125446619046855178015837384265637688815504506936821393205198228934573347786561110885948269164253176372094449303459326449627769662742508017982827145346418542399832361098115576678396794739168189885629820002498820353010293647557776447035751450797913330114149917320227281494405857396994982862616743526382105868809889470030003971869272639574796594976826943668348461028375841775670200787269184356927353351876964892069865604860092655167383876455874748415408295788262459738437649381666982742152480487435092102297526130026534045221695561049273433527213591746663104559505805416144989138444329814882661306170464765384120634428698256569335943113371048978949651124177831085074089521604467730890474327764426189501223432717381984642922155171956616669041759412798277616328338397047162283870937515722911341276720671648784561960006414336041802387843429366164687389301098140596222559225478875243626908252471652479112199979980621356253602316092088734212339267199605599908662879018528986025985333740568041798071202555371902255682116818530684718548790282380193744791822680177060954248350132842788957209410567375151991134456410507220570939668951677747826419670114044001768067638775663920054460388622496333953123556184183042779450243559441723709618139606657196158799088962486504918517142430907722930752754814391909607436063743683348688405392587507065613365972698667016406703140008079892738173833217884045691134221670539995069648605804708673792734106579982093981953707093808546016310842452371820005002479334360271048620659817748564114361464210944665304539866027827456526301743693399050667486487623364578785409060146642786864712648462454394524023127356930362977013531640507210366055830227562140462424146459410331052358983867404103550129324557902931224109279927905159237171913187104345660020442295567753650334106099886263575072788419392148901325960241356449161497558114448069485160423406540498850197950506847782087871445429056106364986893902541435543846135580682124684188232453860761960148551358040968475819546724697162325036541406493060664224093645957702145133251632621880671881078822996455191484429836896687920954670242091072654740427071917759813631343140191328384077690656029213251864847305812595311043086836867377676649268153662749424897514187304736652036613287379159230902254997305446342557929870028902763324105506705646485843722748176189819806523965126320744855006100889015144939149953035644916021590911410510424492398960631373231288009960434148778500371082446849878154925270452466873879500195054080323513897650172080226054278206180273210046715721655687664438579643390021485106013696088917360742322272184785119250561674960004066065850374637136752743462084290010762646040790538526890643747575308601695246555237282365394685367744253271704165899193796409891996998578133525625092906748709200512486682073458970019038842008248413136171674575999397682580655348013390737851853611772762393631268937858805665925234313869142600708809483777000901519211681353411041623428490014648653323192039291447588021489334962382480004580892946531905119329777471326995559294022773344176041174960182617810788566955482417635206607761279913342220948642493843650748513540299104986055833689271480829501152511862773294059960477842967954072953623588322651533953721247285310743177213476901498811488896599284947410304830244824355058015086131510847909498941833361456271568214567825475803850704125290006411391477071571839342132793758443950372746674946762484271417585671272862244744042778749423735993018757211239755113915461265574401009836477401588006731692440789773068405219991411613457795459973065838901705878349283550023430005113206310428702920548905315049491045130354065494303099133761137885397684082196557489742216209439664567965074091602226144220493501456611965467926306038628987319554771654471015515459271518323106530968468194037268276813314503944385719635051435841911841580004015140559798451660095824316497629361589252771365760579082573899675301742098371828866761027542437184297494558883007885356717390245793577008232689023772919736182347345477118294622236988771365892063087132070090790695251923099926321534120306959460628998804582581431776083512083461466876030515945994897580660359560153551318813227180307338495911501401547985265200752638989712940168387429342889727214560647334904688684511380636426110728755877046007431771765761809675621994548005800524926245113697540583219074015178916996226509685181469330555816094971973712024781905578135026677405600986141198390474213693319933533222893016466644709667012625234082807180522785434670989122415989591524652273729209425273374248156673375784254981348030077927284382357972085960944712855150553589928824249397312515463888542004215611323534698094306677881577554265566043308820157804385246282016117985679798145083318890318442006968228962461373536525288513145825410443258668614676928234035864400687923607801502375615848026934590302442617364108542476446741079479079677417024128152227831355410520532934596389487725991454427616107495285308360162224925347714681185573852053943491077781096437128195077707633638634243181758610252423733912086221380265345717457425558955235878052484730045392194994338290181936043201638390304571203339703003092165959514676562282536846520950594781913003770244173238207661168347654689011847736428249207185804114892788060990982888838543641728935628891064057305195750584187752889878429214418227209830805198783094103054607176836847919821505464533621907791629568298574509114347521833978848961803975911508639008724145596377116761218976677379550795361877130056555640522421709891815034215703647391069433423529371539642450674627426096725369694889925300840950171723383165584101824289888230315933470072747977264992465301036398235883743945081175000243739034827534493938778838154019775484547047855314600308189894864500133278079446445968147519111657648944058219304154478978949838871735276789056956492380743278314948151852761779530511472142755598020253953232494890816001546814807781919632912276595011609330901937886520492589868883455984268878511124198172064063667910797896377114716407619074055872432988205233423177674465030472139856904295056706965388861864277620168051114562636543310053897353760185143909969853700339371021246767422149500043721364477301817242363734496847127990617598451712349415723792119675319925464654757239855757878323835874147288420343188085655204066649104836047715468002202394060084565321705971848338158597736053154992233291508923180592038600065295889340182482150324604011390661298212470809212336720319181822915574157860711160557441381557878303477521718199098732989020669026405416663510857458758159460709748245159461567201763121370529836576190351988757756324497964424426172666039125357826030013311583265257454827825802402870495860283583412017339391400077261646005368534871330889253584007853134123999600776576993652390089787632023189095603519190497908552023758219895055231977340444310210877123280848158382542420246229424002914349426424561203557742172905209047537916783893451190966009760065045698794813003493728394089530033324771437185624936901087054051913264110757923054322758821853559615496633628933131431289432889808420536037073836182639749469343091527738924836224472541244064596331593744163134727992301175588527069205573688910768071870123940544669756358938710671709322079949236979490239848213349630488630007182579474420647671776424686546593209572933609544601918372532143215278686640833673640002269810349225470321421024033680827913793306686743089892192224827701435086536192405250786920830129197491110706622353891506352246771768014924438447193652538404851847670188975788595714630263929050439575383695661602447925622707153445513944542358845864239590082725585513359221566802324109651843643281360342762205893865712929917874671967404731217049445872307080971853373340232494103350119117335141475007374407002117122370540320016411310775699604955922339036647910310898449334233979445395895565305462488663195016921138082606652988126821271876352402670534767260448285949792782885702861462520102465619020729147456140432518427442159869723739027399002143348419853262206084854159981882382071195083324683019731453847083403944387041750772491539770607786574596061705184351913538609419919586276654407517691420801411218772359132014981807046698835107317946935574120250553300403006685874957143624719915426570128229826069491579395329735569273107424751660161964295233904212318051101887572657702135846289813820857816995465217192174864314530481864107293236804987004821684762737045665719678846848756275412596951212224474181927197985415299510899937257103443211124797914222089253896792545651651719171843819668526628953421586584271831650946599685175203031768566234850868897938613604342579512054698088247566200136508039642010790762192455346001761209027839697056539038716926598717349785519523102997785683816966886485847769657587556437937774901491823760961215578685353468409635160331095182834992982121190967270390687305540888617307002182425309899822165518647479053418229194617839509818777223224048414518178413195550345129135160551672069960272320928625462108174320415759722271820738025761372654458585624114271397951214782339127672509967347578904962409626948255656100244801222842825823664772659083363162226804944664272502202343518324912020748544371165151131103901645895594628661736708336020108581089720884837502903506858566159221046262965418649835744735859300284248221849377559964204883982928223171728023508248910330146013194152191673807685254231485882032046697892334165489072799563766041262764882884142628272982718795154157496413577495404867249349552434037965214585014330482116422773872949454448063231708018304610197794828094203389247802659720429620938408258311366848720875325258293190269573090011866386100167288630234442070143060208221381740351589703397336415042036418776727530291286940583977355373063554272340988887158430782140792865111916123269421966866235760139531925758712076011600139329909736380108032549244070930591744740972066529062647736008183938692202928967175526485096429750490038324152013897877459961565679013180911471855474489170682562755538186647233286736964239375983610363390075413621882115542971179785299649705111753861325774152969584073357979600290822944251429000389951528775068808015424135481025382262951052049857733646600580792959492851466564271091065428373938262980915430451903724134802029290609644418905590694169364781800465367500124223510047479093664284671940635603747182579057193393903147491466683417262592505899287234400556828719910481141120314395902135266231676704236717120514172031832232618654461787471230922622846756557654261626594935553560442414521273894252665688118312856148398138370793343015992534378420918931450285831574127496318899252864719683576279395374304820744750229656341004829415119716635829710322780553436846088798327716475287849156982215096634253767148245119006258424349034737279572255503845867321100036271248022523484509435952510493851165461807626595115512510876379093645019601038762398221859195931200285458009123157039264354771553432206488050117668881913337450998629827971369462626465372125096195930612885860326732803483340068452582898128575209918183816482755385971896208152776760369645684256331991928324299383124452409026719139605009020416807264430213081897371241533530529829413857699806394622803337839119785880871594877345013700272105805564169671110184479235298882976902774949756513127070346434367733362989762424752807025037739533979979595170510376461950954470203998087645333451795324608335461361361591623299390654127900464084532715936388028178648496492731333512323912517261540303925754067866653127072804523308144529568606947867090810449788341759600015014697000665060262904134746303854287973243977882631030252237912984721759802557231269763013477725361844980290290464785691410569785940997282441165773030168854704153721291721461735735225022536012496961814193625967186280173405527583646150394690524229439736030342165686979406218917558422495368871282128614972091996840706245346155911562819456014853417210528222567957109859279248865573725139157918066633809483237840428497538387174539893427977287816871358470524788647851869840812813400752796489259456292386324704292773552572345607317631793796934423418956867444699435954238642528832501297929756081647395913750612876133894625102805099053342908018838400422714402771484688733944495203998269723509869703105219494965398820316599247204128655605332859707308261779611268357618433284585977812717120891988954525263845161720847242530627305560681486000026754884331567955552376261391871178932147889440315433822040620520508468619822293120174259481819326880500333471137802735959478620675172452553870841411937123588929873396267116312229903286219846852450446041176644423933033189758501370361322056879876998937038995078438000025721551473932518283239288139255473333707993206070685390384193753258830614737853532808118403964095361027118512488247904329756848283001271910830082396709514746935185082480634345159233924898802790016522643719987716759829716614079398808386217718574436610375856560763254443896825229605086795226807233127461551612405301303199647175741160673384245018508659132564818184397360428266477395704220928939244336458160379220022964197289468002583663284611983463439906035363418111746703974079016436589277269973567768077785553556570221166709909661958979553914090266885182952699260863288468575323825514196300212015724572881678522082407690912526355420851622338931319496339724541674070694981116407710863703267550596334137693035097285290184462602923911586544615953592458578479003094824246799976217723700930908119268059750752840099081027903090598685770035926900163699214980285986265092002820724933238667951723976466152003584936037470171121415987906811705061217828192895561343273102670860997887831830961481106654498128748610343143325951197930340523115821524540139695285037918143655766045399418550880453907583001646828625520897798911695814305823370021982548831670711207760651204298038184616499425159084455418873895805293208163962937649732238151400035550082081847769847204675948879948884423517591250730603315071012417563491391117218091676086351201045707682299486116127530026025540274912067234444965828958427465891579706921020193499568821869026372317246924710834252649355153193983356821460555837515178459322273943972268166787232657404374567313458763575434757454837352404105536844036524746813056471639007751846784973209855495739038664581511388681409833535101005226764877391438679330961367531311479145363021143976462687410015799292630426326703888265627638494191183076623409436787635748127629801168124063967984960360434506846431210794287843794089333532665438518152808353327346956652484570705329073082224362958589061580411743453999447205639608111252049126906667505206004277796700835657200655607117411957477556952783311690617658243127722594990004869099403831174753113800819623416150191199218159069812521561945473930914016548689964217213677642067220037239512098142787869738735286220040501533384738488035388904858316997507546212967483146114319824562240005461592243662411090848486424975958177524127853952015246330466497050601608349831292295053291113458213208495268438335848426348634717915888000731025074141341323233601219636547322889104102014897185232030938204693594562884025186236304255675833207261157762657206373341684801827951031329913505858745949579167394354186307688579087898593049848434431578342242388172763250482655136271293180700235185741269941034134519011300554614134600062292844913230946809945988039233290283603072640572039741770407766661567514381177339202922039303892516945055422155867587987203723548226807007663905615102929381037776142935285062033542047755303694237743212496470878369034175825563668906556469562322518582251474863662295827270895963609444793759033567926040095456116124864637932498908421195048123464036032656934258798049290956593435160399242256822910807980478073947152839066121937583298565210545175210660134386594899811046310886156935846938160514115966411203001524471717294020222412817515328667994076048386058868650862184071098200378940339097549270102936968109767484688954391305935233024475823434632130781304492784116630188061894459490321555504054368476065572638382582444180311583131858824997673512787213476637630943465053062332375523668448207522057909570693030061170966248212786327499585920160510902074145876367250884812626133678667869187275485715886918511046544329842390944150205170150332845009538312705585207524931225135184953179303584273529893570523318970445807275779457153137117611056146098918621269088057351473769506845769217221003043461154020362798317445799033247156143420251569313040270793109172642597674614315406827524216884507569034601622183199800950916612421832716664714921498147580432683944465348530626553069062431702068315542801649691652262328877861143364922682858812133280900396359423195151640625710235688194996739435994271277771251128679696235754650494119531629371724319145632830256830128517398099406484072274263896075300060849510890612933185920265414878294912993882039850148276507710884184756281226940410462140081135634353929455800916850336129330073822696575230453040175599221792254438676471369368042008010974396199356446774253940317515920319218707498440143790561562120888290495839803518456590073003149309924041200733549565036974517482458752357994881716515226420410212260266052577008859050098152462718832425867914713673538856153444039571939053847442607700793445339359269391096122238557715351108103867064519003217061319967399631676825189639423569023082464956916225459735058497479382859941798764667014346641035101270683541925350640634299373945377935484163656249503710231273513045294263288830643569242534137085410245208461359478645927539970945248154761343671168185871434175474104513623039428542360399695203306017633666858493437362936140007257816312036509405202982904579045807904009035786078986971035865254049019055179107163750335663727493492018934522364623873111917554907274836814590203174694559448655887918463140815060203733577616478741680022274373498670530431311100253551508223871281790597064989501512909080173617425601877969981890973972997779754685126310263759137621120128727006492364026793664799422447098384269072055466755514708787392268768379527796269529300115879379888580090626593278431028078182591698341378941580951962400857086945191544745032006154055114530227988397429503520747239678683506409571948454285958240584301692953293858801316839387916236878089260541464597397137145980019981267787412795952168073474063091036681575566588091544719832162118128310600271703792004973229547294043172042060648818276910736043778266918001730795515904973119672262745210745457646873416325131890640290349516669934737469080343715945057624840191157230856723351644004360986624122811027033265332263684543156535751404425866994782218881668747094288469165115665128707372179613828806095420349342625285134275494380210299751235239712563016639403421977281619515706031380239260664480454414918926741193540450327413119987212542064882674373689224274650368050383058033226586279988691046913151957437669728046063093200081435241542444727440197156804216549045240338552740958501106946300596466198886630051025906172449695861947736131557293489336545852804256986961398484707807990032877159291811905425938537422458671944298495212797961665142025317790154394246285484955801368802642801507696338641600716063736052768591861835271049160251442373527246353296400152126917544680974882759892923133568039983255942135624833561702179040294459849513349041730638746647399501262359282287764673838698238574416694179205029584367778011059333467524831502465226669471895895474914725319946998053451265680762628457939572424341459835381590205830220765440795855038768156415438439806628417458468132925330975965704293295549384392771865224429907246246065142770346111419615784578895993615180171153805321330142133646021190793767872098614439851287816730064661893779267183953568171975145949312356769125885414649636431006445529563569692902866198836136772917330817576486288528039687331742030226674616500719802186173853919334310158563708895479991066692112188843677689986026328869100011917888170619346024553242791141234163515643941370020517856821625360090679590578004542778617952142411026393565782862556880948932691405608373948538563528541154309987399640762764508743777226343164084815495305943551753756670671821379957902532262667675919007117471597015548916844910678145437102292441598350852445280447488387593869982171308085995083427448508620701052687151067150546752925512191855821951059637567308190863792597372860111072702611110555019312904585137951664867662656578088423011297226673253508150064377706181519971368784771058197826438294451768046987684595925799243282618100736025255593445319012165207254722389879150063644679690260811123959607293910389239694483492128277284677012401199244210587708474590313477281608023308283612239873676197994636218610326657053547906379077906020004169546886222351759894485371943909136757287469949533208024963665582958235394896801325438596364084156116634691267606180538433113013872475111965659923244329477503499930189796617378193748131938015914865785780833375712696018510999515334062740724290722439347862103070423799985287307821724723885400464951750274306669716083040273063919899070558788324777503607702582232676842541753672368804022286017144234088498593924223510786660230735943083005965267974940915915978721443166155907629473905142222301641510578654448893988793844804060390547542351468305614937830752845919482193880461827018109019419189524673474186727757950669013581290247673385803765820273671330692459546379194462250063616315289894957779226423957909843001671590547792691939577995883235836663581050303079465744473960756814715055325496444229187274246562991357340905963015608593587078930234982835458872821341384684721185774429857456998933821650940997035210884106587219771773708190968105754390179960549636687376489467350792361387421459490965501026459435307506591421442226302347416154315637815731804963216940718172102620780809843999501830638864602897109087472770901108708077952396308326020793665467323311024698886850544483388073592705322898021557629411231745803206141964205382165097477788970075466379595850993272106351085784366108439750716830686597387923282195606399452727035423988860675697581157856515128046518935655883012639257201085475391621794031283693979319999398006442747674680357641976312219876764849087529664316399363483711469342060681767308911093937912077473955951059242821266789536581084143972029804209370985028176306210125835663231987835348631568717037066987797228623854524020047656875821446333398026633662288058110456516153627156746835980857689268811299665896304453540858880857872587348442655748557263742204239768969695222665003051873998803670277175529313616749586320849336101392075932892368165618818984347664817965536934993679828961943390236556427218407672508975800409436844138344978493199513093444312503617737829971815830983437363321656331166624168351323375881428542049913266651967675244690554765460245887617851819236643470133512672230304181887984955889781349672090034523265631469812842104916572280515230975033507288493668516362591121656324280318001746516697606770650376314495854686949411077960174681216882632222732855693862635636400653106841532982348051020506824090726467451094363002299447859320594599602761922618065721092900090023656984971175429818054668612509251179621612663574746742990824952298756384714651523451247078868625321488058423457976233524602038485864941529668215764510928639790661446347991527076276916566024043152749457766039367037836035595704134216835484692962923938233608404781441955450121071664715644356185152831246988945549451041781814898591528834517472473144941086408550106116219177030452301690029921372918025198713970339982848147155300199071353558911933004094582087551165165070803297979009644732053803448256546682488562291440168729716729846467234643412098655371423034284569991247162239849493113384925563000165657979754925956676662707496923869946865212014485432484337860872613091339334652070813149221679244680714841589281020670610107122384950449960944432735432695770174312219296422028519424836880118851704611950250145783054861915994450396153621675830934061339554616795047106215401714453660721510003973559182966244678351804944782841551517988012185210655182781055549009024161267154699260795896263515849669927683561720519829493612664575438763039215219980618616490441712215044133379326989151837177422389538232641410466252985430044694474328112569758593879492034479939202798952234656675391076863134105987775703088591249194883795686653668149498934355362843561101151857408969736421592870354404437289165982824517576032722357995907102194677705609951820057203798152165039636198704678943555311475151647413459863158084119474377230346061186917499881685314375689643595033202663479897484307306466302974510418233008105963562734924347761235124960104262348357741302617541333687471969754707577484285122718442420691788456326470093626169041279996540964511180376382630912378558896167001651932844899015821281566061092479726908546805400702561241774997365449017314512038761493519080546789132851615385215242073717356514947521016302910183987670638196304003722909336821125175204891231828092357450957257998131780397343985967115397642612312468216085041545411998006937590424152809529996320377605796884927942527403045482548007181353520960266765158919914739388348810729366891649299327823822332340382023080119021453387352194631030522638407689190854465789527813503176519202994301424231758362704117056815320924175004585462464772304084192762582483431911398860145818691999674184424861132536812751530816008020964781675382123833646066563293035701750560369092384963959871519287574813440705253050267785248328419458306958807153049905344077286636423131343351804933083520074231337653539534551913946284881992407322479048865083389497704193906214614827034235123215063573751867906103388135816764303522225823632336025715621207786200542757254186911437686495279922301620701539041279228361251472198295063192594248818481454295373723465068823317250758563546723923693631051290277619412789083615659144019156829115857722288291202304714204436634982121617870851096640531118613825249860491311170668527663850777741474168537413916165648816288786990797905393291728860226078920189813769263369862043960976015651964425158267809145100309398534746747363019768379009498659519695152842514378015988491732422801031595310002802816410679070237712047534092012238695044053203879982227909545688099620177916946156820713329234784619058537761708310409684534515986220607647495441009109844594598303723619410487599457829457067544261797507962784410331400631747083130238873963376529110873293249481611688397355816097000674816781260721052195184541706392248951460395295316310240919141618618129883158373432334292374700769308115650555851841273954450664846201483748947248549000410212709154863534707890732235061142415429348720131916197544458434254034709643564537097056719173343877499881809789337407680634967458184115141145205899332375159628941750098874609481198779460957011687767053896690666922911360999717540913686936079987172635529185033619821332922509564393070184444574661085281011328134300892316963910298118694795932987211244406311818629355853138175803367481331957067305274138182052609321676220360805873522348355948688081459990116575743129455350550195882618896700335112101934548909762264750562294296046901319130477463630721286360931536982535401082765801778014827247158759001301584289085665685324060589230978518795539963675263994079503234204134630470808213244572503477910982289949086276552571864205492662020844277926189134515469215973296757932338210840117811893068926152726242791827848791396076378033305694735102943341330941105136375471458712522337508901513691086587399683714120663889843749327186861239419436789049632242229077941395320295462163719242930989417089072246465259067226995861918178521602431954851005389494452755582587325335323669867119908335586789928773114197350383546345628964984655980970173211517913582829013685411363639007803386787320717637381670258117182939951948358634636473950211686193761443745059428895311024472475793520768214712000981491158308717566788882467285138174110757899990371826680183663794610077058013084989504716753998855495655222636719306487834497426959802078256850700759161497821120108327420930146786774192436320072100104896508679238475793587499591391271647989829798804459528592751473933290834951346592345927699854585021568226978424508755695369898124004334048360738797538168398937289850178175361123188964287800664287941030769213563242145055385747695375005398599778065548590930315280363522764827240925513070853585220088235416014085894435629589653699520083540048742411759018471729736064428861379025731497275537591182234330066942862575114646009732439156507131727527238313654122463091586039864018110814890914372094658772315275000797982722260057769241704011664414457681737225960432103560807221818691091166477935599743870779228465712835277189152965664097463243429992343077302801950386368998117076769734503255696878041857650494053342317675819810809552899622291401520901736383263952769039441490033498821356731373377935759048442178941556842991317648266995236447850826806704591985132923385460035117019258377807933905319228661862471974933470474653221413189830850554897725753531162775892085446739886419928377301931272840692492664554982734345873015526252060213593107608537224787865569052406324043672244830244431656702271450148640442866923270905925511548563197496675016421770168097180604840531415158205869502542928606389276016215282481336786169091673706391323910270507544889911421972715752536359220439597650853551840352906794923584337016935542464241198221785289902955319379855213816814721858525972012262469944014641922811378069874074510439632250735007248538573873776911964744057980598326212101544244362648313298779353447302515476880547960367650684769829386325338684168986521225404136135014572982137654894395065897823012888592446293524542442999282119753149904629853661583792470418634933472668131094103100915773947069024892182084984852178266279875678994755958381396755449667159476615535619083204429204452390092728972540820557012182731188503802097674615322866890124144793982763210157406148120391929623887126566246875476957485797733032386928565601160129697282880484183188662901355564816626724398223658583519971444556265476367256735109662879835634025860486597450804920049128132295063322559590359430198646698925738036559205447829573048433592258519397569735769681809614711985984972409301991534838705356696745332446729706295235711995554682889223588968568101126089076322432986438193908026552866288050208864752160371437478642642586545145394298751100485127698921492247765322974859825554337981742469936610511193980661685259948787761432316736118561076960231257853117806202552265937769590159781646518030828756259915871100799953589279251813214447367562173714953927408950879932683281438832789688161840023411507759571359410764309528914594748695843709023493940026911475858251183047312333769200349271786443525135218307797988504047614109704228944564067159356110336561159594800582017653600469894014742725441340688557645658468150567442799093124264536182445275458583233614408440253127402786722711914691789049683890625930231349942005825690642187185709181676412594407798413254466325246916025176133410865263112078580592946916200647681638874510451058143539934242497299223837502594284773493103885147142333350225447593659609592262012965825170813077580998217433549895738619126188489879767029110838694358249700216808611187143646484857492416173585324819077250560526891436021035794382125255586285901023173344977526927878280483046812581343450057216296438942534633016403125356688324515953424074242896759039991498769365335387173077059506867376961113494069402542394764271203437637192336843102908759421911254336537959134814246835510599984530281769670228353270867967328440327193509247778274572451445364500259620940826362285376425615880973503453535477567265206439008381525971715401213552949772535484842789999104308503745794190795885355792644530381931547488463999805929951881508439915659290912830758340786812080211011980934478251590229455127668147362716271803240798145239539944912627414259031090393547877870020827587635060770710437134043398408567179436439756412555529143505558738309171682600743151406700127204096016479485404275484294128297156820981647467860403740144054024207317840863087245420495700407644358562406125893632855061732409052496569664239688137444790278183185488903578495186818164356555326977376586032256605747216908721905729207278976265126688130479397833031542300487629662883691757817215971267390820060382119529668925076548849399733550365962880828809196499604035983620659820044169664658049876544767079068309608037115987935258005566383746746754105379201933328286283469923757967800315514302060007465858990601474631425509110926354007902435655108020596226502117601642845317843422081849115450643012148919746618138210818841831500848561987109705180276905792438607285738886507850366566908306405128681844760618409521216511485080991334695686749587375663754121748954686906414423275859435445198727221600372498320163498134280964369720603688051467837279327321928553777155297272652712113780805431581777446141801658536760611665062501614490686450884267292105310184684749655917708869586167355513110491132868330668299089465950414220220451177737293806504297391493334505299024302387995991569309548482627898852448112205107983570504008177137424229063863934582999028983686018132992435118078083759831480821190699114958801366279227492556889671548335043691309137646799795183626698565639053191619766299361120786329806272255397617689373881589175559731699074734987913176354844076521600018153764225909650449858006068651437018643699067752291076956447066985682655266807228845500500171795931330120931393303867506349513602884730730955248366774600440405398673535307366748347663660210328422305277746314192665816359132454352760641120871611395717114253389670288733811154762259509521855049052890538555910531733693196991621165098782772724288411482878945299187963698723213996766939984954882605887795190610272777237668688626348943926836182085739878141378098577835977781554049468124475902126494561165064430884848375077219894302603849722467746331288384089360946974303633866386139946579924697352566539576434892150125532231446219844551277072872197733131460589276892301300792901831378806410586546224436126308044034396130736319932710491246404333449472815953632872727163673115833739748289558662472443687252965651014767401415799709051182492292391101452657752941855276477549275785201939650479151621288445297157734003664962933491931371868424334615718232046862791648795139865798615146162772573994276027096845725407820924115380613210065015496710948862244146376467643620481258275750128758095538914516745345000335190093865100780768679444939575280727812128236678406458232135656395099767192337517076282569271628332097818000675692233288025876751235574219094411442750884721488097541847412110781595444941724377859477763809687663736719439050164601014985311173891193624472180240791511886506147947853999479319026449358949136873024242968535623240760325689354521745037464476712844278412766827902968495275440803980241844405619555148882300838758628753040369880123059314896588150894174435248412073865144056896725155254867576467700066831365632000985234479065832039122342460980434969587147613077367920968472221293220927022638090128030828134030790592719581751685061216490533337999592859512664663514771903012598716294531069136411720940050897793345160254852064490741014869073184298006923478826596288436115652545204603713571833884877587620193836385721868398910963383757459776791841568593019669891365499836797187710967156763717434360537051027148882602833877650058369771361315596243482781581069105953181458663167289683532512121282872232756867729338309091188552827443655374730896059088965406609670817933034285187527164489906076132117832682814432886587213019556428350056189805465424421517310064628123790983318268064421382982872273363915911543989301537324224303717037203651848034261618382608420080642037680887211150649262210127910538147895118249780309633493453760454362498171306489719951084986115629197492917924861747986557587686259373536642277574839971496284415659828737261955463855392686084679303725657364192452873586116404644505176888654082507303506952297622839030458756685604108136149180100251661966819448148891683980639581118539464008294939099015065925989012916491866336606033654329529339009635550113095469725888298693340564101533387625251507104745862274118209841434578728811364750153262806494097824523070980943839175972194307562943912120155342202214037216650473071182836777776578510549771972101686863080183564927401396140151743291294757549400474748124409000567381117285920752103468009993186075354111924100488047806108662417315452002290039224876715964978639406393873250522016024248344075959331871641239092074081541930223110611198721081707282304761624271526211425619497609036720371831469968558624427674392635597176991185994483325769710158205022340047750218227609806391009048076454769096756985297410252747452094037534144510643364564406008687828182045930590967540684972051289877177356632149434938806489738367332004159877415989399774527534197576652384821046871242523623907988502639713269137943205937017626873243672051616185258759777587751531339743549717356903873195910840344749906628044836356354747732308709863250337526440045711923848293024963645070952433165865124349745471962794445278395596987890262238694790366020517535336016967022650805553436678960475893565410961563464123264768028407023766066885985519852739108281456113897934818320107596252361789447796374933235200947345898517617464293270771234467727848378003479951061918078594960349807886746252884240728510729940128606005084600751574399736828649612326018652846950439770543313326825665454199502074360190357107136453935885993374044521992661832419457869788180144739750747816252883136357795599522961995130725244499008192281751187860031369693609537842776339634207743325691956529573405111442032082359980471930398770749983475538373546910720002983516785114204443982507379756807203985587678354813381118785400181170644296171129987003905543752612623581584018818909989587408455548707729750817952773778439101813092158798898799817221112065615957173297420821454800645044440719960512930947599045751833839985799261174911819396490722221547748344859766145225395338898726894859487943024512027972967785399060850675180491005049245051108905416509401303292893833422093665356137353782469006810535730754337246285385219596052818153946204106309470721643474456963629820151446517531089894851595819207988956769917191777263063583250237269918204209897045405736763948989775963184492563087579124551219632673899979220148660917697117157320355889571989607134130365304853502737964892514506496413564513893886208561049363402100354643851671849620047047598456957791025490112848509315004099937116993458611755189542909692595592005622687689197143647763104001204652649486466664496461085368571561570905788806034334500569937149392460281342504170873274542310884816184911447280056932011781768738281534636703672333062482527087232449004698259544098505054113195294666688149953434528357883115759494760139769137111149606247126715170043563384099243495472049593323197144103093532786365652568609852983342931711861007306461784505181296823334674288393459463823763263100333806589740870745144406281936649855610862440408279419490941392485185450481167131580139049830801823247107302886334881896029943305497547900795472760624070824532184995043646797227400760863401519978589315345640774927362004619553495906935714033746305784822578059702282177736192227303142111096268959215567190017782259920856024937563107560062961525542044793546283498897762682280197921515494979628641761915624041944018876549127595997806686003223719105251553813686622203988049440274570398982064953221093688212572220730472813922314440992364524980165332728273147271899597501102935469407158739041015775101773254852131917945516202357350658051135299408920925940509638427222970673200384135158264885794691349395270892623244216499041802140850249621874265438653999413749642173879630467412330931378268783164727371545714642509644862785068265379811625551191966898908651357723529059319490082800435691202680841361300494391204357935164466578487329811109892137287576540740841111902654444157151124628747528417374237784885720364760585685322185523116080637412372499965765430315918398599021675129690005301338853974996404426721841649889252743971792794996025568023333284093777713473263014035902695247067943693495804226133028376045124293393071374454585696116629204211854122956794095104179498987570898598820306915641840460763350096125228691069098133925564020116921619315954539838097577416852019903735351657118426794082226905645036469150111801472458816491948171527563346127056169498036682938740833357002671943726747401168999184999745140113952595487834731951912387693465092258596735806418377868120354177077624549182895501371119337582645680196630571148349789196405290746166041506192770467098642624085048364963817027340790323705218512300366187365688180328759619083998339932195137808855926132679815716627072535008056532275910221426936429692339419988337968923052402386169095785428453653311640607263398150797233057581098766990546875552778360541367182707382284212213969045590040745649491593004710951893166339279868890855619501165381663501527939702046149734666573855413115989496461646497228057195570320625445662799399773011119748357529739656549309479656154694459265608712201191331571615722275639042881951642363930225528507476820097329607580512267451707127913964630653985154565189204527013077571977439743015858089692071351832228400720924489365582741392375344876940631864282479849632559538175972912562583283443304073438893736647691661690946741607377713857051070220397960185688060479730752187606387382078778906806439423021918978183957192597172154564921185497807733640473931152915828641881664439356409388220772167078645323104975950093792392719184956918658003917297428831144119980271625712978559117729264917567115114145896033788301159739317598379944052912210757417481951651455311521313747936539901119172910236524936823925581686281386110146450346016637120512734788146920329990324107631487496382575750458417618298207864859891476819124557961067424523901597797968950553145358535578362034319671891512439571045121520517739901331426555941558616537251972688623746713518454590262517548963155561540572467333350011532491536686368851960489614937182312763522250414836623232804230016875719084555803282031367731107327308119987967881270623816305585968794247781195952273273804684193121730743342307222182945885826036886445158765679828357963480873495352078933406482349453049403006866914556022934876817405657002815584614700636987853433519092661425477425443796243321611872421346408735835700291298581504612636629885493982725158814245722748893975335127165583137326869179911753192228394060715724963848809531629124164524263865736163773518001417336210980459631145750233388593528731203956398250485670173979080057650246646910545104455505801661831845898243675688733950679703670119412873147946731873619664822473720417974218617368435809519980834350950024358287349730114234497028127865200366532981070004249659999877750303825852306916821398016179088372956790584854056700146485442191434943912685866217622954105477541739016131206082792551478124878631640627039903016182004495212561371228396858065125725194204755467140223310462100961395237774141748908317497472796330470390244484022252086721323017057064010409366496344040184963377181143146737397597138529841681977798889504066420881571785401822572789182970420290682200660520306036290156077995246252446767474245194151820239986210513071601899562535759680661147851727718042081793044447146720194345015509307117155287636799755667122218614917831703038199301988113298163711031990572225696968030024852292225976713157077531834865040064649447917739858630592894356062272141936951361999900936895555415438548707175492164964578824435383062471641938676929746570884196987693241352551635265373092486176206772174226175768648544026520145510989989871116115389384281321683523881660828774289851290711243802934783790060091374516467396034785299759245932852590997661563861492359949609339361430637853978232810300008086043807826690437888757873121618042017731933226877500231585825126468805946015485622979861238626959870084527431575068294319393320764727796424952830160508906744469297286944850814240378017797508468987975231940730308628006845117495345031625466040078836647247721139089362904082055040335346219611522137137529383034102735640945246295102011472565689584330037930832371342047927794029506717298313583710161059175286440961715894932567221616483804832772805631392876035982886915438680941862554663775295485559059470936990546456932595831907668344306747625113013275601756909266663718293659908880715499150442781769298655253091429365483513527096062273940330316758932844322359797555470053363026878994439766260142863521859202576742624366038875335868331184282947309388064218733451446561178282125840244129898850441352387829161683077783149752430974209984962049698851617418178979328410432590744426061655098392610568676885854903367301719970491347051670624654267508521760233670881006524264149129286835956916959302847985799510241787612046964151175969078526964533798558488406444627666576623776677686284722469989094201077187334336938178955201156304823290145808924815540376050917227713335508742107062969780143919128978605432413140744840945001153592539281081124714390389859047309670921158455587843053079642563880285632954463449872326900978374936491257866934420281293847121272295413110763065345091917192951957458080369763917430120082350798382556624444171677081336989466277628080027469824123486520697520691643855071653496379268230306453133277497066920381486098013565042023357070826314031323506807885819833417210481836035214612171711053197505190837351904149896662043518707662388356766028438510077744640854247774793282470481231554036739488798060703870046499852251295867670978563141696959894294131982869586126878140429531084359417114860353163019157906881635005857061022722589391458176664775678146903796087244016776444320243594962159405159181873525832757140619983972877799786025506076582482496751012595158359548383374256423784700375917860218488250242951409282628673138139636480540535034650437792775818942530532604681395956500940447239437539797143421761288361495507396542612649365818405363623947467431603172902305884088918300660459668754910462067901240831237147423951767274299882589018527016283894954689710327302929596855384075019923925460763127312281030613338677301703585107717025113607915878122911536041475960970696951931443460294330033285064466735969905642124190196851879715778701654352869649250148832674894314069840978120814744545731483686925228058329479525782962751665048304350813246415899927666877631566687892149501204744562130661212686543950799547654716023015119135785852526674883605038693736629688263880345699639186374061694576396651824871123371042533375222533703626100048606139421452792879094276249692245913199033838746957699491442363605167008635995797290424352631722425844407771383820625154730786302381367795845104985834343156067545667021480076040419805267463763823894438676179992647748939361723844522499594735445949292784211156119702082046843230290673446315484663168925770851088300778121526989530796296199089955897178656979339894402639705251358526710281245168331708143753039410668555817724663679492617464370338549312050791979612473761887828740733705180662694488305237251993177668577071337924823389285484070949212542360571495897990326930769069750909754262435158451236600951711213247824754217985078410862501833666816962084405250354321246988010247108667762648442391562540409370528044682467507319232058231595882205352055315356115431063554855107210936505190239375407758917701964948163104365316823427434437782703972575290590216174547655238701870443509208157010756775663083779441395968335155802361170836668933335269264673349491377386473588945979620823726950440660155802079663128630793443323356088752248556906032125190765317587619691065884095508430705662018790797440245693628284625207018857252883751549182150623207573772156630672869022792558805421353985851289276938553484124793786234296956306201429331683257611262726378295756795455884759722782262707344651690072366506507434701398749419670066907182182350090840690633454860334912177918354542178748726641424415710500388570646670984573328593058688967284014597682757629476099946385229868269133385079283429529465999915148559827439314132003473156769592094043498201248945172923212219656392474318835682317613765105219697042192755931180943117204169748703686925853413396838611685417925067096638592156511159056302591868630678576960033926262182012100939408085443730387405711409458130317327859175971492656416469916694709597770477947436549628880612041489329667381757871838870645159622003644047835799611771175608297844688722101841870003044513432639214191561642840196057556233533284516765457231179753066986442515710510298897024148010312799352971937581373743682647581729269211865947735308308595738857671648847422669593244005847652365200338298240965017446994734590342171762985647245848010039619828626024970810104360025312675808470392144620790757063894792219801859715794488192659195542751286819441827339798604486239104232137138622101437898916028597718302859571210465049285871359950655415910113502907789074132049320250877537407903331245432616796783409559574022725763080733376157912798314564574102801443294257045314299672102861285827599913313950516416781023341775511349233622919868671638215448953657521307449096172033729538583867400796757841196470436605899602441425213601797345678732454174888773130214095937817083076715405133438104984511534703314923741891109901954962433781299783513284870117353912533771224528173777588307340304938888888864985268709554291226043377873794061984012415106197730235774650945884739489929362350772933072493775375943799580095621055933598049045535256764349656831859024421412002773315729782367086652246160676563235734345040864723674428422325835207542740893863987192162874934898817059319444867588324268965282561916819445410130162864820529201649093533849866756909954733068887857849895343786849607417758876740410962301811426124253544594949358610248828519651177013470230963504291602100606685614953580057959212183923510141065914181547548856756204546173053235867025225058037588356587270071784006018652969824796284834889297582436639179185588911342011095874120246945695500425105727154312404911529934768553002800220385419635624182900568357598211203922131756025310136008622669755590617861987511691109804705438587173143025278523079412874410978366093171137633141171416617897918894322484483367086380254457946975776406708435819801364486791602890011117120729899290822940012650714895282180286758905684746773680320079526991218722146225415352172323543597072132906852744136186022244993168616258824204924637079114380344159753116629083859942032414096718115653106805186689383547412576018823052301183503630171562320770147746765418030380262976046208520394948129900334525837800504860671253983323372161892860821458219105518605955792440893746540659281230946303372272219558258485048902087001495243856884888055210178869780203754850258719597416049140780602299048240844677443373968635490895263786905474475956555072806675299134395881208541923244684072480592163217731620708501455179254128022539424734095026654306172265874438446562087084736118429791425547341241491084029385525635071814641426966881124407565440849739622302247328970678786193539806225396400587446092595869684456385252858514761185555461741820837606303144843924365772338568817131526220134031879874626959021543911068252203018625437796552597158928138541829766018411210730465112874589521501609922628012914144664188919313350641004896502562451550528926105434976945604448156662545236061579897685034421287150829552934847976565961401070554853667485319721589960617015123008203367180322840381386842159857860590771637631201053929609075217678491011024053086220520003452912283051812142772046424736178849469724640009169148565074608134385448808434872779727593601650319428090216841100269542693238003524494416143787105934541485253171707035062230678131734267545691711409170466873440069233293162105247825415763323550501286416402088549173634611316698034273064257751639427736863947073203753044036524022506368301928416369571745796255481439240896206452167987239520119172208526715822004080432903251126679942234395696598507183409051460682504617648070980622933923567409301222798828313935200645006285328011795772768991085429956946354252292823820885184042295709242422816955566671515250961941126459919191351836950356069843840282725157312218156965393451048466334784733369581124032128095391473935350059412898660017470623039617695161069535183265158447478613642172390851530402826769512837516172993683142780142258420232087478371513047562086496505235915705878578234405580499458902834637851172105412068034793310335694344701900407237582885810748993951488959021400427223062911374570522723366561884906229118870287773120874573251261009896145299921039232375611457934162341015220996511564066726075949970106640843868646351440632850627004946478432448383292830705773509491790570631708194501047699995079406621257066958630083774140476488856932509882410182260117327508353940605601496023016540305767034920717369379086772932674975200176735510720658627441898085513046292726887354997076356625179186277629532174410642415517215896840153327118176655578733196374399344864690454981077249050790847229396582015587886453364290680868887017595817161181295354203900027394127363753943918198093972302674496680728944732790997552902365247290207780416105155138436170363856403011860447982898530563956075210355592378560331569897315963736417704864041155198463127128392197136491910591449715562694915867842109629809891487263757940915125269272114391175053136433417692302561496054697897497856821523774052504423985493963770746803973118661947486317844106666822629267527086290228354161408745972035019235258030291484408342976119795496145483105038089785729023534585822526724573255902078354602301828428269659791797623239241334553204323691812150874850397906050368367363936111755935590033033244096097305938047131623994123124290868032412716883757008184324019576408838822468228695767492792563298665129479946541265720245026881796222352052005501550450283148220887358347471775688312919113984728791544685696350023761427585828437883560705391789753939783168089820951653201746241015693343855597655274421431119626851414120901473228711152789197681429699267581042931284028527629631570984050496368234206788219378452415742271750861727455574567745100696842596498901282244408527821202408012090968794204969601501827773977111321488378213715709616775829558138043015973023283436056127480660882460389164083569502349427433019237392826920893871632650721946842382464488518501453044432987378276733293153535021682807684904122021605858761870562879126937863469119432116291710337153615196426018316821935443894961305116757045718914657478909704744052363823344280389313612782818256665789121557431973681955422174881530481500351514036691051842497871189091814835481244051475373173079082370863599264195899750006980734561446292384928372957923588051044158871477614120365900814640745184566229051890986604945315297087328212188758124986298708023308077523522817511530930448329064749917306208674296613103685447937106594303819273382209496736350613875233745853783620812062632866266244197338434209160707892972200863626348061163656996055979942779300965025721191385898108690221628543160680751987168078021695535300535450944277178989158539528509458167295279405715872112833948018416017209681265942582892697112468097018833894636406259206185217420544213056599317375151714209794277935819923820215707975723999282081876770679474408437938123144483845807685559922308397617840121650051144098382764918538152657201017192777556169766812298694015428099412344668171757957374060559297223133210014569714877441191939114809311610628253554580722333418747341068493478835022127175124674778050716416477745149316299814699403880556863003817266372147756024457468199544871285442179206336827841494473942272317187966993977643079698379048762944986272502670647211182547728274264283225352708056496304467082809110668561530103161649927487819149346533859504509703209353543631709304798592977587278884979061795738792402084339533773815968096223612471829557598507411174539079427973096290374913195418146165573525541145571281940539029815265917298543258731611232844078721192064327664507624769005562700256471016858564214823820264717936641551027392409705783389313495681200755310439726635827599100420300928473761905430741444211438925174859321155609394433942974779544082464373237884838938734491372336674606003116447279159672858132534616070217479409570738032353719462633100608964652873014144732610325312190358154040295118613541362282772150104133833595962203355866884877930064823883514763529637430718394779840658163016643760458472525688391060062688071238006879244529528028146287508323749541424573072729941362774895562510303146454153697934214776789685601485153367741200234499299249030613158233827300237360163576835409285982875186984673017136135925190504917635438045653645114843653250093604361278562476147832710306704051620283090670837753464294902999753148985344483036418004383239528922309520341440068691730294265642871747017152891837007054484814677262089153753671428790707652727863898162273312283921171410512112253319417262021909852601361244899379544914699601268704221302642388479862878136317364300310753657148958204037149839107220373462862558613798198850341168091941637763904194617222567201447584952427351105218138713492293956188734274912686241563177901274235723535262578160344238903570119032263569880815916619193330255422965381569523453260473030387926611116022291119910824425719527965440396852402899060023543724070405039652331529315871416409702272485342629431045469782607608216513258702174719168672207241630677092200885134855181341656900456325387334661718989042696598514002150250306982498176482836274740286318102684504392796781682873098912535247190944485498973266810676774441569016515242005380259718542640189493921384285118466676178790578100325333658127524313309455113144808250382635385432515495674302237713632172127482100963119744618360750240823827148983005318694209653515247104939084836433400549777400542000974951559833280053120167457335203266184472157133519628078103268115433302363906308454500938883969741065783977211334857393156289034157012185223798524571814402227104534058509036964120874887546606104986780288152217484327507795420907832383867768769803803058178819736511433018419974189328765767075877524356390862340991732089091916349256345374353412609248151998227945661269309392292715453644476042232157475917769545850069329336461139827773397930514228410898199214687013424877131388257252820948641487967826051968504833868518083246177724916637193688436010055914792334224516705333739135710002971873956135841855841863213245898366563567649708998619486595614834034430965000675122931376029570182238196753247922319460984203101305100759014907014761003223238375557870613606923939546179825522004043383806291603645940707643282901907985507852024399196758725399472899129387127571309214145103822292779040551661538775069435459290841344780078158511430139851899170574492752325787468902870863908964253169580029983606600685946213035312044324135280307556487471033986842395721250497313158081804498862240329070889337136833097784472705149872435886495714787039381918786471516904367406860219963271354436241319397813418686678193883907287333205558967924386058691852784635095217718911283825721790319097238881995324995849521617899199032530612060289969264799102952288414475813211354823348865411167111587831909083621665426876865168089053276385652072815776374515844778478047667313544517721991691904228278304305846965357777824263709004415056644220837221005147645216727080089587510702902818651639094315741179737529404897583750603504131432367310884857206435790440517142786821219551307806855254416302352640347022352622128725434571814058798661587816792823140018488699756478799395662638231043536863968591662355580961320953930103116402240020619161141093262352349851507735607190913524081141363818380870340981438488199600437301386693692516323160168433789344019790716373869236650328987923721315169782713710642473517891673347272436216088000186211243406298645185896541089426172227654422197913116917658805606920993484212202714260458212422965915335784518311089538676699489525896168318098057652701171775564669378858271726377103434142199211267248125166083442424043323905317413718738979173754960263432343084701984098461062469342952682606131555487981658949739189792713118964072558328823057308699051942571299991014324540281399510428261300794157391401968974805253558077407415849882148015468232399388867772049026817933076985458576011838270757654491962168356507534902996302723467071755148019682558034496826096779771730123971840503417250409701517555344709832824867287538804814651866910551539921359516086064449051133956041186370529635732090245031073584180135772042344842025749688093630383262363450862634436706456239751125288954370115831407849344047584234671565679751965332753824733829759936851702857257146316380484334737462746474757532805870881735949443194347530900144662835402386835132066919421062368284185366779447306584228678299269709868313448748682878926104861906862916077483019297983510343769675046181932329051142853798653009092369056698131587870199325905264026633223687677248550749790165876258748647068973228017191215850633638728435035953788226107473128665309939537152245520530492257359725190661226106986911810522417793423858645873647416728910055219838904531193495672932102843156957574925988319450272345615228943035144068743583987121198074164713496156906791388497525896235418692088289905536173858634605575198446354914795838346821690281346248542297257836096453201735898016918218020359012802851850646450801984550348041534703444749175972648658437450449085998559781399639494932880711132336009022363163293226720838936610350367843902564095468228700528394506423027421250108205012427893635141562063484367311158522552091687589846092995308255130475628633308411762858427604806105124103033373524944159091173094073774128791659934440209015795357430983585322245882326718417068223303602639537225937866877338726316623484309196612543457220351593353580524192987626583900688714699296229835931063328937557324322939429498569926656521713195434828395151035719426159951422417852267343825335222392593735740665258025285218636492275987767079736035986752713982539243474149611072447386939587462555224606303379871235371679447673035013389140927874395470418699611636691361548590234632117989835997686340698694772416643612657927560879045036992942589949749718361039135969966831623313195470941156056901392883079412632446246358700839267365178394975091939491564335926580044411625343852996346033996962051082093991039530623807957415426405562012743372586456208642358293929996462646900550355576772002855569163322360900214604229916451057181747538042510854019884293228867648236810795864462742000841041053566893361046536690017603667675305506572186864171345867849637101703602299396659550146468572412121112308702770295083568505725612076393721662378720014094114929432206677129053998345548918090799631790813136788537215181150242124412388336560932030865852818331328992284533331736664439801984729485502471432266185271952340931331764812116256156407298047683041093840741148405845714960444151937538303230211164111317892397197587906194264024703722855455967094404724799306133586809362454807466295811548492806727468891848605888933158116491063808621357258651624709274755581333951735393088217573595907942567196984447736983272999403288072625726307872605469612953635874958046379951554069174474778576920595488785484914927355431994885535035641221548557823262668374047748858858849503940079138998382305924741836700453927502344325698838211548462459361062825263827529669977663816045614327959613343874320863801831694359906399123996938387498189338490071161133505743430454144143090315533557485347519738608145018977315177260568869955826235752725543449447231626898228786667902887980585269501598402739299149125406855067207686721221270777646821228243151378504491037695170416737027293458645133762125672177964946300766590638082874349339332261434466257564779654239050115164210510148616467479706727355625828956060039373444415454621338023448867821909210740018355096295355741805717817373631365750060073662599371744479813547529728799206577915853006876489886649565827189163722366187750126742523516857041711027638984853905793022749305877562710908192170654270264738669584048649967769229560686048269731341613402072300159491140652802220317302317771706930104259440480579256329504415298226937220759722363884769466810505303061800848475598684290977707058449912479749996084721133433851784055909742694951076044780307625529704423292615003472165512103838319304269526314232053716271512401678290517257291658013098311374484992437658534338573344607227244608138727335252128183079867427162389171613795521091431797934060849662996306427969679392606915337184457778694604090572393476576125303449650822554195404689786737245512771675448265489362525406060919495643625112094894336519595585995135084063116558305649222290265994580225837139887573890828380207733892344214491675557965160166945986296355054483683849128094925569399750424224180307128045670216811838664780455342191023723390641264558111254507133978821710655474729509544533505775337931729197182070755441622310327422851592828217496319526093343321398288298101270447939124038016652207742647923349545589857796334934460409250933524076646861757215941180320792890473770842688033143837381708030258927242409760079235030545739377095588052173782149495738260345074657564189277538639989969343571458220223153191742708097028160663597534893831455725235971826679748748181936003693622134390293950948557293345529834844975224850004636209184843588656371697182389989412126927761126660925257538656949273585284027087874605894165393927483078856378876304984200374800449128619145455669518694389560486394714807998062083061803643514534554851232353875918974704185089250240056490663025928283195019674527447704187152934670826571768595023816102892113282573910489164515583932058055161444354943672773426780405931257973141859232122005441092057620971767543739082192353213421878182695002198380141362665289952074573295740730273589666579272782025942610325191177582198377188038967591453472485226661221838399757035838521193965159826995843687368196157811154318077017841399019514198959966198470830069767730092547687552984289529933235160318138888541735473906295925069921012232918161174286685612840402084513134974397126294484742523692800895568102107692413318909466877358817913511603050334150238782656394424336520314581017992829141101286355816324800160968916336477152777637596130351499079287944203185467712576114135250133155620076824455277007412141219019969532131506377400776717929646205692658541556602757413940060383297954260825984001521912034071193231597287623196669232801093712508835543613235757097748665239994541380588895556266161094071278235694995088368904598138270546230143508408383265005077480511514389281512112744392541637922329317192580440049274784973521833444283153821859442111998842790911914530415874011324574624892992992356478958704540278710761163031293331023957656073288229987986771630899013320803599235985630454156379681695843874662084795010046833695897905902282276961962636726430833381536971336474849747851201517429069117750950874043757310223046437642840145415986903664277142312473561339374969055416836193100704078639371548948343043649731359778326824857184415545399049604448916879098041457306809887166098867184611866599655877593309300657225256044345023617658345939275820828209415336718745600138491632658401298048257425062343150086635991772011963457139553980301633173693256320318518400776794852031215162239082628671207187370902577662742463791608565883373854133250362461994235780062425194418949739646453484931513372575464036717415496030959573599289087361166404187865502205449031518841747818046176502850359785739540547256345876627943161970909420603301224423344149927840627059085400209182280963973122411576525413210365446425827622413578871792351465980659431297945061170884401524014272303614003087897785588553623017053802923833317617314534671541846088741297603465712768964620332321770048286505371182664445156634230476792407975792181172528988889293075618280843839746608334303234065006648522254830691329903028448547481205484806349561152800504547124400132073133294368010122738075083295204696071770909708539177964605731242091824531775548434304216486041990523076129476352528382903340102007426925926857366070247590063908508311063481410063242464974083535415487621556882403990732826684065613404140517447888898898407212108970578124976911432994314983864972231544069896791808759496923308452935781360379513350287960371733144994264942788243035667627368453001710254114159295266983548424961428524416505594784320899503477456066195661483842954749030957716639682073209597075136289898223518660989348873198941276407304768329198669720737663644645542167181348803304117587759497166502821792798725498977851005172949728311501513230799352836339115597475062368443532614874847700837540374945755168245070495424936518358371113387616889273376411917963682259827602193232172705218369950108001793125049498833643434143013373330494184445669527871597926058943064250189823206500060375228711043997826357805949323343199478584964749980827309240266353889584829754990993320212133370585370333789834310952097082530874305435805075321227443646334949182397123338907412944652493930535452679693802024832700248114800279020090412674741008640045393694078552025352613672553177681199955579001927625153745548085377476165391762078612339818655316605858899236292963818943536272992322744053692193581230343851486837372243174739293512476405624618701261352752994443229587376760126168866204747181858999699017296946437627990391172511114399723900533512705724094992985737414536278530789541206588199569548260105180783312262928958375096336975427099741997765536395871262159263091211426205775461609349439902635266838375506690568499428855640310653622083602939375766662840632651451624486635706951229892521211159336460130473633514407861231706256788142301028668863791192400564603177401131628760947093297589811709352654378117857234158313384118872728843684246582921370601279495380335268284064240446133049829385579377316034211768810853928579941976257717183388170527891059844236918613952847548021727287560173998479653331124834375653201520344178625725704738790681304366373151457198614756058554474280559831600319759612170172961000733916225363830766690025190448895875851185092942657321353349059676433822421724304165289135274908527280613555773874311868921530036556051080391248432789544260607538832991865742238891537971986855024714942475657493251213366605946894515242611379778409911924407175298395247161456386336042924984413860879148588101244614017512855703269580129218523189184258199907115428159695307450349660529165086866251587251546564538410175323536751006062648109721515225063293956291027935515345759858968836085143227526633090980034404638028789299997527187139054750718524490444118450637105122417884135361904917791852587196461175236310545207867042894327339010549886715227524275649107070435827532364486194995855848681139151619943832646826387594045344732645123416152667748475279844803586105846103824257724001541182694916519661344280607182113841736438619760022761895166258547750099184099072325003933054265674933124321884186600488977475682669277838296154427467190491717184168726735687713468506276903899646658455266426969525977832333003797519659159882396630024158464849592702569249335761667934450658544241023545862870810336881040442980176106396687618615246291130058225045058524720688888359025000308586067465217437011722966278556267610839782248661481188764662917720381261281890451768384237078120994301958855203968162973838439940883131670913202503823659020970754351508272221944561381647868245977061441568269738892049733610163756151644111526618647941138987651153629843584960295658581876862095005550575154696939073247836389227118732251717232579155082626500697275876136560465217717990134520621405073772489673640234455396657284023025640291123333874162856427410691067520003992238708518491816983417589416550287700812613790321918948023439140467429471948932438415010129988709616459954186252155127803281350730205431715123486053195560714787671103648418186391675771448353990768121922233258912649849598398257717851398344466145905532796018311665390750032526331605884629380969394031243688185176085768412098658644147956784484723385910761063155506907582540924605493554524249479572729924102287467271282011008753199395951566915157347450689882775285597730110291072485894229552458304629590307578570747317343253880564063306452883036602211712708077677768686599372830278242476063901226795082892745688007562053641968779416893306763753433875638949017445658177294062870122862564961239153399536875013729101166084926182274498374517078731114734702978931118062650543633183852968837287948786027706934122979474008221273923575482734140236965930373719199698545441144245342429726650118117234094166867296524777300961620327766681782203898600279291849399394673985981561808550472090412074176463857055854845249864838754336234758074134115282553922486536727011370049156789934702160159272245927763836497191081260997092588777367013884464893302553489875427333273983073852911129525950164737010302625415972858825452267159383142014068796838778918984194829184092790122943624746082034141136731610790438160636524373643024230042562503874443001919757985644639571270623106194064782900250534057762927299546705410141219296339986719768355144820149906061258480559249114689944268683245541849667319655928780995026828127131804333077452823228794962688014125235124607476920823691209819504515707147209004294371299602208569129364219378680805428409460171944839754402010899589303700209251056187676143770271154118930849513749915017499679427117788205844492335411948071377422052374584861517662933628518692702515728331258148973452685682960144449583419537321604077699456213085719198064333699132210612562576629430033252832176506664660408343161302405479402134085552681961270280625841638652830220614672934682465461078165658523617474567203440135364889665988759655604883524505939451839564642492734648382568675322602328810486951669180106857034707563757697960014514810891982024534383342617042978046063475107670552601324416740086751086858037886928625011474637578685636142403366417362215017310820259346351414567737976713832431392186967739101141900967509095948099276474926615419707620470986643753517922451715214517245372452887328924503979942912145457288204640836334681801879078889347322308528791951817125783221455568314950923309666258091778008756399614640840322553743898453230070047982393213330508819591034045033967531689448914535361680483275174427807147669258954824896348631353566892092331137970933610577650599136854102901597647161815203194977411274807425439542769008433304600187983303204127193988005228148827515383164486316871752245708164654618865710610096445005365211194174411491426646910043086818505531080381241765823895233686830532456246081710429748657848041267481857393096457378373738757092151729430253618906634153547611296259795664979273995072895733181234598344073094749172254592945209884352626306213326338566430715568745444197952705232901809835118847085982497912257926522279885788059408738960182865609898280816075046366043315569529897447074727823054326830711153245347078527074602290287751707827732059674540051966443450019807624059599123227187855537892884261161408256902273236394959733301175416524622146079413054564253963097954312663573015661574075859593491338546522750575113305514622653203483655404211875580701520115261411829037548852826683379374720767792015274015544892546473307324401856848312082668405535425180163507499164068974872400762096161011085390128446520476714490913216395835488536444944029863802071400345731669997872547542640756615954916954375860405424259895626379768061815415789252677387314862635004411666410451799442688837748890159262665202002772913544501257764094902252698470325721355734260296338244947919369904588827817876093783072783842928571590539866144596893142507457070029716495117261514970609213827668440062666729401982550139376760138484589449245869752954660720966366358661447270392591963925765225264817714289160840253512534460721812139205848472050901335221707745690485597975418203386281732306192269656783266462089330267720284349628430241486027880982676526995842547819629237945730344928380609682941447553389240574749810027978002048022624055920221582430990769249870351560475914693814958518735945497618029472752662511091146414609762212859803462317562102736158341048849880833709915018091525099436233148728098025580243104490122744954843070672083549852132483069552063984370986949806833498981293490449689856262676470642675017971393871043107605504328887949494283385645042220093233853964596472815251217853027381277825272664500507145719899478684498178344732538543437342197241637092826587375053657744498804889435723186982164936836464668474083731136925732974919825155764687071928414633877510137707762339594703678651318137094148125621195632090273466324274595358483500707216363952691904107395880077021742981770573868491890155995718238066017926649304998208990909078235175358650923392031516943479762291426998607576685489398858429117641596227713322127240932620911413646770648643322359529443151385756288668098128999608744094363973871944436039921282078370632656598506900515446901836281147540472537507615002364404986367072056727693233000570415030838028934901756602010613445819475275391363476128384827723168013197777619787267771592710720848494302609445209109700195364767238953920472554482162086988860881405077546931019816356010634365735945599724785817729590642284324793134048975163270162120340357923277218750313304793173407424202062502558844228721393203764630345345509349174748961071530735082648279674272778419340726067648164141740539718831231590434320683089864275084156549936740928978663734855660897950989191172865827224552956933346331881636522073164723493807969793897933220441766595830277782625617373866797543266307210435699767570953674508251596553054820649289370342528550655109291061257699174768384255072173332516750742739649154972309012642883359492299506773825896524751857185732260489983313632193348103082497990620124454702860251055278553750227966176290085350292016438580852087656647872694363201784578990107538950597219700379519252341578393679011002987158766810853397696839654334374838145504896004479952770425333817452141009525608003822243539232629496140272177505381495355830427512029515031937004231590401665729184229403985192314235423978370739406853316695556441058314950658432596414354004104771945287908291804770247747296029896379423373578139116753891037478010948937397248567049689586135334404186921317916197046634083048690545543359918794687910807256164896057434053923454599413973231319028609193440088676420829213914924913442957382194492091402578428242081837272858895501549666591503386339864518966038665081943456314179398204410557468436342135970547914265509636122057425846635156173454037733679695303078496427906082455893007970564128864028298225418675399367053020435938245199117035859086208817207590770046363160017848049753974650582033923362432246419585939645378873689914012140839456976986123944879150999977824084783254973264953472030484027406625034566302401827491645903009452013481166558430624535877065645999020266793305789772758363216232766828727876388711916718577706652612562570208557817148882642657131635225379809551046942342410097596273693278996667391637368399637031021221781108299821069950267994635353121260747488524559163580265763250755866588835069195877722931028880636990824929319507826197593336649112846623285108103579075105207553100565223164645224989022997496527297383981119998550287154674923648530134749289566765005647552854906682278621049053198616095404450397025722540065418959758499155209748244697339871057774732543177263049378617141396195774373190121718712354422243969955663219527291872555289596515715531375730423529471758250565944168528865260157134782702003824912566347579988025465756222535443404316383217278625224843129805414659251959198201300227705142843932167032146410502573266656322680896794408093692576172486585110139163888168622829031013845401240871288468475294995613391886451299857296464758277296770801555556932691742946381742771799479957719343058602589259807245301745621430901195469480636324205218128337797685681241995319693665266037086330660679548987817808616809369771053871514128742564073110311328793843710485994924535028270711418210802543755551102523834448256922593762315116098030876116482834376208291576268519756664826697012541867323739603165928084205853527738362951275183998161679326062753887736779129754174473231713759002907386544579858753245535833802258404594535960850449299422157191308952805374691654144967288244215112463314829670281519473089946471778419601395944155993713593532512370092101137086480094294800967537134573983828890709975956392174542581375254240811083891198500917766111407446728393490009283562279766830429919633165729829900752681277682632655732167770063039741270261789310944649331794957751504558145954307376357247000835095234023274032431173752933756262339365806135399158955115426892166683926246933379747745728346942962716429308037529391475104846018067148915263686687398941011282417488903844499125960652575467348111122242724717080827362341802931878701618404397401187679171058023277141421561506380391853645160893329287518551785831298094836951366878131313291263733203090016868050424559683961695256866548908637230554316220509646135122628254644157532404927442959617686123410312186106521199990926974771731464768514489427760383411269809039685355436013386806165506065225074572018710147214073291703221199601337851228423824276113645028781712320665916132305248012148182135102422301472075712551136239234604670842526475318721204049932035754529101631549110956546005171159092009051182266360470297464206151324491876814820832814801046822063524213455152853882068932049917957311613475922538296972954671575649547737007371536844117631121160051768034841817842835135439930833108481872926007203595777244062004868696541209202285483024015120780033056201479449898097167928865919662813293945466061034338947303424703645779590724512006790272103065496099775013977269323474410659952826892146750104009073081272731670623051652631062820316910420610598911529550476745042904632004487413372580329407762964101005199879656114727959102021929036755539433731791324143335249702622825943502698533547029907684698550339309485323821130392688313433570097763489381265154611431923699393626175431572625917511151884455626929542954463446913184141336509974523483729554975685557628805686878681855869748719295662588607310168775263488803614527719845062016753984783878679695607265990769733426415007815685904928699898727568057881436970423943598328293424681824017205645739341695968989709554987517160184737146990226923679059985695409215461762502858924467897923075256902691450059187217639389704691861025381639710391686162560621343745737894560742868967250498564229285606107661006608086300334254595103535036895562969760438092908527165836886447974465900244487282842488944018304844911658672114152062092387643432096243335595796209688784330763980878926488750598239872524709034938214644405224116353178223080761560577004357469715292264633491082094122606682920013266832080850090652431703840154223367205813760183927901640336079070138262671473579797166349799488742729723994647758337593843296937091856886733714862803029550331733658539229061143838022775533806715846135435489941457441824644184018032186272114261722754319237705398049812472063606216113583621907316727912598013194632214287243118115771997584049172781292626108058114030285313952062962328611483861638003465707003302033357077721682921442403161034502200713770744233196364230264082428889539748845604997421564850438486833756515132148537152600862560449341633557709575885823759496107721542674402654945799435103393108653690545002000960586950843670843832990924437424971755070501150362407597335538167736570000774263288935621398223683600744790658303225375856459441362444784951329997452930252232885466695360747149728665499427790737831357306690057832237885349511167341880364950747207127806223977656541005104498714499817562186318931763157435792285071818666705590815882179078312020549040986824036908297684653715270911676918600090691958839767851887402712072502524929133103130954117565407324811260579411139668079449305495285238262323616130590927816222991753918577532490272844798395723378756638797300837344128773070169580007139978250598156995253874011280442173183436593563411520351245479945854378348865881804413857917474952467983526178722127803384551133368411312769746930203662209006372538157470314735776037933639597360844175405590479267811949515516407943146136201194621448187070592937928705593172872042136938446604950044357295922367164276052064386371166611889696363590736629347699658627347523875853471155809857398322544963965729942492945419598295753338937906185438006135064520618810935254876836554920338036443002649165411889943154179420386831118249859491599241530248673712739211848449207317357179619819587762129749806150302442794372806116580774520382621106797931568751983962894616872845201914551210040224407148472184437893078323995774697983091860006335935662547892975410968227230627450381102617978922362419375866257821080413843913089822843686107925381641169394769033469203290047696774317134408635335934477237712318299919621201126205911840584174048102939190645106464203885275544893989504895204319768468194405723413705016599838105636672153378265772990050084454787976672249294425267149841640524811142799574827527781788062394441866109493588478553704959763627187430544877304131566690862761630050456740506615684402550022103890410050641339864376353347803260016319638541692751857977869340099472774273454470507285310329231668735935748807527462699889951983685411227991620635575996955083439121013840653339352546437785245645427628570684153123589979228644672969996423026690525935110145501072325335502152719218010816918554021596926706883817680905757887661981221514218489140360626617299912533297275366066238543968404542741380956114008050352323678362105954696743207871046145523347261879876503764418707838865678193590908598952862359309636487742554486645625132198210042086817299507075864346185830850566704043145084539042277156002965392207521012061638425692036781176990888136555603383221418149860250021416419109686080420953643370104202892254765209396462492598429204013436343095046313964010644477463434815936990175569616144167488475005890464154981288446708722067379078550487318284570245800831759631063660332677741691943679959177086385672224956802073130355020509252632330301599050148374424628668982848906945108256109304570143847991079775576934164883216449271922228237109218184393558167251754364631932421416488502293960514979065023968356665715437942883886642064197518308861932990713438092129298052426263668351125825331757327842579214159590728266419522078037779275721561618672415992175962620994812455117440975614424313437548229724347612688331288327195076280310056275488846295193901118158645643751910422440094998414032722343439201560286392664908050485699170668231662637750240801102415343905061447053820286018843603268393430426303023303195226515130050154646697711724906490640991913802028115818400857520152249006632741644446228068957754534507602618044359584591548452403033578040292304185620356580367347512662266940617302657371317464794188389538205286080694835373759622767362022771120626743844924804219797646071966210320544520532095121474479027000394045852063391696013970084632778063936185060134821968644448378813003830550599409740816719883450694497528060090786513526478701196200858304387512564084511482603530595513969206116704479841318250597707605859063493622326863341995858809727362681244906996909114646361519767616813874512818718361843167082492940124194259302898112215827649244642914655520535757435261063330292369353383176642006323399110290903781222792575259736203600182998595016115246109503365680842806672484556500170762461718954757101703330608619082012306659141781166430126790889164907805547723412823457491829644508194809420363923536197556766713216509954363552401610399726000416119408941078087016962676829921683951863659945535010675740917626341247737208903910044574328461206491813545215837523399960490077413384779330235196307327803466681360931532085188542346123089392752260698691813753975488800869593632474312244083303593848483817184652952021601163589141540038690497503976490267692107716892903999847710889672295120243907931995353353587277027399529719859673556633146904016157779550962756798493903921443119390689929588798356977194975773445038805175610352949111596574353174327770532608273649190472018573806769285019366943210351871783236927190183715580208446653104577805696983814277254695441071076681039206617261560584561002949058349361050076939147463361777926256652419682598732310719737081352151327744861939087669185208173187018290592483193724546435577747672581580477058863090250279107079155807094339222451484440239421318800573022670935159129345791364860198385946354069450109550919159873421435239073158124697408272793177278405817970839866574439593168424609878209402203786910474349381467960450770266559508061988349854289139523414248637957348603072371560105211027331858467369705531475780660048073785356856765203740429960112401485963873159341879048384538400572042437838855236761695592498469597341969681392049064970187681423814057594183857783814646171564953771101249692613070603670221079329032586997181739984591443240337501416930488660363627025345435789781243990700245735209283962508282172851856746577232398804329319099995760055281570566563224345560088721476921555860071600018046274210432224108830703310743324234528791842847042939434291997868076825065676318897535414467620025053842373787015404840294578751762819827661910659408142484758008345818887086754708516449281165514677910819728837851829022945350483845252731761779904407997426222496936302165453012704903263794298254030196876415619858070100581884746117745243220876786181082264884079726870716300254458453464633162635082313544820729969794505419903521668000551133426661663155136269347786673317853951592837598888042144858189193595562323612065811288346205387040538785564538594475174778335600404422715788442272769058287802207413777761732844530306471120294552770272039734353973314185043713353010697746487084946427423254373973794708120378919613101082240866055806794732726097583535149077377875262435087515772442973885488077435729976955782417915835037397545747593075209531318211112406185567251759635893444440050165158376319461490190682720816141645425396108550633794152506216475835868516007237326600669260668019179030490625754283429584351920994095267762172383521779425405889886985527434664945918800158053506680541649292770737253718870177305863498213459719053121759386421543429219576752412949191235474069148080448105062439272927510662072282062471743432539533770136279175444326061569692729177227701058303347432277649238938729765213302638945295166109387075297249176151006079770619028696282147613286969794432719356740584023384064890293488387671202043383931939028183350765674791562727320116507890265099551078391017423148715466718147158519038486310149923743360880981860094474434426153719409522171608963694488148451632761456346344874672434306647305355127065165162645524825128210958146139948224209973626549795981289241792543685930039465450967831139023825228869229762544685886731184224982675059620459316783203057583464556722161608764969334251032760201857688147385262448519714444238633953248516121068421230845975212093572523496955175769851056786582680972842217298032551068418561718338023146113738792974837200744604729720011920182069067447731711161888254203387325041978732321160600385950363000154914092315836380697747642239352841156103344409855153923906159360090996188805720827530881637616747680822585221467859683342688779191207751944330838585221261982970397805800828329835453153967172420052024456642833290870787014392355308968372605763913447006765239515216775905686095489878423045085518481406755305417643248792984218417966718972681443602052572122054736501578853589732767550864268378883016138830437370270407255094685918865685672736888184330233741198298364741119581029521658128538958084818616768898082875505175339293544481699400406862783256824109904243399979255283851435247461064628818929083210800503645191113129482181386384766657576889083480800936694635836027054803161997462432207453209556581565640974291104011435474843553415956603622085965348130304837522918946013611957251988964408066546808319372823760858727150523655108349012024494238939140989139830905204684371705176151282289116027685164318949120485315096486273241388727489033281097396700307175150306440955476542561822305638000310611414002207560159339294928320673421641270200823037273875794599319718976966891385485800145904687744580420015052179476940227618854417782069254796483276035951090707673160654581625817890748274245389043946291046306930838834830699307819087069256673220943102855359762400060867092665168286395676536641274765621345115212658916749959855911155274183947247470304063159290716911827993138191120075813463881796942403289669452622659132849805422603111890771868775463158928254162150160492394618396108529708608754932904144001630670657092964996487892424700729792973327527754833447546080690350812575761460830189481458747363060918961965152293955958547126619824727085519164868610447993900707824427197835965946359571736122668228149615446603147781072322224087701804011998585229055019361966235676204850356201259447671080657851461311804461085116825017871390780520734936052845728419918210024674909666294519573964581855046467730103802952397299968013180050196976176460058269954900560384396625049268596900782074667954939460670099872782774550845853718270813670897547630991187504268311581752344782070270837662656788495654733046864990166759026835227169865261844369155251407532795100381057145456710528691344667698389937427645139539279013487885877042163635602492061772846497544769505281129575400234393697990596655409995135956945450667800697259223047050385637390360770029270146066310942657019406883618354741015118943851732891908363979338847523161778170992984454359164373302147040592989927930820119741088598904155163431332743052833264957477432796545603690592471657139062333755902561861338992829192823014453415098940750461687745910019280137905665765712347105783286124708455442412935192237270485688015159707518474190502314684083713099570450522451260301442554587880704310545204765167953307536332833351910515581009793316989564421190263653815758147726618749788442817087924656237779191678410132125885495225891126435678254620176923473064223405281021763170391467679785906400459700511032792517984189924076522907906620644926335719837550677677734655098787054529345484808365779276106664295516164288291189714126958714581107383517033854639332613944844065030290742852965259824180473159895715110358235507351090784753926863237980365861486513398017570897100684367359849242549629355719409295367106228832057470184262450378570842083912924736829714628329365092132634576851406304876855848576171593998048160786397606461349755297268172840734003645148569717083406193998398530127165294621636663870668457665293940115215261072594171227111301904214934332203779305463224638629332540829437644702557826831010465120009789627555985089142098103256126573463939288398342371506176608850330263144389416710588438404601249271173863424148018992383908174805094719437417588752756756044670600298771725360899590293518465909717184328182444393275310040296449006215331622968682200647588000529773678415383901078618172842549140171204343025735692659265642660478718758728237559348106641538253580628074965611984507583907212746283122503742029006076599824469282588800492894062651866835271969471710989424770585539290150307240602581319796231540730359872667301217720820044786384035615472912781899799078026379421812972431076782522911814058678996268960573832888107193707613176668862415306388068671233786280177697393220718971488845769680677829496944193746091140780288233712856904609083268500882068619002164356209332968054896980777312030536162304498508405490116680668477788213490133787603713016347067579220930261685009217750091653959625025286632695165955691244283848035723943096901616017369955592916278095104417318574739224506874124652966658324552590974263487816318382303570281969429187194915488612044671537032495671876274092842746848435126657885203541698367866434973451001594016559338918255956042654327971741203536814661534433983546527008733958973883518443327429789553042299188967118981941580628914461409878700409751896232736123345724518383415353370794609752097085761867667334528381145782861721690797471122143945268082539417815278176300584165665195835494143143766376947648973801734394498750040554111544893950745341914923700422853667565217488145998443436617565041931232112123601324026644522122393145379909342931702054177015340474058972022755314326563314448523097431831500128222129783354730136334038638823193090972142432066007655898631248996893518503340781477719030082741892548098278512391415981350169475020718899044313717627480283712703583075990133017149017506426719183124826453438817997686022618378025140071111086955793206280618708141954744157231493803531714185713241407003291382616722810142367173102094112420207657514648062599140223045848593088608979827229596381416109163317433937564651193014780074026978125217733069051921049417789012630520721939970739437093903591049968676523226470307831771725553427450957815790257393751671103272715052249699979306244882182256358838280327967642015413584962879230014551749567050542770397811853575992985147648784157146582110006592778027478827386720729398358424662354632343718954802574580628876452088896055633289639615237315414491882148977511376563646585968822716066512228402004344818812677827586658008438616220027177191018654607359955876459572299743076814480468810930728479106332631864065266585947935863184220525331847034972013647584578393449583829830241529428150616683521151880098691036889661326105804979241835650330759514598594450539612536639529749476424584018303901954597414971755494260887799378815617047030540197809738397556733943251045602652578666660415057408366147562354288685887318392259676345868548524977645291605679677065568693762797489013477839530595902007757609290336881078102816292065321486648873445362147593623283040534901458738009548636717580704173241763953918714234079020782035119282262460590769702858593299562538404776381790640507447386504105331124049079903848540934889762437964597651161094697562123775473586582332929778789489211931775178271843129680585923948828014181001728033632198825809142383521676714360473792495534028196536323445797579412290808251178693398674142720374095743941112108401466912154526326819147705382884741965252664403699968080632829261460110495057798700946288653563550726099615646059950021914293417896692491638215192752163315424957810574791727820696164821902478700131475406785929979411809727426470831912191829772490681151039015202535665348415589236280783851401258975825064553973274417719027506024277611906937643228333112384968924995168043367901837480846442616532280689994451976088684483789099062382382112308388954089136610425590563553528174891808326385337578481609414884003416726416894697522866344689311293646538076935950502014779161752868540997423135122121806818994189619398224792310676386402276749697769474895431951805634891709807053628896241709098274096323931934002414012423536387917944467166577879035416689406055424600856264483303779973739750750496907386956659420094345756949079527518951045573624141024277281514326827757016655508385039946920404427798104829858219800954968438481705139607733440493294457369705643753716647092144872440282234395045808747854775686896206624810859881988843448474694319051547702892458777655695463050268140237230272667278984999699287130304878706645414803201716548338763814804956861498624181535485397381557125307187399736322548129833140388050188403770777480267501106516701087918968563898532128081132405081569262839819513997371302889111051410449004831804359392743275929233969785444722151399933992308628976573232181891665044106772626422584088743700488242780176707531595888767526289851009728014490406548550641944575031003741264218539293526365611667812965439402241399612821835286624454635939021661278902239453675092432138255590468010884865297127275526513023523180687095980745759899918558848578770837017047503865742041392085087886939739640849844272519751947347404929206941659727392362650176006078712455710009471354769397094047866598691912397518853866549121563125330254824982436909718219082838372067579678978561414543982889762133862300405875171839691135201177450898530550952649771246279869598617226330858162262215330646930022185235855064535168885642484301024497050602979013025389128654987335720857211377487987656695360975567517858520996833876560852393860448146237694849932692412860892213541059715935377631141592633216751470701861411770611256341691808924371547021629776202170759476547279384974404724711891729347824547194773630838080852004124296735856114692596074704304333777847903508739087047503650717405489761080707315474778070617243711397816494436816307673122248667668903741098099536609855494069067728139670018287996585812512365622004177098096770895958395039385721130849913026590489603266809777674063400731773696435003027114583681534022240618656712180257333105516002265617066339476014463317456805379954345328067061269384090681193102402516765842495232353762348415232596690748537790092821684309198281341952788872170532693370973419775941428149704332868274888173129714293230519941205839802906102208744000188576052343957399532282569720914979560644314358697334120105833470593699389800882377983574568678975513123423977932884957258834217151024027710599521499638418652050140534839587252920146186253065582558386758438736416940909946497468225855572281110614985263454388395435964096922483427779445082296813572739568563131073183996500858454442949649103746688555524439174849992767393821733534925664545435087955067924257951089497539853525656920519787109490644781065958447125292030350005909297370603410804820828212120667543732754828257941474448854487124464042861084028443427838009802287259556383163160364765378665040992945770714939711872711622899087209595522287506857134460484470844308059948478586959096854353967582480028804422949239701213731262210600573439441031072557316612368684933821759818545338962473063249589410855956965225974431073951523243951541288482871806061563803105400532016671304106290014575414976488351052656256521006790880034010757960361923745117834185266467879535265837829310816306516354544854195625351442022006476487524260741205717636741911399712165321920672314694693486242549275293292054464895887358662437689051748305444123014985383921897215737199230538506159803801702823256905770176348378202772387985452151573047410251599183447384282912553952122831516061480715302530688710685277014103368805673939669832023580597179221221086183843900464466635590775472167934344594276790659427424594528243971232767272690098885168208143297810498798747897725435679160133384692092707396237399682936451136983481311708823622493701403991570481242657773622832753752691997818323748060010512308035677647699829984066466055788613743747611839035963621300384035578665028847613823519753140997681773706138006970648529110403029996209101789393424200005177421107248737628825656708579851968748482134318092277838039750980038066905014004172186856502049805102959759868771956622703379781930662321578546408927380966092082107820957343267469147046560390806852869938233046168690644896090971301723115314326928519091370187624953619319922847208498889645451326659923367304089286652520705378945739636450606513010503861423494639815362363501859483476728731886438203384857218946548883996441075772577533021138270441350090294476378507134298277123911091101831953499717679810818496311801434005837034644150724530512774780541570654975595276662391827274480934519409357889725671250517567290765708940010303813698607843259775253626940419071839234451999234384883880581805179376264947169480993218670598204815344447970106517764604121716215859516200615240957668370370255714965681207376765590011874049547833799222653914839464920347686681175699135448497879346345621812754052892703257078357933959458307733841317168651548238710633263294436319199363038533661806687190894278725930792943257343803226731048458132859698701382972289699475545837283106093456931923409882547369966669255052967674469600098087548493750868598559646785645155145796653530203712704767064560213827684714696555176699390784305625475221391297852986181479708090178981315526719834772843086790741320814017747623778141862459500505053313569352539613551228754190296630677655938701967682988844306069247188225496883106915434583036803599936623321611215017058779063451896151662760830705447419097457398848743066897653256730872222544940629965089478571364231666178842995247940292900038414956856636983841590274321396617570617865884562100962786171005544751288473730778053933566436023627814591302267114903838055981642979935611367037129509946959909962305334236492954748099947201481321562399449832905002772805958057021283342725014084874620242845833684726730138560997079366552767217697997402135710412789816829228860577193830421237431456577419145770798434300212047548184194232744101145175393353989808608011911595856183790540542427996821083290545350230898290078295256062177402922539872098267264725687367082603896267215745749653475414620915255634213187527536621830986128852073967999565957930978870780295256338594344054215049364554484376213419170615550176258190518230073694103863239346281798758863244552823734736757383637498441811963199311994974564815495858633002487658340484651000140544406703510597956637654329477465857060398686249066886145725463765725243722245479087006245182126740392578612106048088644511104918827404241796345536200028733722099246148816370163514595900962022952451179824518342363178908830187206531579482239414646565089884939050131532462371803408340325664361225948662643505670533168724018169527708036228671733932648660348695029460480294992167079066506905584245350760372184805743544393724868652167439265489786448197948738422721590107721278758162490241373277672977288094191120404478458950859887743551311592569014318931847171537993484263287661688663353399395676023259753129107402416050890912085385948707460801728606347394068979312777828727765949250906674355045450717161554550924549863403479101667335844566830868072345005177153062917819997380967229850135102157761433554009799359541452254451195934554955264403333847896058885052679897291927364813335492385501444226980466862844353253558327726959385377024685411672953492706806745398091333573784299711864514191375473491627598947007315154305678728220621358196068083083495662638070222744325514966209572788630116221400967297548770306699714496276435275557928108207219754121058548424842336746955608962035788276151498594952365450891993626495778419299985730924665795476965796446228464908078230167095716864325378915015016188547841014791338718660618487450156069445569609669545264008929569178106317571464057315652510778257907945943813473158977573357960635797002467872574806618487718228445909305269691616207385526114236358718562083291444298250639478277299235493258169758507239799808057432206345310059681668211747032292503427233759176906148491926455687376634297821510087296791443543450025151906396681020886667568254750680219121036002776227840039332451883237939933550560748041114922791462706787925553008447657111771441222548389888501187197385203478742319496934851814744705452566708817446222322986838408319211164152451119712906778510818709385474322366059470806587570362348844552198091751558684177414676310155344089304740772165551502289213832343409578446746642463036040936535950965355226776336701956525578004100974049873663742516840894558158502952437454512285945256198870923225273125397280215177823435196693308147361187416113624155077660926130694336155203904538400465656554917378593123973787749686610906244652228313551620050712400725366139174546543853130507234542779098826249461824975609371256565817722661781513768070905146180186448292427187659862862457898483634748977326793897337624063449074517560703585490495469632412779143776444767270398229464715080692867693219800302650458951683251698566229298431506140039137673359067925956946145463247217162125541180995142939775498912576178806022224513518279118317942973526495741455511029668595190173592683457819701010074567101825920576090323601968277866793863055778491587127864297191823816743136693052542400178856394819318495674990161754933463980233860619452235792130146035366548294571042070385817602003544492811499670667232912944406035403268544410059746313432874217865423269978355533948706127510249454967459216938283837469850270799667526142718501777695104033351700998181489764483818288611847422515873722084137194925780799840603485511279899841281212446429240935578914976113840812359490350084415078783684061413298044953074604985197983419873322639659885774138849159387457677296783068497769233331073722658517071144099356902506249062674469620970920057958067636770322646158723714087640676243148104891382180343614868339156856189070204726013638056252126759631917792811142704001718602822788303519825674125904318689415546046281015969337998886806267388986309056820962564604641053756107534656122068913839082906403616332979125566032213793058822243570022627687666674587566026009868330183969774903123429880895249838846782384973309570723735217614113850264927591386088339863496940945535007780189072604665868316815192214737942805479093403845797165171106913111136012267949891277574637141785342492303161764497477106593915710276133167598497401145937752077121459689795146687937416919242029983045099525640250320866982780483068868462877966241980779727567352016488199410208131349108285796964160950267458660917900451170345624471761637252371825542864111909189753536091001291170466392967136573067441423965301379877915654144912418944456925682819180146485984928357133198823905006910499721452041650271629318972612612270253526855927530129611354403781239288366698247572849193174940220234778971996252927439086650063956057592582640550659171857784224307669192888706646388965605024344052279404600598795037767997698992119783382673449654484406810920180762847097345090834526359633164482650916974018221313444238178829653906084879271862971625146896461418485449711332778808985301858596525157367859737014896926019738758999924786286388253137265256580849544716414799249172167647888221093253281032674102722028002962672391433965116751602038647820107080011385464557792112144932400356629648641668834640479456421803119011368433395263510011636828447455377906984576248480076512390478203860470611201283356881494932227781170552505815694771151201742458915448866863917887435694249756154698561797745620397144477362109270173736723694908842419407027645676375257085990187933875367783357826346128159486048822688577506521244476919017494358175906931073283312158437856418325434686721165466538913162599417818579372697315905868579654038550377863655389690841311423045644676554622610525642696291028323543671881587879211191372162550757085933154525317690439824122113824161793785152374760368411603396595620165166682816045305583913698241740298660144262416645814669775871554297895124557780751096581714285954214331016357492827594390425557120289975235693120649589737656267775356102105164618442354618406098072952881605650083018233414156362106802694893356207425026280442840087613634873417019773117854580273785190983969238423780423531841384315369647737519852531451145074975518509974186908697189922201080752948093004086748704124121135397760413332177112757260411140881968577466742864247494069197286006872284820251689950957788748167894518373137551689417572809098719747938194949458044845732705133602793947809560019744070276748436934831410103032442821120305553103863840672750035930699738267568503739120635838213414122385964041807063708485100207085572557941737394088786152847703239502813802118059061656946242916936824413233162683555256481763248057365358523708403356051193622956229033400120541908927646315188590421465666862255184494714798179684769719621116188512011781683134291523978460416103957107407369368622877456573400513153212806217054177718281192353008480846436564021231687377388422279594082874757992026980584408656214958782193379798606021537792194504484687364829071090211437399151034223232144668161270059484047589792846146411136460292172354577589579166606705761726221434156273256849568519207777689093709355758499218378886648035908732623981168596918967569738620932463466758399672421445245744778238904981911953172598317949687516154014662075942241682557309582688646304950661591312955604586028082485625602762126111225881682274848959400837795431367567002013623659762916650026891937541965911318254274031888122025890185711782300625869853725000271714874454480912472885643389513822223305997649378792133504328556979172925516888377743595046938529952625114509459550589630222316310740286205821782857959239493722033959234990200736673133624760278263823645266057386360492318615044055774681782079051484702515960331113946794482914236350735308503453248717850186326865704416163284822110177402079025647555118611843704969909559438521439861436279999763089172230844538444768108501781700300723121119018195378844934765399785364017121644243924506465502862273401418314453124737690197970549941853283232645392631380734439761954854768355625111724664097334339732286403824640410718921984170678538071148575068513288679733654246796625273416572368916908178741752949738311064102218777690996432471201855493666596429807969347599787790458301755895401443670571414675236389314591192845834939494487364739578165461928221580494540329362298651329451302857757888816198088578343753355237830844218866933804612754821675131130602724280028444587006131935743388658796197519359346002849373714449802536171651852857378187249696451169011864765879788822787844940800417570334411247545823453070194551789887235464266223439285648256640090263226979503718728332314335755362258167648952964829770829440862448611855669287728025045365338736131601314302130374587662444306028182127509632451565640714638137007146017451548916727612453147567273398763802327655061131825300968020152766333525677180757398129333692242017977184317580034984024620950456078009334628515813709041012948550670581790313731490147426336534621817577584566933967181877324934080330850970441676122384837077846706282373899204700643189289934399349694045740936066058520121081065554763100129198124668748607858782851712317123289727500910141241660432268302377326533715732052017873535306118726675959365983392001348302854734498095033738424466712200205133676973726539520124384160617169674685953108067567751106896253498472017994450580089507267861318484094693604230919170439495231934077438577661738806844835299335760038702658754642354321143319481751069841437028116191023177166059014004583099450757263907210110906278820717012608240373496446259337728459456735267484039065445394994010255071811377726781389257757384072580073099929726046087599605761944527892143275128951254157784403923793356180820309616781866537358232468732101997658028484953077985889671679912747018064999599481534228345676623943465435902030805602702759772958370433723101377574774882796431067459653972186559681174916453980160684411996142683372193387557428854937101877768989366123503846628431633508192845593184661718948116396090005472912078898552156754999228621724368238314591161915930092720669172783532662213698332108858061948756352727490827900110998083736231795755684027451742967872319629826407722332201695157953424505233780560485393358525009396684574412729086678424041222955707143733305110500163933877094100536014710198908552349650790302291807273417500650251588310046271039658503470022762233911360095834817372154385271207955165026403759479146063879947669902839355148630553319166350886769812550884899315199590128862680803851493366982390389374934994765201495337264325172492317164594770243855339400800442362415900570780564788930825112610843678972345823615532593063606532871629898986243981964167087411336585050312078128532407999261482443755722481704598556411158519009257812758216732059905167253080778991832236458659862348014259991889543277969004081517615184335641435350067879473415629329895653119630517154285513508192679006600938753998764894222934743593426211270016700002547716728550135497524914476598277211096374049670703327198660709995935249009720302864602725768174725498535776756952549313641430988854306976056733247145474585007692699739175633656480106780909170220642652562297302743036989238098732607270180002476541597005283000251646569211094619412787480177835559976633986312400373710523308577077469737303743478137336707572952635458307444600355393963224635427383962368532043637150199346927222653546559977788828515922474025988402257755364447487272257241002773954218946175523966230243432743694892098225671379514037304060012485331075712550227288304504440043062093501859718158606380618243759152286798423877381693194377542898978492132264157470270490823012397439535810102708291368573039289514885843647913615729868039420094395748523911685923266723681355860669491990873507708715118276341390373647011529704660214436396256981782304627650786072859877272510698619806955959341898989455377379491958987782817135982904003899397203123621939635313869883805210294020423672448382157591661602645752268987556086452415619527001367756408200336098999899717105687957794402565733324609515898002124002418855671210286862805111027945715142198116486459449963981944495591156529012851987499140580237099929756911213928659721091248500704284570723829102379111681037747736211983442124869693344817642938986955213808198597926011556337383104847978241823400239506851604251805246067593568521651435772417066803422019503802646773199996007832612386226750153072191369488506994790681913160080356677490624051564459682497095880931568947134395220475610582597051721021748766280535957695640125672109555200686353685010920997104738925130522106490880406648525328323811659459347835971689759733540569080040436144913968312723489078625729065674122925685343742602522602121536373005821555896477814671043790334148770820077174554199317484821644409008618263742509744632045472061533161196940826814040647369146484319416898465694058289137510784982152289147892929258055599077731994946053218287377338076469552531302715478060930336105509973489874268046025152062405639303420605796114199209071034496681748076300218052306566581018834345877878564773950562805025764644536486400498452586364104725970142019693051429239265835596109058771294201418463066908246692854811239321230447139399817637811669464733826523974539314741803304780864993866063879989116460951040207881768578040109893141162191883458414143886144776648529444767865547340877990376561123730348480168647022726734534508048686327046670177074197436676154312410118076605266569400594669364282001677473361541571345548354601713809046040190280746806527108790208192126207763493486490525205508183645893238592422612410357942068332550562726090368717020816648328628766408668783067244467355775604825052817993276267482342463528643511966086941469209366595768862675931437506775829851370060474100458094697132998016102943215976567051325845046597174319793181890259399922961746047871818854315897219464340887191212935481236742041508141180828128854132830565795381277824699805719100114900953574064492899067456498454213071266833393904760212351256875441216905731787200583891597495291214112438078573196432546367747147593767757447125617964750164153599717364801827148324431432033853190332695736150571082754951332856581501025894826701270200377064515551717855716910361341498729044515802974857660385516011262771713442514001342347597999802023688289675892885231658352732261494722090021404458000626306428690768409288206769075173047661310873130828440049256563904846054128016764172726093867332324276899464106490868626355105630682127027461695878691586948364542664900827786776940879543244467470252553521339400004595595019933720403103255045150138677054894294139863535842131554776960601761500171701565505294424761949995112350990061246362648479086109123820103908188232922445551639839776340749106454318550279272984476049341245066765309468875430336285424295125655904983469087748516562320096753341359018116135361838020022909407536750141656000838528802037960440034113922953850469140180914925434536865063573099504623664891299155626629816792918432937960042560282263209132353429665074732969360513704018603331340756922719408608871728196343304145094089574974388972400025316284483866373759116819677934236388762879881354523891099733085958138059001602152097205775568329291226434791460121565693675602823639801507741532270610913849990591869295664556877372007230642464870003338532257749649864760283325289102876122240932710833066248613869749509504171032160665298463091885656003310467118058202348368579592265797832399482053040435826756240723038175581367671683395398560153403632215408897168141281559042379494062213732607153436461188395511562498398576459643278061055153403760748350024562473560983429503547701337159931393381665174002165258288520181869657887488698908119887690667546344287386021519624955830834442067065581727294997249199287906950168082667419601465409217116595354446141249556623582221313892739845025618410434688677533362024176180315549534600714575439385859802165656672165606920716849156742153490606895857668572628650347312840688634508691631322537478609719934038398896974321046771266821877666953551340562130645237494741839075093222328814726771409021012177345982834395852321185882762976627637247253197405806333391582290616513752029392588552531075068122364199459096898838577021810963498680221052069552041965684963847613013922379447344809982639078679919175213062814160781715867612447321108460851313150170921307642050312252132981235392752690768729570908106850812218858304096700536708382445718065287713900079869649234322486152371935512447791012597124671913633825256071400224088217709156250914199187022203670998716770687860496848754916114023480731366787592249670572293454810511837569168219768067413267596161054546252099472347811152072608210930251258369722321075931086957728262902336489489621383878580748232594777692652500678164409804354009710079916159384738613824460013510875675035673585307807469826795100565648999902269154530856434544476906682330291529043308501397352733687018069307230886093181769737200448008757354972798618496209858041852026146219901628384390564916719342203839226675617258276581941488577666080270218072566761862085025246826239651543392055260426168780810177960584956720983267735469048553398350254445343213908726280132745226213276986567705147830688936953245049331748890537879394034400775143240873999210832135012644700538092296617747956228050071917364574303114990333191557684876031754976398654554472031723657776914289390983195786839695151334967539365211634532498839631279897640675610952564746736673121717975777808051720123840758298094629003364082300719758837405696715631115173948529381079343265829335957577830865328333013169098803625975596395801708557844721634430863255906957064874671793451988004158649973079092201726753027763737677973116985668531708118622047303948029668987491351890282624554402152213396354594464497232519094250649367587869918919465480262204560948903662341508639405507807145148583784929767847123164223702757518922704691539918791037472602060066153773405491221820433076710350534504767592652838179653994991727214588145907601068141547649413201093409542538199571123308454863949631364427022267821829138846984504279382020833028759978737020737379322136711775680516308064756770001340537520331881029463868601526298881914560753699924765915625564661553815377139468457152655841578081149882819353441610902486025017245927365200195770555490252654241672393601479118348719362394208856901032659296830719240302335805534366326244626060415482306771917884365153903717100448858166539465356681813500442777482905014116148819261897431097094376611231387495010787624484442591184049636545597043715765769969555196284888847683711648394680778305731960214278740568824488656921756766235828066312966128391580714605493916028739768912640746263968280258874130919196820235177392295159664371169469422854110464834836347389595552955519537140279765750450126807144195507454583476388656558645284390605210505041600016369848243031293908199704954762135909837153590829735519809179028370844116394155879453912069449069735524643470404727574387762735700757655370124258427802350589112291023244310494589952143219463335911043877380536595563490161963740645539970311356945953360182962344190195911981357668969323433680632629506126906748428266001775573540890641229438036772714749960123853465663775027817818596819080891798616441489066201696727948577404022888154395987530874811839977884994239285310953714145895572263034156757201951939559731111865096272369722210792069155359595323867435717548654270945232817688906155987491720757395324098841637490066898965948281858024616229936556881925515950627452724819840614496773656566576256361394941705490564259704077285984444263999085416738534321444059217268481341883534826879883995212549223595996883184225340215289630822225870061031205909858671706691607430430365080752033149502528087740334207485227418386429289681054831052437829094497282351424331747736333840176908920570208118164966005740269135602672780476607655734186452829352871208120717205644046531756262252371368089905706447510881943484203742231346971503996428689479377120650642982249093807717545391228507958011113980045273613048908997773562590931613709071190044599591385085551197146322922364657946885878217218183279967109129087344504062273561001920233109727380977776986118250260811559059642406566686059080513980308368869757360807975022917470365250468860406973169509846199029779065440642816715277641834604111398987569325958041740325817458614715872006426532756943608957180691784585684682911045902385204797436709488238957800455719514788408402013452871056712846353275853510194142724118030186108711170793515526185261955895286797463096628926356890346414702106760892103103322467286725400997825604714228383554481352435176772714692991723228779954157528762164422631921753115263737553570066594866913164349936976457312778268304937102855272072742625572846307933101308683258907688579867425086734674721950112952433176900475887380230577306182772489757180755664292259615326967002732806701275570512367440506305134931843348449052887292334982533040107395677903146876346450309079485260521013398885213787536150751549737228034454345516855130301506615420465899092338409898731060580963673768236280316879581858856236647382612400048728307224254637996849146595363867159217200195426482339356479048382929331571938491229028547130724664268417350971179942011472728103187781204604301646585008661381502604169742948203940695674714989371056805296004651623725099991530978624673108311172459556168620327973074397693287863679442129449828719589476814294014068930434369707100030262076331813113852952625371103388983929884338485763740213014690500778138746277501202603982191782414781595676468022908494754287544585234412410344394268151831565132918856526851459785888757028037241558449228441115898965986834428297283275492201685750479217959638818664889339369986142872479452538605210235700473824644776315989615954451136669005694527058482436682916828730652180581132072445830600240617766933690858667789995006405367180289840300445881483351552384169574092921179612447606309377030814907860776753103218744984109785301075138697980182877196571020247816377209822849024138377250904024950774700796646935905376266496395417710160603786657928621953631576088356266842064525713964265556625453302400750682792795955685204962441180391343334678953190675224860425167269598004116056369879745980409502037185757850751035495069603617756158053893208923194188303403846346709126030329764651950656032424286366937947781168928828871959080337363942017711871521774338830062373254016683029843719696080913565577527337927926091834872372347104823984173016267325649205829795015894334829954302939404548133495098323050776066033865167688362586136257693898620513201096959776058209657330825098459367211348806300602803762376242672448477474918632227318182312705687915009779258970942716184205769016978668522278029327266882119280394532074836312605490647222982459440209909221296818633091774279051199523427844356598891810492256376939120679645159152964582910394349717738472362941712939452794595955997251220210160208197553437702554153183790078162223623282348723735928221906242730810016621725696279711099732913614095965023173586529574429417719120291226762569331240246960741541084897473322733477513207054187259356209320889378076474581820503801654064817147652512302318086486408151409228383664671173698571537914893583453789538398674648703656789086126257200140269406640782957870908922467776193038799171331369746811994043964867352012136401235038433890757536412704208602513055109080115807754693081052082194018488915784553745994249971578472739783265817436032146666729190908282046431558738375476436224107370366554268437429510570881396417119043680035926887081566883167173210811425134349418388972345680356120425490197443022757595297397060918994553824833248194276268044527961734401299493906594990724475123715217740023640405138979289226427316978796639377411143290229133782538504135210598531944736913913050369725939033595023163889818852699391094809621113623996249797223552317315226427960297412397871597038241243253596661025765294660511293094825372574667139191476141401033560731218302585635239495946957320033662329279668845395137283797882995514830249585777785108557624340238059446753205221774627282957129459369703609862542728083621789387340442991451189409892454918655896019255221716466481835530190305028090435383474366906838750409912137971711179379348281412265551759646992253384058130033592044604597998668501165178958696694072271754057916561328225387163910422842948689869575700801299085963979575489910414222792710554897373626723106117756271784051648776649434134485047794922312524229066920243708728498942430248200238725849674641418927434637472677640491473719671465947701197120467682932304028637171792166969640388564381853936597664422418228826398174547139993699412046908410210226339659947384596347811064706999016420478301851768679794122473219942049662112947188473693402679464874782752886074865470756719873108119942739848320417555930191116680243408692572163342643660051655808341170595644927354795104943322454664004655482157989008564159800006905192577355228288832029334753815698405347560290740265087330640512402596559397371696614018263644556752743514724396836504385832780841776674127582528925682638439563764304843182250951467824251216512074798806473998435777732388151772403640924152705511694885822162230886920938917580935434161489939939292678769632349948857567992868076852484978693249183160541084183564170293835203732269453375693054360719388897933918315652745618755376758813891824096036832741033903213936042442932025368804608879804904793748826128216703140474677044165569500996481450713939246938751941949695177038916713774272598248111706544254416958074359355736202112207791200250620568482053660546051740058940151121319183646196043007817447465792047907804979409570000761971148283981293714660922998880700083313215562284304561687790969420106954143544492398552727577200668879512994530150557642118926916588724969752115246790896529076729384389158394688208345561202959321119117591969867461728277240668086916250432913618939788585073656705676112201771255023319140178564079889905897970122256367837389845966509994402344448333773888099177024477316736531583913497399312027524134065291991412766012964838409676757482886490948954048181013287038139955861395140571241759520330623449731634233433159394221388399600428812318001151846301030608071840519953560683958670522081383338656059239533055029391949458023121250073640903278817636087669178832043325825379650859244086281650675392083889474728089371713958300265316238510214235728666404568531269394199941886632265697836732505754603111820287811565218685630466398460301068722789694128850925148339895079414502894277467751439930688235866690348721391397243293671117237459577029184443231801882113346749743843679124026392350156931384074228010175238264401509863531880186160281897096378237328049089306358030704369799440707523473378170800573947665106282249251832070612451681592174494562818790472732125978465141932561071941113841760419539508320434812959339495962285550400739316201986958075487146728829444738268365432597816533939179980203964777372814282324345820385726294559660930172499889097297999177965438914478517806996181956881726421135874323725987173785168196777154636371143138844236618140541928640069505118626782032839169847104114394470132650599335870978001734426959566973405895933283885392008852812970728326388087108529615569659287850038929740558334220583868914428998692693375384877249783383377597048467800259343427774971731995614370646112704969549798519271696282843925275448590693133320736138860303712211608507895786848392227880983114902312282765295522789981474864743790474427920487348515149504997109704426615360597239764845581243520161278819393382698203547757380984735604310831434165129107339658061850591121914392602000970470377925463850065310268929481971968696855248892425518222130127923336053556884081212695680620595770127826936864217568636122272421330325713035921868836690935888504504415707525208185286054743485740161859807317025257464779500756992912649615546849215274230751647947040045966532220000714766044447443562533648754968568237747076590240555660150444082464040928094173846230169328270335359590373759104389841691630095635808607022225799049889739954424799966493730893089085085742487448856202929805445125178133871112835113958719714076889352762157915676239594270039878329064817023477297549177142415344148957122480694771224492819010592105389286919920231695925580102183845215803262687494386150881411061207441849715712321443236773795821626531431242522794798148191203478585282171558917970184363764756664074536453043496301190353906369359081850309416966786550154499421455003508691667410077057954212463571327687652633308242544918289939676841114653993468340200226059479136387868777812047075944201785774212003449708039832228392871696997958489613538905875909857227578069445564524148301408448736742667355298981865204012820865761532852230461680745524792702663815010709782389892536804134407688793682234532819643976171700291784933488050058776804466701319917408606112097903844827061805970275451616355493944006418207026523966583668911927995583377232241465553008532694659674200786975172182485642399025977029617377456346350807867163994160663606315658972024640938704691599017107469657875757784732977505273341527451905142052684276085829615211122361804078108653894929334347635634970723347606186904389913628335909099902122746331266049750064717786422551008802969943341634794444864405909992891528533292880436041284971394067085592206769298825064331395257031931257449808318068322279215859570964743931245670436246992748227357476105962101944143610129785961844499521299410960853163746543062982319376434063184207294488993461386760990148971122693056788334156994419418156783118435190463074703439384979484998458490158254028277146685754878520082362633488603612628999758328689948935625942064200726622348056604768857394735361494095078173885464113919650030531812621004987660234694117011514539558642405603722524231197900497758622123242577774782481212224860819617347856219688615508834783483549448524962899380605762848976693779220843642248661831907845660027530548442829349874468362692060319832473032718619821361353436032210886274779131971041852384319864173687240070519510193826895732995145944957947629716368071758506837354662632763780428027863443161810670987456306339047658827161341949914453324748604821910910554702428006483048810982802428525713869003505546252440223958979816316044829012643441981583072850885635541996099258026873690436075591509840037049550586118875541764887978601926906776559949829846825213973070797255015681022502076791382699467102256268730198015146109344510744255799125911294483641209247442037295609159925021148980009515991214763650182712264407477023170379469771408697529817082947846209427198091768074549471401416412048945210460034244057213864297700137431610692228950795907934791020063830191837912901618390048461412461070510509948798539853959581602611377555116516106332681554653585016135011827982567842206268610192165201139598595766451059836015365645440396298991406468436443834760297985883078221466653804175112291079700199977204872938712930103532261692173632954306715224074570784573655835253590218965120497180733256607260067423788610244200018989260578311963254721695984382651891595279642761967816090275318181859333685109001984897184839997439005921606001866214190292765337136516635638708872906142353625735137210523477740728782245729685178752713513788742279939870572086044457370350920827286798488770470162753092823633678995250450644326407533382270081006665721661406416767386911544997248896587435164987187914191492566842315275522404746465180081877237110698581982731463915915943091976609327252326150143589577977165640090304672283218982606050770961557970450063183007766822952589835934085435971528758929684312553812469174002894342181741599380553591461146359589991338394159240529482293451933546957327230120252317279607441267209566879384199389098933162228054108752517252285373506821970803518795447969867382435833211155103563192670884725027776531176453354760743764679122285361110999486895007326778327412393326151308807259429093421443136805275209971017911084586531973470476436738887702303057551793970628363416946405201012849509921906621911204070168976783158307162824004757886242641176064056051108419911019178127552565825810034154072507534257493743502113640640268282850957130046837128275644287952969093531666977493794981652312508139487539583765539461323045902088939252759858848409416682773718435974039919358276128370272589012565866681855031243670005119299007610578851687903595498726522895038082365915063184423479873437603560178770462482626774168398337224106411101856380624481435552866849002373183510904715971848012873681548631215763294196566027425135283105767809232163027181209975553308997137722231748037693963070000202497294936393700813086451323167196316238976554992171237665920383481339995169781244931638340486546943606277933930523192576224915690766189671468182311694241004326920427816175964686310046400421786553579247573883695121246399535527574738509194231889153715961073006310669229784193987935479817262256403163014126537407654196167289644563851627039524962335668091205085450129045018567140799105496071914221117792239314408257404105764380610284238386942972956145961933364935268739866005948621323651359451417174510676125353483333752744099364272674959160318073218391053365663976365256219388102280629761845449860515815861093600370633683406879053137045433119461259073943938758425152671880508679816177484521520094494383500165948340853174563646692142007677619060022717968012819598424470000673054368126371418326869250815421183534411053322767253041405390550844122545099601734304578393987514974785432622385087965221167902429458839609376228797122050061923928516913183967289666122543817523063216287937556320952117839571021322798939561974504384001074580705788002342514541485678165311291929492977531443704155734984359799564682621009341526381242909224797274180410188947299848711910030262001567515124343107758980197834589451384318423590406856798025850711075583710884690419484274389082756255552749000281826598921763258759696553589668554994211499123384432066615618943830372261602440260842867833357644989056601361858443866168166843685767848767881320734428850162064362366870230391698911604623830202237407627004011667814040843477014896243602998464250048025463267510654965746005244087779215752024825929390357317759252603239427508653379446527010857221344576757907343517766069093851613938783497812590446978199901927420421924443992325405576314790840487522465400183081982880289449711609146690101640814071745794293204575248895120923593945476455037461998956251300710510830106442484216267416161486244566541480148405091067387101688716498213414040035347367039627252761077749056577472714600726701828216398873337997081339602935326971256867157937536231573215719059477728321091794298444389531550059920656258403155017386387050213987030317169133715031242986988576025648620253863601890220698381974964725573732156419674983495840888714105530514798625106671990793901039571972585053107219368518489674327406952941967045930280030588285946445259634252127513763905362075462668176966575385248878010802613769869244114165059008027721123577373693061664958547735240004822153554863494672577400136894468794096779262416134613600545110030483155503016281480307374216009836994849832298381701735569607553310594516038750955960079368265164325147294687660981849420107713006451281797657163859046561230576946036765749606893822220974854727619797832854703116177101029965369648875753234421935265535514107441404730960719326000459650867716599474581113195081228480020156549389283828717413986603234541243448320108282328250458496172790521819557646681585664458591943878956390179789944866114325414729033007936610967238357580130076135644072469259981515102805141946437180804095540214480345388172640971530197301913537395874642065329154460861070306775715632290096840379877770852662323195474996723387482455138606480666697888087250542581029723435093872274729311148636567346471805434411275968865129283494647268759946224072668466048811213017680345010230819979608977908994778838252711349401608769892510101127752870800851779010253729914229676281777326079999429962864779258241472962802635027946992100469248182651562090268835203572819968117428335135404121257923116171779134544164196010417563576588460165792474552049107340811859776410794981854237925011102763518431800943781426705405490018909481710501063554365458005511291387500940324574597716400163592871652135547230605464151648123200624642872196976941375172160682210574163150933203172459051683672506474805486235290428321703187437532019640506842815575982191256884782898015223548649697007068867697576419078916058894237647717987422442420763594030874360471121022016388942001465158686570990035406052137516238957248002842423046655437609834699362759322386107512873881996961825495401763261715481049471136259785786807925518906318732374603925485267766555751969247284293391860609037305788892090864658517914426366320582210693602532668479242820764937140405424435575173630741737347050892465304429320937359384789339148932462515590084846044213301024036791841276221464089273577120981379178425612288744029156991444668938595508297235657665966647038965678878845200123481811075338766305092294864208967041428619849424768161173612443901238007216689294991730256350158410306233143110845957359522145226296987651827379594391205375886278718409456698047953718317219042864699643916564894784115116171535810350339443287173903932869326955753495059384570515274948436291264537402647382361547731567444663734843192348907913213192177158547133748602963499069047840760084531508151204095884626268605281641287041219678416487758582746815144028529470083241390237863473406073842355783911721791691472267112935065584673523800826630763525139772887551714185840685949086705784491800245603368736653298340871578082915266978857522847211075787028960472225850943772576375491735987906753451051010003068901896630299513881065405738346247079432457367499956288253616697247110046361593616491186968520015486600073110355694172114013988367187534878897249217881930144850494176542400095542241245352626076349476929957222815803390435251789377606663179273328105208409460952539562492180897991308541461408741638588859806902554587307137974852211743809728053708213864938530004199017581593843802969026194924948890194051820173607521820255029673476479075902176617532620476346714277476689312591398449345294374659776745007742938488958401967095212980586432039377121901657457539419352976065305901599675123757014365502159948964646646458363520273425556474681474694615603988249256721700594890498405642404665310256157967302253235057028493052147441544643881592056709505261936481133178676172351766687928616614739043258400383051817133540453569845969278087172541125979556921526722769225326442067040166341664533331464810080797921752764636780356358057116066098722920251898192952535323799374944440033939074291315657590741723006556018141096271653894301525035939030544385902246438640687686240559930562565743893984657803964762330884464108109383991366790565395695389448684578847249909765215715790759936996533058165932577107275885346702918300713403492834934295042095291839739907345581482182716305784690274813720616240090517318796873902251375866549846876381298847109980611410769928710888939457811074417620405985102867610359120458793802095031031309968767611232454741663867779983415582419546698563464856768309624065315114948711967959312512063750063714971271233650257826891241556388598598237830537372590788787066058222535525055414778597431953225703359388070482141058428295165752281789123691822054015484888275800643249815300814323276087622593962799338864832113206409619488071073067061047981359813198440154939397001827071635025880030595271208868279572982443829231246877595050439626609150953370597646114557629620207378053462519292212187690446316641960697749728544765343231665064459419429937246201819327921284760703800624509217235108267397334401186528670130530951116939414073534651824731888935579020670913146909565613461672881977646573862458286448320814757690683065050641309123606221592464155389208756214632624647094048569865181235277969249807879319433375891697747890634675119290030257921689811873893605056347550017203927811946684641684440972385563063402227272523632313788301620787316775405338499334828492933838611932648633034086337288096073992725874382746207912894191236896607508992035240010339459006757960517168993703723485669290730152387007115273315355425064163876188904832994115973325604422729938867615620367372982940162920720856928217560914961480573455888305980411855846896545587311995852933750051188268209316968340179417978161209287656002883766589453346285719016940291107061455916111714276119932458228386182750141503564780988253040161504097419564097539385175371052114926590327541391342872502403303067338797070403106045803713935867997115080424672073616969006802039516659842206530462976316560391340706099569609751630806278019741435333602335824152096540892427137132514909369791437121413936980471944331335241856777043855636182181576163292626539809809767248708952496791950075479035214532320843037542292232728094267341166420925580027027491286283597514566326731319584095474835902738010354179326048516946281482267567727184719664445729061698072479206626968200756597188870174741245292168517596182010511055409830294971828712801967574925363734673292178537263483228978887981146269850762097906343153233619681936465391175412143992886696986193673156035694229717298594041810534338254604795650428133419607725262388337190325473213268559338050743661600662859072493877689526700045204709017708788048906435001707500614211116281398816073659364369408139773065198910344579876873942620137442221337330244189332681574142061879008830980527152531600583381314182134836197549456166032296424479948279839893795800237251648581866358726594776923654910471427748076659064862971650568456790684017856018726615401108956249136104768830696356532166747871185846092789285146744046258323180066048087524241360381189938401731175732427841311618450600949020697285848141502908994358463787578196978926509968002794583411447400375385569855327352260556037938475143603891447734473760465207416782572261176006557419317103123313530198431099172762722315537812161846457702150434975258017539391506388809196667157649461028058571376190509245148758580196691239823505222133615787505124781751223750594675429654708432659588196471237350235922096816827969988698657235058013954853707971674863902261181245153797986926702736765794975999518205370882749009989787016341407689570019260645581861012064577322869140145309041853250067684197665425630532623964687254711458436486575882147817031543300429118667692488976060706799411950104346543209567531365290705934562248515844401445098978419298223410338329156999192758096018756397150040984257578071363981161932931601917861890119052119081598902704436423493920274514716115689234809278735271804955060552777086547973729721687734937596684879290244556427020574021546593725666973366224820684428953445257991147079057518251094816266499890794459513473706880181754742414987804067455091254428173668274775906259418909908940475989633461529142523971813379512901964752647241261693080536051859250472211812466635026344658201934948617126168050580356257688965288057586841476854731790964086708058750066361736459052310414707658496356514785392132090036145687128215721208579651428643511290038068038255440766561036621008610793934109046538210619687321875704709577228737076283499491056878894600588566872502164028084781230678873354461476619455066284830097109282626356509229796638946560160959419467441500333750967685418688252496802342683712192065203917152321114641084609482598087455524771483348432297275384003223209604935343285191519520907528992282297221702888686443537071656249797968983032866003066336469844765604331711289452394819576475156885934620767673100034292466131214586219014275968541767603131103117795027045115992879407626672134254667530110904322164936291895476664365075415469002128329631927722820584812159772909819604188143114206097123982746413106249695453299229822995030363548875340289087239733977762437728461043166490875218950101119929629994536114483667116360014190306485991013433393507505004179077873429093310584955575381075559929546499352354635695950211224865047285867572851951775469295584328491845544202997964782301455583623940333393148934149971905068952682705702004950497062241577176381720775900562718672026546965104958560062628060975107634336416323142341097936776511846960995852025412784225933391499016393678648628623713410925666185833862184612497651796737772461212869356389314296553874429785481692667590708954389610054285896050145005855837365773044462130751512162640055263820106423117089792658178810152145884026688473214902760145934002423028573970989794868273749515685067186438023937619537345976284674051762757187135332811755533628414616856029229910186655404577233794623573858362403282944801640938704664165557052260251407536935189731284877521549374616947770430764894404947953202812470732481904619349076481419612158663097475330456455974090206896830459047452369021323354519407082211759812998932523828570140498504761130989463927265854879096714852773691194349103008502020190571179583981982104903220321770145099208262551437144695958426965639519301804116063256452870144620497270868408709301687181834630288012002082352482766653164776808685641427666589115758766580978846493479161199964032072212050560131423628333998878541954889585908912374052522059590796643225279134935660220918485964182318441776627483007043473725512158805670688912310578922550597316420865932497909981846816890498096109672557935825710838183004242488886935433364843870573305357917306344714674527575043211569137847255230291879727421683618654297482171897921139988368987925326741252888540601634968767896400942278305089098594303332148425225652184332763278640227927784992853757587089523564529469372464056805945047711198578114003943733078887869687453823605213027881608803927897249229119300483112623921391228734925325611150004949533974837850674667965437996955597539059279712188049026809711849239404553646503256505388870082368687336315086924684305608187417568133479589534524938668602671622987695562122512326577906553031960893596195018083548394417069746209586697768272296095196812360806494449854086706508064060540837067558231230270742852738152430353850611138143189644092235773640410346189387523294912913725951991983259452713373598899800453716049972226450585139466793500859655280695827136147615036393493450084359827208454337068509918574483172589949188453078951942412963922500242419118391254391326018762048456506161620310220757631118540187039404464623890303229401751720271489687979541177613517597374228073050143164016887783539839552768689230525054410008569573679933705246300638977201507706761199909226132892896339696835190492136741182183914393713838367002622789951975302163034516031659252256295494056150977146669179302959838514088390481652366796129082208504258278070050221805713873534514640648357171024260074116612332000598529494364149017284557255562457602220550210996697085804572784760194261917215841398252093539665348052633033870312053222502053710871760946543996044855415879118538968450091526975246999437574371798253710594202192502351069793272156779098148500649194332602060597927924142371297761649040856789340782438597463961645908592171487223780305846390867047835931607803944818259831575238197911077289077264745774114350323141635148976367940464142186376905522989528643915434168045026025348656693789469341763665202794987118563099729743536365001108507204454194431322177382761062114226524536744890576737578307978651373864855506875528092723810301045324116255983792939229174043742658348938949656904580924347120291359571990200150937525331502677591888886173442455107067337980276858398683012178883069584714850084234003151543578905784175998658256240060347592264059517315446129528375720236017367332402278716555678157091767032873983425271395456186816519298988609759691129850323082325884826143078321291824117435248736797911003350400235471133870818474429416657915791923919463034498705902072341148347992956380159639761559266938980645483332873780308913249600243172146764485751326744850312803077418637489039718152537859710036466246113632014599887032117597162941268599842636414149553635084235545528508622686440313500501074581712146676112123864322543766773797750939122937303164529440225334824630701446929851133869104754162748789946690137518468292705921172506753967368856090838528464514361673096756437821376564908308123384392228279465615081661990384811623146590196341211335463629964843087992900359080799849604433198042364795967712923468594200170192707857139958320246894204358711517303403093776355033168855818448726269163737420667656946943030352599953466247804712765515987212022839082505688180968339658953259903285894543028452109535827538452982662413247002559610076028292445374372643709609980306485167777101218101929447872661370812975700179712416042252416711088297564137049312495305503585071446867503760746879798398345694039338982472945294528274949572211810252027150389486750327763486674104927374448464227966651164932653017842806025026945083573637864046679358940638225811717853224974857516311666425852709639653835383039484334834626826043778581253795386645643132262977996162780752732065617021569378858403105220391922120045259874675766338156107355948752057582085674622787923024788755376990264091029386426630108178000925639539816533615726533852965320248456115365324677532301353555015703184676755623631823148559161208064814279422937566268078219379878123988965447252978247163196244046023451519325429409169304836272018326954423882413303949145329291032322100919544976895921016920188076490570619777264964860244039718251104308471648721899025146532816238795579735702233181788515129936890239177437795057302413810668019585448074309287628968635074611620486256660897308891789126944093123764891369430174235032176944635579506894219519224361154407728794353328513729080654519303290038669083883277127256729455114835320443382225014286942192403368150014195501285115093154415081914185880820753611668405819639725450333304280402394958799496945526245961307122621641309886390573985326959678156216301972749345652439855294813068369205513151027066675143443290209478424846201329463913404576439772346891823513028414297511727959762369720793100687182291639427103637194742013365927691483385426070709607530309140197695373610087080805746223850547462220591968656686313084926797091237513408178026860999165769490472470630555521723803689407058922597594039539664323524096844934645808466347578217875840376891140510761552679419960293921252866628937204599610097307065732191194859638410957984537669391761616256699113792267832256397518458669052776653043151353396632661108772220181505540457927860305722416734481496664512976356259479523329087208376837580672079781182724646970674720686745358792324292933265680822947205359267435951252826793940313615089872971369064105644721942908729552847631248672827926499824770434013484355515980266743504141795068253929609592420373941074458592825936527681973428829325689467950859783878659933835972305853226107604503670244051420492658870187847735216984418807489136666786059014748920505390661580219386415821201765253233058838279131292631848403744829682054361898244286773517846468600782462624072735961855754912501327418556954927791356518610411257393862518160194024082767118590948547795159955491449291871231553257005094124658238331090065379425362615761129836964784775797177906873814402733938456666203301704358022195867290930975042262553103814720316841368757231527308752643867579323692868273529623681057706292556929439513551346293585729793602817840305242954813885467102374468290705185474923947170964908331019274685627876437595865438009831039046718311243344372120761536095014321909638547594763523537963909031320387859483670382112337723330062053995201156503634384177179245736166132455884185023263570531920179866647894161240946958530071859621535345601084629584606613936972578375460791171095978877515546124514928760886449260164074138327391821178271710435801732576859374068512433713736154340934719981678106269311673906107709306748636536802976095479829603130036918677559462728666635958712384997049519925347902491849466544783511178614962256081970588735122976351365972367056284164767272794703120832168225532280459770021585136160344677454900996772971207858517771581809494371736119061674955357253916253473217695527199626137250721890254247100435365643662090142765387934322909887507402555127051254005110536820404794416507344055747341209319411087730354754783035854505892705975575573795604752830257898850521328131315828640737142732353066302934365087362862188057744674993716412883708598922664038241178071218055658137245322653259552439164731332906318783464756990505917552172627132804295805098921350230288676709876470652888890612944108330732638727629637580370591383913628055678315618080525826244279561626055027005288022549813603547795737216851512971428557179471399458903460476011356207453752537932233622426702902102800589947860283796487607613217105176748146856290657573961723452279161057236206530794113677606187235451730187679490559243337551783395954816168397921520362202695379352772680038436078661393305035672929411073196399533372145837801488826769955032360404014669764135822280855709643672013873345739810177991818748695418756064436660839768576107336660546796718035437453685593833478167691510725963202600362647386855464523755920312450872913654141589615900079348786831774597956490190180748448763827978782804165059360926489560992256089491577696928144105090167799572328000981578326846607103331442514722309450914034303772272591495176417187997072943898048701559846500068319166050917990944738239452242721601563266331062658873205077229623420543421436931986168772954357911212618258933602935862905591603484092789510590574111893196139116837366540521135118448810761487321409430557675456542744868016623170273223769255999729892338865043118017738216694755164208145092301208896357458410275903668123235716719909415571879577842186316049412769750571429438663861690011189302916771475476709412584219206799251787867412790550597565776472521035276014622134633276385079149573351675696909971541612059189217529518711512085322187726678246904060854457726598939831987722988108852068732209090842211919655351664031990185282668604112993886130452178008065008845921805719898635853500841576087461799124680752700621053252916251292526210850530034541626203142819448097992657039656257995526156390138822237771959824432558945385789513954943424427910316503237679746016189163901517187179573412395739015037457776106615500203915539345780567775918443260153157256026812262842713401732437012119163428576229740926273801981054794675718961990073750890600745710236425043007747963119650572088690508014993040426247946125100187724830344744330236044946100594979753690400724429517576981563078526891263159021589085660957711028270148158234847616854294295701969422070459201091902009604115816849390194050355883369817414639914297131359863648976111818888003432441118114392733363620757791319530361367427512871286424627313386899860813414440108790131400367828659701791114568719284773266548704849721589745098084925976498218300256608148181443509740031322031261873460719797869322945136756812269544289472584381772908873769402103989212824928182576030782016562046868683342268050086689013201438302103660866478357835781014496514844050849860478884361456148695279390520219903056765618223099893458491968518290884138878964531685892243528384913521200725266132360209517909642356405205707233438521164609231867153206424956444994608248535513275755286558028795361625736131878702444852508293896878318955429091902971264355300151792660316362842904567808828095663885267704706254337447701558366101044144515414875552908848822158391840120159144794028044311823815030080382293353922951683702885347948499522781575771436009825860072612339629026602426007475719613508398786993489565003577646792718207143690156431953258245054762414807007856183208266112344781949250566408148795337887928569321605809273348220725480614856844561632822522412687917442042326125386101036297393491508501070206659303959759890265868822470084800140132911649394549829393663952156254280392337870824594772280137687058128017564686515131945503042737878885392732055402103064645075356136760111594314043641710798879845344761015019350931501988130418267241081707469444578919786310132768517784824045039184272196866851852436232794696829815218818826911797477002155588210369740634074170817651913692626563529441116180369466262952337349254557440626059979377479645126759727278254188824752234860270874892269184304583954020506914261375697798158990165219655756466997128408052296073634619213295866854637876994968991838327758951528823048062516183636806644378998805002690331346845835049745333525334412135341659201851274828943559114203853191579860124415469648086908809975851174265424169142399148945661623513356572907096812253014374133537846145390635213088514878042574341160977830505322780276201817833993575339496642703576251200458641295077132636321850045530777268174725950802888507789321165003042971222206198023251538239177895877587815655768216408321065812917027263094244858661693126949221655940209022902006929630583274035899114511991658593855894893402375105772001873927692906954195839922782074915382723676017549834147243304375237600054527917460957923109729704975151457085508643140919535618887280920641927016408817388420661239216799158429251555697623789388922270937811303825781147350898943304691829416130534924994806936678280107355571294247309112885513923786982109980779579121321079792685348215410659189260965428459413365699133848689204343891018744216421403134608695619556060026179212027786922166110288509617137061884939428042255568304443037011771410731053733487482739128468227407386210367944390430684570040849213743965355103664794263978961660651579645113201084683396793204674258899870255189592784026508594569981610030916371434233328560809872889919228705475573763702932280932649674753614610343950916115948518389575632167890618039593301330856523300165841550061786471894872547257391187306878009140151089659102445584920657235274549687320145405608040169488903991052883066075222909413888983596281158409123269605354744886553403881682603365093635607169500159794605844752761644276141513440750213177228196521213642394131973696082243270978277538970448852916864799125029857452359367876830399766991348210591418022859329575860814839787602458330861436244229776906086451676772743581499414438425093037602770475495306237030973305570870419333124922503928664527279516243123655859867060743769640600971967970882280574881260987921704034475606769355115926054391448084445908112683891684599962845853178176012039889930016642490595747078013100594192305631691945075960084764996829796574531553381098087484111466675533775309686294629237415874660316800195532383473530586042818066729097184723666750224210615469709909258363199345467110443704697053147292035923239284697071914426444860448942327652368577735847981897660192777065668377061280449302032465082439792837301233195948157861290458458772986872851632117866798259871250890095594375084879052421460988266718320465455480249387885603660909576691876650043167544762299538227372314566264231644225609323790357074025554081659560435845019098937226685717158244159383177113734186688666284069398157778414601632354827976146809939171752671548890009867476062296780771942696181505227202860551474254950613541868141127660958506564261146448261842338255012357320459223948212096300917669459009706082291789599261309620130741316756650495829436604564898609915814714308839621945968256063837370463125299893026662139046675434789877507059208369912392019917061805197150246572813579258571791265249398804209058534524511253655132800126481923606498628251870794935778264444143990723466411725941951391463101587427658705430438579101535372773635773220443847620149097131867119347674724406827587969452839312482993501936861637350538970084366824409680701848703263322935603055496107282448807213198320326582885671092192472953035930459664367748689253412906320141485222139589044902827910766012116136771459076595665627332822102309354823520183400591485571046668616074008590617182918405823681881603975847849827741240577825405001552486562911721233621317447059638357247730386400862010524458237856286369668005985282971863615649545604450022702568098654360856144421951831117711133373386510381194055613023760433765708918925837715607821665510457233782958721458447149543296274151784088799045977231747219546131196535530563344898258884762252487611690432035786640113046121614975546428538525058538753332842043326382938599046232597691942653854753901089221718414789815039189146908318849030540746376773515351769845777761942407245068095340899325756957874586470543562798695446565300941036843374874218837028782976618480133957897951867957581452351248292953318701340602197166576638564507751328862641458103271395524015896992679610232884902649555954855768659122467291868128080657196800090461992109597147959789026877662113706940604426615393815516990223926887269517317331176476746107820251318936846148188357829813239250521896621976357654431564315641938460276533603479220921439090253340759394696830087258834783684491749319265581587594533502968839107049211789636894259421883616416765710440473208150162890436741004848745815780742716114090596544018595628587962207446174409716168336976814912130745981863623411609940307099218576739719385721868802599517506012795842466922219351480663380204143717317184580858336087764570462441842263998273616375203057846407856667693911339733798591791679151090737954664866180342667044526995179532210804184812919602390056679193201532695935616779543583937150340216984546152270657205042315661081358586669067616537201399632527217710661410520943520599954958912492328661551090540175120424026515058808011748594301879704993714938507209477196084778957180813352200187592679356992454687896967983779522833693687402924188434962549054194125425289084340632569968464227122954199036205153935830695519351277537084366756874269488337965132811400982430428057444570275981798628602082734225789946169967924643556211998145039341658656917139965035888719049145215387702510344966536792998131205720057384979523197994545057593122450332522767631511919836237266199267611514640188836142166349720924352545367343343616025193495128270149008372088158058153682447946684086222870689312109222455137856359306417163860129120065656834342939787119974106261802328722514010088145643354156471469278872484260156787287659396136409793923477315847324593065094643793966790137635414306715165001726743630423393703628522136883546982610223420386167469910333726556609571322970597948262802119026646880864470773037762549618630689284905340842495679825468834002690875366869566657725548219407812445911031961881046555632052131598202928045971258833362027773271978234312238268608008361084958630162669514499513511175976527997862797389382514555088491844821018766764887506927966106786370151533364178570910849837660930931635998081562917989502989447545199865739574577249372175473408895817855657971200396930868133686850283795785284785481447645968631948844659953831785896495220881487085559535139121952262072283104877406704344303974153856836633362270760535591488316699031229911657029510391528487691065553976655782192169145845898934843581826013051878588190995803643115806017258119115153019817176038186568434525458651421071534059028624703833223546809875574972856069139525042142515953637513825113614146804560063895543937049383777273147829374799680653795078891116668110147640401588473726555602441702059202378996843543237091935481519715331866766975677306037715548348396331313271643910319100313792256707740128714381125354895871469500516612990987835812032511122126220296108067590723686148348629163954162163595640926161804634267026971636426570439074561949160884007029052502129144381099084982832156723649855049865278666188555935676957910978260160108327177159944997927240924042113910252148264618986829377524693819935246066170192833781878408220751794988814621223911427973616265279634407937798122076962552519419629035631350342585867630331405194349990408479284781935783612787233438188362401382392395372688536763504715807837306349399116936478298738429115624407547271132568609642326159753282934014268140333967022294131522500142406930044057242359668195709540725107981670412643191043678752297872347649512570383527866285420193015481001373741960640029016074504463275995995678619015926254936696242880807034970247536780568038984712272450019287641925082407564897758843467995688867431015638327946693151752734707640526666919081362912301547863292635323915462473622656494440123382433886839000844539663600021199343141873972524085148369564555867761768579973114173687575367902135667992653335249830343896183398788525570244607619369599516089208708385276954028549700734638511753829766482566801532893447252354472499520540991529320833922012931793666504021237934324802208199102811168226700669333094581898244316838197655613147757693634270963086414374348349384437562732937994831421697494347885605606561481327199221339899753059643011634075182299877980301257927826003993407852977728164692841662766276377519979632501687644379369695876061527233205604906146774521273350902318063080904583524818663399844214601326179134354310445267349795790507607223919551777996600247899443281172071997547934263744568566739594028611477954653066397065233509945297657314758492728616475520447775759167907946355084484747835199139275571399942576605861407760991046678287550504010903848484223407263646951910258188795642450727178124291960114131878714153481839715751349533421091380065645288302318422869631345991954321799991639265067706027096937069989411765576206468116683179610606835277417010195318878640115941138000173579043849772483046390383821455809236362861096992469070413953712163101125348994893796916644867134827854311905174082373651616892295414981409052303506377502912052098499591212886238696211719867891028169638324787293851809763481556799658045239776530220159396015671171579647455343803530628025858860241137770485730421075210884435011895206063621156523618388034494563450416291607454661648741955096044264131668582084920793499055420974476809532824379069362526112578601547147579826227935701094021116263218173310132419443544588480673406352031633599594777972574124908411477597641799472699685826403632192243576570901669351404987524002795365912893009081893538543872297393769696431329485526233402734244829734215940159447420766712690962786544114001951920925901046433430151063809175914014388406266164906442750297269972976420026711346291178824907236209505249368960580247591326156130752375665229431511594102626345662520053365902802849013936776857117308449346590927802337326955204016908568596713538964471366947836158122945527481654452400486024164487533974463076911090001730367156141200976299419420561481073627303315557236744576084085346589473516107652152050426704257074204940848202280520817401348761088602692967261570372652698711089197682018545681614071290654544128146299937194790943220647442359669910524238331072471834110406079542826112537327048933495000912627639918373179953875368217452151722610169809272344948521539760213745782116374063083418148559643740793139154413476571847429458889885635228008061553566021221579725259654551218910810998761477876680677940983706926277664481746316918599682234208085957594128943106404858837636372006993360578658274452581480524560336138656807389078046310428346103557180291677003305586220521754393899312412244225795264103904759240508144676661572887999530423231570948113234867005329882599022152172194249444162599889672236196892918897922684338651836074218698782710125501491055264995811350431732572355636538349506399943377342779100320961782843175258685516101792772313807268468679395746011725036541358174451244352544673737035593371950664680960817086906524249094769737331364807339674168890225572938738780986689713107883316320092507833440726663146656911048346738752172424701543154650671481550573124198862311115834687272158892732463915556274413259618354816797423212758870040859993894891473143840912478951333675414273340870598926612149085812295729112175180925628404412773939900088197289274192633629599272732385153039078555319112756776853126642891266863197970215413678106994178931795250459611000535488895596459264585061628783289726639390168190200862561365694794882358874037565256606368355199535348718546955988500762170952330069917203780765073422455103393453421689746010166258564193446763482501663105357454669858174161701016077794691049356300196337918033589054367873030775221548430560585135881590482335443751363195940023464605830465781522399039284615869885002645479212760285694145676894605767625364130203103449535349443801624654244857554018395098089585111436289580461443912696865604025940242799922705059740766071921036800963176232794869626954965068119287212519185803099308239790159890998457430175626023988629117774006387603874331782184474439613475880283978262819155895065271467547954549573435514873590266319936645440218816663589450709044929854909856878228894065260284859555825467870324182205204292754112194728233330295324519213621079718077471729064558429491321288071307698132472795455214654901699512186876251101637128143735720896007901866657043618257453293139124338950952645142192576880073360516871664432312760024561228825628945822226669915036078088028517560217006935553728810781010513262556760378759749746510253544723105202194120615820735838383052136580644830219722664605654778173509373370620130039727534515833499332963554476384994765692949791422419909350749134744667952697216695711757778270997524991859712542905381289995819633893968377762734533152438583412201233833231789266656119082570641544933014199905266220414839405085418646488255427004712534827574394784909811322479887829354402923148995130652599734524967386192944013429606955963427846726832353059651723131713502095867966898212846290872004620892097294408613080468951098400739043477445347270500758833423865239001064474170104427567444919761270670266004641601495001508180301391074484096705869795983763195299145085795480026054101529994730145717940223279440882954970281350583464290056344590258763508587972547128636306939116607131006375984290177717517073015101934447029332667438595421018791864057328583935809194729436071190533054556027482864845034750851383824950536314585663678394758618249102645064312927182048842937683431750616363509743252140699438101411116352834545495319978201995617367926675324489970502947445762448580826032898401536129778290986714904487112505744604250265502941598970460680982587943202571457395756412413903247433038221673187234930807005315597803721772616467476319687553232853484897882482960394978745538145122542417230458370291642026234151041162010440320859065474201654153460141738653576094757146694192215233916590741433149398870501335568535967749939715276521625949103956594885355144494884308837609340346675646108739909813825173666847458899909270640466206195708157169022428612253811786044393786330955194483357765004206035399329131637465377124030789036228511946705334934651307193365566594464858506068520668813398097535999447494686171054796198751699501331714088781060074469738837602925524650695585387824742302553871321844658831677129074003028473624464521897827965712905735529138695175765334360519681687464291065650764035792230061000063347803599332116851503918260251777761251217140279706650805723009629387608693584670552744618135030828068259096654958940255237984553827215033978647204671028291995462903764642607838932583749732533692941106241789389247446491630058280628982739988488362195515919678749778051052334276175020307019348738724993571485206114368037945828896289124619912108755307064273079166225700200863708726363193174829746325529048312720462687431393027076543146580688604138029922141745609849774575151149962994070164760226824263592357162139063139441501631860357291044200007806476366748413029383440915084301152206782243700760768665305316385037212635726276567337410597225803355028096832352039152015918645514700751289565262299735256637919979407509013562798811029199837133326236548556129317504991687934186249090600558759214337376313958379366492424430971351794949487566877974643219243834778264215973065685330795336741843015798312096236101285105006377013973572260478527448434971010956107840329474583020800478436150420961918806835343647838935972926505315991772862412075105587113070442928530359615331085098149647819779093270982640470635629832868990646789604293019121567200935785321115147248419511780604758231343093487475675614337314894790405277318001089841622961542164643103667981254404781090075708488048619224153457324611028115247185940261652693880453491119345972820798499104871940106176462839756027125874673011551879003019789026803342226180368315697161638486981117271640466861797052397737349307361190398867741277977155229818124979045568271132970881936368320222508431757903024615232483845259458357140705927931131806998345433456525385564056159778314581266376619947728979385172330299534853193674135067902257330913186249583474036516480235439333649590697777721496395553581942077270723023136822675691342223028278172326762661432413637888356532088623637615197488818159970333343530234258811454387918879047997100022893374435229706150646401465924523142362269559433083543348099186417094076832210398314865178143992304818434337200813224812727402899078128972234560950178801431871315275390105359949512965524484229420764076384323223328524795446410910360444684880163013950488963458719629775330404810008052725385347100841621752179734694957124577148309465612032885192008036541192420303405792252188464782270010391027569446325216693515822638858813179552447424602317087229438477842449846063371096452368315038779242767433972507764209527833415303621320452817820167732780556896982123227691906537393829482178011563090704561983029205938424032205203089849444347917769958775073626765628539377637745902445482949116900633296429331357214390892343097517145718284621165714778385065441494593908219706966894240799390931449999610266911486282860629875283505087171025802857555418283126889779958196823283732588209590765341181329817361007074986325346246847333283593154610546643674172218848974509465581201363946890259678392695609331174581346944994540840696006469267389254414687951133009355928527749166096965910582503891063867478209486533601661376876503829404649918034332298580879151016622347598744026274745665197140478131450401477044847653894785877483065059552175866201072511403437590489029784771677274754234689330397467214198735583479051610884878312908932515775902850158037617128409514923314465954858674868106222855187810555416382377393905078166737523132529346781139542118359145100144251246645912534364590536439213599784797546400883185672580202163739591565859958102674563425684652989697530705932448502419333319846025348348094092810365658222037447354419889397922009072418962142675296338445618383083196460903019784360648454304301329755400183889796325332133907317182875522121249280888678744950738384171068668803382463262122923387503844462736615286015870910545139918369572989133046553854219062303898565932553984017463109874382423364888467411714637046512407092738463362475386754123418709017183306227687342151985108752244017479108616478899224137375432276728508366669260173506796736984754333630007992300430055720545756323141821267873235992896704701462640549172939329775819166066340210365321649832078253595689492084989307170478525404462706844454315401919373034509735543751942283806480002312971246882474275907132742571907989419263576740748627406041752382266934882208019092728790666754307033302483323579882284941010602068064064202391844705943254005380907536521178135626078964801782864058177283937274700008826831192882647292784176417061415934606409597209747042735281240684305545619069575350987037684676241261474169590847411441464985460727168981606496804344606741875459023831579234360256189003334803985816016813707420085737840371582448398668758853623028203378684802812663993155561969800405179136159204774911312014769368664592269120600484278417381454398601910907723483654583136756869609872440949599947245907826604903447227807151054325475319331037960572566032381229997400935624098340124443041545730719333394243853189742862398589970476578467102622101635589899197209027722330323798152202378677724138251739463812705347008721573995397976495022287178941785622305486762728303455729476783713105491163098120263540405897004651797642289554737687712485699468884401285565217694917947986815150960621991357096008263325791743182771841066359895540004919525767289517656403702947379989156688024998732341201190563070394607540643742350492490137158455778802438087815311996356581341086128411768461491984539674036549903724487277367293111410599809313791361254921577884543107927550272441744232341403083138748743940747432691634394381867893030115719105969503398267302930687726052890784470546747216006523573972184836368829768719825090479820204786064204850603168967992013785022569457482170573315971863327457789489369826297342671609974692665533347996768898514541991731745585999069095282726824602223374906485971568321338798974790701834305763349851997746297361102373718107048799701361643627044114097278171266641072921469709465252590376030845647695797384837748254599705684107001941831986973303681773819744846490264359343641823167025735994886440162379098924010935558438767672945677532922312005044135462702181394172362752300320142311198879898103739065426948644894176873906560110001576785658829853372309451560766200758472280926985507579364322585757857045296014180745683617172034101002816957642919383639770646276617805832885467744734470149619744172597305850091838278826567951153882147818149469962649572500648395456927786213042258080974103692497049903372957272515562274403539471792703521877472482468599427882741665717207369518852956339025771378911013205743167580228660589395065585055294249039020558234883496085755490182827171082799466053686996132001004711509923743499643079085725066529435799811524684492474982237118760698512274816405470166962921727923867611457113010170957943823679230932173715594310751363810850098541635915635177253560246154508951478305013044915644159035281321106372244283559603233585146828824770977317364422955455337959468077673351124383419160112534637722854033471235924421521944200763175408381477316803754996353432326193247261459566010674172887457365377912991654355100259388415929065401243583074503408989242517746628362319419370454201838531793595263530014164717432978613417310361637685056911208405726604843806214749854796286596016132086829472268166205660526402409250936202190340784643980273932136415870845069929648127898709886326555422333880732269977264941870022825120563892127548996481051461036609254540122824216712218867635400751660955324144030512760348226874083580750795107543110595127524481215548453018261847962468254514868126088169866915139911917845818709481916136370829729965471721864160084324788476426680163247981597036066518673318226296170025213625600659310933637567460708674154996090340645939868706001003318812103365015974942216701659848365476005381908317676617952237598261418975802496700117482246807711581999584325255904878121629249668872542509610921808155339841262470656832769872157702881589840591501840525929219564864442668427317623479410518121099777128371126715602191663090944158139283770979445182810971111969291093269482137537952685244521617171988100161355964827970631715988659391080296491348109467164254967755111376089405868847930494544340441641882941488780887062156042970220636107859252942563517070146268180812224079670810219777208163616688526648898959208495484103818268443425863045932635817816603178754096422901706471860688912483067792308025848822939278819230664496505518490244024556771593917005928565697729160910497077673378483263283607643477024014079774642087628732511046053438809809287882131066107163009585051018619810785585207397385229498368800261961967884408308174555006445050684081966657553356600812610651153513620967869617793771297665190968450980647374088923963866384858993655371098965714353694874341908884769686715557400778405502105540944073015225680870707842490798235186471079210804582761989729189601870975222874022861533550339423000681887018094069650475148322575998529937323406093467706353405739641529046422533262441464260432561885224713580150638063340081210490768734662399769245685644563235385834535587701111488303051365345214997457830660348920878590872337170218214712016060968621297636250618652527958587443906190149727018514607682682330612382278554355519418297991041184098957082541998528096606445176827363271651864168688060675388770410386377033560872320098414840261227858023484593845593854464864814998804917207789305134509022669937523226003996704030081178181289353498005741824534534856090956545997917452536195039591487153362115265561464782328042920730696746143811725125622446789082734756078817778944399748581286839516280677439499795445290129113251534162300144880297247250041209954718462829869975792868016735883401244073813106895688373968167139952450573039151378575772032643121831862856082179613970714148364493432514245026944112693364511553462887051913190971615151275219724707355486531388322089371573806980171732458812017801706825844789491411650552602458162123032894550929500618256015924246227346722680004108680363665944064081840127654609238265655911571904312505621351342623913810551414059581010685066621067616055515687968966431850788853029543005040848937660411895236230836468990236617886680552950170416093121896223685010104431538184466940427749435516329113525120497808032224689964425170203638512189059933474317175551756345870699808626374232752164875572394164922242057595024549053737584376347442333759301168443774494929217743838716645307586896875482875281076232348005302269253066940285735558832516830441176733342134465496045727917939590928791922749487473372474715837925033766837913764520004280086198717579532730184281377972412767964069382718514781936368303395175929364708762690297824364735302793625149517749184122781822427940493749143202562878885901767635623473727479981318623797499460227143239096797131945681520410766911853365947069860677840067591474313161533633905375952307929108386459966965850031144470147072120388827645544807766836343235226482345650342942826396387229769215701958432240261560297757491706455840360804780672995111126365789279095166369419089575532798658889783922254021406938466015949712485796952737841847977990794231358507600590645180518777561176687770499757509279363669379345194588773913659156900497905606808833211483589259981988855070582824991082083331743626067279591282039588491060218446888355211242800621414620514255412022053044795296630262384197255680992960026910974084006205754957084953436472578705928060238451338170382712797820774789929838133639298755674582219491615003014262339242845791335600533700299909692935049845608376835207067598408722362827926752664664970808263695509052925150213028656395850174049295384190978786499753504024304628365854719206671601107145447224431441252951984013228347310119952714282104660850308928164089308454323256830582868439709354576589926391421801323379045506837465989747514664799495092240509625553222400537146525256474448542117590526740644143271974963211099762540211101478682267065795738545284972866065905954978554240019031715580629608139285345202004705092652139143619150182353838420166680301479688419702777108224453556317595004217082859901504406679391135235153570889641602679910286026438094883005098650665444124420037335887133748507429908326618854817406827640404431328460319371753425622688556767262516378096064366239374874701847038251538669268353688159194616705982223313008416094294840117877302813860902150012565928097761828078779291577720657192770651923306342453588476911786006851223529086608137417745936477669296707002854470258300536105159014585603039390851561894628364897606374714165203642285680401523595948650281255290341994309093294009625658676892712874591216195507353986145252268573356302951079342780690957925277985330960250671187765162088976526873529814074784887574836458176262200089423356887057397999218002815072024460215572002673988484001531008441170536213120312566676993652618711349433296427325732653025535623335994441651965658951015181802495081180222448222756288515403944487115955778180571311856206999912058788319981961498230324473060543598320493410108472849320059016160867443213412117882287441901621577209695000758915849404245046935854194587133068313526236116944568563865885805812884836901629690640931396037363586431593016864978378012653252184144978584689986100192823791634011215354880147505662001523138648213671898032865116172984732783975177501675762625950122994678468970237964471605303623478037104163709603396121888636070990517242966576461347828898080081266038845682398346275251112210607053573793957013577144314462543774888513572221444039302033135626191616986824427467955179861846136976042901417607310373889573882297081169030895626735978345920265032706115221075327366200924136804581073090148556575889971153328781773995659248860314384620339782243283947552362547403413319514691491413041458683041415143672055070106952446677942754457684195343584712237982720030046930761384676515324082745427316065189485954852959566454641214010397223135655710537160815463529185164284412969307463228043830387665280064101301395549307593364918005826751362753808330111013423836649261777129096175743699385826751508801413307810567659839758082953819912983911809802727287398424154627200960449568888934812903484184476097976481630736540148997805256832488074677092137548482861493321819654997384222565345718072521706548893852918312795235867805224745900833022774917688218702139783299727049823358529413491147191647216294986784749634543809555421771589158838311362778640698970853007230263622737200317227734429022462962231754152173609763728121837528414749793717981513238842658715499461737869225448849507219122107222430508249176916410718143780906243037421750483488214186159988399035050510365969731770254775598100934159994435471488089916513319165068781721086148472938655894492385750868528233916005299937268319354609472890706521508788251781676444457045691355579101362524807139552496235574438260890087244525616294332237400054069219253481121980913746311901183087679749902203433697081251895883051690961888255489708818915385033088248173462609831273858458866745763866468655985082217175271593923260156958400258454946662082165331717874358490384886858078975959912541432220573834265786584752605016894723095737182592922038315984705754339621724319784327347594816800306283314107583714900303669006405200241235922899606685612019766633325812591047644931456742759999452913385826906703106163364780704065676461928008733044990111419477859640854386191720694552001520329389132402075001109517721471459290679189538962212907149595679471704656659932971258350568266257601429113866969813088550097741642273670978332834532057334632351916118012471858942629188017250001979694713764433024107842766136974528227750151112724537608158579125545115324535297929337203030727615658284892868174015571586387998882453856925434547068047484937939257434322214053645522036333514709550553153591588909969953775709206269059361998164737068436726223830591527084569575089751648308677940644946826472611504995024836205647425804969809275750064799344764782081134428261240190399278546718620932047839179467292748428081439012879162698562607800927722104216969497467999311890416886161115395974319030963202337017542835634541918346145836704793314461401354474204174919054431936931477764919582046229700288861952094607878552278755853555994867738708353347663169936075847415792438068688823827639935191862290140220510875298946192385913275614745522374862752908050821542369053446096753796551359014446540591434547509406594283073240631280421245512596619024884477440736324420374641740053438789755014199804489291507981452725035408056133848195765614721325895822027903789332422223291598555502168088826908347037617003260932506643323769204080305205959768639088459878721946110724970941731977758750707000652606085505364449657201760352600238187633918406309791062407800393289651088575958210236288104890975837081318605696437145814147643843523364009408779128200585727290560324878374005795994998930679109178452769351605048405790441661110217019303059527480080947852539663716437246160569555814070072575599336628720883991119706933098967489667817717908362469363318890946326801936548885717376765535527832234704868455458420858763912937935032627982134111425677071445638508380888952645938794241525669887620889260750547821410729496225886811735358229594849644019557567879056870082511561802861406632357402659099788922464689182765850773040667774585343566166981070061975333093135638385235685631752109103943468083043512062741488461750361382963099228278885700915719768231070452924729163381967042743799231669709739081175560586723677917378167587584108334069313707986302296343352199593337752655190668833450334933474099030545050236985466238913631108157653383744364485082294515289845873067997371109435111386654893316531273383788927953746219931245374368440786264458827894771701850771150198166390646664972051677383072338887353927536167433766747572263015573971987203435065369959914761283843583931124695206972346671121375224277555039226954735320771246281276937430877490721202819681380489872539534764287599943203629118710418131954958194370554079917319321994807474499289759407540759949719943799175842022047413434793894593567207908576564628994493670690290682898379708464548610731960133572641354404048382677237103905948251534653706510890420432830755903905553133660296357705351331895362652348542399640954836041386902414697016728634065755939025542025711258220147840634161068135998594447474949453130855776779417094259366354641312302145859666724928462983699429613262192182921655558312939722388834966121242364710085721849764419261507860070936376365148869468597289721172923858922060433995614133255640816418850054391274825097248870569128713338916717366928387379631065648176741945966800675295761560563531760657517550509080134984872925929582646151844137679168955981081979065547983497794312640927587306535582276986211078657314544291932928705264669623007882574812629003959701217207105747048759912562565979584043302496317816749026250192438356205357227959006005379986518372193094504983362315218104421195684870547509357345242137048221960260099427742140552183645836626426429117132417847536324077639105493465018041247041668478839033027916725120403887900572618120176036298246297829656896754604740193959336683009431126758158324081021819346027993177395521334060899043768379632727128690284276058664440519683768347249623797347448365873012891145546511870063499931053840404311668546776676331871898092613833591362443555892559734076303616147236930316645791569439357181652698874888952969053737815879272238051769763766966886547076716860007152567763348175175285310880966956773809904354542894065268049340542290435106000766052859958594021277342465285334854510779132591495550887783765453695130443203584522874003559877533275014163147570566950439424893455612318126294120694499124854261625939864689589015663241019623058240600375590424254578270191761564378356731804760296239247712672190747223595518640369454226774381760905792683720729390765042659246447753418807588405019475823221566650484492544251159235643356733441273443881883190436085356454901616931079354355814039712292295888335590706336118623707182224885236425891847818803748811088701590946452660910975129946210821758418542314805372443860509627654323051581297347315768854742043497252878487913116152400101094936937826754279368201500178030466878674087600873980507304319041513101111855068186411928576114736973519074228620184156663126457344807202173230271332097642093124390461686741233703814123644540723580554926180863698437207011384530057205310466276981450111338540005379979028778568841709461911987676418377919252039700620197851015332220669549074861003787859600993715371339465318890978961806491205419542701071951636562640506652815082134370802426657313883511874858550618092168607022706629569853674284993362165650786973013740070734176076548612276012263095070097644130414409619063764189433103959186938098397913363316888395851853422956376961930942070217389679290078502566238196194354598315103180337597095856093624440785873554406664334470379439603006578314186777699430586586998433266912905775514946928042977102006353413407595971656143985875298677039485550786031513397378856016304649190264695879753333132081964231456987950643641762346426722759865308339473174701859465217081596293863176574245806055936339496973439022950561506356766632616904977023767133326829525375685787975510243819356542396540864615095561566924207988826257838392070509676949684661137981716750021889848380819219581186537307732440341647826084788154854563398280803122524659479685734263134561228521975580391305472751507662458279112858210626158180728384156933546393373139431701712698657968972259472902083469536525602232755154230549331310270648478034436021732964364695562951228963142618760230328609840885192125457926651038122260168180810381748457400809768561609749286591074430133916538787703087251715953892602347682160586947334398421246199388646530713273840689623494751179322740804108308736658256673454693362161086750788110149716014369756375685385098093652173265867219951572456295051412734878781729618719878563144073961517864193577190669928967711497957095006631940980770094301537286811902575311546386587892432956504002792317395852505786126175198969219643943012635960113276050199877752254420459931954796894193859799642329952544536589773135469227552678861916785910493668895961087264413049704510208313916983645385848583847930552422695389428464905006064643345908856603996953119541210838970434262456596690981926338943637598694268548002952225000205803951511606148411825076328165973740114389744880237242046308555141075868169538213463635601360987899510439944018857376432801460378916171360629793113935566848041548468762064268939783748900518491952791602097857660031363143137369682620739162073762455875231007377358820679945312815976966649435658475663829223855332197682742080537912900027521635231902923808235550662438537286018842933227342276641815601457956608844685314695780150456829826474976553904019750374557177105644381711153145051258497453612210434906444496509553049572031303634170387466708106001778316209130250551900611091172072947507087828306844390122152012827708790838282699600907934126011670680855174976229135793255455270539949768861209805000371823246700268128102834994983731729974500564237314853999048699940070391513862794027303886242285012973753108271139927142166378356738243909570449829315844431599543803256186641557872237421842897629912951540067880987940711624264881735741764078637124250300839145209570154781311303859493099424963506348546286860767262497145026138699063301062843332535580586875812352959473783981247715922753868593644042627883021796953363927061315169945174448592052214622560379277401148154220929317137147872379572500379480356657426417300671298851142783801951697592817730635558188311694456973989341173058235850677270613053538689302741009447031408757782798571933619881525518556168775392417341491294295155726834595489654835358974390326112046865750060990942795957997245164771495051067913386893463551408083041985296144166778337013019569365134396455195234823932664582889434802524882827212785052426218241648798702806219023942226624368120968980608474736878854243022673077562213306101753210255735864564020059286872720877467293851149446612999122287902966962896166529322151202014543843504677336661921430338072288187631435943231558856458002215159575027880374931853456762114734355151251246454092264376103347998639807614795554471690686987979577237959228055592347332775377193443229545591151998347145214134684341617517225056153549865438054802987664384934522571874834138957222778116507375550372003949804478093556181293924479889476680812281502871421362165047582378898266403247840256196816667309572326097633704450208156449571781743524399687012740120133572761101655404252152342232981495366991342488561769661419501753848356408045287091596037400944461561032510331569820860568537445386000910445244114439808026726711411152193380887742091675797363672108251986145287023395250741950437625035066358847271588131007845759993023404268529224398669256588531389611897840917014919043565415501446729870203556598450307980051583681705681910486963489516850581646869842944989624366720765238293917803770731285687753456907904405005660933956422933118523118221596161986100652703433811964796972936855506055166554815140493235927465812513437378173869165484111350808388845939475362361364645126193739531638241330728011412824919520991760736026662057175967904753545432289787952853361452407156578030812182204699726077272934203199548228297778351750491343313459825896193315639819215160315180967688368699828744236679573083599330694538319717166594752444862578540568155736855658713438820819274845752575305790944848743610743285988897720307387235675540730257398700560049419275495926160754387187340330933432146940107750296073711261106098729949737919429905161436630713621015883692522877148178823020749998609939901955852640285345382340847769179474346946338563627914931817955093032432030496629959960016890707113091356536826149902640600691015171919572696388737851199595757009532897329398788535987240676550361469491720649884747068599394987831311392592636865807967038531571471406206256132701990194884033385372541921930988263394934792103009615398816515894753432995033698710522392172539358006510795090249455828176029024373636141455746016055232040055343063381676638660197562167195504181032417428117181654428663116675405307788445668728733402073337365284475080869784120802061921053794614651061950691636640257203030155643206284610044237039317450109935690006907717288706166138445778065558568926953249565741684985932964202904559137548180694635573875583894325612765995702242924178769272351367120625188935769433227631714485790717791438485961732239026105018698364278976063219225583997519947398099011761074252581527264919370985779794425690666263905608898320710819910096319751784429252826949691414681270987279094995173514625497344085089066823520067338144862914764332690093828256704592673660975472441024680028570979816209215063769661778804881713551167247249382549934923226682748806950607459141699549165287436923468792574206309773029257246127235346767924466897975366882723382432606474968661408206492733568256940536007158056655387357751107767925894434350604549440738158116332899056755216185722544245756349087470816479393619671813236055144002040555241459617803295708186562729378101946136785007887802657288270793100802802319266363632649436330831162158085259072247750379763909282620118379416553840240377830580361088330194777810825574160372425111818072803804507463890838020979267609223450587337302880504608793736442580026547865021394725876560194757141189073172204344340877829503354429881912867585243631201222824907304412031882571224222130243550222780710040527268427179215294799710769437635563815877429484107490856273207508881626812645178250202403420404536146706517356786419421787036931560011075545053944995627348589520397012642687823549974649706880359890646204185215049764717926659118650248088367218874361898619575072200148600778322712030215933372600910287475175941930809207194164416162248341493712906187638014825836931844609419382964476069267641440124261572653889904560313842059762913848787346192425294623110507898465164727716008713032400820507750840368197212353208253737708704191977846118154804660965213680229512415794343902392121408212264978906403418580887596219965094966055005956978439994688966519469563681214346833070354092932119600139817723961458765188613226843097419509598208396381463198591396499176705369247401342576923173669768252733287514092347936857730544423501352129009520398029143520140170012225693137757139110009665069215351775481048116080442247695894903892656322993849213854329551959054693641162838490481367419742910645850311769928549261380737835212943944438773474962124044866226163639369663641345804651225028901281011780345615451475311345021140952134638112291258775940111799814554947691934885735164364569034739337660542967227927581126761614162669365480617958109771933369317345002421973473986454946402422146280503941415720730541199599379262700685376741837437399907298765141241115101098647203681260210514814895579082655312254488885150056222097472640525407291811730803986915604440466649234139141222146776038051657912352434051777781432309350205329446925988978353869463046954442138292734974393055205054687698281143133204837017493918376603738890180392662296922552829254045157778940984001077223751307928696465313428473805974193807477664389282545477368219007889753672712867502481617611987447895645967182760971807151787893947115546120648080758917918184873303943706861465941940332624289930439727902148307748220085984927061644925208710977956321356593924409225579784395055954143503618065594850047397725675211993489149229652137781733165986407698435930666695171351469509445527977861546738807900524952768539149988669292582766773493644702224672012312100375859993386105412006193236328427166700102589686054183464160933403011905305324190684847856191219483565851467826793196881880708319080797347875847197097004619194745800230593708867436157749228477548341723096232853444877715317940924770309727942009164050355507338991509174781609582439898687206514925043074106693754959216737918901878290655654946086785455514822162148453556522082461809374322969628610611989278896384610867355241147474764493612096095318262962516625030922603375428038870363604419620240432961151562147981929386437672866646088884777929280154420308146005590852971854937094655696805154148523965314845923882843138689418091237242946696252524175523878559893683011081075950743131292018304256166702527582514091586569274254894984841754178561820651553291646873113738764847020589965749724034693015171998991776262464892551859386612495784895508113976283806883914263550105762655045779211361462827595895120007003039655095436936874019604782331097897281938792649181196835678077112155572177436589796936683922555235541540344870947835149624834934938164695165551856713063761789474862577891021085077030636399296717324870749743793875324098509738880139024884590858029204659737323510765400041543783150589754907166945236741424519486155949119770156257037127304436660627176910741024085283736512925620422501141400184695575571522850296699746156652965566580628072451741421440452978971279835471323293292397790345170901084178237426675924697727714404050588796865806226337587208399242908312433067644289826612659298209865868035954962804292541315710318585123285214245112200550366053612767116777698444165964387727115259300265916503723513218851126417934441274023622251653294434610229292144907575305979505125073906421296410578139062324676081345803282450024010063779167913881981732315861611694750347121302816188160173398573136648600966486686741309075498373465581997901234016054924994209691061895769066493861277987310119906270920047151851613984128284306594193468591092140809248178591782866035400087803082991688219946518703597199806284686525567831787439192878674559265447839742732513423847155195491541340289278694938092637962359491122977312086431374185499710331006885214553120188009158901062132113854429908061177132150206350244897395341856080672928457150348787215037117370067366939935635908687124399838310371410803837310883799585544734337151156962162664179927393925545033050598246231915481010620059106540691979374484918103941965134417703472501165136938416304298457153261460331181973172207234719102972001834692678655088750899801746656452983820348500498246633365472988133689214242538322301455643502094170169124813636269167522738274056942579452216928348557953283339714511554885655816611736634934243488135602359906261939746367336342419296161520730663520416860959933673316175300613216778386135214662333422326345507338534664825618672879014321882012790924789939194791728756868065913137512364663297754880086472848345648054591027252330316662838000725166846827056392725840041709559209290979996755365047194647561875242230028805383783534193585558743712266901501919891261452829469810184811815014814185537616430018158456418163722717656682679919172622948206419817822388051340505346581024369339420560322145536046423185268555125641848488624368037140054852809879837022888579525906645355577068823077811121105180029539561300601575395750444735985066504135607233119125207964588171662290803018408415944059187839782771447556504029087956562246052652069278611357103521794584989534804865677993987454068495578152330392677962570170842259014787608197689486416015483345799682437538243095847336467245698640428335573848318498667001097426112282433145058041235131004403242661941862790402821455574620433488534819125538435628396834069212816239334610905586753426059454930390008234360416079187908015579277885842882916424343711379157435127534610556684790297939279613195812876260229515553101335405092640490996514634463545747731885761058730444017193074968023603990904930787879577661064089418418839338762587489045599239975418084910465739755112691203503519262648724124108489494268683841184358077302340169412779311762440424723232461241978312330380372952310507540600779169152083724156108109561009731872480283845717937875402859711939789373990570236437467032731009480986181442047685958945682508431335957214289381298658171348654364240605247267909775967233428205498590941575487988458015750439239315943059190564196515172863042431035845868637253441836969800709442011135881922280887662961095929753036752132707425122763466539003070985891219965972844316270113660847648303880269146631567543401891098706734413702831733700876385473080755449907760338575578004771053697640314018188463871605627352884154163629400718052186913471771064231788634586805523350384702112101756790943207820085114768686427283511131817509248018658908617169566647643796255147750432916539863007963209008793120739729248171318811634684959043279095212476963562780198963691976264040352357166662722029770372341844784802702364187478594879470368736837779638840188382916100160569279268105151348740376938333165760358306849956547387357472357913422578157126702551088931097327893784462222968409199981619320070922060457475026678970459402067211608427875899534067121363498663920857300535569870777158421715906201938911831880414348697664786641881099561561723912774118668911526294611993878575316108507466532980302668064513699187000679533906193517283070016559904274020928586781794992799571384030652022475144181465941754906446291742536265344549596406171748003054641215400804544069173612798297860747608371421082339981321494816664955661254807100110272201219277369907454491890843603577134773529177957500781513773459471457157039732252337083291947008522918872958404556671726858370494141230591608192772365692445524120251176252306124381391964943803930705901249538394605440445285930825668334909826017613479176122337366948004299377408455120235994251317206573117382918593598082053228385377427378325960489268659223882425775810462165509025516272343989295694583373394280058124855934157258746204393411872847830939805811488317199029913446280876335148560153548432408583720327943590385501156897126997873122886606641644125587454300234640965624250744499603815201966724316682367637622439537380025363996941277059018303223086768571712096717051501562005964883740403019699028184341037868288315326291132658393318119807060968160177258633542846702126251023455384180727779218135616442613246205676602990610550374045149760291038942998401465030091032076575304505249327163597963918726745817666886634388746160281508788028119799383945413754588145798169813737813267510075894792130936285228717270390401552067504487468576415221039371333514486175262007008707300705690261772808672478039973026543289839726371446218741299778399461457782034495985204738094002485414748679096978779497944555249240965598864910493979030833477276678110202597848555238343208636729836748829012779059463320681406605353501238848504909974618730190827082334818313854136956568976656962196178208730040002026438371806770668580545430528457288059567611064903524409265751070718285066735954828455405582211614388692656001963770733310744493672594901789679143857786888093291431716759599414830080870966087472948370291771144110199170450696709732786470303380468949227280985392113268402162037702086629757059672332069850445019577697793561477151708038309550351464377425565031436018789800679502281476794722190784119877882782891792115025351190716045990597436719142939571723971750560874182281361337760662314053274249410840208354286072219429412255180994397776244905396589484628356768181846682487803407808484633263183026656559351003266899890375364719774106254709862570754146571654381108435291477718733511111579115551675582579226181953264906835583668679660336019920848336711479745518582345031410456648714785177771386149825724189757920952381443643187551433500596262213659729687589305996087202155085728234059897593675211913568995282789678154295006757159473291365662876400640756545163847735627165863365333873455531578763284818307217151617517517788120897166157754447329889189782540677895807662088356574782951239173261151483095207249214873433886982848101357801318173188965517860644399069630159013687646376761401038667193960993905613788546102457932106393100539630081044522559870092116533074251316686955088085793968094273828615013696025156897019386499649980083685351497438342873032628392614075738498117698416772522951104028963238069021483540978526476374078716959233630801477397078248027534193505813712025614893812135993602970958095219808704055786229411918827749440802807397361114819339427041498438178406047402373091851443430081616980223930591990700402543699027524975490683193663389674701426545015187189090238811888804449589363900236678507247601317108120670641402414116558238290353634722761027810666899853611276492503399889266148544541649091495423437460791797933835558124166745004998180947086685300837144586357051832051868130153475723892856714862667389502455821662261506283564577725563928143778518747505741703603868624827305179524364403597476217440379956357825497728264970541930639883585053987965050876448420827858162925535410687057757563292830082374558437455895717039298739392839234714327981514119297088672842523250160779244304382220171012083460978092609318980421181739200046017005063282105230078733539506935835977390777217492476648221527409391957287982710477755285795350648955893221750270554216587349579391746383550748110274332136750388213591314886369119089832438344495585261995117488196549258359076641697166818906907508811850360394284731500712835513600569893757314182563158692158924854578797887364991072119530645474839814260050801913785505027347816278671846469936834876581877219954843972540060055452749382689840316850960261836310596231618234440957268934626513568419704569035130217325566076127944694555135158370120087875083210235676364532243124102678821591968041141889316569898893289823381409693655240588185372284360312441480344996165992770406422234463600282325879437776869480024163487421459019722443101083098545664904602719585720431338259522611526828841869311276959915810400264679076664377162336260291813441236867899117738563615945636770800973958931161780623461448683734690794162953222628978926271653022138889329457838443771990543005342332280336619231369175482214454491696254199334966353467183475218528301214709800774217726069811276407713447716044020744344050731620320197038079359186168141216465387100761950998096689537754973752450299109650956780944261179498210264291982290917318596582145852176446630856261773277490230539575306270740994042398165758583688849961228106418570611926847252858994191286408764336695515411565174439500052025681052860940121508501806043209675307428124887542825017026994842096246344273906819730465109305843162428465128742116572927610343912513864989766949281726981895239501535724033731925124622509880951832905358177060012172788349761934164052555411192640993459807835242580683506447714173247167827775373781507363319942493870271918185012178961853530056696444760868588188822432082764262930853379560279541912430129324368724864639348517076554274125405220303202996684953793606091867555390621663713932448382896767124046760632562770353959757258315872516917914070855363804465528153668668223688154819502982756747000100698227060369966652543950994479009723984759519309874649237426201856845816971662304144475185786427501406885143513304412967415407807698437443718149912268754002298702139196723071061862951784743238343779251350885169725927717284659096781084129161168671043782681786268101757774567915936504515773244229162234449369950996346474483512887544062015448036989661533545791552267892078595129683727976128975715486051287831213752837335589441427650374182364417696539177842538599825675882908060609258062366775079633436470098696060538667335436908323534735364156868155981968065659491312635849784183006437434443300287699062084011764585076805294884973407941792638462219821820586338224937751464624307981997877156906843133518998864656505809245505124637639465823242154682339827566280841249977108549801492790515179135186383772232193116909831444643144992602267676795176190326943187869366124553426687660011379560160784622114843057082639507679889228943358870948581774110115508209047310737852199580379041306978720821607759439282696632478479786812616368974056662530099051362439284041482841062273608887341325780849931851380003933400697538813133032801168829091732467209794546605742460785878619461024388421042337980493682865703867232986285549874761294834736240800260502670861212538696151361662122728008269353866789180781571868864709976824814044849237120171366301610451494361628047794528477999757038065737897353686888706650880337355566232459227327734380479227156214777416787051904557125719677082791662077317343615146425779804032628286877321786915042227610095617816226421419439216683291152895774567538488263045976946186014292405503463311281423815003812062608316561766609656721995276605827635395117148649665978931424281146057136025068399699099032006930122328532481493137267591523592172882208956051626415408045151743969730274619562195437318934391611281320732804323064722504581428939658564353226381084026809680615234365517338738234750466293753013293103380203689963868679803246056968491463169004660837162622411165586018324474953998143751088520944669919014956520085673461494835271013526699624612490935344144360029952098938698909480317927009613610452949747849609485773734854529647303399123629272061476024315633735110344577180336559789731556272889343484649783025990095752442680028070510359442798388206979659487839195248891907054439496088827317123740322867244014817679896976038705498845645561192527122209163215095530813676653068933083283703711239126494506607848079209015613763867681383545915621559297462561793334780820546554829170518817320467883055200342324202421201357363568573497149304553677742197934147023793779800362530506182451118892585996651661027219009093467363634138309578457898380512721562226107446434696320881457469249418347320439153882007144695631596597349287002646915731149044686075984294210016762935111988387967936546735182274022558500111756605831363972672855037387949901273445695739324019273974589821534677114800129572160922211790165457746231213808193152942861902679998978178064561968690748333226754840009002288016169537360249418156519878581574784840197625101227465027901204885752286232470733377663597177935651493118241653668441590640288204874641504028447507189965871350708904275159761099738065065853121156344480976692087536648978890202216264225769969323087314289133492461128512000055944086474288181571514610803922842211963927131827608610041464927259515389717579379509276649890007757489478191219767659723364661510361321024604463899763777388229983827632296096600583820832572837495643996382422961917946874442615389041718000286498480484861875641573187568929816968626528753130818352243568535902647928967748367050740908656267147976117655156527844665148059979336482338711552069022456450896525338228019117209146706802895357013220818891213405484171191546636691335254768733986998823610267144754174191134412471949512712509600694836968027179464381259112231640625140853043113331522940718431318018585987628853253071824674556685541265314908443027992557321954965937253509866338075546386674049526528782435462119386727807288186678398902258856367401552437724252003887478551381822204046369329756858418511259641380522284337407242922613801179427666258234531580273106511444099357249294591809186871844673251510776754714286959746778713276299814047037689695701010282969726195091044699237569965796580982096324962239801968128327542570088400240867090691108452320086141785696966434641135796238765128215684318927616801547395146906007405734018274176527579547461966546054642306330573207031571393407011994595067166165959561607948885975466251723753776067123444216714085046328129120793571085637260442063765053248033727205255915241414366645489865778463855777629331475180888440518695006155186953465095503444271852494803179889883815677753493947115777027481139448011758321208262319698119285278983873651398006534039939102376561731931052984768290037913691329397373594305022686461607966013291351667400372071385174998576850344759743389876388557442387330337991438192617144286037667971966896604440612920818738374120821198898468145567415296720071652057834104271572073852425475017020382770796425524723556955057415341261598623877002087803290254785333644044541339392589139298714179644280494150617284555716443098924955913520784990576460470932174138537371177882546050869301520608247027590002252940870779021255859220613071342948209515556985739917034694204017362675002476168793511407044676124528086016536653857550305433574909502053638212008247601571001849409932141621419942093523091259633910333855887978071099789890024651852528742634385156949913242078860987846178097614986348102277881051072963594437616007915666171370705281087620276962433746040776819235189613297401258010200569210834224983299199453557670171698464596394272502894372104550595587402563008695887700007178764740999063237347696472764203632344456606668469932211240614085979806906682814784409163151645439309155197563281194745562608394788036450566806803417260816452392398757193825040660272362345332813663210441143309339741962427961773227453214513116745300135823012864326162631068191509618156511257688192813954854569171797131383318790312802186834001241635756341763182854430521143618094165766241523244061303456151176692955090723471612911152108666664695600036523067036920897376300777042654205440840938974729747276879619283184752636134237447670120774061625658700604105403085083894917946173637961989741063162814302445283682369065855820189885762846670080508483925700178049071743434826495602864453121727088256636454495687838461900453131751241255551931503229970281494551413735425663341595356355932551689824510084243471255688787781789056800006520342093988222412372969430771183931260549157662447092450237872757825354631663308923092612330229932623006247373397714388187564858741304401618576920564952354319864963800865448245655437975217907645141884522038954453044519633052887327141630317776286802396874296052227924017212667436591477017925226995983527984667021291529634659879699295818870341089485096249093506400023499372645691184364000142725076331343414733945995383627404233384111433616747153810827865654655594853199050705384481053848853034142388348981404465615864393832576857238785234828692629614757737503117475700359552803325740231585874221746538654480751573048146201452912819713342931935697320422552675110963610449069806387894672395354683767753619757077807780666507447129296615188374102561227321103885826434152136921929858851551521329024767087191279097244453752208685308644228469423785219072753472361620681958143021369098859933130580029670706193721475443911411314734490523720438338292075649124619824137553058383259696666201564518570492993212778596459911574615214799167323356502419137121413722436591932643274605053864930155421967222016146497915558952127477496526154556056790693570715680231483111023857090832891343908808555159548866320857357067565898603844446400743952723879973375110902227211304974491036622612002799127194459851647510833996652241865484226261218621606127232000016148248483487102395543621446938524658068822856746242752531722821381033305606902099973091877103165958907269301533185676064360210192381710086705942347016129219450831293196415067754793123420290014660909851771877030833600446727232104856291686373112082097602065460712797550572561712429166455875476400538065748052884360897208896524356063140161041160213838150720741817021325877043458086367250993264552980770785475050848370329333293833086945029908993282284967062448793935342484057686848887053209115571757137022394968103547690927041581951134893696110207976891520776013701956712321081322442346392717668378343101793843253838701082040969032860335208072013648992097740534389352960049906263930577821798066795571196401135778707744087331800981016371788894914833878325065274301847979356569042566684682979046198065617098216627582493767601919750040454382506119879623920224369299419460266171513630538741405063910758623325927575790992455183369076926163436565001515690141838479560914533461961795127222115120157774079137270828754524142077875088313991859245593731374969205359043824945743108458019068696886531506391592864308553090956765843244716582601792610094851682705681167350625863102883604591449501389225519782547059370645312016371545981320429907177455510281878997057374657077683425582350121372945249400489559704136391249800789192410128952953660666518648364819636287360880582717727736560669138316327567300373439463939429789449271000445789149243922480124138995828883719446172044821026315057908641655755124397866318260671555690772595517471860257469973069085256658555810114709644605924924149272971705943066139771564101147107114275012977836935645554332253052066989278082348246538290626779124175599308680807491819451921334103407454177972969754605700524931637306714483838492573752290762202351932908711012012737681239545220087890933751451223111138040457589451848428182124347585353215179824960811530229359627181465542160571390732810226562408149219652504663834901282424416875277025393400260197828021291971584606377327522475298102681189782380059720342951316624528962704609178742151519364188440922853207528617033560186463281759857307841979824001982459360007798363746495878813791845301842987207673549182493832325781245942294136591297403794628091208132370502028900163487809562224271919566791789997763238861703660846478192614156677987731660957803297968794422888421490851297952854052597959215087603098990970889933223077784558804457997653720122580513466694379867062831177509400324424042820136661219354008024434174044590848403088950629612855225997366475888965308815101394781652066327129723227334236160586218746740582294557775138256461573867348994026009644687970922002184872955362201304344436166595591227397177444802669527938385887660597441079509994895245168724131183569211794485085433147220349857162727023476534783355359535365299470989286898414201753983009251599954376188251228988974873931445028504852634978548965071946844827151401959246876910755684514332068089773199485348307023572669507637101981334559652998104393607767511122790243125901922099001872069946360800365269723263699148403638282991358255595111010835815882197090801719956082115207858065876873977121833793488200327265953185509551943462830899562220733198818913033098867263379281083991153242513748456444585001839236289581493010980243994585822573022531733850670864030649111455402664407360047594794989952496913065469703510036639782583187336881347452432393738495140511472819346765460025379202581242464421331924687534151543105521341183296825818655321273602017104371335995832405878587435351184254180161382023422529116403007211763089794212253958451938596897387995035786174672901791005375541135931490211628096309177109873734495839869253008247700049065879455990456062933912785577630156032888197853191771297968613496967578976508787146796904010086175806206392499543241395931425157065186446602364894970267011936186453094344258249990966482092893020436155776873525802636576623075050007042858015327064647366341950896283731398624982721938064895542645645321926063155017643565121906789551650827308011958527539140198005950705506304413311627147279257881767106955493058814155704040298844216090402403325532487860590291400855441025202557413880655205463542722611365710888354138912012268465340440223700692406964486615119845191133446881977492424908985267726781572169422005209020969686351169644887541854779208376567762539563887669100030728604021451219603429129153453433570625970977338252280274822825843617429958034743754859797912047199715141036106577151706508738794949576695884449879310352836250509298396204553319235366861470259659431513997147983578853198573267470128183587994481981279978449935121819756307513256573779588110250844678349213941965994269679406436241867394646885407986316387541417349152040374466262896988322473674076778150496807637114939103870261997531076366031152472631516138549877950326692051791393534846234902820541897696838767774512387643445751632666752807869683706070740522227268398977994222995878814225024473232536377702417981766224895746029478149709894913790806612937365843407116067278454656950914714884354592591489412077778185326442040927116521618645461289300588107799436343840617302001229897208611325592865509126541967348991841123934058638053342849494770553981588637058009946727527987997577823623017951154942082441003002285311717900156879539294163262280503773040675142109160613034852763175964665352317107418634216825047588544858403444924499522123684262465614418479528662869283487097552755027275366071306621318182954084625932253804943616795642829884876991956939703739232099196404406046131309145851118037963936758204514047964536669958567920408979835363660462440090802142655109900666900708655989846856854793746649588103011887794815228247492800130439121233112883973600545166184358843380752533720204741049841475447584524132675286227241317886761662286786897704982042174004484032489194925317175790137368823694934904830646556162112411246514448414128718934560962574843236118232687802397320279804231338169635737372855767863497287467989503246294679672880662991298184928664649285296476943504218323523208945423109418362592668663088966156836315226721340184550177317804970428089377429121725357134381793817474555035705738984980515206525786197162518694357053708499510413365294150065432706718171488226502709573118397889755224441995359869836083871782778120020037990868304602529857765993784640867279559862938070171841485233983357154336868883906393569209656476152050769920498700689132526508258527874937707885184389500242917326752446273502317403653333497373667113646725556972914339571269120315736272147215439458127063178360681093496520691808466663522687697912739782711287178195286736145080145963710511967146334223941767800433737052739099825381914978577148834964605882015016738429285188090423743213632056482626522888847491682125550665020138468742136127920729894847963617991066841113944086879592232166240514172031358730565201670892712226956310144759804084268436762959736351770229673771471888586089005697578739631996273574938688936970572308938050526548689094021806419891749003800738845463003321529342841350464709755709532377781155244162469664243276161355343771430494466242667395478141638597815436241793549034313384970810404682576743431927726163920681264347729663823406209593782241150934529625072508982808648549969962056018904139638676769891873907261063405714995859695227469035380522311529369597999141608016554497911225824395735607890718679257360570144549634930329988339315736120336375761005193052392251920911640915991447236896303753295906257235677804417822485603940993612524523004690993166885074381174804834568405905727299666590294733427408490859098575648085247774810943493778606137707419271388712148108838272951160741318327992303387137721677960902278915577429347333450250346593983846121642320845957290118103787232201553524197949432423760823447068909701284426391064619134943660554747698246409017715458514341724312984449832726224137262312342063577054585451117501760254263154031698712383638684144726913675077094853161234277593084352272524681502456143659014422508530977965793427840083361874469998276299537294703761785395336132253829453394670111932827827167677449327337919543592903112523466740212939868060417757210661690639900044721327019956688413130958100606102498346000110971370506190384127199346524208261648789629691335578912123639824697477400644994614503219764413252123155166580293379276245247193165714459138922509566059505487284001398864075673286925545107385692390377580035782650756699402842381126507569117874752429566215863816114987319437411459707374934105294855150871509173222995621442694602994852939860738431774274713787579650024920599703739075857631007030477012381363254427488461254827386107164029925852567819749043518979018250258356440275834016682027753511399039740507938033652331890723903763657191674436921323845378182641098243246654085242556364613972671600749018073852395909978608543961038582943688605871585024316257003081829348220365204858872207862070826342080682778641033030158884630623690649820932831074937727788513190134616400409021466204717985818408928255649777097890114398652056220405025844623561961861595086414717872103656397092350812808006265660953016428614009095425445366445113088490025138990929424707060950461379008427655427638556173488590855995830881444081806657140890390627327579417109373889640050957593590449743207922065681762915264675474033806310966232976229151161456488290557277287147595423007902477706985318332496823869431836435550527240271235964033441364579699503145505479186773630680681799363729240522298780393033472878985855835793112433754132383392208837981136348756315024454254619612118221018073287747459732829542376973886244585123392045923121216427710611380804385590149447357556684402092939895287306257459270112785609808992881825739198111413210325735541748458133644999193562380356001783906097708952197624028838374310265943737890959317837547927384263905839731978641294323823552655163632105758066700483874286833988162628444818686899421099519433238841704060566472277970271989382771278424215986990341194997135967134193067540870945322838914274305808929916437805925756481857188308149892908087750711376035557211034695166542428844188811521163758270750906353415346074777543919649008916219203375625063816035977724636364930619866463357461760392232756078122065649498714199222480042139679717239300270244799979818400660597596649428913899171277444817346918239465579328784024637042129058538724185379610368558149362206311295192165001920564758584395269104133872217708853027509397316972270504743520842287647339169239706977480798527583731715036526608550518794685396606190841645880792737228895620674991097821048081076633347602708309961480906625546130524037205619982919043190892512695705460569999679038992206645865896086751591646511805735183192716914499325504270485577376621042336066301905811233397259085723793803756542155919852261450271879153438198697870990649076741777058470725555936972518110573669021615360139357815416710051844823056872009342229406624315027787773823915397086735446603231974239764976457951947229652055031336789161414895493005574831410320748786427309981439800011088806630948715584841600942635457086928366541670110641481342203843585734607750659170742852865871875356633170755218150382834721990767403312377451926153559561700565812964077422404812781825971564362808602798890275331236670430866645286734419522729401748807472829265580359873786426652576992960229618093178566436451052244453559318765050170553681184330474956163981099792134795766376413448107544241172711843786601406231034971956873384571916965216202025394323695469029090268958118523631879374936783655075909647747830454901890166452697471363151889880871908722540960022507397607126896569960822934972567549018061821807410430072800408960045540020355862923771841487145224838013337070601264330698837411293561976708616957874435324864521011126774029130351722191207257010760689185706611562018904085098978566289231243599362474280263089064778205003870946438485926990708746109326038882351944006706182429483696979706875738855047891637156133174837990208919465167185398942337905459034670169197337758927520659822352365653855765132364795411336511375972314474456989696165145545117265825770706326797479979663091979199267726417231010184588646507683369962678525538961511809775664130986802975461474012972105217893245211845570481618858116092993455056573565211870813634342704346104533748005278063040428645246641242558577292220429135027499498510732975281711954892061796626437570054343839031107912399175756864150050601017666904932550748184272423860708543033604399063112656085410560237501516730137058509875971635546280277307361849690561981340297478337710139407483272203000798854614571551799026624151315873322134852014276147737272031173903195045019980204386650307162838348217602268432477493154939987439374659285567058318729347249373686636303069452287234912093039150815290253213916058547805669698354345031952428171087735974559751425101558989754710050815260932771987204130140022777709249155059426679751662103044845316732778803593825820649280147837442722143574426859685394273587517727414163140749410367191514444533652911237971112589326612221435265100720619991477295794933932334441299204308203811062816754449583741594366617992885914658964076092586813457394260869449469876209816286157379178283092727581300064580667420780813071738370025383898114549685893790904440932278289030517662020574508099456203619645892128495770782113178821936090332238747051851585994900366294286734095397624798570023066076789068119142174414209379048459599257269422764592628864053223584929416160276942393403310788485562913392372365458003272549636678711412651938347520258860541570550332641321595813638176490069553332641095788148184777448957444827965678156609400143454185598274987467554436198774873405000739242975834117963052875658525352463193943250451626024393371377941342299633648932097171096897306861833438984741700022631418840290810422649399899410215047307010621235834662561493703277064336504639062269297112425148620507516925900315398904881768253409257687079103125745579551686662685604704638792582225960810222637254190195746248703293066829569812888261894685453252734595117337806297087209055569203279705589234555639675476374484800558066814292125732551622144849969694206867478261085992032917320414648746037009951790411881710834855229624998215664442144057403556965164618567819653155587297540575993888213252989368113780773919174291741013455160101329466498079804904004353281759502835631410012286371740815597199030475816857876743085992200946368889549441072351559607991164541406432610583023987688044841040675979073725188983011257207329195566707145720769964168801671491034274069105445361428764923164297646976948910555258065863804372937303558041112824068866167030748396907972333233520780581884791150438900521482192931933425957060892239684760244456973226671974038679846191407288393556532972983736785319761447400327391160542021623916251148365679019605598538392275404302511651044266016713826881467036701602333280375087989786452836789438725580201952960176059977580916818876790016564889448117850122341039751165444032755085088888319754206620140575532869022483941549000492127436851802269155088655520275033236116531438506859305159270152423576414354910249306510548993450267916852574489935154473833931643859690123512965985202022634217422415733180588364461487699922648936228886005676890501370651449516157626371658145255912273819792390036927936513576643957317742006549283657074260367551280134659588991662850278405468030416884027527437900862984398728412099660270793950358889231063615084849504653144512040773529165525623009233592384842262886655931588009580244263316275042095525488301499598617652109124042439946042592270278545166459342780184593614985580827340239632264527760706176863658439340550575005739489476150702472646032457464145151174639620102331811444554794718559816050776292112935824247897565505677336101566582308242721808712503023165950311660011494876775995636449911210481949838864249642491278463259594256522821701206416976396050896630902140637962957731226679582457009989239608551339155555465319065332343840119753071479165968406804019699218803658805610395791471901685116035510690937461752168134404035939578261997802828216153560017869535705409570024648155112095569748505430788806672934725779708469675340449895310084261864962605329440157735973863561707370735940605861996716811024197732735359535304311305074890458055665937100784801493974957464950582109962400154427614867462834522966613713331923094138695555426489345188983218907344238792887909894951179361148804578499076667640817033160084109191839599174322671341869103216837306624285244590993314121909342414431864017443993475808823588041694194738932251208146076693400076915105772814622746373716136140776548450734227045067596735237255693852052696878775591959872320929439759925117466443124507050337128465966042580705687032177078296383244120754964561764951755036786243590689288196593867979588261127167871891904505068699930213750526116634687792772645405167068980263075158951083283172316517813552075522526752321654804558840489431000092174774508779644938512610184816956939255240256267816889057614959258812501267557558273925305132165742910121547287689834136542269066562465540646578200077075902266299792971025624206435018542066176597218130556438305566355596049863838210076475567588754150881863268794898706290184268434005791976805403154802791209083664764594716147011021440811715824012586427658737660176287196020445850745348592388755220349442882789490639036303366343805982287082139429066790223711557253012706979458271788238610988063552913817539388986639998335648020334484778734024823414083809597017339613009548685170543523173557541065141397506937176992477094191188939404300009234421863289327600934740686989475037771280645849035728242805099936690005799137650907393111601992215100807788288970976160985114172541211694860245608307557732625320462984461523215111745423983023514976303263467059604088073795125539488995040206591535420408229324546569536379148587174743709605845502358709095357018347419486524999286535661186925625661786417846030235704617525831413672903547615681936631016744303406723286634883464916548061156759208709070782180087961502033536032067980831061696323716370976735328154058760781670397042678253033640108458363580936360056055971502024256144682540706200955312547151778277538510449842440992545215562219068348024422750372858685670192261537552981849805714722754115558422289047201391784019398085288859538738827952654111484166212128817438585769352049681599302669690032511320477131830591833778656481654252831950166697941863400428467205748490489653166866659082806943484003957975719311783126486732136632825060212952499499161736532835672094574527805742705423159205314912499903801084666951687429115938251633238965240452362548634248078736165029885734011908969695636133249748541451423440017367123611602844735238508028132583703828881324670464169753436468507843657769344127735574760066472931354527407248024601826902571354360510078849743001894530028112495554725520242482567717795146923493099906798188817325137244021811945445014772449434786973571563040012290122747744600885460766922245537599628824013807892669231181935153837718267683021955976438825826217306006972408356055030569855451646533631710706589544746589349440942421126390838193458665411660746763432505642134953882599152702937175235085858947384474755119117562512056596497790414918378289031861123026367149791257794819487614256358868716090954444679789514865451085768670192051687095936005512420494590737365746860669887105749064128094939910024409580544904349075414858906879965101187506993811081251762985976744313117962566167312300308223278263305613661111380765659312212993493107286276840628468826946611569500850813946366486899253429108856205642077738543668887623540776894428434854473934057632911839337130145185056358735783894444235235198434640752223857941451392561216786695016184442332027850218157085023331495298945344307920286200666507100546080284871256170228514735277713853391724267329970931871889691501546548645511593758412778227425783199651867478280171794193065940303699236395181855463550812252214963783934884619285706184355929791562686756797862803481467321548654537396775693811689474978491777481428758400415772965999607164767931475151848529066895669538000747895270646563742191220949460039186982736399532219484458106092753796385022437234021695756012734226971645915306835785724991254321312062534850850734883403535100994287582913201909339260709762959922361188436046162852691719544023857396480593411225540494748603937105710944425833866679296717000377010210016183985662089848757603723511969484333791043332183849999589082647677222949769148992726845688770988787652996205048170443511420254077613288551387720737719106355529828985315410060619845373660663518877484793024096347325567092204232184830120564143269842307527598125415159199794334037474717608910942427220796632006686741336706633083414767754945564296322107670992617434694334375880543003652564388209756320716936725426739107716657385715152072861837482175630060042584725561826386313867860028051097460723937383827272700693870145516841658956891471954683783600499151391881063707019889971876786358299261848844461119434940076595856865211797364811136526724588166166296749450425686961701188388699313015653504218909470037178898556473224116371338408207056799037014498711640506513910580020760166972283792128845523770834888932731801098573981101232850683781418693283299178776062198139784438979512726037866820374949139648191761291850088474557175760392926629191756093718811876932639113316572731594352598330090593197989472714699472595411289155463264711079071559274873031616654942570355584075142319885456710790254010598147923338397767137875019987650611860300938240398613481846404588263262010477614057936050239992901637846743079853660573021850164383418459394830102587950835283191425752178339131035836405000415899999065878956540059070373851475646892758485817869174117843730647654280529816230863241334010929971284959705096215835871376771841392860138468534863172291040700643269606219646339143880710442247470160944614364104587866716224637302535463389127924039517798839600291430518145736976330882881660028772588685833227541755576974175487452811126050545255602681697359977262171958946441139928461146737822104591715374159083369697652542149625987571232520400594357332335426315764584436980105585110313589556002292783888177281502354781738275552554479260087974198661632389694680703939784107299307594622013963279049432375673782374049005168440224396537836918697365385943733000770747541343584648884800542551726869154574122904832878055427087243152850232639600762005946208912184279219924694829702954749791695263080739499848682650148093337826808096904464397172785501504208082900335161014159789237644770396687216731336394712440545905929675900148873945944020934014798152369266632852246131703642906768468328251323377422016375312143887244855257872279199169211055651425699504204598768024272043675254463622866759555669134910872676485229434040434568916877973473424744114348146690645801038742939873774982391482750243346487547209175960523629630137234407426592767958116273162339566835456793777129414072038089885561120861038410039616904468069029639556937271770967184123764696081438746293059672986850315409407478945264627862837247170603261888689881777854952440570731533400767740553817642698590362080703342824104787542901495466863543212756743833696302766880652826644660056487381947324109421265195350492729906530657803993166357510419459335428619840783548325651836670890118459407516841841991509864602549229948063440329636301484948342923432685558242595545556676547516997683774002009732065904184011991674367929675287888637039290646017392171928954311780921409095149346478843462498851048912585150140215373501443381947413073470086122946246206220096519282714965025490630085100423692327617570755725820239551117046296165672983922888203107261285643218836160355372191470880779131539437961721593907994854799866034231246830384196888012257971887210873411351385206676842179648124123534967665421483357644364186207781454051763650729926927195327294148272239574217095883647481049428045981357071475560958255309129376071747055725958525153155773592595455278592170070067073757963431906960790241999503341887624707392712704477785881600652277620189146713289700119373957130955520765745697487189901470150870080508169447852533190592229231644279880785806617222806815724874737969765371152008845873895482059349127484140176586503114829496942273309229383512503514131080816750094387610883593410830745016792110148810880651017056005811638900249318404130498682924308164911897836718009283427419580220642828484586239027620708589688676491965716667020066069945433535364307904312954971232308224219127791983805731057886307507215205008896505483142437785329993895200252972780165849881140708816940987561704512155191915373798202149807362338803525048155952653515501463238224178004883962752697331085198374745464269703825062844290507012018078259543182174320223398592457833218151623419005345002854221973422201972604174973986705648711718566761459527685252317372474200343368025645743252493158315111237837473481056226877543809026647083030547976898611755037695754351720968626132172507502952212580018686867114942639180606791173343131551979232317785550779665993063070252832344261835356673771146132435831576379435484897085753486172687984763263978699167632521297008252525425846389255487991317734486171095472636980412289568170114385313244649277581186846070035488696312073071849483270901207054858727205188375288585371765123230626836145618162321878924785095902227497386813412130083549298074469662064806992072322069230713470597360787459158348725189921463415789107936318754735157346785888064728663051614523750105762405471032866899133196715670957034834915422312889418255475210071857281823331888498786336297896989296902395802171749869694388216508321998410582190142513254998346904948151979525793988161811205169941816048919093235194154109590410046131209040860983402931731499487173978912151173782017118421281786635539355406929187743868077100798070326370577252977704980291899866807388363079337021372562330596415332999336773112423980896255800549878974526562614511353524228920370622420553045786238428869821564634017082314841084460372873248851901769963444681524897973972747038742611402540008728620448818178256822847722685552575982994087924282011695642523698877313503395059488516927165486275153237140329609267471298625223102561296801771109869258061539076892095460187476277369329241507174665153137595063911095704934423221546080008629489123405381884568279137878902241203419874424704706051462604717609333679627375801232163817660123978388240667400483728044835183960582752190710334670917626012451433394060760961217664393613834461160959614163742660416984445153432415884260607607518392075881095677022093156896051100373343666789800315773918758146720590478687040256185973408296559471364338348852859610695857644196103654588107945035046575772471629300129125444092837171886791875731270188529265710873009002983105522988390526080485686871915712098620567052010218827109715919889488797701152516187889532855330297286054004010203957166930239076604753943752951960253973373836128093937607863594046699905272059295877675453803282622618211781694333065201464181707480048291486009388043297513376926313388848977978417274542483511430266974763614115447973104889959449586352241115593045131402807402600588819690373346775499215176720353096757689595487065016617740977101171359015121896864826279145691938279986031974217787033454214379665977259063709553339657629944688923072009000141385933469872744040867302318257063165645335650892077998496390057825551427970162736600706419809429322854621498377877149344487255718106622602454281971000200389722202070649732041101718707327757122769452731746771084956206753620140669185457215333333261316045629383133658048009076266761067888070573930800903537381249650504705992947432847446972047584687878714009423171183774525680363959324454348826118311498251797792932869404314035030436219921641721819530112023968383284030217649017473448944506221788771179322878216079540489833933835509758400888559795053371315628604223737071709431455759257066139971232975177193722544758889536429016517437697685325967158488026309413965385061568038920483288516953535953302726442045508767227285941592878522902240832394833434337024597246146188776439307323852775794226949753484428046893540156773916308063080997647907217434936607590890104489313720098433516199483398756105279326160844337491187196181823001701637778436717004171150928251989535465396287572721491508204459495489689244743916037605279668575360181898325786900880234003093459049404529999170475233219405564918798809374109878868191500716224432701492083836805054825696824224118780486394153711755216065257679361926897813214740017135003929388032371805243258943628076778021203033059634680974898536008009563786227270925679347993950953288550867565127979247796795007717021948264460139572035124009369779441785431687077815944576409377052910684549915763526236084769269754976085561120670000679280812496023456914152471894477555139404542582062921067740365142972062754428916880847276601530546423178970637166481068434886513925603656337040094622469510173240378135937836821612008150087862727388219840055723103100895928130697241900578092172065947658787530007864523122431519820984695380226592384082591230156650958894882412143525996724886120818081169381795458352897501160146210053435227835617650397073565019123331382732778916695344020170236298303261301456335171142561674041132845892711188943597677888644915495081885672136472938644647052529930768341384269929996116843388557461673643976575311031020624648710377799956477193046719183426364024512660615311311768110409904272947230734405947049142549170727951917133657595274737020412830664390188442359495260984205660042544429219488052246424630083962951164196225425469158081623069565264136103746622886534478680197280002795298066896469656049959482685146608702647601310460543831983925759220299168272929851015738132993772018503875455418975898776357460662222679255578113352683769754616012702414094817364426737507018081139727497001580893773407599637319214967554120216780891980069299496144376119077060755276467931369198806815075465122643528576545962512195564746613313144629663871182595120222723522871129704088096972694646401907074702566391727281546766899284633081515672671332146514943248203475735151672659185458379682804724709988810767155674137419322944583886655182798870203438363951583527239703055507276644453268363857236747226518287676188808227374514743781951567765311182231742390842219677033660406229268341378399026910468683096731262725263495944881229251688792796961513138223954541044276699394196740845237900958269336762760417669148464671297248345762659743880467094920071085356837352217676471624947855382563060036012942205980384051180458100791818614559496517280904026526566939818814724340413672643163100917052418756394148549717137798801299463352750565466121222091422083005341618867111251278457183311570094516085422389808534499914340845810333919596360470196158474650040136246730068154085298208344891415807633271498698240941024139182438313187298658158383070265012960019420196104971284379360858618979285634285852677740998326973834110443132720842219370181580552862069513276596514232471514753567738172511757921095421523590840880254763594939923243921206084636065052388057017006635091085841376661643045590173680914065258535272319095991213531731033453112292433411631777678486770269424895011463518587430300060421178542254588779553291858547231876682650467681608580622787522965902167164535142246985534096419521381691384195622194890675199772110756873931132457111927371233889203694543213173037915637161167809917757716484233699833757648646638530427557583598579884060874207508725555633856467894971465919685261383147881787210289296173475363385673924438223427728386651692565268960717742785372725192844407482386894513645597895428615768156907840682096550588984025756505703245900792839829853345432012014492373028281084863347517591690548944515850651968607478697550024818517458146639881613465252465177513783748972914836780996286640993923389025673231737057733560580032742891405830409888402596701118738844469361912094434289710194895000369667753460006028510675255965786465181101589999450834094852872127110031653883551780477009179758044278030127381210533702125524119782183849777103129126219827705569502835016489456012751410461936833352980756906386129865058644670980706373382028860495115689709884354667250913558680940154841238457145381432916854533104177582078065494934922330797777340977820006700353849150753594065766012278358611467519006934938434697013313913057227305087044769861227622760294203851825472085991972301253039149491498855810183505714587346254457375507763203484072563479306710595667087166276262098846354656099311461163408739710712684848110939934717453544439981582577166724230152520547040624757794219513658154246873078937651816304345717311062737044462580024328884718793127276267448875442982816428864320612731173374596042068556934759703445735541755894720084335067539117219434291243083769705809432443001957502434958429734642976944858643738475098309047269561606926440734340755197096884438174996263137782766312663766861548307692386600348567675319788840620475032287073626673461299440115424866991949206515636015569990337476701693147041648715592329528633458428654478790001926254590003755721019454222203436612005270154564134570629187008322506441151968748091181380353654606810318254110518308567872210616518143407751691570487791076922117618313989435527460067529604219931639100585448512824912626345380883833154729083208908740838717544670841794363130122464874468246240921691768701445871489100915582677036191325802176170933663228219300966790817820438790652923809216914339551435523437823061461230004033726025971986266399383343964291582352914487832321268527293121693957381677008470933298112768902822123000450820410402753043322460480437825479463995138310413731506606184028503160832312235479856296784448860369656520940633331108594355517252380963451457623655712604689795245561043910158483417784539180059064675256748131686210594281895234149666266706238218717428716865654139263394183599232284569658794159560564317063120176336592938161818436886697486594863095834746977314407265496912848962113180897537814125315121845581577978746977323151608376344597048455360629448206764581916975058440386332868043842047268868824049718493007408285433008411727700916387028802670550888402335601935805207344589538223991505324121591236986087117802616639484571125696063866910627722155968257557884526846029633096058806108932170287565434497451880256735344953248125864522292548679733554637580390767422798598942444787302409882462941365226249940671173317723255287109948189305387272134552721296850267541241663638428462797502088975194176309824083698039061241891859268619186425722955171132618524935581185402422175659029931602874439961011386552275260003172674025622128026089167714878520309809697878422162180918847259139449042377327976410453492826169632484477809533313361522610118103516400497632669962413134843639515056216463950131872798136693841473146646974915399340364988349135534518451802086040880999154206879118319034352309796638957591318470428648970948065979159595749602396297267729021223478116225919836618177509249985772006237265874211288734763495120268965005001328277513089236025794554136327796619071528847261852636305290525293863071295140955963278493993177421808515997877992713185212708903053723802951354404606642766880141271913460914922311792899575726354683978261060153610111602441722895881250015543720347631630350577096512942635023298417355497663789808804297001043360795093590510620594227882473974059906702893259783622124043910291352552337673633164069080341468506729843471039977483091794016691072636608080364358134482579084892634384846973418249812709424796688838887775534593371412076242778101251477560759844829462084185810220968096598692036810481394943108700409561200411127265889822755665143333260821865352343183597826841786603896438238419382622175617541462234189174898950166501778470426517901686289123387079710991066383848748430962235368596257568429459195134474343600713775457838213697267764522914053591139932329949222924639258997510852322230721118632332722368760478668844188278177792053552582956291801330246977723163221056054125943728229092739821945054705790934795357775346443258483378743489727657443722153976141866896415189249137408734613566175351524878148399194578800046881913475595634213390616636191959025377965900740547811172949464014505462285338738782177778781068268802060317080412585745007056112139258297072210298440865965476439620668141464230124003122350946774221673585080832385931018338968287472852159051539412443435650835803489873956557862168158962651366801671925940114608001475851559786780430506840105829178530645707418449114948378822866858077072774012749519859162698008799850975781265773529392422180279702924531044497105002450311486012907661508202810848344104897564566599740512224028468722906356184647080359794899902608453562176691526265605251414042283974054829866487874828482010829664864101622814365075997341918247844154922930474332884131748419890471293563599418378032265171863100324894493741702240588806325277587280843603046416868990634954495012849304588593526831249913568456481115970023200536332514988796627207659820700050440926654188270063818064965405822062833731166780587381522696266377706619759431291025889106670226079892091183821168899000069507714972044266636841607520122711020565540922259058663296696578555372051550222499951454776431825622653524971055650713066725196135290810231886211675614275274969751269585344911358991974763522952497105331921174118114585667586720493007789541806704612809187088383323131886478233196806962046516788310744638619167321670186298023522260555891639061100705568977372419517080986057636657656621980809943311675000396086284514098950513281836351769851253688858068798769213508927665579320823070273172620065995659513653694337842586996041734312512885930032714941680306093810213807746067620967388998425819689219999543978193547123097494061143383631662778930997011907618006482962439929071602913162782618488455319921828072806650991938547167005462271620988445509631899556041010126403079884139832727829486366699628209700415176051511203624608188265087123337592619350756100744787638022843022087363853286044168961983789393906382583227589358548726391701429093849591267835782389660335912054707272286591144036019610679962364002335666781355148234711528642841483448312595662446876194322396936565656030340360185990359296101175239302822781037783648384777055737083591504297305339991561482365385588836392585012972748542040458150588028908328326411588808272070842625027812373475475162757341842725998759561018183657133615140987956429631995169044791261624139829666218805438853752117737234759758249121474237797658874819339488141068005647118192217610261719547538287581844857305552608848909965799142821657630738032572297680660596179918192366553825041573300925933377217534122728562206905027581520547826759892652984470434019162733270641175485411885134443118372664356926358132759982828766123104051935872330851579624182443923818614766315891838707157878842312700373648987360120494851165068117748980868351491566506728623136354899999795842049260822487217273218844355134162999635455006086033501503018783779011550622519485077990422283346675063771976946634692035453634162302161891659838324650166236753070345791583752907879223700872316993216466662373171670837724349499443656233424567603918577046796729130282001071523233652176147281337225987668789668501799651884490657148257752296369890480586960839190255715700356043830368765602835891477076181921368117156133152446398884843858643341979243299911618417633967366611781090871387235238987466208977778784341668487532371001306004389799409079828077782538708899002202689370923505574364924479096079976382046993074497616187395171401151886423383788243101795627942031113179695498565749833681986847585314478618256318037406641329899267450355269011687745838075612636734248013990861034550134526163784033856880436748301925115942741981033281687069110015749263204597368659233901063758893913875570912292209502780781174686503988745675265568262573725256906707377466746817583615552616721649211632973437345916200619947127353318404030136056213879608348613398069323067523893299661619239375769881984833355737845543334740583652927982326910700561529551926670775303979620182758302817429601313269050631311220654807092491221022162681332338568035720014877030018259309738174269956131826471883544179174679112629599957769359283650223969429999494484573537281136970890582757860112992606163879348763207012427596853021254219106992680639770203751348745019773263813982851376759824268036104321881336254791163730393953900826990113214657097106179511524639505873832817994045671926009251971667933673389510755764029315315405763141903959425120058971563497873547315440836187245518265537062061008259076339474559296426558351581666724106387466862848660042167441540044973211038892561321675052698502519901059555914222601032295234778689257662554489568703386376219163937661412393322082640098013910091799738302038730353772407084745223888795277545397777279536247213081124900389083473917772866714986071027681011980649852592937696247769987261154138970066515621070560412946430148714099896179678860391790928580591592778569549090311042049835459633308375116686271596127658503022863601830161514168037093724405463099186681898244976382162180669659856055965238355578692027224918705115035075849744968913402977206307226834639501474062235534492772055700591942231671301526029296071702375195261097895165911996192021423967140090267581320124083792539818211172033062466776437874785612417502389168643738945998881718150454745022124828046397965464830426946848878623065138920306780819851857921354674272776095796742324214767079054164791886665323042525848864990479224717708638874485410306595755066694120066844830939542678686881877029377802405706663658136053074625192404002682451505407423408118574078322757224243837935386794818852578303545960411113463245662410794169361920166758441038920333610678061096839923484859947619146334859375502337893644456848903260399929148084119685023613005929798942455100924402487645256594915226758082502390833872483778284945628702456545234623168496302978817495959803148340627611805587977078907641884115018496618185896992105824827911918019556580229248534233786363256386110252616749187868584361416017595278401178127134509701109866109302078541270402477071148492701998007764702329387077654244783100529571100196381315275809888687130158886697961404783781572463564694016380982610978751293007676125293734387250987044989205116481361358306754779236707269339944154225643725836726773632674414428877610983179963360413217535618251029469307667515656968889390748145594251520995470704703582222660112267908764389611107816875150776388019188754567406353453783706782564548516396352047795443792629613336248782658959351338386738158465093571815123706536873245714520200095780902128968942138112629432515688499854322325589284548918871510381712145203738745606040948660764518278963858596463318292433094026754421665995468777494236040655747152058031445367510366539605469843653290403606814756427739962607961865875055742901766923554336230692791143335328591346381336740617201716197903325232895623885026091762030564798850895014130602014793530301721241498774978739641503808021491474278277352926507380043207743069984277943003463243262710024445799841956107685133815693003113336181472914724217769139511031899358302257432039464014355266680374873721967573807946788097385693774114289350673704638539062136452996539132919730630490386792850703947231569448480919046743741765420965189549357516193139674757002237087790760627856225057898680159335408820617363991154758969899823310431762076772522040740787090367338439078439525031268854258453746138464523101660360899492679115101748413383012863227543518102150258036735519202589304942720901427753363054067439455835534311643076293613582448738110916449662675693131113482382661605090536648264568807902833999788132960856991039288906142025001561617274019977809499625788895972073189571211905198451147536867017693126156585896417133494880572792209378895024249873791365120924625024657277583681938563270882412242268423628196065526972667313027235855837372196608963038038345833315418411165101819988089621724665872823762364540611202642218425707923610435510891580656525072241710666451631584654140996797943761245336578439092523592480670097237953844029261526220898817122572049154012796347697189926394095431191893978149273010943063392946579374919545647592644105742613706244337161161133022297943264429287524330647520241851774851716077991428621493242334241462386222638549307580934162347028736579265495193209348300799272349136977223720266640108433282803957970609509708770771924043450825075013112687556594292697473012618895275628249216055715212422592129089642268533849739140318264337768212072895767238170092699060105940735904645548190945079362185646424160314934475005530307997322375751101251947473019515805904451252977582931151611562244146709029299047320373012280744677049241965991935958214495690676611135851846430132781889617839060609698818996522910923948191531814848986109174238219989022355912882868996834336019799268342751640370318026879010402637508011350666538312406646150917467555917022774722456333186651791641261155647944003311832442452865051609011216474872154102367157255059884861042023462291300308321334035000702672005921284069406101508526940245894445181239933276879955815682835443297606015120617885396607280135475844761207425155994834218561363033572467602582778118930748724481674280997489746699352353213551943015727006271597644816879961257453174529269837069403778707532072416937359225098537374142549871306881931858341775958837956757753156236347181294055418072248069582281644542571427140389689002994843204541404736432985919093147771713747614880097615804389018332051883993808736734603317052180630304791875015348019885165924198220703000073143254072269686050298005532935336512268400778874902184191698892420022097618933629624345504793912055370713902173339612486594381472340388724291883639567590485138597315812139421043431571460784501868184307446007808220047463310354228812118346819975992204663734269178430056303074330662468509973814222781002081369574994366099205332200686105947255435107529349814585301429715527340390400837391013787793527225230935890812980928088657292677405136844356325573918396151690612493508283070446064832834775617053903286675283392219437699327875147754128742807571609203843280068289622749069089389484753188764230506672540070211778285731313893962989059349236840556095224953295505440230697463147314364928244037038582379696729901153455875376929117971296453184136539252605948059148208143813207390144565160204930353187151491840251864900861641588641344721922791787378938869322665189346756693256768969505975199325785804167327554488650332207671641568919879450464230805643552540899732739805158064446556949649541214385372181155674608254975973160714707174561641869183054201168282405168051372349152906692453283712724369256931992575015352122852086546542888460813381649356253697272030658704653392290333537641659291916991034314020448949242713998063193610312575044807633880927029985105315096205222919907267187463467327900103860043823076159796682869950163331202568263521120865555928352429707368672327845014292946758035534377339495629511031606346094510669677364316958249204834738817185368328222431530541070333733165728858406613730353900257851548011040667940363792680401015537486665022752249704774263527580862653073567866371119226425038431752478205769343184854270313243172660978206718136358083250337797482723687221237393276094024967259708150921322010213457374723353310829558581991502258667552562456697090141061730097409704087386045019972270919059102917326683799079672983061166211708048470137483186146182029735320823454646335825196235342409995169210927571734102615734665480032901760816751592731470407197330033433818367053681089044744657478016249552597725917269649522648629761650709445898970976305388763438400242665617630788623990381001670308722383802457621215440836687729677858192535247274401054608172173319761483037063702734055354923094434863522057074782038688908482045149448838436246935746479628113351952356865420155065111123569224175415784447156909452391804609523599524711510865098043257486557148351692191293342668871324679650706393981752761509158500462388899432242741544417703129908032150400947131077568941430718778757808148278919640891583495386061892621318780430321737407684229550675254551239857490895560541811332590977209181274116549268313941327234600972085946094751833425914358956577185453644360884039545061426763054106435349199759968250864099580357548048754258962031763264063205900439188835793037836184383516347592225806220623220124315443526453114212591181521825661060761783937581374463859608472649790483042018648737706824310038016050516258799658042730874194320723146539376707084232534955263882598554573555620208128967337361935285731526404863606145115903839462049397642073669665080687454475736894393513147713476186738197229084935716967732505332637240352251319422018162600298037235284334356631824042902708129605854721726817179393811978545264927404912787615780532143987247657745038277644751065276353000856567455154074560068382975050163699955518167974886242518897036843325471154229146353609816723091094594172499488590519780737236565870033512558478884787081236201174360745268422909171459553778535435719481674931271746704039947562661541363033656664579523686978686288095395028509938202583625417604957322226803756353891862674469978151331607507552572241195160011985825748572353949775095710611103636788004372034148492318401256626246951167337699704732160540839386326254047945124875792100018997244905966825327426384829221752206846081311064412594412535436095408531753432444977795755195628640890174943356113523880261328013843182939912026514965273934480144693040011462302001161143643559594793314429517824887469575160478540666686217101544508343481397841643207859421491610673026157465747892700776306409070034939200167913437529002127791833701425595429568050064242697748631340376756507237895568996256613649656621486948565769652727907501467944708354224698461257324686033612653521228422821647670783720859249449036229072771621504968687084250110714250595506606494480661359358575907436277436476476994179059695582337915494018535133467690400113894369534592579763538548265426125002039194191996624777526369740804921749420424154512289649806058283564664464525553673063362319434095477239680760967032785257946641612025612071267339238627506448895502934761352914012277631732409035930844583266166271656429897874709136876531876316183183337006670916644103205546667082479024556807551668395165468391980454084109755888672332785603233919682945186565953176069589884064052552637616503259049603684541366060998373808804386398888829275943488216983121921351847779350619048457673771627571394246967755398206677650236506496768509279153802624053603218123713034124971065471060845061323408329772658673425109408383030894944994144447763893533272586926701506062605677750410689820352776778464944903940888917904092029102464124036015801297990898492511557360209679082085799772234213363175517249097715528163709359379737605585077606840563159659064133935738960014648362445603264979019972179802869258679328818422492008699224649964214601909932694460737596602686105181397309611971468559024300286234410600005293781596918924178023820766272888075774019506912717351927154692367207511917375950164638721667537813189791367522860470448173089573770111682563543406776241755186023802908250792630640935772698320686288519479431696024095366520103688402154619393159645945533257986644241876587225003110065160529697852629724358403960496110786256405861575414548217535528081220207633417316799114827750095863713444507094632665280024633394548551973265994135763805408036625623037064624784658892485881937689545147029556976584222310377670082101114974498851702681046533804816261060328700597571426204916360845449298141140297707529340065352619909455852195681121138878726440992672800730530929330181630215303868104022286636626118852727103291877974429692316315521005323782938357708051135551541654015715184426676402609241320493518216940007399808109543964828393891151662939427449689098542986761085900073198496306609841181338325858223345047803377147930468108773311969655158050700193449136653672994689670729411166053371218820709158421023870448007324516624607212105283732477512269792136601681775611953850752923664355366236993927187349598565294862413721664594658434557459471588136415887264416380979737235336958222773119093563778863331981860834751311792412320840533723578959906467971271320928381817945261094306720298747970801372364932003944721551924584770093269511386765117973866494348130677071413619732835000638907693097223093061466610098493124857194875347815547367037471826882832548062616316110671532662482062778155498000923762835724932647332255009268029484310636320264817919121695001884244510472433543640781467598305137662482688694965860320597878108145194164351167816301502453656737003277667278225064351759883840448284140056601442156145261438069714975221567094043436616603390810085069675981302902254754333650640070765754221232390184905357337339911384845787152834321632486701580315723942889457293833717605938233419348670016811295739118002710511632586785259268795005302320738323617103139511460039638114215282616338695914698613797295938471838016991401663006187838147094164941991094078353940697403825887197425447872255823372066437680006482065838334473387347652533386986418236349374947977980691128375030380398244387917172295319103715441499810816694247317325503958376107426338486095201981775594307150398961321839131173973846646068042838064217105296911279845751881969718293676649502548416136726438864303696590991365676317330108098381843802625622476311923850256798466423712209478907338502562050935449351201285906237552882082045261495211252613395625079498774352733802827971974025713144444619631605885634586893783897768140090146479805680265784536419421767561436077983808526948404364362870876677481212039796004583591471496228671018548542256067795373516867048681251982700035078052427142492244430342804914756926135552672900565161072865229568221745249331211518199996915793150650242081946587711475416047694294221421414200888405382783703839968539266434348967225329887840814209893509470177665075436587868909219220329102665184642938199126568853294954489273583352287723734507373677931555831111554033804298890828652698082364662678753539549932750787020191676095228524114396845828144848986402645615842716089461248994370515076951897337071152293398616049869209101035284418359275011220502003725100515195407295442604154170844809894235233539576793893601647107323255658562656553753066252626943052994202594765371429055680106234189246443653788548940881820311583467556132536675446375552063640259905436686673969418744618032593652738315359668582243336599317971416105223624189114399777435389019259208608598655014425308847120967874975605950416551724389862248379693772532282993819970509182676812646910905274907069855103426207522201208417163358732767181395948069042035934715175569239886362340625419599426656042422451970181330645094757245478381558179168086454406833511374156429978115305215581979634202369788082295976543531178453367354025936870416009809107183456032853650730197414666815471442088705881136532217600897194020126777026015159425274406597308572128577895957828611598206803852701442972583502030024755665712625283780736376864071223259355861840134576904477653494283015023861945265270105583575791668957612394676085852568787389342282928205727779061169183811506570420864421448156113525281318624698759121456776297513528646895374130158587063057194051469900462183825421671321468206806615511547915368803621101307502859395827084437023269691202779519895896055826858656319209713133175976476721938719649119833441345036722554144863809508867261140061434635625947113632371416509711716595630855603232774860949881577800723265253462934106506286411969044198454807049530920441026472001595062490263804384833324374381759503292721982537852614268536286396153888567222082620150562450712634917391295738643385131318739416176405009220049190641651121968458818836770988750648000758033772235959247761969215388540173419592640285607287347029127177324505759743739177117178011198000450665960638431223540825865838175791391058621316806521364668424016058372723302662711047784709480920476454166063299932796640134038084143580490244097277316176959591389551373845029365495094769633046701243279253466585039491396563066938668415618590221151295450567686354627612740951091827801119162303208175086864084266740596497369151982452634637187123798178576892099669696882761663432427069752045840398063865162508606442156331612570617050636035263104022581452873781183061264386808130835655591123232597813448883694613352818804542039778475271267490537950205785354611008090041631274220647660501647692065263515472767291346847444607832376350079391400097433305545164714713213046527352262748242796544628123595459859394061441954390688976262148892678325121310869858829415668722858179896511163701229329157927123180244496301246882863347114279294408153714741963315493080047281870444510766318987243020177059730175242545921936210018595601226910660242232770535908500021769948100039742502014925516109004515427526846417000167674453455355838034699110351320454956775034204957763600179900580614611274767171057245090065458511090506059494083240357642934281149186846212076593439873274263037387829643233713222779777942974942190419209948990089756621502606975568559138849431190406462883643220803472257222756033327307611525020643328381486959785952026603929049143921583021777685016366787018537282516854266026521493837394595861592461546976217446891501570885232289679969381143637440791302450988920639309176400298365786059575930962016458626357309575891100984829230667142567080288874518815069824404004417561794239905104825304167831100082795802723387948193237013447793368093866783668449097706119115554361577952079228237058202298590548235518635120530927023386327656227188469385181022153873373980999691657678278861942505007975761431318618027205630666663435745726298187747243822521395895869400633076406226129275266468431266593774916986483026538964277311426551785690336964768741811776789244174212647183287383831073682177147963347076872516552437121066756376342248073543707261544612237579746743623216980388408849990334540924370002513552299077130657325741941043454965837378878015264255326436680519668976040942543460613058815360265115268160590281089028601767671357400352883258793430036573399889121715627633154932215254207708828929134280630612202372070626684216099505466544015330722127886233137987162092241666243109524279867211930664525091057169442526314108308578757590456125151961830458904313934787362553251708482889009518531315724583124699495970691612037607705011882469141378895382265954068131712753251053861216824530837957043051172173785446724493671546544550532655197599610216775868877959500626732674237844117619351505603981761475706798262217475843485045771988517608745647812186729816697446488629323188715824896291822594622968198285650729265178262265967823302674565232352634297691598944648478830588428786153787488851470536537794849406601222416953514834224819055996130479227712597048769087458622794507173290698883558894156799603939483178698305572301496898856312687914770472233667718025546615371990022930550709031103288805971452994571518937157383487366439436748336905427827031454661136497707871719273327685759567190311093760646128925147985196115816399553900896340260681917010907330268534646650122374622171151294811604472965000287419418144120940541565205827726587028273478514399314594555850324468440119263519818801875753224763879979128959062855855781927193423301204888904864963128286576467915015275924802845648149287162656515069590026197283367671734369191896101034073163690369018966300912530599760096618994400363592410244874658537356613152081984324871037911293496506609331997856161588865136355885120383997094114223692782758545842404146502133305514707712393121988843294718951563192043097074969272258245318150688028854698003847837411192013578166127028485718776804412339699534280134253565864115740874125814737491949657167366393115918333992267388681327524690948018534640275158863882938377953209495902410714361339368168232751983544036807845716955591881935733970801565718927883541573487216927033383972614287165294455541054044882973191823480239624956377696035516701472036655048075728883649970905879472626053349258358730862878858326920966907853828610086731226937326600488870348327231647327559735138685599149905234597744403951520807370928489787058862755972936151350747862834847304771398668276165160947727353741785655655748241724437089061333808899962339411888388829745757452634529108860898672539537923197803679886101261482158564273243541534318426017405646645546643303880546045825203524517804996212433974963420925001533098730983182408876674787931219401660141317006470590113905517532899776450297061859355339064308695754002363746204392172969206302874566395488175580660104994481742237993606625798647036413246224968186071735207175461599684873625471097677876033183165514434206771565785497342132416410394123508241592984326606662999024148488333082540198156081226365986445655389452917945295915335916763067762727498712083279011653133498284286752181321459883981012200500084856315105541205971891497709394604732355346756644435198247352921500316185369913836311822345820693996964825955928016617819457571494635600171034984573818817691352204105638128761921151434083643990669528739193128954550859862717965078283461617586203487514461862581150255978490806243460288316799207836073133186596199055094859930711053711866504585630623962224742638438887916244342063808112505674562444067254377578507042713861134445833215026930871618960765334012861330341607347839484453057223103208254687146000550876892472372760064755763268514002592399167929380268301816341302359993814618647462888017956630242098653154015173344015674216238318748346682488640464463162568782275469535771475998056296424012165476912418827618598616758426596476902761427976385580844438101443059773319741230483022125408334851291490268839367439705635966608581964142326527757349909930548018857845032099004738457718660976781651187215952429310461242876377633808689099469538566509559016439893555779981784515755848419717877966508753023977366231745713034014321287845479062124951302588432201822755323666495460000545924138406978687973635755485169589936006394251210346803184481833081603306302621564768334403085736238652142521140109698040999440313305815129921041712775544739069343401856504251483027845197364041345801038416909890294458818716609298242558952254408500670450867079951298024589671067030762555021555950975351193902058094208079493979422982169387723637897880458679735910843632546539239429513500406199615886767064936034841985355137410927237975301195940598519991298913855117375885099724486475613386455501506442085546346288682484424665050284565945431801165648826075100055252641117011721267481150386243532765095835726589325451806962923591941706221103837413196064317185272919433037471325022231731633500553689786128560313083994115492700046553488552297985354201962555573710402785933062151195490880578146584242071187054845936008887205714327053528501290310312595012286038898357700372604475541539558608821131270132575166573578204833875657007187540370392087518691134323890300265495877359712167681197063474784273499459581471087565246956424087983342883683046644304810143247871935133164999256529571420909594614792250332460408761869272300734122459258363446485952597833402283036895430257250791164313029612534248696370663567499439669632844682034411195257121739506044977881801616527252370975970659239331502239192635923243580592235758636585670468693385621940496457413061715856361728699711453027706765480466642758933778325236058507995206738342989909526127973861869825499817112765234873977830285044754465254729993791588142519818871699256648279062114959021525551467042311935435411576782921322352997627546075015449919711973144423059765014890111142536998958233892352977493072362828661723360959425018032583775353614933059663885058239292273244920592703436849158244252975595185043722409970116834446201218700237945405130562052232491120263990969890148022532141957994240694190578398588171309619561593325636408919054309043866713451823759834298723251125947218768564250692468580305774978308098966177642903675224923125015322400871380126530460074076216474515372030673933779607969666839686564135286333443555320491094802781066524578285346342427322264377674175137614942495665469433176985235488996091793143523836847342670823458613821282256288967685858613192188817406144100156683818142085375442530194021432945258341711214617271302312908175734997851327171079417146224561078409297605266509228221846334703582616820824434018365224257490322012748714940137100256944836926656499933684418218420333301209189298050583640220237231514144006339321790756615150890842486918809541904839454895622736256171968457990897682767812133757082059599113961027388633781934404827048496717293615162070174566103124925045517658655433773656183275109045140126542191537420560048313028277256868972135539646204604132778270594166476392642570361754611948573003057594323967961868288545280450159529616483567874856808646927320818670363081273264651887924992876937675530849453378191005492648936413732062567979276570717467256414066408992713142925587961328595675791230698524808709862827063924153334865629929684635676383478143897391167183018106951367267729802511530054981891585550062954898824188892844113503507890711558256941758667954020990273861597534983998217966757513179047412925747111403283105601093975649611676588986702118499397441753538881258628725720414558286169092514935323445070643191186289379037074564418946387569649294865883065532032838644579686927273136345847720094600207104086476622626275929413723296016488647939357937728579894883459768542464063057068163622701456277259014506611595316642049669327666210079084681715243763232357342317232103449063846872250097858744912663303337953504279500107136427397662269355605454209575859988420241977106631217078186844222802051856383736485957068461477809451551946740920620066669588843317431425852651226687235032928977337826839247095856441201372327921135112905604510229949553260848813135421605393314797583243153156298442948512026456997208339984168484294039017923906112855449783330105543056099620174016892062055974910800095252448454354953459467324844915045562317995825696123072830663557215179405592241650374346191224762115859683124798574112635719815751196087590247317787500205448244976716636774285232631143996563624432338632320448300228253616796596615504445414352648624829279492892072349293553136552290521283791011031763044290968586682392692355996950471310478390210236043694032024883092209438488704869662315324175207154034552259042606743911396823854533436827898811200283469705664316451779431674591548386913242471128795415905813752880811134114115434745301345754059087256328987397786328195923694831626884413281453575136019751469563789600203088934718983876259261906450839628031220797160330834041703573390721987719407513353260039170121729904527368631454178090192178759957881549189685364610075777101898671488043615103121073799478068871077571107673554977089867984927413424158525357005105536532886460396785650001119347224808469656068861299476827298207036688503693123984196892947551209009745041193269722544942832929220193977697526376453749693330402284016983825105210082793907717845872517464211315920468438471724651266549543713576494669246523691367918186242212960186700298249662039840103900326394394449865262933909965350865936920259448440949946032109826158295560840554450119566421514360638070910333377969631958424559707337888616739570091485841927314572547409230370150377036524933720261958914406324887306857597938820219257389776712082641047633331107343763484755384358717073244060834816405188510033394591069441553668284910473217972408777666167574668835321175118311241246686307031229645044432223871386465692978652849718560682232057191211659113429107752181064133596144219702347619213219027433922675583510478141272032459854383084684684359986633444907816877830849947059002606791802036313936994881156946739015477219077535903845446967909975897196584585976592742928133284329479678629919963905541739796125361010985950954488204884897270150454806145271284751534991893660143157376316598899986809779692906335622368274734698380824233652355332795294799653792015093893746372938981434065544194117741399343773484876324296249186223336937316981495486589745688432821386633809304340180154437628083546033968608938821672320635136136368132676751284543305715498131652934866363858277264221101556419578114055966622148456787865236352455206638918186058515010983343094279315007625806313628820906012280613314299802154099645614198350000035165462918328901403386807980653910362833116126617313473305776425069579982068274093417236495111040535382682762243860900887994473220235637076659685948750646598838624146221543896119340247342401844305855083171380453214420721751362302475845098970370501157599551515196431217052123823567155233484160847038104724021569806600042494090092794551844091278171313522351601259017168376841287074694215736410007986917233261465381397447098728339207651833473362973362365552123599800920191962953034837876256688913677226133049270720145332666960097340568265714794154372923348547734503215760933954281845627247749495033441770538113708196484098285001891422559526726142697066253259828973828120932200425328305489576561996968934417656440338880960256399973913167240276259164107612902025808002584210860498074897928118342472765233069309260558195867941070953300957978002890540883283119626562848094613062903328529404639341517635063381186171109427876232133388708855939166827480736150978894428269435730904913510261129875200793989102681048282879817186333652908206631618134356254649781072984600930267829113535826562616041186173991992501254559338911724915488170173910852830110715905561652003294385434493295669871755586431894509806230578765353199998329612557669795917301912638848220585719303054052822671365438963326644785971401126111155117835421817093875014478045843063590044868445314267014142184530741985303648769311102172724305524066507204905072372418369770251713671684968664401308301974416353597632645290886434008053083254583877580327356841015191623450423929674309133338470708233951715060361094483534463128390567054907923194888542249127443354941263114360405774068910004377159999887582046168857437849610749755067608596112278939570041820362381177895050292366667568831154104056947244147519923023471578223155760858856318588953079021670501828765565016277380580040642523270315010301569454816394675029994483821364254310037669154600651456347690033735871186711593906052283941199221874684368604195861768460306189155139879192875383395365706919609772886780230856183009584738661935488597063960108991733392954140948192531498739865480771315769706753949073537381381601050910768359157212086753569519683220365888545624156547929620738230881331897508399855336177987017401044803387117896686202519961543806399411043059150930178188995727564404445644712984658476064606614460298011162090360052407686652593968828914318663856805949877022212603782623149384383920780061772187700791463499021723579797718166328253024650729130341773672717959540711510144452771543739860774149408048369381024603189719509275708587633039165506890806423867017196781173984228214667141443235698230065480023152329804153155640991181991157899296950185612365433252595401853222893372231638169686435318117006865311385407303790427216340933598647312517366670202429110796357334518905214551072719921820338177579904763521746692754228222293239650015750992482375892409281742886191517801674109803670852815262830399708133311538199507977636627721454543188284138581402824179082591958359138215127182696904543524458541355023215968235542710839546856990367172247521161107150739740009452082702398454289327049345702357712557931424581551028585876243052998359037827298546401511955232754274856929876676167179203966559583402582307090858917531742904600200596520883891017010587466215473475779518515294768420199503510051210229197470097541978871859150545426867718169735830814861105159017149192597723466596967429941224286040693762447334342262210789065260233657898179549260134137537699564031852115026476144558387353107676110376873375806211799397181416015461717418271904882680666627582473446227985829697996175663990018694103927824223918835069581249001227138946870062041096560101766719881350374441343600484522224563741643223004716758904896836316208257053705575082210409693290034691753260362663451214322513866192325765972109586996824710415071974007078242835914696834771172379156018756335652178343071354576854653660289827703556457289707378346622963820828040042513806289084828135954959755812318029337668604828980479902197513508230193693228947275289115946035098697004568086939442714946845743104574854809422217132431242601455610372489243690981073930921476765687534499048989827299605449106045086860106606846943900060506957473515180878169025397498504753084899717938513535437343257744729684839444516243976889262979018642911579618909309346189818428077810046031793955119345436827781158433430710843768535814663149322656938861073458774645248390241326007366989144554708849789272372903644081558576268664468247578801294162321005660753211475200465074043802360371336915532866520410540808762911348870272733764452737096936850899478568699495756000179310492011942210409719819508437623866653415130707941839953666379077359237018875395964140869548588316733032646497241306554887111388381367179170269744814795562291821553182357793829401946335137898863826291290706719223739810839930848576260903509480325762787465645787350545190068919641458597768929183557654412778882165862518140791198398021981080400310302889896951732193691326832336503970780939206283876232641714396919001519010882779585842551262053690357126360086732418761185560662253259706072633785718248343980083043768927695717569777514625608712793117643231949915521290030385243229749320157329181138694188756752299563699494835033047470740503014136721347086547533039014305496898808795210852725531253736865393198543407921216221146157113545561269116683793540436511817459246915105096800076289886776826282853293176793703523859714167242627211384487048019198513763167959003426576084799711402770111194157699382611109717355551427692265702444261006604995588546619125806092317260372901496197974024973525464613862400377396638771858168763023263550403829777088162173538283339631891730907428100624971287301723882256595417111976697019180666162222053912331453616930717253893843893966777339694864807295907340285215411962284432156347171590184536002252160941233719442876285361518015844681691438985116198029655291787306662229282947527951660890032516724386654053459410806533680037288140098188119061147236767631416942150291545217558345547503680208820993232011293184059657078300280758878325044020834779611386152274947923619913434061924799466012464968241841752149347605837446851422758387193047452711823152547287807706356762071292535625583424257050555022770773384943575502492722214721780633464930804629119647804263929208382215725135698951126942425809339317891648057732312337508108678625192236673108137081086321495224902075167407074501675301499843508855577693393714292183175320458093347257927732292014777192864769555972644806736344422879401644026075823282596724854950519061657400708518643700963641207728275203698046474825345917097130283955257103579490120821604369666749639221606805368742141193793767467180765828926287787308015962332954373611668925712496565432444950257971311464578537127729537990566437595938064476866915940973931110995394776046279883643077417967232090418635436628531541730846267803562966038206549121676124822657347259976096974125989964934903675358437901664888192266456828818002360530572863843400578025443189350893575567896400317252281932104363628893322465501765412689801315517498220222557196667622481857949835663380457005480000780698127117324595901923666857519767225043789215512372850748914133845436738867667419321837739077152774896928300013846767464464581495104006371873089830572328843835572167466706987088854907904876315449616015122796971683237733343660054678675100908072949110451093823645189717850785793645318693761871801633820163359958273417656778128809305388956540765490102194643943111469707677830544628952026175182426274019333810864030966707948088588457689633131111517712346507028565345464101388462453995721542119865971027957158411272497913528613032972803984404113445323738211520321397254382797815392451928292240079491221844745342218274772001336396385588072244509927488204123936360436878330900871272151325360780316051390648216410144173867330561190881545165482673406272739260617682154495531529215141978713922050817912218844315768788420428905977645000208465803710602153531630942260494733364877190700286012058989129818398645570435322098661809764953022533782570037138807501489901302346577614903397778728522841489182168828594668592676412417564281669798292788020523410292896761036005658721247635298809453845305523178940154116120091620141967869439852096434054669128633164319034680184927448834537422910772279548900500037331736767717759477243785806103385940728300787377512515163551614523425602970442252404451734301298145641161028760103979460494373007201452297347342400070702427061636976064567204528961800983634349054736373984753658485164013364418514333786598636746074868410960440348015181650730956996137938629651800658885875983994430581155119338767837795886885208592422451360275277905165280058212314654952616472479270470988627049778474958901985022130181269574668676605024929358294477722211346376555551194998716747393787361719447222115683525801976037414064710469623540210519304801426094773010720347171098533818745010573552722337119255108168603764103285350570789962429832698550823915170472717981900133458625786620633065796833843279472377928071226792417420307474897270491505095703922222265419051462753900780621761917234268351727195944423230301952339502812382031418659458361782844985356199042644429700820987539239260555573981439692047282988633897783160765601117651446252667200731921902432938599571559655963897263325780527470000333732259597543813794200892477722368704724536105062566085905491056110047180606594473344364257152424295734600497054837881112896229690168478227591298421787759778566597051208063532117641267792491972136046484907615789836110423550380782785345764661811618058678235618700873330394002002474671178000138468832093293823082853484374000349269933547374731004454028700198707346212986803384583368443272368345718968652324504736172233841141910523960694541245031639429393976080901670211528886596955460602456496435913033005993500061496614416483608430053271128530675063348890200179790258033022712828652097407147754632019433538707149891190317966135575172101535905131984673377895224067165377645725982048140981391254433652331852039666753333798240131188615536439784428341482940155347644979546979917145920285743931958387422822350944281580472446791795688457332415799297250479268074345952412971004559775469638938892719383162102055896060952508550827723226929269644845345577290237268134743159309010598611855801676475197787238639972667023495111869045950582507543625458660529286365660870005418873307145647549920252016855898280180644118123349243601496324883622654142770345357118641278041375719342546524836016297782880328123942056691959470924477707690648434209465581521529263382395122160379630134247901154771600521482731364536880518116473306025972170581565691317698316139334322250695710359416341686190863433446934301376080240450347416310179219953958096329428074834677054939788984990347821871488131803889103712214035265838298656291359994043668093951791147085799609468586951663088305705167202948532879746779711468121879858540822976442907115850388984018941491818151184394633978578210450679517978993659926965134052229260974289482757381131298676995525180136106338059235431301012594816952658083506088459878605098611820249722797969368415430717632751389522573268843988484989879934493989030702622221503046914191591684873523700585318422776759696893284892756266284725723226158762811922477895131732269261987790179692776957585199846175593935021667191072682906741906776614038114093145375757137920827626986800868998254261132312765338921904445857429894296932133995154326687519849611465686035008294610077295240284175942552275809431395071865871083255556829603830013289069545094115799760096192635308651841399043175420122427627117679604855785307640625989784500839933538142589120245846913528959708246096016233824993278832683705050279833489484264902873196940045055448700789069441262667266936737525832127040152434064736083242228768764718905000648217575182835857937898024902805720426276871647436976053703850432704353042233045891459661535209963683798211368583375798359667759936937637703233411281838542457002873784820156583732671197245491382208124086201716869426744502537682082644165744143371073454500654973345696133154406275893730467310947243422970809557833865944364369593256661243277651610638267992138745969184629750427197868517082819533399452524082414025436346150928534375016782353625007731198307158716174782120714420448456838376416013806531551453936600819108050260300502549007128950626924517669124072010826864992011665427460449409832602656936170671763230035197144471529966557107789260127113739755066080219918320164449702083791208035072629181641621916647711434530539845348172012383606054168948898243342405635616735170609152110239503940293219754682251929960629940226313265984377407148585663577518870422626061244426012588552902637964253681011544866209936823798282859745227811041031852245110114072129351717080123786198485776058653461402702073323071287357501668237630985135632935326455032173498110473861891408251077769925974400310015752784495783994477336943058937642236035812640689110792737434367601595676117667760486687679098502251688769786886718450196525501780590783290214441942120381098073394612796628566979092478843957880795971075595575155498108287259735952838538550147544987803957448322732807635174866278903083953339714312327243844334361144847767321600927174203835423097400613618157155567884218193587172100486896285033247628155596420273313173874771654475143213004324608882291269453081402768568576031462554594391622780794809799817524137837412924107684547689456488145540191943935852261204504933369275090601903074717911251252011166021017436215074671970848537290065973285398303739485944050046989534493384853129623412487363209555428098558273612405808713390494299852556877299313663478063305276495452811744623961957942553832108394756635951188530448493665814232317095523096817068333647444997778640218375924419724019554342474565805218814110978848029917899976451377371485054639079364627900822288781060469889071678124175828130466281624467786834696019335198231341089256000367561331801914664825574660251747557422297478810569290024636630493646259042474424845857271113560272922535601017499247052229091894406924719960088639153799127219305396150006679430832925249355205333757649421178269240042089084291561015322239390437502377233263873874150575021910643244070629449349900759599437124700036849969111206558752330494376587260668721578751914743922882031486273697253638344423185657420200060054198688235864759565834580701169384279913991997266802703848267947962812567394634105099035162183303967239790454491061019274635855793150196747740290862075042951407045629052883189760598991406343593368932983740413244758564143337815081005212102723847635643586893258059399641232158801816697219036757378783029391264661694721992238856761718726900676877839726483836251643406173767764989355288187898976746933315113821279046354048617106973371962674160722528035550408445611587402497459431170969568779742312538912016852030712152844224998125888776869865453904621211716254521030633835121550957319414152076320553761168531097454610654778414965349526690970943848596759430480499510247881038346272102001778307638202075613932246179511482890418039946588254545562491334405356245853751875031018742935025808817498647001874008977624930198607882722736857585762940955451902397064680236479300904709465930289961648259373520745291106497588169003555348868001918102229016488783785145413702981647314949236322458891354425263778586529516898128420783778714066208079140999279024207850266768073597991214814272731391185725150445400003088586884358999634114188128483163728395098091921675777778679138842971826449037498784352450504233513904349662545398622111307874708834406507839479253117135642260821509268203552498885803888154381274953757560016565295346207989939389442034502210139543541776394813719117258705052196625914161109351684448242668668998545737823498144894336570320483215528731007661832198325798159018224295688826014321684128797483313632450392724663526023676457398132369300485946259806963345236255565518388456530168435342893841074050983030446390260220764722869086535259026019893612346976915567685786684346514174920697363604267318890042471539667672072561211108693412761648691590579369713502429929980906582454128256832368892366645506315227133241210359018104537490355792122238104659871182743992068560149214745917725441032385016414695800573908113692044037604630009581493199826488574641617260676451424942730267998607968889666486444107553651554289699519122925091720037205465355662760769624606135106525855728215661142238739000090222518598457616754281333023216239630488874570812586287410289002834416130378709692221663324525281098284204231466940197119422785169609366134312444065181946709323964042542519587896885420393035361155008836036638914302274401902709490641827975838972788668430448155438326060232310932731722157304624106234459964191234740813537242404453494668289703993211622775893285906827150140668836083689183294114795280464626400525571284344964551928182509935087241756369899742768131941445070230195692883262998370072715242707782512615806980094158786864668412548226670416404800999779359210536580662205751606843993309333967566642526711971538421565008254917328821106833860045738412735137892231920749799370103535872210726301043895400202864060648895419695782643567303579386434193235094656949744251429848575475521932547785668563038703498074399425905732163086266840528074828637244282750258131685879956462165246712443957128913186982576886546424578753725736508499287440354532888620660951388566084063384254552018349553722028895526722756661959596141335968595164951195763668626687685021176884183279633591248091060504890627216070144430835518731445382589400737956186719914960937887740516893506668929593957142767073400580825244305532405500645730520442128894667948680374941245706463644036700027207480444865679889696196295323312328589730285345391428417331819787162307505429540931665931320159091298121225244994746564424177061088864271923771110560573481350108018903360861127308791413092832323169353511998881544155934203924196215225774259120043633406760620142774686024665116264798769969283827012937357535663037047506159942035411327437729810504338268215862332711988092341037734957618783093091000903692758599210965421326084310408890665015528087640905843125852683576870744660897435911221345453334780548237812184438574367935920837075977318233493997177320999038650997243756021133588828354818234630196020235504508240564135626099833245532089791325838802327365980404469305535574434048590022388267603633019786246727698415137510790880928306054430457556931263230418480100624746967316852468321848247072447041372533568655082938916043217690827328110571816050535164946152633740556237938652912043791951689957760207387214389351994794618912655971842690695084174493804932678993778625108687877734790356558389385861810024186308033014253754484071552412994250596904504178816225472809825505462730096342530842280295064597554378005336757695698130814384213738169633192750051714994038942396339054273725893865139835607836232507675133822823404121004134214412121507524853787820889205897801463647304962873052954863704646793197418179399258732459362685903189120033857101067717012530235841143032028570393412108166437100601679890804412411114023871589432217851627867709856076375949256173020935136628946675750129481940451759576413931523668602144508759134386994878659984773644602847127046095066293937498469583852263724359685110178484672569454961548249039899213396509386552257295635986864630671574860751788153420456908032236033527808238332213765042662943131566573071975920746045112497187622290615120163634762544145916201230902868623832725399294999230195344831885887583723358893284180394634169351362815440600868677813635025697886022309530106131259494933165071018388701533613392204542484745574246890752639253893641102108151728945053092446190671754430523647233197514259029695511381858196416781556989906466337167135638034292170725485866287144559936649309046618135514726388849969934690166576835069870477142903968905480171733797514395893616978846952545919977369321345905886667162158436620311258705251867393656300290382642963642777737447418581611051772679513948812515709003983527875506251816861910677643026667689543012978071833413872231283228408290646771783825927362824184646357356827757889377112946542977155469747217040934358298324308834727327965337702043690786249882970168374885609371735503902298058889153083113993131369971976645044829711895079911559895597832627828545235742141176342563636531780067583990859720246342561196640309508726995180992625545629910021958272325107758162953373330937918519219351145843086633713055132087325408404306585958657566664426744730027172676881209067891893056946127181469770127261696967265079513603311568970509430695749452216300449786857473758593438719229723645696756873516510978966842898671886846754705732884893878597245184617686837282629826465900341891654698094857709137470144271428653597509277150777715242901416653356857853379224368498303606089940737917409058883107014386595851574075967455739137998289772333084766587827977486057765065792942115073712302859390079974725417434303100685695995549431294883766054207018756275518045756519097036212685330494065762883949807961008432034164188681295391853317351131917054526429878701971205511549229590324237923122422181510079202340734108523679592340083914232197088681859100607229711239242367317969462883674167291175634242291600962797650056171025116188398249690869626309203356490279381326621933905844239094609567983291256643240993738434904360934085762603062797815219087663451542966106913942908952847802270286070435461720898876452360260589546349411375586933162688903082468577722024118461696637570580202086529060788619873692868797708053187755199078778718340156281639901871727939498687432579563288641099956334095790662383110760672939123316773057294216453716243946993968695315281088012899870490561109431080132319027593942788479776379445904444704200296601730565536786301009519438441876769054994961916135292752115350201957012269856998205004754016078856986543149253082544048097011081555133780147174291630919567542769111305239581772583236379002480013243160695673536883121021123559436454777242678818737403647692641611547817118995682544481626791138317898834215031950568388636505516391541128618645653103011070100890994820951570138933058967984369815130566890906810965975051078082368353208062410842084286939513796560864176859276091254019873692051408998620943758638472895211757547164443424056130403356271438021499275312395800541625497717361791601284987022690910248346854288810123955971695482309952572253556968712572896200969829319888648600035505112789629535706351605566724027592720884666394707086813851230325456024222394462460252073388606871704332573168052553046254216266007757350387653852546779311418548358049572569020859040135425876746517498943419816235780633997084765530538241909379257299063383160770520241784478285950923091848836769130547926384162945522243217772504153865671224473076900562083436313516309925226980786998625836287687069227313859522847140893869224572734219915245719813276757950779699681816893676563637663722387323075614108341773489984500593932720235017394561659307993350111104507076908349259394640842797575724340815267071600141140847431056225703192533050225162546302643933491817668222046343749266733926257145912678900186314045548624705440160128243900249097652991368336295045242492337306761346300625714996114152202444113210057880802593989386817560071484731685986854807579819497396529085103472002231644240350808955637564812949376098932096962660857577315451681163043600150529835784469145629158834668226910053529266944833608238537067888862257134083777456684438921248507968745343320095974507399626372067573033533424928256166753513967378263896252068217498647412109583427389178189725922946568706925996552640557230349327548362434899242681494437959160965588610505794499736353090304311925767466310602604298063501833673842924547815437353142985157744528202621047528180800691110919751168804832124847838307904949331767481557490916102867280587862418286550196762007553755321728873217962318006516000565704609779972455054078256790478585985986661445794811435860359670377792337586556259783085767510812257575763698207653827730087083978661058296901415887612956176437265323606232784213862895159875857873997908529984073894552707055335645009000472687007827459907207132655013370952978932792027880462888794948948400558015055986936660021918759332116684230003682423600697084760259129850558294454635091699846747678744540219606054086071320842202109640164919825026407784595521431794171539403431677014217163886214455131134877609812789485586316266478253354366295082815834347741463706446549159087066608315703467803266456959457389114762869245909811146502734708053415978908246689375005094206166862498775743714189184567975010687269001719968743221073199174193546109587578466633412675919235752784478246354295458586572641567919236878089142634809814460051489225483746071735104876821493621964715338252788084275307630292582845390256235839332923308468562763015205102613161871392543574946151407361267045597643466190377258835345327492864554438740491970942673803495385799252832487307328001181946142294158618098638379995830006294523258841917203176272673416629470562630565486650451770608434405443836682873911621413692053376971995674565207321532122703819804820159186988150376929511175861247886036123093369689292682202560633797584627509234597618872875030128571661004144958006809441932521461125601969215117650015439360252045288887513393165846135805845723169088684832060590878025872282032740848678959670279457503794876174744771016654075333205424599113094685947649119863240324596162630908545930150429258670474542762037788316232428978803023940108644181644156816634344331969866582999004764088402039829049103779040447712384433281379610843655789012605806652166464483776490307785034636180111266735105745907192141502468843795287311107759433965040940662020390475753825279753708900774064809912345432390942921485967801047482125305695200445861099868965681608253458331551650451197061474266273932954648886848923919195152684496858711489034646146346593257778161792034105475200161951248502787752385410279384565336634377819959675097904902055385161309625502714055529589741382345050035178213079923112164327668730764071565799065112791079471488644513715690747527506864891033504857059355706165504440013831169336284605967451184880361109839489876466148826832527316073677990902126677150965386748818940016834219954397608133835589541482289249985711094956800173823830099898731662875755720541445872482359303800578051583303689644539022706200843560933727388771131269771048176199694785816138287238794823583193013470272263861143581553905879833525143115913898260392264354261906663059793343990256765190301039207546212656238316229518258561910320240090530781299104871001802325611312710545711531904036760819899486120667751796680794297593209293445866877938589097011517146773253579122897282186173898969042151825146428023450753382781332697325709666846977390711729704912415362678980498937800661955113193071115042962975069808774833139177100873083943629970143291592145674455925640467302229972481289526096339193840150534407115855954744239696184179733152355557513756993937385647823331169644747290603064142569753706425636658648494776368552645637631107103473508401922824851783209749066970862937583945477878194110318248819958272767334358363689611933931149480096408498220247684286914742387601185468670776429849028509056178049315406236541144691833418721639047738570045181980276007895370672004836405808404007431605737805143467336303189122419070691080839391645087689886030141256964971112735718831414286940609496360435870921212580760543285611005561449012498698267647659837156992501316351390248864989906514899929203314079133670283518742493850582139589590626599450764362141180001255961083661091512382476111448291398653611822088647958423077932253000028697192426351265311172569040736106465328538320910274778330988568499299379387329649707887567833000667344159418939196440678889538369192424146265659457494941503112534083677794036405323818329759631946162340714416129209338984342213324858064753818128928118543745643874065831299488754339677455505181931806544494547193179402732110758357454641289957693646692292011898683655141056258381662787766649367771533253174631195227647227309986978150758129860200499592157920443894788982266723098408387168173710991847764521202445637529837661315737809339844445608492465836687264436679020150309456029100016513964263990282677745216973615219623584000445182200582723600786776057546236374159262336296472750385794019478151083478799570171272606890193874947420518698276785991790460069861932242086775167043061809030334277822963196239202431115037389116907897273332681448648641125370726198103898324316694909465662264863516124221427737012845007189411667561713439943836068948422808012602735818719155951168396432017405991800531575130160114581721754029954704286755364083718171647917389530885779975733038606979091311898170353938250261639987959506748425787485472056044797894953183466593416850655004955852983481775065033642544621578251466208305883752109164815593455171679884307950894462285977533455589663938900832797334327402053608218334788196437852013916844348265434354905776383092136827637114631494277113453001726668817225256288474013913938641883172497293054699341407196276518029511146852393889280866889395970492389050623400284360354115408760452515660092633522522519942705451179481423237972565214298842136826119089352372965619420700648388551350855463705562982090527294130292137249765623806870503381241244450475880652629918846264469358091225486139788082948788958158527087299035694741038970075861567593960071602279381190332301499977666041895231904939410622913770406843619962876546733233026106209500284293487381760960492684182246366015152221869833434898381276810643271086766564590420060165200573718238931806057348204408388226354281101407578952207044813534545038136335564358653701286391984437127349398291261098485934672527878292177291192637392592976222661360663854181033358339743991275211036202457763503818953975924638734405791107146186219862894816713685809006661889948158240571128186953679708953717741904024980273840057910461557888414193574368438122216212668710673963775040122345943396551118450539585652534370699111406086178908714096168247031135523687653770961563725020287823254127709278364881800907214922102717485004153164644624051977717581187543299448086785616353269105001486476862579501379744836855210307047040027246479113602301013357437385049613271013845431807589777824820235749298927538018799512875799622796657766641498313821158873757517105053305946192960259799824988752150742089339020205436760127820433088392609817296409380992759453424886045865493817043964124353106329241063599995339541699071000008356247504700533538417943734059613008930123886764991873216403695520576574610289263016595288462314681687421873223904220278127895808022615516406372481443609993785541865376623085589715868554074425454788863459794117678994958336205209180093444625557584034232248999147065256964166734404186144140857824543094091142452527584578776155310605924307318593096091231443497334788817126786680919868170872870972289660991449828756066821560413004429278077880003235127820907006068014955749808209988500233545967268531712488073842853426977876343091956462517941482950313420646932977378377602906677107059597849513932612313472817470883785317463271758602216660718793164212255701198649427627635684467535386272366108433961499442457769734123288491691349811512274383471609857446160379271380150923064735533389201377322389209597010415665453068245841060222014717749189061825828607946525426924883334915991605926545423437021289433222525514575573923559186944473470693710556919374918550317514001412621875269615026029013355622252314484160138391501618905610899561517120549288965207010788321986912669737655565353098716504546781127249587995612403031061023265467249593973019655800343130135623911837206083621726523105489643252073191400830376851902140341605384295352285290916567759573285287706753925693018876019348502883815770218976169754901536509895066821995043309691788202085616628464641298714769480010777015963622330379800058439718884903384361877112467924629035127994954461484289681029438453229440651101184106264490458266812816656207784647694553288628553611561296145800937314740918598913406137504903298705490589683353047935962039327754980679654045745591555055775987992162300880398459897097654532296050992334742810863207817652345732773659482214304243400731081150954736055435233474100724329569059822559858566771792769190623912333645948721471862925470896630217712991472189620710341001085612898898020268295985286797116104567666911331920739306456016368469757407126659185926257036093687874583903225825346551095192868882289952407510995268943169324132472414600720475278480747237726115638345351541585103672601141424596158753560512428008621655635828850750444049540029287639485198124133269873601525694196848269646171931465274628171488866308560822897000609506965843515679509893159424539614675642078022272518780979248118615930650034989730991706398712086268501509010423714394075729203220613067447779315773614999435652541554893743360126087892868864100643152818282515407336697734906559113049105420744855252877681451078171018067778417271260709787132942456697768650241703722615347710579741014985962766935201894689873664177986815030086836310366157484136728292829286783082403323799829650739901196747673649002393307311302782196642262176371315056484190841402630681951944982594820928187720472224278253188822348390764772315605275177248000035973079341901454271523997207274924015042585092249597261479355221816460708870723422063660050526195955277102304524342040436544510831369348892316587935378826159786112554269578599755584284863402479404187276894654950449904978681896255479975594926529536756097386775041322680152692635450760215865851318543434130076758189152568070947861281858170088679883124150047261505956881714011132236765248914010293527845373853290029438614078109327911721781850147363822726789129016699979087024159678414080130477135476354525367021156734485313989074548123906556839694021092058932284151350470722930350776334244069605003197005675919237795965538952492034191904633197561857856002651879575416021258188966220326104292602808373710830541635722721152426943144079408641746542053471201407724330263593377390433211630973588597699010295623168371368241445462867223611717805150985309490683809129536720112576145412955032279887140599176575601428264494285015550034695542222235763333019870825024616035604257296131993836370066824674742785590446541766581007508996585971731349261987152101431253318454047848896626126053398271828581217110523550952664467995894181637209070336949599122870564257150776215814117218672247561929286075305586948891661513250239672089651918514176376884054927933460351486310622252427436534984732450377817120961331213067876217038714020672202844805144622581531445791245761028660062715942276061866669265393364782298154055744753386542245893320740999826145263882705849863770754411762157811562924388487705224694435877505032543773663196121603595859087682714509818284801528258068292261977911981212974903537525600122502390206486549451465028995763896250968969966574060021993197483344332454264902853678929525148746011656307218669624745388131173117505478886414541520434578008808227071103007758072750273256660105813708908302779023900722105349772284698628963646310579052004852978525332731292442714346166574065466950772983938747133857838625218903892843049368197028973361634523960895396094610621382205619945508068344740980943816745906625141754755651806165372091247575688336884902735241084440240261001278496380698197455278737344474599534139114077730040230336235751595044281049163158567744102911113181071657953695941559613719448942761861604647296051095390833734284088288145251345682234064511280815524406699097521472993838048424194557507270858209787834794368112071119764583108911930792646832572199823972465480778238273531962553980500539935037745611015840096582783253646396811673836482484072188780339964613874287009255454687758655486161161107005190654269629122923710783674405953808069175884135478516705887674821594280717099489434894714918258243781946724531785154529279462849387221372156613149394235212127711462131846825537972833121866524661175138063556857301640606626073591472166248593483870455182833651128555602977534526649941253553758309286211553543313508314525308124669349935205721891844686388639752418373207794983082134784108040693239406091585431864950014732601337641101775077206203899471532322071938110837162153050468261120290312969398437472948362700193028463838909055085596920339903509069348758125589590741884367955126317455609613008055396759828585259431423251254647897951186856739415546895758985973089812902461959020917780235968173576015605857306358002176016796295225623499273744215465292328232966809688985333374126169650828024052223285015222433440014792232856363003952816666504779262971043898488141669140990528132728340838837093123669821685543479689811024063646527644150297852950840448676541051262537310751898941067549340905400246781479238074453921198338336560986315685364142939939611153558793486953427231961408582037658040905608250353627689475449723033220471617358645781317572410407009561005572432753968367785371144974769902465015465583201956865888205591980180796665384151151028689939917112044743275429546744118828370713790641876728900897192875205892626722499746936817077574039651172641452122255660871296013807056710331665517033767860511557268363263800296536149946320391616098726105574595093513995805693689623156956543865524097923607749881682282643128233264159781748892536488630848206137909371444660446928246240172875032206435234298958406105449996915694610531686325767658130889642940920113356045068767653911330817943314582987944159774987280068305566795900018721947348590412029859502091074545962877252247163660867813686743124755272122795485379994143098722612925770810606605070578482633644680708199489416623910964039254138170635918291776111261244898121636869860996437764825838623932692086168674950156864606938382046534562466140921986909895479191848031431699044393477450473373619689613769740840616017866224631990819651506322930791723414002972976165860047424075154400458560951080517910900027135222430629001733160689756917523486038583878322763521010832571148666929880282371346936626462594806873012042343946306866765265323928441592832773504059238089004906107149515921363517060417949195462343656200803746654666659359069833437832211429883862455369789399940141879483554105643881555070127173906030898743958195469643587823073424941804227948090386012628605188686012092341512211813524249833993615310198127037799777622504593505104652560914494879805438942812610933450737118570731588041853945448729219735728511666883017291447531212010698812138564803874361703594330648559058121092796157521560264454912063193161691893974074785613515905375559377883411185474980844800966122041415908306818597981598618272628942204516506649600946063200219762028025331133433268716012343252408592307416094722741794964914331794564949979899166027223512673531927823334946163696791480952536920464112333053650186177197158183458630380611025797776012932674628678057264306923382325913928407305906957629310604469273342659518684609714446787112088676603352501338160682248739438732057878902704637616235866016561957487574018739514462643819313619735210499951939622951804758869445614054525528700247969056504929128256334985516654127977342609313574722390227600867557282835726264401484990867833519833312519251328180295836124712828355162090131847628211424736850200705685691171278333080301075729277829497483456544176493090176225192330952424254407224666712461361783013884450199793666275755223401286925655963109411851587165216726986393216770341667379319583497421252844710234955143586537264188732776448509601715462255499127340058424573527355668303225006012792548626300731932270586705792673848192674814945335184872751402407885421801505590946313294746069028289562432571116423206625651488701790111673449107471254378348793428787283384236717875670386203300752907728255051332524617513953921099422305906014673483697372649851178537030687064250280811289271993891550184541947012937892761766558942888582392866172505996554720801290134561105405819056218879668847420375708137888574217157775229576473733099455499684298575443750710647141567630564629403148567110382569537390045514936846672465604638851780529129420138768022724645098701548233708078171673117379374178895012351343981263749005893942090056136513245454558542663815376509062757300835569949846953638902122662047614251886200368159819494870972243952094600764857641529863876563842061761720952391159768319439860623097131140888942423593135537530837034764595380091434720811631777700302254723626218968963623189512164383645395382817500451460754582816514383152262232664775067603087316894471659265876207125473614023788509567865123155922489854714550925324199507501152262918845857904438260431665195982130532452238847405072396564493200787313106757887415250121440645421686405032694900412744307649491161126054651474443366200163049740186120757240801956831778646477548142918706402840256651267346818678458280483352106545013029166681217426360852530448742349342218990324053731500269531084969595602786000795740677360129554632116386607056563158599440819076052361473267077018916674075667736664289815831998258637088451457986724186173107034785074380575440128108932415506281366754983237926320999333440910104128121338568869157576052978854925726121604814311915829631410198870094919834692533550191480891309686073864970307541057759119186260243603879739783491632916069201036690999325946361100969249604795289795669251874510840455376776682443229784858689534227672182395424647214548861965156306240710791666773087881757700030609617968344013586737669785867822645428724508105196874638103540096093190084788940853091811130104992839378497513696852839219834382042898223194180965518492561388456565881266568635069734021753897890719643383771977671080589080377591675996815641297426082103515037940363171431903792716189933042660966341197128766286496194552136899054985872725281934517525351113123181523335591118491210289892363816819663681947008855614893333274932939478429758525544847228528826285079159374634044891467588665903792340960237539288314025578238208219796951198888177308498108244106530905284327796194215407071608744962168289623056738846995960633638588529053868297553714034662052790441641731689666191056601673272080451450608397893885293233121429512863203861740624279522020506982854791463861385749846408857759845777435598063716376603486305732622941015836372517783722831336833071229245388719548084431305466076606300239966795604071474631239000223728095362944782506532454543093234476711078318923964428058628588169342172859518632021152940768988589131254830304842046380607323776508391315258766187059699384517598797388116162295926587404248959338847602221145010257250949505760332023408447165269571188264508285434370284675025615765196746304119361757650895690642682173640251255262600091284493562947021982529660701124513606621696856218498979366357650943312725959503969763888384562479365905359522420850178531203480995808458094326789685055895117451428328053655945201651069262915748426856892943158668731016689729424197503295200902430282883246994593891148409251075058690839025757238345767924978240292580016549318175497973139335411472910335631218197540125336028003923565187192000312471679818038433383988046782261817909441672994324410504582139818442197442427194644323041966056702547788293191718160631045804092126675186016820236010265556976217329829041333672897048026356463125283446651715637908789267960073946163133353869640010667998937769265777031179122486511920243714047866860235192847322564501714181854897246607146766420073349571671515045648666942031673458586952686036523457930667268493309244247519690403491130796397248296016765609518321786958484654291475170819280794193152482600558859364433189066013272504497692572771405916313601021973394552991572531799822697405567198531980612464604480061148906816729656896807518404538234587288019062622723344211552240425992711556022570556326360556821413102030534794327109554007831277532101264036266309846713686920825496334715731763237232974588703969055575871474424037879329674577101357737512285612545859310378429997007892274699445879655486145958686679671530812762539546607969674435894742612151006603955366888776061711149842514602391946671470964889825977993887852918857180482662146060434122748534545235342008475052081856876617524705893899913362162189502001717519754000723716744165117968424365122613015329639577651518143070070256042506500304033077684262772701192977909362308536761314748094956418154178345879212792706913081532380497228818833583485943645372432647443429511496315046216865205587885726747000115681307605035134388821634421603284263605910754748046270840398515279953460515355965951348256825834759796347283776558734347473965597665422547994824347474727278587083341031473198779514653967111936575199122969390046942123139778683538801464385070135080100926175246507858745521056800904194936929133708340007231572766377475568441647073304273536044574148565844808670660000892430446623626155971645459535226272140672695016594109929053272869628494607203201283804038803406387440348643591092462656850846989457558019598856824120844010625709627810693976080732516971045748485583363345930149047817962041595062349194615982470640545377691774805064192670049881083371043377297434981777623530838755719720341232313701495879358644056804569297055344283422252111686965641182839258594724432085785651442615733613791604468947868407833443787785210134886335148180968556554089294671976169246197718639523614319229570193977464651935366172692286007012141671331610691099010812939462569010380169194899025769992883722770441611864427346941898898027097048417977259634589436553268073510505776672787195674251831218463940351445669067831575976998668771209190398966524420260080968217891535154954502270014375841640409415987784456638632179839977095978597044326586351315731718007155376061170699543659472323281063955352582134168345878172056853512055077536771011189892588838065782122932024165797900237493249334748208941569388320095508838954579972566131835411570617038681677456258693206031469484286591348963492847434832355512684897663014081418941854497316598731746932919691454396867121634567006352029668791158286429178064017525932880295167127271102359382057015042128294348564988357079271782542329535479161784967504374627765628191536021056315665450886109247921572053394215519295616655203989145384119608394333279268286907326321696366332100953575994994015160721762315352210538296363625832277412889824963881808233902341746858434737153087923510236352956979316013493624842407270310903213721965331419811538054551881854981077390229298715877852220916907450431712376746050277559078531862093444943812555054335535348182385618378155260897265009678289929641933360979286228713631622203433455611752158021645013946460902019269007321966714989589753122194363344751433614196867988677591154204719570909921402842104079043584139217155681853664273416971015353705344692683354468128261034405854169001466381982401915981608141221082728157899591991052318478767023756388923067660379923592397101251805357483296191718543269542900965674266617656826648707431392570552027765726764139129027941732604768569160819842850131236411963969026400868149043814360510371600165057929652038502981586365823148704550217016511255618087502483329167457538973764903292045589389529720870556771068656967885573245730499747917998428828583565013221023067227363050438995237689392729959453544614032685728604958828767200915833367168573702706909591969148723282541226397165015431783197266526777464075911815196044751371287759153216243620552124292013212481543225298189494923922793732583734410110383999329244986404979615070430891751991286889022361358791027659251064892047867076995525801750681465923188802300436337818182830138410955875307495016018577615358656837245710998523041347319520207032697499421786809881819060612185794240911915422060263773315855326716914245337529752425043128208491858989804191373479356263111389725351941542067069630142228774484759761351014406209419701098890961990605210493329636563318854248859367451613950112462191048393989703207288398183605900895017016061734708112292651254447798278623636627448663708597518960090652380226498293433979797319447555415548338335656486083022905507136072207481531107917137101484653134459727290276803236672412252560802800725857743000461771472620783623088087966844245710524335819744554234812828730351386520714320074600138376272687651931171170259252818892345882925658124468554620182405919094306075653121089093173377191606092925171820218625837424090666764068923600487704886581873107943099899531128567647650306580788998917481286017220379311680940881683872528620331563271520845831224933721970211003748530586544211353823245675819682893567939094755956991304878485484227472231552474409393061256174624318333060986414127959332941408500508356852585591707367362401983459955609860090197129446221800604856816247926810928674893898044080771924647928887126246049285380870441833364498266937123168888946217522963485772267075897694182230483012344784527715197308653984033887097361505318631363278612516943540921889398934649617532835008765360922970488249634911715192642114487041128695401498440977472730852102752155777127956342354615390495484428965023877685775803806379140828873021364886293348465531565663075371665775078885329356565884196168192342291772632684188466712032167744503784439587324754487563790719394760410047657625994491742999993993810296690205708288530743440880600650339494834962857672031888351173027292516224224559369182156421564502718082107524475656320301853131581346286413031873512208596456472576110018062644539216418401520766175246888154203645695065642825190836899680480554765577263444219118974119134343111790773302557564554506821095706196660956097331941822633413471652868803840549654303901762696801698193960352676221719728595711808788736971141572780585402134057461847037278624088405362182927058247085686575929054289733523687905346308095418738326831225631558567117181464040720884375627637887342831468835525255116698092774074871067666941461112840110566668959502308944526492288292163230672001166661309258952249275051716471458954712981490251403017664609621732712719154786961554944022873802649881830935245648004311674612129113365497528136510626355983161393363368261216022887082733132797613615807248510189747173855037909945083568659077296652416673026738841670547226331329162872927384766670500609241712048551722198275558903189256829721070671372312943708757086543240157917966104453315805056940193436995195282662991990532100090569772849592172078355046247537170799176733352450813924619004227189616065144777842354636676724801627463888952910632374428973215124968057329066940088661254533133325647781401930791346267249299283408153113749601334847374410598917131897134265501141784961974831404788117033313491129034531292975782762614692100198576779128547794321985492132679202877348502543194901072878719830265904919102590432151735200243208600932653266279964698657672149543530452769540594695774206358644411184913416555497603593442257799226158738302583875448645264260444585014994582125157073629112179614701609200865005543437301838387393822197302362892600364427704443173166961054212053668728153435883274757606165318168574887550669530674521152897187657587669196071119173913957711936579641143110331374482995142732712428627464405307028013511488310690615906380797783606792548416100325576623777237884421773515531672214639371425786386933714730116472588094628541703398046570066663617252156028736810248567294715658183925793277933155895073975847532087570857295972399146896077679003982809819729883474520668075413469181089267010026375043092222478147543500877079462863164656149519010116955605091082341892597288889413293884553685401794861820139981997666581001514547884162902701002009927991859110923005889935083994458676333870724931745548765568442992884910563932703102236643384729980545487681511595273331407257429219972947086365508702754798369127558864836775899776735061670337021790794726904926666717335779380649147164798837772938814663918989124888887554387259567729657450752522129565437717487818278115003125061913855367143625226240923404019195707223233015569862563871689738842786323202896464426005674766308251300728378690397782425411572333712972127983316615271250156958480251377579424331628844277669907593959977335843579545306459738544223330516716504497430486983183551029645873734266611252541245827171761185845664763797082341658955759036592552641957871470303397181720000516705637650101199145177032299439960180697371411554673908205031832053725109537383382196689679948682814924870608693689132675786951503027919675297020343285348104411581844218796253178482826358790181165114630544167554650771235789581402047316193625361767575503692023706319143742545704495741022073876311043187485293381784973713457114976596921364750556633967702544338261020736729196595445905867479551144291193538671514381154403511540723960116960336522685268833651718477610300739381751337175452463679673548847181818190986244977393462880834732235919864495041341115417858795557550890924378618114644606067949387241792052335658591884896600507486130837855939609722405833145906453152453005145956370305530970734149379923238259453270155529089671467045517403433356722939441086438515461258290251214015130679385091031247910044159503137296553408915510623755280489964012649298913197404792456111680696515359288138778290600478019350898245361493609630674533590556861474318314252729341971528719412280708348926192614160696526644504228854648171334707364024969474390230186549418863620738182806024849606885736162589397488990057675643306602099921919576199017492595821304086931072503669314283838517736487043505177634758932541016949116944759426397263677269356518796998824630932484600568579558931588425340349102367592584570296509642506595991451815987431744114248337171896660855652486738706914942122775066515489935546556732810199787233929465541351030774212575032224781303470762414006659829663372549013834176029078321213390909027396464165427508214545345399387313430729143092101924058842269044887121606675609185839702532758218694007136466694707201088327029783650020138477500875941897386142249267266796949005873060477007873172396038287944980996119581980377563212679741078829718871802560772895756517041095756717622929309458069348056052023826270245710824211197943022667809036249261044719421717721320384524201916222287798851509560376536710387074465760967708200174221099804800570019783271257744557984482155569817875210696305980357786578703351648980525742753790782719763607240948905573911036833366449314350546114447764171273092374138793341061280900911846644175180014673115071314143882414646004020150305754520273040461140750298219335281227147698752346929853152513297347373556442524006616770256901640471988179301232248101137749803920460295557057737571615395660845282784882041172902606539816835788687364857998822960046400357385135898314795992857433132637896919232343315792819284851943002350140644799029411145005462654600387295673550135523039132361005518197744670846002940419444081358588982075134755248141936984386511043988421891810642690650619828033439114488749358386734690759320312443542609612095895422329093965367879106883653160633568908279397819593520277868837484882468009780609276904665616525819054739155988485189867321121601318909178069464420078667405184070822300723444455557444480041033487635325360351569655391587725459954641517530011355020637639283911528265582203585800439208653898578565182444501719217068977582028055114434659140915377223647651201386394139474425678026640897186756612848732165830346003439027224392110763847653048267480270049531260588994882371142413018083825323823458310755331739356692192363001504260689953598136533199246437118822600762624786965841280409163231890569639236335666844320250760599322083328080455222812298373587725377153172364578828641455062900373453524115734756528036121000865656018322730684040064218188033878406640311507604663596258240161748757423037220802747689286540331655484174447802402105134759432103909469884360926286117810903059666839633500140859517594376191325519750838400545517767161065561072429953203638482274550661817631168937301476667458910367084634364585960937358742614832330512585794375050515774118084060718628615393055556706311215269462238397359327802348557984894970267861106478316016757426195016948518590714392506262518211606708704798203415942663754445042857890476397554173352223136659790743091533974562164220925446006544458192247857486716240724489701725225560326800309522030918138483324745552250198156899793010770699931604694845754176804388105074776079089769792761191276200114900251277250715630018730956961473248465375780200400625479875721171708478526201395284910114347535845472858341257467765912215765661048213331647682665938648917860474685661522419309883951735824427653563200710926790774954744872799566717847064890877862814588156352857629654212988557733482199680865015482522644720900946090330175729913794464014865412458773495368667341078947601075083901922219422593732264499748844734386044814363285915415606399892729617639714700023406571997902980495854323656054657950549870323469088217691535239851809325014089963795534643621550811991384080125066166030224967680954020911537540914972126186559677083986229630299106729309926947825249730255007270236372511640820034287752947441642906471602386765710317261497618122188258447450637879390056873021255639978993252457833250940806522024079090119268018421891692862061952891755719314923721924691051434173313598124442082580327302237851616289688783400124063572886718241608634854510886262387023919830540937707894437922345388534116074600598849312560614234700688379923806053707029909121767534921298864111163816423190418743354043389486351725309089789690889002827097104970753268101416049968272973870230014704951903184057396817920252207685116445021472361632243202236195969031173653982075622037587090782048319563014211776773351904583827168924398003087335831456396750163209361132257351415237590316393199341352817291331259515923831449411815605723613281264913902993369619920787851867016069298248825097294854945287981664333739215624368266701789329961689385603159414806633727939416983857141564688292223294549064753845944957345122674704230672471342000196404948098765936078561295195839309876373615005484941010824231018671728125272691476442456861165631108236365848146168901510584649264327425550799919416097030250135130625720508474473998923119911107023524085996806237889450117163985839624453179558949338438673483079529455221294993023481420605821452746615101516925793144100034109005583247623024921335731464662456761272468854214004890859673856689765399793872670377577869748263924982764358998195263004679161945497607851673646200488745119335682775288702055374160003421447134625099310637101247971776107192217706645173692085791013337802579291642057101313088144545037487310676893988944011942351116519244256574789100525091774423093230640495630816225465338705630353087625702143586305409525136987582731777549915006568164911793238578838880751238923227070319293663564263740942473811545663712073771369714237197360428999696098101781461756883953146896865916655670401454883849973161100453392032065528534984176970235571254483362633452118028659436836141259788700584323547212410188532103445453164294561542112776957996363200991835797178080797743179526684861895749146032230468963275568977668623749959726597988743892685482796616924042396896927614221763506761374675713501919605059228219172552044893603492520344369259041111551115641452203921313592607454636125881168670073519725856918229444563284420599317594376589349751513896460467640864489576911977537455234074728765752349100095797874065401851501142088158574214754669092184888248212784322499183695991567292308166119162275490654637502786734394135596175171875493510883926794305249839705810611027535429733396991838205474913838926147412777623272610279670971158733983750813295704137189300277128241538777046975346545287210794666147128519008774101342319791098014028789969539160930191121474836625570329864869956330330374308825151576704916877716545376582015932345953476621786407541607299259552697696806020487699385871077209920715782034303909201494406347029579815279520579309462199349803766894735909980039042432540464872329170712045056782924147976619963576970061422735323629110911633970753465818164603621643545202780096439083255098097967344330712923978138124830670142451090070329173564310710329926862429949976396674101487434990943018115093716871538085502981903926377756267657044516456051885526583299691840630457467747285131530056704333141328969833479602573736078753134301846521575736296350986627120769337048848443617556005638043392415315294407145127504617351069189066739952552994284338930909300819607649218399437383369686244473015719892727233803817697190368166869539315944836125258909192628216756923805537349237186537945023263017554142648917259093149398256384098118701749955663506461505457362731269481454749159052418616254390977783842280771773577234682170376785854795853714902855909790676610587812677787364715738294351816409694386840242726662865280570197787205467841868825012298625703699460114677400513596549303903827574189983211284030343256785037990339804555750082603818948867403689379814983242749151406954509421782845137958935716237973003376627054046244015467050999252225886529643241066751372842066881349585435166410441797552038585590733168686046201034803718556252125418649571654119141400492702763088019389573112126770252294740614984847379230655906618474862441852932081470695095829942751221598729405396159662961068506454531029994273723229822583407240650554178642289941499524941571795032339011764566196730305442170992893391036924581747574442974278401576697284147822094610654550286244134747395533514975669579270543628486363747344296282379555160549833256600165051307831292624800714468934241894573228947752674289550565865815135365848825549244890709608939628883800732432003179631955776258557425623667652062369631752642339417783086394820006625747166058400883809201624520556931662036335011603384489050698551402605148350752594420404819824755575825913108550493913233503287540809304347982168774960626072787342029086599038351909445112632936487981506169899925841878997244272825071903875074571401583672938619980305738226743949084296648275616412707604796738622258800297055131254481104939327093938072884376962247865319639002471648219782387763790820289052234103831994456272960367108434656464805415888912452048737946515521857549658659036599616477276875892840576890725022653944045014502301476181045012902152508807362709478390809710539604302909124773404162488291944991469052505902695223253700439625439457537172615540707548957655283019131168007200946317982431942771399481146351833046925658883098896039518696116953499153139184996760088055124344340085567595686593223714526681057551322015522186371054627402750182832995713066913491847222523452847428510170047110909149519738381238291424019492168830556543624891349985396143762722523661942216183018318256254422781012860901461445799403051774364925804782535062152417873799120798236604968825086469413036851151039018167684514963203049708775720588285633238778163045830433271511865304966110050227545483815870953581877059093543281339928602252700183366878508953598089189769892641000269119608000795326388341090719833730757616437487986116464569335147624404321666197653708938161849704772353034336935612704743281961214062924005895246030769604921304979854494611854943420541457112234023465360579417852341094140707364757578283759923864713361483344558304355481587732965665699310159455552360407940100213588672166540705444993815423620818598955195064645307273438989812169934264739206009107555592647138492263112251674636131630138377845378190996375870606611015550430821436751759294981936143524319239618103863402340306291918783928467928019591536339719430483258958680205682282317131161154845136953956747057461491025671459640402513296518947340460578973450911471222521256088775962384544269540365864341505096567671371729101794065847134646525059217927893527198086017500979191465473515870700959741234702912530144609368706574512262919578678430406908317329924049149202998841637959122013666741647225548871498677637235579857021656608289864354293857908912106610574966844847913129759584911712322559059253185937520434019937710223485650266608803448886826250670534890499287304309113752797481829693388539934795180471509281036285586201636834331040070960882104196132400677323329909711862955836384601096419263671229904604874938287283448202558878572034778006658803090091289849497376462793424533937530815482010437942216850004366845991994561942679662169010137437739811657537343477800888246415448288557708234126656915033291188399597693684541765218655987890294526355546561725761212350286452621512220422264941172872569719318400752272064703259343549955859629466909625360075295111728872324127738805169254352073313597032064368201730109589344919102923572264084266483147853433324748939690288627829505321482983195470791603208264508178689638336165114211907468638517514492117321033574474230688580369564178288694846296090579280646017568730186184152735643115839838068984749970048759861823801818258152134403875023750749099722279650164982889362661765589913174530538738083493220499200586245036760607225203483825132185805973057098865353713547816718118462853393700694291791246488161083455450874427432312854831439286098583018202768139331200968814513784693715834433090500334826220646738729008104271835258480756832426351768276712239424747894253522855758395225417219639147072640796450802280158657412302753602077799577505357958452087589611333223220729096349907553258026509144983546541953650582942190451034113782140285957428648806908059204035196613088064835123587754383414124101387742275921516621678425815151843306134768648572561319064554532647986634553017325307261253719929406240151051246380798430102568157556714546302164430156803378205947265540891570949115088518475764785232213225450677122067696830173183599231835347640660363059160269769943379981759072636699016789180927405747984922686359392609802457740294170063326418073585013094635833143927096340158622624478662673833453003382158406961455217836383632808395048241528194335346959356192323705004965827529647295837714603678402014619685051324601798133104673779774382992478130702083172436416310721567717053350363589380081050622652230699532268414134228186624879364019855619208263499524128651552349086866886834876308028164256879289931802126286796806105322511943334455640255997403574794416086599815180840984541886370901025403154053342207374833824423592988203475784763188514219152885884952678009620245785052143522952026264840575356444775860640997291521351901555664786222968843453743408704405919678620110586942066614601561242946764167677569261777381892116101073584879115756005660429464324692172347573486005022466846465086563311448834642128782014933184801684970228895559106445490544769411539479192960596550690627301719871184117816726655006064409662615393226083132671886087396384317718564152455057975309404535685572839321633633151560463118683996228283211149892270412903307516394450072724343032007563640360121858829183019035300197018166713184438724433835647255972158168036654412581764969136793591770553554590411689816068776306433471009299039420132778933024592130620599866385425050649268222178139486445297060461962419272359428624020868220077404510131778511571090784985065745639501850359305728708288296597382871692596641518158044592802452592531850835403697669368713610066396145058081662437740340778620646680709252196945223777423321619729954525008960246139429383147109824292789151352180184131189628659057427574209507365778001810149570915243025310866845965597468590463690809435351850517192112049822915855606396522273505060462907900628598143862545493087910588862260583207046928915052359171897727086733521403790137273760554882515358053251929503197948384292016803229816393771341777253958095062917576851914133249810589790632196811382831886914923917870071568217206048335294866222922625543945471254762195428498297413389726984613885217558050837161538353044062116268528354988146013343318777468447007437483513860610995649915039089788784025835969325513092672341145920802697521176100547860001425843995060868336344315684016662312786447397223464684411584695403715922142959085176894924187985779302128429378181503672207503718646201120843844047489470020418227336539680873369763900634579933027520359031345551511451777912417807947512518358805784440979941511022962348721725214226456110818994937408662800914535862837882057969970310284240452915852476421291017042615971337192621423895495269278749998273236622307785798179194656855566657671425034545276768941190571161511264236826591059647352753591511398902238181444919439919932470170981586052133461728264549326436997664112101084025691393026241530685735328221800977401285105347281104525437481362614182195449664134253566966305901982702517123676251429727987904912757560773162405024683932135498695063401361646831089463555993704353914985028815298451837653724034312741277441534464425557515699270217447323461309518633060126296530839961134912173846363107470522656118563939461215818192435373804466327636909196251709779482143709760210765059679421618452429132288594493745764528780557716630302440330160908903358039479020916673810063320504494959776509481994868070025005880235885200876038858035207258411691997528912271021381975093543788605019966208284541545547021428052191178089829689703010230515712363421398445345049195453633331199804958731555203199439297633781012530908415075172109577591196318313298280446941767538617555485532496792857331607226428648923324304870909140937827304066980052692484896319034929897226068359790210581380520115911287363515111123124951410282049136087730173864819415942389567071564853808569504893633192087302074971775552211927849410640658614615040783024766166930757708758715617626771719236780373891422667312564387451722009716300308955902554220384968809597971417433182645495370425735938794503169487585331552579663516371912238600630993698149153203610308599908185574221177494289941763938834030690334372079297195686990997446607986482186364857572310061317527384232049566497689488273065521759817959080065408191891721784867529453257411227992730526904575099885540883713024862364576614093244531006439790722094406168230614315306926533259663506088839002061793863886634961235726998113907754984557541446293905539932419535095961932774376465448522566042305033903116879312351482571686837182581702332233093473101829255002831327868069838713996576207459079893303187544640762286129251713461419905474464931242144113154838382220256323139932414659083744734505875032945229184155868986541137249909856242125916383048122589967408318167645369771228584822803156383527882778004981945130169173011744938494310287620222068268931160092320110879444240196034599968903352343021699785906847414060924340313421245646143493535745523169333614134015825710281922270742682991515243633206741794120105380106575529128188448016517444987391660722604079498018199830818362039936787609877240496588874035357474361397302612863406263875626047516977117117627373282116952701503119867703370816056944797409166910134758217937236601465757138059172258684358108905067458705436892177461950194380490567121569074219654187291900501555186220515800288070099718628717442648995080333043661787256745183016907839320363138372753780461965654200175789016394062511385915650112896032946032105599216720978034035962473879948054424840626201150854473834174192215498841012925382557503517013758486341773136610224528569207811979608512512060531135183014999617903866131269942161020469887199382255499058736516929267135910570431717862178537654297529777431777671211078937292069134029107688846689030217405370135800013143541367956455595707317606447908886876130882133709545291454967430583451216082468615466835927750764139549461186432681295296531388604350879566138210452790937270417605244428513695026917467578992505580726442563524226404927895986081608200105093714455137467851256952810807671339612039858280900939237003745218902825461975755615329992638640870750228228097900867996484418385305445794462604360785877435517120968581886597181113921818944859642991068278716784237761645670195299607954585042843919437663324703770475720397937421532199181081090745757598300243285359104194648812206052143999717666712747794422790095391833726506932969433049646349813427537026925181522822545241070395499469128641474494219680721383589843722328449665793852453977289865013319538853314057704271001255665985800173908463339323509610440288367399361538052702903146841682081966528014200310736886673298736568177235831584659242139812685943522392918193840567123064751275701696132853785794263251560370849332578318179972475578236048320193214894221862487984396688180574345899044651502070759369320981157265343523070019886673986632643419650016040187950882305715879999504010310146788942378627284102746396277699841293655634412598546443998380457059254543567374236354594486240718753282960888485466087725275381026146594497983929642674790854728977721742617835397528435051151619202928342836908416891633782999160978752904576629623821065583991252707882985394898399460982637864954011275348375932605683621058090574047810554692471885910177545767212457107275295751511700370470326970402083643431598582323915169202709583864430993539977133081242035352335583674111873380165206103125983290895017850735590191635915532708155386828944368861552352531195911028486941420598795467454934840670505527880538317094592299708829361098955708183301607841060910457314224211108106804787026481466841427621929421956665754093914251803855429334099493467228941269530319260765033950620261227895822550049442789661183867252214394761491528730143654580995195658686188720271987375991523900192360777998744531898863439264497094119332941870373685945365875218089761388878067842920336730491232892228014191283408917090587932407989949098887740401947454557123036556768503945929030061238483625243794172974614558338550750305093265579753558475115580634611532253826436338052604317552185221881129344237740627961821429225198999039120065104451947968315387015914432870277069219278258982369125219826090575202264670322829372820542003309821542071135682725346518749000162907265674213265542103571278964284362115405112947975804673046832605585827443047977479072883588998292353759748724958104513838534085157104100666287640464070354299636114908859849286889455920600224624739473415214641973526453618239905824585731986574653862580463573237813243135991901273108812950482737504009522799028232775716443710174093908347988327457378823171030483459540619890371281349213695985963364402558750247442086772848105975526525341024909852063277424683513900097332464733235190887159867696993044062878892044970206975994086873675503049448344967446416516012594812815244097554309824389864802871371496751712186061977767172329420274103729771079482394591507680095012401030535228187820979520383923008795264837207785274347801841629989833324946678535858486250449551771258900330918457435642791074184278280331897171608164353264984403674559407714900805594703871555708822931655157133850892633132667523641320209159583667077527979481708206767069812921147834652687998769375424822215297414801870833111206732320660360493738055579216438781929927090822427822544186407624487903545709565251640393110348764110659979379217539986695297482621944098117437529701573085053485803597034526682882194382530427991164549138881833940956921045651536522479152592536151872011654170136449130772767241601202396341682694421780261294216952422913472076547051294231470126839773404238770221685836412615570099257605897880376099420235545793592204457937342863292406795230141619856845849719685625195351594990076515977993220471653193165683671225219618368736532611323036333241977332560441134499219611088611277356421473745539214252565063993282352519709506178648916198752206200817111119184162970174216781424798099566213307733152685464455639022468630877725877230368730580287874656346418707605017610303508494813369083994660375009002866484050864088286738609554132847261559648109220500447804383729068482143601297276418962613202072332189097876599632168879379720151648745055704287627946990738933238644275793166131980550849824275665791776350628616504574075631562401504221782957259908480787334224631273366398503957587505493382896109737629862566828719425657350084505582230770151010118626694254662314007925807881424826450120889891678050580365186750816823050980979414904457308240536778941718407030471427037227084089285170130320485801307945085441430226933614941292165360491650291532547941906070256365746185336803574683950580036159606053959223602583408678994159726065149895215457148076418724863259500639805579882114054149216008492499165844443871474959484747554370271167544773635239311337139182401000000226052210852557738409018278410734009285862398600325662836965022272184044912997376022274329796934175354007081660480485893452509660803495573716198452475605894130487919117237375617800021968264105611837561542824115264439781707564133515456145760149655006829538865414702016409050347358635739036600218256469128871939868664993514766773999137084528926048726452328846529162560362682797479980931022634420844561789026301437228386226055082633558169611630948753907905669469234136442434833710954907824690338791028930045912763000130685989067645447046822240544531636953765130302426284123128823365198521132529845582097739656075066154291612075832213887467444380554971533220523818264187610029705944853609252036099846654978578947724163091593730210630280817964632546187406520270094984295638110993145484055475934778711207281620561215142486452006249227850327741260049209704217315916804672745627671873499419106033344404123976158945623731693196726582272392360960124379009698216257893031824895488564591848027921196222444490940244166496739697355203772103432775499916788354146039593479722019383037110111470970361699184438086011702965169542276720418885557129367185582675143995537961779456975360396060985518715297718806620844182136418896441181782798915346305977473301152183890006389205628190011397915524750228890758671799181442560003180158444095424331198327394195468597739688224312910259599586851407125645113841231977139594985319165247340753408295759173341420195706577668696356706858188224683957862800790170701465852296910187785770855736605847147247205657828926290608938689831162165834772198804834375635422296603219962621188241867576068885446623378193972418325497346712041958845243728828784164916098251574043956801877055371338092072401793925566495942479556345711812616121216025543539626001335012029471815297364505817221170789819044397050820783402106040577339908680403143000304191337332842080293369558003366251668963937414847294701811922171623296480987746688827907301740056382206034081235076581984225068406519863512809052567662566473042588059318461802801771835241419257872196360981039712190264145097182440056639714719524229020061402217445332521174348670122936491448082508057932570202685811842847019730676666329655231080032938885244420087451473099025065771841700011767836863885952404069857884233590729939527124254311207585022192214181764527828001158488680740974825428125090663586232457119172424975325196180901089251704059418331063969652479767797175280732740252807939317388455285163711380310386151021066556048039944601901716831022111540274036162500055399955157132336429439492242791026354541456833109889516800860518557697071911867939437739440439058300943009708948498446510055886980451625953078772160643304431250868041589118229086979923547129849120830760642263394044697984869802394624604173173914156732823095687265589954563863745522067350460219814114359831060134671098610865375505960579532593630145973565693518743031926087954968599404173439865520744472375039770713178082803781923943563252350811637983604661953490940428180487240718892222031740357202974318809477907178822825205179309940841479066173572135088885768038856015420283590773608916127517371024790255126764147475249138539824773356081687423318553632729025361225345344607738909024037774117116491185320800647455693458700781572093141778008950803042768045904297913365625388707745325434313225100307459428823803365245465387266434455506212168355378238525608701346108086790168654034037120503488149977835523656452715487529965553240017919535217271009754187381026728337030550606564575788102946473593917640029644874628889183688751383771107878387073068264133941560686851193306482897516027700099667962242476808907289913021203746518632714438187397878995635523223182043586818889444435439149714981794561032538984003440624081884215476031613553281416234846414566925666990390194998090769560802075922321286126870862417113358012996020338166053471623040169176623254113826088394727997587630309527080130056235197881446882283202145796827525071546273765091841852657607400889273998958540346220440522098550345351792745410777974295501464055835534768477180601258832562383890488506200943463030432599072490947609562831519827707930772152569522378386518579688576408751358025175614906513843686654488111611638191840158712795238304637682558517116289273935350174593485030373444738686519763960257815627893476696285440726408308859057291964783321466013736458635907465016415862753010717618667701887815162723244221104254836377823693863150978288809987979412328724084691136744254575088938112382092969026427975050924825002773246768049023229800235686760638018661281683250801875857741990221063105632454442995442569612158352052449083787044352291650673732133138042424410725817035497848991917207745175273571807496880447773711017412912365607103107723062733646835900148779325439535114621157593134012997825610258636442919381938682326594989718448962541912106594401244416879505579157719073270073524439801508092282594733014432052161395959470642509778123750457209673026969836168340152571390029220361045585469874135520844745418701039959619684243298767224815569514793037981449755332619651758305966451808193640690439414374092067705376358970410756138565016242404541659077870166432494134314150141974206365782273749181399196024237684170777489222720584545698489479836377188280595832218997062845245967911010220148993710548476024771855305067281987731974135836069592483254579866269465769768300958285676289624426409165082476509522745762029178628114867144570414611901177360633258692654226559845338034767119516209822221787618011451149448256570592543533058378421145556222428583975430643736930635230555051300845027933474688643517645036247168689262863490551043291057385984885976434864168228102756862882855095616972763807291118251521881824052017982566390404715004331093764601772852071519736930004248602631954497920813336205442614449101299570340632065372142834463173670377072618610334504764973612216719961807915392107821894607989660955595031840093148859332496025440309889824014800148379005763139525447631858958187244601846799237157907832649725603170379405277484318162243911359577472421355058297338991379950526296431933308845573318139391966212276642216793859906067075413924117906345492983116403317378922567608497536571020589671406296808397090518056620613436926499692427213255791870872195106606170220991198736377754389821735259047372387240799970192318322547980722314654657210538591772532778347853349833475395985113908681003707290354645216063828335101132967247406061352675739655385135194817303114359782934364533254482205385783831214333685137828625480676068857494224648231430865123072036961128008342651373885609635181599802289684213234822546911298239208200598133517039924846371878085649951627355431769285842249072255519706684043466805515202521969864115473197055482356360616603205133645434886803636154460627125330118217471075418148601243269172335796798754616218629293691790472108160996996612231028750909777137073791321426969693529311467088162774444270038767583070445930241759189546144048812469163389341668018444468556870077754595645760200539071337765651939620785751067279710245496818978671112176353821544285329958266506905710733692254954143667584844855778554061247072541906418779866176039496470311364979389790294118891807032396760097823905889202741347723713208961579746872077257992355339222639839617757500561372800605654646608591262337972915017789936540299880204647692940158230405832449401106726689252357921837206725132887286142212857220415736112167454721123137389875355895181104241618235218048061820796636391766329888529825769204605609429730802970591171327798820455226597537381981642607027156646564663202517277743373951602072808131159066401620758857631181552759740563225669726197557832239551403472098169041655685954815734207741609944631215575093209000527834310453183772557017721969892900592334704999040433101384212684541871404239692307965812269281700041466850338964296418340721560722928703076999947960645605288318499086122113159463594067719707136713691916969337188099584749000220640120715642310475830249204316548723293000399425972272821980681372305145223407607395090402129919297185792421258024792875501286987998804642142994983792867960821265175381795273404559629214253997918509088050052982021729063797847753522635937928739234094160454244555231336742511996293688479379217037744984090389521170244231985810114006718794832807723382262313484744275496652997804310285811363183401578508791077258914911362630040079535552762557234803334598910883526311519127130438901198256875118535696229421888097638471270075410402583491478032394287990031602133744271557920766990003421677499664713804273449606075929592312308784472606818134953582649530128773702513856908878840748839152057612461611834944663641193444121953659930951504073154619611083547386936185376086880995485978135910896783890564422607422891293058632645409111477470582424490310924439492923864804319658876695061400162989556093004799287238651584354106579988021440294821759844204459790546899128812764241502273258162757014782675069237301472949391380901959129769394982538310112946998714283273640740367990963984174556080673853142296778996623750744421683512795542980360653871704021088248734993536280388933039542529532376849838080111786865926196389141272150787327445133752530307452179026327292074742571337903517255880001371937675614263097226344351946832497878999894837487002621823157061071451242670961611420984274489582163252104878749485743399672835669300180098152459231531736284821961074323204575463197134735107889324702721689391418420598326522549910266987699388744435979309126452919518077594897580963454303419470486326890124916042507426329576554470912172717557060305784458356255828516230136620685413541283551038640595190674961080052752882270200932262674340658105350328220411518607616899972817940913481851887000701081476551418380742436034927958936986159452362877705695806762702160829457114672704633371074144816136591436329731822084625664236958956394231877725422267583917869313125016526015150546716038197436932845719998059512965629511821548216543874031528450244679104427276334012072744557690379648811194961739255063700254617900071249563989766273243692667030788797835464646803388013473724676236549013333121561478390354007014357015628808107287864840261311765929345337525400526093599182599922303412809931108357469000879347841357481031186601130349591338761239280541554230386609467451647913429905816414720388420124784113209255562784452621134050201178305157752133498462038833797699499839446859675501041474121763568237817915593861462899044533069204119790814064814180473947611036486599452042481796275526939942225724291440735801775173352967382955656575828623048143150454243386147337063637239398231558166427570566116574493312778462739861707326624978310623758760883553241966536664456011013241303734482767328553973195980851410072480082248637185457686237667365391597864338440455867893858284953041338732456498062552772140778392693052790448514691234520422562579079371690122678026059799068120472173498233945476972101104850267229949678052379285380516353265375328182688898675868320166889357883779979751676239447739462286572043800180260715060791626125169813543663710684761505119535162402233305885619854927410296612742523723537427790626973341966760134406165414282129152272200730713089287835885003060618107177293041000260027548140224729528068064947620029278816195959467570652443689294995486898448927621632646052117111416634852374417718743657062191409919172903119748389993081828294541260728359404202099244852357988610793178658328601296943727929886470126605840829505643002179278244577520111256867453944897754676096211715082615702391050275286692891573371477056610592312593766486932162001434204267122749090578948033003003400719859121448036406378938790413319860269035926332261187535325878928811829654167084977553687838626113969035363467498642021600971902836620720914216102055409886291338156078238880113141184674039899463621629545326762232413013450214870004782151475935257163226879106627652858688384963724397845650427941345378822728122048852804567899536099315025199025406754533771549699506284271783037014887604773364568960996077983784271243855734027167713991195214502496169759941622230457150870090040906819056502089243129004037817813785391755639210015908304801719837573062280738188513434224971460601937641302157783561281507810486243400349939474348720589792284223801977591903160568383310736034859292773466659401447747117521717538450318199044402637527238978220600728647114333016198400403221699163721813748744570395052695814479545681491639628664051160552778639520709111498343010823346868595030468170128539826946368361327388082716552244021795719217664706237836218909980340842865241046692443320726244835190526799416703849637116099761552276264966988701189704704915893128642426600593271274296571252839345856378055460651727324057007719201266737442319022664159701184122990063175440574709014838132620263180569850707519024356048989148263111832557659790008236331543090747643894479715952954501039012448402605190367011095249634016432388001715845595464437998707012564299295184667372010809303191976491961371988072919511254160915719888637024564948251478960487487138054381337921732907945873929700936260191684646155970768670274163679356219332532673019353180789016367813561455931275666240331868116634800353928834966469023469793095578758749319091221806738691637684777248451281406692199852367192395230053799257506797514151502647774541608341929472202482926561453000131164893727225258589468022832004047600363709588434760345460479294326001097595413736191147873255985608096770048454708428009592983122647889783281608580750842165433482455443455339647959871308579826138633858716677817570398884229187450165772724276823894173864519517902634464639412617361188435150041985665803643498146613447417228651944306067110224075418594162820826401072576621886104978952576792538633745718350472611474683102299077154387670464560713083304775380150331512724021499322033987659663378006870280758030325784957540885148217404246696356016252519069067054013768352965964392085372219638984811311933208290348077355045985017664159119551124819361474189938756284749952281873855275606703989628409751848573702102726424137858886889499051947326696069086688389548955138453347433347351105451345890275538331494243549420243274799317086007209387983339521117883601682832562430810222595804236901098262814535916316765820872984895158852369109999050594955092763544396471036084824080887826132180806939791745783342246803977891644443710503642922642517511669496239518952938788361476295108918528508858489093918284205482197377193682867568618627427713944028421538834845620884928670847547464990827557537190546854899432682193520098540033439501755605524174208372703278550278629167673694366777426479741577258340894817417308070918637886632234022437289172229130235845557803972894794322916144250369814098525863651286255405952463044952377943487578410244109645619246375816319536747176247661322126323641879614887771818570717166243855678632117362491134759307395687275805465211593133625705147268873678755538695134678891319242451614930607718095669413940235211141890563198209119747773198661203075349597637020365674326006480365958494199858189506797873914006456307235960351328892292594513125826533417097190721708515230664938288929020819340087898042029116761192361674247255543834947459398002417873119800098303570338029851054370178475130981862274536203650356219837256420439147027899534638194913870927067403015753355707757868859372726377893474927766265112951021269342848663140741495640026414709059773522826846360660051115619688438891112422223590246063874471340636480148426346512496970770685200422295822332685636751781332357169208617891174626298202890768423294188955045777555930111921280969129281790630880538259582043959354295827476588525797205397763371377405819607017493470171537039616625559794915788759160681596980648015630452101788565005620395140609435467292957233556017893304160035241510482291053507844946610959858199687206221134910340614358045726541095595683757185516248900652617738963599007941849787346961334326923220381897770334939125234823396073104816348950359634337644808745288290035904079577039771317417953465368220857830704246764221538743278437618174904967722188998060498239414992739979847907740973446934356398283063642360305994200491669670186198089294975413899255856547147909561657124528051111701964831270872742912536270484391067311050984044502736179457315846079354891326470864950131269763317280817056492283091057846489284341846952480758003573038203877757532778517918008979168215846160489614452749948786337445949260993362263205529592377561389000468698395609520722679764988104270253079984719725187761618066102369793961045101751817912654441832102031176221040439459607528725941733716932222588337249441871115601133367426113421487059440154685168565022853477939841645655238874301096555185082955343662004748323818588043583285816696474498335384505751244704348205717763469461080909196482463118035727019972398644139552240293201598750258684557392038619223546283893078294543730352611896966519569121654259706344342507634107657290462150083993654385012659430292777117678366812291698715976809760633338731402319214697015604063625593988781272120020909649574507456151243443134170946116695443592007013727047082654534183831420328555877515634327118499016896984362642839239161910009880064625141563334378690347713807572722753905816863098613126989945799865009254248458974464766134436552340654775691696532112342442313348812476829849330944059166765580381390344680418981877542166983575791704110733265846954039668658248613658644945573010640058394465087188151745183874458617289631560623430722469368986439243964287007261469017124864906747715051932366580988388003300193855200452758923666601825844019004996112967913199815783990067032883902948285429586157164517479287718253284808708409636613680841965685912883857327671049484873159689517253371350028033657218248025504152080574171654348900051734311416875980932812251089370778143305806439725042927175739063339297393059918264375661286738666196639531601788505681425171123423767314485975408172168239773280189968751568942690545535978237383482555238429948241263387332489468248339164224592748633759129395400636647373096711283603991057859979414827144909307997781721114284761948860934409629322685684494230788763129890749271003045095526327246596689111807472092115076467343981463661203381089687591599362312455215325302772984994405059754187201811888216511062434212067106134573595313006400058907485703348976081469662800306284105012215823546908697413007183464819184163671742779733582113542023499900093297907711651790344413531202704383845096481067192785392347457441444056513729983085780810992967081471700755715074489601611789358909937302352749250580704251961367290875011497808269404700170186930194316091190204857219303428964435049648471581979174881989534206072173686213292907948204320242230925734054247206089293661240806408405862955328044382777088605781849408653216238684488991571547590718979926713708965966279031890969251149679806979874446292467599576523085999152734173209434016411459911571377985066708616221972488143710045011601751958604713307078345109402932022603443110159950762392109887132954551924834562183551036861188418912104016118539159344474409024055659279915239825992736186160306084690355902173809586257685896737383881281267576898423187948228745545327417931723984501423293938832954125241761253785892451705295181447053256812514283574874159249263861132528573232745042996053165519734027042297661938459294583624380642469347861194841694641473989257089333194297366060648592035219078584426879842415698323213586917575803654093403022457596268521237960628909868832696224924411712877763823498939734114236808655438994456563661672234753360376955385295981463770038674500307975702121669147361826792168090929186979756528466715396788284281339041200716932298417669144575459271204163112472314206678166141799738967165829064190262980521899187019387493321227345817746505034743526320836906814760938651437166654542998986945284358014954194087109370833734933186394121644692126046630069528617991476978094772846653509455826433160479483064400424690092710315131973398195152655082231631149373149942137103763177252054158848988198892904603556074718640611309759543816584443804102907962201890954734062682793537613645772949539744477872918976431069191377527834856716390165950475991406801015160238744314556244184719688262031360225844286424290908310634356320557368775428109102763474550400302595371168867126506601069906116248889023691723209339514268884604373958940971017618260551037989774967394684052309622434555592745065971000845773694355460258646221849876840909387089530179135087591339454309485860932410456480031509310087529275470904320805920097060591556585714985416864455671342939660463063488346049275528996321673568235763893435530937268253412073346526695080714647316644927398085981449997461831553733739822271913140087545666273182635524883609439544517778194578775233718878621125159350637070963888436548160409834686291853299243234928795369607623570014475756354307280482086047660788533501239933358652641197351994951885911729608405390241474616751435917977463769767789639449208031332610484450711438532468721489674594107413088468187270998044253820840579299922749500446471039312497339428012863150177795240014350307794739603824259551187251445931410800513004061682092240034556056926870640010054872976191449665172273185785849155338074592278906811369599889634695243950822104231994738145603652989300402721666241960324397237275691615058526941234027812899292668458455832495164008361210237123906150717106241079897997534918645430044317327483922206879737655425307753877066291546290542399178095575491444056059764623243193645578988279640815759669381522983477964297265188899087704246600046399059393777072786064262745154586628314256564307462586984482841956129150155048136145492245586538030885028943894475655348752364435095765776963969554453840089577666183200117659468139853253404679421878207078946784229552368517358320224089546625494608418211437073034356835183953170836621008675644550072689201186708240382451492919669971151713817648552731224130356465929063822411538856578522046632245710023586720987840122996543411310122262427957136994013314573051945184155865138538130327941515362561146129873094854464753853616402455904005240595002917434906249275575279961306286684712452004354409630681546511607909123267049873626714151836641866800366972509946666486244426890563049822374834783860080351304012071713059374454666229912305205442677697547312395068242492637980979017910886783060773990307685256312681592678753477815065771746196889424202091237509873585746334742122205749957221891865651381314471500268595994657762363031411496943662474267324772297418783309396908169346642969720717677671175439081653619711151691193361968893883221503137229313500235925395695950929919514367647228375949595273221472406501237357051437921734807435111963083744329287712704248100204070769967598637046260699709590032081460624203806727619373040077695004986907823090765950380446204076180757096884412547627193950855824316384599143539990191368119155608038609175051183419894933650210067175006110452445138196151033622758636935544782496966239404244484225823902494975703182333260339160276232561455113703829024966070472778828668422915464241371815614996774990744353042911787044456286731433505069654264573826639513482511840308505639982206950934404764454518297072116804710216187165197846362096477427259012739969034924988887260781524554701838825857971914550375398214139734687436426036635867275022904202617893306788367277557232057460892942311592265897646553639167645209623576176938869807093274256606993412059689759910798904537377764147918472705458770092375129447027837129377867793363632120217438642815627956430393859207773933212794895058565741836884622898801594057999450108247200336869533237101590272948115620254792442102908447859976078314724727041096200237817694198126921606846691839955033143037445165964204738795679022259363710242038828784078918564697827982085720246343230957506676596008481752485463262902858916520086527702333965610860756913261817637545138348553338673399090579391553941909856535380845045048227455110616231718500057016475441977954554039933042799453461904130459375056621411936544743367243455672139095693746255724018858346538971586716648960097774271417447176105052938229699996398181824162208704690196228062823510513832526622683140478109310902030478963601684488718389549349815197254722953253429838904875656600425133920266373377354060113228141107353395308678250492123868202225357798602136589482946494524989336698766097843977760924516618509971639100319165931852814437681844526727820939536727176358757306999601892124363729902504074702092968290478276519105680735807885044109175249770884237513936720617646224133980862959552507968454646506904707127219113551750240306470176180148786008270319599828607698140211734752080708308369238456155935603637418799368821212843127149148900352898685214575566689514533498479896622577202591290950054782356912137291475998514774976459603899188761356406697411853996307874537399518168882460383080342207475186505654644810507596942928177461067956965069888669725054377030913894546369763635444357505876060946149312452423527884341230228468217273767199987049889659150743421711466875566662448866273615904964814251998625369001206663555410718935051304548865835849652406244274015944742326152539011718946666270738175683925021821995019812134739837240423602125750133372008578471887294287294748771597712041751051635516267346374000513721024686192893231873152743340099898134835430609738429412545265866913960466722165860616612826157464552542236560172492018975249812481989286426172545872050810624463031249277353425737534134540540522426549115617518937435823935448336537790598758934396073652011835891088951297928402502791247952761516922570751617125010654050475982515848054753639574017611474979995168010533435590482295061391502978511679921753704032727868154643084525242758374310304060092200924724440353153649165591463059197595420432315545324293981062216468405175567435217583635674296651482155931783598864826772223477745501016729661316144233004749587233353295177766965700088608337613070084335314856974306546488629865615070185708505393443371586042874419325338542635741249228424480847021437262052668522070277300700930336505177768753021296381099908426214437797676317236634448837595568734964504298842649938439936824866145029506023221084436864612027589226734873491657568028899847297321942283575629156825822872351092430938816940673721655249303661048227904516653606857522084933729383976628401029708094147866827126595084057136549952466364921218071291644987563796100892282846732250918647987622742588115559102434787307327771761705791218214929118004356168969401206731680162044629151397679717093118387519231969156752760231346270196346368498037698635095825652586208433000586414540487868567298902272100844382818478096692621383919832125053621138902315787374516241909595514497263033450836319140955476645458845805958378480606313090840096775734588012097784987605926610556941388695156947577071351224715980600932144481156334352915934115787562983248499483796327619054014802327823418303461134375448200029772612262524608849334475215432847220785455953580016198992915874464849796583459389450152332018916040252771639365415989169159330181661821908440920407530078191356267894029271800379921820720891760930121939754018083480260325268549421066216156884466286097082108808852516726484184464976783452980595706885722092139420973093232566215698353270477287547509181626121991452458188477222341778408426931778401388485595856202203744939115082217308091993789742831098460752460842106673677767361023288206203889585202990390839093264524044752860071930302767312118519959466222832942781097319438893099483342657659202303753770548848431039199188791981575768426404484788843769013773803323533208313047491873368496523248169658677007224128626776758887297264456946863335192121698206436360295728023711742611511741637456129876651723382776306347525876387858931213269724693744540994918841118857629690653435672805899339483984288486818561064265355655985023552229745220645715904481923155510694403500606332671262852878841416494711862098744721840740613801745234705814549366209278115092458352411722744967071016693299293932768138733308423347674745870411513997730870577310080670934929410800566959751451241485733498613358354396552778984330253064297888745748635350721261136344690651135747156999277372417343196223654949942131027029604555035676943089313139554223260286522197875430684178926713318901707919037590117783433514236570128118466209349340357980128543539188471010782631666855301059128998463234737387291156348877295201794500386155782268915732891755514899514164101693874847086049815255418315127221443556520844594792453486062323068986800961530329147459062248858145215081545670682182575681283364132601770087394136206514417137857909254018803547540840033320270076157502425531443072395816348967327423509830864098105754779583419191269223423894029631128021880071195528854251831129277542606628172514509184167612143584404097275086436597159398857838988847139855508426810176029693454194703938403096890669796596407879830101308676660011975265893801700895665718347179383499914214282408697953187080193745186482977025875720530481504297876373275047267349403460486457498647641303654933917370026367425775044647338073404676338928902522199530775669314755060611541802802773400142972895749242658183934124087439077271902582232454662177368945370158296735263082508682977065738261595470827573738675095360597557225081460613247918379506243026490298961310176132557452477725297860145304098433299924546814473657987926110123289645188485296522358764634977269389165384224684561020072685921917457241933802268744846115085316524184671673010502169289223134675597461562899797735347094666268411868922696084790554923095034885712300105771651127192056367252617416205052102962921729446802803959855477466213728792341328830890430530737985544052885755463270548759598305012169018191678673675466989797986973625052175930944132941372256043489358624367304869825504672922714953407870579377125816542144718972289572265797237977146425585275361102146793750289284324297614554602154221119569018864376095040611486215157823525196166644305134394021790067056320994192230121061349248926864316385902887393689508358194518361966245842084172076470517861914107104478832874266074482527590868386791774852197473668696714507708939082378184474317547395860654018979037010284943942502899697349241180438062507864461621836240187876496480110263241495454907065226125960822955190975048024800971766650055522442436608976868931282910800859494877168353446857237453666407024260302228690311574056584795578551012496626080131249021826487232000082155606464171102099837795683407633705573471848098795963401188136669879586474593054161715170211931695305485189625820746549216380537151760610432451969682619933102058239881055042383871282190682151302654795179095684518260875385848794560753911948048711813655059420830165346410833347698338358721229883165009716587586984003659184465692663799729860698791755838428985876988482659599651816314682038268834099572665555785227449908185552300493106215063927677801072481096122707815470166123680443803821653898788684784009663484093208315819771801707775469446536857394011923404885840721968627927331458486563224299250506586119322221655523608966694654101980631448958701012315164258622435455363359349698587836107035174461142184222613203324056081794267416891508685671031770360706765199657356298120739885346935077182521570852867373238274085404044566812560557896746420246680827860407586976804001850046946487689725583887645947494463250312667399462153079128563616752397778180031718628142644543289596687067705849796992809490828633839981165686262095279075237165701958445289862583928451671636881636992751272363342790191271289110217091113549783556900339804400092503353012125834677976828326467269475905199482582565433357401646289976267433828971800732795808963484614722596289544853778517588925310078064442130839079916503941423878141824156582019914522246319540174989116786412906333255986852306469087925858216935133213115301954271836909157121674315953160872257062113081753081476833646157661127247210862649007693196450912978473779231827774079683438467341467253747455030079299367370911112859997055991147055140278212846137804267578009111947064519015871045228313877768302083698678774107059458552855344118829922313799490984486849388688994629903130652327196780056259706652808617919571942825799219465069583867821683081438493925029502616662997036706358087568774683647040697085685781226549326889455744611711956257641148621951550096421692533735083151505036401106804120606403886256096838000058505508124670058428481572652003907673760106042843514519578525433988904507204854144541078013678054686630493056974601718277905922740383583377701218235547352651756252267941781916901890954240323568985560137919605580854062315793044958025472517893580862027620326555800801918939242901191576167124756702760882283825928520165673040247610255215667374049510084552703908886837401335804978997944069264872717118089178677662424370225852250898482799274311429722370561571959471819949354526444675924530660490456963161737640009896011797223229979039474023559511037782018434163512580327890635319223289640432722064977493953479819895413595758305467322416621715140883693282528833504702129288169693043693240073352881833234053452297680822207667954289973816751585358867263493896301346542222038367401967618196170796851753872421608451693067503861006038556151925762792906435496832202210915077908471144068999451392511497348304551535979541225376393266517654285539762460628365585265929320942828076419330069468052734637275560726234276890385845370253277286309439123157917210190813141719763332108567386959633059911493418564476523741302467147436585297647291099849411322081699479853546424503953070545942359520871783749480466836158159145819491080521397081041118460593998576122545695333633756609616050030745179151209203360018891108154601015130935165393720234636877414846120256119632517256083388558710554603836991644113467144470633896545225166616285042632466683384016277533399791109249815199903060903463980969022296530062103945479854248133283447288340055129530715640350737406747803232505898824232442535295034506180696174952464331415486777323243656998299798734383203198994513785639800687436125996846846789226982681304227986109849368133311423143319091085228429483845516413632888841916974818628087827362187892113794159183081308340683944007602831178774914940049669061200352423048862836640454372588410619088885032906976359419630171421189780567784746107749154592301644348801962507283945431679987330436885987556688483850695838302883998538246870472373441245691479461373414386064497176507191788579810478679675391696985303370936959605288473054753993765487094746753781698950401787622156948374805952665628593706278075173472645510608238444086039768458774959224052069203264064663871834547053046209124527709595144137396021786723055581185028542131945697441941014558380705441223535217291134320582812597144983985846344519671484326452277186973098777463798114008223694945991039286294256185184201814537086251346098953900823745199335941756703003993458437009118771089569164002031537376985961006569208514607737046871922149154879383895489035131058179842618545104806414722451666450359897812657680713905519948681358976853232345717306261568754900323712630646915615964505176787094888944070271939714702087765462897207334328671141667366285673799266941869505686574165926861203435609924213694467273399587119533342547209409438941734843679479220640139822754464493960609751232907293229573821224648647299531091705625866300767579866027085407421656921576976801573522009208562267712911911569911562472801050299819361570168961431006336147392854502095607957552345724292064582993718099407130607861983098959645871253116712832010534724574948836202202690306219049995761178088087046622915771899914762805672477660302344867144006875116613687676595794191181485048007483343488834247756352291553225748813490931178194686868653611591360031149264966015510123925359001939535854010443717502255328941623348983284980795538890673893404119667332508624889352815924606253775085489098533887799963236918392159670248343723154137452465883378476413827086254371607203678994871852788205312601435665184663427396631333745496835779003299266377844865073757309843973685756078005942530580919366588831961979204711506834520471383741648222760984388688582216677058291450511862157711272493686523234931689314130771650459102512486806009416645934648251048913904526295214451087448782602610224728751280025011385514299553093782997399387907065549824095519063501740468384637245277468480341633479270832195946173588526685744011773537031629807930138072392919698660082515861766126167482047985595953547500877700806964807715566565955198998234728168498529501828643507109861707351039331534404097097880080278081634382656058742619488704585505958461920588396848899436865078314557774144289134306786857499774683366579379683775407420012545336579139793622309242077697057530053468619517628290191644043964767395362962318062861243057100003132272328635760209502576324673597014849229744387496672434222719042467205803543404741830419220293731716801889556970142318423186111624983014241614457937216084109020149130867267603798286709832621105677867005988789267978494421573244168438183593051000649084792866119068673508020745666679833131576425042643942720640536244224549775364176345668916457156028733885027930132097006456312158964357318005116840762687221329857028851131367030681868987677224163457186954725231326443395612648277530294468565189920356242740530048223777120194272889787040649104264576197878742544564285680092192846010930770498932413931263319747274808405941309184019260434267959700380979748721284944024393453321624862297259359457224297743907888535853889909145647560174527021494952731470636874062618781604529126867220138306146793771385415552821262012705835674351799288792563532070255403082021333761433366180297127439386478720354216278984213215944897523447164604348673914367294809667863563663432254492362905865007664159584325934526466370425368201914170276592122011707352895425152658823764409104318683825273243236739325213499207885456221119771595904071476709348234809163745119831104357484097153556569130246750357546129475360697572126738906605864565280589840874551656965512783823706240309202441065639055791587920839855981574733945459958873710830248478467293574481386197563577819023372209567857851536848743852574574951040684699161988682859079815134696920200195882189196553079989602824846118036826180851809539858323672971460516524208329143793554442909354467385877590491940049411340111706933272698792204919366955755102677987078582273877253573660274580758595966712159275558520474808031681652181482066745420779553656272730639861897394663565770197793868585896607350618979739635548526401799979905159714719072507371485671781395599960388135317685616436432552086881420239925742401214270475048604730691381256641242804698047810045670275092521729976387586622659720046031916919153956695009340851084281284734538917787388287459200371866397709347171577984711078868446253674957250373172854101286545839432040564674767542501265854582266141016625458461734407931176759189915107663281761547461964117238969957739671260456264801317915782660312813058740687688931411107943094041358264869833300842276376225895492414526590142481428416474033563030283794803988242006628162803016149600486354159597606824693115843886279708662655171457158238722700597894562805655272839674479888900912662734897028960827718943141226363176208393061631817930079548090100401097457302983165597413042179568350602379351907501677159696732398507047704356402808288862840971070031642405436467741074426758395586921510789558329275881766025662208978693817881616289586398627289893694902899734206967992152251875561054908172602655233439474578374821631087110043399413938303663692470581183488019325271303679882698343899706898984885339997120200134989966268392068159474205465485161319988708378267600961979431942282936197387010280929229105537503636525720698900406693336125076418218431143782792380604270655505403284565617715892522728147816146051919750465803003026366420591440506787918860009395307411287854434603943710362961522963986812849615545821423182117863528511060923989063071246114087147411405661485071301901809002919271111212859659347136414864524447267973960778004484491245727164801518322972025640753297795336525397719490529135835917280737144593550018856991405856295073166139845755728081422598079787354171429208302033296974079072324567484520546649973437133497113099593286245279378548646243975032405488193236645709706152996872186324035068891180528015433133079631374863119769464112112498535933451096198933178374660689420336726517889368496586142033513162732603378886691784503169342903501467826271336120816040032426431083473667420903473590433836025609284994852067660059796790506710542763807500612505405853747610392606924174207111618941725597211138955618692963862455548095325479473224587098515191407512002728992293545555500643911160025990899062269635816306408264156234025384314562496813330550363548424599183568102481297507634448820707748360740960202578514764709484366454321395200328795111932169884869440255529895188061070171709568895334208878275180648113154781428678600138794159974001498523714725178307605133661963027676379627641820197940500629433601001402590479305109581669470539020397867435455146215072156055475827532806467612709573671696225869150615497019266365162423703170943516643993391198351680910107422878793129245383495455947758152125436193000860227660956647416096886371586781751059494345020931466954431250577722582562122361790364378619123185297932532300319612356729752741343088902878284114173490996318624068331333679075309907635555258132615033925862555250787988803586128722827249568082978679186726199060956407889028259720424402138329455509506022920060929562846038267344324767743871197280414016171210450991348443911923157240542397715769346149261618281635543008633993940631581931993475577902048292605602813249521373671986648325431258520086936923131038137928184613083764086171307815448465538462903387542609911581843072970056385855356925969652481436083961459908409261336345652699394163258608191840792919929602631666098626145649488529730442181185910175883998674678432957912360797108712043345738691427770509375840918730497163971522305858414042789340299384563449278086311196845028899693062071580008068924402454769289420767400600399901103456072764446160041283221094897954427185719336809867554069841067231518594380581632739747505301191677679684407259014220528373113272468144808657048669730881321330428237537578474003190879284020255718071649089250920661903280983149668060430532634908013650453056227461999774385313962873837854611351256960794312500982599828238075613307462020158374266972691636087918426813712743181774295820856016433152789114979733785102124551172466832746685978690099866620369485709308396342206055978686533182167636027922351016727189494560463533722099277969655680020506858218371705461339013302314136963999516446147663650240811426996387233531699086221080351563480976379055282695853781540357950621874446436573506744448157819008870442304605596330909373102551726690975939125169669682523695852755346672365366028790902627465327199573019716053324410098131960295320657502012405850065178291773223560432819660877880890663747587714364285699185081622056719431513693528488810874094414627880478378364187865192925717304784399193622537635378527426872850414046443170844254943201984438499652182684145301185232196510600886003935723547354843450511937846751566549653632727417562114212055342509245697834467990932055689148386429974346826767577060487921447479215408361509407276749639469472362580824952913896844565040047905853313446464640019834673914845032376830959131591823873796686375779692901151703909998965443313179474522262871635546358338902216291561448366248254247019843554826306091110542041226184724038583177294850055857545740207049309790383086550150775769676054131948354055346843233462405699219494624442731285835807537339111114150800517641109455653345179491353639699117461498630569318526612127893590398177975965835180231021829643241882428897933423007436217705850969396991739190394858094230025598618015343713162729344140714869393140767082251118309097020700569629442386264149715698418560964686955273968626039766766113308036570380200266308057254863393160696552378736005308415761528224851221112246266141244626784326575069057035634681574021410089564451496883482590054807185761730864598119086415875096056621145146245029712001084679172584100937937693955895154657510121471906629357430287678536267089483540801503545404822940563896394229786516842542337464351561743460766789515294895670223997955557039649114015556028824346491388182847552191159577761147583701193989404239791706695639655356024140261079836551011019565750591202280336394278845139455224825956530762996988930285470437921649177552063384594018397559273546483464199429990001735962226073117875679397525227892848955788762338746501430685801651303849601834980930485023674746564324524425841609786025808227008911644888790601590755336222132837291456554315270747133923270147761200036300586978425242128580600473157956639156917547765460656022272291892045845164583371225783950697203976977056445218572927883039337399144302676952979576316166514292920623904134705322337251734549260134827911634474922672260365897124243696703119584686924782535833974848752010551985167296157952154118052064595230043759890297222057232978646359974892322333712683248127285730088488310479955378961178884117557825062935332166836731661886624639327854617949863891272460172719911529109757351229653393443094558231979572873216054614146022034027351463197357637247110962726635014638226721707417548136738585939903838936690064781032524377433817683441773700160695364612819306489351482669160109918710836381399316818011129903806637207786449524918184786746313897260461326926381155993398693033698833053334874903031742390634875701413480163423861425450998590705557409811164422544672872606357970956866573994618102489060938327294173394465502263777532305487405002575120501663569178277742852893761558874774678792173015509640218025096755751335487732726544110943498609340234068252243994182274659206883800593412217114758669210814762425353646986504804143251879386201466908371519037906540360374871737226689785947386870736298416330822110890911401345739801965150052384674798654705259104519177713894004998001238741796180630459945221713143607427986596563793435924522059480097479606264561897924634092462612755476276018400674262643552064545899483485306915318681639007100920512654725524847507951197086074658679737505055310601409472871340826770824087643040767295501398595643765698066539877121883493999486030369555591982562742222722247820993368115768921336864438170317577324634548393758159542243732063031305423925034300553256612150640334987921826095853799151183856160362014175360529802138345085459858679401662025043951274190500471983077517222778320762692049338615001912976918082415314417830973699831392482261853057770892994523605355263678378634939564022210502149540084275707486189265004215421283979011370177835183739390354675296059390726424590588331317172108390103796355707467532738546235556090632993715660156987939640192942720985770851330502873466980844705529507252973920347673044002576024890323073371498496724054710044742531453111560087273483032524178940494347483199720195613473207557832024836498777826856765202681066664972574445252701483447022627562156321752460483976144559565981652052186571556305975673783277117072922385019426045041826295967663468803967894976751317618827378092724748397089866000683228445380613402131147184200606855277346242557944037819451807920673692090441446712813896967559213847962363830611121582900205044268285121208198396766076073013324056257966032514729881130193388949429170399113662745213091352171018545355272792010907569039798304449492958082887571558362043519546979576390299303976189412503939572933751033833358638349453480816915731994497532326262373131052308690641318057049382598467800665430075714188386098508931793580836762094956690452967950759765079136914882721618195506526403539214318564601115371033028220738447083235837006703739650049073171670024489139009954591655706190285080182057068849842892735930541177887354340475059582837578812535270775842728294686951204789811564399896617561671082539146968710788742561332040329201890790986662468880063192017597829381714155736511272219722595423544531229640683378877241977234385791227929635980814209400100809858321685307604297173889449322423263147020394706762967093268396817789896074541694799377884274064721565233398876312285513010648973865485735391989515948745498100399284222671624795321459536449285706712232011351397067932332528644885610538534284953144914717720545096043165147447451978305456934801272772948176683847975781347492464782732654555330458036117907697429622639525049192681884973773869403926662375600913546371213340976580480101222833984910586239537296574458897963730714012686736603166626837653295192433207801034844127252038040470751787129729486636016018420872721562971000853733311632771792663924893833927190927117457547735124581314739228007120262279384404692622045230116995267096686330939018271885014193535712439186902471667574463311335514728513671877852724899845328837671283845392443059448874728189347971866485603800132348517817156452822728738559479419505703871949025066927470622800505876148071663390404404220342360611667726540789855472759552932154762020703588681033222748686896303454944973641711320272298112005590090809303524491529319953956171713430235383635934095178155276855259002603230859100355732638043597568783378991204868307534885282820259855052550784216861646782707170593606641292336884936594092057527356411905604649111041686038281379549558220443427601976612022998423931023499093811223116199427943760437203925710913373860261594730391871524316078986736888622920757621558127116361218139181846528420794950478399071492879456782633612747379607685763019169910083029065405487488487749176955899660356691134753676247594365082655819609019669074793408674006361270769718244126804184916956478779446886587695329119499275688360303921049088681745568224525885111299636279338346703766533431892922236157855296689586811623166437903449606481756099829630829671807250477803959349103044511909727163482313454157726424247886386791981998636598084161143347009532718670744363350581352396969873857492818668912331796116120261194585661054103797633996760991708250738254943960127791754146523254399853012387733906025995848719372887097353361193222480835420914002544081945862625530137360402652043416110596569165372909947270919462546015596148202113871544917586930500355855524504742444980617441194722434152302351427746259397074899168234767057559055265838943330638050782923779698191323587162561163829306048633634273200368245545638593528201273722357811828052386975182874122267069488571638653480864278928498068593511485887063941220694748172658479797852354186016324555808631061575915079708216696116840109756392792494302877348699994279847350031848160395811528770106200404770128343795067235226351785780065560287472512249327316037557985296112909015047339946599712424673502062178334916826730374411852161111659908544563636590727221938525540135748257875389514755697800139223612634177799760022223578320708321024328785652537011582281670087084337167632131537290413049017462287753784925933269623459330330946737223657170307234673542903219526372219263020663410790900500628022185271433782005947397803823091133146864043747541115556132734731475786527726376475516510974201498038603392328750458512769034532670130859665862020439779382341401241945205453558511618522420866018978744069558146552640543856342384973439046834492153133955328720169898310288094864065346330500342358066834112077425996045645392936386052134040644734923049401614965772171958752297787266426838242453929147054951720478810245103966333397049142041638325939341223363031655575619595919745010093118283953992638861928564447043429342815484036271239655181052241535166854164908386367879962667358020128000452473943142472565694939587742485681253649610425761639630447610133815483030449100560746346410683960912264464189530590481489976660115678033860134174083392641305201757542688579537251607014091699399424702557476946292574231186805624468488587227097272236747727614706995251188455677702304495583493619594259403313051156910459736585032119097549339142282314012141805588484622634009097073078068251123268527563145671464946048849012756581350388615138240448409391203339254399550502666454813209899528147471803472785945824713473594423268633662814691259779048261509274141466176272064002631102277278234457306952642363795693341221009317181366721947788146714115198209502084902457271561623581324987845765042265440505276305372353214052536196552966230136978991659516976584344627778074722346545221965968353783002266980315311583117671283989009376572051197758718133682863993124378113291540745851333265549843919398097715746025746984358474460846811930181084887049988211725779477957660919194998837484897325292466940535648533988873305186133139546164426015043629209108136096013365867862091487965158359637115443846662339677275356370274033180113959124705776873882159366573391972901302828533357550924902371684640539811845326243777917780052364335015490086093415809533285839350845291905173938217516492322879443864749946064984479015528382213062983618634776359257274079684263526666875016884332259979986774848758537077715306710663762422775557137512697626097263538719681586722980471628729913172191151748008386472928715917976884040296843365837942499741692146535264398259687482261858954080538446148283011738464116738739546211499855118001614611588349843352858028195352951541846470721465361205811028033787340106645145946402436948055214553484347334775815400963095818015518717575920983608610550784570370210221521273205614288721501075036564893872329450839372112994808473609541166066389555809510427893871882591969313024549707272639013570044849390479625692064148597130832782372014460969603068072209807854268544107451209290377298239885802797253704744852340147375914617773620548194467551204453611543907835528639495151785189585442207931066981167111581309638867674746395004404916193545131073134760163463767109625224739320776652771767867175230692563932211435852604544705891225537662329751974267247707444146336866915071506445462927010078343701767754881806411263316400402482636800564306353513211419688038276507641168702045328286900585354719310414698131134137243765493896190056685408994527499432222701162210398080365100288394069656056248677374278956957275152107926758290521318355806059660018766588001895577575220030662167523543426912691994626172925590375706393126229116569704789269354461045569180979864224035563888109141159970129410650568687740184598985765994849301911183491211693635236813088137296698596872518030067504546109132831010182981449997490748464647576618668255223469288207205999909548731340956352719590107236075072296788879717543489318487824370098817068821932835944507051121735551093807838068495933350624823012869288561715410505992121304547999492238786038920695282118315277353397025635684820033023460395130421018430309498935229732735871721227985035513313755415493502819496855933318663597211894813965610091589494521420097192437974171269210805320079880519236037722096418112150026371739499724462206023284157813652450082249513867999110022355762776401332751056161574730047823451254417041052685252081700043852961393367394592270299259849254617031652811697437048319541178481482516040624667353815505274915050306762681747901828004576558785014311556802011110918218392210636643333612588976681268936405212818397053322705761329032994335218302053815128149018559445617458231244566832150246750561501731152122224328980501179840613952095012586781399548332060863347350540197185712773152457166725430526361868574047874733351440289569211295436825419598926526393274737033423751907182102246747371538491924832211251797818129783990596584879795377875040315615278299400711760647052833199287937080413780655784456437771368024330738813148325011226111169397245171437299351817393686068134163240000376349242819153840000239247114331370171717085032439385751463674612940673707579242681935137086859908941655806305877196037057813227368728063232876852661146303841435907262043164009598345974532450135628273031683810718706730785551090045856647527245229662720145833927911725629494388688941838359037405155123920166637680810856759220682559097226046783219896145191491980386978587909733286340660718234244366655709234382829097009827932347331132948132310198464624262665216587402163069066349103882482929388231075183360898632444432275168685821606430042363286147901389801699872487350372157996849965801850556945933599385400280612876224967676173417531324774990881544383749221111741001144016897706273120677369680200018973352055137453110932433624991470475794100984494156672609052863700900086879217342820939732013509591633163262167416323216202483163290209714064441492969470804555328403479570905360561193258171548069929800269852325055348958036144636648883790670668701718988283201551145134601694356424530329741710019415423024140164548465489838912727396523886539055173385502096873408580484851186366443684026474389892540747316817639580961208686328997249358019010297449122519060254809707077145023794291591758613563772904225838432905948220845599099036170375180940917580283458107624826780914547717421476486586440481533893712423543727471951138825244912771976250525521095927307152666761749334003780824278994418312901997432610262933115529471613112152839678855517737719742856623392096929555045940183709329025409097388974991371553835505791683521947896333194608730635980554950654178827205635313113941617889772606723877085492738090816938117972503375146528697295971660899530563982623479919120802716925203457699953620322103979043350608016204039425635052279854865707219096080824437264821329670650118524129500749595964048212956651962328722979610401270501991302174101251393341901710451667673795322563815692196794300352249823089912802620343382626044792732856502261961555938296481221768601743359797174515113357121434855479619961289652288202052087413237491089888183090625770474969569130536501559816322225284886062210683447151812025639859930077447711212552644807160786878942065552245531206564118879747188014943896713908803514654456437243072330818211058273840327270237755762355425391579427235127049536972994619737640899236096338424416813799654445630189444648730193807720112672301339340235895181266206531683643370121181515256453958653828764463815207075912313605179638285232431451803350592447615820828792058000959449074264581458816342804653253265567863364424069607428285431887528618851083016716308693491217785900099688961218567192420943333472459842033710082295893231274848713138891053067837060087231603007431662554059109344149501449985236906183557712706825703256656012937886195627067654351059552575993176447949798192737497121948557156236762471447832140132667546940279648786723329696097568337208995092679275185477200101390906691173425310360975478422789058756542616342504361611682865016312055507938298143881268309436258203715786999408882690295379111593753673601586060683502734626571092776288344528731738086084305631751148358011717954775373869247104244948789042176729107335360440393301722350540367908337400538524262075108900261962913857740155976746549051228557498300988095338525979502875573084639483014641264797486813049339372399850866421598401466099777753761200493401709441041155994374222316613020416760339875834150823368462254521546805938843004893825530986404144183548168719172731146562863557575163009833952166369539460908004554753213461609303544151561647794858438301528066668530220864934495231141751475408684218247278892043934537610637346341676959158600323771175266179687575531297868572557418407126974928309022128457697188102900653715965851068006376956837047568239174811522472276558058289869720825313919026784773459393829539238468457593353039255502427245308366838091283177988744091599174418296989647636578944105767444613263251664088173079307695942590162560744141255884147124674764381703673369050446984768167895618189183163398172372058098017402832407911370747888260086094436698437809764983981026473703084407814553475968651502949233830073372750711281372665951841776253782061548006466382736515090590138922386145840866620870024295572167726916793414101820475349183178126876045837599650136504514037885153017738477266054505377486785009285712685970901430837124304881210599789831563125856190506144326713871046233539543616479205013004419814686711879333426118933268248702765135389907645119372662057981950016556604338474967323842286070021881360090608653932358436751858397116976156822344370941666205941022704115618741068716905024369979195035672701444229486133116760388225157004470515111614674651960023354065185031312436591541399670001763172568744723626801663031101315861674900421382912486577429158582959196263028484412945654821710706456969012350792632360047487621138148793260550269903101447569254422598607953873368394498658575220339316552944826960687888921269259728477564249402318684814453551521198719238505110274529722326651651060223884185030245387831040165217955709863062590449177476927803187668823061401907115379991923629448219763830420346390677053315424678062760341036006377296299045609108153072448372728748777641058766880060885268116142552743275042246997506123752051815703687724255513293248471795010666289770864687296048790235919767191746128743858924948295175103282783159446760832618902516577719351353634211456926291611327091942386551149928471355376141791599651840348226724234955892559461866801028469371911511037030573122021606456768199917256493734383103625952953252967968994600177342198414149015711712634838768558241487904351211373766631930917652665742911447704710269391782676818708356974546464818598540204708754559412194559205506246606126261102060881788732591333882652702353711685766432831475208221271614247547455429636685368555663479951318987189535859980355119801609958817491580207339866972259227149808459358169158932276834025606791697451853310530996871135727993892780485667494685353578155504880782387869331063358975834958759704927371564779570996743028454101326479467894175530658788169038051536368252020804340386142645266521411051692587374357716020366816197168311786131901657251171490833926096511948816304999201907862691014083054965061039794917204997348110055912614746498939353615113150533293290643125950915723207680986132771501012658138979349469442287377920691110656728521693875114300993879372181979086950366508911596157498460847987476940495741850847452556222536888716350226025140990688573084459839392698574634664723100750515229825341334062232958004054479441065114393973706568785083611842295950156668066825818439122479478297761784007379291097393719256579877571775230713444991967672182810972665865535168215206155254051439063408485109841210614426987768038411211078198129089672227462357485207682557732010562134663840372277902364894345167942398114182605621890854885266184256904162752841913152556808067218711991378938721801593657086930095049842240763947357550393171569265168777530254979300900695234735842693064587686665690844860570204828750220511442879666403981074432160357038422310438968908823047141495531888013451204220827199546529581155745966209991799780137910056297954837834645339098757344601014304508420486948532907736908069076286776729086142623754802670053831247321987782968787498492553070527750103920685501051534835494792907143989799676276294409179666758921388775637332820590473065930807447260350264732496546472158179149437789056464573418390564214169720229980833603880913971824649852352108054593301759307756874959197563953240423710244332624195068355184262660274787569898130588843147404140282546332703671084105892247438270416472523438522558403740473257224965657797005473048069380454029675390346199130997912386488047288668117319955477965047098578008461413982752845782076135812346309590619845914362904692258561943012972773519053430776530985788298016729223643289648804263913911280618938596363134720000956660755442124494963707756709063047681044445840246541943110422355907437118550840573117131300570039547486967564226471822855197072838930970697088444172575754712450033608306783226889202150557214294937086076593361224375854786574549551070725871077904232590215486212651676167825815767455966651478998157912338298966939424171468163023346307889873665838423925654305218489206872881458733606609202289334052594022174078967116897476397857432802468957051500785656536887277084288207309746001120347945446705797377075344696487457395360354638973273459435388166917762734833972252727496228002407495123405640174190579891223451100042931459360546831721170224405542950190803086641249057429166218255889983267970283037410839461153232354149154667817938509913424633201225253576559267475723373373766867040380367441570101455210672016845073504764674672875204761227803836133295433708301846017820947126412741578248018567012170788906576914438635187833350862937670997187141302931499950932399335999518758335210448814501811169106591363987152145506033167579126400041087044818598621894758314771383289525599585767495117304954187443415654628345051682272862255334424941917382953685550221376165720383440207028646273313030090887879518573698984867119124454597720670846898129919365698016018669424136709740020558479308381542583413258558128833843941512734144302514484146186748722714591281768664261700548783643232848252823180176716027272416695210170361789759389370631699103312502068651910850515544955946440784579721147189521858523858601216854775560745793174332734545512160703390833777184008054298167832295987807540850349245206427431810266908938624200975988677139429073553005771339541916146189260645143166495988293737524062953284593749623748755895224045410129368393701935344834620068872997685906601677322711447812149010168187658998610344501326714398685611756393932749285002772632389860107098888332742706936946894538007642765647053661982774150044281942663411431149203306373786417685011501939017788427469033449620251805737099778006113884755680246019985441322523249853409004672520634441202770446561448974369299473151822305943161922349788618909586372023377570783859322694585796684314850040277189514131975114256512580712644913190672149651233382059516113705615627729726328277816225438592565923433862974272368038102430288767330675524307114960044268049337591089748042611962989940678413059132031450172707437027394462876069928423906669607145584318874660643112526512638049370967370973614834000953492270997845953013277698660622267662087877924303185635227352573848503371365085115660655988905339803435490598786742588059419655871424208285496409589900597083498572017715532007884714981820996159533164910501146915174730650429108529822392458723437166584789436264988356117010205631400708136452406910505589894705315866952389850967310329601044033554054009703704414527806581233961707478654273795927461860760345102760147993179558416060602293648207278705985840339607703838893006429257468874439729753167794685129518397170927509006604723285578436863208390390193367534131451710067248680642200094043641425179403809809903811044707226964222611709296983739222499214444876913572618646854426452181300072384398890163112561792691330458640264457722539648873273474799065381496605901088772542321843811178296555660647469035105089693688165214726894727581432594681386441271979524069233851892173323788011803499227222430202819062632649309102482509606142893195611784411785875345546367067379503600154980798306394621753724858397357679721759347219191492970317990176197578097177289332777056560637246961860227405428409892385642437287219686673668294841526866011869189560205703393400056579338385430214452313762324792380189094481944521992586371999991163848120690045407252194909463674048304726717252180882908388010460980523364586263393475233207644017616251456378637391405305279659465319673267508516681818167399556743978273308870353350113841136090711268938127198243927072295152739712388821913315397924738642828891906481383763868561644263078344490368382885111531629066105654325137212538492214578814584667520379795172260560100076682871353550624813539189828441109633554166088221351933708488181355889776974297909976294212009314289858295691043147977828703614631659704088224799835311656399519750902119203547115877679602809121269898192205562440511636537412968798617092416282875943926937898181312064684876533265586413097062862418575500408000048200404908353796911631669379423630014796384665141394470712438347074762678976667161853066257997975897777273608720957070585346624199029963247839689578529763625867970736995764306153447106091442604704345509852286191234930739419704179433833966227121772178607379744784736532798120354800304249697913446235805169612336984323607640229447046017650255016689098602436510769790959987493192578070994440054036177975525390168504623577470158500417688492338229327080297999218292564102064096954398352833058423022730379458124523279282463804008101062356202971334659110470746552924528333046210695314850581604477344336056350567124585324341945029304754130000645640958623875434033838182178337565386035690885682630344166021127838086400955668245302659101434340684723556222569048951915593788346024911775215654766659996659698873402750211682275580895751051788634821187719307807517835732550201559046555977326352958188462944057253891703907267660642601621264622285749631269779410388837981679313032046658606425232860824858039955620164915551574160945952814751598360165492426439879474858958515960673309707072119220235298842968034067787559698748193869064811485403035149678196248821128583581137035276462365467321299536277500766787027086730184515169115656749839289627724520154158702485190921715089420274777951454659166128817547547769412517675896982952444381468163692131922331813036007357532080034594882718299568441415544075122481818108324013298463601109469355492581905312166844971323124517212008822583164309315176284162758763375869368895136394400669483945884442673225989432474650499211510010823661708348114437740288966675462550828835981935642144237143129642155724411129388843116959747143136128146235891263952063621281125305471029711677280888502060355116845022567860097309026659281866244178355412334079239696912547325296860304142251479650770335946267740905965987352281160888274625560550498831870845910076110327052010088844261123091897099715049042587980571444659105504332619301112182805598204808934944464438730426815442064140873694780654213611010547810674543526530600389343141670999262304474494389564826407767630189603315917445963808059768359834944872581989456456958887557792348172604376550724263775238836964105184062955056401811897880126748087870567876980872923926931913054876237721383950469525293066003980514288019742369023990155338333293643434646227742553061636277273185058327305032706995951976065832548414773538266471377783128375139290554563804322149268909050942735626650815244710543588953824411694524259158475734552673631540130308690718823993640711653765944609537808127425612154258861622510938627944762392331323156628877123829450711993521023562228848149113334117481167257786972433012163553536425901040421979919622047537874184253627308377128820790462924540142374056763839866302547454335952102090210630644826077178018823163513996124331371513920473231021978300014750615621855429822878275913110223665795557574388075000012837562610412085136352372923986401350982586042893200365834257899845821677444872990008583863024339937629198007376806833721270216919477036320181764218266554836817068099527650629580517114686558682235866653913464300927870925727870934868845818420157132950199330159784463043343736962507611162680044280471617722443967759034089874597406578097212465791707805742171102361572918130711391410916299728572742523604242958028379952645750527934926222743752871038346210506587249640778358208774288470376448339104727366838861589588156281509833794794782678955429993516506435910742891630941984647748421991763642664269238417991075956548202892237250874880924968290742121302124410084502873649485107426089201955112225956871111171774589339844115258026304775865830264725013149031861532262808731370355522083682320171542138809470899445470171602154029414629710417993848347503708376559931887226980032646134831569365321757453777497078796010895290966937756711492189205237634211260460313781472613008750562053808107958106023736170153252745048710913654561993226460005228409656054690934787148373921656345286521276108171533783512723416820603082423011649971034667578350384900560806486366771280193125985518370752410150662307642215977457329355587127186000992438165878865402818259285320789501848466998570590281974117632027122466601968408047169812602627277995348207931832867309119322370928977340273394737580148105212290727618354330054824698610526363546626777026806741019752848295744809227184730798142793086957564435500435023401812933756416202399818372537820245800161788664357799287120248338922900760186791191830031703563339347834911272958435590393920679468433400110220914268069954534685236691494964628535459598865298244467846618392109532135716937775255012314983600324708839428815336045818170958702092367286131991818812192854113185663681962479212490565397615435366215393721913854904489110537860389451390476673559704901261322619193088535025792987872881438473172036619975266573266868946632739480876130028938858406952489033190534840942715608061401299352930421108810486817977529465286443057478870307702554209317618007838072022727729406108363789829982012614054465387950309244865102585020729593704484193723488809792392065861602015013135299339332210850311053806921341745760602136002098215634542336424510315751758625375055967885628692884609257411801670721567955996603291378422205356075944815748177278438945877428205368208166330189293504819131264655550526544086906461591011813013655190990267205996164777599350351297320782632737733165927504012802547220570777651070053198188394912346263077081206796061224145653675330753933984251170122205620228282551983585387687538306395894434609969466238043058688992831853403585774775251122474910207333204523541121747806263818316861633527782365934437660552888800561277330896097909185346000565167187512340563892749838710866851580614415095411671525954872039042004413565376976542903296175835994626846780276395455179729782229286466182180296847690891292522401139359251452415338598279006038978425594604673623641639131929043969581733650090328731704718608700454441406538353902261497649187448369728963053051427527997883794431577892671422678493770034678708220404373668234652447148960699846334099230326034082678712362328801738280202398897752940449103905644495626758564489401199449844586459338403704572894116075109285163651370388255500177680453870786569702080367896065585468117964123396001579479705966856818035100881129022826722294420007394413252027605466807329804389889115153247125149121475380657087215916068604959962586886573002123723691387037560891023979184502853609492910397499204787785007620652919985979397260228261168844142062513716505658286651654518125939070702015744579407991299363557754805015917541750566314131196196560108004085217828661611363177338963441418911146286791923565155835747457747960842114343805565475132501639888084945625774652967300130478601521217079694755200801218228324147780203491957046403578343445485389619615779712562913667180334342852622819980056396680494036935205622698844341405421044204488736575205563169928012131683523923972855098025642816978342575550969256822777692656666046099209589326184495158929662437174960840662821174459549195510292289869802164593594162708398599924458665286731925294183147308229183546570212805328496278767339051036397812785384529680597109775380018219916967342578720105394163053708526917836852682016181122063638251098095489199580358816507861926230181620414050055388804298716413894853851079604223025262032249722305250571124335501732460476376819265414070475291062268602645311116192908888732740369718528432652633870619670397136258281698754778293156205697025972184206430207221499227101925228926277077584941327110308191478684408410801720212937217936781808221409906307686823619195092978848551884731301793532108439680253386359727689640846791301018289029282308743919623643474428689759641047892229339860210657379269934972087214138537679702051775981145983311593166438917124227749478195568379129473900830844171511325478719280569283468176240833292512614676879082546853606769437258118784510292131886588712903254061505349382934240897605350498668024125535484490643939036084761334630010848405425683599546053240460851652104356479967647125291282088613338535359854404813650741560006570493649853285096677594448774104504321874341700247101708646575981685128827882545469516063666933552608205396824482654559692958200859013318777556220514118357422747340421471844320596488224828632517320110657689637109936349129567059734691145599748496423912758514253349080347297073282834763046075063401317272211682484819998002995887636945246359927474041585510284947692695179430661230828797675435672730343833486270793872127032266941498739565038949388578817640059084054245362889192709692224392469841879749996235818590914790051686564382554891349381895868310141409586137497398883674973246130029028375899259105257719376597345399988675439379350467578222543797342684899861422763331715332231444066933816432115438994308751922256306476054617309420471474135282801359251927658627165503338395055667683573282608733412297969885120095974257472894664145537733733670723677457704331478725601634349023157817689538112337771099409158903271279568986019816697971405208949801819715587997919444869790837505190666694496824287239970858463630087893962030539641005922168601947605603034021592253843899681421910722585606291151535607336899876877279045120395185417275268802171523518167625559519305935035855027132742272657284588078208693113761149939926495403969206828038868547330674284159689859062496665826829216030685042448371667546638775217919440925933870951991904725610885725100759707842323951506151640554289449114750649383954843743171049760111760613424996252092525109604771200420586139864227572330692755401681469205280485463801053235249566797639145092703954422965465262326500773355855218011752875616025931800703298563527126064009713141571168729312399784845365920126406232017799285101170285757914451481943233873692413296065487250170771702251205965397756361885104846305535103149935772277647522948387292830375448035408547467834691493835600731091470525163844347322674994044412950426967257042947926251441073912176766965401541200353019085402816803874278089473614285099407789291850619017378300789952236062011888227333972989089841147598569098845750186506547677663785643195058559732682191647965035612695064493408213518957596309797774226296354735255443734755603918256547998187169843122277532688871571705589856877803542822427554378189804958887031630147700696158936072987722545268352436319824901522490825452174699048703892265823861764223192361227153199215125806889713153743156313130017525713359116155211669715816013342631131904807069129057841468069384234569757418142797431182400873193740466896053381248071595498641598374938380430060964901095843503129452651923681261162675399664419349692314639554257467347923140343664420758293991486667977047991443283278719010052870084037919085453116585519208038249812182646690006751139195810311393335218660486208401875847145893928512039774552023697697125173719309688879786035092343920635363582051826984358330825497567690567008919752272632629335226464328268446713752342649391690597630782896154076725441132872856377015370944851228946680895665658767298289439290411255054162673623663474575911424571914797934339224589943654208302531194836542194267851555330733077319402145823920901532107478257445339584845040385835893514788326319885269680886764842220645674371334023514419719278719940729545159540051656403452336502400317499932130044520325870403134823880572756627886723096447919613731760985696987215854221074712063659807689140185737478927079873715516685993890941829677878052673842893897495225031595745410171793473320914744696122630895608375014842416258662845267762605047169920304987020440830295944996143919210316658441344783010340599303176417087763807418837626989184992041454458204468412997138312003355070544174406290273334750315148473519204784977519977411542483140482930540285420633655223740496568358709532096675598436973838637829040792572657444405469968657595612074833266028579206524445268300368834557424083892312491022647458395663113655918071230397452280838434846783874782740467500249216801500578363077857583716036412273088421289511664516370606715217259588261804642214162155791718014129645566951322684233279282790671979763255507596358299191482401587265659321625272255905554643835542211149543849259131971758188663832548359371528876689600436407922032321185116636794537505420749075049423952378142104658177653530059196002488004581153833657633212295352597221278853271098572220207289311590758895619549390587246119527544059707923206303303692343299810001655403660571438155057888883563506806871434738260081509670864562765746319016320723706653679760248375512881491266254620600577004323061304318733833962489414115274519560759121133709522603512913568070850846257288308400212203517291751006266774047790555877700885908002855138792148904127623501386730814507820994549254077426502012737670613315872632679646028230483148065999655632084103310889171190073423504878211365512710205536721822063396413271706357342106920184267545381760524421011359673894530975688507087808920424099065959374058208022692970738946674435273734764014759828838998421889346264697572584665766873436257426687934326344186944869544573579196657882084423058343895743296114524585144605000456424645753606207613298411363226782577954740117588695663562886843709979231629600026016242709355080926167291029808853726719901670294876824784234139025853548636764730773169625836811340781914955780022070749198930861565672416710255291963903155078268231472259239571542822280264902916253753339842438230823147533430161477854826611364989335540824880084315460111502290402761235756015354949562537349099340454257731603187257665696121537212663312668070825236097466622236826561283449685158856730083549974582150554551047640714481163551590225049620776995411659984535524772833719920003704631256436601940268823839262000390144454904045464088447753596068377929632430631930026506310465985870939551049471011700400571711202369561227592137275805208521843663071417752563331228800399754762002988871721215788273055068137871373313892269555692747935004158098233491273514032386882869796030426349022902118500647488467352877312125388028207943193672431204295536594463941041898625330291760489380354160025966229664628583307783617290484832374423336882430601945055542582887020732495891045239488284568921826020257620718001014572191137342341512039665206706917586583716047554283704830308429110976514081140501276858459691212381811132174133627331722423188158383895610826180710066805394270861841864300585745413060418071782805815211087766067288421133643720429945778793044613377503627915927051400427753899800252235731440204037904179538282667562065749647318119922794216834696502969025997228520921758541737409502654403195278121796296100138732343962568770413358213116146279446247592902929543351245778075023562666297712700233143076330000059961836237505489729386417752839660338115342197674468685296655007650719104259662345869033915127273265823245660847575453914534592833344093684079374369874871371563620900219131923280642430298619816341486261597534656994285312806102792921157274933716045059780592735350707289678650157244377887383101708418601543610800821947813568072229692394776741386191052487985797216874427373248375777651946236609380484019485589470437456271630614050783178142552056866277539449955329472750665122395556544393950298272531757605019048583238516552144654522959684395884959588107629412076442768235296218107787504093449097833554024329843747974678100137589604658622348143602689238202842969475828427697889945558712561092314246195104537751171551269587581569828027117721738806566544916177457628879756079729390854144540948917221501180887048649822256009214227085764296820266447815099259558889658321510165689958940409589611109840670042884323619137853908531927826627430077156173080779603830887946942820420626206117403701184602418128737442093354100557539814847359042545489898578602620836960678682831312980021260259980061642426828733299553435858813325800450629881510921962133942230129620123390361538768734831696565325784960287622572716845917751904186592451488801290624440020760991390104529404791679514627015006458739867083063619914014685982329952216175691486300199132480861885761052465158022960265554652343195386581412232362002923705976060467523475503858991570067687082229697492506050718009773965627393748460513313939772137957524431673806418014767716011483582630803882220491376427271462102220152074457153375415726029330433730894405643791647372784079721535086381110834896687390244539562113808146647567840708001478883383314557373235217493307014899263650402727769127822515034122610104799198164952483207599257540052557345175940225808410585470338210658558512151850596593965128067962395352142041578971007349626568787445094555722043646498472446402934407043679063722077743394910434325921402449847972475508460057849756341876935491913676853311467553527969704012933233157354423223345424485982464988117659735744984061358223885497922306903775019400199005866612698232215003395682885452736300202737176871391580280472643801069165286389150651493043663657987955196300388768459719655936630685626216459072597675387737464886991923358727053534991533404308318041490133562872712232939248511465450590140056818672528101399901949525810401910098220983015355063740367077879120732701188752686721684174892884366107127526289743602715767066746016704830816534949211613130593787409184191886985418615396462801031013969539947138709899084512175812096973945666723051294382945309851083020348566118818946006984348664446105992898298774015618895450795238293085052182531635480509041335208617376020398788852612718820949272959914466118620367884382017201655352133539701449885595655081964219868959804636208851398685865245228970322156479282267016517512255600221837072885185698730228348094525693296981133949468532991223861852873564064489667223310258873409566093748203901990865379347637825546242033900847700497924056436576400821263971281444960495438549438064943333467836562289105435112703071725463945899084138585385460939106456295012160260636756244076505018951666675119498890250647958553291487614931392124468182257669142060595738516634525803907306181506186199674128155941152260623814764703632014220535975073588133623618140944230032040004325651901639700007008187962179246233968097167233582382496197709860746156574619629224861081826183579360511142457421889435838705274519951238461030065078807313575358230428186324640382815705959850787445656580588849418706909010396747944931671240990142841497954932753736399270227272267373274212934781047025579558582049376260184248331190904885981535682624593287679287792221400104094886532860896860330610138345644333889520281365535188904162429088968133462616898744809581706654193532531130687817444010780476221271353438152176474976414210302567685191306224666398566196796853171966184833782311029221288218217442754167833421024430751585315866035899228146671824588275611804256248838013463857511535865221115992530501697490805211797301107798192757553477039084032146660624481526463060690829041406942684712499144314669647036380445717901835461139455050023115769300345568555406610585669864440944678762142465564456573805666941203545759226371054669464370610482079283248816315680986541646341933101884967323662653382025520802966919286693444893910136627141596284693889088481915649616003995992223715993634695129305793383317257448169128976744443895636935125813984727798956064934646025688217240932230809556090211899467582272367020915666751479958293742765666818349636605599016700983110069587633747364461736890890138541764066756683487324696498924844853420227429969526066320467509532194903650504746144783133721956067112285380232328103879176046126872881098385009044031066171404874099152426092647128357383060047940761299837247992660308421574677707262558431099752918939877778272090544536798186136097233732215249582999702108934124960919039078913144935509402066338954267842487266951671209286562123155382442072917823419202104459872804539762324486954918922642275956671421278497916062421821029461056264673234936703215192317647391510353319276050703765454784013823765895265742369759750730290109847778538430463319186634664201233262241402630928085657966634930281868991883593407138539057726206082324304066652885140932227252036693557994976962561449731339152210064206391192465610391633482570143702611674531841006530974451883201037403969959363858601187760395357492511989193135176956368245445306199566841214689634083855238750796169626777127385080358839511116336872476702302287624137226578217553330772681134237065247407401631674546927526294695713644223731648503953645332320805116370323023945821526804766531555074758215402709478340514726182934750169802531932225490609297927122223454401289254748270471037543952285846790143517384841699401922030482368966585409056724001110000010364413153630235022204069074661946412218175503247987252225468063702984508981797101392909881591468380561709835754407495094267938000888635976035386781736632882279446610484704259053644523579051228706291401371345678909212775687739599917132014991253859055182340518464067701115138005160697063112392451955592069527688513968467635735493466466835519721488193661790913238050422382180598966624486784489913118754167144004162137275463781926869619651245113621624071242380514427984485188411710494800619909381071620376607211819364086351174346212009355951357163595352277283720217758313749448274987411675410189667980484648031053254392871907058248081726075030582479494391377370469348744738723891981067149468878566565605733665127626420975463481020714933216008469904730833469415674500125921612683271368854481683590723570379586843082652330240488687959924750819328170058313784539243977870101605871882947965514220960830342478082603328983925410238269483883433391243789247012447212856106067210055962133667438431743246214545876843859451771663107842980190081057441656722837698425242791989603806213706108813517473612826680577757206754397062879231910954488113524076871823736385595156224244227277157244998759002454090078651217170527743798807389997323902343141574399392036593062855409403686579539406442510293784402773209587719004308665838253618664983088612165736526409002639792816053394974929130650131440734607616133780450087666337456098326679296102980374884469508013899228120412851867625930733064959961445767898130689571159124742202636595079379909288362535227609356414658561113023405799020354274967565357780181152182107055595710624312259623860756948891866008551531265976538981807354278348131622880436439075673455094857215397164064444900562577593758797538018754527500911705076020330311033323314681591300940123302962921697219429732296161147527397251830882709746013588877207146952086285922963580013782770561245693334894948446952272726990502323821591155603269403692056039301090804802525374748268233995038884494154166147905422395141911371752566494660708401961464946948955761549397314428419272040970566897718315630393593947458908184984398876808597097423644124038871927854114701287281520089267869719838957496675977684549346076419184257885666591687402374374207454579601240005390717612547563946094226143651521170250273579584582584680159998375439137923151087566059139189196829983121276072898023456714192848123193458491149942148966903912362243066275446739087487474833385715143500717027161441414340013357774767357177870003128822116488727478373648542392054083637941564732024510247995161842914184626902185797918423893843155539308618213833320656313237447435489115364228156048565600390745818704351327493107085720136867064750995162580903293342922678980112922871649222435980488694720636461065398407704859672951065883180686901030406814657137915625953214607935972883115981205408468563509821088348042099418804905887969664338354113244547638302983841292574993543384648150143005104363982430679355600744235679519283385762580222248250464127352659732751572831765941615102623711492163687229142278401779020408701590365126605844523800930593694667595048889302801191436823904251620560106900188068483211735924832942243104888732496254505503090685637492932500994811002772998857108077097054942275670294822302890341478864924486328252999536568396255066622348996595599024783293528580208546056905144553948032180484839816801123762101116454503081908497711471789592005953079699816921848520862241403548181114297810455661424010106413366482607197297712436803796963114023501806230349127657780887710803296639564241623216112264510317792339909315590271527778985461449545375962759218111142225288745517869814502113919607098043489435372346924913731380746980367642774573866804720824549348048743962016256242407064741023210116778326120500268113555108143456829595118747280426302348476697023058310573120569578941761785481098314884135324231863446624202966890460499999890605641111635224468179372084047078323155492703693002300009374237189289543898563615886880782407960569817111372175412963596150379624367713788938504784144593274042573972113888558881745178656257679387598550313898125535855653541047477192293001744428147934105197080152008095740817669521224323963692817069020765438185287553839768950768509978654743184478120773287352158872604670765212747943215461299079888419976285827610104308699721192281366507577828362288394470553074931311967633252553211205765228996783643693073768246420057641763972690099451247184463099351622445683179453839773826268990788836183208301060382907984545234676720555837388510162383516975986608351770313411712524822472644284049939783345828080912294625121360758492605559886888956980847166871077905260025073042177741069888733438158264606524722021493557869807303534110353452347195317677505184410514361607569595492694468085952763190668488480199558273449387908426768186750101289490333038134624401706817458814898010519623164246786026020985148132005689383077815706294857194020074838639593407835468148369184337189597019248795905183574525874150474431780633094284677264467902688019749664665490946503962850506317985599425556280469607753833705551446860654043290877058889525066432097137716934955348324489815004891514489908008447473397086567633505908099267394310905990443689736703423038297345709203185385267516417363961939916741364149251748230929689701019916609250871714595509717133121172162692261776452641902177497104260994312491522808218764581581867070801308519450768830972191788482606363973019090154139175632038960805229728784570946785485384375550962110800392605610605092302349699430432582989569274963500288063419798289899602423974807630485453571308326409017584675533572360663374547227345242501088291440891508714268948845326931529926973643918549667303028057434681501905513980902381670972118093195760004534526859105570871868853442509025713637549175687812458242534164518632626441210577345518240043789898565773238072929310069760921829493889611601014252277181127424673680059808374377409157144666306963686332109440948337509718937559537856760922214932626115442648630203805307463644760917830801095034487051950769070775792242303301796820724416629501479861084119612993385568911237870379454902347171779986027190627510563922975773511356725225128536002499278510840749380280034978353084588960338996674599106808016163482719968023604294006140672795454492798701895184286333383737621339397955944553214863614360460735161976665474321285712078943861694790236478271241061953717980782403018725587422952781893053407708686985989722378310659219111752359398034913854006772234830999914287494734138439829871477882739258711391985149441001377100204141040696622359883243508276718140976116135139668526532788197102137894105037190050515040068314397543693633529188616825598220780725572794140147663490635347294951401216730395386804404577763473397088003494067813019372834617273575943742129259253631939632069037134179249631769901580495716759788663834994494178460767664997955051687743953879943318643520332125670999582859715764485566566846632157324717821756726952408024816009732428728337073883435214919791097468675363642636485214319464076948001971249238454545289597557715857028616554031007052857909266672591507370150047123930121742028380824944279388642148220971755056579846468447393282562058240748970348214456601413694040794388585360218816322514136680533806821847830665365815730784761459164896548170479835836101222490264580666459332277430143403394939385042616722555524950112862336066275392233029223022753003565250311672386416962709734369284151908426860672307900826562378740506989314608180991972342977650862518382965564526737796873879787164466405410983849486182984916254351722538681892008006216974244693295199304045713552847841413304014840500158014707083598093591082884075505042724767281058334326107853411434668519105091733179045321618325404763650123267287736187654470271117449073664944992238144281088063818468744246224165223293242776359470229781203123767518690973629851854388495138732421856425554012770602896144480546705602333321949929650585573399831274060576875839950184717131168220931872739556143457471273862338146824890838927631429770557895256327559870298180594035076853005185953394686387249464602674320488796072626506825844341785439075430630036080350728867512459036203830048514066620523781918450846125579293784733648817321488697689923737617789129301626762090863489523274402459011378869056512529771526361739307053322404636496642121800664475563062052392576901176514484559706961965991968395637743810151481540262536310432142779234871273403474351102406997315437756185650847142775985317235518564667575542574714238075901236815936516503400830977338376438391536612678227710018150342175946530632273848868428196055711486150748676749124954778079813731081560942887393234605049078520387839445437594245953132571135899004922052075071134301928085649773986305734292066803000436051089101353346157855065319811341300691607196308865974241517614365076524967332154300961718745212462056884342128722597215022701047272133371550305523644925648809914597080477438214044261095737137215316165577788559349434556293908125120284694527931704495902269595022343522148159806331572554046738625721881446753277076869124854732441717136096272123080021958089616748750509434497259981189955941940003528177347095442064818174716555794516462127633942391512520518984260162782401054088982368166602417065479046346714137859912381852939459322732635342064975781812011947059998479024310933988414935232530407664737529677460362356931032018955861566263257560971170461694341754763671590912360989835825688166902757333448698567023758951924356439204874563138664330890746000136863924390713940166616131232239243022433377364085054246490600703961881413325620389220820062842856261902240954017338643929211501903282904969060866971422677893013245850553023320337728118090024240685299522812523587151560091603868105351844321123163824102559451810881016728872335735531537853885610496266740203278017470170903958886329737554125040625581297064396954725710452984035195288035238690619468164647014176757904997992370103832186050293668419564014179380070199380486412177295825635018237088873782145600745782537705089692920480607788424114021257499979032862746110755933967005406928543106612655871231463646436171795744483728607952444224631703066227223568770425580892841678677209699054652184263905551548566658861702878207844742001892418291905270098505565239504886199653217849990769642349591192259661904790562523037579254182976065016491304487613566362315727200959345048151962089266820842350329760132815765469424809969507354591370762172737593387485336239797262450093377671704053555960298183123512789295512480099627629427184734362284524552636511893920398031941863111615709306606343042274411010105374372239113902755107412109209828490222244682058251022006643860055504207091598756315764312197969695128767270424563896786646330906052997090729779992585365993453928237956220069276585750218961538634800734879083754716652234829033684206247808490676247299500420525658489943934953301776100631993598015244453858979206175291901986564015074578573517157087475269279360845183860775018482337825646529438731835948120363531297318650617829924886848589939413752368174483501241539122688646826664780318232378691303420749048561890887548515175682543627758891809710401043321722028511918344426537241902968031959316130889437314655373615516670987588787479828488698919978596395405357354266906918051377883226541933662916654751581094843480566522573328939139813530983187290151057409881771890958815800301600922180451648681194218829991690771743731870039792496677373487200446290750889030627582144168802475883791252800568984855261590151597185366619731958966982530662276390464083104103479657129768705340999331173998542680194348967307720156779575367312474885277575212148622109320495274359761400095344347171757472882523465362786980614424410876866568377325920582250323968865322053302710482175570428282610547987718458936890306817346674779720357962078300147720726002609508716220443581506654201509392048354155259056434614847910773129965840523148359813200884124764343588700407279172401004761899639179381128651081496780646804846119666866494101345150413873012937665162082565815714720366539530435377296395633686937538523857111688324246223688123477289400338758415772387104652589713610005616124674716272099271401295908546308184371864620649902384320064697587597022827915194245987543889255714201009524232572491186060103956531600378166853494305905979571717692950871875317319526846524419284510901547515652140990060318203898582358823675218863667359241653712243140919422831441778285196536020144456172346548671634243035290636451337317627190289497872505664004907355640181913085470819905274991999975314230855643503773662898421035680037339200866365627850773711717526248468674951105622106639716426392406843179102278516457917692002496553723667053692411717379284784823969325035073991789282246257754197669152260839046558681630977085059359371232155252438983652897744041439489712193398200852429495279772781806089670896029872343605818227011791810589873139460866272625151622427756043764245614494503016352077676424934322788075868774358078085347666183415651681074526640578011889321935697707871278885836554923504818897838216602273679084711202789883314775924965650445430814879582223454126630517383384465871145181779921003468287547158734783489480551202045385692548533690080124646440549879776988682008031040181400605271409902926112302854703953685906866995993163908633149468589927650829295001904190697200788474189475931651845387462852324133151107142774595460458628420352181660751941898433375743059747228548973723805331380947566817844192613268785589444907560899826414597986574857720957695493454595755203044645954989504081672408835794717001986649825875126546759548067349671705250006294408453460716578282137491706378903027638532988022235097618611017145822622021099478788412709577080023188304619735881631484116076664727721865663052028013901158756797670662004989035947549117960791869096971450461623010595028218193838230958474207053848398467110446919906138920475362258910017039841672852612062390833322547719539460227527508205264970125126938386771604196245326822803281109791041496251133312898139312062900854852368391858696015275035951562301280649950381100966902992250210239468606700515658896151514639672742083027968674232478537920348794461130929696584943565116212122394153710847156116831870259216065128912090047314430910421486298363850903962870696632544714746697170462089286649383468736033525283157064847352604052060783177140946138545704447926088290158361797467993958080876059573785381920930286709274014425495694296729213043325140784489171092551007990978321451712128956115747833599929774517947095989891116815009419467351198220911250437462345546813283413215545362246768475637062758544310175069104254709993236985267605855954105672125191026300412043155124472666231508150149199935543086468266372428537514036367236923105734434993308450407817052216803008295371801768738705812267943377708664115206232659192245481549084708003976363963944338292383875687983459147227798580044543606692481683392625854641969210488498494654393370821509244387689686770157602847804260474629927452359939526722800863051330867563690242270100726229458392675662474843754530611322261596071739200182981809451198462462664781286028216318727032039802497111820183276722320373776665608853405083865125078383854055123390352645668861026194138111856569046489344432972684155011329240596748950709218088058498641898138222750920590200060497080441108197935399898063412818377358167406503636413982523672540551520645767571619528313849709020392156512418498726593783817082580017393054594727533588448494938646304825281185189236550737458845781497316000704131893027449849693039981302883763509621052177819249212144848260616865082810040072987801350124037645506982990824411555127432181523071411193261897486762702411534300715394728122057958992863959128851780171447518095277010622431215113954180274310226845017473800082636129474363769890408530539316954619284725889714785360120676697394884484310195698768340337254889236744522589986152264984797655760638537713444575930000448316421268628003911126266547262487149679542693083556352765203604911179893439236791579170054547423788764536054895183980378478218455086492533865311984844387084224821691533631835944990911239973394962855481746327901062831240609917955188901358462337490887427919578707866731239140535255204630148463213622984859690260742798554609290929146043023141347485606651233376512105475342768228656577203352612281815077226686945352688624335090037301488728465712006039179991221474244965772073503412261850762806779156339791363631675649211048916407028074464586702443737264464621851844088272169735297923524287221561418896446169983671904503886374187530235751840459431062039879368222197808500749602962075746249259412361560998885560004031335420982947023612289640299348776909975945351121645842712745358789059788838099431243331549420349420005643751692532557052522209171859501772610858026632981123700340573477206776250187167824035188505259649343314607031979130453836895794546352364882309918135298814146528621543845884931303288350687637936386897215587595236795093903899869166920887610213841813728345056615245172363257101487388430236156787244074928026550420443935167102974845910692306125281614689594759191064170687161919477288409158128612268316230259941414023210862481387112661980513458618749873737083300276581071293441583460411346210722687833653791927140425411036514078504399299322882674188866545031113247016741309364621887009818064194949771874154040650697046725496746169196654899799783454497491234561813729830715925011037294331288997061338268962003784656274542090184024988044208534880502812033869328220892839388584548902919188535836577653690154341963484560768760411535527128498378922997358569121381289072318714087265776036807640981993273396371229059524553022239063502572509214024209779312351340966786801522737908072367393617799504469468687187318234821827540737454702702954582003683940850290709147518826771320848013669185954417644276061659335734712018881941952733993264032338779702879793901234337310495408338786806665828620886056494505668723462647430188407301745979185995030656775174330424125606376815567535629646875519849022160555314281319328611678781120519355554174136945298136043931047543182196463789088179818616918454952140640750524748314976489229504421020036451848900187168770040486645500566267576710947746515271087710664728494488471688254753481843973301753620260085116059469560838585834731655907270647891418557789166971743714401882145329715036790315379189385705271363362798477284644634217484199346261373500199660769645641298740277835086467536276593000428579329786678089538001289928302075074190409893741963365257512590456985310040880404987082412920231803085512998819744117386895226168271476652298681012086103858750287556909081952155429560495468120158528243211805318164419428968364314314636885736620408224213808991726938185246981160551828058460939981534508334791995523802458998952578180331311690928186313135941907838200563912169176181230396868986820273143561133706604806215753872525355956320335762637343197428349153558506526847844080733937860136564738686673481016561600708741493530426085273375157727962865952614193210205978439755146061690070266233706467222092949651873230725356975831971616307892064346529646613374441546458596898598840917221715245047149682784348422903285722293499241604151798994848427262460740898495728260552097017886865768852876571973286278526884495113994392937803015409602046975369687108910125954380300663359603393370545538811817677681848305737574088651258187441157476320743967363586181034775255452649722785711946806104264918415078849103193768520860523205104705837195255203789587314810280081777458040524453516484011933607338652581140175944066863414709677030859516698073195382916958369591454709881762966172993293658662658562152367047751507356599420052814700859798383430140511214892036839027355462823256189228518772729182259306798492676878504354316641124013741981267452772446397880534083206241323284372028655613147670114195964324995146922822167709406469721250074332763853767178250222379785327785174991752866666916485614720622085582503608739749251316180499608772254025720349537482577948386236604522454411044113754262319118453055019486477046550069182329677579618338994604391989299075947014672819676772599725663828344971785464330047433287648964227648312286963596057126263518864487553493443952333204658877084311079249949181999168817286702418952483230680849289549550733362465510118271219437703178214188460063094552918050915944294557661196984955110183796985616500462459232063886752033537858821380881595560908412732588354561805991650937164126978331851367351835957428740358241896077611059075226671529527883031078407788236550582813660633657672642256454141661126562587892131446222977216628825247334222687546496966387553926886403115201965207313722463732023428179112311849616844128997162013127833438309060376202150581260615179706363416004418261060551587930624693830186807473565256299855561932346165202682238144016622650114868545326533664350201119688751897334938134918896227283697861579283037606565854167458750086667151345383542634075415728296462667593532837073799534717337850960924158301046105961528937881647457080287292217215734356421273810503939955752926137845997853262131130708966688414894017542543478084819547199045733330337290846935106123164524635839620998362365998202858459621228084660181051870979559293195663163751738864745793697481133800597677307181093478953494601209140154370309060772515823391819321082154300604002094676952483614067299870358660213943969544911209428464206728496600956441954926460604430352197274127095025934619978683212460085588493762379711451683305215612901755529685687358643704281855915379468417475452320223920636555552842085605677016042783277309197471427020112606576379956084626818972737316262880132899035896143902262481383673422046260359452102103265675555351447835396107276250041894256612897044199262781542970456663810474925130769257425907678207685547972037769608509144954827720994200251894832537594418521152309785412005883611869809632793352550687421839684199402051946484742310788228669437446323193422510625153806704852667083224078443991665581850669696883600720921791132428094923243318870333327994266655070143419377408889505970404084415632348816709609900657430047777515674236320896129583015704309172297045142009618980333444197954646017448628193097880908737606661379193336360711490706091043297232316558804750568512328221075959027379918533989468739511020747248699323075959438545114678754460806195685260826980505334615112564721939526770339132259233485336731437381613723157620848807367676256918332703168194810402146602428144563672453170229460214350089018846734955924372317354689500066509607963945402063006697492364706538112174890118308521962315035441310402167696463881385943663165822431990158218775664825420018299864207008586515249115788396277881846633526925517635304888385553603078813665024047669746403800761377093397280260326101128513257713955035650454339704660464821449226797250923195120257960567392845140523835296300686997573873207089821299941033501596195280893029799231672212572848730705952363749905438772586261245248141296213455958688828043976332603258634948576353061155576788752248645124105639750703082794594518773459531805519346076235853699046235067708339964953906521080874811126508557321443531567782923943387736713610929678990563797918248107399126347294754629046841817787645764161605512289608323573654345767484598567971357454067135634922242160718580233991870233101983371981708431952333539297310469143069650048245532405517247911387494562822823238002898788205296463743937240582573641167984342775292624452961102117606434527390934198555376303501070559396940719904741188735427951276977045909390196462686216266682277640006493863367053121876745205919829366569453727831639441828850607368690067367349476159315327450645743798727224864373678030662885061584429239084256838556692851998884382973927803666814013206076962098898866432191105121643984414160428974492811219643923379908332077296462690295068471313655032326454844260853684885103325654314821047736639046075771249116312089150278260499249121052500743912851569439666247339707006981988656395483400325139960859321433684898311693357741632170949559602303862639505408081103625253400749172057335284497223301234453213206985668568914653673278433948461618511554974821111688744719771493663564912829200163922535865377405334403288680307375929261817147387047980352023738945290366293026296920662620474043091332688216773087721596116516187587252352688410008803162045194188142318510815826749193705328575172378763582461821952267694010882299871042426599258184291136684938855771587354342647738514545165334356649850974386539077058124187000336867964323390591039471007841541139276468624106153408501299013644793869062544413451366833148273856713401404466919482775106072806934534979088261062659907463086161452368001670115404178710312598904506763826167355266031044157624191716482469442092314580409909777642393457634067628975998470669100224459711003777171198284611789369182901759889630268445735123756075830397962494582053599247841637186119467486954473210394879471104609189537973959212490528864261801824678605806141067565501923751987598791189333870254857547253312672257146582068717399619494586142721893447347933601620230179670050007890914879507188562141148021547568798103883020574707890756191382062398349622752068392362101913140457870919331598735137282042369192335841296594589103299705085505758748358375898726488681087414030462963705451198527669061651429633648577055574755360455987587119184401808831819944776532513601229826484336426129710666218811363383171432535964158650038905520337363096798808079334755307267756718414226141320567455095316881628389195461985558520564532487795471119740062246743344116122555162146551418435051188375954940375833549135123389523234281329805330782851066388116983089310130359216773991817004891362080175540023683648703172234403862782241604909953809467191318127769143398684885578633596180538565142005745383004904982441399849348744741627586422912135707332402939483789206877451478104392173385137220874362795396530201296546457026592712349082663309456585228774838619244338850530032216374842907916442284619054092971209333313986178044455150439305618727060386302063087460656396674444138313365927120460053104412702474976390955655574982845302538016344445186660685735829058070045791143249600602842687221160962485499442203925162905036208216361547793913324431513056035720965569766660280279439717919260382157701635282236312573541564790253856427681880945685615056055152331191575549776881612313008069213385555208799268647872866688342876812053004717481394529015457668676622104158435742271119962095282133106936211347524699906610046689655304054805497928099236659162950435318150194691398247145770580822930482495539769332038473381816883513299157781744399359526099261121329757797795947581592653966281616433826254813485446055276687517376136221691473444939849508104872504843859793710117087573517658668643669287845212638577558908532194924934573304047781945392022662045984175963909169333847832068368773635079580642236338524357662266380648707321036816609341487299773062640561169977350785801958612430587615027535438852820537508988039330213823240470280506345802457319598252892809804022477522849140328305116506512700685569354989131243932320215225407403219752416602974773911330708170839604464905300387758335057403079501222066105858387899835797926331736735659710010441454898703037575060178120825146719095813732781384248076534864994522525669648238119547754944122837320338594042438405791207376259381449843437807273582431169745574505886441580287277338091747780672254602698906151985451665907585526968844496240895694656700225011679899870758970663263605721621167696884112581803996411768452400584159199913285953549152720149596483656108923484535927272907945776856646274165187466365031996151864028539269668120824991813064827155775987644854510958343560796811235264593387045707180811712552869304099061364473601719371547585249650526679906632734139825474466256822096243169481892402965719308773201986604514597896653378554146451452435277827917018520459092076755408410205018913883522039556945628240892046760140193967397389084192177020180730436993846520587317812381748752340390328097046491083937351829771151516178115331886131729816324741773159846375499381727381775062488224640752342329681279324912820754026684119854693291676902430819085602541399626852538458643781105514426980949539121501104688085030714931272244279677861453555825161453438857389313311871694253465181743643710319007966079825450394026400989643561266854771736912044956448537200256241025840474938097460297759191247534698003333168935783038169853125899530574747826975925542236660408043611448133280054237529661202348900080803181459048527548160748973508823968161877727012872694775283062263262975110789810144904127160244932914146135093142845612742002357642459643337881021914459688259931549398207753033770808788314294949905930956995805925909770933513797853355661844735152828163794585750909435845090849619825917596770061564024554260410381962873556663199940387765058923698509055960482381696499157435155828500800602661801413688875331557649858775646462922779145533295264329389368730153207398406963252637363596455522097280404310661603189168135672862371029333498143015181757039040288200232068715070316153207669124831389194802215664425523948793828367299280481173034069205985943692954188444297245332853783945013572298162842620234668787281187275309193110800948566552593746033141768391957564837575619240872474023271337044962532698654213359173088090250012175268248623347302517125581067142987527785855833655469008767656870491967205900966497439032485191295369432464213077770946831644741928076729815586465428154213914832303825319197906459361653698605808892386137455509613236753434462615916894427627704572669805912590704381304743216364633978090887860422486138519255068820294554072983612892530663472359027370295292830389333904530221592308202488326666917583287359529307580242935166079355518071129592253012495289097488257811584413430790286165699465538801307607119945235554453256319315293698747846361456418852753255004721617007125497951557300999332090359511219012787845794930250728602283893635309811762513798839082534708413398019839961663201460105551231520783625581784636903268905325520257605521814068472120285434306139685539558458030837848561099469941071521639075091223674038316228642767392058493850678874887152223505211585639321585227555524909017065010255583911817173130271441285210405885736585815526180708441330812412452411742023260650614909949975651217802181075879717223493116076270349324068640610141806479203800834699185109003810584743786770235843598942610868035803467621971980877259412296554350980726389461353365641980556337367508088512504311240635791653561831766681845291964590124262292936576601761210807795229957665950053105326189570861865775493727828437714849225546544635367132774993020783101609608552067195309317075876731420288692102497777324170008398333380327936225806432463194053253310361566111717413040602063336895063868327455519586308620929786099221546293317867289561822876555172768613079244854485721216330159980931166419886464711890466729252760342580764764237638665580690069661327158814870221579746432018331576867036066722496850882216041681461029045601765240279766305339764627748544385851249950374694831637286684124238571546807090454566532000493428696627100812743954634931365094253332547267147576359375674442919603117716686833182995712390207448015869106777257652462995766206995531339218663216034822291358799582179320590098722193294360219372211109978779980662914297757398061135201195518142698168737668180435073812908198303961750226063745690984808272475252150969594037759174038928083115156135744977065098431774437336878316515921352837331831769871453798080040800467025473825503490047583924894493222991426186422121470793851846181674503311260701574921255335780382019177553109354280185843768590034941984354623337565178154542792096266282250954021400784534836028945073054565717730248632522560639341764324013863604449495900720973256688090889587509150245757863799338945507347385087838191614498684142435272869171887192535129768666517236252933704121735661513105072699985157340292468100249118290472538458730660371460200566335560533813020484530792561270803385472619967433261173237113548420652546938787210952534951649356844315526329510097554615107243985376269881066051965958641256460395210531439118059618574526748359825763999107044635100653484102567631127634929266050943100413046985912978071474211104985736311580806869777362100344104596339555504353708679123759795503984818357480281761951212928111730755355139598376276032468590918389143548125879527876228134414997158659877027751994922070579023343165272675234834587921893530941287143111067002351327106037389813075876692494050999636851146642398814727712634119843126978300575386429895075043775754915437667922195028638604824122974461894858995402292432130533433742057400524800627581982230861561910997719552389524597260447283745855223100755574675361787269853762681514358314346802239095296489391888364927018764279124270398334560552195291241934343053809746760571430051890123423916983864588004821513411969157316569680832588503700464847862563453452282622712085723649192175867652006253444725315580878123533425710410394630509212092180146192386850459674846303839122622495783245142636219065307766181366594714816878342829736841739824810175003198939452369536546296212588618402780118174624015173615414390864155740319832858417843255896775602134988320194569728682792156333983428749874711776218424763707393936646605665041130076838735440094110889880777443715986773215954193952483302355904013589340454857386275995114526020684557546992875074185655900239564308639008946898628405949068703796933791635741117363945171989645897643650753331789577222581042239020921226106276580493900786753589212105904419717938122392299513336712721488831289673157772857851934685981836244096767709029936660130316044169827049999060112335882211318862585998968509978670967538221373811531061877398457859613603397405589219449376955377348711787645979855592963266209975247714036769039972708045592942593548338792436884684236470898103781920820588855734901850871752720173677490620674827038407009781195866532589787933341166237304983285180987915152500566134085807210851682723385421179589810494201832463955341607715006971380230512878632219151364727305061850388505681495416675972995940617751207283892107283895136064003931643534883510655222841210205640529796894466480235161230398441013690176539456057374063708231579542626901806415548074112080318239550936476135925008849087365994839850073646322193294713262938907513378381664036617770097809655668158059582280526968740420890315500248267446792388561445186196213404769722541337504325915723839411203282362810465635313177865166003699569798497875426572154571297205658450670462315863620714121644508043526750288888440088064687763953195591939531200061028722675417183780296339549486180958866904791819068689121404435882361519288428484217002443357325294322881299046558105798016574977608451665571154726380068471588040813257898919525766116553175150452963008444725554799367445745630058087726805489380520198149277206853601164111637169873003905297777207019269379107425666416270901825474315122671344206791389882640077850568627143512183021947866935306500901239224215651666149879551725219330224447362092852900665782936846826136622844051041234414865251837364638220588495895728591519531568734547706384846770140952640399878268544378448425836023700132227485927441451766416239385974092594867049085644593612239808876944159385531012405376576105833610243012917629776852973109210223745985793723381895954320675281803781134131078341727651621117918308817559290008639406442376442834449581409385848893655062567448937074168279182178067846354102086923023532425025015722386716085135259616228946253366095332392302126863638905670263761241764251938114806907317941695702802589641058677836828149193850401602756635946584504564934176251227195449291271003627185273385967791589713787253504823827851875951011395203498618279541123913804301089494233073305236369408603683848392501591583859994186557153146811877250869313088115985445537502212400146165745129834446596086724869297436083992764368434154305101691157716284654211213324163313982900454445350563054684234875463694502892984636305310465045642758853830626093371631572806332377843037381776592676740098542570186205083908358536638601309667097874952375134067639866987927596551159650895299352942085126886930471782116135186459831137291470134392129337799606657340117072273461067277056867670424318887321738130381740099980247017948371801346119637790740618131851147914339995739060311721778352535613228427266374142510924803496318598067484529791327365972648211303548870681337237013102226632634630978111103665465515783358670567951254953757339798146863831030833916853661251323633715284111250124413265237417670533499864019706894186222020270912359042752505197289357090939045197100445799861172433608526234290426723824701588392965939725630104856829067911355060728753884637019502881523088951766785200996663827922779261908252465569904717887345037177727671474611297011510153165301303764846885954332033183015368750679118838859874481389900876862311808543161618417204163094665212223721819118492488255847119399992601113947016069676710070698225637068080043515739914020447125892255406874185764557898462580908101548750575926341335629299430518766662298294552748599368469337592706029717946387878792712017442494398137986248937086845827900568100330729327878135589369148666750003173232466435092606955900810408962793940922073757683254286172471023738286187827060485708820869625124915615560205056338229847483739691570893275532285261234653036792872828779695917767752727987484683711997385189532169137199382954970603791109569010717048046998309581924250825799278106146158273986425340760722818573487449528492407185533493321829747188721338522078546305882279418413880978707537542612321157522672132909351989996746680917844677447576190533449148169840143887692945802519361120492997155120749601523103552095539833956482436624714260044271971133173917015682130466897854875942229548569687658106034998876861721801048068812183254439982489100339357813701140503429862323768200435927694386330876809053665037734646096612785981589796342301734361328014090989062084253145098120602357416600838148263062292882681624745868179833779874903362248863185997173534144534017550954600460794742390421543015412381849571558232972912408986388045957410373306510268563440101138265722083572106318533238322865447426640465800134071629553353084061744560908367368487742620995202554116056392820063389530393281237931588113912022284340058482723509071590107116921910740979049132556719284635249896282235556231718218359461160710741812420526012988189925153534597421849226550879074458039407004217551033753187134621770287042234711076934056732433625491186446125223740660671526330493865342878817094142121438380944075492864165029859171961334165768061822553638798177798707339257188133141940612437814626801693106333248991349169240153119184972102672412899303640695969030418201440073690219649583032740289073477951846979096391945671072972033275282605904679109295122767233476488957850531924760110307631584781290837639092904330787196027289028662263957298619502004733234454581670423239363510850328883515684774136071384653457043057652055798755344656244927960759222328612464480696665703442893584673165502109986042153549406378133113557013313901599140952241577102089839187901991109392881016442886482748121640243977797163392180888733590623942010454757706350503441932461640285069550029172733419560478530243478359468860038333648113129538905153353745054023360758378265497444610035066384664640987476055912685261621145611263662534864859794766975785607536157515117380230897948428223259781718571487575333969037419344820762544329326748629754403295541653926259430696532865369728228473603828697823874065030044574759892720921438553591833513028690856754803802068286472741865306595966625221840336888128541170153399615265620969633109494661978070060407908638222341865468442387207975122575664592255969679531953291921389310426290597478727439846860862284796335924824278298229213012474116001967416875198421856847920096164542287213640216078388362212498006249730639286465533986129623043849354409782266376816020045549192063482107982774540298800960819223714724214907069932505249294882425267143585294739517057441377188926579169492717422097767962056312279692670536491362201690735761722527482698362137977047458698392780310127110954350343314296036188208889216703801921200294698797372619726684245177182122648932399106084906095585015240432408175470743703214684932708787771030318805059572113059659965695910290040581443695699420702493422496894705808432601443155218669659251643519165872888551331974968782107963573732274768524927939459003477878419763022166891929932894380813787863166753474437145451249841534917880543415078084251357845480324457631240791345826092225006684627647485952106121612123422353221007291717982889802431737924003991869111066865651389465288918334712039877471895415226539754431392097135150369392863847187221566208183363278344408674885594835591245361124287186693513697596111400787321326805462457933194046228614828592656039134052028551637038410480137797180501946893692420093835149474050225076180413365781963221141381150562575677591124884112334781243827169272315548042482675465365717839183335819539091647104551048638286024611494421110751030358828309351443167194870007921259298039145819865863823041281269917561958477592458886618604814927887524058021674581740966689436797794087805136845369731224855253555104975666283324140899314308021358497081178107083587052993835078932926050564563819153646005756257538018865114343053142002115372739682699140646810964174606330679749405476043992021257882458820571268139250268731493114820574679664773138668502388570027758801858566735203737869580069502785797148768786562521843944998356071170218825901337976383563769736414563559261321110670378800616070592795236023732431619265364077905596478870867069118338682912530233181965198654842214669397941373289525836364317936087395298577879086302835298994033046002014960242516191694228317908143853018829301949416113483007866103245766533781756037910590306443752921659312347073643808563006347928158887045509687431491352008102787995891599409240496057066089144151746166474975606718698995158406057173925200231834608236027346494777220687335128435350055992460995568270511152043525146386707907004106007822271616463344110432847345439215719187392358631759836974872774295687838171427879802455712603723580246072808253017395530146691314693578877442211245871429512614922792632354636827993803919817026256818029662347340729136345882917581727537469309856719234588480989011210659333866503453235437982302481528360481284061337744272747515750656609928241533830089407787128435847990500973205600826932273654134729012950992633580825978786451538217801987549498137683819034431313692536350904213607362100217848365873815805459065172439010918672854144990680030145126234970487474797778887088901148059262879306229656750803378835113888716428865396099590766014726287808242882758107525781024990280259024462705973139083568243060939315798020963393382765036772197448485500712926880175725906059863268574042391086078968288212606911919906459662713220380555695957409648789280242495855060685348221761216229137790662941617361161187564945279290307477638803995676665175519892713812398202492277102531136540656367866079270252711153741302260128851749794560461666354641383049796956144620968443897313380738783560930902626193873107530165542010153042582051747432894036567462534169540804017050557464085687630807339014136295246007165237826437613998102674215033978036418533828615215688675102272792665360888599612988926304005926199374627587002541241146854592692142446557067958739088874568805778604134510347157536526563303152027800282608195358832804149857346894716590366370059681766395890529067821914654850869106011063072460211950771675156248153735725206227055175641127188800072741455285246418896029376119107013610881177027090727366917371390262163150047109279027368156606215942148306660430827920419464226087103748765816286515759799750521623987626398279793863679169157037436054201568671969521975827915310484774552861201941896487541944312799304074214907392655358455847211145641043310758198563289334485181643157808589157743139257104493779572077824302539490448694703453597840446600241663824187638289103707139234625538380442869343016781000872806061304926405123084499136425553585513364089990999799312630839281560190384551885159359803943763618261102874014973451155704987862661341273861316607895532209760314006683680321623567275537140558140550131527053431968064721627518520724536808594318042360757030380018865847186136271550717281799988972852155274029780649653374563245216612888382128483067530703618920152373031491004278630494913599825336878431596732917370065289041934237959654677826795934882726612739357732021400781214813096871650864030099101456478485840332591696128109093557387626393109639102780753922995246419791964513093079676031021802957815921489815421951765832841449338127590708138696636981994570384072767038437927566219028074577212696720202313768790456401295520212941257725558026290128548668919307797857058750102726858159489670786115752958606945069433630474171500106645937952247197251451841780805368663284024066646105667833464630252681277328306560775426309096721510266414841741416408769289917449858968308988669767369491736461342641679553991285129918361096843250958666424188271593105518896545625134612035715192592209022535044287390538197011603990950618260502720182231873793196755814673904895814908288505442185482394019331232515786408583377054909384770881580902228435760777157376243076172261001762147018718787058871522837737802793213985032345097899536388790355553076330734269073781866770834665686664767923734410329690543143880285742501785597751515415179862651878690878192832904441697131435042334445671457598517250090135336866851542613939916972017150651772809702382087030553679054584773154687606079140436749340240072985125580756797021028204167196973936621042167562761972559183841513856108602406710932657420015248054680510016449836448833175596247902413028760524658814213335663134300528466747808358213868820465512950650824501774327780121967488978618149441693638864636341674643333493897895478561172660329182307204472046889524901595079913022211032566732550272968393012073855186993792108320616616792360561781254699878335342304288470501825043761236976898511410671257568173877959773983517613717712321775124571583016007248410430586909894190797136363072512073622386370885406736058747173785790758297271238742062235442841423073876516737404445665676235719618697228120405584937908093571835111415303992314517304351851546361762275188436522168355682252081483869320611230650918343742652058488041779459322677794071547079754007458229774699731302170099178154184011418495646567020295564303843623363481075543388277943596818607517035728445474013773652510047064437227337223599870876679362309242915926193101313010039810511251618820141603149997338919020175959523901743823893495333925853658606372812432271728105035181986818780373071821596849412876821426756734258664279659478243275474106439158830855518462207301413970027785146378364106223974566098839043000503736142732154941036056887394721844806256640652511923467584258411717714584732762002990381927035871654733454612377665940747988128707230355883318815794600312909793510449459425478568402793689448806460189070704227395728822774352662843563854328685646205970037074816224353225990037138365200937818653166639882922851716015062634336211436854653983335247917115119961164982306861640811275727007229691931685601863414988376695394622024135446341602628234759021553395399315966458204812676536253426469480248669692836007189621398386331980549480055767472231507798233502276904897792471540081307684927154438129522780843751421957410399941223502648601928010832434261482787820345945400627686936893789983584332821981378706167732670633025824756601616978807434355328127203838130556178576848774178159033203088981447552289002195399328789232237495405630613018157668593146665828685576334662292801236271799546026925758646311032850591201662717637461720161042459063673907385017788749633289370301892710807901711523513827696065677957117040742685177445759641730507979361725535486572559487263203172260161656950532261559664464030141205222062088327608772900554546077302725453165101616737399462834271959346790557674675753609410943101942054116524670942665671408615007880680734405806570117408242862338631322521452252578621792246734345836506498110359597035335802045735385283534368929672626041415210794967643263744024653672960750008341741162067824944615045373559920441720930129865338842704630343708801599121773892583985851087387357643706273483997017720942002431828179539934349548144939314528207301003801934391357023358289022581840827463226023925183028368626662533586336743921119185738446244747681726439328336896536716837791431004597824166771308032748639555382141368369809745976455770260382620839305919718114742459668263013314193123722510273048465996663919777488987504267734212809768167402427263120626490850245303142575821397132835493590949160155704850151890716872337979513611267041122593202533574230858209758604151391015007797626735103134003351922229755702432333668419586139567534267392152631663801727840192160547086287568037554917947732391759458312718005214651172161750494321833711748413053590645059584432358629679112623763432236497271132889832279819628530422896037357434955623625289602251275007746869941903248629582680174984280845587996766330756602153886595718678953815810815445692470663234395402491150868107617777592584435222389015857459381227592174572900054965052152975083034629349701110311297451779061915636353402578619837371863969103029199441367942032451634349378918501507196295393224713698633754387825947113340140405893988482763404972428793313310245308515892210322259351297623518280741169715973532846020900170297423496587002401083747190617903404513862591371184834139095050708052497371511313259265241363145059793091607155107781140688210798207364494049601426347779402347470936173082328080215231117335287490166106177316502325260804698220726041875494326091995634844715096198783771336035816980523180790577820906630054320112628454877835887188406925837722478443399273168221170384589038649101685680673780855769163749456395271484730755989141694278431866001997208425188607999798366248671111864743598986206979574053260293905933352037430666523596622317263385446303489597254546676840673657434274552573386196740274357976913428171963754118856269168115448785918718481820173440612803645314770010193452568165154220110490124711771786677717086747591714661033712421809039252892257316023015192935606496533439574756873475129680550247072598137760565629584922380275890216959664958769982287246177822113879411211245622302714825435587877403505182863164597357771648323364118187879825346571729804231389402550098831943442865075187006741697219535956722984904082562502002126123219743863994109540758939374212774492256357821386318941919738647887102647790853619072028705137622540854286949687194279342605538814238427883048975857011868638690717978581273888762490604793407148357907800841869420218145341354906606464467764352999750182635284206754301392016993313272421120091056621393612306181592404054179294850479472802708492758464456630779556983565993858017994295796451836267703037690304637977399768825510676058805640324992373510905159947594357710583205401083526429660207099260439771829703841469477988406190923595860802055510922908381808531717406937917179657957349655403130496072864528961805041248233929895812345413846969344055745329960792816977133392867405337413171529177810811110539957284433893008695712195272462384505421201592520341822868426921296108292544388070435035238485463477644835884663199937981887759492988360087102684209931414835390629876729454892398996987324390421865341328251882895592466247245848828243120539816829448713418026413243342787348929580683119341158005097047120319823380436814724050067574122646212221439087166564689907332974794480023824700986107980071589146958750271801506163264377776909236180779917108370431827644142718368884600545221049778103544547853153810213954997578229096157293711468202327857624594136246203946182497296596486993785926782140046153081751803415498308037291337080829194997054357521418930480519926970830769872278956022843998999175895311267287551932629577391822726319363803386233061020590174871969738792266672980620361713173204890429458597526255311520615023125863522233175219855721934622863022162200881565297640786953402997844250659985793338722565231071374824445105305163073548069521023639446808660914081756639009917347637012298752821843885392209957920058290985245915760883830168022269884940177779924397444751889658880387485838041452979504932507484392724046451351069058548994655328673349915469529289644750823879600795916096925096244353772792444700095159274942760173348972355602402565142726372326948953463359159452196323452407020521374181531457197318352867408545028713561350936016289664891130384599649687277640265762684032334926964920709962785929444811951761776621621950221472770999879279951579001463273069303797528751088666944685572150647610693653405773884820624918462403407415771823559696389179472225855824487209550999267501226179605783484422565415791936442129845002142928392462471908990932312717945467175054307994618072503947862052131418063568192379671807176297484445609213922277294591891366143242348937156740975306420706501099672242681187862985505543025964097102840476100395585012766061520645064108279126363557912923720078265447346318808161812839895007483167044152026544259732657530171760404558179823587748591823954193909704676635082738695187898155049053633602289154035134170682955243097573297180056128946475547239791050058162740773932190203033863544496984777601900183514822419876405428980821650647870824997725334154553131070837426108744959297041969582863627148384766866347498284071616528460041309209764148735707453225805572931935167752498702504678792244619684815941528038009379965099761322677877561948738802565717789357558718820464024166778914926771974518334254836661451794823547792744875783055821471422218684485035092951617252200044266463591879118799872920885934240604700986476662230712209650947632519835087061551135352275969754195642722675469887754248958887530026024283280848953220498139819017966274305525362695427209513928959582674765781906690839721448312842977964383610518251358956439935059812558060349532704219017062318865513972638948560930356617254323069458256140486547956324889352026693953367268429343135236714730825394364865167217755071536238405823951162437432646112059840034937084060866758780405216701231085342818320845919786853377049322964547243110018862855709465178344139767283015521641004877285118782509144039375619229402178012227437869462110067177881510475429469567668637051027435406860451501149837626542900494765570495707572598367591054849801099959336270116659518411752735753772881249267815392900169774944515747425642654083665645313355165802174538483683810089698336176005047976444684594873421196328348321601079774445555555822666510159420764542958949353951139811645310891164671534408313355805266625201872979181232634423513630851939404366277564885657780706841832863114234384185071304019729274232795860135400760202546290186328322928078085650609913388830411369952591484535576396211089876311351063082083493713800487101622541907575030280878721912295763403701759660042691193733109582086203542051883451707522127729069572112279314222862326485666103705451686842401505151150472735833574591976702535873286048707987100085637400178965856016616778416760632480309403494491496596219544528894980405970938364313758018260870742701437883340341426060265652077287804471168732517321242946341266660030550941133084013251013994536962480518423485799905957007101443022193547833261868886228747837205401642719841077182103169740224675313721221929137916682976070692074944204136643954323512503717184760558351495511339225142580746429923516308398612615286748195822907684748723021174699120359154899869002823303887475486018819854026594706915075528812753908691059926767344786750824938144529450439074551467731352990647619533785156584086493230944065566618177043808761908011994155502036165858657580482103896157859735004880979752839664769693958261350469492121031420982491621579359298745206272958884998936897472721511288127919179642380190433953055490325508973866062989581141728138825508673137105562630978958519962070484304573638667897163452717309475710717742408549441754835832263522641211741809452599914642610214075560717046564764462090384941425621098007899591761423791135433850037446328484476519650596004625192050545209584540716747933111170287689605706326379671308529974973158053302519874825958814698225278256508922313417842343520854590650226150496259881543930059566711911995231143119334582279701490024542343486213988285403106418440819284993706138391060364856448704661637592495437062038811517366553313867650419188238367938661288585542718729483674303317596311341230178293388675481068992912663133985841668682482112982323594289632620936344682081403393172724226926055380956642215779332255322663960620870799310569859258174367534228565996336235162650530530497256627300759824002485118968870061018960427865409924707875792362862151220178169833289051600249109462151207637770907395428111750688883234035845555296627185251702256794605970034744302880004052831344118178629128162109586591292538609147946325456909311527017787645096251158189286705312451637485396322894558287022967689036945685741013191607177838908011748286792704303108161212975394079328347020259366621683370479872885406646122273672432026500326422053435711831580548726097184215185462193678500001497084678209866302465803831497671541197962942955573087323021840662363161615905922426130520258320600436073979992602655566099020359156519180129536216779050861256388878307096153417850596573524541151991025386636616229512191094790243798334055653145032452818993662161830201680591897889308851314107911142398467619740657800587685248131819573809846095009471408533914808158885031845325341185806360908330785826807756214703329505519259376398795929826509417852741424961043859542940153454698193095691748796201391193234265718406048932658228065488728271906721290202834746224588624578365058010028014344481868588363482428817614501578859709029360821630905190502164913155191103597451304828500543620403347157966823081592559296429149045599786933564299870007298557645769142513431667634941979251622066013119913105089407097285709745853810332197622183334726816058238029174009829044817327892974811745048272903288627933388960764605770521656446666988193578236414913036076125517455715051397187769318008720618687105209498080347264977448900122438973014713890729375307313792409497278831428231148898513874073173053101565197190686469552940123729763857083417727930688464421147153800604738896726302401949954273620748891200247759522275655247492164121201715863422101606405970672706099207752708670662054743060108704681165131159075425682031964865764766672613941282131954084263168464443761836113309157581433831000388990342310114930582873739792989451587258227743900003488821240405902029615956814019901595185256239788624504393350243353486754637842539675889309707025448104386843327874567988274897894559721600319076224947780421148299796303844850092482950081681036217752987997158751062430187889794465229109275091649866958744014278122963691348956371139777593989801753891649609153492113051589724102477435886446011041183137100160564698583565183782661244831469524311945532300947802190058245356387831975315160613112376384630057369192455013861312660602458042150899828011471078595372272606969120403209268645576727902682745374037620379322526588373604049037672191886459022172843923419378677051740123934171834671941519865999673764333607876959888298692525341574988373201250220038551882274470690667359432745648637180492355166174232330788236681314610283209689210088317007823522863418116224595895403208262930438616320167251669993770868549621374911150098734439810462626111025078293080100956780448953167108628577446956794196667514854176336927740627618691775399468470189759058175557842792046564433072195938705922750780008083608089445807348144733907778287321575876554227450057004013714860974275008774041378763411773947444811630602436105938816707020260226530198797193400022186752759188966955817719585564685623806611270634507755187926596448980817795139813930184112587236166511605975614598960382124518768177526680869725806048688545663785642352530595550343242888790163123181715878408606024375101019815799203220087037584761579648689455331798645347203236821082011415958949466991130109500995643241885390620603017351730561319764808243557216696133812384621563434157438880815779516865978298937562929039472360206772707384847559493455274510873316361987726052280294518685236956190205753375581084663260003181695607877088237601034268628179065720124915394500072895739821100478496735463425714297682630839120719412027648005886480217434193887455403997634559095992425952216151673680953440681994864362058259180285064844695258249215279820014721308295959077878898609633166056307730011711035414309621841195398058967001810335623566921101699840830386972440743660174692897828695691395999497878110870681379576366978006452279226526277336356465547128857922777744553791227929782587346927631944084209815546481970290907392416363890944184682713331633991211758703400679875512871288550727985296371331660879190566711781318754288141004851173209601745492486059876577152628911236905809886189251329836727046890041061789201430186481917934366919407979030696642234996254800832708130353797260224862191802632639663673247114705136865546153379626235654316768593905895221664513027614156520747104007466217749724770563841999310285782070561018561151729731407445868359240835441190379784352542284557315962416835515659082283399822066251473232874605009152765453028134215835465246095130094899705152662766257930614377728738435428255395411142032473602240516457854235985031915413314577313604869897468315503762684675928514152717513638437300589566838942941247746261701982594833815330795031894021592965495511852796469834956172567277786146328948066212385779180760393131173628981851862226791655325215622023492948804965071622914196169929953405375311961873577547956588982763952888004473337402888160025263937595244294875478268642910990120821330339284042694302864868739377887426530685000082161196848921722158503560734011202027768407679426597784237408101368620314546997529213484153262174177725226282986459894111868574137250663345051290082000216227801239074210326408214677911294025816246333854041449164397252756253577010741342439097635811978846588965768681674283151422316009636876481719485715354691876070450626460383333516308077044554456370654090406239867433110298092926512009758417759863661527417898891941588125642506611468234820056119141786486877092039969425114037800125143399943982873837113191250364947208502112154160738234448422339105749584244877258115163595091109639352350425123892202485796019910867123428804608995148010842014830132096614380802882186197393246858438682513487137654368551868258866837848328793741954972649061800250997360168543820532409394620824453354185717332964775067743794484474655781169096663001984862642735686665803232612278136744429357398648182120446943712633754156677007418641375060346296111459613005285912053052161189944352447024221295794569861657909263258396344784237267207070247431512055853640974647866889538566460286693073299284007085699336889312179647480977712523009572287504919266977701540161915823088589530330276460767511049200659181260770923467874150661307836829843943715747043699486529167510651464046050611826990681247142666462602164772128178910554820967396148244257385203214652897709005579304091720254747172709276213539715821855093893070015945719557275152142557466344045485528380801625392201207304466947758126199983416193615870084424300128606788102818643032068363218023238271046588544742354032326546096335290953286164394654401155847559586436698993191715658740176612306082490494480210041788281331002093795236949990013436694608659551229014631852289441143442798193670891798666830180625833819144393951026210830922494111810865637925928277227721218758038204234277956022311373332104885505578640331679486041105306430510737573858976125296064584991190121396893095176033335881397179815128234968890130377474861426328020753739820723518243824959693541378513246386742150915417886890475144723549600364492877895355219909637706991677309815085536365730101934178367386188771680360997294389184410162074150163844146026386652962881212358012425777413466379807841563868717136569474055514626017087939270597716482807010865677931278176540608847180182385498630708709608490563748227360001284298185079158830632089672633750326580379775944384986624605691452317261028138860027464953673165271810569772371342646392062654981621937755207343022223469667615226173932232891431908304935698019533353446423522373119118924588988476098733469390460778700401792866044741900634348925189135032405159404080503062706203459660676598099236210296812111404903640260579341075267804206644777512822973795321949469584980204665559921416354957563746985889160027600434946161936942478067560558537363082302950782075632630333130738654731427412511982406245645956210964316389546999349354848928891496993827398095181307760306756022495113693311579089721849155871364201805671567521374517711186185078436943458155179946449904627354460909213693322336075544645799131924731381317855185594277770649741286902820220542262007584208258217916913228687186135401323151786796591705397961401099039606911717202275752118082729709948429354117683087447623926251749658653117968889620142115952833695144018519921578174813375419507057318753094982873895373893799056009433953083364937344479364878256882554405148822286977771721439099227218480136554397903802179174895968843407856368504676766756312776139615634749032070469715461004005951261865861094873839711802393835195319536469094280000946842251025467237771850494206268243070665904498303102386437830821303825900504431793376380409445940569506496668349805857351556196276152482694031947697548089232743171359926198089444196604575754688415264416671227004946941974575702145869702060637874453430842699071807807119902077817668731459695992203880843228126895701137391811778845352032763962401958450936842733515837931172656471890195254273526715661709597026225668257266819379459133099600780519253204522818407299250363285269746155855901205103772196887816074940386605125046952600287378401778645463656031423098017610879436723329116936019938176888560569566711416842882503923994190408025279257572061820125916398625206968706632460492816764418485996474125916907246210268051750676979858414382021421561280900205837442212199775395497542189984182355446753987198263573288566258174270393172947115729759004796388071645648004745673679341084609067884423888188622199125512973050022103018205262659932213478661488679129915359755232831409382568066089723668752243357398829064304580334491679904784554047108098306661476244612581469851939489982919791721326716206644995141318659748180563204487956868032395746930311131127381995215640260750154729460684918999442257776517838274102341818496539542435422456498372219512764963691312310082371740574686203355088602370461662905837449099449820280860716585707299252256675685030666300310869260538303355765198338067084674089256971655916933093441618761261690617206426206883418066967389882164265915298768353518187811725422320597902490234558171469136809607491920690135828268384619748771136757655185431721133820135332940059245530851111224038701815348188071959527352413766725694695454222248881675603564582927700647690087199407795409333591155867703216217014183111911966563243750945659846271562207088048988321850294017851472272788446794259875312937677995667687945440599242206320438661836381098566659680678002673257065670445766306187292091448083876979442814793241187105919874031000653131020273302368124997289235926155915834498772592483341407463336762876881760378604007513509294819564383961195684913960533925962488547231762871081491087529308259676187100098014183340058595827079887253848711339600455426201405157469139334467684989891493985980654426243843266417894116604490587523051138416498527118903712699851729282354960285422887865378270120935475418143141916042789239260057888817059026972982314253354472676568337980194412469840719173313978739854234511024602441738935928187335547178798923852576603624612865228068158713601207460959762935408148316401038509825257371068259133681992472499379220667133772415669350806968077806790225811389940320472331588078419583850506660136873335341738203025490279035162572220563294447219275159169758935889432103020613007397618288274233417630558243655094462290556410001809951166990697998542545175506462780596216895039864766294829696348892395125169558651851806426236734958846828785402616617128363103410083751906191890208064800309452600162763272721329272172028916959414507528385681949414567537666776098100906111858293218044773350531230318744563328029998225350438725330688333601252974272115244167409400594474530954552665188497324372287072599847689559567344009820793878627483057516819255012364282922873821526748988305991686470215956182180586848043114984267740635999929071697207072240513544617267957878809524873401179964748829005798324571977370570580018933535407026259058844362065827543514676049654941440610638050004742138077164740494005877516347880519392208684177649552236390359179009647465381658753253401486029196745595356210624935336901992723452890643996331467552888801575443791017639800057255889942035773218607723426599180850362829649204851596365552807142329135341884937935208565190206835672025454392076641618215414583741866602362915486539093629643147853853809050443507069546527235012586138189458241582532439692894115343582195724765192696201210520155089261780577216188122467185943725771503525041920849474734232147891290276449148510141429722239226738584127714712462114524389959754025106294179192697356037282816830066809912049503238023171304897970226749122525944828103768517718533390360778256662069248537639674267021993396734373164296302943716384807983852514388677954157911114455496359249618654154634519540104709186093439285246972622411414651555199796644811827363496757251480790564750334571203753655055137117589772448908933712863060895485373505594437049178667758696748285080876815417435777715569821172553370587869147179007737521153606827297391174947611890365215718118058594716040708574031317502069122283120263189510212980785015423495480899372940551233317924891810742876048404688309999107193526949319982399990223297008254604313759300028083791681493881357270421876738680816720961223829806523305942116255924300109963402758990162668346301245199333738220981215378338885638809408096556651445630834119010858824746770774860733541220575497952731258537474676836335360111747208402123639988825320798653957246184642844055733467857733561206188524087005980799177188954664518357956231959946858492527258672426480192585866095860808511734117973468972972814545653156126579725519104266701535159406730764395876222595009732685172576600724273014265725336188812021836038697068492161912846455320387513220157561516446061381012847954115312020386106668150552746561423056012884533596859113571212485695332989097963762892168195019954546403494681122497116845583764051069755580749010353545658934587147665967020524677496148161657599611631563290522028271348775528744321390293894929042438159100096522043370776989655087126832050055521024611421193481557244433965542993279624734318224759624975623613174619343158982058699311683722730010829410008999819657269966442970129606747607750831723958642990538947797582498570297653501885926120213922235850671222960555127111025353675697881899731382200261964090937010945993521601404009474266497611685463772452179926949656685953083175678350161265654852572697191649867824099395685148525156432064541659049634674733090795885441748163763043485734368505830359044256388546913851462166094773103225111673929651215740418877890415530715887779886339877156578547807026479737541856513597212133479793460153413767061138175841581661716794425305184411884214005871549018387282312867999130961723429495019338742633095362159314903229025137859354627568416078805410409955677068293147023644090420516679099246110067338043569556639401297354730785584160210443465046448860398815700599790549844864668776277614324962144621584577234584827456695325978397158844759265818904362191356236075212806960761638779833973272873558047136619266158440722531865344054043611769036899822356654140341348644779087512270387423259298359990544158886026940558261368591901818936743073663024989546479538400916019890399893664257478190988308261108583238750234560943490909195218693534000534495713905621470611648309533663090328269212122193551726871731667565568660998305700687438996250038392817617035290263175807585984293436867659830928627440636055974447921359357897623524929666486648762661459695916056613644022859793261230151565001332860341159294740442304603908475999768973230368614112430134117064139344616089914882924060678574072464155542509201572258325765658682015245600407620688713184381106527807163604236299292721871641178151023350237919493540727996735091119951977527709533572060433155018218698186963461178770779657196065821881583996004067357342979287577941317210531201453409909262259502293263672917494993249236426559388722415494495292037529308140320762468259599195036928776970070757132694653187469726677892719050170527458447734689631507007893568354201306222162186979225860404696929852407657164370481440981577683399439322584412366611404436778440515907306373163420964718936044210107704511164333450573727320268370449958760163741797751388175144703592470033216483909402327350577223624112930288469111146572731792463937705510689602538869686938531385776150339274083880847126919144314382188340403780717259349469958710487621890856016645391281637308485392954886909892179405279663871876931165477168228166044321669429437699020476316594230329916758806228289304177150591990087634808686036183891610385393327481626502622684343961915486683730249993547256531759236460466987839958882999670595809809222296658787617594076031361685789721433385347287723628900864248484092830746546999450732017547797692779483982722587985367511850444073873026679748236840795566555599804080389714533612610366014086884671276550455798185264104845240702360845536089181667731832208261807336952270588398316029557487271486226106914447673759501388104758584025172042320440995744520671530326528980646516867663373777305053264828380769195959340468374304736303540287697573063669618527302487153584892572353359836548368166798300512029280831473331308296210180765549318841965598819645579140121593927859461309626753392512713152112304724279598815693853853483590068501272018738455789339675319011315840061862360585488524276860948912308701793923049095780845486886883046863708139705345063456791788733000645557612982955819948393987335745396361326206970446843161940797871009553351418351203295644595359794298468550081626458040138514180588678609633094271849924269535785585067944219015744107558573423688793205102894268980523040707435920949233920828178655840082561488234331640338087176213447372893965818505649071657123307515642563854469040506315600470422949522063806980942417706870676544604807697184227371119534018278920548900609535617334410104886280696094832760349637417719082010646962215439822847644500764241317435725052088552876720436299072181681958857871887923562613068185761292459789037456903870763583629212614868843369751023130797091663097479062651135944687802123793601738540722255390353100636014722204849897565212566036198954339702773076248034275519564434417343824133210106640616088050397217150997370414093956467020228908127745071763107875063416174316922547365831592851683801109111531696768732715608897405702303727330734299981612802939969007308807612743282871121461271202877749669122398292677591585712764748598049101550827637064137426927444785840946599221653608896595376421210283381242519183170209863194003436098184984389237265216365681144542033836974128108906069645454204472256367802429855868549253371673923144380892042433878495478771207348332324102750912034139888052979878401626671072223592909554389584429086640155631593074853296924867598418958847080555950677277846562877800392838325661418022040618933896667566050005122520726273723464629554512227729946023832966773835808769204945167042777426016406431232653422036490810279905808600993095892271503919720616690251255577922686398727472493991676718901591765718902424129763163370682003259379354045375953920389641572583005108796629950752396052619190962714069032863027561439849440231421333696688675108739835575967624520074091043115471214076273863843228770598019465635337009182230326776929015657088103852464605745864191444794410487533639789215899365341608679131249791084431070012011006235383991869247172379258309215242107705059132762311091018917690118129310483510828460061601043051412836405422458779609179872470713301291816737443473043673637536809445459447379209034403468935059623050494150371496417958860592547598356317434908626783099990070838002748529401963762852357023455298052506439573997989452573039301923417720597002313693798010307663580866239949706236455375704538726924694246472280940420508696534931126310374638125786597387032220008605467201565219339852251311255957983840083522196420312156138157512313506854878334093066260452690591882137747367435049945971752384815026734029170742350729534179135162850546773973074940773784410517644730050721961574892378068097981632467721215815984889427084584651885313941662795109566612956798683223034506413401100937223686604978777263096998095991510575689807749877894812384008390409965852699527014692934683821179100636644595726144599178892386422424603244944809900830932082212893757519444821869102890504789553158419818108334718217353142104431839234270411772846420223701294593006464367916007403175343948306387533732095488642342212047232381179232734430424224264884402566583186882311015503519611757498709360173679998338601582949871900330866245168713080840432560322677948397139852761224795869716773613968004550424547120170159142438556098747338185349783038336553380602622661945335621495007660826575940106855161974142642074261170080692265059264327253809854923395715796239591822427460688728889802972472366440721276460812368201312693299333302250082814126251306979475059959280549174595322890725377377667349216428048414365988887392655225428388899366354556541286096901582517946822610839257709188282079209319356372468583826493156165731529417267909972999735350111021631400859216210289527529998363320107900746342942074965747417126768474838072085666288819110424138947635300898896955180082103820021714468277067546319299108000858197748130103126898143479785140540503652788477494669046470946836122689131037527054769724347885912550056509125267186317850304398894241774554187580936122970302809826126614609004510673110138494119898302761282046860095372782453134547467316058862876711065095554327525423876026613964888529539925555694761561952931095315653561825317556037253079246262934816610462648989734565840253454376006161295180108075280794762050197248643804579342373001612326999419923948067437510178212868195580003717332917935806633607091126932599354364346709884296516276484148366417147612179975319514096106816656446635845566078160759363467149896962416200525196135988230567814958637276523055246929626044235292830007243180971786987915347222407362999750841196035159632250271415990576003904944454732025378915979716009056265205412765425577358565751691936649475744382263366066345890974062345964525800618064965061479187459632836320884071525801576828093281245539038625515171924656161290027062178416935833465326263902156448152317572992513331651594122632852809071320856168955439883947380904365403348427474818484445282442143419670985382578534350862960249046215649265062058447362318191648618059744878790363258682958855249698476626212096751502494716524673637937392819552970049913768467187332242314202934980637843894477698257866220332962828943610635284342243005256840540959414435354686910206965411607129757618355552304840515519145535907689748096268604042839231659599873393951403156615791504275585344213489263602768578167043172207155886860931140391043261341782316091565533828592838898901395958116867303193609581955136724179528345507450439173307568684295775646353277724551775588581065373078573985023569237532961454849714481471915560175773971534871787204152096641293113214629724804252596840220184604829770451446009000287779629640997931187117083182058420858320746637178193885134125357141964431315635520387079311293082594030578561830823966455753201170542369627262479000789823053438444245980846749115226726213165173972473150544971166082411285305883780757652355648113525844204312452411715559274112491334686492221001437685833882389748010128843058294777459217341138559087312134585794716783092014488595642426722059325908125753348199980373322185004058205006127870802317282151945314991177889016169305140504249045835154541276514397820010292343624899322973354232249015913389989853426079427230770268967415496327230082806799609542780433257355922857458105685245227444714604960080879749133621745689613648500503780867846120043735815674832774918236230352675408255514801420209912466579641768448545174557868390632566489150113256766128687339025816179780447673032320573238531432019520797868617384033545465547882986746748729017782295174787886039498684602820656831600212371176956993700078519652519144236597382933360089687913913400349270007620199459774879277741420229683923675662949528683868372477265301887462572790342159455175097771897456406501687055642963641252464147575553989728525216561838419054229986388831415426860409426927353392053979333006380653671222715554022652225627552521782391482459096296497760077669861149743584627647128877717954695494827839477309694547687369467991302366517605322970309821198113513851650831531831364848481921717430556261660358571912407941972389544140694277989280204336665481256444192222461953726057381366710691156324494355244762186953776228528700821402879994085464123562982479864018449873268919781846097445425757782280013668954573043718120730217873788523791003796487440284239230157250863744381393160569014608761676997459342131141826594814093021874385448620910799243180125617886358525654483549783979673687409817610432786357070341418806368305542197028138579551682001414469375526501592123361761543663666817509142657547342597064633645050297645551560302741367795844093463100243911793537914912581445477246070405340915216026612645016033827599242904451125114871693160902429686558905492841624810808929632576281235174732044423028110835078415922228094043704190817033226901468657116004135757831332157657755023194388594180228607351134313560346137426435625191486419712160798682879351478379232896900507503962253742484382762059479640182762020729418906245299526558442735976338369922064229222505780896247978076413123146854137803229009279594657783441576578479712262150749035497017062551254236894539998352048558946759482598063813784080493151538204837775772280171417355103792582107106261037669393027717637531785783440496478577855270645924569952291989463139628030051804217983940385289918082903844244111494346159315607518283262607325304911043804840751754847004449983314369579437186614737805739741610845376144715509161308136046244373130776875718248605118760093923313486705121530780340242160445007817657770471865006449014869656845888982154504050820168775302351669330751648443226924720586357921262986519505068969680765576943063605085256845092929684448511187364102243300020304430278997342773204829179046818577555483035932399654977317825958187907973690905881537505851426136934455525108573844485227981135698221914424080084356934111241929303754882146106812156693145055030866333156990127069024417398576852076394370682129193417589390947026572514890782989505304614405988068272191434628352262930634153880898020393307004967795740558139463233747985363793988030056213179630891329241329717666587203279895041775200951184938787585717443317050394595458083052427028563707808926959091740420017718582196688688502233446780443290127048172603315049512758684482093495307761760876091561515719484845870767699254265409097745169228085553779677270456126719295148236555744292019766938545605900154870836896969167080128701290784230938661247375691358808238946412498590580306941443443232223569807668288141478084173893236832497520838440142569036038808050143097954584060559493566303943929182165464800330220424576860259381912717533521457341186123642277402279091558687914556950386245099923194928520379672623253193761562956614837529802368837182764134615692873118697403775408159607259538380426530476110493821307394898960178674292591112167300771015227256483530385351348715623246452202036798193886311203610911441452436792164560896411628505498348914210156153829939273458254975438042929012390684845202167074242052685990842608087956364080202867821298544767076503195751871703296428371035458600013897776925954349862735550329947852489636060192778572034586976951015746487555350524119502038635303760704316054490476484306560218028905210911401815119169464918395984316732697430210914802171189769483670987498464033280264618506195987133865979036338672392714697388469950806967609854514424460451187407484741533371814177289485253857153806720198098955100362966612711790888168549797332997539858358636463624304449721246457772966231750744563143753416261122497328349566493162128217117981261420913771183013751844063490990593692263983712496023800056710906403670172491918153146618668191519263229237937430329084853566198530273526311531790724930196453787855139075889377860998860392641799349910611213550862213048021801488171810608152843413387508481018998122559278603263177869290212061858785185548740915057013182304986352885745628447595916493382141720227434313846194748591589869810718994743691609984337457546955799137063166974587888038963395716844740207139756150630100610847396388590182574840618716478534783918425718827813466665708520108483899046131811965015457786792246110186878666698049076853496321590135650144241036774288405151072358779547208002115089744756786474005352170909968509866643301487105079723961603546745366043288580417928103689052391381434680303489250830538272708208577495428587855153284565975619385289724387672608628689233359126416008596764196067933753823694285913142630745345849484330223069819707910811842224622334492009427986388359385883771476184297784699545528772979743456249526806718330738897819033592434438261201420110692845224990240576138678103712555453059808058931226562613619878517275141137573756014019662489778254490585908168668925956128704024592671271578334247296203579269646498935898048099559823142109033200964250491082675426776508464773693749588610327140476009680506272782421190400070855843019502308596257317330225482568347370522423796840352738721028889872638364540721217636576957513329647335727544028805682017395206532602175223582146148333172046176987161742540883698677287228849388331713436328620025930382558092837853110285938007480666626876142208157189793793457779790468632424151182418035563940085272093917169206705330598392902218507037460046473420494432885903175725230356814231639702445337277832109400989498741346536965790056308380379663682898727082838239644881265090002308401404172449628127731661581527994084620859956867993227193531279106808127275664590061818358159762868776375317797239920664802796976903503119989507091920851571552093353913272359842760096992999919160250716896009579676519793253590556278058254362575224567189166816591974813919512223649321863658105455740109055855405740198037818281435253946802450997192362778500464405079877673089396387019210058042122177898475318782873763763861461697500931588482142200233522521483978380532743507381358308789573887330700964351352762474655827836394749191432014015073622610684997945878585176077424777453654174201874343360028103277797032147669477688709274383170460639290029268637601706161215567474319572776646634504194573708300606674415586524875292592364670892081960782224984829726530023163218155943370346223927866557305274565953896802341661067119191786706950870393348580181563401286799503695496527408075417869019225379194953031729814394472434895415882832906411988503855396544456913824536235547169486464048091864576940530010088429427028705842073052794551608643908215839915865492441396500273204516066179399413092887552602419988304975121961868917121281372957004653745548402321622198015742345845412394495550354470039000264160727161960398838538933338333733295337067601154616765458633274091389290526798729893809424124442502667191656598458550229856193043735075729351635838394168583274728044737215478614211621661706084831474071341154876035819132867421058690285846260616022912434782044725677372165154318667658440882507895242799272360882713900330090891204429258355142883522302959562956828169070557733578443790380585857618982686327775447183802505539227234860846256605913843916330091711442651734219565777146657700907465683260420209360823311943736326120435572559356930509591469373012743359034039118743780758438167650642923121954606857663055022470780160354984145060252408491774829287333525752237995873724643669716357136255092522218190368899465702052804012582917248739824502895398146134178293136071686871542611714235437194635848286088330295681909458021337182738960047187687754126029314443647007709171299338367867290185171174565337927652317357912403179758860224838226832931682785004085062697348319093894112313750696317329271895059906899912549812167073294883180932218213467305058753113549089452574362988255587263523159692934248188415509542362269616635795799883414421946207768072937002724609698305131617486264660331098024530350795278686035419289511508143862192650039333223732727894691877787355528895251837273530928713762241734140302283569070640822503716238383432376908300883483369694010105731217905261174871560158678629738614309037255473187249141556626216706985123274154928470720727764643408547129589244792050046564276931995477171430837598800016182924251317968001222696648826521962294770715959012915757357803279098462470157696703223766205518474854783350191627044018468422205509564545840918354636903208519691489912900557262509955194469658634615330921924182949643154975465221408702387131918055068599427148768832089821302587486769957457527380751736379480974023523010189315856420521560414755634911485665871367828204245187682643018935844131498241162642365572640032554835105691402477179607518400928325130611601876439966679870407747626249368777315489687004466437177470452939566165942836026147203170714413245454272004624510259267890210293921851163354954193284995517552150967766009826477883706053198633005144530201288876975405640075780751812564031457418510849925182365143757382247187273206911392602408810389829556355395760883128618974613610975611828805221256180536324807966971419754090726838531352838705355643478303242193879972968754979054794959428120468653044829123116454798366720655634060837115186013238590281760304908784076184231135723820900710933581072214527062860545514186275207376551746141733907160635023140012047605339520984955271598994998119384480894935487368733281729002609851204987893265631772376573424931256217107499786939991105563757954871859113316920644233510483668042832727392689108818079738831424533256946960497962233287640488894573354210228524912229213537952014722164448309099312825426165921263993529457204907635449843208634039264310025052838103656484380387681919738937411622330489065458248225396220396316105683639309366656882891552952526050054142337834007107218030646819502213930510478671730821449374409198550527139782490363219127711635844361124309679160515339929240095341794268685799019756881221494682752554390067876699540162374714269442382182152317931426245355806458384312805879420247578847241631716852745652404589900134725882798142452026331894648484109988052785256091683798271944458735848769188890289327968170994247732282717713196458111860421556309962627336933937241236720071163422207164202703349807001906695165969612765274747554544194203176416966519414381149557723131146892733568748905178927603383635541606732589538659526723133044543456933738439658252100691611179402849621455456953659585808894291924299214510194060697243978920487428908982632011661057379938391193428691452151867370223961771628227624504412625384975182249568365070787862326941381788417873659829379324108312399773071484436011787747238417392000513769742572751673197727938557423426519709706338898020551747687805548483206372173416646703247708812796377388582118850781672998879053991431733103619124079900700693032163760614210832000939408210930803035563174628139735669719905735749127333441104438335434287751318376932890439038044151009561936214474225353317573601720013413088261715641345503101032135985025202241571771732860398730504080147526663566007854011240575612442171044881529096731880796481472895757995108723875956640290488975504942066258021206643954986135259924435709928918107998686449243962850054235256811144457107668358421242053789520319997523640874853416454665086081908526976763487150153858961583062037078412688602425709755789338915973750189802704559677859107254002473530094765381135636571562465268553198185643249857853249894402312884642852333551514500206613673751309883036257752858866997315417488559120420896826286436231686434866725056168990393034842056797265276577156993954876009327993384352081850134406560895937997968495530320457787766008312752937308962069263886567888086649226423095923389790232199642748184933597394716472243007077658145100123206002470650251095895968764970907382571819744756193626390333234218428708154502619996702550854786885399503321850905414387767705941546427294570047700743256967020892412660238066211180889256176205994779211118023637411377102981712462433870706737481448074805724548839310282460175581443680577493299646533139192848798856703445171433636480252843921524010273368975107221758869472580857743788326832999959152724841389237400418400345904347851749604388657102554292550726573852992702658063307379877816290829639279606263760806265412359196107883923792541619135357938124611344844517701932000086388968172871845664484242988166425154537513603604824233994874859133587429229878086102403966016303270193628913816980582889827898776668213008410175780719244289580591773161796886846281814910973799543646731051093397023952307268349910834655569978032224415930158319431353938667356056944842559575372211535721240315923925457169367163471010713013288052577871473357510150748673876388926816293988188574940798948497468859902992543606622733913131186134776854738335669558486360788828144878142062879525961570151325701957679850752719057371236690972641506624862285524474300530285054566939506803133369464291456034248694165045356578788338849830804574783627218470741800352194292862092519274461750687327686984090070580875540719479524384407045898870909778045113932627781119823875342496976701042991441954431467848511315597617689653842802186637014709903374279934484802210907480759389807764323929855704961924949716252550356615527251993132851261748313474850308889456432115117736525952397272682528594986684526306469682235208083843837403513393849396293780320742219166242427707251752154142728660147379554691570534197063607733602333428366222990918829296312073290641617564513896160036818365075327026485800335985838617496499745878134126393441853942294602259107527679855458839442096992866425990864595801593379082938269569986645599772522156919320381461654098604784502197309891120411276610193612136162582423000726098111891143133880096814124627821962744831725386351191494455672538876989745949221800417859039394697246143387664754281795189332097506691212624162420045557455067537008068606738116956088519579081998494955827888263138996310078898606847015104341706029577218247016317141286143378226725467141893402029852013592174379765414562845154323199556271712717885398321810041437031616554782353943831637453584506782629532458190672917094151603374332870577767953173655026931560670785364228900273429170376724056945338223789230657750950164551464488329549793361584467360523386483858723952596487771794758793151170650639316038585871902284540181205538993641412263779706164040667579553440669373809788483968485338167041407119911074828230866456738838236815185955340733006392523927587286894224761174670123394286177585124341021210045229890060278089625143728456835572024929576723320543805447866226564817450671649865966113932663882731218363809538201845474591723205156926303620320019011455621839121694450090632947783152820948254289396863383904003168700869856499293419962799598743087746858091246687331257256575536393843166736583485432451805985918571062796229919561758353116906109979918933365907661534176585333820450831306539661104373299084420928323911921437188751165443566276316809739357361181596471485658594097098417670760150889824183618102899799670977312128841202412623809034917488398446215457234956200781115962810561948501069471749675217954084856028279895573711367886834960697258606642735869786603971378041808372797957602917427017043110684511354004849092489214513567958366192692815902974120253872019769288543826268440101836459209854919897957085691132628371611669852899991444307967937450951954011825167882105818425184525779165782879904285888410298765578562212985882337620485698359534296554414368557267855991787343419015555323299118761702710879118595677931153828591552159530517312213071038833472462335297308910534546293336760761096739464280734300277425739915886397573966481963430137197563967837596550606976927556092767305155384409162501148785195078382719709175908055386837227450960174757283628721134198510675732887207046713680480245651153687979876386913758619380048398604236294932580481399011654406212687368026393836601819468995197569890979126208564509370146355654898653356666267550843933776812080227991298476165676549425043114039734890505261585832629468479347697668597372095025783897850706047537127227453299089083724020340347704587420053268987035699060740204004901563421649658678344967146184462563805516451650017054440204760348744297031464727894773525345768749280829817394471066917701141302144379169098506658972897596395711549543769054052019068603190617238931999769988167774565819279333358545276654434140535606764883778641782075566646961856110590682627192395791796657407252652238165210700072136083409554313398358748304574767318401387910787241461283150238533133159814973023437264806899924531414935931473230437577697386154441239124643090388205412907223486550030446213733477618939514770366912284606399579434515426961456920177743467130367788442143617797823424162770138865795645906955294217798843031688738476652887452080988911975284896881140628612280238414948246335199370699427115099049711205230548968106157139890169846905773460195349851279226672068730901913504499766673329841710232279119774771472155857905791875008617483566581760526986419470276900043232120925753742989122819274068206271913641234889854542560477652846698496185124363958229440614569174878781546365792369151246348844284397054744966712872011391959843691360115490637956196270108964313721059077621486331423107997842243932954080798548146887713311856376655172327973536477102203784510450612573894340919708084141031695616298670702394057456170203665769263193457293258101960104752135734533619553676780445577107127409668064484599196413549601197830385853381813503627916167925556026758377183304630799455358939875692638311701094019887741184687826417622058277296502690935085596232014696917996795491103611250757681567285391597009902858991732296450383934668541328388284778595540777604522484135040373088571956632441457219549590083081854007722719336830278288278634680225320195043829489340929037947730278765605265351660358994717309659965625755567894541528044435082630559293564704255945218585895273627235899924764602545636208357499428684125386655418112171420920598511229396642690648166630866414568389415498827059205771922106070383004936679741871885132546336766557127275034153841566779778084790939957825305132973793518133885305025740541921163118798511827830063872640144875309330941649638406083251675289262643420446790042741174295500993125947879244499324002076228079780894032999132300637744174820765980895110119891543443795400590956188293481749809777972513202087703331475262283157560531692491159146809134515734696992952777230175529330057525050116649704929235547547970038920420788674908807050301050502887296492602945229824807798244136928779442651556883373882348229984097256081270370148291278552616867495572915971075629901158960696192976465833609921958322320550257064609205181824169634484329011537169821541598039762484612851031781904583774159857793751143122898271946127557255999657649225627993008714675582849621053096820805119762199859429529848282931651106103957354077088950107221258344552755005611074911114620031958734080432678456848323727438760362504991086476442668517025808861418566727845935481657126784275899791392495350319222670205679961343606934852592412663257170166674617213360667565802197780761395325173240912939755366541534919242447185955332739336999126995234015393816688005409635123003862552920553084689851185501665890837296418904733479596570295882004283265451207116283808842852869323187583050980188589494546993009994295254168818557511298430016197784232019704180914975407866142365754662374011359169315596424057838931773881371110758122431380068606806939203374174856352556447801279611277598751573617943756051998152529142452618711485023320583211244729985114983872598128904092876297860026206886211259003625952227198005807822525231273939674265787871645629307271524306101638172203272366326030863521088322524265620480295837615432504615846808396982109628598324387625899531993271081411931315282602441605839185916981446469370449810064846193930739571774789113943770623844292272446652619001450507177381497890799627081947034710599294879700957586939511665151029979295750684637305220611158405231758802969942599598429367769359670219505520994045791530517154143731669579802452850626436964829542521501715392634464856818525294139082936139773217422860461412274986968997048454161961897834071674968789665464491150976595667571900416034474251688455852801758824698803516388216612161549915426692807412615972744258391687056075612962178592396374648140108839698381509830821460790140628314273355984254254569284817378580763326749194795180020278396584523012015217020225596254351828024545645867348773151824810553363458843010084665148598668482880402142928761075826635889643637243522194706740231224017077941838650187631051687728819515293486011764365806214734923754416615945877833186546497289413280213760106176950914703177365751489328990590312799792238477387933186081110490325843611186354882251305155026025410824789849283632355860093663354160112544572393108200576546878150761868553391779420432085563361408424122571819773703948423127063566274954792860357644808572207729997235025354964614359682321975646908817853779520195005218453781456886787508107274334143688267211634665273935141743303752570193563314529972641115328946748152719895177369427586917289994070477055208278460014020874280631191931644601043472970173729529130291734206369024983175887270947291701751661875739511184958276727035306633558394238987726703474660837730697159685144014350519115004077221163489851958761761300566067405331786787440676902624490864658127818429644898826954551048610097830688231306491684094728727462474323174837589008100754352161173859924902203154824040533230359636865085203702976624915160709682900267691295114827809945463109672798962728897444424931736799358720373103680381615716302991783939861799096340541027904826319743605979406848872631242468353563244233046736351241484495447481545673949534296704230424398550992536959182200115870895602546603957868869784388041902581668067987375644122969122253390413063059158285561368590587812492296015396033393297155901904894570068535268722393745972145479588796658787228823197982052441601979102309929805399541312942203352413692646709939961425154065797906950989894891594485057179365462199516954101701426031786429016604827696489938332833366923017840385504093671505139788484041866493236723878945236106065858716777168551423772974774141313007751355976538899718422988436894490957394352434988242086998625728764711178633337399057520407463147561896167265675821699133388253109602792415761988233427320489508981526146950520478937295558977035082325232581694081234812212776188753356241324290920771906637993929546159053686513047694322571797390171984565655053287161408137720592663437799455786030038099873093385496411604764526082305719930848350864361942343870542673459739307767988091007455810156797099157078231013723766488650007762400382775060518347983731064573932549479658221720654365454401246473013918654421773863319837529583081820356838829875503378555066391988314189959357218401709517156442185266578248090199463527839537078465967119131696410588220344351648589688830067403297258634691374550288777863691383965017003052440709557144061501790750400440028490730282175278282703688555019094518807661926169941721870793496595529309337372971187937420056832530448323418197253761307539378185424574461875088661623806115152246512200411392319239058592428757425320083905509421818051443188708943438770918254980453572835223222776963864492132122770566174132853803222178848697903735263234488400401515375509034318576005827713530336357959015286520533721971902636454539653938247590165031282904659043315786419577848119712424084520592531221763933231862150552447290380013049734715138057628049585070058241918102749434460227083079606409300631864450523975149342098491248782474494607805237928550252431942369640415823967956095652299809596367704077832191310671789495894855403912166966455314824991799773411224353175044860058947347904227254113089733426566311472477332981180074906876657344577830912703196098961559318371300463702217517480629474855164581620290571278195147871919784421599273397900841023341920672451172256568758279531802406841110585790530563782410876720233470312046895906851343265236618515940519364619075082516337831931444969865690770904445087015695546218429619845319571892220760940167886734321238876450518724179748317047785531949186250383655785949486097481865863974401041105571208105303487728540790224078303937305748230764356828350596018339780581201152824145076959573965152636885854681444890230302330475799640591550267399710935600613361227452427710688285915220109260150014187236303479262811109592401114660310247636899562457772473491027095937757011057481519046830872162670121196004640643617931522660023262709800489432351979076005510846100847499329320081249414022755535321637587939586070389233240621945758407931038804901026731640015976558907071912761894505456087852384432190649492739816274623795912383413384422965353171997650906163381524839003871508436617747218008545152092678539484280914509851685382017613361348104176340123307910141649307315456442124584077209715109457950130404601149469073564270303877269576913888012765654914871439407929935501800374871317951291415168818612385513152978527489580140542159009607846874601334721354937445739068042255113114259651012687643596592445021168753398066535740009267795703022673200582791145143616612479345155699699366772372676406813223375129761835627242300193840666503886802002774763074528964072738360850104651786277922768846338627458958902140908496346255164609695954259164555013191852309384832371791413404532880811585757072775703954798389657614123607714492791550203333315884566940169053750167824625754707301989137680981651809665197683425210661799075426004441392134024448786508949525791694233612432767258757500131641018349464824377392204467299072255769935106555095059394860609398284942053276195037103057531172928303152690380026123866771280364290832641136241544654154669139285337407875173052138111227623019028799042061878874630247711757599379039288621142156727564533457446042201739744680967411711503636117587290808893521869942257557690216969972077853408614974960899649271710934165024492147163124805294045919940363958083440941860073701023794433886225877857778274631214984526348078909579414148653368143539712076088754273986689800389720466901007924393901828513518584042816743261980743119782848907118263680142408730176664966497657368424457033102245243527089716349385977342109805125530796191205608818525902187302722638613232663257624969325996387002617948556834389523306744324628018133200486493051634818402616335434697903331195454308403228828539320895462926990532395341156810559691528993069775941388218695045521243274324428111146438404868378971369051129496408442025155167501846293285026893055542657623693991808256652251889425440883393099126495290662470301972470451638059827772598928861706217990451471085851221382289763804203635035102102563552897350341869955851856282909076811888837189930259666399868502880853535132808734538242778426455743340768647796368129664220817592342804909735890811515931292540475495096824815542665056432188627654971778128439491262009166766474886867836984342237302400510005571334273093268792270955353038324001930851261081723260181757928627258580800575705379063259477125421710665628317890772326153509793843981813572586150134407354394296431162184839390672002276123713052506708079081183811422616681731730321721250742165035040203535678700398362958116442989461083785614172216395539286541892150723540024748677752732641960495602122694589887656882920307728503261768552239640624296862428697470071688523307853684695597223725855557858620220276042010338281926883587785909339286487156306879235070656228965059932097191589230736626232581987755465166811259710400496982122673092095781949678087212594772613401307394484966655925920899895729092548685233837763238203547354722826974435963924795892770817939712434720848275489301125704447094441898675245189225961087012567919220311884998647655082726581162400999968436176014211422697219959879018442436698863215813236717401181709194631670537978552422875044407416650285902479755500033186673775255723887341815493203670118740534253304283983148964114138783214720434764701821313649809590383884983572152850827388019841620478593464468810339224373775213288428549932645431888506116128480698773128805488212519757122246555195612668993501122874651932060199280988461625687629708109019475938010444464157153468313984907100514267446075142539861017207214270065931073336551543570767476997775987385501844141765157398565886170218415853728246672852214441417634127607164569999136551689064437213168637036161967217451667348305834249061778621110441371940519909581098307982430638280172104697475315386777358585625519167337311941692872098165414341755891275615993513456978815410046772979399018033096105141431607937837440346315806421346910351103719048198573280157421403821975604551007012319859041086929130226675139694269343680437345778869682327073385103874949080519129543093479855313289806543475523938043080477153893677239907843504747702274929131856998242471409029682160357466811039894865960179555114287504574061264588262974612773565658179573861592805533267051044830322583679146644046858933711653794733985344463314010076142488044444364032932846003326281264327333003093155936760085418703585068199919784232969622915315984830943499339617100474879334914952465089825763355377709869770217959946445700992943766053036091772532593371137965654405470798624931819294866600825711971216613372990881049617232548210187158153834487751166856007163910985001850427288008333830064111365070457869414144512027823991373411509147174261098606339555392349427308482614168334944227864387464021584392971753210097575292948771978466000565896205082468022192100468988321106109741910390488609425434611673728928793183725826711574295388659595172253024133012178985346919992190958367073295803041620144578499288143004000615650131626292099911676829020627188969645810327644426449783566744047981762851394034369253746204153501872902683946535696959468352538921641201857237203078965471730636330676823737464224781993762493394564564179477304092390327781723442465353042816632106171862151338008142508515455890560970484682600871224613848538704087162300703548011124480663058979076115290056823467211467356516553532737046395973110516430360812697427587183105354226085337339022638607192415032472468187961548208313568368580704959243521460965820561844721936686034224836691413547278234688491594200241097587630637947850624363104659752871302559346656200846292350085329040653302610529496176197034994076048132271718249530444366662343404281771699814494460759920703650205910674537025194896520284867528190987781466722062598889055391494230706449143942081263171675561519470999820218686599346760169993930830756899255699880366337276253955486575984295237166579643224340608864241825179260552540119889413548286315911302605286858046913662653692134962197087656487328186760743898931486513175485447477002432782880805638962570829086373377371702695869750504519742772711093071521584025009315050666520723549925387966497395263735841107420335467251062459937114336207527903164013449383376370083050963298176924277744269632423048504692105091821741520525841886062719988896547425341473666054688978969935840281181998597161618838650078749900976021530445066144130255565728557499640454171816776452956723880260957417513936497189825753376135390155453560201088880877148074042526771262882053594711070458029070446159187207274571410424562548874064630070770310080430463152926705605073928169212095742885598659375650909405307425913480520352707797270558018981502905766220973801879201821370974457535775874622623271570375839200517132042957556287450078163682193938143709749763998902850952082523979252486369718870477861651333855245953746995813723491998626284045306338746210358754224110694073702010930997400443304467688756400866044654973315747097129254210579372824394045364480558788453523181535558542633388266068049208837113769093798573755174707787482046062650855935507026563662391795567507621290256827641156302881980130921652933102441850032981791145849603696777127645508652769673375305667536427452909603520377852480009751483998693830631089454082566984524140752870158153865567705662998474572943033702218211582761271039081701947776646556120596075019057991162159960998435856728992651288972061852442991029732645764944316441703026443977661759232644625874710889312990234995221517471852668877142755691616928490706079019426864135893530185129182003064418459600719469061958928675703311045698576948816416575475941049662590112293529808869104562354554472288881054995065025295773455530887682503375949603829473412613657625736497275670033104271087262871790190303307491491672291600219130540398305418710827416118893488446840198620356788695181086851050949751080607603799344045542658767868495439072239498006364062382364797065992137206310751820806136544886739504187598282535849104978814898224404843942070607161427528772292785035766170014484715248951123786794024952507699020921267991755465270084482034963529126233913931739749292643774230735186907153780849001864920894204774740625247451596856299539220589926562223244391226571526605806808979616054027495362940245222616261667949952763699283916962449409152402351703716711516290971075658924003129178049997792804447332068127262005957079899901296228938141187806062717535492329767262091400667625167063426685336872401173210611801257391996419376707403308274046423745523748656773510117554957273264166565345599924214444144693039335281791983624702193147928375397082813421909523181422544453892778112280908515719242147727048930329912877284283804834107059079373497548654891782839815696622997954901001714682423159312119157041290851308000931903108081020355129198368948380379430984999788122538759542807313229655278890051520375162400636387567505567597789314584706960433835138675506433020121183025220002185844853313787327595833878972052374448531150812060451037328374193973025708249578015216895359176107141904113385787900008496338103586622101181031248113649999030386541028677425366323427541274944473312534845974224701432279027484997119841679701605484892393164926921713504367843359753116634319517162302764446356957993933722806249630702697421352517965046785158320796371725342167421431110180210985957478909810856530478296347671074914252947430546291074866471150055409090641386171663476274725459175141626357291488592460861006547756051080154110731825898556028019290050978813365155806004944473031458243322201479301170894162771258789776352819750712550284347934079134493653963812148259296869626531187377742550892283284877634207070282303068769327075846258549815541520498118771600428053894095088809374399259532367037066897981122980364642443773541113042258380149048891791922295301482925045619676710714805798736037502272850294584150788149518846039812566756259662852900972863052180105909623874926597266289291528166304166839560637483437296563673596228830614262588228509953209833387953788376924520904212579374990818539017849946244226943242888750070751023593407890642151596631779364115391638516861374552847362177379030198903591831756993832975577011985062232657084916964726069284023503848646537416551371887054375626437030719487634672117105620041522214900805643712200540114299919224892040123147874062303187274284356308812477948332628985541721480911237972273144485408780546944632554306803720202947756666270594374569449245369948411297790316308919532765287920430199418947347994894736751703230192719405395115121320993297834034435275936750613397203705035152996047635046173496768844551799952334120428355283238593347286888710297698445444200285853119841798545924487165653031232172871232342978982800913295383687986967200374801705673836156823330415482204666496402524597741313296291007839049356142401108877920791700500189446847115306976816861662954327689619392194952105030001697530491665996395716900928206004632573311620633022315261955270578571120308938154001860560331236686741809726616764084606482249307367140213440740272479685289418150541278655549471633819255742940426852573133157555483505333878945737878791191567869743423171641055479847145123652162765282610710196395242512540544694117613245680504236147608437348136535342601891333705647166595453378144355259117012425480363869655954872627018269489892577340991497920560498444749149393511823432989411012778257844028532205694560392478081739560572841107733966660991146164144951280113829502624281571139182567838902522250699301572364836055028224375003584873081055744346129801471307243019257878170317711923855627603865141393232735601040360286793390948439986348793186396874090261107362456709692499856751008957607368546070637844653265915904901577289420949332070192653172652754399357210551438670780034126089475014342981358718827206468336228494302012560721960882558714741287631889251323625317781001941514162442317557407491991774732166422115634306846709496312385566528440377643899064899565612678471263923570074965017113939290967295927225415440640493474703960302660074865747056972192292013234790396620458171879151478012759115413844607931180724803051671099321666335172106063799825484146577215956961687779160356361938578595620306523000730886542650321710902857564107403821427335770151453851216213783223992517615024495565895317424986371769589458673199597049798389880419551562595549451878880098667585736067305598845660245399307721580919300083020740775413570010195277110021144609191538990859066370549049240897921911762431509294924125611660956976296544706147397901287997721417094873917075552936899607823938829547605092595448732078270461688632239425514076380424570156767935569012432193271354823521134826537299487534309342855244033186459224361664801692107434288231995714398418294798330657938202557377782167154825280114738873211288805869536472392676939129806427567562725046516696745314733343440458141560584781616528956297598342691092537506195909500658580055217262422250046020444476151156258249964255232305101033637810562444385794755852603578592558446454106555569186124244010019240961688982059498167280666678744984210328342425562711579697152177868807266141749099697764164590125086093947686558638394839505457121083017523060170442715391455029276791901400903677367320384824492456555798443411722520023786148231433129802459399964709347049477065722920413343873930885870388975524102050783409016872417177790944879266771367835294515137019213936289599356664949295039249233150677176834909194362596165360619192872354971592333692802341886493704731499991411380019416329572181856789858746459125677810709147360252867339583686866491489366115925658489465023277862914107320816020071950132768553187988579992514525107098674993720760230116075063783891224852003716198649960909671563395709726907594227227073938083326263607957875339826070273900405502395257135947454520686411675490571917895716506627843415795605077648990174581999407769064553833557416989797705501705246889085156909627424112450523090785584067063014484363747838986357628577203066310634104882820888461055819956462313996714803762248629107416063910395152912922145652035658039973026696035768654375523048395041331257145969200342335684572439661377080381340115209162747878193963461498215703049316998588492963428958078509492849854854689271054542257743297061818964739667985321705744478997375985220806004841054298030037554191652861988327410279725697873068624913704342030207908764630372572474238373144148231079599072326566559033058785465083711742931243406574811438143176629398995351967726869333590774017159920433818829357629118834408973266425036648932861457116709871992353242987381148329916698079190403145854732844604743016350901799450793570849140001415581240034995693190505795001044736356654258598337661477250703842317827396838413028262265582198691302621579756377393679843266922248480228697078356254552054477682737683701709696605620537123245176381039313246332682745329314635277612735537550400711223747589373832624732407082152055462036910188299056470355160363393917526086839483238558247391599457405736817024391605342656607979082113462887811827937532937576680542904390195019348949845850494833927452849433948521471542857230892630245962315365585323147887624366987214522658718466746288234301705401394250416712307357289362737532855859173776401456141245212780814495326943441195048791192738531944106241407432580599846969633877659812318277642684200471819765674572578338951066213923058986034246005498685795561759277511798450112238528686906378006818307557169406165897598404694301395300837829089307399107365760164418988478733014003748649335510782412117122166110122789564865889742416704804044465451738194827829822450368636919026146295159283857167478926232178251887887927725625564072221312568306817617085230517095546848129483560024176367638514532026306709749939903974416665805364637970810586966799357952300021290810186586471836318814750537017336072045712859294822445284390744304963953605762261695022785744225618397652869485840382183068431783033180016394194558472580028495829471644738024965314235287928473228499557365198715946562578988676773213995001005303813044775927447400906211377816928705259283386022753879249261302325598555401352538717362770681685136454781708981156145816543368506221138534471074592835049464468622210098885527215450050747799905863105699515603466937358202435361566862985652839657539750828168537680286534297841890213840860047461352488016866560449316786845383176636877785883988630019999036030996580293404603856211387908562964132959004444353927322454559589424186837380669828410808621158669369722547984009560709826874831377001616089520725437253963920906646372835859696423551155957390356500385777860654259518403459919643514740455274622716908148322715243426025393092658838681968668435749109249545167314067587236879327938152298705156538193797441368135380415429946960440335987750303834596099438892455978866460758728970220757357724294995609177161716437571434775664302228102211155731141663586594573376386406358922493264983240201334882867863409144887408709581986588457744187318115829587748923792151743409786428307339855489114495844436457132365109994283490194696587488271175052059188837925731387922582352948425936831009472279824075572092068421378055667775494569548473685727365423511090971428670178859511327716865427456114305460202927137485945758164972440576009226578169672801749592947089871440362764132150620275176809505068505824071322824279395786297582654364049617847719594709577309963384114174498057567116250999987349368083208514198678342548967617016944993216946160022248873416279336428950758843349014047266897522699092251952689009914631000719768917918946701144985921508230290261776592299911425501039289391394933187551909976685911394329115137730072863236651834721917732487582001530150741974652729163017237379286988543567244015088238643620617679150603113936658842173005685843336376373372568972730782743206739088190849624691894443714758939816293430949363528529946315261656777266732222448020396254624933947566096516248933430539296086344597738539137259446622937717404006268169956595693844103200158345037314553102844181306404842035621563839445225068155136047689107392707387428286199573565024485149626086732658814632115302562051212731096078766589186893671988149571388836193670655654606224487382746501744293580160887861647575789894461579202183232165698852546279530014455552131190468259792703218675528307530957702892563241711904022447382927900795316176574494376526725222406137439874570256643122590514345193472252631090592452255454797331002137205450576561385114363548926207695343680192193390937059624817145913025043978944370886265804996067739092582989939170279427206465130854079387765185241591193476101134210817084775616411222352668471732186999760069025145273391139811220898650567919770852499045810924105424423958162865380048005298555207979353254666597597560283136638742106225882172141160661225673046565115158432239158151560876428044902406712599115227519290213731765180478762430554687331768546391717015077166218843109140323045595739615016107630888744589460585416765107707108252359911290099409042865731012208839915880758504846556105819945405821481507599654307921357449339930619721214293911557686760197513047190214330337228525567052785801441048564283720842147641438987623048094884077724015120759978437968064944847698706222816561516554028628517291011556536380625152536537892191795698415080488095091976500585525320090880013855455971577533980367653066225387879536950891090322413946325322278248670664947184284086846746996560202595758586674769913647778204548841614572907364738219437113919274283549815764890082181750791592114559782993756095573416480529046676075817718654310134075280533776370689545798498272252480236401299580659098669609387883508455110376585787535542057027136661890927051818969565257216221342110200332627773385832252508058889894809237062896681708055337776129919837541022568458653458956658092579096607092378338818983283032142622784985543270097958257271090575517517964978810755996373417015463646040203374055775105571269004083825140265715187258919869062858854575221123677118902559103862153929744430308736043035653964290831886966715745225748014517441559116609499644248609859845243673159792941669950881082996409720858981447639721929536329562770169520620419820243216752884260384144594039549198525367297147947329653892344962066668543215871296871205383137094566730478266850730401837388887478272637560757950078922824623276061085848213545902471818421461560985421657665449849112150935844487253102477604488056926338316804538489687323142710871510052082693090735030563889807406914188094929152119587408836846594988545256248433025004435256425754839535994986059912616170790505768767991242215207740327494576209413655807481559418446431939721958142528973992994027573204059033709277257378434030834778885797421818236308727724572506811816674151185388910116169957832283293610120071618379738000384146276630160299668247126364026344855498385766566599255843424634774495313224413394187994772505251436039352898245415344298499676433792111352904211947757786181381850419039597692843618718439177544664783129749283596127662371161030706044638710578405113127914624865864565861583000521812137029824959201386374016681983728668163222873000452140836359419649903950864235608054428212439288179493367103023334369646531684729616764669112134578149698193542441107071013480011984027029777304445168928808334578710302182868660054072806650677467525749983219790755533265898547511115829403764722754736282180271629328963009307290762262244186267054071780610898549821829918927633533797131254694414352007863858980405753127727568545755626516334784787071048541657868329403877288549155464427937589783822222437534723125384046369258122177060601131856896767167865038981875113175422284564364321357386350320780018122339470934242543100915175862810684939695137538278655021904429605635885736257335477023927407758421173376481330287896596013579205980059517720614145570441351201201859731258310656381932586042412392751123452281412093639849726038408089890086930517709239116421920673925647457499372523851473482273534735214659688758447601476391654064797142975391674568844268074783331051294794178225557989648346266287104562058178989968924208967697022767359891079195808815522234394523632492446755397234909746798021602701660852981492517982658111354185725712967137747617238866959101427574785845124660086979621099328755068145406124786208842062322765662660060938146821136049979927920933033285030837135110237453513064498759110916778095569562213607783670975640374679191343139245463984797361967943282659962058894339204285331263906834408153271354324474232793071149765463658366662122392885123521247476313942756367351198276010049700255467739072597828627862451646394490060746971459674562415988578273784498332434028117377161013956771035386415666671859870555878548467796900492786650334444737024667984829368059704460711367125106444533683322155128430894393979963886664715999297303821346191818097838725927849648387586878910593371531870103611105834521890472569016663607979065746368002051822062134894749369185194341178251953671704460230206657662782780320304175452558502613589563277909635980409695890228450586175556596451118206678375983430880271424819061883377307782407416370872916528327283265814915066509641486325374684609861674616883343390298230517099245095765229811147690333892722429524671064116458558506422829216142451648627532677994560200204213667455930893966381322459460021104367927608464342427108019860584558023531084320356196867806051834442876018607990143914964762514102944675666263485918130443614396924638220819851382078131138748052613572038269477013958593358170390486407234857264230671953238633515504269491881614074520177495742752006734362764131815489660082478084412208272730905316492332893678952485813991535324017961755060650867831027529246975824928416426520397996471448274983905568256616666596755193135093379162077320571869005228712649487213733428933196412821139500266561387293324490050558396091070387961699207215510944454681291191449810869209740757309925127846741212538949232438650216424583180045733223052822578198181606061493712780806562565699839756305153544423989417296806328748531831429778658164907527534278898430560701021277454611640508108578554081092434201146714253857023427821998702066088470178592182304562960058503747955518281361681377351342856366390144185865885472016092867278197811683762048511057129373842597948296117477134032654094576749049655001798123247360862832572487707303497571672882343133421099718732056810371620249144059991187743114657960675897827385639166470530793142621981504447518759080525182218942476799651557823057917988685240386350656361952430797639356525417478584203297567171460988850020874645234811689329017066129108530189962598977924031357676466197474278443733101630387803842580195452686962454055862634248375132528855548212071117849578463498973672529789157459476232752960844496969029987034995398843490137295777460108118074019970517407010914156929989000943709433932794882147466761613832388927760129514623104549601327123531724698327924019824409339610483642577248898998729273464795640173720014527526296093466613407467181313294243558429755272265178462954033494533989600631387797908671654416180672506197519407037109510859816392729570955529923253110894766823275658988811803147556336036536460414811272082918088453957843859660453027462773107074169973424709633989601537547363874149732041300588691202389814375747394026745849062792364365309579606255554377474390225044572707126548743328833999555797714141693056471384735210918463565913572451481697821443061137200472926499312428804147190033606122641932041267228054706024116600776746302630059838194147762386708556321579773018587475472547428801188490259569186807004388883851540553020057533913438433390289822023704963862356553250335852345277563920455442360008279292769388356165618251421070378091048929658790066509490389912229413154933586766444099549976252970413748932480755388957759825787061925162547993644738362123188851594162882446700033094965940835053493265711497691325085384093946611521281399349326425565454587111136792288995661371955492678891331710590710534261386696920403896339387574241224180816996081939897567181943322581138721325564301071996258819379495662876324006434409353219148802355028245337298160374091015013470894986442923203567817337896157112220272665352710188560817537544717603884043773409182965615405879847896243465475858073378663246417876443574102441364083148035881083176607734656880423130405343173258931217774640193454738769508995779445049390615985118880584842668488316272061700862481448767513009069925928456643562733278778962256087493321502370656498798652882095405740506478519885197605235118889770084253914955992625171155595415906399490716500798929114460251924778925946125423698904044011433680752918296717167886578078671612743721448588807969094749824542402005836144191880829163085776641449935286901361567216053100974667490718124256819679275092859033668208447533250037748329665809257665164186978771639846733908729006902037064116863306858905048820858671522936598603074359229784599338835904416872419371558835893163402479586834690536213075557088128167561448011139605769439418551895050461756417382589979871030005785270313567414702764842777782176111158513320026387432118290201476624656167255598946890498759656305012363178579185911885648178817425221099272229034449996317389268937096091394366943664083315589278829193529311227289891659758594989143799057459180033764036394848064868878157291390988593499521068716733048568088087889179553440079094898258895504440284656542222283678288530048088262576349518697789160765173882716178050243899625825761272971876094861009571213251280320842783188558205484846957283814259689163490456046421295028673785274615521416511079787672734704294346704647896110934139694366426528575753847098760640507012381270529591781518640791258029161568511832088718067742614606877955738016714857448067987330559749660835957351364293673698514819237958719252979011468855321915708277938553435760180965798570262898600755938119104754730593759116061441631550183297351205016798857962695713360908791697603356432834825516758986193551677905074819745477058292518854654483383132358395114873367852085022715083828930211550485278305140626765611994535427240093263382762058962624160635612394299121778636834631906465324223390190996145642773010518083987461218608629144372728239121343356527012564500720285484937797820624045540021529916759739275664456996278089507188169483796485246258508583100403524234704747276655784958508171005714285422161274479541896195454754459198718373595119374500083196956745750299814064090532882026764999780520422110790062739023223597728185985461403618839307760920135981137274543048633471311842659543511534298572326660267192676536092961389295701884890650955950459884873468184988670101378069226784771216006442618844561058509616485816735054284942339296217178181287039039912339897499444956644766401560650371065085760301515712632567606827816733608051305899202079224125628182165549902417476451008863043275145612029761329058612062588027889986090771017552176227260459676452833760476915100613386302940586202647268976982489374740087214833058246455907640852456517064388892233177663812313192993977051553442281479417196957502268966177455655031391292869664632564051217769938917780661732423674288276156215489391289392507378595903866511352763525935864443847099280214450311265283011981665416545533966295190578217532570211166143823111646612107827053395859334870597231514828508107337516008879046898193319006102720105136413075569477609627357242407935284511328536771950520796134001005657880295342572253638687689573139900678590199430889321375653869911288172222749090657239995144651703301806137508433819911459699491820944342280844256064307053430537945632037571734261734032683396870669481389532285294904458265034541000495385265449988796065516400068631843650882008224397696300720635109532503332932568243353918019418802333785700529814712141519806911935812939616895820904930121511571209404754032467596037363763711904248896428065933268496960969101502033545890737120450523045611931395887484333424686588057937163269667302133432632148890146560639296490478138584683037818757396530697401056405611484288250303379237202490343315373387284276060682865315622148570574401180623245478847441754153627226183767809738249520406390983510099901583918211233789803649355495382332146556751975297828810243460544410376613587201667772378711544655112054090827486199732149872490463491040420915115126055731958553145498500463360342861599144361708749357683951602268316533589832559746625258309084436621304882610748151949607813450104927284884523598736802255685064458925532150467927402362521350360739498757780065641679854600713351014799796880649930126798055596676849918842502976006697466890936778840028865684440477337199478196918368254159601059796251333423396077135301453759028615762505723626416427535356729257116321821344900248791999449742558586600176191838641142726438428353251963019276061429509074028416242993112516444224755142675240876170248566590949032370759872527747044299103329426828638210633926733210831416980053833902266279631798092176509792649665499151539517783984673139671180577057662701529732527710689435935426775865836682862449927913231092013240587923066555284523515240169889835478093475926937956660573524363341908420188709929710625090752482980275776654933330679186300559590772948141525375247419675059959377506253641736480402407314114881942114607648079527723396178642656439624834400978243016349611885417152452335223420914803521925478564057653853756294854669524123463980658638879489901823986785310539068754888702325387271393670360593693816395474720163057612039912205492534818120855916792908574333659620086208337514897818921976373498753928899675238882578093191020039696880149742295587682329594364045099781772379602714920112484272502330470491373308804386796767294736622702692140129911413908427587712930550222326297823899783190995681891214624816197071623802233974442264208386912173367581220878879992749981930619236492689649568084205147730904452139142056133486330553493510765473691933264570302497133760287358993156559676083850904308796345995711115895180655073268794713967803817499836641581640103357822830985578654939369639759566869078365267686812139055503552549666461860565464975204970257064268223370270049298722324355464269941562037010861649488444972621752209381822025367264634247772393008398920492609947881836070918134392430407621614992753509047650193124265064142088393308264013681360034210002948484396289912017864368129268826900493217349593287876452138915615459713325664804254614795830651312869536047328243114544068655413998413664245307579164165814114004492206267171866687480046712186659083256325217575848851046426858819718848904688777178617456932748246033794264143606887390833133653081246611118643923328852639573298773347544840258461641282308376658309317358882468257514369234863773605372540917286408242169575706131259708410934815304678228017167976057191298298491087455882924268787209696698370340058975255826691394484687081339740510609356796260190019212987983484381807414501882659250735374213611038572101940280960781897437777626304847032739144703383852894107958460467157793268572289720007571376062964476860758938681309238093338398733584165112522868899033576275821844492623182494813144918488318336287527146674917421556494214956094996440008482563760887294110257409831115811240791688082471398421959953569751609941776517304580579649316948832246020851333774250607468970619118218729464391767328796792278685936206424928881698805721251989882503635033303977219434947318508399844809074114477072133964991503730787001667488780946474875094872781270522555835763479985818811145404139479565918336593401178873482107101213939805098619794364444051939380972936110410367617047577533446650805757490825867809040689534650114873445469542728840664696789772610825977837808776868983372638509395492198826872576648731970472363677828925982126109159835811608391127816048235781781389162706566042259727851695544703833740480970674602934951901022651499477780407360716768167401315881658100843112972043131394444193705107933329543827388613255763842954492658603746295823998241668930582169116399231183299643442224731511116143269041207683948869326144440940900719263701852924364651295681576831645097098350899539187441997837568264044897642434354571108445238142741802400862488846462960620575022004020961125454777292090330836694163627239615715720659327166707445659928642773310250627784931658223602410174425426795099142439782142061194027005298157538282652906867279105588661177016104652378019271862451931523419542735346701716753809060622092317783800932101613804672858327742492360174024267497658362989837837601672811241473800557558997194065745049831697030696532729008944580381346853252442818370364349276638950561605526259526243704441385289784812329155643300051378165531682619537434686259272759881971110262836910825892109879347578913003376124775884940121332450748390113357043124656853292784276173248470152371346480277361051902756332819656957550387991857639045199036094628340532838665238437674552381102497981877685849474423047049579207369595595396593309928185504441199472497075571395112893562646009225821655670219767606901070963681687834389942665786259667927939147018314807059570026785789689491520869251092966070144281892511157178770816530841249590500672131665914984150179810226859244200268553060332351796290099994972190078419213821621254777180431912030561340542547094110886244799278608077638975988387596992687112863894786942185693454225356915057926945901006520406862456165666041099253335596464293022593160520318834467437955078975047335921872539165211090663420811259862570015217783088227622274487798751974906093059650853260261869945303442048274536819789955716375827478280225754957573769349641212811002912335905669714633953321472655167257512278874976734617625673908787373840584990133419676829978788499007165914068709778020182797555355354026348665911157258081954061729196111132779110538506109713293113310758537376876931730592256496708748923597068846283626584188008046627416049032501587527068112202255000437556954411149917907527124404061516987681166945257140298541138859401918816999833565945605970388568294020494253601852890830334869878166632413323670033663873916776529083480673972363247066104749238481175356031260044451900694838124959721391247206740860114623366734239937806738714424063447703734987922508962271421009231044005700734645551131950223416683721247613112048444869323947818106343404186843015827875551687856421447995676303934792688402462994756980029329505991833224536269237975003039831346503164792963516815339913601363983124738785179940116391425454019820404375235869148957289031339602018092840410268289910286984136078407255315119798012590633093166438150313253067485571669173502117399784131687613855957054193785140870684424601981904051304660722413242893916445051726667262764696485672266650427472032294263390991324842253579732652556430769663382831686182162230527777570818780606822704707637102648653579567722665517539748092222757922468415962099291896168412689494027466914534216381797787937402225561299947950754414765413309959879887785100393322189531684049283807698567037966247815652076075921509063270964200273334052561013371741978595187555758908822052624845011805636992893778380931415226494351946057144347847082471028917450493274227350629481705126127629050373010114972570566868908051693145925938546059964642256999808852557786818579308345425601975035792906729063002935892218967959958826105978042405044302803790911200852973784837062948278830261865608245599659310275304718884788913806836681584128241449964702495703132881140398881647033515212679495960213693091418351057157854859070311896878966347667944155871921813484931495729201088204700634908340351058920504577409824862155731022771976608663108395748669137937659002607786006307274259495735433612563206701571335102942405678488478146536715251887064799391094347105789575058936072839013387168704227078135601095128758397995528287468464004827161754291881293836188980616349475145968789249270881193905298866203488744646567995432542560629894745176573280944483482103813713318899088170342186133636565630469059265836545752296675413379232600048637427878095433940370249125731495862572737243588219392610093362814023591259263742836468007872109400680261505938908494170947988212316649876276701625316624109318469779473690910087634022625955091258031194667585938215066580007167155722856872101754505630431285629472426595357271078419710279303500971048887234190837445612373101381684292132400662195534700829032981409600113572289126264945708404782107025397802330809921908917016261996899862065100502364370701102208910525394663618097022460936169914081828559906671307457440927721573382282898219027889269097068969210182291054898167052162197712446469194550615689519740013362845703115031089956120605352572087112999992742571533792107400426527618248409632370742324911550515879423221206013208398383443602773081711683278740846350413582145422586802000531807623356271998663266961153764960970744762432705753645072025937396979251542265442063694991729509514488204634130321215998110203195061593340492109478787538445867618946314101496818411068583411815557850290155194188725157507029379138141986006334663312037307452674651849719867021482093332176669444468652420675989469679815702534095095730286414374145814408821878916889058208834597264192529908623020875686247428740391246115150557598900197681956228920912157878625422621699915974195084337602998109961772090824573709424342945273159464788350261988368580819639421307015677460244672017670191023214514424931799164179147578106916831616427470701125938291441153642979968551279259911907326373696317025715223735862851267855351426223086470249312126443554565278017364907345827383055134094381007468832236579488638783301204606290546431240610742451390290445456296315166879912048250669986774141706398175134490765375602549431753505238868113899596724358617630909266098609404447905562969726786633640705381418806613793329363973064431261784649049381329938294147823931224762495363060671513402688203124367348147095268309402596764272213417322156621472798155802864382777757086288285399932224241658206228687648953729150467986233540437577888050397113052643733686352821775270516644013988051981053357812862782094981343752955087350517206204719226213976433683988390368490114587009203329019131185886299515348745800904781182287721561437000668798055718218281454346032027571228668694746689473774601978909036204385325779381147232259683049966339856093442471466233807477486603440201151493670445294321381129485130107654525993941744087169252103059137570434607058847373850146154933761147816859314476874086966495165816700337085774515933134635104821705345240159999705818686452008539086263572706245023174645536081525880745075151086230477308018117131897626832289061002559013799642373085485369226725897208068751065380450739033207190083532545924451508583154026376817017558427130376352332883929296543584473532248208909989955231177680630240238742097015838290650927321978492717275877081522957070088385878894155336236891923914984450023104547667112853395849566085269078210440910164877293606497939795970168758141993470700047206432061294404569965466451346815521413326243781511922238654214421278823788472337269625657286727937198177793105780149791934282672442019986665489537109606631881542098069238377337240020884755824915317827177203896255053235013586979352996305555375669099102463794776161967143947657004107040188543200939922008812675551055410726671644392156907500187698664101057913634730878513475310970974823940372040308496519568867460401067253001976267760447074616763506837569340881879272533665342314188307446776342186009747252008010517668797564875753401178373776484455792565163393901866951294271669480907767776981322559079813604642722343168439753808003727201178696985758575251633424553462952443571009100161538513688240629569552674695736240751930959091169170049982432860722643087644953915482712749206266821288807714188379744193308470443446482035719247999304139116453458042288183976804024386149832471790904466119158148649678759780116669502870060071344382026828902573108817648766822603726595839343963137116330488629422018783883817013519196800559307295093730347986869972192556165034654064880103517358564513018620474106012750194659451046143199777394022592132802998785440130544447473427583161701499544716934588226133937902814296518459091505335211941601031597788817617718151641671671032623261756572454682389171089295101773012573842498868152993538870919357751176633953863966195372726957833994028307612431141395449419009222098408707330731978100818372775778730147393638508491301949411075509833572793403087131801678830846761328131849001679930181729303365196751562810864493758282265106684752193488920113426881041205406633999660122243627323414788692969732385853524939024485247580430686663803818477022800402779197170828080672893987889764296349689778332780244994164510086411337700005138728647707526351935380083633797700494219131334388531040613380931660958033155507538794998949789674887794871949013174106080741904566906459910611319583811014736646105471671695158406763917605098790717518407339230148367746625107785888536875015551691272725572763084254691479036977571423410224766984733791567446203352358551034317516054551302044330671835145824190436073653461140477889826712641599090973083478935793534466914799719851583149908597975085697450927045114171862269954962321931462658581651990268443206503642084587746056017352642622232744520416861559341767688399629715247056430892828716633016135667892436485713559807513169531629495329446477684735616477810726368317149677942544176718297752357026276355325964254779924456417306568945085782979565487193990275869058920876106372669407180842963119497389309371695850027682038511131138043039527544363839428632381398684632228822147707772911734864426793930728477045319621524234681229335215780261935090103287901119020696984274835564024359646261599583079418436521684861498194195119766932347018927911736522495389931017034139327633753304751274815127203958598598132288379436510057866975612268153102512475182973215987215717716755912084200308751392785780212002631052928178779880570689428647661193621502822300213425535444585792371340108027645343554075386820258742937403194671877452959845123163676253809633907558665915100788401035724676384272890677627531099596385579571087984201586388677649669286739251427387282025125581190033000228320218295433282540511656226002300822286445594936771170345727721841041247572924907688963610647859457032647742988509771384738664742296303985762310544900232355791947735492037797288765609274725819507398339629641952976720535149763704639798432427630390816084112959281698092349884582694020947434369339139627271008345400002792339101281625205375521702042339834920710569644267549670165883805916048145912674832686430464841814326074459484227384734446481679563812819556664222639894718038311541912659322881744623929730305491765334405988773579702770807947388006221810922010367022477612750800047245479096486341520627839847448156581360710541953594090580439164776474050934015014030480738388185647114487357122044439200017422108209599211959214778153640087329816122612019677079807360372014307962627218775867737979296408613453373040210607969998004283257527518676052818539258168830699530807993071321237958983760849129777720177980566533086482794684642329761139101871724006822255537241185232654822481593376977598909499336388698964184804800115342819768548531897181619457875402007999507505951742918269488781860879829958956642742541349921877493414643053724493103247265146945595845474418963737371112610262911707394919730581728177166765373892956841722546712833379146669808558268104328270705126331314353504345847844580384902673506282485443950419961453546705528424161210782386889342102507802404151093470361836375220500160835143958347120305949426678375647828008907844627122747550782024327944887262758948942086939001261212234594253815518751733869443141325303508783788195114934982167398525144362760926595920100977507312006466894524711342057001407596145577685401950862498244503348054110786599935842489613717264618735997670798818646098142648270575666010909113637491035276189269231764390053076344720271365180592982840933277147486126981615128995964261500729289955191179493909604869196001484356518208835811732371506427546432695815627005568153786576923050122913617285681882382390746440407960156910310314317600753899423953026567551704586663473928328970487372540285271828516072376129242855015558985527383571969773548069337493319592913833210556959055683872538413374799669907487823800800894321825025116978988549208321854463139893592851472730076342230609899769082143949335742926437889091166703390027316762330691891967084304168022469973593411493046170898002653706202087709017878546851817186856296763959387111064522346249307691856657363147872024045716767500946281163975823179732735153606468171039117000773471651381495257774383737333963869127788288251020492063783852921159627226825651429609540459386471584751203561642295560096678468119205904406332948979097649052459061904437568677821379844764042386331644324748663647780976457194139112470206704601409784961893715150689158603553959220046084990950741404305328018972541980094363681500417461088519458227096088070405025653713398527704247608613862926655603902643121476277018345147647882540440247573475785840671156832128876817263129916586640458745923590759462385206098493969362239084462665317931983772733708071210534259758183040611571136966935286402217321558691053242348237566864496522840476791674853732969657987248401883322241370198417247805916184966616886848079673762337141300683776493418353427233478978485533387384889687344568711542061564300465606303965577229033952369979678581965070496010459270872932242141739763907187234728046396256215606241819485315152332547752924320654057348152454662632312495675581110316746714238854836139043681999364943377624498059618488210569820388982697091266815384911777515904939389340893716966826488821663900785395021781622233144920047151947620519640115822782855914500377195944333620553320686868668166893570193733081579377812414978107636142840867666945326794947234677621818899132097836768102195581859426517590905863419642236597681932447140179383380054320299123664629591123353083929322983513926227241022105110051516116301982666489728759166798111875767712637641602173431120898953629556694217153246402901445396359490749027347980288461850570471694885338727305733470131479861005208095642276291205874711240575743506872226100182570627290442889264295386618269711046127943556610042437822664134715581307476192187210472615136639087925796308411803673548205551677227401154264775401984784304989340438352732824140003144764042302001311187860818204252502446801972075594794595026793872317160017255001720406112694795506496424359019864618350182469709493579162859362478842422312083493278927089099523800151245021514694785025720149739155732247761300562386695567237278115998730236196006544343780395745869871582110722131623460239276002127186278068814007141252387027632269735086684885232688086235182775181356973217219697753769456591415010412184126778170090280595087558448365383420035156160249450951492359167766083527449397578385105204022369001738384156160663143755283049662452878841194802946346207297847048993778499939137598980033692433715751892653291507630862992787347489572299893922186484865473761290871938245418982928375807382284814266244095919269286693159147261696018904541546128201248427048373684109016415139200942373790066609240615543519948240196586661927373312728393188883114654199461823017366943051867665058344017709159651036722203651071553411714931748054077001080994481635622695084799183538822891787991873124527669098490088313457120465812935136253705949384033416080267907530098417615970873162544977617494356046080000269204028574269476937290321177870549044544986051814109789211943251056663033246453008089211569866078587193177581720696767481475044032676839711720332997687795672865067062749004287576193752122384239466586337829303045131560414971509804456326671113629941104827117739487813697964004285391050086949180498933511299409284703608380717992077389783586440366777180893021886105350982504820692779682459615430236983801636594316216357612667551964772319740930785219824973064802075906459914903178726286318920369083661288944097182530923026414684802749424634717709342715844888875163830956974064235837194342684656959540116422976659389181030551771032379903225232587777535864796527307261706597042129810816004585291325091490763063233585671816230803179747414999936039840241268857341702516882325130466398126912358462624511433772234012836862325022717529154628797308003571335569211090715576682353365997300105020656007504731513044653229243851369713935857159388842020629890034403910100724728579998956522673417477380915509084730185046471606736924147049989267440505526304004819925529177393767758264216483331413627389334035083705430215771927996263570648364493405783967979471974989278898332035206906854447774512167835356177153755438861342415052088478426488603449666010014615596144394962260203154309526989199685973632989897916313226062538799805556300721567119845221704115904355869118912125775319679693419993676645113660838391946181023027092607124139625298895640734601628671882435312017251978437183815867857188927486639129757532776516949258676006214152865035843233482747908951321615294910835194326794486915485362493355570310650558184991110955888626951267918690956804094549114305527012354868537450956092184557805446501292576185490238823651925149107982099186618991426192071777688036356163373245188891140539846015147522080630580569806542807333251050909053784870852946921743074104520663442123953379657048666773644518508486470117050991877386363122370941773632258300863084288852513379999620805830083999440133774006627971339171203235121250977814508141495755647118199905253275900569567630464957404457802173423901671778356302170391262596401076526374618287474413701762954688564599791295023005140596157003648718796391886663448010807297836336473971709358540345537684424833726517434183796860242175210771031141112244462387570995862225494859265252938396324374601805299725917134062067867704273266776689373824991491678806925088952475535760117148354825504601016099264729131816171469412641943470420340639759722181137569938560187816841092798138816131887073543650119414489991762061851676526426424640611501820736027729479889959518980610498827191422952205638146959458632025963596582404779530103002160082720780252966183413280151399446755259691852643328507836738885098106164662064006644591790720536140174418039642375447306794361590492940084914991579648474149507332194913962857136009112738384829051639239241195847521566641150716288782601550681200382083626353973357214770293915591268673553962354479327012342205470954585853185854852962249930549244859405805036070038327391064831607823641124364394065898015717063966587346031718539079049608658452369358734350678594973409029285091009187377366401184962486995708867069164580119196465114695327274106070936654672443240410435908231532044527517343605359631860360360517834294514119642272427687705949153384700826265763183383323562336895441755062472959790734764351239329960770163630041978045812617601663616319575083461665418539814241013594988008630319275135839492194036742397355435165621990577284916059454691064314450475120148469281137227712021902816347381231523142847610814583440187810907661084629772195772327745810501748235588067473221463504333597550390961084148250802308097529395504494864713102453333801390180057053650381762992151600720824196812876763193171440398278311714472849485002323330656573831521819552483531847617073034646658870993517416726186522684761623252035589359391583692909437750959185807929388693261252157380260448588507512140431398351154508117583407415267336911596783393698109411131920728875253761149283846111061159914225275736934887535155936634403940686500805456260564578139959928190947651711329330286904002399019138309169040038944928068757200363705010447623833880155667521592220038492871265488495504207445285987736989906480547853171752926003599439771745193783688861120198195546194559256115033443708844965486941634326848773677597623235345810304311026546740533298325432224016053728847213787634821590870063331264104122925849506811468159384691154311098516599466547773180302048683182997374159947657804544841222333181041139556917145065704467389841813741361991915192024113102238887512116396055655956179595400213027396863826695101354038066674090856821804457055094848532054278742920587737150516155801084380551235533846886257899065251157899587284241246098611973625925537154671442507593092296679537060555398851445884933295484878338143718941527628908825833301456389678475649628565166176987112633245359628256940549148254160439964909362495467073613505045456825915058018159601564231584432235082116058175224346778112739534284994479390621620240555902157514024340375248376263253390004657607653071854566921020073979089498661287938902825310383594607602055615390269418444517206842165241687718577802631280363253844312814288426927729486459528118810543749555357205929004744067594648848738758741603148182229242470209393439121445317386207768014542245590709781731971022979927628441346113673373477467817623408112340893525451823408655963387694812933854287697534388283948168848665833606663392184661801728366889061950267583619736168152133264481918449489081676348887715009673454086584280857477615910899839756124587470369360976570340662271682506693510091700825530473840584893043652927509809177814002742759475039113954802674608647232237385832652993289533147121015812929914385397659429144081695506208344013833413417651286089514605005842761587359950557576440760720210017494496443799803347669269767283304417326550300919816256195537526012930546697164122545769179095663668294682536793181439305933069903145133475716572432851676669482062049993068916503213653469325711840885494326108568648575110405763383670762012932385049512094014719579112103417796085203943890166342010381232288516883093140957508666795666231506786083487719499590382765451016570441962436209772253076445340652110098398359319014063894244698508614424779145557389238444930290800798099864112497642461731524671280446557684899006562381525981912584119477316811283498243802243760215308743083915438997040237358219582219900165704194538793366024173718801730676473431222709493083052116436215676142940809423991580237129968168043685869840833150647128474854779161440635311946404009598459349316612706503567829897345827669637021701200888870409889252613413608722959207271756169678192155320818874306524490040283715032279545382494990923995612905771366304026516398673680191960000486852538121803225311098175629918570575954856718325208759125951709436022191176927590820637135727726331543833585095816782012357245771520813724451597390995211596211922621636363896432848650289640698312936854902895704245737555163681281747376674393272344762973838670050368456587892130334135414678829558834327729226268869489311772521862680264075825846572665121891417666718511606015768165724377404328802591615516352911245197050893638157590571376572112008167499624430144376976571955390726556533009417944945643951563853276973143345269043938386169328046878834702033706369457123818129954778416620138652649297531755355915579836317622074531937473814929399427220365934408515231462321439381370277452725223503524698297991104899591380579768722777833780239156798940809406689959068758777221653208778839387683755031448381173093049909309710502682222875059351492038458011989961960929575631723890999764101589977189925329570314969445834648801563646841586994658254606920674287747493446898302471565672721241835513416090346286146177376739726183568270360465211460310697927900656830856849140490108366983821495110637157691407846900823543170665751792332437469114408315776631256247534304422054960425060057916297627199746099846655122646728855302286601281615962973880558872596545766567331843257962280651034762717182409918068239627774660282903744219135170371602931012151991841300042920177672423317529441790825346773378188542278232854223293227181336181809773210504178629784702129081402142239428258628914553955912403303799476700241535510894455318642820372689500735821403575023417371415564564522670422209303629611189972673200918627457152077424211120331652990511334482776239589025322006202074249932945728087345327371809630422921930443792133097689328176491878902729490760849660531315313504163444614116195555763667700947521952026193025515175159018455114225664456892643276574142734456506974031681585086266610519551053714364537014439933808371420605198093037716620592933225367556276563761474121960619332052356253848203006955513191403327067844129793528275909393303988057126665590947120207338468749274751139970943829044605327171640452571957536336845931821942840551516338165418693567322014755425976097770535352280979540848788802762860301861974633261230453399794062999470456422240613543415040025953779324354420383969231290898140553735401492504348813777773008920275086859276660449596489690192059509591885616132984745849574545211978508501528360236623156773158931982072998454942600827369686134053931842479955950822084162247128986830957752994680181015651536200709075695608943003497786616837069064547782882590597762974537991824619372857143783150889247555258014806884116369643183453359946276250309166457119389914486360878965082099717981672415776830864680354931307793649422932399132523090866751190447962220665506573577347071049458443041074203131130527200333065923483306361391106509278287062121933160806787535482840784714220891878025292376271911630523384432579579242269369827140692943208824663617411611189735425114423909796652949878281958730387846002606927772079701501181327940843517131818902553903549220183436539989300560710861135609577044008926348925698363553404557997544731912762315319826288248027476457871178542639266113174596035971970542931896565287893751797134789638045331964380517952969749258404738425259493799743718187596182306219137112891814824200238384733794523214970671234908400889561828384168340754380096088496331367560659200954146666647924332045243063109013800532834905374926870731065165616156634971456882741662291620376476883724167683211746354478075960873003012511618177077620829264766798739577096518084041038915817132470535978230975509251989478878646153599671387193027369941143882125604157323806202589700709402391327934828995368070439525811597252166220273599868224889906647786315368715737973186965572526415685599210293117657826556856456403740208328727763193096052859401153659904826453125601259065510242131400340631278521944200618671376725014768546993084541418713588793055636467442619134035413311388818188674443074339589848348708240977739062290294568435741786196823843480823544491929682550609519928132135513580562979380395414726030031306565912393677009667186137301684391355741620598592240903429943154890297279588045491056071342519752603688065184570544949087517899290637169582460450072868572187893878591927031928650900457484408743993326982604004824979973598214186558761318148606365361444984359866537355820273870483568978855852444725771885834258753334379619328695104126917669857028668990462516088799186961968496840875627863863511718346672441737530870348152294334079978165308569834292257918307350478366452727438025252773072946706545562918957626500598010536077821143865132253637250140028681152982395567969898590060577760013376720169504725180216216503967285386499558718503132895715148258222154548044806665403583163334583144932685868253079732423359810707741009157247449020315914502703295768956308728332966128593957180330038313885975352843691339186077605362010347483658440922892669843920268937552397734838124536030552287216455493174447505134993751616607225101354726772761577959731859375484969819101559348867770089917163963172899015964138230467229468435351606296401406717724611604073783590667588292264939762408674556746930940229480020897835957832957403874458570492596740820689271698421635728178408043256435235694110427128704723100901522718200220204494348087427441838675766248070486524043700308614798806857651775810149618524479936361597945694071981735556770367714052652848752667885969649505224345713009946422226206620617403641951155255508912023072987069444199740457012887806258813261447852963502581808778878658304464168238677648035114105366600977938917494186965290126617429532806281837919782419235019231849064425698648351782445314902476584207552407925928393063244848250765385656311304849086425173724943912579343617959016058926110246563352188262027278406133184385080009667962903700116041899974572814735549183924281528093134342691639896064747495555473210695352297610237390695426690569847944561941551360539228202461784135195134467407647423977596557829923188471927594789912228308857967066599059282817703984887782491474686410663971614994186870377502682579979922233413650541214830943731004270078418059925692624897595689313278228370100000942449618961607070572546219479440270758785003745286024111693265579329010995652002350379981150002766353967809692289188228600252364484150684691252614258256340474011887596623338824206742929637717462352390970115708901231106287304007668133363830950207156434140976908377103783344728604282191785016532681851407831776726614212301591228612173685426162242975300134233095802904366326573010656110068815304092847289783166261366317993484943160995524549544287493877460838528049166269331139358106641553046935332020288891589165950072836099810871199935804215671408811811192467524008752304706098701321503454470261592434494711279575264809232051552717079438546205112441908221248188921825941393001534017249306203676207131875804247196224629340488762077727305365915862146427523018299415058311049232399197818377557953579869417602868762204109712335321304344181614708471916501496214063413048771918760820780176473487178965937681830847158757005338763048203521144361363007877676122472990906236773356442551652858172596716457873499466972786259058571154689632142350588713682771176396354750389442428631598163307313185511584584046221283219358832309797121631773310417535924991506823848604828973793053287868315935255225027733886045857162173800744482956546988727705449478572335942591233608741065176689295346702024496416291348078548625177454749207342633988280957364125727258426323205902508157252171699931328531411298425426789874381571792335576510617983513602180672919618729490399201132300248352811554227975158672751401808150001817286609460341982805668287973885674592248964423894544059107557257622581364415320136030837812036784425274112850823087849878271991520267538972016662059973976448660852305134014737146883352442406503447342093286745661454667728808601888440216403688586860266842880559810953734303731723654304313688855448539211606179291739067123094379718524909148811329772846375427251231806268310945643093172598471165146898737880828388687256123669182476504884819447973124940984621198163362124562969224719552865317618824080346206212153289672745145954224481189783093042293739820886750825840683695064091555087632393511925477249010827529553637389350037404796368438442301832112364224213659646118086196676892342065115760504461107446566077213570094669860458990898901484214142263645566505636541135287899973950989400328598959315549230195178202983753284251351190913584379670347000737641255092250208521271692548377510091829346036468181395748321000790556390275452083539660162051015367419930614666945896128329754130867282150386343812237880897099867706642096094885721922036287597592539632460445784037680643823941417352836429671313694965658456113067378995938545273543334334710868760766479320824309715905519802302261154589285987557758867778790436715843384360760932006227399932395524416635937619740358694349193579201217827362806277846972447278049954230592581572515389479890870737385557003338900027129783159181267353644142577987769458221562085736747970429680475272161372071943350853575564179531906601757994033898562705078302354449863342445256499491935705140563032105451464754858339181713981775278990572546917232758892178768948728329025687459986051264958543222473741193501101004536283305141633063038819904233318427398066472656843341574616040138264824733577365081067582200300753909244377512020132633929177032068747922025800486570629819033867279676823486939470626353165504294338129877716079254054827188707799582811995924524721781755441942153303341007356733927814337293796516477576677246969466569758032287930884002102194079259814148539462089562847378526413922570343407444649347013733434672095997057509748941908526318299134340184927895932127116713866009734896751127346171851637669741966692799172236694300670425641546816784010567701882435779142615016962223328680039841798600739584429257243171173336870997453916992500987862606727345619621485317753293115515652564720357044090399072114923739632325076991489991478242725679669607982915645004713096611946075973077930250429356402671497351890728669637840926095711970996359498585442502876502334049018579334885764608507250199369970992956742503021598444543548828899204609906571576949692397334390851491698238205466085102450975542127834057936654579219379582607241109045905169483273919158205063644099167257861264245916929638268316377849072923350861137718562185478332435118725568497090764613458980684712397070771971110832915244355585880866087504422570680840512407949143148112578334120165596097579158559192720713864072605812242193127882241894525517808320860161616095248619704968897639520757243962933785043400965389151026641184826613881777963959607345524552720715617244231835578372478356785825215391331550833500622960515053982133424476839188663242554465357009442958585156220609785679380130868837288461919169482446337537143239502772155669568066327227600433123284959650527557503669553303161318154355146442753610116955923171139059184217274588584603535035314415052262150548324392003289282970644996656777109299417361340535685474394409323847218598948269355578050904235501292158417161070488672912530481486707937299948355071965291269586665340433810531198609402898494677315002590140041411042931984420713735908696501880322270379646538653560853339240418193969338479726163436417097675197599801557000481300321221693294774394185958705590188342907445653790127358429688365099276924205586977269551285185785612215021216807349058217404676142976243007792001393142502015937055084197226973642957405507413286013527681901402266798624608622514832118102033483229834750306946201252169805040225889498509125630189771914014627774932239869935598108986183874161275403468417839381265137918824637718537114472692679408066507318649357709610392367663366044020597695832378229380959874330929387586047024358744792230995311229628796831534563337056517291368657615123267599319854117618315955715531272794527580267017057538304121147621773918652207007481431563856690769030899420881339434168440170133225043583861131011126910160147917071287648200325311716970439549694790668037424604989431657996500564933389839313958116745438802748266394240927608339453552974930954754500973075452077641993745859613379490371295217230822021814115587246244424904129381950236075641659996081477168352057145424319862665521391809544513441909009848348302406882073545425023776690587061448353824027560957893941731256773156719627357742910171178072068030513539915239741094001295828256816142563573178180112145574761215685770686116175690534857163708076416780347170084213984868629013000213769645887821882109596259748079895326489027307813994813467953353352344989397894355968915467837173118879491206440440811472022851590868097760485270948001899944949878985182539115242753635721827667438920430567968619028546172628329163972559518906285790262593208544314898782362757810695500260462582556808107238330714506788404449421273136445498261448918537881863696170072750748251333146051843616645017595753631862239083567748238890339307491168704954702776884674024961601820183509142680783238910968779721843752993781434020418730310154660122401433676430239544333976430412389974965061334053764750481733789690554144387508142032746435116618513268572306281859903271845768567625334405598770108846790535082437190419826506735000981793036444403956221311784816464656632231712418748774592515276249685761857807668615197280796252142697136173612136060487541691886012254230569576081260689074599900485856530344180483323858997821925300530716309247031506031693902968523136634862714941891634194761471056223515826837986160272343223007917769080484851778852254256536419905347239658376454887298921111236488296551734806894917161305161425045504066022653821042403739752645240354558032730336871624300749552494805174055270608993880943887158895236963796378272103245018735102949301942627428072020888553600402467136803701780145882675220938718851947060355054113473794290629148835282421527319239074229125318987563231712215134030383188426001087671419549289764106099236662544207778012076507404562060812416730759117432026114558544846700527418682229536138691528883771307999928401792316165582873785860509651357614590004216578491689624126564135288284585035228861620234436745823489159541195034347605089767624569837354938521943413151780795661951653789220756479490898242157733920973499805029127004544704448067720134820119765543119567875791958812626286139362682672053484686868093560604214163048964347406548769848751332667313590938340718290462935395404338262893290125269314029829311687847175551087781719442842966770894765479091623984633309492066742671223354338387974527032662373000372411010501257546027173208938619977647230278904132527382068892738506057565899682551246808616762206967992321622254044063841443800897709963429583728565948173350628561464741122352125931423059327919652985165420004482793483753336120405789663260423017870574879894215760638234674163904960275164525655754918947028119240500179286855449434787284878338269248496223793298945007904224651713249801377134715304308285150639713563985792027369615674044542788821925906360678520299578887677423798796536744685717168836245553667852710818716787169306263376066157149306528164830027597957670900098131562726705337895609678193405179300078394264590102317572664105774543029870830822691951351332938172641937743861989927242547867960369244213605323055231985507555848331339610496284633249560601523521808388569064831404386243087557843309088014676574401786419811427140722674878993884789415211149341744767732710952436579487240177132065922769328878624220485207589267726941296466705766011473820948154904967467984229617956055781326698408322136577170974318021518614156592084477237558509176125195017552724206578062688127175585199842867574536787055193435123820139799599520124750790484428097017512211703515212055282104490234284827781891236099753987421261262996769526596368699408651365918023785907755032926495072059451926825801028126050394180111937058368587264762801245862021720770045698780255427274423950821325070461394137894092718919451422669499188476193383828481444798374991205019187450640015024876348973989326473912636656625634553838523515508597812183938078652034663972401265625311693715874868174163105770040969889277988539828915477115010094028206065486634961736664352614097051984641288237383383012197425348482073448878037929290896321482759328983493830876768031808111484972038961509488170418149382484906671355561772974719793791178332157925052401614973799968219595339648236180454141842369241349632558380780820229951302070961733485168149198677107876767024443849311918432659365729320301379257044472036641203503825261959330822083517416153804341380074616443407530286472812418708029974693651416903384586599507641001915061721348435621302431129381656460188343721234222276194232125202844946202629185269380213021376077973152824551466814337177739791371814260305665210583682944531824784124818327540609552965629809984978857491007835770918389101744024087992467364444209878673950628351236512266445319934623409249370134588301357896692916473589660459261166742371047170305662402192588037570042495899146658967200396622518358856293841772806152197632252582892016926981782042315344616353291179042605640904995972119367693187884543399223694109865425160488292215880749339704674272445066509117489806201815565600837286231079858444031469592607747254470712284159267416342057543021934079932753020095750520702792698154055815579155489271774787199914879557647467671855144291675249185765062469132571267626144965579704654505555865438810168197725586169110063984545816843674249840733549818639534745731223868520594391001563734497721933154591071418606235079622633521941359608490463419094344686503207005707401784004338963277488461858948778327307072637564696992474767473229994421708852140520886639161353849256535895402156332041474456589219042754313232048842068750313932490805940794895193668585895621694223005849542929772785891794714985242012759711348565584983782692686880674643369776612612730987913797740032235114712130781514777406243340293011846757735326208222844876931373336421669987130770454076752535741449133688808733411454318113458501488196297055128786970419557695082257157677415036169815219244100506346125408883614717359429731948850190491743551062313354037689552694225608367464109549518313494553176835280820510149674874342090097511945553716378866879342925225808102713280217403573442277052764675463709306749350186955331785738481397196250459302237130590472264650823062381183718082220892645249778419048507108571090634027378057300705853188097506526703188204530808903857854271105776632742151666657638183141391719359308607756178489659425743791570745612472075885296739124186472543631083443202204043778813921304391982189939489675927508906781793133109840102828218741246912307965945499900875231314859978650214561417996679149465159939599518704834953258730462862254372864979537166361416383777764298588935807633041755593983319442098612152970079741738744874703162511191578761771118946710888471073279620853866393214358120924484013268742720039967911060780074326188009023139904371679622501359448092335391290011332467597903447554764810638014384718424384096009537833972931934260597507453380366244731905105842250482740379522091468669311788877778426490371621570813339942742762173195477393907807568832889849264128803208892613749105394511590917030151386079290586789719711061304670252726869982976249050885922242184916828964334024802461228658518012818614978263932872798918843792861270945778811972786411780865468255913996341356871374189385949704988077707443100928228485455367032301489922451105805908732477302312025737920452176729192380297209675790449395091000266019349418341463545380269533160681172345437481890115325564232808376963382358087155670715152280057958068740976319961225075660812364821959817870012690850805084170291660187419922489782725603583928754142356271136055598765211113109165620680343586215620052407779303245619331423451224723625992803979857744471874683579385193880804184311359488527846099608044842046679493481034449929772779931899953958141850302039779708081476029622797394810874243398298621025629561191009936903182654040879173279534814568215033954501520453563808063606753569389069287409634893963146980435763658486306600579521319536663125999191544036119359388989734204089640142077829539420054488647395681765511530080498904663307216907234972866866498814037719842600464260957303373369310384859905057586001356270015100915128293994140343937746350128200165222999516583507443538722650279156966621343349814196741053974797771717444257583245104853206711195192694592865360574460715148212067424894972458183753599116222145964565516737302173139783165110448526250877726736847385476367518365608478817762634170023195549133946452347727706485730424981016129581846028209439199146579517636430060504037018520491030256420145539371812858108639346770524485371286742005744519825916753709913047135373807196686725456713946549848433419113957337371286238111955522377861253825439356172149522967147531078581706503428498179598658855229349575180775451933552090660820022370499075447028763765899766793711280583590404338646080992981576542873417777457370697346508466907953513424200839263797793700125003847004199001744799991291953096490174779392103265111395972473718971550826739929842624242809022897312032684222943253526796295691382541643490963453879252437598292442865275735586931074719693193741017625006022743390013748133213838408148939900910265216483397740551674170659401730215749163155837994778049532187739315216135024249663524290507870005094887744017415060953433651508684496199949689509127151395560393783902055785159297514063759510828090810059654487278514053833536074723204960939588841247053887357107999449011812227802390485659633432442082311771911245878538584263785512078493447211625853050579985446437629117569263337148782613858434689368879894824427247658657116978490595264259068082405054428714097944733392714444041771385552948615339004264287478589973626096332624998054648005625106658064862799571474273787693898893814832403792853444285747845123504778779973765406097117685543089083651452007309974640542365718471319795515005790941873942269441775744450420452859875522849201542294401951171496042218528310467790024942219174147226840034927236763267861496779745297272479226850522043387287800856597487821329512888028121996756318201130847489706611819246518835101493152549089819683281139611003313847686409894873789852826427982538515152536653881018095002234691446991716829285046571420087058195637654965112786168736477448964875635604158837528548937044165938816561779426482535242153516288295558930363043393206005076007121059165101606973749017616380319244673699583626954688765524313651165518210757836232474611734754366669966657005584814462093249252566509636992482580368240484751090362154849659674884149733180778927152321948316092211748110238162737766281145428983826948441744459573527874080664949200193746790326537773175632481269003154262470007706335914576770113437458944999255158507621242531407610138427896002077722326467327698747398532309747308584804003125166699379809918989959824255147370812280140570477763537154246194330108421820862033251473806287598505214677440513829840380061065699205546015900350390442131906161746748843875602602516627559239622305361506116721183180284924072690530135032995160317765482579498653164822199986428966693205692435183195748230601579484005058382758069715764487989917648629826180595343546414044826315614992611063117364041733400729310611620385181010844420920071923376161519270536813226841666864940928923862337776095253260715540802407594655462983282755858585131638500595599436034094081592258210038776949695420776871487185946647828471594284108343988410042999613520285496651023327307823384693111910633160411993767813855553680735954005894163945544727029970239327082069110503827915962123130262726093236005116274426552615430766552429958835621453642884068997369629202650260762447071922755202558919319508110040745693870987505866468695478295167585073802451201673993953560303890068971493481553230566512655252540795022675145863549304826264899900982175753208966022932205710548171953955323480788427140795916187520319786055715399239285494752496155686706291476705913700711166691222233460224487411487926694636221794123052757424337606255071354355042932972512433502386941370947332239392729641013349541009074823300941390481951271005237668647160439424716668922179544193781760197254613144500448219235473248523169293398093207121740946112865987620384617882235943819752022434992999758651652744710464057399153465788244021907090228473191815055487177274072077277236161971401454455578145239309082891486377944744295881056621102840926907861875158784105242860576749217139917849401273206580661895795495996362739058736136923490523654143911486591851411883221793258932050277155802543125835841674257864406347279978222203950650255388577747015698107186766897876644570468548507963909294548686166399252054177498213694575192919933546673541611329918170197729197368239124530587401909030667006214367761061977507932276076682514036346388775308611879996717525980337029661891335552414313879123807637263746390753849908161053593370034312851839317078945617035720367740485966858838711782059606716747905361158452115679395940121905662020056898740147991794062875151061126376314370016633554147471044345898396214389669827233934987234592433674173079226201279378749162174158314137250109909357820742134193701658884278915006330463019651331760087351229843134626390113620309915594741158121822502238567100578964875381840433636434530884663776049452486597166300472103589400028094013374106130320140136331678272674617281479904562390843335039805839432948312040001007815603115958163339102865769346700081088452045309827628347033342844394701313214225782136923730379033919465956396385472870956425532209857719244241365142290896991089849615983670488918617329569310660878486783663175740013698525579486088671658903778950398115374503121093750065044499869281927472043587392962197433455753141261488386603837783211057792339117476737861045906717769967039011211446243713151915037863764207728440878727703425603030306112340243142257772143811331536701420805173449831178780221058656604066621747952450331200356644077780530057831486573197186845967780971322815300628959096529584854678314582139454978778707354737037615631409710419460217953964824936287045622133012993783401029195514063423762244194129466375565862823714581575488977230489314688442566305551454150237889363278073298046319622270298662437390350422600214548391159547277524284732001123007729803682157898551306295003127614371870187500465964356043887080084672772382396900134363441970341431243964383744472502228759487760551638282451382672991462875576185486292603330741182310338959160801329906712852048608029437482821951589968012899297897105843892550289143426602240442809263750079283589192471371779768258295797381276410603539524598439618819960074107458509661852458224457687113778277018857504725710087289275932750634784491232122564616587549807135858741477031537536224893460972561477453661004669090842966433769412834732416248379194268596483452334127831106070488417660495149921842824175422471073223092976294698033607726266251478474843502925896597560614174100027133512496548381322522500317601993982204289914184387981251946615234465181364671087033553814491153793318383583546367552332895692212391913541898115129637847013188752417553250192740550242296173149159236343508669388735294009659610709969538980459288667840937265642886520055874982393949102708806296548819332632010763096455162898835938357779446156099258172985897875951359059745067274166060666702584757792642163501948646443174697462997328823165581439557515491560774481565225416180596012307671532361634666685429451237368140947010865135538816288352025176298232103763985600982014140962473315005292359197754519280686329457488785981443414833889692485150397604431374181064513466563136508795759583936558006522080902684754365249149403390794089468390114005954501185210976779040597300411573965783239336387319206621224992097309297445570463315386176782293181317252360325979958881868307650603449909151649072890156813957599045878318442240257875316568702495507320166282201251578173536485357956885496779210825770753955143546484949350261943807848130105650713304845366530169902362306987487552714506363622153387384000341661569824107212089713191956107396991339695987610982461310053082004386253503092839993848227177361874472729519110400010665712807367911244413621460338415104590627105244229128013504771455637832482986319366243765107287241486528994301521070616835749345817746410204651140492893577985539208081441851808619368424722472405317248368393414469693933271754241105404511617501883874037784734332357838862764755821065661059801407944010069215101911484210979457802778303251057001017696937825501406911349649625763248044088364339670579615673820759297937161196300639945392881082399969376279265402070693204948311591980368068130332184248781628133474342148362429896594127172543515892540552321823063657170911304627734509939541697578679847686834249240634005201557512702110497473790511602715954691784455680413846726936990576386858710478989352137983120406724190032046521560115467785933976994458602690975357024925583304884552120277609015444317000686912745786482457206308159965681919048991015820326569558652439585555435283209276644277203934535630600831745169327002416207188558511517398102266832948731104932184076509149458375769736463623082660154319844395559878339271973831276508023282894415033614392185953929972334673778014246296641129368723730848560611052617910039760961405967824829007640277910272416683342122990129935533410592897819801111520111243476251472064104741252878191899083297081282939147247793457837909528160121949512027728017089282708997337694616540862901506445450161634953853902620478440763813235107340865382434766201270024015875978093913365532725856826304258303123485866977311751239933039899468440346063718889043765994873602713124001740090325844245249202245381573154428597143018375704748800746090628441619608111894588575085744314273960791315323197145772057418374669654256601968151442548595194832338429767877552278315152821834420082182544489965876563205772371818649221575391034286843302173228287597416826739378656547163425386285404921396388236405416394949485213982731411108890665200648321849723171240840138868168980488610924488041112006198687977469122656581159542531304713055967754916016204595939116794060145275009822600864910174440230265821793023812534926475506193564930637921201125846641667180860275281070273110475717600702806217034241475319229437701480778593791020695437589362034761267405676257077158651163288103407369220432500797624938918783786147294376827629519411525211669189456928886104623046985559433574531712429151357655313122705794881700763287787209941997910135141285941633129062291688393871572756667512551387913476492854496411903775730319237653970609362996413886584896323605810839956198687929962221554649377380912608580240891588968260421166317271710165527547625828506343610642339547301082528023377629333084971514503485623662985624167324388463671246066472672128695845392451633488383596822772238870815876902815410029736790257071068841720137285047478424754599520893620733301844803931016387266521128796253729739991090284770534467892812217276718776715260103377107943397272462250796052133711374294286408411341403712383333708023288567753767473249638500506454936581564903724138044428475682346150319330881655781527020841341910195380518325824009823382152670292571579145291273377099364252168020499767086019739884298125770772111125356550126493078306377021775517028380745857548957969484306636763755277393053364950562838802853613496715592758379426548442817243769612155775304004278468711503090397707551382898826309509735906068715691100940486930874339486913067117945583268321547591233563431517277543052398316419468512423996029517477411087315129236719800790455291849554617227615064054663804810137551561027993228098604304328494673653864818790124394628538062744737610252304545514604356597069966564775267180078788283004474334868112589393060385679650314678147806573364173359480282809181647234600785201130214882218986614413219186088317743409637498867009175027268970703649417424263835894627161978009663728927690709041765302884664471456499938253566583683491209926743300582711984486117678099008134414074428657711947567629977310486216369123054572538613395436504401603105813953726136316386201218837245058806054464530917843707253648662541818730598519562197478623629012775673343656047531740672510080139175382461463934698133299733498097624360901467100166510752088062102359684827697802309970376483188747619975021219099152400830702492355052252636151734823958497667580034683286165232076043293334866758742052202364771844938919030916440505342186603600709826667323149582748111167113717744526600268862324102340965222160884506155310937108898421815770505873744331413604295163020169231508446345463180802894660637134003571817084347114969916713948953593867363672732951900126388945264782399135411892859071579690173855768149902813366828542055712306735712918226996115749823188130243760685760674655810976969848692600330675724928382196093999064282964661654293719670853008575686408869018063430081704888768148877787858014693012711489722890903062359512546931187038114314220790736613220084182658267203199645781352764382224915827950830822409748490994598671483476168264657188357463471934232473620575039105500520135695667501184974874753140392602221162919378147573392933838705695968944481290769785311531899376114473064792600448990474307772913291281961597818430903367595229170715822457103962854345820164546974579376604338266788489754704536533705281431596467561340682670940714549610716153516878054288351173654751557083080247327866967859358559041266976733333036931028746191204257229347346134039007370214869557818339316464014892698313360488949367332527069561330816746183355759793258403963052628919864980273596728223354990415938439725610398879544361259688869417854080314109343310144525512943077696022630488310013407068050964669795112880974404326196158048213043012699130749903190811220501683046013336712475923435396058940131528615836979162249241941634255854307399057429766911448027911334131263940732157029050095862395771930981441634800354349617352976412304369107588515792699812881965997775855581442012276789550016121012203883315464137564749475254198786384678098765685777842042040720272671710093162187317484254655895917691691593412413973145215727193965932702485797898035767846609661798739758639051757584365821951829087239189046601835222474461223054418630697891301186607307989578957038842066282231811799587049836951226909651150292912764446513767460870665835545552587913692516464208720725753491242276997961608904671565339083883588193474137479165063441594551105699458590748346350171266070311486557307287460194303759332468113651493567717355784509999356668836882461332284387093158246207006978939507610333240570155986962618892520359580685113102178537012909259543667381581030437200918018642649233997445704075728277179889047644263956632380075100402068076575120793999354920792311693915325047698069030649522122720396279997819788389395685009154752457319227213880703229304598111890148328215918910469664276211874652242070320625775150602012403424927949822609993319493958371587762538511213515791910570189483168210577712905664279374955415609517361556418906131032311615532370586397567716665760881853185244789215414147978503999886964636151169689396714660084873945551040391546722146427357745004646635141847110184712282723898057485423338367285888340422720500752875941881839423903834102890818335933659625290389432308841017967150780158080059918803401567636307726606968478327658513063268788569589055558002186679637436352131541102038652777159235066371573452412976375699555764106871265729611184032910750169023693877113360073636618735530073262200794462739519810118877130690475555108473286622417749869790108882386028384618215386865099979175909502590941624391455372423173216581328745282205803547450266331179740440354450839971389277247775638052903927807347453579010694845943328619050346289484611979236583125328203334359734855590797071833212166792576029629661708437427145858893125528707189979068871765259694819258666995591150808739193189789972293297319481007223468034891109998481421723886518098812779053353692836974036532348907405030406968124086587388291871385740485348840219877793765259767451936218794576048055021950751359404763678849502251627490242212901378039213105035155065746977237355653609250892981166282241676891029164954994711998785049778575197848455397662572093382147354689971763656838105107376576454396378130556479418625579019790477724744182729695965950558999649064322068727343878611098827875867161602063026730444749157103600090845935546630203096061617817814170426913167423454650583499620081902502349358069188243587689903863885554888294943499732948220948976134992837262695862646578850971707372023910532388257178756625400900171644509520245441894490536584109731845414583643212200966050968831214254998205828918393936066638557477182175068741578173853574146614397423689049341306202114070128668110853533754008752187831722244462682853309247703598108358701493831857103917404761254319856179188841370010690128690983737066479545629663049438150864875497561834380412995361685502689048949004080156748217727122837087224887910442613739866484948234336414685467449841314499915894913786457053117930140554297841814746864952062282292229522423498211654608436260339355363404674401732345204569896783204325531027328455886159207619578302954635683462127929358297511018488760463746279168665837656907189422488771823907171590610088471924284175747832974211167695131755161104763739212931588884029659403667754270437009356520334507962527219802330432655388400145927977815750350894484099463620177075718576016909436012698068436880336684554875976069237628566926493390825528253099561569900364290638084065082330972963819051817903489101736852113133198160889952630587420843979116355424775510804063060695073788782224142429722841428962143540983440425869446616888193546762449916939437306616875214372797920924821823028499044202377198260331555803424772726200478852587721455336090708383758720631100259041125529578861173781207079704411723598662362079620426625812482722943583991721195577051285888619111344656170775389276528198767574759414399577997732525891969064219188514676733098594346662748129937132177816490400825357895827728014340704002974856419426939105623314345391741730931150136870962631215618696728848332800464205166776719632737036813927681382436122682156846109570111789525008419720694101518406184868501448226938070532343829300032939592436978348806766270280339689872645396310925797841273463911211112434917769528567835182254076505546835542373630358961897291892177544754055539545248859952758122728424108601063423828686902775469481443061691965015300435519618660250252652835527276873555460424827935224017971301056805367551828550497854381255657643891115004104691587215247528523450300126315227650285258869528047688247113353848709837825516244976518027037680055311604560125314319014493973184979336413318890511010977098436767056025401495589618855065337676573035949467489699009967213746303020524090441456992361585283789696759960210285487193900526496794689718872056254532190561176346085469310933789874167784986203762167488784673023641388979019380629899284501532551249961416492348770509085765463704387368618983138823841543659246833642208275520254777169730252227337088068465150266549897188968312518487801951223458465218850789065063337003927986556172350870997658524377314699170770393129323727809802554061023843562391529502020179515694471726782862827165005652836163752981903055132977402682931913296134029865199630104445657226957333496334508839649773705299796490332330688875424587076870902593084322861094161090485267320473783709439197698554039565205554139685994691702997554221056163181015820797928586871432662714919705140006030609220471709547548790278233644585623249982081649850354039824694011412575508312846638603782348860235711284140030710380731743164498843698300572032983388499885439481465365371248588032234819213678031148176684031981098460957946743065674907486456089986602977169566609179309960307576101660910611189264010259723348210699881054835029725881157053040699121668009345699555032178523629534561817409029050227693517210518696754822193369612762070122611574192412002803207043379699822736060603137747617178361160849146949441179668609659483382835525090474924000581191347319222397791064199037683877335846576136803632287907415063311424021438157151552139270116582173859136471599030805249463913518818276503321966926630351556972040478616639499046485573788728182638578465663199452302459496689887866318300051920968288885344169746989919800199322656621940518326248073938785871352181226305926137139038124041503379960984994831961812105786712072295832308102664538947451059071430851544980962454729471453085579436781229123090979946099018348062332753990990310263274253651024856863886932007686909775959950780421956168559386297138964687137688975014531991417722512263851648224374662867909079959334443230361033769643335600994595939118694992084349205097669998328329058387687624846784367092348052037755601693178735041132902419193460935350455491157471795732589395184450876073156928364268274755328929212605628677039404189078500337115805362694868870138808123536221038991789845583462590561476056800838549766673902433175323182829470962262955411062614010587497734283142865168145152985040417581926432507856139870303375478006377790039481796047158134552772923908946277043703242145151583779829533420518570744104492132692002202423512759119970055229062576515101996248846295931627814833742636180334539144130807361313672876459876645658139865929312287492632237070743928858214255531657673331245539819767442670340008159077528506522286020719741366091642247089824210665181125003099188856326692119933947983660301486055780879746078676366128735131477463260614525872524459525885143075127904143883261460243877455272746203193553065731080957428665379961749179591643473142533349585295446039933059532543899169398586059584810737516760472450429942937997563093475205434240403473601067125802241347453273536378590837821522950498645365240763028248028772376611437655691745486791212145522947668086141196429107509616137136328198191178825809086833500618222410110236776829188394874705490266884960184281845084904215691138026386585902343999368710985105445043047626838897631771095638666428236134105520529149968648027876367710919857983598529927242197233014817589601162769252027076272479403971520323357059117211989778642385487195708034974439283040465391077608861000833778264236252552023614131710483248430918496538701284774344692957008373177359826786385627036995205183064997971057201276143497380908201680659805326266759606012876927071292221257754275293758860892460566013451488453722080155116567163346798025716412333176061784134470554713467458106476033352724839663167337315884281307507836652905875217648387690211256277892861040773022285074133922550029790248367962138550907299401071643527908944376901718434741070816015647161978524698459224350079823983785577867155200166004709262122487534541123031669161717530431829425292762253950296291862782842895234883084285124749390446586424791185271177574245924716294998717295854284849760241686875015783486304273211348873961547849931137985948252377823792317086793534774767318023703804026259411591824769011507248674810779475760552141590732773696727676686703749148926394083949698671187478088081787231498295482065954505249751500043164137580558066470869488795239045257397147654955788839392102831270421628773136950397754543691811097384571107618120881990899564173192294555357326655693307010639388840407047636808270452595914102957737056855017708239509613710433336508847693357256457137817457018497733623136764218836515485858420141592190964307131485814708827627899891220842123172483406901635837373728684950220585286080846782349737454541182201367906717797922278508938203215282184301913544995050880368129293430275403779243974057417482361138754953343388492163325499709356615260893520810275547963697916940734703616489535578871021375093001446539937654742589047207643677288764705365745317620822533372434223744238000807217703488300170357030418851456713718967444188293097249593254693497777530350320074712579444148010645021773634182653846150763246021389339710423056312706193775020115019841213340478932212270220853770340356575331228645018155833528209504467280788884344200084264219189022569013401141316567968916422681269784639900748642426871682082086669747723272748815620256342800900926446243168575499517240067035346806685376326008025901146320312354704683652524829608332067322877741229056620129461446493468796888600911970112362820620985762462241474006136201313156938189237461507106452092074868742628336448201421060745739968977519404714367995621029527785149618646779884236654980350569048926186876623539297453553563261049622601991624999817002713991132765321632344257626559172642176185807773926535438415161566085814674084940672107612800119662875655546199808024104308868428767519496572611115669598792148785577519984163128249154790832607866038381800709547611943510268893347307343073159367056032566619692986146875459828355102752778299343931447172736530983951272935192982131236695236103981662023203943245882178645749417379977745956798129285119213970172252738963186579991742624394990852844143616053321463587388319248943597021525977940869814096169005333149056566794699874162288369044243578709991015878497104979517547680619073664881039825318500815412212595978477683904793917022659634349709333678355203019822817062198977513383411353478460579831696807567605840356698933500653141580954216783594104516531216827812233646729604280059369462643026815655805492499820264251058579074658179887177767162680091152622566588791540380722197436633552329692732112843992048480455711319234341742354496827359156077211244731954023245586484745800650339658954819103436544932425490116182934600440818902516783136505304649385403664445068696728659340130198593204904118194714839600462135115825466256115722950181589335626936856638639378628646890113169453291341705335094433408599159580666179733522759904522419831686888945615430165584730804317429987812965190457200713890318441351856686937439736583840601243810058380962317702425688232211108630283878594544730132368308752789510785996799397753533473689798802059048385181777390842635469935315966971546294886160429139867242655366977264411050510249716083207666744969353713595267636274644633917447253910332792768412757967338626836436470389015450658231379572726375755341812121596020635715416522873923412078882089748285467257576160738946543244343635223707463871405760148891879260357837434723502515472975355761216117086640532647458183125099089163505662094993170030782441146327737347242068814540095887328502643065328777595599295519710864158951730696175747557063996255533144750309102739889073506175723920828549159052699921057244710071605750248898457687368209363982779341926689000237485347391081649941023268474890095194548665523084100760869149192437114173274618076210831970314744324208037593409381209216610037647924925168677585628997080569168973556922579687054949441632558998098568483970508153742402450875446899443555499370384367058911519474297505344409874907703852129748541585572989017997505085140676752194093880373706003407755318590629823640244224336503450652788272430823062702702790675773638248128790360046239042802237219561825434149236462747420349356379652246433117323649675011281399703074082215911834643788153945070026937795130830334250439714984465726387671371714287963196841547149363194293942716402357429322341634769555854304311053843716582391610368711757329886867983256451756130288070660735541414825379168060665923183396746225350681868868924918265851656493361520909816136059693994281552159309707487251713473697001770545666293081640724129721416144689077756169398504500858903619426358562674054294922953781727127769245695619118216801273716892161907596271971436299663612709176872245732031132126732130570939420004951624504719458745622805952517484916147892407071317469738568438679466439636749085227604311469188962572959876801087157176387966294888276175298593404165245908143931206660617079603028783731211651154723877506924331924705267212778033002399918753777194373157863171916910761616784528467561309346310615500082872414363555277261917711002804889730997427119326362003615082495714482150286319630277020857307831118877732113734681308259977498593993822203730759688395272410320170251981253317878480887429594673289280539267942270390293622163642625455230115794700961385914355346632485742287737205098240803396437388161405257550029766437748943270833314359397354314715152319247140305388581150591003921244401295295469639954081888389818342432509528377796481799144949713769000336059281673112501906257025618565566773410769973541644310750695893633875070395630069800219846249371267405327165586637201921111098124687700346401442873709738039222293867367116696901104072541917744178186415628110411735249004461332749379119017675832389569933393294411866843060320884064405647643552087669006292420632336174162414619503908304026606338856800641968677355480665241720944628335037013206912890856080284672298761414935130778603014369392058830719920510661535970176793790919004567974070348749416037402477662648202882007484092126027093350750478689764214893724320860305176315191941773521514563652986259337119010629733891615741210328402531069499430158779726638655510400284412116369407049671992896591081065845300052223152749043004748694941803404396987742692907301387499436869931258218522274226044813585793608352550093328922945712794690623012656918730945842456656842749781907184100545182120010559500808168892546526630611989879250192238795434753918428178064292224758946820459193749267380345678766331247672154647234760631524487739820410354213762065628026129123620793791602697163297884341838919027742921018678107820473128586792822591323633075912195577221593837299793939515735082550951175454669308623779955555053192420182797766020472999332035356018941067535379725141384958181420643240822638887121894924802616665433139968577927258983344958058822275523065096430414306925977914528962597226648966257311843442372813437230629781325838175738304535327798755881677708481404896620475447412214741433901845171458611325746115955059322596643563772671386296436400578400378693119371495024054235355493311737594615269202537118426196811261342385781764610908129505177016410880087456802273952764523619800919985093960877083309907222247031478123789657369789800940504777069517826932932854748496189270525637664533397054151964380238645704925632155020557272838505099160938833853669120032672776465576232179365439653985525446675495136907362101914041860537186143124657020340429455888614045566256856656347684940362215832527845173475687418129022578458278453172955665802280013417014717419945522330221525880278009577510476687532460723799874296457155821599246774069865603901866215121963257996230544715108723399965598413490622918281278898926324450243939851549735555842606005068218729978925259877800623408601171960920967017334425794209346977337824891759629822900877319320968429258547832949391207031624731621620682314536861485678328175682349008349276874838350677361363371555350165994948547285400511764047268620946647489819620872905804601233589516632896913735954175083657575847284391823859848249330530781561589511703485347600940548867379557583551795785207175493732599469288504826874433329398080682402437849348979552456805139679463855395466920170811839960701269343731491380659753251269962246004604691735237812008965051962999652818473332897259771020610889893799787777444884958285660298751480589794149421178503426261077374355681101754904617181911992658736502526646957175762804449129531068033163898961042145109497159318646453453874761657107029642434191277517047801428046513331467046927016130606137708948830451518022736154599312748773675098981514845579790673603597298634947603447311581893782148621903034956026137812060247887219205414684938164142421441171876732193483825451991812954319251237238309709146334527202631654064067695795122631228842440470742368057139609048287807533944621201439920533139018821195495482259333817431215818122005002944539018665072571230493451046966617887853251119514064625623313756245058235664491118366302994040279872997115364414130167257519849405655692870715576591614128601513154455452359307288487316651148729574700607520204303608144722888244147834134897713960469751097179269473575492920723836961060473688878759731116023422562393546206053558969644605654257846081424314575068654132652466097352533760927911959824662268562598195726042878923055850313905212614147802041335295685532799786841363322513974501899685597777569749676836755922700163817795019872279497950792549971476893949341954774471745578423953167740162502469474574263455140361465372794342062856615103379358342246873023789035800448891689499988454338809753538867656914038363743432484605383433351761636657930508877639457662313448413628420572472390927741690112340106452734013126871860401188498379797704549825247505941574713166713072100245501549937873530927592014017152493045489664522418195119318476376055362963065647955697519921154561567626862896232091968363959537224718700958604022008166039186502378079172265531910550627184927491718159782960477412879553109534335725273724233549792115444928947560609726788056472278761547402953961509942383161941353866960825856019564315224975210016769479486265993197037956472607750999157246759602042199650320647208564498000151115846367014350967607828385199244473761597735563731822024820727982143000518262744448254184060032968311835003652120386884998635176684451311242127396904133466436078622209642614706065542153110154342850982163279689101218123838158679812878854114909347160059811898747836997914546504097602700157609525823908450522612673141380813047654371968229460306080001862666954455224335366035344675254594991952973870403493614794689949847877397929077666569925630612829998440333647902395308264107793521521022241545304329930033934854375003513959254166173541401854542491185229121935682394787224434949388645957897156028802124999570863803837934306773810111650984948064354416105966339897300409713920357106585136315426817917986131059946576992061997334724562167052225848136907604831524288135980157222623376290310991447380259593859714227072028999824045094750472379429988576097186090917898024584086233074142973955849671806559619640720031432401856091446011556500072559444997402463013985344121304563030905909960127975781567880166087513626959222388607548488120562780933830819997718940531433076481449909988542560575398493524052378081727879442880138460203333821196478556736000450012566019369588806750543888209618756005801098700457957909353325697513640771471219386979485717023809777257841557443902070704370028878538509313868802360533409857312429575207454829014667805495690479770077810948812267616874560453644151573973781020145450570755338304533730948160078561566271705440668886112645511664263833203046533064359646580775509948380778406436614647334790370494289013042012621206874304279184658721146687272282019306583612937205498594796331400461119079201559698642578439194839562654009529405380114031143040049723868195316108636606006357277710197970362859594591374344278854262616087909792912724200453429774924611463101140461742893937897577939789727800884636636699042547786681059202423959547057896972485733440875370303760163524842407518666955029224598786356282655825161891859328782763335908087013176890000716802737272322391534949586115970689407729979904546343796824073081468961598457678625803950082051422405630513522362541195709799774372900778607076481287906432464976966548567760660970567428651044046476399353253867278243593082258224422240665062742170449658066433498931879999256577971160067336715973612781877716936923506892792811685884669294016685141818744203757457815794895418507031476687958187091567400374430616934808521482799535021758995672246583187155813117611121556519179199055584758721209220202097710096241604217822465620598727498969019816505124722980966456084950931235331757648450546359046711413879173651706862778145605134802128688012109242928827651447616021646955093600317942058201356207974358976775799848452973531869168435216385514617069191860679451981289897858628792343617813686733713044435168003460452372853515029552502417316371776264664419348131120838367906072443405027836491497060844609384034522217060624576763015915607688219529764337126490615603079239884491636432298837153244407159450062005413289118762863682157674900739645592224128383944479439395976218471335204771696499647175540732620074260422764164075861584421358463163361451083801686520550246961130142793901671590667219185231376569086714000786229121971182154465973396631155604958263118609809401795474505624843682416847686425859933158886650941666163432523497447712823418376233841284133569798019916027300900746559565135097891724812715069955461339578703254409598797323102131449173704247098491947536758833864354773228285718559530087657489854240831618220453131525317635510871903980643584857733205995162980949773605842134976571137924135403868217339090516312664123691571671359028038561723363329618827262234802064312040113990675424085385351455468505583885558644884563488821974073017380329581403872972355030299750042795771540060249707209525647759415056865594819717077728015237362528195699377234451575478380810117689526041076534182018017633923404283368855512362738828093523928671500740702720875743176631789474281463439327650441627030114194757369755773176408069098617725063298286314241980575760755802613609298370713357702531641705835332470507864543301967329684255049019030253119101491975903513750432705490640377692441311227540734961543578590214811662464207103522937630999838403866074627442796670554484697657772190734713319662886958658551730984813524671577623468456043927784605551078639153401395589583789400116283914393289714827022381899768051998344453642777850260789556896816634056870743589985815489740286484282148587698215358739094288951188661355089500376670299366026675550737959547997518197630171407715370819257546236259354357652951487587322636856743424938220195072213499030874206459544959205079271725709785324105887909191432511078089911287097798717434599123550226878444097239318203921945225316459107985672120425771566078182881222632656188718073204342867462723132380749799983387038596606190851771131136548093889581504207649191618836908140998310654517970648450957027804696166499231749183230995524817348947990558124974581799608871580965995794808610199200780389767058190935801457834461554706653939532779700122187035756707454326157066238290724284335215114725271041205745853713372113806305721067186945149493656700933907463563809563620017564496408808044385462044397954790266344867341620359738201857971522358169062406994378172887735370906648934984214671423413619556159842312409128931038912016226002281894624852321455451656111987342883004327051593847289465034493272800640909388800176612892461881018406612351790299192412570943055296642747931804465504634263513805538977491689836339418835791727371461672733050570066418669357450718140329404270217608174497638228530423442753179862197788782097119510804255345877273380928983034363916778406249911195069235632753872518909453077199107475139361508009660286305669025042589216868314656497589767673942872982717826031729725852263983979075147505828231790684683968537393005803953093241436733454454870629048339567751986140808091966936404469579857758517919472685047813608476357365120465861611148946965933894318567763094049874415863291304402611217409703445648681708340521392928467642253571906598749410893467614846156653813434142903587067230047839273431728466707614483929132606212511622001340013765243415134919213448575547856128249227565599880154641360222182704835715172325441691588935329702763725668028905206261322955695863870606686201491033671111824088425398933090849215738540507111818023783007279899869263645043436085743771418718268778903902513458637803786165812386177107444199259598554458028484032225001495155852584200818518058428242101651168166392258393351493399507743582419448715667081957395243678534737144398445508150304912777800225392248109777117504758162204995760881993985971260461931540961350110596640373029602016747863022873795045528919267465233561559031702736332568625023694100773230484772203780736277894851323198622653119047907740041539110950038918797285946138194696657284983805662078364306759347497156646055821155731933117695200143590440762593238771189384360268888028188190839463628678920395979506235768871090820414363041802181387268148381865531205664523650604784606406395860607501082390298907334146287258404228037627031007203341272525856987967273320761787502934598174447041761123169571813071993143380103044237791395016378394175095100503715927867721186467927265816924175942618591354432469809186306493817156689135838663361006345966283284720080451294204093738815370687213385778867291028396791733966361260828668190105977603007117242766215906603928245447888595957384188090079134840980302469369992143725924649187535045696920283908217393553335744911997352959589825361884437843046781347687119668055814445708636787325633886019263597217257277199365900227250329023354576462420643025139169791835567273514547865471638308434397175783399987708024216289985459069949409240160132359624859082439686623090770325298275590209312232934220097276237593443857057226965301892155352269399386959809119337088147238717786937029454576181906633299392803029248782937170899454641566728146297461542617487299903517990454510774610837542833681138652994326665527362660100551965767138330209688099165002652662452764510856161980091003174206432882021143437375534967479392174233613002710002146513508798534714871645634846158841988302231220644696348084359395219306750800019180416492585451028293081667905171942227432666275903780239874406916116035008384536879845140941039702018778392150312674299570669723255849577953885291910694585717731798867028402198170016071678402669653718822246123801637170327982196539095331327815533122039655948554925455775437357191466668716933187486925125392811409700408576922921271798285377276983080740942761571978441323309396395888679321092016318879705224554048002428774631663189403158492207344013983592179158044217893148797088484947311844441770356192051740440955546108321961062573345984156237262048758834804893246465627866746039144644037875712475557052966636608358953716020673711481729194447514220306202927271462006639609350173945720801279594045909198590448103454691757670169664824117183028163366296981602040121621601996005958240499283117927906450670747094700648928966489858495430312780452833396311993312638458448366934414941978475858884814902647445616154792365741771387159347693388036624342102351490225063362491195055491093382138988720013985738013915458815263767398951030902962129243734169238416472942603724636709391076215070364402388346049855399569804555214513624510570994298375241581124504787252882976619793768543946955735286032564730181584977754287131802807658431267670964377157006137315820621471844983102767134301175122051752842013688723235356625545617111961759858397432768002609261049408139078228287376994729655811965717181648114318978934887121136161447413491509435120569544961830854199158534792218695879450679507897907212870261493088136571454501239680916883260300316547065735192919208650819817595285509761128843553509285077509858800642541986394434487123538026057549472358513861877367916979434023269253657530238134830236325016860105733660891495200299172661447998213394009063977749896270683077840653343830752690899315094732571842492175089385857141975837456746963270782240577187994706742767237117135717594975451473174900157424726694170019684446845057037757437903813973538136528558322089262289680511683462945176246216986382829005715423552188648951378704711424702296343187821462459885711832893357878750074566389596886203226996730803181753106790456379961616689972054695973506180222013272016699652530270691086265238193419764952130041254258486148788243788791634479799516227448465927464244319619460713145338669891091251766227091903567958066409457737742811654050193120032406910307507404954345768714335666283083710641073545890880131494579997799094589759836220889807289351526587376909276949881009283140859098749020204778138128597489261251113674395150424806759719983398926524777526986008586104992791089491547694058208220465557264237113866619559829931121381345573534631696614596613759222601961999714706886880259259349076234127213467720244131303424777489733529099622819609304633190209589741132373057681176345234138254610642730148434531223852310426182245912592862199511769465993796820761864383121040168373049706545756522096204881118362074604918539249005654492784723118510108098049247187880825269419893400898109554185938127166054536010423215746341743796502746616028627044368555196197185509417625952869385233000572034221125220723185347874029325788078216818655777163155548419793073069644257762658639525328064668242508592590803847547076246744734502269568673608412345111691829021254885175390160128421934537204276828546054043898240982532357636498245577901348666634869549917070818564333826635038049933368518722927948383182071273765030729636559123774390915440990354155433203237699161001190008091759192277893006861818479657990656948660555852536087033238658459094263881651302116572369066830738721942220045715451365862047324717606919538027904527843613250179444071103613604761467681133121277162252132962161617849095555813149571598462389649280956071139727360372759137880662050253462550261327096042662458995095265842278374241626013206504962341520019828455597211117781954512247871738050260864174206975634745758787454177244282271458382583033133650896962519741897714576189503083947713088689339090308941801736601423159474070893553384922584143969401894486829577828482129343465907928922991722963407275415753671999727601480214897327038481436824826121949154850699156888826054242882914470288141870699756986015221711324444900425547001046615939442244275685253682581511661283698792183496182663424925713332044110874239311395874110248112187210337100221129639209065073275918708446390025459097824796977396598912399074918552861414019066487568803668881141127079736584836075407456750851335578471010962918970038547102276914268356686327160758066567056585895484110265229004067209775293273356524978967539336654124026287739404362638200774013820823515387867104373572557846581814923820213250374494603772381373267360621067527139163393542667671374326493245904234474585673296899673790127988407827094719504990045684188962510319199774633826150105515887960246861593425090286266408950959307392836288536902008163616234478510320394918902286026314116152123377953777856709604387476513665972716655420659701329228553646857542897590142659000830551853001037768950347250949132185571351678257281126902587449586233626387671228185114329801271338596974524169928781400304153363432322398958305859218700593343658551358095163781798070899666848703960340286287692635913494181540678335178249945102721826577977906699457612412285002203590730725666723953555029419898221809547980198612536830640310115889428648022988402499736594763126185035789209667744890753456123525656463206459429742594739127466475590724766220736435590303217313891052439600238104744897989906902779208860935783117246321240995327005073089206224408490144455498064801728189909514589218302237227235705295038405199514253385323033721826777097247364388331176287119957445169173121523322933142176831143686389395576558728109393579917988966315441794828568101074728308018232266018068037149354585233145068255439532144912379480202726692621990425658610075679502274025132091278850910123677225784262663426917274167085639659936622463790328820880580687069246358874902034686558769263097246094031392000868194134598315867663069340774812359804937079133281200336310155735083368204364419453830676792710971386905031455807418693095712666440761957795969451580601232210697787091244323096470014442028207321030947152338885834680472491845618066704418195782456734208361595406183359840275157280720077267810045422106255531926665479830670695160687215656803297909158604483346763177875693703382002632574326298529066030125207491409794186206542866269852930283382108603664226550308010751887260852989145498392281374869544450257737485628515895052176781761543780441222243121878526000748510606921358684698506159699921033600321338632514117840530339039086008377461526350456478036015306343652691897270676441895335615779433941484708614749571232074198717263269495784924602693900907636380818138207829288359479372179860900295032207749327413293149543922146593245472081766408001949695339707798538973490956822277226953343525550446827141064127559223810274536580584949461880705311290287842818760568114344502128503409020409812083022288187390538565931285279378363536154291676195154218394126672294033142928255951816063533124017406403550122776774368073594905211155202483569715235352710454983810289533301648060759485844441560985350139255406946274886776696903417312749410560395707137275402532505498175298619949737892141641394630137767022331928146340636736636827061435433074304037017871324466018850671506296962671489105001784984681245892399200768862627017353038377688378424602644973790091678180104344179219386383339692760438298019326563238997351082850008840074292277796096472078903414269976949662623194074660121754255483380539293532762655774580949923971194648524445855655336285118205870248761739808876190552151294932578478712886596531883892142159950603333143878947863401870867768981873038616068071540243397910232118849788969476757951370410641346100888928996443244681843995170925349253545109457259781405579462122394465959607646035778064368397010680927915300390928296460056449123818634659671912658643654174780215225838143576503422059171548420176388803602180449986571592425537650946861618994042853900411466753723281502240015573842486001783883211019629878245079731593195179687764779689038458684634077102634953074879248436162390970437236056216255674957100541920881395205637551545109464691284433106726679599107247201270750036816773316104212646988819168196552240849815462862179500154101707860284836327309445060925369743932799135568114346196618834739079642680136072861830331225837291058621433376249169037486572984456059300227495086064166722102466541984509646586359205672012820136381159682243333685593827558056621712792867977649807907915527841401821192919479489638834675777574837317165609729681434861917302991117187200215184284898399850521128566909114586186268633154079075729397181865898749439837648659131758269878222354416555126618874234135321496657459283798544783166410098130634107311606248246744060772993828483950236991966011127532177132655946233253480303643256788216147717416695248790195890600636183110441772976619639466863213761084665290769381766074833136058285430399641769297205033761088847072857269331245713673848929289491588980100849845998431969829697706749411594277053520164762532788828161042962916551585920589320744027867540859818977484710050932859274461807137455806459487605301311133987249705423004748519394002340198314291245551582353077603079520958304439086361660522750453641716252352296095220651469348506815463982865962908006509324644826762223599132537817532826741454298498248071423993491772041715966605509653591662003377593993974214932324134260344805264504293692398023246760373988095125408517393611775606817462267131983578801178801578927402310910021045104047867354809101601527297363552039161070083936885834159924008630941303305869491631210839930230618270359130417564599655722934637503326201968515836456674228256763684343668732583639429778943143510987211605098827512289021405345180294464831693577012480964973900356911235096893291016138708537501381249128019402214907019349092766204691274311365336022353811595886424765347580819745082115611151713807673846103944411891565676754911047557963781354308334376155955779095287606305467640072932386166136605372806577593878457296264367121258535215914648362281638871712929134954983654626714999826597747845142059438938259154780055548535181459952167660746401139507594662376428628311316150546089553672086586688991226198591975515475406992676622260458676799211142076787841437695573842864115460605141301065933593232143492425677743844224354122351713642192099021308861441273720241225487604218621605951676785530910037840222460329294192175983524214666909807705762068094533023525796600418584151565272574474578532225703756997403810244715771890523490521386465479261318539105504599615046668066705695966946051858269658759445743434051995986938997471290962899356834810019255634004694226632883608475919733134828127156801106648930082511183129421105771108807735435694985611698626798470362522140947920764387217964599307784084100776853587646160457490473105104056557726567807337300129028087626145575554311717071601407870699360861686444187667438503707797362011733386070464189323333542272461885982468098515153730371551551121406167841129527314536971513174851818114783376635569648481188287279069266458960092318239614325478321369689873773305437191668009264003877916355310460411570368495731781462310621847100944712840061107670503284745161124160475213057208890111520646634860297432623611189948785561723862696789740604711963753105204763203738834997283740285052255669676422388209891061374932872186288789400496683356973569973731379316111005203065216084612658867566040882262519122686809634315334603534324560757309398254852782217295095808294719402022997737914164282888931814624118764059864953799284840757172668466530460325951395405874196433526864131166378714076038997380647062070464666712792957616292242153513474346873472528263342949282202054863457640653305312305147188161307412308471009504747639335257345472148761607451548220899117689521856729403209679962657110435225923426973789227299633232965303843712441826091062146033686421366038989005944848602824192256117280714315941338329136664757015955481932084439052703308916073202543248847422920253597257197179949323539722568690675948496468124275958179394312423912034032636676144634049530893618699401853669467604178371330669235125609441631833335177480733154847811521418637025090666297272152135481938978153246834844927431353203271503677745388920359075532091142253887473256682598481177945673902302495814013001741145198468595010549710279265099197328838838484401718851921050040993815539911774093911281829708694942693933207979673662206538843880349547914909593625685996284136546293561308904943009434633940447174593932754109836273681776544381289459051725283658707709274742250399065270726096848349706695691947671880093767546680804269996724740464786901699582880904523090874828598043356021578845641183922526637588380136828310471227407661325699535725353431100445920198552974972798597110547239685196343791321191632476625452832093649956402371895967726785615086713289676680441158387081167092142872690065928554102320544766426816184730647208079551672988241492251577682774583810158190069728168193455956030526521020755351595250186196452956600606088230028929079231815873416947007838256128302758107243533992878453031761611012406843822326564468439980184122117323880899072923717684374849958613889822538741388674354522692339215488853764573845673608230749353992824378473306830571138144376875363108689779836772137695143965729016330019201967160394449811749795300601257608071847912399155077048038473774589648437762076483071115747946520244983044643675665004915301688407438895898087567397076872056103577159923348238197341638529088775502151475621121444915310027878264645816292757502458868612659545310111084605387755861118468797326033079043665519348463368746059978616960688512205532073198276972441866918751933010731166247442047884332042444997733625614035109174791383468056019033888258362410419411782286608263236236860750658083235128957711276953982127482748267801536766908079498626458924000564110154708278437400449033013996063570072253887651346836618614853454961939582082103855608369358259484114116626230398488689477461770573889968238620314194474542313762729566496261842155394220707944262750488099352961132320684630031155894643658508200976766921819995486493207752511059194918271022139075684048479754205054179758492040478441487640671011327521779142609840689151649750350295531939209500931941658931073957070767037329721074035783110012856765268755235362606159482222413309380134117107368111826918780120051202164058729402356070352240436751845767569256915497690325996993005593463292355399822362443904465783280764551820002649024503584461384437604734215769697777650471940725659420767232926328389876932536946543884435847229046206093645385597949723260941656279859700598728150079567145199394439907094023043111554834946241001589989111362833681281018169677936874661212999087836175280249945862464377000425438136974981016552459326848237921270634250013827125215711895991543694457080358427622595688980855063268957973827758741203190681750923794168284676540789929239456984758498992487715823973283152929942384090336932563741874023691530874382015356410160240987845803944234485567823987973041350406870798201843651839200244336877176597289339711974154499366813006133135120825711459443385429608618377479661568696304817230733481404490747104678465253240505851660681274304222038266676637751055319947978337447008138099406189128661106824165033560922745208607842652388539894919039606422814505991055974184797879773407589051680446430618694174676764145740316438714212649769858898743847451270915093891294399482677449036927402579707346619961044378367769734421135517980672657009741039542797079724129832905918739606604510425770274367543846762364439585203543384486097811530219125860999773449908213580199607918327784504614956234683571737032019468926779954986046637631321520897556011698284589074318423816103922280280119354584311405344884162556099304519870623186428226509176544715464944250072465802837066588193316577705872931937259903673715698245585201014030482782536612497763059245957700672807535399302131324948678291075991430895662551150315620993402223490124458956273750704889516400108402578565332353746862503395376149282095256113648202715904538838024832403235232244919078223724887684082414196889126549754014553097896185728623533250136061715159739454369311403827091691466103586462004148746954336145637119047832586503516275552271316905350448857066866378255691074595111948671594087832403000114476136058834384497597506709816916050060189503907939873568638071467253564773771470942765145564076908396506549169238093830608641176860192805637843273373985107287438861441448743195907463032991905428859143488643851446777194118340851792416319591704697809071607770799079505671975715522321484010424386602751830340528030442340073567029006490513899311248995555831158721378330574562031896200559823056101773897950944607022585253528059530583621743281367322113809005519355881881227385321812165528091105806780118703237836620859389332707038439938607384485899740413207897157902445505233604101869114987847534179052815787997162855260114280076858661723541867148551491233997375085407683585155549082878609120866794497412410833102277260829667992975614183791532973687515888182233952678956251026802601949633817866741744647829126323175695873932457843655926060207303337258394070139042972134223997795911588644599963790663362948958112375503046457904261543435003066511991152685512226737981207652200470450890388654453518133224760409724153457044931940333920793376201543785408337966102539029178409212960152640262042050235071098158749379374257261425861995423369633727554893693464959138565458919914254515503774038631004034670546293729080595765342740631924704801171142698757098475546765804133937864525094062418972665750593929362604647130498251760482423718378391856759429313329993028205906026909261412260250016788825728963368628149893787742817723390600767940823035192159689704914060620259908123420281786321964884252801592671546285812297174957877774221508595694690271262121096826625636132008442742361510291318549128510547052333740820720975521472403607524280531274253437834356473761466305239122520191493598872116998083565088377376276256232724932762762243351324269881501294317753018750298816786072521052874807247740519944263355214261038884946628835256719751482966808178681340690331843361535177395279591940684581567243715145460080939420597541882395978398796288794194069753885153770851176762668498701991170232712304866371238029824954967744670398035736095636148371099194252989336786740873015110196625445196008852570118157010152256516431063241316910525598658599160254807367759878274629355045306710122033316343118847559942897608626983755831484959309869818271513247873737184196372199961904786410505642872132844969458220055409353975733289862565754186225113431649913349825453612939434932039095472657994211174293817382206489952408360937308904161435958491684668714179388971360500019410987492416664736902472226874628802978411719213125940842318962262535409612014479098021547269526333420946947106956444473677008642414806649757388325948550703811071781532255038365437195783845880630310400397487381095573828186694508234822636247591985935425183271922806481132000595063608560240653972636449536488269891260270609349378555862783423577869647532624458534363277537500589622480556458771223096678173368484239410336790179968570925475361650077291145725467588896423801058280789905038444813732932521754796402676839384510824482375726383097057043699097508327463979126287293305782559330700954704937165476579447557384150022891891837048851102594022814836835152848399887096936292464243919796459716437194214603429704503637264128028420392547777088957821580349386636334575698273693948864666651897522651954717137903864058299569096524657574520400358776061457210728393075397732711387916126637394966392287469857499451207364945852459901847356236669091155435425289970327332113195384189797977458955081294357912356031640058570891975777773662688825148871360384463551821772693947950131018245400531070357648241890359295510845332956156339614240420131377626625506799257353520624756190290766022290767619652203321086612582468166888682657510978328256257502640870327508703495204930226022050833560369467703019167559412491224232809301308772290044125690614293609920188291096239799617675203724373515283861570567069362425184403179040614666054052898099441147119219488287028642586242229947857007357588987969164493114179623980551866609234706759371156798926878322919942648121628224632038010578342180290859359940167220170126038218595815514245543557540126273520215412892120529447443663598119956479195914545690586810559868326104727300508420144537689957532994145583971415297994561087041248677971932824248325065142644901044500529483587057590153535257634584303821035887951702203501683332815182068951836978872719214599100182482079150038123525240385514583311747145768664510592749640582734682857746395169365882383415835852064904114159382541877175016850431914385639601350211705905199358551342925219341153372584438439717917832902426786605994008629608579992615561351392619453241907375964577854913702054545472436505204787383295973395085397314236793500996449373657383151588116551240429432759332241985907894557470674351768193105487570899786950963133386199498243165801415050075415034769509239060168518681399536290715096472363982762630476933578362917524978953772135054526955499009614256831171126630329569885788674641495076906298561576412652578389850835510376713344586685190924982429425234922653720303575081208930415707847707342956738471117663981879914985730294420655244160433602829852503347680550655986265556388694390414297399137294428084506998561786319587125303502262484211235862656926108196185976265624840806384458909029755754045568452720851880081808937334583782868390342040301530573596768538631416962453110730230408059002637322663837424696096123702969064512209226705920560199020531406570607108350420451055466421197012882054521053396389312521894136618690513292936988946810116416818110977625216382848909895819156991466361437395509133739641687811904927405082643908360295138936358942066251009102250837748378293772367850068173253751484448294765415521818055534493545687369092805484519319433185358128459681244224042269791688994963176486589001925852891654320435370098671430928981302726164408711566940840648745283382025750209251239742954721537961918471097932438635548312031354852642487780872330624897853503670009995989583359750689722412841379681925716879440531884951910856924897745036411357921446845432846919724219644928817663702785398708721147320992904900504216935937064630150760731642009289838129138609823250156402877885126525987474765245439838707908400874121713659733839448415741553192272104198465804155844764218813607855323847325385030777836536791003389137747343887780338943594046573487027107920292643037782454028524899623580989200295896285849731455366410643827908214592794940053545657292991615894525850223357216892523687915668535526815802705921008706383060071264619384379228220035978355865460598438506971922401752084628317428015090092409458519368073997640512308896637137595205856809359011228743002886086102725824935243640409673257595395800681913592267270722152125873105011046131675368516596114749884386944733438878873908773998595491115361636143289598522114355016059128127083002556647535357191262591103102732181365132117531278508171541398419780179754980693803582311922564313437330440183536677673919711413633112444059630306140554609510894222523345131614140400249213539520285134804078318611855233288084675845838065263418644237534685402251505792212649361635270151301712131196093576891958520179215761757785059203582718380318860455497976817029829363158674737376066814017876612485440924275049782635384141970949458422308936790966364719816140992995781574089539598209960712793721220912026784747225478556765744819672067441681136307533365782788119764485030202534165541823801917837207874435091548805047948664763644127179944777387624416802995108018793619416630509970597291218976412766176084901503937403061566026643864454482893220506930794065112732161493587175955879880811185512712007953926250166299087835785590914460207849500536331443858424526042779938409672948721701676716128151714993047127884317614694679144134067396570891098031662717237323736962782707217481210059320403451496982980221321333393627621457907659684342859325924081998320733022955698106513587183216794196064884102816074446947631626718260579236618733293398698549277628600654002181497361057309077341324172406795132702773335425509053844619199117939676927322338020665909621654118672853989365830610783827083721600832514232699527763152816677612062549911034197582851555534501093656992327109379832552202343265392270356169146257574413566383640827667508824563631331918668535030935317465742510969106729349884240333075232787535491592141600673281394158025317560951879494530514724932052558906933145579369751774773125807095493131849657791389568283770929434723400280470519939213900713180694324135396696783789729150974768357380515787066556786558873734898815347559890004823533738219976484261374739190439851543182095231475580224612793832174527880764585230504329621154334815300546303493251819929873928434599733796864807833780641897779289009513868885100094965163244555951252943096861534172706530944011161517694988290920253700652693972864131615394586942615270591606913520626147109434078908086030831980555851762569394243978754825814609001064185256880845387284718282987179711881040071508995814027440104263361769632004451706011608338086593759156576399983973141158756024615172887009713061393798137574975297774006187527307706795739351565623122834148080334764712438416301024516527053215189907846429777098949490924806996801818489095397152822172594398981557198954365555205540710840833566965925909516398515475296740936017880473245028471450705778485202580618947299222998213500801068134803730287791444495002836020282369958956282212691014968172499898020331808214910636289515113120527707373106356903203705349888996896541637647007751900925101269461901195744269367097283565308938037080559768801821984661078532974986650317162149877388865768702416120437319272755548955083251016827821683244351983672861197566365934927284112504663072622721394636880672806109028852353681523977485678321520443747030224475850299388974838139822400345415070215258688086092066097406690466097205104387989939230226530164861703790767874436682747554812884579729652961207580607062836670179962750695408316704128621877722533704951840548582571230078613730872015591660129901225275969972917224859002193691551384224185479670803657943323982069837862407989094158703924004662949953443442397417010353304105812933322415462180732506854990355221257591627074034118882235497294495886277117738534294513369497155176245247763589579281464126306955392424442445953412649430120334364324942762780594582417406451453699040115183295883585544379997309919608508999472874064000262434556212869683037611997016199399912323085520208677373943778083772685621592887101509476964183548184563798709523009563423114848752514875247414234545776266200799944957029080016948265549090064189036383388588733315437774992200137786109208864483338793377938832179017860248246786661461409166480978938490968227085091928188332360644864540158470992329868917881388990110101126497733859137685169080534692740934801590474408466545019269677478807296249693000114103559497695631955956864678046703678917499404525618119749079769068853465625549386838193161192609521228125862359920204638338542512531311279350419000193917504716613716934078021473897622670285012994208454199135795860557682080153020785399135759351945619523536727792554044607735356285677182957593608000116999259293428599499568057644989133045943233837663156468079894624351284563686252937923335594049730144432250017189692024090207519437561738185946394787352655737315582476062322055843724065526996083107609016911328500203854485234003829522313369923155448542497537116945687519271157795178447964241755949232717062025026349766173781350984786629658208845895455653211972220432232329343816711086721731855073279382785512648276119289132951619431192540863435932387485621577316534563494283120392550362896498344992343714478673088948454484433729483482943451082669380741055509521007547958300698463133012266792673884543276713351015426973899162628451278834301564574057773346246222887073356407674372338814185808647195580158202706365376307117737516940399273957756072928511838483685432496672745325002525523232912822893726993497725880962888323666124708989393681831717584474838354124217442292979427722898557988376493623309089473342545749713681474569879225419254662115669525895423692670081885899183465927975528101371145719337925423049942019999637311346243765939243695336882590280600222142985590659976853741848037095454803001233631507413815278485059555622327275506175089891396719999369011522311997151721738977457187656011531603014697338054268259896017487669962731204969170305350651752964207339201609399605754626688891795618149766959058216624021392934406386944268732277714795596705617211104969036760142595756091708425523393132869286277713491974164230120083310138276515907109204331366899754003900006528447268884283502785805714006213446227059472157341899149406686696026508210519801995873337964454383944972741214189250621704130012401297810784164435793416290399027467805381376901115468017219657960088412494454934898294850402806526206912913838750031215990140011402574777912017241048242283836450284748726228668096170305711703104896542846289675938298266359348542554854249176666964147709440014891126328971225884977997084032602803773682163766162731413684115632572415660738622204880098250295670897462138211791086074254459478494467121877497844945891525139422397830182830898800237047479713764129261343704387776117195081334128808842835179642987496346611276482609837596673608336413614369135047721883628915735409844059041294995466538442453614470156483568312357186396417198400654091103448880420026659413485364972025798664643265160229471991257969928329747881614026696979134528726973268339620775707286069376383078447251405692254609393786456393466430341720761351390289411428360888611599102523618376935933226148236504590595960776606900598228295693650450368352892452780169720814845053741355851088297543789089064246608056397533206733747188467555920667421397552675435547391760521196284893342258423433044859508038624056474634001767798638585461515346881406743330040760423351406845322085321369959130784297402100916261127666161905177035895146431885476397714289355846366361983318850426752374654509776421982004391873492181184878707621319386744146543843926237942269011728099136357976771460681791961955946109204466237576843152703119761707062977183698659768309880597825429533425028920654481756988257545418881783996010831816295136037805930781552296488936633812664469092111853132262634700283887720975426813613163795831794429693696940847799820712657674477599777731027404079905792991171381343852164296819260015884193703318202434106243297595015414966693785289599256997221565432227001337293508628712117934845063478726378093957581699486233276607733868888593015173816450688101821203927584907874144711560757463405387024381237259907360584016346764935760695731520322112343998489020482185021156618435594885047114770601124012005334582112002944421141307755781080605631844037685867262158624474710553046241144375803810421032010437059536224347901791213637362415323720406030353794868148938654498193096780039246151423901855066798306056085932888212157885531381194259563748945677010211769394254008709685583572974688725363212058454976965869932953974188028702477699125771870216009985320647894948661195930937374385234020224798951374200457234851177813726686409606024187555574055793997331015918714069476176639819928482064308783580115970801828297941598978953137719053209138029228676743462155109116039310748298593443791451585828670092753947991246724420733567025012069008592067895383887962119555911390302764576065498896551059146201063782179616200789094555272243405481535755268758097093089346438148286245086647849361173991479352550521098207451927191078217341739255661444111244914786934473302512278453770593003426478617262226258296675778301543397403631892280384748103789578903613611954297625587712676606065998004115579044888696059905990894060197625448091052111269344456732929102303695118861097496264285759722022946646470930531801907429922436414620575629352120797580083066462297669160551888198241951012832169377304224807864411474835940738888914129826857322752741127600124354465522073608620744253037037501230085228384341605391098535186627907910904800499656430813788919699629613561977159528523404054301203695202616990800225399981182579188617944079277504898827394169214159779619936760176223634506655193382618672043184610857749687368459329344649109329876116802871672789860218555655384552542461852501477375273289178152360930141990066500793577826207862825748688880087776309082922994557572051419849461674908963863679825304990957051198777522463661943030539025338176248093728140784572920176294631780395779147050754567676279638689691094334559991562917277990278233882882951284698598242934461948182657668601345524488380566790126958136395105919128652685859710386698547523472714495265707440403507272901712808157462564386000441014112542565701568012579653173953202887826365164532605783454208177024315789140769866212837799102140818364073123615930407560543416511522051371371344319863686952936160930761463764181688231435577191932962254207629776390015377844754569964222941993586427923625010496046300776370087291100276881617948460341752247913851197460563080408460877146706667959765948175152023925664448538690849566058641731480228445518409115708317806887253279358259610994182765927107985639441961652985185169921306761683204543672949879145353835302538546679438758596412257349628405203000691075572199534447551807099994965840447121577239206958279536550958171366341749379963524746956708070111600964252209814871915200333153178149442457158314737471819578441753992055856982829096337139714009169783951007551976215456517780245070553721634913503657195670965801665107404077371211636646215999330561156149727351081987129564532494348255504478723658498996738613298254856631415155669690033908951169233177516731810781400963306541594428583772038980342343178022462748209833593638130080521899827886843063265373670160946561666209877491934285732311847004843432665869253830193507719347808002077833107164524414342590221051381667936900521727203959381760615157010890930063909958847869609355228973813123233875284138912696061140005201911747196725968084292716883227172158729966565762874448255465033988642027883303564040100220022716003926111164987504698654724756502962716640952343946481360915731682624894789049114309975369093071626795496207400660114669642588427773246664048823351948969082519537388928902450881514852212949504837337716840652918437265003775141302537369378661128296543633504300806412855058186064306137372676065551300550885566438871664955308572482167566410630042571230687022698517436292538267761467327865087680701754550886219865121657663139740335168787733448762870601387154363510945649077937768006696510558438932113900294632309270814284885108374502427391354670217810922258113839704811529515168826836981338085598985113483070167567767851556859391363656346522907038043956757845840906339835968685110559949992815366765529575520003172291308873993496483370275978680334867993478347083444674618094477957776444217930656880292587828432665102636615708963978870208965428750641192857415501940561255199519856385173170678889723001530634855874389381699477449990359329883475648898850189540969719451445770498506406159921689848341912064161974793253462339108022344877878719991604307255728093116109142694817112837156102410781502745418011452372411870792747152074894022303993629432525705724563153822377888144604052384333197679039298613740843126798089264988101035606619431866205988524197599884778739804708024857989508528086149214112403696198495362324503532863471860063185903663118556302410184646427445671500824738587627858792132778643077799424494792641061736593711557637534312024630265619007150738715098824395894885208297744464363274259842793808440659104122711670722830787672792695895454950832064374019273369333061516525439296924175354814568503800053443067111467606102683458027363947989093546436961904288312569727678146410477074787385831089401731863782392293089536203131443376762088916141132490407586467469271475807267258430751326506902161334120353771872590719350215011504567633205430645103823135212103293336458029516015384840975135439733446707981949232202602629212405914754112158719684299378541250962291392182126778773106345316323962683533797187222507229397571755254940999865098412041493151759718601996209866159862202458193280695951054988217296398673046728624997937953851721149596573468558009220689277787659965571435323728272453221105266588204188045943003373130568118362484164411012532864821405227693460717058953111888168578820466734721421490357877932432652934669745937910429402981588523820482179898974750739194329540529614743476450356681918432731263631834012695423263017453426375618273737082097562319388844806324242504587329952690008724219422398318368689955316568240133677910823655973681214780492679306717568018792315989743401192962288985152506023191918500915381463297485704815978588425257377078832914735358072572492273368834346485883900746341554873012085292654159585042478210295704288766850469401032614516479451113522364602682483605154896042694163660364851305706413964863751769363906811967730601987991026217105243314787691841798558011075984252913276186202803935365681496562634793316644625155508606862053436200365800266454351767434809924315565017362272187861295265989010849704463930933115667502930796346212268826573486954692870788016578974989604847056971156657774680862668576114792584125426742606655128910873566752456998997092711643726117449457418466501899648013037009129343233581890030102930985673447593568498551293686326176354959705096080534202583716694390352004634466399802745297576928801617618641327357705562845364739059943600703915758457234365622752566721996374042764924071954413789440972107072515119908455750800970178523070965644910250359745896239417313758737090105806246831406201645819299462205346169671440589341073480126715657193831092817499754246695991107354184385735539425277433803901330974594902101976437089574697055255052641465342913516495624700781445806850203639865896037129919561378145865329696448696933596120259386712554166185082362023865372247807332784001783480046245201265899077998883765907801609460886161745141510408642656901237367665651069322272501043276690306287295947890727486743355644272764360281723908425549703187667770169128947293746282631215661264209631535541119374235019118714598215077250060904917253829948016568402004501459824120919141097119729111433880295968552000083910112203570766156599575739891029341826994543679604320343222802077909418380640164692496288570968853908358536570884977487208833653255699043684757342401223427073154980829049127882326859822197179387058939363588236163937399463377469560960320072518115967857039691360251152824616458742981369764830001024639298360932142539762148421029482473086786271686124474698283819017097380826261223806151406017323459462484940887182553355526783939152277996243460134082825614095514506101514002411581288497401236413355676330203258826395095379938539097919563602472774176516500207917539630783730856831221027739043236810457325911248131779350452772468641087064309410989884916536128480549103883912254093038662028984665879922704021474346624561597825981667665409420263628878172451899872177675530253350740725903823193950907429334093429859856506671748295204367364309526690643687439800544588237395643338528711485369568249543073289727075668675799420734232259671755263719183173464540667883308368423843243942720416228168326074224202608777842940209003996372162792133766468490566692626348820082523336431908516558540479939459583411086077095239079853551470629743507602285332621739929479583768681642385603440284264907662007297213701826125851690929616146607378177687194306156969650755535953485476275963958672574161262269021984869663874770058365347423546785746768436537164035936791486941181864422234451926586077282565067757584759225808681880593360145857350318763621196539831525390188803637834636555048927915354234408367775773296147490274067115789879784716069061036784269878565459060023214461451821371334160512964667956690581099014407770752277943079005587365028372562762329571597738118869099999241040500686911767359920728990706750029515393895663291391879463014844241208986813827974858778776808118494266124688517675848674294092180024508174999362094442284155178247911927889786447067184039616804392139536437352465220184704998911226021259390504673809728447570705982965336658692375169811567665468347725401475531391799672155903619433451458644157841635310093620104462915006264739791335918194970438594607602243161248721374127645486678886333592633229646735825300284776176309510432390081191793310716179256232603344193163785722616330403751208349861635527418809426317547247662146227804979376095874434776262557247886737575567202109214633507351442358111824435930655190078704016250104473666013102490970594146441045913914662558999226225188841485432697881146326775491570525830398083755226967749572777479187568545642461987263429779385102047733479736842093837087283579063204651762432680655620616274852679534291544029229790507280808944014413109163155272938422116067041014087829537813918553426194203757296818325905333594435396238631669540188307698154238039296818635425281776247960155214125611313711902642839067238342466929386429961087263663872130821855915338302335903102650950481921249421199262910320418294464274145438231404735590243808909540307528722598980305970424372722881381405735634621694897496995780184688402568686423007554297033852750426868894966255821366199412955064123067912530700506294292669351556093551814963394564747290412793911995592603672346601178413424854946227056249805592423730566985667529982832697727265112797930450085747590223432812846878142661538494393837736096265254991263260618433853043282527480920011809087860311908629764262260699686840100531224271238226639357892957499130050722946069246190048555260280303794522581956265628060547082055565928342468707012380201513381107958431643321260835908338965158775498485575096657142538467619772740553670767500558770901514988480848040219517201143403628352310923015157952363547029017172830428330616298247752974213048296995266388863967968839842489898305120959884832206038499672862164788517140072150317839990054354111104204577921238281121645419885358617005518531589430349443330162614628896467317952133734449448207824822237195071232384223599620345849297899340774854408258495814298864739659381267499821071297492963337081141988404959626203075682626609268628417427416890082243440490897479554433315131419883648608459817023561157971005366936928772775959448876955882525227784926986237271692501330122263849507843191404319101479159920555339772063818982497520775365270817949485891653219206808678782627879730105252579004931743843877801290296117480309278789618442871979868233143475335676810049810930409222033535552567575733653462622322516850468334069768862832599077743419863130868615710680489619248159486382336884891317770837733780950871068073843541231881663767138845973275779574136409360450629830829600564610115808251185796658842513571630844793694132145902956079682385817622051697499340156184998895008918015860844890144814293994603464244017502367497467022483772324941541877915649988188730970699911613629916389405229630079022556424855943410695604652076215807428237930823949672222060208693912299664040048656890408673195233126627809533421396424262550794913728523933933269087626121922483486900347697146699656155897327195543577953863067801389677337929883251142699260484018416024942445081694605867424437236938451421971440472009080055134431701726139232621813880544864771990180432667558831541185770020880373991646758705492960167314298767322107562944301270149445723623082779760369545054078000964218357688956660282278926581742981230325137201885494749890379808200557101881043701581993320825468959653950324754091874809256211199492143301186108192585552850587942615774319779538439899025682229704492795632260285121003387666455472567042196071205282437143984384560864181577461527669449327632071251629385603219040950106673733035010065544841539804455678701010014008116255204950561109774195434058140979047785149495296751103239287465897521768754361153430363441859916206350817261559932444234319846244424702421927681983908284580613998286012528435049749579288437445805225048096894814128757737606404766400821443609452735278933097508399659782454459104907137073854216253994634790388430543604899033262467904380486255510751119246868857211655763351274369139737337122760934421958765032267545507335165475710611075073671379981831478493890730972488987454390572068314777571190484779180247880642013116738798835813551316377289733340583067468811561499793348780729673029114083826256107413070946197773800634106718212253517117781416460417582792737940777709434976818856600904001545868890302834571730143242142862524600326046019479840461669801802865011088088835471718785762497629465006975335889201783329272898053913701141400938658401323806062918177658507997957756141771754477298752208211104756128836787664624531221028649306118843803454690208310636780863697454192812339094705030697891284979684173685134152714327992922058269659483088274696030315072230566231514675938209330007011805908100379885915756298261496616204489272482509512183471216410594529131976791127965510900141732448636263990956271433927374083445165351722194309594721527849169460885032414332274066207238149435031112734469402603415348282015859275118186361443119337031212456917138288322725178926836950730633606726883607762934095824938197657167353345183281799296979978339191750567772547464153625303013993480761404360920358285880925521570526188895325521674244742234528827455909629644509315198557798282986686829568548837374704058553961141226925737905994991562309257398963417538565385893047057340563301856428205479095800735090984047204028283384106103405481838011545656726738979646114433095831619413364185838213585734358863858658358870922832104208124070197604040344528283518810740952123430938569125709596730735119434082867342759086912945778924484033020373412252054289813743740790022810341833609575346904041080407679898323653383122226913232307365931120372033479322164652916793369489039960176653132999945784750666735146690631975429138253614145106460925814330282620480616090694809872932132363517456059915235420725726436992174021923865839215847576454859512991646225529875522811287220663172445873686997519485898087896766314739961989449895375637507052275563367070415468776031000123529924851858348300097223371897671609823702684351978350922137871355648777924979368500776573048196510132756180839575925383343188603050655525320961214642570880520197726095381631638180521708231568542948751982224772849760294217446014777689225814002231967929191969157379188791904357047651247289265906233011167214027358230404784212795389644427998645242368730238339421087129910743359818374389148203245047734830719166731295591205948857603961981542673886314345491906622409883726007528749407646919316732985044953188079999630546466642387324313875370572554565585442123310637925066838425732685648633107589361888841782952169927107518457175618177844371332096547084395960797373798796084065177926959096608841791850857611381702787338791400450856883998746559247997044547966961293969267436849709312436267360373203366615494393819062744066081783409335909163319341792882402796693220816744816178897407223557570966743792256526289038946893551706324339429256851960913244676762734661927970804897811345407681248617263678669409370430582233143528733512832035767702283316580785828519422346613316757145833579305484134776780125472374171048458890576839960934571351369644319911597821982645498720296529608530026456557375434164603767554989511043875257971150463699753615272867431424421778067986002281414705757483773339835765051486156155483188449290326739642460273093631455227422289518452658117770116835924751653249331968185792839717459758832083455731333133152284649506161020041188784591430934500565241717427218267200828188381121497699888281514363542867482714344914857198311693534075085606655807295018420784990446388198679375848917929949130694128549908382046912220048257107931249301325043550013550828305334918570303783006009200872541552956225625863362543742231425826003174652921093017672025973972679877699510985835093099573419071235776053385890495776818639776116351674940435871452895410116320284026414477772484404811158834797665964011509129213939323119127180430034270419995185951815746146407329400492742645821021684432284953781179049227106530688996930309563968760356077816724260090845967731241632971661808920815847001773972254629728596689478248725397431149131339405030675471890642775851858789115763088841857213051439117937888002282448983883684948612034167615571674520491740667966803307799626736390054567467228734666411763994126273054872995462826371794468641966888201018619941847363396155129743527082908450679017853541738679525186280575380252666863819868218400882491635537729039235178724010719046743755322828116736978963953793008175261397044723809180199905141252228212770738032433031903810656986700709824944980472507117260072012195969519678265280412471957286947062513254033621219937162926380727232963820028475932355189730541875133834443331206614664623872196235245640304637894536782703395753036587355638624379965391597734336863025204813909902901004371971585283784700509091516912635021279086375277326359382379811232331939007204419911575975787541194856481634383402043044123931927602132031594529633375907432446190372521449812708330823364739505136372194302559687797537518387266688440331372313746472759513134013056088029703848951310667588804186746822140855902488577431647432224963427105137539978626564997120077269260778485379563334115556395398215908409345396554420363691657051953062776355592725074495703048827324668788865088665976779213633232406574001016198862129832477560485199879065458887902785055912171208523062973043541431375723536239958174135602393149158970554878746666330812292137376010245790487692625677216312835635305064706988076178838749403446246166049629154359896790645454626299621228130147075598134154359392399917208988698087373657912981961408883507141703181151581536846316624930475188719954591797446637168726429476036314973412966720170765734281598201619953918295140868463514627106108880414192065182456250398784055531645970929188617459321154562452203534457189924333466649563510168854060681752539018185744547922672372527816396361563139185205302000975238244321046149443051780776053817623399931188371268875639906647429225959294285484699940552961916263669103062026546339203301049343888370509288466594776959366159845903612971851860168966292927542546289708487961694451829676528090119660354907309522630074736123954123804953380377250249490967741706149559460001566264484060243159187539550037532420262160582119198074628809056327506378917522918913001609973759478487032285981292358015551782875961382709729299166693040685724451520526884276954081617917072197046504564077821288314925583159087075712597997585734908573180514930631953426047102313499476262137325547623039364611602288549454153528303501205591044203591744160941929158453308700529828657733485110367435062805576367472006229236386165398860822624058050046823529614346791225438319294766893365197870382605233089695557511315431568131608253057503785033820715438688480978989839935826623984173647101795631944429098639819555539463337277339681370958673940755193669032347736191589491347859843886034884051710587416732763499733011781259611451069219284317067603390766779111556037429006467187883430204492571079678822317660252568374872126534810728633619145495020704534170729265883265390919514398639922088402067546564483472104686033621480351647977099474012262984457673263346430118946676783751768816537835626384899686437616955534877776708549108343290812545429843296827095543402826077044572897374441289121871251415171109765196285272843291896066712043775459592131495657283413098839576739830021900687262425076829594705923235116622379485971469819546522814956843096587954217912745684517707061599933666812263550182586955654049664198688789570075365675612221670893413969488839825112034357148745436704452646808333060977979873332161108830565424797169966488195769949756768006365065064786636090181631621126424647721524289958860771130120750648571986983837373424458199711352650105853329689404413330877801616699634527701919880151841072220705101797656489829645526388059020597562074360671797016173363108433573081425383226052221322017119337060962228215863854436571015755504139869310296970969506993921071813743827897029131288385001476694685121292190042141460815630675460954057661115862276983827269838517097216403812650595483585527646154061978532722470410994663171426092143045750895722092889011702671868181204655300784785958679602886948468378994962391857010228229611409878911201442668643867029822426853377560329270543055067591628399096610053565137839654888673722485014981153721557350762146091705403766220072503195492291103118472816104899529362148512298334907393732133758276616629427742194122636886619445207339009648913841830867464694690254423213582487121868186851140634008967750050477245570988293984531625288288272001193346884561157048335440894075960144853657661742352188116341229377236182172428267319840388503117400374669135850314472183449313447407808384579259334747535354902942467599505815410055717457943947810290834867241287974427932853118871023241404804411459285073701521499228489107692510824370506155748095389820606603544106649901368561807585554890700701451358265403782650458308624916602524368736301695820232752365642098492107105002781782720352295619324025269503853363652222148065204466642093301136780736618046453187999382476417242834647339412849960994889070954856312320745567462578482177069325087774114292892428691418934359644388012513586505030271466487369901782581476804582193509850025739423302736291370958913801373261914396624075357988261085250081550370275721629682914461900206265474388339831563131648633436595587161449876405692859158054020687290977025787638957590277478360596992457325945354533702586081311214393567947939206345628308156088120582885292869179634006423815827353851204718343255180534820788359593350729967562291734867648585221872802501811939064582331677817783031750148736864022086929805674883112239619129906659128162111937398710734388025894810856254573458300422380042026528916714830821153263068700526053424825531708287648831089732540803534731805268331904032467908942834145994895761648474908635328067867901649347953121311941940660544234195158047878508620152053275569036952213083863631745008965077321935249163668751407888481202676572136003721267655756187005480709020957226452476254401771758215234293811068540666389924765588680331249922577479398599373733142826930790452327904061391700625228155216195687858658357447665539029019336185085986881761247961398653477885936901979723268606857471993463337402350196415057181664241907107783375608003880862592175281327001767859717250077805753508541275561557769103483613727638098701629479844975563241994252403735797040274587221704168085652726267355860136079910818210908883538237522604320331562023530151242066127277374247564176416872759110331898435830469291302996184656165129844240711883824965453030438390062295240439459559860912824607517879447527619970555872427812727925892270723851459252743722966111084204026513367929706040964597038357857032996677086096172406665905183468408973442039712945294004532336214500501334974222997554970321846638391552056475374903890337664907536443909140038779322010954507698689253320165576271718809063754399529078593618988751911068409666310655288530785653859363101073901381502215227745852167907584631700188568576710844934606444202811553849104407622725883473673917672247255022108722180713616418064488171827998551326563561755970566688565471690791792001445282491829510870904871844965121987709570812764558645063520173777580101670027896206401892491930805591548446421635499949795786818239742970100353992740865871495479392167315984918636320995483058357588834099455574483253304040644094967687931164093782472128476520529272798699200471874833045998497451947923101738606254111643697136631410071119677961557656500124776551674082158676252841717869228315046390056709390955628574469877076280488046524332570221256865932493602717182752339616990031244081955554840789522451334466313183883324933737596113250608883421472466632169686830163718672202166973551846935600164821404052558970786222950152046788101846640206470448964349799980826303288671672069218077244392280625644215078465066062669834115449192349617832950772370296117960075826319839372055591519558073915623296563086985678723341064198700420523459788570551733898440978314637372730708523879807248930259519249082857777414714944977033050720713372767930708821828282279874823888673576851275797542358999700919553319335196432177641675047139693063477667281705195140855634099683181950522969805023382725338660813408941684576654051646443250443067922610694358001641292988805000426977582947266330203591025992387201519413608187141151881330850929250092683558571537664050659395890634408209686189452102183728613184481943828949194570766286089987729033272336126692511352287674677311087208025666555476699925297341379467375689316878315765820934472712115244290840285121868563471311219507578862348042028195491822920672805890073354672875431938800017812328173484352589412840135012121466112371576854001057939763894157201319274634498368245866015831864689860238389659708172354271596626671920997163231064058414689043707996018366390331819065131955304260170639365705505313802752295980187965131581131736441125696050906229367385365453321555699032942171492192057165017695447102727916412589793878570086083055291983272212307717827741863003223969507460508936990359113576443528936358266349706377491819046675314504425791609856954328946527734663365552831601332235912429561431560205276553235348721222377818981551230033240280368812757316360798246913154536445213120195012604482849931213945014962851344219099868685616744767500865145449551114684767225803791611187280728826522610268782791969233007473063350264834890124474112355483975983073970473038506105493426709816678512093511634771768538566628106611612739759627587032669018124706099445962312663930088225641004368060900293873633648854650024620707091930337957164134171913666323952735717764721821437530130736142202567690671676098470160015528560576801884764894067706206468680062975672536430495919638896618655424427596890575558539502290634807977724791885000630058962325104480056314618779157923000986766839712147157018287134254635666932331067162788213372982504633937728666487358801676218777124748007238489058649267464000955702973708891723184619034360907864261434354709307534679243440733439102097771937293372528019455291466151821086618115711359672840921514512356932147115430104879720366663070896854707300736041141194412458259975163707132709376682034498132067133900840424804008473618782159850810717360480688961696683948140615098689958525858985582111597817264695505886665308525607644336402737521397222721025685557157484444863214712773641860346479064409625876175859112815761690652262683183822059220601680174495825446735973916868809076228410281477033314044798975213873881805634998884735210520318770348315605910619166988445495282220128867893361776947988831389958656678030080347030270296924630873649472484836878465387909726009885616248716523906644601414616610936639161338557906518713328034798107752450819836150750869312743121926827708332355465972006656916403007297812878895332339524783090018644843945702771226156950079301554825175806103146128675888513293709062676793311849795754080282270195663633183392752387224089999088763734517329221727307507170823135727095600341366029623389744495421037624985618361091356108817754297656095787984769914265836674288398297418630564016461675378259254472749926187092336041712821389580550290067183608973598322674845776636619620051068456669309949545481487066625687619703136742620616723230598644552765184421175362167625451466139303694704577254944951073436921353237939508994512134528578769345980817060155078870289857033377121026933792983304307050710270275591592751965022826478786397583210877870249556350811926167259805599534862344406688230987720718506385101051193771696615755906912336245655408169350149240366506211686326935750716374855832456145131820691770126836526071982511034660719152042818721996920653501191693412326880774194246005172299612515311276590298301536858832374214863711672928919093745146273459476545220626523678923872448559580604123499824126527492572679093478498577971224053599669850760102402157286334737640177438631097653325235960661868869056895885498311961074226497791585173184763979422752244174095774399018264504641489025761680383883900998945316080912827286364988290829367585215156210318618498022045852272438138524762062227518478312559888829015101853206087564208320201171571058343837591702442560650186643886496799527743294281493722604705253554232470472163625880103690571975672132036728401068247090385670317178953799436077764691875793094191139762264275129015854709212642301603972608085460719501784958601295751535554815400420674851174783765822946717073518396560491947850580629067172457596399559759383727843929352911441242231484202511172528058269667366594496890272792785385274691908238453632019648529279572127919553003387926595690211510180589247397208872486005995503611918012252335895001122110197493739730549137306761930732465763830495046999860192654912858575945069053884336389290405345809370294510837052256541259647763589402374887122559477651518470932106866194037114689652341799435730991002632942548242268132451545280218875855464182200565915250805100049276073032570112639064779229481585439738847322577676988679597864151014258151996637203349976525511082738378299741155683577889589416670791270761527227870534380763038694128217089668325270098740395550286357379031663374872400136223293890294819823218934002197556641750201832027344416620792503433497091343378191477492795575556365491454543284720905133562738232401403603540616443647756209408772807373664833819299487654834445839652299630143000427473935872156173480276661449276968293026663090263194471000495316871318946761041475838891341398520908055557516801049444580202521977355122486588338230937253109986982468553754350009457176968319332189729113737261171759409406618743158651467986468562342000021177931355421620192368077057602556223018924212175344999620087215122439005219132644123632334387556148349186169677336175234244315317323200168533864487238273146178422400552665463176632136023979311433090534292874682408637128943608156378138337711272637656680734826644277395674243693017478640193342942067798220859969788888819587149197943212526426299469746954718043010379476406176421929596414541028104540234504610782196175010772643212120876920847827806425500493629654599739772591036067468819263110000299147180551794816215132696872089448260496390660865225362795949673260950572342641159301609122486807946829458498587624872826699655649984686432947621217823796056469289393808792198986362334957297898355115540741176348870024599681570900308070928735314669179093992531229459217754205595789343059584995184701599620291316533735609932170838487075633938282520424321531866209924909877863559219230185922719541415179644549568348623447084659787761453914003215672027501853951521940540373313854162696310315337866257441711955293030739521590435084714661969183098167066684856381420963921337498408489722967132195446054880146995283383323553333208228192428893036111170883764906095479074635767500105111602753947338677394990680076334848914951893176379493119345467433894596060605627501377735511640372494299887926383687678384863901514155615846871586408309370310914170122251525388522789556824815948140735269448079650670613893723846120440773652269403062806209847368721328345801341631691417074573062236916952026427706297441815144486930661064055939902240710779115829395501633699969911709366153358891916719777434426907702789747448341903021601994941290973148553012872624298886945898334167869338191975298944451818517469521316520146522900490389959390453305071446986396598846422690262646960228546833866850298589530335231909314456210500823135385270556629769743626855649792603166295768173055604728632533452336351802487118456270253381615277115605733090401345707725352644999463844232080594751229015362576847924449381041196136983961844873441713467377876516721203214986895194174787204934698123085976681701325694399567970944296453256421152132857120201630835503234503104135083323164669455412521170777270689807249299310691483981623163336167209315599904038186590491340151280324583737518637910085827392478452003796980632491264390024546402095028279687448081534834688005503702663879004379840318248575484985645374107272775863787562327889858224744787533285714306925934317147627549245313449401524295586248698981689933974270982174793320091199031361285348402514344687131358531205964796129715663670452753259711340859933270207769594699929047601042704354262184057501544502492963503934174399422449564887800764356852930975169476178777197862279650605128806209877303580362328962476712554797863507436145758489691444190359142988206196412178106666748130356332774770506853300333741780229379778732070968038057707120655468606989675150094234984302620809320598565986102671637049150152395637060217838813119003663025788135389207105249257870842932321029221683044829946756935880446736721054683299855886469590362281938548243275651832628130780257159630823959095781713989247758347714913205133197802799292929206933314871557162527587473370454014658483545676630431981683613019057625296631347350658997538848736918224313053381530113686466462863248076123581326996195384181335809233614637717375119196831769709098746707247363214512622829879480156221509042630342411802254157166954021406772710277098389744331010581228398180281443838004160372314012872956856467102829473022796237654231968901145451212659494912165541381771776668601763063027033919014957481858762487356259057796345366070215220268995714499052700277866107485552901267346000358845755247943780163476650885066577877197967320120581702349867200836785108440847710709607784447538120258002153254340506492392513310971001761174204146839900825769133348962077694329209765550981899994222519639280186621512894216359384055953104563080619380463784729745701450718895480963749382446668466352616999149786214398465799265263172572440050704120355055376593501903349068065431755911231627855621417047051627659742523721341509643051656275842162143643254681933332372340005666936234734129585120334515785367231358108774306278323927570389344011380895405666548239040459868032797469698445694691379244573548690058265663610856100117017836445588616294686239041443055501734297665563179310392941268961750051493901932552120351806522520436071771670750215534099637991458494713874512976414916187788568737536218246403354303706272824009171834943528376009166815463764558796187620861353237949173618355566371456957678448059927599039003442163951938511549481424170220852601457131657578473504243507823599740257980682968434689338817279929363897774443554877334279435179515794723635054793351684451001692224099154976340261507020247140871441910842335268661889396225387371748978727975365206513035946728031081645784200460695384350752014822694770924892621309861288704671270701709385281507058221636679850318293022012315320649588850834666483706451554373286008438323807612945881883792943939727334912954659943318104426180032678116082695317776555678206737993214598819533784718141487843818046474190311196772656064058177715430745082960969098603984216657979084156038017861922810560333249582152010368586652909431805193437748333840938405785631610891720810810731164183989931192502842323201403480373895368500316734925569858505146895353795962597901764269072224683676378946439657533238906477006288218004698891326796835253631819107463784239546112292723156291151187507952656415380568912703023964080844307082482901312978927191668513948837142212713331442245938527560572282965163878677415193689953950137949857187270466442779569417309233695659162617124113707165273571725215378541570084469073314516151773330255893719149930726624515488937961680318681298348675963663062332425664460867773847481419302093487382506272771017934713896683371472681044572004221553464902283747814934038811177661587533138209964836578576667321503786176423474735140673534885443341547126633044397247301402445893787984276583152971837967404711345755419739303953235005409980211966260320591340188038958650320177006477458241149150278294238613758397832094151118968130365960254915404886389265548844105203359249218849541511111811276466758710736891779563701541314548080820268959195372510199525713564023321916656687840936088420812354140081964031520330721068819580749118527248372333038071279058225646680008484089736096074272084419588182410071452022618373257160819190708781558663669589972616112150687550635383474538540311440047185569470175615496360716782878435538240723455188278713054400109378618799498199352052250503442103510434166674188454759781775382878807187411172449017400823116199773989887246672758058112312130239463363772233349907699751855153603838448979691786322408569663187211778989908848924944182330935282720494300332282535540145707703147045935749483973223707267401922729628536166516154759031269620412758444755193452499190687572311471684219423604244874327424829149890557251592405577402147511129056606166068291399120577087862274612140702167613176201326580211798750567702488529131819557830212189227944632479354918859475820384253189908742664959338540878647284707719406014688923350945541717947665405616801175646623251967401401724786474986552331469654836711886807908327588288627860695332619393757165003888584420262896653393320794763370166222915229954232662029701116201444003285245307147206576579788247141642329138102521712600491385028875593727410115707540142487052160182099570539579813212818410319564020934833678600184315371979458766360324101591795299238464455163475338588388405111831169265775844591917994036612832914033937200298973405179075439940477823836753838212876757137625543881713056897967063359806987599922891257740699915712411860145621244061401069040696873069864647031138072718986330360562199665054506232831017224532668691245486403444818047632913713979900149533240541648336234411677150000849484585125943339423691465982079479808766651825861640210901189444995686770028442272805327993646482244274138784631327746295239623060570074145083076680725781185419422667247454133336868121327587489181719536847850004644462460295147965280777237268056793119409531524575359726113569287450614166477454138918518887774577518763798388179170168282105897440723369422791333648983439658672254718082854461222524687433634679663559812032399394059053131597042890847580119649345511728443967199116091266080436200264034747997555313736010304702603753120005378666595946950001129097187359086163496239425009729449886551754175292116568968912151959671241864203787144684298728871872077495054954463239097111440000615613914383075346318815792591993653117736949260163480229620360784691922349892265623612588538026539224793102632828128061894309679836474350137887695934168681023004405532379427090527338599559172726651179821995487170074666964819645447642885060644966322755403497820351386407849120198980146789891691305365728734260376128035213777826467449342481644797176110991076893562160152840892601895980461712931062388667836005414226923094329873835078398597937580852174734342362248173472634670907203253376281879824652025609537391313552653236328803194463652455738933746441421013693977720711253860624533698933551386028202321043362944939009984229284473872700720354099036686575804247668838332891485132802805932057356275629072051384805752458847937295440733910221527438353685059081805248941190766004661276689978199134443091288277903344878959655321750948798641303154115595981993491757061776198496242188305279684934507101014147382622846599749142735510024723234177106567687706887830449334505909870371035444962264887835027715556034381506930470197689969511438269636405610494318521672039473681323314987484306285531606309972454072893816505404874292363860410153407537747814317869914859507508183944959620687924183087214158883840413854374179926006202698642996943378726724325182012011237581356356813257731169580701418299833078603245790147059964811330568734147663673451927981436796349844845045255562636046118285230367501613022082234150458098532808460047387511144089477959886019495983851143964606820249847378932866911505083032868626260762227606744159487196496767671088076980043045367566261701275704134388398776979057369756400158691338637187709364873880504559928908304320481261132626463245593430438286875684084151849267000355935782252453757706566150004919473803635409574418645681346862165284620466741026258085362117479636640295799919189070605537620990106092881433319863991952930995170970631832427816898309943617086400899784741162312913928356046801859452120010102811414808251244843528901514527234597541507209462992836314019425556672306712402990487898839638120980147373335431980394016745582734853382361614971590196075028401904687405678125361794250469304396314665110214407578263979769225147784764286423891876934980023634166229650917739963509980522583138659726941123681871550172476073530172050092427302504380053196726295133847325662587445673601394979154006999548397137885666132605423494372153153106504928562952007883507200732702189496239467086821046478296895894234226939667831294680902181815584801752676246781492603319835571730364185486406209691372166015227636189595879104325593367120767321159753977582985500542953032213601714962938802951275152154174921518097887131691641190754769550053670254630301981007696254899965956078743549860379236013521099414072288886282852167038767061029185487409564286580155281049787219932230389242948295277891825928582694280884658648900686161882303912663289127643171050128170024268867402851898509003046258762330814438235839334120141861595958430549037133815275253521605552738385715310579423898673112643407199115942211026295878107951085372096708018021177373077040933708291978106963268940630251815073960353413756175366114906426702435320211319221962278599572383183330235865262887741493598696758504806739892610963764142935052270370311432824637789292789816415301348500892864166863431013552102286847888118367019954674962080823785711525808891480568134427877365806037956450622596876649957487586438399456662108490646406326436306612179652619760035951122349351089168902284165838686655577961166241098047972329521996073050958379546737884412285400484642567680250858115548711616640213474172808056022010646745488924753339584672046876275235808074297730207927212147807036645064310136069246866743223847830111459783818337310748630737411587039275679886361566979773642495828230669858401663406175552836094395902310274343639223534365242740922396200635545226201621596961345768052303488080588685903692169307506780420394679198821895513149663505792418060915064239405558178774352871543244562349731511776533512969786043611083901697933243981370101042274455396334526678275941595354562791968136524279436905063182482880622281961282498912318324345716380798292058551216333164474097543725530120364643115988411914279041694982650965171426553396381429928057304026770286902585743706471204911272423553787466994724475048418844540730317402432925049956554315968004212714418625465541109941242249716418472396081589799529926043549671096742838391890977257709667296856522772675197210569638556338588665839156776511591695870266429949177987442512802073916311903549712026084172496652805209744504362447911469129253710427809841798749061031672337113503359534048193107501606284719453949372326156768567518735834690348878065759970193477606883401569089798631199123256450056576802693533581163762650205315216607464108723665182937604513732336493125590914681491157853300517264722272153903032319122275541902424394198999449792138541245651365605469760893842287550518531517468814227772664175416932153110821821165530412276453524137454923183352302706034710231691742271265608345839308030556893866726076094875065831415344639398953923045897553790659017194344344794676163289446398827853798575741192648500707252101015677965396316525477870153493420615773102050381909931534169401622961230571123867032331158401972886717118797591851377588170886288928595982216691967114440980559282882844427759407483249935731065778878114906822070595654567890807111086705939069660254825577104042910249995652593372493778440622304895390838182497773951747088305972070424386354581303469708364010619466784049180101069552941465882678568521542996450875499945472342592285559961712860186729847142878969849690649842600764906494345767826319156989249785083857438418465288363508776584634468288665841521478532527523076720150331475287165046013233592986790347413217782777143841199024765166358406373319286353222029006303126841887469571898630990390569027719756349851031382100297254065113829768255544886507029347107292216974162107924375942215691284338670990732210807917778605973450032001575924982138612931202198790715541543783747432085402304410213318110909688513704722108762557920173701550200101918668433165773491912655534741565702337283658759081930806064279480296444163323313753033261963227847027390015807961311916849367803712942828759293060806704380152176668480598449119667711022373228518468555642692558203817414477397082161279932797449899964668367627276626893051337157882501992809850225610854580730627644964674083083866182329362701434891311923386723222422330386495219607571102006254900752039058214895132414043846571894644743866935888901868616328087472925756081201575322993670294635866382703283397350815448094033873901727003088752266407518962692859813971281701526734620170780466781294925756331398359278932674137483014561657401271106533412642294525537709002572147095706066132015359499150243428999484996316146481866192749048048428152275511555793460513457604053188816231253858265268125756931859405212673608650152700416780323545538408031323597240396378831162392096483907560183234814082839687999850260292206268590277582151979062134996132935931377890171433214858475871173581421999242884281533231864471584751290175263572087668715918510146963197026972076553562498521499069069489481842605907899134382423391885493351570915100223274332060037397063886420462855224728692997000694017927619855322756616113309502880575906985159125969545559441750044594035404731242617576568480261625525778577001060987710503045587474386518011378187496133678178739788399993613419486033898983275401485288903874124569656545926756501508648229100100091662853507149547900847717452974297250083757530277587267444898865237886405300846312454041434327345362411282142315795152660034914760521653674786483535870176247302180364195473456272359156469348952024721345695320095620491327198108988251240328573475932469360371203120898744781229143045553179354537194287928870422460582111814102974964583747486178898881977521134546396838657935785576085396159093206098812087295745931939020888274263642226469703443139528674400876435578281752669419354400450167613643046177237618160281569611711092911521003290667358404677309737083782571072726007629144987553208500512236688837764936185634121993056640232618960964966968889727613152299076393361480535942510575752683662088003530078681862148187181474135077233497933502009888356022851645715335855229156624617763107216111483213312159785519673764500270001239604635795601586016023242272960349920861378943931772099832547877820683601116413220075961006354587277276608395618951040829839628931660663634225540976668357654181107779580523655425501471220501122135971466136708341777391437098112787929254312333111161183258702476851453548468720085577268852379976344178675284534785606367571536405738679836895761928104554741840546830039994067409556622252378229099466593014399906068658808890793123019702661891032434275112202096653136337251151365927877198265429861872924448934846334848885001921049317267421512213560326188442406391160154918722131450325671436744317134948265245301206996094334472979252551558728335445473675470427712052161116930124255973703872825018514328320681882624745526192784524176473471819620839232201433663228321024816231817716320518088460275134735420904727626481046437522810133792286579092960037333961985932485613396988368063228152414411332354089533633960276191608673491375877569764496794116074449439028808888378437654739733939335725832816645856500830339402852164452793058291193694779983905377383592637032045045298875798072607004381123603937598379610746553398611914148143883229602809733662565062953993530705789726320834948805908795026180026595961201235413103538065477769044366328937831941432733725076138487412878703575575242058004716861710298893952055128562494676134829422204276579043132341266626580104918949261918813604992943618279719005465876996406820756777795186310941754391141586377043601317868601892154719753681702474427251459800635258032763438804531633286106861223232641129461078110765733362900834900436231988538459442584633969685533051305960628466775576525499615104244050119561493702180564594083965311653988638374684421797107219252157443167706686421299698813312646569698050774949257733443382396193094873365893348019469062232910916717464889604727670919396567868655780733049625582670300001878035409280327294450714111920516930681870769911909680256427329778075827046473465258563960580421244427728457745118977377706563439020447582755490518754097524111635652223682564945025231052077821580784930439289011045926210321678853139204440731924578449706663825371113542577488911086330858272844292882071371763356232132886281983356456951319623711024374430468578538255902287667756259288001557689959360428808430390765186341420551898747947565535446636304094199385849673540676550513367591380177260046468454130823923273664160970510770700180963230217573462270670286638462539071415056609617584728436157443776488255398955383121104219768054378093482542639627786445799149325070068727904239548830225593678551627739888635036155550757000531674650506578773295071944570831054814605364278701550723855142375108933940265440584107048523363592699126456978611873170079446000919069575448067145590413379680722972239200872677775175626845988489310235051630822835825879053730558097511363185034728043246487343104888724704892439787780624211092763409335312185209302812519689207580577629698493642165361672835902058195196650974231888033426204786130991764653204144920037974904848758531465969458403756865799178135323106331765620993947735824022782553344702294554802723735742546669121820463961215461652229310911145131506697142337529574753303099460860226101601951796698596707693798882880904255411385113378853398010099140390634721394941132178297715865217126717366509877573121643225081721172106199326902762865875171825686774663552011441989626021300983413432194410124442131316645393866028132215745896459085021286701222464991114754997271871011159861742620995729975353460536394302805975341232803892036670985160537310015955465973609013802258274861288957611479660944926122260082301532205933741092071547485846322101774744064438309894395771585596204316477653978110478664460979391816100939451450167703870458022546119905041888494094411174011047291952135474720022410111658127160028369534729693417793422580530888571242133332483319887977828676063705305787297714992595442653829171250111011978061981663548113298193856282877018510375439924040542602500195417013438721208139272007207815427845832407644512765061183457566605690081320528708428858000840880053549012941641696088560132178550252586739863087304870486198465248889872467860163713469985451833012284141427257481060796242867428354886910006287832101983108756952299904197426000438902318265645969657542133765450543289042409156972279571710421794792783693574203523071961684193707303748651398279041031200922451046932562326119056257125587279434361102938154733712042314898690300066687769427610241179609937859266101656626821503749632284438048751587491635685968990941105649396964443196544495585138455291553448792236401314064567038408951688411337356373345172570613072559072788423179933220146309903088060244786973297843473743679600587125716448821102432270469708008089186023068778448049742353811595781919216354965169384060312083270706705758591522229423234508286232829918619843052896980521810070689742599961192627100643154409992025035274135398083799243300734964678111986813751851098249280718329678041607593611075442558265313201670009514747441783876530542415423842408621333500589215555579906651670729263932663887059844498049673290063988143994297314681192443883556079747863693650915937032087280868512672984774401293301074446168571433457298381052091071282751711953626377706620181559888719913866487157143244269999719203013614166789581963503241921256332097664593930625348795152405192708332104855651745113563163973833371581584032435965053489651451155644128255908186767460709359728249742019918728548165970808990966087503807067176821958451153858748952392887167107586988920016839062215365148463108550190462345840465021965996120429875090607094245038969540318141286666437840400274253993863429216685490594682446940211872387208927790841399083774113281501467447670039663667009592437227710642711017743535785674302202522700871739428643283180735833411142292538830766314177200767424118437891169354841371834000492096191149429486432144469302135697724537785661691291032356332987770492520746405396310495967244983060680159122812397354637895924661492205492441028250246967790414598304033045322294191527938625744653966722290837755807525918066525435977591238377756312106302932280062162870858929074478390506271261569944526430366208251335252053681669751524744440579824345061629363308355591942090589085542973876971843407147865071464524589954187776599522677320984582517278426491453654081954613068574157856621812822659017442630984166859299390436932247161011627555265395550524535453175965987840848754770248756144463464789731109686872255904455864163956473070144367466425760842584598368178212981707191052669277326508709362886198026414575837295149294979514252868646275695015320019362326458085646100987637665160780528539815412835665232352529707078425187958300648930629859537388525006652131029742805047696963651546518674604918721908082392708421893418553580173451441466152055801898704166864900564673075339029417373094172973592130065053832348279085807660616336864427393367361206319968021977697073384583382050439213826888714299910205335404368403746054076506192566298987279657884366689632515205821749596203565112036890969594289912844974610338690723379449688922138150888336543269202442113502849881319865814588885464866359766990998122644948279887848653236928796702852674538473460505581427372418334083332531039205111155797234736122612201608410272251546786269960530852715272710507108952643466797629436302909451501489315790621128145716967998573762224108956357442823862530041697577340946496760254992937159417303856834371553129079346905921441979954337104564200632801387671015179581656064426105228999869395826017865668592882118608653978278295661834822878242116098881173248147322487587303410806683375710633556647165406243937217309925671227252121019845083002887681465245262687891034879921339632372732667310930827416614499393684590854375839031839269691978826904880086288425141186194791557442060268629234109496727696846251538171909194728073664565488353803659430547006570829838544752791807025269668429679515864008910233873939976680844333940050650203315786040813051363164959876968984945925428216984364352300796258644176690195396642292642728057262430346825256415701795963009951917514736053027123174041683850141495091986395566384935947588699074136481778366929486458847640294512037739816889139663173461804065784026089993124789384982724132634818889707438733814792312004472811619114477437678273321226011844104748286211663317813851815929969772609369045733564701427316771728254830368891527366036444202581412924964604323063188129722618255897480753553091351873792962150308957939220655703280081393675079426782046346050462404614296622794775564118921434795116042217377191705335591647978186100922246919860872797884427028311961216710184411993012534575612443836330085403554846366194980868181774849066806517724261098219926005529629525727983578076404450427434299502064933657165835456076948820003726673773247216433215782657187730744001520499442818667961020290591102230689154092259648837707252522357056674784600531655768660718943783953895870712764452533481599018405557584124328947681280223220727198191834194006386755973979639126593080826267539987027548837965990465953911233794506684819300449093030611647412689315779919198787633943550031990723718670641774974681899266191639213639159887401226367453730745115046300104743694371721133904236104553598976122135901588304085315310440637984458652713379217614988641389656118272824280005294682365129411239750907196395877726583823760246364993354401798652519603607234571204788402622557734142199997876441888709788581812768124545194330336436234629324230935127891060832902450601015195099267526316697169130107760680110036720286589845828236509863283509545907946000760680446780720233207773251402901562735688558542912015539027104955869147597945885071920124657705617415734157951970002981026075483007011024650261211736344373141453635528049011539705952363597906073581237258839929087233611567232616307751249076213624754811834997075834378814275729298975183464849382184604936421218457222771524253784181448736280234269215318188130359734200754467204824239964436070989634043477995449352783706728338841214261427011785587829671702969933399553683934150475642396569920290793318422786823718845170097212395125500313063542110968676378635823627525207199320107378766487002598247544904619126713255822330030156442188078803923362832570212968929441354204946061929223108415570155661397007567522549475560521786494685860367905755308938893028923380254136052352663446616387477546334378680564389384968880051428226568515275835334145613045198544713222248815138904472524154693929815677767688996592172347201401255215842592596455701247269384011613608379315096332988132272933195843622703161122820021817296315823874515483123564026037651772732026970954327270513989541229236995447570807895135306669921196344472902679283079047441411908811123600753787000571085103599080065196274911764860146393639226372815913592460941972041968039803072582341831192389807673837677823888083435856513326052844105596232445843056790329469469379265831704913975639676266555006533244520818559614150547177960321866684076678751618885880375507802474536320518605970423711133909124478060285961064121779014532245751869153300785873140911990636712070853240568737353816152773983244578895664988105540274193688383254498064278823492548949809792491582599971404921903520948960672837960734328081019339346507931666053628148625625077377033708572901798606893770491361215475499153470308043135806587140416622153978432001110501347980068392907859402950568922396148361983622186282250300928198089995067162454017085220298961871530113772151275504199665688228256165942571884954353052068536799265676487301989977548170128817790543824383250539309203506114082032268236625835911063648432371837802161508832467882990281089689356956809058279193446140974990023632861486505017680931171908465016506173088467642765157810334718848964559831734024885933088046819237212026572877879837308234478162645427541466300230510713919791475229671125458652820972059224765109119314859996951700760347019711427221282011747817705442283076056546501406830213962002314244496359655508412788089004883185902215978530276995192992248258219742126595853640555358646315258148441207099681729664405677461073889016087370565863272960437469627470783920374280255324817354986432970224462335557858450200672445312008403344430017523448811279468374393116654272743577562472462576189364615986582898680194483661429088381323051541061946183681292057232965161627026726587294359108768385681713054943106596027513057604887619459456660062139965358754972541801108433277173377930274400464040396464283977034216100275366226343199309954181157935935681114851228851286939658451894180107573121104028145678974108478473553622543443149872039968823614992743809552894376652566944833949166006380288464311133512032453154291400011118612452936429559323687868018825832642140692372464006996069656173237039731026182575022412111221156939783122098259739969288791603214647914717483099458813254384354992722163849015623520269741167084845875271213549655005016385815856181905367833718090866440255652586738424303945746855611709405093238601592983144712390588959049701177406309682409465120475466823767460646470178688961344467755097525825962134964585121312706526346052225785850500305733594927028965766500693136850901347134062147102547299070174757431874918168184964367555966466035819313752997470290566724209424525711210586842233131402347401858798971788692538763231176795956392715171340263031479610517497934004492067870386558769842322120338266795821149513606372929753332219600011550951910815963716450954232462389181345095017604421436560793083598312841343851585767126589616648901649117399857227831384829808949763232472029328941854795129857228969142649077326169938931223158784656581579752136984412194538484197488887164308001375010486428061009629771903600160735457087561826221995243391298727206872236447125972715102394592538055238206022906049154512098594566466739646296308038507434663093260305705185674929913096031354544834684455463463080909877409524800542017984675504819054783836009112348930817975343414579251475546719953159568999588366238287761887625326082087513957735196376713880560977262252866992305841121006123312641534206526774470466902869361572402301836281201167294546364029740821529487213367182868916696567098773909660566173706173915111545735258623421465627117374982121652821610182535080901281924776024664714539088223161835343983705702201769160529305414127357788807934573284869197492339287997284313973286041852958671190134065851539119125018955688647480840556459118443364884449203785592968242426154767481761911073998267254874272245496301301556424385561732132694854728752852465585863070443599718322640295912584257882731596427184160266775806823956886794548263894558249198160595272238306539020668362479824851877787481878956361506873033437957086355475913105261379560700648077651649904716230008064812189314747693586050987928595482201367621960797935604660604949295655454712102255007496014547041076507500306430599296371754471439141760920001649218601638165759569514409662112661586463978116079154945053302568504362067690339892983645640423354452038237801767495975208324170732649594761068669314117352606086794323840465974549588551282129028670212723319040892013693174797439203727079034529208530909603891917674520877999840628349679487120129709770325821984466585092132792873891005529418099046636424959944549513903705291232938093527452287016104841236470158108332621368235326472628964259226697157732279409664744078086200430291168003601863235310540135058849033462023888836490032636152097913750047410699024655079212196426045777519259578389690133948485012678887898262373946647113352923262659533959272776447606941391938339310994856674435006124110218306231387851946298465318849358925710769543799197364807003721064592997965107156196114107980636406617790814752214284081092157292243467506492478420007544345601430006964028384092038696800470121815867176250465394326608035416711086091922052827106834707304469388122390699058507604876106329242966521910012964279077612027980242742314460599444941020014491366990829884385045750508392876616953509573759105529940419118972132461127853780492386722542945065489243048820816628854379273189370969623201638562978796476511941941196732608671154515043491031753919925393944706469371747922940005122937633367575973772353589306340196229379964572340281339588867321223435104339647599177642259277471189739514714702494458514199040763518472918741548789399904334370350689685695572631110153191754735638103814522098567667929218256256717637356734429858466249794338820134331958433566438105716324195136902204120044706976807554295888249040487887512641908390679980267390279365168751701265469549357235680154271751895626989818218630581571129401345692613401596232014157611736546286652626771501877966381016272697196891382536352743754455782317870426670212959303024718058269735442213988974320130515073291435592329945783595604288997338123110283501521568351394673301440467734800065105558686467491173047407797981533707053334463086766050139735033128830573954460884616447089577225433850771235180313754073194702808887685089139135637710112206690787843769098126097408605969026706519960342457804967126961587616908700031877545679458602055698752371279145991561996371030996164816352878587694483200228252473087047323700713172695107166956553293755279001589888371573450706500672085978817875006110451938981186626594913604003721181716647813756657270272237406442701751398610477919523680350006727071467066679893126550964762283502257734809159617833942105117559575804906515784523519396670251462512949589814274952929369599158689407572904338855575387042005499698658251215978219428645959542028722987197582160565748345026847655426285544949241220058221870023051583242422916216001895991826030369168618431360833574938434457842542125083283197236042191446804487871723417700970801066683342605528770735776963039876480509747215402071441027701646931648941651312196498537610133154932873777982376802543197205385385982000859229548406367960147959875554984815661329052175478913731973141065796016185777939410200101526512731369261352821234012827232244135079404677474398819507360771058659758275855964807060809739549870552214331769077172477105558145494112633981418282338367648616252738857911139828363368932245886325078388938708073432834282270147660110729627024426346157106570756972724618086352075495001038564981242122697261336625934054840772297008857712713124815875304318675066864939787191552725085762554999718025687711069159126731262793555811150944150356013848669540078916565239625883662920596447573654144385083387834762056485493888602051320221631617796843716840046251988295238681139434518130538350996733965716164221552726259625448604110785714322344742879918856053710515340568468628009088818362769391066900352604856886769938322172304681381350435626826706728506490807031285590509105137800247028699269648411939139056815783157390697421117324589710908289846603515129820918429200385209450269999465982153504033693393456537099159366167933053236168387617000130378573774335741692646529912299082343486774576652893255202426833008741620392702002981536995262815561516642853910215130050420520739265781357358502944586998977811747181484455341910694740851075633575975988933502162146781538693596401268078059002299148410042903449150518943821745730824437723942361247178700305359764736731874151991241877697896446635957716346551818824680763639901267396351806613694235639527537286223043408351555809608073681337664602536360543076836886630922240786499250223536675117939005656798113105360152318672279359539789142933341900283110728422244705716988761310596490675950165875840026901141702514542835911872493136781654730654750643042153486416755368489235151578990134922172892899947057413110246704408211776035483869888220117239720180870795684067629666538806895075419468216568756798553362930979251235094079105854004822371386891740265845090892979494737553744444193318953871614480138043451439793599116750940957699057741351849119756828209464064020713901829455376346071502623273927903412581852632862293104747887875843223953812736921979099256026587549964797675032198862316884376416766406322968449198672885108173269163728342555188559420308754014632995408097297858217693560206847671366903217472478190669471849858771403225377351339207813627841828006256284746614640621213696758159721151390188482044030272560136665700047298925765530738927121422882257070883531904927250476062014130966608100507118975894722328678468051704907355849560808402401747057943294510208851092396973399978454797532781899021699859355963632281205079420861124675548185859827593463241197428970917071884531214295873503934984416200918060062129642159641463568515853954324228732540820366645831684501605764656244783218728008646486178615529126984645135951900385963557706686994499743372680449296113340749628058470410479746032378906940656654338254331370890329180139662719729402278594004157340647390167848356468792149171676507056684159122681031958066052953855637953524690645484433889687150326955630033175846964180138073373340535250680527106213821248605465758354945112440596488224928332481435384586920708057258769059963044969256869027994889503078770877853950784030236979358744801967652765501994653866662972500454817775158701233934363328662586858026406417731749614064957060379503008623294325508206219688631431496162346043126996034362665424797128303575456891161411308607500582473191700754402250227104767414007318913327485842791739162893439532725576982030184780485693120036071508675089097272402910569242922674177905438434337550108891835259692488018246227760539491454546087283979151188534056452881527034753300717514023595544603162616331556573924788680332203243301536449157033829872357110702325697020186031626919979945303853852260430201027152109692816406351368434242591485084613765440126303432971871141947623846619651826955109291632579620903631562425499686467632233488518876831028856256878223703749324896066458206695989808405460772162290589344072295821852827848538105472164269177751699128472208889157157391223050078302506907688987474450456575049734483822339555570667562448751614340953643214449988846016923972805360228788185380702174704297507072872928383119255045361083967061735306101916919125670288549583613510242682900217322994816566098965983786731630214378885575604152112034825584282183409619975351787705399307176094891874952411188689756365755324752879800965341447973314966656460173986238036243215701057756608285130686202473911320549532652420052243539697641019849262396476249495995025801045366852154947977853836148064039102032322651203208778308006680712405046342843779299291960732962157404925811888310108532125088679534348743914413219386435979945844965509279451440746321110283478087270572107121944157904437142718544927632466263249005710342724667551984038563591779005391785796151616768453468964351704518367219270003954302860560851505252483434817488927903600449261740165480534258427022802022066364010953916989197296953292772295226058227254279044050968664442978437876736443662228188695816642357878183954622578453428305104312656794655579124472319946031699186280923375705267472618019071425203448401175650141714896401949271697779602342051428473198780102308347374475113602947189002811836627979748437334859136345355944687897319566940750849265634489789060226376392233367865861368299052513873303265655027808750834266309616846163370217579969228076365869738581519740097295418719723839572203654458258784421791366857968862889985326361358835626361829064261236059361486631236544535928803000519803924202013317199411027767246733693144708522505887000420608162899325319961744791121407863457935733717858908216680522706513738597150154156337376899315471909819592128187277863538183280781962098827226727597648181413454490503677640576899561240161430683368776484927912380557863918908927263670015478407969848282338449273825907475242867021178097949419007915059533813357476678057616227805404791388788283402375251431165756904085438843322037547642256902820414073687644064234304102767215873922268122506717115584443970110769038167117340351444158439841805209193089767059358133480717673302699839838864735229732939983439750092582106929529540803825160601000246917537109289228045420177184489488099871663612873708422347027555515904145146515685821145772485297504040123515418216388293021211691023731483968050066792079307129715682024568550660007804687928311050148306815014908260294192947495783465451220723471628423065763384008676451053089199765839905985366446048722713267638736234032804310605260895840629637986983821855364149260112194041572223819017724279455795782751397840820766905005632512571071177633038253804965928991014495651707059727314333234787288025582036554711214358139266010436167581883379185288847331706228131761353133192658878398640770413167709787090163550968149775294374624655015881439562069683856388318575626776199079081070516672160868514638723693523499695945697223272939289740093877181092248018745968583169236057293274776441533343322167471985721359122052191253676768422446417286585636682236944533905634597359602977328572202086456426940835080068242157168586754060328097234196745106310829404476840432863183569420568461259901734977148019818732079892404907219148845818028788369713779806463254024391562747574405337345313474556783854702773603271515975467742298924256548537378898480066118681311384361277067674326626631852641422448874090511856635854960858836806959748306840416702574908499868479006884288940122328938725551788484565635734401286328965648255346335962125373514580421784343124765491028208325839350033456805946349133318182221171519890924382714929277470644570573763326564281787603830171258512477133135969038192457233450993855373767101252840727863999810258228831842087553249217201290242585453446473071778927139828131576381385589884118728610153632245784252512143631042563371533487763357016496633742831771884385115037191536002304218725166724092382954978320496233383364472632879483865519612899695019523912312866384430696810272494632148881534111019888271408848111973230450745706693805674685287476947794895046906573520265346379898680957953482327650804014749958806472545032781308709925397875890985372313498541488715837321055155439468425428130853553184956533722181523729015853801385056988875733384437573343581767583768481625925887304956987883804513261973788756248866197437964868518643494386070328062931474490878318331409155209500954700233701990421716028665302902366665115194760675862581060601338905992588674952787077342188415909988026315483865586907965326593713270529597444550381162788522888718357083856134791290722300354474118977488459682899562745416445002878340803052659585673041810683179236161176174479394041311008633030625805390114399312599813699680975276181456321737222872197198111531160619113293444624139070212338636851309802852911780221239139279909033063214058458517491824329318589157632150176051226260891276639623856357563336525264491933796302936342840269705362534524195578554858404872663880936721334604420901601343575820758041285688534384228688021075697360858103081514458174369743608549445201725667279437367325855959275383220019524991468993561933227265203269879529469789580631718772008102226068143842030568694440975023108210652767476888513364603987785406562755209368943944491251066842443893978201194286689266712270856341365185185162460146653009714814224523534725708853381153895540923237031275002461488817042418518487348287350868677385697235467433871482432895308153625925194828275403072157184754268999825676745425700055677370479576651872607124971113076170723027260593544944058903323184879641521033401152136056521501652275021886858415291075103508017020370585223903470500386397302575639643998065734004756210997945881407845913960991111236760170525761166727361254099438893568266484725670724916849443090725614091881259491664252148776528495619811057132849194416454219489594659581996402144963711977065620872237205708813926201888546400053978115030113557024639156374052371015861634321297411809521595629459561962031266420424904916310257344542429046793223601099579209222319736409975859185620806841272869206979808501386483275920858424288697482499680627437136632740044355943458877173016578407434801682966736174218620002326405692773584386470192753003552385056680021093251345603940192975466112346578586773372832950777705207741660545750015882763109679294294345545136374169747168183838995911939466970871413873107622492867898283423940160290693733583314381060638808952065926019061554627917390599824270763110951029242239103727072910644044844800863263198927175119670112923013310194281273994214134574832380241180936819299924467205070945534620805996727075646047598834837221228352812847568389644102875112609265514131067556983263780416261029336433442931818020561656365355852672593562284028341519222764550228955715899098218790267224385482258332099058951135850726768111089418967452766487659197999894095382229098619233995690737861120893234212690342938177549091111518031195153752683147849021296649232756206666874684181034140990879127269048824889362469854098593792465503811691089049621443157611073956998961480438533734500887931162031323090976122605658632491718926611549151612683782564318940514740488794227903923108789811961211229338421078813546941429555787282773096359660653725795611880263716739576818226683073057517088546838439575151436351350604152667762989501021933856484974264211267085563441099913960848675466878949154062993468434090780188558091265555833694192824214266473164178240013770135210075267357276753331377092923627677892404736850137110533694734680784132639818452790970372753160839736455138521075089899532345454385853499268327781158978385509859848805705648531330116485592374134370078246318123874914297502649242482890660822766865241957923746067480075772738988420625458654697750625565069895986737650670293407433861160230126970542263215613063984687757508005426076999841149947044267433689931376074667037632061392260238977710654076721615654880845415741359504763404240625155403362814851899527862552637940554789950413008964324682959059315173769003975811858860500030797958405382267279249542344351898560211070758027397546253252883056886048517249049647998724916810336034108153416081727954248694992111431564724613802218668199724603807108511602330308663993290111125231193420406672710853356438495516626368077709758747489090783047817256021170287522021319898571853887706216468896951021449204479659539018920264377923224506526499517004521828720614837252364832819519005031108784993609802355914049883073521288670208503410129823708959547048886607489656739953008653429497024077329794693650047598865723804880712821757623720190061826247040891883805859835164671913134892518974177907991229581782487633402138139807984857254568720910239278895803289617177217465087928711546514890228694734799990293998783050948060243799603578301831026138000785448582949378252610801539482612090939091286310880549658081459189858605478621884156309014103870779276388218515127962152306227898664538704667032145916204645056959251495469800547530617208084336783580650541096640781479399514935241638932533750898976017412275433436161073066160164259559540814870660483953461693911235829256311407913490223327952390423652164221923678731279586981418567178685377433533548829835160022113551543050406287079163203701282671852860551860793253182148419667946212166858117901254932442397292062686057774366176458713035683868826157775936815191228920347427121740338155693683256299256838378587111574997362924636581145342089381741975399899858128123810318524854344898797384507167057381422280186518647886492624392717597294757252660327985953569367044549617043897276705229048744184136466732372303104865988079315280042572864038670673007282022467077757756424190579840592765992959901895733010570960198776294577384356104839746461194657460096895801208496921031674223631010522115428081443127397434859297012814761226786346210059524229038550054700708378324687393769400420339415686419034976872314892407863689174760482295635382972434538275764814387913357400639099166375863898022192419841177354988453500149639004324087542694693013948620985966122598755686842203902126894372629154481607375429751363072905080096733926658501748645163841225174732126814525980936080550438835044027262922560400905831605391291827383209642211263457434302467842188121982227114240079389125586638467129822997302312045080428444838029805927337367938636203874530855825914860825595425735957988961976459552329388981834551800335204275370377709342984799201455519088696710769688340966255450762885826416624391256156978685399603223033473104652444857612060356122906025979333928056948275083848726636104750344875050434645884378775885078261271530655360832253721667988611848468615693529173985439232270166457166278706064518804529262407361979741825502652754271380818519920651883907977400929093450493942562422924626103147094814367437871028918740084878481166042839491120894575575201774886988685584595438411254240477813949324718697557033741187525348989528685736517062620552731850566470717232216199963346113600106831328698832546373907706443270448737848229083107837079941534092590812895379958723976597054403748189489256318283906198853949216720811855050155036041879752596518382045769739455149848782285725263689377058727456951537396404788022687602632022652461859574159600069170225609311004558644229338332611365685167467607213591715774763810193975548020778419218773617486582739861794165959837387436046667332731815228744225749854319516021467355447363302854971733191678253062741035172594160738933919778163370360086846513762659882441554086145343188287576141341340849155219847837342369221442274819664628956568565703925247239119012978752462886630119152482701196665122721318863417806809440026299782025223599833041169600790146418108969486615745370732834110301864820841481588218035516620952246619944709403645743079280835640235009028040155535937136661008018408625643477553063991200494904448213472148738654075092566704800625946425024478478649915620426791557333223473466729093002796807184167227785023522247975537961630717406713294480014748921720426617029664501840218155889563523032810454871623230171958382960973772005615741845496035721031731214973047197067875753068294680796550390052194283505590515826510477397662257418702108052743272462127803700517077495056811804821138729211462274719513546991530735826686335654651348160004379597279101754564020580749983034111509554432352017211335398243680245891771657574491171018190985645647812837663304658586610519385599669740554229936570988161566207429577374258445717373371818047298309794835737254484499709788039208159548484069637932754712227081373446004255975818215988734811571210970738779264241529027985343852614629399735429894705201889270216996658829351843863757734545823138740974044698154324847176730960313308371637586497750362382662798245258823922681882847285029297582826081580107041837714007302819641341540081640049273758628572865815028576949308120349927362309267028100128372854648197387083815249564068883191120509493343072121128489616311777563739689668334042566758051505686026632347441208252005124738255512444492845799283020304930044566447246601630912151062679978864152513121876112532096256575463568516558266393636845625587838671805378205756255799666252402620547370565217118455593458202944059930240477828625426970099094941313406821307234697896297736005741592645965981896872879454811338192663690762501824381383681590347199378262725079839555768507622156289792092571443254203185752050357430586709183165497374505950551181643936764626430456348277054013027917515969918623119836194427171196318047887552533362110608000510009990094581194707865331378638818669558101989214377450574633418278505169697742487012573825693021618436865005651228410277306275994438542627416088976533092224492013450758560415321895143268921777021739887841533656108060580035243029279490973656137423123833956652222071619267347116927400381140392721604639569522503632911349623463419185429689832423942359748122402327481780627314531289539866871393761720403539411813915832726598128102437821226119882153754519270624744722481457957404300178566888565746394798778808036685700804079924597313501787048458626198785920561610689878683114200150299278690053083998020676253337734676906866986531436275426497282699847200686029797441846235119607845337304133880372401219673540595666790335653222374614100480512750605753887655093683040920270846878000282568725197521193260560338608026955681916738767895945641961793831706447383159216926113607877765656370984587638058829980784177326786535687559410441496057317707402786589200118806813307668715160543710420923911023112706788536233381115135754409739842304277941895611944071626160345989786304131113734282501734127181261624365893603785667036393471475641332504622833128297964628904836700256290161694515831744092845106290764491973322821062289342880479559738648247712018806553494415039986599051522656941294224314694532862413425337420606014019042441698312511675203768918942429788019914985597230989201749520857057431004606171463623111108630679869228128107530145928291606570665411409337052465209913990261388426218461248028402129330707410415492882256843532928155541794585123074338632950578330249038858972650685841965002821542545650509159787449737134330371789397819835318509842225534191018396178438761175548019076373135573091586000717457669064705784978654350646601909338159074924689756716821610845438969573077527230647884073129763831705842657404564020365219926358259161764604609688958445612064068296733756815826912846192210740878657807132634804401607204002029900331936817544793609371761517635638969185828820614214599535847670532478577449865696958413601386947602487367328271548412025156507616461976464030181031731238768941503196618828577973552342471690060810255661151487340154418667291285447819894902506361955335890798081953179610084962920522876968899940699185004208596930693652990599116230128498816804099060032879353167311903459313141352732843107883655489297553006666639766866254016227403396032535282545645618603348626457217884651687238610068063920742140078216635355297067057170842177534883429655894759185597016103998784295295360430959619626406340477871534089486764683523102115381769220038357982076764756970988888594798203678065338583434634933075763613184598389319217516111548148255373262872711877524380729250506117765159983766875833307472750110267856031954531369748809873146568755926931648562378430016574764481609880493845803491556679683267144108535775630089653909860846561511325367203725996936526659180420904823046787144606559106888265750996876993202061646082717997996261516604820518391928257044465025432177885534563774298521938885618966959420171107529135364324546949597864779995391282743633233502355166646592401554071821090552352699041821370831352068156175155594401479091594653765485228375656563225208709377491621706071795471220222050207082943988076939599312618213436799086155451391230165489193590474894240400387961128563470924449299825667505354003339740962548782770312111416859733433196218265620142836182219797252770096398372072556279756824757696779257259312530644216288011087804301614533408010199231131321274444819176508757589925681034833137974869433065723962749784378380617785914188610605001697170368537858332163945145408086352909661780411147745228551854640610433995058756329209516390809042350496701017355707122752550794625589145838215515725626288738926381637538722449223371466034703732493392028486098987219324851164956316015211000046341191380331060761769055321241278151673892882454828531062887561235526026957896039389384719963864650211678584613264820598734863724120922529384092912892008276429235644274124024847647460754276228392527869463664791534832954764318952457055847417946237196779797810399022671394591307131930784148715618320094616328760604394676517232091380705655810888856074271722817085682591290430692707977035101690653903884630788445050482617273001808095499609645603995725493857217212682146294256543593451182535933655303558421240815866768930358053044716189689307266541153022344209864140739400945351294671244194363111461825684623360428628773936639842633015623820450356739553426306724248471994016524975308393919136338493766992293548818765702325357509987491749612890650819759037247686927851541156552475047989873971937716658648657402783596596162599492135064669898301626336908649491355371194026581509730106447440344230944893486342281832955163718202794778646146304736223732938262803734702730364567619611131742132705184891853663358557165466709242091812611756194224556658072115653414942800622051275609451276435880587492684867185921115612737543825154846276677204113071087979675704619521779736751090407468266642612177594920514992836794878504897557783988689023879381657939797841704230778661672499580854004775288944445162452006417676085664910864948255197351969637597211811758292118348262757198797764998491237736375476585050487669616306213104002348454508685407196299437450877565057986156531631519415084955570464472324244084876806880363439092192356248189538987583891302897525296324274421354476660787583700086231536416214653278170022064459057886689717586812527685593437255091098325201022006072794485133954960242286754091739096725759438482036550029439002526857090418142315523478358087965947768534331758209841613676331281976170026289606335394569542552894660616933195128202472670863532404503427965658330425502480140515822102966351482077681123867572170830554987968410738034476562147270717638897175953641044106096022821126092577213916177876484634108916761001708691257268616057095444642898543271848865494476776667776337782807337827628079670265009781838829544749210682951006522760940180870626951227005004542725027701560634325452264924868210239365443953843682535984457359775068263025069223099568869501078736760795735183449734385754338163641086896115820912103656514336805775253635862169910602209352914684000144873426764876596232098758654716304710838306050125399258942698353300113967429016993771742691849593283465369142558647943428419228002648160206011965086270521485060586417491942344806646094248704578413566482913523671966481660553274401577274109383285307991723187154760744290490810345233187095606636880617487357512428699217717007730269261029407207634531015597088986599110757418038682914702425691124122469845517178258573947794205951971112620978594435280675942047818733752864490261464230577494066070346859746716800325929827827577240405975015736019314074917616757682873746556631910102743818122400765233006349574835411471560398301966698447748271772397303282155844326368484433566545865394955393180077908857553002138734236159262268960854454507077670205648918137383701575921109679554500346591300880821642195740413788531773656883179269201434458018192967797476572637787123986169447828883424765014023124731395116470182835929185946193361479443457587258237992570896721886066548954096233362604092809953054959429094263261564064033823759009131190402273055045339001451529499509271110340311804947491666874641357638206915305727555358062064992478453027982132658600365088985200579626073271575553498551688764506924987711563440183766672419193681061365140997910313158447602047595127864003235464579610651150145542512944472871630373551676309791603243311999373106263094936847646894482753609282831031932667793288341509414160716428777356148211422557353045113971565132298391656038512162892624480641757436034841276755734271062410035488372026754776804785640074453688247419574448471071702129301726972730292420978162448982406040396096693563093055216948605577176265083556533093551274775420648542934259116957988208380097631720026306603569589766428754838791451446937069488132029669943394408984730982483044376340438636118017501400080699242860526515991436167006098900034918637819392950324471604661728247030173316276026835812214201642835258034776491102740644838333028334630501902593623141290428715356319138384978585762624495875177904843065144140991907743598549402466359851318068751866574759590438129118756653273997112215955896475751811395086430404962549782366983552870719846061943246025318281315061531609202649045644268977890015568723354890994027104196348127376037717873622166923946862019366792822502255855747682197067688282605357112587624041892464786429401701746927195879139514688811427705100614061317382663996065111442279711719792219171997959894348482889865369546560856794890361396153177323158094392452041191163902321544530668099018460141678421206087029693366348021539009974298210325752809019502272731967526071269019141288573549942976545633110649623311632258281322802681635710666012528408277899208664074855161388718421420355099909941865955556372713162718363165864267700889142758205443431872351275855581424814308294808925824627411584502514511831916843684668098725418287435862950371996556359497851568455657862873673769146025123877105504854653279932493071810351113616251907977297620224197012642486598025994136292313610778637417292414949938832881528559879138414209076590593265465243994581166954384684463804984222587517783494385299212412615148370126436652057066526772707701660134951489866086200480068825055943806047327886800605782886358021064327785275264951120050220557675554181300010688537094934214718653077627873724497433020898286168529119825177979667945261072121878433496432442960223117278109606229477849691067228475570032950220554136935822436346728276091930881885315809307028613179868649831390861177605771189581170802386872930364587416249100222974167809418319793178006189499511473627347787350331237139887487457573249868282630136850800563240166656464227881803981604510058985978249384821730574338004882344160381101268930041659878356170785570353403550295630577752002542410952068916453098440988406927863885139962179145764237703665023243698451532156136902363408782785297682576537170741006925170933855251834043057931273682341279007540673740729357933585666519511960431541537276978512818482642336274286738411720889679685351550411637006805948087546683040069723742258924182817783983687264314930892894856015959337973937026379371121595868003746161531331752803648804660175991216747162061778735978163258464946369513921637962113903930826616099571256875262705732653923749424092397253847487938843141107458173158794062244696083579941607977766647235558793335209027545635106191320677766217701131281859783375708781070225717278253247895311389992339291579446775879347498984112442772238332068893216376043308511287456239551726200055822663966570441719374038466968936892779257717590355785676122840332546853228292047601136631159088697004900478105799930835257464222962905726132435316633630671337735698919445548930073317550382570833728430841796202968771534183039521267570812427113200895816274324429637074626446117241891337209821408556503550852348385362345383007736601990072800758101438468383690989584236010639575616537583408642145213623773314444810966748253100850464252518849800926305933952096202728973738546960098005206558452361216804451067638885728320084284614609856576237551531313049406494170423411366269259934583176730207760868777166640269312696056821056405956188938551527149124093507344124554118015801394937831528089107255481398351195959034796169841230142437898242597778169596711977825021061449679503215363284757729464410837482488738133902372044809812345741346288709937556283017602452930003569988708853937537758459080822726222063367550746564363288937801752082315426865843531214281132947077939532904660508496868767597312007511072940029882824774324271814216537603776677310396745888869465569110933055232522641618623649874624404044605087547342241547659711477587402803021401170858424271118912970209094283654970414652675165854069209206266181967163730386475571922944189999177141336601681479132795691720074785787513358864191578202033419217201957346455669060209348706252590668735947065502689608644102797424639261695265827538727380006000060949456779661393222350040483927798600107955689227057264125772204493674833570786214330169880953467114966287571025621046722341109186992409882362921545523545333896859110951769915092083293891083016135859419735628969815484950223147942505815681207715650142222822006208838504891334470984961371783050793346009383111542495296303743162220467069781319773287468025192563264549284530474489688714193508940781393166205748375826918518615234781423240935820131296870223209057938439572619493148541335805030005367270640307767321327074518255124682776570289468571057869870022359535815308503910689822950759118874261226697673408057265127103781796404434227777808139636429138091753055190380434773613260587856497776711847719122686125925112885113920585253942276448628723676288230400552469464051409547657695930603577411688406712990851887108058567658255898722269426126935278791860567900763316296650407466658255494683248565180572543070029537685330983088418005948917659278259043960835151513747156431881631146002024406185187714055747493274483660785586565642348125772721117851007408568527915640135491149409863894427300845284448997068084935505309339485608415628105412017118080767282774537617376134423378770216133091199535573463504676562722322140242310076966331795458564844474085042431701226273744280772061239965820575840305551046167388641307997601326575216654836717703181667236723165970644877144930965795425599630222094205692146652924206115701771887221749522455986944324020573432007864714216843180466208223601483888148883560959563774379826919903019346701428436111830745759416620161331891801905120731754070478334358725191679843517945561222281919687834312077679322787222566694139971836889970871434960383439932724975541227152342107731176983026716980698177347095350954607879473018006739654747650709557302634772197259850768304118048226286926908289496946137431504652881762659506273018025195879636512705741126900698742381213404917062767231484665613487519121297975676721013549034690934905660125098142497541053029698910506037405918592631820192526619148815243121339449382108830620553461720937009974652955637987984853315263868363659004908595548239596078395110375806078123562849409535032280613274251492401500448021232829796874983190732570662087659402674671643515776735970460766409979473771645404625379702527259620001467731026795223354433194386126691112395618888984669825170448290750706019329544750507401408789397552481341235386602001707040656421691882308199393224417791665088337327107264821917955373798021950652502478623311105996203131405992731104037144772552123488335117562177079875193373559353360061412508530821627424210886905404022835546103491859827165290316147229845188122731643578679946529641086376819049819849715013604023699461979336088906410357399200065594714289871516509671150108488119117298725935705110854985160883542151076432779448555324700558422230698522509759050631625231609103285667374231524589594208145341160648098412179502082538248718147404150901551524652807019901567995892658547027061563614527024169139406951352128946409272915080728142008181397877013514712029676267427863467492006935011810460595639188345155369002000620793384703330560218108772026408081491354087774334200023565817075511501520383748097313165943350778972696780774322775395513170841844353888514978926024465846664358970557271817643205920154951064999139434973993391627944119297779198191083641289979815986785068381358392889801754437819979584112690685810284801792312960575184887357799059260229613449363734950410528341246363567151429112235395250568360952209245471716598719420422838109275882705242236294694673731778461093719084670822095159599239345771726567070739102220735540917489254033625840905240706995502549998034184822487385379863503727046094932743082765771833141475616782822415385728827762322227971550626375118692485369125808223333661663227906524633238177692209567755362482327295202197775627026967876954551759558301054005391712367256780444505506074318709207207396148648259345319323499910759670155115786260193895630164551217731770818768317547154679240470478883982563033203710235154767043926849240747664445025314631374370379272695686379895128122826168743686961849081761565827519049697115099000095157015704798933447942730385499164903852824931726637810787833780510192319396854318744051254950544808198760537884858901166383541778843962565565973493755419576413363718676186358422114423102507916814250984718107579560918952668988881386187800149422013098791545989836014051450985692825447159741599368716522316983678078672917371635692254163630715827409001283748656395723103609633868173861047612522916359588383616911237648965008635552959129299393801623433326251571540687929585530415607402037306437785007373507882146446492706008494011467322076029090310392172241195324522149377140323238513743309907872823622209933480713505259165646893674868223825928819639410642169126571593450465979463086890704565065934004373223036522468152844548720220009580434242286348406625558935934361003628536758351986462475263862092258730234888306299356426896417386077139506234086973862599820649616176546484241629708220542978596262029325836295957373172065851235491309269392901502883085823644591381410390716639825793831300113490891660470776240174665837314201584111339815493217265780474515088713651654114664633251087119404952815364742895836498234139428958181428504327926410171162109577369428175481675834028387372069249457361581639132960910547455365438148069646011298616373488591343060822484087094550261105225750227339706857859161542008429996168795433179238799343384869917842421338684459423351034061404392784820987650241773996136248620976171864021846617080656242527195957105156288549414580390395002622350821830737804640619875442432126568173827058569221518202285851157642956040541557467716205492966965978904701516690710593936263215411264528656995981751602042000134488854535894453046525111261314524976878703016504823423298456208808961945120199618499425706929232329131089932395907507184954202585162689532446322212476545360504152428212871490649437802610492879316048282142381572338291437181760384100222631562618848497194946402432186041273792218727766325652457690851520421345124784184717072668069644887477871804863927978282919027923915476339946058436795382680906027588076711844210342903135557991911251692369888769820674553415506067437890709183429495089569973694323084355765077623737892582065301734489456660953859568984594500619420949988263741238612218660111301454350904660944586326481542021013036121135035229840137509453666086672808380755533416989064975851491375169421218921099413080598423073928655610782216143626478121102566885881907632259818238412583247267774907236925487834798174972996566640917994669038177329273404008237639337453268458473558442016324749250748486185409617556512538633120336583000051755960942180913532809435522618399462246461555064036998280076393043970798129104062004008471544621358575813456358903524970522679425105897901800000827901596397193417595602946746106635463520415280042002093804674745931723424812216327554116310470585441022813443987392444268490205838032386194025951176794831941394363358778018977475140117949085558866897794853226602950105755986702715900964356804807801469672358600853617066271634284671680661674516909412542878634863197503326677404147483657009081394778932177112914947039972882010873206472793466483648989725909045163452478133020163975129549747285430614284109199738598755807055490800885710621694163983925820901525335978082078463093831884100356410978644570419105129581422448628938728724864667254354929318619984854485679193621010006807474538038649927799588013660397694834140812363169291479882983228147011973276023046347261395491489999054795356794985727982387757749580380426311349158128744073615663279820868808614102994289495646655395280499961843693803545282212605860204342622488379761979223912414943750927421189849299891276584631618640229306342946991880335487070625226189686387874819872038942750779239143635316791009659159782887416110282600799929446407059618639096995941646441885722504116731882984127755554093119465826406291106112077134324409968761175466973399929574079684184261406701842000115137122292709117746190589979620458039129367321769927863144832231888770938979532489872737182107083659608481499600372965276400686461889205511321191426075904484712573272438086064793176862195722488156804057771184451178391911364551111159503079906445676404194638815648733413126283130825560609498057919850861351596837030820794013030952746295022008634772898639484973166213562428132321488613190008482676152828068161206996306847312856005453048464514247574894083541360836126641816488854507485872962910364172721249552520672207116724547834519787675863952338266795457403228521078881222912324103926469029068009707513575385308806930518227750792703245788877117326811801375045123980317125316827278431540727729550801374672456480562470050667892294449856955080389110007493481417831825676829980834376005369045237978060257592971782071008519101847548507332956862770940428908424680433515631692811936345996983267369347685544718944223525859030000156256812685728571182935588959509037518905306078759363593200447641870539687137386682747487852662992107789333068554991366931946281726818619358667306937575219564828583051477877361602798228062139801955509488764070997716158758243612735938583395096659178459714696918679663462442635583086900453707436512812187826006966198376363208821765585195558099555625277550375587866679222816915596068976320604207049965868974522756582921124300011467958083837144798215274214698310323225956769597521384606499207407685429191796104162945488000206456556813417948949043315013384016443631591429553052435788699686690980862831191430518169376487766386238363714648925533411839747514356717654587134026452326382043905611694464870311701528673412631921663921175574412464551360772067483908810180627853863838005204980724392222964398757674562631576252394506976884566654659168072102771096564481891590837865544360704788931157669753015166706028922729349071616141090980845875913815650817390727198899695840923350436112522515275313777250080226894878133466215667098495813702403194198345800533169102219522852670596982731886282812323542878095980389823115622311612110416832659279758732081599185479875103333124083212499669231585734976388400439368770014005598237137495977865901855715338443351797176489581453348328810346120685830225998086702266702184134048696051417635200206248672493404803330178297768695737166841764559292844348505587610672575897826675574422302494943624464799948517859393695609978831390980373863450582004171951252593646850886673496118137430685731116031213720561972701983387220077488461912222749851703019166803849498688413807415925532916870918718917306426741052388762344227096009507657491610233879792913130208484436821105325153969375487210776233642845570659615572127850489211916558972282518563876860301419281139570796937444814871453953820439727508615574478042370591501274766341134312348780116615087171893549896282741421953577309160869058028842890379392237514423334258808783984379515410085898551734729834877087106462483551140743573835277624582475887435760289984255986564968955069539528335964186043645041059861766247116174973465941758769935042864693135451930775796756289113382789172410143465810856180154153652425206845317541851556916176396839516535221357439238115103494098654059343975751169852576409587707288732776958755536927483819633708077586988174075150863517349633493204923082056505708455728923727520577080412550143734728721257118564010129816903146052767864598646687893453963246745500643788834708586142761258823918320502157570712344759395112045299772256072335586773420776884172939606736892530387771310655382027157789247245130254964813626720210866958512281006515918319148820775320588199284776291052616964053065377126996486765545139466923712112230048634354477504268956519430102041571350315131803286366660072776295273045100203131761235634362001994426397846830735081082110629399669637581098291917823718958621543033709145888980867500329425927046413463936088051832105596362055826642407504239057004976021540478863834693921154505220910394967169398604342375282623908246651797785367439699792196887395697844825932114125922497957231450054301305775861252382283117924169493716317951603421673171833236333649474830038950360816024768876906792547055692081096394727410846691697961912538419313410836919654005013655560431400923851072908864804957859647105210740202744163262519118269350752349122519120116064920078701350940569340311257829162814203983162575122411824454082205863779678788286272416806710938365931222727218611763739429177348103013024548087827355208497045869420300546323424142583216360289606780002413102175480714114142373923961359553423367546894685110020168387086982481524621186568167902275076039449543457483932420242364970024760690562555328786440634251675375875038862812672117443939019420413572875083868067099265086405347983301251139008986847215526030683305492866970792059488145884990877571439509426128113486471137628864359933586443837767325430971765438409983800319756704274833322276740247307168110810426858123271577351866216542689285417076368766267317465065875229746557194131482031754312276745452267006950437690140428663199953313385868367255047639347423974585002709249709783818539680424072672721441055243994682475965224699019232708996431894156230921102035614833996393447953647609281441919399664509570591405096362231976834395096010042494358583983628384403048856789534290777689339826773940539040816843507426510258282025091137256048710324268370444917748541616064544324886975459340867502137676032829868195579525649191029849513928403184092084593580426585270012040651187743929792891076026800879487002061147591590248011045365952397985671079651447726602617249882625582929509895105291231358299317808763456542379908907808444921828989397622486095836429943297424395646695963759543381225080580428247246143803213872384699380700400406005012330365521776882260859747167176477153685321213850604994352180061251851599112135698527255143155268118202242191085577787216838035619584418908467393136394615618297420356869907721692316407090393648893533383506039323940313033455895851925988402140018579590525005932470409779616804541153976725008111902119862551375291382302752733885609678820471696977106427642461489508807402602937967967651424889850025488397953861273071870702727600376605662037958518447326247670450374182085930773357418706919539562218057950171209104472695769005952800384741203242774780358634563204823079748060058789681425963551818859714235710488414107144536298298921377598195263837983159257916549361908787477148830873154305996358265575222698836538670922563522403314556487865574954942496636480638796342486247494002018550834088364535671378314757501880145771543581089506520033240698350153650358897671720487776481848157827277234552412670927351512035371144010754110611463389289991829320436885136413650099943860446375084365453320014374780343092957352700103896756993922200160213214415634675697800286477928474640238395972490119190956707882538476205810640982175639397180295960667701521948266413498480898513090131750968250013268622547502759552982750250532881572405721478367127945625221438897247749681792356862722460067737788510662226383873753450486242337613465687719130139774264223971690586756019254819766911200400228690707704428687111487307373280804071563302860973850249791930558209816282988305528410028483427474525931401414280346270557299015939348725812454209506787340591273552011984038886848327947941126139819507742977967912991691167230571928687788597653284452353991821328283791603404356151390899879739799527710109727908038315127009427797193212789888697856806069646157737537644482592104327476122186937758094134312261817839492623811805713709957653201843002190816801386172465146376894338410277694158519326061200343690470328954290986357402860009475299750919115323454805342757213379770848134682721749003493641486285734848883562274287523945840246599302401040542240270066264753897213098384970459612730471833796079649183878804662647138909852523528497063041068471120119085334268307666488921865636264137068504491497944316831907292828060508384602243326590706217502444096804429486009081998719381610845325147631357465455618276488442778824686367754163412003555222865797506154240200403711645526965844393572858968791898717333084038992308736901644262451286974633081983901240522246150406414300379345973732615584547133326630854624834796585725581728611088267167156203699199291612093098816616352506479476128763932484244945226749872702272543362913011777832443293959403497498452805899466173997280419018220196821022815125533894921144617623123027701770297991771459865034940799610147329236481224437482328348875928729497396809606741423261182568165896466466855891573375950154426190216347032937220489844614098339640554737883205996450600577939111425363692692494958492504362918898874223523749620132078323327199889644102644605659884095424249771162059040897038322283344093058619696537739937327138446700706999344884918320583316788583729387438275928011055675457995216130471215302832559671665424851000889344274663291515317681758570613012204881300624339743716280686025371092927254182923792394522340602536083116592778451787394243858722002940568252983939839445666365834104019996076272747092705881969407748232154203579987077905109994844769625930966805673716422758165868129067282738871756475817627011542736933420240570946208090152088027451081241736924412688854755477215474583194223174653227840110781071119725766498736388346120976173817839668869245500624393233533046124757550264521788690792779878123591810916577229939631080735507210899315884223348228127442911491107103631908800396723904495161774071474554992605208422086658827613434470697879684517314064823737452554900911670660267954619263415599983463291398895062039041571663686657766958344140090256964350002829538364402248896087267962352406019643293817315272064896547603869676488242446745478726372714814944510614342974531831640125499027918036887627423288786809755585981342731751520318393302904876587962978313747955887100774964626932919362532660799725941681888778751771534067178614430994819693520295847211606048166492741856342791975780197545510663156577215917944425085152859487817940279900953801095086335041219099961911118860868274986707160227871121700847614710055181713218902741531998299614768201890476411238138371611408062235921559420415739493282140751439130016638757388670425475559696515785949505681178229629564027575710875341714143726574727615772454385786761651497973357345053184141387490848085864187890639744252228100724905217679345013643932070606076722234764579049982331958974228748983179894393917437647497712188536772022757520660230858090099554517223376922533159447580707348167372731400165480031503315137831477306539179496566847662546837055840628886557383294849080066468464485214087696937901535280424009536730524152384074499341018980701162993662612010453923129476820070567397727160622249023459055006963758170277804244865905847315477212322950404810999606618773110672877756620759497203370311210254275800640907591675512880941825406441219633132916388461096348330066656777279572062587520455549852918713664475279589243667744914753439310576135975040750078888063668463603723172019989454569599694513486590521559051487679925413071995223857866481333190390463927253618357302172299732716519418677704555733742495483527106873761257936778348607743907848223263077024561713849406392733365030051327216174857907978826819168604107571191386901375612992708165659406449627312901871635492981668581907097189266827416249077523753905646407085436642425890968801876795434055715115281008992818068600676942394669831544255807207709473074150970166006628989743134805066074962225867031347873863555320389537407805494147626415092506572274190552949713321388078744395529210712146835119542877137508656622809618974901642493484710387672497041813655302275851948591243171119298492204401984626720368185466200122678206582088722730909414468307410166055612103004597005602107923280010591717876933304044406376496716204122140199013142184191048661698947424229142662980757517406225018564362346533297286870695737305383145951084485301721331636141176366414659187475883487923221501051932044200827602633597912113572936431338867269127523029772606701528488929842230733786433518083188216609655897596358904187308487113288488420183431705645862310071693616203432234199990652138613230099087580646848148814228497557287856568040947794855085808542210535946923204424337551137071798563262181301170690671910524165209033887541337136595115721182375136630310053566218843574715595130292653215160873965197483922033582345032023900450531020166256275139694506324821001531753830018869153854394111666257851321388751115398077491884416674979495561359599784429587339784093586332296054857484769712430112549896005861073332420664228120443605872363489314607002581584293910722023470144644267456230204471404906431141776154233903430411657049143343967709928846434267765750883243616658328624025489631668426432044341929899749697859317395998060958602833941341722497933945407153036435768395649952039965136482673270291781055223732104326595126904217920537661963560411023962689171234013101564209290476449835974579939790451743019987294280629280299938858197380312709170989911720708258431640586618078861833163703061387234310959255914355150302650994650312439366194170714486508775485817941733657187556867952648335254240758630885371692422636365145604658595822656636801993586248809585022330006945312446006893278092753777342450176448282974118816371981355784767639899207162105758100777963454563105518592143328810715758618851098636488306377219322395118097308588937887715696128739216952115142047477740693151543985724422105639286376534204898583369823680438858012987537756468170586158011599018607911374841688305626727751696402364365170425329222038413140301493340924726946343149669955528744133608502177663595348850490414918840284389286113939055213983542682065145018841690837860537577588503829933499306341416352588239761804520750599933677330270202149302071070974304163978761619566765255672138880698841395467274297713180299192993013747154426343866378602427144232332483146819096198873801317067417369242842693419092495726922559772045617651698757974657829521926694871602806731827470617626524052415042977294074817967003331851778561214770030858054909987706502501900928547532514668221749521126629168366208713107075003059631844881727533157938971222788966971180681880385017766350394974742680313663210049393485596135821482514509926245848027482486797955495379116487324173196462170340881192273655241207465786719794112173053719183581822386426846756389733291738228269734001815653440370070089932857978373811690086972064685161609414385104159087493183924236499531871716611683051122540763579165132595107628742733649655535092390621849448893362052279316639731271688158431924988758249400310188647310856924976528116576095979734889896011095904182579306195401872194235619714453719031067087827049727565064168096870217215165892881714877552197737606682991257788189511093070949745777097099447101476588218247173187312719257436805577078233968136282181025185131743411360247907699794330426957094649068269346153357370304324027137235489534884163510608584773916634535097081727808894848688803978374689010972759195943091952466268332115584849094352557154352992560699145155425542628920641446311889083981374267109421106256535302258038414704708722289331717621843373364453439683646441822277171032089017766349656649412217406434948892424794919834046272627947996044538125405893700664438685282998167849316271390365364137760161236674318348849854027381758141235082106561330368227960202782064724409620544363082849649558513376516612903326477004256522121748792366924680336306757369078034543086010420598442419936713760603140561190367373833114462563755107888032658009288571803543366832755993475249076410187750238993539776131677733700076794723105537555584776803989297998513037464848304918311926413153347367133346993485412169029123055560986077197971379209971785970912634906753000986955103874536332754643467329815416217793821116321395175981851437630012109611796406562138376503504584606994884986064350030419753139494605497636720072677032758178604643841013362783381091532367201988636387221210383148701849145308094273944543591732559544516166322392512545945789398838512997573956821702291225604888641885817610972201646616705581462085456987051495848326768404747256968278759840417873016982750933033685547346892967604024894888772538178045860039293343742989930441691874605822133332430273203500542616478270240945518387527102117554894101715168898180682825743681773837136708758396777021220993450019042501170657412711046905068956467893415351372248996136868296995482589721717879127141826288224111913853003493808164779353908366085347488625502210164785777280805502375498606207803091152212000138907133154513015621063666321610131648105127148521038161637796989745599755510218233350229545877583191007928484729399112184977894472822465144096367350808640435203533961528470437521527918051108121907252660768502955861929192104887401253954869861786477907508143849152941664529893601938612745347470676429316617596897544496027556555819312869891651792339181601218617994272427208404418593589055494056347710404738496700172145672090613620782541066253722218782066364556556170571904293629405861248200678549720145374430823524848241658259622007343537902279245358511328675234431454604019026655237621650301637833163095084221666433964827921144116776483013263662070954988792818219564056749760304029615594207138446786785293933689287180816955397590435767481633190044830062214352020953543762692559065644119270258610332314905714345999121141885920608091396999493945493913507087472742933712768534037688890105348102893928378919423912538628954908546545179499173254886649895237661779469645743397671164149004855777244014951485430526718216637196961083349257088267078148205737370864908115209876530992604143815949278014674678965455899892365256851146623578528403598563605096860753137577528692789513212866109430363991364459593590942259731240090219749849522931598702929223821440957424110230218402907335181498740718878409663724677493049141834007643377657026430344790399344302861940627746403302005303567351858286006127184724894748442694278490356770828939860241539210743982013510888502664771565328904267428242840512568996362155187412169909552988456044919394609583268050299508457852455657462508729040364424187126263956848027434776533650541521780371279608823081837470678958117469265297649511868200356602374258486201303769085959329357470289580208301809538727269333627923860697535917553270280011542137580099702899111898393708713859274905676704021338246459704021986287471248957441173394262740205059012258938469128534987999086298209022441195802788879296278700468133020772463494724328683060671101126070649179460814946479186435278611322314700783126057595390756347645243137055463729277320986614948504607698400095178558853108283165144997139068122094092711512120755320964725605266684427146643513001622530072044278452069420191321911902577383373172998019553119951471797725902258343196706746598763770132158780234886050652787161717970614579095568379317781074381039041155946296713958835095182938443248590664910382773226087609758874772819748878305768185128032392427854983312418343877742611212541658013268713068879606854535865058927658032063189192365373618402965156142663022665924899793924218000767712438577986499001948582836995115898402177568413784788781585842128131776594814883055770160163365354174655486336068650237635794239881841114195132906002969138249830733395002285421558533055190450733602784325307352677795814061417777397726608409729000562486058009424502423075112633591590197083999088967927962005829316285413710267361585429941288909608415007599567103935980746782481828292538575628455402816495796288822827287466795379067552294123829195153695583715882167585363905993800427088904520489351894457065875831933001451530296048857047041858868942184437656811473913467805086658826156358987411771356139704780196538241334194500937644692213154145757355913933576933885432879051731579113053731562825371363563929745379435884953921362213925085611089507949372672248500443890026998151088118869914063507416812312625657050942219365761938670912038018574953665226275783217633491155433891777073136315122264227300206698064000754304821739288741982314080477170953087147297162264296932606185622736967426160905345748043907282316036942850848608389044859636331771779517876046873455440070401109898531702210306342902976685606461521682542490845320459267270172942444374751428315848261896775434758834116269990463007156509260061221780128771606365294654863922688315642221587588331733096417148802286626332902342650434912656206908984606596281912064887955124392361095201664531332532356450267551080597047334384760492648885873049336572754810892396804753298553903193355786168415930638282055311172733070874680112901952727373366241030558953949345661515588126856237315852779057746850235261992621978345752574190092272997673675033129514208322551932601969850284697612493957103625521921384439218701240951203691817137116675100773635641611947602375161050791901575640542893477675629252697809084198255370497349097768764861779993648486687239595070734378248719981969068009211210645815672566708671194948192469335046735318730430991888547611165407282138033579731536623448865045637927789777536405316505961031353967909896136404007298022866897183823423348098207573204147090313314986835217945451699270097340742633531596216752860978745697391840120473389158533441586933299400526667653847710172699896012328437439844501146051977990715909311503397515216511337019892415382808614253941649754496961295084098013118830043415662034587821075719225975737608568176658525638291018434231499043686327951784289402374515711156731154969518185710850587371942811551954264730063235490492424022232214674151711798673836839376692128775552819587287117530322188600647257255684522161449251341599652005674451298664372654772472190826661006391457562416921092080329438023421072823369980604964593065794238453697026861638747796281266963370228513563685299053178214293859592007286776969949502531585730563481288601969919277327441483856664222881254350972597564371521796843793879390142139620426699406532374258716469666947459483736826833127004177770211185049066439418575901517002012373939878518621220937341047012657985186830750803883192105501985933814983241974400690059628059405162671504492737578097423514319687966499092905812202638698139133140019139170384566708152326235477327098100371965657251717442733595736652097747062739548068554296320895507295477656823001895295745452725163884572429702436159905235756196121303086448585965806029673065447256466454931604282417529877378653772013605789413074371801083681664459395015803674105609517672713938190095527831535381507732127829726078419577126855484205246094986968226961213198346592855244778808770713507943993391784891840376694485031484305120867774670161711848844497658709468350138951345340279950124570366963861945422753337851829252850977190338278980962886364967920224372875874584901726436958646975989598683534012552481523770941994849403257534970524243595050605007122576859700120994128356547924249926026934191827581775949154902143788018068323307921508784519592538514155258502224023695265333844021395577177900195066747473798989594106583794940901687864327208131562628623062298577668289103072300138782368735474302032094453886049881328213173561776552438659756420371997956673543232563642335254493323517578846836861446303504613738870099600952246623895820438494749157732316201329901799923138320166173906364044928783565480122577840023051669731724865191218258246126959994160890794388061515844699172984916627903949393523628322748958512252647565913704859068614902388084164491446997011073949020548969293796804668066688215976311234333682326623334676971628594856959644048894345779529580096058077388706294905536296503153408509938146209466811903220043519578728557195265613489352035067990577362637005066097331672929879515645399282949207903743967092140758294355421066509565080436342088809593420847079243577165903626443421555289063350932919180631118295125681428883693440307756104286556398185585008504308805032191873210158854517614169614806230525933699420562816410213577434898851379262124476742252477713232961262123417203750516708396087953673415997750088059345450765780350567552747340633356089197268592271776080732542917095581798707760602928582705915959389508807311590127444416896943484854802602557287512483336552188337976844003311169688579101976977618623807420786961761271732866078359472859841003223517699723223704208112564607097105436746704837320958486841804851479343744336538423348980234775190366693234489342711926313954793358068690534114709052362500964742582104874175189676490903877857091359985567181764286942535845058342591310031632015353824221399655115049100493335900584036213058970291758475002307347318690365299212404237892449096079565029173126135534760031025934131119250226197836387575428331853870562388097525833049371302996167547944938247835130583652454499355559500064813057893656165423627928183258773257064698531690308783867122695691395064698463907804604539011029398935513760058416290666040175937961624792765791345763786568499311280489463262926653330453839226906378958625991798385683264917621560125032164187197825297405377026543010393590553242009546456461701904051137807828938456030537266629814114403424414018032418164015412912037540361032279139329346449501186182878644726041167490538322617911819243904082628436805704191616840317016138461376755030103436152872619785371629420670261477994377558968206040091822724708864392663731725907561274068656653454208887383617908790649670013231461125510495914590037566381194204609252683416410194551971033492056550880730454216097929844541925121208213866527200032589418205539766648277539948002078510203684585542880340069880839314030233801841827627775610574656270003822553431619626574532906581274491875556255844202420343898611754732350121252365934333562412712225185346079916812862030724673249546205920544710649186392944986601695630943855551539683418480333571828927093478884489252970610523477462358688366770942915557207390656186531650280640596457841777521000331113611518969328996717924398209407819939205202893795227350227852507215174125625296882736744621492474541205340538085263190664406596629110765915725279926982608433869746505496668341882191914142864026812044570087031565482882570880166324552318018582143099990943708757713677832506148838212229250315786975910066832256828136878193213400469425337445356715121424012824192737357015742091732475521123532232632828486813295742030792849453194700461621134051183716285857272633018858026834388210367767039181321153757855806437669143200286854643866730588660552045138109023238511041107652638288209353019626397128971977297303229339613577000521513069241975619471405794504541285344427396515408595907813779227348439675339903686458665454771149461982234008313384507209004472932180793607378118279170455337212826474059429043536320993444960036713840697009323674331124850666359749907295991381659532039916542882449375033770649096671120267612242438667756235864862722846751957090438318988810403884972230168658394796997599448958546707815944158047514474759980549684594253281436943793525304068289642914733199841817756111895111248753509919287819845831266508076770540616250052514031245098395077739152354952129449978033248579001311021773494365324670387237310469396522411579908697945382707759938716238468265387399282258020560681529709843735182825370977742921342410567885249434046504326341137763054340873311419369847711800943523064949042917267037632929004072338158365892986051505150476498547308486302738391520208497662591001593213355143984250607226543062152564239493925250615707701386281083408779510557307202351163426596626580050278990394234508735789118316007596545283151686021088193809935282479115209483674753702898225156628929521581822066187735505305778820755951254474933831870893807704716310315045859595333148053178346975622225437028327089734509818860881559251068779098588702852821571718935751526588789401569260022535742593674178195378155162833410793964554143461027664350706483854180831456406739188232240824938467341153421599585912403695508098108494935792778723380221044364913336836490478858541346074989793322403455109739537904191616892286828113237828854274889065451534630706251286632099006381713769752077390441555900613589296959256263199597214576007083872303361333365019226854796817585841805917506247272697577754651168225659574474965070762286934607794726004344449051875378746117672091992939106307336453293016647367111416559803895932160668773538516998798995489412114098424833015500950327458081743232202954452865311194172663506616864279107970846405828572131454909555290048510837680927269812930245847906566011225178370687544859825325256688079805293153463282986174991723603000132304817183505216671914650662284544283213705051454686014521760091380158393216431037124869227637420486776121364481077732928587706229666280129997040995764346019475837240857627209411835961081478179946319371395181502659335248234918741517815245876538602968776101205013404303233574339308270961406235625271258435541097162996823107108112712839669209432830523809595327045319653398251330951900166165953072325689118898484240848063631841091256958044668024406479531603821926120213643588091627611642762787566356425580880879351574191034061833024709004602784180684197284552924101739910092659109817860480771141995768941872601374290529923318154041918752820427406309011105678121162794645720393053992560133397968090577261164205223456035744852578247622062799622071094419083198651066285116808454642207630243497249054684489718020648760152552467686416354211910370098375748539289600967342593262112609505042704110744143179712112769833147456832618390358731160361431603596654864444366015682375307838024888917746543095709168778716597154446681769219183676593606633772813736604352915512014251539978272505351333620383215012112312534427929474139702365517281499628210092196512245101754154146956233420867266937395545177857273016831408612438172391404459733086926162851992801389401143340094743642570726687784128992319467669074572157532864911713582647186544746633038984474344951485904035556254834160177419456540227588847825830820023935836709374533344175588708358711976588688903253727119187817214361051465386233193474691779149619047359698089492824194980903941858930039739795117175045371723796857501662897549427355645727392457476311388186358045541022524752408065233996296672979202111492769840887591352586765791136862919834701818626000429925201813609488672402135047970351125553450760679049314019083138608789786885712995797769115051278565806615155096245868996495444343973010843884992301678050442261385991342056208954283407421667349897914323926663523400385425796894938757840660478953475965763921671906461703468044490289033359076440674280733468336528070686715631171851754407823453530347928794125647863834584819261748340521844803649568906933630118675216208558168638914781915368400026223521750943263661310078947697375466712381388274485716374714936005390811942821833098213335256526860751480998641670131221712566346574290661165387730229819641021628537327995243637391807350966741930643003143144320019760506002243241751509271446716920940244918958841499753578839210882309340042865314366460422593051748657896884481340270198137667405667024570040293240585424660874649743183635775404771092016035008906645912702396785742690587257899638683009028593565711401074757411765481695405043024100474098284012744691541288824684955684557815231534344110869628064690007732723915692895710860405464254153790749432427718241513894525766340735860749448428943509698469432283900435569858363135749737137166352708486551767606560016667638845109783425857980168681341531485542617553473829273689716144199204081753145219911974597558238581808545581147526491448960154899016361984304735412130585489362676865803284773026619478254386714989515551098155160080459495624310650746644237338948158198321642566587599935164508253873163172897442596752774909107198985615939987942810529578798946823559459698102600220531899229489128866226306085160495358411677381702963112387881474268004231722740167043850911163626945546290959331565258944418382804346116616168864593772377884110960246922655274286408111204154761268604289480667285886494858110707716730557854822565969188994326406520150187256730048277991602420115416714433158936175950789122102310964035030766331810323124753312131188021632008307101886661944579986849416235073487313277987652157935356618539624228241947374982979123406240517447354629978625873134801787756252296985014342701226372254859755517953156843767001449794123254157701531046558480339300515152044699011272469127775849945551544585645978576273488162717215044568232201559662009416329819180312105325631134021049335909314636008487279472571862830102201432886744658388347755275829228091791141471036388916918958355411980049842541047027822255795494662923442119579053644536595737042759692149127812234830229781032932995071949116877324514321349391625394692769149915503960164777105092652188409192780856671868431627475278108024817198114649352561599939748066677038083561328953964185492104697765464166337365696015010781574925308469418547600823480206005934145095559574274361822898829592759960370482754219988731598705668437257689942834112208668965739777187158662503309871849986257919650310017042253971085926260838760529315955472114735007864410349749545098728760805632073659551140841339384136913976468990113400709512896144627249686230422170812687644482566808097240222378314389545201113608910466949454175612870242976740948522707610344581465883166789281458578491458694905776814411085425394426399956661091557766590386205337725125327862441065957899573551617035025033875163577441912536876730034653911720022190669111151987017478677339799253566347619139697365252553234576845942015252034455199910322059549016582626240960106562168068512328502040802398657890683986230374679770184513969972531212620338138088782483106004615880969579827456783474959667759281413198329418033243311185158844840083963526530501238673347699888161161632141451194331071807984969629754857232075928782634989285614494095230146111515984745474078312989816341797498878773494854731591152831042484291077662078370106945513269119070917943164403132871280080907088473042562931403417103373990880635990649819984623885042764837334216888910176140333296619619780678315981575620229084359254778898568911670320857376305448165549886282451696304430696247031337621422684533367591795426402529742116841010303120253850281635974509454447670380135053891514212208785123431270517719094251428490137099118787768329090492842841212592498523217773907896860654608956006914749711311620938728402107726916601353959607135705582247667320649570076049419513086759419798980542831088885098736177189753756478985714170333487726570533456109983851008845445416579699689958478472537266102796765667866836989086848760706255434565556182449382915651300076889104973403246971678354917237847821347533174122771645541612556502086272529936126742793782913274667784251307715862285677619296913555374187007518206769127287283488399174678937506997177863962691378812766894627256950512490523153853439224950603542097135591306362301087621956009448869883355765420377033277047587235768341154844693412367233666339727564789292923360441831948916684207919350199711974314889124764389523544896912423956810160646235357925001873343374277250440069132205313548353167023409973194089665477827680773332817879403599534474660443352720843804160915554239900894984695422092923396722034948064096332654122081726549327696977993056257007892551819815593594153838927913223281109892849496549135182488297169472339221279656372539004939429140886309540527468497738102740405888993029908945426848087525013598146053544358285615733966207008135965717482314774819519770075075929578045597668608969161015127321160659484622231030443225593454979147525170580156772407765031627134040598495071149769557705614409483418287139978131416664596711267172221289202591769916398121218281645025714053431349041302578853720873124903028759139979918562690765297142272216194710058763454567959053916721327435087829541323057503509832402662724488131656790560264228851861531255765368612643061115400821579718908762544293036937050923631914333814105490159944639173190244590532266390628634751133035070650544649878978149797284022093634643061167614286106803067283124462795153122304571516471308071817187414354676725378246703132587078909653206615804255486405145514638440256820371838357313494252206374156684843423385609753295636596097140189320640983971146732266568100148422360036010387319212969831220432484971603679613793129949049853363615930904178290393088828487090307837722022202791077828200593012752079460089178375485714583924578735513355785211815384629281585579240022693710366727366915445711607242066537793666353374861591203603612876364733218441277202167135562334686309139596471253257226297084041368614578273446646097097792132384674610305834168355401015429158540055141968083659126924739396635109090449372322097907325603740038033764210201333080675468105396507279265821430831472658193270600524389236783031209433403083101761855302158303030746472233186494229874594904317385260247587899112329455925943712229209791316774544475852910815728652758558478989034201408119031125324682854856258247124676388211620306244029078457842750606607312412369890385968667619489349959111998461844130551529636555340145967565999743348958085851156124664577377555720120097998555622362238922459862543185211092278251426175143050087293549990296909463921332761366963822918569742660087181019810232498604803992301095274761668598097893419301234561256581209252388162969544419689045853717841601841444209181997214198195141099816208594787261644753863730460637743360485108427755701746450954897979123644513090567549390069156428643814993937408197478948920293453454976794237955585564333993857497784624505581595048636278686873595791261612080018920010957088255192385111412310202591564594103851977002677032640294096410324825733226803775893743559879389212721300117480014005129859061780872822408921878790998249494695703090362362456188686062601274567858319869700766842233495586119944877498495945511173376431005907123150636041470833215063815987896646528013679119967549298885335940510132638934802886824201154583760324982930977748875133152224216951763702224681563549458265755241891717380868958382212476217651452769547223726087310440600694796418703317316881986707181019939490815336202986605179674389180014556309744450442022146756776720228006459103934162515896392147677572491519642311226347697819455090220304751968727056682144662104879774786453540640818860805571030051335417068465186327568752667883495037578197484205243316191779581912716181774873115988744880512996192554074478677274557490340390957170501372542190269366125519795359024932356900106693088141546604691043623059935310948017934452447270225032059314520753595287556041088893184230913258479527625814657541919998001998552351110145268003660967174458672570459083924584766163811750288568320040097310551136863137909368075414609790033861626932456239350866072454916245607966692221622160617580839797008276450980317682034634380341409672057261471666695978799739423834894288923435422993419959991368912929248082625078676368878156222021142779084744691043316602710405147284145615761820160274374191669661749568184910885152526384727783021690018698872678033496218279775152621859483280390574826348550699913131731699510929926673126575539071201868523122016834046078593088948003374042878935653839603562416909676032601062539762906057138266108755048237121199573850961948860586869144882753195068505007826221122844295031711354079153885943996284013286604813863387053281925106112366798959535806854237650366767222505365307071372100602373136190586589031906354705832669818801121232793248590310742808941519739641510410154788683844909128123004057821758590030402089276151300213221639871547185309264362216045120035246137661656353052580572746934246325946497504165293117971112325530786383185434120688452074771215213470993947107555705295863020051792761415637552449395100191313731767776636691578551754497607724969809884831411047190195921174699283683512277540058443140413861002411687967393733839427892129175453333148177136486618917147464613124181029770276537175558447746234336425442722310023595072360746424089995380137760335307958817338133149537754394233778045634510655013573110187480698668283770412013577500308977732342264138484825356993684331847088077288583822108928328272908392837781029663703783734309835121512059474641716629572596176063876986199833386354905351263862822746831353283960520547746582099756662288037936620364792966887005133922940027096109314574464475530984830706748305981311052224514171767037966599560193086766546356072921987444608622922603462513260670123432661699261208461045256404231505393174958587870017439142028302056277893640685013793481895713117011172007500732447895898941631221398266105712683797415223274923263967983487651491230274033650318160080753745654452596263583982442218722743935555093812592927621617073904482309097592354944085157198304689293879903987695717327922618609812018502478156784979855869878246336616913247457750643984384188659086237594527638530550469655820622094039997577044328490326076364227112725200372854901309093499010418338396511494033309671224485604204261336240430101275691874555605861184735547474715537591243119582837911111985028234427699090464214907398336071925913666416632059101687826027161177658718811216036619428047377655562423000265894071373721960360470948739588913893009183972481344605066153353220363043959858067677421567148347595855227934323417047162149689522917004964301271114997701364541690301347357789818280338651162652597687912164820880961658912466577546240474064423476807091937028025645022878223153016957072379449531265412657523048000308199557264074109590758576895370211006194499008269690302886781963348763952266564594206709994583723070737207693967091581415284412985491111439891803890786692616458407546368271224530687168541219372077780476478601820665963774333234583261256528841864226175901854380773098570062565481354613241940232314335167731564676954204598500875618226656599936658056289564145685973520310552149998052720265140760256139578064891379252011485781252534499112233145467354455268886270533847413102058070957834316478883140147458968320562632223664680416709680613477726662033545397984542208734622912822641584066555450335893768351421910863254836989043965943182699927698339200725113767561927374040563123226650789765471340181106068005863393974808961850669287510531941230538139590756236020242577150398086788642308629585376826296912527491112874643139934402625623496119821421070106428622126507706661221180327083316058514302044472148191931540464624900948166240714407486852343014136456444405207367328567906980056442406445384681170560100262738873950284805527484691664527576453108964697900956454459981675407523482661059301227004552344817651470831341129902198554611772948166455727804275182987947669795967848319201124025107652872213464533569685750451110437977087962943920528098980212003645049426953933562746234289589106305183393179654343294855600368190517081264605820464685377870742418037464914562460957053879751344823107761876623329550255717751614479136134544325426346344932084707576385149656669649346918825420731982933402859345784505640419143411807596125415963234205741775585613805900014437015425956460228636512710011401791009036022172943827959322430579237845996742442594143815585569093889536376240539002008994467134782841340551346850395240858035481791880875042241220162362388318889010503742598858925484173866435233080846521750493006665431961506621527420528057056475075392483568685613252479385069243046559292509541709717818662572822596568757383264806135956114276770556222163278538749729376102947309533357788481375819169879528477733019118522824253343858646102730971171223083890578861663843531865630312088715178234442993382943540087932136035812845439403921824112952460529296935168432943998602684865813275092354287848891121691630256587127092358751061622875203774584128577321597222517473729575886214340667759903118787209202832253350106209125614067479036116993787456955065161943337409072546243628533594742285735769497182558732723770411296607832062289777480402723033275653649357958002751404404390614532463257300863602531099767887054673326978530817248872636974724715011696342341767457706022904083138201751863156500596314988847797538394888113922316344507869118899369994153971123966327546530779628008006144235081514121526183264364010987610963493199293935750869645862335266947488694481424147551544123101762077355910720547220942039294190289380832728157680480660481330007494756330721158395921368300406475069918867834889069777322820150049951742302280869789447567518797339072161752616272060851291437679436410725218805189419046268702226501423984021209205107679551944484747529419998271864240944591417489239700077479454988945094877666470784687046057891402254656090947922898860349901891737235423221381029555124876875077121458691237698643916640259769815709942247408904219875883336263556658841593411212036277735999393691008287032724312557719899148438814741199742914741409359130359126024948806399411510130129482970666904386490019301830299857629178149150083288106608326864484544676912765501983937626636747233322418158940436095927343111633002504549263142126448585548695813707323524725217863977674978306102478766684670840798846769670913083631809622958865231284421519044201165881792803523680711328889153416318356978203137352469907389635181357317571152455714928002992978884517214034351119229323119020186922447781696029080885736452426904470105173423510622078680987401600980573716160323887290905367653877587873501558893480021182911641678620746709940228400679737649224585277870129415124313658023218188004704354482597101020527966517503895791745238446048731647354437730378317416478579590259063466773133733265929995648202712521101789709565974725576768449589775998339095432216493565818511196919142555025233523499274665033298451987735611382044046466248919227563716437093503791829057593692344792348630458991222076199002271906300112546937788635879865166244900086742751589908106682663631863612649255003690410655925235705747943079751418700338767139421152936104641138583554462845685245360197488998116535359127987263306634682414292483458146313255309854490752275425139103633168966495405428626065864921007836781811463943582688514997549148320872761625757519107318444293361067771626902561302660458421796099751863885608363446226513602097203678290746983466959402923881762220112337980880540762685607359407665803258136032995417340837485578172972294833545026883623411382622113950208801974818346968187135639957341610990519319210509260475938298503146492568176141060204568676483805119256158691186804750456855320082083502832457506537908119764759182130843965641933486590265142509549343913338708940696503470542537562703801112218384396564375500509618832807202654461704020905349196064958332555903000580498865616945274744307424698031787651335063132278279170090591898576991609381772189343589112840309163372345888674578028533767888185424606698099114860398692535910787270915319803919904960313904412433576484620342907510642864447958365035240008575222814289101753068193646404231461171822243661297451502298606797340322809582278974535138164603936392905073365450062395065249485871573943321384417776674281325440102464612674746569457051114949538351877036405484270138694479320249032209322764270906171934747575449376703564112429752509969747435686788884999934344536252624632589352465532048291009490244554479439241908758275251446212545443507923511111484216036516183686917935468772864137720649503654025568203219659261324703615962535584780886024529520391150093625536070939767403051763064637593432465216830462421577589022550339361958473688983045246828713583827926337195764815269633614738307423802709407854968942141938339698583514050979343101069247367039488787602378034787208336403216633440138163663684488467499047378434051604189267119353597305581171420884927521973282469047734109084939242933613447510652528594921541805594514740289488293580882437568603117077322328553217868425193950156885569200422075745262475880990573882351282453100626871275957531124355317139649824175514820547485226685578129925249267766310688101798100575276753688763573357601313776676429489280718636656863553563253970574799336395699613799179466857720162763602287414926430404346135706532768475504490982525115183417440278917515798407227518570707735452330755358858182541445565640553977423217245512413496025525970431572287224973412698864194935461467072674633851907494112769040347696729903069067948261654216760613770209276124823969462219980108700102297252355794485745508899863053526149626994698899530443784780539499706930155162606052621625222604195239932739275231278059444859766930373034783410110707205346435121171156756633734683691809264387114263127343658653514293596473645756246019815991887993393845005770723844204793716500236518784499911190344167088662892181529709230601363316599899092652102922891478719695856330302180870859977602001146708969000642818139895891428607604300999954455139893791937286029771927127451415240493675416235226602094692096236709285660146075502197273680789248422699479049003082427022482357645267418803327586340532353284372795150884911364374325261682228254826578125738971957706248282638944961560041200134359334612164882646394256657551646401656670288288457233401141667056749526114812033503674021718525239263316423177374983969398010445818923705402201022315948629365284618437436576726093708457675832633990612686331117766498538045203853973208915584313286670165666045209635775401982930530993021380077258970320453614776556938148562621361540414346959997301909152609472073768174595541098608118083638140044287084087977263530140841506512803355522607034826021262226783140468991546831169499115347514761498676897907416227046753010349464516342385411789156805543091879074928432806255615125132951216877550410443171243735136447493458370925959568747864663181333694239585296973562486856577421699641428601641986635007964227732074783341314920933557370678044653376317578639181028373079136998871259072250524833002574252457950418347206339997090899845104977837813266439053541784555383930985863653741725992329484154450379685131887846966786192081848969494393296990634761474817364926023204852314482430619314586600825178564388041191511337684422952836337187156577236922460140296528046269975472871981469595222756602976164154981298589548470735291631700770401823808091425946000895431459669026828773126532830588573994657219821562689444180017289244845551618136231563177070431178258790331559479234489611875240420736578353309927279685127334424964443068573834797738623651002709902889381452537381226762971326757100572356592833272097648966667076586844628287534974781093203301431866155431020274308897387397217374355179646366267225053194228376527540431919990248532622639757020101852583357326817769053907938259639028306431231585846527239367150276139410222718324730639911009540913456128278006163167484408376003892047660388511413330122896331802770119120378469969717991654501428601840513930966726645793581853948769782412318965953950039330535295373105412880955947677166100515009232796745447122768016591854659509940430653377869944894421957472168824041153316202878712460109038674957421295288282437204759487286695518397139033798626618005309473588240245141735622018360981326467622043694170867597028649911675495411520312188482334737173583687167107105983098381138745401333514353061949388004814318225993118932182389044156745082634372298521815685221813121198637138348809848639824042843058560712001541401442826138841208951190126162926967261016539344771220896356675887067650668637738780444405340421656008446536850177043047008032837723675261028506193869087088231612119800741875636308818406453047366374626048897075490853149646267800156800022954587837102373340057232513439870902320492283172401372430098391921545020580556904498825880518240195413067253585095182824799337147073207819049164558002000449075112748057440631771667007390012306324305160446557910182658734108507487914512326852862826994121107799830851874684720270522808345802036767078562859078306534098157786615355285627721486994378819339492016363000924649316401848074859997491076207526307611191092893867928372664855662742837597793660868129656847025728283688449550272223296030803176514420200961353361900455504150135610972684498891146370190480800800175867522394528975212932151333352366573771678181898398079922304510334645902504635714549030536628725838569742413114121652288101298351554657068538960822267038948628310512915396774879554632667401855116147491520375681417438441910901638518254381001822433583653319305901772947576827486691599202702827856298468628562823063256741898533024902469415336713025006418252557160410238921036743530558102612319108114759776901272053816771430910613115279772500122928428478791684682946178812262202980906456320897863528962246921161686143507132471978236468180389345435681700933123351501492487883932223140682071014817888472878110055604521964479841066166449140913214553085950537867854673158856989059127187766204707269652429147896119542572333440845689798080084265581060560826337203348067548401160460668768923108098785445692821630822389435399517034869276779705224837183784156148833928963653511938403057532840326363724421888646786266615602246914178404344109081050865286435204935739164669483445281244395356649833733881247751150667456986658196898835162222456068553791305273481631905085467381278339447535766929425644469911197364968226224080655950418701045119846377340545297626924929021847581524501550065645575307619798038558949757327390250134258721907632855726553255353294427214765400086831071924369836990228845959281934422821403734200091620190326387632486287522150569908301132175848349432279081983938127012995628172789901803731271713017832191523056250795431176858932553068889548034798961748279804048563589699089887851209675851864302668591677811740709478789543689147205999675707099732998716307538515183441280206853535666270310734666281664507299797743257754517936816709813253962480869610745158565766685726111281224748658433690106076827934549211062519085663329501146665932797338584577502808183886310554483382043003391854553415179273254884655066568951155752466643382916038789383094170088906521410941377979218310341240680134336515835305431175362196132668045685185661410112685115094296223709044710634659369956167343978483464355218614054502303245314351467865457979545364197617529916670402111057630987165594299160693360473475188429286809896627323054306446015827194617641688835820703873540652597715052136799705892859730592262249848656444227330227193268875430666960215327653815897049237030689006765227654500018887590201275686440590970522977355804645691831987339482899417364169252159803082140669328054958084111297721906425635560088469127641779896565419412492499160913399881153935949886818301375670559688404665812797073766986755334430862029917596610136612980290735205994219757563270020645590209129662902201602387028602430180127475456928517286812501599219860548334980480058371921875169469131819951287063944522677685409383089925534555273816068173343097395508318394820559324543961750092329377097125722539927038773184673902929966291148678230942062742919922594216272062395891084819577689836264168300928696913223588381174074994934514524047740529323660061091678753699802820743093843244893792386552315387414341923037937888032897711082893096180536068374405029878997587026595750169452269053870850236705244800350630038006630621644581579733512850730349139823605631315106437198788574832547723686560463360572550720050531815974913761799749306078391796452513711475876000015510841853256069322713234276828826275236714392858937691216177658774999554119952383431635422305744799747801630100873411220176809021418127271201367655002087225514815591830623616142572111674539156901279150002162324834778402779092836819800563086987873157571180828204739787356773403794612334506201615529226222818994513198985102375319561246401764030866280094944944532567168822683724297457805603824204443148377761603498137635144354223853074715237702968508033144492710711453981017143728221456914511598599863809082586844359076740472319929798255841974629451512243342772850251500537398606986764564720540797275245111584286556239649956712021898083770748488170646244851701262901335835136604626938889730296423049556323195868398515799552402875668762696834542537160453679892397220339238664206427985263175649579289551257190452970652428776996289018814741366676978724856546564988628990079636437888148723287178677276502237871844848208071394024124279060142625438673021761528558838376452985564569485887565430777800574956524165520287710658381040664624845355924733627377847696979761652265618403406947646527065697855221305090790862997221212075128570632752163816242550949038353976875583610778241424830513508857231110482241925002203727617293191206743603991759859860223528888998227514676462949291546696678732279156297467821163548586788229267720383377639901164181723660725383119829091771077520620759621233735534891519027493822138211902261767328694440470491400351072789566209513180104969391714668384696414311101546792978050203217367373549782906796990419158621679783245331897195897859192288745706623520263185041919459117649708725587386641899989426576144788701186391687234427775050526318917116621669809959446205802449671894613111434038660764313250598421602618788699728693322993300671658306092833800517581413836820464676904845796749932647462093797167622499318215599443940103350642751798890554372479883699587234827203726157068982569918339035292083359745877086187257080304656385941546901077355495290552834171562886974002068791098557192453479840150792425900862697049240850767956028665944970382036084104222897937418998947246375424445881902539833707358754574002581864826302997182782797272906302716635538688066154844359667877728137607349231179639518014800143828786575822536075043218175531263298214633957890246693629202025023818757338385041082842167592323569884741788280250368261846320073227523805523421943075913892178022804011392731467336670700786582643575435997574835661532956760968224429283857093283592336507606695595005265925797386509828822663534731246351094442978571690573143643421121687965208670055340724430223998000345531505336580754560109897725765873016228470527543653234848252964259771052549339329434987689141537563419155491710257685348203676502581300558534005748875496508361178671922005667885342603733873624374398031223656957586986714565624196014458025250630812779868685196955977097309150545768661135987282517767730808020999634763175096418405165299083120939987311376993413161257000828109677569048790417144401765047588788040179244675728248729832447989443228740196812323014392299798570009995702824057910177628386621313460231378343323855242993181584031498494035425143370167548135819214454087226080099022167993934730231276045810361626611693816071934088188509187996218613772395462142402274135523485116469799191479960659173590966624291245858345983621371296130121171938247295617762791270693410801362669558573037943329679383098532141948485388327013181096424891240217040405075582695176434501650451988252331488137697225042880235452643568603858544471524736885592991255301923115148717821706026263050503058182205744118987220366697510514716762418675727569954443798560657542241714732245639907785640955990087239823204321144665786730532106252039465496548824881057666078557372790479451360816845861228471646216983954471176877303546346996278192829188003638229936765187197917120231327341353646886492078943846221688582949034570329366615397086580218515237024851997646502503236998015570767243709034968958491708380259317487174024650447320193950006219104493952673855667916614427940590240324541518894966627549981187278269437834929945042609144729689969035481744194303448142037745674417921024692481767990360388885764517801304177514495520250185015281236149566425840501184127686640218320806751710477594236649339570857164684117677768136130790764450124119988563629661600003780118167527232544039400496486025603318761066018331085813458431470757556135727381267476300974424005777926334780117365310224886447790737620353619670503680334158167605320173537724981498715402105382923911806195003861776013113998829495651386494291450454517501673227984002413362013630214298825993979154795132911324064050286198478633962815301942904245428875705640090791478448555232991551202240038788967644422969531082812505290363218694977460662131985682783180934005649376248311157508864368184752027210236628062392462656679290195332231731347219162872577895418164331491133891651034072869455196785490998859704778059193444125016405154308296258102180810090026952942439578777291411185819642511418224193841371018862615417143815249682349594630222521768100917590052485195135592419109337021774166866372248843191920843110305119473120245040139075254565961518977406811342338152969862705122970707800150041032995325653038108106873608169232303744300375593892193579951030839330501592353198234978001601099680145037780113648017705308013559477641581257261207988280395743611298417505746486338466814979084184418203318300160219031859772292868003359120131829221077860609049952744992703317757394737652135218300639117287452434628611895087867096108707402555195930580194525960781540092398465838011522473286603861462562262996218170896134810995456935732644497118614950720260111388576258469255561779056965198720932023110796213818323320443024186968479043008642962762470574219298906166791908833865860101114976807433408504217727943584520019828804868594260106526834251653672988224805352026359923367216894520828210718817744828064881955452623217726972584643860845628671252531411494738474572925443557548048511056795365314828133249335999965065498412912408447392595314693295744410087639628311850151612800481794149931736477347195362076479075290651898413856478222642047061811859494349470923299244073969948329311725226472707845951402000591178442219755749195116965352442298296230212079742620902716672808333149718147892377482629557229644678917881904409422186258354982052978706925354819005282429663478934504561724085178445131986644173594986274198606517770744361000195178406970876888823504521552635266965888740447387131179812612121107626271420044774944636880594676452557072806036456030725397932614692241407691358055498876960485016049555070015993540333786953906989077763352673141792366013307407962778300690504484104460078614660193184676929437528501969332410213997916932234841214038462037671732103319840968806734639313470574356395458184985967119500185777504272090096648133717751966235900643212137956585371718142105470943595572935100925149508922758319005490245315188692434694594820387638169153455055090594090001328568723631926582311674154429114534828911536033221359971155265878319314844171382423270592498870152837200953749995031410589726144498637295810946578629388079584139696016466229295562023668856978567514108462659653832562785895456695323793723038314878038241913247075122408270017591852788947573430420837520582103019207800995233101054538493687260036031273455144639050890123996736314331818359583917432981531601092613894709195346470998541319960808891515516716281222569060636750091257201236688055950992839567576772202809882470103242672517143099365626982800176320010837536934211335852424290537785524871347815749545342982550496731453190872119936364870974479301584761971014351038780023966854726820634662456627204287218998894822812999778764360298365507070316087597030619740182506435968093572925560859168359000664728771513504233777995219026863141482329644920221796880543387010288530380518151457020579735086608520054693429167356977077504492854026981155184380541840797973935384018972448657960045016800800463771378816789113326679560928875583842766432859418871093319626656191222211547383767296153779888965005356680434396449132128781943387930899084661006340407549549006071632605376723291892755786419825762997665681291983369541840006380309515047192453678321995060096257490250893129007150225508637931052657904686519548209988104252362947623816786145256059899615066283306297685357572256632826689502838759626345633534950069912031856596999305709633096943162282431117619261922961810932405772128128584789453523871145661676892752175430397768309741702025914753881129816736929385217544594480851535324529559921504057567130316123600604574142258189593480312265501925136399837155337101679988632699233777870954561523557589777122994004229538877178543333896908609505779148513874889319960856082998684010459781709493830508176499518928175678170370585664613943276687061031738043363132634251443654182329363228138802292239130325655107331386758142356383324321584048691519304103197282939697230867957794051955651197606594338985947544503427275056867246075911266738666033670239254176997121600093688451126125023227036731220006304233400926276125292042897222859872650084912520888174623379532234128727051557460610508436896166243022576018186352302769340757634413760897037426917618925226214252340949539067395235591896069918017860161777855946327437145600510191626460560923677188233140418549269857558189591067541368562709460369946683102639868616410158676797612132238753402942548477224872683564707030399335522168151392167716575659824968847720075292123258849840341486660561339990181583123165476004591315611812986091090411441015000485989392471562713550582244886875737731045721008878215185485884471982642013535838429802398995517710753447074460747158252803076803720648808533284045825426250110899151051331676196222123087052781864690234780009966380700232888932531733316701022226279599248279159388537344185868976041923907867921125356992581677394592301242415739137431943792485107906395923355502446636225969152678439218760487028977867194046454420391773731895077287494189400922360205267946549002275119201214389179574909429144617388137396250654383281839192389162831087058143733770448065796685164893576521495627917038573195280004589804352638669419729052236736357159058469610434428396316053000202752868699880070659156460829281866775205476878479811531021006096850634411254664901389441918382630553834585134795808237862921027957624817484604665838060381610641005324737127751750024169917121514950393395809335076432654324210960485676957674489031798749210480664308324936598689362662249214956048007908454717340718010560487751252222469510080669092866309383238624173082274724321417403375885596494899691248797495386451441231613424559764058380135234506242417878689227062250310771962614976061855512033243668237201772748552542178112052710090510079602614595868827298765621271698459699351976733176114333246109209116696214820683762827734013372358250728666416310115638461223746879093650817806569954458771347243690168014413366378869854129152103796614057752457698022095882783711512971102753966425319903953351507569374207956997766640985279346734710499159857983537922813671982888754421779265299776212096776842238044750424783425034847675394942451872493819532716647737149139535746381987559340258925661367130702936177431304185201471416606275373573174153774140267287227424323107971469187030826215025018912635724732075747519736468670672882184153994447510637516130219634148531140627990613915450198236334104682340703798335939004188738722236113099757877341712967247961558287647651254671815936587521332068825859086156840384042529296054285163947792577306541741198284460159349617561869069993595496202333733942934319437340631730680468442948517486477037384158894427384829385829054083733747744918030155968323557502007993054394038716906988338727870843050279600923775089530595080477807116747033507204569292889744940891163823676398973090101581410659456713630003588825717988704910770284695372206884952594961905663638029180338263578498433505636825407651275240239019122522975862339794372263420792977750958404182414114692869202822927910303952376095786389572255950687852098232976900531042871889933230981620175888864676896028526407044789264808459134628180282582095173977086471259179737746164815984756089884738222520505653781913605138358661883889795442990441576878164281168867564751131101526319530821514778862378904551175169626045305602655437120264802005176389073080355996306619892330764906219934279302090441540795271765247204863432775098141048455905561719488596739023805788773519542751769947085924580503626513754125902950610676332660305778926701584660888885177106895952381109898254550432620209933341032013196258059665721287118101146535185869548076193204500793287212702743484569936062562078097330666991005613953439459003169823804544801079699233513447104745069025679538053495902217802539797457325815539948116368839922829087246065203258080843967630477860797849894232511807665802609842594120624757683866032105332393840097453409338199846349017870017116853302724710483599401519225117517513025941949003710654621157857761872899356671075643314493701309827845066796325713162592852767480446342278676548015999054689763380235292135958059156200264933232517835819371856759253646592259728899726541515911934801240851853420812900893011383720566663101183289147700954086107073276551054624388933736400535685426691150239436922055310557064845171825925296331295234465028594959183888484860728288857423975698685640521531595334320782829755173790654249563073335457147407320475158348458819532793267683050940385073998459581945970107920268484170479122186728773792294815826171000278836392045535825695870410273181740425024030653309831719103029383847684072966400972045520159733755906135246628669085763032002431905908878760789132450859486045255276075414256332262843292466492830133914549904527322999669120519678245673125214891790473945595743385686842665202664352376509347549111159468815796910352846713758517955500099202660261891330345734058857080407447603073523036823608340194651399555775027139668707368253309614014738399357810659004775261720009089331101176857553847238942088622077372113514581545418878808657316564226241635867702255352408609230651611222663137100774281103636764785374054591634214500796029808650478268398806965437718723536213724212322180517561210859959023347230372142171250586859699028158013654781293370894151907810508161628344566245930312579995381177243958008412708419174121842765137184098494201065788111045091153967657299148758859574297170428602711089160207729642794806218529512512307145105625409855997081175260496684632933460088454334357793297615213663578059601187958792825884472883867652969898338590120713557052190189734870606615200239739359857548834029535199434973204149055744814463188567164694244214314526283149935980266164751075223921322172577988864018564618789181770591559943112816543947678078695185580024247479129633016615146443271830748085997655796070456867110126603661410301771874024383099777511247393584209816897189221901107662851831924350274774224888937934741412512469851736575771682691862743160833326253254338238944602734658026874005410079329301500330636033607158605298372924146149181592680596682816983241131274570042821937834970076920673305692652814231649392591192680129763144813439728818168540626928500522538824348558441134701465657507363003176636473991914408956554982660020143867844766222814441651166566623389056242284310600528139120664534349754010799512072225190635296245059343575751375954078877179682225060466034813156176268616435626462550485634707773369427807386609468607276909887176128337789320901088628909418998466650007143840481627719384061855005132891724543198000947078333797860295170312203876275612352681801756874918593246108481875387144146358808014461204377371668655268937897212108534310082845393936156948796534521311312761687917668167007121224957528228650638084666477265182821533793765417537483242471631888856707537170644680572418322944418395066200624281778004653784817797250823341414876070448710647684537358928443345666620546924051864929137274905520973827830416356430423095364716080565287984727153961974322802563922649225782146145698095703337357427469123780274018934401855384516323972103326855680613689918288061837322899320399168898901258883868979561925513368748698128143396791883461972857806419048810524358920691736285072840872310446971191519597690407449640929698784783508371071291731895099057803775367127017493524507035358895730545566204283994843285895574304555923432936482997334269814561746542672484637330448080366514991538862590299498072395891436578797089859323892218326756441381515518087963364902367684437172583386069289855243849283886310192138594415962354099256217302756610134140905638020816419203935207927587072410375120607480296695735745086380750165642178479814080916726666010015857229994526011158578733216929908524921010472962340233835180103525720496980403552231724716111025863109561209335102632687397383297656223749087362780430751357826099507623426559394329389460847502783854068117870296262390175228612848646088242350075519674724564250852548845598593171785237909447849330429820506957208910715800294933890047951391946716556944530136602227489060562734352451787809006761131408732393733962445687958746648460831007728582362433152204523672809883728321175799773802935458575490335957868333694092827769996230663651091359939292347213228551831781186595359100463144886496278967837527313332674926256423847128694077533180360297124766410602081727521397908016466590499229101785192030468014187507757970836855213109683312541212176620948138461632162722189551493605659505548591745779964796727167468760768845936386244677272472420994208376799135479390237003802611454686479175775590110759173459810642230148185058591892402055567755343471054852250603153180664150711511984835365959659095564105774410907331614335342307388641604767307751515066094031847751700430837473006752749596764006157448656202858407074920057577738581706687449821886731337919443980939272632445146130936468952987011697402577244314080668663156591522363189994283991073055284416155178833633267365474671901414768672589673846927199320232274465230021627903019534060603377805853302144618416991227244479697468097585482283316847120254718777156074077456826411938082055830732086037625368094158466123397345102955818705829899722435327712961667059463637933256803648339950171838102503044501636549725904225835793716617241247973863533868305199226377982785285492692059855286718401901293455180132383136027697009621336948792617983328942435519548326179058191313359568874290784200911000718946722156460423211937346209450178923058812176957298995503768977674389898121334777996106320573620794882292370516192457728825122317803456330697340477836825895464680258008277474436640974516042338542872241312901797715576686485443079320114891641277039650420924784074502988574069383367469740717817194007993339097807289955979098172167581988641862952688145599560239264670383434141363373828897754817097018554333811024790824713292399640352280153686445672089074301881374992229513137117381473748254015223810035095627365173126549593165339642723937872463445970890904087003000843030525201436566849485199661195311915030049882503179698881432561665988333546250169341625855113829476523749265391899597138504555463115022708969752967893959010596119401187731378051724256173977041696778847167750956021280425635619511958216481453915027680856685623476791103817659476421585678872140946766201081006007454959132091121466427320918242710020722843037070285858341864979620553238595964373319752178221043408057294233275500158765285404266781074350713309998656763050821845913474120393552983592800611986974581764892381812793540482068335416793960354864053202787090405617665112659891308709777933970767823882237040862164928766979519696384746124466105405572651144691391417223137241547160959962920982083514875224686774030503136943686383569377499868200827263691910243831637707884815808699104864348639515412749723982553177050631270136741882205269013775976733501218734789154424022828665876058607978991545117170785849282213758580284680245059502761385828135107505369890557274890025489972006469930038668145337022432958072630144530257344837446887572033423809791608022419337545132399694666693722935841759952108506028895318553420861781142926870121746412672426565272846001537349183793990713841465431705644762218960896234742785708379497870636635263091098387547228737577581229152631241167358397278271616595898863823736175578419645580955667017998933194500318136490497725655387803596617832199301061935200619907120444182921488986685666829788303709351617938969064011014045602355247291265504902217904447926888579752791529279623383703565536549137343422261184419028824247392279847767294083926349268643469258986419156253757005707043507840649753698616055872937935569288230502325090254220311971927623510012036876415625802083386422274308711805373881632894538316288123518955254444964505980509336050182838778614746771428908768386585587979678484209346128967752883766705837405746461122007154726807507034029805743849810705680707386601163588014313686468515889804064009034589780752200256658355857587258744176513129624446812953001391772637021400324357589797156566433265110575295734366298519941803233343103685354030807988255231498751107015955928113028448776480076714336338049535821962026722887850869070087234767272206276532822808835304441832101346255388229666704386238292581009091971003754967631859392834520136008000368077693390917559312563955334004592604317063051200426959665432119767657643509552085821354599408961338086938153905977933433169021156703748501266542272608847974356037314263589745238595268801574581008520123778177413781978365543620076706135844996989482813344562353176935858627609789957115693044172930615309169168890182210788251988294393749350046712376570826979695320440254814857082195526553845996334099538429240617232396229418220416129362458221170994628713150998700525019212468995003147702477021858915786206786242230666274181775334785403599537625118501455979748519324895470729197670058463190576877346752371142252728588112573971680003061231110803489686927195518029313525852415379649319059517151905766441021610212208989241608273334367804824676739292423784554524768959499999017400120048860336835950709129531663346411907545391351750127207306759847435165570605229003275790698884153342296653549767711643598690372832355687426292382579656162271357111982558952575510207775693901425566618969275658382897737232195160141344187558642406401899340085521989856885069442067209395400521092294576115753701570013071905441212431291479644898904669880275529317252826758510910898691017787309181229777819858728463985874387625367834308307149055870062631954451308587517824862131196828843286699467364194512414776066843408010531635498638981654709842797228991111454120827265168615510564739871574916050871040036524381939233885182016403785846285514136881064845665425539507862727246424420927574376909284683616832533369236609822157356484956870020152954585475762639816716969426579185467739468404314539282683318997970986588711724403397614510778532189016993883322462086695758956825935582997682560354906313983563854727199650737587198370365652828911199904764141248121870629112704847965255300667127806015317884683144642535735805982839509558656643532991283690355018756505153682055868927319371780438945466191074345915470326613476567143189102642224826883907287150694441838091755817328466255594447075567656818964851403875819488091489278835332356155225241735451752348281984470273683852353474714300455680509612696448770257165994124086148357168654039012725256937417955662893175599169132295711916096299043070454850657006230525418275960725233705836108771536337845683470514113751798524926678133852502273920998824193927123835424037962537354849268302047697357516956309172003061867251106049377460046606368394092468109680899711354697724815003874604574753599605266283951158553558167650350623899012119310321121995982605134636315940632218889476149981028683296966565448664720179049725674109742139498778497459936865274774780911810431086456660303746620398379700181601501173694731632618484064810755589617622873179522881733329207823659044606069139799402700940563350426400276445226128141247220848450725611340387125794404597676487582956114687707328120496858147365153956230323021986242576868524184439148905999154928826232877341819955617926609855380738961195896808572878620529464383628537767475877525774845230318096269988853500568872562743224790290473833789848803956835256296090610880999200300471787397259101207082575959531158706676661199774093405985172744475824397691288868276321732654653067796321502044518682545112619465516568295406231196681267619871507018986083739574415773924305658762105841259215880391227245313976592160214247471262865121184554900717857430931096962931588033986223169212704507381647706976923371047150337353629992451596750201404517389013661103804916243956078325092290960378150546777933804955942944385945398854560770327060823716602385234636607553118727827691671851123096841970692125644645426061778697184339774476367547029237004016838660433624795465130610680125840863524680101172350812739827622989695208722985878430584280397067217758517483395265891756932997957236583119623083959873301979428888356753012992860976195079372882361407217683915871859274254004393527526964531663086421376576914763641154133887449616025912997338006610864858329501904945083065326438726639093418179392073307503278220504168366045999890806833347762705382483492687284947823578153666091790621329414921516034217020247637393426182664913513750099613118405302471184553335739005681867214701345500112364974122904339151229781367197211273021135750398410079965400761012020234722906808791042139279967862795657002975374744860189027458129611808302638853902018593632677933971936879518817658741030166987824160330988515754909313909856734842764265361052462537094859001168858844213539877262205970258507651386837868014548553594681049213180965382080419287052907716306297470169447673183953283870306998713886177873239462080765714683990013639847427319233448850650370823856265954457814864187092399968725205115243832868191739637833551766738788228006691028591749829232426913990626185884478422603652200550761389309555034323983641813251181385680396809887573859037153053030943927771852755500937964555707680649726551330911626818897784725411883947471137499105968832765776274171484741924685080782450137181124059453784676237272437049742314724676722588088130194153601026409765105583959987127151196590203420552030017787567610859261458324096059170392363987787774240797481889787225913521054053799353560403243712756418764131975882291096208190082144043372679882710237926653084886292725917468870412233182340177893571524541018261720152119955201616850551465342099585958501147965914536009408563198472036957014857692945773968485069578902804862913727166851123330510087650962801573568722206422553020058999940212508219582055942954472419172433898807270429006570997063728623416078499909904330629795259080942333520104154993209474511301254322492674875547941851722089883392837985970565026295805289666213045794474949055110285976106611775697436964448240143456912021233438489673957486105664763035388931696794311876617263978253790010596221198905416077614469574199089233683739725971422204188874687832728182705119408792492534617569097855030195570037737196344085638221352711120419668406328686125269090431443059909554982094255200298871373506565382487797219587888431654585344908173249098803928497707777972502823952723154941427655065223002493666382441894831220190888739215046327228055624329355959891416645117903656560792474684927495826119341093295627545627990450679433889061895426374381970472587007309558636587573766764178220463775683092471871408686397559030171610768094254085501553898354748570054891418902946003345179989098481297286912936004430556659556814337414412890225737311812360563341858306257221080703312586183253107265573193014013471801968971647621600669701048250632473904320071468768872153053791495214890386597499655124948224124215611178543435084010669778247100151587380620327375814646171734923485811367514015731669309451293647310521933838832200920116368292068809033118647012730522330545688983133519940016506028605242598259321099446317934496142766541819213712480860722897006387676005530525174993478198640578341454728564535102058568491915100167306278458621021670920440101489279622257990345809731340751357480948779056560321951836741713736615146760617181325003610887087161191347802465485034978276822178211091801434298863298680475712864794821466795464881700698841591959091121797192412968029709499630051473310897415907531036247779319136696767087362839002189658681456979420324233633739116772141233460129623191318308053145683431817673644186614707683748094956473457752464207859730633415754510113235891660702741997741250376648368067838938296924895304391452179612947873641359832340689315008914435927767597390510026005690167106485906883292685724396173615170137658352540104534765850279023161713412636629165840994998660498661576876662281887077942763993539015344054924483981363258291063084303187693432673884435813733597832709416325424325853154308665302964357411548585792852788105811965339345912477213631401391160277259432622913568932814378982659350572931020123153706457636046659497454762549129602936445787153056714848581944386085835222240014350579471151479727803927008640333444898706795133618583589142800994914684298313598629260035591134310925902285117461536409753257083238168055290773858571490753799774781121684542480550768303410366299898747252794289052685758885906278930060203133760702780976745978824728279902606168651794649575632729696964151583001416218288406898061112324487931368544318150141154449583603910597362513809035745017244132927045965246776596901264255661420107753682694171987867846687108261708778926300714183923681656807867247637743372454069586366577694020291612590437763209770188309614095286236587499131519479719093195108546785793682067628288084374154091615969063015995740979886081382898933660765516965581884393211352804139772402891837183571683841280237756418198106962911195329299913266988559454727439557624850143196445060100589262696316150543714433858622991483757918958358037618615078565222631417434180896417455848671317545989418095498688296789420370793413493841770495509223712086252454235496729866487711088726755970392539621189718618756328753771068713124527600565776656976539939386679685182285380518275815784777544251067104087013718499151048389272049800777960605587387528434142654598324845644851817002322019197744038856955267310939539134272304966061316400358989976671207929013286942792404387757014788839898389501587537833723371313231560597536744670792959115344527520773575834653551783213782615676364253548509566839143473543698005148261626860596273761219657119382203636093093193888815471284517959908178750831809136762251606958664250775608482112689930954635581702531272168807292341592737509605244669008345374451615717297437726713850141130526466020516442580440726615996631498200080177913775965963696040049220510734011642082796607771067412843587048205248632370027645465784255460070698014314384365017017425812440325832895102302133605483194121227105268866443698019084058634258129688904349251751043262748183227023928055799489166220798229748771833378643984331481414711183993602264787761477487136516814937277511463446896815891702007583890532911721858437317933802394459286943313293421869650975105211039827538478653319241372368990531587048133550283802663724997019977744331021051573808264529349406739792263880649464309645954456644657150178941625178624732189539202407936600174311992500963128362034706488727170616951486905074549920347187962654397564804423488580082354067344769124928675930205513804769738652347685016741733172452974110934611847797726825887431958004749395365669712959299008798892774681206012214358246509758827696521999321992335563054643990670157170687598821764835209259954021178493882174642072792706798366033377385255639808906102180935533153689435839587316540417853125776799392085410427263057041583086265898681282178777733785016523106047064964312270106657366941625235403352225431554513019036205715976726134753773954507069418971675512238645426963782025701592525168677580434190296720059906255002394354086201924881564106473573205026823902906173328676179010060935043743920494410046829142398009701833033217456503680130590969499562169549256615945811110102069874620705735308784832358117954526646524170901918989880248762381795266344016996198593241275290977698121360119404647325584525491566367535559910918331953680758084533974067351165284877624476746015839883103377536908061945692399956247922449075208186095589907382731069094666439997694493493849740912001345384120649978753144566383467784605755448214315507071538180209884833502276467303660156087853024957264682023794096864922508636670704519687416210170847212250586375607990487182204503092983702417982799325151894313626711178668297210712844485638855115307540716883350961481668705023703017518129452853792454551254868518049529015311719873195282430011905174042193650809873643305448246726693610940937381548214587797109491248919470772674022408086524650706361341569884707096338309334105411278169170362652417969443425168905897288287821735345324344150558822021691324689762685844069757848114515558866350584363814740635028864846976459227845442147871721204355916295783008569801789392724595779958052265080754957566564953287567145296253007887111081528713359797914590129497244504212261809865396686884413266358762737685465353623086344736116081567262425288478769144106346386752376283407748751125804173691786015181453043187184897763927461106452549528973743466171304320009711516695985806849997664319254892096895622708941607341653553444279645231156550896069888510413051913567894797579885986820655966499238465660743922335576340222442589570706648196728251440590873103946720464578628787809125833674776768781188268594480928755597818977479049547984420323304001589782791008185424982821643329750363124592470268740754917630915424168470519485187334858256772469374519340149517963572524987684964115210236810299210724884980547131886859205779245526948106658826858636578027361840085055138624664002232604376537208188210731549575821799449434229893456326359615253204737355834872407724903664019137932276150440365359590771334188109776256670325268920266917718061667781404186055016008338277033469840319338365382815799447106186857193083904491796270217421239708095731947421925116907891286178431927024518617693081446015804279305455271812542903379664597506838191491476371385332011669630868871409570690561660591819001527729493064326190533127117337380255950167487007656563936842852669422184527592995871792079488315752619764772913454656016505612954694954360917898244262709159361312037100942546288011287945302638118017460542156025589964148290448598910044545415337325074309349441068254963237083579360627089217529235914143491573119765620479847049827723990678818166303571699263527443186466307190792044740084458498382448965137095101473308015007708562899280846706344536340626809781923292991722434891394103545045166133635247939584028226420254032008672281633848021712655792755002000798110852217896160311926646159424419169004083051174728544909702231007433700196012967760435857198639498339612640175351383009881664836293644501891355324104311563382228170830471129933274178673804132237437139812398895001351002604778604272273993242814360469639888194130743391754074455857877687138124469028131948469746977279345503513571689468521200938962101381231342237855158331360162206668281993238353403698713101301286899813986076768881873170884384499446924297146173027265331726536025025811891855719123023650394290317951614527059687081342960263866359299116844005546211378070885108904668206067050858719453900323088599604581375305798049696115354444608390545824769064622034540796156771611898295431405750214925662349644113114362201449360224130687067205459380512377234563626525502400887097692566971777194455494237942998387934799564355328876411773901818890386232393496022159400771370538776513016301409198381856080251967488593552245810721394699955408237789152252854420794284091042784562280153755036820183990237048198355044539114329347661157898618328240450220638183504405285976695386436132366477962438095808462296029008747531613415234239127139975168511849399740447288577369031625646882396428984072734595740934146488198290484292603989929097600039930291357221065402697088332810242595006046617537608813399208384393257470907244976294488609851878624556146377216658877379510969093753900592192512805361923558121952034094213390605629951488515552358999448382580323299138766520177208515594544497105384824301077281924396049546419206395200588310371826737978391762160503507785397860902074594382974940573250210299232278062092251351970836374103956384143632886441417327692387443032172456395713473415364885324200194529838705359127431025754527346080954023123992452882201831846688780761657893919984986160058667080113414783002209768051700244474585849076492507970543244038220103937313620497130345428727640428988656958877931098635432574497684415541783635873491723464299248684742072809311604889096716976443650865203122446827451020090750687862937880743721898544497241783862491602284688115082052148300513610406507090696650246985989152042671984012199691254775883641058006742172321416800526472886593980495567544291640694015959443942833204039236904318313702565667072087333393099455883620022342716642216184488912806823347452329470463396680207608156976330859786284063099226681222864616417238878283180602431368077113866641050022979993299709780333061395333897854157263260597117516041871428597426852037480232999971356726156515577099229251233976060252395999895885402103519678560061600770058597013751551466301038815564734996483471894457372272820166759711958552598021202572973704376801077858568730110249922848561529471327247110120764682641668430951423580426630725380162433541934180959678432420319033678992930381643543807470356792668895066857811861667438665755036375085225127671040646014927647997118997715892735000215464037502336931578300639758173463947674261121128069197414905699632983277087823290640087195686258170945243697016845255820451680995823022354854799954839212122965359221912790333541963004716360105880234698743074195761074600815580197997673647197870132903485196444652635951562349293583804098406990426275237113556961280886669751629115404727141822659761351056937498563770251886142045731955830549405554970217343964365575591409195420428704495361799757360712175901888593574161576245757551151069640330336157071919021173635160742182469998728674939117787764820202064137246930988775837167148376371928163326687871673985656293346278286399929491870871369253420598393655682045685977818895530479872816682513825851871507480770470182822036145715278964185947626926559604847535042820995279693294021765539818138904203472211438115870840376085750656116951043727225710931130856669611510827886569860738802451300475724921992914382712694477750909023335175135118729107768638611921438062543256173123856285449205586806925312750429326385370412718341070168349842009372198005031284779491515318721859297917579385314610462932805127369695211606171650122102161653233918803937766571943785094288871874696900516926061932739219286205142036343545325206078902970585502337437127595704217383053176678904050177471506561002992748851428928403364204769530694081462579129823403294550828822207581819900233573389724067732437172995142431596630966721098051830053989268766337032919765675679244544645878090734752800909288036958019803773120284233059978085366963296062795979229369895059370537822482113829710946610451733102252137760848266798792334696350573228614090489752649505642785178059248989346475797674292782333550584074710638015195478479746537022011165924128219994457567287653159294469569752522879603455236709714695037545718294049166989400297118080071426841244586439253178490944341636767115744513859769424662519879090078280545767353656465988010700334451653511825030380525361094187315533294768872918756378168203011693372607164747539755624443517175090136370409465958664389768311195189808167920295081994860004087687762629535949831681534028688513191151172387791739784386270806724319169268553619783421772505120217111353643301544644624599682879093428359392638366824407466744000761300853579041599160433723858898565900389772789891464437040445335531714072239406745847452247967406062886029465870315400379881697529794780526272823814733991423579508942567614516466773217852172801349602687366953186718509717005041177510866892317759192313762667013178102819543516761509537050869427780798973668105643227245209902653067606240249868769111025404634981908815332284798561661534222966745969073985514959404899776661829404925753914998369188528053341783497040769067957704344465758319392796910643397900402940062635341878623390860278478748269007734112310211322791175854899461854600747445026895082491760214002702656293379870174046531340106677358867149679391596455965881568007981672243497907118791596855326143465553439566851432207949401959325788670768704846540233537999133153388083490407650211927672891267304353216139673698045191601405742866488267002412345548090497663401434186867357535419512382315085227609158294643024665766301900390845289376958646520326635518590466274796899922205805128436539005236141826238734117950328444174889666410266869538640651027887396204924873396258909305257954810249143049586082001034570524650164889985401223166164560565058320237004890840969926914346658746022265928617392550203661406156106963213143965756710222475880574224509863287533552020951087376902371230168968031483417375707147445786799621338165240750910583301710952729918467257182897749836329636626336200099801190704893876185640790501247644993438366585547340188409529096360999472692807027631034628959573729398895114351663923905456436255779450398620526749697396508363215044953880064798232526725910648831868331760304899729021590049958974149491136887073483613962252586684028292921652132282110923703246768378077726676678850517010696830517970130363545425821435832514805150626641524093701272319655992256211620793500739647273071277736589349174802781143958619589755997188128239937347393190854915686766519073136137193939769674986151776138403225897531424383724311037032824834880359630383666698374269771909337948754705344011245474736680693556026017975034356055565807513641302255210939367159019310099163945197052226983382949691530738278374291692803541516762785086692193571604896466740680037151697252116655792652785020126268178486860494569414888256038831294338240237560786230622624803058120927587038405010126499136774615541431752436513684772546092104839747137098396787315249495929911150630385048189696922927831852155153646607459868643254398308327798674508597253704351497776874420692486753077583864161884915390976827118718138576190574862637000151171270708466656043327081773673216284215301687366697285349631041099060658506006133998508695357094623185933680426354648506309360782040847558830839738729183757265962073868556337109313798442999193199897693838997038782220048168841497977536622476909156295223537784633057409171252441399030171030223008622730794815820974157462441516965509418635718824630876455934861890601926640852663868310270424513438015664982721627799447206100669503529859870923711012722391350667487390902992933644869117012673876922814553806952969634538095554548293639486065777387681018213593925895685143459949619819734720027691076687354689888141979255199584360292531031618204753506045489648307333449495921662457445099455898847046420909644100828202838253613845460359968244603417856240465518443571144386475279015477194972261672035568784008064626777910739951581594991171318316350949883242936387029127785848344980095672765025197850721331515030618454508007502409268787366645618090674091515294579876354249687158042187661476499803548556996173507121165410471493947399817133925730589802396964883618338905103916955955250369420238429744925137946692268741975112380281461920370933885196384270192047139242089598716646099865064625932234503765960799088817289671532760744007795759070568188962677332960197697538575906354180821350592671038949040953904091823844782961357820181762901422628744991444752420633150050051139578312660181649498099461490848117557256183626802868064609851610589295255782809190809173828899392138727298529932549932659748948570778717994032991735206780783598792697957357001245802960886629082871339006196939084591691893054639655803691071583312662938329238730819439066273487710166315757453555323022748755372471811488420228850974524243308454531711460593342250716202554024925026718164775725325184552609520463426835784510822283267503245964484657939224626524763070673587583084234721539120228885396899590602428256448672341660010977130489095637445605843190430082931195010383469417347224829892078059479028548503438023560711645002869082821800610804845051125808613633507246636766526492913444972035252182446446445869172286837440734749524255159714487169419259103101189561993043255784891161442486158046659934828490577659307682906060948974627330689942407261839708281395024533832888431654993790334018508437951272329441336011585065346404475093240314241270121689924297364757401715721747554096666431887499859007487773344188682087421753541360790682749444498452166075439605181191495087844358542561112639115402584799550287999438340103301450897009944610434233226847655784898467752949779611805900926966343659096316741441504631039728850923767547343404542486690215243598691272678903658493696539573942564389730780633824159809654314134513093718468665049483674181342831170690649671386447114532253356736319575733143190341329750497659815428025097084669039781094088137518906720199993837707273470324424327992068868876311981662030155212578309134297522313806600828451207684238326059806103419667569806059467549583468536562575139345362602269995980758160124458198117591014640612796278683543639602441031180161822424516788828690180968565289023816306845869503988482279552732008482225057061834396930343027771691258400777296140769702014230009453787091370502728042466233837970797720127917737497169335614826042485031567686464980174625925261931989663299355722768072348136120248970509904779340105643849197274537638526545986996120583804708844529254873312217413656250381637574238335516236431846065734769194419720303990483575199308062674144898603393140036395141582912446796482120270666924937349393604731876810692368746489607290606901624233159818404639975135557579782551351104460052756130497381718760283599573932875022832707696019677301562521796561977109613065872069452556999866163259640899798056792895846330196960732821289479915963218448611501117234524797317970260583738087653226877339127179558825797191697088245706943623659540379370091666901972696567252598629809270557670798844286145456365874927406439017027226719410305100170163523813077809305782618486888383187556760671596574177051384410390699455942130766557902486940992962697364130751667612175784503389879393281033615391217980719021758273012071100482771146096912173561253404822400132849579068046241807256254598723598652885295765208219807893699164702933390391062195795542288049536707673633309857349607241384288966816423111982765409831356706539176974878967315227038808044443632075917567899463462866533199299943018179665835043106613234407754110249874795638143061905481782941560996234494675521102285450726302516219335106100906215862643545492844039078335008408478562460923969424962832272161723463933541004566764705094553104431105128778876443816526538628543190317855385882449814694411968033222112826155397471447732970205924839059307748026612710439599078795775702812004556718954451583121207031711846805370199660734744262585578970401306952969730654947439291223037912613193469934348505953867649858789549095081316361951964646235075097358972413915332076272311577329836956368249589024440920160351275484507642929280347541634936420529050289958234212283572683444071090107720519755859752209769790004764411113918690330700882934430583211052713265298010789301424811242480611514083494792851237035520155368214897745695341297631192314997771419626860637283537700121528665697156121015454766236458669281093065805366937571195244876737923100733164107557914684993871526922111251257921995515793909175244901777447701693372623578533342925513709361200792570552526386616357654451414798835000046777005771230572016520943577871423091412278779058050682933471820552568233569994258309678738818384077373661943648611471328240996138818374962188382435711986314984868329343230136193315950559539829043672731754266708996353376359451130929357847737186749334418479065263056330212167207173580846085736039986345611361128312104678903651402450313066923006431721086507926353415612871152284645031237120249048460273252410399856554687382201620398709121402341539926787638468955532507985713951786910696345061808507294392720684526762294573266826268186142498793540322032457336234060966276691831416798485593593824073454369514475944595820884980715877971575934589697317554308406231644665097605838659487490465880138995148051679327779657461584628921371782313133667243351847729393507429426581134959989667362920404957382167364157916549694752813768963711170686140276063692560133345462624346260031766480459667780563196818424071161617918798066404865801539045645438176547637467038157806764729330663370090214914746226085621189862383181013567429051202332989518349969570757705348188079584465768518506493849183439331367120211501492420701979952412856399873088909177777811348951245089982889907817733692410739712626771672585810602571446335993209233561144169090342486449974234043015525492355214733285599872259911558287392575729309558057298818434850066373847325101305484075514700519897807182776410397063418409031748466023634041062097226453537332554746949920728945261890781631498402606807777720321289046985799367113279097842416693335664192328029955656560554855903126914423449027384270989744457935590520860858071828227702157965984261380452177512223164555706607611003156973535411861429547338008115966392380713026139392318232240099251902705842733707586495468080927462846206879816751655127795292831988684666403072725695795990491648811616973589579395885215664014180702412298600614276262002864113796791737904075155590096531438428493345223252945181336206544790966452431473777486755396559724750241801874260539735180550016156613539030404958773929381034750986210942378102611107260631283358711709963963437385705941486156468113420412408029019907539753613615934339992802754881358068109793573710531518474481418631084277032184801687891083813226698512267339423894041334624605147311785216695877178437481312217510385640697354629457477996508494179157942758973050543293545500269660530250382150659715219316441946068889363998588036264779443574517532213949006479490508320082098284723963062520655614703985837498388817093529261825044139754243905851164029367891278080407638299721507624916572684065953674449248761147923594265008468186274820387543050470589405884393078175591715537960073173299588894136294521844624844669542946406170957646187029965823381569126198749087670761745176249561647952514852715200417894978985223364308060500244700235258012441761350856878233814282605307026102033896990835011505637073895208054501616090920912031958804192785758442853419219359049327635523191703084303509147960954847777588317597138488935583086541192317180674706095164773225460513218929414662794700128526607243248504239292400256001731306544335776822072966432687973856832487684456053576518958896046164046943928000932351050745883062203514378063463238031830651619177374939947156030962064113020736861765751713993046665545706808753111211419401290121055677941905629454975477259242019742454300002145754314585892287503292204148168154084615275495806739975834147654749723419668365344523482405904956380344573908734786787753306180914704724733881020310053640284853319615926899791997339346573562672277943122124107673894365385451934881876960630430665021395327513827216402157313502052172148700752099690202220591122561864300645463953771441526398044205713698801100247617754818528915272961342913834068083423427237231483658119919825612927584249150694215950348083275088489775682008791465361920201005024993255621799249278206780060511802461836076811768514586172075147846490436371013654968662169360783512776508008193384720980070035417117364191826740742379280299922652965397005604999372515002165236695739169276576896831467993479971662358864983027060203239155247997784740455878808138516333604321570840061778569676273433131655292442559531604292403586859678257833765742937341934264311357568931185393908486540171570099045917453999704646015071671669788091233279460687423577143773653209148550630449744781890946931564295115887830298846057171367213220251764664905803199159719929425477178764213545574814701582689148273181027758128866322462291583474877595788973865697274910317412544172319525525843050814514971094113248753798261617025498596732931336228415316387214244566932964428587731406351979907450028114704308569663464774229637354107205866897172771790025444658333511173814953469000683512116244774011531351899185107316423860076146331628397768430378422504279771863255880544620098057315566742316983389974577843850421990359473419374114538592916697000337601637992894461358156926501554408640373047526812360121969457381345575141071703692256338573218179493970281430766922992644309301937450775019776531482343951041669699558946752923515563715788711797975413284497729615252295995476979788283452039058656172280717868721610405513457826716041564962228614612647866141448864072603499432129045263152988611655372623892741342200578862963705143746402070898868128862964487120454954666534318948558248353160727394666369945804376010820855070158361611545344256579082979179927895008957045924731556597880228995453797436257534551538886931250157123413335644776130256308478424493797286999971789335892039733635651755032219529391511856555035864814354562868457158540509432049315334943452199224591362806124504738716513445084337967328205336668968328044808844340391718738260578297868797793863010207934862477760465338644316823943276729800787211752897806130510050884652218824567580414329666098060545645553340087798621022150066700926188378792562202418747784110319929992099436938910617486276550867139359668173771921034843815837014865881077351747852392808482254275476075652513177052661591214761917832877174701484939760993404280445069272889099689978134883775604411232219193363539374209300383046929173924789549290498291507845550097443824961415690310635060467636521000927051622415739398304749957186895258787168457084076428106742830830060325650435519957974714067898997094460697640731577371568755246257664141324021531449267165120148956431870676637255864171337770536281001644965816557044983320795125143612064264267104598848394666568337249332095202653500214533714628052257298845903185116819307430178745331789373527063849616426967054169458454941127449377295436151380096014750863275405538390446683021811391495006299458542421006752220952668094781163415253310647380636710836278962694142784440876024974559130303996360986084476084833585651370441862915903129903026167967726243038950912823939864268853150220890482312621837141426865090231885869979096423229013137283511141709029493575303889395335562606058552923768285975229937533829821662269970713568214752001701100005535205103347778902756240698885359771643146925560180198415150003183031089474464291381131661115664488958852960556927565159069998935901534500332104988095563518956908456690336811293856733208829948064676027165596935314833403937398198261522259372516199823129964289046255065214864066978376950149531273554103641563108019694735752794790668705886942088677384767040076001756135164002447586268678904335127703420406138662466024650315982840798152253999956590957771980362372033292948922300249084283275006175300842311614181224942746552758935460207670006594035786691349064386665179164331629285612112572339732684227510359577330482719245405608509257983944352775170276987476249743181073871797941813634649915520870043939191187270123735383243076598221706747976409918691304475775888638728784144238590686152401484848519951198943204709893151357706776546255359805185890723218912533003454237148467651972842000180562218475106071464740262964205763743532457221968573349741125184628537071062765613478049100165346520675462105030984018935644109617956926212791773736566686070929392240133475632480349181018275910189309453101061269941029695354169161864299981012923386769779981917299654438016374804396285262426967754338064883308948133866531527644004050138355291199486225011758322745918659021019348736165763271811233519279654151565321417906430902852971499538057463396149271530705395225046448482869126744715094331984770216245501200896596627395436720916986577265182202341306764779572789815702334149946300469618154278334476611715925052058064175494655809220555393441354363159419470412458201738354422218136778563049092826282045802079329094454390526125046548150243674672537650414297128221146901318850031049035385979314592633265618054880936432244749179456567463925871722218936051809697636366052333962398710476060177584090993111886436283598847811761454401749922973557887601498263634503927350395852040903532987855966359414352128817322468508604550341558164964392304419606491580069767079828728749324996371506415165038515934528833917678738068758111045554545941141800856476762239018750830628064212756691500463863119814481734012452599899374103001329511725205786288733583675299648609302590839359190700768793031614948723566885020262371922232202063470982441127912414628059240448772309020186529021569002255923624165110676609715886287042764150296350606348440316908446038256700896969566637951178772890827967289486982357010473730094798737418194753509780015602489465289006419374199020632059576188286245987244000349997076043736499058438124816840938666453766524809764657255426334515612774197575343718146564989340625400430543731483071915975891700298269225189263225315961813155378833843582160195224577423118795019514922600966197336711732445527814082933570677697370023747176530446322907826143477650898790605839745196582122672330460628761900891885764462562098354546688582716236562565428723293085150782445418057455149092934446227548416188708543160703739083740763024877531233709785606246906028163744767901085172098664990383464358120066351493596767827353644959562315752734047489855196260948028584574270182360841692967709244603273380657966891380315557157812681315614845863773616410622278059353346853658808851118363869569201821189163923117729963517916199408715260819277983487720837085941308538258358822791612859079716072451028880751765033898167572163615756818928959431601381642670370077800937205848548373399124448283495493854462578104136788297756424303876847063736899828111849638633510494073454730907402383589425249590725424670103625110705040133947347466016041407207564050242524259144761468483855164342468172824282475264585844114402973444488682357349125294480013445993887703481070660684697145535476905555346826994826490524134569601595892689031313618178161335410485681065537955049541365966757857334587121035027944776266992582953081763510663092665318410900784284865973496491090587123764502661104281971919556850812221650761641587504896085606655170399969483353804448544965189847602940497443532923409986078148710280382212470288954553979620559289112603894133051526984561061294250130668436339420220545239245287158845900197608600147816709008903703958875004750542579467095067351635736219917346088031618414875527045638982266594359313111495745196254023115270973944880516965410638306241679648087693488083652573177968165998964613842167911259237783161942231033629822790643569187163587014117212568657412856421137587941302703398092240349911128379004566472103781012180505826211822936616263194344659899005641347270889309029293933093182602057202026749780624163924454497338732632257440980181227404642107859323883677285061271822938337939791252190819541737328048119837627820699429564452114833190700700614680437721610728851334964910806104689966496741838766022896790765376565465131638600924275043207422890422762379546479058403632884255187207872441410259327773315244084321922391753148546938348332826503562607925345126539030829833178655920258652978234574356192044286882277798858663592777272968933961686427051889081191237113164725542071918069297649039545620114923685070809204886476089397047415159961496639406967748767782141757148479544960267025688572472132033098762693438470671043196128340930973883410315111431080449477634966098455497366242542651093979587984705157965957446582145324335525135203739580823359268500975340462196956060720671996683369882741249053891974034149784347092284587626159382940866093549631478690626173251492175830689351173219955101306525365500153501662631339318213057329411848962306102897189935240965425806694976023405826961690937281439981601034477358951626981249234931417989525466411935435311980295868167989234557281127921265101769170413973233523202077563903254877306095373966080599536199060931894041161771337700924933237712948885479960541989935308468848059117357249804069115635270594855386093888818685573750076274114777075824027943475449713802277533286172720413857529256069914720728018908850948507423192169302524760787943350728170765924027675615661290917463518913771389064293699180979878790982913775138339462267003414372180611506272567773651131509837327085424744927609505523601408533474778403845114313755923375389096575537626003539956668354304174774446124592024705892014788967283035914424335648801425065241903362639889767277370572974558871186042147985520374832501980244164759842857511093309903550173367525055149457625811313472225195320952648765797059388298886141620894912894186539533291424550949270517106162947065516281682782780728929005783201703343998215333904610167020285750351611727649770956487171167761217342375679998339769966153625423687329730523818810911824059423985550005838574036664426939283265314469052970583337734058417214298982553562797406999900580886098464851326867370257184480411352882907426234812626726112072635644677444458121140095223753181689423103431721861765111934660002216302589116974957069485956202981102499818717384201685848408185636666585835327372046339315388614822304652240407775497145199044513256065286203261964925944481060293162226893037860758573223014195868065643811791754081148500100065223035235356051493579450148010340978752986746146632222808420321450651993662529558125389078215075586484227071231261995253485971013884235433141096451359031080878022624516561408530536719974374268696131478449083898860678256982513852491530687756367400665068309778781749980448223204843280018432969080187692365063333352213157068072300293233186725242491989820095536379237761737306497877543796217628901132683631646692141486092550574300285541163357194557041806175916545672486522954834352783014041541900187785047511771444405366448561536595678921506572214021761760539060893837832098934809800569609227641640271430762718931177059333708169251330617543498411814192498081225902741208775183757582459866188360514459353691341422933312431838008522214630470759360318818368015851710346050119022501505495252020568588346861438766584815489278172360965743442528692195800416557447042168939841602646708187437833095855835393981934000279273101038625049738949267990463587738515289421546331554377313160629559586033076762027110835054610803175734902820876199798476066550418622205915755949896503257405860887020472739871973871409265831848812293369287204561299580460772005300641149435882113584040070416284110951739053399869339593465713385462818951893069308255900994383071150614901398814802761781935187978777972060787648408523808313425813173421214735478107392420905187341127893942039231947459228502755519203896687930165938305042624381779577423345343324786080560550966862202617199691707425904559831667520766471180593100022137080894894793807369671219588935774775634046600830523795270227170391195175227550526050664979945186795830828112050722567557623054539797039299030460369117099589930651838813769086178985574087166254325592443383114114594106138877915646759511324024388847916036213800590046072916626748231826233186784997581696376360219414725090348377286267972584201834805620272476013515518052774572589931386629845641899019036620576401324107141078921624631245851471087025722558015322002414620128370122418227219633700423966183944415492252479933463464444831448960586675815320451012466433890161688076546108202706867198060510842650481855624253158850518967599617699516022638311677499265608718710044011794926351236216237159745329493943051919186214985541960287097586295624543730800253503773466228800340363438736496824033770242198410668260360175645669826443351768304731578228980162527835921101532067978545758056927681482948716737319809048488137337924531217615605311277976314685441650840417407957764613388575929956278441633550690747110258633625400482524522551282544631360705310152456019600038997697801797416298784076136231123801088648318254025182775258841967030822855571146180728090162419720394154954274210721802683891561732697435353064257352772270419829831725124577445123762980491893946950294020266157921394286845638418750472534623172554082600617326664084440057980691524839359296041246588746810034365246096945436497090509148955489943786364825650927750621455870426546359508232971320331024792878297208795387601520704836439432576855541560505935522452114163472401900217857946596890677184440883574374501205132791468450364577295433544083624126792556485839294714901330932000929784948739856269712994510987845356749960736380396380240550024982313140016530903850132718427135485633483314543836152300715098493155763127612486727827340503753741906580543949101102999729227047333085597117887582744966340987022298228053714260586051757326623719097669956438073699582476621500849819479788061331891701396878452940276080302534181272279785958606418438249352373037332194407726253576874694395820174785368060946611660782572015792944703322713653557486953151566839693668979310386054424636107493612455268872393756258449056966426329919061816114279412282714507020475978435841367400129974279024806207945041047793709657274352491308314770687523528535196235633650949283951400352505997232477568012817771610594579334506787639864778760091724290658709279213858615324343388996122090973039033601172208476248370455756898814959709715907515958801769751176704751678844237031228296202883971008005644706184374744933750866608364751068132694852758725952300047275858167366841296881829509300609359946257884506879179866596248540170278846586075473638921931313050019927358262153394558039503057085597919168768711161806356434585116839748741535050671995819538579229304488563318395889346874005186917038238972419115091991484991160879589119941702924729093907276659891611337813063138082665262208399782026712963270109660890218326415933389500841179857633059123420126061182069477064980411031999155493285746075226319344337325170553380103336056182360176146948471298168494935114382951673678982001287455487673623996200558714771055472480144550306269550251195817770601912263705881896645666308623156861559603877727273014542324050136589399457863971673353173125121412776605712299141304580094888592991180891338324604459190799149875500256060983703868466280069004718227217696540028269833749165775105323507444753233650756074037033669926558743087796279344535321258023679817977529525215193557376324224827218661840960564939142196532769460908194275846538725239962105127210777653563589267663598027948763123960333583183505186124457735530255548265328088968764045749484461229352921499564861260037694726970514481827186324714226272773135690615482262336102633438016568203214826160454288070578371109309946684746915544751391327429180419574284504929408319633951021784674149457191120218558341706314049982862011015885068966049843617894727513714137167996828958599686008814481091936677559754667918563121724266871269375801289067710801626290935364310147790019465020053742674377291308243924195926837607264516418709173390102143579760147812040239786854954272806324320739742989793057562691437529602707319685366276197844520704009328100118667552684992380086295699270657168781197704775871989605888070717248595727784454013041374735408734933439438366318856953676227665383906532395132291375853450876636933313898007813765941563398598039011991833938557652307652576780237453787386451375165803856931679256624453143179129203428123575362566227573997370838987204336507624715453841244583420612528087822813383167365009027503079371749068457147849776092126859766111781537176632793653920964320931802379153541255329391865144884111595110687872889834851417667126023213595795060619660253460840386633537820819810331102073826846978371430916544679790641000311769874256995255590941332011651859581237452341530482418987413610329375830867872761232063834336758592809808460294832059062191715931130552882357039341961461123813882675665848751067295093644034486696924555433283625272144375040732869693227824004203499334376000540201948593912414106564850532840443098011388115419156657899316822848038517457318544121729234333047889105462633520111667534438066069731696399155669927789561529250804725538147169740839653102375151034973648482897088950372261656696000118339154404943411661657567856483485545483926969709983254507581640844064627349533116152035899668700352251342309492833728782812768799045627567146268565988897721418358047057319032064592135186582649132826184184195743411872573861903975242830372029558200027157152001224647977856516262624901588334734719965307204570263461052350619105665318722172407652860255668724724318567294305586349600525780427246710941398159681014266958714302903819593578818994745367421100548013704531153314404032922951258732748060840403358451753412070036584769043673643270510863296497597724490059527591659315745898691331077688306543512314864429293559494434464088919665670680137859313581743660314671549184086685764494960915229992505049547506153710226627173751486633793449644606829676865980658341199723038101344774890210778347169978505429411827084489621067804307067100702406892942184996764180382849178255805459833020389273314600242965305311637917966949332050749858810305489022445810536230144446337420623023681489198878536839932465163157385700398652408237788582916838852337012586416174156780638156597398544347656936588561533526721468871087876163887706536738285559883784783486016420523858975185801844137012222277220114596654813350891510021339886571314612438780395953742554467299113225376204958539687091938255457007320949148703441815699392130858459355399762928082146420784395170074018057791318906760138854629290250030473683953512433728328125645939765294400078731517547627632465581360204233799542617843373214196953161763820184330580497926926460766266222640656875017830523804371440371480602552650049840251955196894082575922892938303366294694372569498832002453877766314716473763711634878577613791839409000826516033149106204611215163067431933250399937562211045887130929361557045456589687527366848704164806836557340121827951583371452284120210212680105961246869702873419503396860892433668384779426284706756717935241269033103057573425079120240890831444941555922614159701246565522080024848876648387249395733143066334237294249566677972067133190157239780127570855608968076723394848205232485007534606489019875392803594394718627986661371821906237302947707452933780610059972414603488457618492513237960206524179050310991853507242809955237237988398985506614686704346653640647690873019525811865667660266922378217311060615287937810993436908672118926305497539673270740624495809478185396298662919338575524296533386908436981192674049258197113598235658977606852811134632571445426054753227798557196542441910646843763147263601391906023123287149581814047594534368024850337331234045378093551993410424931931791436708099125029790013346951603929708047600848950915930371627797729577050597281687066036023738467471947683094465640937833409930240304991832292235980364782265729249451339068138874019829771490900367620475426172735889750312519817408944879636537919914663988570674219799278894764583751466338894948561210852312477893219513802946205864930652330423002436816534629154536281460362817463767086445150852035599593954441038202489007041523673118952177485270017740303482251381939796656083117936534659728102739320908399408020912449780803903555517178543295726782187262121646252871544266127983658073095952007030117846993030593906819570435926429904658531793323669158691454812669087565191000267451723550908803937789182523510561538178163010201396413805359430929134458787239865691123958968342457752080836853987182299464186135832831827693594828619468703889715027598191936207561273706620170626844447871060522711146452305846918196128404596942756647495783857930810715967863299535804082439060945337220014119845378625088394747730087085432785331185203281871207733713720211647522458491723366865420035425163305047389435074579499375673112675165926134623061130920110396149080878248404271920283112186366880019108759167619585931704594891877483560376211117949288746087735385563703642960870002108714227992934139197181021911074436952565136931671525088791963550740359886327132016122100217423154471432880196501656981022205272713861530231099340133771103348724801650050309713110632585086153133415168882981976698944314205085260333519608682126646258883182459085287415981984010369777821828194099093282793694542433707993987075180427259437355351064167598356325949958438843082702046246535635331957586890726350105257184065839542676358938644355741811373146799973768032727670037156752417045354507385368521837913241006658341918191677312068172085066712551710884227469825201698691261995250896415630338584371200602421992428395190462870214450936845237920255332630884087571254225485128314516171388214106921759405433270664791899816311217499280054910247317904786032941571491975613787300267104307202848816508068630830910271472713311998268261170272031502608510203812884930141845422470630614579157839349906824121275866722851646183889880887560855558243534754315980970609674693602668570701862318245783863166691996577095236504453476356025766663863443354545469914521012119357690808485216066705766823067890410455269220119568359730175259681234641871426568535841954694867427945390979736546395582553178265736144675676385135777159775712487546079425142015061834824507922200378637354720985737684525394629755649576327907906488271513743603381023264670194550245019509454135455571760653081099172708831507719866268141092451036256088765251881323635541641565591380138396671794613352328722723242394823576654987246921428997297749423150112622087945267706497954733460476755678544752013775963454475956000994703045143162303185568122464934879398559387711794038657068280976330805955109142581778555527919478363406936290031953877901681764924650668634609753851211277459377185472963070450030484761725101572206925546436339162898412067313710187993570630567662981135518809883319723649127184306823839754817934256236949216506947999080534052874119626798644849639703236189976198040370813717100339131636851210263652597061224116387238669184973390080120813578379992577094251083772598717326650353138573707643340288880765060996429301676031677624335309658072838203772634661599732045660130352164230331418263071861456328203711545689723317234525468912341518875923350223663623168621923263932590698701504427785291031749766241454207022609664207471822964373863358094973610585386891345059387588576449663659092174274006525941434658593837561417594161258493832163328969067356740854979954178510977078478103812275556823051873864394325448896907718023140730856955850392701627883915975595278910242365908190820366598181805180539798854808493141490825517230012176935174840348185496871541040713622628882394077756628205971531750351692527581198832761518213660416145384874173324025920201179585990958569790587746528349410635799869750659407839564494450404045072367399880157468111701922824302136814189277061088454657568417884743927600807487097189791095303875038818175406475341347746671361069023224265936395943526881041195499907242724955933518414161597694928138140003306825737800039788047419419311530759801548989072810974894921563213165406338951914069000237105610685184700721860519451309818843485272940234898381084054962994262778572544263572757490622886654356473289695204647428125434009274516624645304633768610918634813628278377491526748635605476306150778061781111134038928931342294532844423986026161886602989441870609618200050881737181946397336922544676418908395934842405300535870783757281758164738466401831328744160438930690609436957374433561713497299850821122973813981161140175012592089919894079545887070247319768290435055401190230374121447314113340361545725857129290026720942600922833072784444244033119184467654053563440659601471450344549936727717563146165904771182798721533705314306090691250730200369911514594182866455775957625917787252565839742957981589632285261060098008716341958693079910289409875077157837567914499775040776151009173437940731774592557616039155684561901060735279297057020914128181413074642952572434082463525642418354944695856267089604705217472153988599810205069283250877381606767734468377148123851457556411810907026897033968316100712513122126238837579385410977808238906460339000351415977265718772277879752578750154861254187776984299994884526230384836903099255994582754096342142730417754985837221853836683208941385650059769936954291872335080562527767264052138621574160995838399149932158651479447889274135100479716069847815065275922445530074562089325425385239216781503018924614919470240532284351272851843188141161480855192205869162221904577886780971847221542120829800642154002692048563188430839624856832766393671800643413200759234404218872462041324781641172116588175507938354495952397384405011369555936093461684580004914929180125022923929941679845035989650158528420533989182831902201190799535993892612116180311136615739526413134595263915666613230759969595997657655371289705075359618127432361473189921278350622202198739952197435786354342890888736511361779902056920513501786078131229673427671738117994040664139736636349910655726365046242115156929324744038691058009001064703048417674858357160101701493218428509122237447827783937118106823310373863071177826916217182726677134530154276165698078107761315220088022164496217183909412575249147687812006891616583652147440220436834482180871225940944835334000370727429520795025643617399926704787959811065240698488637173444322576919059533565546542917055115308944548578328522709721636792238314879308533910543324709433176565259707181950266289947163000281877725731292844257695401640352246854522872285904988200924599940342269967314307041177320408613651005257381057879707303833976926198875361143750429115739665784710581251210432636478888700425312979961916774104304736977003810199839318527850425948950791806998949382577738029533877229295836695454408967986316620273771569091096943613149130167437951700205620626195178704658260909578914959681043093129667686925109325574602638828330703105817098626232870232759213361161095733371161796290103958343100056404844431739396390505448753048691275455254258876261861839073378634139607925637385278645012605189114487682131602046356556097944438253463770144123898106075893761448095584527339663266322876765039784295071079328641339268686250772240220014661590568564349559382693696774664966530932296315307017183064462352166633077135082765417633622982815372334657948137449158804535859703137611697169055741185056710230274181510778900474933653507221041610645019452930305872855418488570594213926661370866921891392455610888841291381569478113765822959441524284468085148408055441920741127735062757586036411044355902055510467879419423195618809352364263620445238472149561700940234633910864648487193427029824862835917403776593259133047931717217624601852254670342932865144834361478203380889625662278505601640921914265777606846226590520637097989390367664530942907924430872464090710128741349785918488859672837575279323374128984842692296698074311961695097295382233660836642623475788646558118783340315053349731879304369348212404145428599871927852354176843346434309753287603660946566389064215230274525913934806526906897792507614308275766995487784588991139533990542979951275952688790023231685723118083674214020252755942805167360050443768424622082322769044877817337742395656717327053179939340449609620107225171012830467869264301363312204529331734663698623412221626074320426810555119645690928668548914623270970208011476660658772498691417958522506811765424160657607910875567239618218499741718336942378489301128713571077446734952690125342847112328221386072371362155525172138647695014577481882125766211227407951027284965152171321239734123617514702250249686194041031142214359475924723583197785732148891278352706905141039834312256353837533375274949535466079958166760489783889162206675737928825106446961403392171316320856428483001986562793566204337965782787859129414786151432570651935582413266907043257125986721464710059100515190724555674701015401599250538941262800622079608955414615135975494907402277373891109811089871023934043813909286240085988795108794297326697503380844302035882714293684413913898455659340984521986384356490823831296036898588792229838803260943078697449950845096118465413340222365569517099491455682884332182801849319122981042802627859537456445574585532714697587727976829384414041398700134709883736556723020854064325165107439653725710685489680841269046927948275790794038551152995004449385661587340527897403693844463416346113569020262608171820568694534945115292824699733135866833763059715442818540008390414468611047647573469027522114896156277178705553565816933099021118413103702749894619604577002973053383772074986086537796232516333313221545245445611471817353792277625822050064102736426734336950005604913054972356231665520394714544705476197544141400455479461857189397723202581596220548379636753183486449193963160543194851278976224498210903237063431450846312778727704987090997516709212738741279804548491543038215183398793692045469530720572070746797276304402634727102866353243790560627543560022213538565869523758479860923939869795791065730407892262327360319137829958871079518237259404525131082614531950843596061756715664043812307102004269807702271699678302638857675617483945836056986148257162993117607302995384170953039142515386305409058096016306445823296492688420154423603393755838816916584913164748510614986796223319916202908722488434440274265124552324734338181689348431336035329082528451002200198181847007273238280159364588292804088300936468376369355343533039057658831185934386604275819439332585127539868664845861445935136312567839000776392680621304981557867584330553595560670521431274858404185608962654025724041323763521677399863924995976926302511988847062098873365431169088749490970821580397966397716220050973380474503110674069763726292021685703586166117377909020407631407060372452449616203254219040539128824566197928681464411484367830320960387580530033852478813224534374415009531211867587402376935017469780663107126675853017593938589430844013729692414132027935308560551403551953951911176906342356196929168531166083439324924208244314019210852941443053701223862121353271635164578332702460623151753041521781318558374084840862103763852391034621718715765041031545818187706965842124157178020100895873930562926697927633924562145276280347841918211693903441805589892013433256382192211510607427232170375132438645978973365966170970215463555016929984637575240810600604941519264913913274377371016749033317986735683265220993045637030482310365992409057429762562306922622581368686980524182473269956048385965465655006849048651563259424063847740966776299467931682446972372230427942980371943645515096745555901395266684384643994610990525108440005403551530751686777049813363485193200778543798643596545818179288541090059610366287782908026770447172548235031003405065964596666956276775483805776790753896359346503677854567303736885674018160439054070476878242907423753771671369128823513836444881293208601724464619660890706332261294142672068218792384804248607755000597782944542009460961020702770204825490439946690266073362223417636633335932640560659572465646603174693057226008252004885853714619765745456234717500916808812863624226624029259696750775654012986208262665736371761632014045317999885063189173500679197982094340582290067739673731556846364882091565989171855999000243637177570998875989021123898689569219484656214539208398810135186489879613475336346993653052412051191290065432400578164040529887908752727583198064715249665064092832744499718305269762535066888419574993955999304059657644346221352819212405362873699062165500611094529755921204940684604178189692749111296975757160379262328822387324671785943010477529928130080503975446454039737910063240757427289553525370160346141346766998093388536507394770063479832271217599119938307200565042644563271833344649446749779732930203602254652216551637348815640672917848680556208038739570846067051568493857785762814560838392681384971971677035563271224991838617089840567380854645058270033506904136365479692504108618447039542310523611459091642440787912168362519016947682839553563645332381023276525070201375109273403591344661805719082459477867055439308652022552181870860703261589776430194090712122065953846327693627738840380738607541576325618448834094164212098633068114804520364647598803199849604837431535113115063862405637486452371662841772652203226801088656093680123205788546663216125302602863001947487090796922751752505861703310693695745315575137454681573992370599753418027943187782115126536006992399127662341170825208423125791966728704725431217722121731352629139310130437883125026268117735995130112479734295909272532182145983636683718523687783650774949548591793054280766675308669666931890866959827123128855205167933979560267755430060287910475698673453218025603414119928848793849477469000740392354479927237734069726539559629251620520248226543184835638543916774481347996029571635752783594603051238579317464724525443437207319303062656033946598704280291087012379845154017321855007775126033408612223639910537942819539180811996024050343360660265564689551051895513051976197374554714263889471180739067679086462415647346556548335439252774094516454119006748220013911812001956893707124769144683448352685773275665230579113766974246495003015722731160290040156390540843983123634661788086990542406865231023943931113889578204375980190373634382897625758381434501915614009131884820236963409461870216188576680322721520698556138975175139067361311000227349099559828181295124271869576335463699467319476971758820498309194380027714328694970592639377746408836332173564125500693584469795875044755785123657692203232206820317169468350283075288889224023518495889782929360615321105900797126875051817851224171292248933411914079369000942060291175393864530988239135832894017687066580734390255500362459616460760610333872804166545240524552150926065684463137878376891469220501170776698410078857551234309657766213309265388393010558223806400548002161977521244572890882485552488930215894983123325474951797756393509982542116351886466350030404334112841744058223902725289668018046984587089004265748038406378283903337943412827451278746494312556238051129363541585698460764670266793944918017051788050344032055591993317215619755006110511934246968669041241841903567725380871833877772270081956301725797867592683932903737065888436926005961444975741886269636251154354390533707961786370403804135411237634371967616605123592849587392826200324294885075784326472369676664016826147455884277300451924943103436710321705934524405221832691951967886286640221319555027797460034059161155052671459528256926198856067409826381783053183403057613429352482144413696647488639596267070304710313189977770223045530611452514047630739356421141007540636416409410943047007019567043994045278840112298365560199689667057464059115010583037229517670277789722935582852408789220954093853676712008245609386724994434532707661317168163441328331818347391043534476545615764714146811460445598585408791122950930553897134337857950852477948156570289569379306155473978119464398289301116979493951566948366513887997786981349993690631663918236583100420307216257819246440214317060715222967572011522667651356262662654966642787983590568641794418360195761986773088417193421929595648686045606578938529133205808361903913861542908221094296759437239559210752434394290303256432887710424393017823139539115910059413468438932938149433669428043769331774427543654658979028571125101734330389567532483286896778793023204052422256640833848377564029062834790405736376339667681868453338839204709943632144026533672779830337337245026722931150127015466862799019674984767718325304775397381813760703707933925677266743670275208140478252660455050380401822292619919303901391760503127234328165917756919312445903936141267519247967510610453329253013038866873271856146690135544136183150802968410811142851423566534914932037938201907889976665335813776754605017547360179659183263991188580353365224740508667985334280408648698401405481386574276427148878276949469022746596258399689525910467010653054557003856113041165786361997716425079940405042891436256428379696941719605849395051854985485809750848792370047307587974599645554139433318114702331804713301341607321186006404061754436223624206881886065479164728821158002098595943632763209146452299223544140633551434224055311878212421555399270349310395765509807900923193551017125353910309844451626942138071059056183393950005992249179795625676738106899819987489851583103101288228987924099501336871007212444281562868325143026862903088384904350829994409205277949614720806980286983457565318988205018178256596124526073629072123468623978635778828536394487616356338812170947363186176104723483331184811124482127701058388443043328187121955550154669574090459491775529940891707483892392770111679725280411693662815613943809454815565649681777708023519192776071873527329063209462704408545491557169157711223426483839293912772843543608536975172954334540423623300138684250080547956994955782270243673095848880075644644782218882926020125918219704916949966715502135412770679102745969727391688247762505410506809791762039802960303339483080580717142330765372502635916479448625650557694449675000613570020881227648328657941736950125204936184317992209761760504212634922294821317856450969498297750393793705439150793881485022726916922536626796119166454981626708212730978993204938758735355962954124755588160722267624220921944267839667645588422589765687347404557665150741562329302377135595590831729622863255060768096205742187598808171470165415238456500123488464593795342131159891346250080151033868135707011988944966300530093434854645289508443253722391479151707557716533966233466588021434016669015044420581962166502696167362816808407675291697220433924902069091041940000774013240055750501614913377512964377866030856376333468874473939702533710336147004750142158206893664148628293518312442899994691412078852448452507123388937685647966169916237818339577209395677468921592284565728313624923087437681134147471652325194245958835217983020955631646141023488704765469219860154767531751546820444515330251401240673114216086188662706344873053462410754078247980646685553018285950807962766338125508309531604640766876035861654447341718934518968885872391590562309877190946451204759410734652670306690524145580167998712745321772228498990959631832405316413906640728631303577347276686507357577285443853593338932876713121448827464284896630056224961785344789432897741367167847739773286633590859322540753651709720200605164946221599236689296724861110488415944903341126791909262864204303880381408005511902333801164833958717014153057753942865907757580657153078156232908697313692502751852565057163298967828589559476246966034789920702345792014432961593148488814808016670957005156903269353717218423953689698060729072497704513957753869968455278824690596919459790194930827269451878233664261529250967265362552622692169881638852172584073695974535384413056040965351177643988352381779382615144055180716954675803140697679426154496254849509286753614309534130512206150589142487521591785078169949331859947509472001419392754781065667399732699954723760363879280192053463290496699775880578817444411888822371029530060627288583152373069023749579774047140509908039772819873149293973520782823130158901154441113134688654113112039766532922863976550806894354266095436198419797976549212221272658029291979095437777040594757944768463472536055334279601543494817047059777830617800240906267686857687851920357962662821924724984463285165212102580973470810769030375007917373138322851217795787832654109138795472858300977254126080112980877834729221659935708575818905545439934741065033700032185735143084060890624609520850509905656802966925823222604403500274020753573374664070013031187105588686148079610016932187393748211033375047624321642714917919560094232782203741860476370645022935552753045412209023372109680156427788156557712785791980179111782739378376719761131352501500036158335949127860574836621729834366245479257599849099993266107093028819070540439146548936938274586329920806943261792243499304542015403252952856669099020766585593727159895682689910581851554157133514736294640378630801471711493283894651541683651128446526265877332243096389847177305798476603937183551592113783327022576477215921955107173882091781941927559528807724043666445313119205153598461722880586889521276301120056531528356643190269096759507000613408689694236200695896801834043100865422203639266603081032151995794028008623289991907468132512717405513086158613801005850597551838929776151980911266843582002303506875807115471682603585602420776908458521448144109577193972418829989176994013429491771742770131409599597671891933747162582191349619236719411098288905883465175139604778219849228178746651636229008738994976435096526163561309672800697774511894329078407226493593066964561993667240364952806481083034595579334043861577205527234427155802687204601941911957303256924759310395662942157738328816587136624262591590618213131242597010956215793609593278463740752174401054083093740183865123841910810286749109854971258116160938472812335225398519721159310818712939110919736706828077333294980074097078065519259545578502647149997878110575253906640828012827367494443520664494255321423503811258786194972264695108745453823079813880059126288849123533757622732262491474632904578202737356862064051333432804823766250685613082699537842633221607325505861388618322424606332535584910605109450834794786541348979955794640476550351622088451771708419238569546393292584307174521987540171199649153954337929534267315103005798070812800606364670077681538657953560624224967961362830309391986597400720805351234066322542365201713829624255002999684246772175670054911944114437349506035032337496900834517475922908305577082861336795373406258877856495077004701764027198304108858429099160152357283145796755086735143642768395035991346497146420887265826222196415504600745643235223533201036359172831761441321609883785594356937451931813057055662190347600853066242496985919161758877308627740745491320623513301309330746826409456585374701845224222969579920607760875806533428560936273196769682352117870211242211314684664669642377302124022785220713653940636663307253019041269661810833335716797261671878691686664786933532531349064751884631192771124291459102571014200813876851715746411216615686251175340668291944686875941568184558170419967105011768809136254322513145270619862329686663892711987819765338217259206035327871286443493594912529616179365672315646943562017285512141651224425704474554697070111635358272423833994275020007970002170309039496106637500949691284348019895292386267733603417268339990219469981260780964973305655811976874699481079422549200447666154129645290739463007088617655093954105900253161125328860793242586321325804792562416391990096864148294330673877755119840532106410839225072620270462417059022563242661526073729907849561483282948679803237490850732270619721634133059093757101526257181222472843406775927942739467553089754447139244676571225973638789815734869729712878398824120433878629125367771423203220340235817852247421191447965771621566017514844566243893446109152179697063634230895041574514243606355401236252664890695133082601270894270955665538085817242649453660676519575728039403017081374208828307230821643477948638101684550634956878044428801797262397366954870722849230910978311410028194880810126042043990692699313426325863173485340000494542194452875920320578919737361313411666705039307797409045861689833094652022933891371431351038030798160434658398974194904410401054843445292821895552770861353136067542697552553417488022172738983509594055649636367887388643789681338255938193564628243925819661410178379689350413687414421363816508862320135960836236823659240523373341525119054934375432970774871755675881348578295049167942765339728914086258092784989552574208012926658741097907429350083068014892068652322244787218780727494486730736369333465099225958120353528971648132359607161230661697062439206302826151239388650951095028591376917001060917660462395518084151972790996233604661585177428560732889554083085705847574770032472087859111360466228572258397436994859916575239565470171329329295364277080874179412930997711654588185297602061810523563686523884810997925931371827747176187448795715794284962938244167087208215232308251717688108750576176567851179722751580203059113504680023464535743821303747535961237550357568565582767782608323816945610370647276211751847865977718185833143769933674373079683455949059750218554203857871923832693310604864585715975845281090806664950220846330631532293892703834911306523323455745310455657209980298570417950311284849920298681302809177345038788714516685363668831124077990980427421217628087655844090795478727000383745222785678464958775067892675834204987869699036275856457047540624246610292517070894173400068673280430571734601558858162855832582117252945552703890842111582904521407056334214795150241344069674684688344730453857397760059056993156227196967784811008580249827449145904300077450224665224688942562160445108464218396662197823225068518066807595648102554431950506111173277232242467269463568079772327123874059215204734603157666246338981643818643276061418440121759437716714016372613653249925879433186735649783762627047265197786465395465610887726266010733320289081114236053328205634373922561023655760054382272287317229725019329202088885381203443570301496915519192072417049167939745339965980055462820651575467836433907484714736370186045858928013360297450613986091804342797166119003206259956433032346823333492004644433494551994817116749246533742131560728436362703248673167504133299160792208140328018376775472996179323426710104910790476456739708044611972887467180575079478759336440012075272344309903784814190946694052281771554375141317711606512713114580461807812388255538069849153323960739744172682605548307669047941994445380711067035083853231136268043540294109656426407850345168748920364776339005211405929688915510159344789740328320401794041919052921953114921343839447623785252390928735056988482412162753450080072250249438145619709369658871832493037574937502681979316952640734284572338578138577711528069971501165274826202643456135233334268403339060087902986204063688617366522395852510570115528564752357484636471866991876725463154251267254386142019339045515819020154033096186755199794575930319420371701993218107182814192399621934353401951512919238342640055134898891145708945547657250129107754951868855657622358359842892052417103578102454168454575325042675720832975659267572497180068522171353753854297536814920759583092335320983234444155390192507451536075307540164785542998658281292982272095648913988714169633678459399133048251035233452488520102174875658969535134157002126639032879816096904347691032714340590964834042891647483353576810408934690385660612447648122294749197454161748880012167589425083156145218591660326496099990558551027514812997144248104395424007536438410365123094082180682853118361615854301510329887509097166089699900408417912319119369484010539361588827662455891419054315852559826493629667320289126538126680914609015145304993011194854331950523136262889682817911951544347123415837158057797651978884280046911094471678807202035088640024054279931706382499347791057478762650538724217845960321697234886977699405713441457294579601819377839515366028197085145532737539902574849200155760230385177792077104845231035511107210593547685937861343193796544139191611391400072132271386748575230662601860222578576673567479631866071767201110662625479569430267917526914762844224638570262917538919711731303677451909437780114611315946519893492024418052102509771930107243539861573321135761072935810502538467853098008437967954288826945074602652411430017236164347634829599934876326484054506350803235247914770561917938540722406034364367345230025706060470653960648318139309904259764283057965585908281199943321996310250150271753208468511455853662784424769458766822625956359915993537544179508479870487928469269895742176619883755046969479659357338987340686834482394439540737403890249759337614352203782450516710693360438282058298291377729718152269245923489270072187445691494326775748434766446227352141013798345133082139966333373418880093680934995047725931226020605770684493293557967614357205825136997167349860449762608735224200541104581124882234614446605565317941012096140784097310491242911666229593736399694429869423976413335438990292953886862483002492923525058647447401037327811229219257476788851950107424551124745836919818406365735392803917936117756578981599907757127553841101329805541989193875569425017067318748423681513643830391918366349233291524858802667149704167779007779289736184103873989444960237805649237982747215972717921516849553064605676632487307111323266395231126540286270071658934865196537938029854682335778473266650651049262622754280435349601864313457582177473517668697368518994451711756383320811900461268721785380334346078794689825103723017495150697916687189728011772375833498244958770246242749339644725837802627338787496264278825819621900121829906692538072357717719748808343990277499142558846585947818975909062397736443452837743564183188753909871814959022749500772201171141772979954305201526347240841129418580225296337999854596860897247346645585328337486968534791111282578878072116963900808760440888469247125780956542343572863610139305909860032445005560910985530431734050171696542183063944573537850799452239064207148166946221397127764736502803552726999676025273670700477552126776181896981733402478930067067108442623100543411609613407575156853874373894618543117915432733010023548842452782993706140860719028144651039317785535448190490180062415200140009680667815883352030517392323403991004734809669070242886338431703857284670919821421304075945471961402714868134322779033769367348331318498656286379310402448822074902302986719254882611658707222103467465850683072485502806476750538477593680767798003509355935390937765809465465252727138060732959385939780242368788352214197833132655650459334126314710799150854108520343273266418203536521924269977543500380338054071783116785164567945453805464423962856636008564924755682482572623466014740738033954574499981625055385450785080946795921477573452737836791193271130923370408122300494065900999586351621947558274918774549055309424370574384250675659960481471610772493478371251609642379050513415525464380116272725843817045647620899786904482569254651293089569282107936912885037945957279597986544076558535236825116536139606309213251835058280482953907923589826128576129760814061730351875952959687614824095857663234378500622277008890500000327820034144819397187264711903819688482796021030506727550246414299779976969497542758630916144131088852412618884165184377246131989898617314370333043492133575913172337776054571504407655704748184697927532940714794419488029915298514067668427403633306648009787635303562251806252451844451685145035050249518265363736123190481322255491694411986808035791634028516012330552097510338062437450098847215077814086462878691940451340094844450342770594425219586713011553440418871119205245226684173684432616746953851643701700117312256838340907807044326682714410585458875999735189485620529118275345958188590301117868697181996468624134634738786793439581814532980524730758017325716641248568952967742498189158049924208427140739598116386414396686568794635374112259398881177333265676593214561724013026558384339518503838765479453840393038603504289059584083870916580504781692158859265444803044164851949559274121782254222267119242782133082216662929370134554821157008432684865270705930205365750264681199303911206473795704246636255028213410724162316520911111939617156879288521159518915995840258515214523686899674199317348281653529344376640389836591064187160423641189163248211241876663184027937802531607615690973648173668676985894309171495261356620781379885805212669936905207485460774567414289613105471480067162257100140440473024891460637307999114708755760465476682139166578445040526398002544597992275348215008459828629936794967007833639931427040524301631222154269379217466535919463375903877855422594843820267035150393353575985264871067543152419608593263707730763648151893983342817051425226206909773123952430751920183485686170213949312479804900448856954242247760514808115650510104517862694255755619590187356778738938467711860087994262313220560855091568170497829222719370410895894239949177358183924139456687181782866807127123616506276013648991813259379542538854788461979468778358766375626214652742560322248450656535351669995522674640724392100940624307806346446732252023658696244299328596017566249227548096744055579026327316066550635018693970033984947860727280428771522762822513718292203593308911983854862228488804023188116748684456271543555042308917035047702006675979226507080852512624048544014566900805129233769507409035193517367885033351007168898509826473851743978183678349262177810294509496323010676375327863973365415823598999431983497285999989040512622267364104619784889331768996392434700732912033227117880185986402754229794268217651556726296879561163572983038173848662961846910680675250957003155443722104696399276261669812738606206080944119554667067381164193151542017059511943750196028855092992915417826445872032878282203357734065545803324405561028100119571251314033118882159285826619861283662997690449853710026388371761189712374954938643330485663061300387577407429861096966048249523099922267572174783649174627790622514193813518283240020159338437752607421701858589419832513786199357280775019347883372739740972926818656835908294929614844560557634600311986454927804532228376885699062264916847194351608866538190053136332779947209217985403698618542721932274805985458020905924771070690480380589785506848552210563300200990191683737558343876640081119707331805133625487565705668268249601143305535479989755607752066337279141581628160794792332256570340995346989658612880124303408181930082412939425303408565900836807243612239909041457634008404930415115074682640301463845362131590980669030380887566726591829258628200185378419811871175774754286605580605958332855733096377494519895436072967897936443664151397507063971176115371794953799374739267939589571402871112933605442709457298817570225806152923440518999485591354067492639320707670111892327424598707679455360830573138989741525000421649599142178529949801036363116903093281004353064210057577239122282649705002142112134637431928197001181117665180638494042600660835228609094260607035312026461712615293161446676431208980563238045313361504019862542928384408207826798544621152247832639423276168154766695192482595569046106717783502657797714470614798751202659768804931093411103013347792530274188813908068116679606665748091845921507614254737947790732062928650763503731524211351260447640714975849701244907034893616730071055108973297274140810311344181707249654890458837929636083380336310310620927353320523742337082445139287248294164540801500584671975528159257895231473779108582653005771492837587118939136573710072497401869127430907019377987953309441165493591663222032817655515131536321044311984896941978615013915610844597272948355250536688244771025298175862696576016315028314298569111842513211870513136566620548659364714010891040512106007700662329743458453491141354590855296338782999850646060399703576728405549365952567434804366295963598287903340635111752905735824622259655917734161548865917935483113551226803387518876341665592546132362138028577871322246889654382292878647668329715933038156758277094386262079187685233348983828333420920902801077943797414577084471048575680088708015657812145526736399462070315868489355628296871768790100533989879618017004077929864158486959676011380364366746130210900754374060671851941166742251977703320505478578548432668296385877645903808025182719027408809639125096479397143797435271706271286937106177498815785967494308099429582336559281546442508154144131090744841761465094901858948415969467552269379521347623945483486148730373362938097343120065115769470086205248591401979896685845168841711788398658942452656386944003785363270514282921101342671531895138166817729482536580407649828049725996827269915235976631160570318997102672254873771975348003612695352085609937599242681311389933697242570495142144144532235779446231353864901560380214871198845000201154387762984943770806280877412895843510039918292686940194020935947263230660966059640467437370015518094114545956946737750872460423311401798230956074239176164197266694571425582067071192001467910980058921038764561151831375264294872001098565081460917246406753171019387705924032983889457319095159534069486610301264592806889303845234696350943360858476332508991148275237485481032985745985424170193149647856795981709426745537389141055636225813170343982072236439921804708033633555816622167411597035023322282351962752101838692319119508328758540036277340250965888954090202740551102663624219599341124823767209703239971450136637847008276126611408821461674594328741979306763507744786217668485959445821598740105430268770205194474754762275146349183452219783016810351315500117506126032167061276016241612322940875514033122526751853629576703184612948062817325823919734146385654008166623769868808334620985897041174138001776428463886666108752887883783561570495314459531342686529835831779924195817513800411525691599764725750364008988825776856132643092746637188426556523513486225176349523259201581940654619524345619870020804453852678216179985202567383799346899582119435871310688663966606329045077373994552945184326748867248327324270918121746580148356770571706308373264933732995563696842744181836787933621734848841547811036193706293174412216845147239329561360128522565855891319237832142854574016232208607606620275032739693359411326166972235119265429093714025604738722834388055113823098146865500913856980027528404818228641933396095247695533107998500597826311797753196313585913846632345010264280136072237614407625224563535570563213828065162569620762442381062554287559869231633069405386567681598886386703564242408509087691348701963863329535628314018810053954707384892785446415235936751360032799448146956051771223841517294814578739755181487048157366507874966027452529993764927442770112146540135698426714570011196388850438546923370858891844016056188938827210384127845224647841060142912426764558256885843690314656459210328752156525525423636990162041447833108158028773952561377071278656588053526836906178139440963053088019354128708881470464286324933201675788215540678810293381892461772330531714824788808916648839903714877623579063281005338331954457777922543475489498917517940931489361267307771793369212194784689085352196068192541925588498804708330711781078428983369892790329333678725294618268032543069125111243409265288150335282572299808662314097884378263595750557822969145781726454786452467580158176139242079042765008467028162038196249705977086890610323565301126086106749987978203504429539071619296840423633223681363325332549928567054453767911982998684771449903262796608116770375397158433839973797909823428814107768258194550144045759298311762946996080787032385194557952484114580075814809703120111327797919626843904140606658046710669046558452913816318668256244898309280272775985395963966908937164534253587338278476969556193236146113505361201470952885159620206494710080531838817567603376234019323626002898656004838741781343750191847806682687361072632440010799873142344461470845979200859886987074295693449202241976410081277890376031171851869999262474957192419970674758043701531071472128568413765591064459804233475351611000177203957676627625951915314643591204787365446442433397556637583367016695321670491013011034790853721873187577737170811392632021032303555827761916233074430846256681771694758745335780728111029242595420666726397221151106786892058987016403314072751084783535274535651722936472342037716288895522327360292416917672898480494156016726016154121223232458048439019336612468044593673929843434826169720181251749642148470099920196575217248549887857750869778301237537307681872892142870386915829679611716822542934261909935411681988164808661036453877334722423850649863791412645824696885017596763795074205659761080100755634837961062892608437005222792088886241174431768821606095200062594549728923637107045904413642393651026270131558264678407147372247380855949434158334332728557621510990833573487270640633956946894598942250968627145744035648961653269787338213676584909947876800615552908085115790513700158465264660244478206299993881612142531914772529219032228564542894155058313223584416847639446506021852005928070195115908852256733359565401058775028551550630566030430358328077604742447875488569953631903007063752866708328003895048749116260464326574412910635153157865200401690201950659075092951863741222718706354549843269246245744920468414894999910731262954697491594217057693390151946438635567732352865679943410261862597950179374561228796933474680530657526539701779220936571289639038918113831281290991460367407908310289148535653579884652766338775072636046491724345022616196860888268005080596715362771574856724657274678767989242851122940606291264536377378039185517770346287993147318242736217956366538456267615416988759155069361439886092469508261359438830907568061250392621060745960419825418327726961303845426969806672718288039527753398448658245592308552734109415725012610039913011468851584171476202411911468614126154590105679999898213867402141668537120597297331665525030743092511998716849951607058133126544896923374355922931783544930999970706073295450952641195844468486095641742191695925986499002263651428898098953950482846763465814047906505688975306833316897354302757261274836420299154807668311278759387923787826233281169435667061155834520200276302481911573088602508482235557531865647604465645721409944854313645575595322096137105444739834961975475431715481408259853263261473837189232511155732491023686023870721923082159837544184696864011926505407769925243963914800956086357206450188596439857673143567371590913670794758206494203787511751235737461855765298145325994222346784633148749112754501578342287235206164246983191329746593583084585114455077353086355265100312993523164497663415198235561435980480393487585622189266839251774365435457840984287968836329888998621772020598410224549223226499667174921161682167314419822549958851793125083181114235848580637932416618339140347397253611635215736930292456748943649943851703397974217957038633008884397098338311025681745690208199492650023607474778171345925244304315504154872092086933478106147670569739615810865007461720978227196149855558385889782786766544394921191973619874836571203618905121130250833908308642697757064825363624617448490332835800121649672098565863687775006868250436063130766272110569128527237493054535534838074101189738445910068196389360679966779158643546585512339020152783578293669364980828343868517393955722749715535202727321446908785260227007752309797988184653509538572660123290665072799389001336597508577180056212898217349114917061747713494645532491269402026059751303805506256514748638385133729516230329714923389170790502424660084065923448208160553035548502441778434919029396779045263329361650115571476322803447350385747150141911401321757293685626146916722542283754487405187865745598544509381415979247230919513370403420381525240136203064441810286546230864602513608855204302104090342048819128234851053890339620522486135987400206508607401275959532900460921923464422719095289602027453616020016689684482210010213300274505735546116309340819032169074242924028412191518521797510394925250790557044764455832123723189109470545683966781565351153647239125673498154302705999247354139283724548190128579181430456300880534933758638002928006237320696811851147740648764692719079078010576004280758371740426519939448003871215253940668088692490881199344202836631111631602920190250412487078926765367463308471898934704360187300881163733268981179541757643885799277771014234014064180276155444273354999297972850146624579218910845648207700768256823176551098990057994236816515216963138062757588270598892832383768947161661264904284562899241188100696368892969226530723274937304741543574169494974587379560499175315755652854170924176017553445597617679195579917868086621672927351680153732082027088082608216456913413721712728146624829594270127315353590731934251865645161250777135850837871133806362117463186828486047796369084855796708453529167894552481723907562151664681642200001744374700204356783957512622367321080902885193660616432598452402395739481882070103044391714776140949501868952912362520933423987750944470622542328251072750555930382405108756623151259266348901146165257593176003312808779143677815898714050843142454437384736303023820766630058568627515648846603390819847277303311947266921620439965852753508946866481736268735753943605566534888026831210055370342135712421015714866917083144854998297633908173135879947894529773105198730945819000222172735186840238604486407298485276622454327073955346152240365878203793252374632326430928402079209857278326040788604928618834236103746785470305045963731803249880489300156770542526217164310149291641505490329096781045167274404642311190489046695008185981234118184182455967081625973527291391238261204454411416009293005065593997402947928846947926816296945756656271233453807712142443258520103252075257010229433600166408158768404024962406280449379644742243251423837339551765967488877747711479843305245533777410578710576759969144996934122530720207251573272944511530599093109495365565152060253977908263012200529923490289181626311012768380123863090405852058892974717201523991323036395360913982244203453445309720395093091551248035507069633888224879248383288936411804374142372368894693808619534542753622493635856614785591009115594731105696887004975944027253356518990202483555896067828600915581874635408061158413128359298598022858434995333043892338467670699367662302983861071036711344670050488551080914944248626339069496379460891230397665773623237385189891187617449560132661957918186614474576625897484575770177767173863706142522378061492685204132658007299185914740503252892004516563651984157684936890378457536482708781142369052145101544152987471366745264651968151554835192930661346871797863651679032918036916148156590709685609059936702205619491413399611762875010190727047392858901802367542780908185804619430135007220739326063288833946387767455164304099222276198518595165360633505934346354838504043752326581843983295784036071362861320514360871116565693595571767187412047923127232753354412056128530753767572981431543444635980431799988823093958951631523180470231132047134841698310136560703895590094520204766507809472052227104997573543116757566892068564037665200519195995057472398583848261706154981346768898721006617862333132730051430486462990847214141968224266461608294705380135639711710780512437791289351799315563903546571609148986221369757816971615675101799735263377891215220939835665507922102049954211879566472330988740805373364690572127217673461513380476092022302344472744744156591330002415433707001906189089984787279246690640506170218918626861848534656067229016630048034182020357006441692160745097973539928825054078845028806786367093631591586422173671499573579607449861608031910792225622274029305665749727348562115730532606166976109261131023069815454371415158753447003084411988525904619506086324552595214428154016827518898830853377532294943824681392922844058535580988022167445645993542330110481235974997901763994194448418581565602352187392415792934797333697185057013986303604428135645138408542498026077113928651728673338024547459822776234351429373581652011311893465317965157027016506190725433024855289209359648766568215238363015027596910649391286896707724461003167205335987956548179873452130859286135686165732093861364293789789571236714674177501026432382377309526602012269557287649009016421807000023028641954830888224556090001367065585191061860946168259556607267481632402921703174035599189995736799744407716201614998222546985665843702466119522556139184547401532227676673535918677168905043554676859775245821096738697464650707813872299357103644772751092165736582628287742983001117425969132929376004709542303226775107161047713160072538970480467899174248013123248243391749682157648710848993014537889748698236840705116721078315098336277298570000929882416925727578846038987325344282960889049316171939178362893098382919509514151910934768746876047826019784927639850678747993437029406066490725297513691147280065275669453000684693511521268589149345198924609980645291636949415481771813987685278772389021673873994517559181701210593654733643518205487858354379133507515972140607932009734765431137228791325076380773969854003363635171551366321878694006116570788268157726350067675645809343297575786022977296721365078024931392333609926367108213132494103539180986615039562332186651657069249206948320906754306709275700085307538668009227787065647356544112437573563445048004804797706369867450349874441390430881383880962798332065732475494464492762842919316203072506914067235743232666197029222685616292185061115421979735588090582601747921927158968634663006258635167276239991264254501281384106883091376636853263632911493045393818571275133895829046371239299044306166979173512847333954106687356213191931377219419256607490177974036797355612141741110087108683101744064529512027940357026853360498194828174677299799165718748357587601568963794136536048769802579020410712128338803023963154916358401064384873123007844635850984205155775128019385870378836503232722793017016518320284270456380891499306296187035580762654399254493908863768203815335921192372380421310855192005734422292336779081591502174620311757571747970061725779632787684158095422484794876917720556922710733985490939778785509615823785994007356524613554296575626752491384072999364726819210362975755132677661347463217019241691062600632147231717664522733345344619975574967261610263594644104592267880884385265849951364475711736970613803425259020701307813849348862241826840519390989175057225802688859977028233691597775964965056980676314263914185287885510094829175164375176591148903778486364530193492779816239544458299877886945787155689811468866533164994744650106636967376168306124151216252470896883687617666267945785663627211671747097420548522743517579942929227612828152031791333918918854450709513984216221341977552753627480762454453002160055655469301813557233660262069787295172302893039028009493216373498072126351141355276620239291318075116456530831366451038150985780954202145559629543867049341655842548106772692936858353672303025342883008665406091576816720429431762183676737383099793844469767472706361384087884148714439148066108029139053642916078457000126953909318662030018726632397013240112157843103853259773012480694922540202083315654832819739452476408175661943627924684205846232491504144817776264048344358104689675979944464211835924369865686565590480203208059458869352529725918447337150379230992669041251084670218133428453793860676276079582620548364098675787018288758776459320221987441719770737720400929840788250366487542896762969049068299607675984597347484375050604888689988583475608174508465802556972400481288923434541707674497726789390764723819703971328469173622733841754619251421484339836519290030953259609079968917349051015937969346876517726807906922566885680738486940823774562516637529451099533262750844460207022268426799326540074918629229976734473309145096668248266222844702144093060487222144254707448352002741432159367842384010781855032223779942365146272598304991661882663317658399318172603542475087261575743507415972861079894044352491653231873382801172818804590034811399529240380314227449864586905870284028506443368124656693737538414667927116145689074742251169365099346376361568502001113859855910982114142876884601140354545377626675772151938357322662366104949847666147545628631260440257652365128330827808092397123223691598342903007649556620738917872330043995099281926003397295827669919244015315745133112031782228803413807472474707423957110608282232942331268830599113188248618830059393277342955584541989423767868401095442860069783979026917813040632723511609713378951425354399798561110472056162757075082833680116621191234492448365506123752959758500053600605598170947078580823096370286946824239504335961535791825324794029457814772193708751592714532568268919825343569769589031475707248600481858535944839253557096199563523136965973005088908236819977926086455957364627569740617021098464939864309730481794225911106764239403884730775241542562433474940709368393126733907667605214288002656818784814416844214745032872187669892632613868640750312142290612761020190269320373760375325709570934418647732138351400872579041580974718455095467453332587516840746343575012827273854215790739980570643811859746599635916528255830742359741376220466668213808087172055861423073832961072998796735223669681522962692472414923734440217568120971915297952540697067839309989548815286443403881385084799480652426019486627212984827144205867277039666216435344798203309364666231843713601150693885146739297836540543955975157366616932177419474464332619519428233283262507362655716985784691431314617092135215180344670143861928369060188123700273330223666244263111587778184003443741637468991605666338007652515942880290035156751109568592774662687718979281874194526183195214144325414320779284324133042620194888498856014717031365293409407639962331741215031363179069863903610871686513236254094632847703631075664745551173038451064743104331215517481665651844959142135166770278051995147135118174480315863720072114418681735563994488788310805133452810697566712485338360495103542846685535321234334163797966946694850801829867419343088205486549558697432698274990761216208727998440425355016913019520684117785539934655141218234072719319961291702676592974209062554239198169750775039034432250627921893657094052063205220962920051734379022502499263501595882233486198776081959556513468690444423716846556312158853730220380857779101900482652855203299549403955395140590428984816582335293268188805466749036629195213289540605383730211300600888821374742224905853770103625780337281920639552185514908796565747477446734941788323744396308541124004219044218606336997383832137008319605432122965657411024805741143088734238976327429573413207454956431307513556086693372116067330495366023151144311703037651511437632937010383440634113381771491839854408072045833458311839340145479066876250370569892150816862219547507559414529727032260738666364327014820328379583583648291614024667900178603108709768738414138015901187559312849080124005286123355753678297468348742989274007944656266669450460628296862972531347848995716953233215539925761454869442989529362458522823465393499963982528355878085185262425644705756786644852437262015700027940678344866580349635392395948020393423728435913766870388941393242210757217783454330489119055258461257257466058419850982102443755515167905418592723192906644553087793862365479516833312795460007717373482269354606509881912466192581771399761158606548430910275925312122151388827265549260995619057632855518189903214140053136095445485927226269219281209897922430495092396581863425702933453802053749280417605459157716802968293613782986206535371491025141652976568349680429754872085370620979985041189728471460610925801064084164216616207547532518088053728116280671293129110217097191025558910731586843003608384635436072757475054694804791593085591648674507420948130386963477408149864843867264924087430509255722733816451433821021510451838110730142389676351641941161995746909394294837080504510434016956375347673335011106171807692218859914591493145157867060640634747478470461433568346647919170281175849529268317173425631164958546441362994165128944525803651351506131949296109502551470565050198566259843049284885264830254736644219467512860862251362123592152933859230709536248372217373924877523235494139264844771854651205734643475983767350082690980040291715319683596464384502209675578827993839259051865492111039860229421491713783127279581582358996999979716590861578603119463104561597295615694698291727241810823154075673640025754651860388851363387636508279675112080871084160498160311728710189235532324388648453492551715070059314042052178467582520232344075790616665073248676522132070375178023439175241345204529229592796391017222249605038509152319282729390014670012192642637005718022908623682456804003042707027220641824457421157301562143621529239621317741925347026929444917608256999276672884108873709376969501547675489455355826761701071456252139100862807014862724977954065539134126407245638592040752256458065475413870596745480548456216390643912827026417787078786397296433669968816570936409140748725849399533217844830468545686931543426297073303180662421338301667920891684252394365584175163434957708673229383283828300887117779537699432457239987013710972492942551777067698360629980921457493454879017629876145640818653263678494172019545734445380390114151353439368862864789408812171085845011438834578142375739861418606464908299283688062274886689476542907579772664264278539842118128475191183246866670648709238952065875030405110952453282180936068984251718175618054065142155908373951253191235047928198927764165705189948616363603256110891999707313371979461090597751289370712807017081148658119671682805195088060496355743879794602436450413164874422183888695034332632036069414690129834561560987048122207866801873174622331264600045559452809085188160063236814994081680394812614137718421703380168907606769963771172950746336218439147949122462310639945820015524343814514805045226415030823264889121479108658710953039829547576798180822369019730523417722724086078813158337942166284520943355880512535739510923199583826697258063474894954244879776924637354411750915152785341371540027687367475021109174264127596241178264418179042956352128854109952927958943531019627083607498863726444266232428402588635592000544301601527042499614258142541798323261117233785423759866282762088766292838288326847150141791545934140014551614076305492893249118885548530462810268256817482005109304156349235093743174691044177344854338824211453467874263444041350329162456458010055388672478054416144472945044130680194634527417522065256840802388782445973754059599652252492172022324696939492536411695021521787093377059488295894010462633932705149172989698290255098914082453172497801807852168652577814340976560406418888482805065657324576246103263397968825022587771236183200715821876038880476529157865611119214363169558917937764296342375177495460605032109462127737399601528713643598635964360086946702859974993799445198786814815147320197664350657159583762586220417647221824097688868169495832485594343665188848314454306981566840429303991672318503915019316020937146607865076935320726883177928115800454037242820927601775663856933477680018158666385071244439747380777819491398203111219122400738755586623227166307650717944381776813773181270806896887441291418263601076942847027733580160771319092299979479028282021796265944916072229883467766744492275889809580589772477650742236850029521287103828640390192695665030251464310374022026095181787031344295607332151026774892893542555155670211088455647825941764608794129658663663406348193789225992747364183505524069908527635131780981011705517260145241957341735669267227219693312324757533857676667557032132484137681697230449773780836097474230721038593325448324353482100701244823610616432424948231178279118834032899431820800875296066547934767264736752583981203255587378373393955704167507214944567043856908879467466305779215191775453318400965994362724452398212288431314997396417640605840555158890049510257262198360652776473700687030182731102790333209183908204487418039490367865683703030834472997537052679659686257263078062512488330501387944503447678080570048514187963864909359130148442774351768547829473956649515999433960928946205103228467419977889222992452660697420811790095507686142343805820359301667653979473665116440981110968963010026270661647671061639067879499942351868664945937396619125865940628102294933508578012434944918302347366993222564628254132060868979935372461652720665978449644753242286397591145083288342052177309435410237639783790338121119807603937051290676475518361111091463234043675486319811361272110585774237479756622931449655728971245185946356182749447843236058152580790608258071702170866410170216569911696544314555025886071556078770035076788608201856558428766403178930667756827166774722978039986724913467526890727903997760785402987139560810262066183576362484090205885847804306859569544012959532800825310885526287355868420307462382369802776497085157319149427542277734951058661733212953079409089953571883130221889032103994383345101110790649004522163584807555717230153864077143643845014364350294722246592069028399272072152042350653575919859612490646337263006418301434617360234385439646847671958161525985392142187244669143731159028928447667647821163774037927315202122983093678233750446316339878225360454250773245758081902009798752290717177648221810184955142396523873195904862465657080539964168131279959465846125529579168911876171544513937232559882587821114732264473125397615221062727138273902757314907186681878443283088597529279046973071411200767686298467147113619858252790484210487618614841214238720686471102303367219146102551348054672097515327649016372361709118872084047673009876205357035570168509053027778379748913473847385115269004401330024238430603210993478745715455636144411631510508996007277387456112421266106435942895935509846594072838819105645888435912684441102129829692972483528735303335899072720904300934980572273580166432553885989945304058710293452768222824275417370910052774811224656599592055763987742628722863641288559879590696302320492355350720940794703669843960467519720831455095826890393770300938593291676268366618666987846773737919976688658160989823916715082016024056603467174421822274355508112462419911912874054853172181863192380470183774779877516244503610852189064830362276751850454977792370854637995803332030595032658350337045782940782466100797267606722879767737080336672573178841679652625540817406879422633324344706044937487857117618163529239182474617065927095517300007273697165739475715678583045369119946683762946540686679211965014752359727082459020445616041781809102004816219515689782876466290729910283609412519489936627491440395379089292557224482664438675750004220097331054034900823220993821143698044836506222068407265355090545970178958581685391351124562964694745555587395273056941910630810636020747153038385688525878606245064619693105733276640199631113169611308894924709980427841041911993797922049674415184268759099082101123270422299578977178810186417714080007186082551385390535103494587016314268260077765739202147639215969709174848122445539032311545135932704755421722093130946044038140628978265523979422966137602610423478895089829649761191956045959297678142131407915896916165453102758867306273887787295996738828964579536758156098499782364087000799607098745178715959147445578515562624724081591794743796925503629849131301870943116034755394852977243610043300960897376239024122191840547077026349089202880784487445751857885668183199000917153557795283182223932651007762017069399200178575746692686928887316840866049270173205572156753741369866195173338975294098926573233752269013597682124936619404241994168558393299515563337875187080829177964359053557503225397347652932297513886236550532853494108990754125209854787992952228013791002324059582905334373058771324969644531949363565456409685661433345445412281242179392989483250601839425845047478558828081629434952783458719591063373399834466780802767535918482937698706069038940622969770137135572960021305496217109371507662478318932053092280759452008618049018416641026373840336088119215920588335667972057094115213716095576750264047148206740859849888149614995165475085354058062701566190226790910216261448721543376986770509066937470924003614563278455043963752104262365983760593408975580844146733494455597247999360090371031819338674738003495525174834002581960723167559681220960727554914998653379808923798602556426084138984899395461671471603602331695614017387974009564515762434745604187707875577141475482463479395671474041178878816647856141970456569151736156753221109097176239009307329799727614118950257568268730359200480228261205236271587156408050607914506063864813754890042579259698002498877644135812396845540197894529596645499945957918901987246103915360197675298674970401329315346399585188361947935742649432125696512352558377565785876945552534366341666274346590229132830057989128075392846349810298713857994246254519894751429774773813783240618516881633569161291153759500756400413026454469955261634469831717642505238442989254486542294914365052376234404217676043841258256821138166281372224767969184217145920015018738454936661461213584405577078537434968685424598454273733450965914580108187200397419995628552696968737271771682617846381608998303697465614079533118884489727051062840893769924817464417975848746770119971421071997977441534284532950677803112107012444681918414346477214251072737471580429064871247173196777754179094463323017574775434398371733212396947373523243186424633296556809172434116998256411323035942032234644126020609621922716690694229294571999666511247189661745210655235121580881125087215261788142059500516906035482648781865869041272030983797264984353794809096666961096084188203322891654484582261409783346890921950341178152882308563463775394890434855675680476864520647016395364485974645714719824950631328293007560704891075399105687016499672845413982623858088539080171866602887450302283048498859776377228428564068798487497858414587186944476707605068928927614437356285147624313664271999520535324215842068401870560501657974595164545310013625645997212853066942634725605745542293290259132656169342667143054089001980098757725576647712722028756804663431361399178023079622255754258782093055044099867596341019137005691544141686852928725943119328897336428494769764384144065490936594076195749160572091497302853805135902664792750078275286954185863501394058139954391737377953405267051249883194917150974297120689354966498880709953099841358319524765546895633896165143894523025849042173011276429305403896059997141592931375849570684196366088428424211003373147303263346954174733000297626961445858096073282045550549191145267727387036424719603491840746620971900710029455385936742801427967764689842234930570804062163993516541790166732355962024000403872602585033156106409589404390957239974263256538264502293786779947571638683835559537418854763247154976596211497678888746793155307890907788472864839825744497695539240034774611504059051399507220002618621337807768091503458493445754934956925360899513179144366662923277574384745643717200103184992793421666505787909159143933143011746400551010579535943373565372442205523543857057629946004614089545676014611563389634402852923277797666202202178483830871588920588192308467477964036748125524706278855938861038064503851901328749242723745093431696295018929159758577241939419235586222886555437322454719139198627753131935177496935008401495987273291890930028027717779624142942146673627144934340380770644184231900342387125428992163742441556160805510150840694560287454491391277854365592735577127347304010925537573495473899667133822623078808860207093521973451754379439079203273816083036191057704738846520175329975223869548546681927988499181126169916318501174066275048904070116918403282508588765855048014681647488507408399272398809531028279218906935334612876405197980707150878270857116504078104702131803895201694609118276597505696431918945141184499689489117370320166581177813710986889638901437217769162998163338928827512970826051426943599961172893056566786420385307441329315892955983039585601504779464280094493485678626082646185179158690889320493455929043820149741551581611636570456909023155169828155105311396245268011282311373291485974257861115258341769459477468069398502100033229180665993750913174994418289837292010051638899604371435378077817232772776923240390570407588789156001407140563577419179026193123538062358383781785968980369460523398279778880843949259122519206816187999003187585351935779836444498143563725984919199257545776767016421835750148772777832963509327059690886950034300002734805982729297215715006990592686242549095672735051908961999674410661497289658029633411782595047954378923686925906247352057213139470053037056694660560997049379956649435079801116621535107258898959045100273470890960017690040450992099156776316438052170373152912915422821573160415160384799370801036413066905217420275153419516703173929384374264194728612046174271561314108701795183819867576703909354343314785342964942970119867262386249771792880731148091360454847603919826848923029202526003823832390948387719101572497557147603641942843652614698169255801307861400998603157713198944579478582866706403897859875235399692769492760106911874800462175826399577666679956461690379285252938333785952257505190666567231136180422523167273903118363611301178315556695801435423048871363270028774884521231742706798370559228210071818888785392007954773013804343017919884800471538514680679041637637205791096279445412475798605993162227306029781881654010863282434399519475222151871796798176433286207435779273115166009127285344526892777368355322995702701414015654119610201643200326749491386380816057596141464266843713192212499385424888724527894929255244633977314378846357423189512676633136664054052507947351699471184437041957982062253600920309247918427989412108444791931248300629489967570630085255312598658312707856890530260020938942475424248202914975677547278681080358463034042125226309103535190986265198019711162911746041275780564529753385516548070862905231609180936194791860380046937643271891423876905069397864012871411284851708922488422991323671284578701359391132717798503984221732726920853896209392671173736837605096123939979867709678323153157375752848050560572685455747508557718872538869299699527894552232823066301232678955578955811670119442943148619452426978000443738206446893710156792311437086157515333921170739286123499494247959462436809894708773570418640072050618536883793270585484208969388294543430911317711795753010105646638282478603700669706988147038799439291414542347865512039769748225173808531019120632592682692804026705110117001748493494731651198641126712353539310803450241567300673895913836323974485156256029686006289603350821503603718513776426716827265140030871589100615236715217577713735591516456535092269972783814093873116065198567323314204388266609450325327838159300831351473692744886584087114340933905006905646824617416344055486254756151425421943792866973804152468411419703328812625992858246499396255158448181243787593415304344411963885173034776363468044872917172073051022044675908521151549962812147887198124205071481303438516312871039039501981994225655571226925039206610709886782565449402580183126688792527175017792006016552223106060638189391980679592632159651048801576548318649461740949638929301992195275079022034385700574232420809516450092645765900617482448479122419405613377286565036193533628173720667186469973041591964899204989097073341639259037462929999702840592086294684142806966029330931687915576387372326873863665976767274014406642565564509977747677613637293915743899343031330449817308526237472804681462602481465365827528973527375929808763178096000400720324393528017778331448484824071799789258802712147044772395947051385721268801411345513700059167045448863357291156169765332515759762910931629207512854234748302324266267709987800021540203772398242534547022343864217701944605871542917351559904445598955686151084818861906592755386810215121588618877318545676838644069839466981947154178635331757128396195855214264595757858881569765133067039494475783291108810878727626399597915284651120399793747299263441261146129017247743273181482222175090657020418767689493313817899849274167781399729393647631593338766631793002119618330159912163945949556617910194463792419149606983715342043332746443950118877995971436063202037410664689373156043277367586302902540617706619885708802601419576795765360133293889931351311051266562569299302212205529336698661283649762087974601744319318978975057253708522075277200185338876069830591874248626066894996597160879226445604698860476401636398699335114913967743633066873039771210368589106530125236515094962248042461108374444536230869602199472586976109666504194770383646533011063096449463085420905882665810407546458751032868527324063824549917706815287887290246269940065333673319227993842746127322318321233583356003384865282610462557695386591698791859185185573567407010360315441887200457902348325781812997269975134757023401199652166431149805416445545398802471200229799315175887988556188240226313307954764183526190971496069979530468138647640307364560451002027706944454174256172512898977970993121409888718266902477207832823118005363064607391344416287741593363880063613754249978319515973481554084663648101319006469848543107092468026683011059862594432697153998513682023986708627261370889203168929505326946395256140829906534990218256484736618991609928889413769146689542746144720383678946109865941318144355259664680435779318183867038126440607758427398501198517720638444554246919572156319117135431620933600886955878390856870471721237031537341478681611606152041297854734068602593984627285235982540846299818930506513563792823000691031918527949993921767368241701293336381870170960885689814185149497995294883883345226723307699906928387744985226041025230574774375522697306808250179519454151293851550566011345941049402138786550461069596205171489560888015870556345198678704411165678720368151425135796017439937514104911056747895571523286247930096984466567652239821765231796074499290659794863412137451374728923520944978930883794030042029180801295188149917855395084931958657096799858517493787564726747956116096262262314143179437848372189753718547178386682291543687821386371618091972690642615773425886681469224967103738057148818394452219676919893316747971900560510111239944780096866276232776924278959468196442468939748131240688948535732480704062148790484352815754259987714164963282577589593845302697914497076480145750174618476337405578693744501470370272278365020669142282170248261464308314017651457928649781875687760570344016968077790712790581491529800866782606704536466875430028881116756350213689607291497471675024641045285436863580524339610554643465135702104970324119416959565705853209479133396624520367473367372816459549853217167254382828559896966850567551952514271058330337561340454901317064252658835859840031617903494690316814312448416696446267128212069621437504196082791104701090289851765796323486756179456611255648437643150881833394091256841495502847381407078390861841905504875831186828930993892299094512924843722686625924414704818949300429942647418108475132699524943099816512588080484728605221158648311563447660810760022701888924157101208449438383848622471496007881679375792201664610315217148439488528351617996280906084794898976287333426858766788221724887314352646835462217829153032793417229538369200748789155788853887343210125341751621547421166786646668740173777778080896215840604605621679501095443721308129577926774222469482033640024663330343787209574820565660561296875950270983860416243475938955308497643201573157010035376583095669594768582266390534137133389656546189819755641532809937742103005971606751253105495099255818490387001593825527617994784194153102780295560238888898283980660137220600253538226432226705244924929575239212399442031211459905211758586473116749037015795434854742720331813742480051827097055202056836486835925134422471266635343176615697557358572721659819775244620841889996043581920552493185663426722093717101034613338037149516206737415753543082458714360417271779826356233388044338573798310700926864014596280608746541425820967210556459554301038242704364930556044794006765515831041780559744500593605951985659253609102794886435956450479197571140927429265771660754810754152265510330778658581370362811725416471047613361925448220960220435422537630391418332685711722300654179268436449640576070975698880796980772966486744508357527918231433135144964319846494936461301386012307991961726769584084334890022688613571831370346184312179015682507272621264978969577173606209289266535963143798306560861490272125555895604815216906013203776575396692252450200183872591781731282252178157724539739915259051124734261770071187498350169979428804026032907071141201663898784901372978552767057066654474059654553622871631245962750436115136014636135081975543238057876377072293742846201363874931826934188401653878233491535301409008088391982486637582296235489040644134519516757993507407029076747663211252261164736308755059031152799184285823663221101135384266348707451455780538107415576180607527205791175673144693037636329271410922960594486737417245253977836235857992032004634352670575977334647731171924999407317843893210178574175553422964857781870263593600679173547534209642696871760899244879113243940802308327287445190557089365018958168126416598049711051157824706704540173716790187297706031976580168954822366566751296884397981186298199919770875365184148417091382316746566901463358495947589861783094431812806049269341270867384907336943259764262465822235222454552659432526277232571973005587967465711355379365105862261086319599475499829751238126320399070820342632096365715156423844954322249601964137238883701140309924188835036730411164337129311521166789733715934012528029780809302347826619831716957698687455382267198359293199046842499235525466720405175528399392455547947572235136721063932431459044426019111797399943787198717399458687322264793174790406149185637774374587182998064271500048766220112069273460836339666903174763342809498888405317641589871839648370872565960683687246735544885670514895621206487346268364565701795561917901087793420112953271373919002509223900675071829802987486911662901728560416534031896277892321833150213053863774695735447862921819052477419727889022338453986248612849056986036446662579016546939701871554038452268316156077080471835780900702858526802989003623601220277448505359973803207534525950310536285211412343259117284359396774057691530008486653594275152604890873727263159925896340962564062696408367698047309589444131583880607100669912293489016706618258374307886511233619482337598470768366909221292158305251796793559604133417448908332485168902095018042813624793789351243057053100819019890286143656844157976206193480680189095988628884646467940949953642552593545203713273288553521379340238168370000116687443687643728623578192896868893954980629184847536987519133360102093910482104354991886827786245575868865659229646360319514404275494269731803608985465049015834856532629374068902245093210896411622123017972128608690418468415371668698822733320528115729875120382332498009984398422281327517972541216142335150270199737588584540716396795601983281923832440912526236935464681618761507215952807753331102018418659842305155508667342591568213377418485564598406050563867305204321647311209670714872659123119183463238511126129012567973179229151949333980580189766783602826357054582038616759885816337384271123095399811633765757883172002841038713377929108294588161825294392407537703172228308679052463357784420347091249467198195299808603634632750015610617985055235520954116269128344366948559203775146960454709683787480443797696392566841949924916037728265908546318767676564051278815442607999976274513389745420740941311727399972514672095147348580789034892146678478126744356772638070543737882859828332397834266541132593768788606886433340138583343053835568450604894347555218552492660589368083714666917624702240030420643067893494502804876307086195377627130057092102330039727851214579899699707772130414819501566534922793591200533251666212514630861483527154034635881754870723833503785355307862263721374200444317402934366448736405166826899499964087788704441964234090399763172770702919029953473776887474326719571803331807094518397101961781077355663914585603568990103280805797246769571384022542083507716678558412316241776964587018957664696941491681388936765271769787550087085750654977631644641160759364518372646851095456262462808666785202139902214751960080386132491962332465880546007519640824204684554367607196489357945046044612851065411116721275851707367735692748904294002651393057761054142033528706972688702751361693247486240807767227955566976030355956502785475805215302947430066595099795058631401819744155692904510772051782478612114836693133948254752110760532151478969981457646471105026301156340980963988114381472465989111624729148148870186634562937954647524698231901578533373702105156045509955045323301623892491959340338116490722886974086911451464873387470197458746702890994621238139070851541773727846425971749271018199663789722073888617412614207580703678117398922115266705229541433422215100306556720638575137061481083033066993688368044172581131295857820824266193642927384525063634558723113560229593797637302171890216201926214181887431527854700217546557344830135949490602470315450185905197787779553287718512642865385571742892774235969473771074050008963049446400999055358445538143146014084051238699155461952702913657461886465441704113922367162144649215087920531881424271676248623627908275586030157114017590599605679815562254398200090635975203036815083543853735251461761480047875346673527321749700605075063909066598379119840536159639239018693981424098073364112128283101351650021644465763387163995029958377249262992484949307413668717583448706441713511329560592602016560426484594539499971597367990935340704567038967039897250439603243604427597247625022304479905051994123300729883029362801119031793354911324277164964195529865186453889025662683217027982242101511206562217505525461416310729227732581941068713704429146179297087736250038709041485467906961053754258024170578738213196541183197005421200053519979665944887755046213501319097319940956815397908628549888158170647090954412568695821415643247440487580683598279599052891650429659895600052370351276829641008860295621125617330518008861485202912720558378088141540192933114563237120557807298113072858635608171579736444121718036100648803094873846498226107624889817035565035069896795341492619913793838602902651454791813445571900979812954181049007851798732909632374864546549911551545407546674206296307795413571689391383439143148018309711822413680981129188585360113350092107707437475166123110899909258637877782613917861433428506291420613082884873382284290270363010527154272594852345077095903061867486648751777287198815870266375952611459573439286559708320171415931914651641481183497761825127603046373143166274252084007991740172190324257622035713452590087489948000902027149199995988372674440233622113065369721858486984373678144760556206441125959105909181739686552264260619603165586839143776835495334880697937444354118161440303688405295747896175174705893519429253236648389072017991341071692951493240801167482540336960863629802277673593245807172919276775533602908793678715806807339418689721518712112741862996056990129856088331108111268809517896761551331790997273677400898562193693757776235536660313808004438454301698960877427821057901457585987806531037897169606884952674773337905727986546973908395016620883087654256357495193350049657101457144150138387045750414963104317274497233015193966336268309017912317374029503014513053375548147907099948577010783122631997045175246492814309995537989075711191063071048048404341495374720543326576609877341894311601591879141070930486434596296929441066961185493710384498414774829523274447476147886987526676587704533345149858009011775355507999456698744505669995188287939079853519267183505563405221550153502748767036702847132910458570084127856394478941891556190208534386204560205326618693849657066386497250778016537861378676353407496609253939756485095511733433258462719176080864461346215722111108694896181394140555984640449013847224296081627810049779029971542760436344174325335292929726822633254241342288670027566833178509706155140486160296807707900663211357467797908847020343757241056600648833399064784296559248850446889145608047693894231928288196469915281503235327136489526272224857803827607579527183963904227197242112256006236028878186779765539990109700699025840048344370011971439541418164212269747421075986384759308401981471155658098764848873491937463610292306525337248007586458516645306594714613865195551985739959966542207898723310375016796105515499375460432115116541372321525639807165812197781448324232937223446518914396582979650716317193196595524130437105439265183009841984190544786374419043836620847796052886582925769681840535569821300597925374265802407407407550143962730911550390143547845127070046440377817525556592456132568299138403241053911637332279898508763053088427509502490649375674913008645381643170623445842006661240794145882670945833697330647657429262672303486368092509658727416949033333477666737869908123999339628504044565324784259731005834068893704283407606977635466401616257161219414913739703621701697677697874209291351120544884933734135430991412107089622653086198669354826310214310650055994997692738170937489924783630375835426949161874854885578148921045764030408460495644872123129296912326224994002995974369372241221140083473409716218936746636371891970266249870763238527516739654184382360467031075169604606447245078254986510732305831358069009117752092285950639071807876780146337102191206311270895286159328855222515217561640623490202288295286836289888922784931660270035783815642206603641796264340363858872414431730326026374816962949669842580291567727162088499656858132429055711446438849879641056285785324126364760608213885500667174124788790578492215585633448406622878643465406924984055166596373776261222613291911089298031564315843083415546249291765084015643281420713257018501562005227899393603563292054314892934176315244418295929325397907982541668566352931164702131520007893187475558493559696046113115595040658337833224895513316708175504105554276731022546398805558556250980159051122132678309061245810234135576675314264048131858946939815847947735273071873835780754772306527863319607039825612976623885332505226272315167582525577678566449814991386230524844872686856774682029330090787459223005806947726792567964593558203717886049920127523332551261828377908008222157139401192283888905262031190743236197578235012718931918554699868650718390300897083417930646692685968316741312188571783685674054473722657716580081146723633824881835986072422072268297649702892769841623124892074582934043789895650750911616939251616886742583477927822813566758616926592507220756115575562446273005925557296478043992722491040780735546479849997934689454518369784215864642378128342287286852618419233614575424454916746196050891793157526411736703142884177046660457447826637325224712269588024731930483658803188509782019122542010779813067128705881640653610517102134369199143962353693612583683761041366573701786899078931936445313488414217687346360627931010556714212927043882429908729527606622593138913543908942443034844770004292363909992797551014792019855572374728021418353056692272946294429148550653505331624159648816813207208850603622471026453830543953148352765698847945965357004522459966993233762987220354925894672769571398334489067625792816796909767805433753017072251818048083828688992337158719569010878130500142271514371688200487789172350425484057143288574002472985524617700508481906110062815738898239160180156252578177911063871864303364515621526333956998546471787603760150308269028286940343890161880159991266779342772654568353821615719439948612697478126026401164405872314579699083210803189430712503809905090724993985101345633559938392975592151725053239464761022026827386763575776474123148627452130070188855092941348610074168278890257933222605773702363128155030694617400475386322435813339640184887885896058288715096341857782638698695134743096826860752183144057512061621696445131804545246196287292680962806397964265237118467535552326877051613086908979905267414705547399395394129175129340011990199021079983731667769768332356993038696064068643612282982584870114056249728636852911626219213813579736972444520715606484026236781194646372873603770938524019254274550868433819787987790718612888826507010451384507902666271570211600307654218040726940800328890244869609527462362647793438509709518342342942207114533407501088079211364434396212921378962901831468768497680021549325966410986831916850814524378527764543417165343437351851672068175277166314443492603968243600651482551132970823595614051153025010939322184636709568903022017569158406461804252816647907034843199279023611544305673957620225379647812223191250631298772969183463409729429659632722717440771544146141761437236716833464577982884670295199181103756310272507092735651366019305804140963498563207245444118723797828394289329845024533975214225158096346851475634104233384166959898915833708947000474569925834260504311901892082264267504405710679255383789583607160162843903881111585808172177564302329265600468963224808828971063062202409427329200399880994599902913120179901887701710704421926477477969977404425818781233808609414015277102058722087825070808077277499792867552206978240771968642588468828908312794338909256326357339791020159228336704331123453293188785200153960032011624106034570055994342312530018430997376179978953542064256373265264181961503314075465228906411262397919961923740991860740882556352351161478545470808718475183068641043315701707504982092519669099708182038763891528186476224547083877027724430212516239875194697617309562845329802898184776094350986773737155064633021930339574122691764662703613508389446268767210937921863360683491828148901060410005334070198894996126995311105028887659530616145483614326959477739977732501815767654996701088741131297017051901720907694676757490116248383729629038320305059468363846727499793647637668878406447582665334467595542093241315135159103846741083962100767093735751240393738065269500377187662529420727697297652535221612403283336448451504492052208631637802127372615512535464965460638057025003879709322083873963135836132889506052027698404336006198671055214895807158863661665139397769661253532564218505807849606940974502523696722049391262231396258075278810411728775974252733536989117928288935086523555824346507707161742465350791070781307422686300005463018505155005150831030140851503343453777479655082188739625045457740618845040029895273918760292245026906452140879065802109174256966600848103409445201753708067417246565206317311413444834071498692120525408787759648516721582505912353675028847732055535030473409266591552256237927331909551557930101968517347464260024584837512546721509334526537430855158255249688842757606395261491411504823879660505349376329156741900112455652905360238468759368770472820744132793980003812688649145637608544814457615909892372608203456878124762194473521581430462530868183905670309127140029741137013790968184516355121909141193025830378975694364651588593917039624004436604406310606573393959987962620598711838895711558741635995120838135630527505347537983250252598142478715091506856474041968548752068449623170627144982250096357533654605745771523270067842489440647274527989741244693852025563516919891401644203533683857792081963707150332999170379987881104283401372403844375906051773489615651475226114062225737556678099324982496362206164768490833384918659993597537103337918990164166369708721529070736730842070576279087850203626416646045573666583328945934271108091894696474921768427970420266654439319069557722285373535614455062241655514571256594155972693200616321945677107779021983705093155660666196394152523112267943271688827038580566537513393143410714739237182048337020592941247329299360824536834745992913701628294229281077209398239125747512493415947377223631580076210550190569034288509142118989370310487133903403618949301116656597442383396266012321560282811600085775331121310445526203707329623880742288588001716952457588273940281280206408193081183430676913655946620745612071219177358400682925313700709094116132403745691769608579884163717628640418921981326127894402574446399792981521051662716515997208131144892840673240736710998079542345209087792620989079888024828174542631552438370659895393797165912409792682190796301237779766870941970244241081916291106906358856230358827947298866503026395183324720409386764059567647464320651505205915665027633858544948068311105593186763508486737450231102397152871522414265735640663896565606211215626404210297743674302689676071924882167025167871780556461322925433329980931621293303092669289453414620157552833674680174560442935970292252763666513804028927651966929446869380043690215660001379675656171958494085146131940290016303692234088965711696480286265353017173577185753517413971642923188896956980912267221273789534271434571975889403533839035037405736710900182836381237681067935592764297210943347319073677760509837293160430603567271109754627974102884760182990489999467954004425806485235863206236411768080653427134797258652037346176498018031086266185053071151451933978546415331292484491474074864305221997733127504697591156213204008078333399042214219147334191608258605960101706753582449672366390334859844531249253532206312817270611921264655260961589567561175630341258336033966291934610073442522866830748938190057744159733676471218090687402011212017227704518321677354013999421854048161212309675533990462405393738837599139460817367594686711110775399850986129584597603412260200504188659684068342882899344021191162357492097799775678289141554989182607227195164060000008127914750637860755721760281790667672261753115804200197054027521085529745619014540751183479436265579937815414072982517557916783191130833561468070175125968226933950309132989971351929625000003677765172139821452482027161948932006947210273749911420670529537793500194267901380265874117148339272257465118089173130924175186077979650358097352735235430220265246136821774963349185650154835799773783700296147617030609952336222394318491211534910425359314884722512538243860358802654131845916329902905996313473551136588032352319795527850654677468006792667630562930792614224137711902145706363366093397666539289565487548941206840667094845765146323545006099031859654346892874079791306767080271781082852235424655590837461397613635571354114083120210732095181484442874095897319276779414891910778861334519390943839655277694205105952017094347076525046542739438565854384047536578383493775199935271091452634314270784813137399834557252026509473272771252503418187198975268889913019379210118601773738860062421767871652717791264323570949100001123570318303138558457067457475814309074225515068110643704742613454926751508932703838218951800791962023010201553839385738200479987028754148481882473353328982075822754181177284401780054008568587536909981180124464314618245071546578079646155092438102579016107561629901053267356555600367509701234515484658901315610601244284934016519056445237277820342926313093504226939657149106531368667973226039172249162841523810827798882523167928775246859268340714354863377079631669861604289594495215819975058407078323207645331609920440270945410113353361651173370144252501666289451309393881197434658458654866117952071319379075080238923124414856763209640785323579767622833896809154216401300651217509529528846290128569545604389065849818789424820451681230351012956224327122869453429297376897191100105863157112803863223066654354147794652118811612277451645082214333349309724388164534461343139028069593930576767605654709172956500570614718211981043860466798889792867415492550202567038052378079978885475016088915790637679812976019382185897599943810086480381050111286549344763601443556494058682506190892501641970470268491579112927873003575629349284634775380584907999129890966382113913558918972983181668555962689009545047668951171409664185921726776251283647342313045417436998550124397594331796653587493828588692919833520182282247375549370267353871509084922147431761760367457424450370198556243770356805954876483596596173384813904443798865120703267099143845481150913786826857682115537884117731279543077144704032599746945178035144844380046553911738611751333991217114616216437952503302223284496750147932007685621967093824556326239632455231860222944208319179751422896108305685901581795654821955445764015858588435936164059526971820746702024207008138458715946191846420027159525789960703074452161677970418364002500447949928915979708285267942728254261281245623271585152164184402385010589916507874379011003147885990748380197328302760265409331323611455488992205343585635911273181435758788346366401243696264638109292655952841345248795629526384262825944155476093428314681161156061488881335719620846857321674897855518320650390950851887094241382247661374046451182499898036473199937250487148020131044173029303534822290290425923645094624609005191695574945579245150860038109540084105891125891405833620316394671181264291117573668093221516489953857512368363030685822012149217536394399057650236439031588158872751996989694786686380774005090053972162418833322310013831609525065320103751962866184631647640237393711148803119242602013425221932467647233108107881031613065249256716758031439572224549050131272167802150065524523143231189898401049474914836168829574061309224472828698670423497448046130846130646624197186333411375134112701948870272037949066998744625670374112599542674818283068013317770769689856297810398935150786962008384575714916101710173932315312701126212373503698185313694873225300972581817716718349653902094337372310579651488875968296131351107566572002622322126459887903787587129133937657036298142673083291137649457135189566080382055232345851203489473597488371014600062004537624173915079053709727519826923145971781461032572180486806707811229650520136310292851188300833536086200848860549196299814790456354468425261099455659964384206748193512201940310788868753959896918455931465971494378447624167301530012984675377102182539902232090569825732448841093449314664328280857107429090072429118483989283439323586975585254503079137332616266071072630061306884314016008176028553568820515362642056974739580668581213268733291982018480999796265245708594163905589029483328242079980059140499928901483507139019308801963851121432518069006350430188272605481048686408941526215307339483918150695492033455435550359840200094477357700001621917232531399695812349437455972916694257412964707289093950607044394318575176355520507274802894307403737988779998176822615300591889865478490853441643430128921448792385048647823056171463840783074148431804006218472901459678688632595797689353983209338871281348554434197162055482218611256692816611433056881210663520276518400734935828840513577166276991045763912091989305409104857140957217174319252714980592563948043660906318237606499581347688868742103924417365854453305985695538471962981354594407849180963539934257228195971677972325875454984207150767715625523888542393788216927157922958813198120295771235115892087116722179937171630672488989231622040040122750565949904039754017151018868415149432151505055789719160084434523681581885769504528184734871822560441897078517495403444934608099150321012921988144724574403069837995939984081161993049904551270693506325764868530375086063982483861946639669679760107779495459128108513998083841412939499993110904817610152968862529694571511096183752156587049488408018616942125655075483421466245361164686095681710708138505299027452484887992169856601480220970911237238672338497629295650324005341265777396797502241005949018953971179731730640917972692043186648103092004873222897345649543406840072937306624320697814523166107101727896002214520469629608989768487943780846636233601610028024026488830377505021975609208901511709573934223410404105840589123207425133585351439807190765560029603185275006296779432846960033447558143678760801037314908265016138481893337513120309905745549216845694851272044909410020738454275307521183207347452301387851105316386775615567473790338261538768332201613964180449068563301569921612203779012213949622123743125211228435688715680968463514866269445102710487986719216503137710590573543413096847258019259879785594192751050052605757589036607888821679769820730934437236748547395298349076666229137540549185869958950468736390196620813954842296722787474556557110540962206050299368633370815266102582982439650563142752076304907628259094096896432816139750796688671447893997753057648119166543233429876673683360918370681996946913815438612562644490079389032233797413696412926712075695864624033958236948246126007130487939409914303211155379021243744375993101434811771128830247660629704627223587039934726891728144745015962532641107089725255044499376505203399286528626186274875277058059178640728706692046536212926236993519064001809362370093240961856079769671964807336202861179446963760063594763798708020542717687359896928496349198162660572009214715387218408351041363382136398762672589742103650779383564740989356394167917224847365526645451618364068169961405465532732937383587772387192995533226585658982382349937659594801761319159643404446521786302426312917260004247609766388280088681165591618527493130407757238232427981206405236253235605645933465059349275884177879715572595405355788733202738678124781014509249325019400537069808043062242511322177575788558614711274615742952522479209019564431584824962386800777252007846501287492910366669820388059698633075150459767124312488592709396769128119282856791309960896164378727017572938088758476525441079377867279328774275857799121223130645843580899395557224055047706700815039943573391497628141782119246163281685092597496968892172499582036626341949400844957067087712307656860105739183545563989818641223083743241421338613929581516605297173197394171134490407562251029383660960318169832925679735187013080439110750830867011300444571553963545575694735049033065593848960059605763375334364053929299941737441295391241293106244419958941301837345467698255316871157693640101517770675701711382756107773149901623184282223339680720786732941515106977509882158320527576534408881143494570222686021002798468548283412830084351102425631733622407133130599514019422124007914160069175829445673735419192411169889957066889103033984800527033095852860259612234026619420651725437297409992985955587841955498231372141392327619093517431418347891818190757454189006722063255124426939492336854978223901577966595989674265418156674230296386503974679111742922752052189305373338405166273565326726496340417506992753462217077641826092144049034517614365679496084122711536194224303916875861957615221553667208427861580879966822729064816949939989076746116194464334509825704128620245521753097039001332726797838909193482599038372022912389409587391427758690683394158963861079389516875006553111734379322418745867058599806525536523045251824719460224618983152114361190041039283949316845322049275082895708788638762628052405065584887932144209618070056075304666631447094596215371427734576957529748043161328732928147506648526669772018390606461247019544784343270040597224527081116673545292649837739822153818416167552802523736536263958653026252871121134980228556525636057074719532835572050566422325002001010751139598110156719889030964279339971917484702909782974399410594552744952714594296393709006833224619871717495636274054385087937064837517450361595941701800250222394413950585809226123640569671308662163097376435635089060348419330075414191070628817489447999479063069803328530012120517759849171923438372992791228091048894968681879710033450466665835771624447128349738177693110829323726700814729709080268628355654687897889384808606515540719096648721793570502359935657963824481400093175092662380262507528899798651440252642827455059834763545997457542394241342254818711229706447781076327567074944257965996332928263400381877808266570399720111186206233259819996164096586425258086579707036539145921572887280934335060379127923922196302959265825304547095111437640840336381104560933926991324577469337748746938694244922593514981921107180886299611316021835690186895715819234644601271644227085366013744305452031339572645389847876630585213522412775481626288768764871841991859195585598817380951728909288912175284910317088024956770661302730574527988641149917502763150532913584543757414485964047018014086807184254777999653923515855166994730719022830615224802481896126202154982422358943611197243658562152886850613703593310663109335742604657878997917232972192194023084765301153303703191131093793055079387370287697134094585375895170600469049524816665160487254206159493335788083755163181742407804298227965699351579318336135351268631916455306547402180276277708593604895326946425340288950254487463497022462684154065121366847255108842219441250418765497632975943184618934475660218847804289482544144521816614146684350809980450375044085935404379918195231001311075600239697197336094458865331712276135300067531826579935328476113230739737112526662075808611432437359350491623205006117269406903992988043375488218461544723248088937878267732767579666425078043748829493876025614219402550057527468199853960768656056834673633524729314522168087443582038768781503265800113941758679798211017793788656418429601147835832115601546070569222310038606695770884998774592974266095695016885219985228680782868486010536462614899000537397809469533113098739293973588837255131820100374431575685727848098328307596948918757193153846983260952206867449948595444173231010114140122800943228475772192601988722799519951608564105702709526616226892423175461649298834890907742471499445559149676186282008126626696269768844272215371822854754077460358662987090097678034742360538892825876473718339892182192031832719803385263901179364172727683820695136009764299504820959886759940090831383545560279134483261512028776705769182749048395083158254131133118959599618199756379335832149316804600038476003007862295502119242114012106487991705804986640061300184874652712234756108584431173585296851805226002814029129107870079619423913088450284910731482048143016856467563136787254786599689493353141680284408771980070799904576539043241918729370382355934674499323354257714467390743592199891922983217298909787233747910170740893846503763059060735532178124942367739290937152452616593434852451888074288245151189582479868848884530346256303653214319984739183979392361176544942988180335644366244980477836443479653883929004032323430740902950388526286384355200773441145081450267436207125506021123053824212042328447222240284057268045052666218391758490800513954571760473413025917898653693629133578458922510182775749964546195112494031093462856190937097862794781593811661308578710385387067846645833110750998566730981426527003021626171002095611104483928313455750859766869888008154703330155849378913796127794647248733370695237106179023721594362462763762321807588142323142858114607232432191308125033653116079168764580309730703493882045267386528815076398100263675165329736359507394930109689440514351166434276954675515846479974239187943493144834243371432345973302038895515312827537146041900165397083549609195655767432088464835775830703203141805571865854237337597389879897051864529894599570770976483720034144162619858516773356483045785908891362767461144372509519050904282612813301211556275179142668994823248695399973816698604284509030996484632107411585880268804866236977343223493230281500703347274346625873380642260948619954849560597906872352642578683095320996298655241267801579338328302179759693101747456904020576678382716700102445475051986579411906857113072790729434442014476506119049904690524314266555924860243905834284566627517646972028223650868218240263297042673474723197200989815027405395401244822660340399173592774164225639272574212089144149750076351413006820298376820990078240210328085591292847385001048707204197687319374935108492900711303459841945335473156265280145481176021541318329004843786009828720670380972529740650817861324940931786501621010532289491385113817923251446673716265998784573643023399689447496814803990370106478151881231877258347943467805534851012515170329462750972223008785805770410480598809462111071424495649769982123432472138892129671324957311835925290450676046274636413856127579315457055976755307166785578719642024027487276284902993534583896413262550885513366182060368309595448507518031209104162621185358614908147816708835016828279896959038229649039838125114222344000976284097201042554269392500034787392817671809893936427238275045864178874274280730736776924514012198097340695960571765985165713909198563567812494132890585467353904291418574527691686786568064873195603449447958674018556371998985736475442428532175740856714251462757834305535855664056393558016120974136113641313856134223225172948171231310336876915082401738548078260157007914685707383280865536996748353353180648895313282098912625714850044850604436611545052593431606202597139188001344807231161169037454093972124930957452251738992905028650048717684425421587396040635777516584972367229834817330229000365038510216718609771450982456761487117009114114528839688680027523384117230538424753611247550304760965388177676548685075573696652970156914772406080624448047930180840558368460699278721986233491975166269285568744715704508707216654133748920412898021230057270713654054500779466161529998477445188142711220332614801908812111536900428273539325178822778310918514956936761631980041910525795376121786128125270685329581930034977265293554551773064138666222045878653990139967032334101620469726229367205513009424965567954523349963458203597902319363641729348748997079692919963060689031340243956619059411891738423836093798542219275019792731016981718837200420902178085171015864309718924272686401540217877258473994540937972016863357964078041757550986906488400047134719891942502891045107787159667136803904304941477072379315992270036662507868540007370007160780701436268906349777615158371553933452241209145882576424524216278081992892550288039373704833391112199898944621618586008522391437941851902391399657181048687651890994068910419979240720329612189534499313731644845549824341311098843005040385353270988080473921948216954307592583100716900913265283493989972826888445445440808092387759647760492847567289001403944813900255153523251079770407611583886266917397804101729451057514374922663732431016005512007312614938488182977849882311501966148280397658080978251531074270475037462959442983593524413947639165620427165372983214835845358487072415966350482490806915217783314474643419704435559640650291409552035407516784370752955872469327268385956447616131925431287448845749222583233491226689927382997463144125642296986717580668554780892757264083866558895545364038273062140850845435836526633068079519475911321155952490648138693905814699620409075912616586430444604771696819586207519719460091154732701974597200612163072685539139965395509342064957266340751856678749782451177271480608318058850799741802820728298933886446907853055317221893601465095423777368229523885762931880677090257094599804874629389394483242394945068755775485879514960624489075405974316116269620572110370336038404681920719061695671406378104222194186206762434064731247848807829748216989435142525230933726859273286524499274261996263938616756068289080798531220981776835529562082700977115599577028699213698687119327045780414078637413489565878493921204778056538268078473592344129274133885171311053135637258015605047196185877526842089273702814033217690117727731487181587423281911294885490929434571690858461093864867123460376381485594069446594844499177043890336715993817157440370263939772439479933657270675703871859737788980756256618066470938738361469299132042986718941594198897066098776196677635632914146135698781746853054618873602526501080423137913177831818628504319616358584004820133544455091058758127231102737464494091724526431600232321596826101003640751221567028443027788231658625165541966447547116911411623253371328073197529796842596627253179019964602902955128220415163134323572336762787995172083623047862874774227170112654527132845488757753788309596059299784259296650523606114786470559201634945508737447176627859468745155271692206840412098685168306134975753170196922250992714474240224656109124511255569778666515536514571643525855079585404187252483597713462229279376839390415352933075529227204728979676395761044191040747954151366306616023910268529771685876700437630103902917556612712332964688695098837134162302900672591047816164631997804846406520373872777075422725343021920420788816923543353997860069806148648941383934299711763203628266090611359776543323063900465101105374917994425191528420288718236436409886863261760772187203476526614901599029546184329066914929521744906495938560754342591731995832489722578517652168629507831803955376324501223692541590316543989394654163730329479420575551773802092853461033555024459428358328315055555992842065445029498045996405177858457065795131812482299410354875731166953665700423945816330948919634907034347169332060935685803481586615905645157854389900427875168574692006162733853438394999914524935823681576013616819333667304369859872196188194683281847911208164687334417109434290542993244538474112249792965696964334352815656219627172480669012174450509422417942342424484170678658129625576248125224926142396833565838528403879067448505011242928014287408105985949809451191235414962504603597910951509397390852070028852082731961709570240862353400739352816942692632072168003563309137858377480354448573349140075942595729202216096920478734101815657821108554768592597869790796541251794612312968866282107001483453373428873020824907145292654142366567414914365416661134275383320309342736743727422115771276675486211958123550609906354910458416016928085274163211364127443353921741145148982377497788645354448145651629107766249012951570583679584890357142536491753017723868676406935810998486057332063639124094727439330786071080096816463251492751239662856182646214704888517544200257902034700805148215164349048168106700886883762481060683307775700929379902963154891828415999519832274577101419368059638592903373912114763207472670449121055222753462012043363261709802874628797354917430118103598018796570828319843971104860344765931051299614722406328383136729920468423285730424453030151366513193565940826602959503184783238255043749663172014697593700585019187665646719266685491436291695821159598515689398098585385788016480009827148063640429908511360569923210775579385552964821431132267787088971031735597726712029452580113673276936129448735590993592223441120347066289316772139402436648324919828572189433202816926678564437356568528971084343052588479989904738165219272267490484193892199723458836892265405292479401991267357587009767303280709857705546251112645687501627612495294156963659895767257307335088168610087842264235301313990434300059820355609717578189551960233315180531095629550061154727269632772535507703625534628373750094692146691964300886512983044413058668262584570223194179260051834216479010977273646117586656614762087065044155585317693877126287685947033326782120099471706367108566351385504374618783589316931618988279095825205904787641774364856369602058605209164043804330857368963399323359983326168291975699899804829004705574621783632010846114825984680643730342372481996170018893141578643384674813376462378018869681311810936215606680418676004355257385761782662452294721193834253860569073751884376423710491229384461740365126570162062813436277261210029935299755909806539779769666896046541498930166576168366458887390598201630190048708832569718669886778807321814070919370564534022926349095653070040699520078001376298685601880967656303362319456540530209313263395826653652592822570928434259970329262981825786309032646617132259365595781283011702376261551556900319802684856896348413518944914363958159350400944800647498624131553530662193974335921138014765398673787533953868460827691071581071925858579150822447461595707790800509208706905328743709681681868968015209557573299358756154336596875936641578529888161162418203242767235361371685172053956077527042453506882681479200418537161880266226200657480183185393849908272597078539216559804899485577835066689658235787196770856235790773273217880165541431526509604341165327428972842766013534786881461147845094098700961224494608492025296679649439472828079800056902999356807156577706474007108815750380448777821335237597303638720461133952673786837119652537330020329869669391292010112229997674209693858350847472969182626210666142943931792534156559741377949087377255148946152633109809948702625115394016453113039625362755829216169475450041945913729742230280591667654727916449235140118295181873073408194014392699807548060998896321528319636540639725721896393504031559935318962735808750115358354300010920656250731775239203651102365979879198719255473136200368249758940469553950198242387079268383768615325541749244134633554636392614895140891115043812203807632050641057378517031993212924659082726475976083438650219076067569705784123388287208283491199070450488387727435991679213141492070871973861103670662599742664617434643881677465577658945064266199316825577367528195675271029916416945710687798146176852729596441730933403154630517006413651143281021906093350922605208005410304557023289396017802451164068271666101382211320265310386699671435591306659684407486399527712491213841569096936730296517037137364046835656024316631265376722568578113070206897990866556858023896342673324635005837966608187608656645378176508020455027949762029414096128056209376665514331200040498321538154268238659114956424146270037671856500405994893105912345235602641414640602904699964676361225151101070856327835731339403425327791565180088334862856805670738383252545267037880380378816513389973689729062409639781753945796000448986290483914628232602644685349295292369264682173425982108332787292551142265247810653472266889524894342163240561764455235996787799307567231672442983879274671559099938223400403058271837856316119448487218422103108666089360087666352280216954817488773300655936695447149928538925995116158112142770319248095175714400848588201694318173168183904465908278661763715013428973767019294831454159638439586031465309710963514137091679868823621625529287111039621862423981768204457703558789609650390033552891320872468896752443151444587536118227078219766050841183947058652583898252191088569565320193505537713371513084704811513908072045049094477907057129859234225032885172060364211910938225467259679054871796628225418860714088044650261290237374981352218408640963370065186081452365891279067647122536967555417097793823231173666632469862764685948525788595429028523434236965189769027255746069376795415387192831364864676730575789081374436650546834345508719945189998429960887999945099829251854556125313842223613810973658510359855992541506139944186614668183482473074029375290838425310477190780251667266552039019601811928383016997299326146071269187790953014001546725375204723282468859696042636349431354746484433961679738061196795311614240520035626083855751021302793100712442695585837148453934678743210468291480197748065224692531278503078586724059028100387135800061214837144215543682439041991943835897228407867424086987114924899234816598802764395921114971356287416975785080950245946061153131987323382607718135353952560194483301435467648151547785281768102644447724708884219898043635939836228245521474004858369491360205073762042510388441986690126767816936384633015508229715952626652673202309087758600419413281142988217329173864170877749999059351014403238789458580575501543974612922352546489361689593442693435158946770466083205300081846731300571802013258570864814212030270865785129593821936575600393261251067237843790161357433281409464490350868500720932691729709907685741801349886352986678368345130909188431290969140791900219581073262652143057862285141404166283473968963447550508780264926222028401389617942554681547567067091768574688280720752968344741430758654402617512283697328101376381278557403648942554449594573797099483327366286750291919017175786491787909710301478721988961003532590652446338221205244590907807413500232041934310399370136997692839213583773708937247186746043405398468027275255501306058977184285168414520212093231195142836389048920694080846387175640347537150541215405573118022560630992635603129679775688228951595030951080878748075028462830891491744613429265220649489182805879219903044303507157898246080474806373878072290828634579628198455955744775237638911451912097403952564711023825366341500948367882111761233415952104467894149061480858318352024701812949409879800031542263730185212052182880907844585283567763880429514268266011758155629542768427108072601393405063739753221824991370186416062971330804886248721223966257786528106382578984613590316009342414925283567814439071683730316560653457221089596780566978169462627106832213974610116798866448520095500186284468969819183570920993250160636070782790496621721001410776535674700415625879637885339362764858926141464165224569417534074681016663969079456896784179884690555734274955980364101025072418797695690622173975245385826419203678585234674523178630701348102477938512176462600196067001489392447611735412819255608905596445165421094606804911848497885154966253927507261685575357228247805939302221677607983191433754463446683176569618073846633346925486188728271346456816592077165190286585536832580837657963986034028614291630214736152398338949780938422351081473721396542926463304109649747547720477739704182262661852562150782583317114745895569586133759965861118262924193176042958179078157541120361876610853164343840794315804143226535300706970464397429988476132772782983921016355661309782867194958127271961805871623878939059576548045555720047588591954722412321418917662343468851843024095291925989926651159467155774369817994916291244763485384884805201955168197510635490924997186725441582998556183605653704824005759701924774738056267520379931488226288729286603940010191041875695509343043913983373665089300663334861926307108732346855829793532835403633434566543194705937960589241430089312204582063364749780311819745907382930745014175638621204472189178931794539992535169655298431380672843699984856113164086548122384473597234570953458187730755717049041984081724535845500689888168005763739439652558418987480168273549581494136408280928234271427161908526794759910082445006564811388920733464300799186917192848904395968309908616948771946121510467694193043747569868577232801755835603692275395205689825158467079309520993274468057290855714049154761370317843157283819364465207580691068267232583604126190849433251113705647476527635392299865532264986645368992483031728812268995883421005563185169966845434798129306600943854751287343325589916305053131414961300108633991233804288542884071600453838380443849241140409228663582855208310857109820218843797698413981373305875883060335549798964118723471524280774335983657662711532327803638345374222912438781406026973181736978940690003843922142622461009169416462153428250513789356676020742624135050565172670138533071273047918821830259876431828870602707284740337641442957568303117657005581417311556339545032071966154648731559350580146698469020553634992195277584777399190256364230879517301473104025411155846900963305078622099196283368590613770304915347839726316702411234502015492616280319911187593034507724313890509216745055052583643371840011965054976032454416767198403479140603008058902487360989499301228845502656200233502397117762644277194176128314968232325913131815835085861177784045146350673699277255764066285264792076793979174096766122600971579185972359688794324056162665450223495302637122416692681866990229730471177705706702789461572270609464394806766138566520865809170847261249737585476761146223233778407232020939658997134348599342665827983141386417392526365764714634010696112298129986612736119213675275569201245169642572229656032882021539084568729581725726832630767064933245813592282674175683569032918289934612927785437879313580885012679364818946273607217991166896157320365058746828497687892638271509593729469461223989119897371421882946749622370912118860479699288932929408787862464633426167034965365372118860595305148832481595945532079150882634492359024738321139444672922455154355440981959837098486504611616186754863423905362029855100866334655351724104202968965662052936244470322618820138758121208479937008608459909768852200624064734139632080568699540269272898177881914989349021710881676065942891563042006662857079145573315585338212070621581902951865735252142693103363976663264426288192934616310743956916830348133501755257434562198708538366597351547533378461517924690552055512375447244256495304375615061015116522620588139319408761326334780414397180113636927272117050223769178010196157107734686304324671923603276186176198104448057748562486747145202143755650404280579503976515743176246240721166357201338370472470227951126721897331155013642312196817039647347669847170814785405560858973913683557934048382629178743516245054066531869899840428918429324686275201988419789765417531317534459923751862363342826777776920125960819028485550563979769262882316089328192288303251719779484658826496316886739516366434774479348422562279542368677478680701402982135194172673926183242230902791816751799881811198603892914524239096997358474465588410012749745846796108174012079688670285512218265312077779676425382774965072061902831110355689993508234772204776972751280030289954191483030012959268585600661008002917408326581447197095426583018836244339830458291215666397799668438877149874292824080248863141671653234421620436129273572937070622084168697838427400641127805960289900010713125003979921649600976099904389862766649700585375217588209933201097755288446796902667080249016782260907624344871974041868808056188054516701492594085741730972602335323608706663310028703272021836549319896200799641543236737617024647638134748543788146829168344565201251061262030227409362338075558805465852555271547128626728686798376266782630825329707731874038782698218709892846862668631289914175926459991140718776216671357750903281223833193400785041503090781246143548828117651229104168612584346027911372806989077344159493736780886940891900851514245234058098748343834362988344455040843222146281402940695873089362330882202721593585037181958844709878562944111805781434943235075993561924932131634864014238284069176967981753869253097836564099556555665794910927054485126924486238592110831080803062833322506853419427567732609385147989390244871352081096596408529912699039196250492320719534228795789159031433235143611360691997966000262853980284722082519730374237390128072723013865222383891720034298397505891649812419366364693068608685783162816850838924833777503032300328340398535070665812346490347706048560672065686964658326143543849656858515083024042309807148483259525714230224867203697469923605034289299828484608282409818103799569262570571875015463566035222701501046763454137755548790774103959098697205479012475414288560711890703912750063093737373843238680370449630364754060243006042389755323829948074366819853448067367674269847254849225730830172502411291244158609567138355565923907063981542690677883187044445281567272977255327657583312964772212479971227800993164795951594957458458303544123805597304975529630121745516174909199956618006733121603978703353418051714175812605053193394816453467171231325331800182462151551288258956482303242757890792139160128447001298448528877784324024289615139133951293589863843823863790808998191204508935617098469734549651812467065886851049855124240740412226456131819755790609349327411324235559552785812192694997320001537605359621710148291676799491596877837169999169800064912032819139723981141449089751264204813056357888283214892948578102259031071134740837021878893318597007185978610274150620538474379551550426264968224851280379117239390973611008662119955369760317360948356075679678850162456311739038054279432978486770785340861885026580677503136847070641821275626410707222220990828679420227742440753110538193003216840032142335413933194336572894947146306915924612628240189806654799186034315437499298646761827499485283441774913135353613726170602128616077867988342799221183094793396045949054049007436885638213744695959162203718931359953272099699867891348363410448813232552355557776994131068585344720321216830430070669323039502628950184201683050621195101472329454375296165756677638427079323942690713401887359802362148963840477576585932678573436927171472549092511375559370233020055699374913582363177501925085062215754371463306042903161810050423127132912820146974996524436901997289026766392513508855903128047724110378533662509179108737025451600932240597149291475862628593597941712517391515604827446697644867946575098752856472233433824166909317228890219661376042151677384099884421765159625306849998624537053189329105569551820898382388247641020424026398306760584924943032142651310599019825690430453611476945237884873059354955921992199147867897082763067992513093933229490242155903380715087876903792777596156355583905246768888689739528214058175058934590172438357079798829031665779930974244534401170959887020722815377375444652142002063524608218368191220463081025008601667326272307046813992620256933418693215724613336773145261175127504350827938376055849608112078740304920317349333626998399900646968975335065567704035063514161221638059118530535272675616301183136671642594595554524894442391388510393894485147638450389216614845360475843181188699714405040510823608131996204347333755573078156475168261491490848591291946036467874086629290293903468420975856750466219498589088822332389058080099699357655548506335024567313160668696139439290490310259241979495570217361171042118436095153877855115070698867690167479794692623780176232999718267842507372684941176954056339360214574340302262385941602324009228697042189498102597259857258380596342776648561819416956100168443510806686850141174719100311455213661467429951461784140126492682026839589975421225457034089820870918553150861714622756165315408930968912064228551265642026688494763613685699173561604851061574230007810585406821254650891080587671074040935007114695917424883865757299366524330079609239696668433819004684879091477000684261863388437785012633713025584128904296006103361761759905934030207670947519899690813180669462087397998142367710061474465322741359192959782486973878272261068602375411848823980321748790051775259770574941413985993715461037891331154874157865876893667031384479167672343349299100766258073917951927526540037523257483886298547329494816929525135314866470510208684841015175432672310109182877435643775251096125444558405647454899836701372405956252800756162466791718590939735342818716533406863568234893268765708506008757287954402722030977537485087104650274460634718481532748754795727815680353805047327919024704326439035090819750955452242762740483497904217521756671162787781458458354001966905959647993168592652125543304461601298300811543158133924486664576109779589510897073999554532333855556441619264669887030656827889108497205353504572221879505132117033287385730613470967691641764499994708833791159683606910253214782929295387307733593404780405676380615626730404662836758173586577533659232989224131544789660119160454289261843672841659877223187445247162991810298323891207753987013866026622699149448885496392800253100213632713691843867046355312773154459299063371264934087246088054156273221069707745047191667856947080357520195923326815622881160082716513272498616394071023032632045188959521847051813270513763209143988334953366685933736608773550987310299840076523786000916523239590967016917441226749872880396985097867531154408664404771324423802548394361022742969894210125063393427336919419913516994389900260617584452662964809972213537715434217674409956957297661889127373238711618627433542458585391954293337632264361976788830509449731394672027864056743162876179349653277650645159944280246498756751279976408115293013237995569573288052679247253056929439473327724494793279315079355042239558742017133558332414032557648902978499748171529205032926155893725555770299659019122428241782080526782145418238376985812879277104920855226892912199491709180528928426188628222121450937481385269199165118009450020330963035179826949257547017220542298038320086695310898695396237208446767878474090416417612834708399345513361992237088586279123922540413870087447810075327677740052091604542073684482666899038644553677496597588902048246631052962231523851427372261475566463150372192438851510988507127645121204206077596815887574571238212462524633136334989765909331849443616296895043620949204806835284954581191503331644964896677692458149118212362814618975975235953232983062376026445120126151510559985088844368463863607502414060131397893270970633419554166095647877809311285074930984987728935485177469849411870352138396749587987915237896999833668555408139215440154072403058401353101444961838098552050954539022068764543543850405483321255881934832105842671743713838791608801675442520944405264212781625693022636190582972774315840825499104024232170823674465271621166020652388885065612027601575826674682068521586728701819434166049103732563232013490593041539573332570893292403424892121607148288378787721895900797608067737359950646313743726307719196197791829984139202320434603551814077155120019343274499276995305198394838437142930879455515747596548111812379496924194383440850552671192319500408512319596223413205721407822911459651263156611305852816658411404250158247056485092789026207869295091348194045515706816031735367504850481942088737722671029717095070989423476212184009003477958008518312165509207693577738227341666143884844015234639639289042213114968454024842061698497686862132919677409305525671727012375708843704625341538236172242762557207008190434538447200195000930789025404430300782791977013126785251525667440092367378695102796586214369603864624710226590609884779128307749521543596049488744007900893912823634722202473522181774662060928345706054130428864097333513296597039856991970153522181612372371564246563275061109432049198244496998505527072355168625983503052657539150923907231060293389143218885273769917999011903879718469462080910615659912234066436433168159298488528561388933227630632409844574941050976426014068055124245973745490757963987718617086912111876243973316378664809877151979299722970810247343478515947688387112990302402491769119384417232500491899484320768710944506557425734679039357480146461990994783611895413166217659017362411480308758826301525165543551792833573249494497149390243597035912844861744144360555758865290919399842230418603576353490971705258334337013069930476340024331554514158892171950899702773476845602412881746187215483789516844762476355841473393708030412465354892320031098369545432287898632476451045879215240758934487691898541326750978484121656473476872339575424250820538895145314588753590665067956257493909162825639730407436260529692575788234129821535382307730836309829720879561219377453247748703383714924247641276242354350708958698706201091305607971902424524251253553736510270011904457947176308197201375131998201672392659539924184464497964747493914843400550853521960611605447664042624156216954272435443713137849832818068947617008850242657077806493286440132969811632085852444815962429769053814437352734156108448275599805497959300719848925718466131640162640361873567496884673612024871787687334367893305914712501000178983741301384179795052521212031059462246312514024327342357583462177967249549978189158724138094804805463239729982833183618639872442920575945574321602257776314323024244782178880784630259687616536735529965791755145957059511545649681459873702215868912561624037665966691287007874300001389887749995605491525530466420076222349832420002745386141149921829729838022513356976689537534497543323639162597416873870655180618816583131875642056083882887278147757109414121511686812464044816268074514271690577568274557968115653336981209702137800047127213672252943679585146499380971349266843747251941304810619424585188669837273612617001198071407595266098194861766996505915824387720224996986618396932893144849762939529489834167056974938582653849037252003625048073397358428219956126235183673829973237025765850491876661740671770106811949857109610748549593985674925910220369399097196126875416658651870332917459701277135975828982760089651260831717491722628677971275174340222761192916532877466259518876403788510507563067328490651785696724892449888357603576513799282976674189547012725659769431546477302836525380526685857702806435104704014537136204904795063257771615533316084232364046417059734853975434999251488095273965762791048678884525901899110550544355397910954554142146532924839078539699250501089920452495883803974335521627403709216478676726820434173284425656462833690763125422799235133525071600051623722274110681162686283863950740744448509846950115128649761793121567609587185259705447639104539097034404316553614832800117647184620577938191205370036574739516272205767342270323360660798030441302783872684674490314383798264679466151960589618038581183184672838842731016541070146613468065606118777614869631038343783832501670398787837161775326799755400808365663463237531406911820049051725304340460885956685186621291484189747136649367453621263443125854974079356662382865256953883375918392254805931656594441800247336923387536357159454782674991053101391027102145420030568901846964833966300146483296238815864070412763991795366618025464084942163874116024382094635294214738550286590445696998831559812188260652381787792992053787402976733939501158165323691143746219919856131807230319234731845746238189117731584090963096911906235158845985752654728242793224219217644064137742929046798657267888902496312055854879917996889405802725804832607979120693243347310993977774024156952928583803744687019573457072348861964278681952307694413754944925648319757944493464315089916910030721381673317569049584243779518484118860187477195883259011103273543504341840998843204337472110912318841943730967181160453680842255771719434593865270123902075857324374625691344230796327203126414044766383770814694564253205482931140448031702499400347294034817280389435043108568273716892592547165471557917491702475206913400665227793795989643118079896816732226688742532258154502588821659830025237513144658990358954887649689409957995618644112072980674461656579967591673716185804346415915239833872833463785679666485787524788946382494230126326872000776072143777184496386140923379411438810336137341908136008683558505021999850642339295907371334258291794680046636763529888538540330697682797953923799848690720557898943363799262944118063132791558776119882192102103705744973730990115789413466353460377087252146343895990854244271049978057608800713477653037142432512063402895015169977000608273868274611064159569932131039019091280418187335296669363785233759214318217676815305937382028940670941346630574899661339551988412443560151788341012925034306278806104215973099468899677346390458455633387090438795567571331558523264777929027764252546415278153373744151876985151454248855903238578652567211136499673673142250769213966043849714636628116886623843166657526183923150538170806411898362518073345802169426529360419100871306382570737921752293599204817460674241380369610078419850086993531155623973977603231973545477059986137533850160426326135682021776344551238124111156034025822082530769072959610924117820912703941181572608878984183999100599847006828690508845210850572025174174490745820266741854695501858712509230243367958437210800732849304862011976770353618330437847601271151281070769277474617302732407178165511407213240450351505138393160512885844470254506771991159846697326548709123563690784343361630612040576768425113754082537934398471541144453442112163258301107335940333602084540358158460282569944405119510307722791265171029118716099132281852890408620903621849620807793520806745146192779905993391911044390803553450062481642453646053842748296626978573712433437009943099612616801050131827062527809262399189553645330788635853181754181754014313314733048745701516066322384191762704165734020257644684100989374387181696202003632854831372271898425998693828687043281903952611069572605708507538264006306409539635239209961627109737853078054906885664743742132399128699019393331367180857093659586057983883478200834444126560886819314935238264151799912395133460760606635977892846381897219586924560988824571942983520581823144996051943830009267054141472872710310665840778165323348179628475170538372859670139442389480259320367126918500921936121471253093766510177950157944709142903894211063993090524465784689712214458723454873872854818931282652988438541808130503151170516663680897937565186436493567811764605645523521167274228312021896819807894254128379597655900283998612927870516680851606089872120520733946624427225452483833351445107372874018206657891746892989317592985536767601043359290493430635792795522734033267650531827248472931385954176962769573400291145549048549116568796986551455936772938177694978440551264894308229182051072451979092858956604133363546287672118158640785847512264339267153451551939914197766358749306380157185739752733278660111324490706490221645549227523869311383623759577127040908573608867841342846653714614836295831881207580852771325513666558361477470354985927986624208094771080472630761852903141055946335452220853394029193775849254368349908780932063284019285572719468113385741479249063759529078144080566189028807563082982549683755873212030640237752515824639388737409245438109300780122474605515578594500635556438506720185730491855932038665437701274848628269319436059197439231556363023346562587060919843081456155657371535580759858324742128751964132274453766576694889410836645456012732368771144616669450203825258629450108907149428326879651947205512978977951132997784496764639725673054610329913716292276253764284891616735148534870901332160609249111411816886576967158596943373759968707182288540698659858066597805735571819544941817544524266877901846625071872709047474714050900869437517250506039087161810464798006444655884908700365397658643365182224583595043479471786608758505009791911463348280423156885411026283819883139092837660238094996933413675503465943059785175688486236242125988974969293166054024736348935656813647025262461414640064098780641821800208435091988150082564025102579172674971853085272528936976033423722993922986085539290899703817237455775168776664544934203918042770707888968720405062551259121504483927190319058234116478963979506598413118965374330621541353647481494138071716001566273524359470150628321224477633183904881217387328917392323828287625869438303684906631532835628562912576679873298599690187514588901966407619194949117039810259346563974785990677400695140138229227085109381061746318456962760049417312492431710632593862288510453334375828544432041458505023561886402023346677449031839451048799599179680248207978490858757924535636391895788960559455719010700145547341028845686565373090129630262562166819336577957522228670332777456380553470261470752223532916562627003217928282805224484588384812023080716429249597802102664212411842444711590592489531872903355134309125418684162296719621720952437908185378807030775373655864527652956266083471218114000982049734924994600798582708649532368565068144053370373517655136848472903868720523169141721415570967504692535901465916990699029673840663698754737853468067417222853662242510863701423131892501720204252300283268944351275737059287800203961475675148814179164373742318068846329391020773664049347536354709383140289363820667721657093889798438891546220941709957343919099050981430681528382813645245804292473673102779627359340899269902614716093973079418426989349816506139780444754221921900727319205751934621215458367797971725645719488859594201971332457577566754771185673973991081796420274329756167822623347302345384721461106400181363466592363995966764717677334471728340711931955036334595578213929678334539895228498784030066729824734269972235973809983931099492027029442579807988289043382433082240898446987427729175009039059535892355770236664098578184311976698382610701041916951982006139466519848360834174828051414354875418010102734578702360319565267420439171631044850669390041692257053559636267130953741566552256273984986738894534172726131643680079720031826141171146148315924249351236184261827324063018086193431690919310998653309983918201988313328211629322724574112186454135436722921897050233465979862453700329738259553413816749248037247725444800052446098472569966853793608348668980592286820681018924050290007665741181263321798494132656642893580046203290690520668304596502366929927981638989885271555096418459090753907751548241847164774622159581186466654275414581472701309504172924022791763416577979631396466461375042415847224601505146952855435122310332471397368900862255980738324100016195259858629073760782870207477259893089439289954072925462536790450143650305453900493082790248224850231519315530164793983893432050007498635428591078378300465606651434282740710033551380620035019972335544352262430418883615389854346775078210843951062814927175177027578929742791334502816756303193660662623516030773981788696083536153546666113579436954439911065769772338342970030373358359473448770817874302489875638879549322642458811141977735620168508007304218193992823398776662212235245786077480076925740597808156039000502022501023624408204263350124943523402270846687693378778475480592582769346313602188222821137327859790194683028325161213001333246407539387534171180909025432346146543649034501531067407092187895998607717365937071473010395968055419479322540184309824690487877402989771171989990623635962707424072964498099873636326352111757134057390538028877967176869248124047411521245391205195202133546847954045860406748699265451660820953580462192845145054022400390458794827044625245024983545617390480066533175220349754124590977582945435361680762741328655069484741710071483077721876884611020168575065569574112636539670509349331397324789523344771225432072831090061137797423322891123011223828722927831431276448347169645213370107878976071555709906127457221949666109186545786992474955124637257439014493928639676736927336522751463484568782825099732070022623644016631626209869696134495256241042110318405857998116997781029631639080452719479369426511935743759743859177772691234330759801922846133549894325046920915512769141904918367025509531688971870809247330922288893544753464644121150939717902789030818865451948809756475749977909132729518859590819682881403276662289936130438511245985603246078522463828253938506254551947608330346635839834398490348395738097051535831801778630571710672563680620668816392063794865804779626732404553899732148305615367036720580604969013388368840158373854965927532575295675102016354601713512090395891110815557644042460315822118122647236468929264910122434005079771590648594291481465923175643163315590713822509761502268522911149128310022290788908929818673814025415506415735806028583014369567524123016489173041417056076222225311057659265313107401642726568020797849050836397153482613241166935443228892392415264315689634998978464635749677771629166550046862868659265473396862961830559586634109735123398561148231725818862045783698356927114276313753651500160007250648204818816267641081649891305269857861531729453488686121345032574713235446211035310474194806515427348979705762849934884270969465835359019454452211653331141187343521984534341825236790717928259151779135517010674645700280092779310489169855641569656400929093119210896796606196040939068499336731230798666309074461325319264790823421766264247687937055921118819014713505552007784599958019107168811377068687508353745082940973071898060759913852092222799368567246357201150542410274640792054534748129184691581444232701370378576127166574386920162036500696974126768694536062284217715124377221103418507297714072373492386817136947137901070258293460609957432528051100547925780570544573587413707597801581625119932411387576917567107943053916872525328592070654491218089600945960449697029382415687059082568258397553435609318955114357166441743331778245700889689890161597782551236223812324055395572083998574729957355489523819089109928219201473316638735377322616084781492335966111770755542349232271271980473550083082528720541750379695287064737775388462281190535744087160853372952820761354627692964231969100190316394386991732203828583529552418053066737212270883835267276921415158933615028395655100994598985557514928316125839367789563812888585921157756804533021353800253689988688180964164757238490659076969827656599453770954808977831822009424086887193102074183498007264192453249290909227088973821819084796397346759811207060697774034129999361348216111060219440810552181708062475994308825158418645506780937928984093120800193944361782552451785596740355775192141104256681340908871480452947729470666166176151968090152488846899858461233556178375977761292347266274374556708986766319983002405755944095388661500022616000252712892813377043007675162419060036953018120481825857123181671142965092036577776724563513063170043753693214824434373757994054121069565917505128075157333714868793778152944377551908249792498231918531219266295503113088046839176939520850474274817791688719828100051616539170265471363040072922727583989223915914373567158154440512264127195579804260191349234756444206347674254948845111657691183175167943572100681314349976273115611257597464221238214192067982237466487814108096000192459973619923669064336505887037746156044147331714179625096936425891385453309576819425015276875179231070566213127959899636109879521601722534509923589712880727578451875957540462336112852169807251861914208621355317775662998805520549758225865547682114111973672842177207591965618903479533100166300842668941433282570216613553179472137610425117341183386822165045594407724879819941344271479732128320126880949948290737602432122320772858886804137552893571662793102064731880152585028363393323178591135620030876543600689660289369783146709788569589632530644019759283382679342867744337280478879565678624806904822164727740673391610183377285431125346615849056031021670542075213162772819411384106913340126378074649808464732951908585987587991260993592375241159428885608938762277374568509458745004609006793269039356010951329712544464589495394312546933853938865915682611921454173281132846929606293423904903832583551003745222328925168515199468630406074148932638695104157268062668005469727547272341653474101005331430933312117879745181338406663522031666070992733213818484999994456344751921287907658524089065505286662282568424244435368274755939535467032171871163972689517223906820279327522740539347329389415342846698727247477980659595206521576009611575338947316758321842771962511945846011286078633220300673029409070128284184378727594107911571211442869211070428432761752609534356068099088299283660009825283940178215398656609581573743495687177461832562090574597446036574558323318829737149703505190457210944236922211090567409984561175182140286128918417554165511321846409834722027423339568402465897471241253705976137840245145253999264798403487544047835988573988840040731140313309000519800841860364474895252087750375015398293824802118857095168485377995769262507577093522292850308092806086311113681326665265383037775862925029120130063737777821663059453048033297038370601270152125460286262457038601188226678321997947537082377674366021192324597356637714452707869525414698913751375884234555594433493233646556163552939715220715368422497894312602322109773523250583867974198179455806464030473576160886597705130787548770033485698961735245619584913761734084950602977344722862113464396845387326714957191611103107725645473804425921484151348338996549097207662825198708679656772155881461922074151423316911383422488899360941224110406157995057635695317369640779863119069929336304434736366876756244485045373462735559203194880225166850534116068773837299131285069382993462178925384330111929149301186388422993766203218699305773122621700264151569930637431302198417934549301865946894433208419777949087477640378651629464511609571201524336092467268937037764930212760068150317422346129567923279414187577962332357490968940948499413452153372454595467234754034182952986276365046376821715474480368795993726462341734053171356932925913338721239127263120649433949743801032003372935640354287421284458302729809650434877070641142160147147334989395940170399359134803751491456730937993367013411878151805757832342942583729718597792572075972733146007038046190286582509304181455822919053421879775671351770864847556066081468859899527038694111711783733632158396802322268507204007060089355219608368188316442024005852725184559106738154343045370891816462941948540056535832939061328324672485511307659735722714887367777681787183737305648528494465783024059629948590520816847338758539528460414097522352122877448142638064328357086448602000433402087245793642319502423156106602606745609266148263609539985012619125167511738033287919594063553040501233721482056124446528390165422165282531501315043572972515401649579563549663998257326301071265424240459406112123929568091123085363270048508574319138517215447490102859949878729742303020762997005963332501938137423418474871261938229235450720214194071505603834969924901922071639756025430134909928933471060102660917752507084943403830869103754873628820775022035247223790030880668024328208368285195122189542205313644489801621620819170715688113890833078251666170483609720121356856706874187226453383160947007658875923687142706315507130918272112463435769390477829374126202481682439567186748351948090102045870651483466641857890557176404041563990530264290909663339567996444739840478329627325156364293752550721945427733354030533486489410859633795660327545246576327617183207658504520599160237499708390355007854348149822266762719315309113594703348862534841423173749940121953983972375017054142603353400852436973796755627418476168282306301036348308858205774070577546328197290423266062553086311060747030648379143142555593248952083193577648504836827351822438117334869539629637739776302710617558452415385513580890602220217001369066712885860123996377944092197602186033019575258687319202274428015872082985085653988312968353031758014575408804426814489487467242843650715775928230037013223246624274213552039886837601340154860923594835813708760101299095197219257139010001587899392183748716836866713368928289441538299339088306672545686485955513909129242150793070992359106402979542121383052363911170521570756627836384151503061569111423628230074444048513244469713246712185362154659220037119738828698924124565601822215073839373676575622110210146011259634586324873782617007473521972292225064665336511119561401805480083163004568847434105794933363404196820332289486536929554417697001967497784573846046750867795306195075815257905975447711870696580030241625366266936336434361792711580524961563924424685470830427586749964236692817941046927006117731269984956262244865136403141526720408797594995329342305454467417888766452090395000670664540984427201955640765207255383095636154311252695875962364167142728715203146952262360752532082345596283014608153981687609179622630522963317507782395693277977234975547974675858010039010776369909047129701164093498895515022516485711006776492778324037363765046016423450856226378567415885461466804663644226926726273451016118925624836704935827788509131311082008030271511866210456372453301729450905428190298764947921784475304245399588939329070758740765396099354708363491889263272292181640598804961516376262088231449884433814432017144502271964217111882396153526242213826081151606271568742620387455051231985525183279194205414940498675959621579683211188775105757703244777490555530072611346264954769979736554475346075644721697908690194560959828913781712805097793525501720705517980207179254677101888651742533871453578824213604094737706767279463116029909735984437203503186667374890392360911633582669848900987705331844569702836171018917263136701344343056805225610580147115062373662312726697569202076057822155572745110050460408587342239031928075014392870302381420851702136943946108731479669040940439862497485820671439996452577890540153818980187286744228706334737571665133587859370133709390856712538046581760467412718073593455594390236833215304123172867833208153799017737146446190707523092804187995139783792175488936940866729079724837713926152007964758930564974590139278510942072556398321751478012684867274474937135185475914630665458376764167684174512898291310318991112412169110188932284838305542382549520508652189935089859327707143097680382466682193326098408345141659368849894967325495863197528404351961404381161592275813730241006682718693536478061909451325800100738527042604303387199176440296159025522948978979301811465139931225067970466591166805186669046640699086987535949740321974154484246832911931991636293850502040442709051022547618010963437739738192205500066671078537717109947046006971810614431358749600999187574152185107539496999209846423629693693244591450902768007333290114953211805935894587258938993554039805273036129685139588141379928494267790481353791939222559268361674755678799129661193238551679999746940505238739418132885832654293339672239998182910588534062423769735346476375360924870337401463684764361821980487574673988814389011567657925999221443902628897958829381330737554278905695463562281058780115365538114451703237120709951470653748557235441092539206763309219950001386663935567341201910226853795835874520703674235502383277953964390713853947081126740391678911054725318390259022767942422196167829059304801770635494396654913739016182663717619917358241054833477774952062691113151482051844913600128961791114615942564756686758009165802372008229592977903314030017377165588818343930620780567595830932361447687711562749860821750392395459310633409998190101892361947847135890820703313308026263733829352943013749022846125324522472406111111447703546486000365372916657049979840419165062663784536084416914323829263671958949322047734102428326734959328200456984398723346374050251666080127739962207458065614504339893219524718998009233170048311215526220658371170008367514062593863160790922972075558170132275497875929274991810222871536381752148745377720860741384411078137707614885514125501405624069434100384549955228479876299133184111102365155950885461613451064572629393133859439745160585971836575411592460809213782091191460049958928033290757943499575155444148200179866011967778909568732887750081740351818121985005382175924489786223101457753866807218989859288773309668053923995992505485359796204821423728598387247992116974807289445096957964827028990104057395476304358531547497508504763592057092813280611684049136709191710346871017618955459022318499157237176795779760071276179227110114649797637108154169578132121363762365121675642969000121599431461593892387530814325192909812802345367793760788525677906921834563571779043012066299653417731998727262091667193184428096578502110210780565928562269169901469252377429142967060335903838006120948507146246318295550978742164376974106922913320003402804559993523213192784687532180705932131537866576013596793847988708528493141706724636882332934100424805588785016616239596193096839001764389785945344382216662683098827190256913859286612493265577559823793520321694195675199558172326576968933540029120681639645668409483704936912882898665422451435962741150260533283740875615366576072792266911076504928769388375902237632791450876758420758654404834813127910285850701896955072930148099500915622310714595926313411056905976014495596582308884499409903491903091254201529078429029529237022032222508608352469244970765342468497524825077441983495997253186541912336361018224303999424250780064932133523469100223952350544966905614576285517006569269168815547476093480116894513899782934201046732415078002677413102312073476525632232544659048635775198275813518771882235731892469884641002052365436620202090494745089934998218095463396347423021258085412357112509671345142246417669104522268565607905629635019998769636308975336025973098684562788286572448762287698757553296229298542617607343550424707689849193670552693551055238006586165483365171629917608564481172578496935341422370140643943956398836803555128400735441457356331922268110464465787965501890302090762845168303208691968406559190078772507128176658354182813125530120386144400140279043758720943538597130967936264211803068251359933487021561756112336838899140651402334419688228319126760988730775300615673124374531155733799043128962651284791348286910122893029234275674251512826237731936431843302165523506420390183283234797232327977719387743114994002585203260216306352308439640172724321387247123877839138238637428295182685950497593969032451144130596637226781350799792819721918638368112323708513857640910778005671894856468800396671433606684308815358559712236246961876259672681276772115638400340955570465391856055358478954112722086043398154567915034015371737150374526828188406213588662328624111547487529527515920015598229525476597088933276592785593193660677584958944880397332677441100475427631234456953150111401498878944930018164023281318316130412405919416723925537917421960542414470427762831104429109474114780373735078087009501239372065532484102904229312402798032286935750156153402357888854375595761863671615533023365458309977192717760212243594513791150624622811729335080162731694664997861891837025271445499013727366766562361617802966238966677188014309685511324680560516469812674918542566153865231934625594971924688491245264580695819914821868641737010236420487395549467867893347306649845764738488796897792462939561010758455024342314593822469972754751427921209040190246245012922514273195531900505812705456443895421350207616507648278091917469527615270407085271538697077960135144555238594420738570117159389795199251927932230448812979960385611049006612761509618291448256189812696014121345290520461809665441559459502269333475697910673177208962309054174729794581750388538838688363875664610631453209817846327096734299360266622916503956460605845794191565102061508767067043276157371410290426717305803639642975101017682133090803056622544080757076065938127887012003665178050063795782782916853370649929220933847615234486708805301555877093482502263437875167930559101422904456629759922180414653441701235642403207171275779227589260949852834647749058338724343523963401490645452813719878201859242586160017172729727144507298527791295408246248190887556053479413352040067570288083067938944254978842174416890289207927964194339320116632696245645906027357493983680488209234990552537285548699927116145785729796344056778408595388331501970874414314532505626339166655632627280552805029214727025444667699142738443071193587520852361290951384622282839367269120783398680905401416263975818292453004631368047431407847876046077317273624690206933259603286168288761888189636571091103581923129936359510389459195058294222410787931000207137417952961219507689307814597263354744146644903773278068848499702371853114376605183158455867022451882052439708421666964728683720583215032211892290717041103722706074998204060744237488440085842088543992927869133553338698688124279877232191919609438011200273023259067162637180865959608064156384125235422543274353455003249351945621753832157170900613044908252695390900332872408494083370164127191426382592927487002451764985754596222439147199818878123528136748415781975563031639337994943126558066013549854413319310533376381062506132831114900846372820670588248360260189634600812846224492558735132770224540784126483045632284208744768225028996517444696579012613365096188277976466019913489652499014704079477575834571993454016900026628273560183163109335789955191558166349433250079094486604025100226549270977746432043069911702083824173943488345283975509583809530310178026289477507292657343273164748265112020786235957299609993626764163055785171497028038122128572116104729538826498487716093596795605538242935384274539539230427013792483450815465914154274516851349460956141349170240772504577907969651197464774781753035235218461328310126340905637013839027806604067946896438157711846944560152067984187410632868342390812819599965584277572045353139905489425501702274616802904630077868962565381621825341359618275818040754580548032144816970550789411023829119019336681682968724740242023027136455476583083718928225663414495309028782573492213166479974279695506862160220672833681993963271282460747329226394066340222062542456619365692003614840980395764505812930327812165871048731806767752629108015984214368893828479100042486440938435170009645699289368981939051802670803236758854157704435539531544592376816028389938965315223749772122118239851712114856094730760620463364009039950897910664618813811276936434119505770817569179749824655037696550878035976404104383448447055146549941857300048031247854229404769329211492743554648248839613023611950634668850565775284769058358188936216622521709705348075765402500759180924956668610290216435309261177689229000742311681008763255728443026728530913759988382384201826883708352420625249798704040057593893461035965652436715890397552793887678575121557718192909861849670023681059191406990498178924813009582607180768584787638638031309492545818598150242528497761754440842641948409900860596457115984464570417158671475510087921295487208321282880354682153138730856114103113041683938225986918696467512605465182521658502666510458967330589719238771173916967337271977731690220249739046857622181206843679171168307865202527301047301685561998626827469484316664314907473328248953976603241807072065131643207670762772030799095930177118401459370483020464661225141805604135307990728391319954672218535007163121450607568631074657626977280042569408578666340625243042190758978032040350147451171463035247118908882640093751835746928510178127073057956593483627102985138401968587051506965746222507586900333102597382184037576368912096619105220160955586303893163169894841929405669862776671151681428733987662644485263745575656942374958706015333897380208495663824859386638736128860743816380991021179491569827047572459850082198182051329495203169753859038935856398773495704897788948278450078249392192734835125993311218604877899366559826408269508651466025092269778633700247607511665427730754188343778688728543886527019422304711287534044189968697714259376375619196928719114854337409002792342343891400113405060457045884480816341154397549907156970709617417839731397402432085825755653258362666020483032542815572784119584963678352466601242205653664146248440471254612802910776563689259829241522666066112428358598732643559835642845676708320541449187704636359754425800833245244547369925695947943194499511067847435751898799901139078182112339041910983667271415390858357637108307850808105833253425367137855739071007103225152555614470455855909015321622200455454619017299593577182989272667526250995359085281418500666582736423340503128723656719357671333989164888627490265081162548081390439275246122898762634175282087995430484756487169207616018615942435931308389243762540236731053744743928215089304898687452160312700705238016852816750063450452428867004017286686854742023817084755042311918172545670581515147520267344855458885120917123128092919541531908146377717304770190984931973098863158757114960047754236223893145038748890914360941430172556965821345569141482753894524722106529740823579627260272071565475272000293524973919731284145340210707818362062723536865130437307690669591066138766625273854327512579542060127997858227581794591329720576906295651725506445151608897084755528529824005445173821971725216950291104361561361730978121641525226249886927623149318231578381365314252431024119925939141905879172065656930182984601433842627235985566822941847831571840933934800538410242701506747321116083863919939819337638797524405247476291887931879783591712632525906430993010689013736070289982728883685015063523723117631110508894347738330989764164008433934000604577442613071801210429611377286500710520238660313384764429332864980898197993150542585689154226221801755489901267489395345888168379965095102946406981312020729163098956887392826727456514900583456171007787404445677158079220379310685776587165202453795330958879363966891706990107582846008414255766392375705515574778253542459460552703265615638467865353010930030260374570061660809772739093867607962609456033237287511283043946774842223514366148943792567597257515948237767171687917216647553667991984587405392631354572716468360406808725679444581188578900800457650182346477188809570312446497324872429481404752596049358717184593080904639461245164129259646048984832890302570100082700055044309086356538019632198396629941800504594849154670061416202561919385705386037442525362929879734856658992611068594052512702936595897934356562496014321589617056114932412045645905628308585645085371901954510235884769439713666914000186481183885007193411791774353203795623871594209179645965835798819120331415249788196563823394658973094290108582732020437541077030173061592968273782461829985352330607740857915357670796890481889069675840611465565923663872011809900810265567163105575110847551258453454916598764032905975006761492365357658287645545675475803736444698613629944876614638780169753864145445794666504175746200381660162915478779635398791007796553247368056851012409209492086560541809689588007150763854277711933876029916034359438056475361495791528299431054792366043896490925994473658959844071042500196381640534897528331243411330347603937831395477900873328436579760741765859128024389896113036932053660981327417709253706132091798136066671448703463745513328749678405966474882761141536087984588083505874750420718703207829720828068173706075097359210801032969592137331095507156734584350083682505379687784843562296267171649647330333566314777689389397359583422945040073412435452957553688542491307106786323632922224315765265313639192016394441521294742200292890671883056923988441559618172057769727312764599770535167130960327855523355515393689531546197711492132156088820850640564761765639495493254331567853715880719313670987091402497360686457224356291247685008747214043810555917734784301732714623356003306487416151738101445457548763521322674238141492460447351006005709149921431144971231971581140322512115559972715496978005526147390790991557100546655107594996514226871636961162384237995124080817610870597496092668281886646931736593135614782161121192890006014028852358370259568304422123553336962253900317016587026529609211899687951304440178555373902018979390903229583290792650142745056026650266971932939073807458951676566976702179246992366482052840961578089363543223668171535520675286307938294094992741680251576769425721674686344897599330992696901239177831681085852864510428888407309368224780580348521412883255741388871718302283125177913803415602856473045558309688141788712322088767815796557357303057412243873680513314659426577443646537504091770905683903041368936403426519611775125232911389655204175397489962885823137595673921857273673363650338080687842016619876059392726104385206928017497182166696597912955365011783796199705382143267424276398344771133936843492714424085610024103257080893230538641885875226106986739931838037056455598008967190360206882526808442184880326949697749640599871150564545366185394555201720904811279698366103388622122438998791711550912956024103983269724934293851185157119471481929925474769625057336226881091184742542237864264650423864565933582629065624191233321348181645522400166704492040436650788840295405135366726857160775962187627899889959760066373249974564713257330766991475496842517917712768934517866383061175568021272427529485413960242417830770174774797722761296347775279060643260215296415918967544274037250582732632319146273976380897993396930923990121047090600406544663840949491066974789860231377417645379847310890305228098222091626202704656062520534045058942861314400219130688473980379149842951754180684979813951467307218172979180116007532208553124394474252446358644642956612720217243625498520720133669583104961849321141809384476926950963568154343077708955484122121766493538898780036153729945577582996510132542920031313552200878399482432592991635226223344979133979647897794940935477804226576390562444009794554597213363211682928100310772699194041716130513828633524308163048086016354300708735162579989555362382097014247437847886954006165271475030270952921363248516191169219353220680708476632529460327618218374933087730147023711337683937116899485777398058790589577540410468394693320424736434429807179868869752839968604798172027634610583890151771460818693712246731126082733961414942727039200140679032731974378746911881630649796730829834564007264167668126950213577401737114238502403631019149569435118001568519237346715393711954753020211473009002491596266197483796414328656028511474609684995244683669672068482886739361664036328853172411892139226989001441921833624066341860167003178370921324888153421018089661666774221939676658264993788533550820974819537499319876666028047011863311305922953894194323815228592003116544870596298544543267328717307925280050331356410603345341108011578643985746016596623474607738279682277682511155653312715267559454816882847562697715890153092715144417143019916756651003065552736748133407441874747303543823368855799713988786268724623236077667969620264262678602464654064962868438960390626943293181885033498563712971261561940861040407758562974627017071659278326681695769855260282919495054638252283813026573252505496304664532453968213985850592610445410484287552088747289841417852330547311525581008036388481969405321744256659700162586159588608270104621458271604809861564426001960911357349522041939393445975237654154868777671743508694820800889980216856563593064957711559011191720531725342834975182871204343591342510523302365896259543390670093319930331403394438685911388926664681788316570258992835680028497478115620698361963751300815399582622459201059420699992317758368634740126337549332426902384061752786812337197343662690844658323939152708441259128001282823979726833238839817855811280926336133303458705888379317946942256583452950259497262353654172204170234914386139288059608415622819972924299159754251185821584134771792852873608891845765954221984707286901201089350228727808729324525748122332315931971684004183417105449310716991100633260064024402361401668064195210783120452922463755641350831332589934752560485218001560060468283523618244279412484261624909686772676162706150075929582202388624787683193157423715131898037814370967800924385923735393097357105627964796745835597784444511501228373423847014583247615803717874749728451716693102773959313638648700098300467558601975868043622020148519144412506119449488107934867301110845750909663840607955328697709925384930434510442276624534606802947147582484017006539952374758276032427228901040088246577988989425905658557983252606529129886327118474981713362986430766891502596762556566945422498181926912660979075986250963624205054560326249081846027650675218130773451206723281277259894971385805194006905402736041879787319562892990682612386875526182927616505243899720572579020320835593336446958646834130039982534804683651941237075297072335795264221946582599403339698705624456723585384774584030605580032139816937424469653067546024631037975230796041828822437717698506101395685905619003293738264620596841643934314395346379973382352496140835574669401626045124164855487076005979755394033054034630945212172471908558989143110326258792177851241995515082617457193911500416624546469225235250112558162638612279270843773361130908024221521539913871248813046586599573702665816405250115328610077654998510105993745221736155687518204399694089563971182347589457157611921499625442533328736257148169234867681140058261359371297291305206369072450818023186290057085390966172837875743009506408311873396327955096720709163466678955625914680009508928373234236408006257308933829383272148884347113461919552433833012610431077214594286501240417622021091099716912958801345265948152057998707281365291726366671131447114199635862475784002649941321476684634820485397662487593429517206564702622870578556688453697183963068235588013978224754354869243451573607099761103521524944249713584461848235974345668913497318260208482970388149927750648641337961177323303476117967516588065636333007382466821319096777452482179129340778199810221834409809933022394969177461534876159247588888440261834680274681307086072421401839490864599030226852194013833548084277798604376481403321879022598911610963055007194202885044184105709909088080615490311241350403551882505343848219592521962325372836205498807869148220361937451149383387668385741161740260103939074345551152886760826300866815086245897438072994146138577330340352093631445681255669270427078874638163298315517978540183883780515150783874744764910908153302275404776225388610653232962343828383937934464611059820911245479329211571639901036204723310381730139009101070939829054617435411619357951342828761702442221335964090756588042658826746328457582011210902617209189386924839608790881543435655294902339584644391412816584793767158257548544882831136674662730706702802568494677866665419622943340309415699229612283827629655183889579470406483486991585847315914975151562443631036521351892684535321659746181678944904636586252571879087192468020507433451607834907710183772904178869781390319039336705486305220451792933147621860191461833724600823918050994898419768691614570258007161312266293887064906498463383402514987817975661528374707001050625434078128799030674359121130598194579881695916877873290623473389333024389023332091712533006833025984593006139126607114882021263303724666737919389340490348506660299175437791667890986487042146196486382121683315136707524341751988012308099415759755124440519328298631559351240546419926100322523628407160263888835582111586437785555271950803225399183818754111715751047647617451842690650649505199646712156787983864052570066121649885451140735525369794635666478225661420395405209927755486043172240503721812439864553524917894373994773603417824937802937671015714277815015248683266652872287406602943167154234974273209071325591037229323870014318649370018951889805287970711551588086455501765253284018136562377115605769395733545371429866866224702577855199637333518484355663073618857134455800705812157318121175416274266716906809832406904720268317684159120853638597705113413468332488599719522626802514747902551498405300515171378866782157304181208890025487039537455085695333206953408989850109472824161600768082786523151015296275744353250123923463906405005686739715333092290136373587362168192377853387516322158140403438629496308407315469304377639193920056572416904740818524081094750826486323360810441014444117019981208845019471018858868324384277418768162463404786325963666298766028776164371275515275659976816237187730683070231223991033965703073860632912535335176955661574375065690181889688052003786727031649343259691458670074871096755249949993341172222353529236476473922607342707211630774927193477810281744822495841831122981555752031395714522694349468989196278772971458354665409386241292562110567978855634089222838119080227521913823961821245850314000242605364759573798459966862217101394766879352406959930140378045198204490707624154493401748443971752816370452892830972798461874694194328942796058469876073463130096731718489571894673205553771929744362773051510576700295020889015263266832076114969923738250772488087084732637809202982913553918473584269062182185069868370677680650725699814971950850248943839961171752626727409133391619952527537157667180992560063444029055230212098818463238108389920805356574656270509277421746596453045347215300477103023031796158044366742697959584997756379063646565532439100913445484357753194708421569055022508253591548794733843024625144155727908152879987639910644197336246962635060997115723505407401508770499158468731934094820927899149465621612665147186578616547388142747815108141444462599231451056539128873835474175253718259517131006615837545881217521940710996992441899324379412959353446320268322349485940334716369503834100728739675920575636451251653582515419766560688274740309766644248987628616794304763003497349228757378843807002772808448279107822201683424700199322169611924044881253728285355794174790978709373895670832420353547010447849595587174138845811774761382362609025416279461300129723234900320921975328558153106625388968305439665854040762663105329190660803721803548760273160662371133988061983452364070565665506638719082730701094045273665738132869268756660373367488931987930473600959385125228423824896750952312824219179090187547742840847946668713461820850977972159701905516335056398662463167053428761599275838747487324276671062375552228365050624200326033989299310043143628088154655833196812414737780462733404557411177118419099225723746120008521738195205590349270703413451038094478299993530931005590931083771119476493130326396269912186661425597924027454914168932792226962562035176892057948132216832136446770174932329893016025572043660070146727020922410934653685269953902463634983529074076299228257586468814565207896046143217325190426915388011721079220025228080048160680968507796775426150652813854739923641002269884339170631692884034770343836402371042266335830351169702665170789125671733242802126420289855389682090471839028526578601401630941846702703885310356660013138513955406667368172805036679543348057439362351267573132211828665585944102458386493956194766278369662215433678538102447800075946625817755262266772304361780077989980562215150337887383507498452978057996838052523732695699176394896217366502374355835188650020658607728078233795311895664606172403421692759056325543922685890609133489976139136207240658667720799461479605531233366503942517855366513152277361580731694247932632593243838503562905131602709279483888438441292203284309878720457117202290365532492090449852168276352773143286622880481636150442938896876359597586057788436700936393779851606429085730713580916432606457063348324256318090978492547429131402415463229345984149009099517977146664027702028389441214424085525785379762256018481633596768598954336257821913776595285577846331943752485977478710213990242563888666279998197608071572924326953124141188917724441624941489547729731254753261057329031211245763843871391650218696309766298460724574127735922913203110225494477754091660664078919678631826217527554074045894339947109687649121877572741328663926007987979536258071790917766370311200613540581427666936874346177324882467161676068861390191895974108145117387755489776616670708842999188563593948498205199069239534816102728916715241977067040608951298749331506337984965366593564856894809669197442835298612969078168947356652923099637895699975233327856547708868650879012008635880018877479744682618558462251998299680555764102418001266397973540674700788516891623223081598300114913206495588486604753383883408595714513009715555067249904897863502005247784407221026507534258098857541718717347758202052982821394644053616226187789636682988677306804969516757628256624317210387895786355079468259574598723032201904323455024224445625024153458170637377260022024453260633547696267145545813877189813506259589809433011325398287644545487999419318641256679977447676227605005254726350799777432640459940867790406516088284905386409249940313303292890837621049521603859829117385923200989396573307271585462096434479611549753899322815587789856604140847736267957018784742600127264944034009692899650014743150464779887951762203604030350616874424909834877081548175655480718439540446068059786587779938678542581757581905317418441537000127256530842367649818613254271495227886120399461245702180048530635829377973156053012487236699184194407380534177659345573181440266767375962685757352301898493571769298522948680204567017660095721878400040119010922357309283091143854158573266095156399500253948069480500849122372919047937825969582267904192290080766475615872135025402284150264064945040674318949157886547726182188302411533225184324869764393326713547083413738740017799386310603731731731710178426020287181624132679895829395972695540676305823663047535740763927613928217367194175509649445696348921956275888430243512012225694536645577493155205929821237633750814797945652554732943674973301842379080342576343102015972514420162505858982364665133165159610904069917454801264906115324630383458506665447268982611022953937193542820569215184019387704765047921642078791244959727645986726196312381752968481535530441490865154634620199741465884772396341074519807764784769008246544722353207662812703293329865536178690544047062912593600731660938688763762643734913361071276627089662664747496679064477382711135200190568318802976868271731044853543102052118459381180687673505400686560298914375853444494269678772023920274741394532501872173550368784869859641522615548955888983896237262708196884271258747734383925748251574091347729843008053398256729108500692701289446166103117893237725329610717098868721737813079898077902824033494748134628780369407618267822214502110156830581893286643208557512450465862243590758642227384148835084192050852891029695907651393094857011602975714395212213412395901208129976195135348544384378649394788631745800325343564764652574806383212986444864802336781757273435609746124831022275052916943966512441283403098843568487825125603811962581612706149719719752621919901305110893039581037319196880839859520885919147057457355699585886521555491763687761933629040194955678927925349129804823350746495074419532375346575009611972907351163182043350293731193187386362563495156903049145139759933776904591966749214948530006302538016381703804475705436049062388645773261190133918029734889059899311690749060118517299674586786458189614486599135667047688166834404660418538489409901491445729481022619355206983889538176315041077441552383832269498747157000818562801822832933569245123836488586110362582093892946252931868158659922260943865713000100807332732666656093903970854672688243793650591962894994735205018518614957499509066559674794350977691370594489639578214031597553826933582799515462905199019303525768745454073046434268089290328490657142144968109388636922314384353105074608554726590264181388956708930526689562258086726234783362437086440500345859287437268381044130407606737207592501405001165687582687972309293437867323984311709311761624036833367495157568819652236322453931091691454565544592379147381547495678393470085354155845629735561901778505387502357117101225363802245674474285224336484685688782191484371173415924853611518970444083373784585021918076118765259391859527266505291646687338948463282431535724223606546922724830572793234196515780484438602241619455465107218350536872960908020064474178704019971151753124384061705050963962006830937365595127310927012310432916495898298915526196818797670547747858978972843859717513315501850360552499186675726869285668719200642747807985684319423068808455032535977128007030479225348590600409417470488437026505127377532222999313182889520967147902516033928441046611882068452933063678357953024038334604293716072910817137674265559974574738953696044107222985592848043278227111590200370382801762255317790378434203590868148783943908359318804759728631878807177127164554077502087159069125058249497147757247937560221674981235727802148420871997628038913057959069534223559307508881199693620398084923865763079185763521058993696861127761619988299347134189502784124525724085638495939463385474696294539346118583699004488428983799074353591988412286350606956179901188163601578263947021006243805745735977316374944673842616895422613930416626428063272771101675479014190735950944197510109476953458069898166754856984382402625906385299924303005784217967621231096650507287427888581513066128773362124238442321699434365108743497209319553329978097815527791756683574602900443872620483624822569714216777112394511484224434334362792757994564939525480403477050205006907032529549554407837518290951218176830878092709197803117179250881185944326957045339898221909353264745266283607230335390123838321973467803956084055619291430965844697377047212669906888706762227172707223225797556128268544870436392305190923553530552307001416270582482646981922606774376090543966832190646823356634744286418642597487037215602227048532612340841265316119900765277118620005410478758177403119192930008639162604342091571970843677852319246688376869918217141343442547078637703130596321181366168564841180951202024928600257028809610036953481497065667917387278985775212862005409308390207210413760212255709734673188906129171474262687564933086528867356217471261344613653953521448147800879663077246714362640821463384549608789607839917119447319456459436584929480053324882319159197576375897467234793148543706807716838711389828510829189678911626122455594263104618163321333329165472915356777492747952905730022542979215763614806494932015870864705499504772384335211590661279007455877325043246789217097105487818932715069376212337070262476474018941181781507925450826227639673616061038070098909359151051809211267544169981304353700634681007809660704166343037344889560081701925118996242083478671190634437019518925331919614465423155905998975813490304423705757170484705255133634179474170617026925934962294759020901006046860075232550129277468299752407353723182138064828826322728949423570216964690038699329278759432380144969228780701516055550433878762446140935935345661659131686982400814995656619899531149849879592101181780415687133090714114827080822224369849511259743692644485756606794505459379783096935305633790450594355280965967018884425784516924075080017977713312176767373138727189037225023967787822391694330290751953682879815925638230492756030905851714898659769010866284666419715620880828826046143655874555692499636542439277372512553669261251337924287915862197125066764149690023325659663349676731407681815620071258826169351193226079679461939464116322540287379812802436508006476385072473634871845166279910959281102391917349837278216491552461595637869916252304307874397477795782712677098290122875999662193570954728374585525441655085102771218069413513021541760823857047156675965142774769397967567244114871402092097357500932737055895388937208860099634727968669303734879825004184645622925421706197876308638626568547698099788954504745144196399030649291751241871387861422752592217330919924262082899131906538671095185993372108568257573717242842664796332423197770591094578486308390197408879358996944478770327329969672159244468656349063987641476829908902441837325985199724028898957435964623872727211232019782311913129316947936056857077367245518279963880277287262884492308175324522633803640550430667619884623552828855134715909541455110217939613170200279156958706038365112772710717648137246591118497552113409481361452532374226152252697668041769637812369654291684812926604959524185683500481938012996238790510706772459588250169495320580574898389070599266242351670414633961680383025430841585786576439465725026861436171816183079895930805863284268612177610298805772520718936196166481270741315869703060529481803173743411836495676251504701977072909378567735474188860328385856967894217167733731510857237922455749229018287399796615535961472578092883894769278641711490592728886741025670560593183018409639602480851299936650628506126786448683636465610472919123559673820790838993346397312198143984999842406376431553261737372973370035540725300539415146112320021934794705066966404607938089479765189359929810566940289920438870703016229582270612152755790499664769531620289006306678728284367452517647236581627686915165373930468431042944303197492986365517074155727489990077339398159823351132671597546247797744852684737498458088141747808875162863844989507424361589597631653283260941789281292445266015460754331997975710286194461696899357137084578022465354329607585354306317510412017260290256633259922273222903104841161422244896471887808743215043036132797147407199833714784054852411268470559612790097604064213331683009528537845413251231685806811230575191894059363798990003327953700692916381912382407561813606105138884233920624152560895113758378094797386190494577969933913098689425595721777837839418459079142728439130837379363751144436276284649321304041154184941171818260359704745767179519879753716082696669326742961373516523574803206218779415755820455262785694947689978220214796763433189426767977985149221363497280761750919556354432893053216690963711286704316033908173852189213168376258300982368742419212806613757701768436344606833243054546471129719502914403474879433892120334509987948725721940811462280458263554089544118476299025272366428721220998686075307412398639347382282867067985885469319609766952529508396819354995121359947722128554517959109883503435161706475810845264053949872409597405639413087130688780450303960332284688029841628107365373344827931667871306702014720120499128505012498040798305287583495533713838093382003325511711023910822781538557937955870817258328420038002556170777402967324581422132186051051974497683635048718239076178679293795017425968740266613102377283861094475940877622045941668270308864967433776509053629504804603962869229229172265929221665682350095124406645314268808495885168991259262383254756057576938777885489708469406949682662254215505124356134286864256356275701075858871026947883781444464471585579938953672340785639410577157097433727242604086345414622884398834963831946301307855077944075668974138706513061837919900333040509853906352574553152475417255931664172325729447692945337780173944902156100191275513393793042988877137785610072418167044906798790802035251480400173330250821243386222173753074938716696686522475014921774419868511147059380801380878470144209828606329874154943515758402277218909478108002531725154234376849075772320915358460177918451622517065093744322543075431686868690195672307650527201327988088819396607680342810101664506605286240713548893378490114030531090091092100426246874791366292240440588875616198319201656522453563950435219419327753366537092680046563830475139449071790742637350283640340510894865045596113951885868279241124510750314160195367217569676548074353435788166522097781299887404124710355334037138046292947466584498008468884813557890730952786185517290967375169138056763340954806825802773073248913233568733402977885650218139583287169579119027031974530139096141834990198321633748466066879581351140107439611593615758414449105533212367467860288315438018023101519171226448124541604879923598701758529550766281205250216403141448737288755400982671479750880786102430361348462287116328724772578088940013641641408834239657536875191339566207008876039226944626728192573530907582502820456394257453950243029594707404147664905578860666523582735845878940057489821650962881528498716048661439389211896467904675140097357001941190114729869383866042816250373389573884583607648783571017769722143549254798948866239404431181047784163211697820109976039632489658350695067733624225141676289807466929484956079062406270299873147056248738289135910941446048380239954313261910440618558824421558219421691539768291427008202509046584634699217744375170681150375693755858742570718545102645500406618339062120088534036276887486534539623163371166932552027214965242437898595491474664344372391098144715028655547553635098961793326100319356120380957153879435924855079128069384110590480309252590531827464376890694772903913530939652251828020656937765971711220547528637555478828055249516018711166886019909778985801693340338139634345506654408418282356429293761877410939595529625752831624528906293247234358039186904584132219767371387499251033696137399263228491793270618216517347086340329616486671202244162535067766066443967856590971484474615073572033143806518959475176019290865724378199752452373247385601567328527461473134014391540449156133368583364133673055021623815684252917505626828029070913844193057710356005291716431378288697373520599879923012865409040396000163666393417016158376300157687633095830494570275335506093709518747920631526063231292841134403532094287429834434765079156877353213351140907850960768651874522493554738774491660397900100634643690830060987999985337973680449609838240453503279526175641928944269938982531051998836277149782652728431471737650950612801959498527502337387027130128929026856986316613124545762930944243439324929645246597386867118106895271425809385817663619302642589925879993483222556057475646451370214699252230997816786982188710819433899258133835969204941317185179412508473177441901091279930960909898029725615873794851388539357091836016717771807086309236618309025676085208856435753708422426782375070854069607137704063151415637666045935528433676285003678849724947290556256871973440870889573663144379868002921656504454373622356528525042274229992273333116156430257474938324099294051933883602744017403946277008915386844236801359375950186375994564665849879213171700801482716214818179066652531955567665386786858152091822677804519154969275861658782534044756007410084913785576416686569029533446645841996380911362167013757043906855694974279561767875954343161002158904563155852670928314188602507046713352628655160840845331423934899364356415302173478498606971557019104315156745836301423007342819978550498246322820756246305831540574300189505617689188279622383558271494790565837981918650254753576541755576943934950340734287395105582719005783657983245581459013362237912257269792305518710923488055381601301718477799929859753955285901841075772235711410287313659198653140227285057722857854193266068370061243984834263733859472956118508499786175552809420185610018792934772655837684658164149875953236222267783919178317072743852822852414199586064402813577346965329637916513040044259804538991397361785242582636337706451461642297060533025797589394644929683236147975244267444873947556855406591086289721359970651914612771353044927914426664006719798833325148816086282702837582226670230620327166320907676135910628333540567705929019356284918079574194605497811978397800086229325759085998260276977590141133834194190708133555310080504200771815984494349469491731181132652960563206219577172498984387914743998448278585837737789240055672358434180475331261347042820280665781642837060216459921515048177306412423465667368770115294126611952805631196424663363461752034438210833643327012753367656909719661597323147279945003428286353921388847053395965107749823759508720079603269067182518554401997703216920225739785602169312854935014744492765683793612184356402380093108148780597899693395319396852115606968287127314010045093722337488247061545935672346610724262613938658511736833048943334743278903406115152127830043782494208726456510178551570254058319646875219764495600398009758094459297979877841029363066308940821038908138226029966507662432716702962388600548538961588720002084737246678015649971875866032665975322388489290626156511108669064576701468449468420569756341172584500531145404856113931706012413248853952104690483597913467533698465878884543690588373086529057879561391773472709093992338371403557311831103496942877359479275109247265449859523186240460697503468285694880426931578396992578912350176373617827024187070050317196764702120104432999050199724505064682099614079537277640741348888153162114952140505531225929095044025604905581232193427830334886371562193484659994510125270216265468503846128838678677982161860788540253349187115317860640558829636879127160891972255050334331294854935912883071190057152744504892968176309131290719353063203774224695990620730401154762132215196815442498715193221164754928639436749787849326539313922311509911873333204620706036623183097696433543893488421737339583205499985365035093686002472963275561435425285397489627093397300229990970130443128055567734555122515711488155157433845604416616143321566647658671308514217152053279949097173706785479893250093086443230311419222842045122984065626140578467172991768700500471339266316902182071532686100096537366637874867451361032606372609347807027667545056622708530279049461852024244533102460375787130930004518519472846967462151227841724901018737339870240025876240405016099408682634174821262140090965592929754737555713203509589289839651935283170580534045894072706402596342816813511001731523407917397662243216187979426249079331606202296996760251655243827431600646952447029937376895590189995480218217749883969997199759568539992095992968285143348618803498678024509500767270742569851999734106599888680354222107488617963842881605003158815392740449554872387156406643675110482850795779737805133644904355316296307628401806225272654267129104793953194797367634425210340213805854779500113326076773360321253541174067630536554749320243339361730086819931783375531149395021140595022339660000639769013218073718904936014461292194693831781667461199261606406353050604535575891355738058431441656155866147113875490881449518480269858869333438358492929546039880404138454852428022487047867989768376885654599442002351411158223425830044464943348955150129166956013038843369003641876544217212573660945204766765520229159139617605699506225652325187837743069207814395992961722657057433044306380247770363661155953848220057749014948744316629651516595567106901096809978789293780226265399333404117616659390100153047471051723118961464713160739704893931506766015528109714271368694858880116938288827263400031412381566151393677482328726092280590881666760603573426554630954527183810196147322766618012119690233740389167831032378874324155562002147510202338670969464999986892975530310214991223723635724023455473889612276427603879464575539782099587068634038918151962003258411571945766070118659696126696120606699960550855405742505338210595156431683540313885285363305326900335302361253340451422061283563227385446221817511113799869776696373927470779946186799238036512220478148540811077493640799041766436942018096521957339790610149352723969068918581493251626146043236589886598279768165171562355132045316586564860875956761048475433574212677893683566673990931040240821054398776532701243764280419433694012419397042154353683144266435427970197939985743780347900364501737711194247178160794637949938638835805264578852409276657363845513105180009012879417496099520599635923018941824987833890459114164690654225358252646349991085166961526173821684180169224352762966507859525178048162855841939785439462979491477327866191398041246657591130559249217457363429605136753545601565890551644253772553252205509454991390099028707759670479419576764224429561192690824066749606809423185165669638547235361549117898649247091513162140887779511941101228002148473536109502877610649620771672792062405983373667095023845555884007447753980249763074502105379938194872353678776034910392454157520756099047748515577632399925900130446861371117335854509533720555179731125529855181040926960832792061504078463721666535177447285605501142878566979351010228394236692943076410831520397090681540289305572347955713578981527472592927507972204593119431122302161479680812939068201211690643760392005830473847049599667652599670133222486292647445124892669224774948861218498796955047518125997412429126771733756036025973136555894771322815179526758885421412936823095778941984383295146059568428241052720482732041047957980999856090599690048251864790882541664873444434049887847911847318635836709357100056285624287751370832840266810375782434842010755699737438005240643788279142042937095541165560382815399189497730342417425206253078402117154742946892133166076689173717395900148490334151611879384874682952606140000809970519107456681919432504827385536441932251125440202202219687565611319953694854658878228985405131847800983708554849975060622675822932134386550748351266177101331647880133171169646393000549621494131096241666732283013858011138945043278128142616738840386641722583863231175229744548254213882163598191819748840761415399746216218646527635900147490627506648738102117647025221960911173535310261088235676503018000390888008251441380743688608969158819591905275124268940935705748057226411809998884108676306705508416829137307339376668835314341583660673936160801260446717552541906312409308538160303643920459370737628157208815873180571056239327853267832396082312992498399969213841123048560868467271273548705926992823751663293219442424980245027702093598759144278684902962400503100382144364492044939233740778583770480489147062052260958054537972079386688802958498455509681648658767083283940192246946646841507109372988508112074085310837510947712176883237868873088872118885684357992381407777216824073303231202063960831714599398810171075201753352292652460280551333726641989917722857270332091239398068532393602794694734714494547370763081000922568165508140013352683641204971527991898580518732346924366432421945247125168858586136446641744753643380155976968509004739983493287283452344880389471100686502936047432111889689400095830815833360030629499056888375957977761685552816261676313502240851778194459580902964407960045960804226676771831972317277807445658075183208767956011043554698565293332708412236479168096764615410052766034425228495291435642210664868842758190383258217143435201587784328425504122423289393319856289046715441475089907321500717492395770508700260036420810394544570472805128783089005433786802300202105408941268986948976511777122556163785328844818928299720431062540752048882051052376704598451363846468685482595038014080499637546462672961002289510543478339315005171587521861996271493329327585234767420812084914896989809160772959168664441490844602083921791559317234788797973440294227882742234233558282233476717168966449895337840086325647905820238808952332012814783081572569307617712588497968278654984502233271103898808860635895888609372341270498918636532124074462629742266876277026778608838883293733387510453676376495599177216668226388959043729145040982204373532516422857919654018578077333420698677609288539116036787637364881982370519641452434646202103408759356625258336911607999317739981477920649935570914547129668830450020002106822817392927560279507440548210640143741833654145094844427428260368214270435023771727819871755673557423482311853229745779792404919589073909984170119599544265278275551004619960795124979582254170601935025308029488769862748673567784964362269871173240352480904086603597118482631888903342828453673941488046501459290792912482060845550594409412944926859609344958597950455821476140220347471962271062585322911117152639664842788110959415980193748082816671461893135480360124170985480590551403081707663567676978363902431228270635911667367738336675636906237528416755928852712862557110361716785542095300158203342563023778298965314094548630712812434081249093830804990973608379265600534587961178245649363101015914202948769753677172009245058828309417515043691506107327184837502599279901597507139362235512123756723140350887625038567769373285010355424526843789348034033301418479530665826760908159982649427587368187253175440841164092735484933761799276162938125802807809252185808977890526970267479094105166613527908988741582160595775975386552361563888529378359072949144717870538892079565647213700678942573584311392927903801322166601922195275232475901674927407759537079720641385229584373674764669624235091271023343676414726156315459564954542651381156055441729216206260416400479915057236300134487600278065298950873097415702469863293831756504309852522754174044068037934710333678691806559023886743093950267218210841136231090598343879901633705511603181624378738158005739581525354948410357343243044253766611032919831895906331409026771107684102902352112776545209014498468032825188327504936086182877659688605059454223350267307751664687031134244348792731751053783315980389007562829252774149694209396564847833818986029717896016490652158913048593188452830426162418004939785130170415276109996039610173439533438846699464713918724394416358348975714785030693027274818861303067430987249319624901857530711565485257822796787103640873879633005538544770336253266541126392027924868337804441792850624505669867746844506267905479416685841726359451266288591260960271551752052319788675859125093702353872742206346059036352458733819449228946583436937394605791979626367854893151865248377201781304715957153006767503096849387298370525178442978472176254557663298887768422092195184213899409349056291574002330345228191657511396953078566491130594707036210500520562158383679515254155714423365964523147228229449323746613377612969879999167497471554983702538300820851056381304125053064190975362894785316861805825327946737847432347618423808526345373251961592884561821935539314292423888516544825157423303979778358909767239174315066742918549895035969603081391322258740174646898194941738310912953721378711989083190307069752751026565216739784204062506166729702204176986070913749182489286731053013845025120622721259955467573445832595448666543916135947669638775861457841274552443806802727070796549733987125060336320119225367028689541791617050142526926097592804811884295586105842162851734674029615886975492824885358437448362932425436700458667003629153128531474624658903315021128225540288061439088521500498207551691563520961416680783949065275039969156918729777504091554696521855225793094462465365920182404459253587424606609906359184814664655571421398774394705096590165398416988553006677672894591772615572714642563516917818739085832018684838629985763482754477686031728246141467852308876351407338425617466138215607443531822125227025319652079772707114582980748772827580591902202501476368331369625832814464564740091678549689159886034696247894593897602991222234635200197135891424849947384882059414429891654788707861030224003005755172452817134714379207429995944119376937535537248840212519653246157297730014410526893908213173679694005561802012360586886640762589955461101301449437672439811775397769404230411245291309619690679156793518626928449964814964333935447595639274045600875934951530114609974273487147064628440878366804950827610568762516570799726322888478740737738891029259963869161161123924465569744863679407524052474368020194284630408925641836660736744167028462816695665057105066930495783380039512669743246767992767870323816648429761283103808076684599493644172930260711164062813015145681765110906947251035321928462398146301068878102177516422971829627352654568899899887658950932986514470778201170220426024449358459107096843876917318368490454630365014950649380072246595145583323975620887533376684829853236167293382181907014026349211048186201031976707683748991415106948214944216133701001862996764211603225216722398941602011287808076897214350832575052826941046963523588541825585301096065860317181133468502520016239282067450413411256263203705751995048450434210361928040211531930535408477016846282339603874023129697203522063848419648300237271425718690568928610610053555040075269146556369371102508100168972910711740617912825004627381074815727452756227871013078032714464628261463001794590533355770221313003190308848250521471295427767793264991380510029260929269820963983742013100584475380552170710794929093204867152054801188090806644636775897944069151295748744469646995390785947918657687019596810280299713047682271672891332899451453901272098206702511581799763646555143604885930748850858442751319993667890641861502180243270595633902571461372329298248284575611188773541701206381989729696039141332907069222891578864865226234071616108017202129575631848322027382588372352705635540197809747274355087610154545605177992332681803852955406170893090873527464667865148375602642116579752148889347892614954496351692100844835428024766696334666174752207200623490379372471167392035039730046910929720209944493953694196738329495724350690607427941075745497609898069382273689473339304094737200544277125145575524024972598889682327762077663987108827536738462265690619293011811591390512706558491070680597016799508003233504606572027260880572548691397779554021993499522406501316833841678958070094466286059233053524504448014425192270817706324680244813195565669763050007853852367297669864255445100497797856898455178386691824891186486712696936715248415631242111706760283834772118715686777670967414572233963720773678339989495674677498352566955469077946353893975059904068457453896524769514939578723675234550232594313086353949370733096822919878911198099920758649029013566869737985808959961828804778435784543344965544735942054787404197828677732939677938042046731251602992414254702128051832729998702784400506293441082386070022921456515412224770238727044466851369049138310268674342161425021069093986089736254915941710336289193380298234770301691133845982152601201394935277903168714590856095101728133065006452379293093981348518988884438979246357155506142630784468487136350106065025057465984376042444095377117931269882206794161856107007945819563324700496076703475947226775029945784483505024284011976524530623845544787168816118576905310832644573142835759681042283305596510055097806520807868911077384125424014135529363016497780561123267347121566854109408986469058789098770059858161408671946282463909178767525605087439790339426372615109969913999550201775804795265225817608683650668829459484140001835843699809642835066809867171595444922738042951973205857011333730185078379876557600318235446478984644745786906785672090089140227173368721554397850167269088652337670206496695072812335458277385197263506971096167904713266197727607904881508480970568227271837042812090953900015154021221446332227288701582345208862669779335406450798642327957925656897210686871123110504745546875147333593008038641465727014881741064380786458688100292483660621072903216816098344784078516526276242026573815991252055766221418755288611668251604621247861361727490068434955775597736757050594081851885066403203365100345309226382921917498854236170401321892027610551353105293525866339374963531521046381744903085275655117442569191945714268218465333163139778764877698559997327658762078934486049037215919837110260651470908297575547252956433143815453684105472159868627478020414819509433490873252978008174371218784084074952194387466232198195284309183333796712119831621512007997945265769064148408377891709287742475976961382923765724572472982249748135588843958440804708498813652725202942606347794966917254531120719554015177658871924274637269447710038081243866856306835218092802936223083339861917283347889060809515996436727688126721232728187768041320732198712747489805041057158021419657407458136117695142263060750428022029433991793901132905612124545465787382724270605585289552274443485100141918396228351550473539071305828662633080991798181462259127892029457610133160888181336239376791916705167159821131091201285134799946689144486870875258745444813117440608930621125855498079778778728222860608452060093618353060786827257384491314280129027761641843048386496953818068481138174943775853786520959339995984139866831325506402781386239076738195222672138826293086068589385108565667670290221189058113800649909275127134955945738687831440925601334111242111237253112386683466867400812715858233250866273491278314841405216600353167844682395701113751773447581050134658322464627892548042427295495397142862850539893705087028097691966492576589416338487780470655073410322946655316549699929454926859654610508605215241236641930194660001280292084476456532539093267175831470697537169499038067371872350931230960949585529612217039746801506282414858442005747850441125774790769544999139629787487071483542971627211903287121521513518459416119324391194958626161243122395815851237711705470408695192460133391957447955106950938714606932393364850717594112513500297214785965776532167514359854856318186362661840769988749212921712440378582662258916070954029341882369116606067813531199951917014207761111752709996525748327993964642804709315722775841212468716048063418082019173817351807897277802419441899098998638461857323836601986231273292813238277591996896103031633808389109453691740201845653333818609114370896391232141777669547444212082256636665001330327889533120827337469341488116196940719579583290177432956879702453379859597613752671516029375312765623362555423276272260867394144233621242364367833679488681936870960474057360059214634334703801451207004955960715475154532536931969127999897033409600190106545460687836791300538113560539289643422203688901513813827678292790051327825747714458595373573915040277494502903381779681819672944506172856816129839996415325895769025896644175805153458468903405273264837084119221144094046438696617661226267148386162102641468076420916614543936668659299068363379196667486777786075313727036829932689798977969765576313913966914690737503449836422554384878172219157384204277647189518603491607782418470662834366771581267738321384368770770873590761092408939349216837463633417602629709555393066903558495611193756715123268025437715572039652613033609188821680255502485730007466733196976672054667850921195355621428696518610833339945746440413736630728244181030992826312127034487206772279539031537043240345066274614601128577612502362122376973310152141543161338218077553754878101070369149116281597215364597431443389226654591483190211471841340924924702209759159025579283841378766688145895583014022696206826114585034882093868774037119328201121654480322452850905005634345294452848232139319512426395579645421381140192273751033394569685291603706588271790524072206086356870407336818839372509044746627741879457534541521524977428379130572261893145315220933968685917236620563725628348586791273165690729953124814786963152836255816305845638337372586781983134048789919976494064091914229433885722290213965892676374329216047895396443934996497602052974331174746037702560882857739916745505088428509417118211369107443346691228677711612158706763611684050675684850867910783753724852932000295187619065196557910368901790405243485254819232822229295502178384678272480651353685486845671861162136898544713281170762026749987589178867235082059399143793916346961108523834626511544187073477220176074394718425854746870195262527668011784105698139370736598318194693432016913461839557771458181191631646504303556123362203613811089111617290006287550790917642444080117090428659406579999878856669818812369309273791623160704047788149597356868990760688835480767104614918405571333302645147732290755613395661679478732306324814796976454892400670214663881060086069994614357815317002666974259498129020947730538741944026644662714542673206130206538394795624648044576921231798315318533700472584447747180118081987616519690423295660477057780766593441027001838606741572761328778420334067322492585955906395128007384536907639539785909919970211477569651879955168376078557543454799402908328441344682291334075610286266401322776286535160985148030270435010454528171708872644140445833247715679833986367955060316971094912005276403928743507702798862224244242399322794878519482751918426118821209722309285812312563451586636954288163884299270521702491766255316365018806320946582676109597446980408529075806449878412368965697796050303914740414215122969206736983909759861964978357747884243241061995715732410807981113724260009346438850292528234224064482980576600084017367029103083555781098992764155503837511176645904506665114980236518613684546934281991232750701609350338448146875473390836971606198348334403400716207244657498739437322615191371825563359433903684843197804808824453489781975238237234360802730085780062840409772575047940138497940739926535729781664341979917315219922022122421665953365498217180348427758851175561605377125664097762147826670878688163413755082999656420423312441963826872415237642075388328353849077660403387930570136905982673211798943915167614618734976316521066672794389611662379048132247293216928961303994709542043033560253938667517112211585496108386110647714402337630614806520565675433961706569416172600936955199379204227978643972707834300849079807364538516961972679964968041611217470888095762922766024103958946106033919218643153153702081340766315166939586484668736136372760274121937497833968202659146175548172839029584438635957689113101849639369556408106315478658124440988306955420650485461038404751395228972628672551967507791097875837436876453446868309626342709881972063526448047531211547168589446553006718589093932502179318721562117326218981074533894715023741604785994024651825081278659519580296324787574254270051324914353339096318165691900700900812234889913812568761147494873630493406778682424330952617499863350809162025524072715843207144767256578196100305452436208266692314833310836112158978680008584330528024973483070395471250120208480829016986475575411410125822341978466073131626491543634279225795417013299011427223659110516875053624748481899272264169640221035128121132670260721736055838184655120286041919851029050547409099925841269280948814816058424184595924778364629528948288186865244907969986631984095399458588733975107450659915359909247850857338472670914512199021686992316156212956888227222823105656735574174371275001794504115354933280755781611115890396372677923633012733720926887175757472776851876187645818525216403281844200860009024652051826861096448505120840773093421253442734130918215553643412772479462957008770867890639652691213092353200813173589126130140911187093283169473862128299453752548953750397508103027405596905987590303181934794660318967112526046748636726526142280191495033044916766717711963913011222353444183516915545226078060985022848355708086528959797944414896507782619469777606119423596865071281912573240671745638902890716291300554966833042220161231819570011341382030252895882653151850704260047043816159032524073234977146081189868799434553006179432868257866769788944920843513564819782113152791325899520150873521832029416956977230294402938103912690472366781460158023428914227998827485872086221949290496202489130349200523208285541285222610370240522322683148798508032192959707013222773464716853828373204462839090744977234669507564437228119582866360340439563356474186943212312870148100591289788084052838077510449302031753944287424632513321908662368568135117351022170611092892524630979401138371485628543181030931611730926364641225764220392668963014296050246627644582032057261372221244312198475732866026810540180269856364518732562945037660383104685436861591121021302878803314413099238352734944280930947451744625385780543097352841439767603546501557743375268688112886168817635925573516752951880191384354478944524746365505494774692450094875485396848725722595599576824844761486411527164270859959526954476890223563510756961504840440522612486106641523358961672689627855149970214603329432361056149769496220106646390686953948057079314884006286302483759543916336100167161048561894162552801936524921193358693741011918124906040170349566214673332635994556121019901860662251242097978579723684109518192825355529848137958319998157650572125760061820153071154317546360905220593434418337136978689764266994673372005523805301818131093662300062355347917554541489513279970033596165200608879336062754983134331642746058840807788627146537504134711506120924367756202680285281249226914051829663074046239700865534487754000838611595746431602737301519094090419716902550836144029036857791607672174349825686147345225301327148927721462338665000614782990582917528832570660957933759812111198492194118896435250829324948000300360457995853869805122010997971097345719385811553039025030253390827119663062636907505379046892162292192817397655980417244969541973133790652876058314972715139757786801472002488404633113270255046108867868386150786862993967846230168559467290160157623919714865225261379147327821250195570025895172162492243428062975857159730193748619227692874836827535297662272803090023933415350881486961235834598145762057631712358431915764792614051462669461141763759772298482854408469420438707448566729060715597054948576576165700211131644965430772760734043362334671092343526020598172354249307165274075440712169357425260196518748351087864539973101201168947950330096299687945756621676601919047115352893039825931508824748356510972168563011668803014130952592591302070375329777142422568692729851839746173459274058469692188798079804155159205523453550522289793600143196501294206707841318614967672976338129505018334178658433388130731168445435459644518016073881907318293640166472936732754354901805462474685192619397408810916774806401466390218783391487551741160260844964581402007836796338887357973023634654537806509255702914349013345296428639726476656676760540841455874865883169597218490193328443231412786913047745135380587328305100490181377640928820870391451142719278334867928101068863923830114777649179467214173806970928204633730455027854732924783954516221769139274604734438676315650215488078297914755882121607447754780509982321568918851017809968198644815448608228829419344044080455309691108581774551872528020166174919614671868312625720350151911676288491781577482587933989703570879294077568985018924015059428854330501004427383013749096707463428375198651704582047083991406058976657192450290412264639202483237871301406662098295006469106934996151585232896726780437037739814492563502820283682296321087227493994909579780988097013193851763633193070371488435936162115364949629211682461439911080167896767029557113416754454213601149525708509015081182045410958021783902492632394838869850178488071384571293778061123363978202130901485359862868426422840341734427058121805224689230706345341623442960961851093571831378993836755775741542625313212595815642565839625735978488769706114902884023643351376667658472869901984402525452717403651148855880776992483456849308858493263935377102396375000495086138652124070545541450806349721400285218516631955197382380064497313376814828441639211230711982025292616544558239996978854145164182034804095238630170662237654145090985439068349469701780810412666988817476843621932356824110131578154278853523726265935744028578422839123291825612557622276719342535645562855138825433484338928805628844357754364228071217366226037691999880287345704591413095938837048361518303468486560452013688956146162628206295707115555380538642919717531122029614437752608940120966845113710472288471250155285568604292794282918976182841885250721746918016935646508166941808412622540833189217346462249520605017121199395667479892020612558856006113347257579215005662282574617477245492887736195781494077651231923663063293291668611114838008129278470890222155337496962371483759076120316190818923868707684692082274730435233192877904219830692450833844296288399185448745721439714501039373552478477568349261858574934382708337284226249151812643983907091036264485474335600588341510352246672874288767277547248057043425918585468629170083574816223479540527518447142027117164317138412777339012016352188989836128053742191937490447970500037055878994992590899435690790851915872926962711154061555725413886172604896783013955456759657800227269294151987797333825130546018983444419405520808348564959581211908516078138635514341301484720183416648316418010990521211257112277359851459228654786110142284884294325814152745087030806763215723982438523956314170600703199003899982806491627969470854994117225370131128443410496943002464216694462490014525741416995415092428992255607174561162876149956089277838216685172931818979135994475503812285518303896432180688273443972493001974401286770715784419233631756108163723111165445645388935078973265708247723966522142582090681399438884411128238399478427728262238215899363024700682076029418359211682611449553363016154782197746968812507983462828793326802622036232559622826796794454373081101851569638114650410900906036879743647482021032889400449032198691194979865856581341673441202204133154524272722372817350630633456119399038158936410739928942476421661993649938796324640079350282734574770316249631724179284463416602848063389514300783481845710046917171154683312537842535107960170517755990252978635561988282150681034280612327988151006784060709385413148298627290822958510300152973311933575012335143479961867085918267500242726357965068629834992103236647615058143852019246275835914681763901341775070220199141001323223832461411598900613080124707463593924793186765924739268164726866205051047665101679054748997506628283018067528840358691149260689894787281234066385900440804457489183746796471789414007812571030827901966341771671660063588635454979126386191901595956191609733880545600338137325498768572546419559124395013416866430999717901253349674591155945005166928533608131221365063826786360700455572899703376707625090906069131228247206814933055182028003211752865726817069640509354788329224598028176489541586276047870420747755164609815710600302207655547210178033148175634830576896247659883403821926213307445859840774329616579705297032766108317865406405092375444536733896089906195688302681152440329708167165332446634848091743047597092115797066316353370134172587931772069269475742473361263915835102601817554295401318234148227147328501777501656601000799175732300238316287392680032562693904863156436151684457378768584051658559333046728267147702453372384893416049434050993407410285383953685741145731631029840972957593090718703082900035529575400796666138278610511849939958059690642077646379570800940611610397074723279918102960629537547692409042378336898232706098299589052106386935408645036807099810868132315009829577986689247391698362485078494356598027545313560948680572607918877105728091268496848358427678816449980808062865601714701820535685473602764969786125870254521245104538733602547554158061119482661894808382031434893915229098778770825692850644939808671925660174300806613908469090044854041127896286277013517889548438787555691112514468223170228331823149960052345437306505311487790540341291912034564533527667880535560679797788652222899583911351931119494984055593921279805983603794878294253810301148818808915131208294848324082262521447753472382684236754169973142126131430118019116175101442417931482411944982843891312780885605048034396964981586088624824015953360091893643327052506683292098913963694728062720029505050128547550445421509944689448988757475737804128289854326071252470633877626280125985671546957621109422966353672044691235036829088671185689471119120136930075591080175302946454938887952907200301059576357821120831576374107203619881354027544494609609162208969887748007490668264974578000293615917139981209603861609900282965314521519173760864781763349439058055249987138903111790183952959877466778033691176431717082057731998617085928196318408461774883278084509554479027150784254828959703640193369839856041435319308775093038929987208423066477472531570878225669401991805120922551530402116263901281821861447661195543928481955118634231412105487751603217968926897670429312597359157003836488268612916144464247125556850194393256826599019790583940749118763889474613338079559217770613594128977079882521677749375654963129750142017832775511316603235998173543773291264034988230478284054744202064542531044533528793417484318738865873464554361725693990563074825556991802823323661056556081992722697255415832931367558680484227671686586753178011950128575308174025579557376607529623884080976994723336891601030822982764470353429370949431005540829806225160098516739156174825859645986918177607491569241603350046414537318051171167575064092741578130465925922614627805276039368425562695667164377049632272710511127991278562911232509890072872356188541479284100063370334295420039499543391538188017210036500078087561755676169838953662502764638641582908006945266891712385192395742550076342892860426473724464642164655934622031398225116307666437326765164287544816736300724438260345894166880996601035957399403150318510866530490706357726197784479783350435553791268932432201373926933829858529925546553813127685677277197920968275205901675245725059096503507719908331399744332501772741248887484038550206571014182146481686048073829938765527696383658404596586042140817001439073403477394467097462626729535180687587182128870499822965168180905579353807678775750573336411767764515945005093350229985875710541102092522312085466758459953253458248678370619581101834246871224620176964976937558723208308336636904809082210359571863234430472365320209937442336687042149688578500862866789636746810068122377058341890049032072993281426758272757986708659180602584347412415939894020679866104240788402543462287589310913133993068853942928345799998325034294901149658011954934246116388092488015872900174499845093357497705765568607695427562331308504603630418047402610732639885652966263409567297655652678670075534714847569048208542602430879054899776852792170092866117198288214562274040386884388273250169210472409567981753619008939084500346267485797840796938173035089389630114229402848188085305740270055195730510846232259225557226965218118941493045592341880055407562287232807208845089856386927275747913893880508473878028654569100828792195295722960415262563696881056716887209293229204172043158084392278815001021571734150875779439416254366979929066412233710316259931548084224328739413822976363831001390117266472462377266112160592330553680770852106417395492723340199058996467798831165373495478299196556973244876727465402626931935262518770666036747182236259468503692238360223866787029883553935351615726076748988447041637643003642974933028701119582394447676041006057712723058558557289523161214942050111370077735540928499320144686671317879333706688897018955336243247350827702322864563337472174341975423995338346404689021002957012643475355290424814995855747189635829153845590321796846462444187280385749638152192731075744633492607068956514959830095468632524687977556022956092906187394230772283939161178562955375646463081912096221105418615796288833861131385063856310735527411377278154238763944094986079393915019400373517768831078901949076033776643541896683020025596510167919113968240668838845561355435356197119626783830235814620425644613656336824159820774292717085015884576138140788276320917311755220682586493985993421935636159281990087000302708794926858996379662675151572706537994723558980913511715687503043346233968120629898462695867364879194175302812433708139123500187077528973844795525044285091048594345885711218713489964865798640303317972409029642452118401967954325690998983753752288714386523330406783297972383269200663863262844534669551311925430532628947619136945798468270170278380901828209666049878305450208104861447640827915181647701661997165805652997336913161977203741985132327500741304611495707570370397547930569019868616259609230111906575177857074407543099507977221209244795075760774636995301073993198111798729061187874441974569668183862887156189316267958225180942844435149736005353382641211799065291097254196245470329381371957310123316082571118512156958113548922060930231368578634869556085205495405809838086833368867041139105843502370347817317787146827798702409150286910334516464762793309208329813943319826242408601991450848249517916203226344556346708766327117059701410038067457773458328769965802911063133319665934781395784412120842651407075374110147543602384794558076636272390364283130632963684222195926002865018289584959233650067205403766930016807475397077721093755896319246108081393471505326136628266663447754291417864972561525851802374256247971055240969616203414814148876805458927514791718672443487224911039000471763111194715886289285745513312355481666781114809186418594612938694049610156108202613829997912681443421259776559821365080205434999566731653252645121654265870308514900800947483255895897197849198227325653969809011655327695438682453556234260367977709716827155650309472764305705788350134014756746369798479210213678823094509648253157274241497144478999028354534669495615437216468701789009853279518536571282930873752961423229604341586296894624634730137626104142310714589875478133103490934707176080454701711167042131044643512767610730298437360677786799573888923516831276621485379767265950069339370084310627312714161637905006450050588978995698308246780414755550159001077960757756292381978826676646514161817586659731556099981593571987533631804341544827029584074717106268958267950616602008264737760941790617527294815737447342878926879204445149652981475143340011662898439059229306139815537527612776881664136394722446384141540574637333313686659194996410062245070023422778503581588188372669162870068239824445329511215497603599048657061959777822121008494758227232479394593184243052937243828243132159170882062240974713202644471548688272769085057292817595576158165765063076559388895088036424412390611795813403352340201169695572476397089360844619375608334467651075140790060807923722045123946042127942816885604096123495515909369474886858140269220860039172281160868075079451309272145846580687239911252916387114623734508394118145847442486712148991098179584651512058971956987540733345506112168461315151736027888012130243408055820466266954580225685018059292014859454769103112263598450332153433361149938207937697130153218295386917406340246571278463670033565702698830418342073943220436161640589451879119981808603401444342875037517850932290744181767715010086657972161782956676297724602272040549661698195250387729272592984591660221960135033561033946609587907959997410167086250490186562154550880921183289329710296943526927900416622345346689920735319068129982348103625183632660893589988411088809067595772771927168075538117630721732841291243266358079390389939700957706896858607679857728507910287689069028363103342640663282300720705706900608952059989872553433418967911468937157209988055652511949967498759278630837342456102571672149402534552609373769091230551687471514909657912703703837734580452856189489514134598839126400417500078686411319016857575880346620253481488123255568319957968296157136768008793402714615494056195425278815324216462288857463451761922850549056426577134969235034149021984048541192926084049246859834276097965473646208281612821194166236593811837764484752817158316190325750357563649413600777924376383500440245058233793316143455841524254913107149339449387864595411269801672611834506493115809536938591332170728230438715272665752040691810075127891933783563581267838945619139224013262522396639506052152332368861855156062139781046136914139009006350634565777069168211741918985347819982762169180363984105501893921230227192505851696668061413156276738579957602783345857825617490684794937937486570515852560793746421765510739984013509036555224557482226108897375108828083265978917552378608890549042066089475773016800417608984284768235532831840716102550726789713745018842078340152525204285930240208388770445322137848802924636938751878150902603341022821156124790929330047061024460549565465650027996984114949271893002771510329722103733977400013752953262000709908986061507428855189896320918460161631166382308807975273840973403389548920442559382851071506026889672428099298680713486733412753843628796738612164724187521827232966317968798188953974313980246830886913098925061056698988153914792100695846238109858043782607224691537321404745854544050608376628443294813126610650920842119955194576315178551881412424460615735150517849200531018328314817311475244888058800441456979386732118701505315304525830816266771526829457935917530343430670418129257267386452217581105419188072882642308289773633830555013960431799792571340935400513444589564781439793463662094105615282097448245634239720442194287619661147688770552751829052652247593609878581525953594722546789345441745062700234514906158399861690316027309811513254614004978626704559402512699102923864825561731815392455786314366891695272264945021629212931075204786961364139744039138626161739251704883877150371243981467393342033336191804987017770181356802780091275875866978680308712885744055752378060643713919752662065634477424346899420655649654963609061744234024450861164274497928645081321281311059728648871150627770311308578078535467698837082644538317024232841313521371902917838237628121096393972414994485959727027951452509823915090798477907014817914212335132044958025770232701972664237918526879267821420448527144369208815402686962436634988913601424534446283884206274509739793099996573289115229891604635980530337323245462054434004024400507821125302776055147632552776006595690988036992061584430367444180669811683657318047512263331744304162812949579508961998918965956549075369742020863287060348921063373092184388763093830068850292195467336997807137440606773237360701030706137908325482084465979371257197520797476556278815352456519686585817457478057090746019888455701633663461157735894048010591352659804266556343565625603261124801808983854246999309913252481842550545701387199729103537618674649793645879696951138324307814576726380174094924062832430108906684366187129619619583315517002991467079222194902858776149296027865240140198166165594115009448170532209039256718225863000841575497681192417538566524576643069107329696725394231083991917783962579924627496389058523704084090180425140544504234936854072746685379973924943764576908601121487629981315249446938328140992735375199861858736854273538827734124161065116368645572122139257010114215978965923667518170426292543508133118135411095828805708521920890643874153322767396737255818348927131252827096898406915671739989524366572205256588006668338395662108016841955976478315712512610864653454658587666340897585548220056189237186703650700333003634638171098507465018895895836792721389734264309716463644235696580242908697418520920550910338548336958447665504395567768479604417402222964930459896551284446350492402348335236608341962736773240322026263572374487621921826313505387036710815490762999913822255895584330439551034472966048583931989732298314733400690460993288253868584473870103431330589927354450774235324055834285575143859919224655615419297666074602384359147509176869504557170366916970046674702198811733185542804813166173672243606086832719056713278170649830694911762049439592280936455618685337196605157346221535623031816218809725915320304900075630927749673714011423758494139725221203193383631786770319353744992105420830961750638885230045233409748527398680794819098330870642858643760487005715401835701389922607180133399936704928474208748185170227783721298309306165630521995701746431599523103348632861242420660640152293043607406622896405420836639537786949005934125180535581412932644432203984798724392560809442333525079568791491617628764724655822142526724493902560714336230455605457243288965197896138867750132576889343883875503542752937593921994868743256409194603216140038498146105259670047935463596935502970920829810856836201992315730373517091882021888415204211359358472612772623811711729007460475477221704184760513770226576872649142542977843897931061131199047850409450834556083038529676093165527162387615407836174149491087300915292569159913621178786338073472429514763442098040593039988955780105119035073209772700351826413076341923041304586915301092498760365298204479193250869745564806035805129835978681039648702285711551759044826686112331300743188155164737716504453721872341999387244769578452647516558599067840349762024219168089978188909621698540038858312410894683470959122609015791800018701495740060833508047763061152815080120735481913606469915550475837989320104058570702945656790247692783178692934113939311643852228555345923535082116448676465190305672635607967720227663065628309535924954384268026417224355496330889784211414856795035748149080845632097669842880732435942240014926311092833912193767779458755418414238747943553965970761673109190003051300132359568849222266091062817504911494445719732971568186827839651145582023664192420590506016561998870870929411555925244581848503940983552345603724383582769117742378655706386549231995556869792637159868258830307768589817991522491912380598076144232579084378561513192421716444768789520648827058454108919876281098509223777359089844389675362728250483063060398803270678217074086625061094649790168739776429222281927007168080374728169260619665190388669646403599247769739252307851543630740974502780661331045747832870483297268051374335984956130946430687553880974851721014989454049787736172267197708439512984035868411699457786291319462553342802989032163050580782300535577961375161107900942592272322940401112211640323510375827679908760500714984883841377493347562729032887508767444513927982678370186439581190789425042479227027928628492864397937648505572614618008023416886330033857827326736612392226405690204659449566895110347969122174289757571410344020581174381634019852347019621877305867052066363760227418082786567706277283048116007790302834355312303980918074767006864295848794539121637664138775169848543294979895738354774471431790086673493174391865464267046526809891206262332747349476413880371999931377943670456976334323186975889874046139450181929119392119874400521408821931921498338248138126398460756698981612732871910058010358136449441278802984356202429987126309014785655904842584661416384228400808127775690570772629058054787533996838142363826586713926869415863390038880207155264138019688923563501811799022037405584008820701376026503062688019054150490295970866343816834077962564001919869870914814059515799068132163597080867228048372943957367812092932775204797955498491884367775665950095390005923678602745499084985327363177169462557048502125288265866080507765207792831305843391257260338911920949695000987418432436620909547395233128617171504626674361069637930494723965623940702995520526155313205091041388526853729055162020278023387225325979273891489556627310004940260706656943349489017262261269656076197795310712425044137168861786901492825452316366329369790453234994505932270988187111476378220281237467786032693666843735025200357015937986131364725458875755440502005627508434544621019723130187501105128485085247020458512414999772945266864889854124885202622106516563384601023220879383684591329107707141536740499013483569196341176924261793113002310488667680214470486941980562446586030820102937734648547837755824270593795735998060252607132884109471222901870020287954074478020938074149457781105756944692588088683793023699854581822057727552017033792077971182519801296846070176369408221017730346331317969453671447314737681806388102124170750644586353490823367680079436069618886008540346570496942832705442573358307902666539356828877231658633683440065646103974046960939175954847527842681570784949563945126254685949415633648725481723585837361958539168767226401748461223072148554986086753204841549833429790315961182821131849706718949533866139445411386091512673911919277306767627278701803123212116081321347488826792877211250293732352838799370532231339362638032079169361109327008289830269684229947215697251547777188526538324022296424114328648348096651598462159086991066180381178653575017552129005265895593746024559161352864154763461028394740020932890994502654447104952237452223368697775169750789345823629526029754917240230954071481561868112351857661195076667494477291266796493510407027755837745841797936278032671611283197272867454937567875213016684430839139988068313169469225711539063281736069284988599389185874550569951720444699012840543019886724339045985538930529954130174244945870239431737010271688460692545641921239079113167237118214005138525036334031343924376925551175903559856154724110884715692087724883655012385182803973688306834382064259497798904219370457904973675487056968371833372547112186113501319837336208021790883745594516342343066878245801128372839674471558148767804842950551003716790052684917805925663138924452136344371779824584516796597572263832940247638173077073819256190077489555430274477254492035775917326316138810803627110479703841243961178560974767445622574208382471268870124333032065349707134208931860241007094550803675353510466882363518274303426038346927618819181922240106820807158863214213181721661305696481080643298582122167265360299405459821725018744274970908608725842631613082178743559398367971700965013846787448756751521829899151253529421274927610063721025000152558510200300652901081002315456856202142739077335307927201774873315664503384990925132415875331211894650279491512136286659001492748591622514347658739023079680744050274128457224077540283003423896330990349031518993811329846508728444750145247007498634852007746117341757918202409104883679763167323133672325355748151263470179693250766061109539111135164391887215972302508070524833814049903408735424926819336786870283417303439227170001606044848587966342565454794869664429473892907099198959530204330107747339856005399149874526069286335669559031587312060434230251129171222727692874413610570609369222750404106032388554755711315339877117632615449605275670778925202292243382007565234798187152035934155581773837846462215391452528636190273555173310233033290767987010519169597214806106713049568130618969591471587569927044799384884685960383993871373106238486592166091442749664035727799910249371460926984853260723173736566198859752461992310032763493540925572494464182657610234026169982462924226907628077170351189030631875204069022501983141052722359923906643670721655257676485898523277558952628837412129425904711832060555582272877549607040744556878395446422032059630656588118120909987000137543072761311619799171784880041718475947500076089725546764947053324392717270773903750392509076674730665592621073107514368425549113525466131548203558983277472458769002340819553779295493556912147453286462825071767998432997261092503083348363265820924988665670789019998629908405283255057134083326948539683929859715799987334797520935456715061917203735521992804460820655254136481364450360667566830385686640986604051731061721671189910549588420455301663752886583084307305792258935753062149949741597186371312615353529099223655237123755050774741942583188643586859915539805313456215583547467493363893397214721500846390767508640407367446328179359304377673282832061763967980680968789048199853935746068453199485488434810271152581825902624953695946756334929114051129755035118915733505580652156798125385347973309448500532636680776388401402653306295969006289351264853074064156188982866128867419643733139379156006370258092832131917378931731205704402352293059977595600549842088753912113042355608100837977768758361847254482542103059482860220128180300805939116229892994935831314406967960367620659075981595211605841333707887073240469696181981778305789574285639045039355468711586822757808803058119920039075792945123543967232376123860735126480576354073329443941175916321842165338593324974322751896051344780348048162882223076726741905220213364489824822465666871629337951855803441907071849647742322496535347440002610137856838598363100774005696409290692870975191831760321312345187645249204587326579900079126682794826714937795262540593379790802233691049580295547237478842885832229049530321673165875936246570632023460690442943552235968778952839487449961735810844883976792726021545435009536145510270518861207900990432674124439779878728578266802629777294117505924144510109137466204141510969498655799288062883912345832875434716788703220510537647809814486289643039352294215345304894858636720008380335364143127488591488224858599777864969702309883915910048141392179613859105228421034528787966232539448352107819488097369503341552985185340155235969853594614204299023471239105494369392003481569729970776404406763737894070175584807788421710278263112201930388638781974998585450435221728501471791040406526774647465942716096786164056991819133932494516081226901390366923247295044799900376912075175652829857657901332256330397990550326235156343689411191366268947482482201467387532086088845236863259979266198904191477694412600321082921066108858483766165903888801754987038024282078594634353919254898744940979615299068610625428082378087280894380524687807468510208635535403620320994430208441721869923882930495900149202154893920553666585755006801960072841089115805550397106881983083159381174395501377508682136556692498150367970316399840168701753252179991658392919789871745458921760111502714127090856254578233741035133413385525252599948182189833306568886416169133097273120006384727672284159369570363871454435988880948748351306272995987783709638488330469218365955755242410560399659793606829341105542496427355976763154690546219960711836894056067560454272407459958676286415315939352134017248653550811737472970272776249995816583014267230049373930628612005222425386915530121892894448530089500788714399368772418756652833268002309778307568615618741876568072488448731798996782141334675079741330081211558512435049329747878110937288958981186304473461026373267813482679546768456399653227378629004731021146080939711027869543122144449974878696150793208607284832514564104425186597325878314156114624388021806329167794618953992208487871232585514783810577978860632003654020970129625090971203332397167306370093025166160182172716663740141541870215647530651655616612207728628944273365046645466302900326216641396677677688415527157098101269524568440067068865984868709026886599930496478954169270037598175200280551302576765293589387447838201180074095286696393701955586312210042438060144469072324610771971612509272458291005100480265943866714076561417993382462730940102697190318665550536076773461688410879196564578886389710552053092359869879005642902515999324280321907733004152677772557800919063543624328372519875885574695441641275818354788958999698602454231431596502190373377247626512015414551352316794944247419529291754423615375248436901615358278988625751830688540893531725289268334543750935319457390546388296646644229492097563005754417011779888551177900132328008079644041746569525206514301218631169686378285000497588382509592519770250037218796391108885401023946257020731101367436198405096549436714856462963010063491846094380310805124770037217158299488733959495933569538664478899801695969331561244608678036004400566150232801130070573072262399398878773899494898541711287341486560538398866868387103398349478045926441263986102372332040414600214488510231406923215653330086684369735823817101389606141864361712547742370918096497995678600607453330385800052031201901863083611973168680735374731453214127415743020630637528091656603210603705188405744500518695084049520609119581440897993823151405735985919912605627509691930602398464777521679022764141268292300888643298274171660508747723840900763000594036610952993867634817189728947579748681632739075637297735845304151121834126002744046689527025056885791785247899774691256879584659099173823065971363056872598623155927207014986469918416618937255815973709898271449303682388412603651933276585074660408253171865341429116201536564845051179970333994310209524410508062889478845363863298623990979675306606130275833481949128196100761275380196553653406678322993900163545907554477007443871327918662628602132094062131707079084426451200248273215646688102780894509522957925359060304988581923215810397577781074026339129335070962840250596779005629707445944562030416560054539024874041862121382088308105527482129177291330277779114656770437746465063814672957331422499730233539127669092341886025296957341888759973550062961575523998537963473233188794150896578920763123750326364080659414573208700464640700457322745826743904256885587011298338762676871513452920060696905834759950709489241862453432570603436749676756287621222224604948638157611836777778127926901510306579970481903928990797304495535122030749357496782963725242999018819724079767751327920600529070106243516160062013541736225048857140706097201942614343997197683123273890103051481705377417163636794167532945847880083243540432378221835497870307997328150675770717503504105200479377671268066030242292069170341167249968041002417123218276484700973085983505455833092035304263801076580664975466158953401754472641862664067772804766762722836037114891676945682114510617504910914118100607894655600975959927523060102099893422175419484889888270913416265185621502492747344715087176132496030188815301668737316970258595355191233114494413722141691132620496490472974248226331723303127312954001723729924367652021179249458808821135821906753492692864463664227902395751880208394223120737105111472222970141970218851028669166481412580628033336964009051746312346575025352419336971704836486767268118849313235184004404931496392102768246401799682105333367098676329641997297314531478860718875907284341273559730999754317786491490814375033934996986702524402041300595736370364808648822781989187635568819049550885042306820485048396885056413091174466737148682194513906119843829340315341251594439870268868466614293031804693167614911986136920336467853082373372201803109674227562453553392297193198938239731007805257952342382893200479997725011711424140609678299586172052331712343307052765124814494883149892025279960434423731354200977053037656940801531402131467486786819213337902582419229925806939410060302502327234321112929520130018812377189189480887358758736132229807716291743515821287838283107080891687841630664279350967382836904578600224949791131116484105655380448152387365741406204283033284614828623832031896110469474335307885351878457121979548379669588153872103275204364026732577154138836275409091381019196312032622905927580158853646182025833216272245191786351501106620010628678427887113508376381105271252809156565581022425615115597780924274102982093869969763541217284427226232492538701961937237926933310270057468579553943451829931684210397223159749271098629142605983863692793140813503277529060576513141872225317194153834742596241734297666611225577984418803529311943277993475930434161428271634050006984974486644903511473122595088025398936877457886225609794805770363933577288687494022237926806399832943099080039470886155317575100976225783150173406004544850440156035890784258626448159386305636079134428019464054760210638797489628924605856966854323584089200561613117184383070039006801173358957614258997664151173381787036931829988764447196218469579414694839339020533609919083620799165703990728948108365822713062970513739039218359369522503194492404433356994385144504001321533609312111395857530614425303132782403780943093408527177878836778678269536951896002568094096273400176094745333127241744620784173177037965348314459197501895137693090705271745421958046124299161248233964490438179474961923438558533233059625689463791999274690568206295564725213265424222930548433766969810823750173771884982997884390465552365390942564283912316057368325969810774401422157046042439807890688838803490118319825554475587966319730329750098789874650663342048794583614602401012252810173678929333886867503637741156025938761917028618279721924645012836136212704225115589427817763418256744346151971340657524124052467925721385503991954653074980150193751849696573228051339577177931223291991067424710418890215230168782450875217226856973730633740876900502787657557952319898098939785356864580320834904484237931351502859977314680751765597855746701547565790229792899018590936080683728288877108382506343431683224903937671564953482343969797029623618560690906540865202500554338159533075873514306809525822596079988618135766613945111456704441344898042244184101267305303192420763719405506772997502718027563272303216698323208958725692327576314867676881144716395676278590915909868293554999071388617305301759139803973676268076273184915855292094140043706540663228816539067760313288504378731689282177478656711332137323624077722806028059938697331449723368667564100322340411069706881635381437135357135221883219077320180364907668851844284059134472406956029136596041854276439387234497705284834452903594724262820134565968860803683615706155991094504305723878515933241702696028991195393890478995052074089159886896623801475647318718012591610163984919080756248392842337129797575060323069172879254809081347829934044885527629565990605333701559482333797569160839406631244586030271218918477546072028338713512870211193651942352734642428223786979545964610063738347018967652657205351334421621721931564441329803980842551519221953882286700073645635665733056920428193188674100445915225940539445410534336883653516525423197948791467668863878278103702882906350151866297086474927173545743956015016293421847872202589530906765627566553800240027272291919625680526113903882122117077100415067801145491995836594809508759296103994920178840737052821268407900429420826989397789261833704460550404444326974203467408126049917246313189395069318840011602718509307863310226809352141659316093415832846901340700753231676390352022009040439559931270861626085193492184981766582612049208613325789551447994071735046416293867695560278423726953481807911443141904018338766379395082019285889260636280580668279282010995343920175394867774584095968209696719943406255373872680051114329798102069870432912088932320938591459965804746192131713832598820106761895734847074379247794692440737394652576931300560644981770952257122389604562291452378826429761695872977922369916025031012633309754666975182949395698923931002957512797374629202400384696446413204020442774086700051184169412941147127790578285973880762883563548119373141883747005461645045910964622463808930455844281583140786987710025805389252567756660254159455052339990512400738132722230790976342038957631311556626976700484635540932439713144777798924230366877644889427852736218701508057241748358913329624311268003985906960030465655851836101873015434017340975366092765570691688997521636746909182637640232746050999118137704575876585943941592400005990914300403938128964608085674789783787174174843123502418926638691947963115660909079298789937482065217116273581387739448763646675190986756708762179987214514895589092288765447946154033134880012791149902245273002402197877533261213406664282711966883793438377042080686028255330895488723046959480342433755774675486265947136300027792297576507751090988997129441989399579996093326017350182085712933411893244816026746471150304561005651746388695815130926617859382391671661641345780477783372481843105929345454461655938472426534459584327639943345919477948072093362513763591194287143074340067232978150912531692346182823539505364639204876365596569033097838555603556544703666155825224294858923635345202331473184747901492850491102142552478694681071848813539974169386816579099071801843112973783007118640471800033578660019291145253950827426252013431611219055545646146231689264259150891138326585197981209790427055925429766982320750507436836166837818462772934428093098761297568979858038026231177143179394596048586744507787055261044251571506530272651079341193598290463752203230988059875746860606372245866597935860057813070318161691124316548313874271042573404813023647677010979629922959723441706773334381509685262936593971067500701151264816776986392985889301777994761447747651786289273141296450322094747034522617390324237162772705911627664380385994606961152756949097813784974699912302263076482880715645137218657593873761440424754151284954560979624389083503671408610661383750339678414341932583481963085984495016884713195420230103223763568958853158653181643609071603830204983114060407886260380705121458064074140378498183321371690712583979822425366235943160456956296449097663724178359031616734966702089100954100213009140557247013298111348083178084632194462443588693116717799915841573892724429550523671149474433786929342400302593527679690121290533830071991480938597745444652868880751879396279348061042342867126384477913819273352114953534297015324448903875810384982236243044793770892084547718459645518062116070917748359838448670477175443455793830452880440049857214868413611601886930925902610151500517257463049183000178597740654752848288029131177953817284688006788794403988393874189000792261155630616552176537949978604325246221055897112529287929095615518860357388334318870740462086840122697475285303461163375601477612734796017571356300653833462291816254868680966735140566177681612488699954820134689111257105207124733852496368299968195105866820399478913126045939703604173914640527254532182927563871019083602408539308895229060523451483227584107667738000564922757285213479021679416984009147269370280318894832333950156859882015035421907805607809320729589057985497231537602973849430300881397870138794654112335018683744707160430801881535582051803681516921603439902920167878965869062572466164305528825188027058175444338558179964363163757061002449960929901772507647260059985411178172831518984347678279151786236324039091531682791779088569532288329394869178457632976389788571288000371838220983330038371905616239859938060049384633437210222756118622642887619004065140349080595385546940070613751946826860975997888187371733129124743070720676628328461640495353655618994506760456095637103184495495915260346049565243346123148899861587756231334648397156669945548104674829922846745269620646848042926437491077231866726016544055120138345121564779338019979502959514260879081334228175369885989022380597287777685977501202486209545450820294083738623462194107246813392219969383271369338343225294747967700086142283729546240640589934885132445018806639510573663956947319547914109181847466695892392988703329427426731325204787914843229179743190206041466737860488825688257732218523934111355026505013388034499488547852863405691679389762974361413676573388386107944302039164949863008033622136915816405523273728681069160654068870613523550907131201675629091151066994176905171512121474370827635459219508305847573211443521524685788776306344297062586877498618151947170385843391353911950774781170234246089989454550908407805667720816174333421178775126184590491476023473392652440676218280180983561441272685488098890651552675123917382723663599138874426303616110368466260813302180742215755232250454405215018912960836526400628988309742294948786856205440818709433996391099773576873803208566072786268523487873210896419259725587666425091709034837859634725714104807202708376206183104389099228883646331180642174327307520626996711061110051067172077701203965546182299997081176212814729740630995257830757027825182451379224467530439114523741664396931005537963156760313644063991840171330984659655228543227688552301866093973970099765425718341698047458286371238613733684502710578495440820223002165562487354012717951769660906751445589113477147988062763212575498380976973693783802717950431806993186059377841894027771963516420955989971327430207957825368405658220595294703382326900365715556520797133256646001635142375211567764224429029085351145170746753824235401455196413656149271792006765921770286422233393935812978832051446796702342130766018217986931911976637689236164698995330978725009959513309411840920725218909973584882653919749867651302312470577194280874108975923165689934098011263714012298803902080249719045313379311035119833815118289527258903605049218936168360945882029530679564500945325535330723268051176020808166640005025037309270106491091196497871420111616463808877748333785408320214135160065638925922360288216380765904270624463875045321670535081615230068830943691543588795095233893462776406730895565872565898104904812115777190972730546587643756823049503733103390334307107880821030393627094412417845353495647530566031724082059336985359583503021628392561168231231129215814440659662187682362564202304028821642503630050461789948170837391637436289695562431828181704708406079838674139846773030594660679154510329632048145387647331262496569684607409102270034402700413582734824073966842438049563046508634297595579377183266477411437817916748133496290459175928570953467969190348795267139477961913428104785204993932937955471788013356101303420069744204355727034993139208327032487832418871738274599266194033419680422636846743909883636690155583221571175130463251929201669917848259946608288430957214028385015699793119313934292501906928706641323536552119338232565101961368597159559805796696605966778908402248106922362572490477882702479719917480605143243340535220308538621849381935759517727401969568019722904556066157018534531550147365872508835169708329708617632469754512508287663439377912573353868587979641074672912649256146549023086870009983072426647635292821566551856251791340749710442913631224916076029913744440373992786894078167984067092578033806205818990669233118425655422959217906587036963637689319748659607057553632476821449011706342121830792987303471890003953902082012543024414611058460788108682595065988171464327582021482867273648705152310417115309378401451459684606730157994960991082069196789768919652574181603465220849077928662241535962973863961348992023381014064314409611460276811864024715677979155210075200369810179491469329108202484806735969889485241731405633662286080898924774135429353604260376031810720224870644048907462392604468632650281252854986262248501041759056147080418769385689638261017878715789957915481556342283316257012250485017900648407160768142270262115271630634755064655854145763789545784217064883973445930780710167396987484855127993016664981428937281790004403480044133724753046641686331034601209951361567354322252418283128578371388786618147659095732346951646845747643237151881501782887134111466977041112955266823713880044336404684593747618371375786324841562851428563594166570153285344350574848949676516271823474053283633019845752414493790249218943259962616642967267413613529638507871244135055545931498285229017681435039446831035476709136461258263667239438192760826623297913919217033961553390649922465603496476972686798422466526611837269258169954003225178527344482393231246052396344594274077291670446062031319413719771085933367925568601027405468095143368350699472687551087763351672977991969253021757515504577993116739702937868918013317816461247357749377369773523179363670160756784670880784082593543425503309276217272162510629747206743748367618595722260544825866342170915726211409141784913360626772775852194327179782845764646399467736944004355917015659373255888017409256442775226186003080228297976072888820441582030419205309238679333754343854470063236997636271893392229658566707854850801750097883697235715732673752824870917581225637649191633290360798216366747421953587102546003789489420629097636632835913527452544029469589108613214721737561182472887873029141484716687295764022658531134710928367126451564025368060167768594130500185600189726810429100395660106736399491476493647957237196083582240858624362167643169814187144920880051456611858382451531860132291097183091218938633568628030842855864251675455600731722525864975781223703769614325800309162028360146168850640132627544104615452322857909358484526587142274233515324561277453086935782135872598343079619122928003610773412482457805155550074629135825195339605921279956386187655726427260062547768282716581430515074020745338020909380353874270246607994307448117521925094758714189275810868981153190161605736988390583876669803687241064465278068611896132204581229498671865597411065243787914658526379022518465434298611247002428541842466021629759173873881773637450739535877983949493033422343663953074624336268819781149730447289614263295630751675125765920050391504227056202172441806089218808515028507508975118170603906534909254335485895331041267846751700669896915284511458190350969886627383909861717383594054142009371212730625348293957099895582496407749672107961649338776220165618525492551449910524303587552954720097479216772053417895151339040432324772050888455784037212182935504922172512226880067219532782841154934778254250770659532507877940538546352853514923972576298582671566619791672213518957414295626969510812228524259771900717015859242521828655084842817268215498986100640709296639532850390325087003697219861710227784382428355471200199757941784091960412905857938162247007246853679238718900738654206677920576116720305948948222354033901619393965267068498744500603189982364573516182564912170744555428165049153059957944026940218336396319186647393815476102308936180029238722607487857612481630496292328276564177748576484711260556920436521546632798818608619849486944995192226476400869440605832975326295074326494263064129547497586773875990371392051389193322682650607589326904622390065299812822067442796887594194747074051397997133493804286467550879560955952083179850357553484316325306481421069757561476171989249594358719376645975586801026044267443928743871369089097510651777001706787090995723608707056058561832177045538003367361687034056984113845878466338891081362749786787658503307591121015713733491411319118600469849313565328220848656136940361645425185947148500503786682772654793433190839350152765796602494315649352237897026467153138720030005433917163694008723941565161681307458525417454495398737641023606190833138975531148372572395955772380656822048668725664418012970181850881510887507174698309986829659251257017324612343248866613473315306708124930985362753580634276623622833349483619096805000616109969969483853969100019096024206500212511350143530466544817761647707105918190160927917799096538432140197528295195346403568925620601310265078923831529830249124919228930484317307908131430172069325790459204387644252612515949212764375579585943044688258715272069621990413847959082050653839831369133918926126908777180210388483442543059597826222122996583790939766994908681170118844968441202181873020892302469313411050968302748264896211098306234516200202816198507298507942021585103757993990276285273066227967934170564655203035448524307501887321593600382542004712145265713601424940749911322898304810098961874025006718522106725076714880053581335692180524236763650464696530163878643282527353907866868840238396533700557275211971873547579148816430551885507010546799527810491961521991710201081486922916139734017209400815790200715560148442250458829330212441378753775307722186896909919678400033145784925566325521981055078394518947362679412699634853264673894054439703158454262397624177730989296590706621793090017213223919229734785773356602202959347288851950808916869230721195134071540270790158604621311652553671796460344592300132220594031535792418734362983318159976768978849703227079808055639589974418191280517978755121102313751956787056803099566495035627257242132662513965186251319664290262942029600280608603396681936463342245018273710735069272965793457529758427207197356636870561001466754855188518463532949096309956256606892147414089133001757460855839176325873236608715402991678982646975550902427135258027809345637965726822821234010756667074387664659483824343073065149313285056032550822762039854351227358847574789048160248888689867847980010917497142578614732036688477530948614063886337022611832638585640620694351311109884671219274010831594037917722797591007594057443231153508277413587757811460775663724537758837766991493571304441515640280844918678901530119166102550748205421140637866986322838081083102967632165530279583148881340859366151939844603069609727907904297934878067427933729677367583428494745418181965658623397383675220068104353798911607380325304060266872162232652980227352869750470521266470895802843695884442762254265230481272287046297511745163050420975307522280767587981060304709751820432405590175252069872986081084278924884093645025873685158777193143341640006183103057375259812582456727719113020480770537605973461616114688480884979750349457963622182502146329381232918897167440126301374226376295184687650459927562901209521290231922292664868853923860228772195641522086701795979673595994408416200896700849332671101168168583380546875978939393393512943850690811820381026656736936757966594811750273636962335441704256279947752697831785272130364104691435983070116337714865598772816754594836398179734571327447528014032696428451418909813867270016415819087019117292628470764630425205133951592748881951057868718459161229157860328837245494884655257234062930258063233226701647329372017273356355489000652325133444959087129608568474328916921483508400527978295137300638034989406431874995121878709687535520738055356287894562115917343224030613697445404415312597806068822225726283299857717413734779833600618972861459129512460383863946489875989179511927809707235288803611520207396597346361120620572415455040791769303103945427652843363835679969684869402549055807028686942913577277146210998048748084902520710488723817174915460903947838426158288185230582426301554375691449400712673656517322043836120168460675178936357361621539528598397293093208621401671960181175243250738313558711094145999960447362496996036956300469707698944726558426804658831332001819061826170328700131178062222120701169224636567851360865450598077582826883075286413182556775326157212198383237378928527896585375640773627361344190113929227623853885862143346485980191084218504408512643116599689811068287478282938182300451413501752374459400379261323593721769015739668868533500927869199284560082647332943085267613597843914094276172471968763328812656471519021643639533003073779670157310234615237074130642594281094904001880327775446593941400130748533141294734037065269149927583483563804351728594826198334154207954811825618317996981929317055927824245287674523378347849119078566690181598929138356432206943184663039655350551647270770976384007829835137040221012881507845797423221146540651030324610308418693544728525103372958558368824907806622227383838870181876654797879584371319239004076035193237670208919059857405717082565335177856954726979092922464484189190038764606857393362670257721536154452253998491414061814834453853382424641956045469998567639215261137569313649002617007869162138005459232462157144752899814561347501046596918787130713332583381401787881221323015048300807869770394455031177205773008524027754529291283238797612851397198459203137367665642966002192005199465450969860504896815665703140405252720274285704021142572340006103863308411178178747501414065066210569658209941393236860820946587848833868662579172020399398260927472061499498946335044988784556168443652127744559120014643656968364953682688570160005757750728961831048982544118443985011655842459027251123286326645896143096214707396092408544791236586832966413581828809462195825936641180024864121738731546317880051952180112397501998525313877090389296837546692090608670048464773821365545831237595374509643916171965538525931745154594736682574205311908758057250652983449593019419184063620047238450953666222052753938276784912922557121550534612504460927745478114129425491239102944769472791249733063074053292566823628419563818142895218140356764795182321059634371832409682634519661869324649140180006768060398506369166587538581181828343990663541700037639851838128410182972211684482845794669672890312468157192817120795194953633060840775121125048318556396083411703557086894216246071244896485843212203109182489606616433941490542260982767232115363787217567188889073440603647051977051668307180201663136126161080548366638332185249594298271023210594793963356792004156702455272735477102126408195058854703790516606081960384676831262520353216601129336801611271190512578944899757616479420592933506351677819763334088109380349528308480165749842011097660950147087944417986393077693868249015712444699951452790274349216154497100500201401620075915219576966363994704558459094497322669802403807601441396375478734788361062178002467779987652911391286590212210477942222906960116290090822110002495908615001705627168869108725349401366380534525643237421287036703397332259775735781453039312043168770236643575696283182039307976386291389212844255728687977770913743982084779290554152113643132839397290804828035337440640630421341117563913042360002871992644003493725765768017509330949883604906694649727968178409829346974122059251093829912009783269908699871934895157339130059686675382253497882888042929987856719136584864918701611750949458614760791021328162858249515911506370402403358642335723234166963032060800623931107223378397160638627433751154714892456336584232519786477804559525445291563607406321848682359932904799287252412706922154298340150654205888314765835731626250867249470887026818215408466803747807803013618712029639871709976027658749400728056982863040232572472256022965809127808728404190058662600745355691579539578278429310597145239604221411185253553044643927026474393510187426606949139878822655119496679697819864777094280258708986051232257963580430131785028823065254552472152061090015851388116399944850330297993659232076152912742420100733667761832160581577937933291307983157669621250369530311107018803132239713173109247523836487216897313243374956949110086110783930920279083430676050456639248133181577206484778814597752510033769437693665881130012655928079797468238149968736073491890296929208729019835438730558050474290161683369487987461170801350712849382104751939351483429928332018283783989273981436205894833760767834974588381868890805598150852927985038441675851382890652794058063058958363930781331991147803531413926346747783822241107896926826374108217071076116837889924948242773212342326428351621025488977876179659339293698476027844714636714984388436800811323287696769797526582210635642088706136979034653673584751200189560493733277991306479180534446405694267699380964606467844751316263789377496951848677302287742125751135134725470282835312286257885495477543634666163412541445923491594761247208254993194717014291184753790440536681936612111642343881588906549250278010053120364104380960273180008233483745015641785139094480774809359309036155263307387705868509527525349199750086186091506226471738932041726753080988014105037686597638025119892488965157245509936815090457517819529610376899127830874490252434054141630287737997935063055924779135518086809882231043346396804379776256913089802778893825145456206626835196012452720283038962396936780740316052685900242859173587349225886389760476300359540981068348828193276460132024271558404867542904511135712098665395445186472750345432193450281538368139214122260107159118766294982664855009354257829705718925216190037484994858756188470371574574752608462992818673634313635210874757931532082309241299076781084241373559179624773246506332720100571688516039939710281944908010079266200657482246312813653711192873876993816412019229753881772101495198655763011813656799503004597283616051021329652625873393937596723500169230263804566277598375757972323445653768304989045160374966256056233251483558637061752035902917683368345728437815473956154576950919467036588589991177952689353748875699823356808909478486577713011063963865197519384780680124898576356448703648451095143623233581605747743212062272257860948893288116177927577241707804741008892853107686247982428850512559964490519027480540542233446650457777969538009127947621818422912857922170022731187572235775252583873701549257296658797121989087059147848959087158614429747932028232050648423000649145008120418763520993216576681209763365183995906280531734024335406917689239281140585835684449367700662933739989379957747543016708010340215044594603117168605010995370882890800772080218936966234716148866753684423715391150488509269175970851798913998362628792871513713889160962243945318748699340310390080418720694971095262339780996099913185742559355116951294586827127761144606370755458848887991342516397397438193831431626579338705718257887683041821867364733400703559841072616675273846366853422295333025071534860487382715243076895358558948251456652928102532603360670293143018263207972187073982654847905127111266262601528347758506723440730179413972344518978910721125650881122602861173054329565703034478131315076539350899172324606577318021859489275944312448448881730830672160217400927956898661233812560360549620744662562967901723136139214040488872988869262013720734238657343796022650314584424374155435156038857889137353324112971301734443930810610417657280546071833986803907342659729495819341701343675482855776582224656274647983294930759700594918173983684886186169014541541266104490711842689904508444555199287794279452822824596024797818302628228005221508125195887220910533806400458344914590484943556119715814549959138914584209550810633290955808250299187432844699765971546679901887715298990309067794916159825238996338072461057095397439319209231418845161467477637812754967252437378940506041184220033031894473742313544776013431176216746339960607777319409125822085765157640283985201780995077351331414643925595959103346433602716327916726529254782003518282312455500615530451398380313905719053634728569459045615064180051744048872506472840420815513435327397995097829340604860031244060387002628610828832815722590702242482298656071984836680417180012450244984730845886729866046730152180520204755723894766394159862060173177333465007157420113169064151157113551470529416774805774849640732568765484422557422016619870124129985735038298235521525795780918628595654540386538425193074196553925884825114856221852760301219156169814866576502241473194520385486162222695340600798188854191236790559372505071197451791280565362881118156195612669528988324206352594323710407420006641343948610391798040083085445172890630189184678514817168222267894989383599964749850552867112384924148010416193819070959656003079215131974888137002292529002305956701180013878865595913033111910833553948284800427386339094981490894938562348666056420968822679498664836116020738503097686221853618468173263606033634111009834150019217639861076899499041688506476351345995341865397590133124615456273141632461136275264580452991244874941918441620353366927291188895506814056311349426927830924429524215224796756055643306734369104444187235141835519114687673683322458150208219474208795077507794760736757421123047754009635677241230235746699140413271566349794422037123667925054629037600145600889528399800838097114473403373443295097179195399710405610780832091809665098532053524308594103535883904209857643608624766717816515743028033962375552561544490593231100595554986025608199519988554636586362882668270250737545136110138401961093291148269453494199747875497564540361150739544307551545367272407769696088487984224749156963095678379373120402194112390420758502647038985628535607003112028956353640262754159959474661499500280369798107148393209562817904374318922365366843667822546435085134352596013792247117575803523884533732915627206292741417385621081282885467518677310690380973971564428569755080416933770363450957945326522687985477685377294237684488311927192924588120772558835823590330349528703315728506269192044928860893036880827470135166022423166266752135371251462094822787315472917344822614399270008208917042515569648952339635457444620694682208621798779301105822189277170916232610718183687502172364688071687079618725590301694658038777334346716280123762723971243733032548570872716193291363139846883958606018944367220500953807774241246574352290399648738013826732590869581585630131019504929441104117275041491742915555133821625138301384698838122773736961963570686025899574056648261409566600388764085252794259658743076242943008135678866409893146029111541983543375883487379769984095024394598028507191608435512943122381280900793875349801264237575046712725011752761099917944168755286673921512021586206351054303159609318323260132366933683806906012665157781940714289334451027281829705186659565259667464785333597623637623889847554349890717762005243467730255873157801570429159866648573579128724109273820878441793991264942106436103697305882482314054282361262019169470627897038074446485053027750164635382799493288498483209449091604793042475872681105987751856733465493730414682007808036302766937168727443624547700168878954729492582429027918135651081299452610722999045106557680560812932751312522646186116694605383962370353383239533526853854026550535874265614446164332644971037836592616999824229135703621989333046210251703970782746388866418241960256756883148195267904438867399487239374899348140983459565802029613418746895637866717427544567819841493523398634409421296662615380616116453214937758743741850783550842190745411603066788249282166973030068378736968673176070056677435780867304404683830631082216055558550514002915310094183938900389516629983468742954811434787252470967262884519282734933159147213060951592199417411606066299096438544035276304794445333633534466807325555645553434919687644984920888739783350436075726192987143564933013929421313565622094574711502468093330755642632687461738126241497271119554774846732739752037501326496907034552087831568539974457427603046400043331117255612204890177030578236891017096914226721804786554236061148965789617415017137790449187147934022580800763442143352556904145463952626333386149073653014630762631271475957853394972814850171196825867957240588744842208297520091663839486056572033205593377145186024172528258375211307971193779085182387041417269989122205311255514067313419963061580728897629417574911262092194076385350607267206256220890908463396360456162948538232308448795453114500615943178160469521113424992195688400442664953924467555292079855723701617301445672757725694770430557849057879211184192049078658226811083937150256369122179494319673621073727954108741007218689004572530932148504426623955729428520895397303880691563620788654122915162400791735697605812862380188552693084315850018217534412481131590791128998808337785199252829099417891408926703625252939126294336400164000871765084886839655737777194735991530329768445423002594667937655446322117963746612572803304132688940027345548544250348631749751487476207038451101393032710055669484116430882795216549184237466808217414581013809727514091074096854585678168466277691283594553616324437691869208808691635198515397386293867247795895602413715391930427101803159958092895264893512709184841432923824768048333960149288368123191098846595710216775525190654768609840472016893937074328535701057984307786905708148064357897238848198898058115963020546153725623595879626906040381818049292399282820844103199452509379950293176987009558435666964474012867844535637175734399355613326085833546243896577987364427493875538751322658834161755045551376492018950658455502907064859520488436631663037352868616212726277752590802393153489879821631492077864751975773006919959732434846834097145850366276393451389608838149636592065767098198072107910833395362528699043369095416361547300749874313785424412211762072260798177175246883058431315732318189945753761001848489622587020260353799646183845899950974259543541485753951607978726158667372399569220226707972006639504266177966028653987056566186177242732351262564097705820750479705795147624698807392804319729111490341011561347274927349624369355923348897537565820570531855244684869099275135476416137810064351170830453165782788630687586999472086013409498503238222534277023186041945334834881072100733175485307055976591402083831508554647846062230516927916715671700662119605309181905082401099092132534125896954362824137211548917514232577714536562469966405455040096518397027159279987202799578844414071680048734459656434637760950231253551650944015987619292257944955175537424082933860264331846321138296420533671793641042497483470139113099963168132770810356117338201490066550602189439373855116290450849469903445439421523225901526251081082895636743431606523191421160804079497286659373391664424331434221927585132892442891029304209432283527917615669435761753201970272841643033081871488870477433479811796062457155974058244298116175719748347778738682225572517732160385043868013929671821371012565496298208093980722928484054392448834600139389561701755380783369089524653369311447001529405089224020272725450997492166440343943819953851014462111646348201797494669718303796375732311123411989226640929777082273035245746825937791780518158609766934147692690689028600294267509272621715214630090993259571880899852252190920796475972119009364300769128428862386443713627203247382777347738312404718180940799296394454996875407118174324242879812926537539532882734261183504881460953626139954805157515289633557242867531214823509169971795317888134388391202919700660026195004487725285624436245308780571242280904216643139062244233902794258588213774651557752410072870407806947366418530803842429692833608669886612338333826807454124767109345314675777240782058204502013711820310202822635287093112483450721358270105385332355648418936700186710897346911316230045972935014397472605433826665238656625279494594844825453770611110408003113625105715670550366106066689703690101607205857424593258626619846017836980259740370527700389784599493738037012604012057460776941689236608418070337753637878351546058567652390215073249242589910056602955482980620777686044424231411631300132530215523949391196862410542623707861969769139369155944789853597005163738454798732087519855274774582106532747295236966740326776179597441420241373059468681189653799583376132666179828290334000743661603538612607234447532160134870225300113952163472852843853655909404514153224278469836148092311562123412679528860121996256347263759277612750533271362841241145352089029629092847758508996060832218863677574631105019788737833102320773676991612228430526334079056877726819303735491567078466564253284325351892795947837289933266157039850216886792553541539838677246351970383099962351527574123193493338917033695657155923945272628804353742048574594537596260424023870580895183029265564243254754177473624234559858295320875412194699701971439989063629491821642189667912648238063646445386578735673777683181628573693097699553980295905915272686164157518392748199859521334859066257459825996759826985496775476737146431945523137146707388320177063247734888643132135268615629485652539024762176687372140273855094444679484876487306486822239199358349140589981408798521440276495643384267899680874510466550635624442805385364923027538358831725792150311957818750135247471820645585398499905194643807758045913147501479982561609357736291674447512401682371684134994884048208697726978332552216093816035795305456330383019519844504893981844580117757866082173890931235958705567560772059336531606340110270865446011446996227668950033549128683105551444791667574645364207620270629607390006731633121796852220174638804324587756770910386061909525219057980268600982683006556167382802499251649969868438620325190140807223014764269663365518692739782684200185381473153877984645386526435293864318252919123377975594261973740313694066267457956848418430600299041085495886738407851427818713646734442856361320382544765449405317311401894761674170055833823926244003135166055652683155272127979710934936652538215504513851474015837844269649892155581754242360795425481713691993107625419916524024400818816318983221694565089437081506868414155176426141566779946136289537020372606451908984274297747732074249140806528040544419745376157554263460400742444745218994629456338412930973335602490203110544405488449574383096291032229059191980538042651919477364510887061985419089256187393633810498780570156797176055185596084518334010420261096737112508964284120305218337120288852951150502642561353914437299301871795814006747275666465210531657208291965770830968171706011224525144368007284704249552634648494409175801743634637906692131610938110472767460611411558205320990666009090985978772586475993873643559824428500919786660939541000635933304531671292922908459334748521985519653607726256483874225840512239447667437692739086609505099178021836797780532479931602907985495141547400430725876254603349881500277380625983424397861466030512021528723639223295120722745178412125347533317093183183567924229556978043353764777116535422475917013485747344948294891644441844086394275747137451039335827052380701929110039880668914762383384696161656720631821649343105449959040145003086862353681914502951690523460509535106627050030676758383229832594927358952152163913102341216988566568266440609963560470900322467806761870630330183874811729541804805438716192309305363051307869959798244603498245121720372216348479555855142947337056425404069786325351159894205728509711443965824918601279807047603049744030947795786845410002025341958920580403255376299811133521733477879147573843750950481345353718341560977994594947271728252294134238004326623187404246916945849618426991063052506962386322882862493023970940218560182806752059620591657992331784409540749944116992067647227351371492627598443049356338599040674287012277187413715638124477875960719141765394348640452491339912627028862818464761120555407329867083711861195396441206509922746230189417669840852036660138456734673504912793458002857898901669983546985638579028773261071315045247982851208055382297219604781366759034969641586792371729017588912413157639517823834449878844723882061308624019535912770785963244940394100355841330105294351251750079976100560169514551818956141022745628471503735923119353623188086580366886871110908077648175987823970997075932956266444247361080817565732634234588151149015814737670438598028890064382714395329035492146200339266949686021251953417012211792301907689725656505512986499237890206435390389616267169419245025065820990308970260458982171577785904933086289954536888590229625844611305350736062820499418167166951122740609339028012998730405888040025037642787256103687703542840707046538285126612341611079393637109849903727532239317900232728773593295299937221523240305881570537516988261707152893490761237455723213187869755052813934891326892010856368029526145596607790225429632569054248606675285622347607957948519078495120025725903923934235839446485592598167847057649835423979452258688659902610198414504149705712004704036501071531590857063939413069453909089205371556883528879841359896753107653123793329179509970412309242905133171967265775645145235113077740630000156491627931847608396232239517820558176423075736325109980649714326648417121128711502728224851806104477234625869618286800111902847862241444052333680079269357633834233731536609571519300193246569885388148781342456836151600532814447482451237699242221490990520025344968406274202797656170266369265604707292516659065150129288442829814682064468924836642795077701450374067598518403684490218602467808988632822852004949741289113353404536244947907422548127313299448272083714617052096639070923976648923268183806211139324605356704658394500014717045372474686479086834359179325755558919572160037126847134980999716544564183744076628375594876071725964401554956812805148234281366539840869647133015327247512641010159290715150896444144267389220752572806114663443722688346142107113941837109385166290610972364744584844996350732819288111744265514838497660474708428965427689914876922863248497693315426665756357677075383559826902236740027295714311474061637500611463141899726304062940995893847499671609585627909483734844681375155488768262650451034310329758609673990296050219123227028946224638602492171868354841860900749068401841461045858401747316955809177240039512584863572460578053564524912041879420896931741632249826974042719908731681274640095445775144872583983481034320408060790889200046588446021197080620900120041024147200452231680310169890764715588913659255013612980722103604582680253000839655069885165615552902900719978836835562438973203553973753928629868124151980782463969029816884620357771049210863614103694889376275533688966255600040368751035492816113305837367713474719757099265987747287305499059978466176830184095167412729570609268435310721550238154055443491278395852763926687252745051125563239543227189982539035666220380911003001997572266420805750448703064842326954156132224105156332084013701876671654239327932876819496890240068422845076895003834661046474010990969068369400902642819387646863102788670000915690742670064207811074172696619356925019684166794222668184365979604974445488878596557799730209245449495114386492903596747212714755341839079612675822452854045209962324181057642019953371927389878202123198626343334584188756513762877260016869429141015608520266748245749468101376789563217951935530118063092634985123047725022347397256588598060758773655657626101481730776711217129601703177655498338172007658746138275199491705292608639963877585280166413036107081980008704024635951631878019381107633603705650560210489762195635280871459509147082357376789737518210267740114066668979742746734861373861114122919748147350677787773932067277935488856745069911903407710203532426243368845522852302199776298302368061486799763596545543014786613921534633642410824082575049442413983660901331096219178819311833285969378726739606993585788088078843567599818036111277656364703440347072132443991133089286439882527631686904828502874353294714395813314247511641330028110645971577115322597204919300445083482159002730855525158951499968988064925516153675724303202758901956045496800492614125020366241260175982204418881537050898512724326456573314581423492581221320804351382400923641643234338243574718502397976881271520690974804191351235653917796214169312242907481666267278574995059991356548291434598316660383867948697737797606461721523778761417318654622509105351759358635023758415100233578357472081844276932453720980672468088242367168195635509881125202968081548176840366553672028000025769919684997004897808677731541539813184324772980248841094916066412902237243422589735799472593031457749234251409620019510157404360701065220820351349946665008557956130205782605761448869074322252551550792933573334893392351442865307955302524596031422767325101923716132862227765452562743698829269832667894207867166196547438885800555136183364438384413079019245842994116075603588469835591126379197659583888421750234044099866100812954112318133245749777546491640439052841154552973411147568838034732085650342618661269498944806664374853765617158129569225948351298225138641962934135678391780324063805639922358353412121750523079003487283067527101623337136263971990707674910565857835961736483949650546610642290870540624288676681881569309675584669046701187699867409433632871825634729072137640509545137411141707232526881382724639949319098703520606349690186126758644150862494656255317694402075857611253933691520798901875018999635896411880767291933170744177593153609349255774192665688463825338006560299978655883168677748555837557587830141383141328898858443567990370475872587271123431321743210182066694841112671846577551698521529243723734905826954905692592261523831234485482053665380321158691208934951394527470363262167643152232518372123798538244089630646429493403413705093552128538100854450630680663294901990512501777040552708467688696850932965614772423745843363905606575053225246856203684828740493259516323030349885163814633852768994054591894462027575448237785673982450059977184311586249024259890392706040951612325360448228080416474727069610928363560958545550745642094025141573624021149018794200696014569783735086280595121137947421961348260271189218743301890462236359996330005827949628970099149370614855354508771549980560034833349322715960177218922192090052589676821084031650022856239417269487074599599606258691250191297780487854975279372048936838663735351365436277983988893038335143106865123052009394110229670063425344068491105886821541434368756620805539236084331209559088629327348484330229335118384020101842596504977408286654877149916012129367220491186108153121240478971709150921595973963191336719449352097890736927507124465715546202517717081906606653981812945709154636868313350566984525106217495176392476236621869163554165147054980750105906639603696819547450829164693849870672733995849979917000432349202455729427365849970830669327111285384398953409560087449308967293010606036795712567740343412572339554101342953641152921775872771226114893609358580342334645089314475944289893025006035454257588784622663299780276167998751561990359987310690236389261664671478863361335439879522967511846802843619915195922327521401383460823809710092173508284602862403764554309684898986610205167120580249366510658512676568045217144331845193443320556655160665186917467702297843319173669447434599127091889299492947713901993106354543615729656514009913879137561494172252861151452754213154236792268126159916867467512540266976041233632013619329153984028660534749833251626167610607056569886665548054629576580039490163975212785326739207178313079529226188603237841914497289866856960346184948405090125742440483539699628692521361533885219284512364869868884306219254289826673039285751605087797186569689283787631078007437608590319340355365061490668628276227562168688440242291274684721407854451778567434942847003574559925106039950530536801728844918502755566538727303691358871116069226805094452131670847618878988572699969744442693340906371397020967340303954328398142103418739901964164913214672679008375033016577486898472517703623061002205624714698622612905822231149356171726566555815687776533817107982866920081476358625597916560172367828133195451296355909810793464752627310580560555011431961149071291783266405173570089538223980672246786019308291942636226689227864337274626593691918471545539408498264041502651891918208972030568856368254926237752843207891364683759672653646781124822032294658808424938885406337711508961636803985793104031630175101610089244206155616774891851961172351020972732324260522261805257561381978272057886223251862554647682816752247412496469749866818953476169759096564560474700763079473387798986041824956392566702672578194966985045893123405688164419637735380982599584489429521873598921957919214261044035934182571517261281375649437967739202948759199289593827069854418349508545052721342114673164295559757939890829958873916313687843697228626842654611355821154360929915288181534625354141930766794505414875248850647081513661188207245823404521975229698198945924458905077931924366458241965351349341661132720231953153043643416582954857218289965801689981784593623762193815309671976320389244714179693476814815529700436008197521553110031039518648565406423368003201977743579083161369384526781363610287780657891288731598965116324583011018961842112518749419720219221276717488952586081677555879970531941686700382220468828005628648230691316713840270665425113853096437512425555316953187595507400398503900172018025904784014171641767317826143759496456860681003569981859977662610990205441375024432164435030891685542669336692801276046960895574921266255823939337081166380516426660778646845371576672877608429761829849334181398467800373125605896598604636060286082892783999550202019845506093385925200887132368075357638071308965306189894811293112935619889625765843312198080631439842970499557451976715502367782985786430423754274685029117051775415902264669507941250033323423848656320467046582443621348369981606202786974645720742765966091689856266825921914505286546565047660916785584762025382209204218947955675216466647992266604778536807340692321057903612782474243789668231114163413845763991571322339363386302335181035841258178448609156262037567786573070307949264000728789372852742688106228713154635160687229236588820542484185012782712679553019206383257062811608729529841234235629029742466289036408331548566053932218833621911976533226849293973262045708814997803597035077493246540538856406508377956429434386504130339799128691848626124112527931942691061268408274182644853053764116584342325671685317911455574178450729529189835723836531070239864012470519051708650652252615088313409109525248582660989179948512481773333142386373007555237883017440126329411509947917366970482325255544342290385961455819839986315427769884617257089462328295894966368012875201659180226544128719838304389869193264009534656119777159260960542609652222670165006756125614986167726928204153719585669864354886386846679469888992416649087541554449286058260088613241712658683119905040988028566100054853400360112836673720854949733047835984899285365413502004496637282687107652948201932958886706449296951482429542244664789693030280496711825204518777893376485626186122977947041720224963206135303283094325094665307715661046628358399561535038814226358928529929216062199555806670680027886270685788334020395422769219873798274136838356110417590657383368190636099794337849067263392409413056564286845888366663187384252512395369500429355498792389673202739882700080330572717451041965170729726725679051483111323807497942980145139784793680392367956115004027438635629227599548565728939251376552574897901411812084772860347659314426537177818918660551998031146723230653218477700025587459065768625794025330022830864080882075464622303615149897206246560765200497381332195152864237730392406011248089308208383843675661953949465501099631364709342070694252296645156149511803550302509997793267505796357906015102179860506117882769028905747376463655302781972540949103013638330449079824981382078432797970963595568123453080136392981614825387425642422012910668016252303600204259627664186638876779978635414339692523220881492038577735102271016570854460022692210556103830487404320008219563477355368525049895111933382630093596211806136397212564963623335057906732699670319731788534454148418508018834208631695412186314402445358406548188721029058175613126061169990411480687056449181039689771137953975730711480202075986799486054808971819272930810274996082151626964901905995386976364732087631422424991164304783027105626699463538219474434081005047020346706611160957457785831902523536863898046560272339578237830880950641776487725172740618198042228561917639464376893240616916879182967213041660326068343510685703949777523816924073023700732086449647492951635158022237544168901696600962076602153001247623497900888169664750140430051920529999607743970077668537056987634222386608625297901309250905365326258170045190060424534078100113956233133003823424803985041264920882705948565659802916823751184777943939644740418479189109166934040113922668570949056309141382885585733079878157102599375403706378699358974522981057953166466213983402248921314512724770194582478308677837695382105469399293702894356177954940090689993670167259002327140155954569823695989131495640168379227441238249916076342631980821949508058038092410425468998406811644252059198071648056839899108239203212287247845765551837160467258980787927799281208346362997576847139610314887761511352962052654880737169914045821285730707033055698337579057611044931944890792543902879980104494130802004350372427458100729994698102693493181618349220829567989852457246287818503223537872409073594993002593108278334486834789328610267535057030008999195659289609165624390128381571860089663134748482120003650590694656551176376126267099278474304452114119217758733094585885440471653307746969981438860962260330264382758859765780231174285621363340141091560470388729955413425799321206730207282099631499362158292997813031553382119521623280241741573428860485774358539437094636454025624990684545500030561620193362826169996061658238740610381529492461252884738628353953036519742254800060991311166258677381275429242321909287361260473325604862649211501545535024450268493242558082304586478493301758124934545852142215314907089249623787202463553179410669849249013109816605986315978851399473997580534818925587654934322342931151756298659213999549949888059963191589516474801379775662970518127417065097387876199002741991404719588169095171969226275025871597728981866367189064702271074046551770568558603183873065872242303060622525317329079766653387526300500900301037947579697405100577229733525348220362531733865005850125555509427343967920200889566588991378580755810523603029035506571910070607396873343642254830365998832805177762996535073059632668085725705278338864814751926457005699644036802496233064333354447499637225049250905390233619628459402687113704073793818717803489503179871452029231912735399515872803045481351488294272936252850588661203276202378943834852631642656099950113991205283345326335426449189090231976072743428037888337154699394424785516874418880923600227100023802230195975939343949862280649301001691144429167208616350246403930811679792757384514222470698507745801883688982059961241597573557374656756841028627126484151069182479755116120064016585873908876831450410461747444176846975694789450272162142434971308775347662159445661067162614449489947900837245087678595025767366059655700102725463905279705628363456177779513213204684681801080861093397671345390370585222383636465052302248231113908458062638324710481359605779178910741645718242605960594717559852128946765090660839955749407095453560000226577036248558171477007503757292725566065730727607199925264362140576419512203474253472376017117122381848225469441655838412482657618358734912242323873743510964439321768233248228760318713591443430593284985488917863766309613776676076606683098197300763858349170915799004151589467003892099797039503514076235209360333832124183111228741478596937528012931191194990596289673955381198133474692406149623088833804374542282581817668168457165887514992116465831719093460573420189300450602986440025949985209244379512147592023417233497016458371219898124398989217562169582780910813485504970337332280263476947759274185476776968297640498108292215247994535671250403484872577095559332651152157332689822611012469716838436869901903094610786283830121456653261847329601080610897800017604131882175587472405896457931950915208182429015828050705067991091264324623464364448044078889713065310807663293258097032303815347207165097473147643283210699239666335939086057529886331956302678181199827938542937645025242668818689233374775255824366572845031072423771759116678608407289242235552519567614107227636802798165768506142118240058484008220519804920894505570795646489374778304207085036131409703272162033856460989861801871590138825000015130317441705520763206424221570320271668360098236614643322104030893574582311615971672575797047201962126358817673407596382220799806451639101358114391523089781170281945861609021309161988218942405444207794346813997786589983136347929967281782963919874662238324872425277067693869071658787753125938062015051287593856063127801609004755754704536819484791441659434340341647404899767842268905310892665486192352836448055455023777236787264325079155764614827430186010845937370908696593297471525168698552876422844848306344761565892340957850343633701814189396179690285827737603157824479030928778156809666218890226110739650596211931127158186273165459974954481957652959162499007415491209462609496856587474121920384694263429943936848663538106273776615195070186528650915866841156207360871880777469081439898221728727077066090315832266552643863088959153684841692693223764080329311466951954996084433583355410090289285769069000537127363050789644295168050256583687491330653825012042963286508614052982652143432942619791470781191333327187644676550286572678069607746268655336564531067066812703613484484553906411009926087205594775998963759066525146774245350214342915511083383615263127061498592045146930735796769362896914958636431097326636450445016196601838819870469848098787024810408991573900583515078913901286245368589916958115643917271087206834948469055407640488566037320799759954518935936422515787899033868485339463393386061420436825727260352551589735158074046895626927821791671423150297655432882943467552217676187270992933547382968146542832993956250740158627455134773436193975876522761569228943934914673198074774323311400918325801882544394208703841668595789366885646363762722062139524276238116151530186508047285149359707718364092105022786047638703771861426348241002639807475834319382209206341935728584385089949398920840697163869180557778596773319684888679073552503167195404352721332412787829475334013348824511816805260779475801957565511928595312177727086032008992990999863027199400459661718127705834686315239910002789706150390045700411669666793074760004810320087687946931804967328673865198598556908354417696172665770704759091875684903459514495790098755106073665471890146944634417047914491182558916132824080772070233424139035746072523876606750593835393878333412774648056509750299015216261724238094571632918925159467447102266011521560547223028862418704744131061234073621662717448300569377700445845622064948166439244505162157591576972291211806024006135942238607309140750535242849031009881125373674347429067259104839786732690610626423913638878210257368275913883249793765861987786934637364713087996677932193630866554196593846902097035007331724886513909745797679021403990293830755410186437755956688704396107795048997605062691934886093926195361448431068805899545575687166358878062559689361628931838896381547447045873088997773542593385554878745311411445877512846070359917858990309012852071158112324654781164881731647168723048367715722268828284896847447419572537569320281345405027697215786154586224616529192071230285764404157714769380317552963043794011500380114216008277756987151125923464736344423718362626893762101378497105059643378301040914242409802627031883322669905761113368623226478003289937476731556701962477338221337011928476139484605234966038860927961591381671803182093983039702633478871033114551218455996255636678615565844348681448407126145635491732878968307815246657593580199263935895614050202041495362526991582205550566211452242204397597314637461599890951039259885806783970649045113467636267384821390323514972738343339911620814317416322227983257403796586800920049612316322825156023773310313094047443779443469122488448499007703603370943592112362743439061902490763353134236654480763455581051874534404161647219932279003442225778079964867824469667384021582448404112731440247044018104503377809522064861623653564509218419468743620188833745381860736911870798814401645280491255656958217425535865526111469371987256843436672962853087919456325751188925596472213866674171140349638394857397002917192287496219927644326018983984746632100432296759714912611812344905936173047211242685796408337254201675679563705415340093919755691691730177181141188658008808493054545813434076814084317160720500617091917945712008998800102881648240083857428847723068735870676674496195258024235748289410356635555811757754471346045711281560467780307788728171948675153521178969358762715261180164178354863888937407477796465333558371550259987664117952593064350976328907357657613349249945819467465846389364283069234745870970038437081467695067971835216694035590436749341542655858512143575162062640736005233800769744931639855138416470930648531298750672619455072078070145194365397669345305236271498031900256408692257448280496106548486517894933801179530190281730783493075213090527752857364736436677961339434581489879422404905353938194078587579664601769922796842698185842041868892649421837937821746613495491727340495304227916742808975377999462852418662633081937585754811509075376763063215814154157980714598477135134926782705544821285469956618412275748103747703566950632394532707446646700754549777316683051634237391932044367688894633805672161435930246921854081391344228836380978714690803926567590905230263132524016753642937392579185203460251404154495058884447272908346895566145760096195550040735452251455739121851740235127548715395618884594603653092205543013249670054691827824844531713564838738179465148090834218237251707179568566586164841028578316411217291142086202898021900447375163062737197659510770826171408772659249433216037256607785252963824757470963284847493917837331847858487029168086442828151554459535004831042994470110901653225893524648190434361476607409467404207400612659307911735896039994254128308798395135880502440194823881653766069208717332399350319699990808082019331610858282450759613846274988350831181758617606487071253389069449652159321610867468470230502901341247013812316772446272749051291555521955925309879210699296540966902516508806080968783381382756715746105158812953386788604762131296926739808309177363217039215248679719591779674671162416677286941693981679994847362467343977460352319237674209679937498171198379136941481987880599075715105592449490299756645891506768599948811852580240102769456311678138808193061585285089240578227064124708524941643350041059026147291178503098385562762379194083674692836488680666872356619465862752757331837007810407581049474661532509253517945832769140274185426625162337965512278000382115135343050126024377527338920578737738274553939526585267263082163697140714980748376210813489697094156316654071249960393035154819654544889462052869264746405211938114061207636902515211296405441266020139453533455541954111655875370868011197689487283410074658271049516811871173734145739035133755608524278632938438814232952782580075872562341777117352876733041167866250779452032728829095986940754341614615965539635152017722196732273219802725630266030114189200484856650675399691684661221292547981966903626229579150287020335205436261719685761049500571292824694402426253725466776781288267449759593308797258298349042533831497093156222010736785519082484761346682973218841146797117445040648942273347833304125562831762171573893473338480068513830140532705564626116510324141676556764386566198295564466179768765265852421772246559733999478224503669983292937422714066847948625263511044439023954036922715345204476710594655107903538346548414913550147702656921069888205529342423839573369714962293681861563863529623062459356324040372823845490394174458584805863951565111426361896440559193279127941261739056010238864019527494438352814370019376662740610240404354948288624809690558037260426177268119423292504379075037492375664895158957520547231941830189875712811288655793714305973986235179452562642686517152073865447682906247230076539364646537198030484352060850287089871310795877283770800773545807997123562065568302544154107112955451744623711737896061105075211292581654097843106481395089403712515972303622694767760136448054733344635909305992077952532397782007125614710769323908888820861217939192595354432108107695288287976634724122400485578806289860522514064936131995633322445241600501267403485353724233109411636346681334924327003332313252250644314111214432660845404753529673703698252858219855371004245319977074007483256495056264153193588868837080512910686259020091925324136468473412053927237991569821790561106927273219295469707790608919132449362874398884334943561332249475946172931814859186746392023198231529856166155570649150410084758098853604574749076969352395738330367261804865580652264492268677816853794684500155806921063110694232236581881667087665240461309933742344113946649778807526385164491902790507043670004457689375682368798994112733919644189262322170641535956304205666451728090401843418606878172279650540700469486702898459915596284911904186109202950647738087871657578118653720661359843291675691143498932523468462482923763404694244035644202247993939554620331413003086161822123637822505911143725432950876169294769172337587484439089790800694298042816187181284507097851687156935554028415554402646485255506962809617763099480543636779758603305892019488280101234084534850572908594792139619963482681715825474123886363294747206326664199318195534587929851409727909779440236397020338918984925210819837835448663065124931724694531148144427198850984360584109347846973743578878878942967189516565761632935939212237111281045344112112805545229565999055128506173796352065055750592013072614976881905521624571468275595572756060919243635995655889502711514699364028375777129931182580940573484507548762551671658616612642753492184889729461934292301414604857252764289140096269927592455375194298159287373279758567087638492264517354216215336750644492992170307748631800842386812102219373440125029754594334137756659511053960058786316598280007794176483978670218834245513047347503570301317581547350361912963205590069781262059083550255949373896147960746263327875335990546688957883980957404942487749764558386586244912055252012420496186934574829761425581843366725450595181448552862350548767824925421662835275204798882570793889926729794100225051696291279491871660399226541982229439832242297032044607691813948505552993630240705108524249248645811606192686653313712572374205105754585849373127055439403014987374701142113974219712954004563534233917265943095669284225077095313779599752476833493630551667159593861823249550029245829795133232396819799259960960299414974151098935539844343195475409839526543557739279578014411745528891686921144513174694017566530582036525604782314154022806167527326771785235660331953664181877188215184957241305446046463151785666654596677230186108117582096144090118795096475810901236111188722686495339731367311926267643186778913024667829808688122254373734401812027719430323317077945425745973049852236166691943632842812702397854095804427203515146593782114069048029726692060593556196538218935020979867250228652839165261389495175735617186646551594685554881207162344922498569880961625788046321140333751452171602268796407271139004258794692666767733269859155501991960770468391364314507614752927885357238788740121210441008580932646977730432413494638839823662256465192608035810107963704947877058615298739622811548006064031050586716467647442776387843958668926371751071475027686608290092081087265856788869056299594431880184121285867000144789998222604752915420713175772956279351649020920787983450377818280074012768164236554912472470048724347054030233442273287547845760739838434065178310582876302091253708998362189492660609313935632005504692599149550434713771111566705923373429600585094314683427679848273299004188535302972868351708833124131505725346565947218146455394907187840131458657161942101810946248402826460558760269546794778214980868242536591209853048113338407220978949398924506148192119697887520530614726546722707739049770837922528959079130826930806318460879336853286251221042168903138928759921772485934635991618654453332545231944086621646719297816582601766247426154668604677335599607509361138458794491942363927934876358323898680707775616496902589207966549340529948959122071260146508231666807590848356504857904571506883060752981859009578220201630847652520045105529127251627411850819161185127968039076785345905211022594799074348255170121038313147579923269999995214343586801085774185045661655614250813094282488939142395019122396181096795217395617875913317149346808252314965431118614786705309212083606855104577374439824326757381480839247339168496724706811010287530459073070853558938671621648016957981891198037442998964173225835170732337899020729941183745465976439528530839991259876991595282418294018455307517727834366851197582848553613729025788209735180007831876931364962876852458609998336905636113341524567007487223201199055043524779575508212772537857286270633627045473187947942702522540971085585876335757173071073738339260037543100682053633468514548070163749686587787083414360585251741861625429339589310432553116248909913674739747784967167048197549762513051081408912592539153565092064837691445204175432880040956225721196468673551416354968496904159520355965350086320256247089985377916144498756581766185556805769282158617023235272125643500146031968626386986818901869497051302367651377376745941039682626488314156070326508965370872679641227013571921551558762306369286455116427892578823718307338444122946046444288972443830171432645323056155303067183787577603534289301402539764728904611418443210197076135113950161458553198038389843183775918274065581055111653477243104107945517432508463740379161948360360602906582056556419575503872410473067232572815107105343517758347720896033032810076929380888151557300607780142613560067419409595885183469252703897948099872713951490637094705130130916191129840993230537395338675090020864916080645857779828349284379790933624255540324112948787666604817163973903882758244612018530788934843733575348370137610041682083392419218368446320747689877010256951451200457783612233865930636398801834227026546331880853401088753469004362240849049944423521068937382077625754654088033300008158944803377958237619090760437052335579453055230276389392281483609296450034284241674907262150857516989967408412762473148565123961723362228413188652002303261242017497224176478693370111580049101902123997940075488596242503737669312673824103290040462324416478451810867837378700029231726275501164521548086002018763639173400013074021372773403586983471296979228878699626167165821913492002759650895513200156880514669934486035651502229952375700509535523904348255690551584517161844292389776908595256096743992730619647098117806151135490864433523785700967314773896439009126089521133461783192810091694244165515046141974401249786585518763898859642996744541856488468701003977653603330741995095957480257746670553436559499737484879088210200611795261700005387843064734161932753760428304701725918726116767333479081485033189270680359724128131742568419972865282090568816574573347709836778219870065531978501293195577566293430507117513378584463843151822980980200720594367582642589061916007894466331273596506776060130597330584332983820083127080199002927188894628121102783360892712404269917434036585749695791716274268121078599609856108215372246096745097907646083564024054660943883180717929636751281048371706394996753453693680638240658578119556099217975227014892990267728475692187483233638015586860625560144539828685582090340123961148814154400261871409172896938835001170855431220093182888840078965641387576714363515517259839333218196199248333985761518057854422298301769614571593592000472365578032213511999434492536161675367037698840756739981347983711105890525942360097151334927951795008003715586241321414488939433144349774804698660097382090314561770325034314274976189826949395540295926804250667677890505290821930540571090683417039914382160461071119624696980873206011776441790535690016799438123380230038036602823622153202001095036354866052933749880358565708029361453673223173044475298079071641796323275756621696024047483010590353592512316457583553087265317693183387718258797880556614414749993381929400195354695510770325076691891473245056306729947293981612174423867412314887067604688938635274541671823922321357638135370622737660297874659912120936006500470565690306908489377035820619752520516980242546237544660575417877361062844763843912266647102525160150219209769703548637404601021042266187085813385027726645573133021774651683633593651489103272736740126165502622813736167891789769576096244108148102168707296477960137045442496299931289964431775042792109117228287063330182505450691781037119147696533343272061854105986995911377932792503755802327234176335042613114394448733642483106325534838406661120789288818407330569245777254400632313944067219299133461281656671878914688564974861632917358196545214311909404456124802099402242313180199822015989472109925732153105074410792955045989418055480501901682561377031910627877937584157656130921345049879923848369696686506944819425618111385376130228254236675776206924351966849919543248914148989052269250996073234299082809746718083651986666002676298325093005024859421029332771510015186663989000543188814299292244244893451725823441775776898161268593868472768427241314740399772790511203507327922593054639014779711046139254880197380359830795747427421244204698631821929273369614858069127091114494031484724419140097630939996587850686153509435272322665766923280412226824244493898773301009439605751958229085075076501016147038032362545931777499615969717622055665073777634424764563826495574315450161488962835393043776205584290780039906211311342266912253258973527410908861003150289788454641834098996572489857545268090478433391881963173478994441264472411644303393462762740642032889191898730353330709599891790542932908177619091085340400159892424571426504632683244196446110198295280726667485313030922585337449935676283674280001654384908631277258048563115968055775320012057545391732290282942709206465428733884355507725578744732580648732416305126728155865067207998375887026136927715616114715065461296866698696110137301925055257460462116758446601716497498021374260401880460834331042475772533578856638239081605145058577208769783270725566986357750369657916356216748962096765865578039542075056687234036728617365848486717343031178145658034343217899012876028683126340391409008432615756625967128895594218856819621554012472399255047422021465673460813895539695119687823632371198809917053114413851211139331977726971021512827745107524072680137626178565147515069953372831306156465677836279179771861807638504743870642653135777915156210552537306972351418220040588807154570216453889723334210207298875078675650930438213708382118967721900001061423264674537245316397965888761977466936885562973735402445738861091640296339107073585558061860691798674816122977408500474375850284938210816541053541829635529547925197315504976813806498698831070729913324763572122560963948174333100825234494051899337089985250073769896841948716685501871631559991952334400328097597271542138891559473673687048337581861529902812416679645129001549381074948489478361807187419150556158691662978365280248460129809038821100971996882519629573813499759157531570243085127132910905935058156223843752604563033624583124987584438266310815156775530395160980060373872745571386085487867450964987183221866010599056985560338653195258899512339792068400286173539950173357725141319587822194544730767574936152543969324450783253576255874895957502694873063898533344586356350411803725349729767862143844752733565342396100362833390578458078749570890622774445933087073527483911286624208819958683742834288224957360547261517659990772521871167811025892873002993702490420378423124717587110180420998024036908868550002609329409138580910996753599373148515036813326898819048620382335495968342738532274254727994155486708474091636247569070723372570370503746405328871024631060568710668746064714753179826637196638829740807821443325810868594157695428680058495578734886219094469665224969827488769567192830994497976026185177342166292050161447072815388035612805685944680366956705435674631243735775960370112032513568004839613043418366524011365950983259553721667016484153324583494143635618165773731159296083737533489284998276626613564994321272516793890126276440400791986395966049191077387085962566629313591444897434036846660704317518546555178924038265368977681589278731642500562435729526047445469665437491213758254148753870724522052091534556882566363317747441035296122958605699820741406555707930827386389061747260241980284139450127396533388538291097305058218821186892784418803850551637444720359255959194217215384897529984666642771425891163480260516112315638657158438665039774269630827081391471046709183214749585157920432913264548933015560282970732868152842200183269668843750853661475350318401091821664182997846324348160860839482341880927759565239700867367740133109066454763763145518117954593271351064682776458445649436031333608017784429171517182511703185909713108992897393906607094975287153517215101009310643999292533755656822882107918852708242403694737289188523635101394488557457767052502917254056033997011037114221961018673999800916615042471380970755601725104825838369199804855757224099904890992248718870541119786805180162385720741270546791611106803999417212170729076016129688495982663715183976278428697701188600682425058423404353839204157042793370960911901651002645547164933657341980514165260847713055603279256894374853107268205933311530524023357671116972520754746166188801878408744288803111782615470134001855365361762733079917358637568641684569788378055551624757613799159670670171692756758269444574252495425344052449865427781471665811532574337600427238630792318432998158211583803714283419136379830930369883341030575075697092855697939500003138009209201071410269465884437908000268939006022686409492901006433283935087932492088230713464931170013715728417482258871064018314177807071069850918067521003668971194436076909329200402336881830758614600064916191229304491242315300809103077656322874099601747822010454959590964950612268950236699717813438006973531615333936602283140334542296403363248981553445696750557634305208334125362410501679291894061841794077029676257685273132860948628495390402879580495685692972272481355479491323844185056773944901730470967168613204068570093165732251760377338631825310569081896972607936599888010520217855353411237599534869986032250443519653515635667392034115165212547660487683544064916232836236041275012820513129824561671706395930753641031539358761659299144525865827035892403731458261014496084570158264818756187188364866764507260880185077083829822940003859498066678921981918413233279206218943746999614301301496916671922333150404082899793349042665770087521763014724151852866567326382760162702871933471583003849638446088723030948471048635629504177759527990663647627130022809087555617608250691973945088928832830902671863304293776284028489005745176299301585966307547809909845132401828059115536316162189722705089676148736240389219119562826295686065421130677456920469186957621222043020598505195456986696251104550342884591322122530757835701221799518106120527081656708771266131640615708370938649886279355299777058965144594951933812799958676105808260204960622101150908667405051197793319200572740816723842638529347322600793020216771491939396823315186284474333127849249975535163165691570647754090482755933013786467922727166884449520908756412711662687247966280879778788818432888069022359302955393459814526976386902676459733212977271199741475817346310909399500839885637064630426457824533483363618978458724236532529891400960343474314599852470539225958548237051783473881323625798502197853345006782463388519624811451918731452358031371588612098804956472741469846766130632220283364674351427719841844859596208169987759327254148434359082998457312391031006032631993453041312778565624642547081071802736051762425467498299874525080602578461878020851525499797612835601898442719474053502191945721003839635928982765571523050327187714790691336711989698851532086654605237810772722646061426442553599017237189776834490730680041944515703563545967800182093777296430332266239611709212044353713390439464110592669533106824693530960127653818201265795780679777801525607914681173598803504886475713930633818691496985129386699933064577287873507988890157083021301101549832834531013681765017586776081223602747850450823840462244271538581942998129199968762540911220704785043665579441286359548873426000169487603123522506013775751440477382139625748995012006796751293598489933160966987087480696268117201764424990153123876883946824778339882240806278846306219851209279263575974644192192677302830409122717641802675051411627546288727091678848787079909552439978175082235574869611777265745268969721178999721373887763072164310213532481799520316729764511261368806107708644036581961851974188290750419147559469083457548993089478672658215511921492743825423309520654335825421153850214092712163603212911947054386766967388157249896124668779634291274387171464317086058388712586618385882693078350377532904754019325205442595431001832458732271453896440244499792252566460141867171852383028087177926023748386158519103942347730095401154589473404280361958206485363340224169231463148947106073762030718126736652133503358607340600288463953047229973239853898909185590168087844616998734589271127248176213307397106266065943449601034206560728775407678847002041163402425422983356858617483371693022254096467373014240965185122175912410274247771392935627671573890297253440959601128286516519065515612110928419571366383257503760813093207449147955394962816269459876969683999589455971116401839284886439953864292443310714947432589790609772839849297824877184105928712329748237398900890641530385122597380952435294532091948108505140676738588877708325070135517077588246342320615170490757608678957170831042925992068936313185226787292023707962585228189805132847589459375489511332615124261441695307620327668212579821588358354109173467219833443596329195642359560331172820405245160658487831024596393734533546999155046257965905195755999862979812453900404300996271863975120452075805322376872689326594311040034111248428486521224757118449771581365467348398688296717736757775061937706919508084446190263466261890520304813570957175420533446511802399657641106731784628503347463510628544145979359478583775971574280410265194648205957884777502711828558492966142689337973704655363587473218701371935353157748205079338378994472448322631647554194618015082954275173791130191893240922474761586779751186183691546983943369099086687084317234285069809047545543452581319603332192552047141920747411653962223389200508685022307323247930509099576215109613660716044789529573112843661012493751749167453606274782469754923735476692130950668115830633875083873651113473667642301874948489716158478344437336118296516192705964517976956371549805262139101654133234007576868780915224313136857567117998651230429175250811973767545703590526298625053641227155785993007668419984962189478347163012297763110133014613998351913569791976718320967044819842586213930114675795693433617602230636664893405925142868890412485099797381321350642286142415699376530194237596486165113790205605188001150009130584048806940442529272419450244425161814218301518026507367388962418811114980950777486519745370639424568059510629818993909479254627463368895724860326220086313209609297948047115823563273955264646487613428977096867908602328586997141573998600429249618322673614780956895736662424667694298696449254644452118504729681027783158238070529434922403201393860895059254169492997686692076935173355721845392347375557527264136954693240844307585258329811674051296264735196264014073668748128291166977075983812047295556818453719743689526453049587169943273691980148408380539429435251940589034020843837457662264643985960463183151951503414110069331818536456063193042207116348911449897060339755591996989828555301732523749531739442969867998387391936655559299117445547075616834245418100352311947091977488687601250746167599317856615213967929597450262531544095289857835580038540660260645623568087741751701157673131815122360302171186300997630829642346787110132818324852149556522723321854398503728646633006761207670753517697629843197204307058999856252824413004097211189216447599791437754675334956583382847313308511194237944797993729265620033946919011040004589137011029226608510639938022455661104783173350814439859525038457744609208498269386972284766749099350517772980443088842265865766394139505596463222484579120405039847011875113853188415479130468146211765719602124397309457423584845724462481228387753362694098533057411679817759995680582593616976538719708792874960960423827861230369810253119878617763352351772699861117375521629021430034722756370481572782955871937304517229848165428612220984263850920134204880515676071205777434537974375936882601601251763288709258360533193954785678631402781723098734226991890401651941569158972494391703134190097859087266682180612124765068189716291588845173084288345838227724778205586596876320148641963769645040178296952789942106639299077183912196110003662871920556169925596263655240983297276477886909408952834257313214478448002269790336813894736057911745957317594256997260712707914003543331725324486869951019935090515999959679739536932495063594443478461530812036611136712638020860706844997022519506320260982455752403569186508751371379885209999236526129564275414743922453157244389251286105097798116579413523846203496484589262267166910193293143253093487862688245214309150134788740044150578486366227841255976110005919669115244420723933445263771748096309882919822538997429867416314398589535619660462888494224446308678533965025995393923819209815313367194890307832656131497849048533312405869534877602628131511532581876821275645360766322311589674169731972493801651661172332199466098089317038761509578742203707578956837648659404440196553074084865791795270620933575992579329798056870243920792846293409020267437170318728804899987400082761694214493072444865405502675936904948291271588230941223054690162283804264070544577088423058697054245642848701950764336701683047840968794049789349775366209816291397655240309821886104208968684639776706908888863494925426390888624880030611274684009297751944332631267689066780286759740309131566804167049355529874786129872387648210561188063095025745853875689275070832641138609345518473500212771067900825745157967960484482432757117407289174502716472026317545327556859224350624868235784219513499971660365332641189602200243538878205330857211690483750356765792093108968502408474788327331686997922342154634847568065260451477064686527752380417765504397378573044991428674879597180945208273643467835139572862658345494306194308251854569748317513011057170375586014314311957856880245439379287925540365938703256827995456766423323305067490409225340610523000785315735015062374162853772143716650724724057464771727526379556979934727168729135650353596405451774208717862019105174298396487549370790204712951393791582020714625408595016279353016512243270561924051769527232856765097058459377048405893423945259471949754141715775320690868214321178264806663782959207099423218301576198390594158862543017261843190873517542045489839532600745321725576559853581707247472914942735539812469829692076931338441754745113917606718785779834988638560482061776979179802095821752415564339716297847983304851514977139254219864799529817580807819749025646263620152717457511353825873430991776477192562836777306306577209393208029491010013327378911816743091660513092239285542375943251402527110252656061642708472605714133782858378823240799243465789140555150953103904664521277592865046351601799744833879744329109384567512815712022557866134013521514125883511389239430209914423731917510607844128813413254636910592545980813409007900314989258444343764056366736859037756946544569995351584477266681624234575814964511227803725068521568737175161730430438677141321794709858554165050746420065672176975382319005074740029702277939031119683583495337517033446964089992487826737468936620661349671346672753543634345323466174382438108943248852703833958179430062822590829091944236412999701415414233697251139071461593404705101214065729903776592072890997627077743339031433959053536104800747471140835614793845927026747379814387685644851799703896516895136981893121697511344643919656501481583051273533456194297552923177721248574962032232389947970003769153855483420297219077318504883837461568799460576903902899393761999860264581828976454302987386359575341618642338128637086913897074738931818665815854061269109349195529768032949757652873234589895194753046472859997721812541595592356154361433717396759471580900634394704299516042022701468785990679680373636314874000350173792643299786074427259106767932846213307170682419582180738854250215147878107882984892789493850456922389149449444823195609354805488397158984918872337494248245329322757963131686625978574659781889266077651635252433000865625470062193523463512901456310147523013981276034170855362789091737215778944461831720667207311228675429082415829261049256644831528894301993272600738466792416759895406951807116635988102642871219669868592389305076671122650060769299163080316791954423485462725532438577913794750543931588074341064436845519022607449337967828230334972647518072960642388751311417932872517460362839406655266534756192184682357829032029074348595506733086584556975332471805656635019347045769269865281078841114197354254246315872940608033343264724147775593347470287401127162981219861454319161012174398474110770370483365719028807864966884095261458869814849089446361606371402451096438209900524289514877967982663187983407139776868171963508912066046807983026537078464231567879426454885887354459694900166801116863761204006743276379772830617512152619597044755456414150430246468524082981660925510513298595151249623544178250232408728837354898250572482820378797062004671335611318865206950243145024139339891931647565381107674707052001204815764812150126172614217719065861049650617338475567326896617390419856012646578683255023114810191157213319934392842660237469726424775973950990315774364960747914818853635927659929216161945881734340351207601071415297741705525056934844407373762509083472543858968690464998313230988201579667838201797620807849794505092322255786762301242823251742227927911113130319771373924204704603932869544103658380686743361373037385948160775034535537036233460156384652742228831087804309841733817948910731210931708046790715785952648766985851119160684157802438844421434757029305775679223016323454724494504016148889693813741972270451519291497280176173644504317608157934910268252729733721960560453390818278605858523608662480066022221553547890771694318484083559275546509823172052714041739821520808793768235316399116826875751607615204135781025446236340465437835523064208963506049379945356449744321037493362339221849055931785680701568585700422358574035770793912256501444414111865867157972102211349814800604950422986494139678390729052705559986327090844161773111075539997172606736797193714123142633528591745690913081191930672544252110891763684433475599109025656150534527325338734121607910996552757434093363214248068661252478442246579416949907150502587598531430972723374826854852302188463513964365786067668915717244146871747729914031638708063895661156910610567653753429863918434246464815426468959908266754219233346442262836997835264311113792789150722904246550883581471850181496717676946250293095098082121844988222012945694668296355330177809711659938080119812250205449179694358254276919068750746433714457371520362083765332976446275455806748122270821159633146684794041248111133115203217853697315461403307829766435037494472805933720791433019030886269891545317803201009518843887693928880335540331987063277980994127246288504498942460918775660959754303929359795342454273284759398461161342188616455537085116275935423278488356207461043995859201743885787626355103047006366696741938912666803618402037207013344698229045755320523022710393893360794947403514058018841359282188750623807412462422511417727028665620621214502370674944338835123650130599000361351997815836673975782661430661191000985249233184078294352642781546616575630881563895309666923504039104741158161645302409714433647166244178978973516431249275543077688206466299837624700444666506071726067612324226481122511484375676939617487082240884586688060335225478919907154476136312182494921430830040603619057840397878466218685995187425632306870027183752956583886265142504820928096645043446366450741099226573497934742133348062272853899488197386614511056827206201257926801137119120453806234869899926968835478643531694861155153518719262421553162957740076187288460277172678906658775637625827265593007882965240605449657928514730043454547454835624716465014785162833187880689058553267864992248640795519345621077176173752193222993934778337059515045842063721693685948433780559501044836965582735436670570793214709299700641967955571303637922527384726039153541303230841182396323048798644531895943988758098408730336013099365868066809224939442281186609729645831935489408026521094081425476052578458646769792869211125762148817764093922284510485283211885247208457458159180503132855791575213376700688183639128535187155930429951831568358343876921779137838566185796884569762432534994618565225281727947194529108238423999976197608692789421478718204117097766337455752214248873670154621396375647786900533967718592390091794713476239600336349621154458518713299735592424953605468121603860259194093626013020421288955548834064044503395873062195511235232052918621472244998046974867668676867822540405683262412150951509059282731938300760434291763812232946704690716614906880206285451206205939043076793411661003353297259908977761733445002433050335577855333423956820621386762186301443360841326032874311256728669211577851737040105739094834732713772037277526998937460684500178791205656320144864629403529010199459785076343586109150203479327773688585988328624686445925451898232025123811439216734849085382925352307565101929511052877804674904387950029636700782773060676482569911187122647653505107948298129740110312598509049138262646910962621814754030803026668609824509754736312283057252921054524026586059792562393610978496368816398055656600238239432342967183170819508404034563036298313858004229500451692019369337146656046773376815201183291617045797607889801759376706326848323227172395792525114005316658741519084711707992853975579462125652271897945980428559192375097697543840698884431944001579112984555166822844465289909599945978326259224868004372387719512764533605645539527165647375538477025317499433994276762152760652528964921630290784919884369795615513065180282084408507292377510631353623091652047054532593570239835529037464057468128177650475707308993635542376808857848157381213371722720795585540343489062721902015114562152716165257343850186216939036619484924631997114939869918682318758224471024135237494995609431973331751988362771994408424134262168478224955204470328407415335263491740719739496894268563957211261812927693899179890357208680575018604952708108931535159333174860137502218252156333491550881341317840475278823630748148754145275786426559825588651557105444582300083926217532584092351610498245334268782490936037195928816563982806984851371776580260144443846574711939570615535975151710690667098942689924569522517381947884682836168268429648774933033344901348165699854523161887076733278415083027853981865883803307308188004585141963490515397539752990629420871880631438408647151663265490401200238231388195465822288338439290575573169960680134391959020236591016791998028361172428783124240679205124347173368722747703012462372393293608736075156639459880913416224315055955550968232156226407495712569207611019948390196742865895162079979281714041471758817508941009438984970307029727932364540574882381903738291253647638651484306260055926342485653695308503308811450308967175249968797930279580803872641718790261896542475625096080110047627078068162257536258574528602396200531256016049575742499875407173099329074052289438009634058276939138818285233438442299851206958599932888408584163218443487461423003814363216603435293933687652900374895274523896669133489813056408281197620381202671996643137497920865295737923044880915509207987977007642612297626378654785191481854745207250899416044949166528132554957437485073426690634701697394885033996589829561049434288479183854447548545553714760694005215992933193059713331833915041012970066462966376364667693831541722235722797518042345709753126183509607674315274154888442295038679563311718618989993432923243721876108737200414457859723447576482206403349224342691138386056823757617945351465359146160987691229738806836308141747769278657558650113005498530516012542920964167178176385260035040145144016206635805130774908897947953747423576548758426595504981236083677499875907598053807111399265585488922788839618427258038801441826199733995714321409011502522090849327366367851359765874514982313686580441624831612666889345459908206685207816147705754825689733991825283881441239211116064996899136736631596611709615977025062540259469877805542233754057112018251497873883789870459757889744302687871983614351202914506161093834112529873946671419767644188473179515009443166413661217284510815682042788401885272987756084932834930003603854611438188242412813821367987950039244242892221431057393167921751925806030038479848452466822075993402664121046732453585465266878536572133577630582223504921981609946740566585507451930530216461176329321431079564077410586240049524964902958537577489576500387677886244796465262200758895944468585854100997914855449124552911930545715787250462000253968042666185887974638215257283510132459829596441765509933964034600907281997155506110694955838889675648303693036225139271962999484512851147429620569982043936918418443676504349560653300532714579652512226798328310200833579308234523755941343381865884789519210433164395206694920839725894496214647481501932462717115113282093465865935268507901279698458113310242327116811538726354561499216642918149643544060341814566623555350985561704670765562756148157274628604912354912258123500023340722532399952059527423558229418888618482873723062518596517189522204055774142230312019834430206781511919768014342318753126510353753008560409569902844445159815181393134150987695682540309507447578763093865227455022164699060263214060864163547573621414941114183183892203987091753422567320827372385518103556281001866753261845391579142177894442853628462366203240986599523816478433479904841312086613502513648413433738239482049778456297739835304372614025905976017211664700036522200183465122561563743318264270969106961425813427058432385914967085341866804010200634284874386886713881442775369899993566362533770645688619319564784361197505206469431582842667049549433598992851144232221233144524087975687562728360336935571606678670056279977874119448932216958470214147190831886325635746316040245749063479898083741122587546141503699561552095307492079316793943517182203764264467535723980431135952125179079471194083348873334407560717980993186121271963389001807431466927019935681351903036630034738028135853442772109621137238382857375025118983933799740889829219251828769085973163781709809559902038142155917791979661560792578012212918833719973835304632808408230983346775755432959553173794221101582640792067005731198607250421026425970549609336064159670230367291304209086615634873573284913531812372651545490353736206175420905430189833314115014054377016600969654150664399641694104151423099867701967385473773230375320842900469645192954027761553833196784793440953361852360685912319477179600257647071659743400661484159581955339420881935457569162971985577031251063504062805053315219288781220637065361967076464597453824746844536165226766164585584282026132969585269976366923220384086212488112181218657906711130154652140678483417877813565012072735009408754934405107812291388072023345926694920328816463788444243455621286733164199076928506480927842710157863719101954214252455139699364383041485324438334171685446942940609303392040646353014086643399129267030718127407145609178886403700972023880223505338788919378613265307745335232781174343479385708950837906420994143105494893956074252196150672526428891571893506160609973287601376204469811503558315691691314816308011605430216979372960442856548659535205694532895020396045597020862394609618088726809189339177927060926998283014310562304263321963271348877752038777545892819553994011599465398183583777981286029294362438525400535513682581031370226908441439987335875410368078243620665537570318496603372501798762098943768036758220646433337202568611631958533137001926569553016456923533941699087105801550427208431910091289644866192243486809945087531595318178360294636281382908843089650151146340888958427774267627901059850851004455439231779236612734585397104480575944932480207345895896923864087809693689016484492976852767799186662831867214502626512595208099531453501760034406383057499379594937280792685014093965463989117058345125674313636740266747620771113003128140514767185585337471528706626357280654350488346128618000194449271216315450335001063926245238535110502920973278415567262898801605347337122093208156853053892484952455870899893037751455974029185496926290998177485099621221266101731896500058594222270124216527640919212033896806264948120870776379282659638764846963003170597670051240184523499398189560352442425587029034856569609945692619621187097220642739523808735849411063770412883730330246957411949543082785611577299410684069608783491365372962866397799275564634251533647040759312735936375272066761633293309181243477632658556416716476338197039123939187683825201069010789912329585827160194793491468510988807984103635626726216518893477889410611740539607953163390847976427847622748927666626980310367161715723570635360041380578809536030202875919442119029683738591885301957132748415682672146914115119103313886017705398279017009129453926885969532944356782876095723772038209477832445092333443498386641885007487061504210102906582890337692067870495181310933193231156558581345557866895247950981807975282322934689533731765603942155769540995097964923981317012339862390818101368633262569511513685069569848747471784314753744071144207435008078760493822316952573907254561757295173530565141372304504360689609893362543992096174143606802541413253913793795738697509355064798102746104895745445336018379369219020756147419551666749117759355880239020136821399618133400963933103328331868491182096115576231481452050190126162666125222115241146557489628284921564182661974419257045206786654867211650315703179338165625951304691058155561881896819608046723379305796013541526838833195929453375020673226389851403375924338125500096617005165735751208558865025282644505364303545557070737237906797487750352399166561646767405978344894784312854039146167220679424881741993231280907371324993828609183710937601994061407985646964301058372080670257995337120545164721361294386856319763571154056599297034287382869468091995249117473644095777935087016393253758178933384430744330493468723593347375232393337797395330495961364022237001510517381991315739084463248944618301174525678156435480372622798201647693860719458237413784505056087719571021184930006116026432376528912898866560414389790588213375004287646168945558904619295308799020440020073923809432858939813564821120247028302177878440970912336851264919815765186783741647138079968433952920255453215621892245451212645687292605538344326675526559765306251592729928501272922112343750588936157181645648927525742678658806872600646882408588504543396135760085457433434156555922514875888344479077723511470674691381101822059493797488140954874812158309720230622194919321107207014616392273467328055539754520803564343282231529062370451290868767164392974233308635989550064327335145796750209155322379194777547024022637590536836502047576970512700296119787136578375510868972580692761080623668469223571341546892046304622252469187587247863356351000398231750797628360177207302394361768429400334558980638965048435096942858927745690019499738387970104434889898359061749272618182302086300205684464208579711392418607432423550027974027383708368405035877925278838098581197887724402102497528433418827835037050105713014550453796287786543812109303952231181135446142628934142841499583686885289727451224350029879620344690136126979656928626476184321319669190512712519001094625891826575682822851684697035881026459120590149187511054578866394399761379721853857574057565825650640995562288264135395120759258124352600971456819201980068747507847700608103674142864087846430783235658300791149525224415206258410754434320912743280400736866241865652137484509262102021976909041854972066687148159092178345605273765679611297518256603258165317622960621102471046825959967371818068715094875189300741676952281762671790507154578895170223625667847029183632842887855005878119241502425638762034644218979714665422320526263148017272965299500829228230251370517664282896667495131426360168760094173377115541147873362973067303088260384828184249518395779742077971589878301599575790845590903019539776720516105425833006389781832597771659486309429727886850069440992642506118606425251872400266864442802031888759691060308246904687314639235373712114090298403592485871715265572320209368818373111565618318812549003827959883459743208636716336238091281882953271646084553784245593723501263263594311598802666714477130579965114492256340639403250526944275383906802944156921449640564789895462515154585732094643717033069075486901504216381787627088556942062346679180875052079477224510711525780107582533183998209127365269878409571289396395832179139117442907083039455044843761347205278315882329139911450205926556101854759457446598181583038908945529121140322581177645031847953470668267050603592228280945013391568053846171680728173468654172948998859742644806051535879303316186853468586715852243230168347412721585491099319881162450166967007229382412487455196383939545542973786371282984667266768488023798877373575779519031208938538192891293703351046904915996264862068163089166124324760854149056273540021214473811619933696313024803041868600435107072924057445270633475151775061076376709953780749262279056308105084994272061183509229709342701378546414126364359939998772003629204260376121420902365599885115462385166386063265601017685848339040280349962985713803396699371405651287756227248227583042426623109726072209162148103157691969988421669023734859341643379410552445878247807474497458253401322796618924627522219829525404668846720182489264631949153914512007854238171029456573185551386353847874859687754251257711956264180345730706906379982315515540828409201532365872934561898789520321463133391268327759121024056140538734045236028912789809504821801037289682804034037059610749637355268971150654776305706640398474015019715805965200359721204383059437177614226642087029358874312310285860699476469318016889265059673891584028457145817080261781170957483413861073422958747425400020015031254095109170646049445101695142637756727436815100831702350329816555673527332976218657097797593891762925325096020987336364585287125081525929991825778526996349557150670841906139972663218147148375095829869334584437518436020009715163558071257071341250239100525885695924783541671633771898583078597388035640150175950702060783389269415013006463054630810803119942959656001668947451024650540213659527914984928150026505390429414395777049597160705030752921880183384931409959582421931551709601054969758824347233780722014186816332921556201118697503516315200973493804917992950932567764565147611825167192325896757746492860173834722534672666952482196349106288593411913959514047089567560859936881671450850551111755482712895505797777531055934653645185547464338804885847403264158609557307904187337183579054276171945200269940656563794850453764893345972787303358824348976936264049343685367331234908966028751560404508165041552543562078429680750782620648158595158782666318049851101842745010546727051856922876122826648357847323679144338252020301056038252739179142944595999489229237911387723030724836979656984378060865386371545376390983019100811613565526472431971237954132768783366422503577882368453968625401273982017316482951485536640700252089657300725089502685273947357177753394357627029954192656215254032347865283284782058053173514038289268397969555955624438631244092918914743780541729096596396986855079189346745455304754055086237711765892806372379467395889283763100289085615596673672468145090934750510119608526188547543923892867791499311226314247802970737800200403653315085840623026494230657094161526435850391059866548908534602397625647758434601317587610727761744542529627697911839419214177628247236004187180873395674855205699146442950063562150408202659324745423491915950465452315667462367859939426706355307527711670051149136368696755286488154743607860984611075352339858584133206318455752199376418193832853048904235803615354121030663787648978329859753027764854950756863039145631777291209134849482821278548797033359889483355344944015360192777638506292235996183690260523730145925473405522569144581169480717000501884396781169338665816949358974320679208000137828692632651733414592482437131027731538437825095416144419414856636115811450950564846482603805640188185697904521888204882596390792009868151971383271118779969538824628312482598698212726994784076472496345185912670298426760211525767730989346666704185754571666761335578841211395272173950752635585049300449077792597721892971829766124584119159808591454091204645658522569415419248113036107875602245033654476863894887832483047483564758526167015599471470691027110354999648042937853779713147788273376041405375272189028572184206831101124204171470248543029379127604360954626561292040012619578117044073744203660998386154326648961295471238873585468945411599927749623223310280136839447329929012798307256981482837314557774045641194042107503440628995008296186490772593054535024056136336453745473644676661568776678967653936426868063093349056584888449275450967285005222584036946394830791280048441162941679198166897100115213118536655904327077610167447799544795649799322389220509869975358155061321683547356096628541171829709156028891209343278107230852746479453791344146349486267812200215419373079002376808072590474234240377730248590939442638423698378519461334549651230248876897470925055896545573392292977135570768787761072794504545976941309481726994958195162618518733409397256111908638931632605040438444584370545444316594583981650876200188748222594963592850547755262508735144588297248513717924586076360873993058102636266500995825066757244968220990295422723563211250285283477691951061648315868429294734436094633489842771373479196589170557877180310932181147326588487173848559902691098137411005405590853375252700212792516052905317240047477389476550842024899980796675359551257911668953426613644361834584518937375830906026844447199525227331878607515853462511703506281339695318383930374984638021531985891170713955223950725636768913612406273079015243889804790022452452767225821797355316753309958845257493658440088243460103633736059977115630571130287266580527420935262210301817691300068296314525874588249377135660862841864737522825743449205774873737492066925893480012471023658921942441000678149142316403104899005138879139922669262967773311947887775164480169113477140486280228409599819725575109888434751113469269720239963456506563928572103224358478424783598022119542223971188075010280477329172659461833937996235362968330500573327545940690255082866019554665758205263019093998661897866847425656122092686582395678013274425529005572778471668024350462500073680840121313207903510800001426522999171149259562407284161453774440372823218795914084792453221983360775596626008450799635289018368401596641882529949352861343334094659772243974985881986207702417501252712235063481040057885445868684419356371239837556719970889183321389416438221722648158493435504011403247244605289514681700573626943498623087612604639837063299505212910269466377373917555545967805540853622198453888088919455408012207894405437332919801917924786098789442033425931792086038826357072120590814960328613609462648774151562349795366879128106351808248033993486336632894280843771778992979763855208144928740802249202853220254164639129091528834993162251454152255781071066689780357182617049739707801360622748050024284600643823550584982547583517142702185474174466003564064802353691714842593030229950204985653911342319770334322283910497179372850917886414066735418082820374498104604815145135138900588675542633301012041132184560184659398921201356366542295003588450477813852129538469294260181295387241371199436927053384880160931790917158392910837095797537100433470907217736483527075960141537364848021601431359490770587895650890643362708261139413721974402532818242465150250119221820705468554454677854166543905276863372790420244003104443079442295816717917625400449061157376377528644445922877369045448987367783060428375753861293363675359080403102901562365485142010128142332352946879843491090533356671482643843357555247721494826394721024401778209252175348075989211047178497380326675178222310833646003734522082883113425063529645503874623851703818159829944306123939843912557575575819873960387536482030637995149952080803194998472729079607572688152068816239500491937148958749675602251749299043595285327848270481843365268174002835746629634019349772353408874633797311478987657067086428320966779259664796206270408838792785991133443297512590733542138020194905175663331061965809171453556837335858005468920182606722666838065676856749005612785641763249360431976108004673796702530713643993053431102076808801091937020014483321474473473040580007849945397705506931243269930194540096936039832101693339439537067568714994208961948901886918396051862143324983730106922326349326393730980894538984358612403283313973549248903460841048727857353061587131515721946900098695453637325564336063719158223118757405380771222985081915631064311800494174722202556102680887633128669389521089317676181900097363783771841330594150182825483645473764622780343077444298603336021396071040185680620422814379088268158663223959377985264758624729256465184217627990128416447677424162360341994436214882171375067402912468501183254615238743567235040890618386965350587293175844088771760272745881927855309488027628039862783451786483775247958367243959508109181224172719615994924398245176948601273299770180222215932537241953823148343174818703196862988535849413884762225009913692480880345521656657540638684113926463888420925498399782312176558217097230534183948403905787687526100665465400351328180480618135663548511710476581053699068315514352649182890783480893979871725810955570482066717854098316123727669794205269952701051068887646840525741759948868695474928992829823032777962768343840990912727711172661146614270119327099411380431418732711766596379572519053001018285052069958083969767531428699295076965115690046319018379387012757967629550296140369293413645977781626898161929199088937275921382358246165145312390851011112529789700758246498663872007947699061847460747190320709824776789074190930516498940380340806164201945356859769907840063790335228402521170445873257236813942370543127962729124585800155272850458668085857069624513036675671138461501971347613437096923184240017498049542149427774014579613418610274668098840281069540870022686954801015664640878337766394699006232230499264433980341628256024489457148325013125837966189138805237320403303594956587060992005858675567762619416937140628994064785126875450835413519455178143044622493727268011056017234291261915317646500934350247718193022116159417186761460149569551390758388515778877834925590612742600151556774738773277291616427094333334215228189953079844075564271356242684594343144431544679798212897129047778061953060703207791987166802147487260472475957633532092418300012926565734141701015338667029692013019678848241374626147296879683172177460388671571881299070214277649907502093819591759982301508136175493975404671964315227805821131521651118972917615821494004107472498663755046273616631388926447513315638672393383935119367519022604699041597425948376051396958646185451075365347689481250563145537300982496854246689290994406632569704829629082344961012812595132210556784388994508176778007416550342537831483426251092983648645359464511657734797936030054012308837654464542397244533767515795864956566112927634389576042273835703310012525178729398466919956951675298437324331851088494446314688447018607973210566747279008930721905954798243847052715180956351509858273465737231388245409447700220984110730365717119116149370479527141320321490188745217870658093439246875597123098565174574669100821506909105820895516139356464123523105417947916439693882278553687237138942504330121190058022744870444294492455484566100381716962848120917859438495237545919225399233502202867826132512181212449634572985348944221561614747696903665037373209418742794960600615397325659527107326719108884595766992757455856345291398870210088695220146160893467950880123333096498973891515294416455619805845916725369944741428525913081964274442572585418305752918471951974712353497265239272704885411196793204956307521448567839722974958569070687794626345406772315711043713365264221703762759334742937765084376335480806354102810640599252044406489358286151720345260112408826397612815630803916769495647247448666332876572227875691604182622969623984384217595339598254658023038900023639682058131565506292377090615166582723545355522232093047359446393937087453082055572620772638620065577595727837937494072736830816647539703957961367367414922211880267103950083894340982627224237404261350890741954363586356276265910792664953401770822966882796705644414374902262374106037547332005484085977410149222285484279228202017414462839688836275915244638777953248957324547987684133804620597317320783503989613385260766175103548965299989804301175531268772819537606798482431935950039605425943613647330890586830384162792558706813699782062495841005241101384024450827108790054802437283841969094310627543131939427418254655071018607443043362091270996380269590113841991143669885417456803808677322666470817529091468466404734666702931764751382567293019938197451336184233021653612796700580693217680029741157316044911311960274465152568827242721637663741248437085095693639644409493598387005138071433581981129058153509773865921828044956089926442399232967652954415583631260724412409479683362354811180324234312694742532571902714316938867087853110787130467505390464456660148763673041523234788302976658132361448659126739963366815470516479803088705361362933903564681561810183735501283241880162580444002341461124900115514934739372485841102466170279472085330862671646140664573535092044066341402415236554090634202229438226665887334507772158239007620213688024852771040517311221786100622210011656232287339352813627882650752264294064430125700357319864535654498980806639514195003044926230241741937027572168394645715837291013889179920062695081972658695856021147337174579244144145831165435353735571845239393596518517259349464490164851138387309941260759410680120961054420278115870290367081907146894218595245428098144536837122315074218839853711096235028864473925698055043058959223842522736778278733048868763418649107884087239308310983642008946392871448880003211291256364857152630262380837431581117930623003054691722971564796516959732802706346598307059547385365137643214572433548440941544914635338417929865696456560922146893926546395700984799844424220395137046506356111930687204727359820907589179011840138120492677029530374203118571507825428820958122579983609314527347348894317265204499770293375757235818944639174505355866993181704821251074086409723971455499149304629655010372107922124455711695934585350218242809867523020093579506013685350789324843196665071994959137727244183105658358379888315159649886689303855362857260775034546947540258651472122399434616700586444778062695980487385158629019804484617978090907844690666961040642353145272493620527213598942926001254996128637928372787447742949345283448176891061619909942059870013341146829934847413530006396219357600432192328400566083976170662948970820288558414798751979339075379104385037367451280824040590560852378654829552500961364649897595616594329398252105086354288957469244246760169804917837320284482316045314488728249244522304440639740440841183152519536352836800328395431091700006227349646160477958279842461706509566404986094902665048267953445397003310658711491077871538188773915251052959782922462492549836132752608332761928275279286571769370987990183916572082591227468209439713678671574849515390748612372917797303087982503550351572327201653987811886604673594760689199766486098979421499642423959177891326659305927545112208092913927519024644340150144291100269608845974157235482426361767480554687715690855811258231891834281430536730311886352180928598215265749518390680860353347119707254878859544304586962203349891941155192211890168869161993239396846466990020313039414543500574605528521156117176042446718367064012563084211183468733342261608289612379844244666784938068204299566968445283165110154750806110411043322949293668701204267864471896578436809933777223246968121595306605895644751442911625542800395405165612617393276438007823067121659251183942364211802424815706461463865214082782951476095200495974309734764403330074634767353009687450030926334931030771219185704568440598318030608022664805721904271699973147668995884718577360097778142646915231013013770434709777352135153712902902502250398809184748218593777786429568893954964669637459976450078207980176384468822461203229102347069543789597481587176469638012906732913062804448019614703332282154166728780199023266927785943570715587034203413181204925027219256887142729353835994378930035508153767803418026729266651961502971642828873697240139236117521732049635881915979673735492879774186096070514053676198454963183279009884415944683955905991584740695552722419557675981945496728259570127291797763399941421477574948775479672143160138802568814731684427308821409970171913974790073642678512174454792464281505294275811510440215714715688210376854346334945632585344187613259990911112602954894256534638759846386311153979035983502229704846195280096858931720650562702764073635875941367582403682847193283154426306042262299271989029358075143056887374991660411947019821687505268187594967749721784054394956346469614959480267507709094665273675940356556098630241539027700752360038761166648623038207158026946236444940514595362411899159070034782839409280697960648572302529016772957516574713848639641523981175347078139199208860363772032433482310528636427613058315856838407209910651999510651792817508618754511702771897464488545568816501093245247617738228708725176112103098104848643410735885112308506472990460025583397078063573294210704964989781202978863650597635804383753295608943631841017441174862506066249650526387505471568820584349830634521965546675962458056955139281564897918852165644284099453941664579536781623757997902489946961554619753924351238024093027210835984747925835388670639216078024250891269441009943001051541897749271798470434381032601900578176601448340743244858847741129164173431124039462434110903847398350438121387820951199275702175778629288292332887821367686806069028102484816437010288691647750274302348997145914007428894963231445132133925964368156225730168657758787963606402238241125491382852903233480969136962949582144331049804108544663449282665557245071778736021913575248613521878669593957036434660540582555784371400461504602673852338794481411348742658529482348313117136373967626432132484520627395019057809084774546837344054970626610330842700362598500978028665022695359374794344159965184515459381608769368202760824300026723261538084989390465165965686290812590334135120861438565899983573535366256433626839635899740551746255713082460795166809074330542198151809310777576463256641848930757249712798565002701957996086713515363939119754850426147212288768657673825856087632513386237418235857913922325070750282571269693623513200963254285592849752137123742236236149150852082804660514472692088840551991693381378511300164076732117267373122638890065693911551273522502746901807307878284159470187540465967354382791752081246011459671937784759770923005598222808630970694335124755807774155769713026139779361570777700540571539026487994737150475108568123869107144708615314363411065575472583724952449745820047191676472796234386039967233452187991485184235129811664650844583011811223382242373597268777389259019236861737254730306738839402358265537270769030373164456117997385579025249421785157731320126317942714136232733415112010162304710496164920604609015411623408011407751456025340664144720943122811487099784092075223617779224828834229015393744193795918332391564677422358798504934733708896595365182041239522955987094619996097050107253783581918242093806853614991793563937617654253424317459759567597579928208319286210179673478067798707472957340786867705880565957016482821997812355362008970654137398874781316119043159056559378161612358418646187824728809852941494015844081615210454298695005214810278928686868468688879795388306303349665829930360413853319388436189444312116032140146317920829518061561174597632316488818353273557571042268565325167965242866691406053127421542130354184511535952601053281726443256679704027040037634239734057154788081652104200793680165135857584518908223450073740402723408563719734806268577226630937462316774015127329760440381473320010910268673536224760931345296830165844683204441232532843311577470243451851027453656452145985039970727594345201832300227250563788016991451369747388722153043854357497231678170562840307548949522561011132541120947670791914922986072124370718234433128900700339890221154792430553195777258406177632900405774350148081318352423266460530059262881058777974069220341808542165207205283460324115765484440869650757802529437853205913538065496173655355318920793115846343975560846313201178535202754202548872276150394020068179821020517139246626321702419278055567195401847688738977856107747814507148809190564863420247232435502749361339045063003072079643607325425363629371044613971848167329325912812700557819039968253483247059748524978338043227702540058932624681230764433000791506026975243757301143773996699300581139125897978006142507461742019937765682814282504932590681793055871099330331683707718215128927884635043374134225960747322589589822092028710459371057318553365815135866094775519160322747734372206652476982032651760427350234398916915871608986057679500434709695939715899569618122783660291726983686411182719050401975826404720299490495547531588883984852248788686298257368595379102298534954402560211157189887862207405655358989707762535469420802679181150994620106307742803623184248824363864341647363135725251096851568318807364344872346855036777278695377193809730737237372837747008618393432723361080265305878706445126031343557426946293942914815087930403518337467588191999974911051081164058050853148625731012521468870422827314287980775468069087943450845777080959070865658927817942233505556627706989413462128845851044521549580405019124134300902660312853158783314380773327909055089897804240880957969832443763348200789666970271177830156739017744744688124492076834452267708452767730616688069281149514907299421631420206143696521476728316220688694181983680604558880554209420259975170532253072927573128157632056527435997528081336990276980342767618593349857278681395370952238628138828338170504951752435189263577128168677169568460813494677068169729514658307138573096413834505914647086382076588593763715307956500694051820949614124558907170702546264063138841290396878717139115605435816579034910761654661912633366872845872776837803827358712216911636716183165137943433783803771970328999051098033494562365509479810216807629324872623794327540645482641267677704193484555433586117774883059015785936028975353148123718355771679285953784931401312060457406977152978400528823065592236847917069939596238884990993219506237627126838655718476595206896601569794185538740432725386051424350626539204361046824895033192643485387576887993445339330508172245037235789892122136472284715018791110095792238094538154610761145491314586205446891488736480139926409204201190697942048713322597440803782851317371949555848223990236939908459435977499939825413974228644053227887800309578923307218316875406424679985760918154324863730314912861450867078005380406092232787725066765690402516715137485420275612183633862218129530894083748502846957396941845132705761997562375971030451745767455618447831699873705182007093488874600845745530037522016456961449929575413271421244101771777893982614956677329648801407946606017600964291994995712447398486084845837056024645576363793842168895764051030485885671443166015627784401734466083788798975338487594913270634514979510616704890414096787712143314429800761135886283854241334563028453251585095273007435215398448083529037381013086186534266492328996610671464702267600957854416285641401613815734074613310186542030856687732336681250711790580759127171428269384996118916978956647783802567973274924367084611384115847582045218498398658588625420130396513015965838520377607311871116682653885583236744295896365834296438894203930428743247032335507635578327847190629129906033750906137464390334437252889501934699165086201331852113711115020318300104885256451507061752460662655623379718172436426910439447207087784218050550551108197086149246047359944682353374362238909064240011540792467997267133422192091304976271692737863271473364794650017226688468151831968850572965250559946876457629900604955103717051643168044337654203040167333280248120222817042799580871320934819861174340842632090881928707103765215479230982796964681150138385097754650364874526535004045534075168856335050913056530018570462298579513695356303298471681559448634208309672461144156051531701766249628711762862291394705717542264824706131484605068070013194302032480549615551763388713138225804357887600684346321830401785233494457722675956545078500288563759665832378813447453447502010772180779376518451283326046382282120396544247429708086443301958340022032352112543353860778454337047287364846263071812098142484390813658585900409831860328754930009682667896808754044424274310040659124306174563455088168340982661620981028359328614874940568045801510564527973184461430704252276650188007638869831278513613514849500149710119934940236725102146994135819106577900208730887899748143389671593372848993581585761251315616577806172277985824784613598502250415907478581317808788148288832042551326557911494133436639396669639490852789880053389115416911216035457442093217532452926453610542501098830111165432105865313174090074261702094252715585077545665722518153930756573386809405324760161041587528749533826452974842945122863874556890317173435585359173578841774194020653672270296485691278180350107963673993902351850283758499570133059846736997307499231846176555707173677187581853014212804542532486749564471873153156342745211716186277314004962929553487074626055764100585596871556935632900287373390010416703953015471979613450100885245003292486358923843030653027359784654703121820520416184521552219618993480383242939050716098344877352662452306915243963909142084055397518771377199198376968191047854017493364833784330774751507138023751711273716748418441352548596834273614606101014197428796485533085837775671589703969645262218963038864376412227878423467176400169306986470219389598190275238390764717690367559166795852809928165621377518732422888419085959038248964997701743454958390264794010299603186057326571291979264490347340865056445498641020358239391529976402402420543314113124765976611984691927276453838092604137995060534601597720852398106227845047263932844222961346654175518743715655322483113546340065635610395702813913846648663853063333213622768981216787051907176715071858054098746919605197155354032606198461967612120536705502486743497227239777766167818750692842479655922820939403825369940584652367011699265017040352745015248546149841394177803867193087178788691986543364315296896756643347725741196306002081113292243621421405733802142364309950606420773953269209446198569318489532710841358384651808516153117234219241766779032914589568153230370969761730889946369656422732020965347083896730813790201977322513764472726241955749577871866639539674588163842692243797971763637493472283964229696545967009237136009391251003492952971618194054737787268346181744574329604684985309860189170834139644461240324737596049943755170003708260203531556715968102029194242593372962305593783704098339507756922330233260142225208971062377243447362479821596366151260109806481782900967206082827941519339617715490462134960320215380658718944778061768475169728199939258162638599589345019743211343505861835808769518232203733060047987185353686310363928576812313242147632810302198407949962918653663187683218616633748077792697775734732428056570506316268472695663210644084369390600384412954066498768657315455637225180072950974935397599864761671746816619360235056661614189012927857676539479329577666892038479562098199306301218022429726492301994291345009958142108354490271343054761188410016490222972023363902337666070312677374586333813238638803448123672368483257187212722065973942233097028017035532454211828370471960326574950622507570191692444371879990508026184000616242043672251344905780922816392590427580838304344796254470933482044870968600538934464030133148265384957237380495888969924447690649648510499579223692987791843580401673766653135307642135228658475842715335940231614193228579597353557123166056980355673447448881915099213449268450580582316861580944579275182005584171094886438699055048332617768307253828925940058175797969376277951707789941702529612159451552030889685654974023165981589078573443187029175103927067184460899206659682307320772739728264597166609847077384324897579159477010893215514004490942355238703489964215941532429216242080436096407786476908457538035661594195516514011957100946481404835456362226260536808061489846495572083972994953785419682292263422119618760357384899437634145455398452125572026164357952283670478789726879075389881933936021162252100995799591759033702148807979261060304832073609373025492967234399819883022215650837878300757601237157669993590485020059813418432443278600507584631977732134161930223938864950933861636383348152779790761436285610616487476233011887224362259956094078943516416869821324781390337477217402822229879147671703642142738502728835095996702175066816643132375437695005380911364392410663145271915928215244889551167921148947967946213786134331524894552448921683591916979019534569139551151241849538123855327870771400369179559897125899924642877949554763628359174512988127540665492503324138805832575968476640891624262271663109005611493034579394773606311298256942852340408899913799050254245958185956138661515482666040749193012558118632040599186532459087160401732660884797173732007847151020704576747109787179114073404764224951789957737283338121260001355768649272296155028474155704115219978565901085001880518238554454530156834199776584636628807329678591665442705144123124132377297673222706234182375050224179010037449984410283924643343548540435908337061636842472828376315589625768618269278698292699218657474072153609419107896996003090276769101478391851880874881472509418439671899534287792111283083493597560858834473284880338042540505714190737434168659645273866775776741481473786078555779509338499961495252995806590678182731869960683703700770757892702675504050924639252353687178151506807015915325177168050449396339565311043278457607261015091216046149337389955724304413003996417002622081085787760595364493865071733154334236063323624071388238859579877103652683080914981344219152642586143637021257137906765430628467411957431896076635584303931076908846208614361496090527937492332131742482798202739351920854366634587252948134210288636818561233586186171948321678697414724998007590001863396276393764395979484070336537933199148493856576512071872804387301175972709629203250460782594494780922507082812751453571348343191272056045646225209417703746851562354751864620740572651167409074600550824947980246952745444499609900319820037535884050689387446577337381901965540065519417558495116795479990113416609728592869582412732747930792255155986673408168995751106760492487473856722421558111157223559538390566131968847141833189801757337401280176811383780321126405722922753874665970096564220943529900854482268298834573670818367470510587028079546292009063776454682642866903170457192473224304309241030290639815405646266117275512074932399088839727378439469781273283834246694808266611868179831474334818097443839528954316975933804535419849502566539524617257948368222942590924464878754248652464328140856288863966985874685917776440919572629635502448792432635940501579696811298452440687772403845417859284181558535043862431564394077006303779800682413383955791753790956641022023664305641640484903740039583413101633856817203836885362228021309172125105986877497167073067721771492971993653702469165386017054288890261059129242607541240545261485534218092077994503819610080931508705087485876526608855505266468024538183510363985146328058179659573866810343181932629019615752391541023047016002217995804100410731546640658217901676163099374824386980787186186726544978743652513330373377204670200542154157034566435249606235109199131552832792521867933827889132991696068799691364231920799980900570302168177550718629661623685524741606341808508583815259713680376319476421744600941205931663175901143973367315238931589193183466894586148200758055798254395033286112705538452802675134958241357956867975029869304411422779265650076757897032094704891335260994206450367453944905004920975757313167165643181063059374964907373111754177957938912415595120728145199205662183696628788856748375895895441878323627167126318676517664384627859943226164430465816603004822621514057789456101315565817443388154058429836616811359251231552325596864634269326470312415906677009003484702742113540174824095681950246947861846336230087442595958511328111660153741789917823427172278955091772748064629081287317389020555574911490578712266471313466393198444336360740532064662888392694389344153048929452219105944677101914430584563991376372858498261139301468905565256043345750586852219986833370131529049749588062844617948962619386404379219447125854643275352139456804242565101097612867203586637933702188497152656073978268697107050766029790736780165857932830026698647153627778969875423373116272907885099493364656245155746482855054667480011963136660486181301683327926410675711551294454127866411590271356657723864032372772086532765267710792065620955431617570319248569123405053438349266572452779834471768150306301315844983906614811523405628142604503218400786687236960908859743430193356248428837401802696663594198848004578343792714909870211844129859027556206522475233526149786164065813846588361538484967886423261626803579639423257564416643467956392027925399601234233776659422136708065910657921313582980006247875325310006900198886349762001806459490467998134683175572028382833481651320882012761755189905026820168445743059207507799342948138542155434841976245314417248596395770406284914530464130978221211985421495935058607555406411879773535023352909110788578116312362398828221798245907877232002279294489971952909674269820410860528205867940337247186883902433961299244536864561470657380563206123210435353687493288959182349744983403388767832633657361638896782088716744412224333785200907833896842723842754536020605507701708985671828302221562232854861857600562117043289883190956012532288334397467207049687002598773071124484574475855092543465029305029970776513828541226056575469962981136504740125432490646102634979286651987478875107278271862605250649442160598722075673378038069452524357674773403186806062384149912225291650013691074549924160245123007129968707494173439136557790537809653238703025899635873848954420292778660737523219431182554507557664496119492945128300240054903769222255356718172777364297737041572361922911002205646610898480491044122562978451285642102914226754236746345887714992452754341935728977162512409793229242488306477993316941033223429890681173436029186307414035648566055358806890460480637786815408813611583471618168342156649927764165385624387576126132787257878821120684420438028607638601961534391326649291969494682470670830679564731041009229357867377726745861403342171280435005972760851598081470419585177855765773262148020144592845499629072088557076350873820397970071071214421001464109866007962167633729062593199820560150609437892283203484844611734236008655539296798835775397741562070884747873905145501526471101985658343669012102377234443999497528250682480231940925880295763054585686181369666995903896238441039305950632082967495833033005908816957618660078568636343004907058891051958894790074516160768152649657004467876867211195386528499247322953702828099529704719698963464729756069464416190959608156197383446824706376605251820249559223231474292152048858023100115772396757279567828778967952908585308511885276867098097343367874505786040105625162871936538265781296331617080809101962554671062702069570830395156661966932002396569339719471438296885679488329195148787219158175190792694979210454475842319568017396178235883743036666876505047340541276917307350905764605459625451530501610857413699970095262915489635213702364437618025270590955264306510651123007443550003032058932465030216691654079106372362659164107795804537332445621844777625714932079701437373841324908434185737314036162976020132417600451321053502706571359139149165853177238891864397593406285100910699558176588197433736414846180036984557382351622716900780079402828093913351730793404251037167353396595923326919605452469902330876496984008202244854316889819546207958140469594504544364383072319209264266312799224466963921359587824113680733808372113380203213180427978390471176945407412344156743500345040083490313869449006528049355390292875825818063844892671482196697625962179875646780149516290243528054456246281735801558847190479831277291041274634148144217312605541049755596658360073622403564968971620122254603395481993214992709621311870816928499194041823299275856583768621828790905045476424415410471521687704088635590557204202912587420575753351690404308542067620492080399986047517016516949316174550712313575342444660977283019936414781469636085243468874216424999811977553051579959264090188517102414960359203339897140949252986961071216370986133505542073212141187998176098468148655620034661087644911450990982171683343391323974209460109659836545858227029222508523069312230438422836285807817120305647924330614997417694172960157369437151879037586565927445601447934754056410002652250520650686720697674293628586623559177476473669753924147983241169265866896559667948045719368987114034048476838800001220083059595053437983621572394257037513873181603047465150947669264518396705534899658369316709014104214786914144671759081320542781279054766136931005454335163323107944208439613833059010677612384526240971742462592376983650496644132816708713240683816467898633816989652053792646455670649946639819923427682716781058033525181982858761107290141976600960547182990645083039012860620811312353184944387000875507963303354327298093493258189745924450376484012568016347942483783829775117072247720371309815139470779267789464845532300097559207983634673852248842564650196574796306050458566207521331479753510846446383960302039354906894771611706220188585276431389279738770712296219648403268124397874398849395184707153796515102253625970137259847744406817294249779130081893741379372140013173343506650072842494766338254915765294587608675773692052768354050264197631792518509378920225739602389506116567329275831922603326541954838640921529318571005619010799825351512637875839958857381000316994429639482513887898919979918462400696643651361423969631640403285188174427368529325744999015266985249168671130266341248691888214405205723133908152910328926834837509950982005933751124710945940281330595114023649734070371368072695684624264575431834318076399238645260760499341418864600448947764481542917176158552919385644793868096345627039764044831236980715269141776253975507878546169910785723521663124801136337830843611048405570544538744581217383182844604579800355937270913522660660260061465556249331546181664291757354366860427834571229680838300636127353633480999641436390547200077420336499897990079985792315819982017069426525692532107988841810207762289041635221924626703286188557735504521731975124043950315132283039387469221604679031164555856627971487154036634627841014419983268915143728482973171274109222454832738253581992000817323463689531061087424097739460255369566998787378565245079335926835583022890292308106234627175890833595791283791130916841988550512420797640799797820956606908535552862506680595854288327518096796793299298308436005035653486821609239976218174617647868394629306125757562517361773830617017082860368223333628116077803810140572832930287835998094036952297921803822302015841070272769757136182897555781074035817292859799659081180305282526823313433306658762158419144002911936018284296730503006663548866401459951720397053729366541193966767329621422527899293840952286177569769702889107556115632184843161282468180575662420044596213859013124006438639943902571273519878975122060589069220441940699690940574521644064581380146381959589148843339015054366302254449020777336464488191725093377866452762929752599980332041361837167507028510185286489499048135164331440831034137447998150038493094749380141720068783076680604106416946948435848588015263750595530718086552959808941045705517007263498592271494502785904188322865498983364473944478735613969154240033449711608996505258595054548022271493212158271213074346234324869394041997431147178926348812124885215425917517001426607697510684582724474530960000918834590950809578564838938871795137449959093930560841274784948433027431337277599752540346280739101613437167461752134813635860828388099153062486966515709407626924775879774559801369158904454987282160773451718837330610546182190470122155038371640629611139567421977054320871113632130353544333159704028926634153254853514386038109329409413312849696309262906815327677639650380696908941206097873650242145940891512469166692359772114338350398533037476521843444024570261615520707274148507261060126973044889117632337873013830645930446218344669768267465454544390985323098820089932833125301813206919434935274726029762375503535603453363024150486470355413534377226619476865913032096624979423899509980186224161478736843781568224424599376043670560623460132839009608321901718208424062804274412640900848920835763801532743630692329489251725946464003570347232338145243534029583996382910303858065288621090451323104254642354535286960287543229374969004803441851616833938025950808029379578159642288830207268691681214298001378859678753899895502291176290100301560907980730694816080421896001218776322327477435320122613443150066764077956801792366923221484357420700222104470480493835159167304440733037313819307610223192367214315598736767319072565359478310213042323941217147185819905738571117093025901341275077935514307029283734806217108262042817731482600623473191288247661774945943182542297905829648648196631693085638967110154457271989195999945427733650683804295777547676510236808119320977517997244558018922951672465484398814183716041301341595570800475289994576451721541197215180032068027877876599857641156177611042884830100095282332895391108415550695376547762648478140718876824040077965386932603097954067561668300902821380649985499175607476603688647747997249332302186096963553401230234134603504163502968807332228563444532116318988569656475957086034543418688271981388056335540279684816181662768073480702369331813640157177685278959282603532663989193636280417982610187872700047127851618767809797184356262644814645756338405636187102061140404858157572386305283661429036128981195256308238692081578629812146044862352478199970332814297085233185754067920243791250020204450769487657089017604543043898061420294473123960177081219095191183358724323267685987585433946898394342844166326865266497372448516481668741393571951690771745265987735384410164277042399958745748245996688525699830097353614288502722578335503686406497114375732001504874674729532919178383428423707429484322621526539574237453644165102788750032631141900851853177099909518790549483933002033086248342169023533289537492256721177802206950555216253954365968145325197308927885341093740577353208881080139881823634596044309700175028899715583391752785919997465923401379642491334396929211742296942501533781600303273474991777584073064566304982216096568700972391361146391006847500461905594673613251587987463286622355185267682832511082031353640760940636526087270910457545635521113836285727648845338033196781096172326290109117224884876036356879073037268502121523028597476715675788684311910146171063213068124004277887814122479350331007554876730127902222185512199998473457719175843665603518290696176296004546843540042931243752823357704587765479176203503174392943987359691788587165129979241328024943018645960612680937032415600582513117360861272887722419430532332030316875477330325316603269343445764386695914604850893302793847507420406710904847426146173948667419111826751916090984846514811064809002574371629335925063529859343578499194607960254409798375812083213665257316383460712594871481827780145945710825691159300332193351278347539216803959363949042526605486890033293927637173082795298130998567160358124546059435831004702306312520087097504170271543134511342821081454915391082590191267310515484969440949908020978505201595846874941321405462347415854530152411533523760214270693754630931236188446201564538944902165719039085080582091704825227835200495344750072823798836789184879770272131669446406099745377607660670774967568882768809231571984465131424099006527400505480545910448944083132822665988102992009308322153693608797938242151270093810069872324499181728696060994479636233781248727661305599876417958205582629325577278371191714224601521185320018124027748486221433614388997854149582079407803386618588572206955961343826165236442525657825764485326830483473719680502909260463386261910726485168219438613517652515564458590363846134519171570570499676139314674328358454858104637935047681646352989095331901712613042194850626531617228126901139254830110447856746319379548904462409210436504836816384141144439316570354958823759174009902051449277983459981510513294691580236963748043983221936081725274239127063212296475746294381924595721277203952166501711921030276557637951085614530674073385492003103353398774652361157360414477734579358671118515943613675700039162690700601894731213108031816942983810301916877118033758382299431926553600619833337828692452328270739246218423969038410334465830893075170793099595324973277472965411565683613116198925252739673918293982870644106795288358685860555995371042372884388218200427600550858552767434980572076248909078362845139705410959836708516214919415531465578329854870241889392239261433317577506791755575662373277296160774627252009679843129042508868219125554914565207580967408437361741613516851897130758605014882645537628178384459636001465357745275022067892537636099476974622879900466245692965515637548300120385426290052627141867693962758003758388421467758620836337295987703872155093649194343858543852920225871354421512337521008305923206429741379623357311977429570822737326846515624029976958284381537573289573337821429289036332936621134457049418300552871938500294825290982905059781625143254717198095436530513284511664051610399558791719703430499509172856507906078057635849606562038508837931141120452811877131787172914803694942676650042633966724683358777681068670450125710605079240917638612094268566886160060287807720828838549139986544597162813610839150604658685382803627141539829911859670696664671186192047266185700811084725167443994678797564976946081206806733310819071953011087210831689462375934525567644541002974987775022312871424054891884553264956537014831903115873965400452367919232234258293800718769274439723209046120174158212129669278423554353212581977885995456906897364230874530370822997300960044385459894684685224567107526240148467885114392354478658040715474992319745155485335009503427561800923935209890920839911088306733307080708158800574101637131606973667281206702625625998039556622358519204463175437343517457720220604768082913943817618984461727355905720899910478897078242463250365753398560104641856286293485536233382179574816407599329602108920295804056917383434141302454957236407277052521597438374413806677972922544216197921622497484647616912791463354813620918037557324601983736485837360345243993234423205462117996554252700499267088094952925265066571995942712249661229957885094717270471173320996372886772150180974889849146322478315493773938619847178616640589004524368968415494859793589872414537100073960399386544129943368459800669448569558358447490652459286311624000950346276888830192438691016822269127327537987262689593640190844883305161537668573128910286667327176943614436139146420902568048907954057897280587165229952883015426347377052792582849701656936426799284608590599100387295757718711376164307235973597443471583105238794229737571274252885756673724943821899336582857836988706774561342385391648820903483633567536308414671084422404515048669936016141256066199412725773037432902567689481655522262174617745009951939943428021473035073515351010169013566432715144666943795596780028907099325905763199815677805653215179281848773478301511513862954144519617066844349350933990542836744582851337178809209553570529062137126476198570688366563357130345758059750019281972421800215201778437058375718095141629591867671438361000763781113672980105859531614937712325643164553170031967243269197253702012356280629040275906394368119070954538060092211142982586447432483196077711207883869276884335659864732816457444804217134483693374764392423109855069159716445644846729472813024680243127735507456652650527923199884227724516461016479370881125944737311696090960354410644266197358901678418078292305802856765014942645597967496225263437543732246580956043264606861539379128547535757461804724281874694408220485390288739570248186742155094945859378497529656622670647945567584527289763434197209841648027740311307437557422910613916680518685712391114417372489373209854797168809919245322913448080503311412573853341091754770607647407319735240160023133402061386160127474432540280516827383164738584848357466443298407330747568665453857946679051694048584312281367865446708146184443967609609946735663239331685560563325219313502049419554305105482088621904929013907151791631890163547020502625493171803890177726112574533600419170772881060951024969280742355470393760416566056604379494618437711698692353712842719957338874025863615132994817944007313905165546587298536626897735485134599188444833521798957910870254242825618392252673519010083816094228261056614735292107324017601751724118252909364289969603721392552188962081362696858247605539123466934579078634719219064150325101600091668120858616902598021103754378888604966722022187278370139174143743712187940308219402454974405779334322976086500087930880629807655907062704410134254617133777358747737636438469346115296455622230693211366305688901151526390745501851087966365266926095723858811643612949056902030655546757895039940528264945544568243014093483212196267475973205959950221828217362767382930591856531188402356001404017742355623180215466108433569765890785436488016895152903467167918201231581500005200672544145955114481349376663842736789739083893072205080795914144608715973109871820395177749936786687319140136646717176037091990226992511288463032337740395330124757143368278769565748459955652748504025860179977677111417535247197819918935205287584510285927682771571123678584939237426259016189101632403192878607844063463255106319818145028994107550345988404062969563586789171001751031835822242627878865689205721855335622438383400856004880059684215955347125645287695486001753783160792326078447544586110156036599203878236631036170247803633559037444335603777652993912530195582568324113425336120110815698049436934403923519322846303320508893360410836317437074482753333024624701262215826539711568475064417485890506863504525135331077211741735652477492218649167844494134227810672730109034581636896350470844264794415095640825717647801470669720544286150720780950662922785098285146836618227544134711045485920440050725959814278476365631503343918339084320060515797992562414525727530214005307548152355659940133625477574944609563334428350591347794606434714466071143583580035796484652962476396215550532998848980936727963929848137476512009767947678038484830272263585883050048342646082970789095100902599630071235741195999183504644048198838528456582426307869208247016238110693801950568527736942682662822140138208864123778890133115316359280863628247656843295123652853961228516480997493445825699626419476728974314285555059878119513568143969205809181026445970029905352713514567540364879713196525682870522282364958411327719373920756256313863487182846937016775150995685130674626056592628742434764788991861392641580023746759256932172840633307100795015750751464133944310464820743345977147744314557877766080935784575871387771547474285413719071322310265300144339659323951275761175108387565691976016161137228145178028141898472361204033966827174393489113271551640263653202839410477483778440870912082515457327802820617671333348710933793317552812157982983403186736881297880608533874571384699409653092462035193717929590575563783321125673352060048636905868228312032149476410204964259860181268871470905270876441836579411127505928089666574698369242698421581553345977319128584657373636153981037020950063519416373784078722652468710589561923345635454070811945339775972537729995812358343846165814417817074503590725264506752135934535770875520818785075350253759896756700295308758721673206424123541949434501466060573352689545873860759635820262597372949468847616981138363887035547597654415509628389778063344068068331278076320932865882383670729040812864388241957737016188336991591116081076792680193785906827292478785612555125781432416108748206063323129419781174962712663568300675934999960153976641201143524257274853515481643114512106322234652696962783218548139188244604956499826876771924282449139726992649121611437761899691833637517784663610324097096467343067423714403020745736752577170861438483531240219920999177541881827634212734055985470596337122377189148246984267359521891967087528266660370120503546634192284921378755601666274177467806390205202431653150654575583128492512683859520679134509107911424522467681832904973791733162528236847304157053289372837651952857789798485459550914946156475381555469052275333214723875200576592320621328025515971792622751487399399285643823652929076998731887146456007094816908005161067206645509751972566623065069048312540467973540460111991329767843673951180492114070599260188703114327957014874450140915549811576539275406669826580183637551189961647591245092709840020705929320385166667661397489290364941806451571499588926380016680438987923988554446553867107730665948845472098851659608059365291899526798572935504183946694111640726343508323322190506481224947173463016304079931068744265591393107287536874626601275909016485177936881691517466193735009476091652330677234500331648473588646092569971662965514929190057127618899577917275915273785628853554308556588333629935210238783131931403523167307042405780780936856808830155724263665753886946339006385673410677375802173201009600555434152878532742424676433589470008712178351906222025383536281992708153925865891931094445752628497552429409543441415360475530453473963125356415442820328150805171444100853699209969938848313280913205751708504174738755647149095310650766884480284667848086156223564783853482471534148424376167164224156104357462115341571139939107147217152199110051446567230081024878037877228364632430758998181517978754726993451318515862118506403387948288784909008737410844376195115539692274797310747017846756162622078061279467227597075082590711225930929448418983430641718140653511419204400102384925407228468788725353206298934119210157273041239968821943656275021149581914969605166378563491975336393464921623330157950047800293595193070666177839264982466473936020496473973494970077767652388276999689988000923894794144645544637565429217487988343609272831791565911320048299693058995459683058323411152111973228507996047050356654059874794986252896916958958185827127569429547734829487791475497566250941919372271800341549928302272762403850997073294288627229395346567917299337172644716682783818066379582568749127846282428691292553515979947570243756040794022406762295625671678080497471523911953923590889763111126724246148676674614854060248572629455267594087411775673129415039010462820519011409661647311055375606557458442662720807845384044678321649956576492991660772820757816112695649249665834734945481198272126996406246689237461801892119644091044001804134036439873547576606212278413092429874445723932359183152227510125815233404541380478691391874636420931002434642662099527077986730226216117280747107739747734339296997700022652347217244203251767146027920446236942735323980430080557326583750910104618569958898999515104218985671750510029246633568891433916032561468524508900495268564207952279837488579560826914799159773991043963253918563219753752360204144557970068849167440093048528262345328282263544522781139994339063452809829167358403014159296169707035202360564602804100125216362566085918372381830042622886057867310741666410222240525253943050526838106583837672415278968870365284623597274417005928830415939130739646411967962008217313949549294978160305670153729644329608277510207264165172960520019724775757934228260799763117871677689743457721424084517984283514218392216825863355089340087152139189699602535289260101276103943057303649380420028022804945871785776874964760885523989241132954481001902500878015524903957711364012019675569501050725820662480023158411307541716096433997352270571964900650451361440330454898404353896331071528976350543748841484722218158961623861463070135164717064305546257380741183422159741778072016547660837019769149995324031055191670040192751456533746163395607629643851343357230618708458602131563694677310335032757143445500462524622519436423260328655419868576637713493744334162201220023304634061535169508370114758428775878544152419937991466032261768907774863838389255449330134559103264981403949328753292969881718256384972603656656825640679426006500425506320837394816923168757470324200210273863378133693611837500148167540671048010948301942187513246778345718736769353257730433923524644444544480515431469341272084237590973403500021980831677460840344108049021778344802178488064510706871293283402730421480192490000232870265399387497071572085921119159325607317038043011770662311394499631872042536431132586848401637604357897460319668586633406595446359640195025586933175032291465321521308505593900216599688043876417229061272500272707842107652195645164338535742092352135653403761640115128039380811237122227405238143231712944438976958804527513262430168462794884559632531695547256782809631134324605345124754927520955170260318189670460704554191682890937476106453730769738374411879360964088061064709233747168314650049193214486699346833671424324680670183611928286110795617341393067500921448481209092818252636646707617535684586198538518177842101549588091127092373392631597053690673699597044785412123114537537307228907079637859745075097793876655510499188747042394348453755404334334680104102572020875370661034186965008335532340957382330049988399476589660175086199714414542203326233973619413516613755900797174338983635568211744585472440340922588640349605268315480716816815774239950345519857214004011617672446878496813704513881694841554143259809938628442051419680353304763722205085330759857290614872345519191848065140710407011234304294380496943791460111548962480958223212018687307564721186060384887697934892343770863985053572200266927590508433213854477224463438049432348185890313034367973805161134242024314165290340790084650016805747134074743370441627885376948083852305102486978246082864717194549074179416309951003881949388440525262235376355318921895212855453865647033654354062152321917866948713075591250316252075667511761069875472871767653120039677330345074641451732279031540115932231873997847524426022030411692054547616360437451290871258269855797723344998068426889966390805300010144143803907047938904843236185512504886586618160397995726934236875445925697383059961509928818416686000775263371628529757124929380474506429043742297476000109636689189884673871503686661118035617257135909202082431376484047331526462714546997295235755478451525992962682251567600136484171856181600205728738525048317356756982045180591727745044550041267098624779257754394961315557133380933830987736820297408184469991726037955003013009867421369834812954320167953765481810177350950364990134714664811188386959814230493173702662421021654284313934024199066210452134403835078970051213083955147031502758362511137117870923898448813537950296088094024377958695417075633594069437541079668457523211671659995165447323028748867626285869409682176788719593320189029935901900651098696386496435034564569840741796595121481645937123649648842742046823625751166756697688330819856242132399956524139671204583895333522122438296423943424030516837480029074711180992845932665673835380485963109847179578325670632971829173363143757935029202087979517016863065730774568852787627859111282458339894516820793253144892740836031309625828503919288096088547877585622755189367483110983836667925588334728278930845801904479154754790194046926709070237232824570150842445842616801034628977866228160491215069693824427674138891299668701898807224443114800011621171615280002584503390710734524524630557165453675008972883157211727242049795821122141326187124324868663301640263436769250374493661293095314609344676188688658227561687112597568190467122004835189659176692391785461294481587633808475296924309934924236725532217724940493105914621945014321868852069295970046480835942571551109956226534014128214433446819144745086346173725627327791973651733401874956176270293639685818562943724144625869635927570346110831285500676901607042373902051443532654531993839341235791452950393339331005284581391983216995516689734100879797214278546476990388873546930823605642452991432127866185952826873230169418158831806923283646410619522780530662297027653866952314125226508677103289161954128252967553641791917262540620970529603974531524338048714122610249752639863074131427616949405163234101528021120799353954321966506367672916130170101385032121450474529065953754836653795333426901882324483248236164244838552305037982998568158888792756869849309879700912394071408773450228656441998818470986478416487831430304596553626975808278167940265117694542083565988975384139172678524300128684456905917750734349539641904536221806670470050140489324374478610974371934091548936820732288896542042910721347468694723276941727423272658463563456846709367066773880529598198665262740533302854672497645573708797016079822258800579612493428656900734442768923638885914430164812214049330934172935456270050313698184743542019742018665546798625417305142635107701362525614758097384998477004105697030295611182768569132001019327146318356411772017825317726185454225534638832906932380212569599391410310080431253723044771232301200511713789469986994031918916029564670626924461295542498140394465597873276070857354157770900093978321388122561196657726087027606068688334132552768907584063201180991998189801715214807024845042672504796289429125427480804542509339318889012639189824100973671155472300954978871830371490468435829509025604238362267848121391593443614446058705308197937772592188539059429521416355811752468290580433723014024361500196837807203180836334647882262100076022426353612116240241199945097311816813531248543337924060349562468630578252163527126899290105057270577774129231754620679915600887880388928049816092031354596267060517143185536082600724416405966664834054337543067841408166091827994100625269362153009319155181468777331669071458979983869249023421140666247151716348276157743252138974542174682844429134010657810662027244789202371694416258795753874275417627931490014937913130936680949990924608754078692948559345308495894708941911928019469790248524983894481757910495896699004825005678754984749484070742590701063426465954727739108442216382268432691869256208964850791714470509057000469231189045600298165886470880005443119759896286043470268260867233434748357770734552001127853197872495516676369017278968546722451945393530803085706118617152359338527829121614823750333098535916645552116387469281110356634499534265383687041337722635545045937754669537211194271804126589634036315649058190224956138453376845393471212043792138507460765161705107819727881758268808720417271764892605088501208316285892176929633824104911566123482541561836715624252261336600381984417861059653508625633537435937692226623201074044634648491546789888996790317969996195345467185780431489030514196560917778522747201768051006963975427714483365014673819406799839288995531014391218910960793065919807920359868612041778130569256024422317961024119608966334068596276993239389611620837038751449742284761177347209394094963773035227284449679728289380038700240466095396954582849012753251582500628998703754582799982039849954965517661290317956583609114569132751594459152760653847529522922692790767862185850503607272316500208990464515508891590548832988146804890753853816162619294505158650455449132307081975241772817943281100315150571500450757889067128222914391087389533881766814813376983271855429070367617396641405812311538736497644243012806328955477794051190572904326311479507079705899570777060168443105749756397805883730411895183383660602596102429799173140509882353745281572673298515793993722233436851349932847843183598216404652476823649266415046608004570748908254694049735639750686505928435543840739346905927234082523255572583439603246767446310146379564954550753667615232782041291758948173443028688544574304905311377697274220041925640482601289241881344242767386724791340177444933125873037671867110818936154876896145827874478408556713121250414744766057450640977428142167444672394468520398921138878675880519585121366760285030938420379219627102905074419752574772481207428845673039239810767874122733071635473303249490482313188210591306039422652379669736840778868721535016654486029841839567610881440773435024582389693100089038900014222638914221530662821916931050641336955675798611703803273719154585207112061918321001536714143294805494010815793914161212383642185531883831204688453488490310515303702711129656891576439682368380789460969479954853042288857044245185689247265481119945998058177527600194469853631809156471579700670610891319760842378551840084219818562043108764356910119914171051291175542805334615413903368102891741090429157592827607069770034186267832616074736655294936352995227999915867798707453467226423136385105876561431519273727718477597455836231192773167366568344792895225768692285137684581440086187346839584731563570803057016090011406779822734032677856440197928250897576233666003099051864957820822872519377538163850342840461421962506324545717579494534308609212364550070531015712661107067429462051136951140479405558010313299573530869705297500061175035694663658122704177060954705955591983257103400604815095510846482739608367975514157848221348871232070247245343272555239239599027292793635920267322726144687422294222515065591611244109190826472691683496126154834956381291361475379914742454350947183662062844781788361844327519117074318972052331724239675768995383698160800512261355496163673266552011495639532458399014595342630242668840306149229200558155450253709187890035604953215333649855642550219368627927435647993518264173200859532505784835497221966685135436836831947386176967469131566650978155340156644971663290658517942095606934425789938476581651467037012118663402534297766232532927750939651448856709484905732471573188341753480289370278519071727922553718253903995654324044936302335979512636872994109473747266742662169415810829068594175489866243968213709097008027641363448048441773773279007622370426084007341985033071178046745747109222796358225744429620749708760466198207695195574336856755768648461059476317267093880747025085192085878674074204539916227483710744052489437558661392312527085415763578207487126253320984861553006480338425001935791553807147741798490043646099682355386177007184401095688419133091147091987180030128444450660796852048702397883319615303025766579900397854258197733163727210555651232572835800847879371819763463355717057438842671671689313324083229309158850596115521363945997209869274159364828396411119161666067963867454166671056439500682999412788735586240686914866314407106397372904088357779971133554396063781810902239101464107209892235923643146382138467422614518061556940278765456467001332638646734619388480794781307053069310570095932452644067411550781845367011770978020927783570090941639437535132109211278388243655980978372445435347299378162751227725963380049495152158160661765801570520358472311765447178607428940806029158775247190486025982650072210728086423062121866719009000140320955004844543595391297415191489619356721072226332890038494517661395109305585218550242996726505302148232815220670737771446599393702399703583964709720035230642283385540692931982566397432915868358815902909689608720771950334693611420461047529671764754234598082416618313603214078802538175627196329404208556314839699391660647560481388836624747916203377831884216489064776512942557712519212736051756571780876791703313798222765342334484599525676407716792216471475046963571498550702150775342433342491617252982552603591281476586022393532130489059827593788945093435115759265891016707770634486600845317106726742566068712049794919485563085008211348105728420564697493094019391508663581631775852812583203154051617699131417668585782882589254201405555004205527986496305225729554072755439080863042292169951610096480289017989014506739917322765730481088659428640756564474875115627450950509088912155142266115810862180022643522347543407902208381943697610424723550501566986892814387005649341231798203089424408357049841602343689949743759994925450797777240076216157964187228841547697331777753333401148831459140059573821387298155819450221466652084136290357901050366904032246390588487602732529819108978548687365008688895676217772950371994547762322221465245530891364108408435364130382563475066035907518778863280801124541825233713873287628713153389507258359570747031905355745236370292074923073773304434530467338133948807264900505775027427343236801372634931161210265658882671477848293414811331516940021819518347178458355311727988211061017593337021714462872020895990916408413142569859032133635864819471767210400937483452746541896546651962486513279260762759038203467580514511837674309176826182268751407427642257406857281195119445530974046777362495170009837897625235570173331253533614713267165955500487569562739043359816750212515866244132376134229300499013989441297571599285908136518834017074984055603185941052454605724515865856714571461253791159631871052462205879577157432857150651703656965644526019329190903051125737370176264177155793951904303547111749451083335059246860078394099988083385449463771260674108512373940438560433547941206856579840965019504306726512570957791673058893768509145182572798438523157085027324238407787397721049358788509244817714524607878233300987596260230387377834432106311909979224735855264964820345257472868385481279528980468392158539961490019299979812208115459453365652593645343602034340501891730413706067116671592846857327682911782941899142073113374494320746366230034023626643759064979863299280466357636894122378126217692207068378842918773136156750408099736898513928409463969592002213466929424186208958768621819127961451846901191063982775975755611508202377558619991531923892570565878979633848874630427828718270661267447179283668172367212025692998688111794749776882649106468770113088877352388450668655678630240870166058601012778326705197132961779215192767529271056924849153238793612646218135917712239643946114425928552651947560076388006386472356301295547087731028896346516745144144552639848975727930882690532879129931902130744582418174693076639398892560683955624862052451229115201967115282115890332647623419175944407138280117514039663748363916397036080057835107463603380573417361745335323976989835058357101873116964899958762890068909636507689059731212884744865290453041656449047386385391494784992627869789770077762736168038006076107082417074636067050093866676994902326702702831309240174828664319730467440452624497219379739960714175412210268283831494047423534390584573701926746908805560411047800590792495754840313584747324325260597788657956196976807731828788244862301835073170945145575762171444470536615953523563093060536725322084522029785913136912907252796023016620735478534556334124111310987761129735756657628316151127432695976914969706786744487331689118526030658087316422898516396082751468549939674349435224926797315922017733465261897004936313709022038046905924638708551870837144976356956240030185348397596146505979667270975839628559755925890566241485291073786854714231756799658792113563722202292928064354746769588972487171889145369912685832351444445136639579056224385806680863628110907180145880601855162231312822523031240046094055096868281835621005457039134767013384824169239723267657195430577353794070022184588390721125243260135540452349340393785290722208548630318390152421712948035232483596140671167456424932548533406659351548404651613600662704296855702835402010858877625742362079779497973447911401451746994361744051048949474329173556620925778381541120357427962048389294807413043869756201400027471031582584330207380710430419897444998109614495950404144985535006768338871356082391197687376490964389330954806455149610377561369735770962087616727291761235753509872463700521713921970362844326163240432440671511802860908565928552911112011391754562751710562729819478213232906909456594228857347722241298438756243280161512610954302441906399861712629253253408989840080269558528105974983848755832642310732277847039483779732063622244186643136086177082109702604701289865464796032480503767009746646367182215897791332087024624936575281579632635574784937772073380897728657001363692652495037593411077216035017783637452373866463819485157726378939926653670879238929638702647371437325434139004035930089398365224297051687364115833360655787648292431469693259669412742982703347687635539708752253756170355552947712109267138238040519069841978613629668988400656625496172596473616381992944038012597230108071111505284030317621773490633680774531198519559421299131613993746744453021104423363447527063479080104908322603885197019183058044105861598470891706051478290718827319477273646440087199918301565412146522954020842756690475914877437269553449251108541340546008259048975321936108275090668223827774790295382942056261616837659800698588780273605505344560226876394545704460515415007952740533705698671486432609920056954994807193205821473727690511758142318753555222231386386696422878213284076266689008020372681308045204265007694806420225501035577819597806918929504638749391336800831392117473056509758630224566896442928439940644394794232526168839752504059371732897291895006238481241223333206847891821661519041044709368063024562254130131444782914324729177648165797302955862070397986517305943695076563996258880013792359419253907485955296199871638509176129392473012025651059203622186740355543179499873004683760657261773616817697848642950796812082217361641671859382252821333558760046043527080997130113923093955999847498429120982618354491281080365528542081886780831047227984013798372254376100648121190135054800675794194287602115628232565048129171765972642734657921443030735245868324058742888502472031986001165694234670903809748521832181531802782812865304433184935651101054651983969099920800487240087976047883532943063282246032340539806847558265736585182418647524745251306749952102530680559481599966662152422872845005570034109705309940431197502454461872377039832271061064844079178252200696615958184419842557382553694745781973484323726060786904710647814963022247729896523679773653420042840515899201880692839697187192422358410556532920447970235480538769914800588413354245814525620687339505577802509170130356169251018172666204448867921713742712008512672894317521378488126803770556955864010136489675187869414314351404942670588639607291050987021612793481076263200077548407539388406780178950807514323346471757258464225496656113140258953877903212734091482653992564634678686350148277569869200376260047971939564675207887649548152707804103287737415166304626565219820089026379968962098151052009762799837224477956843364770697634464465461327238162834810660431764384821720870428404758627061453110115609941634064393360192290664445343930121250581875840135870923166714570906613283514317236748461580427641434752533415638448487878104542130588532637787621333284153042827573403035988502504821222958011509025724100623556300877415189723871786032991523770974983453309210219180667063076615051033781857986917819454787924451514273681076848912315054565717408713472251744238965297858363476790638351138471172509372772323814706642369975957759249827749427971562483594953205145999095413537176952566315713921503550520247527189951214846898904857703930581600417498304967804239451845536697676734869060790269717918856445374505340176184834920690062618481765447851700055914261999952885281985310239998193573641446774611305274013282946332183328893541881531790469252352831044774142742549410668577246371191385115155943463795164011762559537796016427465739729578938556304193036205120351990853944968105088259166146088771510294733617495954640352378237418850649641098288982823904659411008483452792093836572177380456615931737315174614503750748324415765165715183720051254785350075242886221801036879075363464709043828851648867502061366898618301344007806433252127312157620924788598392266333704688276767287270139970446035329473016302291430160199307102171952066873077309955802970090803300285105008700146002772517094386626311873657384110316325122748343893634339307988738813857655698569491572845981061192908241736005834921842386378692541907298729934667003177308285897666761916605661574784085989791366713539273970157346526601119709655044920676493277445634723497454777405790757568410520967328617966376686077282854945782417557378203802233579811021225523079418861935454828717435008577089228748912447047167998310659311373096833773362392305458358867011679800986171976319889114340831877239340038089668461962546361004871757187666023837357131544252973632795002900673054240512005908273549525543632899786059923840211663590781838358377818104913967875177787125695144473663694163778291000281939639099046245591916657869996171172080147554345312819847088748581535272530985989822009160118098863319728508375176554242593310714911936937550048795210211417203274434094296219256101108997657760071960697855930761819049906560345195667432631306436281523562813071405400151192475862767841246426179640983893566227980300757403058655262870849785908383850326765768046357914730020563213084808032651626987299800341135819446423159048958992205213979080048848609355613305596765280008711693203393153455115437990215508394997575314832874625427869147951252353777902296238485068050679072824777524722557527645344715949254971090017845175831573746671411752905692366674457441312677561776840345434794892882229902037915572592493320509710279675326799642610273529217370512970698909356461360372246728900081891062588429310784131449231483790601605855157583465665167523477136649192733602937128437061897028667978680208703353419307049863538602801090773800662305436158756963698788323389705931639547012107726769952766012964327597181622736569370199341442902352331310044419555938858439425869934964554294023559545731641183837725006517283842031507731637584655327490883557844975869800912754230265809405718893502838516636884234200973179688874183020319287958129724890743940504148091697138640954293543131934115417906017210059863510766781277378184409461430665340758447445273512374758734325820786086583025345107717483708633975776932904304413709686737450389366929826323805000072198249321016663283645513550133953833307286901200726155056496479552346298901737099376177558534225111753933417291264451946752259691418898988665201053338838439494142418189667051663639230005855299838130280080611052863565881289898476126897447688775439575019598573402502743949284514591808724577830616384803911353895100825210553204318118205412641409087012445908809335475040207274735531485832024113454899325336554838137754306763615709908662707300199412051873203494497143577404062561875917979130986773841240905210531542415367177087291764080063551296050695734430943427630918409350077162187486517986682027398373038463138532838602382537059872817159974074142497715015635237298693740338305398007554478527126383246886700022655681203101758449621945516030814478002219435976117066812218794035636220350194658940699714242460078445015413209119003105467296716153302832524013649856490285040977624900142356206843730319905769348879644103969443935398308305705084265468348452770602937382980186074625012997103301036575670770966789914511969113860895646393712970027428398246437909423660391298020546420929860085785587485918615679187237265174369123056444762900800031347722288073481610176784668786957688143564195317870571216813695673872717346328613972426718541205902563308260090443026376206957016793959353356028175445233787356403355313491946153071172081134638069466705755704834632287468777169792445343221132583228089754444071683948592613341615635485866392997311212906944165989773587448791036690009652706921973063279389446704195323371448180903311614900542861438757528945010201502964837299821271762649727840492862204244003187782333343249390162549628426006143703437677416844434620199044592155855843946023008531147111653738600660518519752985497581575563317005066221239192509227055957475689599814896824517473836729366694260661087850467768306905228563685930062723907540017283509651951927841530922659656448237926975273202900756813238423004581180259540529932555388401275843427405678964089410665359751614834815882389374130646081313949036702822574161045899810626879892376953934202733503415757762538211014270129860060596917185739632196215248699577408086008326145098767624438128396677251127063721035823239269480502608339258719154008810984450225392226023740079083928285806143754769694225494896270398451800334437104873962440794254688360790567741331898912588723658059492387316975630342437446764130575104309497821294181834523719120895363434822137376573093886475795107378804542331578718342911374974951624731627801009696871110124235876829640023374774482063217871737208808490468156572868745248231894599181178758415419221798454338712080031820289857888185918313638966197442633528994511012411881882791317143178854552813769792473662624501648388331910198447395288308036842221813688909115168126080014663005731545761063161033203719333636466481071066772670256597459275572408320247226231902914953647019113800911053192259461329063520581331130618217136017179818118159906946878064933969999096442378220401874106877923032771331567037850216889796669482000802909956619628395478777304295463628718786052717065235263770809612575518896806609094803789065591546992646280032380281440799283915544964398584517700717148079413099776872789963641997764327618377310514746788207295232054711071503322924116462073987085043940828922777465800439863995352421270615606013141678211593687633793543900479926816063922757113672452424234859223625398024533957431534389181672173996609302516904596894474804092311824218775194258285107417044435972274342020956169609140350930347448158024544681044826820291794290198446889080344290478097848338731345433397583188534076778390605864866377763230533902478816589844602403075093899607870038069272371835011951890975942536239977651843848398473533051155082472048253590786269615568611072487695174185412101549283854414474444355679111794871374231704746023718758931415105953317926393738522892474619684898454455669835467994146331642142127806752500356869109235374301082835774619717107392444227892882356189290939334162155265584902320540159274927460008418944362710540346493113198663053085566256872700821760370313849756536516196691905289622540278335491327834604110282034263457742446972953442298846144686311988651991193684982354716987246700284369065581595971196714985913668587529007462359014591951868071447927287427775167264399807424508597691916437585994375075551938759140817497354688937796450444264801993687508492659023688528426131132675821443494117310217204935961029297131795828600719868628026111686842285685369997598729659663939105230521727884239247162607248420439647185823320440624988303648259868092923396141489124095403746764204393292429999899400750116078607197312121482734725807090089596778175075383277272728608242354135510238466964003307683012669051223511875057636116005108784717584648763525084734247649016485389604233088461593488230828549984562257996535284261785294939881386619599941370609903064219527396834404422829210404948434569141097781995772982677339993069098040848406707914242449583512158961431560227892085271108890268493078274672309096640557565283075969809502261286777177010169419887887793996453230359741677689494902604083716676302870034704246468334162014844348144094804126174519861473317318073113706734291598883215865383282316558292662654298305502585861615318127535431852776535344153874120624475936268665138566261409034910166280710419893771255631585991792577849033267185585393405579212356497061607211914127649593886652510321971685091882021427185648213687123163392444588220712842864265153436437519146154984477509998574774167218280655144535804389200767523058360678315212749948303067885495398299595542932828966074877736331451505066620921134167359704348327875570795243267487349178855073453058256027050300672878551603999113027267954480888185648007504483653442082984065201305235356382625104323234673030623542742569705056295934183470437998914097176512813968311883021378286873491718440952802841865723846798635522427628120466675592403921477297152615692423787749260539254009327891288460802182743343249786817696515715446185994222682606096097225281921266400700130270616417378257990308851346888822517474075211336442441170698425986166603286596607147689143817048439938006100565436313148724998780004834196762378151337130642576623552267247001375350486310355653121093550113476782229007713693482833141913145226504830348861853877266630689421547375277111601717824467506946464399874717456753301454968907736217604926312859325751937675678321646836592275125694838084173090408024571788004291311896883593750242999869308869825790760219846087891035327299161705299179048012885401704255636832370655702842663889059538604325905103188831028803239062507101781834570828544134266144590321074320639143979197531777852690209937368397762357148768359082264842826903943687565830941786006773058876994592704168390741531243713010234687407344414294161606753134318564585806590585200591419245449214581273100482020825145984267752997216478466364666459065132394741623287252958791453316952375465725669432995062296890863477806600193815928354236853766086040073775785345795014408251133948062632953117222991304628077667845318360521416141740201720307258174458348352871448924874634333957549037371268184690300769783584241963676983471079102477964738182117855743616881662946017338222404700324300302965067336030742108442889945175447498107484655029106582651023336304378869754172401055541314220081773942693934522371425020012653642399006880573231656266774669650698259490206468683509402600895828483453364551174054613187585760781964970761396799308599133225024425268965004619805083845559565697672547127874446261330369376348256173420291828526905143800305164275447159844114937477993235305663197404877968701487329103704890204097624337829384907994999402895144851407320513561187422942085889254402684913354789475212142168502929549659295838699396795177326211495737905221965239426793860187380342365891103458757241806414077775598545135795268962337082558843150192329600789390913241569689094754173787841703927163911766332311722228676264363753386980738210309217997716180797107150937417028699930470311912266832678510918385917504573022753181742929140418602453962845112410555381726967348955059230493656139267576696566451135313770083824372014426150146099388316566300562021418622333784885743441642241755766573296126401372500229897539454926421681824664129229161553115485788803644107253650677577100011364931727749110944247024090999929391504229774705390354524125889978279043330599715156997170374098639216379216625105341424343516740720825245500573784546612571249279677258270720865118255388138912546546584660051445110438085570328483525912435094685809931924609059397209029036888987570478663798878475491064786883905560254400579107192271476469755775106303879583996619768335936926479480196014777587601261916519826924404057823843823823292119163529710599966822759282690795283973540559667777242282849457767242665839782041129312997394691190203855290792557677670500806536290354814560782491903550242727370283366870090110231968274316327938302057571104265787412415324630589563699116694682978955115956814963248251747358034579579459116210762822836221161535112428934684221043995882000218097550054119138884713952764559815566631346729881818555281098806540392075656576534065750422570331771631714252994551893207430690815489069398092073483667392469316873155339743580039298102453509442023747830850432444485653237810105785241310936158599557185246982767488472583078711900586625053279020316568261228863767548954470999163700438742533648958188550385761218187989647549290681037238168644720641337673191076281477763726463964604983857340464578363317818683822138980958188024462611584577882061542949863877984978834736888842736089233615722841289524902155140859679616413924153852084483538483937575012482358534926143151277225513140354061544754755541862692379474835678929996575132210773419792273053328670135356928513101415315146243506650459134650448558202097634318045054189622114346847610704737113630407594061680987193462067068880701265403909011876155419688317748130543949663672256812982850148312419137839137271835743844829495511414900358344416943325734163967868369060825380766541194051623947180879010630693345740335657098545044511084459342993694416023394615539161430828078078003090326182407106048219771068185270635660653900811937526458492603804235210779628040835216862037182924356165596138968483300965037158613965100455889278741585528476400311333670696509492164200915594790187404828236510025600412996679453537192266359235075639110304708864806904388743729072919411012408662013311545185898329996080297289337179106825972233907605246010371724620199934874006490565610483361645841791833558587787683087558935597894800861543737921238835136203622070637072882479363824933574454164087792276158171435945790780083770824770900226740207765979470815423352405523982854280837387601463509362142234043025459425948375463662413481688842316788793242742126087452033447732758129667350798142273139205805825132967813062979904924479206943429911169389349179393924912433070402608583462910356056702005142796370953114184390212394447195489730941870355746858163813576670392030688253115696298833919950123516346148453458586606317740706951381495543666044874094248637472317656519247408731018922285275027588927096690146407418918527609740077370045997747444918125176185277763517387069426273624941743939463562231902654843381288199630050559686135634450616760731166388412909590519242626270091365397580952472276817808596498757744653621284576591834685836196929827139094981916607602596767326578811471995127010837839715726641331630663772488671638465119827959249899962247181960337043184747351057533767732000366845944158111673321396765362060206013375011564551097292453203875196549821083794365012340624961354054227790499148667188187833408094859387633233415075672609185135578318154399717928993031807194995458566078084609827526136516185181401687873334771231509465636882111058209299911543169707101526980969424296686730316191033352526436482121879005137720550083995578307202747092746516143017773887496566966125733503605015615011887172991748246378837883366781147802028521104150303340012032355694927649992161773912558682288191386062267115576887471343920858653130892246705750363654038302399387694283751210384558526995743387162543766466907484576803724146186830658524761135345047834394285237615926437824397824714120694533990145372583461698354645538720556655436204819164905291966375559792363644113194446163613187013401329636724305878013692668868124099118852025211339906246439564495233021947320946613099890278496236760453773541592931348582313545600853395804639007471948126321968095426250563019147385319703174865009172097595026261691636442729241688427146451880276380270781893002399540279696948173274770491450789481488446621087768196382739919808465417946905475310900186475644317040508385996951834847626750126250453280867120184037438950302937234246650084363325589123649121542651515539519117219637611979502338949703823644035967331792472734996719652573309487925184252421685656826648225684313892536575543816834523286543962791946051917673064698209129840556620652340679219594664629063837653997438511409596945709325849198295488288954451605317838450135274497730914660582568098466452612258419922164884504034286318013142752793443497362475767580617957345962100472418448827073581132845593361185322456809214975787867753870717829361099022665303842351966594430144236961361395751410350521638141755206568677474766943041870671458075868947929520907957640301395182304452820086077060148284812898036407862275960765597546778412753442331322788356115929945009142742677653426482899555951926981309381533766648509810628122234043094855657508213755701778722374399856731803091054658585398227990263857087711388887843177123696279337758816730725399456391526142692160945529492722260764432316430020800245888751350135046900497745718761984500739427679919479132065132951431137791379985275148879805961054605368175675526295890843946887816775701465460814054592974300715345149993562955313494239359772789130796351820951839874740651648126319861695234442074817214344320227130820671966792071846360252999771735296469661533761481112999916644857741011989496354640896804860995925573801839412354968165796124755480102824548768194057771969005473069681994426296493153051224519870239935052106701180394619841736592689947850727090243192144310385385492003830194484714770028027014150996225578214744286672245113261801562395157989933488998733290309213700200400687854528449554635986101823442367564951732063005565977131228714014468401290487929706190939916304694819840401880429238635535560773786600449960561458397063819621965348351120945038587912850094802117193311379201250105582990765836473637981008561760878246373916673592831136875210993828118542995949598336680341263761568173983226461001321240639975501027155117597738860255491176897675558001866833328787848784248295806489567436511459676088649648619430448287327930885188540239743355106163373663650208286375041084951893718755855635097690377551942946047593178357428704054748271890581408783128022403371177655905375932944767583296066154982645678452687603187285033959309455398335213128376583381780829419459932354182521610654615391577417878473159659583604669578475064739930093434296757404894817806216577302723915237798755082730788973761053834619520644157649645416987887701078129877140722756020609124132704253337444439492040675917000490804474717910164712219502200495803533121497004374725981364011642502943734622249567965840156622672067214067666789916276222916685363369952662275975204074298955448561408116151677738507731200770803793845321736086465990837588678340107326392940911618650082912351530901743110506083017759824123454238771975611759654443863798061728590685385650862943043324653766431662186715883178725343908799350751895229314383545240041492303900603383212757738098962008795556559196846670238563653601857107914153213771893933136426231385280378481812751358803645773786188028995720099797857929353380176607378082477104525226623932324384321829867858815436771908551448866389104309359927409958975151704008581291407728307841271766313884380576294946613952480817670889139841411203557450102313210730927357017869947409486840869915128035367067746251936212974024919201635067862183841208635580808490567986525492285408329208557486825418925053476482841603393136735319250805322657797426192246402018314179132564422830135558330626651733158177150996593051754130131533126135064433852273394583011039282115453763265259921538805609058493789160299456575598527876448766689406933177742340877252808599129805973425862214138309382697939639810501267687975323146371047841520942548289368158005379860600472285019931563134046181447942439877203975072585145277076109157982820095376669301763975535047314697247866307590991930388085825982347728471727211386049474577284928751315379743407254824992783762086910240744925401200549231645439972488458823943251308703956469141397515915147200890409511769697301666410256316043808041047263319960977248076748515546248403804680277893834447831315475728651199655993392128064886408853703066949292906712152414491265022117177766217807548056059757624145200439075266840753489956965703749726489445502353253752393876757038631129569985640755194117345298033181316645831620163555188800163101554501058720714132144298584796238751666190279377924215431704449119440722730591743498590466338336821827688818927625475363018366468241150195580425297686296580664071763940952222716294663426102552575082621094792996414869616902900099378500026551883360310347606430617865654826520779224769794992450206397323887783464235682783101983164807219106929991092247402946194070416864567702842454304423622766486949511716230924215799696573098400333716502838502733578536059335858465494457390266139639024945955242645010264475116315559897644784387574542658258040073760919309166465703147317681617204896666709388915953540031300435942085251924968686051729401284937991675780837720627414052928394632614486923446315643795697215110430685624871263540832487516098917279412700948391463469765796763036406808016035976042982300770034481737115935063536015169021448168004893196095256416280933326835465160913989550331026034216027563870359615355591788832608111315472647442354662360224430751310842919975695623991947707825124712864460622241762931459624963354234469345518934898340396396623614401165729083845026308325787708341642935416528447727872034199405140802395323114898653812227155051123692899332093386276108437337365007887742612977846300249459220321135272818755936819011952408137009203435749311459411855857337594681003739213288566023631659864350948399729158503531062722082849149539335224684991949916596591792033064216697935302191102318050588074621216772635550734858475069255376017829989685129175643807519771346990692142243167932042800896471515797205210964023406936434929835583669197633168965471257908636407153382926815295089018168902490003699137579829673636784828188617348697388652381717499685926721204066473584558745025056486261572931464628291115747176036163890733425589264990758429234035642576336167430495208446260994876352863858866274427616855865631178052408678635900060466685441270882398203500603461787758141128706502842881812976119527641568377441647103459921212601976226684578721085251123887627689366212176247258428718404905563390599174076541297792537294297750494163017090349345621840008849285719198778384444237105852788436802342412566064588512783141033570869251385127785172776022248642669134790463852511271347848799718507403541266506154268951620497967039280051591038783023244033573743284920425516124558921257445659681915522595814001322565168016403434662084722641358978517119741710832475488890877477742995619766124336664682985955997503000895402240684544142791910185348332872961793970965473650681578137450907033641432556423953873790771545587085372961979583199935367177441691437312311211200664568009326972628507156544682224660845652385863959335097619687109925805487027963315802938004899908032858441140737746593617046149463252315271692853588259184569058280161165526802680546408814690177695755580834434167656322188036831782819187417017910187271683010689702050816113436617630671619337751959159086025505789839903249878705771617121530656623473540830488381421284774933349606755952884046753552940688591343110821559759386712259239408111292997669649424994781663908003926275733921929212568224225195469858091896666412724990993480752238468773101464155375185413031211348600346588990775710211741501380892300632712555799812017047503522223238284391841152200523211654274753905185665718979167383884087891354208104681679465912013565726009480128359607326549247648529863990815884149097825306538186797536012001104090442441859902192879531406835292610869125217133947349253450830980357485376975441972326292042553673143565033321689933231130938061105435527982925472468007915242547663988848381681850839114778891762513597045812630025975700608975002178847288343155129805170022656093466658701512021138804856076783854320609830851890437201848819148136507930532068288821640905691811595756145969863015784392413730170824615491826533090284825456643637534193062118912129313920275846729894175719915873092135927677997417392761232640055329442531790655353420173956425294939720920713888722561145954121298262819098329165875663320266458792494728753620519900707538509814632794118377985531724945172121853941097309551935642778454267141982582243625510923184554568140882152601675938845921066000581399888004755276367057924815633427785711619671762120582666889311702925522677627391612501833547546021820639668592294046218530453872200873392031264350805647394473274563770925092828629823000479688860372018353839986971813471102652465720723464809959497384317355485055096163402766392846178377499779264522685892715114952085410434850385745377877489313616943639085870111870414049261830537980743867945610572584896716732323387353322008204170397703794593051121340420701507128675008498397082164981194665229158867938809716818245815502358311732538630734890726155197616516028700895536854798252768136290024401797592735817505747557135731652066340454132049640263162308983565498467129931747272404937670983851910625811003013187076798025747796829740426681139049022406466143786147778013672653875443646788865637909575427065393176574450047843810746577546448245079305078619540820952182449044914238098466111512068768592198361914899866931530273585478263041841176982045492564653564975063714907966815529890666157459962996370618379569815194871529977304905456803148052855808048831699819712872000733733069933983649431289466387739694558469450526571519809641804315684569944979290563683314708797218070310927958084611869055777811950230807962319108782003361908706954547749492527750571921727868175013934438811823601028765362849122851241613992472006992492975213788454652945035758229412877146586306549106518328817441951417729657061967673342685383504301457765499758978700258432044991708038746745711281077044027179765897292212481285021259184890961095105905444151918367700395779500957694456089481413395598726746358769990710023102521792718854989819151150181385923564201103170221650803978013944868763764526583737315153125667859263570205161701667385691620316584880066324214943724009035318198559328515339855004327476284283087091713382162214652376029086784760115405695242397870671353302792118459382207544970437928909956860027965917864710541842063769304442467958502224897823567212289537914006897361030787162323474841112871382748918498022560078873414099451289171268401094881673618134479252422313070383686440484727921319535647546811335908754868913883687799343749014614963541225425633127335945397462804517474625433900991746163377501922379171486500059889578932261128426538549340544616715749716858633811919440167936413503618089755109331594483555828543266344640395609454592886501571365689460017887762691097767572797899673772720628796788349260737340012034003499946127646093954222621498805591882486699712764670948951421669817854723689212939167178362355954244895021251825888678298399235995211958359499916586580326107696678273717538958405058192513216352235635578604767893275433210655734348341567691485160270403804059928104565071166266739465231978811778095055305727757004084489942373550226673331983419453225151642930287754562596293413622405883975843099725117180438136682408718539569841351915942747725439623534816964728314994243891995305816721888115427193643397967668119674999021037283248580196858529567201455375456501620309534028542049877546957614205515390281631787640811261542642565193807412372633273365129112914547837276976458903979959830749571407798151451338918912207483846315843759602288698385818059407169218198612990701759043222695824752948201959011786875043745758751089133513741751625272208675092718211222414993278045980292314011974216346714396253033446265489473745430754883220048689475462225515513534565132019850387689257220603248494976532521865087221705172115251703421034135409031073807361060277685005734757206221038814272801188846623768118879876285768478723920001879302357321448055150166194072009070334896098309484083309557265452287587437268794698372401069662616974309612133002942191746393694097976666265169476992147989008604145352711642631453252137515913155735258792099539638118322838438412373222569856648350313334025671868800889802578713380025262672216417198533999341625601811805905250645423331072040958756716756867675950712854343465085671326952508348610736133196282619156390281145668981948809152436718913162236396419218609785646558873613382954967135124183256745983412320677076991029906792505889186585054327440710464784598883342278264031977624011148320170397694468870355777767691926426342596210436200830276656411744460560015756835634768369450111282928408392284634022454661037472569116792430093964083911667827814087753169767233132355590785774939667626066987532110578954848018709464406562137532325609248357964809797820598906648272365399912421108376350870381349213563033584000993543885903558829168172515939942248556903073898228985660298910413949347089509450675407305099708292076811942090981664976379078459230834736099301386970706021807250153128967498157313360157461439428000548762083698153997795950205367584078738410858031783224513183942445360857070834670648240040260083769513142027465831354763025271794055064633710718869344362848946907091168922960548397921944173912128755879387552767474382126914077381760516057657811761670728766582399154125821848006300377349580886069128568065379366697791266968768658675299463979104083766492376063652456944421485858385937959251314790631423103726120944473565044374965519144476496874848053650290645329614341244883135834846968510975366001081667084080173201233098856368646861520757285875869797604812676989023122920862756770776426129731265387017255733121020942515918142331296713828095952251079912863128669568919931339842521837051606892827027676888761732711567927702462924045066737240339461542291411631153355324522087777324019027387688346947192222030799730159343854857444560090701507727115675213528209265664668521456380975875035554725451694686882150543846719502819756334507802065789416761915647462133290969567403376558588605361745330894972537334330981711595296179720441927451029362399124542177284666554190643570256468700945221137507133455579391985120182127561219459137966821424349277622999550986489920163420793726077020125526205335452883344340705847934267002110479918166813997959891092489032351984807520547410665596429186755810929240841957038095044289605431192021118218316433081186189616633581408117030547314494604912455682583673378866030187306257985645179776258359410033816176939394586854599369961690857559555921133186063195161324293520820827308721636970960453131660275758194955164366894153307212677931534116330220480383247389660186911134860493543438410272982986378627997794052062995266211334013082720745279931469309748872453361658630101879092234140958216425674707566553287042235957210020820008257761050816398658233034211615151480042860083112720798967133838991600628895158042952176078500175056630686252222211985542507360823439669720095938498894241330557730222122551939727531427999543082150917265356922627478209630832959572280764875527552755252713061825581045790193086845211329814233769294208957251720102736890778712002569160104566386504773866453198613922661967856879746919864181634285818986533646693770700402028893824238792314990004398971391721831398509593590514625041068279588851646165202409232608302420221667419338507306625788109110776903369170563389024564370123352410103834656968806562425851387584490279277684383571336431087639019555110550589632633567183289375644132142529304786631627910932573041706100723066954307804533833383425339449018007985968743454913325676803943296368899975192670164676136693986729818462987827525710790133491657155955608939107467286986359647225802764751469060584073862202837575531863470753600420561642068038762364077865354467449484425859530895842626479566641841618567112974709502925611722454752292880679606626892076444068788111806271548489430296071309740213833323170867359318348825245431021765752970498618182839848512321733746689315025248186139891433444709142607046071445007329402865278066202558316309779599222631777366025458835161084267509289429110178245021317409262192564948639801040181750255875472813570386548714398163234962033013661416719365549065215577546465271907773597768670728520600656167297564766003412948659001054193733406495128411766586875197137436083237755813263388770725651697475756892712490352238401727779927020892431967974905373795511688733075060987511706127026416051758489403094569717699932379728367932867266301451903715369700140819239841433259886249299682091229094021018991311183610425896864109105580791976363633706795717941101710444812237988256520194997661019158806190898512234198040416132279803377293789504959466847900418986286687056462281287392980992490004515807462560025982849732081323413608746023312153647478876915330377324111582675496620820053701085742081846301769932789668792945572709430270640226937159017208782176167470115362286976012469498125108021430519034646217429337497685985728825048702461928984341320872300270660182443099795979244887376685261761294726689808702223530066144575570784130906384545370802833376777564665285676308669648785031458463107637921124590190748817167540288342252141476154680724499127989210526783370728733687994440662432018428134045978431950565884973649926009573517096483291514185108661590300191819858132607852054517315935289322441751567854397164249052009525753765006681482567998012263967470785820760238777283873521561247966440375560028232334218362936517084677112350530186872309746276119045840135246742132102247800645614634802034608535514399080417775106446777672302150212309364847402537605363694159924172473339907810471632091687464996977898642567571867735331903520627674632685148427024115217908452084777256927670237194241530481288298087839943514778693264253399671023140888999973860727440105618201208631279475035668482671574495066712086604766395271699289690659348319818450962381797754603785006752212128171326434158974827476901770535550830456852759349795586695786721532324780163029913892901259468105921551188535629502499782678815975426368801527304976790161255606608480845854547923399628950813332723306584624926814864745805801516524194228543182220175499184524139381925340869355649779128032691704646016695063732877768162903573808295079324654392934167673633534883195457261907433893697247569189135273076468663813389887059024401668098234912206378848059958350234287154029914003255661313845005742455295361523244867070500014948263346056345643364696328821575627420584026606708985278661200540362063525207630394222371905730218559609329913297344232713671033844685667322390121807519858202509560160135065283256658530438597375550614526284524187242972583066706395568599402951084516837891524522760342030632877794763377107159935952701323992316694325712704358523911418724420581639158479395691987526646610571966960460691941318054801925059801912553119680324344783457428614291824033258526433745556158367738474815835261013198585898921607175009500596601774737746110995904364549015778443463054437511279914263514203436928051954638384915693712183497825198734509473029145421362166120874907039269394731883849087890067325684021842530761698200911152482639359260767805043715142387022223009804742961260456634700665895331915707404795028076324539007345179522149971160023690364523278426420058615375035010441967791121816721064904954517490315197580888276862801645974777160659324127887010596980498073998644525611167276281293912181064364943320091333243290366012732674879827245116294722479272657974729167648482841942696242195007735726099814008515822315622113151783518553174608602479098768799376533160203307048513872595952425872865096128418171052965780713095218339681123838954983836122395601613830486882951629276543287999405890094102914338348070969575130594800260545479912066686746215714037439237618174332079260208402399018695912290093256330378317074376014376397813719069787418635016332309835913750202316125059834213178859389724723723777124392457549264347202038053876469256037759174286532768662851526513001303745703920991466872683172806072461326974648071026933825583675488192542094248817291606125808215704655927448964913435967957560033914321339179471037305057901200930402745273511211319484768941818200544754337215289580752391144025453318648966894886169509184402933492676520408046859324483070296580568608888238230205514997875961042507807073258929651327120332850646376856534705005509497703756682332166994124588644548414249808700973327940103223189725247274556586690971749356063800094462918549330187983838388146879176208623155045524897794580921850232300537721333680424218281117924472522917371389561573588602764358636525735918213417739671484275721324431380984268714885476143969260982971309481127689588237027705566888963221574464414129286067191977573015379829455479949093996674652387328373604238126928728027894660514886990041551164785713773580591920046466373751832115012154408342116501819876368969886681409421037570727943211936149827034700022604566521149597042311443928159601644536018652590983753397589824813690774250269736652029853150244336795756172800500727332268201627743407546692065726120592675640101047181617734759809276362366218270945544616421392322093058489542636593485156437285862882799969066902172913771043779690138766638356002304707461144233862411937344428734577759283955939593008835709284323808961915052956945559861415619667303286817927819875727509654896742743302251424239497580227571073671209500163632738469872180236789025400798249910065141616713329064941809307034007446389276686166426879070240806066429992982485166227145094866173751122767926777555815626693870956315644178901308697707869854447809904852314594021007093705808229622603012939369451148734343022957059851798553031970000917079595851127943470794446030259507273433921664187171210717519569921026610486839960711479760695147353598254422537616797451815273639039727351688413553163802267600708035137470710979185270650681257530972991478375057791625604576195207486513489485281490301365529027351887109291164512640939285170789232589140715458662488004623099002430764561117299290065464967007862213938038505537961691422975457740430277530263903926443191678428644471067165570446496791994808800904986869622733623781823834070831681178810813299450663553211147851606018772191929250603278626092486459750953907004553152268678521240971811776941605448566418822115530204421941889487399786103018034524808731084477895876393885559666492700417906880270177488070149524250569791698113101086647401122955221533362962065454973782352736895839283484441854992279167749829773755297417920618541524561284329402710371821889974041202760418609222681638675887815538006523498217581568792544617497775717783369708123223944319126751834770233780600015751110077426759395326015355877745162660899059071653845294095604497482889490381169539556797577446307778762848543648818040443830210857635565209715873975016516115136340138459738719722625391126323148977137165739248512496015007581380464944468494752215530728388932390543097005822823975693755931707320817047184970233752272852847702968234449196373171984290722595393701084092789535592769049717597389382329663402292973518502836400414967140155230631060354828358117174855976050699742219282086324758352862852340846970252469248425433945621430031411690700723736608430574056633182898979796320972780489297257490783894505725272306684583851488836572996139651274851320631523147909271400681193109461873937128144899406691156839489343464260063370751028455945873386798848629068388319726332868201506894640283505410739387705739497538970085643953426535674293092163437444755719740370819233831100281327483064990594315749193414842885720245532318667826452365033637278863850599922794911803775439588246443172015330342982570075884340846496620802105682685112862752208171270397682036359791252442277687906075939168389210953728037375026333633842977967025939285934337277889794418930901225009794508536518127611196066914106983949135289648578044324717930784307641588392168520461653621170593284718441904848088195487348509391836070218915584605467564402536514216438447992498870173714359032475256540081232789087227208556597888762663563775645420155748780025485103529535921282405424991295586677421485176139288116236550444920577197542136039176691616089358704654425860461501677200324981738425940580685844949762295670457813203855001789772191037841978634551673615884236935791362436519777918825577919295821005478524481831318844579421795775549699689008431060298234299284643732067435315239136444734809572216356172900932367969581078649450849686655866469132200168570509448378328413090504198398128473106586689326887242873530940054484247011326887970028210195543909840023490884678172540561282345338742088845806696073940157756980094168062719590769635666653675071653286208365122706846563766221626632730351756124663540720608637864444211427556147480397520577369621078603106673388528120116694920561490924056897143935815369288279828081768206567220472635206442275478706540854123692075973167214988499369635512087275483762260813117172486896555813831171834887161578833176824145105783028980391125202288397895642235521331936562879320970891291652618563501828970628354805966273608931573188362896948110651394644944136983995723634731558184389602675031865502212880429397116606327739180240278758794074288854599393307413656618771194068235819530064504673946291343179132865832273580041368202890601249447505577086089782633342795147152409947642051506990919918835100032053209163250244532571041140709319486273425831459294731550283094067845665225177273345430546771873293884298956128770041549283357596809499852043016449183523024087256882940800731104938826099194681504930296587949455795059764098364052353677076146931319997670646371300939519081439803820033674282566023375860389868167590380174180698011974024994626143707626173844790902748359493819441258555418524547459489489338378284624991441149505298665055336675494459076342103534678259089157448225173382586807336515664269645672355064240933318914992167967427087981489991346207789470786690255108531503449168564349591756079491301473573002774048238264208139428929402137655194078903081288074224171571922598848056407389690852463994744116708703160478674971181784859759139986056706282035101451934210125850508291846208933628829836070604140881990786760524635485190196045762770810840673163276192056539126594004902764736958919530108349090150552479305295094924368206319736933545916026795488055419947786511662292121629110053729282947079377993044970668939071950381767187246036172350339536853644820559032840863844619777441875488817149620742881872799548101464346874686541598826464385237294592732547209218198410342585881797613431513191804578828787819487437604719072148763848557084409277796425045784330130830546589567082570626074165913293780444637864952705656194794773306155475962307022279749459873272324504165931703920366357804485636893695420838297378081200522366165733072928673863408620952293781378823969546192249741018064021579708607278482854646349952382804538011387928873659942937480847374281418580260792724559841049531322887805568962465086523491751371152661947250711276008388476680241965821219201903919939773029147439640951749404046516125765026932887532549001490415927715876210364420429847464858910653411765408450189280135939599355054090640930674263617183181933491369762311099552524796722632975107326328054897516574911653229379405975899462322797036685266817409489704591043725351026395460706469016962833663933370712637092683108946717431634211991374425724096649936148284097021917191124841700385967465638594824524974764589234679300308749631253248701846189416728640407924916391733481972200214343866665584421795468112103654922761025534813036344011404365697216491284731674558720427021232985594741373278629785721963707014328341167825744219763946888268534183378347394460912644448495525645078488078790731668804473328695243418324182070405495615685699263109801744818355123250024548454871772316844166108539515628937679448677701075341112734815120860827103752417890203780799889097588403654123570838960958272293969523814780655690291733846035016413376448136069961090538192398658503101994076377349743137668999328073401194144575596610136254193886382055941455939542681987617429075784684462156126327341121432705756430687320583004637906852939400738586367246187153924463869250599250383398357589992257415702971740439960080396301372366132865235779209473439591557187058117772779765854752580735054920514143109207653487322605885727095437252923604156989668164666676283540318185992138620884339755911540155665190507554670550671455023840081779566094848003357414423205238286832120399421500137762507227201729348526062066260606352131756396494915974639683530671545462426267907260405396420215885200506247174529230767975180118274412589457153664415427704137055507645356829051159651104782546832126964665943633773898360900241309983855458355904462082475994697964060397686969520858149714565263364103182200449325361345259621136858329338089471857247649777214369720852769423852652221368516119110330113052035343240863849012414967575143198085924608283429891072186176620603316109198562197517804473374806088664241398328151602549408082381526949405164100326267789249143996747394522813388040269567647297672442371637224770905591816948950949258128875736785948804902960039215831535289099892002650554080369529929609217405736439750921199312775661122251339316814176140923583981819125562288314191752143924050468637998429028386598450941037289658750668657785135996483765405615659217942097493179566013430725574458906397911921402241319931897272981930800156551516257022243201997431776178267532936190329273841386370982520731721476995658565667294860284100563487815974710791600241880819987943868285592757183422652425317568246236136586798985022452964025269133312391109876621357354641643061954826662171176202122630478021280372312416207843701340121712447547426141977953191239922665572716380222493067704590541360412318702847188639559042111427248113899132083663962065491987284015155315767967288661212318182666408663524538491169359994152684275771932350870702924897230224488834772756890298319679172541977581491059677189151084825711507564253919362174025555234116111858002604595207162141442646003194489303876306763465482938672462965678293040950709067568867381013150634065639861318448084030026235894448131018575956513058610613856660544559711482261927941375051519011536309595467444901654115529636105844425003668532556196962618020671127561816980957100615520714379362108993538194034931932758040893197558688193947885440705519451022170876533433505392162427537619615656354881282964661548169338622766388574588818021829510903291895480428919045009497846172739715826088074057311949254112636793137075705781530258561116103153855551908184735582408771836130184326477866436270944911082255799293024601793724688261338255791138611737023180169370159294786239884796717078095966629549245288341754456006664699182069980073574920798111672851969078207613760716330374925986726964123372603928802416443399567937566507358849101880316413042276322380626289769143083763902917148173664595169296516701305075148525102430902956751935128997008979068937962786095482604623184226682638913807357254260613938328172783205658752165103641201486496058612127547500241870902511383063012165025315681591437509644892011188706702956727487508131168511458635427635900021447626458598857885657154603928267004974969543524329062503625324161082940055523645895403693894664351411304548362044868353959815348187689619890739656157142944091000340645845059953073417202314201854238109429020484922272248152444826393779391843614328329956753939536492432348607061250887933030768266683431844677106029461891231306014633770129901473051635527313189763288493945096316429406206139649348385204213451100965093713876943905266304272197402522703638821094118903044430768002962632984580317697950211962779990235281643089054884083874104672192807296234516915642039798076295617874614440264570325930769935024403324724309238009625531922874579841733530885112709782074657709685540686630212104491854952959452482483787254456002914143267131849208373998558110843821876336936314007694580462014117901974793474357293400851587992680677204638317087786008621685613755141881017716484233979036057561957532406488064858932049045117758980992877640591656898339168962531342067753899023702654261373533637757370463659939124015184839328052095405143755702488321643863475486865053576215264541386713002043110261817737126050592523848868023176382728922410694135169627569739858945703062161644811241454385135684568762463454447591988984553285423892851874182344434665790398059049995982402542646206346074000469198280774789899541982227292989754911214204194463496487793991683674994338369603436261165809353285272814899765233149393072838888001224741293457436411480138246467597544208723200858064481893741157917185778586260572878430415709035711353791506815158320602716457062819453232859778568675285590525577064157648701466287385329502152111147863884116251790978481200489513249581465989864448834440539466286170113036584270023825490086428568959593566096598632559108146888349720329130556057879371569528878381369887912606147012867596471969072207460408673995441980327871162561795122374348616502716693011761687734485117376453366735110932196666679167778721506723419512734568789506934819248217411324571214785643584292674183305173345968417520691039358874485497491691710135557563356634338434864524921863105208434162855286960855541620864434082436312297169537141460003698856184899767778090998329887640621078608586351376870355354586470331354117494386349824744164726633364034629807607365139713557413066733489363368757953873873845391516287074619648369799175440743605836718663360304873601589281914943902401119018389850632643888629628565951755621932368755454575391340041910988898294574417572560479431164566505210797038559562040466307464563092110223650210239149538079885071790698706313105414437602651673816826363739640197129352483990935978409404801303900384370428103382531475698278257927153811027599417553027946263847987847206495368871258417989924876212057717451728552832431464091835489288810264839784732587008934906117725240153296154660404618945454606435051240538344563373405684706571779203822066201547111849000534977546011222036886689731161445222216504609456773061858232424140288507219193625186779301002669063471858134703988893097554592567854142428366412651544460879949430112172419330081372025837264803398263868629868235812065341640637466703215004592060227828027259665940093111610710445501117559523529473038205245535788617323462706529390827069620920910222080549863558370839824760416687938709862561325925999136763920521509137639523807453377991951746301188827273535384415150329009950479787960208576467652779727967557310762423223793745282934081780505796516329605394337086247375444979650601212290068702970628042587095367815119653970794357883716761575330391762640996654658797701471779894956122581651865875516116126883786017050089979374339044346579507727703812866419550470012262401924358267904886765708273718338216719942932446540473144141828835748830067382296916552821043445003250360989900848890588017854892180915034340041957539279988566350003668709485101018316104860354796833010981969844895497438461413394089779272533583628868686500253954512981028887438005935476400060184582055084109250593795181336141288034170016963491192327630258389868786932843741554654114080915048500565500480110148956561957923284026829540340377142691890713755942151896508410770281936382976777717207528752434801951614211672952452694036113407440193623240863921268727108262837981014655885951093452425077237368415484978671747689600466388863432787507406792099111569847203209687993943086027569108951865300388409534683715412527690391514814555575997868457407391131678473536846015938861513979171415840976302440417967063496176023646181128640173893595444295382980372618426011845087410064110365784003728799654037899220568867820156653996227248770208160225326096655169685255418031564454049144667441207903049321478060598695659393425476407039910043569760062883741052896696576904047498516762487843767665592562656231445752494835907389511435042433076697690009429005426393955175320100770856528020412818262984536257892345689869801827956699386459828858141290714707582244221850260420518426380641389562492846352354253373111362666352359878212762304384532568311524011054506219217646393935413503071379293153952472258493526004601728488406770729124603984255825506121689163242932359282879880378169910141290682635030390863724668055079412907582076203241131742644104028806704827665303903033837945124623417117997791111491794589365716023420302854461839913304049715620053978912456197958068723847116213345355639725661128754314309516613342836146603683227986228910209689301157720914137194967795311134086063809829204023067277772307889453647041225673753729709207256276702278490318665592368649272276929527925534101457307685799316213888487413334931699816913053541267336628255439217698707244955544017839253355144861982345057119123892731877063708040791388157041387674983877543195795601452159958958033344208310228139147764664862626311674354521097905758029315945605805117821204966997701678886688092835910205240482885358433696679426933179876060834996623282549458529616922740578182919606308360179768525011621257297136382147591053039108020485622150067732922439586772286849613887974034467315519074558381708909331525341322289854082492705999161347282402862290507214468376471954547572740820091683184114435787921791883809354587034320399154872908904557416815425652976123065924699938349077480091913680855977280738656131927506190257430978578084548028133936138049812903565501602001319928337327409988905763843346759043272348971754567733054446725794511410128215959496890043150831533517170080936368232162736993691352008489090143065272839978542424266097344563085756974551366726226413060982817939219832359643631419199090554444693555373507852834970571319736407536784799737517257065124381171209186545878384642894315767107462433628853512386120776609767740523607801881123047235572133551070746143066247570838078599003098979514059444692107115619959133513397647375164591817250538149127255119600551594835241623551362947256925444422301042682571502503178888727582769606887959598926716320644062225925235649488710368690546886333295006368073452958442089689556352616102754956319218500439299033863085478364303920565510852367783781310081928236130678885333267525319597080517998179590611511035651375616542195454752668995998092908205697406660726501070983245752084337177696261400351812322553439074490884737764999114914333252158001009511529004621252156101145031922678499189655297111155666159744548143225808186232178281010095520555920921103539165882547612211891789526834048421955865378876581955975730052139144732599060888840854879593715475445942086159519059241505265833098257250608728704508274076098216998059114530307772819815108494573609457578130753926857507026620726947365798757981379177318040791447907427319277087792265328846821763310291878748607376816628403436526062376351304098878879504165327294387272615278869720639958176832996944307027529857376839641730421324977553630934345233287068154449292275240082290472064993702904539673853597899971202815240401279915112500198308597480007189797404727658158055604212090298134057715040642195979954412847958343592567097716846702119633972799764958189001350526470812443947632301777670450483335853478878178661581193437336142929036323940420214182398727528293453726613054920172583430114657367158205427934226268130902509255225783017255390246530344094398589073194039079425977775965213154793945361749747716435511816904840878971378739894529168164595866889960670056850186301631805081898427824209166106474481316382514805563771116643712735359596253634762496110081055762156216797571725140059712821016597607522906419762476212350823015212125328986379641517627718130500912386467879559394919806551142534251291787317872476593930255950643764670759885962015926791313314622230162214617622376930247750596091346816908240466021912528444954747944049388119676241384193391609052281856156677715019705117135859718053508614362556010504442292036940135834300949187235816299212443770633366073922943526292350232954893494541938132642271337628758669173946939816481561536217683653847921870469344891237508257504403970890730479460640794113457556265979762299740450989792556157335505685209197243011520492606969110578084466496177216433565729494486640189078701388903131812715488875043099997151211302661230857357447393153645352320783854977874003890575312474399275395520208243971031915931806503776589906654111726830682232387219461231964113272003463710066722771647945422575085530010384049912906429977182754984440781001644836620215626926070185519892831437329117028968571245817617824850831943236564408730538654839185948071583384820652946241392489565734837883036660794900558982113875087488757885549696160658784520338413622727337336907927118460503820375354902251905500861427897135685088343981866808161591765228984363386771271900346655719346523469875168649044616569455719315581069928557583416612657448568434470228652484730694278751824916810457200933166907863125372128517496157482584303614360880891740858011935046805145084128064439406633364156665914433915081035401949332699021480675030650868665761460363225023500157293558852350445056265888770523988535049166834963339055285415912619556397088438584450833422498798566711694110621675895681022929512668135498814224957602292582449750449014229587693514322899601718120819458213615860474395659998762034452771693861322407961774013106668420081897531317138994811646160162108528243036367586012475575808652853467384989404077484701471193940396310562799098637254691409738807338103338326287280014985266912202402586588703352994842987256031318145553600708192004010292185089719733631307000454087002131226621113427826004407797830005057689699669150486445116349094258545454527440210435022566741866819486965850997825753212599110791659092544123830873498241771630382138024768182780535830943807549549578473520877955485928813468123994118997657446065447646032833008237239655355031434085229277723024729883418245647196671645938575093832294171541154908317567664295264602171157890211117998527756699339372826490983136564320420588008054483698710829192610375222718008448599774186605109251629514311464705324056373773734672460213427071059932847161174562148237142146965273310681623302915812119314246059361274263728480332704404064017078256946276350202392619410747434172793298707244796036820373915269106028522958405627787507866759735922809502635257943539380705520670805656820024626291265736323690481749221177958511100389940080342450793480673817503694817809678579667951341006920592565409330677668651811276014635060575472627098744889723659258109632608185650243382944465348397145476586918256618002600846630973149183645474325465307023376346927670207988500121801453213615415337388057615530223438164397602898389999936180607769753227722260226820977102591729067584181448055842457814176538372386159613727275021870322161298252686731963176073172980273045066379421747625513410054209793524303674493795420721132524977726914190316866489397655028121464878469664719717664590264153335931659742983322971705003257352454162848991089724053368935619017205647208231030373722553166612376538966973057260273824469702625977744821130464152424395154303005981001414644866126442661208779070477980644751285396478903141830209668674640953917472939646316255280310026286860896779095845626242044393565554975964528348471140627889702106231893153862272807818321417445236236409751361433032948161936821475162040103482791947581793268896739995605632626278581125338749412539257923928238347035859284645644247081406075199486253156985367007433965094655663728571544929654682358397487050579600724298866064841498254069791302977656385682797299068890167811059908883690612643848409048715707314807880257357396971295299402260259272108286940520674472410383144441939113094871594476915915595752218919850361808259112081192327151231962815750478289274419140804830695670223562106554962648121052600227645016340779067756282485357828929723869639419942705253674461637882156661050676611246193162033154882769401730124885313655565067658050139278076040518269023961162197191078114724721844226723393645889070948550104228824507841100831728032609795676925866360142643763102526438658980188461047388197555164485772477019541147919945841248671386127707405194685050316394170411336183166988903691571823662367309381597965928040860280811129094925180507064258620036440194757450496722895228241966515988859102590693284657231714783562981748353017408518466249707620547629792747585063745508330908558102116311564137422838779207086819741247014655559222776744424670239636241096737833223711921040302440733025980976400938135982957190358007777190990469846800917221977219755410694590684048794540719457167043982888394460776687996022934073236286552987299653779553027845838089627511169710705765988180371309290417331332520228081502165573310283775350942978138765697224805471534868601669867185256351980796263434066369031772478014635001395525703555711715811660507940998207194357894765843920395280473575226996254566669338004562495130186533877930345385149466913689613284957312984678567148039071402834211344582406911973697467435280232898610631674382789434989249997622055521538623792927158557697622163046503895297864270626345174460231091890994117130396304257111391646958434603393611987531126907420270766322361533478885826643711946131554592077089825803307180568564797214928090136317780621324639855263001223370147053717471298189879964980414513743063237710377860486721254072279026268038115059095731412874770125303736618422671416838915463176315081468586337596041882449092555225202075145020518272650299767373924874727379745535102489263021603212463260868156943581744568447061731765829187001196459700760320059456952667600705209082959090463255322401884664801924855779708817561273977375632966539172463379774754286348752045626001909131194485264125073886475379822638696543647304078060515727774780834169341897065379703214862286216117311480856295635577294584296961190669088940799346180223052490950586049815640118846081674990772118700296194983307367200153087279172668657635691013758835131626778272576373816831852398454016278032169033286369359708555625571508075053265447476151259323806566643631520147329141025029713719817744184250456327427575687773594568791950676139807679118536988561473188102917408838754835822815466647593529898424615023951167720164103165465827915413371507434178952432046775672396150979033275185912786581832765361815424691445860391573269582504785466240920511971426804020763432666599604620399205658494433654590288933794889667964874748502618878071517040094548260716568353228549838835238407756167133899068233728443011195250533148583491309548314732525818111465777187265334071753055960130284872509912556673093893497984594049912795867485502589167902626374564069992018056115807969643735580751222824728955825810021032856306773994435445557089420980379040574968664578722148385381609387883329393428113826890842249951857897879342377633981973341835679440316946227534092545131516120653351935084850562736124863413135822417164149236963741523651543071294580873540649408783841115373328038551820009437546001158326352820365220279917186589936276436659774175449258015650964772852527310702478508287330192853182157180534818794086849723129713455022355594591006776660362107688905478640447062050985767238464871328498806004861178720121861106648296014904060216537867646974049329229459543053547245332609336215765247666797928348778449975281323133948737293184026084669000186394817087548420768658184539883316648871511902930306262611793071126689733500710334649294441590452448151518396134563530808442040463958620676030270658498914167226781227504698375611901722627255702297496629634749922923833807599147247196156468184069411391048779982971542108209909141285953914101028004070152013776275927794979910145052197599971304144612965326127301567176152343154649421804984616696721463065347789286040023187136561771766711528657217575070461790114988584457131491673877889730257956816140747053505547871008879175229497204833457312225559716362727850025506605878881238953149265398946789081201717187649406311174802286175309519608704910376111389570850398060022488709068176516849553467051828878191730040842312559996654428498939522997749719882786000711720284592957440611319780281056423757780999716571314272140486913931351029088589847907841042467734017016416023604913448539376268103325385816839642775948906796946191654097295642092658863440479823146984371783984928569912094429749224442851562356546118986684375991954670429109886263592015549767349768739272552256478317438793231224876358102046569923222132917624231089034948887607238498745001657441869844747596730200389453124049692791738455557605975739837322702301723194456652163932343552167938975372771187321978822841372843922234975814606556665642529440968165339007405743007124254267116449661797088720669790538551209965563336716021708755290095995688413426107583184502860440480834780144392717157938038553562059699966787489107810316551990576713424405367705964872321253218057619167717252652224325390997516433860575674597978769399606678739352865692490359699895663897308796214829830230502910757667242446898478401251186251792069405319571509539562998606506553480462995146998092227930084817672438250291667323878587413375239617820827621543029628088618991839591102887635659165916359158171980667388348405712522464555714755720550163024766035335672002439544104055320286620152588091312584825848566973326165959144762214431065647850344104921489247114984538763042257916526840801386301361843835815612196921607948430375291863880875726369079564687574569631750908280387327342186671957882685768903654595528123452954081237960412809685633752362980064592327075962364163455884080336896823598580612633704571156109584988600347568348540571080139869470351091810252281716848705657722944436736704195155301053024396634133040752136518709144507263904254957621525198164429894864073867496696499083660066262696138422442819920058339995092827482442915625728309220927025982307227031465755597859653884426629526379558669634515547367681669204934032786958195189430459864764295127578355149053545328855382497226113194832437905865907450799709482969924364820363383834381715592056222283782108343714956340978450301193798774089871444412519241071174854570700594438489839824167102807068359785840687517398977156963208585400691920684897036378755310309064546496831600766637483439650636828063539050142246890903450636145692697781464590703760044839173781014923217568119303559541596399258819053559384403698014474016821434025896756310556697575037710602783619391815513009958788769597020419744489569218779924965972067369211149725647104363403207891744711984815108110783153292466170562993344363839901712117053398031823979502631824392915357396684682880195056350887941120368451912877846804802320509530510688688858285902597760278766661612661017276924946044494957318320843799972669267701582449345706575782332583539308250863531750638384322430734134987727251110075876168776037391306669592608660141604925303982837731231386164971267825874556348599042545195120065307731342832574405834346397543785372622130310289977639224033003219247546766165618077844340774730221065310579914345769709308410071449184958601000080594629567605268219850897145025638534222977148409901825907172071467775233263337735959713883525209894191479237410525176359790713475874271991902091963591221772559266261025609945411201048837895018296954611114594117546015445305012782004353003636816870738879724672036872298586026025913549017585399128487063316602917591158190412908900587671485815321842525167107057572728749861218497823553151899065212974757689378543107033764345582282189034769086626953586639809953138782909016733519382154755326908625816500275532169112591064680810816028868108709733259816163305857145246029641761260989845360701972133870827419042496660598956391102932764834009035261724737714096395961696586535076789876633114549652584998746583964327717159525570192358181004935415584382404197627845948366076932694282565079861503302430120821610383896412920704006438065967309819751274169685648890054843945163602857712252005301084565247462320465242588443907164696628146989608714638749882944411235643108879221743111376808330733184060874962575362696856338143581276205735639022708376620886227103305271056995421655942947680356045322204087051030903650765137587897642390878543676402267524492037310368269238393050273676675122967985440240287289688344919949657544423295819290107796174583818335525933922267000532933628466597835465968181082668517504629394102758640519984983438471300797469412329708819395361111292743235950396396337755594570694242846564167947917836459776950651134615054433486937495759461321114145300330816608273465516011324933500312185945087568044339734592257099035538933788095123128881605580353838918008724033782812335934670872205034496521019539839807156719505481520290617192330218204160446532123228681370632246393575379550107281126005049466762213597583625564101996715687049233640372764918035393774714281221832077641970715427747660078616390702300494585272055033603023713162573751403331547668497392823825105855609479680177603222256710914683027947576454473097035747095251545232488454303116497548087638633157507960028188815460797949426691437623207636021365589961297418447958073930830507923826916471525752445455940516159328464310719968168930638169970788965482528973222172639599470699836512510433778032766417929185263479345207393226404267288095550279698785836133084779774621316708785520919938401038642062306353651480781067821991521054347269804371942140333812053505823965106581098444010954226546997618658306042461805529194727979219461634389235122071456382195918173675051955251583841793138293547069839017570505851025896716635568430950237713447102659948511049810092875049315638421966214111930713140725062195891405110787832114398979597891714080369823283217696301563497279690004238691833006930604263378541549310286333586066696989886197366842380626659755237049374266583874235644226356055663527652558172573900681732932034433228082047301588358543025154418029199209329827487514375873246722870941337236251168481880405129249754309929536271716822772876420686540298263996317945533529077641423983233710330591178834987980242863460469850631697823327556432840862025971768413026454067611236975140259254749985983927022847864753277614006090870361156730840216341322887759291978799585789200161785223722026695047983436390209992824716371696320612954613520832441196165741167571481744819995301129588596951103751271938343496317032890158268326942414746003756265932494379041859175358930119138947973051721387476925917534442449018209613723995854568027289456821505507838563348733731256837771975243468736213899859594927731201059512572849946536261080890223574611593848248076493553288467741626641900251481991747876668100501301039160678891599626656094777065518378199597904145535407833150455956741059307021667402257303963942070130362828028492986669625441832111667867296794525401910972019331379991920724978071557036958965279092742880017140877938481450667844383821057175903964907749391156204947042370217360090867355429510493293882945988413046434257459608299068925255192670198473748115990367701838180369655656779409394841982004118137060616721487355269008058512005982329171822668591832836624110824887642184905358489224788411475745654985280699025035456883128168233647737145011043923279623193628812652911248673409946977330835885639943286025157037305819406815450018819726695511873744359593910134027815740164672956696214756527128935252881752310623521996256646670375502340780958174470683144757103448181615599833493834872903830819227701421773505828246508273658502523035943102096807180007100604580828046032666456749745359804111637040146701739242806323270620180860853235739436402973824413869337219986061144434022711957330149547510422280167835465352234389863987772122723070770187392001952159912375684828856807495500637435252979014018413030095068287335294628650275442105993954705044904379765498050413503226289694106178900690316886485988630513681588783175180843029340158166141746460747084318300132946004261875307839245665596514573196014871587548315223400303153389254172342096148098372253882858109906958939554995731944689494417215385904151252603450002892938358768537480277179706293380156029096710714768505656730179014559293846019936993529044948780026098570358388164723245619317009000086850860683251692769313618844561375454330750411681846628841190523702070735889643374737482996840790357203764497259364780024513522337676398414415904156010051944629821583215641178304596900273597120063910751866185616453977964214804325440037238578651348164247931709249479756759579139285062141491508723864885550058395287228344535235126250422471071681414205445926057115402475519855426435132797925668614831130249502254128956297268401211186840635931704308827495354159046509786250014384352322471877883949223357789217270521767951745915680725210389157055529095925110634633425280057596887692485259134112428672309728567077360928210742563365227979246226244438626683075294939108059482150044997237019151219917799193780110623106328650111878555875602455289482549316411902268247801947931622708867163843879055526681895976963634113703943792237413936596847071571669222766132018417134367252646839826562306479181599896592109663544588632002953113082112144946357731530581649954513467855286310392197034152945982447575899119265361277598670277514695269777096724766123701118657053022613463719659046912407813790680227874310907005322369743348899323742780580812941119293620728447556488504814068036765930177707389932672387782007859311856342444945792878738154545122637538086905799205182801334105058410183482825977921027207249201213773568908113693675742438864041052398267142498528228586166003515346522619339756736740004792075658582495931531613906243637261434164493805927187660215737186398884004694454798702700945617108985056281384093617863048200041047608934228416616764520815548142320669580532073988573616044830340176411122818043054646323341387054495454087666536666562872515740320552675405821358421458625094358480494562743586177466134018422952737833079678189508097460077556815182144859300468785025144673149941190795845877208755244403760992725515161663659374183596849209928684068851216639632313642340332194732810912459114908791595196753108946784406591596964909253221741743203917670395764189416701379356456065719445886837356487707683995887340765121262290626421949878187984844993857544463707551248987148536380830794213886740616743771534264478697064628960442562748400496876816523102934960215124305990084527603615055354499352059710432761214721109296417951537536791152112228664525580007944202851577850558238600490839958078492678805493368976171890561762795204043312098622226194164267983658500460866611213675952550697230364770732690381865183032596541307465983553690026228533247821026200055057037201381250525457840852444815869965664931676056851645700688462771181036386963442197795389947079693283990170396210355156674907112107539474128146730863883145083645850200023282659001205828195469964751225458449490304236192338099346307099051372010414685710067409642013145964899383616856064885803567509142998087825887280156827060998266991181872374517239585683771957059279380470692442345113471352217410268572903517360561104861625936761316975726292126520308837570534026480805358515192765844181841444968316850292846011836554062203561091051462578755095646417440739426816793952767988717255918928822733958011631552203507128288856686032070059529174546033152052477566422440749168031865190631110504855939832795295395018016832970434681825732443991612423320244446260782312719570242624160381252386984322721777834326936878004590841292295323292244182846264847790893131473559101512094145111282677215279107274448223456309895201295691505034913768829079226344260849593478760948970666346020886632996014655399804535678333378993883483670523411094728940987765448743003601517835134754998493211052498426694118932353543117458096981837379860785412612079687518604029019891869730940414319382990046394578222358289400401053467397485226620412801676946142770882470473835299392279704147545643359553958638559022550534656479893676836120560756779390009271499921198096693701896501971306494618853193580055202707133335958047545980193334444744655634726639193106174211344182179192121182644542346125294208517108713231831899110461863122351550271262525622430692337527730354358815892223291013819221155511335478574355900391713044402891194105535897668751872579893221919313029120531929647669460139871317072901566465980916048870761868895202286239567514105391062542851597882238046125466283755171645788641281197558984804282129937172252470487211449142261240507787650121453674720453963984310874260925797373983745764490686245980552998649825971589977826309623976118323005606746400591255450299705355011665084939486133940490210784268804647226988038879469320732385259225280451925714550016913845758425129217860624465235416942203139138607982838723063917441952136252098365016315012180970765804962019705742147499707289193056962204223405658122431342513370718675847368463152902573856057348824837443923265946597848914104296091844248180820122680268759986747805153718387139707052558498156263909857022126128452427477294738218215489308278484218857614602031010105449497881533233367178399620576538818018220322566146207838893746302075786007801234308878245036858937905362439075589435494404165819401045412822723531798802865798500549525171128639134275843288840023694431547071289046419515864749298391867417916533509986801502509425274205375452147504906359545654917329247770319637285006819679047032906067778648560991230332610798305209824312049199931418451525377053759971085196201379945871848460600659266707008275250311903308926862067051407115016199679808826627364946498828340482982685742855077770866011010783260911033717708892045490340401371509639903488358123397717939203096682312981244465536827670696809059000966702873635107648492425019958690375679467699951404161039923398370596445308057919294150662732157368511369551201183972516076998330916927209059075817380704051285463342909947153501282298796870527890454403782201222075006031032408263874473795158000385761336912624192770602679886271703899845777901355135607510107392194830291669265723328435982669817591761185563885858627890603236728593227237892039746211420312107263006218350615433139438405220707157347046667133903420583545022503592015426803406184288182674615651167023134633813547369718565152863083291228838658092293139235459361438236801190126758908002397038579719246170467795365040441153223541971270597911948410564219895588592321430138095795346517606190088374276209037445483749890624302511969013986571837476544650364696379120553784399646844528870883546563008663634712632233774824867130539512525858629543683188725965612450869451594337708122021514178945833301019771042814088902855465803652792550151429629934034031981867340266864587646532012224707964179717538086848122594329919772159929162790340468214399033896138554640488971164492403926573241665883388503365351319879062952147899718982602476722599942273158466374228231129072524305135929885528899656119154400242121352718268390348729711738005999018634371903299217508317318550467143121324500947999649153163705699302608420109113601351377297035030091072453313629857263371142397223512468507459608737686731349198249194513031873129882783898566269990088663079730120580262173995483286328781470410185227775219287872202748062983087634824119674531532043386354009763595848910918578737135617860539539943047623159162313782721131509276172844393634852240220623616679078737894396923087434552316231598536505730031601748846600296594583610876306124600892946335874517393712672218717536909908794351332950580293492601636666527523580626480795480018058018120140247519599749137590247169272270250027133216337023678552153973698811839592937371167040433796117540118205263689426518864820243553354841981145758157307286602143676881044306219932618215445712385985473100215366179502710129047812428738674600162309672212077462720135410161334779813205236864630344348295888118329984154648773279239041383760129885856045790661756535202222176669490452345590185865263593860629287752008645657607086763749217667533992086003586092453248548192128232150119785791097245641338595293304388063453598046604590203121406797613503946847397028555402324036676163825443388795062900065901283773503317687238811937313930686696799513669766764583157617773268018105992854261396879175363609819693624116431798659590921560310100653171114116233682111076552189576380721188799256275573089347608925271985261954042634163380391925916244515185158401974710127034580028503663227727128614129091523432418383476277578562993373087589567820849449310992865161919884707392173815284428645078409775001655514581871902731222039096049476809083220168167542394635750898681343378282527221780095202107843369019692530390615555175573088087467899715118218031394472633414863671537005748768174575568656658766763469795233171006004051586780124966218630884008588057846925463041923375392598426424159111255395782694000251443944567799876520465963532096551598087042769183702419926565544689354498838174009574426417645922148927346765493371534689231458796429646392937508768201420056211971819857745049199775805253156631060100942687725575370550113677107569523715118604757340743789704610120824022716145603769289158477530546212217526480797610648198723958062237667891607341888067817102393968700675079285824308431763073523050820135258658710793886659244189588100410700674711774834210527809679148589586760412242410149571704677178261632015125577759440165522727756153272617374638650622936867824366216910809572964730019956870399898012860294627533303186293573296342885650119835878210069536035309119612914389350878974309234730654185536115246149700320458534688086662839488719300333034389837637976043764881681497208232946124864170951507321706939056826004348207041828441077367700172873439507121734032043900901245064092853908928341808625347949060095169825254790077762493184247650626360419718913667299671592742056731361975381477241689628275574716908622388717750678118933138240325794791628998905358976036174632268384480251182591714311829404493851192143942355779283631627588721265351225151320809727828608877615076375058669738729581581228894717307901448907407421461371001389763082716021113862889958541482945174345627349332749490895502586594564086215054482060909960281790574141354602495651153918817053452683978722609074717332041447020305834754086602531595260015818738812856931939256501509392538395032041187579323857748205661399916960443639096884343704316026721495042846081145128054415509416380104303864883313513066569615343483798848896347987478573506005549874532697695046248358902818513884704239913665872189929885728593058614101242392797550191042251492407566168607085081746714400136922079968478919988509830587020467583690429835322267010816890827566369335379937284651406738298167205087725183545281705360898974975780011438880667060291623111547156536620876693338523514962727105575465293104889516648420009020931901812994109804066711465149522161470935101390097603707640287914738315664048726212113911245747345104207132477498880593200430890874315188183020169229816253993006055653671527516334483692293854373691518235075428320186225324046698402790169830957386510675795329631343520048270645283889342269704738542982726054864683846258901183191999271788289058847481259026491210827008307469980242662788703314442607685987757675541049600429535367532283610860237390418112142412123422221184049254107710616166196351177234943437695038641357109712269286582791992441214860703813333415265302640621332399357139361210456002436058255881396725456558722047379387837963376373331638866494343396766585227964943732040915815762608044277210329439115350686531352662376708517252962045832595231130931512483139134746645621363202112243228849513536513797889103510000828812889230738843871851481068886227009891292865521577420165045556804355073192909109437545315503092996512195434110761653992769926082552689465887159675966076624867985161896269856982975894822672886022363489242752090440342496386243142662949763975497905816335696879304555938529902116179730239596819941550249629693756150737062918366676716929709897831261380976343881386276909461456425015533227908344163892430272347864898700365241397678926406948378893928676434133936101765384160473305319142732805154412434945852884076655645198937332044814454579320581951568481548562560913467583776131358805585176332402800281465245350174617060643669739301020678428559533485032874947172369868355644912888697621590573681215751845125912810608104837355945126762138375065448660417949446704721209099967829933226057441569489614423420372205616401027870085913317333931386681886400532695657812191241427552553050769581395389013435610622337678581816832303962165659451837413325482159458351809460509091964062798938953312509421792773728067467296453306600603046019247231240185291043584359939559738365998760012938089626161668728875650502929079863925000177776970566107762834857154551245471093828857545328669940543314884358064829204891919078156676648668041455935313768347934810326058066677620124456968458853272317580129030230987963498685811661812587494597620368177496092070653603933024994026910396422378339587186985771137505645049451413129294063021590440128775887910437232994393238360406303690772767184839782998535169205669123656521467538125664083396862778325775241182402506498775087624007452592426275531381682118327483034889420349380241691067417077465880935629560440081123300159343824567304932965373303356320069082561481262713662651295438551119264493794730081063926548437580048229791709131643568527392998268051327257624862977442335829964958717881834922268543249096097012963829019982445346786586409098798649210672158924841278175890837791965170056412960909906873987440555591191037216555701786246491751872132955790443951967478538157671328429623404599597909987499231239871610039349607592451052343782734756401637376447271352407647941549537458612211036896877751658069843563269726239513970547884719973343025635785620033059797595565820820500274633317118502103719422797812716097649243797318910017581843862809109689883159512877427971139924615733792306496681327844237787870632054454480343999171056055154017483430965283564999600499955421254156165072836589188087647388310883194676655637859500597327667958877322853507705100358379226328994778307183130889660516959161513428236432606146376685006417043449917192778501897001080293331099838655217199357792246695846717742755957660503137972229576222949814584266612814107891234719414674327178725298907999217377998739731151655332192777288119774271385116764145852718727856934258168741062822135505364634553195317014604581400962495370837175660327257232715819472076021617037840588688401721575558664036576834945583739651532518527958979735720065383459911736344919721997952808442933236031856041514924491691322441121888709128170826932943561558818895647394261781777224724449752880208163295629683781474745323533390314991293586181172642155428472189950411152156785861786377376520941083720458103309031403763860796199705839737002940503792276454507066422271893371955130271610126329426976947478536686147966720450669608322213342290612188751841981381037240658580467232527917209107380920815811190316981082387193443587380052785062738436676841736299715657208259747894005291571716020524387754444896517369962631666152502481824905615180728556952596685834101430214761276673435619424372394646866964194637908899239355971466204169783282317353672063385905389449658824890154764247642506381289525330971154944393490804642417528425757992157604997035803645039947726392380836846494077780057186176911553376340265553173471008323545555330628283256094192944188478623126005647524709907475317246641460682700830648223048486668822272187142351363888451346064755753185892523160840162910008676351596242214885204820018576042533609734456388303363938144616229139807975603552882752468797162002949542675975079109930359310470943801407109510424939918097005777604463313061251810701027485279265326998522110313909919021381013058740773723174699529735335124759085092823096418855895049055505796820501027896502540409891956358546887470672581678900120115956507835437957922078651381864525753552621508471146189195918101136438152175688854275128542251600327740817260911837041589558726803276758401930350209351322451756517196164554241421123252660532058923543808069207849494124188222590327901688448515676174280222968220883449700972758760170824149877914167874582438296349229538574205176464531251935894066622096068601482428142188769267118147724882036529015040838415378023738503796479892349330940720129889296634162125348043824467961434155638468274815545219289015960887014426306118948148003787828006730349322031393644464934774583861295433887692378544304363144694418491399159783349504484915389404675375506068363905008522093514336175407848816048161928410872663128576591963579859426875575244955105042258027285370225400280871325386250167725355790721461643488098288895875217264605626748667062390625604821558485751530192292014323429635325296312600879576975690443772565847708788422088723913727705499072183207899745977545171658597916061185017262531508059322222986357147494758970077219318942746416793062323843293960626674860696759617240054010024190013658207427526584669780570341872337673944465411727835830498153834474020001084594127551830110737689958587344836673026792606008908917352128895914278440614713386368027005782074413475964223252791430232309162388930715225681875959351280843943727948460620227801860015512375295599834443108080842999824117699782262610873256406249214114101379571771424443559332895406184454918281170932394930580966429939510647964896513331483205613085791292512861903543288468495177910173399874878751412293750347084316377727255273161165543412259888985829955954617002100139586802200519476034422003739323863509724312381881564966409475472193239900122151360545070780986066842550764272827678400082535720231586527607527679041145372425789849381564960336594144810788478796540851637184213524152694980573155245034564445814809449466442927490347579518057831876942733282086841735314206227124043150501416576107853672366832746809263236141521095870255012564759334323629324622812501666721026774067054214329612785475389553272340411142967221814178109358267850548964666164660189182298608677963445896368936803628112780443130529249274515669857230646110329995112869971609477335301902735108978822140033397728452100388791616217266328730612310919885311203026739045611380815533458882961253413291544763981390942287003372362727713306272271219480668696866446098250602566600838838065353850366207816925319999807049293859934048172196360631851819409013492226175873914983818412668626149408231578371753981962973796095304467377220559913816080149278904924620052841912991505138524745384107905572086786521468356726615770191645103815295126047060516990138893035230805393542746609321279122784624381842315620493254126383157454941951952873421022982269411466051025808292685011269549505002696470158105723430276268759776266443272535605579101435316282932334909720922359831940806802218920364966895592008924082242506301609988374956493622905821715602100612295094431643480894037059476965625636401917584318112592965343097587042643519434649458282242340013381606984497408107467934625959157278177612471422723695143618577293959637691632975301075271049844548127529147440018997945260108494289781613265008372273323584735624099025351871356222199434608890432214688670976437385444212960068607669080482834188647928915398662637426552662984002555183788216298219040604001575140554144613200056982547952797335507148344448918305571692258194635029263018317219773535214132705013520843423923022218616069134247677249265122432365976928930040077649164306094543695351525979232868313910559190883214473311079106837996407890832069287827419910012892589014765336957022747930157080787526762938336459646504197347862240856819355260609973725206130533731365659114713905615204069062495814105904447452274124955066511707131998888703598549530138035759914486481171668313260008849912084966010810584709041865576240239301710481925718633255663003494619107478671150549808295536119395615578296868273631069748724934188922142172380870761402570659144254235370363981404380927942555079640608954934080756010064907831773579662194458772664443998706070708499766646644515506896041663763323793525873432602594972086768440560436492437627286962982779197380317362697537733313058946937477829555831566614446358068104245613779436361837094796180519389092065707894511190093237990451891610531355258870505455752985208659269017024215420446128106485868944840371540147401373789015286289361710934505492617723371380974618406437181437036286043542011166375343707353970010420864044151990305814271039517904707374504905486580803999983513138536608996040255937271159826564623783373224911437694530346339277915009378984978449288461533460160538089816230923584761050024124445352469529297857303775076497604730762261574606369246131086987982173877958921955644431169486276714115694016513534636325728041118512852982142511272888799575677727070997564583267476842381738531403526488403870379317948859047931623333281799008668523652747408619205530173409308386075507387153744908964531113937069527234457904717934791482517606045618202361066317461865730754496873443737011265462893811507556543520881774095247374583129725534410668711982991251307010102656834057871544075327457440067417663255765847029585496021097530057443091872024136548468521681034079107812114505600553023000085132821299757320539595352332059756503392311356884608797888946851541802635184681327937576439486523985557093255425808387526549505709818981287570910224368645004487375251890357058282150517811207114584053171597224664183894937061720060937889300477685485597823202726944446478937218004976235599435993612683709951494251553108817533831166938532744211966376414980579776677722622908557146263409746542296565805579247938857499734349983282555438018741670599449331059912942815606254787837259362622933112747599031230290902853829513003351979908083594280415791275696293831813785932507837356859342658004200780810299952889458432786109535429030860009581425272370868816105454414162933506956266665059430320736438759372962740762559560743178325398337196528661604417042432406304065837053747747045543027907992964342202139103950869938117265327637026858332459230712534544420866228269712183820633081604904632943426710930190545155171476266802062491453819798270652804337101665281146639544438908535559307255532437548794281190347041306390493303034043289147777398917043710328607842327840221470970046902291863725628673479084012666118050782097263955159758976811940596091956073476924082913269967177019191889716707374067219811009490179071011993534578044850819440725949682124992960275816249813019660627714967304813793405602979224439925778275905140759694404213101321019595417296060326616735888347827668008767923273811949679540921346154464733978138763024714659003264437250442120976598441221309763331899022990024945208981450885389674216088673520625657892347037798097054910403663160494366112754819721176262420101733496784826850930364155606547182190323128837159160067165243390487297238511889477776719192788100361404097950665944694600544730076227357536854199348265547724515035300090783466548465983357229206709904557851293978888684160369128416607108052606804415377877556085480861656494011327011571081008401629126195780149782360018328260261671788794153242529561630403703440776912158253983980941087213734040841191526398723308740189306157406037927072893610589025154927425943987440944237032450858821965898388463507296369467588206768688789220498818103530543837548406255466079180872398037032587686392635427623161387895853915439771103304173844420832928504094939066601156308905289913938360198182949530974053977073542239898667565322159477339466581473612845417092439923411275059199601063862569024854725517140622009624121664076351851212504041844676198940432844539064114152668803795574217960525568318293338739515187715854712895467887140420504188869764561189811225032256056667551944305444960402250955600027428926413577375703775731322675051339279535202946076006502244959251556043712721889360176593380709580619833791646116575508163319655528736018927231855927833310141769349920658216369957257741204808016176165098452572169563111184471408438043525369925119360896183331848032031879058878962662502819048328380595086905579595944943760642044991943519273680650981986289140265397888265701439460811926860970735890636348479750318670769843889462031302141555218232901340700586781223565667360473441984370801310869361605186271811321252609396384731383457644044031273719904631286096588270769876836138155101497600598666273391480849299629290497956402196654742299513046707025534518092490077268375178074595966200377944580241773172016673739724077954379098949282599920552176101214111351010559515612837087988805567847060394929340118876878985660559802122559825385304278715614421296515192954058648782388418151328496719035381731666526986173416819784604039367618505812847171418971550000557504592777837975174202275737066990972570735313054969552166596216448951452791165354038335157524378973972285585869666817656922919541005949095950503333353437146581377518237056414728968371665064255811945484554702066523451310194168667910741826267756495662253609350061938805147978623110519909018505967164141703270994198148509311892001465194918627074758083845549231284015428745870279016996048746236783477487956966481064019467899735679962744830014439693078975001685607897511664760803540109457190698315604907556308680990014211574931512482777456205828331910266827180692466442335509529236140065209044037278305548400003143952598475082728363919326729999689630097504615893275724865997888754660414243319293933410076803616973580840315508671821474287058026820270412117152792992781363564472845015918017834185659049078033550682867387084705711549356935762416128946910361198016200293814591573690733653939221298771978723613868994324157738854822849122948583376741488773095752623531870581976977265823929837149361790696182845798483329308338318176052473670330189497898834467426769928760444839251256393903805268545362694331164258875537407777110733372061628721351045022977199488871063217566433656456376668172141515391993523947092998199670565567675114184834211717838557892612463235605292444515067790030167620956555250768918087129123211100554512622964383028740746336214648816885314347282218805438599588564303804479305949887490724378125916885530836949239670210490848200818587799736536717908593367375699368844553689973156313449042167750386934991758789990082898464812825788304625322819060188277067938912663002010452516694782921991422867213144591868366605704681904448634552163099020347201724250380700653545891456219429578489077987748885634033984165859215109722471952990777713743765592622518451051901699815416370040152959650631560187836019602842387376482826737846343553281622966808240813144330906784037152917819516400642605583061084109346188822385754984405512846432219211503159499921763713546232221720227209795124501268255798001588887330959809291625331195777679194888254930628046742702055862949116259510533568935829814762588455887818425567165387448845037349458746349165190610973288071142891424033650721083367806126175983150418286908866258859276318915956140137133977110163005639344011338436993520145137464627801028107184010283223086674827793871135500518531128574738631817330608722904569071665961282369776069476299875244262110260331340259816018815536381670628381097172275727868501378523516454326849141464485269403681769243216261848146023550627802214804221271290355086878493268845808278895326563138915825441888941573122017093438199133752813709737488106152394451865279743804049655265837297494200242218634485836452637399914545469806762117855402031880543796414223923679918529983985671015122725741372382078111272628093860465976563285905491406624381316592081130576181161638616710657463963866732659394277927724122092915445387470305494487629219395585591830619096218294770474072608184732185579060285167932822387637224099097134246695448006626746238693177593755767339308631970414981781791031340680722568153384958033077041933161976555340494944154770007712090802433290300580819494736247011727439320358753333495074660129257343597182239274545591334785378995748747224727486451349776475166891835313087028789817321887879560375376923889768136855617415410588210122280413572416590958474532143604743385176494236261171578174620995964414558492027007328547935553100381363551478737366440994555077629617619126349628082039537364083154175896568778407361619963969800677350789157331577176603535251194033102978121270518324711602299279728023048538822119596299248336328607277701553458209467650976185571905388104954950509893630261435693946321388405495217156497475370251196186954511182568446090156956618747144058210423159326658762475127471813624378594436303203441607198860588556204701796101663593402871543757949061819861492906316514535074770463569142682641763308500992932558366313382169973169492341946441293303049895665561844630507040916391951714869100449887043791251336133306288711475959273465479479348478124373793873881050393386945426660951668954632319172803235369084487594675366969124199996545033903410083420026846780554264589316149620622136314793882610208526111947616608958662210883691454118203742710810682777425196461087296752867413958270888397848093972911396607963755644520043327671655617375130990466803331268474151334797986259694531510889733234392348684290556751216727255696849433504250016534966953563991841727519539776314174189278032619912157946652293115386975814578719283898395430616148464683898527502344707185872352920091289821144852842014467830406108203788418595480212619703017609137682320218899605475893897047355515699456728913370510010619777629167864044004816479058120844496876426553908672500898502853481995058974427125858948766549235010376371697208452878994235751877298798731195906283262945709311647541629233274231854037721248455120192512276957126557809920723053686380910473753156341640332254926229158049844306952671150928544829251808379408461177703502489199820511613449458727882473719575725656369058428475072956273083144586435506012115444371771214858126161839155384804593103679063455458372948458463287366993994013693372626389792489027033569073720520083743784096543356620450452782883634788654891087514797804873745228574212273204582747308423346503031827732060920602261745812861960222435125948842615735994261547193756455491455452817978635767702063852096591040791111517038037062186075626683038807119069857333278190411897040514950385441163816105207633507651906722240651655998136711819056070991415478263324074719742452481026223097120731288396537579050724106107274413198568554893915975535166345869795470970279113624925161395124803513851415254718814883025221626968643752454215492654413884060973474877010106715675309802849125447805430842775554129138947682679987636831990261727697438007847748888912429066016513901116881280659139698199010041291962386020353277834656142271336474509861284864921532096076443693063904518475271320837677887009482771408747197580357474332434870109069415995745724769385585896008226290202668719059383172248943789657304640346726724243881006348607568866563904317855288165047584946277490774736924649985225311709988815426832234329463228192358740600044403320717260496781256740506254996124719806216425784659702079507719107164773974355792623233472542774582229937966701033419292346006403434574200740918826079868163850995485295747999078480773933506157735690658534036158153785653618677770933838237669461481168305353130002967835678418651504097537009506527262747704546872967002130415146881890906399376330434203083156641183321513985647830490681660235487106572388515128840987700453624199481448360711519721396176886337305991712575543148122113087559359757531887081793061156301936310579417093565902979523608365620324675488532498925698415381634525326217706424021559239972003753545717879967389030462287861570867597051284634368255512099348913375394912279002329789281390267135633247857897980808323684451870149254310126766815421872065232002729291858845836611792883170670272131596349863341371376700811789967470273630903426006324379418172402198663112306757957726703585891686766903885502116671185042570462544011366131428264584399781400602180817892055704516067514340063951520846710256846809312981903903542610178699615992940135647119989182550578145817433332576287289004076454078150517658265955301842457883915110139807940253644786453714172767080842017875584689856869225154123013016956525421644787057748379759277967998558884144282655228194634358084350571646609805971764936273448980272024601654063181657356672619980360771723462884990301545252887555227845642611804253155091581565974198074922708551460403150603932736415680792307951309394760572881881182330447584514779581165872598857498617211439563566632440165627623654312707437593178672564628213082728858695071231473872826656785583578222673050329191003227845911584658983008221446679471331537587886233999466774443127938044422641916908457470195563959113344221764811606105528098990146032177822511946566473269936311578413336258102373631649231649482288452950786695286920292224032582365376873112572742847285436156019701510534907466549077838352537029799720945319876360105925250948694100333217729679100197179660849890479965288613143012920729330699832468515087606911316200651675089498936947714004360014605710148190149567010576449812047523441743524983309162445303202719493502548318994277033361535709187528891492840201396592664951243229698643383567290109807082035099601318240679486855880818429177423089942213379976282750545608974002474853411948750972562372691719766167159049431950548111479826481330937196375610550888771134567550708848873494960330492362559200999035276974306563366571178172806971225312823782378566157050367640996042321344685034868620396229603941988026193527524264641717309982822061691725818128358190319724694719218022013595579347937541988739207951230383684766510650077853166926397182761199444389281740120029911787130964513115918932325549050504972929696649579991115141442384213538820664485184548568658462269202683487078670075221808979539781832697285546614429329197550912613041281361242441759946550585101136743783580016856561982189455374775972430781837572082299691671237113848495232384745727968414959981102709254684081842449946656370269732011973646243191226936311863300191632804414843084379302901265086452887704724861187456995090947217431601157903268000069942179534331326944762455447731423127770272422531120279365440921729703610147931009162051051452239869059889630147380791504175196563524137969976091409325651175403526854381704140732065135026456973890872927817657018140599923399998545260202527332419924114441294998473571483341444510414307144009816379787911942014369239123986603019715759599131017567751599997588529795195122097465842050965951552770058612131142353821090250870489200329581765292587755148054296814086371855018211116878344784545399817840865750281426371108303554655260012249524701826030914370060957693943254422248763325212381960940136124117097366998925066651706646413675209540428703238806471090295195032211576123129852269193294489162947332334900701670269316510285273607985690934958546094612830361591038881797561989787792317030484201579380268731120813498959025638304273008657992989180972521193170202992868130045445692865603420045908893358165235657595562637135102824010023195983975978761415093778826805811128027870915958904548469133580489634444119111046712553459355315843775891563893935204704440531645140571958470450642111199551275117009281665812520957498632965200554532987981440717242840595814201606617973298885983948955802710930876045133434104528982645858755048766179328106372316253523596398307747474617605873129118138456307331370177427888279355862640952666217996314986524217525698400990901396223659015476575734393747622365207231462477960359262900165337322704108801621328058466724919855135892381694829164550853120358201196140217694462765652452457720359752042801635284078861979918211143464059196695058240497003510604741012740604420099966068323986335289053517768271872523742173501371990720410108269010323101249173627703154589941664957101073552836168002019201668745686151484752133922850207217247308692106610408785590273722095613988515059911553215425925168656872438799260121006136699141600853618875993346407676476158584200625624384748927368555179248169208309605369284072886860823319467474981226779643483219558447192796820566754787311468173794341075785740664224818514795094496752440358149703783093726092560314508490237119683250437055778288409990656956517201161675062004483118835913386119928096132314354825505822516165137752885963864703503294746292414883391860342294660714557625873095494909005549881064410310017609366227763543027836054756208222411377964840140724590889565173711582038132628848500522330913291597938068510658312203338976069992553860108626414015596014984849827419972034264993184758613123704084207845485510097232630965886154183477315045496299211307940007127559973710407982683404349325780654465042306866748950222885334210334305169036018796632433641089191432088912130377691408163442470543505053725321470310314352277431330713302940262506010997820166916852056628645154890751792111956072829714393627612147894520321773762362035780024009638379554749300769886820591193357086474206705570434962565293519480737659115286596757835950676723676833409555417272216771805919622598692738865163558452510005702278942052398497544879226565909073322413062382437063809993337153820880415248395964305224653520448999283900330412571028031100204357447272567661469635593360234138318432791262968243643908304105377622997005099608920665443824839034352313349801765318857480204049848020233781876535764816839253059015800305516054402753019566876168916275073639527907265015103069703655186641672690938209815045774005892834529070138106628185878165223085388773898275061011883277045233947453492540321326859719824540760702666568273734930450150897677876550701907430305078031656103849070996757932398325017459460033032508723555394337413920215871250152294898340910342647294075278273390158160854407227487124341613987484999320295393352868785632011943424055451776960393231269221544391830704353253029059026414243517183276420754177452246063251370861312056025893920251406221515184528074221152806119037934413267697340153746769363268235038353290663310957760523815010996544221764483105786946982497178558073057408945708457514148367848396632724535856430800017558619037300634513057458023896154343008887820578327666612321225446501458517419404227376685855499510090196590312118139274655185185723935972562907961072274911178944036260069247801078632648154852099872412053372137268304375790668341496437609715344982296706278303884363801756095770557414785908958035263339961198348549372884805457551765054142441422946737141935451711967068686264333155975691058647091490498944875212398658603524970944088282753577701219487778924117507165045459336843013675133726113041681036310652941034972163721334322338912497581961571974522822597109205496492243653857257478163735099499054013933394376357959792855114661764394463820907209844307871443981776197296521169522127454720738694548384675291239900013118490189181735889651702999952172640670125415321689103835522110631271231456062416918118326294138063466360444949109988213417099099853344018906890641586676307281170933797661819836900978304734355077449829917653360939808456150901048048488172490345641501684897630398871932659679629178911343630135696655560728840188174367371576651327248854521533699085462272559416990015198785618297290170646316023296255695824774757846132835390181811518199346143459562005433557697829657089449819939189265701172875502223655075770668406150974830390291885171609664931067341273200657242977449699164757391137267716023761394702972851753158853368531497159552206895634591142758079963628066506698557489068568766363199514489626771414990446128710661646954129035947141229775033308948677739569834788808038371388402419870887074430961942870182277403530126126664080844751629855344493011878501212730371520852060803775788441061752346289216790049852808868050510256975025921445772871585563278916606146994174505362050204583444925342679583941247992362687976184028675280932772516386248410480593675102359959118174774066170507368442899731142695926110500446667979630588037602253714552430153881670777687486669473544108351050868690657237137777130751968961424821430643768407821032801136302693942791678362736794497030136231736516454803753414923918081648638850866970760526255208759624019462333385114832222481157230358644825328655956174805357766934531806389232644571902721248098516635079442837910714531079581671633618572429788137083393651072045376983331804558056390913421726604903003963995114632473036225733973200807954900816242126969561501513457583506867847611699516647404260845870101158214814895844604130812813456272640663874243757318944942258114332414715902074326878600467531773440257691301968058535664883857292165302570990996286053524829252669189867255324573525963885574356241221005345388114482083537629208831740635798245829344552625042386726333957257038303226464491977528820178482503270853971854921684609428817151146513716856585005930345901428347167386877779993791011523342803255538346843798248420443191434328189612932557947764779554190917005484320071615914282516074357375558357844680813686949313124369755029285240043433618614117494536807378380249662590325820300608295730723455560486592853456719890789446987175426103636044963700754069211490906074122226996616960876675485420246027797468982084980502016655854454158954416542941660158209135552404351508829012815061438914925639433974704874688968349191813003728228667136162255357557816704336991685691422475550654811240813390637467207755119863945319841501843421770266641201487025873728353819052804904535383495794703507370803173134972188213933081911703896237038876267160340189271504940455745651714846243398722636422564854685386325415965279913431274265449036156911184664840100119287083217402988459225110575875990156634217567678131236263226343777451186177330545617168505988395123706956887832314441553678638086635335867385641670010759919099451442322882199358844132979278642669654979471567097499517942759452613707359726559662044444500181272826213152564044583246753057422728618388303161475699112494312676706177863656000691091891574662775449874472809177765507220890066006416274139498594412710662709416103749972381023643706641711980059924575964430040753139880801212990374302996277446438336560621037269139512386746424176505178270480868766161901046187391336364232407789739592350081745694555725854223758782231282400749452563650256930786666123256688072595866047925016951476388263783527532111896622311580353439038685430280522057994136676622214027301641159765933909065162874971016931273533842177683577764509149822524714135653786356897960823240525700131500047529185663516164992092246971911099969217269453603849855937558023085626851677754755202239152361220539215424773246919454271494070330999350260732089146918286767160729532684294536254137234377867055671838814816582987299803883559957384134804577572673468741323392870386873608467216970116107408212048572337211638134472903808258802608504193186096706069364268537885484854108382288027881710508662146078300219358804169361232297376154663679443358322826255679329495534885540671683879017366180801787460000547722432975014564540739230683140698932652290991804566250685806408739283463326726586334384899218218715142781673527810119851543729638773304122780042011609802881292394415662434676915418068997259710794391561962731012194946057139360360287668521150010962485211218797923097252480873713892006610501192211240527710214057424214501049648399987718892378555484128346030284902032857528315328030505356507659786432572067203383951617353692713098795322639640360749539495713372665338748127059116497406491529631007785347184114178503236655184235699019808534591095440864654374251784133671019558898220559907101419217359662619808614750178705591260205290278447032141449551330158351194149559925568986630340222136449075904518846494525981209651237593514067145546772081368624595876629295513660016727090813694162867973812446878505208961694871665444618643444321996451226469388921742243598624974573910888314676676075297686195886640582164616156718588453007681776183316080471606989781087708863413801625010060680305066459498740471562250768768846041598263805422448017731587570159725202071699479676284645685150823108325189284073391674742903316450451425989790892980619525793422296021930167719306516699467646005119952240624167341636838676100100217312888583859674077487296136231963916199531343621963216161946844514845590119103594057892090528927241470312841659551779950067714795870577392302059741865503796067713154871763189992710164890369963137683130430250368931627918927488998800162479072355567559394252796326835416094988583195745288898687376002544123792232686323284861720018670151724005426170834008490182258875881381989087341468883223040730264066858606610577936903241940057713503718820843473601341884877874487632809265640826549248519863122929136284821627112586292674140164916185647422396118564889813517077452246939169377467329427846786617597663728154530925072427914903806386017654760123375090997854875871167795091733347639441118147377473952430525793912157700926402554862509003321335633478739895665793880642265342821480624577638435119387443502998502684399506641232102069090157670689264279763146914188778955036067172871644434676057535066079103112159492583055615397159933178214646680672285792891632905806407859065942463416123173742972631235768131336777710580098199611234552082210954070713120476552867964363716979662870906703523090862052832047373613182654613979957073775640204641259726998255572581114652419380581020742927304945814463922333913396442028149554078392728721125898792479031618347957773062412246134768953372710207167737090014843270830721141771582259355160476574375804418317391456606413362609702854300897014131273197741666754635925684162774621262818416995248668016251815350987815715768803211955174427182900345565133398104342485033986580674272593745878738037657593824500689263641102486603079895371468655183491180196303493432785939220683661983772897581431184777843680555142065523033591286443708905050472335318012345996468534375619685184656710419663663129977465958160465916307789435081518379487976459488145705038319629531347095277182404729987560583047753428352705817353669275755096755167261425189431635585354731394306815444566246614381811475456944328231291394019916286670033165458252132077243808450178354171390953050282879740371215691195608120104294404080558450615509724102666604030849179771909140403086943138858919410496606304482521065246426621243170457213759724014190459827329420020627651257142411260313345719425047718503844289047390965559571663888840420308516430338012920364436237566736502863742865897733270827507168477784229617965562961947447384807401020940318764871126639920318835525233431614787183555022849741802799274276912166841449290299861761743534411017699591920420524846271638523108333750809739093913887255950201613927421144727583610451690830228438373452994453729979287897177558885372751022891805616190055642560066073973590107313041991764243740945349585693495784021677612596350910800581418827736063030759539023977674854509020482827737099869104356840109775662691716494651253651087561778982449364037344015077932819338202964967415345291088245779200379058136955460238233033962474374572414156086055491619405061255499505904094323589138508766044091825072618640429010134114777012918969278596151743841524745277591038868172328166506858183323771142811215445617142771587913900220641048564133078233530636453559428508876754018966900099562921957581185239929997147695203445456421067688333533339729060607364718194412081062687831609232875191864399119456309472236181264143387047199744781347559756537457304493965462485096713456434726899015261277297736328486346424744463479821677369491757675426302236193676762539654186815492729004654897420717612414379498585294888121089771131771688793269899130989247589754980444630146758808077255932010074259760570950151800082829651617373377865661050242437138630411548829273109695824860198958261552102156687913219104768123787047995180754776148268151757012779874176413139371319598630082477205201549165860970107845247748262094349034023314245054759254601826533359994494150583406266373507277490254195466392959595867553879411998085358372345164693886157023850251612988233245757190547366315299511880625498341595516048341354143859973992587190102596161324767969186379256553794615820262339679191801619542022017062452788744192824360354272577958182980308168397738626556631878497311578918399854873010398540963588603814524580555050991530981536235624978871458884760869361395160558309156104566658299263696302090298127495616581740839851250997782669038014105155275210513070566090002482297652417077827115308647037461106298317075392569513693932489047874615734992456731331259224872473122224393354029431340209753446786053610136908007137661950313504850057405353043122229223354890254460153495789950828416893780865420429478848773227076429259402177084753134475062827578215202679714514176060161341310346433713318550108659850513417123477953568762701519076809331722554118488986262034868446239606093301639784666637123124629941779912125273412245609934291143406245847306017242194309256469547367614797440145752695910955519670666938892472216595186869367957609605717945011974488483477625918243624245416459346861201664893025187163874196473562651615327339316817323328821696297949193059781635354043804923416014341838523502706277618574169470267059689983965730120328090936730999249910045518349658082179176488350791272306058253277496187989036399368499024982013052507382341520883103757769483457370639134191645712524853934660071205417914300382277263578722225719063580260420727686009143804573896704967380202965798846365383284235589733382104343488305086246764420372006715609911372012060708954796915216908796218448084485326505837674411524685354797113543076862832170804797421245886937709631020380356002571390138492927485089067338278736784981848656397324277812954739171926759577159558392656948133804666059719577926248743217334872218607255026398256108513138166927547557137524784951757632662451804722897234643728733243593789329483697352962868887342278189952819267063570176526878424954908527305967948887824598042344319096721686210318750127124638564248111641733725241629227107484004086130052166357255771669333013126847972767848910539045988875901228056915879750269800774921558507005917612361185129009792987401599871851957386198623837703239697420858385040512878833308589142645611911589073910438279498076809978939442407460625027242943115545315473068810128272474271048560779112540582324867408781666358739565266077252137984714854741213047969517662491218299439034875647817101017345757183642796289485676561303817495233071837530462414094096362449241104855978483339722544262859080909562329022997200611675829439634864492512244345378217405701105670868024278920738233069832657730422872799512500714431096373452488622851358285988190878291460083241923152179959663031688072866126059380859486958251012762894609850418536709911260157547459602674400497044172266730468186503782121463800364165935734815752973840249131406584967581014193768188420985765749679871701343979496638571042445782573878833772977985586071445302576403724193973267185939928830007583494999396707181358394942374548329756237000090619286194496252996142307775010358051222536908957564152003142652000245972041160629863591392704184690484580427621601327309434020346332489634678015553225992885656489153735204740024275929105086152087367886444514029437207636820810413650411978527936416075764044982137981489008992405204735370952382206078656238406859686724497961811564018299275869219902933132978040023099537006427052942273387322922705541066501802978732642196010199611274705504789232365891180463335790430058008025182595019867875239219096005653321001890070581318334907622929927260725725201458768724987155586548339942697699372849719126322401531470208416634027770754885124205160179294375075103469894252462882754955973578894388012286204609162344960034853826791791891575243483337505610908021811592943979099686964608293211480918400913870868868313543340557326680216866305062523281044272414319385941518122157383750505037846237064157322226617350075380027716009258411259936590313107833116517095255764253819994339946731115203577581247936054578731510072455192233545177273074958953288264630312905463817053124619114848129780023656066977443526708533893154847599999232283510511509131993871768628227066664228162192716920474485399168831257635877658434376792676143109057838478144668646778397716571661345403335064091881441683651666337588136618178558334109747618426856536242676022874722298964667923170755884194727117067751838943778634010156833516633738195857547778150643367054394308572994251063763326147837157214450239231242880381270878884655487427587886811198520550051409253345348054658219896700414317173179338563441542611993149091133204638029776496090537703459991715466639099287151443872213716283505978952347796057812618515355338461380830774003619327376969031137328757917552014055894080712027107269583411028471412184345085744397329158763830826596833298799016765900250534340603420806599605302102925675217195835544812969486267067361644863666307074133342139162883428905796462919436268748074213540608289001235311660604407247212754713128638510347851657020212734469066985345154108526366803773853409144418514304923003749808072717989199894869371614208535035923244509775212211978031203153866114997129908015112508708968911482398181879356976536710572774393110790287321367771623579790055510469080027361956212696594446167364576157336982038086846529691081924083608414544771185908213184001505190729945252635341263540363219876400261881384416474616344190314264559301120314534264521633085146426916004278599648958472836527346176300115430351545848820048758596910772182789612189025741171742761683817239377241700513254550636820173604574440330039704071922502890156052244739906592124366100647570743847622943366945663698750189801817679433828192381212546915023453525328369135469451444530487561176877527106986229093698168835952250561798543858437984542346242973243050250651040459269056428326470283396836736426152479240180080313179257917933605971857570662786585193255498420014907225474870558951879235316410384113631231312294102871703033027006244026346676082501161502794280204371733609177420212055603406142896428472414722372107464019352682958757270379858210159904617747838625494877477544942737660096042495076746413214293041695867685199928860097512371466675733110530036944483895167541145604285069254555713557749277856555389788863803814803227485531487584667963017573185462528319251689572612486400487489545717216155949301777309443954581341931967681922567075542283639201881601252465559766375203295167064034219346152339565564728825915679243270442783994177340521346775486421745468720605253301914602023752760258318292461533315088012121096951102582891683791550169496636566014534107811154422928359544763439263109342649413471744715909012645135810766093223791962275374578616421345246340897224132522709129970549025177871180401967129459840242543716413898598986579917492924254338380534739550091859542853963812294748739123996968889903703078132201263281051903398499293784002909382577095488311540601749314418338236662586481762026865347823095428504243235114536701100266923734116625980331985655310397593772861857393073827380756317393346913759770909284286533602088147797033380077427930888561859495385314688719447131883311487491092828062303732178773824526797617134949637720168102061266012942958278894748246163626225894913508848238829974076472320955785604846677993957806955027013176058713247998394294789288489078398651622395777981791538487883904272641891787232095535799602619047210397699096158957062944373349179374038387641988014523151113838611676119396252653155604832191130046586522745185176532120077114309361066882718675023314327479884781038604555045849817341640020196822884677898689561021620867023679584506413789965995724014674644197813486058924020341679715694924020419610449266109914103527058567060552993461424182835407911514001008435395130059142697559295332014250362196002304070952132915448891205502972008038942456999991142265799012204239360449606883536374963844202653858975859876823469400346894067774517722200984943459606997873151806495786136485719546620134973597486556419767781903698178751123700137932459682168732955118760815361807749096933760482539405004010444424629074120037967355015839120463532840776793506242221087463211143508615587173886370781843038378264174161002876669680916577423264440214437322781161659637679833953578107857397116570951597665406313392703820671869775608755939558529915101417334824651745484193616384983616693841233817338887069927655416156480097406243266076247562271134721818342526115375625285970336555986709095701161121544156336409398019450285058307655555502846805278433882463943538786803672959527375040448219667700072615442065886680978993102741993448334711316167750834589882646607294323212480068513917575971560178128991473996881665555337728380185677542761193829950189514959810167283530436590618088912768015942878024368080102148252806640231066841597237457737766314364029416075498967271091650400635331227651985801129982183874512073988019122453088770735852731253928544521124997722881992103723577194897021165884687253633168420296865471242976813586407138939281872360312511918172299434257012663585322943989428748468809672712444282071388122902919934577229284663647068180801342687317590703165553129190208701099164254490227040054656874426861789328598122413568477245858002153338010079029381585488055711463956238161722596711178640915389063533389437927626085931905649973820791492044436112877375049727491711617173890994114639614876775562268037587659722925026266032762644765696882566675601403763824088997995521335789390283454319144760775101459000124400179348417527936580442220371644649598888489969705574396839021012494144762662390768037683348722604522471462909816149254739238778561160581013187708669452997620551727470977148459746026026316446510618413954310149226120639642895480355618516238991738470536915329424399833551736549022978963026122410572420787956683022334529162976484796000641267621748373211100911401424549876073062804703054849713156583370039376463908738627632693957738649877777672486810139287038225845515965323987090909054244957658710804692494438721634954447218874785659962770205231425333974143573349018859005253783486710211541205949165850928052285692114666952793861808941542634584590271701549846728286684147479281619479028582532565604409111473739243694637431427904369043914244464459958832840801083019711471670797710994136805287877244667446169514361545073450529510914773964378404246649722444657884468390555091951823720634466282649721073551627027859954795189371254190603251329471682227933841131936189984144884432157928890380848230194140252039523674863972409754125746244052430937729597286745938092677368198688123690456087881365194863645553427468183323904012695761177801249621140891350082857980290075110477179035243951539735739719963420232624538319109933271454276702079015825526996212814276004444549858698375196907392785440018927886200359637508053888133792147495826761744962326974698926393692830170364432450823634001769030785702276161873481312721477934858321544984176040010109364932089625429600761190304384230411060289286048049519281528943740854724818022271871174747152660824200600623868082634862349973649391392236596763824868872023918093907840398500869951168256071929417290327002764438181929459142331863007297387246160192548831399639835926297572711977171846857956878710472584185270801641811547556116557162921559163284015353265836822899830936532968445294988374457270244790310463221293501779477906914484582047667338121021247473341849920923407644683981314175643043330429417551675871599654270171929208460660926760948413431035486086515262521077787281939703384371440715105803803722502271470936357140039338763137932627772332241575673073693451732712423535148998966301105365182636201607803176340030986050122512315453078617116543914188413426929295383620751582259226008528831024542713777231664375056212860274951188365590378069146080069522175809625575816859417686906856435707125241329652492889772730063466827522418407936883935830488098079981931627387850638287704538466235058202031033163190010312708384457372845384339482825867349953711519124413132379235012946768283011993270244029884305793949299231481357536881442357860360260205531882559512324758528177840493882421782989123005023147642318855664200388738299302651657043239847291959988776818031969379096080167617408063252189509270080770210579714004322734957803597748244425290280278501542754227978131772134994921509896860173499071142596247288752300810828366977667199748060490579696464331555183551906905856329002913569838221549637642869062088425794222385775806655235859027530145223688627585698489992775067663450724962467234059774362992924332498837915834850921465109588044425868767085439055206187324003463399647500909761035704137199315852644118876721758343376026454525998639942609616169802850338352344321202839933416806189155000960135995453848269308559093384681133257673339203962623994800226740722103833904715254386232075783403671949080215263602379134024298729889431824754090555643746702693122678171097241211458364255324870492423755669688798732988232782126698202954319553994309675383889585574469874985791685292102044304544585500997411313820355283728705068852110557720735282143258047071693299590841668595341700622498807583615909038592378150370172930546445643530743039407897629049809735276542316679438820348275842580945737504867007024345985737233190148574939024173795040989033818611305809155907823905331321146500374072361081061956271830409452838834444085775817078572758988885889641829970604272478946135119849535134502207943334404473319031384848561030549599467758103760534030826787619723347709143430064623918308285053619509885362906064653478498504922631462645312938009221554832670414215651155120048352851513907354612308986204879743767066083360953470869962124893469961414648207527528822867909869835589762512321562425175449921086602108744574992167372378664205123071770359085954817984125711969812925158111615157472860311868309230702508739186678113093913385385556336965297847482261778021032309456927969339783523630096941468813433897305375867538164671583266437271123129010298690647768946004343562723441132371803344966122477502291751951746243893270492596557392006597334800358518401247994571545806604983903422810474644690626709272418973023080879206641987024848622973928969634604252505945481743029814445467471570707586352420628376803145706759936722932951146925140509634321012719598223461843170683257614412567174076351092598999939274282438404903383643294420433994051665882570685023799299048675726576280057767223580648163394879186778713056030741757679797589709866047456164671119491645156933550266339796352033631038268914001422989014287003839187008181636249716215419344595906078503666129490317514310501413303130557876606741145247437132002358657602713268749462448255212570946967192048807205225672675598482309343346548783596588460872884671051988071061774913787057513304868085460057829873892498258864165277949886258947073837037149774157755849166420853508454936429914670690400693330940655817832853284207322627256363075956930846206440941837849976932525042694009972904020403936208271732646995314459332938317763770818311986951236791896703556228406488019509835479554358235500370657590952672285279185827055641308465433891128028072242937645416561620826901178404699287841537162849971122346387180409718617158693282753951042177773069005288210849346084382262665595343161062457615606149921250713653949223775146592536637118222298998762363128339923572412891929372535909537587164585378957889442998376166038371958570235252341156516574602014509679111461111024380382314069533403706849599248573666779067436850448976128124802358262117573632061586815005571397108261147160970630997073805034832212125669655863136568081810615268541368899107677466837969002042941319588658076888809379702323232291404071677982420339616526200694011712800510689655722792883295976964296134083747145923736320298331105313203483666769976051752263609165370095637173309022666078284697325662865637413663174623702514879317431325261033429970848299832375590178656951605052327447783121898056299332818511858844706007379832698456157472079184786111368418633393771860226225907461114346050824129448262352715325141875728407706829227088080139847895224622535521554005291124828768610731476814376969481399113585874669693161925079958960666436146163032970016182713226367911646319764011545115256790407934354495793398299281444884105962303865084564764806094168436728220266288876010298445228640989157880273515159571825392430067197559323153951311667102542949358682622695646155792734402795674416659394117102281594703157139757865544849205426656578555319069264375800334471665190778790405498859554460866845085369012225867580061105742721714376090913430862777522374170995416858291450563247034748475915021328181558184661357188569665654814591886040574794905197716867524675630861689443300946136606286433006045062053009228807660009806763943735981382993914110014682060907337920881509886830437889741458628980845539494964811826512981350055258872952588464399624767463404071370642978219861264863367971516648926297663143614842316499574910179639478711133895574703230392166749029133854635524875499409343781722899017400711561534804539079286605464230884066128983723943194047430688876253852317296275611207607533625484347541763660836283016133182818461129880799852818730942794970056379768206439085757194675362613887782363421916532300382965168314053925011435388149391007661221280526127298833179299282022036848541761888995354467969672860541718821726704045892769237457187584616387681188399556418431885115039052370230390532196204157621941430438758676358060972695132787329837007737494265222532049826597973875869923930093303322056550977780375158539183627994410248352053283970578174936031126112980139871447706093759507246906586828845107228589147959230685536539350797446918986281503123131712598797690085418425228015131722585035899889935516008987523057762128374382891021267717676576599993184695764053926099909099679941519202218336070175823308619605728440400499287913767596188624310512411711335112482096510687658299457761288564505417844128429104530005008818182120153190354244401227901624021579676061566384247819646416602902669401844018588698730369081112477488157436802673635852207786128552766259861591993488200402771545412663966136496612212704285265568093565503606060694042630688117262593104660911404710163951904267665986426602002109057567048104352194461801176810894139317471937020771176944132114968648985469585672790833305354748239240925380623686647979751640723903805655635141446092994901200943313631988268820301342453165854276564045605536192150707656687256794438766303265760742673613290922015876304935129582965427580447854084557804289628855850660535285886565862815323779409048024886754023282884034479722169707343638671659214918505663701835830336350190364146450131732400649723990879752882617504530296350079226785838092416165820452240888147164593566743320470652471295509417284201243935172919508437465425500155997237549466946202786187674024127873192844510415092161845449233808656334681402209330256243592286180372376658169464293014977063050389241038456695291176402684712748664594862696310018451197931991997013311452581384256788610026415387253576200157796287743750659751006910435418892655889039710159681857026008989231065746416701590263167999353163972383449130855157787328224154538609677298441064780535762718139082145454959439923752725799786089487245119291878069826881937625650320461707613595160356132212135515799080116333416328638135736626773434539460176871765243980251199704588078562567793305818807929103589103812364303548605301471308874216106060737468991474093258749741970176990742892908370873386788121690245181748925623227061020266439583795463379374305722785589029627141627310232481469988317382007407918186508937204786199057652922255734168206395798337572166039271367284494295948172139335514470319501725101586085712712916070305936027135754463888463510872839416889049392999758724620601619700859513932073001085411139475720716342228049181287196205780167345145524521475386732496446111464289877792752490257648612473402024181261654440431645750838104971613260916278137806068691664279428266237948430487895144219384229748808096265317909596290477605432009514428526620655222594579507354440943181597318474510620486663191872934483379253113804425716693424887907296100360872712532177881154017326018957314949703792902912573203948038181709520634122116753280953629699516977638260953548105685056817731702551440568182951992044024710290789414528815888679061404382912356565008799567214474393655308042678406230190684829474171648162645029368409097182794819883611362192642760294876212347431818245751656580260325534199257136014006387439371468516528532920660900791454248560318580732561452833718727419806385563759271965856887601071668471800689286811301057146677217234228332131760632852693892595976079314390920628999673511999728726642322059793000273524780805688522023705569095507634639528172747279208446028964292142741579381138678168430242257637301961796658970831834603127482092625200304852448219496608120994562849591691924825065626376810760445252261759998599152200972812547275543109652316769438662023603178501094758284416739920498593486172974285167242984910233866950296025486431300310023269756447489909865550272647750025766770738199343320122396739175115905860069219435329737050032194255652538746184574861853193257335626697420153622012989811415173141856595381984173963327702836022461849758626333250460313527840401398376135770169001151805660309881699713998724324566464393355783310404683467143934761916646416187370184295158304554848384064097337407766171435327440749785365013924546219552766953014321639210017867877382651659920202717112134579532807596298537942883038200100889520326207291959277900561879044620436892062721324731604012635965148932458875936213313776019278194687880794555916449404683003670291338859759912562865187906667199959219875726876357391007386816572881088153849893100298814508133654140447037862712191350126317739144995667476018263195275750484747634638247330108208335496459322645823519768993518793066098885605437575112263180486622646669678355387694851819693065078202889279413289335484869214947721820620139949101446952845055706707440728905176327258858966717520089719151582254509807412123650611315736995436790724609186542814803814631853862949665001608918981439966713374282527534871119255723145777183993792172536160871342682662515642231451005321515384742715401434734148566473739230851988282108397664968945576779527364833554865598250141850349188014093332360849425183019908422973867865940614307123852884682391319989513042099862708075278261633219869057701427327588848654610001693843695117894066227402158565355279697170114766937104273559301494731994864630634815620885403226016265797426346977380211596727370723049129999771772614161906227656911017593979550802101056828373255773441091840299573388937995425979670558218382358933014225069107069840328677151152176572153913695275477240045060743541639327061302975898447800104361979022709951424651721588048671728505419961984509647497396107169544784867751945600663498435732130639746642905352588085370209942475064429550548604019404333266739694508608790942568173246732952876682464329897148173356980374155102404996824132391055082767756432934307289730956928317620398550327972181902513277309697969041734506818235979131990431995940216312172594171952163448185856309538976553042113269698240509680973668735887915183989972180141459536045784871242452230787707330721785988493896770519331451676310160284872896509046811082589839345942952520309994201306779404415213783963844356386108563343630739923431294959439203979444972842272011858371535195366000634588330840489200601407038277424025616054904773659164762189097117604522817788172649990017375852693694887549883084015167211569128368940786236426000711809004244669277569623369142073235507039323715391856315362093606154290364379177706195655622277038663737600154905489949126276957706981021831552136571374802586699802051120111500477418541376694113217903148793099560394262075979481876433542089396811390592676908030383025115115377628859490922527132463100881818671076515735748295596722307974586028253982751135534263493857989877515177924218124444958612338836692401749043834781951726266037970095151766324871288067374854213874625766956819878161540551667382779324895128092537572679696582108952809398485240880227636358201493585579048975404047712966469870081727982755011182707064688469274789505603237511922487093331777112214985281845081723374683837447763634856328551976474568939868287458780016014346679256501158749711482773187129141187523499097269560984063891229642233887514468344940488471522249390609467106817192022981217662389971036674588732546868980638006595925000501646144800173952374037712257970436969475266467982885909269030226547454654064276375025608652381618376614238945857977200029960321161302769849874225883376642685210334045018177621909775696330120690552854539903206823326565498035229687106367765870673814972370974689116058103923311635539839709766917279168530878907273083627858161574268268509882457719350959206330421264885360272599123518102154332496058605026606263248007803223141495917511871554487878639070950477903079844303988852780524492797653713422584717816421439433052366307012299413855517203820565805352202864448613789165090603407231644368374949705850706572320689569210252989614244763604213428509477015637359680327442176290151049159908076731488624060877172737050450998218551948356240924421854753116138600707034099998288830361050029264437682285095143253714952830342740096272783872325012087582757632106897043686012656044911590993418056709270731234291693555329546761115440186006230235913828793185453324244961154235614320495134702851549488287128823350673867570258292928577205445657538033148423504261468838554506718420608828864590866337252755263304938823809235846523429179482407241858432162945894611148376466782501866721211458271857940793789895999415648631334395169010939740245772463364647430696094281490662705041934396959529333909526064745439285845973298283078254068107154930182642393793293968695328266965265985686757211543355532081127980413074618547670817160817628780735856782135805298352963539369958293377441743431931388077961571699532773866699740655290887050896721484892208975780678394507446169875997327291823482340021190559662108962805646400575316910091261747126337111106416406329931273421037893619313790007513570422782088303228739473547020658622576790421223113521060305820105389926059321447888990543366499825494259224818510446545786584663682208030136614489432118599458185223083649768880548042209049658620575292167741472438025007517974009925869536511921690758074152334745812034404122728779752301318794106855830482992969280615866352758677788569341049855224275466564878856676120903959356579784006034268208439670243621578737386150064948933034906726659427987637980912191147521556852927071448998083098196026554005779799596029860303577531304961727259559895322557425308198507001416948113426777738902036048643856117496651063539815605895305198368770371672200104624977500802560031342719240811546909370262184930887355096878566344692214512120659723027814803635662776361116592018665760326093012407233273700042288365839568319924601296194312451551286987986061296462716551063782774979154956274376331083510571411836484697728995935146289944271512417684769350346222113745921679644927353280417669444709869091034300719570265174751684762008770006294990530154160664937484422450369218382259008352179302124703961234867452586270067935369545524965807774896658111364840187660956731006423702257483585885675017681325124136794625177264380509557963706495920359409227719378705468140006133606477043608718015372011643383210094611584633768736646098600688805746353995769526524020718836661229883502971884360037347639855542037033995207105525375395908183314148349084657085607415855056795942872282896278732039514254323045014270300492845124007567620216139683151660007123570420015675782347426443870391771274669880684868103944198588687401074991923858779892174357460440153757584729104665118044464548891581412023560497351375329862997897070435338784254547595957973833807054926556244052692836223064929578566599899932956362653557194387596772813803012416471034522021548172867378351958479557025224602200980409657699495889006886546700158622032664333967133711125441252675863690697549359157377028656537507557750586464081574798849853042640328099859816268252591745596577310283726929239874609204269003556375589168367479778851198481688740450124934247803234822932716548013655766389580445496427706014023750592977675672745041622723726069543631169352251918361936470203865202440016112717058808517467217685811425033286552741605530832615905175426427455049328461571578574510202650424306994153706039033532383033024014587096074897783301318018914599339364931221756955283873485753613672292938035425222227885281660857999287286364001270503631352909405433940083655012746912116898101165958682940060209329152554343674484564465075044464076784744770703323463959059316108069785699919628501555951570169042669108070536048111035150117711840474600406228929151295797388635480084966311448802812797512971745237169025310355884975746977966408561896820497095503011390842954061284925899053895830898491995067649796538085732143461232200271729671659280405299706521536230064933324428766447985223848618309283260947415507594011914216329631494071690021675631729880685552000869468703880527168906012666270094768311875350397499869131327132051792096513615970858431835485719546224442648373686648804574055882886480769249685707214999011940075326500156618309394320663228910826021642139083877764110895557767047665818360667160013517738826437911522256508281105753913936480088629634800447942805126039481215001803075786010596381519796145610618651591265450706883907766782860024839192268155033656300958984108278779905434937802803590044608939126512004914983231767646635355860139111734134821240661483305432047365631024628821350648159236403076586118360337263865072442602466188313453225925460331770924794591640510838194071962417195281309765576642701613028568020885979201922102236617143440352996182817799516731205402870299709095167719225227793566507684890101649214030848061478123798765519260301165000588776869467793677895868622065490975551035679380614299305940711328169300534218674978483450251596017847110429711111189793682222229486947478827133522445026197172005908939603972383063181985676298850278131223156220858826376961695234386167574730013202510248310265903089095864110800403479751241479491190204129515714368355336176672414784645720920521826704709685050209018377755788429365634273263078103411612588547928206709692287449753704578760329204673877745453675944098370040897276621277218508297959855525523704390441920156475637068708295876727157966809531917871326077271578546271872977111612470008860930290844739385836993853253892622428404946896830051683859468372528411341776568204762161659768791594243861845916039630148067621559062696754338739433699629509062448030992480671619591559532801609312100849281147578846818740106377023098359325642034583087230482261843096882918356856586408775504199266400232332994682108385655706134869522201348018404567392356788597897950383684764136117402890356741135127258613140685010644290860478753616239820367877191851949680238168277216932615258574609307962856653254994831077527012687513109174151371652124289343468451205089338582050720524890607388266303765169353943049507724870884685769845895321507002803069087534742478322546767887095013654351057983152449110470386617909403421377708769348397406622103465617744167406920477079972991149261200250151811560875182975959667430083940276956179286448796266222135498750432805239480101317639240540653264147998403546374328216982560925437205848444968146871754920867623568035533704771478609634477175723997506183137912209297803414690485521886164841209570958156663105807268348544059818887889631633494894978798285587383049885504297399078832981978809236846825762265603437480941970804728176279419592306023581903985984757555035078435068649549036217294870993295088910521620971691712860287511841002251874823017872043887697826864074149487474217102949482384177118261005252386528763072173481028540761296071254363269734522664295437965617071502188116524640714390571911635525448410329234014460512826347444381968488496621113303251370906526804410153655689114012695493674495876768876336913127822152095281823722023853412618534397761844223701175653045276419324618772994450925702830672960878099774464356662928924441338160886932595232888910653228045697603951207749356467488068460148155216145040042906262588691918355000926123482302231292897759484893215325528200697557527388808399828236294161792587313472459979597417194639917114282152700855731909169871281736230941886196478657660347877744138495869131733569300698889479025143127132467972892836542571637337906247859911244256183628350610078567556234018346762584398881896284615337538223819711062447179061834123473036328722721178259870154273269548291426319419705921697518165059175535910414178294317979396226527499575423755247776356925652680464287454469248159420743221351721930621177527382700501147931343998017898388530033277805545538878038511978162153456930811089612109515338154473767541207199009801384808787893993924030649517363615574838609243754798976442102909564697894808442101166858241007156802513703047158459456311764173163206437068737339517482362438200672331897632802584775587223622656186932644972448138024651557872923688909803445750207654325503459739009367433027987151511966702192294428956822828527042167648554247802552489250130654612383327412348248939455419655517299304244862434431700781707062921476327876772282325458249475575275059706663374981365990459514199185980544928823082713127776090141621842932878106758346124774349694017416739743229669513651950033293574108868715795549455921773312492471590615267774441831950557548416098472710619432214302961336444530222569443802407492946084071749131833819064343031566236366030449418537873562672689700355846453895771054584444361374400475557874017331748660348827595223704279242514771719256804626553297070905868568426516031547890261055378780006910988817871017914642421225976493392798553512905207108399537251512709787763037451251846304543879284690334729061038090834742854989265068672503902147871151807530341187815887749474085022175541208749801661471351183478648102680163430827094772657888660531590597550771863492059592092549676450788241104224285128607001952953925544794902604934952523149454696283231400755298752371139471327443867758485407013903027499758577299218637844330613805528241313025429071617353276285986718676468003087153527220334962808652206561637975271987365461009718370789087770854633506144453487032758433930491084384990159609860437342606250333156240002108599934159380738774611856225737754599508187522580429975244960487350850628251645048051891299088712859035835556779099998311912714532528742084706026487969494790071266178637599241115641495904469894848736634214408610686933948105888919201761725900771546672206192687224726478454016318559163173626644744577851425526182192825269108210046340943911733454420698717777696281263145731937211044751373771632914592545012433038919963705760342202010113373849612545203439097242980492638151494845180067644899934208472069310879639353340634836601370738720541601763553741084016624031606351956841710987219890480690670098557291922106902935265154383382149459220632014701608571235290508840457709549210033933394543200951355222195075974953553315104463061028115335992650848106932470012204427737329900840574187138460139856631152464677837461280991890182743225955813045295798313813837965029289591923507192555238761183247647403952443805133057151669017774703015401288506430845345780949039781493510252468461398195579566281574355288128703260422900396202215995720282896601350393381087366143001111443222182933241748791824850963946898291752694041095709368483867332723351834577094379102315427442477203337114735795372962595926109690097775214488760053269182243160680410607908012127666218772516851875561067647202702017000447928523377841006504033562811920661560571991486335903185949821905874246276511935239696987496142354160908722265247301544067519082636228295766921146272227027647078346234081553818090037846549732448461746026717484156475992602977802004385613840518277206414415398812110461104925026826649861825751248850356767605878050567518613483748679014443889860808385323915415320357139297544318220788986560509207533456332559984219222948898273030010732233285182030159169370837236951491628057028987551169170784350159153140530120563363936699500696034728805770725372747582195009029001162740506366086106439278615103685461012262452731467621274167219213832397208748108508388501247523026992365012942599750985389469600937911048273869247122995166102691730022510162078310526119112792989871958613122603180596957707579625026319229603204505887683441194568733547684033041268600017435136283013871426762603882368278746726867589653223307787737075209252679673415663102898738510695851351622069817040922055064677288285025488605729078663485069669869319588747855024490140958021416405376750077342666162778860680718886942871194166047960824648475589250851559169577964940737774408067992789648880284797374313637983380514227830629509853462646944396824259451204559021960691939153472757943195968215335417697727638435123376592113709262450157493210731751872880660197185145170346910940241908295463749211593045183581872971978944382610431768651076268468473498098857078503325721660315945612915282387636115366496223076434983735778066816816543671974435566175871754064297048247325363397025190211930217701152700523961882430140820238038848360140507663415267080351699252982113887515757855842040722205672500689118313087525724388238900211255583583228491770733430686115321068925035686123783449864497220206701693224739528283468376054555112445169219720453686433110802350514881828488982291067481114996356254188371085832229490454009082038807138318150689106399564571730361199950700008207106924979180900594968276778957846952093768724208463458143726009680070802629908569865705757173217314185295587470059271920680733145773921985084037068431010210370935650701351623739460701233990116996425200480377763778904096980762395288126810178030194193626305350038382134454064737757143598516290205683770998093114331409089669495452636272572919550877587385250416781627096330881532978917638953101058465762018376233546026243703583356074358925723687211416569314847356093313128416847638022155853154642668308381876009869855951339109327729809754300805691514352187625167385350318956374283421862678329432875501370687015095054472651841777952278373130262635884291895379060553934744454646721911484284060488324720174624044737307705163667525328060904695461961797526087389117999025835281996652897326484632176808956970969956815357730394654426184372599971161399907832767067720520926581517376374920201985051868029282163630128469059971809291620723743738925740865956528904844249786206242615237090773419895583855120440943452250315427409408853707933008773412889676286992473541156889196275237091382875363143162404741660348409260402811862007636348327899525658808018847778901460246695924230018881809473724093950524513348760740732104322082260221535872163241777049139688722816700078035450203239432906027598448955679837935678294145104477311783134921772724311818077656094576169034228358394349409793652485109345899734107347664305065873576607371160535714860689770023437369882658721141061175573974528606388559538960073125386210005756602831978578566287319430334670509926760877723345668461581262314929184598136092696517066515283996254173814051458801318056991113223516755490709968861159660293056557439939980977874816832269976519330604642819799782199909584658168235897159328260738308528376072981042980846400357281110573195689068674016604493598847718076860243684954556124050083135681664987512708902801314015501693293964593264343990001582774270643634140950360554600155655871432767721306390785543438554102904411308862060339550010546447670414523422106537072749832459432415189906418000591430283745731490306383179594357345515228306810761239771346135876312054462859590412771428081706768684935095728232902116724089473387949716511824017267346086133297978753251262997334975368226694921878410486086489613340001465395401953761638318585405403619082491503309554084175061139121638288328955275451742273193002518260505189446565742220728762101712079069781369308555435640261964542459556176345474859080300060076844225309976400395146076541005054566633765483571695288108014461722013268565655468513540884815667733185120536539952712416230416720793369796450043917558837242516879662622082142246865139599073494293017112753804007121261364271710199434810664034309784335585404109116206404421548594357529319432438224057820037246121229553258037174480312097044273265623754695131855306536498137626258651023557088092437072151740637349613319164759906451908812297144302793428902104560154417462673302220608009171461002919496383111233362911408776815640391176946996577024217104232876188940705890345236331716306840181972866374701690948686587007062648578647073905670874848290856517314693772487705891463265446819553545453736254393026849840718590620295709188015370826202522851115695175166286980946722991300364817644294063101555455632280515575683783475874760421206311776747118991873341044872554662190711870221926063692708379951960627591438025223996215116039775229626704442395278115950690767198825802281614284307489624637308558212080190627608810628941653286228475445216844241732323986920622420851538394227661948259913023201584244315820767601976229622803084959234606330811605669245432925050023189059396108399315224139988322826869930415887098689645428637907135436684312051931435905451976330915759074733448444514481053420511102308790850000485330063335052872656613408034406906880243132064841701609456700509705787235378589125250315794205401552251463072490809053119837663641195440175655223353814066588083858270391579480145010565669636975822427705015696213708728670821620404430278148698247872419527454555319554420226449867156179543894553808730629808176419784332090633207407247931347368607725886851241814825515802951766431969817710627132379411251322215107609361647833229069060749325547212669676900014088355219535626014662150852266673268393604522104307613836207529370778815901699579176375500108144609732095355309225918051178604300319496410017043922025627490956235382026980464682283116949650795994929977280175699537042209084272107724052638337574802743573615806609808355678755696158985484654820765795293678239485833460177484982773104597582062474872442340340840242184066341707730435117097800191972439105976604770167028706925864211029180093682515013227670925617276383883969783581169399264481558050940534792178617670197935633460888269130301249666302183868125369616129870181353977025498160136113277913198406608444130664727464036172795247891471899151537220009748251911546490697516495983399770280380152546285835711146317355703262060649826729243699228189125309092849997089614527091332979171254975050802666631114234852039074551614871407434950128410960684973827724780702065045136131409803534861968036471007225065588586887976267761990717922575306553646581289162636344940445609898287594466798210626975450045962741761556466568058290675898921124432828463276298110459738371086557779094377861310144474068456807313680573534994842155677287251005808686230781481744420443302442414251642501193540940213357468800520632863147492377542911151120131956689118307483387529732722654907532190522325998307285706003011374969146249945731922336334765414928611749205144286830384204437968955331144666978611892371257983110177144928802429504041437784587191344903213288789666291214278580810534034121093675973499010700290684113045485853524305160051452180378768639187459062027067741124626663418032219069626527602838971819379402117290280176731704683113081186640334938298314916081683127018257420581853286935043827831943052790680237100012879556884536937146536469694967102749141599782311888411278136675533781115600899465420161165067333344930180589356089268501359064992405041712739503940433943594415538054816440674261835399561062117011736506510947602510893191802640954764337709734767109362043692975483947479121116111607572066007024754911005435987930642750256566679298011185065495169366745829845074775026664554720082127045318942671754688684958574995096131236929077890667454353207597641271870289511573816293533447836142136302907636089462913013790544192628161194439581375111553031367842097128018924061471949698306724844173437100450587491019029305235756704920854322566707078976104454069607138428444888986228030232329102866908524017016713899263988066814704628584946359033759681259690319142023054588241508211277503463460414669143879989657570768658393511962745911686222495181929066877332970717438855897567322335523812597661215036966445234500865121409388405304992293482597540026218036774841854622346698857203426466423487291471252975777889320531055227877296723553140967993575238076565291729462721661135746918954860517755763340435615316929329349253093503978285798567121229757236193464799723016449296606041577666577920296583607779176124569871501779575100700618482016713446487723441118365046045178290399576709360020968597372920608041109349827186813307851583596926295473644783690135373973756831712690483003982174488779984073172330514264994599431345625326005147712071495761489071125916626828146219893294247145457386939328491563532622884713549484287460035670259471547726968496183083205469611442511074748342559896302391472574247131717027737409624668615559820241322706847534211261894152446869239374364475617555490277919830837848708247469233467231736536097596465555027822927416347353463301660807409329347126894037356050969898925902556526140150204707233890109979260931713419887033337044839833103094428445278127084090688237172355096901763542884717748039892695115808779940324176691330418535487287637718150581079499540970340591531756690499088621545459360076600779494961552786512264631838450315101008216003558437734877741685269543532073156458882968720157671231992350574134880372013485681064033157570970766716511167564016897919487792102627381163197683760659206335038725400915074650164625465609404819742993607435416970204020339396167857939850743433656223244769861294365906069520439203563750673338570476446615367877805295493215125696757389670809951304546218210656749482256311489928290204654920491728100826154225000252830546594367456317253866717826218433324668821917550082182494955929667956242720614681442140210465711090516821462469741788771775815003747304915876195279109360401196272453110077769400896068306566441737265123027857837250042018933168302634993078487476107264569581848670457255548081827631036856242344803674981782865322352620108637576212173974220257291707211624094045076621345426958888640300384815585645243635186933558528172076017841667693249897684461598028333974336839235571900187811205115046642466429871388213465721074863562485630754109303033122016517353852844824416616081006076508627885936899169353703062961809084589675855134327431749494228166233837657722500724842039585368665054346488570446014966119520047717648568424969408508699869913419753735366534654000885750207286411427525799949467665290842039308311849100757167117611885405089182023408164872831911354062886022458444725103275759407966997896534547984413514782100874707140615442014195250041382818456176013036421271371141266047283639039144394187758208718759085935807203056155822954030982876788944475105835284995543401646267408359447883636478828659800274983620688546681840706207520893580417458777878211324215214357744727177301007502296417102369438803812424262864922641936553054196256289295239563674033907349347427308797336277320537048402000847734826796545860946646346940241369167713149177947570979491853910910896704543459693619494328852600894806373309366711381823448524552466933570859970232667365930812708926163750381595310026017209372215708901709420727443840825247198819467623028702661853723216122090846189503490261640312518586635062675673255365774259537499973493692261482563201228638350778233928810680461395719574277903578433197444244126655356656980653852811551741080149248851635529993505954677193254110932782037051425317679450480739923095017574922897671404185220070414521237791112471424120740887909954704836205440793517642300438274729194110772514725539134889315217809515410504301007955657304741199661620129168915351274415100404274808665445635340933043651667184672809164134034747778811795084110128709939000859903058206801477962729944247121844813791999632716112521805317561917399843535917710613943404671294101153878031156222472701215023962381422816554831386076062273027691475398550144842524879241227685861217812974186302574995747632634682213332217929006829444485448994536838202129292385709610943435537224123202866709546932727992821933557569344149428619293232109555796793153942233065983131512095144331006955784044161990933915300624763535205917753389286323888787177042160368503877367620009639572341946915984343063044284693904229309844868139047477708593393063980842318369026735253544806177700120411668657244610236429991140796331339714215974071816721570297783923835323960041281117762871392391731764363200719143886291811546731636226503884541302383786235955038379189154337396701602091570281552837570350941951138724591926568955512481527129809821055541099822332407038362596934263401274809980926617857469214987210717698004512702169823798501944019344662674701640093805813819269927739086532783207451136798589188342980839277462453562360960975654822494556567683589647622544027044492564053990175258481110431543309802964019092265720559263156241873163486327461236955685379735472177081993967971911017243141929030090312151544514662111680766170272534021066335965668214401768620166455625330620392905412228815760882667168367903018416748922881603399229047606410954283597910740494283660818053728404101144722881029945017190686843795572208619435368263717044974558014407456710556623892395555454625065688547456642699093626969786151824056942494994574796016787231194989832915247767939157677987531579082320882071313377253131339342564190447199525353297649407623427190544418147247722415232432728085454199636282572311301388926316343257187780995175178753302815471398627499867162500939816282004007804355145114668221783763451553023006207346211918354866895232912996232964585413077289139481527232671880893224238049587233413408310906553080741772598722547714355673062367196801590828053798548405571710090710123302615849559748580736255325149646992920659353906378584818500082438522390525433303727603721420568253679212822495345242599830876220792466946177617932429094883575382983919609346046601754751439202643064586808771808018913323200655361792665715393842266276117947924097624238646693613321922850712769304869624423549882202417964524769151779611271034126068601367241716523592643645449935301128691336208509167820711677590614480426180390391864427008446911982430086457523664170954996566302348538452416488450049154047548730839847292687660947968067761448988000899748276874232041360864557752924341919481876919485234086406338989435803467773303778547640574421923408263000382723618686236337062796679795351439680674488965032865247927832113696034402502206552066749751280703900519619673101542772178030884848062357183628337560277421643500548794348569894153327393183335954576218587290035108900022425991728798070005935917913676771037942081228414172119294907559124020781144935087122603928153627916590189224461180338208544795883857011795151858147790076811138373024448239986345468076624297784267604930495960087154116593479568224175725774717009987714637808157205287338497803560041355022806956186901837821855060105235615955047082083018503521251350980230552617744780867845353889841209129795181713544105606639070622080044017069958686691306712164128629231231934769676143963973756458762963042835681206397461650106753815102580066003762094237470898315664679748454260123772280859707009247099601105419909561006044356244369735579587530883431750013711682982104238028710320979195927235061278296062957277890569905532315823208490322514577559208086011425342126406755617763280758698485655022073913982691664287734183594621744197168812734930900917709074958463475815617961446861895789459549213629322450632764181128926149504472298514468856432730823251106859022212057268343709497875895438004969175804079711942631100642759202811163616034087336524418689648988343537122014498884563697471961325934388210395501581247485451548601190163269871589378067700940282166681912261264064217413339624409487585295236949733031258563555391622765085401095245230870441464745990708679181733237900486457827330472403703147356085368238474909107381311272099758679392673912401114476904133642236565105290583084353170125048817064273383222275975105221058621207094773808400816852829062773554880319023211164931597812839727277611335066303999572379550777696273567841915754862723723712882334110882108025574445335969403129887653886142628930255684760001448912757535235527712797375598691886667168759047549322401683386124819536779279326661786280101514365549403216082408704369721951784445533863426580339592291981618010927406473284620514109599629298159082550974716244884971420164205072381333934205945519906480444027634643128181991349080742718069617511893910296556350697879251961589551339642193655196466745097078719719958185434213554878518396473951925738820852155426281179743445279175683836154730123166406890564477610718193240002700012880761877041749505758602008727552802266323859754399771859413975635479778307606674188562825080834985438719167161278212741444685064004281034522356398372435935014581071684958715064577435904437084515610743508132657081177458137400236329467796860703411863107204643289417130894935745720734258054229584244906013259181194218823276568629386775124856042125552491966556082649770083034655403569141240926053546245305127939523523685205520564298715245935511238990891032316428207598947731260824991515561195218746526341119368688959768989002857075214068080227944744900907933886629021350520198538298998409429710599372212667954884546108739370696802084607471692017015985763578889103493157140316098188513575961142776198502131470269750903189568654913500281509976801602325405552848291846393359704230954737641725833069698567295858703949536175435658578664419963813897955362570724181309312161692756976841378498844243253213210241629305891271735082390629103457387614549924888928746177142441145361243403640241624238300672362617213426790368634004395354718756673268458084956717734242394829021931724102614305736114310719235210849257690622334196833334025173516196924562660134270271445348056193301783051048310309755030253955586755818775639238365413696868996447052368914493837580520285559223316239136942395506228360859938205506349480946598020935361153652023357721628039872967314257306722221740637812585201221548796918396382923283102231520399565214116411360004562960770199862075786961289100120259011886570789577261533493152164101551801883618073121050063968657393332129721461487040588466710517974139227835803546637884103742439971885602993975176881852890987652926532720749852912351357738166188864583873169806575431528286307370302097814864596869766371276691265889207556541237886181177441341911123351350438271381864124636841498234194033416379517469831129498996419802620716106512241755394739223559638347446275566678275968463905462296580573309554203601038549454362886653268974716387881732908203602495277134300797916548755347905098999124187818627525319846784807448428178870269656663378773584107981314681260155982242354999399450417841950492394805619622875070718772873173205343808446240027752419105730964911367867620722479338179645398111836435009719292087612059773913373290835219519087467751543063345272088076342803217133940452779311588791405848735896630497923946478188575245893289012860404729017992681556399566616952063998348330037619655308686556900180245110257298546415637658694261247898086540641582146438458054483472137500731552239946315850513208746718323154861289333860678941374261069288750805502293302649742348282353926276293512722680956668640213507006858723108315457822182767230598152621449485741035969895479798932261710447213836595601837798579752263851031158692281433816457570635743336854209825196920089066605224402738850261767890414380081771183679702567478321149010884134682230957721867994859577773714241897497886950121581610500337511537227311007657257874835715298069366156902967332636534125841130818523789472850844979546851103672470577032814536100491604137273621913888287951776305558048333869967549559988807447292790590712210685704340781600737914759954990417750582200844992903063505011839043843183915997903759670335079660407039510265521619815398846238772132838470789437139760593160909859975029559391934528600582490517574336653296683875931190947928491351614597000715022811600078878003081435596520897008653275301189011689155241505279099362655776894473921567612734591326095274221393964601223524835022379506997771359437967566184293066611005487246355415019731615644729021275989915958910383628547049799054247519716327618597352413445258879422337119539817730443291456546619004360512980435092672006686555526442533551076662413757156106006481577407669184244408410550974367753598431782441007860417050056765839461651782533657881875391294574051731871915088226339319091386961360908442588864189221309763452649500721635705695313831985253769109859241399539378140392133850396658544652898196140316172529054601680872959445838097664958069125705854159748721472159164508623427915455586109742608307419332161000456907187647694352849451960770848936442768591611179113121783107218301700346513340332793021886440329916097467302089549813070961921132443896256093807679316541845249392458046530504312755276452643510387240233669720555813332523182802747214300685170422630011708623464361627282785515130763494758225797158613178911241935677308836103353207055731215069143570907854520112669658404601920429235475273854033269594460363659589601598013667275576043123509395902318140896081135732136723536187044467094377268300785893326728139487537602399121337902016695155737404825635579112147391319551089922733571660908719316358578453337529190686345168977245341983929125102450433033884253714291170601176868932360379477250639395570872733618842210186837000966595137666073754010236226615962410126044934400568518797930176916231033379834628422928439222396274781153210272361236635053526426116334085694331913964278942726847505186278589956882364810766977802127413344412938378003068192758771557401763456684842301641601068303277079424555375196698363533009291846085389089415169547489693003756705212641881382827920535948654468207076018340074673969749016140156376077087771429634574837326107699700199935742852269643247521603018669764604206705529666506535085579804999371504251733683939885700577257700979912484585850556990498635751833447682681040019070018695499347129928616598071672882494188156577641081458670144221824153768462685983901223025955801000655737142891312690668090978402168281707592816655414921531267740681639586675781777034063555750264404341548910522196449898919798567320075979804093327908152982060645905330244935132347721399775298759861976845264008503795482099842278965249784535556472277220233793104638337596767699055177909743753364427133893391975629794256791638340150410688773486849896465183010083616232078334190544258407850776914391361764113121848002475889694607625414923375717071291330488760045565180850235978662211233383354473281496063870848508627146415002962563570819861567628543472646508551383223070212479556750373202910157039224613347962426138350687539358334007034104695000678979136297259507281367696452583252693050720526378390841999924574952059581571234023945157159709149637353210374743029850901825655405002608900603287662130562336378202426609847793837504065876757933062204272353293853175506815732633871460438962013970368990169461909522192480656599892240123631559333250507734187599579709145691259728627758900699088056011780440704157880995096601409722503179800970832053224388773072048157498752191588532532164119318312138987730724252214284610469325564533542869084649814850545225722718292365632528568869391176388327507154425979592546390261902018481239204874778273304724902534863954958266663550814537465093989830174199632344827709275058447816599174364026113956676653204854988258068851796968778544760088018603664609325283442806302462182670908106058574478011899752486404933489224869460081321398364766324356036897565188663041759866416612103433592117407631732633446621214966606116404133592655534891956958826704852316562316916727099597415380869212792625800388416355865090681549980813552437010831665563152423260436073158651665698858328081068869575523353906959643977351026776382434239315591831649179748878789999486501482995206515974253993610315781157013883506684825635554533822774550937536176301137494777419043961064053084076817541985969306105122190133110083603519418613604592909747933423583317150631220229121315401243486721120956795610729895713954937522840249005746750475579394491165498534604666905912687817241891065965133567427270527071017571686464975449525598765371760890518980336008834225413376372037408521325940187276860623488201583807065397597372031073811925923620456319637159838889684233360704923998087999707777131781253592847306565150482780905009200446918243012843889185665139513150541083391528422962196771052533428238320813781159152605796363656893795331418452765447950556928017583186210593428649262890195385589082160983024476893577243866345023654700798877698182930119878346718224132630190139144901432600791096761439802011744950084498101805353076741755650573209620171173205321448544937312929757436826399772423013087258945073492707443112621774656915213662079970040879953554665820766236412073473226516813959274748851945679006172358496590676020949332184262464966971567685921243972467045905250065110758080906644947385610661127100565586854323783578332238563161056198876567590946913600287211571873658290414094687615931192845465095974618565675976539891628711293743648321636011521737625617619954954258575561053827901189291416898796938041074987351269371631990584126704085048206815705656235614390294481163701786347047763436719262203279755322127054031020867680900752568379532035862615567389790577420289596425481052680641661391098809412134417945553960047347022613558483027296803837523881967474797526640082874079728640382629309586103257612155193217740157705601285206444666109436820618795322629414469088374128870397792839674648616610901022082140466198932060971233894861829008434576263622309210690584704407813810452460312498462475060929994178146357965911885111738113730881436861121288645064206902988455204373159678258913117941128811526862487744626300403918136039849966206617963853798779023467079564306517878981813567602198378611389416060410916297823625188370972563578260153531973471344584040749415176360246830293614137571538607509420060239248870345822437391157050248133879604327766659274398511461078069635620656814516231379830423682478451702958610855406908435570740424085141323903230635243977332780683270092113560870661979200929798728783499943795641714756826911031701178136463113221272945872628638560790689904915904842667583040632509277968795256206571031569416396163530540125549306336845745797761542878559104676470912928487167106446425490014151327994801102518792620683843225624777592330460128628335405696050034918926550191168206671472443805965166202635920175513309699658072580774224201654662725594317219711066771681645105868794010436000011330460420144392329370649351194319663109761063994923980497659789490217611971161988824007806710975219728967539663208763477595031060773988121936435882409773769221407220255813558432808387590629081899285121200531249945510633096952164957922030947250884655794072601731878460956084346397106730428046202877574868597167609690658866362825703318703836483425162205793564355178034216602735688533316694312841264176831588445696665823709580737435077019352347157901485332827820483646275611605350006729497912631474095695582263035314678327926650409856263505901904988970523667945118620404464532046426179200927710671003356476189143495073904093457958592377333397303407774881291630990537633159394212434858424777701392388930533171884722551520101543916987041460085409812230994967819682245875622316715278699385212874509308945444447193702091997180023179356175792938030133919741888942690027613878664997677515856617298363662776542163374815153541594832549230944374971986000096734432980647078674489475667210166141109538050903231606431849326156474541915261946024399855892466398421130405359080899746562015340579576201980810215401374440158295914513479768522469624702451783404398624056558916581648513958551075832496411409588190268396945098313582098031909316108970833094548151062704785618440723445247936430063463862066885015965360844635063838246328739826018657231960190907246842247153850383962687117172109681170393599757105623318451045531910366744691188885005372640095160409653209349127421551027644452295601088466397392978851925875667685499348217183849441631257876850744152769317773861435457263894365901031423134106614557223399505833143942600665011372479556286814440685325729493827868380131556789886072516280869373733076080928159201863176335913618644041582782915202235926381569267325745961098776240352195044692945823643622409060478702034071112367359724012092238460077857900509236585538054549769415345790182599165535187580987803505688003804034066545878664946019981623112905708632830679463299198036850856183297747970204610813866624091455844380282662655697503149056044626094442887553714196258788637822881284493792247116976433023958240942435763741133185501387674816166850317668506629343832310662790762133028244694886474101406975930830793858720060173780259533351023301023794749019468191464401580408713259641514224879331515016781672663634147841426846310221814240031624551913736659913091628621323774766864483686258214228472919126308512625864094795532290448962250846853585673348334280806418598343590360951761431658221129486059800678590983858174074075686502510615158386316933241157950481562567177195904244879454280973636432708752008341348729085339871819718415907302388952703074550534381029613409584352126382679175350545726405576642672337511681254363805148403217510407228137463723199471214021759271525831741948785041287740374816000891289274514377966609485009727030081098284576041532571290101579964709595196889432646103608142356888731905007670714057400575401878637946491710247385363971177359195746098145324375556450735730942955108494022972834711555491630440442614239418416454707066036996411136844831823414943661853782021231172666474554827406816835268561691934158354506741198378209572391832369120266990718681223416123331849710180608540132732063498904543936491330353850346396510491113626315287189131901969705638524921897384798987659489538208224643032159707462748300393789657121654345190345279702103640755041942411911117914020456382619971695584003793188188273060588850154526303381498707265244646798626365874665409823632280743745735976092847627858682387487598117590756087630183024381004277043130662751834619920881530093845869860937380125294677761161873212686604055261367660996844855541885960741842302250030590276868645737420880285243273175372990136194774210681906143623429498025329954460799474830255063112678292848126603173975145441010535985398582389126088290944757925722509860320673980814774422373462956818844157571125556848481202844847669737236920529812200478690539826306093908723607369114289810370836384527484599057879128992372231115130945110964430994434083556222138994037909228766109372597359346557214372385072474597666148431626850816802987518325758987707244788385145176843344651292222250301356942842876731557090237001756610127084970122658648882162563750409237826864796972549874651033351211744225696131733510479513886891109308789670511031473987231981067024250403757566865660448228969433962177376173451230066342388674262407237859665056378409391320879410833946209615365436172642535612742642673024531321178411388173765039942596375178385659253596204924884152179918168030042504306714693959925374522023230929468302400900470723787639196794676678564783469222858594793711389279431948101930961997771019696866920522651050848254985747088348365816541871047657915988167647436648905803456574668956152830609520589996350468737585696690625728801983760324574471779740084723452341301473692884575309418095921246069692055719286718931834469531611747367253911470785465909809693928800862830262316746871691285513404389224475481136211292243973295682376224145167256643551988605962439342714419567834887323640933960545667623880582672220727007110919460724946151157840590215169098977764669335964770303343129267396097651993727541120353466519318258165450888682798409594220371766904703799825492259787358410348723502435054913672996517682194522799804482253545435082461038915775766777057774736734977220361419887328601916118992739404142492142700431159666326416497758298954837994934117807617380152002941307559140406140390909264582479272240895904454202492961701696477145032684704033078221830059507565383092838224437962435784649215134018693542970862452580657863547052176404133283485029687149054084373123876138793977701314065734849020696917019429801499362655733134492126187311445188807750232741252808013007412302508806356121293923115495559296627356519978976154208740182044799366319210309701590963347738198658323360239608631841196192142756520002037381953226053893364179629290942278727637292051611332430252022934495983866295988244352193127215310257609466618376544762991449151307267957160019578131993284466400879754975479838091910317830391545504385034808011564786031268328044663851497760939301461221617541575538791384088435848736885052911288851952372215392838693541092061370432077997531509227928191047629279841036897964798713902577772707640183885671226451744751720104034451594040696327476164752565135734982993985977643299474964656933873199845573115831490397182634159665610348104719962195041150405770656827300057442681428012583469509237569716669067061384125319264633670172154689701206775871339684678239667379523077934266381837314530934963093961291991126990245887545580129428131590672201247433657275706774395282189502595879251011076213804177665191972137966132844195847276446449656355222075711942791820286798477495256823444305626922265504668453129024271460894296050632220728878503031912879241211052011783943361546532890375824982261010512623370907545661386709309100129268310655448026338437148489940496714861490958613094648529127662570368409091289142873549821402602090435844806899147953718244312423638987037432818295053600337660331497861828714121764836763703652675929954903071205311066618990679187522595600334349091667002745259992918531660913998532999182237471533074351119061865905777667707508629451307579476385920981375867599096041967546558513078586436878039935189897746329654758433289124499088693082431468060600115559061772753304669300576001330816139098096467314224195774712904126643121746587110343829477716161983856560061442032333084574574884578614759285598958778117430024574537168123185698558781341017206005107442218672514697038090101393344939072199441672733958003547587664654441187827600910952331706725811701077807060162211357736418609505267551686349849782688987975687164207376456553276962275035790235859960766263082734768968325304052805258219921497614278006626834800792218773172007589303401754718640734079965547264753068164436951513450980322020008216697137556742240456318381388889853973544802621752085394602124029675614822864650962909061983443591852342089929239282673928500893514219120780638774305029027674713177752772649212492580455618272512137305907937407453076377537547966633568467429396949954297558402740489321125083215383592737299377197902136709071184401726012780026858799073698081138763478626261993544767609893171712312162985312982851445177042842733704235354290122447738196304512028622304821472345990865290981358784968077175537747285761165890291857096077663846205053312442926334165415042552408789004619353963838879942456247403814426161947862122391192806273194456058540496705152344482683638660495666257477234201043111647320663622385381884907865219334010280086366791080769218556374342769939816905362156111482304032379871836444680441686961901647098924742572115920420594870379082355550137656548230353574697009903571459466036976450484943454041318937066844172532311143756349918869001349387589935514900152205890843842940784791007818862973296853894070646176552157099474734146294429920748561881143317944403741627528781156880463528381120415972909251773485333538610404236507229689134022557860539944520988014395371900219711438716996283340993696025578723667148066152053000336293614608155771594498120795412176219231999917371432985791589148699107976764470530046570855597253812400700647787232138508504574092347843972738624364249365969034688461023555275245199075829351329709509238982923347419105622301089409628078423066839289215992390859244219083791631842426999472739470628255496801448773522586553774817287208969483339204622840357458373462705089336135337585805524483797204029470602477691307143918051168094592403533417734413761486604397252548383050533229329326786321956668090286498614244732042803816900950393678740767848226856078312960717898763030498648153079367515139382691723534424018638068749272950238873257301733653894931476235466129541013248535207705915894373753990414020953992508756104409559606342676583747875877892115690467111496916180344505422682250885218078908890858649255545898105640233575956827608314439312918446019830761834331266553659814342941290091432372675830953867813210963523764612097154742247571072711563757633964664563233677514661718462095713614744527114938171015800798009207007807482136215767385879391679604432708185758617698096985090475013863252768603800181905926762095659765486707446312352465851430307907166216227163243727959639175503762898742828754244848708927037993318896941509379877602847733195246761487240273307689448096827975364232842981557208896009885990709826439235087754821636971759997154643672726094756542596864929525404525774814100276342086193121517902757853955780400306521819656542076628876392657829837395382010647351990151436270231886337260943641564425319757455728583683777294751814942109552416556041907774956873544968794050396616539933507962588419807455254780697094543427969807733712599542189709773899905622587819061492284997162940395279253553444472087307288926508439857067466556436546053784105847636332214199523204242204357969581656199257073613308169881240412949104293553420750609562138667975473677233505676022831405313228979174069305559266248144611992456292503966377394263000493756824375378747760903963323302482372934556209466572676037033510491503847475219029750201034737301216926412920591237081107665659054359939466073889921674415605312917868953120915031779540910383137363522764748743499018263676299497995986419569586992950124553823251515991066809470754642764260561831747326726430950189344824869654249504241137559743998682396313980257994855538609438206732165229625444022864562969194939141816436800882851373673820951482872381047565515850404255926752273390758096586168327823914766069165049918854404660922472672183794972177711751818420314062446884939170942105586219414999105728241722728311642556958077662228721425679982491327265150635647852913533794913846165019597194494896887441902962696585509640555322803187913496133619402046720945477332850821110915420107517965449229828981090971096948405936392580541040014989833584376085413201136569686025176259995550415324860672629447319872969053754727714260586926331549888189040007731632489208892848450651366034277638359016555004692931118593601550783569219364805708601691914508902203519250946477418595977732413896021924376907980342639616880520408654209245730018715876906469557389516696987139958140979335548544501794630016424125159722900799890468493317563330640171405108272015992859535598403568545815379245935595639354972127180340412828577278855884761236241621947934087884969136117501591634728942841214891955478311245430630931543131175873995930537625708597161840437308520671883166165966788369879524755560377916922118583577519596223267083302104095543011734465206628914506847748401468762865616756897439084386278684494818240574816839856906295109575745142408437389300409619947654792184398015681011846087977622791682264422576585669568360304311188676585360819096956243196867369166969555227941568756787097316679775839314876828689820086447737923997893957353251990788792368380298194907559175662361543058732979002887742705167020107249352617230157788954779255837035245658340456156987416672939024471163698267677429619471023703886284662625588797159636714710948160044308411665529591721523979334944831870828575088298860737928252307835764272301976243248771196283245486879387442693004162659513113995477566420041103175204654643064136187118333544482188913651687482576715944126729663177048136047353548611813686233005957990407103923426144820881816041499699683112069123175539997764854353936438103482737178267975225007722163142435956087033997851946406369430038413110644851039395123019927714415669337900761886056149740016125348591798619333112065376139972537118215320280405270726226929973582826662477926818297941333059352113707872929226186043515448906922441769263465415441189625856311196031997406954837602623413451518121735479234237347391472289327105017350596672019547956639961611868182034673244444014701285404505686846840986444520837976832927232048503279470826805844403583763695001438188863557057929622206112066926888657602034685457837378870012807417825483543290486029627076645679341703140232850201062141215369579738147800268924475118902682374501216755425714725433787647154325098760550520461260291476951326167719070627542585244962146752644616265126734662290545009120820827896061096858948287194632695764163747218382625924151884143994949804109521191416711296918840845660481263139257452642850456866400554909284440434623663046450024435517146820235551172225249994894397568891891658165752764060393867216721614022238383818533271794854396203686713832577535524337803972483335089926436420776723530366066082249705705540573913555161813155904111494511345436677665041762461335114258943554535633317104367325113920052753413554343159554576097399563922622644551783255694192287053997363034610436661203118446536195715922358491907232832415461177044294916641899514076549329646085765125967276995236988380945130719806443789024816889866690930102365196558058131750154412106077853505744709201603469660798706449024644036068082948895754917077905098720758466806302721377673685282063053321661319087717527192092063045411642244018466091105104165070948217804102370389170342412260323541934775767380720432451554775607838459711944849148500018694193842803704594755156529768387255196092032504418970114576245946106382613585894247752317739643751606430536699155280506872315489430965765551799310060548396587412667904386530394635670354278333617350394146777799020520329592977645781347191968583627872863104517730961726746519541843541437485432726558841930710497119351117088669424314126166858613356895978569623192061237313818720657026190136240840826582339828965124288385567555530498739827857098722677606321221240572583583538349890883579317759666129504330812568133031155814687427887929479042916787120468717012100486515189947892523089042825131220554761419232855713487378200466233782795894403601511625207678610213046539134277302995213297571062841528952824160353508596925956426396144257837871047515129107408836565200917750969963885766092131680643260293601379664549044790344248917889104331455517404877040429983679326929849697732187455202733241390088098050444998921383618812449860307832126161725282069775726537650795885376085879559551526121078438303436350989110459591777013144801815095744030228770572810937186962662569169159288985255658721282373719328965586051545322855960267564673915043234407348756818080467574651372233039767602258023295894847042420204573499010379434809573241994042911615949681625016318312429109898598961506621200989897463730162355598577536198160099381298522965879289255650764388697847590727792978537668302906287635131569095573735393693943538506814652064136149882534487126739473748286219869468754690721586608505424110256688343451336092791937009752308923588824782715159374401088783563156133805335449232688846887950365635666892424323218371047884356333383257727818708544484651545449646257138616619310057901048790174434340923782071205535468965938155114004269206860950705493703207711612735325232811343106793031067261335722198131513474864384933269522634960932660741206976356430992528521946353484938653816502365845468326049102760613389898523908448202681023990454155848492783197212447751556358555927313446786174339832359845989018131678067772072773975073338195429707985647438624904722938365781946805867558188608968118915334782726770384544990963990351263079388326024397447131269756885034001918529595888823495220374014687601019058551445150772325292080748054679384146384517649954625163125557912393079727651554517414301352587321971091600548757196611145516647205146264640324513015905325123558845744401479980680773400869407721867928420559303034233689719802042384743801657167938964188836630023733986780189943915998420183566331920203332413187369586762563467116620382594259394938104973115986609798687217668956212433936011778188157578772369732298758695206063377325773004383731320719190957600005772375131247943946271985103191861620417236349064869359041589366367857501407086816524082998265907585760455420149499485942475421689233608515559043391738343321577203596766102061923742623505989698429024879660632449533218310269846526946695332860573332654261765437312373450465917855088943098266401095746811890277690173943479846148242276372548945395711969316427950711984200536468074778837611830195325011431369715609615660807208206609451424335100073968967317919823739129164619131388292169719956724611933429751212614157440865814298038355118167926265157358106007100503299807216890900478559957709035188623171281178383875450421328877239624738282419962065524479248186212290170524822443642140335773515917865743279848528148106246704462762090345261417362148732346154227581297437118440866820352267002844782364348674172708376061343038387591554275790811141666593388638572351267945619250430965957543124710616295024725471368436459808439952445290910765849847652192615953450673537497829713493505346485171866895811407200154410311008599087434926179585826762766509484536974037346065938187755812963745409728803548497095799056031384006930482613771713045095216796525025332907201516176889108625970342502030262347432546395024934090175014437318783183674943925106172726805174087680761161961242983486988374520998305094267406632661574900035334685690000811073335594213393965847443777340134557807245844689173347508585756317709439507188277735173681285240367376132047163029913836204957317585970885633909626349041488481455554327795705615611844676677026930954423967236889734567872317224871435464959180401333562932290567842490234064929448500054283140623865128426240244372560648091194815662905021278192319530924934288388025018057701731958945914152503356625348260037662265004824732363670335107014055006666599064725970500137639859542525598664828534525900631584035856135641056365204860679841332091211505961754084490379054986479801857681393044706392179261260353552991810950711650693516612220797549986349716831453522089616884990971534464725052977653924813430815344365658082237430061925142924168193609581340341681803602219561346144775751687585088136781097816450154273135980402318746741560215036154133323341529122882672228162254148548105990491694985762018888834804567018426271466776179209683938861425035639456552948099050756958491255555596729025115721872006967105702475795305196259237811170555082712344848932277418036441673061928714271200457797435921595804924678495339991967992816245917970999969314779725360426851860793924735118467777340154403408046797021534887791682571678513511599016624801910249640217640068062669894605800968541554032854219710501469669847649757140534055791168760818114555610539835032331480817703369125165633112741998366414312169137126882105624797331299874359141273958200977804355575292797320348767339963128529997758211271351070119271988099479207851505259393886950582550919048957037101244865680379189103970632142113047851437634009442681913809429468618405493660194856708013747480164549105499706451717995022953960488642896497891156838014836217222824398738005953365231442521128537201806970509554752269475694541954320811859904758669632803428045254683221416026983327555295438254691496657537522901210252694817768805768341903101256034534185128292636024699446749769829385376840496747749652978250763052816052768161800236269138966077301251592079303126940474163913813833719462655256071273051169088298222623202946564138543460655091286402815869332327255517956387477589009962597556510013140258403911715294860158708548127466590356874066603247582480370129710385601086358538460323343572464223082724310358506199278618230405450229586665373369637245226828450018734674751179558701881555871442923786856115055438173388499795745129301603460303526962058981466408493845403998225419023675063369094853144828734778841574730765496229331365591462414218340693930345863138066953617425487576795126826832213696975185343063292674435420699180105609666574882356659761356255468111285580542289830750236294504455542662401245036853055241616204085547216142762356922455771685050399507828818044063635803891434160224958460657123641456998947657317195262730225965980796948612186247786821474001163144027280117834672944077186320634517826280755303605445872012326915742301593279827403802437140433112251435743041641860255511838161370017441558825102114674432807197769850789999579726352424691627355184774861341236192889541201007563999512245397656337907590589725966995969476220560232715408394652711392219125616637711686168778607840961513294220045875925414052062141596904762115804668351153095727596192502987735908629431623462101657831265421860193575093171165232292057637045517821838065639375250035617760494639805982562056794587995806863074256572686431359843777192390507213597052499867092926833073335550936024937109416605830272362308426143348916589683739685558270733670424571227333482728543518407702357548701793617502161425463739720631546077850033890210801411209233617055781954802940589458932480978124707993401004477302689912104099292800115557464313529640208112110864722155102598921998819801879970768858401953466692013758755834962696699839920626172967653770989391804864054642910689399905581421217641942222269127246759743859900555859510706459544456400066646403111615802576712117207673692851493982912248984880874809689394506489300023383855338151732392096788648082464167539881203429580552789207083227898413736008730734736037805819657092461644770639117264037267993251668908524261243756763930690065892546092628482269487000675384317798927574071511498482665265490110804778573428965236515291489047443024323654337716459245637967466849397682060411119673855398623763157512501426259307524758084056801053741210081597665746352638717674678993702511401909976739139927360312766054075423546125350816829684043338944072911351508814307723748728752768437971326000744245818818201743896526660188593147669825117207532413727938714299597728886721821667576058385255846878861074528420828869628828184393483267068155205193692948433467846232419971733680887303748786837853937211125176455376570890854673995678116827952286499521508013678586759190719326765121715725604737441573583355283578894869136263134627456461302897539646040991168499514551319811733147951396027675272225811833894396745749796073768871270170220948342291606635081208109568140912871081410363596403999851875753968695735889417229895144996470543185465253192037676396639877131073933456349129609137935651639411254257504352472230505781515659674681321754338965907977143665144742391334207847355651262320775402586478477733713609777825407479929318030465319528538669983188864256681190100044152697264330605143800737732111730990217806784169261446157278297109803135870100248128431011853341519039061923871709360876997339294047397356967296212630513453899544561137224972846665687390936524398201873854936411881334591836228163915820257655240222462135536909709238272978377773163903968434904866508377224612277995203364773501700509856395776924718104531775949798684176047555391713964903689789512786561305875047991709835595899886209823031143736498799608411647020688161686026169016493400270685029686231206036370743387399918917660740060252003211138791017248531809156726679394645824302309525380762417625873387626846124282496759235779661970116360316428564217867894717981439080315736426983713412921774415324584453654312149734269550081212227839035782641146118968854969132927239910717687847638619852454971572116556965849335288271640600526179099301694038135483174979403226440699843273105096196862884143667207139186711585045275295842125884195009447421290018179060865764572054211199509660550076736728606759937768895721097921333730683393165636273323781306729073101557680762050131617436963616881622635766015971231812697111928814923666015182123834984236114798502801877542144205464261654317013813489842345245700266068340634825771577649423190001674424637678836834374379136744644006378936904651055324171965870565117807380476221325246952197844540741958018510157311309775187375596744680906490464549637786784126595921951771182979662736648152537298648125970944869988637645931881836931191055338645113647990695523794001474212173486555301680379150183710639691173593374295306894689461858838707734066744287806415107553112839497311471483583269466450343659653425354692024192786071838687509282163556652564281080730562841344416420009370411422864972852412089047872597420459576010140686761112024809820230570969290982721858881065777055659035076374689336166929173280941623208143486506454904986889523799332995054896194821566214947519856127680934612617899373958906722158595179269267830148446733991849214215750583989630401314222759729894102451053065361313800531679327007792379937179735029673537171631536021289217285330400461051504531386870373495137033092045900752810852292993663321630650740623269965222254419044337947743243294228763841238504392066344831163041182654304695326713160454456427739306540055554464667012049723614954331424802937459387681703097176141936023557004388197138383333459433289919918000331802673368855183023376373096969045283274524685944522505712688095417058300193291960695654294228550791292265951367360951979865945258494365414928235317753404948090061939998483409984159435394108589691644389764684332921069660575214125592060522389265165766102372440219484992427341920536646193357819411118603770512964043246503010450022800130969844336157298682486855398178158962017844056201117795316481310877707445816741055588376707837616426805526278186828627135378063794216747534643129054053704214093607427898563454029444943561542749496877038775476870759560953378265643426568205223270699629273667578232142443254644936078798641523975248012454276216713212699105577968109740779536682398238032707936149119316324920298727056574531386165711379353134612161439566495810718841621711683413017039127898166449894612940437346827594732696319957909315307020777343585798016854720801828085418201780108426608305988341675617912721304349328645212813856484251929825492166289290087905861120208878739185229315339275405247348124139936177239053597617443483688999859047016161366932973498790742997567116285774621461988624832893081103998944728873713147588914657217359719331216098256810651388893388622732682790856651364508674205230882994611640289730248989751766409419411680127732355585083611249412303498471981641567392964010707270166145198693081767112761979791404028438189282733090063800616198453627179544350449975677119313183006680629244867578177010113901932695985610735850569452311534508313853926510909652903715090797427882405022304332614665345600154611451258989783853783442164474430643896236310743583229039155294201889600159736111860872650600058270868902355459284043273018826288355186626728956376183847271159882414785979653337701335993845801913760830910553814953930459287556890274479728117555111575489215331064311289198205149203441872352158855625524311751992229611263695181932578045404245844409947447059977414786624420081991486123206789526550832357274652337806419470787819579020667990169977548669406221560887275084091430117419233804610191798459485479978978969278036247268446883329529239600508804391782161592940302711193602195622269659178552540822049593969961477480880731695297810477640238927741930437419966089149718786751312047299661331312732711402073591643285465902262376613038631599909374083533384276817804798524309882359098990766598557288166956033465011032993723546723568976326982661854938328975740291230938120387890496125195268576449172884943368586288331766835362245787592333266720344758780289318337472905749454490806189517948853374067691181645959733275163822078123227872831625521635924411282451307023619451809850282075833354806648906075187463057913619530263194726002623297172133786527473272843175134198857922039980041355690970535097669047853264673934195289127820016073698733220909867325999022332915469657755152098340625866023891836669897151557785470870059221769876587404965490888562462065038673235050948440244855527476025170658590507182076803952955031487225587432328975702569394162802761953725016912391033435267712847807167741144809412833234924578916823414583818453909815280068312594884402450875317910059336445045900261130014415781564259959047138800392593928396854449925251648409667605358692699804185813188216015855873985974422263320102055460462408137029357733061817151380621168589204805008952786201881636864743155263265314708033558330731009856193189553399864169674403719380294775438776108193050387161607024019533384626752011819060478821640175631492023982945663970789038307639767985601406061534205780528294233824330511809326146463196980573157338380620360528032930271821258482056201680057918356545686878012409386984877404681834259111850248656769016709480030495075296784523443286896942671154571455408975881636579165384290751824504421808792999486295100163927671450279826965095832948152112304185220366503593481645253125478907237938060720491044463211805494264772817647453188410370922685745409747019329630574389003067503740421692638353822763979508170670956215611507081914961689598007215989221896969212637128362105213506304470654881740721327547916822140959105382002813134712630757997413088192657906325412870898050019212230112953016080099880472071251674641102524469626877769765811762538561081737371278930847889682067621242757783834133223159108130625646368630954240431697718920911610981200273184854191334912750111389420986114755129886959264297454145736685922316744020994746449960565225200343344741887347369047954231868711081087373400722853896714034406390788148008829444561003281768806205831219499358705184581674835269027291474000670344519523802335732314447873324800602090024687492194857255889904904785849292249160815401208576956266194427863474955568434254850587508495784722695476772302046704132422774948510676666423441291282538960645351115516248478723989639769582312129858625504399367874744804688779183533436924294340747159846782153799782782501108390907301333726990085286654594258546160585865341018092684623485506039592325999019787338113088876338518232802192957612018816010488401163421968237328979197255572622095457562269551466624910655040696711399294257056121291025675466168487052271826227555669965691650503121602215622464252427374146978258557241818540942572362717420236561155631889924181104357662120898135300295618433832988642855014569666390355700839879206921416103340926166873798989554042657571389533679777472338818904231374536748737287036015983045288064139059744619052778529536861062591791684462641008328956746868223419184120386670827813880074841432497237452582019453037372560218801181660149577277843059852749604652336046536409202572929186741474679738115101423967015883096868416426390086400482256220688194418157696671323938679342363842212495829178185875745640615268796942760354346190617826592249803258291212569431571991585846935720669602902564474831654028408603249226012705563104123735310958436351732748781704372965946744330028099466311886642430046253719033461830727692917258034736999753951103828788307483607372865143137239130434679959632925882512559699289031415307840035811091215822288467007040675870184703921695847654978150402617771820918731982713432434501606667509924686735584327768503509752281837295391152441999547464055002384780329302466641218831074376932318543245081506512275843972368691466485019191951393296742802539501684311708460403171143133974721779917067848559975703649628917818150575634309773844764428918253597684923674485207882771049640826730176296585801567721424241898373210020773675065504128476886005766067246190477727178188947627525533444071953829655004047167190840686786047456147167691028423686900338029175088398167345922488459639831503518015337411561769254655398980791233502410563715160709909440976642770664262825791653707870415495892386903432132943774105063134957390006805236719652271387360418318342438789327636972545198380814206646219050582510192019809296540217216712514943346116006239496204701670471059710917543067403984625648903981629165718930926835927929634618703371881797104368612696494481547661958992195370016876394730097518168817079405450796248605126821580424306980846079772277826338287962925956108017377151042615990175917330448968968703261566147897097627577722333928878777675680579893528746121454739396514557027398028543741176899097618983476964978473246117692452445575721715750155658171861706190850450825328957176317279974264864489720931371806614667202415898199266423170871854659254381773087822317077677239574589138038074022668858274619354577559437655423869355533591659216367519898112332115995207312936208210536722134066972988334947251886087877482525119125608988625284992915381339714762705662778921621353117847429377495932982547374781481539885696453571707457732600033138000816674521361372406763408091476327902025304577191823347525602907073520822509366099443313614775534603768564428625020938873536020791963457024820199075807754505379132979616225634471054022305911039829546763086449029099855060657688664535574167014156520274650506529625010248947058201608978184388297789693635963140555767547115979899167286535344388973602236433309280207293731917144786211471586069574371521486383558212366571335746554282799757805797965693275707745375540664886200745544986166861250971234129371613182189783133796441845683386055771468696775454238534462559569061918050972361906082983298333858215762245441600079672566154931217897145606221513100409494682114549656454191626868283458481153226707799673235086920687670294936176539304234799929831193102745456698159797515155408353017889884507193051452215081731215002114023391220825558216097421930345229251948798390471171309868708455831819428010152466334145556244276004237138255742213082009666288758270627478883411312797162811103563319346351819760281675988187406569381083371349986464396705851911148082672502831035697699302358242623080988233686736287289130687956610398169271426368374216189349250892323139158130040231688727072297721641551889817250244865250617775117333091618831026742507501858460544959043377877821825592950808059344287661399957340580909600292654115810112562704205333522037066670499380764204334248798100356646718903003973699880395518581128649964922197677681923207275999173863468471554963944506722039154819465038772778308582143227265089264291865649175565572356011454182806404552678294166365923799467096306286994376387755996994887657733915565095012597712533631139864894216293457083284054911579684671586426983582009305133071741933017824569162081790520567141223383204611492752062605943496158074368927001551235870331337562364328384509811369531053636676342412229051555504059407140473979439150611244678915010331877315591680914046055513105109024560130572104108181895442527618703638562115349460188809960873579556741245912990890321304889754815458726265541063314847548517214719047457416220579997792404260805752398014172973350694200664459286323455170290705355911983298002915389861056718915958460678928043430953978367661521795079015854916512246761916603992770579972037179069278645108535337821731167192405963161818334109089347430002568699263199906013176327661681424897739196617882135369006155004572276936274837057761916933489054251867095683366726350737325088647020767532197328746292876246567239142036028319356014769892006288301893651992832182804981201028951045211845223116783425575683968256881477333510672180376194015619252496939001090872892057821787245788705506189783881544642111803632086726481950900661732873494618537711962242604663478147764063068498535718804879525155174616792959384925708637880369653060802190818132988371957414825250321545779669572852068762104401305665771226129038571809013620861663408852128842397994131432235546286908661101420251009583308780344077771715791299418439217196244393033741783529188413285814182476741000459337531817804883385813951644509999046013878944695132510011825605863160861914773363340492489001757676361947317097891681215014123619354919550417869964033448668989333467170335350801221003166304744197830678909113404997217360547076098936793160385916854737849012186926356513041883037929734329134597845268160532639313434365333301602851365360821218138111724204653367059411615952557605303985384413410646867174844540608591341255067413572351254824071832512605304595110573822062777206459934909715047269062802431608222049804841251818240966809658979582851982530718821769328056334910392855566952613027754139391268556862878491398784417851252239584071523726000694015812704625099599121778287274689672226214977307409878044196458765059992107691384557282696025192315169456462815130783430174616107032915350331099631877086598209621779667470013850023994510638716201693921081406672041812711477408130121498999857185648937698823184094317551455072204559592902713509415781753907775094003163455655493658949978183061199185340624124328499379478180101754143604633513693181696607627866051344825498636313754512414813922887915949444044776704142484873258476979084321607210616640233256961505681112391853572905953450344176483732590465679140222817733347085761205732957848979879039371840808808418054836707400356887166287194279963110375232725021595222819701602584744259869687812901902872976541159431330123490852066655278296037671706643210116455689645020568923869892904326737185434982469144915824751245477268332305173886337434766124224909632001892826813852679128312817477294926038579013659357424600182524985961982640148383659940233885419212646699415086388994266327106965571305665711212773611544359281100681515873963440982597220642973993026492561278507962641076823886345769064866207433165490489596475560339380554561508970322895195802587958714230560421474122142586596232386092186238472082817231600092152417565292309752279934317886297563651821082081021018465653604248720670523513655667015544832763134945980170238324875084539166989232516215739315341581654735223910089631192872477899504670909639470974873862321691657904097285348452977934531016169871574321410864256359345521986035893519391737538040846336609930672333395141099823602605746723005635205955218450889112587166729849298360637715019579563177861324942266972725724918542188471378593533311807978232366276782013184865976082691051478549997712653869631829750476291476259915027549950660884863195766604950424298105894999451631037806281750343171900612397024088957926512739481058059018080366363494813090268033191327612390370417763542195687277170328727681899647389617593888181100519947185950635215272387085199380965452049761105751915456086826447771996795298249392785591857369724508986246912434760519765300505255964985559291321973732643119347697912973368604858265487809982700613684739420456362194335678995891295058757167079732788289687913200662220217160001362660685766334080845394273027683379858471722547649207852634915220327739695990642231989248991883134203134987056382837426150688642102823798541228671105665510398015935548892859284403021754070491213397205590341597798213511509876931281437301613623681941093105345173071118442207505790257679333671389189172302713554029551872690146019446296514033217385276933482933615168791225855965344274888545663432980439671381117040638517144332467122411326518164947018591869651509956309613461843461256665987666391926502455841494020043023370384607998878340530723597768918364491342483846422042579887463153104246339816457609325877270606256732381527196974348848671058655616844263010464045715296460830928675601612830751116216038216114240919353620995254186837260857579879813022259012835812944971855463598794929072546895223589526354126764672624082020839454959722209026985369836657305343661254221475981405695802340978368118047787840482355635277076949027215040155607137380538573555065491464184308907982003072415754996760414994622946194787269684072964771387830487717446774662583028107373490032973390010262567801443742779893086199794929414869417143582791876336828553686510120368447890030411818457445045381627228268408448258879716847293448034075872620453367442288009338481389886852635992550210218575911766425799147350862410578306974296524922686442022851714839173752402373134085303620030600564330988106103347330886299120297599444418611768409218193893672111913218544674493874572764212666786197037489427982361678360173908098965627456910314761579965831909897408901004060417662026174862393389191867664981149021156107654010421232927547177645217534783831953725400175261828300166430496592373506295703224128290926902398831297367425730090794342900329013513201519941651156042743475863923161626140278791101082471709914235499405505818860810659268852404398010942966353061851129345126320609991384762678505586426807283245742538163046857424960951653576468812097801373051364476515759474649895082925121708547905623724794120704330141384228588395251573997658790339789322383330909105408783497467801122582011677298958996121050281168514929396369383817492056888788416812630525932972462146994467583383068918164676544539272521700252329854139322457628304327575498258014829441941098520356335600380667625703732477165590556041576510609500345210094114016099800640673443236060942430420459403693531926355780358262955393975031810424724846204508913014571966299564265284913061715589843568249297676268070361074435053387210339231642293288121771903891676802733107055802282725235412680564446819854352776940616124288638699127228129996768953252770617562965966684416910506119115469492864498168833501835826675014800058496044269072315699091360968681168105293771668226803883253087017438745495993359511359511742108905624109229197016218055099774406445697981108097362500044419100891277061312055946568802959057847465867871129682550595733473064730716893551124099694448496159793505764918955012770619129467749082517512527839810854931001975509125811674469475464680677194296898069334601175554002766592114794144243178326864123944272747225153632204886086630329002184289939190521491791271773408848721779293340013736663734664636846901339407799912563160920401759121565201821156355649319706812138772041964941949878442898379832774484980942384886722276409564601026418698851228594709656217085414202724974969135313697604045376795826042297223386057613671706041384352141842327390312365335035272574072098269123773949204430493994765590995426078506203924601117668334743918913607822918702656870837771955997218871689117212838552910606310547945810329848094003084851679477431889924799492878994310172095540767515332859540457111818545172095684138198748812293634497753921948731237279289804431357495784607942634305500654300612214017340410742633550835319058373188695937170380255307729601379060969753033227757295014081878876067577800492056281890658802122418057320041490973969626651027744662660906386331442072990905009202753453967407057438504432407755060984105653625533746626473899319446554933545156867097712090356040427325092214955769631163866710256603378635850485368402897747410319794910396868488780314159359750708163996247626715956859458542649909171582464933028622874072339502329068497513767052854929566848422635695416158394470897486203117442877767936766958081755618189774409585273776351541068016767247327079432143225926106538034430351922205887207650515405318707394882160828411070060570057756536562026677190274524888705443969723301484716931979448229030329377378532576510347387359535501284460448714298726081513652208738709074863428886108694446924766803125224362992204802231515769039163506431659064151050669891571126117743328365514519841527438585403852098123773329311739632267624631540795083754164363872766238263794173512507133276153138880654970012542436927822987232846817970872182649096800474980700138762986855493284817786293930719546027329873597264337779489883879558540539095862632530481069113590487054656511517308196266049176176774041355796488677144495549391470513372011698559347479564309989447266866089094263929355613732759426782675978923459523082629083893349186087757005631917244675617038614046633048541168263689807379009831367748648969022378973157392631945891917182412228861022944619980931534153597500933893589845194081086566294756084425872503187641566424828231296111235057771650700508196389904998699624979939765701383808212049478514908093893269067873157332662125847245842855329243614872834055706192581334761729144642510404025500495064713009158013133893104835032261837675494931409740670756740874348461613789894668908062142711323029970095557547384182454848608239095833839465526026924338606291790018623944307595118838253061457066844143186618358623168229602350897176209067106537396583303259841540966084234912729100220525613213483836313282616802458611586804217658028863434666804100790494483354166533644871098844689234652627646002382135627767323256277787578930349400678161318839056610486728858532931865052124280862153735867019135607008362573419808006250624540466729295648676353824843201665818473157498858938972839270870551811781922280855753634600946990203503889688839196224481866747278642221856430420680718701478714856724399673250624502432426849134987030268722016565428802839031107853370186350354013868244373721653217316094792454225580247769711718207417043145582457642478485642934021842883137212270182915450224337190293297696744006160071140059402251815038346226092359501312794056115538064107684439685951090459318982257098992627627473905575720675488690777844637850524285825463505068220609679785716264176575458746562453793781964933689056022241487920124036710441481262935379075789024265324944757354118188904394392893525382758698969839596686235946160330053035951275317328079789414089487767127264627477108329645000979528713799794374437743985731640671035177171929998760315148289081191694309256142490052702632912779404314793670455175231345469135328725307760010891191601197712412429570952011467373810462537895789967053839016160561287337241806165456610141986008225006908264512081258205562584155538709953799398123046236307666558178509582478143286274021745404757061292399522179835081459163033576734711530385346181778811399834391359350453277235898201874643837302498888491319208739135052116842894615544527595850891030045368835046188428320073387181841934136043852200693253361516784819899415094786085269178750048627917478425037508004392159757637595539991207185053055886171082610944898930307710427607502800677616038818710712106456377014503563744605173325282378754621045649910547981036214112071085588803334652279375439056360844966910305789003185289237968523758327343372484898343193380181356142203452158623453708613646844176868054213230493692725658445220864904564936968134257382485243759197680368594292797398851286752510830987806573425280760065424188823373368556586964896487524325501830397081966482728185657759373268031801666429579837355245657082999859274372973862540618340550422424031526585431798442985599664979382547788561982256731135945501092086709885226247314743989021913875120606383077043787870113109274770898435311797644015733486313544784788444116098420425423092632943510830177303356765970522928707226598029867588339702150801967376527600780830172033351403840554901513779126659210837017521070317704187050701284754157145867174926759713263576364619153283793709853373220505395972931973218713495053601139497570838998939838557227185688261055490732748847855965585760371826519473297722377220431661983888560352026356369492326069222320790083201883812720905834240253926784096659502623529440791586917424727388498318457895237733260549021351821536047933518850249063852770699798437672575987406730297818079672264489312748129430163490361647498378490880004595372091235585414275835934504321001790597067088986450391329213421861824214873022362185517158688867004655261803312424804126553820595626091366898936254638631228018897093082817603560463784175977754784546244712081563661048315029972287391305857536112290642221940188036234094459701388447405937207490278723460550010512985695964959146875224586729199065169781495928754376513951445582086679446209916755832142896536134437343557253666452644271379345184721722810565843969259318249730763532627186232449230126670228752439966321088396979959240960208522477456771829064631389627446993595412068442700576216297350651304804926188173021957951737664677350793188475661033527443244686464297063787772444172731627813505621430623878598829300761429469036027115846393350306244502538881667918706847355912473167759018934152110539181192984418523889250253531275211562357501622932065970472448200637734380805710951655751682909893815948326422089294735111332920044574937719580527371886580398474305313804614991680955035947219419402398457711451774744221060956392235770192390918467581554841699250768625634360816810614854965151398525927434098489689256388339391234466150595216341304463511787311905258573877802555745889410259184877613632368436472298073472607518035727751544571743334152974966680303047842297072450406612998370040263791358008803449363515767896983585622073319917262682591463901171008482919123268673905265329582094174393784613574880904372833535808537438167677614402296513335194652458896131318350445786324923296663873130940280107212345964681826074475552169498475033367169290606751753025430287493718352377988148091065512538500683209867828313884630751890469855138567324758398890954235086968105793432280828577139338640885515967601566011107039737117533571125843315274200490548538049162664125245371190525371577475552679090617394387823516914823702007667602787113535482243248594900576298792580589870131819326720424415062707774808328846749782234343610319985086433159938155980713839495700531457347064586628147016270523127992783070911370827689195812514629306878931982409824476498771281060163473056817811833273098254904162552916899119346716413085511031155754071080813546895339939267459068360355676049933635753868343282370808813756897774906232520038870447712059953081623587801284338729601854358221545961533989554051390270376602046519413077265177500095726876987531297686831374267517989981199997784886638452426275032119449023556308370908508144187871110114100523573229218152424346191402074526510704082107891741316796350699223547800473750709352478985275555153312706138093517312843728283657745420233095138370421987805360992943735694841199824012395014636641321965298301077992686445014194264446902882505681394260061042797839600993725142768159068922521262715642930226959422321550432528821592277007533141785277994684105643382764812046002929021555548063556593922654613200707242057408326933427354726379613343405139183358299784930946942821965798219122755654951396173993198921284311379657246556346577864713246532567057593282399677294655513366057144090571163941697643534220193155979330325742341178281648303944978685996490930608775306700105868876407937665874598945778463405554821356430466045929800619657248681259955684261679621483650685904237730103757457191788471188005957969904784352450458280861416308982666000937215788663583235531951012168914331783609840058013276105162008538740361211371079404433935913406303571675091089427344159043185440187584583053913176310588506914201875813291085904299793499289335718869106514544986785098929689632923736080159484054695840533043890075885720246166994708944778965286757179345223464204952766344772384159354194451071163992804210778237570442591333225272984453439328181783897553243363483805812777852204752539213337812415199480946549417465387222489030481461540674645108544119328240417836191421269783793079946045146511044896383847900837378079287089638094682310916475919162401071112335050398065334982133056315597314085700507757597237840591454057273935226028579893445735864985591328775545054083886529536891825319396935911314007480873180222657472161880295607481823376218946834724495304591145894598530785281070808287962201572299073251946463027419757351061341796572376715892941192403517438689743578225255927899940501772682702954217979439675596190738375865985981317866367408726627105501267200068892237596561857036258613085103836788769818587336544705369883802676835054854929274941042378701003509871060049191295463329673835631215487044665125758757428357110536890555236118744312778435170174656043868512528200550360383157226456586674581676225071628331620889436339003249121590685046148668808194753141513715979111487018545511832495020078406831484534189045426557745764752119162912662898307192041294829382867519106726899566503984786912515439646783062122866305128734306011645819475192784663777126709216422368369046461752523241809495454086771252121579631654749270366578104569417767749600979645243330733681285824684983914454551722288153161531322902605557731341490619511720960540071617890609664154340609733741145796118868274434072997769710043563489703459345401242561358989356364235063492400266812689638622965779358129993601603142405714586708258327482636485197088574733504567084602811745418094002142428354376961692415907825831757540486573201717709673884865882721571665723387958501170317979143713533452812814275572925279809534058493242155765247410536999433474278516971872066877480309344632553375864940427592030254224797206519832507110940978634409672443692619706544674868833291322594609732228495865348938800825300577551989371008060028002359460962632510686674596746674226896749675733149210946381018079952284741175546902547063550192257627848075258659543416778470918421935669597755239759011842980169948485033218157217976473074241374826720287051258784753545629121772985115746550875629464786601457485435962371768982786861713677005389400932517588571683686802018518969674099256620830014077789715255511342368580108840883627423422321581314335190966482303392266886101452260107905793617444523503408984444528348431069564198788172136268239403990750670697852513092393096897764482544491200297085800225048171210578084398861683286099280576942371488628532437234934548159500606373543209499779600590449912730897997065422185530967516262140721449063558628209843283509457794289412751998283449736865724101247727403218972967488946383143126544132364638090008809211514247090530653941191952851410539750047035837679525271626618470026927583721326465127106711523430339674333856307246981002464559740389891556611123434106390997502217782835755405328069155601184318447956402315342479453554390666656855575881448708505654095997565890132115297832482291217552691034553700043120032136868595453635030310942376604543912398926524605373328484321115651504889509195282835031368464002214631078192141703291619245158876076435228143704833240718160717061574880781816115630653616292012870220720671321351960330292005899920974778402499576526104318832761332837425085791164774687551524296796510888446635963616985234431069384426530171064449473944487699063999400344069271254565094131635166021229119685789137015611439600598941036620895049719963234541959085112575781999067288482161198823158707305676195518604661142903905049798823314200430511844217108436093207800932119574999728651346562222274691084141024137635385735725307421638393361689583101548992628242799469167152731835311305996249350023295195906780066161021678597162473192234361288204087053477474549341870969542824807191515861697588471446684831129830071112181311118647446731611406548305537148758225941878579043863320563354181248350321908571299638594527141374718938284099519529166526514972024932963337267402714464223633309092524336925490346565080899340444664111681088903865611798338231111485929908288262610518939270606862919880873452314034883299592174150274447486260362927973295820404672356393152897006724142976665186013951626285752500964071331649280947842798452656982426202858746370306694982431341945945182658952101473474270585462734360631597103217441531198050505887244682793283075913026667367164206204822773063464315259414748984434335718646357557165775087878246511169273764061279627449757950562696327759863297415899621188563568105109196132597629963739128327431938033068467526279840883810373569188310884900729897835858873933456138717406170088910903396098244987533779009775709955998484011209896977776024835924976881463668676934460921818315843809078337873931951220777247042096031452010886480901290812661838244213238612916521618437131488539545117274637482138150542653492081878957607978440883298395380644758754104572553126841101436848138566294175846627886592158577196534093221265370372350329914482859409607844285110076356419491033327740619954771179363439264286489244045224638570460237023822679712281609197437528205846077403916840236708389501728620988833986365973193071055025592052323333775423266355106968421108903480245149431101410858682150843171451149532252578219468648268774819367523877198946274477462577020511911952993059929511263487443211155990006762702755871274546858559666018249650470555251119742942631889061269478989230183073959969285261638550929294463119567477627669316483438800610594709075333847763163444768329195089697193604278504921264144817298627316776349500526250144878871886703528245030143427446102279940205340497499338307168061145178653384864134610748694472704543725429953430738825281201288820869062134972673692223459692303134558563704823868715594205007542753371274353161216810564051094707514695690962832852529358113354925949248215475572571170676164208680806874996437627793963121879884283903422966575871522784103896621123752996649104477448683170913571952380971605601208339221737910397735056862180676027928705284507540404543492843816899637667427189675200871628149743184023639892482941780106508200970175604311571490045718498559823337568879928841972266496242100392469198061070384644018009686639331044702220876621831346608099728134563348793164257795895675829632547761706164307628196516071806241983973501836667350657442910416915716694907663356212594650845688656031663816388497368646738607151161888021670862688887692454145155217050316526710104512309045393591020049948054812856125733501589854582639846780821222083058926125384954984850996421790102052554025488946778769110222093410820382003260549265372459805895742482062878160124807440279807399378490123800726509613459791162931149413123706516082351989849915193792150061300722041535481582780170783043012739326871738813984387842283067236641980557722953795659562523413333383225563778935107612347940405952551380838618782919883877006534717527544210083296600642035795699768720897756822390922128135612475721862656686553964895009378113025539184430632857567181640311557088633829297088493447048975585433368311106504473957772200060957015381845036502619523103222823862464453360917390695601271069609822531313111833461602135994525445003447052322775943034672808039663203982533448641755842435834505870244627027163561283641604204389780883582320721068056791142970761079450795542484102138738330546785806487203828943648985982042702246962305506772614937931527274802256802480340474735421907826696006609270339013860474955197830631733105089982173587642774861087019294600305525641594470269633565254718871930972551692615424511274646385716204587946955785852147069910094685575982387447633328633721288101872681111754614510312452583522637386312090993031508515619863808306763937461447455644874842720275455846678992997863953799510031541978284907616559100537208353848391916717745565378395880934631329321364543936718004979762903691993990558325486173886083543208841468514384979509217224762000066056131251981871935630347786086685024206285622050152504369151088267244881091064851615481854797396689711236232159596095735253874151265843152716650241757069089703797040386417431839853725519860474134165160224311338572624147341201869133815743026471546020406655118981400632849156786404555915948495839595003881012164506079089674285502412199617094096578292335105021250188774788151637964783334837978077525611292344584245321617390742600500166537450395586780675384074620727345300581471638906486526576819874728855927657643150023817984316488970169204845406525933415644319174679078918149678613676843800471362668274447222678063690423978018056365360589398399600900792077637834916647282604495763653928782621357286974345799261224070254150320815723572023700884090085142574993653957566519385264702069495786606367352074287950645733714437806712361716834842985964230990964932997080304414973537875318859412462136359727127586480188840160994018792551820297804005134334150623745039440745520658361822539408983591275518659606720508055529686442768223680005952672966965434723466256046275217943962864119779152589287307799242063229366953891957700675007044233926305138994861054287966854420075949727202014795073256458094280930442304371286261006945193311158278527159097758992996455841523644726250869241211030146495507356416085074000827554212209994234875484928293352652860873645300208096249819122491476606299776019287380377584606909231025595267905989886044728512370377273217208156536380169409896679836803185604701703160840648627543930125392862812263432462687294279289068962160315447195657661201269557216418636670785352808858417751383292865675325326638300473705853441289699683090890585318468090283976876605399474297948992442068597589959598452070087391171183947713726375919197532147320343993880519419280510375713215218036480754780815514918642170819334497431643543219223182478125360562548429985558681350396074578515839744692689330324424726020320956866166879952256010192190500937169849185879068433359192245136700235742217154237624996029900660619409001591838825641919513262552134598655678025581106586103889950322394842713773977714436892375151252730810500720151496995361135806167895598780482680144008729817562721939129371792180884247220269890385216244930510377181644895168405781686100775999113709394795819877835528884241007722186521399843549141137746528010602028049937581106481965578040504848947941415840530515348813626852129999701674190017006867597933246312523733331775008868596284066147779941961722999656253959416153912859934880477573895151744416818253801460370455155386412234804148410716645712043636715019559225427334596324152098076496071837180251117292010527201108740037250496835773277687616695827683926980666257465528152112085861586655936249225027364409326138836296157085149761456212671322574819262314511114446705818590046500561485952863065751683452507425806694452496252580138655078792003113712043747975890524061997013117157705189910007568530498422206980268049446777402710587570737866255989979808459866655288056193139023556172614007609253240077460816573901495708699218156016897810220773056832218530914026084398906258336365050543832566950776205002528148484922027349132712972774110241177632536356229980950571062884264467508733103649493391709138805686455935385787506380624411341293690185562671359718712896897638089986644873464154312213791642937828120748013026917232229510211723080007928688915477364405650551824788267987637997239251381468836772515285105764613557266294274593660366007629275761805260114303651302950135791356857543478024461206850161916632500946635338072992250627895350956348845131422208976567234708805418891578042337814679369684839695342961435761780413618793788088927094036250267302950240770848190793792857440994087188421710059531275198314518938842830486481518145003688555062834537811793911990478123217176070478395727854730952160523408711303131773563399722251664894602355492837735239449348213780191394344014367960460586337565586186560322258508783139661644599941348585333970999271489550995083473281483840579113561952618269981059896555465499146436965994268847021935211467007414669584027968701423249435931091858616782210817014188583044278911310801116648556402767008836080102741657439118141816174582776027082713698263853157097626302428070413906665172213303008877336093562424826868844179428683780017666825768721573731289173511373118982499415599803023508517228105495242809220293134129224746562738578722621915930194682632953351523997940656964326285780227136550566800067695248479561761330234631912590430863798504278737886282728796955840339213611327247766241114947125040765890399837833464123862615843962729164404061269975905340884284015565885636116945636655848788101825114298248871769926162971267638815974114354727379911941445746173157226172496364961601945081949775639268149719734501222916328260621248471222045147898611236058092937760052493329565148323939524157267584921276661209813449861224712630221279395517203208472103722346048832443370662400282012171617458669605139173039951845250434655983608598983739066762029064373611283277131615319612126194013702154996770061543788735411938097838747461635020180680400802121402743425848846130783691117149890728388746442356618272904218164401922669057142882549903365111806740086159870766939038647772593271157005595241516026900274739764872109264766744374234917501075033563806959464893011312043983570505086307401230317696250744381185518643513823617610915878450602102889307776752218546676188501403570665222925905829912485992962756429651021733834511620776742197427580406689329324774896802772691013890168968360599178856468000647369225555899570366756532778616839871067828158524086645754117751824193646468608779685629564347851413066010836495724627538278234591127200012861140077260199046753080562745583649615081839102951712172576544451355924936293049062155513408796650627387037077410905134194947991681778856598522680978537924442569406660511553778652449838819836531344013700808830764622136882805390864414091881979401916130293073019339623677694663200488799738182744667699030661003191832002777574396717374305311016772062129908940482769369627542902741742168884264420649798773635518378879742860504746006902558183620962066018120296881781237959150969115431648388190735698862618387709339057309026409456385485192336168557804138761605443613013876599552018277919055850081205064603576048346428595293936842665792440547087435775356890909641750199545447590502106789853193014977830706896104739737129785307746161521627641312473530142044973053391847886012162293687182419592386714845700466982907933709119639578069459439231916221956592350932012147157029605578944598998548041896307391362776287933692223199203837473320387173100697744090372236542769726291147199086169149699529336764386534334765449971046141599326794925690464469358570857395487983270444037715836004145027224837218229808288796640641188054890042184727574862832600792182252957689782580339380951968500896632809959036929720860798647613293846056074569354208162878447975379042748086841280004312115752196994633987151988700790358724085818731517343273031285211581588740214122003678272739251808382829878280024166141828490411205556785505371341391085625514369869782863855383739348591644485560825394051018425360107544635771889923765220571817825798538098252136218951391476087766551753757825807912252869150941545809494911223599691416883422668821376716791762860435733749531073305428848254079586680423260962041812411038991283018624248506061164805658764957679368923894607395214076258419103368331315614429632608770586474293225786036450171732961801566491872882938456616967818782829408835675591501421271452662904199267162204768063942151588332651235660821904692548295992932486112703931656373685872838464565302439501412877364392472396003432450284569661803135574923398924321465915505514922309717400257062399351210851675648636529539605640518565141034524266968930563581440362919797825464585829951418097832321674808160072871458457693319065848149194687797286245823287070279624133946094712057212634059593500555692461626982072901389190789756486625677905453205656122914200837104458128554392453702243843158246816639781195286187005179565425072603878362304044997562331657609269819323597767419893752105049658031587141810817270337540441043494359478731373379578136630459383228163073019589508851229500451310675463947632107029409590147225530386441625445994085647548007395292420957588860471617782829861283373807109873942383113946605192449983937452278750125223125311335176121895557118283147899037934829816702135619785480230445486289060025165800826863197524599506293857853288872748585499922912768633791899308046452118121437141457269629647224423892751472807072321056839418048057194720253064895494780310814490756645214099302003425089940914890427197391837672902336942336420775608135932550929540508135154815487851051369972108563903531854051974787797741173977643759888961797503962267691034833989621518666024130817667385717055256804360576727138047073218364741752647479968906705207571659713058465122391823686309730522506100307040249618981190532550654439826743596115846744286939968637963131544887528010742441177477759884746544656706470919981104110833166227582202190200797065118911891960261548506987280286372741353069590073347035519093957682006228461855919781968489793029070075358644800808688640727477686082033151336054760337389579706839935410702805386236931722990368427638454073512564164345008058761069778454316630811910120766038692279988520225723505636745556411402159522098565542939772520849407917013960753752907650214287555646834812519054448619766890354658972422589408959540493284799116635896625332576066934330699740097014690208469927450025932740375732771397848031434769611509345589537463748432211187168407038821865055366670086028762078947138011242580808415629495704704109475732206910009563585222670143899784879888212339814439631947997929070458668104305483519295616190815456418135323832868294138963103549741103514286349596455680268278324397545804226496107067500108100182154999395193716365534102928937719086293133810488972905987141389909751445663485637170927927633942022674488484620824483337704975335072967269583512179534201730385634249046930907880505501890720666981663470717650826830439816989280013670302198320994488977702316650434868871707267649153917255848648606659033579085971669404745326746484789487657313107171040420167379947248526054179697704497140625173775103504886920949677780400319100224778865907150517474836381435836027648768883259111178262469344549855558233469109068022570713989146264105553051807312518567426347674960725469360432884125402312729440447749379973045209897419120198925121710142808561347098629253609342621412058343772011468260694134955589950732622669296364890532757499421160710351173694837316023322875896674714161528378051415793688734525369798054210499933810854883149563366305277440633805945445812489944402603122349942251986647285700356514158125313892019488687022150806288288551584448343867666428977374974676683257737515918559996621173325949302611816233631089266068510114103202559323504178742348255642221629231249601420778308705938502588738033095812103182189228876958856638470760871951979650367467421446742929549209304219654842724890076968944681581125137918000429278819216574833501869718047690753548558165098859940994071184711742838767429216664344631777360044421175488826129301674940260630542249004589697315930513371969078761436662981113207580891089194066262707343623967282045621644317405745633915232602890653992855599146161453040171595113897544468674676090149626488465620777930043244051219046609127313034767561219847480836761473003841067425183166887345998623256685172358521603521981312281934203280869764785736836262626457448045260446765807611170197359143321430483485968014628920265372862715697556286804824722070379122305996991993406021757868763532843648779429066406194649866380960963108081100353194613300683087939436211928358513296756967940697292912427448358463448148170741545880216615091864104303012734377515246152554083682167596079860431114624744324049783705959472297672277225683633389512707730710025082733127486888900522195480758492704077130821547693947436907599779536419989083612150382833808664440558821021736811803226691752294693461756498940624199356841973811632396310408843604595070043917791253498749155524995905010562337525032557995646989202769220218206238625303749027573947533409100689084787169573396151043556776284750891181836784495383223983976958448898661068255623358427620344066135457822481597551258850238355192884441840008162586160457536062589173031816611655633864541403371248536696280641528600018468908687738861154795553313229070035864684241859267970162416961501608813117050871589340959537872403994927669594828154773121894816716591746773662420031774857533749393925526489915422753354926593815020574751789226854290214528082109468109261656191760243304681092154041929074112667623288141214036352023922487451294934850245414727966446346289590372336956158085361065845726631915140042907791461382211184543859029234665187597492007809738275327706548107850325688826420641994007733848780656734533168009379127897269807604376059684166141408905779157787075750542924211382480862910928102977676689060025779335337482918917611181395377409843173921657477930018197729614086359398739083014259841499750235390613040693742490416092794192096428258529482956117880825421029747214793019140169231837989926435545717180595418434787212824539618533268702482237803482817060244375227920054743166143102506153966595756583008517857281245573209820459416525553677238432467510009899236304100279374665299222353706612600538316810246093583038016788315902261742930810612457035781311549093596591566947110112411948042763928315062088840429009035559056046189918401123559749068162708136394307423686728115957667229885478843546992244325888813797377129304434312920589981219336525228184107405674189026534905342104742618109070614016680282587445980574696586975690321229659555607810260316641965977482631445156446556576245984994778256485756471712076094281771270348342901730040234859229739601819042506599457780543424063948991021560864638181956173413492653215738657374494418456288877682459205526533694762428569259504681504626679570610381426765681151869121871192709462454634268700723087846616615040986928173007583828191064182879960861492273041326144032257197802301151271398388887136969530273729864757760184560572173526469466234677344531809685950525347640629796004241822341368000076902689898186871077992679495310872370244754620820236903056227985759705833653745700697345507124724863798397035261996262897165108660928652319691298057239287326657520847459750823298931776929262608734133800686869188685532593921262684420617943251885191760863359272823328598091895237103506180041782027646572952796627612512387406466527675772636066296639706945017743758915527524438297801540166584654809608885111488928614051707988204026581181852496611096177198614565380913634477220664187096918884500300195952202853147667516824578484214745521733414711167947876496208530902895708656954112426599553395847066063144128055812620986014064094731255088432364217203896822935127897609499398902223910898471844866474216936590787879678455102532819066713745044987428634739779321971500684418833300938009234069287464968976786233738097447662233716714705762717554499001444598967363301431335372865216456398363839328781998374283962553419855055066739951775927504428024739620275623543139413072805978341956309350732695461346477210805363463957018501070729126708952574787954378088297095747773478795917933388540021854796942914060121065644502506269228736681906455856237045781860073857199489784961680227703561025169207011331133328553709212468539241361973945305906677759288207336610088253920685499087206016284665674139546114928623929199384262145808538366166440229362589740210876777259750130804882346921501474848731925927306817012941083942508033838091448622183112271691701155531625388277971154231812077319138612687202474819903843333177732607662524998916956695182211027244226707493933595840885469076135373382259514976148876936979504379958672003223658252816616703869794505791580660364938599172981724822815751853455881364604558278233754724470499494719111849725008639966715919976222784751047066885120416932724623100810367483893708470675422422516882375402429715259910615408785405160012799852237942176183130345686756160003067665667148583322272979672466597829016910209814126921010128831485055401250346711318574697559740467243681220190016719629250770706650650587209481329587719379291202827600711659046329008108618744500467369798004629680453686495171823216941189735413915197010523641920977116529214769525748152924200108704362264587283115112408686167901536357621689023318078014340574647712097743056070895401648546744167166934854892575665024664858959074758070765588318387818800336020932812788425013957790848498648561075036092477228729645239583109720468137197098880328724456484521448556329279363230365400009731638141479916109623886582334270798589978565168071719883981798937073475531903261527759200638007700989181924990134360103537830740112655525677948352298831608292228549854066195864024636674191565975607688316490229449609875160533805763267292886915246324425659364233622950112997033562447032057476939534441468789669352737754980120564712513519210869886010605572191271228100509306103231339849984868557572946319998429739401642861590163222499381679492266947809681664218107582393203757411382887508789446036564886227576967921767177849792313571466840081777110414945626891087033513375962920452261651270998251098718434803158128712128169461128897588942170047016735724590379742427870968792919137908801460339939884610436491616866072545894911482252144634648272550654275932428808580614544680350317895829927194499344056183317216155359318582588827210275347620897604795110778839919839913157339415406967276648144985721400447947805621534851510263081761574674986658085982153098103417675916880321613252870950665859170012417744557732547817170454764080299265413570654546712458846514664671425264584369247737760261753513297034098591702412344847549973557557366487819513997951228325652349565749744973653200291065902159263161398026475051241271054058684760023684117617070316494441302621957723499597615306010481155240959179838952790305928603735464432445038402656153693205975897759893306136756119914359218435981937173308215981812433619294939873625027133931522290901957379076684846838917639396804658529574490589905842651036510408601282190063820034893570700767884501770620595129618543183003258385539476592122332151771703753076943435690836282302509439109196765530404466810353464326584385949504971560266948184549846188888421551272196644418861259885836742603843854148996213021823587099975464146735361738259081549037676821537420465467842077683426159277047233565451477050304298588769999098116403893065547977587486537537883200260535828402327231029028219125032780073622075971179731311691854319262366816579952303631207562304384067721976167548434263405224761355088117377102141010631603073807459257041028620649243488157866565922392029744917967750975157329605193678909003685027618093307812542080236513042544322319421780878769046528443825411691062101913284834278174455841584045166044686175129143470423158305487974879145997142421202450612766168053618304102308028974129888928419546966335783205363719364226727021037783249582800437882285577654772373437275163523477141482401434144528912192214426504570259526837402190261887361623609624811330532830095305951749628208514685136184753967830904079302049986464811610961784923849989194174585787082238435075084414879221992107253150049329045515814194390254862425236757631650995064670466391623205069853083368322707144962881038112189903983582261955817909474633941466605393141670741800277363669986926628831435065339852853345173731912550935598765392923275786000736912693364832992476401055330506980139904806608262241596157530531249590148703810680685372039316056202188918334616385675720347315966800560487936204294451084557434820723921351320953708873382102967204530492173545942787252991297353393071842753067774209274671584010171392489461626510600450877393436735632523241557142703072919715540029870370822867710048627934533887504721954352294400674587869344177611320968653969530762218045978745042456382618142983589761364288689366700346043316117861846357075381134884194204399479775226780557245666752680739471623869493487373309002449556124616945873960362743624044544076405021198413662647965365440714737277944256328594375898406669031799883346013375692105762689293665950415980812601149065425369237065709650513717696017212703049051757068875690061342018323653174058207449182264761603433650681421140956248835423415960496217155592726578382800283238590904283212784199232089920134719532203445387164364122987299670982326386530962983254893389740351530769281644742606638654541844255283252630651473266413529274670913277270508964942153736876308331201042305568538322145171322532709838222227799777799119332077751757889592999840135670059023421124241060301633492734480206655311360601855224055382671522890581976858523964272155810358508116630851304219192231243373560230442046033800346813839142719754088755540626576014427074933655570299034917581574655425116192109476428553877552190884313917705029544597077665508052158956522780770672531808089323231303155172716745238746704306085168903295914109539424661734603696129198538300190827697544671996764715755338929174074423754509927256037892905978336301885875374044787091325528538590941030434851718819133900327361083525977544628586747598172024574313267621119394971341397778773403804850107335894993086587742602588216320058165767340536059355701234258241388106409710121179868118459989442882519615634783677464783570546868716836272816260938128131385280481711568553156575873756104488268110863967941307266715180196245962228871682414584032156451700858555481168676198219328644222927193814318415779807758583896607397785623036638127336579282318479948054261609070862564439175478126570773593363017658100305089713945858633208554280131129761353759161177020046469171790091249726131063548493320394444882400031786473030708683244862985456362044616562530216010563375440715188266812729052258085554377516974807005883988414383594956536442404508367967880061161760868053451003150597477629152782325563440991274000965826754191309771204001017144510245548774897419248463559484493273828531803848032032130187269537041038322244239601519782492702594276813191822925990470310850760262700901698563280960985032952263772263020662096765163292373043009818991897999755300589985642990584429983559386890850426778025706876048088176484602313546703663913298088480733768281757840897771020894485864735992514785446239053023991382770033020732881474876059726238380516637704169494209237261625949467974425795904898604522274886557863935234396909293962534665628378571090407560138295123562763994505971062012643238538501440742019034298138179081489778367379953995034437118489653643494400543216141421066063341247290071892446489966447494019521238601515593279867585742510454589952261446985205072589800857033804016913329426380055107309856565665073754011298007492759907811293668401813847926464205700543514352410894366421618064513849332353284339789426203345723477394138461972083563319911005544948170185040940406104129657426965738571253565237211251723096029162527393962371364563097042044024044925768332810204248502184962489203078021621054123235224806527780586341829638358336500086101314597034471821209602382418257404573945603572152616740185590123800765186064774394886709592165012066303447632517258041796052264008053538413106038805581745928460014431301017167337785235521161575950335389828273152905145818765583428844663646208743146325401274233077317523258893557042733985296088937661287712285254788081260320650994128416945450659077321584357570859600874064343135248967656696525407683957064288940767305740405462522509357378586863662760644541493394615486066598500668479384239174020035936413887427805716119227215387718073561348570300150195769827466810620768787102863464441827933147543933855657075841190711625109536460721142113002337218159299594286404022994690033639887443502871864847026778548039560731001073213824366994788821698150950209498482785289329505292881476795226715884929464245312735911528750452049961569601733034108248832043169295928974895242454602592910067584892126758684217738692093793425325242832773295620847494303111815865509974694637776916661727344938106970827594398754850805390729568918206899103223685884213854478927200451202761124315024067917975270114637417636436164944394430489183957948395500553216470147092219048955413728556172690643334833410994929892720014501256956197711935154601322672095881310166243274940658294921797009065235660770139449928981048992734079427635210366481012878553451594885064769837314889231575855777137630628462072167205458144319496006219882228678698099652379747428859278233042033888290703987329618862959124763157027699462982660658606338939855242455469015458210008443571964874872339734607574927499764367834787192382436797169760029309145029334634201273843277274308137780105092676088466253267630879268645368414597944101542033363207699088705155678565219847541521230750814016027623237997560893302701258771463480253687762074045913446668311637730114560568323891575399060369895680411945528482877450230006344982011520108181058963566753102204729531666408877490408964443213127695632797057912570038586953024520431041122350870671923765781409011882007714245335289128445364791317197997109663849157293892161487571726513981583753532671513137651826394396197551615393810801677498034103891052125837692697736261713678854305810485789709623449407368399531850925478642888432427285316097995927766398587869094527887830956780979198222315873027896891297418728488528100779788205503169144251609213639286634917312170362871445704560886553583204292026845616655331616206458499667921594554751055039374716613930805171310162721555309461043529281447303516538230531980402490665943750573937389130396348785186615698691427641352671270173546415538762565466856663753794145504414373308500425292885981571810073933108572969776949613107487630819771556360287086061495988372766466691263394506764847475558971841765913967590041100199767687111823773687531619639184698499836837433297451911611480278684440378720146088305289584704192535362168303386759614108940600536930503922533839766432526143587379678242713809032311366480992291078362384875472237492692536499311666314675998172126491411456023539079532872577335900120234270402394116199467195050069801581182822968206130037762582407714112212017407653452171978268889096878982162510446093491509271638086226383428134526311721150297417735734544043985814342100450697410846311753312137642318324940227558806333402874825341350579436301476588015843108617312642689916626564453782226862291795777856618840004051677127570516685036228965639085215964807171016465523010317819575538670409161198864746088552316764888087454262039691299511526556981697748324503872182722468930848521351114516368987153800112786507980684127306884120089957053065907910229101716247932577188981474745114250888106861833975904807705709656861039759115472713130924424574158884204856382641328192994254132353165626187211802276463025139663564493175958441869277958449059943001132960736483535368890889010012227648818924920496467269287763329072014338232752291285335156654730510859740201811334496750811905600196042160192640856809211956442273883116295982442458383465222075181021333842438052337561302912139253531765685733180392908702578049058716300474958590816080456451787267821883667418189020778113303330284178517236753373019827107942880439548146283545336492327776141798323658351115359040404153490115992135757046613527048540085499125044259699482060393813426152654973969847449517860202855839144734988569403691887696686151741157786377638472890991303823674276619650374908070616420688843264965848582814746190218109597973317645352478058947899842050954749364101278832611983931904039272872183973654208396754919701176912147909373666692553985812807990858402933527771611166770377117644291786289831091045516802440546068219393858397460348885693206182837570578609129020570622303315443757202554254099224381268133357813111269834800390857621164497131395883198660847373340739428356265118592938917927576384375628652322098052828015689467824122748658184379592129459617004492904278119272709165069861035821594576654743322483481905521570360163850242252430581070095125315925599697783174635700314351898425436615382790929632228269103774604070797832352919277337738335780204552236855399680407689426303620060664447601026630653527409651749005355673146320570762605282517783452791594440521711734220430616115508892487334804870458585892645447177808104599470933176481110140899630155777288932121024493477662299131657673577741545018967657601852923734061067367788459233296789101815336315135358907174619602396350483232275381531483527928639077832668709269615281030036602727536501843866597572117398460912711046115140467111961827936378417132184125755421542899804410385237332352792819641758738482091617170311031164166807633294635983092663180890090221759358093849093705183015369914593444439787147990660237080647207377235430062193746321940686530472915368653921284579132763186293322084111653471801161019792885627507845460173424887028533091051830817687711159963412806909494742197124993772260430142837964816621283801190584935887048001284059005134152116488846386333779379309342061850325378100712070625401263254490331003481089523917175055580272873091739443740825707727136045064860725034312638262986869136846062646603592150320635731384352409778773480355413062616438538742375365543876965069506873474704026915075794574057343513811221723433644786991868164696837889555352370565556914603575773774721108374758240589870301974563010376886393620960506180098818744039286293660216354884639945812816196024928471840545399660286357231779764719358291973710263918364542193296783109679478573603836615583086997291521288335000681473644180255639215905891864324102297400295499887482368589759028085135038507893518154284256074748169458084848177915828760489665045349281125973021627204751910267837740872602492036760807416283605208899247136716972906307770187573238383205430096047695845109654234524063208120370470855547605723093741303141586097030696730602020286449033080970831651395316394256207277047609946436885920318998481945743180681711124536389431491249742975840840314357637035498061684225561503952481283397746138154721686501172942067439710823958391246572470727603403785109480671506481151842457147302245288208000748863420403489978056623198830461864569889172626043919427365720813539660012700024420572113887352928997002313545115717249597563420921824316838661904798126626012711796424288476387084521396503685179169544447501296728953284314014288158355040283238558312307059256914227383564691786443431498994460712139799500687948390280827045649257013771145366480842309647382237352199905176319729571381062108323846764701902152461992887185181980799973729925470999296490005078500325023131277796149892375746443981937513161234607928465879423679190559440323246534263693537439954463176147426392364239732821302056882555468822438728955837660908565240893260365497605031200183155432497466346713379562659507764560585208054791518029972437378014926538092755301494707770229253299178656096883065501922296312645680955501471199411257811475786960566370254018008063489194344064845504566269018220179556777369179986290635102414759190305646695106461780907873740648407514203543500243564873619860738844131736021532639616631724384802088538771584221047770230882983217937907879343103413804723241953356136338346039862479006825054362777625922790453555526446535212283683540543105033554555571666405527483447222418765082654079028908884847304999796524299008645820377387855855324885061896123225558378574770545438678412643533498136923713682365399101008717765329379991916039393136168860797531725016207823498395572408025653127791312955324633847080523331975665349276984485746483424017967598965162900878630032122515943271441237108800088901130986171116411235705653264476975115843435148382328308345775567851364897852072041514369105102272537687449107156885534260255410139207047261426835361633801446384514952522534864693997279046355788679151475774940805831370873862375111055987884000851214966021869617489535373044816337023042109972618831683763826360981603537344810641532375125008142092276099085819293318510375325378129624702473356271713595166973502219907121996004909887078103410331625406101907071424491098384809468946576756742400877302060240511553329825364959448889976463880933739590931579186398220212520281945652062119781912800732970638043242985513987872354277135153890190177646609296410787183428286949216820907285826727741113794395188480481445362775408924550122284896451736500140347344425955786609546040582306317047221791946498344523658533625322890687210616894779398697607102809612112093082133372714999079568300854581815186687292388448509322231369739431177898434849201159254428007083774369632063373670085256194185123232662599154532006172372009921498824231247087801650180916913696625856577044140474244260419901709663701016969193656071609257277998401761092404151403845075733876475342081990706215520283332020040735442315688504886029975584573935343890613943023451362319047760482039115590225818362569951561811798049406246681737114527151277224498227181425969544923093708903646918157071750432398380194601917319278046105456467868312888635011955770850273165477345295109496473739762618642347465641181940963417401633462193861216112287540008887026265170293357970187509111293707052575748412649436827233459569358901587683527370638099686178048698727655214442924878551371911130296738601938529566650666019192699919486865040894264578237693816576273106481397769278032369749894053254498222341191090130858718491066219195997488832966874737585072287005047293283051315923899370463368438400200247835924868622880869171970776352814550890820551319508617003985575687867170644427552662769086846005082042434769886402813830762740110501117458399835554725773072091923178153139981189523166804949396619633255466075336920787226514794961633202516602866158872839304282211174518252269271430087862045315200215356384851728829981573427715423431545751234461059736144601485965820544671869895858329791114277710395058457361711730464357876216554241875496440825861831047109557231034454275874865073066451644818106884671070813215504161493882756262716264128404988648603721400628938538079199491853942965726103578930092642103902798994624737195845723247791922752886854885669825440343716739113139416909892988210984672533739583538222494813695370360492627029190911497675919104451665807337648895894975533255097033479384410744289406288947136418510646906195035455063307434561331950985728862392282607066724143406804481996603549238161173408869757641563421992255928056397165385836173163274558789602219290917779515030437241082671658917127973605933096947475687764967719935422973503138744264986298787600051138354791529647856212295053043223166213560460894575085393038519721988317152617234007665802337098598274833077346589957900058458874380131123861819619656109267173623272083838649162445067832804045502476247506988046797975293451090644514193586596391245795855409407043433294067450985390726462193045834121300713958260977580815438058003359807487395941970451582210860652542205762932608519803513480075505287115869399586302933289998750402086501049472793343635363783317131107078512211337879219949735385326540453739904693792197197476335127290164363747409111473758832304756701597674569384010640590315198645646486223741184460364459051316052808946781329291659255413690063138753691968307419795959639808588201354379365600894339744860292822753166923041540464498024179552073663089329983417105569111171325645711754587837368139836118963804522314451257196302277122395375850171655382137732629499045712917503929210239884381366974150104703458377406562432759185513332370023151638774914093904134506308740523948466358315052411030497939488363920934039501006242436662626196811072360952461932802678816847025654357626509545646593529189080629088845633850120783609443402195933478500870973728623674528044195635396472722154395866437436129943999776687305492881000295338493901676191894957193780902029043201886715143446259110267485852898487295165282203185207406793697559679389237897785526706366376012439148283419722681695464771271988826186294231653911678747900476063955821678170191870775130047003020979273936268309925582736836232059564524308309840686542860675712715218477150328420005195501196461529104970071041700550463403495174700444502169971038074839071275404248499636797807044629542085178201491307128320176852499652940713105042562958586753799567184767843615810838184884657335163982274912156140776798622217723177439953995524641607282564995814271969462202052230499744896478437685520451699933920760015577401706449304054153827134842047763078389977449400963829784405819922718838152037930526428992626505585056474426415522618180168681532525018341686232957162724881414628594673358887744254525928656940667849021038506066601750649131008378084609716470228869654332080364135872200026028589562852687820013423394832234097341734565753823029448009173713239072749408983371189402204878686694829821099257911755273639782117811390413902595075855239234783523615494689215618530256913886486415725397712795052432610498235810922323333960545040366945197034166345809744319581096192401351042194120035307219852720916606347378595131679341482313058538643899579300172720928107582289495033913439540033645087141800186321697721973776700788022445375608624171727945772226837051408354065087528005422931006738283659003137910358389180811611405959944186149804299746687395184466861806661521575404689266726609686250191040870858615087088292555427144708362198621071933464035199413106500474895750560226846654522020427808150894332807536030718746734623857088666329900551723827126951992275106096388970380585439219875275030950355465510850790716052893069975174832280003059545397549370450588408025763521599781058246837057233167910804299941022724646082638925728321783811841283215018179018267600454350797457829630894663085007892569567489799990900465341154601954197531787465950638829719832924846720534557254412302776273858204043211037037097797225406083275611280735346169144004339640494298082011591580218600354218622068756654275316405178067611314553249073862334626758318796066399657615173053233545600309802552430621661623666793152516586573071614500052382720434959456515912006704153337925875329461777596373007636597034720404479306705431587103181905570112941814785256776274110703308973743632225746851873619497390644150243729997322993450138257168125753247313315279594897922920713597223748163188873285868000559622308156298955865476874317967172419608544637640155070042110254599829495683648624504565762737327369497938745071193318048055333707883040484750101741668505946068616560338193938624655475409889966052975658783789881224209257774540933742776590425516626195797403145523858675649778000061532351061926895114725766095314995615425646554658606690547471370324930380142765344535295403177766698043864257514747841719625008297667872734246676208840695448572834752686168524531775985265639948420488309741943095421518063015779607439878848249470646578969978350256855200075001279394184029898816436484739964095653607362361151828306230097865036247013571720679442606687855431757781294067616594093878720469980064276995629968117770479123152796913050539898463065287329700520249743232871927387131749344102526226793955360991471476578870366364273567746446376561047775253355367923896610858349778266669114892172518813166632847384780415889336727035543440208189538304325992395212873228945055953262845754103569336155745940886778945028827192156584247898362514231625684910165673305131779353052160760537406271734129051071097448875787977202296865967305193486779538982909606777246901186818768946643790831241185981666291836761282076775811882968444031274276033650829164954109858656870585347377789252953947187557201305044449040510809818542554945461133442597891258385449364167424589642186301038686647418804339483313620826834149975165852947477569170146450310408331008002103680254930318047437573562412733900833189272387336394295940686378447242740768399701801069990216471233068908909595190010956979532980483996631249341235440934325581111667355368517905455273248045343146319541328746795300225032013684452206045776446696004345085122335212287031789923588261977774817849484596853368584206686310102868359690924696988845240357580521572033131356798975206400301722127354834560375066925116046021479716701619860626692451420901213016399753791867318086893394334841456544240500392452454441166013440163662469052062979342750886201027752649798153712880177011623829797269726409869609350727761767398814466551077906584480948186548223054684314148248793999042514387068187567551685018065965413415949567746351557797945757646731729634598728251459264868954805738817069778478561966984218908653486722551221309984889148701409141279505476738110673707445279750116689083423017677117751845732311008829796810507979273593561455360686540831963793144766421604135688436084189379126918130089538230632811514883596356566046072985411059423028263106099741744989411412769136002716557660596453209467888727175297474999270604349480420604273893649820155858904442621695587177598272873506347416058784174950319862349548970311017563699892931222989848236998628925169797164282914920645984719330462288609680629996983987803606086658151218068765740536012737275405073595840083544281055276726199367691823123128638458791088519328392886796257383038604721080797635279543217743748837191653818111780711236372101546811334461970328138557703193442619831985660728056613614359101321111949097553625437700410529917948129327986635998559451831622687342836115252417376346347671830364414858774074983979247143046157287500615964544639406940871812097152386614458847504158632296478671590903678239704472326201390636958717815130507614389954930004466288232329959980675831935764550586438094044252271575105949611411414365493110759902314944932535170479800756453325649697098628932087230576235204378516392749409385757667413199035228357124924605321952734769280735381222366002484162745245151110182202903898107001199998696579365911053535705437307109436199835348715492950018695832252654859107964778405351889348159829769050913269992447894006340485044740153901151181589019554290696414736329255260568269408099391744601502686961474602836743363739074425585117775351169556585294338709976516738254643526633937221705230254627301973342367784802114635099563030555928176350592428776621745520834168357321021726164614618464824249360548884452011543485556849623060688851112087224011783594865992099069244329604098614331861379361460805828931548399458113346755334072759615084956768886842689592223496936262186728112255322989888952426299397358269677416854585215743047882536260216290429279634129507957249648703164785636060760971928685523792825416040129602150324026653922631464115502739016477987165191642490832369249471906212390333258329952919859079662367827919354753458904878880624803554694713124414810428123078660431366118241540151291890712781674099128156369854282295875916615242420874018123814569708594126102983505705160729523414643325895193186427350253745096583125172644257279912236530033808599256701334348288720571787675135704424742733622428768205948348246973946205886201814240847485627027007949950292969280900651606575668451641192671285029202632907243189073484906810013206562207072685435109769275915043828434087719819837934900583072586086899588049340259360826625271207897885321218761741953020549907236803129535983376866623196698375368830338467726473547551819960260742520637248110601404839877154559174998503881513934986311271507863184261895642934479323007527229816896573627789386321042916727556125751150678693314449509840165555267420629498625127302395289185039113082860888711365932069690542374926452562850053775999257076144542076032834933300397710773861471768936691168886876159259123772712495969685057622011611507377493070850725414778800301965531052558418251932974287340699614026674956305926108050156516749225160911234625733013172501515819192640301624358226508259056399536619256559548520301777837210711003140002870561717659538681047655115666031713475505656885540247570616014250599309101913281679532693750391256494344580629794727041060682989719651348836139822410933541333945497951441612760351966300558212460446518854605541879276515897426935850154350451482275638077585459440192378963353431921976920051286292573404135515164953567297086452473942308406576180764796093316655035739843742491128135110764449641803718232225669624592052955315523071037487877648964285783749810116712606474554906699206198906535547088632462090606265048228368596605329714069243631048078069352244851425141637055313696826850271115206482371607715132704592445163739294255205331421841463681210127491844845739355011026771651628942850849048972963923969521240499887328060783272947052468828380047699310966836878238043678335638616744444881989316725963207041112016159179418860511479582137391047692357028382855260766008400530643368345616240647822041429490492090895977381006718376754607708219119706777453992638008433662740800750437513668250555714677629010818614219477809431116671468394365276232319428101264077112935160575358189838653090054971028588757637940786314062713940347445659730679804081989506675923511853576157492451870610024840185778084960101746556424837329871677007464767096245970153991233622930509330265060398606642054784022214377704635040756121518266551514742412704077196970327122931724351004698983908672583363778304314700305205494895667604139680182786109484215639690217139633379082702743448573300116394419861826862538892172166658062186865696884390949821280024411731592781249852700000160262737667223912309629276817725255880595823623638985445095649056969101897158922937268474015021425802812562497626750845719701303732981455643905637520321928443615403203595885374130890732606465514655495205088134300587486074731751610445065543084708569971434917918609685799850586599373795573124095465220093848209613446007729947814632587018199977504641465518741024118934202490620395926257221437474371420181416755565648845484927200548297884378095696998915568815095352332461519565437766001352322737869769745636004892759950092453538598065308444020546891175009843445846937492142210576594240254360493927049442909968084821014115776969541967399895612401622352027283813916463059962800476406779858479210994865689490731910548664648864671099983872877008098182185435467869635106825527017939655458491705934077968213323061916348406881051988008770165592396929574935185520066869747548969071931758179834301196509089399898188332780174130379693638583419758411185694472379702171615686067378388728235732579655400149870008140396783762668241609427082638316667255769326098840811237632610097529479874608421326752676452011556334099833906982143097409307591918704866875855350110913972510997060560266818843543383850771282633726518494332668078308769746175203664203817474540229030749124707456226223866991757148172554929433476502517161149713535789500762644248106857706413080183266184055048355476532778874182677593407563172902686019115131839390286810768007083691268127148429262056038405188003081133717730678823719256465327780697514027603643407165914069058813525556352335660266559978231687393467933430845715510128482400558744544679861333593754706451613980703480502326524952916971561236547326648469524886173893484266004093150746508809493439938171180780819918293957888503617552314685627064145173647575531190961771081087261571255849832943010064519198632146819827238195004687902299090280419063912877460697294942293946938293487847426513635336399074817014468748429651505421788346558657776036341808841482737549067494188682435828364858206667435439223842678034333302991694721802936303137531034620471442045622714181765880644266219588947229975205744457494230330539922576113340028340323327416380984845615051219525112846134255355492124752578627976715942350176667749113676141821788834914462041602075207846518582245898223357394447160664318583536792989636797034425752228081054097266110218771303853724110235384494581087556868574876301896365246948560995907468790565878911815645682112378872811935668620417132427801523798014704719548863927132720660549850793384593708505889826549301996832802885316284264744934318951554447961644215681398970782878324814101425031230601890843221847566793468434689715910475348170833872937724787656344504253029464089730719631564314854845863012913103229562733470428531692088122308430016594638722557091996930844042436665007335711085155206844900650761535484599786075155689572339935615839501567629481510442761635014005439669008043714443298464609951327928381694539563067833675155725589181106330592134890250421431165658034020533465537281353494250318191458585841336905486536581257513854732111820838638210872826375340857438398035094552005376341488288772575001053814045781672911736637493291312994769072251659501039138935779387740183787472524053792161698449509877170677962299504318834868423869150371884585752768332843916921995613900340509664352942429561177667114764028866268014825402313181724112534546936947572336844595225039358224728631894645514313908194233851106636167948798168467456436749778472726773305886435372267557025522870697711440534763483982906721752340375130006026165548520012520118613827481251379858389243447424860520062425120861614017092692663999593785953931785763315395669862738334108156775430235457774328332404730900143728326589981894018617490511558734721162539518481325059860553771800760064146509273341215326843930249605879500907399465590015444425168920032630094347510503399398449628353365385625704934764069994792153805624155870668957095201799888966219684041133677872070385717662715207656272579312768653159418833153455022466375684127374605598658987093803580167971058479477009976785248207894230599296796856230984985270130376232242644191237699088462861210022875915589920267095911417682561618714544531858417266682016296660061745397186248675646102001942489197960036672084318752067649302880280440696059946549115999187359867755429230959429572626909512710467111452903054418669851643369654742855500528290297658710787400803795129887091486337031814001413265392175242239419434269087418525153537393575612310046149651688595365690056032055628912778130554505354347952402485834362678691471047039497385518396277743631639320423321840417821089194798494242523832480291072301033887878249580959735823046529771913656026615366593221917837310415153592023661402554365600331867451068250114571114565182790343127332152194303225071710648969103800824877230868523442948570637400075809692840490128361211510165737089273040874878765850010319637031044967131719397627345456096361018412422457267162285593506447643676261389185320876958123412557235510603236442280428010870683433743447165161848313038266854018873833684620826573136543979359773167251083166299797229703896443903737077487482778346637523556810581362888096766156225897388605028891526903680673673756385563156840197315011610024120019039774228989273755227447564754646181768082719358848537694148847164145711115419156381234281108253460818267150613686244813036193383120852845053614238008198377259482927422495110627162482062980697670404414199158328791582193563482083902022290652347711676652679705714584037056757299583036480203600403118968502469268694529808460245359559208250193971955457022473085306675374322955383892616489857994755886285521315873027983647502234103341391817876736453800088644552321007008270155675587982665935639653321783740192297684877598752097377238456994313558221730994227852231181727021346542369169328760896147627903880740266917075960068506539542917258284325166942531823233114429016787237704590756354497045915699937316898579574598367103181482006298614394637522026778911250064435051763696470270975794569244494199285727942464598949596042600838713957655483008936551485552233000305459031536973145343538263317233500234332217247128961989046846863977951023574065588966260444891721920131917429287672224469682740707088891786563113250501502532690217205709849547732254119215593808477280360185335624892984933869384635431263315176020655975720371989313300346716896573604255767453422458222100421772734829035295896088195689121679389111733398050854609445220744470075725805805239185921082256957877874873554674975479997125920629731900150159965521409460082235135487401177670039769242750664796594489100279819287796133659773102412967808467592978951778503942339440555185329997493346155307264542358056833816621239281724066440557658962788291163336677956287904501865182341796129666545452245337170272711749325565000725240526297198927853615027171877479109701494169977586419928917490072340138065812300118033497914433775092660995464556224602726000373635417169544227543027476224309438390082473491559942431967003578055554153131977764267303294792252865379236042744345748911604684683194245334722825391188076629798152809689392811210193449313143775502292775068145594216618430298040267047542566318181609241961058298302116168730995180648014437770963143404510282716865967237586112781720859308591115196129780242286888384441116422482731778057150768171885098205435808035131751165991363889964790639924979971959696945850146612371425312588160974046543388373881678654122106651153991610191910227166116013825482290825839240441097766537537151037531211303088337909780706433010644750435642621680221159158748939073708179707994781984643156264706737512189726773271337384778739528154794322253694736176553457755698398650717685350558290760071465089179848409892187934792355660167585661725048755788910985261299134127469980333735761751688756505835997714088421794353972480859732551799941883114467845055369724102040646650294562070427548238905803522187018473128027906603169373119069670548281778652636412159034232625267639146971401097369962746380556604740594358173892047667352938253595533383758996071522876144914760036719908733945045402189512663217140420154094146404937836427929809953698504104948195447753890262740755276892671876519398002629108032181588495118684330010940713462973544232476067139380206246922373107019416843340474078075396543231920885501002869377571172106067873134971240353509837404132643740979979494230869282875272234461985736009526911852634884308968565427866728974593034054625610060558291425205636945939759204330175990501118424115490921804493580496672677021282406207062198231502041742802923085611903304607815291434843214099161311428598747365674465589747874339773539601470700773705708971372300625502012981861134136598347776254076169957448992544810884696952188765001124060758175299983479659847260570357492490600189559066546886632803998497425632243643912521221805720815625314470915340883577504548576619923380223084882252505401462844705708099779077874240547641817405203379059091998622516150713321995223832172906028946559753575217635937084478437008837549582997939353300338877764821841268633282376112805650094050780326553894935210408268481285743820920505970595385983743316291229088507406599429783598817892973794948334340981655450221628633198698769758794101927660298402878484127962343131038741154539699770476281768956289020697498418509143365015630459006391696315819178553592371485575169627537068462672096984919758947104530328639140682966566546967037146808740444851243227024918135469966583217119329429350283427731251300267356035421521123219882407606770764973994784338214408076409070819303788825377845328734230721825310406894774474730454780166159985872193964237324980857934285085003126730875214782682638548299332201448083067709660646284674758839397632294298614358930437385613427893211048829963362076681239808464630177423176342990721462504771843717897572645966576702715994663776842137618783766069079093643654251875924810086566417173351878000848154839950961549669790046694538555006589966689819787151247836430744513161561782848506800203351398403586557614412870317538962648941067594535536372105430413631813870681790197687734878504582241652259943146577669004173313705877671918096418625334485564780653498734918737446057815588857136728281075375315029527800730098421745400947442286896655855484688466820515302285404656151693150746499952832424607681431424121380661276353632140230223143230385511279159181039786234796213183508233940686096119655491071426417010961350936327520339640209833768474490221597840777538566835380423951950217870148354442993880658945222268588946657739232829287448830199183277093595449034710263101384326236491648620489185542721926778846708142874383090325037409906661831168459312297138034486263978851594195356385415539338397042721605292554385219554355266652404634134844659534872469187403958564499332586903506541028763823689181406139383587986164007724969912026160826654251280749264103445549500363669637986596665531677458127552602777871187397629495840907817694441185575741174538880379884899935818865979202734545519232148179620646095208542625254916910426018626617263199936374967235685652911999242341173311048630702644637924521472933655106670979809932710863997104368887992057653833828427224438111759422133887355599640907006014579758463337659887491416562954329626694342060218175494061243343073809369721240226410521420342719891960141262208997720604565990586333840103133178006727566925014777827132922910753373351555163792861738267340350322834180587072938048995234009913830684981844060881927158900005816408787153900936521200320758452424383029668181289140103724793028242594904452950876945927399123270706804406304580085642759484150494311008749928107862691333281180241233605751331764745617503896617465061096090104010845529378626210846871746789088639712302393483648421917842256148298947407545075214017301656982593518622554935732373281845628559452389850027343894022608743007583424282316509278268900041280553899622015497762529954237945147242166964040509279359638101524034439788553392568278185835677206656559084478921359737904609373771842568548312529252545273924710527492069648820109568257224614351114362521634715218473665713573543083140344489150214842026485852341176450909007491171012359328810498174885697125558884843668753527619214406765240918863100851610674411147462387579981515400222863962809103128700825501028148685852727865654161485212414360447541143108214718869573587366864561391357727622197808439336549658627004289360087528438321942265983500905851166321376119653762750885728515348701474197552869471726453699764946210345437577590847867329397332439939172938186632045252161845070602277058875352841493993588393689067811058986735734732362026683336030601582262588009080107093865711895115585402293587605023344874330201152267384586298011983144525953930191231811767682048849346930278361295193784682638616490973729872205969674053417675964480913304658444203663396761831060125283488120213802234879795697515050646067905092203883245501852356818564769645541871938266624104865911526419662914615196632284922809604395269685490483777143640225317303645514444319140214690195896167330235892310379265248497148294954432397200505261130817104819053518445184639841966669442112391091152801613563862937321853820977246527573807324799999548028054437647258035734460843858101698904629211727684933660508804935291779882416230812152457748067176648640132168761870812214327722396600631653332490310744007706089559825450295413345994405015678639930533218081688227258198596276716407516760530833042302034418775966748426053928135231577504296796753777376422924028534612985954595619398333535427245279647509171757572293695993459851739957528078294286804742493187435041110302845214654446686911701443304306242940157007643403939010006389871054836525226778605103625134652112426964091931613437581281682114930239296853287989542540371224015318015075748819529517624473516692657179332238668773206535116777763174702904275701752202270745777560750477535502440554444074287563750491277306080460678552076170459890839151046181518310829204458127511280040124838839729852063451304298276421275664944052269938885818167001480173176361672405818525381046831829611827394168795958647151778132986113291278288459730440285421395976147830910956955406546363108254562907849991634667310798104949270265705465710286661912648824678178400904545748691300712792909780236775394288230330337013483968000541072000379283774425259033435707486590851302761107741765608966946869422197008700198267477322181169187476873702856390393545497259448907207967766072942170540366097449729588281334429071409275147362459072642528975977939483790065245452045291453707616282651741960890500351221458258473049955923625999478576565551145636845104892848988931140360803168846554853562694840113394623977324910743937918257775760661369245728734771799891864694970718792785507538207668410576273812460856255591063449840806364301845884726946814016464665538870993190679457825645488290721844199990917541480744475283695051584823590753256434174600329228663312418520293161469040654492745209052242770686409671730038398441939380020074568943868387957164857918864250621973330901751376862030525292366859163827031469144788417751864379991346506337791205107979191579563303308024233231965045579185775072348166332235421989154906987754302935893108040677460906070585398709273557334432392490816298237110135330463727611933682458297197636689061815020190110830890113530038514439101362318177999936181101327218722995349920133721741187815027706047318678510184964970048481702438276274839424705896124934562647407171348198127272051844671787563810900520467646544093762101078059337782285938113920324668064524601737633617195259518808761666280683066820376275932813521909385685587604362015212397822838707104724785277498373115774231075448673769396679573964532477525890911685509481384539346554486965305037718250601182957271633858438740127646308634275747922007972289198542591799769978301562287611359820426607862510144281174997450840394457670346101051720242670902270675104097611214719281428623647708734325671999786780332970150418253148333089120694744516640446589352695234047978827041181875842629350769742451105392351971446215310957942826303792931154995593405932409453499881354165553969227270846197885735845327204207984761050592017940176173133829578543401168831382855618191685882219647079487796766799433890882831711650283619454395015178230962188226993871298671801567792755013298280193403713770140380310539371370961493679671429674890930157574984431974172281465919924766631936913836553275093856709466749912918021413564178835630262568805816886048128821889162470734646513737683048085686997902067118334791730015855523493888780554789745763455736464080930357194695604341844941936902226372813917399784770197489068675822184417841176890220163325142693585239729762807787242009303618282123668137619503834423363332884667370850295373284574555594649757256779316600630408178274355923470200712574130700321888741003847399999752403248948199961518188410747468832209220931185849885768686916196346530153308259299295016233562442715831444400482069668477867214377380867080040584408545382033208995473232151525442641044459373078505370753933984592309708257259179422467783432134147453230385624750677593964725479458281842748979453319331090815162301642798138434566142926281243785745152600717685527522815532099087309383927375946304938342433642720318946718016924651769490444766628547726152232629232548782886798300501305015322646360397168742399160546888400525443469033049678626962247885280800189617093642471520621158784644489094338875049653025132742271811136983687783775644973396066489245863728731473104234866386692865691802028007861165765590599100152187693876312043555291153427138640924910468514586646207301997831013661381189896601249485449774671310919777175519072333440179183720198091239542786697235014573654752075358171963750214069664648887584653250415550053115232277475443524719491497740024370284440671450465922740151949803144746226865158863956229152112540941319653454328311414214551514854786055856758652226538186129102692277032388872839212601429188306675965580849591395968973538026226835678271280227356076729612335550900279490515156538021657776274583302297622042491096310201915731834126807344104098673881547635847420001431971271664861535817646562812551451903571428948280629653342840038296861640550597167955003732403368847194339717767766983617377830377541539653173384308604857348600178555148398863761053830188148562355086769967998516898535162240480207134303771826124485281928313232847287888511827004556913247846660392013514165204448014073023786668781660222883533466110308857286707011535917260937644677877642663332693419444361751835559358942575994628032492904895755541261606026480018153097446390294614074033617727671066974903823291120398614298519259017775374634094185212007367913671931176970039350491037123806271310068918990817115233873392826123533347237523259046928196916717180932983485208151834254427867041542816288530857205705231157486538906475371767033094174230738921136924916831195231860496388647001200446858799969968938511203691633094319914217093755866790125143701278886078702777082096578395609895641487741377574589059294538043635302251599839204163291271713668149911833353210861124330066447895217562247319987524166710267026235574300985759112063304183222645903489576887672091701994854593725457696761568305610635319615252152218407256648092001761038440026939434917125034267199156610444069528199738818830385941367017411251421944885201300624574891861845946157554273321286637076139265927799459655621273464198925076464124733396520461731083820048792218725433759684653757030220876036438487492043235097436222920990227037157585061585587163243740101649429638756305348171030146893492885200537643527032955325173228948266275465752434961961078216644311600677190430701285160768502722265184274712713066917877016555200871621854185899059359018589321669050224964935221545751920548412499203037175702859052648352886733266883895178278533676995607082679490436945207636866519024386536216656594358297407869627661575826439979302928335805694867064209641252091957405372907338268954767823198061157359491248426776457579187966328173658739430807733614630659570488709042512508543501553277592459502849693482361336442910833831428749771126008628986766502128282524285796313647732709129883512741458714033585183107441777085513053652371157608205709404689341519630118321966557524396996077107945003956731625874774762066894862926533733660171907209935655234922847636368855778411663031339282338060210365991128455771864786184050309504254778778354040392354843662990341954183135826092281685703626215575771112606227921127903089150327705299564443131865317876359873962802062275104252003290681949666269839003256667806177633588760161698924868218566684191062123490492428748608427455426740551865194666415694834286735337840657694985929746338268335258692758558129508243742917655847861668215831985101879787464465918200319266703450543201870269154082456919688878175447086181750925702946993470875417261099182155030584224857810027338575564141573636274676246616283558552699205350450914018805596835858440067891060549887957897546815913259864794178665909259454320724362327909459027904950143118607409421469535940726311042680728457480337390801131059562892482261961728421423947001639817881434969999905182410682197456467862692731946803885334680840040016300304147304454896915632014435214465678283881254062800225292139001117974853946415015215279485784600310263703881702861531583131909428842570961987246032568599017286499829834219086198709585895861441544612916540091461268367916478134156937225819891098873986932269140644695971652997629282724019360081342117221665939141162490114699831859978911449713762531394817171748428567937286993509554839574826738275599701084378089513130023471876488695690138422386052330220485575800232521950720108968430225347696666740973800045073596689043882543711253032826340770368869926023621792650218934907497355736417480501799621081807968673934701082525016621785861663395929003724716012121940839236922502677268719005738866225255104685232448202186844138178904172860012911274652626305312388304379785922392079448616552724687606091743771617226670649947557432105211989777509255992469052004462190503119403871151237661867761432588452459235456190946454310247890649774057176442042514892426719798660506349123405796770632878636131163790965008994052746332384435587891536402419070350272684348432487854029278321697464474379161263473940398333196715851759900189330076932793328776206637213202917949760587138186132388460962447824076632442959698487712588986509084712890181137936953270239725120038708184095494141372616804539388376312394796891479017416896885926964959669572120504270467903118650169797132285769290889889204424041164076641257607309907595483611550218064129253849042534052854564853529954294584836304957192961446448336840870137009620531956000336456474113444119319335539792781280912195786462455470129110931182026878525450802978420828494265462960667723640465174189016334969968776455157452331157545985668829498617179294452786028560228979552027639469239461726653395372980886798444448237817295239940611530191410583773361367959944438648598447026295682154776802357988506441351871344860700973121396014990541613072377703661934557058207170514080531510964767487193997869932156910010997137518003045591746753506916388214479200630280034782592684993526301194449175558587152795947931371034189990800622918288026134832344309695084158138275049141915278577538543317669920486870470384057311939207478864630411230505214805055521244407633324189826568690591643584513186793236863310784947329711079198681213182007927622364715438248506475418440091568137959860419473230028191945897474047655200723298714076720445757275739097314247209805058716340028695163663905145203929965339306215056793527044471703210061985150817821347605449808144856347367972600232922093986549849167086829430035790950069983869926473781611787849666757893644758397071321022389490468274825780216202596075452822501918348146171335127779009071992868399593683556548614478724010285057103640749333964633914226215402694586289908068929537933221197414151524166939928748367502092664457597464103888404777522357761514497397298148388857823632417612189509807074412589147895418959354473359697738102738563123086753289258919870062124700071531936055771379539891951811948608119569923574600553004329287238642684897117995062456929673874431637569134719832100827086051188874341426807811352176740838058912575319005595743561933492823669505241455016624380246193638095270040763270500844259823241860571655964785729603120505852106198356468310749565146512879172172194281630218511624868261457728268412526148883547967828140999242028710587623759455724966647633034576917929999055514823315587698015032433444644606026122926121118816841152064935384489921734787345473384131443855453207396819876645601355657556008046639605867807424764169259322113933361323594018057753651248494161016729890545254438596508705962400110782250758587403279906418784462470040960140007008728502726662968146614980562597774664168352813214580415165569048388879071376567183634949407049184635362121105016197116733678281449234735855999022957057428000861724963897379456753867646572973027620392548876755109314416477877194368536748803314554688915222534593556791540497228470496366076482343390145078576095753297673828003904046805614467504467913086948963587483924651918682692857993694564440726877331960923411158521333920405458086166873730424958975852593494465981918590854167649105372085432402226605772145523088363029676061981208757095200707490370568820404082821086351518540710740133024216187576102957327724573763947766948214438064038380631607600227590602355021663045766957831314316190035782802738202419091811119211186832188382935119506994233002852569975469956279472494849942936196308275902967407430171439007750197253653853196344894148948727915983272854190833824319596386452609499658426980402076440590604641221112313924672502863811626138072640050034461706290768848658534546229772092776913967950228884851753527210062345791219187385347816521015162883649856811154306840418075752414530267768996723734812492008948135668544394620339802931471655160852859216084654010777683900036841002651473425903760258577574156327271916921229456398914299029933244460968576204299891348449994823312281656737692058860839640876934631092478954910482887350818343835163536010222095517280839539948354165502663502462541557662292440919251191651669506448750299898316740746966060276536547315203016843165157174183850818883706601808260828706261114621162318311837048449198506637594861981103916534805347123527376341648223506486105842191719411156330653343321822053568987702831032419980242129928773486138099298076803005249540115956082348435597623729693178298426851751322275943467005019873097585120229450473770677034158542087150416898041703165242773087159768454182281479806691799659068868139274282041459025187660759020761280786323427543867309226980589579166662849784453893064001967365362724324644178249028753494153305114225510477892336829263981356733346951822424081526377580293403517389597404694605160548989676363079350181333596103932786039063635879127606845037303565144224694739495335792758220543663049565363196265276879518424392296087420254012369188060048600459738698321119738342285796399534253084335407425226427133073265120446789230979024757069094871239478023375078072408238165068319156837141955875247547846509253789699624143431595216089770764182005619048886735906906690331584218044617612886824384277020606333054755869437606503196871978909357732792189102304393590086582085108882653454144637874276583999561221646680595631985561588975438476982477718084378812700944696764606863363641869999303880685105050985653364496928483106654602893901386311223516092314912861729263109900095624665175710742080499413940190496090781360231588275222126553629324872805023949806678389421725289459002741997984659767869642312391770733637158618034718344234179674923414626903568621366479394060172937943127654851059665993245440411916476211383325223283184269074775985853932026775606202298639549116182058435372116320421823368883205274209041038093619544792171792360990882135934322439587520469138091520282711388890103131401802506854240680732700100689783780253728171131301398132389378755266200385127973371775709863589643516001363880865022232742600442092084921694961536793389206441814700500528315726949700156347780343620656608622328734661301563338248788261322702836494096007614609231344529894686406586498456863364267174572041805792265345831314968005649722304686306812622463619129956688558546435183914017584949836973899006711226793041070423436682299823719561473332135491582407466773436773632598239415489167204127136194753254530442314983399577801657660871164859357165538797745249344997977185240259935423603708100798742012522028647072833574350417022663664223283569844197162272445965464942087645866578607809123051658115412662741153584688350820339016907800748252305416704620566810509417002314153416717855192639805738275976515700952946561747258647458409045172907593952050389342444494037359104230306881754831278490924898936852373934292611497431025078160311034793837764969373870278010001776960677707598477938023320755012409665177035055434768572086850104162312174707746217730459180041753596486282172360217348591406244159977882642419852087095434376694296559586725022346947105724520979661783675555364819287510666033568272280671709726458210559646022101046442646199585077018169344446590254430409216700873534806469280685450383491078200903398931669573145051841487797091197354110593699445015622595897662943057962311082322582114847148274966237536560316407861642967778932967669034059629377876755798772391138365096417499571952837172610958586888402607786562549731110286335310859610151777395638198015669193010811389855199553763658595066095134795809752384943053964327024730934582542883658027660690862748021976805118321137783151882346223852280963727738868484230282162639003659406202219425995527330616882050017486286191647768718783185854806109829484827471938868551907884102601261442843151131801265558323516045986481263409948116543632830531047485018268643638468952198435557228540651731694395633671674552364208266834996530313164830382330996917425574084453503270117069579958451687138007307298163828454031496594008617946528425835917277944585688503162233780018327473764799196018038355140644168626408934863771319122247089179045998462030815828924720127004329550974834514070354852037381742306536550320432670381311421401426295269088372717882444475631465804594716810650895271202138561182678491358012060483848291348539436574771461166260021881618973318629264019007314585852378448016978724998994677659284725500455671350694593174480602447557736473086622308098980681489655208249741593142656579442858209459123571669598362498639453252916737546797345583368272653927205332006651584281240622284112806952260500620988032996323417705594439041450100734922275799037438174549532301075355689323571205966090593038803449079068001927868663088195298158036873123244411743660381286128789483085030412818829750559081387897514238386434867137227518638750428210549926983482436571870611328581192843609399352253681265217022178545798739557177658388898557861989401883624226141262224935303804075718764785997675678402236004717809773389574044050599650870460401546349708414678521121486106703722955084411063479010382325456800908758209519215340483611181817316838543852664970808487578038199497691891742225070485601089378912610179887975805478727530825384379945510935240857601366102483101335722436375162962496229876704905993858523157764016339036429002089485671983979344156877098663281836387155127850924682916317309848359407092501585209451143317736132814740870405634374444658664424833177228809860133249585643609471042258554934321683433671428212802346943095027991826909168931492268143093919864268192576852691195211372085087319920067394094618093909900217966026844073846870298139331103618820927433600421609164267845854468453912311192509383730107894108507007969618479378152050079741559312094584043406422891775653213976077232113700735012329846663843374528671438535436360815526934529205090585662993801903208325826682354580056496616659487709605354899558291474556892713794597865133512088939163230694015809696513335527792583455184050227916759236745296734378063793502545063141642321298421133526180924970253559660618222979784948648765171963450305698621782797403617930645624103514124293178138780302329414833116152946793277158309427983483315484818127945275159897820165178682288327630299473711981711540447839493197762307734697225734902347225466641621465356684437369385827285252427335980315011454067073589655150904674431644295738097509853626790720135228176260028271583333120700170919620914055523550960979699921209467110134286095400988086422116861541951644894850260263248486275531827569620592547414144902238309482415330055982680259146630853535665223053828916304326007868175387917860919836647906311317503446930809578785162631651362459253406179267725104606490922357955303736289612134195619136595516454291771714539603121574074577776576962152331136997459448438519579507329494724541170938598082569226399987668376331736579292522725348760514163694293126571126677494499913652762838698045880974116396203648311467424606428979188150762912774988966027289360053248161850849116592623851489104524200164958861271246202154668612887941674603971857438661480416403944692396796500694621702549172767832702260205177355268419867544434659877558636445164692166836358329968905575734778036986388479323390515148077083645903237641491499060090252064444814207239395578120097988075281280395336699188700727666493853996526623691719585995303303061725296611305139355265784890186258718600053493563180573877352207109264343479456263340267933653021170049890043079200809790611527513532139367820590981446560106541806211330033656182568977612624067487341297635135340190580464656909943944894331017484691933031834887785389669888677635478204984454858657779533114650707954193427354752099626802339892003434810109789230638278699773916899234224510637627874101542939346053768447953587896622369807750681261919447577407614990357680135731729709824809887411786520885331785921043883154877205186824037633459296746141742263113073448985714751563901793579679266021324080118808779412132338038031751907672508773624886964009339369866772166287756764707353672074645360231020622056679580693236421612358589904700711641441376957116715329846773356796673094717826827505646211298327093278518955223756546211066942555372319447232194029651423348154871701960202766602371438115268082241011627075078716491469214352313744160764640416812598139690676809594343994687943716221860659883074923680303091038183411879667488287394778087238647259894102253475421017633160776671296019547638753924377118086114360672881598297505791056500777521424664015436757797636427849723682169348832908411824889955285189390331072534003948266737397846676970664171814748056365491865915097065598817241007532028628128357325950549074100507678968993803742635060655846207344446479730360912062639118934211752371315797850376831846172994219785756884397516897830889057433120495545651354879994562100797955140291278503656986063291181787864599930312743905248540684147249384096317576364519299557485011408099803224297380027328594624940976020528702019432063919398352297959567013256132033139275938596900651389475088635539104574901613258125176679480692542458315398543461955630976400271140287530176895310369684595445293982155226995303996094743557571043332086569537992557867009688688445543030381438016725595310630336906639148672677139968070756917309580320494687894437453371521167723946246461758534358636599750183415312764407583364172424930289218950142176353976193053359250767017422157731678505309589824958844403087959034939563916350670310405239801471962335529860957664111785028802083179629631914122933458910703280022885425330870767930060939346302943612301748984590866321598360465429568538725311458505469798133029012081581690379227972006762274180102622458385069605800206686547960206846593350914407008465504653249870950289003504763935961526170305995982597094356162273672321430697725710799661578967208812624801315652440786464105549215650607035912292362012461779002839686530312131417746451767656306184208986826619833111841242359829814873965192395823582220242260907728558816635201615638070429388893864471859805157997767323011487346310588244946765516743432493482092233371968405794534848377501866946178601123759050272296387002559844213408438360533980474631446225881510207211496745892153426479941914970448517100520400510692001262582756496609715897069313754200526890441442636929496613940188189966641216736545466122100217991557908331367938668655032734675208976201024551005512291661119957742972439327377142016379726192908682070880368490310436326392952337700282616409539657569683052857310251749512616698405583884929071209669906988369915276844753981751999975663399110455049672434551097557370886402156171927202442943916900402523555082967712795415483509831727212589759309516694692425910461331997556030646752976987388184083139188669200788003126867085278349214651329812949915271031306969809046385791537839860075206171950859377585796538968106865553299816013709158815954374759283274668921311128908978383360200081070379232108297108103311635401095092483780873464751792570494015733141825006432002018320725842303434539679239425883848295287212895796683352765325674240606766161292161085918199903860497321620255878825579203833934549006555750734319439877583455970736066683163349209623979105267203362715953354242192061705507305996071040559271116557325172868172733722921516984843799151579048020838136326948796065638015830557364574067631269499706970558509146889120673037320799278153765406573878731278178508248109355011277286702773946427074703647762840119147082088192408592191586534098114575482857588530268321469589998479679620321616719504116487289649794972714621435271915342449219882325733056099914398758151222689361274056962257143046517007498319054118932861271152823359627094920989975979513842447456116193650911801157886829135873573507945894246959730239868970729585694439021878898568560632341195920770829289413989258084722994658888698381914350110000696366752117643861275677971622168972379446178526911694636545063375392491133366163745602662358929142319928510476618995994407803894511796089570774039233749563552534798818108197806718647694012373268740016979012000751163723224702430790975094597897009754554547031194838384145099514460777575121841377137419230218972220812560787268490830468719028415320915362023153673799007786602708039605471591765850641384110908370861089458616183013323237448978065243166581428488915101787166339694409680808804536646431502721100645041627518874814440807536782027237270057860834041264339612470363505408639488752598978510627231122170715048831211314626696845908913784181099216751445108299821782041942529778478228535936177774118919418975920270325671222125479673643730713761445712833670311821566172618021137585851338662783219037364117368253591079056425313430174068470510172967941608305378363301086798513361194121568590329537077848717787693537557263669459503554429541351706946579890013594080106746070840984298604182018968417960957192967751879075877743313982866849043887161246125615576286946215264785221028209824497367817985123314535456949945961794338791276021733713793025617170173450988712875483081310605577449492506844754453572604902165091564296372208422973928238517254142352934611081030276258905470091208301039968124733604940101260146161588375688491422273236253956794922504864420168732968037188881039804202453818745772504521851279886923567144098588663673007727232406382524403407705464394483661569550449503874203772393263901763856040548494631717888262104078776497716021201521387990006034866941570065835246764229199752357335200974893496470720459291170398601219919195700492861763264362473960323644752735859182235238608946454014838257264170088976209523170172481622032685799559101793092080074830226932032516376781287735655392066201824618932129150474715521288445270617059229815482367670608732517410398777627135964542819935818290756240092805536882245081340921879707864962226760757953004525789146534565869263083702877593539622917929901829683141474425436719075526109539660906019907881409796885073666846051536862822969887691683878978440719118867897152145439590633861044644157126153065531718056983572497317613873909031559096756808427203746125632969114978452488532976240748423727635864713859735220464012639530627577748255438914537514451917062012935372248251613173146083565109695805499996722916067932804871787967707601870797575928927055608476331871064077368064688672522796388808885802683473928730085189011879881390404789855264177575364611179796993213102624910625657152497464059719420561232853986060403233860417337082930248324494307829717772217081312523078437628210151028853663346888673808986532096628787325071560896151574770666581600017767081512251818747818147938500606507098824247503191801244750420911167650372188222880191124346642917228312340800880709151692756434319656512629497938831242498939170450670532518649834400118411536013215289961269792449016340314403017220361626821510010100248007723327634712068409151963821963225615793498610067493044012282390441996153247576837037715334500763754407465141101061354465875169384080259368899098136004214276116014840897884210187156413009533526510242786490297104345197142249361407545676377052363311526746636273831496240138350175134954969179808431820496675750627675033464246124358064065863484128257631773371097647725224776102568462624340557427300552193161844338247888632835916262359870620629425396880413944632015271296978766948993056469683086978265511026566677661249813174373423740232706995706012981967077583375459939370155972627354637647522101949494963837126942986326450920335307612773114584161215063008236612927346675837038501355023813406392488440923383410969791812965865451410610490198744490618404296528945904177714603168007451207358875133471457510324559804438227923383196362831834183154115857262687622537573485585845035005947408031032749404699546886706282798039236216342639390661591063874749422020932363930903341004687199233571248465835071699861145915815705910658078741673301543523324960904028315125515212447552392337384474806982697275677502192958750732642117968977276032617012200017898554479802265201232320393951313465799822160695287429171703474611607726749789846870114655129316448031358601126576405646939998403383169518706587745738897715886834114065738731321456607653860891785995002328197604459092465415806263482601328151360604290975277342980797778211541051625383746598051328985429195022696918072960701886782265318340942178467734382073081911797148262951091888421147160516772245778775225041031507934147797436843746631518890305617073485920613859095489994989790654075908261451801884807591507636564171058306754809227701761539589658839594717172856554790904584367922495638305566687852128477915472678397120299284425103755610156441906943187445348175938717129769889015056233309543255488091564257394208547722358018147754942336624342914242506456616637796053939371182818333086612526372154365206060020963957718668232980718647235521650138193650463542819133659266810301669711159558200815049018503301232601094285048439034445227338273797492245108918596973534190193098517578986277161186461414699961102280657328748734430923868530898280498654024165515515267062078532731005964941707406433050388969479953559598473468255034807910747259731014789341004377913727855058268997490159739709718978376630915603043272152251439525447262493156870251134848674737614016280477059670197897907024582297640710857033951752284592215444970366281360765883042720932906499463048569225955840900381441202534598581602030338846939988231880330674321566316827699614010649156525696890134838687539560368253360566521235172525261264677148422900375355085395494345704208651012568767910067904301922721583129660357150376575983350784519931788994640657612845606108863569401937677385933157841692142940080785113974246515605712052220333887662935567127494794262425311237729714567423202753017523047166346937666494983817593270305776231186665818205250818046143463761941994496566745878841620967122992554859793104247036267736362299911058226460776120844125797287011791272223052210827728916304845404246761801610289590672267871619870204283337100068395543085231940599177773403998642778680120192199770122007931131538341025580669256274580655252408936641437924511614889630503213075907386003618548610984484890164531570625998346020339234202117569983969580538147844450279995351965858085727468427755415345922039664157890228178626385748960512156848582963718598876178710482792691312248671046886949380610906079937644783674655680202124119698304734259957356535183574482896661520078068155653479937364911993887329740662224263723583216216762508313518315996533228115138808941859312487301265070516365005974212431212599581479716228698762683422506376130834635272641214525193436408606523061634226399647336935101258414953949604531635079504769013844716616902842648664605289881269026361232159724501014547776512977606082092814594716558294890724800791563280396269088496735742217694131562783113803399091125341252541656211669384593648358252691967885955355605619564533985099349002192757269484522223030735971957926983002336331781869005337807274012791114757237061260282155673828714759879241005810744279959800431690770295985822674098989274100015953248416121883018432989542375782676346031050523169448472172214898633716387248334985100719392860256774194341833911599776719299453399496319562193802374561341776671482335971301553501815836791883441617787994293849469626856699780222879944349772899604050861766312787641140550474092139798719205643305847794514759237807598561898454561691069883443962765089530045102074013851222120922249158114460012005110868847768269546490366051755307020207215322322654000848121581665543700985296053712253022359461046525318301288812647275253533090631813711623707976722225945985647843015855741445205166489054536105286918876260651099995140456662787185804567368760159249299403729596425088850644637947481817563274688210840479762479162381616941210557622114983071532683916683473183509365693449938446396979544405607813635749541046087006001708362647395716366965175535565065262689789854177646280729845785050024430819575132806978608619515599963379699041629588399034572480551447562794135882539488704145159239740603808109708078675128633120729395204697990172336065775865729267360255013507384852518616712962382973909246780038306727185483817006306813977435209488472825735789699884217119883320705783160715044472311530803015985064304064277143866457805373945591674124341152524174366599167810170348262854907157723544763646729546998484141855921619931188803820692561686379656690183245164219744570448768441682271112756205114709615208685378088322739234835861614222218456148137725717584333095802978659556395239025108160267294328188326838128400254682868779685546895872596827577592256209288457254820526652080871823867981663907865270789869631341027950139928112680707899513778011415958608764891823811018073463464920737554738555728955629972334940027674182480678993398872410498775209061677116421009529818870071650696268636282938331202115861224134960374558980000538923924276662790022692019456566511448602504974893449833026223750198108774197409446806220081482228877696062322546750652572056709946368731465963558391471750576413925909861801129779512807359057690823877733790902518358773582785370384372951768019948144055347031062400122298475556971568901716995470617602365185810281387323379076321393258927280034510193339336554298948412724848961614466852092643669431385112206499333296941166774954757952045084381230104545768265302466438516061155259774290985264368823723312723337279463626783665718090889046339547062754659737486816061632494826684573885739288925521976169064781348822367069387125654942693290525013160223485676495106249211318200535096842310486497656068843824121643104730418577394668882841539781335283955890645742201797672578036342832145924126130059655399002619473970571274244468171959727434742401416326664732263109020237482616258578597623097184543176255569481158015073771419917480675411822829835451651978886182526678725363404209706628380025384932448234192259697157069424807814456404665933114941502263381055536828035894325330919690415394829775441738942231414404446270337752529805245411084728907443671336946906788296488386578093350296127766225158720028481518128720038061581168596968846464898479114766237759096392582967672859866005132362753841391161371101363975459184145514118769511372398281872105355433822443281200301893700503606910756572236547100597882202218339409264359932634129606626538184641582706035682963414997499699022546039242388840683502994211130342329803266265542425431850583123390788934635789208145621902182806429238842294926075790500670614947089773738467999768413401216369017718626463651322122270077066111391129639110027577824644125911261023380501097078764900396052026943279002219787086302295097361561192385984557654398504800100979078851341525893271309996150965583331189270876653663612127625849989323686633456218660311038129958264847109000315254942221126205833358354228464819183895937463444277350970641922260824126677284587374809134476839219570620524468290922648020587718390455144583650410657177273618387256018437370351939748002982321423909503531127629093313407312433744723420390475046721773922173641563074905093788467291067066334480885946956797375283837055121143717933794081704803005549104327418034824477739904570751144490683993901407975253508158041725575003319564444767621862953717612209860760177713833851247774586634779023420435805815836318616873701836142756308695745240971004472828830841344400108308427628994946595220815484090304757234604599410977787016972920766167122781060036251810772797906507407771855208017224924720837917435813838153095902365975143242796064456930039094291055326648776680158514211576368892313453694502365626579784383364937971581459719005010195017248309836622722531477890031797692168205017296403795901947702481714363944832547600652327400015277230440569424315051753082277283892237113682445092628767221664512533351385632446848304380405368137798423942173707302024462276617538014273469793706948862709988530543957304028477275367156148618395172769977268953074800110532119663664479265599151493873203135389930908627454303405031062075837326419485298413468234824453022035194493422431275592825883382935772647826637926277253414840375057824632395031242357918740187867905694836534227982320661720585140158035470220019475858387852414629763380941023682959874399807008825477687050347376829988257497361244554122903845927607075042922936415855785155516512565424291453526425938624559816601101339222234395637972871480526638526890071091814993335075358205252937743852963501298474218858056357255476722397910850958597779172830212682613990429149455025248721590555353504632123995410923923178684499039298928564599943075164131610268306223656540459547887275604998615989380151964191476859406581730763153259611806090741470347374911689767159343136471521474183238629195405833694811471738717767063169743974753247069898076145874652420019023816075510562623395555119362582309967013783858885183768071072373880474862889385067629706005830467205288935204030522504285779589748781605024654904441450172300952708809731401128382919567060062190032636194540498476156393038236679517967657326364852742801093351238406884858650942738813835988563306746956418051269509958630678026359877600503738866758129291359298014775081885130358637605283674765753692756421665590018441466730332062991007941950565314382522518555742844007745145814124339010165934680614112540513044945251369596918583746378409235279763206382830152336502848452304617751273405717337535331610755433818771201353341984597562944676778975573771995721973701844200611670652353670998860922700775016334785904435611970286914004740811656172358337558785946474030065508058276351004962494867609586601210462217246206596197783463322693084289887783623042457793894807565289787447214171260774455959439418660414480089891909886941510814925435222427472448481345905283050613321061549698757524301822945620957492063457388448071178826622214778939536318296543702366764477184598346498143977036425744353189598065675433635177149563029179437378061985444363281872348357960451707880368002724941307243225404338173871440757085656193791434217565350303504374009546844183061128787468324923799550791772762584074004016501435299759489863930621458614509054304055848996653270596443815220580844939173946492236759453096162621985425396922608672416973966881341518616322458755554387769706272611524009453433976536014465854227849711209462613667631404721472476329380373577496444388607707962399613713199303873540866355997172519633945065931065971305646370263309515457388213213358147115288398212224541203632089973587755568946171263152358115926502098682062393866136411890649800269634349720054485724942825237516771411384740982683434715177242708488265777829992674412106056672757827476210990403121383738937339572132708292950932702490136286011935547568477442839437298347846749566690808887162304994860086481093756253167565181604170291682677926342083850979326840838846876474362138316112508742671103393624658741618482990440263675212294757425718179237197355551066004329162310079700052418519375976028947394607790647832368956259177738404622216749006876888650204067817681667347111680586720862673493455059887701998583153696213506293945623920802673375379889290908553841695600113821269492385923891665192676345464769899794369698485169833179473728400119207671737698951337293078181450112635219409563753273893906037294690767157469900765943812082265035058197395906385754120833661743640318020395048779666436390242347884632372975146629291744458670742983532237704140952036512255203674804975976535680882019625398865982175394097896164832731052700872633304486467499414003959909830751744159549348047022819427022999509340912279046623896840823574144175524425865439084267270981290351542223346977123693047212976854097355948314688713092117727916876626369882061591502701771700034925987582020709292922830002071128548034971767609531548012857737577329498962158980678515837001578778893141407071123922599878168429469205610448342325377894604241365470058019204223983866859039779010125229367761559599421919490270345172401060126896367142558028336475108934272044586399161763755088742729659386759407820883774517442780857837530693432868042704215007202663820673407751739629522672653850551688473807316783470679291896676654856834680127467601607334983781023815744289739084665523963213014208249259636875818060003283064493199053031521968182262401502038417760750583379907827636234192438604215204545661809388943794772009986982672672209516885028680453153635670491418002728763727162678021765664549279893920065331256538984274631094636629191969905741293911281275647217037952022991037678984495357027855535494358098141157645631960900373571704352180119506889976306187279004302550944772191124883171543470836874302297790996007200097770657140873172631227573294001287848557322819838594068436110557140780718717195200218528719831593785470790032551777015962075260944329135028792665131775637229067420826650865083427527617748953290534534679621814138080542899908225225392539349531369223355430784199157811082287001869133979088865114483960194562779278480871819037612901637502979620531988953835126907483400195844886362000685977065700926911242569387156528128723165105776286273115355141581989133513642980464445544592822906699335736338049386526932019692385308963738731399452450693059194233550587704965829463869957256647762996733481985423888993946070032149480674600901326349474384683371814253084588755850933926347276715060522825430456868426358770709259392116878470823156516794530955853466381755588357457278060994035326608759151376176149247566364406720849260657281030536635028221032495044753652002376970073725231707397547649137998007066731479520640462791588589024059511909721292970816613595435028811587326375869984148135817036984507182480435698848566918825087344496038028757065312925603764421324485886689202710482134924479729437524219830864034830404367706555650396913557614089158888958988062475864532909287144151999816326760336930181123321241539216008627276410481334703878056472874624882836759937837813518474157883816397152220092748755329484281462539680589595463373092891474471161640809450627885914613001913932913275562402596780229497645534492969586817570437267684187815079079391749847281067477082310919849974543662396786928066578489459986667067016631601530945266561972389019567037325162473176337100193493270058910801339522283545930823098693003667858052941984298935428542192659041686938697543643062495390412628365769344326629171544615676008961927066213211900579681951398278546644907525579631264544962605234481440825776995172323546654999679229150176778040454126141091704280530423941767130422099259859816365221418249306356222659353142581285105908949014490883519389487904796459432368311990730996031031821685200066370092194172151756210244543543174981284118252124859850318244425080201814125477948442414321017618999004904569686383179402437967879251641516440331259661887034653393200875059959203442051913323388481970822825769383131555549762630532924541553788978899681929473677410870552484374573315063850777439227478790631444813601990917968743771595494777576199379716786176886878806430751405952449437900157066119774046294399337539403831331241551601185900842909084639420791180066764862641530895361197922421886770552939680990172861078406921241534835231298241537503804773484250958940062074530547103766819334476392399181512136628180387446697653203834758490365301793713726439031470183817365348141948753373206096169227177908187581225843994473034170693716242143468423948791753417924325320223443610432462784484715942011489323169302136020043860028074189510109147650632049851930841143379093379124161710034613158657900920402062832389354096786565788240911281282909554660447269630466146845519473619310067044085791226086711407760415199608790155956581295526870540135460686068786747377641761525430169528204881291695952960806012557844129401424606414876713665212679805498694835700394889580869307915797507693970549258375887112685538820392550166380926599835578214860128445751222965930514825540914736456463585063921460746659740085393581495619014094814412741694799754871355963667351143851759187258908323318044756799679820473144726096494725876515260625794159304048038481818099313974114877339601602020110151500523263588526769118046883632439081067542759234975837164255685114611316871588837417520852014458924417678651528619247323032773889030259482632575476403758548131372027862978356632809107998226605521680176262860164188475611245580509394029067921157761040085286635150536068810876275466699768681957423584193311990583403499686698812016052445565239042827809354068975181799737488009515510141297082093079239169792527320174824623663448250708974884294800295085638438419730202831096110780059988605169373139588608654131011418680819893295043612654584069269978630286683595852154550003210907932636811295218198255397212314694838746787003262328185135593429486516343851331153447948140987878193204431854830278148996340007899590306478625918350223373986304657491246501795272900078450769402364087956150905877032570951193536434507307867204469374486605735909180745446629883142167553506282099870055982374255794421307138938741451050869173792494555282972465669591128073956847936668529483276364674724884225159545175312096304747542866105904470721882387399715131492040507791942312578975585393026094581975601049801820922625267415428682956555079365276671297026946153056215184046004546583698247494573406134086260412544274711237536112217904422369217990437214838792582204131877402565744306063862811855967945938151135676170309840738490142474024163009950207688438018627843345907063223528550426564519822581830722342880815413071152378223034021704370700138001834219635786648987154877170447315213115559204398237260584631207083738910868905148256218962472071492485868242871395632542075213082762311264165261337373971672939578087619384701790604122226716075532374354270359779261669964725052371498592700678075790236161207393553169298242899675437758544913595567627948197384903072819580487090351907890913085169202787527211978298204572446891452439245303317316888346685249108454078217540429109379670751748964224090311490449007784068893752575060961160964593267910243765735197106115104927905785727678908891172444366882407536270523465002650326598898260610405368629213551706187312010960826729743314172126333312026304767718487986797224567908071825830465992899572905404451279668323632968237314095966930607840662323310793997672593670746708721923033712807269224554556162173812819934192562823934827993007522670665008035044811200233637318812314059260076621858921492883128724744893735243714061641225659094414687558892170114486377255477616592959656363089192298175778535606452851230723251942138331072127478909214702278447283816781364347452476142942784143248746938898978893033345856859930566392819911185647339149347007453861953948429001011705442482154293422943406997308475506087081214271642878992086053321747850036138673040099670617246729102674994457379103653300707943345765516670492920248943505752712133934762450129861865221718468174428693998658409359207956495046845129192626560347691240856466597614386610853652113728524899600585872987869373167605180133037949844528497251017584607732181497124367834346240386189740515968750888712928993814576568895376329577084559111415233151538078029012507789080596114530515394786797887299944568016121185945531292953419857211858963148012075580209504773647552655274197325245607436844330964593146418234923174374516884475388133279754621119150329743362571022341011296058042826140560330269719659084349325119673882227158109330234655142661113832702588322995284159116589075043006155409164215365522048327784472614429037974620947704353702844564324172104443641301776768812201130879524549491767057595625744147193600645376746045828956375997104731526615833492913432003010707342343639097934237028918202891722906115255405058525051195243256240407202992209689750646718717567813842067530937108756915190427469860984581586965593908451606349710223455531618093260398132750884961793736719057751591245151904349083757393432765560626763020546588422297862367873606108669967889131024662601088891448247937025122347111778419587246139132707426958131954715567452928436716895734043043225060031588137445131316403445373345355705896620677758883304613205311672797744054472443204217935657054233676995660426326871487233474396395548141473401135023959695088969777526933898008241857296961003188269023184941837027981257816348415732724770897144326556240285135360979453478922737538862781423669156651011463992365391694591608554657930397205187862947395648232622790728342773769869672346421847733780778598433969051815049020621669981377086897473329343598335007318941048517541234723847565719828571437541225429881507615829194143850373244049345090513836029737042133354883139219654542988733690468226170744043428726269993734399582465769338976901686876641149154685049814369562990442000012209200126537802734149534529277412301314731001300540434794994958845099184435698707539483064796308742638228543028552165359424267542629946704161117355017731668806657156386494637557378624198938907198738263286931490171540212457779773044521872943163724014425721521029966756708000675611056103934501291047581596007420674483209909638040238892018726400525382764749692404838703646864179782576945630878379329417816844650941943410743961998484639908571903379643802892899770025781367357836378613696960848628484379675795850403391264008883066056628226680620475369220746865547212653139696373281273670866792196125748542352533107108724099330610066837504840744295419883581040944611737406870211503842482776272255847080761747995255536687920637553189525571988970624712162542357773499312038572185793279706450050937288485883454456657995156455897837391269208140373160328179761353352978488657856033232973663847101265017686616470321351690390794046812350954297354620809700414593351128260202594028384743352211283408245544762797473993480150459243794542716741688112872400761744472808919496623048148163116633359678325752175043468802874329736339570956048233213263264873718925734515766907530220381446321837692963335303340149122528100103174581870105329099397795338308996700377117426439229753183035990780393425307752899325867549593116093184828745115449400007850599208361172584165554654612498416936392911116910918906794881901192122761019821883424911298145556030502342072891008906212353755810472319536072428419745378813392294053158939257018785064407177260692963603751448120814784775421968744535417883804058145638039750993473229434328305312727603487803192830216726583590162474959176497091085965532577627226468465916927463944423000558409934639213041203784374069322358396540957797446895976564535369336405475237758660801928459535426196443420294317928748928323011101565261262263044651148014096460257529994318720478365170148616084826515728242310718829831584473181489136792097466272311758998502626741974127186542170429527998772341432467743280581792376160638504621175658006969539820540536218325566448089082396936776434306413240205555142558659385841943996982309384149639921410250191596369646267857892359897361553820421271824770520804874290778680004724007934046561947672472579634164450382123811575349353641858442139930129287565708495958016083796447826173206145606067151664710707607504880189040141794491162474463230364006175323936324036036858186968166645692381826329556669526005619576204241827472767198385267356728949439282507768543213307623359512030689927643153093026512657750462294938074696546042142842340197280634420173275568264418452453637480203093896756313033722371983376366353513634642553645469979959538465644631479429632746391822048224483724913559366642252714194302923462929215391542850175615546192069822935735719689044712637937096294199949280788536776162964468733970136224305014845294182437692837869711104652263725977937593414101883627804717072653322283867216338715693218834677390167381683789953349310676349499935880283326528502360536265355435337172660328655625927236393777651658465064977488631830197658902128310770376161102133552547001577438777320232928975024343462596041095093854158840845746740738579181806761368867635284299417136148356742850817597947612132737907805127542274741288247090132846554032807314362092170380959923978183643245190563625658160462164533178802780113951638791060298306799570856428031734280707307591131776672322689713023065388295940746252716743016441015955179008865073925093450258119640377245042974837190573512543818785114803646015401407265037983551223938997066575067648484448044434300138464236586956986753490189204525134400839684973369052728405840797757134170361979482744473162504411784574820753430304737429121366523362283607171357363547973935867351061268050838457533322781894445734971583554406000163907648668692878315823304964016359780856918486119270914094862582800976990968417466954071418051119373685419638463696719878847950093493499388946570038733904602385130480319542450237714276216700908450720087819344791406955682314171280722952126550473728578046671298727118796391988254236843691912735210221218440675513985944850920367184274408231703310763051009428715589711028911481114388771635145288086643922499841940127391882620702201164866074673223055260348790492701940520281613043007643669830107991297394302162073397183057253889865519261085638994379771565441445549735898815969174514825671492594791406980827890940812294267571728606189821808237456639554678668300985315085035979496830978643292082793368823078586564729397175543081163462094102761431132894292595842676005775885030302037962670569280119173309667234216532233259707929562995515937493829117155026286030116098210109385373318129611927089182160935169877328898583558260407173918323572172478846832347573528222945374354899469773843494003947326655956547091050305097224495266234738099588879843676962093657162462915222070422820404194500125757819999318930970572606816022657306373439591425843748261543703527462855792539308674688828508489971510109392592430504789398985309528475764014379907347034732296826486288837178870334779028475657040490947308765831666496458345412250682551523073798592321141953570253744994739555017881455848273299737863139397662752710496249643688673626251621199773577774842662486802438220266414753317955007959748865890336617994339387388757148739788956919593088925435479318269087150293198383838021500004909927767356301777282343670700804875054078812538808376592894284605195808378454571595750232026103137314260407204010304839104266492582049648534257996646669337773667565391395568529555028375457938444178077657280761285757003993017686951824111800572056772968533187739901684798756258251875364127718396732218896024685785819769716815126828363319431437037989512707034531612420294783270458452948439641568407855645986628689277318657372529392624194245602868422530481827519680336796471288327267538279622641186802779763096413329813843516290164666379025056259824430475073876026204617114885120312806933495607486050041515394835634819067045443032481647555804405072282682878169671182510364757477424521263745275621461080642489821515465668741166904505919559993447137880642100405136005525488625092201568501698389792183451047989406490128229538098346670826918157302102501597848888880684405543271053282287599707657064251023532283639932707066513291082309267484469647493448990910091722702622282344592533532684609787143122669399597704093442811009125473768492606376115607872457961975103290251929941043926991653688083308861452423617098229226165476407485868851610026322852099481462654159029923491165283503303895620645050086478130729322171031374297316834188985103776427386322287587139900664153805223559918397772730765168918102688338061189928945930407571121927229934568611058421427868355757092633518474808153747773647293611877700628731150147349631463854995589149842644257796020169703371501751007001300465266625854093240040379778303935822693496316534959424088931356244424779654746680968362167812164540069988683287953997824380890777744248191182673820849046115515674850807991927916178696279253928188241554787556550377695451325716823963375256206357761437205286317862496090406538816796461844228079775129924684281545882375535555607027603041243716621675494135078445701000278464429864227106024219784180276152019117154960289909157032918596703874278775770635596523373689391480373901148177668933068704896644823394512544272125252382259630921656520871952436060764793445064779975301258096545961785474358617650598488011727261081800525816810839422953654759278184241648802523304859135021946118647202560139598516014613310688371924243644086544478051959329464241665076455870397066286273825376462341291541371452804433796323770267061536624392654741998355960291340540098914730868300789631202869106344361563751290809826933668690205731013722218672388471633569877570368979038974850194943698676252020923301580797734961704113673503639950142683808860229496395522595265114837275637828977652651369182235203339058995914805303784352504321109425220211011962582137372882904009080660360585137724679996865197407090270763412606691395338173939975105365173830307606537881483981964688341315892794930348512415703170754396348157867930014997272622798964360923843607664809216054171355598820646375838132105931415584560186096241439714683468923903892290596972751251190024942277520486618039550252706456575775934797437974660495746535333497842042223845778781921142823985065193781791924540223225707095759547357275552024530975999309683692127659235309148958378378610969414757112147079345735118899529226141635291469113987415794621019888614552561427559139910987581097836969747933740319851174898795562296815425483709374902660906236717755344822326707535346515102469951527756563850714932267067043706301260017650087029818510934453011810639502367712371044069409371412947231269906497991160873135895216513198309140460720282625434894862658741071871123502897541795424850297435494411757113639566815288519048623120361313956559538251621483002637993169721230927455709810479227805995684473039043044060940878640791145449554851299204879331044145565267745311324004931723102416742955686657165422535220862718572190525461344319751006847157038637679184968868388316616994181410604351241534738956350060829707351034762124742266860238536961243292846107629827638054595303528619432510567478346449226142757269826286781369318646943220664762661703786684706613473777537197664979572456551177344801961667286940380986814364715557658411223627744636876371265183834235773429384382006580856520011593063213886284983409904261609263170779747956662688140499483125259327726015960504023541561445372260898583108180428810356756916753845687852241203105282036054382343323654192032135240134227305374729206726482744692238428194940191603842454931092887121717028543619998233249538788688901476057025637752653134778518873360150067575762488266248726930185764964832116189394257548009085371784071625933839303315267072456722406349051054158097542039502078938585365791910631216116675154253933268042069089539444898232763341343347165823928678390420949486867967523785713352701034242558379199355538062924990484544607458186342760542892959462018042745661235052792852165955773092819620959025871022657580812497368737566505804020481687639404216682888044627583991276851980195941313357568807835384418970618208663031534295177089506822199838479609954552842246105797846680302258697902117288260530659125784106187215690128070738800759799502625789597916045746778645196566707972212699920958127505622993335992572989763379225449769066972460504016728948853697780867286787668615170922020227456852155309962924563424133841865336363048474480321397478574733443073768271436526933075570015804350187134435237908260904760832671945194528502591746430609977197718343464455057496331388536666566074278436746982204121213709941130005549005169621752098862825720383437899611684282281338853510748425611030091417084416980950718336411605013562505482566875628448850236369838139445201187479164695579530102986462239342502190057865124271182656115489014586799847093915938718636989869235379230725841016584586378479443906676708256511609812263386156079233111167443723285200346202739472658551103518342568137926485895727307138672549307040781399205684124364063141920087235743598579756016179521401446285624336522072016557659178584112217759563225981367940164056602131455766982654492507484010957358079136105699083446572323898177792364842599622599310428573530134523436600770017826606126139796071429504682319891917976480393312208468828238867569432048569595494541094583892905384211091520903525476959362804217492855012128844328741429655636266588650664443247225581076080361221476290825953287963470054399275176880386802398409528062792407244223200473133070956772352274374848460727549902012085897015166789687341200850191693735366537718691720113694406104833444945599680099391613138161797279076454327667799691412441921030605130587896472309119958430267871037672340184695137346596479444211071144423723946844265996829105460061843331761624324866180087014629363567617939893848331647324457196471007341876939884109620966771872827656426667200088515853513596090765635241275162979932507117021801855481888776853552057119590107386249827496643947807597004533425393943733617964667901101045682898139803340341110151702499505699850401356876144543777779519909759148417120905119987603707747498801083359123699149884160913890540766810282724165130721351110335001898566389207419445080133365947620796189519174116562524235035306247378570870949409840214713452722992839678114813515796667150546408051705764983487064926951882086534505789828647862032859573133592337794231457261563104968509687644446089539548448442497138660793858813323702196251489336567721417838443842151432465871622321151334625859974075193258923721795945321634824573378324969896723904967196446778250617962234401050861124301486284289130274043559798512543856216914125596385283177574377677130891394172296369760949557075337277334257747072548276592430081046491351496842765245100942469063953236838596053547460340873071872086875417788674843999681209116324163367713236545486461944344584437016988086826357322881772768640828122780470042892724910195204779002485157395057084154751869377475328540389612057832227342825429652185480599529330355153935266253533617180012080534900859593518421244971650619032403063313322099801151712526170658791322701969262910591071775418430921998552541284073029516149062871974636973145135034484366670915536256631554230642669154254935264884086998377926592112715625873083235519605532205055920372460973755791846390392859683678811483734585156603545965858020197300402220203239523872214365951174480055821029876853436224174809525772898605136131851122393110581359288520756043072399895513617342434946369731574443697496487114882592366524884597093876636971723848944693807478908575842661662313729347599892280852829638915558216084984779027129163127818689572245041004466883561582141387000027756078185346011108880746206542742876914879558255270756660157377758025562943915817695657168110115778084579886798302977267148172930258395504847573344516346368003993354207577545369212738524628781779088935936616846349249423001367673596387743032305628796269770454250985632643565277904627249494118226733607089717911271242528985824693732515434561759515159323818673862169517033659543931968284378546043149948335091509122699928250297636668915209143392309127683655407176137411301357170755489732951101250814018641184417286948478349376728632822647415526862578194882158064019042479562618743999303314617990779388733081971145252783878278087766008527093977685748923513371953983476061885099900816101479573449350119108692274052517687424939011428500108693828006504234439100024728974947825436298410838582080434117982257288575747426987103135469040763518622199591140493877102839661583802757407506506263429550602773708615934803552136206899469725526272689268529541825556524418861101585553652723546489900909807522235787847266593173268703132361968824592738699915245529132155794342595175650186601727830362076395287698012420321295459831990561019716417076251742204138675581857144114977410444852053432741430125339520292876837479880303084131732396693839637691417573120591984456298349915815886469015763547570924753500593584722957735414812982259381331741374729607497819515739811719144493761077470883025237098058548296687367115366631904343598779791775733868650456816970346811080630124195090278973508814878592214101472706614298598394034333565583047180773023765914698182843576460120059948446765739029084623729227069738956898183243217872552673831332529815907229053438644317797046875859540228930982459369117105022085438096898666683035877940920384757066430310007212300647883336254326033960552222034278280384566305509474622513339692323115176828088353159477084521005444654153678468689556443176441044807372844045519400052330437224405616620482310337177683629016341044681960170945589046831205322976747857778177814504351887223607987963926642139457174084546198275768276233285012192468189619577229876807828385511895229348460214889513012568853333026828299423912408241849318441251270382584578636919249764151803317053667167354594039293751145381648818894841727042657004701585191769468078164412156925990401947538237310830178037941494147866011354987457826060469785835430909709315968473928262623035633249203080573655875963345100129906197809232740750300020386787640227109817573052476406249526427591485776238882450394133488833398773364992499884741653178575481584869052520539887646459866358485507660194884421489954291356202189989241766761319385491387150267803884723172973741712184929271009701394401472431865181325678786584895578612751886178202818116417435508091821835362565529408667610920165838717625142947542148749098169043533626085167738604682637822508158469419100806468288627668248643109785148793084398653375492518595959651863687710402860678205664926903997286018454921747721628403381074281706238891917270592783530881578036382638670194640116940796894623094650205235301690950630309515623130253005281015939693447533182616227896927678984453449719869277546049945599327960038200407435467616066956602978685464252292500242147710382733352205172805662746449260127214767322065230093218439659558818834824251380278954521864637755667424985278408762214559315496313011948868036465086616315666446550653674543443876963998274325493089045826314830076497130983676639378378493255940881669528126408830922983258951906404072121532677291535715723555762655949593900335477879789124521638800307578550976709457209579882869235409803141385995287457974541584105104405604543446400149876070415859446418443680367682619187176920519257433081135258571146887685226289695289730494791233304221540295014635435573445842407678295068438558184158938857374632792500728587818040923226566704168041617335640436058361752059460625800191508202635634911509426520488410280540204425761346012950488393426939999195504758029426778940622047571373392978977454826247192542058888802332183959721394977907329530544813099222981936788723595373366774405130353019819862388384041096554142332240169345130097622315234413174748752009837813134365749515087983309730826994881239421351450806440982252650079636788481295716333462974481112576435702718838608123404601144032899749223639099005933204265480170109174326197749316576563816843156685595690686806744431562625319914957526588046921308643286142311571882377577067009079471258537355128304739627105285991035319043285782953073123115044107006470266350880922652716870511505759251249358125773438896677187801899851707669880289042008204493846471313783622906996439176281444943866672436159653868173494091496230245627694472676168851157868457343230324356626885390652608672579190014177331672494678038188323698958244914586784706143432394951263230622076362937333367817827208405095446316722849716195341043560657941815618567398157212907382907583257732888902706433642995210428793119804911439635761413630647615434127304984741470938682060454602150235705576091772861675549689919942645375536612739444342572664991990737164279992543953132560478909632331838399100729956692736779021516689180879794729771753209199305660888704337660252424504247195399914112037759841484155959549728027867538256248334772526570673422236220272801144395600464075542349831448003633927391588077231784980461034137305469333743732496569802721019303605681253492060835701577140380451906019692200007265177725368723140979764426301757608895260590652463358498243358260880740577560107870591094348038412956687117510398512039343721872094459120436457328215461239671788158771949145656209213709412241917167558283043213821421603635038177983115837297667323611030025586466741141874425111225048939046014043501155108058708961997471523477746658958432496309469547481587453030391039903335223118634548989717786864290114873342755255029317414269974358444722596667999663461014092719104664272049094549854246893813553563001636421962749364741414411583775984718832756911291057923451179380476725207750295962793492561220883898516994202301205760912962456721792306892067732800734446021928335082143139024910477952240946401937015459532708497954148239312951664601249888317066236683972602349173538552949861094334143027909068727101782618513837653259159817469308805315476810517922392503304277747016605832947435790824576688043058100511751203344188743052899087991899949162241799726953280756586893654743229831431376447998956672381800197919103491250353493324414559647569664367596974254210036215976477416606196337096240966471078178012282486412966970408192629925759071339981721519271979830928918931363926377081688933969548482868472458263178221043284883837304096589026490222979884698152521927863016149769387581615999926348336791342564989038559090057345326117537249005046524320284190443165463782332139106517962778269173941242985354667814371189142546166203780414662242794190994133725299538701340542827386180861969986531623598122222610431792966886670141187466631833289965164466704658322591404026729612690297827753488276067750972411313595241643034760084007459349658017059276599206469970824571415263067838274273622632899638883831633689677424465381194947262046725595742631559969183723196556863037548745840927926004576126734231692441637462182145526602651308584874080862479300352419620977904298728847929715874473020345209202703180608656660025258155074159159488760848693408190034437997769991209618047471077695918305647370094705175807021601628137771696801780122060034555217407429185340417817411051745929708638528528798224303789214202106913279888874861372090337509043266294940955390533655436480692690646736045551654400700370239588264384033126750569345262347689885339961080359286375936606479829958854127433295256021631807655326193205759375366200258149853203172002600800784531982886999500956943372740519480859980525942671317084644545122438425411362364142858609091695953233383063703229819503365199036591083380013258981226671365886555819968191384902804050360747024588629177432052039624780460020980672682917099648372219246338808014705034914380660832200168990971738088760366399074229862369454307846617907634849221332870926278157772450482798529306605710127722772756634156138092678261455789359202495284972515185981792287176152527438492727039795362734711245753724589929368489343944900182579609441829904841146754944947453751057670888844032122319963794278186457419195270216550927501230809296401256922029758366117490783762619493570177352250837473015892940135613682782884165739093503205670620080892058876933124236985969793384619505257288801936359643247973097110275488115236221355904507247916126239421723499647739631031178749156273714236108015135342978650127352275515033088942806078032870407005554996143207134402215399896283792341454911022748441801072163508791999720220952600637308202732285623598238859250020040878408430037485676474313855780694659187847925688656342009020255009580339971655335153380087846226365149821377567554755073695288801602011365846919264082376222868079150761664271767916965040694428847902170758116370059383293508386248154190170992515610816779065023067446498031426937870168125020235369903981399025730265544930357025303019083473928350227594956496470960813034592821953950265389743180221885634387561682512733592815319878937580388817426328101916686943821432299271513086058265258981700338606930165926659592724205822823287996805691842404540594907037557577232016125059531196097551550962055353073133662074851255737502044298280401525771850238796597855889557724924341782601414218754310471831954853354475513734131091809072791677572771432095185530452422384488643564314674397032467177277754073612188703432403900147091915145602130619065787194550570432179148602751347785431914944845437358659465161217138617416923457022858712072494558003824783466685617092530332925525903939182729359509617260420003494788030895995968915422595580167852297331792009464753264779077383631167124854085819719037751195835188032477237882965966679765260094974786746775311364438013310496310190860986742365612254486732655620949514081537103323575244744562559993590054204526523030947234687720496720394178479078749537589649527323704613704073722554991456821709345925079263486747481018312878339678096367831362961391115122954621133617684096419639831523632235091668501903190514214477361333630053132001440105960358790299617892034777984713557035677122676601822420866123701819417044721297564662980223727260792038788374949797464285814383094976982941366667885131108488786003982260412990772595515207725571499788163825118111315048252429062149752740106767227831040688683701274672966917991794777342211956720115882324594448947570504782644091642843915059210184555926451446348823781378341971784638520526809806933126533814506553094242727846229222444788934762342717330757716192246856756082650811739958107775883213393272082708552608527972165986080048433819932596975683948937518232342210164868750291131842491278045583787591495229943464813525632742823257253824856463562368503362479700008449188461802735137426605056822893290002745408703100546264948995849230063768276653343191402868469117357235475207602431384537295182144721258419421670602419765602138773937310080914812083136133287399479572312614362560236868363354649783645616848737325625754641057361206015278714271590899263121226567548413958404082278414262032773832822809425255186224762310085061363100362789901740899402413059377798940757329461958235203534716664767815385004918309856622112972957221221779482101217744637354333008542611136341633346766994048968458587149862807305713434158193893565956629902751367322157594546673835435789860275449489954413763706965965219880527683229625540155092389549889932471999099991036221112620998797109460119797959714312426186202379073267205413139348806014484499110524698473400127341469756101499188677017557301650810277089962916936776835544410180396487875520413426144245248378397214324033746866596221426128420081744698156932967771947369415296350320925865460070071672560885432182472155597552882917138455618134273920492166925844997019245339012673705920881348322329506974986097549567833505317797080898607124486734586391920369238549375550422176785394333049556706292580652278476575196646087888395317663030732056549720147718832420653903101885799318726990231315017207152428047475046729779473527154302504151502355373550844268443953733946291672676055891603304240305199757919784503664659096065694521485044084109543544768186187476996119681446552593637062218864174181155925526343010887985955014766164718125403959589605628224187690489729611270517644995746285969669578219667841291359216450550261626397096236265617422490696866117052857655833037080225443536362177314133120260056263483635206980163406199051095083291711713158698172113310042052452007962099387805325908072378779055271893675064000420041796493824792740819112898132176004865646837896526900572268849245662478712786975702108175462564819201347837080904178200391405563789812666352441857006661904247637017113624885739328558723516040057897368979215214424751300854204344439396005981386835934032552976157296732627321979633215180145979077767754407683956853550717340924398044356533674306924092526518107278061380875600716416420835643349382971161697757728473748867977234185885214548916120928890497978569747324370577002795803903592140992976110757297638093820617731502576266041611781047741313360347535260100902037539133697164128406559714314796955978186889180605523085385770645714088988460047134925829563348425394446352863785256437757109601709427923036767699272350822259453080929275045756443943500798909918780562263119194336119088628250980298885943062243088291684945671368516041576766392409337025553784160719768169207871079858210115887612912583351427098463536787161823127758822876973647534444849156619214135776029751929347993259316316265249476262539806443337732891238401720781456026167582356196579466975193111755324416401707021054507190814436980056772217377339750952608142878714756137757466677095315852189624569896513938731141387967157425518813602234898180143235905839099887981435286325249958072698807858612229887367092393837200091001753591251127642261087881258771094128851194399050755161364620751784044053645307410147211523038665569648937998961290964185089039294155619301590993626400734005830909228219162203085227522232308834769305728069797834407846831635990696601410319303816713129641024705724004058955147648050875056716054018114632885809370492303464542281155380457312780757363232098969141254719112607172408608213020123876870518419297874330758217960573782146422324187433170031147850807308154183989339428616910020845558911725476934486171718343762851822297069996450595227617169641127594310372830808013585798963616590271872948634089029946569051494935356724795134910226731255867113656816115913572420920673306884468703649983434481851985522153952178631506142617235345658257759079716552069515459952225974215025008662510128261347566864954368011530092585228042583902597210098873856349675253745942896210344184407685328758726785346696750379217730199844350316231501643697658850379101626122042348351108197725648485117246533148709384202624825655883426330923877346755325693670830825466812158252213082392308507603836108144151124484463349038784201492054203324717838216232965918714034256194199368811963146049307011147673115168736605756932327973298388521424530168321472382702144670286127577862460870739037054614118397090631650351201474780543414242849755350994460488148559112285582327679930379431473663045676233912593433454267441678108817436166935061397516468789361292835663756911337841180633676962450057756915214620669305328892932215189756941446820969933587111845816404227614787390310997406492758207574880382830076123372067585119128927987755553738764496339094908188696499766649367740630815516211717910529794537490440254101632355153455698254878668886595246188340209004439474756995710859304417505937695084734105358940895957542784134738529584752080107490075021863959128788494432365291645368550388115361536951537617388681277166477624228076459680712718655673369878995876220316228717588896233594266723773817619379086931112768269636246845265401732537796386127546218881273806581954781914414427445153874705448235972266220935381922005140778631383475687398016404276922858614805036571334907074128198506763517305927162598138258425775194853549192569991162129331054342538127527032515975137468038125495889911332649148012529659885994837860714223287926722471495455497094042421064451279398037854076616211551841616877145266111791802823173336979150667415972935371101189751948341302549465067239943701318388797104672144382721022885997087873133896141871793176196544019997922586776498833780892362073340258366472051178687141576262036919136311863206422799289069283199012591207355589282450265343511411121504457646499116375502871788177113715132811071244734817127226853452916477904619708224785572013434813185378373342238886418082973194565915374772529652840516041610615292035073385078035748729558711905892564298636667733037899184962755667009831059320597572556920456755843129681050652800194382154528438058263957650574490598629416703922476573623344700503851517854195520490079305115527114624434631006539771767905262752689991421637971343425918856146288538833725351004085214710119767989416690437753709373444928317804777239927455334241527860279607526382956328174406242266340583216781602008800963138427481169800282779511470243411474724416415089747098977624288528426771377368246936306064606723333530745319945350776963816480468302868368929988383729539723172243124620475572679483208396573376307845023090098060301462882975552668345675744196168643415144843440218755235206114418757272353305642726421294352073235702251101023922818942259971317667861611540266786612614414341102667445436831228083643415709164052782216939497703128235339123714068240504730851970987381633282725744633262821586609491834742381596156781279012826074339224559773698769722393387962060138239430900379422497330881747742041385177267179201950654518180510911318911426124507065062573653109639391987498002864912074439675828934353905299227139217060329262089961738721891455469029688277841308109529788811021718641705679839502970933039064330540676441034507596875529387348797393556377288795355324250314600533686049739692535825114841398960953207001109886561602512663158428395956242096436610895073752320192360720082196287456993444590831978896583552285835517176931572499118865291736324941777324564578463431839975197320959815144208854746208175133885063431261400282410990064174952515632278575106169260524813392856426502104500978792043110643305107292077878582237504118572697233793277742074986251619203772648624511669795455874534150531182687764421422615592722896087891295691214259181663818609654442824102259024137531425064415988337363757565736765339844594795053461220287709783015217123743140772453863436933868704526391750608508802343464235581718687465667505760867261988251793240197309926537316014587163081150513998397602626285296744762326667664038055213954340630802500444600967543055570950268672497520978094553023114287140719646760993055155664325874720006079164884946909762583339949818846576248600834720604905437946366374229157364798195792075709659557700263413579325138498803327202846048247494954851323142148496977939364250388459687127285753730530718305911378200974419722878101172988501677903083083474551992401333066988555859338925389438717352051284541151957255601272194492389186406365879347518047105965485910120204007289927350355114475830598490811855823826080942378182303410440580618889585918508387877034870920581463827485877158726917639433237106102379950627845147068567970887044336031769750579862693225400172466354253620791099921111580696094400984549920796257648640371730767952623088403304371561732225113767468159524811960753095084385753111891834392830640701579067777110032325649627124661152794093925644870093953575791165098730664868820474283037746866538964391643277867727974877579365089414490788664304916095863475820685588069507183706441357863180368479901154056493954913110527495600646803843970745814241087431663927619229982124802159364783312926859193110233974845864971752805978220616783683577764462672338373569048405499091614205931202840109035260363355177943550076301316741035968871647086616632582879701524459240516613906693982790462746961978510282135228333096141539414206168518037619225686532737084854114352367325076681075182548647851709602539130156732359517409134094800750027131988259062968921365374598212536928220430291705964194155405458617202553361108460324235893528420381644095530773535417991282068369288685376947767884821115332928622754117788665173357013567766740341320248674830362621314652890757517151260114751267194826038227899092176485660719473771336461569076131238244054325420369115555818433509711097366852383113659804763608304844409969398389273950751687804584474062091284446197340488699751512947923653974376769559519508615656371979314862156202423568839664290353271733861839974013296518210479543375927237002334661744882442026929961231536797976343996628722389886481474794324974461331812176152979253461827132474177627742030675947197439301143105802891262192400528345591478087826980174827042898654071220644480143313476389601204910034705406306623466854885387129378674510584990314074098914319359920180992044265969723080212139018915099303954081109450223837994449908406934547151411844086838418321589673499535817102155460623911320634650656870218284051197030922431812158132339057487427105075561791185528188539708401548231458304159719945185473921187616752621338568811104386921396339635712765164199457549349688519957925377497630080587569097630799140550378405314625067276506124863062882770051737784509449874815204636018458334784281595709302881434617213531720863046631360989636729574945846734531743196390938601394192576768891181333852324757968474805257029722798475187591263000055413403508797054352745435806091945424446016777525607675848899905394440626613890510644064043959482025460904213094475947142691654895009090732344400703438378172145823827184890168539589902887529662356193944569991194659475665779122960653378710870201728308193769735478802716774016550486364640755792902229950787573827898324438622287588376697758540017150656068223853457510436341108988194850636944261683645934670236524200291022598141368105734964916894389863519352956720851649447911752678100139979550873397793046223556479733381362499897022118976757589763072392024812639923407599421671086401049284612474438634625916518063424096288928422847039868231799052790520653440330576188526325941473246468094742897819325213057055613819573302966007240631198703854363044086002573800757636125359192701186549006380814119331673931640982847434819457474056525946182489513222648938775848696335581308033511594294716120430348777582216153906578485920472032650118728611300000678599344267523410145397355147449634143184531911610746244024493326466490126064310902987448740374870865885553703773734821957587446337111035729624211622219530882110343031505952279497318782100585838129099786664167564259463054230805534844123178651727880920704044090777787965009693823749689889808448872261787742228078223873153688727712910604112488354587677662356548007052235530874906562764616850717758723380492373217480711461821386853828865727271109366004052686780904207799609908062152499946829175721812850606741689604644142219372689598311310709414692015823012816984956300975179555002608947898519472021418613974670457137581090150874717243686659707372840062902225407897139382873654612502275094838542629239013155791630624146177795032805273334069316884087920746966819870584087435748550315270699082758456680799488754184493758043086371833152705397757026489408558085371055927801711779401222114132141527850952246631537085785174168347785071098638922108986937691001362222312517369589788595432663269626760077802806420281699298640416394296059328639354435332071216895363873460348477662523902621580211918943951308731788190048489850135328803908396721270098333143326877638523845263367451682806262526924905136944110998821503454721868149036333711232897183919062313757832449222647254001845514168597607417956280185858990373509705492803373314191472965290347992098022250626991428989912913043988213769338682363841940347539587444838016769425207061765349259977605937379434655620602225786775929329676017426268750780113567761700062547111153977142787073563584643708436999407969817552083370774750611743196386987079830354828564175715664897190097917888578848676460564726525473034230274967753718778247359736346884402862217198864231219912270112597109608072194928183921247318525114310456022065011853628309148830830471454380726498795116061481662786589690885246093382770750289018709291484955064476844740741515314249935014846358647760043673417025926281334887144073102859110794024642701502784823324578173767321621910448171893186815449036649255987367076043098888488152872492125929436970571666656400728349912348582072684331226131226604557680752323051785653487905043636711740427032817981422218644793284825241565910658184077411294971966866158918022336457883325174367865015438975754302183310989381908931951834308748838868038923549090232171960873040762273396035142490994235229820067370076848364397588723751807285984971142309793351866705659884046766409189269754542597205092408747552775697787142353439629679919350181072956689898063994767999262515569845492554364512490413325908278601639357356539691326788224478946492841611072510126292404657728648702665915445436555739685634110839412470298289909341917274619050856962927374925883625100013771818583134695354576739437373981906199135117123853985281539633978991174758822776806716811681742158863031812571001352118374448796837529985837792141597411296211993001409163036400852204188708615573476975479881381886158254818036994485976608454916945501949164542041323040956862332079209355031699373691385042271878540684225050559248839738708283927938162974321117486570003818738487139594811448834860932976029164426638037196130288243709816901791825275992180947615245843984461404206120155120769902458494749098191632656668551590203859596340576891847148932978575444140169040208277652318180639382436048665125008986043667846531118900167654912428630028147300905278689717197772829195836742626515102903377087777117691451212498895744352647323118904296352018278509802127792469695262320411715516956067534916685043958142307766556780089121067929217409456770601836466687734687416447105669498024965657491339770933464337354775565927905346344534765541798871721409258462088068686047951624160051485506468069751085141855243341904509763439018372911549167328770237627509985697470858268484078949659118224402566268189277020332129199627576821873001556019571650529987644080448787254504636106707244287901655202852860729762069643671608295089077772005004748287096831518441081555992234868708011847703117511213567324303364737595283812219056428341618368928385190838945386631720949030263078417881099082502863617328050217015917291775868910496526137543052837635151853871795554655722224433671182698305218663874437152287978131614910044253842507325061275417329099136861463216687385020476654912842712499259173633907545910931787861542151923170409812650118511438197070252008882958532825116241298757684015370510513610808747298340281287987248966613028584571345432236476907077565425145711628199178274098690683321276054540284034711078205111122179598079321505622397205964032416630117466741389378653229838118634004554142743200367729443844833445702696422437836609144412345223992227468189068735633073722225394683510363605376034574165040774775851475042250221165297269562920392520170707537715650614205911085314263915550634592317070118090185258869650881688536871454642290266179940051902100261665302130239453113148559237706042817474903658589320316785373164929647828035203323769609348236219795862362128306471939353800396807054297155747933115611242750192791282425342701791158990706012347625808647974924675118219953027206117650748393367244366042959195147768970354522489812690588545971134756415382609558625076147925580297008701193833754241431112141430175468659644500183144623747197641309165063581867659794802484590204356491344946461182461314155130883360671003832357890590210974028541021536379517181734072726759346443042456410724315686706673289382004385317059160826763509535585180358364244583879149327643131530758835960433201722153458222570886288207499400794468168577930783219842884368770134078744758193827503916753428980474629214306337634569078171907266813275756846525805610991933909395578899077913729809365262005551833229378103377080538714525875115503144902530998479146143106908251856762924029844894551816733926909695329672829175432134690664763395729309297484496509991349632247013569161762383677503006738744844233795713087475142445676169720094707523627869668052495753420134662722924367665028955016398044286704805451028879687177764184275683845788098641328274959764365641174709830736163981988213377885461582634183279126644984031401712866067129081775483681721854622196195783177402408236814551370415986630368153060965273330498809240341912584471327120930202904358652860492290013523334988444643907960537747223819647768970508202871450736015995142587725856780455106889281154489995062753924106740777188756204310597095478420711292002381338407590220313266114570588990935980389050235877640217423965963382338810719020474232498343719048665481668358711280407776628085517537192339342002856175508215736093361640656208339357695741661346159129625576451549904067726401463369121578312250041643174633479194968344712792849324805285780627425776800717376563778026360219051213716933930022063100934133898797007142731876126094135094150236230178544524923343637547119396948662332483140739149343247501325129696038268884136534541855600238516568277573658594112921125350224025465010079706836016772796279543502378293584589300454322398052601178080007231805730502106411926663232915833340271791008683911774129840586243871573018039721160168606059688178351580560030127672617554790131816942024253454024743751553321509988648237052586199857445836872011338920532596448964345620788076879696578668056155605378872163031217520698779823231661267774389413268947654829293341922299204570388661471687095618908223826026137811508283441165507730524075834548932402860809498300925871025356576295372495321248895515670803209391815929732947666650957328403835803958100078408337764842568345332485179381392581593302231469941394193826588425686977492581509988820025581957376716668605860962591833904114239130978811413440753646822716177642384287533876613252441586076560861691186945315626553371798207417716791384878354867183007874286515367065099925121413514022701918123581238390531890197593446315696557366390652726075589562087053199665131885030228252829951308648874120071346658893716185578967320357809466208229145133207834374932726251857828250600037646385845690013618043855846032139538267814713313052392846260490028336929026840131814802519217459582434176215091592284390811262989325928728323307797188867876979900698601400005650146925702679079470909705765865016305557747943823796302105438319923528749857645719575083978411738559095302969706307677307590315374795290358038251240102481312811998991140296212979382121999386566693456991288640940119350220309911337839474714783318051588357518715389289490185847585689688444305478673453138011957975504848977184625829407844469420707921448802320672616071658739452436079145860320843148429269000288700610548865859171248782504282102046025669554071806334438306969148918381651362937345537805952142052470446433164296876473798502564066468188247844610167230383247543327733555195377937831419121718209155247488278563321215354680116836876133314852875699348597064261204551212384238454903827745643533086181984048557364397418300775864258257788549311971078452508868700660497415658093075079669089454717802723814910003174214126979435234320353394749015299683133852081313129994818568970886316496478372504844879382613165417943273699191930916128610439797206392638291263014018907727528552189637495434601913726465454838890155670256455149543186101460683720807803124676473360323330720980000121600893402331937669115324237158725937717590348390706289102639612838642362762666701923085387988598049357265124410900163610330031055929894816272117265717328542002645779501673949666740941881939998612665319042899398539485725859184834879551846927228072550241633179851339101565251352492337365995749961207740988494221947344130803801834711542401997863009671361686281931173557893359075876016505568927057805963573600701044130110528390910116010787636464764208973917053522646202428967613526201291408466893686801707258852189031108330260986176355093878575651476130071075562127434918672929984256056365748020041298762560501454253370598577584909222496567973444928703391336975221939403372097045526825512961400939891243077738051410353390077702694531471926235085180009408670386864005988577867719238811997697670669668292157830309558922724012946097397997154633100991204688122254399387358970459558179983090479497411483183511623519435348096682300154036946570934813677416114661868583746733481075215169564174978614231781118660621711095841543926489528641651464386820994593650445367926671910774411535286844579038026796721593758860382092606884493018979209133110078054504663966229433477667672299524024672502524152691345925022658614630430744887674160848421248465397870414280959135164221046893085869139447334524705405898436689209345491152467804696437695877513180971936328984462277707751936028675005473496873024866756822798961486544286606652483875136889308807960056944756135940070734172579974416491386887098545484145868069941244505277758604079147922657796115550441334726013000049731920593050381978927651796116362245034256032503168680757877778718137607362275755470260942166105249645192140265793241757961777936560727455787210092139625227415405668656558236538218983457056197907560266863397871291518623326979661501338439278400343840801499797537879057733422954450126524370821746919044178942469281176229924248714965881296512001208097666832263420964914549003988222422572692365353648162436645694395112167683025384819537477376897199122683152683305032481371386539331651361465432542282570423841801551246876426890608337537349794931787533763493642532268740919984553433276048026532492566847837565026746952879845864523958509810280683932821867213945206625252040596284387082592941672456070285416377028842024248714879647544747306023041793230002981731842465794228380291116820418932500666775780698519641152084446344007859984815574374213134649135027478437961617492173217312717067572782887181004121090728589039220094028057406750552078585360793381028898621527931978131977743918102786132858766558431238133792758270186065802720661915243738382037664512305447170270240636810326413898191703044996464896762693625284412779537326010486695045851431122062193550693165591723692738189556695460911798545599670755906586860999500823616530573485775219069037040521040826615514377571793046416902071524592567970498501047843173395953348206634818664575190071498479165658412867134959410643064820974503499106670375468332583629768555205434904605125981196171153222985802862319156142519737543657354730802397066018900938730950828642349134632716632303933853745749863921057747872345610615774062407839709284412635963606656384998725857833102301668300389721080917294137924196133673786836317265766382444533659686726869534431668017337420036743633503513999276060089284360005426105086451842843420250613537519937565813983018407278862469335331812369199813818443485640674292261610428498819479233398056646153029197119986169701723981936143311302804571724686660007936739686128829888892539751092159193262492436178164892099099358140253428635278607920703851197907902079973708264640465073470172050953060488302183317900445486697497234855133285177339422203888939939427177497548311350499632132562683227198789512821990900165472678364211045910188658155378258649132529574634728440758700123255071340615952532063143688005719481148295183889702151654649213687028839070388892458114994980485027779984021908151137730011973042877060601227298355888839260464646757344751420226830174419169557746858342161213663162379811483391959154193887746519311619777604782664876332880436555183944102681599729366182235630186296521443669957327281150146800434475942665252257933620561393463605635691631333906367424352941637830018961125732223294917903111531479399338708515851101584643840543559475274982150642694311955085892336376448447864951814371120629284785972950210983972265342598766827654765637608989241307622453338802137862093684075962242227355184565756974571271944380615600241913238501337210481246056316838397109879976069211718484332446100583569367857955168584040075544785827749947449109623191892559720393328832214553480527203557461412175509096729903788269888404592716977521759446102114849465606530822918717566946263318716616832420536350516275763497514172939933685565619506572014618515354633943274645471922977091070319214459459004636584822970601730454025840524892794173284773372898069693908649498419438303647023672521401511175620395592586295939817000663574218593328596522431782416851979732383259640198581820875919376065444003216505658967762669758447919068505852388587068561718776072685873119235392440951754170644643692948031728178794931271270963621274826884169769526356572587007288227900732254360020998217720279522782477020878042185614590665443897083399270199487833314608705129141248292275270772474655755992704673260176817927476060200744085456102009192009134746316251928231897103332621950450751398241870836452017878539628115291765558548822740575267434820974056834397307604354940363050233126740640632875225810277214082181542442803102629193473101684345443789932631586658290931953404053532617814263939001817019988308507773222124697926519724787866111524679686877807251693182817326414875382264536148225958153983960671471138405747023851316455852462131484035362121933541983374157843065782868334128231868052440651485018372440367667310454711012533979049674648296144509894104711877885995609131504074530902034489317615106034112233821131750474159499175204249250694908760016074806289713591504630416832487282317292123296041801768500683979066172761813847542557554107927484386536037320488367990386613537538837149602196111594821373253044725905529038038973369595898732626512311135567130862687118010419177388138124732576451040216556110711542300804063578958727837888805262926052696637522644554558255438605567114537528925003055475378342932823060816214918395393557069641606149465986117027523224990680657376451133211462158147400328653578486150133463698333110024030176198859040455951783001081920046200358032279981335000848018982995970899168717483817855449360852219915828387240358294758652111909359835200133058475277935712098224666722952905020202557872707320173464875083812957588345928100754842159666149904487335547972503548572585474569358787196122520915879964004941131664206860891188577194844797136132903743471906107151504296875729808717399758891069744619581505856073222524108979523234702371147778280512894108325729757439599399439851166400472565362292452231685788618797425321690723986928549499826433652692085923826218454287727550999601800984167921190814890074085064851217029067404253182578539635773554713643894648440544291980004741714267380597636881571990271389381869897062412131897664124147346314199059084755550604240167865830123459398706014429566552494166421481895320922750102621261273626078114882685618698456839616141141572299243966030461379649330690618166233068120488696610194729967156336987615504820336262204346711361225407349911387738692373643437215892683981818633834049229574936218799963146842316247006911736198370513899211649315068509907589400470255792102496093139086336523405473977748245129252608549295956049218631062138099114910385332161707448125460971149938390665228251186427311764827889774472871887383325302703420969868827525495164348427180356708508106101879832593374387826369193252529126749669283003270905001102329203674571768497210470921286044857235567318920847398903435873579174202354170737994596643462290590563766144087486026578908564043852771854706195562580043447888120612017077243973657106678887359118155924806908967030596783292179680753559696862249849845736108107987218419802474909122380643141729743170811370055691994953918897713174223990794390343755481816049260658910331652249001701227709895397284459022155574104038384247755172992326460215705009087611691803313646072691472544666035692722437654190691646036145524508671470656581848356163166406488703790330024058798653347267897520108128875714162172939847228536155406525276335958627520948486040349512313097796556656139162045433013877558596806711153134666866889992670338162328130213550554361395138912921460080297691712511259934791210059407244250645900145622508670805937632261466604344996512570025761638980441725274096077662141399829846751876612357441094200649139791425116389903237036980615910001721271747149282072171295556888720830152675875595153452276277898118119672651415198397485005086548516181102472866837179297151786309219768480091950949761254076751870089770401324292498977672599624675467871352668958050274838680197154347556909728119204745828943965595785236186610713204385713257088577748401149733333498042353189193591150056039742604910920118162525044143831341379893333678354310111580504691734617115682692256027095891640633915084020615676588032689183471245173900362646686273445659389882063572607678308315877614682359858754488520650386614321650746705998627892484070458882532259992804023798590569254902387653703281395732984324292449721623029872187572876444079501676106238159996008332048722575132912797835504558015718965535912500585243183168612952087403989786031098474808771782532505617908104218476100154685168413106061645666001275512210397688238043368601029154584056848597939880576598471479185292388446974273335561645658870329704580824837921247591606078413147536856301826641772025509202648372899998445654245452439698006225715639790102100667495026877139411983145751873064339070878239406448731385718512285931809503237324627125432019668114813576687104095331157746869051943815188377600367988254028623835362356199691853371030217360929808453401721520583923956027127634432617652409212847170549880416424334264391887528010398905637185520847348827967974669181744052069562192184856342625928888686611884345060634268188066224720126738994776293139739601186759339916400782437771291518578753097426649896396037308322867750006702406364947155031985353317301482647231839721908893646827933290166880209574722894996469463310870092804057334316459078917120533813357705450842313202491718428533463795385884483225350603891526414557768713982761911142670788422380878700323323606909589548321906744167374080931986018482162992263931468976066679602318846016142513147612579099663449704869199388357908178351365754136559337018623482897128009563207233836463536333434540500182307872294921146884971836656263500875957580942058094550388437314765196115575465944757345893935062290242140254022919635182920201364005657582171190159708782211862881472485181015686382680852943873777920763209397812606633233328371622058992181178468306792855304963258913193822001791299883137665267500615680373036813506856245107057043757934417801232801317506327188606774418717829148737381050293419459745532177718988025398768518974471108185818290832357351592376450886465831397234133986399976321651746981836558567801544597624565130202445036736721743662934349211736048812232579283045212381587055070078128099841322876332757966932696600751336937062051048721911112289593531110602615310894125669537736313235097268006676962670552611872318106588621435882931033674354161594331160865099303750884753572541874504199462526829221464611867420591983878583801925058031788726596386051515426552955950876036001524507855267852556512934720778930082628739779175683367830535945478061482745808618179394941596075000300697096311739689768640404368015196583248417725792085823580293212904948507431594592676051963225308932063303637951987083891922523160955969108420963463141334262608604935468298722938158341849098362503932396017772291843135106725639324289812694933543760168336136622612756634368571369180143456967017131516266883186467578685960711570526363493024511555925875605448467196537527547137070784449789763350253675777955049431686670595269989802226384352644859483341810202918144108621352628140332859828006944828087031705138802870729655919733514957281384817343482064477583883933834082116999317111555166411570916506358141892700317550449872068051183117504726025107109596021106131415699692548703498963179915770285280299493946023815533393057361199756242830503412765965142134877130431566862731605411935868595651926231622477043965749831803703861417354456300004909742782507143127306888878167044165179624035523832558667825242671349739380754671831926380758544948801494886223194759105603023276791374650347781786219395294274813882821596467394024681954206978790412546979097305527864720025017385721950913764054471773114026501443176524022959899424316113468173478950811244186826395954490392419644798469550725350025687617135231103187973961690206963705574349604246376766903716855259377104319883877605430237176721368726309209846611483896329143332420836940942689484039477390280625367493006274012739656374143381866995588647222888392184236488390403378758552648317531262127003114752931128762283894584398891562045818452611982237069481678916566700322268579304692518274401029021585276609762496326100993441228143214292335145459779057873814426633092370948245606007051241584195124529995941263741888198899946684918702841998864759389911008484269129121115167782157625654164990270962226127901725491999595453160400396519531907921478704928030530277805436355908948698162758170191353547415542269762393406555450218842733761463834482991348117508456797927427771445474923841882024740186709485932196139060384667980785152169707560768504707583966858495982993632359956289461759650212863025174424674979426002755526610796267011180841130556735112526818071532311168094774104885571837086288559111387365683372670951244873694372639629453149401885009518005933952153394823087239616298558111914500156398871478358796973261284592827320704554478704491284350059913241240837149465119366781847123625480807399713957810273819752509343057489229449493800899154042685068642000563050162364829865886553350774550605967621961129602378288041229578594531577987454423968056428210797818348788702964828236775027339129947796861470280615441384448049104308034479600448955291449462574124412202777751405335725173690434497877215066035577824865008767280062925265021958928471020445503672531960342353894239656442378562441172293098158278972562077169580684273183827072246145081049221625814399154630415413788896458403960285081772401315506267952361469621846912587233192101062419511702956355208642849650169827910286892315031903678707367017518942610350049919150487343387756793193171936895130845544508684561311435925283849904468731677285114853853102832111625422649169348408600105872270762104201210596423114621531175996239052742086520433724873914446165880766439525264735985735983838711449654362132479830293446854100503205712322628300609908794618068294652086035884539565464649083981459829547645001528356612336213374836542324312540118160468064693497823126575076931243645019353630024470369449734928453061648308380755701185326351284923643695524361898497504318405245921420654460021217145583354884809249223460306975601685686736800274490935452410201827310958778155624685171696926324378329961544978690405060522612706299852709561228696809607805280243293328380754160176950780950860934507266277508215137830904237161819557555347399700286401680309869431752358532259634716191100556245456555282257071041880484981278716928238073199985744419084944537397717108108808444015216232690678650993405008984575719363074211163639678227597545171376089210747534527111179541173365123333028004717730780179675953762089420215065134395416369096655826548440748824347591333674879327720336045139622818574986204877817441848772433888350441684802655141611184350848845763299387570752258237855007034373995765940521408883361700104286619118267684436947426975486734611582515021983379155166085759779493655855880484666186042084230064230430713558068445465504723591811962180748679875101094983439554669993856253415135186674354798142172669633739505452665800654879211981443491375668315596211831805979981599375569826775867612955067496755432236500522109946367995715213413331412022987776957173797255921777657545427012209853691302573178575569203265087291844543754021434160318265493108042864348822911061592441982041082269295470592795257275591384859832968075237275142586458025972925481326864981214360009195358501692105786644621629994941826233009762700691203944091512619137705620431195782186263221005918532186801794350343191522472721713402675191419727334461892832973355212338061403730779044506136138314075837832012143768244329689996931982229677842949111514004037694408343032178990177525340862376410087452744288961471595470018416574833130174134540709166037745877741991100292090379575185623574373457659527249881286282776262363636468052376013562338114362479446082808455607877037002019334039669987858563633267108107349380612297285533688428487189643693790234837668828410564553543371401260261065339542005568719964190961321010960131084890196284026677565145922737146061586757109162307856835459042377792377767319598502799018638576185181970504831848867832650836038455665436426538299974289855447515389396963753042472811751112373771438259423680235822326191473892085222470117421112417810203610602494349007262120664059848006321060033707831729472572699775697516889761808572937385376718694709811607992000384605360434884671046119659025141541380429252017912047959034800226826045769355579895669367627483557671031583783527162735149414660349602354704026237594953043081480163547673114177691951981714501434293654324516678432922863316798018337799241826423131896699680739538657905035808069745695256244316758096561761879690921041821305134275409805494487384281394007598521195206233855817502761067938897054922800925173981627430852274705369682464500564431787340018881500722625247594184409163069484512929320116558870914203066750097517393600465433822898200210675393356836023108293644893094653911499338366057824508102357276992232861857572239510827413731534390571172159576441245222034324068918024723799805745092214646784672708934076161883189596861700328397717838272716517947264582347029423516878091243994182820667809883901808597004214218396120672920656506131990404356373890148904010488575279165459062421703561082625390357769350772506968908710664401856852331169944780322774786641051222992911657450995836730975906417823554553436318719940840109055397961720343130457945087573145625690462148684557205315363078148684296478545307954971226424631490384195034492574639582464097445396615220578434908037665180758036578702925865448996354079389550535402795274551928129364964650606854917297858001733113476006599265761353380593401055087998744830345989448920556243259777074204161066013851505704061581648801446653686905886270216692056566681114011310990814578622534771863334601758238969666722098016243753671897569629100342927438751625038955607755939013210216972563666722850384774807196471744141864400417692201736495863347299878389651344186727339136543543808809951776127131761915648597104414586141505422076704665039817265886432974832422409428921381470884130736065973531727262722757968383085136924379938690531196104466280369864766197769137203298642671442286047289849578454530493762525801936914300145206544146276599715740730919814947919544627498521979360689371176499562957917333130385595612247825347717305094368900649664240016246208965975292083036558652751140307740976503167570243240485823429330231869187077443867767998371461917352516654390926488420310429352400772833155141081934307014025080660314131570946330764689731571471260466394902613651203962013877635003332868687051432625266585010663221252156324290687338744793191555369735315401610722346907143944291420244877998006196480803375535089355188454238937681186579980812408350566993137843386911162034022303198531167450658284486326670835610088290747197013172997984235002299739264446775542003200265654970232040416223052916818208858820429924641457517931472509780784433269493987094378502378336480553105093016588105482210312524242377696602223686974819191449021128819095542678354939562383728850792667382814311972125945426501712546304412291166296161795178573618884934851850543718763944171720925486627252207587455118616832421578540483559488691071813936033333781214620545930137844171204551493354970060237012767440992222631262167237567583396998169464552929376434640846657692990182984270830780665681107665720532282631611539424292939814568833025811052432502364731160296068189059884910077462652358658437791489842092300510704032103024889453676824981982133166347601817548459957387193071811597008589618876227053570068084685711171757622289249278961754770065385491706789568378159105663275799352547000029697945551633264027128685979722441159647683119721129180366680113932298282999140636051827870213612603127925866708281383666560034825852192111870889831616710967638278604930353197858072447262588492666031582234030574703645125783455150095884702961316867098260898027714509562127088188943121739039482753911062648716967609443289042939037137150812588896274626879176746609910201839191715377947838008029527665547500770691196746830901854109234521790589545248346187911956357325163909863024873060301205875914189197262335474180484255598898670404071331879527462563911335629436037816988357741943102653745972572947636118843599910822608307606560702964906958108346163307123097646792822274845253612989566425871192083907819602157182956989746993818168718523482749458304230430837398006499282840282040671615883546718864941183235948153711571421367563919244961924339424520726748136208291808504212271278057752056632317349479529767587370501369030383787497056884115337128199071479487722838751498295136236983384652648543198669561629924792523283436559691399320344010992480877471846396543356906270647756650247257669362396063425432881232472278733692563305035510365812139528670987531460909830630549500711968387796602309711849604172214683277196148351316840973538963746007756051258251236075502480867103232769460132629292458364552994374656168201463768588305796676100685370546210041295145834815549704250569183307096451091231398935074970746634085785777113011416285622677372211676919008010017492556110805716019754962673978891916770292710600165522321508597318254148514822490367571385587276166530295995092797417103371578814637132148723682062164003378277021228596576014565888538736763464488001169570201035306248501823767539941156106368213592445978931947358898234455750975277334495644060946570533476007489627067420096602443754596655733037680617212918749651298860152255214301768326537716004985485223601621019488306293613624585582569973121391104097821020846336071436440219190294221488723233553892549625914943004179678596527082415488780247925015298825310976684656914555770550660573162245428185649167620153500563244469244277311615822898733960079676800813732708289581850475507139839742976301034811880032354443816404039470948876646035791904808961518148973266158994877948480050046701703082143622110901759756561344996166187138394100727203632884356337630598160891049746655375702722172188879618204254158974680019099677601737596740928124452082006382990628680770581411878301090498258720715083610942251794964068042336006621241843367691200133725078108151507060296668737496695633708614819733231928175007704175982050640562162248784077661439224358121582703478824646912654254004790234894041133923788708761133050925873664546536052950673053999767037228268179211013875946134020832132038087837903531286757520771742559122065352822015590714385992830065225375828382203300718812080475287380242345926530444699257246513553717397497459869018170809093635917579265971371013507820264939175908704519621226799642336240057950006704784345402126009204560773068383432157930060308241384944498431349498960750437825195855700393979652855653769333110477259154568622782399018729534895253872994399919468174609392723145918220066698912593018858417936172446027477896927500307497339521158542904704113643039167140041805700164802104748082486184418937929680189365505550933331218908154056150732403337959784973965394691912024774406039203597455167306614007479636844271070113937708093664185372385336874196623908181322029069727607643389636644716304076396924952374547330166783798078838873652684988750419179719303468415040538481686572990007720097707753060050447783592252639206540676707031132885429904660176853874745737836531973864176985727180183085377155367666825811290871188843714199232094937933291281188119827515426370129065790376236714559721604467970259765588299018320587751265285707113775977252604733738390018577497257349842244692690513491294813484718637093121397071744668049306015747397048280525641159935999818458216905376677873803114478113397663268729807996625605362146254282013668236825256920156525005200157565920531456872426005891290753344544630598240719112210333139724264186228881715542233146939128262909557965426384137284234777402891102567956691580053018431690348529112305490644321971261262258549105864349224681038165107899237261583090135353221840811232377706107044167805327363929760440604023786244154679285709653919551342166576712620540522378715795940524222277120355491865939371185676633950877713234720544118481181774975796478524634259172650854992730276086510417261162767604303793476041407953473679954428060426794607955870655011441839626138160419114381387281164680433465023278427056015269724712101910838418520542348089708097011404030850793800224280128021791102407948205939832220776544314394014269487439309430071948148787207852883043896229516958073450226941898355677634681293673891941142910386259824795879862254054031082442412690116981541875591562557514201289932735899026283802546624719405210106600636581244242015622983677516986333012769655176322270837722648625770191972260165168753248560185432071458181063890952821654714750783603463956622835260175098363428529565149929131233016490442940043883725669339674006273781830045581448411378408232866840235661922996987026165888034683818482951948489799560493050766569736279716561169281229862511541580064907254596892065545652444107699588718670650194953591846003545944372108109546967368776009705735262298698946927605076165905378888185058289576950000421852933533357157758272591576199076701536268717609328056372757837101792883302609534944191605169522663956946390873136132779447431953466079766806830222377933039469372068257616642219612130642099530999057388166244396377381547847522934417811670884922202402424970634832774869014585343630739614483673703704807361480737134852099987542467682045109691441156328294036837683913671858234531330408588315963834839953805074507220749284049883275361129872148897964569972502877959375811081495365805852956203017973466291530672535778800347437299311459213060798525225965524883191074163920843962708435138422863432405484245878892099520359002755353535274592610259871460568711376469969248092764474031234573321181707452312002042000466262685217238538193025554413710212087423501174779805101653048585360689193114443585367519791200206376350956864089314430289567352302789841901360727107435051408996625143008540161801868824417912875730957073421707237070286203554906270903970588815447025432124747143357694945852357379483002663619206745131709431456150747730549656253688633661727086913608305128169121883246629442029498097872722992559641334849921946603795027880840848203983135000290044425724681817161981970427188313114339902043852860810748329611969566355115567660361120807372994534987655633997474299415380662775447075690538871579575398108466343693581355775051051140572563692548264945711480645179716661205476706206059342527011431879687895889797936378430406114412967400804601883825902065340531353727155607699775967746361686172850254028164758243263523640819553069334852647945756395122681115572941357748995808494321869269859217454907950867569579374335572282138099610309369457588923763959861319021428937584778405971612618996233225941784907567128252361810361708506310138024102384662731647441012294735229756307360980893114890676308541780383081539885273267674381541407309201170006585732273739267933186354499766499910173117205865026424007445711633846997019444009905141024032632927118310772913891720693467408159855189509608482626722404652845272893297217492341454898668095054142251299120681294437728388734039058357181219599145614728113134355455636766083291892522143756869125480030237066639613392794504716368144037893407354924860267893465215187909438845494092019941000532256552500410908403441612047118822239991847466564217007851598403921022142748341172453974631843588201201980792050157209230055179242251418278605151107888224528685250882234834014523370761811335947640237665286158750021512171696069321919235159816660671505021813075497872843664148227574440822255840787489100409236718697957998878887088177788653969777650617428730432062961585557234853139017942344021475239769395922790227727854985991639818287938589787588682129461522399459117847235773021747317384272837318089164655830805598871258201697259096671397798183493790297312943912120107484301183498238637724764539315541908285597438110379961787864849746165462891903805940807632399554136517841320457574695082845199483041406806452573517738375244466278287388859938874137066799988543158985256038945608898084280244550365183752886232578377761157171268918089475051141306049019270391894579842213475912604870850973538025581147765921875784867103275486367895874500474550070380943952257864425905145419319879611906908760066030369992410487761630496129207898300395447048210522838041362172467751627170632871709322135242834031256637260217482535398880361310343401812001335682841858062847211908773842162097402501706278012857884533481796868232295392985552301126975098500627537614838321868761902910281220717499380704125167666450507276444892552033353371272108645743665437800498432328239055130878875812151791197348909996474072703065234804786311461786623333319691020113032573833230357914416420621298996807346165320341609874865118039500633452843740769212901411366454929296567347869914860768434954873464598867365243365779637358510759815013187910246858129437684974093218254889388483420711258423647907500855383564645673560513249184603967643891709790134038487330384801176717895305162597672262706902658460498031783506719697401809378143801710049494174433676202269859557575255160988883401740372317828888794220832993165688692446050467144860542850945234429931741362508444519814453700277169575529392673023681463533056405267818798412998611332794959731768399470941774171899614484355946398356133667847680009491002311004970085577901264480383262090425248039654849312721427474116973974065711275174752034692009436175329666180775024680414192042106304458066738827881622166713925570098526031778802463029415907238546684598179511893601938370985971295409321721782453385135229771251138866043907948214391137955311052256813250759544514487425657835822332028332353160605211962405712837254246178767826837592599113485917469266839050056946923469814153401773282337971747983401517731849712295367818428397397861202830639555645251259147250306061569296526713248583691993097475512707010113196932369864932441104043640168687078169055713772358373572032811574279441509094364006977662953346705437515877231524780406906794220380911494079698798776200264641150250680911419410660179564100823036330500351892938779477754309474642303488119390493599722849189614941005730378982007691608888489271568888731604024397450106400505297927772286488790494289463444970990712148789781858785973687503765715889467832104178174511841343101818408383334663918311863307060735238240886466429706553496635474691594736716455220125881113385627077276270103694427018920381658651309575974431001286100513745879738012860364130835289886531186175201118424731302810478110900615627801727224125158457061668367208256748724614022136691532268559578674192530188522078442420636070038254367671266298740944747549517971833437024743241656400823324481073083298375882780053855645426540167590859734888538776846366873000377852074407103057102918474037707509041887981856637175741327236387673427522951217177050587603242353060782760186622695433375319926576963903391028318210672287656577005232759489279561519726595395728800475530673626256509833443287037953027280184826483474565185927538526454140431071650235377806509469404286459834294419571450004069676057478010369793198237924482338249912497630574620472223605246235379433812173239339527364189237324218775705050961704079588558462186939005450088659579177331723997892553037209891408438911866784032819300181374149943325064322894669060480453314997161032445852437563769870408176236209394235427695222023497178581319819722242013625566459926592158974161938974820382804256881494241127125464798435648556756350172130554611179724923861663463869630591129909669447129404908990782328265767286491500595894219181563897569710520548703804461254199816300006254127641008620842776425215582012632061250976716884582137999103089615209816489776098462920776328272955652874536204627568709994050592142983815150960045018590727616727774663827110480574012839914011174349185073409615052234935173214231944437426308976522028349368519642538678143739065292406752735498279382733741872494121067901609458174434762956024003194680718090856048880619046272838083895471548127884174224054071577541398975240040222628259739115749691109469609613471795894749135736951786666129051969823455869207137172253911695246156906974538339495342934561247498567738070292142995147061356543476295363523529776214255092683826374088180739240874473646025354433217060293114964069983231885582383323082076286584130576162773173758705691357659859480189131495542112643034496729228242373490466975388761110638705357658734027096882905295059671715408782390831028903247268924414683748332852418394303437814342301809217027515465091018913161754531664753532220960317964767740157585459664324150999880969233533019925316431789263820658010685763868644440517601537384967097503605032997781793914479554462725775402969992608183822334400080612281907413718502325683090652585812021148045529187908342653452066969563218015697664817021458743955111439925195075132711971061586957919079601890305824895009403575477059448122773206831743633869490159958725645092494436415310946006266061689618188981932588013873996368906266749579013829197051865325132002772335902847318216019278126298993543307013467666793651079965995566269838555353864953531261030065797219988744048552657599023737955625985135463626367782062994978764652770096529296251521871847528212334607915903131839710826333263192642775689832044913877045093850265239138264731203529098113080842546142489513971493096200976304661540266322594495993423713774608300173197699102258827515972622305964833351271472251079139336676684941429164777155991238930707964764637908917189816520502746767923711760886035668030698318266104939601183991167083539866079198064475757970504984422337245417761719299458714581835888588950456597929325041956099066740657073211124731617277051107728240193225712578662712496242299362440578561808058804666582680169080920782940788938213051015020169885492215806598208193633922682312098428376637822146826666256630830930836445736710669990529851202752954765490174450109459511718500456510248584421172215621827403502979771785561097152525844646775395830596227097849025760813245559920862627720885993450126329346387870328595984161369701424482279194992636800877707906466727404621230523971602739393027956176359577073012488069334215493871239952583263245117553026431614420366484453716620909433667065437424502423674278017241310422134338687052732119424653291838480692389146598024041316270556453043843054202407530919066287006073698478513275758873223679917397307818029390752419517820505625878077275786241837139113188923745680570895871105468411622471089766287888903177360354765833298349974280004611441776467836294863508171416717571533573052133841389439173436993512811543682076700879738455303165923475774408910248533769491337164649370472124305184801811457338357426558389267467529025252622141283654947213249532770382818871285145508390080635238689978297003274464568039587228682914654735011674315338402079787253748426781033478773051366675784737070105764681455560994169073295345346562221359456700506980602823199415249586077283458797372528037556494155431712778992127487488698358035935701857739871142349214016978153165271424860468075971004204483978751002972965118787134113733587237668330174989399100802677762133772357291166258988547497242087773707452907701896897878290936715482650449213556788043217957198493363937407388571617904068185892908728234090738351491054262535411865345865261986918124632227858227697276984795659457717336032497154258813334792069700185931858916626077510738205240350433862920317050312173557733478444268804832198197648636136332516654506499975217641580044879546160806868836695308888361293990117912231785541408647509288446384153431035669885030064793169362260033355482678277561729114616454203540611427541001599973663369262357423977580604051538325002315842235300143044157959744410698042815090358124373399128404345836881417522310021126229865859384759581316102501459713814792194454573608458496664439127954383269912924533497865713070701592649322713965104044311508956264651632084232972218805438846698038545614305393452720140820717386294122409375195800668952929880139133854792870843029456879217215153827933048086399130200092718289791131373332160762156057277960513925258912489244577081404968577357074942842322049997113212114422653656220026032991323102629366454614047014669040323501617054043370470386651041405376083469400762186301127830009026133215664225245431728517180936507310867729636723711755850752482320605740235307728672095308520076208549819729970512472857552818685055461392957469919195923355464985137984509467496727351098323231235676949064804107472033116493500132204875889862099772159543362514996592332136451359265203634550458635267007822072084713931804463816943135316696259154889285598584037060556281760864244418584232144381832636369637762427736083287166464236306834733325980484463584275333285761664872045903994897905796184575840591648411283297021888502123796578737217501017974177921108447539601884909212089248777990604431668360221042600562029334147947375868883439627828564796592747237010951359195613809847728937999349972385323198550307959702860673592680433559612101560267740644376348566997851332058345161127575847095045383752897195580190344033299027674633385520061236632562635273292074173243790964656930983633560609807469744081335840594089652344990619526408663744691837533195431387881415871119835381194283361325408552416084022621714975416433220751120129908681238221059583506997920636780507966611262603335056739596668935713493121384456972681759064650314691052214202654250941963355057303873242940327712828644335521419982510779947819286710530561611894650237640875226559550853759230958262781080843736240483628267383532283594712352252812629299393188585537400673500941809092296582327318006751889700684283441340719543254915958400665364004575014741011614190829260834857691498968657539025527040583690899996964272899685519111765292562951575129994394315175613967059128339950238903850566811378981078512349146860917619083253381552950085914018617866983104973191947478366534720455866395141509774984724782843246089676479400236177943782982981169588697437593355233767848101811474468367874491633782844869039791616102354186400652112396739493209795533432937217482898052057225641750758549233302418693371290781377595850907907702127797493794042432404107283362691792861663388333494257713402017456051980777496990244649273478353357614988779843638292639782542759366851774189996747757730263561418344396398474880089223631326383841479732255968801303140931316088311183979566843342489802029834822653443586612027134999387725737148886350243489353503722913948058704212571384804272280002034662703422728469789193348364133192597111030262165272755906941526899044939827463528418339876189446207421059290220993254645991304080564134986815478719941389837517481374121447730860809542998778667588688530531055610761478193934517229008316327506474869514676149785644180248129867048554388293716660735159028759326446537980761110644470223992716520813249056514479445201991009273209438501357708025520795955503013584364660404010666674263254936232363580479915287049883899435168095324740806460177470341277265167050914169623430498340542168926229455763376618831601948974308452710053293081010333870306116085150424349066103814102444401918508865542620365353563211100810956368098919722227745192191241698828560286792587911819057376174390258342883078018496518559049191536070364601710021317615710054510419933965220904402945839209213984830263900765348271958271447793810339621066329718499511872350115243713716912389580013380542824422981734537386353218597113428954659826944961018088772853307213398269600466915041818823755363534150310580657297104465172977143186396929230119258541490082935354969162607264786624152778906200176265978107950179731636630023696485789500858875522331669864539696638762504177633953664256519421911831111791570092233437276183352387457069036939258078119194302109796175296086563884804396473967788338660777846109713293750351964089322452531830860369279052034402357988285072886090474653232098390298200082179346042565060707522879192627742880104668351293564159830327852833983116850088348314394886181534560179012627083822204985560169722007443224746909627998096699926561850419432156949966847660671964993138986576501302005270297524657953422148428089092816861523069670435290622470993296791868223977963695047557678167132152786918402293757430798793876074297400788126460827820883559617008127318569858325988332165069331924671681556813751730790883823664992709415644626591740005717497377841502666362858663069502575262383995600602616514233243601713158095770560287157911796415176776644926760722662791683800710986765751484879133380474968102690261186642622179588168526532159102007792213607216183417340253809590691671474956851986027189469562108187832570253350518359074219720308621211043589262178465105189146522068840064285946440260951695598447985213520053942632462434067072315874762364562989205262203681655798882521587447106056567347756013969040176480323629240350073316736510918174180878500827420800506167755165207072129665395611772729642209687712569994839183300755302132820642647353190165837904124852318361621464621126070607065699562654501071859167827282617770471727163793032016911608647735726248965690941211677541618959750440318861456134456043087891445553590505173953953996648008810655532203553004058116554546743911910087669153894558671904471691224563520598277506300325906720470362151706313909545941913279344257871586757382436407123537172051768761606061395391081032943109154696492872227548765241415215985841984886805626159430338998741561260130264795688848738280610897140984551906261048889944530320515928379717412424767948540634768755205651575513933737389384880836598941166585127347075656254383976322682322570087822017544834583053714470317245065818628945818621356109062624472588188713227867891585537821080005898984982306261045938365629492305352825961938105155097926440844027591895235794596572151654190674638352638507069819963589350007739944990828304807093295260197221353680362230843690285954394048647692216327550324377696053935000320082473839718584241475800527076570509233296434237714418840114584191222690042830325729655764846798907767280120671409016391392724882926120356954631061458696674044882209325469401003705712363475724136505630961517170923372450728878859358500032095777561543496037222258047935016955740644099122021983266510829661689658755194256889075898401997768393132211067023612395321228322026341529230918077813755977521080340383741223465210111059425968749549591528684101586617515920740577703835380417938458992778471489232672382292619794170727293184150338670835314730033608708113872383795733798979347364565213675655397531556360988401099028522687485217246632238322974778548118927450219036929607833977324339145715950513561681138934011213182628836868032860600524541613738856013216038020715358303300932249298145327883925958914708883965642853476407983053320195175724313095285779596365068707640242933433476897270354589712769796631583248213517619258386956735243408767351825821261869710557711184090613664009306239656272131276831471585146870546889061068706055141504531090106413856573721079487105492486396370821641411198438019445026504112653003811017966825769571441105488149662350734475734700199499789499473955787502732642462051917659209854400732408038541747866700191310009497913635557722017990371147836845796435448445428176741815315313856747894297713354301575292303490005928934917895347306071118774958892352022270150233933480840914899709342297729013245253701000607235906563388352963669581126469911670739372829511669972533721886813774292221256091915018119800791634557649184602881584957947224287281713792661051523165396355933596280378410386654245720829732650788304194893441973080394997954666863318938872169258871644469800999050934848468260774239812924775642872534678785267290435188416507251329665985642310413748894523430103303449111331169889247937747798709978967056421188223495964667740667801855109434362981057646992081479310401598769801707804309425024525878715188120573619618443109903426094786427856623932685944779367499573140996788396966565230589689227541205010912184209738351407868818069025526596328972247163010367845054636555758822055914710483834882992821936424021845047220498167751291478704222435279730950036258177956798279656601213222918499288939439848652114120397954290064303155410571057246699299020895709416732314092387980476734466490979936110988068442266126674571684402777237578101042948216200664384088104643839911231351346541833693417768935908046230148204821724177026067927212723964561531441108981738941371573557037616584877907126198786604234247841201938164439520434793194618438540198993020646360688056166359055640159563514236232618894333095633426522700165462833820864499138776530938356825964921181544924195016985361427364232438233724768847624550195354897307361122705897414638057054766162176736933871097388026065293588717723478657222836026221285253876592761513696233650394773520786632120182266475037568020598441958220477012497538138185812046430467567710232769375124644426933132602147217967808261795696434242987692960182503426576482998493595495819651861358718968000897018531919825578446954392539771997069364981429970048391809582959930002361793046024297261801776260560610847220284987794111767152886537836224833653746033645389530552332823285669995749088947089544148898353390373105426748595460401256733804151810848449223835290751123053819706440722916223863140197152298372869664756854823417170633466618941499840343400817933185916081575620520205849519003038958930718508151830970353758895442470764149114463734789008246501149784017884788035890085779670478906737410422971069528291923898428082430399838860666903549229451914653219436894313454015265041907395990831819398662230189053759158922904228261311331331221686667503277896371921921228546018364464208174795551080360817717325071922508618562798412447150431555820221419261040025108687865083838837495543158683089012978352393388808338207298284652865231284502957818002842748577469718028920509490420166032081543883050673767392194257257259691606886166852353062487929952050872063062617667928721629613545346117426312543075788635222167140411415014656964400508223040755135912065169968947475195124607562047832754940429908623652480538544562150921358991012335572240023795798386358835180919961385635813470474179375357752719138600432902156840414745906411634636124323361194210142116924660499535600074767256421057793790496332632105481055475678099915992595601194699687588458302375352637847814957275104634538404719016399149164305844114201082158053668700069758779743375318669594534388915402784199993572332345622781239059323960040283542210295039924945719614457568352076269109539623199254560771498858723688085539191812179109113184917130422075270416239951601503443475602799308792305565597318712072120418402458486333264149817820026535495975731760151930229679885097560532176375925554386751249617989711389546879265805158408117285278554863693527780170187150522973748626175058209946823906123747804540681351440464745841655732845602785583420753052851347296912223840674228655993595294836126141478438878814341798943810726469800193528334671463101910932817918427084304013343283805744546051106758951295197210357046498161373881790614379299055522034706281153941604919237757197291455292016451145107393328926529620743847640128425615205503685583047248542728086677259449053685396950011597114192376348511165101382080787883076232800441364531309666138519342492762338823228322889890138677891339560573474060199100118019622109105557261820334737245428355273406887505496341384815501089276615784627006997160041098543231308071557440118641738885782389413436943047972274141829665887072378096020173880418478896482847805188791987307676088079555234275765173639822968243599590476771082710769374624557221904900261238618991539902850817214116852870682529451540307817338543127129283101591327241509341581394501125134756453378536261909268244124856983704973017424644690663210203171269035446350322746285926283267986731237833513837498162189873134004933029558159908133012743104414275732051887596542778277234113208509811909230281303113258268155927139302746733145040404578541223572782110279998914390364298306996446419256338417201512883025547985396820430129886899192977522751679361812812519202261585548459500051829253557423861412554460079949524481641940417767060139689347819391478231750587933340378760315091890325911002422494474839865686973080792918047206374981308097245375137578497636655661862321409262896529016222443744162867763177009386887324096822815715580183207686373951434180772296734320828189127458979951138625187848949525587093034097840279156042813974311279969518743531572154950071323518367265479833911649147577064897518877586800129369052354527263169981208662443331869338907694923463921619106603456488884426585688462209278454478607746433566633262967029847060177564648593575267472631306019630550276064786192735098786037970952544295863100642953748966629723042036504998630409864070060629745277431889350055643947556253633599239183920295810156720706024055264759753306674243396370165780304070980455995698235468603790325307458594611100348307238992351025462149792986492007969559876062478606433117588599638262545272954308141494636046798053111385694140450284900748426330991037578108093228942938565056335400844255412142820209973151648651829250841927782456023028252765342165008239543691349156767636372477155584278650248422601523894674016393271997754902843590280953849397324953763400221803018801727329965389830700208610634905228354433655285718656885060190396301634142964747178015147752300620335652927349391443947504120205811636496960738769776074765553364646706496135972034317811815433142299636960464949792740068187208686232413522712364988433966428651099911539149069194231584541991938168032040181668638364919774859520618820221168790775427507055564181858599226667026246583088342532456669166504898202447509739209011598797229175514381516425293633559237692436450735713297218936039926267676268679612833593788844987411834134742695026724734319888717710089397611914187370653215478648040800358887552522044287915665507611169236108151772407360552536504577844126738723207599667566365752941899067893951834210847177987780768195896572206641802570727015182792248403026762732477300504239997735726976697831038492781720799017035270892160700071503661494329373284843102387274774330308137935760057870639151494127691332083151421144492848294458756274783767337228304209728001217697417298167915742291412081195830921878556774832694151765902650175077461276301292894288266996196627628403266498950903440627134822050148220618391974948138838655281342436588862752034711532251346406300177322903344960720482009101187551965992149210571189896767012187421465461938678575731403734328308591947221644648095473294382724371437292898324771021972662523101838869662355529329965696165822977776200957341511499879122019073817727432782760959544350859097722341465340399232714003454655226522328646643159605081124929559318297453068836233161232992963432711396046539312027144712253859308362656986035341275620097149505549936659674298619897699254619387439520393199793207737151591098101233648440210828677567851142750012797719770284605147693118306496280636523524952497788326609304449362417102049018394688280151403094681941727575182036642284944192405784031096402023542360645792034402114020996407243154799943285230959744951260078623164215942958020298459331476290936736875654315371852826978217097551001689175889234993381841684313375369158733687167926064933080948947494222450455227342027671701829440308013181775507193479558830630298072794954507469905900512832651600753180405141818153734828595247587713760532505130980184237070364547975022207309257575986171700351479111495916062819694056934151772838120689379602058004209541760066409096994495010551279468523856785869739105007048305553161015512733500821705976825034997825517780842098574101664332468841110076787289391258700574526127944513779548854318882359367539649654972057573083918923248385155737834725704476034319093548241878736293179649809121051103355424381927251526390713584561984073956333450062295545617890284412474226577181728268190293693147280216259616026803718443951297346769430930291194038264754496502414428636313342378173912070489258308913296743453755626485047955825489627490198366030028266029934409526211039730622289882505155853259084416924693294217041072963840315590786216278880330863041690920344374766226831842627330345960030522865708517097026726121776975980763439939056763576062993775240389667249617263401741700972780659983673848835369742154069767953093467695622352641486412720599937083885500683908347409265812945622703221581278146283627256903750118666500090749669128155646832822221302300797719885677737179637443349253826549850992854685294051435678221632468059711946597443930369986683165717418189727124987702447557736307749038239060289397228410309462083186136366540106764818164062368645180792938136473834851014658864438453446529310816077455342967532258611161950328956340263877320489845949883778504493182991751523276597300044601874249984695091519534068248610775518064129192986332637791073423643219610283825555701931018134757665980613902496168847783762439122417269946382124511013922369052258744655324366524457172334858609893322852142454429459565008940906971588740220784454152258042927906939326396509449021498496159728634509381211587114768199373309278429846791457779306104304793205792161356138359024454757415096616341144538651007004318392438009674143325623145239869301379180372059028424979805298050768196760758624533491064410927713970100875237469922769841446515779020553698485101635072188666621469608599571113284274022387854177143667795994121520585355065639887952746200736681004873810889977833680357865631592440753571563959367070202888642913112103226423333102232218168377015534472486827453683679631924088263171390866087234249346553103050542399295802136360768252834031350348954618527893590064232804534330748353120958305782751659748539017866610021593785617720238878015228756315565532703878237317815435751268323538283992124656071978532465707987338570853159879053466746293430925020042378568916685262534899760598609825710087178313019986815124016916211532354325850895623312802425415341553720216741790813104798254562726918149945812460772280822469540725801564851206326904884423621178387669226956195713936660604736359003296999943830009809390467187336071100541982388128447342748644293432755134318712827944621237732173029241609287592673093753338779236889962168376545120452754501483629798401182362055244241123600386557798331116167073800601440522442461960697000013324321565515780265482383165660235851736439403844172509410022503368934442955497966478669510889099751811593416512307320119812166373452171821347405809973082585926771993633790492647046431990876324964661787785276902108459473692910937135586115434283544279541397803988215374079310668937101357750409002126917700985938835168406971169259587716041786831613927122348286470249780241318653469920566361770244953362828370042165439167257495068339824199325499728121021926225542796201268090060701521596591283352839133076925260366436310272686220951853122299137561743443364379122969405834166787946459035845989703495035552090017305735882679797852113945424607509604850812075194501163941225797618497652943237345733468192992346845357064323692043910235274516954307891985452611322135841659384997457394029832435060635623066582898561912970552399372050672597068486667309809368547760176369082176008700555430558213341664736859978229910560243338720308211431084469167136529469208178626982853400306422181730758708033929674398087077473459966090945090740790492775503449263921296704402891336861674198509447385747335371363104607490615829882486527175388174154520106106791753247117623509461060586280194329182084042543519631299873701213405005995333527452239442359176955127813110070424728735072432025264742591013315355934715710464698221584638733660646012371612327182069093855620650266928952961457644723567250525785602011895034276040696522536775509887655105932081056920771694024038270110715346133605914283839528858571212975926336127885683062298805412937295209064400266387483956081468050506649128420523865092113610808303299034079774952281381205887379911566141718620316197394431008805916319597655270400205414745453202050574244527662629906587768628879001792672677670100058956052902148324668216198080298804848675168500316229999558760778611724838306983570306705143988473832158318078374209273174540064781863925514833959431142514505183447544066458430087119632368537828899174016970035311487650294390586650687197552745704038191406401804037184407302498730741998059283378193052965190684474057973527294576848356525064448653331386344334261651929441043172220330889995873371747463922760876549827294213878421272092618012742662556595942943527900780640463511698313936399399715245605859804993755309039693381291711335747196325010956047927614433332772827148516325087448831746512436764452373215632034052905456728624010199702239888482012644091212102058943949144217381346502964563207873373927825636144326631777611602832836746174554554909335776652976216132404233377647707477223268011567487851565553063051456658075448363521172350158179732118293539168518095693429691596008871133996438984651974064494311668694182540937601270622376763492334990076655904623698207098054579216357348419873330757196027414379322573004976856585768590142245291874609459867925226797486173475681636191940253368719512968308847274542296092591980187015888544559764195006419274858023676404200619187827509072384620060433776380747242082051654257412052027226527621636679638935139097442983035101965109410272352747131830813249934228250595116949050587369481379967884250390525178801617565720440613732534117076948958719075156052416642069556288000532199328407173010741864814238646559961959640253349091639725216390047131856769177742862521451196223998474410855100905338229284115284063393515165695195397940188233502077362868217104229894232591884068208852745717813498788305039037883307444378956328501368538107808528020082679286371798845919381987323445787011810684413316975772417692569999396627957251287923891126885083802536994771100322358497253561977184992562172189123893511662257929386918799316144363496882052747493218708218099622820058490851303399892648867481978871703426567535392247613654938404279293921269941494970629194155913871835886920217332526808534439600344909797555708855976125363061760515260297230487204668290317696008919827257601444759935866250221370538096278143395323722533339622794410183280213702267014085067588215654582421233470281646154658486671354998106206050941858089587931875121139851274819323395552006447707039517602656864497810834478265739512201550253723728086596284018266127067648049541250099801051690657390631287089052555595497794498999006380726449528792770240318117417606808950865800195682078341701799407197896751396792500339022436801234092791660625342716246793427615225760114704274195338371060017871161361407910200183066043056298687595784643061957177539868054920445599971433595796496006730525947825990008524616439828434556630153511418300344692828258249068766119830579538260680088826659772514191165595408981588583448020251740765886766743464231016469084635197883499534557269860661152565649779596449376989122092441713195379889797886811871559443763257936420621039836865702994765376457383549020111004378417458377462399756791781501558238157533852402393211916175956252984250013762567704758301919506803974793049979771903469227976034094489756293395878471080882047702906773412197043930325343399872827504233030552803372698108115823878630924976132795935811253282042004132422161614371987035146485395163715681413669493641339175145078103576129027965278838954208168659438088587606124706289066540887117986996002454113003448578528718757864482690887942940597500585560712172571262684993584602650149799905982060989920355287668625013796038103424702174364273475067910970794258453239850469533387557837948517673550386271153080548967156903003697080528465962830483130058349084959099998974995597970398733000158969232689368976040378785904478462386087100751903989825629323441911321173308644901413858665698798456062723271766279376195544343222550068777864359051126540010389082330763210713712774312118107780575161460865465101001749298325282854736506104532073773627286325155167205882069273300528470149090356210029669103548877407033172825549680212696164855499557113872949235216583669095597992607518786299314438623354488176020272659112152858714698026714861416270956359892834701364038664629193102571660748342793440239861563022778638855558012694315830635311871206189048114219649199318020960604877843518730894493711641128128047008942638170746641203874077565625094192008216767230404627969437359130564003250453055969312039613602747269965649344204785605956347373849162724433265383347884865426439856868093885115819704910159015585880516489454355370970484616325581282011902291635124303474877988511747164069220249405695218088656864892630885217624189470400094953267889851628925850059769699753914841423372444834573062099880158351932024568374020279210182921372484253042810504013047794409590357476269015396497841058564564623106795932447060962744687336252869135985910392310589264415962612583136299123465480372720205645894371383345742897892810128758918709954053532665078326479450439285308112226636489279432344641138954633330447700846745995517028671624414608134894870526882693116126754835028838742739510015911206886124404949622987036523425328354505606126164321737579614700557204526463854966154156603988728895973381622045205709763565915939172257781667391906043939923214335790221411407091009203649089589541949434383889595058140485631631537269283945898914927255905897680943615151336741117892089084238307975606303557549635545405242465622037307243384468843237826122589546051949479218765953646159631549653066032030766853400359607867411395886732299377922153497496207390933531366139312247369844691332110521776081804030426488638079489623588656800521286396348910339292492859932193985783848906592925634177831637602217619876828858491481526503573353378707314821910410107573049548609767012067780069436737704975984147696531084865429331079712893053815805193359240509178336235131038890581147859809910836661191996226176757712726104658786707760386886102755373404278359474416107355876128880088113403484801228885530847130143215870658640118390504398115470437927074745791290271930051181878766044012091576397659678822558207229001404715120218459606306205059951334917576082347616132313711982580964425007186042031015631432057063811254294757390805347995361522454157887540689185636705160272304122969219632270436345545944063313681055173061329456309378990860001064674578020812981162413879146904679952642433632252295955290810316370613581317529601494586935420315500348788567143941695908756263825280394449303819095993171040926320312543314865585792517297598269107276948441013428463155844960550411273001106812343846429642079340162115536209658457645132770259848431898655681176431518466324587300478519185809906617335118542133381931328312501453123686220170933393308019669409384278699064625513793790603310008270566308553191993530181887799110571140750155060555357467393622043148632450679140235372334131575045344949464817825375293296592277103878919172409605866668611207467330679953904641798364611107808663025469091969852329211426981589736379925960409561238611429962599897247181463511931762565684992699652660845954245542430896484057540714715431751917990365238821032397556610950311967406517511785975329879558564826268312678940349449240328185693543001115106532832594194110812951325442416932419608012230992168423611361692292443287011355950204550754157723406784187303771700001858269637204859701779005280275157207262996203652443283306129730026093388968750394676543566117231462531193169997311505561726565742264401907148300102636911685314365791097300666126110153569777881745869904133000732080706508284471641561979145160292296692258881708057555273302263156669656116182303039894931809941734294836181456455736847496579427725990750003495453990039869094708009662293963101922724355714902086188118379723076961196573838698306345076017392736012557836935737393578925410329579801463315030516850141468865808150555627923007375074639377467880682413206860848796503101042712122098817461824053776062421622016809228695353647972618028363726173309166052982291478044777582590379133161269325005244085763412966823145529844079967334944074113451862553375723930532947929933051214237265176856188572660212880226282272846283885281652730190091764911263427015385063811000337766972029468293074906452604994122398449753209648893927105219857286296271777420501605424519096929628365731175063404119779402077639820768502509094476583808028552749304086618991859013057770481962906352301275886629750209320035523432711261472235474737467057071455553973880699799085115172521877794783291287529447837984237109776928468566858849907029112555624387407513922748452331637060464501934082539559165632675066427985224894518719812377137486697100468583855405018831209814924926349442474670446854719270755715164835328911158301475908460561128141365309779254060167735967189907413850597994152145291951186932749722257974126369730869952720982600321330071190952903798151982171706648986848897722233676190649788592460129352819493289661868616717831219608862291372449990317826244475732909558896201408267306186101824579809711639636341061425377749653576404130076024696665748301924838431690795098934292587624016885218295874164319257347457981105824191994167929147776260778643133607782933598004387965994326815792848419132549590701653338684849413061615867148114002582846023362629209790391080530764402811132778781813000761137713062474455280778276574154557769049849853074455117525545082341475362207008620872946664918490360682538634205642138118990432909132305448887450406654110607002418665079995178461423102953533346433222468109224649358739063707688386504995246370230789981335160651085829545360761029582799412511472744302765579984241246986363048716616521700239982497154363860761194221763151608278420826417456560021468273805738534068643459161288791057040188761375966932159215192581591593235159008359010455405123932305461407518395377555469636024843747825299870511836425479639857722361096805287294083866411991553106423376936629685399697885028730203176870245858012096852749119891459168490416229436256216533162670369078846454182760666065597869477654839926334562526768501463345220820953576649216818896861063028832748065268208121043638696186726227348354777137965997277504481678653329674606609979569409771451287492158580345423495906549328058830653706385831534571757168731011214334687006663865328437302380234446056173776117279413907060074327698354782186572670492538683361508723260349472209647005679489717137549993709377148226082900296316566787659131826911749715151149454024259761712105217701690941081514374076260331960394716678975657633091790074897231264223724071686690966816336718655964440485993782194028461782703126719878564935724477159429116514682576659449676138358800652543449495023021619295513583158446090133133397344177635501817645704179064358030610907166044055045477487312799739766681710681346560180049642814744439178693469234343721770884325488553228392514000256716815511419675028350602405217113617705128387505304122948738946158318317435347145704226685027723503605289596782331609836213127254418971613618602145924869198506594389212240838037159216443607808388586069002783502115262356904227282910108466638375945694119901267197102578961805940539460943656013598713319283897716264367943792744700751226092620851230094304745241669525619231485338410147224381094875447979790139034146785309000705984432797620148811597952168748265082788097220569645862149754890420245443388970595626941858537913573332837971073782998861693650302327704979049699556143964746691291503788743137753490047088704395198056175876914564692619601209908509129688525779812256226146629060783321680279144604897999765469645326461850718625504942004685379713122891918853996838823871770686190134347677658766249982995887863037023849842406035230007779732288048373666346968634642096719295488818288517605635027843272667123708782392746816334007043601581662120120244242030011523959680859527601434272870492346724229389938914445956683751192304325054094779161058215054373926998100985710298609334475601781716745861863081104252173095777694057259363003551701389924979121766470664012982939921682841242392303953461823687151686581957766126188495820447645619386796878322352445104311554439585817701972203195007504317213198453673836735153754901501805809500551255983657756608807826923123445201121765104081305543750453773383446931588874779792920132828992133495361152768008085476000560759613058619743337731176785319079529936821023181009115520826077793333152948007403199315428207062608792100562740536625933912370979415286737434982934641925528971201845594079373765518947695045524511236369349089118514376312375745914184473652044971187088370161808521041742425008615934777734640928593935841077056906401305441740522495226365728201978916908183471077114870337360438091489736581304667675892329917376898603540717691545453632918970342460614632543834525681619687184897326178609088140177398388024500554968991638812502770791916168557485326885425863180265594331812036552396163434105505364957986421095391708552792719351632037307831131143165576565149081857471709747521210057256872985128585922825320443270612148729266336380672710301681257698028737140519157448359489083087445722160767328677641728476387015041829998048393404669932568391290449299207738060146624901064109377056473400932056665337877266302527225470133459718690752454814727336401251308126915940883495755906187867209083993452877138220306251725545369111274871450145067278381532890196912501029530542707222034221086267839817025588645844967050742666611979718933265416720248001190523447412898653019214892139258669180341894984029246088788293372867980542699195166657611351775235984908955030916388258436820947551336394336775058238358903258813477233636579615863857544724253912579391078398904792763550106558436007950158427315668988165833006817512062865032960628887707712767988920157117505453273903576142440815642922926875688735701029613450002927182452912643228594694220976506799963713908631077137217323667986529665399394104151591248444795921011018843369718260179126597559204070142604549604909793355962785547142505578637696887101892189346546884263598749105887755817630410143627344259116020424196727415341946845240805631910859992679584469212454962405861251840519416198340050785851125841129226321040302079123739823402262922575204125978224873837627911247650764746084320269172722478787372683068344509478361408116239375699275745623467162372395066812025923333795364223955818749723543078715884401244275612100347308905064934241078035192298125569489903233548623326782245509097035488864794016658520921475669948478372743627478266014346380410731464918889506712127126770330878231999253460632261531726920156990067902081578175338353039334434659149912125127835326317280277759036036594985418515936222360782951408843298508542237524219604691839435693172598910215313661055226429839708030262853422117947597952869570696872803478640285604913476009036044955899265997525896608289917693811954271078387405891231282643890282968041100149497253380929598477953099514447145422351813500820513045353671098634148163540572865742948476473456112231086228018340732808043826380052618413911355941641930457400332978493499542391449732656419602667374437578725797473794217254152900050606192066627570463372695096958115161699168174148996428279886525326344503247989131068068617680588235706366006898042596103404521392465843029891332222509295270131657407243753806839875470613758534864009865930877996958814122914786723270860277592588702463416204275703022951490280876487039142546208735640263072073078792133901248638822438206107002741682880506389357676022155506180580358398438890940891290972513214011342943451414835077135617585720668713264927429045561169792804716175348079018817124263439597327947224204801265049970135779069244980827157808924748420329418665635438102674869361191475561702576737491795303335538880556918468181952175731772203899809454864153581797762194343656890535043935381206082769152387773938038867483373378755786917368185886156962049348938422940510989437769287526887730830848153705762344500477055847097614418442292408969367244601191064333306139922571423894240017716362764701841596019368331218811042112079354569916527841189161869669828533448514499901505634476100400433287894668322928186265151257736713301868028806682486800055064702187325440606649734552339062117741420315976465002263883018001008331674537710977538222189366307475743589740193042126040398253025906601298068698750571746888194994996927624251485774661555808723221125096093960831597895975584420741501138836211879433277015873448329247965146824466078993167631062165169638706734116594969122345972898400360687573119932076592664258089306229216451931548804728604409505767441769847837802008247017711230797900948161709651574151368538171834680264311882643179160127205233043689372183040238485635229934186905792259897204449177389145520877098507747062081205296099281522765436117057320568170009996688394152902988249032336457437650358369693197263111226417324711317263005577580908828715554943628902635771632034264193234780545266371664815651566724572131682169432006820286696374271874081440037444586917059384508752744074066410733696321200421369731129295766640297824983990310370607025931736362600179292048071976387564301149521343695223678228336235749814321324403321085534224900892874524152787839057852421820504237690952525837328011517069782010490990899131116834987262405952175624205263640031776622229371663775373022621337966279206530701366876946760138105575502475722090682508987449779703228859697718611283467328251676092691443009880450482730473614088836353729207788372072969376501368742411441826614238667264240144562637203324556061972007500034310356151316572117535821461429530214959752602466766304470625498716808229845789957650401107195117530365701277783372723061183618055560304952899133602071441532380454562509477489301940341150780627526040452020243366935423996558030921497620695145927544751223938998077956929404377228482406062272236870641447292182768877443879238369022730946283988624189501233864756691410960805603197992394876676373116522038291124972615724363388757574286265788414125508904121244478280972450573468396898874237988686078337392437213524839949856477785374330563475012095730474108697742561018563013470713841447234610821466147014234926182824072671077140972913098637986576964943277654642291344091537439723604113372632366842397505159880771648031979055759136822813856714970324943246685712770526419761607843786730014519034350620074879406729281753784419840176404005172634909294202596972700805428553700447174284400334671083250136883302179017669241014245558398400779787813919014113579810861873253362630263767774840694334577021088104593538794046885150971743658420485338248553710964221248984894448464947152152216790620539721148611777385568845429115208871024783244591531159026699281985676554877053298367777052020612922684085343554631442090146589896988450921102024418174857114080737934686264961139138578862448739342196638870633300532918882191611358850695655745501909250261121032843816594501074567034102558901948232550344621417717754622499214824142790151042707074199662883742633316467772164776537351772858208966269872029563981497634009074278937737928009862846749362971971902101458435926593153667028375194339341252904809577680795908614663906361815356622095369156348541856089437327070226670731814227371927629828656017997809114987955800123701189220782501060889284558816835598312405148517507519472392544372005488032868775749819969074841896170629617181501503054902292387893182712778460434536647729110876471395691007940057767817489356760833357548653787290229547163119106286189865236336297928510769570063880750026631841627162016894832907781154029285196754670218505939358463093188481766537930766578940777463317867273001274688509037366041971692345807808612840856183703517567725479895980042620888131638938521391905250238691973990056366642456507378201098813749188347610612280224407740435750631956165523797736507055528617710067666502273433926233750756788228521907260143802570638729185840104268662798013631355507594465222308382308259992767594592065086011144594160695479392297787357415262711918673230526280282961928531666569802775920137085733502932188681628383890789939539632903181721052116667179690516178109673356125765085321875268539307953209809274232406989418938642757563992955382414513796095848854828162551226132300148051852657100465734469540868256898732696908999612809686257805343950661921905697537812365328280810024934030973783819116530520642600594355279043743787718399551351718107093159136540608503091816384488414522817474604344190716060362176783035583571122087217108722454941528499467982326143210154486134763462023065104597335756853256811300856294145057937370568575954174302996695102812825047903210036004902161657903247809834633305241020889582124197675532936100379821703051445320393387331206200921317076136410159846546312629060576974265351238969613131636604960958961484820807437291144230153297975383065085431273184081638989770434383146128236452590715232995954406839172282200376657423688776981286549501112910506827149030491593439976454489591480378242124979516278699817976596683605494386492312447079634897329211199847486929275919574598546338580480867281698308493815969794600925054656299469336177243135211201402744878228338254401739747536860060501352906509405624118370573296492119992839693927653280256081043844481575553672203323297132049895901057101719343281550099060004291174290890816681343360325598194885597314136790582734123368351699197464369354780544837525025420376581467338283570837550236883619002863750558060451168264013559200809956937293984430142399719926513644046602573373625454469802086290477903711392469411344210012665146742768575875792692677339578343735166310462382520458151835203749943894870934630622039086876015481994337629372183603693213113031009748920221760513716251543501395690830797610979379128575890115791168863563326939700074837850031102042685895680165982560033199085579933504258588462456479808890247733402847844831844182830224031362280620295598780217417163177220656931814557517617407380893995932438041001685562668812394111882388074029495802414257309357587170591382824305125013094112286103548742494122584440886384210656540667108613775124861017745471802026290186599810487312801641758022940609276506068991514048887164548343386514132831415736842722526096801346697438095807572758052044475838891872248782709032474987871727737765642808386159885737302881527286659992777925217226811677265499850607402244711541285750352019040331446556525540771146942719371717648738661721589047211238859579357788421225167181201175070688378555257671238438196268263539833530219672887499996242998900333698264177782183871712787824140139691723248055727338989858485351687434964411631087358844016647130720011598007862720532571433889673420517669982753189407834011060194264932008079480018985808282889890833715263133978852610264335395582111642908518891684967967994689406033379135297930586872928404395932606089453435705051226023561839399291369985448422219506725955979741788338267447532039327049161162468966965976854127007001915635507237088211547714537767598440188913842232273426566785836372313579614091974932593020030143443171205602072127769598568112819557410929817049086700438663838394193918901596601326359746782709643333615703895021869455542393757942830666992349421085145824440296566438645857495837421226335659910629303424009716621545670164237828851149261176768237664479704520746568924496365536793458893777352091366818110775731228686146119068243666030466933697473366912970326695920465922668663815415862199230843514079809994233461978956807427749574194853884001366040423401787873931740545615688937800382807291013677981850680843416143385828598127477512359687167949330178218605633320589224846267856851585945518972513090291210190898398322349876004816138897817313563998661630257247702354578328379122628864157889269640567676403609458893153698677196069212849826202177400931282201557190516286247574882026841827678188687915932947518348794771630737746657958193576018414957442990309694978172052441691339062909991058035159336825999040352611797634320640275246340115523158559804307993289627717909390919241944360396411866481471897612914854119383956301007156203650484988680732134539653523720779623965179230878769030561540846112250799294969161154692754138566276932592335255768437689642957114998044437743486967667577906161009102300117454549844647818403934675495037135773187408209167592237564135036443656835290550346988985217976598464784373543965206754875167256103710141328838775173427084975629111476248890188136321930709962813575917325299459605249852752085080013788956165232079566353019759569244554904669762115440607230614324362593481569632666784932278321403269058122056281604389596655562022499935608840056252476057681685043124285490649358748092474035114349753103121554641059775767136039676314156912938418747881405429937792896226238817138997614191041421813248842236216413515143203660437438159821481594136164089021377638506055250880393966290029381633582264640093262797118028352930961871768391058812730811755528063668700639249559658564397280962379487981082672936466999517820957632980262011021106335904636588327171213813865788677095205692981189746110497591767139703248215187159019703117849395372506292914775731291663690320683970941170000640147272465681345385084869771444262043961609293942662499732205368963599383893472987119491093881842373999555189415724592045725387566095143478773790411159285402590947948188882895769073434480438817349042368588822207657828926649015304939055431089109666287745454232301343068273104354720787975854396782394801168982040472676261239703159154611743774248685589439879422451020725065312765427138549645230942210448047431758287157396551847139271456231627481893574257200529258703846326008356440434922957446241356296735214499421333182493515654910841006104452288385802141528794338993117481596400394930008032464461469410471986350572493028730305428779569965633273260496705367481054486536459053852586854166282246794315787404549382966421255925579818111272598102596296695834116627142180417411276881336397662486749972402539838381277978376034048419179705030130860118946524405294812072676912139132276090164251614449311239849388604282578645396476756576303982758052408386330951511385843721694596968682307460510067207873796135112727160196629613823628237075492802260677685786934556978139781886957130717072802213620915140849881718711889290558843517137688990003553270816047184646629988856466105602976127950256550096286523033789123316786041055586566921389121744523272275765718535009879591080403217854536057767809913749123521001322123036448651129524606153044407545240650942706839891255096003494199191153059753895356151502222921576514076951568976638130216252437632279933846840968646288246963290709742716902961597514474726550273128579819075040162143520970420574398154250301594123623146344144047553638540510813194776855219663268527619923720323971176048035238592980621070388266515710982641427377989740359692349611453829241038208426514731865006437678142626667781245282357968768724177580813868713850846066718879883846307210870180143682609911293756490106924319819470379607466152821666863800630575793703704334042238982396438719524708926561291538542348323984023614799571248940060982924541021692576995482221060773803291186970790699313339746633750991437534598187778592693761528990264797845561888729638116490530807548315318716989359761538889864400105611868076874402662894568934068087354895225110262134332706242506274202622046553471688185557525101045314358534805845686197821754193751974413579445429798470157932619626986258974790598566490024748879230279965513808604321065096739269266468913301151290620562162461691588085425324697167170415271729962703097923015042080899211133562474237044533699539374974901528814789165562449496463683523726581374793368935827269961951396313568831562904842559508453246741758806289453851821168179507813891002636345782565519195765387308918526223008919687887968686259910022887089516868881196312410118645040978761960812944862947086536016210436025988542383537580836095847262478046572306211781577642888647413888128892285680019264891399180891076534618483747413747156959761414978744621203959856963435102271268505142959985301963651862950345909119347530701984101848918250291025310121699275180183475642875722465847039324326730379959397562490802489493619822024063910957683321142843790966394270709992209600546312257517962962713222634503712219351089300614656202292971681655879906181018520255830415016806057230604901846176677054819669149912748984235119276099809549305327753587693322182533089096226603066628299415292586471956491373236459000090181644727735016124346061383374034547057307153215939053501608246867515624139485857811002469659955268032102896503838954690378668525669949674378124332800157047587618340915033698283556874246999885586183499689438664961227293666421297059451451252585934959528803656445575302285439353087451975660951787173676118955314813750196854487767182160097128600715675753583706774871652709339132381729355075765640773424185833425719824820114317542210143309767758810404545427249788725007104812965328563215352196577800183693564699871103302360350843591091188521521621098388161865763733805176945019873921261920826037373127348925730651030072903555753381815271136495318053636416800895240183046945549977602238907708301460711896730779767901507754812696558759550081181626265471525948466396904497361325695261720894136693128903669163384257917233804856756199502080265757512142827210575494871417161573547153737372243829592308063516022925349014116996078534792057643595343723086032070441028648442227236340267453908727271118924105741545478333591230043353334471938037747168126393584676465983142851616995155912718838080592637214081022252773026225990330812420546738942105641365931756235972136852879558907566845387717358217935702763163571722378876674593909255289561772092218317939251795005970674775120506279119703895547558929676483795918719574861769355641893188353664720860163074724594356992013001714749423662593562930783233406853949662161521825534138952822059740446518841713014750105372374919120946635371146177690056437086248410679506448556248773680784219460707604031696999731741536646208491429319215585681648907991476489675209086521602915243090536895296424043612672769011395844432501319221510638583485881295268384568859046843770967728544168822959112970485427960103784527483114868610988613531403147611468272630550494471130510012712164156256548573740870101509744730646851385691255985587080682971969289531919672349182975777366049800628162179950393500120835995051534630807018610581483601892246628629434875417645474887361988667850954878220171373668165705300836225431487087566301516065133013138405171092458416115681121435860747895144630067694502463418638785969244084636635443893493564325074058071189168385393304937923126853269875812179337996873575758426441500739654246599976404620426933592810542793968223874565988156766384312095957940946882741884721876506330002174602428433532448300758516139236491662823599243372323524592274796518646330035560055204443758401939871452048038597709868804668340228636872030313647120549303852044485029733677288162359429708270314149637668456968581936816668047288061372586492599046862639923916892645991834256696360274503131093402665830167530044731385964668540272087444906850942093266995191964132296055229967555762040305359780470108489721772594016113931382124637793167165839632297649895680253353012497216337402299387563259619226357168358815567100841540948088934143184730105017823222234370228508209557936980142745471811573081306242299900907465863943564047866600569322613527289969440482209070574892534156660886044202270146382057247201921204444042278329787427360966440803202317004987923986893641259865693837344132493036189135437956377342689703555861773827034784596674137728672533673422452816459103991044976841768873735494409515202783220552240918189369026386011803858801704913240255825521704756786611754494320412479503460878342131909495917970325453502126339625499036520701674627877158053835003812534646739175474053916336391047122449827712956423370860027094289022011312778804571457432166845775306607562093165780360940636530981118202011899125482932237534950809879507930452656254787732458717150272566037858063727439538936501138881823032201080078605141583773020615562216639813619102666048086681813313132045183773608457178808707862627933168436249964718028303859635470300556526129298075108394495633918632110631797187772756464689462599411783178393457214203386631777745580830327956412647243162776631386718544068266531750657820047167086003888663786309919180586811729585951427953692252655454111767012703362062720362666169940353531597044356315479187456926904438116366239708692078149558508218230734371601477889474850579891400896785534825464026849397002444674102340394316171264745372724841222774009664813659699911844066795706025251368493963227356448967258539872110136459879746264879306738051416194456722370855936715705508906003969109746771299375888673843548013780490096465607539961044059731337062493729297184635212466106464920430684128453429206769128543595414421488912238737828849017437509440116502532668991508638932312618050590142732290744021923885638209924959465742058180271738595683314663604633995308250932251400227881609385489500267926576307224947683793349996807862973415411436789011969461071458192692323388135779423927218432129678159133191156385138520606497788002888192455946364189475879488838325850681264883093380469030234059531421603885189493677870341737832962241193530310679147231157248550445707115433733688747590798187042382953460582824965372878064675342794206187385988092307946565658389718781900658862717115137759462653993327032133176734689621574984854109837457429251444693008815644695305740979226926159737199863731912394762013018421588325312605315798405399467555326242900997083247985825979912665636593465999974073929617208812957187178922992931487306157016943578793536788343303021617542222908208583243612122886869741320347533205649700105527089749413536282106770119915909614692437377739601831242871804964810036782636641197925918903196525275090314654906371448121971149168939664986110194135081093534599598963356748396128496303751964011338969538635467951136810376051536939789224789125509528919272095566289284794273718735324045629982381907022861377193252421576758658766393841813257362708223174493288392586721040885896409363120045596263780986453705929115711005534938000880920366268576521298002113761574686590934987039445585190927399611412621121615549463035951644079226012919748076436697252472583499315278462037751081000085379156064388322802987495324177968540528993953223117037714910939950743294563915942173104093697922276844337060523517382216398644847050352536432377760298522993822406600405833377701423967041402448226281094768020160013232995778014118176591814049614257454464382710908586223202607734433614893997503276502831808369313966194355699816821844495420453048544610269557991721730878217598818407716115104915022986218061335501433488979923917980039055831863570293985348838038701852488668034083956196590106512696505905034945517341462256012502250697684402630439244710855009022672705516143178818289708045441162818635866939069521376541725149758822137758531251686415709841246397466347727723893440494710247026145723776020059541355468398112202831812346657826731549275749376082950105612180365368892951228935680061182049522459580198982751143580329668431048221012245557929798579264855033727898815349271922928527078006895769575401530643934119208581364425203327823644861593175583977698569152517077745776403328504036487019473435850717264253498664292118832774673859658008456054481136274836052708654490449756475247797467046480767982774571735562866025700928647098041062758351430552263316921702784144963790822385751992836569832048626809953980001392701372070252306992378481814519627884737846361770623167314431185693399246214226323219941816401292936108652405861572652371438220207959613163937341700603579400271128404668411372710327099535779960759816850581304122429983178642634867710095124348563279411276627438805197633431203970546869468507493796568639626509832285931812769267000254506983195127946026778780959907764973809387229126695736715716764282121688014360113769851748525307557998641359792825033217848855864418757079249668658002720587207963690886486090866047931272062912132079040702709043912256254923420889584835461147118602316214330522612367132294909080307642736803842896810355054396638480517015991923288318178226322043653336753725903399603386745877028081794435508910722198048709389702047970758231654240900864475812037624830339291675792931246967557484329607271782454084736331291111478379646170787069341777097319419311207555456737394193908380638175051952699643996431829349779114785348404106654541115581439425825471268501406783848983496033636493008218280148193894685683977632805160574486031760595769185851964442617017502855989507175418767830811711622998900583662840676129036588165813397486940439668306783819478016242088629374446163534635734142152290853800758682196643413193539388783773507186118083575945114604483192627387096172694246014030365289237841017120817149994512569663306661659656054162680291306478405061039249019899347899182911237869933366630312666536852425895791504719707400007165766991989959733641717488569037625195052678682011865255971476057943342607961303096380353129308992991506097752313558976343142235414289954207417479635770596963561593925803922680206756788757645650404908943853955924415972856331761815484585219581049988228241980844636405133392846895309488004773385732074316020035225185414395817376245929950457142947486001685754871311133348608562696503900861799418401998254197190029011323301228980069228768682473954281812602374596989023562416656347892596378150077370021009508380777177524469120351651953229913551014893518737505026765635811383484650674980019966999210294773852415346905488583482956336996986169468222862328563219629334865928470122021068702766780189046330126097110785361209128099492272953217781527565197415546226839652315022316373710209900322527816108228175442057495363947711362527311123393637059930455199310667737574058606055257934828891553940552916243017302858545342611451023899612897908872378592752676098897533111776370847733880700237829429243723551025404098391728434735673810294351001433914523919013150076546954208476365318368223114690035014372487123813904711792100837138830375826587958003723196704215703757398031113663993987765125433384724981461786662496810499263806494990688900546050693074732852082600332697481436666210358388347168972240457181459960450133879314806597185106201147233189188641498953553835060109549218011554455724326451574684622513788030728822060231529718958906479397495139564068934044279578361784715574959952734676213011232938168521889158512441501324911415781634287340753296501313514247094202801700135322164229173566703047690388945091529732952098629841609238155454669048382423337495250005261324999809318759455801608926084655426106149232632856982251910148325315874803630291737490936703235649225372093121269829415281963282915479906882914220290485642291422803657884525729368635425034744771241385692625312120187109265814196098296526946224776864914502733012506377017287672873777244472261054522349596287796220732538208395495669596326285707786700408071198549568639534340966303887602498352566703956912123255943688564096931220015333661618552837717236089505424838173800056278448223496120587220440090545116086840508504112065938652390001524282790995365594932813482490722141752914317229184911268423503370165534774992901725220863280377081831769535745000636117153144785683401102232642823983247074281803093462147572116321854456208447712284414472542383932525226311613593735473453770445425892689425116185756240756196550768935534352339916300328233148539218755441759745116354913881006140575167722254573003729630321020628052676693815070727486594895866419305744220419728517250639778991965401962446363676492963159047004083990638578689041159694567155012050346293957109879161775365477147869598924165612358031524987437036573748424979133435403074395320417792864571145068481284444507216034413001555866402747921972400548398844535440344283381204303828119991556082044476323052985278003674181933054092804982189119347076687549250534724565013884612810447115093387971181226290101255556149928905610798402459656793312420979916182189705461075737986734913301304444263785202492550280155676101170344190656414383482401006653795855294978648713073042906022253291851162388238801751935252748953271512867495482229342090837614382982950160608320616843869650980700259664591210020248596098305799398355000445757253644357441389865990978084355750261535383974519216292471669693208159154939349258401089643653792141646096713687494642270739227612525933673084775893266927241189712345315518509975104642742816810437725947516226682091540894151532258833340702728679471064812926571180708488601775953583488264860529742940664318202720784065713435582552616958227068606069512222239706255901415219089068103115625125476966564004595487025673524418245148887808505900691170583796269198996057193365745523477609894677492268620931224067657646058960491767611250095215241349855654588941820794902357119914485819961213966123270690579315135198799469650265885110283057122965577283673336981601875965643370492814719978349471719146120277507493878022927657874733214275659080126708988020995127362612201165049572345970211180438903116432630585811212498121696661109463441593092945102404147865679579609315877549494684797846698645098933406491786613892928938385599876084802911404653000512917300717291743463342396710381316396936215810204876793888944805188303955906968263651555052693622067076085005365589764426868849100127788721356776311753279279832661820404208469337115564452135360908088974986971807366593516496434666143337084043405660247094616892440137547253036965385007863397964573578859984322157946286116784516045451105392168343102096806406805415472775676325943563247663159559790116599128694566326547340216218744033245606793394870409410404628852345204906091181555992324384723601825215915007235861952767911510867186755322224496119689970004940294080777843530495129814513911729653494372423899785660568519720910092117554989005184543142403650000036157926125746474739132336007681366782290836705741699791999758522307996828348316361815406661894232216270452392310776127510808765668506240545695986093553759989073968612675019969041037404318485500536568152884510172082481662158010827304462034475420534215263986505702328437205471214664893124789264800740471660656405796235805928735624319262883152635048799503960615423509834292536841174423396310972938391147047427871436111444843419061071122637220507107054303598012820844044753145112398089702532305624468797751091762852971945640109833638447095490757482522082434171160373847912843704047386069947638181879979608924271617500600069776113753904480444992648430745087528027898762070524412790678169526181731607773725139881216145530421805431814847513139262633579273091967665859598185619467574579611432845477134323808877753914911765584964423722954626238392775756857666344451051090664609049504792152143738513462248926579118383423072387641740690702644960597352717018604184661875285674709449837029970721631009962433330000829693541558513742226177850130968593366307894714871154676982142361445631124972211681544495313897404468218550140371674828747581082900533454989274006770946618861455321969498536210492786945853409382984149704670946682352408856859966155238435319358109570812667621931902641234246779606990735707062673732261747811289705063362596492989099056356159392535901817987327312426462943987061303002610941737179146802627683366022121750827812212367343725649343550432110111981814592395823492060244743258108620322316245098326205864742729135462507578489029948404819189853373228610626854362944907003502743015885676425856337809346923381798849721745469362893508384431265031848677838497279005600128320055804297380429495245807012307276314744532143618335873253719921714064962894288239604919637402772797607055058904732913208160395133278715403398982728054736494845273906198088259958676945907444541583129495573403733922359762741344685554140631838668561770346972227980169243984191672943227560816032603850531393153459027226677262687312117887590882227203955221639086054932277312545145898538682353402863810438837449301348382220186462470111826896434223062788630378066856100382056720666380618626015564962411879416265158289617265301229500083766224875861747851095314797690205698062591885615798271971732439372496498379453639597783053605031291484679262184192679603156882958682896744949281416955020142581986685891553115307463933419792348611971966393133076190250739704916428651248644213854119040878382758797468642263569767141649139670362109978578295911476528664836338120272224690576767371228723946287433205672037657930629008135077402026254825446134125931379539195254039035916287947412210401592362851063235141608205126907289261891994748545633438411828517540781101815782680630545919293620345564471687093153094822735239596323284673539884452856165919373424010790811050106471320584514888424912359995351840318931942502093968677925076498400803150158308831977173502243551582085661427033507453172179180312816013689433947083301419276693810022229373297476252300014659733117101859197113362124635392629528409832643121772778054553335010794925579368137453968179866856298037475320491228487712114798741351029135252754738576628868024319770900506642538821748192450977898490672245725262130639663803233309650101674633532511174490442909725296452843331317272519230915437526702879610810671140864796283442505218019561077526869904389199567042628700406104888751128710615305336874891182464620852518668585837310568337387959343422503344716750108644901350421457214868898869760529832577933139653250362098362244436789887906133575189602476540588097150495662482767959381174490918033559095550304576411545152032007076982753520992416926729100347195867760922261204346218070242141891433102197300749321764771575671579527557027471745192204243588074806154171680415181718109184261271639978044225800729594038452911306998166774357742158625019431819917363359048169127205058217755680956436877736236162231848792569762190229177991004274026293617242619961402692623700749311478852974442080088802416963506394738129828948264212731327616191373471217148899159264326114625693487737999385170512601994193425710684004658561019716128776601043000642186505257044539050826398036975674308475701938660793319351071909564493412531703385055780551997210883831255808366213904332905122890556707836606251048196789541572493302845173092888604731124471380942336579587894673870028781427557368577068002822922917326322063943440653570673698757684152688635282958670776489774884006526496425733982457489469034080373582872439247964900678656874586669477290571799183612587169156326972949660276646330961049044945210647515368164241650494466506906048927632288517692316359425230240526640327380438900519860264318077785973955812527742356397336768058485577302427056674502758341971925588068181955313012450549880262215699506558898067390572976445785559503723548898715586961685912835612620736698825552221920990761895345295632461154383031830648414176677011956721575404512195704291096719747031434238553931781402160444551550198748982947148382294415290412719779420180481609439748082388923826428504214827076541613506825368556210249534018374899390557794134956101532161322088517447771505436424455378570632498975891719954541533227929619734092073305064714456235462943346334841852304108642028336844906560490229729701139911221729011652270734818753402433009416151671789070263347819536282194557898567572814570781883180645863234916825847719675303981979851515284878120512027323844230037158673934021329713017172732874765877825365375510044491233836378373886723157941854035433098816288226432825663432230157146717472684301211051795533709550091513941827041174490381942327710881004434812143295556712712496452718173908691511348886394112101957912317878848508903739527968476645978743388634079730574850241651259507712141543705543338385761093284725428665104054056189211308687613339065156251240318285012839434632917938811517833648399395000942768059271979651960730231196231870839828898357466099161073578875247164935510276452547104731130050283837581789792672312509169825052803241177260668717345714165336130310146685137522094134429154377221100997290010755805529634909351346323116120793209378954348909327799947754837676358594638808968635773656613438032910358954464960693224122971336644221646559094427045757617979483030445657898883234964986900292508791318584241886230772764819256125067132348751454964708479422805121051276403958483513169017441326130662353822012179444295468674376463779865450465526971058016727621271329437241931338658750409697644091488881904750995982175829854446567440466219120856307982189890100460616150691946975767610299276792264121714248173577283853585890997995448712835019890452357655312940894321303474870343564910590071300723587149745012159199973528191739236932195427500242891624119941388061282801318806587516019599484659433974441033431339794477379451773014060217337117961367306408210649314853226968610228969680550222129726550305305341718273349863309257331882835841162041699459857722567270195165740513516638735727444741243201815586319128424799396590843957203952691863041144464203821924774190662703218651508276043245288354399413964413321452737184402023499507435320625768132320417948316858737493827834272338489138358251018064725964231012804751765260905920560708115651923829841947388780471959592850955270238912874033548141522508038666192118087911716310105924084116870285001554799247085415385345546431921325267885141050282453250916457254699628928394701387960209826499372931230339961456170423192733988530413146340322210385748506926517909476363432733430612525295512900363505070758557516501999741135664246454091220958632384072544325480278563293054873762934193164776143537774896860269545027920207183842404034838258914252489949735083933235300402042009243671624580720980414481830963003138030400392999900243056229726380237123499596092007425622466384427694599165358460121139899470718332992995804298218239989991653621479453078794378368997883856054571242917170213739631788345461165092980391298049728708512514818422296089351470062958146981103657257068593150439483021370247042667538244319070754689170923652282043863538702491262139026081390055985321838720187606746650039552789865182720278508618725766956658609994842067451211402584379949396023124445268302889699532780433589970901520616475156488905199477652971182342494409216276639397131590631970596912931524726918099573555938546841759064191603595153286929271785225001117122617147778551097644383722289915509639976860881355191399689421074466724127833981458538581941356007875604585079706868985499655171353198109455746699667911670326122768858188590497734154107069088061774385273158986019861526005261334004983416768537327241825502208064143763832898723246408052735838654961506515799770348595858529218029746879478565412336996221251500990666717733686084107976454065184149372000846815417179810249175122361447846134542955782358598232790899297085438193181564712892849204619464479775874496854537979438637893600502143900027399246333284043229368779935414137561861585590952449483935581346357485104978735102971311554056143811193389028995895140780464073943471065062811221603181756893637330037970829472716879395953545838139138805474448400594305346337885180775189448426152037784029702613868785260667616875807752418684978763783473331664590964377215858608024608133582968412597329536032736098731911863206652520688050346869986874354526239245098999942318653959280676135816552184254500324910857287569245668616090750312649956872604028120163490238036409507761973918107262013044901747371528449662177441983724597692804307859940932576468417521882796894368151387558219283110272585852802845325203412304358995341474850411984071911781094899453524909845826212955223041409072682215963025146586890678279178710376093523699569180034940219791483823071289846355870277767862109868561255817309012140022970514929999079555623658650201314045507487693031864713358756400374242687715281246772856172106990871091159125211755399296385715033621582544497296543356444845363084750875788402265045320636249816809949279553576420367912005031222923677047958370988908999487477624009772915376435337202524332381489603804561868123059366879092569852824626509185910715723700341161500580889551260700003844877021036648657741407896980300196681132583053831751078645802877617159581633544215005665655322037690271299011895696862174598984995753402870613055430730645564775356879893825567379623616997536327796256178550568802864022962456449268892751247685374165792430736707343134351020449226759576534462503004954580356369333115762163958537662637107119531336202012916658283849067689644905555186032398885737960791302373752440641160357116357844003458026101647070964677038262995294585985869450133722465292115886595644281812637868228368430010203952089629743735869787791382749817892383192238053390111547949746812138258746485524153996895057422782708629816234686915692745707837908667551641769032132536684616012843595721798461416029012179700839637864590052746107323707093854559280967509331872105784485767698160360771217596188702942738723410199118277601857495919459586548970762734426174382007461923845474734169611842388600096600309310160254578252301361203390030355301948603150412262387025343580811805932337110493278739453789050323034083086603236464008770703865528423902737747736115384937495396803149191232974926472709017386027010371324291356652284733076202414920033239159417498044310353114644723986614998005147403703283762906854026087182805925413761101689356508655557753860431066085373260318477413903189295709297256789418936898751159250269129379402669998147675293824521906304339083058476456390265214483729804670331988446074258270458646146672305576138759957052705674578315698046880141395259369760609304154329935664762660119966296048845194879758576009868236545710246841450597603973123840065232475603780871804013949022296768875888729082418873559203361795506478866540053176071410778102425968595226187845643840538226738021118525082420688962476301716677997572985440910278046597874097520246819797790078560081712072367597242195120584069833372928275121002133967346554274024443371991259506255375077167525294496083650308873475192210768543369382456148787782887339851934249349088064344429537908054744636701751947411644205888519661487499973346724520890140500089351220869584228435626284261315282590157168891676052154048237230356463263948752989361094443877872480023244321108705804278528170822408450283888379227645186885376866403689713203005750178816409736025094289471124890015447612668508303039986822380283822702313279872490668880667354313429699090405155186078844104319316989028217093963987545600719090470142960041353464418494565336844054999334163317356465869924208471131334263391741056050644118582660937828872704409774946067969818599122307215534247785999179408098594082918208973412509108364433585917884019213980438293052545401569204162582771289003205127089326353829615122504920397885031850252878764363830730284771950637819930891176064219654987536508051331769538941724121951002612023972971147821249357499443690045544528968692925899160061164847338825826245436464083821674010491967278461621119351445006078853715265740981880495882685793513325678919351088684278186024530342195778341032649099644148998781495313168242459506028659578219347154208476973064192890623230857934990018481651713415050515862910142960986780045802437021463634025707151955399075952563582177889925490809764628494527268276489355004694352746608085491241033190259927156064921752072660787131584133272125586788496115331683219660237022642085503691040812279668807433556894946238224600330886462530622555326455527141032967025736155054245338055726795022631640174085361983336863683867632686583950111642155269576563424874226287810602050956835035830407339245647019042915830742849976169559344513262133560479567458357299700392238880402693083094288088044803426623342418114861688838533187808743946710426415605051529248559664555004149954083082902334429254220222786491329214202334961933152454798409515387532691950652879476823242860620498258504886057568769622328704542262867620193216896114462596610117085387996207336213804800898610933340870331603379815388224087320774234901398963397538838229817911567666432306796011774386563305575114969762137807757197442017532899945970419460471374021893456564040901976435881842193570616428476452002342711837453239731398932981173351823528979188774831628375652809321507447923135941119198080958511204203581999889382488964858125237106973488693224731940442952725727182061528217038800213298407732556316030795235966725599809913012618814525994750259627619616250924850467159430121227265691146002442700350681199834861758088398135400076871043733743465677114989753797944560695022355458647822855154792297890002997275275187844923039277725734107563332578669025033137056851884376103032516038244927284150822797111953377258749507058379375419748360928165823945697425075534329455678186120376394278737062833620007960088975898555000335617121308662135918240758759526320439052690498261369554776024507890633389470044964360349084131963896388984220257126317006641328894379836398288762208715993677651766173293799538996402619267898306409304935065764559058272724495177767571847221499435095306735504311151505420255635386013503356173236554096296714019409689991725765998217870085249295026936614045652014673946132085721819230989988732414496998900665876693904967852874064497257173247332574934580332527134151690100840227966765931341744611220077442824555873106620212473851544210634142425458741260239136832224046298658324096629995590295043866308949538414774423188858764990378599778575890005018052906389602667233991931133645698319552663347321148031221880698830021699101989801237901935070138603375513110791290779082702968930009949870473717315567130004185833756394075662932582932127564628520650577166213354192583078603250803482776032312174545287666074712163317859005845889128894599789584392159576587161183935099742547070889760303669666922472653659865516035608670085061648200239943632457572177865372522134814747781054689040236932656398518125197796209641419292017583391685729594701867577164499415351687635258384009590305511009728084273724129645762889319067647291814956222646066969516845518079881332562239626701355952203147675452810905297246420565847490248898553295901380635113327920194353066567005680276384049319799895163845394119889057192214957208800942646450318993251737113735383934618568867053842281527734531488412075104614795046948878050029442741309424013329618171318002986474710553223999386103949703684722613245346679530089375723583815451475681677047637252072006807338057405730719635112260703716742867940717185562304107149597821695773813461443162030326974707768414506147034221282871056709601949250961455615526412489509746671280042549446637455147093628573599630028675041605880752036957562366101700512861118961445297171052977210880418785541491765258237105231536028679636003305363287095739624735144073466643380177730302887870436108761145378857390783887904702047914320756776227157451474602755538266525526493773617977235867138089376264236581908210147623191924070839992876578475753072897191484716033214172107790279908926062441748813588556626330506797202359323561624642876176564107838890104668952327362451199296304356545880365644944364621942713795605993073966657587534699358330740911988948064812947529320312936871861195110875837071031477268465768128948980305882743836348680810385887430580711149526351901279388526633844286664731205807934476096531453391046103715069614598620299841924731009460875019851163624916926703631914990235380848769765258582910889492046692484862748093267720283433892320547893096661056865648744952867840465462063291837240845673262119898827860372989882902072718897126788697478833621801220825466107832155914612688633786557745508245742724332615209222715077233868614708624424591367796539143791578206882058045732527239664266861920762685523327612756057343217870109771829702440727767456206721638264191192130885650393685602697864627554795430503778014921355390975981874432654299466248537100289203653872485785643829318594207750732075000257283058407641592841474218351107523865692771639321285219875681666437806383926466967485874694935868843512451305423719749894495624178266995847582054664353995538095738546598114659572550615712868014456084599570740838138197428843803598477977822816680077427333532573035321169758970568524961847842367989484156356207412328712578589782715403621847617707501839357807391644208739235505071755270898570452836005603847778351455756231850422243008045463970683083273202557508847986834505671764204945533747041105813663508508753458030715650360086522562782388470123139013171092243742220401412936449018983805124219453338060780795290630783333938157496802601560563602115572933266122666573328507701674144424903139459590922187243988363201307848830413048845778143618666148841461227199687041742936097092764702724967004418822302536755201593573267047831439841896773564968615734023505725626999967225160477544778519509545014567263225856659515129666139643340054390308374800063602357585260061360649461523058822639053590268674280889529485386195034242462542372191277546028738384173163961094873953809131328463176174970907535614437811352165965388529347533579535575254853477085844740152263941125044030473431742768535252809800618146771013955024079950685740354643415420198642056896563371314561448006648252838280901002598529796285909978990530590359877118226412542255222968390126592203380318595572511662783456159334142505568603790718591562916833305999792437056671081683324890261886537929288325516470536845179149873730458445519965783131043371340373526178869868700772525531120269391466565026076745015251377034405951930172321192874417698952767441136351341039759609600828015927790355549706308738080705829584299233182037528274355477769569859277297177107445474941496062681927833586199208484677269220088213711484383466862776992216357949662532812973441461247242701055494504431675629404476790397468721593319347536344163195987214499939458968586535535208841839859143335475921454263087356984270991948406574921472139963272113141726935507348084857657958036032442403296127382117714913043637336530354556927636514422853194704965468079432133079872151767641700707632218329876424167378596858529995834899196384621944812682495815637833940461795999275124985071869231452940526792537039182324835516041562861065645088172628036093240666424278791797288015828032403229290420731813759023029624512580121469607262723224254720459120695226278757655632220462082197707903663717336486129126361454680776498194345519931696313286622461635041446908563374069551887548927888156996649892215513364546616225272152372944921452510740038726609288159618744957342618478723366414438844329620867081920784927053693795658530371856138269439275894405664100062269840303572603589380453063637691996547320242824216863728506713418433451653477643618319336776550397007272458413099238630261981921995930561594143458986132434625208170559722939554124325057414368084900699474756709610750090526712272418719008848125585847805819056864322350407107394609444879360571253190086253553294277659639281188335285732972775452907407991884134176841253832003775048600069139958873980161154980830003445807909882054649104717932333753512544916388966324839195338311002921197157639298569776599876515618667457665728584193612446700951626526475750801631531942371160986174147249230240014233114626505319550518507726417104217753784928215876485945204702673431808802455073660068858208859912222100042670370490728012130090712634330856054935936604053109752312334399140029780416454390872562968891144447324903429392952803322996299407550316396270497574104328172676167256909850586405505341773669263532160985765598062576934808780488076354904066615577490913004042269485488877796553452933058469021392084294097187471092512336811743064351516459992648897719975452982551807582033062140457491682952860635713247738574968402689881893569227740327503406518883281263868283628497625767943693090123189591309719378089923893717516582433516608730687348760050817007608788376381503184864238989864598108204989559630620784265180533101166110071806704270131162781891502253881720311359481062465036787619465830642267612123213716686587824846648759780817080607081870375317073060400570720995765461815511222104238363448023180922891190148479523311759018525804406183798642124174470636182415663852232322746272541697494903409505234786538400854350319611270712726937541653292829440132090954139796841352031112090006337333980736935098445530995078100177383927864744618458291628855441934566455139735734595738261208138466284309673556546327930684638052179352171759844705925314703127159048524067136325845904960525600129359864127666668500091807693004247151048416314603228810707921014375860763434380740967860887993067394201617775016059887418348907110394418527582928071651428263969498702287880672571728249766995244515902535188767202485535817943365052781611989953116347503864200734343754690720128788313276317267805979678041112869124016470073685825861200231787750734016414989233250206915371100573211740256916955382111332552243911717226794568217238728717612261567429619777147898961029828357711034597913147746454726447209160144565555532831831581163927065561633852286095318357310182397982778152395256535404934124823396577982019335215222812875582908488498032087940378273838627646931886291973246065713082517134726641476611317612848379126086721136844028297674273052489983069347738429330203215766005952209251630188314402857311190600981010250854459192001538628441829886547369280180120390163010757400818288722542761480461596502416060232915814622107120636203779672855971747357347729283723198504297405233629376321374591127696673125300520140065363205412287329025833576478539550225989249269977820085738886769884270415117639027555102911422733247552747099913721333672947699352291064723974351640444235541405764771889684997237448921749952863436446000194443245363027395927475722587803308815265673136840290415081727958124082381531093536085176752482729460818080261243532964720081269764542356885889068693521542315302766520250356973776019429714421634719959599256096499700031079542766551723691737068543679242651924716254274403195216225188669126766372170455816447689178758011369931908714649797757687711198598975313754905883866719142566732450707822482941921547916533974122564235358462508924069839767439878133604685827160713984939168543033485244934835946605815614287697434903812898791339513536124188164071702423353657933320428468174280556371071595178933940635992959101266808164990329346520249640677814394600309211830423121308302193301566130040747339082136810994886654887467159172944781423222499701329969535853985839092686032828219783363204204542872560893634568852254659901101705921240275511540270819673226813305688663116945875672120160843893374272750967969451418374215712402653638945010324882629640028871976272490754386682441443827810911118365215883663192179361069040171860627101275663707931229527752480097648416623916585584486460260969622210957506474166157928740928046603486611044260683403549350850740410373652569988809546104366885681658236970743831381956551758610699855575215832967023558677479960293640877880265434275126264693829370301269641808997404020754295985719441084358650524425658656226413126785439023752183876718838815402046422159936543481238721593382973260412115769461501926246109213896279820888862205236659184275421104410631195876726230760981883246263735120155796170758950829211923130511431536844141561081948331027324375455715981161909837652051086125137443859421411168387443487401772250170170176678937403434467036393301628602536378038414924948833550305810664270706323180037619210976622600893153663483810653145228948723533916595675594301946902567467951667943473035655839684825479115898364480104950548239445178026782412166254687528086452364862650023916941388087714869553666648362877714773473276377224578290955574200978215886241795073530453278718121795212984439761062849874396751050498401895688073936348601295895468501668012023260257225698334270789798854688262622088791893498693808143381627091917752744720993815166865925412448778135070968284730680970314398752030934286698608858062694169847576788312717704221148713938047526685499146744584139251974352171023526998424021663725883522472895158414723868862723497607218809913841589035534526321899961246978530580303704827280677949895351508608504875801505194596719139312702620802125511667302562305225481129423094041601916335873973867840952315811952521052650231177025278188319571298974171778862430209357089917592768857496147708111550068881555443362589000715062513565417804945954430100152134493264132307656089389722518772019550639025403867978817916516197750459432396329118374286842201282885542979860430255581540876593434219410014132632366343039858625714967394581214950962259287840391667308832306473610190902589161181684807299671952966742961322738463945131174586351716784925413808216892907921720803629024301517217288943523837692476802073495161375219302824257782358993439769785430779564050112708052233779045679703505923747353565888575008611181233756374101024227619175204522233985394789611764764520265993049654306719002171539887362551807599113955797636707818720557305683128186117733962570625882828905052371320018770855099583974027290216807205487740301173791664194297829850203624177492853768274120988349941742116658094701537915866031679263452933730845833384456679111321472717667848161774774018827069601936128069334621884733402312507731209768005548887838987101838639589750960308767520275045577920270723157544460583698104382214322617158395785075387072976627347913733502048637905863735319377473509740675845394444836146946008662390979040735221599920923629191347234877869300208799377883599408128995775206372954448331860205184300046553004219133846522720966737941835558764048678819712433978359130561872225466256135250574364968053069889406132704586564872757809600086671399568384254017119757287359258070892054301186487562132796436970613193338825520704653742119220107542940226716948943476333855698041421495004427316531637373703013786519844205797605941115285735175643433785191560812475149490537345171850935447076983753636289308260604542871322967515214332933710387028345040850088586990414979976357525968131913725918237688201962003746375587325319699473376921897584537595007714369822205981968546960381325290820072843030462822230993529758644961606591843062852776143622341128782697680884042400014631461138330633239740290648864671240624437309156290440904591201830554851369356398445572225603822015525148841197959176818573358824184848011961177725641215412308731417717513235617522150082480579144282996158500493826906534810934393144636020049256960465156749895722381245971957853727620448827575002205232156367880687178823380775765426836902441955806087845520455419335596429305132228285398565898003884314664117149379540110913185503639933051585297505291068940058858800519340884811749510763008941843763707403314010817690543754979499116743630532929855916428856395907583702649105439123197599927243723167721118459875105521025226242329622273788403309072407015618492234818526010237303714642198096223422557856313207012090831720323921801249954180513816860245797436650551302121565086856425900673224548093312776454240382373680081520984159704166850022255353896910908352482777705719811173149585768352712313090680851315084160718960058924118634910024411592015847607070288612071970787355371246838816504164756045745971271124104810049684993490678957161820911088895303583823233899947572433297938245222055364233451249976007589556097290854913345850197820113613429388157811155463523954854228416183449190735293086251621594698710889816599097343332085844542468077832737745523606770254154724484489503391722434802640862214643653044338176198102573303641950079450392048592352915653850888065444034741362070290869333044076597822535901515356751406756190622941386756864828642675720830794715358680514905404992750083950162482580075792577049877926229852671265677735360497784759926462809855625421409745599917152259002724648923052962525381164981048910738461198623231880343992836754343741905870246108093058495854573355036621565826400559968978530781929686660907535386365359744900648662341498629320808634499151425261365719744046253438900246115747829144477845426371899935036089880621230940946346568636789281568169704316497759512492913133685294262349880337888524549979156506668530200306670732721770490313521615655718823220199674316427564124851404539988497530593042201280620347099561542464817394827277444666608149590767049493563026554156601606206777568903339862153392293904552401327768614762585706069919522222454962169829686528586004084304907469440848488563937765404008060543194644974059154005459194876024029430694173223236778920452077370017104930529676237473280941762996937826424721778169749972946797298435853564183528163613645251102013543864152702243326312143726945552809526391245703560173289591097433694191053982265947020542064723961376926048483996418845446438146307272181408586415764402588438819262576060480153673070389993720847034933324614984136583637358703962625560155662784996939212410734749850818147361186932528613933805315157383717748920390277920497817155953218004979167298681892375765657570717064271232366929430728231534512340916601669490788743578036702479133758388384842217653468516907319490650648703449044121745300738860556378325348955841280120292046854226411344756362189854160196488694785413919318610729176120188807489202647417840239682999334816941583906790007215790432680500283583803140894435878747711361154670727561340814479638855084744800398905706462996271025611813789075205305129514133433821977185930913706017331170889109757608926255021234179823775695998563769471560897345743060593095244673329181729077455168037415536285727485691722224370807565490314332491289909589591530689440188288346777989171881589562061005319057781198478593901500895338927363017246781452669676636718806633030989661997403405779125414474426795020694929536235212021494260314060081270578483726479055198417217143059889830519065234462656782076120131175793111045390645801958267165184963290549334720018554947744884728029690082570702738820285182219820461366157839228566990309119016623639648603270253636076325756027201046248361305558871075042677946009095566137024119085233967329835821382693095577887076735063531174816884816002663985694795485437360674788806445727092603135357668470109561996323798007000710661022818727100576501212585951251282002442679465271037323845124537499225528638815501968431579669085159814488810615679290702730399862202916599814109630389583846689556897382738340796591011261225078941215173938035404926095848960526122391849867570691616890717476593544651780342475476901730914101805468830427361515608375358893131455831647948693630117194822951437138008231954883403550148716025897950907149989582666771284965244772716569779649865599352678603228285016170245779547607387443780374881938107616733248303322084372151187441687561296202389399820361879553405083496323550773658577463226206529616528764045493853213136876367441709386904227481435826556653316173505986046479310542627495622039544590942337205267302839894845784140394382003978782971417301995494461839145718497741899477734155626541345079682649878284453978678399047482018983752333148029447969147012568824092163454768146854335458541490941736309316881517570718925360766086467618610448430177586990621087795367859484995891581301106017669401524007487176658174198324164496381234162711652287594296022775861625680377125356635806351423554503507589249815708132536962886463462599833703016099891156983968078382279155827960760351885608720116660249264821297496685308611680754874454605759827453882741597141233763468860342549898452929661419539722914930651194725238289490880668595763002873274617960607367999975687174803949615113969709743443341878606445226107704525896017923262883541488255150797703400177721554870129159438280444758783085026374885335829073734560294962808076475766397142353491737540946604531374083262508891818366558084561202345628261171909213240743941374218890786360437354671906354607714852674485215347096699712191700690528539464490055177242073335142387953153522656106656414991695902033709488107756221787265401030084455255571501084850759116142371656877862923599094646124506534419824483129527736286022922156357975024375764841011784965213518915766018250105162487766228646672417864245433479294361756836087999337846861987677415436193381690810093834217259454613984099049736092594037160937409053838031593489682981823959348247869677095249863549445426989038318663828622155843686171087911992029907788396089578006703858625625081959495488119691906349139377842772892759475300306640428078904554273748894518343298735736997180138585205594432242278900539319059060349219019421751380796834121211484932263625314611797456522319660617538728037623655942499300668590528302710641475389546258817828568215558026582280890758728356281722273041687873234000654745689497163233163360541322611033735844981994982574459227308090855074896916593827535399818969216531864256605745455664530310462550442576079944860202679174518024260808814933281082027322225777429675143619040983600032057899050524583804849768347758247505936961707386139336358901478918001346677261522599728674350647400471155773848043932212069253220762251406223315114017227662055102866588831594913711641045844743189363735765037729572330626980731238891083644071462191316709046403015461227492852779015811999768750361200649173541604441995411583133112392579431212038937262643584733225115781350804619795138957928299873399155485708485446452135976021315468319333036960179460864147649098888707159652773654192527117996135849545231734868094327829014180778108826717057125032723690498338529474687260160065048032857847351371768455517435888466390545206881201300871073276711169031918401398272452393382587015039033801717505753348831295631321499899181409735861790568489362272168226054416464822227585182019547022322583220948610178666180671695239184914909644596197379399739618271747217786101000903779759265342235369244629144362687258375661763513241966060799629665250021900395389306441489033883145414722625907480181519182517742359042798322489882985055557505637359275678720999752092717526292888940752584038331691160460900758476081211682166162233895519328000486909718483828263913353830105870600739535744041222982218920898379401503067270589892885026271588049603819155802352644497050096719278137996802825795195329388438626893427423493610450396232480451496014806799536941243086218340577363754598700860895343273039504068784830836779587348922483387320380034644191262904541909863673170605459531541720706224251477262880962707777600886077986206215220353529423826061149637634521057647085165510223913768828204787311282224889716192362984542231413051114101325073666023449569843454609469427380451480922605308746032394298142723874632821421625014102319745035114165042922268869172070391457623616038348211671428848950940015492290360140626118424536931897421907289550393050823210599135035476235425181828345330576928241894342254750288075179669470951408635893814496758285633846926940446904280259768297363590510501110698110275709121614365209144369971074050704203837732293731456390165547656787691885434633431510413474070088306626244405208267855332688262258872803295689132990136533668599143251905845006476076503736533646178868763592888790651966342887769791574337441000821319599939349187447049395981173131883093217365404809148748703189038892921828655380108340094610369756794498270556234903736311886127157506829514268991394830612162787243344844402789435509428397162829612304290581020469095695830704559810285024735112619866264966375889335757473886760171027579921544510286421951686363816863606620259098696659052045615235263444860691662337221094443523627275778284703266799157942946736055255360363240928234240668329722749342753561984226071275600759293479716686647788827564586485343510496792426369519173493731062203108878568125270429933527041968478954500997891412860966578385515034295675273840675738369061457198637352935586681208506179374811348339585126686182184806540435016630439717648331199699898599838363744091354349884608411589447344722232237525458043659139946903605349969226050048367284486884381497623638068091951286730078323601756457851545512115970945646927154120826809804518589068972562366934947291065037267811943783357637138277737386792420395405688753253104545018055686931857766875104982218768383631863182208361492835130645396210813926103088858069595937326359019442677501287791974618213897514540937519282974795776095948863948026689569045702605194869712754796451012069870886290606632676573775533947697389215434281779408688282609492641050893214090641296518174878203972747556437781655068924412479853925969197294750253739515368542736950975403546286379672100544183145335859819756248876959342499469549408356148886170201263840722602108362725380650702449625823714729000239177151552424077555246154693057702063057381127414685718975277579298029325267209067162976947848961556721779795039397652080059040952662646535449314095871883126932746030514209447524322071026706612133674562278131112809698046596048700805186709666131304579890724346702152371191658558295676069293267188330418490705719976144772697255621268087982343199421636278390481130255273470620405831576684750784243848594819935116872140818312677264193289271348215749882221966041977424493508767446913259862319031248944336666187985625273301928518337658546300304583606953593621711440953178784183739601342580453370072881699064805483283929372806725016749891870307517618484135817248671382470502514893932352971748392910550365858664708577201009860818609753401972562540789830247726281898350335805272080276829343030808451517207777883353581544338759305383176455858046632014058557401923326782614591452923369065936893322526696139111819582822364007265026421979231448100191694450996200091583140341786166038487048252186646989848199079187580239298066553121751163719104814358791740911788133081724184241728070467456380294165465612336633833533737742725753323298320044216680849032849522510906432547651908183228757059207927433970555170623125885494003397690759331765859196815885179504096051620508909862441224983559821768794318364935486484973597856969349798719714554196157939925763512912126340726364215917804076767408440953753805198520741311930428968681234593792855761916476857773685763967560221208812008084755684291673140866669258685665206170112833026587786515576538314376286180312730643106274107261767481330054367973918853800639882938136348264679909177800368893039427137517442340607749277745733301177721579242931245963915841377207435989414330699939055550046525013347853606467488007769716327955052017168858228308535491603235995462209884541055198221530420518408970762583031940793773680326673503851206857538868477584526735248481703026294066590624682754375750245449524217207452390876756970498891466044869543237262643495226356226122645367467965207019743759210375733652736885055746555562231572335121782237480587311288023227830422968376257576439736363248636395781699226296344638099786948473167241275967228924331555446749888706177283634068642859188581925436499253106679702991909320063897752058942008187935862662870138514410041384760563027221585389570710337032475536185924390160347502439838258647368033547400511406980053302512661475790890838040308948495831791863675536394947222056300292562844424604424288914327527217124121055287393755931376182383418450218529390632974810314365405904748290505797659877906435326361972983528444864039901778506163496705347864220416339750562146091780622520837948473730342765868500975856531662913798896682069880512478909679189006436661661860957937986587879416016611771683058891717570521954192617907084823033957425733741569592445644662451521245128948497716289301706982597468050147581233021779784133576819091461582044997677034763647367086613365882275470621643967822949063657558338038251030030945670781018311333502876230604106419028867723729077729616299248161687322455031541548186317778058252148351823006751405323380084991222393060481707749037999872583080512434407422418795696613470917341460162010355262021289726328825565833835763990554333155696749686099763252683367953953386230386000641157814314827884950430527234708037644974630563244409356384697393197328155513010530154624877952165689408227447294355502711548975414105060498362062184312288866455303600724554389361968314259592628110356193226361864246303958456430960285577490362819957241052310570131536045562077752766454729095488228526497788019283518677105770115117996295561141287956816649256900360667353133186816074724221300084392963152553766642657401567254600631902293558103273349218960449931511088314070678755103775675816799230322812821422201329816493568350481976934638629872519464317046490023940728168543983546569621086292928916930773655116034068357418507158882088492005542155230046274784927604730083344203221646499533004515585467144321030134452589283085365394580109382005894000189257544925265507258891668824314403042343143469310260228829377481198762985716265030358511366658727736222088023907201859732317546943850741396250050270228489409241859672161203649285757258026288328912943136045156334290451154387519167705096088030041180838135111036543151224379904331955782012784748906264472423491158913333439676968579803640663239203405077596506643101539080695970202930144515718070716753444747484106504844869732554308028751972818972004485213093904931392446780854307984673766563371730397866506835726198111221341788806425109839046024073696773211883086000041925919127875187345645926070597678095384203330631472312275224720399226724161983023367621024979052367176050856827170329903530185081107519769016301553699371779004345154372030980215880030334161130581543661088019545991638420576442145594054218781932965188892334986239432390251013195273650744017931845236582415402211557498655692288632785190070967114345576536839010524533502095796804805602300114214661387707901474566128674050896404831185691055399664294885458523233947912198308517325297936634401999090562200654065169156551548225864126715477272698025433090719167226106347654276972781427465866793397669953506174195691941856162896347352297569544769187301158981460928286676824892040933159437805309086193101755629906613801961272158113979039894438896018408322099896347335160094190660167133221506107449410579644609214631512450201425898347666699075511817273749829265137030575574409962559523724009977139186802596831308641257560050784182939977337785132822052675537235001761506575559308304312396019228520637512594628138571937527600674146813354615736060562353149535355194968981793452363340095732723812072864565903322684754467770326608302827780659875696093951703144959832948713092957248270600255948260699034405651564370110586406492109392284855331670716630843864427525914950040740941041256155477063064309937715598024407883575806738386290400048818614988526449378519807281295719262966318089527077835260827465871679578787812021328903412090226741141157672037333072774803124307250325938900588481811624594460273016637439476869903972967190524208201132901424913114490330071766104243061538475481015413863256277656240974851624276984148288356012254391133094481990706467577642558753867042388147275880361869260402834268905204704310162364811185096758300790412656948497275441098516002522687840109532467905068280205564840505117903652074883258589691070677278418418351454874843269890431778864918880373298744281108044295323114424511629385813815954156856909057660031170296875174116655419075906951070247361255544224971473810137713007257444047599638904620666680757955875003114003498325425788489225890761311170290453321459284799368263947587005056603859757751455779633236459640498190087917919703953338257223930243903864196189204799682387415463244337179234693873517004406787472390209620139977002357297576715299418688735545425868222798938584605007654173728473423767505576759579401078588107033572169400198843506018647013108801934489352387518666442475663083466592977786813191256550506718440364010817569696034990828739902087057818821289754889307296234192955702293351549025398053160721610542665256145707392075362585238868174770631652586216432757731522103392395287137201801893445732506223349587535351226724419560761876347909471187349853428032884490387985570833850707738433766870775944286251208927877678686768197146677248772538426608476678075675706736243560447851328840376540627581005929393625965610972260096318126378287662648131724911327980398010999763070080932998299532310909136654704825787530854849952343676133614580611363899899934788943568603969024701265807495641586454174988790441968394045202197217122922864375424296592716878831442125038905499195853054789788893792437385592233392958254417797391065749060682262862398854247006595193051330471102795164192902449821624885330440284770990069892530275108714620990397799011119452133997504020056372552925406590030659036687682398792691948972604275689134621717850807241545726029429132948742566196720871029079070772848393045733385843320669155300136635213117262046472188905241736209690095955141888566024896924375406978585211271463704373256211530252537836382646498696091735794354754413857072832651299211306610351089327319011527083950216053041183926262992407310231414346504542753029329748939871688381319098871308997413993735470525244360399252053200292600011513973042326820859710717029163809280978257368496079874488358597381281828313049454811974263441262780733297315836685971667487206257309774171187478531282987609435441283203029388473263886932479538498450184771654289521057268176722622294386003267719044632480614590109422706434125582900997263161707597720871154378921189038905180930560436963856316716836628078563748104286619934772501882665566560823839232457307166738250171978551947866634002597052079919883790555792408776166990655524624458524174750929085449920039879228658110033499969537485906729638073642217175611735783671243607883559435270305293491364370902292115998165811001220650023736436963116380047302946548247417801162146880661856561508739669336942711852569652296161108146568203058501722285932434018042674245322717178997534778320890611903499121200250269396206670224996822233483471895561328418480365104417725300135205633946139960808261008193058353538088358134370998450208816118022166838924934132444216878916432130719355412812810609848925376674527283043041115640559503784523795990021339894270398016175174883632134388008703800104022899553250750013581867736428167081934421519246175987868938976010911966521826479337362142389440865359032816094534447514388623787019965796307669467137678436282041520730610907143215535490420461070125470972736542211932340608246474724002279840868135657482750511118077488122337902387854054586134660719432039845975696247066941973145819633868005017158030788456824595717152014073181468347951302166719880719534561888973452393979996075865254010246842372947334189611563693754626191626348363609472000674787138259578424654956457238159638591017340857793899514352511167302882832080729515386103794297590178567528728119448334882427212782497972254441848563269875138312046961615344582070329385136255327405471101628364935227606826618034376836021244471848223347075386496535847116592282153262282666304842235422486960704356399646703110208727232243894806781273653406356847159862586341960469596465900788400034884664175389870962555350858730266267845662089067184080047725394274526612359790174972156923095012483748199764797665808128177674149706664634863371708799495992555288294437460569864359776376194883751570676127806160535488521900111016578188679208560088814104148641822270705189709827843196045448023494558179544346104772512106563195730382187271552857325297483542226869603026639081520069073031926349011739871333840139600890014850943677695478281146664171414159687597213585072878551547511740871261878033556004746555453837198113296636657492933696475160777300070770744929865656149309605227452017820147686348044100042151691704362276299959164435477657980821182099475768656675463432209117340290013111527984306026035835135790078687628520892578736051898547679279241188767103007490462401992884058501095931051084250720707843787328222179020251482686845691535600275722128848957287319063825897480585434542835090401828110444375153629968934852669863198665363884044377662276143159555113033487602067537747532465003719576406195048943764453624005453591298089274887424481686342289650076127433742791391384422884551207634704293300920725258806802384153922302513354079200190255444752955971090230681311798106588412565750093032588508892618253571683569563102985801485705598625419716183841556138197527004364186654937086374220718194201309965076988808104021018200988936379466946164057571763070239999123398823998849318534372119826551085977625232418478513760505089170004770609815772462691188849534898484544933761584926490711317220377493979649054888664302080314350503002003360849139143215161271566399249972013058022499943907163268801790071806116280018351183746863074958531859699383857641917590207926396648920323113392708653597777707397466361498116127131873527370645684536701825539725684872618372107664412881533468673325289747558256106861593212619484269995898782380135817418117155130855734926002800315791711257069567478220529215838224089211730179644115346479636561508806577874596036332531492267925652879940380942034120784786159219241833418080900726699923612428222857643297125740391004967756461935873488069925228726417367688397277569618855730870516395127604532317324887569938770118010261439630513964460784112354020737302853353745903868471158123691924040156428397721580250023851206181704915684959180955534619862528339968527227529394101061277381292941882568223729102283791489487617803845834249186524387737023826746087629204446913643612621214768517419799806585837025072436150621874956395649023441544130448835414416206497025226908960794996519798750898338415646970261229591890708018207307593256743928202632626709493799124835910878783400520436596372499515572131503691654335001644853266729707775024606453673351956490681490589590314727136403938376041031438331469919169252442706925327804938700168244840816482315125848555077862706942550265690106337865210117775372936119346983858588907717821903870409417658871194066896256063230975776421738761616171458003589451523394520132031830258579902278439795424662056622091660514494524058510857094101601269499620585942343422920267305568270713879606351220156947614853899284121512093221473931683345026161644940139707521873904140798843888371048810453536473244612014757061805461098007620688475091988824026653798648820653190455066656209360055931976110395299894723289747310033193676523387420951700327731927441706015910197123573761007339676387510144495656112741883887185386640412915887913869891210181556550984379318960979218229450919951654672467971748079569089567755126464163085054204122760346112908261717590145698531028148764623559466161107543275061143315481432559808295972896622689492681130220905658996883507831894013212886072317130088041698607113520344984081872070385142860681472337373602086586985661385220060496411327287239268724433553442230145722677381524670278167712612080403435116671894231305821971157841068770287466394187989189977997086468494326072959429756413074842290869258570350743552361058041409935310650030704050752989293851072579766677148144504266963576256551159395445680976771635336206243474100545093710703889918351929598042263078158695622449585071634000432759349730782651847320211655250985826220091666205700335640312516058309059863857968635818569623463623049906555511149541267951469617122420832050862161509487472875647392849203532707501554290250885843581895408292796498924559951479817395621855772702034210476805763409741362012446789697418573052855079907208208110511294734595643343154019393540488773662714092126063989050264904995455674911701309897449465453973029790522462455310849100888372501762688274225926699805078064859319651088877365914059216280299099546680905948737656553273465814220506651729533425045785709047271521434724261587055023954173364180743386546829895171964366397878277929107012471419396775143383993300415454094647685679286332990568580028466835207335408406243448192459552721756398134844534131119392462524565174472807381746960764346587168909471712514677521944966147966793790547555396720726591997538030432522012945752921653038486042436141811076118594560718684312032327145405430735336603680579142018626683324174619270194461172840479155999933843719944721056402442071677718652711742147486117169095836855992495702541442638755304491185546749931059313185697747666631088365741837152778263265644466801841159539862951121536528869864596715129599706147436179085262052008442000140561972150098444147920875515141130023029999810807783969089334192350120953967137953605300087881937757252184701765869294751105637976588545826481627173754594326534154137299307555312506996680293355262274265784410170364352478388636447240274137172239579878995808980336439826482760421737694820409882519447790900125273280191411670801771055747974807697164074982496536977896062113335576043710513204926869943776458910534523774738261195145615125615145468546813530473938594932377816605140878469831311694456964192932392182936491407307106920723681096248476869097482164302932251028835757825677424740249919749461298566427740279008157732411942214472845068456963501627919583581380922510551816148882161814414870566747193594821671422218471743712558994511297045603668088873444041298319174098800876393622952017011458272728030107637994811363316811398759088837110834453392484675580775402754649230478220086819597896572677192347991023008681525696009087290398298531479735945595487228090783509528049038860134319957611402317774961768728940558297221291622987176765313137059333342182198378061099583546276564088770925055434989537077870288213229968614963160920360457935850378774326737530981499752051492555883618618824438631569657079938796070796620486495621235847080042188983786811483260224009356472324084282307431394831922978758503348467100646097002490825154674216896400404771204041243629744286703569298055028227772610192745769695198291958744438936559474177846691010851343503879164755215968998061132723704698109410960029618913296962981963227296442924322593309651426837124738652667417792149904415992679865913710988350919747511579020664126783633695456100760392784896263723678960391804299798569330989032128891527972762540299670796183290255816831067758995637679605371671364787946514034949908820690233143933360142499052912787792115096493965459497363852668372999250973335159502506034007944944114815438358105292325088705298148798584816908848593042310753091122976036303223369348151974939935519251683842312749400960407861303039202647240116330884121886946314521065043665080109337474536356726546584815448029932461243881862440423924670186460572934246636428937964520505883990464683662764077698469846876751059052800143938246598596462032282596960363233933568216118051948844810553030401974380440799291033203435690645699049051979606460716967906064291402344604362326148068373683052858415259444826731309017912149873444977852947767501163026273241661422491330932014023614545813530251105761073246080738114224303163940000593943620476793411539162881744424715419659749663706339584535876815834387667564265529637021755928235614440443766192103034412743350912094431807336976525215265668554582235772884649946163064474879271566588419071076843458388758191534012457376517446141047027615212616874990266793481562115520171295916412091092916240005609432234586105479479157995122540552458951784611938299085981606125829803772216220475180246093673985697796193689931213009410372797675254429744451896943948353480718300111917401836242475838143173313409767525096561912843484173665413306896051842876217796980665571024578634256288692046118414584292618111479136205149851630021583503654370287938119843040402057112291301066179337206904363083415202667531691121180942753967935534255493910563425467276158353895499448915545693657663898590943320150921505219801818031534872000036302305950564003393459146321081006403180475651164215032328372125658004948382917708685953995253979917262032562608696129261846259705891929380847995946456500089189419725287799987610465332390614866349138082682866534828595467944287598630846654880903641926542810017565609892724594838498442267538606608347032566948168293209153602666621035890442406778470900290269748941710084194035494720969665485200174337349667727170036969415111635591741047504727824205364077918715338160732422100429019598629018528151146606053087845418605413537400825167127981201503686523799022770269041648340175319788949657500009662287987743855911113461909992629906500038569646564606074971771993029702986772660601223096774934827759566387532723627336511040873377981694511768005376105602205942907653517516190317653466232917685287037533475271686406615770684203054041136324133448081092849303261500854111912345487867707329687834237057098214875128332307168354476149361227427594780304778606596033110517905770361031625435983963103782812992228734366490868350052973629035927053982178475357309738850114769840588984466691144987684843341512359463981175035855905547572414971950159645162523383461532821928907489996583277551786244388697768036051102624310466292226855014807307703210046165438118337760920738556019415184631617913689003262780022853814109773255246282191919738599087940344641670643979398141066278067024297606295165739689572918475269321381141592339907415823906073570276559920403991326605014240875616616595852754009748889020362454913217343020189250123220244481590477977042815997211216078743366684082391264894433952452463338516535862456194232786956990088535919450110990446733748304011697274665954097375811698536756980146966557777217767117091895154400688917475323202498821653660684773271949964512935812953241443685033059728366749303728309331296154853255230415017213325131998192806688288934319755761163575929896111487051063979918407026258526206669804085483717731180188516485486902687340600521499501752701064360119573252994732364795403296925910860499195829138133746057716656003058189863613864560533222900342864297934132997982440152017673313247607438075129421076744430082025888124006478771454760299800918614034108151560024050881548250427043357980773245525189991909913099806524665451343108921231908541586663439301191274299301518022377584875478986375449085991750356533972368224382403004930020162100583806442417194460443271298051056198549871178113524638473361043114441682232036219602569073514225958644925674175897836600344578393500920715571804552268673258084789605100132741265125268747280743782245834501635815698987568569464724868690865867525270014037808650468981140779060016981595767977141731040546182191601493377347598521657352749340709412483179556870510069476751501416116615397015570720810081574530742965460702053929382401620632403287173110572390214546872222286370885620540753934377973231061272420336902378091591813859310340648838788941684010541567369452705071848535524051864694308153893382531250386070992797649049426264495470282026427662760952859126005032858375709821539561497686757887247936193208453507597527862267941960733310143811848012567710074123451932591459125512660172511871343002191678277457721265973489113202259077529794083870926910063265617861855041951497844082080194667697754593233783709908712688666666846699440252916836238691039487966091637637071382567737010238412704693921710361669883073183653833968199752765247390531656947109658002317689777908074056777109888695891108274365603832044662058285187211763362377176680744366361679021329425942917891499177737751852929596394787646433105607821842346580377983644705337736526616532085944221939311642893359574222125800350809118716170085131959209805233084479072228113164667560712588275845510020254435802427288903998467321409495797668802814142407063501408464408963778517841541899420962990465223314006689990120379775373462284815195826048025397146673144197627730713551737665037521705339204081640234936281874156830170218844179931878157187838647299217405493494039360453189917174325592913921161204114764020464300755112491938975879455618395596117494004488577776275083013355728615451767103032382932002484459806660529861562195006648509247425452708156381470683622823444647778694707087228134973376393166735370236227066445446882145853591278259894555034409192842933867011924320065028926210928384472870887166945344634798182540747859085844017865473924064502882494607293288663351441811823596037153682464922149678901867987774915031581676831290114343563401539135534823327072979624692658289128719391734435969266229204534050043736837622317694264195732967175742001759097553231756336860907120881760842890474652912598397096913775871302348560116161573726324655472345878701761938006364552447704535273878376386094701312269547112454933652050528741743398649352530648685225832444239344234464442078910256867126017951641461322013400846589561407373683834636375575736483342743827024264189266624023696420828604563946177900043250094665919947736956846072035437204357493644527089011149808908530243053988343322968107529213250156632878206825109562348737916184730740064602505036182468281386699635657025545661011300516235525613693642781269068442192843585851826544863060746926732234831018774222654749585798936616981433193567386423600958169443112358263056690464369254242597416430985214360756553798310840176552972089751902228705999563631223819988891074916884992140095613675418696345780996347018632259192055441778964465971095819502664166671590264295154744123592491611344759865018305578583603115472386232639768598270320066000850892997764034274553861564464781095040703045569611940837459911051636140983788970385304685841560746438800269091406432170049148179025665521920771733402896324124243299792147465186982637532281844300436953977925503705745853645643996859949247808937720563060452240412214959563016899560127229893833981925441760046090180744070605779445749350683157694976224635402351884274487263349907738781892470296501716249624156141059177775771367097311140895960706622944503062732913256321303176031732731170934405301317509582200263939721425476478186592983495428613936170883344397157018121953953588106228576115429165845020370683033676127746788078751862004117785561712583931164042461094385410386734918487454347890377816099312345549242708830134182105923642989559572443442684720533687626714445760535698321070959431109560816808095684394359326208181924966615259561704182447201690472994256669730160189936405590142688474733179722991212164655618363726764428427138486675544875966958289858511672747403297068410594254235409627574002342041855841658148191392745284423896958334368499331027835904595688449959929185423923285917710678920147665845755127331852647288437023896802707579911391032061567730943549784719424696874791887315496004504434449881129605370932612079627996297291521854542713884483747207938859646387014777923969266822261409378055941014205686149311219899235752599075135399185887026541653979505331245135766351204267474787574171838677646459692711364754175819112903636656163396354665454196767767569739916769265198753660360742618893952371883201882447117588459175294736300549966563173058297542996309714098991732788217933630960929098046912790476384470516231404132276456665093544771716991984767401448577152823365823357820963538022584716193824895612695047193039245272169321613311019893653543709609996682145507125713930637391869877681566914639282736963316904772332849771012675667637721251341149621768988478526647898173014682003345003325943886273525622740628792520224652800754342349517876974047673897577333759572720283259762185862246350837275175672485017368673233620141310994361970638227345593718673307789154183722183043171729440256798402780949202878126293691073154733928540825000838946557735055273648046297594777559779726156279131966003269783187652201706764654393471396348220422224858255864421361375476142782987351801059217037470693491944700237573859141712686324657404208720464992383453256062413149100130736782684995768280316078917315993812401467555116340211307082762812229989195677168430823131932546242875987952137176612233905696538855057817573998540576405732037447728303104171932180481472143857486187990128070770567639506491438623893894566296452934890302510873959801283245467006127178297532710982209057416522329968264779079106656346482911746086413497851405619511580639079472883624446783412691863392581699758907108142109997812744803667098124531199263133225449387663674457017634141870044763771872136236708605730306844602450210948132925851909267544462298204797645138425492914060210895919218259103201373254337332540095360685937880825743737522041218808386236824715431387172738373894031011454596920714402262556038627527267034757861881814424846494768826119954508425796474719489132838214526481189589887714422957880952806383203645182835015101821488177585187603624161149683470611760019910177340196121993257764547016894796231378249503204916620559246929943790942806092525851810390205207245737271675830998711391862006744183956243423879525367446644200456032478768368762132243879807348584959483859314033449267056952375252568666297575549236134074345145296945335416161369971923523715785390446776152754338589912490712964872068833951597859553170580315359778786814235274171850693612224697443726907424510747841541764659525948098648907429632334225699176008497365198036907505042000033609498261131600512624087566692369105932926887999239207835814832324005837281586661843630861067026528100157075308389478311026913627506543326421318890452617945367825653702584849963128058140251037656406649787154455677289270330197747664642677735873552182658347702329284396266314754970050161862818683565928519115408674867548721385022311165015573170113543358967628802176601691610449920502898799884354146187827250726872456628720487533087975393261232413334897645563977616420596752580219340937618715585665661452259020579089996738272450511140003779797254283952857007618186555272294522597117587967115890954024672289139770443802248209581994860968400913760147002251498673859075235395245886663720735212482577106483533883208093224461678942792261035380264870674977877743594042095508802559685686845908300340770489526779142029080944559203779419780687188533462642851654484468476544583668893313700213657013221773278295828828914446589147600314854410117260714201078580337618096342412852822635419714897612148533732725428770042539642587802156646138376348903216983087778560581177993551526448594668193087127502475738090693314230939243875327713643740802149564718973278357111940824542833657851615044817623479354969130219868666689438663883659444865437638382183821385124817879131093232968982921941800175695957412081008503308616921904036099085332579043000059691613875451422157288458773041973915724350073279982710029023169420565368963803727307587453223225762836930678351153374762924142741638192393843500895406300398848551517791542604331318981492719265496308918868255058001183644080966874247173005301779193729728171439017270584470386377002822498853218154646596182851616949437954452652546765076794567107176430037192210432321534498590848629957801845555383034661243594405498600672609254495271703839504339228971146632940298390757317902168034170316946349016415413948327698459785625213270014781909790441865900317620731366641680694676502112226755241924619339230955744823667978646210821229243387040818205220558736609329577445242889916263418840480809785188101086992022118399011890249592304994325232790426175141367247524425177299157602654195509596019624457951219987173585215448112525407849043538260182401299607485505653342097423188983547959225133044601293145700289037187329672904016157123538798889611832299302592732313858919071433374370437181700725531358589104197657058825248937218572630796837991510636207929333510803034666005055150269085289985501318909283052804699857530021068474413567528441378265510615474949428108845159529089649274205869990851784193388928875329134199707128082274039006006886234016661583826049794308950344064188515701359346236933725949799163835654373499350393183780412998586952071673308222436272707952261374651358908390934663314667485514276628457593232626413487648706348125320738293904584084350671883392662494365477716935815311111940809349198202333939988270115554772421943256211362944734802258116269022937628111151986318114209213110638513931573692513828091762468444636528858692527234476408438088744588147058386608666296863630074836003849586226085222050374575136914706864733575771262319464916045105340638942498149545974551263381187515969021642370702426532415602581370929151895736608994528194055667708439622987710660766259685660041958827784606603427230543160446654253665327812879992001729905447544603646695496935059773032129589530316101243086374581233477326309165546732947442731201765881983925381138166148108464738884493666746744185918046809505638173361214668193333432934909693333456144097923730996545185595766670566265604601278816260869852670277198682412522671904288558468920743063654119959063639302540871081556110292383014154318953443286792451928344204569499974323500807353816562178906592172351453073931214405932549493125337805582095876739643609745347592262477989040348834242436302659952884689926924271236547505722839213235556996659382733842445454100501593238509518219575384959650261821026558858819978905403422464754580286763159123034937103642276320282104449071724637006895335681884592812733185637933040871325627591192757190298979779966227755065856052337941521942799702227940533234122671056484913204788622062470456932824552780709779919052427640312465131539144781381997374582699705799565323673509110071877175895264160021814380350230455819719874947533112338729711206821238154185341114629438266498034609522782349676473084633595689977441277813037626178946368697194584692292648291230007146264837440049797685279287729261053398770139782484147473858849616839343768361974036553728072104401286738768291860146124758564285259064097415313685503087172262545171476635389334635871462700579217438374162039969980638065493256866205161350059631313575760750302730486674132482760083135933414295256615920587610933843886198832934413809017295416327422732676013453223053035152992972923590846394820776438297802541382147360957405891972930794777709672377498967381109085703282044880898160328165600188010319882063071845574008994544424018241843214048911172597585852390442552020661335064433444761582589791029034046354272312330391050446179076934127516543225477402062349905096916977527686806937083885566559868968635378531146658636149774606467050743734927632753069515972863046393065352840668897577424252450054029545947953541074547460905615344543910100076015008060474364512814370910596669127735547166355994031175908553158773897061968410314962985132524511315420732214699376056295375578680389113833710471095204495350175082850507660936406824049473543284739346068497211779923186065118385242409072807569551801018362594659544254933728696415891603261406355461392546148700458873161241488917988491358725347845630811245911600112960229431590367541318335587416690088698472877992291089530998063628748335115010937065508631260208782292861124151525000373187274790300577993584007721229598591825962989949116718570965078536866413806627890649840958149825871073301771292819571777817537895108637331891255400363193832390029748634635921643665674657124447871425012868230571840818322318289733935440994678833407036209553644719679251554567895683336086106925934209417394418422138664418918122717530485765568230446167402624652072479285769818399158990157495469121655440583458766219770396209527620776100283454352499229143737805914273716929942322525470571335888379646849034900256259620816838262334546009788019396410192054848741489617115478149701934731693380742750556858496715688411387121220812903880368790143915941071166567779342510092724075203338094320691669598993393433526243416927211528950422543877886958473997860705958224965869783938551589293570972329139088612074531713795990337792207400966520635656807626165455076288158387810706750399820554683271295851248362182729174611711409385999322469961614226918244011935968550193008660372982569388647430219929804383519364879709421565060787526736557444725080366587858684226445491143381080648614687915567092056472200667778349506496320880540313000425502680181121750284756229722225478571758033758901599577644702715098617582734195262021983553025657085009311668009713716868635928112390287099356540814106799608990652540942095613334642752713764528722345616776417829266984448352627669793875169293689212423744964463629345002604476594936390061862537182127671244017309646283241687555711089996578458069518561334982788920184487215270991273445332197904602325119227065769571751629966075143033241783730517033008531372986120904944463299025269737795374921330913484454330115845715811747813249797582833809571704550029897778231869456335821053389441001833471076896871865058980538928093672942255838880171647885982863735909954180553055567470322405050239559834462066891706776106833088971264010673078701027850880664642453018478312848806362331844916123610922625220596017248820771900121702406019816879877343619406686313428872734559700173487770928957185867479617100834311880907567976047231880751469182795752772323443169837466352207532769318125948811958709294485635850805647749769217964914323044245133159504661593068243183956396621291518710721884049772868542528732559184602414679610761831393271953368343713275942725662276977211196555119379674664748632811617554832360460140329236777420219651637211244711986712901268537881036476547973065006250366835792031709882855152343999668466456371933839480235270360463136441282428522788672011197784285906466374585479776754470405412068334578188763859994826692851607274575553448135633193796863893318581281472059116935463869694617938163703035375310529587636807195565750577120358366553504673102118494463567990055886170835702006484624218707156656380095431878107624837749028256543541650207266404208143643731570321999991821693326509564994475204633675392518937530703734131848321265410829543495351269320074168537777118323268877329779649504192581456608245472465011982150088617491110690557841076799404668164410786562258310205442953516034590019741555277758186928221663182618756792614551305279923939478032088194919830619574442420014827013740676302844933728770179687796863185276347666414042453464379932459986569023029877458030601746952843735416289152847718910499691926572025925036867583265344901883590295057724563613485935531523516648701820323311159776359154758790445324696269839237149577814774235252997033934292547414570033632727337080087613879854078854053341524308287225192241484307509759957983908310687442253477698293418058731123512513366528562223528297570761475569702105659785909880837297132175079215412744107333649125079638711673536326198409352544103094514481662616548805032939307381516052151700305561198350469539962493897334924696276199278932874069770960272348883369297735546551911107247577045612951165767504430999373011429636069306044021071240811580820741429090484106289199370745874309465320179213302366183592391739277251818505042080212220812076509820108226054826187634076641811640946853086629575249536869326839603347541711682142615970882447270378770725285053454932553854611097402409213118566529998335079479084093482006007972637692766942907563612762027060811690682180877887737823908397454943399853116961098644105090000873054698533377663247566863869944530161422660127921076179216868462833224748024251941841012948964836519035188034553531194975784015019375822202401369369927923696451706428370276867562149587426329498046669757466930902501719038121230437776975389930474908041508336803845560771200037220730623139274874697532413804724085311177760553260977129463967958670454999993359417766454596214244869609187157679564966297843250133101325426595276442232079570412165024985112676400082788212315883295763189976203075718756490510871567594063483579835862715539020061269149397881953899650434775310787772216532536756318226158359089488368511976378541194517825968160789081793200358386420595652919970039194264024441484593551048346659675800569604167396165762341942861348755930941379107977372861710116551985812792359634222443772954116473777783499944134525017701581956964430451255760944086644986199291603097863242823537788331756614014160824640274215073932980454896958001023798268372329712600819719304634705342647353172106481089358093064736764530464187894077634674616937362488236833470633592400794443348880501207854967585522008138898852746346221677881001646495877404467268886778374414957919207742277275041315755700154535791226063423949001478580477158141048954734162653659564836262657837911279694788765569378162143794563790233381960217381605727775431783313942189522153039721047798434636750066998041586035838205179387776162342169268926276968346294646353928925315570563073725564970642577084240377610747580694455562266087928722396281021501671439038203605276501769624171684290335369113786675632310577191741689580179713186430480982579387892302759045074042366992031080934073923567475038998132327824410924736874806178387142369671945351795090981189960343527983123312611101438493202081129818492687189021148870163346067455694111959327611454179457990436873829725581871873965771990128636509314077782302907998796876610926365623738002119472089172895069387788282637278791330849798364364423204671179405528819558166732423304777321295065270607662003255859721768481086463323885501690325586542365414428014524763538118231274171051657935680111258453863295483516543407368712988316961900677848061650015321728486948222035507957956562584103916571100228057713420974524925495215702158195367991100018414647964829424859911669718445160481520707856956897552914271445445994784911526826404950991364053033346610936201098670053334553258121910836572106869626714834625471191770886123716232560502453704436500254523785017800883137891449583363848299866883853854148061706255180556581754185484382688194046047373347865443536723447404373395811203551227295633141220527460422462055023682894143043583715393378877554031045790296361612321412819023448132604045597947668392062017238216220995897808874755357836995272745367876646170247991991809197935614378879724077813122026539664543662619337700821002859357872847148833543510953457198379277459902858665177685871044090862502933757875827681508561293435816401249563049341752935238317193269634058908346232113818061847540207234850399545540448431703010004044401622640684837438239623708002370050071938528213330280944079520377932529328319638133245044582170038297568101435744870292550127945655141782178588260124218934430423227255820732299046721835360329716821114152485674987193178735271415211383258967810773112486040456166043531351901071803857167135161751064979638617184374762614034002452220405720956327275102081102401221367324096359155702720907787877245100125482566035239088857891458067976536461758509034538041787173359375592188694146004844706308221006813961950593503379543198637225429754486687669605423439058839461768436473179171936156776150753838603766830945273666125815398199247623898027541589134360331259568670781466749394685861771676627856434831630435874803160726121489502272246454413104078775398595395768304422513209097159989810404669912313188796407400410114934092361666290430545042525567491768717899331745224646972123060774416734329939039712406361462675054919613154480673269002368062821280032363926870186242285290560526806647363935438143172411451996207517366050446881295190876319315370593530424492779845625520248691754690885822743081985379778736754342364410032294782843540688031720216057367617454782962591559968002088192966679176841652892529238306691858559285438544441433450269685350504357188842685201315158106035235754480663828701292583871061279271987240361360606883499970809271991118837875030887292056679093880819011985862550662837618066875626802019544752497766148090369421567814391727666357288103045210301585499977306533801366454807378710193333865953065367031338724269189944384161328892958069146923900388729432265569992492842009954216861416527357924490553583279877741301943219084934851345370581638630171863933166964212525610012156245649238279697519343359015155384758413719292591892512021807725588023039134350327891639022326960510637244875183757759247695967752735885926692581467203620882894540125146926428419524339513902472134751713782660001387000558921205247149636902793571504693097089730333893034308956209713467240872850374604341603255857897601373426205953494357595215655218868409832643812642986096881595287554924688918011141823052700972213627576017509302696353476808906175952951651159828624751913466610143818398089060147141700991477738926236264428787671454883832146264288191603644051708129179167255513047372350152812433190141366849492963194368958577277785679198650562639889140636716140338804153653802456823741658611464009826884759585518881489228550074115232894674832339363705780900420268857570785641472780801357436354500995487257143111646468822243979533781693278957305901471894333024595653447460001265402679207641986716729113410338858265825162658518966904333097406541340369148945860890422733984105070341864514397411209109451749334018882938696918998390691150111031045286226957672370951534268826902947147504162232006395283793486934776519051191969628745140289301470113852232741205560202493269031478508680086195149493365982754582312035582337288079745019808592698534694414117212117706631176073418218825826563710286507664282248077493514487352165077064680831323659791140118511760900810412351105875154811705502552762853648636469641720392544859838688160117817255745870963771614824543515987309007683552444287296052916660652916431409736102698362101340106718897274898271468717427884390954039193019620227848465379463147140762088096845060329183134402017400101712973678746024394042652690549254039446779867723465150438721148115006752754518757222635617105479311708289504583245825568355937240766141488272563559894914542452884573765773614060962271380163045978516912205545345950225981866772688216145326247641608131299201113452390408540551307571790308322835998789283034536588733079013888119576287100473307530949215326028074678741222515908242181896537823290436320232016818416726990667686065127240817232011185360663849837553172047760068784170534455943287772078712603919908778705052696644090169334437499143916878048469562416783671121199422309090631947770274268625960471864421044952645577051157985721326733449134293967184250563608705040449741603377131960595028822338912998826999514242248772491868899989183892033330725659425419487922762884379004910829536600780769335470938234672837454556298517227522259271112882156504922052896714001486831053800233878483068229281000190901371414900125597635171942384400989751727016670642821924403459475232719831085620053330920500497138185610621950828858684827547784493214158909247623121424222824924173657109029061134868453796617052208529773769022736473210915018491645887576096672853996918570096300513158494351102470934324564080630757891330966080275597359705479009227798205493855694964565445560919739149144866784337904593812267338757427468339873030030429377739230897304326006798582721260123070062723083549029535020054213279958977726747019150823107477305734938625845765002095108400902783534969088311721067442818820419379837592886023252666182840407514654118355814432336789752434163610463772512852597139870999783162842623594034282946584709002397896309349581749232752241408804338521669535545864015556638022519718044011591958034628984705353932997065021847668223690769442921583878538393691134814816129139146381228926756311823385125226207666881935471392077429540936408494878309352520219732332113660881327455950168361126611649367072760141902784905993403455851815032905314838339735353759487172162245522624814090655938200220074805061716985557811612059271257873488131134850428779608793995592972853140087351984670630042706155087211358982778206565565694361391283575030929298996223850927016933032825892081518889156906501335756541773955239656750804924953947689333028722506630990005717474402848349706859405876427026401847167243816361229661983589813645654747542027930896999185486595344618386485890226606535996359429038307490878602028719642170740502667303661667620868321525117960685776669180459921825341956904630556064216539509610625982530676031888229869665405058202657502185463768067054086537646517325441290829214298237300855959515917692615913222428844969473267938400847692834988318448866590655191180594262121141656868520519118312328515626228694608190724627427539725206851503231109748066310178571073611105445654194892689159090396587814116902503613008178450238392261310977720446898776212213163033734008313286454896064869994098514899559034855575241924526619732561241133150432653082659497580151969264151387405157675808068997332207284504909098028022030273261372519446211237201771839311279639470018753913968875713431853049289699598723730132289963836442878720517514359522117886100142433021519157395036289225183386128881689070037857968107265011190251210817125179187821184577716523527454261929056149730584393007657346570433643554299540313844508144433006230202074105583432860964007885607466500364383396085542763568793451372619436942124249230014829100781214328863389957403988772026839139576961883515453404210879987476521432957685803583300021393519389681687253136891494958111054280959189889538148542405689097251736169682184921053213389502238868501857983449564401149376066996408043615497189120018217250167924624437281632797363300677435276661327938056814384418740887377720473608151441565871477410190246398586882912594175520155652914559219052907315705182030804599721284804267454872313298150840883950556448861512561994989021702662890237909318481809635468764345077250125583377940081660912438391129114405522202448098755684146508795271347095581273058725322846073757713094621632965408619309909996347633764007921631422238621463142994250674972056429072756256450205162508574704407239271724067838530192184344009755575576949666715417928084952030721734368507050428753130768472227825682103060109763190266574865488196997795537322726887048767905729209573106956320219961362335792889297534225138087695272883906149054317706288658501476619477681523945958369431190896772548349608638079327856726775707010608916801125348534700117789183244182460154900200276685483139909137894227176780867576197515991901676376726908929062605533126501581231466357243497057557500235470519589497267550300379624512937367065649745222797694204434831903363530512346158786251733583658672243369202911756363630291547727958905438503611240766563205700743244219299756021884057990723585450911611693900047599196565889851065381794764448217722243621128322417395281766698776474320630808387148279069514998833305211387429315093449282923352226152871381761686125836173459665487991691563050310579400491869419284156525945665359413602843309403300108093182894788602791000255912687209281332287694382056506385296778334019946065653145503191354735017362754671508025940558987693808237805570234324392608997345274457667733099582785195458834547703620875603935801148832997009969007727380880059515147647122879318250454938077820496947844184269729169744200389869027346466560442845491551247735832171131367174581657202035106088915336998593429434026110666352063953099588839476272503523510183526884144843841076448889013440150403745362941827816964437154336217424857442551895120752532497372371924334237031197643549455489297491550389405775233057508333413041094589558318289860968495119529174789344132451160123878687413180689905419925690547287557203054821146340417639742405657567010924395726633736776474214951922118941968428964819965880053704148567125577176534220390214744130476978962477628800288154159232726941659333714525869291658654635940051752005106250791303098336592663913179170728343252020231953301911120683447516722895154454210953712772149558877398581296550863880218457266077172300628099075767903551463449896976141430146818543612814489503608451540004322373683250295126975165469239298474309636437540131011110447839884387843532721247462596702290529732438118351748278064324909476873721348999499475430815674978670160021466887378413985483246526658551663780754542959897641639455468113423775607726676305691268781879156247669662408996339631007380010474056791416555015555247685467543196496287131017831082508438604578331254855394290475070566057071058834246216709016044462084961296941213145538225206959372351896829108422216170681263827721969829804362338829099417864339787380216074897890013298278086642445019947879234362707259793443123631521926416948828093210267901762357886450890407693852852117069088474083360935902516067900090551240493368575956886237570792379329858373998460243286976748869220472372350089649901268521803783024560429271482401474707310678955549889042920419960958473421618559510250044100450252293171968770819704980071799705552067104865106142854476792010035590663316397573682719775170691769065256354651858421321186838339894970081561231199462936696338935079206327394748395181523181901019266683758247151242070254993373905862354777796277543488137518582030664616600915598167223597501202204847452740897599902776547520509057339829022363100514292298167353741268482694415406616448170197165862844102914263094294068657205838100021332153501340765222461080438926317996540505536560410455184251048879642822034837867470412995275364309299486875583036090145533016694863028455189250132406820088907680847800434658246538099361432825609394916313319594726030993960038991415905172688532700313838054446233495217928510776565397501348114781259623134657552389172398425820846127908403623523616400717053603920909944963549051482327707065532725819867875226607904937610785469569234035967468936361247751257373637786875882832062928963336593277618852400410883824986253289749541484984921854874712834638164980821320872611614157802829243556445238405043087024102493611726028042191208613321800226139200481420022513186146546024430711588485076391051452598833845795448215231885251436434891362005627922639988879135292338212158168316495335714557992987838332285918515429408575383800457640687583086569120476892276998995381606520431142012998285067164097223145751172582231350389707780517914061464633791391082846219577698472183777662525971875176459320041064827039594357738808518424678595821692253533310630377240188394416768529366525320704594294414445314602921483199272415774577019903573283866762798432874508847942058581604997256971481946534183602937717915656501877088588617675276684512539926348043103577338293833019085211469774724761097819001456360771974664503710639318631396807335141383628112277039426197484118129829673320622288080724373403504993017938332258756165026003039926501674057951355065458363546473404729538536617916710529941194379282761371417682927680381945376927032481009020490659823574043157654707069709542317954179548377455409320082178174635518019375274211970778937209641085454429169091145175744667785443285304594149415405153607011408195124921917409364766225635369191744521833824382096112692550449033937878824651868301880245104526764054253590106983406094632889397381696466045529381254013735627882076767955467324304522504161627941863184339618598436696857678481026856969794591226474586224321395026401184388857347480285841939856382199232465490895658912536731710315667581608630708236320494579868707661955761719178096912503638825095283447567406716541402481263452466273856159790047179068319923613533463396329511471411137760913747259278557965483284572909854347425587683322958792893163857200980352163515381861598285625950399257103440480853661167446772381973882280977455563404696291376782863311793833911860780387651585577250610659115079619551277960082229813331358849166970490123469616608991535572826728805605257747958891080541275655133108266423557212433493749290011657495669084829811311129790592959176382986675689239129773280734930261038604260798525821084115110265266699118137132922289462384298397885887985574710067520592558893874526467542178304105623310111688108252309130126126867209200590886147089062496162146715028547332258301199856526865644609530837919412513982744444723751996040368317360037231857118220326380955114298010964747876840424066365193948545482773647663550589279665496607953584398325071777151447184249887735883054348597838544669598363943599067493948389110695808671465448795302884581126265151508258594730749204104196876402064023356917495315009988087062483112592364649994566874769623096348454726378180773021450724288577490590141671146295113467243589381038086313287271564596300442595992469810875162498341552430907602436754509025778261678617315921487584540243870720906822972513976372605614339105622957393031623497952737201494183190158077322670567925753834615062879869970418572574676696479817132947500584372652369205235357488243412280075143250983475417989482202901126784676482833153462811558787404139856901733323103239670442405229286613002010395071821346318759022183284470693371855051990189131847940317946171869238593061872886620604065117283659522926516264037468193308237811086973643462566093430858308290619499503685350090985981069163963152111971044943946720113773019511348517104179263787236780124411089120906334091518444505985376620195502405848929080181096546266757571423576831553000455349915808569508937025042054718634999334325051760740703055708976220188150612707789091257547651830478462780500581560887259086170231602279656298410263753554822375246110173080723136777466780350195614311400660130360748767156091052044433223364087793581584809652445979745152512304556941892800778197466835301208634149925255553275676098171442222978454703530790232306032213000481696735515437300973968665183819467032078489661153303918646988118794653143614230782053245237624885880290232251063955737876381285368382329583307850150649495186655034165621857579488884823500843499785489796056213369948334639610303117790958262238543419184590310412334371329767940611065867495772735082103261025447109800005121839147517319903741958640728720074587593192927781108054766154789071887091762616744406615761370065465427064648033951297125870890551274692784365750868666608957907873681797903934542775163310631370736300875235207644705772541200844813753985766082204168418371642480678397611639598665459776450875031086861775234060412755674164415981164776629508843454469172233887654409493746171146317728631709684259904440265231587467158655763171140262369318885819918429185047332332786904405690185756362399073247609372267195921848238848813478655913483113976234190175701990423972574721406633187182471775534440839051617327890541002597375985304625938675908792220067208144676655779740397331777571002386562494507868114946324079916605094572183757191849927987640393353374538092792534795717661203947858513962287280627801293429788731327778339405501502207957718964624800133296097078219509530168337306013054906759995607654804694952043966254968038623832239933944786477626766275705097954354127177798486699816773629111486951517862131014372890981401013766223372799378282636106905714407574323500240560478833834048671257246661129003316188136449537406053418473166898052925953555896315241479738656730320931546698753326999914631875844036248123341440673776959184088606779056729752382783730485872840521614211044356021358445625570033824674318769076059609165202604260835991874153036474331889101495518976310488092123187813029344974752440290026190530916512867924771089156468187676326861309165075130471253313674409742766901242544654099150281015018158999832087168081513680491941356502286756135333640550683417630275578636274467203149429669383252720751061215805818968233758973243804664170146969093089304613169390645168245807903858414412300516060141074963548983493188294706536137227174852373550307969418105808034512647527922777332744239013080579336289658160304607175105189032063689206104890120469971741839858453613985331170754001830060988938229463025205865093934871913269835887772348494637044323517746740609181803228188606980909494743618985902759499596662425577036750405166641846126374133448332826122854068983780683682183347343569601644866914661854459208199269496664114963196848045397282201567142987937439374905508583690456946706620035753670026618233551169700160649102821904821218917958042570145797550149937330700007983476137462127040806280914843158443429963826333615846735286029418032005139434541643185577361259009578875183185010077208925236329781183142202319225310313865274880798515637453689758145302341496093435648716505605799345732110085860885304505337088710831131767595206955113055841432802911206675258749136905644326532731344826473613433078646107875568495973196939504350577550820212253514089107084347864340395174154307390797392995523456394420474361034778990213383787003410516123477936380759657376770119267438537922496579446773094936034789810981711440087960831913858518630386996042294497003100921621899202825350877114769271885948102916263913158364561869094442242207770991063948275750377196666910230988214006869011403144395773090658052900362910684455619029563430185308134352930550613944976251391078479412250974463733994861673135163389728897577590670586924969280821757460442032657019066297999567880641813691568082072609647314158656279215980174785431115414439596448541433809957186997324359850521536066905121322158748657214656242136040311011504930217874360725041582375572245087960378559206571004632587809872027588592165758923772642214081424372023896204246467482641845961882620304457339937603382147875939554345680119991369857902150812161304656288856814107456972922875401327517017661808831629312296002691902740838305232581198609680937392263731990001984915490545002584225847029318549428340863228608070428414967421285894679029052565696921969904884896455522124212811788245851358044677974803016463645403861450569816977936157685276488244489020817402536221706289374755928658086353536168430827872059273627190357589681393360616018279876743477396891481134378744818950681190423071236214931006681962805523614408241652444393571080766617290502212156114780137393921118785387835312962846424208216574811135045625422935423340863435037084498760457219905396771164151099771466451043191353362478434147727328409262908747948449433433386822136806162373619491262623752821103992718509173452874228887113100294864786977640707718836346561986818498646570617717170944241801125038168833508867373187710361821090414907625704707535766864317540039947656009458445952422554630251087372446836419125593394303425403596056581417700303099039556805490394456262341139348997892788732070927060698801653731088850032552574745790737685642833438110306682407414575506334649746584909143029551395025427100512912513287984343169186917448791963308507681982655256421885996960809447069414259739627717261474021463858944409208377970340807246227956387019437765734478700804884388154704993725670319100067572066180508545600718671687214089398638368221705777910942814304466338391254777644609010111421437972441930352956684074410451936990940140995306697989245810845509999279676806282812025688386157285683524476166889251362763877075943267550418672666616599784522154929586192598765707568637305194899148697314936364097548332193364431446330943741587723008398272675743914589975865529368517455389191629052625060199107313024522485584289003106210123266499820730056478850604197881241222615357993658833267157866022153490156792853868675487699738170680153020046745688585094742265157178312121768099446444539240559167519595117258888172058530535838972035158188209869337164067455305495440607620497206026110173952865141425543273006379229860332020569324752025461849437600728557237486655019224422187292014918175170376279188207213014535650293356281542063286985590263176722235059093428332383238220459283917279927405622190356946894734530916274549500529557859050500580626324683872985412745060940692778012651642092994394721365008197566688671299805852861118534474369489505192587617717379009705241610960515219364431194728468901609381884167482380257140487880400524509362771824860670347679894043144838324930121515569628167590269987336865822700149049462695607765539579636868019746163814410327978585415477100826431943353763892375242643505134042273435095109078817439292033581344278363094258396176968309162546390342818471866246571514285550832936174205138424384971053999992217652033369920851575331763353364306751128489418549781188238864147397870431480115019748123953444185634899202612318001051080379132896572959271709340705505292676114543080936958184590004832593426021213909499321637846352817227016892432353850220479709354229590030047450129851471250391134878225174676984122997419265155231097715311308338709577475670631611622043679954373021108898213297626081728293321280430913095606227817214089390919426872201953760500473138498550663144918756616393522947724935823192534694132076425312633840072850894503264098356067974500032700658478812203888539430667152152979862580939619956532094798835439564708722734950646655951885220544110086072647704951852948392736565225965259531817494878889276314189863806937769300730844071402132856435962825302111955973098935233622157691452532243659440635571253385881425295147657892369545093395528460423147163378727995701284431006125296346212046059420465603162068564535578733837363341438010441327577497898067683611488075715280789506245839663667267517184030446311639355775955417183340022437997875370130825234607643506609627228779922303384278669346967442157776515842146687701625497222745354440353261026232993744909073107564195740909332131198371758705717997347738522773425580272144290306426703266368176664999253732881089101169658588310448393301754278016634429513116013198001515065298856560913400838464619063643219334681161020358188499601479329182903864709724123523516513887477742350371463839686619851287440739411555493486126426678424057511303515061829326474562688821019284417339166470458646091275199785571303037736417057981376187915609820738214865222252708797945632122580432980102089602014674598748542582779321146775879444027310315174502278695494196996889726689938838749048565605088003419126090304187345707310625252247646497139520123482404741498561010828522654996998796810281583797470562124178945158517690304359959632043899160374628520354133906339423977933155859048561179578164102181361835463836137357586831340927806806234061478364533463956920889105889034145279248994633685818490695653089796736442116629804957580052313526763544365551141724145127524172760995255414332031023469538744398812939871469754424143699093169795273138646084287390418045022913563246292403206328912950609948614756409566579178395458534170899304279039988764678315421557210767297882755255893339614597854886353389292089009499158042935421364721205705301229141079071799435490322487308878285468624441408697923796719267510207946763532391819448141199280979825307870948005880892790426595168743242480935036186729890787224838784733956818517775772989529340169471423609191731008753723180755211988861564519572338277431558415053005371189336879707294883733336547081776581380116796384552812027439851533442412700304236486438471130346335958441283791150875339291801259501133115500749116580395901926127475897708216432660878754764902833056405751713105795380444498273293325522524987893614321928931434927615472714375297508343209965983219495402608510221524778178419055863569231305592517217284763979433812978145654002364649579129580017494409344082206235220940154822893964926838861259857551570028336237645917543143116535057370024127097879851751811938001914317096771700602044038812538962070926440687802083650343692327637265934396303603983131822704983040954931665232302897403896144099910934337249129539483736653580446899258307512250971127734811054128805273412425650851678722431819246962999719844708321924105528379264156997520055309854615696021515194092333212176019444084450694231017836948364417956735726872063925064448685635273448540069140422306111643934335717867786096033500085737104247093692728081925509772496032208749803434222387154352214064337791396382485465884472018389615074936183345166341179065935363807992538733202555666111460569192132250600527809459066235644632117353668218137842636773040632503416864939319991547057792543942622898229724609557066848645584258860254942916674007994697128075035356673017625322819693958364276371833496837600309310647520842244888498972606624140552351862819310390737167430654391191566215860787409941912837956095031300414388546167680098451271287425327997352389463018854198546346199489465147059010066699786784470379079483118736451684380263199070324162216780601176856877063409150187840476746616572890489406431379339644955532255350801046616270771076821952099976047350015788192795217468283762885721989846984987291482751823572486162274611282685065578480409233475766362374260742594278886719734721761834593451319614495693728346710870145319500453022134395577139755519407779874302797495002499021028541113240985183285453125645262162052229571382802208878704679181879994400055939822736411202088312342418116638969276599222526755519750211983538936891800646488707302501374021493059047980202399805007717633661957703010694744533822269400152386282699231779114922910028535113757414093148475742362039837581182915789035137810654949634060747945634999509388903894352174904030138743802874527299594045667259190182755343032146864075590591930188028619348357249000654803916726611838451156895192759188268316168120430972717239093419700421970014531227700721283411819782095487815144934261027123995581192092996717217964090984521686456851810194332673075418598216574592397357204900353193624179104754842526691720052951010477265726850995377561738057694947269550728824182338784808668499983140994811863732988510714143676517457356031558470623681817433821287158822448455601196556302179285618300674267982081670335312695678206256797882610808920057446465938515747941605886898819994369676008706305159074296676234119764095124985894820106238240041766808522356292645347084089565451795859947292760033064926569952890217071055912250027297452281745793409560615682486905711605564217044436727484594898361305254840735376833720195195847292854838766544296008054267211768680004154247352558976535031469353169755779735831500833001156415159253900049545736413968176523490754689263798809878800279156360386097350786127909869323573129297309411486422751836528288835495822528052106747607433313192061641636631481837267518631995231008186790333487733782623175209293512595805461701012873364996526196113648688756317184270641022481308685314756042618580726354323834568896064230093824586717575679483072895247218453336885690363563684506309650856303852326629308001044284165723108490420956991220164631128329664756927505777451747741240852439310376007889985880855251946742482965710538184478454060703334101306595735307517874616927812163979924728962647670458488882267701880457577299857420586429314493778243906102504244792627265317288029218955893741233903352026127444568964141997533659201308839293194931940336622630554127733616532741445696403017547761529065782107797175479131590419390859744049400184238456182361317123653497821281882747531559067150189703291365313605340584089929696284307313293478062078572455319049090314428099336629477943492326215945792830995154227885595912510634105582845653000122562943233119457458257751968650408584944506929932898544788307014771078940963761181566322447048001183239948907794441307752277998652553298385728137799706472690227523591420075748382023339153437472105050395698452765242505817757664796972529809427928931601793450722770026479962359482544501992643262387772812681783512631702642513542074326316755680728156936987057974598178292570487268599456700477426564137505635260137313020805192149477149638472610696448965931454764136960538841314469425377375368085463945449406626910962627459860753582442367560170856359200753756267632942750930098628581692277772650355449785076551793458392707884277669948203798680361218484612972855707970318219295889079663279262927632017340639937108144032048276612520884758760878782995130465184488030748070642649749570147918599861536450192195922654701694065854251159992992106028457696134318243765252262186556832007400092669084837029325769038131004228931588172591226168410182881853547012937534792375721099975978131278167377718430522393284785357215988800891982934096746257893514752582611847845933412228457473825947189481144452314735152935240155479916000313685641453055803639546970891417510003261859981856505820122026397606212079401128718187422998872282066835877142355283220248959398534819587139090138737409213115115204809780653276677651499735014357670661178195165186232358917855093074264225457419598771242167248455127911905934600272660586153265004052461775742538117969563796789561488211889914030717310622172724821404147091234927177496813508328769220660779687836451856825438761848721933234090197156062510433463942319940889503509949946944480254018000219328034414986708416087935756930667598781454177698852321516821888351928829776042248478676927450017021289996729609681295773001045695513516848158597385684527735320685907440062248678925489210597554502679789372449016826915434473401810562917996361375054079933411334609316958900280984314865003099257634895304162038208181282599381558486079962292303295847391031687818836789671187271259721818738025975154556596822538998493296167892311122859833573325437286127923162711830783699700129895706979861113871431647648286151556733234318978892662985913319998959237469769624813306384889301010453192391003984112485049888066635646017185144719675470135676060363286766894587033889471394974274590852738652629879686582840039046527792792280005917438616793823988588740509467067815888943661714390612861965756195751830814416302652009842798368956516758439896305170895698137634101164374119268582763002003278903984196142691765875486374337357151381322076626783649467345281766524147618115362620106369022310780586451076979945334952776551409375183072620365698701215777254148506697631500443148834486943156735564725559012088987752185894934208087409174159334139965052340682496580638835910395584050431866547873185547594509589174994054881583447557956936694931701781612436809624625244190785738343559778517606341301402642785988947038462677509723123487056240454736803763152560203048671123273759807707517815876124313787404642167545894197782544676120547449989462671874982480973857502661374300461587257312768712923980037093351555198454251306879771841087312387864067795698843232416207560005670655325913778477985241385539664039511084241243654370841487671210062377518891965673241273545411534379084156746540578773316969322596922142568666062385118211231368699411464212548798880014926075543286616602369696984044503108131050415114692729577385938029229941965305534526298512374998941291227461164215393184542157749755194227079606006132082029701053378788903851558378224314948991726233598944586521820713740228616590051006762531684472162167349741759949128833675984973058616322893593609657799949726256180896612669175497544427467385526730150791241433014851571679574385113559524616556682081218273003003655272528354250639389286194651608496479542388818597132482347151297107322946415185369348594729745115990945097159578753747322564939810884526047295600912032653188554128346073363797550395683015529599293109967083641188256900363075908971050193450520886874125636453641727557637205282660923528954833229411269796269039187671009984545694560943179156623986360122395196603179866352849759162594668660933915635466145683170452746137695860629570592682485940251112717269346127998094105690086677619271648468949408391358732396339076155529275878734066546147811532554942751314895711407914921349724743866473319753970648867921583453845006555639733172356089939439918543100437308424987310246013523799399503867094751103522692902380842113305216269246432682031636239432478566581602396046684096658084515335067150932341321712358207711145699144259294800095764373895403493919215444720372980405469297771803404610047312937655349246831718277043504005903295758554050047911420692608503894486973693475603747094547729648252885254704006684796547476946930292158959919886710747609966205894102213269828018893124830826338328928050671605284110005699024965945602245901516986286758847098788904113487136012600761439171718375007939084892714867928896384541431433771099251003976958499010017957630834736609482422301216965200267007137702677562413097011093103905439709844870883495412827873398356959291381244645121174373247789978868858322331822055490094097755281813627643978950706394588183210984163108285214411719482574897531041107473581146213691523896183224424250132332225730359390488488022314285966014666364107033546055691873378337581384051550553953659359624667407710481242243044732538654446425913957352073002678685955369979697461671656525495815443797328689281319169495561019993452430314315508976845074278847153094053110743484985975722243729943437548605982215099955499308940881593920797967085392811696251880563527748634877872071907917032675391460423845831038643088195998782309892599116449939495232937019869169959349392191893392385179913400177503180680519571077390076220468921378049822718378694244984064140236585791722013164267909716483508102366176613875643970115686049949380503665012807906858942776344985446654700243352214108467043966791280749765490618885330614212951017845371617101942379393213716245858051922290414209663533656377480050489233591954876158335435745737427898084979835608102801865535971888448893113549950336728827715601821084339634395476016511356706490374528360499973391740624430178847481331150209574931960208075272122939498586812924765853417550278891771506577859459077560330914923309374978750265245025565970574766786066518544411450406315250246437510624735075873230119858653973588535535142721141395438143147926170091365546907174960336354151269842414410252632039578045662428068629662775638439053160570272553033071049821116022692637880304577893270549900196634884975515019084354553828367584761432346727499492667590983480056266752713185776610361967682516064345584561088907782902191326045946612261082884023202021584601465875895418643792707652334379425839996464985817316844296452993969205567981234684042706884798481393395256967837579207350357993709131350168959822338156640266375473862303390032698781317866758980530852131621413875501434973454605184216053143616094158560612555918380698461123288122757780193055954406478569887486391549700788739084095224005380541983194806154548653129191597160426218920717146120045846622407661998511535882669357512209570667664786317292507698423120341246772418197794335602518044965311810135506506018954529930427165600574247020747313463073190833000891400767093173285473967343405132208722661433895381521860665706183710114196316884926259791806280537462703930535031935893606334097258215174069389736085265661631689759407649511282124498170567372268154325174309162339600918993874096308211005831302884173576422647211322320515709064145924691452112024118671592159200934478043853651125110378770444102898960780983801828226137059366793126410718433340619612421219199638778841022831505569504481741818305395774173478038386089312019565204271117198519072404517785496351346260593009377466984651476385155227007788155409782044432145442945555124932338023733385346485492763515069191921740679737211242035412914055922000341450279274854446424736475709166298941407963045273349911397706797757848112487380394981674677598933318208461645129779796492434643455657395093082677863079910655748829148565675000563730908569386138154058835370343183790350288072975661353896627119538572568309391577175945334372773608728720242400542629208066315269900288610184484057531331710907475769282773407708176424432033890105385758404708862542797301757011940983696219626352667227429120368518550529080524478459586042987400390840391865767455513542405733448809690756314379701151025456900081072193332388157094090280851255896226865105563633938078408901720145332434752365465978636869296544707690400452681818875362062917479122122822315052225346211126350311769179066618765062828400974240786127433273298428712348476929387933935300044160298222368575376892668407155472622609025958718018987842930400769897714292787477698596769231265815220017558976325930778919198130434304240893389250963929343687245123724469172946780132401821227644900414823732200708517924978658977946784385536212644742056594988535464224210362856682692557333741535930811374931635975996009481142156801026469366899501022485815226269457206812632278565175321244617309776388412332771692002322678906136681149058853343819647117310083361864618589822767274210752153004706364899230688621240181473398032256032050817403686637258873179188379469744097490439273248994240678484634170608209665327839073689251982775503638224522535939791431426248382649776792174653952933433205826621111935592383698967238896171002363682242999602177455892289918691793098390739186197245664006311549807869517713188425182916729273759864334356159369502427470853990023757978825454475967886554376554140731046508023608146792339674918210668662902510982647763463757954393486463792553096409778937611809974621990928350011875013744618297450745977986585477321068289342989619625691648853647224998223112092277029868880678109609175674314503464414097492592829536023384365311540966534503483515938038852801345600734309532866904509221703291754467602693176756830546695870068486672930918416626666472945104066897302444466075667806734682178997118411158331002343754214965900249055573362272695785999255175844350374850536175076971726085360772716787564749980057210253211728272441631864839410445499897220940740038187585851266435315286150620343091500046435111460736515445495640099720886529677812419639535271098935093116758427209296202612625928415200202720600452233892047806131919996904940360631421714031334442031354769928254469302701889301658166687778390571281211519157185565705223493304481605420370300227764981119410422319338506021429589285800439870186908128955910462781292938094096700623870419378733960168341689967196999115728775103666753990546511488308574009601904500942694268265337656008229562874521468140760615206086406091979222163566287254157119165948199634124130786516261213377083387355151139914109357669583190926026765474883088949404098815065036394896832806913585818153352849684652567312264531892586929200962372418154548058442854337275484573309246147510695758377043407243320288920807430738895776406539015646828287206049026992581375346330593031625696773698712691342238504295375781592682182357191309151157640723521877802290765488027836017075632406410922593175865429329023500150557622788959405900264402279842895718841618338159428780507636205135602075104250128970069448721274102308457403538470751638428910898949552563647453044920874100120249642212186435898867006783064564727132828624844187175907394744381766941942979760099478170500720319488768642765888985464126340018637438825850843226524998314605066114956747835822046795378048883755867270590687561130757680528370869434915123636628773676894142895349944501075723314308357025038014559390370976526028356817732960131422127088530899925551315512933026672320022497578579139363540065269166712659078100441724727375616544685675573144755797282539143031226235062864718641416745669096811061224858466026554507774800473846833220199566616483104277655355520789666424560414300180212060031947348488209575938581605079859100804130767536675637097708687431698070604894865370334490458200616338660993119425535573906567607268399609174782654474315752544206534210033901890491507354386629351679361106928454090108289920196695614625157087940276949823893280498727184460013341169835553084423508654636729436742721545608602177154194042516267201782220385349503412570775624386830007651523865313698511013474382915936429968236238442568861073210772299200201717454615496716744560594970148309802798467869214078967904287637514358125154065857219321269424209121813784395360624290749795236666752236465243282128537992388496785626690637812876197518096344017766992449091515299850849439852364349606504780940012675219914130728865657187754383243822374483266367690492594369539627322319880100510731246059435543055096689058641648626738897621231895671556314532257324334500085904059094564339657351971915290863974104827087769533392834340103997614764351365202681486736370227856075168106082696237522074432886489118515931085475215372616822184359377420176085695803400585336506516623963668318596969574371370000359950641852437543642076501870368322159915135463972534437452506781783105724612984666920219174948850310332797648767216867671330272113670792269292418559271040264005901008998492524098412882263754078427547427811473335149017027800236978923227029715885304114465065673340808590942626745791688913201701466924299711672988867529760742412664310841788889996776997941230988524094962023119526088287924535047851110189037167951295251611443507628156365963171239515196591546757159012147677537951888280683088966974688442099679567683480268431606197588540607042162467401257735466227046649377799715221737651709491130437950663279252220237471148585726741379108681247595067690202870222049530057287525452012963444409902583473021102183729422621937065483371272257737232432495581512453950880754995904085765494126441506851460737186607040962332102444660901474177294614792463702393784662767051427469462141784084534721456190359606973992435378108958299543362389401779698800989654912086142360328603749783849229131625662287679032680330141764296065196590421885730587369396372205891154813840929369762941884609175648565483593837557883552963493757107548270539436416616509567904325033883428036171213477237064405452867226389926523548880959799709438131577636824770338743165839820871540348744703486140916838048022810574884480271996319055414557557131687034662815422300478374811207124048046946199971582377436332793999371843526424697755941477460178120158001558721528554276985735351555034933900398419704751901428188672300159841947905562796686407553958896573803300949908414242825542483220317493456039952172704848049689801631342782099064104918437832276121350833126519393752813719136071343738558928512977208411094007117119726751455064893053105676771956872858901539528531544315540536745836017154752184383994863512592935656913714902602169930706003780004817141797045965539243562412515929595887161846496119676255469324484750629708003034930496535088619692359450420630615893119889820607107456109012829350522201460417066907196286748666437427780279415817970914195835080728112566555740666394398859049659219746461265870300920728749997404286198068111543489657955113221771943259050146807193327608439680962542180654905045479299067182312840921264435605487562827414917688924085501729976111668193350948311244474718615122760867080275094825364695521861512556575948174461800646726958699362755837476299784513494857307342037427090032063834909378684551086009993629590997790768573398857697675357053710405049335332575324033610167174508889163900620286349101637954685431478364526588269645612597180504983255355451081718998810813340565448508840761533385594910854144551580081830856369647265607857858592707799904997896245004611302539277333745667817829223268412199197558824852428517058136565578865182613896569574545890959064444869050094517885200226664213974837668791759331612847667976354015336102367826892352605749422564049111649422938704007619448681158791975448710998823644654405905274440462455387216091217872825169614361837531685007323476068952769658045466956383016498532137341718994406845103514640801082564777949749948049872853059170889366821054393509555020216910108735246635644763298913315608467376233395198783247997982129466276732838377606769454399813248310206051496763866858673423645024546092461797297709250793726547564484124339837963050778640145123382708836576643213018817942040835528425767248449799926498865307527908939678667920275295952811529278235737872861669887439592112974854039556957715588145056934824311906486124501389107835188621336952774689050362436618468969594557397208017760949805131845802630324603796621746585174780237226529852385494142356941424264604126369779927425403348915980632055656992331943544786865008569532942026318393585277689976707628854363053142008321029512512442280051702129427045291567583681802565544996897698615271966193787475007246532928713828929436574856455219623070061427566140416248444728155522069358920083022862759918550235861192786145836199865798127882697381964134694836735944041519969384905983341351401632994658163079779811768727008661609240588269889318341133757718547199772493248353844528663697577161485947913031655158970474588798114427613319762870550881094750449862997324237767519601269419494424801482898215882033088999870608513827321122345664103192038654796106504242759839865205409238100935998696296190889087632166156817410446590606702550594673626517212901170158320883672894440494817180464973142507588926111436701667889957555938653636553397039875994305381812626632989227384909194407412635324475095015234886065159050493181756585436792187631095776367391002800341231880069554603751729964247586315331473940012873734813429584796182768943547191004770730135545734938346638371603189954099837498614978489771928002141544001538195328022082551986412941053928140316891290082139823767011706203947513483825897943616448050190478683935239390441706288968825119071471877569870468735791515230526544729488528478197060414659355360316813798932144852147145322869722904567808728381885166336805503310945193662274258845478171137846019799042577818975086420618701158508369552860657615083149071183918896896488668733374574504138077600731790347720556712819894017157742685108544025310198340513579680127250635309452284748203396275865163790650538685436567033019100106455842627553633692888309781772275207917488883548935991819393624816387431312783774138930878134242899108484183340587179068568045431968923313799755304977571772456259542923152043618452922587029261552165365801878666382184150998187454318413720480467550220775870090618686225489380561776219345752924375274912761367829132054225735937560722535762321065619358817583103175662644856890808938665164952683324335453089584772035354229182773373821082247401424172486678728881348722161567498241497276166415876028369626576338959047898943834856056644093124943091635416957965289364660919191888169174307117342822141976911224530392881586656015522954257722097511695201542078589657147057186251314190881564170201439310891457714187640489809000989289552685355415278330830000078965924948794401739418136281780879459536714449718565401628517729671345560000663211645564018465543461529433183321045175228095879860464239845726529042890195293566148911781521734618878863547322573480230332949609135681438258603684478672835245767688056983272200122418773131209346306537523782470313504398766462058711371734758470614103003498068293841066915341952262966068152965691337040913439190137024067719759628218032538206984458484976523252702243043526890024178593521887549617280580853238608943352035536611954147381311577807657025784787972396008299584199926059278924115677358390750493080399643268626318857179956229747458609785905222660246531907196592850493343503597030777049656947919146720186279822190353197352897331524657966097573885671138551387955298533769568833830695839589027331133491468251981161639681976542615997287761269512281390922948228460602815903852715433833446984404716401117563950813635801578434843808434299187754269196624307124564073362487859162594573652288605068890604142114220503553289016652716681369555759894778856622285607628220848764895077541391530386782071665829374082640662521282199875270362289183077266373022904065022321968447544656802484626413806055749206307748760093621194357249472405829767615652631303426550303592591293736631409422036921871187434701268742049640373745189083521648176372297113633640322582009853028110788723580994419509824180266144186989550963627704378673903649592991262583098366636494438126737309464964977612517711430853137679846661480705231170041669236398498333281349973517091317127069009485201982437097781371557989322625998862280194502733200479082665810379093560986437242379783456602768921760650142144067199342118342125929121873077916589435505452606839702926134768934909292364794112207957234666545892817006284582379003213089222679597751115093922332068958414992879847880129079491821544262523947144335026479761860205067680234485801020184118353969320930058028515471449371787434473154744300905988020612528495721385377539062059252070578775343138482658751384096811212828736635870372667148630276603392082231610903413098823699549815581098554303870107925694220548401548711559264460828171456043478993222123990226440404626746019705825869669989307405437130634342396725902884584653470737856450564425672819222430189178829023333115096020001411177888179357963892073146991155467556662657471097034379426696010948697528624819842804746123694253789190743713013970090701028722661528236650544380753683028739634850313179973055380409612977266303056764240762754812712104570835106648871601204098053177252633421500107389110537582250167509999978155477139491207416300791823747515156502286684748932408719041668285883774205971717623970014602468689053537053707562442236970740439342812481109490533029573310082994138447667607365504215413143563209015056944219453448502347178766565583708543949861595034476381272435878515663309924860189721699974661281173218688947860638100096556427341709152769682592802250918392227601000053338999050767371924555555037736903122612151600590712945627872579000094692889186524864159841547301509051205426346071719219238140859792796908791964931440944528612756136810924749713895831820346839641776729849953532409157023645783730520473413142566207276362498037829198091391640855925909319160978953987236295164893355744327106733902459307782415313110029623317323329228958093841167171061847854527079096101060634465115710494486550100001589139667485499186829245565303765932664873173803132078629592202099095947277556517626913876905543666589755215360763433086714601787999616781895536709696677553828351048273073056267657149554840825769488303382981232981768259336352442240314693608551644060144407184359003110448883087527518665549572452154751445555322811338699954736381575035744338334659474415008997332344368898904643063745656249225341532721805018493097606921412144051444881212964397194151434622849868552383524069369404901394527518607248675509255039532626036235274463363617994376810819882826944782993437552896044647119064247570622955419006335011365513149077515614668460149893870162501612160859003597324404705071928629373012040071889768189194412251228661252694047072805797067472487665969374232084181404191270388670704173690675131077859981684398808430470719926259210622224553058749353522378528535035027255154716855477305761286037488056826131674070241688736358294918118168475937509532417303708615532191996490909884794892485056387686884861730839960997409228331862024733243446090286710353647050982277021256523919043346295743304921681111406742468115091889855533064136823643188986873633106653736180521995515146817387318004939618328033280881155611863579943124381980415373968946656590934349813875551240171649072878688511010258369737944914336154353989797242615981482814557454558224297887857719255171395639561623018968882973065058420640446702019701787582461548865706591136482895899047583933996534079149204127028541979921759262901006740986008741524012912247510416228936900717742504675976059524916288269874484872006024408477261913998377307730656287500725357840494085102139112434820902264863955601445618605757399394756969867049251514444514110950020005498570399182486647601497003476541029361257355184435786297495995241175310114390026440472779720155449343587610978283939028277973608255624661738615915371710891235807405217254991545828299310641944293871335315222918112663958296537787778855849113849970207115445198505258054251186475442483044406578276607270799989642371156766869235734851984147430247289740129772626022571481852298278617112028819932469860123338062573291992630395379745332680824302394323615712741781726739934124137932389665164389179576864978293112517682258961785467381661263633039102273439477351939550335271210728282171499569333722291305982368056314444013374305339307314333190773022585874570507520485870602757259058520984660978221240500814438907572329403251199763794026167530021867404947280714719267638059577292927484949402571601730708187662165077222438742434226023084838897534029148026885179970412843665614810897725103010750630328058314024797479380196167486327195368262063733495101345396661892838444312512252748730882566181393956844334500925410296080119073218001789708775001988896661783690086689684492848896916313259600322142112386374693353719813042352606021746456274165698031396961883715008001255431330937126860820887828210972555941107112668611106110373244649572596629763000180436607501151285524700040040850395606615777911241655963232095742753367011263573409549486185420287268409155488131530438597504898168942889500647108602313719252300639692851387448090627424358801539961917621578976687529473274821523523299636603094907516847163229314564450697246469177897989268416662628385530315081825141594330517493128049881360844253300404332778412687611503769671929654375230964033132528435997907576703918350514761248516218885324417904930886209758975230478818318765626003159964519095237735345170424877020676791289789126736264389534083843557683423797873550894195866862928137014770216305446780213492475575312021559282443799343326948505264881972015470413370716423829654864598152792504358615586733552198795821168109426267102041734065201230181154146993010732062527804735080152418098878070427528687685671002721067674884881500590086380197557182258519558692197473201505486456300938172363404904919785951104898338413630752585299814586130671444308165850070504731622117106349591545091477948143932101984951448202637819191031859088050006362016959517194854817814824351353599312025934114850733986624749032539869426619390297209387450125139354154519293938533855621355581099156316803760912262126673729791489751488418132349317214029142206642310190935850494000933314451022062465479036133542979927911605999461075296833144885466207458353466889308942921027272859808333300022043002928963067293402700344264477035222052859776892674042798456632356365167251038020547043128258251000810656631986841370182862129667891871748629449815163068321788915574031442904250165491933157636843537254580876776675278700107508376044231130443859426349452536465961114386135662001588052711521604161742751856743225163879374100898810849562948888371047225848465039569998867161072514630192115772635155209783543732908298399020965809095526517864200342918886858808941941434305952443486030336148448251381184409057569129777809706877389274996275852907228902792731550067023337743016755154906979861125707707500388393443519107776323897592196526346554954734376247899204632824616196757891412624424968589759688646029390692918074835221373662060894985298031981409160565888174744644172140528535624797123788153587663963976798566867495496371552374959517031355908990476224683060004338003133109212678116832354870523291635681389740310483849013629847695741754772892541435098904937046109397324290016261980567148159614751086800969043714856192127574916216982729487376210775333249956410156751505978767379405602813842514569722753255727737308219974139721832660818932769722437057071118002751855040724443748152398740648045278732857030978741702028311351284965988894033743945816889774137030217874943131764639568042560545122740328944327158930042856736959091389664920929045458721417659352987697031181663594088320574079974805808956761989682354402759509487590080210089091302329290280412556793136282162394490496485704871167941995590233707931029190339008167196638878205738607367415085746430117263673585416629056139322638200584716448281057900204342222227162796114568872921270571429741524457877013728908656280880003257863867839305005295582574555312148206965672355416204983056565003026843894025455363382705015723533971337997951579074925596565598203424437888820040417141817899224919186120888363021443654754593111263056270499663764665777815167152582412023035491679562637027490943506935123385644949928799178525250429998063004806210785135198843266075042266438404036020931198231449866736040403575216092103450604916221914382879538904190486162108867093635178914694208400505755144279728623724451942582876864530280115226831810682990474199522897310963537167627474478710094113682407811590907705407568150216157137378077648087553415621475341462858180981897381009558583524166671581867927047670590421787640259933789476465084689002951399820972138404842937307626956664056375027587934533398475875838918855213503694832492401903003162874967771855649802521084114189156437774076523464562152518986368630740192722506767404792439503669937237749792338895095451448114568149712836965151321753646192972656938952736376563672573128520659532241690104470018428278585042205820505068839763960575133433984442530652361606686452833092992393212375754403312724798995641728249427619805731758854279251908944359679743606774174377861701585570592542540329734587610316130855020816521740417279199001162462601650216673816605166853534307943357765782763260685843301967381554741550089056472843432020593808282985686580027755679980205872783157170697507199293129367636946455357836134727231609522635255380245265946894585062839585076946002127396411341347966224432933275102528242460834494776546384998944106496041852068090251307712157394983571064412177961061847203932211752495599557778674944910343379598474592305579111714294091220003348910635533677776914212337376517520054160523473491484289067514106750346433960798363321829211992777967987979055401523419925308356110737617414433985428957841810176532770199246951975925718570062515221880371255602210595067671298921523865339684638440447023506742548652021951737073638759486937632542599082299883821721436504811592935038983725285926387179115930890294328955869633474243279354433822541989941383619805957934748504681939022450984753007492504821722686028336435508934099522871165788066312097997873301262545040305702543226628070539986349866709549255746172213941791347836242572118003786570861857227452751004830566328609006741786904984499714545136978543311823766637385711355960087132506470693181961104258611785441420560544051047020812522600660371558340674597864164930914248099127846062853330854799123810116185233606068153611581471127807213614819317227541744320486482912493103711799996709419900181008444510139123046111253980732946715907736707511489621323263109581466966012631639102050579845862312364586269638966125812949152305019497355120499733178077322709472238583090851113810826292118053819796480509818066451319505651112311232869453048869174572735863301004045117649866230366199847047810480351604058520456043505032152045618982978268804429352323733781050242743493781535660741268818585290744731610459315661860681345812941721490416851074750421802995538101816162919147062950956631240788358317106219675449023473353301968370233723756457313222926583179614564781521539725287180098561891115700951677857012999752463513765695687599351158082962562849010062806669415260758641429017331089010866900454870470278574403744363136967604565750904249798079630339963224296896912571373136273680748564855022169944271333280850637476585149672088082376069673607737874646808706069528696685547294379775293579304300016859502166573965587270748660289294051665061643310595208452811717646010499341759208853094874016051899332395910196658043940963154183838116904764521654413520251617947967141596891674734626674304947729105835327935430876002453432060337330467387833667490109018075958683762164188269571143955797553048027318207250185624929347089899100882945457226012446946560041373685265314883485040050635935236258497028090392336459018407344231939582213628863934198289903618948853832964530893542492473197652311149201969911817094982559227437542940184231048438017626766658742154165430935002248532347368617752263504801229637101881276194048116428186425717305900325629033061602241819513025523113334593725286519489450985536291762435952047368721991479740038366167842320338166798116619490748701659313614967943640598602851812078292028312307250449358690649534164864673073261216479038572106770138727785134220231619586350344189170477631068166895931090482643358806706980849977319163613456040614541184893277551794051167653980418885730462695959919101251643718727715538409002499074716415079395315189186431086670126939009433654375266116752161545301593865687918236309285569254577727305630391636185176820922392139253543494815215579883596817066792428743227712746679873663791013579019143037616705198084776651219557946367969186447454731670733016692693369086140975234646039968796446304133110576938494488195557212704503562660260013375076745388792115400905810943336215302949468069368886260351939654303138609344235292803833466187335429146760269091682921301380265639666026631648029976088612513036168180542374166091180755895621478621464676167355235514063729092022417714912248360736870256730871950863794694392932837261476743816296895878605568236446489642146044141354760796688784870292266453102135401596694695706999022955640752568421102984370372468842944288814821059859009045470071300259826572721081661549623319600741238394435723639426634003974046002158708620106625464936485669233017588069977226124449574463868500513023930228360856049588818519881695079263169716144468910117405748998971696041973639526965292668282057358692875621599302227439611381969400312224652223194041019535365404910916053960938653031386536234528868430195144446173763191735823628694637447790501482554646847276635872940552738004386823621337993377889096553109367086021902433601811306800641754367010567299749358308032608582654408444008127536190248052727161226685156158904273391558843325920455306828372641183192210643578031977220947954724456805148395300863710013882286497590171914946055867595356889472846074667400172867528721577312297630650458838847579224424052230012584259565907413269074950599714046744834554500413859785488689165748650517528489186727504510931947102977539172600367272291119177754727340101030402204683213177127063675652023718332080719966761257722836355987728485509756742106711321488818956209356208456981293361834831998108007416139364180391410028653139821603646075419350279147087346965574936792334703361343205251589040638907578814882184247887296598845404001081749857338175191465143193375591934929962162929310082512832310065606489903267717810802151140363690251100650472788829108556855141182685914187804651298540096250068909173808207114517940197404297694314838198556722210307468614910795934531059696452616755860706309410277592992628650176169902972464937627353771397920951250407926757414410786197892467702814736613750423999152636923096522905223096300896299074552616080407717156388667437961211542329654538359938953609226615466291509493881149471930586986272120192612591557457527235374821433559518985867660164371333375811902678144967639988747677244314926281330904168272670029485275644909280256358157779744448494114247849856415644695384127938931766851808799574150008688701603282952342439912819125546335368480774798205273470528879964507246308445243757556372860261448854662909601938543690742990761248449226399720050709006367848379142054883362163817051311534277048556209733626607613368048127005528363783559272831127103528109582383966865103040847665032382860296558785464695700488353833835413719650765055503642678643736254193012809227140635690810845699881409070492587352249936760045815415088983125192710123321186638498631262780191130186988548307337327321448797357362514955548799906618491177409179056381526820648765145910978439778338223345939522073249171802883774868211633650358696140147138889491702766771233678704904734008149284225851811284959304192393864474386881827665320992379744665996554429411521081895162615959611092743919115387434413212722833464680260976720348485411146167400767303231034096544528663763562273335786968719497455200056153933382331590726033403256585340428854454631660477065497430366543314300645344581467524771776376264370432627291302198198694496944179726653267309960463185062682754296105623575453601375433566763862316034484466819406587079793105654289643697143030719623319423717636963396927419241992342187614667774215368754782278031297186293842957687867697709993771937508299557058559207464917040111859365274217101229605421530345786008922496649500216877490469361295591856269650399863457170647332911737684387922024233491213917225175884671174838507926740566866904748923637675716210989780597675798474617930875010611984900429905208891311473723318274304326446638356091824419660784700651650586593953513192179280429424022668207291769150333263897300958991429177847059869394969108554208557592350647897825302250301486417228110567605647579449044403601277596151477504748593756784092783181992553537349675595337605807217068932456942932492190683388306687652493348127300137723647869882842821014896225312377168061634813978101396647107124186164422579607873433404835637114249181172477473440881401087176701987619025332913235201258130498800945011354432829428396577199932748158805754811127035725664944549697225246736821014734233421479588521421644298066733852325250490237869425601439974898717410550047216882846167541399846619013389788454237169815257328005137630770992876664182896525903203771594640798380153280316010820995811385612638568027638179192920250716272813737470458385973975669551320933467348362387904545287246125638208379082772072606380288754872370158122813151156029161869881655102124203591184894828571855129748252142566433952334453782976975555761021421338209030255301526928707110243524595997786180154627088874995902363935156159576952866248386283806208593894222237474615178193894345232474111052658689999865914725390241590945063605520296374681554204890925289771111115249745611686883799819666342413567405993063623581613355611909496400825611664720466974848865515533051040315175272127632854324605485883175015531222038065906634678254879656592805109983088553380364735590364580658300263658537792001667578628318949487262912589086361803798569900281573337876146428545697784113597469094188662660521072950345946557382380738344908145499086112631246788831343610910072556977620782857824068293737182678839293893343587007001789615093641609128676816504538987693938098698516849394013376676912093913084554829748414928189337895975517306867391500422767270392398820121445280033329060820507510049139111615619943906347600532229403649348380126841893647783913777526598055068718187748462209788415258575760076181796790810863664328154402002744308534356052008233658052679166685089386634018081831038004947442807937548810238912730759574463836885823436950318568874944902465346475269338112819380562900314950336556657260049280160615165760591120132858820033756314071460079236130438321456389805359119237430723493295597664803274834434328228611073442742962676576235880677756857064963669457976314164392562867096363847666526530647219113516789881841157390726891871019283653359448014616794534750682011351899336629215039158949562421264928406857608156067920676214820887276086166735328691739997828822055185232715307765537997159883457345885046304682070283400326024861119050263111472115123714800410269999506577385396597344026659517677143555064799202464288458990711067022139210258154833208208907431517122003049622449694942115979487496449392023359128352112236704371805631111899722139986366271484334926050783140157541138531419393756315967968021922678670375504363121974597944908141548731873402355939788699353078383073392495011921336649149579145777171844826928924740496005028732009553280643778559865596408528929003961724459424501552149089025957166371926610355232733664144983311531112862903057738345821668708126289946490907911494677378230595812057501464472136810974164306872658002053861984313953159277936522563146953019252227847693060503142216458342719221832837454071304330305765086556578565730669895851916280104295857249327553392414686211924190796370403495727449782687645236340676878045399513250455395967548145451328289878814783274063891856744303441627101871594160772753574926762007610786362280516028096109299561283831700899123950979025713182233951773770059722373406893584378094181944930563569088645877179646836359864112461076829890470921956354985805887991735671100955162870772609717545144509262418099369414419549005024917087497911523893280668659132871345590564133140925432888159562552252001668943704333190948779188968082137595893749265011021203076465338406874760366349496550426524395563344826686930556577252138161933052563922463286795962551823815979148569297424139265701902270772283725985586243781003198790784631049674336206987245516250012525730416401978674424954450767769505515199573862377015210145519784263159556757874986842055325928278815153348625430881739892944070591362101730290736575322973337635743028168657419841763008974370167803482075125409384770029280500355773287091786757461692473030281433792398264444082085262622278806951947754753190015028676061602384420587857213998194070957253515032525041732148629380735189317611657727106544744918116641016366776380763888177579389385158694404490078791091435572722041109016307188408305654963162179687738321370267030679736418419724682746154273681797063477306039099688211647718894481231042243028501439810332648240052381719255322484354261977616210211277733014465177126016922119941988615316868903005337064161257972983360876270773846542525227430092389684678276268616180877746658156961198710648951266763609328258456988214350037246304828357053861117661246754761157142001257560305529736327745278834140685179529611331208777634062286098823558022531004354338080982665924022766216451430080245020619808227770593201346974203905391695608810862180958025118734271121482540810531854055875358277965604227474617629452290689830578082497119353655055793593525422523221770875317810170565995499985344674849148141714486812638824693497022507607824522589783830308585406599496870971936887399285536435453653278843013151392965264622336600773330713152354637679410598807840208186107925756326198669196184485828864011086802543347608898096773344503807163646946902349130184985971722412532377974717876233332541139611748449448353935878922395659944773740863969142361890633192605053435943268922347412498373950223733784659254096945937167354469068068284861337615788976807895297606572378117513231613236176122367141236733749761591799276479753303460138838339123699478874753915779060255883502615465998721738670887577223422147599655177981444931671089545854086914935753952452107859621759464768098015344215653797450473380191226663048140654666922639690088684743005238007956908903743836714682567674315364232488765855421753356264697268248456667144727161387155297535669519961362549413380888736436736779091101762817755805228365346186240757564736643673810221760907609806605433187957959984894847255397044771918796411325828854945598249784764913071109249773537840975783512412984386427685754620791079058323477512351567884122248733066534748050625388413540838692434394615251401685870660368598447478327629909257650060016861861800240649732979408490396060230195347734376812395990594241870181630026796258684088472131621920608081801625322530140747243234613888979699590710283443410654155676855847890457168238403912972406824242708127945723653697900827883501745366450814383377234374601196534292821248312527362105250505634712342196780948786639353327421664251920471603395320663978132564718819486391953270600193965810712232900890277810512348843939783779935305656319050915615356427008190354144657574235953503298003512346153372555301741985425752330405786992201575798454673031249397665570159313084475802021203308161661239641031882991259712188912847520852725187156936620563952260070410467768605202282549274076816275602593194773579082465019521493867914114337963848929694623736104456734021129234978903221704043749066195263540117413867811269991253962569100677624070831466996387775765806021875987440271101670526412783651994406790173771532721226109734053858137678749858333843135609666148427561554265758087419324059862923735244510566186168256234861640826246051298833734255936030127660360694443177467093218826235572156349970447275565009619361857999292549709344495923403488643131121125456589700346796474503041353214252753788882580214534993193170762413178904065524404091435168918106086934277014991038209897541517965307399057056804886691450023531115104222377815326173630019935650395816513261973773736205769963678718753396268958355195889035504007321422086569104606323604789979415759536408505379947596048883869799844411102265716161258155924919275603808230404251285378296830932790577899267476577598278429901243489280192740041705317169427631938247866965084899103571742032149924216916728164384783585185958959355768108857488070769703892651065078820646589019138213107224484938946575221975000941486823385979713927042692015843986001962994534782311803063785142575824253380335000876361001189155699216635325563544504492875513573684663480727857755328711792356888565382108415256499054155135519320517219494740838850958107316550855682595920725730587774750687008220878695444737282563373407527863055739351730323437437674784056568489895670348898103652406295853397110535974339857671332903923302828575716481367815121066602956457645349459406048838613162229924196336262501576677227417258104189247888605940205514527852622546342469563143809726359671989667562688601518767315585535634444733788432700477401063127014055482005082509574076536550170941061342721936208474019918473240645625489992158849805574146160257129450677141018412961767122344514135070313917985265443392574512426356490827535641954783752555675697127457818628688503967329379609434147539476583715198117611491033325380505604763500632245405680071495304410048352336334531882737561699658532540811784764371106238799350757676966584182955970148167721983886241317068550286678144362991335885246105533006858565999449261317093652742573342418515226775887182396010455973751140599028026283515957431822885864837276817077674031160942176476907984793080694201017300475302434628799284056999636784686878572855608391429142997807639701833582448610695322839640807935835520039616357937263582012447340876169238945611493861781544800176494217201641764494662012638912403682371211509100977091453982709694588090131594604917022720746382056677800607578340329784423670233807217208088122163356659293388774584357608916414006802576282662588666655922839662914347033758999904369813855032228517481390303563054701963861230534175726815260365616393109588153598572384413648638781842538361924472987465042047741918390011675611478780708345148538770857564980774656724463882220215953795527915390815844182249225469156805033154054063553829279726273149147855157212146816440955646790917118354443560738123798589945069398392951597854479382826176668485463999554503547687131725118384985383169317453811615686951865784899697826162088539014768823739406357233883351619937416938516989534236013723159579304938055984282771332917807089430492174313126006142887684786762986823371158507405977277175895414793956430532213530626002087017315897474608000273228747080238941287470210805562073135359416974703428074222877992778757731470293253850083148227036377644598162951483696076690641875557260042512712614753723826245122458206873855080659368228154447143923242849569724663592135080227148306840978178772479707200845791531002325061590024766334327204847642484543059511065430289117756319928252815446677691614900800835888124398240507050875923175780475839312491079112301219293638353229830148816874859148376943595723925270539684025521335711128871578054501121434533425484878776919515735181572012420326505058003074366867158750476477406671332121013352984719383693719964827188675525522162533266248379469730215406471690156404999102044114232370806744803721283108403930423284511789919941607114738338862028475234219833436535066072800244274504056131400968943659494640185420693331503447750243068345934924225866467760624252062949255162737774925583310545769736301505473830039146407488014052091342977122873314769603206404531352171380836896292442056744638937289430311580527793797494351620730593511750540058110226065608652861655414946177404597556715235339022075655382639967206258133266431834378378994061164112644946603222660037914772283962426071710656751071534956305098801506446906653001490507990908311839713723926518925428144843481576972362623356354436615784118617077546211477853729769302168432540410122814729045541121038375885556286248392590690700304378013456664347324295229932010419241809848875619324588187715201152847208659410853957823503764535696003374049247872457664504676632465039131466586693749856647239716802851789602518951919394293752391109603478489807692064186686183001150093686501725956283799017244648132181403203808181729255313262612467794666781721107093023774469765917672986838443342984765139565099712686700107811271735269887048002683362300146416662317030980174136331460152386548784225452232333484758804152589761819582221821810211617022778786879729755398314820380911155930742728815223648083772743465262253414246407095125641633298311404726942354972501416965756194982604373414632384248819131751143234232554843070234480139803814690300093249851898969566267476694993729977559199028936699382425205789427136143228557814848052539715386006925946889691807011171059026015510855349313251655361137892219832895830789321585469034968504791693755435584070432507937541192127710488591023629450706927408907326006647413548154635122890385454566392984100888184767150820101545443608183718960645194086040966909377696655485806591292399545274452795550555053774095611988865139946160861050383475014399388353487815906617927024117041619288483432523963639801506089506848749084734846525857143436629535471971474313721459587756252438882115773779483020043319793624387247097110352933718717026935559060553500213780720380886762337531224816410576570090549512562762033154951041331618417683266532376585885899441088742021116840661072527734020870086040646249896707203121499204224084747022744857602534638266833111365548278169610580775530413540155396672802534563907816609309219010303205694296879141716331256248150817418590447980401306826579201293888258246854086579708793355820552143171784273310132897764265716482453397539075569549905593070113796123694255836515823987168365286463185800056074637377515853812466544549389825809650351014883246724273666923845552704390156483350806208481379985850581135028120815101726589525416933130005296143147443826958530316386563355170042287589735358319710308068353355927519207415031923185679582977941220118004637802736678085829987968973319329723420297443528261845301605685923220238898636348154100651597759147434976074020055130406501407698413607648492349100838857689899624573791544451679795454880772948298146553155977751532436567047085254099648132188175945303465507248640076247915432859809234113232456822067109190265985818767541463364544388235527745717819341354894747402416495194649470339720960866890786548455169863584715351246708532465572641990491635634609558596443852863328338060870757374792339360703724507372824135824856675380100495965223223083055439328106257704149208623342594902810631156203679673946873253649962897992058984993712697468531465131104189167168689199416174909353939995631810300534170924443839307262717854907916559780790514771037967205810083398203417998507984689781120845721940097860080409450623993222592742492695537635713033464748644731692505683328427882003329130591661651184953764092763477406235716704352660380503940284914426246636253222710865010820028829708543086941536829821064548483807488391415710827799070341036328366574764143742873325241482182733154896499235423187222730758891538133454907221573005238564765297347900581773615421104151779982337537625200937001528001760395884999316834769516121658937928138263904266402594985528075820787095423896440891749733745648628781130542419017854179890446684203142553384665478536987640390813956921521701654134332402733701007944760149345919406795799999653893384207663480337397565290294212740340083336552310904517441526572365147717300548024249519661682503968593844196220054608588704831835469146026383383388236466229182021522693271758497933083998213060507565521278885340385489777068826340267869472606130915268295036319349096546354677597489004353090256536996334343427014551974641133830769390980791955355143542581366682030342570176761013366854973243917799741514262419101821347714242190990583583995520327463613526178357008037291396666430929954222425139875473391115696137308895825586195498978140312333837017920991375456984253166917532590117554777649747190370918464705440395990152759339888159404831991580750838886878546560577202719510802887123983542283085631843723945414740826915360040400687764525083251187423117530110408911827218550957338316623987517134603174130784866448102406077103420212852661371459876112800663271620248575575919639665373635941906622196785305102847941990797109523514140063000675444333174938802806180289272318084439742696727799211258931188201334221991115742271679490793601614442094127325797048474557136532877050164780418745020286727533106144227919440924170341016374811703378667036207897966636004149829969207342831667538777758046407741431165807873151040837244697045183897715214903044837501707813276389496586446461758045154546854546174950429007266647970063013762413122469150934862982314115409640115392150051337851283726261569286142984795081142190321149705859061264394024035029178463566450950065438631749152701490933112378559023220991679860727825534426223749813621573000523044628098507507272901842899911229076514256611602970742363036058952952408215200727274762606091363837011793215869080715251723671140645367164071187267715426094477762585008763648930305753884148241432334776071625778876499719345128105015512747079120390474216515635558167987998620919637346528844291563427686369374185645953499959346047895523544554477550527119110598562544097722719050892468553609266357891334774036898663618053237570550068180427340652024020668873259002219582658893109219275720517183151971765641898780804082404452012135472998075396671237748451841254419492751186869414369739132113857574067658869939509467964387998838486968951150383452247781026421592350803534798591684257608764602293142987114480657981899339263632432326060422904688958134667748946890577030834934150112749049266909031197188099277786079091079430211692815394178922041141598802085698216006045067036199197178009486621986736050415297388476673224968296746566061088228993776140061293927786003787077237632502547808785141550860064404984949618383971612765132757252859335772006715441971958837370185916896336604424121001448848310414748996971358318837496154594421344297343595229056365383999842239985698301910168783379879137746645821407560147789154127759334619534592493773903514163114091607477379273471212584490419454459313198709500502981828031430745347030659964016041664266069254364952258247939100300187962111656577360457355035046265801332213686211111992982127131429156139135189622435329377450915746116751260672007599893209459175464775925654040686023065543129676888258722459886454216837633906889578651450526652215643629044981977682907406080681429501798946734096185071923207417220573914097495108359224214665565046053805646972134517585229930846990529733323244286059473873582208930008894613598251337711236402000905343624473919953876998025253078432203694426483391969533652748298482871446081543075717258275074011980443509964494522414451038167650111414841630665480582621267699765589734750476046307461636118340878575762742238615175038080320856423705237217245062029176892704200496516046407405713733677792930904172844054082348995605457069954883948824818189167208699117694573782829389398257158424715724156955933252204058352093811968625625924448261671408193279938270310342264243620525388724449308290967803335004713808407853228505470040586566376131731045274843904758504825365145575457845973983144154224569004680287107901233717130765056616603484503011004279799005606834349770139207860050517486804268113507313150377508796511789446338770784363452305073696295112277247859405474602897466167366502850027082705815461314283318312891795723002243722020950732420798909718325175487577437685572583967121071896844302777092310060193663449509231460913150651435486565544189610489537911368087892613532624034705144036960174557578195543141942838700888635408844522236059008656486591308040561871664390662132392928265562857392549949629975868791975682217514746209845965472716379939911558138612184054724480218124976171897834451206103160049684216955278387803144557891569390822855815959193824497410104307672306515364986030469553750153065466585240541887355283753954723133890005380948295749951131529690579703049674900102803069416561144919981981900668544914917935273475497259221659385188201515956521338522688669864355980871195642722291181605880251703882804751615019709284431260018410287562728188194899291679719417965633689906461093946176318750075613334792091096666120014199079786025557428085502503912749480063315336082268953989334702754259167463687113736673737701129160761627011759741144224603060162318006478831306402323907841464773481337734435151392907170938139561385286693591585959097301335215926525630830513431967203308878093038878809602579675738017044310466496173844734632851976831786398411268129596138667312352195850547748145393858780881765809299025251389872916854627345264934090276209174657264853494433035884374307202136200175381184340200797092025780772558346824915924429439859470659074260832539186709186217479673568813996003942711064155841572743865389943361854177619216513088458991563070361383299787099176453366194774258127158815051286191603161235305874163750706816073715316741064053655675160246634468137123194719874760346907311076591328492684141537028974883886985905344665177466407884594019666745492035892007497990503795104807089488867215398471470929793550143299763461422233819164644953068331902195956801838087351017641784856279115727981255499224777288720507261620888515150426673820185806613246636728216800621365886350688879136098880642405188122203366591928548570895265451452657354714972967693190494997416171102593769410249276306186655544203912477009044822902056489923389810102934985034557473867791198902138186642078952273842076752828364833456837007104451097284067084867153652172835638596808694930274528437624076724087648584927849010430170824865377818433511968194503671883383982813920971966111489135070187379397894094304323756328107981240859965577443632539861244020116063503751947006084649339882061988550921650978291776583328112008161880545912921800552413894368051545006318414634469353413676198034554099474116033162203201877500029235599869379812344353666504719447093114690638888139753224338343464018888093994311909409710868253752431762255539812168876725569621673608206257968489412472221108611380472515412642270941571288905402260775605650288628969715877954117489991905832090962113920800777164964240789516723509538453209298631339057605786712959307928381082860987365020589880696568039666099437205994547213973924077312004190650120531480164152889702824509687009295738417295623326782478191593394009551659600983975572865170581707647067694185906491235188086892749279686875546744008867067017052838859848298217193492758096653770142344064319869750668805304508843606411278187572582465404858708336292097457711970319614756800819904860123548652119910076993219245575303851312455943149419884500312937165244243251425820557630038235625355827787288885485486505955104578284600879392552413370133336839149902536779120195417068810938113895561948999688882257200580430024801930891530123245885167888759017056906259301447019342486742136758095854062267973207407745314723727014249961083158495306247383461609882481989094074225020970040033816836771316996402052703246352611423446251322652532154944517215153153559442194644673120027439532710046197099475648922444716114388772203780042767023080810218143535721301161339493566897480680892038573609409046148705350457227402020553826408045010383935508168157380141257911599755515746356086192454186415146926419934543175649549561445243584582426327320537243744158299649314782595403658029698367431391633494203818865828475144759185516600014401103758213451633099554008505518325986348170643734434421824649626470253666357922547172171588161714188647864719390590190521408990794092918970731980084614523618828929346745645341727848266800281811449219949353954145599278751138399716505499241296393544955277711509254375941375041513233615198914238286938796090082510847470570937149517709677014405776577908243508595660710857266255698551496163372178698451376541630229268397869396208525113495647175601971462002714188930689131834263163414479459208508256856136409919121236351072945966144662163539028576966421296083582553914130534118831772784919355156877881397945572769281361055531043570187229435824587302343923528602057441337039325999428806747146763766902557522981146487864999304327622871927111533087593082972022153941655860527592933210166756780897692826818206642077892927174363547678982663942598258658562807846225943020270580390073952477269263287298183515281921482394863357824089566697283777297022723169094785203167339934078966562995460805192791646412034713922456365449579992628835802095113359423648908129647343490908577287988469431281854429181467024979793616495960833204887299750086063371180028941395408222069983505607769334351907090868824131110043434299477481106343494057276452629116573594998227916869444330839090388319119907080052315812815099040598885031925240273477433043002909486591924345480418604286747442604832225369752502283737313210548666481584667067074792263298273701711692857018851263431598998804976382260397079001567115410539257918234322361325855302440120182669989992090305977484577949298717834456750389155204541084958525023308004805281956393286910287863970446131498138753696488024243416651740540232167882736097143630259319523312263711801524612224348900330772511868081888523915984069795129221717376579735125265552944347037071002931726018244075212986667929113862887752784940903033383422633397010072988835515801767139990094297722521945909313571690813306727964303717499468036815038176644491411549275408245646718127900548835746707307291999146363133680215113363667688170440709449071426000443032052799218895164117718866348022234398687428774918294242196696380418342126893761356041311547693048049129441263405045068848651278516117314174096433404940104288021893620890834030466721675246854008520230774046105087654299920942961556801454526404502296405736597067030961301470312434993576937132322966262941246877693593391812971395955287957224528642630713053242290413956598732648325410946727648356463357902381482264873874786613259098523921606755910896551095209171861421797601491067279486303687549421407963748581525930425925375009755270314221880241428545697363843554781462792985008761275242361448008885282989555126781463830610035824448899418663173597580178916746143666354883418088308259863067136199336844141832456454078912865074881735773045893576286241258037915554226405447899174678207647445713360866724484334311995941460063429388988281173899018528523650531986215564680368609141490254144464708626703833882190335424277700536027294105122141502370975329347745441687592327575720511750006850629516296221167439085931189634922137904585922547906671806249338688204967304651773585047103312225816304163379925906945401444707459050685603680037350542993194610420992253341360428254784975658483584530699191414138911248012084225761435640702807872630648404587435978970361527474345893731883113384430470191904688583565884788068363760782851125632000669349847093163671114655080694415847334961492748078079573438279116817928933194895842438703155679300309002304777998356117281611193347650014317964223981963874973110982572458265495035035714116975723001932182511788908225133453857480433986584435078759826272222923710015282169039091608483783238884386659012593202998098454063347970313116353275929652243068466317298545557644878209206192986559703571631729298885673796836118685050641776587034557071067352282316608801331447247130482083266340951711823875602062212861239173841320343068769013386062790746378663188799725639306652696531760822657035617652291351133497666843522414122819000726756403868716309965495825660900029230453166927312853869215855591748746988365700516826889427728899261840424848411980738008242925495445634918328413782739999985912915583792015117151398449377972803950902259069810151039316451495265028167299861148722529943960052607048519502370875439007352206596972269881607774764117888984021500560879152506946293957308365084195253238948686907840466745104641752050074093904074582989265467575869630608627252395662440717209198441677203519086218371599426907020079990027473705645106553036153665545176795850979072994264887941206632607342868278568931131724454093535095069505371846927103117522596041599021408959671675362901470389741585077979826108246871457197425030546865876391265847874772426561160925004840543420528649189909526518202191719605177922744998354736508611933306624858761647223807214537257750939552595974911396771101980716064977405821785604833211497371636381798067920683492500456572463376485036809272774578849446442869675377631782693218624462648116712741082988168281972555796548332636140857367773781863389526581229930804687081707439068909897377123625135899124725187551233999654897998209033794209984077597295120752363664759015680624459512766961983633842402966635775921081539766942091332838764590018451589481994318487173584683581377409087706222763006838374660288516916244966154326813660866363692910814325130646308674011402164821314564039538166222332464519079932467496637706434640509147739623256556297920594162537062135785930445510493494023253948133902107949647746740013889471866265540285980277871178961122106963343676785953959446769470587407048156344717192841033744434979091758723046571445373448070489643444858304228918047448106697119859722726243983347325680912926727134356383867293342331752902972508461781795433996278557851575023172866690044669757364610100954139694965314475015364844885200049094249037075867944393568968731876534091923526118148306134339939429848759759678453898458015910317958995785476029681991812280564382268368013192988721865620736949959576554542456108600795691027914364057387070605949207332998322016347940158638705269565664075869195920512174452178503381827005691000831650289392488008327476803552301435993612126487557560583852651705605232526563854281559580199310309590092087947407327134121097521697127457929149482925970098552414697690469720386186320236185402641711682007571510796579675064048319867572573668453611796197012171823715464110600795767145826541909599544796710466908151731979153498417382949089241576451132434723402009435086865304478000666502295994509890340690272727885645367608138283962985690796588487886229528968270604066180791204747540520003146514941998055415399273226814429791728273982580496634789055097424481255775359170419075412970797135079997938498376969064501455586432056877802460550790450867542744033128640754538617020263386713377469816098120679539743355979680462935215399596618640844469252362911085951464437711783672334676162982914503028332142426333986160470021892282899670140480101230483985996668772796634242127258063243906546912387316795338610042188170294027222309730468937117616885424744183039466414873969074843522910681974870143986443197655603693406358051725305862297512117789432462439506838070346658116729640866248599343649895134475857784741723122329082706750517246025464970139100430795417972218700175987814745995506305354279705114737825188093640953566128150692252103685045660913337964643006581084260677686894836439990968332911325592521885356117608522254932158504678280133207940448518338429907736221372964482216711920336137730987178286667188676693074306463313529799034420110098183650792730961861366622701630493026028521427854825738189052092493643729873865990348476127231913452136794308556417872472311785233503735911808553023304800031527300040768767930052262069838863874115022893950218224049794199164183328176342359073637091583160258940681958633040235392094680797325620500928621809077886844647603456094014381948960402704887880305872235285018162174993214228819810962010686737211403752727790790876990633086205941217997892912391307673183988849738611192224761431112963929515034903487961187635547683281828503538561506831301656558669240102390709219870367862444892226208221032579385511704892610709790585312407570866668750685691674034281926625262845335314460111487165315164746153784774042252070987375100522261790710286222928937277639447227405180777342241577388240306907571473624002712665179122383214314392610096763716121050888881998682336959967505834676663909590514364149329900921762465989490838009159142009191877122922904269164130170345134868523074206678770514082213665510036634994159264808205667249234255645639010288522823234894249845713709894823827112694090799199449716688388870344612739543637710417208381906978764651212152468420382186320074660963093091833486156801604828152052390908038544952112174015259803265052416373709735903018883273935906499660489853978456497183587322209035107828414356514898051634547079526141175161191641100516774971164868093009468983177492264448471724890579374315751110631882133388913277254911038378631054759435882433679634321585113312564745870071558487194976290920679301739867773767667087733150269563840487060260064376854704936282267634875382850675318623797878502217486633358187069689847931450713801388707466833449282678076609061110237852439847779595998375524055521767839384921698440140978763079776416769099972663572175298465235832329860455982103995708634409857912644109453637831430841664761515460082899547432242558635196100609036602975587989157544905703811973055983006066439725816116468641869010457140043859325963196642274714865199852038582887609126144407771394574513955803184377089754875799256911919055011239909428683149203312499227300061659970651981599793834891095257996709210389060760659746304693955935702198430892508476372779481709712021478285867142183118505287506296344050194869917551677499995959813267934937548727090126838890574510984199683735654324122670432736452283488316551445057558860110184144092055360626887422547390531474672258043188898561446060824067800626215221735410573201133717496916283151847468543929206405384893993945543111335261222553311543819903529743201400271427101803546559812107112538039324002685145292741239384542769939710244994886566851603672750494267256857939151151484380342008821160130251964376311698212736909931339259165399871797568790815960354185456388609513742549982113444923221508075088066141736121223259511089628027377320409610042238468618345034664997017522331137974479116119139129200619600282635783936601452188053294691146131815953276788976259577433390104406316278344306249680124263362828428267269323417474012726498596559736760720895948887963976319806254085650204660285153325951373482735921467990171318825098153406383909259852498851404648069437545081523531201819179005929490248677870703889517418571213762911225905797892825588117851590876938711412611691243498850219358936417651079954289377896819158786002430905397344190371196973784732395152033404427228675513982373700446868998842304788868540301445163065548126468444443325337162331147541132885156162999341592509531376259230161346851289600955896737061903208467032030422696060839023260594066372170543547576576956091848858849859079223654348092686375365337191225804710537698865781164170431046994213698557297219659642321015592128523608610821844173490408228514258588244046020528155224899134499978386254954124173603507212589278697620882611862814931647040129480605169242362606969918970706592373288314912269072339947650060712514149813903690219659056752266096359864479519524669601833474079363288685447022326595353697660274866586765579699714070312502639733800380464521966855739490449332224929027516106981937594529940695452647477185989879346535372205822255738233102156418390918232821478719554646553160354484481314542949776140329704834481752202503623674731970790846323624718500953520901502820153935701815826571238855649424549049662956641262683421477150990002509425022511431323361467090335213481560060178588032843467444834373939193633751408193015177601005324720380546301094458397403457446453160824833449970358242944260027860049271876669406506551518179334209250283419254797722952927744206430640818598632543261082774206577935024765224246627558879504498807817332705873250244097856564948032597343332282752176996861075051375292055064152050398757604779452024294222900217103818649043916113030455188607885714315332236633794792411851716248627449303495991250074210488380643131710010422397309039819163961733347013389758838027225183842611947050156708669798889105639607162698207065347044803560856348465353393823644687610937149620100003732214288944586735419659309686744368633358039189457351299435387715598766163400255215591646763211499391355977496620896547347646094226271637597275999430830231438210804429246357843541162801045839806720585224056172540462209447876080806505490287418873479075564228171768859900450201258541734974652527303992072619247816852489964204625642239174353267602988650958546868132036070259879172630583418077250587085485175092517285065603778925898159564991373020242112300858044270580991593333822837698696608108686994671899217538664715077201882319489256040932618339440097962799671443398954920686481654932196606635152189264951896671914654533000065119434589399322956919922954122441448162539410172842228581984189141962805840162459667368703828114196619009364444847806874190085849263078128215468641801472169933519873792297945195464434272428637598434169692060187952205428614385407849150531254487815850581830094071338190741175271127514537282909033348487724400734419090745237237326313698655545916227915385656064393707441321595750889440071915528830512203741595078328711465612595080108996554924890741869396819725481662966002073502386795763997269937792107972899629379116797017276254018258581069651048387716527577479029393189433576801139815501569240662518453761744223895210568090894363341119093057347428702525595410020941103173940895105728451912255521278460834563211388391471620631724731726837994251634878374095982250312770157971192407382759940926342462508906748720580047023490204576433640964621950560418387944997014633605138857930014831075760606132096894677762239699078809115075423027316837432977444955660616319891580489994288677735601165253197279033923730744415869540836220103104049491239688908306798142733744874683756715869462863438266995788338915296503580592623845915324639600735270893985558833116090023254610689510507395229355311426816885386153159967924279667715663518839740233926430828039384029710221267291638856365201175976822850084234190748232814054013060265720967330569191954793917177146288354994947625058953998803039048837220399047909297062893752353497418960683034852641558733342791629422763031027261166717027688327797384010821289009063971937398697180341285886811569735648699248332565994127852155558485172344770051628763357846469079221477196794135105767709112188766748716814750203091632106041702078965118499944900218352952654932510641107206775778106083659763594297819085975010576948135819220758384582393511214234384667255882569469194349526653907701122699043147523367857956758981314805474496023883273426806563785453538203106440685827683528874117634698969545174645909278752113450436527016877625640010533980942465408714198215934200805002735354563189959816692557683203219303504444848200625121099902843353677935442775215524549505927404037261287230445403446845383990853779779430021553103672509845037395300467072177796726462989489678468213060738048785929635082966169191638822570363057789188230377808576295744594229064616132682325900636377814131720963277345041646818718318203703350572958349320059926886313100532051592307738774493861804448628657415609668345609028694649862152502132833520199320562438681734999903127477836299327788604694774166520006179685576766422828212107445734403135490049940210962342406260911962791605126660577270552561366826872363492754354074979528662634326967635332238020678840555351978141517264421665440780468158574415172010782390706457587369470732108195388371333922969592475666793757713585361486346479834580703705924132828579625829666650163313322841731088350017786762741458868056936447977744089433291558582651025334048983411052021469708116032856245874127101611766119090901134855291224681566089443499578555477290006739132104449355644159343761703453842747434529350865530666035016346337042949670761655545992230985342028530530695750126118760063191952727450591489006999700181418812216568503323192936503199002257165690291425101242584852301860441876397409313527873045784547725941676455168182109359394665402170158891420124080228717290554703134851888778169111512679709798657395983013622540494959544878518868537185141991271280446190300876722780807316175401620465313719996498763620174223563608760157332285052877094339663922452840577916674310758281752089494628709722595131511912619099608266993070021286098640438719935003210443070454028328270791995765163377709057748971280529515997180758826988242191571933159070589319699660593411040010904612166519698457877242427021576949700128938202656855340529432340402229608151762272544173938399429383376523508467606857864940750207269326126153770589573858151094280370640291573538283483031761965910177532770051965828383912191824766193755106658505268464811882670460010494928048872441341967913906964505887443517912430993354480436711825445656462360936083645204762104315709107395579703198545674517883689070239237728264340113042350224248059697663689774785624542302682020674673333787526077210651158318821616140267574957397480636591459340313020258744349868511515850969591085487591862577677391234355681742258694349912401651555199657552158923870111645847127220899937882763659627703057412105455445625618319579446988222285360061788074639891380670144476326231186059482668722953296394848902063998348551981551663039033645409671493723576824553844502357168794628731053491113845570056625645883003538160342936561461047543027625714574508649041752926072827125262842980897582255560444036491401667810416595186246611203410812075556401635189759122135042671997511728638043195844809451906782968244740637898198197401121960764092246256990998015129100000999650207682695049128533689293318296378445256318569549121901087646691783843195523864727016565109473195060202858821871176841000290360394791405504914481317982710994710091517297029166577134096536884472977813208367754055128113998234718723268565032337471018804974309142673193028139225334649582212172421176951431632694550474717873901468599789302876809895525340655737320204915315201000512278265332333445925756233322826062628821674929139210648360663207129208178188925144560067046860932220803677974164642952418952281285715845092137598701944817558147591034738097110375176744572319513020039164833748819923767760863056843588154406050835259638810998862296403888280510734599296462837546345981118461420734852967544405225623093656775784136896781051746074908434179260921326599823555986643682364822600516759055583895523817932125552896031277450636140907416245259799307474297085486850273831733571229529208105448943204055625559907402213354781318695329108760542005558582057954905347704703025466866921718776134757389504122620838337112801027918418581202748645668458159634589103478080941194475581563740874864913049825641821072096110359590709419319498076254701527027709103224223960362436672110832075538850699947646594545809254413581756527054359763719156272309585801250247037097584140556266804854607010288085854868259620033245138764134318797775567772851426321206597990434699513132861446577712837329900315375471496617276796648968135877717214647741770177105662800208567412140344325993666336574814638201046880457305659385313253793673828813439552179006612900635922715000315634664990358934724725923712264495357351564200114765836240564027125621419843051870361404977821192696694190027232931439114634725956122088861373699147879093500368873901818483921664949190466352691279192181098603905689283027867081837699166723038951029087980893836781533429229149273499278398245567133010500450164380196370441109607760598102271921717438885191373232898808708520430911312347101381719182432950492286128928838145542482343947755962329654578169100348155119622565349887962565895620788393932268687645916252612808010496028450617541557443102056246345144510476210563274193781223352681925529082779995878076360498463714267754966156123104926315757186609194867134924713584615311735780823704086872354026107043840718055033274600011621158277402135832821934892729894859163130411692982761187500492061696663832078713302846950091410264016501623806083843138021971008010661943879763268982958424249983184372281400500298968598058757919009438593668235449287840828369049051010244044068776088791606029114753374516970989580071786908307453617467584573077849107859450493187279778844414505329666851871670832824695801464036543151007282176636432067935258943397817496765737035135779005883799490536491429495548124269922165042958914084254031820766331921991872105179546621049992816779224078331040320813305957665093220628099470120390049936402645735405996808769602945331126608867417875855793760151291861912331472859306826561191087680965215284280336455088547255623769638762883108543016446926182972025621411912201601493408170877739175238048241529504914870273189530528318615004574490446892691645739830398131915476964327709589274875948437363373687878317194267496980473138724304628744297741976583820017895792081244759147310479118821589545024462473596614582577599266962169841225886149989571877723719886318967895250968997976787196632340542567933007427606746548702730150853634011918819633307547824493117041022026780920340039757600515241450222100141417053237701170406171072464684395007672656165589836931043655023932202070180128080135689428933804311160792141792246692287670639078453158326624666129019481096810355843030703857469892390951677048491250338138545385329098207170105380024525682857797822945630559001302894434680356060415207022197658183234765532027256863539103037826374545538906758718243852825103410043828868176003412431726904838274542644182112164985597250988802239437426552941680177988573569977304846820928999190546500554553441303974976872230546836150368787762511050704576192234851826881095585683398628139258087830497640544956742278311705741647427005913340237101185001981375090786567168077433424854195470160472228406072196312100002028485885125068843509776582180934868571876152199887398099102291778909092871327027552761957871994314578147790286655178324989559725937053367071069024229069965411150261190868682503433126364320776121267805478263273115526966624112589979809921639957056622197182261132477839781938631460562661656981386608769962960192019253233925710409884605522080993957180413852491864327130703180023316511889468237284201568273600589720919566920112914017338684687753689265631377721590347452587898555928908710787096246175165600307640453262776008367949302734267405093255985590057135630147356922252248262131821852110007930856963676888535334934917749634293354505919957766302763676724718741845834419179617349865702899923649833775151197683298382031487856791656588483501033330730174671124646617109066518158851385766140514406222374256410839972513384866285375072873074426370923581985839830817633348712736471303472275318261838814972799405940455820188483648455158724719421302495439173614404513782186426678194330943957054066999393344156209985723055637668715309997454767627288186310273472403649858376363557191890844409776717040273319511134662555363753378559522157133826334783978937244392105065038736946115327277455225839480633824192362703741312978143648023479091934267829139425176818923421624868022389757443952117023332869790746620612104997724169569596942023502918143301937547566345362639616669798266159241773850063300059182026084392541483386283454657542630506791870653141477736426540386429398142295222058919153304870720630117452042647787475599649770859122224359970695684873417298154861558376732455721617147871012252993355695500991740142761086177410591397924475967081971473082490545568189687711361812630115747223633141129030852002044225923990437752884198116197685614135419043669345009887204334610208436854488293034743039502677045369292410319929791684943586769202941182896908480330712984728833094135245244669303452397596805172932804301985221669658117316436277074632292175167117181052705868539386999827775428623094543458946032020368631842055989209938015106673103263860542920940495289170518971999116682539536521679454673384638637726141282986010363435477442219391983978330221228267806580536270533987058342097858834369329825790392002128768292194969976349893831221561833143072521103424496006133329299901103131249523412795203988178490928809321160716373916567495902510161475536795842625005352150193943425122189660537402331224129857745445370120203994195536289815015618492408123434026160491870203893916903276969695611529325842551681116191907573596808267428184507176903740616702748930981825531781828352591168849972123102498740468976798412239713554170658965075172196315674240756943667298677889178435307515373911519017093311847126707201281793074642997059692827242290342276284300769123041504489135654549393541359943430095055871935196591487073104243825715995627893695938387386081584332041560622552444361375036109214509616884219928551795358636973063363453989754976860761723399041946265429281796767384500366848961075523104316288543009748466929318142570418328791830664016715985837138661006166054739027387770488411675625526658680109006831505764872945720698626436606883305819175580902703655721675281866593715416680526680061024476594911832076663758731602219886943791516116226654515910581301548491290874304785154223286623298115771701526400182897120138688329464584910233453057178635026964169972859368482710831954605871715085244346907394745931722718886394479690843259200468819771075528835165277698051729400234669942885108931188037234656899074316143467772430804333833392547400254022609040522509094526432942717975373295328142080540859715558559073122699822330283983181088555494966351906225043579664707100368935651650728714181379280942101424071047279988733620756143966921895616875137322008525849421790868467705593480132307846037046016035791141979271060492232585191279427865533868522007511309302534342089122770541657097126883032125078798663753586411358610214370744509087380522232446196346596918812186276348720286244459473013936900365827655139058419872245931812044080887084454207338924086883915055311213257114676928807444557691848284400992996002783539661409335123399611202609801397021617411278166966398314345321377359913316125924573143944674112029891209360913857086094137157159193713492703204598091987290744770711267420683452975472274925531306918276276832319261356111725438069440478367734230573912831276589274776191898063590288384034579616661065981909485579913427440195765862128516055789222279978624235495577106151330806182945888986828254603455944733111664925894071687427924249525004342325848975570184659742222237622186261677477524075399220196758784069967435756340293730278768909265745366505035233121611880291191861397564704046519817521553581222980475143546558120591872280409908176209135766635752068179876279551258961600281459887955201392942923578716302802699472270419422648357494261035686264462590665466819934956732605576028350224698389087226864325193319274225757294893039458823649280096507720451067612785034633703078111745279674140887038769930460068182722488377986067527625142384557949065494159723158544682173552992071642318243257356942744730388748492025909919761259653532098018757791231003876751601878326302074855799632512662588173542479512418650990171369194419622492762222553240119738367987319393374327803220664220603742409018540986829374530732575427768795311396383103315705340737515792301519357211986290767422984847589616120593218993749975484249067399349530108408317500349399645269980616174183850547182756129374268710426658313918332744033386416269778497195823877613066347957545928407992597384224177061068244900696177280719846153969866749146440744350043127447489895071786577694115820666169078093405086954248972281992434655852723961398805554017809300556087032482450985404546302400371574748081770156743903356732403246689297441730165157025121973133675420674138165252070864785624187980110526389050312550283057577811172277390529723291256977011691606284541651895904352199289666163004664779754068747370406448976642707884154042842308459241609884415083897785051680064539728415092403710077944469153501347927993115737204817510165142052639583677981826732679259099042334155123432073898312115944229069645464623346053693171672627287892747999775851006993714207445769819460439423669707556685385341833283378847549443024027849566243999397389691562016962615301968972610450197266599566711848897282318203463983320253970481343892838517903735175471108126906152683102044659831304814279558785408968787275470538040294344642022156747165439824765257879460958276019212356866460826186837149242970630193908211421987859886649685543243355104368567143761151989777948661849940308993589166510694109790392089592767670979805953035607601770318464366735025736875147288785852701435820604896809571439660229271496883961298842977662662330956310716385434395078953016809948813383031356120866207425354840871615669088665827266433228988749896257956956482550566611944543169873051046307242564865071882753031320744510149177073709585647518945393821879081774929608812503638402238354608020307320329134433612577187205325905839464068578845703341105220474886001301527017292946883873995966840361369050605771838414638786551447323967310258302698764033619466818448513292356331860762740461011310914172627121263326250187867078962813719239743141865234246199817660315975287379899186962337773141947105309596424710481611757822439183181302205822441390596192095677248362193788475156934402980840371435183213849277800597712452743449821350056842150709924947687762172767472331872938033389156248023234050769717073643580716415212055820164107803803474736245922301354896461977654595402619830065281168294226124675008609245921709241061716600763276285280393314169867966425685840952388516132093244755212161627168472478241435884594017840139501316638576786273814860333936737820648061115254457586242598877146689405575668938397507598157234515157391234057393894701183488717183372649542090456549195712547503680130123071017205015211186566261039603576328261871892706633603835038656530865148839080943624953855611285181842344124500619328450267668523739123724120869857797919984220286103635574835457464405759342282256544770267894748996824701530253458422803894463134280078627294419286480640907711333892019417633569376534528468852132692179115982020110895138511833241869698719621715143939047821409784655840428366595162089156042517735908450458280294635074615869684127758873926041783699677077149270751732377722764161835582490007802943167551032085881328928362459995895146019505948395068875514230294239524273644088087881145148304061719743877158438380651001877690964250900662976392689760533909205007096184534452730274910325246047127741663505795113545239006040292866191531317151235680438087950314263041920262548608169685343862755425613370496071732479172937674326409322482124428279591183456048925989732512381939492632743901447075156014392668382210300840835765559331231898172192431941413279313691946339284427343084129230601328307018697680708939199960928584646049457989814491049578093677207916087902155486053898654590991072365249884882592795630035750593369287394154562775717110230215072180066990751474084277244929814009740452761585634159199390463547446666950188771891628247781814715799176600045084517162200438212438336254740448511111172210151530525384373067137391488873434849874502173195719235987019745958295239007674362469122435964987808475928051367402171919162986219661574622446128088735471682372532062558516548617803731236276387114435319754006112320655176639080403351090647392947366296466859415069361858835816760804432493573891143095359458608200871475293644752870552087979757145041444655135051436411251563129326429338081038749559724628190998335426860028503094881865311122475907484664380907832183445855365974310173165545745095179354041905192187889910137341734516028318594170575895424359713598308063251169475946014961157259504416627343932677700722429991967161289570085146319995263685021144828401595081164451821743938873921283511598656067239370447183990505934338507531702052084114162373457406310930460330173123424819623553333696994733224066015474473288987418204383459167155413398252297937351970427670874651077651099155651102015782459168607817552972005533321318552729647441242500745918564180959219156525832758876969431869054133974384894528981316853622603903359177898856066246265309355050862977776863353665697459127762372037191333317214063247380596470516691664939558034723767304838058171362090802402120078690376160874631307712259598626336997147353791747889861559969074392346225000071572382745073626826114137718137612777261227505673376676252221074043991867976283569525488538908412614222804644147558011051954358966279123557780630562872151269167778490247426620662884841539842303279176516136473987345617076077385883982653192262154398934128780518195282719959413984769315366433791405233613107987215883927605276637014243931700700440902043427282629366165180367858552100968652761848096957178059444556044339409002440726879435020200191241321627002557794258289881119840054433846003304116272910749859360565086043854979061475356768159594775976689437898761156859140988231052743148051347271833846657831799836872333984385083409201619487488264299351068330258072473272043679327232034873284346322322004248615684722578620429897955890638348053466761060298041798745724203751490063554147397726130212518093431212842072574784439783291349334003668233797659892105909046227224780681016370373376866751084675010510115844772235291547941405204815986119203372270864887912965441531310672802979824477097866179288304123665563224768940907750998861072681571783875756024135744581697604677425108968269175487169891219512406870808251437087457295527910773914797651283234349564753835221810856761039101858473663211622742977282502200832913218398972688166892348672043755930355707854474981429234313724400886086413557774757532165747182053884170272461711606850521372203443961533264573188307682010210479886905554096950740785620933814082864354532999521631181015860003250296908130081726780879715588761713731783432623431550586004469424565721792929794731237871821064019277259305319945754557545889458376013496272152657184510502504990088871097236058814177191288172497116307733293421454325923293894863656897341497716315008559866453746289693658095040248039422564282172230313703533791744519650426156416120245350747479320347643694858002982473237783724649974761236304533707395277327215722296249132495859278045929516079241451618186838483786458434970604242492408470743547913398424980718734246072645144220549109263241143049335173700574634099919160381213986293304037235174528321187980016332287629193381006495275611322402914039527088444669419179691391575700060481693202627373189481330957052776319771335004227609293252011147522052784577523799214362645921178551852826237075997276223384949431656263449984164237863001954736974176229216989880732236639041646675090737697875309234059933874723753465216764861022954196730446466778202926905384013962080067340594658249441808532706187947695593521373482384520590503460495295057662739167756009568307796158084828074992475056770891139148587550210006192617529946847326650503877156987469461550060568264534525056513977662519689120912793444793732862507066176268475163394243413708293478628279871749332620863382652653919244025924582970122394358718790912211969569066802784095180545478230234859597518816449830344221339201471137729376189962902023696832167924863793564485784851572816135148151654792209593360298514181744142415112980631630148530610329029984197757637027061693510697571630061205152398341943258690311406774542873985656233153599567563629238125814920671569755176662837448688873808151498226613450394778960415505114628778061398686009627485025119366543675130868790080441896643842210722816482394120124545675968148073443298055112812114172737155562597768102447046410087915958807695043001291197039750227312781698655044977311230804717941751129649753843742295648112714311258772506157449367500090794803685781613516381559519530854806511621777639655661963457590073245129004431610013714550479942739738870565841082078178445739933851398184298384163291130340412466935851179996169522003831625170516987822703245968562412801475593601667670415830865427085837271368274079347083566983196791668392225182003124799007624072583650296365909747839735057423070190218104485901328935101014381940052256437750745782642325461283960463588084575011793031165350544985361791442355060809403863176045684620363454011755421791211374361930298513299699729225443775772677066750370952950054518726240262004355633094226041839202033418567814260427745487030963263365606487299779126408817902320230994865723756358240957741446871727896987249865787894006656619486691566783136976519739108775042675242254990928620205113607950392473758336401396813823636973316130856402290543471839029901048076663649224375102372263996127638119374847548317607042755475145692086499418912859682076688016823634388264315794886157644627904394141153613706249656849504852726955045504828681024745024266614920244638832501741110116788543983371043750160952748429823896591333917342002120252387645994418028267640478371584239222809233790236239639058953672276529316044461212193509483736659183422770927565807511935251457142242218000439784930501797819401449262704226320478831301827743344140462223314440659878194055877296585416901418341528459402779601557282037708605929180105250561497218675070997426169716583877615467633861613568212674926030341851350869475797065019788901474110975860047557637042269965223129171681953079221732542259856133544907625278556068282283516705051702268774689856726958655452816302827255325130337437111431273166680157104081585852920419535772151590731357346671547610824548980041017175542316232088834129361148816550687922930945002879561744380594831638495610148672364932696542347246933746059439685882396068410027663484441042224768362491738125338752151915695922401327607111878848802546669175470935160372045643079492653836893145927947026688185900451667815298578220241949588200338835024082869349574693287087337869358787527660493516038545117554377724073760747350889619491821506995081208730734458464591633005142684242510586488148972680211875745948954982681622146564817520946851229634037381602896559538006010367117559854483857793303769416644843120910541511185786011239329790843482219987765237618881045913153893909814948318859761326547624850378151570320603856410296456062915588304079957364245032164731714213839529166515772636320174097765964393003337154707733765960993914960843483738225901135853284170097992110538303667096463698934369303428015260963085102119335792813983698370239308962146732281519954251762981203761935825323069223691039370132114687951667560268486154879469894595503953621683732948224752539389827701452367650724269163654811768051872124750838681042768069858348882479466407271469008448531116942442246969754263847326116079785613813331376095641345446836970129987555686878081077286711864619183468573432827201391830456533283176103003093779938060870031922430081310246722028375752187749766630083688532378019125246684757545212163941623777662826862872180195128153045023178810924413529329305400875380590064717329867748774975610573025606432405811889452967639063353150742570402642890733474463739672014604684420404035121825115750900361195689265363977752043574950902084344337168243493384249927191007045983332152004420559437409940363749981939514256980531813896142482235296041369927292512097626615481638308601946930177674177853484532595727898967557729587287760459833836756970206772819180648119796046831278635196324190937681941405707823287094374864840764155703089443661602823600230610390154972642500239033951371873344794093254682769715848872240671324462219877778882428088443253257457958063773951937396655870029967557580916561619720067919698251821821554877944592629722879443256158096824035626669845845707709804637322348282169145120914638433712193419325043520186360695801727793632500061974550104806392847144945281861843328462272852866911704660182743567510627006140973830629451164301264874921008712180710719126616065627696603764940384721015658836570778816352340312437967769138257464374429184828947908437995377554715252087452997573927901003742350935042777884999000779975308715729975626561367172531725123579770970285511356403311981554085742224922736291064326643204884332601972649640217102266238061786395324360882898068074208497462077769873592575319645538728344788891131880883724363691988897444548042373467420467596512084869848217812693354873880912991505931863058757750692315899510843736291286924251214693595092443412740155519820238362093794967069652673059977015698744683737981618767472003547969546418214131016136711602585605597955858601831834843597932764512053167917987886981785407238907389881848745422111520532039658452894818321895322705085414742613551940319871020002254377438800527288669022137565129985808443269625956171810541341402179907179991495301404693825108543014327758438185248232530551055501051682666205485743854132597729734885683868231968210431686134792073231673974800087892088319332323693144580748181797626114242323418365295757792692605416583700738149164406427096008580815451528162847583732529517624676981536530195852614447723498988143290204539414771047405815726934088314316329620507299412778649290457419896691147658486286659723184658253009041826990955273669924272463252461583080566854835109341852103365897539213680456917352981199987451151174097166918136313207730826939551510906508942092079799932659216725126572290613609157274212314946394363158440816512713123948462372076090341415103996222374499680003332629095569314860578602392411192349090962857048424438803408972869724611279470735617041167972959508506369842110941831976780040209984300022730370463588035431543945252188140159431921883765940141332105259134436370704261529916668321175730313793913707776293354752000568241004686059219325302480283362796784116982167209889354201507059113140394636625485767412225068696567164038166002435106316234051158039053589106190558393761895494344362116057945964867656174662825486413744015568423544149381256196105905276886301899674639469509786901950812481764763260037232653570901679380701026470267185936165788527028911971028802427557895270209456217219141866185114609516870710311698084315239194070582713328443098096698659713279370843040673790298799352033065665677089200998290036798200478915933437759455347636697508511889691439305321253724685530897647573804044268272285286611313143689272085901022996817243233948245824031713275669678002619075854095508215553798722893499925834574559603550969395348750927208360120049098283508506456190017299707751487143646914880008291927639193518461876112236041768713057407378834632664378710879378239354805528129021595940881314564457574021572336696815888507435693378865910436747966854087507151933645917351010478238071026252312547082264723435386310741498450604843246010287752536337971439868278134667919427059304972657317005605998704065349136306778234560244432440171583070543100150121878379430909179710097910489714694574025719840514030924749383399994569501183584527173104332126311597115294132137262335384453800516341245911249058547926378811434301329651803532709308977701587569663805446164233921688333153472915034168258274367035049923956810663852155548654860902025221702346346647534904731334685962783413275546569963512645276491847592698053791513447966525549186426541103162084337181929673702338726751835725275509893775672446446644364740300320979467004668121275857533705417250854772921813301271507217295938016320871788277914389942050677814105642575425023298270741201560450051825347207109563079716020103106286099898884836482571773854491603863041783212680874281390102988056691304681694228524628457199011638060422740709249581116131411184435688788277627922800334631315954150109124067753537278188791208531578311294620628343096536004365134537723603002955035778038023218027211917556699494075110192030968219929673263793410477897947155572541821640761197743595019417278137684097885524751614082371550957623185594953350680259187277612901260235707672078453436004034560681371115792831805841626955237737595224955577222886371408511332957771785070034372368988171051058398126299493704072843441788393615247811024370772882933580563023979159307363416158480681883502838372807355232245841960307549866432168597728073219181533382816017545626155349414755597223170120798205979832376557827459278265280571764713215840261011585844834397897768839753622595643032181328389745833755139056067237653075524203232562291765654026532697332165836728561540190167233882014296065920394267788152165159602998049911745842131985580520331020386280147783906816693812640168570764338081184976583260007415154256246155553873615709931193252466067637769284917035313243770845479686188125666143637633423838146655765270329118473539567333983668276218360514362404558798928578550913712163403972297426016146387648990420267080551315932338910230077174989735848059534592207801755951381495226947863623617469907960287448098796406641262943640587592566933486191992920046433452221944669968424670736216316507710420125766055567461208791997131600577210281539671715669039605588221675565227728453792775597297636899275453964454840801191789702851620832817478301280615613437780125794211089067479841158393607362040826730817361390558903269583190611022017984668722328448701646384879344553613965296759986460036707112348434796097003686664523838770183553341269061282894764782255254907532759549844862600666965579211707731140355044947754882581896169443607490413686571938957221556280909258278822022822720350044909172062109255793296214814548202379597410301911040753205819757365944763025083546284189832951312661045669886521411099118962363023523625451611987623543653758342455857928818909191740011749466132623273893530004711580647687926509504572068266344509299784169929173893304568480594177754019498239157389243675405723379869227888958323914415680475902834483169217418554892484502372082757419353716173009147544381593377454542561814930737158927910225970283362446407578611760144875659139487964770971104347544669679606031726543334851806974744628769374506006759055274769866766669288372482317350694096420171925656713349052755621401693292367171494781348145278102160912304646175485914476646404186731489710724867238595116364681865553573439009254791101689029359183141966398392995454552314898377852679464975672185836646856534009224326418871944142028053148485317961892293171398124592480361662557983438490391075992171589548099509174475843747269284215067363169661412248295584194536047940420957666834858425838581377825759103297484459861775066900722363444410601236123675184157657707869814996177702836116236242360235870577547983518479082497430086306082811481550371051657685551433729700194401874708845460292189451942082240134497355788692536015192904251185686622267948186051122686861903888111489129847648078655397026451425855418654833028121236601321494974694186307459331223957388827339316000018433963294902487557292524312828755703039956123871955537829222850508433392715157203257080434766491754722237281386123950677118020089393785856992797112748622094881515714655358529378355888258270557373456607787720215103032102718190407999646858381569540026221162845782606313798415787012650831791460458652890085471839164047144652044225882466288161443905775715052750713356347788356305512334602378869867478538852116986821441143637303324328039387668197817308080107956746228847481077992347245190738437568962171401508451494455838379169859362922167418553028693091398524891292962124840319997429628486217769621779874969266159552124418053088539784043078281320906015604014571803584785886655814069474718916023627980007197573192651050632955852645151486754942132219747569488146006416726711204048642619132361129410686135758223080835093546735806351126982665585200948051903881586953206294798400331639578655203782567687169034680381134204696954805836252347899277301182050026715450599484524520957704478607620571744264212722061653809199279643738105404756573435604414611700466064096137880469375321677774320942604492710707185487515861195481263046055507345055623897758823303204198051100052059891148632520405516135868305018076841153245685654957021838697125084298666869646133525734773107923285474637237393314641377752612574767554432962722881968278983019616109319187571157587565202087522443573062060966733730168605962426998323591927443900939778966071266820883074910857266878205517263108253124153308040317747662750175450412102043709474721315382282797117506389082572268582295214726075387966971796082667970063597230513151504206681406485860893736563013258131085933706760601225714504075484054286222473596479567865570274844456586806166062334357827482939974357162324874119054153176282277192042124145944480645410524970563143992046610792711097460247032890192747270944215007079405891502007923494846688850619341374462202371950371974524729722969440023146177733317662596429266351388263510814504718204618423632368210306124415088890481958139320146630908180851953554468537112841953903672915425721870803128112950817535525682651541850892784217481793066309898181099624573481542341606320572114818498837409494328741159882180924574063682228029911088246394426717997607204141266835460961817387469762190785584718014596238452873623879486578605496525520082269145595782327632640038919243308540639506081304327062736094002411216716957876245392772552030657852581359570083715976515455286138716259386160297854622982019049837853710604823602967129052022840177122284064036412383554153645682253489534807447939227934759826059580541262555231748887189914770197942324138124462537569333045675934455008759716978322499335911500584661141016314036691767028533946500430032975233454840280512486734431877395600250052812218354448464539142676215309911374527828234120377733117417248973397901203703546119600136797524206188501624653497877669163344367638625210546333214870576903577529950860081094674064292309343261501022348517858851009265854679275909938439132033158966712241702119748557753139174797608765151292720419287652511169743134802204516731077423606176088996046356733989543763857142027031753429170910801562748473175530020234021293482196007129781628149354268428282491835541148263140810908108423065418706740015872185743565374242523387968944069578196457196157919056423842537424493864251265345512230358620203418406738209855934034025869926245696522120999812646437032339128826030537399225261085870636556776618313340757833224581100313537005873236199993655990625818491709230444198033571320589257854876512322171326966894270628728687007489931229059632568728497033188928351325824300465395082586429509639752450337741703206990470698608378859157345290835856978417359357568236318596003224265734184368593689944756703991548556688742427734633354464744051252987817276083197975250276357966726586697504797952333961492973383945648296283908542230396612874410356077015469003865164834337383167598261668941742690749135888500261312240967301380662491741284972922437018993269941792399175452283209161472793636960923929739414708517531024683173182793162574852983587728126102966013248257073314485979158802431487755015812716206560618226768177805445949730142156438653360185611039489143247257470256047928797419199908003108899833156432635226021285819112703774314913978757800301930183595012752912333371091092988879849062707690507910523079058510877499232410886913120574369141619176099744042062341155875608703020314512161381325056721900751944570697201022617332836536154228879996236505013356353521880334316750844542239484494872334418220805447797086180342267102256889166162199410934275566893660743226499047797662876283420178632968531439279073437407158948143542868793206838572445142687995640391509619910095581890359653494704931040234450481046016334616092420595849345846993591391520439988132045171608793263881778058586740187150856151945271361457763993010060285202380590117895628195842836150983733808155427521484904685192056008375014881460277042533070381440346583033939219757345226537421753513462237095401846313328767478324589967278169539831816736340605264983934445141191023019081102612664344286511089902413557003588000563295532953809017990255741349586766416223572465368743568248360543118363681307330117680908487475582295863590798784278589197919457276562242972037659022561074490696086796644734543679227450531629362739527623116449826159723525732398927583853715169953960678422683334407249271882887598424737145085459906682013323072367929436835530506033753413451020028861046417306380188888537345315981751165886232828765082062724978833991203535727047539604823907688557329612322709747500638650596895058854222600208844545103972771858080084548109443787595795324014642729287925673812618284373454516152849025483348059543442077863877056584280594281557997086494707750700590739056779698992105982261136527380606820500351861720912383501849786570944188299155299287114851059109579949801467710872349367885889231466010529091467229432741690495852808924441594499831710693021419605371486063741833521225578803085366501280516161460458310047843636603366201097068768804585419273651886895376875348689779568174475018302431608456912368084826254094798097143155486587741842641877858314141636833453566598140799284450702441969093137147846286180682341426644345862007903381454057480884311861797792773619821847670708279918661797851114711401835685803939840942076071414229467762209174301189677858295012293749138324873220542837018082241199680856470486006640241909319070083603709092420867870681840455748813190675463911991307773449420650439210535845731799054268574366022563254184171114950557422339971661671725139935181345689844302933918656712028150346242983117258765071132779452683282035259104640337155243506524502746942140254338127838849109947903201427793743552502686705072680180705810011949126095147679758204720463325267699458850506530119452932302292949307635208232210851210893522255012810073813107379753487376969315030236647721590847838705802817265311366099811134079045242738644488023998051418413374615957949551366781675989109669949219911432357152304290797106746180237073129131696215543695376027578021521481943598112689873561504675164964462406432984440407766595960997440532234096985984008639570575106194389033833143177225187035618061476947141183780608224027916239938176694386114823135558434095178725844648508130398331025374710120396370898460713238637498673106338557033851632635318630852256011679547596707985516792306132700315649380153959091980166368503042043336159895352369112483992265585852337575846236204240914762692232579255206348117985083528394926093044453726236271564562327445120611055420304796311493071664618479748823074582701659449590999168977646332298947767486887455847497177369904690061859097927022319074678579118455505401572438007099386620953770714758273685802892507759373083541392941947580341117137107372455592938338772285415990071512266375401005399951577114547522219324672821590629723978380558720874624034637750381928995438230690318054502316506591794263422272153937332691333171276231574854475969649882085466419679091984156987736378157063696355755335914824799011354765669370255541302835102190274136375365381368546996961391759167152663464078258796328641116754961674907748857355822836553699889477042441021345137241754144269879868410404802734777935399269428557343643717306474171896806219600069906529900404308969159347852621542102976708376128825426443305083106623878636360478161531011377180584500318520927307995481945297987119606274591766980173146278944856903010609594055397081885138729233311338617965869947273797686736951670929899600454014928313523454846184076616823359818162188366985021038035565646075132126616095161375904896435420291150902522963207741625879571060374977933564183921036340732596808561760039856797813776859775718056387037262435852750927517722870359946116917770144499528869137829377057449247600210460241273839780532871538685552684367145225814295626843278594272397579645054528356324707751894429777235434287638282495315314649153630691663785941231120332123246158482736659512292151877768343482360053255723340120433106910124484238953292325599593863112852886053527450002814294896565191505579927778191887830760101976699874590315230766326072469838967000650515253395517388332465087141098450709505976626362324017839265485379326292637445009493954139992386604838432314941203842535500118219020356568000925942811522218721204710931420156210095664300794941694690551289309516446331313968834658676143896036594061662720110468565406395929458874159181897413172525336084068351530364012856275748628251224799326638519710327166082015624780270963117723500307156529593884346016431339677882149157100700913770060416028046751985224585189593635762400979536003299054437616224629424649726357429019541568674508831636328769310929985684960627020164375530418925841187815090461765865477561167896788577018404420149929710314464477789561499809345733152305718432158186636229102430532192511365340232021496571688579405692391588383994011180283638852527107968714336359794762631656465147923971139900916995381966028224669173167312586014690391982859349606557506001839437344396239334260933251522020392342988395101380571940985452191783509772798866602366501083860029734870894417050501421352818104298922334048693631184865534830841952973523455550364817189381291076910017065762838920940280474215063959161360860691648959997284665139761574268053891573133518130682712421464763694511510245243490901993752290209747316473894705671781854388006035599019701751014539620014259688372208897848448003437860531983316241199802614817527360187903483559778837927730402386834910430479717535650591753053587867332857834922769401772042865269423961756975281688538562336967061317756379289839396744717049302505501081369461099816591356514472050372693387848269688724635965582819548680274210970126447983205420488690676153655644024419659701135501596170194072645833498587961133396566764711566215262913528879493616547907515786949175558188269875316460690329805595578516679803336029450606121171262091448353975234359445965474606946553710710582836566530572227082744668831665201766399384207375217240673923152899154718221914399687135764016643070614297140767921819426372627250748961429082668661603006849639975368873799913755526659952166401962265936858529519204472561114134957777871067471651502879622427769809519744302076895611946500306876572788800962886494031245563578721680294911023698756852216462879126385418077239038245805546003761570968512632902909272004420502117654326714715725281414077986527023749202863505421822612449958370189638805586051958584726835326854009432746380257098190165714068756269572042852964806602069505105912429443616837182215662631809097741932879064749806211012979345727592870301161177363316482403839637057663122331306185376086660682144265661605792426644549925323761887576335723778399583661354520909758154990847690722649986061981450149122092975297681128003284101115836455569351789959650591458197858736827573326236701629196995384184143851749776215344052114599712547537603418709779865129128507090887777756382751603658470039975336488609735658432863779512131959632564001492417249766812083811133019174278019037649727416023283549957533783337589429018424979177579231859442200154419830184286744249380669742568858449997337859202137052650274168400996519265054691845550229449107613962024594194265845510155994014674059469614330460036934866848699033466956572328338363992902556258182681391378308480169216305226569982439587811999340837010637153087894016002614273733310964458435640751147570072870592048948024143601492347739988810122108514431086535841269270823839324214481394118863663652495153090583392950734246040431751324860496453863223227916253580155017345259761108165913393535003191332049469854436323611291959429404416352115806143386773499314859956875487582570687095319840485244971928305828193291164427215542144682371388784602135901816735516383544327016070059389355550139247043399841810253837391401162548297654739362049820867757107128095107492557322911210507061210824285859653608190709693304607017516624704637208411898055290736336215711651089522351805499682535034633505597947169934593852907632782614988085137189970174399882007938039695366831825360133106189573814891750895526332421210556973298301420318821477470006446199598493717458798424821788137404393678938215506159209538429204620975945502982120630127661495804016088854877684772643430267139104203207702071040311234997504747955371345572414078681239842300490330003304395474478076378775230952591017925929463933535068065568889348159708097524061440945368457551704257619575320648789741567393616930365263447958050394133853543128323164037519042565797585590072918394109555150284192874088638072825427112727459552435103639089782076639960527609581788155910364411847717078377176222992671829275026666353769592634024965278482144285646362714898795344052404864417451645885366906008883853302224966296194375997075741202943170707484372629076889037424365471941519882520111916044942131501623203406711707024099712110003714292564592229719694971317008041754453807097470805521301359429267221756417352283379248402384589210587104828754906196937655331042691385086608982906171652039067292823889455869875301493204790981819428239736690026990627269956687034059094551372595205402622364322894976125822788069580840981252762873955319071416990350200717986419896571931442668356287777194522489389736517083216414564756697920591264826735041855202546691025572156381246079640065764703077212895543376262585825897081681798196891436500407810687383341878705008870782140180689774043144657267156756454281090583618377106575852730038774991434271522472564494676155606736198704359108716080878014147951942416068754710105448793806139793151263576200839648192130225509254275734537764348463359871936406596420074718954134001338367347264502199619233749827220583083941326683040282638674074889598132983071079693117106332889726526799631538780834779709051009701623583872923370460611942520597216872009342354820954475235062270332380915753656689011313570263677865667188557433913246033830524054327033743990134312198351101579077137736586071182691714303831783226421288195771044719422464849135368019618169944303448757750866158992227696404959007974687227060692724139224751500306375477394858267028532261073823958314945311253959702744602676984625371049180146098130700436563389862264581272750631344083035896141445613146430823160831701311466510918976973876820018465231285015604933109082209150739738005478998296126403839038012433180667543096784752397477100629716197188769762513414757519818745331790289359959829284837971784201227102557647627848487565815307043136290949328824206280543649152692642028711495096598628480791831442185206501909026518755997761199714736425289697847456681957789690107500391807476935533892938910045170956792205461727086847844588767308544811333678362377263003838785300465161787498990642652096526410053954128734388999264811156578199263051422574618625108188399135848267297581577947447881441808016724552207347247966997926312825326925904772004016097780575201095477465452696757160036870413987662335328529615913695247527338132746351600854252553851909689082203117466254682698649221626862202604922141719538882345289282351442586178574261675424039806305141798408315329156614001529059534586189570315182754360809421357436088806221551529852591140174912039685556482630247333696797679690138485722369608555573716494965778649480553492524621640612165915488463510205440829314562025348044690506707383704556407893542822656386006912717257768309538108301495999014424418231816330655948496742804570291056141557781684786030191829715701040772217374431046126570002083641493215491238636380108029649134485053253819534812289020944682087041244377517505627367043772772580483945673216896789167981999425552573079635596162103620314506279486642218768908003325228813616220623596990177185008860984792801454875988293074019838458814375167445240883979419925483679774088061516110351584093172413576576383411190018703874455791735881716310177588500708489121971413838698953355085226553513943226869433549646147281929389087765509614144913685595581883022502172725821799613246974870601113316585078427833103338936870555483070108576475404866949207852762486589636445209610479291735233185461642943848227740328620034857579019750940682102212253696138598261021725780477952434240295235369138044954544788372295737814983269510146052430284075248723242952476562792143793747155740398491035989579202154248704172335803847789345592773303715461198642036704608993167441280606286722331418406850880733102145712734723146585820932850440581127121887472130137748817294898399553147933845270556387028486833912300826674537502011874605146119656845995593785758945563427560737596407873640746367444008398474046763177544425069976125410269392263713437866171233748894271892557877301252018069104710987629578227872093057041160343707362346534617862027586677207707750595961723909784614201363337215819156396646085101495370909360503722749083200727745108736725760260275736587117479721735348384227451807135371419110763234498564744112006810292534876454795432730825035215161892023378948984866958441280765741098595547623579634343555246075471488865413277733085637513654947481342650920321329129005135097216056742969205917520652196309660088517755572568990528778326688020452581034551470127000094428261249285368857095008980935588751436290455380519952122538376476145600605586519327155213169305391836187620732690054763946095882008358870417548873914771929699116712379728477705881060605651509919738734454778162154326223578398431561378895906224437736388786215179064594180983568994283145249126024298209540628835003306128158563489939526285406044617998368325364321297566036905599998617459552227729051891153395067742889060886538592493586134268365057652599893934403632644983484800773667853369880421077499864068098977125311610464246808404588719640200407178864804172346530174228505958899479478875073735065101182184227287793839860060583326245549777373661962358920037196594625664449084883871502995060961848685335670611606647797582277509190694839454649411684351559574596836466683584084976534814298081389608228416656789898136084276632853082141452512517455531565526549117175221234073207619315612451050317492410766553495549961070819331632609703742373121259736167674386480121570339358949477372410488390896226626718345081497766790833310197396951463865601621214095850891160306916791676189417422452471919783201438591718495589560974421556695348459002602472748221682090485302115868566640794363988939043775513468252983402065919513613224038578605277747870239350059236365201919765992841394268402066926816868986748394118134875182497560449929287797048910548756776512920882535385619666734108835126482024410180049584804542342078894690913569565181743409387563212460242750148978985333738140439381873146249904548737632778689992088040186937259985457160290873557907647321332585448725730779104471139740923659720127138743605558307883508302630956537213105525737173793394708927156693077479564308942027918952195730197913477432565314015809308319811616502540972009060827055684108291818851641245419285818918154075249034556508614718332053920484386790805385996654536261418823714277318753109770823437568943378111911623175074277551563577907432199521026212632997046275235147885189565160330995598035259056080216398925048682452160338996090947170242166409615918814938378270116580647003248845207601460105543347082925311049401490258309929852935819252795651238113931049202781786416585802975390851019034957402576584296807501708215869512873672608691354386057720682094582730058388622402546916073878578231312075155213838505166777414176381830114882654111249140703309508636383077683388744011453174295082813020247700173062200571819992568026009695387651275358723546143480599718986412893134006662070544276712286868651512510587084380532440770749151089480543585059454645765625122395966271652780399632824526337875741655904525475027975957538402975112654010994094499913812647920516735421862428567887459909661338630310974788132103110008689679292108047902728091462583762796975688407583429002133393152512393575730693570946514515135234006693393703144485158503937131494722695915041959287372240599908339603012889181508983217002516414421256856847038031315185082492322985182158981381344182883479359113280872321421847923769565967788141682022105189368945107594768586161103169736838461505621121815521713452415638957318538725047193604791191362649332541749361149697398002387869513182261295936498901865077006251592016261438294188623223176617617432042203408666746705143850524734571839153052231492197312706062928469694428173105278521636059463232122597151791330865320500069464478208706049114189367207541572190676064867316807648345500832507861008980682736156328624529494641328804837513058536814148078348749521253171981552502895134018389876042931100043480756621233312086180256856757045894310487263882283986337500864888243438385579832226278182318600841885509836573100879686035557360749510912342470722993477370987144931953010136531611238698357683388339984543567797933411570385251185131850150783337785819127815636815962467402639570580061479126728523797534419164322388337442063394303849766372402969191579064116379100613950525936286391982643944265907287950861346076976850619017645560317610457953749246369891555146849001084218709567037243897503071200901065647407146162788121262952891449339929380478209346781669048173532340627949470236197618711807716990547726710594933082779528826185582135729706755865433631787921394829918708659425001984992408171976877774550743183992539160742811800432620478612164199431816468994097107709163303030123026409638201120321405714321939434184154511918350940772508208831893527124303063198716287599137048905108990606368877515457758434161096594725613376182442431456996336641403635231379172140802894554914904898708302107001846318036824943688607954114188918156039602614277767199416967944601862329191046958927149820304390571481469455964535691180251071612498692644435754620825792424723073590699198553626198278860569546244533926071766097764242743289895330246712126904293753955523909831446208265641975600422986425458389235222157652512959206680830789664786905742818072313606740522507801337884331506420354444371585599846970957008800161345536389810070140627178276941651633597224539671500682567938577486394047592672416928880007883390099982349641674052596953273118868057792881366285146573544099476542954737139508164888138234877380749780656581269775297388989469212861793213550533109038259499769520282973967326220281118284753563897974098429114903324581450371113028898189090562771981259952997363113609957677955737691770511656671243115147240077815396032310373222852246031572926915535381749674748558587716838211137691747383529833645633545284737535072841345188750929947145869535251207854054282650219270967573147240922879519403275009922834889746594650821006264925811572050489244754465970467722895445370133603226929925639891903957443335424477456253478520547851896192415144146614862839366736011388195078531966934342730476752361316408088997259297718734354509849632625409767254870149459749410812643427358265755660250939668588141611271301468467592542722953885713235546305653451377624375674753084358590827437290268447293525050674652037944370143086725424723527783061222441113112278222307424845982163840112252023788616860351898148069068041842742538301093614379454756451142533913796570801302429335371146948533989852956305195325573980362105540945185663810601540555553656936940820854394915636497972478443645265609088092187733652679449818649223086364851609831545950716299188538269999276431000351193249870614174143243033210509154741224251259197285877348450359040106253323531785193252949460641393875590723333304764798810139568405382343926106945740652598076896838401491385180947173576945577499875205641801945232374934681728346913436944720174940811628036194861960727218170493501011160016936541334974194342951471123469937694446636455478807584480280721114850799650206673896109666620365724296328218992845333774306420527778378293423294785527437119835280712938543403213718383426716756090434809544785333695409119868176834525714788868215585716311917321044559103261701130271814376353824004037900269407168047939059313412700089189664960653386513272155837501418807901334834594960336565278861975715965166489200175753314137072361535704562255812831644816364334837406095597934552082965274804609072803348049970402915012093758996515090856729123917751464766778391068753713837032559765670659314171460840321185500690011060705367564431799742070044185707098563166535755170617408001719887010977685385991345102949802679016203503075601649817919172401719685238373350851918122910073384978852268832662352525356357493684310248224528312720798285041148985998884939173461332846631888308511606274501681606122479215336950432937357591209898544169417233468362911437894135765284358621367581391095242800745818647075474666202617804413565461928191378547488613865614092249784634552885309710872330904164345455645092813242405252562489011917985169238491676209196181600983482072174710481013883892998922208867661781502637329529031939543754031725037219410898176853820067315624753003978392561384177590057465233875197763802639166279376951994226801447868720486589737948842148828207534685985515275675553541855263321955486241476271385713778716422789404888911787085779564753672151208700472238209187402999333383266643677646977490086477231122762998049034472937072606202710451622613523609714538259756109929951182688294268634313482736322134815509932615061595092586674946548280356911056952417481403525677882747410906378430124240360725502779377280298981385907285774822130114108735738515661706257519719873192235040634123029578771736134984310763583303466909780424809268897005226625411327000008821761611745786290986663852567815781494390444519077162788769525814609243074018607074413215925333656193892099083529331275752445111470990496981427435069368816755345657506345520236367424046871440559341495472575417595912453347535963029805716242015549988974094793854292593651132717543598818966818110133017819933578309370402502795884273236931062814113680562347315460624059660762133199769691149313617584760022937233446836265806063463385000894047133550298502880867731569249143146003017631092673239116649720764960710486207173943263372285862575740079224691746472507936205075963628265214122973029949131317892509850534096767342231549061133273349367845714156118181419620477086474342736906278951130957720674457918944926973981120740044393926961860476878027484133475358534474004373884674277822419313034210225095183053087832277247679450592232176613402977638289179444473272664943202992701657007474884217256612969429474109069813644797356062654155823391149446792618761009637260580515437019598393163287415059937935926336719490733855001774813542777374980362227735763771656839354045775539399428221792510913223215123928842285748046965250039141125050611189707149548959806110032061309562826403312373632228698935300079028651736768796451813934849103329629425970035217352596289029508735733486523610261382906938007207379071628771122705222216384548248634629664573888619660079944997778353462850840935878158126794127931291187207315146894294591135503908527808640417971242495072792777148700243187161942893140869480796936335013060072036009880527640264826334834669487430020616655458737725461882607845220035324550004548717728602251559170372871820832357134302192465696745046396987483857084957919432259940630049116118770627395944688099967698428590391797827827709856166026799709320090518426719572085384885944668271698840658849076831895128959566455656699462588479954676391091695097388205904456866288439038731265219077449837725292428347443410088126667788637194042041888584393444441732802204944438691019288594133175644053469400025944859044342746968334883729519556721753757578130061741150360069084744715817556265703672045865778220858682844759576330500879332461591101023194679965697888269564936249701342638446628640101702444615589655201065419183307002729989764786892706266552644224694989209270053047385406308856071616738447585986592591441689381777090136013236001062431823057170508565017164532954471877578317417525251418110893587912836885782088286064474939310301711937620963567702410648403417631917725290911399886035813678047603280255677487318053341280787807702182138333722437804507651531461784440526094456487943838611525552070604658456731856490373061428343516417341535811395327158277862173727781942099499427246599118702590577133353606565254660474276477070713810267109939444215782162002684054343604746078573212940273212967160075026839157762807176265343518432608202886921970549656403542929213479968313548384616814644687032441689721066189915282657698760511874010508200195105040998471894207133012236225040141779559324516363999615751795510901198956223870292858651872408086252204898729961140865674949653555730989499543647619794296399259619632566864322404595871799011429912660319332896873522153869049699449214900337202618008071873921299164602288033809505868648423530482452522600079273233632834920662067845546228116594202427249796699723650983217117121343687582918768761828543576568098020868475759981898750015619356393725080430860852573303975288312540527220376515781224887062752113456423769009647945509399829776753750883977847863755470266745080861470349973448093539941875091531567484265435562413354429655651608273733218330132620695271642058825988704977739881055142866308768463351348337508336674995857996613596934645840368525898855647483259813214358211051536042837955695402435711150804059865788781553019175983988861166705451174453494164768523785450480266945798298953094066769885490595771819829074837352934376288781469987973054373305692056513409368460038349927860330097688033129660414750031947715984491649390854843221545509893364027109626420374843654842180733664496470255407222344196735480240852495725011670813208177112001944507343873225744342940287847924335914741853173805810102093396929868328018587825315193576745093888954387445362141652884657300478278394342779830146174895718974185677042198353886951976132312354126224127275275831356952938149104153304623798133337032283725348865136882373565504513236900797346588331263525388137556758929067367580283126479343882227012386077004937008702777849436043962750646121791995752033581813639688101028365075045692635224456498345071387130306555319866287915696452617677464293770508133835417670914806089322008326617721974768488241906411106940885757832039015399786776685738511852936870299281754324530489758902704177445994826980731767877453123269551502263691750949358057806615827809772864478009461130692509083056385176050675366119487699811117407186610289318236271180692704477076871528061400018135825505687760689154939097629828105302622826092887240123916194641967858914449057997663139339668708081640861911254870573293690731770538035088865150452773488484849172327813529446059702401664740324664868953770356060192056716883864065739935762323340373769581744132227489511581957969250955239410639694439464552196087773009348603018990797988759706579664080897473883912004454202542158563772506887682419867114749830691115521836569702455542629658916934950506528729933699517432868393524344273142396081254447156737536021795476137154497660760177014795966853837358855935851457612880495397957976379715367334795432272100108282934739256266412840956995026568452668112077516987865358834840578800843891007663893615349059544689627564933828095461838140415608444065793984661702266230029195338824708400933934785812216765816799036807716801464225609813983204127050868343930955842598365853881389117853828280049864562850620534143571086903713329846879598281346207832101859251098556265034718486796954924483269678401206331411987182398233526045550808101290561517551566746252494597697689810102775257003590493522607811653013761397562973969204510991971537523372908703429042308067118058275517489161149212295997901628267717661955129019168929380206669092237622047137458810635542485932493645105565433497829145274435251951512055748206352314005550955037341904521872951360768441785553099827225026855231917613113849239182148340766161677166684096068103843926878014445147497051274650437362298000150519539459117492347907372906496925443924380030219175990027964421311302902453169354180428820612950985710757701010563230142053257542890421856029617294604232451829180396149789229066308521872167473215024264218752701885379957178111882661070195182905256895324613881357367474567677570472306701607241929336317841318235368735694807102899670215242352508424666344070516005529053160819990738946867332324012065575723176328407255670117137706095459003534817440276546896045597686669318719305710696955108465430327726534707342355177878375524792278894470384214325098448978642271383948915310443366828525854141694571919991869923992340542306985851787437373321262172665485123187650796781716385308719290868918979935590439860602554933368044921455589298315372474110152985306003299583975884348747017330749600511760394279875966440246767115692103082174588502375200327526736738976494961704294648439345915851328699078165062651522445008786373706989506448457686382981077167241168668124880691949080418945270375379572101375513296960124533717298614492339108695930262054206964320444056458076028015562761165843003934535020733177017966834433538851078158633128070630721999822646176028818960704192011037975441832160774527542486518671605147834658465810720955767779263987224059711702762711445066074798293660941999481045832393454730405095621162001965401671080010315164518267521238623317275835932343906956654993683195236063779496300076861178521386016616228901543017901766246677284151930569459702895040070806620314699918076583431496638192995305864823632872318088617255896732607593041211167586693209431246077898648610592699552885782498406593355272544201204267701219147470303382279480900125381104666503299462476754596874700311006709640787257493521019524006546188870897816247442965379335562439838027918677891307749621564474273803385046178999143338865434236083098557306834443385511239360559654567358589247908358315926184475949446026155397075706657380119575879152244291144599840188683055706686253382543512726680372508079575903516466836666019761277447126800954763467633978791893660077543434540002111619056047542046926475225206278329271181824301117883470815207462142495045845987948225969165200121246731235220534929226368954480565730115201055367415113640316527225618474134542953797576292662019570386296420378283872536648328373518821588128420924060191894364625329662873453471980163065202736805311294703776844031409315147059233340264490897365355009387540062619388343523105252513254542242916747728325329087035167774309319462488029643475542996737253756841426662436533338818020440304553646979823680596705092018573492201967894244979613066568349050610694121572782312181102673515495481367559472581174453742490576520767954761875367841462026955236204992524401243031025601366962099556565359167307172819527412567855724908633938404149738550669264546208118106959487524156950734175765485888334141242677129725979727182758753623956082848671468194149518347821520434479723896707704036345232778649644692185707354218414935834543706362020264908238848210076886365245595674082010622981279445421398923906740969645963592964566956785729299980611837799033400011355839812175960782178758530623686860882526413910470259481815828137124333481005836494329603063001180275069339713230096451410918337501058421236045597124747149348850475737818089178270564362504046715522881274335984565829333204777231038140316600231819563343150329774955024911247957273875091492885454148343080474673389216701747416842780463884137703162371691904393721207776554522989964184152341841387503964803241238180631225159008981756697540288281391639543276043065633549632004742770740578451717610518811856854372393840010763209366095679753122662596054619148486951694368491498678696031321079852947702256863992685216128877709309709276247664646739372524180518932269948736561195896613684173776615050770819025158531503560967864822119271702316636429823429095434310543889182704172600542778588689074612594444073842948697625930302325834078447284879070741339275012141559442395218902630108089886178014855492433963121188457066141675787135187314650669709004815622606210728595136319813512509822747137587856691832293443381740767277398381139604613586209258251002675319252585471630990052551904490186221756072997826906990976517877313758503441639577506081030431003511131627749032664947942926487611496768052668099131580284907981218391014306697575221399802633635219552437705432415238377523634896058025986274675326750614547919761099833880528834571639171411795242678826671280106751438073187107370244293036610974215569524026824805910618702440922955390102671714270913060563417404065212382869219604595689826878128437053768395018092304884387654104140318329070149240236945544910096968911933947411972485490994336966731701301225833218926024977680151440616912984105251516897426529842564309947801903552846924727926900484331579517631989248367284716248475398160866655723638002267728097128721064743935168406568099266325123380450834858717617776918407969425807539226351391271535702759243153420568795571887427746121024754254241908995578540687724870135458167776181269059658886235303694036043783102330108106872994168163360318252260196019278754139026980223564416646689275665459151712935010754006740259993806487359598006218965741414979712056389462451485553157583937718060503556342760863885765059798207271997832234150357908916240649162200157878312158780549072377528214939010379531725676468960055577551052291728425393385849146795081217969793580524230547732775538765277418537296557964189008523311555162717431882239467452880942543202063574475213662392450770461898378976261608986585208962233525044300511430542227095972138342643861057951971801120142902671460509914370726824116835261130668448266144574639279663280339045978764059303382117343587995390786603352361000789287075743202006626019676923378742747349159741395301037153962643461414964689555601612158183035103094498957130266648593481179841443470637384854232708935740904937140258964564607950583661573749236134466200109891752171052511850618058908802013162582600169978688489909131183035787371031946469808167767706972001847345633898732116805375253186696670595326493826377507753043256382213909267234335521568623156051061182543765834398350903019551215862774252434302912728037887234325370657711394242896102048669612200897044620037773981015305831749015237483774337029291683849994804771523236348240576835359781953813509061724033416344179958824227226461555304687514822906831570961700251556517423631501083170978808818354929428404872701317739011355933104505453688781048300438653009722812258953370733920947990005500593124787771655016340423966791495993601041396755794134867805617663152539694098589018245906677256629505296589500246941250119374711815031529028204242600519857575728944775668789135563398875258220030365577616857845241795489884991679777800847188461308238198126914224031615879511501763906618357432873506446614977909695034751274813078415354430228297454785784262902682196645952750477014695558950727157122677266176427568619255870531054102783548461197526999740472460653659467238512206306434785918636067561384735953056239821707290813096064914025504685889338901534427719340794901224655173989168718916244090529611363728263287874179338493518114911530312214923383212477615772260339619090432161392950949000605610926035895936698425988388488405063193743170882409809919668821469169046633372677984159376968103519564073313599941692340447313317594384133367039371994399325614423866115949477018252062601265538498677793667486402719841735556609514490284535343325223791364186914241193332379649001007588275094959086391303242907799965157328485782734417124984559171246101765443813922849691060579810074607058398778138355991282996727277127589922988213946083648364252541792582274472921398171606560156897688486554069740370346642483570759438354720215519639896618546738360503699254624559438046169679112378890329847162711088967540442686651275726038876656071889854608022350537956906850730716563877872579542619697561084366905523694660869294042096777221156520017877992107975812529982159575103972865639886090005681151712108934093590217102830601913416546864083036741316500711027698632285428215328723428622292640472271124600765816064422364375873080641969005259281482089036950996507306248707625607437112457907691851849773882671333081788027891453582952983214996062462699751585306869069771041981149776737491801974064291968540039009173089365082834617319989371550647301672201811224854440634319543364850015094453928068063740337244216769685338288700629263058189737353332650761527226689068113001721259619295707033080164254819553005391408819401846162580494944620904002051861723367658289003517756251774956098471145626270647604262569930451939319731857205914894129618798744980730624474529197136253262831336939142518073775354037932925866638165580033028890040420924711406488260094713957646909996503649712530758833279379457473852234148026531881817206999643579497665786746046484946975960959157995182873939622140616162701123932598764728349209421304541750856030367192786832817624139995853987745710856603814985608868100621992768439837731240458521539985659669688219101848341896738282022546575283267915150825699613363812989704103450342594846473036753300376582561476026107237377793158475490359782695963963405352541735398435664203062196170341561127537046420480903850415314877422927683025454353694523791727261096727133694580914253749227232099564259662552459646257336859060869483447624974892567574429699354198905466474485168707164714760890792711715287796875790753085543895454071628920208819980946399885592648203236745821119921663969009756190053145988737386819123901381162458940206953235021602421931806087334462407336884836225134438356916229533289751688009145105740514506457347672737093558196627776446320832049910647683929767958619804678330088007595641663494315843174811848264040237885439984969325005580281887554975409369175603163938410226379831907659312513073613892203656144655119855727898307859871461582513792626366806704162701413154949142416478882216522921614039385492995609423265985464516179210702602030000736631832037992115144626667722025206821041334668796782111955603489277346471487152901847678708122918344934374750514423540311240269132430504547265575619898620946582144737076160853572169740702165170557680107217969837125760670181031336544876141964909295598162642455204658159546077586800379067346563242040129034938878477196560523722852041998000359317468843050361212134506862083762083041594799034352979578837392150631116983929311198411279837643200773038543983433722752697250888573313230598721097687587645131813654314009414799169215332878128674287360363068908733453678203407147055557446516775236750875819313011595839076865305927971491391291191334707495610034662127455026026230130303840114174134243344449227271021125356505219520369270796577419518767302805264808613280032056716557992960356831168675713034392427951805731524047062097301067583532620781326994261627999595199159460582792899658277510670147687155541633563206174656112391556636688426783526116377532366856820631229788399811737331747489102945820947560495997075317019517857751873448293500919506911034463752034892362703264947080887406490596855812325923329167329673983933122159367082623448430843177414506191983570788432171143062302589242813079582747727053209216192455678614175645015826618980920002936999625251713902307841402505183203889344368810817254618176727961345494931438612195180008477448340487120473275912267310586447087357690496129547952648384170848011993733185633509031466418511665956171910234334763652453426015138422360337855095659984221659283648198515787224566131347597341392193539233071458211317676375411889403687696951998013530697374515026530432697601965598800602728917707305760694467191127675997702868611796137322994102736156021239282691112058081268559426176352831640577007844629553760891118325052844956832228657580230415782677321087643075903704662317526197717474519667823197298437339486482926373340844718168134468027354837800516735434878040918316186977370103952357640784841855506120656465437810894308601611909906616885853164641343130888981134489640660695898418334875346974381613155495136952808080614788574455132941674563805741132404868888023852280840516981145676237184924807007351690974635984380708056693500619762026353025149304265794063067174452176760979167745973253913310701526676587360426697790123100537005727596495079447630337119527905501743312310346978760231341898910888957612688120983018698610442560833867738579309531823101745842553483848750820547212867548644363310943992028784272517345193520910700275481498591914001193119616736223118719700978714708014603128357632782523144583190041657112221176265214537448095182963481284719544146271541123698058318910790065365757665940858719968498099740428604511217235757478280545461250733297582875404438002173344246741322291097756039765064515571478634603694033329812552447037714278225086858838814781177314611360237844464324659160396501904869802136737584924854441110079455901295503902280389839368348212358618835317750704673159296990954157577159518432634480841340395561863934827924591284876867565449188199331097175757310779027351027144973893076105848863573483310374188790049708085592084610837742539200605645955345606294701482487747728410588195570205824755621864381470019104002575667230938651888347507630332937705737066708739936985066350998882757503023897762861695896382325910527120301858806176243785770954868666167317314242999227361957511591178080957200132151784684330560073853912002529841850381948174320725496281272212933707619508791000157481452230371789473614978608247709771213368975715731739979878057617276741777089899526883826071669267014252129589633869294163720965860051822356834795999089181581290357420256975375053119964565821508847996638018129726713460765653992935566970085900033386480767274267033149799482698139508506665219325925093048550308170285742094506592825577860100469446114046878033126389638506478389173214077728878337344334050134632846120164778401802310017183787379771575019479938922084878793416939871754617594196729871503624922520655316445899748431354014644778295196894882221538238251694357466223384058466543374841452909081422845884881707600520691322303894884426362670563228496963672487041235489708393272108961087358518915489327458132869679526752072356544467526625276698265987917747973155003670806619646711410767848625587475852135019950022638980737367698456731852768348790031672954740906478462790514895132338709952475041349664205522263551724542719848814995822955845995534853897990570567221541772645377406022602409315431603249020739160272254661818906604746557667230513487268991477322974295237766290041553834365472137953449848867632320403690559673748999630481624048239207579157497653851678142024968380309740065523443120061796922232257719685581169158454976389952772064153782574143850610271651012989982586403798659837636743608619878140340483958037539661965871278962546585862626430179597119888019130573428985013607309913007582799838917480925555126160711970008967944950962099367738171552100440009741404681927008178380881088175412904826231836045805992550022226754359286813098676100817677687201449206339840884553921249136404027280828409117582020308725474025300176505986639261769427261082148910271359455034654973653432601162978095484485922209404227536456997825041738781073288023525852497254870451274244777224425906056854884523720528802536040702028627129199693889493973804866108543253182226563776415511132091332198840448702056611553263910869040691208814575874232057158646017137955658189401400162209142563803865292537339314296347246000313389361152730485746321557164936249671617954473773963972852889061870025797563714806608484290422712203386136151733203551668855466326985593312961893136112851382581884225650257058531449057729479469241914618556167648533163666059702364730687284645106073701982580084629128065642729918020016824439035519203602202358168302815251552415089491109108726671266024607700946017986370691895086861544582826850344828006696563497965127160971376185285467234523211154699441145845097451364357752368332618188670356329092610209199615708147649457803070882124083527449520758305374786334179459100181547312352730339301264780021289645267720842766952669874055653586472910514954564717924452088730548631521779752680070897054848729526013435647685811097311911162580325883263784324324537827173171398149475653744991360806103296222338166639015708992521801225088027126143226219075403214523662636366242836722256855461153843247753547778346332360597505979151973089661328058380774404867958130713377730678492227993368684781889498492607157249629777823094970460411846445005053906381302800619833223014791393664536339428595219242904795563574479291235740879419203879033969543499039935332856516729032383868127225845937810848829763806282351268886354693552111666296549503315921038697260914732797823926016320599366774054108702155175699543636066633870100481951497532775425846383667654282080870707017147702210472898215375053686727925968146800273481061667201740759977130055636207799188132374586893061296410074592490863695328526068616207540578032091552153343378544654660336957682050437336756042325670103181103152710703278451009251662081873978877063118105647670567359814558668765043366776733911968888485172158093948797521197671964463079575014611579258423222191311501882523371811935480733996834882709956578350478134095650748025770807158340363054772547035165396466844664458675811443046567252521708013225830926909477123361271761620871950847321188502731147112681000571221716181341040681360170863436940218786660610602655261766364921951547057478850946141162166544340639616965171554809619961207458208306188935543507845028646726879461741545872485976042389102136911529063117417615512605476137402692471633315281047876316883936699456888171355304193320635088239766129206278778647322434096636552117407638256708235980770288032991626166173685077457011146953509046122543446194687341639689757658818252378924687438281450355809458828460362633052172122920706855883831994232563499528586419891385253957427097826230618016668895239899685262721950134894449375873294901853457651888606071329532904402916666943712353567049209340369472586467594140673234673268681789154700676092679972465295486123808324542103553293340356515041481320734771148543439669609538682336826691825533966858583420868659190798880359058150507800659903663933192906811921641408841403026269042584718584289804973136864240575277614232680647462360521527988347701103624107998752872466393859952709580799303670437152448723530111529964501636509040132254940997980683331457156701159831289645976590091783492708144664680440190188230962809308066720547682341584057153650632168152259293565456014379696284971220297273762887512522198121094144781844126848969550503081436420690410362704884071440663023010860590596705199263511279199646161102429179087436717422841250419295896517399856283732233315093855710408992479765586277047392043540271957206442562816364021588946801453371681776468233041520162730575993953475463792944513824367143081001521127270108127607196166967677984726640551117432741602951858425976495093543439411441302897874694906566604307997989296687033561990727865025910924659182815549133720022882390277818261155671041145380817077493262172905930955349773892726416508414994740168100831583647366625323198930976237194635440634582612170508115695485049357005893447456569669312807584605756099075362524292310552650569580333918868121795294159719915836193143582478379955147232546387053746257656829457488413420797028517613311168871397724200818504008311514020654729592529432926462954194540111154700052232164933516671303809662562771473737772899576942501903192655646562942474266354174679240930509577092770651532929504344702759401677041858133314004989869821952163000823861895402560123063910989100368781016167033918528275607789462134865765269859092853137758901256410753188599371122169334577576388216242591484883515035367938348322616318282680007361823819157843890525989144887403712437416908684245087791164157467704391359043765479271001639994664412933082190718742833007961291385684978875255464045930778586366741592731145347270890024238716779542592119043159816353278616855349295550092219677677227259163353218490402171884854618492861689340015440768825362093780820553912657089099824195588318219259837935757336794254343583160018937102547848866517078540354537178812163219585298211315218545395074538076186711867568217246609969783476344646663649085567967757746988082426168005799522425907487904189722822315362180103064067851570701125845672259308224821456793665293376185555736883596980656757620027305202761852871172301847737229260587448497519689799314485732064043073235466792990040556704568368429616387320077681279992855775821007479994162733983062937062745911326889377449664969254893852987676276693434004724116635469331951004944497620091518102900667493422278579291052213607455333284637878405277072920373824646251325254779049554166883666756664192329754903238004117541745590102783553036529408945095628183847595818642204070964081680703283403583144262196305565833754230884008805413341476779452273011394416959748448917882775527362186492516765219215138348649126933250562192435154114320129056056555288179890663271554095297583316202481184821169369159536965700604884285952740208363111330632362165923967795168518726443139071167798235450395580411645457865790450382626047763129304900922339461281179670549608505644596102636226849585952762306973233011146473490443636754023185089318955918017069277473181689056039240360025265463433380487537744387689452504749131717461766938031651955183288292379709564844447081434521868413303752038864751701105078384573934152349415104803220652925228421618199644698645942864483388873085454861026920001942784374249387107530564305962221709362302415673402522465539779316369225959866562361012950041315032272329248161317265791159392544871004520451434302575923506984830749038868900702274044781288959577000254061542232286232230707220284156489531093526989480474002152755276668549549359342138371536761730818672796687764866514242472393094441615799901925291001145724893584944657229159970498052820358688523735889402910072459570199842265824124271992587561829264993985232223667198476525664888321742551008063102150453918134374464225885688799875053376709637647061368768101320183041235496406310606478975294497158847329296048180850613738932406257248803413623750008644363325869747714340924465052530650580303639831397655556277229436727254287490997435628807459814942785691717642142349206027893140058024206932591934527841522036815734422307652919700122943852551717452811790178754608295173218286342881742594506036620508320238153392733848902765721219767817350121636594179499546869618337108019761799538689413493265000832636147123291180454003388402591006839015792393596819301525485333660755520310494535419057325825008719620988461951426669958288570089142695679348302403166859537779126097640501933427756358991579299938285308999528731135158749359086975572459639589852762853252083753952081186572178275923973098473822393154800508192184839169012933948223369062053771900480856159753266808958960594409502605960418237619996789773367164520796918152912577225855921357685997553305789122564696968559212191416795958221376022695685146766693477841543675557696530614401655633170525833782078695003645713089883605619464092932523671168926504403592406919731757149585367746801468610546906611336661330528212191785588379297005527293540056391502689948957288034441767464089778654933763966570155285247105188700812563370323732165656245289488936810468932778830183348914893182380445252058450674291414274321245176035575704308794287699336304999837089070711491184686549454494329337134543028260292522166694817697480925936398861051290874544051898454031716723210809633688971361985195638262023405908012469952431458261711512616082977325878873555702933852347094819280131873889980257319916670525524862344520080386806039780137776884886071083613695261440249262102907104044627862011127966373705855448248365518530315919858043897063856275844810897308743046054610454894809830825891735066594824365890325838316010975959502110175781013490185269809080807965426894970846750325104546859133331029745016792004441416295539788492254305123930568909887375656902162689744748903699182378504469959460211175231862564145771914812689398754988705368639973614081554128657535190091514888153852306189488056376675661096739789660668680486417133226275011482617722121962190851552019549053567566243666655444233097177583876633600855489652279072911671471555510376086168056644980328680013426809188100883350046155456751339927191901423861912909620791940152997874292936965864265763039228270851832113168556254574918688301159338303598939031924052729398346579674702796483177737537017554750942552262743475998612370189980836551301849949683343900881779138357364837996474353971325637846842338516089093616992035129992314675480578687500324320499437286222937902826624587690415192479889716497592544964214771556729096242571983990870985393263285904116885587668930630985162670151964134054629759141248814563523953230986394683931062178225740299160166628742629380908681291759337619101112421193363237793779537191546720086106213626346832451960007962724712176042877135149216237787307468622312686958814414683427984289499691747766920106365253848494022714648446285335418241088449835207107393650334422264585764214192194143335391264674217191108967249062806365633920741993517715395031600276883173531180633582300913631888123963803687794454783918981189259169406363558702662524967058971053708374819233440422134780419085967784605585173971104019640405352377774425688480939116516921183328344126484162951174630183185594769378446523684411805598654447416089524961640458916123746310490612191914347491613140515720844219144443991499523683650525567800141936689040444336775959502404602026236903021362714563916588786707670935100230217732292530311092220820336017112483454679887845215883720131980662030065239785789451731987714290537219959557869497942280976969948026338363670505163355082317277210240266451798446756508451310013039135467737731033114467069612787687530073174040446609231614396400748981181696397315366134415711312490942303084545236449046660264903926142158220012850687404710569672916158305959383935934882032921770044926664789215932967407834167487871893414203712140855233865722233925651195578079036934458059171332316122523967626204659340200816995929141144901074858640728907304954895490849253458600981028920324943007664694690915027506552307613310023396934541803848075691245294282683376532633197327341195978324457836923356295908070331757135349378532557459416621579137560207178944175808611293218368980128416222033928119486500058678244107637989448338971341828874353571600269835018117516171525134948786274305430684756729645326164725416873447358864607086529684216658524405297065174326345240274848555947096328700814881820539010422436585440564931901510219046984385710617838712400550318991701334408788855703559255757696479794094509230569942819136384636522449694668251336490957913236059816798337633775240946081373317701029497645959738729715654811155605262878194938277271144119955709066666993430198840168246451915277142813234950714386404567843230968203944342289701760831264201054010812722893139826381374253598262416107871976847506503960757298155389741136441383421771524128096256550308509178311586596622961911731894020734564743851233923722852074495090692782818904905472117590493613917048469868873447823644863160744347917761823034206194296413574214953132563069385384353562298292538594133613437210720960422654802723292688775963130427482298234795074297811336163458981314808866616698633649479224582886115520274168551559517335063190240326075787579505994447442395782254306739611781897615244471270213303935224227966251861163736293922040672270170596996325985057427294519072720375112957297121846400125707146467599162803066173013072621321085036613251830055376828361954838003273167370830510955970971029379190751345661782533310857870236473800842436080154230338277757573069677104417532490289521035014106026403761025005240467244535398933649914192526922783031338812812503235400820836712331636639961646593655019559964055594535543249177569438960957743044662433561664244631236829381660458521062613610005719013153129547817286222853801730555026658813427062439341179583272822863493579083299137717840077762869064999792972717353996026548252104512012856426356839064683981946869646552249005306074611986707363319199104089756074966942907048314332423244056697050080683810176312272369741651098158898693713948902668000336595012415356541900936485110700449159754414524127939016588519432749441780512443277227995825129109511867132433601657363284054406900693462687958454904818907151127996970570743156404782664347664980366737932883710514855509580505118188319508092360655787375631256950146691269457755153477224046319185410275633942814017191521749719934859663910284467441588910003361172796405696824753333011294435168965934861079957195413608378877599829217712053254344364176409527621008186564097881705410228207893021602122338096588072657304927792266818459252437470753740924114845336251515867027280140078811594266160259760982486378077816219261045818951015131439159433016612277364981391002338077519554289349004714295915501305210348653315487806099573941791372231069145283995640104706376409009510494816409423843557601170877595523492078676344037187161699073389052925504344704584885551007664358214597916731716107978824376462911204410481082181403634720569124261166520293315684967121231444089892711325168839271578527846046096830622851800198350383286821489004388539659690723401804686696514756333200059993805573017398340953296953687649772897091814595815813157524474557814731072104543443595404786454089893180837375221662909191390983485759843870811317249211491605562168438320622331610090804577195905659971826083024365177735258911785256019854365631190546484231048927725722143278636640412102386853567171238022454260552110499187159262204663763063455790512868302895872506297435896580870801994968462665881530458833281548879023334784502689265212572924643237842838348767783032311552498937024772139756013757697541939772771290577808684235051462524870011938298900465613519420334471510453570667738029014800925553811891914906235607176306304600994821031736192234134918128138897787666788742565153720212600461814292970741359734083868530943760927266127170096785504714916930174230243231075433686530514417126595547411263379247454000416300346639963255252161350884084282421047869438649699245545099930489732622833504992876090589825257605848172381364407608002418178083376557932429240737477317975424757712947662520464850794346772161991012196287863565069186401821265935803375128885649497283743712819564810067126948111584438254664789353768984408836425376547007640211429812194188871361075677178156191462802781497724184286057651303064393354651328170553354575195619972907552798598910697884696477092100129429772823948261681055618304858847991680878349411396447056145642578012203681801828671671741269532647159894536998895007613213521920795900509494535690154179986672691277857844504312962868482557512003447529147730268316436306037507339322789176756705363166698058997732629434845472000273282906065015295360445294109186963149473758961320966136480711847489026156435912897592618430472382479231444056809176584365305908704839931856867965200634521894258804828706951912438708160957055694558084326294223761681174698798025985760797495665627484122055955691064526091968868976113425551792381707603538950442513939803210470910999825163286120484965288891339390640832593871521004662092596866740629536159215272311491694020031894589880897689161792895194955791969620611680318721121982355898643458971144213376604080462059282304249764149089349421046078290905187119899198608800226342081370114243305549794283901763566397253943794339575429024068563956234034146122197869281231704407710969667884789823569921249458815064006969324620843949081844690443113646860309936852661323580215612941803941116842105035716995350259438803077670356199899266852451379171322837817743550826381618750480933733391696866982000864629601915149258089107207536343693195675127895731888607438881058751207039924870968976356108943676220289593089774059536298901648299266213106191241058327177813444975456732015864548676064008513225850360401026758755140210345919698765336336486039817148278002633433976009725589314893796963998278313371544545817686140715475831747710728870858142241657958002630242693016857704684145692363382534785536594922067485714418681155018066938223425912462914253016897634310234155229698599038779104106203974934230419054810795533812723913051413483133979149045989545435428130387670825451785333844224707759879589049175939183890560749103316487231259297027572458126559865967195239515549532560157966694544926274195547363203657356593945040019306843616080256779414838065695338545203016891952193054524701589440493553907865475379606539242105454799170770814483775808284028386547556311220164477817645176018311653840798664322600875799718535328984792038331535202871148322478973090306088511940603807243590438059434231396346204855106379494431626729421868836175036994985584231846212979692922433052014141152770377025329842279806293360263378396337323669847361541932023074186477500302697299052918712772062028042532486781281583467459095088296245466131370559166357925546321612110008009163015432999133658053648761127211319484130923823103916202363325742830797991509429658199701299104285668349903570167049144339304039343248202250669042256492684134007694877606246322029865932288269067706347995482890311843258031136732707337690369814961643852762846406764154671657300112026439702650868986660476776323654195244981385231367541208729507474386611519574029678570301490260936587158710550837390800410705820350725814460104145755114574031875289142033484577405258692217038242296659340762128101558636425150492681353576848165537196783110282547556584299776844411856574857266801837003279925952012605201244972225345571895864738541914918803124175150652223397288034134166238731428338372718511160331668772969573279326285841021687474131282247589082581624622978886398912670229254444133489243329820981888457326753040711791657972968421724499323592028784506750311638377680627421681342283859967806657466589195811944018222984154047299589474411831964672988207624300033879510373948097947849521170575116004149254709500730797602375551408624465613467282858190715056363899228038242607616473998301359352426476308751877402383064620828011486332971551547287702533278341589083391141489393782117044480509408342601236959084612847353210967430683005936820535091273915141803876895367577506511337521310590041502109603966448464587159587120802896228819030905250237769540723538190904322219613795906588822952287212770250612382374713060373113546385675029057782795747323550324710541997856434198686106366935268364192532547601076567538210306473723205601509206778748783486675904760144568020307573675458745114359675100250575334127306639962881787326062445789647519058708672317231610079829430316193927529184948704579187578679937629904794607639385452609043755740016055276296274238367332738425030140510364416621510595746425181865575061374497394802353660069897666239458958439738608807023589247077455457975056644674794590326837979685722772125737301615642962167417001345379849050512512027920748196780420646655590293883665353882156584974055239278344125936585247819053637427303597205446806514118637129279064443212269649116712359672327671708359578790829039494806719528347021243603111739728142522225875557615997960411183382825926063160246333429954669411930919916066411714799332349975166795939773585683605270564471807644874284596003514059315999975840767370206386177052886484880466214151893852929906637260847352427797224913172362995435029307836765187585327064765637446499969691344507555477375760384008298126155879241837232243643318254959091885368143910147657775656267489950155453844747064195832305467141948142944954689212698599226343353911495950815478842071016687860068690639882367217215998214414466976941678284849333737615810503909547535108780893599909185833024356739684650302129376456860733881038715114256748221456067533203828991980732550104731029473647629258239118372842448798182130703224413410425197344503512674653175235636559597795165567558022908618991423272429763114967438121315676665650826895677045783464233174501577565881489890217989524768966951490039560784931722039645924536458094333158895885230633580800224843992883671611266380964865374344754579414094958399896407724294215911697635777476380798079028290685340117684939781867355758001020643623203323793021517022788878108171645403211375322508550413326427998681311708733732502576803159121670973011017657330057796931549599265414616866194709307427627282622515389072060584666076828363716787083932619978455430970560446100037312437833499502281543057272836332192788667697512473309690567290758156654662379371496673346946268563310411444281823309487638370263339104177987897600704014740403183944748744792167068842878300541545842774181987557225748388219845062773788292439343293142099553094544460532305679039614015785539465803271663850192878404192331593167711929598005708463143840330139486112087528621878388124369124564581673641563855246008259077829970726110217238479598265843911675947302725317487867690833205936511457234548373859472169570126412730719071410504706830840039915757540306007257735246489435366496024342857208094979342021820478183647430306329993330002152812655148328536261495722351750007808048091853084429562428768878967769984080491973832501119676324339056037231075710675424303974730662682483973147811138668073378003025173802122779828268907504139905783768752748218189642805335213539230774720967665609510190513123592308339612551788182133056353786138619304993672818097712374951403236843402834589716579314022692434150009648681622400369074986473687477608591768422308863958914090782480845274691815928955258037313314997127314404196659521891426962200002109902472265426722138675491566878800025469839049286451901718146430954626842413129568091437032941714758049706630119473982521906564785127755590847928992749953959276263460481682614696033010240160589310047323050524012185143634040330101789404238815122493745576348883376323213349510941559657247464317806114242036961714142529134486423129057727069479148993719429025573010332534161024105969695462806123645548180297718007536384967234123424903993687269706856601520264359217673820854390939045065630145169430178366025137244346663164466780690373587264952272382313688086599056412698440918499526103021193742317926181568048149046060735330882568911364667476152488977860135470455798406119658094382183533208287275233497889302898431207024961997864510709332917819202914442594906703906258325847057339207343778356844045224149514040323990147123000773201018516348128790739950067048333124732662442756520853062574612011121274071540008751262315584208380075793080426749102031662270405952846201895022620353163456957515855520701747736182099354637495030497453789880772957492018606649703906249539799653240213166923113747167039809413916266222826485809726341963693592682088470288270803082402522438465919292476399158634176484989975523139310232037891776505411700938023335117297529219884069520941610545754586214561529886934410656779883340226134301892639754648639391126133560983343208026366329578933226141361400007540177235128906150524208868972490764589323540452670000264216772863294639673817769892773566651222162736237700997497653028413634679743432548451238295940691170329809117396463514574497234853206781455659770682625346071967181996531349054397163940864317670311259379497645547745344646354571987832770229858007875501386880139041125344586827513529467626898862688172004337279233383405377236210162791478378151906020471729932815782954107090044851308431308778418401602126608794732893674887856967106565222411310468032639224535063764412447798639457194502554125467774134842245287157593112219034390448730025401224591634943247682609353348988747612849982730637465771614048696977927531704835776282454529255191989863854827541836387709687432167872108947114371888843532391252878241189887330411852588537831574661024911453173216744407483545338262503728811139164696049171992859534013074562915091171218480106441272973008529380950178077235243121200734919470418117693550750968568781628594749870565206193840605327741506467824042349522907134929143493624754256402413276608058890247424304245968202241026310655078532921569187932651682435940743172485596065795876307535721270464962745609081018674743585289034888858515611401394235517835023304897668949742514224618743951926027191631300148396140746491799704806297480177608116877955902724679907937594556848094930520151437213767310884788965366909622660556525897538718683098814395743923601697663721907400138221030187104521150935438659576315599455126649756156771985210106111338390204361386183619780306902353516254520153785407355738961793438201090707155437736383389049841927198489016565407063123000571634829372884598341856784068101288522924143705071880650931562903111303812887060721536264565046978598820247530877234501873077775546800849841461803257787712149093753750465921563729261948884441878433175532057084524490863152042235832787850186949941411843218369182804461805939952279369363640613126874530851013072892290519971764755798799966417086944193256292135757320289730380148426557075402935355822754709404416540223938222537839354757474150572522599151497253606579496864017582704415216687063901563925461123541285529338207107335668961977303320933463272246964919373955814635312823409752158504652583564339271797716504939815119168588271813528324051819246015407358979931168152982300835895863770023534496851691718491366631287670011971019344770049356894217696124356456368332994782701477942478672414663073619279559301603678723000664176247428971049416760697315756300982919648624819899871383332562108565999252617821825548713443340638281410578424490894107570992779949884785449923629028502230280194261096680754427060133997172268820525511457883594361562301644973115890649689806249000786105074523373152123115418909672693377393373030150069355640677460849888027188489061333455865478184556789687942091748427058016869259376404247426857143379720880320981583315560039303827821312434701194014682895589292080862039549200837436976446582491193380526299146846589834108039217962816341829911592184339271414237645294003488308227069753105978198810277638686764001209235972921321795093607218771150876820900665992799006657971007507949380382223489979783605760290266526352269733688486963992993882747624664929270550778277144523309964756500013495144569314252089273015436551617309316724842567420371527455007036706959343955057134607610222894104042066983711680693259105150227913491731157109670894526044679158167457073359232751747873332721117344224599098093557165851178693682839072428724850419770960722532826920229866673950540629331003995548167676242541611744224554201429664064958206152218149989795503624149809743787592925932079496814049344660102985342728965878311729722964610222014107237863736773795398221706761953457048900832263485400402619990647012269441821626256328492288291616369377930899310771780769208979800641558268945921157237615623486548203086926192850582113093095910601115484458159851706850052854576999543154122555795197243141834571228343037504638609375379136442166317282332721736151246708296252207646466534144994078610971555595259520499624692989955276129954251508261267713550840239420051104727797467238227012195501522264583014529736882093687153442965650012843425505964080912519386263692536939242837500641003359863399029145638384981785291346225729957558351015472230146312993800622920537560831591568580869092500433001064804702775416778136547072978174541798611332720485380973184012951277197664651881739143070526015494136354133279160574259162638643128094704075322383234194063939861717854156563339194529564530048627595563905923116451488856299124696862301828330271728125921486473070401484652293847267415572609092112244629326041954674707187911280051427669331195290503378367443828311272872024807382072635464698636976089766459928049269755582720730085393258005603071131884286535501703858986900920069019402025051438770976372145176786248045307544390245800555133232528741752659636163074027029328387310075747026475122525449412090547938716702227403153961626337718583581690087162167888322134383792802713111681119354539022539328604836019450853305559372331776834577441314080645486383705499008295740408318380052091763188924165747484937352679664100550491945504287549887847854400081508891373846558824676093458117974259473060993475162457693047622759700441314599709201172052045193848342302222657436340941557179698471622319023349822337627091550727636293016372928026590894296564777319272636729977283236534478685942433858391356006158559983906090328486754105371414250732922191307963810944214680451123341618722518326140344242116037787929014375952524312962376584817014595819300378698672794065286743731787770892347444746636618259690482494119617809244147007244799717449694763124721489678803554850355934388759667106939121077455628789099976159648094468910051169259647120496117094786773496225603712722745811914738995201034033124139080289329573890227002274517837195940149684036709566765223116977260824322884115571384148534201000502463038251131556566134312436757709754306377513053658472824483159380320707926739143060777147588177899776500087738183080928468163254500541865436755162917635576276759369196108419900573045753144515134870726532425862796999288671471313424516328163427293527669016281194419429784058278993656280379652405025324726964496449845919659872469626315142924401523747420100305053646532162324476182905548331714384648165908057410790877425197651365073606677573236654447175372641890238247970884128435031551679232535710720288479010854850589936693960765343949141735287264033000770783137511043231872158386360356626360252222630544247080639611551956871426971637748673081046061873409401092751593087838299528029697030242303597727114849969428617218788604993369007853525347377863578254182795092280374012119351039767614964921814750510753519672851509772129037654210770585368986916210672948989469919385901263025067119728176419341753831396729959005180387114779454730404898667051402546176957835431294179734093740970027703125661069573202947352191031712863611219363468045535617121788712687507896576451229569007530595347360293268553252597904574157926323538724768093268339468870813636347301087462380405507031895653135818652102711298997870334299728593053028314632506956629648052734975983491758834108086510064932715516256667080123294863159954150824745290901978961028728418756306578250432494718646557512448034808723591901300270871642057867508142380274726031933652093499659050672131605192174514664912226561138892763438128156601305661652329584911977120797725729587886105363215488049244273956469894968651973557596034766243034923605799199266661826801935789032577703974179722230321707418685419627325123564833442739287864835335658607055662328690563974868677808109310949998867680578663320973818656151789012113768094490522900835305604902180974020386117634690303733018007469922299191720428351362346486601236029688220161279929672334959989494979309895031646374958518299859681870395021789439343821198460327334351027995535182496955606661699928832456310402009397337545020393018084845734053481947727187673706261899566090559184238613959236676520321857144218478002887327746007442460626728133778407930651043990142666964109124457908415945913564187449429563702432111968909023531568602126066333852312212312729246617718515169118448731395614058599945474581616697976300892000743152551661301034779547694635619736534652431243617061642667234079266616612806617140502657622499762202129063672240314712710941361573643541380246719012115229881760494848497564078370762269717463493279259210539235785763330064761329280284110876716303267873764961383303519635957211406753328459043842387832430417213376025829231979668843558760227127137164603407446255470421137841109779108056929874786750539485549214662689185623575133042119814168348385599413270834561094073497656277485218372210885646866775185246874566460766770412377564013849363331857643915899015774638788936107080305535593597909660070423690788864532568193995997568384301410776815144758447256500474713948927759888052321205821397020887153874677246124356980975674515954929074943865075993130064518787146625067214077385856924415548142991928719318662963238418019817425113765032866584437701517479065147711263827214040646436129741929031603742517583877271506430491627535170079092680036050136267586030432624236055452862694659406659245601212680558495458355753954710543803144089547469534761600702184183020264407584384766062711616254209535293692665494916572726516675094985742081926546663849355116984788726596111047686296490409025666934105030896168859529565701099102902799009805528862898700786648596966103119420059882840589986278321272131243272132464473986348190410932357540073829970881885674959416250036497077152035606068161429310103710685260935488352854586068504135378748146205812525884838377305450403257190186614482926818135169196978651750268334812142856947491997261540711610425281796314184240895574299495972267276535621129803734694058866894846992310298356646610108726112392910940195591465541053005980393327664202766120515427689345412599383969211757012823007069590177534711132830596867232615319493963289134995135136069098045684577986966551299660291165421773564475923939801544857012392256300299383334776623360929934979666795918586268276599111894799781315129029938819847448783847638038365163951327554667483049174550827184422197835931758629603186835925653745713186203576076527828536582732123493030966095316859491684206349227063272410355203081595279251061787909221749609606427930934333137433700537496466763414024920160389527676341611446567528562078153825971047419077398448230463919926962612941211257492929312248218746848921120941624558606562862343131515080004346621398773133106307300820065010125925599800389805834708051129790454675161289564301382932384105994602816356441847604155688951555444174451216370537316052791246491927310678719107987237420459622850483728479031413593526701945324668677638789601101844150919195888374786417221278309888960227932516939435789971083830072403631906782830515140257383552150289882466227883215408574671186417559207164024199724831999393671284445563101811112000044137339343578781217907261597048150079745056652810758994034930552497138757616074608148987702119379200531473769157309461769645857501895688140179411692373046760060261329044582458887727223382862076938111182940451952759439237566303714946359410176320921271920113566998912503113339547677124749118841752622228845802912109595989224766456060235926548803735384928656595202108278485599183133593696252056931794714638144598979470761226780486871832483518163463284460802281942252943390055700242143360847911344113029829071748734222687228084468097271047605374227874100208294205223947525883389259872015292628192926401938706863565087704357267100132271513867122554151047706534384260362557107066675780471558377347148473833766244411598293493601951996031049974409168885604308277286239474031926776409659106310358387781132807394148095441457113116781813168967167644528292251294368275218389489421232957640679575038527015761868818898051603773399809387075255877843224741285981409085056675246292139700381696808256294340934836888262642495334558165010987312983785061390029110197878852699539740714766333974368300789164281318944481397941947008253692836854282895676623660767590187662304361209955446827619915267722143854306342156400863932986013418172444164893608582081066678660506494443892285313739874446101365042221433316174344756705363032250654921114917982678482892963492049046022553870998237865149655619340831114760759029425274534991722623425648800768254255948862058658389741919773430827950558953962886211395159241157046884894584697354346182411246160049606733845271305789511605069305336851392724610202784798577466771577656724166047635070511676422807536176747799183487648921099621967983328058207445169085580194685676067276933425565214359184670283482911370051762054470935052594502783608634153360368618332485097392854199779386224344463787770660640272258753517620792516997938198270111452883507938441351174211633086109851687130194931159816263303361088655464945928699983717444316545322250279224948978147197088750764776855050355423699363709137544433115396645648894599859510221652830863556994418925935227888057403201850019366339808649325974870094880777354052120852355782333393402650829429266543725333203353176042477209195036285509996245034195809119686091114854696803133583955413973024478826078775294805518027310945497422626669990587583198710929961798008262953572073159680127693070044972978182691207096179184431297045369019561726476275751363554095479361338294896025550627193866228967872880864802408868017721639720631933077044460967321510842274492737354325634499733285514706721287730197807560370312781039846014108002339344110006086751797107785527246047256066266249589465064351606004155604847622759768339478176578206711864533139929408769881617698052811645152860585366748244498004214480327707715315569673723131194908461752050868925368576412636841963887694248734877470391306397394417489936655592875263657748502895089896473228353496613853159297676015940760747378440665438794952476665495315049780547635707775247123810855038111474406623308634168116077527153849853611227322459383568047788524417636710554762684443982539332371064105419267493803549637813399450083342057478879425324991620774746394127107472657590155081562666380718029954876756071185002100477793568743365588023936872740111440269694395390489297123733128349179783670859827943751837592274538526128689541030160558976505087195518092306083610331454254241409143281902370668877047931062356035538747829739572872034959144823295797393969042613972357369204217286779303795482228592948596920933016858977878858285468743241902588179169344384360213728527668715843333635722354353094131682209788468967252568958846944488391732015218131357661634613472969957590766839050389660358144836099225127216459139424237753548088054631073671735530092107835224289819341197264688705081076076532473608351670441003256323468770813113763531564946547458415819346764054789721344181970140512365929236753207052141663997616911590232745756916598865508682726492096478452295907091208191046933205845661119291938206344295151975572669965644093833186449491510442243631048270354857476966648662502445084663855388946989112986882031427616260957650126397423500710107574952090745050583507282973584298331367149073006444878621684714576180041445345402871348875723901708792148523575178236527722432005187219974353315473243547922061241500917478124698451524812156179851015410902652650221306147355810624776387419208778297523589102098308727163317292070496431126316782455776317963273203732071648898915879326792198469627384097056351935717235264716401461876690689346735881881035989229384496788272134928512568995256525832754978330483955250336049006477772746975624583664101645751975361220123933596639248671029057327527351644071826948910569722488655826247455745989198527085968117173286581639253986457861159706072119316132562336378947556017502078564825071953765976575342095064386733395628524662849007497984568787390357980350075599839616891550653553896650778319201434710871235021490390968635742427187063532577821606783956800811090800040546767215377992323993591604692220609559400697356829573166710895719072726047921680111312491982268838302303214840735916378189052071567319790949633505543023348101175907700559449111704691228746959708310244878310326408055788210233905060450574701959543382914477656474513242760744834178112240119088491310632889317400698119960262996414841989433105950021097471690369209737260964179142126727709792093190017819188804097475109796305976404925714426712487797259927761195171417214326301551730617248851641468337567982520959257248090241557866005244209433836985450641664180350979001333101850671684632139361976734118841095770385356989775130831523335467057169043510779197214947379232770066268841751668924005104824862675497101069668303772266190394450334430733573379465591375863184527741571795019583288317079443580895339583169974333620130216119043790195325903439697544551829914045113406487231360954396668330447727932129588697780178869286932078794204412626944550521174358248553638501795906108375813773170395472612038755735143685851682136883618433957987350217985626066795832941705566021325190746688495066009859735295251324695721076970314683344120983563850604970286389804637505967120565018565941060886290451208157122226873157124498667256904248831784441328600485995200188279099555644651192833159917306905751681301190481755813824661944729953896834987126411615230079546650576021028679699451668458038337334002069454569407180930962084697662032658211737803931083050050160124692508063363051295568894866886669327997334116820868723822297969895107206093565041637495532016848328516982748145987573610830670250165285750915244496851619330963309953047722803520245190027455472466828256017948698869257391113137504246220471295795601719024856841326315425118428256783122972787207657021887267704371076374250331763940377840675943971190869373749034791043551286183140276786315112230971510631073898916437796663192746098455717092431618996952982497583167468392963144392331767551921314879192996913671642359740519300796713362355688944540729711958837568307211762964297330043376727564229161679569388900528017747488042171037779640620673961218537404249750509908889417782563710142164183775021276200927540692108916383519121653994443143400470377780975192990938716388579654579049165111081163242902484403562778977313394045166661926087145522966715946910669180068687497408290127163327144067152817620814692038846579995555481488403953022564660891527884705823991442904153785708383360632933984355879889130466607874190488443001482360377437744052491422191918300445025887238465367532963921423219776086283587347458214373015421375335545153387713171851165259903219605628220941440451716520455383264659979819842278448730425889163474024237042136008326977161189908253762968419708090673009554678858683122023572486522070701123300310267118506629901385370833712846262519592706036164992712677003828589474963024108451152219276356378389830077899665600355483603904617693153412235834348550538462183950638849818618016831929511468409572697485488430326986895694504687165138972520149403262327829693162684229094645836464417353731895117586167017679100835891982852598198600188335311507495010862831712934825061823465471691785243539997358751728640903705921035814344391461951414369376341845769951402136559324089968369170359822030891054902488734777385279610155208846005532470871102005811182712722356058298046042376789942426529061870253398439351473343229165397736334948933152268363505009458612200561732398043504898753426410747334950633263950771245714859949187378828457847894081507256448227105051953842332290031539273342099666917607322385422131796587877292286566849360389761862166511788612147991779058857451919267157339929102597005622134516414918716395278923883908311751776759433839576719516406792162114960572959566990770815957313345091758827598341782973464054037672010582420704197219622028640688989974159717529509848514186089353685734620660301623254484462644944502312450772959282191618460795375198209167220501121347378901952975660986076694391546734987070229607461887897121931996024481507160604381495988911366065869126266341236582572303977769364749493157560646635731566422117170433442930566966046460690907870262452886588491064187173235960444455781940949384453549310543385313114919379885650086544724725990972387081804156699640640267582836420889931524806196992599480204722951965416505582378852086916317320476881115450915216985628437176523968441162111917802909931323199974493968450502012245927446950911441310306041655798874884857518121699992189492526023855885743614934798588600093428482572898109272398491024479884858865103811197902688136861337946644471340480211156780495136147082225496017721526828391837468404710252176548741398065062204303656400449300574526353199300465949434876421392582295848568257839267484790219434278882999030456030831453603203686832206112253907426892181468446841265965251789306901438790544517398825347958140368452784191748333233444845417872575943788989272223509542082981804398412136266237293086448074029089536428431694000304235105306942121420400081030443076135091014742155230774429245116421821317405710666146801309924614282420110833862632351484707449854574157382414975682826109921964842441060154468072603111789660400984653360836434670891933347483351572926013912557718365821668142606945272890596746100515011996600635671152939704135243008929773823950108104443559228381494305544245877909710883939467933917646427369840645217496145192106158191505824785857497714522138242318725098939027615226641897307658708004947208695720120151428877906659169266668238760446939081884934147052571735412421672889369458520479178930004246336910965308008750088834668690115892618551153867522956098857327820147880907220576254017943040060361528482331154367846173592496256941745325075146787904053119191800537512772051840099783107683790577544612653253190687143922236329177818138368357133825792042184976341471454170775711875934130150131773550326116323495478205400970666420661198190412503053211491892205736341192706477146666595777754808486669150690199051290896936923770560156378712410786522573329253455934495373847298616867656646257958338555354231448376002611363182415009935907792887076018539423026814417338459593769454045748276253805180173566752728782935286983790316578609307663399606427696463317596379170189570589046129589886630019030644497674507658139467142460619214658039022223609411940962827316535826819374689687366600126400365974361659703217209903762794400222615664393210823203017177149815940673040656318423947715142918225693921920767109817337207106519058268352188745061770029351008088445139185548720916663393005269110783315447998313661378992316098796556218465884051883851232794569043934761161305586338466423163336353081897034023305039894905774014328909331062376753257126084774634223253316347444913969265524088417704432096563268850300233796784427806092709629852104678901473966788930800822499421096223220362266377241079101141638529220803493204983811676651925641939405127878260744862254708117905272088030614087385365133147293970967350786523142011602692725032351714047247371442900963730752779956472684356678211090636740769920244527039575754718864367670839946500904634763560007044756544169677946275577230541749957100839342788030366485509162813996526935666219970457013959421202058364132252891975216659484087276664715791562194036002421754491757427675459520605746853781800840336950319080066635621109852502530710648553080216718007929330505132483466435721837292569013980563499261346921464023570321874157054407389050090209536322549444298970692279660243880353064369749454390501207371891334828880259954312137407203606049829637685951262771601864123835737927833530653205391229774395453790157275744905405656721828662697929162617113028436444369035959118654563986859910356594861942245163743440368363747123902213512970508401394550325921280330019505149789471377354117676108210414757092271564500474341323669054667374114733711624312334114720549236377753643921298688577939013685466500289418095228551823590685806830665054015472286881214483339945497651928008645378500323809310005060022391630821620372338326316210071913967247931170048290336110427117804753883601719077469483562174873658238538632848732178841977716271695679036286689241500108123119902598819614282168085667416661013697209026657156513578517209805014113967974529645345726041860140821840035391188290684728934520239518268273350492845730092288443303323130565573044131076015456112112741937951494025380450906926041833603717936981017989532690599643848380761937484507589451439423513389333714287088188188836494867241680868163295317441530863436805775158744014776287145211004629536055078663298882829251762652481329509815645057390408759188343338815444628708078510381163307050266637367095731162087127459875207280396700673083230227062354307027020647443641050828334816025654096999759449266559255924902856089756422584206741520489775471512723409572121099277069085490297615478161886415679986126253829413454924419397838229958342281759470421168543822350534458633262274929439362193830178111785929965143433888030960525414856068657420805581440174367590876056444318791005914557003774892618858617059399910593508477742827621331115694012090196112615141528247908320605800112692412431245057645759228509281454913333594533462945205277286808764090926102205533786804361311661011851783615291048333792690083900763251383468777058318078389462001471719397003774520003635682720607469041148313419626197683061948215628805094046951260009243658693422519779570565515097171040921471748750404129861862122431082967718211105461980045406671968229949080600631726601600740349841893806297588033150635015339024486734340412918012808384067499779135849870968646694658131340157124821172861485491510449169154011934007103010914246487051433833024456187700599421993297205839861103870755145959222593024836956511989297527875475988844513107007503552901520760436478257557556979575641666926495106539654635587551398902872780819931167880323725789865530442650109401464442172115527419806940545935160992458685584760132735486484091722231399468987589787318997803325553103640510923523239828683525174279493364912809362242027481976339991138825046792880981343071410784989389104268912812929846367513577089685170480544174050781618278101512578379520992449291000580702868825641717350222917250558543603361863835080591942812209796350173754642249754834617870331887686054328024924730196310332389312956057152617436894943242550159956071814620744312947013050202504984709727681758941141191361826594976460725791381963587486213697564298725331533138113701788687196064305319812422814035367496260689323804267838587249144112626268280787123850950556864543896305320408114581143011838019971988906943290812618852603917875335469786536074667085394244302383578879731261689235857725679357051446507343205664712281091065618446696990122456579801917078523063617897516456893850245161047961143087041195199258451929945248378911579540793401629908595503197980549738303104626086811024111238538919143645614580725660210283249581134236347400823819513058933849364570107674653603740160135161993919707430326852404944097603495399356500905859468064956623119044784135009834741837513773063547012727545050540864290539015154505852322417568380261456136548888007428050464260651809734375366440541135382763769268266622373225499648192745724084752214039867927108011355438397779189477421074339376045736762235496343535960564623289480515087784662171627540009048027122332370260096585870337911483919002076904814786891875963284190043005328409384808386727225899667260290755353242024380948417068811694543443834690822333317377325638042354281798008886835519463336284820162209015863257282621431513695231006005892438592130636662428721621012921021896617203327370035068170514098004574793850569459899558867875403262121625845645074831644638780316797080221052505884024944085622836794344356557768410024445567657810928439083670259489938455923611124677819648754230160513638883621931774219531598200509390511145056892093953672870921174662344296501534209413691361859265840162900149924216646500241276631684592094987696963767664910165490524595561081639277776096729739093636203204791440841141944708859979086843408614607494695175492485918691369500217285294108789592777672691374326796876807688676563162225336694052746038376293969896570076844977780146677955749483338253747020021596676037150567488733029988022771340606814405731011695200703452300449076721520226314270655514411835611758681189845280744807602681126791260626477829560793021175638461305531003707172225580894240436562893385920629024633508529207763854865832201999410509876692802607800046351584729623782990613157828702366262162257410699507242417798323386841566724826412353166107918930706419472011589305334447839068285694073169849059311683123482915210306923785441784047012077864484680111310615315391537606071748035069351769067016968071654019193279385625032179444634282613814664427413306203878090158827815928832603220230775983949458571174947815002451972213257552221417699037642652247597452476879929775999528169739198200777701333784803994458087275262282206097760235242616612571301422621780835149265932341477352164333153791354758873817004232268684583337206051899343261028179038698489675523459925316704776969185343777268483598688261395656961862133023978046753721152593823332014470940585682718271504057623133156865883004592051649546880612161018115186724843386170446045710811632438366443569788739054479824227272774127854559363560535020426132041225802440719925186408198448689941942944025673225670288934880477804187457103751938198037301072040521163908401854548664583088139690359857535636983076107264441105503451187060855018360174279429026340490517587607323320874189063452360614141302027729825261384384156766184152962761033349997740935806814462541762451285792936208894488679301593354071375363646215732723210817585104210506118611256001102359317047067400074817029082768613413186884619935444206421327267182272623462734713263424334264483720049755567734214063194365036614837210651123045516879886414605582272592301418873157295833352556084286387563100589894234770141344965877003651136614190603440951829719822605764594089028818560783988169291911540480141163179965375822875517980108082644967442515861850951292615873275880012191483774720912108339802241303128611549364357930176953678204436095089590979130686641182752045216649772308207279293356846413422458057677199341391042210323216699153379610248921856557400612169893532160461670392894108129442731780295304817019505508768600930962074510809917213130222065884629007420120324366341880305536218113752224409002467997712291202940274553868756134627488715645478629279349505280856714101434399653495466047261014251591325174803859886763909814593512613371612148490826158852652258746002206616687785468326656822192498483361456714360239421553048672736341341229244288664968201767104387649549255205896908631388381292853604314354611747427101209049879597803892754297188257886747614024100817682672052891518950489816022662165602052224303251201740057841426549191039576159091676378666947325575346008514215239709330688235058157419157555540837528592446917149876551324157670770330176967260265908037907175994605014329195437975491430826514909449018100097083691739204072387262422074143196220876540814568663331102608908635290158487575818875612446050828177005411421398926922977650564037505368612252759420202971981340860696375070775762426784294342862997158737370029624575845638194318724335339522240531129215894618392480532401062981765727457039294783448519473076073679548108347204274831699902128578817613020861978749909773556392207652017258879261263320677666513475008091488556875235773071502971629454077687253915868803258144381373170411576969601425100900568634743591088973125609908174927714620125194198572943535535834174808752580688881619354981648303210484512812378946910443510643562181503785729387507436682416082353225528209520467077846104450667366552677271864251701034060676066016729166092694484727410651157970809482549539224413701528470086171353485340431762998389126190318706030093891997404198498324143243379670778471378553638633909524968104119151125849814193500147660850954016281038915488584780264505461958699274108559795479720507043049965684324074586832784919737318813911595936073607950639095917005990476374329659833247244911254166303439292636242743783037685039343407774066253802736473263505756564755373652611369929121228597149844742239183470425528017192675893885098642697244954847165468400501592016204496126937822133815757230944741859946929349009492364027892833243450242924872641476303022875102464819325552125679806689037666051155326998851394340471894163599141848530986290462620984028376353938713204388670852996258022064428916564215731215272730254944449217868067112595676409454815839667798787590645843176509750165809961038435578246920105261302629656758125010932281141936751391610028996256740947081435028343305373731972417013888135596886571559020309132835748892415307817677081324995993744520864615488259121750814370198341202243975155611676102672941669570686787397796054025450093282231106276041517700585254556420764622950817796068318550581024490718373161595311495355560112286407796572583909588063009360339931463673666089453901111436862986573963229926544884495134925881644543727486749802385906059913565012491018933697216276694137126641943164102430289332823452502763483598782217100331280175632210739599805682390119178704994079805482242456095755887197640676418759531023093598437752982556980757628992920804329802096049551621479743342610226460528071654318452212911351529599514101781589158986451310351024751463877734173107032876113250384708316962615026778526606945519940998673721106766909163592219761497606684936174103534357862474300979747334870814251846167490677716370179566650469669840409862714299773150789765744841951944739150093124107807527490720057311597010650810171197958308411837250282188706643281032954644297334886853360627101432293336733953233191577604320314198248680556900837237255913619897423188647501829788787163803401893464447674536475179814837907745962797940836339261988882427016122531550263366043580419626026131835163530658988483313335235588699340349241541537164422263236232955359696083192762653631946068419585638343022520773850962443072493426500046497394143551236688943838329470558714595206258738477593263126684580117102419348445502018588338354424354163037591195102065336601110555129907246214518029010178379840991717133617238056283705311761745993290400624851714539731483950308661593581340130956549555496999494215847666629061203847591481897990375019447361738506425011120609519718337101020255203405066431586091340839461216517086725345207344351529671599951940895668910280686077378521837475204395566295563846723799040698586588913600156448252856245837523031503134537101747136199433809237257560637123239746668613988025473287190812614705979284722966564167327977868240585471440457218598766146031166006678813924835418718469016761289195859769250022848074495181211440589254566325363808451905410542476571884633301076835034955150253439268405397919476453598036215735437905895774124681411850168971240838922028566585469080520073551751477761837541630139138901806201484558939491572431791484534106464573157667407160621737976438311408097601210068673366116412261246888144672456404335855953029687512764473342678914154617890628701828983949800615806162827810910484004644379643211820368444517411776277603542916070825959807043103482025179655704364913627860001626895851399907472719126514243775385378571713869705401128737308866573612249694857949577793104188189616087624748471983252880146458950841379322362352511907159912187285780340779513146463629657551358992133488758097950558366302502751614645541678015627076937521368276126244781004992714837056663803636017124714891813890507757202698616411912220057602906470095283815538150078255058663257113121205176149550813361293740610123509819785577420137557284095174880930202706746396881784939209311174589537259863914945183086291919432417223677257060429790756497602472946286112273403542801317021993054458159231837138233971261185352989980765455278239118305842884995970844781169918808888943980921184348788970553854376273316833761194509687517612520567054460022776454563546302708280688223395673696039940595034369911302992653987931453350450504554420244375830690581061902454616452578807461774030802496593215538134845312719002881940815831804480532689003511366455235706223769620252368844855779266540442079956180844388431525021659728972912240861064755601500518377243861872250589229770445433874099582043666057858678214025255534100012980988753761305244764177318844521971382790603332692295073734304444229568644164226293981996947771459643671936160314164243790516960943534992614325000902675491241358044900699199378037244069254515798253265078094615655882162598696865231616653045459976411266737967001514677591583261263890346096454052497331304932893174254521561095353579778980198483571418200423541319060615926171906827879654637565316385739617430097448619156333244126314343794346745418036866630800999553788082124027610034583118439897969201315065340249770818894210083162951257182774423597880794358191874442708938337665825598900264489968281145574486294415169232905068392577089557653575191388384299857802358496820073014514540309939479101376007713245990148872179573542138828002515492382269150650351221559414262221078627517728520346932476108149901247371290904439391697433206870259042816410033640677677432732614351275625662147645519454029005145286820710612909691915420546563219728983737290633308391379441446204969921193232048381562606031613355295562231755684567276607567767705033389778804878778576848004303640838403485351625418174733750480743879852004762405076762855093932640856948051242889697100414409859154568798617187909561983258572577588668407514851922292269865275252506042898647497677042309660147300310974051189080390842655439673211736597385292153052221846002270428487954708469955073551451120444794689033945294950758044331964804241770040767420278269529789893530263634173019193036053123703607837825617578541734263993250217373360338018357225153420610296204194128707077485445909789093622821550397369347950483917947356392473170328374176984451345374585600545677481851066478487058841706549621831940815927877604101972635766426882395280017346142784410849076357956769233090248773407930275067786203414331449560346168204829804378408838841673085137920960854316756760246265672418400739444511182297875253230534847850518487798634702289106055169485208378365242467879266923557632942827430982021871157463448697284566012349034346859365709221689861247704736990329691385687459797418631559561882847104930125163167499474171748671470169965910038046127002512123498795755244469627489175910139940912569361015899501356077250468401911884162603491334980750395520707061017749396755325854228195170474422615180868615971831652251577967388065105241037864736938269319040561454785623149923763828620061900177054399742928549553660633003193564140817388138931781140740714303606287099215960292968059297815060898845977004485910158034360536337169355420711078975806133903642015256000394753830809051574169495977697437005559762263862077447869989737162208280379947658825397061498406391358728507495202753441567838395765714753478961996180943563451132589048671626555247874047181015904696341837908569925489961186634674661792892165554372553509963721822836019086263348171469338974551205001146041664179297772009935761230122918960713581825278469212428690008925181259947848144676513205106715216646235651751670582965091613171789132925313412180839534871643782270572096403940609809249399882045103886321321172913374089004935231258639148267889725193337795873792750676859279678847862109869782187701574386211578470487191372098718739963495687046522413375191062595409870415701898210353350417446480084957601406059122470795249298286210052073347019604037454322674862817646852942931264484089184251966074813294941441408104496160827827968101084816893739219007385864119650966890608798363471157221177764782819908042386401647237539577497129499801634680485234512497421607422097488470172315469312295345206523821791074558249397112318100087558412034833065465721806677226722479768656908760735411241488746579719327294508792529959382641585327011472738928068686529355354765286170828291940279000306446610359293448484825558865187147942430398691864714367905522142354873385403539393379471708224792566821921640793696898698226269377894004785688306568818190024751336902910813262691692040591005210886548556008124873622059643886123730386523225704152201508636504793476315374321280265250777141212203285711691748119353733639127429313938231708178738559449252098959114764034421656523902591621573048193598148642262001458119135874640096223283703079747151526784762454945575528495941192092971619108917598874564216451647259966957405922792977250391007146728992045312151338432824809799857582902746559550612925607154748196889745277215354825442763278177012366468197437662969051865886936622297634993060852816604997360374317108521997048137493928922560131162850795758071546447909022475252373356060005308923789416635376620464161652509655786517431924549292263180769774570144476475077393812351589311849032273675547979075677868225757985773609049058691700801674735803328226051306238530152191944198308650603817706513221925983192387658268649708871837911294270277244611370917952811571234909158413030591103699013055752167651157924925049121650289385604134668856405954752107895590079762210786558687150133971993798200800094739820426416984132571203501402005598234530038199327176373116915465333730638520961220690437085205221387998821613813401405811852689913261254888180305604172086688230447140033279700826256975162688334577443314495481230238126693933577266991466895397838140752839622332571472096885490037927400496913011668807757608678267445611515034335674572839485281032229625103825483931490953799465164473108231657212830476737913085148043708859834989497896376268373016567517420260516003430158753216740354564176486292237467579383303217300194860879304906172649442360320661306654180901915444324766478222169367714616978012776992412594606206529552425508524238988564316269830536390467438189701391824662595358829389878669782853539331603922324900610062376198937989490647208680759882179966520346099905610782184870535860739667625921090477533313449376575649951967405469414791184586801466196510939551311925982325679010628108114932736409847331335289269951590307887676850347662200152142407577622806307230293145434881733280195262422014751929428599186642661748233556650128246055453846173619532363698873938239054574339086339712836589298074116676987086397305383034084486708785599880982347830341065749782407849003006790768911958459715863829903824810893227087109281949175605206289244618556927565200256314441260088886306978488811441363863459032834299796675384480823836685527900959234205302788052678649606812559815986388071329954907583367489408901309259362946409187641822854910916111245957217104838198022059974016482017832134988965115280121824558848193187938998983467644678418799041536057935929499468039532520201589786699836613403634596344399584667068374638345486115996454120464200753083386360420792912629853272065139408919040683570660627541984085095669326570469338450009650270652539112294641565792234902026249254968529156611098855790729808619976213890988605860886949537057547269462414919331999147883554353680942536059321196093648338308223790849486269446641938796333653402223974353599707936028752644374237858039709448646988999371726665771515352023566606310654373267223483632856052677350336820745279756321913271595347749025166328445787829801198101463039143416903002285396675804225750470288285267133733563112834346305817764252633497660270760021999806467264454257336980183801367346480889343961166582289857724866558293737174028253007301193921020491274000036847106511092852312947694973127451276130656243162747980335041964743393783482952586108789382545952681347938040445139420373550469869897060216725987274251971520197844333701476472911671565126329320286387255039208581450195577530501106162077463181146789663124968685068772816238653857522990044311987868697710447059230236286524742152975426396991504421301160419396226946411970830273505452710364026050559327020277828895951223124302464720026276649253731301213579476430104553376893249113268940628074407452458870827601519141393497712046643733663027338967627383693418220621613067755585804942406601164222895220848292515087540505736294329981023374401643870587592181072018355528582556788626411157192602347676242695679067400790297400130831331451287780113141758340334599575884660251562764905340440523387926935613221124047097211799166013988679109194072982848644336755740773609126015815163751063529956611733675834057435967928718618904684637926176937440892040569306918287869467208089028376987485969858436939724163313374425592787018657854043232585924222782391512602452077722455364677321286011465942157806357498784882127651615469513112332791539820088788792853582275397852004213672054875549856025833193578159308487253658237124010696727361137792748471873624473939442069501125020659887949032301571141198779849635194384075161148280779054112939336365293383680890236597303280470140921370990916375298745885963069695058432237266223436117394668785632905254664778422756828504787392041438504305134702374645288427543856000196342520335678162902363060790408069028486730056922065430822706953989342375741456594895117846005337025474625361071993618417815624596460748924508163173200984241867193413593685257857370073946550084225353397910995640186981416726928183338508838713286173893570934788846426334737465650500283627329953919215897917378902821810271583403725437281549327569599418389472001708377087295482952196599058306283340320575663094148761396388673034781214696568148948836648091277736246106362848084675907647289245016323270533579964688208975789761840056636114683724556940209719957519740521255107254297624724957261901973293515289430984521111985929495291967108090490211038418742751269350590937288218715565662931439830974741284597380433855140611034048426639921669235437106797866290965411959435851341326823170750985495233783516222470129009018053667495152856223214092231966575160151022960980327175624034366125526824752770758340102738940775777969963449338337574263647182787542808856527378916305702197774756537929572808849575665574282343993741626495007139558303876880459768658577506726632370780630188757627041653898914046214669488306467199972905705319905318152922103789942485986816691575199145237332595283056396918510771404716447321251824773087062358979106192437016458360749925272547490354991971533397065632102841803950775890487397722311142026820455232671808266380810388505091288744750482070083912113992584105769307567952694976673874218016322251606200946345631660096488549736143896396206537856069806629620983946065131848463195629829648600707232147156560107988842236482617536272303001030144410140862601377952935144634103595380153544212798912777470622478709223150567465789532372396254793687199452253563310829192709426121645565105908402945227442440395888195807462644777624175943980354114461231961813704736173576001617878187419626777070727858118512023159277026301736162224210906325634524990619148299661792814992665053409439467490352935895267112857318769492354961193985401050715188516785320471395557341936898964407613274498837886862250684858505251249876333000754623208066019265563383249034907565140078360296217375114676875941898352591358271230610374175490224683905325613635215327729441530235074068072503512296540782436004504737533683596257423828888920345729685148051181047197527755018585213736313839661551897751843401041050811904447234692999828815846288615617868123181220707117779461105462207880934335017408239361843597048536591915400540226174967733420268212674140089981747404200481193344043435376814453238345979698246656561959068712844944867800273225186816419175321844956268380236236427041943987435332330199803701795595958623690543235903466046595687550195672322381932167196311452786844669026653141060903988227077145589586791328232546204670201309991974234241853118190977132544316705237441591671631671622387508578607629541669140592724308271534365120222015015540720699300584466361677140242228149082442054673804757984860005341324728013303996656821304709748396763964822461628979661387199387501466669706963822512746143814459658517166536555513183031831304472717230565070708153571237207246643107703358095819227418569264773253870560878916669096045036629916075836391089732857244094444266669940480903860789008954916458341597165027003805282525103731054356499827017138515743167546913712832100459093361066061347341795133005899960354111667569627373996623180792910034272522694064317362762574910335829588300238121657619536042909520897794748285200195598044746087992560646947918933545852462869108283574527613793399033037074804669440542402897417898309605668437872709271628058802008669423077790389875452703397956341290006129750374358948128901944167640970560460010658006659258558908087279937490108500121254970274960126324214491536068126355832089277584109571901105912645475802638782864640577838999527327403138942385830330812551353994168083214896825520650802066409438020444139497375111778427101894517844248906992787285040835472919012729471455544301638090325183052280952463979016834698884406125527502138474493992309903886531762519352762378189360937221168571265032059306556481998696442409250395499844651137954182786965744916978390022765699089096627820890243340699779064222718667051196709542538841210727450844280321417196917038873196212955252385171979661331603157765171030480790392197776537972508057137814175072236082095720119227344575514670805359458195109846315344620825805880312470048187495974939207563998550000412574307504666129132516431510830341679636620916858807461810210562257383238258035609832983893205195145184853722289105654270304845562710817380809880425797092639325084112623952674424176449016536907593372082930185478527363349378306419951156593430671954218053420551209873737057688391472294227574098481057822867174475768844144006789446139762201209505531747710204494086128668560952332451964193199310667680287626627129376691964260712454053605036345321892749668433636941488955708358068634398822562477825888609776234841517570294060753586565059928906047799929563035946111333726387673071284320706258928288791573551831407244488848847023001579314381764390010043823536916950940347565580805273624527433430866009953320138434434970980633571262075547400011299232871689211486627319297109652889805127354888902975545475475476275303369071831495233925206778677324717673282031240527905710184129976555399912991396797285249059299815827317119114881704519590937425976111041430695165723568148287056867910443437504035245085224059571769400996122420095165004059932671836279831508645011620379433971109693434053506834583944947319601600839433163574332864901505979399951122175032645322734501249033923480821432039128264166148264334428523598235785903485207838343763396034183131503274144978915855812131287531771860314618285516894975640867300728625119981572158923470799849502814922106672465183215713834212168054774631398810683676307341127272205437428202658129895855476509773752912567681803551000876202488828562392345838307815084799705194042142794902141376039656507711561347247529933595456357353871230152290290166069680276570204272173358993467128007177690063641786457529426801121170656008515448391663563689393702031761831525058222730523378944910185754701852021064661812086400011564433555791155916112419321925521594022965089142717362947641309388957901770220344119312386236573391038090976728194200978204957699842238065891283323649772568916435886440157800648961049984936088702294214332936788487437019447894556063531538072972909107104968212886046409177003882152445384343175112545686975050106893122713261104265531816876898576176659878418297591052676914798800096232340725003241041818061313893723750178950461383007936531053506542283271628808117264619367647890509257918278134021726550546899656425004281132610136772556469941666419253967940248396493528148100383718396337624071893184348149551544174599642097119186806703018902596818132656694266826623108758747876568264893944730673384184624779883345814513660812409214466818223874974555431110233415555651917112109544632410290169720377518013650319790321701547175556022646532187816673520104891763916268122778170289143831080113554379509750782822146207109766944640556882690529289031965001862633219298425311020284869214044101478585326784520104786588987731369614701502901750317732293871221585860640962843104344405519037644918740017927267315369139976896513332357863260135999873749775343961463726979701828317910332673433183441743930550230011763163863611327740179079275777094841790627694446028858014938417513680735383058092133803652377734508772200361884479529906781781397518083548529248095704748428751652888946408280282248979653594099456064539355251870721311100297805468987324009015681674956990063008897206331150735070586309965493720350292584349444984816014753051783545134703268558732739405391609730277494202371570742637377277478802445914949143000405789102250220371358319404489115165423827667085532089472433682755467524579577328992126410571923049191323370547639983320473934748563872232371451220836221235355996217607851051942739855079383674612253605624118170006787958825474522097957752340946220924661754833846233053322212207248093644218407238142834206029886294414646260296636272057327515853126496527629932134669932350981901755559241440788421770234957770215873493638683831506535431260633538104300840843988607590482000519481974088302400105593695325745793157334639782970409875202063192532121960691386577070562664062361240283364671260686116252443839007105958920258381139643356984962572067955813088175755447839475401151408488967425059260291491195185417989655730306435684703170587736017995798023057970656451826653510429816902977160078212476056991784211571530813891252130861972695501105196624383511481077986460367694522282817016371708829443307677336707315059782835918191898343612814623290741141829845309903621287641610730183261392224627261082106062475052669296352835591274599595636942852669358513304569393789796137852137440958026248907440926638701821284452491661443867615825637060047319864427792987432921135940281309599233312881587368512795704537086974292987033860338580312132290810225151909301052251657720648139564103864513806917628302296156284287168613640903687975373453294443661523805633336493803260253333619358209955476644425304759887485230203721837961403883606717414523477350309161345041429407071459965509773924588528921152488671362459830938912010225181684059008271878948729439367619871394945251560084126174289710468645888540527784700169451813628145084673974114181437928062273200143091872581023544562588195127893500582423517764181648894843335320693016441981988654794689518707234506664806867546808239527340185331166359762496585759542648478455501314754270337452617066248328109519517930361782895598218547792248037981258947467873926274037165036187429600035372300799765274503958088293960411011605726672567498378334332809655876633833892602885742720790025497780432156511843657847325987866372316665608239040349362961736046669948266251645072747128074216942114547544719210180706837924260006845683078395228552737478319182248319709105591009525029152888625756511238547285978679619921158411814582660527536014126203766051411457535899343432041675640580774774006897088650045484981791306902311473898576796361081856830778001923779928153393375046663219718274249483309023446540615830625095342835251688599661009390737026599952790945763414256465721486016141079014414276481064389267015903346578538689359918714596466234379643404594666231935123811179489314473213266199947188912289480964253426953743230013121366395690007210815826327519208394633054785661680847310620051227177480585514931290188992212060177119388249834425783413522536565998646722935935003349580935191464040384407298065750503606652677185224560393103839921238303872376549451497193483818560218613569100374333896739787748221489401753113927012601884930878464679044408422800509356935360651226778854677284384753882546322372741713470311964767639689752967852336405088817988060343683849135301298498339633585409360547383197679922883502501962512953616220185821149729553616293169748675182637577642505949675691982099016720248703736329221748153393776683487097259738596574397171879916683019992590532709839572393968564295090339441542462482583506751483820193895692572377655006814961305698405170295713066573461351514536374608905392343285583572233336450956792002342300347601701804724477908126493343438155847890962628955252452076621434024601869585900412395795668470202504396177309870682035681405142556117845459138204095280907361241458560268881011319975456187905415386334340534602950039847547095722682406793523648013360742525796327394613470340841721778396828814925924527733725205683877529006554357262235903310143139090769634019549827593573611619215047215563671499101276563611973242494828928483319336608347889217578064127245325807826284906205944943706589418798529390839661313808493312383003604567351725258129538075503744517704508278210544257240038359403072142034623020136804739863053207397851337841106322257606528350248844861540701142435069470070013198462737357464767367566577709513259018459660266134856853762393535857420275803565841762837375088354308299873631251406833826755353227766535562781359784602809273046759990222736287835201890186577092376408242633958597750743322069999042157979723024040041250661370065721026428982494069537827005618236239618460788044067571186892013363988008438455557900447718340828762090906016266449139456602652542635431522506423837878865855591589937761358663232940792805411601021694983357899067341927727172828072887882660283689198613968282401593372757387531582666020919742618859439868621627141303593811900938433088671663223367737411319849773032178075929803661259909908477159780533186032579274973025875722408387411897082036653913495517494409891984679115695576988832118075806259270808704192908677970341982494751343462269224619919705755130440410107133402592072715442744864564012159450969460930993913428433400618553383135661837974543404618714349372276431647486768609332539676825431761028641646865068953903968746777744009521334614203837665689233679453720282016034898299649639155886510306388520077158677749033645205242852519731382294440718486833757885183083889742463274607212963445703414067033306281265393978898958735184074200622753171677744434167690321054232357908812468172279654077810119114280979874930918963909876628319603536020341138643522661108078631298595355331862746665703371072616814771946579008116748976388939938467698472885874452758475647476739335339405061053644142230772177681433031978690234182731975015425856959740695480758509328178267228393688411282074390356390737749054487950150486791113355479735219366821671251084130335346881521134302903520728722329871083973209923324484097940250260080183277724993191222556119959873772037830123217737160457194227854555737424345997135081940587606753462612476439442280619481791260553242652362105255911806603222167090088099447651411482925224766547014656806074764533583929385465629098785081764089469421030255991197799875746785292148757232953981111257461822968645913026348895743722977873478036231396998048110217595948795456638495844731979793593124573446943830447047014653581511162206340771543567890127011579266716765013941516271260560367101805943307656320464506797019558232892036653000527517833390629752856515464439519334847718295983048775929864962326952163219969663217054140524337775314550511933268795969521130352886957721017295240285518748219949945820496305631783677989883694082018261553862193911559061381094535283054914985293050782498790940367860789195878820502517456556550789513434774907896128301742531836709977392981025683784142561416040369146430953885315014762822731255263137658607427917330857185740523248289639922743720203448112933674172206727975493102330501630249820407874055880253951415655675115129121700825031173393875804656853735662369715186665066500584094118423800448753947530592294509921908138186713481498756207981043330435309086453839226940817020477859090905721258887761008938005828967374257494656689552946357121525217303971199691299507687850534188357113422199029949830941749579649498659571821074988834083144691467364892862159221199701969914119302680967763731649206179319291503282456756245163167447809872908695793074661336622114259908561910915842880018413521642619948285641150643429990941899905683079132187763966010615594326690013698559407725036113167596436749710669568793272529781514698824885099244598009079691718144974698124661176195865559911053815083067545534757337738146822021508367560420993804666576922322285444879327690128863805282033597457046851053929555092242218767490041267060568493738286498060449093565031980819574004479851802471267886608690327189652745116631691570221252449121796207384748261856197463201794076420848124546806335506969699136380256702229843401313260713822165176566081996404673107739146213561404163279578420126621478696252821599638261226933378540609962266255887252029029532453948771832306920668175687195755284747242659709649137958809733889383948152996228609501374048754777141555941342183183084591571850689284201293421379401254580389207368695625822131473305047986398042626881217842542669399716108105006342807554215107073119921139222609470783774051017112051789464752008844538419663499676206670811873758099349270472268411045913727022992843222194334732529422373761581288870061595016435442850934553535960955059526599732431889156100891297087639421023696579757601071766171786079585086008112852799800642554948265772500864322036229680763976192921654111691790763984739959616255441330398505279725231857586159003976745350899352663289197081509255553642668320216158577035489181240284018490487528935529076808963072219019409177188225356116414071294849949463650720930834100780517383175350007970443064323991841192755159271247014172105083386768872391836358829685823060477516502069150862378072631175389879563542895400083338890325403630734814760698943038511882184044579474309485278388031323623935456615581841769119935896512574498229845996562720365358686648131881928720925251575286255545849238924126767979824522287039133012880718092589515031311127913496907533296055220035864322622270184280070050411699607436213492565775238993591367618838141573095828273581560170484338774417920223879035834041871918904117270545947302831151073713118932283458944484506624124100822600205517542163176486310854518158508122104870126688198905240884591668933878033797312399810824432617221789725621145312627902604253876657597980238765708933447293201489147148014408071595578496761771635868637580619373995011998671883269634370349398187073424715302318550815168691253735183125351346440610291305755534242579878355907526271224324086383429182549910506353273703500685776242763528338234219330912857763724113904962733674764316672511684306276225768282293846918714413840737764209895362638493339665133606576440822829972386739282436196336747756463034180896731315034636403851393623544858993984537609844738779378789130353946202143777803236021637669944248193971699422573434002341051954340423154617511342622616556580236009684864281676975835018868198150699188290258992208602883290988738485337543232138909541561003583083977166991944951939290741314811771366145794338614053068452128698994552614580789041547640456721026967201210322476484621460550372130149830132136376896043371621244022997395797834117345961969674398355257909758794835748715376225171845794842815316972878610321974440662944512169499584057516236474724669968508257722779512183883054540122660771635168280790783313111474139573230368002730914969057818378130799426735783946338532421709339109129371452620948138314063100673395330702006985826150683556923265429167251536905506454231634741585764930457060194485721943049676058223132138164275472387011937766367903962553933869213551009185012714352860205558225992213471732602417471160787279927818215171125952522283572548890536991935518560308900630742732917127446639263470524882979114667888555894188652247055268707505181835634591651130159686782737274763488327571071008861922142587296987223762632642845784513494038817377011297554017118298404393923672447268619166066618957273024775622937826036402010911690773046125504247071815044707410376165584606920529084566156249734432214574604992263955985552273484861262376000264136741081522207846077433109954365427622233607353060021428549539898415772064295545736542155984296324308095133044815879810228145773530309030190213143318040826780386121916144693064377846791963592529342312083908654717005264396657597235458853210060654607433567421745928874386802526749204549243000157158851856651368883115115163332886371612045938254472691311909327548433095171997038086126972005084658757093084296064233851802733051653266198339282057926806077991034698925521451374726249445958090053765232494835628892383413333857986017824452239354041586549675748285320338165775745826161345166127443290295902858206933711396216245999060008219756881266848008996681179841593748334156229600132439269010431848903244160192467030103132855539659804596623775292466984285278236855237220283704308489889687083775784286766115945942898678928771752749759863213423933420405374271429505654248304830675810548548483672490745461916608362399320697954747988281185631722136889638576610471505215394861007629743383854919992626237823525430879522905464586895488523140450022409872861062993145384956699816765815151740758550185651169339062684537015868261265350632414107041679473595381930983614987961667350113420086657059672222721754154465822453677428555451057127224999601546920072306167560112127375588138609166603660844171419127811027099722603963902681224528523442489935758891529048053993169276942549090638412013237226140823058871577354975270754257085883950587923369087064709197462810078606265994720556988920901143979988691438664534261099034920136024070146208586498057521957514608875587690686211080549579528901071901504917031887684562254151793098944971417508949068680485043902270320224800176323543111084389079802416556078066391992443972206669697764178409805061614788984533065929046177948829338808563160455717084732144249719676912056102489536013683334027793069846594259320261543067518927488202268394375306293798721024009673360382078555345984832699834331424424902707465545747714899836895733046983109692816678265674525285687418118614700337447196254857012183863839384909154027597567096395761401173045449957911325353253672194127947860158997604908190700113765085677314373982429263718782030037798759489822850504744998241313594112154133545009177053946126642551436483491247781976102542300477793928448845188773913392976827402999844203656029097907854670707188987244643941508557292411443963774857026838348682283594563104196282805776596543671726777291011984432738725508260498727525793467880413605123957713231746991097302617522674725619886347578237073365832487850888442240483738079697565824552152333183482536780974215205304466796248554243220056875203213163544496883921743178226628599594695557066999819636384235886794449342828144475653309251802020735546865199512501247331112816663022578022897403061812970843837094471442423879386202585068200177459511143958867148380617080729830787987464923787908928297489233549455258233236411457304552233401171143780423601904278967842370781255233156558441750325114869324036138851963207606171917976962559258290462520190537715145393240108668804160981854585766078023766372822902250841750679188408022654550389531884130719613785576215719315951257259916248311679814712272650000848445382883417768209038737021075249688266856026378064645979960710038565475431629799548588659904409145464426161932054921577701864131881382135286381420338160060665333627416569084871644863265277761658930657916036528408864914636340838594436941159806744033901415169583368853265681791809492437333465059143635583383942339635057585802602114172911878346900877635139592487042250374396148990788988990933175088534876757222613433700180527373485182661745100749053558563401867439979849295364429581966753100745728796039345811127539183626051581227366802491412663751036775910203386064062995434334504453075907026698611669084973118589586917689047994865465355443578942056075557181752286649681089782179284041766037361551023679568776812698867613341913692027912583598167230709897253830176562565292541377333024812940192085098857903439029622563832970179965712689578296414099605079128767681036447503578246601210443365219104543167604135598796391756559330343709518059419862563125059180491805512985435195359384237601394296970145311956834529939190704062248057356540199664952594470950500349928842961614252593926312680633093372530535822829658658212639070079214762876474522071174790662695185599295039181602802519949134821282107550500234251057852066049036137308369022601744983630593926998056759247171766816982746144780060310480029930864272152262391310095587573098964655539292119000602444179896586161975771553117572843959019534603881054246388224976012787122730393062576649541637609659372954754609583650541307675819585780756125268429449636250281772187202892105778272585939532478769515997124934802183830747653666765190611918700344297316758615817102681567493530471927154602547969266760953218560706248469098322808275893825951726801829136226750669334174341800547118206515891093463158558527655782497221680914097298634072734664179426247631912503750043020891137319774689461887547842622893745059869560489824722395305977913743507632773950082455243154819440845337031394945836113886613050141197329541948171019904404113608699036483506089153137587346711248468237129132950700963044094135082334688639925014196072968615256272003591504680511111226329998520768178750636374870528527553834025289946654318731332162658162999766947628985633921152043089616547319949032667453539744995919601987774107014113142834943805389836691614416191326595587537959864542097707865330379125290193413952681599902023716908630715184733694459407629448729764619988675319616967693198846596041989126322704069938848978689216940849786974099542771817282249292235435170623772016819700332821007080666307032315774372472482141047305587249264209570370761695506488184472957573635144921985987100740471372321879424152156427557380126357883756559513309594969520148316596324030964138473602128163445805104656486158367025900955677237791153606431155454812046710354944109895416320788187785200249740937896237873130931540720202055376280497315389507324342276214294827332627239037924049451581373902078975543930818185027705687236658911514936536883068699588997401189199102211072244973036835510376104978054897539042069356361261946330780300886657840356841026928337802945809626803785121784339745095637241816034345436947967587084019612354904486668733725429033470275227906972377164431863304089132665013298677269664568449486561215761015981786624652742321867294590496338133635222424518297995557482492487225555571273653082581507836776282780105311489649113123286620706710612182963619544012926168403343800243394011845444304689882473013174294020718004029313968502134031019173373329127502056391431539380747851569563450970608350180275641895287345751325161551620217394504575804381047887988718608779565900167213111567151199063221850273758948474406326823616714086690895572180391281220136939688048444384194831757818773819985506820744216625617055475985886302479347902528830027107097831335691893187762343542835316821649822289928887701723396547116149990351279760724320200209787433817217154790069019944766249700405531332397929498418168295684191900340646190218509510819147401633783086562912407582573377754459881431431640007549498857166733639058226707234875139901060444681471324571762345450966573296260865932729908962411882849656799974605815925153013238347059620798963230347767371468721197277264955349609193258508926700902324469262158611552180552722587774958684651459294501153250710705614675991688656735050390024807254298320945043370675372306969704542574274721180118308843393888439127742650356495889303590154207296038813055637708477983473479115555724260665674625932351796588299153541118084397759113261896074425990822799612515083532573150361988456255350548335345876229094744131269536625270050922231357964024304186680071657455210515593415904986911203747412232517254522500046536278965197094528643796506275406950979530766750345999312050037601234401265742435281122829437510082522020855817428839057606177688472294062178189325353145894881024338803989181027510356322273935899600921047975786059598209316126374233293655768458745035741495706398450624496127692409189468626554159277468737636747697799789362379297673241115885473413325872699260714007228302345686934927203158367028068563975353901021309257024794724211104845040534233483760030897428762497700641221114872836274643665036888563118900403287904996306500957705827205086127684178734138163059161317682423441584584942702931481249298085571193550801255423974498914098533822620682028764837393024889981051480290273322638865395103698526749341459003894997152098852788760377161721362150483379137111732542192159722416452423518035076291275477312215180780494984741840137288634348066484346066958417861266511439994681397608845087574122924343565291253446593872481029579286446005593537892507334843510668669055491772809219677392095335272776226009050608782537575405074817120253519303899929367025198991043467886566848003244150781086303532016834900459274861748405909382025032495694923035628854646750237699387375509846477233386451401524939083558254902520442081576272277560393248366540376004741196141272796993778485217281076215567942256824681335612160551125743508056357609922341563599829199087880176052635178308481633916209620376220539131972911986809249150081232863155411528763456306245214759571361001879123989045449270294786069713867738729793063925050607322976263605628586244857840614675238976252913158464951341490261254396265506454419426768446593969408685051359947840201048790709782375291901605396648258372534852455144380129573179206732835666482710589510856114999181651194257887940880849983091614897886595470777061626226880188687953302527648712244526827878252042305767826521223014030894148999064632695264906791977540953006100528212628139357444327571171981743111083597071880919476269412646445180786707688731754130373128206043071693738468642018344732180607934910511352962127441632685871626308203637181693851972707669260460244201581718850976429237857025075165229629770865650537896056405890123563283104720022011155182250149593154532623134943936849116838143647357098607066670547088739178141346413199414800916489982457335854662484083780923113024839409028434324324261706589663513855053232118848722531667442273151262815906562049946610803040633532160507641825644178211083005114198065148892833044300938987453103717218647588047435688216478508391797419636488580043626939868108801813030604482339776931117929587941577540059120106859287275698418433994069387765509239390284592806152815044018573022844221433363970255297652795365301502735318174851417092082883060285478170592802130715671171136218955569600727272412542987057575009827489038467131805123597900111537033883109959138193883432188223940253489070423475672208951147541803838928166561056091140722565409702392603736809326451150507712484627752646953513052300323310325063776795388725086451293874977238745294500492652478877999373315730288446718440283406071338616722012951370577055435519427894386847207518060040926520635598650364544552444058743944472099210717849916785400510925969033893211083605495407212070729402207471452185707616676412345612060861085992107329821778609122274782152434676727606625688136935380894286435685354167241289362791967503631368635853975983410517510988390153274823857802667796916987096380719080322265400282724062671633838529686408491028569283034322815720804621426930232956846473750762616490371920042799226489974271361273737038371207180671894279773452366582402154682727705238564492059153934161024216605058464319822923355178713696444953164994335233254480537774663299997804927411729261358518446939524822905537257844201802959150878085460047769001500243395292590044336871716696592645376935067124628751274604536617401113838436423361519278001220152036635359270070592004399060225388833224598296832160621064584627750697063368249036412118176292854754067228994068547247866471191402620296151891800325635351170712790892508076168347046418838608374101667309127800072422884059832201455693830479779259729576880831455319370101796270399402918767920344402305574144442351401431080475201267352887929648217599382496817422290500258988745948835687871931208002387636171745677970542749014209622444049209584600323128031444775433433155344170766101668957059731921345938600308246511722368992102293850773366777458883085316651424726064846461884292925524790194207306693889891200307777574698211066188192371945614340775339220087513835451230091311674833659281541430936773975279378707940882090967813462936582840304879141952895787887622455536993470790507894660503474647360612207474890584543184613419426670320153214407293247474852484504786768481820411643235162202419182322249988327209218930692079700598835193167878906793845468664469867552381920674377727577261529412020951378104298749392486897033677983928344160014870227593020005555537253619396246849644312906971700257463684003491976490962203490969450514682770705856635055584991861605149007408787081120168276650702655974911296425352061352315162554544774707207749929924920233072719364634234366090833042302720845987866742541215793530427616610133937311128949188836330047847562997735155840384067131616888708418052688942363185695748467922069814088162735429010770820134251558608730392398976319207265223304406701461411500715401049620965875450962689542708980276981854650937247000653575345669999421675012354054976701310693138312631852177826561269377765451711347242353494744136962855291933878650529328556143950931239740100739469869869156878653328486302209104913437096900112817018307794432035425461295060978269297267491554902157434551269435523579487215325556081995251518192854578408990706137870704891042991158582441562499220287452233184004815337005844046137098539321521025114020576771934771013789541217849776406833305840276102792029653414839842143771277061340412758920610084420101617028061535512705965943667226733327249536691303119176428221202447930639506676201717942378674354770729937359867214470695336134412604725396932371399779337752897332688387776477543780672280827292019683759352003523651774533382179328474246160490784104467061063069713300361558801573277600166246846650656799588179306155961769475923428383102639217450988535985484995477736937924817358143901612213059614896345540658497223827549026444887884523127866877890635539351800182374522336998876654068874722664150332060516490866400432776467411212651241319075978994914796892130655150413455024485879740928668955159027699369351350887609228985694088706029842476670424464329024974806638999803708862105758881224966447557555145857397491114739048552639443397448386617627624139950894994940299398549021357717879645302497253155692404715289018795460824382928666608258943113126418402820057682121019204036234844463113963116829936410496091959114000412937061881086261209336774398313277025892403995043983281483477574599439284196959624403116493146250740254922962927552091365497688221951747788033852048133681115032463447374024047752653376984206905972520493711911782625340943900358973597906820585225012985053982807968820386093701335159014736325976305794476124724664528630120252436809863147667007411440967628642185409582103750145887990921120601267159637806272370928315619705224842386769469089644019876290031162354171389035085405291088466587271370361816252571102570047468747757395288664216487312969853772438655077632160943006450816667597935987719019018577433104976161068932452908066095442402803608167636511206638313510957021036980159263725977335092971426051199402449229237489445727069413433797067164420548239720345147718176317917895518947695581272558101573643144236375027263827090788888483747905638281250100956282725343566555345708477731170076813063104050705602244969651747170035330424289835775054427814320375209889646524540679327929685357797243040567169677196650293156139847365349316347480156144917352161234716049193795903100492503140420380278393977155884982479909936877726119522196650711365047254447463705550745232081249174636385364231271217991252641940560814235654666927802768884332886937572583783583017715056521592256552705170164646263282275522867843890122434689391449945536966751042591226683341034134875543326658841310956203105839054104856064977300603919197522696366431627832063954515543546206425040849127836024829273927739424026841727090575849454302973018490330567864362923845021961749298680288230907680295177059475246860964497854676140761614846000751869941764648088084506731445329057895149243455065801462347594296163400988191607324288700969793712757644446001371166549301742376782435191759262466967906109298316926099701977837576394756395486710147895693169255926519444715669692595799855072838511915029324429316710180153005965154600319049266578391255531668277745302687564679498906876855396214090362493543498850734994537764433602952881380646323769813667815932824884388899176735060687755162766546489714839256544867682650996304386098705576423546705531660912631526392985626670428750830960075847784110227868132606709222344713162331524127944882463959884361874377846329536369598937102818205329489091763018330933820973810068442596427723602144557883454663966122524657002461098237154063864174724245038788785579516060084350129070568345054467095383262765573911120377804528722749565102471510680911497376416631996764889339979976141273672713478084945793577344953773206036641733761636990974092655339330741382357982664894805535303339178102518348169612426778836796299839393522637617150374068257181036358800093990294309988835079363183847112749141027416840636103446700144293079527932348506385098296507068909052103862335471436086322708778871113553953958824761842174298536735156999302759325224637348925879920336645816901307442924099428629326756597927790786074836916446786274505707898316462090386583615624275246163007025525829261416219733881140227405184207919915669984968529046980522819900540588478718424664186438970141775773214699171559997442833994863483825096284937209866838161351979262873406901059802819497636763884789564168995468273135298179876413205193596156390621173372061010396488529252398112571631526839999582652620818857320968352644286277536024295907749897409121338547350736345679057176811316205748337592695775059220113098664071847844305088565510511266045614761792133070168272261052733288127946537913589313995690502813518625501986758536044892986020490087015917827635660691203208369123464672776482328739662050960144308254854735843770125643764010517025030905077442491801469278145094518982200677904014085200112979615212509845749980402976645261160953513453110695030091869802329704610611351571117502518491701359878001406419201057619565074381631936695058938099271711096625823761970062084820504622814212283669563539844665337097029729158035711837781646171532159263054252620858574379623657871424131113743927203239596848193217275263052147556582303930305832447164236483948793097160476809150078561602400562366395894376931075817708118505902481590234412631163092998687586174251308873878529477334278932425667876890144444392670290213097398773666882600183593495076622414289540836459479765122424347924707604354323625239256379692675178307359773480411089743738771294657150978905760647540921495223265294559106016729577442031569953523829385671519359299054867309779035313325103097271231142112242402242083478235503811075659788250831969311567451941418206879146117112005733026555129104876872329515935339605825907980957296013133200761613624284400134585842085602611305705493711963751831652843996126199926124144149875784571891813516837269649151076846487244322375092500930622460330525742409158339626971674533889600192324057704131410674964047941916587021932435128523723617843734249157034352507011900043006784299933647364616234016361631414965636497101876162525172964424603034642431098031792473645460586818059216432197230309750393735423340376205609828144249643632018395795124269093655427278000209404008493514776323758822172298025859285158621363369958879595150134572366863357106242912942091472088120812941438507206489394054306510659659653622043710202694029028602874157970639988008532419501259637308410960274430237335784767950187234665947313148056491430808594814647529750623937330253713252185372271705240345722483944543330727079906423451059035744811630259500174780840321607006991121239082080368319198640758685235150363101294614193548383656278864601158060896729351229841280244049086727566808900682455758642861822507682873258859718822986274181836101250814946323596556511093334512397723671250923350249348017235190629634681332072397810132370045913614441758541260057483981638441996041910590595281787990585994947090700968022955353469246487587451926837315821400066344926655128375755843526985273279742029934122998180067931690988432575760006414010979127350784669312466116375734076768396459208627053905564560537959687904776630933935220105245029744860717452469352403150072688021136537162872402572478613816137713622906163883385866174118599610706156262489211315567261086781116688167103629167537696663038736284974313756964378581346163054811015384973707684899573888982164269446287011480128065494734028395989310271515128556942083040262716328669563561750573755353393820057835176313845965208629744226840547631200658962139159871078036662294990333269956407834819088748964608642115897046081457973269138549935062236226765150405588411264127037202337590219590626933958691863431594616871886469809109295837927241807418001099709352418387878010080409846133061731649763850491705243352655987779772221895352186184972390371358123053592740270957523310791926700920638398074549745944796707060610715420592949224053214144088973215547887381029198384766771106803885093709390353879744847019862809039597238270864058901334607276151833869202148238688591463218189681889247145097678535112921307786617455436524888579122773940418113714120349631134150308019480487894246071323916249511354411885382444829392858740026443224337148957979907830028139333102968778911511120541468978022528333112413348430801146868606552697483278220251837789796646714485577508355699400061379345248527430775051160930764340184069847075592372385457218991588555756498478571211237858158040320887133337902011683465122757516888901568767507931555192070322656746794923008788560655541215450836336140294439360377035247890824571875445704562080137665735322444739133766628125260514311335377511636846368768501713069113493322034075139179925794187116165550883106160334254974263408074159175054579195401592952934042571900799052195939994218721545752375661226179213576619744991157659629258510801661531350890618737584346115013650932638892009833517080695041459789777837396981682511630800949571253210031412649701776685500250719994514760795198151535690301800412857842870066753797797994111702940275468943691075907353058127582882689633632261151139704291572424750027747326605721490174730382963874306833756366623442201815688124594749041504633413848308639980532250187106911506515237976239860923965647485582158370237028184123331261474944555626990418624144186096408463883598552894246459077212091127222692741089874983984509397727634704753046838857038887624061674876578038307146343193330102496593490734601481193900103229842918094409232746135544453867248601037495451046427953219863784098389665679278156920052107464241497764233661432911463378507976646448819090367865393971793530859726890271627656269390929166498561595623842101101259404390857404611684517475991348527655680094085528038015752913981245605506654715378633073281130458354341156897220244874440633953024880850664080795853462729696738963376785776477430886771656750552419761401469398377762944917916566100429766735786610031173108923461525311697840610280323030163351026014862777985582356178047798911107462486130272743996545397273900676395825992892673728728805967453122735473383370114461798149701062505706924846292067094064301274643103085787048848786558073804342150218820000189337630541987040471550762039760494295685141281735373887746421978617879334355241548974743840404370745505929352045004106396062101221994636346665463398671165702477685179940779885497752998523416161313218746860915201399416924222462154822367781493896607547022448200033492253708504441056795955836395705306416559845284423768650374242265137896004803924195298698339243493251599092382206371429997875802956544974598587349811027831115148658112483911494248468583691426064316262672073756952702184315060014851300555074357657532928939918070631776080951486147941000116309385848870594955502669102054119730530215082511221551406329227789907191616041608791597541431519600781294166114033449493407010668160488928801451236362690082595270680817404345630144650460770479868402661272789517139037346616827273457104682723021491822639893967953562900706463143355524182894832140410573358654729496696939136191468999125752669888563505408925877624236338662306886938290356774665846832209882053570616023055849510120548783217010860945489117212489388131374258675589420538422515415899460164510740735314357471935737376849180078821384897489299305936679793890780981255013661636390524487240269248369262945302438638324430864821673323334446645697542593492903398283599747014585853539448314848948804322996701134555681945128574451776481971867538723920419009775644751923250287985797298192624284266219026983142972249169136038051279530015250344507211681074060222381340285931620452202543221248642061863510269771375935572056450116871835400170134932427219274534316939890539814146980899483734910184411219487252700623849476081181249298473858098766413056404009057788708754478065244993044963089545096048721426384502826447311347340300214090820577648737746068525025407640910455901106070557653764932638386749351530967478375984426841467794543007846103314080602098192462801585079071292382114457288428134010568796299969056349565263324230785042746147005631099876081880235166975288980257542305530318099615140369102108813929402334109970057482705338595246578886921113582887597834133937720598604653967468045977771550351503051947590627627407362834458801772621304824513617667513003537408705607560968712410390428495391277333315663513795462082358007816913438297447008725676360940066560901004375849929272852360243135456467269683472841139687887460393862398211112796885677851079289905917148471573802383250062379491545284204455634370493759973422425176266863102148429632891609910157131082679982680403746416254646459725248104501709395279010623466562627656558375923391952040816901649698453754146451101454972021843480991939807138768348413877893142583995680537283370444510896041376986308736728485707625485874504534407421667989225560185062231448691178567402753660454235678975809133288832010472382430667539088513482771433614210979542231364204309839988529699680238501991853535424174826835013966294132435348290854068377701249730727145716802378073722208810052784691262141564074686122788319467908763630113296184553698958442163522800250198889329844799920668327223544365915618577990328579329304227340003939551199979629878186108730084410282347589910537058067879202785825559808839425406973149973045657257226401883298815663906259603326273768851302359529482206770681295403736484858053280499182374135269730355831215438572967084308499472991620576508810022931281488075744004651238257462685554242344876579569588388841543215556759895563816373392276475430228581190117405798195817890906497726935866518555905312674900960597624861555587750340176595365898051639219457374988336606652019932804768068058045466667620567631544205722246265930114915651832127535994285250202376492453642032709680407073304589281823772490638868241881862771445386767402372141084296338315048129513015314454063933740930051652867375164497381792440911157268880800805234927823658797238025885067852086488163791063733851597586238407374306864039832673049802889111852788159645600581528295970057374909907134379250368715874375626655090852794953641258924207410740408830982223458912712682186613009186547828787149925468471864468385645316390304710557666134037073725141876597144508233013308643073107026171187935556124281098878908089558979347318818994063467466717709247444897495461179310738138852516611641578348135781681743994732495708327075506420176564903886756325742292152250689281321190607725074477690159102490647932844606341551954882208434570278610834422999102257986046718325409197981405591338724657457984772264580319793166762440315518651693721782773833799493951984275995042479300388697144152356098504802234823658832753153976450186343987945165291324834917326004886532727666860906973651780111502609887557707389672218554667948810882679567368753956740811576521096151393959938597556109176588866929062930407990037829903886154751268450151897797708968916562840713313538908297210891774617314275199633604667051392622972894824742541497825065618095405349869753690590849813161759011254817737097278283455616560521011835288917488069220705799757887364516598695365383658424799528443377826025816277086009941773455351493296816111881526166110378539409359077383593319014133588293430341816627338950549993679499834671912680233287476514545092020183979882243317200474333260882128361244104596878920455338762601795406961852071363066194466381173226744882441052637182311644701105268279113107935558037075907412254180751165617822558221904823272177612859833760435316791918615947598814559663185242566843235450888138187795245216088652150869510379291016962027035153377516571581127976187478828708259789920882140951040384391703878121436600386799159502753091297061970096573209941775299883195483678618205086947113710552755239941252275216811709590213468648455669963437121363324899611918668081162957257555024630813489121089947356614140415056283130617892751503580563994485084652846875063837791143866427837221051279858378084513786724621792333160545754327857953297367611227407740345659229989884110233040438788199554179111543788442260826485002247427962600195528326420912872839861578181463686568719889585678114116930683598863702447789614205541302112430662196304452098122324641324818272736768959071916000972482441587885515486461376403880262475901926101963403846747857749899077597858283518040051041674131356737029083746192139750439208673475735416832885954164679283037354885154693373643767518816254698552401910445492829723379970252352481619373244267532765776182860187382275081436459347191098684804089368123795059194372936955647283668201954189755271714891915166977635936550007804285841584282491646851435437123223320981454628528127930329025119400927661006934142739140936581531951471808259395069350205950491406976771245181791055276173397478365215704035454830800933470503401561301226637360976900967886099723799619675542869492727321642090791202909209503442418951767715827035132440721504690820922836384643309419111361030367025377881816761449912835486460993156014007226369954872810499246810747359666560936917987956483605444240931678437040691666663135141920224857074770127003441157316001632093574087653393545558024953440656780232254199676433577716065209212792122858993894415002310366362210898533879443420098695677296283973373617834616394184639748227027433447770201867316172073556840808791153980240602746397334673883126961491357495448707314074800196904896188026226490215118795187944192011688557216769658625137987778208146168928005176457067397247515239051752303372097494930878085217235741189053439862351272800535516264291009604310192851411769428900097441540386811082980684307152943758521471978158575983717435233855725327043194548731039423547519778233631237471751473826436782555516563874209193755028292488136914791962455452630556555280342324498828477862962893172327215279639708812529833843186476007911306615873360734172612053786024810767450676348680981551909240514788702825714104722953182769641434494510973486116023290202558952048065639560927436382125971199289428865249317302977220846055966051901860112342105037338885264942040657496127636631775009295611801613902231646958123283178680815430829536727344761955190816514337025608936307450698455178495140176794275762184869933328767946246419790998215846374121007321401905446291949288849878434180194363283901288679157055278178743658750265562967641248374105794895043275762939036376255843715106301945786525300567454998929185165034242257481447414117698945435934589681742723861223697279052552353871305576161752369146155626698103420031552417586039694584340386231709182942396897891822479064047489651294211600702127149986216605330196926483649292866750484126698483903796871389138597519856430788584342128156852253256778534119080776561076444140973560332119315983594530422449056650130448400630128919305701731789962471065715263539644086024784364666252448061790688500620542855588894887319297515907705944377297897726839683506396910175296567151912420032866930706257000218942990650650064078029149182827158872126164828431512079591534215490298927786796030580797872256047162470146814297309180932499450382558911413218456625334021254953395118179650119739257546003488552511324936848348454855600868499794614749764501623999254828373641460657133770409201571508512487924926748442036609582341712682151786287311044118287515083618817342748249132438311679892922835445744851053503752483110227838093909309529501931283852903275505573358367835263151409272965013090467756067691601920472932648152852455665571387717200676225085823306018034643335678892883992328028278089437471160386403967803420535826944437249781706297463884597799176769254660693808603996362005452989924203409950355889877416969319133417524918020090469572274799725511382894029899901489699183728443180116621048723296565917556785207155854939995490953911524042077863130615829229118928499967899950693060078636189054617185166147761451642819597180507848724693648808626556620017945038428871024355024820029069997428388359863646372706074863546042088555997136285206801585768164164849803882729996606685440649857109421576422146400853807600841746138972653651124795977791447065292200136368427019935164584471430536215994502374817810527595174738068524796682298877402224680592605915517570157736021328782543471821336549590351535830624056449009159880452941770379991684899238891465112523977833966399792286677430782356493516265253545879764461126583903285642623113657058834750331864236232588328064433768092552775450691956242795909433070997442131231896836744777144948649216655618596806852756063368660577235051337460541125263137768656856929511289374484358703666691735872668329768002719412333687473136735679018270072046364690017243670163387231805130107514002422834605364048878590103738825449238490872541563365942504256864366766935887459870423184768498983175591892872133076818125063894180381785211943472473692824030890381069592856723139366212246396926634684051104020657291617905854169075603138460388818241153321002562957249538447759153150107872394543890056253686078912582378935607145891848647662432347384316868655362626251530516521147190056653909150096312628222515893882226446579688952328671484669341279502975807796481044682403495757365347551461002688068380155412545735614074143949627114412351536503127900422489784575791469959320752090911402514058160751854869434070099396465230607920939957815202184515603146042243484487588473558398470545304313797847768404601151906098764977803165727930566726072149636082863518132683937851238375972325737944623512257482210516491115799387240690662756381989966237790113976370633526698634825779542592556272026457365341367764778993325793486028222239853382403750354098416969487044477825480356140930448122137957035713824330277565149215824783271853972581685526738824889730180920372237413435935458952130593347043217514354823549654932011861569549266186954470422690811537657016032335621017476006097170776292170803160230014079582208487425709432808425429276013946572543039884830066238211600169844534975881572751660938712079669677690698527446618889074173767134384217732318768618979969914172757073134370063941248863609112702034908214315621181464492109233905323063862149075117912241282489386880642330008874360543726329479197009491749974386694556463580959942700371358176742312277214603395458719844685627315341688970855514593281078175867800531209199008064432170352932463596588469145313582947029643978965814163385381591807634991675716754158591472081423949785183967136475855813320707090635709332160549554252317516159431770998113179575566665176356441091522344058511738912377331351263567263913357269511372621158439669729404595711309189613545110966654874894591814559733353599569223725213329458710377866083586051653535510144098594677848013477156652696340145046760400562002486172293313301172960879977823604811552172425953707571016734417001316862043915406624622741597021199726589214244026541314317478890843271687618359744510651998928815623175194090457670458608167825768354348693010609969562847380883548436675901302265799538315376919105298692852466522940247127298215847019857793906433231936060568965465234896213291306804031795803095533783359340764075873521277988112725143713291636505738568185576324645346963776630148060906003062518219269674796333946856714763489769359991353236714264739786165360381154313100434901904753502227693256285316606277584431152807466029554228379340516383102056432708908770184672561636640052325475443176919161418443656067051405512524490878919695417753857276368506165303730372848220982522130356565208777388438703223457653384783962957210895080593811912597927610904611777991477036687980590146462386336921012061492525682509902813068047416546631898832109594978300452768733862485787683886469453614508373688444740191759131455472697850082573105625401853903861480541909936070846397752403707619428959067250654372363078787639866215156123966029025818029406373720734557841115151465731894794794357452850605413630933516575349339617648958881051232061952093520017584152091497060027490088129112080532439796051042240474465759753722159949953161955437756431920487579564530083564292770435300646663067439879072039894077153023090075986271309784254939920176383132360490990953617803175944772812860554628042381675851288220746830598685015732237080562416761623759210334902307112117788886648339246251455147994580259954449388220250865292742070433619094714130356264530714108353831706705034215098608970794151491763804021725519696440924462792463861189556840244624300360825029078284890344446739964303179931403189073685412432019486155910236301835553260406098600127670621163972815126325105292433478044782911200465902081575527358674715447046212524613559312214834518179751244797435766880631291201963859721862901539826023003250595322048952920144900639984756817766075196835667528037705652064890496930192178513925625461170767237667514006210540379355109165917582143407809914956607339319274924599537758038215088397100064809016840943127297684518314315823137886339735728073735357081309002744868941978194465816787811775577351392243492894182589771188917512968431410590560131537257318770564980344100556934019694126818687697505415253734689296021661690783970310185762458142633026999005736785739910468991993189602845277595633022590285936986184142103067953461217229496032603188748856634829892603602777542370342370059964186210034375194767054531889119961204682120136854990387165047335293642036252981616597963765420894572614761225992786211766526636404372125191096294203463487389073055928915165992385758451801597224569576841752276181110386688383145898785095498039457882900096522417146755999767282933272312994530671070778529539357297338085993592818437972530848568304793685088954001389315819815226426529758591280953853104210216666981324161935512815050080778316782411341389981159696080524204205131672313612987068766619697715548772485604454081421470967125706715361712991870300551312449052961348549224245682031774128537106033787072316577225603971589107186234470500259810104786086214748655483124405529422690776613186307787920109307497198609027092972873117543698722531625185366719396589654044833349358354412295131132445587966997374936014731262033139508720574527564844897243742329400532567514871328005725488120437844732863585755229731139874856613893997260106960521504244266224615071960119094645403115721491259864256958054445013725207387832706708544105957451113327736445627917251686219336360996832132036213028786659785231703268370442733832460117883723530262207921558748423378746402501298393654213548431267454800830107191414709044585910900276225665300484741951074264639004664510442103140882952229828642823521141688729014324431440009729041453910683544087668485346936568769570635785010557495710797024886626603672636343240016113478545197399702446906341803830510748119783231740067268540135742758355893794395398124545491877981189798451853820885609389041258337583376065209953241476373614562794991878165972568647506215111328599712750037946591180650903916901940860075320244672535773629341439580648042399448584532338813346473487335154651966963671891618262148743924284862582222325804823957420250140664914494262860462905071574837412669683210004262071471472099891734239132097232706239365775852774160892552160705360541975033536388745091586427960160969442338308758992455347004607693094942890011669897961244145270397102553588820055828826652676964381983403108479857579746357883660509528642956595810673204963075586691450310979006198447697103398193071819543586788264245363026182017623526629493488758512486598352655778736894394639717002805661075927591897812395969513792865806888306125659400877381075224227883787071654835152079804882159071641465655207912415282412084782399954214790691391247343083334715218139735833308428174591521939243841264151422072948024008373148633019053619800704232195941606358306302828845775820326180853503921906801519617633954883798006711140781716670131233090694051408240410418907114732309113975369778915990953909350360266826843104708401628479815662913253580616555179470139712557285334317091910836848185235723265819260594856597121047182027907489626102551229453050875773223445265137558817737691183854147324879052836463940461671594158323353131768754646170544637578152686487985942026192185963399505291820825756021289667342979915506415130220786922007903840663731622793032857863860598724979765334488011188508463128165982018193717131230418290646207856297012969251835128216138586456361536956903691139697077524159778686408679053382967577815091468056492938920138888582624364005318043044633454059340955225063766167353844243135242082692309291849440349417760413406457292068569002286206600963240696249012478741422368027908222278434294777340529114280148180998835205924434284869648815358729664228278106057626796634443977853558104419925967799533655762074857696142547124379465715528764031836359920852603839839389450903633790163053459682906444612834552164375709678288489075264452383111802395552308125542788233894208053582818860377437802021260356568501627321328631589134127853939390696456779120423557281571203216983193709371527915498844747523215923756138881326350793090614298863947502974629709611590813330871479317761006793065438818909561143006032361452161401191695697023661708386245499129922399318416117346458094070937441249532770756159581764515520419652121243503011659217861552550022909215745738773941689949078089121627303055621017320121690658377379884142702016246601196284724217174165312416307411827780756367208160323008047915084144136869943827304820506378718447049812158318569545320353789715465383189599092722289572823229067816677857950463894754711100323752364540241352455867109287418604607363208783063637721806648172027797725567302398993066640993739324997147202826130866998267295543320301961102567394893821077719866611461749912888985513950704909139799408710228898769236681006889576096993785048559186519681192431479226597924316706243184022880819058087989357291166333021582338229559361900216923601446900671151756118242735130665153104266961223187457058001091401880874459932922022312010694926318733870599093770141525623257835555029001606095226152596143294714500280839423946049582378082857845208435676785146519105567609659122603058541698420659122838055934855519492196550826309740535328676417048311470089831622472202379739957044045147449676399333583838180449857705389941308040024460881269693016994097531729946019580871312819062917709630688756693541005043730650560642757108700163706061861285720987400602898652229699035743806276271446708586972703726266009845065221184163399080697873260614176497555955964464958052389800710873210820664785369270559156825694890600078722059480666215116751020381032490199546413318090243603511302453071751990979596693960531928295960783356678146474000768272681773625561007633919259216816470612404782206877440689883043277653424452992726457763757789938683470238180959699722002105408065283860073818810692599527082352493172106795474760807893383698994852311484317035449951723622107354146362049864757616724561021861282816798495169900522794301342139193025201967812249727054305474440101468375754411337827370044072495445050438986164909375437459869771311139812569303702986754320340544037418627943967202091707912607937055618282205959577390680281160003482003494710558773259977025333264141044842405644042248027337727575426592283078586308854875166002301128540554256951701712605772557505442506931047512080903848526354614016897872240480572045009681666309995661611401260693462713502543884360504089383663776397289480511798035426589111772258934454319630239109141060491213462923038314646368520820112429480956080586859050547972001646917860881189588198571708151248507570191897123187599055311830863446471446417768419647314707737325979068429145039927449585053918137973808630991399561488140236919061864905282504577379129983839789434650896668269126557442807415870757828390596956282008337807574690590455520278072787096272275986476066674642400002058884524947046519579712860227195616344225410929952689723523489665321873208976155743358007838101912905975003052772991879901994689935355960078197530701360228621337480534919954944109954478275544657141566218546481298343993902981701539174765607690775946989417700440952740505411704740466132252875910984619307176089386584189051379984241661520033534170379620087462654455298220218966110935941114498335382064423991165677878074050407873340195679355521592210489083907262028948634840520579430159437262433321736487524246482808446413361830315156213406958184998758949038348840660176781128336720109338827285974643741422532239123250465873779347971537919813932233334122596307192234667317192792545181013312590317612958538958900246560837633339745729890588796126373559563220140031248905503527561740880652178509600522099513274477076341187146197364833125239165915916682927312448906189914856701020485712352283580849679772344526062422533655978798629686184611328999537122711249714475593986062122158099206916021446759451445527795589172889439775232687958962263517123085130677279273480001672955278514370039636029784650438301175951610459020306281968775868142626091717249809182735070652101299309272140702281795386566081573956275568546052880909034685778266017974098820912274481964425234371564265638127450206220159812011178382646035036064000826976355046266967385721759969478710482637629978977338697304606442471178595932458038794243309755640399320605187624617121938965649984632797194650352800362349774623830932216671096845687837761171970398305140757618567342141917108335913428738263033167862596411167324778367524010151389465251824197455291363773665405634481121340173083133475221035592302700569003644083808545875941595938534939106777208667056336310166744018448040073401091276826361069226980535343027477636021510728465291354532710869307952318311927335892848291639816789157648409857598860740329429969347640346180951107377075694134785936063034444134156701424815857461465445300446171526849459355361308111560129852250140854467010867128258305580736016035946779663884814777940680463041815524044440550327242854269160142290421461569740464898119062368146012918651019482532301205449124430507825028743649294832118202263093899210099678237194159245400889112691364661040650666601237197112642230579224802666533386428787914189520899620985133770752471992935048145136761742407514778778860735524331771920315492525903701413708591078775545576466399132779575782177148032600265318192091352058174025033069054883628002048551321377225434994458039804243704479291757688063114999275910653437987918302707662028110178224689077481344546274937281059665717656717231314558740116991985296587523576264442475853316211386163677144434258981378460430525211845330584685734164657261658563892065945077530628971138652362264311729827772925005532078297892401594393408011454562431572606579572030572346862920296778373158120578190983538311683448293547456594734032715050766221244609747759605523096147264638371728352717998509827642335130074257904527019733719163852019039904694759978142605490258275850393047531395843834401931200363449436367865821082013735735293272831464011596076766598237048068576151311670246761519495970461948195113797227583170853965744667326159963233551374067506165199420718344805491495479489849048957125860761989692149188855338456239359936257226703274426099389188661590986224939054340444779724540211313848367097515378841607669276782049038618998828666370219090272447176759197728237454043464159765349533501587346957624780461705132933343973568965256965817134484847423124644322003560099159376678364100751462721162952724532518727354720005774494823323017403511803484644609422435570295696270853916572759559763591850975312542260833634220075846866022504108615145386823901932947298726459364832708763722223789617397592583138924521994869034674828760868453165128888587836823728558653349255828628158297172142476242800546390152014202624594892515026674883218385750235929966560492531136486789777515467809276417274933501529232330279702716538546400525761327165605294041517967847598872450472564907064501760150168442182355871449418402826594496080773590440908121376991598651969603658549862643386411430652849573176879362302237852106069503052143049383891150126582080580024517882135781839175731314999928843936924030218169701668610456402845119277705219843458561443197496603277505947460642691809418181879492574355535179083255589733679796046215860902039902711247465526859471157807519280754056792374832890401171783198160781882399511643686670048130716132288417215968339340993829647263974712185541479407808656041478109994004906431192875168917118701486441398213785186594962657490019817646381396118653941916663222265459826758942463305996193366545798961424937665989611750643423577623972876409332374297535550512641727086605995035193094237532982294385043244720712833959348778695145677648008995622143577947607015615461821050678411578419003917330845278751836686154467145785175148416793288530517416779622154130982009909039917810344882274197391536678162003483980421567402699751102993545946154915564957716851968597478388938691665054593238295180880658883204969211552200992794277537470172327830271892792337335239998554639816560042349124799706771678214556455516547001510084659768125558114975100696419644435459689058309372983136886496175994842765441029039701133778429858352986640497641571687970359287243567083521731308506737229040910534860739361936041789105114886123190972348878260133478414861494618810050487617867393161610942903330636061669998483849696249794295369433776334423718630070611382202623872399453152285484448370192487536936337879115998133056611435685771919575489385354111529959149084001023693181102817124779126378712111429149207992350462268504421341765439334258717162399690825681435181319700358008441943635429604537379928353651676209406375873370851762697044319086002946602472296164302666354174433403270787652503193314433590659364079209675521492383948097515712077814816136521731923879485090883491549788280600041375531110494418964924634436975530718268552717986271311572337514798169373460677019370358943842077372456341172193673886520834630283593610045057503875787373344588096521943467443879536478864276698590789278505687142826016648294048634658158130138538580283838886384998776121803452298253432517422334284998817142713709308793424166957113675860526882160341659421376558981434940668206961834594236719774035357253582436027722360401931630914033171850650446611184141656532238005370928329717320980120599606600653049278656256537143972329099243788513834474656214547226083408363071039590063195396060621263004804214594518156297841024804123745848337017206233237648433515673163384455993907955716929082536962640308137390873963691167800179983226276440300724810537237577721782670093314129166152398201413834381941014480510681985504261105450040496137293346822458000307354258459289769304954097584650730309656759082182443764003690266378696171975136920701319961532547924900888143738260441759075327693654535393914288224862646744475471359436313188820759843146041373025285543179281983419314791527733973689883972211874915198901724750212370082744175631285678423290887130096474817433758717782269173021436953633971605060030459111802287181213375754728857090227525704595612258875440990504005469840604716569330875179537305160534687446455296581516860330392981737604951481014409598058235747538936282303902818924311087310215513383209937491173423995152184341871958214197040822320041565442388621390961971030478617289066699458660384694054667849764046370983440478359197128022295486511078346978275528416143697715245280865009889878274557501835059649037894184804117320181124279162251842772609887085866814209201269982247402355411564910217403287233440646375145100207609279287605227209309513068677378523344875716282783319004488542728467477330889398274477767487477050084837105774728468749822657190663874647247167296176531270057350913188193377399221216105248480628954077641130013809994003760415473623597061737387569596714898144388869591185512850125580403178334697159273405619255100128338096110417440375681245140196449355691465470506728079224835054280164687714755688729959945122560269070974339162724910593872534813092178267189171930477670420800416218856362805761645394605244316518846818628622523776825520105631044442245013077494224233582939476916027751469725055845226523256804598358264359771388961862166006095816072487743469178224283204106476409383998018369240938795236533008871499823678896534771013135106852561018704393671632748160296452505537092668086012078503457751089287825475817620785321282297639807107267199005007082284166247672056605891209998558801529834016241664558914301055359675713085146407507778984689040805428935912454560513045011698888317788161889287453566142767390648693956193697606529024679274924882599149291057054830651040874267912366389115649667163482676743201661775169942833966494213842628411717221960874605944470891189305353378576518443510079790859001466187617417267479755359335709683046775603299239000374126206185945038300597728192625872257926072644860623075708243497648126589245869832252173891573321296443362612661270586097071548694138600458824659305026764050182518551206700426477640354814498801173451191029884699021548547054461338171775563476679213017727338910155892105513187142919064054059848330356892968522763529993136051164473474240295162093439428913961209272095327605875807399425039857399363842459215061870223282225958853587774333592453701491729549944126406652926299056069911403512625493754452006464951120988204192598075796945122725003024904959848754268516236195380373108095835311727172034371921769610872386319158445918782428374391306583069814285147540909847307920718548500154627292781871912803745642320387827452489602592265913434059033044183452511623906836972103016185396693978919827626004182471277567129770601842031759265150965452791591499308808546490694253378722602491561119015046532002371559985021573493249030341879460303281238705751927586236306327033069292907759031425555729907463820275049946915541775241141326987066624160145396448215027281675512140397919326703337574338091716728326521204542652985726980951831345058240752183719478298769618851502678583204916910947966032694277655747053059884937424768459411907260191870774009730115735690184724058810040578878954395935024894215645746575028680431832722163889739163190100228688879184580125448734059631404915738747687381549834688375957195740326299005523768121415936630520488292578615846028993157622739438784147038624298319392448798974087773766811957795637341825259738017823031336282030049972011865318118564060326121572014796482058713352932782117222184144581560195313430907178947434745781318730399802731846405916088921634979839135608985894828937014298402663776276077853294675430502436729612456246957766520796974836965606152479792853192782179536417339554367096706757215149507382737400126198269561090705905618674327495935394256166639492307883715062583102851954383572231737373949663009432976335166230361401199483527938679829297427382991754275657439932738902441692062194561023059993174364188870835634948744388946321926678077688870298852988187184096650525460856803155977367794844697498554676699389228850803354335024122284847336586175695098060042488195110569867316313437951730037421473244797692800037403131807728063623505833104842186411984033447001727217097649126934085410860356416829316401578952301583959316512087652418580210122285894036742255552436057928288762995909222656903603681221784107174794741859878704113998875678983908872466121198138199129597950681334511535971926676566980770373718617523636918319573063863682248068004947646260466055306796007215531260682356471665114748547704183823742600309630407665287842586628767038822424937524529449196894370640379782232047378623358497113223971914221266885123625112116671778499523115819404005182989424424511584266881659008116226179073257626170836121577304985630292885583078548535874555921383105955373266904464212897236402501892738478804179848916429322289503081384013919739210530384209637147257697491510855384960410922827162914220351130042744094156772024792800308741043093559664657598226409863354818172181365092081657180133815325837487066689058888814376063462900216138070895816742662224086415782025253800035087171363660120261815752709825547128533018261586237632239237591853102924668775134628589220773316780879645205396723029568186375037957663760702091640600670864726925097414278751519866936903208876747113047470367604348674817463337256654899718073352618015481164062716914915663739066658812840913959992184997800632435150231624553503888678171164274366077625139024600325618958684464120788426722550903634980931330684382353336709297460987031288773362261419891459360846047851479078037361103809904430717666295163305570803526032021822145142897606288189019114289514110709636143007501176935109569315514922924654549471297729198542017035938724320858380707170166055374894067291145440680947302162274914806017900377320910296904183450373648696490576477500822715963889268254867620647929285756285422348295959191844439385630311108957281919950782390229921276871936167830030965588291495349228301940239946954201316330400535479990545582987211414499139281687283420555310203996226499420568489443506485862259834042117272601660717500792114530330178603721606882638330489213749690577835527456426062178761349547634697520251465431722065474108558269978251107313065671172371228347405288573054002592817851544866144088114627199160314536212419187211411660282784726793413527393764906220917063575002575796500099606320913396637995331242493350211276144968806261545050588581242537195741378096002564743754009598450927334483604048325506843744359944507920969791920486489652925618577712062214522060921647195225059412972793952500404744401115858470726154353275509360406816361788981557449276835806885768287959373197934482776737590401803421528356685086692794596632452424600837465346091990718329035888460030165852084172236254799080439211790826170907516689975376047474701027204301225905139800189505516831889098726518580538813584792639129020429613938909986559335093131461586246110941824365854947927206795309553933694310923508292009689778299557194144093981093405069470017581681470529711045904725168551193862671408211784408927478255058361628984688984179911180476537831614843655938336496795224938092829588105606784422087471650583321040354422825712865161385558531947163489468522989794013377422170116375416431942554108193257354749416750384951729019939852896937164396742551861548081884032586233024913636749953270515480212907957919580612723403151920128200269917893232823493041245797793709889354381554949737421036323932858412413083640490079835063943677092066000321821463084358068838773967335621186748487155735695518978261781335431588339510941847841380156786036787209759945050285754300327335235608506762612599689320004547712585914945274923244706866376934225385951528314700747590378379301139490583159821644706500548770754610654876839325784045380922173238951524244496804596026873814523720212503482668575835432080480533714836495844198101970811850331443303190490001513561488241679426222497411027643161261761213934856030561989949400292278742979728906294540748450282250225292026285009214280829631437069229545450961259653815169167506144245942732512814965423245107499423348151775695571723705443539997038931940262263686983792307634322462664870571427599697641522156693302206988466709233718051422223967381298179339398974583640598548245920273653779077026983916483944223668709619093225389214383221556668762380774853460070434548625324272766337650304780648488897671841895129972189609864077766461060311221914775613994580447337280962560532828976948913127680048404463162679788818016658093202578869953829146369105214216612399787598854181776502993596385758061110669424044789259505825338149874623538363996065304826215729574781335417085172198048435240376203663218526980862152296687526131515557985674724955146257014238539426317146119355409274877869554743325083154964776875021234410992864362889937347049802749814035952976459525723040796340641426190759690274397176754265677889413566798744225124837060915401809939205466593698045246250537835550294187335383860726747994910925202078077795683147801979763049117120278355831545043030008240653598765877791776688002086235808913492050041820548832814682948702057008133369966781554813817384575161560870712218756101446569159397723717561093088655956477479864483226464330869729066062148373331671266645050480147156658646584052131120293672872332407213711589703742733690926774381092931852530686927222830394734413220677352623394344835101001730548883920360019370224286583759779509728490163944241932467323281519037124232606942581184340282664648548680302387128818892008835678379728153381446123098277399458568922269568452531091745739237002157945038596136187945699076065754220077488012471371291138890812565688911892639957414972271985032503642013331059217365275319010951866508311265572058630624786202833434359576908642117550482967125198141510449794112425758355864893864769348286167637596416876880606304727886147172612693219339786526989413562497976461129950245900673145875493002460535288726147858838375140132909782713208967663535174446918466176158388248814774019924649892719488329066935056322792357944856658186737054639561553544368983802152661606742763219525185426543063670265297397445693833590706149802580567896918112312816499618611783286867634201580541325175000822139167371494784784100656639463811584478880830445598368472566966805060050206451846850075096436282723462944343682643163806699188704373923910972654377917163119389363941280300015644754847617433223312286774426552004644145904690748872047788178307883544501229519192191127872869919613737272320596173102171217565126579952478163158406685746290477985947896647913490605922020875698186967765729990921500992166459737091880257984984232628775898834827737455887538403153251037119651850237126309375191276529357857446486251266917738756952116441086164171382013354868697073986410880087518848797614471997280797333520374820829545379337042362908101233324915378326052874061754954394658722533203960606610991082314969159282558060163510979915172066364736253946696379194976634150550848290213678075336566350383916784440534019856701450725714378503672277579856803172306724018939247508735784487336283925949643443505186047260876078538419911476978872719905490472346862759329880066317924991908876909388149100815675770392696544629334282134250170482401719107544088922590819939916489112272744841134372321006810534916606894876624961568728204710159617613335168597859957285766019660822245156894085165250375743539445264629204497512848596463235747752119039515700425726455725432615179147445259657873889099637237784342689703001316224527609115019710573944776615752120201133964325756266936848435061814483438758561423959483704473645596530865965784360181833052829331627127300773156538372663829589297955382751743437966369497114820887737197011854804846160229394971861692244271527326612943813950069200101630185584948705984142142391031177110067050588572720848021353331416312951730472533040948310767519093837952128406899886675489890890211681770092909052294694235850661989194052000233952455765896477135038454082573433671588699055470388974684082767530443771901602973806647919255448651923660431932036546650935783257905109615091247671260072507634100724542459823218134975300665504329734975899648779651740914667484106034087282230659458253352460033766871824431899959472546564068609159125610033436075993676053837154273272593641644312164523001082163374595708278368577620507359552309904022404580274366086797372522178862540164122769608843232564541529276130830339369602543258223814707836910895995779128424391792810568020711606283896337569887121333613019819830485127530156877062141929132439590284209567918001852935814667270454493055642236461824188549758590219874968807122684561597037991430283770327097609408606870621242762132423966774301619754512546568712870961817790375339756459452051900641245757947167022897605988711922333929925678322021884517715603081506332248301003390536001573668243797983822219056721612341064841288884359688619950617527402958682686749768884103673091067503714776942720227370214560721756573939112189827335838840706470044462211463528587803740765039597620719119765760352567371011833545511099455202623143438977972089064149386057291833060143509538174855341592592934900199915279028105263048082405894117230284965406192344563528986208300164419626946110182370725001528183341028013068027835661724338010130682592851662236066224307142077967422824171311377752980284881765649886288401939676048640006249812428798834458388652955032456141329907275594679006148443339816051265179472135449945775408186364054391591565898507206464928665391801565956740943979377133703794574409567952585145524384937205504244596692291324757380684916303546692405358363796156315653940114807228275696191276885455318702510693960938246876693178744991641079620416279937154300210368804751998924750992768881467319083963474648325212720039155682705708225965502000548071291559552373867570625357000231109832797766151359492858671195759627126933688265438568923856634309898620473407079624874676826276688342972002403607203380997174146916157357216017724435358673119469146979705323699061697157518798645707617650925471797528223698648527147489629344881031565838967946861103919282983103065153654844640958538380085675548247261364659879644608370738457097571854651328358279902243054174894008268481394673689722116761504894706206017968162355481314376968306991599818361899792649147050000536824406589104462140735876241083852947844343097930660917666186573161296127372261894096095476540774072148334462094705890482370546761573236861563202892464846137775035612581566255092269906475345683072321795378338548613677224517979513505466939330130278405170589209567892633347155322175979309432142343654096312961704590145501515833121509801885892534970742303670774447751902960986950793295185509705145466955412949165896027158212257236672561542989597510519122497211298883056996577931361133620913505374873567358247727441761104067115769368048019153968649821947717039413284946787737731148488940153717848063467740560834447584691687816243630934415885881275356343874331059411844968434935944337368260136688958175888985570036105282418925243589790618154255623037811334637187233213155812772643464694271281703253490209674427188237119188504948654525744384899919949961924108500700974202826577808757709455790999443895844136890694608703412246965363120624285487075159984942091802414788953479318628415393890718669822246430785377109381170865602889799936415916639570297641999151084574737078843965073395390961170427949750095974817449769047357485833550337126825298478369752857919823356505091083782522278137304277322208098860099348348420546843968562090014024298290109154150552111511006540303264540979261308058583078353009671961457369728282706199951310874245327003864330868451750262122920787498869360939837683571767082280492344480272258162205614131124460614402522191678441232292289913361064835735794554019093030803640644980242301591811188064162185911720055442586894579824558176563398467588754546751878048325289626484037060771594399479049405088363211862866296422668858405020161039482077413364161736636105607297770494806404066163590739046233497549169122819908359581296649086639736449418841084008617800064577003911462326115845127896838157992578871672893318489906653446531764183648878525408496648211415985327870111428051504243478093090708062464392511942382889373537260134070978167054855149444870738807274259582675850734910296821513021876197895044071754425639583658816629585037403510005515834843061519171523836668533108556917414335157461652380181019625495108417544978614987055554124397022145363721954725990181739925094534881391296244051003563234010892581794840836535373217988296201077080601743159725809212898604697779856071612757180622037083635910950974691251759140463300782581345359561336474274658306439997497844716028717178453471778989068467284820943676113661490566163069353147198307097980731341633509245590776944723649515670173838373331722075372065608844288812151005464440214456004191807497241537157236685670161676584022603487763346124597491158436414909109628993138459568766694430584158674284589554276744369636375424165600073823761017541296244363808583177607334099632323243252009141084825579392434760544095589625998170690783637433841658654663508148361480164686012929330876080958048822775680678813354831276828777626179140996540641748387363578505277866176796465157286974179632620811967549009114191328201848944619890151554554443492906876126317757670038871652268550827905822018236653073350462246970534389702926034796925442675955369553082653123106625197493667922973975013767325245962587536176657494798502767349777482331181096835181498681468432981863533576462044816832581707535008745083070516359255276766559492228230195962275206058856174577169464308653032975362351493023840423191228176353141208361123732905111408510480566385514437232256983523159418286216280684613097569706799006434916345583584721638235107009781327159693863085791014390637649985990751970646410398791127272958970346795417409137558144312967952326746347695220293957020163047322168035503658321726491331207528928148307503880602294459133354913647719207864205889588273967030151983476770077190509883847229249731640387974674431682355933160679129598995011135583360336602074591132557917415360721235523107739550180996307969646021293274200551152263050017281349974952904948112358323375684234466574965485753590244854936899572352270815196832029219835212167353655387499626000019076701965213751115687236335260666059126285107402541588434157234348330517275263728448779477264943869828929892472788928702423029836656119944282041716445713393100662875082673001017225026439800398907293951903701658406837643587935154328346819500552796410125719306350162223755950850307502389440137235152500781022396887607951810983397956974976246689068219784936763145979329718906188736859785074254963753473895174583321693168379478037283799360413876751103751013598024921153777561411912286069143837002390206448463235076681003054566356078768515449603240558819762557802226208532903644800936362968704122835351560801171544546537923786838694853905408534402705252306205800768800711573318909412402571868688063273457522709955576118646426409862913727486986506033076471991479921401493651756578088314807815725168117977375861856761708513743136842166825261400717951984885856259488588645622260717817660525488861495309824199716797388390961520748946472013250757688229763966624733106697089846597619207955544796241092095980401486250054529607755348673625821338951723991676086906830455911134752282061872362236316913943763073629340683040265541135226658991576058908190736229944330887844595106879839810610607296586801863023615258315806347070701724453514598767448318229942834394152418158385453944835329462683743184487631416013859122957364593030948846571099675158350158208753747382688266094073124573287119500509304646955816755055709442477961237645318713375407620818597927065323568851495407158814779867050107344382814573175993900319691716079974068609545182486983146916662663037645475853466115933756502914772823534245073274300403909852439240988618314890677322741879737676237464512441812871514953313630303466326378640110793398703019535391261327865923058079707493879514393009583264723294264444692898813624980598595525186976964991414578379495319539981634903176983453209141634513995910055245836443513223177779291695459700152220112165798147467140754836452203165967819594379881996487007481845349544742579353455540467183100747839611482184005232455156551076101412907899480074025077723630487444188380883230315552591936383693348122856569281842718558060998593600635287767275698404902977484211628823065068599933449904503419981145671008035055591075047095933599091544800721537353487869192098407135295083108732361245446885024933242849140942028478786389353606956540409003106737425607554103791607890640460332673063284408571119621673825916576269619595122968778103460491253124438711645406323323266601565045314870888525473989957503627828324364375856653296950988656472998841842838394932189228398205462590955739702537338511881859445245518131977036104889003183660298856031972943550206186042643996799858180292912738114472166984610490196113055612266639504051690196454748716772853309572452187001726974172506459415266108208593591776566811990459766587573274383069888641020735911220253121585462996074935716068952698419786049936430617057734501738277926617277097381387319461388535705171255366760582150465262246494380591781067940255411854914685906418893150580618092020167859985950471321826399518738176195039585174160094529620330216219682395820303311810833313067552859080576211085018269930164362270637338428208729877987182675665685952548152602750628483417323888866607554084473411356829191062748052274082164403150216212694154959441167539071276374859965766359899561497741865347946695661300992220454088311402636007789252896831198790121076497957793932933243242218667876443925701319314393139667440138596301191211116783493547730458698821028392023156341687997741914400363116703299356567618707006536093541267658341489490433400310323677300618643270543624263899327297666011167422650710889962114546044172958226010702937592299654506298241225031587551863652732974388922119609773789736923830882509920103937582852717962785243359845986308995732781670660425554753690509776688199682254879638197123690693546561786399815009395914184877864070398667942210020275712111579481629248754005637471537819964083282427973896298338210131663466438565563389817358763528963093819917184942168095831590561060645775810698205510298668187798256854145073196370226801542587642250568802752858693041143632436382504026576052214478763477944431058864169482794442493020856317192423571264503085789536026652509614368040942758124080960044576209718213098358807594693863245120696937281701058763979547136289473851658517588820219724164249147461857562339001734214156615296350553328142026690567090440796866162758657332293082822545499020309556466099716422909083033070810601854522595011295763210279412842896645626653867783324524096963945020370294243898312679315804770829451082675092217025747212820212682810721826096032360375561790105523384511255846477392591923265407596602553588435982282381805538278139230266814161657542357814218788413243651207573135429757975225188987858562655796758696037822725576018575391346476732932560486733095367934790738579164565758659327212404412113919071202557328444080690253798111563387874600026607295455996328610343970420892701326298778576696102223236421676243538560913866361839065335866852035250288261962565328228094172574333437261341040644431005418185818208204351127610214741240252352002233302790036179705928082026341768410945927112919328834215262754815814836149173565749500076730521032606905826119587945886746866341254923956234330183467595601005955440000348787727972063708949554051895898330545027422247448280543945183143617429566196485309783704628185218166864939511250349066552872309299272121342005109985492775860739204159915697847819071581653571024126299400841248062969716739692406217998215780599431358045312400152134169887909051639800562475545473065678225212682926378123551052781132147167660632786532375816104576266045647723065235545342450951697790751608007140432502660570406150615322550091680731379429797944345632247630889969029919569916558874756376299957227177274609826485519206552731661985682621901985376680721939493391867836269785235975410871482162913272357494816578046046795584563157351079400525975459931318029182786045618520319683028222074860974028688404351137640705414045221537378634064498180442437663246582997724206765346705412447157587648514529496356513151449441563163017032406234045250581079495298302250752569314859036078820748396989768665331644353392683860434632636907869590721361767706225093712295065192763638365627070621336984780247183901990408590721933881423134803437844570480252397613801063620382965812419880332436599693575830397179969948419064582117048278357722522900770224525421514053265752351274502652451599682116269764035496341723031628484666383656766485522077672526887829952750851638203348502289149087796457492212857249571285103993546441423322156940109737381809217578980957504294585436209534177672503007560663340709456149255109342815207801095014340870647164014920481310480368903666670975370181639348139993337557540328034913744125007558903845270529548701019515945545791543504517392431555284518134124016743029762027949368624863427009578689456916500992288146321173936982334341406704607866070081046846620080592373312743944677451349077311150890400181588271777585994679175950943817124306198419369884841607008591091385372848527308233348795479610620348906534355494384679636230290916527395074031841397570965880090922849710227803372111579275523958522891184332055329004696861430562901140271849444687381408393927562176766080766109843392217894234891878518371055312933961486394134895039869419342085748632156172732905015567507802865555295027598179040312814188077246663794313332779604594884366611866943835878799718713828083821457414199938594274765643929604152919768460602060911220158190145967268599881684182347042198070290235966387085117853878358137754082033506677932908415374630666996184017499060235773436796175221429441472128493515796667114358588330633169616191939482433840090126896932630295840149577989270366479755689203266468333920894853724568525725615241528664984592346320516169906112695465974344260283940412221368167429930312515681271769769555987473502606872439445706330039537958425508224980812209668918662790767474552686617037840235479044955235988016575813499025740721866138503478065295283971725704512814060825201275224064895827861467800431879164634315861108594401685350073571800381288390532548505903586200009286443366893439966914153538573462191895380339799276253945929294231361161965671967688085147284674663784306780807622948212318095919227464290467273724277144828510540982981437935384337410553161264490174025221205775701736371056281325718765382490379625473342779592436764229688987060577490280343273855156884988182422055257843028894163685511327076871596460829402018062335027274756181110353286383361074783811281188878652238416343613471858376855098246580402559640056604838193244662030136073167707498769051615631906495158900558465454906890763840830372145376667853779400570601584999055078617353279698544059269879417425478791853758806887268471231473555747530502309486757013755117179817158860211709334201039143356889688062750932375897162314247952719552466937482300224331600743615818717348924329863538709682303691463109137334796550226423041635547852555027433969786599849690642495570843216998226284796678920939121609137365483512471710840260382853123114818977746317691529283294435974747882400933085708944956660548006309075383654738849776371046334125591651876825561022250061047551508067260333990535486509254721446955185183643589287604982588927051172265635530000078215723170951013450975211194153795221874742119478412841111937233650676189458758430279464465441026358131771680888851511929585072125328097525514328026452649522023152066787914955235909407925173412316941175495099956628898903167462770279215380808536549658491013879604941844852191952399126831911433956656711706990247410749527205063825989018898636100374848674748602423187983992472393625688294076193195916677546033284457753799688075484604612176477314618135301891527141018997171742321420908101204820141735371581123670292086115565121930475890103306236810589025645485595693001827707285507151560414656866088631742725735096756678321725429286927421839732460503390126389253294859588422086550421124608693694501100310891637353738029569429937788696286030128851671973600340592446168846628069199313688614265563254516050335638142037509058193011086397271234057961963081854043099080072905629211166756806593888626394142287459642921778099406819595761799465293748329113026615838077595990147975425213992635413196384459182950736351895795576656374685773879051807819531733711306370673856824392818109427349866671234285586797217299996058687443726409997060105021705969303968951383680280434060970153032367923196818727420021261528955740856247258125854650871190818136266977649009597488481932715318486359139126224967715639221492576202613323962166924538349377085684841271582747571783330871657678015287143062999031185353554923213298449317271535259639967565036585382841500842574863006203574680531452769938415752618323619451083354636155568680111795425519984409712619539465356332854794412102497451632122717735036108461682085327753752416668504513225973803755423511574162422036842531756541463229777443221010577563836633714547783368581217228716809034731832948449340356687816726491507367706274152709939092888135730588958377784979432858467924397077337576236395263225861576067950934380131828225412437267684042006582185087986008589319913137420780959903459364558206196827912401429701819661170577963809827827045520814846557862750451685015437872219192668530235073710254973636630932706491149538224616591774500937373267505330965128888732003120854920967686324871328270614281424845231571781472743272235388298037315321619590742717462787369836385452619641162923459518178880931328250075143888643873849670427386725892683081684774683037762557321314672891486292773405969248424882191275558489560791295316013742876732469690718987396465935050912829304419295572937348877745070989233459539457242112388170066149499181381096012159327492247775625007877736863342474007947667382560277212760331593173800004700300887405006034446986182764432028310403351303160261802893955527204076231468883889765686322213431609718594209212622366183766871267250033522531566195731559076869748957654742587587108501313275164826096749710721545160447783847345161105940913028152546105362684279811340170729693336382287820888020363712827208170776944938011224419226181933627033866138240386258008909563049746866830151312192831722789109531733467446819556539799477542708094884394699330969132126009648055212643112072834607489120883161567201187488146000661101049637010489505275558652526618947666005999486446059667323249603913388803723100223313565794723516651099724087290618286767282742090176485641183274519513258716588850252864388856465568591568184110689624768758826889762301921123010527813149579572840277613163655433627419561286649069647027472612454867209252117444354768487976309141881305006222151747012605367821306016811596947902063303849073694535085477485449436558083386967849898283998172249536274929084667108176409042854737349777594827420499220686571181625328600119781319697841867236626997610404975652496842370300419352598498761938561335035530931734219534921058962213397825981964488492168134602173775695692754668411073301929396218002549940937351588327793731527273061975269746366972021057805177333539195930814010054836374816927192942027175066210451206430062208885759141350646323968608590982424518582640862633361833265655845409659283639807923067413064529912806611780086016041850260200557083974702397093372227337412611330227340487143298250454482976379405701797229996163209435714612020374641259509494826823444051534419450131489224883343390428365946202094351696506842349540550485205225744534858260373852096909382096736882776799287552927950399810773972483893630851252099779130456136930954352797632100672059050116468287410821774714189340108167044117414745583812481332745753039438325889138657860583677282691161006618864942022810035881936483286063275082032447799215458809343145816714466226308928618446330166377411380693605409587152319553597513026387341022501094105999877688994845463382356251614977300600079049042747297598550586367761781337113518820524374041065713747732136194158775146141155199858147706534706947166340969977937669299884765603003295591772933371526255135365345155205162485658573246753216664891196683473871594024435347874489630144206882955832480910899151673875252298448286925714386077512231755201866419954235828329955974935800306263061854760799018465023804557627413301383637148951596711825930331096317818855637979518524830784882245645962427218969345222462086227468436909853988983564532444071929691741133895488961902776189549661666162848217700773992606893200096225829056204531967125630267138078945684778382717401171924707850312797086792812826293733696630536206510230173771454025522556404023991675837469718511618647290971678634848293395173737701543506877173924355325336912339564584394370183850042798956933192948548333510396047984632655044396852727262444655958753262741897503659579159199147573130067514883548357749357248630245933192966416596241435998955178417726023956127242731392066490966085572151120808356376232787190247001511039489766825794264974685417205708646494253493610728317885162761434460020308189957705851665397333085658327186048450109317192520620196871743918910583752183485891252824803608734301025728659042516512586979406052871481445124416710023253638937496093580790689640563091046131349424327812881251783068569889376305065361017283777872197254146520725037395761875260476551146691388741087516043897047473778327226962397319992350411887191074257672348865152035056475889533176364398289349400570168598528651334941433456530008062602390756743373521286973962356668259770701970660619898771483874285944854184463996526449352159908551525774146716196586688616903984730825907321167541036507356874712725172898811996659115963668661120907566793924816224203078814699264874103023404229247789938073512043259671744933518846605009525636976737156884421101341723377895312322608715968850732786132539094637802576883378503677605340285828476166066631895202453486797228773552083797330318269846544444093315123183266007689544228376226087102390086389428426735380949130213783278862043140506640374467274586940227697580011231017713749003801150840422346688049434254772288010595342637410561104729811843582415004856890279545077775677218538763303422913749104259254130439839184003996081392621342632417050618750271442690281484861147873044512683509430796167946102774284077275823236547989606143847447116968272708725934087089951772013631948946042998877629430312896531182053657218569913268891656604444339407018964829362663204110144930764444762524612918687312066178327017674604582113284986625002045048662267948653307685116910521099644587724059632475348872797888873979828420646535786450811502688951557485192610890143966331471915078041843587274965210423851483210431940552135081985931981283750615542322502041855814751911950145049359187366222513835055859565869348084716882692747650639259759242810385606780832962279459308974434826471090894079737673845789525929124458926761338736182347513372374400736992311553446834488889527695254588261612204948609227785168945955367371108978783669558807476963596764913030621087846847279195164376382512795019181332718093232183979119097995943018968994149390022093204285421772262037397207834194343163075770950676726777527531403079618456677413739293418609820693254640702710606001687400677159492045506022685505464876820432071667500038593968651567210955045115079675597398437184612995526351391006405964048829076337191634920416112126498294075678065417295693687275841469191975045300399177698185281609403125954265705038341949830098965420482777573384256265356554998576064247028346991907013049412687483358192277866093146395897360818047242952087722752342045168551804478991007392889128633465251681450335932397294212586623978978205080458642661978850475611546458976076189497891685905903381178031132463607257877122486704808720024203959959886388350845006986101188736361967646443004625808743631666747535430396565697512949737731718408352784949666315118427342729207860777862210192163505281621795351685408573112575275717411105448016534503945290748809916324095540389583218974991079495321993393971032107933712620184461809544772711325757970992888167184370870689504581953890343849319710277494061887462419927050290937148716697742622858064536798078210470220851162242866135623271754511597279006438945640678102157745481928715101212548149894433808824121174505648329720715961288402215800312174930855322620778362747146725538301767194862618422629910895513638037676090326772539064094752740240226866214254944879292771740911391748252578618815331034478797176032895066508992786122298928732693601767135614951260010923562756621047947442519161424768521593664756738441437670272444075866499277646672443664280697733465392958971366408300062361127215153623615741492486571312037147288647866956557035075224799194137147231251921615153225953727709972763818300802076541759039328949718846061390641036226006778743093619302364433889766071668309049992461645418819612156318290835849613680070285542250224962148028704202402497046095704180183295676788644705166040888073293834196267084645223898057659157767863866144615795555217467173719498383465578335241583668059950967426489895083526699612851100086277277486126779534670877552402153682453942878931534572419699654737327843667428002597096544238107978730397053432625073452770696307541786318794940768956971808892094635715690247095658804689197596562428441759207425725177188121261875830865165412083692435894767485382301202635269434901374931234470904450880885478053429976356432057767715688893540704602529020111568031376825464981636778770009338375993509649342688870738336130004092012189850837405497898747057731219392399824949009608941007950798602527632250664668356322014764692851033065718605085178763574067684233734524379302837951621775729694599905489533134418312295130889622342438909768912999507060249428658139676637851728406071535128737373102964325246263712081553930596228895144653348856405201441430909828063231156631603012733895176700058137419943007025315103495307177422400223637380038479873832594422514868467066271745884073410085257341742813383225831649872434797174602114311768163550670567935511997773022861904656100716176089757381693435374105712159092951326442375638916559730609893057180508114072782048165948768264668564898752421227731554803713837654647422009589954592633492527151443103448759902243769047710442066038458694528312285969663818870940272366029097876031243574287511773403364588347393610666391183562835545247141801297351518858143821440658917892959615739348875578100193023629566864152643596813037760151059778639157568295327515642220372858054301991110395192009374923177426186810067272697853240064846788331657239087761075755533047322630775332542782407965197624317154132363810437318489673014258472453068038485146756746922377142738073721422224326796246330710255217227246277270197524559375096595143044587796281973443299084509040739195940480838349896296880075987512479886361834766243524079057940803016524367146566731222538028672517710673157312883686622575819227108555971462959276391672699440303825572296678667825388758004157585652528572141505739682341906054460569593416285779511616827720169764266232998318178683654037379248479077087986503759638790754154839384279243346878957554995346903024653418673094368739294183585142046684978579557993217715563263798629447978848232276077903409801234536085404156388935428659746477103282695343293617108221126301855927929267227200164326831138090092824832558864325776645285152922140303058063292630791703681266206170636861628362315086682415916823039214426655065022237002984317935945680805093357679548578559378152219756311699367278990321031586704227494241704466288261414366824711599071857732170005531970359856346643513280366711175565162815300838677236244351313241970791952225860777664205171477290454196472331355451850841202737587385470903178893198185745354095778233625842968775332355969022123493571952618343208670144347841141618187167143390118114954664554490085097363310540883783836956395945459580995570437184680340972203733252159019773434909193625764386989760960394770392218572219061756231069857610231867452440958097670073967692868351827080017727133803963664265559757221606148523475983018461755226281317103398061258790650932600199437168363781761463157269571973359011038292019099561359057227626167262969747135279212744365640615860399506956764632842251352259735171638495551618757949087678314432556709807006436785845523696856212160853773970682604535197713965166033929773496272962876653624924674623897239385000011346961168804027396856870675287573021561886636582262054952083787826593845632347163707189660030279781265204840789448162263816793878803404245511311221851259745050571880537802832074982992150964257479113296800226486848573295339868941124332993532367468822007297619864926149837868451550500918073254917204643258185640156492863504799563534227688933513074997005078742757414248001881366011803329914433991034096242734989298879377597647955737196918697468328420988643413290656928236914285021015970376124289093302914565457204508736773650986074714274429727459217427087952195923796387934685456513339481803111299738104201008043954708537184265845050349579063115318692294346397315612105484815494282795517833889057786913879619883710554664916180432985724102527704721242437157333456938526065053771808482013518619863414232742545054531172807147444316360675016541219484051207342972301218776893075567291861626570757907358862418514626328493751224987799303182767265441739658613134934514497785422192086172487924803434518063811588569458373449666863856107941854649590100774683322202747804607469461291888783022285269332925412227197349622870192643120856219153629462484644618714789400302545320045689629788986331984358854565208321139380159147417480288995805460738089098102185543972263906522257343982106373149504629924186821643893936313406686843795004413237142093451538120826064556625852718219493210862744607051764668630271420309661108238438943829969336032932983478849977614575720809733327179954341918771587122750060842707469386788780251551003137986559841368221240617470364277905351723128951376215806372674606021076588497528986960038463913127020928667347637912812103286696214162126093405660681332663719407099700182216536628728728189353052058797714599234067787304369173407892653549785864291439383546157441989942849349492109064288616207854377513621359183200765580112860779048351414937113350494623543816054916241705705324404215121284042507916417953661160353601591686206924808621090602399312281768540014740079218280894504954511381469609534252913509241181049073611400379860624741001972252862563804328377372103813693557798714158922766809244499485831663714028373094862973636681862083153661998664503848952580876065763752594304941625362644449713808858198381965313529927056799154008643656183846468808444059491571517633113359621479814641435623393798517296268132785419448697888830859266196091237722215706180042518422974745144011145068354640490833932720393874966497968487528865688101726219323622723014715134879721734141207802035034857016345100405064803654324332206086293251835754575080692663542638926357689900248040684800763582722608756067027180909585378378022428327067124796289388670725529971446118299404986290628540529974052568923276987097813762695863883413244232442804952024887104704686139018447934669958129108558596784818732234864624510379008591346274161414088465516435836699639477569668535981045377449983749610878002675832425733576836067163045269202621339759021579962442867079903488435373172213521160678202264369025419691277678977158407632594326118356612089563500916170148258549092400580393235224252865056489601676527273954284687704228498123740995625649740269570983984063401615685894805856297980130240003339234604859417706088553833984176040025281292668277088768036204310044100250684182408837669059798151897407942047547431063591657568008019253600724236844303489904497112448781352875373350623465588308026120700961732736128860298401396018436506079203203022432352688333450124404327652638785252291329989973430683880147941545393029935308346020419766430189129780853446221436017116389856347538565081889412695641966018620216330358709296064997557444770804097550225316502664142395566799356074180836101577873027674627935924677255389337111673838606545186202020695971642708463764839280009785103858190288044690601609663087216217737827689443029948062629504996865096176007513524153711305098875606516294190553613804679156687180235604847634665802450013498446677054540052892257858933390115004979572841065091950493799072431125001568604179328090068345288436219808389965546571999147065317105211413662043224705268469509056435820107384999358397262271781061508245466326468761709997277218639652723399679869184751598296293554002675460858282277782965111740223669377425824331055844671038178480073822870840518776346046722051767760331355863411732167453088692963425513509779898696608120271378275559774813762646904052104025745171699492119546240890093022072654848999978605768255376544816905135926847352839836379485268092108996972360701190161893943139107448600294596929425722550656596938822314454639549201837734079680814361055168034187054183527481809446902323664718426815797247769943696105059960950549616155008087193293885026939667013317271599742529254958007284237513641865917094332925653602755864076917174963230148112633878238183908813771931938651465035903801178549086428652677455947047790623855908990928699507187511893032215669323945288220931573254854570037083582861031679618440485018598408675107054543704593703317339821820347749200789132523371604683754970553986899975966206586820858831357994186756462646966429406039155203618147652978742772874297556299112522596119672201225930714330800932940724596003975906991488630969755635304869062644365317814183679042395046966072886019219336906192072345525794538820940456335042172501911140874668546261658243519520248512173299404768793999315963591070946786217012036622563486584443728588089685394378215980466479808612937963126141759863906067394506033337266147735226845268271056908937309789153433651096436207063750771549126741055390091860319664939353068791441927865331468490658245546059374046128338856916774417584546137377121191651965257391058992642150827594401583305847574860233858467205722399343231498879739144435421715506209754636377316259833785748439251055899855599492975343436815358976385526516826118613096395552666435194214878840505147389592567914623097451604498283708418476328275337548289929549583013371253067344697536123020636606800216294153975964256235897437977846886819467137666377349043837162383171841179359774730548027993182910304422618512663023721721918464442560075783121099159437566317561015798690450315560966031410760833783001459534355342531360221968844175048945903366757316381860563763951908754818960056123407959050613812063606838269723810871675917553429887774611583294633489959801386537635126927124965018260779610327883757364152761434797756061497856084548056686274197116464560426507020685347103446347536238210066631496930067900604700901548332886005535171520136192800459803425583644869907394825555863669126807082098649428619553150231498798580075573503572664674132927001561828371559709172826429768516241964219415716356814597260888559689113627211589325549060561855798368988246648077501130352015578427755041974253267191210542126947450487059010037282395840352531584190151182632734947473177723796162320227727088457809691739575015190785094122047425369720110280641664606314110639087857014306878216337979470963870413673137282155568523416439863037755210069609631478711421445125751385500370957628127329007336452744618221464628685605372611612601356234366449194402693303778654154128741554411132439654630250155375630488450751158143644667234432716210268062664408392547681822466217530371235983619089442363791771466103352572107456036382137286687749958431802879635806982689888632524923016038519453643913471205454973797641909578041344768026263341638121054938910563490927245115766297513271855008994513788492104098635017031420600151524074805427570094274976248484734455512662744361831826464721944279436240510039219555331796156236268413299684152123371524597904847064352429164144145759743201131961623177345762200051246028018462854401961250893082013245280331326640011460546288773360547289764066933297720019774744554752696323530507456790699649846941591300506844977359265423086448017618791192770927138323208951356450494588166822493000612456822112087459142263847539141139284415027258532885019492941981613026102578433743184979133016525351508811432087525513966227019593847362236572887602326265086629464174937583132977887849674835132814430313438128245552885239917036434338762524985045986114569718560801782686292891369134759510452127382496953729313509815325925916073936771514305006448023645696765779810113890474381365932652172025239195225926978766744657599164158581979849736417057421375924783293825035557352471810951897655511494614728070542999489754350302959861397493196649664579931375808921892496617645200494881398378000563753900684745913859116466148447267181267799184905506250260172460595435212060025999454247820327594161035316169717300132933642936296812275813614730101729131673416467679769566848233794406775324932229437814614282090356064926939150185575640269281319172636621778584311761345602740393053614488067310638514637297277709606038965262839848958264293530787731353438265127547081691835086525077625432113224140071403454682632779320442646219514302946333427333966227483790318376705847851977028178851143309308919340685173012370345334878434043878918770122961318573766801161419056387678652547570147894934982253380839608785900652655893649180694414132177793555349331909686524304974254158312347134178394420179057802959395802122960780937180846128392861015835279752492240499000801523534284747692092597069647323734601529739744376365269934355813423556766696409340642740423348996486256780653893504465143382782840100891886034755581652692484703346571792005723853926607429469921381006385109172949353383339469639235482592332921731885366685765375039476967890788945830591816897119248093313239232793032814021021288173843280393935975639966005120140021358715212128667955970103796999705505819952883404884184768483034602626035018053728164351653080471249317833332872470344415779941857991217132690960909474990062003712887251005770717827403903005612311810644520081743453939392933937052306682113680654533858507327416159651887641048084126137968644573146512374261217102179986013001052456967819881262588556543723629215749213004541712713286684476420030002885646804015019156215297610101650249151604967422335166335147425736326001264480878907593285840752358454404286191451928820026919621186395585990351698770326896374194676232482394901674050840959626469961558749730755579126623591780553066878303226622165562677697444304790431847693697069748680178127202289386121274597846143091058776557922671262002504488897680706815931245220180982178966825773703732289181673919717482267163892565407893540835554956644747737382356023023102134159229163898020420448298774616100986562197885925332433455977155780156890375425035296125744554678609645568388858656464378723005326677530243904099392073307444005314896980863302383241169340788276947299977334183579004575438176591632979966518875444353027532901270379245069899099423673323799629371708766466718677989552106121782990981058539272851612663620920826509748999802302456411072350394526718480577126754404782991318111064230823189321250065071112724057832155776358717570826860623516725202269103307572915682229946926744514037232136747437188425453925885082207246485344624788536473274583976437028290734970523690454613220121171067148510648970844324411924399197469536917816715643627948149327412030430149784567721645472013392213552170823303263267477326020131751660832678193793414583303339259078173358412973514060406250938313063935255079033127087857616339342612316508203739964228690208626138904937208982901244233194026098282386805742654998383988456999430154840085393236652402861691030209155033675298102987376413862976782380911259397097061959735268911962576526415175936839340400243561210011640135958875534847090643630189730414746108764512681706375855315866110471827895804830133222946932257514864468483500598167646071421249528918403084342612693018083229590826004138865025947359523176338633957192246485317573450728398478345293592394661990922357074900144866876813780313790755283971983011084512803702753811058342713330108891677377278431962910643273602380822325069824751047868523819577737098508329489627162498509291378843349665484665004553345345972273609330843529762654997588017551497950759124409571023440082186432000958480458894097575472106797480866460051079701492497580140003378168957926564938066813969619114940483558521414237780396293858247949997385231581711583146434751346308583118612860996485699237195543933838307466217666844016522456432049847527478191946820933689862280732131232019308512098939935700781499884513166026299253070679214380104656120109196726795268443331539473980253458684883466731800901055732731551308864225154424543053633375417947348199107749508806076496923772315280721567430105487297810049515495102290064919704243969684445889777863422023657638203472640764407125654454449280452983784692231888970322821135507520257871799924063054290401563628396675011546909832347336643245574816543795997289024189016543263066224468559975117279325756555401110609455640607632612862424866913249321589860517608402382402562457320938253736879436953598965850520457069042287804835681537415381073510884527114704392446472289803366079780432224369616416457686333477464854251342354358231142401799648764109897422853995303232092771900225843233603446495464564523451078563208410533758084441674711423140104954895022636567128052378446225308807609653029789935293787819355709349607058370939142646362633899879547594744257767101454222815107409923077660894919451664951840501345745333711553721750618772543103259313892129788680898203666719970649676707861525886018811619355553444208597690257709010495575213263268320036278991275147142096867701476095800628406453959605380735084675809213211699211608220142272927945476523237364155592796723802944785067436188127875448067144395173353252595030305855816092662608375688496965778431421111711035752163583342772905839218720141594087675470249930621608124248916645746899924129918608799052811231535822821739929094383656585363892091411169634432003635098330988625462440653602589771110694002400836116021090437809634929521099232188617438325568651372952491622115578762218833011377252249067268738677738876470264666500243175193600780212571459067645014051563276333657706356617899879954688005643302925799320959792629454353818377059358595802533166039790508901487126842560889027778102817990869275744950998828223520142087556478042311468884918334270026331299633958792547863356213121341153695463465699102933422383373651229424462654461122418742916802343708306034985999456002383607541575404191155508942872477529124855962298101370513540904471889013041382089444485499351650519452300375644955267755494865051492297603496722548403204967142315384980929477706296040721810197177652901734663553180328147748551591775704238249093409366890290338291201942279589459317929916609427411074734085029365859642109324548828914302511288050255645469575518295052626173901093287271775798816047359122626912847235799546598176707685298164376083854104309732729314966161368756592154092663294111405932964316580626454707613722321248852044676294739970508169214343627889774441858484800491099834019534315734967491951115926246114005693195066810556207007125309647390164653623968032188717000526154726028520540085270685233918995078020581400344917455005964261178191158561582325842961507955769302497550722895099273535642116632029203116529604921516536555383622477888571884757530413579691037713040528114603554158462425002471659859628216759851024522597592610580660394528078733100891048399735047971808991309107058808199692874664685238299616755319961963034479704284326053081146965528409710286059356519871105416818991362313836659639492550707845258670107258921750869459647332162096616780629168123290417978578818924195180753315538969615935453660098182377428580635602675273101522869669627417353861789518301234459256973160629056039487804919337929237585449390763669031671106690457187998011629634764819346416620859385285007196225704614623108494511414651536070023343127933014305818135069117426631472416044363695234385365117013499160322336902079043228115164110972392810961461332943952223318969330258968279224137708942778994009167024950657343884698374112340068785854664139576047395078670534635639484918868682254027304456712750035775077021021531631510658434755765724363992123830911011499633079215536015282483815383602575373202223845957666699826901373086045237265826789997253617392086222651076058876714747220110487960977037707177345271720541410840757164640372701112935064368597458124715402622778390998726680043902979942094137638335194811110575569498998911844044451351843882301702555920531451802330451529386001253170707532609456632905734433787453793835514799319884610961225969845444259670100661585638055167151526066081419214044842453384404060733693413501977148379243769889159985939619473842772150899900103455618718803387249009369433124406233665602687364571046073158659812112267243270076150369519226143724331352475532889481197116175834726136544962511299037673527578726025285973022669908500588780853466801740270923819232339669060141993555610153026658392038109196828675711436983607696827305967080616642089971007684414543270581524008121900163824800982259481760424877780934682168788888875200981375962014218161257385510070278522292692564673103213647074356116262503942255786305931695367586022624828112459726386807699521904227388484004614367483943347716308481341558530622300286690205842885097887820957306075007064957267656043765688031315075917621471602982260419948941614444315306793779594329402662591957315125861761837444241866496434806198955062033036772708897500017152813263842003776872725703994934532822491871353953454016556913466966587055352914705086398096946964957811818682258952782988924772314429974716692822736985842288178943987305827422997620766777001922974111601293499266360654061232712482695732498414638859928505234558690659491106877608415448303651641816136387745853949999406166624800756628383996849773905537754923676555587943586250887113560918443232181577416345218597594990174439370524349852493369736969157914284706207530951866889142443214988031760179688994570271244083639478963463716471197839553462518074525408480177760516160064147621321843491383774308406765584969384227460354716727326638066879462907050988944878296432398801558819827456095896536065353930200833107066449303421069450213283538308869582597696561531783218883975934063307095207824034156133132229697956332493405236944790341529788612001666636748135581560057806534640019061794522307731922172083099357312611691099335326260964874590325168891000567018935888484597812914994471998718851908409035501804946990947401952675391227101000699660462103594719447836464572186231955524969352291876183744485526767534672586709259704711465862404547249390998381701465584634598250668736834516284919169821444454808776662216135162223153176191154709241446259887220651891498801899979077312217572583333541338118331717274973167642331268505694622182728439271989209739671657507695626405642630916140027455513864331532914233715955550624552244182614177639883891453267510534514656962050279790259950642971585513068906330655954493455564187414896713623984385024344776920694746389785004119832908710368588062151286183565328968230374872782956959693358989139028655600177194771911455640006636246226159540493601188595911621664272540688169614738612860343928943363806890870249409424900543313147251584969262949711006552762619417718848551867845356121770242065816119681170498455803399067405022621683180514857445211850906313335216413796080540810816581951530808565014024880072152276105558767601595057475262355385047072486552649427653108537062137995607766723360939110580769753111565203729225989464350473727267038536574296595478076700637866876049430467282361602286419400259477115677641405527555550828380996890692199964199321441037342174044131018710795874674440387230155042008497939026793530639117231714480664944010097997026184466509311318145027788092688577715184710266784661368488694549631453266822281550384257654687179779844576411701435928725311296632845756226532789866171436817875488588117995928646887818980470007929546690648565624395615690728073206606401527187034692992106991574264114001605289284446876445027853777032214329293362076792135538412414739109317346265495219733801975251508103264351878351296839353289873429532093698767401717336598738953624320211838904578147685340379792743957427823511368697980628913542412857605064296761781133546640326279394659861810563817469507519347155091244767576063037480528632672885148366151085846914877461255161129319653847855929994246786568020992143696258796533578290264292490902594316179680460877582305090650848570894567972807578508554653849612990306335244040027571032732136061621918504907279354773598121593914986263147560602167219618163977240581982490048516263429103267996413156753936036708817549735010001508696804388291053188199893482644443904656846260539046407732173373443878351440885246806113939146555542259374386074305934420673431203638765513225271413486857879312559679983107925243356944434742821558387578957274986560256644959279793306505377480464923866183470670150598225781842438784343269281865545120318936904193137515028897843352972454334412358885273996367169256226636070521939062074456750118344271601305135198324843600538629911864478466393225994849228986043931952163346270495764994438924703858887839411906064653024377156210308123549628113334898342442768817859886316873957173696078406988619826744570999760450842096334221825247487611220727269915142949305933045248961253023405555767951872103418800927264610250227359403798956188871303397369486848064731251039321273240895473349133801000966610041958477390023367030024778020008717777637335129742407060378835429657071058001749216334324881468872333242570910063518287443665965377624952396650915039538134131290676821389794850111765604341912553017003002674566675610364986824699724155344537665997811901333656957462878539175074593068140128251695931162342753856427933960962457452817394466054121835294117026783354392148633029376221776426510108168640561408493474294613378539214334595265131273541610154262350742371054375407062720015297083389955710263553498386120220573192064705291306019124362769699991391221085130511959865360889177770483189541774806829852386950074501301503496483098545115648200022429476506332330997517134748479424267515395342968580516504645346460657370872580837456623467723479512289169030694716614265456687819566211634890639106819451138353852416853087288336225593620791649055166041973051386290788399826884739725083578846573184392616579695428230457771132665303631046650897270293745830480836638630044832222577213242116113315878168798713935736254195666122080091387493684063778303732573507579277826392506698475901743132774500240332937957716751222109996168466353136598204667533099171412986521527802735492798010087143417465287650230639113511963397685343603656058520553163086080632922643344063672641763731141333513553978115293674401491867974476013562172706784971578852895298182169413141310857652105820375774191178986082379259414696499737537784773787353898942611664264959434015760686523165010096903172834711177635896379108023951132870547502038818986252985505681612867445691377637011038757510909697123433866720974908459024698125461091922073205593348363236318922811534861243781811800329407478163055247049388157189263317581554347360323833458029548602737309210021020733956134847456533001270166290295922943665814870336525601938736425959017932083985515987605228956551742413890375195432532949003895188992026174727697804039133062802669025246188075158694792129751657079089988662480268426934952185271941792603675983574197608561452164230772068108104252160194111474414428472429356450186349013707854549297173390253740252775482490769583232743625230061736226944923173584552101284449054638958460084278068448931852736477462188398318624636902241984548101563377090785222363178263221542628831420922817575159364629128730028878978782422126189615536605851573236432285699353401404055449334630135135275880577978988269426481379797187541278284177612075840763533673897209211865949860625067358485864691520983850881613741769793905355740599740619161124989312469324277206219263174115656205463374128300357276815674944613136021478979304808297228482287987442772288733463704508970448317093878290669889386333257390612788576451462051707148817816136278358813123381759665726372456983889128218205412109565065511653906040389965670030665399354567642682448179960980338567498652454352936161198365689714639539307825735406697132866032261442122714168267267945309602064658929046011662970209306496872876836267276875777890948541097204092223015339165464465311389904344693785632738004879553194518133344486428483722271023351627018958260031566562386149346144625075858765745260536867570713545019526368394281036341776551381783212234183111775125346253564322675168845211874769408811265182890756320470180398398416761892428416082547762724219825271558113421516783213542971811823847255046253573443002334364016392429575052510333931008620969648252267412744225145264224237501990422349703049279261047833221784688988827123936892282521163836883428652499339065896042839686004107561038842586546833197368131327789653182037330682232824977103461564584544195025483085828831083743418963589186957187750575961053392837436482990556868815583478642342687352792694204406128806476823454998645645003119217381391139796663136492503724821145760511536200574552110339807121407915801277109269227930267043934450018917199113078204474738145449151291183184645972071857594556816663853253624423324280594146417246099563404956803657526342857587547611426084447411183935704990346291972132223189617779081818687501995320961679328412580909251177255798950369206206177096739684222045747305920622988109406786017860222742962917830004626765894952499552584401022476594557331871136571730880184773589194327658764069916184758844652130109779081507899588475287559673851525143788826733254794776229387957960302438964367734161173971491237490061643114727148426799239604247028839427781993428072124466820532162381344911217546874018089412473912633035242510372107589533221821362932129313923815963303586304540615968705698319591180922501614549656645901861070840800982306384745462987721915420993380172875239322422863046259952171040148795552550684190553368918223660671796019203176516153210962722278515678826238560024350235169591085081740187358563298660376192213646988557797138084734024016354635228746715618217687540853950134225164914956275803112913146666965293126417477480124179331875911284490665615619212378683833016476495759560659862589771067320725859702603060641009127336469070386409748030248002050818336186212448373978136328368395176709067681759394280737421052163092969409088151821208707501179585174488048364154778446607499632017555765312336422534018486245633707141681258566294467364837886631130874252812483765946563582464793403203531709984209514224549486873844886092000357097964824975083093074147840528688720494478325865294929592288917902256560053941849931567443569604145642237992261479198862905990508908523847929226268245284269288612165489854765795978753703925490751862534834944706272756630237992405332389193268606123069436057031965799744698948084769999347415499056407188991573603094399825371946820608163667289106747660006640021553147194419602628671116004475005045197839351419767799280457595937248786439244566220805464155112235123792583130261183367910962712667579542032379722453040940323651252827636015040656162959141137770371285697107021738339848100410149147414817765636225320540140822325701114626752521250667759864808011916888208935599401662493237468630650354610235234050944781692523379411191860981672393132023170150756489286192413734133658832655961867248827855031495828391790302707656097088002077070197058344020656863255760174367051351861266844306964814945090049384258913524328553877464763685444251123028195885252088891094131221382410677748780633561632748591092547766223692731898507970901141454017597291892182526267164895551676170313315534363430761270106354340153390040371126485864309931729737291732585733803158732562141500247176329807491986659492236807939397881417960437192313855044297696153754551210701726987587295689855046058647954194341406591464299492590646300210678240166261145193381183938065705211243588417005653280783712690746073789523868299171886455329435653386097555929308973958559644523866583754554805865407484258957210239374503841902061442489427165831750164776098582463538276349090869851234756148830892167285341601109853296148239679264128434764957337630988708848727807438001486261475162004133474242837812358604652318945872693028928025827057179676920717550921669244386741940907170198243228691690777176955943484644975636685266595464915800424901407992228410799356531165156818956526000343221079817190945611060852737907472355232554810376623853099976149370369388969047635667786087343818003173659787832358715087787040432647428314670430992166272580752380585759231888737455303904017692846158736999337958922082334518456683825860070035004188734488877850472657328839678339832832878550280623842335163879479023570686593265881566369530974088188021879736035021712456720819167610121314059870679691500869040267829251823763572011120676853643256648320589217065995687184250616130481600525644129497196900682927033736876362815504251878413528540539746237571430542332221589980971069817726837316938545382071186451583162309769467524756152679053171220838873765369895737107404798703946022742622853440545980476650709682635245033647524949325256699843339748737195497894178152785487390441032043999146462395646903082012533916310610463596630497303273984370871373632732066194432600045074711632259643201824672790603094205257067538695434182905602931383824237568291476204036832312664144298482959776146793679629688150353337428092000903667127657383454569479156635237865423243274213612305134686551262731624286414329692952902732700207407255332450735840629113449913452874113315034288457449643254943502580684764347802629685625213371879920526069646116150071417682986515043483989866118881369904656064158987700182682419945845899551955517766236483600700424456720851642660195192252835101838897219019744449120575791953289541723250564030060541234002697237398420072940687523889741036809710698968988686924004607561782741016748021911323006772100132400671442489297427788979800567178964009802614787015329636997977026636061724817446341724429308923659272181767915957961676345995120834259592995551275869182123088872109394144325023034503759353230428819284338614681814298713141964590955138128232590131806994925408239818998200638372499543870188966493960824125654196481058992904175475552343397845460859959321514335977511470740408974998167826407202394940845340252153968314629234105754763867763098237545275128390015735226152744684330437761117818863703742644672670188274103017773273106699647410809003884162744898868637600564673076245125564702201018120808867943849858330172478531503388004460600290044068323682957778607567496427204574987529823813856171333424629111514673972339199399440126361362986937168085034947685100370077570228833789201897008324567767629316403766994939914575963534652055465761046475919169961742465858224573992712925508460387507900671310467796909374965219698116868543089841171489525274805669682054444340094331471373406606941260152381196137882145230181152527007535296066085434830176183708511693593316131883861275191880450035121466628739748370577985190424185671810335295111041093266570785649466121765236062693772372890084442375208422322730228767696764846508475974937995900125579811052086473904018915388227045151401446301864957492438112744779292986495990477677412821744657510560882829047336700311871196504626704752650626714158387418437799822906765371816894552801961684020886271955961791897354633520847645514632334206052567316643871880885297934733174278667928180023985061332447406680970445764167647399595474411604946390955483932168689428249239174811081111689980711993957181040593376219249687436068766231669985084504221319604042857886457875149223602499287645994394401396787718231349042959143757043625979676097121647458650561587056075648685364708537081762622659203643517226232988368316536513135969400104645071606145935395167886694856006182103625194606659718528079597570542042721587146000098852990480697309061327000997956483987123412468049749417973328927776128561552325861426180382180870254570340619414483748321411557530344837599562616592490492277261104150251177791356433797589286956250780443666045331399734296870127414980678976925889725015329017596639749163538402239805535702726115085358017286352537882011091784586814517933368366460021206792995879009686266560485322324471692719503274502569172227697461065113469009132298378232653776014851575474691609745552712679860098638993271210309631795449748475677870631222713387670825488323513128688600161034807050337630992256102455512261568728458735936716281655897579862441628132596167239872265905794187006523657238789012994797384706963095590285429269563945509875354512987419697214068564007806950082328505950866727282184885854399646147545488820914793990627191511476172757171999409008739899822172494698554207836930933798898109422930973055904829782737443973842113664170289043345771217106093210134684433029219316081018627014373436707251760886236658162294082459088326569585033833108449833726952582515132069766734756982479299136597356928901769033723316281996738249797289625767580354978832684097774622577165734725279872185398814392481638169064689792251248544651171993320525095722946472676251308639021071172688396362271995065230582872569111140572402075779056218502746242100763307091683008959046228820432259482579990450975847713774214358011007987532884035314451029224194873827188863929534951683542605080465660553118391543366266504723417623222793152047735042165291022036938846410450084665343768233196078345877055875086486901913487732305135574815499266808525781251730115970716994100339714033712914110520443260742079726166382097513267948157008175628968023485322991100544442904089549081857016131359878975351388944578332160388332681976508333147446691263128286204260467704267207183824882796246656118066879788176419493612310797928326215450063990403715898262071428361231372620034534909092913648772194049529571706592365474265659729536257897764398132121750113279758209446759038098430601798240995707633974994932751310441393488433872681475396076997472268965026733104442118074779574173844098664602141386379036458539420974052313093007090195291668717544573450673508242494076254402794009014368932364264615817210266705968958695086762663230987975532175601762255693347728749010999990130083423111204260315379110033041380027494487610749892837461392795891876091114415795894646088484070666008749200191106017196794190575078495378168966983707838333098751438046417840636397205612540711300433159812945049454747647691265194097557474776704046231876556667694775221690714427323004159767278785240022995169759882436304909564065054994948008666525273333108765358258505899516699039375049170109800193024997083093991365880702800584498617510799515468665988318772798476818545403837140902371856833893217052199990441709573230653587973596523818142341546809906712901389505198553090453414477312696540745802200287450459848463736458636927270580709849768333259097911100124630952222842129959500421249683621515429762900600083613500911793214949716269767132685708196163861442306524418434323811134721185925676934528548709216637574878562265586562783524065300977632540529120291231353720585400383441057742331268757511654200556087232488028261512672906656984781911971873769747344575022536701623503790434487267920946925869252631939055963465935487876025059728178427089025577258659639615658891075265821397615731903076160814871319577088285432662160508041254046819475860723732060532358977484314705291244169529347102361317538447012370928446919724632006982084511228457661317020587264590563823909838171525991263646233331447097017868262126553030468010313338081977799875414700084764590802358696627890642671400285356503208472649091382435421375296489997656650483879781662068033472101622082557637545393521209865440448202256614198699482899817484177167784514782879673877158207883723252228704848725054262388783004377661024726184237229972716140517153507382312276619366496323958702431441526489181372529347721512202639726658684516305499290747176704068290301419347263338861120561707963423878455968043479990393750264079934088367110671368281122364447149688878101334044425906341186729458705483622222665784860188743746962967747250897301678763289644572678565234078323647718682433600897458999080979655333367452578838318305226137714583224337567192026528350863577576014113072059848864157771428671926910646381285190278952235737860865252786317644221096077731000997145177001414358263029333774409914738942101607974032811570271892650970197523083698186946496412593029277832302521791310260828633807607571090449131780579236111069059538301448499154864277600322847237385180751104427636890949206869605913041936588154144896601131672460630376450602042707790823105706242759699698718249469414660722900764888550235846852932809536417922552273210466100176820017955405091070437568914570785956835033911394700419294356729733725295185541214498317091115006919986382213849940320117198802144947286821448340467665147059690044633587499554922214274981019866319789543254709542733801257004340706926372722117591528343583797149179588848277741694035967477421303625323103954443387001048943606182866526409890316667656325354611042615581695219093393336929924338593084868740069050700767393051697027203571839854355906866620693309203552044791806160347707067061826855102293854348736955834151627907111262087101189714392832906038478485425936630322332404085484742020244843000773771000244561259808291828099933944509207454004858349288725347562997765395300060025821299919039157132981535113839733624503388933967731260474601334900606073841490019054178343572134623588198995484707189760963048219640770802430770871307994960434857893186716297384857521853788913733369107163909370961885876353599148274419998033690768381573192826995183422942145046822399690690788106604097168418378794733518245343319581132245350695004203175092775253364670988661440459346483619414598021916380706053804659044570628981193636979536685964841303366581592925970235093449688046947903075713423949626580027922549953760077864376197755860143895077316869210812671622032167261491729088873876869537080278778715082351206488864931622598944221125610695361755252730793191141322385276484465499402892467268794173020711944517232055103638696529439057795845407285360174118543129484198659337342635024773023954471509760724086589317254100679156379230729387827705809655810825835401065287158817318957921159449904174364352229611898203867710472254097866780626065992864361451564984181781077535423891926295110482805328008081003739051747591475628949535245607055416440177891352291893695176150173804882475751998252538255636740451266206879504824549748752813546917245638779800602537455488727616990316483962719108196674190982324108427720204657269444314084743983630066016480744359625863967394740522030389683759262266378562190768572939464261140914576002724767292863029550783747252286223270906826206066371272625690786937350683317749615872467205681357730810887629996162425381563975671100028062833847196254426474925470204761861385450357510159185350874117019657785500114377418124700090373522296093729392056068748021027140731771443166586273963054405181709756353990114391805084023497173127900366101183780896052401107736787284594895640663681937713612821864977706849636526963737204223974629579022420098078046374215956832570422098061843704145381233422961809593726526323262901447458687124223703587303319225080817435536933127802541853044432044591600562362375181359189565396958569281270757470082143249912154480445743362653194109265238855763808580353849358760739585581312610550052268831442480516739184615401573505908417085509861304261067694440115181666588349366322650888572625560720852229208105991712334118897869969160704175479641021427454103565577677223714234864576117455965819299221994378086535345617871603898396068233314474328334077306998131946844188795665110067392296965591189378184312315970861596444597561763927697819429925299481706857049487235307638790337784818282032565311900693504532775072254381907152788470006297918310399608634459647740262390166094128190292927532601201787061088674823596652578905171205512120891590942780695464437875155430894837032214275310505794384444645205200245535679308803499439180280969813718673921042264833131294634577967563064774233171977405808014847138008972998376518736108333528160333842263693253340418867149258090089123201850586221292972764210768094848723547427889005745881955826354204114827332096651764504088918767324352682041961408168052244861367020956016373562823258272166474569665087941921642145109046932359245555932052814100559565086648124681178070193126243494959501499450288051299676561932408138044512161626000884161248113203940166536765939976813777864565316498948001809557230460141477713579704938395902130294625940881023876622974298153172800492349313011097775602922993554900128435655792491123628071217395851326926639104240087253074111209176877608912031433108844529504105282588898298472306985435977315652036091079438865649660594326884200091679099702961752115172753144559953927059925180410761983672037732737629047839969518183617131735228503934470489488821692840071187527290083837373629517993148975044054574083558417862353231358953184022602164403813591296642100082285805141877822945069795746744012826994700087025425377019809618555963703769573227296915575612287365410194051659103503372959465387533793805491832967214481565645823125186805159538461702178894515788344014437337466245352305687736596492945385249782929591282939253148144062889289805903772836860003478590739776227030154714896142089249284028723043752055346249463307681491392143481998285797005054807895347274913761619059344062922475874707624709298300313868865526191895601827955294631796465867547203612834519237868427697128184150095981638745926802094164134525059168629088286996008408479277729098875440467132475708164571758389119479303693494916141915540160876479866590425181846399056302887082662719456189601305673397793227689749187072983163574935612153823882452417960089226431999124570280298099681450780253452792138475322897370522878768485518109193630144524457813586378236340550193253166623995730714760539852403993322678133716425459323029708501565298691337378502512812713773744129653672648840111723781801241507532791267843584268113685092866462987119593419257376127795387951561529857636926993136542936407411089856056636850818056837853928541012395548497791552340484915574609750779440312448997266410299185185048839396618302372871061544687991303754494118725219979035978675430225998872065596253650285486331317693501711594231538235688120966330134565902600015056222618644501934647602728918041365436982636358511968600308004839164370512793897740784917310179619338847040775365718051588883279184991485840158094384299549015766184666817222410110746499849042551972605438915504818071258428193572518310813256771549489781224990870325111091608687186326942597204502636997845121942402066421219773977292295037506004310362698840687389058654691083300321295191426454542502333479067976536547170553239813403746848460097586203373925362768570902083939336119447150459893953677253860568285518982626229285326334839811197835960832412358826636690631605552358091473853038804193349570742035145031689222516353783575712410152652736097905166174479835277173961888187659604648471188765982807186285694208140849331463731455427296507739898986340878230588700122975701827153119310404657641401907083478794033380881324018977429762861566939704589433695933960578682260050776719352714150179464723657693238386156483782000694027826974389925064608838189894055709676875897843362178977369695218549113039015960874955605459836940301379923698642971035031136292070220648702047341655993490057863004742703205606162664047268708119804273125054179862915573219113522798631903992484175450006807330178931962246017163556933333780216310571295717627715591134430796548733257839573053577268601567300447829372976831136751450103444194558334985905048683741341018443693236356743058313779595006996928559064017285248184894329456787766350071637980826229715546351114593194453559247825647978689820052058012584919865023275048016691383108436209632620285488731040353047485216050079244304024951885149464006528609208186030772677835784146927507622378539267051597792410427032202895751800197486542863647675022670826000634016480510699009179330796123639936566394480815856762913981461171335282382433691218760997775349825212641575907124544128608909337201392888399466461132251894127959525267242944808135379018254621730632047100484325136554981616520377467299893931656213986125688614855745728958231303717135249852341077593889203173724079685573278422550064026653758293609854545640368676464601122928083137457850865560714637193755152433336243055744443700197824384769586063382969022690913159890597600865190575805739686559039677422117068296807451749937016644477513198255035371750706243335185818972977550854050133590746066561273251821123963096514867274026683040690782886857211281766415990932401574311501796403157123818193476341449063962831108313574059032403007975964726407059055421812484984330543773815626313863750515058103233903530090264431640511268627754198718422078080757071952983178935000413724655284133988581867853782666736376270853221024389813811965641169780056279267694024000331858864405660504032030505551340530026433992077968145790196997395436713401790327062748287363606092733998588273228717218130745789275023141941790578845178265915655405069588521179237788158185657220310870594511715311953828780403704178306074900970148392602718643903836251056629034641481923417256199303368235596342030208523803332927706741448481033331766605779445706228573810268625739159260221596584665090502637994024894145985066478422091161568482577258453796255927269821168776023585742972256542878836575362982480776825916931939925351382481737002633612904297500531059262629866538139810366328760025817301711128136653348832069131684225591859005339991155680319857568562315328391167575347757541371450334443238115981806429156908351258917667200653356859258016047529406795769995352711330165890364561156216094714445477567311214096105266908795163620835413514330915110984866249048743459619019376685228888864024286225553781663970110015766479933972575283365531132720706160183351227847722208939737745317811387894504999404342517360935385412315495716857044815410713129295837394065140327762239464140744224801036687774473337421127103616051921762408829498669764395557306810858200155769924319920524219086718042782085768788179896033277406795025696169668460129013004394956840710060820623293559672163180905427675310812680609692721789329436017681677877639961322725289304793008577646426579795742978524742431861962473872636480607911139325028738376278776645622613489732662968334222389195526559561243739893250529775693100886490283658266358081743805353262713063879754717413075918633720811504524771422887502742434450520396633769756788064237807354492028015261176954551243326818643907224568674397201810806735039953347997686755507688605800365695083498670273493636897611027417671528245857708733488993154833903975083868040131867942337285145478210315104638801603130434894897266358584385125137535522017640754666605488289607285800045682522135869543024447967822661506455433021885676284094051613864067382457396595297991229208311446940948889659232057409889144619326207356142000799641928351661516968304274744294013629779127861234296276769439061669312187130853081402108496528610171921110083466254596775841551439042562539743204686874242685232635479073378553566799821458966298927833364055231886572303152520965108320913059085300104821752597178561175299343370253526054483910026552618162766582325023300738054716277553899641812355843278938778248508021915160413534806810450865371546611134059363960822710751355222436893913146179147429045235704328974883927114934565187959745158993432318917740341495242063959564807703147316482468500760605058756033875731006578930765770103730338423073857310522828599192022369654925025495069139514403931365361291073161907101195703096125178633132278757210881358558537383884357375940579105766976966605720282024935927450957951281646901917798146497808396873274404324547768959314548823630678865493271715127059765584062442453014286666932911976781196747208329680349597040654838147432794259422853942522994573543953251959479073752003381787482592599103965226814483702465360248105140741858333893929896987440274309557351762494737096982290372077141809358903404242283557321526263232170543150495333228999052822194405129812989475041849762229358301633130822219994485795925277793287180350268669652648550622232472066463340506645702095860352467465786032567856638748096584829675327588874625093933072569240242057376195670723630515481073668398566325548254339793527005223650369539014979786868947974422792623793015080028653845891358009500331458712102669918100635433546833104638244990827159213074042382775769580764099024863164479653595311033744170838116525044710718157463826304679931034981384389803506500118262663261740575845392015941500845652031876197841941842427992578336593346299959907618275999402757062075414747337850642783697167036814294462533992067728897097722845074575453059073272491176957887792481071482497229692823836971996772255617337802717253487433107945879367000163035376267271380135134734680471305741257778969493269789755030659133885134091541870014895745564272456693902572155996343602551238725032787871446343682189002224317843335487951120534739531513277813629795546677062897421439448548237687364666922684858916557447189497089567697089652384806605385025229920420241411297486568672447301764640938549262930464157972244318153487693012092855623170811753347637419598810073641764625730100397324351752053605473821067383330124330454057947886523348666000003584276121945328179823558908037143197499966992690178351274474623855462014639315800138107365288850580499869183554289871315573968860939038667250822966589034853668935764213068187162789162745599351110586861351081268969367348779965137557876508453050802893005801321414793789828759583743265135670187580595043171080681772313558550799078255139468126135304285235174326233427662416853571118237312414216012151170448627326975319768078629464467469883161493460056562005551860397167011808993425111436000243902419861893262500617961460476514864657403204612727651096485099293506140366307812757596321881947416636823945890420038881127429120060738866953463801131420774747845209371069071318193909286744120273642529481065148509442178931385503464197463140116075427155515290183719825148286876961520747335855286084308509594692336567585602424367196679731383995618325740882471168811634508662852642474538306031284199308684994028410047387393044412564891890350317900335705962930122781119014562359446466011311661345065971162919535522632422079215930252946261437749330086209537770361576159908365656115103015514244319689346397424784979562896149357541642984595808866708527736514850007904902510917568979589208528885029214249468062867538025936829034452247844533783846121449510537499452847791774206275628661656507938848192969178233412288698377972615334457443725471621047140509924164902377593199804628802755619060014020026063907499580188691224685710519933979388007249247544393983893209226798034787771357193157595786807248739804460607750422076129206331701122016370509735747933216698328827320760450685580480662276042400918437135202707813754028947522070333190820992564167169977657109390115362984853205849476689884242503447736865725555285730969342433145375514163287041119580283276336174398725220058653543844064021089332231726025898542019885627872926397371509698133750560381705736288647503242631063458445576235886145684772463405054080438252276527130543972783961414995428226512831706698835933321868728876141343239406638903064713460404698680419965219170488585526069590132279369651051377569114671713919430450388253456842678432890738324579839140061557573460637168578224984297433248134944593996744605312363167994796284477103780159647457763052781231202533980194838748306257791343774503158792030060841939430137700212006235559784899724731232884985296273491110269939966426883715055145915307545442833164993727491961637998599742978071144761513514687200137875184356923159038750996094259579720636332448956216177331965198528187901310765964155320540830383954365935910648219288734667647546873124336478917547206022554145647818193934530632225098237958734102620384741860583160769679917647209477360129303119617831117331869520142457265283746656852466829725291302236238218336753994022182023684942778117204377996345308973521230082164595950729951889332108917319937208015823289941482084223986965448973113830841812047077086721019150761123668347885583750334927585735402488626608140674492618799264584173523431532827520997646365425926998798515307798864110884813674005824728188814789827646371013958145884888629265358311887918796897565462109017905977480965689005137754333170069235304467249043556610680112332012310518231278430385779709661486635706222863871081051862114002371405568716006036144652568948970033118430014346053325461019841064573052428404633642114469292230170107234568718249703282615854596741092892608681571730001309549351833373624892360662137230254578461050512962243801691805911695818838223904694050909414507226455417040247935525272144648449698739651212212714873657332288315806358605117008594165666984593557417765353948513835420754098468331441344482938803445416761667466266769886393385452627074802052100268203954591230119966314900261969362262324793514484521092764289170121336260337666119885230967430941958174626249148325474009817745853451015923112101989708076146959606637471007253656742826433061943648260900807472449734583289335590962649176932886229789323529447633821218065209691477993020222268035976674190436343117133478605942575085366737315919959321821055258032689377843145898526803517288418890488653610185596959677918012423034354627212516112963448426050405933777220479044566813548295708170969516055038333746714619317713055965647455191479757062725181661729581390561084994706722611600322194228264460194169203277550299660832341577339986066377579760467232386691021440387025772347728511284876906834952169198061149664943034442066892432251634726539758444893982437679161001623265302624483120908463064605432924515651242686919623308718523123861464373465513914275343757312212852243582765546515213466861684107496381085993590913258109444601164493242508386687224705184255980731886018356937353442207712896182338930422641670418765797908631055489816115143510258805018018790243554531540340689876753979529738111579138299612612026027931143909869249769190731992964876659688693806844828956281906192885352774747857174956695516308540514534137921696505669993314982928994558717416038212486752044207845983095516574721563601350329923584660116847629423893905161870998767472422848508162248706537893012253838103685827306520950511258406743797143239656194604261307595879890258174352255133335960748505351340817964243288715996902913576062915084531061688362822627412183318540292630643294459149268083571503129616340870599308631833363265494651387444517760676705322570193843057660533926611566404402358802617989266345859263709431313146244510431477429875124650184928109673032532485592913232190880777764479069177046179388496583419853664801044660698282373817015280645751550434050590380584810143705989714129240464037926221989333723234697784005415858005373442960640066034893145992233135325496251784736823851448972517973473832466420009485183294591137999342293069694511165345789998917120415259551993655927241710150395456387184402828048774123822768208513416750597817048153440949683152031372531021999190690448074839225327650052499973577842264962653115859744901565558339642306845787785967434949393402516744250824657138688217458390093563386898030313422880856896262352111052701880309500295207620905023306392362218185894033801492933584849094680694121205682378746735381199956365691696729413845012364360592689596648806346834412465857676175480941827430267144152350335741590112387969172083959400059508818887222823735378445767612778497732878825767258246339955472820793527461722367173027485674998580922967020346774998138160715800114211734633176611655335840617778110457180548665017376689424934900438221706679991471933608404232515035092194041843293289146262112424982975713883148500760855135221449764449515339539562684821829988163938507535445133501039730993057012393765154434145459329132645808699954662502534150728208737348181707326320082085167552239127322445078341817070836156560711444325659245606226806145421028468200850453282336551990393382007618623841561417581490778789008914227849041579079080845570193489209964344816706229995778561958223379775723122494965964470338585357430615068110134110403559455019733695056586940372793467092680180192370400091575283776784164205314800996309077435869421062519977551207604234239245800407149100243853103273533009880255915205074883345429447626091176870900503870524379017945948962263931676528037019980154412085705006956620555851965077621912839932762888941118143675189634206762256972838577127052310060288027525264106275617329294911405813634618061883913630294367905871728360900945937376605435298334776476664722737304263511961828265851276322403894044932664326343157112785672171127265727459522991940895090476131995977300533094753034457017896231205523873973482378401633261700752527981037009719322149778981477217952226766749724892170034288968186538289990331607562781903179822074381524264283030019681456761972677839361222697280622537644574036106580895663498167964501686938244230701795292257721581984490287989512956420914224514235195424539109309070078196320587478623510182555126926179554735299297664043040640510802112609024466123453781540857052349972090565097373919991300107368422685453502174739824792903646594418471007505698962425491783195854593341414341519433835502510953861750354291422807093292141061095352368375275568784567602412076068205058869009249808335213077264610369271181264841830762023254377260212135121690235831313160762099843230994261968234812484146228337532266561269411288367371299795217931727951754563748367601772544387724101559607135254907041805826974917031349983694384096072695413104360674878933853116596436794664185217449847956834132135487475212491695583086845977258735919148602339358140904027401127448308850301476135224296828245359656233341664432181047173489099159416973861062047007065006796387131873025316501979920094982525457884614010926907070609110101314257656400677898879666812902589276968382335287931574142157735351748867949349355843011801109154418016934679455393635975504339542830855923867492390256150149785067037674689878381273088804861672663344050470239939501903592799657880613041558060578926339308106932683590714104221563824418361376056963242939674382807097825722453900626666172275381033340047780221822601007188589370353840894607281591851411042921034412963751281779091015763846201936905094327607463524866659074523278148612674525425251553517147477451758913438854529142605512988336135958347825183234556009880822285577898236149801927929972384718831271521379164847162458998364026287753675194395820067770691239360431054881882842847838378016487913978635060194015238459732976537707431950726896355040984310879225133808621351962702376504475550854326579973304324671053826034055198102127729250555321682196776694701328454594942062652340989502893095812069678683280003155600578194729666396286701576370533434728856558346218224750120953975327695862439333433367971020821483178361367063257363162453450126131402414212934609922215033784339625531481050793504190857514689282107013417884218288778732657446566446822503700104386298885638582517887408156494295182132073346321423469235855015084275251590981041031310349921175016664801754208663210178003248053344041121838247339720467283237179046866385503257088538603286609308787541291815720334821550368533536075381975401539387004493653817754712911984059856651018118291928065319062808031842036491038102502832812338541254951926734087674205566857669634601090111259444131344283981640527104725105478049390073344056279086442557179342895776848073966292480290224091135601471814869775491461109438611844828161925152027862498952952375228523416377952619908689336509057275862900449758779351406717217231997562995534712109415980204157980293886972947549416885214566143837416472266447284386927611634781243593450342704238377224113074074958470687121691292499792455341145179778270907922723541238134574165767357713286068625350240197671770578648006095177763119546817129307393781470295747523793954724874544390515850432159265906408816903522975905607290501255248572224411076465692913486283377760557514530437550938602667445562986365438955131811357821241370482190417491256745869371552500275983911574240444886516139670694077038264775120587678690894611410650555332535520145429876049387289470844337472270619693872787693639366996852134370157041400135991274654850412206534234706235585452722451897521378742480509965371565223241888012995678903102912262234437474789757154377931187493637065946280173900080404136097359943342341791368307090675726663464634377878045724160428502121989686723562654773650804328694455504887747250834479526326492442718562894813062142141449024570302700964634813113734490994496996195862160146732030142920668107070932479742543169382285055260555828928242882648562340510651886125259114915818802510272177712895155095759391806796432172665984055559444345905570675030957420263042158545045910513106871537777072899447372797791941459915413503523163357616396786218157578639988772940343025506034998449602920872269844825591762733475069096039616123360548976572390490783337800748304541241320828330161707048994380858117014091642879004023727394482619049851536629812945678687372550382130754314307081625354090199735656774333273270210757917536921656146606422828599625755934332854149044095370863837975076654534312948816944033071918194498944994548135114345715988209639768498725728600978277984786109416673836817421165600412192700635155227992751629377983365587489270282857673410311359370762951150993704163358503599471653891882461087103041014133560297128999729996333954545696139161582562695249041505663188936393822725278032808248819952894525987367343100613694529990509309008696460996527616404646896353004530086665128861523095599447434790743197293550895204981935073972103307329202746714995233582482666316289156297738282274966448080124376830131836617998060477243942304787313886864110616093109138721818737474496719596608521268970347881772386937827601209510838294733037107346455051948002974925981534394844609784360280132321313202110978716743190275600719844683845906935936414511656981737986896255428934112710096978860614044551033972308519704930168019531307761855168712512981653813830756737330839561265261047610585811035598114473452015383536972992010203188277267317187382627913759149676575152201825082584790341648244075984737937595397080873532018124281075942799273330205188287865267192266327373754447596265679614767901724526914575496709702428154638711806201390153190725772657442411302641268033366836397135699325127738563369639262563595878140346044867213578920554437066437439146710450373422055101446862427844083846732786389204008217884896485743364995042451447903218808974992005200925799133569767797929692391562015097837185047802686670228595651596788735673165609575587244325776172293558883711942899293337513954784863935765191467594533452476226742935858432753534205009012341548318872523067738944967077810319051831945546826487201235210033484113022215895924163211365471258505886505581768636591434992874291630647957656222851493154702762020477193986179054541997614892226150595418018664474948427108974011425288021701223228082073534167950392251138972569086522211130468596132255518330402713875886526390926674853265131464859219340229669473643869554062856845221129449614856169284463975897441648238979467267820779072615064922533162843876990632408008671855823773897452640778978112990181427047256368180735667751760029580901813935327273803066576845723363588495789569421248154005703065267018069272354311881252032339138854101756591663064287493268399116711780695538573919002621790190848550109179890185852516766966833060322027116028147956754082006509099080513277825452714558256084493978545716816168822078394136212284417419401189622774366942435544351315368497899325512777519833456478804009671017789098484082920586924014874043386770982951017225664701232049791325409533496482931812157021478467768109923202264530394465631191442193524245867214019613576772506285243549113689532140159272758318708423461195165115987863947212612754483404570052766400068438613998563335214054414830992633304331751112037454575876889900533354908613148475938691442035301426871735800801464952308072264792454085842229919443902194314502913239248221011685938115996335343366316819888185885410204986969849675070870593888720018061297693836453580092537204116049929041300846147726150003316908074321586601069423165131130419167966350270615479063265286062145591419400049837583604911534876796052252117068154897066214676719891426749543198535180381605106994641727379770074353299461366110811737046681710383505340046299474631265882054600125253190556623561119782236858732878952963931371110515281849735102915050205764915971625900552150434784084238588694825105277110060559644762819438499161038162253223444881432631489802265808040458257173323265258106083845102963439574520932502237163328956833315173200683256486599970369036725681245982934125244618328578748455203151440883439714872691653572709083072190621347416572664540913267212674186588009958712333994629315310927337299384800023541342389274981604025167378271128871393371542702827771490024974282551331339595203415550593351779228348043175317294208545991666733231734098036538993677478981419205902815643198636066366404577856045625492898907773169424307990702157583443879805585683547790686947519360602793164687175509487441427426461721913602242406244839290572066579714079130796321108748771590096326352304390852596320427005565045439751544223038774849089079423690981660927058798286302660272403711919651535974244394039662674348376357607715802199830714356357925690638083876847163776862352900996749986095044062919751748988608076699087779922962872493596156492050614741109938269159449117547286660596490207504709347347332782430510357212284760858194461277433946052644650235058739327768762920595860852631086220906457096474464433908432824970092355451802334496767259838074410450778182271570007255230474855341098971388222700417713117150059380652723179648481292693083293329394057108577329654368003219476821393668300030797042404061689097605394953124508207554982271560889328213085574121365616809807515610601376774508573748030836640227394690499733131479898542769942450277155432988766070787647836614488191561653286666004020762619023685734781671546223279579957409959530007859093080296334847703885123605424789589361009111149701954256052990641481767099887765516906355758305647564903415890109842132990195720975165271862197982659050838859783583505832344060935122077740413775114409415548459369815636904576345182025120434515297281643634115894130754867037695173240316766886942266796946985890255916710830460733911694515431449417980998747392476976188744282883631041974500988558958362243494664552450131120852323267006784479923431172425639769325977169471956293823703245371192006697982189073163543898624806144943295882907482222370959733460318113402711460657455606135202957939505791121866048806213246744437363824216870055530007416415489418621585778086954571148540796786527041159141817204571153170365434996698890191546771422910705904540263685197643160725708618892230514398766779479068881547033876891548692950531401640881456609365877249412963907845791323051952180754482507161961919138181260558235165396360714111026650190952441387219703864406926576491045701657457661310964712179359239444115060045689131175843840816982756078106939152813015131302555596301225740384312908206226583722346682519915750548204030388826609208320540612205602747743702726516240803331269013416878095842343257330748474457625579028839053927951103234009853833029989004774425457561834125536738335462765501466829935445174133535281632647642175876126444016376686142321909664873306144538269255230497492699139592300237401893352204414310537803532918578460718315813936029345985265167365671208615586300405498106392793208042749976487955326513349058654385400679661511672897213627996731112980992900524015944638873590234912987060218519644664087925890402275864883188564267198366873284793242144339836132625277578362712241573725457914151664672604785945167788641903571980001839467483864761781458890286552753564982305532675171592033461188790519620486264916242135586407001622905215595483248836088775691662020958162525873797935265130364275269393926478875484610873569624277811282292631402896028723261174387294762368885957128880190771941517638282940299547466359021064862491017209153908950956342388852734147831174354297569960329229218904257735480067396999816414216996562256544992194817360130178717967608393773738633915501466247097908659508093971936886190997533587515905711601234561626447754140053202391075190131269454219432523366477290199800757370146398296695380679242847225628948946036285690363523812302576039891014721500271177653351479442826742226397548090827967847586375452077303462579344120891518299296231191390233477191185179629051561367350030733614853711148132601453896359684208055217832544918248220054580930402119975797922491980339808728076916633942302179547602899668039117120343307118142479645599599785244882266197043705962383282347531640638206466799700209952654214622611318401575812295560495094309466369466330367785211825924186954514223603550406846481539142013640710032703973029060007491265711602659812448836777641795892718503389204439962723508884742633800816325868212281278314243335691810875478227230895774535395070207423016413708850065107789867667587423052159677037521488694402237950504796615826899332089854881026159338483239814720501801318274960619187206594225825361968038308800876731656189432682811230909378699732061675527312160072927043772926520829488634739840521373542255610762814222687756373168809801543436345091451725928183997064966767516638561226077744803845336544838427192140218213709764224500369741671302412279317357386804715412364745783140365650500463329069996474049893547383995669117143887957842018689165337638089514319628224837879752578878521729432714195092155727960114866974413985219451119955895920271949413491269032857226676276352276200017445307516046169202654283421325027680610690359562721560883834241908552645363713812510998819945416470718257735666207701352168848651312263479682766833182237500029491205557762258125044343253417128804624985198053164700325941764467917134456393893641339413411920976532970968498359828738670012383935727481893580123869280972144991044976167386395622432929295389185424232718437151094782605729992969214178082505662671735873344254196490686814351751573806072031804329021244780214753252251685264084363239628719588925356994888362578230831318537638733093647742306327371204601002389404146607000246087206605118294501396241679722634935402048020793069648719290209758681535160866003835917630803996678059665561162124980340024052136570331994804361571477969388513426954875665259301661615656620893764164725448430357673235845702454924470303676246131773999723874489575814588447489687401854565422897674316224311381878852292547278477072055111702300894647783228756886771945449923952341001044779808557550090952872878250224264636668950126876501123484134714639947557244642751107152422884923403648739313254796377859519112724836918187446742907483034110444963320338911332363363440446498060290740173616195849420409034803506692960603333826113032696247387165591436797773641114671106562101593049552897223299038839523033241904169341594854466165796805012371524573903995021820707930597758224672279978782018028103069844179290260850877151246287209396419267796791173481224243996527954766837310308191746961845539575745259683086133665199843434116977630715051291760005052197816926039609946486064785512396668896626858137664670253185493802006656572897857506826345122336813830067946105901339392678378738980338280072680545450830306544011214441721356141238849476761503029812116004453164660150508864977466216639748079055355653406394861858871214836303899685784124206313430190259511951870937492482992125010054237976516799237187570137393861348524065818873377930157436153325516230796661689892900298443011946996665003227554038422806820158627445337216575468863881888621900849805161427873115053791344613877438583058854944594120732175684147446931378001813679764783952551133664126754941529712126844694905751843738181176428493009750763066239483797428437433915002827318849717107319770850500486292130236409072944726934584116864302278900599612133645713769715182133280894205995042241853213172107004286104820754023457208902002292581937609262234449207553958367135856038208348122370079231316179364102583705956453684407391393374457307989334814026663013082670187179200362207472887202817474907729144044765661016401342216014301642278408117764181271541108929583201101916929373431718656909672061263677514716766133321744736065073134807600517562920126695167178180180567386221880862700393732153458843342069041722310988108200124256525022470832623002487993128634458878237658819331242530996732647438210059125523033169108962971356648905221359596231161799814717382102498042707155258331472141502839186486638244149450822821601226504590533563635305388821703128404755470119525637480505008330696711179901983258443792559456420521150870902189457261149555531769241568121298470681969494944714088843342648891873053442336537120129602570739609975156510742319721606335977224188836637037212886275939457279351731041147486764056382283090822798651383942761279886753968746865549723133226824514948242996902500343865975714130335425976699418323377151118353429773765085708607934835252632474140201813313607433276359217862455920329711195954999515267543950691541184431364650430657588394034485889007497092679684762083305830477638327326199449221043371640001100168119680025523147950002214878400282551008193879580199944029252299706350637238455636780659566444448377448589055745075789560028343502653586675584070724259892167424216836307286409896324930558937670836504594638107132074133019125779134813060983845512779795610856017059993033440511026389856493135251033517797976778659843854166219303000456379965602375066047923915621502846093189162918069119635639569889124780709278620951282237432606979186215605721839403979519445726476262304315713326331297582530389259486054136637098808434631635822575317282533865360373351137974244460127142153081037928930250531784202030999787159024450132927209152079727292181652495402903206349473340812042767994136690615671518311522381029161255112331055582865880974531697608028445306370451625670108480726150284770662211370004706141333558357619174762546104804474765397522543895955308324943130610064030008132539660827422000017303499776644240698226442545350432821679722047306056338228952441523129242043776495572939068641560488427538798867247467725641142056274156275615771925047694319896839600309718325714128778079359528968502155292483134159230641978001953467333578873393177164576434240511789434110904218177137958788940755615102595882324303359292867967854997788640238394983686153501917603757238899722980537411116450107541140621245299316103844034130254429527584835145244458387929839693956445439202765526931420092714983791395847780832951724549201839369831099867622792432129493785968369159768652673296569714321017417568394520177633970987323505310010145573425180167310158932388232297003626477893358912269966987806265644693380987676667403057585847059615030651149254594587778187135793034168457694170794098179754341371531009456054313011180566716805120142748233264589360292899147717758178273492763659858808079861292027777298420481248620301411103185778445671011444880193408270125001978915199729335507093379892637978455326778900233640392034852062921563106058250427839146291380104313089877789916041512137588818845693006173156147896413626990716322403634424882301198178469189485793632636169966791009488882775960256005681950646258341126752104830961244856549926415855115647433932093444290970930144772783210692414531270548256106052952766523239272616706858484395599399394167617829817800513956349074346532841747842897530549545564979209363492206500010862363226106286208315300912860031850091147366802286033361030393948246977315100658309754269144525552381630465281508501453471027885535863173619464392885623592214831400906477614043533916321078894145701665640591516747837037640070133941383639452417912288113193500610731076388503269554064990849336698281916227872254286975573641430462503214680132445424401276801170729651722965178557848466920257029718941586792493025084870525723884336506344598131483080498217601013445304784988673097232909955747343791008959334506065288128373765324697429351385362255217055657943789110640775701322287798774852555227442493313774092443648052070272340242656359320660688374204496055045706893523792937122119717440511844530214050322220641312561103342865849661834533175277438989017646783564572023264317165062204379606721541766758629682092480136691591216311152000297392359218855521456345983322724343908977269214846684110943742643145469965101189243716597249173366613844823408935378571316871396208595635308655157563733988903853386718260444043600971343307496357409182274116940611024274943555135968108669071332036884376417509417635741199136591612240168318938624027734325696550058213512300628186243499874369554142111284917498778341574834162536503891227722548424921126175741823795049084457457745095904030660809101832549043881853142894062028854229326059926782998066898448599633892924183835011395240884030497537496036635929115306332697982612145448851990115074350547746616334234068807088891662879523264497739824253534472071435873562363463508743648842000554898095360874519804496638144474955816047406250774560295085863928390683756738619745637185725847629558630830820099556791412903583951183942426516544052670599559627824405976641675773631196418103169220612065752998917876014576608822910990738788449117771898646219440011216300529234303609762668934512617456682177146316549563069100024937184317067457850937732334392993948680025499946404595888836899336475556494319060081314982643782908033959111379253662204741436478620931560499884369412304521030435636217275448841551796116302274266655670363256167856198441323275526502952691813082456459930260645063767083346302039518683461984275958952659467118430378910494450940233887878041290387904702876963234285984262585183326914058977646515942766413182697956192523544670392754509087394668654708618005359266475349139001697088232197830728324028969850522781854788914410770256082938584667906586967695260169240211943105532545621502032741706286704736657251227253252524516008300001350344425744349230741667001111436269765508009562775459072001934913890321685862235971477438403277669269935388640058111059894282598340107385753916524362809839535603669725009235698280136885586873698917252414230423740879996881257186528903665711025547841039784229754931242266135805080690071492860559713456710080896019657479894497504157232556490410028842997478543703345363742499580852842407047870711358242267212206897162805471999344551061807304931276462707421642155873500476369906982298503230761075586228827421967355627138423576755957507762229707996644469886813562368656772514717332714864416236773538621976168262894699125722567700408403546660063714294017445236263077146122455146379769078782508352928549051049413921091425412388642748501698736700866476310290153261931926554810099596823667999315998513270595648313767917736070631236506115247943640703088208319562677849119635382186709708721101058226501980185522832940992696386170823483343043833157953174159933471323412366369819692959495872187059315341348484879494997136187995622233166990288527483440703961154683394021674895394040962443266085201541786340619797680558437274053498918843654742188931247307276509770310627873591259711248631773101826085460331280466978140521014538833703183297694547076076193864040723467259442470137564270905955917613054696478088684681187043539082654688838923729055350241837133174134674275395414147722180312112891802449774579374541043381406906483207446190624479482577443188427446980199315928149505003338687585073066604063835078566451991289156582528664477433596720245520925216422324212506436044229571271585121960481998685340868345464602822401309276631199162800157705419122420835502043018021972140739555686449367609332512977167746107556169760528433280806628254519155981432147221088836310979202833607403710444095734223948603877256053372476583170370301920673955988425802103463694880576181777804215409640693029062815891358057361006537866484707302898051591854131226049408690020513054550178739422317194319126278687651707894819621554369065352808539737350736286214512062138971601152037220781771746979118130249089059994194154981651912073488621210756600796586508216783989742242799618618751930782349704557565295404505221303651448228560025680229193015998865310726230940064909216277686519331201553743646831417511799573628655573128080300014602756726177533261878455649641878435922462372698360742369739874748312925539958711055129338992142408797981987228213451989696633950040353719754197021666580495646333109407586180501322046596514638065260126271641426954019226453623259930492266970747378200538014635908597355398133295139847210054832826500790254505927884394762977478191344886744501245517159621951234237269268997293257020614477947753365976435637758451657346184979292275817362755196955866125282940842008029292124274058122397206185032957932931857223904190735889943411407264252365608700165011790760052263486618191731872267285823533994256338121931169177670583537382414302749700552726491023134202874096177631205317881377647862106921174267478408445773692583660330057435952414509777486767451879766435592645190134669031306242310531782027162711689878817585408120153709726175601494171191039414694801008776151883767957894176180479030670495303453133788074635503570083076432232767437082244021786910758992464708900308968232750170472778208566928455276949214980205035881639691708612735763648716726935853703812185448771832830658177982018518305885485649708648434918050710046781918084404504615180293325433973819859674266908850184674214664129020859349899897520026298619298297342834619327569640624718715177815612318717193151256524170189138933444419499609111051483226175928721290051094478086431946195126657119423276426929171573966737389018858904782734816816425958557565979504239608370459845171248041618445144115837022932870233643264621346581271743040311155678908128134327380099489393968658019584269654995578966858007512465552403365614465228068444666811266787282590210501403756041514202781993851080540986259659063804680352630203982104570513399288214610829173447577284618756724060327288720525924134042246925134726496563750310970689327121654788335363802370430414774125215178630205963175716476625971892113150372063301697551682422839330817582907508616257107053053180944229876497274296833979645576274507567643742703577513030097624273802050495343466946585303426376786045841094684532419700444739647204317148268070376911294925654908781922315222912784118152755565315403538129880618210662788044522888099228925502246595890686111997473275767943144906184317372657817315855028717755302486446017308052495213163262083989283700233942957641564963054793817457281421330372687544058521970246760344998564369739036859534080969884931001809740604441782863180531184985150763487229124415971280062516583236158461350023064749101966617108683080561656647676868440103701575691700162381806296540007319504376437417226625198446212021014385894674248091584585360186145506207434353948682416535730507570647358485394685307080017377283012247660098617974693408274973550604015442310951956712300015254097823477288141084709064967452894609583059107609356349070327280974438817311266034672117618089038618053043325821819863075680036416384216295498481027899446726086821378303422413601726133133692515374198637636659456552571406144296985054226532527903120961783747054968931377480513553801652705249784920251747381564122495692930450449554667270476828277693177415512744742290639305317471945095362239778134079478457463383803009311009547852847368721643079957778624675635928405678301491261359687023871376292568311087254937698870520595501597580333621711778041867048645843837288534475732755435757304998263182667050120372560506185628596383492846080556935243463311294386946648851535657331610029492335789525018971066192062320322000649494927607099381239901691376043833909779287904252154136322167922921682290191561079613752634723557616710990547997046994150536874818621927426320259730224022029242848311191644560999287679562965744121731598604335365015762412109957366084560945797117967380337737979176684997956163906380276019938803631178087464350212026739588884499475228582870538129609539294075282627336293209174709963305495224294908170083341297053606482727448450888083831400867121229131939975840251604614941755557881581646645298226718061255041532498739378417242504584726754357226603501793348396991137411700456133643662558147243161655837490944927276368980942824125979504433945406101173829901074752843563450862995867653953965655380318858196915945794678989905040471232109013021155777286683973388749356487736281129827753813686016151259903169240080478165564058292805805708524272505356130489410102815255400020322801643555983924934677154357425809805720347867662863477922644126732282520590207552664587226158097958508270535373641358491693341446034535401701077985639157063407847842931631355864401021935286627574954912919123589362360216316317445622083657804822326265509703950354952748558781135114150447123958356764557550561515595385150277839932691621068801671061918483254877316195418646668186662720264594930170539151971053686847666418288617128162947593991188818095962825871716321704585595327057321928332566941365852238232676124111430834254210953586636273009816584632236257335057009518193676836734417323632408841613692506946881344996164374368007266945126359419562715805016512612018903973607122554573811146491025836054470955824888379285046616393477241286221678645669112786387620579176091430081677466764702669751227642527787395241835227226943458832001677825431494456511197027142047151898792895163281944985240128458261739837970353443069906855376870591321643248174854361824101667205821296715379776859236415183117435724837650057341711594854273684146141830219609367463058728628658308708519339804086220650872016835932800464027923704586495175492120640598735293083191447428587897403491781705131447174222781517029320017340361271022524918225079416168700650900845870637802926177746910695480104765673771775307829156760271114663189730550768179180519626918998229365331827869947038543618441094824298805721163871867657399009511989385081809846348715662300111836750094321878425854306443415828126192579545512773869370627452809393589384770245872817888133187704327440315577398206877804870619095416340363394925814055252275610764407486626105809551866504910012938104924575289017279463357554098053881522185763143723399459568036664064539088469906777297503018314026832314302791674854714356913460721316998993402744140297329672170649563680480108772549600864068304743656050622580647338254824685053043176545987951116066006073842564988396805424133587478364965293877447019039521700168213342603034831492997977656249437485300750882776791578485556544597148783514281517558120671137776255308910861721129360033084929225481103733933434789108614764445131411090297971323144462056235666183364982213570188320492210740283049965290300567442912815804928709586085471906892619105694485272154403481401745497969528705700512592050479060968595765802685965406354152639140649192145045610183958648387931870772999301608654627046349208557925927775869849853985410546168154252964153872436260752306690834565533460529855524713884740105056234091340259024798785483742741184918651953127561307508119574295804366866921496054646854719937282037505767323578036104742942225534718635792600455253349229798756607484847139207074275149139551035353189852935146013285109041153583363402986067136951814769251508571805010152313101417574469770026560654456955221655051599553383487074735419445171608930392917938928515776868989111581053533286588356045750213727171799820755617833147242873020521271854222770978000328992465355066138497639325738275573761318803537194674063613403262668176861692902946436902487839487280847158541684190827040811134774943347407407361612431004939745848411014302834814855354482764623268181777949325809440782486386093536598582970770466092258087682482854087466241478435546614047715753714774073180039036719547261914555161455439950755886561463842816076808316360247204705379703124846964363507083338315623792239167940065538326749371471118042799534544338469618094282571733949022312904548644870029130979818453342500780986725587208482299935199650853658444746944332089922343332127628182902362216575183013491492301072767838035757983766062931813745348358000554337575797975678864442811287927970031477821366296484664727541589217369561586783439557306944002632604747030231440784095671353254531121981007549905834278300239432436508917858667441657864275843271668839434056591081785513488118835098306270060476430566093536334283084085470404300122733341129228304214875799427807366443094810069716127717200671385434502503665605279340322344751817792885776168298057007768260316781443406114192437158177418312168770040524847159966314977731686703324192082641880174020224334582671601024641923012094791212094742910429360996403575541982091264245301576355143658634211643502835253182105517702326081202060263461705573605831287453884107906067040574398903825873160682849684385796982522533561185132022672233901707756572543444787190074324127857094019219093980040186098768505483862632412466620902645813029953745976759263334640917241646294038062613614482398485375518459916161428048842031159000038953833956604145987889407910122718558293907611081811088493924596644356412613000381364995876356963989990809304709598314759067109555398226109458916957082058945793541876461559373850735542900590466170163203025361879198979288456104742219189276401643651115095804429687793725476717624603120174394209141421833003326121785920664395202335768314432570615169062309457853576907763592973621369680917742291820175309854366831665544795733696870375435069967253124229635312910293299162740478595587286381511753154603610204535119651786546060606441352233678610234464089845163946608186044083743560405219642304924074498922011775062482561431350413389963228333823829704361694029164230139450881479289025427387474221989047194449944683366937475946581911020871025612216784101539036389135665881825448886779121015208065071048400694623896210424758975073567575736681021108807785462988336660175945339043571955314236276361859224486142319076409693678035035839105412027542299883218934017901757064116142807847491983486017023594461133387999067561755418741937027449858877468255467078301748692704482469384818295282037507445260497344930093405798791325673603303991323570997789431418722181495225682301950013796240152708080757608052234834233521276196311845801032600827370572521054870799273340340930377481286636307500182174882120132293921009228025213935901750238013079472072279935364959291216774174808952741752732664207825567125379527889224687709075941217635087638469466930950308471645730133752954253860804142529725947402677061497397167116991038775121307387414536063498097378572388470321019468158136401307767555349793824343249177054273802683727644835088111973027100148980465429485745557588132258987785704538014206864542671480402916243082551423133245200764509782020234541752786352870240601715446156874944778001528820447818655305634548241314945419950696479413361854785790589252946594612960399218857974724187815050161435887961837307263794808052698521206661278533302732287417268548044547527435694506838271036227638470344142860361261144748256285561240184613191692738599054632762427575844263582562692664992750260936492985020426720287494439242086071070889189544090679709358992287718428170742008107371923443361655926717621552813233988842280497219863678264448245568279840987008359925203974348337899281316754297706939027740705965719205101839714594232494661494809188448645561983629272667080331763776808112509679291007371960928084497874332569121480525167125484680749679298978184867164130942763375508022490613439642721667762300536109713305917896049727226681925914049491637589199667877099384373617655546548350035884157299646087183477336806113755153579967382175865639130861818540982250479817043429401712527478560820741096277662293925965615206593761755470798967224396217758091119305804471999192803548351902284144960002514912052906256289170821624182267711967719927363817587170222212708849720191410033725549907515537268534912570080850640682778187162961770249068753629675991393342374939524045293401421737035232793736361912555841434450192042692575562145668616295548916906594851241607106406891000097949134882428967178424432917389489771765864046281848936025195901504585272489612380219459388691171985951059111063188536969333798089018637607041248296404855745950417257952248825305961350152594454419100339129503596810571213809683719909995037729342262326846875497138725625594243778978738475185726123851228543426765476386009475689323932773704619533434691176850830673179093303666755333892751990347227632158848843571683232321212942705932109132251368098836870519256593563049245605726780662474755007199076633535836598729176271495936817209812114720324468931058784679213413273066426328388469044268557769560637496967047276872343947520105071691004558553366433655450774167336220995272085345554692835065756164652879429446836774650930961359277711577704426099045474651584519625034014261569088852899379320061894799704717803185673476572188593957492050485966699408081005637269655382987896214065538786442556461931922802290467349667992554360853147915401972734875394031103772924587883582651666200697061095105220605497727301153466772411149057486429098964357805833251025064025136455160616760560029041986775694645415433517665588666419064355944743617584493478111353067620115351192340589230766301841896086122101043675780677744961951008816737202126066415004425891415473847295290500822016690133751035185221208292131144957545531155679983643754492194393038519798870764464480172957310774279894621275552444547433229734928968681402056909068045050848654177797842382628895282545029337692204218871215558887608540442560006217795423154172833476386576463350276084948254466380692503160137621510336758853629323125118174080415256290304824716141605666010854414302858220474637097657151077856049509323623190781163061125961276581048935686161004979347034835573336378707966398983077931337310230610231817170410525861741649087783384629376954903323431872622310077437737477606800745242643244081998077494928105752537590828047537615852618425637474182821071657192187769020228396736087346556614608147461363464047761544733218424519527943018162675994256120736842084948462812043136532520016640736086816527137562710941382928467912850718594048692202424329967811561022527102480332939653363952991035623332400621740816788208319208415071364064752277652173441232146126879347589291957804410670007580960825897098265144507113695808953601060391823765253087298292228376034855937499444936827750734811460164095809734415983244525651139938934814454417335485256073287333961313120433594760045210611754336825518949073452373504571384059783976286999150985103478822220476594289778116261867147935556799493540442482685363951687035220695263502744903755563550359887555470888065168796464430654294712126034538007430410463506527195387575744422515842515318957332287633801300507924829496288067387209640258173832575890603980755569740057795272660643134998911029027567719460195564322401284495814179677977736827770763168549392034620189369095169637967024465788401321125197597180502945079562484265708541387706240761154808826753758641718219121722475128453776057732510586662118969144490726653996240459688412954850985734200960690960286346935151573961422805162133496173610822739892025198818375930427578913618003158537421105120453311655793938128453415608125906725234346883011309287271472888647074434855009904731735540265777373835078207328838771556420186555642907026852391111662098190561830729795590033621307641698636965209712396238334921439431872960993395645825234623526906472663000263881362448854879192609638829627741270140686510913765501100252188420630404248779538333370036841286110589807742631383674762621482137809263091650196560016972365218933464050708009308160280042562532643646515805104244639936816938746087109344130348909195941833405983148503402137170765826159607277276389863664411873404270520236273646335078464986742286464745638122847118771116941803717039264752420689066884140200152710851188782574339782664619759955843817284634346475269266703580799597394924821801251224356227482537512900374752818164208619040742947049954679715636829828123197981500886491010976933773576837943016879279372542985521828680189306882334404429836686050711681653029237519216078333736265962147137772353377677249005917171111858321825967741625603854395088214902586286578561166493900291436298057359758598947867525449101660524170448379317030705684612790445995066194371863187396936233153353221423892067615317138405957071870909057492421043341562781471445848963592626379536328973363118433493403091399066215108753972781785265219360245236972036094039122685076837523311198685931582657623892454370933499992748682934112867350329478778464380858302454178209212573803632678166378271326881140322904077003891358063969114675112793504281615351812343339376158345714921116911234616512198416482750039488590632958134103358505910531579426882037498749408481539550234241212101769012384620320872077389403661193598415266730403483738376205514434783649204514690618157641481536822796028634688692299421034405793965271889021449154085744550150673183478120105645930119261579940491628825458660020292324475444033948524179352421903633908807579038677155331463204367927144606078446184797125579485017071012928774289466552744260728054192293752174375306781892387451489610201245151633357921763785089989384090351467928281806204984168336257104348235726220787021056802245363985002336487750880786359654869783128246964744628198993900565311559549604394893017476127641983808311053260572413524949837699425614403292099570505030720571940544602365183018313421963836026291425077793552713716748346932514777979242098750937018341035655735179986893587049291060825076195056297534034140474135577000603264267269019403477637059264615988720324250238748806405219854504476631564939109311088316452935685694546960794315837667002183564671945679260551605270932000204932456144600710545844299832073103438942334466118408654203528031969823102558731201491600196823085760297184727955729019326573953651403908279223792225112918957287468068490612917736324741649732740456612929059405175927241865012285809982822205108067198809451042059742611786284623796068824742020814357123854607431660347661468396294306672033369882801083699135772263930924527864552828920464566992590049966351522649309743333691720275538090890629873029007240390797869135652428825444493322167993113361188377033311736410773657389974439630425339103131583913562825458712093661361569293804911312306793973163549916866200554648095014749210767064163670650685350086281554778606273299856873206517376603478729797507820875661716770535064536835223824407186595045047964240004644480412533779493134288375281366878458495482155240229889600403659147900111007730161340386869448705363511100641433831516882171193855087230839700127303324196154249087594072473925901886485630205451655604689680284140964520906155661734147780242792774602014245312428066274643710403307226540115089688349267715491310632702719964083826324263515418400395618904934236444423255760470550579559559015889645684797109086458343959144610727734723335512485526583158534000969111305471336522526749952641857310515467921621995266688352274494174370905078650113768879278199689561896000779273144424621316352010384149954861669702998000836204851446840008275232841914869777949805873656427840433328968337872635479083206423688795856026708393251606799972741065485520513035688844245305981726100881773797712465549694750676782090421336832583175344211559734427341570238588100938543095454560105035479861820411380251035717932237457991629113087913342227312628896044594614168238189554305611079965059466218830672345953434436624370293175817225996903694331998668237732530032626422051212770504416605038568172475342442932640761789661581828324066817819544275152292892731629336508772116162747033933375075309543831024619605479534886330160025306509305429962214459791327708536715686283355963208283650153036037121948773068315864245215281588238415164768597616012464777226590164478489389945285261902187785765835891800252525789790282938692519929253705926042455622951181694641089444972843624255958305817351025099652228536313106824286603946606517624819931772984623336873086799584587731232475905284196164145043826151208140357446444007351489619776239530659261977638726502889289620692054019829677837827759185704668780952220653158466384823742537619510627566737968210451158174219399750814707647268022912043779935984569097950015220929906239348907621749899847859413805993523864303631858948596569168989032472326133673843715143142886099157005175722371860684698474097209284516231935654109506293915565963534770780860621654682175920488447710079260398676895176871245558037726061410124069907561631135613972302674012603338452004283555584805807333543216303746811512041614368789955988247449620125228292224022261007950973135554629055249569132811962733070909670838701396021889188687670919389274947945455148400839734004172854442302291676384111055572067489417891690319887941779047062621579436551558612295626440096590683225401264174060508978271142151897929627321885162396527091021358658344356874592830394015461562049957955920696320649670909302051938049171700840195595041714756631640580204926756326104445918628618125687484947945368677812739952912124177212375091146003848615427930791121270231273711906582347875332589532416210516519849735310112656817400250090918188357847539891979826451965328400632655580478143413722217738392969476260789607828693444579785177778364022934096751396255814886947228129487717401083525518896479700496385694811014988786068415471615889381486532952729966502984790584258253497031855913616327186026040992186127506983252924548165263837060813068986494035005090309742825650406089996759453049146300255764607692758932927295884453025581146458704748154327084105623217309862171671920029864377527649867242629698995023492629155806563162707034166084649502563286038975725217556115173470489903394450771773353606179110252550289287543325319162198510047414665194361891961142169403365607989853709698807451043900616751204987920636804133406746781434987633473227139256632915356096413408780937604157712900650281915873386221113586693396520733496152689738469267675130917197192208491955736918074927900554876750413605184603543742014326832746386980047400821901346178692792509737309693975107434293907606676682926130285049560863776329597660436132403341934298368403106153566633965027503271343940054796551400598818845401335439131040476629462372427292123354844050191618671545498165426795408857677801559815259162215670195164292463617717719028217563910217642304487416104076406394664975407668953679966561675432078677278799351460619846591232054716553488744747181250953120295607719159200527858750724236755436273912621369712093645687199098374174762968545445213517923284907040773869724715040912343698142912707554890609620933119453317826429966300100606775569267292025493369612526048609004126477215674901796963655628940812264928165689072420247976446914519804672295029368758129819722563733169747308867065841175124944300351855236398498710655610185290237831211699558438422873885183041932701508911181595966215903349652402894359473007271094527691391985181164501235949482716595107304895759272585191438002299818755366561790374235211553859375860223749686748777661271882380302949149547027259581179654585626933890165711426334758419595523274366762343360052259274564275014899871514262563437970615863639302259649795869030301578706372030703264208394516827418006627544195942251223157760878180324640619976858406222812377476390132336820972360299443529530603131371000089185135380019108787397675971756932445816583223550277568040294072393712635500684954072740010663221867403881672429784980125074199195673702021259900129115964368897748256640268778288780833194681870735239065135845438351388967139990024262221506220322778817971758799275847435370728105207651944265196024420865507127026852546192489602849972613706066468251780952158575370703143797373695906225800115387671721870472159101071467794285405840244940999353256854705512353142986500323307334540011972428014844853273427145693276301492330995039389841771847277305737918023868208614831845225510684433389061047016097529825543491356387813200246689238198864881449656437610510493531273128784510185951774141180411337195273735460254949899288177888469035087204763786453100299641052922926063877222440375729456215124751586291799617112417823829664047481229676998284694406314966902871292898444559813793876223541000967592641627327382746488550320502238933969282196877056645836221040762480935924381258886261230570112191991951769525412661756843523798433628973170672683428632519754530424730537527722938129579803116434879313476170230265989246995950428653209423784935592347689434614757193702415183336672054650474898055604405644640750293859022218785246160071546693979350369500406584127366551298314621981449758792713074667234944218916612458249164038967374073355890368085939955815863952834542447335843680120339116661991177794245316096571278271692942573407050180987518364806867106963345824779406291975482517554705213382303012982651876201663407372287706757425225953612388308170311619865495389211211342318627786727398071248413752663421193028850707680382675754601606943602646940422459346916360172582005842816024635873085363757620894508239334216083465961168449640190082256041523853434877735114070526751104282873752738127739327896761467288070256881575508969461455573152242249554747630737695312098957305137261226842021406499927878714996599364155746901039709074490455846855247205854942505557822105435186307136968068130560812867014365046689288091089013442224939963529278128034384301304002948963268659755191924568144632118123309086857027845919281945551136936743980892576875810572935344892633780873625445949847613562272004610150582651440094559369704604243817324864134163842868218192692528314990897893237657848647387174324655053349185153531827112927838584603799129975669980845788387114023959123948741109468499232823300202613806765118235094330067615982945858118215025709640230687745857223667249959551806187097580861329777455874409528964075034997047832770844399593648882160306901394529604375554032517823958831187857150033178531076969094521941888366815265192903225414400761897291615482830929146919963418477560796350083814176500406387750639789302289889257213476939015229246863855071895029534264864518318911343855667349851320413884640417377269648063009321103042053591372885421581913240387889238453664975799411663183995568494876111962177912780126443033147032511927079760878028829811352311710948529856123063151667908002547241300771403693641194588120705874289089478132898703109161238938764925820880512792223572119414874997172897035959046675680928242277466451402866388776263743981693070182189290156027329200290174266305441095846310700868119996012180254937512686967606420290742419671497268682261436625960416709075913226688745169731839527536733133383367169320115203795348127190075738986788297745450984048154169848644847983081046371083210393804760355293433589344710081128873765043307699767594112058255201448077290322146741779865362907473735635671102925475984153470436517214370906688296921703586473806070912474759827578989999908804599381796955263261130743990356762743040452839486337720997159216385810932652887973506215588805257498437810746240329720294209773988208162728431489883063708673505140303708510587397690083997372593316048716124548022252765238323175387428242813463446449651214464886169748510352814330237746379009210464251790650507913167316710587797482387048769111377979323019417319891327024726548022145148290368575510587531799961375683308480871684140402505267640084176770122291020106384653544814421910397436311043088708441025323277195932353747678119843451140437354345238071843638875078369039725803548062797788544398928565860003297910515939076121515970355708240664390334329865618858751686713992470286866047485493676574919306252364990660256775185730618043935309191395597238101716637345209932631987982274607449994583059611131080549507863238134750114104830871720624594008668128669793218639546361989711392016851615963688419254448511444361160014543734817166247348695820127176507837074691212844088476083370905882471720490451449876793268255778965869741376768983830730949692279551947760693493014815421730295817900076666542392808302198767007524665781136435522200266734972229023727761927856195744800147791958580913844127533958242708677426481845709525801383283344306101791601675982158834850828104320476697293161375375624756434019929971812380128973043752235036434959531916508519333292219566843529903427539678892396584707831926913332739494488624085204850667909419594901510946792404059232092501072025809466200649850041409816144376434919360914534455141600846812463465685590287509469001679685574875442433339894053432515993379262020422038244853802535614538276526516276722386511487346974965543744806426082490606666719019038483144234496639262269885841105595359478822147435872407686447805063847762347533632328657240997391102500963490362848232004781856827998050963941535531384720688197688344127836939477043779827021819763980584854898675550758698335547236788691505202100963960212058335260445877473614998536246787448386045772352321349325654313174919437272225687601102379724287858969255981312862018002324722616374548148089068775481811140288852945397991156504279616517413117865611420912317019570262776269485185319857901268025888356854851838117169204433136535557763917497832393257800286539045503024940364019246365344765196824064722090975402105076572501708854282680680913438889203185113581901587890762107852467351518774406509870121554098683990472963143528717482424913300769809245642689499554143672551333424585515576102327924643295029317273359546001488770592267615084011777158542877340739425469995056967679454978559568420052566791802036257292135948645965151316126269499298034238743167104492597215016347931103972694356879007475265902264600597246553927981466247084975990572176128167473950404749123002316551918316037998172032299045294516924720936220623145433490974449009307865515742743481255601926020101226506941797369330832354978719233233797023389022491249009276409131803915384088520306560016365222402920073727565817988646338776702953589906161737366908666418417728278047040336815320491639812057256823878357890540610349021115891722597036216969574854227519537199173136803313797577694328016645345556711255481612565228526462640008193275730850096724322025234074910857105087365488653936448496599886715732947903773127557829830034193258767285016603871818105505422002029476131697189653598288746534223124255772270790500748833758043081762826605005467539749044754862458382563018119739645816575791312341046398331045645563785394058813007262032653543631479455323856921662932463609138999958330865180431366604651502383971247955254452092001510519584301990279461665485017985553528852366864552474091372427712880921938529613307938460343748232960837133308998400260174992036311371990640257038098953087702139587530373095245665618131380229913574550216397345705949800482342723203329388639917311055796443191624057062549540098821632865698470852887292949593937420776844125429261462157570122373594168225057711795559773795458307759808715224953969533046938030527506549897735004550871512765892741010049246730558264273487011891378153647921395706873782146028707189756681639990095074983164958622620610346664071084689922811489616081526779468102437390498397556439117257892252212274603619370851889120927083341881442276366340979205163525711098690363444010629649189512311688410405113044314531978255046736753562486171634767977280952080337163380662543665396104487538185063309125387518461181552666196607310122171727900754335669712140932377374904392084069118593832717370907680358477530321812322102276881012126156488512510886804524568153894560074429718596287001575320036878994101717325925462266587038759470866919494421206081205553775111087501462589686159723223641954735465371670190307023042160822511108779719411004507897607464984625217497684077615638403873533707591815513115144141710950689084930710206969603964266724210055841993259800106104577930501831593645053914898274795006720867863096392372093473480657574022889660394507469082263871414333830501445341284698954666083340469799153345685161432864708352082676179741446213617461150152204778754576537940604304256061294645819142947549803615435617457325858979831820749911526205302373082750633691873963449034820796003054513151344634922549551225775139745695475270778742620642294535579671173356260243292596022412226134255901538268120274892385896965535060585672732203682924084248028423710183079257012820181299400740097085267755442611105871786614588673726807209230860356370179647765733790222637220327437693242898083769979484512753244494191463506034114924982751282603195003010750721699791813286636258801162623644460020856466067017162688825193357413269130602968415288009243245735629948337701187711571579106775007343357043706380514804154640749073116845205697183314102304778509941346251563763220608646322320603979134591670732579771288923031013531379826093319574145531614358879766521340773373565762952813508754030633719770606811011911254745588935264733187439973361311322009388180930596105456154535329264013481857974829526524735185850813978636786408851222998473908496682488219173757178884726709746724996226357170212110413342205277681239964873452887522703655725053128995558451016753407186557242894970652340138713635705741284726292762720754506918865889151494322137524802473232553320597376690040676134671543933100688108587502749344864653322228342090722921068200853330739904344012715328007174859000935725309345305971974446245332772308951186783167521270099958936480926702468601100617647465267565508509412533867794433529037553387976844337202936520126783574996362500873687154687567932358658671912671706177688763464880493331114420767012557120620758705715192540414922693972278893976866860550816563589654645811645708711414273785952415113499075920002885739384314308830707152687529441925293307569440170634794352874206934091733209622787134124161018396850095368335930187745657907205365817284405614296510334333178308211007842711683907595952838557256757305228190182718060399915060205220183060209455957906568426082030897764037583378762457226048464139647353595779930715784463979676211330626666811089054307300068642727272921421319430196792170506724425901617844165084993071537594531896625953560493437999008697058063129790991300445155146189943946021141044296827112012180075422242493638327033657045758901950069495227615814993806049946521211995472099762741546919680226088383820201866489129569634378504728480879040062273430379038606960956657255334099800962625576834149046235707632534740427063773384091250917534131240419090261992541200970947536389812753021230456100856645502225877564088133041345822508773266626310330400753640149677803446551463482279588536366393759167014167864031807587083653304834180309928998283661318207221505170830723531726225074030321200712360657852254533308671880244227718761274880218975372932109353670862666850214402566426493534244251596198877429704149732014236545813922920121286576577747264410269581323169146252489542564996718850236372967062539501443582632021797090825340864066183631316921710519625267375867464836305779070484575559792076513805309008494164623549404843498802310618094763768012047171821875225908716147428231310013097443965400440921141177549363102324116157808067691234233869841060147121900498296290793924894630326632121161890747026814608338824940308231317161037969716532763669967177694220674130704742507590021146026297150629560769747666051349953343726965762654904049246140997910887324756552306829765746233359438166368720082244134860733074336766042255085878789344152223146990799168567705278631651019592448280980729279711004948157107473121675606043747484829442893832942267382233398263081791193906171123364831974219443183662253839605283135528617924515831217173473570371134689719843591550289312083500583351006245340163409429685307405656681813862763822752984636345240367165538016689666106473883498862140129828993802662410656617075973891421507679929744085831126501323505012732287782820051173467523744103209922071917255092039697717574079349272039967991827841643837554255490995485226477345867351208760383284736706556214695866470216673534543199775826126098128184945566006896819204081463413827889826583456562964727183636568356670337445104433237544595531613474339683184106015754452683375366614172367068708060988444691402215255355986845676542010090625466989993504109165741945378199420409331544556938314879025649248493711910494264292966553536302912841543563193969247120063844414167567324718101664661338726638542805335812399797965609895043969189785224448408751422456016818902751938981986007499151197718930940321314072922451221051593127191876156720457462780312611436989894409281124522252559204359008477834712996591696098512010662171734115071723756011333597575144631548234738970660409106673831742875276961723362578760717510355369046469794896841854139862045017052229227271636407445793716224313240163805506221054604625588084597808782119284400380985777840436298921230833983880088583733469136265845694235695373361840468292005523484876893836325765562994639468257117952008389650375180086039131187835902697047413710075332545319161221342845417561752356416087492936197921177028551662366092495019645252914928686809876949790694284841305524754287541783842451590666539026352924070124083076470311172011320021188831771817052050607344167003153706879683885846318991598430108098135035809363796238036500334121155177842651722251501202706717355780642204350840545118615756591494258350350004861707010241180346711335758962810523427539613758798038265240716480068456287936904329867623219111194622626673010954933924116389338287694128163367575728080975285660107391381191964245766194252928660696911710278614914725753006745232502687077749109797226745843634962045555157263819956461967896449994965360411927009171384633337096526502879422464342282098430536823402602534589217726577108036324117460991671214678170928401074020806748923781288006946408812815177287009621995867572232806026241573906844206606855319337110480387741696158013587848269760331672231961436785922288496007253840894698046418088038287839332544238466362874862838588641852758656650399837907373686219376952622278212197839405882810341250888845050694965008119345007304164207690484997876188115591281240595965782810379375396968461431374749831191370694379409753264159517981557772992119512626835363339489360254078273620349697948293470679402260273925195611626124941861745367561955022115803627214563784727512752331782393534567489086186203995321926226999239650450710306125661353827570233757097638507822988736897258808723121599907966983667323464079485188936495191666271931552241693833184568058201625752131494403190907865058923129475793934840205843727331014693022596174780555252951956663395985558531448601612015768770516803839216642842208532732178470259220861713893924085207404817754739599946194740302103764936487561616079661171407269654781206335574120444099265099794803976119713044810645981447096926350957260942435996896367134551631412162893705242430438475925088269204112189068859865893295645843353887539863863631404010023130290391572428675660544703351439469866862425286176463633970221253062381745486215046752923241726733287719984570555634786323493243811426530609610736266188103774186563862529722975872375498090279868742629690219866743770665008902853471891071506911394668377842512469306631746893803977861168950751221141743780211999797915067968707187367770414528592306258472980697662552777784629797337170646453906389346585506732907134990686331452954834081057721275312949492102050378321658920153329872179539462323892194701693127517293638939958984546350651929696040172856941509299428266643456124216955020116299150375948817530449528373154286530362231314829072811481279829526606066497924416798786645066627103741515427470576910850722421885592462867665272295736887744996402996501462343931691654674002031319121065854884489191066964514441003218288880376329690704898885132857723855810300674436025612399293129317421145843225537824166334511544252368581265904043272738506257073621509468378424420388322597583062992358818175558188633092990807921098154950801813718205181669118025737103267084028690146600732917455507071564601760295589747580467882693595658606666497903824242385143090228821155267132891284038353100184041720640107700799447821661617010159104333579907567757407321218006787376730301809041694160477775260992591805829949386568198532740385123126167622158057136242237479851112349517681755192904998179451609725177300563251964963106477522715322490408068964324688604183078995378926641476954264602286907946700780162747436449551311504553623979487683373332745783044989116956028407901053007481909153218448441768261254291319312004092847747157496399768577008846247710698231975795617732265401366754202626882334701923212628773362434706596239196357551674235474252768862560980842392146850451398107502281403714230397154939542426160314453445705256383931808976425891453009669498105155159015265457802058251170290931628165011057969991092393868624882297343263516375294860480396195674623976206250739446875644615306947170493909569126288570379497413582994520730066387893020100982066188125001809141623623856666158806878859467790521696078491517276577952879606400083143234828214342652794898248020050649299035939627154154765601103405479042548138452370628846347164064638961062971048816446232524160504381602155566066611624182223906180724006327602307103162384956512488075255610878753591279381825101585617791632831393560719141100217344631427370311035289235336259821401687920345143911375035935673149392922149047868449114618253951453521054720356743472790503225544134225637446392239786220271565569268337674323241015999417345267613512792769147902178970423749843537815424931768219302590671165028649954774217271424267648190800725418628601116254161149419491172830158434509039707301789543174567853190367444876483677807462403479302878916141274997395110782669060172703685702692814716453347144870483660796038924021136743230932987950795791909711993955236653903819483208638232514678704827393206220177115019805906330926973277267382031066963061973627637841881549725775534942912154983384617774744099596939502339732162613329231328460660118500283061809469564126074681365898462547848822406644187890336750616379913240251084259058412776291604087783956776342050554363085847390779314571903071960285090211332877608050304275131215269265079830358279827886281466964376288098473182623672305721495013613784744301657538282469084975520043595975117108172863981082763946140420241110339303339101540247155529944600942668002702463066072311887425647811919564408942746407179104125701937371451865178516548941738015234574326931797891919785589987326527006214134054416914082567134417462286289007202139751901577954058898628838640122143010904912657657717431299313990435523059877800953314900343202490768772849132286355376089804845391953399271436571090809618246457627001998350326669318719393473702209789775357234373069777312525673080961813871466540561285478106705001103002016969741060740651040274577149701080306852186301062333069332497619751873700423236507844168526525509183367811241145444113637113890184182021385867402539221509471771261492035225663727914845496608272983568260691095269738855014049353630311956460348138279497969261964029680661090755508350039732020144959461774298076372343967480623516749707332791616679834434283279580022939814959413767323719534965204181094926542678559926862593877133307870884427908772014750809614065298427500987547572054436575229506596421155380752128691156910733085089987437257318615764456645768929706528448588178298125273190950966175662147478620180488184465483180224770466414486356383428732279236829632616198982523809074942039807701677291502570546777452502705174171754503153976630144171589908188015543958131014421303627025612456827430806839427278561443683279594441600247674774155765317626474885953481131096967325465268719296342109593258995820047807604989829887743054089287531671576448502339758566523758310353954194032575441832500886838529718272757307320401872825827123250784492374323143401030568304166278859451514148828247310080669095166020722185963293172914455159540329110128086181770796493849565813624781078960073926132171254217238202181985119607612339998214006811313569304010683989042011271998854901120906290777317965022966777758119598735251167442244920707423376356937989515673397000104064119315987578057179246677853190195419698068726856932415193837453062203537103861729628608972454033984367636842804650821132261777997785295832842994127067512027769107027410412226693199880087586970451143322140296414999734653498249354060015373957198764308518593279105468453039323233147852442338901001503926143786198106118219641853268278292347964973462049807666823011956819689266292789322850057183533472724186590521189956200973888921065316729741659588926402282669938069633445228096967651721888173293097912532090279732060420504291838225257308812223891391295727583997713862749152866948864531754510252548279368709115335364368361188992846129285536861344112369879877508797279093123586098417307017385599527653460448330752614618008623059161700910493723084003112803264040364750499803155717984455083069738299183212443077671303036527808975606001373905274036050590480041063904993495096047728090834260360587161849069728606350927927297028991531368802021816780616428802976817985584058005661972298070866030585307792500693055609080024205776424194400953072854436722254609044067895625649743058334677296581384015688448807656370996437038904232608252824717804601998334010308292267340809292931411676460804115829352173337025987748487891146637599901412788596146975128399954843972077365719961626896668737563786560966557301810377698164580143001730726280959016674317095536167153992679758807927968485298745395553627855910054298704084930637549403577247334150546730183695656243786779958409769795375334251096765805912800303093360410195635111446361647084934017825361736341627817908583392614731175289445753044775554742929018060006483861697353627305499156162460934091134938345480685141010210183654932132839603658149704055432494669439969435027576953256713675055659269783961524848020747266695496195661548348140818097933249999235602216400970871749074111604178498112560228755440143760954261881157621868353011295306485441601410171462687269671942075079034283583557583972070407565440113649345803631059133515563519345650100330982716492943522490411042460402949873229486226220614360960218293288061631148300888745604542601485171203070963378936720856199836543218421373109132189618419877224692557633988846871055642979264858103618788264106367141169713754555941021611093069496986930150769675354620225061640431952230899821093989506898805754884473804795168867040235251475682013333255004862137206698515734860111236582868588982783642565041676817410783544020361439515600333181845383020982889446176711578403875049347886408200646932652589339559475050077969949378225325232770405822161788738629849993158336606178958305611294447204432298375131098141062257119496267415243197833135260728132240194137461329021732759373740815723846703960924174828733069794047968163593126434688051538802485267148870253483925679557359062212057659306299666360805612600879602044206097906755936543373192168810514715190916017121632539085722706370747344323934864896169365821414307101681447895057860537893217027551761605733705088868650226234375975841252182965134419899549452884120670261823933831222401218344964652600142633735168888234568742929788853222615581259189370374870899348333727134028640910269145737863457405086957970347416034497706584018470856689571539107561492837132711834957014319852360119370410321216743258103803930570414477604452075572825343457956453439400533248219220309252046113033656972676903795010343270687524157995664265936252359262527013910541928120920390741693859745280843839199958347432890476295018127699637646416340155442539063204763681889245864125902887171066526769633433944950760593126446294621337039752933097244638768221676606523141521565395821742885472958756653240974160217333824664150239624760098209023145459659257850507318667035560493842498105335868807387696640084707120970965829835616973994661065947540439170720246514254547938532920365718213954086513713743710534355283802364339151552935757582629956469799107308629134747698068798723959169951542638472223734385772108107802515506321320572073718496058438075694131203699709157405616979696079898346763409106151440579705656494485719706911864279773244944916316621589349278226120359244631899706042119479373789414779562658520591271165863992100309745589717450143619276060200754587090523408851615903650415366681546848375623201684033214572151789201618970475451377109347161882115099130019281221969268878223699413397100841607329877084718258765263960590366205676501578081283290270637409345171799947544926837851649993333381352304167843086700277510665808005656540763465970689535546917241121178383338959216423300517852913589389854578998946186736123018252925340468895938770269202537821859564637065481525361058808723949455711877056993691733868353829004715197386364060120707510310892696935879929151743309737998746339792956268370354822156760338421514434080324391765454087120980105486025260746134096954248180228127017676141492112700482728181796905326525378532289736363357023678441960806302045613282825767765164360962081437158156931357913118533843558297419835782059459418665164851047246619865270881592462853960546342631268979656797063153963702659441788871031798594814174455169265002262936816821545354055885021228150864073998973175950403449921344560556454699933635323302341860344723961054418218352351170334694430059176207760035422698308303568001743895336717801458561777629040929222566032515283615737548476530503410108243778487429581553012663237801866281082300343197400817924734889931752371211759447377930642291874585808184407488579577648028785480757728306441092547576035703713898462670287370574146083858824815636497207287425591600139028215294152939818572837035980234424698767953289366926052312990137572972963129890833319164463600339070479676437938429136078432373037000561114182997121017381428870884392630992021117233647438500266995541443416610743896095215640882749039260886395076491613113678852639262668038198469459928904580144567634165082550624983557924933842767915877174735496134068853313912780119573807538972128163780153866145407736785398513693895335025358731881081703277039636234909754577510719220977763338166983707760613382421472201704211333504982511530339306279580787056279085135804538856831157319313159338547236736984838939489149393493738220529333837594037677603509788416877357912865771326855874142054708311176214604863848841663789186263678271373712478154923129235836522140502192929228037067427390818926308182940264554267953416703771308005395471465527635066996556000306209994057090118580609489510738382555199021468959703425307198596346086008744161654674872058956315226617946874418550408719076579570019942697516263932948508045567497284473737039876309091410483445612800234442701173089802132352105392377433299034605648913969549195120746860737501259184952237778745226756969884649558541801954484625674445204552469695272704873213415639952467849448200146183686820606818446977574622700650028869673978575589112713748350518640895903962782123929597023670950227192280538561873684912232483837084150304738751496077176607650050751583697938477442371778766086560327127792547022003990334623809882507237695728307878524620809331256261955050910075069233472062276910975489199515262521330264010955549070056676625538930497345182201545992011677490179113540583487841775869732378950775482529905443115600620253274216352689369761956703819194825421689026186856705330385554196195686259138991398561704696281855827217703851874688011867813641350599655955980954291289781557852116939180771095091670021657619169677184833763664011261081118769775308531291439404375749914311357164218349993554217295258085580988812015435049079218930934566543781502813896049209276725459127817063135729319375028309051466486489502355525990931366598642649959566635929024113269564031593057329243439101217573383079441221367291452657727633606568266760522743425263626417808818658399763047620928571915141202370200976567112063170691121905551882789818006840647284960706609216217603581632517787940496812031194862202044851297322373431649500263737979042686984406810978135658521608473494251336100373066170626675988075170903052746088444598092307973202260775200534812065676595223035531007014365269689887787579555218456099674206779543873338148047889614461901451554539954406643145531664905393518038588000883392976082029608129199503405585060764220015237500803873834099424185415368589357235465756910441592683449811830781279140519582281494470886530571533048355160700231203389893259757275074160873437998184808142053510587022109144215354757856579857118603063319967023123875211768440131643731972106529506059805111747974346681337457742682030402160851693590747928708774487090170159895221018924141650527742677590489090143582587840468501856081920197153318689495075532555419077336648632203570015075882734091248071367756774570839187749263847255331595853535378551621316012790781247273505696566627071264950871555904364054948804556105171017518728623423372862945990223418171686579333092922320828200521402912761827200484968616633158623934926053069073563470409725259729234881914066605128071704281510979593389144940966373462175941218285937860745673634400029862680408947467201698525204345608494326431737500396943879043611841598019759375818172574407431233414185734374355951770496721185362330972891558970026320989790965479307671855857192904554804654683191744798650403462880585450183138794389321705388219435846919058214544694075873004174066425147848237635545250732174811963686288267980516275577124719940598653184933386516690287667424526953281976606988899998158240848149555538678762786039543056010114206424364094689953124235972369008752954681990714701440337486440423355604066182362795322334347397385677734192092531819507823953126399598966799697466115058684523679879254654857414935211369218245581365614376418012806651261562631800616343939818986817702364077574891723462490327657386783088266217434526875184139119460802094869203895285004870360177368717844297938634902977799242894337738942158942667842113290630465745356177766591217386456192955767283777040075755696080966173009691787452200953085404118821224308657610803748316026441171472243189078008060802389930367440881327873619512651106959699727910299355942955509897166540225268547032843656482663881761098456725488501377524103979141906904520178834343793260330380268018078721716384110291997781093506338722302549587166361396362252510054462047532092032689595739690380620837549298274749868306919712728828733469711819971181817347042740026369251190000357763556254729918477652527583610867521513767462654653974751986860123087723818929128320062699666144538766932265900295490893034020254209511345016297356607547450387771066288156512896358324116342858880323440356142945949419742608940453850111369838275608178786498971742429243058668744558937571409722962497853059348623049452108925011179170511537382305685553748960406942835526858007920148354536216343205831700996812141103918338557783520077395214143945570952338770001039351511437977476992684638452735463278612485903425075824408267050779604301780471918638543408960838009593044003134669245287050081395829450914334243664548643458411229698065921773966237667378761515478870480087313853516979311775364745959012612457177956466750229574896407259176575001386314574752943573503988030569057703987866496030709503537719696258752014024825703886035389818998362527784967132909417176427611963198868386610245304612806766733696710630111958989674542160186938700909275701586337250435146674490812768106979243398505727758996599361581893521073687902910335873785601967308670829224060844387232803084489140943921566215193492467796632627302564956874270784764353476731250068308627126487282732822956899280147717301805299848258768608702909010051496216188848801791143085748836985622881409991692924840683515436769401628462836846439432082732474205911627673572976398326198048350953106744121106973891262678310049146871303637683692580151699690524747156505093040906535990287355864115953733209867333938987477044265425715892836347517723252541583506432965407495981595028668219507946554258800250022930473104484115969286139295292097791867814467087478835846719249085648668424224829798245898748055274447706296101426345361504381838073723544710833603452228125397758690401844592043177918229489703086579969916060267808069189828305212968450233815048330085306700780093895423310793988844585861105454047726979222609096891437293162410039186818291338101276278895472173755561324339886870488471645776900502456551771343651852981938073520511965922884040667882440439008889988416333407567818584190699486541211789879346512092944575375381134285320462927010433945036446186083621224167104820865832191119634882939964732599657198415659185850236022375373899332484915771077530419330859761430713748181379410228546503219315234093240383094792238805153536512171962559455249481525441430611590912527504101630200968584515943473764684935428659719626340995074540768428141427960019983120840041567971361779456585516346394655830060305468611754657158123774252934675523951879745221314400937420530137530007424627790976266750173632223879457769866581947493298466137451315298726319107279675731305085423980550668504881940130350212285864070691459543422808276737113608611643814866053304536420454119013893017265739639958522838443095768393817184571636356930105232844768467935864687778373103676414418304985349128409549432286979733289606609541802547341628299013120771218661066219852853936449569449833725584332410208879386742093171205622735761288508139208775282679283474815156304589388493553108046589607147115002753562876336893152018029847672085641001222083265808305473451286457190061449103031410461680094320281745835089773388697481421183628031367352926438698818903401511382589574667681326734619605634495789940481388955866273939307810088191227265656210025499295405635790714052657831860302939231202671737030311271273092258568662254691685810195054718797782401882747684585710282251577427622951544783823015343203112081606590156414441692181056113871326045516124416689637896950349047959130934761999675149261282064289353079364580080337985939179420367751935995263455975646005795831586459363190795954152064122604873201073212444842953277254966086623667156366566327947955914398125403820514499996021710667549803083568906551420661339817884477224453577390467672012716188046147658226989627780428324770971910808874883001965144474765492242129132235711659258620519805103257909513417118802498445364755120051563985474047478153277366351351766089487535863259898117516739973674159147506954763982635384790300979700858624906229702658595243273283854605306095951585835009086664301732741427487836173642275434213094662898252925150845828652863061958666774122344918406682060900578438026375710241465424067307429497664876879572490222510620483930523472425852497927909972276256515929074709402420974167432419513526160149907048000230244049068414399542855274351693362599439858267352149077589633275057696464727726310365882739963849028554568395837460153379767072772172585935380668382990700725563448022747854411027946882653872653124698412153908866101400666113949840162044645480342644933332721360203909616864954744740184011464615940226418877640314561971706606663933186967417804136687175464242521866951709918535022888752327395354927949637186560511597106503879613812858560148692544230278249622432149519647126770008117204374244124620329515191907057618334307441678080845524982970155434623821679429700161555072489355282772118204379213574610149204981006659370092146868849504952928273783921854558712863167327267093281012561322629237349036692195085843240376269552436070811736648649188545418063383519855348006078203500432390598132305669207713012547150338635884468681108980425105174967561529338557193561937206549569486999621600784145814035491654480971533760547946826167096523225582977977173601749747692039703450285242777496206984170302965638664753517320302193721009166467737523095656869747253571197145239188128532038288166814991728853390010593647785015144377013858444338675286045669316038290845841359416825213538832976816150940393242838501750360873719975014417557716260803314069782281006890598072474344593134823115921601168041539335855338848727298345379371488849166912996911672028767087590413461802004798042194802480153944253053381962341853904580402135684454111060274911911490887715814409750872665403123820427881262543301367556899046273468406728531725314700642828528096893900186514055635917009781158796368530936055813953301254382452751002135926579902221664064763170046564454663237736845756510142036928181662959071815012104481998088625370564783700211589206164224500816328833949919757162049736324127625331017235958740411815076449423839069825111059087767996028469100151263121400569568747045338989127946180996498741049231986118152745082360061620214452059841631455588958561834088839527712108677024760822539974938604169508488640130763391715897951974715464601831697964784909473940636419697710582667771695302167523536258202081655859094623827327894430009239904242604953635525463930975677750744300309123709165211551204457981455863902947074965894143442482601793296050018641463265446304836130944031335475108060391776753650768266827687838900820008102978530690182069728102691498306373574299538800984482360297331258570871886540463217457872972874273703732180396925096538717998299621042922270151469559187667094607258245374204146239713591247866034824296950576273839057519597090620209296001404981918459244994815552115659153887012208256968232624016653825320158872720367373386818066980230137187279532968209230624959699668875681989264477676621288147033065269207999632888334796444917805412898291641755352586693159716644303690654872681406614564799658993998489635859680232524054456003120078178634004455501195900966873778394203973767325957464491749601119653123439860184901883372467591616501515112327207426411707845394327300258267924364059686681416772626572221194317242376521799577705940304762487392325869390075686570456294951096228745597025024642380710462774331371826487586269392465084263060680403563394725696775098492669622635961708353014282873371647274138913809366681076594679811594821567463066484127056881356573549087235055499784132643331951690154386845079332367208840996679762434482549544376654962410520691708299855341970395193740937963929462561462238284060169625819701679263345746284039054231682741981756900651529992972571933971061982304628937782237847760960660713773662567662494960372920460259116422569182983166821789505323956696159257662502493660963307931208610349889832112870745888875313131982853735385999761516045264565642907058166690278345634178116847271859167286950725678606610898823266928187434984240445992448434865299590796527411416365814518695661333781546951387876598729994176726701463330661489196986661843391388078995315540177968975897829430491804601851259697794826669418600534196572827853443180240734420299173269356855976682214828435945988618966811509209310804076196719350274975227293314128296023243513631353532968392408667121982270207571849325665733982568298204584089042571248608833440713758602959679990802734405439865782596982701680573679209814042954431482740220346615316783241138765822942662887010171479919240733562542203489655799514026790141741733090163800819752398615434443526164577559148490494593853850105101198376025456621462631196112020890142431645478424803490845567081533154837771817407947373996056144184635942794266862743004281996529990401014704896156826987252772377730938932232693202046706522335992258454471516414387248113197587309556151868305818063876667811704464251824824447407361442855868109385407028400451025942557776351782508404588994699154472353524574502262740608666779356070795913260626211716002672055894336787243226676110689576214027674191283306521018959009444407863339447092890936861852360993875490221066122763170652118932036696604974230654871796404675620548615614118831345859980707532342454636079841488606530431219145020713333528367276696217415153492564275728808758728304081282125485860588606220394916278601813125339288463824646237421345435325724791158909791044910935043858245268885165012343636110925822838538703006774504727506684866822102716990437780014717090890535160026442766697360744973069170159695877421455828872664148272944546295792432245997951062383165887366923799383780947280182112910755915195022043428558981255848808046815454816744219879045090507395849528005948272887077410661591176948035605106237982260697575716196295856613695948859169694596337013728119067255140541160751944706208358238995664008524661843641435117870439339986419584078018187726442305601769357354055075221963980040698789251010070832802438348616115804693511548368584432787755344302405204839304648149238399050456814079984110480271268028313788609229764087772310104250639820898678316363273380379346489968749436323033266702352020487459749070833466924227234400872777686514019273247706075203549587843209409939991677773435264643119567044125149746804949973522177191956970235121364337577671961668462015267792045856683094916744508072037662402518798949453595646214783422396878631465920143757522242392321578652560097779472546898050814410937942184344450856184267661197085570595170469688255051194285193509635426947594478881682472927355318833255509386345730162872333063354269250882335452218795028257178480183817007041874148428985032254015620995001808742132817399855083829504166424289111405811079761478814369086032166413248086652948608232993241278165368487056490893812436297099201170421580910250986757903320791377348165206214436512636803649143896790050610437724134306379881402673554901215937695215759240449150450654347572055446674651352532190316537363359851076855172395072190894396308167409429891427606883497812644169200972829123608039457349757820923402408799334743082850006853512782297710906227055277033303049295735760852441625316816845439986055105465844914906405740052295927678172386581995973729719714027733202464146862982462151588282217792086218674586571406554820992696447920448598780055258534511310228176080770197783187935424281517036262311240593663779062245174770234527853025534537596665294380756208617676282340528828334692726737494658127899106004350931438161706316351378945693511197092602423799248119585170002004290068230728014250800387915644398146815467074963751736832064187311919043275627420449141088457083043891366411148543987614111985223565809361440774330056874740994901223752395830214218655311655710683752323921694018212604426768735612430457450564430837071424487434261470302535546456741919498070102875249547323379332429685494395274748974178530952458000907409968840515940442321120426364020859060685242798125444584350483231651371867662458588792779598149346821979694992627836874580545352976226568823922831683593178640595128083117574994051692658586969386412519100169723929401543701859905402721070914107964597918731481052085407431679776976285004557709058605337059506125167943005838743778085023011939526976924733468061962698394034707559395168612007063525887128265036585340902252377266683195342341369190798153961862881763348362701021798318115319061784978037312118134254556172403656638037196042629021775388450329667195260880428551665141146394090781156401822296065499716894605128926563525421256210469787120947630471567534351965537096488621553448587676298514533586173797643359208469331592906646439624442624789112260502021366929477712844360086151308147320103310381820846204152952860193731088553176764522397344790828143195168129739255604226825419138394972632342610494194769202265705796096034678211235938885648047845465961980188347309029166438940926330788908244538717502238891613196214001380363985465647245352262587974943234508515251716744521309164377947939973273519788433870436182668635396847146628574910527425363299419169192045875962343731746095367992438450409228179334244694687606177550393957209391517962901366253910766448666357062985332417989214031247102079467017002608081637153976942936868757986618972232443844018725042471534193464866719202252846370871202925570422249373200823539154476054755323176770420729136491064524685080101328635149258420575037448865724135941594783007626699973651469863983357999084672233682284034276347240162528793948668720298300889174074750625536849153820478233896067506820128436733813098898861883320039718736700826319349528633455978853053505862285845772944664252389663141846544087835983656731880140993951293928480395377845986695898666232148497911257723800199721684865330903235966986794050750829843147811222837483131800434422180526771760167218959829072522595782425555832443824309546075745728234841787218857225764826237400021263936214431201800369886837221971069751059191610825079932551902453823377187509958592542889171469235346086812946484679473774023307840536856970856646135810376684663120069069136505535384070697971858782327456046360573553171436319231211686947171049152638812019128378815945728168573556515392754860341934041661224439150955382358470268367164472138926024066886085529351246670755701052024754022822646954900497217811871225223680385494674260053044673520406474729043498766093736988208767526481278549173278600784064356037368910604144042814528651657109002829676372622618826649281962793793243069670786348596998960584629556230188111238866938072307679462466823561910521310550219686128161258591728192609210129840526644979573515264149711603145389799154058048764981325540028817729187383052082020634304757265419346908717662570060947327093367713993495870078381526722275552217344279355602605976363813638934417582765184228752578466961406245472272549078740949599071376572099929153778134260284672329122188172571208398632017182865989751880068971207817638050921482732286090034837924895388459123218638452122038455703781123534211754058645178130793363305786431684595590976775316177606768624929352752499006434175057123458155374469669758008263554258508724527020924688061669491798999947810922923173439442116798435429436294247268507742753784855578577440646692380399081529661451555065784002041419397728845384041267323876021024065813668370303998756008728611618760509448972142631113438018337354094142144027445522211843581130901526938459879343613204890261530232283004386451324422200923660117940383868057380849208001318486379769416061939087818957221584340924037896020272057848988380930053903135435332807685785822566435852654024763049338437499381642174794233839687653219489300046631628028119653967662323036175026902070343705848077664693668211019199251032924593268464990229202132749365435681078574158217606517302004606384847857445895106060981878847633435544506491077920337884477334341891354479646425254631645405964875638688359556837404728452434729524122369510344021654580490446662897379832593114075777224536937705872341172755539982889579629238478410883769851082889629610650480417778703455553715461482220222828601831999920056952028545087929004539187002575633583721141167928716075821652661850875932537432824537987354021000944221562369078090668698674669261913705048852623543757344241746955690195853630499082230523994632359080485704403032038898226640564903165439435343715883681329228254648017403002280121033105025895627446002297713816244294308625644215408587671160800433683511235801396152424530520241541493260458690495789275349622638439768211211575528393066946731231294595676848106213562359335634630607281945764714561205264498969707958641980609716310818903781880360258458140673593502303055567295760348537670296137428845549440378742226755544467798433868385148006224318323964016410237471895905159067650069573876700922639853527438788983403097948819628047110637912642004852918987740771302721837278739620996639386320068679153366700314202904439067019130365184829572923374720334043691142435868475389704356524394107071171027702100843206254489988783311249292576630112682951041192759233378238430184719915074394684412703612137759802317506112376150080926065607979756767450574182788238729033609818470593056860340988354928029443077438895992064661919626294039599742703789222295270615876139359542636595496708058671821082077979178946639883976848051547490759098381786145577657227249809329326707288370299837546675236036955047482622901009102493020909295725563381371891555893009492736458505471852371430510076942111313233041070091727420794662231858108686214869351833988467164905361407385318325086936892820356422965697527848328049443090914555359021630499553103419782693713887630580588120201472291103187397238776076416740870670326047476815008992691525213568053401257559476488024510613532795112442248184738158717150484082788470598835462229552557685356934973287484486495425790656563743975504708944648626902675590233631159449888254692717781469298156069374001229645302138744496563310849117925901270584724882961679118713452816770841004625549367999862548966181826653568778714062018486678748706360078109006418907507441911026997431521548852304084184351760130799809860516202366830618498819221823456518032467182918743434994718787832323838103057841125594753397526432513484550011534275426213248436976431397518571676606197542465870858238449225846922938826463409213768397872995996419968277614840184825558069275955324979423424103520080747148854204398705092674895448563050492275451694454365204940872890764813531294448442292339415158346298636611077407809712127056582928532290154780843564868017268920261000673756221642266871249205992619491734961006300888293096636642468401336252635745757537327420722197481156716633569996671932178062694174770138595133596947306647503171404474235764190472614157292838739437300065970074869523192623154120475180973346214606393181758967327585077793169145031068526977383298003146909297721605291150292669385964142741769770003631188255724570542876958735542317254094327886240493016078285349788268424326940275683422725818276099689335761480292560632519046240273374136670492004862332079438129957319698861479624546648481142674199814592383449723386169742672745528393720760041184547420819779902071758033882271750905622234796247379985375934867426548670513538460960429892012173247172994478572077510163390916147705943842018538778740423913357861499157521719062005016508755112189426581056942433404736738537792457095162615765415535369387390125682221752009834429382350801847466894873559454263108799234832151941869674601634854207665263609619051660506444847468928075813341531962444603765961858483798591383074895995843274632665769129082252086318794325882840163932170960927538783569971406684995322832921771734688659380112572351544778768018184898309979399257476245496066445833225190150222048587736092395415551261705786173776175701937831065593330324937978011541848815825907205141023820647160107383892941176077928307263504206061358955192899015999851101355171476085406368036062017129688291322630624807715888687548041525822929746753804684468505994280571409982227561001136526419371142550519864854236097812209956924132897784103308341855342127506288691456881479276210368746045162378659534812039204532316708898942512602880067954881621626344073189502749770453058418410067896170153349439812422468430180618028668368865478409689928511503573756104683667372720424634956081649124692985167508685608847352022551078276056693159352943370308194311790683436639913432716045849966716055775600893888173939911727120698669797958510098591584784347908787039092184283671710943765223121750504112632652517418018648939946066715459179137660792017563170660999017510662215349414024388409620464692254863106292969243000550010100238509377233665526993042885677430807973064537583963432255442377277513165758459875910399197467231506592767795842272397251963604143995841218777383426362147704537013419725676481321153153381969463230890689494368787590863779829617091168019078880208964597994222845208049773968470107830360236291487665889467623479386187318290423718221563375427378684278785765032996865106861852200940314330853683371545491116869511308815520848315240274093245236006471016306650801450603742760061143453095562677111896285874490843215820237919889386169642237490693476665183657984684332060388414450580179016239643146391637291752338513787496399320527120318451525184526460142429629617333402568200211496777401703275113949118024817979570947834629794897527028508316380678699462493877872569700177342159186928445114924648690630821989066205037753874750141728712227301542282063769971432914774038332254573003230839173931224428381292663541580848136262822124245792295863953405645225075957426545773097896243357495140603009921043867043118247402611265402361150662473477015690808980189598228497103071344281036120930832426846899487938708813124530715619804208117127601653796831490712186691047031550966810695038553185187362239710792647245829770643127171494176932824526473565102545216924431611086894306620451905104299475151480268072424751656611392850324054404963405746095538470362724293272231917903136592049300072485091522979597234114131401615579763987579636945414447661477290225953417395074327022391330314281639273582843687806651812762298804355232773106459308002155148724039629461927599623894195439050116310600644865280730031230680246196209906093601271466354279200479255699201945487968018835217161243474537037821186778356002000826761731393828215398508496055863969783342999424876725157473002251919570100195254189766882057140141026927950014586591925968261867362343096966177753620285563198776199680923827770385347701604255134981974185218791413531592480347324609752371554165676730164059438413418447755260410652756848127768601805085354799786535214359934207577066949361546723343742285619831196207458715357050809036718317664936121701004678188150920812347554774387326176566208631123785840418298753492342603213509600933315932717704542925747103995362910926852634543168473680329844541749281362916342044352274129988146683804629263312692774772294994595230171064251423115120065773456781719189606991291242391812022465441372362662143339709835822509625374833051176454134670150746357304691543563279040637595815977844260415057424870745799489968347463616743194748238198186622115787076899488543154711172363009482554888606068184074290576104098530024158480555212730785005185744759660548332094675635787504333406823439097918742700972199336094246349922562799645920870266036021626480771413007414404522468708304340981718965009635491878838864536893129436775909032526600765109646265571224598940586022488847155419025854536062761106010129101135295200060027693976161747833237305118793119600598735099218655085685360844914244547001223101042424525893795873473074859610872292720897401408586647817898417347006550806158102380496434432019603929602708939448992606634857563239269185513706276769562802725832645242523019790056966318628054973017312120994953065158032490039602662755380249438169079740784422722637264940420919407672286020280069003070608463555257983811913243835830574203845487965196338363404438360999384224844308902023028547205173854180142273312107631582025125001863245100150963869032784049015677830990601564768255965859823171917550963837040998354520795567274293121215412058765570072366419950851705189900652462327619674655943897334958592562012875701311204963898862447292674862766742580587013358292589166527335579327594248120370771109102632849853401135146824981982218183241479079982699531303241074439054660375375186332112549985598471063305155804624882094369126111947049960060674775090477886080012280238894570079607033298662929890902596031924648772797624638673766200218485836341971247101849156423213201139835274922541032267240621662162719638204971104999818100726267330740464484656653318437819368290434831421194482310929245741737690438931824903543800257831264052153616772296244759789353779603400476299447810035572295201190317766340259852587166277559692701409226290144175787692204326122230089133267807330308685629964131951467546801232299741482334980519576578764871373990217858336154804357145867030890489986041287477336205675731312185694394097562767081714883358519769484566786310503115919689108161014665124610992533800769490375963360912202635928052063411641373718135698786070328219049127233141122475782282570771403398283479152859652893591815667655290195887687280529054263154271892287866753766609082583542658727501670293931218012859925712246201306500101531388101158314665906032626219685306062570287683822085601724048225264230347144489997611531431947963798296540857464677452818660871594160432163810911279387992823705938654793323858575305059923704429703074094558301222984731149292736597417538692271103165739333206063535641239861596915726953963730406070952427083230093033953843182967333430508343682109644211518123461766308739428123357911033279506794387139432865099150129147496644906193403799752102735642378638922116664363755722879161740362882360119715288535993442472009340004967162948162910575303626796612936412969656182501972014358562672409823643664361143457149763744414506951855001911155908055057634211386905007960696931330641939897199303060337641658832294351574260924918790596559959921880027204613483167457068134326679164838306791160121797919915552256069610276178840884945909318212970012759802850977083616421131769727638367929865377806716263452405801767956709300093645227361954931979895829484463816111240892307234064762281205314674584567140376163980601334260864573916099284343130295633346198263195028377985957935370235715330887173007646659268942015192015063807828655151314435560548702826534501031813001043283983939409348046223145993309945433046932966151524054834288423523051080963323156167518265533448387562871689025981827273392256731792510729371331847705204692323673080600606027545718844392794520279526994191440949475597348409466414537186915810548503780833999468269612456948780238204286022086079726802786556598197258777761029876498051984949289915616728204449635378580254726631699513962296522067066951112597034503018119711135365649965185555621322725178210346468730959037204469456023624015980819409612492126898930531261871073740010353725174725600038059457082488207185228831126796211103081970869298241659631170739214468875177028229794363194067670679404383628635758088540914630624929828313149030181570367249974247664518258639290169656919241478718822954788054266250787702271747173163896306802184588806562735193888464621259748931537771568862932267198173118064897006830776507942806046229334030967603685931323492320941289456727870430547835237340372125711843010517031057146085919329445290825327012166814866765421297388513039518983741608262469381260430411652277579502931270744810188714007867091604393403876704557175438580891679494647555020413939683313010204394844395272149796182659567278694406252518088766645948864710901361441877604837853958217371742708384328437141408326896360817169943732898668950132552156086493336991483853948601329950432304865037118940042232791365538601613578646487706422355845468918160482001912885015611764792757205913040507405900213153089357110029037883386937256599783460516160734487076896870639041960023538965149482463273465521546909559488232524944216014205486865272483704337136592285817176713426504941766176889883123563677055032826405820670687208821771532289239285838983929351161575401249172971495879739588613628620121034864364887022994723922140540691874046093012471864357602972547408000038105448134117008187701532908152538732168698676300959215899945242975080279205498045873290562014164900587082274844335149509968427382172660356310566389407003610578272816987439836733731231425403975937982596132828936909075410661043896549716961595543257785927033669013521310285827140759864757611710464426135542777970166917440549969112090132214023272471528101674531022016083609471191316054757109600514827709798737700749928243516859822190172805470295122716573924504666200356712537154243535858083537027863869763066511204986784162836551060882106973236088561576960598960557191604330884070944935482409834938877968282662854902812396766282630813279680629004895162529968862357261226511740399031139684089198525861913574165720446708298623745213138032474834346340631016807941685653673370090673837374343276662032596330368541146610950429796182535898744735151153604281626759556774572759575344647041255735443628681930622741289363730748875012295557787496942279440964765826941798614656057740954022350714132844385122268303709442484791999239570848999872531071069485847038159655746535901324192498036806727013970375549786356043695465961426491263357076654405162797996767874817469361896924057377881894117009129977998771588593245893653313241337602238642745352863684023855339918635530253675940872511185378095046773197829144822820627115040555844740408767396571269805384103650558704801645994240053142650700211756937616181840173967348495831850758279695344783521515725557810045697475803895876136223309278809111384794033475107899986416669775088172857735685249147150153357677181671361361826212940924669362752170594213574177538849662441364739336528371932201130866822499316163188109467549626708086111704074457342223042919785372427170534845682458951802350241398967880817549158957643672786411043563984862665631496654465995074522710018979153606753780651720604109956270518689546080504178322285201529350672201264815781308346868290269211552937861085154997032519870174900316160758736809564367689548011713294429397542305717931380331125788073905107013869752659540960777795178934833774117410004720355683475080767698719363980030889358120288518801551865633363657055353822192025558501141902450626720434088926348320770070731402287048053523237543937954999740678315375911549729441613966278766403201235414651274510117883611022231126083809721193130541117517967787799378778369686695986391147954838877199566273215864468323084766550600954005923801127828349771773383300056745565223574117294488028633136218939244467552459110255547425209200481773865408105174831889688732851230437570025767437163335505461663329857504906257742559875620179455603788652290570437316875668651314808278409324978944578359555568664835550953254612071768216131741243011191173065850374796760106118130642321424720759201676506512459221785770848246408953487922797464771421705692433957531573473299098779052598560426026553133607240361010487162619672946385956865472602586374641839294172002467108713539328863514996137082234646525177107312289518768171918743871736672115278675020936955487364857464990769460848062858211261520079458188965196470601803532815920929781242439132326824388809413400250840978335427443373167554200415510191324800223491578009577726896665147104450139035435112329332123730676807691200263469991741288622130736801946730464020456163679810225130889640854917245350380123148649244126005289825651861518111930999590496106633937135759432902621496952727314177747380138461011765898582041242206482931790943060955647050583357018082302919892092540667458951898542149738788619869269212353364351808218233882493754297430419767176123833047474008261348766295596492007634256758433126414294105003999688267711481715221621386085551258765969788987980645422614529104348006053829701056333490521533765661391295913164165691454102236256368558939981924327246899578798928585828141265761593497423060288285284293794776937531733660697504619730319050675624448742635461740983075206627626170131904568937069683652485308888210706253775591688276130707435081683840359178583658325251552356506197561999035255603722695736165692556332285383112335272917904481551679501626169061757272173658234173052115238221326304482415303276235661543454884718434117016419553661308342927404195330357126178520353546717727788240847542015400153160767518267367335537924055346965327340895577167675980776810123956963829371559863273116652463957736466328629675027183905564999159121622389900421473169861739879011762497979856608612202235337166748933021877681732908877081123610218289118636490387894130825057218518128145845247630313738036527022188367715421123707260159812452608475869602484897580050815698887365487947167823454029076363811730052981241571382326024934027978984324585525721834627643744999901519141496810403263609787470195138877661713087715207127852044494096284541141830407014309662314808638423566386415207612573525708751511070378437228307694799073121851279506272240473558462522494113785543668392636693546920444610152013189283079487304486460932824015591451368374103651100467745865432673048242509985389042750925501141794354228920750522326789165957204437866640786927161235538131273229683113793942861389745283756067643391087311405587910305147380343196188100084126917388364772953959469903751430837145521725084367025152975035800283533248940556355133284079534327692006046815792907735292001241279883655766018256275867803308838891860115971365591178318553315707260717318464783273052642593741441621272589499240929928276096184409410263092065678841434824265422091209182286182748417227652286593950467136977941622571855875410920564675709228833593275621242554873378010646308656079789869671968796812585173918215342641434441811929224466907122271206174578558785156328392469100474970184411778044669202952187566990237000612531817877585706362514931890448515513093204553827789890159825717446724088962413072163870592830524164218579784862443688132547801028823955125495016200005544523797538183050801085858272670111142814324723353924508402902759437623236911487482821167580424142705573719059751698829657067882634087503446237422724579029536380680330521517589205203464036200171627346856825721676985500349348252080790143722631712314983804599254817073830351089809996590400748128171732520960407135626350700597966519472667349142343129654295258233110350197128876791311242136844631743349633439056572123872467910118048444282073237169494327892901815365707321534957504368086227871578129898721876363560137771147562790665732117963917387477190086689751491976587319590903959033984405800750023058439272565243302247024208903159711821578139693900580676692347298060404148191912601264921936620325558743389173662150729928468392406749348924786488435196189834773191515987913345637558806047872980084354063948513514307479769546350895257710168498818199642012895883015748898032019775719120516181231977185373364693129824198714075008668953810891843225741052676371022947698140907099668363284923331223806364744480006870842691912720449943227513171324910744610640773903743011175084683713387136673852751916753437110330911577710091662233493570088943524636099291534025876794922025811151147047681649920170814301287163255405257578566183843630169678979404919763918931690362512632820540915440841167357945393525914203338274845541436513978653151777068972677742581342381387808658478868060693005455767449641405911557458312266388261376188494173554979610578434552737387119839171853223897961431977665664431266363303558166618554402225500851272701359266822605318705156447989147945608885912664803721774730357671608516541633163421930109007305347944074735190723695151298740034107055771385432164915329733658761923531836175027099200199317152762505225912479528484176097540921976516299797253961658524543107537921251640298859389203293252535667237747360278747310331389869215328514718975739793074857045901281745361047742397389122766369938691930374979719868121651546430241036582606400835634535859389066463449982379119608435455555983377827934994107889516960888715715984361273077264470516902699977510959308506537090971297704527185750317484833061451558734958122905706094940215906430491718363399981014717350131599606805275447671560809461735492032003987905563948696634921528821953058342206100214701676251550708379981547492461686797572766233293450620430035644401366243869312218823179073259029634697711305513108401428552374583998086450199211240316010696667062539623963671053909242976021948320170776247700081820062717103062994677520990870474859207699066644604495745406591227845343075765115881080682335140412436084205674007398657848783518220608043182812942145108577733375292225523025410847195850481692883410420248961929661320435962980916033565848621628610839173619363722594057861338191202021761565198043035188740972313507292497261122189537276565108121591498037204686912302415408814915605285317324603925287664426193042421354010748469602605175884179179896994050218279340898912075327504527433363980245320246303517017833195071556988580942811883900753730627661024597623885660259611566605805160605585842552740930493985569855401859227474845947014746459029011134034303829856532520429153715616613776375561121318661918587385700160517367840059021381029774032355536931274896148126915007257203739702786893113285656480951577328609982785961825476477624482127158694722477134701332853216108738940281322888773862279106090267241585416780782656245077170116727603768658125848873731277820740657637400354641412993731274878501638313650194487982494790858786932085392638767479093336270067545968918343305100588219156627679528421300923320470966331567866919967269683195263421777198280324052524343251537896548052196215843171255794399397733969258109760145387743367194364302944559999676921024235664254941051653710080334930166037669808506739429881550353182181803698257470006300217822167816143157594627393098647778407810091838334903479597457468982009592777612694376470876195631418525896844040510925532846274331125421396215571048720138920072962531996169810112982499327120506897365114210559092005495767093512802870218164149627011763113955406393635465134868531887107364810172200391464967165726562265685126621909750706588907829338712319391582770133349656845443963091033178417202739150146242358938208439234868337092891862304191008611549848445039820214664416700141359815303900804226753862013381943358824791396341075300697215292815793380073116837332920175357163239739843709118851146272100172145416482946048889656470765006738732129260150290335903010949610156401456007675988503202143705286705613244462709639876110536376476039183807157897084743970343640234680819530809982149566936614410299851937852832422423559714511245415740398583996331929838336518989047476645447566633700107438448714013835839341273612723019200180241603144061337941190863103659469516684653708768141910488944190877564395833948870853155427377061300746757646643856061679485195573884108479617418343532759981148720899473855727106478312906097000255910858035869499380475937512569767519320524118101136597901783105546281834531301112990457559648972251656988061548892623932484984361281265186941368468526150559221248857240874605433426426084788954258875073575001200294736803030327670470581770771351473675036479515655474056283907992811282991763985041673527176040481151680637135551566666212607614631832308821296698257236331017252374287417982612848857000373214848945181454451051152512527057828668424072567660984666116778296204423058354267618219974011524401342955830785463803837263883116728957715607637176724920133936269796264002277948453187696847136349309885136426704613617639415753589399991955866355941501803601075632020696408099764822268124513910754193429754433459740237198890710446921337723701335593538231704046514507571292687330798027976779816739783231054119062588994972110697691579977307865425912123635794399310109280935737234110145027000719832437528831344906688364943612121438150684756561693701691028325417817121157705797004937526078737696862332245950059490476919068557981486664726189343476148981170588842076000492237524764536090058792727631646305114977919221340067651798731570664533376437248735998597645409487808265971450489666070928070591261878505215822575581596612343023291656899614620907651251127871638117424997454487340290872983407968273524615432766107137226311472873891996149938506082182929034830878819638046408213276528289362507809043197363350305404278608485751875164662546295486136829023160591556858742409109646580247278114632386047100287136381379936091351712951758488025389287745681007324539091953152638972221603832846167940449284311213159153329628264443217979043602335619767737426938845453632941724735515852787627546137877326566246080894338510631776413626224146396203293154452817091841715093028370581944912911436398649119377876847767304118828667165884711322282447674832883419918633105440354315524428594793164733964902902306509348519675502555993679526681576293782387199906886362143223631977568896695277965792221207953806137803565528091449705597107295884147901454208710338311133514973078631363155765375777454098797788022963861452688063053536842927766018465198916862252834622904267206447444916167481872474821506045992063165474491289868723181423875243923065169577178226658572009102591634227762122921288635308910061822682586572340379499931716283301957635812257289715244907189929835586620304299798334375975143404365350142677384817122338985176260961550409386061677148334017915181047389270353137121573292299170520144241526058433833268545869072090446024920543481648742167326503812376251013526038219987978778888044726495748056699058433081775181100775608986268789912332125868449308063049516875926592310566657521481143334713224898813044916019403214476597616743109283806004327381537056938088550634006358609189651689939393938251286992645169797141469694654647367746908043193989324692735202882104683853658885863512683162148858387188394663428992929818667556973545580935492597761896594037956241247377171295250618717760151433213642017190139829467958112123479989115063329624625787013727341535192582413532173674225580865263128780387948318188978713542873939795448371166003798777170245746059134461875101793194663563717621332840583037664558891352007080027280650367462097667743912638815342468967059901306712468489202085921782911419995622398573184615055594740300092555479096993573758355268113906671306618094423103532679209248095292040774084070485574185648707023357637506178037246302755729501327344606613825226735353179981499656629994045371790636367004247084801975011973234247488568814739738730228972885589700170177228736487787103471887828668184039051145853107589477077981799102838715560793509379091815810771328943324455193131247015906484300357757516775234887500902880695382147001934217746599731878557870251017180354025813857533088148511180832085758980989667109611662804468818440476749809791772542128535407517725166571459700402345181594937227877763064384515542195416128102381749566676098319057595642468017115830704992641537320097802293698431124898832876482277834847605675463949024937283587490034385274995632722024481313522038297617569768468944675903375572481790245383157129400203153477347704658400233401820406371671076287670639309619955487242419240015054810318859280283945976840196153640456535615906848721100541871686632839920774595242787804039200565640830152694152400071149429591908059365703887478914315458288847424413743949156827230397282258059960367188548620242958453279929391578324365821667651898949335272454731203365651670403802216575471597972139255303052205107559356056422257518004108486639765452875983331420249103036663834725087813074167653709276603348891620468666432723827087297321379789597664786894857227253897522330044507163397320864247364265487253292547050437436976272217414663900566329381480370549516288642091485202386718516084103107888522377206606525941536863516924972655670374817846537316971399205173660613967194863228731362883905061005451566403479809535187031042409413412892266326034394325958430892027017834270678474880889776969615261279478178306288168293653999491940271325535914110533640735950153209660989064399948038329836525855637655023217786119017543804796709285621894910436644080151431517483239508961679548390405601215774779275279968569324198059642338594590966997279707416105552187583138782321853694553889221236530089789114609891392010006119318381174663343749189609541859210494204286286772198986203561241061700898761824357058304098436393688083476066757945821615802908270759674627364480168646297676269181388922182801024028545852410041069130125050442713379860794912762053660397970431559384336159453634441814130333229354191815566459371413722906827636483550004375262907695695640137216128846061054284653641436883743649256152296218893830165632250881681454785135786662780268986431012334969662354982518212644991830931005312803627494577450021925617100244801955445998121936746464009698186018549858793410334934136826131176580288690830083888268945389723855543857261452068870990795581803465459355948345392853960235175181666594936112350927960244116911601437921646391793626947702075336609946516809332802207752702530459576213552049726732658061412435325513697679300834097497765315321904312191726004051940459099710357258292987905410270394545564147776817778445269143476023923222938961504395880597768665830995748530769249488614625932500910201752735526931239183919451157774277131442250728210800120808296734847478887042898462951397035617705634024225117166048015519430317633256568368699151740745764004263867120418000028375253989017254718807762298233441091749448579919709414241308135290409129459266764782113076186363137769753212712917939655364770732243134609289810033646871592700592021619594891889803090365138147334284754940163937466634090960145379064696902323815371974706217795212485214023837168033375797606030529165387565174426540274635421406288838921200258203711971760499637871790305949449130405720801675721164510516091409364314779416357090666631791417278650280821311988215506415894524253401696435782139368055471292815264547689477610456963370547717830615014279272512442009316170953319407587104266239625668513541797914136127269820508917991063741965802784939664452825325461480117067788587231469370789817087517283747135735410578995590013803172359781655859932865938908569316572017925414061883006576999226786874173148429997478382111767239625993615525982119152492399706773440643173649426300077340615538904573851150482511482244644701516977577155776942978371109645294647747199624342568971343501879123444818890146525308433163693614939690135032667683934891666879244319496109490019310194599722287724997287125289941682750242895665316226012270489356988741467016878413923308260903112534806461166398447782956084625984215230967430199599912969807152888017344205702495455149507928075405496234538415542315524969702477473489484926924788458835502576431591490525134307760713101548659631101320881313175251241638979278943947158109061313094798156431261139567466317794127504565541972582353690040771544843616461755117883890923087868299283126157034280687695573697472866904738450919774476574969679855557985084899071563654145586781240406651447551648416774081888761392623261505451305494351201366522545100981696111113023637742075577379879235342904028102023484675555590569669396252501327148167402372665649219738892233463841215102850206019744506538925355214099459631606629042862932721629425157332854813161429246412175490167772390165403641361811106312665296219856183017282368664443833617831607063565570767358197949417113726513464710641306759496054842044269331267119258974649965181035752026582567233565603903848376334858000809241529388404819995079813101833526576485045080389789339923123403330624496490399320988418104704665850692125608441056226597522441399112800489179945751738862627634426998453702070593484020585781606979661440163162948765145202695833578303777740752037615757436628170825648993608302571959548936262122302788733816112807792339279881037105235166947524145476846456543632752192118493019017549036418683261623378437645390461604960672302695247864930985304947387779811563752287884255987381720081303422941749464197509551082062591152559942429971912788902263361553064638155365687971421542477456182344528169730254394822666603674573427106460580224551162487570449232015284229246185431053781275675749821151616738502035936688304891931834424615947968583652290158011667825253418101848068700543699907829367094857766401168749354419718584350721190588443994296102699507149703743111503093374845161209532174738331780306783529814739035159436425603762465561720606079735343929672060974433797672213173319131391016035033693645349259109967579163678550219325047064012160012855732180898073723417289978587702515790566591160946820077566319995763534557727772851432829871274865060153305119527474741062027600001440124741598576981540875521691651845364887831360638384422957315063977699943487199627945469344662765160377791254811333681002894629817161716873541982460674152777040676948763614429003525312630418719426352383221648590577332020884389252939999733252550825218282527537856808113560146400893803656988462088711012917169609576002523151794717531921239925064428127274078771597173845011653449622399578867696767536577395162274994869542300405869739650288291904114261367409110285313640301091495293112508420076904318509514659811370351446598273383469943389317872545272440954573788046374492048075836813597089937621751644913154779903815385223598943416348234438006292142346238820209429514730967563683183854421833975043878907479559970767574209092476078518621545106342724684488818067102469877247176453658272570762962316457957679530863796534891366573001277916199441892828286103600072009503037226024473836958722815085725004308469442615977996515351255377977352930355230139217302449853872487172288417224181002267462485529947465603524991588448288967709454104876814965869473524482952932764432159678166491896144370533576285648315834461520248348602819007528322476882261851552599963951916259042556245569327124346215214261005643460830991008135015379395193376375983333629715045255517418109567142773342862237322150912613254407237776129279742438950350691079970786207753272513126447421434376387515385773022834179813699334797194146491112980954785571528392573514925099677360454608513346379410732322197236624479789065837810734066979502500603373335017493780192018258399209340210497183041698596636348330477793792636671185508610894022666646804299035637232511781275111971587436486142376553197190598420697503037921744094034264012098229569362211182132387917387790413575235970514271398207408685074453319996817674747610709040109222552167091712110385801986982874148574386857174522127244482806488952465640974808558381037361496981243975643401464715258060418476243572033240377908882039477750586536187657582074648128758366538486943577753024201636475812971131348690065750602252838320815575094974188461002207784229332679985846918692047771536488219810607209761813159802068000243640541381159205078859476561962549745088577870754452061577249066854301078680342830398768381566622821648831190161524730115549134721296561944049192250266999045945769276559828289561129723704770267040999758541758330807798999233100932690100584908573108597957172473219620569947895343128740642492280057154872942215208555820880575677890182389315900937478141921014813791613679905035972209858254890433992100049825362527852622295587295394141357853113785234579707009065641904442636220789711660424395885503455271122519241279189664319984121556886595650057348029103694148105409888593757393150399295472428056492668706499509226659689902692138767126825368168728532840548885145441352131218119034464508454850684727322171831114790040960942419093156612188711578410842875012736999911271933594390496809180687081815081924901578072443120031675820323637133093113855461241977010481346871539765949430321488203043199614380614857132811363619844118718766150276488850313109212914210982096912041873067116512935085156944066348224813364054474398093778527549309261261134340502653013254188762374140254424262252058237388717318806102627202063764261057762802089840140225678793696538217346135238976971128273526267420498186461651274610607258611347543038151170753668233022219030081396367599508875838069139055764109254787983426906830413338665019296294609923022537423859097087083093276179628370652739883732134930371111086687162074863224524274681980319368632034799605906692563760270333975676637948907548849975042095439444270355501470723635161313583010425530176584161808513946470024109204119621278517158622556873059288690687279927893715780207254211684593565065787974966164355909354611806096193095823168717599550412332887259017868155688820225116492194958984983606064546361214970366353135406652851881153324130372887866947391013390077451850646558885011638037842880830860518881957246610655963711133686705562134687037108936642922263413911413621822139928248416090912616617988057765572403497497238693907452702143958748831903345206119451208843562403022751894430502509291800831740292909961364315779408006161361244776850545589665934752650960349005141341366141097719499388860754752036489580408079268609932697283282564233907469515410693962767634591546617010777931696245305555009215345157066429564096127141958060765821975524102957634942849401663296103621769847374440277537595864705142656238718416069932298924318862151250469521413197867481538819431664001442070812523572577502026762334584027034770949976427539272100863657606827495686939928524080708698830278510215750164481865900168922280186991762248239739397677454511170190539132516647444868737599891039685318873451918639926064321363176220482781866869878592544282068553824599737718308412153598804909608634464293119381979526305861686379922967898447483759721549418315864263617192951891097615914158617713894467026148059157091620446514248227260663162692893150899076776315257705052150172536844100723430908153041482129065596692646305161503960074929640071236194201478816745138566899742324499241997815890092038237314794206607667386571860160775184583343720966974888799357979455518054579176356791625685881520758061009580053767863878530829024693061433895423216602032122615866012709955022906740040538817241154673219527986925388124142617333090226791772600737144306758798498394937952853367644280138899959338418630715814202335870075607169913148887407493554185665321230920797630130448767662883222511226140716334017469243604846929839718133670687040938724622113618498111900803091282125836540635922596638365888447152073270932642176198592525610337345008356471904486252106441356119949750481848854176242235419816595042628194831062181112251683281495761837231809892370680748357171792699099203548075074891474922320737885758977470028163850283593012260529347041264683239086688590642001621555656720549326987004954750987394693664998239271858180630408663810948071703182929750749515367538965632713972382287142193418472582079115136191550214076430018032254278727068515910178641832591234548179592695772373482633735251509966344796002980381665736230755006379134122354676225060061057585597209250108097941962377721843772714865361297281924315059173943757901176594011787981741697276900591462081132058413502991232460512267007623420172314712166737282828940729368213699155923957808391149664415669956625376425191867964729879148323555584871046734093745763589042597244021099146384824654460188711924895583994427327890128651397658807127685549619567598545477294439077177424092029778149543224631944100618842479987130015743055784408289245894888164960461228604715392063845391615526928242355439596359596509277342618149137832495150133159972149670118161534349715150869263981694445233963217720397818505888247726056837248456358145998124131267619240734419949647864087938202438612500045883906737134215390057341611387585841239893573453076158204615717977821179333154138032656301905004695105434592140447987850242814217077780723008574743755759227088552809192963324628490395460419680057841425232505318918615034349451944079268208332286529988907422170889835632484035370378384215598311374471174991273077763089045288028795527096302761871565936511959218799784741582891232884048394305085685169542613042723883213661319478532751721958989307476279150350616970175299839503558335969001497005967904789467234183073837833207906703914562791652388562182418167837940432753329077759121757165714636633878403961822347796375867300004127511638433140220481769807888417621717277891066014577106263778085609287858101893254739595186643888529455476177079434250625209245029644589463432573312885071867157082746161118626260312474395388684050046164945771932339233865980312970252120823293298927861118721861232543265455348874662033474256934465002683613097323628402650752342126097220148586980398353139400189039935889096165108548750996076590074268108060332055028350957539695414941565091441495915844908615040821664293248831689276817639412800265368333874012326260260175657489565766625085770820244735402628124577789200423226333028907503810107437431179044504079079248223899877969888354155527188404657624941932800484852559485365037921054256672506562513368582476502673697625133690752349311637180063784117398826311852121522311449179256982067488126889410672549294665582517120222362987641549333711205795256000968978176882225451873828357661454079738191048666784663184488351443923818126802884336415492233060119191578022330268540534242276559146593470621377379403705995615001217278762476776346158005873478501097593604021575114381959736778677984216048073723043156603654518998086917661776539838112956037453469083659143411132375856806332548418590550035585129693565055178324273265339032157436756047492158424028383372066618939003243258707535462949326804933060525700300852768543097232282003773587914550247648771688897565431519517941020430706628573324806728501729769130452133529005756649970125470128456320441017728691458294961186409741903255376423319588447973893661845782782274459334255680160263887329097585250728012854801019176755738569251741216218355531049097784490597475977943224575694658242647928870386607644006558008789493811222514741758316053689784711876218674990463426727115891436638455318666181063974127989218932956961964326751101420580047838439124286000162295416373436554841382716128136874776193178678760226910215922704137195662870935121858061361349541552476843745955546184273859086705591083278805542671842912634710309031831299274943329403380844973266180597605892913272680222342943768198903452783628786934298315308754388372008872990595446809399230991718026783011976305464468852461859532228401981372472847831644719485617614588146872682766468432112964502723764514537784147815717885821658982833818378398397800485144637250994463640876194906396017853061724151068522965894056933467986423920826930101918058407688748188403230730320141428120114282492076858480068571479153521950430848547987761496522739593117822300357004828419451297140843910932229315204024015687085604122805524531283182103903467820173922688201462160205588119552309250918016103527378966025074703724540667236450525983820327680663787016585601767060354682614737801138732874498355295865383714695990089592231959993597883159980379136148303537397428726826447628983755218555492143903505803233708056553776631528079915905699031119442400111630339928198269603258405568304379527835811734778094751836023601563711734322570228652884372545566893901739911183890200883932944177544427284336695697185167001117535300623155345850060209425848190573214960856911845960139702935683115241165254209638388510998541489758331518302847565960986064855512385899688170607290430755470030803219455770500708140744127494668692546318347730273257226963566957805149531614162853232406278888614428933631470339863049029586233855372463772897925592660459891135149058365881489997768754806758731428680928539638782690018178264389003121039320395367735689787334767788753294053420502909922895881785347640540211808538770937205058401968105146027294671965493171744367627491303142831193767751955446621710560231166234202761039993403531259752480603649759332311320084092785233516627305349401074339815036685731558977325752067915330170815328794237080300335897620871879554616615126385681486201917181106262053376869078479775565629090003411658870819247706550408175610861242587288046928506803158735830924349932843597510597626608232989287316062897875163697623151064209343051934168072911744934500206514008178423479983205997139842640941291200326309674542131038578844805894202702394822585699876673417659766184869383050699554065795553392188190624986713602932047001231457176551680621402971431856743097297041175912954434032379573982350804532044190560636865911985483772947748703453124443472172012640513362837910355120829160525997535055090045299456717875951402222792649526841768969867319898291269271032681990088108553899760178606593472182756997098069558925679840981863269881962543761231129520723333917095116819937268684139726108069306078427802357577276395745549609572063669293674498977752049530987338788783565762145227265838634971251413181083473352646644438520522898347659218161226192951211647958345815661048426875857806642006642899002754146562925492199995883878782215005204835689815559858458211629602319122078344937908618728493346800309276083587398720270918524186961432926341160422127850263081887516152623744620701655971497429634400096856916104409627193967921277765951858115363985323032186654650678076329112843741921386732630342620545257947984491421732266632902512383179499232261155782609754676405451098346046182828014826262652708024468346073110561919195760613918854540756356685500215774904913023199076430176184809576924092665510021131424861151659980813674206303239383687370222930851636092825375440526872093150101735010190785129079709904037933012504605080380717832776814620423933231036515260735840369056085675643450634882405254257876955363723869440091568322148241532099459551954252461604450745743021625880588929813082921665243049167005324576447024219440099860624780876914788277907281286229222592228411008771207098820052407589096655784106244070158568295064848511106602221287561605342978788545667430820875207457561186794173320721999815745099821942999173614907615976190315522699741766603994326456930033935189987626608755360235631111533025665206727763877085628440373186893256195547062526666434244529947496889839496649422104145419347990928167610220033851639213760356611504163335280815462426509090988987515614735819948860868388676575660699644263995072060727528808083576015404077854010684925078877157041916618512298466073704490101754923896867603880784538952607737561356439429631240019422483921574777611245945379233997682224091702207784024738911243548926423375056569579033689908116148077785419309717352692283396785985538178450664478084494084734985526459731387157417997410294519335193087679883559953691533103455478920959252513346742837882317985046378055516150814031168025048663988740220102510732813083679118389574491175464467960892786990613690739716455604931658918742839436263132237539888052707454734235799376986412617604086389562694135828504234121838402611624499256112555961274037538826201382148757319549279821393463078886065247108488700039180096748557295523331137050721434003317705619266291403292688869690313951023869826478477115941892632902384216112878858273485280930902546306108440788081026148602733657985497850423996160296760355987526334681650134597184648182967915099334356385509920358483780840177605635143807699104063703054403100432853876170386137382066551265951563471027704034619509402799712326367800401461043749368463041537631565988036047776202151581600710456817996408120001537288111750840084065092864186807347053260749733070996358411106593930303756565131081915661966687706123854161401681678161593939075418685750885945332492285339293237515466288175875246495158845464173871701632915959990565171644436992160282076469660832247731161070096753001862575821599297808886982240150196792014329816850674901642433432593126924424928542012826455321857058180195824985252907728884077932149584739280420995666965935557173411691313213869464337862647024040871106793531379495493070039316679977698463930533790028656654220002390789869537720461085228825937913276320384684929645405201553834908322812880780153554074083669007676994503816709105463662183837225743631904135039974797547657828901177764686767034302262217687580127910987329120199701165152385016775965611028020306976141565232646804949278955990043512779946151542336959300130345590008233506574813904409984051416716438453748520902925597668384494487346684738989513579624108352408665260631259525636703327549581234382958095754896284393588520034525068691779486638510544287704370846772542176924115199244609388831251563423831236526060159796572399497093758168591868661637780171699759245983273116454167306280210216190098967986474270981531661301691588482385230544574108854424885147835988916321991553526246974207672032564684385751519008525724558431404484725569200405665126090356156937700891058013455616459303951274160276650671660947272351101182140338978444880387144479617117388322315668941347795839841517676046258936223022865461705018480810038457216670960354211796324529485129818319091899170422205960747574527857199435177877893667753833350588732229772807407506290792698923715241127152883067195741011483061989162344383770095887981402275603182834013840205026330159938477241417083313922928201468212018730197508012038903021429661327553832508816475125629234310561127640132920425976771075063864866017854281977857770235575153892772085641850568885252452457394502987010022559461953091299671636964404616017278064761555461600296054582083785428709859407018522431597790455563260859308513890365199124472782476374229560336447655626152715123924886222673840510081705081369778721726898515555221393567092164460788101490501430401623076251203629195548362699442195637893915671124989677828094024411010310848316456289005063776968301546096786038594053030952869366971042929817315751654464433138692479547917082097179917012111230744887716788577049684051549356720655150411091955246630271766137175830766146397469806161708211900605284580139462727775912554346941811415433917508870213057269771775590033074208972632047402289799630874498382087230569748488234624633912387808653484668633524692500411054230694788783534116033209380874739246664671731071008865649117373730125452262356622435048101050309204996341826432450901068781206820765234941764583180340220115591022516448092784497819586989293701826577423033975663684349698257230538288448249290628969562140501660966762097504645184145641912335300798594956327429900352438580270666111923184305253604775776828759755743461925795198221912754050202535440819032324246723356114743545294900056621253805643290939288783508940087677322667190397201841331869879201635539108837769509374556114801680340705040346415793578485042492307888317757935629052924007412191773556426770295211068787368087322125375371558576150627233196385405068958239204743927044244378091277548553235069186325218499616224587253564858028161165758091166400385634862754434356702931003521221460433787196855797027252964870105410416898918539949739615997099340248265891568288684890812183474934003988211234548309720493878382128431821662012110122079917831588037524088725351081083467983578246002510137053716161895712259636557183064985906967105408504637382497805869055559214614896537789268786060338510214245236068335095855767239494015112851790337225541799308811775861742732047803067196137109145876370945342893502173705568139260975115001087443460339701683553556254094010636890936372471894100535962555589882116363535323591028516036772763709823809070163085325713883659838526063554278158959740120610637008019604697318564173991896723127134841609543473863673044462980354202955811056252176202244415430426778322899596215288379731744368174504732802668905240863540334782847419000751072138499253620879741777902822782145772220686693393431550713568620423124126211180426471745370079743942520166897355259737282426019345650392711819547447740622241719808668758144260929151023618977740436547662638243556113826158002153602495576640013181230611877408188801118236544288372661527233529418979141201554904983387953665156312696666112601261758259225142019610666510871371212524477173593837028109122166978913678769063240542537745588348494512247846452481857086434953439867592065339984928247618734512566602963556197527947151181272651872381898057706209772647835210164802198621757451248024233999727779588406675120159551590958742567865008406373592217485124072471309699206069297474349344560420168141793859744325347425930865793435884621581058897240371407939784242733243230990315717168490154851572436317290790238577514576893635013196091053794870668927300712883181779400733752463119314024065775683619430382488054852425036946153667515915315737185698462148787076713198119363970196176134857351330465483750326569390840846125657851289804964123119396090431591696116850540820986804376992025243768927509897840763416742647196266767455901348342331451862803366255197025727202068301890508292384007305098405673375385156813502329821422380573479821383541910527016842160080708198952001471314510145975871426484077344780609472195211752030345090432601056753168663895666932752549465105099763129257627363436251198221536481666404361009299776828686786278903579894802397871530272442343327622351334431499883082147027310109161074563380115028992526775645071575104738881906377217550261210445093515078348347234310779992273290585345261734377409241937355201978811895884577523797682344364166083458759991368089494551665065461599050507584333348289661521465560888496964929518238143524539268411140979035397668435881356883617684613833689667785151816368441543149293721002365176138131103160358725350316222324351691808120195582536059400841790167612274610063554231838623154766135529984798893732350090622719774485552784375493887866540832323526368884623545508399567536749521750156950696541476484738025375300759048230485566278467277485231835491052137007594973639625281309125226741525222297065109743473145530871063725950746042409285644617470165644522375988723896115965587621724802856327687248033403812495587315761826598852048530022084111932865336597925136649037607780619361279368259114758849478542212646182285726616302521944725207351364716639970463278976424104668724586874364227945157384797748870421332332247398013922977555428704959326414400301912818752479010548534834441223078562031514324982793435370787322895081711128684736086982275586312826305686759304987752166568144732245459045429539548397785863687975083058640311927539236791680120107196002182994850312299746530521384895682040613639679026948420029147838300960445472260891648282209026277871687312656855733007001893833034460638522948261144833495555726957850453653070607877309593109637384691764284400713608788574166656797856185740252225283742019024375175082469479473917243950261652350177351588124544018855384639149744081938847752778689426478480973193409503161604479461255075143008227380740941915567263482313050445577052297339643720678771129001614279933659423293685752680937085200776722595588444123690913919889648304437073389347006499786194368269760640633919326246204041881209772464095657685990517621424382875686181503661777909434135730140557550465077853790489613630441913279276017472710353848158097034227496848322958371689852278112207162579334839969112012919000997081964961940132163849730252958099280950566232791416334882584554975905444352885349985663288635071621984278031666682283083110856872628192917762341339071553357570521300836249934531615862536024493609808728181003908023786662980065089531798627609442848363400211551408805137102977472351002917795014033027151162766212714003884603363141717329835314083698755316971088894632747397347875439352684987770071346813977610445470938044257263520481138269573967019039871425745412417954880068432967622632300973648148800317095393970903816972423958870300359213969845072612515313155729322960639885841358234275726597316292543527944431528988029680714461608078097772326211729699509343300362024289989140111686756104393387039177749639180810192103658486575067071964615576967020641111979230049033305285732044067544235250164599132505935513780361439164731312184635461567815006000459340744054852887560081665879469744140921161743088418639686260170009825647326015789582760159545098463249774849085693875759535148015373759650071681679187807670355439390255213299603575433849695915460812163352073203716442611404621294431921392530311842912146912257118358328427937650330250009603622610747217250105999233652675558947202064490535069475938168393662093878448370230832785187100076281893287506943122509636570247049922009507360811173064736907637307040585366965045388400179824441678353891129578457781109001835524327371954181837654245006261535632627647648991421969806107499411056667731217737812722750109282143229287985489426067717013024367747227143444071464328875224942494359386265707043173409175827470582177721214892985764736147360430813109774677198297226623470833682565506652130218222368716862191023623942383712369519301352023769536668632034310113333399629583155217279792466226344557353131605171680902959797283812470144993061812135952860095400388932472730196337647455643076635479551703058739469071150697316880568152215416577589656926367269950196832867040811189793656290284102084727350888639373340169181615535119921769367033574391562016113423470650932073989491659434815172506153036754655303272820747387956977403631182782664935129399919509877455383159961426773197615021810207992306994515542963488648133346770820612397601383563477335981696005536854748075499397449959692931444702190845156178920302231578498472505116997753666316025112902171730327305560917419699401278675059543030347432422140663319722822165755809990751539162390757086660399016178672913591135392727467878248374843732346856120555907219631949304560246439126236726086770537461906575821755037550000963411713874957996280904114447371769732879409443587045719644822011050532277608335775662478053736537570940483647924246780912572763133980473627824680805013999385555081679297306364335502334541428490534584222396316014334120507595239360716598569736161696881704460621180665913268615854016621957709060273589126900557856575936951423758898612374802990414797780418806617572719413818158005375660214961173413283159555087303303777419727970443229985358109849001468592903825300723205188601167813045845951110103936886185955965329877309836487916418535801906636236188704349403623496143238173853497926780352893116056643617581528875617488845339313501213408483171901295407512636567889507993126628236021352669687732967114165200728555096747076501631443500188743830915736680884957225394456941089064329670883894933123998860737802462346518945114535081732166605843237405393821234709971530531343658262252811123483860512285740140194929300436828946714346984040386198091426215421025091279376453320391255095823692340064925128971642826455009074173927416926678626805803976983483420567314085871440797696204692874050105223884441921204546031063498068074381376839069429347183357483246728187436244812665385209985170306181551457673199324823668836340490997713757551070793863442286331984761360064944997821775337245106140698360116445389158460011173400381011081021576369895007574178671536118895776904366193379439857247737464139295985413068782597088647364225791230695374062564104409766009816104553133772735352709668547641313493589520744156693851017865686274539983725994064032011999594413616506357551486975760258586080571371059663984329104607319328740577276738423449078248803835644613507632796202123923164550951976541959032040255881297933284251142729801218832869255838083850761948563930809613599677146220975892201153829108110554550437255628309495229121511025561671443755718357253987606211894122219656941923246887698998006527462130010245751522382045472467483473515639433489674390264532495075210370396029936528023031021787725560581672736476873628783619651950371782806156969948567866017642257870948857456615423631205430696945157362598125877138513174939416851296974826860096955241909682027974164164686903241422750143187305245337468938982510276947766554985976822113897728013474785558990225401547078097234900968896293338554727856972319737994296607398774843121151347999455117342003896590069790792282245749966100860163000432677484685704457704222857745853559505513357272192045351527158896640187925230165592658843112562620861154805212157877982720047783161173602924934242448805623208203131600165992047962746085946690475480243959389133755472853317336945212505898781074907715356072929092434709766663023479536814176062616281459912637227533849930556501168651604798616603015887050048269016023901482000575391319987326164631648940940609319208870145871882548013318058170569940223404060784610696410601724191586180438917389744324352870250471437979602067173577767629486445411848425054778250922929550084864263096486093771429013803649117611225703266625010558770138960832323852150600469816832471262763693317845098120830899413604815879131792578390443000823561342985666695305618708238130161847715442813055739780218478003789065118618804928504851503866047447463937729382856841699511479719580180633238857065202734501514024881606650970376251055284772775607609168941390285639578954664271626073501842537745030856769571792388090802259376487218696839455139103358545692106424265303741358740570457246533761417926916911692914894227951074404860772964085195307075403896696736717561056373186589268456248639766131427115925506185797657157803166731620022601652483429451154092244214536611665238295374484864786514224503348266508965104846509163143239230885418217825467106691895267238067908274364151501783418533388406686731660110357572335404392317322667481123225602921546947352476589323838182513236941457447612894106999268254149085619869852670991277318570910872009921008159076667278667110574404581375052878020737974011398874639775534528925073895155786665599895114574118539413185236626479800199482094502722409029830826347268160411463746087900509740540343503265898136055975570719302992763864319022723698321414664040493020427179348193872467982174516150063983785449802986769958463911509321141989956005439169098646919058508668183845329656090609950024259513724451835450274309129932134174306868999476062420414247576037173832857914714769185080255618220928377382021980060032270072858183294226392484892518356215516594940203683211465966393790441459659633260457097303736008047382924977191612081443424897581525868315279949568443091385117562296380636452003505271726670204311890035024105157694898980845873531112028906286508846966402135909112031483829446292686400198086781056190073813157051830350625628710895180598163205320495464404127066199564398166646732029184800861941277793297818851691832287393386700223027996672680470568314783554809262285964966113819353892496384288504446542028298055093690121116926530561020043932454013310647095367219397515630429119788489558902098113253713735283265226128432483925351041737390891835054311170594549344902938905337746069177911680357670601896670816081899742628640098621461036083185818356276124735853166999616920549479525356662729943013124278398564470140928375253288236732760170321216443550603880662408665730691867097473807366271783518233028268645377251993283217286052865009952990313224321619663607129156087877200728346952874293231904052509687327823899481511749812271266018441957464960417303605983951870607114805179781402426638626416238110854604833417950061733586598400110231359367492292344345472497780981830776565848809347096977660056650449799336599513725460136101154279740433958333825484887246180794168509641124654951527639772878513213174165158929260269917309562162452374216315450081474858005640787073577531098035929676852709379673561418944527980980881474137012110209354180227743282773599118091152388849652364935850990719257339098959845001259695499783143550649322718834470738602015440179888248203029949249180202872217068538358208031336959976508338786688326730596413770935056139772914539241641290979327345855558002599094562694999622164624634434976668965592670943441999696788101438004376423799456997967255947140980606596768184404318269729681745703132599366761416526416317490621484864113853682121234139797853965513284919682774132017363673414915953422183970292577643855128005729066376731125485354413746981765974015617364128128093653659025658547158264692035801953102625394580555798215326235938303020864826756573725544544781034970074641088306124489409238888558264997375622593463895483328412462065367222619203772702137339950501856493109373776869964929653230879134753478008700665563238883270874289890644846358798458259257383842975571616358610684578415841573653669693953444870480059054739123190362604039531663691301025369696546079373341777280966194315088213529314759646559896998750848051778150282453927963560416933442581398520085752295986523993689490294204451017151972765390229155632102462925105296778817883822029592060776652453992853090346384803341648065054546402345906680923409094069701350463209670401879744439399584523573000265050841938010242363463894815758299842222137082386821818297614921169606028887444631166838270043787806683441737670313545832567273268583475942691232645636505915160409059020078193048297794954523122609926424384307101124834884895496992559808587320301410014481422647749356396370546660659442881047047404799828902872885537859437715822520838311332903114490987858598279220225460985993260506411676269708126280346210270069456014030026789892617472838606252119525671451098604155279578962255677336531898672900958017608470948759984943880911096800789307324825658911670538201528727242915600086086958202196778341745060564655158536432284133194101268791113567487720324037633046788158885955370923909735077277470669205289697249828200353309617006298012131031750263696710583051473799336046151449621714225743686200895166510481249857033001609219949480346294124900163662886661647104876440847516659240294442998374644387594626187259057620535524811996096113798015075866314775394204623061062596088125154742638303700304856635630818848452969329618715033438839762810256471191416566428352702546253171259426869840220954941742757933167783165823683680043157109200929603392449247783986949394143323562829594780923258316140459333604012443826826081824587247485657779762797163489806379336403149118284785002133606066525591937760081721873583757754157521583602284094436811354318471804025566341724604553821624908177294233296021369710602602430465657899840135467822522108439009567140712082086536893182009811607294934526242891852337253401161667268316247634038573809998585222979160762265812163091558809683715011331318568913517123944837248964950534495952461306081056098820097960700934254893679296683516864964141999699749609372473110376435926144945457075357484653633746624129607793182306545815731953803470821757634910362849106247563243034090528482809665045517634504606932698508419247727250945751648829013445682934655121560227539670090810057953416583992193394968938275433975940430412686522797119027496898468149800685326786148833059229587696083539540740650825012613773356983569669448992826015204872970743574593726888660832530000435193252503784101367888682452913612592802906690005357031861817290160504081516366837164517675904594939454591792664810311428389991022886154917180339496988268355347482389113516548094534437107456768320117640366711356349175414569674313904028004987423983197420892657177059675675046685772116719725884746647431735088822850476257553221318678871924948742658917234077090825382262174485956390593674240859999786178844067872848852344053713519802010407304629714886410647011212872348088574376298974257860822866776677643335332497234339752515100981860809509903361843843485949802558428753744248197496191855173417632686386499757093206077566050090283819680409207989604582127517033424924488503368634870470937801940155622472990923360707758492941982897619111429880875745806928538564069348849528601855310549153486717814650383376446525755174653401502196025047663013630749165102363952539722914843382187727911387327310298007134495703442337554844612941842855015485170763133120869003290638940201425775858155424557445549882644067597388878330513135573505218769232580608250209288920578111350065975363292128293231189683057659028286975003698986861717107091256480082130760131477936308381533438963372133768019532514395768705727334700290502900461242073088234522028723019217684222594378225319798294107467365235805531465996443607089424548518150095480429857583603542321746932405469169029494819859918636299699602707992650581767543422002861630088215346803690489356086057221524555937814338358131805255540050654733635896151961892878227955744513387589244622946417569930850917077671156216244085317887116990565407251512418658110614594984371911366864613344272324128546455697553662251503188489458749157520498664041300268397410896600408299461116763954177155588828948631428381571815467613906646318075373835067310521979786333632850724444743299560230757596600191904748053903668700203256737569714300813179567965600102217291656829253520599668353752382677587421588132255170963890208838342549655960631915070216929946529531071145743362222561011793962163449335185545825016486306367312733138625739995945603186591891624613112150554422286649275301615822840875837353101817634698972989157995669539902930746257006744059281440509363540755367355832013926271017651538761568545755815175188882835391594012229824124579589829017177913470012305735451468572012219583732832499253563691815465366137472795752241443402499220447383329506904131738530895495358986276301852251620475304424080358400703309140077553018606236764451034128177275440639543099265885183007055731583737026558590608868393163039263589056348201096530432758439915843200976726598001040876151694761040356415267692222437999829413926019100633972568628921883436419532597069489999215193990984415176934871383129661793786222382395849162921343755695216251941295635640391955635272156574805160704671839201925414589506716443205638908281517160546301664504250655729622923989026313634931369514600589014004408744347617473885715653484531360739038819398203783699412616616226527435708171717140638375299759331959616207080117237615399498332651824030399243075465125130830076232071282537939105812870354662192328891218378269161546283397465439316860958407658820225250439151500278658495996099603770390444057134721888019041378288842219858630898069762714598360719891117610720480189271024311112213698439696397159096830768734996946221164042182499115714433392974689731556983909416527480642496092311680100783670842448052074310022718503980271884884604304417762450487596360351214680870022993024049289816460915999913481443824182214493700547556574731579241658446796189734966351759693518555797031202378400562987033900746351063640649412012071265617645187155284968038539524626343593751297557020054089422051317507384457391211842022905306492813148362689447087188814235931729736293806711534367550024721596064394348179843378038576655147824090461841899975272846466331370570948858218369154396894044847909983646417244104691758383840117095753284127585890529336173504363148176492882039135170964347228937613936299318083414903567887438778466235158329357421686481212801761435902539504091641425471749264804981477224872251189951236167443296597877333891190638674600692741276579447906173207247865378883922808427890084884511072047826666162692333116063058310949443821535972385565078262071403351009717454509844531540316999403851729702401813838223618848479261510350731222509373183724088238945979963198962067186921826413614793286651050941324284200136920815625297957577000028295053789722299451256699393631862091193006057684452083462411839525497494061237496270233752168868866838013262254868387105890628051881939419034097701062441820746785174401168623290704564317597246613019736974826357056899048384067632570182468253132934507823491231312210496314062994345528881944898530934456980315393026067794314092741912264458795111574519593953261240287429914959852620636863125798453034189194544307907648917136498321671204459280812890622398591800461664902330268414858205108619106364205837540201059125431328793534855188292155923908051744270241861738400566413533953530216519176924105588168467046018479807165251332262320150370611328106745371400495507104356746368489619275582005830979975367886806301461636965591935310356415452127868177266621304359138968009409744959626273612227168482463921794097426729303609219680755845500374915568369056522136945039393698131444040230201747656968256666661233190421543498773896276080931172244854755833074999955483180495863883052388786597989393739675605946652768208753141602365753989043416419532556897195387880481061891849196417728843415685015811136302017640839882703867020844667074893735498817919034667025461030966363120526183957148258591098195453337767126287581426854896789137787709873108630811085420945006653294945517139286492566088888398206614047482445726856687644943147939382895649344969862532760591446478605200282092356037841395829471794630432247445220624030382766914629225016755091645256478953373259467158920890374020883778515322662628743281178295234623620646412993591157111769641572234488238667172993970389875891127859507782421136275680756218980235055416284297612690221153398779342740209273338249669438835525451002283700458915883365555968883202398338011479663232298084423919086248268770224726051880550838464390163252082924933296828267551872770163123230621243378092848216168384741322741059234227550208197017591020311559939570465186992144115580158397509976479417237300796433204715750516336522829999567575332426087647498712548962799086916409500034048314058914337184577901501957086111099437526351817072284758478849952479707367978610904259245365473422716873665870064854792367291823474601100946402823359570412249054714825047397186941749311144125707923820851255205150921628943258292564742889616078918980821836644879053382630207944168547834596458544091889765701182859140885454589526681246426502235195398240803921154570993177271372880471196430588173080519719442460398605776065007602409531854410160296421425050920245472436293269708384641384263648253235520285827235765084033487253919861971770420223835284913767913950435739654039941225805369917103805828078675347231038568812045662319582984591734028134186553216815148918207229885665646586392188086357319401869668717359204873544572845562299788975105063620010582290029761093412666614288132464577164157940724868045572205080350290138759123477974880459741678877812367311103806170005765680768695576458757301315130025484509504518061111377180699346469575840313940683784348260761944783841918264417018887314695734532551367928274430462029901662759928639269647772782037439569903614968389544571242826892924417361740090215888961087251488467315246599170375794779598682181159075383574951436121991994176872665857643578759593710391140195009882899234888713270477780881667807165279474856227626686336934668989760735866269572888240508581673416070993698959995124538397645979916492030576700937138513699070426971514400911952732567022144078339455190077729959427081331514244141474119967429491294767757592761387160282762580228620357453202626094461058027870308311385693888517421197827349218385546535344087972343020511975979409455682184292088528487369965584177297425845356574888369585842172357203820567773495319224943757757607984771000313310300717795819003314802957732572545839370000720344987544241294466063631531999966591467607835551340448481865755278541810930139716497135947940265120904956458380847277657689416932675689283773720517799429866035304288797519781748632870850199307887172645506907038985250158421854814017291573348127578790313652729660290713150163735086962734093749839323046289956669744218090412694375338385369323689637100084249257290681419848625880530568716033841581596101953450226317842873263540117152127687798940047915729946860285195800245879479096534653749287286917919432267041724229883617187423748551968406155430501252430252297056376035896195792074430081842332478889234303680245571492781538953301439618169423705878448597970475828343657336915685010355039820974706430319783562866630323625091809155259187792918597970938808542861807948690793034590965606142985739976737541679494033917610769213613546255202727569378164622472921393676174705379284671306350835843276148360723584126644965446163227654145568909129259685893833215250614518137272327707167132918372895050701238672507495823325605990045329137305912678197061289683729621118722231679566129108021197297653571555679917560498222662202841882832558960922166461970674180031531532187513514005302013726302036039242057907662428246916365536790822746782042063598114885286208417191905185667709902611970700100026847539917786939310453474271616264392914560014494414405627608122258371865415897019934046587974406807139566063025383119390843219852309216000617318981904562653141204991076482213157698734083808713936335347730675943696440936227294346860186935834528153427659514455883043043727472679488575219266940174247481739103178215186061173060705561628957129496475647175816986976295505272677026368926741608719129726871208067673832666983803347956815841606713816686371564354465675255903991784279501892389911464864142658310054268518852056807630129814443844536790767229230147094117210284871600162522591503462998522412001840162331292486868604883164784139224358601332606816043371553060345178036581088258974305523659373015332073890800189506404695290898807347216649554642928435720455133827613694692873547949268000489630030459016863623863802407866173729636782539834368622951350042768977443894634368915152748120924109100154442777938165162376417088523522311890119204387129685765982339889999183238709954783273871316210571479978498321507355674966995533504737342270122179181720750522634057660133569798137632995880183784193378782032267087097185550448493115506619410393204730053209129830893555564430965536449568736085815450266318126855809617863078755290665566248086075775110884388600458517564890255825431014834306505164271397280839381102871855552062901003413558024453129742005232976122452935095617293767088571862672272540678097076303448402843315451134853478086768961466048253115974542315696027463063991711089408643681159116472110826605606496895015592403489163302678497982071094413289385802132200554677676225068380457178797229543479787785678160071544780232725588281052929158776646801972156639199223036097206755633850062164709378322149595707875757195355792035141004026236421044799673029259125561706543769517948063281704486723747172221069123526095030529046169437929846815900930388156158520709599339967504944076294786706310012842065566758339422413570197457258014561326360945499971590159561427490778846875220442983366033035710738834184327369164407705033979532552232359995472876450445562099339867613159868138546853755715589151509511182085587916670056034265026139581305627822200529077452149495975963905644697097694951018660901962299081468273992788436320421448378853731513250194027699428027930622229944349792420378588330500266795234203356857758878494543024290449688375240575608508095965843837436919622117811024773308282598113257150560146291883103690989902306132594373295036533858045197135621753040905313899925771176706024988549327343644340619369463067003559674348692426805650926754957875305357884150303515229076819864734967049916837866939004128532701946381960341032686373817903740040801289392411559509302337260096399811574967320561531007227413923356837412445737684250950005315949637637133435605516087428272306133957433712410252922963502987187783285055438334490507277806190937947483230907722459285347771830931647907975748101309359930413949065105034943981926680808382578230672789703345442440508921623699672468794572771284434994798794667653117745761484658227636314690643867650037605911030260993786376869622822542864486554256415713133215805732186530004103958768651153548511472355560671201784668531480554870801948476872163769431734099872281423475341899971755384022156176621057764375799174946297685422154268018256886136871579133430438710247646860051891219500167905824157192341437521407626409930012453407092722193622082921677404163249433460832123866108497643173074649451308569254878781863450005275005655464177420844639990155256415827111283796495115019141079138205328001578164772008143825298183815714659617773992911854933338308997874732596526344862424171734003988934450307538067776362305673193555636117459457463773262927306632286151088979002413824714645889521528901809343427528207437532489984624208832507947696497622455505723143563807903914433764162830087024717869587763770212819722915000920262882073222430950945103778723935452757128023262125955807435973057189306967780202380860201681031661485058557051958899602500891247527496348574418477952803000142309875641129149298868927382449153052392812562943507457786353131847129418482502570163667801663975629532671756758192664945058678967409798575024897702886938271032846713348041280956304887820261100863009218240485934583686796239664230328628557134900738735715357009500501358297249181968888303604387009074681833771455527853102281919718189824037068207129824455613803992413328091649827132257078636960527549982588906285823768861381579597349709997485346308859002712924385894056552865991006707833132999755866413773328720886548513888156620461637500220252417222014606891508883018957919061399620635058017341176967743657907343852319981336980433256608285692464915327380750502510195668322102661420163887773605874772489298961676029203765590281345284777069160200020185091910497650140096971842406089718747791267729995583746145474555216848528485936513803356912537841294136341494531985029573172212950306255046557242975557635268179165904733893580734050791645617778369435805304774905880554233611305049351685404165023950793241781756988127960089298004715833467643501385294890067361085070046429561361458819724312153127013005886489045565304221345140283753554196168739133992056468084174701840094201936819103885606836500447554069195046969404753341605973602380602502106044747369938717594431140973933016016532772769208578504074534861077036372991918113504237848729687882548985705632844825640928331684858663207027798818971867612433716090116207118339170803984195771754357786105163235378664161568416843941631162457772316605690460397032569187851774884461969713452319649962268562369299572374071215329268905441557397161660559512131498783914559439674787584791094856807763293738311306654515581403833600374963603156676432805936338594353834540361674681989261225437282154638179519727172235515476651546197789436468376943651188500653703660458756699246538951503291703635910357612926190491983470995145627190784700524132711307165682700197526495775007362538363595179400801920418554510282896507242405400510808531927975514671074610585126464800929746696784610888300494384157596196529177552765917937723552723719744726358793127644266529355210143369734325507772576250977848030122093545882871877871824567202420620714303526151645838690411458614977482343693520980045746029044944202070912014762079118058189783896564906845508547571217939817377840563394923761426616968545037144345491560244749506993980608745646596773662644587777046610048387697805485262486445236557553547301872733353200323381827154653925731976249788635402550275657584777562404258815175172283329346294341573749578039128126243080174169561780280584702830155116751640205530588566153409442331450166740297109665404644739043407240635510505794864244610039666327256170785449633588827862338836041215797691724497928771116494724267192862364837213716848875938810510525468966542026522426344296667522327745084077317570459094858540810487584130111686775950864875700380708711996350922976840754918588668703586028304740226948750369825403891989007147876209471187693141065801195675701791052544672103266074144963474499220664616040781123107716402643599093654742363213684861912209762633330229865157607814119321080846457169381815667698508733683012425335199995238605367432206246103240554407867676384323759807590759959914118278377617512725225133055836986328591971256321701039348838910680088884260115955895660419217863227253646297543629064567754209352861668720137493478079011531013755712981324663049877793351011488937981237872185464132531466683804738867219507019998044277580273549863921235548384921405371341681756242287108272015130295398946771505134603021774947499094602819043777337271651302353364923969272935984254106139445688229550871332455605837044127649263445207631069538932729281214769602394694926108506107189454213887399675601956722231339357517934274586795710693298629806329608728119285252377513907976349065129310146255355794173410185112068657146206517924516251544330792755828471444966795594057823576226872644830008468605106732760122586877735252411952822107323312951196575081766359494391518871470913307178649482929395736137633488086698387287264593063264911424089766674332179401012602267590148233222844090287974646621675430893744910861346443622567545129055301822685339927674055316906736684460153948148910373945185041914437964148680103531240099643808413059134934871516013754036688868680457185425818174043629718289038565803999546516219718900160997338827558287889925660786185925341926249999744578956107278890133869202286410261660053238965001114117033546358013883400595946267875971138921843499983311449102653588178397266320143402806859498331338665825975970054559587841419617108211446062842698903766287874136385299707604037041566071700153070525532659387438440722455529652845113982147739863793792236186977934802599919375814043042233751435471750111387536726107731112029482367986240478270992545288536436539423916866076944040332897012045387933599424232356462066503255604477677611681516718057227552949777115811245693452670078090197543658323627985261371030181884112839552146255600929014871422463814146859867913763171162407552872322057355394054120984302959623075082579383592594144966591850516047411393194596156755743824459389468681551509223548810221187905279144028201711265120227359509261526613449852185855797277569046190490586437534349720900356093642552392369451337374645697952043419583704297245839886278339720983695402652271061080331023470025537976444583869538018523241437728756324234911668389531192213004201904257770660480313596567583266725349986393825653671840928201803383364927631968264637620020908231453883100866745217732840920324469309407548785803000597284573230701092232656916327273423473438996014330682112584113701614694410840033719100323336344892619720620813770237299580509724319886324261836139412773627189439007773437641616265799400993215313328580152136136324699991750699421439011422321815329924294378666100909652764113699497605155086330235193671820896999129769103017467151018012657628096945140917784494314707041663507079755039801167020540262496054468465334431806540961710938925282902013069988705921073625107905320317363075802091255735685223129185228791127356831042792406449792279663465206553140855706233553364412557363850868143807890774126024163759377070524789679866610199969399196120881323413760881629915588430072380672917757983115594483222945913800770136083286961006174024160893823976056536897644764515762455101524931410457084116783177487716731697582058348073713308040314318440711107023372576633968980105648510422959777130336129999872918491533440533219389410638297884317661482372995788544693282736330977801511270915029506540521791162174181384712053903931071850030998205718322615446644673578174244631854072839695531368895231017826200541451765113520024046997397129068178747712410581851753765836297150871268733462049236404059778043735725095797127332237643761288990764281711431893327824879290385720069764739495737672735094752932090676795579873382231002347212845447149064237061393990157428619997327182504297692733509630877736010913421873607338987110011967709201613978199257158471608756578383864349277299820032463073857409427835359577174927304332803541864125768987079041489247604786722555745338018462236780881297771813544314152524471844199613707084529916875637507744624194447405681463410669049086687592509408262339470977296253762586019140940979044400143208742830828870875154251710542530643924613168491618754093585927359337121263839089513625609166922497616471710402668767635887936457626470708304101968365533421358476326601683180812127577498436859131007745123068955973503037712024292477274568360716511721248291862859572099391090785619709863982416400992495359259651841166949128443025748539207747365526815958615271494594555812575686291575794281039722850143983947153911950065279501199010633557405425992548087554489807647106097516493125937466580906898606983761768038101299757763105007827711140610018312546358081065267126760830565369229307137876179792298122353120309058711305510320305563484013998777128632156251750070269045431455294129743751392659331660156133364556634592487166398518553820251210339318971329186403948747477400495072979317534254635862696204702362631154029578336958284343055073632518743685980346724094850714293347848901687718318591673337049950396137926406486654995940260082561123635861557637905441209374572989816861885965097452815869070169227476196412918933602971087553334833999167648817394373931432886516383649724341680272596868621312963895245538034740170396535877567118444878218473846569942527517280474676734752579483715011426796244368378457738152678583018876939755267747696143950188616963879984801050298051169401445686892012697429866039460915898280366205417781095017125866779604211701928251861190619500100973156761488675139538068499906000679423008637007806611989764310257172843640037122735404111436839373335128000948599319301802899534980432293243194487131356947490563385017082570276733567106065431466461397971851694672643857919664236440930583288176932533220484342266332196026829878600056824867203549752570232072992463590706086535493816616905244349616645531374159226854229576459558207892743208515631490505172250941101315563094258789410147835957160864028085752663178077748576957926717386002528477863476829718823992999158981890778634049421113570363219680486106273089664440630681587125055939859147638190019168992211346090128189248533523987909031316456438358022501672291831731129393123921798815360468296431179644345264685774034074293039055477758934534264698826941143066307863252189681519166937378174198544780288558986905813413098497964806794459035227985301702374047671910788705275329775171285372268346788138056812624552505249358492610693457647512305888351727339341019541291844867339480507580844200458268965242535528782940739010745294470093215420036053503700566645648240736649335163780800453825905286500031474300607707319985292687332603190557802030247272818199399733821835347606062261305982004628405571152887460462689882222966097319753024275022342889035119500899310047266669409163025025432080855269412086033820544084577024548343931095941620036676576021740319553954826885879444563879270378573778049319253270889458454397533210238353641440884414944414034967174096990217378890062661869110058199048996130920935618689268173684028840931955458783557751792499217001096974416354816197750371038812571488004182491700327368745809934378377413657901390142965748450847926601284034121575096306588247815001836232581590949768198951961683633391082166514526100489113005462655457075552989758252755328582943352194600078963902920389841249056008523924188416585843633329007811880486361033975117968937488679635401078834022423738959359032784443762949907329726999580428110591673423575808647734555206435098529350966145397456133234778773924645033676816495149359004828496555022922454937661823187642917693495369911785588691734381361072947963890736713159733681126922286932403572985224692260687811709677144056167745888023454675783296076304914778314545345747886251377423966135638164519808417494188933461144626297795796067453313052834179530612008615933653294204050228629343350683842018659551784341794682774699821343410612416627710781056103774855202395406908804423814651429048907588333664375210625797958659529993715426296637106399181074856611123762090843755797138612207716209341126660551718252412756317529308025898600820473158138896102873704811279005224163521227320555138364790095587734104916919439876877557487626007581310314574174287205457358069799744128565961578717609854249694873300289215910507239885836265050623860967737314678270305371491637729133518927465732767711588118439173263267581223373264558828659545875065452914740996108319525648172591469266084349201374055754540398657731816234889111978573262467310901202111022738909087650190837675068531405165970520208487549156786750028815483450081761076823433079564753981372959444701332092660471839412272478026294114616492266433858846126746350035727959960219615188930592037351758056845467412602657693306217949599831402638441382003526618195688781990770561656502170284268875554927005526869067880354911574028289697034892166235806406813070487944647950187585088933532464325431690924678457078399808406758887609632341715871043005273845558186535863104177071562588929431224129423331158059972258346266194351564062248337984671807939456425278922360857413186696328925671044741767174112979493691765233321858123697899124108988606718068470616876453789456459974231310422584719240442719965276771656187096766703876419306425988218521959556729845528530532442437438147316129674430283373285633335852773620518727479590770334345085925595382382421255439848280851892483181133766649426280963387527120181559136275313919243193810752280278226365662148977678804689320057674592251029304815810407715329600536888115045608216623436657019462061605968666222298440679571370746763362195454835602565286341574167538502622843921354246865187181096809300585603247435305041706222869425717224612651232937631200600794212508226944523753682672424894648961896476272620485955158675666604497496046823778738815476494956943192002447229507711627822273210690023628210668575115902120604882726971819886512792429089615254367345254356043359616623534242880608952196275167159498880221129076873087305186601867761245164245738437458813214779196251353469372949484581472795905975279589675291474709373606110862750531012111182347158963574702895906598504021680916176908094465337078831723228863067819017573982046762520726536608028163239471243844580749775641412846057526053104596977127863805632017628791294810546033610707484664467345057265569106932447216465201090915032671238019440712646899788210153153114099393628677724579388599849205895326155775453233301395153104845824220028631357690661721513491535916791174007422337854162042591251173162520085588287608627156877733502168389424998955068281898668346409360349873293477407447851187528393915791340319625399723687888170631644785421474986984632247298451753553784194373274145860859741531164589523362955080523319027437244857406859042571258031868443903857989056240921745541886875479819159472132409133926741682819046894468027033075450172785488792545135976660070200577244905155161078734798751858317182452121110870101596285597339888725552502152534710285374934278917378772248070327935934160864564724901389729355111490051638208207519852470824749735996006455550821105283612622210759313797493973554233004642451322363686328836136707916625884869600818438432291153694907190344904565259682668065393187012239810176626291200352915802731820505739476471267284780317677108636165721196734099254770420515099790687914961365057655987350015619416074489007975745732781388606651179724192136665032277556049801245519961309684591287162025903964839283998085587190926149871961702335966427797785666165965654151504066369136581813730899734820288676126739463395990693262670719176830283384586158731418979412368669475059355515495856995765468512120312060878051373231616083076732553917190839786913399179915472968300848349262184180180898941237505996743215663781520001304088631822745396017564443376971487768004925358569528546436478104916313556503166726492700550889826763440056426166065031564647492482625308548911911512574132802107570594668089791968710689841817559612749185060752283531083935176004143180109124731953412351734315712879881929294898560094074215491468528044215511402803154448398917764267383775386145743765710918688226997200590963619240053647805981089584473057829001636190674226387900477501431933457006613984845190888283779514187472291265340132862577831441644602815282624290829431546354755351686338881594635089807466161422351247256388544920231276223437180805967170995911968011238206251880259343184801317908401607175950781634610778718663568530155277245947164216962333298477745107205591764499775209861307177024999136198632566961565828352137681763314222374408971804985633599439731471884056357764111326822589877463343954049422988952567644516013425835121341525137518902574451853535239469562506469373193579683495860034108580215130701296042449056957045374319106822308854661519247945449889916978454336816177841797909699909071722494503687143018985666875677950226544940185538215803564971842086682603312907021140590257139505280910435622921600605485717776437421879582922030801277593996349947374379395959536111066711037905468485848341715227984073200217869835481918860222257895875709635688948203746636781535293334806178943280810694209897977125568584630098333844298904309468358336631754442932118176420505449015557938079131994234085112597725402607018412948273678412657387397102481497668544907380433248183817743460576945470478007428656349227661189535338529909066846477083825331647087853035692908287727837247797181701934244074079921150549533400038801892102594989736083845977933966829866071322687541401168511637821598264025959392890652483983929659034427825905716948979617545568508282768387631867733058440737497197641361675181968010422554915312407751088868714266093381032767140330783772776372830877822022627211465397476565278100370814211022161038552131406030046522901662516692896369249891763218854530381621253295479690264839344499752992304723084352498282523201766185304242663765087365284270514968256538045325971254235858118096361507234503296518406723404118877018356454111334352772603707768891744706502422264239527794011193290860886985986821763132301488956872660048418987943799994124896809778016733913116876889620609785707892008555911841028576314608232537247290366006224139634244951391811547793166128249450495832745502558870295926622590152191373365406817543359618853509452058227616430633271040905624192712840053903692979405535782976180199289135089484446320777056275829488992212081812245886677158669598784982384204502382694968155745048247044169101539043042246686180135708350695330503240522350309784542478353888936342804435727979351196313984758903845958320105429957096672997292987711568461204190834948638115102977131442845804182474322932004916254051336272061577229534050143988462896425709914213511451782442379000055998966039719539331403951455274100768605025818555353700240035946532663487949657976060822048199014570010598347232964697865640409983916418403791283959383335975642859538649636433068214656889015711748185152146278637688453297089930261178287233366133174196041624181376143947439771349764179906504896707091594977797988323720558640419936337965704914143161552541174732589687351646832886693986447038553844947317639514395702468842009353498692621959942894387092249932932350392235972639501833423587754557747139087236015050999573801999024493493500024434113757234649693215974486802093152106930493823975054349526550004540960772157054397344457338835629977515876724401363243915688458446688921412027282730237652090971819323423586620940477625880175267653508148935196949953317808444531585308200937892816233412597970520780354718443297145378845746741327925341751274901827016540159939906614853558932298537256888488474273908544311981699933134741467675025033488705403751770987646679899770118744822708436270989215685694477086196448594103476448145399563308975463169073997914496804292913862995543824189828302730008546689689051716070742056582053599836403621104010746556347439590734444236146679383212089749671569692582645618749894301413521231040610801419374922227511090352564889718518300684903298640667239932505016744906533283636590424637885364676132601763158343737763039530369257794716770987430502420614827208623323204177894103913110227931706575666066606196952964498502226346905651520416353267594262773874615306966340502463835054494145083152820794742402955158238030019605605544176065859125694851026547875918509350783624415994564792225041066818081304081086037967047524865883378910007675367525232788690336108179574317166584701329643382411300236430033960279633270813472286538391519352915927722550983329994141879723070724532989106719792072113170784731093866328070388638178450051953168549809347509382552430552359193624229589337851781561461195031232306542943372225223619373906426547081671653191654535318019190925875148710451304052942214310849306455265799793744947705645301502762052445946790810289696789167177465374617611739327100109631792141992472194147667086100853245169852073958520667221473658103298123284354767268900853845316372177133883157891427854843206174284464641859596543764990217297407927516166585506307280565104355979905131113181320857501598127697698161716671758062371728719923450625809784017437116217481998977153629217544688779192016703144158032485919419751081984974621416888698467900614956114673184609335356929086670255029002288826391113774201830231248195739734568122365608996713211361046810789098806310279431281761848293449793221219071466383421197851985662464641310573073840109188348840645529267429507284425145184322844799802393430139621140346738929117963435691962117465940378082565320191781276596044835341176298289876052844610018305682115842263097359991075512096356830688178110833085633981748816558284873798573955320627668442719864043914776521908482385549783984006400447440091376453244988773746141054683532497344819117634245937038003855809603422039725303672028922544546241593528075915246827967501687091697325866829354042886205325907801271577507549256319885866787431253450015893119335341449052898919476686097793653579507287322457043506457099192158560466945675650550507987572396162590877533676115867459036528585478464838826127639604535125951465714919283622667190752387774245824956674421190908046273170019062663538669076862323535059116986720143873873789504366673650123421644978410765813818840000882639273490606230558871436014148073821009820641586571968632492117525888121771903547381471767950256856485281240139435500424745796183424895230688296827615720580370223717510848218711341772300922774284414820257959720626619582977308148017205835171890221042805588810725969663852302673164000969056197761205287848277945814976725743053367825485591975533996155282105101382805256270339760080021661480129631073175268561090688996952698574921118893690500593176880203612142690461823870267795780528847815768190745566727740464419419860566305156095798656229061721966058306569323137525911393381754515541706991568032291773069026522046253553773936443839269758846356063733039071842562203268274453495815596608951078691952639490848122191985409427388193766457680254460791333230918585723823177959655987604264171801971964927422820478414970236337474522737061697112399358582545355388259198367716683114307049028083119349557362761951048535608524988117834132069051415140881396629587641174820173312361470039108186939404959949155068700624961162055570129360245941567681427766517671610059809938365174715666288644219099167460803191568467272196590156526324086001582818268637670590705928724660334508934598478463320253792174104596287026592173712986939536091874684542559399049289385448192359056022991937955395263136566746060481171935602001612060017439409124325687579438631777305712961169358309953216137301060627883885555845758677267954284032639301968355318656294695437589612175138928636695117254247498205495509344812880192031965903087899268326838255651267984212339745205640579444151479135160309150065856503240240706331525982495107339393389062176021361775139823443036870380592210576190160309315199915261074424988677325955692937204799427826460611644066983229683148333438199568285886785949753817820094979232830900187038613117166382283194312090248569695412039677592737687278623932945861696817598385679755542681911277434641140666466526702202519665722226225199869137711641282335761729907755820205799378275786992338111925094805971654994517532056812980291818698085680385213673056755051761746028898897088547383175950940071919181570621000675329838619640142008328513603307667474029957721102431976013775817704075672772316566322317818664358894179046751514037112371577880401818834129751812951692092102957841666209455075063676350135842100936030890070478355604408494361573295870114202237957692613811707470348260098749893057790134686306454586499501881070076409036849273301119569534417300483609989562989625709792603216635820518171725728619668293009292311191564587386291460812632627582648475090527525490280895312216943346091672953457090855927292246623544100348805305440784691117314613157930341276244277445636360449391351204505185756149880678351222943957552240358333020280374831884927229573239629351004683056652009715914025385816045099409077459763968474366178252194831446699337697641611153638268399458352030674243826460477557850322935204546902147355295815870563302325775057436614759873901215055055343675368364108430563655461757814619743387035569376114323316566906799918343126377722198093125006978833942999591631690443363084926781979886640661840122207900295627241455101440264454484024367209802977451887374021961931742128998295572785155920093740491426141187733671008234875715209241892859666942098384676471125856998505769510953059635169125478449264354300435326619708836730615713995082975469632707906754326779961069392237423160453135172186599883530170509157956864959074910828902056351668797869067765165437148844324748153960330407310976353601380085798340666968916184190957956714496252040522019032952057509458265564178224683551433960537282079619477230348146899130942774745435564641217808278886667134760142535726601343003026495874678218608381041529310907273013728790954542628807789038113843569925238840605635924458459388264313577759792281983897056350673407428716350246555182695622170095477486669607406115540012556688608670018493027066232269429763221027908573602208761089238745394289506739603758012720090159775503295262818215287310195625191568051907901637483518013099466829267076245775597536659949863079992301989720486106027239690822968191776799017799023855770510004917330245714499888245068411495912680998753115620143707454699075468193094428294441290489611697404125685876742268295273391847581879780291281846920285033169246279537176199554053769820623831984145814269078940833335724071955238695786887942281374818110350915031219074074136643746793205409738111693824257340422011507953345855740053132169617973138112941363377449607406224707726613299746130476474421460704184547636747815277832768905993248788736875963013558443982327270725248016658605066742582083350366650447160693652394913199136225685750638145436333224636318267165975567084042647993963241273102591755799068750037919928302402518163959806858313823374784034763487314761932179869141227752743423249699300018288681603371153092311366091667085931288283152427663917947070921472968322653567334250233101214452339817325283499867948689213914123810213550753282816721945402765967529001995184570205914732527741305209895415597689658540130653037776417498852557951963662195640500739200500852642964909379713537024942359343095580783773715863852605803693994054897650711269148492716325327864619653897331738056296580894564685043643277459607756073747603592463906305322916704858591461042117982229446855175530554628096997715845670467082445687805152041196878107395806047442041579507952394550267322715971963319324509418454281578737802668062441599827123674774287275099926041472506473973943328646612883756090473466805263596256241429126918151403019503816735015440650670370001243693108323096409908576392185278668787987132648354710633429302613916741407275783882039836418256918189888509053966341172346615658627249984914099508733650452916660330263369270746748851063584077987536789218908078575128534333058429225613140679626570736486772679503244984381651082658564668252969465550932764792420473619013482228572412609634207870461733113483264492825392724280773950062615370553164838668790180353153999956370927121485160626685388520568416126183275727262787718667815796560813530716017559792807266438825377606924337619431860756819519814371183755181348172482553772609228495342512875677030431351950243687208331178145361579862393462827354094370294573957233349517799427774197782618509018748674524069254883676113090717394885727611669017829907834622200030568434477885620955433612271304119733141943693035330870221148968984121468974901152145210078135555090071461759490060819168690952578046141088231106600539236327601437882124128089638222331455860977058301783987271601600074181205168653025367317204092717427313335275202188441096146519917375368596297121255769126744609437881820365551374689293028035818340599002483921129765557358527678924738119049000246232285021271661914838972129403970895563435729192301020440476482913847557298373810249587396955293733176602277983989983705739314690873160589117369518003733598994233583906813811300245976799667388126768324930147073129306400800556766475653237423703469175524812984660243882731746174920814138912728246345813480809071895609879354119752689252239507729570574233385641623209020301533249582714196593635595322576668907621469041534326498743539935242126064577139986360944468080463912307456882188179393015346218333244332326814858477197948452887207373326531367378768435486505445575426967794208650006796745130630726945059151066258566497124354301769174595331816277606873673468908091297727611000868567422041025933814367705130819879479069076096495001019871180011978811436254764829919564681378823375284335888892055938664185074009690537199507774074356107623610510961619998428474514707585851520733388726414742597509826693462974925426248358902233236084864452983192551575078982450303231388166944875778008986999365494851792473936443545436611205218679853734944099153397811119718621373421443890171140978745721287581310840255872533350638865426599371249347438929207917184433925421534791592804017803145541299899114899356585812187704187686427354250713762934315584536714824195546423346117775057767029395331555627969868378866617376105767403233032631227167639470250853738181911145201267500182996726868869406381113388959012843634522673044178029920867429391623616639817724166611154629059546943135294495556051900302721405767170616894335626488587347439833722500834845267168772308890259396374491403731637583331943162407891511607696172377724599028022539318438837080367572580918478776822859237262082725983695196321812040100513872429374117959820530415816261789183218043899138033120209586830345876598309912728351925969718902533228039883633715222110175806827707217338856827049389866245827689781504732196092531253451733070985899582609754374317873041635907082568633550405393429341307506439153372656014808399351801227895559473520087744805382797958702353673203308984662553417110091547884610873033187242432799529202420312259558144679701813012961236158430898702513118174468156622742153550038559857453268664719899765248679041205256891532468984198287442535491949812854531326265699328918573376746645485806287965629144424534074134296257292934446581559331851240190137292917069109573546728131404195530346321070391080252177693281244962874096765553208544058351941129517165273566255313604379088911990692820715840703057792199000590239671082450586746085525438410851202122566784750669228299371820038392360524731365371347720000720918223906940730914984749670126570540425435855711462708256920454537415434348248752375756433617952846574601468865750985084570753713320697794611494250244925463231237486015851356047790719528899565148994243064368827041539245730616095746393054683624443662824285247043065399463090075836625211307486773763867890257298015675275641480107829217076608597490410536205564328133860003064798389047202056607981190284515938191623263406260889122898228580886349847560783534972894417150626571984396881377708896027120676933832359684994387415148887097168475125432132701818998737653578801830520214090276551789766453586791240043879822166189132513272556748183864591807461210466092206262013208431364392034082517074595100375877240230280664661913261183803596188900283849231140887927664842863498093862149044462782053316009237926011983436737560388566664752163515735255795237287830882280474288860647056761493833667181495641486295116372922115994192019501016669599160891589221033132419116751310750297283804892679472752292906337457653340952832669604401298071224058278695617624635961534098184565103432576235268024543830631266756609001026351677723408618891879025669270679961329704374125609717611682862353214036107852458809324958273613395141054357883767840510263147480533213515191510397039915731511140083420871219848216242887117094795930756932059537009350993014892073101779821152109317849945162560328515332086527794423968863553364709940372955780422910255766626900967207114923541297516218612449997928027591594758405410527968131103293950968662585563778967095521888882355684042801169257514035338202506032386644189782267950512506395593587860379166102246395890795888985201429036710460353766509215197222832436192804831562390150931372425219853278456172825150143765466630129418790267777381668426129555325767309138686828270974145054901510450916837528698077341274966699131484162058678612712594587295250638136647780376867208889078922785027784182289016850461485915015065723785774914601755764000574829897182917299723478524004526630577821484473536618068487943736217411290436422110878903283708275727840234457439422009963077768015892883089022646189683487663137600367082917662104526655858052693216789639836257697617321097085184430144320756278165897705726947639963805428859533247859093074308057751613655648208796287978568737582010781887194979691692892809826254661906422694027674498381024612072857047914678620532854117180140304631270886088072480779628338333103341523707297885051007632091259081829654494466691643819048375067896242804333714411642857322077521826415515715553434930090557219706277333878285073987431722970549515932501785160732519062154962791656255163385038839711953640358525212396588451506058185378960206409851365350190041600799702281998935695818742679994420732245335894091240598689171294544961121827593514590035194610274307179166167978635377729685735999119390749243955500851899939584787786384792627225920243079710726714330233044649056288590362176035648239817391303504174259347009330621934818022490754314222513645902108908998181992995031552822988995133946173755316921333624672059331661247974715540379304999397718654013794414453369289142118555239113445730237560624128787582367843644450719368602746455954191707450940405618837820448395479129943803984718984857815056348095751270598005004173295656203365360540368518482887414986996539910957089216332908264681485295281262985597889763737117260714774961453905878197988236164286091480211344803820981788985034819925261736457175781196678445971287057738789057661266850295094199424784025280690267346297454157886715446407007899220112725536523313637339733907875775962069364207306600625516164339559575932682610179943428217712315793776226942389748873542775848347000240307867989141145152179379638797211510454843938992280622529584141161716817205017161813290515126374765901241162511147084962210258392285505605308169739007733332018620358287131389039003680472456482830611766556984189804755415420152857853982466485138162514972390198221156570772742840281780051553467169368910677055979054512685368872766296786258552034380051450205540183464202860005558249682035562468836103852003029198046780762667410953510528552058287280450626471435190300381045214339306408177603308146754686389649621152927456112300018301621145498223260984483355879493015505169262443051334175437728226127790785861255973809538857616328875162046753115696953086449328910218270564449130905895772399105538664564930146569008880524858627344648082657263782331665472577551186789617901084711677972475199168985361139361543188352381511755885585055821504226359786811708873540274478868076341048599057846700767174077566694008440551195530843913018851080832995899464505083534992047774773306539075944428830721305053651286172103151860337052075505435092851054771162744143251240483181025432966645973676487266210766862047582376427132353645826118109322941948420077196521229755084319067550346311979775139308853932151883207690933947505796981955824631001818513892360760614331203227209404050250603039725659850931719486018863719747624924728880842324827600859944534702756275216263901569150502988104452455872823721321160028422886799668118630923267565303864015497429389323957251683565511755148441979834149078981538807721374026906247704667376929426656149779237431399221593406201296040370057527738483093021326270777837746371597998274990700875240847030873509705236325249409407006788506941006321703413071932571873477207459652795402267931622593909950719700716621418267989592113569228889037616362868927481783733154252200828904645264451259545165882277487867171343483892401915783551957803688600515727651901095591879844829176955676131930372213432469395955384382541605483846428438399243121349523180973444169009436377930783449085292059859973078941270550978279878930872980872037621097837113728821395536999856761988385606449029128466977160005102981767766554697999005756973054230349880014091150187086087912109275947174746182695392695548594341626925787109195870956396056816710895030415782505995643156435984330732631554623793212288235159033480873438946146360682147301189604616543124053119117454233527522139182852365393605721590444338800165784273537320144782164913575524965996299837239524374847973396407749032252544895550910912182819152148188163276855709355534564977078518690234445904971221693968353639036084353140960660169936012054808067613008748545460014435252729531126585066392388713944785334279787433663858464071173026025859105306970021067148081849654987689749937086368387918952790031424061618686796698207995855605695581682507058446371046056532045359068467734128042462142017614209117204447382491588735879701392030994092381341997286919692198867820131638394535652960751620751344543910701154370529953277616205747575851599282403456109074779238669827367833078309207971908287201323994536153843848791715077447983405545457240458302494983095429117855182557451347826054240370661934338246395828383030049002592276343830781190985608679897424872396068840955114023910292343817081244057236070390788345623791982966817177531558543606408643820061227675928335518472994511582869948898534323689416793526413380466522347680894373082925826671808814878101307517009780885599798191427178111601903728327749242283251510422709414390713584960500660730040061959126495265189270884609626172507956603249630161027797161113111024616927604244795216458572510996523370344205610372721187865007997969639857424179928291111566548689773783571227787402289718686404901850499662240923553997230841021014719543124403064727013384619486035807893827417695144551579708263967294827079911597682843610276740072692360251602585971790417141294746583856913145204950728275175309749126046089754890512599731410758921547279866628345962447826598823486392334256579994243924109539571812740451095448918062955723839762371933880812822384571856119245158286638195171844934612947204581561843602350727427865603240056294396415301120436017924735739380419041603068401743416914570936121869234810565430894865510444624698154112527335187859304305126093998465185122519290589630580472268780952083211824624779866598157614343316073511960097639755249278658163622162976855728090623314656665023758040145987938733552322911453373253282562746988725388966553903348456754825290417648218768718103394531917880414565651632007497222152427042844672997021915421657613774497955872973556537320650873594893175198140816396901541655897905893179542899896728551099093999863018536982393599372423639682836772285293495586558978159901449738718650799408731967329502315679859616765963473814732208598012269925333483687531782805854461537297280513920581531476830416618895574390428895204727605492934262125756669440999275550866260211743840365601525992585019386950942492548021469969474000040415165532861151687044907544924108474963473181983142891624704184943315706881276310147822301293024623888478043457672148438825190329844040020466929529940208550476525327826572064743512967070498768163123017286481998593820989040831933375944388662013993760698252906489675891264510448124504513137995761961489519780812158095463561775686554303969476831467749274760546877690794237577210450410226252400721327975708901903608587251541862832620664909175800462318836229730165965287393588818966913565388788596713001056266218957795116712938727054017573486574410195329128683249787129414944922013230019269446598435194871793383956049026305873389454958219223484289864265485964692282419015992497930792352476711507429437921583674089479704645818856638493527157501887435719007780898173584275434746376258738714102568071625233401426977797565277519860016532044712832618235999131739558840840296471767947426017224622029368169731171639422765848272696655763274995020509996031936854623493129957298313773898957844007580734702582674553645622566299498313057707052140590809552178961736807660997203113420693614852282072246943687568269895151479932998072749260841487165258102264831730981352789774828844957776761567974120625204240906325589907438546790522407570668868949596238226591707990237042286962010859543549249384404513807138867614186953091514091642049462807322034966192894475573593623000727598286900848018400692643992736105082862580769972844122110546361440827153800562796841471692169691879136408749519949719044365618777570915410810515515438385986660262449086566829950115038051658995432790876414004937820735821864400613494420835356774592894912207392749807179256800426081844443062947027287106587859669341834337461460942604001592712530091031642833223971595712047516998442119063273496200554029056157004754683244256343174891638710561379023491240822762380594909183073316180362486104996388468039771645186462685244620177938070893277904668691485122575267891850296354877120108325650077693464743026043971652452643111126811610826543973694365802009310421877534786301858147317306344667906339981059285934322148628147470140845268019994036933894689448543772050416166786820918368657999940864726388342057095730147660598248999259482044813472007120467365315130906646933607700741000415316643026824689151404174163088314271421534310460388159522663146624005664712750685284250670591839382355484594943174169545428562914206680528191151522214295915693660033880540942770733954738619996605705782886969867364726024132897091173693404395356223185277402758839545014334996137667937737538580908132256327337207355674462434181405722920209268680842548810228568144579462660211649613011309321962121188323275840005612133655240249325245917793884211054742093501225188125684898859434289953928380509836292450218421754303188145171227430834151025312812183693758103628441405808171295168015579340674571113840733097662595651783962082221505746784925045404823523869716309431416723931730424571432091944591545453391538345467936160026817014997476713382437376426944186063269248185674831782217034664364364015826820837491397159413983425764453604837417127020393639851781264962779232547080446493648030990891245925074258784828671602597052634625975130638088827395802864128197367186617788640886674121343484555151226598053721962845394010967315343288503527697180046985274003001055182875769271997580025002968366350336974698377189127847783072261598330221267897923564291323258493219903437004863585648476134667371996944077295389832180115096042546279148432337565935639299839309096720986080116315073786913905189141810982820271480490481609634891082418352014206464762627855306674479230670868086832198345872772233698003402634744256836389146504179244261499526219200664657218387799453143756528189926871018833087333117049088060760864817765565180042507124879622223474734130132893419868816331336463993777341495697325115053549609162957484987857611147845265121069845191616801714915897745830748645292169769097317812872907510443654135916279238503553406211099001384822108399833134244244509927583571154951654176864718342135380231313421664083731848135433935585783900076525105935087867645811566895590517452709953862075191304100478124917459526258476047662432006167055545216223601156273357798691073281910727505582123877625452498360408601239932513361349228571490238223542233983010136972620843092865516066119430684291300369377429997313501704447258932814591891770925564029722564893948206617610143493012651836329777075310329878831999112565261745553119278895185505520276667938623022141787640918113578377467527648791543962956113574248531944789988902930875937927100800045921413877926490651491471014945521304635675390610027912889044054124770335588816182086934332976184365624560705888948835356491639661409359967439154000823963114296441181156658536422612837734310163114705420559370083272741625003872373820688133757290881003216568810453477071268709466828309142796528842185625756769889019648338482245345296970941695710284436973589258320906132541297598134268722046070335899188197439274046149959039999669172098106494105902166434433494478764200130272218406364024739151739699779396639217969366211909886480417803892833614944689973444715828706881654201088304949706697708483923074706471724198807302661775826932951844964817322431615252954857203096396142705968668359221287800685847496202938246720773663009117731428856218157637831516280297308992074827623458513341676895269696568038178868918632944693931372390583746944512120812620019653430475954019893382145367427483788528758024493474753730508561541546682710006632114601398736353776829098660121063145666078379928285527783564552972189327280631567124573632803313974894575132080043125812394497829241252429194993398414819706938797486877017888267765039272480034069531635490171725098996052255006767051419866504787218452910248501899300023741371063204620548162046970310237345794940989557697266829627797890724711255257372828053525775780676107568096874792972956192408566731366095097064463782193224094671097482002904308716003271859347182499706899103472739984042366860033451753185513780937971254948035391946499424039749367844156274922010038818146170979911143810326801761795380299690947984783843211778842426983288202774362010451580830257184975121605704754267589156773566109059816163123580898614490996622342784393480802521362457877849231499919231202602282307087581151610638748698443386641434355130526670380911000429729178921804864098573334648581463961195697488846101235524525724669445760306063551871713813623888030029758005587653874467491962005686457630313789837877560067937046360959783240612601380722797936191228184759930140705567324533741751581865441209823191414336015656646577050689781531222677802529346806879200031064957039335071161900716577106294076449212589236611821132200915803114712969364621292270592573851959342604825788311473761127926171526555137698551645454011451762515431751655256219853618371303563700431201840774675128084759407369286087322685551956871167292149723644171703342371992789043316197017518466301480877137242122008289553065492619647348412391911539741459010711437580268681189024475180054937663904618138447599340033397244496115582018213868072339429003974826928042521634737478027016464392271386835204623738104328498657312731065699886385165414312278685165326563925067132098445220470202613061130682618690191606008075855770304295898186892948210021358225526981538876832079469917264243373047756494893070681743194810188957116322402056449549180746238289832687053485611676492358235364660844601405194565274737955294629836934306582522806847279516481618179855771207970220111852758878535907863706955163646241097570784303039871587499939041097022764819816562263206929979490771832364521662947757389453029339011185024734291736972037034132510277366373430592450843799016335109489761243257361418187381926912754758946892066527115551808768357268761191311240865310144466833472516634840145190217920630057216819096633690173199297059615029139010110325319647523422136720958028568256215267486872291317953580002153554865083134926681996944223324411502999568950012469828868338833946087383800282596984037219456067223208518699378758424758772572909359255026729768117333336532396684803711804790153543233111661456927375313419189918348144121867439759654762652829353784487844826365498325398655388940314231563842442184574587523718341137352231661929257487108730694995793948091792608631258363729207594876974440846414154424960435335093043484251613436723107766138098068624463307879086377102880468158876260447965381128712089374146634113952042211576339727102995700067706228475993093405935125617052522744259411385582913124411491211710445595497185113863484324868550537484217852454061035630393868243108004765087142235743194944725814469129535143372740167441853839691257214445055490630555361353337553140637220257530204650004519349187435636735987098242821553443733721487296277501333904217519894096144096474299924950455889560051037430945189064446721321952973178819370982519866227960666580662961077786561262946418394146572910801092455450481987361129690415042424319401139865637093895948413711764891117956728045355581048560526962699785451810614000499082602860207691580857046705822398973559726853695690373295620286847516664952118994620363745440342995734838494511079052753502061998864817987108394975970585489278869260247942437680381904569566318133986821691653750990842711141407765744321212660878269599439806487416720359550128858798972976201695339368138281556943221777535931080400460750878499586138689843422665558407314570636377669461991933736276239195894420865775636033707324765169791623899806480960252281880787946747140396286772864468708746962184871858875232940388209495898373699809708430405995335775941383056334201646635132428775914259276861027975448516600669069570788080452922666406627422967913427706168618833667398784240851912531800929109805525013119120528280383395953803908821406559065894131453765716996535910772384016197474937186680572496524369629245916273828338371378102689308652872882525644615562078869547928561326498543885385446652807025432111898302156301447326417504803635536180384412591023974242073868183578730541947515747664082287771553202037649468298115986555844072579754296167538495444767539430805022025982832525456011280085545887957135693032599789885079392143344561355253218019692541263030765348058148538367982347662557703413705163863352080744951800897315483641587463717241478839135217822889156718981313499799951865282638482338091350873523162262717782276462322374320707797854976252365464346821363417547244779354582859088763136236006554958378576776050953280617052117326882630217407664467607350411442639397344938039857765157131839878921570898821920505772786151879528534810461691487064261433133040624930686113849641418745001015300963607586989087497647311115262636968860967385707571118094109858511747722301816337898283511987764501918310978265597007354651179496472485235900686272537507212585207809023422912803284722300953512441511908696321495937115843123452875892502214864119890242733277811298832671780231796045404453525329879543918890718843879023711904454346656430361352196846645085217084705253012136649845239101602637763946747146011754443795296112996488730639051951485951840998039531208379866011645532106551615853154298845767245874661985851185673387035225947812654552986605794300477707713230135009612502861062315704041999208695743021737325318263963793100988849668028949481258554622896009581455955486845774373426394284997906884763518718294541439338443835330052821646116392877259195261730134433903380430849650153118145543506768740000761599156992923106005299590583044861506472277166742104186769239211544702980260133272752018537480530124701409219051092221592562594491062656512278767894379412331136031889033215398075635389389952658451190553189452390000122406127652469041879897433903260157459373947691028810744659477162080565290052969397701822913543852908870711014043986969704050449453596915258065650303493278381089260283050777466940981283811184514385576541312424943040366680662419251109315971349932465849865471604055782086109886155642166097017883040921209082389583500883531370977998516395897549032004374584172580008413996422331091206161301734718811878750244165424579964673632352416530950074132942645315901551764731713838705929385555198562434199336647927143987339310964710013197661489185896543946941357915887672914614701089717640169609085080455421176306295095753885538229589419095871365692700655271683932961481576624403780879477051909651010738936156547261681233274420386208900461108047978672459370666681823126808279432211923398598006967380900847567882738779367930972609634856569945439298573693179567391058563574534293450949343706931920365423622841159539266642379540503991557982032760052592450715073610284160311738196558514894403379329648182375824843219811358849817458647554249954644847852815685730334525492769909792354365627578041293372744035652485402501029522820564606814303804057437615259356540543656402832654664454373676320883412986820957953052286944742016209622537221589384115903461854121099431803399610779280362384397585649922129109916160264002575648029199350015171528599242833548978851566756261623612281466635208114883303802322681960809222233389551213453118524581089382011055577534113252947774704348249907902701297144638678623536982628702781203083328233772817550082702743260948948922182200619792321934441726156369443406292977480651282816610978367465718180096107008990147178538202407052178986777901955443342403099453812864197089241927093407961864976942421850369597093909876069060676282568127788316149737893808375976977876267949534827148850840984477123606472547080928902739834192468360939786811940995099988393303672177727746177969067019150706630371223460500163048689154464520870329320067219823469693011012611686067227758648347367451792130927672415097899815697934105926772347056508704370900504733418741162681177215107055768764096252707401113879049888465925247975575284980709640337482266357321363351392906033737591036660712803907189516201115068386701276213096660832897457842448307772381461415051511393699987465810414104058189313030785209706402885553992480915283491339587069865403952767998865360958212597019604575398338533449711817589022393522066722850311099652520491821926891252298075661370989220475771602168253542107067947879729009697468137497080682572341222771131538000510284679313034697048747287128571761903475670090343409469150603884943627043940662464428569561985581319451736895910749873081987354666995228827075267370612031919164366233942267331095656133735621765973595276812399286158070771179590992367751931085968371582981591762138270204048266911302894847476703518675721320594821232246744742545056560288250741217862508097651243283814693683161315241651396365547418261441308458530662072578300461898010098004608330886502214824676306270573426450869900950517186681851157149907103796923436641462209191293186494042033728566888028945463578898120912996418811000203569879511543079877426960396841034454083491143588542542743464278548443613776644055091070887626038427197057636956389457874152011802221817763482053947969502827309019115758519839650926222703820276779446584149957596673468356581165655306190228061303487252200421332096246450407222045899731526777083603091673021431972810567689966834945464513923925348357171356673614259182729389492762575583882920296344164359586550260136525446702350727704620746087620692413767841072427517601219216681964741010257858223520678561045186075516110194004007740859044291954590478532494116606022691191852303256550425420457156814425798721398480938984506796482779015726985465083685920331725288924763359694233630313349745266964751438678910033672039036982396522422549642639376428257758174204325199663421541890193613478096578402223106642445800658495838927975869949181120725717033867193966490471420644296927735230877860974130725661471229424089300348579656392308341359657340808488797772537049739489739604940826462761178087146943416987311783617851908826031299394195428762693081331985146542348812676945952784868729372940359942757772282080909152282451038374169541553645495322534695696150790901333712478575791352047196929967634377722390781670449986947937996427763861508358997284632904402002909449789534211345154026303338834179288134178353650568589003870214402065762889105296652390341497233519554328874149090599126226067084328377367631431376994213818697655624661862966596588894730903505163410197990308239492446670140759394575653992521520087543373978673511787295971754062632145714202302440318021811055936023340874645673169801596860588814049540302921258120900619653933668737490610088951647289870870990910281140449463573453098323118699045894677757260304425918967237150443227051604544320012967261750100286887531691033025130954865034383430801788018880124262099534975109877248167283940440928474778149502966018655931569459928969473940939096387542951982058014037145688526397193533206859541890726045559501638921447833535492739487411735613827479973184926397504692866068664361588706367474708761388076042107895016694265521929614549285443992378871854622495475137751950420141263832170415062746695254200902385015174893559884133845159348271890010099206306626936960965314023515695077331616361684650980108466393562401567123539623928272541702385834551062804430326460293875855751746803935752948274644602681155657085323831868647947382551266000037306474352695097809179443125656781140303424473403147512930949472421707433534153510731616697662730651488223516849243639619499564423809611364434959835696438526018129116881533598012258102833070524612400442304351930877290961007687306671612272807459699233105306912801498667861982433906079698549056644775720590397228003558120874978161603708211217644534298607500995375578243472517385519363042485190632849211707470712686833476943801579246157316405304840248342006847617748014586756698228933202625305899948450591386638259345549088973384017648612057004821698997084690100175847969166476696211224664939178239622230676020685507892379258336485904668112733109623703166925522651156654098069254359814248305414090458288393567472400073682218115334490623423514973761974389746854053805002130688574757578173267645946289213273729336371162953245732167822875644026309790532794810373294849380793427014963305662811914106038704700757939253872662000996930794145024486890463899881563679681245632259862150029406210837830459266289564073498550392888546875033437125321179711752492556961517767170315605234416086315455188734987797567799877523389348932259661061545032566093971667216112504173416533991886163597154588653955531971983484214221879385086887766003690904150421284041889649028511284264354578002423746454767603781972309266334710844494612054480449935271477708976413278674072276105431857711329187341613736590323562339551828301759040390100543779731699588105744880000363712281520071155849181144366647976677740102584214268778501877911299272246603695594117147503708284810192627810676745604117126554940615396633130268055145278098860268778018169154641263566554371973166704781221803327451389305774110487165406529501195705055431928245297054842431594776165381241868239656093980829022431504688698662635582531075577632174521136987332597364508545227094202269128835790862637304889905219374907777187529910220536415777062646411753437208587309798763883555873782521555861422937758012264443731494573973413274520268891382680697328732603947816572459142892163355348874772190458385692707266895778727053748577115187974366716372957515919501047356015475823937307731424140140780938197852741506298837419135793094871525329504228504639812329301012494338230345990705814654551987454094838578400931318717368414499280435300066333119461957022689874772452135722164499535302543062596255935346983320639658593864074320975219060873550423132386842488180174915701281594540370743720700355565723280929636217558504645015084693821525295847925403344306764503858399739346206973116693990450791526194258916448533895381227193346933821320880093157568303066318389487775579613732350352747628920481625674372121824121469858362006146581323888681802104207012207600273015419720970515248840284158337731587089241959009775842469857385919088928933042475024407715974616694896286436106653331115456492921300043228344165526608909041812772959372401648368296947037921488326027753879318749474872228722882426958079323549255644997910778944633144002194624686097095262399096884494329012169132306431389530014762115929334438473678666974958606538837324693890792761052914323183726005480791117265345574738510335644392833825441483008951645413250023698823545314200603604220969800761923714760670385428822123213371386023005192527237237408169199742190148012206413516371800066281027448174158743132330603015766519718785374906208585652161320154688949114431515155496812729271438864666130980084137775883647711261123700513617888888156321367348096476817770256376620625386680191194689946649670252537719572581696401822260409843224040096475802997263222369029142273953535987028606952415746543783612070403765195839818782441680609244159816347755451547120931669656492834919501462600943517705713856673352574890487961417526942080823662346595148424246472474005089830320985070900303230041396039903077646931216816217464084340489904663429617522315463752134342545315946826178294141469794220817164846879878844888573845220543461880640584753941586915412793186580721837644743743633633269239609523202766607553063400940391317377483743643808269140509865478076155214653344457478357307215486003754810116564093621041491458707535064223062844761918756212157201379647445666044299977644813648281377098600072649570168589207713434280856108541237660595863095845403898670665337291233726067516514932436178591371663305574466603730209122640810128690337377090119981015408913686140543951392205843297552013880754840930116584031237483758235067340843973414722706764820618473855714024975780857485636247115488723905938580011841522727625305829743019658932148454476851913543830900777113484168668790262970584923484584214879997612801683786648610881469777624785892681578907350636173381003658667511318745587570109129323272773237051034750644614409402641579004706599420629399362988261028562540132059798986638212917168939592935162428729340702120304894349296618371813756289771771623655126268299517324278828965244627133319458992129884710253597276897204801524768714764734632196059312268407574717464125816982946150960157333865011176908089936622515503726214626183701717061858769877927465251086442168811312643712664907010270175514464857130059549679964889895118767515385930828712802271489684394198963080804812850991092695671035589029220753794615725266795769684673755132789454809260493677212780629628380270972025671307818122940607244214335197800233529232842047235885920316337222011374897145871969354334732237990503264402747923817522020443863512809246715295633564110913102277265659664349255048929246505910539281957387247446986470013598493796671736075882330682469881625066276116672669584080325817650928583899163114213689924934389313036806967467268651301100152075156892182148048638927979454865237579879584186341149765773396951895588353828160975284192323087058981431494022013726838437701628262231051164744452627406406339793101334014868551897024675355019511121580667393706027374969588101477968095609482027287225371181007712439290941812663000012692772759454927617350316781650569362831925015421748939731035104758763643887605173092897456518175415965346065781510487267731151035711991640123347140758852763162580659265466134165216439126920251605543332124075668598640691081395791499721845339273790044675354849373084473788648553516788155028325026462072723798288520858002207290373755883248331184763224370000359364076850596615858547690461442019162358063397664009881985319622006896011435454085540685706772843951541423525786558516452783965357851311546301311058752406913837047526997064310146581367800868684211423036886917833935790879599372003615044597483649984819384325488063798232652734691704526094824091504152478228526940260569913392846047544987561980955678147727669433058233816142755597631301134727194850262995530974015732915354450200474744212452535638873785378231857450082260855411833794125310125778803397253407910762312906026620677315752504135611653233762260246622041948156277459778918769323756490876112931449584811130632658150873311544840595676760364313717017745848749184165360686407289636982588656228892606072826350592007843301117911320764138140227248570126462059010350779586255439814238858811529031197061304333583228957524938979941979822614856623076331106738147397837086757086876333874358420211192681913291152385557788729351870185399289744148705601753554519238149975334475131109710490247038647814760415115099417181494414427229043150443704685210934198829358195873219455814178480171932258909272100125797342194056965035597757959535823089603581181957079413061567492968317063188127046013470848328400110648392037010647493000514549433005028060796068789901267253577830697342050747031023745976686148274034015995893663219843086855812575922447281271296474668718886195357201080043734861163134594279608490713455450755584328977638902336145127333341391810458492870811969363696293788408510995963244696838282136143829760482545899719844581274536355838566394873466270549311752767881616349196766933936584169454905497764451354877347377929367380303085640253196455096052667553634370791555071254060258719044007551505271887419785000168443414257546892127434006927927851047046732105347412714252565796715815534227597224147090565402292725732360902894285634642437862356092038399995223848900263306773008727935639070290983784285056035735674800376172973911401795212775504039908968811158501039541057873219961025089795954085517705344555574715565448415164977895825084768278042649158773020026816013120843613595400523177842430918673721159478667881796742852826064935230228113618504399392091618339730826803991722377633434037390018093272907629604425385075143627379794617904756211260720369114681287709518857084512770145918751275342315328613747658767627674679690177231821178950838512102490793499232913429611400063121696407479105787648225272702979185409222953053497441304265717676994087274046592258608599075835033382836428260698021901615916073733282009532878229113102383100903812227742088843976697944650441270562926306329065214523888620779060905997746190742550388638460452364585727642050235581546690607295700172623805695471291026797955241092353737237892963769201866885833677206270430767464825166131433410520480974048642475923667668245094042738296310797257378429162796618634656810603071659412982907810707284732123654331129567392832188749674121667458004678037347256294023525933021312357722432079477346106477709874733123218797186120895100555588596841639533083295592040171689626623008120798295858013283699250022272344122233812752413634689588111925469687636144279422665449588127185214396345931452246236849827139417561446015431365620502425955941998463469460660494426494643814624071787499303366474356122692493491539467074567131205641188079315960092368178932286296456425858170520111812477691562074853729727618786234060198276033883610312694550461564199901928061301471633537078760912840792418307657760304568326908042246859424526966567809957157200722793406660147026803708328011850094676005635996202302349079070345890025131029210807716857268100550470550883228224326090878396569646802239459539183971504261677697950212731220028750875058741949146854630104972728238395630655177530316129393385122113980930916570834668762552535924988804057509329410973476137739176681814528486273819890752593955655345296953440958655497740842510850808820596189295490674105898517458418276890853160575589806283161179413252771688535487678074175341495500237552531745455564762448907815836265514623412980831359662826491348412740835719480796759332142694609799078226538874547856997361243619455671188560577601071386832419969527716015915238041981906650096428512271254669507055710111087192643089508154486098930210698085504571185476351364641645862624857188696974551881643610624321314572219316895857714076422209558675136269141104509297115298420714631453358186187954065902397779797396386529738210192697571754086028441456725481386569399805835077187215837440192852258446197237993951708462945955899596096011233079898633867031281739610931020861709307988108807993619079836282298041191222627373454957877506895613664514241594612794077109807539096159068118424559314938140034654837120287790758503931577643729536051151348634984679563461452532486868233875296670345903859726333227826914197310006706662446533983594578237588185644375290797200050800210451630293525383576196751584732217731163123185236278105902891488719765680907604838168924543001359448243853157183193841405024451477415863504390956778938322616968524908606205225194559106430482724300625500924392056210336487656646550759123227037796634660472673625042605966799648250771627020661716574269489870726988768503441197179162792821723480991111575417411414032664827379795044238244887125212840777476773320895133016102984867021926976641010113247696843744540075154547347372791865112454586531090679574007251918744202090948513552674772095506924583856849149408028364896812345577330736178916717759578030222043922276294313735824196459324400160203134265221311722032605035034185927864167220352468817548871991552281078636084671701546636364850125916796325619638095559193994041782176027289823173120989517413081818351224866001655118592231866838278633294514030730173630310973916723619637035609711334261051394708482689459073217077012476763569777546545767347178767337717885033336192975448251958888901880651370637743029712215207953539363148884328945160167500196846464415923886477618818079532063187529282830513475041564699050717741358950816278492383475027470458684144787400949049574610892396534358450071264253324633990075525034021644903893526891490570866052423554543388847592008118392656444672447957332820198210697705670068047340691157729518142584441878881646044646632290043763161776821364806829115922240039424890917067204018912825261106013550486603015387802298313450555093945104836678440298252225589226570238939943489740592737196366443005420024130559840875999297803911576345893689022786756748384386260040576593039644443817585544726937483521924058141675135410662538529754538653232810047042549937787469028725893385975903876729081036671293903609863298839473876542007759540845272310196003509181531018064369171023470231656798084974458957389813586107205656046981844640931943724563999865584777942971957644837758379249642572657161619182399203888744953489511574419433816939865759001789338997321369952680806594763416828447988096377662938818517103540777818674521261025264970636834126241686027423440522138663498333575508908483878550601791875685386220215414553761428724252017815823962433230639964148198136095458854668329466974042747928130325788650779293257541519595894882860055216071368897786392406034936972429131653231505318073048183288580956129919945697335759846072537382315431126606206904477498319036718373441544266175976941830053284472305755417965194370458013565426434619546720071456319618674439297738211144327737239555642880372366544247376897835310834060813476804927708784357343738369082148569019753342339538167797974250673081397432233286537973419887879516987435573953064063772228529649853713869122072778640105216066134302340439944310155866548361440725656563848210281737518706777824115949521515335033849234136878150136488482577696274140737707638286343944363388223530539092102833328535578580462071341129335542806004281822322582689373748906298305591538817622160771801766473015269709027919082425867481594920182981179528403193231435818087466185976323343393465936151544235173006899172769352820359613881543402617726656820092170383880685306346323370491691497246467770528756200280572643050427833964482561891826903744187456768952813595235948035968205846165599638650617740065581579513273987136494552051716464438659299075646483154576157101531561393701067881096375552658912210415400081516300379638576311465410510397265294780918499183098369590896264386247477413739915218337674279840906530011266382548809172543498412016088569468268837997848684423613984218567586441480274683226472923725068180660464627482128078789334747170785514682120581071847934055223004516652108192059461163781228848410599672948106988239949380925535278140025906607530465313270021071934756224016829766141619867846141450725605426331626990215488962278665265166876433948387158630651497750971515225565960032669391129891697981089585824817916645819019597767397817595362205837456791746469948208747352940193801392278490193075303082170485375669544904919062910214326842610066788455240184990288194040573456924511713932335727350723580686293690023375813526007475594572622643442698248872891480697120520911965798808562261969973213849293828803736901920727417860038051516159897788488954768294350130460249429260563925485317361020193313929358271200455908088778505488238710167591122361869109483572417602879151431626469678855662420507583787420187746677285274993265478737284417574690499753470643541696498570444456342243996493505371711611330670100827197076705657271529288541964989186496366930430247436478669970376118184457999848691731450979734045490403225153219223197508896774875063366666027716889556978554258697121068271913759814866871664446454245271706886748476146669646664781576816138069634098525698536521846633822222969843177190754150004312580906991994710211005096608504836612078339419759286252244052064142817610983729059345066765127948146932455218372185619974197550990851086255825150944031264449677153667232939405178528907765675661996652375062033655535179525764052542298383582719458890523828767080188147713742298416139971183184757372699923885144927897583430891424179642750927221266944036186504947619602686471246061509081469896127672266441160302694969209939652792677947148363324543706512487013459568382042276433778563908256382792630848910355420688878406503481834490652467802165777673652275782633065621851386228285015354699183457902133527171821832180613196905189667145447222762561508991204174230076203869072289692620369093147479956535527256241240951082385454395543263340016201462082851235803360788099621265159120498545567757703170524746438665401427200199397349535081540993733210706552663165050433584191100270268145612422333599625195377239735256150420103851732984521206248639392409049880750227319292326378305162860150170078846548177334765514393296208270090516679863361704195398706588382199272021502935523281353563816268297148014916991532904134892026779318910810874080159307384844092946147982073352538531225234961110122693624398240370520660055645337953369286581886495283639763980428946636498949601692250477099141585260348554636008987527659544373432029078075308296463513979747624240898239393408665218354338049588113176230125313028209394986060332066260346444509957705145861737917452934547037883649732180973878335220079922167407106011968470642620858571029868212305548770298550014342680855092791959389662112307836653299241630534771794531694708673340363674475020326300771774783184405762264731450884906718246135626995745900133136379181698287919330777046529940397283476214560654584129108657594314572451087649284982938321724106762471006306661751204156184862965197294713233381092296534330299700324812907489946434554441174873318592510344033279321003529617340253443358319558247595350734218412336276006775369073364495121281821366375797991898858287263027349553122939088497954382962481542793638256996519421408095482648114017861912664750231181757826635698329179169003902127603393659734244796160522113783244844311578451281290126089743150304212003880859137784145938083417316049313205363980368592929291086591380393133071516594555794867275684643313717018849721554028843562556037035420615283440523889274524691224952023583610534287369218658944435512955994268917965490016767861859102221605792964921556186877546241508599566436068371577968386997367498372999068334225574386701039908698828347133764663277611383237375535459925137120214762734283336111566595268022203876587249799988391245306161758336000161591404521748438284261552497120335102932938202850251382597594041613853628644436992344380620614120203064748554638156117619080905363049223033082871585716597158911798322811771299861996213108732196076059633951532544059545854490096836297110558778123335534873777357747553169303372546503576007457532729941967121854748200720907749915927239439244014297203288383370702413779786602113078330738096588331718578188591737935264870139329574792314576113901910108047056926809639409247936715395369760758682818081708358122559889212761645194496364585953531101801900726085709538953530304757152172328825526184242341387190026177412561551848667244924827905948468950787132350938811095884747153685221168712553475214792434512953440726004165314980028988873105360571417719248793030345190592076027098094977966029483428400962017224700767357905318407989963383285929588272210614702707056026925261071063584620500364861498516054098345473746822907275431676198170315164586151685577009519872972769262986865210699287264831588102074924398165555343418184945519546220726181798430487691773291979566084320475103848419788775410165293643114540664836183168382081614996443334009669585355390152156080094729180879321988254991602356842211705370457764000013902659776944066243234566525980188051789670603785171734001401478029252314278712887121852372947308259910276093305944224553306664515629756170546877915823352307705513445604953051496698957691281508020892136068270025117258854534256899238905473715635978534335183513801173689470406450942472833934913037090296277869154662331780019317903558821337538539378807066465082881917316977843467699440235177724097359261249605308678223367847147959828042313907509161182832304991777996153147282084695966315480105165891472764720356670407067212655403619224045197524382414794939589353030716117810026952900629550892832439518948734491502437896110681783766631366639947905599006275005630241656102401885271354307781559630934431336136874732912365627326156145808699766925721181087354947387239796975515603818553036374835015601530704785097719169838755524517579225805971213601704962026456396757382255941177018418582757347787531703273996433792006522036171379347346539729667683496264128900240501690811809026463607005549439106698140473363442864295941100744604300509801119042367372065688518452996452251628651282553719990850889919868918013700492963019152077950251226167761347252260540096187117650907961072145390903760263579240880057711226196318631678175127101659655886184592116145436595946834637291460527092166052239774802174843213116729935771686050887831789534187369844574535372102323561582478650255741357201543510355896846389755690773476505186316953323358293786097581700997070890824512316863437539496225509295892528777557322347449095999241341676337653098731377754789872666894021743783477245054968226276069303137053616453988346975163531425468062049805753505922391299621815008900634738407196183742541802119730988405371107851795539177030469224703952131380858569153496824990389118389548329989639193337588453164814713672278975385422226573204912411098761555998352251739738228296041516269606107219684164991517338401308223839463731626883161868636117466195970817414298529019970699048977605842260686664571713334543148218067090363371360630666770640681013129662492657898104344221406220100155307244218561897618404725794470882016079006712345213549631793486678917961996660171687018152429196836613635007238314132568191944160591111713440762772975958505729772602131254602178426509831398716007597383996956952786385542631108022281810828284691313136915306030848900325176404270879252197361556243815681156493884816958209754286837920368974198471909755423136616746967348971992382539534118940134315017665524378123005025876057360348186837161287330920069940703333603153215296240303767135598218238905271043954429689407947599004694319969410498310066466649171341322964780045840497801983185014195865323657115160906786589090717684079861158419297780846025114295521154373233937718074110379459499183434295735693979108925687040653712967134758942786441480934807115604908982150979625622874940325094236877791451752996387011829076865923535704311032936204725286751119201350793540776075181996417061426877321549474491041569004909929095233594377682439573920118572757156357636730473475777701766886570212968450703048572477823697824242217322821439350205540600260098936961723605607289463313025715411316038999588254809355342953778837449457650817120149686963506719713293410459137075787971251139477537208801600929902280399287600531838839049039551044140108076050666287744098950126908096316282583636641304655816845778488118370422334589269017994326635491519865476546193015295587723110139932198417299207533398826618923159130165730776608626759435544690882864985926332175482790492071494897322139916610800927734505846599876233405465684297136377286576971285688152724374945166501378372930150902043004325450463970032064193805235418517762273613621691193079682017838242793113219708688066049343368290777526148660527478173522788730706495251813833189869520966627587145419182108634747313148802538356414904595384157882490323981162048844115565736203654558232237116115063773766059061660443097478545952967461967277414018884315081395910356655944917093690627783820501083403237880068297840032259332711863424753442992118780337485972419566009530727612626920832406964400767796511231806440582586521689881112939779172845057115005739660868434433310089471408338669654514590070142166197336520211807182213032426533507557181050291448071481103760318245938174218820621500969245467142600791337440590431209722632291153440352462997360023860399693464815976714506532286465243976674520846604656459238245803847878060745144919330829375792431836338507787917185333915125046730426749155633436437421425354840612373488408955963926784036733730097899447359995376405958896954655527676278683914660047050272258579973869280317989945543406717977010294829980533744433797233040784948685489459664980019737760425346455841568212353001340807764143340853501027830504440232411195018782583266358651438289547404685157052204447898998045004627049906650211912478567792995827990898316167830190469162632745233428298254959197184154700330777308745506814645727881427661872909824799454909381038884718326949550844520603371722482004889968373102158988587872204724856396029350608870920907575799600633937176848957700420778188991013599351550914740877546333058139046507097214323455619266432807361310246504748564665543026117451756647526752705332558120836658877864628749015020982936309968199098792999559521750995156367266737752857240808240259723036456445223981080862515820903267246200296857526230486419687917645358243181316084730435527073091301808838510739848586705366537084640741802341024402945490273495233454500374175119336539220076607722773329413582876187446444652484260461537532392089917961727110439672360170433534087627021518603208158525402984667901258833989568222501288328988485429865874864618509579118376131412237800119412967458707161319383500066844914727432446151756519448148816032414854044236297126241555549993643631245617318260716264139897641308985687125096521349849341903874037129253780853398051604239825995527270202701160630330346650116512947059060342434298836349911499038656361539886063149200001134687519486687799862967494914807139415725224579633977084989289290094183784086033281967290979109057343767292534887576309198847461427860793109972141532028515842782038967265487535290562963303427727404558438103090357967781416846505823488933693910777269802148186256350856651919729088285387967490345131230342903679950234814037806576856039291998143854526634358044081265839245139575823144213823982742082829098004832520745829152934967634612350174682495899004700585006812289981655456231672362645040862237177003069857823304430684185128261612927976097179959291530255832614594402841521277595944973668060384329559522114362920073915917375210019262510473829578362949280318186426399600218970857523745628182407736084064365966039313975383519806524673882698132710752671861881693350464246654543600849324517956533684778276192523051896071180444373123595466436340931703718477260478083577699131009403875006066193418518379224576028016227162169779966593847325541627166560129608017406466508245466152303012206648154791966615201367781337021610786650610181849472566259987398053738150404329116777487803126781266699635859944056863535085153327344148666545118392921213489359965348912265193793708280577720658660710344053911839390120697184534046095711254960490057051731311422625974383948384790196417385646072629058981220474550044962421758511084662317371193707529565180591239105580960645099722050281707167673690812718401563646359971923422946562506146682346200669107737920420769131258540828174404400823343143899777077731325258627364193955548471426392483760359552932238996159742983897599316265452577071888173018389544301360791030233082164514083160028168072224554474790038613676000538280544391914616930685177835621517105341747423852010963432717149923981811066716581120937609288515861012755262005042799875966110895215926841991339028503394598572951000857378270042946288531412567224169697848881460566029085748812908244820936438065985868378461578366074169506151890024295737397591235547340752072384711161274833244324753356198985914814627184229192663871154142416547423229862198075907157056846629422550169749237623493466188355293519034869651206247905651773763473706116949287952953358724544010989049273293805774646485295496357240897440169459504462611305906721967826194898130609574032575369836576375770962459337502622771656067986022403980755303480045980546527063199970920842082163627324746271481173632346354066819854827437507913434907850506936925113715821802591955440768700162828005686670121684385293015598975939058133646158990778333476663128720525449706552225697357481375417122291296680695424479148283939063398220892563275380656257579862816755562983613516725069417720175509694375067270838815375224661232354429447545426334978562400429167164116629502972078591608625241610186162221873900367621332692871780835558000466751103304863303159896013133469303434893509023034262001613545679743282150087489123230152705538423259565222379464872640822203323444573104945554827824393221413930469481785415289130118657297459852960698320147051433295934563352072257233417508131210442490193663346906960076054169371398700184985384016970027109936870887904307477193687572159078994560895875390173600701608168673733928200524563085284972795771450849259453421764008936868974446767471419354880950584481431609095124895138590033984912864737300033333080428773385856057110008499389737440443578670020383189210604448181443794014206613285376837361824312629501451067044882196148356674323656773621442957316773006377231988921359749388797555575648769887610945636713408850503975392257708085232871584267333665114712457650171616173704781215304844480557338939777497537552078706375981933158699951292384040912187765762388498875799503469761044067202297489026769851663850202223432806695036812016036124595852587581894988429613882070099674537397910954163191442796772899246693228787084351995638022956550240830611914541908265226881639975586761014048478784194299964803435107269011412743071140964647143517492615592795534048126237183179549853996066226498148283669107008417368030250313046830780786049773506981270000437057550341201569200697354094725966734079794835718850876034999300438927079248755202681993286472699071315672853851622143206827031905372707946669081909141685209690675921630494768169405094092811936409479371859366063392262447820099922911939546610099852555754899761061945436361619004415148735313210845824111691461799010134587562182889849045440148541899434007002917040211064822248205815112960597628374137638280126128359000391688507326313960151982469719382523715482159630573884637422624200291536359970342567755257568199407393894108129127656362285707664847465692698943294013264793439604953039360504207864782899300744382196101532017102366022347088776325699732930348755423781819062696406054993700061982455403839721237428513187024170104090309217554217786135220297475064172091256269789553060782844372639237439024787003151598313073624342319642705600497157666577582828658776381136227515334672918154799116983252172165216004071192027572342470294974341707032948178550587353287462059771764591888619407128536818708924491687218942708446811881407798687031537875474440990509451279736433410376791221429379219547207074511603795180881859806004193782657710367119249576773621721377952807605477528721459379230774935285927128871452846357272591510371438065293042153293641537821920926228239672000617817915008126105904603910421869987322097077868650008605214337565518725404802350685039651614914607419488774540076964929627296777865046520283726152534489248394919189129307360194646382579039785323423295013587224352072406408768189431453319544379820078177153298755865416103268215322522307063731391373951747798823140444216705269811765578327345272610429151270978263084903279230529592972623973498826525923401645266861163468996668993035820206069469382565450101492124553418314468753142839636311850771893916715726313205887686920238638086427559607309510390846488857881667603490854239072240546538034456545799826328635794417591572741444163920583332405141608261118257134300696156700618044667209102091135502615955909530695754124634695548916899529846849934002001717029625555638261647545438524514636911677401426364580703574964656659678520524811374590178758984759347737069539122545529046506657021051541483878866033357432665985392644966326085405323254568270428536715139317637289492389392109202860537659657072121015693844936920493682569173676145739380954215991443499730643556400367009684789362286150917339010951157178889947915253146131685006797242236720501455052603502432667770855114786336618436706022663741578802904428701572896617813310639625329181359854925353447673127166083989982931602930337570306243029324500911323632019119708990539700401758155565704167000401305620703224893551343032857905922427237225902337122142861472887946019316721613752539549958180472118438207679452991855325521381509589025881541692462414766864605075317128666501108958226792885187101430996253512112195036316652744690795413448724015283772384185616767423268883504755433122847650865212660990412731851735163210620811648553226241284963832356857267847977834916602296119319167938710725425954097590149106460584426432597151014941099166859430358393486133863308922612371765499371060433509394553914281474781732047907973692763123023955819703230719951516791236353308718279210498418218138564083769247735204238934957198852199516135735561606988982610946892974524596101558599931808119377773642342763618926532853360737725479280299096992427533439321634892322028297944943684096090327727548095784117747795932873384412608972431599255449273606988309896718329984113590293253502131829493586985944887452122741947565202434366823975790378781836228461697543653216881102784378805221079383887187537001520296728295537493491745178239241834762430238437478393710240006246565804053301177584916858167683690659447887869503164330099446272817540330058123766207544233596684366466472301302103643690674551357029507882937668755086953083299426593572347723183015079401943766872824387327846727237052820230729844181068086820415887865866030257448940810975529413341112453930325811655925550445682755818210875638787330526258314705214093269479365973371726694894141922029267935297103848555845914481212846837917378168817403460363525820436400857088756832252707503462546940597213980956169410682871927083188598354126557552655113718823672002938284680601476488792252901704161650385322216110633108044589637318884349430999546924899226096496014482784614825025426339571211380508408908452941262838777130666184069492969017713774236600224762293789410532598280072836756153416337308795433380467569218480793744365562228221599705970546491102139580219442062172398037321614161875292238683838517732901065813348340526714126678133712036310664048880959738958717746341913816448355292653006768783729626859342872192156092654097856335536247137909875194442938415927394476968954571661838254035843770733154921263227108222462456766696405507208286515042392867239223602662105276861738064826932315918529741797086613182726995852491421609906563895721188282050077135673495166050516380658636371266840525324387877706375304787625959634255271284640781939937822771941199417251101610477797831737899458938366654930360879833107572767532772038686281330420808959214413272179384486580280588571188171801608584205126360178360853929154993942200001486177765305284106636559859872402101505078745844556753075730173321292916303481187839589293412234263761748909903218982754270534345385686102949145817670112667177880596932925821047947148418128307838267846674395028287540371386671743814517768667172892912100701631805349512254036058310400879064238044568306793290774991275657987402898008409343576268859305516492761640035604604655017204557851050303741753032853613224277137729689217687006927109384454862662150095856250881764664267307114012757635118424974079366230616237934234007045713489928229625703371268819356093749342174280629816239392496150211551157952410791069207219391839261090068942359955633640165841630949020042150402918994676152259740557142722241472361958827549312668332316017021020146670775190681721159616804227818030548800260173875599308681771884084669419965013476569602862805970500649347500565180243642988560783875594655120371357539423327861861125084282463952258009228939070109510535012338306325349314270537278282833089986086986668947999242144675919743813414608261711450838029203283390553333976022833071891338123158428769323298899858652972171623431491614580735333771469182336495004591113123994730538620390827975021907966618165936322381229769606755155143757673003833406661386656358677871167892885528348286964362033038726066088968238362507922978353111972640023045158810681313501402190753423796761640378494462958359920844250497090827692059092841306746581538303009852103188896574224724428074513798300581553872038140638492405895695419345982069807507056636634128145082912709462987154220853867900544980177916083978833947455977340302105242875964817073713467900799932249939181889436230686799776530819590070215695205453208900883952933442129775863974377190003432409833851268498808193240748536460877541380612274587829250643222681396594046707759738172459824002638740450737237718913089292791377527094562545688415847648444121134321841792551811134068226175862888524583599012698584908941513929040733263323858218960690312583604479208424564941600516791205896474486903957131359248289768027224478811944842061263286872573143769843217845573328280469225508772695172973157006485068442647848596985607326341461825830429002379907137400943854476177222638813129150060076874187329018016425721955420942257439533470035902244093352085461785528072174099983019070921585984615166027036008330405256586494025882823638059296809952494651381460419300321939408735175594652513295638354181019546089373707924009429806744951946127483419534001853824511482918520900660226006059131058308406206827790155944544840193608670497393724757796406078058878959239241088478308893650761121600182703798211415086422261608738529634513169031486772160650462790713888999026023760309147920362499285547640708125824203207408651760653067704023658870519398799606386505836265987759712985908338591362771698590948229443798057740147076078329425402022231110623148959168323424020314425399219411210522785270335989733633793759439495674249852636908852808619344955878181029279439329456763709465113206503193522477832305233455887880081074186051062713060312298747899083529142498911691078758462468153174736555935169479197770758557082501849945104166208716960203072007187238180653009041555148651721230095711536151791855107244850671963752791248670005122541082734707497774648810315208779213037228115561512136038040964979053826616017173771565833251804225675002683377462763495188742060897883414711761570712881322526313797989297065003154310413106107517280513437380523534109483329839832269653690327461439130970942390497016776535933519849312658165749168156849594492998461328065703689108544664394727477048409908476958363414900035417522638614589947777381493631170137268621962030717035093589128464025843873822861329658619696398518746306190152517957333463530708366864485630217173305151869815256259512454312755938799673317526383804167594515738652941780022775209280405043816957643958088851564578792985570855535130907220083574491733967797616048205263650258081492253712073700213081474274523977332165353590673931545315735788987188875311122459293483031214648006596098384839429125182591223236818196504411736445550940373100777809753856977914688751894544505129163327391531915475908736543602343499876401679492266678285982965908877571037469427706266880173419092805210246814728424317379093910041710398352586222904285006193533580479008759378981281718377454227282082661523513750353534667707069152850118264355474193252897503703358405486668431751349712882669251802780257775597373612754490130223857603798522063804212666824573259290676163999915083818320349387945075844696383028940161629770142782703186237525575410490396524266075378764715184724729628408363176428564134008730952456845354150911750084181908975341140770081340701758645782398560446846620882181978082184518496255755791716999055100020371124890522466312145348354242445902809731954422966537189023373809467861433822021653774681740363931692502769339113504742241459515983668165040399469094582192767667231664469933354133618609944680654454765156021063507508816009068179251785003570190904367056778685609971398588253378579132983688080103946971211084734096625605904474601665847406957375725946397273238285448224233261247820227937154624134454212590442016818462867309144348021056087839805223974783065396857993563333243713108912928497996156682056012916338670258329422367021252438029592179836999545985292213677582108736770699171275132911230668841963293198089460630928229790488749373042590954739924906785056613450549841363475172502748847124245769149736353977705064896269239448365486235259940580656171942242396849194846542572544444022243946295112423732011979461092145806940265853795501945390234460747788249512429121429654506153512419214534304723160490093986138795755822890378552491127422727823351622121701628328103348962482940271798107541833410186870549677436650222843871362173852667578156292512140257052210034203017374040551489906506172123282429933845283313026355587963285187941309096838594997406568042514178885995105702128295244334380636502388629426488038866651115301176180849356439590063014285794857406968258941704326620262693407758955009753911340245772233146923125169064294754985172763730315510770002367764612704801055116537873954560588420454345149642523340122268228936081648916483815932214821183159903371302007796611920632939075898317575720394933426105189267079697906580694212710012069950302441599533617501835476781477872166948917789869445464918311599571397919613027593496823549824996522787695288368103198482612107602003083091667452127260087818944013779702076733945007141736877664279640711153666220576182996707308754662619589229053632616024861244880042550384751141319908798012929198773303014687413376132901182260278836909468028969061204460349099777120597514304949877669866050365465073144019468955004090906249889608456176410021724666815006935658552840366411621472884699018766326061293327189715269178344929240023811710955091693286320970154531179862825516914182038143309302936957011370204328214254616547093939342493640885730542314730893162905579940225613334066735049454597375335845565478699976791881502978664202552785056462721478431572676754065736116690572483185380516970079569128112582539273739160628544253607794560245069083348721775979944539838346991254849853119670218130183412471192118924232485866068006950133347811893253222135775613315168644903967713602021325698007279074279144586239059397288939041466578727822193370217789636502459655569314322821068295115135878831704193391278361067408514651310684938501677489100771934594682168371170995646576079655629863533283672991376577845733707338305898659523090264328748286053686396183664550026072257890310223751445040544908766665884617527076253667397126638901354180138017682530823528753091619377656600714103303136105562737549179937672289080108703546087405329755488840827555415705376866346028570259676422655438572571619669243376852219982087885838808793507316881093774695077208086846764446488476058992355742451393290165077746375823078216614782106777304310058064619357779058458182979058628194770794705556971304527800880851240927642888947242296101803810531363082671960485800894030430124959369142902087180898019379887971038805384594276925865433492001478407713698963226607041397135941458685062099662074754337284128014968539236198500505150003149820681206562705676566665270112960828791901793489236577163577659459118653123532271054655656115023264121791936211768402791965870845732442690296039513135679973550658997571309519370184416944527886038280274492599337777398613803396747940666561493398382283906178709778590576126528017936237903980945754602216312495998050961241279807705653116767110826600447948435936204419175120748893579321020191518400831571275312740573154171211114191838783715144011493156756618606450123508967536645445476843906802348866767413181828966684915795352279812077142873173870192607476478892278203358920888067109048141036121220937622259042183494000525591405474929152120443233887108612170857590819050207088956607906326856252097799507757651720634194610180186523619623539758963400138919136861823427474228575341053018383758517569883117788569041341827289289871562638333577222965222136909210739827666774046339418185754483467546750676482567851888336758081643293677944074037407538192347884449842661568373102920506331589931528517043490833688340376810164428817749168653991066889971548139875584806510939297238835315314332227677107031887252539748242893354602165959792701085638638590389791288974009910712303380491977014849439824760610057187679295152969591666070790170077260586022042461993945397411365020338511057023079229953563073827693990960260718521771198422242205529277907290345163589618640426933980884709157542768409240538133074357936557323755032085443775640978955802582168279075276373804938943619173716695988122401791804606813374768487246515371657611923484163607711614336603273493762298143088545141101415391718106009498594217236994769378456957545913666291345220778748157252895611393691357364308636699736318625716422079515975163099034023469212561105870706543879560270659089449718254024511631703156593296719088804334471867491767611715999278542112400655617502917312617699774322416380487524998156182821825843055644108063726393822825846268145944656206695782675140757369557599201913387826140680218260464777528385288537143472366993525959277014730596105512483989050861788743941298722080213365005287192535628454362143568118537355875357189535700573839292362013485644595277983500835210557313433689922173340167907797280132055705643245682530722725488075693381251508832543151271740208142303820434481724587530089918947287069665136355323482790316778260385421973033405833000536333412118492938424871532569280727100837957386863669024936004788950348931892574146289924950748390861385201238044389925617029249920484554167966756925435605511495725658142043627069684225449353890168938495148701873605575901870249097242536415179689005892858246704658224414878566954870216405532675751548111831851049692154489276611949608642688647478379303026706883178370608428845145389198652100812850975420147240634558519608547930638098293428630416258603664378753495307751256064532148587857674369756499677855845356460275149033268964383014181387404834269077259055866091087283993857002523649409919723813725048260524332288802091535179271324002154163987732936044809601401682568048683695846808995511171297673106168660302955357416102789035426483963609241162976522129340597630128796122293484883149764865831968733131703792058118000033801690665190427249878309080009482353859653780209011917217889177856268889492008275080409486704319634306177177046856116270154123174314317853651627228929758071894727145869601270793893531149275922272523808459366420275857821306837469193564820495613374866504181202442205874205319589686587797494298238101235331399657419406729314150947972686391208375589757543209983033160754150572830576385171415815721573176166996180447436569754310968222137480725905582944929788206567221831181182423348405592047257493765790485141711738410971055866008744779715518019470224374440552261798997045186406996004168622006188872257610844371838968944348818209182833773158883874939755162200425068548093465857875534698317091502820585603648213201804047996854669679020756479624886410067499611272340358545043798286281729504801492808866566210646737947143996520651702908579850930316011681563676542921048238037776336014970303121426030128729969636327318344223107147369874826724388183503533419504091743740110178744230254987405797496116801014492758400755730620258520692412442028729667704653966716221855264677516504632800812228855217289227454620088383302649795742672245091194461973573481481255061509006366536945016811438142925707074052896763340438684561110912918347865088716721158930172860954677291944422415557436411848163578390532062956319727412033108567767018875714049007672289073927257514130686009514883281278296920193134893825840278446369239052533136045815770667867203511621497731493392479724178791849776755181481538983863157861829597738330810859891191637373452267025947412662073876433543822840094552756221486239563021000968446032593193384091185420614007618429567566866918082739610977890509841521222085501691226153777615675722941188735941319538892305399352320243426080024311517208866159548412370979617621080698564368456232978331338026575135575541940469245431399739085380812593627814828958009336097325439200798482648885742946285523194868627174392725299097668343462316774017589740906043945634024556023798612650977636134311291762525805871279088088822929521493582133337971782587598644637428792438127594231057113674437762934097977113443528211504575051317016762777425890998449676465847831431964348355115110648364868221834844884867682774533132927049160962512978644309483707886376130878925414285625332407863015251295521057490218505685616812042869236071905130327705361518164460280312644266752718610442323523844995619361267591211699571643158567481358549911200192292219664916845246024534965728812582480641254086514342408801495721045019201161179913109730268339143702145957700369703345106125236707816910052671360639687011834082004218157340914966724785328542817155003438498420460561964678482086833017284300289410897477114727511356388963648257253156134454031186605826671166280452230718333411349038810153968437903931811666434246424062253891592408484474574906023116032117651741287020796816270031796028535278889449185623643715600657081983868470089319878229060510725850064274534431687585279511094487858379712561735974477506655843012080980401880495852166071124024585035816657957510161405506209962934808570683061731174833033398323168068008003646902942817761031171387131388262744097606737566944647003350141645772199945226820136635543974375815419428301838267447913703759165967801680914741919173505007726753093752266660466497278507258123362885524143382957038402502512710614356667789249267560402298208314450770925722404519862785974340308863231672790176381968124812170123181918512128474613631117202970087191787031255760447792285897891170618285595101082934345363721958986348239556669415314715367504428564292812038514185444061654484692335598191865910092903790152231088872028605911805797943035941737038535354898929619249448158265625936637874785535220845261354611612786394845993495331846921206842192338119539268599137161106864784622383347011532493611110168061272805802363341163440422421079024161500377966890048392350104756613632640636454590448566155865704269735487691086637411866650983975619011463133375214733110022842791848786286254473260627256964931289330239142337971777830376763868292918128132119886608441590681641073144794042123855289316994443263855869662032919775976222742521172814847599694354993264809919150964017621570656208414838412747221062224108383924675737245435168647493023698995104090059585547239317090637823786768015433285060763788878698412438713841044415652078426623249010192529619357051866243655847596258525223305358928528919583438373271540528524407086893634740185504857802286595517385850793598899223067475008714329558722948041463425013395202904308401602383685341955636042784217551367207076251967615150644054970678603380432636196985403570263854275015161941098879798579446580958826155605760156204028080310988231824970223333256751746471777245794285276013295092099003368592147601682279026361024052769734232823601707257535324087687692226097904249721810873692035524846744268978497400126538659688719906286625288368346594779826514371634593529564669473918240759986243563711274823661461809033109647214113135836886254617352693606079881836531684386460550089700176218991414443638712379706155730234473120246174135768123788127007092506065699980265232112556572361589642426014343474941639401126021654814278721598363039130069733057963593880040581623311046312433932843668055443478624260712287090109125912008120091305346341200959489571379288916083027499519187406942522686590521189780248271453090517731324050798839577421783217690902937068207932497436749511477319328605093934597143773737813547119652269373342098055773797981963679702582925807070992435182033349277970761412320182402527202747285115052862632271850196489933830427307743035717403212965874046720114788850868020749044784318671284496318641666545249889326239005960716133937199819463756609778332666320458970468648313867403633181112941317016161175867545986410961851244895382870210777888574634718578348033784032479402418063102330370635842153465654960420123167680844740618043558369700711848276891774286401599752065212420630528085883752454881530829234649956685927662945203042195752690484261703423099924742014283086309356610767054637248584682473190342304955774030454165313104961628944071850545560393646780741426348108687924125725734540389392530339687474884512714841440737273783787317843394933787687242347168890867846937421853199350366367894734751640033379151950118245836773608271159943471275718532386610958141849987323899045506953639928140411812422528924154111817131598787530238899308627019579695385820370154277271778270652020823729127841979080915768333644349674252888641556224057865480488852915897256736164751949515745028395977957502728891744324097724908010133724100006400175880361080633313241031309371193929439544497182201101339442193302923453301007698695145058591610010741476683296931737129869789694463165568476124008885875393783110058323360738676785948491645824775070309711167430873613361607218658217750795111841390333243352263112197644931866139493312109576268470659615280693724543104181394857736688099148359993305216825535518301167096361873169236172196544871558476912067456016622336097243114340544058229844752686404161469854242748782937868180984530906926269253469686174074094810105413280921048587341359995051334629106191929766503796465227865705952781986739808258263654626027384069036346233416075434966331839771521212173327631393677334555903574833367154049292604398327671884596850717369304649556874192203486265513817533546000533692009117676342253958183961588391250408088168526053039970395008683970538243742952923858528547162853319080577821134586510932227983837074545035037981276054814839177060913913031109141290275471543260962175242262517520088336206371605451016702251926061321328391099230112435408339200509547417753100227266520527889674774660671696069576580094815375979866666215131212776162621494894064147767051571574358392906466240737498391764385488896702367034847084753151816944969004039386501476230693000068483235632280556027544565533404050726739346069611229327501257177578312763014310668873911300909890239468196159338394123407102739307484461319269585304430424899392239864736070218291303836336209865144708413978640102347871802196952941036627906714486716513410306369599833845683125365599747562642184995177927862724310337017210476768419419607774003129028135818819880204575926358819366049278260524359749133469611178220297037617821183222649683587248732288646644683430566307882709559588043742592339952191225127536479639725204272319740974918776404499260794578378522488075272856469576479781236911004894967437481775642543505242074401148514543175221148251171923850407368919526152419672662162431146406678885011685911128993997336400082965612456447707834700357599842513567188267842168146209027878698454117469556531723797929717630455988121810513509380473281537621903431923735555584819771222132877550020287363551385753727025240325812289710056220524811459948192199480108696915587193724131148684922140647066618569100349466778434342764537041629592770840004779665544473286754203469431105177562496491059005218635914134679023158551369301026245939577037681474029104725385511564356024906940151879937939412919843021442453616345980254598827774387508509936666862355869872984636501887779575839492151233406272491841998578545994844215286804545400492195697037793127211741884313583641694619195855496199945283940074727346651624230225739988783823824207542076505363534109017618296381170220267738720630058187172649084589976142663697321197829156893930697388714724664969219418944122887280652041623971190916131034899358206059234000694571797939673623657120640039095743531639611110839365184980249717179137530967979526837001926286948306488128497195269850904352708012203444306556169337702524883696671655835302524706783184769990726773007635563304142656165874596705255706210383756464096215088421229782118387666822153642718486051489470457984590917755746183308221406614402996899826156908964276696412318148401138080425299972686175401372789597606047853038841159894059260448604528554114055028062355936746028321113318685848654271922951341065499587640176390915314797372458978139263057347582509189656065047048710043220017957982646911420888261588958967614435711107918812939810319680275905858410071726331816485608657195067585644740483204481770593543893637203829752490355461388152425369024373485268763410261058709185088603551369426517567998745699099239755977896750356767743761766927464257227390226139314419946314710683062099524440159470704161235702734460599588023709738614294034000062185542843704564671008337165132995450514975174178796873070221194540702165380282078159177868566724144257310801367764649931739477451399341671819879812238966322553923881883675506150299303851678645867889103545971386514714724727308305030719902586487175047525023808557076868518289961545619511082805002917241279563154440599649560042223411200345780268741795576186807698466893520294370080934557559051276685120975787912724809768384931260584730972635557091220647253633363518705901584412026458824983018255823053375856353575465782809526726846674045558663561985874150348566568987446891481590933808621384712549061964060190369698515893315997207178270794031725494951179021642484763860595433110841276543788460282736869138458646805648210548061225211847990287973843026574201801569994018216512458990914559466962891611340415072196875220949045982188568623484961007671278498161029069823274165213583909961031662522608229465536402988081429741651718488697293981886790496493469304432057759367162540847496344609646520827205085098644531540147575044472367098442472286424246683354930376571312699539293107858250034955402225917619031393295226432244850604039196049187964035406245777343362670717002523055030252438608148325724439743082501079833522157399231262289368678930901344231553703446813881831139923774407969027201895267888177494904533146194431223287606181619474342899059121402349455701272602131904274969629503239946044713057036872308655051980843668147012710616302570465252079417252574389500198575829444438351975210622585843989601075850342015059598926232379416505351251281747497274948259867204265831150564002551683675485446156122950377124889650465890912179826561853479202796105065506152497013787732921879323209380161215966021965422587429518320491416039826032589535173489333119832866867483273240503059081934451369430133291809948450909621813062704193355804451201911921265063728418471754732625723025589467447369943618909562279863427853194494313441019124189691614469427773101435447823801474565866833123128062784256820639955478696559561502033186741083712001456678813565097810555792019895558071196989996415414193788069979042676957709970268430748336883169479554702105532365455170103909661586621294880023126518568506823136718151735632616892380708786667656706331026476173227520892809249272022029581297579908935208109183673886560095168638599721195119846437976694029602775107727417056615455431554784630196493013278885654920402637747069759800279609010345561126815444269913510440770619966384027493273374849337103213842330621077710870469121724331730456706610232535121871013812431518913655991477535711737296547647750113970655662782596063586761971808235780361591930545387682643271410481171995659893166029044436175096538425707839033081285346037501509747161520650860674159263014125565690925587283364391042394308422935837334751379441261376517987562623517023096445077854897323350298810440640588377776272105018005531914886504072727037887174009694903873307367816373498489690634662999689838404448983943695691605112392597551132920326398109613280161291759211654601675360547956714176569368594479933958752163404265082024671303312663229212073072487968550255679477017132736557621694415687811930409501287179652652719735531489478550142773967097555901965047788462564769679610139283947706649223632167389332851724204981441315912398478346295068140323123503372253825654310916458882513462123718556225733560176872777503602029820727622704955646946080691204697897386434909376022034096186618925218271076376318827368149044421396435541376909278232370128011234950478271110666749262381965595473432596439733420612786195613798528900564989290406729235769124565930238758238147410673029567062360162183852369595734210519819290031384086756188131480449864234649669958991887981175232612358932144037341037878269155627001264215215361785362866941719579063768277494347677934487619742926411631171395329707200348402856562146245522948635097765030399495969720094274639412632532238932565629897163050913880049685583151610073095876907273744499016952811245470679839828462876577990993479417368009946504169502115543713950083091010281010680469993520476314185496646236692238974529193480016057404848324490555207703259891187914297164748687783512005145015791027632567678128090510043705869029864060184619269286624189562778627949053574652397718359169514831053888118279610188251945335269794699696604421779863958896578865684085609481719204477886369359857789491671602919823373434548012135088801012032981042410866934318724024960069451879114005917212928478587327551149528131579499217853893714819717566844864353514256188892744585874322476967119417421080106592092653637479322634257774950399339362901349078465514679665899594717131679635415673800788163125377404051361309348313001529205965536981244204875887086194175386997732093490693480005964313611424408559453180313033035969206563597766217658941213430081824260026768382848947325967296483322705921198356767473406506512666617719072925756161619145746431510201061411415833331847471826244755288215429482289889696413109376618487574114201960316751025220674379715507041882235272278094800274330870567495174729688415546765845193808274870252730682204937242873502530831122753976261901517544801890453523349221109484342307133793445019864120973049891896276190344301244426479982739965421420241905136611946164072647761935324809358976603539934228350094028423841684894392665284910894138159002596661231807831033336570130104536842857593195848589784861990748599129998146881532214099691002809157382602639496713837253480847349787852664105400539095783088223655661357670595546412815552664153272874555741116548933481056944012056375554826754284054427572177868992251856537504915415220655884472396163619019773764283355973453522988469913002595455155232237930250395758856232479275320632149217280341856694381272878606375909209257888232024418023239757798263679075829682894849837689176764585516042403036086636741289027141643727685886113955272496111169429591372283753014975626509302372982110384234504811420638080282454693267455095538349720654495094876111733199355342949619458882581635139534851742369514944261519850691616464948827183859352428646567807210672461163199646051886674923096972413751928787427964497363224490540829322082531252785516980769321870465090014702990606599925083305827121358302916298091383378127678090819156734278542808383956105152105659651050075801581859091386989303422448791589619133603735228862970508144709354636198188725788062026173893983309393402441147102373901886809716181964414248457632440323977484862631578797496022063872189062183084535737500487922615525748295463728858851854477310783957282414711413132405842956456585857541753784465392642355863837935313497626264590728397200681753686442506939678132410881413792239163617671257821104866848728446569606252075928704623275317176176597361695086986354307238737359556991394104869308477185303697021510184033235522934244066220810952074159492895077871178732123234815764499040448458130069125226602324152662918454751016980617018005782981950193396512364636198547567508698210375471309390436954962335820949033327193814100363935388122480680427390056713525243966767761544011611019749980939771356409876347170345301596556488641663676568925136048640057600049121829969812840949953489326852311835044815305849837677708826754500398932575181137404543601000681818512862607868323342383428775653795362067290845409949575262646348628427530980241154042345852467621993696480021104425658406299941984638876876241952901304382493105720695160650980326643602596015889776497700562304966725507093804952410391186008586393589889089106361827705546231036296749075387572796748126339769186498592700305988627377132976094902847788869925279167592784303734803836204469078088952787333403477972538084260329154682735881477163291711975958306466686946059094228780106317821097840577220328361826313729549448135334419756684292862600475012933934238209850549340385648832748577083568363919108440439756949350656050111158200297800964038242206145254809853822467270957080082041742311616657389975959667024594635186034626883367543499186002424258838967262265421765954024455535220720077973744603570814724358979773399759718892467808572790032420005006675120757122290138815866327116605286263890873576948183381187308571674324202155114726297716222361279440462068983536374073446704394798286560508026181006955542005286920308383147945067457946612641769321355582369858206899316954977287719211719110806830961059868196713459177818608526569225781508966575860322601393450364015282205198392341041412316787168896139821970278715606590448203194296115638377924541068433825428018978744984344687014000171051864551728663851564842367562759611344371222253927293450800074490098755355636596127321068809537012219765771460627017236119512850772451682692252941613729172244729809358157335576880032283673215978586920013503155631801746618228484858606952014654654958465608717320269948548170053758250140505311278232396253620397570679746033752092917363847266651778924894551326787458497058608109179102307921436535572454839820682058296841843305107144674283617315244444660992967208015313132782632748410546653280253223529800999863953041296260653350673346762619815633257931594201551189814612401447768743389898555653653808930019608099028545096620720915527244225385140916553979602409681054862625472912679798546257028522984451143965888732658873793779132674870174425253548586916695801128692834541866015003432067498762680205227687286481236686992890415992334780406771609239493955141364832359526128563582617590129342392182911262103962650270363681200770271421597525724923837601214463581016089935862044865105199509614119728372021539410235944734917148428385102110449064541635532516874749984322883911931162090009247635040265539305857787252997195573328777862564857362657204229145123952234439703740796383005914972228306124927109476271806003737495841756784640906895507668533423268147983350594794759392618866606232006377903507298707492962655625691992170466324020734383622220839506758469728021418094088877611276605310031524467305916942186954591575055846624795191400381880399501883624368465426995155492058436006754774306622387687009967237365568006506569469979715839257997637146275542341401766500261136920930558143327246214413284779143137206599324998441701827868239915261818564449981794439080152331472781329697156190859147620506774287006667616134662323398691411345821769979589156293829852333809238572760073224458817260501426141640623596647874910985948043612714053724615578553673856682615694385921469655582901882575253934608250249247236316752157601752594103484698328561044497493774770524058039250875455240554816746014971988519122956998197008767765359636290066612525458579117466798909848566058605818221229762949024228423497234858045577940634719132371602755785382961527853968257713174938430120984517287169604809164550777188108514964184261732360571238735480846332705542392174839258561223562399437221346033105522715421055095702496675274579871582314058621904350820669737575547776750405055093460102887127588831964708559749236583600981224735511355866989659485630990375618696213494883470175215944347536225470552365188126733901265100512730664322569399108635795788766247539532456744762358107052853280049129166666882164527277979314003107137814625039780434543416967010948028833138881841935671053360510285901226396754730895811329719788499514581892181651561211326612007413290038067618028263014289514139893167274904934470943079013312566923188561987706059405692093026133904707176749059902995251844604005139051468554383398144245943233815168837894059568818269964306333270194181210957780156570012737655229512043249661279454340250594949734992514516517491206617536614737790342303417368958339058658444384979758317967038151237317010682177683332634121536919128920704301844064914795845114350343414242389269831065483412510095849174877627487446234454349479064337799396993516245078246635750675868699019278593669267490811657219415169218569864899188983479490011176449487436567377616497598496768859948796980199640391130252722408756769799951863044736600380279261582660621136775559855957244983894156944266649848731316442178549444563006129680971314853052889657068439527467197879922294962305087748231009222988046051231873758061591944766018933116894341848101150251978730098536433641588780920878130277455365820089087304081551796586359919925069551940296613527398853009197754100161182468889522043625488333471684559072238338032313027237464298422484667180044526370297870496405909834085970966668854026005410940340271089587449801601622287224369767859557581165164646740070993922904951536037857660506362171887345422804616866467804166567560130916352335329788971520694495795304618676645758283636785584895836514163656120041833770674730820843752146363882518068938655114503734228701166228358509340076410113293314510021984801104331935698195611942124202152894325854630887909548421770478160632872399147068580724354159922063248482275017235064061602782342089184755059337729959520741855387884827902162467885475984697862360399265550253590780760606325537405449590497357250086821264959806203288520144429091684161292338126261500145051976784673296712808443150628728684827854568895649789617828283753433526030166830754489129707893926782638298884418783450718977216483287131442751942662013624326685846017487555154849412584388941318365396352396965104086993282119403530341508108673546562941238082724529959775080269111849248643555619104658776808629297401394269126576501133480667381240993831267098877345196872125867577960776555115117280668086786652254489091619537774558114492124788565655069939381461399762900095541979409318336730865308195660012047416131324484997560288044692563665575502572880162725182548693156332670371369358300553092936017963759223260727514251723103679657512850790464431667755251201586153603074854366677973112131975154423717389017885111286971638247858273727009213833340393935012581653982275714305927144309615256034381477170640036849094523352953616500578611408841634568950982584312834583837061033469178275537812776087221298426013761007602873060955596046268608090142395529169589297485445410596622764164672766016009181133484603496705227111135934535929909044736994852704108032307263252789558553354006093932310595568375163505223155411843165819198975837926497542756212056793634967919109977591094163448635860436023962420606078651470720677216538891234482086073691376577472732665822167897819910922060036363599934613597752742085825062388369914506750756825542544636215857549040768541247265042040894742331830777493195494943504247714075206434211334475017402531315425818450691317582174633121426163672393650903115000401807924237334835633276445250107185230120296512826184227487806817269643713763276391188526524254344906883885311326906105017769268332662813277231425438974198184791103346853562373655778584095960580900972882753447702537346779359432290685731668909749958889508373935391771690828253209718418368384789556729010784272143634776077629805169311133172937694452454563489468758605508571884166480900809189708304161568776825632004170223928538634647905039857647411182309610170940654638374180436649951960796078914413686489158521514656306930098811694798178710398635518600211071018789846932728714489164877188243387269188201470519805163403784965053267352527346017185249239168685946599006722117971558492152982521546321599569346253879389632688862020130737244211610756031869162772913887142110691948098287770283927614645647438729717556247279261602806866820388348975090394165082306183776444668681537935247569341581041824861224439799178666262010806069271112452570965989277218149701340322678188245249273409660997864150089793427494181913515030784029545664419378317869175968674917260657345730086947972878698361005006935325364392062646861168718494786168967778762992885709994216296728857401638334349491862296050181263245434585089358710108308408814595659094130442318079252478518684494703861045845690909291708577787408245341845139083986745972868431500162212841814659928106740490392944347663384543151439334103317066144013991210701748740707968218268840976703559176890356049692314426177125347402659258330728754210144204154051010390757527594131093640180668714373400711911298680407751368315707153948905114414228615968295420890885964046943169363063341887736729326183705821446419134606923772806508661171778508928635721546977934677422024012245284996943251967011185013073215242119352120846591711373526632276611641261537281442690630504292293606139245884663909281440128958747160504457423051683434680556214623487529528740457255420978434987155809315106713693751176685457296182032302028623101409646470782022396757095406508097331044445789478946089169522918102118662075114058507676837160408188824180529749766626878714335625403740529052233313719213775529833116304479703204714290237912957620215296792703730419443504590714614915783848506333406731848330828902326177795992584777267680193600887255701134330474631847250944667640517357469058169224821776199447603749994181439106053381291519988442478496385933942624634474765816649127525439243679805259362718499966578752428964272469785487167328368587548902599922585835361171125278367385111768604746909112790243800263840858403774400141919094929846261105216524762628177045310850368686243325656430047722071662652284244344889336994719007407875618915085418685784423382587020475407418818806101288366303586688733206757506093585360111012469638822399165332759037875776540971519911097861397485858683074064231677842672035133679157805828446348443063619694312481931634883524789313133114365044985947336110797769760733871299192463573797886376900670986912991493592949713592925408482504903375581613481405795237360072823794321027486949540139056414731003614633919329332091057293626030160401567059587114753494669798978220989270565367309159878670139201747322419156574200252808326887704851045862669676518378839168231859428266128962822988482876839834012370784706589754929772594394510498138506267036974038863050347740341769771485448449400372213722490729601435309693840495425983730930474953169619733140224751410689287248568813080948137961532548235490488635436556308749010076965199312238764806710412673533686504939979315607499444049679065539577851774661789646662131106178435980242039286186177800366686771283557301506523926312575555109188345999063506371119827300370396347346749429145794771298475439825327747432835022136649805357482169630180115938942579090415400853682073700521612702541010230350427384309449028417198831934314589099126908989195233909492507758623432112495113605244585934833786404691082235211490465265695107219498624305100623310899617114173437043815307771635444032595456065867713856458539085958166649444575255553654985300457369893336407799417243803142908485208329207294257737853299913045463357629093613863941722395242001330739941057629398216727155936995993930697228890809987234256421409909640759550449941076969758701577735369033988806884996634489036076893366613747163712582935423171633690362061015025491613455290359837091441072971330012494156892884802143078543941528452788975883337395438824428853549777753109114375352219370704312262316270512187823521107718281946616328276179189835989030134747904944910006722724137127762183547410027806912342184201071945010513219181014546565944475116118798442855620583477410675794616821591784719468979622417255727200862827893235167910575158684860998757349454728218135153714330153540783257883922546983222605740365885211063764315756527270297132958028483640474115356205688038940058676530733851850906984791522578084371360586211703570399725344605588886446599215080967355384476614315052069126132905048952799509048962473714022535565753625235467744689181694241650796604541327768342818692399729263638904698470002083761133366325476423364922808166686205769115273021411765117013065214224133300455030681079331694420661010754892053921230796608682599918309262134006933702273817301069375626396539102557922404066013667807089430743550410603439671235278591714771307402640621174908741448713850615749501722155472035299357717532200498870066702937007179257166760787710274857073247803731141333071390910614723706935631332638793157561193598928326858851233723763231931008071037121101641438912696830995903314084423210819106809088803078504015640719454336489216835145695265420479170244824088512503930320323682738013001961875149168456169162355241783643585213303474595220366931360557705686587272363100593087750045498247184344852917866313056619801826599267687589739494288437155115575056040916412694007212465356670345309236156688311660830357906685778292644911701637643813381338991078239379506761549165521732059466562878837209792996180167485984816387295950892881780579673477459506293935189773148026962924911968848960897494894077834949479504133113665490503077149945963879311340906736064141090198601706780185447668570154137392208713786224152797419344275873221184131291504804668729992142668666979109873992381400066239519919949438015714027153669596141684796921773544680182758739837654954124942929698920511074727010342648117982303630113673665211827796979619490417737509388798228732841826453701531405783325437891348519909474915957913148369187646389480917988320397588720601427661616088022585608313209906619800492603229430357092677050360749432549438375693219374906652603004021697517119827442698425050430395700692436839439948898073125557175933786000359374647369700047746169914885589036507810020561936918623595415670803795706275080464052073980989098684526221899235985883455846250109361416017037907415716183648274411607046970738271223826363992875074776991378227971831513560636923734474068828444507834654578001739497423556759663195769349146287922732070099780772434423116869770183894913459817287834258352122540650239340645344225230404258614357096672049087783431846646221604560437275809863581247197210709393193087274570691788351763261364337330549525236314463185317841918953957786977269997770347744704837152285747899176599633880581117451933458551361146666851751947224876307081790513172616605660092356751989006868467945855466830055014040260053971032180658340788178571809907370945575656056124620770872606028952156913618323885549563740825776161825997600926704081409693508927200933181620931204947609947814311601870137545184777496752237139127237245919876161274225622800737290407520713477883437456626449080492219471988241049937247809100008131678335558424819607103575299774098210806032780112434117481365702261272587130282477550773370538024605898122691004269082416810982593440661984356207621068856929244830470233599486515546831833874880151624018313363934727410117217362878078668861595682798385782150997749193044434793531285391798009814934537123902725540358369495781586751962225701339347041356722015612212643064801473806756474410304915147022060571513000616639104952970739494949246685584219808113415709118797761593857725608953106432568300333391640854474788846825130122050285619531717876310685850001240007411395961480663253730458004709773497582783838472529935536007069257183591048390892146884072928612586136443949051059300334054100229320599279884252980046100701658375931964971412207636328249346953485174462206235849994077574986028797817551237591929466673844359205385485061297762481975974139860201165662987092653669726879780952633408576714090893417023957084962465406037260040773469088451869077097989127741695599562389121704592850207836052283836691663209954692762262697480372432465159976256408736655067541743335033312474340415375996246827247388465650080747720073757390548835177588977938730315496095295939162079662290281751492030394575516371898295276022538598820230944892094944947530213130255532762109575354229016400316867230179734933788124021773378532852119582153469713190256484980136847460494939673799935264251393510437453210476446932640701340002420359542231238896538465712033105337337615460860342838348801876096756042149780573948388063040053344762145972450138755561063542549463560153522191478780899102616211489598743892401540905570536447885771076944754135947448531018760992333124326800236096682903542171067771348213547943803333723096677131208240367626976670575616031088903403068467797274732022125153526780455234769648439967816335251467877105336768817328454629985068462233943847325427053569248939859350369278611492198274692648152443297687410344323259417655146132435611317821096434210186110517310470844010772322171750978032570394159612359294776537825035814097574039459265279943208108795889240024646343820825554211242998673873805762248936958285393301527120569775288707822669394576820780698325685246278013312314733285590664542778069085244490694070205500355829393670270034496511394147114000186373262004332493310464147620754689707150208035955513222838021040273284772952469288491514719423907338800674830318833207633377703348249910379264297859592073560739678577027882572130579441361668346987655311711351181950635414227502891225746329193828045483444265456540695428148600312503742149761597765873357141955143590342247286554464002047901495714201307934935879609434275503395570105723041609714833623227493851908123765731866725654950343477468595242477516162307667577881012556174452483226253315874633592100933785166255991826165711990590644709814305356748882768452663134138751094063915925778007141878805447820639036837579034433347058455120548939764962859859142053939537806623738666385978450482535508217509732360133135105394644493453314759121283354966278952651183796550795988809794357035981788641335778594997578767160705891152041525452143280627124077858279722656208505995225877189809829721556445142200543830307149261885257507665894176587806844384989240415104848391897387983419288947494125119210785598293871913229585125750886526842071406634768038416590170245077185802470016185247067296618229198398733882157625485092819187165137583502450443325939488076083208844442415330529609371018056584537037701647811692565153401362484122091306033230028809852608390157440402139751424065081197076450886769393717175155817718296924064658072355921833367567317561408885956830029936100296428732303703532416892192456847025096671278046977408586376434249215650496160920099683943338098222708441831792037023163249393045427721951519478714484702525889566419956059049357340964640180932812461812355006018454045146809468386077623561259242667162493860541388519968326237025413673530190446063464662761801048666594742899562050619680445994073350244729749860330206856197984074750823279503292671025940656462690143925787135223619720491229050647037690712332938270744959078534614353432256799276302561497228729082523268312728236704337304938539690792688789067331335702646074137564865262658917183672789160898648852117049042996320709992503755506404329803132328140817345719745310630867097656822163666344074600494757890003428651349357844877700648560704210172555969771257639922577116393750439162373268119579902531168349438419375409133537828380849397092399761099354627083170470411098575496010321289964890006149659943832909668602707611557525851585630662413448785675318950426025096064651598957395867811506006059916473583879482144495933621550627902552334065024129640746862796062958942205223359842620098753564618980314670000947049408045169391750584207567338393984350080106588475760939383957450784621446078129113867067599499466548052821623804017560107017122538088184563187476953340052435104200227308599014192322876834926120320265973056312514981149775508952518855568308044616958735641446325319294349554631180110477729905437697573545423197487847403372483936361240641161746816102315920296226046176358595872270872013020304506487681237448431959629962171799569307892729158489542787083892485432936581888683177284949798874969163590550987896028860555719682494476985853619070140284053958644509591303818598621231341002529195438285478081496219758371037232731814739889833991987208108476243342855813622731277406582769443539626725820658363033965552989425931164382616711130148357855653586956456515746744126430984334755470088940426220420964887365230836573621393710899072997369133054544411516184413181183248140937301200063075523806989673813390088885232658759125261562076061167785327218225646383214383201133877714797709129499959608075186302702927387324010210922205326318204279328613765265689069787499410730431993789181102757815075790888191389883301694379274520516509732666029898653773812364527538605423105160319373243309760045043556733112326086047311329249877343033474853542467433739504539026751947080154111240919924373200023249897294409151517663088978864207443658903942474013946749209614110188551055610647017240018254945732073290623283413170462923450460529574052743465183716385896548269591074155106309991165614173279339883792122358671114301202062162324839916887315368879513274688176434375866369362668925797835498548376354885643642939547902853929784151847139945067817904006615633075951560566434763640910170023238526201892871266167373470156315902749788215694785578014526819193424378248152083006796025143198565524853569175864132067360859261101876077869102181613454220145025415814837517289033352025957542730792040481315969417277873502031214268005527784927775195045004480422668689179482951566384490983415607281765109171740609117946849877869185965545812361138300897622773181385865945835238717637671852322132376424764956133440989716486866519678407594440968971486986769741572811608882630771436336784385556735172673203702097523267103737539284229877781310968118337473518189401954881863130770622837873263576514781020387721035266127010118632938353569949137025608338020305965440597111824309238064434031270748788964563767313024572529987901956886016735658449069899133124926568879084624016183299690165874373919007943812455454237150976379485408416338823781484169877218830634178002877788151724272348899745209635234445435651734051037989485545448432616348422233429361633704684576054084314625046075354617094639005463358261212741818986995898457320741953692354610507376768518478444473039315270870225854304970305082891695568978863005471646776329658384820257225129725775259824850438951296780586692698360949615982282614049320992738543737772909220699298231431043385374962776645738635554808805240028716498931056650167474789420159722020600430953033332850486257290346067180103634310247381795225718696426852987997940385630438035401119594360484722588537575496600445660159998667696383560892089466824797641320373720006001395209831012738705838912862146910480038102831207911941449708110165969154448204112254296153534391814877396395360722612316814993464081786427256223879496227247065310453557104482173461601325347762098953349245376572855165159387906551681621382862333714706533321917000521800087968877953640673103550973209567361521966505554520440916901273736451774597167727202755878907496043053575541678944385771011796215313556999080375485410439972659976368558126420572281761231289718820807445237103688399021926054438160476425268908826723589285101679261189933330205510444211365608611937481503295241864870679701196235624610893604443062461679992757283276666653291101260524953806699201349314813294534947171681607914035773070796718556161472139136779422414240958752913380685856107482474385711624151547218799198726077006776193813380284038291698992674603391260454837631663498479333043619677733360531222821306351342396582492014617264051085436896109536501265756414320303872365554044172833807589691399006951925947714706432540357618380655468046723133880998763166310479973404871490725077491422021088698884760231601513011369129686411491580734218710920099733093069816752122328255114992988465938280481804494926890336667538363439567814102139890655914876537267012336272291953061771146396291908103272789724046396948021928735508600778448380520666659233786758763146998531310360185320145522206037724443840970762761486043321703986780440954215666820944236461996797631393661343289874361386441582920304677985654424445906670039844437718786321257062164754244562132023828643530203738370681128433516182206036541380480133143157228373027738444908375997384032222311605789680938998918884759234495946357774379752329650115045130967592622618553923449752448289309651132908819326680254852139778598342814843891619807301878536816616983178443112379748868329816185002174760665602583609534145342052865275885728643045775191457439236202124831268136367131851831308230288683022492708342543542342597747450470822409021919708413950109469013548465275809075646446636233601287145080143482795338490438818417360248432031712034479780593576589702042441367177715765073439635417732878405810856376362563272338012055540744517402912288026815955116581041051916776759899733853532193146401278195267643742080704505114030677072510784385587715630293118993677613073671609603998442352581335033970486273726225689772965501064041799876194748129834180672681579768826877310146061525051673575015837917207093305971895576710066681370135477763706847218956372732538480988089758443502951632168337999164995585606342444191123415215177061142653953046757908478336795024566136320046075294773637744204956210108379508494367005447718742767386082513874641447689189669561487934535499780520518935292821395708097056224764127507017086073490945376026425634107350850763113832868419955938135442515228020878136776436579914297017131241154201620495894673111920493824828521176432556093756025819377221178024868143732361418865009287809414305288399307444923854117266970110594011380640600414807367310844247229854209654715334640851673931506208270363273248663245392768372717462178280471693589875557051036507473237834505290781411881570521797882493611530784725680046241400529177405304186740576024930673574051499162446046605563038916739474526182486963414574278300153646090817375002551955157554683643927606250163554453541216082022499953628620349592138233983123355694576886924331639572044253361219310618604582800241981009176038945479483056355558449418539043960964514010636512759243535348948443347825465571127541451975861482794355488315348530507196565875395850227441641199393320636530656029117181211611032860555523616868679821943430688350959808579400173311613474305747709173506545112089765137243768114509106115666119727293202212547553966542098324997167288099843751549062031869557073282335520831135217144846285739143561657088912959630438997651667187666960069335927340745292068994026472160400989140286516878881919385801272903913017066885863653152089732750353709862404368112577944557983538209331847629548624327284371091025302626527226931083508427818373283984323615994178496325755654147336129487638430434290244787316716498282052303946371186500664324307325664581042563504161432349948045245017108558350594268765615868657039144157371354035846509617720475970306209282412213580045012344788735039568682681112992132603737257941865628582548324275606116615388373123967850774423512610105855936196755970011751696248705621227973671053524790742708829853310533434950299933798441088051970252377797063249064501538311038995798348040985010468222160448218365882596902511476762833238144552438618164382121222416927813232307046391753237820892078333352583388565527219707039143874537262332450841029411973213421514959240216818275318458266951509436314516795799187381972477460631283027367223628695380079806679319344198893926070116427427405266727464185108901157992366878541997119444522114364881818001938302674842528433171363083093834132301762877897319000003804551679774590321807441236290586579901694635035224867474482039268039490922910892029723314628369697606355411690598162536104564461492643012394753710614060297156497828755367917335327842179352094223971950321376160055322757550139020652627085611408865351514971738347224159712105955577010332468912644052345649265003160035829244747770638985600739752284726656431143665995807216257330706468008312781848351440883209613395461113357250090786942468489378315161643308513187914878135874386819111547097501701243429703416631621830155837013032535622295284553406629607962960879814076803163317706706466976348148671501418233439061679725963002404760073130260908614521540730381280033179963566185728788515125808482415608172892606131392353469269887684959351673231448838406327693558478390432214081650855257151201460515987111574440044328138026622250472552707910346083144099823061090036618018200681995675963074603923139883052776995305811750033932841034027239927631414119689037411529428186247717507684177599646208639484791878472304407632387811329523529725101962796500591071832970812938474229332130885075117744486823953743895023517504503017796250144121916925228740378785556251729831127526207836973230330261823152413228016280855663836798243007835761096241528431135021862762888975742458153418495166055290131654815232384928554762942234881832652297852968748991815540986849062535934492636192884624245801162703043877933261230686529901953188073934420349526764157357325323198020032830245986339762165691240497609153512762535808279771772042890155821326318732710297388654405953357017846496638525003118234181664733932050723135602697137329359508660412974488165509432312342050376883779098934169645938459391250666268528108429781950610079205644122888535014864451006808036306840368913693543400687383358580907925592520342561110008261767977582376536517191912374725419399310729884466545193780302990451013838831810708116957284518863817466129049541569315995998144009569699696850610409618461177601518695428147961699963560080202074515853204795199831901432764959038353817286278519705879927501268263022429918373530263101555509716431985978215314704708960405275971246167126402895293763325890765293481425933919981664705352565290732935686693317243898059280124869141280578254541778013674631048794608781579785139693025742317653563477793655974410658908176813540502310768121941551487286051852732658960951427392125030842014966514812052365524296905703881753038766886840917547420320502303477118240433797656667950751112642121398472464649048278629130835555046160217582681600554180434504411477504958964270784939844964155707998695004165916743095156347878211293810715175917845880029566242864351086860110914109532633217314596367516662667859695456743734451549729757626818136483372172260173089302678805297853194486514771808450837813986379542233263937569749304525070022044746380687194307424529872321422401593229773201727437238595777749707664535246486733826357832091801462488342145701395235686400446242822751259703273814954882349567840188700815448033472536529370683675003968527152282011015417564220986867386140294317134581237933903404116209370808619762342132545146140967664953652996836430406161461120561510727223033574845556831244882813151056825279331373412288689170885132521229495574269497197526389493097027220935819355119086453440122857655652661564212801746197940842765656135084406150611768774701452878797015496963509833305437559856932893908082091336814933597765506712378175008768911199249186509593640632416480144775356416198292631701005659046307826698094405185817208756650263024173624863169608633547537068985567805775878027436951219716159698420632168279046570194500170607674305135009491136216560294655217077444337832136710417233042991887837666307260840085695795852524097940200380671554639220094178388557884595445323824429914031145919864009358672719699303935176648540113482410163559447753520160032784065565203244714234951036727248648551581022159100830621392565034161938551403016558188097041212067455962749715570907368878857740557153568329888175005130917491626300461517826987635019973957615828909215241027282140196228389312649043565566849445752515993731682942274089607016157286655509049204366235457673820399597505322909192057196764900796957029361438775757400902075770562831783464342074235763975582004405909216328493340369331488179815730338733419269533642879585762555383099448141499934326907694502391364040214624016116965933952901751979832329926738531460443324647659975524545793429365171146031599022980552486718722365616676184957487159963308149517275061141040344794419605102049408460850841850778119893878141478320506731128147513799825988539317436660424586005054324699115366341697568568399347635160840085918050916503653468460840575972150709302146386931005991811589909921828805125393082304662720179306461822529277041895335941220338524114354780100342487041805651507491973741383582142992049228352811265467326232134174896280559487095299784865565382086775998653851545375644452596758706136465278599243444592169517574778512577311127937404790836779750246266391778105278993404284312866735105555408981755231358607443453066294537300622998766024195112127413475714629113590610914295035455780717860840489459717324490481526931611148996181192280967822470276569925484608003851080916793889855603590598471264041158351549060151518832151910261894122761355072013620931881011628479084954459315011649400681120773584628113786957263371841787875714692143224193873613858558989809549800363845494254824098520810960766551816517197138439462964822328829231976518028653518364118055545903137660337816812490958264390297198500935418042721284868174712585613127649006675366555144666575061753246735966081955310678612010995992792136123753452026696290060329590429072690341563741694781291499671371501819516441650767442522656089931298108499342875534485576890091118009445032641003786771273257220311833278264227245976825143125911334306636815574821678894942476530339516968978538606005414361461935155464715452935361795609684031671946270520974239856180705070799793722545478506237655193270938895473454412098312206714987374865779856697428098554738491103154783257043434350725680871799431661097265625117940752019392701663819015865456264288580633504209940962605066425484721871980729365808812140166142355272144152822697302812376342004063712979324580312773058769402602253187911250965351960782379610422132705496798579293651337356964039946747591470062094923796201069558989614357944909553030517064215644303202446533378267790737195744984227266254317805916992384756364961232758988825720945073784474942062877545582930380383796040091491102228647757901624343332991561201030924355431050162828693477521641336969564804918350226478019928888272213468964074145675602987408944636912832284519936230332298648339159306284569850189145191377847680840787204903099174666125043168973867087207589755441954222927159029313142743167025539547672729360152867133273760745755854580040259028441945392010186982497084949996303336023858364131765175721325877532238449187579951040245650413224407514622137215969882112058157544566620637680692750135016718920024770758244191129823045100743354056311382025436980077826027568051227023550894616604026671261922633929111914770054049110711272983099125756120051759621871150876537087003294325467394161513966573163423537069832545291239247541385394683183554330419912553016147989797968350749909659586811994745125903387021943047779359152896745456947465895889796946493521504084899319805454752650795026953892540513648704648712745680024730888983886617535928218941817647822022937482411277379068426937559941200911051805925869841930133297420004988476558786604290066597328117995519873702244428929703141523092073748393432627976877847285084792592659419240800510743337783906211317226015476386818248631945320758528151424520871509395279582218129775532226529645146832600658233561582496484378509452717903411797260141158051067883601684559716675209761025288922645541121445554484546211657343494816744316913336548458497457190898784055529166570951813187027961274849010129460532671070932931830867800703839760444747567385544885390440354409835412517491351384279820074138512270132392977236055900949392345813156189283043965126181878059275884277941008562612117210299754128985344857340189939254629554808189971463811436185879200126535656050190412364320338506119971383451510552113429239444472265240302234183166848591344795437892899411636119648005718807629322348041208565927204740241771125575263039302107847422400910052787068925718036947731371533825147114792188225409209034037990269782222270063966015787074447357042700994202294525517342201614659380447210900525265896598384938740993692046127161826564431843649594178541917064259785101507344480224069357297898927910254937678114609813993176296889706292040267606494812503658819940764175321182066343720883958862812532254551007373391005740692968503829794189631817029980117740169596812001519855322325802173801419770908905894612673520180127450363290427349881689719489340009275053092565516371790709052747880887612870947707225585669362644513585986956154235080140338809016620247813978705640629953361415281732258435323227451796649294846426006312085532518816050023665221802427653733746638515970225828252626017698334995152528808700783586796208938088961855454115771788315777771430084279808784314010440643613951740639826249496956891834302325797463305353564918995020344508141749574317991522013093691360358671429925916435534282929858042111090896976281210538001864630411307855911729594833853069517977506548032829559376444412024480575160502125852152714550206390299133219137332007785954216559257219045724526945656000578133401638801016971360147258799249898636803791126001449396915134713241083632844759348579267691659411013109825652652383022066083549543467111346344087841037405311702800721187992213300407062158713516695233950955464298390772002438166311962838692999275404570666312986618024505608131738636261665381903956880876575817284746574454610247158421048164853431016987044689189168213189988643433990219204784130008322057985394978625718563885916508082932513432112720167512007336243384553015428340448945220004411854622287702220922829250489290873492912391501747884190523700089346874886564227389773111492377515855080870184977044205643178165050558716528128300150288116457236754251213398429159526185518830053998364729261243489953802079095792750820748517677290474649292164074530139141212879242189576877491672403083494537019101837054386817567609773777498346336960763929408882672288819975913736336838865306435553118976708044364081731439372469577631928486855809999587562280304229894642328918749934439021134789349297042274320597491420556699500267394305766959115253073034521157654130386506309024128041231687750000150626437350168866615393787343530436940745906598598748747257751019681483045992406421283346194425352928175544101557367992405877107767575496063573529460683224749034317416137729837893538723726665358969028474336633033680295113764894676169030791187662074027291384076063408601507556249417891217447417177885113239642254553310590863878139757569223737717026139415015152585491470667119662309646260716086855891773422401182978658548252952039934143269567999104142681778901296055002871635777759665000966499982627927846118982095232374283880971642895415656525926796681350353561987367730638954307824754536565787803148689412979222846024627680926241979188946143600402996746696866018091278934947371220631901860356679417372432982117934819973054324265427154519351435794072860722110773451167096852498889567893562131427551170943016877871409852412864059039626214037528705272304155633245153024144275220461167482664358918469346196456124360708100222256811420421370166045556795644111249269267703783517062066504264943508980051347438080673975870387873008871940378664324186235830806850753102803934756823477322832315928290307519762780389210948219198392507882712204870435800567779624324829736634210006499700975152770263207537748226506881925150935524154892099707961248868265650283378540839849791044699763707541453381316029748233947330563737698191076951300822561572266571623731156731789442734002166885000613437074235378365631463847696132120687857644620393099190475932747445135280911596751593114615124139612873951176603931105998116955282192577664002143622316369025792523744504217216511329919248101261538291493889394474026459610796264348535242527367270283113087769454914215715211263354059255871260551854196910918108004705667071558761500876819955368918458279748821751354979440601939219164353004399891776526434506328045912773011962989796967725918387082571973923289322255457291937253296672797732150584972414043332268525849694715423999880777757585533501359013128451846009248625404961265914382077422919131112666208976228171444726191906329332669691673407699559541065478130335587871354849524935565076205820829095600948888276761822926772514221403434747982087575702926700118586608235822370661429892214251816764065873247795930542595878596277757316215544807057465551347260051072929120415292439046819513985926668297414530268738137925844972140409306212324466924894309881208580542260825245107048224980039482256384634785156231747347393417133917755172326698551048042604782464936971067563844637097751792419915121291798131378812134848406344092312120344069414885561897527450231291938414285340747727578760649226118310450715900429779205023739538260074190322764024699691988179358094997919923612994304684652535698771089757559524242604542584427633455863330102216221381773144238642736126172812222310214133004176471093134484664461253033520094283254868204876591876459085659191213395228533729662600953192171757257195799014108507650939490379782557766305872169964328584878883801629133959299553085666291103583016090138210088551898783887090073747603580939538030246065958771959364799173902076491145419517819706039936991900809058529625383412038092917093733307837862913995256917453290551030292346259623511789384648952278007663248582273223168465560957863012629226252863530156669594596367315809511049127201652037750610682321600744665713423847310655676448693799597018419731589972827055998601502091638387681720551292295556802053064555315298068735596964088483336981757533284487968672842859936615819011798544784955512382114788985720465751915379644654834801118125007561392134283304560550729288129959841262362383998276963323087979952488323243831068237772859188550536054103137884251240818811954315967878989062128075043859643844393133507091251533061415017927228096242702419858347090967106566196767048235767412599600043243375676223959673516684572933361232811293454768134597290409284378535947395076939428774179004180920031430205379254706021444161424708216951367688204876483858070257894232551814040415801170758087963469008779146946017927447757847998056193696716497030725235389775668713497230360596412939301370379309210633029267891996074139697380374043392465154739404967864476795164597213347027363849198853247148421017848779780942589960712414795038529146822231083625124316298055654312762828202872230562471985892264694744046171126397086181039207099419423769280781291342070069944064216401764951325997811671161965814506738340941566639514834545732158484646544645306308993498335521787726947793099476013513166514884032655331347014772903141490280396131520761386426342981602811067294833623773578140775739875066738833783454604600002045361594756113817056312897660984360012236900473065759353314941358259262715341464935506157186943427940042839229498056051381783557032856452122245159627107671819472013501449989957944670948864721532561745188348374641587525487062708630365145299746959847944089649439878813815769740282234001228363483575050885377214128258471029819772664410600623582640541433713320679486660147289269907158043448925687917770563685561495167865002485385388378653950265759520134845005592689745397614315791073985108290885807575629490353066126272456692750580770431044814007033630077031343791630716522018599130905840653833427712895665316284564082771020532023878372877847853743942446291302610503361178285732740033266712795470983633271347640266929745346202699593817110848248356383951523423131108411515429573736384600228032229219124658129290626002474285784102669094660767422507233933213202244578188502794605970167961790138374918394525734803495562590916295199697425290110132400855579973725186731127785014642041956219361520482215035301645635833947234103794816417935901102184813802953235770724600828114808183949540951917764969903152333590514469647308738744151751979942814930990888506199650560198962298610222152694377256628699426717772029193804681769859219173864140449185164300156079965483424461574800737702642482526115810809164268504737297136458753614114095140593081034249571225736435694992025659533292620407212446334695691131875332014508484141943321992132336432798041957496399233040178069146458161595192060895619498781259686863279194588654751565019245637387716593162106407399694409569609189415535089730102288443180666779703444339994679073851529039710057200942102027650747138284532620819939919662711944272889579321018477032571612221142486605993484024181579838694038688368121428202605271016588272201784793210063710906755643162929169045895990508990312786936860726211535771170658421045257518407385795931164386936636277265834171319793728221407845150020840163351026588733597925839542350532647177209459323572502845454850546899657852422202187189866357904325169401619609173935727457877071460731968780034166077158659195263973595606121168897448518299691282113949569201861439813342988984121360139292935304109881000686135925553579917662302346218275271795680699948634439353775479471029122155368740490949626560462610779562515012951323773286198154910479608238822401337214709769645929126138155605414790862317582630564695177841446574706086060061396068341274380772489335973656606157000974550654174711061099571781185128670437023048002608017955428430359449378779331935226431653726514968395040727176461791743595932638299156676989253132180545012791244214638070048662585037716637427471397108931013794654312222099000103076864142141575539793690144346447178674319822270598176456843944134690534779105959948789119306226175147988458516059874771985645842403781219311148286476886180476811902298861973835006386538850537820102137179417916206808345305774449252733106512865966538847075359741267760034315907485983805937115348617940123126118279762007807240020133833724373967357793012083128853150654745517953502459575752382243706610937283618067318438072068931989349936394345933897854151256864962670579606528893106981730829055819736365078921347322825956884748253872197773485222257635283581485737051633830465476644285701944668182214267382236946451402160697403164007212995772520292138478686910924945569624585979916646595290773983046442743660681893697213894768757747102720594719369767707396586266350201300606802159797576538434798773172611966254490323088423739030351329412192025505576993495398345657547115212025000920710210422713019690065311991692146567534404661494944063205556289468135167313902038699521038405421617831543099719763181465116798088472082907544609963641488193488848802321500019144001535791592413194581440261335259084787701238967939605231406200055315865681152767859097475755366619634445602780467799929963847161587169176596698752961405088489841901966823679581210641107702962023618041641169790888571596613596012241471406025400584405297548694237156817855621046083385557120011569236252819700573628933655704031274500912078806390482926141490327974975331856247460081266901139670032296306246439480987971241435620675674123197392026515019759096734190392231911791293876186166904605882767919630071128311105399857112901278553662805220447624192611627950355232457999126659372305506453281802686497294881524540511817217965058802613666837437915675370940379313784791891899397943954367250994749732874383906449663740331062007707986886404514763012173002732569356634790020052638699591040584091802087188480173380779429122568348800414824682044771415004568329063375516100062039727135183732936057505087497245819165866221476416536064777155678228688831538129993755309408312029891145515461782343342303989542192965864441072613339388533453420936102200879188393923792385321996925375693596612969390813449372961192698032896955993841683574843420465368641680455256906038840930400817342278470118030775619599421375918660092783535721483681717383014780012389025568624709533098927372965421930129782089451148304188507513237701329335502662339009240350293336593542076367397421194754942597103137254510970423010360165445347648546998318220393907272515001632428269000983197912885848251179338178780099155665670708147445663009583370936360161325627180874590776836802451147390589063881159297116568174338390475006052224440471753149288719717415342369291750771946560936995280730822137190539906417270282887559127326537545145946960395279323694946240750245845604364027292828486398649892822723642228296349947768867830734575657483637621551164307057404139388658814913511660151072791064780009440396505137509580360315870648640458308852814416010571496741768691832991123014811435221517108808799250240895623770916996075882946208990250996669623898920246391862252420150218019402081460266875124052827134575144092710374051158212844768427521252515204070655818245839500123633732183244806071699785371713685123763020085494107930474044002200304877928098124825492281437149109327411543514927806773274238629826339213883149594967621163698809435284452603436802246562055174411841359190003534885556357158240691125851069141573704043482463667010318452165605709556973308951306220249042446131802808732346533069074772103451717964516200338025896414331408245626672473449110070810356095199816185341593237096310439485678785287653281267235795170534205355159057373915279941634038609763362324989398183504813207305320454376002710355422046750850058388452114728980616878865807297304862797308675298553034476112441450177414309069409311317969484721204609267656837113083268556023893319036424091356042361233740552699686535826888396071700627189772124557632770194580279368857558604266188155612692840758376373587187785373305886235689808472621538623737294263799084445424980995584353558787581583420086169340355172961179428393706547689385732832701869912063489251043462187910900297884024084020113114258841714286936101379129971227378843777850140797831184210097502915096642385921248944488369361836832416605262663586071811129650484480866461619022584074646642877661742522509919504036587912217474786709782741145050791053864983559062167174231605587828008689034646130439443159866365436315222018613599606817444565433727115783759833358358981805344642376920590808160360132071351412952766242485745369330017112288707414157790726934437133558560788629927000911780173919834359961272128046915848879988032358529705032303566195944688048356446118363534569166397703849408299204333900420622029467123491809594024565538145498989147551010451377274003054857873204282198157710486566208955955111934752219875588650298093553805142472813820013102442617786944054558010495526192214406376630175986345281199346832346623325867549286265937274299163701218500700253575856220731676348535838188910229393563384047803297935818144222737686431751138587260651702017266871508398238187525001034441259160296852456592338314884269397610589310068840463762511163069673477414507696692117552144484986168782679031733997956989446533203352207967045053043836273609482698336331082876718691792764607333860974375725112702085093714359703288645727533571607576628594781945067381756551795706544031280378627742911467566005144026730522107887199593638926169209122513908922627639693052264432413663140561931850522324568012549633079585552718286376308416365160548725334395174336059170706040765178505955615421727797673386298598109770003085934745087590824853196118246620963142566037511226420984183875927366229807099429484460935196547702834271944087758265511809397332276017141664654642813290033334780135248813610707504939842598322726123327443435653585242748458576933127350279150932736796605249801121564655899007683851717985273092907923824797251134401580189268457411981165607715493598239166340226284434425605953391031207558892156503282630163781229897840049031471608487454981307545452355714445948758072902991593311051530400509626297959137351643147516728292577186150208273449661540316724006891764271309058978022908360455662626114005733717545119073222279524210579150341006267578801073519089719013286056538841804656855143270932534643891420965433731363337902008730762454828760886878599163542241678772022828240507148259929795685802702185948761428713089269636423197558626708912483251534703309515684072943977491104711621529812416598757389299975413313533133461296962564453875366822678357206172240192480211851616373390966433086864474469309755092036990885479413542977521528558897471935609665775960727151870481372023975363227316807330541981900012134741042830678098819541456965819353578502039977547331869244061413983013219230083532710090558133122646662870199378977896875675056941048323858899432176211884630074447385052528147875925316482753433081431117523602184364049072068072331832758151099461940860582600528976287137181007158002413131982962837658549812292175108905541658805426087302687858991398924853144088576890744294737700683113809121582010566150372651643425056307039138519365301258222021896086938050303538571915771440404701329201714178616107810997808867050695394786267080099789355121403300699381314702663750863824630767073976006122375102678934626422590834702626537583259656402063094960588400588130864657076137416884191163844336883817049001949475250986833067454699934482817443241068222996760562921122106212515888789349805335809462341271880858701957868191155370805974880398486211168487535064605546306424589370590263137677254928881211381017456272924899249257509758250588337433613874455826108205962121081266211704029316289537051268154654937824646700884625137625516410088478895426077147135402331943517508484488486664542254181837457296323164637020175773403409560659626038292357729735217506981993392093717859179862529322307237751749159451482171923675086208113434546876408940367069065744495560491261163791589657366103253431509556136860385938106384690885043862011644160560852121149909906757333266151108749740674852114971392210623813450675877230854451615753318356783688311719766625396822393718108744905447014783616181039530796037587995454774859745050785335520927441152652358584472960844170663937236786448674077242141679479739904530116147051967951446959111179469338106963762079629782754074206194312053132041164227332218766926700624189551097111797241381492971992955935750770828193069226276383551267235916737368540210763162594624502201273170272243572461935134941726546056287440042319630107420917496981701759596918682860083739467168017977118614081809133461724079957541665092659486134176588615654049258211452846355328963988945573655168236032773246408446051024297568259875531383244110125447626948723022765351172381946782717946899173003411765777851323394621381234001017608378645616503907075845403194731177236090686438952721847624715476001990221847365816451930154311430763766546398709371533579076330486944743355808448459420576014367737448059118955463115275904102213823876256160626779537648863677499768383088967924027425454575912080430356866663363941966298049049733387627401499796996318842403061469474859346889195879323458158542403571338754749881436071711662106064034811850508148353321709638845004883798955448907986869164636949817643994555077824193293620428002972744025258367290267784327978862380922505275464255777360274112275660226931536542289947832547567777203076794089693674720619136179577650854056889583955675470162962875344062887469314045716700487433355260565179970772975953419324299394794984917762982608394721074432486989640815115925457586094469702128506126050309388542949054585785970756354375184786930393618329825335948275941513678614043188153519270882537555756161168557799663383423136312310778335641412323609695715627319061457048430620795720825260396280560395124824480833748311170533624857230525394887778246822952660976795300045224792570263271839631656105151409324948139950738527487726180985614994998183079724648731036565819086632409818751157175634261542810630257044530385784086254194177762349500480607213146311615202295819821117653871859789594965402548454458762727932492624528152957237092313177033735530947510842282045429218030023914357192473806667272897071017246796609344032930804276190481787051330913300574285719651214390666220859711252228828371879490698592815727819775233447349808501514315455150161532932337592332096807922385663198967679795632578568541762584105632910769055309326562675142333965784851747154441879289775162417296993524682253702509047971168316860715153826808537851767012138423987156826030091016298664436078234426082090250183840721703767171520693697559599248062598655738541817747230163596636473973808225200319132489291893215602108488909882668997710101722149679274504310284996819805407007920906420209079540933955267719914172980935553454025881278585115222587492161381190312537283212089551387052068887897587376099311684112200872324496908827038332575069111349030443426645655914922525956399267906233597836676800831432360783139114697918786232894015792465400534393394221170869974242475331004261380575352954188806696068589779141911209659640895383354777105721949339203423654748664534923756525359664875542558901877367223995580163497203862430416321588314248300065984130366876697717600344487396484048337333365464382127758447654247331830111336679325749958625879489457572162496756048369978036908132110600221001056781014854827124688739585395429022390721431510358733216900443902955296381007412762449025107504785253899163899609543274034376631874334966525491980411731039733895809458229946950351810071338070544279050441845165879504986369330981837231625052102695799295653596746913999645743038515537680355598921998616392755643453898925651119367826034958297675372850356855632134075046503764473976144539735570413349704944087917380497745503769684169918737240867623648276814996725731891644245786103748077477203365810696293650924464382150594081588502044386235379801836773016459748294600907122600636529675865619799736927178170248255519492541904215958047527970256024349340312773701855236489370801041700257037016771814022271183251815571152749829094745296937948124801860929040095047595133253790627544970880658586024437762245476855701113930023737726418015335524817987982014923992710640026583647011017454123160677563780381363046355372280170208046246113681075254805876052229385427266211374979081443420463457048534313024485398985021975561511038243260632629782611954770239029208785871766706765271831633665118131441920128641304334833285579453279877144497419808684178935144797259650109854223366770958116884887973542894957429944155558578068938402781041451951813585562764443301532751516105238608477734925313414717036857838321319339583343301435732575073516773185755668666890089212170767708944246474796253907705963167425176852915513033158160859389208143305577929583747304078207859398354047378208120518708309794017556538881747347631877347207660320981608024839508761136705392890439428800356395355764954040293483972033985524224676985035557622479899023267579306808404725614477841479707533389556288983277483869714682051161025529437275515672804820874223245081244420261700749732246368917249500829333804211563906028484436658216302531336788110448931633013396142572921364890152140812645483419687640575774749627600921646906034702101426857694835263809620947517818177312331186906814463040595305335006183430456046649891901080095687693531735360148119441787568790013984621816564350844158566414261883796584770377560300036350187295701792608670938786464591400653575602644078899799688296356078114405714573418433461841210882372509019300139319243161667143611904878138281134658100380821632209468527044871776066559870754678555346738603326528512826653586311276105587353676914825313400081762204411773156087829449566256372854162800334422781735559739514753518973964075568346109797308360639328856889830197182292823425039668069949841271201535562218532146528908851384893933181420594457670075616559306204623707891717306065411731005503988785196298603245157679575441275703399341064808338798112196982439145147930959548549659225868050555870424414582939871332077926472219230109547882495310695954139466396467555255362586694072658186161634136322982673002954602581361456180054873956076119120630607746387990742865716431101030839640528241419405814443729445259997083553661500861371287624641605485482588131245301704293887854899489864808687967083312748137333373186216449314764459302093647094637443635734047638422069818407894988461915363223874829235743538366921542140324630382393635050999633494997261191085370195656553490516097484236791423281006942492673773718505750728265730198297033512891088411741129027154213708186173994326580597392072981539281880170185304189655278415475813794405657977557804412014710424589541553465384739472544737367942286542847726579124825999258033322916498490915717219217151256899936466506287157014664564263492306068818119230927208812871019272355070740286192995569082966094837747116274657209230033804641353247377201344961875866742273898813870055144089791189322173383707824690362228978908395084993960455745177751996356323209780040058054081635078083438557765613908581667512486246411999945221529479208577234712458338978307614489460304527336038844163112214444896372000075441276999729824303201281438689062594614523215811744365787033886080456296137857736065237076579109772483544292847804383707085026594204263199303144560203743953718674486611864966869727998981894670755263975014524933551631970488782060398284465253095651181794218717970958916568187086909738933022546599095157998792594062159082108807719960589780361372817100942431468564387963531114108500159174672482939508743061441662826747924112098252405036149844543190968372736116333095833931751298097700035919688370117447654884107755512484421657908063403768388843519353374377299805377771539760500992382134217129468966945632558489131810084204595897638424885801871804909318899082321462405693415325690679042215719167692260364233497535788497590984885113420238502167542961417732743055401409996939535822548091505682979698107498273250867932232667504078634988808752192318480962533125858803770668017592039260307108590510873643400233694215240675391775824329657540630771788831673671964964122768487497177145790086670365508428120871843009911161658968578400296922282769608456650613155831382034839016499841535064668415296222032975564818735412380391948097716324366330881634197099974472227569397825265167801616165404419941837354166655618690386013293480549344405351333925340931670633696184889857299140648290138106730910680055442305434830417810536255004360390914417101968963062462058064848973471705178413522094458452501232082889823377120433289821473708648925318363123905212495738232440685051444328678474023407480320721505688851675378702023720860811714291281218220969959104550585208849963783399165213150689142446747645943128790199276428656973606374988496278809327664572288626101278709101059109569212920817876716821480452543885438170184286411146914042178230277499016018538758578620776576350462872543411634764393458071325689020475844984495435596575697978607482344985297506313134833755369130515121488159832672215310401405439967619798481329732142509173816317906794299803508133249438001368071887753321607736480695066010413979678593741238248900557543225632344772225673141136902828087461207511937588466316811974660532347303712820067967649183223167844624675168314082033713698052696957283365809072102300313331661063121748090109823047992346281335672067096295595146576047740075624236367018847945342589534606374919631882295406041782245390752189311701661474776498656242140113392584873672244777943737279364988591789633764617904123280588413917427228250918655499037375463295525137187493107422209355135000237914135691448933174629756191520641505156219635425703904555501374951988394540827630001693336966947868412905858080624186715173559656046908252293090283227522503576273580102140447923750350222476342514722871454146208977103291487536258582907818097444926125687922130018317501600065069076928613957630707480417573849260351268839546294655181314620116599858935151218643130744496297443245110217299692040192827255045125881105572877041297606835939633905275307954883926849334415053961095413493501349750613340899814532274230170642681431491989449656822615151234791546461064511731189076387646396366697338775548170452825326450548775777372647333211919713676933611220200419937467571757946251941997166296616217287545066440755937768401400722134932168215829134357636467773719996251259078470481693002179561590765463495059301903946338484258337265177486162401764998940495965484061478787971106557310462502577622663258816538132232874825214788830626904530992495195482086063016814681844008465170122542005375734951823431985586494166152233148661944975012876067941520343505426580545933268627057985068960510519493054728176496601840719530268837147733417871216669931813527311208946926513765287051111180050797422579311832280960361457395731332776416427392926846039401967789743984503958981116711561108759033343056742838158442938262951994733388547224219706865117763924228883034288435627045446363657849327282089864328449802804978549277804008489441105207001488201453513159951367446070190081206349213173861875007804773047852188279949201738655710499396906949359328948640100518200691493969824536676902440674158292785073151261676492021721951179927777441431143780200725333539048418119825236792534824866021976537777315758059484981919546862797673014021464130279849457191312006740512803430558578200927793619569497327736312648547970774676873695155026210497796808015880079724278461088980179318925753692914751840019307417797134731048471970547139809543721289330033766316337505710948431655663922678451759708424276795767075560341721030326973198869702808422723715140438567861052719987353226587671277362242596239141330494515044043149108087696743547764579786224336209077884737582683528669971148466560860841345566998199350917147572987186720717403794915265511237569095197042380836513155357679188106655108966583381716881614497779520448157940269727163833343599979529268562803703791504843049769350280300272409195932785300401318572952369920588297430358153190816637936231462973511176304101095057561666873596129132944162632297314418576773785222734644736537341315706473934449787415974579769706558133078967577495661981823735035998356783269702428047006741943746735779003300338869442442842048065453395737398422869168241356210143284659810343834803413774767001949207147394261088629120537979217669463645223172642477777079110408759358728440585081801160129384554157955139823795820298394296602396712272703415266442049512466342637929306749925088137100206177931876933119064331857929623618494098835518369722493372305169048857855677043227046466781733506032696975673199976695758347196116842683740391740423454944170778430751026531391213956277868983662680067146780728755713052805720655029965813372528047002748308612910179055260955746131504393367667772713668709953401675618645918601077410648049188783963453802993248920344386519246019541796823470606670418879788432432083717458831717134276582973136993084030275958763783910828116297321888266861498481127720404418395799864492655029299545826333922984105328529380532564132667886917322991002990912396761970655560095819002743170646833920643994458204814909747382974267336673127648125905149329010851008461011789218439014456174669049431255659809755269030857365750174102310688479209152896859217438803831874457758854638325015956731879438112335433101880849113213663327275267749352952610789811135335586942119037579937994591351744995850265786599221842097997069818577172758226180298927859797148591632130924331434662545359109542187174236875560030410595854896198069255404658733681916965332529034335960658857065250998916085746543936537465334909497279930051523416615062661098217846074243814376412066388724946465915648737200691183117970863006229700027978575466410193980862396390597204791235801145625868046279043838117794475865749926030649167493825681346439753442191819528577003097524498435206195861966228803129024545041720502900042615366672863670888850234257393906125982217894137272398739140470535900805491848860714288921621798265309622342516083781733351158431818471455013211262801437472309104026435680218867562662718964928871026535127204729945799612511101886090036859710258759799931397891411151089997487696612715163063003887086265069072762218153430436586322962859357554487831162818417878650895914776917895699312819838204688846195361186162439027890320078945487352216557647710669996889212026386865256165876564113396335759483917622619904292234033900570238653641510088143000609265260306430693407114252919412583900550824153846742228411273947141522144137006218380995930897643091283035426637366373754010067975435931688369341585861421218868808566892366875461365960802201461348996155047887205466190360812792152356086917016968632969936468452236595607001143036130279828923747744506695480090157890384665509906920994948151144033614682043188304448558612549733601542124507824416634110327515908555796823735839984803692476357474462792205678306893748024886963812753675011639326790050544245792442749460243192248886365500318386983042033808081899967980103190336496158028922867794557121420292348324382819182769692542169059272563332437697590976751567819233682593499546295767945748061071847699541485083947594498807627379070013936104173594840465370821619621202830110933784369051244297571251253047231154880348596704078798363100442848950995104051212895581437958107052539646136381591982808459047289336804657071155098154397248716830001068388945397345183620284430021608888558809312640658931126792072596692019650538161871204505616397114341247792089610890317802334297289486657373789922695649241720317909385656034307323139340052916504368593334569091227922213775523449403730815656596263979167754895264607986611504161110233844794082470710959746288875401992760107390636264129417702368812976276962481797840805447707186038456304798229533513754868439317227694859894078129234929796109970662461438079722769419680233693017073070409264032815531266120827725989512312005980108517771296273887205260836424908823167357332853096757841084082293766755363445558240477738410721015225999438169705785192193809501226447162193652455616235094919422162615744822413744210007953163354902072892079046266197169187847180703086915860537880128345694977964075327466822598495792465044351369632360999958249448811860333752863541198146908607527795103495063789530138659087252781191938654562334141558960827305349219831612799903116106758226427995957008842770648483293642572396265736043032831249496937516302945261374580502231742810005678883273067540887205550280430620453129135938738974721477823499740799311826063717177490107953521921768355919240180203153393408621555926571135372247113771493737274401333067080000863290492973155334648404561498248658356897691066640112296933971713095861048714990458337786495065364679835975080990606937179968779527534987012981884259372229790228158593111879304307969994286988295873525647819101280421413231495405409841243223287745599202730789266985803855599837307078554815223010689093017233956180303676507679765793368209789713152910142595436363229902823899832930603961110223123668023059725812972053679462298127884209454997837403626879381999517840064215492661984315227335089342342258147520570024383736574542228183171782793519904379386524719034080091449120895428607560013195056169627624135829745854097016172493853741739275073719783800286037973928190082404294626239319769213566817452841739584084703797800401997962292040693171429963098626136494993787945247602636242128287301841941459635143286449182619267355905204133644714944258022321503151613539604534234158736930198789130049165808653404965516001024568964428675076273916134350592508178775027010393698079930202196912717518482607465425577921034963960968137701999853347690619078681392731302562804430699889502936682822284798610859488667650246277489671883289160121943182628096645106054173234476538269837503009697203409858040609371687250883233083226239017867010635970774990068839145332858314829526509367248162115484303491936161771861660235727351334368438428139649774261054867750869392267034936954221744061427004652978043230843758862287900080775446055197509280843128029800657726127449043739141022320534942634932950034814064202435194015132125689815080045480581922524248335638690714191031167544317844596540315519110006924330685951854556179602343491121384996529703790911146006568898076231791633613929710511392252335664454380420358458623952984849630764475737275463218924866314610016093247835167705051232978714043962457503189166187073253691054109839841942898128269309227963022246548893050311716668093384749879946438895912343528917821965844858750432531020697538952150757947634108845478287262710381817646291066638067659291850304023064416142613512007568489325226875365108044514396470958681218290015157104377063568799219691362608386331146101670822424433118468363657241099462710303354615453749168262039071176517067067646675893618049055520855598786431159756789975821514636112754356842109621233457225908962920501054359758168865245703410355492421974970654095762920579788043990558903266835705540153833427717173563507083901549781392216028532283754777961327508832562647820936524661127159742086385378203785871678111031062179009279519404258987752533754793613538457189252640928496427471221043936448825894798918556614781654384921449263566678791656110737030661557553565457151826366187601250940175233239899160675498760814577617587649730732836537263369229781508154909161770801764760403914850397496118981715639127623583116424079056510634204210573272434676637901808409560548239469150882082693616211457578038971819244151909693290525362530132092777312378263806303171259964772163860633839625988609466219313848496305093111862833716638146353975980592048892211522489696889261617415248149341136066454573900633190815817666583612445647457836502757713244040772207073170898933215996861169207636229982199816837415265456145402433164576268899685223022703924490904383227097550005177197461563572614234550202718039208631865882688472461467292023663733283333886112384782543989104491183614798539286466658073219941714672747235820749951788568563712024922828893516940999869272197962681532164243880888359909188784712157957070364110098677770826523445729052544155909117295602602800388025542304954876895303928029351699908530908374637526861121076427804358590202487268700572805551842897572641127301166137896505117240274980480108282045011532719965131511179234646972831686941875157659634293446622086570036409587840505523704161925456835104145297598932364033836471074395427823445842434104920987423228060687844569798178334093415477464971990327354087370819217568737538944919336261308506444688484007636560273038001047857454627397184235367371012518712295039232156351027759724030633568179294670829021329743127484266514024670297098704179969991803406977099725902032005255381190037089128474903806015037148481407396613767109551257382979927636792002691015402273620081322460725265483138074160329528815399333269049106055965104686593131613910269761759125218822255256582292052795877355398802877443786697682806421991068451562267296125046572165340511407423377981363566766629665838953296063880879916247121093577657201782084779952342000931319192025558900581677790801065081752684788234725452380510506718110767575675526776520615747247153883822116248745891117096064766331240794274399841237666038719051818337361775775652746325063288633200090471223482599663765097769862260591702808652494207942812030512884171371031779562193708891052031203141343947709307502234449072688755076878474645664007431934740872660362765764956790140954704691425460560288143356281420449248588359510011015062926963334097224237898920787149598144447203128735705441613542795720996435371511225989563025053171938702444097101892102435110268087366569696767294397047049760440255243635696717849704242326751632683488303214169193710237499095668564480625814461655026255918630567057898292882179463462803024199383115996523182430119028012216523220264223488590293304240675253372819653681109094592536077465227066568764412713330994569285283220455382956045138446586892095148277955289677648200482559274237797362475678560667425737766163015887688094248974675616967697415897103268773378811204806393440891769877584751954033931032193816719019776921885984882097577672984448317007818072581980555273285213318091954095800064101652914541879634274378373718416155059687794289217117379033536075992525802721421677192993318735524502991421264036648086724107250345525067987049882383293421561726195635921541885301227950932192524487002495138112473283777897561371041128405764839008437605557613737400341748574309526412197143111506152806274466587058379625223578504670711241715983640264919339271426999370460765190928534499046501200896682040888699638589153877060278813447049377368403974773277707639717856579950379035236262819891172971447054433553355063660567879935878602446563791407269117763058761951531060354409249170098894433537665926880570980637762663551075416447605098795363175971670426889069008805189171340181558501026486560631327368629579592892213177865512142844399747436378763360994322995357573038433442428781933958019009194653160612420350869384986167076403668417252776626405283218986550790383177326535419711524198677487267204963363534821676410909230405296793525694350792348421376620544370571229833469078644621325604728155425950870386340515688480634411435295182934482738962708042243437584514501429021705150884198759298370892106647396814935487024866675705810000551360017578308712365525275641368425505028591183828252574685124035311449040494008238994798528339337112649444710368676277300011627853405453109273583419078293482219115657941937107318758736087307235655972707208584258058248087349195862520438127265537883067805147205097553388149161791339843672682645958275813914509569836516302571172822939225348749485912844749408609855772057330192823071153719663361553905723465242817003835964900219193427205973066962561574410856164934521036991486593953794530873081071126321490128090696726775395892837538391148371427300570300666951300320139819696065673817633006523160633849810416121440871754314577155581388832777299681043988895967045390731249615938639812158920229542257401297123761253052325231874259788650756393588174086774633692770172821931741091744999725539866316330460139264982722417252093667951701089901268495077626199422509951786034177962798921916482174782514042338823492305641728541434972187118391016898951923719815976673026098907231504845583696721407151613140933057024458269966213756476776035026694164194318571006158552390476458007732946809076384424197374332522442050845874836174834883946868783001572102029542641108913181956468182398364030523786102898071884376065169379014996315800782075095452386714084667474599410694788417512343078094462867887973994264087379253546617421746654806511483299482085078141823459372720955398595179044520829588755505869542986116452657067265417261804625586281968296540369160707463920684671758416587213885102822903617542484572291514437313435693041266870324811370651205634686064530032857598741336217606188945655065087542796703715843529829336063210107323007645160468866106238171196588377599851237460042974809241246032214901981911862840416426960691973880109870923005725289068585463773583864870910354198846185834647853265002708519089345584704307017317199899191623011583330602861224385486967870633748071529373007202046261404730900949997626997395270238206191756043142786974264522361400971893579407276644430075787398635477995275689956957673020545240776011486274876718022418940308846262643034888515400596677491894979721079783269701453615784882212878031765276765171343815081978211011153093811148379626757235042180915109259157088318902999837764331350966712053063727447385940897701261718806085525860274939230320668814880117543957044661036583672827905056984431713990659314210911836684003757523312282394302055312239594113575015965666028982680311867811326717944702950294142639119316085874541324012553302869062589271995476441430723277834492438240012668227453812944912013756783710903187478246555379299025321102894118824440694702391232101257625692511723961876443903632135423839031203635613847598806237308498840565815818186039165224366892433712707881118900491591139789401973670054864704330197259252044826895638583375192573973505355119851857351827637840095946699383206502579994223525945722794833526008572271202461745311442097955535128189887986258718688858358347414837624870902290378562293217027635581961288663686922742951883918145686279649739142962360721957422657318547653701036018415613281096683372509982769457898036143702105994387275354441787358411547536147074199177599303634494824904505726170966389736100420345957934800775426486077148163556633454726080988207817409518430326880748462003034924698339032332005919647752164053868363891052636808633474171732830661726007144928532386034139617416384829363787767068712023258896278811466246831746098763975970813405460653183174655191298214368416337037051003585416395050173536191328725492423053316557869904806564761740222221304439442974472335408766498720277829079785733853504688422177209913385075121149884703762247159453580839300809770113203351976259832166426294994232370337640713127608534868050150995176192055206240403020305073701406129831321311970114456877703792513825025631633444246434082388697919947127324791436536502542034161030663840775523412108341750272540720695497340405059124419659752353623669070940490254479085375528634690794192611594244534289664219754455665514761922698507573314732045260207563714496041731554905795738026767916717260702050917603926912971724869695648504826969920619061358076010441875156779517532108878242440093441544555811923354176583784564638644593570332256195712704337997210736827048719596905985922612439878400959872015114834904033377493439571408113597034131776274052181774008973984754052155067953702866582288928505993189994648240156227525050401221161307008614274565637464799313297277708636942805942685931813824420487095448060200293653455939496995778764422761180069757311636275244357232340390762978288232831361400966271786123997455669924461670503001395987144070885429894813835327688458748661887609479868192602735708598248581167840538739635429080160551193632073105187323359113916967470321545982501415450809004102932111601241315946389065132441042290359335316275147359590020824313616840309435239158631682213580532132397069924113721730520220443130452639444060122771474696325161951006345167569948190694114315520493552268750139094431286646107483373774792192814641764535048935873938993838222081195990384684842520159888385444166092906630652322091784821480092336779119260981617878455156041339163262436365095743361057905600830578106082663856093180960195516297523123176877830608956061926412057691198121725438317972168165803716905663024993417309408935376907357370806964125696487992288310421383806585380180574844788293596793799554782394936766158209344803796160637000660763451740512962160810542753593156593811655840914258540988603695367751878612913906491457004665518512105921873025453465478396049216358053640159127218712216592062977232501337348759271544937831218926246152267809144101201933630751524271933105089617399558691871187334645419064948462950210491162411912146746674076766439764791900403866660304807386169582008754789707389381841850283399439898824436300267836500412080378207691172680719818477636919407963956396901249093925787937897517744928552700649583530809819399631390295980498980881883788562416031665413532486992144835287300392871199672277712200006621331254832568132461933118360896570033935650984687680351652223086419957157313527770233784776892130258668425373116643633829151877700723907541527834623509546346236263090053685428223102414221999477552682867724376270780031035519953720554319093173816506351636468288231111283744535030385156985473811943105631026018479485055241668277401126989324545148934558811705690146718778396611278236107039975581310367114967569100385029699261698561090994054340171218304179845124949201865951941918928357604736742037262259683487722638460362184095879453776483672935244745010065392508371003046929599073825185180461848109300816738480093693016800510677054392080821098878900308461312907465256381870809392742052582774324165094454591685544595926958771247803091360142655460745230590986283505827367783807643382542024750766434162200472763333719068999427146418110362127219243659167032286389714338445390817619193601069223885736820263101963470368295086648237967460013682489419751605069957546333773685041653380377569644368952314570280473125484783925739656877942907493035993135784178647698210732297689445363053972617507963656437398292286376149922888824292362229114905497370523563496301830428077862655861120412562197299768517461099683414576980278694459254628007809645226041945431781453113326018094563062930852535975753474678550091536237574296999653494690612873938181901886125838451133091487537503014828061960660109736116187701382411088393887139476126093786375798363551350949487086165318693709736098344351976965658794332961207462982221332054272868649157381488749918607167697567375152792813424123062565749778217816472069399468324693710050154809701492159866893371318958228664725058054186487811776707217490126414680332100740101452976794057276377551761557241183353522191091398684153818031021462505666931911298409581623066003045123286247364988090070711785601363915683860633386809191892378489410595077387034119368999632710104901272805925859918951634640196971189160524582229368839926444432517587456388327973806674392200941159159519428369131251990430024602469846802905033317021273773874921889099652648595000303663269686848486083897520134118791377473071506742768965822470802320639663274667538277847977576145892253291288062389523315759608510162140270721572000052398983768474573910996711475247153325853070346347049765943961161431764287679214351054788380239394913444225201280417249744005154332166346127896486041881236743430006977331020058886221150505077527964936151950645847487574043210503468233647282284908037907436341675199931190771023236822131662627264703962824305289136941700098241064734958048141696285282996601952596381798161742647616447635180496771271293864029167483024901289158672575128895983311924390450191620104300013599890187949676496119771038679219043961645501562620585997723481279691657050636606229356836843394060294452808851456015295771373006062745176927812699070211482472969873948542806560025939855905388849808105862674659274561117623180598113947076475031358847123714337701596181047464565527750451412464337159331728889120403518830725554653357146739156540424465656959454218526384490849491026721826497256884229118423399303663368054898637205858234131151662699172291607565200647741100193973730251986856576022886914880364331527955266709677646265499341370344375999665070348659991579071396102609798964378061231017376596980083307941044021600367608783625890006255040754320698331159952003609488879704060224243178683329512127886283161888111209702142848372249969033126906434236593526654924779889791475642916979243351921624888782352051884957396946009016537816319012901296410586474081658695101420484797304442765469200208030305928406744434013864508586361776596184366772357028917092124064715708795905987161288286333103985528408904191906799913095883208523935461023725352647900281163760659199387952162364150447701795736036294776967237478726396384247868790994370604426996395881198719390885618024799181882341030834638499968103494503245206868618554017161032252563277705703510235359354524939446147487944106915825048167891784359688013828144639441683539715935573305457691594772156154614884044633932298951682738976513575748389681330469623080294743202973299648631495064077403024165859464561590123677951454648307283686820441295858573700544438363942243161159376644910933651672093272896183406547795945397694606980513214466175194750202016681865462527070429264915617678197385874811141044159817970220902577558113158798374148264026823770777833963682572211588657532491209628652996865865437230729036633997557655987400868931010966975900169474678620271003737145163405440517925230544777887187450641665723875352290637338317125588246736364347220258712829934366071389177481466433697526860110695485675364304333093419416287937314882183008404228944694804795999724194316019981198882645016625982492920936497224484194632031703386624701201177819636001685609186023345956590054594052025868839726215207653444926077968744758391928939417966253267778782561356463237365027611536163135831317342389887124522047461697242116736825931917246305146892413872867262039510598947859834499758418737572135053818621617117176722110796934390942200842839489958591389704326785869557078189180673415125344216576168472623157414834113013135415237183295911337340178022919792396338917037956875017407733925731595202577566991547797303816612359010610516424272156149927240147072947183512031636776527665395021250120123196681753795328019065544764371279423509565922172890547052240533855678784662641327734614577842786826404736565200373194252556273959387297915437930056422977221387999841813080673786401764813238573840613415865122700730391017599725520457992320039499252297270361985114543472643178566992674816340696127203331611087622283352871828431533581445715627411358856966711406879314848693752279221012848296724014223184241165147845876296098499894897933059091780719765378167666271651535570513935438438386673933968899327463593116454904823572471679392647768975072960169409222023950333781071894186751804321913336884190683627347557421373175915391268638957125383380471650429698059640178179623361322755946275993636244055142057114971831957475914166929436148897051344378871915659502527212535081269774028128577507307927171409439984046636221275161968874664989289307032945756694154324024186149680439789065450750972536464096197454609357813533925659054277074318912734273614678205430828782119287126218136396713147385486403085557085311522054886641597500135369449793527479548104548821568862897377374990386519425746221000720801143165466122203564192841449155622270805978290754650401337197570204278311128230175216938084148890757482769929321446397256498964535863192465634933494543828250805991654909178446282752548436386064481641948047682103220228504505714604218069972775317377197052971320625342651045345130137314850672170665044006362302921909876117124709821419044870233446030030531424378636604420657098365452703443238715781781717667679895675017496274505084336398593534941375991496746060854012933277474608461774313422833156624861349065415072441606246257994106250100705668491093723349549188161191169822272063720522977487507291850902434748393831987220252350050210613229126771641936509966877959363961709179256420520023704356948428978056043630250512366176905620308626401832928718109369767013581839644766600100667504257475886771718429478416714003935985331036857276099257240244776446244658245354715911111280862401419707467271008260459210717668857538600050983598392273463857930861684501709978757213026825103489002067250320927094643204933721856287876859811122133865394075541025783075126550684495465432541122449332058320396852886379307270798124932995273736375885188442027950562970221866485844171314763001873156550226719465228850929078817739594001001696142001692575800493368242111842750639797368434648862106574610835706382390144718996627617554590947139742807235286886014708009129340268794272454258145492354269078657818781864582266534967128906055516111593124577311374505045184829236302531580954085011276887576784253351228436909513155006853540758777807032206090354016730490558770585082354272130749050410959692372066766537469435122779621133316324409572190683312230646864435373203380781886796330430551924663747629261158079370086397578288923122123491824985572658670514493845158200762561608921006397077154940875650535861454475422764956665098777849206651117194539084923084126610385936719167260942920867452154921484227064793071217201684438624431130120720552881717438198962291222231813529886841439772229450311677592732519874307615114371200913239859391094642800480413360529553011612344820364253018208144578046491677054818925419876842896330783902394216415969169674027729066095907196594321233944780245691063426856226489001551908425177183258737446775685056547501759027437957232297287154066513234990949348733993254249325654358363859867005096578896763589242351111362117641230803639197135685209060970442863072523717329889813749631158367949218564154893527843058498323522001056880578169049905630446676494638791739140986174651518092599734490446388585500492005840651969200526589250047532669170355758143294931274985445564257549502904094188535362572907024806440022344844698320581578133514425182967960565945448986640148183598630585663138939242736811864866326191816716096185657138703243654329434211927312758778548161774272537849559828554259526183004091998818315649138649010539664775021877316777838617594968357739315809515262975467742597486638223284450555804420668518631423670647156750432136728734681822417136843376387082927269310826258412997502566743768464107948396327150478245634711008233921384881924168971524168020730458960467037305819276371039536580670896061341992431850219280199332952766146029368618540726267595441130241951415280980090806628268798306614349161710086306739198844332278915440588741947908902795111447642310216253150699938305423274976337959485833025109040464076572829055492198775098432517153911944996876441084603726877603322790212820582371772638621184736709022199752267037553892790377632605863820432428864168638425132205868396729703982403611575762559237972527857899500546980138563373861119766762561555871589789904847486992797929532849906273616470500087543110481443059399831011954065773789039381568016422183803518767574616274290905707208241248423802520170316051485843048103094966563614993906917148979311561891489443242253310201827845735309321208762987398214639550600298142768886759857122765076685542114871956070151718538997266871698252846733608592232045659123332135337297076696765918461063395965370587802082111485563524361838521739108970401807848987903492370069926000220532037926934508814894815581177361399699313868774871690756309476006631837445740767263653757701116610038886600066215219783367787639533749790392408007131410086884129153468508478965995501299949532783137470254538391041969210346379631326939475530892260757176014617522398612691500342563993860459624026947414344314646680286302422295881965183991433549869734221248793702489630476818267195769419178349326832247336909868156721490478316724318013112593110001161949734005843636751410247904526645342224090867094555055243106217495024278899911347091962725930003486970962233442611338169441837497950231122211753312766518905303746823958797085120184497493704994433905041583571033942870005480514181225441684081091572588747454360795550277137869510010186948504602222112524505047878373506918775979013919029456287091899704015970119381245497102420763087271968688712610568290492016022387640515409135741048773815410532407531370802968673226633712761184735916516794848834815979925456677254438953889622184447053923277098782750711322749419686042478050897016089401573587123432091511355612971114729754511967527704890657550085813566676398501008738424093225902973262148108861363278551180214806529227990515429324300289558297833814092181202391844493975026599059331286858855518754366514615257053773357305114875464904412896689292379722423281438500755202236817214601673782161073527561360923602067284878652044849076344761834380141793744473209663780520935805870948178974359597743777429351081726303134513901548640847087144521279907848322553150673749770870403348606123924182901966879779254814554760560610771499111666326273880914685641938119729732323608298223306966244365325528790339496466766817276314622389095769120879768969746402913803454286597407889192808382127185151491231952570205700930740482575028692491061522691639751586178288703344064525644953197383944664933841897806400530255420069182867407106380383670224241171297668186401490671265453836801515016081156157001747009440709289890748391777202445150867145432931071086637701511798403322865680698876620365079664749660922573361156220724369375609505538802348900139621021239749037436687369723040318516467697776350923670078560436414769071178178465089173854873955915337654353954826838753933176780602515362336049516604910826543139974122003699635372850818803285566208531801697195467867888624633122904135979824744834880489521745082641020766714343212150835371266399705853167402353947057621699549901690518711765774964126150907780540126842041890339814306798315210533165632161082876009882931809644936684862999905534432595973468905541463854467063747761938752394853415120796082316574564440239575642066678036907367179113611689201021880030708153831697733096854200644996646750296179466495595814974610006167045092265371884332993416606318116224774897161264035087066297570955737784231866881096206216470271515117780742381608687189915753180496020527277079004121793783120391726544683338149952940090980451497630912490777721348602995643542556304190681196295129053729852725971139473883625822295533581320648940799715179229367678512938402805651759000901303974763730609282553223595338163934683155672591783465803159481096751387118552317040372720072447342449113978351162388671008110136275333895563691526662824220098094719264968445760191047522673110489591910048659887274339916138778329304112570667610595691849722848773121952013715709398857610830367891828324497915589740166947569882710257918350366280570035495059033237528759981059287593664535335108916340558616814371543552656737295471282947784476398955712203236557468163532750822333800446957449097875525013691478777673256306121772420439704312092316392685418536091232035880501896579148293792407501578145480319019499358220375263342576367135069424426710388375576717719019700083308728149463960759340502434922332610613716125737406236973015145865099628198916234190574271891356729488957654968243407894520911995106232616161785415109395600817699403030417043014354131544234627073843038959020683110665101985747252226757603821336406149360595839997724512388551636789664984723668889493178536005890528171302198331025846484670954849382914188322504200591179214269385302189305902884969763428098997986872003935708603550062802019424855460658167344540955388233291304140343802587640079289668509642727568956015779019792160382234110156426425311083495192577151384189644298666812928917599343277851423477859683138223146679724498191021026265015628160841253635251815429755455340305630041230766337822496134719383846078442729901604079616870707284819383115782251670221672363067358856121925766307767007991208570168533781192656717588385191899099518928120657357643051611254812608232243677962715108639245853790062907688461934040026801994116619450721672772782096728889099233888071582776908140750884196449999642948924438204419320853945221271281657046935170741618526409050865991649791515283286567272738641147487032561055174811329789763855563144519137774235809495463165705365963647533213916788921287769021758350522091216440144270122631110752896678403196911916778595647589734571561843301694280390975987457110307708382015996789770188861692733250886303565371896274258816769262192541192418161815005478693811358209736296287923457347910590969166135945539692031115302329541020016631593741324224370224352735162995582017189396644886198431584637862368683952081272592081191893211237352515345015729409110270756452176228673017151939020693638652274080294441355018427644932033184227335305620625570974648390048995131844967103455825635340335707596039159621698221762222081241718722123548049001213728763271433707953125608371622744299206548876400971443336570255157414785876188467551083033489363759498853875228202250120181722223807823711133582737053781712347212370353538834430442576864650739478527007793067679504494683323944864005658544683690623848513308534449326237167963228015373063813493071362857796702453021894911653547033369631989040678858950879195606519585434781828177686237715657866499486886447811809175479264798337356656597782221199392880857695364689347300104785738469862585822090503719586571053090310867887003446907028377234911475538054594811267985801638590383926486596887102286894500146811082904752225530819817687847112963766884716487900125562970334182917376974551412688907617565074144917888587760982685078644515121179544862176312611827515673108212617192303704484364598640108897829139827645246195423732235964903616168865857501240972813035693514112739576538436997815820300121243153876646742716443833547444989643294663434589684680636167461801694185816147134312369609569921218222258687982532872868481845321111021163938054363447719419962594715859898526932533422051772531909808205757766341940326984329605222509475710642329630431300254161943448584867354570068326080212197494976182151698538065113747952088788502575975814286608590919449089172857295912775826833132046206743273513780513488781265855964172014388350442139026105235817941489673764024304949890570933424894277638350242596527495140489109019314404985126125485890639995289815294924212791395319302370836115395526514030254361911137814138279020553186199709642940800537248425306510270386526583498714160328683578014501243305056434902413779010123236922389130671017341842682513052439976090631783352390526195153513738285066459947945673205163082430202344462410075811275360847861323069938505277801886959505362352259900538723842721577535246102636505915256487329035629459156567010289598149919770528265339649610413326678262844340052647875721993247862729674590994819474326112468030420362837270749074118438869454517236663896792757961973396343158767802474010994131310937680615458289567911254472846708781872043696508245256522795882178656166697083388541861469169406106464355312084130531216654362388025779080397385500527195641722628321755359094143340544983562492471757790413639190641247156455722597811632147218262193365165773980107703221627937836280413689196168309857596545150977336573414547666439341057714199620217046272141561374925688354004253448858665546764881824179550938297565402829667672527308292015904157650551477431190428200185184407207259715032697088471187923032998151697560591847368310625729944958588818149249068559136989446147764867269466400299070539098235275670414707720936306614929051865164666085473689359269618931451586273785283744674418874258260567499913845302704323336261548836644579083652819757533987978739456424356955733125444611475819890035295644803661371698568779796180773084744490866420499677967582903457476275919438825494293648893869069435896311825148914671751997831244489885785365874634129874644061358317970910436137972607087005881486191689671351389834629972969175567302196470810870904575669860575633492523563165466625497984559040202190862631886254051073946026210075870680903520941314144201059511136451267086119489435690303721249628181835488176217667144079155975996052123531014744771749350223825387266604880544899409614953053615089522006325250250534192917953380197507039053721084199889303095319307688403118995450162035809673448467219979365145766130416911706157204751470733210923986166253382646078570042677728101730868316772154308446247560799960861794893267845857913047299487661443419457030253704248415253970103335118303119116076485101472463409632851688079105159779225480637226604085537989028053922853953184603308438086618751530564389434660680329465256614459294617959046897355802348257774105929750507834823266729296673614752149447706371743546561888110235708966422213514274470685384538038736424240037079221589131900891168308537486293020225225749678986206057777549556825125641389296366302657443051029086690778872350570017745370298899973625045977260200459676465155285273077911346399598330032743909231880620964776723110617796899646282897967330414934795607901593273485571589129629193681028758188733298297056900014255770087272707015837919129597915835090506250613673634144809096187499735695018404790708851063000916793763858886095870176201093752619386816302736730951868264785373057173243842492490195839259260757913052499836611714759205888518319325952162281430291413962975077464134144723789716346509350217584457581224876281438499312540522500822673261834382961164639698408835262627544825898941662812402248155411036911803684916054190253058230445148459348302782448699351869366573344407293332983437741452572190788403116412926672816026273139801560421035622612954449280267276715469309391082126853226950297615025378389451608756436884921300514207578792923277462894534552989218318190221191927271121285546869905717191581095867291231620767209303168544275057704269237789866065346562048578732593118402925864732744038316433686208861361800116470054143667873448165192424923782935904757243117957366572647891869980950469593827910744044345902538843624952203777155256832990968213293204382216042577548096606841421483281215270939051796067202291812920548564110684728470739869132438590892908504030055718743460148870325343849489616797267689221324245456118848529116927060528592995304474186541993142584600758076250196720110543118132571884848354893705495083101712274572009871015991000064034038087056987402134751202596552426395164491677904860428924469221934514906895163488131118941568051769378777599535721623820280239856255211212877303579334143763339793076949267325008645685718489903911997537157906900501893856720294093587360563420428585871913393348256964250433952233432651501704703257869058393309099911177223851860332234300354354326735123689601744688418994583615035906457507872899616416362705076025258351974427593890187443984406377976801803255495549800769529811974375776283641155490651769906399067940995211733113679038462144968393911955090938797409506916908934810225465329234847180023437445950855488705213767484225913923630735239823959513764044183610468437381541890251974545481481562672731128658692951627727261320536226015233932760954546571020426416361764581161297832267013001522235735980795052722864091110039742329603288809536892393247209387770150670636842205880370309045031862035257187202494470223338011647980635355941068740857674255977240571961743963876646047636126541662964333564986286924948184881957827758150324798925572103521683384405541010579527909528638254425921464740968710837940557811318054261732777866272766787722363968010462119212791169988732473286854148112306381722468242855083966166798010709982133718554153353850782223477230382426597870906772850155334414660362342882201791977692648984746162739219102771635693089250704992017885673462050498347579642544312967417032178214623567816340136415325408555746166537358456048953011267042769637990475335132834474776387200294115924326133206923267041621496174736811506284528521008836487840783949525600436230950387595652109285858693793778614583097163993005962652829282082489108400427647603032677180720731111037827945705303792145710568180721518803190708045552442404709977444515166750926635191271664649437586337139985499002615194546652743306502813595289251781318015686854406016009136707059786969591233767065616482681214520058256609777891828624620930293998237454398117094972280476835433008156678740556198303175698263879049331994596948124277138839139376427436155907652675111347202105010570190494707566031427947494642960150909097267598089023577391916924247016128426592816287632507487545706232168320710817075649295360226651497049910038568084719239281591778021186881786015501091747889047751594336387330897566480027869530095513139748888066300773842785168511723869348082360576299993637520254837897013960195892970942250450236138833009812399736669443555920246287402311458403791275302961976128022754571297948331551270711363737894718476106631871006243369603655958505098335827870329905973445914487829746986172287262568556559075424916469393857845905288657265864806393673065563895739982854048314715504536419533858845699907259886692803300019523988162658429978764025598022138189254207522092770956523480129936539682771256802774393076513835612966399036010294713834348447201987428567103012384532913962065052265061006638240149417328511066764168722836450455282420847325750153099262104475033798387676706574135570931502660382738593694414088009581450052822330808374604336887232313496426399895766807410086147255346368701797260297154694316661406755389025836292182730839277025996255254939179504358177862816305358695967299079455992520388651082327342597836382298274743290018588373799330742137605386222056458530852267997459887367242278043865139955905829549391864400024787878837917786871178300821550739940345884005991153045904513755513251049293486043030146437649346437093627496575284234112975167758810141908778772117601764365865238760569817032728411718578988164136377175473021519463904933471904294816418523043208054103283234163507920269572543161926163066841274723894457861548979738405494326621153707305662315426341718620148667174253783543502795152052647523271642895049752976222026790669235658937014169214422066045136407955657750092913936994198677923120300870063545640233678117806327314896242973716633738645997510960480654286865241376584829708673132066018470425039656613609419580554042283949402832819449395683333760574833515059159151758442657229973621470400137396359069828542021489146994369797531284400890102081063508309813863035607700947658005275125230822671187550876030573269657792485900198880894679005925882991442047765991431730933804406003996241483544174865931966667127499145096382112527747913838013124058478408445839590419440148646086942140451888316780476138273609408874831172847363588576183343415742576038607813017718298356276639275135315400180258903956265146976275211242078295010902457180738111882553975017878970399870300304354163555062481507120954001180959621550757704667367191008811919868252693326256194652187652993199320469137016013089447919555398323431515528281875231212514563449448604016405042966369949195531927698302531826351178464536330043801767243184348618154054425715848308959298132690002527933414066093496105814295012074911405135830484683041395231947309071294914241248988620603476273585143462110236626144465880561410961210564268851539102063508436803297214959700193780070447766406587974878455065432000505209301685458357251746242184194002544106736791503871144572216455873174074455102460795934301520397762302078514853408211658350082615659417623657977723217114625588114725236198979138698723810196976128258790652931374357487161427634616652584421030929529924097187086258378681340938460227088496253412776979006601095937106007135286447017394591225076792355247034036512969302360495089304026328077579399469429871826093710534998233614362552565289106903327420398351235306649540810893101053775665292538161495794628682674826899638308346485952151301840673110835686810225556566049615613049014137987618501058124005397230836923404993531687500564506393224387310617624931197059380571189128098305382825096335113050142316123480300321595972590660723115566827185254820448100442135257154167175669436386841458478094850873028217294301016223644242732611499536417251319435496163189147086583047249881119205066162220136677183966272946487447102978322390220866727888614134161706647727428948781118056819107406558424220654139900290800247481741470808140701175869748071067162775021599039463684992710038362600268550465357885914760059832489706338114229115143997184212607470763978645343570624245736364083252676343006764089466998479048070868245304328373346551635275967966972028435869228130833928391815511715660676457164650541730027256331517558749122622502445513299334311934148423530555305057279211481660800416213783293683084147164626206202814504665937126074240986943793907361318178596029780134184571828914331103470045117384090496355054281679922120344127844349528752909170660796343085253807958527934731428746650366604830981459861428943917330909318503975101655264310641191321534357202650350079447810519658223861746298536153417149525099579523638710715238537383286633622749841317628183010536147314580000535675497936640784120823357069586266548021540398099574993133188299771281012443812184031147035302749863083698211612532734844027466148138707661869834235125146192170858594681846829200963673541175985833048941650387372475582055490173413543053418386911645777142898156958515124456622299107816068859194499130062377836536588025087451780825842234233438394751745164525093512367259267994422608847051976766125782842209887160452721433123687653380655131097482904916544857296469099902692679509630261929955123987908849362101897328268302071406441265496433943726077993547916828652802642393214905693605759807507418744149444515665507735427035765834814660438617012236008305816949527352869217680245310145143503980764980317190756225628027640775133399239088362593388419185500910451463246254026592543867113714956745766357602136058660522513055463102749046010662947842974261350974712177278141014282346339844233829416746121428429205332990995868317068314096044289503967072981343892997384319384609260903784373874939688713801074233645544038269635073010768273210715383657195285612717471604627549152665798970854007051904255358915668226620025662597846944926052378467036335056860889346922133018720524136870104660566998460985657338349407888017046460471559382760561230286162370899831753839960859806830731474217157280114431515591102440156427490104916255741767040670353679568478025840293946461483599448698859573319511766722861396072824365348642620227763555319879395337489191529997878360205078850038133546320179837869288446403318956529497062163391806233956236110172656596433333880481990582006047528880522008970180096288753020669766211882595746729461334827874307861158845359662876469603205520188292660276948158218769731582882675189529745516409060508849380948977604895882812602223142772913472548515363278679819151300020304923882022072570050595739714327121613332232208728580922367643618951440656653601251124582376046355211868205325203987880604619376744696856639077354599315586558020176004712197130145880108703556285688879904259636376123385954088033804296397905824264655018365799173633691795075471593220115916233867590790980746618163908549643245518647776240539118340265448242076775936226559434525923628899157648271092857788323786826450693505729214061062814098490616090255189141783744056837959335305707236391247125783292667876121045368180481700898531549140818492128801757256849197745240376445986505364397388921719790897389900478853740527824426565102001553821783342283859711759074199516145719162961866109435113137629465735890706741345279677609626905854544730326660437749793485967778509692914279829497848768375432071505920672149920672645809936634359711830095851064129045429858429097156298949356881389319544001399927212016446029006400628966243543531823921051987257994810947966678861889541944671074298864978133959465839476442721326815715218640885139992864119565381244229186578719163184308895428667865413127537300558914927013004622735355221057380555044519330852615161864615300870489873382136330141248170182594868849349684695143809271009169419504662825867208151035667551804166447395536817973715686390243219586101093381571728466927493295288850433896516064690161164667774682002297288004499687689399946972390995151921124459713900656321037985562651105949331484681036847339116628012639717616949769621740358379428867484322746080302826579276639352414372511212814291348362496783164399765602360611355550237222519481372834420684745504146413523329004890916246204519400924926526678837710598849279503209489823651664439339700112609418882681220522055507235467205333356619448200818342620535717483326473058906144516868900410837726818000123971316419350602692048101266265074195389795500213903278040200690219938024785789933013766840479013947283210666361488881411942362139627780453714517989285344149687904050934772140199297937456781884988796355362012688244495205864749862799919047257949747009595831904734970844475823667600663733821154548197218125627618012123370328634556300045629825042842616308743603853744639605856127280651047711844282287533302280356782499756132465837880971011284048846639934229742426630304820307902032869725238164295592635097638036447991257068756296342706513581508248638623302624009457648326658096661595956201476661372270396980956496930298414426001523237808187369996851677192898230605368665663758049057239142915790506954674005984060962035921032671227481893101169980971905573450807188637878709398298695558546912941838978510187140523909641475088036243098638062446101594633926050465811682518066737896941006974450160922029965666977842329200030384727444092173315576937852995638717460985373445827804796717082550773171629871032891946454457844689013175382278782137096714561211725611321822613961359282057096522364362299632124312985355955531857418238394846938460607497041462485036527195491042861596217150417864260684632355716102673608581331466815471577673205410810618090205856597415565024211092629081524930079272170848918324543316429523189004015899852381303914612284154187698205112915939626054760926139098998627590873456051764291285798757614589812018300086959698536958766366339833419417134600822012083025414187739206687595319932865459235781488224842763221825440826321770897801662543445396635633193020257539709681293241434150948442907620581093502336214591387949158386162890675618123445203852920180157276402750105911184971009705714644072152955005215293168271158919201076092151870634757722078633418608756420743667188076610376721530868905637140607376743135775679155359862204044758525057374996397988855448790000603101079913760354909239137345567079690403307804084422183157996850109960842604635017747251672042843594049345974472878500099651322814321634509565941035064412693168773401326134249604522029594232177092950416929291327846231172522519154193938422522810150842599127717096694956991694824593134007740615532302605227897896493818242121629519743256921230037005275067146672105324169279344309088241899986068327490420806143661771567335840485535496374952890057127491946600159355433948918989173641445313423092922442167534763234316178331176948354857936594212673235217848403732119086130529772872239127764321648613542615760947661781580537870635833289417320096812937232324026593094936520570952291156420913929011551828400637084340863177406885953321306219007700587896075641566120113317871317958107046102838843704385608028836509510012076641890045362259631002320868611785546135215769457309460432238742366210196603293903546198581920408079139451760900115735262789624879554026035740174560269969732671914306056974037455174471028377793050890527946311503576417835949517252461585788633971170817067513275356637284289403207597504224060392517042130402733504980643015844468413401052594230352739881887246464115386945359684595851328225994802890319066928426799381448235633753180607512821294748962255661630579245173606557894015276602156403915148692666603558371953408672633888028184105562592286115112717097533004426024149595780945965536813001601489787012575876392170013837375246773490153672889079742151815510586897449139251007013398501686516497833635636894796405796399069417455827962245920848072200676625559886534950985044183883462909794461381475732522531134014907879026927498979826990749715183519355652323462714499915512947407294843741679267009150475835030747199592781568905243484963883302857292709803807035271920779877269596786684767812686631398204698777382720343111570605073413224982895240684545140713751368794254321849339112676580149410385559414817666643048241879953625953350499560358819500707725791128613692221073855866010792167783355029128071665762974324360753322483974060206479617126974540676395973700024104312730821954792969470092648085283764513472148242437077111771901719551871267879025843983454057575619942949720011629808363136608325342145497185650426451711311968778514470428477618048406118173702878676867947945067606162254914603305424368026811720495432564198064301187284590476619722978668420283436385382479323109807567606720931244853701802037845744685255371123070514844424023857319148020488030414017249687360233256987980100857374304913074442114602062051134883240310742787071772337735713984002654758829894497018286686340190670089402135768680745918682362186625012739090998806158804848362980915622335329535159901219455593856292133523444568773932712249722478859659696299630294699675126692674609439667139989817541989938978559457873587757529648685064786517449599730949000204776697286452099400806755293336682057924696700627114950002359247120694974918785282017525960473325217623198117344015888305163417832202289879290590750349032274042817218528086758514722471495516187725582175404012922772928565877441266775356713890397850518941159065524304439237744982919466543122819858383101197966482787897207735191521270019510702418176872518720791751696207232308029385486510933156182961696011939052475519539011312645282991192500265111511800266273732377450637436225259398174006424501410773057894525322812887289755005527309989560587159278483834642190434975105226968817163161889408417436200531524284012430631362485994574096166083976784306980967758272331589675050950961336509951628011493306948073910376215164572078882152650605616910188889414203186020488291249239725576629014033430173882596888571935572430949119296139886829846052623590279931915488230970897348325292767868304717156378369150612392753335910834596068158422754362480208936676969801600795080239338094192983127010589059827398532133205367694418379459066855815129014721575404872810888266973711340385810482741507556846645484712290551861738074080217239890219770506253123252404120508025608300980018380058528081525946439312521678556309624177654625535517325024608533114459684274531821820748155116579302341544885307126480206196760929003610923589534071439012499726220211338812805064229985346286015731433969010016745896637255923752158467324453410876763891841527322105239411677680856555555230305633393213373550286283816249772863498077783222097984264187222724018165362885910130336276543522592491795026203115065640680963413689365561306759841746237133768000993582487213429409448809863813056021380421101072313942255985985967757952238908590435578663762735972046575434259356454585285794644630695880303915759577621359144784959957457611254173182692130808369238248298556806734698795653173590487764535252556802864693327231677281483853410450672459404233368279098306525526613047175247913786026031546182974324496648890950490794654103233413553785680942645417128503501260095434486445908899245325957635182020672093887300576521760972760682442082105424670941871825644134760310397251681003239624910298806908743226999841099597234758910920387829855518604634766662639037295289685849168533727471461941104761121775064277212541489029019839141351734013222310433046604498093552367938622235576268397521777019741990874549814614309663084450828290238526769734152747391564702728276020517530607482540553952306609973883271498931594775199673475618350452309364940443167390353998903695283198213610797347884909401124407977460489544855032272370727141263926774546891328320767053751329838601402954271094437206934607362509527579651868350902641536237055919123087184403016897944900106057598910851049963729461563400114554601579323189195040784540418034538427998130808592379673757528088889513165144546381199055280451542476251416955741997655509653113627774023644661953584773396825560634224385642479662784537236813331266071518719173239856194201348623627794337644476214490685612273687679226963953039263703012162686784126101682079560287456725175109090130582916427505759952070390309459935657982130030821251777616360514582936460168358051356641502775392753598837310943722931094834108006074917897182756250390545161333017020422083041666105621256819751140818217895051022110485953272889175844367179648459746195541287841142023720774134305395109353502588202835022161697042750709291505732112427521304627838928321061975992730075114898131759171350105631264337985068407785563474484833444109490539489151318311630500012104241180198469593636975258888178134739030363328451476253195986615621676090815554850867079383602199737043535443580552709994999412043145263458081423326167789249815435903184914721102281266707142021192963861540804197142846503922460060140249950216323237471614796125531567074482722178609326430279975955210067225707674185806609532719585757104735867156520912464646125275944435864608134755130914244650036064001961315945277111623620786882911689816751660001023005711338804561433354357175119567802024265827641290468147876730247519759408372484616024311026549383137401866753760385241511207762201832315466124332717073977206712988818923224951720741604204277164152593692557638082633154539002158754707604871810614314509541894015310505175735601121377819546381909708470925526747143840899186902837550336121993266217269955034600655868520716671062958538914231659291426734908816350514159114773069526952123393721542559312440452426030013143432253903967117622454462056594619592079079087487194447127184161746607234411889933469764496140597651690471598155988136699475016171312357999608456963360909866395697087621053899881986329606655707225566889615174185775140985456759810966047384119118658423440287885451529125383146399286384559990374620891461147753220975597895852869410782865987767688446690145656268779019453148339170907084275432655912835046821459476507855962961029689123433882927578828897976866464969326298816055539320657543127595022708355126114511066465374209234975058313876922050068487576393603697947817380563729009904873226199422868464884684765442016766898519090222466215328488019181071318625256759280420760681979049024506083749414880383605495535413232954497388107188974932449889874921491267870084288745920070304133919531591165721757563116354222806705039423674613242064743258712611670900693062149199532777138060950167661473392518996155573907391421530819093264225918277111357148714262887117396268922252938059059088583451936411344183068686162154882139201950793016037417471132129564871083865847410957786481321907960423019843539730344750611014079341574837624941225060812689516000406987199266082419097806537649805747282810315410177941811698416977551383757583084066666352588169267604568262347394243352647390381319595337914981762304487785312378528611579320277190676787325466204989238506568849556206433501367575728776551728607269729624668354479740595895210222810683274679324491515126629071625406757359064293394544761241050503701547440848060420325681797049548770152075208709841754005281480088407423330461452725761787797723463622673076122053163577472611796555815938999444403418393551596698971774631557285446106309821293384697073442176560153754641451110017239664970193763469841864116736987699100812035158855259609505885867239268056164053526366803926671967803458219022473442699363000983200757117076222970347385806358388865849640140623254968735589455655308967032850760110729442953018440861643398129112194669363346744561771981203795904462171322490111188570000973909014185210535556289948601694750008792772906072756742589795200148937952675603220058954223821029666584478327259262292568154026366484547082280627034272154414250859000322198771761030927975250186428942994050866486603272950000491035241079541660688688065340753306598408598381040657903825433370146541388541658275917790606395066752330875654809136232304820776299733171906418891765498074924578110858449165424012706375459302035658081083435457739165083730370454373844001211189718996250014560334293848170350626096950657805307673308364515512812492563619933785294653233863065850231646807469812171205253936458817943473950181031538818536814677990770190274049695270345859349919434102293009568973789508621936580498249807643242593351543064788419587432506024942471275120208843114770142211871540818975848221004253434168419453513557747587365057165661439896618889998590511653885438043480575072934318985006974976886362217463114820671707596933794425191342323417142858761194043936860787133829125519530927639476536760656169877162912307400536930963179471566364097389718013972796885189236361539116859487310336307571506460397909874899169372501567427511117691701879282786277174057470537661751820442874895368301490231282184364271615866841558070875395903895450977351172229708473533823335143674322619760389670553156887034975785891599689811018959988338224146561705655517034121223486837834592751732488529776946915070345984833448532021915233643710128249480024180056034932097841498843040144807839985277217637649288391033249346934818453731516870791443041626917528771515165522055863743078734962026185217809394322700664995826688044742828869689644559151490221432136437937889495909492417499570115981257337306093588592010560353303633965627962756040679992955091647825407551194952612169536926893376995799345551063151009060262181099501845979806861171087915660671787100128476944276763843631470017921619910656941610563519161921262853966676234871270351514285095760002634084370939023412207239931816171754143426343059299011022114904625131581131721338238080248467543236823868959022950368226056072379823008353238793050871138834577526528241540766851052223529718310035576387137979968251869229341184626995451328001037914048747987878400154944186089641795069120306305825985988891000055937963673145952125562370520112725898045566396492697126534909282993859030539147864233010559128326472770242204580911335487407739883115370758705130156519395906170138352965915547720676453761508010612853703934529992049380758177896282696643644453507855391740975636194736970494125841188355807039717113391662261059920195327151740350332206625589389239914961126536401501196241243519157643376775405978711409049344741286476057047063725605615980839052888428526920768865240940173245809244931689341888938227029582005667909237744650419590496028933509916683045615009046712895181091356480741178276609119682931110675486056533604812431741251441453324987492798636347482019138266362532249644478550521534493154717621594587500800432209355781870591960831186906812595559918992397593686748172613086792682349768306703402735298642349843042416091280384524000683310729072036470603566226536116776322083513775347038513300775736640725149360582168040628042144977213589546082954785160389267662854156958405289365254695091823826024330266196381246052484710394974128316276602109200879408886524934849956805899349247713037338551034850571968211234595636899882543491159878331254041967621655674735230424939941253911362910762458771941907345335349802388924181414818459258140717170768331817115292849145727887798372577112065385579948001231451550859106389593294481130064774852665126822026679255882371006355285188687771782532126216921052692667520649222623147780753853703985726657917585970226324637239452217245600533460594933375831203146579126224154318127363120080387739631578357309118873011356431983192435079264826062756529735785085954614253615501650584161961516510503603792111535964298968373031151393955618536715430454382968709086496823565094586887575954044379214154956808140842888871201399895414887191961438749725713965131415125690308314109565072180877450881046453782671167735516445233881228922073892443494345050285569151961892941036522099957972604475563972891610259704437487675929440205396830878023819956421250564221246787526646944567253309834937759676664306742551659334160615219428291340790570173586512573709373789153488659857396337493212995379603408805444679059043032890264995271533049912640913769149593452371485933428801784358557429840749895473529108388101813689569017516210515870983261375070023112096090649839463700337599239087902686297780597362717291368727785153757143460077705342270587170673925723573904219457719148391252885225652641201507651947897584047467600223180259882682069332673865263801656447548196338134641406718965729980277154482498621057833523667297250860822868602176705176684550154782244220808166192155650291674061724169862529912920764568789468899008745545218122554466952280884349038230068497928045810413366822891472252780239009947313578444269138480122231632983326713962117493803929967427608650328814750535776254758446512265174021496841450819385424393329286000005288648517948078706025237024473962618419040643843465327987824843650366775592090398340495179926964160993593122317837949682242809673335721011813745404814672750368639263318952260292899881592203907341143545361939421183671960946615991703313322247152835236641541402089692350617274944752113201803145233128650957523086342534162116803931743476494815229425599953473110740884945473681456040892679221521655090110852898568085731459378751510441026344466053118361160459347800637658747507650255217349543893590386802711928187036232961464291529256940665662272072057377923766169703538215141490761373071567959748183204830794605746251501788032362765375383298393814785600368975210854795855475511325943134499127501693101383276575053054123099690210450468592287357309904199266609820082506209739180666694308719806496114413205785841033378750896911469395133321171928309143330100210794858074982768445407625428529662401925804883460745728263082071275824740787866722342692836991057825217670710657607957682100677631925432386131481867340847392830460024501604142796072013292361276999771025201230440749230422415148439910229568669132361949683978794295759766025408173718316819641108602282023467695906462210480165229436093409562817413327118153055883131039938152397471274422084360162591292660706169125803084620765988674584855674735727313681437007818008637619091462868040719556749644173898850586020916834558334946811943482107047357757656235626581654121759843431601064408853792307240984398583044618037318897529352682813476607805065593354449963166853203215670199129269923001660946475723981300439354023180058856012608201798330098013127909609833423306027241659644447505872216613232224170260444967095904930478184447445765165274463528551946645033661444899469591105751001682311162724936359618418901158358400828819682675844238578997332054561898318218137284071906800597861248613165235115452165943517439274137541704846349973862115420359174975822297985489289091823419834202968663306770204923274476090284372945172229761950770145429362692464297373639480906017940567415976362657670509011473026367537474124046999585325621774674987042408420836415152421659637701012595233644554854364001540795760222980513395662044481472938618894923469635680368780000759982882440260687048715552849426821561003113493634211531837955333317738057213917990407086262660796058478600760009355153773955797193233211548365993536534767384648611664513234189000062061720000527105271903000902898584237769621539694951165963359707516763816988346142638583202930879806916069091533453536902873837611352408487329615524198764951707785189200183887357708081078105088506861401243555078344544521785967792423660137269726959807919839221066159034393166646324209638026773781948552960999754633569589642232671516413101465118332330874214374599720987805430042943085397799320975733563228282172649413560145202428491636619288749990542685207051425029904753852701114858617923037165109187042475143920484373776141557824730534347128812166287253303777109782297969148176420412689547863089453540186795488061460624090350998024351429713539176617049771513554443272945733942227808649026997247052938023216126267840733732136089215422675835421968084969964699425824631993802877919921618225919151570813083259050318084566831078558182890988199073906400348820922537328294145123521623414027205251160959953038635526127564746698980017222400657407152960082009301073709419671567413914752126477946467698270530649643569863882013042199344900668184552418877784436238630042172211039904261271842100261842304928579061709069530151661963698980314490539944963790709513193171776620529685448747814428813094528537338081743917132887557405640786586307473526920085295918131344781636570065521568298188619897751744747871320759523505222585803023556649030128925667272279784727060531048784181894032991166424499318075680044000878376921292321249129723510006514407140699199406507978619969453780236092014091044487338951064713563053281398620320465826895946817554507371640500837889153661570700121061696930003652787198472286171169368881954613177940397474799438024462067455666962138722749485373604906677329693696846923455571240044364321716107191519700775584605019515722376708117541304515581835591822939323855160256066777409462360650442358652619095689450406876001147932306143534206045506029057795187361848280618247781713626760270244081375863601733306282404049641998345669479540626383253122851179313182772056772546906196832784014260207716356901991544444400033058716357315314388486080482985140471491997976628076777041377298510081605486965311999985324515789839056679184588276726478971308262017998834345062229045399324139751916083883733786335210296685342464790799997191640623103134405636074687334598792575782382521674881921313102097954068844232206521266210715041943928300580070121903163022689996190355898147116162371339894045201318608807652789674101374526102868505591754451208084486453059808170451031728194279519713759666446181965965533526286757253112488448717231758113468602805305779952690537975035136593707906198453381972773543667387769263800156416179790742849738457402923054441785494709965027462610759883924747739089626991311383179662046047334624837387604806116411091805854020164997954773929729929001773925875198841723443802582188839323553147012363197799348280328203442974672352117779824422619093223186202367830598276005193976351190869662554921879254668541914898071885691994974912296943847460721596754377587083119495173997781098826168218826109865568340047043339772789045168919342561160734473846342107758239251417571256560434803692869147707608300107690573544741934027803268605565913930000043124398950751935372200493893175950074254163347173920894355794053066467802450418685965945296321234323077625003856972346140444926379501878079936387790938293692001758531332896526736987632764983410432034634094337854286558390262093121353009595971306468330662011458944364620271772414499671570498365380777105702158984471168455591546363247736297486905769625270288711196323793325084719422688657222753197982353880955889404700123838103841350634532882834571734657938029812844875403043341450500604670237543734092697371425594504065441534639536737948892164752074156458336320135981554379379926095098776367307003410786104064567766632143633485193594752011886818990372090284088076582305073025523804970321226834943596240454872171462607870670676272741516355704071432559758386239811765943773788301779886015797266582292108564967771121506168196214208113016082231707239762383446031334457017673943823990958539356857167724165987816486107906621892301071437781429122393037706979068230437559266800230493233036072422227201803108788048770932121936329274424013470922729450179771198092042393026485922572636747714016738828238572062800347178094315470154550070751546627091877308049294568387778730418834777196188733340318113660819930223630765111636703482716846143468880183292457907939240738815434188738010520585748247943716015852850770667908445144920453495934693876811951176252435015563984163289850841538656353907391844414594944392603091082815495155572562062297917119573963087989685289042414381602360878517820534157869129825877058712424810984280376454964167077203117764003786640962166925767506706539037200481953346172787413200094451829342148186800065478645202892228703801393938702375541441914131176105825963262514050397642801398553476631858642726266721291220599731265732353069903291154582184331372807657412839442093971602085970574167590237431725888064616343477493259206221267241290503169475288176887535356546505681871998625091820186074445761101291908241412602899350949521762861949256745671088253217667410408852252642177800135089605415830600690551989928932132008602187741700827821550487671944569197020195019449472701101760277243199945032613244755855024371813953699368404026852388592242706194948050689733125695822508823483050803126861208673063192069308854372763280802875551702279065930093473684956559751623330975590595136346266220678670416354315082492732011299449513385999369193225161867265902105553224248481886079506309382827735574526756634769318270600237168085361289896346994947758723360059837403289146545023133664769926930352611707454877120942587918486978572882985971242941764312695597569335301636006634841235130245370147353078477058693976754298443691648436544363965409142398607601052661048049169947680450893994395764819913164538891103647502065337184067045575013201673520005108752593627527948626430220071573044976318683666171834815439310699349713313408514640788457263112356584462332433091202217577803997018874905766968705984033082597304544286487621907944735966847738746432179198812196299653408598895277958260791083446679772059227693158307106221331743986727674724581601813899003837398148383590915897999669222498105429083844422546425232383664855166302434483718380629104718705953765638358283597197124586647602533239329254396403825168875185315856182616230483036481138568316946867682044735288906866391683055786512328214783275735717572372814698638753879059817959851320556617163870909881475818545080210361742658611919060542053436078438060459834129301536399545253873855185286190905668178775970339173402679615677585216618733447808805736379025495718574882163037368256858779797013535184399903321680374870023008242265082472073213579519715706676528390089484285531936016309396725237952594088827472237650882755687709913441506637735107588399370145382417326785384400350644904952628553850391941075832953414920199546915369482309298683048027879204243255593617463619124279385599420562364826032982124911256079941310849220861103360269777336225090191837822381513320360214317648542204513467950849551842682107446406273046358580214325218005484716566760880216280321558743640997140421658205068275632973457102591868055131630575824934535084469727651102088773596013368947438728974431182540170151584805430284976614395086221903695618107224267612391640091926482353784533819029701319083028902124161020147081363642122366497003190841150965652772698181005427740114605400785294866864200305519396097851281912502199818913825252890327185640604852849982546136361096178211243785669356083836518888020431401684822267232180916653806128403379257654741467330350243105966947771152738981517431965239422151228328358335434890168859491294839427722185791078054799941451782257468429312197627400278490673133079867178276890333559048795586737404775811774678890437301905972147269485268283402951784467425398532626851981966499161151329557441643388118736771425738059734037640739021144483102777076922095162044919590113980444424101814456236710295351745237973101917510703758619180476562869294634426908285034411304948883434195025613420211842610945036594128816933969929801823226375920255291551826064568457273004307511898642185497409455797480053797557573183798321546960555222716669343227146655091224684456014911833744453007698016314544258346056543308909936828233330603549059987420075157850752972004774067921301823777676234666533908377067810563443762905326341763044839342700183087786088330142142937608575230375454291404516822935488547972288141330818916379206759164277425092051923384480473101892552489365666850141244679900453823969268079709224047206728611644242147569898071718487044558409217068082195142795793257935287088329103310719030943510552682933812991355085726027080915598234940353961970336377993004877256385103819257837067582402909222973592792830344163082880693571130476932800198745173852774708263831694809626124511569710939817293482417665364604624997141566794706482492974391367909751623605979373633191461686413106461219959527055837275875460037605245867389536012987785342864865461211102551746115721209463959625397284486706619948258520232784345491244376043931939221316152804937961011858418013506907505247549947388530485950860904389097486474428569389023791107290733815185594584268527351998561215310824674650913708307505616885737103263592541594501524490773993733534685663257931853058060755846320934707728558742549134695354148155471424126651833656449034345040222667441173292179230525855983679759411014624521097094162371634113476081584667965617586117897143374221560927816511773917915838990296493495279408832338336696420503140414905281824000337010231684519185532063177104617040124946874629785087632604161674221899095782385154331682763651336658319190378988838674063367161813936912544047800713377400489445584681987592244921854641772988255139979624700065263878390534163824472634855352345679492439636133675692214747115635581083663995220348242018864227722947830441851221350803762032470565399344528485234666467877653545477582188887990308383114976335073172244790807324706615756324482814009842913719870275566097893946161738215256475131011592324110002816723987800631052388815251510002019307522154030295994744776197129955303289399182768415656376877318530274320281396733240235414528561427465333219276975527435734061933661533402696152637116483751006376981540596347049948162267529513274745454606386963892304993709218953368701631013459467458362222993520042810966566584166941390743196733440516059653103544314272522898981797666462713294396054234282472405780215311959031313562690013778923150785512560087636141617696501371060946291379724964432943396765435760605468040902020340756639310549043841004626935529472525839582864971522857211561038782560979577424237101811016721501946353197884415905310436302150558402123457504957276138032898296314959673789796228877699824948160529453131685819291944282120574450123432140540127960979557886617895095379791711235037798708472454790890262881270601965307488447356566350910029075145088077829698364428482089683088771799810084679440201477731280326936346676329115429345254610577940473033188373013081431065245471080819686509561704903185908019493961513330114930067922583547656239775343780310033710868263328307694398004851829396180151392268068890752698863053636773244645974325813805147851970462692317258988578604261515103832581963068744639423136273287614320488433465456932548166056749475094407452468957836579432853315251927361763526511120433512083330132188885043984945257287474207200825415061735539325950071567205055132610955307754967967842364529632229014270874143525592325404157507487394954308362358404731411883920752309561205886414393237511718371520277615150164340717303091731847761659075619609377552709637072940806024170757985780935998702927693916227670039670181082182757741416275054442469646948121259721363432325272186061661675634347637662658798076073274938441847887173146347126948024636886064735863962151397851206222991518979110868485792965890530474442061824249877004298606227839381800894776462079620525063948843623776289863828997194720550590819828232538806907050595259379815457355620232797154009788217257394459880626835695358681125300795223793791421179036950993326648737657495482687477195958812975930869703601325707546877545581485873282656127564283444164028525184472887595639430564317419079730050386677179023246952644740128042227174187076058852214182486805815841010607723323591298243246939547843671405835815474583226704158900083674974930672722110529483555118233703825914820430663243384424486804255880144606706203581376703352652302513191862352694859874584013209094559855888809336661425691574486664580001605440982113438236948973551809774559420823916519447772755119209235586570628540689024886119492269329292781933909638761744711221975357818780802289027702098326323413511095724525178695607097453619518891268810300837591641273855481057291266236077257809172940147836477753276452801678973894658059478064237190870189177851237158754549672137715747712421098805550742125872331164522767051086612444782120601029186372229223112824779680076954397993383021842664007983682503329758238030337421736714578716992117118576687392463618997042351640375664888915610925319545182507724696225224366081325412335203074523460503517351247170748321809413579809373053145046977003496475058970051266859894439359674000433283982305227080588485769088886310744368882036653811769604113182572568904833954729711304661119069069430555146680061516289439619678870850824627468516660669417599394760024840500341569959080576983242503367233580790540506107308271031249538398445227356069372355322067928044535167564497809468988459109288572959746508792358810773488888046382031414735039795532861612980459292405002156031945572177091057934680827225880134028914122685933235148078863539170719081997264321392739393130979672251389312134680348007056022524257351158700667255771589051471983270669313240742526869404788250047981809024792072761606108167539837607285377827817843010895084852635378142092340307162816566398779710286098402451180577433652430029300198485226531910226027031329280847096012586178665526939360783128235437475570137858644491616871640510361783525454302959523039371152638276275070113911098904117786323509998522288430245776510327959302543864655374829748166555931643649298834875742550467505848404411499370011134018704251230284783350185849046627595855718585148495070697322713707358154401954119395156634653308595370160833868384773515757871488042183111291637012177368501815147570237958254212109999418814805351887817989505941640177991499282071195899017832393098027041248763588959002213668124379024994994088809722564745086840614685429863812007241007305362392424163105320550451460734148960214168174464298516634504507419954431888951900535321871176938006793621159423681904896820295553518148438231286807978536470576094755635626025880196559771565068492528917843542954377619194646126925570594573558310863768689024807244287866725780915961309758171600172866664921309553559079252130996875346990710736141964929105942970749711524415820524103407954321194565474192588954446669509891787013221997792115929963717432426298234885532017833602402264554301626796446464324924204100767821348804349480558335727995015963369049891394538914904552840801981543475420222134647254235041508266222008833822323202485807098562409789525284533893934784834929972719719686063268956164216525170954438854516459868771648939134928041868326971395747275076632828481126326732553894210266909012405639319346034330931466307119314435546099002134736789492065113534025816373539479476075852731508669164658528677228241991589877813184746741748022317856772987582802206619313383394761457904360566830673551359209422766504414082209000883195373798469588554073716672204098174926201451233305750995822340187286928548045758703096409076169186883619526253934332097142376071131313513550366775828782267708828180825894371735852133393999918120326705464642187900297644163362914430347570616108851944796663517240855011485154894696354206388914720636829675065137773571027422446271256582456679897132982528456737707356871318562164840794762460570797940822112646778041526679212754558034324772377344104815006675287656514445257521445200846536434806476077542635941727549805053480057603030199188774819464895164084576819995748053727996192675376027035708387760317344311973366774618988249910888040757596879414608960380397908109798353690158489306785772447177193156653543927953492398402151103092615836385457822057925503798308710915583167060219796760533916213386195314839536469566564259837536851508004766772221708253053227504580428185745000748534873397498004561961170294921101178329883142566305258892470679788501071154681839867732779770800618040861119010384649352003889273017033210134082928798323667546891937702211358742761060831986861604784184713998152296227864704515913116242768808014416633404799107870580434417319514531268906820763377438116548279766296941023256385019877077355561308156412505891199649069952218588691507640255806632760138509515953920412853758273570011678432896924456328685088964105547120851659956320158712809580914855175649363723845161420245448576413435711176521288228370520245026506030432798197603822830024167920301318178273587177023584023767076320281308191442351588969670220288447048690231282119112282803145873381016668103062560946689606747275959106326122997737620787119582065280413281435823866806983824451783916135774256073815722243834476062157446837265113787554267940962747978511721260076366388321551430670041194141912461590902776737161295617036452267878936080867686466707073211680954315095048308944201295351197691148592427322509355316257070574941653701630626434391011985449678889845996233791205691297104371903924953341273490163755936267747908001437786202067865638691247619600947753175609777491711210385577540689057155569328882959005970165830662506801723204941376702118797079112161838682355407187859307207235572505091809888780059405859868286243074530677103341242474086458561617437541477514832764871181321404641444162248950177393638716649807104711377017466912454288503004302202155927046357155007977602851355222602485814498900797687305454971267034318011980618368459769034278423242110309243400371364161479950910117450133235268126996242395552965244895593500329430782309825782160719021890286875207038664861103810541730018446727807071910214972459294822778514399390052857823636278143823584371920825940814431574944665226701975098822529812566109000619984637330435643093144208554905083521830136136138124958605846924370708801863913248116472263296330725349838335905507265556008763809897781591668533471321937502211588936218448127141579167808916161789147215650291029246994864052991258270067552656398431899750389406434636842567031497914399146159783736032550183336184475431207711395451422661072639791435732574635656641738098009025240076358946836223979962581953469477916161422330841166978233310841955643600033398001894638389508082570408306894660560738599908024610902888444265161469804576433442095447815838290020982053154742231781407984121279508639418146371718182700672494456123542840186915721970467934016754394715092335391498679314020325746079436614653701798214347760909229384295348883559123504283700610756698108540650600653813936422633322278842594560132304431401150046490359618512538003119569548790216741440227048449106998821442450518976066894894775349684179535820043221248590969742765401732929778875666125269321264532054604296593923543519317570908197856362371254565166734790645851800454674635398905693431466488091729049145217548117408339274781417135788554720368007986318943135523619022883192827686818442270052201077110596044780679509304197332801075232070940861975946360645730148163371003762509297167456813320255403678027891828238897832975099288501829661545135541314147246787224257381303600294465716008510341511778481508027271986214127641314312593379607887366414628160549356674239455213161457839716387422900774553806711133123971290763092468583553374619311993056722477414921894497980490860648004096706898026168013894573868817219731526629305786183453857428765304599288424568023458431669714942603973757821988820394215585950234733388519523385883724809094104489829651606213331184489387211962541698782438001695706440997255327322336151759148862295615335466045781495960200823096883306613384932656410613812835296313912094413176948493618863042523966767960437771335423499011071584386743013378038132301908769683284203781118795431069604733917365002957691511763537884235533765974496863363464336303654977049810982700952301593072134635097197265120941801442359183805933473283888275493654266518978679853221850459403402980855549162626400355868685862531366390472515240736521950615082357759246526606944681410961197480096590734893828544440720976710359356691364012777160946030949080868868905270422825169545718111377907642760255339544081132700466097456180240273039331110480038754717384065072934987071741272406501781310439303482768227162620161987703139376611749113571444104186102276776126141236758447651132452353810187519000757951080567173741865935256596628803527566248410834472232146699062552297016174762169653922337638619222027012884445568184838568855880507129362660594725687923035175017798717246161437103285474254329971675554488447403367308880072891905943074954023339923869616263169040177963383232474563633141101495136790116725956070011050042736208441588913651792521595790439758336961741087898448941627833701883225896448618286265701864334420046421615040786340431278838344364820213453860632416476331245127397753208294367686266064486061512466319243422338801177088689638276592400010850997599464738841416360211701183497813074656925066935387455063495588526424045234847067656919637032297374611681310416111548448174193979408347580291621417970460044731303913969460748484253269561254848578585067830720224860319253119003958773801973593883897458611941935830117399016969182287436925111864475677836949316082811576223597241040323189355487446693808005907062602341061205283471566407155317543098558827445467816390104883405831316157779689148739711040916020920301593765255034292174066314924566374421567917969552843372563742740628877196317159419080652110237160537960787432694103871840258710866479302374652690661470426802208138130818533227191954222637191037798801217158683236554746195771212185143489246200712339096277932545749204039102956745895730635042347146216987889847792988074247127519540383772466116333181440457668906312389278626774650506670345510405282913392510334731256717434135065244922173759939790326115196257025679379708642941273297097395126867530141434213570777430614797203192100504891130292634284264797302437754124699082401339343075840652589297955792070783256742556587216609144404233981432300261786216514267782955617597879964869639816411419032315589265927250815034915165134111955110549268443606213822966527262486456668242373416881556522904056326064439657940115683838725092329870621132392718691210289762263071851944784633994214938626883690897239895326881145190630667348271326355555122919524414313627834781013979703129314352565526124275461739555250810586998562935889997139980645963856373029876721737959053850185045276363813276095142486471508122625727992631098494679483430858532008215341064842496809321746862350730338670992252218868651301823730841265685510788784149581630088959679024504781986773451338505410161216625812572755951500248873693483444004739850476951456568696788405988303888165152028403902307894195297099001080893429814245248817290308477754798259291155829979029486110950418305627595343138750984173540037667537784582866298796227249242934857888997099473328640965887046704394504161942774146005195640619545438564348168133125340471094380795347563114479209353241691359134051902710216904299936780430243314715712982641870469948698059993083074629914221527171486053467297203834023899799218024983215469680298391897499047437613722791731367079947524868652858602007616156832402292100162976786042140018633120091710049836787585018129361850413489717314104481562865662018913972702298004301359557989972722243620158740862078538385915538947136518690600964760487527363496355968543869243187661217762153189055076601454958877788942795735854487755092377765983745122708749095314090011277400870202587484872224013117816105051688104501061625733855363997353275365334936475026855586752580202256826865334526437278092819339452661916364649108257970605389068605759902422371865479661087975948787289473059591210279150915059425246677740132850340524854196255688122296064285332397122514363525740971689292197328988596343138845363933579527384462779914445126439534371524692720303068355859255520033118897716638098017714814682370349900741040446619895236703276617571951500002754399430550992182343548591864012098948925016406659688871149269632326694683811043066346836490856382969774040962504707358374392927459550192441317090838959600248457196600857533388889211610315840198674937654782919733065059341365402295769481348513358660680335567219368517858881519656260760965307136366086358296853474421922404017312872306774105433098305821747076049594753744151180524831507984380753633698318810321100646955653580960467841791996106039766183103183746499394541448558154582384730305606485694566730609429804163396746693590414960866120488118600164411290720585712507148282633116740220651840470665894133846304563409879904628178980354151212602758710557262989822449660867066217040692709182262667391996046388702203985831391673599036205651197217779271467598711355006019805937965255393896691919283504585455952128465526888884405027053546469137364599651196857841917617217009882576759974841259105587485357977494501374936773881192280461900096224172449382639522481369701827197378601050297086604962693640923426399167530263229370124544049206816797147614296119752298557273055460340837828437845530454432296869272976743220976511317942195953708683452782268346040234136651032873964772983659348434732374533533659359754635171014122008884831344771109187608106225125286495982386467125016918235347923948176125667421466326581683238642971568822471270687265559249620883621418233160814847099985156690965895381909570754376451155824937990733805584578081393796799886074153515341430778905962858001547516426539443976515684444266798273467995233068433540404174743380955408913122765851815216422096935251976626224778361408873632006135332765344128736043456047707637993093873857454313766347410763076225638440098834687986392899370737279038724635280049991387651852388333704112071875171914150684717682721622992311873782288723067955178499653413239535216195739956261753201193916262848408016621513718733021919624370218594499666600153802386798347905079565272786687775776204659910886568007540006708715813290662118577521150180049368929694303294928006143847272886746099002019267257800419988796155765579948816390325509164657362759809533254162503581667975779676549950493918469505568450254794937050705791172992087698051699466897816686583588178344462657554666772963029550263227611240541150703559793381179762369603501517346989618827151732916548799333251763255521791893265772516262201406452606070461982059536253949159019128132305604419963086331927114769595875977390200906856337205287491244654165045913970443089893324629569095963672430507692510438538308274568953926628398720752569979476129531216598951747470097821918216298064811749540935613986193225648460798723839403877002010204256509803105863517794786429112555087345761833566669512387276964559453104272889651504525360334989625007814822401273301527227736421098990131640127357101070156333299664148486908178742070645917429530033728091304025541895911181583766588806747524660157166898826015184558339169823644852612023559004955940289419884876233508697800813584485489528968534299848209286940501040781675246715835723701413019827972975808649225472231647424572707106739749463628374474669817308060802806146500783897334104035485219001401507653008454466041009591725738317844801430927294967390543382538733049482220079437647449548618855450594967004550880314226327998233574295495461933827639199749541253996232161253530168808701158811643890655571158610532092753161157903683907306780904480138244631298775217282010916399319426296787243178702091588475447803956514601328301944739557785961781895709712559104031054944283954474077064375896969901477137293046633348991702437030083478994272546020827132069741368844318015263023581048086440035517510636518122099406637768080934900851615554840781652880581056749274726274601044239936425873453692578328840774123330027784903632445826924621412150557078951626473197120684288562535729206482308515911638937219052705109306100596646669221844583468964409576337481485873668382740904919562990104992911080169576919804347231192772623735819261696523368631088687803532822225733276899252596565944409089092305847238828915926460624230775313376791965654543376612002281514980478960338928439581478790368397680281264186156264789880966385939561897702261543183369110595530564060457867113542085657794306841574119494381965980504532521000083041373196146259779118471489820533226956403674172363719789587357598410336977134711636863850181305452993514563716087181463120772900961946879204628399524428981057433075815568438885760429768916182735732319663323178719113296387032950697109533130218811709722308953883825673360417710603326751316240770091283629534304203698297260229438047905805230347966069483155858188950525854245882086399344107350832781356867793460220663566963427887874636828745183925377871528739228721035307220383154590988277816010970922311753427668205669404914655354039103642460913287390882383361260871145193906490777431727194501505626635117992305147531575845633838768039089136579864422686791844922303727072951344178658737670150972594265466067027530169277079328658797870779192014402647509678431948643894985854101406441513578221000050521459366271600627503567622369820288188263765902269008903757821873858252752335106067824282957632715097608983044899310330559193758851534177782207825547805098370071309882951037577019435113679471716952094018892124653337829157169096140628878179071591387770944148111525518696626878209397495860685679692088204877237600105242030686766742605263949467552976224882506449930852557196623441091160265046318097027082959617801903065924724275017998640537524849628031934749280549934007026602719883833197282172261105526057683078946550958643385442442782077651656382757728945653895178915814949007355158845284005257737794526598477770520387517176451797417233129914832882381433595869619312799697080137981891095009568188198471790066041061419841088110264999133913572393499678236141889202050758389871335412735935210046247027058835458109405342158736134044546657851663782916469321864311646165584164384634746646054424091426830794873292523269331340432034122583427589034376327427381253814158842938937146496840489251467646553660843913126937313994905272997129925156326986117427178830554191565984944778432154734907603336688457481590432116763087449687925528073540571801980160779961314299359245231574752214145733210671175170844342644086157759529857515491094973482721188058323172858928672529971120374957583645912758750427844551338691008194957557458429653459722473143951648539374786849581460084911498748381910499886444713817588357666755070083155086856159742249140489859898694578806939204692615906644986921188958306188455077335935098125634973878647937620555059929218826325637119835514779319967172434555577737742616204997788286044792107626707835435592523324337326205987896116860706468827515847788959813079444359896840623397781800285509771282325551806585652050179808268507931124419773195612756439766515751639662004316300592936920701564240872061096209233173141683137249513489566238180326271528832634783170563421145560110605462886221895810884031866689337917062957001523181163099363330428250017361949125900461873243160993236093993455590971443271064746428404795885382075966716750939619763948886695816950554582202808980373078386850708503083889351650887597630526337316292270649446427446431831332298481991233078204966090377181166419122960963582574189731357914423952602433381616291319367993964201013075358255678696420501163397341525634329862656456025745596029204122454323668421765593141005883199480737442077926798149643384435486633053829583332733038456166811595874200852600339731029477302489219281537810635865632793727625037463528349487395910807979719898672548404981442753039082949976494670992650183686067260394080351054147789542457796155619365377374780023210855254245682266170587980146377405056905459689613161479201342165780802356987411200985783609410004325199961330068679743931132369409747023250709124036953485633777879825908153280068006290655470471585335513343276136241931619925456534632945300476914394851209729806601219658789636952998993747742488013459183580958485473833238404854871758962938984923264275115441838688961072792668503281649964472717756333956618349299377067661240505314713358578663448656476455817839091989792549141509666872120402047195519749388812577418093444606066151066107832802576092038729014667472190424363652790123764284356335665257876691795288344945785316521795123187663473277648730734318919447162069337868429122331498136344853318340451928291662868590934764952683228164935866225459108768902507644218950351870568127770597051849346299005022627993714897933460883679702408129200667588524953073967562773067742065519690013399303448093072672574676521103391747539426523429762606964805059356916460715701823611775144787560150121099933172180850317837185856921173607091404151456153279514598608145076534363014603838835475364315772152554249598477614404616335207336351013698747774740465316398719638678275656253057223189632519669149829540002392582521313372251862088550147404998842517967721340560878968729881593089182645632623952485498965780378848458918600658055670084116629983673323301133794822370288824182805082988844838509130413604405818428464482997910974598608350698287763422551242568529522292082089125963293384564998551772433290866940205243683094042354551999462964531372942176369246828606707936267040741560141958570421758802185981682773467512111115357127425625703864355162460695930859054974446653150396881738119423760991376690105480731189941531685192227356481775595946762796824767544606157325878313380617964409777190872693309423193813954592564117811470231724327630910737418739264477921290011041727376304611058687779966189272157013930060147935752585944813119285702175118077582799067878293361542381331227478304456968377544962491408257763506213008236892996327384864833557405150041703953092756635131578452612956105068431768803199364354071757321379380600184959009486082277336503709432201942224507920336424749548255485512031593488715389456509638978512279345105120374921797841203631390601240425833486604167317986262187757013946518172848078114991755765118882620470749388568156263741645130152180225508647685627457622232178915680671435889488541756268296529300674698025331737673729157794301649892151304323925317378253033473548737924948146505231024339639429532613757129818959335956567906093929657552816523174489742420313245222634760037249588615000156862051499426809247111180991259857053499416073325037551508039865385081298711468791349337833584059356092066371527843561064388928978349152192409536576615831640892901613085928230439352570970627535684830442982348003585236608627228129584460686055661503583339105083904870877069432817103028833128641104485256369668042448152697216501786205771431128558302688876743814912201769734320102705644658724400462012488777134673336598063658350618319058927245487808633051017299386060795491541438714079083209804668787540772077711232811241010087933674313507036497198697674592537196780288467375037368886700276130879214070910536027668499297433812896986343101951242960870371656064054536277267572499945477536462737941634144662459734707323899342491808855887169949247574177197501525558270755947301095114220922159402648673203696243898512047354276566144975000944757384845029664715546332270697940870474602733240169436651817603514352824659175542532877090985440484476436332542741184566961697150358110672303060874112140074224301960575631733128209813323333072724279623777152790050274774924030284462995599945186370585957322792308787441083363165284614535045649114194096978174553798790929549330867148442066325731905086743256771222650223741188913446638813030473367546084031849742222641043732406071880225657591055700515123923596453760551310143975998454647720982685254875177107887889201498658884108873995541013048675412822862585761579455064895338833174016562907222251947364435425115212299756037590896701891636897283351839149538412231083495043410285894665726694702066283838450778758728923384398055317640193204015136231603267431935068961758571511560803996451154088206232267942653190717247758323926285086064111391668894077982340580778335341655642468582634183131668015771197052587658446994505446129366713713565334566439564944334331440352380565637988461590128875130094785220415562543929956410989111232080372994810076656111310006587442491831403640378325108510112542700184389127455304344843724346723899451388196716321844783720292272032446436750333105926050191591935009452059469172263125634304345377423742822754221639430438195600693852481764077301909366509402705218588068178404474904339635976469230588525412477489727071165846296753425113909091737651470554959951412018392792912515035225945540409836855212509314006166382896953499738148109326824532988610084808256627235141527147464104516232135518138162223655381123680998096577420985960147113651337602362182483529565187054830502293331223320991105591165508725740882516355523381622979591498829982951253973700644576170331428207517646755448429342005314368722147396930796481486662696732665923463970187308198366673868022861344090498023376261151130086221367564008568843285205319592052312668067933735881218253307652720829357677535655364274912710439112837002233023816880491200699251060511232943710427089063701195428973513920038143108781082882162283720551258608436199640877834184242206013715126697951417977025857206811695809185035675736364563304801272555051546322507139318058937397247521919196399956766830636112874408711335808325745107521624798103533992020813418933436683816866246365067908425906805227326997263259157108749015018565467173619590047649343416947443090637518544482605655034145347668496378505689959459252783922546734710398891833864550854694029305073960477094450499899271469743912520835008320807067209864007250521092983677910560713277760671636954455135406352647996213031077650770292136234569262115988784332420071883331528083095127691139113224169105298520775637763899229751928649671270024118339100348958949706800285486337451294888065037185769338036608474876577715974221838461585495763289406855481466277352510911425013730607170842833570722427319174696067062948599059644510010971381757161610964180920412770466896090220554261521688627232343722956733066224905255761829986313551529469301664190627380176075235296022854464397571830793488151176562743872836287482966691749172078252813390456632816015772387897020250904960468017423566724743373696906711497637433640520504698451803582404902687137536189243863249739743742609764314920852870774443005333339554913523451634686585784612193417872888655664970379591204242286756861783531288156569565535872593641897497984890921318924618804223258415217081264613475727378258390719641345141379540852315181136935221208442444646730409128737414737969951786643138512190684604866797317485571504733721247435205071149975507992270762062896459379271005939724259998207855810551332903314858754167316900670861970957519085860361424516917107159665428732864183082622088126942180264315984157057072599954050952694681192748203165263702359330069253252986933122231653116385714053875114828161478068017041967980911369113925237701587228165348721036906688249325649118396432728807084997819325111436869926188968402503193647569225922498998982592307410599497356152173644823078912245928559312302662457695289118787380247480961556938060331495472061693018209429631544961693745215795801865258948070686560609507001595484198892997406464628306730603123784529553939448431410292061030671406819113014699728107200803467111092328033107872446125160517905254392940423186264342843614130851892216670702304068349621657259627274025082128193511879952524976143784082142154289851204109125145527936821159429025903106530740960398870743289093191727261774063096052412217319481105399551426780812270226308168185259509473500134105911117271694536776963254407125985046402634229429110008422819127526816348549558586343815247801808164560207797290466921967940180686962247624944227213113538706939137154702233252505832000051782999143968683799288435820926814092542800923267482757756027565799069923323733678408918400856102134311932338759326138582764494972685503526970047362898146178953580722134804489660835621372778076259142830013016622904156278041717233786437792007714522985688000072743521467495263032188163966849185739890231820702342225117542267162410328106608041198670057673262738272412519469048650198913916004438414424046286461436913567347175037209843517045881498883365929328498953528824754722293860212161980283235007361301512537412188553898324454894785796807591664420748285028469463398157893260476575823686732364411193909765338602359851403095081597821829317302741636543463970259535281959523114693594866959988646848194946408889869300733049924613307647802081866893908043405976231067916039271351042962184017037803872578675581362322980964058989492956380381607742599003974004352862966732842525419981607797315321938353227938601294465720294147830597490049918906741411787451722260221370096186856750133809840262735266954487426553730982570697714805061421775400216111389827776037996504400481792188131127694459948932928157315642577942779896525798623097411363250753201501791092242614299508802472526834547621412119042977468021683952448842884255416998287651625798640770121537311624246141339725431739227146120118578826381130131748458939280017143655384004357267857040858544023798004630072324748760606957659705263646754595317448436037681200717580112703182664143319210762671991604605023666010140699994105947600676657700202868964926104520442175314700182355884446498556604300086337831908506881070356188492344968070632759313819736312404736556949188547265923227824274309826495630567224795343283672190501554791109484582218774896063550298356796066067357241257637733101026149191532126657325848958320201465964873860563361578132851214642807513332345767262133963035375830874860888841499272209628416219495218222546249984722312889213540941979078138223954214263324818447201976372673014679917294322183139343990132891703688939093651504235458946765319598259577055043988084967247262723359837936670824178897648872263749064644329005172728341840160990325467158741003759353854331633850213683134635967452498079323194555534045735875730471198283308015821527882102332593243650057220560434877329520536009409184578055218963494315422786242208717536383539960794790254897767186799452863100267436098079137759177061553487851950939313570557679486417228611476393848207783576981676322671310007682663578970958796877448371895977019729744496564075122167457419970908731945744738234353270903093392078722597537505012323095765610903087474516008923733266390737877754363703485491646207009576003201675403457453700748930668872758530064056986523095435104346916966697747963707802750069033988299307346280962870493774268228022948452964218713789699468628744325751690171458514884687883986705019486651768531286779997530067927068503573005278582943655226865787261531279422723723564979956663609409069823059798118500815536551366155774003270551770544735286839094354768158394415894139307616398514243309139788612720751617495315786607237139739606472356598971020725661690802540742913154992287322647013269114320370837263372762037717718978978952431471091977135857788092452521072930182513559641446092512348749461752961521248597399005455788150196161155302566789981379203311573478819230861497157407316475627145261526905231024649368306218715232390049087395452981173495005924860697885902414175897757137887217790994702654439792766832908461972345563100786070100869909900313659810080771222905519761150051295267617268868512976102265502355097602461394671428808457588309675354275618195317868951465981284564751755826902087696785061911647619919278996215377025257162520880323780813611147642682205310040075375728349439278171087581800412401979306520707457835531111856961991683404578080521232971445995873012892117470688006259333906639359029643103155164912223695692424370813266383363338419005405912738272793068250368377973485893084290344613924474236731987002039112272400467280919583980413024220433616553739371753297819316700171197610160018473577798328047461195037589567464478318607094569101344039402633861696880965677972037158308639541548549258811522624279110661445413461398653261699657139515401264688198234567324248637874140522609477480971277429028427444515883797897422676503457092576334372915226492473444692928932471459049657535108337433378081284333392804778507596523892149026535515880883117668464174048938433414663800965838099389446069396026074892406407449823970955836223383049329651480278057567093478108155766090473686233435612131271091690067994488911852315663720393355001699257640881554354044443819737656310729126284796950451164970687222458855982331930146459466691243611621425357499116858825958007572169794480711300508611642243291361155688732679503806222849901531300344881987776519448892042664090889717063805105886613210136312729364429329649066592718756287410784885068537850434418811719341856078169536803701724047305832727126852759366395935716828806614290319412735059063604098359306468083837441648488477220584403368696148220643713999923176860278854264633479587459942638580677499182690866967845057657302826555244131120981538094599256114624755034324544205768650596257023237613181331009704790823980520728619643092571241446594331053469944646177519385348080908459270966951935317573586533328394709253545603220793581304747209688583495906278728645537958757535594761804972959239144470745362078036690625648628351950805819834688024241230000794575509676199618360000613007733109117900754039598079376398948674287069112166058608247929901232162697510034462194120958479572413962373486556990573028017701356405798986426456556450893039346989798868848468141078406044549440652987300577066971672829567872404853807596840237306239884928315887532109426849426318299781020822626718671518418043657061972429502194371545778921721148445803593775034476751962442977192402084070477870549405729962732718071637755588107611455084308995470335069501203901300115244848140250532282029469315279627219092153142646229267714618453144612025400635541247498047893559162483843011462861382124246434462928140048509005405598097509496762239309296158538197071715992089184177577036147224310879389327275978577110137522025442789435005076471867725222232033250144726928302317330398363992061233136404551685690769627073666850982630276281365927550376823695608562796547835314579838934910675887889347023376821884242865361378606876375531196444933271677715567787772912638862100035489576515177898863163839587891464446598157841699564023731076596097361313170651962217092392468535155847738298608468052324729382378709792234748377611465231172067927828773133902367747990205207516058089692347561206134854743916241386795594106029440367151010037278178019025703248094998589994781972719368682337467285951229761217595106734105319164553110677953960515175674605230556097467531679794365089787673087570076061675252730730917882454631803202656684076468100269159752714772428212862729761817479365391172712787828763488739602260870513464354758243749018385937606658107760537069342624453099542154433484354469027502605419556200263707808459910857059955873665393275659074270526260260289110460581305382201633546928495052865250634274054235360437626758715241612786469517460608666419499123257045118626637911813518329723363532553474359908699124608022330501723031242631582370684037168346790160061041631685982586105267664118783018105467004190970670689461926171540706537460690034843841477074374831567628058293819749552869549469563925534662267177617614768873950570528382615412191381727047075240972000012793094068888172196495418579469438824405508572482074528801500412370726103634931877160114026802501606698132011156875341388747105723690561410296368924320240501453650131731830841270138653844773437795287776016011371679715026913154954680744203028887246028591684197867543626833433050624676584716852441388085488844195155641317665589766517432780115689482120805275297516930433790553060740507971570102341154394556737764454955293156593949406761504755471863651856683788486544830725413335210255534817874658664154519772186604348994345651732361059703243802188700593393836612777564610378497990636065794477184521790406566285401023769683728180471538458437802222560284134392700131666114024112560130663830419165424479594388957577323618309377263903827786343099916194781109162064547858274271541739108445791514506746565268207141477209130078578790840156155146592852798779276314026967476429645732126769067510417713300540293015669019365826158508755594160924922882715499376967125951623011751400729091736319634669286620112158004409236378387493013980780914313660583425816093277897831915545138331022334532558117598519315777756233285017700733407065002250034213011469608866225806935437876501167582009351819041564840178758928861894955439725757445580827302331320514768362799228049978758527014762303151721966445329054934649687090221206568410467898203902933913674576018254140706845856864311238985355773224028798415301265896668260874421193101058569627187723137306240418551904669687691252741620924063999257810872787164182977923066435474546811552311370739496905238983731055221927831550400892417801942622674021219064617783003709499827708571370519311202432618650946329646775502953833345049731615024579000542652963652779534276473577638963007528156320358019431429515553753830182646398866887648139286657290991869810598770579294728608616111370883030949349134658727312527778989066177954756307861745060762586668226212329068590657748142122604016318392020878645022537297056429482948647184002547285480144060366894562975965240947580125593111479743033671000029118280508159056533533663170653549756100707831321182994234525066977181524435897412622748581273527772765111576430170491283887126516790881350563797991553451732929073963940858230930249849955944068597089988053662053832409827882768578912685087071177987590146062129050251602612403390737415943614481766582816413095007959170044561619273330382218373174238481593566305974221716117419013670797347698638391149162218677992843365775746739147335895051798984096724937856466804634045077315378463785572117177779127780780611590128961516135576122257157874919195327202547435796363006950355830435831021290651470354288734562834079949771135091423274899188577142332615386560561078817139672080268068386117884868794356615009898971206191059490475492618236992230402523433469755752752645367931078391577784867219332981649182697270672117959625178633074875456538043669529407863512095357052691267961153699409044753308740211768182783078940032810383550654429529773870347909131018278331304251335834193893612947570852649471101659706295015050042240738873113118672431270116863545311991142291675184285245357403848824088688384291380592109427180336785496589858136024858337696697561760525336139971971747491222959412456558706586741976107089313946438521949775095250841077552289264108847069234730030019752699413670697887092179639614451548691366654322560106817157359776292427212965566744234098411221811307943153890222002221084161278792953203517271989124131221214395874004032407395186919875278996276426956560909338551536361430074422240346260741448078938041991859053623115064079054227064983700857460800491184814051024228829477108627939471387298847991695680884021440645771012121234338033910718643936595100722752876830294617418959797801468784567660250621279733746459917085205505072682952622721162456443986519603786433084630297645419135745070622778689675659716668039044753578136452106037030779520988501846846620527208711412142459240986988898375187210047821537285066026921112166752023400041492272627303697185092120994525573861349348777205403559593298541959813609625191822569224347199950475820842141599958785829420148867414728205351844660098648243952685031359395603635982160694779488522845119598037531284601080935440487988984105589457529996464450161215107226050280546906416901539043974619468749983828265081715276979020696972802006384662574031313094545779689757376220479961041164278321188649858690461134378556045417371645019479867602824561483651926133417685372044142777010953923162309157750517516335814619522991427906072423134374347634583078522573274419076936860459871468629875166475452512211727737119066388011273700643261584019820375225255863023107206268954429125285688501076426793664259162639273082120404142011256014620996054385222632981853171770989768711805350358761600310505768963986658725579314054102494027069787974570754327896225456904131345218209961548061480295008704413873622466776309010626310601624403964030425271504663965143072477451647675430861813713498569098855589196235030147155758776852832078877278411384731716672231707454744214020991040591767771020113509383267357620392970272441622588309558027607599339272880897891685351651616157629499015761229512904262876057702995748159578909040194200000688071883425648116483992764038610307467976229625642049287608882120546972532626878307799473773988445184480392957695740696012984946381754239139962213880042023951224021850181891364904474122455690711346954375698395996154591075066594571027444226187349313187045278372260336304059940430883081053383654854115920604724290722976370705132263203915530984702790492602582158423945877035824690603927225476015376465685454700101679489659992990176419953483936861490555720798618755620009121848130939824129950107243281719081304371757800702758917263852229512273172272823548245357240266446697394377616131668948879497206219878057218372603161226820430550166521140532187765008723616097494640803937304811682838845540638880177603184592307061286792704184374484997389053969477293982830377800798039978415409516018589508915622305828563340220687300840772067030370421666723793163108248266863338959056857710528891983675923037913970186446911783761289872770676946063411186591089129152490150719368974540645938604170883080170117143534365452853915904879216801156912519706861771180735785668627443228665959878897531589400350543880980279154020127958093662720463954927856237455758972639720461429503941477475657058138491570045527138312198313817390945019622773535778354235705100238045592611044042265455389112174082197774357811488109280018905958028448104803584773816133092045294319653400634602890591747358204406096991825315448666405874659113581520992044599574364631543423575094363676036440393221659999717013095766266968948706615182773935877358763534164187161597654717967886129136596034191094434588948022514041232787957894065317068427568439639713452702261766946605515404871922074953341386693591083686350747910605231931767885204368677533899285932778604936638285852275853679465517357513019757040725651873379354640664467802697464053424200295561422564963891733546344157492130374386850460978155212674773510428964800384877921625745732007357336923804421552935894532904650925091997405367372115960172655288496319368526430258647283123191123877125505179466099762831658088498187586883121541918325175197519982640930234389176575968249621962240892239911732973008342087309094519128875767265700711226208251567592003785838263980759800644871689651736052916118257478401655740067248474067355741016384701642422830934632059228507495125279863041935198053636876975344073329553620627708194295650258863294967754363467888333047339257425911207893210592457108464900201270639572008426653300501087929504845740584473772733695089892727247908116132531024445663344773589079927775567256352570775214526106990308310082114027652238241924602406432519122073100206301252417030895010327569969395055032717590329901898665468065552215972382488499907830048749729048994315663358307312705134641199274781686696594406280212985480067087551176082603963572005578307409493146189511254182351386663144195012756137185017295274104514852021445037875317443646293501084747265436270764536147183626298927757032047214228223230289227723764043655863203598582350500471540143158460526960765337426889699822533812574815416377714788313048893007747180578778065622934867397730013131917476136298154036587220662893104503792465001869709693476677888353331012588760645229861543494399798502604609230490003786106721888134486706867026695475436308611009906584902582166819743819411636194991078935713297110262567079719412976773035415824801889998478447015597419958556837957466596533600404783196331813950973535818198054140943241694903758779695427702102068575682661112757794911970353330255245294800486948859451395642525625362693757786109401612952638372060976288513411531303442770135771339011129792765217456721984238103342116487399215612962336560210787318922354984372881673325779194832115872249120560175599416621938009524187439790431715259462160587771511349554015067608154676720664312821248674106356382496035842072469204910130850017760671361842712883838516075569263106062310024771070532158601487874597433166413987283984428391549193661174764644115903165016813577208268767567415351367704865995211351370981927952941093658412628102410439171884794737454196249721621430480079493092951931959140096836106647625179945914411308611314803636887664221790789921013376296821433601330933601667915467235378685273578935637638086609667684193412081378914721663108169946548905731227085029722912968653217289646069876052035280393660506250787438623354867496147665091950902092129512922146384349717881821821147804416053355870869819443255591920474506075142837975833007017250708642281603507248655734109325327163524739938265506117809141902983447243828987897936727141150547101494014864000062736263288365620906494856794627998403004460564097390461256467650557703651597355170126573157691305313827279504559295771423851068360573327995669794194895856829791334981153296012058782130758955583426778343752435190223265108531736444563406025237282463577398982171392719596999014020632210768945473584918921739193131482905164198232407161818994961351847557642565182255992614991779595710377456409302594301478192972573218505594393034469573385596947393864879394213310617886916342357536834136460573632960816418367273234396375868972606889124533924899341686934663058547039220582674431420734000438980148392016221674116405743790671135782322643022946609521884300708525110329792759200313234523867511172294425915664828265768279498731041485175820702617948162857696618463677829656568866781350311774242566921156299729219255349906331961511265594861728763011382220806210011803122778922229949199235913989349912018243490204564246928794690662914130065992541717605720813051525478757210280958358924811462673307637505832165489889670216927055079729162281205186491695853169281180966092573224430853510670308623858636656730447459993391266397531517778362437393560950074771305902073785215022513373337503624960426429183398411010214375613828462709429544057954369682646983696542210092251436194730705501910061413944234730732165039511896673150232533658817088370892421515871312913818179361101646042373079811176804867280208871712287726743911589115400107171049003142311936660681244908851892390194132645508349646012307495223255782016376630501316082079934492654008086897502706033863667936700867626229733929098646432583165473651196615851624965650506707996730602677197582486680967766708675121061716890049199564623424759938929901539631641061163204518389321055226696681688180118398700323494992703482553172420215238592119591649778986400972653848100541788084876420859351121894877686746390526931673191353433188439844743920703954919334475973593518780206295462552017607162559750723532550540563657837223848262416714225691060759623570655370296273271353532615352717120244172258694907647113311946266128491176977578035426716424410847730459046212377705188749220238797675276687543121999750126051280778963572897266788927834409839641640182228895817488438521933976617775632685554959683286574685677057006217139137141152513974772784083002289315709546987730991760218233327433968371092036910494625194300482700724725125584833663634538139229184904559342983355836569076003319490931233061398543316005616096733967581983923719914826069107504881921199701251871856427110889240337476460148448928891590642499909893095465132513423493732143201756476504896904116058196415167899490111044346380119500810335458770275408564109235224632094863775583533190319187772262961285975640877065589906553097264027674372993452373877204250740351654257217625439220682037874926880223285255457759884712052221565934628147673204666767472426786282899090964221288042091647876419665345647900812271994414982825517323256676975061955721186614769441039082239373358868842128509713203633865907694534834176006245093906727923776447721828385036077186378723353260783080665542562759101750997223739055236412883425382877280264118111644068535250009149468501322937431597181423542749675255043851239737046211233349271439065187848352826704733824550346646334037122666368685268009317379548976295922282702499399601583461536351696956308377659607446703133690095340053629906208549338580047634380845672812096190856902621095975121103166729271367208595613607710333249659555821668622170538359176281585439366406426530345526415770635914711947700664548302562312663092440596041546570577789877175592797481176215300459316718830907940743064926450458486343438127120955594500888556751734600590223662873497414708346395705468796601048945524413275813982364221427242142600172391159051527087205734096986433823218418300995386929511322394059261569656208097148440238300226617042313999559105672041209531774826543636738995356564747421345964004134838452819224700721466659976621699350810999592588382960843872603756464361711804318886629745948446925284155071485666244674882375638446533639855008637412832101374045761104695357948517786654701427379637808963531357422714505448028080733604061656265409040520285648873324998080248841508128606868394581624190641570425632179109773227141029843206661271832158156281890607340647678369179380811807839288235428635880800548782810817487259277522453274600899282491409916514362669070419277908987271577153366037799590633364006404201612807315252580563995215782434514993596929424066150172287283312489055837856228279600134828365825216589752640831013819847761277516680806712109974620962628724703182284370350176868087796265540431287222548610746791107300909805956860335086307340303040100772620169653201762996574044235215827638914897268997098202371573617605537900822869363127613811348799193376188390062960423816076612404157423289899782243328104627012981757842006734070831638438723174904556571921650792163988651578298857976267678578382540467177234629557763322490096725915137503476812523754598834218132520571002615551220818548135836280928765517578735850421634992063527394166992711101866082969227320571565291032323674811721173549377806319099762598032700970220828229591244160017499977830146342027560845534000184623624198426919605934440427898999599987526816544874249465860727797457872389481864030770825238536171887162543405363192451010747217273069284330328793263427393600963495015805118672790841264795813433280469539662710174845013924302380452091212678730801591189924890541142560819492015185817214619784715921238744357870981299168521420924880928099387959476473407901177624237320838960707284214429245908431674670438982361305730005073709828742071479704262335268250483469050471909376086693356600979287472732843183198090766521290793584294858556219963640461593178248184129499443595624985188641814169657793611289174907414703091107220650979639161358750075162200508259042182365404498623960447486572834413179063640535459748603313934460777925393860745460687028787022545939302055238367512508275422896264056094243362942528486770480057533498036416985500160388296926558407845978045674620943218752007617291200471399085451616067841748670085733315984188717407044714999059637500554346725422081681342411252630636910696267427032387116351826521020378027823263102271216690451216899380907100864166780720960031665481065762966754356260427517380532380399097612049647191779842076310209148347109720232233238944630480880406555237559905878478605726839035488823503058980767339530083669859278885127461825612021453664340623389027288943529557497134028537278809081962203559753226747277087605513631547690550566495328002405468544338177506057851734289464191658461644188358455025847304069618776353479120263253962275728098802019377655445145871071592511572024882349232297091016652629179073610714925784376255929031893880732308271320874570363719150410351523058514806794302906108173138977960918358908820753498783995840404474210792783354680716762613300889796133635085547834392991217171856797716970780203455057428555895997177309085544032533074035302983747158048663618606184291640100488258627454350377745139510457899715427229397483479814816251777741472808081185982401388042589116246571388140391026541366095265259912431613451687373243774333152835427172413911006202657860881638964103330267874054252099574175281796122963269319260385638089783716735077665152970926553981285236338985231913190754821951763666555345809053049928478499945169496356201857830203904654639809524581481121996927042608027126790831927623457121287828232554634050614084361346977583912627090770012855273653083823310259846011251007471059514510905497937853264110341162608895473023261472268111352964372400158829646689380545711980593951610626194757392288249077652229424211230792154016187580458381640569141502413346602440875313809012613317170897469236870020262189385576574450890493511527591880499201129263792902300632584047935070554902904974131416040683730268238386956645412016791004898320632831634212263240933476242482391788587047856759374275487077138636993025450108044131400754431912933665356951080081108936774661627881590373563355516476404499620699939545443896694322887318328077214749232829821988638696885415262987379849252617679786542855283080385227589978162761970258521897551045968083835765745046042682512678472712931600478413957848358221631414839768735426826084748340500417954305703551303057667815543695520358839911549079180562631032058581889047044714639066017840285766965555428322243433893907541066756298641362571570383795975032968893149375524442021522017695869579071990046920578109733737147453568478733749278408311148926337448394129925252845806074762041859042074779048385615178446866471124109295260868009882392490330876624422156313709383476799027648067756462302119725180584343456468184295944089441313449529394432334252942817594560256598788515927730494949312274980070375903424678525446761669020131839000426107006105456895772239912076361311939170959630809468317981388608207991235538068356278118553694513997551551846949011807898292024872614000055009308667399866124060806562372944793516382439315508504869806613362103016691289153999600155918146211349174092779172809379555285362485382234045311123813124555741596195044006895190781417445392813618333913757277729259999698031507286570867444718228448629832060672959458785734851292396378710922467305815728072442130417078316144040497595617336896697974776553086937341854903108722703499225035031869468325355257266604527907379843100138107105433306362108923141560283269197240544739650143850177744074476791546355125253905851849007006278240493029439004649420219552342753132392727558443037995927679105802402657684636139671996096214948945748039509493063479968768618482401486702975654143825012830384091041224666462295572335089189946740345322223600177326397062253248219823011096144372950069000128037369145875573242755473781957856501807120161343023683676047858622696063712417436701814345332784275903965332591304739874982390868167889455236170678372156841637781109895183592703890137378585660064106880592656698051042248780283408773232595342312261061824857085517371257531409929369032552557561595198795694756506757522106103745741531825396284764722344428212375145612689414164722779677549717927207924001901929257505273425210818284071640854689062467004187582304694730006572181250338842157690236336189060468310798840669823521631875954153869676035277972271385830098521708095381733456750702556824677198828250184871451562696924023946817685595917118338709233189500789212275438134167561317035594475084853643934421723780672275993740399067997596335853887459089466022052765921431918737352827631286676014978358702485306789338493044505250147887096839838105470176286246515736902911731880998135139608248737611383915489897324229267288686004095144369424544647351172956134910665029678708383628160326801724024032010392487416490901557858669526144661796561550575942273121016561106487059376344082524614935927888680644433258041439681717474184511291994048932660514464052204405447206668659802144426588848196536638761315826232384102649882318252039952340079049169654848894914589085289373904206389090602025624100517734827771652508612549351619353584288269310486146210241731018547917792487538790602156480644709828131961938479381593172584274587173322305337988423886990178336930669568821017505963011106655100967129052496558345929243060684642728246660467333247966801040119768470879077159791125082152863694890091512186910324669042361214528656986021506007321195404851893275076040416644477914729911809951772752120372538629986206462314417298115107192409071949503256981657246366748376514646808734999963187681439215276582887469483909527323861570915673800971455428801027833228961224977632874224855579804133524319229284198431116759157836635117522164474915695101019334220977130942586096888319594614245872401205930963803005942391486571120686993744553038763553192982923641988366287170685629995150261651906805527072239503862201297975992600035093008447388161512151800292790016621331824547635614212480582091952365253389834024769096692743607300951582993466411819602432688841411192082772992517942788535226917800575557304019283300625396290723687915764082959731821297827776947572822142556305054779754716848294704061263870414377659433514200728260945038716412618728808562914890305733092704787022534731712935094279304040800885061292780907263844013026371283375277612160872340224463685073813153502185717442874400985696864282429483640547230197996519072770702566140043840864440770700210451707567721950982728486375992177674913988823793393888897199579431180290849484872708855029882877250083366123012931867228447512468840786341102759643589871046693480643187449700867284563444666920654759249061921850269445918780097066825066841900869045100197098590768867607847485913247289437142415700302742778107173947105924038647587204495694062913667524103980944780898882492417499694774881737260863163775442643468154601189343672337600801768885880984567067375888949300677082752462923127593396364423710700558740140913277205663187180061293698019796192058260030899009698801989133728553246673235031060538304223167660302867103987211285819648618089357769774208659278704007913915909788018642198803527138164659232907231763450032294702286437675542635581161345690885683651899188767790448674451538809384797882840566305637754700227752972350072424462912312918136623115571305472547673295289533587513702226822788423495061756199138904633862755033323990934941399259370826263355393269951033961999933312199283198316991036088362159098672479057905086587051368724713957584853364696043745998914217348220014759673033112409813009089935678384952204705733983978790632374925216065710217165799607744688863029839631330433518762015166487242239113186764300832814958608693884800485477045896297909775586647028897200792970138211724151798130368897377997341152814453722858002149843847030951648085090387659416636618440518076653946472575848403366379169582573791253292650603962665550601375733924663553815006336684384725978064687473146533750506065033486116904508218959245360499992558251310052399920651483233778223986483996466685906942270963542103298222289728715256464673262282755472152975551668825465061557453566810366432869833138798733133850652162287195381863583128674020706987850000756272925104048133527782449525128477512772305333662891445703235375795781042674020035518438362851312984341767316478709257427965831204784786628571341492427518087079876375435634044494400967536609405855307789935873966324519018699356940782630728693260392875229650948929762303032181310390334821789622100117242107889571734544565294902570888518997576173230187059730408372012926488712504893031831388512100050204437095521215139988929523068089385215444340074399262756408968103771671505692312786125259627675696665100913913327840992279826876396156169562500398137108254307568525851448093757816930798255215965516371853487448846614630730390246884292666493417871260609163258171019345099763096588774519620444161601189314463116381688687623039493672699167003965751026538505643635351189653669593583380559084335210200989815522699349949860988145844484555373605397665392920725320265662057660015195141996829346547473350437909503340757940236729354290050387180599989428041287779824238797857867278762449777249169434884593809406414941381783901075455975456666848071749536452789061962338185765044094677444398832586230226668540539598125572349669079168978199833996790557409705699916038138778760612290312012274746944505592653206311142341145884596217815541657735201994798728912033977105456099951413828768260197876226034832869055775653664543576222322763825413167759409782328096954384960237643417531280737107142009974973653478566194893778402545834706258667354666379848668860429420312164020689798163771005760328948315001519208860182882419337270041066921340025661078355872343566991832232817068234337357742323511792227723398688180544939223292301744161714611452459462337572585703719011894239714192358371180351851777576162640170811262289165708551873970705899658652307045042677992420172897753978741863840722750320422498271898466966901747543120503072186706357285491341377970199072676829232186617758853990533499073801071702089031032164228733276944648899604961303749519464121040496707034903781030652299268852362697933862199687980181012351319854064826545242088779609592991634952347937612153968887544035052525369573329346534679483001817747956832171016124056710330972265312654112316934884892689523913717015610580948126866100879178465435832656164949256753753909439480048057963697155819043370066330567512811954389009438625268425590160146220201293491099404408694229622020517451932780091623911604649468467023491886915923758783892412272159359824235690937691200549636108791721794053612369642042444475973254552341019762676612421172131425610623228560368288456311306493408641308910782283669825351516638346879007131473913353689844609798299459021098396902781780333331094531573434613189767745945296043908328061678482578453174190803546487556181487716996885397818832105479524513405041330426521199845632601955216174952207987156674135865861374896236416217833774823728014119959546553617548099946111455938113195688850475383494289639032225384166041994443008167510190248385349341753465417963141734120375621374301309069135563632060920509368692255657692136763083586735724320759418369088317123871565393184761446303579388630812660190146134844882931861789934137173903381811588536732001012411053115452638333718368214888574827751363450142442303672009375772723594382707618749818708115510923904647875448988535068755858377351086645850082836605269031750891373844449123122396744261584114322068682229600637145110101969143881783500960472900294134668502869963411492266387867874221682279674633081070924117815952920888682654449222736963410552966668785891138507645767657060015263094207793451371747680735465468191825748971557602843564266816588434623288114870331839531915475744555647017094920068116264328372003318774102284026635647241908806102936954688212521365855773245497534558643364130773204812244037552075009006860208738483370003367847198109203167875581709751765851931407745778836425134359766230686815045962628596246878206312301710637163265542452054558835556997244061852733285098850625279160224444001923246840333974442325052441039143500713746579424390635204816226015380292623072363405495944181216046326159934449260280235117487165130328746833438671478295355386337838661486600704758195629385489561526467616058463596901422090600337253691253251953811482751513829614217363826404119821223314975821138722250574440575343195852253150454796760483604981351075371699691446887624150715839081088291874200731604580938399975007108876324222184947033693768494059926294827057584836074682966902709734045150350682693818530220893114532795720054608881401404340936797464825715686140765875312939286774591116049929662483218107960946988258170074142628780681818600646536552909658960710310029070206564273326823518585684569448792703586483362028086088107554126685039033806071245579401800881609247109009319839749840517150746166688092510981386409589290943175252225401829867322435101674252067005233809080925278538112771922549552949265524588224623728869570300108884028357413483285973003159196444405893394920429112021483751071171155584003712919739642699033094477815878189782375913904126302189724020055392394349656037803581562915703379509210247585424990358235179883415005062934254575051558587998827644811753002245917207239182847209891670038193688053269754168800939739476828601109496735377677397483380070643354423157629715786573707481978744954310290603914707825201617806543897720051198004915403308410485789872039075008123583979338007233275309010436617984900015293590122541399410145491931392994889692995051588567705875720727023350888314208633585270142713379182732556974915960802144208799869692213368822385841703479445454961785556229619946926370693142615407220676211947981651181876562712938879034702485457240419663396479384746108587735544076317105233440633880298775827767000629814036196901811712494591918315706987429366767868805799766087619849213637816796533761407552300608071105916661762124655149442201112800431568899258713506338966963409070290726109957903115792353105858801114900158204816222117462417695006800031552122046038964635927787644324378415649835298640389689967172806938427312958511707071127887053128203611471072825096252099583256376659531136992133176062473354198578686742811275773715119817750486746384490035895384832244896101278621624863472923653149592182001556447613725542237552138417497745033069648924355537253273676394471457891109263445463196936524561607805032846219401896472780736951157514764078238515641482834167415520127991709106660650683315684285500090786561807868874603279083585051931223302022988351593036119524373934210220873560167682717412269409593888018154666656036104750520304901746131119589098518643721244408945982789605223733652471251128363811461966112672557250525972016173882954149335246927540328578520796661136903237534182474399986836324605160207394718860919117129864576419639673792098423703609138829712641660643021929119752818741149324703373036146257030955174621380260083972240059994123751745900118631240944600671586801970954207168640354046437048266052379985965452900231783477423408649537774804014617808044065776327021599047522910702294933647513815659688813655656351622921117897290221528582300683686915742256712940510994274703580585714545010113655870078354059730204167946078720809369295235464466844815611216693639194001114990738834928884772704510000303317065874496091613686950799804617924879522541973434210635840411909976323553897478269087050519762311906821090046131047659659307578849696293464190036736219642225524412233651268225900428125834012251490665537864972335858571146886234115240994519762382521776942408137002984072158405777544051967262193585479469668082490890600569735906535673052200817878923337115394216299578352247349741069936397982833621269707567476468493572805046432828228128422026665035142981102573786244106573215651477351454252565360784541376826836185871324252121517122007674138151984907800044918437732180950173324313413020023143686368448893959189729287079010708331973822375397031895428926399143936202252108049244387245804001868499868445452147040312455486465763909064508303451185823680965356007383669318349178463819386542179186610315427953952634872532959641065067258984733459858730347553691966312268625507094550788793122346243886561630512294894210454478323356460356178601317760412410074869799210873701280746947283621426507752276024290801032290959436164082205181839551862192291379943675997119597610235191454303748206291366860278721098516594259777301741462704685998213622633760610159222441554447841358029623137562757168148244280633639803259416394247378773705157226434103854127982938298326336829506987339853349990787211003794493876854337401216789853998931746693569841892723406586768660834089874559293218810305856679014045903395736808485946669690904084602278264171909899000884971689084295677660125784969402319562847518881105680753320375459121692210513678318750697473146530143402073591783363964465696489714463779134520782067483336033750116314243045056074715005795999268057760452495648184718982798100945448520057951475730333276663849441827799528982962665776169656706252459861068395783851393181448678529649384350469173537303541108864699020281430575413580152563121435932924944574505560283214730676759306246625158274847266763962482905758470272449747603129906122970397284052942673483444319822835961991057241107805945073852598585898696186301683779791135755526213071630544171626946396381506317077359381328461666725376242301240628036400135132522630733316531276519594331688809806530930028982788184242571322889846946987344048251476092831761541909123136728903169810274823730681126041279068325653765129572933692232349900892129711615328456299951400432127829844906957024855983466157516893750510395119760944341431383553761026027707296695119412383647908004255169300407604945988076802932571793522931292987108910002014262440694905247521476087770802835212786974744292103517373385706004621853354362316190979703532162021088558146618975009516400680600462419738531873360016478075826965301511611589681972641269520688274635953026697160471065718673538106569689177466360143315581780220737125969428066100790369669730660852629281936315521773898258557968526616937827616543710955130847254070242875963177209972086366370847939675706382142031856188729074105702684750619814266787162978394494210210078385104459848597316260241042416601898735590700979275866549771131752303780303806573029496086853500801948950029660690072904530402526055053489613785400131823221555669833956665090220652925904928838062368976098689127885080381022661552759477176809646224299546481868566935573471185897422952739194444319501093680165672671098896995247124017447871414278279010859458789106143143563590611292398552453571708552247243949529107192040140921606177363850827345319298507880433770158751658361276014264740336422700426442741580427343760703261244034221944928159202780490052524581717971201135540463273710340059683214271776393230693133829606747282667587954543164640507890248851751799059080665650078397297945590174076128833634404802990544348110382531543468575452237717457870294675458653674004038970793379485676790803283410734377074318159857891137186904343973233117575530989602368386624397887869939718260535511218122006503191029486673137203191427755009856484369210717591897543374048658257914865452458483040210776057559691979561268127373182961086431681049904920125149518771264121880301625464784507443520342093207577626040668838367784468745958304907784503764783603498023209333676038954090631598068544638706537559225067887002154752867763996478972965534770533699350311962067686275375514689530674747657385851656639739555239058509733929860697541176675189577669820236095807077158538882155474112895605872516157723981096471003814411851737737034075312040090061871387977856624646808356897645829787296161445826103702950235178680636325753467748911892001532797564007490637713130010705261293371898130539737272057981138813563960110360317492880936465727291459581328086501698285502372761201091568816590197724702435547533434333970238751889321630243481938549600757333981015782016485046051968719310967912723317992989119893128294453953993620919176217835498206769662145507229612144635769171178041163746708039742680992701884139518426745519109750208538651549436164886784565148809201661760820758685781186999452053935450212406833027874899463769824975770090406648994259593372611396785457990701297361856512076533550839679663119802443290901016823060027565314772781594698575849841332144441874270234481463675162280527458664300592636910521962815207476349766390743365750496065672184396677950527814444786104523558072515498552931565410574636242998386232704575588139991562465485244241621297202013172117227008323720780423907190188236964141446825556489195936155422352712550126496911243783810028624028722421429693520444764721267053913339321978583861288740397136239292614080121498032413096379768384528631144648243633102412116614924386468820758827242122831831022689032531567059126811890893864489774557337993795790702932742808748819390421911013736465409214838764941631282854448138558494208223585752291210826010565966863037138032887646941703013665618528501526952359316662834973552829587626294025449315484810500234131235357284453000420719895365503764952889851305674017284089570955910839147769076182776662723586538329841135848124428235490534188939623668269165214500662738616839946255480206120748434035998489652927469972072116523187187329962882181729631525384508120605033081529779511878155670867658362427679619133728158176141577987773152813013506434918783362448513068160646726064702159436202166605124879644211479216338566500383798306572890928371511656916941252506570073346993300230592984996775531491434105574750812039213884363926122785940568353345994451830929610346012876413456769701244198674728112985547871519695264111780656389683808511046738152398375992658003933745126682792124962984175248894777528543215410330845086141833022994513277231950229808718223686548261198642642950055168362833955963566590302350483771225580967882410313429709656965598414051937090513856521644200937788683067405786598222419036234207370555329651673920999775140804868140737482287535724806257812026260390477316952780399202864541328792827644250181932532776704397027212568254787061726050574879545476799299585186014868038309309846102862804265660190365061858421091973213452884779188782570774941267064522031628483059675805957156920524278743155659754060937707436359841118001612597223255877311639942029320389877968999712458339103559375509350944092512896107154905020771510530365754834750666908476803594329325405741581113228129776985954111381493620682766058081214877189841860611779549813784418197088052281264913891746209629326729112249989000721522099434360321435806607778517199864782927481514931944889533573380827791520800020170203167534476876072448454044552483817981291046153753402556344411870074640378213833694773207922323180417598485258938308351519876885510288120079433415425479759036361898246807212925240676954473342811040953274237059886302750498851517747702429146437946190547860689781819155396470915308348371861274209975914001361735439714276054446504750572203459412872244542328740988658956988051599246023106287964990866427878159368043607535392966247354346136080058411607239459112144899815763151336253704992147587956715955355629990374669298456390825963488038486088697534398720185297950581396824478734040680100524431879813399564020969719104085733787691504035538028358398138681849270544564028057914509225307935087088567038961019826045445495236411036351173480180991687716844833925556486409672417742513142372356716573488795455787875385363073243880798136696710042179056014232237647025056271130748158532211455876446216306536107416589517178926959169291965255049789660114787472938982513119658098827750948074544893121796247505391718478838456056041927282051789568087124127254647848463453561214331913775750601570262044909602056781319260332558667405528180334970166805204465976236932088419027509243182655263691677316419594105505460355223724853959631859551144860688597105811870361722813438299620644776231212981185051607369341766632505705844227834822785949160172630041485233300482868396305172660321457863652834160220050310951976365890725839569290309520850774533763687046152309110904365559644343944898347114235716237299450566794018937893487772396213927638442611499212968802994640636122301203398657789495640361579455275041547797279380267106262925626208803791713905773174267174653922974609751029393987910028200767309058465828873369872526831789896466591156223351091789223518154494641118304809766525507912751939598032623245595449560241963155368221107106213442470374312366465230882039688449309164900390715827813109305980569635587728289037535896028271935662626498828822335404034943724621989302384814588673607728281379807430209723828128736126011790443834025872830564991241579760813493054407715442073620332488292757515070973134776006454937182151646307137757782420617004521211078873013038901119886843023039406405693724354774960262102215221135893897248492542372013816839815193442253173648622265990412005839995314527504066290026644594652690245654047857436502621387804836629143452346742780603575968184812665160747675420619959410630730929168819967998267540387614374430536319829951193594842432069643991346715189871579592382115225302037305055349326492164198058942804092201069027956336307536176564066914910093491009081616715037269609979635736728338775385477647616650070959248639581068152317196621852572038186288586407385306011878173460070367695840400476875551168735865978457711861837436204224029449594618469313920638536087479590177178190689762479250353613118488537799863745187137608199556036386814085991023465998553505234298790218451582471548013590709045874326306009201779102401456013186629056981417485444443544383677870804882394972750181276350477768379811992460136958289253925829276463230933904948301370857843146471867895279582841637080496332431865235035137892560454806763067421318149243467378712428782577178955089446095918834156408897917467109210034798539430193426395718062227562861325342674718186097544196292043533314270820730096112415806341073469754876518349338580228911748134164632401122069150999424525463104255905647295393589592821928948037991647705576461441729245330828389722542498116349013566996533129558347322536400819645323031083798223553264855725863405502592129515402286182751280214901167492454983082038932123145654276664480521245586279287713107561654115605664723383970745767193911665129811041692857015931960517206791600772035997431096439866004557896141307293435948119578350845156177321974147457838928662194601472208028257550393107428182302032454971596499305568731305710754958500056547552036291460245281973876265654771880469808269201367438653975168502989839394446560173257589930662629188139731070115194457899582895241183164680166867729438619717370266480231520779150552424475249878492631216552457588870768789592294729800557880329724774131822793145716145411143208665479154358116394013973640422642084752391072100427745218730607818414652065559856765109874119816531181440379094594504159985947532260078761443781367657827598275668851564520497644233761690045483879255630256603393573516524242846814454666958525398995597490402929065953450610641805652134663267940958087316496615839254485444011127780849009793353469886842281844379664430787366622504713473872772845118962894586929318605605695381424817878012385074717847814506702577834328508294345451362046149716420969276014355882616063535151666081744257594062243599000863287472496419055569468106313669103858070831280447438105698955276593636213718031800329397306890097055595622238334173729837718162453795729321563373953369874458758784958691199413387768825195760290332480611307562069974841447901130135529895181555040653347658162810925758646446812132049097267636400101809700485786359143160075500514950922677131428422853276159056313282730792769626990872665262452531602340265797880550587474909557127442622603298678078758484756917007921232490385222253920504167402427108300361913144213828346469681275829797136943862457827733109680194575968144516022994166589262661744798690179419453886643290195228793024029998495317063709004332653063377480439335356703456084590883224387448808585305703378329731134449359962931652395670753765780053933981841903253048328458891355298002285363690043771883360272187040532129692808614580302209091666400793317171028091804742238965056735533574879178065349817243257309056715250106812413493904427433160748369693400385084496066352226500027317777616671778755350032691398064225490789781911188428335368080358047273545085238721950329457348319973012701279523585043986580763584572718993398021840049188807504244452037217660795723938781762550952111813631961009209052967564582624454254562261180013020226953807635228555160152725252683103826018033731580436215169134956701899017211547310057208611508281696563919066264842349061582730878015872153818788234854149224873916419955436749661047299720364700187962539970390137461928441888835511772704815614723470038593478694209419127161600403730773040430223672181731255667351523799184585027907231007467767507433258334919509862239823075767001389253719487946909893609215240140229677310821794026497733810697053623267857501265108905290572336987093930793185340530849031389298600650804854273782006055826469736095394537263511060902284526576709975546139131203954361294248619207508240077656151721576912669023994998335321917353804178149386108913281583868434733804312869290318230005452569797485627011851839586706469051601874292143939917529171689238887139726457480824641791993040271390621253323474712699665800766183989047312980202544724500512155870925040447629812387533798501463452051179006967078519675383759787447962688657573193707545643733764639845021508921389399750664744874657428067076026611991542722443304112044308544085037749541180217395935230192443088606034984632413880573918824375419081971103838442883850972875188989043726812078551091863334135576598657315151002827003384923320754355946406683629332402690049031975599600507909546741241143500497143427732997667801692426630907755625875017411549426410599857776546508648931067802104813149580926290614076349731790956624895046755313330175335549900636003852587956309603754520325056419706470822992847315529087906614203390110199194805471631096111794413587045371414710085284369308174429514132433260837683703094405259356545724513726957096556286576277638772121221849520573097578199580910701143404968629853647550202363786498173109322517492103799287217737112745794025180574404784342661784515399929235733426559923248615986393123223775975376703488288069845128630241352990309353121870650534636226237314040378220816209227166835528885958635492428539446592833248800258980710638925844298964727249769150661687213713502376253583213185556229238087280913012885340055216866539510963616796713041793587262679131691376020559770020880412544223055129481098921298909321996369997299242373389275054945383654550038524615851749043367255818069747489231114708766096577044353822526991480036396276502156450395613260615476919591790761446287950084112773681821566797303417530208856997223302721973655561366880606967699954945221818352537152766525937373372077630473249196911793042730282965974595081679733947599152062007733179097507166779664597464587290530905190486753837653039040445104821163251631073858432963544198829915445950874919170933405200593189114430999756372024493564167919682565504056632126888343460824841998062809226442774374569176292804241753714393814900749474143691083709028986031294176708472280182130242711725279677061710697754085700046255793195921077360227352397766443575287349417291276188720909833579204492676275906041912663115335090206131835615578637631151814121393002450995156834636944990856873524838409553813461245935692989180688887218666500927679761820581653758226591628034209895200837690283571868530267170598045219749599120260646738112677343313827117136380659829251708922074139905119854764805359760406864994242713356519796707809007219789806460871928100854880516385072561100572610490851382563602858688921577120528834567650785827484266676624740833409996513984696110595427784922234147126322412618262366910344187331553289556543061760234756367360275370581501019409017492644290880111115454551674565923302330807082402995469641386554686908114325107503240465941447272124757950183840293663981838602812047487635309439214314592589812045840267024485559019065792292324781853537096468023494388533560770705553303133814621228474343429250154279392705558237995886550150384956207172544681502171440956962747525756009626882786912576064187562427947928874076630344851864219362616758014797023440460624321166813778571978299497920123903800025265238560578992602890574801989595829352908990315452371749083025484831376470208973153982667000109613548220081090918937489056365987015763432750370086770978242786020618895059352406783050286143644929496665594758254027940584373913454646297578241392437342439742143239923915239277041050960756818682945359730609841692597664703387427269395036876800040000608686706940680194946616431014295977387554093412784709074007037332437452536745452776732222695920921213488936224941253789085060913780370801321470985516517130882598061467440252958141866197398795743830772783946013050671301563149276608217574217271708222109005210124724990009430511803131885472281088187224262162854201611858100176022593671193300193954310739202166671071141384685157065290966845091250559296372180085406041831421058587917070485566909079470493486987144892652168089546244577963156503952395448484002791499685527859199363864394110543359938363728983001864287813877898415160843757594803893116073432324976877080791582303202236655098116480656255244963262072830113245243246094890423179948102431013056528336955922745047599392093134437338323033619442692605991518269227605086749259563044622397129874500445141916646186290339568583875033385286420227348344268240304539926226527992760365699138763879743978592393461967496824852527935432444793310107420804191119582412719503521463791148988331691293684224170794611099259797948472468882300985529698696926042403099336306308856773304554915427802996948467095483610305514373966480696788523486012728844493307657792816317128850719629902355502919775559852995656027508980583566922142422904805971496514168590331917062777970064865166432650781289967339201674436955240282529423133371722036011261682560324802242058494189297649174003258365959524477733983330280981857433678593342777073309752862779701604992367359921759991227858779429533787837369110207747987018126774258709695086138761986924642284360113748119555986400719598155237496033071366329700999489860530223163707807717619347241940561547784554916440679735679369025426179872436425726697082294371977537077308658347722509073608129423594237558536933668179080572367307699630578046558763405697930493741852793789355726408036924547648042093862653197537819359716395338550237189263410455224953019378293883499980610978103387994181701936548227308649510740790219818641354468180047891743407827869565896138369031925889260345689497401436049382416822480899088211349422229302906627675684177913011749230084328825277506118027471590981850770919276380484312154637542243063807548908627058202108974160674437832502194320787076072386919311118847957676921643038655866077275728201496864597143655237856301911185222871464674003122589954178181732401658116115252136127744546862499191403130686568187081795576675402485969545509044533146923294185882985829814828367902914587930331987939842126315260136675117295199073703247718879396378066736425258032842360560463672988101762797622440522132380234515515399700999959077106431329564623384515344759905723422920713380506183683050933178439411447236423873075294414289214983447527107833734534537072879730547195588549276838895389897768165659908792265989870157284518400928007826577226844339968155343951581836790455585813749110467498554137612747184901332731851154060222168869711255246705386092066760748900670699158827629222102067869954723516068836088568475512008210383008612940110708578447367979062317856762003738609894159064516076469725922314938424515363666581991820292280143271819959762156413651531441876374213014132384828643149825618527929482236917720157294223378089824789634052885139924807189754743239240901386424910528143781527345045636661195729645471432589316447651204316157957684826741792494746193161445459679187027754289060891728251243653763868449743626432200146680484945726218746830785289693559751702594612684724528930660374459035867086989015971452734947280015606335687408322533864901436773433878731214539523642954331719840962767741334137035789518442960313452381638672289483122072164221291042081874461026915162596933082711873219330351273241612720511127897311434946270784783608545070283155191759412186404192660683359274162033726392460682744038015352700647707234893810788009173746919469544729871610682269046131724338946434863867403217424368216120620316627086558866723810382437039865508604672748341561374829809005055238160594857860423680026283729019214639843426008135848966201741325134846998931996845434174590285935261995036283632820593960541197343246193437106973306482653672831313880717404583914690501782749147761426123666184408779484182348940958203934025980351352784190453891380941139063260559209271295073938486680100161529230138626047786730295884378186932556244162766588663830669968965290859250632625996818755193373543684743755186825094311537492731348947251048283918102187586547836340640831161865315538839903517077514571037487578909907948609198957680544958035201355644825526316617054954794448903071669523456025201632803859375421497232045594601151053669813793912851841142046908471745018740227070921058621170118660101296111874171225937238891686010665179539477636638416725268226800076381060386858462338141792140359062121540035384260355708548007592926651378001015405010176337074556388592585965033040360440870216831648373076742165421901227232537263464230076089267783326842420380294383734331925565501154379369161683636796621002127505873907785400809881361109782256002589381978474258370294167860573962502394608170149588112273978992017879078466583616437677437077944015824146177212281465163358935163046372642660432055560854132861651306073965524323494933004908500306761264124906989606641455058278766426293486057877304509742793734931895548260444176961162629241229753707281482014501668635942631619440974102847655529079210255936794769209867844018471001289801994536683132087067056759915421552500288308925909785705075719079395346078804966978408212614110826619534740285018703112911976622484103986618636469871894048892434332551583386298177069872177942410549207082003407139542491700398835513160174912395953356183765940871228464420011939240974108735705508684969830580067387158617788056392260210208071182482040725431809165167843048941799750973620237057809285288214013535128931722212878314568398463029678977305927358188033800822372575020264335056420079365619464151958311999078369951350690546909729141699204653358023096668052561017979844862063758329954196199678391927184198000564046113621510278443246289900083379892014864597945210437727691804670627959949715182987645323594403700681537173540984602575101350010519017917089677623560118549352327981810790514740310679142253757740816669530227345348242788644405118009973585336996749131223997021665542711196116352759135363199939102717816755203195797438665125375134489111100811956768757711500044614171500100390295588602614942545042738418747172440676740013381689280194240745189064759310799322450234673888702172145833981858388832514577408573915918919353711593992940729907332456345983402940518458681255032236091208978924773213222935332401187545667039988603800982648353929142780794518873208730400189076716158158041705015642563381393629251152932985913852226587986819955819610489492919083464913660526088555014466633283905321585036636128393770168788712373918614213835411848310312065404575549154293641244043249366419549493733216993675145440513857689367939590090704173150428225821430262622530607421913636371053207440842912715641211550606656809784526387998896760942834178872741873307968867709465350685573206060011471023414905487635214004592445397612350150466829087209519135292964909709514638900695093657408285578640228479801633235234611846299606809990800811021332875162236888901415905755355759154359976672147680367792573705012399401475452533334325546447291337266485448323653866795162689225682420082864241236084751570709807236386408014473763294961456767166302152733171488399597890045419089948345073879901337973219208094429745235986237451858184996515536976927023490120574475488122604400602582147239506790127860468199087056866342725920215203030754958782909932037483566119018359705723850926402139085225488520268526322472295440021615101679015749929223824751371078136125108341742780264340110147497074340571482131959214581414179181252792955927615146203534875201360650594601150014145578092175273461318760872114029971955651770683134426592001738863109196233800355176451689661938998681087529267848423583881972844684038457751725489808389362602027999374142374853096612486881706867233241032700764061457094672927665593625434648494058304156855782800395324170453848511561404892879184746862995907403114073263811416213288925904829186644967129938328146223480092241936613111570814841800739175337343235418905901821915277986603220197773821464106493357966124426470592856865895856158988363172408348803849921977272619359054838978853675656497439063466229922241456926312233787068377027258155022495187459353501487098611369678215216331767856645521500237051273760880387955428290276439812990885526276989722090949790042258570094716545239140367136961905648692615570408591441807972160314862381613995138888415712081062243570575748734899983395369073324816825782541214972169469835264332899340150693775416156033824732117056019966057971857987319145469219221015353929021102452085791091072085444070886670867534453448476949602397912742774262355913661512011864623682990217123959279383500172118158124808204262113149737629737801708512355369360017073149199483589018140011960318769070512349437151750221020416560817068232022766194676421067211813739561686058855775471349031052368676699799713301948002486537580106091040197367287494255473771028508917693352892286544299246099834835077809753491767594655746841450133376652997931562433579250049747018485068612439444948374542411523110323984729314445947925453390129095742793209087162446169056019892517511880564915665718142951580955786460900616878863941141581508221530855681443443532603797263207759462955855584683220055466990415270522261483770533288800995379532621733819863241100873485321573903540016162629983772523199246811066267278000715779367881951213103646120091151599906166048267686358925131336096199848700731238207932266924149125815982358381684005037376843684056923544058985715863089457401498392184279556087833211197104673974021029976206108878767308184061311171097189596365027271662453504209016299223293064712891043779718962836837726515334161260161093440308446524907613976342930963377854818268431303020303478762494658069146826038823313777022741490608550753455031462546576396123428691868210672893961377612296536058332472101552898426027098572131525588420097748253913820314778205728642200094476465926052607172870239537229985935058374315644137749389678286544929979084006234630256388874600703580253625658836481436795949790166508075698215007552265413757509918659036943007968618003411464960718404350860773605084726485510311301782274880871115781902846894823366236464960500289637293882522109108824113502670621548374056586082867495477492547568299009491221021937185873153308194493488416456315413845998425131046690440591890040495260778581965955730214478225996144238185177771358902707146736710589302031068615346263711796973201547381113871626683836477156456456967568932620820812977493222014647815593096680297739497645110171572392778655241689828974604111148792206365912544813419508673019568663727701839614032158669966398214745249214076629150050457202609129347798800320427400975065781835945779668245453282082573650293983942284074989912961870667940261711840807885742195616781801664427118650438165108106850976539666957291762206554809950761671557217232200835118563469153248140800581568262190267038257708974515813124208552773431601249395203930315198220956626813889450761664828940324492991787201999673168355226706389591279569319565113138353924164646747137296949372432648372710299767941971477920215380966838001291908607256731549470095984856689668312338212074125905161050678732826433088736241081564129231433505403763481966165536307631404373725577779347869653635805108461953636692887603141641665763490821810933075450262111293666842952556404865710766040056739992234061441348591476841655931472140083565780846925999675033621338302272832131726536330354866299818692033971243335008394941690381476073963831887616912054085249502506882347017111274659642217006853794818746965509075868696033935143533551638497823749158384175017306131917966842327061735170472911913709406060360059780116986659350124391724143883159954263690509459156609788799180555193761186486229096087857260494983613318894073954370112919804646928776429597376279554724391360077357375922150627823408095643754054659301421141185462536836186148066148715375824891806286602681028677244053681404035540593017048344791753791799757262120649308863397116601615561625890538437658197437498626278987044452682092869484791211052151713788162294769542363231809873474907270555643876263713829064587030943756348952014624026505598101671178893685061910011907883745175123221587623802643193568813281643572400948938951177144397371956238619017865135723050735518086975302310683339536509260220873387577513563856702763659774398137758780986309915771266983872770447616016277400209308103645955187777715653641020878765804891549898331276804356554282201245792125640361384135626167532956905077575517156873884624831586799214928831370411182861996701528332991535243607023692123746282137280879169033131970275986122732886493337254132924154059550465012730198603845285625271824487604878850654238471044730231464195676839230892607054272319575337776572053086020318532703925708366314667306473115092210647432617704224960883657382380390437544997702213481275100188389626446593575912360289162393321711553103425907584903344267497901857050174407504189154057860422149667420777791529526048654486427462221797988175362806438830525898025992510118974809600218858028343257561588314427546194210813517328269938824660530153199269865197256942629094912593541575124615156904103043485026464994187519317695912154108809826867004648856846944111725654384078004975567695953455515800786408591508191894372064517203843665387981656950110225206903296704232883090074924373726964339216387415674820051620899601152547215622455094396428762817943029252414983021795716115621402323856648775644591424558058625374492063601942364316046173392538812239652826060899532349161659137108331302667892429350237050212454152940427037850986821523284387310011801884129691524483504334095258742683010398797761557373117854341484741959566277658824871788967577922432041514326073464866938531179480282492719474526066970440150720406779302880017895416659341447626725032486614227077035304815853981053291393600601270456369373198146986855456911838811692141692548374855500529330327543433495874006754705350897733626019797144992179188889065771382511627012439521066507214536343623405664000222836038030379682020852229340657917619433433362533078398934258704435131128737543091160682663741751034412784470520730865310925560770686251754666148774592708080121873861298240490401752223908216849835366110476127071819331632166353681172425192074741232112050777028894124272597835067731048178973447756332527762819129796038031138424686529532270234975288820089740053992073947706445558564477668923389275204588888451020290031325787084991521947048155331407382425602536129055451905876914565194327565017740950579600479805857479580810285031062929813910520010216285750812016120722596770336690359430225177249507765757803413903565180981198254562560954987036516686036351625021071498679094594714389659946355204621438516266507906802221796699006928533548525388539498663398335804444776731843959140407423890781086684714997559679308452132762646403878435368096105848746156643332202636769252225052958263702745360214887731822921318410842934929340564024848522928090951139804745415794277695886156933921546482538433717790687310357688935271349114635919247692770181995277880455244567819524044877706012331744667783537417633893121093667524498375579134448164378307430930998494529668497755442134263243343011431592901738393286433679587137183457793756357768102036073605395827370629867771374790337663332113560608199749576162678000191952802086163925242313640311349792665025591757521131398024334808383867147824548778851124799661798124198825784618815744354857702258340001900257794986592167269840606783456015115200380921230635572137232977444078239986029793476432990720401827796012681557168734115971047569200386316295641084887047995147095382182571837495706412117304796399980072113644714633169146751302618861826039470609948445346616659478355438547393848986546589071396489589748059694320129011759252232408103237580226998810281978351436164002779110610873222600026989753552366132557056213052985873639031129391720524192938451930476808997354012831568479269695452353994583017940968810273135167774807061974980660925378089219851027636436966048600718571291314946757139347538950077947011798210715771968476212773852100046513187140990815441252531879936225221411014830622338207382108465591496099964032900170136824708306842819570582641339760413956779056235751007226081596350751327084275164875018790128490273297155453154905672032256292208666961631806315350474098035815421036274010158035477357954730874866615965276698321184677117033891066926993129969419587962185058481419204577474982193671542831374814670392768320574596697876136512519009415905407402379389496454082127602957993800370387344841956404814172457437136150363336938333546285855730561026099199821396100416406120746438694284795578734954064623315687966404181846838730829715387845813086199425637792214679325985914007975039740827971773100228499743686485149923153167506084525475867144004596809812716557727063032191883345513019215606150670096964852772441783427316593777830372345946292252936544417397221155395512602453673307035687295310611696944256361808424983619217744696567163333124377604371601944516944338141305995697684936313257140102519829245387582833974689365612372352175142581034298158539151177521530992291853292281166258261918370195089562820449607737034992634401965731966950243988573556228596217655003587133103036399888300414963344725636494298931690879240778414669553023307184096893532088639471285482566233575434684952201318266782725766249872581573573868981458495924623454794779913198610314168390771923249369323751675362547179908130861195150993502428223325212447113383886378682388055234378693145600369669913145683281595841984827626534747491222891670826459720123143370970279440752927774037486452033894903147616971372359545996431265141096757589920333696365412950828337859913456783452764183224760579321343592777467263747295879847092129594547451732015444069003658970486031879164512022033724447888736353514586973311588276905261596433927329411974778337360757781187798507284455382268670844076867748755890879035833301666273532656847970094797444588666835587363761090554713135974686281545505838965759008593174926944981998865413242259151598030725693311001240341837339703332824383750787158128381184987520182244767388489249858174639019748145299211380450930666630486890399398770357535688045504320652316476257803945317932860507044498168404025612978981691582042298150741130740145582771483696308755895226443673243135154263926228120391816000187220643919250027674459655898390895636792521806142825760155889921174678978158427302325902265544173138031530818819375673024600518497733723099573093286532212628913006374306374878432995089370913659397053995010807590514406472883085458460558349144972385303917320047653647674978725142271507982504379783226138682815890895424110771566093100786751693850171428293716414282954713348963073337636508337400256696805847370873272142404551846475865163040675827419092999812135334516361257525355186502668578239263941938779911176348188724250379650628079377116533783713628644731964332355849549519718253522275103640819166521125599397928492335547511831125635796317437323186221627419440920564550139064103250602102350379806134684659253687607168037727224318307794108328762728881639209561222230691967537464645314854858995406965113232715960853424229575204339441113874328746886165028108367190608522776910421452494510027159821913368116179424341131859077182381236285551633273273605109497984920059004418582312770659992337081229801427506368034915823285170874737446983958181269024850859678706358955633800592367030200742954695851549495504884835924089234233215965094976854944947047395008299518169961838563416976838744883839276153075596899616444480538993928111789564485771920290890627529121816977914646370587988077592448862434342547823016271260792139101108460391271553805172039574204058699888923812768060331169383261893515608625446015027660512487344092394000091325976283489928379697895988280530781662206155709912925838672409037772279165188374141049623005435077455363344469361773467282293901270711537059710426080250259340491997625326702267127483752452927694278342031780756944514398574728653161156988243543479747118036190375550680551552825216810443634759277448300569329844470207574376602326201117783745919146726371751182469099656542432151096414692033827890002906470293484488186701868266505132143150188084913680114056202862755615694139075895893285524394019640052582781040146485639683699747977704171973229165399169746709182340450925816056407856928505235017023610270529371276230272817859711528688953934510786595786713352874320652395729434365912796923388086640890803113174737896572814856265817124047475678807672551412618522380664100925671998921581600933144656378734713689426229722193017316511160729918744307350432953650056263076189269533338284777327558244113609546785385887920144428392437077265259020551490598918699572954153587605119749292262456207854340444438507423200431013332939245843722121404973151277961608173260915662056279918145053505117488343462824303992664711292086677094146555351185380399768441247519493810522982604770262472222839966839427156727408101989070114428946973263128148941209597281829045369191014467006987977698263961151711976091090764238309908394294040100700234374944454426049164900425564236640445299511658424233420907210629462822378937260793115753151080794630851276335280037141671438584978875239861483673245302760955641599253690932304018893153760323921898820227603463283468240338093277693363695142766663714772624194977816449437204692490714231990624500828827838167145986605353655294160804570315197778346852338810966424838258005499333352182142517619343518460143277734540322992192776920705666121775972786776394011237523652574130973577993745384328330997627191801233853726847384930382674393423702962434148316234042616522311127905104563527180438127491086322472804584065823006592631596413379973599154606590176438401981666297602724192823057275497155457998013580112635817134597193553562863554500758452683545520054325774325164935942108569823161809087708861779016018838663212274984268963606674675619812360440566494401828540009588177009281510473232104823834541761577530478911681215481457371769976239162878009118764059653205372196969736756761334156430841455678782200450140079604294017019085395776746672294423731439809042606169089956002317088588185744890969718538555446267400249636406830441179133719421868349461180245830774439594843186019406415532148631740058837215376712407068396663930348552152513565776293431599336514882581629723266558376450489051596795875358926625720136118887245222325529161643655747339795662631073581273711649888202856030673616920457987646785783967945848582264466700452519910231745434995497379142501751636036575076368308440992716636899920249629504471236997818143170444731278841843813152614043635721966333717268503150438544548547692966461016442724354377341241607579359351288819989931840527735587551832338865154546357704244778514864496133119092725702281196745115587892699386776256642031071960043044785623195018081911920113373488884642321446051615689147635770327205140510303302735458984532001983325560979142741369562062085028977597187827083855160669076937689920464580894639605889828624951002920411982615790152600230783103266771211897512794447594725977465794117342723008658203171747615225206025767185661871355787078245800506606230517355786401480246570968846819048918519834224692107382229257478615770834985210037166762045278768343060416952782881942975077235723423375560395674249275876470140232932719406857517495866898736975274800261919597255384644292389505003025431927607677788229004267505434239688242511785014199745489297767648270032491356590828365831455813994988083242017166827163837666822862507294771002817210683050524289278578652209716970520400203247614899035730488654295299431880964787088567296240644569728883754338027661584270524588370283644680735913805088239443593251543322429491176255583222262229420838905422416162068318735692942027931311686431498385375615521220886895369649376719879616820477358773760368393297326663566412076588493220119075419120478633324485660041194531055517713295774729591656605970085796228051330187670480134745676390109394205761543797598960126040099025025207918175855194847672437621404700658125006448201509968430290021022172704591424354587598591100628653713719687499267575080985582976074235654653937371601493975704468050709793871526852397549804229930306822718423966453318062168021555832785343739737801212785319248220939453925052731416385632245054263376457072200225798807569759086918455005120138511566931092887365292210730638326173712189186880155179687961045172928971186924953484525391704725018580666091416814741342874064741840205020164382169060374620412824978547918455183022071134624789181945781940426870062266853838423817993130847662075944766582237832359728290648743416173259109986475484024112836660947160655609974116166074310182918740553607689330216391944086289223998929605446521113491702528971328986672750008111120849780860130862170543142729885018196393912798064247703919934330364525614448680161219042571298678358598617480387120861881212611482662934655037842048361346822756755493745854860776944233103237522446194697230146550564452370767365530455416365409641185181639069611027582820150453766264031473418767482045342441439906691288450190903609049308507239916045056255416987510476017142027194346539346304165364324555291584830046592379640790946549987246885517420037774604595538432205980957609042818175769412149893632810849493141837696138550806721264976506976966406031052770512749335904119684842941596665675473563209669726436861094619928938777158252291868213060732102194472434486586646873218337328500769199506438402666747825418304204902322898054736370022667304524919378425501029024580344128348184114691278971690337294537803043663259752824207221013408880114507804031407843577456095338192725627542128201674406002485823689818331219418613350311265635187389311338452922647036426722211527424437691740056807572287070736212190117807355025256806227510492579921406050615863348943081278054854238348953930297721124697177953553286988976050102846336768135734017453729520048234886565973781827029000953411268007655128558843658194078427476159758657784762825981532285619668001808883932139237140964121808760560952666257606374848050233178411699357959597805985273890364182305698604226107141174593463712259150175338319287646989495838280159280295531405132343967288208515628152570407804755305883878835289666612168949482728678503029084888176646128427017863297691119908524736454885775531130648648674418269768838452234079971362657890920604535165670630193843943301409591812101421076859970922332419165924859619450697353347419931508421910783307359345088496194706650505431437358987255527485004362635317961484378781528433750002664423308809887645402229845227390183242094935566139761875270515785493372501581808813242083982215995822095254635969494536751135033429724469119426284744405019565395089294508190579208127657025944427644661862002746393087204109828970640795997395165148516556965184229743450239255180008055856695207621223656445961521389466613246832973740289232325153618501052975427405312657149896284331678803077055932400725568694325664889676997789853984358439860043780079987334969314330206389074799049246839627010497377876907026059890269592556787545848867304188205967690158080028538590672572425525288949121124762844118108061362052182019175066841795383504222345295066075337844795872403266714875145921107078218057513476382754151326651837589095410521290007199899516085579092918332538622584156796588727980998083988921831983687602741460687002381965838295427990239204325736378743464682822702124255354163301953421465217921235233206341793023280109011722887378950053444802616554617506014116485114329284686654825705558985928364216054485531046078222639746369196440786495605938419175238754292757619724772401521655650130476903827341170193306945543870991357895149647981811978611594654286862483527275929701590151081151957970053680275954301132238246920255308807303151625865352531137465460638450681413402012200346520824689570522661505114925323819290408041465018892323541772751122366240579027037303949174937769315410288317029677314037492167174877674580835422171931683963951428125243970260236393588490405017807787893476044458144548951578890600147879069741505416210643204621977467503128885127680491226627161131900493899795954514744780780774379400570481856043410238900151155989790710140343439384676169106336523765251463149916827523490668776933084477051992630023228221190313452155290777686866565528596612070927985056654158089994301531371982426785566671569353610738910642325598356681693134634825926638947938615008348178263648332529867532365484472315432254036080255397267831676636353549921771381206820874564553432903599332337179042874739060848051868155140668619433643954955365367251554042631281245410773936753895389264581375706935788868400497879904941041544061137754740987562376488895252322485332739150449426851571550734692423200297560679548589953176549658029386963879971879505394812527882298089374357384637133685230594694132589868999068556720362462408889008825724025361574524063223941314638858459503449498998230744270798684500553601932132787286245788516445684732754157863497447542956099989586364777279439020015032666815515870330957408513206442968288035556054976114868396310471884827741421873434575024209874363881752966477813572823516264867688815647911784657289267066841049908915121198990480634061444171644838852298076155633137134534934910344242388058218870616354524290328993978701806821469644225837027960937675829299061493411371658862423501827394901806963293789248299578660385785239694166788878821318742305684940041674083480211482433226425909570435629205623081156551519233240571679866412062320159075720492050688689517769987699979699197167763720843206295908810099365646760939816852648789230038013649175501991954594992983831291946780141832234309570939608056341848940689946932818104486497521905758166193157718218372539289718543991651201653426099354041677269552752854957348719990426534636456510131399478250758264746595716868446764072834540951074300080491153612068235089822396175913874176958484183757456074705388067754385580562901198368742276851576345971464515586097866193561805490335791959817151904402568858268369994585102554310768401434947892032261052941293170736540555424461074366989695376458365112355410716169676016462530046923676753060883779855937959551804546091165654005449136247103604153656611408501624399039328272598765039267938170416014471418464524853843014231897417144885863247178397209926901948598230453816817481242968569057040094492300247871613624244852430093823103474751101262570581076798566517749958823111440334164192313699771236248170130352510938609831980827347658791652828107586059928458201046120467139775748263337376483355835574469307430406438152000538294872718945923363721309136291238278862133293494766431544587087482835361168355117163638124762946198257269410166814704603170612464856403978953950517877110477904123161960822339664331790204656196941213219771424793480135226319217872541212914125902291305306874384525112964995748533185251313188658857050850268955461726405226834457977254405184298248747946607317028337663632139823261206931137111738942082731948436239577022302402356487515499534113503138936140545990625768580041780818851492353345496787803181068691859004461341962439882067259094817061927126277077376458728602201777584499853352844062346831217575174479562243513104389192104926588366991576400001568979980090146750484110306115384739826895033177074398866438312548876912227377014653730178937374143031061338644443482665880264001347925607431629804498514800693461916702902914218716026987475371873392491348261301451906377910899202164825144390231635052594584404709240104157286445211051486687306404129947521196002205488354421111405539140653825420709424317251992395710263934123947887955861263409644099920777508134911391622440930675919182570120862905084642175572414845558271978370534916661081708815584380996367341176434707920555205940372270595372692949534997658822758249608086810121675368799192016355395031761447863974945840195234509029118645294167536562143018847753518136078527638833006787103858670472278031807378401812584518331073085766341651970099030561787076618083103313821386902685663402551000866981785862931453089484603730916332601099716074162352509276530790304396067735986674687354602855540602186772131678604252068466525668049876166946669809242464058482448571728876910193844273680133594200710198492472617057722320167336122742646596048154241235580655305430260277127510899547705049860886729625707133392248531766149572338313642453536781160471746795307247225377017118889949293461937323942149327780621002477462494797114855425671131146946712886006761377863765733468555273065347697106999943952076437920719917311632383035401649224390760033422101098396880029615297998205599626322507309157829799066792546369778055164835742513313317750218250081114967927400911917414656498645115351445920991430593829957280138718849913797961323939632061391889512489169074243222827714104513445805517408789264701914126970500061998107815954755988354648931005402554421972614421473022385761356153968369170715766808941175378566530722885927490555151082411246827400494559623829163316022170535508499410600156129781057354527489042123358904733722560205234367476800709535821531837909300121804030236736387958622293090941675671580338691230010757664141668572705345714126358809315369079030438660097956709082412323774037382923581982971386210597941875103480713264276832453819763297909143396802407471550105766435654878534657440420066017727582497845739296573308926268102264279177947482616388337056283308368047038001136281090507092443634887262038492723609669869322937699139992799324407641027051426025774793933941687649363218760419026015092104337154113265341848418003103729908837704259781024785669226753379196543904979268608892280854437508500060215843586373862783660888464510601496638865319267703231545254074819647197144198078251309999822476310494373550810502412999855889080938581301680511089908759457888634391521313951107715570402688040166378981683424729990347000480931476626693165838486862286206822800732939983550459421744275454638046697196580162221812327792229751565870788342824447719131300405846156682021847630312462035107047801641487093879919910550337315293662192384805669624682483715131011097811552234136062564896889352598109158183549920791165962654960009209198909727251738314692872393830860810400218772094988546968154586516858104122543944843903476607492610933085814886423331815601277386448246148506664388469991142671192411608118745670640564960102515448998587067988638669108351009601606406635412222731345310702300094989595745215571826394569080941957594906018061278764128341053187449354687097945417361176693503765699848883438753884957912382316066077211918611685836830540681927563495459410242463366571235893999260635175177428314714926593919070214454119396870797996238237982089625533412069985563616017157136687896101980184329658363688814204234034368381331208014798878095749618353175142303161127467080882128136779540571808288746284709361804470455828588269209467424354243376646921763413945880338534012969542945332292568728227858759113963401709623711404502355658961165175132198611602706010200160134036575919189589950650244697653091784704906363923369859654348526750952859972101358009291281435745381844337764874286819940323762965020971928030898731183495113857056791935725483728254176203302034071823163059304713620830936949677346200649289287909448869991303613446902202433797191136052989008029996546057798011876856628591983179468659083196199009233090543029301744013594741214033892115584509159273336417043776704551016299678546049656539029447149497957468280429067218682998734863875832779262830419995662921708206711763106122303211749252817798544349643177947335860500603341780544875239995324047419367298363691930991422633049622456034188933379306712526449273218276215077144754403656312627017766952646952916219803827667398408570831301723366518586431903705363673322710679514179157968242697476508132877370056870759941914050876566928813978541942190272050116203184382114050583820668624826619141506514022352980512618746658971948942188334296212881423672287800625861563789171100867318332717987176496582164364988252631582278490781065095040169700399811815275720017613348565090866128619083797606205690309381948228901693487672959464617440476307704347944111990751866167013330342232247313582565402636554524962898947290811552277182068994691490290736709339624187337503110672614644731622606022037040257550793734062008908738964409213058314911158276214498261700456855392282357451937607527645761075474140515593776632324121739569958595736842354039373410724970850704337200360242958387881380084542764098672649116743554413421445180453118624032358829688516384942692351231710714948103491702966673153865862679582250265329742872177638267846283083541270795040133905907883498596483244051071196562221452902934299206221888507835995530741610446282619009209030273856713240947225270052599984436037804984981927524086000036010117320205361236345297260579661861773734818861361265302669180903988393148074725165015300014204715142889430399218027504984036946804191648220150300897803620002106752043213060888489702116373550710891091781981335102878904476488473241168947808385466566074907729470283785638162487827940361885287372547924932499234423637403692220896899382347325971300815256814332491312436492560398440465451416660844121329118994102667077638860436801611904222927319233254992950251515290606221687845205606126161654101132656142659406781412918193287292000613935045940272028928202565554348188683876754077203795551816939449693732421735314773164464588014663730310809701910680821340616461363296733842431842094510672988901918670581997087226117831632246608921576085195697888663376679578971472493407006482978455698687933279953784560201577695118478253091050448084749247032117478646159492545094443303855888863932447863839008284096333616405296289637320255125254304545984962703091670944178466637908986215302763859202855959230375390176487623895891408155747394972600577090061371092262973535213098361755376238740329789026751540774909303149766345193679206516077048352982356395377531537319570361778409049833882550993559028077171311547511009416913116633523140650085816387141274742748760423866333862521111322738084681482715922508128002542199578632698068880755068937083254091575541837607871994191448199793604449962461924917338967444676881511313089966294768774680844819359637996130294802053583909147535403564287334040590825234850716170377544685483170265414032122972726646498250729735112445874736661588065835128801913998767321184467305254999145586208572599577460086940090123015373620388337719513240088319083689142727542646966348756696799178288957045954047360869061334037437887657406230378354137915632038037752208482461489227333111285872750595400046472016065664111874139561801912704777246728384541434617600610440196478247967317894611224532086220920348669793002676787728904759463721244262055022511943012930823798011299510494232937258733508421979864313361660590644395174102608938495682242871505985695920460739476002472895901981295644523401130520065368444157752282424307855590582343239725819156851873344785241560562313219619874907933923913148434210459760080822599745378012063564134383743760579366231630690768052488228927347756930882920345590938975803562283580901572539596534024659845043464275682854528935046474172229916751454224111543610889128705944784522188987829644225070343346674721298062831910943685062249218862530234176853315297721473610930312299478462791278631634670789398199489415298844003086463001652626068105394340981032906754314523160661593410906877800265165588552325394369824793508236340743421302659327348828471894862188781741231436184290913714161459431729426054613956756188447643112674026327161295301848444198737105171180139824600478479609986539864879721013323439473788537527571305046725659127742074263316361530530322040158539282612120759522555295056697248667472571336156475949116909850136368879276321870351695450768029493749131981517479201091811911712790406768355329328058429160781601924920589350101755654886889986932911127064204308454395014249356982483172200186096797486249078597747877289813221590013583186906967543805039608291834243177427144695746440217912001672140430834380837038711511692260522933084556519072628992529287458215112743797817844982377792624360520921021277336149256584949518584523575156182359823649219585002102216262399380041090723392431199929637106352384641661574968059400563394411175092111670503101158649937284312894338634370003648659886387693539534609883124378945953888225537860639304269447182083887849312431994600736894969613533069869555890512898469251640813199813934937379263278295137150715855179055561627205117163779919318895840924633512111620392829622617393540468963798484820639978817052462097024510893901565181754265334281652938876815448808144449699004772295258933629601975577726375711604113827365245639109179728597548495476219423861460349227272704795380907060304311202896698175840016662833744787177790467128637392559435553887632818262805025669171394233585853133756867303670246234655741330298930302023676445053816726945753989508296466485445176236240300560494616457832802042827659472289422621543217780909400489984339913425258005434969526601164511040410713369726585441307786868158504987941353168655405395279049447149608781705329531491925851932905543347141608664808541547162002321282773634032935684783164626431659671106571349143500505271895288794544687034251258586458087023358588060550704040372950274443477339535376663958720357611423061179048129668994216754588858225306477189591775370872240153320604969522488520612621546838544153518998830033717571454860873356078035716183556475925850881121396005067727482972448270286274876561063301909802950822871202225223542164998233081771662600995991399363895190602978143060803645149604488265605484447586959991699119922225000589748610437724555018522594804991726834202277747865529711571291931675068873708599841412229340713893053380776533440816519062544442471949191348022202066468556117678047288143548858940844136978648051582361766104399889856687390786182470263320150050799950946252882656537858643657597836567721085168748300178790495098605354735602327268626498563701973065810445944562371215633727831178069164157231689639852315640580011739950540469995205183661831488785045794587283080097020342515748668738672445432257451672220724485085931179075296034947144562887712646903612579757011110605738003470077248166391995185140402226552511948720940064051203380915908404233416168783911467540300363359865519171779788981275280057669740375291079368905626289268532198830075613876522457873405661892386038409733940315563368444933293258048246265644230530285700634916682102733882640644381389800859693095848087243154706993083156879529694136500877360366530554296527464566512077433995846973526980047351864389665940202400343573158162794321172127559065831531462625060909051191587662650266610540914596143186455753129642614863133193487739071065838770081872496535809993669138250941154953812092380454441750395146257422964371410022867299816730006066084259341668256692854945596663450040452426733330178417808387491525416831513117478261443117803654866463200142190776222124675729712539877269554471786693801508679731344498958082375501094295727169840926889897791770513022980541321106304731478067077720161203364227238729327103235160188393155997829015045532307254144323659888379128541255663651297928696517329558638617297446185756749441816313585492616010408938537153863594481834518048892935360829265688315802982603848701041611279687373302681920724970996149460771949599972123962684250445900281441932976946194867234131869722841193985850963001946768449135706525625506586539838540630022690477695439760760876485311961557715474503562583791683561739114541389430341300278034386016131900754699983155662200162095980861865862379321179359816736143908919962860569251906390087436296876294515636909790431265182639950566662789473210648865380316572478904569127926083480475942213528555847543956277821378357664619229305751448267674444855551681174441058321579206264226410291534828633501505023065042560103732848175696567063072869654737113410299528159048622665822753496643002420360290412293103465857647038109845345428716903347689147544452199214530532315295938619072334506348961154218532794540116891506994900952811263471973703252141139569485060356937075888896346071922191247847347426538751921391129372082845719892601683638099104755426288856884590837396866354797777528766748103989027712533569283274615526888907794671415652423146044009274341321762424947294012551680740893690765546826770564020447096476721547434578542679002453938781684506330708293767950176326083691353882614309384319210245396291737706255865028001723598227739965898828123877525874465648268947488472721779471667390947592738422528513714700638270346377208435380704424183707210764247562717375127732707082001803776294375609072992952529092896899212198569099411771310014195133689764953125769906421445364494441214632499403381979466231499206474839709215600680218060356601211551951775962339703780535129156044187437433603477787680476994120692953992855301224335614135894121803910649808722046029280224344792359552252690162482993123082375943141452569585318017708196850743366069144798977461520129383695917411837409577289068073367729179771708065002320718161441129645152806521367259614510379815562034420516345471202876364270709306307614434614823673250746021014951861975973288860318031061634391056774199183102078210731984067311429759272554921449511130202519982924237107058588094033590107467866577372926415803065720060896366200943714948159521598103745535960600297034669663171175297147950809839425769643266747726587859720518767976061581208815727448062499859050599449604530289986196701831648359927485982878323955304893415424065034729913119884476376767715767116186533091020869106912636081848132615590561596081554211836166574820946976564998312281982219685298924120836264675429715826707425849056329826932645899207168504719979982626260698100712121247060328188967190166835192732014976633868841364539593154460139517434626577657429833473323105120683483893070384896455467245940247490562776797648158957686912803442770886259887702682208763199408575208433560348739151945599023026688932365369899612312452312365961812004579763844843676118124258240887249684785537731585114019556057208361784023129402790182289367474499855084095073209066568443752183505034423282291834576593306693946859961923103481654295388119130618540622712694714031615217492527830133871658770463810776383343891990296366095233104262978645803304951855664724401864949883459070781935826287693302077199076167543735002612047554621274460823359903669698651306594824159944261690842067355047119383799665836078196459302219780728490225652861613497563064665254948879795707340725742421149303258355857824066728467923051640984594018018835502783057819943072962321504280468928458560260163717598602983541988239599725746771272782908229082639490850322391241553945637840789661473670243407629327644692721760212314152463266489577241818422312792625658079573691814140751794810473524734687686190840550445027453545810796110201394492116380146412094270760337181782530841938741326430575659219373193795384845497693817219268663064998842657560597229869891557297349556553103308402567053447947826389632498250256920261063248938511219608296451145933441261026917035714201412783709561877844053067114369327750213538519725208122738216585363052747953769618170161158775302434889039010020494333697585831459913485921248511777800330481223882031284454823242960362083540685822250458093284947490526736764237919881987798958175585198444993908923561079494601426491249390243335534999701245553557194928996221907432259875834686215357114807905820583349439158989955615848073534585276684846010995811188433815287312532762512463439739874064251201849705032981588837675923324975368317846355091420761278592246789140529798989745433588978421295365975659552582279613950290893344606443364922836612998790898115367384647692904631552063280549878118856269174276779209064758740311423787256661979441521240219861550725631293022602899333947874211515539538194899067136199014314907571463466529880163663880793105516327242202811778022867555090883837359837631931992589591358846101423857049536908672124716435992193230374262106296712334602980271417333924168771989597662455504021185201708687570719630665864256778640968944153383803458189388357617356887922923510969940875326127441732443232048050724223579102259501853368434503520336818877773307962833138860620510224533978035491869404844401257681547667424384668864460899863764530641850572862773167251183903535654842124693882983230350715736076825643590895922455300338963015759451836912426423487430595098901218885337803321575432583315077779080491226423858436886598860516609399883127236497771613918715002111193232409814613327539574894598357398941215343276591952257353107131169716916266793525066843203207004085163710279150937847200536110802663193406196174984798478946827725837875649347409842310324603014747242100587145780321361273801105379262342126273832581553307251139357457246873645075129317112292741688274530769400178707148664818541072619055609501381989949164124709233821748864598572564350186098584502344069099868908056270410204397893405606416241975895415376118487765863077855995811396718706942799902459079924183058727955116274396354995076468166813746444012808150844372442582773843085645460682218849778240389692674651015274971549333583724584345293471661726119860727355200352825566069311905298713319097408691880901125843974527479835246849901960415192542784712259095091582435832570751795793873791410237311674365873125485393419212300984762782625635294692962339972941049921431379039883847693406001317003276446741685220114881952502260808626306331093804653830365486387852712414585154987444197887369902936814089859428836159658500355079452202290779634716496264574109933842663850729767086821228446822800358546947014069455445180670341488994343782038496750254097539578934758884618051651879130541016416986192070869563033147435425189774895678479619659124632408373037605723081850891925818293200132587320762595392151260021457391957466269963287070173854830565928173803597312686175014387973890451078741078829953934031805899910743959559954895279454359251225387934057922973672837308492352136365246513213663785887713847574890261881445414663044649483289375048925311057639764534363568349261833384441860840937722998128576120718617464068919092511327553281881183276316625769285487074966854231936836386689350789353761313196388754781416444283577005892016648184462713373439429477921933223017213758981914307480485994099907955347135731748848036407933528672860884893204043159451765780603080651450343641250747094446758125047937173230106892566351009262677502097012643898868439606460490289015080405097050735623019704115589069632474863911896674261677352986015712448171639049223560290749572574813123796092763289052240833364432207539329382631066881896091541830891163640504386696024564480426560806911796379751351396809352740910612192323456284327807690808772908003935932350349340740115358825172057411642562936549201515604871543688511369989333436933963864331190618846687075008502865454795842523628946539797912024266034366778315869345058127410403475759420546487200968062124738390376948020956620403330757382002416813933080943547734321823794428880960314656497199744620528917806539559916557199310053894006859128690832997121137613750250312699071708544364995165044668373929106633128577102553332402024969120443632795248500126217786895370787093708679227033050112837763041904441155966860641331086399313842361042190532284541228122042444566234698906832146203799480615968511484562493190084602391546166002469991005120474080304264291042501734308030605250436856418207461097483300863783299632403674309523811525956404075150645597656344734450657806102133228471460618076136340725884402899589018061486113263225187781970763550542396638152623172167488240151932126986860745154476417468940642764775069772992076613574396033306477406631719188039542406276136194200527306532423089774145806569910675863601019978446860605048727796578987171378106141527068410913259072073471788791301063232984385686351995792467898667883530309993828094733061344382844517143963868787002384116339856039462848729975636549035583279104482794822390310568666476272863534742583532644505817815161928668476244522262174638674475252934668547256277569600357331065712094338871021766590065492798495702377813808103862941742665845313832824105111339388268750973510017914929245293490838904375716765574031363983644909412756410568094458403530361678278564428032427436790679737033645451838963589820858558013797125031436778156169665904918266292327215143861873329291234996996333281362495110238523900321565744377744734130429211106613431551537335455609219649897530587968479766326816414955740949991882498584461479674318297239574128826577954805341249176733480774877866765382336094230668775512870230602015163841652201744375246294287461338102307259081449107438917811330167232413084705654579598953501240795281049188166302546199156693986655501826791530645027258394500395440157017231525343779062109141819182591674913303810299585915371040022848361449166386485914685410921721645655497301843668810308825941293404675188566560282690202263302516019999475428565334170851208812495586957098358618192663593278635444257013346014032153062959024174484532738524834106123669715777020982174778974900644226480682897482582049076431493473708518513456927330481713676913766762617574323762147045569631353464144311928501288364855557651884718840059125477135915212141865904525294892276566897745534960868245955342683594246908223832302183835390399061079342885065124316387773009308174642826559336482240021016057415744572042210461853678867111552098605075974032193853370405191371785361219423466119432410540930597769169333993658645942975528082938055808427266006570873334589053589038828340507183994746506002469254139057041924620040231737545402783666142499504630978770890798398742382829567162170094723078426626336471968066814111483392116853569044648352346057722080561961794479619095027125809323510609510741316680408381869983689211498789204550923080194594908067258339152653814151544213947490260361245978579998280523489786418513113678428179143796615242350431943417975195930128387341272315752343816285520052970841890061001390576232310376128204561354721796318499126281946919514435726598489126945548136547520491539876132609279621195473041293636412331810507267034977131062978377885154743052271526772150076268946889323548307720629490648870596930748313445905435327916957381036212590809588258707143407874361115591870035088525832441176675651767184960178662998346885588039342851571871071662677818039239456843563284910571836423638809304787763530485258865193852191199012577437163665182314267947486665147318433509252261975972377483129741355836026195978610788621607242884116619701586111998668159896353778244143576418821114916187623151175609476820695130131036465489278738949311526238999514172762053955369814090770623424108294976919271314013973304058047239328645298064005228213718332616336524714788440736955091390065234007171170300929305987616644936875665948602107726027072337528510122608238166222238523428238495080983920839548256790619746451913675286780910837480440884895061907816786942301564789804526400423798335255964449103987455486478132666792865170417039239823495025373662399980947687105885715095844433820576972928872431556984951073098407841892819386334177508014122663998039427323521714372104733621672029134783881670666451571132892339556455773182071545085984083238075401104757487562337778904296594880953567012717269070575704926178456677454585454741422110107767432496735495314090963721130022324768326398757526282464498882915349096665356882583687490772571115179253336206545870735978464896723235225759429831101425850901595675486416566795517090778179425691613719826089513302466808559957720564103848875601994046703475884074131760819685841390361845161324630847802365064740487012952452334462455670216704132604636956731444179734533087300762235559624557727703990051435106315758824685326483350566624458635816590704614378225651891101207890888053224966238722802811622276295551701981098769139981344876251866735599697468962070612820525410842418710373818738586415874485932375085398050016788338509410580102099349477156464772026898879643812765210923071058477830679127155955845180402600771924493102998596984115690405375495499760956159454059213173877521864150894829089453988804311664743751349788475568908465935397544083926630082681212303326292848091333708351291647617536989198419365546317072537676711259620296620187419360158900115391086707951868107507878476912406960898481405293046244789567404644697023590664278871564700312664980200679372380317601482570788019718554388783515265743460470711811660480978443615727468056480415726808274473444865721249883175899426162691830158151024373815665665498907182866733355363946370782901987686803248586073625748284920444250555489190176449345604958308757722224396421040347880793372858117385139052032559725433176807900158776888337684738756118707735582941929245452178197477430641207723135899702701859320733965208772290288035462148715004175082332525304369415291344415874199887276264039670940102184164594054334525720857928110785261653092525140550979243171887320433778672093553605097951603706670878845742972368515955743926004186820781824990847223806684313506062794174760670060375971559477150629536638328690881521268672217249444599344803759576378889219784817077950326396398802988542777102861103186829925713244907974325296092690596653341670444275521491269668831903653588384932257588243689509411132990114346474297673468457200355103472836922480092574249783196716770349920718842374082000393271790323029416047508551449247075440789595557448017688295341354668864519415631053973001802709812047566405652215774866718406516499666007847120720502319497176158071940415618540369635966864662509913108601254940511242774268567231524213621024517268021882318230350729213380873052357523592899915211060034805154175630023574653766736886741752487561682982363805035417979956431805884119976277825827569616956081218869963086781811462532398667447805944193921042369174754752916280004675250063510646147436273545980029798177845836344099823771519725802464962502950616201593874905785455595336313654198457698736566459200077920835941654117636741687494272572445448429538390765994068891914537352936851615736788538935843489628879589213982022922577949081449592248786230980664488491339798869983041034004158070155597602434639063210011034190127910175009055852268505675859106321736738375478574457092942869997315829584844849604972379671162780443637159823636675851108874231403177448987676746516486166910404382864429023780345710333424750171934737970543314640511584671077303104545839403182122761587064278611985838731554378206910544805931244126497716867387219038616552629400702424410357995899444088402023847879140036608192636341424144156057812594827995081018263853292094864316906642725170830850953603630998856107502829200476846746689790859287771891924788265274972226168439592353685854362722520034678197923544476850281130607518667607622326885225936704020768391478778960031433259037508887757878165096162839135333476456879897399168000784760161274623975839855692528444380125971871773375820457070237945753333406878735645424793758147186870595988610702539485106907602028895996391934398087689753600130058445811565285616533387196817432344318458790568490294695182801694422832753225638901547392922670440622141809705320355676280397778527182044065929345509193972348574206241948103090937678292167688508157155197967104204518106929982137975813912911123957055144252152667048603589612190457006029607536537520945424402386068541491292927617451356877859802999499782981944251946760946784006470903582897393259706409459414116664904641535289047295741414433759913737503222781367166282097581977087384243683335061842393442519667054927964065603727707871342466553065081029667506007769830010232823864674293597799454098196324917810297202770736456189752081838163666290948051136108967942635475311470983304312670845374307479331834236158870108888723416475050330705807454789793386466306062024897908344303185154902152528001372671054357015427507781826724040893416439423647263051546661064563096430985361608594459744148556613901700084967624729431382787161376928685572057418845713015971018204777815984728886536451365314004077318096722093425794675400286459710728736076358481092673374851299465882743374760856947675759196369293502740891678495593428702804483133494503758235495323797838646743671287046550892992246701640548973128967756251874988340366358720156193646286085775461164897223984591036755957984332586279486116448649008619207300271174332093466737605714177691590003750562725046968814342546648207063958631705465795133675492414850866898450246023475247533594034670393053327313525133915172677959078544566133351669546316078003836078668005088846767370875650590084568000987356364647668090297609137135995357953540135833144668025447965284998306914256393317191988421411644407649018549137126465640757494366395402604788039371276249523653660346295504960133788302961087267159728613346685800964334890652556344619389091387870504599862619486626414210386356909801825541087383282008350247658112612383242208049639639792015128863951284259444768869076976634312485173641467378538735317607242211256238308190324908001430771232178478504807122415686953740352430423323089301879622683804646621507897533273077055236150345644060654771016744031028244670377888162411916929341272801825215754062621303517640741030488581055118570755103545572777142375336844064413355179689189882161467728656508384947813047728476133764425315336141201922501386159133108021267859654778483515154277552782307583447415233135037225154634206084086174078733359466324751545865071512519450933476563804479656064710862182402224579606541695441075710976339867593232553246576862723911704661694157589555597704245364157503633942347679043663476015687414402983712058974725444959648901619344515462026681762280058656833889203147167694733467373967498398789957266846228077227933591163285279364468843268691092732198262355135246114553508763312780262535286970388080851244385322928977538325419343113479767210993239682891858448638829346550277688859333463694060293594447383727606523567087069163244206837308071618243729338335029683296020776117140408445554543438906296312761549139162685781183348853464549807419127810839841843671025220572753957638776144984399451507868823209025012162111778107774712416818729657682693382048253940328163884314334966988112552320835808856552900699370604005078842002196935818481523208189953557279776074215586041980485797782750370436740237272891640765348283210650536112770433881477092136564726903864987997017110836139376305833895022243862343118744979264227275017835013143399516851178166215321999282522248598070040107128639238874665562376929378884796774373719080450935176273241806372019012424000939068766806952535610987090922879371598413696969809441585580597962812204680357149599626694815112099407895189420374758436023615018191316239117853790664763747667653280765019223368174027326057989929057518566649342669401652565976530496184380894412753164422632653086589053129291076968299593826521575749663446645379585954046353810560215428217848781721347527916296730719209180120020631546338444591865928423169704638002171337394903797438931487531493166286062161309037569355887177742605546425591921098079263551482886357450822403453540624243011443030081585675443739273111003641690183612169164306433337663626308955361872863451669582279434628663483887654762420729018123072354230447585957705961332559274404446063243362806889890647455992366099553380089878174662457175870330107042003413291045809066666666769534056713105163986544407554414753498995392196871816726062148268575474587800400369943309667506150219062108543490149158336578366949523759823666544964040177471628515315952940919953563137522659225373745337005493275703402796702778986820114583405467953148004283535851979123021398501403236898329151605002197998560463341595728779969137120962192857187137432142681131151326855868489796601095804543769298765296492519475258742412522431357199099102360941801883397490581813891646219718593787011381072574070279217828818263713152824924465508789767198609429505525850905257542534383916450238844111254743694215470445752526743047452922388836798332270470885576081507597084778807119138672324277659887257946649244110203884758776818349047769190666689252796356885992924099458160065788381056234608556354091613668643827413673178726969527481685040332305836373408999871767933716212336326565283622352753938803002305597908478206344827492696231553461529435618521176135850395446855191420836089510627856958908057053661592068689025156323740393460185510572778229829757323514487767723813031934984527200628857951267097736102104136816713987606682659739472843550954265833167039375794757838191223087761566139058492649342081696692761982750565293522094565296708251136089309862021991619546504237519382494527893715972994948777359581420428108977999110362016335664513931447643022718215498567947548323006789895671758698853011194224697290456041617558349274760464387980802235250064848961401834548319515015306379837428900347861590789594393051962034056411790981374388876211719313191143061567533653043245531927581485123973346170631656094703777555893991942832028374901428185712123907009545074069585520837131646176811078050682760512898453967695317820912198999214508529910799861536544931429358507800069087186522567056097649291742093851737694888163673730177864043684064141913707190285921721056709355656849878885681516326123596613906690042929893186545317850638261274603515100950641702158934569028067766077700936934102436989772972200864794000435830198931120710130960028118019941726099621147552825848913851038228320402481651117800453610567871320318734279609368254813319614474610515652373696262903193235673582201526091546626888635279023881265111827273411328056998326225768406795861584882606262330307812152025648478217702777427304902604627193248398386628950018248566602411078569937271147274714524363825975579339581190933698720617742957300518354627512597919256546465818623005970196595697747941617959093572165488284064907245995503038280644046938342211967786725488773487131623359928006101226445516491645887663367416548509334897120776669482881388056237795369441904649003956029446217272283041261140993138075903997119179693837611710180143957792806699164514273339688900100956026988400951283196172545709758349480012932826885997626179970630884403459995245235571705540901862547119199591093120917621839719566686865842329389461683074128645060228257285753495547754905487861511113319985314597161333248030520815694917418009423704642758838735600325569899742953343323449687873701575251162358594961780045442176391813508850428021970439696235888999949863811369310466511130342806778143329146398689753707849936774145626971943129131617464983927618634152730734952749243604352002513689367383405581826725237167783080141350608962598846818008877074643943655612566418814806233113194626278075673629414298383756770719194774443832657702505295629758006438195282892093256588825224970035649852010439357064169638405358032839819046337845156319156992768083227101586034700949083306883894064362970273307815942381982866462033193179530589257320152618192141000140569524450525318008648999749083106103119496843134493910848382150567700130163750054343808255732397461820298954020161483456127593986262849025919835801370248288168652872843905747227093372902912455320040593662230729578770193554345468012261372796995648365431550434355692876399373749228906564466418579793608832212353856317641557467725428888666028725036398236847279832151579800763369042459365303520016992511705693058332518136353058450748578383952294195756545928952226011141850391633227457622847493748111612042518918492227891872316624176919949756743950333483292559354466246279632009390029047959245969349287161042656691021632792408069638603087782034194095397900699370083409672436095299167853533038652068741746625814746226686759181138708525342981699004069726743023805512554811907194543243567238910434412060960846337786841972652138817411694547553317534842513368842386705837062125600218631278868762261703567182505419516404203956557434430503835871212025256806653500677463773119042311858553900799994705325132390644262406442980282388648400602025527056657507020398621463196814303608162980530103933449314479687762265960844761071885432929358640943449350280032273334012385098047422300400690785600420226620453918418844167203814288955472251696897049425858631070154135032474176609811457008831168181001934341941750663832031830744460909611059783675483770578301107641352135756489691996889294139375252037449607143835127018055741577438280463916076847651417235937301588887546297928560713737662790919339240440018498836384679742657117874246543003576871191668877028275946142147029597665171953592321894811319147933918509931955416684344556671654289590219703122280141414996527697207531604599466638142951677170651126900170633958087914648540987458305115751986242114285933307138600823989523574466227388230652998351959770493601045386301388811370572316158491780056228692331101466497316034503104436896221490719319679358979570963353307821150386267723750121266844583275468293076488169276051323329102127069736463312449550909198916263324292478426901374314715400517959347895729429972885138945376154337076520502584300956671589389338909902512190095872006003356356418216936868409441692587228405155161535329975066575686241955986161734109496677089249681250782890432333217702975894695854869092869430100208364184791170883808299377193297543699477608673808624912145038678299808866079424859613917167052831469271490758010609296219588227476876910797083768247469584639820924749838592190858980920817351539219262681924031203140103770813689370015483907000831619659869878894713005239807494320212680110433971813233313111101299134963979060077290334039292751091827332812256064796550700831945359510116701311271796415204550022421366751122725944429915934216117940132605760238562146935563450896128984912044920103862493834643064022421842792749755373973211553552825858860130074356025584468543969049987817537269945758389704333711516150511467862082534233730113517093491598699669240438645117192097000493729181305694572872366078882557996618080164776717623824846563790815245140229900084388781544047972626855994286471964335081877747363924334951970684762294510072292574109087274413286304719841547110498678182833206051099160474320903681014766875724750572363492590540776760324847064423117298558761035973455850260352165766767358820147849291560466712010202828746691533250764295653794338824151515716255083158382074152434907871545615657126921585127217751732651513742099613315770303136141631911176972144469498002870470367468900088141197512741276393072915440899349598232162934600674843382324704958019335230401036172225007603271621182800690061342894919289938144831400914029590434353943050630906393340509987552456176524272216805134945948844925391079290760167763146313120430307395659251230373238720502908621949005298147116014465499615852379286017659576456861040733715056842498823286658227860111325925638201438998246564790610237413719385558573003709081006591218625322635278869485087271780963275179915573152511228312925445460439586823077707190317036380914227286013650959989226835174101523372205546298468263399004581129444893592947903420432942666101323445999864995753874197437822988175520627361261601615256910504935439743466021421509252399684755614001678492443939264155728489512023514358512101668388460971866546765510700670893498241445491755385232032869293398234839262015885411463283937891492933369847560137535611962838488362427698683628617084316804191613054481291034777479053868517533167365576710252392274930019031477428697131171337170672878024193896663227028983649124410437674425588240344947001233221906303869018047241761736794354950493605549717213687820496690550837373543954911195941045201776016336079011836962442300212671616769865626043000711418940464978297453638863693256319528761032193508787652603498787706207967023276834725980021813525309743362294993768684122691746332949952900391665319970244926153197447081507508543605016364697785085836997416179223962848995797176141899979519861089589964232334819993279482248573514885493248699451718591095281900018540779831916200128383299215112522112066112767780080623312986134046558322889867148819613446450940164958928162292630991755575153316709997451952598099972537939408778506464624411876965607312007813990128569753398514701291152615129568192405393240306027262620423884834759509408398392991001192089320328038371855621669585646099952800985218033532169472666068125782132295006108039317066477144981207780002727014809755672043369658184007738083167744645748052802483391576100380830793538407056679678225206221619467236276864106102685957267374015810208071501093648661946730154160874047855969214192375212318903541861722051573532728007671258449968342498811391293293705924345467526279372577294878114893839241369449272291290487090196781562771906968855162018866279755762069227999533776867492137424143698635678556189435295249857368864804566871884558587362948712047943037765058872178317204902694533326978578931773548299654848623644738087287812368155553628445820612929289451215630352539524124472389863942486711701852933372457010820501833563316020636895717039310553784462816866321574900899252942558123534203588525404180808212306529198624551121142245077523906430746199139193139367052623479201329323765185754870821831826754877660721270439020894513968407409265103981091284338025190977207819489711057641186999152484853548068870280577199319912807200960432024095440459783966062491219535052508414360233238003121595424197814370602753635717961032531766631375779765594945487626436633324105374198024276052033485632934873951625925942042980290611219904034978888885555440261147873522898847182218163679954269851528290608676276004127773451688109323902201459440778754490903975876155061109356997571284663042125531271312362087736797964877344166777282723410621010620395715425811984136117330592558464684162324066011295971117794165090317003042985375303698791626628484536531057697433414460958267952278633370672915630249324266983016418403359657393844776752206738435245724563748776592017612599355792401358464772086471262907593040526719538664882060587723712864127212863186947561340636676824449073230860095805055670539347136419800762770530126376095937700452226639555095223666903572610341261877870007430959194824359830020759730608386116578283400728281111007606362174358151188189306897238456300719546330109813895773992966100144073769053412227362313890387230258484872055349015910929699148010409014610170301778618470110897611642446543741861036693010230768326063300457765137934612588301085330842040545789006252960139749754544069940046849656309656556603943879632868135093336480740179137881223150966690923837716777036016279169732768788156104706485743182629931061826274014585205748668168946030248118244291492996485681582540604053807229039588820527163476501380079985668051205550221639086740491104280389019997146353161424688131797684083497933083680050529424980394911516482868574859970043832808357342857608580265648351474692811543757237367536947751475790212034518839624777062681510036222840434591771048941377349293289786815944486900728173044504771142341720657043964823972961450065713544803803565493843904922811606647773447703884915246085088121958028168321305442131272819437325355091888439530016888127259547942488385073953034362359029165256858203508206044982098877642966799012439213131749944885443835272237591685549615497114092037539452233170529982345096193814886033055523523123028345249454539183424261580115883836114542729420113001528764046144308180197956795694357941713941575186491488827898660392848729935330286219936166516032433331529942819679863197212873805819985513314396789400667993390139306027368511194341381931490678517787567741221663387688435193647899210495758900236943784952775265837844937896217909281109507202141908791508661832333872042222727333374607913129363533776370198959010165084189532549983545161348018578631977410979851258998010418997370290621032842420123766938293391405267871878175608208104956815261895155639084771138189915105954039629581464586537423170857223407778407395141030641063733640334179919540748087866296916827205639721380188757282500672287778672120107214528789791823304939033116349471157676797883994287445017858193824277060568156187570114534062976207536452664935432197388108410761365371123302070490667239574721565845960683019317419019668514825245863552915208733139199731072916185951289024263970451487302594987469742386408693988764997007740869917470944482242967976495849933066292487469359464912258063962513847478209449495347192857892635248670315612729096018505841266357303455039299936882814259185272003965077298596214963134583023185783830677786181727403529672752185834856408461471746276181585906545992697405462318800263014038934744807982261046405760953695606478264529162326915501299316666596812358603159416038657434689746228280240957230961237339399175950133888969598713539168264384076330793385419097981992671854753160776869325261843107421667170687967844858069868522522429259932330278240420612156439381387258525186748312982296085065330957690321410845843474553615410146743114787903459360901017976587128045277043923429301865132817618150527409103451384323167406972888380006851472193141515801632989105524211139462940786397131387966335406628755532343685972850448992220073178384049520819151931282633442825937864060429847258477382682776005810857034216585453126157161424442498648075349588820778469527402080969759878727832034052837777036126158616160841018746705664545937751054187549011565711806300765487990216856420210823398341849138168753915973754900947511605446818502019889445002858387515667196899965011885133095408178561708493456492307100365575957573046402798922510367685772233288449529845025645159127535472277524067140548181034604907852839216383105822435953958203675138495298147299664191185403008316047391864791461586132037817634997301356098796113488231634450987881105933485465384383362330682931148122483800892127185159913511260464475974101083295921856209604307812185748273164505938296522393015767231047102075080379503456500611574226748611038471403948480294094659890204585622709976023072841585427116742006345749512015213282889158594682414618403629122780712553355778894760364268105701615026966465996375259394631264895006262259604703394351439707916906486577816222299334176101500230218291305545661376932796827645857916176442651075466052452068108709191588641118362421820509921735915373976839802796735868535286767577674557115695691437283883183240407662417465185980174616941287645725318248683086818942634603300947396567764442738189457533742081582099752799573321213869189401121061293011254405344499972103365519226831272094160321071540155345839863435774523063196351224626693155785508364055796333488240321157330697321017019110324099683213047258786838626419564032944698817162588115247642404999964500051835152680021322915639138670634030765809019738213426211619272142909116682094497604670688816787864329375129888612716452212293009357307302547897609488651231114245746378520428062751101881485078461281103400439913856648550478190584786032045733476125995613706434420080032066475147473713697803254778400153695256766270736209264464457636023831232955518829100057305596162112324611229147546294393221144249419149974477649605328516908309164742430308867130378913982648284060576452980919698701528975195283757524747969553811937851826229303138744306559934383385303877063827067694890722292303431737933289207873670968183279549229676917192555604021415491580205224282998072075290429692438905294154323982280019075442612321080661138527441806834467190395053574969345853098416498781954037755586743705253669648561096583439076007368516820808177633714525354516053264749128764476031839692879221890952040918744208812298786821169023645083780167291175816282850085134972208426512652750470432896435483188245878740263717949208268540838390583185442076500182009053729376222013641670134418269698981080417530806582004442979780697609412432288145241362213037299192606515099679325045879226803794358103955434161073272207110098529323199414075180006812434744509515717847989485885937941806636947027951456343970137532057481882950580864919933247898499905457470222181201458566162439315072335509623932713200675607766427741019193319321049560477967137187606459215962906992867025391586824253910490448916134586494440946247418991812899829121728556412678005138844815426020075237828681354360973562381006439985986388694799478394901126838523015044820651861701618534837773013348025060585613718358482256348255801470497400989715837816585649131383401005955189228978760004459219924994409046175735679469172059033328980897353679170242737765528293246683193301090391125659031365968447488756768775927410029380790710762172778783191541673827654328454499474647040310330081802794850212698317253563283596581208524510820633705289204605557753666901234453373882986375509023188997868916519823336437749611474522952243793268976111850775410774648656346505186079112948355549791374695836784009943707665646663004988918859594853152498695800465785546283136602261206380696765778663292945790382497336908439734374328558366880155791139537448423558691963547732481760308951669781206699952601242542902324235457058061827309233949442086275026955286237372441797152603771023078154957257869512082393139694490018283735246988770425708385027653547844747759327959844095418939284470289420491234691658665009017248131235477988486949712117533963202950553275161521527643082352992315786492173699360703411603767190527787521361764231935990799093650535430785740254235485103661010897309662585726013277361689395629085144135322550084058689225998345673781323678000699968424905029764676089763584959649026981720921127880695711573643167606616364507012311692526240296301672521678013908678705452961864725477822484676520954117914506757645346331345773352566410995497286591818344268621596849524235702645415574501456872113720567419355533732166424764800703373535506104476457986322884585811747365730392424675564860162196084923196598926987238673199478096766886411846897807233615254435738353549208207730097809699541141546780191856035167932778342124556528055000718568788423744767125127123868354210092640364932431460045324455180478258525254955532759869264323545349307130805932224473719585184401124235675572709805790958626108539182093216419880120791154226215649203818300333642498781795539732559444109160805965193812137962547841430550745763894163236391402281396316610917584782929766281978318196744728928330381345259521611467496423742429890218561555621583356023158157395265026953798758896425792229556623901557606041091923543665962944746341795888022848563270792330997751420743346394120733311943506679699693723349600419181524297593387714111449855301062347104740872678092692556733073312390060012476117573170685943748538148742756763758527302080545594580260891234492111207839224035789644074126039277107924300577534080157743462601943082593101207850464671750229161460479872170293009277366415559247033627020879014522704115350691902101532628810407326506321113195044761494365700109015651952549206088635731966427167968657337520392470073365603452947475895239198328894161250491944565473487274789786876069414343174878536637475783063794878428565322362231899798662725850495895943232494211893637033944727010287239966358475236065225796743336099791500545488524310151222872259033298754998753532998640441680447404391689089581401466466750137905830639061047911813286382227462287188076175886123117106366614233046570684251445120012032103953082527964177069367548956473484145059860073257253328408666895094781524649872671536650725856814278602615141598949934329026906392625520981366666219089435902805226260770825254783091502547344099273798529847197730838772216768796898935354083674060251116284171486602884264760454270157354276626654735290836842274287985147990059440041550381717293502505100345932193323880019977996711489369017598292975745526145017885390184941672336282409368709736704683348539811940473129552704791658644046636065781467254276117094347082313469839946635959268464504659466790786772924924164334124016331164905081339598707803818407856091858369149692214380592662470052530802966004004107576499979064886398968788438525986698438710622551340403242282087741377808789909825389883660909253976941956428787283283853245959883909853719655357002353105872270371853443186826656566894480129838242110717965493959279889252505420878141236412632811555329613098194086404207456042409935427862732663397771911701442175477095369514395346813707790976883713197155835072578790805535162340152643529901160648867180582860375054858300184189232108028304731670505009086646261670919920023363713072238971519859762014496273084023603847976327120264673417781573112789809456905445920177077363742073129864081913864164870557306129134867515743180821639094317010066310001209165557706637236378855643523152188057767455944709018878141169062569702502234742573960095545154160318885827526319270030116021308521584136992816405484609865987848380124710004126669937907908120498442475619767784247690530939986403425413426842068422763052693732596775041222555697573883319962505956738742882461383590266242466315230742646882740820476808500899356518119689438516594772172971637803023963945834115107786675954702444787256757201498490592077802539122935365874204621083024275670515395676513323663089902626061947405373786231202212102760676572311743509495714198668141994657839986384363498373465404024136725661994301559177816922362933963386519578962808008205790623152716872213539317800250962008362783875673344643373349070543234436347907287913832569915252412431870619646157260282876078683148927962981643170342250506561398484708273256738185806073104010011370266651120905566767132657711805608908458416177826575998354965240666380679767490927158144244128013089074241566986502325491735600808553825193031649916422111303305142791892928515927499327214675709132407259362687993891411570795889063806973854240184385049695230588633309381023745902903504262654490075180871416303807283649365711010781513299506606638507642636706556483012385236133472304354595378917576079474473002216477082538654386908549956946220834480526094993522651844167769871982480366937882855000110472568452461095803586149281948740372791472189839450240244301109721216602858262457121568597465277878661090910660352609076345495329188530387777110050808651847433336215369212058258579474713686351623605137454252670713361974000032591783768847899465816778562827917318102844866414928942210923652794641523186062585040417176320522042764468775813898753329584197791132984467390634520034758283141082119486079642857860005302401269133910141813797194569093712934955447153119505045608049504357674537343512566344464553393801071744435593927106826521776413896148063539733643990052558062072380812500491534606589951268129822201751789213803394380522840111687824182622164227597637150459398877027762357299724200136158587233429119739469683484252343129615611615041412805852488095405430852637231343516270558475694536877539323034597148637355280309936585824719520455734351276540231648713060606680139695440671918059952850776473075090063906091689354464732388958903723749151658352068136786256627762105752900607320512870529008635236492394233155723866350090911133278974394228336164968060396471532834534830895647001903578209877010638696183762174491933525047205044153702067451133293297420810764497850949967369358153267953940142998119416542695237283716271775357122037724211651591989580935323153114931090702681578876642027537934211743108328097200448499132931486059660278576786350383347180097760734347952110785056663548935696578364846852377235000906012799433011528521578071868920247611962445715760987813655240479399200163893061883454224110794525651142402211102749555661019660982146907195202946297407179145389039006731184169922093175992735417748389237735130569873391920112187312694093879691701785131805139774826776181116678484377920414615519792470357365822960488564713049572393610565947564811490472733439146328813540577077278504900367901530149131018534905400123711891417147411242549436289160497991882444213106576648368289250732255945143502678406197038667622459710880940479335525048547596220605052444150840533029221847392116644263046405880634568841955215462834091477889622946932124450484125362935349695658638341341107227385029759616317299099425428021603637238841354473098087963961630281839999822297705489250919395784821190940796554975825151580479801607701668633576250222822062759142011472904894693222670978016509651820830720666040896401238693839146978217645804454980199363191752537326232683896546352215388909361421619932438573297283579075858107883979211258039010535089435977737994382260626666481711801523419574124132971272335590536621324340927653152985782619794837970706469113595524992103391635216403616424487348288178205111219241706416126045124168787053589907970592577515312364997343695855279793597451865687772855263086752579671119326545093606180088189003228873822913821487444794626745701815017995138285196247773492287081240420151256030745686173648192853017617508967566033270068168597930358189113003123651229970762701207351664386077014213336432777270054249694538146284198352582461234437204964317695677256135444794440515585950980847110619555415653134010833610448333368491843540797854543597658984336464356294258471313128154239392504019349313804130330922019982542704909854513837302707245147062067099640659283980740418347076537838681791319249381685325586158430324432154494562676417978077523559191230479760814074442860101059599014071513076541524386233094131703513609438224969074895456612720428556850667111221083037319318514083350817710547206301836756267379328395568606130764434795575449128224658239414323570396899574004736353662811568116292539350837738538928318297151147531259735085268371436431015483242261184689323742353249260120528216815982119203374773190376194038875022554789200053393863807877120340345034433004306680081978233933945912134433807763212333827775169847575766716751632577384834291828157891282488800963453999678131467983896816100975303723621942612347458978011909056462204440871581647918215094977554904671077652609502965722949341159130105088252804917886234592819188518306040436451994746001989071045615441896470241956459077198370539994724088106584053208737738505165583214281030521826368270343100505262682931159287419812718023552478506476588211159087437448757968507500801745103541986064593565160132513775754580951972753273505739468573277840614336975134982659346301963043180821148357306697483734168956802220695228215277634876965532658671077112599855998134227919179014555061043334458132325548524251839647339237404653491592164511828570740872454613182074663610771532244795009379862000078198870492995212538900432033131787977449631364360278854688874624574579523361093438387432354045134090894312974896640871457711432634657421315760668349810511322186756849161147783099516850459287385407543113639510317803476879805666850182765472279284759129135499284583328387880781563678638684998450413872997257168464290288803725970237221445067352195244250067221419403970555676045248620678938763967096951395814056149965364439166529661908893841659852087253519115598057146922120248723831708085852223721974529904408299905343751183639912676512157416703416314347428052817833787359306965045729283575029309535492422359926920138497265090769187278997574557174414967838074190807729627473442396595863926686306112003922006798715217670224585782661160106366778780223957433263518148720667405220779823100560112637726690235048838523673527600388650190637562091307464525541175873135756474120259435294832308458882868586011992773317425495405829970841544924448802603663306790126128783960855899771920367217096786517605147142628132173291295917837772360207318349240042859626478863738877475288831148660062121224658880124653466667288636025257009478886658504117261960450768876828676824442075680073061707426081312895983689140222426282595316313088891893461601010313293570363971065210311851503348105841263866790913676643648138285889529500567076319663490853055583934466743091514356019311411467920329431487652449878369757256298331903172490386856942344848333508848302416232822319646396303958536071606569547781699780023617819776456311304387494555642592461531584705660331814669735849071490615019045501532791356386785828862606104244432993392695210220216959656884171147436741085544453153042653077967566956878397498819735911269192683494630248215089488790681612995931559787903252785324497888364955389247621036920364419489708911902822615422732185833004581998679842319413516528140409831825207298278677675109271503404342445849873391973072136050617494984665032733098291306717342724817737058881499829394065779317476455059010088914359408647412482401831269531724779355197125637831229797915207907913120584261507369748753670175301912006538671258144552772474246519985431405358825853365724754913859812316339091237608056356822738368162721581032124027779613443318275781366791041330393641002487832621777895526931300278639490187665085455436971598640045512933189912409596107333447142960589286597439028449641772228810303797859985340102597385244737355744840863581755432710609854041235865921385494906825414934069080225398995859431096350002726666332696876027405784004288327288339290641209908645146750841108952836152161472269793116635729128864519570815212301734422292795635087035994034204278287393201280209243093509956961445129723408949611164718232717077145511011274815332046479248305305917915450206179623163014947050110183279456157725441683859743259761870527454748184398678227105990570345049984362095011683408635676919786437763990511332174071482355660709745910412296792751928695952544094392988372549488001403004374683852608763936395499124504397708570285844960304535320810649168215782577155122048186458681348964397581360145869410115057175644519658480147811044925094997589595542859339005311938168184203973872592163428219409534533914978605679486677616096090990234522693551789763202480699828295609740883264197354220569907323664199581685279562062215917249734583039642756977669699466570541472055357027595921048907150461374355335531069297025937759376199062367609365762903061649047017511789799088814173643006769382176242860561408858391488687021290585892106421399599648641664614113276472158466868510369512781326502071224399462574870756967691266054158203208059561488996567886501256294303553434068759974871129225055842496912994570663692854291391672876086887097215017694668791094272351912732772131627740024085266518122286484470650146917002159609109611374038330800264845187761970051405218968552625270808532401768662450736532068923490471750178596775897755930345004013710954092975112848972280650432712083581929619329923185045955040420152453990796734758961824885491365098459983761556932574355130794669444556580604500631813365848082071743625738776768134628972790921013089762632363473154467067441263657434122727531898924872378309870398845903530747747790917002432304923641659299505951142158810294737612165583927398369620435716523828817733079333747171643190743585317456220507844288275066773145548053911496434752666005266236291324541191119370624801200089507233583325704377795072064058921932610165510436353724507598950564902162802954973849981837774329314895428101626444590544778463470548131875991870415692650142993138187393390862039520435165358258389479756586097460103987096076836219651382928258791703418521166116941140997978664366857195122030314117959260816268312253328552398047556503127282091992076620122083230393667318353969235732335771231672373434543671972345270329507942654001113344969876370561000613524925042487717893687345190378995430871075997586688021394240157736041054002207467344105969339079949612842442474274149008031969612058051043941541322132380829102561304532224706365016786211455234532485777434458844043884672374652419307921500993985999029114866835033589661473344137051329256489419180997876353114914662374230250311267479835290811917743425633379438100319653946038356883647667346836517377822756423534750843710486520569275179283727435701074568378073861656522199518129564096892865111072656507877599518821147463264354753932302544437034473943195164588538335471147154107771533925996817747438050407425655180776147121783025673377734500319647494398838794259669769526285190320972594503417186241615656871712118160762380156217371284531722674879040864620827799135318039233643808438260993664299782170785095050341838812165773899263826223978841895972849974336720750176542768623590480061489455197241156909274099477947457339771065958301232548228033515373289658128312451669805027710737673512836804501676665153256305974643344016368002702725054131895244532186436579669449521076511459779651277280974303536974032071046403072319017152338729727874652407631154227755604696122082718883652852610040291925606246079720758238138579214033094796953567621725651624774740223259783224444258699732269270067083627136999800237564355245576772986494067603902533170265646916622638207290743340212166209024257646517274756900997147196019414095748753222337240444577817515024808631141926802178440919719094028429900338800743050959242629629226797576506016496008648401529002164163883290058903286676598303363451349144513438996219501493046970386947227939461764038699243127059580131052335037322927609606280751696952163141529159996556301304000288365804322052333589218871032384916042214148995723819428464249970760306378181478991616236481560484464420838529937823688469165863124357234694653477065369167518729314712619516622581860895006924997433708175814233654141764363043000365281957475694978978816288868439235829180569433961091093963971150767716787483609949261795554033774776309401205500795176546438579229596971207976419233690774146020823770663962252800305114833630282943999288044813155358712044490689791369501020143572440679344140167030950092405786451022435197655723895308145386086022828263986335459836921844657924261024880651374873893611922383163776812026996665789098435088898924536501980753484073225363113107662132880818733791671822262581421631065021017378315590694431890623998098903023275874031215995787819302729073896267049080617910866284677078094887974778954875103046130851251879236008533799892063929251582594985093746480906199895454943970306684094124596973077483268132201298114537269028844848908813361383851439417734545489839977238985549003600859194100435998679179845688597649255577834846221158790777092499417667062451678986563953225573184102434014391280360058975577308492673066403156143806182253086436487499324625211310864924232920179906350520016133855550621786918646194371389783386221352498675832584474655202452639305408720682331822423476516027527342131358926946151810659357721714317434114644603783691810710885254043314642911287369224612739670139840061121455396948161793054033105352798063309779880973057862068055468846183242637500245162079161056384262266754259852865620371361168426189904676340729158788543371997344155246623198263129556747490375947342880646662249945332998198040482740885327860659866649562782184752028140198453014228927642924843005187440600720361904664683094972538446447837004458721889501182189437958595829755089122033366328698522887110303393921788117506716407263608975941402671834530049324409638814419351346384419634364859815666305499170086964217840387725719589712445379705262292417747575258221057702984153330532100078490802401161208389202390062683576988584680347692498208292149062415332894334092417355769396498963975464989703292757768630231831919816712579443913240471660770052140563119545797759406308593142780923666277654413836830093958109635275819905773783616456853358249253834397613358433059940457910668355455510113190548700258980112921504842919627876742582578614577632974937426805651369237397226003349366632919625739881310699257233751467800029122261161012131791553054134442678637513184548218558364782305416271822832010012630287295716460071112063134738033774249500554740002270354855968561176255726404071959313340401642380038357950004111575821786610570343111371055000231079236761150581209554992331040704916722056118636990741588458264357199591299268904516023373421911364906482667483277896761983021108049256116266382714882436505699304824007110316640331265014897812779720368404844042155104717745587324801461089322740911761624199783487593674637310482027463992883043439711475792398971849221538516989138211358029801028804030346575109956897478832756486986981974461142893245954548650587867562963171562291226943569017203868681436047171200602683982478895920790510598569607616830726797282502021053425329562414497394111613059429690024372648384875914793278620004843638609250322927137857535822465165983056566833731605181693463501227810343980033377136022729399825826497253253501746769849203686368745696669227662351663989480221588481662555820537857197442600366391947785032866732240774223012158265688695198647713697647572642365860789781522417645325458737280495220040871772336595776565303182897843411218712598779212891580179688211950991165233173446202015712673576067925352720979392260181540549060068105005510008159312360362656338435612785986004729658546917029341208146685017750361101593746519412029924945882189802790842105999643303670917009877741328515540555535470615173490445658782201853514591942230383213038434045738282221546184181056473307492195964706427644414882858873758701839056306548919756774852987572223122509057185465635387971878271231660599113881017785554284757028657721169801873693033567653272285883361773977418281494089659443659552506843645371703919867654794582651588326980564657052057608138634127916693184069534043294292514697351075177376293006524422430283529147654485639116692236176295546994448502404106247618909633025726146708835393920530824606220935912006341964740319543428595350471762777907208659632625808258575392982735194287167822144929415820359187455516122771192460483572131881048581593311375440571756448840904811568467148302791739001767717225584229087444463797458682009917445173784857113248205004292473414137234706323392383436807155527525798132038087164843783073321923497461000007210337434186635731510561414660500321794217473345180651369969872569164098725086478533736768561566749437409499819402430896227327645120260375451163219727896099884672622759520457817030359913013990387064012814389728186799486941448279561114335814515554269912043790887837609217408808321016741324551623346454472197104664988640748959513213568968379283107433671357588779061035684183626935485280001438977686069807342243349583319187019225171082961150731842998306779056067155495900454668502682383303193533405033092700723215588727389720058214050076340540201430956645602854339076901305382678460762970074549230272839313807705968268168011920961219429513321657029105575234343783211233089986632087695874102722991795035320471316105551528169044306035296059581775851788521423091591704257592257236760749612606791975631819411282882225220427362674321759235090589727554040076362063749547696963305060978961842098522205667751576739361519120284527267121885404344654077321641675205631681478429970019628341361236957239382568507574557004956100615532857497683666055917223573265777465914236533564679454274378758435299083531432459229843446519729464555248469328490115409927653840955251611182392175018836168236185206909762994813850723493106562605090236015830970329589944797833905369362798976432576792433552767578313530201318811052490032032239318569883005719697493278729780189529837522757544217281117833713847929312836022267134305596064289075566070924947831470363784276397352250932249446629534958027578723442313147079070363663506839165189707188348881656971270888599429010716979878320686180665626691860610949097350035299224049284718645630709468044959278746596017423248446290465648204810310450768951027728303399532428183465952417386304023161671592167025058815021984242032653121887598848939399206901922092726633861478850540863673143744762717439234822942788451762877312451349314029085616006276446698536077238517828985936248561989297161864761546678870014133631459409040223803284049943704516806017715668311069470168777060713785504976043203652025730527779702648109190128071002106826962337868243475673610999836475742151345609834936416532534617538415416819879325876338693007245219364567856319655207356274511035662369170533803619343369421963375755241947351731275190840638607323378004376663180317286803324876227671003300034431021679873585265352017961006785989377973100400573682976800615640185696338774904411771436264148196286342034260481424415479631410603626867585486392123244296641232063478188561846560224512404626494823127419114417940750718886116637863074321781660019284943892022678052595370208855366517152639852637913981663119165386077703849005232753446035912822501791098362553852972694107642344735774584318889687833912759071610405168168498614691473468901878464578810241512118738742871630181421454376644906109864065287204612473498064930148311692378269299844555342676952827226011732765100042244919360719001773607691473690840596643565920161657966770074493917885922810543859539571145039300590282027441223509790266340392938311821876181670416426308276410669797365576572335082863768493054102678268462962628243850107156008288768832654093807290865732085053969163227615354699743990802523722245809691931084873851496309752960591191084910151769041320383789858941430654362846696647905041470287744715881863421925875648134505111554196525102613451340707779342942215904518040500073687978483521596187874620042303767136629314676575299765320678408397173645651588761605112738927383027279601090223926847452911267050596080546957074575846828324712102000613009333453158505555293228200020621338119012996453090101114318428948803023263179719901083997326611765624114385776664524348414498303699497482336758214274781235891393311722956798158857075341113889817150499906717873599435361607593655489131789962689223426635156800805437088466688467920063536222138572546184880200766713629806830794175700409393362029631739264377779679454827595565079183725071407017831615324454695265031996896645215411429014623029843913412854512683537701529928503102394310063169982188238117454989550535069682581009207705731183753190166720737992304625547051827390523465834089870333678671081229570759407956040494716219904870431220237656295628536560876821940295916158402110071080089536889204524740573364498696288402806334284902452254009674050015611097936918317897475203202502931853210692273279439986375897532703937277211655618184251809626574957638568610660164401668125048890422153327870463556502966678507718505419611155459298708378028750054001750405296957487575297580775596526805786703058853169808096153382766344993949344696315947068996732962041664670440899006167020323332135675721759247957279412386728166892538273347270802720224075537641783252263317848414755211590708238237500042990593113959419790802139962254510280860428195363947131336775931813194191651424873665325654454221476301563922992030336258469283437947610182709729093349680905057335364658865138569569589044548821318296619941560818230070982632043620589287963884790018106265221217006267177186709078662118602518572816096873613658277385800146654216696440098290667035095204734322418356024263324727739529187135548243046168580202320118475971552624328216981403330483615938642809828718654503581131205563471493508516174554251193429791752342965625753435178773283667387812096425876748517254739354376541759561693985680988621429323359234661883853492821794555800494174527046982167040771644444699143470958100903559331041834791583837351014231285371275826069686479748695507394428555383087640415991915664701995845717660438485746120181727405205556873150518175865782558043105378926293922871748263340402398328297141009015843731796806793946310611907521846030490732659598846898711070645125486846614426064616621744418687267134963269899523182744833205528286651539829511548657627861404095009284329988551377011995124142639365947732886842473387718413144979100625175661507981344646766627915480052436093615479236831838274804199577540349331437555825702177058398987707998334767512150840382394227950549039290331790008779283872183620312517086904402521442217865051976248497848322312266648560167008303424169863485697294753642465975593008345779681429212067809917892295533412694604639245766104258060713515621261134894005446258049187942170055343059233755863680615830515356611188349249010349171268648465085008055723414732195333107825536487283594894656397469124839687184805887451708445684839905475439316826107258432899210238182151263564494485484750461959332863864700252650449046437174719095608994083568649954754088217542144618729365975631516007668900983895729098122572683737881743938721240476620192139921426557420198034952939931240258530742152135165187659001409660609685967028832095478605661302841064939827817295271318348175477719523327756702320819580516379335506036027542979128314026189953484660537348083664905150183183592885990264484509601903419598726820566824916379180016664728950935707849319536782182639854437026871368089916545162220499481314435626829184982660492972851402692150020907165280956692778590923486159209634375289358506745217441634438596810543068216273569697708623385984660729280574397312776177045310615250985958990201322299923162939299736269158860371234152406660121275455523191029164189264867278522476646537637316836778325897346258665367539736830634690520720512643437443346457988151996754492120568836971172713520756061618026889271991553425646714526525489691555509074647266211637339772692090134055356769333138985912634221064685250834319865286499560043178230424715019842033927100488292824646306567605229001617818560284263232634799157666136373185317771553459665786201901525782192298855057204806985427486152363232061231483049218313990004489616148094667376314499524253865891102300638875291640815336259526937435041074774321856336865636632498519071445833157234490402072084530162857539183798751729813230935324727371467920514291584235706840309886146295649112008029614016014748224743649377303783188574278838677369849891356075440016720962591094800065836624221665990454347478614051744559656691830876175000145733260510706332453122849100805328869373622278817097918997677672718193988065858937123522156849323334362830142423583494897300322207059954097118548261878542369613235454886995107479693935540446947173817701978562881149049635214991795832049306846040913382968359158442444695676602565517805516226492448201169523945292639352188827920112887409850729087977324736229717207170196210122728453477347208079709052368371512334009576422509937309346218803164281281379933825633350395436367737082896697117852795199946753840428618701584953966686401585316752528467534577202137475761689671641344532685423393555027887826311414915028838772098257858246570832919095993403618381280274830570271890333854050276049934605396716720555820729576227540437208540285668878576760100502111986644871165111164558103810409349965265189311837941715125437522676286400553653458203173972525518959446549866840400963152384779491538851501213561684194741991955257356794394400013527561646333937059096028038197727131171476981412416933079651046105435632615050782114431835699151796806926346293718645826970262225127269320438057984872657922887544664580965733503737658371655830233400016735482235958304005625843145726037402235124739229445886338088300061540754354934727025279082152364464953864014655205759669152009222940089403842465072551802676134411738908436795978064906376767132086504168251596755842338958589439172503220119669072844545316107857155080993120014508153315375957564268618784386892835249734559931677539792574649377893378148440919006868240908215768480374655689825371378942835411766437757479283961085274864519047048247197815107656923881403520307706738048389981474252715539603646896985244880248610727517842185126134511793382102625407756223460752763201924500485669300869248513109047752225423939849377152485013102739269088162455811085526090244793459258346959041430717917753774349002551265447445718031644700881506478849952790115315336742758481115759503228686022593103807853998960055197707496754751356812115885901124304937460487930100409578356767171210735721484519967179712432532087870512046053545361139315876745749565753279123053979318628185429745397294283228498064233832544950114482444424207932029925448580470340880169558741781959839755965152353326763458128686425640265428790587835009807525373347777305019964961138727279324446028235545129922778818417268497085899702804086981030094920203934656297642405158569725386184480442086978814689648093481088687993506178373693993152603224768604127809516507247309214669987622431611321077897847447065624076021802765855448559696934286917938258753740376394222706042804299140581236611349368092929923388628779740172813014139478545659097056833856594845560056503655808759995690290300692339339676523929301404288486284629142688466934151490705621415374439036287316488845861262298903437823884624307286246107192362762376024584818113024844950638143424629070137431272592841360282097857525624930185259382306408829412528758816856386765910564191370777436123038277547679930824087086604105754494958965193324136721072377388944232350812316753144928236050615238656510780732549226548129443704695287594201610881698460265919767444182854838735275021168821941559395940722369827744668386360355095929608158649077194747420098096884975714810116067699271363339742910023759178882173884277818069246500435359443905183737724964534120229017294280590200606090571291342360624374117482262658204775707033080308958094968359051810438992514448692727998743038310412186547319505005244873729677870557600671256685292048739161678402291158675250854751995392184633290068270680649564173037436457125055285478954218600708912088855120093945398945235587512084621695492747273490945368830960775173806840704968423280015589246400446264384759756469121935929990970922390099294876393626359186982854737260816107667055303536667357748624229076086959310747184158911289395284377610334279259069771692110336830240151806777035588425628212893110332601515783459369654903159117270907262375761752220258806660922044638515556205131358256126600414173073787643896460284561936204841271268804357085251791374607818975661540310085960082672937731554032390002989926838981283240219134035471792456929437342592304759094030515706720162559081279346017877649082504476015317795953493725408306200570581808718483770799566041390396632707772423009499572042348169750864569419501526709995042706874238967645363756643889755015911355972463278002197648296269165144795732692821296687001637053328572763033970431968424712214550373355914300147038135537905927125897501184421839993736797484450977361148482562756064863638800616990714507699067325590207914957956156054363927576491989216861209691531497599813498638103549461466228222573374020578370352146339818517383823684634240935621144314947141678685658740452308973231439993537486232465522839313934445827939616733960644638642407235729522296354627553698749225125324910536397789355757161019535447391510591594894711430477775942491085286190149432457228422351183768896936105937073425064590740582128217323800050901664500243919781295024938797890185706710050484849388812547400955497329104298177292112973451196484049507034352169912772319344287268270567413188725860724799084441327955486431674627902720320477096839579023731824329332335968477827928917685288213215824202638845829942142015888582008289032316294785149141243959511202043457812072214720822399292632909125623608315562179632464722742586013543450794253336086438753248870396869600218570757744762988766084875889020096738447669899486847923083644481503642948293803358326735186668739189004621902118613667367459082636578572980416727125964729986621496608736017039892441084180338865344036029050922056592019163632669436853337072356906765491778655832932121565804852480952239634272594535863521293542834156437554656914680289687511465392722070953487834293439880609194858690515605778515096406261253824386204025347872200149137281364448689611572167507983169464597973716087811081684821458561159914963152438672115903251656926723709986538901628709023831653457785607052048823583699154031078342267517695510558518514931569784298388069305883516725527614622360537816770506208176428105536868969751416173081141096007053670094570480800739710053003955638220057779028345875457462482633419233095988282129999533360820088605303488740540155741059664522421837812144943325229621739968284343296925583775946705702211145009479485719501264037009208910244345917131301930624747323724809268374694386378183658569643822443744236165222947256982547795596568253484471436424977574689337842939962899731506873551148955989038595324182809676754573325272219507294212252624044747049461647335705947950684619413951662393196194598703089204076794928822115680595867806154430268606555140904414471657942506594590818528435952606047142872798230725151352996282570218150381100243453226400517636927606647785564853760183560867918130359960531668710641019244053049486974781675484085432639401188503858651964616445139303918229421946523511653166792717790347911753172726143870543914920058637299583962571456680769818301791347620806721758381393795271119854092758444724109212524069891573596441379116202060435124448336204690847232964900765236040248351584787382909433058344017030566243640688911238317410546246603719931312126823135366708045534771395938587851234558356691719205118981339471662267666900791916102818856156855120456929354515578113689958702043927325458856128468811574794059557719526460276380450473955449198567713955003737530525374676966144381202864314732585187971018521917204526565162475951615430503838810540918745244710907954213849157836092375833845027972401177949372453389629105841280496873671326831739808333770482091862394167389004609104232611305227424072827330529492364796338297365010245036788246310911013198554473642501079262425360922449244120863805379200389310179456799459776547868793678938442842539803006644589924956039843838283052218004449216356308439696190331959687682698788804024712788905980387921126913230099726888702720684035519926540199633837115956280655636698887497852815814556883354860748189432837556651818099788372106845216797518419272957011614109526359286194898494466965664546904147470137030907840049639914513955977236626120644303245344036131277553171709344384908370813677325801843970115012573934404873366129521363588023797408218822186807956482604803870406083676535615564657051238504310220152565162111503115075405332054252564509397415436489157297836279579399895161381640632988628657290483116207339647385522505206815289216292574914432698373168640535398661572078103222140637543782342226538735223582497142267909956538713722009575707868891450528842384950312705455031388719101439795007538673650080513271830793644487807123557276648291008411936100071517627224964655232383385154624182811463856710784836604976660028483269154731690298371998436079781886881840245976753539038283800565967265731128128888378136476372050210061877664067335518177590269752689789916120904397129694458434960794164930581157023408826703621785427936858131926478427944813722165248561896472976146872293416036302354838546812426844644655943510051202595255470147179196062088986242053355139984214971143213556811432081452081327988597149409046236218988501738245477065328392953297056065120244437552543183012832120460275535802481160480414818077328750788416366195169460233768984180629180521784622214461131826850237045472842490690945363188420548457441896377650842939179138473831372653856999206125855336755664518063273832554024732536094518657720794388919563101473827948548972436163932401397861488305411046645557956767702968115609487374085560243578951146963106417763865782883663753005104719662103454414179164946321435953144672932004032702824093493747275327746615202254324977039099002351457979408445771403703742721429937744921771171982179418254747824017003782179030574850157379804351747244676728318337152537016702771211725480221101247516098832039026022079923546665994591055916340655435820273029288550169694821993119766399718703818106714845798231233397862152576566392886942761134301374890771435964852250739715132260193413205895255006618017773017743620824704793971783174618349758988450784402864314641504255047015608004815164072041280286254072979350268964937822408040511100993353080455116326861492532586186237261224794085047811226481047871360853760062320467365967188746329055473790809548919995376185420765507506388980454918556262967441912904812542001105883014840229235876562637878997832340101776566772456700012648136593809027434265207933677025719988895615956105621534122801774854167660949251479049461180918270861863124977580976355168579461925013617400648794671242213428785501514902979145366911629321851213195653838310139482553793505080158442248319080054454950611357370112917148328684785637164016984950095573224462497189876834375114818999572491594757357012944120169695877315106858892397388423779277150324267284415850504759755182277540687570708609671233089661590277958026713455949878907189333172898096942587250258735172371794542777971767688116102746226919500632830755985966736241682343269897620658854504157770800728987937068616586211737420639410398409105324784090390477416899851088827808295680550231227098675881635769218895229540423253940263085711564430510850001363568157519829678369583547172317832420196359254743366610017292527126936834300919133636540532506206673297775234586133990024696059791923732283151950785096724114392271982807658334821268051453768970896476002954326715855621925406399500890182325904415665945042711300656616212358036449051303991627407279184683168599484481312931790272598881125465639605496547319519652845321018143502000671385168001824935876057251131588087018090578000366781645156394768372899065520887793145580047238010077318505913323742442950791358976250624857651486102736373720461558064976065262659889253274302679320124407190912130543468027077078326843629493634838829118949886336147649404346927402080034142002846353122381611486681593659872115897508491087039904457716797188789323487286483447055689651895537053695096062294766112961368014311838936747631568704181461352602118182502851787090847921171426852028913684839111657117820773836423300015069015600363118706930229418562767599535043095264209835327202258996167235543257981367990255863457516737656421469231496888671824922234776974286820629224017916018154022363528236731695415665917968628027154024790289370983143469738128371227762615386523588273245809339190507623022048301431920538869337661362657731530920812471556549012843297134689794931951020269777760290556187095703888011951813293011614228724778269335232909822021412876261633363456356611641474277456574218351703807261154410348076551681152887136843723494881760977148352911608617750561002739386042800399136362081609678792817931308562135978311965332441087517582740712071529272316435159232297370527856525003982947264174424534421609458574779893501815668464286167976261838661749532622235531486971696126985393984321061947485201321711389560834008945335227217735842639586606528944994459525815642292545897473660554799166819208548658553776226320353583410686779282208285428052364570522838152904514959521145761616933135192977545128916960404354597208179467214781709718633575329158166707357796258610650908350426701244184249869622875967461410593362218020045584069057512400477047459981457232742855584839186453336968643463827738984711527566301848171962071832630181229935334800611539612431695737600424002709345444322230709052502322812150286592596166335855188702332890400815703200148175704347105296599072821063388436050763982554143013467586960296657790930945491823665777120127019895171666457377386656168843748340607900425755159335427489883445371369779015211812851224729838237161881196141190278126229247234106125428861805170761321438797333167467112227682125794276341333633603323899568383843856140212713594121811738440914745796697229130392728829773172942727111119815109971564537179139339157532009764901246108220739375551162273621199268842942377606311092819575752415362087285704900640959360832215999645532382667243614603839597659031926721600939330322702484317734054532881191910364710060908142732535620627068189499677390818018903326458158316251773784124580450537242387422778617433413222410953711310963930795043390584845517122434041245607422435769201087093235368977813833665642387710981858776442057741373074872706238476302425517445887660411671824226345375418312600748253770745195656838596486317974489862200506937155207526988705301577571701512049159648852834718294270383627670563169880875442764145129488575769152191887243876186571109259527631579271952053688237411555689451652837221101383185472405031527915791625181580977468660344440779830559979036970019514903403614746918255887630602096571866389574943995567363311764585505956028276197960510668902677018942140220511137705170237487228363073142269557314460410163774754428102793355003025463669424693075624223034946359949647993893373657884972963894795256657392972527886509938633379836538250940513122730404078008564173242015402003668858798490559767569360233363028573967025826670129769509862961484729058177189132650874411507756011814642412194968644881884900879397518943170214807422740049634242380423747578757581193185007261013503734620534856497667711343467979332381795698779843159733256654923796656184740346373713669996640921803823608272486410813248482862445213931540118779575397024678001960770838862652516572004952471216480218791712749546027937365379669984152782495720145886443369058110138180915929822229678183717508570228503538347453842401633445145049247087964040238817516608129826988044733081126282627811338658313773537861135059351548221443306193684201557148359141929281227839928186719755250450544461968291764869628795546772339421467266730241152160430620524837751338667531777152262399481938766981868410077466551797304036759518994811259001470737391844353859514802441505434162998916004063491431216118036250363959127530128080779293818941459496879000773372269987707941482315864670362083091722332973839352700244596119866626251763300602932171660242048479601321949319047052953690098905371438441614229872022526865854518606351834494481370527903769955626882285974843108510737017943541682047594793988363806621159137423578093454972171282610640805983814367374882079534414059672247196585947305736486444135296622455636828948807885161051510231422822201335963930738368245505756424487428437793581572539878515653359393772349580119289963084303218507836923173587972782720550962926076133030740375285515493847304272145372037657576240272687453844909240061800355514464733562411758375496313186497220107446243059529458258687024450589763498837758704420431620083986236654607096637326456316826909563950701768608392618106334769913158234861625026275143439296506283776903786832086250926267963625807008210551827513538648300098338388691230171783629255744500939766337538413865076384315210262508775419089146723507916091522488924681784683396525732504024216226088580475003262718428472466092286015806443886881279121957903597206872585917945109550183953450685735815478672861815715516113408559290244025887206863718447204618257453078426030047658303508961805584627216641369875781967742442264098317093350874441064779461664510570963804014066494398881384896660372985127934779361335325175490090382931238579626056204584220067545577911381410469005351413529459620367553223052548996298236483545202963379986810075607540968557021213819649488609464324499685353291558568712811329023913774868818960711849980024182088728242247255775034589064813712225149341348289660584396303275566288140739523062798265351753589584823951812952883470705927605703329615282268986167602972325167729946180995273804890963827988047301704666477436235150717395802399428096343693515123284193073473415512781827986010117939639080465721753592631424042736235164774257447957667541022149524051772003962737099074994187421152821906411909500231006148639446893730082248260667777159500542508316234508444219748333034819710011848134002492376114269051159057618077056501624074272724673693340429860161997472684522692407728846457340094112463417418015192940936313852932378521792508110241577910668645803461838216945270936016480281526087670400558050388821580038682059838799879190786658682526445656845935043148436994209037880566883706905581840243489050850789567566638614085841715001725356017438391726768338109637855361216457051950971383949567229677639533267937557504090095623390568524015981724208217615494132574602918727790301313547244954131449744129990963016739019443137639568751242426466156752262270606824041545629075164711313722532182925661471673190936428958736888553032139647561748771747794134064104876276534143673796837319688784380961590444946592812170468782852230450545047589740221652172260471626751187104101802909547036696940260415954668370121750908129760639537385949318471063929972593235930962408092773284412047749440815601136007993981217942914615100005081857548131038416584993957687192010631557672482060612382257236696450422011393805282359735160796082090029166359376922164735200301270574210396759964272429217862327275613671596483297460907487009749067938383884019072197244830686932827888157934193736746187416460185110450909453131353108003040362605889003474199390438470449675597763458300833354678583165490904583800771955285606093817438179013574472460992288928153943520429999390570396725031822017326066944990214535499389818710222182478952728071257725026277458283773366774461119235217187853451853945082619929359096347195807891801821400293759355536665963324633937067204454722576957828567549922524729864375429421252892660761599378775972244231371818809296583369066296127907131177185768346355850619037188487331010427236253259398053866477844529784596846779072961403252752519526101151038573301215686380104428465215327794636177221864712344985784305952376513312938318010205962465743827995431674746317151512376421141396977652534734998863871376910127359529394319188714838188921106308360509704011097936152197742929515051303279696350422601548156633490648274331802646203581206874415692785548250897424226418277670340124901930685085019639135832527906417397346505215987509496173486305828406406431407012749985809724419621424197828607861015925501459103227741329615074416056376470670459474666588598155150094183611605327403234757962291774693067897918957286687638317998613737898711395398156475693214059041768784003836236101037153278288975972174505944366224967065821440802363620669991178773262617263705986527514914671597777831318120005918547903727964950161801035035628648626768718723430245127739094810639053437994329426809444004655661055530501064355151155757060004137633952164920332248123596637414971288563630396475158134037683376916475547202509339642485573801214345121460807884142569537444634794506124937552028020449534448157596750212871374940780310990820765338606210664565194073176745209282654087924786103590035856581784992868370102433532171287113669067044418691539793062040706313959775944988215158858996204684799571844040502636779189470294832397020565702728946058123990803605749837330192595140768881191938471852529822977921261666439520636355735145656342073345169876216027303020672785434218880269147334085081391497144497827736606449954653943694246501829780194926248683561735140778650737673037078686747677513457276813840081724732523527485529409155026005897989307263536098589879580925596149725952379909878085122043069850320591578603388892404320927833903373905038308627539268773989478393581297609855184871775658431638807645058567852386063124710151570951541084081229333516514570670341879248481907639612568364658217977786150538073545290329603705093722466574660640111212888838105436716547995507130750343588843912770674778156210523635444027933605302029699469964439171935656651723918877546698123466773050615795468514191720105971935665534509754260410985923378388989621671488019922592957819692200435065915403052025857212267576458382825441880442141484510639326470292781795721163490490464401526752136988394274097178993993147868668823818636546760987291554133723925869844674434376763608377700579910136672599168573662956613238152398159081448954527951252623129634819581899080588580452036795317857453040953163595411735933033412011846927757354465048921396662001546293915650292958497784520271092829637294703021501757190185079245729580553520943709609615962762779729358136614106605584041495594863829188765934070440852561488998119849202278504239079760789757927124653523037945690913434535240216671434013920412328931809878321970169586915261306560695942776205948509451239971112849902289910482862835979057889249669177139108755864615268451106908975098353113833262669351116579550267353201239887104654737406842167231816924891679722317413413957751698551359381048719027396276499532656770552825915060913647530152065362248056943796795467811278909020614716062726188888048087983194068942651832843950710006018405129317644081697041327350944374477366036667128730714924467964804030772574139570820293626568334346203486548546502367407997656391889482550728378694468409510458583777651896336531753325120846301141358157947254906394422358433002278561982196726153364054274200772282436309523703696307587159912267699658429819605562173221120495473045292422777888615261984263071397618909280948331349969850293779228881112671291789471099194170460460181053646596944182374891646671091017436728536947259625841915439598961851416748446068186514772633317916601082696123244565345319856130355073150579919768646712258654510234659466393924334501219101227572255003483377799941659976547920704873680132991706395198240674667530162278959590151327227617756726699048854265618413434404333310465020318652118920970534888988040789147689132046166552458508537816023672797119555796266273606796296724672088784686393300588505604902320845018473493326960436794527865312873470777939357445239134048597778438110852420786719575670474370678734004667483540116704663738102439663959960357675102460759580974916412210999174048064516508968155911853509961282073202900315046066271542192946301981353876306998002632351924300982730741800091368704439531452023027957319949424673559477121561145773064372364915688899310788622788597649573719721640637551225977531277949709757044728896693507875427164293821307508381705358633966023844789795566137059009104322490374829516118855864260728979524694429481074905118041646272319375318431000134543035159405687090922270191707612149932919436578169222975622331132925123108232173468322459517614143413536259727619286609801586508271633373287639540502431423478336534645113577161345398377531326569952304166773665516573861777159019413262145144552990985143527961741524559221180391598353793736548162989664278030129893348541395128595621791324936571609078253720315205199722536235929715239954867740301398955001755458674976911771953466214522218733626843179063742106848930527768323850389330822779915962198942753819725823297053010759000178451571489937883953244580210360315264902084856702765023732451245411259865821841931796697436113568415479923350461152759648426690756396710290483694335664588450232442776849242079154511815467580208740030379716639253215362272397013885924449355219849678145404064458080818780828115066251289824949241638792432111459341743763560322757095515011185189560752520756322969934969892159658795897783367631907504188779233931913354902223944013769116799128286555188298054975426863481668629986541247670977732542061868487059723409017311489948320409965936676172842556270610262211868038038777015061437735285647922393893583276446118425007322210617193051640949473386720193338125100847686229768260136100852771683296774873359304585692314641694546635352685548590105249401152272950347497633422638879579911363539941515729967614691504722359237030483517709872666332571266740327314054340964022998069495004308587461425780240780626664620091449835486529564496621657106665573436122564249459419312764062984178971609053669909492631484088834507644537365629489798155814390252750579910583422200382347800545230874263017909578672137773541616805147714864656241647756773319354581347381862601257560974906561037090097254001189867751062544592695536543249754530342160956845059561174597353985658553619664429792982575116118067676338637861647603164731066762979699300729619482044342160445763847233702195969730941162178878714952285839277386384712492365542661160074225397162995896273119629685102982804044644909373025328564347218432044164779412544440325875570299850468294123692808643746201743941186374535437279765877885479433238754284920525681678437154092871943814345859490969783865028284365452885997017639539733019148401700899194778643624122719619012244026361400493484344909421033452228065302577704815033103466221708064469062130120112958866824271802120065856582958935564293105324989284276526310861539118862532588143831145777393429588593731875384578762569750294596072296423517133176925420437386507850991498666723107407925708721219166944562108103833062761144702199820696870525746144240877880261760894258357192017387287428617772456001003119000104258197559555252904229159573395790459257124017052230659621480194581462827087383686048214277938212365443219694052691944790420249738202551451668133360325120943681471926095561197253511840695298216984097952556920813201222290376601772788973245223096350480441441930734678814526697145122834114294616137314524739920232327550833814181397630974287658821764253006398276703612254218916494262073692162713334257284857189971356895654262026018581179588744786693649689341269691526536237228078988441082436676178243388620173648901364011771637135314312517240818558818318238284572965217521278875471121792847368204388729755271839825224766016715621056966785295692310737848577223751805458218598139453333541729090981708248431333386326528750439059104275524404373317337434081179387041983084824134664104721712102987528517560272067705568736214584489147512033920081306078515657804591857868004921661736503940594500855842270532648284472085020993000896783971719355376575124315483176382307088427313314456535864073880111799309896788974491705472925821420999055969491658815322935382246305062789835160764722975584029176968034096373318350354462163118072643856087390028091227506321427664436577766778376153997175996297693455077249159779427124506102700790597275868255718271026173319096027219290237673324553047347378494822748598018102176080195584431490790257769081313574481296926808344042650791249512238297490946834277034100685347085478002417675985148172969391886712674039802523978896539202234535695426179435949518126230056381982146514391240972304638391477212955593377601854824718923511463799000304244566789831781924693553672391081607596121408566513771865326351736582705436651295241158038394535524445676786487675816976862323052846655745936686893032036046835401358107849009599060110234720994723165853520665041983698781322322782887802457636366730803148378019557260939301469037527483854511508730264172673472199332204518887304698981418004245597279299169671805283586017155835279501677110418623331656317511077059367644711547002854881184613118365627383077730356823512359274063193673623098231159855879421374334280561975298514295994073811361073226382316517999727185155642906808405569077897084447387322224840625535661876502485346824065477740644938625261599888639403471251925575906946325361317654025908220223797368667064176579280337869948211325827304044095725557517608419487017734087420790356250579812233933248961097828117700913689791440045996995783009794095857353681386829841289642002087067612684209528450043823521805407774458554409689822473760383969435971916943049515922608062147408050849601416051252381276256804760458996267841726451394338066372307348705345122049552033341077451829717115570481979282036007965708081348552607761868510082354584603034796307031051628393188911678652281634409067257612328447336502779920923117084523791413717445416518432536482235529106690914352114796928598543262042947594407549820803059461914368260835255794576248847535750378596268638617209627328927666578648558075826980176427218357426814211590089503916680311415428892439991674927880310891359065522062694262418133548874677345591368430683590205113046031028896908691731759282824131559983661340379194950084979165302025703750997259168711970974793304421422739039303120292470553898385058143372486439659884114024162601703956864509056240392231753283837944607807791092464337996741937917186806793277260133774465813467092750051521117588347531591423542600775963742637208091006696032828926344760305633253261562875163630771933144907562019120559572542774615819514229045138350755197829268209047615203548863869649958675928448311391501891706788139351063080824806119500233018666436891694647165212326700376308514846622883524388330996937639542711384504881399849941551821344056861803454573925216082211105286793579522451854705906914791322707613351212692794820956459015825112109485190784087163667588674827186412727984428985729279610542417405300516035750165888425077484516862579354935185143197423405297953610002212778678693662831685266653116484517076858758970364079100823317672419689125804929936092147285620772769326436680828609980996554258052361858004996516851362529923040096600411742603723492884956981484369796751865720516157313704537603082237511281586346901616862171973485040251310353074729160038325165636282251357755765430477645609643753915124459690684682112732147660610218018206621528975824772454269080086375007409539339899582551454607929976999442686945254965099875270976755168304089891257848499032436338411609130914626688739691647873421716651443887521566282058430811876402478635159630081853907028764472964760414169470605172228666626849962798960117122765430091436754034471829420485471653608561996908897383813970462303886919224999409407487307662577007703799728430900691913689908249580951997386270443387305220552127379310651358967003279700111121198929740563048356566608504749152418632248812391730024025862005579832450189425783706301589300071318748611091764562416879147538492611286090977011695423580566570189499758143084106266727303080504980176873581738651543911060238438823186239568989682479509150321826289815055649172787588395984004586269570520178358131145255004536976895019327642024577407507960353075403253527808600712141253440469997878238123753407977677064867329815266253149384474537340393008791517579989021100064011831158618691029236673068448673378529996146619667812934770524609936102612869849038789021579830259265497876406003543879686512869160417495971366076056854355029743841450444084043158119128635462603653005437880701011561303184562564289273336876541004715468414583360230268592883970798761177244499387054225579130743949306385887289987755111412337387616678140455338941572615666429816921784291530655663592853901362644043305461143929432526327161125331821100636680049959858732664895083308705795229615665622816870663848075317876685274187513316287864599235523440414802727702116432227055921581424619008678191869081073660099870882780702994090325446994150066701077133576477251981235373908182128404344163151720455399623613060083931030384358729022443524004834824872388206352342021336861436635253682690385766992281631105282928601792995517749461078693564104853949426297734713063977853554550880514552914830987403376356528064408121008019414813628428287136941093795353337133431658201299126909743933037979425999364226780337878106287140676688464400132492250105768793095681423188639794907217568968534242508392165713522616873820915137620459320086900304440287502839223859135744101839837054147299569492114051868955385322084191936471502251211710123139821904180368911874559528921510981026976112134730067979751956843592563759684384382916324734310972058286761408472689437383931343276081293681523671834385850666475414146184773029471087593327060453582027567514946179433866561138734515061639667245733088944178412888577997648840539580610774594275089023957213395662543458978308681351483477593440401103326731705377269928270584158380963143139239403240560614755871767090114613885320887977556013647958898555000927258399379171154329755700664903578232095602004766849665891370763786301243713933107018413267782594003924781712578381884966590063940738208404393343644094618204844976789952914323591004985557971037153743079380421287604657663863450191068553434681679746528947480136673377874010209645104559910994838822623432942482423212679556195203697668998859216300294406529406718703583808932142571488298670821507567217439013916225595942304436275727060477130022258482579391395886328248838591343672991074520053193599944476221586818727479414714262967690658005179896699515185203651700251061984679488854621040827296081863734820820891952427427864380968141276545931809805134022905473954311668247475454760267909649785773461354552972846149939162422329572119043684172437816743738886084357874807025084946083842829282868940867269733474291682722138650316028649191108570495555314202587190605133710573818188032062047867532494078966519312564679422243788615946969622231497635455420350076268441297986103088159235098678833053935043303935647595934653638807575308987419444003133162434370512446196105616131856541632975458842487717072175410325916397122581504757899470697858463804960129921013740386372055791503529408158788556976237856571307015856633481812375319067872477329205928432479512651450115288661448490763861167457707001593618970528120627792967392893546566810778342522882487199183432261643340268013778500549807827582343147503572537617771303461894674233711080894674449716232781196719511439354884716684935410988016351039704804518582711595143093783514538762879974411313948083078826877855314115291213796716519742651021864179458422623730070088673512016009337638625912856784981994720997426341374865602585924836483529429164181113935912974670000866105811021298316366471371690254395767123768902793524655696820986215436736189363220616095342625378646078457457150020125303631951553350157192517842673095476245485792957514160669267995552465661450651416503980220718223180544468898262735663600224820897008478466656690307541369394801113501705181429374081554390111775637613378359144215706217562219585688344823235701065000364421848147244744086290429607786301621117503961917729469427516727271928043169376706814687290804597647667653284597684765673315090789288851226402374854594900347921327135825333893724286344459813550443028271894710820993462273892949049981516284960339865998260845928162227127306213610384854291818477678197444018555342304587895650763499061892418064910023052069366346196819855867519286120979382825300300622812905402076764131155199197713765051362023470050064209856622057511277195052186469064437862907811837068674105973880038052845945966412300109722203982200996262559117218295426711887369085608557780556789071450580049295628792868707071971277087360531529689719529629457960538860088731977767905814808763449737064106250293407265789669663913622002489771065702206727026379299879985512260244028960076176213243966471094934720281707858762360947564521716576260547772121457061839530649444969661988084505352005404812079125207306451156918038022088434478687030666575418744842538762940074777419168356208891518651153115148889475944263914321639434602438063951783143589982970847474478330537902469027682577602453700723483090079210622103189095318750609698324615064250765588790547453615583779387614627288621233934500054630440841831501380754544924147319318994451083969946512042906545826318886055525017350702898719448255612356867706730215744816826856197806104059851243490700120661631059508754724316566951260611089389570115898448164974419535309719738716632988417634827378563983259239277239800750229101559444130027886855385020049023522665415239782668098588208038559934611313744575506900838981229104327903935139010872017087110655089626460138348891295301622107046448324817314141542150239752775111331119738810270634990372613132978023000350314858680288443217923272541913343924452840091675585057297201302585531800125376491970529329633117460563979017757179671683181417492000065260645156267800346075910642325210348933564949180745831167000398637056318072327163351630183088729084307465508356030129706222412705581294053667903020570962790051398013371448302894856754145919619181305314289135286037710851704132554703797487956099177563231016419925462714449787602458004442944348227665805551699130636605842274863738959350028227159548719714000022175376950425013577364107536558417251133399194754675668771690910727789985870293191315084884117781126425020139451197056239433108692824442993036291702165144261850692052885088044886757927213775585489675010580087873527373002827673802935049978618522539666756711116066930350371718758641983845671586150034731011965063369570421163427673525484100871146400627008987966795007997088395759481987527624043377607029523387317508061952973487841550037220139246763110683347596823301901448091590874086524803456182818485606002617145692622897279050291347489902200962320298747030774240855317605027264270590935212100237083019109596583716338824594708829656320124944653713889433078507369670023752649193763408871609933026113477744483451659642495837030055841278769378379547951048856548234949898835898902455398985622165321051034584032867980689314717945074311368944559657040840694176852697207377862926170815690352709768198505214575268661378040528459124194318911871015238118521574476291836803717881828255535630836259395923797877555815249369741754197942736438247088973075208141273021222268934886259980317451365562644234301844408522952261247977380887670188960853306299066676453457415235144253421999578574808150477471062715647914388184227818655751794893583149354486008791955690233606156394174890634718391409327179126704720349297981465325650623788818991949496375567514279341357279379652140541967453104558941514353676316726960382368022475565486669570538298840188319406867132836390688416232660238548009334306996514018378785934869314247866701794414428132604526761209491277086142907129027055378653140760195376134397016570911126555194560374036341644306859709093814518297538440736422988926305186360826120418654964282767664717867402354776290423194527668060897183155018226875004667403072545382591826553076215671586715205059462891881148184642082976862463302033750705519411378355532491317920807196868797351482980925102386148786150471956600807975727948026121838940470512756045148555393015377289387346589378215412222640323119226545284716069673208353243178529139375334951115289797377557425986853993026843440659772039189562600820999804326376592789525330894277763030748402825050531280671795358308818481731415993576369100005321121882881830311905692478955362092041469810956935590730431483029598896154853623069758994863294108045731475660207932110027453193846231808756924487521385324193782792341207561495604883251792432711114551163578676298659290022485224876332508648367072129932017830381652629835165801385521759225113380657184432632555289101629770809703131505833952875061966337183927515243894849654386274743197147110981759182403738562247400089083144323422397630670314061218777535451300637296149166767567734039798252532240508545283522352720564470829205848297020636901515595811312997730911516808421805465206814007142046667289516013434637764260783971693456068740266194198239630859648059603771251626408126676347733730894811042988673277771459425957461096765017027529896884619362153227750488680759137195844749651887261579566431128749586200602571614565217440896460340278402867581386235725990414122657258279714463481068737419137638524663332167277048235100113518644028524963860949959318732713236416541926488990141858778618976807070063176242365689238160105704026053173169381829567098716792266108020898304065742356444438020171415668718912309437574740005994013015248598917412563631062344673557712346730169163783160773600148213776102470634230900776346015295713839321834694345351934478629390874841477513188528544618521950810985621246715155010862892125960405447664564622955367223516335769522939030729592659175135742081964800649528097246059377410527077987710238051234639534193795503376925740677416975552342328281463644698664220934876516469007543806388383387667834845253588231764286705687602829707624265425660134845608420196745136010431564028520157724705148908141742346077716046285765905401177248318307292725597832394503502865339884100798565511092212572018059709415257833225544739096886050690737671191712209394579470133238984649817134340716265430129342802739567472925844629712301742674261416189459044556045463477469231663986595273455757170876916566555849583716032315131158010559646874665630550060743886804110918435466633409596285353200533327524144742437684360923219092966124846607779542080708238700341452341174129826873252191779726587393199319628777285056533394120207760468651970329144952792492843675145977327016219562057181023228060599711528506384058794279268724223015721106222073503984956508318030864276541722269174572616856274208938844689348357438650402486479335360835009780072725027951991838594111639372244422909437439632718346057807764833156871545529192050853611731041330545127345559450310031580365903284940571548784497997385446936228765944652230647473407970362546139468932134867082687387408075007701450579933573265665687957414553179322923733272618264569461927519212767610037790987275566033152695436416384205832323933079672822043573426801402210453805948261062470398760678142907471145197465591567148211956118969828742051997106221211371711911757200954051580883765202506740111203370858149593068713061069391150347955591701193037155812075834546188650550929079110937781411465526218117719516993792285344315615190699218592027317103933560818563271850936253554328277426033437989455602880992752471622952574598111062519211727438590630285745552659938082109143577649968332965345142715243856641630492798748772224661925455044351754647618013098965288397559145781991125986080831266024315863344113839545949606488551580111892462006347202361454437900124472881942066531206838189054415848424025886348587884566172166012013621687723048672334357460523609383282509303767398755046616348013713585414228061066847893960127494265961643013359454318114998362278398392858260139837506671737010050809203860548123541579765140380659146774525113450099290521080636552715055118482706344499155368405019533155841157080060498773724680767156358583376846851396132946675593574768760339938495236717877761715735950849331630842605327705477343282078033044182268088798757981014972415070044743788379640442257837168877973031315358469581948963848031071000107832998367060093308708604000699922684077895176849476621468594528095851521979242709666411125574314263822138742180746721030704545201559925574916768301528419513842115618585292569078198620977878256781138805486751893740425464251481879191409452298695070783974326888418430142883598084548829045002289122770424503898105576287476510030458265019762949143085534703606391334362071796985391005255688815606852864187983201420142554992229281789134591421581172168991356081290909310237517948753248639702033994063617437914806689660639562535250367606068105215756646217924047129715422603319107070552631909614624765163040536492619262912231608503131856640444183676771056407375854398722412618842100235105990484979995880939484452157894144050736899418963820303322702446193264885005300295149126213637164090309020787113357709977539276305313116927931785778964557717258821263258151672635037256936356043845993848572833838828545214830111520753058671248265236578814770980562774089111238163106593917447009640409094974865690898858085668275932599647997236117769774574770023378636071761277265814267621673148354698616565835129034997619420321136600151798960331933386441827909955142920749446225039208731770310358077667583442090882142447394524598306160008261218784867916222818727768352673829505570859301746007953515920899655415270130922111859615505930157957185520902626213763832995584540750617388100864531583034270041082690566704272317146626385965589822286763909890926764178236526087830240066278350596601760648376641312225963521203768700244445351029238228665048404991952002031464865176878460269556306104820061823015515723826236468388909837991022447995408298563498055061777185384779860944788547080372708887327128176694605107668865296160045740267361755043151154140616221274880921946280726289415225120408277352548017793110274578539127516857405063769221977403174285082281249151618061308388806493460150536426069779294078668982093223528181070179539399912991393533061505366725669918531772524590436313957218691112166498665117361157238173524832030398455465024572020222250928635030412638663694004855345657878114474471344151076977585230609397600768189722288684140494069880960196634583602863542149630465821126040646250783427409966654536520878865287442469611896091969983317749784259040386444575950406438926256920750766503283492573799287074376373064386396777022369146345937459029012150948417098495356643986824471669526881573993583626111026559247395895842303484641629343023759457937022378676298115315188365232219514774075337650965814717852133773110585636541734651731907452856752442926257193878275119454202282260178802640958796992112588315218361338412751122202828230425604055486649019878633830371301549074127299123066388523467003960170589271558447089102019074165211912790826034562550372661017835537026244157591689318543673472031616260516130678186347516850110483316267799049681679432253658655069225476400265288434118862520964899253152850242465615318553025439390446714663051610483549833843525447317528031904718027967501322737702202537952255868469571023499762400872077414283675821148028375451121542723895970427122570233431630322469161554879392977306053792388751770903950676117579950769572886603833907371114265408581576807801781943825286065871315953420931997487840124018717831249858517099849202462557497313507722747388909150548975598182497639166288619315977117631411861461800522810231607541382877750029563144786409085991242777583800467587109949523605326527119683841829182686522256507064881831715407245341710675752274302585478452273740500929292484770164797722643010216559479881534783187737701801881104617325869669858099185295863602873501174556704094741068962345460921464455516847833989879689208497572410704511902202853645627558027349351295086131063227469287267794001706667119174910722100611310521957477737724673189737651576364434390925139932813039202972832100849673578789251038754859888119835630302700216767465820592325820266026194032045824979478447690890614008126058166702149037355216760015424866773765337519001057818796016831989809922777569104652919539724323740556733429407282718254916961988396679845697512332943314010390257035309067144227520221031852048929422556255624252319776473590636157825708905977220722210185937878298631950033599320591398153531053548074040506132398401784903647846877446750552287276895430330974455755062868216677574890478421510593565518672018541816294297712045952349937062200345800841215069121656600122674933894844321587424400067784313423533179464282219978201099904765415643547264369339869924702122681444826273770528261459236869585151505653161977416418257313093490692802280709525922046027984369697867664732930733117029864366332290638696594658203038752222710241064702369152946959521628540530329037041965725110402361953586270582250319091297493672074733981430695306518378056145590700208152988355190929287741806699692383930624930891197413050913879198585035173506803938575078514991987264355466787270026948263272895114085071996281437634512317129741610679498635028298682363361000578522935474342123217784010211361419985483915447125831764879114566913541401511911337075676385132312618269393131575231954343641493170861653917748758743044010439958456814556055011192370061334225779311693990141684429218552637718760479024864891242818423165150346621409883042565544203244117079048920724743057190481226872105762919185510350897026553159555713616828636816690349394240535484529197851208759354905527544339416369693924056196460085026673556069513975404117614683337730262814180863297280521514263283958550123909254618697705065532842946172448451559837081547942141326038376550741378939248114987784776215805195466478316509031473825209300988540803825907514761582509499379808077825995218406200864091652640279801964283822239310599131796200191728041522864336374887900295022152997423938934299558399081688825384246554881216636367790513356830044967348697934368653711822356204735761662878723582174749531617186735646580888893096467643373624912806345414310839691037087226489244929768863506097940879981594601539062802999562518748212281074654422027621998232019886925424075137274802058846909157629329223425730065748587946698788972413107444746694916804377294161117471322305054579460251955428807605620472560541448080081892370189017054684933657958402383977848860561466671416991065078709262743610849147086467502609627819869340870870208401042842907362523475590366717068575420714773489884949415848387677170312372306144010358383643785743804287660115062235670456309301816604599958234419724943429336415823347783045951567364777310826881378275167727802284794941054768033180598885437073496675024656274840950724896202657470475201615508384984260387812878770897987084052288067454497103041244337344651740459848228190490821805518671859795140224298265178725404268488742454586709151864205621786743396127685185948664540177179503742063026444187092164775070010796497633763031842677108683691864316643406542131499189646217816150567540982234191172473904033565188249879977451512036763056010274594406963356854251212258214693384262390517380168387957023301460859152848779244285292878195886279812141035618833538002536622630409115090519833063457682397260967392253040402637071754901143227174985293740831834358732449137354157789122789603417330781447363219132658519802450166401615393451383234097825362501434607930937442397461171115521685953422857690308642049625225845458098445775489038097607380825719328072035835983915660325349908470131768215680441064272852951945176503618242942514361745598663678756618123702070519444854154156160252604117042008034620243211103397302752517915356049816257318439732857417141150256781247510750314589903736942057904852334312692336834460991634549960771747534191988343587897793298053896193589630560788030880061729889661748416441970086954998774347464189773788014641552145053982636176753550991926070981287287972407880265001858714870461920533573954540786087365889519455595736469150935494198248802494474994633119894707790431357698162888763443923457823990323364917756556471708237255856479884180367803471132040849458317160635432491598319075468248284756742221511493265627517485916010566899133152470611520673485820354205950081007448448960093175646495791677789317140465183762779169492282177522315932414517954920983223742309385644210528880185472418253449784166281094558057303040473740870553014643179823264913434607843939329410127921994381379224836084444850556083012763750018001796943267754788338536571195617429022897412457593986902719320888942816117192016642589363076477855052264074693635945920393511717301665478272580839379313716030771781294741568273451528259274870372539929768379432667031166637427596724576932568935758981771589132767842527328515124528775781719160809297236725402707633795286585862441461873172228517511143253243741717947980938305881437159391289423268963593124269343373199120685333309001903676170233718341848775457362149600428094701621096558464985446887307329961297357329325196979033978789569838507622135914297291934051717997365413151872198548612919756198528666040434726772325079503800101764904560969542117737789616421304489728865912529894830727562277402046826105160373200617429158410332945019498813190493618934022342671415382316730449012629156410584858650947158146201496522078810199361010009918604197673274585754141474330397835584660094846303097476766584484225882483627536975957583076612884014584947570619916402881009013059783393396450983944517686388027630832882678449527087498018405405250776783513006118167802727610154800835097866280585175488447738347017211041954591258661491989450354867315266731970335815512946249743150084922028481971109295269533442117261800476404101120577466151896796505103320677648711395925621969377146901791103537797974232802697358467950098598813422508867711040619475197428659671951233955330262025026585069581926514053361322658710901221434889025040024743880061497688702717294996782048558625371749366571253434631690935542250294976080932636057329703442188913516211882164328325446845218280294536269286961887064460787989072027598425175686591551513201521247295955530864396124212067585410598374674178053861203177574001694851904971572078528845839921468703911235349238228731135151716867793351425778240520652984569317635544593493831540407780133026492753493843477840702322677551967466289818308953127636064876211974134867777451448875125540612975717365121947595428250681323019123523234947481618765907671057097508411777409534701423809724853630497346904872377733464574569118324816195262501315912936490743995473092096283372683326466978250433117518585810343738251966713363056316551040750123850332734837918334779291035344314369504189399186179072204134375551334854929322339241531777632665549237639112462430194818557802580124484687595467406125352649864671881805856447284666629874301629925520810859460829955860415081429155958766119666731641064898461812945543388587723674149276669915964389201235682700002507939253329992342519485763205410858891063189704593194690897494002263137981700585889164586091483249785780899744923875626597931911713236235969133212350892176252220618740259606793430542708619200762006006513934144832721949638528435153500451111879363344440640493874091944593857456350468752711263617809941179238921453136734879987829283141380649963638987869351771653014042648313675152863132091059871432185302486946217236859856999147661180692822518271593733402150711563276028243680454209927055066552480648789949194708069493131094409799704267407020350348274651372913050054855168445005118720509892434395837652892443428630869604637249439038218881068102800721343863762429050847998161725032383320528082777329919566198735847258529463984910452593423084269380571737328625262146369011892516942952328424214263109597508453690583222841405208453900908362689674511798216443533514333717601669023353552234503076913394026054746303945106176711440152872051452681144412221300724954273809247772868868150755010918658110701923955618913902154597739437619341110260780327526562034610577411525228009356679857197243644502504816658594103108416874541020484818129860405648153990306554060085196849947793976377710918995923357665292362219824739472520791510300665414818283849621669543683771645142345340255009577988497450181381541932476865730025355222759652702811258743720703090732102104697406334925697657498331631128895078207584831193623313801046881257589231508811980690203463553689575508267384116981882388857338945883838591685191172878738464469521927434538020814546476732436426320093262374530060506994341469459898279641090765218523633484454066289959135244181325571571062746073524598173650928164050594026015113510441833502737239433464453617502367490784894123502212183414904657592002951333737071760423850921048962553563710607330805139731309604209253034645697877128143280561266993186814402525759347461415921164857217098564866566211164943010604558170216607627246078375608062646229265483921333281124461962591326580107613726684794233706448542969830602524515672352753215091565014504125662133808032027963349672128043012478924533794177548508189447187655615815512425473005720280969012271421039079299384766907274298425200846339587899885213629875153048658489132141033961658106341989828080201386189552887266480438804581415050943394758473838509995902028369811852296446689891918447298244692216098298615872748103671963374890332483725198547274479963369349617023773780493940696814921575356195715609402481970103375737309903729154981787316799887376022957390280274531682378180566660606406900005918416497168628338439881345245288762393359419563662647031762621197812016771680479838806900382156356211064374356879727497846651130153761325031787072678964590165761672169453973673803555073642505893984653757237103474056899197231708311437718975368588704452539048591008585510440454029821612110857064416014305982540960504829824797327862274621674892748749044288779310838106325747724352414268482530100962500065308333456651593454758439845110367241130178809509747199083494408466992155451468315798920096817063778712389990437652295427088037480375967088179949791379091642593863387773564288050918742671227024118423230722945105667688410327141396925816752140551043938721931474055373975145652776324142146018464929493264327097920305732760206216110924382680566032041592207472241853488236921930659498603625977069932621701433159795895629533739591324831806841923362237890961258371190769924974762970658957897624333039253688983104831235470678195175499241510638187182281914470706927484003398258790463921822716213462340885263907808586624006007292362469733778200896917226532794372792665818592401941679629478140871765721706096198426420404487562391723357242205214909443556068674096623508249883466959954355612827580643054462974668831607430292412743110042498286962295126782456031191370353778085148391261610714004575571787795533260266783650504240486000070361268650903156351921191320522869100623218062064493661734378007401390428887483093353055033492672268035445986167645381230520166327901217904276232680002181369333758994458944236384981567903355969388031892741345160527127825445128533457879337233399300027400768408204196095807401429760842505663319071416141258806071975111955292545331590334309857348794425908916779385659674796451788065133635831702953953650729849996714304792750648193386900964330571060092475800381094886342783608469898688659074162012330251777659385172537751582186235879606833351425589299280125141191808511262372710199066175915529035798050616229536646501052199650849446300346017569400774112731051699586315075547929211420309876282458385803831646009250340775726106004020233878519033273229062466133266385822483290702590929426892153341764277337904243518508939533885473480981574315451575449618576472121999114684663724636218744896852523846707677890723162713604839743861335542798126073659550978871662596902332031492546368429873125205595918816170208558083466944485644091155692171709024652609256998079627492224413978619939913098194769880282050200384950549883671611691969964041106795795449279764057011991832807010310848785889562792722984697394295636893577475255801407086960164853058562874279439627858118276446100549578541109193935012845246219393049640304890894719264856962713637811291208916730738382215935181948853220964506147850463168190604960350686241288284167117346536496582293083179222848672242895019405500662060585446857744359262526748759105930979463300629945409813131711294886070498266109739787971577869184559220180120887409812117392979405780019699007414295050708489102401953418757344679634239859218638167454322970334918663670879563544534653145533394100434538595083078404942375514336717288227954223405656707400598499015880530229451544028985401230944039508160347707281107972172125494381076714089918023812983312718407162427304232633199617321217623421221395205496052337964680285112969855390986161972124172232152543262040598074225822619893388474166276728212500451664204231211718101762640384870113047249795666815217871394821855285382850112260330611487501461204277723132832129209778119064232363311745009263492410987248701233404669341274915235672158722268470292288548861177035366600670839844314750704816825091110077359840952453605302724918232325411914588586652058194662023428605841829219469759739939295527386405416819073332401747881973358749098611116420880491320804551083348698487618832405618220806899864967880950085691514503075898952772601667671956003817269963701271995135544494975513139593242519458579198883781879668825915788254540933018808223597355050051115503488276899934780612115261739018878107740203514387450491475889963279383828706662662282586150486497173511768444578449107500092194492866364129320306133832828929773017373625821701816352400136395782969737899825901452668344058920037595258146227365382884182379831017749960155400234544098429340119549967927485397911708908758819113737040978012549197171668789240846330782740692506369629796397229677442777629373968324613263938214906580217637523170205839986439001394777351924356587859311208587105607550557314938990959783365077401276887329191860901985238591173367775276059599148867399349656855957135470988589020692694826360963322303539646165461583449751775610724629199203828786624572514138553817609163228136910617818919149960813939371168477209409249524901698524584239885438116439219178589004577208302798678777445802451103955897650320231039257925764883330465235183341094023715578549022379401919763821002556227474502803956816994784085455307283649020913572561699220384293354123359163793358302556761747098027976307001018860531368041339935602338068350733133656593664120227567003098852877862346227341349754943921697817697458392529427686345238764181558266053977296930972847337004755811420122571907065539255406638497758962612830442467715892103841489422360019625120549297909109661673978518137099110617332506674805593157236358120909024135881991220387533354179159140779254546816532775791625094553486195753943358200754802294532137607605790690666642825738394343674354527007787736317818194834495737292718175992228845260161618896062803963395082092457672836412851407198024861492091539906904684900875210347896687833974101891757131215295588627679020118304590564834829455042097894857286257127342040993966455878461476828585431027320715153608476841405047377727314093052328273018557398311790579327111023216171672845195241871391222352995885608081117104340978685746273560251408302927669309441147808969044027230040831243675739966481579163070135577273222721449209421118892903699130200535060485109992995031693268316763379559648043121318872763093922665045760044304562268700139834541641543516897842174959591358755505199318043353053526258227755791753409612077344544718037438196683110112704449717602070460839007726907888994832369585697000088546902081188816566354635081711105470637016616785411846891250404640183155384950205771167440600619136869348414483052354880669961183393948568102237602021960067081545960351388196289991467826366559275170467418174867171296809315597788468419556741710752709828296915457313583433517297879327921629651944801559237724092142111198357309669458877567988723711809623392151699694715034131014884036707034318876995418943632326596120943726475197021073420379422087116155053524085259785903117551350287370713469147424058707054082687542868676051935410727120779256465360473007460636997486053468146409426363410735612081038348451896938379755642557101939978393069101269717880686550767062829822497244032368695589854018626617026909751437641997400544813816283044048068736649854305425119282118767329317762774875797377919578545237401948628713706018498820760384070533191299406997155190410150036256524594229738611548110926312621448874098801251914082237606342244739778423113167236510385772377082077124332785464358522303879366297927597886095448438666365176442369004587955292872919434991745204392349025615435063359701287691485280426143829392958453849925876229500625728043792528881760850958013971695199653056903272031010101884152671778299873437431816897766941928015482435667512317670832947869992277295941194523350449153500730193060015438032266367680006924105801282074029692320374275758734672286328402075616987653803861793341720082855817231645301348003112893642996598291039425680328060159788853130778207835736041002890295543782096062741058618246374272924840385304067904936630556731924684143458816461863429174370871308604576837627343042119515446745047745436185108075805436223487824160922852387370810716732096323738502214601331637789973288039858640545437154569672281738291508959544954092411984473540237398720431796294875693435914812268771817987466140669193175669484797997605524861335503915679870442679879552970419690151965376548103466752165342605828034577387222341211025091860289215395082828508640221124334269116686379765587728527474592227838783510410381080719824060327461148489711207244350179844015187708272231445356976853422295441951332200300928368506499631442952965514380886438178787431697450411570431735973672387074039567109126557248988542819606530425040347233201099049498194651165976669716554545617011927108929370761149976758245076874942349884728374374359895488811822906693424967083122870194911216890339386390347056480537788699377917017121082410031709412647266375003236954237816677185875585071638578288510333714709037136592357853235165354416692722933184276505147295234645744190709975617914361227783779455844843162556377712121852642859991603477515954286573868005862760230079493863541650970154860014572742909750519578257921066263244652673910514213770261390867830225040746639921496954882115778025754548950450432572142595965115754459375084723981027283189709628531372650959574483604497220085790272037520708449070006792673314708803884416114086202806652555128441057230784948398798115079809191490187868454133046884822083016331067975174224488392929526792945972171685716920498500975849803803650321079113033787675369663834988501188553968031643403941672100514112289556975384843319074790751935788076015383457235550250946331961939945019463093850576049205980339662994634167716680994349464321171613483245750943960549939108889642499359572807200487615060450152006288623548082190067484493888765646824053190610965881140858301874418048823067484345976539372580505984760557821430106419162881472030630154170110538754009300726222113178789068971020294463649152036152640466890960747214916749179588854035053490929858367278261161239552469635002605681889993996569363566638499391612557491125888667428190623520894202215225416350680221555188470546044737672831659822103486506019922931034492817022234444646687269646818272958935053765193806008780900358972400594477065588093159495175179329275633897825339297326655410809168474879951077929663561138420458401971081283557530110251367731530159897238912592374877321953219982844137324658520696671792758320014568687162969933361683600595273957481393297610630107607424683670964913954328223357395757164814655688236941705737258885947203391579869771746785580736772242715087996875873313412284671736045426381621112882599122354581836929288914353917187984736922007564078808053750411008404014988907430533847297516899058646846362803741380309772529658993809264311553745741243535580766211397770760964041473555058404991246024035402299307179377453471721380964551471107198100505453128197511778370895856525926569940311552643363066762535538734803732839341594596455224621976280227716734244989415715427514481927386654126997247082536230143591360177752599964750187289927112230465988162802884387338401106363834222604222568741059917152125922341374168587794193190477304880363856275769058062869234996080287783549464914621508524320058198256243903757908816851220022330541691708629186579503540609378368188060524429239657442998563516253210546070994795700548473849341205579245435994441555588570997058936013815388036005834586223968493004041702789495563167402828686671684197018651261979647791954638140253646516185847436671122596385374056130864126470586180621361515969411186562377473155784118885991654016272829731574655400592320252506321665339080279452918418442220122028153432370573094006431096331675479607181187192702169731743095314955867682462894028007889891561876237029423706033613434029709336286125449261800783770603825846427299771610208304764511910832364473191544179847544098493555140276806086477838654818480257237407162531969472483752594526253854530021674826501114443409684230376716352920225802738368676005267672264117771125970878643409818627372506235589282551234872617915024407101799652869013472055922711873880848104415970399917580838193766192559257225448603795304344158509694637159311251447998777984671954266470107147087687737627792193414333980019369199798985826197743571077091497045649972698027382827709357136396356948137475092624225653748309258163097323663750914736007459241375871884031616503601459773648314067155852907874217335880664627741034566817087442616735637322472087241080003597111403158094429820986735941667790888465545518842632133887938804781896676622643175165877956368564861807315361282654278264714008272947027087001769980857895392178772937385468540038326578929761769339249842709542171176963214248791341180434949653805492586337112401495329044067157512695878708720604752298142551752701008404191085696309764758294213437354409165954648854711293759585155253204932178299667610190804346615945746345905924404848476862656143295351971004211168756826560304528354501781421954351566562013188450206188543807024408409265569354000182977475912680989860530340123949915811314112095126122094055216389653731996561272876844555466077979991180555279096549726232647108922533852825669019380958763299662567162509084220701540102891519302780657409757801061405851275650273794683516724028513522705161085588176754665160005843762716891274967165881220298323632173085065506714969958493258334867304875274015505224959379607460977551139156519968139896175841613748591294471924572034492823321318832288618742278372540530831306286147975780299125613362045785797641980095609946317974268189406292065505005524375093396974683078014625150104716436185347354887915096147331652885768967474926590243354069578410576293336361163014891731956275916633772272580925766347158876285044538661654587334279061428981341182467034805812038202405616887499455134398716950295993647052405456133115432579761528750620572920500849108153940279013918579650581304226240339771604990445905512523810560430853992535365755471132466802342562969409348989250063304127269116761329556706280390665128027022894325233648371351359530562965390028768230398939243194246417502941642981161716167956544056448393491122950054127148314678466842781432497818918265234972250062481357472544587515461718409320943514420113922770108644185442713351559144804007890411459030288966495886472930955011799404953114586455867282845799217928259059534040959073843440738008096740525471290238559718402195074311040524138551908974186983163722966221184740420855680673527561523524227902733908604080344020428138472033613267235536082730369346328271909360054094196091712819367314296078365023831592447306397890836159563352923169873118192863214020820504181984794254813948397099660100006397219674192373524525373386976549946220635585369824045488547764006842412336215093592174819850138914367015949806765360298435018126872788374568136569256675196386078705997405955456187593393784070285123791044028374883345459803123588308195469835089347644190922559892834375773038811208163032989807031516162311452704634367580957063766673081119116920801926875662274531235337724245483527295833319773329415208416038354352968490276996807699102449956606778636039926573135073241457829648048221200284869879878642978290353880161786639706792467322916086117519322487800401991451383120399904774089042918846954685839466540039187386200500466797398384834500760478920815680332415591663176641841543963870154614954704432239800576861652677673018316867560439347531927642128254584783748474895438971708089066330665132440142208356264157678321166271824848005915090739311794283632847401128792489895396726751453070078641936318378101550996976372365445903406100093632109474757471340638841980026372733087207140911601572762330518167733431053509417437292915187005518726987938029104290802127500198288272308096298884961908987927899392797970210759592916698186923447594507258325587815956664959362676145510829086685659526535882772643603834222386093409091363120488899486722952961890914985439524214464446094310199261247070610242968429721378203397939014355776949340862330333425736859635579672092173053288408315979463827894128644056889264695637871528659610320212977565527470680660257208748363152317983860413579025216266566663982884414791239455247106374642329383454594317695681631728534718528655286932220932377839405901891077090728318706569388244229411232625246978361939556232460271999615275090950625643197775817636313139122131145917492049448823273407495735130339140873856639727438598461849234502475796427060536197001741365556116991096112467600296851344253584082078725665915683919459153483723665222130527281245465906904782473446469060636793020083749881734435190689092639706312146400182892800804215985185278828480264401331095315102682527217010955554380763978375480564503573270047960829429342696487769558134996217457911023777501435165091303819621024765533646273226779895838799519531012910774678819119959779513037363262478659674419598867328749526795423440486898697722548671852661551754273266241476952900325613849700596320535337064279191162069331084212922198806084272563013246444285824064884892057537114287532627995917740555115196681781314612670656602327865111385217107815531622811392909157962964492953461925000730637819705394516489595597840844488477091723070144515950519445254778775071326751871138340219751876520656786533086214513176654109250577112747470745150085876969387725071989234604185166342239304577378070086990555322494918623314055659564163588287202929509451622645762915280408804121325297828194265386052684313939008365061088341433085069598119822861160113314095861494814160863591965539146412933384890477264531242442567634170040014485894613448588058860435483977501715224789353149162946946181263081255408823851423016949708452658529024344340350525350828493586895448249181533284054750516181616838417159865868645147313202028315530803967260429761089912476033858566862800203367412002621063721864005447880393122008391426306195714481012310553242430163720415086383320622025947912331386021703571088655542457108879044510804556634399646674348388588244508799019287010436482529203463505729126084071833427136323841560467832127963122043907667839952585703453343692271944841809588883722009005277447352880526355180636573635849379741158909462410723954484720994966474196999995216723941319831841317876148280753741571177134915048605198254233404699749934623641233657893853971367433554740291992756175666791208836542546888462899046340469060130135851747671694529136770933000883363422261375447745133792163059564307658611465827719372388926615846755494729617947984734806091084461804530607951581791885030955697952196880660669858825670528653373970339719861724441279061812947844746448427176313176230502680275930305158590041191813734986695630637100632219155721547267326303363871530347491768698653653877561421445337949491274235630111029818447114778127841433580808502967340289206856487985651496023475706071417766858192385540358836914597304094651949771511284800096298144925439297353661740423142484031413529249302498143583097231173803243960564223036142354416461533630720637691104612839032894597944838589832349290665209299372375992282879689543456336532206594397230140581795375149611506460174859017138855639661651826049288583713700047325789877424554296099172683161491609652246766066028581307040938916229424125070156446438014981662934755153254827400281020028520444831694823922713268917771663367678923332780820515004478575219906830279629278991478740467712343840323715477027158565973783536205611205720488889795511229757409380164659637501384398697889708260892800768588130002379753972938618976379586955501464606792001703558809332065133839411684249932299976033818803250728597994583886053509448863404365214669923611733901063436686001819690344588165307864131218650281826401521453052867787880701965275035353514392464800668270817440380286266501647323567944578695283417767775758063680874307848276216077534432859122910127325269403763715552977209944582624955226991408510009291388258402519767852000593751351086145386155113313661307001518162889151361188820583493325401385528018463296776090249694463965970233493993605102075161067579372279680723067887845162717701967141642920239588034450514349007577702478515539713371117693275521785191903835202970212362289372997541204888282787884664598753267463626368744869669703190740791401223683199243195587124455338139329650601190494317904876209446103479913917330894787089177931723072464267149001893851886136760492303416691239027947538857490250045628095581255915322611185834675311503675803912936016791089412284568692968813431102901631206918217186993221543472389979712430242790988752152793038903610740125269132681823926990028550060530547328878072781581326132789629044218647252241495938288796911862981087707822365154528944469591083408381385723895843753749250531246195846623612163002235816877725355304882828588262626749080854908226867844424758100661871923581519650556943131553448514207517764689819986079057108829220485770072461382352539674164910959413763450118097670688510933566469767530753642180719598140940166043378043226083751279567778364905455489449480388484836979930973064505780952726084853239447018761904269768395170615068369401688372343550348891966778859336082368506252773576266913135096021675444743323905351857023955889652928015586114237528169139595484054359585878364139446380794656832703014889084939374336745526538722276268034112650359166638091795508638269825128431992979715020831085427114866211330818680099958431939265177049225416617280772567978328746495357121013743616185750567292314821968800076044607615246567611198619595267108170580391684709300118591787076579769246376294222786015355465948073467165123098209647238850622091008545939706766056243159320876363492565290784536736419416587353871541771012715197849272770490654060266567810227972815149737995824382804837561920237463684482971735138363805943947284295602927551644189001626053091558843086659075809130186804063905292579237522068984758776521030893202552991078467068318282434414255943455057350538698905907441508414594275294196455490986105513381645506679186440447392073614379264183472972755382559111727453246357685574678917358614056837187768955275887857218203566273023226700457576350186637615258812138345080867808258510754495330394742273318133769715809056854048439671257038577969501428167442510377403996281450003977141945912443689130506643683733904548740858587170633734650619712742046041617211961015980421368772261579302264383175456143760121550608733470823004834725763365528705706471334171797050472773974108534874687539039435007242784065906556804507480818600864347737368939759891845289769424262025778899571747078619372099290027546820539304470272083540213843059572169864758256225438316845036294940601741238218992763073047776227395645061999807886853394304910007781194545879856500573912131605635052654964572691310000593930348634140451306637752202755721530762366457413195542293805039673737984949917931727477758183573754438249895529655385255826857510042591237985091144872483831575675119441771090123022833214524237993457447926347841056322096023256012981152406330988012592269792338899868280712380887235532529823885199839667686271672425273768630867124674277009958222877737671794374595740552188458225473951865546520676079606486064104301982556519319651827177744855936996044332642292227906143998428213803443001912175979105992916844765241811535753574237237713878047697744905662788285122096260959549465757516674819687680817413789757858408767583308476079968451704950172148957513211246968434083301141229721106300076300849955925076883399951044071268743681600236814174774691972849568964273005003689797678591470570763336026625920404446081287158409896695021328090325822070002201931178733974795157227737302048315617085654326795171085838358729276395027885477200388909722808451405898810183871964487610344187157359307153736189013213755094335932820834265263997721151948279364370152506511809119683674661845619766378132774668229126087822268032631027882647685057860665369794328094950180905751653149890306301657379267417222041875397941959973798353214943076714301737970814394502417536231743588744235556499285506911314975386861556398084556072137838515015124946392849345217124293426008510618212647637596138962798271816087343366135084768580208846370043779535100737651379440843838426347671771800559057188398245640166167249082966301179474317621303576440643953999059228835659445518138615864233287723200897189919334556405015675693982722450410963277763210994507174762366435018186251735314206576414704741781180340312551223042232073474499911007848909987310229002615627509312630187480748336484691092598372026043818163842511905486786833549980921887176050183067993341275956747401292851228762213659127334494301474460582392297446724922529555041619045692528349733524436525150579362269651739604871104046537203723674641188395981129783810538298659455540525275650676520752749144895278021947732294661087351967432119222993614926309544688070870130183114972397505626901322142931656481191455122774824135089565705712086732263092182374953765511000720271061332414117126409950869465132160310269818482645034423657786924325093552680523857238737668846715487231312885283999592672530419589250591729630141062320108988230479945199762766920124122541974351568935219862353000965488808153201118211251994888781219601828415268383519195907889651303865290707708330820383977924469025149331008275185335674383533127053934898796641162131028475838862043864585080878797953640362178010897053424758978383841364002552899513257425091166722573800455965880099256549292279541547537756350767014719306690991586095443460815360946479542833055220068988033827557197953027290039231002003320138810555228121359899074401953561483219169127536046362015631042678086939632337221974650091138969984772932471558860571208948721673536976742795343870361164462541405602123714476169737132714225564711591764582594486042195259803656150722487901914336874399224595549790278533523735960608669997203417997733794311450463024435729735907897893482148446697588813579247455396495431486965544153247154501074929282182607543055304579577255524761496173141040963873217459289351522238180687502739521202211459086846922258698753364907189692922047957925723822467542887422273487471672005635494923652796648441709681598110474053800458159713796327046008268140203387534035928529655345143982040713279469362068454312928996529374937598532709567761620022748753336433978995778098234915406369915756602342031208488607391786290951834190192612738294362954179459967900004849955321762233638696638644832605731643500925179124314137836885960162372395015777683502885477837568840249625170252505629868517295705308225574148630431465816937825571520873089135715098372285615565969578269312745579726641913589693209994109707653518828851426030296324737938194755757433794137465804387553450309875277356383881271088321537672976273766258887291071967628674719593686232683576049723910907235991779225733548781942474202037298019024494496164079275883134824761607286093463170463358980184395201029917309501405501358037900181729031327218120274015073927844906387724840970556587877468641746461081211177567438039584779558686818526161267660461000515094846534440091454352123883914609039501932474546392612158444598240556709704280644669715594883057517629456538390973735716293819935704375581402941930995573152806246127787604684723887005134704702456280319650172912707597336121148063224612626844015829414374207524378645122183000097618345409654092794270286352157452365876708464419350899926316998582036933609233651416919806433151542512196386268988814260061936450344554047472139073016703197752750796162740583006843868447818624401289072911069970581461659941649216738141310839571840456134389579935178972981356280785092671067880480028614619184383409398450769150919330459318712854998407826454432881808787031632998675782774132152266276244406090765848964074653927944373059568065479734189102116236643568903616801345963470707117339222920821019146340955824993598939228128214927224961114024809119617692655467901624153195224336287063023012414956939344943297721859258161392694722317955531622734195812614440025985291715138017907683684442276518996206529286343499913010160476581354390801193751687907136940595084594170847807761112007665392284207007036083076165864953737802511175072464608570305361226502708350703940827706844797149699905961219971170829494945151434734911842582659009060538561665735091452404797478246775261285083974296328367741383426016240852330186300112131515976662274181261129082155758077003688843179935847632863078629866190622524921669069361400678868648270760457906142357969750177241689877360484169132286191288809277458314399090905342518337751130938976640691118820007140875255060032249381002536787622275583826891077612193528811479883743167301386494432378154190069741281803277430626721791521066227942539442036848982723552227638455208545320477573696732416773632528683015526863612406223743588519812565675367817017656634902197115873466233896464373481028301945051657552774821272721493166851522002287519665195356379653804105492091254566940045909682175847538696486480171045748066131005049922172269531736153568356337035151101706548235767554115225265241390419266247940174868750589122945153501600240453534810343512856997388065618179362354015090907458055518708167731574899843386051617227110881446335140063035674129296051392199814674161673450891819925159711821361467506245041004770328901959369951098639565029466160455192290900400640727804771472910897075839998787046525566851790828141108177930689554772402488727573053643076340057091330186095335784934906006293420090470600456624558812469202986039890966176543583650997162058394643271654282159068027067040970204062224174559617002472507430662683255032047617860321350394744362260063471235925097481153668976827878347528910162683930233263854408904419456322559325535666265217568466209645575937680450903997048641782044899474725473074588240009926614984174711232765345957344201363725343038798568089074092810933931582195235479285021685356774288502542178000339277237310456512079659103095741137048893126095731756654318728338910105639720752229318007995640321886901611914463846017971123634554156728669396933046849300723383493923689142901283090564177337007894353365913642972545884865174545944436410941065080389272190594275047666961889419212879080656287771157025527356157129674947716149624722778367225388645447096442247608184175357912726533382696498128334730202831187914339720852789167828939058865120397929572309917349467741022084611127270697615234185229768618288558776528374920454086493652121079745813418807262801352518342506055839399167333433074325241006065988144786352657182708265917763943490923844052681764140504577705663585530751607752175519860122569914047095413458874189646053634423276272553178827945343852927124259658980215903056994601940148672284128904393583138594454240189795712115661456301418735244705028342168601263388389561936817939970190007018167027354700596863006561234619792690048805205402059694116624860030912125351268132138119313187848763262640810419918311560869676900256163428924175486869735251238041248815457038449771811214257740962162405778656097334317923966391898778159584846655054853804643796832606262433660739113557639655387297238978131361277463963826069111601553873569821013054524660274011665584066883784978398930217247275236300550057642196437188789640714028577787139446843485424254921510190438006891523215135641329548287807608433129416178626309270574936560125366475173184284061049759567948302080398419929923104292403519248446705859957964123314602242120126534026740347102083911339531476195491082773659948381321319613810508589161548551701667593151618705142426392381226495683729250525218374750129929786586278392178670430787637923860360551724414126389967789889174688796151967120858217380019705461227563272822013546972504983641614375571599093697684532374439260621920025067806326499238708160754006736710454871080606027516226046537139156950419304675369113081864763653005424838846129102415130794781523316552875288383821340315430023233853657308162237652465851571847521714176109989888636940004268231508567869830353462916476827386517493219840602768764060579400638595848698638754833129032045427309844984292074244382925496613416325413150185252500661890269551337957949565635975274898295062092831698311638436242429197955822654998410966518240083279623166360341458835783487807656661462922504238930054556654265682558098892756718895527257830591039693624866650135165556329187284468962565581004394946549529789846375403242751235585069971036888969500762716359892239791538255788061216091716871699937116251043664369467995172171137975229690472930421669837672207326940562832120816030707727401380426742850081245271021023699823179823382020097558580752204261201864523489416210629982012974542321233084871167012941732270331058727146343041253771005437972724013137653522356134197233229346433453354617744518378207357448328308284254396401846712712185172599985822804888726980179581046195759019272907451478324623622531191553451187867230580481602496111614908374190314871844688664095577493971641678370568551918485386586066704974187448967000099359632694782692388467873056896740350349304852991130103421042211061936728541179600405687533895642317900831755307679649348919895962741376788003101340416356266275173810007864949074529850077262463754051700558432123271312188399655593759817425860895535736981967690985913856263464347735537270200060701781330291256263465017139312253161634091969537356175037007637969315153333333455594542656011356294307294473345665384489265435383548853707406299664167011766607837369011987658799568954810509168737711372419883915949916537088035605817640945626086432637780333839379968385638048311401966117415363104505657404648657982780505593600265589833395348038690671510692345732109471631964348401298851502773354477094362493899741187517636580046750244356534302295609345036097267236888202866849588020888311958668372074756786045279518131719468071807196188709975399634973785760049926482118641680113142085107764854489431048575197768430655041047991219034579970490692883757154464777871199319562032343407252074232109314945240608286792367118093044533282407408469769016405264559981043109582583742306815586883759550347282223757229300118039199120447940703041747249267092166636302089367296571084188780344979983130938649144588103557820052296418244711610147218787712144024718142088194273429791282859661102691150165125265742070067865651425088958533464412664178431915810318723275975742636779848488749303432865669968714389574544618821419218225756367100224771810364735001545744697148351656989886056501927266437218605164704532321293786007249690302839631376012826908251466466363794372191663062461493095896926500359423358888877703830576502004611693208404208307833353044531545509835937196225478951643230431741648840722808190753378124188342807023458866313877976864214154585697097414828003899861427007984264563204881100813821742961316682757511796635630054442680588291715608072411652918701606297513139866821203004744656670782004427169050580120816960101565961505007659315542754341397662466517785476111688782475274711320482577967358971437955664412597236386106049262011102342772889329054851323287968893036102087236750121334925688619493100864797874106700636041741421168288435770778266272196064151646285019248185596585567314339839192463979837171984349012421319864344409698872418203692763220407455964680236977651256775710200336486439260714645194227269117639904568254089545615579375726308198092490996193503338648085230618997625098270303060421955989403029317001919111744353190142909617798122739391528493960442080889474189461481625976502020213325708259207287421395463964168111676370443215356865776505586768677602447885976858747392211259610944605125193297321523440471400021864216325626483855486271196044070387359937522502389063399923557097101195901585983437009499624317418185458212578415622020313520816982579003750904042021496798331816411218886127064577118213699755642071859478165813092473191190534624823423045607401841951881847310827683142619920920677009029638949464259703911531408728586363072316405076884477694847121723468637301993436473523635956451240081794654362111656784731952391646962688309748339200532470009657363870736547405669458990876496184879890280669707516054259585360859288204437407923074300485777615239312596720644808085295230914056949077760774017493835091057261820847298591107228482201155362511710957303362746394909749898087724421383227914657242780906932022135602810624387592612186182119249626711639235416117070222222197878878294272084011398822584464009949666026149249044063723237866741599467641755733933699333424929323886303798169037837630473717591902141820692448880868794657604161508436426044496960092885269011990618460503249839849036336087684464370374592731372732560757301120519925671421601397230340270739090838314515147944481199085313366755301181815829568963796474975209045432356547398835542734762410737741544325651259528261068628254234741887716194624811351953223425063805952791202640735479680528843730511103215409867585968149187484825575068350431313819244484490443726156333142254589338827214743269881429676161331141395377129292297834264061557060694657047337319148948475379623579575286194859046377802688532336281948547340226839338362503711712195919767081880255283928280058919273385150383089603205167468327553305462260009829724299812190110708378365240812718048761817091531201556372746051692509376542233788586483073354057454949944336572271757890686467702668721358677918840068299257214649309543773648434402329216867927645452579030586225668916296359994378790351718781972616627741477441147405277417929226885921379799438005279454445893213761612748706346335692150213759704778820479494955104083569550972067998968353500359591153521524157813885822980438520020653900966777304670117486280675870914885078669999518214322547385052311579064580942113280776166816108153088605102720048563001263014735687428993778555422732289323698832612353324218493215841160723851604635175415712786517564065347661711571593471121476181406360756569328024229780642372353106451032709565862530694163672860987042918674612553251589168324974382135278241136012136807977831459600264308256738192047127552337357552831418046834394577550724441875077488465032071941137048690140645881584581779738442955423869640671405814447091705162292712464063919262159548718824846400257745350193372905327382371442894362172008045898210872213086236782663286733125968116440273439299641585466965781012477322319781044026153119706745640408817257917161749569040273684104442707242586921465518630904258300722637000678305466748224060232182773346472242373700717601216123402981138299889692540170187192200601434318148150566720418202116558386754375027220348462860486794887170063801589895533272915742007118494940815768222634283427717525055295994055200620268449547088587223575106011239328876381179943527271504307376707960258107583143912180493479748060600648738863066680506885032440039706274843879148778201936879971259687436608313689602076536815483036390046331645681328031818076011037471467063176550399677693742634318325510146995049530051797598477131611471376046804468832241974325134380940889011782514536670270198521852774779504231466575710238145147681114622958878929438788198885000511600729365676212509006880834926234518983058977651813182697369591759907703481038172294823181042367547024638642720564812095481526352297990402553133804488678299399723866461716017646731886881741437309707437991970104534658394136192563241086881140985302082755231169584932876490761769263674167495061542657318933371101410308703644605268616799227910625265258720612799700432493546023288976908498069113261277784464809224837493789994281293380983512778726762455035997648273970962942802418997349135811189140482506904116634401702200675275291022177479641056010492998081753992828382167488412534367565930261816591160497064676818605051509662671752832896226854312577240399270671229927279861643836258442513602994548208404829934944902966601023617151835018769634567389540551661534041638540276538775291287763175672592584873961042063914605365915826631715538370040497935163757798406836596331517218298889792299419647947623211630944499034876650405940849505705616889105983413115714630633977744895255609792888223514278280555753088406059721550853351548325508162717794550015182520886584144922806780580825568019598289722224604910204514671182703745338415629744154414173755110819688178210432613521471601840940173021429628529425487518973812179551743465095783220557881054097578669667341275086972053827531849899632271170774479818501445277688217316724137413168371095273927004258117745327606483036501914562429942981700061317885926874855388858967669897738206244726213601701316993144779362451104191531677644060445987218788794538465493989666572736548054896104959428948865088824760551617564239696561879935487206394288679017830768941102330704212906274436713295587508893501097664111383354143021843605259334818180339709673825631332783761202494756636060893301362084109787189511641861758519573915654327971281728780115060039148526898738452629534839677951961687923171491329911134873666331940161337915356848580170247363134114148705523111721211934933637256014875319633676093938162448845093059847268912658957184032310885285391998109152582618588556027957082062787618651429611644891053875756112700247946635943873270521161671596656391584564472401449431074757787069728622551880870039203569121213594242863476596116134185767388282113297632682601697798291227037574824003843581221343921833754291238749723889022956224082942694779082527109864320864466466167493603884543450157934033559633415669022516669839279551207130103221261786204802250858508323670029719009862726671262115465888976163467345730621329551454368920310343919391031464135944302307526826000522744241726537595773848893661681052196495578458530139848755989705874988214754458476018872726952479262152322146155859638209562258094748707501480394228101701065474450101478006594504861353164433340368178193336728750579870582067326208444760842629751017133437148774612561030997260473209145812909237682386519213591467076103177579145373844814681082589438824925355686212126215822586186556234343058534816180932915309917801524244576330352117741152953061430485433954716640434299484617191808370906813009099489041265049198762647508730007793393033456464980017904802603925196538142932756787637128565508045798603765887081482385752618674409582393239803324314834896495067120627499820090461938749832892109191649270031859415945485843605445964025758697095787255621038283101519739384375367339142441886250710216504660769104381395356528915209463320205001898670719700183212819492847415781007051406279116398767179665018535673500072571123266999743815625743532562631968869484873454777389564195163894001312764698614402746075652866253494846906457310337657072137271684717607043582389192215785206826983568624148195876414737894695488603398699372640891086503687793624699196512206051689332560764791093828434613049075475613644539503586678233424197426490927929360136550164581513481155821515070719108658594535627965199433220883425213271904747396068057170524465198038120964278116689643403185482789058120890645545410960547890684812723487415335557009948873825302202938922142052712682226671921210501765585432086313429675872891572982954927861929633184598877237514105211265839828515370578894751709007901898704885626126031827667180239881341733972698259928549547151234858209977861033553078638414841017893995926701730983579719196052275215982723881574047973719958558271499062590267866937467186898586072699512369473963278495610093223930928401776633582988791427839764298097865373034238836915648957255681464884068563601295762432879368297417430756273136660410740303112840895743825894925847966980368767804551874199167186877904934594594525703252435549255629066440942120645344544982491223078817579533525545766059415499632023237577641864539747467757845504834480609828982511917067771462476500677880959615658203691018739591284962510653376662439753349209718718075687971310086978450010724992462179464277921763444756267450299187341987088076361828691266951603458219804876126445622926684448974711852633803045610691134966638858307908505887841076279288754336818209545986022205343528374406196388551841771765989508830518866098189052580375077753365722387483382281671900053920068146182095440734199729092997909992527170110536815662148316970969284413364648608983458307470138968074540022894552130345750801464743491369823758417720691367271505623951923266590761417354085495654694382696247833750228500808751355951134079122345066317798198357878354186374009373634367526404284475311480941007244186150362754720755565212326500288832604831620676660582775801425639420916469324896316923203498682698296945810571623914851190513801791534619202597026660250285043357211058395836568045220128253823854668531780967451514846746272940568725836614225419273808189864648170958103460309873891805355410422275907166323262855295936182582131245623356207389892834810920725048859430686677088174840891786691445456318460455003261680500689718649404569514641665274894215867907642277555107215148687244835278644930768234940841565349156480012865752226719657567584467614785249347118675496318382774589963349926104928783025012812231020650594260521313599696928626487672203787245321905854077690158262415447781582409288785840337698535849584778511767734929166423629107417750685352332431028878758886353872144867525009770260953455989378800745985481687047723484973152615606370421727108770069641412451659170728122205330311042958526126415014145028700695721071150555140237231449318937356682211880740414149698170570947663470659365608016078367614608917852859865461229701919433948372080035984966402237233361706272968153640944503197919216785747776443239666280679839060106996903864126442386756679548698566219348904573944646623884507231793351463619766549318962638114741608465591654325069771538215597550446882756884625586710481420456333940660199958879800696696510479248682668470309331430413062963022767661785004168753036882780733681162093880705151453068775023696969814197496063562616763471195203818142388037655659199399054050538515614284408643103538560119071338137920563466600293996449604367004277773343791497406733915515331899862111408383862303455385169748238437376872791365145069752587440185459488253079263370479995330756144148070468964932086927339901105767423698843526929671086274154259284302674316243212147272956238528163014189396735463871447620697813194967224684137212392805976079219565780280703916089565894922877386776709513474438333069804393188009734728529522070565647515199255102918987408395960035398341909344404339382295631923387805990179636470388778826846616832115432015475571760890334809823860544225398335627654617341729870679277888851855002598797057100463966155686169884311806324887718451856489702514759584316339182791108100313146293495482715055984368271575987804523415542729013518771087599337415422337771900865363299524621367496507285931244979494431083053489767979413328691210421819515680758377210953455317043505651695430312350746240602057002174542115639229853877581217308021716985164990413487390638248503479630842465848528323794216268363384598772749616455326121524563391596829794365987379128310460405035661675943664590366993596308393203976341536816629307465310179660297201167750270472129456363353585593935764122074187277514721303340152022309697763166761769756654456839345248399073460898579396306623740523115854540706025743059125384245432241166786038246549728494614831872121528626644489375115736022677529931388281755377840192615233959567572420462023633694716937591672041048144663030869272831969623443349863696884391594562956783113021608511134681695705633687332429772268846761212101453938892893091076330916711630886730204612122102646758800635729597752330854747587533625471941100386950170115335399360932398606182725588344734361855375830201907161555622861390424273383454091444802648823297930836965950029554016025562955861202741206954694080064061916161935617285928156776737670382624148297031439162644457184219557924036555332724133215534410122735384886085750777368998265850947089116410709716347000878304855264416117129409628749534226857745678097405454558925805114613984913169533564075474633073792875066170717507013073986512679300069233331256135485018204954663821852442820021600707231063807842284501940678987267600968007413595330258297077808056103131007612366633893566276415764214757433896842598197118692884589496487892732129373872016153596684027065725687846610232157383801076073643285614198271496976982870553866845468371256057722787620529407345049396341967295628840288942186829126999290398803831519806796298661147451256386917260534896680828051631526969616753566328327957523290271581969354708628367383374226755447696172434601396710608623237008712575057227234277034481080843987574143668859665746288857905531006458917141937681756352828361397473012668516696537801504060211861804091458045356893483283336007951252050151346861067123830821673324922944119579972407057699048887791901651125710364260461838548372805743424007223713048501205813412787057523892492170935704449136080819865870991482652736853202127140338095588015084694961901906260580144027771503743681316670702019125237894037375238140586033494053374390693902715037297931738685726536601158170685751439931633785326419973653440523721775711072723135752100111478802444040363808885913254123445666754976841533421430244009681540599292854842951050147750945682649532961249390208175023033001813134194789850305463567673719903328793788582868273062726280216711211023654480037201333030474960813289481855486925669508752029861636612069553389146016323803851516850810243230040997800126916031368593944530895437076173639047124362457107745515610117047665573834196584676447025793682024222927479308375951989555692063184559491931231251147241836883400262425991896252284077725827676654857799355580166798552040329040350966021421723646221478691909200894851392234330000025287352301506124117077859100776947959817998133323770331400014649897618904396787383525509210438164586396240428585875509065365124885804326280863770645065807325748352599208430873708696434648571149947349478744762918019229895030620715164307102425667327636926546369826714568472220258129868531471885188006644583841295488806429612932135158341738036628521058180574565021724427453225750275472106246544122059350040121645256912883724294866657948225385705295026210797841204336388737335630161885423043993718431392242372336710504225662461538575047257480924838419964291466637876583889220284207575171456565487361095027605964779501240886073696725711049854942403959201137740885571867362860922825998843865395358073439560543900816277041610033856424150231334907431104236315041874854247333158616756515134256083271115263711323498723619377392247705045201032031640039708002501689121996145308254483326377751711081926432633957916734467274764296002975921305966766780425476655483441019501654220608195331301501214602904468347983788181929080968611911817341351566745060095596187109999959408601262949735114274267052292474286315713958617244088976118332828251961111800704071382339639342868322541908062421910069747130689038552427247858420232178700037965620133560820327894062271597968501449359259495390706674407617374957552001125469409570025046405871155134407764458016903271043479781679735276448277609921601738079823265194502987245957114677485498097406338537996622143753101990832594444269681140280333601973910242212615902907394106995732889788492565359857079701448499645271826004730967286374066270577063875147366407338265875272476763875238637275692912657458663660731865267663429196494913785779833223148873226290802007166876438889501239935810688848395277243928545798498669353933958270452237308020359480953704946017886788643097845201447460898376012436825833981248186676383009668200867411721385408161635035988238564277438168210510179096326516451543102781121897160036622782609009949815184615606422213135965968863200993971894972428508824768291780763446911762957497631087040085424802878421152550598998047150087930572296030020640622866977583018862936342477874204905578194182592325504916816052132268290581169665732558128423107298007669008632528020865004205576852641103272866082281314094381861926978845775180257377198473980006805049351172105281862148287275246745296272617445408798282354021525869704535677021746342624435509204507065197256300328805263899198646780744793188011323005887389705855770706562642323732453677781439153236857114527099826758612071748306257677906885393274336408357045985163672853361933430810328249810171945811853045490270840344115957250215995357194081494112623704734722135324378903396111240698878718269115799689555688082144223737277269264612045224601238279408665160130931576939756581863841144139665586149536565623475267255098133713130590613837804446749629541968178702927077151566227476340690204598284100764443189984455620496732479491696381511349027127029751962920744215866599465040651354898316731766068591483068263945790848883009930138931199227749779614347165952475498711465312587703459787239059060823836593924987555354263320921722436090820914301684233014423772760892839914527879869431669123932559078952080364951328615620778775762810074016506434887128174366229400401612513787769308678402147018719964638441100131896185244278388217617112821094355598815521599946976402109850871169179436830754976473306810921444106020375103473246524669951295030887332889383704879649812769125998206938831740752830229214204449950480575582414487550558294285704233323926897161187005087989364048560057762099887252227475339611782976691999758798452714550134579590514588777730083577883815523309740499274618956233240817277330099848870160406673168707001963375523583443046386032299937437199528840036600230051465641305768529726697045181254799673790499094036641699873987674934630008143513764818795788475051991303635168745496632856336114594972244111681050237018617935180398461118312730876597505261312050959640600451473785825345403986873672709458243252701336793817986076643236882553032038594997376670277248553432461932137345149605094265137659414423711022924153652166641715958263107581115073920959019856597515480929858902887730719414948518223325802399840944845374174075147962130507333275445197122286009274682360016287049440831742053850294223542436778803085341302405467135235615353812195463729612015425161854788431022086502615662439129576669373931217502372751401523460206301389807134705902134163230465848887811889806991987333359743838191434168276993906894629025216378350301943717359843103153077194936181410394199200784792105160263125684604530297960102421140789520169780475449709975886839620425973601227541467812631587097253148031800503483698123894273151720425996535240177289251134902319932421712863924920536567016414982539435050982260314075075925611613131505315261339431034001742742340071351868976530620453301154816179706328569694445134370257788413703620906270297460640421696926619796060500479084145620685914770633292732514614150437395545315001037598477422295144892503955790872640820352770749137194130259481782147349991910925656290175389311311666952160367018640940924383457155898933473415937073221060721302191803112453204970699362059808630002560389560216373640204290844767085024602548993441319642922767059811521038406208734779588501320956975823328404359351762009727974600573319749185730722649519233211969716253900376761661773698324107374074644909677404237213051791376525198288777374424254975638596636589671848474460272141785066515739482792770962968717853113885092670760211585158453868430405428933785710540908194862532089785346046917556178100030716558024441814068932238789035173426196210995951013114071122549479341006651504955330521857344802966108248427764530452671846777788349373614803065041348867766746966232061373693680567625449023646279696050652819002667367770772448820569156474390451914439419326112236833388882285344046162686494614041642276659522512815096141020999613273690039202809114739171722220978647429686966893864338047557363036605379739133008717813171964122888396589580431419112606224998084325636365124000204814544388102339279250063541582672641879364309055099113329760754374747248288247097300530235619263805456574298969845228230325725503435825305932413068420852085505495434187314389362989436701608925244598773517876936017469897400192718249795472434003881280030371395984639953927576675336846183304479509634942228709866481916485930670925638859956232765234004291857517032175237969801379496929242121409887883750382770243956139600132687201962678155393261801712918790068158529338186901027357868441866495146701470966847093777343653758301850214201786290447910748025029189844378811636140277837020227790414490726128534763262421858770707531434258182724448771217280627093499322598640390747995914311834294693335871000882693312286898472840803009117632330040796996880024178112237134051323909900726781059190284457155330247808869860677497308961537680538788872016776310422491967735432818053973521975038618755501059761427268713411799925971956655092918597420222068944550848176660189736087488753846987191758580627549179383714747782464110671073547379964801093435157855839065520744079183904730211792399139740924221968761546269892616149104182545288846104374296418796929005922140432348230376459212676125721293130549044282598424794103571209449996901770538546897705625966035474208190993496737025532909026157471126068137932343833680900942717323674040748935298635513975911869801490077712523520660716585193276128833614525057707562031303731548509427139866416236679019687117410746084419500403859134501333359171455618194395080211491727104271044630586471686717046670444141682943948229564834289369715324253553131191551052442670719950052836137640788359795480317989947562216065628725488667775609311757467761798000821521718519359134912589716066636628626514485422139203836900165878403790519188725957358184490042606227417413656724788213659574824127925250961515814223145377900757984445550977273431213694249709138222434909555715235629216932208960058073660322356333939337449360716888712260330467784931314850706328805274638448315800225900478023845238899725696225330116081687601344687749963921092178530098540652623659341838003391752078593615182103996808899019212459638031788913296391841552928440190625678303439197068951698443057639269004210025103486983251757456579984627186128193527095627913942446537024730649097658772108836769994758292047581298218686108679077093713509399570837016956380483842931404079159637462171823424991278740715438986257266002746181517639240257388042415376848869011540611509320667170242432336197709651954082504454090447920948268352618952364901216709782218798129530835158657034500678971057872519113849520091890336562133020591328075820229435888118312696935948926767380594804740877022338005360654872817209478720137863436784804091801414277407583974267833080289746138733282818612179568273840028258490624141315668274623175886510182057850090649034440763832585726845692346639422082389085276359187221970777698346566006614685090277224275684750677417091988182094557215261736482250259494152422692702752824488176659883759665435341240682985051354847214320500080536106266855089804505069004575479463533053212856111147143318212361405317977716976990096015677872005046587746339476209851323634248463880717262113875915790247991945962924958194286066176662681995138960782102739192731291943502827109462697075191618241642342593187139061705518290606067939145454877430929505641619731705015897424171998137596742392855675139993451373493446488185045728527591846347872011719227966440483892605972426802174875498161425950209691056544232437274178118336072808863301488908852882416092435034584747783646325521230773724620580328000339608465725086975120030384002883599997896501821327045039993077085471145355173446588491565643556534147383992332152509469461338904171363525512873059439752755218941549001800732224064655741983888039266826161909605056391248189425921095279762669861521212685847011654736277703970143166688064135621651933166708742277537351782135517709661587324265677643501323370600437504691168628589343476765730403466530320261020295672694297564305488047558439672525113234443341713415244414158243949544904612001880134394134353873563153694796929772245835899339050034031078402882239687380423988419025139731762681497301740745049388603581693847944656210850480675618804138332797597586226779175866711892788681848908176199093479073473257746965224895203417958428020474679037405678360908092907410262210856684101267195919127503730670551802896654375065495005583618167615497504879471812986760477853284731765456044642219903279385643982905213370378455618045228923356900921236315057084085388794753974047160587587860921834228560124807706488264093947621621981189722168137402781022032392330638756496184977064446233909765210897488564084369926105734216307077617567793981432487669047137387517804798122214249187582572123979944805554855549325468864312589409793528391311800102418261085190300026554888803767924060476961780830479461619100954654603023721056483435952535746493105328719548727562101189059635498846358036967079739519288965224020820169021032685257086702295437096142134073666838805380027907895757610574436111591622419113319012279359112822171462211190759657429251544326101995227956049073642423866742563504040885096469101850207274663071301874988084106431487040863660788726245918603412082067565929015932056403725759192441792649041317551093849628647110232967984532412586418366696125100044617328789672771873772687072881495682451478118994614022182308669477422353124502476117766871261716879259908676635045601293369512324629233016555075439052773097948979240710981234205013381789883752336012517735844138088931357688052954200757227749815806511817808027330103184330951772590613997766332746551992702680622244441610473974945577876951734108693706918433436062619891834079574973571078250460425156743782330981481439378928167575246283787233960398751316250741298965925045896875303165776181716196200441753205054720910022927901590166573994181895025327711264445601862825302548255852537275384104965535019396277790927681879488940039759220120163271648858705409405507474993919188809481604602493490202934224719659168074466234419400492248089498126518011187510441597242227322355403037620284792349695404222207765931523131948653877094586640734907893408829755821113340253985934687525359471207085009122487550429021932430820846006496546314746761736917199732211265251173875267239364796696305951442310739665844056811237697007311540968883760111849242560554816031889663596405345841086511272756092570699724980973758898891215567800232944925798626738584972821335157743330735710194169306285604906567913853419225882860610669724908487895371898418602782310500677860308578579775408293933543615411910331315829427721409976773198302627857777034318384876413635834739357097317584511770997771260268665338245330429848913829348240447848546471676995387920696957354315106011682533801404596717945138440331415523511829053078403583084768177492103883031363914439795808849606401579233846620225531153964216379504587240364819930525854761905711341358491638328505004590801905584211942163459739834413306905423956315198062997177351303588296887049817835110803678492979840464115154291325555498411340128868374604081597488934152693857831231019396350008375006464307167079150470826342219456586983186500525489694254933184619459809739821084537705296310979038341571478943361779651772844448635439539834595011949419162543955955396605757948846490196179971183055234947637658927245685319373320544049526181913798391863193557893703297786442503444934607412717930527202655416556965394847153741969794148211781286490206255655772311348356034547262195113467122340158058211032214291273680358462011405759621721301854010154111222032553665190344665651016310225692190552088171856622755084908446037056775225486263934149701014778661992735359346816854189055953668822621038573303163709190656715760035429274028585136616801780881629926836365193980270845548844892361691679408141554287088288153683289675772714183942826285329027118376770720709119382313697404493762590176829919029803872007196365561613242790407703423570368045875147983373574474431817207311523098122529138797366314124692657288782297127257547818751982563788640272639524995901112290949511787073031074256157332092334772121607778432495353803119692454536367257884133080653843317201378779361525025132618058262586600359156120919838215123863082884372847928164247853672502838092951083082189295210781137101858366372281184309653321016951254872325325576068701905110358457968049535635795894684762302628516847120358854383502813918091316090296723067261477810374372224471799472166368023789639753463363238570169155953271981069664363067810165360814867941680946165119160743362639406556467917860645651359243416891725414770282874303576085956928404250597925570313894423194728788454934386139972608394878481855948643350145162840713005020587726701594820918779436364971285468223756910786103635295323208776755568449925605588902943885640552670747718290103743148996703721426025352419733373559363133034273993776073688624703649499428878738235934831888244429417432359013961389718803687216051232048124211067909706494474498672652498814769325642624577613455078846885555098307019651647530278820621534054687669601224644476396229537765570339643583479876824996686095400768515786454284063612337216576893917805001750430952688855333711450654952854141491437696306794749634357217665546283009638502865434094526521237391870839279412507580912950049114448809654801038589797293113321378270904188629042426210747836622495083083487400604076980815454617432043087454570513199992802087196226529693752003994453054132699794447694761616189482140568635408519664335537766956132890446864039132583070330985557521929102364705324289002548089462885765908645008020460966668704084113634351181402011028823343899668251123357587343148287187935997575976666151989186031961964440435426534213700990120620899531814529697204677509217222811541805369230530991969249664343834411725871068206737334481643697367334449592473794650319758753086996050542146888323802505527370443973579812254193634309807724022661849669075904265413299195196852181577284737979520849669553442913998455234893514609210431210934813579777564320668317725499040329835950600470895569103913654249140563075152255108824151872171059032164053186406515729274112578623473744251610184493514996501674559185038563556080395725554415288202961983951518467684926923053287800329892402110186208676110624054861136392213476181039140466229665143857729884620740262910181009148932815011698558581482758989826207660130922793347385586963837132487239323656602059860673254379688584085626064415041214261311093978937765561352060207357105707609432860144978217898940675546339774528881468866245723587635616436591717855030761887018506867261701834448438938302317195136169413888458576640803108315634981611053538223617368565646187046807672218336694771290356888026854186332509801317103202184261816923340014513463944824541774628537008378583055552359410098093235581528453745718930024710000787435979710368600657642710548511036215918766129842369598105012366442158888744826778891940188064346470273002053734436950305280269469227258556697931133668002161938686502513416647761648939988936964315421166672428761367235655383334452404007701763439591165215832742560771904616824225307176996148185319055048515984774820710120942809400803668444516616090535830936719651308166886611651400336119687390710163727285945156981110148732880965252207439836088768854551843954671952542233761505997372306277968875495859039149102293067196154908592963738171702501519154033240036387865982724425551706078782824820786339907879568482338733755170508786143601619952805741987808146545292101628571071661199325269099975642482858557185444599572885162491184086983670013848204066863548360372462100444772270723852847113201551363603154686118949551459236259504460172036049114045511075383803346676938778433119335591727235594390250273478984337288788129119885919463528890201508690885710500394905194360581334191570941043147065649821561336019759850553705363847976910050614593667506004436517850454774913862156623222973248873862856371284969601954532978585957325440194693081403828315075412698746030119860580488284186853278747531695059699123761434082084733708313438991124111204563907405989199430027527854864409553837810953311460733075750432438370413822407053320420847180401303385029311571826758516278222602979189666082305014477274537126069326572106773421384604116756857255350045844777813203054222915220342492124777736436540036900018771591452640393288252661392692294202157424462918151363885555142153283627232148603403559120932025691988727030360818024296397140881117935120866175125473610358833018946764517392441740340324762468577206489751195090071692936408417757603338309389639277906148138534391638091747282973803004345631418233181729992205942860951973920676658640908323066558792119328077924150396769536921149083704795558951535102049898879464846719994241547994003779297908458688916623155546124485471240705725641796775901507197847027657636247635071461807959476843309143508531221325596878789808068608040979229891155013250784177711909240502290332499553626914507912375388807146033516140484628439135708570933420327723666842308951388166591707315928752613343679774571329635874046177544730699705601186094738710061639338481727260514385715096066745253720984383465736162431999225021584227941742402131701072311237549212248060818039624391219308742605148996511045321346316247728279901881880609985393339706172335894306429379385520620775719130899711887838343089605343463774599216770063765271606542937562093101079275493571349883244337787675969189595941736076538940300135078182794129014668855042196508866435174256672742053115746911715860819486560937517820116084912881345652133497286214942351292149192954043416804097654066963214689231700021441194755880250394102614628474182776266090136151804824760490580847939895274452528728543367110136261541497823868027509101490859102991860428076470524679538904705389003831528564525127433975009061839680860681056784604605808171928198712607349503650292475965163811175164748545363813365865239257941390067048240627142903841935564662312896905550318268005770913268335529115216477329265251965582844511419115202476586153863478133433850575965838543160206300572227655203776013819163415504960946977022283956973709223787073680768632046709538537836372810656875808360452643990025349355237648198976506488251043924134305259184334979022561725498662417999770161317387441774320375248547662678720530111467933946085221030853541808814152705931537786672820010688779772137391625434880639946493314267819748593739369417636363101635300145570141623339463234223784208655780308582976805427548550896667629191701224964659025633708667493561417863963990496744619704562645214223644189647431108976838627606420862271880131987330054818370202635798204859924626836054301129968090389949376717961328210103329041663203811166014653596696408979971831064488353333926511917482025718881654506862471831280660309684810681229072230577359793346231477794557710943045272876899344016131919441887231703034082473471907590163052597376175709037759004590330647221138918080364660074100851081780596280606105675252275580245575581877421825806420098579304918810801240291129063784896911879125414251738301385501573366909854841697833078985908966624132972071573889016063135769389962746666350079626687999248591904768880084371176188611731673336438841224957480260208849531233075096980475789421538390962960247024998433023010008717097126406017365833565579967039163465543908946616075273692264434739863352819950449553834009351614184970569852879176984611920990976349765546448160280769094831239705467548914147463466238828023472210619335331492839711739917386205378811373935137260655555933839802677997344186561742043748106086146292865873995916076994525340196587862038997000573497937782528667115986745043485532727664394294870230042988637587570386781570439307582111763887034096918103742014276397131817274917076434366908288011338054792623840469226266143967132007749487656613339199500591731113930602308190603052383183426438216123021385442086783115345367598837003470576418371900803682626135252641092011242614822311900389599405401749500371198633023012697140527821936099958946696572874350886127640782842630948205010198472976181928088493270766534919612616809146658884826817069814097888377490354579490795178029916827248951426129710183629097921038946011547109829555846899751115793374910466361314215563793909358074038408666975708728890406450822500968399202569337175894035502804666957868337180261516119736570382513025474729458841579973016536836463742322428361479973019082926481672727560015597310476906339765160575661881268991424245684158545599340111007240794908718937639943080886834532597429334727368690269597913697497660969085683467315634830485959738303606153831510149814484285822419037487306152281659301740535530929977096368025919974499687192921189311728398709971963336330770787848086441299378924767915716752338109172095357463948563690915223598150881473967122029459515540034923254433059886320102141932508129674099117504933257619637475657772345013742147303562432965808873415506850785846024850539776303599752453634849110633749502284853600767670353099618572148350309381656478625647817770997420865562157593033971393435606310995131088848280819719538967397050900052321252764708364205094156601641477341773792373528162182465096714397199255074761040553048189346969283397780059760399836142578272592951704135366236289692956733705507837765868916418216089249209639705869156410362064543444122245236635501169016768046669027002802584113576533127515858667460071865634132038906416788778815506224376445479289258245897336370113350478420253496560364869242560941202066549604886977227603459192921116671902259292319628281307843314386513685901636492198151675251168418610619150733203598080048738156513563241367968344916137562550914775498795506677967709260805283772425403587412630572810169852265408362449353792764434864567216436501797220574180394389534165528910066104871395730420538688248935755556968096803220509436687670943788986259364293314787754474229226144082608106826334743529582000702956362177973129387889681544108604381104417067448258807443570289050592918429765622749644092184520012088105711451366607123904438980479853849387402280291597601462216751310879890045690065511389683864626843657608456171631642860053927565027324220649334756669438982500548117082791895871349956829084278464856926615230084563282599024477070020984984495036809883133413991571946663767853703281409905156464386878135210597458063777640943444153476607627541488329636424718256994160977655478910670128506948520745671672509676363734409322204814824495685362169129170420245791216770070684656568944070752046860141710835518787242620163182205488238079824804963493783199316533173567624158451394433308873977841168334617337926693322747235641996536656668752511481865292494584854703480479796054456510882873299511228257733646085159700180324792928920669929262397924883208108758736852048262566637625901837813695725446644999029140499741973753532247165919101612681805588261243644487873302568415047193681149053615182606776656067427271793484420474708748269114005625266760693007647796730930593989027260973918203331794055516422311652648767395542081777844485393316294118573598271202997382512436952228959878538230571281984535657335964721001763134746235566348916196001223218986461949945956337017117600085888671619187995823570992618069655614989646726690477714362402597324150604881808568523779426687131051239503567714245707221367658380213274387948525624314961739450696203637782486719385456337209216893530166238213542826395240539815001013582384695825899512602753137375687681383298314281520727989401271615244267957920156345188089288183335675990164637957052705912350607316950247980177998300292185794755702824582307356537908688863547187025262155559135849859802397579785422086666824969503603593921941141653281040841473877198420842111241139632623257256438782202997731771479113743809026567876101600343234358986681765857908048902744523052632284810365926308568086394626619580743013067683837775172639186306807501022967358430738674746672519805725826378831958123358593342677383491961908664656325819575585799021435163551689936028097427109562290551876929683019524720667493009894024188917368101963943478378062164828556548651753136394531870316918368461633611445428353754220947990418214986729683459849377047335851560276431370232484771854563347428163645202197456487315392656974286874211860839954633033172404836808834007983553089642280198249539064180754488310305601769339600438336018115207626137079110848963549043375217234198980787156645227918292156337148324929269314798790753669547207985920367535540747099578510410295370605129082528465090895153778791185621104174036287586924298975961389617310286480002972479258083330403613428520742059242474300621010313619533742146548756818740873999085305713210867033864734361117964530773335669525584946179922835552115342500051201204619602611477726840497755365809144440828782148650203732347023795181486007836608564165094030037496706114543976296603869598323458255683629113187790406717556529301065557495886283928630604682555613502537308046866042048776724196642113672653093691060617895577162281576584116338607318387384554749500231702156355170074792261273856698786732420657773463176413164973457777612172620926195618928007228566462097183988145574387551332362910061600769906411437411543806918452297359996905750565429631502949727126717894503184773930395304959887347168250172564547376898795592597310854115423304846404962421672800062930024159685848278252233737281178401787134564966412273750531661533041836265537031245431665269331323752251211779190956144262341292892005581685826025980002821933139142974340021725010801110254030196660758918372461853224796040185385302333995308761444161348844238865378323431637402912968433086600112444839051059158737577203145193750738558893107568623011151585225613584908840636794689172823744052009169482014979087236167146034846171037062807022718617477455181218708455307781792329863333149197726078621141113546430427999357093539559288090846066398899281630967383623736943118535802319684311376800216196755296575511597386761019468823069031695713511239646191265496577505720060118798235265722125024551040027237736110347022401051154190989259851020157147904120157625282317546285329555322573278762045533813108573168035845539104571414396003086658552372917360073968112604760949377759988650997066968233547558417408125371419857330608741479162819522135257601490279022410877182938960992209537233130726485096206101203601292687771406549160774975861564527900753986186441536706789905137423522641472403238845948062378246985847677622510940242080308106238347780931882685902844450847970663836501480254334086623721167003386044826564467884535502559435345415757325673575997952070192931697153852077502077859642953599461048035996116077818347427481375431752038743121185222636246579469050900463871834178459384586518762100666007213110809243967201731882775686020556528323060885373092997117646140538496935251624607470255548156652800350652699717229459424624719717487801437321228879398967501766963641852084190485632820615239424672723415512649137077989355966070738718897686574330435497942412394640814778728251366615261827071819557203599201937037848690052508138917883187132139779601824246837757667086881056274278726047213586642911576455782109694050652634517708695731543408626153413478619856322284831816777918010455546302530310060770842224221346896785166837978296709193204819118898125767568279407706083630825184779221765849367132275353367631981217058270723879266544507400181301988964744449339776725173758675764983478677952448704607920724065701726206769919208298413655519701946377124491399673713047010441073668771086046053003872894944125622390755945333117446365535012764426506993672894787446553613708777918297996626137047433089508096423167697922327632177775974687664168203007890926410424870506447256121827361503826648446110888906670491107917811763669871628207652357448929812298917286407071991507096313555763988840124589219120017568592169546245564943765117157978301984544643508397498997469614735727904091593924100826026035476586113039251258864282283947681418042790658664653537971212687147163246669424239189180616210375771267065696819570178143056094115482308416968626805880070389698752060260474936729714884247614737239945074611397761551223376828444475449789900118159544937190184011438360874235560631692982685933764757961095863642304758973243088430823605723349971891841128744158069307208868748876071157194747595940733073000179344519193672877049596798847021201331512003837186695119463980166192984754019832741430310473775740005009776274550692292287536313386166114542888583038190622028307291174504830094192892166275802552168059113702192643161417517865245402283259293878650967928048584567141368635197643006624968643268939959461393227040510585778166436184544238710015907190894707511787914132407648138738346345579866644650383364928658710916593427330227526453562941115912665343866987273529363779391672884356015682994885237768190836281309478164956843636314302792592462282048409020455197161306689825169962251524265886192755012064367915108967822074873977079111080859535508165670284608897895297891866563955077265954011255286249384200083203859805670841363590511018303352828125596101511658436509599748421968733887236411857428124157600819518009994533489134786405925833805474795556001857802150383970492024353992847232129061708092929431513246421706590139654131429406011853101473607518192180839586728038642111125215807786104432311841993343625040755975064676010175191021608269379429197417724157482776439874137552999283469661007856309591322559823812180639043119047330639398267898792922639002259599249076891300065370580419114336716309063188387711807420643594099418771006652204315212076960904671537452620927794447266647537452457391876041665058195110744586466825763501501191627637801461531817864797580272753657543876213699199167161067852448670637893685715380181362225830818839387015813344158742492483233362710638486627541293676944073135030311764243624513516722139466789583810403472530076105323306641460483436391795731929691077393329564920669710335160663460439231706101180200267400213781169972744749653275699649720949720978396354784869840887037655920971645761537126288184872444832779528431084373763446896805647101160066316017230169410476904941816409737722335468244718725433030394383815857798950694696622966160261812145569033440697051094582534312631798103589378726502706355927792576802971282195336535237719818704845552094836970588006226719705382827983064302098619948042039021166281432651482270382205898775017402572624895747876848410095370861351849950790284812646986562145591068223549920449572828607593021457504439778246313383373709897087688358209316581406509616899567960751874501929145411686450606281890720052065775594375672152689567750058202284784819075045330068504439053019931925545134805237993033321266327184771178440708936160007962016152810346457576311986416757036984636773420917723649877243682852671245515786317245381211318660788629423115212034401685103371718140556661315235385142758487021854055694810669459944333743084482327333971511409948604017168916368850731842101187617488019314468661434904236168297623664029767198967677840419592659247084513066335431239025562159543288098726135834193245777730209532285768189656426721646125638451152978221085632112699111514845538168793106753009170718661636917185855411686703007844099161081149401854380800546044910577994290495498863541171774528136547505257468674470255502615383352760147560312121634458248731237072775863383638695709375099394155000241758517483832578378458275806165998558480448965722172110508297342520604448865807038442481976796200061747938036551862967030932478612070706348391956206880019640259356142881348418121833587450264994128317525828451537023010548309354863598319966498542932161419021563733213980823898157559205356667215194576508624083846161393842473341033008494074576503741212356926997454763406738301751413247178069842570057917891701855051931528119576899149833160730185343812119768315618312360682104266368401599431133482077803599982868758841841143581371528958935084007068285281508527085348258758170589263737412203765707227179110009625139045661473974546249747630121608894392679734732192866102669716141054917814935631042588823931116704498472231525182119109028569272761854598530241744629448636614871693020974816381137578318855037975794557326493095136176630962024192559111320582892319684262408938145416523202422775972091698265601581446412206052444414706753340609873264093211008469192352184933161234178423866327038920778009829919790696962271597299841498653322287586692204624880659409568160154555118029124435654700388711755469792164287699800358597333989633138795698692967752265736123185608007859891392278756124898387345891808823683925959473959439084854613363024440222215980997345186394336634881276713761117007228446210573093654437678318639170856963590787468015583178424458174604944157523951532348058468496514676464939273204879389150563602420113010257447673841608066827856735646238250279521192722304977931628012123688038247325397147957540003438869894740747805187501369825535521670641865475889370431161601314853971162132336051122592138222851986656781429117976044146535877215446894574022687563197243400427073288278725530178990922668911130596143961914714279179157993290936193776766062671831411251711684313110441757437074313160530931946423363956466436192665237312225898077048135836460663080309226397016742782710200713398772371931035825377421667534439878210614066813351483693882363488240825642567181332179564521141669000490715011832502291406360674391441943388702322771795401880826754442769829630272869704533201955295715228787264897986258400454089779713371627513183954609095371107042705868055316184004873747496342166286738856856801047041453936547615485921970767863241203352562497458008419909910531230759485850161066975779761581065788006268214391118841750578577703140958093968421101419217307375452112771980702969648420900762347108386740406600708123465966630896479987572512351892528785443799543055332977580194401277448150077621442099685017084840796121247345661700157950571243320799975966317181609753153591439302297228725032355203248103565020875660796302138543980154258926702839483861885189153448909314582991823460079071566552098592419499829141798975914864003006319692080823436687603866839420819390163245638762715378473467013496111078079021325286202524117887777984972937687588215151752643938964818610255967458760653708863241752195078329480544740348540918112131308969547586273026322337145286565648544637476597395860131879160686946290797938222620395364022731854705562490086823492290002222993177592470762151360993291951317228633533636736622343593050620321011409283096015093084165930439991727228926208813024917660293067514088969591109070451616796331395982071546576554141901504779793726316422286801234651006386516393849568713098113588977991484598785555060865634655903467967741797011868370607474651120836636246075976094360105442500985775962275220116652987254814153902368669499572426106970164905633362211455719499138823804436958362293119948060299017887850612036358603032198597576014375231078327599111917049358083360869331717424518386872697730672710797181567141171453223896495624521851751921624697394708124690165775783035189433750510514974676574675342661062187071795201638250913604296609410097297192079538919924636946456848705680645960490718948552763637303936961860063946143564574516219058858402514721723171683821717144027197303499244843814707285200994897475505544952721030105382448103389503547680717742121609379594702040503881658613753008805990329582548112136998895067404386151499358346348478318566437966755156835983780640682297035686746671460546284843485753397965213219596193065278072625531088341680420820338394063643761174702555280604746105699733244533599234457048226849238696561075464264404984711431568841323327191121371863012310212822258707171707357820563199716498304690664521134821400525055473004960286910487764854787434788259581351052870679330143308300470000756701525304344506604465599127781254409044509836915941536263635308522861192326474032802749646110561954791271679917665040048370312151369555624139086353028772031010622537392125595575324221692527038351427983618353779938057450264860909665467918955096230748534121087719473261152325272630529121438347684956443337751419150133459800654877632834777378731110309582164300805846919147244579270652066002667937562521708547548620754087080249798657966530505138719049059964304986592371905556110654457788172334517677579816208525215948434462448016864435496236094902951305625022655546414530463925210379461281890880329410212721400670843409951867351030864497447985118098120173653075668124186564798090081568973535951625658766603399252406575265874159252658093474172764906292556915927106064991988567766812006502487264090270073223256640496450466864092730864557274716173867440671507065823848307343077025582653196715982768367016995806322541267299245124709014722927176218521848896990149076821858487607202428992360776625749654464953821791758316474797730561273765143071442420394236238395851568994262138097510993698990269642168158506978712237775206246399333725255886861990723039644411246861289705451216128248800233204193413127605812258670371250356255496772700124451957975554418884665624457027283340375444017112960850684858595033359225872405435015968079499660371259657196658957658429215132045227084751054535401443328209662830365222361040405824538202816578102819752729811236130933688747528397878637066332029679240354001305944812968765593047093445256056560602839879292451590051433668505459613908431903256927644486714852810472363338561501232926458104604659465959848595293683517289935620636465797895671952569397819001138975902604529398180497592346521684690070900559510488759388451836767493022770508199501031831155209304491490241445404096720630310001772895439474840544350150603160468939802822422668350723188014271732498007795265436134093587802848008192451556035189178528550152172052202519454661956789860369951508072953577792715935076785965611465037589153515928317583537097780485607707230218777101631614542992211333424985144225256808220210666896792218298658021787378000859093164464731349194203493358674157832746323396802072602282715137824281950818251808133752392386142864539173885654656300330857710570258694775665675046012451022122489332084007181488158974561436962654550951398010320235614674703149555456632432120018997091927977914488574103325963383113963035509086401353202442539755699626816304153815278438287001393928399187233989302370166732180582600466218487797516037450373484803051956555856800408439084767866614242095355478129909182085697822561835250179616448260682126118267204199143036954558192083937432143417113479949524850489009186731836929067660872435793751286751175934685423140542969614000533285008125766402456757139380832841241317668906892528731742729515131451529342714509375242917876349691905711119045525003568495398038292810720175523528478532165911833208596393639078215092534986353793150993531666545578194378237054080628830620606045060352017666678796198243449511759483959730123526881395164298637665193798996235144617125455916523334712738342940673690304069539614595603491302161171723027242050954874434132057057196955109106252995317974716294797361842270178799861513254619451748633951210250828202336623594954245171494797855829396202920681522543926891837187379401676298455986742940883828782549183427209016320807368368081233319729198196591223814597081392767937700652482807102752111687342647364190021296924100542986997697868313682407735020179100741399497501438089810654014938561548345658668969245561989283033762008580272622749777300879742125642584058998334801031261906595153297695126455554058425958760689147367482696083289033246597511647466430281576689949932471197225138794430098020564139781403580130095265036570423362436786524046994237190928342392388811033550243962853310938853985519237938023259731480809069750353631806789311956445657743531604538442235190953570533653544022290718115598991406054213959586202642724130474091169419155786321424057487770445264458129715996240668527561705170226144468104808468708466295282371459935838433567227031912568795148746473213440152177733005256123035517853503118462563557190839735077395917160284372495949141354812912518106589060921880299004048569359076235299192729188915879770316314251616761198245114828899677786864240178164185692243200352763380440178416007252288620650884743572916145783329406418329779400700232618591260209376945840767160961948580255945832616734860998845165506496277506755095178504540043013463781504863259085959241549233276928677967193827395390622238462204494158457794448284017144412507119977846984461824506294723095904381493030342573424056774306522147471021588538730632177235669768708429346233274829530384825452706124408599987149626953921201914758872332046905599743057194183486904353363244013290011016690607519703442469822695037735568477404905844475956440046872416848619975523947208304279178150747108210100310509561607149608167504261962938944106353923084323857465941221514678036010414524824690222084740949123683824171957825466912897140001930764845843471863176695275462318495771366525224403999487556357924582132268016080567294744367060163302507436880009062616246730301743712400962555860607624723710156554080561030244276156159296509405066494194415897950552515495016184082225164789365931791592152043529058001097455364205958138455648623484124058167881266533149857645031028696943169117253921697569030076679916940913206622633698124734549679048878853585214543593533987627967079811937287766188308161728862469416189884955925950421565064266921058709981691568602122753958861848130852701282933247275753778738149970952651606230623686051942022725929548569464803330051863809879815751630753225427995054933028021356101768888294915928340310471630169797429565080000936261691336830582814931286244564240415337827457171814235270174114182331834401675702795981571509258773188867253434967836560104448483167158018870933135627651770562719773267955430817036952769019744175537675452671913283951277165120850285404244078729664488149314179407369380121249355106350745107590363107343385037860056409570580382554754082751941698755514652507267116809599524508425698519466070650690597623846592951059246826446511198121711362691911966506925268509785892338850765368439400492296509508775647271293100081627223355668695812726380279259432396177855174382859581247565690326111609715104332912288045289512735999393726381697058686071120164287703669951194584019950885868295164686372565385860679548965775610488670659381410339576541832047447309307150240476006744832693822448744738138918395588524225121116760585716475630759114970456446269172634141237001420456506335202083436292760524296578534008733240942870627545954268982605753360491324099730492886207969423228944857019451343143043359086156753904058742503233059794779043802859475386124280546244397701568840022068054247249719017253737776430390876356250322538222987407263502733329227676514578779902064183832319780763782726673351752319410382300464420044868657354324647408940985549445576446603019245039689848967811555868189608986603948867792200147099210763704363459070531195736734613751552848756059261690306351190433545850962314699891789435447998580951567715605199289478126684220909947810919996322580552018651593964441929717706347472651552906023404315406518807579484553709881877877362622729793496953854231978031341291022973366135415021620216849071833309219488174909208907637007580066027742937546013664170759047955507281575984136417764250308982711579536957384715071441666129745530992485693129097389994130710142443922917194115121851622781087257546446004073265709064149908917114361701333505864660757108363577500597022119756518593890284550510153749506242582649287737631548951677889071304409833373787487278110703137971077957172143272774638175724350563403866411837622122169133550686290160679498528219658201030109954567216067971605551010202187518789635172566388991613610624862408380204205895548719037347766847958023209156302305998463536393069757482213665358803054169520101611122689105605234719036312801085135450259124793180893259508481533131363606902953772254070437707686903362211957640392809659008584356032808637231777541965617379328107189541247378252861072306609618607194055968801037506177874349651454483875068325176106772622481781704844139960329781547007061748288367368432894548029449773627904164757938957868611691451486007015063452397237328011364026928570872255449744396980985871682729315022816153885493974314670105892987285464159511839564528911881906996563050509058359069798488509497672176203968997103618214752147939932121904780056116915969202504461396928448848292433830480117529428697304166670728965582274089500315600600841231775324784322208539383793555154497484334507411212729342648179954910283526309431803882144958023418015112714575876201287125779838498415108438476518258633018318354074934280771384744728971825043714073212960448076365621771602356558707652038224446745896643547036541385596512102504823947103758727097842933679676450366665925864691753241693551111855498176251110612861692933287769208901732571984172998625655609679216910229919701809836539661030716076302922055490160832209683729380251564364441577093388739698323175284326990733254912782845679494268533752068181383324578164547059357961677956824327907480609014093986658016423328186878917815114921435730218767937791429922295342798037153488788801703364943205759525769017267646009950290990797705132739365623262089468576464135864116466337927051258201634428285145533269561653213745846639283979221510447285287781915641111801429095199326456424837842115523687726128012672550954101251021267388370848334504495282339826362113002178666792660667141200074804190073697220401615598148152255031997931431978432485906525919660973975091481563124434476809532750450411786598345101090065550475764702971174393087722695824558955242263661313670020627643273142011310904182011630328985247649802310428060172684472226839486664400241596128918890538665975473307868834957403513445631602438298972499663227336316675678459484226756834522128596342810728903380693023873559071006242011342522752676008405917254974595927853914947090712601409477298314991571875230830277061819571895378807612469528622724470243205479903358334250643828312149675474989635107218919048857655470593155050528304948264330288870966761896017705965317377125919848736334674148075203177943971277908643305981756915333615946090446960606671192937589162347041731772391857032465369913035319346588460669856824023511860265616508070007745678322465085283195668870026657543631571549281462952859965638005489043185801392409694398590091732219997797438642514627224670030572241143433564633280451188803381947895547545181017011462229894325435137431265151316309945159437933324503139360282009184395711271363004584621195472471700932405442539481806126572725861891582464582856995597364295905275468314366411985560514440505517852942483729245046929945960852471382066727532293819485583161266128462209232518699042598043795851293522521401550941385486149422485921891083265367503892075972594153100844991168453566790086473889539261134245337362254443952615954457257173045488558812056942056456376558435970890518780106022340745527836732213940309338392276803226227954607702446951423869049753138886974181078331426474472928234570705562482947869327668098237314888337221312135890483769176492021135532489055326076310833490031777992617242147183850042474223117482029965327182585836557408479164156002366009320408874261009750202274201461132826872491465467776202520408852553185622345461657993030731480083161889969788267624422937955390774986366755482898079725628558900572888055411180599771766105217834225486351796605017971808067731806817528538036138917765210056562597719096456890205988499105930366579761212398012155078855478451817990182627831313563836462853144790108987917478204479674035577865884081089391399820619765182749878485784673020434729273638789197008091035408273744443207232906785750123521564310171493010342427555752142421687601790708578511405867215802621247584259449611775606586358393323310920085657842794818988800884671200416307358799959201564211234099267708034652549000325839888087036230924814495579218789837485101065577836359409962388538869210297707592196030587662359492911747677628020398045034847637728887106202718560291718995517925778609678732795246019693409615132226121093682674187896020967403603197407928711688185814592684468242287416546470876938179413964653515199338768829667131445426897949632590174381673951980984290514815522089896400264284217834322245496228036507472323321505883238782763487938148136270255793485583353803122106299923602123112427067816264847992949780486455242862715564681278313225258105455623534251769635648826816642121190013709513490191583204860324520431903073197540559106798712999305876872600041015198661668448408654079942916990544444351508936580587823454876323935773462087658825939427726644350820447569935655969748227981203021904965245805554285968155972430651744038309633260931130551348598146894849602630726386408027660699080411180728065264283813973980325198908404546973175967066731962380518351075852091383657146716062642110918689417148135839859732692315377928594633853305242236719384457753186961068768700910034462532546641693301420310785198034980534580359299742578064535828740209459047052074473845963468686333782413796055637551585970030508475427689571791413907835908046811545470835851794669090616783156092857275423965596718095279808048426159967273125480942863293909915030060226437097052557458309733954694716507346306970770101151890531430636983994680987729296988634926020481227983133378936312416731205068436019035644229707353372814680279130260291508693104409017340213265205190034200965159883114622777312711554923185456642370757038555769716778277469602960509351133174204276956499386080109769710388797429265849041210159999178466522809273055398472035381841521689685277608241535589568299267491912966729606920956399822509595145659743887054681878883248755674586953005333226875051542308454779561460566730746170657278082907696722904697534107400602832859785563814693527459816808142392614428533177978573172005264338851939671544125962042573020922184975641709531948182161571582095317927461178616490954499585960141376522171601070720439139055721326789917004093918690138281585821352787817321495028707449419571458930319020921739529628901859476599535602526690217361703105342915409169380683947145252546740190464140487971099445187936726410781609813171693721148312856246974656541488701243677828179575575433358168402492210253028423051543115980226352449813475470101628508609526304841145479270759662995394833934266959232601984059472074105653117701477572170638071286169331361740394821041400544517529396819391353242213065786390057040795642030031043891502997021239220982027867936894858478452628104951551626269892519774942606719358697977603291696024250919563595196339900769589493887292624363341251852198499420120085026056180817838815213062020017117836063291465533068675506824086628364615500408433175196865482279081188600109441785080160504439741369046895190053961358281377123911721282155513223306059397746417707378640237881043199951978646380478346038767634995227354102550219461856834883900903596215631568896167737407987420633128884487304297185162043039084693893608829641580674074995894519932635622689679060583472620327266768931972258858282983682245561433080729224764144565551607875058131278120986035969097075778321976781266143079798409031135274842847355766913113927870249613119114706371467430147171367357552628633028025844247707447312923699348297641639287034834500874351495943103306661718068445858075298531728124550407095292832465697262468431668280435312417727840400399950067886507246379500878119781354025319976114095677285742141297720334625398435356691957756846422795456937438587230298286598321778055364806886323799204985639325087098940857501218953765896434273524929637031758790618316482837353497552893734134831349214241405552988986584296705062771774580943613977569295379618161973608147509293734977880594448054257381970767157956218377564686268548201198976161697733867926386831809852161739176808744827543918642668409408124715884954158929364553971740789346911758959797824354531288352769405379225042403049111410135287020967066635807728667472901536402541015847746378897305137159239288342881306061539592665754078062828438649058918062764294474203704214964131713367786442815631789479681274567199124411511330116356818704007589953696112410504293150150790666349954006202954798154859886901197685517072766298118498100361302941568027083573329694788433401014919030825396624486888618138132062276645105862727230247856143639931192773200243129843841394921904108101446488296686177424290021181826419252178190644724098641801099833394515186283452349209807306648091218190963957621992034380323466046173875821466358364555591092063178813538313816420825147430087457299228948911088178222107530293074567470645265599120607619286835492782020878921571935782949947167058627258174794234386671239466368789023173742408968418158266964301233235695993279847938147280739111923407036909716005947043436396600203367877382943714280011227174831022546990103681435683160759841860590768445627477772589180308067768727893853769724250397198093409112091961152988580927047259120321696676900462345971426688894861103316210366840330929641323024619180741883477486308993619893068194183499193939414556440487915659111926633876272647309733082501580806154471291169712744779623350650629027249387687522687800680778010503385536586657670175122225237667674891879350959309172270281847070100809407158434918133212979481772772498436436677582610739254489512174892586223013737133223745742012938533540273615757187702602727919973054122609213150290915277142009927479328302693803682313343330502842178720479770964764964375461384866580140955401272717168485148661179599719028820954195747866305245586603475297080125580514162385122655469965254093088261642688894541796375803123879049673343466974471603958062212465006612087495732429954131618841630282000004967733211748483110662409326257210801258340575613432414798405359675790389490504591049336143461845266178353142384754772708421243766910260836576513007638100769517683389013206404822358636603394369454008985965191093057268267508864283089088695620605834876260675070175435047775091983432138117984070033383408163092836251700686099031164465385885547763164102371925711567841135655427727425380042449239631026870512711588278646144660262226110201622529113370841361104060876171497157374483452674127006756850971434290819325951414119828373768698102240320237732391838035074632363896469139023104078861055874769047864018311420344335928407088527397190729117408658255947586170790891582098683640907003156933159610196153336526876288516975644663896692006973336683184188498430138676830016382258116438124371473711715686229025480068401520609935773698965359434734771474953460566541192210636163402495138415634745862646272656399326168706023021989592124174560611233066977338304238009282240728912219541766817673366347439162125539985374432303385046482748592194710967900915815017963460548413602781644327980210060132006805120533590955009770010826032542749407581679651704192603331964707647286148213955112471078790359348801481760383730922804055971764925329260628137249732210962481836213651645461566002013048748774226822909532087812080935122281954654138197244519850302747456392944145860581498696186834571066770578406694657123120701550836097949511675847031203913836435896314054183910990089057318935584414090627549299508378704860906556655158378680315730279670543247867295237566731187560176925411457481074311552299855961755226830878943196817698124391372819024672727486120405726812034162844394978838011921468580147702102145584784195322637167735298696796023874721925157513928164561977805672042158670927682480964858159603627661988820579033307391382107000340581350367115842901794838630405334578369625391428281256328005549658733308905530644591740206669850674634584687919641863385826538910651383173977436223724080071690025093989620297520017205583822973200150285499143394996614673061272157241449699664996578793737212373145595085861965243151022509780590835141215918582391145000682909124963410014698361404503664627978557454745121066681014979404316598766997930107988073095606460347159444492964076730261492755778085695669880250636823145782599414216338045094920441253815983931380694148792557424599164535139098743672854373516200581252480285869873115189438610141844509210726709938752893647299711576300781644562656542111887695246667977991873449081715159536532527003069248349273912589086009535187088727151659634074886399220762262054502053407754627242484778519279683771204691366008027540041574895860192963899340698212978893655793580999779924204720332997639733959885153130644484396078609949213857425956848344273372796834952778835496568675178862135035671356970458925960691218670462515577251009966241051332052565619855237497472483266842057862281566553318383226213331304127658376040588145867738177384237155498729483721562096183504745866375993070575515098974330515807199843640619650669697428004828858081668018516673191058013180194888555324299724918674851076098064335625881659907253803564461283844137623826071395768907431331566020882479840876914799520475434899513380768510678430895702141456810824269531696448547410381706398232705835438801332417858125284133423528716449026177797500149449106687031221592237437191206201051584373354014674961932212558611428394442657937219452288067585943000839330230239652631208677380730489010635967329312965167518627777356468501591511802788533172849056370258818953399799128850956728547307797551478953773356530625938287482163859771106171745388337051552910330410455059784950324985388818511149276356330774003135472588042247305881554976417932096722964077275840543693310273452667470812644629508771336040380047066413411138821460361076012324505637257782798065946963965366734309368796590043513755376830720220108821001006615860077932234824026310601817712853933637875794168830878906787039466243820273917110424137113530777394092966481481807068913972503991638521172485058719768312625678518656406386022260583272683914348735616599763724916925085821675886628199800943563013891489629065768755126372647472422844879561398807932758070630986770543403443493393701318754643848041200415547056868570210763273817802359845826014224265986027950918097981356177892337112283462226527019121056009379984547501944199458794118787641892600044265072034726183517124636005732255135001617784660185620369845979407278717883649944420509724703617976988168638692953342381950325322009108458819983018640198902483831851632778176286482396764062851649359678488123381849809249312602155820734766597514782497858837011084876858858217224842786987371478601074649722015356424078000964140513210806360489216808231420563008021680614201978651828239906654165573371167917160119711095850785514801599584128800968346839532959450512414247736153980940312205958424730806016386696942981535602130811172826145433473472900042903015695002283255708526684116888740133999813116738238081058669176659073557285887051862389111104921155718743365861479782684055951671904179653898831824742415141425220841090305790749471903202606103505198610511084777716601577655788108723543027498872865087042323376795383671081624143795825140888892745682933562633985080864164111651220715538689100668396840558587650057606401035330200722095389584866819746419328377649229421388251320608984046196773424140340472931670509721071145424266207509629360725969738976895278338032540892534312309337680396102942664741565270918055992241550348012502159234166930421841264734985255540847484287411623842800383202126022840558967439051896469390759930802355443827508990024280588114910798806284558030473503855115088469687047143135160183642222217131329498804988580502202756560850074760834876787832355932208663754889834884507218671671347210123566597469975343388210334863642147844613282817884101650175897766245713240909332805786408847021872030505678633268547962152725562281086191859443335032415408302361961225788822286368983020527231806728860779414341522157820460484604275074889403743462442361460851679974956369836278186393967417105485122316772133508793866982304059951047118890005698959736038872290345005256161158331319118470380258019448996546631975564634919203711832193012421240661943233789303856332025337883159606249261084897019446275361219503589915051139439474208308870655280160672233329142068332283475799820202183379814899414674004885439489893254413088718207368880043839090644829338594645682040351195688318973852546183667338582060804024645298646344536819793331629479742517266221024413295958185961763647799830623854076497670789865380649692148916407664436911303020821103494988249898687429335408383304110825008664516672279698452473062929443400557461196331884955848135758443903152116467128813581328633752901886234096649817581922635541576925639383336539343947332861466679698841545225916882058326269567285387794837701224705318919479226976856398586433387912387803222729976023775778499011089071468356333704423456582153261222475538974992745250034750956149731375719208131885315347567115485615856441000774703351659961501726278363538002188675568777219715130748613619367528641282682937054170169376759191984465934406291347214359016044129895982811125563768751160635888803717712893451479815189124209660450546687497415553300752971660485879310438670433119387536787917929349073265588098660057062951979406430753551059423959417383696033773433515657666476057950350220345403164413164198101780302196952378969809565140911007409491295521984837021917564641621685153870009978818757819561546834559966891190068076432285906452102049408405774609321486380595678879707426063285105618718376230478196225984674382849204955823926187261265606089584110379242574262247543153745684824139892756407927459823511262992474242100250712232722656937630482854741483052526801800827704252419630978577121627789887246732941466006260103770983189239477339478601360022942003332967419371467939753981913113067468125003303508805943807307620028285331680236151955879478474383348675197619946319561640979935364135617983467278148285021217745329569005307070320009766913600603834693915295915997034827221813596385410840673895544505950425591684463110280589640128504592433537034143016967015394165154748294030389766280384256474460374856829739717974694265592296985533997011810967007071435516139438519120546940144891900239589962700155906754061111028872347169078861176690396497667437356685314101132736439065547999943034038496717404579178849872181788178299154789904539364920890367920394842025907141982456471538672075847276669327578970548026673173155210592696196864015742328977330287251873064523994150320954305869044981906806158280389806117243948312527759931270512164336553446324335818328472069348280954155471627570261165069361445829852274804854963777820290082442800794062510616527510491983930916170729556696508509127524592936640601686354327862278272995201459375249032729918012663007765181994305924130781907427114599840667311620287103840361662762217264876214930349768167076394093960125750456634711599992995299235152803323799707691612721110637091416097347518268091744436753084418558573486393912949249014449308898251561295494987293022312295677109721021205288581147017021772144078575383450227535819582475846791894759064826372631202600910065007815494757629267785747201446079388951111092712107606783542696989504297515627917907675761723235065368982260016166275396826084009274050292676403579718894108142234125375701313046346829369096987401307396897351493776139515674938043011614768013098429080723212492340782411962692235717725680937917772046041823690322097591101852989713607082579856903922438292437587273578117761707783483509901105527119413723291417069638625076270837025390144395934013935654174454796172571990597481093825777490246560560237565649573301472113083518463016998881711736439684918080807035797600796520851525813064805107433454297815929505460793795785351834852726100753608327443209159586565719849849772072795157860305186363588164276091264259339335583634089979724806501349259087520145994798948258561075675273708103656819581711258062850577877505056616388491665374250948146026167824679665603832681791569128474036317717171707202430596082252435826650097718494542340063485296375696147321415927973929783438461456806391105405929719481914811740348835400514895886240982667776670436325668593586075677643147281142057521237573195733464918996056426314212642409367624152935731756876388137127361764634372453458618788260121947675699432537795116975462790469458754433749489329051668986575238537802626518584941882167629147976118406340232742754793127721208081669886848244994054112656780946431138597445754820335801707393427217044204003208187195027289723741471071482680178492281518173062082536214570806118173481667469326128117436751760602879488421061640719035882026756244739171323936984005160159834688154661522058610223289560782575666078882221363040011580380469975298447381678052352127429569581344566662910819415405924196877122941766504788157996568937793972715504355144713990976592179637028399091809966203263897374309454160151881434707113133334764433436745796584584547506210916942511677244871839257606134787501928167154666477557753511039222447400186888472727361281943871542300977021060883325907196457052073337743693452137329312241596106821035853328597111997711826093173078890617583179027020223488772525076856557768029091250583899751684420041122194255651960067513799117301112795137688609427101213156391270263279382429087895910107224508908346352556759048377476010216112984820241772133731770757921390499764018607849244929645054799823494763805386604699610219577705534208610482364015622272326233057153655644200442976996277828411171715926897694735837270513265448147741557958184323794982349601065984810255845416135406905648726678058650286190162729180891005159208931918573981872130255309411693005800920370985383501842765823086624488098734967396664038568311152912686538848710917016301263613834800272726858334790177014384111380092646972995547705861217444720210065764921787875257390331271878983131009886969052340061321309865047019090339156117654025086676648003028272390211507063172197777132212666565102001258706176160540369916997144970658395946152071662350281634741967487349210343174538357790548390507782701961036111881154318123208065949655081560418808355411724508936956439370266886090786496365118453991755990533329597542019306956265486750222626406713951494320764238016395938353056673606689023587049447969258364571676870655904042573098443221943370433536069652342819674157615687197777415480255259233400065019589562913046016325609737592471648366242178943984463029868201441842152578102450495744198455024537799139174313984524745095557452831961011787977558636639935130407259057224303750504374320782246055111197086856873803896665780183252109336414036119455428991702318101017064842887493585451858236556885856349700454423242457069956938007833610408574054344194075780631830549158471965344280030003529566552774088555570514877847257073384644272394763718616028008949137510540495002388900091519965958565946419415421471232651613183578447530150960178831753216625975883914703077902791203730557608848877901662381557397146301113014915159841787196277895196459235795685107887696062204814955342902623311318968719323487619261971424334975988534352287604498516314937393997866286920788625886151036286252203116539564335689838546555436510293130290502066952840720791125437385657026843845418809778056034612555298523417346988061263213716057600038414444519477549426831516791059791438248422219128333835336151025169340656599143115562088011874497945019722414977174786083510565229023677012798121215858667985757083897113818933652048366646229870878444203824221507399742808320091507881269977500030841958804442995277022618390939190746078892920872569713312625758003275838608601318245544079213418649497201950390811820968137812981366365471192623879842813733843484788904112838119271410622851847045949140200115984347046599337622824329776634753030447050006953285254767669830262885179734030920654309559864363572581107602519169996167046069959417064025780787215353657110951131331058540066092768877736585239685827572450100458147751207027622968275782942682701597227944537355819962239602978487651994637956445900221758550440490802515539720833046627400889584517140870138515923103431921681689934919852692568872297659206618436338906305175063525970545761866485413059525775889484685514919599444738399808270341537778590012223571494934178394504170553157474723596765225888400088341924670359805069247598670602009002383429039316064638914893612170207167042770077441705392320858134896664850655299609083421951356884918415007433555672734239410623687028882298248371244574946551460059491051705318773151695454387132636814137902944033115852537636557948416795828164113771243017411314889080292673951151749299506174306668797358823190516044415641889131368096584270328972639640067641224909529710900834360389875414676661606761892922286353826866158451191921206368916615595077430932154012039159237037523302016926549707505851968538836379320897364506940543447608121499635125698847361092488310105305402713166624151184072301794961218898245925603408889614808631844543307254891741091205576076648688593462523331362131152302240878722317537430868233696407957507112716537406765364138950121820010574540605901092007060644369644076285573704722255537200489179672466001205148133479921359148129285927076084254587232423873452038649487675658866050127578574749672875558848078956749363068041324582580777919532969891344504521949352370511368236795284359217170761969785102716721585930016250418560502566301248903277175386616074706155388385425331257992017464613151447462808755940625783182451564090960295368101169845299846223325819818756131000618519283533905321036771135543016598022770642801853143197575036203499751734599490608301246273943922028602283946715654684913258897228243347711517463038906987665009436933874957979521224185434025711624344313659438205962446561441902563529411088141778347013826501370401731052230884423354972676414249587127295662484129753700014100578721017138932257392203931639298609600146431195410701507343059032019391448987740638730193986012991282866763226386791724039404283261730548496238674061720661856221427486379781875413302270361405755702246727240478422645460515976448313134948303702980360373837403662444227316919522874396255925788726663303802417018034965839270350339790131295655868616615459808703615582416195225236313335866491290381859237351542148379428090597862489876823014609462791382945743592013137538795104944220912483289316280567373763984217754176249664599348826784168328573297079749591873663725331408188704807913585387282803832394596805812312293173862348308900729492568501404675812773431338278035237420811087009869367312508751686597415563471651907112478053948116763317183171738675677406341525934896819239618041572473669323830395877884312494183113150096239708666434548893625443946674130313434952601005949314380690489062689926309820456518978104123772942561210693129585691280342839242671982447460855245542203376809860457349936056951657246651488790504180106350207982945044909497184249809620057879645843428610249575718314189836334325895511267864605434722312518078562616267947095259322662934618509621580062618617704545466019336232791223888623506614379735486084510395512035980292186021626847459281442757279665192568766421699229629607277501623632840066089894609709572231405883083452513667555515506078216002277392762818226081188699359596133081328024814856239195042753914801848191149077389175152802804136433120734955923715675195882377004923240192358174670905506796149140756559274578317243756869300122889806269877477880231056454468291947459627183779009555481663054335687985514050902487243513920914171609337010861362218540536675920315798475452293149344333448252481637464618524441830186695277916274001961803612813656124017167997431941717929142151292009236520065661695820288905544083865249741809177542932259161072668697337576047810188528043509082187465343367629560412625980823435792329919699273006405261421573337378070100139999115782985822818353715451312519389957086877182479707209400139743465589131125351651618926681180714929692436039744892518928064940747949037672130155177511692327558851120396100788695835243327462483529506290173415568548635911751573971062531237455023731555438236727887702289791479936515889328467771181488818595763805142802825018609966033328773635033830933549014085610745081707146869462380127717256243254839867401589692627633186910949874652392483771688934195613926149003584051927422688498089183599519266006675909040419495579655886513985557674678527588659834349433912207447530006238685248390365279850028910161980439105144127658574611144624894717930021774720249725335550657413453647932839785794749257051993046938013226253727758654139959625051762156933565520672267450577486178954246322602526523229294173955321643551504665157408073086011619891181124905492193397275152864156180226778319633382289270907067393157828435518478332138665030306911148201302089697467174378253573723999543355277744238599275082526179431808578717370215219500965153448772059936791900069406658882271913365515711336665327610160331793404693517638687141195112456557135393160628578968122820919352994073908517949498825019420121493379700859070913646069614582749283938208106255560887943124578506760992504626849093374763960641627417269161928169795296125843845840191433291239981135687555269203931388253811501368998586680853530998701472004164319831774808318280347971435442227465526910682922224904277381718171396610169299976334134012123914380958974723899484720387894382916105144222086653608004605606085958626129767252166326884189495243040284204628069356817808481643084414461027079832217634278209259847913839865861508099250936521645095136262884259064637468989657670843432827603584726749527912045142563383452979045074081092247169425950080636865261780614533303922520448896580900548856647644294575290856189202068025462453450371378003687375293082978926248996670657594834880026390065103337298321192676898136872537551676826304697037053120572933025909111885897977967627257839871291037730491936339407131088060391331194891917418686607828184097091952981079723413326407830573252358938660872525916747168966657925813823297662633797776184410559797119308072329748569704509698926477215734107121147638426424122360699038211067752109275734213534500509445744626721836855788975906991515185566711206209982177965299571050494989349206978620724745700433330585574323152238614419219680838911003629037650578620187606106128968113793919903049361031541167152549289720581400973046263703164062064546270249470596750689191915572302334556044296167447945190156193889311165079545970477645049763844233695024460677047398854397443688888372927258641579306064244031438135723838756096712136112507888300691099839320607637859815224881371873932162685580155912901560545419907607160389235664108349162649809865538719020243104125736708741432964167451788713607044376652181954498831312562066594235204857805506536722000529639316691354185409470223820982588968377078935571962107494017530524411570880774160762486245385634614016423198948509539827955436542666380532407057200271963157520820564938490241825952247363920343639511866457799922153766610766249970912198374534889018811544059140952313662152695976401436583414863426198362844138246305013178682597469450879339102057338713050693987621941510549957309184190090395200214953744558009130508685656941257799067955897385176699744080330369330217198960865175302089316570240146614040065813865976046595289344824758433111134680731174130321695815689433222384289384455235015104437464149158038495965877814335664752420115785260737195492397345329779642543745922167768508025781468805362374394256903970239138021105157226771181272378109695003224205154609820454180245005977708330287238561613433948042403231104306465993534772084806140224982970998017715027191039984539568700904325944407101069892667098784363806091770636549569842909386549554722676015937622993874799786050908745279688175256541038232461712848969491292172834549198644171091396071267522564098387174813545810199196988769265786765353509760411490067195109982479978068480498817821411901372749335397694920334445240638006741765644978631903406122989344909260801029341091043978109143852134001775464155278865866261220781871674457046082811581971099163631653824127885198611483953337361229202172727796296643518593126416794039337135127085510113042349243415557929349092147074891327206403892146088349869690198335858098645171642239864828921013014990301804528555206169931817039352931027623435972746277936125566760038231328059358799062584079184654507432150868694330754066320724335943441838579217195883383655809042756006569037786506660446612853289618643681784730819841635252366575746975619623632485864887589286156079180862798911545608693233980990062754503647650286457856498864302713164380435082543254523736244876121437630576033697884400958292702313598098115401614464561088115440558402899174651494666106694318662157467541897942932084887929124327664078855076435133621706938452037913007747337248925965516724674916347759911210022025633357390238179405204285470838209865320396544054466387609428148410787043823892623933915948508622639915730955437345556127189603003895895771255585364180338600528854969375600331408350824629314840180991896621031682636614480669444724421841777501744258121006219947262942211839077819423609801976394298342772816270370258233839207771479394003489127588743521240783196137644229744229470358065179976848615678944780458623658571260094512012226468142464219298677657619155262109614950728304300600339016398242521726363880023448373865491595415473294302107103154924451530240407939553393200248928544878523820266090899173575571483984108464156339019580299713688292944437924755493118336280786200642367373006256259942214416799634604301488083867520658620631400859317311279860246419578542199937808803891712166965109695509018000420168791830868664537873457531416409492094523539697120817968785920490713623580645747638886508533155779913316957372594869693204370243077508302896023846909145419125750449773689980246066617542521132614458587821859471093901991831083651202284763207859321454402383667108677583625407027238646195373706011288223647765201812303795810813558934486499374015512140216517208691505303317466940399534686730787676816580438684036519232656296450516964478841276812933037572362457945600226699138346417131585332360565005722216807349578023380275337290940953450033985601876850632214026405457894431823870191640293404577429388911605235263147759066461006151015944315029880276189020542342783979781515127061819188508618816765019775616188680673512882538211218903566141056262823351306605441103373650290331647553480775137948394213790821878563430224588302626815687392847473718342579259879817074250197125095835278781045921265795299277168781997105766168260993963422617731422610793326647311010281084379597260478185607074697709014604599157630389287006758878246203944823553006056381100837603628942761350445011261819512351770635765840127489185731088279382708181257701636036631931057006101462926009689558988549720379634608620191094604704436662491589956027211576823898324808477685001884817440556836078544980383602789834960230367902840133941695232468203332974811720079791977809230293837580857716966169540889482283664468651490981024421667021461042503296945083550958359967968215044880852273207414203478669453168121251952578574161407127082555392651627579336194157166852491507246939434771317252986655755562034293905255582671402936672899764900489805789438455582951421713539012904455040121834271623575804493188491662689930206348401436534515879706259545492705432039458927257690370608936824887631878288236296240185280664982172357680624317151005070715466991175862713719192850312716482482985511406020913501849878206303255180120329326098055269583911140604626287400918744641987044959382820938662592660564658562401618304842288056249018885205890254830143533719617863959821226569892794957964954756017604080282595697529257348765642766748059695402350414805169071661913308741235936703234345611731140788710038932874456696694699779891380884393550154444669953680207113058162191915870439900685287634756378970879245611717548539752950164307642114135286438942567321487975058582528922185851302306517577586170235061949383495776153116409252441705108378007365146322560107260504884341814814945049428795954992391861891504505968671169359002928023824917989294715941244855768478834617346767361917887543490353658938402886808512210531143739443013535169368000617191234456125161601949419898200631310447773414093673509444387650226766119917245887686141068013438958195137629617520703837294442381633359519175514168693414573459528417476388754681820551452108643275923895080791415471868788309590502164364721515772618703332849139500203822184004154509516282693293098207385590285520502220607528940249472475652843279466865432078175950897552742757835862859237462533616289219234725992094539732585460710520948121984950031053072494589334039424479723932452078411700713966564373463612485668402648134708467717488998358458653008600994636966050405179887495835608261720569370352568141999392512634348643411774199097632337889045027862888840205729387261016294491174394384343763747952635461243742109151890731684085685096733242388112068098453255994625828761237074377461975050753748024494609140729857563258605164753247383304949695498756439478672258874732093103541319750742193080436016877782874001235923748788939125864845043756624924722683358827832324763085718398319888898764156904381542241419545123897401931831994758151987854003774982554330998219678901945312908547628746377234474927218095797788265536904423539028968735748589355615609265930358491528545700844773128883263182931984263207637370338090831549975541150332804482678216806977814301408867418169057388436350687370745500861683266589818001562823869070310985820324523683679852738654758903935328313240724449483089038986424148615497192035158095246370652095505284077748078737694062389997874893612785709534688543990155310581443102712426709776665864329543043103998255219820546950929729408173254433949433325038672986215633356279816441182774432964405176656747759112161571304505259482624915215525246810201044824210628427048317069874230086458700636953546912010943591450777723630870519907358372620515059192612826597520063449198206581576914805254246636682799904823655919702978835383329242883746289144355656629640204022773358514879667865024739241803978349091678393167572520759014138197952859229291739065840686275319874630594720703836160337646303309914167559603457488809359850675716334297183204303401585641135771673908803087094550480313365235407786665481817661038659651011885005621497088213436238276064616018760816394131835061838923390388280487887794595163639080532226055127502269728099611865460691336109241362983763951246604754096058610347283759898299619641095971040774353432003384562962169017534115088838712226573685363933715473390641330748941862948964657933621483696848609509274632485650293394807818070136592188289949149229248570602744769389211027936424802824647566238044700009290718546896378075372045442541470108375049334343276040808010071315564075356472463266469437411681268037445280586968534067889368133296579725807169107999579476174695585396157648469832454165284990231718759519466643036059203135691847307775521895208672120870026987531539370487577079241527661451108567770030360910812186149058953739419112459964493688359973978405930161242097209833445457345854670628241107433116098906722839794131770519176173678799080359028622119689102615447028320114232300818739639917355453882748357395219861848750220933081443752592845358923589240539744303279107537961031948256058402674471635479143409166020427791394741683433969574566272975503264905906379086905050950017098652691235374902738497805513498441480627743524744223825777199698256370031419586767618623717629618449674081211079112402808286157321890510983043284017692611090126947402804207618399609982177648760124155236188755357601783411884870376453185857399971765896340732128536291453901667075854395557061755224181171207846001802036242348879578756008827662607042290572538403927543557373453081514856790020399738397068302196930393908107158311451920445076156107274583652657988908179021773337304790946282247477412599347950651940471539027305966568979167305628664741086159936365739400116402040391752847528950781309564386455766069947485193351835688670639394434938422890140857308566878021877970554608001639479992812132906687594431774871954656870386130608184636052021546494097138000755131576262976724565731746333023932034823659744488249837942205901840932703357270351227272028281444074554840248749156586689338199516619691943452078097412106121058194654074074230425174850454391879215071458714483018294073090943315295217263832572243880688882397281652683853399785299316454925944639698699695432370667322498590974909570114673326700599729113614207019355894272601655750876060851585438500825915234335097304335704509744533087174372047709109211613225068313400568613747692036214744643703295788661300114386203216190983953954992741739077533647679068187819882770870744801430345985267547153808557098118625645992519194517714171338526082104198089484150820502818856869293567357361413868952318275129813643415541441915340898746447809130078995365817444153071525074596278199488016738726237231789339206664806505918946821740357405480943205893473685502359774867909196943886062409142149126392215679595362953281720835610046978826902262210312076785895428426154190194082638319977947878919587703903569272648863448089313936524862409007937417176618962489947271060377783571945594661543668668436729477289917622259842836707005877422784888708076301812705071970497983860165311773481941493949663984525055398620619435758654560462347086914277231950867529570402819825225606753180379021354498996786192104499859357659060781399623433723091560368198735746114675925481991650461630933480131970776411983368410766440731472145113937403068169472867296701287634599222622809083989654707282812115155200795049429617554774898686263549746112502614826861672336463618543317908073066345950272780504730638831635919133698981962084657115134575328440669553938241817936156050422717321363307628151526805880890850918950771554773582288731896381063963058882945244267908313368723304659109786897923995998494699176907576456272873152628099480107762434199819011836092605957651613237270155369628363432169057194853696136712866820249778880208010855897173062753826342926581075564569160773240579886489974093469412850098390485110598595051173838441691210903418713115369426593244092749897949749689996804417945440311382867343572190064681230021702010504685451067178811012932056292332346772739286600587136337796709677438667633375836136603930279743072222146800496335324872523286060513619832268154276674325138032138670976961966559169062775405558752216055799925337341269096373424727550209652087546593981837837558987460443992234033390294936078489841877047365970715285434428312463159551890610191916713090276355613222838438288608338604666997795120012460102245831687398368434525034272308984188578575693126356785215528673296692228919584638049618736616649235052121089901075933458942528545633598775108859239499433828907120233844992389805462161273321308527996294984126075553984901339647070827367058984110192400158917149579884068994578764042331990062097310909697045227037746577912916208513136780661140604554850745889447472638245923918885175275466972937611469755573886955099500046745088654915253120274160500021296005656936911244581968142474965485953876774298278191299303895339890828818909535534310635956322686850262337835966747195246901804831924013463219245585702889680123605171448268718549052221244387423193130004021250735590364266474874030630470196482686047107857476897396967168869786236913874741801752501212209515388510764014950394829911319812092875824842366289020769424945812672871949548015101277369919641491877085865072500646048178999227457597554830132555717525320114179704337580167161362968315345102872985077114585769155615928344436568375145765501663666394391443306016133704761567258999232696113558290703545453412357439366181992508020626683967519792754956836408723834931100467289700373181609165415146184895298960679599704565653320905918545192946760899231805104392198605791197384337345285685089886447386613032981226686729204955641569326084880297917567295674351842800213064816570526834407679633523487368733749839961561445294102303867461448879116597945818061532623921098668413282082531699013834967290331311482986600024724279732878800546784257386399577981223944752616598104300565746818034432947927699858212815055514913092639185450408010041570363473607719049705317912561061773650228663160399973625563362975009653722770311906230254352262359858161878708483426375314584113795128623708197297194298329725943975371203775841183013429237978889655546281559289415548346038478956286885291010358925547831760296615182969843005984596764817634636723697980658856268342948474909595812588610075766312558584022517224175156999037209478351968867462151918803778556589805807595953033564265716833230937098444424229749330755563378076811516362013595832870239248098648226619662544733379416871043774391554780528804384681678792407740211675299824293059944617606358996049054360273172906847889556528268374405590144222157021890429667390600243672138320668698792224361559232586434864438617858121366537557776022950655833266969264856613660905356810368357123167991805841883050720761986139237596114299229448450003459335789807112586308752082067484361453717064764564275115211648630124705115238327363105804304568065559695742225339132632079825635173055696074659975298647537088576011727655446374177153552053422494374342876518682520454081489906761644047773125698208723860013102315178042818764939181797279388495195112010098267883202359232272565503611143363088356089518255592790347832934357343146434537315509953043901671442675460608663661359508345177522698533604287941792202218791654016391425997575275767305022953537534874722643220430978596133544643669540088847121061191042261012179916602473194939031648390219203095287363975114767387096755005753680903443463395621285802201339370789848676624533232236656815584217331725860850597385380316880452797660049028485191646258871319304073772082448915912777280057732317740099741838785238133879045241632749694508956258888229160033837458180957699082959620421308522598691365070182778524894912411227178098828757054555703670959456185524573834716942376340406918946275392315094778089807871273975176772183714094436059064795347455952707721537429175651996787536842126212659812459264929864957728463127152642989035284388697435861185721104895938367729443383596826667086388656552679239174612345938483001399472732821681613354717077164106976581415800294353800318569468546714929131981012427820471338607364112185595439706384565609034359326215099400849474098190248338600434330739636210336145661460190035504020122734812337483407525904399360779850394222789534801549743725164936470440262606649176855834155468710337275149283733455303572459985111209868985152475191650967767457848322054248119194194511464450120230528233081666065015005366180253120821453064642941512812225768378129112026662034201885522619394697280670954572664450394698102367568612998253974188582341126061925256726423682941465346547768182709096074046322473020666866240477495629247388753019864022808142092156782857785403144103696218714918637649714205828973437809265497110877178362954283269298098450027325809152383480790526554160261423381993833021103813641612862758461918087405279748878270482427825403900373429593858155762060387114611142127706192638603729127018933899987336493531341468713415161533274773015521798380965413559660605374108859977321538352224747770050825242793464338027869360228550335627988309126906391517711599281753787048416066711442945971864415603629275082135748887842602396550218741000137667000021209320763492419312723642981300147960398713087965156109542832561368749404018447661445378719871907297749087550917506983512574024524082073172582873221228502937250496624513944257459399101142873787972678385724764369695871410821064441210285780486455403671224221584655750765311883308896461673525434723773331678259762980028771558046226943937373714316369068062813601810712220444571342186495789514724461509307969739657362672414940962225224398628229306733876392634653763024070957537872929062873719243034059520262166434724295032779534111959696739799920271908018832425012360450129623103537492351230556851045923816268749038804356772538037656051629975923692686760457499796523532752031119064956499591219833450832508927432308947580616105842557649884190140199163538080715849302155969867831048250022913669549032537349991665815755430913046253135639062063933699189774335220798282174333899721695262806134176886584158246036263318264197085158422174612736664565144736485107042378461664835303868766994084143472550168548617169055659656303922224602935517380207905727856709097215148625022582139143948027348451375283468835315576112672110157444637754429242049778733095092286791838468265661898605688045989634930158176462437012064164722961232217043513646579106447387559553567319767102986111618047675162587787362412570514148050597611549649080345515220545266081941346598351212038465190289447538534406289754360979228907830259697224309530597447993774095411687163616270002898033937417826259379069807978728822914792966955894448554680954114880538828081854045365711832082710296521041811648448320655090426263710775656739952152435614985715064655121369882065154516991928810866568392746456061480137208762480680077444824468184642186082994505073869342796745426419932262918044194956154744708229418166056331110730062135369862018146055305454624026989154562327765529037931605229800615245549754131965339993154531240994534094552708973064166623567559907625639957027028215436954577116978595894425357676809251512851172669270703236332595312260772229598459048926790517570363475841598211821211782383618095032912472705231486247188506529899693598119372348118193890480104246981261870491298042379308778005183105339742170644255130018165027672191631947001562254262387008792170078312188859598931529498392290634459180723289631180876314165357675718710805964506200069347872510775596850076196359807645076333345938130296340210371648172700788366538904862767450562310950600264955805188146117258577936480573076015532599027380594532266517847023560151503924081647943092875276319420281779827178914351695062513905097753382191075491894770221548104699198683094531000263550456431538743190100071549257509131673991666845341258922929019629062860029471049805245966892850197989512760632940567501337982703784898607437632996896632948589469497539534193071151048068110317154468411888295802359031889480920933415474576949789477689711638678080726170519268469654369165348543427930577978812026604745124909168140168684736175318139650599953880747718712054352460440660849141052698819447236495727048051783258503891403423164749400948135516313706749070826494924228824346077230602902270743303209017232053087466878811455388406331421301377566271060004826688796830305822305091949516583186782606302189451680846036656087337124405585409473823748096256438119945447684677674361592050251957527076720915792455677720995049325529087327073268407899112585994316942271437345322278451417166876636703242732325050046969279277963707268706211331928497486025950027289201796899968384696069515402739456720550469765926167122120590462361985426796244860384424549180214353431719770870221070288128347782285518879062898940230949267607010311819904919521940955828286681016571848474529943117253571393868581787062947187375313185162467433714668759464660859286268817631982983857414472709244891201980463542400453851450272249787115051148380560580191883742628621989897515793342140508709370145831220704435266059045053934476510062603846501142142306376737285783229816790799959942834260392111296988289765204651180458235141730563109705731059827166159697164142057780276408276164672534307140832273870395090516271343817373223857873522564021158564529291863400024428025125599923066164835923923644470043826051755312992512657455784190739331831595861397887360445625596933285706790184240013070816996701897489285416661390780958971867703261324101023856128815991436189790814589047201905851515981439684506934619730243337328918020399077646107773788457973230954681576569689199802418278730302422438295240122340954550533162740921143998307288475366710541748970746620755885446828229561987323377962413597473338585731725451934154918958272038886278214880292801230125848110014444157449791499541825377040921013823415027232045637097048870080967792652066088707346159956449992089062478585307146976543667827019976402840114352014205739077427106148025039240636705255411327979870544052156570004561135536995152381565963865158257351321689990716803326611460326226292578036387840827780140526464421969922981002264839246016407860542377604135968575009450844069807813865605463607341646604456134310549008696490423833299083425678633587679950663580948390439542106202224574916255539838030842527885181431663559406744794295442787399987556114167069166756595805463182356218635070169211526935091644620508477774770397563070591732826904270225417989506279573727689453784689128151780576358663315875916553867625713002223579764731898576417301215314832620050091114409085730330696682902034695620847973265907774087051386501703026792273114941989309923170989166118449961748060681956789135661437678624404733729567514673403809848419867688873097684412325136212138149764965844651940868948618608193199585712527741577739026614544474472301089823991708909295458448541311131132377907948779229718066197351865883102654525570881107199787078368565983806307554019599878352923294658051745826343435329301094293705401393107179054494265111725863870872928633189635641644718136908836352446852647792855714890969699002190694359922691137587879620700105594452213282658475052968673838853880974992540385803435285641334051357240186670923439552222829895703702762779224814815170003304682848433655545072155347992629943649635856452040119504030054970451743008677688383162679039435950600538719962867842700999907243405812552615924864301510608796936000158160543079776217237700443536715978985955596526140277825116832303437418711601387015029822659547458313814920049751036435631169257549211246201172459080776017671191191349925755630730783503681201128744810637893389815279238542272742003675593503083242517036210644340727398682973116879719207382331648976136072566032219209353751230385618141541227020009595853112363711855353279218356130706205281927236245941628547347930973702711219952352066966954554901718554191776630029957706962603542209259480896706996823627634747951321380222666409232598369069031852179241917232369877447933794553180337884234263103837479577224688712432766925109492537894246993459688617900659366635491520508615078189007867720738873106889919360757450118157619565061298176327476025331131558955567008813022719255826811009020512148299927542900569275049335983178962462778135096427244100786774484453935179556960000800093126293624228169253166503397621105663060735048260820566043323035838777709411592255270366322612816667911802839179424009891019194441816826304686240024379227614851817723048271443874383099331469249736340295465554748266647322807973727153182755352999229658644182721322187590133154110451486827025106494527059924396440651107584034789266159869888137300221293179944771744494162789896545018092896400116210716500586793538695166478329531072699097449476408405362760559297912336805331976581244533311995045814928187714765780530761305110480933555719480139962802753695745096346680706771544597302170661775119037297331791059284971872815656807678337483911102899633894651903150862518428283802921120420965826841033061451134895060100080951437097297881218129196271154186736397318604816870191534388408021370429090648631495394049166581766149428579909950781024551489754295390981465635316746793155152768522104400559306010833669806258014912617570852737128196980176957016287058045327651865702611791313842884190265258806283158682531765129468124763931784546290990865152195691489220385568095533357441039565003737938262556406931842446433046836762217061130137672195483653264394073792469819135213114179138278905092422682013006697094665344111850574173704302523890032174889469410460921956549083480384424128277764750846782943984826130938432690098726572376257716343042308582312148929018539569801586701644929425431467755156084183863363770372056505358479312530548070109740012972769610510834403520352433684551976240648518919703629285895788385889114909452533268558828795765025199584411515226663850955947872450276525728830462789648233618203589073199341512919660533005080124199217406396239196902483895089156692592832817051634039846323444707154565371631041640592152476904345885455491788936467866899525436319577421783098494886071574595718441333329543339130495220139515234298489911634007141283450563160767473434367513628254805137310301825153944970376276921363541942475896748487303239126078901356635540649157052945081814611737198496804590661173670158984916730189319792562290040322843305633098315135766548743578187190229835446524728595620434585313596618421106509820981120321792693240247966602355078614449642194435026157087363292067561638191179077394693070524106975956583582748560351611897069505220474401544246588131341929121132476120952592543575690490320490106211343364307061167970403655091702173123929622680670080038031224380199128013413972831427871395751355476367619455603346730521600550519140150634435914866852335423576102803092769028768607540176510677691429602348449339961128524316672668000602465489991264957671116268545022745878756856427865580502883613481616145609146399286134338900700953715858940617768333843683124644603344352442680511189444153495354439621286119373528300799993263936434012983275808689252343921725946707874200444814975800989562392808383300706108542659771841642919248279178851142742876173997132169780308550652427520134569359158537586989954377325621450181120434649092034003137623547518212319466820370743808363736188041892632518059394667112543825278257139124481405949728235462464679519154108178995615628584693096642606060828862900899375807422236065027076274386852332493506318338797362634064221935762579473753513305623284086920222230792219063549885217506946937574463061266125915919604887427221419551544438011987756364066525964538062288235390326585819928956211049605774917855840485926960879433744538914410069453249672985956969444618652231299165419204665787751313939627724983541288655610652320955779764474789185334170284373208524882500000421477697092925528330511576316939645838281730642121064384494873224537429499476759459758289806241774025463036097865663685796862266643453864140939890824565610450554657704475475368778914195095690825083523677652653176538037923084991773346265640028553921626644135054380554580628471832473950989276569043394224880628099960063049773480499212627631324182139337873811176389038023922985344005734447761269427321217349888673330207671587857744284535930350087271930907072974533403900477913453105923244586495403593156448506139579568903774855448414043970620588501710752827858715750658806962716606694057603030603705572672785013392836095766157592315279754894707661471001617915447249608140838837649516043336629072470701943050788279787703849097418988487691661519502654262368303307184860748298048731878542434293597253808246085808716331754991845394641879433901059065329745788089876636528345844072366732681488280526833490928893692540097736329005564193475196043654748083159250585227621252967861909045789128982244904108807848634309983540461286670344242886573580208271464269646576093113765432248540489697347049424181510713856885208489706710406586089786550425771965161723798057152668719048528343941084247590598391580476201321116728342420443389187520791652290595338124081149694771651452157607137891525893699344567331430752030433575836726096499446104492485632971884961338507360103003076994067969942837862164645794474217449477660580757768123404388721995747608065455100820524043379655531473672309595282755830151682775233733604691059449555875621684146003537350124751321341448782201629823567397861320545841723801103533107945527006213203236386713281431012911817717860392514498004801462125880257397656108823257199957493137466675850619596560387928369980165140656448122678211135115328591245814079441516048763782422849981028324434635574617936017538757656830575619561300266088173748519714222657263912454754015269648143510867325809386139193751635133932025451024329838825172823494990179820108112588685079758757089561655488852058533681588662673746853306551980915503595689943959482015199911791157881790721775784600894470192451883832997202724381840591105809744060900503024951891003383190646654956841878242528315873936741931445935572654360476631736809939123141100828448863176142953241473560604828693175230569340178647594399951101517367508116055853114179855963102458996550581864042544203051656885038321830761619968966022263461204580030680677448582253791487661743073361457257657974895126045133618051025323226113012652900730426473485143890538190958716936506482505663749604391260658444043324838152345997317735653388571702789830606212770971943954086889747046008538633335582045335808744644635746833002925780927172297576804626064377597042946524020997232253718258210119116152818383948403388413254376923779694026389582850452835532011116906429573370982024062709069255588132198851788476060164214344786009750383413630581959540922592524966669276699151896170984919985453315896371007122137491602074464199826006412739275480539130671949392865751723182462730797813681154572217494822991209520392973754143715877600968820310300232810911659133647555009743004989653035035550552548200151277905767855772005786909316815494452058078190401196419789809005422146899056611967765010059836133070310484430257256393439915072899772457611896220244129795475013213769783181744147885264288170179438993202578667198813773707022445278146349245153694426277423838522742137278769544203137660711420556173898412174499678385871720553383205401282965804838060801921280144374763068092944184477141991571077136548614285446434835360816541885599883441438057296851539295606275467022529561451609664625140956110551447019201388465341265798801356922552069768108100673394756984891645824563954301735972073375268627070578745931396412857933400872533243452287416208566919066107014689624706699201347392139287050318206858198838429786794340234384179842160091930595335053052445599014390232862383482110320798444880671553189299406554685960324715542405018045144251416384152361156644544403051572115575509731520898252022703348820199600242091755342540665760932690440394381492366967803152675493828227515388399162740075715160102333687089022765920666336438321920139153842330674163400835980945556861472307088890720504930109093809759496982281323741516284154659452423429279810503106243534563084580973959506412061447963760532359028121750829540713797458249660391022695484988699165014256167957136742768001815603005962939920690611644679129265214089406081860029125640824678927810347324377666285335793110836233734689444860131363156440036986501219994354975351644505029164430934436236381259713229029016498436951605275733497581531928371392357893708967505651744285289950606639377329782423358853147471223393987495852159250442018577261327489447228554064110977864889402292582126798552342129508231775389356529834371292350813623526515470069129154597286469550695909315634063856498245792561132624503652577238828977627284092427894427149187813854406904575402749761541330578740123463012888348167509570821915832733874523221627661182724968125204080034531576224242010610960544555308105532646378448877052136447706251569732007402211755111103474630826092604678584869034035920788932811439059389756529940117738076105846751954738825160596497976651996800690138087411660967240720339826283622790279795355392708620650286403190983473277141130582066736480773829577836287458140168518395892360640258789322606976184591543714247202325652193936267696888567974049947759472735938191974606049271093245156064431988822623844615092123576123501275948068368236347026518915305343909507659973739579436222587683647133470609123708880693457476955234334779595521073889110152490390589078012071941424070267940224092298114519807838589043434777017968808857646618980397634832910931370743062651273884153419259598451350548807710834411081422751709363867254830182869659347197847588984623044625210887827643084369551526516000776013236891453014385756768679959533163176516278962296435861894229346234857809465705968113929810506585560355493907406718018628088286866766832046467152557555965495363379531111146406361868928744658528695058213873396536607507849146362651960276975275450286936834139821743829894591150657444802507219076447046867367209108984508843801497696070957976908415482101699714890329232050171123464843390575167332593123203331376741544573104855727022399828480050111760073370283626982710743269551285871328178175189937875243519520182448274407606935301588862715712580288713286831749857844754251102532119488431485331496932119586543974813106223630862953334510359466998954737540728998621458316546930917635835765164350618596211546458980021664894668894846285098390611662068735839954261478849191138639441605042067603843289881773285349258371592984365758925487489160585045755044611996261110353023614840654173993394895978307328791906945548516269024461465451877838428808180510031711095414631764788516239598936714191611218888940849241773321552872969761991800447574782205367497586265065026225434571250768051611834855456539996000578863425554740320399275704423994552870268028208659408192258977279892748201109499613393314933219118704595891755653856325109172138494254272705515093962652704713681120227097504778372471866407302011885716005710597006940908289790660150608634728324754094941457147548152217744341890596832096221007634359427643438796654782111981618114327620812311615055137020429365643591334483383843276223647969539951703555095355422236427959259579956900179279014923399819234179755033339787672604801776831773755658474169266496526604064316507774795934790754975897692809747313697640988751181057463824112174403962702976582186113430324926356042828679026985868516088776145002534537625191035182028419928611262150508876618773615770083706806272599837792575124562710834590307416138482153568256851653053728797824790299589949523628021348301916844173306640500227985258067083439459681569478889638485750232621985427223202713775553794080517247604791901603452502329199062906085525307898139187078731610587429811263493290149376364338504974101245624434374566474614131612701047276626866667105337371401271122671138706570078819810815649783547504406463595854001868264306172738318094332838944412917157960035772319393688636565323677204015912813725134801041253678821017855681725908487145899414911111364970728601234181190548829515545282380304288230268056005565625772581676062169415674885878168126149051053738516747687178396293759524174401209038531894037999848151245771945930487708105551293870981155675830426808699180880447762950086534506902070258342738328285477507251103777637074457139628596867032605667059516248996694866811567867703605320428145889701578488023584408106948796391615573820776454694573820235038229162142574041063677552299518967897625018658846587265795776257302386211187435277999791652257083669325048424770712295650270122398210871048103119915706391427729575040224882299155314190003829242203715374485948752745660377639421419339149345793858518601514149013816430798575025876841817338009577870109159790523845575504615157184837439243091872233005370504976065241255470494646150453734795240243338491317179268460923461460891509041197229600790258121607042650091908590039767849657393079136743642769016045743850904837285139054136408848692051548447064543395778919459247047185030422605047327354590528970517696882930120192798513472439686398977318475640638485922381400830148042032670439233777234406741446374917250883018690792499886362226595339265520869440912520881719476959706437166996402552193724344878401322486923137870703237028562980238388664171855812567068780794929311495689750619859075091784880453494207151297280307027790547943041730651709604455288561586197163055785590912340345672002190648998937004617812800521600114083969526508086641676418119107698316774808521627302224058059619106172426244390886578839646227392471019735733945656394182162743507873631231563040476242602640258336871380698188534996828735279902119412642007604428149911857895314531013793055425915295022366733315633170647519065053569973515553455507692017860932086383212248495733501691198958615270972287321815535201144944427309719408783824741148187623099387558205430971622856596580797036843465047294389692377034036513776348944930580544176592031267614863712319269448942346743308205066923336626974812741883159749307437625789418574951888046749845411961765680429782819083860471863277267275037920761178758733509791576816950463747540104374913617971444993903060257157923460601721797044649559960264622493991425385116976067456902526738845940380387096115670490405728433001048323136513295096476462930316928833042571016233017344483533964876583884267081795147437378843318020125532175977549875895151560486828922612211543962153332531998487988446368357796829520028132926468022398230148722960567645037774867372834081503415134762454889446916265041497520003899763616331423326698692827380493061861729355466447840169262379896137442635709559693160784143577584151816619118173635324278513976810359443835270223433055215292842449049099077454603755564639426344384769498547709690467105061275544846293060510551008726908567597714818273154478765211314251304515119083425562978942937098682541125488579016133299167019628067556897425919835857712703093438304781101967554712376307544349608016220079914901968265820782711020662061099188355017050455456810973793956305003042202161635544888841762867293392189554121230593836729190452084529445550662610396724139341269855366337042682265832843934459482977415258697732082893936252593075536656787324603887044675002732050834466462062939325202906996019624261305881744039415519015012238020376105887219866413393764702131048004879554199248276058061762726274959994215930375722965797451544291980077561269215417514296248025331689183340546262255033674541253127773113353713951211390366141853949919559793527482710258467494169758271173653477687806039963043215606640947167131664688165362806347241689789651877174518599496746517407068969769025939868237178396303811336556027935406785555285876913848317286281712517041836795805785118020297161457453912004276460702971705342083670762017922966078934483836244373836406532181180134346624930635151900575018042211676742309038179434560688349139799725943505461669172239985227097718699870086312788381580821611951922995402823803980142341906978960756636172860107100020694221297067919542288950145675951504337803426560963575233776488307648239956689838512145677386725416817432615811264866058736970517207247148823970039736415642035250484965980196016856279790581328013452317377148204534345329041541938833235168328583833227859107752092425839986401593325145369910254289020444892881084051172153549759523263149011942720970893153059436764990700863530196697608127777873075373514147305402356506203772955695025978892108832252329042716114643170191263798838580196206129476114316403577587993733131754865504469191324592995743078702843935739663916824445081044978667817987782623845714008752308394477053588005130137385772880408559584515958679260992614345346495508130803198825239940794277341766502401523710584543174462020503397297472953918031631945522174712480604409043262076993097871323551784749763620157041805885441228844415791590602012973888067448650116295914669918507630424381308167474469062961059686652600493218700173568342916031574359452533965442135830497258861110241793857095045158260565236975654342106413692371564768211697056731352362688804128694990407854543981964996926893197942945977569563572019524215553046036743779059708366487597129747315425260841941346821582459741822174836859121746220482157516301428645300916727884436093265276541883645810025340666140527557199768166768874514418747631669413708227170094413352384143306001263869619248959677806126740799706636624759459313346963930113028965154641050611028629932771650306662423790314996354940386420754036886915498426839055543041727758905353579578528807461959497946447452416783675642761987832917418384540208227574846150933391783323666272231344759171342327148369523784208901095458627963332563908748288856777226070109902597927787283397941109572871532564069583597343339986837456875462419701511656262784139856734784421055283276297257355679271427536477887602324163931136760030149366921439191588720486525332133374900194504142941111989677552168213710858580420081052680469366500623337493834816299435563405049249350967342655793435955512844176084196056361200934113431493613183575836602410944219933564216239057241346211122955567734062874602468493682825372574080558164578455836955678998952761808373970323535366499610718831427784715654755862816126115997294604970938658144808697087547100200678784620875545300691224166932713575817469830640534940728216482327075104726553355706660510617700626254549449390439892656306133931689884270479454282133295272132588239075064775453114561153361211758560606209331561202485493253377724216071697119318631963961827140677092442583409382014636252008136913265132348513762479252559306115473875759289688056012680891656060948607424117089766677202899919353931610128063156368002883294917219822688139464210215174312535172183130760854826661107426305749611921473825336534695650263948133538508449879532246066356181218297885095171781060494446275198576327230455057051302345584257845208927944211094393245014340078301562442712021171465240101865887727562019263043427628345952921729001126658679771184167343785914516708456663728256139953386851780350809157996237223087020104260753098489919206826176783130524894585463846412291077986162068653902571956933595934451075560960078584050514100810490398801095221009705462924009321134445814937998281638599782561838697997550453365623509006162510651753360846059880252121698727493699202333554640026730757418695461183494184800031024301515408379330745205232022059227300980262702805603064146031851478499306564248377920393485359751418571735464489108964589024916274247341954815423049710449899876348077890011129637446234984268620151987169050835514324498520687638768857618806270817185727629062979321881880824209037315445434514082582787713584721733656391104881535761606178786271595729464496256602276883824976346928282874389403018416580249555305787832921774531864680922722892774584640903207356654605951001056159340020477679201157282569543044375192868469179071674270055921946839632758804901882201649641761584258962389954642676942662286009886989570046879690706485571305971133537341595756981712986304811619001024815202222790067476933751960958701346647881337398916365143897573312717419350333226654145999626127846863679244858045914921420599314627507847419289550623780762617249663417005652954337590423148429296116379069612325858142127712939315795642689783875257356495081135492714825160801130815004178296375426543991706325067066180106694997640475333353573323089440243569757224859405625845039106750929935468534552822593584614045491724889390555185338448441064379705082517875937053560342100759382393308585370011654719515331473516947171256809661987615026815575401107803085730149733794431730805766349187813917279316743236417025601337574194235962438529073358320990246406435963251056064259608491879032732066008699925705194044377837190061724427942382987431863301853528489388689532573492052185976252629446705335129442705039397669816455323805078209137326933053416002905981778944046676759161489359457148933311806938221204294838403297863798511876194837157865171782462074571889348679966345727557409963548444605183177021831595851127207589320764468484174843577320651589458877097083838445823366686137611384823833204148646121524174801930030503051736724188921435134734303472363418818526617474104525901491715132777526514935943718923863688790940517250558599847259353355745372005409192712702372101580859203319497161095059173809241883263750722375739716555520011282517782359580339561022351572032019636737857978225796322416989704191620015865462383450799058551496891134712203034168191084493222122072274043978122563066746320242709946413142779157463837121913494257978635590475998833284234448062084679616704065473043689286414616492480661830266952112320484204334321748302530370337269674603970122734163761206311726397909243105368677827163527092744356525393131384067873371355179853607380015489936027595513614576993150967409765709729245749666626184385006417514646285556077039762667360386174258776945739893473988444182357698820016095895582649617246718187576378758587080592530058443626434968573111943667346130359673126954658123992170946311894290678894969675297809711179243045887100390935442123283606218922955771333534232109890348384533661193065683803837469972273095598834862376456202581725069493123262288502658008397780631224560802751924328912020245662262880365935756351562618423683356038257305011556409082918630716261251276433243110895685349794645232047300821957310292025316871857843226244444070647057656645233161736102856857969852544769189545940376108287040391520894205033148771527327570673312596517787713857421532528294355784658048143002778880866095507783731468443615959381938532517965872973879721689648437201324824434797523502033944141779705004983919257573402176216130357061829101987265308276962387672717874611204379577770223077897845996213914601951409709384667944707714492582314328068347058703931683888340447413748043705722726468660840789950385571526934893612341939038803081587437844833374824883160757681864897115259086296669684468131000658477477442613359770351619073271677249892536580242846524680578587103170823512736534673954595803593063954937430690062723464187615465258591617176296422629496926618848558168511646717620212925709363176107473397885806569556373121379851083788408725778893416357675691270740598970286049240574074746644854361619575314130886753085102910123389018836493049808104470197532448275702823360321515203444706158309292376497575963352439253684182522730425677086527870626190146594763778252169277240090857646662083545285748888643472074184131068163875954394321495345554552019549444052670075971195122346291683734565941711694768075701278000302417595335785397513040259082536466154348597066161473678475984851190749477585772692781687947795870833375790784308305878414755941364088206317224209715818000112040459892081867916059270190644099092003425180988800047831258196573836235215703636869214257318509452827134028997217535533354219905838699033938539242810128193569869757158956152017373894390356572217441897520607916252479389322855416845940418477852769703542767239974696817925467742836343142934670031366165558057298907088314442686108481276288144015313741536095417444846758875959916156226081119675402327755649558259676059755418577681121117904529552954573467307509996915235610228751264633184244342412158362831509913190318264287485456193060886280507205774060997895431508674780103524638042296139640933392494871896774503509245104511629156570595872871290825075294328558591513394622879491117506390621189505315060912094547202724045025877808708235917626332161914421419947412708204390176269930199288593687778564062913949269318356566852265893917219395824994548532651724733526327388353051997617767139385838458600699299095622693765382693957326682736694872744317293766454873868877780308432697775083089876820485820733827245944169369159924460391725195928232397600750490926199002761347615885888391573371476717882720666328575433367461895284281109248611938052261059221412894198790424785965523781258984949841698894060029461661579533507010159994948069230488008049676369446302855839359511816093298819853384309983724281161596476480448132642415682411479339744500189852809973988483991322195711158083978278343610914838862438525062557727420983709793337177760488693214137606922574166450395687492714035788931847158329453754840093769319447762560819269791948922384278734346946690688231096732577842742468062359719670202057581020228342209851709396321862130565522487674456279356517634503752239365736811668319619115633048480031655386743137607220326300780662136254397334603985317715116030601269318549491751175224041008782815935167127371634505589679162726182672571450931241787525348198582611507959788084823156199743929823810501436998649891953080615242786966103226104609357173211968615032095677328216831349009143191870641180138978916339413491210232475947016790642724364643759481804650522124140124779759370224212688830069084847062943992435650670491734786906773978627907386118419816355770970774407820448035999532963545409235757281201124074285949227459742454934022768641585874815759461357349367343608976395770578267909684156864002728869349590602465536331762586868486455836991844879162853576309053101568753299839477749794460447026527130169611229126616687337715208083637794977396773730958975239399523175256806994080956743702519980189676321894419042084780349705776774167376105438938145184543596918570936872071931065724110320850556735774770428831943395534198652554618646077569936826575581809470406101800169484610301924303487550405011768215714531877095400651326589249942980430234013918915328609369710145714700428887338328905180587867876445969932341912074069997157626477806103382980815329340530980987192114962089304006004115294784874403132529639733073297823459203495818029413783726303270158393350035849739113314922219803627320758570813671800771892927120296878021571358093777214548184261226462634468599828354351079954652369210209056938763424901611819734116109936914850488865054516758145759416441192000016121846805790895433711558147249974798910133620612619083868662330441926618842602273998258475874900149137768692672534691888465943083203427830333805953645052225715919340899957090629213174948800360127776730767104661897784837186534395100785736737908833049718328255169773144745897992363404909525346693409097975189538706524454597095113471960218099768918171944258847729602318904043968446202650390211583087519475485594606240615289447198599024754842376714459144010105317119167969058132995554269383419712166909830054130713053344427210227500295194237129102745384485343029559691027463887758671382739240841963738216860623585104566917378987727422333737652684954457136371700393640055461195083220063500773094965536062055620334870413907893646077698609324759048530819869096943392199565668096379071312059285776528533229470203297243068534167625369337763686388055836751446221739778231446510215379099423569985659161400037702721655420769635169491561050386226922426774477496797851286729585180851000262751044180770650653205914516213515109269461569317436839698714350148968764202103288230027693454240286468763832739017675572796045975921452626521947730540834621777689601606507913684054922481767129225723022687145979749648808995482129712972476702043326695239871696061143925098440128600407728095798827561000554083576684758808891120448661076567832399458020333524874381315817588146597601401126941809490811083517108466217425139005914690388913559014510504108932332781427443446126993445227578615280613389887877811406074712076417926597050716464927382705619964396810403816787800665536592322625527062618031425587043543751030662135791258836916233121632121625490994644014825379766799494122157192392153978019159369120313518392695919470970585514525639844501741803397052272725665945627208902704780674647402000997987678265988708842912584866050437206858760307536654523243990736278211421134412216486067089315082097665161778943751640831161869360774537002703893624371507927402808959107852046576197695061854047336168650076002199306637176255748397812066750935646037729565910609526001574809877278935365272448432305293804529867354561574109099638008783889020399663998096707869791984338884096305051046966231910059995027513328891009869589440367105256526976212613344422872515016854869280764869369065463381342316559664116280370066248201530460676057060271038294532475279428407253874937974117212423166153617228668518500717788719672351896699153858820609999787868729143834727106417259810220917561711125935170202379449803954115584689191629845215736248081074574844659684744825964438195955990707794607503587404679989477101550947677556417837983390719252765747399246494520351120316889652737270794431397870038712587520673925546425717459335369204174474402711338009447277086331062710682485606855019297737758772553887576546208369183431042705324658919497646082559265781407031945437305814414475458700677221066069869113682812763078458945631814895009894634836388635057024399012799226337788340034623790814189540751593694719226430052716274771398868716581888083459132670703487467002144348700954315818172630217954371438467438577968322987913357342346244645929033842967387192332836739374695557349880311040717007632963159234644704298923392605107586898381650745176555698475182603720834974997720754599415422985169282233850090791017545558640576446666982645397544202399399661805964436221697254257793002012663940380285017314924482198002530558040844041549393396811503370700424596596958289678375013054904492542575421269897595949284364647635584403054220992396891731147035420895257813946040832214341814893420636956705219982327710777916206540363010123757547280365957252434731916203492844008357118221942556623831880975499182154070972043232577004061351950290745691808710588623992414314609374054914663001252148324415889220341822000437992605482923831099072213524723625989402671827842913794827113811984663165146190457908853894314312183993438236647058991062691798823572564147886402997215833075258935813080954552295589018768512723834292082927137107433014306232742165488703044041639375532262485630094430492932682177066453042231762162577900887584848475513916484223955901423060601635842368199307492324527703482053355239641343844127053719308742675981104949862841622452027112985415606358922249240348029820900549987562181603652815131463903918071481313433369870986244254503677140659841861695433338945469565410230499203510621079756859593719688199946029958534240991437105253604979644713177677344726334803104882720399400975012758091017893452946984787752038403302344847148585409701476186697330488258056364523590990942127997408759289478357535863378533490091400168055705776245067860826390072635065612284093693332253098072402002174663697766808103500021836361266420073443833716889192476354109045087998569482610993003244330616425808502131728232118165845644559990343217353943205554403952289354063623347576169877191486591181274282859890109732819781621208956689271542603042276171389233408465890686251865413550311459511705452378150470125247120280047578837164971548817697316621007541964056615770475312129640212988877307076668326791408858329957417213606965117272860179389442331175417991353403844754776142225375953862121831742812886752547082740641091349627942489866898110293497814835983416502433675877945422989378600940222521794521068157381085708048131708175257416628107427073228985317335029192253430202274301949921819987280356768267450106850180227219814607250551141119314330406733618167598876199123875410821280616136322439328208334313657953489668037144848402109487727359093201935936746150437256698702204702090331020724821479229238904933315835942352529102587513267977838757494034081123800624548750869133945083578969675803961935610691417917408541631274540809166140871972774689906843054822712686755951178920309336025072535953737477916711763252521436184204807284369371739757166606384147003475990468805499746824504494381119995338050611402900051375864104515390686373615295778880937139819571941497792531000064991218622291837056271445849644243713030981941643375635258455248606854805545956622872535639996989700075336762248084163601090115948506133777622844435691804309362309595786746871601831876772313742270632719130794334020434471065069919583391248764423028604433160883705888469954051679727623601549493048114176737949604394912460989685899463887477990888105590722198526596673988931869136913634421252645075348830271935965324079879083496612118618798490816169551235697674699338412438033320366771893635911091295198720470757521081430592307735949013795033715974168245690452152399560080598102765808134317989666734649844500365047265113934509231119637650021397922042448322522216642573448973691989911072987197664206644807478987830253728081221018873805852926421520465685490498738967803198776330834732781951901091014535022439392923178840320779664454074601116775334263986961534803307810568677409574959867765647625856138297718258644608349099590823467762215741805920436854166206918504120629507714947625909566301488333904405380566364869584638653186207764856903645350830716249111855362335450253636964550977921716880662112567652305924771325155313898134453801081171538628342545266813866146030766565238217442499729107117856938158862595378437179764893592000615206573824763651892931498457514577998808370451562262812366698428177078927765200313842911780533037509369406014338255262518132578212176527424918844706422874820586489563727148255493895554196200464908443275358854435114857517292852738314955990516068855768766823750325709827134654988595741932172910808037451028746979582831099086956572307867024725630351390641539554316566832019034853101118173330201700161308697461650184912112953988168629487795897614456769303318422965157029967863779702913865517338283967028089024110764874015164715467711712982848281280613137102905662806813107411850009384608147181226197836411100709474897633255779141671168543916536701184742766180043128705075730347076514815412456598988221222310779666141354446327617223275674050485032391671051028175534958913445149347456908875959444681455014280823308188250569806028925339277536308310523500135231957429180931663043842352071655832803816024240613635555964725970360048279884670435703554461669747291819627586176964158014391636077839816065395516480838005109438018211244390313163970437569109413969672258034444171170910612948788118890959362458133904178907340073886793602522029152914622021852179024569510848867388128023040366332714448324953301015941602085120808298275922617997045214642036985870756929898129413585833470997536402541884219879413569625615385932851866021061062747539557448886478654144163519980713372703708739516930831421700455059996780051961455902392834246860123812396439210880389116062156967026625317825280607884683938245269730059677185161011632329840438525022012471065579888331253479047423898298582821313023370081564303412621158043866324938184576795827380938158180046995824401497147282443950553448753926133631710324029196847375519362507175794459402195631906582848763841696650179215083556163176135146304970051494623888628844491282788082275852793532019551565074124962510088239774440318038443704817821993566745134177311092571937148107805057147730858106089153642982778478184377456754391510793883646204785149636308596408890510043186818959046639607591707553040893731002316769205189298230310261490439094171749090022964890971950329407402526818464513636695766734330092708621183158219762745345001113511449013363814274719307871070948894766137206946994950821985868857310335531515985974555378314562948023488232971003204143192242228130665584662082944358816833332283084061437635109867913484080827246170721733480827749521720591925868708887352095872761176047538733689449716313874388154762208462929595525780691179390086746802552966273639735696103448023814092918015483559121341912993608789494917240163608360312849410600982775813965045321515055373900841950189426266281083951083590094401225618753088313580687655643459520578495727463466176606597768549111218624705969833624792782376524499590606077127018906033710023553893847405642840925561672876373350326009773331814044348487543868698481173412900899227154188166440960807811303465776324953971240878752737223172534309719996811982697380511946421993951037425521772117530909424979870754691084263877466482561627723195323197154515347379580509675055590900503055885665951008577626207225710873241995450866516484260095177755157511570805532689850905994790112957277318290851787010879080018675920765300400802040108240639253472337729705691353890372479018088972438765113074256564737994758995909555818868846689026388923958062276994900180253355575119166991116575041339885617576571176008432009246054858925769822553865552689443129828014888889655353102195504405692598989742912786287487028498078661279220771703042160268617760207337973021415944602436569841488304071767157671469269551247026116233308549088816291052059568220004548170395466109583409622419497100233179703609752526713213765278741466081968200328435274523672574355631269596404905253793547958718696573309925660029010134619546428070314764227405091316597397477223684379460966564568291708806567481265894039214641472312308430458348260816188065261547295015053591665203753277514219323352388911139240305445534539021642546660220253791770193995087195216936712672473015975351431274656460858583618336042866898448377404209509473977801059024527411697990194682186702631711565945190273795393312156898850571646967527991707449310156708563655696657992868669887694194413701540378682238058060569379437569795206158073606462792425880695761259550506223451557803782688985133502647194612803124558245516689956314650636919354260523660175945874147729045149118108696265317588270961757165938213134703852029917041863675829507089170787154109573795473528434817150413770991460110578292611986200014676833318089322789499857153340167115513579699416789217912425485222745005399020429173987042119621272410328414060984982558596421387838677344195363595545391735303324414307480092511125637172851084403114888269038645800054450039129769765505206930816073618459009975876337473944666805218919185580618957311711268756418441396220186491623112845250899022894338323499219201499010359563601108243042981057801632973772881656030906298880570643577972947150590225347258284496758060191136207318262601057683178797355046700333103154752346364928281431547852679471312660513880035481260137100777520806545382679461110206359791560863768031134140622735463888981425327805307083455979243622154281828905797632985687801377414445200860279700102747281662383925000819814451547623875117485769910986723126604702181906897900611987311189631525715276300250864159222982958801998191035074825820787520725922375473938192512461822815914184714954342123943759409606466176121331859241972446744046439788706690590040417763576989551472641649987273375369203591728968347302167559981215536952181747076631934394560674285103732230375828797900948817906983062659515628507016512700008911811910829223462241132405794089743089424472155428384697547289214042619207986537496845268041076262786941123264179895949914532958696660845211636100933659396983441790741729981994078387575760863793896594227706535968849933212381474330062979782613331573948452557369487705863295439920493820646172541307885897470130981129756782879440468816790314992414409078477253515983658200024219754301132525045180234862628273211519493574565828116387838032303221539458750256719325355474129709406234149861504502611599926322536743029958295095070692746877768020663028709346349448102602856376566810884644719536299598302413547323474306097668095111090540163503414704553007767075699873255004826007988318940784616773680126983770857380277351778625237520341787423564358714104395530570032968581142722179690607951722613890088513351177685934885098413239099654745185773847658256673563240299655505624478261032114450009038684289670300566472007066599564843505398415631553940725285156090588760087130830949463182675437280933041237535626314215649264734063798597987773184975548530985727673988126493957385687331956330435433245162082614245241211654614573201310485046826267884658265036278824444827385784721723979551815785404622506415129015976346148643444329450607072459598259280221424179997389268160082424397355513925576026532576107070492737189584363304318608539959179312739301295059808505937736253383748372292495393319467646645148215092928744434285350147612614006866854100410232147619925586894318829122194395439405009390258416205354042264926274564585428506833147304660992843568755352650729219470899890621157248915351037162100716577361815091321777646605663969815187448519328483356734763154422558324981477682830400911399424917348409913357088967730461015790382199155213945631109883188364068125044692795272769020677156423662509073592148304781795665845777204145298148022670212439460930457174803619347682467714459339795098941441666992883416531840387180558899044303540922428057491809565586479073577014509572255332720970971873284788752788697884340032666037984926379407152330631668472239837697021691101704650009878529464065528378343074921445469819851941928698943020593839533390803888589564097346266539944248459799677581930837617899807656832524767749271105589673646862603881632329666487384061299920508775549222187136128147097807724495508430653417128878135316739813928113863465323820457124925333959956835590553364680182003713336909675896172563669782369990435191718013856149555582747126018717675068940252545523142604284990631362227836873051014684485178232959836348102731575740875572034601527680900823404876957962041588616080715911323049019122701605192218549925818226872438011072002327077967730817201888980666880172376718515046799161046970664205396116184442975974072863149907014614065543476361219807143945202719950068395690212797395418447139886357678245913306186420167161467642400722766443525797850634898795116345212978111464374666100084160819479541706577809719637895648011881371937013101334970575982961968852201018743199932565146655621378108139074586908408044908920838901776462100297296816721412191722597864522917176079674472875194004906137947946790739468681068624496836929440040176798536873564343954494122866572624788102852597166302065897934308807051416814098347531896169352981761483483837806021149547971599392334853881739561930057202984356591147449556389732748708231768514994927749037389811510961442799541130742503929008516865477769072928164995357126277083909415945642341728382751139804249767517467172196562832202366734015025615112520982581941020189968903451918702213241611986703700157444993450612880202313282520537491839145173526425525730478921162030674389510474359100220512864067240538226665801877018742604541989062417345146593636490157847260734234236639982385552950936550601899918200928470843163975062808206941122425095587594250901129910035225892143515290294579187331534418864559132816123521811884298024979101794937416582153720798027976001148676451655503596687982231955874849422192386926042525008184166675974630554954455507487882915923653842745475089330330700727671789818748379503173953297834333140808701181034453509696165794886862489795942713091356825085170393787143155955640113432400287865771183115022011679467200230421526555484651887040904083511658777091832670586714712050222557432772532398503743140572957675830764426904490183710809425297513001459796269443531348406896869351164643895400137789898242744329869019508293112097134300137230243541331781075068615637163455216837218394543909399479860728459761882912563405094018078839459110460511456849490993252602028895533714985613116879592260685921392173490528269227431287298337857603462230192990781758746312825777164182781882824679446217521893786062364020155946684974251982347533052309373051834217440903423121876995355473088468567962519581245364121135669958447289847319881837172670839579533436946587689514870873668958205944128960737241131601117530100478698305129610477511666832584645071646567113108506221431067225301142225712326907360329218256227693610463110334106150029653055253630301341771147372623464108929252974372355860271799036262926312418899825544514195451418151497647606854031638797885669672511086162499631946976849316049115889064605447188197885627816442491750466372127745528471033843006046321334375939782285776321236742201428394852273139712700039548466929055864233085807307441753207649492581672475075365927750706397460954391528107999183467676500054925444866512780549244408893047600932780341858014975747691214575189744689195278335728002548279784636663215530970135819088809005925412343875694030272622976497521834447538511358169599215662846903230828610531361110315839386088646889804029161003829582299642618833078968283556097121219103767998491826431118159251585198418804154659926281062604193491020484387746253629475208522141060733686581949506911460573964629419291891497029899592249689753928983999669939606624437670357001044123773654418880793807320377830124294668147935450798436975491054186515297993547659876447089171309736099226157044971015149319620904582258964555760241638779606506324333776990113427801788361989878659105613771058605666947167216702214825459757477765901963393218992501326162867440945706839057575553313777598117880640222898893622316158977477506127700657556577713921695002278515389392215780033393981489837266231730414062634453840656154837852000918962420834708958853448072930749607949573473787867152391256950981483926096540049898370766173950920411696040711487020958553273462088488765282969739908873867342053422994446307556664971885454657503112013393597265187300415452255764715732565552510741860907267410524229498653956957833895231967164161846875161519930938716065469105893769054180260422868965987057486483794671549956824718400341003230104921296578263787095064163889985593251249081604187415285221008033583183457379645897726541571593084052330543827757636735253795306829620461714140227397696241019260073711620029474779485897265924627047663546099252310096490495739828340936392957705242282279987987174695877892285194039578878786930722356123694485199266027949459202855454293143942966373074334129600286130325718314064228628909190307704488324533691192100255871652777841213750837078307062723768586843265007875109956423579651915056857140631721301424820781249248591488356166060589720329653818818183012679342812251720574602365548131897624481239012280755178918768321961881790505816059701881840885133384291728583031272725295722559590461087173271278788089216399352841971473045513469405247876151548849238077630294556855956236269427339989471362164323739087014538185548201196898009989299770609553175603191598659957902411085839901425538898537527569522884409290287920262973519451256590656786866706941503391730467478809988742039439124909627186405234490582667857999642038947173589055007796755841077123486757046981401975098552002883230417919646708951097075103341566998886360209276788440292120355385726362146850263708196217097674734546541329212385611284956702219491332737694579642994045592057720762871401224150172271096255252087731658523285218782175803712020093358281564057826662240828320136006628884546458473155735854839373235498862861133787354957430815637197848992208111509561347724902896507265731719842102385800610172515223385967814634366646919896690412651124179136993958625122056358431781502229904839653414281316963847163996054587219947753285055786522170907738134530942303014884716762499594869360686591659550248398320024298071660841631179367999083271068590051252147025392259238574064262236284711217166406695412634769670709328177819312074636127877719596480841796977433727471138006700235916589805235982888778448739400366040482298357592131330702323941908781955162815546612188896792182644025753932525760467176094845394011723145574147763247772224682478797213331278280223181681726480451890519930072729871789083540716881419602698041476225687403830363692635622421992184689570605224636427097404703349094464435298960236256729866406794101196761454603066528499859737215055127466698552054334678960909841906315277766054355979927705023353681141334610610152451663224559613042931621807910371781724370234363435875496815969246058189807932668393483744266972127630610794421227785213414649625412098306401583406555410213434699714087434527410378399657690496520285255984108742798649714232650015548028788057745995674343511987830540080750102051964929152976627531467491250795329615527504013500792980136797760137925769428944679029973176548378431761753901290482018975792491711691131000174566792699548155735564004742264628438683517816222404935868363614809789120039006668726870686283952069177402599272333100264590546381196854733749188408560202212390281573778641389709541574175007338618261386492843437320213030058964534181959639405524530522936323109845969080267015859879308471074362642024147059117135895552775036347259122752316857319356331251947565968079408015154098189981586189552937681091559463160611927629283158891171543095946178423276953887016928048231947939310293864595405982132413081696103053243011642911856523421402754558619853843392411001471976755895986458681655949537864551089410466155146543192968613569369099734469107837607077318738686236289093742957922172057406728491908101925393323520664769038188212750546187616253391426885636870148526581408033623679610101288617944300096015823131542549706817288172351548932800678741793455955417356050494023767967115940086228252189213758708099104844474738239940825727025377840728772091639681652713606762096935132603516475076775000404394583524999139896110852727253709428335095609335994385581723920365812177341192385497383613324240613333146715110152778336080141584687593693116206634232341681930197885918677962421815771580029018597423700121841652840139411923287147449094632166303723888823757976838090973591802253624558942060580790733426815600935665942179390094098734446711550912913320148556111463721360314626862833873752450358182423808867512584839490338107999839730533393452744689307003179227622954378346284812698016100506936640005898882142820215808339271554064534424003240306558493077617391562206868364544528763135000585338141624793857484558938575987456613979188023696763977318915884571617426774742831403538653331815377349960176979838105022180498796099447159215418929660956614172613798337319524395809087496954827844358326345084393822598069846205469398956897074718622095650099398906847947524070016558366861396304793000477781621931254469045054583682792816169982498643717052628519055743046555926252913572004505950054232452747215314977681652333113931305902633039218707752144265812045675645692466869025779684040732302357689273062846845003431378728646094755750091263754112667337259344487301077698941321283359444267152059708910417536685160766934286229421370362175077249185114561567256583872737567695162986515017828769628771068285513564073637230844289403776272534824374062952940265213153416880656599762873141084278764934119135638960226254128697408370240913050828141885735840174661751248024911766888827794639406434261358525688180486520196647854474773711067458365809980265319204880047608050104685340764466210981373291221358681544266134529171975920259464701564783522424218835855373605681728910580670197534159122973088843077713559167921454339431663161836139262775039137658066441212719138911351270647232683426293409492927764658330474398124896666792407000133292717626142692465183153758320409165073545189117422239424998551224015044880775493631064622007614392087646818977818735968168471457633052779773452712730262388562447442206748563425571849399993604453273780769444803653916972985673303697331825141160903984371168500141529947022068713277085877565671672439611648944981328407091126362259798436938777672756752424696077651183538063850530770678722924536534321582321502434005894211284884249732695967861713113941483710326874741362931536839780427139016531017921524892783828200007691412162352794673294394990339850248766254109836295557785441554869191062860953014260057002039867581409627445721196729221964104868160561932420778978257421251724308330163110399014301502741838107056754354179488691132024065402031984511702599675141340813189522779101484882684609364975404421481129653054985763624801947715243819045011029489318060438145490993128967128797664662587302517077486135533384729524783994727247216859171152702063204711144950350955801327128290176536200820360978472114277465409511663363859388411719923567801578208165918987928819437447986378806474420585455651388818755254409509829943398428634206720037941852540643746410854837224199867514095547021638456500669164906342598597382485675440193619881469230398108143049637957082373117365057798941366427305855671396285493977684660085829058584795727760815013451688365267243813878887609699833509364815747911490562010551270999056947681755599545374751911329691870676153196359026987189755741185908726349287163613469305094330316369623237223944570659397501568287254927222127438414315093052342660484944618262244613855756327823719490642812463915979602682440768913690189504304349602349125461604348312279050053410398970903154111014056517824933583178573293388710696980922111989068598013144250706529235076803592853714704065796248970338154011349018871909427291780204417045135395222739875552454074960442359718535863239883699114383901580218511391548057036000481978079284805738847921075794406906384006885352282884532055926463841265735124544770750285326192810981669049254161555960716686010552497686146645089119804415691551314965686156163359693996377120385243433158266814404930749553364663141136057773309440679127189992959797392064527037547859697566164408278146617126880268614540860776943204141484547188001359601925535950269397641008827458912462603724729863624776605134053071371934723408407529400673018978061206627133534715522515886927002743350182059555894308418900666410796086340460256954831558713249475172021792406097029512103326933283031527524039543633851632133889174910512502773466449048785321818181339879293962746755970649762323541301651264881287661173580074983624649865544567626992680283743739875611999582049342508953507265323798637317660212090564725682971185138251508810702398306628872354405684236620079816942692252864967737439654080021138673345883702654722608998319001358053000965227752332714320232934938343044025802286858672504698672114319168003525593844750158434033039677212569272289910545909173175109838679561717685239063498566628209245424796489340028360047091477622481830867526773476693782069498983257960604571111886626133235970695301606138352573713268728306512427995282576982218668292171307862071041087564511567493026367640442991855524886212056048560873681057776451824104260408606250089267722811396509326205169606299384745612288303888151813637717062480393059969245687789982866911867097199235993940660195802974136019366745932312039568607422316282393451082373467969933892495125015177736472482244255853344377445226288704034307564581112865737743562352418319288537067522832993257832918837008563725797406246744462113140083776562059437629430616171186754138631440390629059248598948958932478416349579966327631663678106300789908750574838840451512748923131667217265287166963351734219761290543079504436338206741184675425743288391160662597142650231092251652284535583610038649289942734872616438441654887930151686124165320243074570306731732844123127135106847823750877617264477004844632476408682231586518408962408996598823221618350027514077269145455849694145521616743760483112304684014233190200594282551044426228853150739923958878753449582666006372085607403417252714921950407041831042390994976962721136541028416685799331730062586370938819145278740862765171500454205157502185827884564944692532163803429180856802146664379597673370852741095004436580511559671166673769628165774562039095224499826703559146311045420131438148033495087935653048246980841516591691748131821440827098747235771771122364796434952712171940462757244419828652612853284523959851227062999951562003856023552941282084406119394391422015051678446688847153284819364976469134311344792902525062834988500228478884352546661844052037753760984605551131947657087809187170755510546548475266237807229088283701686676286951521591943206110881368005895705313670779125820546431181676054854661102545606045303669356094402194655232483739316234865804152598846883285252037153544908702179542257481017469241502307548520331242881058036991538601722644334793051017513505021722586261490669542910016050118975326091664048226503381472609632623425342408610143135525242347368933442417727623057829842290524475433140521690184366200747229160192589068375886327825764770707512149236806014694246194430965049290237761910642015023603625208596025854744579934754480817038179214200544278562696222567651243674055660556116658597889531636254653490058636616316093882335475615036581547373472712538853271496281803442840673932949902283732372021531995524018488574605545332805870149524815406869655750402580712039002656298842996918268681496362452541939245366636286006501929291606171354067065643829472461642170092917632146141414443213371161437675025351262124705128178434237328622695306554269318511536106442994419874782783204186911959112987131105169295330723577224367684630388579248343221538667163694222290477573703280425468537629687668442020289294337195250733010567600719034341218405972913789667446399738327792896062291990651043859743228176719432529113057507462921609458315494263022218932723041042800711474026084763009686011420045966668184047055992242760245344441136466708576120107117754480875023991600046451989718370311345482037018690804021669383909110266574099367502435335382085830154815627274509572869042423080216914168506046756014588381377657831469653829563196080321752638904835907336193886759991487408544024047908571296054888099815163923349354303871435752397521761059150191333599575268491258642685210512422306384362395157548603226609854654605524164151939764899097696564306733662329094494248253702120678994047857504173910349072959333632617423260969738570812807619591808629780726798227614465267886003333814930346383340965971955478403199994913451072066715588539283776801430087911254700387489552503626383878615748594775193475750025957911694754365216346320557876725934937329187560216071773956390230503154520249793614024461883942958832195448741237042352565280764587813617586135690669215642990838110630204724836099686433784779407232183447004297977722370118867982213278391131489799319496193639546629065954100115696146038928243229109245125975122573207352436207871279002557264851480333217579333059888759431305567301259078465818078405755954811045354485792867871195119748894181780464178564173979412669022703853140916314365010059710573451911887959845810940262151956453796526337056110938942986806617866641566750197124456131760030520188383543245613240619274358778897086726042444802141237971382012072149277795136794482438377395481800663657021930976294130215823674259837681014278983644294594085505605785347001145786994949771945742164604504731645252018389086602536515312460968078571327087382968297944925220643049752282370483387375507666204334335289166759453912274609373316860215916649742084959094478349126095411104057803465824367414553246868833861011894374915618258625061081299508751819024778907739870475474642067328040008787014014979407782908739902842694767118878804351537959241148510048499088465054490672942638794648813820416430016817949219154433982122512550456611308227033285569102601831711318651463201005085917119909265460956489760430928674957443386736109197411760368468719432224150043317470158786253431738412715460913497922476768749845588108992465084005880093818499419846325861567317100626910683399107300871574318755925048307181301523442467472854266330284753915885702650649161140991428162304137959086902247189334248118209074052597184325497536898099229534562047811600330884589224380031263907013378968250606780941565361535627085566424278433766980801473544981743414529707037249037193758247131108434373095190325385967190080811907091760086714236860578968116956450068052941770209102524844622945107288857993683772196843370399024012665499222281851837167007261078723495078126904251180246359524648747886739136564225702340181107702471833059091413572775155553145051224547471273724048754234583808748293655663270969697001453888376303095795490954230912110674757191319726078776346891877980378908223922925911899941141356223660320361912647430764937248163506127569747236465153403906278399999304747903622512459161917701999485687310050529249310058969319128749617995226113077283162848067359609590508772116913427336536007182328456293051600616179005498815344078429407410493889819936461589151142788985237947528235241575152409947714387763468924666292780357694918422559558538405373210317519433958386603953987686218324205860992153215009841875287862619356322229342104342806959901385618778957298995714618845701159149942377394558532161243057504673011632048416994734954814586956618904619751599535535852471096924812652863125227196461642762847147633940943427095630057517744550263884349690844203073515061646725522814496235688153711419657044930738008955091070368213040892547055696175770346735262552045354336005187740214327958068619930795942641448462650913200804376414918526728164766599332374574463190617649377314948619389827214306736655483136936121258302758750831033814419429164081616042157365101406696737367786596166372240392738274363483776175987497262534489697900863051972200659460882358438567034946579158661610023153937640689635617644583050518413952010924313941719477389462440170705745772554221867202275132768761249025386376613895042749905494971279340629793769071603924251841781982792667527487991837309300886418768048473990779701274507887464789624835346558014119728284889370585168515093922478771679778226891704155180216414741244148895637217225747826998409462272412220765557668876715704106241645537949179185063811578065063559892874861251882774366662068119045884813900330703087104976771236266107393434166021234116441583782668371991892788381778264341370292103257961129491549129103534740287017290200490085502252727157167497470176123223919111251862770032209672536238727765480917983782744650453888621139613407005730266658308494016481369956361597754173031046353882979345456003959536930208195762263524752014211282364673808580111688451625700728743939236060042463577598861404411675239794137516983099744069590498285025448735735186936441044430273198316260810063427615182092852613308666378697094612710636118970222567462090367461248840709037249899710783423438634689146406616942749223987009435809197225085624119736318309318802849597413312978396296703438101495243309202715145969947073573110393524966481512658672669830277207746258829943502605485173785070904232737977417332670043668084150276497910021025461625420767076000698282525611243753514868404293838178422707092603278287047641091019274046789638215598714498326472591817218109059097903269150817898968851340766764096493994730115635575480820514404270221283914435066372905788589129918466355668002026175325675470334976549202385969016672230010230069506487121988058432505782346217431234980904743868438323778753629118205372326501262442048648999394422516855965509664901968815474484522225561720080325383747211992884745876522509339830214785573703554525129110499773114321189916316023993735693829452354304999491274220940667316636633882907915356212084260939494432999134972274704900775434500670419580411115059148378875451515620411509603672162295420355977305692126068182687668413643305993994838746778290253484702276442042442428151523770828305861217184169974781142470196236510989524142749195923395942312708479331369276111079662595566875097731009480241366535550981897884085590888061806345469909715538833156800613440984226352507673289405214258991906831483383962523486150653384792902742284115278441670210038755153905266607015277314840883469220548673308376083574821217721672312247498634622631574579715871185215660637021434609710783697925694231358180524324641059930259920719341725896506066166721699707126394383110095890016643580473152078125004626984793172823098297293882363632474650978665935927053557201015622000164350079070385725121483696830806867171876191425689475043907853762824710531041552156691698808269188313025566486427451522593412331896291344382025695088063585110554519939880041410293601098338245065816495229291695589040982573971456849906362771580761920044417184618923248582166508461474664709222993153212928223746963678302311196750274485223141029923625912706037467603732215579033960969913512646587141652256306673579883737233366338352996493801007640863673908875887195401825687037605530687931510734370507244650600925631183069513169560391230049339565481058043501762484543216511304155063755227421283916613908993920248306887871939098392544968425219203467991878345215027090014510573075015353867784816997629462001874000068375707407212205479683784303599034323580964983311670577321905718120761190877222368030447185256778062328861320487003160970605044710555434188856009488799812619078345137944056277179291625756692236322925208455096550020133737529852161005535907957717479969784735665970178119975703510497644402070843702385778004083100614031566502737805940293891800052881500709271324213179071443239476857936825508124091573034949177078426778606055322475065536761578513103178385871309920469546293518366242216857882532811150370231363568337617733661110175127235894683346290057122160035828425749605034704202960732152404338207979666323637215632979828432374916730987139949705063589283627065597980826730438797624009094512680051720682241312303603330926239753788449347269910713707453015060731130201201720578564528647386540810933468532921073721989194808221099762381831105012348389963398693101987708505204976710006289428307393804967431560953632125356051146566929298633062100464780346862923372907823055721442174700047337457602676684063856170786485131228347971409464607191184558024827341441252588151068281057298806813473955299475926147072451830077926193933688233578595074174742615509770651338104197508122987899683057801470160780220808958152824521433491519022168630004599637623253808358949466004477072402300489014923598533472801210770824907626854972010988605755593564276085210638518425193146321074326974431973018034152484253643341130464346728571440234938512043668419651248663872467441582175132834150572390506432553706941604297735064753014517703388587638504063096588842877095101467655623239016876155703335316320211010475492718152737476384875204934343032805296265221696714825445589259534443556799045771323552834477705185871108643279580457977349861896755659846420406751748848074618763894448556167896926557369243094574629096914062994718671455614766879521203571203277404149995542271072907881651300582322913992218793250879446266001795475239260494614477812878833530583762915184096707895027462945508417642612615137009193259803782521145064721730695717477708052767757969900016344020096396196153808063049671862426919923999641876895552573234690815990072567684265989089595993238242488379272262427883815026213126462015022601412215842256618534739689100734420889032069280367254222701797707752892052796521712111852914496156120411099261209840039355082832924614834515166432393038996044468687722777998038483952440285847773061615154446222089093546705861928878902983423100820253077900164500629116965860482257056804177104771422242567295647432002307723416319247055672702475609095191080832246311937660293916251494977663156182150124708638074353906317891017379920549725944199416636426069360306148151931322817947328770132107508866476009903490905477651130996952390842618145949876530346296215691421183996296504264750333050688402713762157635783050364749850590437381617757029915124705710045295278549755443036984733346884901427030195081213238830534707130861370427390287282872009570471357182105126164062835895279500984730287268466563447796754338705205708185745837636489193406123477978267687445853426363653640928621522916638416714053137116626441744459388393253827422216547796186609717469665113316777999439262521133023732736433407147401219507488203039254741130162372352461755309784688220353721213001492834707407996463018390099887915289294473444300357531051588355847582970914659347280450813714299913523585502249215892837098833240369302253996301455877163015936397764474395598169409683222734086248143855110594260190941765773701881307485426442184404198300050719243268530937458220008628254390158410909884880556586711772930567449280109304489982166089524549413952700643835391811747208944886338566010205276937194266442864308032406958356590786736429936980658515996118859934816625349380849350202985677069089126177121061332336257160357222849898350333643381905456742609101753759812411024373511929470200194382949426381882262707391550978234102624407826338422376626698543848178741604889221373753627623957224413971748906482463122373369857772352828303508493719250325557481804066589541748538175012498497052958218304209407789261952116950444402579975205049160558083154195574173914670822275008488364647016692495140382581552145510735335407698149939485608023643948182331819271480213346490706170122063227899550679722361529793694638978192873201063104017921819737709796932929592570728930553045717290983982305689328272815157539355146755123518279303487138797020117679750813712018891755024472971224423820500563444881635766254136755399566786203587192189131936018555697880307508426648585069491780990726597111823526994121322260811271200943659103045800813585719475370763342825570712005647461466942607543099609901379522196323317479813391906510773591685538304465246847274877764860065251067528901520719801801817919909205760316109454423653545122947982016536924261889413257938015324747151421366021196075467654388660458510138245206204968302740581140497777405297285318295249044843934869177153382192628204264065239006959928371702992098892000665138486568786948752892455091846983936883531711431174447872068691114566095962133945663088531909352399292436158246209583692404410551827018160426748727326880290889547384733701442734846553258561008282779040731759610271382535009556964980266313177281345415115414798268213788103739169825491710276354922783460198495484253161082765661576016630133306764112164486530092373173455262402066724382156179933358249188835135328270560257634535973977344381756511200071295072606606523537891863754537707657370459947989705470137588233409256929594556148117091031974705546400418217234533736708953384208415489789884982299283215293515568426372191900330511788091858426456671654727651441962073589518638033326207081004482206767894245229028212461516905960631001289919215337182796259940511577453194252952061824776372869239097102749310235099872581779111218111073193370715575544741705554532500927900369688668344986482734549004670820404352929839257230925216181968471574746852193782933493770145437627200748794812868782905676086370658821202525249193216889252397073433118147263319107988324067859678642798887915019909267265077624882272472674487806457392713180939267362799492730609329472723301279101365201044943959832735516718842982457787218693150665295815214270469505645217557697978768709900724163116968831147194990205999018598859590307666558148268953986695655952511355742236229742893572724218984077287666175353710998032656431475975813530274879725782197563642825455513488831478093560923266346816606487907959551092891766254815444926576036880415922803507658318869448596708656998042321974400012377298384715395680947461522471220695056117523160495276768931623429129831612215173448839180238407831501056591449819930243489591580782119648850892739996565657087921156406797063516775254524397241586578004116993055160904266785028289561131431720854812608365525236355185501084540835219052266264749544290387429549821803170419322915633298700909925116539936531419703675093658091932915834449658286143932607309971299608362292027818151495423852918513730026182443419236318390665637353973338925752982707256238247541267325301440143856953015009686269644576014131267015823950707780024486143121685725073148616609919609810415072812154309237923045236792106446374535976230836373745504247912412353037066332018769091645711613038284374695379884171193147651281775638894658192567212203741301653532118475453202982426928977314776930317207682895426842163062686748827752415109733489312402437212265163640416811799486946543501997691299379931519624133684355817185348041544842311317945632602400069533693970588459122455752294443451616729125683377757747271511800041060592258507082500307277446741308302787855016072705632034907812350717853327804235470332334629099464238477440895219504089359819149449646578991696989231208705706239671259597280280214774839415464142879724354184201333110288891809447060341612385837616520108106965572901665194085272840981363820300263426267639327788413202430983348225325093833310398544565938332530810009808645551945466725882130176171238500011822722028860574181123228364484339638298574556672643724473132916828447510243742833210471784550266964282856614490737465158450091654412133255464007293992143875529300747926635833113841721113396470308624283062814795943066247491448968646194786363304246189942161266766679182281938558086169302277673171193104155541995491057714040715243320706655116990211642056171623388973316906356459376037562486951099406527282352467126930617079800383165612282216542773490563869350148709434513935468654596442811101051193406679487540446577781979903391602413177503129824623652289223506514619246458218222958452398285638848151805214505868040443104820857985687779672403128415890761398803867010304312664111953260524996767589588112776095144291284037147951013960796403856999416440200092696982239927251726019884840623169031436422101002512502371540819306121320702961376104112464162959752875508626217888000848514602032952362061713936345814164138166892216150731088757264864470795421100063970422862023990356192260595365290146649480318692359231176736440646344447401525197100681424113649647827842141000750804941857648102363891160127623675555351053276255569218752356501958869724483830930250873085979248920026128256425039640195974946777832486064758892332813855173118984020870662749750598370654932061706729815048823307883618922824331175574354687952069251325295528811132374502336174570682758957972648196920464173485212632846944499986010713379123856217428354062114576984538944143336732197605935675511553389494197993679899936611342240556997786127011423650750211287967320494887442427839894750145182699554177551724022989684956333886190515214089728021770237187446468046393573626057064021828158186010149092738281318531292397661979793911316565921698070306695810347584329843403484920004916895526288448421788038639353801734749386957476211814319119870082758332560526509167885426872493180813933039886482774103491744481031892654310253258883023716143484778006392341842988288304343915063920718671812657808224271281488321185965025896234633747806302238727084822368886300967870155318985350335959180915114908706277414239140180299749760024441179587356705589295330905362836441375789382467070529535651174514390986285501007810762354451608733872940126447754099884302672234333086753191241897962794795517807239330530277064531688483181289775092962691157215970600930789023086558211680672346621460422810626293162034200056150851535480247615338892458865610425302453393288857836475623231715102328803625381511145752511331171969977772369710533132234694858080798209558053831716551802423802157856757734790445599398527426433430747879349479787004794270757702058287343856050568635214301576055667941491015045906433463056337928727216915164815025655575866301100320121278522307314668088931222211709473610480585664157952329240232011555307190429195976962061588277498227107706929186764542978688185659326365055624663507549189543824173614271001411065553482844436876057011049048723433119712110727571976948369800940036635464442225849112408530980548543132353013874904959569399564838420303723386667521579040176700344634485707705501345395207890245108992645246002350272166135110907557192209954838575493343399386556962222990684251161029925252923624148813870084886599419341057152033997332710236805072190675312055337440783794870087961560526992974319618077219869060284659690212549301835038711127661916214317280503933124931449812836014811260972863302180388329366119339088105157467733769524948969559430361752450929622602480702357530228121487192219264180374494070486294979888127855124941251554554798516166894685358498192182922507877906232925667667009999449568589379969859682934594322010401916084140255838068541276139490198053844955872770154713797847054254439709211278390490538986613964520364420670855418616596750353261780625098656716945520800666491837520152128747210014699711930914988241841270958000452554055372995257986173558439015228917494684747764232085117532232521808099291367347974504904065718410820538876785892587015168466747642596738401040646382485683410669574802242699643016830234240284973269117105628726222884863417510341739956697302912930082609087000358543604944494494850125984088974009578157874962709739532061335259210743033859178970002973203719361001579997972980024921038461239959860791663136563349566606794651134710058764691665052304598460631533889544480160672055617522677007051897562432717386934980786968804701639992754536340368502869473278673533461083361781634426227683246575101797800241414025688589118315137153250100751326775432972387131628779055609566815474047695740975273468023463743309013888405527217484800979768392012081138521724290116176692261289890785053130890947674894076703908078508067270222364746721595015482988589871947904690413834519450905627331169902619729022779666095579336866096546911642311147564330123707021436318215614517170573932967140469480410475396388198014266338716204675393113554304511758687818965168960021878615264741958875960588412421318352180897260722333118939747014908717937362864746184888407470336822165501717699925484309270631370683454811497727149339872466472980339760408294346031310985465911793695241983802959029847457586181954923837464385045961960667499287493734023600940456709390164687804425122840885858600543673786308503216509859313383328501793265902042160342224666585253811015291918776212116550284256095581449106758897574195890787509907513162172633367252007088891410265358673825162643930867484481429147182676044581699177975202224591241959892983637820423434449638784514828210013270000146200510100026440485434210862957971701494400906924463867341474314573474662832254265163212961320449153233777913580700471442966314263565887433194966703303192125562180685963008651398583272470436206671960640873568308969250431100313973900283068000061532436445675597457980301164256362137802153528180599136075030010968495034537572134066455487783767001046482532091073843837495656710052281103484571932326535945905535391726325272081415930285910051210146748740182077216756276382940583238055180289935762610595878388084263460105227494346670629670786724890732645448898294000617561465801538843590752487599893143680413979135033560501852198851232987679241471732156774006849767164049389913132811871470286381695087255972005827267936432032709158278264454994124936831116746664654270988588695898692537624725042542231120735674544117602298843878881900530839968388252952323298404297690192502138930250834966753611693995238001901585820720058567015139819459901685135110092845210629514760542491165994906797202765296058673568589349028652852353572794379257035012868076912900642472908675776416420679542815822351285192617693550714421812526788768024725445596878343183961225976075884927851970147061496375920977237194476616636557936607701674535697923632199466948553707701023357162515635942107404344971696175147976479506333066812965859079646300113785508775296352111916181961865691672122348761015432579302217595330128041649926914677159225225405950876977596070952476483944881922215622409065801738021112076868963119637145829822270338160777268031976919158764822071049270657925299372349517219936681739968003819445126390260107014489146153637271598552951254311339313889939409072521701687299516982570595562681044257782614303304158386400480207637635812102025576484449276591275943953115429911159191816920707707724270289405850832313851064003226660964985537522769046138288476007576290338302364837474478757874056032360454235646673090416633672122238117182328744261337008751303822966169165058478516511415873333453956901524840074338058091973020830027299600130478579134755984999697862184027190348324499540239236544183217749016611534151416702263956952731916264534333261248751505247931698155197044008541066967205700769489805910062387594304541339363027959161967951266131629414601767967355151631107147631517883895236373079457602270701940344868879062054721745052230121114576019803184114681716264999284877248109258607057580622795575820086820747322203313767317899677687320225350735714066398266341209418083685431477752727054977252367835312844616311671130799580664094742711161721604231698279971728598875380157232658767279268722003318986183065692666999028474364327103549440780446473690061928537354819593672043941132245156641749352421327945388891578445030590769270633363119204867255642552177269460212196148784265015096501631843158833962859283342201020605156011063006630147930710321831053249181781549225473333627297358232002815346281904335571809238871706428098462044987941161858581784416639618141451441158532324254748506315092145842460698772175084226938397188007904898298074505529378478533890692343199038738055534781873186194572113111309628691989257446555642816913129564524336680289974089871535695809360915445759516266706749339892325612151004447405906204450284271301844060125554574408230545831404007184244765440966869045232491348179088683355701803738774062082631222078739652339573516691874644908911450142085122138728514320222057624469923971051213088538352230871325821522508730034815153682623515537488546262486526992332058220079677129880239386906982354216962020548760155332343257500593939361930014110131644956963676394402142065163023036826549797028445769892877990743449520916913912517280137796998069267470778099069187201081038708218287757944964975023219178331646247640377253222979941385890322692106949086331890629167481196311596585474277299371411800847807319272804585737529024666070829610276072243266258892174426572941928226552110550743991735540854546273793282474622496148645260539007531937432219189218987969768368184834846212792805346006028292538598554957599480505592124281371019074318642713909040950803012864874266497783834940661755981110511271739603448243805182633817003021414572590209084695439369548568953785272083976625000204388414298467833579816647564638304622830950769839782266151178782442609807220278513440199583948988645911821368489758177402194445831742288665853263713389744635413616969888951695701951307269856289420622051112870623328395725208503909079379658599865786604758040594838165600156457909841203393174988888085802783539451341098015311739579456024647410943885934656114991074663467329129219161323995362607209724138649048515829294971507920786819701277150095650640572873811726179531715952999455354584509550296026161513945944567149371128648342030163656076818677910942680029027781762524494739688703990194781057221018955212115008629343429349065286113852180986276117644194769030975618107242418019669058952867793303303776086668936768115398801755126617213346582173942122332034476314504312774154888393719944657552097196598324321924434954897966360941191442136780778304503636392170862586538475600441881631398746111050891012214496036650629251179486535095543137038007273758780384940478537223892819132818285553571656598245565926380654983270885071806742567368181384219069829351258647930095893968641226568057958378902722953464643390108453242761178442035447185716665197958598297619505822760576219935478039048166901702455665558016716437993162445920406941744508838759631120631246965991676268613859111494619781929469284799117715740946312039289345550190320178301227873345746975641753370759733805140448707057297883950134150092030862615123178020893559938474716628402367531753054143859866183940082468839898519974797598949647420874088229428747203745984984164276389759479030970896101399085210904680039297357057349933746299442575668519159647181683121983772557040482860275090406965117826799953938682707615054363950171480143265496195920795727736302230154086187225104178923237745102171279673292741737959491030348581042194572711177502719561377321855143952095100424647338959879175635523645216856434499741859952675237508214187872365584181529546032024656765085384491213309753793281335376001005536758359467570293021188495555931020345558662127381182002574201749668201651306965847552753426384083711460602902105830919610214990558996016187127483500097371341401296696746721416402367120628874383537362156773178035953939552728558449910607282355765084247129763365580550297304151940696389934636766609085609452524623249874536251514043942220640295897654101592431120167289721583287652646819372662334664892793623672717467544461956546267478164835782230587736957341394573807035185766628766758224381141702865341732266986576406574915335270508927307357330461794656413744616006631623750609769739599990629038983681382648731763181497280893261638983265708650233745707549423307669715623595852694105087356009619191996655886443193659493867494294561447750327787647949453012743672930805087619867316307544992017893570754428097693572462959050825774590754310328825035600010329138117531621916329713029408615095363372058799817071791027363225193378402947525930368261218081533220584330585017878796167591769716770927600540355840917237611173340412634240264082541313825805249147626679199134891704269308691643842450126228404739217070762185149921215115641283555598515521676537379402772038645158297174379131779603411566586479014086867056010989252023896850255461891958903750911081673067414007024957223372389652381921412052825376713325537001512938281493221383844700960507931326429335126241000590127269733973768433482771213237422183092849677115764481136295632570131318816281398891253135384129914209309638518625594307420238447287832830524268535825236061732308507584456895181925063786316660291626051738580698515510792209943893817331094094043531196922736653457643392739677353851776947424286117539300191693797861096746841684575576665783291305556397985150567219380163488528860641941644191605985282779218049620212287855287722928241390017638788462804628034311080862279426911677486437101921745571797568130959726163578478807802637015416286987156444397915819141803794291644830287444607785599144545118796126137342813224790526145725748606835939968437337568904080164908779313451071956747124548464938094602027771852229332377537839131973487884885255077431472692025617475152373870224943480642555125894825305350193381105689627183580764419932815409554343113812087581868223634493013752776546295176719743702413297348773202936494192502857506844332119338654706596689094232563129916589737978573615651736543901376918462634642277764314371856836171086400994865902106949449976682390111656586804565162193981559854352790347109036785095317040092925111164049951506724630294797514574804360673902162333446933928860375558947469502655500418211430184163089793188482500658233845127355785997658819125128598749115241717515606288196922980876243202755651928159853958210235770145493848859564791776920063098205318930266562540285908888208663039851580338782758721055201270849407271580710434684550154680981331028827057707891702024076145510201644484086385470068764530802726881972317901067919306857227433326995989450522771296387509138670436704267717255740212840014032439994595055961540193852696614922019106526396738196229165203786595931602560537176094479605017888311617549941640207551802162900012314802546952697193283205437527374856261126543786864921322008000912837598636490899771121592205083773920099900255886596281848816706721180910975243224710816839711084788773888338541085623833787267654029145789863858658351282906174658084697713405709012853040450961408138647426275256363670714194587747349470752995695811435581142503157087199302140965645388008525936576046877058763975152455256252764756123969505810228077365631606574403968248047551683858044760394306059391695444913369717116359914824565754463184204822296663443827110458057518882960357049447572915846618653576249300700219287670604515443733200616642971512667957714135526718375581264605003515308765309139569626748708458327393462568626054891442537193181354766042665534736130425153400497762226800946864988530316663882902040529310492679842705881980289976483873944109900888890054766106266834842771912113271477623032313993081457072903236758011371944350945216852129881413187477554511613591133241165587898670519650042345419178157357589489870524080942435906750602127438056394787864283525869866479118860447679280401960250542724124086815386537793502625085979676754206423043652899116199174835713516623073032031619005805316697476933891130352889078191491737972275184979957079170955936714589242005553810680583760747199767910068000039261257004940782113053955839106980746229966022923849414693641233135607561058250015876406772443778077544067730147223903188241335996275373559248946413884941101034064080470857726153178280063428869194970843843994224785174343885507373660764871363851894250529967041879543664145602860993166885680829516832028434392506150503368156155193687353502179305108573672901399203553526095945706679432363634084286166793033545823975343688669198706424962826186173249072664481811207630052254558796723185611038736420934529068018478193992872299575220661656761722054541000041553223440383141693079564091756297598660978245841312870309282542245709992399382679414434642443769373678411652379577172385337003704000190920225592366368935212729574493634210061035665281731165517287551776370679352572111269961860496766592791155319386015600674973768185282735224593999812623582097570517409605791855693688787096723181533994725589309579241382731188984798172338942382170929190921645158463431946956321173909012005866074967556430897054465573404261776785930867016300257174335060741319835249695133180072468598725230146908952073670317389353480421401160649064024417314407279874811372150983278402049649104405307048920406843652961875918407754954101670739770827834304656740287610942196472865083797416204471055346864545529840802185037629443280869457034438569649464305176380698996305580332276861552184465437421666280034669436704315433297360884258100541386166254964721310303074427703315923374591736714636685895898693244454552889458290450103655259047735085141512819871937610642161383367310654906649070037606488277603453006742077793935214684538659021063285199898034965473871719043095958160000562174501755290239720836425489805328472527508996551033100338314687988153142374977147481735969192670760420706588039969800225260942707387081826070894366658441942625394826663957177883720441514831744718486795732450189948168798052494998776890256420155810107960427371675880914863488304985369638930575392685629670845350135030622656841945532829437114941438702061854830562231492790329850462018905583130648573461183062840022705663794447334975400730387586039549436876361458526826396899898699614709986251677334122177395214311217753353504180784352395262198122156112263331468704636966348939963037742975243506631948228692033356049752029094443632942327448674713515198653443029309667288559697782631893525191085403974976105124365971017784263672300364502303228912484648409028251255881290326782174529389593277037985680212448607250964147570366912250463361195883142204263646082762192289537731954680456009427351907430195214205618264415495695758455738718227514761456784057576755906954802143140227753019274138710734459808117084713071249441888845576025357746891656937754737288768816912141820216447266756363556621787793179973060809779947866624706516638539562225388457668550211175260136843384438328830437361255066478132723891718995800537648230215592807849457721490642296009054305948636303477660150787695178385568161916335558162663332629576307979137827820282466520341389227646509059441143853809626149149223616175512648435659540499369661778169324125459937574321873144629386299377419337551601826735371206799843617208807237858661016561050739764465223587689347345524065833969291912935051097274066107994793654671425106058507657160464210462800940133815527449304837330573332944946061122098830776051659974562224825008397288124485666185112166562287760089941419750639123059094068478446529684530896929746300178041181953881989713698834597704579910917040718007452814185149070278891912078738512881746542719073885364249166472998025011803550408439582746396737746015354119518806260473429834155765381763902050020490776702530093418804191806115222481735225674857192219836335551320787429996543919364068563400821181888655658549447363695030951149502488675481601751765279000943318033291700955428099596579825475788186944134566310370034226997118231807316258103120234473246777798882242745047321079685624680690993323797429721611188732979476075100540259707077339691721177893025595767268961753643671372325635179305694203882595115951313306746011958599771608732181344788864305412945402725809694335701574290720499908110187236744353217348296597504444122656096771443099351999962855028005023193753545968310336061514295266957817376753008657785763891697740553527387200668570613183841611382572346656242774985559497891522355083115249037951308810532064519889725523979201417750466181661103521741208186035345873996347406672719233238719261678965932471836598661023633150388425553354876969204479035761488212573812936746562249422366551800776475773179990600579526341766271651826654165695307948920287079588047548626027776392414966506304474630461897683140891636373858757047308512392082643940707529184781227568736891328828772219643687317405919081476572989404147777806170400615993840433341742611013150867892180342731502972306027241668148280308003972545466560916183588689264199133377718739407048619706768549106456158770283672244115580796948425251639504246186072311167081592343034529568876109352712967689748513043760077570475313044014351296004325502486227400367347295174532274479581744873254371552796147408746912599929063717215575427427822095762118548619230774290580055172750914386572079665957007375652765710477540108348764455477696656515536586366742079562099792744621863340768311114277705677757120480114643099271553114271489088298748312709554898497408927459892409906669818179441755226814329882596502627115637351770171980967121894003618150262986652781886207518873004302852010047867627411682929898160006742127824075104339770267647770532422796499197834352902558399254259964628977203795323794638117655789157872118786573514756646263913928307675818207582154913509890277314865404996615640516851209884824069396847302100458688409737995250388860013233100724691978640942088292931871640468916125298830802597780330677104834610730573960694611258252933447982585329916387394006005786884158525340017204513876671118037199443316714888472704556395481684711662104959885738568247051550359894385364569698077556162317427236981195591006479143302506925104263302573262304800659851514440061988290613467342288592249614470611298540150761680940409867215110698797999653941442658508564337645670406932555056691321659656661781150303364623950569496599809945795903753804508885969509912550994713043851540772788647157981864535185765441058404022884330660105462689500636117421278056208566047694026219397194695641115229408064936359296851863561113959257990277013366715945588028716785246334633359377306698544565179869438738626694924174365868352426307983867799153936646101312059095876817923733951807321710917936191789098067654094746407664285433784328516578328555993479809649909347081739473842369406562452913460951575063886606740205515588035538386629869941964759117509859996873348427250706111789315644486121653223563207681716160313043685529662787354152534141915865926973015139580607031469394352132773375200927447350781171894924994955688660486255677280633541872031705421500351627056732359598345080647704116267375581670493693852012886236277760336946202290086888594164670029988154835536714372670485178132006837106382597662461475108166619026792366377595742401745012662910817176457987542866407788213403267382931545970780449108516734782359175951156048059589445512058721920415457023358816876139807769496392080771082378921718476165373056881881391954797502951648516928116198489424440028337041943422885380704255433425788410074715291729506243849287925850566305942406271297652072459189494487772576595429504227703962530193349608972044133536477717472724122281624989820342651146800777310906839678405357869153128064232040219568272119493679157004219293929469625221425623418921407240642722146262942027906492422181717653393912282076073426858715550462484521110750821650814632048571248180360413179422193081103573621320147259201448501952258031504448754291409099007169056677106040670522211568850676386268910195217068857729980854361716960508520839812722356497859460318390214302567183192587600860466947714897151555826985132512986016317605296683419687275683008060190061658537255216055163293110887574379534619561122050514419361329112118963291608489797909764908906754425950407246084401104945152971749488316054154114586118116435484975405658572713751519499737916384592509653140946068969306967196123008967145301952799638572311891462041074771666751355154661742906298380223510215630847663942062492037742159832464838318860455903174854637426195064746864970081645356584030802738780747611509461136743187477794291026762863430852631077868734564162871857363342065758634316945769870440658937445221487418782115265061572292522787018404185635708427763989762226640791469259219689125713910306768055008116025974799949587510993340169999249022784145753235529251968109890950833842478795880566823047624210664690859025191940851360438209477879536523946378242280565099997270501695461509268783439363111558177739143559806985924033351569175685992633436982208304656968825358338599748555988710544227281922192545238195727670150234284046735314205117871741348941036940325170435583958220045200337713467669658928667889189320343158411654422802469669228751957737291858326410749600283410485455142634437112075947011179666190146145421065051043144908103320818855065298611075312526680021915686051185917204207654066150782953450727089023886129102749517986328026066756080387867410325079381498785982518508165908712478423574106777195202105630041303876002780972992156053351029927755234957378357715956689771232358893926030114555700913548347718691878005991953051948578953207207622325894810480701891431839459413506709245436215908461931281842789737269601430402798071794647201084870459784593982882923228746701417558219685619211960526622322556698676287383008699815495472069505407905785274465743735529981528813596798175010974570567859020013000264379193952017184393462876205796540044427815898635692698290448432355534405041665212600581772578301590864786891609222957229286713910306732896173314434067486475558361453624102675544054638685791966154263689261850215983144183015551721400220026682200777050499360542862906275837752925519879204273660511677884667657177112866771514319918360635756128199556786318350677683341621752017201499808422770033739494573503622202969867118070490145864859315393973305460379159789427685542446247597963404252909492306147958813337617511028257460954844125347685616158740855624171101192134469035307227723315669188402560156743909794900180066005823950865277850819178706779853784444312881659967161058574525536112701868458111123920369123981826388320479377327598211483935058844683489199609214578364598314992750748035933124838520158400898583028051408828206882589070089683409809044868310349886737493655780272507477661561577580829784019275970123243121083587617075112002811510788480765744886997267953636109469673327466943119799913783832825093280653964090232887710497482922033970416715760579856731767605835262240636743776582108413603867960583942254312226760180093805068091546825117954627109562692194199348103892001575061303925763979447769243714316881444995457479875505411608852084766051468538916461708452174706821558514095518926541456587787516357193388488717706047043668988170209183897204770870692702365340884166324319385941797111227703897792131323673833562172901050706698463481901777567439021995182548477917066875052540465672326606321053620097537960663974264759771254786878306753409890769680773424899936159157861493912657282772804387543825265214660633274998688484609190398146923586613885522819761389740323707102459300397656897091430412129482018607470062302761686857083212389104199878417913200278732434146215675429847228796335662041244331558067518506357847957303514891401042518499242421881586074981163235338388746522672202502619092064041681019517879795863114537968729762847677777887921931187114093139042470555537529577360746735075439456813068736986726066842934456236871461057337146386530123600720769922851538579498017571930724181363927963318045516886040057744321874750954037229968827052559407116861423590893090558127943477917214987142733664413640172428968297516106247884447119780806152450569699009070585714123041537107881010885512747225727875512142707263304584972185118021664636090296734906610792552442564745391873272219516947690658334715109312989940937695497982128919523660471593300581179179792017801996411444452195746889608709988070258759223762424604026630142175971455617790970674358299566938674377595409485093925418708427583521880224472585032610543749853750724814648478680091714932717408207173271112196120164145356244733531451690070619501296511432382889789942330383372079307600774470171113188824797257707971183964955398451558338001946655575305359588983457434005077715723597583686358542294109964401569133282285796543343879601394961380398234658881952980510271054903443702192504793148057630950667798536335365830869166246814479892972169555535021418025750948870417957238265729942734159015934433199777434129022450237273006286785703944626774878436273165427248788287716822025602043964084671301933611773212313362123241636998988718288769273650295891006924073151266856270078425742365522108931155392275911645297086563567294691393614855387656622702317812110144522439055192918412692436107664276728611787422698500255192180753604571879988046118428790670043630808401099527078315319428514119944280181626112323679688325576618025053136165428164246957864786853142166140511994579369622555304949541903386134157814951152321415764112033764302772334763552044753689685412903645531410567110280018455426002735408220036480051579907585519482706058946858488867748927208777749902083639442614533163266113655636398585014322538737628668402367583333554567564700113810102162880475016092062194875832156773043671006634824655296570907970369226822793832408397351080811174511818745314249379866026725940179100446612973205406150745216145366510781627067148826698749898822827522797777239456806537440795962751023776669651266284411278184310396829741335284860163537272203712390414149999401480078298851188901905288956840236722667568969466899390289942764542835535437781062398686969628171612584396467047580344779197357509619863887122969532144684735780801715512546349852039425007009020932341302389627040897723351725215041467846271843682349865308975829810351591124546645165886455784553187114035698888083150255364334986537600273236785327291423648077907425844584448542830994821096870067912460585425502273841910022879198560291113680731807156249982897938899114191007465799578696218741349306558412507857888951460982778607849864324996099318584323050532714905875733714656969473366248860232428392402512578786069651023297871382372107485664542929937703057744193349807935862927438546343945361911945214837720705060413496526229389678552280064035439113867183429777536639615625392015590454704484450751072899762212028844463662792004810849654078982898876375985282293546146914090028074784552447972910414605716736169805942114027178375650655913198849933834960044140171616315702250140178221460571596360590699048223173506339710852458495680122962939090292476230696986643319449396583090418291871104819575636065969454039275648086638958506801467344371119695875146985589778538980856410101921740874020938857674319973268805371344436784786914868425358130256236064882269914380074117115511353069298253874274325726450837156526342804850939462934432020296569976714040993281437772668684177451697804162017182605290100770558732842339239349426934143675069707626833339585864782615004915195166616373221742565897397935978143690041980835906596989410927033578768648862180784389976777683342748818770470513982398978181139174463023434318516202402361187997743155172089850692843025922221484193060722256136225114643017184153654317947757671379345583147440201302703195961611695458648408227960491317899295090266163152692068390583141337833091067185826581878927135253177017462897100871180537569513702935869205017782271563387121375017398579934008978198826683871508915008036863820629719776544538879085754171190324731578252938110812236070092500177021701527987105208256383353014733087206573423311737507385384762292131827082399865082433876068939681480891822870435048005696630364826900009543194331654408926453908864846525261500521233275710619398241995622514273391177741306856026812168429781441516366355935329124435222281882797124041670855643848591694630177583808614394118387245711887875697959231054156265750144238623914635374215361516330820500415493078902611232934572607253214641539483941154297402604470187269681287517172049262134637966715079840599100767893955097909629334699250358319551274734889742955159428755607265479174709363107347661341398262434495115485731371323174231741851869892752868809128948136725596276091965302936120620257832352748667304476236688718000723807015049665032105639115950557399489170044317649887175979704728915515917912984053593829523897710280257747289563049787833004167307193655377106941704228302708273705928307416589779854197580478363488554116823111837289309558324661075165679920673419522666663529060002377400613461799285671663352368651163988641560638806520396417950245384452110185240150463498831407392617534780694651486270879975002854445154777456058232651150199864928533171328375129153781790227620931001282259353757673474835424022385998414538255821629901811324991864482675889518237879480412195207753635049182486078757084380440747854823265553117613587434246212958645617194142123722439077853570129979121513973871748134437495732964606282796838822259007138078251281765010112903845632365342239833861786196615828694882093844818317850427306046467636942560563856388850425662262874883701142710522893907045713973541797766996809387822857299019520723035831539229486136278723301826673438007796967543180464931340687083706446371595688894526102790084618299201784892454633506408025549183534844297984984658331860546203943529004590298121468429478516763487160370030856249945815301207437126189679163785249733070033887278649538018158129021880453518463352515927973306973468492005009255021646022363844661254393284153624345408851599247374546376615226678707740685620379369724854971290694303930932956326071621884743302456471086177310092664149174803054738539612741349552184412171442685320435105057450556811057423782885650992096695691508183573038792338788680261645763741441787749187897948509347059956631798823702508015026341560761045593877296061215691285367997207222713912445030112335329068079599876707911193109330439036274772937241818408788268567250541163189921857251505498789915194609464357429668847441253016180373943133971989647829995585224686637808472438116285472961932623937103368860700833563719871265768735193422330171790370720901487493270256258340505773013970935390550329974519972229396968797896299241972746339548870634331716046894000802633486259994434476353581710791593907139433020183327384228718541437613297038880394355534794503879224297238983605639878620311878941168019356819727972631537354496037721561090168356187551115831550054298227356955904486860704401504821805972910539824981213697947628961590865249004310817416128800629589396359020270684683721812284864161870938459442321173653265746749762111053964397653927863384461967776390535367291029978021730021297094538944115780814834020399530521120993269480625826708782246518526444930396588181617054273151322316144472479751225972930745989106803322050242529927354298375007849899483284463142164720886784320767122084201799408357114101167827647214192276251288809152841570179859625692535914734994406375919237228343456764206929907336666432682611067470511615573120789175827250509618664091316093001857688361843984760650262050888682638295803035265878829729831494748793144913053576826814398368902285433265835159357153402641176821206699449696445068038686124420966027695624753397348056533532350143913025335806741666348665714258870543189240733760130901789719380822605311537024628599361911177873254784268863760549069976826435196945759406022174499043218776247904601572781993970452740932859580586924110288121814434327531994576790557868814500142256396166668038081588419967418329972802902236053129654135021597241654711546707045416629312615782165194282786605931639662903169260420561498583885675424646994676422229393580809683242943577216220188235131975468811502690597190650190440240131488406505728858005038145076673220377363703154867277225558396380168336746229986525324862321641278586387941651929141547681533464672062662057544646065942419767786541877214946863247701866232360182014714502933415981307686100233612045482616847653732087081748543838442406346076065054606199422943038699871331016087894064102187583239532641156668867810487334219685558625444614509528532072970023881957316881925762190456112367460481457262867828372583585552453968509627527401492598106768222282656448089065804839254289734167724813784719173884232712716332047562115576785711653594410940850861860240334890591152448795989146299633039646410673430925863207198100477871015193911895546165917274694557145485279040313200416077516950841496923638100384803982503150747244155111971334654002033075071523032773781981313407324780238783913197799884222738449193493160704052100513194371673457025394117924939881883070788183971176713858068408583236767086190699621975328781809196425807765837480282881581114484081093317667684971362974484411388239938612856712521248978069942071508816238373916925198431585674054352179557685773481450261639794573093443146728445504068158382192818530544568941053620843986179403533325239798082476788527153232203708578359103253934943725306820286961831022091778514564054926524509046682694552781686941163715114549476271504101310486862748415510607831048588622654616914454682104955753726712982932206040389466622065225610348764379320566985930609419765368585593168996516782251175941812873276526296546783468585842855169364485451204637157023163923850155241349911402818150305991729180601317429317662575822990738719640879148651351355054471544807551916418630379957026311601543276349860036260338998869652908064150794973082926185168693642482060943171141182744628451536929771513456444817609595961192712994142457305345100015495760851948592611399743116346539280928701221256112918505065542625552550179474671066134869977147899357320662921123426430273953159346664928649513300216401072097285155457755347606859462813284440637702930541608285832916685153887634485758465402982470175389275880071164752563623553071818653932442944079061082076033254202709480963180323558642947273941715252190424733910869484228831786516570513364114726787440523230313253196510929762231249962566905294834452986211941222171715898116547321365883378060945249536993160846629623834106510086425968279138658567622748560048789472318734660861780067120684161108800767814374514264104773606644796632392710943404857573688658481290962116930490666909308630605121725069446624674915310528803413801955012760644241154122114919021618754747568438604814488329492883195638897664155072560864066130264620780579348403870985547698224807888849708602935098801254877008519301210714995347570562344285771453630777138099061773992638385674837953805087906630823254665587961658674839576673969440292087047607956709057078338757427129872250937925282820223203075838398530331020333284579118310086334614676123495499448075895234533835797780938655178634000946045531115325064436745511952186872102165463709846537670157639544478160858905425765302635887667065218879659114527892420010762494121514255176844072553338692913809164533955103519793086703637877112214563752392067217613281257090770870521547222487044969156084543115710195660900300004507047932965608740879956918328203164711091774508797414277076012111395061828394935177660412334115448497051680458713526339034190163267136267871215499000465196371482568787889393786865657954493566307876275901549947351729927877241218389157192487637355716621747708848681195908465487875967941727862162030866880117371974146058566043365859139163911723661454981049100671771180810533805689149092720748504233711435526385265811529899603451461493005026030406582446380542342566466256930244386874090801880942320281715882844973411954328739894778312565477887078956427587254598034839102433008572094158656274759841343922603162340136571754611526694333447239776346914192947457824095187717881809537677420879181752646715490102383302955634029778362686036443102202495583266281995330222311380339111049366006146344933534105403143528033486955366692190388022217942483803123722378640611584974725787539145066973950856895628985685773471443774733351639196570033087413620414333705375599367257570077500713424624553890576789632070911479611790136686765708568615308029720305209737686093152334746216679014634703212762724302675600252373685547954777277304851556931364391010409354950526566788635176568854166129984493488371220841814619584265516359343231043954104207453507136146434206280902278022383836241935927048303277354566858129901609571770962691879935312691380241284554265406212629210122791403415502269270714938896283321567336133025401998278567360718928864916119090076931320179284296930022741164089501627793095736553636864706065852627327081636226513906444020290038540371622825508635752101949179040632151784720184505174794771627064279276246125489535663724562087625510256272886447137731331204319884452964293314039531765044239962728886251398313640878911279277120617530391176614237498318539700628762218224738311706980930273693512895806650639900348648638832839627574498733166110050645096610830836753663148885302039672241202458535418482285147394072561875537338590776170513863612064408984388740778633109940541494344445783780320306971162446512538675699208216510299421887540622182717932413006929148754794093502013632301217881109449264038576670087640449184534299059004841532524553352908539398434896574456956191320620207284156471130869016949008753014001066933464972280658588087868939178310025426101605897283873301464206221671183311661701735262518938145121814197012969803039421773254171030604163040200839565031289988260054684469446725627502529143597379225190746158362331311714269304669106416166277820064551501735593056571511607429150207007858257456713968130951514471901281815110866565876264202548398040589378183542212675570731130305812699569006592888810351812892313669304789748135283124454760292381079521805626090898644240391536366706700900622052032203260167719516480291699963847328752770275132065836685017638979950291666886319230896132303248482786092565754507062643229967375322044000997950457012891262446932812075349657884120567131495821370890290268476657524358399447161146242106791621843386823481160638758951552006447957057631778343423852273052746142073217189816940138765864482771402664344665923860387087025269478954807619612948639418561510031869283811108365801609273833950238651334214939265906459558435879175520587942255624199745659395446409285038977956379919705467888917213709502414059903410809948253239049396868482927958310071647782092564546635306206042125953310522718700678843939253294884470871806225784907093209536425780230946644814506564463783481662609950934810786290789741574773382896144373546605029701760326824057404159760857544794106423491809292861131511792680024014520227823949691395808884371491609874528909272342256924260740934220434275524477882862139341937617316006655109145312013063566562217391523079164784641988339771678013111470080477470633181174188998086010168241163395303740228907870342987934641157033954297663287051688603208941777153713246712412172724840715551474249839270392873688717860282067814834527719070137753488830015218852584722328914587619386358971980992406638861831980895877745001166090543730195938960506881384412496853249578687617852462257561618482405390511929178960990976406531760790420091424233618376770239299577321618296023769279053582759117666838960016400958676562200318056857644449231718712444636015108729934430108079144067848408435692482871854461905618281778965466505398689881578727218709567717547998425343409689550421694156382165551809748589833012747208176211375415321596389784692736875034514188382721340674577296608442122631591101151718466516297056134858495861920740340057521697928795860046994861004229133610385626342612657241545425680227050852099460430796598968143775848667628841296111142520350079780024507405443823537015402026464519363853149478983087333498742079386522309416168962963546621997192749179759579656365803552502856603493967365501128477947147917601998795167598362717759930985871619757095693651103089595703495316247398871857361718817404156781740161145221054028729048887097324396077157199353006155628873131998247019964607379404310831793505465509436148257664277143839058331755117209167921775644860042072871282858224608758082985475605796569685290667237369197674329039617636890287362141239460741672474563265318185420354216863162351499252328939775898929115133018713904880345103123714918854022169733752061514340859823012191738869729807067069232100754647590950930120424990099728894688035947987051435302417658934862212295666008205613498297859018831047556703714216123529710021746326719592508958131968149440313161429565931445724893519534142572929209292925442429283784701064188343538663481154398997003054390931593161366859400545363483808358393846216903965410077372182149146980344687423483474147924984307155109493299213077839814639340162668159860141774569313061451148235850653127459471402585553106802658725797298262076824104936531236635375849517189614040972281586293138906902495176885699207028856583050930254670971315846200289921736134970758758306763202733243358661243606947452912274648590947917561803640891690032979054551006364005756228075028728330771486556098288519058152799652908551424001169628918522836301935853282231148401301623775154009162128479100744279559607983476298585985667010007258342340933060892363624231075250408221072145975922540242699724559201318415241067210019079424877745241777336286251974003857640864238720570465981496868359520508259625163558263004413766677339869611264373324513258578326219321330852717129310642833713876935048789737396034814603331585796959985728632433620843053489291389287807586750498790226206596125588252994657950338213463179097492683718942468005859225000495775196360368153637144704889124264684726128467600733294369520096794376542001445448959285016497899832507060782507436602531569381720688953703065350999617779791587939041641874014726569156753360546779313381027873912956946864089368504678644128526893600493265866104325874591516926439090403283471637812356319630910863178675510900644423897433968597383285105505268003940456771861148881978181424935311666719943135021139201245701981960379828247233987406636405860104243630227349284529466563217179018458089121765070244796649419139534346547055231832698534296740649611986860767220325646227804950191200037573407591706637163097444097851602678849086959323626237912933870510396608986222552981096548675720316650658465866243658415639531311982322755668269687238059521652846847306657250030406840469915201708833070078344505388959263831122454150202889450325930535820025853247456342389449343387418952559678345689029215012747369633778478552088516328552224628566814878556467740569927007443049335414662464147451288818145994978869857522266784497306478614239175250745304796509532472684577861339136624138050009808319223639988679979001406697953001597515346860100142326867672951859080424509981770257411569026257497495190143865261924265261457080322147420052656666374627588474056133249068914590957666592696882969704701935434178591598572459996337176625154029410905257082293395591942032770441287728902256878196991512441796066846235808869643835482181280937312948779049781206476453349728802339544157212395603975100051420269842588264665377694548972085729895943171523850200178551448375861233489017235091436298535734681900896996797606455755716459967880127462248434068483190565864845511477575005041778487701388123725064387059480530336100782285653005847429848483380218936188917636520610342272008528036569529160013220644699847827271067879124409671721295046131429373284223455732781978035611487623549428131170225654789738096004687906044201844187024641717173405614727554957135355064404378918729160910322477304809008054418963618007976733406958458694384154611046200968763846269521822349069946334626273632026514886416350898971239590796293989299867445360530533086223260108225641512283630917266453488088865891091170675901417098154153840034860572863249074563191390945754318268948468969243752662008836933710526795490604843362942651120150203567445211099932070661352889044936252947902757913006044334387395244750309240390217955480271593434389816805309668205428477507962537144914026230181029644094900674188412041820360969061596832114482458245039134244425820678124081082123478005184520339295115694788232423838290590023513898481774848569262969763916402867188824247861699968381669384455944223208761445926629029778302065824819861576691075797043212501807866683333823683812640179091993720295224379372985734635424809367349604400234240333915531166840705118462726437870543861666020522712253137306270374873814606348225214947523956105081046626214919792653528832007931517480854972728448928779533952173798823110884070290112822867494136868364876126212346834031358250497456053712934249603742544351497756043135551973796948916417594641582735347428044460023054697630229708534719991728899437157626316859485264068663522255002044963011572159156559238192357649342955135510110408753478293980796305154833429952202170752900617461394464809632126469652584524488115441560018129990247671244763206897952778925344789432666948026921111462771399783863751709088496082020072363429316654010935112600924740929215233412416514601271536373824462825457341869368536572680017658642508073942171338493173794374658089752858968828604178359981337037119805699378056847261844959403926676275787472330975529082259028045870588094981595995179651225447784746718765880997307199927806829017963773095173501252555025297417693762388401532256958382110362940514085576245079819190576759035348445700668670485049837576371663962245781619082170196071212651149763348162762927609217404471569693109096865293634645239495336017252604445706750324441664228881444815328815590814970179229108864309121441303750040434053814927815006223114951344272012412954042168723973714392880650544763346587061137568863643214173601535515620531240864889355669061363575177536231866722714358311413977170506341956964797359711493639692745885430892659554574718931600719074143918734285334738231677133562154654743784868005033756620145536850454704002387771074278702337325907258481956526045935298473079996507096673625482884567924571051815517948561164417327926255166575185060095624192842338465008391784400458605692109917922601256613773258180690369344781257857870665770118370042120351454127158923467740179260025980297786781420268386544739313597178535209671394625303988509822508427697840856471554786378599511866030919486006376763172235509955955737290102050844648120719848646770635626991055497969900025632458349562416457519475648446211588208111168754574592928805991358311451347951571316047633597037963710628305675040927816125447834567979045922424343206137803811379925016189286052642175760827591525448848272808763797554273733873217100300278227598801029213127541376739094632469794767988094024164865355078366858033953726591602352390291675716632232947578434053504504044847214987493604291900641432229326334021185396823846381883984099042261180805018387103049616575871130201290089038809145637787278928927011648875799735956791666898246067177585676851068134567700564886015914070080504168741456666061916696684689441271885608959450932096639917159052312351264049033920348099755798982226665859713788810667901612778984740866014779206313603808266741895323404633013507974744021799614819650672749186699749141245572819753773012149675903831498809878265148071167664031535668353490716083790685041673620581289869423485732017815033953483889655586538971989622461424987925243899377189525164082255905685510143422407750032901051015113660947474600515196467558794837226916442059856984227112228878735755966056640005917126883602530354509507182056957908102270600482523564590754970366613375494204296832878107434256647378058281465419409347706846654182485898556435997230491795891373477286880753137943358020656052370943739821708453910000862029512932624351013617042939164236826662932673002765025347591338632391306705252629016018844594834893463124290011286092311467769077662731553544404187258367234017388699408284973541909181698826112301332799190077428443087006640518465864146384824968988956899360737061246592145821141556828798104602174714963196035476445613906086234520514957958916211332210270954025660076240311309211219068390938999639599629001744742235837799050590436498770360729867831293409683367157198149205292625147715906665250715382249889812593405473626195924483553746395143471387959499104359030173391032413651868890191916417436439959463062149316402840424400074056232990943821494660320711073764469423895366636504484165632134141464962129993933892824444615547744765284304646413007066132940074384753342338472261706392710571793312742804844120305272605124568789843581803473190382402744686850578579760057847045960141196350863760340633681037461186509171041153085169500910575764623518544119494920492386019771537779739590320662892399523699455772993030075162784245892783422531735174619644327687203599353692660591987599411490212286137660097377351630310894566007434399369860480053811556919820227300162080313704793294451465224037099361929496376588097335330448722089323967622378528943629994143433556829843925281754278648994078072899444417102511707131924355745686675344636219997627595518810951887192511778327312946998467767856236777041642195782414227152234754061990118933147404282240344464758907646871734539647284924059621730441501182731121237928805632167882154754889213394122517347614919713680606269488835387066455420676658494140778355482821272856128229123906935381065196820275710786148150387879068273745014834364728483362332417606412708529758268205213510229028073039362272636099257028621447571090072311033500904001839892171648329558246965794055329223005962636115442584161283051450902532929531526622797167908314774097215409499143806202175880928231190518439422745399064305594236509445418324729698520833223363967374869827835001887787574100906424611413574266354965859675216284340936418331903852258028396638991630468632946772434086012823220653040105956318627155187343742275209568247133436878037925155781513409258768241027212156110692953622493008307511263569962512542233589541544842969168847162730727574943711573961631957303079705419528396808002134413270550742378076966856346748892649956625638744295248554846505555709598239372400566137863917078241804024210805549951757712511012698388269290262453426001675284856235210898409296978212823630400221995873562180390954978497447803415682054804725977190744150409980360205687299669079233822798135012664136708437045403209323668286036189435700706153013549166410287234887515321599205511267694984019981413059109233596144983160218262160514966487959325281656026967205444690916229400285862183206038735437557668943882857429274464067194076839499373284121617890952118841430660938848672131252797297330341903791922594715230084584150053594334024314443736621123898127245950889802318449626425218672267245930755355455776118108669984407633311897408910126682337607115226090083949197176828029185984377492309797094056420396928806829626691011718954972661928133651996685947543159425161224016575174898796814940930926905147523074842554914301685472358401501286519096272446830071820822397411542663501273434254524674308509907187294887249921634993093108499343105016175872711668278137548108676996006746968238607406852254988683153705076349153212705616187302323190865926635552990557304786336502540764354382280964992358414947188432372867167314268895745335924421358207840263818359871715904668034784401563573114223646996498850947691960121670431401333323185683240598655609055787870427153625231416382287867159102516952187337580176034443027058168020170038090399340718992259333826204931335102995304608178870867253282847270601906343341992150593687227058673350076707193887091192814086515623299749190820065224390100797619439032756983252514626156700510844908138623988666669340798745306595071731892745533039996194759977998098355615772376867184870396896872407279150758386416725038872518805179549061383407873608861495671452062529755761047990111971357221167652752515814069581957985130817878499261032611848660936443170094350327153507768223485074154240893909678582083257978609228738040219115164134216429451955674057966678064224821792033290343920541290399232530515229819336737561219923097879654919888691330824164816157241210057828420473455173906937907805488030167458091309528816502155031637052293520084190722809351993556028142606569340063919352881807291651082862679737178278822582542628464237025110186937117090794721923399682741462722625878203066954325728919507793106323461241786292908761925259265885353954189545699394583987942071240469028972767577913221573935305930221996817355498662614946388389311720306234989068803822178814075499049244449309508603092427414537957894677680083978496029952546949526661061647776866078871089350663838977416170687818149942716458960994369346386214197574140586403798253088256890196384296011745949009849749707457594695102799847141078527896282870022530250231560071442311454268357122660460055938285254808639243990154122929128378644299864146829712257024911558718117815450949162221155562909996900334843830908546628268194380951792760282579131386034740933038580940020344299437793081598745107285298398376018006194478811414713475016716240555506467315601644181626926164116138008451636656363593501809718441147974618690082594429602625216417750606325581812175482265181174069545164758610708102623183973403502371642351192091743323129331795059387869622518212855673691844148271445639660567766476604077592508595020913500988156163413390232413162912131556451144416761051705407401103320275782815604787756777749437173956863327276344753970565047811332925904229642930024130505187274123101368525753935449304727057878491277792646731304967791485376432170093431616569066994071157050742006334902776230648474651674375004882908319255751731780159955280451190545506544942069065926271271053669621677796848493128908831602733876552993475211455878807455383969439168999898261020543352247713524153992692561198012323721374064959548996627071444727523381287499012241481425345694498740973328836861785647616014538613208389740473102094627784356791397175681650297110723845915171538380442383778122496972395243413451189584714962599485917217490248797024165944919434028727929628643282809663107108428151328101309189904121507085907912139270908020139237422339026783421826158517350817141970236876136456739558963831445329388269397300821479296919929652559634453256164577323452927948732849779428632897066096620538137465631647804841059583171398336808527988779416925550500936417994889722831378439277622303335573392141253684767345756574099638819207405625819371668143150815233016298297875644335046825289574151599906976780362432716519137934747150003703266182264531286792347660063263248443532057046658752992827997577398535250763038237219906498801856872525680297688958826225109592712267041591461914637114291814649102036233021142987776998793811840415914147803688183173117901371175817131199758661341474797784747706517627044249689001503307405238914083410814580656571959676382654484876252247637172433136524024064988474388012557548908693607718349311911402266826836585242115363519794376744568845488468377047428847751052289293612381925963428208441133875380797609992755939026949285193571848877325312939923745550429223640825226766285166951559109893185400453661973430317651617189463210031821331086912882743403929805678519780615663529032633620658263509449374360598785302729839343786410016615471102083509018270268992218819276442346388952409974279264537626724002886083937370279889062886058793129527832844601574135047208994404742903160130837332444474660957961828096624495876920108115889105494161781424288398532620690265442863070029881106453277573427262908527066516702435252063770423352996041193195236956235642640866435480540466291269017014061140350543960336010776597946181094671851315987728099438481079829252944694166968025977981441895542240123887144437421714788547497060091040871470169811665848013558487481131345537786703997256881019850504444597112297311837965071001376223086888119086831461582475123039833835763394246741643016219231193226006097952499041493771856703220972378412551411216815549651253819118459366912145446490994028421876636386284260544970952353599528802199851187674732803182785897145915707028786833139833767848608995418558157571848834839476079846093612206370475155201437714125001528509122411658112723155268764322941736540533626065658544398278388384731137352581728059491376317830720990105679748438096026816623014505580622878913282037641251895817346406443321959010570765625762580739597484583503074763552219141139163727706322656149739517789481965068339437606600343073922241230400811329466759674571146232478911797600327157011405463142026490864632491293004010904314096359032564824565302607654958875361789109620465483891165705993355356555833923966052584273590959715262225630190479599614272803191922579151035273731584550222328052391109852153365631603032257349259129776252991378289007548927933100833240569248117945800653122869882468119695566869988403698831575552210514684583740062435406911624654597185312182183797953601433146513409577597095183254995296110872853301354797542166095019259847198781171902411785144413021025313698275225100389617006948070585283096664400044245589432794042706734572613544060368594575795874641127350461376522024382393840660635354207533431299099602508547389060022729088088396569344261759126154306057743423937875478757603674378915012237880525217386813862289217511208063333399917607954393704585544741450294309261533645413374665831681873170571394260412214453770417088318981236317551804231200001410170267890136280862672679608034886189102493590751480470289810644083459863315451427565255257506201244393552741047392235906537807154115327519807256213316390644984670721717350137492421886813804045459526452704455061947095574324824385221382061192811612193158107918086145571949555204824510804778942448762040909338483938186203824413996627071002997539162770458449588119752140730165839447762763299394937534715107216647161987796998724563042635012572964890674699145478690190890694801529661582966670655483695609183868450886942509072460191933764322455719722757501186322867943636798410897617657066768056519503625110752117886875540206860667915808804225374707752099317117344376158371080893770123145547931152546130665502114968503296036215736613938342039983736988037964236678611944472526742734722952642447140385502484710810078557989062394650375369725916706350459026973742233062851905633638728180679564708104842835850322752619714635283840381127116290762006024195017234619608348645397740675210565694650788289235809075622503743413152993880978762910620344365662021253142357289219957019205275499324645039159639337106054418646391402377850537488822978220951457192002800485356081121289290577611410574863735448268445235947794828177681071677233061945519799566049966113168998562682047397591537154243325230947134020668962475449398547294494481857034411998067964363346749037521006041908526701004356217513153807958363034286077863059317625053351384882018761221114911575241362664832617331443091177595836551251819771774574322998623928155433887181256267705936404687485701253120827760722671931480751434143733133587622572258042776757394662020226616196621066259487783696909639214452902925728729021152765536843071896440683494892423372821780826269064400728670502270210879200189919886524026812311220528639884568328248984124652643283647466301326872115369362030196059711866846471056518318777525927450053883767594365182463723900267007558209824692213613256498006683231757834612972617779488374009097282288416590030024043735444179602484152588523731084067184099027371809412792051625073075416702324322371451863580058850075629367330348090181249600658547556952718253454130670136252074668254283077327420613884750367404997634655998244486025487376963636199614202170250462462689697299227890229168969184305666794075797525890917605509021205300599617274973008567657736992220429734447583964339151442127611265375918364278483945971250324387793000889029005545133706000251391792109169334738648678467561555780558423595458768867441083436835739572069609283432849748439402740746074668225882225636474060970618305180031763724322827693415661956816130241681118747474317901995862694952548471523550826066020239729210031752041765799048647365282392390772417537264394680340401753656067209795667013016910822427479722966967936771787496487854761382085280883045166907312184098537186908883036000712594920987253509174233365733111881113649985043380582270618825374206293646462931548727158261337479064714855558094859055903200386739855897133743891948812730824182787938801896600417785616737963859568330457708971291956221884867918815494112970266005631030613065228750755267747451845916953000984458970978476858567834030599939886636540228194807036700922243990980197308343423229619241280616253399257039800458280969275953595995406141172876661269570059893764832886465645184764152650402408701741800168976763769897859181001904217200465972321955686555226120333529781147398177179412059295248362868837235597623544448623037054712738102795067570011807707432734409576205070660139210975035492305676832875762543862345038504682411885581713707044570411116887841019640905934914790817850694526203306667994069578548139301227889178181474847068697922173894639150283734593544339845553196452746805224017084162409268187088937015137530700796797990572845136936010314576643253440805694661399331148447812060655327021115660718084887335462556878437643201916737708522955949112293524701102515906628778351294765447540430974173016714797605310912758493034612919135803707733332115642828985908162925044228874531284001887396292165503557970105264592265417069305276307511033484880956132332569296551143102629499728389039067360974961475052126072315544780197691391648502324000729006365875971726982785339684499917268098478566771689487464713490387401477489988925266503930882591541143905291069383499464410606133316783550981618851512713299455152047563476585842658746951008542955534504193479614295949018098556823858974183886478350931375551275164520973676580169998244973840560379545937173052442390323060371069082610687548277516370349657867242463227563602084747537388087862294261786795489188894647631495441360808816709582686243618557681201873282759981640081642155877411016341413163213864484417679119519380102125479512058874290253095235536240459295285951090785762653576489245244775374128364829319191435131890365232170882879387078704092239563041225706579212659482957181154198735510533457929606811730959630622177912544958339966458515864794509130611249544047422166188194977486576892134251879238005201857010117341464719014057674151148830175868866724794533074690656385998410293198450356249597667389759385593177605851185449946180174997568425031299783420654586091363419506221291743926947319603906889354796488246522059424706860695663417911109977334610636264912441006903237348533492512996215522617616412117792437783551601964642062553238845697411772556153682122074228671758159244588302073456028475748465572002792462565413308309598846749841646462829528997715156962592989111646497070718649717263786346475714697204734116976917226070583975776223546819941724991598043144386548132647996403614069075435473717137949308038485309752730334376722418176336422867694299254871138214884487625904110769519473602917774316415671019460857574854639391752221817927198799289469466746182701117401020777559572992123287493471035502534818765342291271729011069128928058599417479963896449812881841478891489078041041232156708702117678089374324912498467167364450800101496834470156924632470191492036192527368888281365041173627179538800848866850001308103858424090677271629553042594171381047967329296986573594719834001338387786613937456660173551906626204119699758065639896696017943565446424421524542309092202666125167200598645832731369667911215063565988738831244996770917249880660557881572837087740232588377535754874888419612375481369008593217584600450686607466601995003065758457851484018595575293015735102578203520192976353747363832260588687731971098267232827371363838353421167739528061325364013941281257617291227802439715712068569253582283972305543220822402768540309501932041534060528585561829503391085941638325965666088037396250504039647474774678243231456442786154660457411703440391973598665150129836781272473221353134638261172726897249262788844633460403877320722980875266803961891924845228609559655034276400481625510721322750226563674972273478133588415718553381314123208069568205285509623904702559962247569819946786182322775330588456223755074393612425265914607588740323836087889240114311707360888117950135486709306518399995096300351582638088339519161314056597684490231336803064670411262391594633358917054417564376561829548131183049003844359638058069635873111930367628679611914831285092403003411048691123604936492285099572350763855737763270988725410174770721567738091995105218149770450103549477607589672005190738677101865728165965669116469915117167385016604987431047866311322237503137448652074077272859289145103996938856768722509409124206140879248167730755146913329547050510428714611548565794970009760381697710006056365284057269147200310334346184228364234140906513838427761877738894442201294371240567199939628036636274356213883418294832580199814346916259703389798569097283651467671753959162533204375034973710586886760076382624862522222589272886939989356288099548612299114374199154411546293444550092866064414167844114585888572071186864427326226974508571418838113084899849791610794942433203025774391096859039343473012259085886202091090612379823391331035293939525309089657335260223811994263502388565572700449824711931427673416925553106959698469554508408937447941766739047475688524540607691405721290457944209060151019586759671377024846706013883958743377355049005611438593789062122404516721421000435682046238573156796879962181790060981896201875438695622160158199451692830662443766637703592178273780751252575632954890310730442750363103156551560446583931574894736965122653152116703079707468166442871669386309512987034594301429282422477661551669388216234945499817263543614480989594632304059145170239189504029136038983513199428241838711803045222240992084041473419401375736899575946562902432752034147787175302817920503363013582606206753330047683061506807750687892469021459973828103170984097800774292345483502105864565467468829399893177410932349694932268349724450902130568783331781969218574600067838435127161202617025840335770853801247695999306679987733015381049989639660389348547490391883499816792386408952463422855322056561272596094004978288204552169211807238075581436019531568959274777313076220863328605801645694171602405556978657952451344369045664502876471817179183651416412477438756974149674447168521019924272280414440237099255575952581148387896283686830582340688678812110783840054968411610928213098544349223025708651029790242631037132075147773792718656093763001802712437471505123780264133253707723960144907213832612973634813841112361542240474574087959415809070969546976804354320246078146117698824196201292097294822532786158974830044392401478273681770219633662057128057777273612813143343291994363710085250445755368795719045356733489286594737844081656193983247049430037797099840277838634771062499703046861056243688552104029237552805631228695862933063756627217416736212988381576448250752125364596354224833300534506625339610762739260357802605002052647457060570222856732665671552441021125744064900722797633777331664891859720619609614351593662595616570963207475020285651988584429278196840452455327824862656177589569230098587778103571638636347611993114403127475555966872121124241857584327767866169580929982940586370000170053486512405240073262688948936328933276846394874471896898657189884501520920433358113941437714825915463390022515721976937772043659968073299028513273468899931910792428965793223739963387824575327151958999157474327734524716670838253727125185480256334246296930252624432258890395802535406137384840353154435570174884093295639975250900310825859371668638559563234576557887255773428887087313127314193198812392180805687651757063082076633978177122197119064098400331464403257350715308524194740853886547004871362417272809823583761751818230160176287699460139682217798806811806383395491167838694634693300334739102809478765940005387505314408180862988265004735219564951131212884545401721483471739288037104825130836739471892570958761197413600222576840467206348773573045293032497221861336465663604885729138330407243646529132321667886089563767792033079582444468296570946914100660889217044047733369159397083055548249382478535773705292982288789347688634349621092693709875201017416125199227589129782746906333418093058608075199967969350449713939414368156965577264804580938099447510113874356669363124078108355486523857792696567224875834971214063439537427500488889507230551691123267268643544835551013371520838049709407337101053705894382350879731402976085636407999419089337220331911105239764702633153648118390093264277110651686630233023177843008687796711622311441092049105619453641221294889995785705786781163513877946128161963131596283359407271334880869277224302853409894258349941245149260089878213187275196948634562912308942075960806313269625354230824009206714013261940887956571416737365095885307790924847592544248284286375112142078295656215339769474300493296694679911129994472776598298613766535885643479180351280951648729880386854493490322913991803391062979255487190344149106886042676664250707325190843083144384765227197755823430338181308943209768477310671086834089058952877753622814996825590466942811713695999969296180163552185418853879281652607942624006987388920638542107712747451475853654510062006279972631419076767651170576620038532638053788291002829614549903059887362083733094881114364028065984499617650333277585128599810848515512694333949307070415602956012556460823339875773659009133879520293363980314590021283979391351798974861472576266554173751986503632131411181187303245436423465390963274434268838384668557842394504407687730959561761278183545753584865190886255199360505221194321654223404078380024801334610465018295385250103554564894165039569064295700074454627315444301048638736574993388798056082525600502583182838221624846176929344165531439476483024424716590358649260453749203028733228900716382914932216946052673698246969299057669580616559192644981492352927109098387091228168815371600590685020162640002433823482303630033630431828201109041558635209996076511121160467955599424611819240476993069395953643270859320113835213784522132918141465608262979807852491853793627288017800571027901921562536194789665244469760745613422797031789587373416418530236540502044497105692976245864931565495270884611184733247723191935513421615978307239278024461146343268088251215340189722346520800848555085929314563142474265703363500704453178241379387617161901144482887631801748055096946196582062890613104280312655276520768970147279598574170074410445846348579172158406651446038488725115389107371628962735111047906680655065987742808878780936552513970615022272677021354643288282628718744350679582205127379592423596121252352384042914593078908784235550592961034834388023271635960364327105275906075468080447836725980185814660975192204140096657504035648723460653611870422731818199865716192923203758386095535313846365527608676116856045909694644543440430622898661645846349405294978733734519517263819242392111196482889110329221369461171860543297921570346432664054138990115794965370852116807804476147660811231819446466258553794477014734065904618243199626351102309916915121666860611948135178570452118567413358759996666378124752334722440704915579472288084756731235106426029439003754908083560960139530513261622283413156545500582251915842121981399062608813465692523756822297334933421503973526052385997393587182936480223150001697154915491429225602843959141730946285050608801869394853087017124678609997344903933505720948747048618240588303054671915093643035161369107388094611813699455472606363906041306319856621206990955727978559084535782844928273090996393653140068105383124301410323450456784990020846804738232572943313938291818131920642658338973906962749856999911099491593711231337008828692646309206639404289011846871864675378842204337782049714893937973083178280243046693053420314214052647071767536195954283929554957565565919387304982635499187503230734826994671947612610832142140004751615112876575891822882734556831076030109184137569406564289471397156952008868335836604158748308103953277904066564594042691210069060134561698735016887531746470237684302747722672019991570087841748552042365790462329674974155879094567861372559276454181404593266148275292885902471939815398935801567294946012648720943843637686090640987442349111633907795883627224136792057934391057525163859200536674901210057325647779908893926552347758873975609507172226358399447697831207277937368647056087936412972174207630159741524275847073138460089765904749140623986249897212145886596466865562742074614875751270447424471352922241855901483116214616632370235421613078796567869707162942082432314971540501071084523091996193154209510789798598191168019637121007508247560948646772511356100140004095748005418202405400423186541110330461405935515468648945383619123638960184803575877919847146523472476825656676843023934584618855239381412346877673079608005136301964169885632602112594928635988327452505761597189870582370473272254924178043762085478144490161437587500548242721045343207698392676900265732697677593629324797413543407292580612442408528053766271688905362991470696267895769297379117191295565199581129350079234427860046510278523881530508628621534359866926657065192397034793122630212160027940554610288169531537555730326414111677009978873746007325858368237633705125284994922857565234094451841323982452915540169516215515201732518477453345804106745239734977811672969531706419604698535807091252288421085497996820691035388376957835508250524277294627956216570261755562761033733144238842351832556345550280098252050577536023411705950268617630335709583260725790527625144021496895049131028117316331785674790373415303547542574191569056598699225678439451364359614620758710043492017555922771278737093488029877752065706981364281879771227585271512654813423481500263215611697205874953499284233304104176037683214390944237950051477966015866157916393629502872022106804424222470990087892025454349294899727319908791361332966554841961343045394151972920096633751960307863601816923852255997610749464016695364048243452870161147606511681458413930877572379653517621139459378140177216727324696418778710951619486808846721512578353280247110367572033139469255673641517697174362612083995266385521636761994200855432440045856576855378881344356705454354692771360433588702403986570621386367167253720302001955898520589307320686668003841770761403835407865300783829212833379143820802148279013336593928852985266343845666818652532837920963134211336090137793843781045300627602973524454189429342245655683614149393905173803110608536947779396334238955981889983011215275319485370509813298198036079672489443480772009278214664173699326665885058482101784766320913115165454045885606521220035271940868654000584832392297567550265518541719392030349517611514553964939000727734446152922825659051960183232856306903243568763829290908703674189469843640719238138830769121331554843510448206438209647617355987737969557126101229292710300723720649556682095478415344438117535898590067436145210522819882416149174051463551474511464842607680558622721095749334194597885179463756133688505405389780690530464143259142893398948589183052919644498361910903021880698094899958329706431633649159843433085259109056840587669424200683872580546994339610732943677597162824984514819297568867767377870058712099991962800233891727444207548575058849326272050247543780862386129387657759333968829838265116626380845498298182649395917442247999349862592643277563280547689064925196388200249282728296704437478999509519710042902288236213090981434145248453390340802279005051259372076646887660637400480595036389186573948125931399955685630316293552157372211903152004400264788268411153719115049068585578852496719383748136381016492394688869936163214315854046237599983955534398927491081255654965947010677117486193711193190011203184432498923520035004175314309720195023494064409609344862933054078767505508031635189128273951335410446368743217452584746080145654145523989137795540668009132260275344284089273409805866415070854343652844071422044522578383406767735645419095048927207974491586162634679463101045613182937804935559778219607270961656019959581730037363464807059884289239018383987629963329738716185930164926516321676389787461300709033961294488353536883256184174308696154194776872420812266676670830401052756121502944645561547854887673014684950186809499590086823742694764485744850985491287195659000836916485087791352170130614116848821342477883059338823250375857832722755791911342062368932009740130659510444741625209528456199079595622962250422321009643758417085867074997039565046096581941341620772233512239547736015656442931821415008060961725123613396587404335960085550962198474022754332465695475964928094158971233212134026705451870133133171761880591672762113886878273974616245548521091211598340034895066655850879719975139264400107152684968765546151673070594390395429910718524407354546590444170940922009529917273192234627153429137185978797382182574396962238910149671014982020137943229319958987600774587790743147338394069941634247350982525410695765305840070657636872912192789155602262537247066419461792018746547559593788553989060745139007863689427749621811633697730196245196196971008259534654175888237197664315657409646866363260473183553253796440705671090498802396518356382422759286892418466126195705910246501938203418376825788276302172113848780863802444444400281813045135107989988988741541638451589735913618234980099378502296000218489467565132148152615162887326820525534424002922578159237982969794807662059948365957041974160158920618652827812325703976381233884070478198499848736265178394985574553700558643247304138354783797716468008317593262885667907996430609734378136812986344944155338072859270081630002123039849357684814776587767605545073588111056262224473411134411811903099444158371903712172796182751135181606666365145853603033422599891756188362732293225983903544137223492646981963079459032738861384577020437142109630155291450227782064802274634462757202075240150398273142592403983745510606946711272890987998545281504420356631818114106937405186311163996195690843646841137678163085901922482821985179111926189873422034058520383776398876998440001091057555476858100805362107605989956227616163389987823139257145377961510937491117490329395508824583024014643040193058036545614828623162572362659968267268333053668298405125424435928473320331135251441592924686448667474824256152532226923642972283314165248395300545480326080020678535175424044404437123450613029230427929088778813112382925496514052132163277638462574475498441394976178479552099335048443262629100747414172292343545339430354421830042579791208367950903048321664307308819825508887141643795113704143111803811989240199233345681156149657671905646728240256244980304897633870193817681491610241405611667668472214488524432269704093140883817242147138441990163406764333246542527404288953035995419575998975296663288012998360145217391985371751286861788062094741963650498848427388131015796777913363070278690286875261017883211805095642987245644107517148737846588531825914640209466786027086958964435651707487857252550366527598420028546234249578815607108900824544415083943031759473098780961353113218010802750864412587859333140404913331366011336651381118994448848526623439215586520393419386738587937677504806678963167691161670856547538337853047587652388841233524958467131151653615075292220886260874175499950395385307117489005939654985399917961026800417150020081984160472797771385645968844379095308291367939370806916599866743845494593289116902112505596679835513939340816940061622926792962016238628034194622734569873074307713876549167970924488202759368289430512630238390237022793401204678291285983363200244200442735281150434585674146386542343708255759952514141515078378303273100383037988165730737069962465424226574731687807925596012207867307024070314923375055738341480229817530607361519091270650936771056556816269426199158392941985793090839506705127564250901291213590218249867513688232552275701177748895633985927353577261703031747460355134381867164923586819737253556009912714957906661637845913404636585115356431756427806318226987908171361781652388954287039282838907707629418504139055923971060997135500311087916308522871408892984204114731284545836940776735524447040217352148597907114056283372600786005060778844688885471014745605776453717365395427070231985313253701884549923937248289678876037763047923218314683454421246406908181545670717946715600012277089820428389973262132637128375565210398468488001115920746037569939564942549376147051645853463609584213328844736933831501109092048268791917209536557403965080193657384844147446276253962500918105571913531331717797965784108381434656529758723426135214896790702620187902694287830572517077249031723359428993146690556396311970239000050336097096756321555344445436068481426058044150874496008931206610723509455539508949527241734920255089664317024004466024512900674514982027702862845428235266986322260507887572153345160245560524068890351814138417880969046824640731077027104429327387837038847066814274918857467412457614990014098704603146226751688847346370896164146220777449679286962688762053646962728705781123122057476247746229588298720855250527346923504122982900127217914632819482014493668330256675306492115489989222016964917938858247781910743610764548774576129743584725036523303263438904384773806488434071847594112724332895665975108480913325251760190853278108798362428751711222246578098484463826266926913394756329310669475319564546946731172932571046480696946098823533526448753524429073156876779423585974849575818118399298048508495934795774137143069440363042282968051077891068419140506475959424538360439321353374344933637205471112328798519133811262239771945462270858223609000811071919182766064061184926109150111931582900933353302026116864979416483397449266946298670869127984461849345359853835593918511787544765478006722132080434078861984144974714229764491832824468940181433962461476693941498644118124232834513173020354676282943730852004812293955745857071703177446230599685597160459101778382668680709585430283048528880828646153072440154440340827071254769261597785211015644485507945438563722503380142579162196103079780451076528629617077510625034746211218790922065443640939881302995640147090943930651852752402457603422442911188338162490121691487716265597649780223059688009287586999680944262517132722923755882778364113693125843673863183786695749081288813920417246465877483132017148523256079758888751146256523147505434239200716146734761959988042004845881632678433634617617371775884847845277745832448935487486157794131243554886578363519692477717546348421259326862354015014376468326232576843993882969768181998801314559058150988837002603041110834886433059896141014567979733579673208473054427906485524823201949190472514824943495138798803879776363027760071462207548720929278774478141695355926440202000496510150630623391879937026000806529102874448974300961531476932917528750428743222081943789354386116349185819009638584066270472006922915596108205634714542251202888945304589604597502021392595138954008708963062300461013918401246642381095882911581638516358194893991155615800853779995581000448984894152885625006021887743702855497094867630065372451976583032662908798091030746126444646481633963086774559376323742864274023827776337558746451369048165947274405168606492232683331785612138148364404184828613646986226486322814066326948379669799653779725735468790959120980934649965326110146433137146961965450514045838221083453568165330475794639620319792966120844725068658691116087006713503486295012005251882357552515184012752933793282591171201655419844317276986238679726816088028716148370274863772565849141325971947323844498365863136265845577172102760368146232662433224631391395889361726318271488848978615762508501122917144072093659604760322616158522943817367808305659258346199001251746574613731906009383871865876913550056090273423049415078879954972372518672082867786247447458393907946636402420184333885794538359736215921861203752722121661411131233902164663960124776758077044780997209581254801804576449418569047142417506800994850972414953517571876955180584180155107983096787871527031163724730603163245494407381709821435350181931015105270235656593408058581617779344235124528920448977366177592138574249388420823735224904875923525260350896607758856658356695633278839621343091080956411995240596660690627967412297430788879799637311346630111607823792360796761886524236564973846513238647327820141168933339592567567461395236092854070631331869201415320476338854546089785192592293086566002309723609219829383087025682782427079348761674007308248950889760975387507945910084979531614674346337237020627517126097884836312034785378935332085593774782898478340423524711875257804767245369035317465782652253180289202920384431302495736438379883847169103224238792943326905996209671140449377645965578942411741982469336161810336435622441727675806580433495498118615099847209006284112771739876850036594315667769244166749468415630044777799989778645734975406605465579161567671508707548086034238431407918696793812219017274850335696755443262120275171517187343932580118471949076395324690038254963817875794740386602466257199795961123043093394790740288073050980640566227744870677825038884655751306948186383992305155653720325408213137555471544734695648667605062635563465875419564154210664647947196464259507305998118996768879358616785562562634531414090497695105715851779013145788454864178883064309125389244571434327101401851772577982410879651135241122912531887570513668483149192179430449409409187679201125511155849057473275431489839786928400412400053768638498575864486386060557581802920195265245560456445798535790597634945721539391817318233869668816816837532565413016389648071050475096665040797017141932135980053879663022059531424764298279806561169840229595657325930456113120228512294355187070989160552468459008591748347330291844712331577164321614812115312916394915211673459768970116762029096594710039994318785201954704773412798659416303259343358918133890847854080469791530148194710780062937416914457300241341251301395525955919622743459816791639162371249986837652588539260485776085325138066321674574742015933132231922676231160604824553569204033106779791301948447449296774114073397992198395206250589495575476944963239397324196809009271965346719804686529070337374894215210329348547443253215256354773157235885138696387002658686979936874278186234484909012804468820506692756318850593234119948123932252211338815413893273419536068713677061397522692668005267378057720371386274162499424025681015796127198070608864212821801944779896767675438374509330512664110579422460362789323252011333494813235314174327433040625597634494564424004087314429727521380733904257849899020469134980559473251836700612840545658777342274687224999489321669984114827988758906168631013332582493410267353368055383707998981401692724119317869657007260696161732438047253554640004212393188632894313728665397147513615940601627049205594328930620053025331992215871008910240959342067474186181074758967400502237788533861476453488203096286842140806037379443966307480675915596096388032259840644188811634019296691048555768454285031170978692379803771078941210044849862189974201041234072171170312002018815265191994627117435928784593148730608442134972450710512867092170704908890088612258912092824244400828507924919805989717980826948803826583464041391914387500962895250542385891012784919917243435026534052189098037764460184768948013796184928393001225948964467358668329268636737102586443110787084760176934614942988971143727691238382523884197153439528063695847560869098234809986705471167944091051294411733673780995984960630764846110455342800538504822111104235600069536547765004010515143292322458426361975493561144070650732154880769242835924152946267891289624551924117596653361681211845363690419800610975702656824537207948938875405051115583957967542158679809172671606239127392809583299731638956793313370379373190178829693720787080269975317195780612703531709631851476123508444155995357614603843695388275300428631268787406287040821989709049543925881258440837383783593403570796812978593483742236575666509097428935586592260948120192424398037801191689826514209970363281228166276947569099018328604300960096028515816521769512382900556835474987486921455495431644708373115820455278262958892359405138907774849282145406867007983907147467923323965264513053139983136852290048482120723709434355197956355281904392900925822059390300692528636896349008853839173900940586481073297375812803682828477144214872743466422891749110531417987544099714733585520749323068952092350464874657410245775461141422934316638467997163445622916443419210482695781634979193438825181353532591472401209646575817273904264231052427001335870507712573484926161917457930617471391376025227047507998872057346054795077614295012705347548422646140847348416051783825427365960664334958732344177338091109866542961926746442131263942288435256878023634485932408762127296625611405850169181101851755703060488656483742020141230111719759910049313494627697567044204941798586508258292626723200874012661204708791591060984902643849668831723286056637004823745149004182587176726179673753117309750183719192011572346961676380275931465360093762023979588507259056187655021965298990418572687756854696457056777575194517078918167497963526636747324649121895077362603043075186867995540171283967052496260382208159007007807351077114087151765842439503745751916978502494847804218407438086928373985862142356236519392482112923068430687126992433011011146294340089669106073058164887861151272782180752419455066325546150236040311390833899031391819414108903518186130177090392456759354954856741550631038073308678367134286833147322003915921673448694936085540001519806680387010931867249369046061420352478258325187439222220762239559543981476497838749194694445037781183289101708232956413915868979957147025615211630923205885879672382928691895015260618538300056602042660558627681715279370683426115621316777222144517855259028368558018840259300260042447908009512594845194432901014467902335300006697346938650224854493884544243744981203850230985549943615300805233038741996748309417352170544365517030013316418436685967339222601421750682905352321542355023029134515528334956613230232111629500474823385673388448549917530641230376978104757487007860122764955464906348883329809818845948684727089016607369486701077636960078420735622139934910653928848349499352571554278560268101634117462766235541376492181818863086234289219190950038593590613655090927858321790677812029527902551064663956094434890200244084576153351732989364214414639294647843427027993933375195736063142991327730056697226819317757756618331302880697742304831684911327961141100875993894936934433317466266809795415932925932150741903366757039630793724195213364962555325622869974512404951665111256666257605860226352466697067682214618684121067501430373045505620430840749293056875150730369054209392384892874318135586965833097747215553061715732055141815866911052674620706935649977315603035255455941125110624257854890840991634483640982101090645172117714127313761579873428366561165100330050933681979768037581348446554783262306977146734355153488756283569445461093481403047422195202009045092400004090609811789043218757674639828317898472537383253473691083586720019717304811970216276816655087732226343450125104157521499352448720660545513971110597046908829023898204441554888920226864260731581171950115986233015874439206779064983112415360250263359319866719274748037920087141920669167672989204789158818735743317722512055972181537181429097368927082245024928386262292852076842048518470572826296767935301724302395859786778702755357281082306164698741421437982911885065926693327693749236276957756420248199044086880603014425949980044356885288485917422858235815750041051180388849772083800223632552905624405114319017418425426627200795228769435020355334676176179438744978159673793055777078336622241296005840736069691626723255468627505926147426163110740674398859481421633587585394719709535610179662888152201549487143990185473599507043461307039881206330640254600794174974332285001190636846352131787360409561080963968801669823772736711749711873588884477366137709241188488524829002921323915951390936739271030694768380620162360867603579818227665279373571203683374796499488368984174222917598192687880866063944098886977948258934080127295548658907710137543788039698902479684089778902902060677093719706477155100008933974838578729566792700416885107029114488690734563713724672936410110736713588909327599774386858716255897726035153255145382184482814800342370609041763341456447563484722993599864321357088681136225350320075240399683869937006958281158540504494989540575640707437652526919591521175740194226040832638938397142147504424056489020436005818919725452838709622982496042762147690622453844352690101848110928606658410312735612552413771553568393871332448157149796952235578964947671677807559864617046458725415235522637660439216546907652755831813448929666594377534876999476803949319931836505127337857689209654170381148899215710916399660663954323419817001772605391580481843330377684506179386041136399182294225927243417617840993536684405108504881594807975606498584823802746266477158944939819543328464373164996958501607350976090462331523358386376796000777884370465031790862706106132657752718270891166465334286609874815851324780304985382730374408350920877823980064004437476266807039647577926687626390915572586786473257412429290451757101711899511773798272989046721850523542589279291219971693829426583747780320095594672612829000598986481004864037249483700801514864532724883666108062973287186802607890001974613751327938024848053505709743826359468584755109111551504135239064056816566275943732546570927881664204412559709887290973264584287905812830412351596409052713434446505385170284141691514677102202916300169886137532130104630801671955521855663575932556146733180036671345165450591390134966878267823977633044088053998906467842297826256239725991074074807899167299266257302330983454942221141192732243746030058631641126232416477456600253732393428549327957446494574816757702511316972361929624631432239476605088742639586830841596634146260765106778505292706559995288243518952559905128062935865518253675039329679363603329017792939142759608263855749205377276410022342998242697433736629006548696970503322185646165765098961884084689226412676973527742068072230611799168531264471178785610893688134348545180280809983805602588827062895663607853096020868678187080955156301541173257208923762092876369903985454140678733509820037319915550149598663567604215343239260071628578856764424459276112265045014918768756492647773339953614477861699663602645332441447537788952006518732604129748730090273761296643435736389394196598860548991363094551918617853081174418904233434573238016783532894472647762928970900475967798341430047107258081145184818134511388057543734500172771583251700692973155460964818742967297788975816866624296988773506500705606197655043053430667171379152863963333269675189684574661573827535379393371155359981020550299941124875854139763946076790099668982518476638368125443764966448383441302834617952267801659011634811310463912340186690086942490186047695429580074783872611491863167384256263136879517640804671953696715875246279498921954172239274520343161742206414112648376339552943266100336725246776432176242902959427669655713529635361206255463422584026525628283616302883063003861485800347697138170699133301673627953047610032982735269133852492551450882477869804817182888548205618477496554604168197364165840709923110418561129270557889811543519093812359517116969238347286029379754644349759267540437037123491915271839536305230214668936078676710081860738118820867572761521060690549208506746690523635786801740478670971523417302797620620494471567060437830477709722313473154446245202759034203371470056826071414006041099850598852052158666606148864950222651407527027513931239553710574021018521910023218031019905277433684547291647338240428655099892600915302219761044384305647699034166312735448749140856847501556108643882559978918558654083694522757027239908291303428554833490270767322897826249641903859618620532536549802299225507002461422116421818799110429064178282227655213832424704045238648714409869133136000436594333145187025735476915817540969114055050738086047927943029302064144233327814075253658052986285465797477106769056695687412303783064950040600342599932249224718975236482887110582895196814370422610188802626196244606075257171729835531061357653770231882650246444093995109092908721317262206030481791345377788096087002349914160698008042834586419344494443712389993586323457226206854962589653624761574765123938836783946056104542136332905508300251270719118555429716602125907161560154957251100337339622861811185844319364562758965680960262808279781355870955999819759947981620458461338850821761055218688765415371247878645072849833125030724427420977540175191132427176272934751096437538548610698363705286997764979824122729600250683478963151477210000390214005388316116222838724312086643769528577484125234535701268099826626403048307177488387982352971674991027430458716827675032966307206226214031081442698917820071291534957896159231787593459644707186759361123219946584275973040181923551793462561418398661086760049116234901135646510900187949367315016337651980326782066380724302276039813293603516642631158373891334759330747388425719297333841339328847316728134272926427066893795161202073291819846249625235663047407978864308359539203272911339145523940330800480960877699356239240701020625806393756237383938340591128163159130466260310340149133533697355671080611548292361012176880009232794376552540126111163332562796055587037613887196486992486631610948511278043133416067052122877900983362439483455525886607063337554245243794219383035656617631516809180545804911848551845036213201267775350891090442437577382157099780558193787120864102551257929625537055367469175245219765408655253197719468690113124747064238535647409780593291963851184739616999401170383640124792653505973190941582623357570131072638466594133604572746663686623403077940691174868928878862957594315338502760042989776069711603310417763476071629799250204251204740287500368432291406053207192010065985559056507075363135790256561308280688377907120506205998091226163069209519055278129299337743682384261331003320114732674967779684369345519512092492546061067648572509729179502370210314678044954824547341674466589523265343651412944184567345706725966315403868067530584249235445076129463186542341156420454452921550850016312877902323696471854108731124116564117212309114601722326660194785478821291768950903231669083695030430571122376167629693160713355348658189499738755068398346580452388785517034560155130144608358189716681115262891772222110119177660419581805311596660139088144534472915761333400899387584896916629116295339808961812676745088274147840822478939833014632512975836177073096497567942959005699089573292259209510498971611148622289610049188073176373222741581671836299040217780837596685123295213044266427928957568408199982474195423925763521375462876919988076679018765999106022874805529096780847800381796305982724632204742246939437621714735681704319952875293618873326336030331855002368618930682094444444177282662853093869553462348980538325261303810019217195089404495783802209338222507785191231037220272470648013912369204723287963854211948011937745898064691187215761486736506097392916441130369637438952924151799732837054138378823197888752750617591047047197983414822498701287340137885037545304640424274555422259609805160982341880160108931776543247215987338423650196887716539478111739064161896221154447469088335958860586661049987059590993955555494605614634050570543510388037861070831001983530406787098595176926321261775705442711029273657308568681707233702309216423213453171375779946192020852935966964118801885765785490280355543068663611250504672306113451546186234120092991985303296324650911451525182513777675209782752406564642062419703109094224186539877706433200251070122358548909557335208782563588780400670880268194488010151657452739531818427141507983710411396470159378718465742350492666103703379897896987243499004134761685036527307808224770490991268362764675217456099850549894220394319463329993698982676910530554019389248334463500994725023101403682283662940941490924205103933295293973661624898382469333443312962897060384835744281841297326717432803876486499954307434253654558549834950254588751610856950066798139674312072611292742959843602918029030685848170607281570069090371574709725633317379826706182628059474953950424345254545526882539268468074745748274654709537212823295307347004267530110703126678727937383686140651944279658027123531962811443237915803755330737122600646075739096401161664603549808349690894986859865108510774709749928422637318729114782242942608356594022388499614004418633463268511224726711430586778344714016012846680502022739376761042436939630234467944645866705846047183932608962118200993125519742141115390641821587956925575227244336409035669175997487527165088283589898080350030586147093055193596897829832744413381587827036496651030079884232207062940170120026440599278767640671727976962026172936896013876832102830432323391929925454267399306365830652281055023820495622494842274668717194280730035338270942110247581408497902165440523118841931880087484202767015329138218280689580695726054500741481217431497862768490658778432965604463428677462242977193296883241433732913759889384170931533216801234545156259092539908493059705663774718403157617536658870042364313153955235867775880941837307309831689875696248820286291696825676994319448207914709197700497718552477504860543486800496287543351489513822398269024342204311516435216700938426045449656618016148079925225123669742458472837235924337016645838251460951352672007309565559666206806889173584703772601632905057294964509453608469616066961766902261902330137354194887699579884730274772891575302042728417283958508223070579650551650011978032179687220223164216236194566008674780643216946883842765276911147967682094509585777538217715820667580364261440810383896782124868096831998298912942231399344281670812357928934933581293341813521005444329222925061740610110156523256829648310623142830037230915552921523311930658829597417322880955654915888619127265400453990656856180012417259108591622322511612191461421625496819979959726497810519918487281621514862753966879597690798874025712941221209653807559664585341970948557550205867724371911528384091744189387954141742622264004911495817147053235511427931125573687451057880428445634994367726259547094276853028656503391219071435444553433558076165706953741090657652386560832314688860173348809317730822806225295598092023251968463628822862034833831706038919607391458325713383412160158565097415315457086855466296018016947396309449949263053361803009463478254002713052319002318130716818099721390151692666350263357791190312329760281896408327602269722311949109640141573270851160468535913402896255929726443577680434652527560011642001163535698078643175263110509883556299876350311563244422336795710432062549177885356504029100500750278118063886253677220478621146613286981020639437578581549593483840756583632419011601409317856911267437143039465505674339585411920958206229337032692219700429506172099274235855975677849219208464935491111653761702306470315563086928217528394634874320477965674209376607717171681435505182245676983683845810698237374028039351312918005076932275491147238417813502440435107186213129669356245789968394659207747491474073226834354548393220340087605924247634667443378533749892928580571074235821497838852051010781379151123246225809055142410363116554183480193818800025775454092748655259283061336528530155286797916943227486703241984176738178609596688612284105720605581123430533997459665796332710755322746133539000561208981713288412629560079825081706833982588795904932429079576571177479572947860295079743864674363955548989342435171340948551421458146674604802099817825723827965616733173329543372537927909826796860754283272205478904553152359434049422773995213878745806180924168328767466557940832351675982470893715305429217703496563012001791622301634249378469403183736424349697090808807032031074966483920625899612036682894219482823593761930681482774975003301816591944633395934156507778236814019520349586736380036774389537865523155137834358249958585355619468974304412222963221142837100284945658938348482190765948108836540954673117566414315105833467439060557285716497367193016220071907039547701358210974023194091563076661056967531056611020939335905687039819247040551827618708253452240464149312547982681477379672055366508024273568436304514007481448606706419286800155354432670478376442635264902081644934505705156543110782118398593600840030812662683399765982006903251847512908108368629414705893412439119038356476656804057222714562642816131842463185058523802769394526095807694893495007726938233576544950586659247201182509970112308288566402367814170145431117155096587657673190518338043765268631864631233897973339853722439171629765275761983367326002128186399968608587353288671631039198725600624956669572672867388721148906096331095910278905089336847133790688393330005093603583285382066918166059150839101792135551583595003863643107778940250900643103882858413379740754636346736958386561006410257105669242954905166423241355821927733670497033471672645760404527111819146634270772023502560492541844881524463502397934935568347578916974230149093086522223014991071983898120913014722687916310020065112949720107016901236312428758392886911434920959229286072587049570313521939653144492301771188558388645081091821586298338966306884365113893472089859819741834204389360684161891193596149056238958632924452673866003763812330448516708535070139348076989821805564409293266790218360327220104546992683632098216802512623951617404075309420609125106424087502194651913148837774649638322052737513190316610444268783148189839563034440096439804588687054709449875855897658166639035698197578367419229036494336650776142604421254906734537031248602077591603841433976307069864957625697711524671382852568013105403538163900846285842831107019783321606728578592511381763142886830900210527438219790926552916079360402589668573393398706894541175303636066009968795270430761244908416141394120674385615788881976219041610083652088365399699724779239335456907292990171909413945632306061161838407552518717443487678417454891214163892558700786358992293602603070708077775863765304765412809359256309725978681094271752195216338357374322646133414866430674133259589247118722108672937421471989342579656155036039315946399965292370270063440919978853535376674101087565775858378180979580939844845292735728363428831351883383143438014476392075856455417164361595185342813584173331213252864183948792222577921730462687553639083944358229719378395518617056106901647627550379158951061946363588780162152450710568073181115100468178658682382762268140609836591890704915641706604512450149172538276165819588651751735383275368266924570161249247901090702531775606129987611374643461016610148021404221674112543852469414606109688625213530092713359017777674855022021552181788312234308216688924046295941208428581134696858068287415581484467206368169453116593661619223582127834767235006097852489852577772983289531402657599417016471163535323161090596883566623879302265293495830149739242772859107771257259241744904919281190906578514200481630009468399853322074518256671911535888696287413779969058528804926517086800728733341154142348712868602498129670645868636191252967295507301379718924292862576536620731297521734045044986622967710273086817946168374950056815260006969794902404856255535242724888881035515135984436407855520506744536476896555271439392905045667408415100460799074583333223349404402320398333993530570789930630973824075647401712630909967954282340208303109684885189435701373207740513704472553694003213643469400642224715323702028722698533222662337814666672167841388690210295479393604427217120563712674438460555362499350129969205717742701543634160015159153290768909031974744046999926373532386432624297643430220755332935678728309117463225313236278149806442949489150414138392831567829180535813376382028833065060291122884707234146911864143186745615417892109202567662071116566458281008659081536416101628402301930882929208240370580573055071446874962243811437823682894156150195771023754469377344195424395527233745145646999917564139907364132855708055828204206178979182044542327634794674930936515044050600457905988571371462353237047621676310527079509671351046680665753445501245040032916800952960302050761503674251899475652545602340703181220452055414050763841543706648506630861303086687189284019510712456756142455276750335476082668556992700377404975940897650522683248592820479854973051478324716146268791494338589845606737901737259316963618020641716517425323306873034876965842776074424862377847984062555958206067251092854204010260966612127942811456252835532994688895410698190960850090455371968151848724225794454966487341521118184225407769226157252167709992728531977967265368988885938011120378958446815340701700174714081366032874114457424147450272526120552766698542668091697034137997710893533387062561113598358175043920640419015977031653437796627471845877509627656854356700144714543154132670069052049981197039732167707009505054056114183836221287358368771043122433813789824841112382887761473318958557387264128192634081535763086224687264965036191011976227532840014714863046521269591051832504003840258256394499349179874365421947213526264403867078060940989661265766512261059617758755099597137431682197556782613879510088906879934583292485745587684761447365955994958268433504474853676009309136310054737498124789894973714777545528388329524292844770640820162783727056539138540251394878284495501971844924550289151884421755419323832230194602523617878512958507176549180254347990568287327107270797174083851351505421986390399983762250069662785838440138235230447485457123086268023768264139942777658517451514583882225829045916375370087555842428896455643937253286857273407846474546835111622887275782476133245992983621571631244633942167584963813373266033721939879140300211059030310644992253599127994326306572805079033338876559080029798569846355735132397951675516990759019925072250889477340328905880927692018636400569089786283305900011899385608624264908147750966210762273677078659651114839978146131566890592767263097849973235176116667129248493812680096594953277940613626668312633597663710476286188461637397808068982529058789495879050562092603965446113657737988667468107448624496909670727919061463486853773995828761868323464305866740282036019084630097853993241714149769979624408580896749576475931431148743222019732410555384846678636993518205667799170507711419207637503132275744506331238878460917403938648700875422547730108493080427862992881417076482344653074932719120907133651023404470157641964171272479560309541331582559769327418947342421218449862280138920440321168839355282161494857275260962214189353880199319627562082012685005273181264328355990331084985493284635003395847778786111522205248653315670522602566660234202672263818499119795724416872522949974377970231623875450193977035661439436886605079461409245548515990533946951877324533812439944551798314293156150242487310013675882557794184927575981800491354031636976936386018150528286272577227182583043506042064361217408864951393117359324640803069568206839146540223149829641150481507601078295326794305458349461858666665202795953781538749431727612558379642154632356569236033124980260209881748496765354387560984007457558377906453001838470076358979743168246938299650717995829856599926245913403358919817465766272006365938729977018670723621953248079212884580852614399169548747443822873403846666043429416029803215582246308520630872255648870962712850055432516822829162259688067724010114856064635606929370594400458126530223081815473277758331323547564230024413194915419841316828174352229554968060192193780187229081783600296679714501797316941780902069196907862382642950495523302092542888048540474382106198914710050680599317452441107860022537353788588552630405911494847097988751231030886524838327036312503149520713389669189853130007956760445667678740967652280008788263310190102727360933719200370633664666247529055911457059087457214963270793306949097197981490911675874905824403527593057442214977996542705859343023683815838029074279643512164666192506588112480759173217042244358178031321017979399808686526714876002126818747175236196403418447529382943360824143152205698194074239993011602377106626791591997866868518640344966068319829525453039626517818167896145326076400572228111859339107007999926712774293310661492366941721170705014552746622223918254550964370307427371936668033174321929653637825333209475775389671084614242551852907398735676871142169083885479337764472678744286112319027698404526811426465268084793765117056870975542712632328254087069836984785674562134598441824398176090526851393113952114556049024704889250057714766249098643707136433492223603558795184089832975552957043894704045346773672870590187326534212173854151066659155987651307663149125292675407401003580181519493678444973446756089301268720574161025980472596929677034211475699922883017373215225055857665234944559112362176455826511104880623196057578056973593081900426564793397786292724693407298493133729773539639060818588931109658632638068280555255202710179064249747588013201049502097406372368017469003063160051295171740087125273069483483668207528229160313267036750008179298131656342512664362473756870361925940299287406675947030460804992897050548426130921999400124979017285488754156223958187125200633459797899639386882419818966988790525403475952559395812765531478744005199649620885914027757608220124707616026590727453535052874498450428288148670589101774267474605415587486987937592252356751606990666731279794675930207848065756161391912065850649097564972884710712366166014163211598396621830957384013844657224504986568219463667051236994762062991534103819371911611404503146625092713420900996465060005503344469502378921380958338399621399955065256180847417482814673120430988195771953187048749899071644057714414593144960272376728041006277491754895958781791668647724973865159883767084961750816096894004954726296035377606637729519094585002465438724573645551732816440300652047893590490252973603035294934947473982355524410755250783528130034216536273629187091768175326224550308323131526562696016568887323007114805024358637690949790163937208842147464199411150418330844858220766517593776346885559765904191752722245611438333361090191648325365615525156813582816829261508999051356870227798476545738492023206648260069363902282472344489427258208854309646605649142718806817641456752170784448980201876632562899263872725627434010401368875323219046242389710369307587357307041043097744656653244856414966990908548449600980189314320774723468415218517223910569510009984341000775607088249905241603642347632626158953828107517559498059111855992403630444080621185636760021657768639950040169524583951083497526807482571194198163205071034608127022998890756383895140355628796283144467002526175215412988219459502540377893775765183934413311108936513368210978949867556047178159106436011886819901213925032021365499551997375398674549045562335310914727696620531204730342957069121063690408766200985111395198621785856618927821672814535414463960492466430205593052362159563631252093938082844244572631769532169828039086334806468754952906719099738925251199234526137584262786330122447712724517410820187434964651923095277174676784978475502769771557854501899900738445291176651146760389014079067638068314984732325325887790430896563123458711932123793746757998617022389763524499653372233883108260167539994820860434129081127338265933798733773689579783365760238080501628396379969058044356244768739867618391466057686781428470557187675886890082982352293340175251642739309564603595810975084027659863184920429692040136259788232336909281076070090440756657792308496051824381107756163909128491113097458889340569041639249022043003489780894431529390741840333166755148468360741563663220696734369972309567234022761189740846251560436471599062250039882998580247931582302791332796523165469280075962964005545478718295599677781607737659095019856631728811915603332652109824644079971876903410803169504610755747977103985143863975892359468788685687614940214401670102338751406525658464789691746990969345534725661853946962284562686312748655737896968813499575328679901247318960828186923693692330354915059619068150587948526390369997806104777971599915648736492147258088283954567677925042782844399771837814759546260507491486039016562358428322405812234027205199752969746292870287224752614885300126425240768866067667763225365331588720751429631615346667820445345490732304300528593970316175576639090473812551934735078893302339800284267851735701415392680499961646401355531899911135031287662341829475613169045611821159785832589611990193918560178986754490466082938628513745966066618298046308590751773856212689763316664325976434677376812507121415557849631678094433678606132238704763831357648552851141379149117047326535943903315365147043901011508009853982505542855830762882950102529818237217056492531217955118583230165141512786232317265882343255210014168705286883799508550880980022660087244683348927166691676246802247251621936949417181687732653167203791837871264443704388245965461296763804754210212075403172471131820709780901290408603498480386490830630556539063400718365371535983155592938225085850303095350445537571860074221207178226982411049748099494838909178452103229884048183826001510105525549212341126464886047697336169034522632999665860611815596829541691622014015967278858449170602325431750826803720681806677813130357781643505366931911799460682950262520222670383209498627927928216802392070077052244646690552649298594272189416004074864260887861048078973939456858394805397118305610115265809754538707618844104723994125935933612233730258533488481104042646237910671813401302822365766057588177763266298551764869070273960437302459057963813541969125184537033511875849874413068557569208686623530000569979588254978949363369603361652017098721408397035131133786547235410983950020680714056676913215073615124878520851486082208475796616766704754725989305990146591710855904384333387140403056923363837875049858533307652188606962585150672990374912898270902867631552550149291649315683163169737053486268770122333318617896429533941993234410614948258924385377421907279234486820980398746816787350047357219290239058899515252425872023198774833806514896072387867120371134473042831309475472511696990675722186315508622474776402007138288804634020603349788969626096965558068793661417386390114184315969822184995949822813415650729229699008615113629420655739090847029823932316108837214005852097678128968606135995121921637028065559463357967737721060667194287799320081804469362984869020661332602210296704082206996972127470079681745767322644084442197817303241062685057027943745512271968728093647933457333914746765179863230476180230364665141995065852964291750217448451057976090409607357109497059284282821564205515716866048432545187885590032561366440266690532496194915594164299038063983004495887345790198412933814194073986421857344088339458892236039022980203322114306366741145429713325144647597505114705518022378767780795253655038169843266863883301755092647184307089754126532765102632831945815296091302167333149322378388701259609585030272084792750875207694386053367360347661296761825446864945374445318083347698533954269082868392674234033098938350394157593574623376373702518843211128416141580331571133763584552125490790477734785981725827501608976564959839272225043842919039884188533250987921356550122387864489273480760432685985529088950873382284704336306842301133134834286647558110397613432379077087593312606473161677594464477014375094729024930570021408394956176817936680962268286894362878627291600174290596758547664566968347308640107342247261727586948272299148501149747716831110078434759255335357936841423653318958934264042614627966011272427107396343318145317436479494932470678534203480253263722310682530875001492642035759536058151066547327156982707381205164274316729309384801213333960416607016469173504353610600258592070736462420005875432322813662359890831708990620451244889388574857038864699174847740990396199249595610533924145942562649356771641791805296757481132476755558440158504606953963364796365538202988546342460881099402322968962701040609598549622734663910124763772515888780904904936117139315777594928530322061578121704308070456146143649310720753926066875608749683938272716551224364923250664765165910454306744157279333249265173829130729282806440630121593939926646455572614272807577660309714484027374081693670876901683026687694935737378412275529358065532039824509617543976580578341147008770512263731286580359332586510727735599048822494627336329815818612614123088145234540002638448089577900076602250812330112788254047608155428962680517120519012828503534082553215572254447261366518421454669994099121127956867865944458384247728388043401817794107727361293273065619549239799358901956267110006530240929886067205768793614966737485374468646844126716041273473012244996085126987323278430644134369280385959509450556822645922986567895419414905701593811686708441711625851928133290269060063891897118627891348719582583794435729028839978511121906834231412770738369452174563640013176010190483743320548433326348780552983979929888958152614692661589290936049904464854172347770023706471750151592726704375799680745678053193082199746631253815250314536947013713446775424258634294148835198781246749654153927361306888340151566657254712794712757135443956425420439603079305494961463445086993666700154079213254647000578263392320160304458786866497166319996681988394922369371837512810874597983261190200273060848849804817136022965730591761590687230019829533074029632826014301627442200337104000902359099604865507552874719514839994260937832009301575849368494768066789278716568917961471344777696283609405128062579690963228737467819792971027095602644482458720531664933485796713773132265365672041263817470438446665098779477047402334176176030543409590692284761689533877642776191717629337236121710067928140846789196665711186922645046842166832029062968713299140512431095787798700858384118895789830799750847092281071181564511065386842647078669748317433535372652831605812307757366134829526170332801062454200887021150622304187148907298261536330328451137113113949333916319974920552538881826064263718887022515747573159409422363070992643694097489284262111188971663122882356196679889062783002567066101762178717617299193663744287001288301123875596705642015925392244299658143700806647916337691279069055028255012157461936734565768271793694579839859781985113019328232967609462017845559580515936810694240320882829754781338136864356769393187462893420849704664029339514432790786404900126084181122304418445906164934579867159932180530344240340791787561364319350852893663428644504975232134205986682601098933765516755854134570649122831521615790380574247238244064342352729222960045178272861892241654157231679455459115739443767317325187154763447209203178274660575139465591182252795905256223523310723553533873555441047700318992736892392954245131712259341372372193667258420159810377187460472818057042229680442971895196600919257617794653090123063030204847969342205628510198465733624282448221521464151423460556334170831950500564892484080524839030350207548301594942648238052645612069134583931291694940512642300724050802241678585064932336016431058454248499085365787032819285504050388451834779807055530313436556097536154080504672050475328949015510514100183780131565137537382733224758000973895345330002356444295422059173953090629402052026234020967844689549982037494777592132501864163206890965841365324926342923441989587720357455332746358032844498754007279405886548131552695334261706900375080881660905340517619489574986665707390822936493938143619633651177928091571313350143591320910728517469262423614541708692499333170068761436820056815912240330930311610828945852056639498857502523706169899748057942484066058155293933895526092437445159888618343297044560525268717233405970127826500959211685495100573908735093278920748614888762652933101949335873622750348808852948757822441161089821610578695475747572253143196849533423183773943638564260114048704594860731952349369864202096245941271033977052650602587612676443616040562986300029165119580346477808468692294313781279906408099775097190313343940558058096565616737788511711871911406973962506811150033791364827030841319948666536847777747514125920915991632555228535222215067427602926126592764997619971654994598905155288823486696704048516424612917898846689461712438529082663565752309953368994912375909498948238285007108005803965195120754042920056292490505885792731965731260788578688378189133839520614546397143192641012685190352251747374275061840820651328407744642304651129373779383066665660729959566264209685054977304153267352990380530709507312892967131048743997417735800548659659301080131283683553073949894763102482325990236097692631637265814803636222555048908865547343431293269943936171201666633938130952999501632045300166776593389606035628282994707160938307267422166596804181640767685577772355077447599644149855239752872653689061497064159307808394274478118644188721544951640437643093059872788315415842782026361804814164621066482411335755540004410588183352937820834424028202616315906891414629136373553646840055668191227047723840445196581917916557439994131359603404840810770559742985262163401766158478349094562301677317188612397010517473370694028785202014386615580732089472392655854390777297312591333350788879913397222671866012950031700179876871735752805908390614755405806411688866527843560526393103684902609956058886019760482956897630928191900379917267128120550083910133334617497504537678966552683542618777264913001825056112286079813049659699829812977595318851689540978207374033392214899459861189846450172785027158460739807321637916019219376139590353357882954363312763600315583263968766109025703927982710547087233882127133799939059705854377894001571894441358798866295997146446370737863317068507217312861490811254738088681684098585564809346899970976265936837114167690989560171232723929709193252725294352201949905368435706541203210171142252028552593546876972300599936495865415871829170661932719319783077576304769526793719078334686780795966532420238719121014959525597791436891934946101995479626316641181502144685600900063287082462261540414009624767535965815201995692154680284408885957345007157213765473575174154787175096132223109495323155367230698399630383164019348597035765441546824887040439875203609459583474540416489592054246174808793549605783555352434492930791099995386180896005979597279868249670428857628945475532849624674128578232744012575711658617071047687364234335871119352741550346681518404901968298868292820310626479795187802456800043445639511212985143548934173429919411365330970995059386939246220028111366927932620793979045028287506309900529633167822353062983050327724001046108200880950209470727742335857382572797809782658970562514746764614696435401769255863576950899718232906017209803652555777758424803934068553253199512969264751632192067353015173441729264889059173357302486871549218107183604765552829011337753077871331333583919492495419349120904989608847979093545235292835833881206556846908376046715416652682290753607579188691267344458773407391801703187672247627780372592151517151870479460815781232031786707007254855566057337996426812757639999575288349907845969928386023452231556018383433816015757133179253693091243583901662146844297301646650287158928889834955405467312041252404470112436362455799581563476603909634981269317885395891266813467831398980992282163155783027163647286321965901343314611223840382636053006597085036571592944083907297975437762509865211694055283405569563222521903159661032394329675729150449632153999904939086519718896614070431035820722179109218018764938526037524328541426200755072287230863792303294202478128274420212979474048388793805728981211103606002228467224663181402025133673588966361228583855533615376752210998044118548633146764266160812845544938566596610110200831631031749620172391403272362824081235180555882317925776453361998506034283266499161958574579985779008342778655865495807636541267897414339681984615544101129388203823409657415230127912737110709036038814123126487732701898567134573770240728195691037554703946508691273512604732526125554936791703460651383822220717860854658173954238830219777558989321220472539892973038710424692977632083983036076946682979677767092825384380065371163591974299988127868045049686138703405644999939164182138720281491694742341340095933576351997701447882197734735389818853665433411701145535258767156005047337478646394756047931022979038756103598384463008868366399053364069688879254158212872720984474987186548163819767589153054005150253284530155076591361200152092404993052612173673316635879669144694080684526697194671754476369181709312348527262237360635771266787871151509533580714265352620602349238384711034374434643009241165161489833620894889165921722169088158795571316444383649293229351495902682930280022624135364289027517883121975494161534816774068665914221750459011082027010515274300068530365836089315984652488880709469337135146160395711442608737206689722701431286032483208197493095360429494270195182423181187780540482321969012786502801088833303060597525630703841598436941152834056606487369740198686302092242427391906832900448174058555563270144548514227431596646968732295200694289365315862723342443113896882202570517155587048625101529783099591654166211190588507693464627956289458509350443850202673003459844739662882821830790108783107141758473216969935181905413316427151963867299001456513469360676455949214262735718677469273245987981289321028163425055150709396505460984112479792897452840234092027577315486147263378508995195858956383187825745635212211902108642268985247234577183288543174373627195871267475503038159489447316811003139694083600847583763760751656876895398166200045587927351941155257929955043764144572070979526983420471933008748187741313430326769752512215477463966085250472832747443466155446757221326730295112066249965027955533355884769773587715864407265683319170858897327491060442078405054082805353712565957238433461501483959390832400259865155029496360790440740661161378825858317463960609554415044085995167963417048904141038386785456923302950407734009361234691407178666262229825300346686212857725092344256105934703866686297463595366478019774614833415396382380676623185694585324144688389564777783755177164690068312994300096549002043042765350672309999448134429206466349357679952267254173806243735792903623986161971153606678181764118842535640344391177613112768511806594843034072286444786319126867688774241305427202791825800503000804968217089819316607564413792742486602077180576975605305110342441034144605747837488100529801197310240448848173255964396611241202331209269390771850574994540220443069482002117035308733472100804819597576454727036338812299319403325171247949954699710426356727551893293171920302891279098593552231356287834252795174683634506306461083375418442388308042811392000231236748597095620478120731930889631118608810070467675722882947086101321718837470683139978676420534132971868700521196503712138360777637363061039982061181809812196741072169063604631882625743673543012478671642855012865856600434269047513415268389771171238193915888908310829597476458779956169478118641336591919220873438234234915566002380981425208704179613646207871666765062777403794489907726503128739116461042319883740331341309061290776982312263968224450327404416101962763336991293159735456929326876264978385646746581278829421902036443536570660048398449024110641375588600875098186589236662388799679541263253022267672823247171215648496509645331443026216007550335007764105479116024080148607122384875707350530433329019519557894982095371151047260649133391526675254629383500075509984098008080332438424045768844214292165383898915453849008375585574919579802877363470874266013797000909719259211546702496812423054583310065995445951934172541857397526567642357421897981409249325826755798850591695755853498588054958197297461939898961710898720055577465125302095564949550832546467196577062844128939198584246782009346036401219680700297367209457529871103888664284908518124834378306751977418151431977869768432780783765199338726339445755563382668726499910546211346713584728321782288520493144296406303047578015881014183281197301343878753685638921999904695217350841697367264193381679853034136078430584795367673764356588629032325438626637732111122290949625741213926701329238486074948702017647466934619501132054307542264661002507901007092290313879379758865975058387990500919029271308937061533211843580887243637554488989532715718437685419017339336512970748894338484556086400236182002531282665558554034794917673652803913537473162751103711237919343498360553462669960139388873256765772749343485228623926991554506203018630854572241955878356498913114507285427205491597702939418403611124630027513466658411555309113547633032744031102780823529986221662439143936749568309316554411125420885065111816460170781273626185001555963171030542653568482959113826820005428010131587030664424288374105639682754075676478576856674028731947515811684518081402326689333395339426427829684494316418464383301425947621376444607468460472279097834759503727155731190418573615443876500262216208790602639294077028430873003564214793104664362201911311603435886491065609292259371175865861890426339927325613272536236514346011712670304567629429200185861896966666539086875487779461286914997709742723890853005352221972106643088728652777636001146009420239963800977642098199123237725444439777425160916296142848734779339914236671292510787921481391846561308725729627003040664476383557545547475392454852471646440008699711171693747858744049274498756486953983585488315385417623094818902896542518842720355644042897517451327261867209837698622348737894005511197685214819662171272970983630768624613697350183380550716373002292299379199275317332990179493536180086480480725326724658731408965214099179302103936669429220535579863058811113176747556220899511914136396290720959342685187821294371753136689444683882690806308346258927845007339901213659926644860407209059203615200174004574969826279978550809108338780419602521858880120317268032229715768236737477207207002981679068019363121424127630529946717933788416783043701148315903600155244829040657101062355322535568144392244248358488054218492347857505202826226998687436406876125539372185772683795350214140645262904761756344797544368461520108344926962428944643600869824367430465815441892772942090377790394481971842065027508554948791194095768204998914460943626698714609031184274179879530299620857497524371207653348084750524096186975263712713142913277731911242823877730389926515011577589707918051609854975431474219936918685228512244472588635599919564096954617038151017834289236829656979541974241283501245338370479210773396033050869933451217116559801225579838914119108052278768109081088112444186505911668003064871577612286044012635169608554219312453686817474900874862385479977347712830913581570943927995226620465954044441627847992131169053037318617785123322101563019889349259752705743690103296720797816354809250370728489702963372243777038440607648815151508997384818212356089041955830865509004242182300220540949645357437476075168723822399838217804093712662520689708669134271046859624041334981057505664651865934899249476781428738838239560238169736714558321915586718729940184816726089636177302050049495418241640550449145057048028609110466991199457966107414998844942280487512899409330583004168122656860800582669467352901556162682902433937794580142731637789746822088077238055018047540861622895908097821310164949180151704653667553836876574869635676970613812721586363667555633464897586578923945024827348825918380982064298372456017008684952001660346492235637624561344144973949509940966597633664100649511555857237781096352026449238505563247580719098656784663227941266050997861156426836146854885098645152517604259330915310559764344196263239170338083603745039555948539622710854089351322345047439933175682566656152617525426663402872728156038773513458646641630483445410168600341111738294020889275563856495926713591445186590229349949248501477596069034839226746732084158211216013394768419609204073964585313755383396534305845100171898987440985606384933135643831328286726161153199507055403148932900845526003114337125819699991062890852166560692689923994395449211712750608244202844194293453457717514966974333830716548690773426044231933227967596657882705155363447840121045831743144478822372920267587474032200984067060530592151001331950340065475494817390391714786165777411263067243204506382344144216447365939597427492015683500540487473112823070337876324321664572139562114219120021219033890151244910665109280268921767955314912926934442159898327344129585660165031432932896273609067011985304953668359380182252062302021466578006899829139763499219918256991408648311709239271818861568543724008335816818743972230511633932641544159709000107305902718953263236623924705777183670015824518348986913568686472744230657727013330938075473670129936954022919330001532888460810185040679947769987997506130422632199924782230682366418597204490938373932970487072596105243299032200096594952277840391148592896006657495882768455055952820628788912607425809531006791998604219436450516756009886206045994019239000788806334107464599047090775094487110178942943601541099394406137332037847870914553940587739210487825702739955808990309135827329224077632465440566317205984769091802367084226618421996099943127681443976489093882599498561546156474883198576509812613077545794375761139656204142817436344903141991101833297095000008385842800781622204058566591120103998708013558991658671822647638249094661984009151000670006017277008973716108690047785315425016537245809297890007798445041144714632955471123888599206475767919657620550331066959722200566565895192197060206523236960860423803456438057935787536003066212293748640449439130049068556505288835435219464646500005707466912799202155386197568947594573119645263150956710496338715279709338581716548916290794074219193535926487263215626067115638295921908713522258542196127934048440455735230343317675020508798303465355408310818126206125686273907556595865744280395618505703299270325975731255828844520712299938603391104338269887312527733187889947738258746038245391757181288061069211661648465847597861223003648151080218289801231413253777468626482110157738747752033927772872854448729789743859650634896961284558179167163128003073696214371172219635251859620614868099946523820384542732713858569254367717101866117070007746181438146539327136051946594203028360896345579996585503445952644218128384452502072463878321726881553063244671356276549410397000155013034284958231622667763618620373179414513399883105649633204249934777853622645728993835517235090249455835965146058713915177544518580250628681674188909735333612841858857023143697730277221895818890159902687195858309788095965449701136155108117521176859759107597200800288440058558276087530158654500095428597649599762180282770461880552967956375236227702123531560575160398018624906387267289175293553723731331171404176911223002917813596080887307266125375482365270820557915272272003329883159612757578556388345228301457249203291072592677523413990038807370757824168230686293127031703953120067796208600963905712481106994165068259569648603007085274145431388340923543367578117962476528383547071096654017835980873982578057729190410692010371341520505767328060522351683306054744331892979564720315286998570054761098988031562213373686083044239953432645820138908288442699302898192766022959520546269767608904717984582598317601574112187420833572308555272826891630395007313467345559725208170579289531790639161790384346979989814069966206191087149442054500201977472270445768897359988966777531623790014318212599709467861757217861097547505195621928513602520817133424071979945430241494017886723665218307370609244540036231340284456199782055716064100219610550744564167649481086007617920187846082994937713653334764410374537960657918186186396034061546124904255573861672756542933011501090400349131480688361607254361558365504810657131229407044685148784748376857650949019238932389945986260067259871776528833106499505568192037133329138500124179500576207391103352872320270564847511666900513304984592430942434244470225196505689231542394579332940692927437190785531239860200086815216881582968245311860730073650441271603742146854247448653691141330944904281734253592188106272472260416997919454071496909760953736282620152484627646858776341891967433719565221593737252652490806236243610367557029746878064240352623235445360249278787243093484370613680971758895977107334189062308483036788514458864979116903971119926138927650711081802770078946171911657043055355303887997434757857512155807471779925397779229947029974694727272371060691227145319285784294409734671465156243894275278187245189174247952502292086556188230961961376124984908655971535178658806812857530251386522128731356260620385622164104274195169400351052597706117289401967534299098460237670752677441185127146973508480853666153805405816258553147902996157771452485068637530219276765842052383201162512416127232954357194221291811767329697103352359148703202702911329356116209868274917787696501755088678844084286075915016973900688818406880018567118104142221711063630839403128742839282252745350995349726749885190433912519068045830805175897186538576883356297262591708536922718962741139918585357030895448855203330271632954641678137038541637881542663965476445719703844944578856306091450084309097525496711374699882460306957279429694886789679126416577948883702782235934484159174644913564477966345395784678675447174494531765996754311992828538823670023540453319376575898733419091274147686672812561517463453406719380926837002890513844127050903628922914315252645175963255610333929299232239106775257009029989856786797289437620740576544506052332932168887771022262639093880884062638680131172802001227076670849903252501993283859879499381589107594736555429020954934719080864399515866370695075484731111123355703890937095875980227062350586625525360404558578832138292820934780927306039389650673590523996752715319797763989488167653959010713432010419116743401740546085612689165655997465852568283216054265315939492641275338730068867604469579110001286564764641264945386792972987238834175989833082815519759915162756986833261036677416091324064635258308335780918335123746894154616932257502384231293248963021687047024207913867575522038833047902413347732293838688794809122525458467553425735109771898861878853946559127767796253451529548917658624852931981206456984108411864616930662206870022069157955648571940256160533644490696745350684305948653913235609596251672303946827980715668705374718254664561210157795916181887679213859836841003751659590122576458198193789331349636798774297489286054381896142618806817488731418007895891995709638426310351683116366343860086331418147111962513360944858195185754640425854053611976010133226512742421685692208670688938585647721428524797892904510997460666441481238358962806686674268251536457333019723639544503353524476682722061344985439698775649804908287884839750048838880271284802499188515861955558989976439485250993092571446369863436584519496841079049261971407854422124818519307258999920534136325999136938671582936928111122426273705300338502250401217306814077602876456020711550759695307291172057145974619618072849612492617032674260842132045495694652452511471835184387466717418173614939845978183742305531301591369036778852574358965635967195922297696558925034452006368610394140238905513612216230780372782302285866289156131418216683416668984664662799737291508664355393660759872541969900724690989712468719305428742089351911002625015906581766221428561211419274861208044712408183730961566308004766535135248765098901141175244720735455360721872487394710497721931807053826809007316816923325242661861208265943894653830374038640692450476209933636450191168279470362205647841953711958596874001976920489890482921395442616389235159839702623183726660702374361146413018375501008387853788077025139041294237908384417071004329751979161760198559706378174435773087105864569922203447480089417984462869464431216130610067257542462954628962821889169941341717252979821056588181383586689013194973592380978028759560185183959514295027193184706353945207450115432498094944970740106544877452579178396934016372999378265405658293125489230891727922571759309561392598424915181202748013342442574344235782163742366270074158133348668760303771181045348316372894791658654967155812535664407907131216120397457217538148983890719074622491151986203500695207858559457610697616189254865923944153382784280604249708604666363302590252729532287014233366410055418840320689034125880919379933300642481346949966657845821728380016013892954063178548592227495230257355463318898650100905389668924357539071356751131297913499470859887662491334926655235762696133347164709637553148192324274649516554151171196034765081139444380616489110593263540382906249230062073330224140292081877907993797206545235864668119025455484818698970911165359348357724014342357304624526700898698941831825952098073117114968303419575999040208907136963065601633979488498851885749402484709533699415299441685368352809258758015383160056547591521370217836487808215879773278527552511534669164202305047789315997786453273327548254274584773423829003389233395301583112583211340949505240200401594207368129642139300678586447976134333050148253729224787203965901585939959600306798900860482032858758307800522112733288472335113702459282597307241498398145392834755053601685760322790739142359398774161271278190985704035134712995285101795894717302284110914981752271767896746149555204468409525480595218906067125606248164411966746833283829810432410945485433873111392451692313803177510971220557626193660657862976192874770090777564475040541178953369451425669966884351223118888401409680082813207396304577946829189040974170312457959726810184192739605378278651843124654101686618268376961311456087169657347447892093585590745974505982861435094581185146564762187439636216245962885926086204236475382702520650949081069543867319223471052387154135485516767326862490195216568594924532565613636659566703000683232102735547554249765912478977432340135483074222148403814931994948363695758840152736782501007365991958481085643192071891329442546909522502924757954980763791939259967109455412911180604868363555615054632552080173638191039919575512386494981441908871494281165041808100179579036948627445813774443410799249889991671047892559329596649146029051425835963175745942584897685230230235742262463812879964085202070698632396851012616127368013744377505222641287609159200063320367788934766327088650266754993962415480162411328734020360567007277135705628200859094428810777660008875140675578592511727187111818580861644506501294916788015784498798648999891971728634155617940843650765208330936043217393381629321350883592236147613731014522802711857962243748215461059115567595191427454411601960056480710395650212553688540004982414912417417748574856768568162761655509791375814956321039775729834163098346837918818613610031323039462820059372596681423610505904626651331373383891937901095262234343370845937499992806824456572185272166510238903873660673434227164032898635474361738113116234756865775100583045012384450399406954008806592237962894249687152771349788231092635488869773105769393619469656604337066418540451862735884114544684544292759847867066218942252811668319263956559988001470379572894755192998299482628481538409451073866683663831945815708060992037358956300078758217224651259770301321682697954495817506763921888095915337592605374576671809062393623264711304616450654285708221242094243882166059205579584847457697376773326584205725229386741049338298150475400826589745279215595521068274009193770962250379145677823231371397672402034244219892363763436482468345530793636260776801577760524866992692931937478929184256674002574866728724837686937533427269395469531903372607409104694878205101149983983039207804305701643404500347829497825551395585680825926501123401218364627263650761325507043029570061034156481856044781096200384376590302722748900162130416958954573329242642768355102945304065217790009575578436800110946779344239147886842441831283759027478038039824075269735351648568405274368603772165086684714920661139116782784359384449722117202555848857062624980949184038884065356767894455465229827125409375241790696152276681362544916174610422589462806379654144791814335449994153792369243285660200206166472980070872642412212196686654516963397429484867748810397086173736322607811318702635540055631038746646285693318330215961440103736428007642528175972282906822254877440045614598310685988482442088236982021550893799439146551482078502361391079840455525168424816802258078090955080492323518957114028955051555906350870710332457005143807167844016439580318073342143448665890585068927680660484233826274972372489736215253052540723916837679644560893301744201868312007210152488626361458421947833773284440848546823263451492587146737651398210989970011535321926312618343553507746319898256266758222006132934247829587814023824105782218097787403642776233774577338078834934106960727992919208293987330302647156374278615197802121145786446929629908202691196440014445916390396859808414634770338235743265073685843161512833425313560945118351726597385167465174938055278719992459496831244174102865909554499056690776508734090241196500809916257676177053712649542101692811092000018911666330263543937450579992252435876475567977339064515281686296407082565655708180444823336244360434073529265511556558153779376642477089151118740665463888371923324941920042552099414617969665177468831835237101765608463374674574621140406812436676375574701354124542480063607259142077384875982993051647175620511613243706684735292924211793634604806138143787760277193692960511102221119587280239853634191666525726455228146695101130875490812163173279498410551520961682053186333781695668890652561927584101884240393749474514849434340368198925646712617940112440552344973222141256344253016151677858033008325532580549659842766979303792929071549088598080865920449534942918903413358673254837649976121576652896947544393697242087725447175813979463961939673681791640305200132885471870491821284112601403909224710063883332860876923991320022475225943639052543903666362927546634284663435044179948122035980227498586266675057005328842921604844547376705435347918982460433830836963886146372339511287703552725524313726402134720358384884617877999384938622002701177166962439917172378672418855402253737159440526361204082122849167201195362445258347676451421052584292772054085260474400581256100032349923417684903539845899055087321037714537234287114017218201534382774672513996444746540841656180913956941197303725681057027425184530126735892663387077503338168918623803731468478604626182188362543486256992316512143260228760567989316153921082768060080320968493474499308609735216223460923858846561746694266424877723485149614487594207113671480304360144245197964901012016752812343471129962289188939354062261417949154010667426401713018116433952340761625178301830437613301625298874884111213635107853112331369767923955991852539395845118741857819611273315238493528543123563798914731050185924808701324601614064739721390614835427705899229310122421504249113854592599966849835633902267603200691361385780879416658104397531078492678877479184942422004293632856232473981823118299310567118505648389506304152707728526227243433827150899912215386923282139879485964253877536001221487431527535329780883862357053941947726228818043444356548734093187622903186287366270652659820598951165131156211327619988775375102778825347520752377266332977692943239298488852925126753563636075555608655362195882870095320471440941589105428175425421235746195035754728712524778324538784768567103393843372917150670675498969745909061875015848673837021521513191169244731171521061793432241258647639095521960481364666554426649204799705242790416056266403232836197748537575724216835588388558680897694316087669820726415771164624883768987825886418802619706560049433804355994896170521176968477226671348992503192118710427265147981385214310733258494951272626168758403254160855066599046785498014907668194856267125378074362281824662893183048930692844434589867890731190234030336950428797141581118625801668010527281101559384647229893196598655832796884859703179323094817524313884680183377708451616307763724236638178485874665012373208063343296646977734187310694563006068089587626026897981913731799305720966840690366532092368024996440326611001887297361989691602246916632172817404024141393281729008693059481392781494483103775712109886545402917727636462657647812145899618290853336854680521176384142690184282977453876549651812564257750258632961094048838971182588054811199456339872282525918322359403115202321289819287148869082671073963776939969564946721705945694471920114106969231474472598103530864186985239044024271209248037810896921470512393999382741916987920566155210882625633842412600273162451009659812560259447775305315355432005211051235745237522351120738095897240314791667142115216485338482778746577315801601830778151051504351543163284918188323550726633615424345215630920875300929886010091907002695117375643025927043792703719964469076569099360609161774623661274469628187691529579564084777104414405938460566090268261498925032279813648282946367754085928899049486151056374943841197572404134712512601473346217969591041199333889640595522400329967822222705025034696202947373705488726626192405495604422920013807202915955687370828155812341329290067547902052537724622897804347613290887132533164768978234048907280253087313598181192063670584142661570904971118387767429730048431369920847078532894167410154693483091559852679696009872132577958941361214854101657103115230711534120738416486162244820000658212548203246185044735809889045457271572209813178347996264587625762102763093899426924877529710329918386978253817459460922829183085098120616093205167294264397447287759543371946853421517936885405553673505161905012158961644156237042685747218468142474281541356751898573567735970404682710423485173389576309126848578985356738816915208602539470671074154523216364191902308598797088200622170471828118731479806615875762673313885066514199639335167991279818671562264194889012603463632435811909462519017831934945752495135153531322233986268095457291657882330191389155977548151932674521861059107465762443310348708299542982125275379046045139944658624449495780268856784209806537177734829352017559872213235474361524038557635336655316622229742924944693614353179345540095009401426886467849844463435061311501582646538047568049269437838320575615471481112230723608853819746357933015589091030789697916124338624162892659500479701608177401980836442254599850933294556641259440243970960821503251955917989091053138439129013037418407384082141316506811268567143915982291445125497267247532749375026046678449550449957927815773846852762896436663498648201194236717305534152856047950496656216430149056312874696333026715248307689510417010231440981913633576813717316641148604059769421030274353437376340623476821887638699540441354619235702496176836885656821796805104723118872900605382390944724092951568161734520412136799993298258733708291973576791506566110939835299291160571669215684340092299477127941847667245870855791152204426444952682924394879266498994620990120218484737954832454366705278169382355471215068456814427909237062526048442664610971872139193636973398273970206639483843532306868464721083350177397486052320553328137145982703562197485666291031212600492834600974140392773561662148590674304114471178638001304956260251648913614998886664164911808666498788912400295155895558811524750778991366496609375949251964446740561512861215638035805812237915042601029224314553725830705593724611893607713316379859994507205268251387270346767628536501317709306418037253011082899968256848462738770754119606739282452239220276503570823724834577263983368880217334105822114241399334173930588714362300042667649559780747906240879794262348362562301484342663267533367976338424340630929825829048521257699837758230070303195313480775662166518430737191050452907353212538268282482120114499824693794520740641491755126828589321148936769655650234278957168993971297591449739701742686499374895136935255439593761753266805082587379449422979241457923059519776049800511930448804550068647365717142795496722250736576229745737790394592241209750920043563869424671255317785519086365560052658513421542721440720002927365807409383133886256698375832871751182321129382370991799551505409798025012018417324041125324300463453367681046832681805446714982873743473948320328613445466477222358919151202718297716638143650389610426846620261003440570855186826542671450721997174427428545549980468171686858086294906558858174527878460527020633686129536274201691173185758192806500502894304108685421851214860441536125741445563858899482710353794421854831455847617113817581257433738598242390928530829236379328989081500489483103458013247559657744545217901310341768059602843008217776658793891312382679023670181479038091071094455112728917436342670690835301172122543287890365053561442512773102780820067752189449311769113763996955546740731765290625146279494582744528443227242185615923059700670502432092104115831813033533982531070781850306385348528568726421957450933162052836034896731190219632360554766136345151707104795822851759752578724922377652581466010026157325867800679641588372516049853790445038662262401084107214986770617321663878140846392273547475518059911971087991723028495091007613798727726962235561748756243458110083316907743112195581350731557515596725972142111977610440239206677916250037137640037766789987954322424775887055704305450370568950702136284007022277102691200105592744572987266756567521776658277988484047412533508826016431871615213097071336794595242639744094170220566146362493665773706821444334119751854568408928390624109335098160643402021922489627686154580723445246614830108068804706321071938025340134115571502991046086805294612925793689871763696392418098493897637925775296513218608145110223071151347731529900291627192272922148166041384504048578215437506301805301126380788656802055285066384711900712394015036334012296489638676338754681704742056740338044815619997119548479645075032350272444278088654939487880765658193378018258612926935733312309958272120595016671649124299703698770905006801186774523923760713133303408811063748910384990220216671904527219079951321939742556035720733746692048846508159505624603762647776387382488337178382021758759460396830709040626533889346753669606936242866488675795004727037782288713872217742339156356332534739542408744038040171330263826693982219895925432109603789214437718011874841451908952712978111494144770970232159049959880644217380955941165664272160635495594319541158264059457063815579136897487417669619483696508484813632407012151523874005637493872750349987116735708933395831935449736774898279811603148167979753875519905541383726652716217057187236336787014770421914996918709044642582325418542805357111186982179940706848248263906277640282150418579172162554292091999028300656696027477473955413755816884832316192596255365397539203414067930763308145598364720985888844478916554903250194961432466989034715875384516237234221713621316111474338050970663982897815842842699903255058051824034003279297130162019816691501346674438628652390916074604139189436089752034372117474439196970885693299939730731516663928583567933535678870077694174487553819319241201240242431361658219853073391379145659544563748475449600182548539808497256794477013331609675240878946742083253756980141501659807177179162726942806355100167171702769485886227241175059924676253952268616175738262192647428144022655943838560609105786648406132178681521639235325175168650559813688585834956032478204423115051773949259191691256582017871919155929520160220223541002937803751831616163718713153149440787264545667589591366720125166761749097405128470678107776870850064444153785265955477477492085567712355525537742925501187865331736972354273395612282490819990340742190057658796325250729804747671651676768432907136162105311526272610229815396970549846417829321366301097535505879258044636855173961536308729396757161635447779086392158293293218370385104480882711207891676502945582545690061000704964292159023066165536951004286700714477796546355145972529632616632708333676659255586307121737171423645734498781604790291261139620958916905246883999158199257204236861002672690397778644765314115285122283163543739913698608491316847873660500821324376050618897208864424350134468249477396727701751946405229980967205132360353447288316884744887791092401627092879402768267813226861958878343286418652894294373733147005157633210143358046882454082173465289038926339283543047011059626237401790055750205300326145540713157457710015398694871674525359674352568260363490386949866709838627826002385471848774368740613372113986891649925907021291045886473478905811187964686121685177738566102656416055031957684861949063750713214978378268680663720824022349211015844212115530775117446849903166185833452207673863146749030476169575996136435957487968076760499806560545383505123097443089400840337312047223331749949762983613957294612782406389713500459291324938290077261326332799174255829325786903003707874986980959214996213247206971517829715880267746695554286997692540918708949210047420762897221051209620814401684190918694877201945057439175094953270147537553920910182859326489749734580948787298468662643702088824441278980902199923312493972365706027359322491944852471825777189209298483742237285014179248223287519668753243144283518000857914311666861619232933070494815763168767339034016958844556220633295673958491893726179335483552677319338022932126956343060389324022631890377493007462701049981360096410743470691196746380475533865005228877120245459096539694228864724114714806109654183136321444876412686654672876620442857327470076516160700468663662732063042000931745242921320722261205015119633462820238085823050007667782531182805123878251525124182125962264067475535267165513429541040822786511984257267962619208218142718529628246786211406102599104360702292714512557910913769954094366566978420666310962551654562352472425469709734604975622912912612613317033885529654905566946588435936057417465734692959023255548539997894715399806263583108400201153600037262625632509814401943356088017827021289788002678406192240186764954655693227307670842356224974713108945996348639277909657032260064912997420963441685573554836732609923042717795957589698874561577756084817625521268202970975480590100918579184901761995080141643206037630076268595771858711010525704451075560683052587020389984677576383882938222135906754817487931339236802421737857713753781036098033939181233544690080422455033459315403978443068650635219342125194560441745011464717450186837071286007029528340901019897888288939087570599920236135255363915640612304016372341463744609677236716448694801470910047692300713179120666411447295321640521946754605383293274779230582970428774177390041090614562420430085659308435514144768917478741900063827292055229351746622172214509181086931248883335679498667547045364676544092026245660389613901896340923009849705822929031959691429558795445961530401406842596215106105804936368819799044947941838405472779335874901311558793821359858795058051483505811321587013406502621564111037562364621341381955848572357328977657220056123819960344278445917070585322001372985872866469587850733187202955007045512357615191433465564563062171905671799054088693668730469743451519487859793557552763777723268421245625906488794418136693302446480700864598116166234938846393976910749896014010648762230818918892609375267774790748131424953159043561621935779017629801598947228091359553514019616599728193269066608608451326917209887135683972050572821314241907960518331199912081749902391731313064564243756012834222042421554846175068195135637385769318513529158461888920712500604589520360111196472036686044471642603893634214094508240750638970052252859008024467943640450513143878454013442531026220040883685575927014060912012470960736898375335334019040238917520081292484874218138456661920284844643758465370627615327360100609288442233304524956942403729278052861724780662315181633856729235136707053396597934702510483010052144383562103653689413881612999639659108240243439352721931870367979146445921432624207755734117840275112494995905922342450239040653739600686255659462798142328200379768007088040809223093706937888463899048698153554030484040775194289277085983079074292212003026727419553979967335839503967162231494210485334328383937170737964799845735182085969347995622362929045524479960441689500197520810999142645709901640313875990343782766542416711290013459440163715419458064375241440255444834910525646306699289725368979335326127524142404447132144874147256666507647605128563039220095829982327691404210900251522492927208705343632878754545584740836333257121276275000882305499047268238832031772342580708280814606146827156715063798678796916380805878012201474306468351276889043291849965948509293478390297583420101038983197148446264996255900753942801763007541504415799505931848829835089394646110275169273008983709752247799394198454518797738428576481598164036896857290826475172281494710211226726630665860251738421631125036489479410913183900119575254172018870849739409197910604334487141921603777843105716345541321880852981295907890016409180687537950745625002173724675166388082894811246457201648415106009063392122772865990993756061064464503418333062446384086722152725554773516801487383775670437638980675904308738726463600960753946742644256681566700304299643181339326177437232423759074064691257493073303124292824795993270569440857282607621666670281297888322922843185043999386551223293235420494776070147850123714401538435732247270801420240933071369958065623170239588435684387032519454752071753720097761508096916679596902615118550443950511667162939343221259622814417595000726550455976174918174833141551168708954422633868098136755669436825197262886071152372247688339579591352033995613514640510045671931927452570109657809076704136229823810024300221292092008862346146824827387409582441395232880629723203335358209815197284337495952138390072473831313240863821880312993159821625755589217140898185430152468858850842646351229404036564876063222168237544834510384036186045931246642579442012837866797033758724647019635283274123305099445856733726631633618977861239633626320054437802999752138464822856015824359419120436081509176451086031506394145543159037543341100267930537627349545592048799271826539706936656501195870398128973398716342912261825728726033944459728979004613350883863683036052102887444383534500665216676126693220490014945683315798823301903756873805396014463240058703738437291372625872578143931087505267568439357474768378461207478318952384316295560125576558030843148638047990633582359182436815063219016244443530787751024510085489360062619247723099180959508219178415399394112828188353671980675825024096783977503793526219760430060671276085466935218956939927413802099594023353248256616077220725171736955724643745339897775753670918139742862739136958142127206354910408801724905319456763676067448071941989578377242432959302104115523613366450199790689875431612408024987092141596657286252683291602700395754010219957248809637795184277364444009028940861899202398881535433385488263542219851548889320614375073603812051922113718376054852849513603882179681406502545594110584275788434852126375491962599597008479344611524278336860381483473125230720411286255093268628196903067814123134260642292559016357991854563301954232479753174793208939149536972917893954140999209595082997681145201518576325104227698197896618964060904896419308835002485204183640817470994687106691942722368840735622377568602605895491114088670219936495586815821179793482977173558265247347270912703914729240458074602450218373086458845116136999123109677782514409881820745204418291890351495000018273516395486162040379249589853336709607119295209314187352267828063899366897716003907110752341373855320172341697038961702215390429771925228771034743602363491864567182244073317736814235726157691709091386033625050603813065668744269831234276795829152014558386715233562622589363700208127661023800732625942905909599856813483239884550588821814206221246083894094376866191555437726232162448969119249187833697041318793850794321864765034973908101307845437962970368710723087657748829434531844908261136406492720830089677242145058922421410994554260719225108805585009175779985317526319076212040011230648561182510034815783427317667031139731615767336653190883960743165953380969396797062578852213700835926449328585251488930906674219358314624164281724088752485559941884352818466982733622916764719955273886319167095055912723110601811414816113012223953406617619210826807336382888478951428427032020815214124603230937052909848771050640221251464832681868720211001192663698570561824939126327859405864360119852106350500457604194572673030282332861544554451801723647083704402364921944100888266966016173366775782245883546581493823232639217398853043515241470960594554643543294026970068366278597914588853633019405125066423323456138316771670783391358199021146777007064865139157133718181314647541665266542301886095391383300641943899821294886270538371467400681767419018752477059959836060971690953552657675599976251932138882471595539001130149839126128796605527668866536664183687647105373233968741434398465477197212494374842897645730329310694475920875857395840075282658168952201710799745731223862599955900014589585949563539600833760067350870658229983951459614342383724418168177874995739683715408163464442830157551204378928186512785853492271293321819155099936596873026147862960684560039633189307227353102808998374170044886353989798331312999619078369363600603267666361512326112643939190697019756803441774129473854665153558087488052938616547908279226635923040212810722428932569734332345454247013896536833008700106796564695077351404233258780575574302044929444199598025136857830243475622020166587222686763473148352651808889249656111333331805928649407191081919934630704607887859986383293804218421544274551484402806340887028154719843759219686532029152934421038096358677644322962864031336362292159136994398436941854922922931678955878887311040294542255487591090143598325149689533407913663901715185839421245622422054186875730454437897575014580700126387414900734784301493101870803799241588638716719304916282623500958348591850682238947384828565198630419073802490245356707682776897475700431017029017030939877319253875875003313396999682027130257850596250963330106829917364730077267228616993978869941067934221457437194801166189466847470774080061709994269279241454047968645433283494099318654736965716021844912385081895186676088926731602280676116361552515961220879716431775158505441665013083507834369094764343250928618910428084278214384266160117984892409695742021449991443475265746991053258870470617859343913478902688916879228342788922250210615715116562241017518341889248870073946438624685079887008624215648139257527585185973534924608139709509847281537353805027223952171525929117124657007123534307266736067921418162146016355291992514921452543904813162274808010428149713148365224639511795863834634030719926437034887045009582734314355131669718553683005028650739241712453225323762200055598811125222587727993229265140028090943932708842968425147899385456024089007633293028531836643270870070342632444540060361955963620103559548986242803677391785551406651551408339483037224263009062070852783217160104761370788670366833890301451856238895527659735733033846321655641576824031658001632178227071119620426626229150766346448272973578243560349420669996357406014396233838275446282003670879160859727613058903572467847507973493102382499202154722925960710833315646297765365342167720017969873905559087103756208178368181429271785867435154422858002946762606518805409201575649196438976050325493870198493005513390282118212114714328167989826085653884137921563672124810604543247646091390961235852598703052891955083558681976826653185688072388010774249591200222001949516861809753354812348548973241087610159909892063495242903716712492355629971866336259454896093014419666117903409250982821036506009615696594132555890462035528460613638115402016120593544877600580848349601712781309834818780812106505023927744220927721561156135011414859951836743941208411495411796739337923304284072453641099284315415619082583960599793791324052625712826403251892035434756880868213896700324440694681164398278287654039629122690878329390658838114785382292232137178199701363180869951568906800010160607758720769499011296244768517448990152218144028718625113055796546420413734220477255781499110630490335276690500924646343273034162484248787803628091235288098070740304662777681732000192742301228196526010245217781765556491421350754483197142901717462695470657289057200372287169338878432031483057090426419882122830282283702227984504889572191917110720567940057006525575774806622984249588932390102337656187984903666634183186985435488621502618486051749989871802619041597095978254380005709113952557447129339081895573750613409928384276230124690564620677471231097339822903565744287455309338745717635797774309325505120662264492271991211684200161960663009922856064585131955727972769942752795772226436114540008659097834122255957670159031218624000282639150708086504982601996007633484166232694977375887446369625793763124308937182458704693863842880276423103140156464746550658155067947759392608451083012580897664645985246778945920563383025231085622132420744461307970703672743194743925542229989056041102472548024605887522693035029751028651551371114857471360700521293073510774340713608759813594358775140613718846844356756508810151193714861948020838082446903303227235428447493472702149290764072728498540739391416040838592505733385785319681847459195661315757235311913042477530580490390064837368899309479584825647254797988237156570435170747685282976729194488227953828287185097294990608152115723133634571908688891730395867496347978604654211327420289897836682085072461201157381208867456546215356356628635219591336248433368985058266318785088475254856536052609924580577760192364775538007149862570446900444464329824473491080572827985980758456061683457577307772093064673807729532837646785153765022750202530430025976240607049760268850798123371516894995403115666491207585234141710282950392548786404252221132335890426983082319273106786301246171636918003185075859965698666988529769904510208116820525016698324075973470200883970703596353057391875241322087371744839501422560047151226270120921806434623191465331737711495180431765068544416222217464658413849843700096099191140197691804186558551208889917909674177985926846038063051144673513996015536413032028389839635481484513166702297030444881829856163703632873200109064640782266592368733619509774619803786008713606771512261395598215032290666418808811087991996291456387063327998215637801181382393891469578664827735625378649746055048991942120444514228961370928656429135189107178483863809918980389251809663527896906477361726093337344602412483056480134868057965949928520027904714221153611531142800008146311631621317673772596977791363424256539409457809267868646583402310836604320608187908213826125701523118929201313762974104359840641659374093505266340435231173494693144892520987948400863198567315062356032002050394411584993222362659149388085688724785218787595686130619442954781013371212845140204511037162421668139786103069068447273046183723495439995261853223850159376871223199752105680736890918344512340634691261021355579074167801974640086158564666487108187120496335251201534420420477045175466465177341027421916584602048694792390238378335263430394711384077485517403487288896456785662110070905871573032084001776513235014927656334018504778362093083682224745110310105094335869487432844185693337079327441915441993193765554254466244105960814311479735380159467957554702743398452727529228525304182008987398186558635043821715211699032179671221173133183841919074528556152141927588234907698911348760517852930471999127875683506195349768310900175086737884220879511919987184744643006214086486641741787916153615073016180621807676037760173923513012972196808960617932210524403512132378262413911725610614514781090178433749792456579890120328807472879455381663972655837129805437575045134661447233423653725869691167224123855924389033729927730917524772811879475523567257710746101825995206331655807754021116249561913720323570278181410081408898318814702264771180630855635214444711196855850946654570475173869322672855315161961248480033099409319733940650714683403982575890026878342313203681884967255527529085027954815360699814826855093918979084547670976808945145885554910147771503301448061847807583879681373539630108631910039126178215183472371487011900250927785124646171796975723269586220496707648811985161495787700870241386751504189193398410203348867946884513785460820816771482733271517924919605300673585199092746965969330839680772466895671192051695845039892225006334413167042475324461886622229629659265038018557553258335897482785884251936096082693166557288103417700681807313230117631164458442248375908718189757649444380547144582605275222560111178583059290805542167730839844527592459457442022432049500270306976821480424159326027364914662936668618926954335184890088746396944612379005443070949017530465388126197625916836021623869767816908963532064774904693389971088104646454279629556860470661905542172246136159634801458674571061697616780941526384302937850241436345051627721507319574158458029889579045129798560046190953449771179905929629739485715653913764393870068814674250797107268282774792243368320585514556594479968904854938424669778201953754514656967893323495373775635799115862967395114335627404650450802378291566973635067256075041606040408626186135289786944009028322284741894567605665944007913112753322994694863871836469970617690942134812699412415449433206014837862340432057714216926889256543547186989688693162690700412015520519073160160193351026919315783046197781046995464630306399117674509686463313909847035165929866696333287178632648878863699586245659062011500442966777105510118635112543152663851763826283793228541439216899701247067364295277259978463565453328855009887115288985834835321958674513574739394119281242527357864810872702301176342661001906352624682691535965732990514177465603344006292868111983214191729123574094637176406129235317862846318757107784067915991159221870793595128074960882574694549448078270544823853375674116520432505518542028113299706502007574040216626742913568010354056792471004213673183679695213874888630894348821489323564952311039678222357046404693049362252155887021655479129182201878745503576268576272264772684978206987906933043526889564187117748369914860615691652089909556274661115320619064342706392253067285566566756122891362075768466562355516665439730380678063860797044574787808375319585203351204471308847392855055559137515091912691088351154195830773501196407849490572108477851457359033606592032296115757235986329864423621603684003982871774322997971651494391358842098936359324370034263291807963953483540919555365423522271117685194785688487228825739355804618922920296898933558431469107862667412691713508585771994945331247055618713372603381515401635601019782114751743520027700221476549382177004851830037744862987646895356079245864630353596089394719044207629760589646095700025392663722497543561886679988408898926942305090016598444182261334678931079305703697271284014326304375506365279894854799562284952765396193531771672747656634073776313817843793799264550648472582184933114014960467465086156806161098681293182972324931142300210010680581712907074559225356140117627386588517839647126531988206635439742382704845594016411480456214957485605062419364177112134811743714598911649888004121031672151044423940306883543028724858365599172867663838488527410736515576133184912383365889864027125099914581058090833078017465863681329368182102577032553925782261677993019651642089162357017042628093623285339801247645538284217510726439478014913760409230429123731756865443339699548559069100540961963397556842274628190800325581449325741648917465637634756870742023480047139178979750637682097552906176041353131092591251926220942062511709791516075417687792952110375259611906384367350717634236923544746816401420804969814090893549256828391070743659183993503292060813922439668836390047376454664314512452775093908735016031049929533624680085297673325262458226049653555543928044010079513708393023835550763328130751593096425589415629458539844007881529301700834738439696234309399329545314800487197673917097131647754290217418134774158085957132972616841790907306774940890496337205197183886259563313432710039443739532733418781110818665010650670977582306629463937651734564289420235460631972546541146960983305187830940665780524429312986997821934711838253439707847227082936499004579915929918962633592064080276245690033939688810273572427847034428315669063023995042907521623817227911472490747313892228104991707855616659390375948953198132762032257342809006497592911339130807660894777723187399561514387476428024311144148466399764025834834400273604387123891417512690524758176726246508282004466795402614041779487023687502662695931078794697483565485127650326847224342612215475197113301550663203126506144866488422579755291664606536990087614720330347145126134636215968349995314204274670184996103360701598925749277788809413992325017320243088221393522558733726189534688640995497367730897869163824237697007934648605899589387042482921635643386462908470729883647530772471189777048520327479066796837905736884107966365848167006331217972787219480197654050787796517688222516778743866871259206452609986720111032801653485725980118990548563029435527074803024252344830528425755512662637786376537324693041333719683368158645123386880146415143651059391212822544473535334092391676723051176224084234556897253779750435566675271125030603302879376444708056929058632559975395007894036769301783041235118024536086258283290765442748719929791848767920486735054668650862852788139952609906242282507608123014458788671421295926354314632544022328787614644185957346242975562992816218458623228846182260771227769632259565925565878196201816122368471468529012828714773376204409038186830555716663041327438009502898917346706959393107129598489504964006115340454453161456744900189305919802953327741998297079575845352532745706611117544732470491883611258548282524438436009927831237519040694835938689654275365269748772765747473928958723752760329204816202013492725227207944204308508863453716396230424037966258137515403884771253029709959685402793084501730323407583943885982849845662897769299904470830296588312032241011915522702970420251507826180594501786454700863739533725030575226190592495010627739514244595596392267374494910233837958647398050121819717067601277466028101116876764214571484704976474302445320082471362862655230635097679929046787261415821938443181292544656893378266322980581257471120056383383160126504789057537569996330349081422735090650983240050707385282478705249756083245926615932925627159852886230329111629845987248209100128252407233368163220753820108412910608464078914393596963656253101146961887919187498383211984972270874379650413147736723555568161744769418835142142292586999056013078436839874540915820019310560923277834540348892057473462560619964164529040711292328429246221979801114963513409463952309276468869539686822944356472917528436327743222743561368673170970076197049956047330894483639454169816400913350329929791334131295017460388647696831996246581096117564919250131685186315385670354834752976668061217568112358493675363945643431434208557752829811097277856931145532785359135531934348663474578357195472239525669113275463427107063310210747592038811678421893859866823087413829689889416717127508614238273081853938325989870760320787499347776220946855481469965082253615328330668398002753599566449760985590753849652835310649681441806154188744864476938982171519597864243682049697139573846589400133644029153761051186971523196318654202711984999239741449624070248685764762184354836806937959179164234274496744402622518384044843373757254758061448884630847989097879790393678154046783699859935552319115642288954109136526394300664490392860381530795876585389951263384035547946123662041109475151785607900311237864770011284880983027991540481366738465086872488463224624851515910544271293320354071509144865658738463738143582354353863559234506512327981505029313096750898351031959246784745734034840907282703084212115491337430180071053789280864539330423944488434470963531925506590344258673426169721136097303976239307579546153716703099790606639868632158658096983177161814565821952617756793033001672082474701410088111863005994484164119614347421510513359882481563777401615921440939505801656610699341114361915602844649012794587412369019437359312214246897187346786915219424850988654129266849294685495946036565422511871467979533354763701698331341593566278610965713411354374682619050101217263832806410346003670418934466786068319142515589721721832879004723758080596922886067881695194481823379857137438866248249020696477149330015811436402334615441177888000940001348442759360541732482614236603987939473137101456977393183395907524663114328218600141383845670803682839165438758777698033874548293135772013268494649411992553222669712465087524828745536375975678180628701734424400883714075327511516570124278370422248992533946624993968278670720887851491613673006476173793340738737465095182211134682918727954609054735073502755100094136233873876271668190688094770040933767939964241104428561386419470714526560248979149655596572010517772047262255885801562670387634411106613994328508722589579326878629536400340100991813161736893488952175985710817809333028578475021909874143075183812207998937632219327337101880392329669849713987322111752733592748395085379468727937355131783513117780591163161819299793997021216130547507942784575953897064026102783654763673030007195780845916033814498743086730884684449771490572553100267442437324655770429159236016563056438141213277395809870992405354828273480819094099279499629569789788177868182787471417959365838060301085998818101200928724768883667753817107318221141490135259027282654288009409471236816434215418806575744201798100843663272533832301428701137811247129529367353771097450488481119294514250660738891349264258928711513967009634596504431351947074205435861973285714925612573680023323215416072649904951520967931291305329955983316009200182953483647934230814963220394446046148706230543844759309474085880743152243231365843120176281613712174213394054267071517189708658032773845099551307132205526519891029184061519878133307824284663889083333788502653162181721960243861466755200854503759231361467305432296512627025224915362727156385119033070757355874587926532594201326058950235929490455900952582649031722166212752893556611388366500286821095852745290630133296905397162074943144147957758887013996607393920676127768216086847997917030938812884914048784409030505074985775906183662711171316733990435994603393058455825747822562315856340647215499956847697990516021630598033887476473286753977782354520577640369623592225987679679229003741958837475927523368567431503682672908214976720607792833346265691082305823784607744459086774391152109568514985979329150152800576246350489303752990555950168436033209768998993694176085768238680690621712600999000556446442109777509483479519847307782443741805996939422928802735559092798191295176982303064423159317735496116003561598310338272325156939281913169137143810484241805508073810396909690042934270915940443991141426988469688750814795529579943800617707605411890626596342630526913053441454124992717399506870482539999049842481048243847203339548277415001895274912749627365621055262474803845952497461135830256285354595848929865095543589786882367330273440376011672566999971710928067169653614916488693014918908486828753843270261649686001374127730235509111871172326926597752481301691576354635031794118693107904730915210870423064151122681865804234463259003584201164560801111217323036585146556319588359401514168568340314841484757527803022644470757303260104277702189823630317211899565459658479750484944612279543420671492648807287830721450070405723241058259991003087407514459398317477249144518880545063784269103740575600508699861625102458460761547417963054651747465514884538537088979259179265490015971380723078000161851179604966064383596913967030738781320884169234732265300376651770145272796661805711268068554192610201851907680564594564640117205205483591744796405888873359768250753436655626411252095095005334992618740199654740813401276769595374159438425149838478174819892888911062989531255403679191671379171800153493817051310104891003408115296269660524194215965554745133486007138174104615065354632121601179915844530465587274144474398307989526322371302209609471353240080030322988764691720915847517835061555512392939263339789509469698354658980693886199781070639063272759304771448771801106711102174174682017739561183320215271354937520636581877600156972989627874484643107775930494398823182494510207327775686056900492477088901641933661088412889955996358500669590731257918090538068080623456927010402201141817255445927233461030872250802751920012538545657779529249698030105804248992592458482824371030673353000171684256863586239983915625914856771740747390436576938203192658877931810879131538370640859930382605948555293709166790890561442818997630355086480826552363259143193591227275427953591527396673901415806602194757657511975964156505945671101249868157939343201226140372852221448992978444348350140356543575054893099131945663718957488389345671999261974110456875291243337773056156995789385474495987249551379903750447233607891173096491542805535739103307268714263053100991485832746628010975009010182301245049592552299582429986032587565476426375610582392252428979814285066727283449196262758256804017213994625239294827368684112580347203584994977526357314490164531937616712380122971135828521090986678861310738161850577441799037555636482117047494888655981560420095145919712887165073222824343547219485763454328850512561359961189400076124311424263929897155677155546886784131924917921040872433520294509159592358746239360455312175025797622560721991005735403201426710710529683054431563708751331064389713376339295658101150387053312108114031146270568821439675228490949503479959288938364045447693789606045685134483216687184903300991834525451360521678395680745789712681088406308505165255281752108716630111513258341472759726745270513862607935219439634992345959283651192827538781973861251315551366719964635847351978808305236559157861209834099151247374423318690686174380391112952541567048573976180283428871226984669454435553133772603140062879375779756192436699869127064134248284381208372135260834538345510856040294965490575288708214115659111749088888122383232063457761780724202574758760608437237019610621129498739339380014035517244186352506677511170925275288453776382425423292382153092401318084005157130279830435914063481229537545011719582910125828483287498352790799814670954050020609917847306916563135971008686947553332125172974681847921272680824469700686586161997544061456334894096262764186769414841919993477792926149582104528077437426617927767758801327093359771560141924196026574704990391269240961606931934518185961954853023561664993602786506924550692631195659127605282316630076001417493221399360762478555078723942992981840662127121798574280054357961386226408468211311401312563786383793229304929878687735755315938405867975889512606263526033856371590886926645897387035527614638133545853120425591514558326448849483744515480158531550841112761864431300946223151749833123004571126722479311918054394620591078576627703810867053592556081023608313372486223870012099379024701970168276873863183903739072510562418637361513710127064763614635341391805844066250840283067352367295104645499134911747440511836079539584313227607604728976165715916120797921711556612995421645845867302269857154237703829634637852598455214256715030033793974672185170672549521430504824093955013879685725199268768590284528547833861833085779340452341842624710871768958606620189323943158136977693234210080936278200841897821082702357060330463025937122681216161209946113325834152564989165567932345408601389637843344021526576566375481282686849306946192832210037992752477309900170655611310152369891856155289425706902494235793155348921999370410735712707797325403636476877994447625862774435782629079553247468855647682874469574972597989256976155483284325842353509924015641612817324245322510797394814934536854236382622382710646158332852377814118982280418895076439675538828145443126642361129143625616495380009606046365259876266232113043386555526059451416809857490546200012350790948123326024794459765647304710236611934907439890508567105172897453329722229939955641733183435927914884367532544517571020449845267899974405401564157122539890464577942617424745208793992212612757496383854611759591192505838702462132072133338054851299442729875067115588262028999053430738591779968924457750486373335767323846503446709066308586867156973246368908174934777277939474514757491838973725684653659134571009353762977604874837898478515608602630955863250308685738297105312255503634690268052608460820066490719734477433200864310100950374250812343566382261692528031222685807212543630402338339382637860090795209669212382714739472114108019172398692199499234226216496446962539130499544060730288621875792571025677778078771237807161853784874616381487626620765394186754075854534177188079136377738452278776895389888027141965493851403530898093654768291085219551135942337896534113636276387663644004431176402111754420772350882441475569177224690152392232180404403529121510570235718212498341314659260100553521274213952356198319202851277041955046384410265585908863613926573085376362197069227897047165598238922585458420988189161423454167343126794856214743555482970939740822879591812048383432382302499479236454199531554534836292748006919583921702918298832285712745971857766218564138569788329508242425070057777580404601255147147051868619276083894472534213850983834262190068487227827068983565515849056253800506148230440172145747485608941755796398992774132284915113526682453976347851500976134908865950239743876967436004351103357664061763117587479539189994703859058884514555906371914838061309221166862471879679538558099590486831140504435302643302434651861982474444175629827717968759575642198560280195218745080678469955330402923096483860954189249637960896718669120805756923072578804900212750406119799605363792430223427789909111469805073389763380268074012213663099572666045272936834342839990240792481139682745740013337942886045111996910439128499633271061384267625832295850405468426928320938534777808020024889690140948136345229194169479976335354854601079666067245674061765155762943654697535826623932273214090960512249839631853851479530868995042851028411012668192992607311712623297303951967521968638239349190141271594927980411541508804226121228993604097908915451559113192173936354440079003837914001566710039835250566654273092166337396709682861953619396942828728664600186373678620843559067536316059440180752702520414986617185450178861109227658723853001845610666459939810290907222271883737528457315354819671937523672308900991894994277723213404427733025197650208579177703934826069484792637419945950765353571345655756608907009205042232054605447232978474579157322136222687599046816875699567493267678817098391360218808053631668833853678168315736744358830226250390460028610033859424512748235171504073683871512386193086806396561556311748569251577523102191044045891435508257519955266096257341831670071544651883011383792741934275235297817120159349763949982363772066674489078941034563949174806860559001035593193132083002846894316975998962404566955046706000317187670857716799900442227401923890586667555915400022183709378413706898358770792762030078426273744521540160582144546652121101212570011205409129629800952702551195485873745570044417725281732805477264625515732902520004456788772782310242537316944647356770392273170707794515556543779412681005091977082253615719103401642771356730047785828912494473947091740533649063224412121119407230741585837883339300721141138860789439449621778921845775789735231266180780055877023706669326346414256601346647003296340805025897698886763456097042306574113543115927092834185672367336351794769810413961051183227139679534949858361448347084895770896972189200077394839825860169267029932977138688719246846004593716060734456980513619499172323271307054711408612857923112825372002003923148334155595931681238988111453664811941083616023166475627520417651870529817405886986010927324765360076016220879045263491793199960884812229353484725094330848318527466652614805665912089418066307713054866066084557353306133670671103656677044203684515298327872078612120517043136348300612434209630996161715666879119738372127559953557869116866952704259419399753076910835545540262054616153754564909554550212843082290411440329998663666745376541169645598942006438603566772114586452836495382588193398040841867207084582666148709493711774935539105137988709412515594033349856704887869604120627144840332918648782813052030014008891947579268696715290498709533852892760525780955643431836674547357063031944469059229779256931052615078509432196765912690348689957854647168341293312129144155008167465967085516196255120787211171887927848080217127221122003130664610304869671783889306282899052825719926845164937078320772725562758369566821599416708414099145256621085814428389465287066645872565269182123824806062675498849170926764999887982952778134153470867094324137676759755874480356805568125637074487091984869486446130775841829111846392714322919562972679205040157726380848736571243303923417986346693614684064044235479722088137668865726809233912976557402440224304689473645168795567512193293864642064337507819882136515473585988211092119325831579577018303138811843692971762765014691117285311310449224270696176853035321857241173208350794034044905995808510879881595444286817760186472357707123923843754050465914487383587731481091622918077381215200219483575567885207508356654549873853938024164416564528025680625475216124243306866072383170384683634231726537347067356121755828021861191998029237510356846565710167014948264099024782223233024684070837648455717017371964614061671656444981736882875845442528288606105208936591397699049950203512848881022834252575250685759367765847948813228381669261323696761013446137727644010182699086432524033920848998927659142803096669956967421544352446094567551499412192406289708758596831924714612060093315190333968991932965220571298775563014569980769352772509652831790974668093953867084067538872279928910281051324384234827581581259472264507715103689860650660954419439114661591366797959318715354404233145896223121695700419399800211119232212449715464832986080155882144257418840960738210763423969226989317674640056300849105974572002220407543290540827851330556187737930790785639466559735167139515483092508268750692129520806970601168263327621167196150726827049141254800679517735324156657935933550399084473023016649443261121469930465630688386694360890426722391926978883263628291178252726414623126607870421052577741871292153636274149609122229289912565723723590186944549601578504420103743835204138810312946036582721627692746963710785141451284181571835978987736175615384674136779573697749280274972425997000592181064866621669629125580276654496259124061379949275117587685731261377220095695419376196132951033176467527610785622867992539123913855131855913471618579995018057339526763656218046411412197405542366334940731052315835765267303189524152529668711746153376323473566615096253894180907669167335598424864327468274099218786190758862829831102247473980443902194722273352784996803047497613284715439113443108935056357547458296065101330954465261794608524114705601018379002683878972516288966068975109621048023918034910292741429404542690694178231213075531631716143636071201957801692196377602785204408799706178489874649555425757867685709225173623769876001871380568761997704889553135363288137374286214297831499570705588099187265766505193585596663014758441035433215436119091966974571485006191968100452301663626656269282203095435837116412132882236314475346559061769647080073632376922368904084810324852525641714609942762049476045565949931533856535367681854469027022847790305085149579676379666676908193179642856369936223700996972274545908217536371884258143901605679769643638538540216471344124421697614050799781110014757910868532002183595891311449114423500237980584773898740991397449265091943542691451171663067280772156594686891443589290645584493078421000268334061093478762835597823868770415271471736408806668908458448019544710274478585955602085244918188006393723281195922376335681842000697252322445546912194756905873769828005134890509055463234258738417763443911209691433109262975135512864985955833196176764927044347144022949631781056740888374752288568844390655510639433325321476992100036436459143206507620248417426330739694879734825283672942599781411986570360924660341244880234784262581048555918417136815343317970203043202348988684366039933037286793338195565324651672505515212420292561787097486970534182981132567158894097973028966214217995021501475804615549981781909853270727364020792308821276196910093456875650873629580643461131896131080784093492109232986284728210336272045018969940102622726225761292580141285004873408324546208296148734412659560699971583076273838196745358917892410325379735448412174269841136456311083768841515904002665579252735027332478818955470815416934326059017856857494143762062289789620130073081701409182558385149920337137104296989309617731019632026197396089252193587725133476065165829484639951258003338089526199956451526707841875789942026379770228446407962798125828654779975553094575972699761162734361387584135956804765692277423899288158161325833906823265320312811106504074823154933165440700706889842890639614500278236457419425488672122297680708961543442139338828035131962355621169880917055518459564124638265168016368938093845316056478538814980788048297554657419374029728867999678998640351278686262338817962116748096821418668309141811473200663789112035115300047884650209437433981368252365806739115424083557480473069885035688864999165384608039022916520958966939502894550288776702840160454542483337604505399591528432374983153941002486668013825843894500730147039297049642441615708016269122740260303943110136840952457388908296571360893374968214837902812321550057909930305264744953586375080097253559623722691203737984713034922654347442918114474456606864612165889129745967543231740825974306160578730774222603078255598971408344732363493887158108926914099163714496738171160999688054642073104962066904301466652586559140374512692406621650016654093768304724026806425709166559649109859951617744524985447241244334181163618337743767386245061677136119166157481786690025291093557944968346950974796079188211460219900995019475115757676382073800788679729980919052748557317558974539268147116405916252014222524049492963132900216747841211814927280789623698063438739555674970585395143570472881951496172024662358851913311824540430572759369700262396598873869833325604433565640220500624081351816859192784518266150678133936585595675557099064093438400700545176360224754087667467673129259049772280857389103965816772079445580923879810691617593011883566554959583069772458799009787667878694793896468732132782611039104489747868296446754104066842196794555789691130918594302147128823416793757126845938998413545466257359103212741578315248484174021660496143979131755103573022390136977017734218085543940821945046878425739398376488920591142326805168771031960925432786895974660096269762300569661572057836140234377814273178428086686065885943982704534571975759385017378127180346860764932011616962450145101701810645416789811220461503057516503270830563202546172458660998177265118868101563979218351088149238667612166132934484641233827669037335116496614725335070272395946561451139656280038935190895922711117103695832141635121358621501601534500724145047287889113562954334414023439602650393389311991319396869147694343577173054419469277455464467476531930080273822400640414904913716534615183863295187666425635280005644926327268471623240550996963323402563705624032227889886126028183701159770012657031439238495855961169936155509503491083199716722419566552069986192669647053405134533596971881530349060792646631158501093757124438931906155136555899380711548937649586753171023211366908009274518464902373251296359150336889978617394317249864505947555733869040673490944621460801820227293321273274316798502776452086642784925148293871154102657032763557997178374153431772128750202962923265366654134732786286999010511834578424915894204762488545517180870201172625331995215335290409866922657121645695601803383124091844845406054761030376437653602327903675207694367200825407978478023778466300249630578065195086135568569382360494450947707263154390840095591271436877378234415425853665206886126516512859933949538916162378641172757377987006470881905397025832068828569616594000623343311872548715869768395731618664322171754761217274163386707381998511831747441188675636617640002173060643567450211982021387836045484731869826586907466707580105386252374401783152884566416197183900092012182023310393714655474045568457573360868190899527647262996063131424941857032769821199016909079538725750588146292556813348923450841627736480204723319190795075801520275071481120682912587229431511397193171136029454582144308551705968422163971270019239776579334843865579673333233808335826855343746969567790002524057674241302769315038190330341971637247697028463676159343150531739896252402193100864153499926627472414412798412176766233578944716943416403162142930948835188450945505106781268326729345645892759050187151382981334431335016542853352247540365266632696685220860775925754270507128960848513265616436505046296283018076377433652253995117172684472584401637162044927172401787367958465459915035284104138771510911605193183951462488238658498775193419827788312904925073500636260505245034931087210626068973842573513293256204209802324725211718914302306359777666852636559525446799382474312307399032673314003533348951509146632102137968096437308532918614051730488991930651185328861085146757943016699367069054522718326407789005872128727085990411235029472136544329289599552821973606875089486181967521704850873737504396211006246290664028701633612383365774212161827637786578595773972043222087027236006551376063617201752459673168660878948877516129585773635194677342563303184279662486033089583677110410944271905224251814880354364974506800182501510706503981359041271708105084323871407667058850799557071000230897756428757073410093849958347646454185745077493136395028445448586611299478107956075022517685124782111888681473478368629130583858062268392034622306277999646994675815280125960333006194117726204849616525995573551999627185879814599439414705970832630949856682495431552027810161337459185514051678929269885562511349585711931700404952701441429292320932352090695410864605394931833815982027256214119791236234172933121726448498943652693132339465326360796309942553170219672150868000156539045945722170998869720801203209070832280753325432520574660096061424899473976843916784959138357996929974748957459771401553321645245451938423010330978427459015596373329543554104379357456401796605567937181941728728190557165791669028417892888525063285278058165248441830675844321260222762944541280999139667337165485214944938836226393724175150447725764865302373327656214240488606742766374636510115721582308252221494367850089479313544855293356511580892569229286763023540279401896320005936211642239500578931775728452662622594784361668362291286575553192929591354546780707151863013284933613486258035043491683188457662356768625078690228442588066469471549016182132324650609209701164215819809269844932163432878112186882341657587340368069811454369657541305116410302042708800475248903186090105560658330752186176993090582808772625397587369554726253235260395818878364208397759850336366623058793740543174235554512045631630418226434908212285327760547175143035214167256798478309447144023873964517340207242103924659244330360511172952473227768103161375708228001937298362639480689104937410938200416648009860589441434182595576059828349954844551797315723633127207985993861106622821329155632120834422049637615935506962552956264165924116591759866785529083520061795869645383586428210165058961807259081410395588995002442352643102517115072615294555152564747635119788794934282331756917746265468975553900959329345962466692050831665483696884009344716068924759411137206413771102837745099409791921082968532894665454226417929343184306602415779455303496263632031587188287192811495245971574975689736022979714675814587002621997712590964647870748034308036052858411427943324191919677144123348294606057917967611894609078158613772289091269580968025712122334149654471513257647909804510572543066055749248761512190804721141306157412394234192746420733464722792580414240351422310753499001313989970772201713206543633128496910532325884044809418586916336611015665030172951418478501631710494400170994067182852822921766210384294611327731218018645472052207371731815082497156541149772078809833612662423555979302505686398037230292520020147816592286236199746018516310113284109967765184916025008015330122564183018725405628522475039069680520184832507131800470219051884610839812164918335536195242987476529959966463805552385516715266248888362749994146974115648555041312901356957781155191309481461488580637137242835721941785963432847977467354126687109239318111307664723885992643555244288789657490152210946825280692239486872940393381051425412949628743259201743558541614778647443889323898726066531699004691842458431978537046404237894417322290942231651153519208720221573778801885279589785477347030710631853503757572585580635990735076138205088583819300411900378433649579667034036387321828854258857119793859696491030910613005019862720671308530098721598893072976598265193672835606598795857304297155735230427717222695324506449496796573489794614230608231964290023211511014163700682402726243862151690791742435802758347884037948330421907619371388545405261013810848243999097148637757715296518788710261745389293020737837564321832345277622987404936395685286732450458015066133798648294399229972642763542244550517124994503834716890455108638878553728348269053165787506982806664391562187605621275233108993348397040896994825395373747475820048119132306473229908236300425199277050424609462072373492014343330789821260986024507701974270502832506829170932049249431275703245745689718158612050938951705581803053745153267746132403161761790758076644159368977985165035791395775966044065895559334482128879043783658352773457549046381835247374401370460356352389064421865814725902996163946882281087526105852794879862801860131555360459028157621033060943853903680477736236345152784540468698194356494371339404771865322821471291015276038471723878301579180923639785612646823367325999092777463153395025623910964144412902785400699345238811685022233602273408904368515093781139977927029621622208947030231125220741051832239058208765310318521280300664778719052854166669658895015378916483189778314337164018933215602409081932863646034881803598306363578050568748382031816559888856031205215286026853682516359150255848457378502202601358982435101184208893536886149289696731772827126310290815418740951140959144813066671960469260519847049094371441511654034958045391969982734580182078618586041041691314420870025493169670835657715854187977465309460039388260947768757050445001264070483673496515767271344548637629988721096769458797249229805515767911742272519915984657200234187586916842318341647499139535462703308673996315176247223276524734435676766693891434662322324661371348160284199228622231495452687660581418432169882441335967179163523725253977489260072435153533141140172248494226290891151491696017708711100586153194051548881535070283947897206621443868080297612909607977615220780772083979478226227230628405423820138611091446704270171930568641853960531978668961795528162102700511533030780491816570034982441040188660894759678950543768880901311827395751292018185186515969443169288186698381438556458461320259850601048647877582778521615401690824914913694594091750872423938105086609454263654936809497241490346629137847795926017462183892530910695904074996273148633374508937499562325997261102560534565159309398253783505124963297491119255467629283396121532384259142679922909957952827589137544622399802924606293301138714884045043658068167771718902005254734001600123136212288750208826525261685147773008294931437338883903465478489447732942429184110605641535096628032245582196586128181332952181343009068666391524485344550354907234283198394085750143370095469171826101665169189510153242015616829231761063603361859058102034176405319823312404006208936612134342651410124681346241087411393706455739682057471388092602001697241375576453701244977234507124093061129946799425570965093992525127094708808534876095352064180742980163752938382124489368036368557785471895564458073203966438621107445245155018939998651388828786534468143007675888246559210103219608687688391539510549508851343952125087225947509561755279435834941760785138586504492117025615376419769349355705270552476739860817168593216096458367067461320717320499631014951168401563618079402178154164469439872268365102668702799135965008807525548850815625760257910846282630830816396523246392901392838807126111566295833283376780563770449679870591303335498510946177347970142024407860806695895916420298944434055229658754510636494942612324945932258426175462001516864907342648047412846696936902514201064368919088415308883147678240356597964846580327663717986049881407842382567602615630754569233819870593436926848971705673248319528143991979781323774157588615695304938252586270931041864039580998230692249321618354601594526244166320969703865127128797604660458189622937360181443201526925615058096522692070898985328402573319967795769257966434773526351829372512274030724927521062747994717263795295717437281390895227382433489380206090343616656092822233048629613121958562907042060457769844090008294546352514349095455672163364112581126053969012775008201889230547842068745626595491233083311169430494009278882433605386773832999750175770680894212261742962368425834170357847376284803543274873535449083537012019279720261599713047822689661263909411191990870308930352141615756269091578772767535946790770172239058945622513528073744885431892146697767873820602715344608604235280095042030686064596115321970276049617429503157036801109681598645107242261696742177775620009339952456631924288787979465609931367208163004964437541190074020981157256048353665194844184324647106270075685494508689219237860642002441919437734546802445895007391708288365600210174862414633393984964534397123676400717032787275849159051736041326679879620798063400287848630113053546195792953615637921687485799956347517485238760652551205754391670700667479304553956345281633886703778335842132651573733438533928520968873140674511381730720695042543836716179695616393729764301930031961658258475806873589580761183727438393192362563635385597329741221931988283324980888491185593971206679754340853868257739808957049944969451922374298695370194723789814849103812965342740559820739423481519718064422459752743853313270708527192475846829118967692126321460355145428146961717296369714678308591365996095107802914306713607407140208386189919286235465388997449691205110146182243186728061638336906043267128471373667952936783421857113828365025282880998545798212960577673603229092836592595273901740037444293842518726134088734753314259122446125270663329520428902361049391318789199684203416671735377069526270359604736565176888583662310684215796671670935493348419846769442630889321302458825515499859544195389125939651911037716341837372137650289988145763214255455215294769766832486656199853698175455504776262373277669499859802802971221587592357636250004072861482968409819508334896742074287097329146434304500495398881493093272554553790517645836940404929132002616080377711283100376753368680164445192577303897535295692610712046145009256731858231161941677953525871317819998270111340367978330380422358461186694593396152195709505955531258355094284841249317386426482079923845628693985807792696436684165918125693166254533466922778721929083842663382663328813330156723786104994946275682950304102845149952758978371344792284441397119644155948969058548246446830951530263995104082037584637574385389184692009718165630222055313096523130237008060297532847832020561952505755117293307651330468555830353256529021672916837326185444525199569604416415836627781131614934265197988531072741120560227779641712035459062592048562547280506779774301622455737752012577621846478732456609778790642922763600328077133608241250901148714058820053450582427207385110523706111890067146840594978903828483562243262098960723786437651822967136844918155867147030798010210526576020864297223974420246562571204046742769990400783732229742173875472395702626994859124633994059326422461951174379221942543529204442153996969230636525699072590879462026978620968155014299755421526062823443505720029814239413160903028934105404845474264076921470761165232381807906613824084638839432481491169651905649667601358899611065627345743480125695284648550544863296889425466528428831742062607496030123194121633368735986721502949688971732832014225789314957014087964765760801708902655202517417565349067699754699132465125453846658936493098940118250789234983154932934809493758933439092054422553936377316154784966870971859329393170515294452375549670041125725773832824441083987618867344430760006640030118728761334996722050485768203087628152769858112906115054577658069269441384778231881268658086108089258227297328243200229894201086281489847242710888650718619116643704983210229268187394128007945107384732081445396263310758328964008240344103301151652164536218457740082821824477701820574907325912670330086499600476906745992917199209997317434718799454687898529790346567954091866950281329207666170410622467582409267563312826479759217131614577555803543833392627228883451364942937441991444930312226426123694491903701731168658930384749094032074922173883710728304805038087586203222948397610714675921369019229478121943854719407079689369450110947167102652321026424237288816823625871290106882981624358856766424246751050109191890382068644918811624450883228362488514930345610370702290605573908284464386239681023763743938317755846146478005810115297230013252807431326905192727273215536299846951750888246364989683596703282867228262657242623367367167550500937249629750518813403545592110604022826587323217985127885819600425126605140744828213455842675707986694804416576244381447274303388332785595937552081346099768255086608231151578176570394415030716859482643647141845576025034411538735987492702859988111846482234253721791940376387346853846110968490982668408073821032124455639635533975765270812390099563748621942677729728370583997739895763670348388300740037802884533219174074841747345260610621544677587551848777337277036513694821968070821033106605634543804774359925802278469773580210655766795073653958998261528661503445616734885362580864935127547999032905247148152874810905455892357328512137445335750383248328651529018217660399239325480339647054929476431323590125406276603285350826493969480560501505076831782545646302424322226938422470275533667041892812279091016339041998940060770041395774328397138691628625526365600342204898789041372320959603238696582033690439846218794402498830083561022236215150243101292827215645623886417815155307684510771531328900030190362301702544912291739718045905575750092332165920591922552518151940741546863102667101231799601431827596384658025803996717764869038842243086956556482807795196165499225769110401648676321433978675782904601375681267510130608898670959716363583943852187062314126615627715084219419102654075260734841704729455568884701561616389425367492889765862347847809209087584514604808693720692050957584136243498045514206837267641217651165125814783361011609464753322147023722082252762051600952058585581192789877674990679683358196646046198458445922670593786100365985344222307021569565198201865484131252555104460666287773105720555275043902190091476732322416050502087419689513453293273126399815974310164595190882598903492842615799998343313609446733905362188421787052934584308091834943596097854417854603164439881322367817338711249015621803510045577162476017233628311982149919062320397812578341137153426500822581818561931895510802287240268144187086265020062333682748719064302983446791362574846763232900270140907820697952202486450463708176509713498107504757137150619110351442864229010292739006336310569627115774231835985387604700201705549286377526721294027548382003752761743936334935537608705315852841361832956334924252562979999836482321496674597002029564737977925418363528477012297047545623894209294905256750063948571647829613808179679313828874699881064563081036769268230613604948873497073466550752452502243492346177237589441503729486735441334466142641961013091871464390092694329859430853797838822811807373195416526558540331416627808791952372125467407449157938826112683460638929362001129677762408699712636009649297045139395700873662839721660482949049476505308720612773737232863275082965066698202142621043460879418859503245403824230192908255941474014859601265600903543807142022650339379756691448455303361337237125660314141911694099047627654668899923503883449066221291774635993626558210502613105258798871804854604773346884080104900668978745604167372966565439077957115495257003214545732903225818795973439036693164061450912970837642570683601444880111477066186759882479569765146663420440161676293680155132757366666109159661298707697950730215872418889073773904256529406265134034859793517868394733230112815978496168216302166831676062837814914029362555613053039378008442285507345223163871131687492391173966495218241681115886528850986608946442949021343836380481995843236015052217199648141155524846835240457583952131540606697895831136985101717991887492068038231684642825104816800705784696231421300860987276038427729794097551546842058766046364484509467563050901437362484881063702875051379630065701650536880864602568918108953444994409075330192869680320045740315607952444490668740457797100967609405431173575373425323402818079688227927211980575345683761760440699584276785103735677148725229284083989875177837499462991631793025856031425493822953200650982518775299652445176949136521357351195507557680646824766566559582723120441847189179687219324421442048612628708719799793518094754738699627034395833266709158225818463718609592611752905865616816098824010929136038644815434426661051603179655084140655857647184320548623985764307068914372658487776884934542756542075241512922400984264391097291219337909937736854053477455351987247059268748262115697331524208692153234848763575680257886994101248266971507666090639366327860268308581005446567990221425089790670203440247368749072932890850557158895501639813439655421079795724285439368309885812698627649764084364526043925568819672977299711272885635235913498440178599578233043128078596673221167297983616079942856663923858321426195646689507524977283020387900155521255276211236526423415732159846093484744818254315325630821574905792083452578166774384524209787901138628968833433869724035338567231636462717042118181660309447357929594039176609486470844231687960654893083508034313535723494916598838768132811870451448427949307593840776806717511355304538901749135963192203733269538911769098036756211397941993488019003923480374648812305205306471872415255171841397916524017270912082629423855686084531420826091148839526596445374244660735210474783892451492129399179002640022265279834963169699549060642784621533635335629322716817191754701544088600995509357728569743739859473142972224642495137461226769459676727938449773086632724083423368372130936162075472648898067644737259506415464916350068476378319099661079671928229004762024022306335430885690198107388025473151865326972511352683735877338883237387889752519961581272001367146765908719453640662339304835118823766658441033842061925479859977245915202947022182652194201045908569297943487282881582152294804383918249644230008993292024849178842253450158620082053569877811699267913930737266488658929591690472324697116929328342914286447670567629717288838277789667554751910680336044780601046413828519100223989581873595465269121060501957232343921274411098143898568073438780155323595530801366931244442067455335347377044683483998769328788924844318499135124248692835739092837302445103618633181372813448204507096964088449959391407261495927319823056285370069931975162033180116777580720194195992456760334191457942982723363424018146960524568733348868259843477263821221618654757384995100227595172684959340371270937607518829029772838686176490505332120875884010272177387756466360455929740523994205602332960602655881743767606527290742740298637677994727972885668549529292907175852000272969458925993941087731675117747561916256524879968947793600509607200875616444043320307447895726117582516017601763953659016262234848345691080495879614865336394057732286289647727235505251023452151604894877804662542258150951279607185691350908846966530202926796991208569746651573632215933396326961532164113288271333739958746819767276253924921231290495638431352171755432014055041827161120781688688902413996107479536861348257846205608425359957499187341826643999852964009693215246196991344216297193620515994403221575678815924850500996861694712343037851524134494540610090087796236010153921105227347948919521307106561386080199534076810385435451653821873693555460921657591490714882688754114283296358848695274836629074043600383352061186727721356967009624304904065938702130137963878877764364135430543068838576083046945977775676219825688442685343506879996741651239500804322488047514921524293725596502786079219558900078246640681509986320338334708337565666324365031537305409475590636621962865907879658281466661538300883087554238936406406663878153150763652156405990639081620978407778156790966791107628793027326290680528676005271381141959456972424719889565607391198432357329342929019235081081185510797547469316423763162414911079646107667286877890567633323953487442960810894698964625835828171957734416691221152061575755341647870764532228900597626096578479149576766863148033843505322464347478755751254413322831520134835133378155009573826154700864613345763652826960153744199768465843354506802471517850876335573037837769413031140221361881504676143215254793522186499295688261470985782593543333095222993263206732801217887400308732898244381678560084807811917208576390958045184469029475882046026167769391950245949591774711489038474006747269429530346850067171304822458817838399664542481197078568149612674029917904054854855352557464603896964875959455252778189559730644598156507234672566983010915534308674405311088035468288192532459999026019957938598214193156684594231225585449918664736334239146890818677300421940540732476015847246102482373520559410603242596253203480650510387518194448195451375645143978787011266817547612170702825993192567039578168685140174990401383697478006009337212335677110231164919366295938848681762448215373843672198831589489443122997634448052087870625934555997881501809193572891392781657095130928000090537318857804984636614376487439664480342670708122497519979133764058608693806626112701165960045919402296689730227393172001653043567535797621285809408937813254154408626711139806286453389730010741943521658379795619123186683003922456348186444234604269440315661448933317729645700006639928100342352397811791954784420785535253605346815959522421508252889293381355740886097696694850139295040599958680537750749599584819061526221910915230458278336291361715020982529698683882099051384758389082686963892288310028321489844689240256989540817051437802989062920585255309154957986772417526009184331052198684061955389443654415640147061377691983861035521797101450438536842818369913922259032179104676124146161601193801616585877151620467116302154581199873793366547413568836058429620570461837346437193626998260960794411702943981723277936916358979847850538666049146499558496337343332091440006531017420575964009795361208809975403958860793449686690361928911220648312957371272227793447180357056700990110588215591290546178880075344517442782258917924835823352320181495148153945446462017719612122636443347622822643366074096016716229317250740833561856172071326548730409852300217428675193445446806986616058038546911338625605601327114412949888040988254253990556795356487723076412151320779728306403670356840363008672968428611851728743633579056912196429261729315319174530208247478910599939052882254026262107061812060536395838869302426084650545679904562118084257284389807270979805091990101209515511626044480461818942647143351348186567333329203534321717834727505176514470364807977304286068806841502637365961675226809577977439833492521434201668666972166585350986977101095447678557757200820395266161724107932282797851431212903650811360918214426165782623956230964076355787499964295203975873627234476138888732930441509793612231293797540230836454953222006818826280979729785049890796140381527455217493101448817071412638022132017597283463668545822990421648168568423126596580788019788809573081791670504614104735415513943206046427694985478610313284386900376666796764210695276259891157630136609989676672788518565651769978201427366223235420302685555791601182426140629890534388466715907842527015759707012087248326948733915374651197531222474665503652299799026611911968518375945395791147809583019589779714020848105334249955106677035983200156536644963955427221662745406959824168504342261152902063509850908098902780898674791370686969538958713689500258390246176816386931371235085528287503386684396820310419882826240001983504584095173672087721917953211571267068323931753014763894946620123893737115062335998087658804335136517256135389564910560822501024957990228840967685328646441275226870861222571532362329119833803986032233913203914969890949822892312896617745385131312797208454773970521623335549320767025380211869996435989951829052985343405510100861441381598142273944705748422506744793174434071183809768329879520288315922313606791503193817520042934299832690929538008833621780182326841309749801525484929083720916213352058288723061988121046826896302667377876090311829455424385625198875012245486869547943451338785041380856824036335888370819416905962038466013355113085250215050601701042691445405681699145545480099743549789544260545775184511712465873520532824971606745901983378047699305088663573230696349630962742382722862093833963085843562211301809263757496398344923694801552551130489074168729456954015185448911768072868244228573296978540384581548565446381106063456830033324580144497006940946283184369054006018816032611201107726608858723475813363561834435206315316704207148670756734500640102796716975712985053328111428725311828286890815348640780013283489455871517395534989309319255426186923618551358299769733492470058415401513743481092908582271463692432301582397275204113037321696341125796338978089391878425162500098123879051402203943827719461470196559113859594417708575015596682416261599388337645229931286248572550818570778290327685665858482987590525204459701919045944838659350954474343113948641840811036980494641989353027949235108476614193390795945906688265801579606005435709428870800797221808194277329720181471550647179584870991563030020547392645012781205440961650641172112885765106636929526192591201508682428891695417728791811058908547263529187156479431523314581257517695874722400138637783703935106799506952636800265232328785226743287421118473250378085979651029759501649601924123729246718479064026349777061411366213975014038809143880303630686998010448308590089899745445851770024731798824044407964160978312221112848209942380448942765900481127652110819089250144712143675719632334760242175608402520043451995869073629906627023392044121860643334823860150206904135016845423290144316139557993867050752721439382129215112302754389759562826779035799916949601698292169297848481336732069697731822480240753366441593525497234056350617035906023612147294021452343770688946816243237043975536246947657573526763872716750467158212746592611504770533836434591445925655702407141346333212241327358478549147389288591266834337612208603682138800491235224559536293620569034831325812968681933805816433436832294355384149090040031101232801695618144155486106515433685404331139035395042062081569579334614971341557205977838944670380653247842656017184989090933780664974589388220085344251818908211558382460744428228317034840049537960214686197450117086841994116096862364515223085447439114935283039832572073950163577412450100220252534991206404093683722615145164352021609603549521043842602308456172356704298231652036461885862951716177665041764263987447330908522057091981497809761459403140970630110209235083596191439781467158404165600812383619812180843415115351897518783506598202186396391496537771288892472722998016621991689658142908882811113185134537126324500433094741915339377731312198393090206157154266900556103361947736280882163380977700754199334436354487446253616999275347199695511484349843717680817477667931782502696945417759395722039941772061318620211933209358900946479199518736770817666557034619825512808160269309825845869692615801980259964153118695910292970847316736265809556995026930561661673519547463495267676307243048633558769353377038696750870099745261144007991587661085380196612244643030386906392670087607488980066730284682426852120589724018339374245028351776386905684823879106418854715970048311974227099479081635141624945767772597071283469136642478839789761473342668032332760503500383286860181554374394912253027595491785666318520230724803398442874389278930828684053534478050695358176950194980608411172635623891816720236966955189577435403384294997269260655323181321694349668912610983178166838352539538791434777166533918262529108412514274145410940664471008644056997287551094269038699794567015608617132285623843086949762073093670671181798374756389731808394621571710477680090074510858878298216579694475897933245471625904195921199224947786176092728390979247351606370119864917908769011021344659099642896995333680070971227648496591538108811921881866391610834928835391326169225343506865797829338568551046744438639990413793757278657497104895313010275564451519435944783318742404927655050752111748008114586683123250794386437763513014215225642204761380246055604514071701433373873999004440181603689507007543839392932334327524330664297061768913485201664907143826533030269575826381566701545907212118178902180803419753326267174089198778577359044524572717715216180785339743919661386138482735297232785770711313012404521837670098956738464999994927897934479166520555694646844766223203564110205182648440011338867517399480618826051976142785860696991308223700174638960540042230737135663592821913995052993919464390467338306896270309150590803307108452964827492009363432271486363110793423516665540084361356425039609555987635257229946797744425370806300689215608925853247452883732183660226563856736458883560630577943157260462893373884877921065537185305509667104695820690866993770443688791366520545044346099325515413175466619650838736576835991505358410192599681835911763640922071022026239517916544091793291939768702100846801732344921845767957898219742028513595237690899335682246544604803265187116183296859315607849598254170553462991865996141854127813490682546339599373445353659114686056432797010777334204270658559149199410717237097009798108584289266936072566676429116088531398774259039609565034040414933835965841544851698651692883643568531986078982627415104041587247787420464055586316931758239550622574023044846062689895849782782223112203608672698541611995053159899412770302294114117500481254397901074253572972216627659136477673755634816495509051206041406710519540173093699973816330975573854147386039172286987511461481569648221042473204029066604805852566827896239156417944976719690608258336958334684659725189312408654239422497833907913636406399776266255751822320897387693582863813417828498390026204155421847598203528188811867092749348600747526297232387938830994465802414741657993444869165708263905885440700293341061738844164656024855391400659752278620987223313271826975420152731560601002907548216856817191409304986909737354208554897712272957304534462801879551160742596945507298094998017394157276860710489255623696536337280506791376875058286326910009100215536910887217882741948047712441811401647637428675524099474412589212110726211091445414749625009561228022660622015213996318904816193688822929636028546613482338425695758705365758197950169812616952267573369168489598957818125347675713217743097841637884467668971073784118927433168724281463271188035637821147682634092777270398996960756593530219285823297640682695753624486729545198734795190821275833250846435906427182130412773970252162786556674162041576854945658304889192037690627646895430718312911977737285804432389433190217790351810149215145991302119516788234681667750376566413381798038110166763893785278597664652775736206031732976307979374925430190156329824986751296772091700314242290702924980695968802052533750844685522053310938347688045455202574450515889837543692216165029537963595572516895922413531092865097952643119840157600105621417478261139599028528227107392246950121207749260056890247662318870210657000146386030017230109147018477457794376410823053887237382746118421595707817326782727300276186985780022786681241089192897019423045813696307325244083411799751928405539200514569989903745034822678655700490245652454800468208910064505899524235533206619849670156753005412232711447430876827857874428861851060574859621785590210375127996051584305064902052377891485126864201508422381211543364946603459616741245007477864124352408885479531552145211808170801120631280778918732155009349194791814614617165058563822015314695713565474242117414847254824981033647808319267990612519880220197929442914627891493411366292776262638800582243319476607467423169186386000901603079131958289433107779253656184942704737955620541140654330654150950643758062512358270232876289696472854254723125130019973325998727084680321966106641211397607275615778341943957875050248481246381436244422492677320959486895435917413940292269802883285688768256851342747584035307175382543719402262847341717774517827654741346586102525698392753793942386972800559750568147760452712685052458586621824560991708267136016970797729913742340694128655410623233152457695171716955602111632385996904723258577158959920764374753955905975204662784597324672706378873783025882788442148533789229716650057275617876759965698262471715120340921368465679905093476253642929786370823932259113681326504807564462668796069984133178629102963116572175251753710222722587825019418794653039060002811676737317676101413622691347082167538286199568321231078669563913634872297926384426054862471388144725970373522657856756244717821678813292847088623464414040810098994561988713782883296163915113304930668205724079875908945741329866974482071595036759787732372302168425166498629285200074088165484570599326714681771965383276104239930430667944439946686789793052128365217027332549142119496742754760687541490175006570828604597125827648553082529002708123392856605065331408530507186603032717719353248527628814567967782140979616667425992956045578522871694963066006490486896773414723628061476361210091917224201249351063033719933201384067988836088869398762667477278586945726256461269357189481714262234921549077308763052659441585588576140868489511976649366602284170938532533505935028798919199996000318748282195424189973458910253988763818626103383328236294728146284386647976736718801510660963165720262850849869804555909530859720641266479444579394001963120428318346614166205536192300715810485869514122458964997365755066557378912498596644123399852867768776529217476190819307567224446028918826750514532561996628498968847498518381236335547076972311122828349854658657450378972225205871369965119403462936479162130934280491517441269852756696903086872921507400165861466426928769444490831175691050666221538086951437462871666027890476206067688023615391419164704724258719891728894477963521342501359376514249888286348656258255266261894780976398577643100164462873535601271562481544063798859503487556277345637902959919053671447348075441702545794109999921795848230289887823305549609582558599426758874962892215760258161224331369324902515883420272423838083506604310085844426314605277414885265877169690365814408162947081400780759110461468102552747820750625058873385098098065782145658961161594523311066324524271346519859455891030490986800557955646911588808710368876403169242202282029435265941170191161322852017848060014016218279374068865091427240489234353203015323521999240850043794744556871384788505492593524243016775268214983334470439114649912587961560115084392718636632342976187086977033053939874330316065035603775308291864640519729243875612307898025875151841665006505143428582975858431526201794962754851884758196384827443052937839575245512009054701024681027075798735602616807263156292642361603937528511538058540185372735898465527602962799790652264520782499941853443333794034046514617056911832707312569088362371719123733963304096811494840507188645517064772403159165650105165128158753500411175479047226885610004615483810038953322272454014430853591065032901436331582290888217555769673969908563677766937595218221418263708654155302819967033454701496867040851867724874717809306150862795926178824439655205366480862017635536941991990900133954901820226745399528552120650663775576825842281738326256604996451757332127444625478532018800146510764201079186573150797849113292847383795637305378147194667107361512212774803185477480000380839889614424441000339079770592245901769520978043431196418660025044086826502029120589539812383793380690250667073408845355265236578518521580784295602757151146693457837624891717813956818055332089969610184929916091910882694901039043740394924354802082276946609439725030054539361685665153629477952401911195388501865272280808577567978349890366016827175682448761609392234939655233968520984770860505707180700044105437985225107653402171003200764473982319167782395793216642996890897007160949301648033805631227024997483475170022481736263459800829650333270170144397505178983402168280676742312415191792790817963074899741256420720894057223225863353108867588436111941490773826707105051028030652423816316614273616471654785409360713174816358200316034037312735491506826151714031138235158820555757246838863708120641007431473002870583793584554503533655821520609035327294986812555922651470336682649516756859983884360355046662650696414490104066956532986182791941817908509711528148317127256018634397757827003323869454126717433784396966216339824113967730203785659836633233984152893331641166824003239517871162483502676945212085511449964018396500399834435590585010109584216525206808915413327113556896810347768889016348893540016923991801590164393758201811682564393976647942093831849180012989544703900177893236475172519502116396009880257669003474153796933341417762143296571515677180286591838295450458847759920402063811759967398440937808338552213363787210510906070219929520980739561545568592820749750214144251264923231850023263473759652181753865174362652553284367508076040717540053895929437083251865492876779590103761828061047874217117221049405162901423487973524213973459826438999950456925186143171397825182062909896348656676273470748923614849144646172104767294722077635256590838969167261646992631890153053687222853495933094215452162104181701365357152085151035410583194075851167864096530764611780273501478663491423732546329532303940162846119016385238255846382754729345287851381545699944999141721503690032509497624388735278871146093734577812743938475197782341982441318623162801855085288791400674877099943117115188772829990544310158386223528184424745403441227970113475849803894571489993585809321907256547266322443389525608551299123939657499236238775476758182386729513776317180913972865904418583377268948019153929142416866609413878380547674066624347842319043583331760917256958836834713009895512936553988313838628360764818772280980569020650964577436415311649336172835465914586242855933468434737352170031722960985728429827165243246496156106895538863993123876400060802632647817965376200952403731493121244935903927013601514270305637023403482914278534339974031208219877777920234616255801208861540359084468671716927038171207788367519498907991981106347797340555672901898059961494597058225490583490829339519678476249960665388224416971394864745082953551087764786713276821275313568997319788770594128190097719109157073849554417346196355206145030631804739376001670988639542330496660990046005268034104178452224342392704605102235337526092276110832255730818360355876038461648727415532661806642183270893109160212328721820152536185183590693381240244644652835767119193398263434938664265395912234489995580071906522180245944964999235622542088879566507750057231944797142468323576975183461139239984792727892412185916864052827017630233649753753476607375092258552438061534819726579998847707325784450947234228254593403707105224145336035137095617822089635671006151503501099801054456592384090655153199989229428256416434039661578878551829746904440220182402700689746181175579086304119174647024920733801390495666423807813001893692487734924045379569101433725031349773585031013798640807510499774389215861638687537425479766004092660480032454673980017240224445530426807677382033639569857675790581093067299233879102117322534949147263773776245963207793539540573045767588794994897129146322185025002999370504216814961786687351995996493733744598744136889852271038704356089372055182593100790336782459604177078599678210358686810551054888438178398977623723984114769439450314196342345603061565354540690834216244442443430625963100530519491029607703468060198725970969032281926786923963821389105842704958190126083949911228713449379074774661463220273682175763697650091244999067631820340305787280437637968705851608658497427463101883413993066326431613615355910832455211394879116172150326060424226636853376052864360960866381979857737192436152369768436024300777510515542181191516545065495810544418695291419748946932761150462745109471561622304056447942769645078772706348648323556369546077962163854433188687501367548216559015468383642365928305460980078230658579591908487996019296493314050273374529497653787844459778618630995720769900890070388734245333199138931099028997213376176036367801551749974227492400276105475027932824990083555801603165354513201582501830360005850575079186632666251668815400280248943911821782655360434612020635915408847531441442350924523028562401358546875356481904035423070037197186987349704631428411905896928701289245224934479049611965937170343542075770798731198706437310276731619219944495149078954427104335699496517731033439261993250443418776060585666399724680287694448334406158404972316652877921608773675441622936442168924437893512416743961555700488419469190674832930487734543355507805321169417189989246988590354198385147872126385502874911793700908385069208406451800591583074033696617258399633374298082810686789519372057044189586199788553884582960943420428081741773562727567878230408317279033182274206662697850141399823475055935789922830767748951340479939532072396072813522936947093318503532543547544232742363604300902892579510520841847441835604056407486853963688361925577773926991576229483339106546754815944986818118229380370883592934479979753920634480824220937732998984550256565802888659161313876590497076711781651909964904316458146303821282656903433629390633568669787518745894439540941464457711313482786608998706873470446913936083958058834547862214378917649098143641858443331986047602005153743620720765196652229439830065080494380692544790427021140649436389417909883614378975116133894357503054326009496586942949349384190171142044291471884653931972095988662606671738943806120786280617159844151564812179657065340176424427712967647071104103374059495453534447551870207927555846285933487021688722445535384370612671604652624636985897015227112202317982169117360481602808516384842893744321214571868453289448873053654628746961531069463142432075101376480769103455211753255885608561251780543101988340221280526693555523195486779493485961556169724965640731684637086032043793023089566171777903454390771065667966479989813408366419201075540522834442717530782402784766907394423159408935493453709503259636438161827375720602234854588271990366165656870659983353869430047505810342541987218418102455866360519218766598402805011190234457385049027659778583489840271381607415737993815466292115393440255970137283219650198516297508346033366756654966917898050573214622624562944448502043045359586480003930918029776520263280246438436478497355847348414091900421838812847677199044376732401933901498366856629005583716887119356669037690186172691599958124754705654363422392378743924960693221665578829101075852898523803152037123148158842413056711508276111315314863315966887606646398916503293876354011842737000916784934737521380349995934345346476862496592157626259875652290691081361755879450456329135564099007027879489802615732920153545541760983908425818105086578367325643996863288230068024446831259176673863134272926916206071174883363765145378196264308108818563620594852820824856077412001165673717022794192304606708690143824038238226127580371009517813982072196212596136973544487402535338160105689133471769675572237211318405532443994465017779321779917707702602936384408487722044984134994372892025699111750852449511909015463690557315242868918726237514076521131060312365685547926342353867274073845483386451776652432081414277254215311453672437518794456491868263237796657486054312557848667400684809697581307656465331497222524041372230527838035938903667010348868738312820147026251632988544424146125780663792353787642648346953769006599981383006230391320812284111283799552911144921385263647259393468421925049288909701111700703995331596822156612635753727228153539995232664008411993630157541209958607861617000455258946565753279648145041615491895539289298932212656638855919432615916084916512498454980335059573143295031025385004511694682484358405796274940272703858694914266919180119045045010515748970117299014903590857337006053359830523506669594574259896789904430782171040790017199796608130065814682798197778845954585927776193463006803481933380649350459031633208355973857187589142485624645509412954155011690780783838663540349593159900011758333431896162845145001341016462482818951745171807329138704298244813617862472536967462208948804400017400348846226582347198625591945154490040500756178131878130454871407727502364787258907723491634012498464503485674319899604835122531929425982493462205975954186672280756035892585580863495848443996183031775275955508817031061637172643362908050626771531226861054686418982483022021096241260916785516368797315359796602995023926533878450628205238590349276101398078147408633281531010974380909471770515826737758428881845433598426130143582731245485127901379551763434210891304037414416023417163579017595087177486997873224770727666052796928918608261560539181521407368549420617273654389868562903168748997531025096760885829271603920371634593766747325334549793398512438117722724302698280765754635542199269765633347666974351459427892326758406146903301579304491009092387644886930165529241391197386926487308420058762361575051473952580435459797516199979037396576230018732305048939515000683238654860302867787738750946127627694878298504866977193019300727830884159112402341225328969811356050776118707408135936765298328898896696743336693197100251155166348326426193126918730892554536995642439587608916713597800848251062098428087848931902936342194474688272084736540107377071500976557119261748464114470125899957222300561399013152514225230614398034156671648098174263316117686035057474519396519295783722852537523612605447245896669922102087841481517112403211577739270907474547280714203813742250156807047722105733751604101683518845157543829780956769697413467631758685895403412211960528937538313947847208295919581579809111129031175672664734596004829133437641398310595576946867481476614148221033367508594681023515807352697332943704455432971764251241009177853108769640136177263235044664290712165245133650247993549092609531422410417361883134286809956449763965827160441602567274254434499766709162969770971314646767255247994174333685732772013246480758400481802229408845451364128693782581831695423073799356325339063349050972031359778408929024775159412814787817535220650998275338957775114418533786871085437079874630156181719246585816200085495509533283213463808631198011777031139995448083133294330350028214812752898142239651745704377750341783658724128711540410756625213393730579079932681498960473173268379020224032904678355523062100969640291654829794739778361390688171075117185888011354758530447469468088111121389695996679895767457323762073115534905396462920167133822612642421780147444551102282657322358257730481070930980645941422022801374795790731875361442487558066622923867066545955729258535557924563546640475502543030626043860310888608588749732930516876251616946946279180685867724979621551017480586877849256085952243791022562966347883285297810306276697868068158827742110163514237730113234244349516388539801765220475896838268892543486876852951342063510338799133953480410813515150126899641101019074677991240506202400468880313111745289721187874618861664535268185759988859940551116585106858880625441606815933776083353467835247030861747257143562620071621295012607378867145794791553857416156211523271607604264036482616755065835424490270574489239618918385741260415393197848355963817065703041143007006677102657892235431448679238896422351880354547901042956161054990620364347737297452509842440109457278376606257293558226472458609369174712376993033023083485580604809418217238473831622971660467474733020159285578697292596471150139145057792386030242417215342853548952384787292890791624907141264384384067679678438388340750459891279797775228650406070472019412516437852398376617935005690785690927610817207188543047952189534759420091889640018684672352315855335547427984576398802950600193427757377416198437164774961041854952570727878136532424707598438037586162176592021776779108140305497424661915645787717248895685799426295276015437294773149684981071728822278081560997214443129334823656828369659292666002040977849091202955154602514939844340928544762541819455103153636930704248609101367245388442645869706419189496270137898130256982921496194574076807496606944285851040664151276315484773403876035136589136208129461809764166706309754503466710574753893120477436571481523743090027933808715154766967414809254966906199442862084760951069847805670421535412134245133682913274160412977298816220698880484141763729721005252110386020496392378915497378500982500313174897053244875073352616954922325657444279449262049723614907240648288649473273644594659558781382141214950718066264676313281891739747223459448517391798414984097977899673342471811392307903533670760923989876241044475314522307809367711925913053490960984206459674016832163262031238727729459265137155463319599216834733036338245555713941280167303896347546797452767013967131555895654771704523011875091830393796785417247158808704623666117955740907004967063301207036312820669508713544520479505080667579540256942156016977007583662557976505477930637068283736646763294810031462847756757080837988246582895389869220070128166375633565236881107255457365764000650620645742009322327825018031794912514627292240851469691513080611080760099931980324188319539339126632301629229225016374707944727470162758857145298357395301878872640378186356742375451101049701946262196830371512136235140158684777014299732895800268173187426505283498683699447614489089339049575164240227841729409448788555740480501864583255754595521554363594473606743696420906882587451500446335385923084232488685968923644294095333942348793607409131255082118958961609015835198826852627369948668062916658962237834385004519955228914122106397438103969059983433802484770096257926694932235281737907644152586295029092866316730682050750572007354086412142478732577048447594043125191251729262348500949097423216657898623430119153224089697776323350227106050912946481128056441514393095628691211675692686390294207827842133792579507692090464832380616941864365924527443617184862932390005411115890859773013027757155482267175577790248873857538332477562228135113439158473245186897649803314118740367869167738994991331069066010239689380711319770941722201158119344610119115659477871180216280152028404582974614231483393797736237679676325711621184188772532561679393613685001250662883005137116119165998967677952685982327636911123804675107836548766353039428332090218558864128033351947958144372775946524777981130347970736357459341628490967591398614588894142774519043237865831794179540271611924571810888342775716693939125868712754125361574561887496539307429127387123475314377336143361887495467871378402035654822276708569328639650656716091096777642146789290770349497368817316769231292936165207319536080001585177727941781061590334427349961599869404887257110577766226025425252373172303085967137505164174921930234209133990684229653564976962350195095927092687776196766869251194089297241362419814747333905427180024107232580100586575662154588542642091941108048108964303257520407335454754178444658457829819581272362061006285591751647295633143995257479366853158838469217334061732141250033531198470989922052369845362341331617916101784445576360840746294289945085845061454160356495064091471436895151546519919631781416409968434679514878857188847122071032508344879415928029361226268659546694314184723950883389834507382473635771003246130925262101310408082879708688905525489861183036353650927620344030880862294306583485550255902900126094127222456516248232991145400640215329307925247873552723566203508855126857373724239073179935910597444526104491126861520884439152858724324318254614828223094812168150131878274209997322008007595727168442619302674695995212445837240143594139245603379879692991666345428390115488418442803330828343304820165172945369786971516764067446217229189107696584983321047239069606365627564185257426007512566732088765985066897703846212245961696033653712907027027638060533091147537530571010851225076318647335584510540157624271567330003622806075835257411166015702000021988678442283075655979746169506816397892166974680937311714582841460887945073733887767245560519288761403395867283786625129867026365706443340503209232710231898207227012814767079537515959205690111095842282102027560328170855965496612481911222163770737801197824554015477716169982676078087478070743912924702971837050872342410633426254896732121593123982152441656043313218503609373687476997849453409764925767099341664255334851123724241521221316789979324913894783668995089730449672038711932644657229467610312971570735297937498203398244960145097751838661343325534139507540580556562509147930471563443256345537653839472520141238508334224392913678637415143526432551616198812417297346760965512748921384696281934815297733344521244213396996092017869877410964606117976668289258590230109069479367469536460804389902354263770253255978516920446247050924664052162198664733823139598862010494621159986237067363348026223072132569388684338344123994122469780225069929823912834114374630756800508031389251667239510271326990345604326755833586460075042738278265187547112441876535603763562871049673717960525509568066792122556921573906744004439730912863387731233602131724946076667967852231243604700455245448798255595200957989146687063759182904979929112709535466423707828681742192769664261618671111914194344590883166187813127029728853707896432015947736952889092135823927439508882340015472802814339920690295649381080085372679274863889336072607374161525162092385179774422699619771346271467553513260389825749425670811243800467384011913794398590596245657304354479714141434150563978934093301913881519843441949725166674644205542889261299544399490178635184276784681325957003739664745070788293535540668452911505595190735337172346040776855745750633307691529690357309997946022355533030382855750400992222918553463107845465178860659050274110471243847079429245889262802297043743563711121273491708596009623506419486750016377366306837507062049181156404248396203924307462978843999606991280018694484942586043540853509522646671075375381215453007656086946372040107301327579089671262692525205329612207937806679561237494526178261854568183927790795569192160482589143010148616118458295466548774364953727783048796169435256152628214809532062784830155069971494331499002691587481977452634498799931910712875948213919433087021755608686367200922921867957854476085430219442884308705177556077858466657947236400965041075235569479638485848291357910170415673746760145881986189305622851888252868555808858232659006448889943756636450714289011790988242155485036717049341187407934045887302149904158651856953528015766604535098729665413868091224792559014203566209225078181800031286982758038893828479032754616146053578583203069563449332419958756457996418999849390652433588940724711580849882933276099722445080719263321668427816976908894912600757294613269627787879631606705127095965984040507171239370232332129779518204019585418368037290863895194407310010922987888895780769957166536010415061925533026452001897695441989477545311319031470410285646603149227168495199381748727112399554113162783217706412327249400468263092504014264697364185463746867720631856728118231308737094175337389773218590343435209923154865593914849521944539458996073593612355502969285390645114370880774469921640294255302837566445820043119347484782241025780302654396186665858222655446074620452746401545367009580197248633213671378084194200828938370398800616659003146889301956908604088829735301294965525066882218676615500420735382683673984240772917312356060507243823311242328024993022378549959819435438011516732834454966138116874109574968334182000833419828283702621617283178973066439528569413570075627804602974651948615166720574114032361950932961199164724533350052568188010569409546794053196657111302835171602383681368132080282556881810846265826443052365231683160817163900843924835984215269007628488440777157652962071429264608535387179256062033672690188529824394359905612850217525692156143121621766979668377646274919222356852098927104977735300159811853264601622969674979456929714014030757819827010913165263789787422861781955128127749831350328511076324867544561648252720736967465917974406309738320674735311743827395173907880345294123739817067148890262029820992798935854916780400981575818354680478010629707789090726649525368342879282517891313046670341479775958139106138457447486276062779473553016524034939621054987158789296817911104679064438384145576474661652888192352074607790956371540037345135846859305648030692687948873721587081037979578438358600261648430457943012876863014893577098917248314845130305320079939223498257348917267482533775685800239786747297455282709536741001485195721743298776432879535054150739493457607610419144446956423431430857757683460407734113255397073858665247171878587745437098411107214558731157480402341907695647646175451988570598849063888839602620878413500267842615903056837205647373184504940883008190755932205672880920208477186876492563816132171691356186416589470842313276288780847101101015021708690046396038211838720431135812287075113519888875376777703272301931385048026576358456273088532654478057791632266908670372526422745825663440606338532497252634044932886779659854639248832383949735662612823871824126950910690446316321325066698932706250974904570921461964547621427012283174606852052998632704340223838150168168958035239999049672007909820552939102705705513823083956353713994328273403548853990366204450517795915475648007497378797750364587661366905097300541481875127315807394217599654670825164832946456526333691122785784389240688928251887819325149524182994397636607404363487191717671325311884080068209668887668176693099361360795313685182551200653590708674177236772040809180271487236723767995954479973472881642893785978641553837059161774092111273681363082598453510743105577437028637589948577719830312428932008648375232851253678493234985985369239005044223007026865157384042005038901896679449307904690133409796162756050214412250113499110009186832785889162037195867088109478946156993828684057741145421811417229891602290795509407534534039769497441448493282333015964928712756720244599797351934366491672641630124937794672429161061230932944704167495199798975761964816001969963062109542986439001375052205946468590750247337795751757338562093844941534820358316388804635103744278028036292762457254706460255463220331105172090770630558378396180137260532403666104866379195526364227840046201601194908693792437250177341219840935810315365876400441707907272312415663321337572051959316765609123476258899467075407151986921613388741299963984813816328941378334357508200156499603222374445857363612035081744777742810382719310661957338463340688847548528321262839404079336909826636068146994869760908717774319563698508395419977832553321923702579348436267421270931233376217025976585911523117903762057651779205345566702383534854173552256844323794314162130911066577566470136051229037009560635132591046882691859737361382792138593848354561240885927144539225039004688782499666352683477563366223671310821660829310344659335902463316205906087267712606050812747688828126139465979566121609140740389176522489800851842636916206390710329253133920068200676963407564771748378944864918710981553076595046383273364755675085643843129315544437860802762093067735628510223538124302795476083359235360598742450598167030443847495245868408574237962281319169760798174790332745687823970585040859081858006595288634083070631947579446367581753323050239865562457481996957618800613228105065387201089074801343611079022250670380170754825322901016455650133010823969227395004491323488530743368493806650971941479419015889663043000222703247202662740005780982741894908596074962096391759271750076547620786098309113744442420628386319276984695021027402095834421590350077651156201113219769245470676187306424445161304266198333047481917540696150854148674908278101837529607488432433026331687170673392197882982182011120522012788931001987311681121344091755256320194280357933588878617462841805211459613219737516557314403257691803851345513046462132690790549504468913263491430323376108585852042168301182912324037304144614495881889160349449644816998793302806655002882925253010431329840513845584738426466254935432571136584237679205367262099801726218958057478429701564377346325836788900104282308051845859112555263526570484375024547497629193279870610888367569863716594528088231049209212816042046194697636764151116799119819129113336298027737269432031371758445611275691052851073791291264981854272337563539457739066137984071395170837212084649290932174116611404723567133684293864782726414979698588494495688164213670329198918865824846814245888026955448166937836097770254756360938221722613855819641979805239915590750246689029509822779602217170838564483313745305467628101956321849703050292808116214427491909558851428502615345267872655838515316544656401598480168546895475649478329571929863902084131420261963299814976362971274320782083682286596545140712062961947835303466509868535299011505966327642812826042268186442940841955296028010099195546965850708845419943305271139796694820153040434641756507893053659659808361292358375368932359927701113398095726277927325047492740294497940837008543717552284229459778026259456688498754652485623304568822328714080905962402821338223191292291430033485966592890408677521026221322396845563514208586785970289480618126101900832179672305016745150738841131589770775763810559573017238965633619866386576556356602962976934897153915772503820552437634497668268108932048258618789261783766192629623895337217017447147017050768106925132629779974507845866901469369022659625190665816834728734054585580299893796731658661836077207806577947846176777370130789143645141743108995705008079327792441179992372775369469162070245319683926796263714545501646200133364620053452915005769182297855843839243813346328190570794894341321808365820323611416378049561489773755811696187471524275796427519629171630098405700903052526726078941848824905538508188795083815258563799296904315747270255403016230440669269379927963568809615815938736832863567952839986635976915497931357406723690431376684365489763869899150935144604684351992167411672829734388472776628353282192477378379464919920272300734083067315600895024846747551851510403818025601397932696748991203614349127768535400687657608341379229830951490950855807059308836378557602344969098885584489296146911626269780837781475323020068406653957831421938461092392529176367754341478758579444466565398121123551081883424043916976330557162653108845973087462686079590363014840108255142128614534033220444127428549704807707538802043641495512754314993694320370251107625621206797922817567067216060243919959531534478965031654499697652434013187021347263639244370807441816831689463330899701074142339671666361477601499114818617450448584574502585356299281194586666221506503384542471610875077441841093352534332474225175111919083870361305284590697190027126967511639797027836553935091545853818750655069829416857265519041005245545277447401972944698107380300127759549401752685507782176139428693381861456679260640038931367904118979208713614018133488905139137074531254712769071490569080849753848929461909988233381907860832444525640696260547762444967819470149498750653645569365636750207849105658712456514893438817843678907579858097665644846003240334945609438267045412844750192429951030266172650988396652777312072097456557582467893453872969319603918250863985222590590542519449339311957289972268923362354995338559348386846845284010199647385031823590768607887703235724459365487236135155145401469811552073542297215421020264447017539557092529972180043528792171442643319527872962754364169447411431148042797081583535511084462778068814022782553362032014801611646146215255778092963646826633258273207569531394180539759118758165577243035369061683557651703428939836163060010413217497468644133529111102430406483202477623464019259822627061323298115605384757947355451220762958848617752365465308164306524814021871332043101430206505295827630243759752900406623971581870271842047829271364457473702107816403455020894872513073561428824327618044703787465237910544128253963133605644383197357539383368870780174252440175898019545510899523904679816785282427201949073809451513020184870810905139981850839363764697519361327810723914243841483412773331011577853528189284839151944388279577710231985777436532673718364360650952598333119370554236633479503983110343054501903078642295559161482406738097255990770388237078124460655677014949176996155459055736688142304322833349688957891719119189684230445219914619884955247004349353926375437822043522944953739863593667769282944312152670689474076820670002315082717590947546530668449858254230705906299174898778143563553199519408362901930233580868380215245897534020248590436183115891301262810989367202249506325806869861138057006653030360988350795967270622153400293187756224203978273066583615942517017054191577855157693765397015150330663170668261890974267103692488880811959389996459080451122344357613010248425535441726746418449468271887769733667853495144857855919545729136686014668127165622903836746359466008942013905349343727388236029628001602206472109654606491851260225349841872200793628213967166924271131373405950443831545926665317057753715254668042068353893385477129030293878404417941054127093916492134358688660876183229383692245207472574974985551698686253281153233592998261864159076679877089528728689355349967007853615181806687044425299242824671799000490742300024159429019096711420459674557193175216954479684674565221057242565139567476439693937442613140407800216263295634837923751471108452613643992934162534611440582901610922002995334120533912557558378761096065787369077553123052832653123515515671651803643637095616755570713120984452091248083078950156372684059291515002620238315860264726109334819441586194006378724751579640855211700157254074238644186576554145014137507010889610387801680239417063473845926413741501324957647689842400814933388499059461820602485632343720523960599269048887561968898713893826890463816066072800051119955790773663792529430056719379359641190115801951337097581122331959152148062706698944372426965213428541254630920993757294436758103318102827753412955538732756881465471079396914063659312436018753606157576022928872781567586154652876444979379833619314230304762545190258500658684415337326558848836367646806420071308420318262549708056703154184374292896696918769219241294864787724614407003737420100152133906188625679442393404913728143274562368425196888195979526096012379273367924844067434033362133771804973723004257706052234785325534747544072721034666666074141901303335078377340937226452276077043301341002583281523114519720404182805498574987985207668235172016631408710308419354133880279462449816801624547084417853824462602170093331354473843869702533187676833788063429373096198504727178647493393032746504498285091843517596257450051393644096612770246920713183926867324960354255632609518136754778713032139156449456655883863413999562572301796192101789796411567660860184616008042430133823276010120400154516049767757992323606817857840776313259484534310152393565209878878453856740247793899330864291539377194582951568321288444339295506023366647080746379115721365673405678670272559581070071508349272042227190490799368033556853368542351212957176262839836178965467674819568258797989140444508694864783821441429372963640692190145040143034865864416345648802979614979060808470091554024989232911468583122891669847941136391960060292461263316414277619565540189646173310089501804843159327311937164262961931751756294450270257436033120402339566051710790475058074684324198835835703564337805910813329870680374519067273504308370303795685831578500819879930988144037491389371349413060159099957674465226609523238517648402982322545825924178386119385217690502714570970384289901194760006905194172041758929306521162241437199143774222418646898067240408244253088801113087475127806980686970917612860066105826638027195047062280909279850760901022846163616895236183775299219347239702709370961137707510579952104538691672914701106745025448220742326405390132505220619971246966384325407110204351446100825952163081337440657704101363217648712015167045408680635363250076217921549015403325317392097021699296223990425441409808014016720774912605580731851282543871171016194592660687485815224207967824936948136736614313962770548107944564566095985546761402963118902798869345911618634815261738528926972500146826500875605120411923618769589525216171720103575787873735148952144613895652996622031827973200569951224355581266868506427493841349639151472211575396965479039827365574963231101225932951523207391559328146281219023283069569068828120721320121887347467797061287992857167247514800166903485702173644013431211966832193393427125016244639655402869707329050026711965419669240541906027484442727034997742067610721197927907811540881911557290533337535947911513570020471191975890588061836104716069596612923328739311713188729377550861779235207216322582768260955653180342421161778135714030295772641188737845402096402695371438010530238715727688887089732666167675217845676438896270674587371876058638814590425670307009805956538415756853774043634993095951710797826380191685105631861868150232594915653216188085135010737248195105963260884030529726768854694335106970129311612839492181526916813803966695469662429178835337199877302912029491323654660144084100445988307826736042658460294126654648613031112097890781317751520331659891117301782378206374709357188581792287786285307764904393165853001918820241552348883524420439063473288386638225437907395115439894787749285940534888348915811801001358793901274980083992880827198884952579427535049789569345727177530997196787957410939366133458247040778893897165724102702279169365761529861832567375046734648880456561561599044746314846622313917295560323009922238144589237598604233851684787884342845812552214893366733746109428950884775433727714264927886777749345216895882408089804791522811055924683183958833350878566801631928047556897164579994665341168183678299586772675059162093768114645198403643907418806001507814533511951636669668594639835847962908791745686003207454077801780164552818951131724020596543262989138947007102388824312510395514899741705511323585252952198600024794012503064959977031190563978883720484228461883602244130955039663014455954589214958514807523620756752126121215277087735562154565060235536537443019634735249382030623901215791506248929207613164912841478681661951776802670286121983773247553807755741114041075657344896313644293744158815545543111384047999425932153586735881428927348149901373099977368357539489316918156325795152224209673053187147024068676502120520388144477385180108466975188789662021747889840865218340685885980515596045510627665919230785013828226036015241379490858254068512261551275281077690613730443371189704036045155378564230530432684790800323598249066271494880630862691004795753072648823043536526723696911766972404907030108076762027760504894305410164265676636420566267770844895491228984319640346444462051844024178685642637766119890222307722066869296120540972703482747455087676241413760825318890986209692778154061893146384267844495104218157546317934990466197554573524753834888477286986006807122948923318647705143477654836561109328771099013372776645590359237205785611747988289880085426669257117020823211796080948348046024676731838679168145580404787826681488541410491526701993105739371593024693398849784449875877388180200713902831518274934025552918121704518296715072828200389226558240558192584154811785598447154500606836638709219201016599208381298232604668157867678645080537678103183740838994307838525006966023477080727028562710988017387994371378216533653449625737429393089574216823824457607298982759472546746938620657562517859912145203430907058643016516965011820647890341842911423041839166965361198681934801583304697176695858909861915040100097200310696043283284520835973447336941239043646160559370826865914710091959293838928331992886923594005290358385758407148821391000118461764642416488351857019007447585430598183959480446316926335402890728329413198790236255022004832003721110986713064866660908415964113603886487865545569417255190461559357922370716557217006974648294247759802418652746612911652928847259788712682718142065838137784648665942075343247399940598444722440143675205441824924802354744089879739945207744826532110786384280828725058667279539693445930326427676905398990888657166400434385028780143104555555637474462614049026415024713929795884387760579969819301340636826483429499713880614273578001834078249905479326724446103857259215569622652032149041731089602337809379341647000797614788890778607186889526548711199857692460399041550364027052301705487387760114287939850024079948994353072465283035120907735146952379610304226353960905129860264211048878956117226800049969783716704507969932871326433488028669515785562908648541255782563412134595083687189104293503860638864706436856676874857550888857860595826630042337505061976073243167210432173535114817449606337727408526404735368731519930299225468883448577375694434081410000181005785790034674331041356416667091779833730114154352542677762683778987766065195537994100909537157175497526908150753646795638235526967498175351897917218731204154184965090551798048921551400871037831601147773062604325291845061107628159857231856322080640343679861704654451436407405690440109141569275725077104381042572973846279265250527133848528732846354310144520828794824486181242451241046992971018238041369572997742094527245571624957435069233787780649250069217125731965140713012655317486456678872125144723398718105628033770680622655584369371592783476588621459826896254212002922440851869036689367176133966559233621145080641094722087905166842907202620672925911029971417854070798181690098507942272389792143937901349041482230958762517579128821702473993812041269073844718231635846472655450796435954826891435063444418890561069938385992590352437292068942059230152418342867843448744212664052550568894313699855725961180866122363271320676742067069081111995645871216568872672848408616424495323683270623164836712197941204726452058488518594661031190585102935340317838646210243306956269119057781388885977346644187809545030352923668526079188255713312809366176630147678142649560088256160163256678632149918115699390754576949368174639612455021896283427800961462687648111357534825672326763656775070958973629988112463209993371897864812795617099016790990498236871233626810364822902386944448094297890505939986887786186106224984573308415737844217217727290450665357964626115160920009970102959139098483805270109812445564716607024652152969717282579051619235369985029615230180162836972810115831927597434068346802166742849923244401399882315176941406820490460634662777369377445571122179759568049613045182935682230124972013712022085501814251901082554860556508138989084927975067973614710752573530690442214122642526746948248688547087352971153898377166503531805955199804486178423315316798723437208046736485686727428556118888207718811646458019971058427521145406974386648004521916191253891380913156426389489983329414269086375302063630902119180915607337183727677928409857745480024945962092381159695602089867150692173676740574706296032704955821578533980157443416944108620717191538410174323661261806791749084273523238436920884561728888299872069579596549026068348696034874375762299073880424489266669040557536595169792103417881651227853157766272233595303624081164444004768400005877178532511203830070354538805020959456919378607413915155494384302546287739155524597253328180531956616322242880525067472203286543930805405879955866719982741921019557669953241927298115483705878005559971841461651023470249739112948283512994931196089766563965624804352495704067397608699307530930469499369493882627371832774257865035804457970670568726593239166055710733141766374132163376827051908748942334621475308041765676995370273305099137143388271722269168320530395190090867719900414996122717681297690745981502341467628187758906915629688413962334661914301522619370567037889823903814754943689857521160928746016562171967472963669019377148516021786485120807141419366468464394056820237675196064232270707942522550936297246703261052920691964223009857573983838724406837246676276787398438539488533524890140737136851324048608035940510354261745946952506436450601025816366495249002673169245486137617095662170194338944319964944901142856728800812383421601398399654316110077122348991647094228792552375272068841713905036785203689397699729922306880774251115923559479584544548213178411955346993445014410522833427971460819359479140684273860510058680208643014502172488475241199259272409961722868290679809114183680047127389378576969444877913140262050974678127235041219339442790595129247452091154103695231982678106755791525151454814353137936985001248399112720702415040683427811485933832083059904381967312335231101238241194233403081806270299689035067429024720135060689311990907891853822045962335735791320860074167924442401141172869815019615810021905205994343670989962785289838387586996350789422799824850427789098583817181601270545565665559049074717204506206979455630768458914935734357464963705880820010739978082186764579024742459470523098732660188995671415812370524450485913333148783701297602881984709986597509990530888514834752383616139221816651967967238157202862674404139211173861566263633746481006432303186888429455362753869168970214038313458190598579534391538053552371459030083280639104120649620738270704552781907261465249186827476253339915459508812214335915854292702785904034557408101364639439844548957623595605457567961889474193951753553684383239398754710923279681829019495082238761258378752273847473472516812653472088930134586095623673074440562763836966701936031660624593432578258423519331259156664668943259305311021563701286781631022093079208710864438230344090399055790584750955614135937334680688742759172000477159886657087705029594861809240637251847975246577299222277289959793049198398487888676705625879965426978875864218723439861220298312822437883028989539343060845271288613531732928496089636534489256048846656187564507555978143804485867186440674688822126463849858076124401256469647792419102652414472486391818938722290820768103361374245461030840645613790599738838215496534506582807435549291185949584646407777488080266600353842878850067131076751309492770400487421879306798701933782132288839649562523348732161719345183885325348613709586512326285666557582857995349238706373232256725140863127279182009120196395575582207108873445756771581906890066419290971484411871416939517832556942736120933499898197691490495306462661039306271956405941333145153034996950485160893355343854918311543289260255204619319405118625152719342255690064684523569894054580896364715692063791301737394353092915214359340795493519120934421524437709638882848743468568064133419061321643333441643794364897693962586807645866599832128635564940873190452504614653849407075837227384791951450922621590853824629574942874286617007012112732848763962855337376993886265775470309041581953617628374612437336724838883999824557546897137621620566707510037047786271109941945105021714936307755173481401320199124442542830912553914931618160139507625882141715849832899288279580333123586346700170889652976730626051523939764996878729602772002819634163486037149657457580485548219436194572512652987357568646015635736740665116690617278747481261417443147340817473470987070211240986600479693985072433366731188373489899124717151412579847385224056942751274046327623025384338841467861257438959584972866273406964734147538654889526614536325414857284296485789249060011357879036744758199057104019541625907346972082874332178283133139343047874704857299518671323324859962673754292420880895236050927019299703185118325827639891384682781636603617408479338060505170523505306088371618790350160685191415638026833185424139011040382649161372292989885160469164313353081002361074705664438038946811364885767171569896640437190163711837927870194669381754718507317727975486854269275402265537823612908021013515967720331153667565349213471787418583272560639124083922394954417914506418223484955397924845078002067862274259058649850022624851826813831190270665708625254818646775335704541735262721231738678311473381669278280998792474617032252313784200721251911697512609079127445222182492722354718731038217404933469024014752943079083623122002394719545006803031005741202911187278712130241332275979844934886068172870522745362956148806585807533704222871432762975120382890333367632307623930079942666045898735871121065310461143571023685178123107567477203427208930261612872965824658599851124451990893352117945251564964623531076484042970022088625660010070337350946483344942439807064864609096562245145413448108213982175001443359405289598826999081918368424123324063977237096392214685944492412925556455510744302158872631972272756292332888791362754816242307131829101471870860834541306190470985693478455565144928394942546519263668033153180163585818013385392417608960367181154454577473985330984311071386538998581104115209340859473138051361516553521405261312977121674709338663494487906848670820051816230161647263752713926900873314983201429383777106213234869938827667061696926322132754278690295822244984040223084085642412508454426941884564786041636082425434443883459054952696883324142179721636891884481548011820043804956994988631800078712617558983219369220256157384496738117135944051343548149056362184836536936623051741659293862672728402577166559252936027527866838666402826200492019176799999287992693692185925454446159535943047153092195839929605220802725890422562202518883764840500868952096232762849817929327110667289108722634687480249758827953500799926017310195657255251550536333742219711740713353248358139089600951997043768827838697078440010715510573149318102847805769327062632389704081284184279676591297035717071500111696914846695208281534963573023772192927923271461905272515750138765164641876801189657736883703196102657059027673943531350130275599761294846077553380013533358601627511708403720670478247547211919693829348024500819807864965026429969092539195268036826611246469061486252949461505345673800774524194132364934127264633828955761377675681577862169023197827833379153389582444630119528028164074632422932407042708361858005344090936894727964789004100884048340238081539204393784475052863886757259728855867397626426094627644145028421000597803090139588947204783637164372422624373382147496855363684941489325149828731540808155929301957871555940375663161593402056321113487987643792314055458271908515815784020595879352425937797675171006619013488773849452693854092653986776113010638976789014597021402488261878143513643176388667856936237612486574705270209088271770447980787198970362253510040767104278433268686710000423168180681527307909769436580894255052407689653675026060771045980296060481583270675738638521847800921436194333918657250725416648329468098073821719330634402037242822785638718234861328296343414243408117522508026719850639854699044675391611606186507910008799043066637262143748929339616533925258005877534847227955180858641972330621610073235080600540605970513051944926994224713978118558606397243526471166087078699903243994320251091779219745294726925260273887437826912827251853170853087955950479901846226038498114081688350242938879946909746983307869682384577807576073846946282023673428100365156172769751787449028451891495560827652838435275244665370618696448167898725321037985826604525291888399269005505013225935246247886779216874199694644776251365867232985213875304854659529513794907288089924885665647277703267108448064983084199969241539536666447233457408296624494094588154155193706866998241595701870630086278150173966765192799569775772925391602439592822991140920527407033146370998253902333074847813730968431664314748626267804408323054098118455585719668070278622314793554895515994607315204837159725043973189209851044617461148381052283403513872433861775481213746979659023170250055978518583240217731641593047202215911742366541040044790134961798544091089615302596144566029489311112138935835982630064775460747453285981002594997805156413814767194869003776001782343195751805840659097134817516763389225198496487875275417726780459382202047524400155578458716598887539089332175214221717448195001903139504295521326543657648986422427095901657021573312273533836468317409844082782172682528113260440946288975211530765192227998730937253117487624815006766778263050218049988888373535576417614866856525274184329063224814273480760084310744053953013005900118447422190435176683858516449176194919911315792201841459627308237044144363874775406214523713602746476484241600545365666376789775626602997973109634380285485323757749177166498671193162706789381548758067437899272677953197212799547008076227044170270301847986103481287964983055408910071770176896683316628682617241678442691470603478172985258628451497457695714810174454265466502843691651088059923469906756759088077660627418460271130691726308193545455441071135880372048806448400843281816273879035822588501532615862945083648784564283639338430652769028817604203891601339417630962590956987313431845214087196842694869094734416041010390700915389369752904703344807087960970151970854173957365385197565359821534418149252615434257314624915517915163796673438424715466186723004122874465899241627550912910702767544742866414003730621315345864704548611258993353642357034981153042819633581501571877675620875172662022614869207509831831569427952703121824540136641150759581168611352498604679922154736460023826121054178628104669623072823007085746507278172444710252503106054145541115168898279796347135140333738073153652088164555424415164416656336567572319281729280041398276544555545018157286217733279130693560527183239888107554959514027458772033426081928136470708170165669102138888487672057684076425412136869785468418531666874328170743140023249944192097275139508238492233489542689826867724267269823257884445253985188259971914231874508482862803245613126209451264080851739427565983759029305572332015168787831929237373771657064092316666283410156102621526959789886842262519901593132982707266668903944366230471494416557398107764753554100571399891433884108056493933520472306405726101961334527112568513681613671701011236946166312310869030287774795789579940875206131856528441002509151868421753272703063785690307807313577699531235797717745829127020990579183555928066853549099110476073908658351272795006615789893368485151973206838862614538916594275426453279418082886947114710315390986082729383044064636433486486814786950957015319030976026334699356605888305471908595993697792916253967142250355649571447729343214906430473032281476569408751929811483346231724634202668393289185167944959869901898678643358243242257405353527857823247989892583259459381214644420976490005529333980484692434775136915365929927589979578879324066801682457504553163911078932300769447037753467225618915815755707309095306539547389645498464742899792212660894579779160252278739562859419950370016620385219501380749965811980625879188820803841317483392221024269760698337233266669876716096377891786053665582943419053751665300026868811643334426272977899281873925880907368464379610323019586859482660397336309690824968351259784393406273037629570722687599587655958242495557491798503219988245183014211870795467666838879389092336472422879990576371147971182111533618252181911599034321978897220001634475808857950015945052704446616979971147317297213322099195506037031207670397969805070976802436025184730602879194204998747425093736195152685842675605196185981466032574741732925076903993115773993033204774810938768915165724284291685256529814819069315821772956122372279818401760668648526658886799298394946205130973778438794719728713057181618534142887194331891964899875425566768896488085377776506227771349166830138158277323017241525851674616416403859157203915401484765384397243608872932976878074972498650336011923577007557080286210120502108503074539222299998527865435728900680145229157908136321249897121339710744296226394634710907716280197490028357259464168798136985089082686806726945812548753873777573851828187485584187819049671791244850695623742523355233941930720630290748197998781693111874861309626618264195343290555711613635370505219218494155425879107974350035783414737025022205626009812378342982620811130755042768053954209419263315185806214807953595242236212723740134020121590712658871276719328311038711111533974135356027375853604486101783886221566313517676470070362689961155038458291467395202763634390519294548659631116387580833122580620593651543330032661451826167709301190213583758139617500552161280064928973427538469264253496602324530374731923963837905973940206937944932181430452988608389140653167126957344417209656297106811157974265137248850633072708516375376475525570751194005824426667537826736325942809742840944998884253170074375338418996926141913072210237653081244415220664547747454074628797109923284092938742990051296909690016629646210402130971698665143913584964780381284768036904349380601763074189322204804385604018559720468492123383361147356373528499196360240241146568418047664325607591572057656724256241752760622281987063248600757096035814330444513494779745851282589446211478085416131828269712514104077640847685419520272836544573400155151513009005759839850808289548868262173605909265577325638067742742408080921961079873725442273767966925099638898654157356264952002710558834760765539422739904610869295208297656672088574753610117151445282989908616629543054136798701542297361041867340281223409894106480725973369132735984470120655944724728329368753574383637062431597324303598267947612347423733446785917326993698891522455646913318883729092554744196797489869453377761780272459533959483001881864829013048736877222014484717159279547673133040127143286645407404032626940777661569843075814038280994514825254890985388888842146243094961264367292654557798190664704940672481713098826874050356479899332581807626433139960532554705904669309386641873399740148046647846732651213580768347260626214864574118970074792333997551115853772064455889520115449552313571063326253959209026218965253453372837474815975636492160391873204640569828029130194410408338131511179328692522050967154989242577112622599588086762064425886822743391476029166791243941794619386883058935138801483672673354251576539058408179568754666607443335918058885887598565910828288090575576348920520664607272935840414453193691137538300566394996330825926680596105450440411261648318108383079009548287056805753114802472235804218125140394927799324405832416733683269177344113456227566564151240482532590093353844562314868675905661986590436987036813302142288380728615498275173249602420892749040840481456945045024978909913312829065250082521201906486328127773432487158810183861747888997768540476950520394625564759363008158943960006005049400241316917097092918641981272531294729367823891983802533972925600347482457026705927179651461050645367117987699072757372182136794511700728977791636668802935857209772123529708020722569700522402051512938741235364573557434335244269386248128818437869705568544729106910956150837258817272802567139669363069305094059209365898202971772178282074649764549725704017146464579238397914028648879071895766111833917551407424179110144136698686216806383465493287850481701957962704230952238543867160869706635432505776821113183483302831027735091707944966854977548235620768646881697327760445369411366983164934230965015285026609575015731962194008745712951451712192431797608714484080519509427465545494307001348123879191695964185846754770010859182511582579334515778215662654654072238567375196853825817155853304496921515878769473946156085687069723371080581531709914384437045461880107359194272189610959399659339041190487681245387668056690067010401860170037878742701002388037483855798026456911859493759923860859950259458858891305476824719985617697185358462954418233820923167681150721162197283898762700777183294389719258002475344735496026998766081104079937634220866851694862226946815136201611273379036005893413724365301896471235257004586670777395986554320600863345492576574969000675854317031983360232382133640926186699583614310818231749526416698860256394586451571897486540368801873240534252502287185761449999761303789191721271034190208046448494197692091029218522902597253303782695803482135342509654642376321456264823424338785095828222404792306722900077808096524963850369067270196243185160195795850763763648871681645358793579898293018059042850772860888718678119176645575883503515410646933542531204768289454548650953130499963145874318471388295650606561697853017754739894274647184202888248396133889067320498299168224935573859382167512931293211525523927344298064178762788201936032623859291894365903283876772353902003642116724170531076443506539564444197817790933519380125387866461627960345358771196741913346973736125023713683495114738522711943849534204614758715714562260963564009832722256743213125551515337144209049340511319214144019656112810402837848526428708252084307633436201177836955469734040322028538172993195743399128689479537428514594144310978323876575473040982800765637002517979717195447709036821052088632933764602072228601388574598872571672199236045546494439745139564090426243820650018239538232778644103697007360372100898816002506763833312691182841045561241191224218397598745857221805161726755441140725957747923473960656095326342548182461331554293274178464715295660521817581854510533822062168627306204829033880930318301480122947100457483100594724136511855617631308314331074775327607916546111219080613125281188547346531282811779890460390653584481132277954974047654575823994556774693413566239526675279317773206537478374719934247261048605323647061047630159650456450763056364006953327599238588434065101738242872619034595622513976021377950711211353294605157446844643211224638917209544482180195082493715601180805542816084238428735958086030750531469057948138208873534223515359093345599427865100249698835334763238681845531386845737472383820322790853913942152383571526344792466934651448568663763955392770563929842592837116267165209015545641456236005538312235569916766746210019936449212140486845762535253283370231430320627291010555614992432865433433536750679779522246395894705133491588052199608590625619187869536071585535662168149163950263627206699434313913469602790702107749453531895400678669796857160415473955046078729758526793535722127600666704783064807989215424540746229276733388584361292221002171452101580248418921112268562304172552175732831166541291417021137939599312181557138385997942739967706872650962018109398702657077554442026006945786979779502332820013959834279237224684619634887126139987205154981361771205717916885262030862693798744035460444568119792701974079144945700847252767463680897682358988302976166855334602069257914023836532095683368517325253912435636179519545557870659408415060561960095911179826991225030246358782230422215276238476746096393115497934215585083208951221565043119975313231866544916583421930844214972597652599491228488185229847137323633097970154776314850139102409721409086766174406791801327686081448579395261004378811261611638038758324791577922361519528078015232880691060358823692013043496285855491458205758452822507724229078651802533520785730088804067650606526477445373540822293214888518370701402811681800526555651483603372619963703544735226848863994178872681185586514837799947833887706342020590772917259134569715128738867601521406549594861550891377524019812130107815986442700361333295033866486546284368732749914659836199159870128149734585122624795733128611375475451952165625030934222175260772160115344073455104022675144221624580820623374717839950499287760507549578753349513679770309041307946430886130777542956076899609199727261504812744025494226356147790140567276064491247831762420731139382404932985605486435004024676363600853043465221217174637023159043035709768317815361367645269295266659488165349633259053446853868837892931884361787824261073252117325021645818204565971118410484583816617652327891597756270375241215704270457629750501773533965048481550640140922316077547465697872909498207898460540417220894708860628980305332458039203549526099023930589421085136166730520040230738787442910067180526009831359785559984168816314151494431218014073304509959974982546544558570490598580039992192947450589639676843875737869607503298607651941625862554394795109020039880872010984883915797216154227469264034984081107924328295396946101242065429062830834904404914909922381488202550326320171927539223040018346549067618702077992106344597702996032686500093901626027385380269777786128560726476327623879515098979046349987374941587521445023571255698114177130001818519455377950999992929077271729522172552863060244975840480716868289418269431702298205641202497741551558872923703970807212545420652782310866130165754630758111531491783591781926601272028585410904187491110312728329292025945709641075186665934380259656277970596262065460759307226540653350566577732293417158213691924599829440774924489592436901912792852955398074630909483487385899589982149347181587303446188369754050043296975692576498941838395424609810871946896349279926909358854249432416432632627413192164902531298046569280244725109475726389497370390886924632833764539107058459772989785307319956159193073676774648238756487888358278344860147635823475250501783998640929700026861620546500073357807819427886761012410065587648496863572106330056623128808353454075658329647370828753774090508326302089583631268636266024797316964221084285439119655406029537297992562316506405183356338768571498749766997392856433874597096223997691148760423048069706719910914836861463053645754466592837363545562427546735727706413999477068172429800637779720897139617071344598223212517908763416484068651280634665832070710614217768122126571895271947359012420654230115729771178521060715171130781659235482985638372691161437422171093277912060522681540850764627557170920146895444857622376669988293287241875936070466433602893473212662190137212594179894816797460799813618374717211560513029973247840940555937898819334917466880653048625419828261422791999797880842043690612877526583745395107119726409905596117723068895211003432439514777216966212482546592364422637419907729480409523550543990747309695289163189504614915535220036487441086724530309522072474724197569148438887891573326119890968296013545928416360768203081936250190440974004691165889082893516885021657134311028862565458218052031577821474998054523672290782534389148652818865233221935934436202314463425631561335108111395156885547038145502906621432808806969612848463525316271427902056760439795105496001153739302090572276970691520159352505924974959613388939152333595335081176858235135278591167032348433331895268175785780247267905127086951142772365216933786153766880718811985143395251178935664482792110245609302275192246920769400593676894046791630589057486432622267619035571772536343166584297945881288193513383020764933695299382770766537468968463187533780621773799724458103637799521495501975173597595166497313539761376934885595524873493242706964904755681783644966659536162333251726099623328729552786891839382867953457508483772527164739378119070021390055990013906955921923983465883265784303236432498123591753486951338293561429489487251769962375831507249694901455600906140246389188999345383631828168286830370609416546886489083376391711135988373405178328878848907133552262859246851203243539088329520823315620861245347505022745733398946620028826506692851059804041641783224050284409478959411406109443465051265397498711818537354422526980380676545003444893140961889713515191843212345293377658033285666772758251785677825183301639939554787105948949364863093200215578233328797506204565560863651242521050293863304307545446742903230414888089257752312275311791088724090443680597965074587143205057062919367868901888544597647709675953869375684052447864261919088376066841719556134091749310176674725874444530640829337678834607585535341970782841889538801047144200875536941911394990015017361910119387458962370342688461066101317139664762063946782535463551985490213411403418097618242531904579859250034446562355983968235157739926418082562242603441378518752175667648762816600942301050247456689409832199008860760867187658243100482918346813318803681406712948790214459224792069138871587612959205390451322277344817073007639565330391549621406466597871159386524477881594486470283463336736020090208379898515751091506366070813627738979778926553493778207062438310953607935369344853623777236306960714236318983739946365840476468937732382455279429777563512076086222748662519131488209209861087532372844576520349099095763084221858785272444401365046672237576133701282448763064738644935331953675028660708473213020031608976916445378565065848142542332310804843048649811462621889102346676359556902279275892360426089626404273258347920053286772798454935871958051322557049405425240090831591165032140092103509359096693824651339534612835777243006937984178176043482004044499097552207376634903412494652964142015388949193337263441241469879659443909237361731728786675950719650101986729693785898713853689831622333198093374153392567130062017470491538251674965701525965992558498689030977259360520355852001922786582116607600168693777931683666919829068115502836909476714869556623792037992763139459308902266163425347087143266553506817547938115066764105524320863294176625448245184049060366881391293351957923809213668030009823192645607032750690642706681034095863163959637664386020915409317855233055497447860891689836162767536203833363403582142824187834934608892404274069895517816562559678849747739569473049201129617385499821019008700289477613380876126081641605116526245428632205367690535966817050446245207558850807636447769625144496032232883784762916313361460834146532534405614945995420921576898184680901930862396234381895419519174009768937930446163568962361547727938998276360851557321158869735653130599494365551403492475524522010531929309249575844783723775116560596138549842622771607517298147580880679531254325093280739076673117412025563272945578146886417439480058183433785462263594379360243299781826841207434755718980040403679463828629020218638872960929945667886060874165792110663757849100859043786648840721821136507194163206049874085659034749496174948759015716429926187046824877750134221118319249167114320268288877556759985811766711242266580890350005272339362227630204679700116899198917184844496136872379640583381425322457577896033043316108316599166511128821325381327641974482328918836984622003669208381984357245733212502987318320001398834733521131367538151455846938580216061175745738912132851438622508566612917708056963450492647896082618625875278177995704177088135785852293161168134139224877049499248880185211061871544868446799944285204358971699246389109146826621254412123796702546990306547761814606775994868348054860531918403006108020727256026927061482942404859386175454409014396418832705567206063985286695383335308213147497401714266001508483437174505415794852217905291851671722758979655197117367163512663924877880961727118998847713831969050720265187237739115510201820917866692333278127052845358585718997824555091933513110382804535923926182550954803647369998663145813856719237345936325327544080041332022494899451519760938080505638472645072055606037735604123477212847995039631410896576195398335404273893559192013472094097983576910603535540086680737155259502703165242349777274542236146589864519995219832107256883747440450366423752344505596039024398228346899587280670682603705697120292876294318314597187294908946724815221677963457888083573513004728347850696683650221221602547190625917191951237869138230066730188775462728277540272782260535898107367017994415779011671649843772535750122056638638350380968092378442146292436454791537750820599836902928305327165957152810427905946292916410798644740198318746140125477564856936220120170131945647301284920514313320718337283629670829016429935194970065657922288687571370982088350642695878087737778633171232639969485913789927135103861177569569401651380512081929728655295226479558573638802800437590470017686368636747885965575516223092158971919711044162837606024637133420994253161763329251517212185957997531149276095433487531271870256091348295996408637056441115637388690774629133761230403794354035658157388633414904354456167640816015338592617375020679473442309990958262822869021297837969884030411301076753915523656153278503301543743769386826321167019396046643870362453075470044163742489481112606340314510098035012177049889473343583561361357530428977199445014886281305625409369988695170181008482471819699712236244648476610117491681397181067761842475619977638551502109483356752069328740884254269681109911326009762612573062721428538050705695920964820012693485318778249992713510478170562683776954012211576024854464497980020992444778322589507050833538138120050460123324977482469281979734857505505136695211618469247082861339377661839961142263103303586990856878542881350815162954103564624031069144695676737786571395176631402573876349690487387470953427955071867061220156879464909380772520612501513011284454018884012374374587122256350732742479607881055466313716845018573364828317132349661758599247901685599439004727683927395806616213653645332745033125743217225799148322665061217887930569110382353290443654924635408780303136446827543258110289713480152959751735408349365084698084669207833335218210020881604450883389049635882600930854295766296333229045327992139923179574065742822970109734088621508828166272134285095069579796638919038428838269293876382110571268070095635732675570766868061148783918144470345319691465914468715436584348829329656799895066120937116128318864357665753157536735440909077493090632989404711400765021910466388364023765894350335947574225906608037595191853251187019379186489909312410953393482532451814303641752201324022125882916624764679625457695684010298693989742240408155810835127780327718051896225061167729967007512898565479504858008897558510248032692544387027713284964157998093543810418236139994378847151483878002208022809486462893884470198241651273027967701768923654888944706824727086213174637548222357489596122577593894418602394313063307520086504321310854365261311015755545366688573399680863992195712403123908082627605494984588719096375491407770286372257991636199549622808434054153912044463634490373201558670879034303951291847142785919512415531693221143705655654379698728419903594920151120136862208484330967997390282535356870308468735880235913031121239889264752268349783801652704734300750101199238699758090310817102086745966836565953740054255762606434107997962823506987437514973324033349320528027540696719428976822033656681065570765986980971425239533426173623777795271151431200163880040114707004208035732900860648675519295066319881835101964324647038542672361348081163597914112299375727302372118946084388474409098246584793152253177422584525319247386974725837055291428368494212316129686857419972217247271001801526367580098312116232380477789198796472244756265157984112422292220689799725295547156004972088662185919805949840424466113249933168560272762732546974161224246189437315408386361352288952390660297147888133348506445859844250357113271674794232896683893683781571317285008886261150835305349416441930666329738091182104874267210764261382608542826460431652733815109561906441397820651975092115606706464912865669006612104743379077933812303817055427244118000894538391332678337218462186530689386759966543382555379866072210406441460586229372169226302050632673380060955621571183559265509578685937601242252708885251871338496228662053923521194187399115868208388789399680953686374222569800502316596557409947135572993659357804435129130794722031140400936629609680552929481468342229720605770647342750979655123936050055187004797101021985653960856206842401040257781061880395280690512622621849200419600771474264102086882909417902828461061862301170685807344534901728925190909190300585086675435724481301960681172118569154033298463343641206660050971758439431290745899213843020665745312861809026344250628221485650298777605612090874136051158309763976102363555441241783250247182575026326026784589202396512626098533922536148931495855229085080641523690512598160956893068979540501942840318051832238521947438845508915967702317946957066472052833985036303355680259419677793414444762233321230274651860086744665448781562178998571683647660877318832224072534405322681861019804245458911496955264324040464431344348087903714212414697186376082917320137489878807257686772574320628805757447848815274137627725699163495351537374030012875703735595658987448974530721928596506205673778888808500519808461062868122379106561392429461817887356172142859519330169584102921183952482940395169402436158158407182355806260131291615013363133260573672931285280864874326118601113159315741014241963782895832412859021698929814579574494861675732268342007594712863595286106346103831308571596780872626898366800324920685905265378462943539670924148020712191814018812624481137696227692089158125387068205906338082446699538192522285178911791796325145844891300807032483630576518616851830309659863923473350154059374519585938908497832151990954804296598372735839413557821019709777590504295886172886234538715063546182201604833391248800521844389276252655483161625374050421699288907601655334543852679487898911635381883401078182644436201309970389830674383667366855388362979829517107354364231720940419290726910510802526966435729061329530652485389552457725605278556662162740683019177661808414504141446099856824295996888337958029487468559563314139355539538929471053789452985878673650958520444619987222112324277012654283303401245963257145699909594147347874402326234408020116969593461177413673030658183876608418360834121470531079378332502403091320983471842649162468104292222693348930065120064905979008139297977525578556030138780955760279451685906251212099981756363976947852004383340478004506447121532856312820435355351251951786177285462252988121915772934410681097721361627625078137738253711072550759399028735208851219403229308539197467291369754295661873002598667770982610751970808119752617079758981145982621094232616327346998604572481337784504033867415901983097577486574493271103669955188604204362524839879634592851990403971027089213599807440657179776615405922131462128966358285968938142103875521830718648428866631260289096283612852013351472755732119626916832576632514089385961967582205521812457408185549147710758250728981631677407224566607136160833082949254509049259971171674645573046367868745114916850056909015851270569218470277032996797081803620724310280077612560811077311932931405759681838684199996828328322932198067723023017605974102333814369020352562953677327447398512137437259756195981331721087181670451392384211260715282309886104172024662362775809954250090971860815446102154684201362707916200570022583637857840783252328842030802423706935879406799547504936528108974003534693604331642490401484643872542525809209393393372707249547477117303081079006887219018517389874877999736939905795097900173392393793492353720360958058885638333748533156472409239575332573634679514728896454150296175809098534046468079135397194080354465738736030637808712849393282872529264917367482548288934656289688425753233502098315520246194687375400969090605088270646950622721310297454820716164843218093865788773230434282949516167445311992567463212428704719191218915060067301009918665399501507511249733789508609089135846451783982618659880080019838213102361253273144328722569830145164700437917064171182653822235219898846828923478226804636252639860325576657249303815779245509093701040629647951935791492815856897569265178869898327866275839712421460474533223864157676584535623606488729706332486408988506196400128457498563401430003547091453517927907160610273616761341888219463757789876094408913551835446342147388359851162146287542628026927647206141101182345815404860181918627414052887684168931656221793023289393946614817827666399804624214479576647067025825296350846216161046978660978448794265978959925766278993253439236424930431558274650413126143140553931800288129556740986675153668033144588494219554364173422431546908513990639865197857967425559917035285444931179452703579765847043037890830347588989191014677411718064311759708513211607764855986449333734245627577659356869138134398685023052425418971645844117844877730476429816059977854191383730822667061195765993378055164920329858432092908673465879629403770145859398773069540192038909257296172678228255303460937094413754038387927050322908492466855694883918777766787202844163344196976704460532975610992236795285999871102425141147482168370768306433274025237890441261131359360904278014175747025987051465813801046694012312061348133490503199109317010968481937679080440713432066962639383579490406646754119969835615463686698571132419825880361550378116395464061563888631891191037265634641149321379635811197166501116770026232723128322060338651605539976963210173242235828594261826416052640532901094738867063738029649954778034746495696457163929477635465219083039730605297710801546058144062477296863236151933087468891131952798690792416157179198066931372403194824928238525644701577938824654023711302271330979738308230778381195806922873745834038743786420804430814854290232309734729224393732425823697578858334791843625760441967598730307254634543546269088042597762659764930292238780723833942614879643231687851362976110247451491402596861436589650443025017792045758539577644117713475205145827460408112071029237805799581142296176062462797520496349714939860718849939573818992235305580253075837171139903392773440916569562021036910968277858833924333123606387971482994236239665073624149101789294660949057390807421572841776904314573493065573126384250194939668416879507442248634878708534113077263232704255352318977545148285970994130392854292387778783591376847050220676857884830363775153672348742783449766042485314646388979819905433465148465913844126012444329325093828369029583727211633004661791238949184354467266766863901183127178628631588408901272059782341970421647590478271628011123884735539196737495919328018133030597931072895275979740184210688071978489536048161223944754679708153217988241251349374131620982035605049603617268065452942682365128019451113623146401625192683748095995180365221370969885148548520123907689390493285892339551422986073045638097112313480015126170443272148144483547365171680639172523015186311873720406202712583369409402473769237045470384209654307207869621208135069620208120025401522927154561766519519966146039851844819085836469165433524392911835166269983399667168485090018429464623090141839332378470947376317516672720169069443574851659717368374010886903926514899751155147777232972966032833050583033328340932602804232518781587245448522707250553618409914923704342333836324120759843413987574153801358153439300454941214069603409062170885157325975083761765003930161931367650140011736750735522723969803854345015654514107451328499912685996392903309048021302718858035799964000805601930921576708000189759997743347463784027110671676540585748818242355263129094176922786568866473585013904124286390067636899248217016713350927684714836033846172590143893965910853942617701053498539376144055636555563999512594311811633192544398665744684315712198942378432239908135844484808429667997130797473700406775252020013427228159982976267735926769905842197569667439890153027627523757291129777859487021843414041467268497817574473870182477734279438648985989667761380523560295712103015585129593342134540399638699025225742539012932872789252448575691082822932201267369904614223789874524631007810602525727947016884517000388600116526491577606538869263600608511523544745506767035679749115467825899139202036506031846187100267240040633039257085250626630467610299062288669880215436644307895843353330494265795371212885754361294069005763014156911490105417900801709469905269619661749592212712327905468540983628127006236731736714682713158889544082275497635500501146092562547103153574775596670311413631790373407940804313598883554592647178546294482544777796127060144386452325478569460373472752282963116563457446868947265605885373150717674739870569114056436053693736891989333224196410154310767192047531744094713119429754179167214407640068316319025315242847457866781008396281670463838687795061634816855188729868906654116725645669563436371686062557838990400788400440646156646392135421416816403460070965812567467381887989091638422960633692611609903548012386850019569591335993890767481302706645859906853980331185981556287037198267790805352467837033548381167847477726889471875824808433607207307889937314114696510590423771818828670645900992998193418049889869878316085552965027577079121666710617479837841317256563224055545396146893624261941472428926256988127286102652379384211779749439230733665949205359492327724341751179760605002292258537432979970376700024496843730162499437819275076210052686168355884552002171428992819882917538878417633750900450412676454098198213423669844106737734823665917978380279215249737870580898322813141488250319254382775351701209242443932824251806388733853706963416293714147630558814486172724958297373914281313284683141496766580198890533140547614314068169567646655197799068874490513687180021423963202332395441627117014564064816971933849049157806163270382669408091411123607665435426276774910016007047688066306721923150437251185028818984850237947447959420601634666721123271450062776541588389639136042864044182494544120777924317840040092461337122039022535829610210299577419639815927512660083263768937469862710118535377192009387897986670608168260020847015474020994144035643440561864792020345864170397095878416487235298884514822439212928462979452737286804613435073793857208402327502325739420816331836273042461576494446732678296554737696515104983565231437926253549935840542472983279719204799449189842907679678459241739831761641514755746760432374990937180606384270532551391904518580190828145334940318193866942632355642559693040906199190125693852251448037781017902154950761525981557799603279484801803815653149021438019397222685676497368312734256655626347438053893140292791163814109236169422503752714385070355339722278198412077859706851483379470198209033022422047672480874372367304674438353172323360518266919732640088073196918198899034767365080900421410704036720532237459364571197803411353261568043358065551195520854524363225479363516046304680110225152483682274228930617778142626483090584113860451407792415383106507963999417368628475095861871742913735384679569251795337510984036457173354889020783625337209182915557478354239180636137628648393440043375601178110513165865424733819302831536278387051508060732311127444123538189469445449616071836114631254953512340338821235490226703523470489135108681409445367321295644769560746733946210353360821581613735374525448471561983467373440759435174989367243888238927506220425501196591305075363750302219882922125754533407821624406457366748992052170537346963343824919688687860101239765930515796988078569969958259765934908109176847972606704507255662368746998676288584975669453809679007837670263610513036111334804074392134424511137781009735935211042441227206327227952412087701403977272595650063574998929728334922037230510739969859241125770564330693320999681062925254591314924454807562253397416772314982663350156786555309563455293255991416068598693179924821616919073170711878033953682524446577967899082865413602657765153976327173528049751760191601762883273088678727981763476665348967575770785037016358169121782066176915494582929618599216990703966474595419690862477165940880856289342432933414784756904717006896340911598555323460932415423938920872236146915019445464858062091730008912474223977178664637822802158424126495403294233923571530219838230086590602123188971968335762258261172994541459134010048937716792629146988863668687113063611934787283521376678808686577099828540208450686880279526826294713038852114230418534957493033604663790300270692834768604551372814605479503896207498435717694071985719193018635779247909638494143155110966905069752348273839614495203139471004407701344210984906181038799913433138010034050162634068738470226518700604047401590831995808280912639094666565995853191822534890635114099968835403082033335671274954834245605208338386607215279314633167267523516272006096122970663343577710574088017134651899603591432621389172677626519145782410476465354004188311707007471198081896086875621155704627495276623818224789485143807036337214663846234453858421135821653291580018759285020560269618605982508190424237259014412725769691851736329857325444593054837166460318787918190224453666009455525678480195105610534894108304565353656150406772630672902803017121679246269228947860823007459482130065492541699335848905299835771803811481898756772428308667384010257123562450748066482924153206935195256481566588055806132928423767580067649538799666786785234820878153979220042186926162012966727877338775671395625716270673238568523566191559960180335706346213315161058831049514956230328043058487998159042931113956652338743691660562473635252484588261897832070974092641570151422386762377506871674837814081739509075347888068136310046626405231849425714138925688610894076331160630384374578498054459252433829797324525008317178504914553471414648251064424293923727525832063466213020430524036063964543140885731127388496753189692859116282136629166376669349818759593663153978203208706883790197389845151705217302742039927114152439509490324009041889106126857706276708833098428517722542746037711171823782779999663712174490470897424787656811909897161935680821812103084017126134572142335360858379146744623284333407727316902750938898745391189681337550989728397295956059163567782618717446948534283165805274184090235721965536250509293203095569595082848713740517329141854673800393728168804407904336427983404782224921984670576173103089839016265291063292297237623065448089160911106741431420413918431820514163255336844305871431178488959865835620330265934756404705911853216166682296317614226906609836851786431541711955870143886028011740811420715278653514326397017482349963071382670799343133285160032378196182974091483364393578778681814179113054816942944451007368332118749435505112728974709419659026789459436299451086955060282539392358659447446658522629181369276431497818117739907327360152468224595488504558952917311857361409834685417880046277906805706326635684624466789313169443328128222134542735966247522787142099740389614958273338530763311416476039391110669666337809881757872191782688068364383969606339706705229481278313694579441065731384345038534176365086318538932313327059457943048173254251316234534336550474154539187713743644325677289310966935659324225509187562929691128609067336198139232086178274214680671508947442132011142335334180419634815625848306759202535588054899912881069857295474070933122223900859344452397979778464945087534787346181866609691107166595376795577607100744978020482421731210738639469626490428890583758619928525575586253729650802733508750389348917705391336594301277868784207582982678031208556809608699564004300598582459606174820047634176745109509630292738382676433844005097385542343061631773335265233464723963827203709960812827578882235726704327813434919381282778991268817152690742474557886128808111347115363409779564341898207869375624314762043334359085637746462997418698224268069500255550507372910842159763385881384604625999024890610478331153559004800034779667389665363944134410774388405564463641052521179411361838998859839052128998064968262934247812483123130254970353712079126265555744462253149065151945567270941993362231925761118192964465177264653515179015606717182650538991971280481214872067680546574825755360075427751278482649240864400103254430189885232338495954252279801127177356250875023312661115002221766026208118562610998073594830456922929202000325146531778024798830474149731670922340143720957429851884157209461807862711686446793339168716713053906985906423257223710549679985328254962684231368057537086351609479537063161189479839690034136787352573154889646017241983232451697668035697024283367674703764066432045404616247065452131841526318173135977181637556183724398667641447948292610536977393849260274226950958958221891801818919703236968278737833022019974092855315450532547334397541809916153579854465323340646256556109203282505854209580757210765391417233205120296464902624994687981490969297961279060472199650839151445299740516090762890881096291429316542244313558555441281221864071816529403215570955202377615360599780193254426418866262462838577614877662162729564331728079012409968558713709186471601438644701036998867373403247449811300690622646157752438689969332610458344756230346831889277340224904109048454441003699089766131840210732086252212271469576233860153420831952375677407133377625056915610881260110968481949355171980523425191280377345345881396586587884985447277384782194748402667870365801586374590507333139974993779114641522416111303124100658030683446169216561161611329671565542651386209897792741764089721926721997775473690623335756696780595486799907320483158166171132797041338708461096374864498314866153237936246346919279909327906344035979423630398733252829199669632394067715216001584259994917183762770948016518809785610049759955014816405250856948387985308104026853214499833653293363876689704510610207056572510387023093065903968115183911270036958148701193078190810970560762027184561238549140696842721348827177189759754129004602215886199992963116516541744212314234946219542809015491965974233875176943120618312676797063325532873194463310714693164311452261890621741432555192356763817832123103626688729928854680773347636674721975465718353314344074917065627887144097734995902716651630811140855042224454302519998598226629128185244606325606087298500633993894773124871638919290252622815091272027631157095131535861431492332324925280515696176422879968422313187242014164042388859687284090688518956828821025997473771430721532009210947840874272538363826614067332912061751724824649630084035137268870712792738482977903134320512462929085414565502358494992455573956486636538137962244008114975517750892774009110707433882055359171344027918401016252633621760495324629125852901993269631076020233176338322646830163360704979152753160459502072018063673606211556818464068673827681425914610052491470846992421017036969743881472509108120547562864559811294859652897850261583212078893993800843543694156202679523932886221460068099709810849553630727671177059928982787049646493444605219336136848316658497936221233382047293328921959799724427902072234018068715803384847042774812297085182776928198560121734352704551258874128249862100689337170626927729456148926271066156156443474114592828435964243698492990885854348992529938777062014091324029117028044245371059649130590283373620015095903957508621954789534353653462711414127222757363791815504841437443448621905250598818914588802392516207172903326526264747653372104118316672361736609917958377209309463533362940144002761300244687711315189380713353895930246656560375683655643773847734673875762306497635822204993059770839110714021204941668525724116863888069782896539559870270653211539676005951620877061931059145919316772613026130464680968230904415563099391863076878125925021732420624680416610768697222275363729168203261103900263369672196368463334400402340262261594515410189712898610748539200021193649721719203281699094213810686062201894622045005432266703646471743447524762043408885941722852388349669369665193399705504633392086449626949858092415039689775668213155839779879260310278137496978131142466679578140742669352781823048926937119897666857608145307676780039989870081600944739455378695996756028125955764191420592163481465595765739915222358016077349052853737702950441610292927893348278679289446462794942441755141482514382153749837436601434792540023880462914477039784340971836484030636492700187002615593924279649469146924940860588786866951850322918737503827731886615792487522088012363464653442307885121863477820237643414620326325184497158588198820507051946956903730389041211855109482066954337106887812960155989618412326657062849553901472304678835758262747079214085934665056341993423418663277098324255089335138585828055135522994758081680150008223774116150927081082902104600194287312181459139554353346645324496670568842239885157375658547323203129232107950693939945612338647686108857657569752142095322513819677675796096027490564398184305483937286526109204169003298837608025818929627585959669993075056482152869950842824151975870975820466877326289081516762735181070175225377664295421538213614355134388470621152556295044298357470844965149723695834289735498476944170969766078885202597170933092751656438512619291748710236406685188410498073561009407983146730542300242913664305377978607011095830498783637355818429120949929055848600125201780684855152898257890669511928324821045619715029405461720786767803247166037103791696279927926227394126627721515425677336626575930077975536427714760247896262180733169136304066937766473937954365887959965099387034467854950378248350351754949745418219258268079565815346857679710032232358111924526736475812216362043170735388483451026793425281143126789511322978285793544337009501107579350414369976671851615527405093924271061271640272412106968580535500544270956469958212497336827729901346138897754367441180682557482390224621881258044330073703567406782940883580946741720842431362941430471817270889852179078611699153934457912540578724519805675373401106687161060556079211579754705127697027891102341036306739787135878288730132619274379000399450637844989038615061929403125827935437430096277937657507280711844171147519211982205668743396390878274558334790379385780170193601910949284158248015176620915966095156232567388359215539681105483621573665530709711526512122382092589348401084420125989457977573932225364478888487235512197070648097700774754998380437784393535312564727293302859145677646293183602403839168069389307812024573622453841189691775916595243283496378003015735570747504023362336626171432072190886460361008677056496619160175029627463561119464634524242082560169277591082929654337583405373656617977968094973072263894375478526765023294789710971313607812729834156777803274499142617101251962638600742588626407191351085884138926977563739547054559090061549258066860772806246856338965660033722709537397217109204554181700829941910816216195294860237254141133064514605120193370610287308706245814547257406079078320936334801976851941126882878596710264640734310040638091086284183862849293918436415512135615953916170995157324121441512177344838762568218454660730524503652366609346637733842574829788848461627148854365694887442207995758872982504654172391780626881782789239272317301322418618909573851120317825905278669325386447773740983097475092986465780510625935570224992175588045361605539953428466342254196950585332220550165259836452576294986729974004370574008532148100883212380528993923088065595292519123297371014047776476298579766411662902622212860100168419952773747438632369438915235997052853420981753451396361273963768666404990299611790582289344024003307417667780428156467745005068707754535591801674565126939873858135694410279943194029350585062793790061259130102873767981573436976980986594630384634245059856460228138711072731143572358107123922722771103189979943823868586483283324528527017290845393187747400330475851943423095497780506590586241352199691226876029194429653860492262281077970125063289915661423976097268532129641601066293929690493978382801811317145365889511750976068022298301606206256610629182302187387300102264772639632825661585427226844301445302869569999076178955337009876440078776865212992338378614870693456157743308408829053863717132992420676992011727848909340093787942680101195478340707595256542116403553063500752744848620113504209689111210370472740489318778632492668979789384713506553400717620474346690323244113043430193520318346572510609976270248477567473542220352002362042033860808189342929292030963764568606782007901470247177873068545258189226870057733048105835301620566469812598877879359014344212650506764599469164550750940870499390815386929953256248619973738749245963027289865173251200901121763109626997737259729930634072439732976851133584921265790365244314865952712173429684876963669955295677541772638900396660638983657587479622260383377751040835731743866759508968293505642236061769701153528213391175177921730825034399090482581841957840272752935472319260914980223209471214366876493578605605137157054081575549003318808647193422458032521725978143131765322389200500403399503999086329079859018613295871100414796553852187433195836921274815425213092349564283196251188142247436821052439415273856228131061858606041979071008347495493358207426285365399925732932993135769674227904995462354159665710183966811776042179715815061726050591071665283551937205771838510827232769586429072804887093963580240213925021551665137691494702001327693905664826145815087154301123881628022070328424610230225800198416934491188116646455942651483311727448160110929534790394204515709400608318987475033598355468442507581560710525541360581306454489210857435450253950511045418405363634904342622886118445824327055045812246105694874684467533569890281313411154116585245218011604908316670147339639226908881541587568552877674604570357349094250766924790911902303573585721474969405476364472773792259688360722070087896135852912149361110967403114832579346099621319827764694492167231287717000757901337551130326435755014489748065866509260915750038428422878634079118502237271558150849681291999598702516838711772968520295413512422618411223044191980420938236482476898642022580410894985415527395150371730121390229324707163466414648913407675971698720600011197337904731193530270392260556200351937325009579943302848050305529075404726404825571804467433893345975780498634793145643697713545425544842321146037299175750635171205847958868965552471397771110681601056516089062993009935815355617993487351533275735146070167884078897211063220520926821198594558370691493165270411994325734940046189391107267939116254053603944957118082763104314881004847339782598194105750541729522292044207747041851308630848508821633694541977174612475907765091318506890575536025655917361011424077701357470976215036310080150346309559159452959025843602558533594627180010679241398143619233283360448981912153929732171198966103085237307110543232795768863454673603958035420589553534409760877868553649242360345634700499894780619935566207539674149391849399507011148638290184603469362653662285265563928803329293641213091842191801368081494063061110496468447772782790339928526374990912742699162074228137485079393171768406915569055733350057066357497021205018688808727636759408420731065121926255888816170259267720504814897953231776744105167879284052940387053610217584744450203304490595099818055916042969014332514799565212858353499267689628968211011534275983983445551103348602086323621331842463824731969904158292810801440510440478669501269810416904792383221347566112398350972922344672448128992172411642364580182099370534795920228027354962680222353381570931795396156149882311018824926850680807915035690824584216039314365077002641343814886792733876096474660337773419947614462669010223336692121008490769232867022022534559318910784471924811938539260505686029629964715723716381063670278667010643352946612962446133983457035467181878225439906931672336241162009156062125258209846549515783961066872338562151274427403983889842994836922640531884954697295653442260710934402098753805288600227094330284174496537755825479081805294041777510713650186061370816611447425102651213234432987096164473948563440976531290561159385733170396953151764019582572705590824505578099504221345946648844059252722744736002758233305167936168555630180616878441664412964945516822312791664134953717428206114339987348937663452004195060352304714232794917417086246186157758834305923516675293780862941057926726141091202851296789349019062769088307521804084141698003295688779878948941072062007657922878712888913893218810926002437302203526190232864419880527189237436985845889373891684785845483659068901570610442387075085051662693515643440529987043656284240090340811174575969174359853522822972292879000289866352269517551426865992156390231192631667853098597119245852621983941072046190929545414444147113052790619452018919052599366785551104420548183782047510803403975908565165220289052602405633331476025171980147326093636438495611898269006132255114322697573909986844932545311725280827835587714253891185436092147998009559530631739577353267140947154413589143687985699270295519831810538724081739789536648699327022714729234885109821968859026797065712640522149524839858704594312528513324633330713751948100384003940065701509895465671741833690106807586921565864019042157996406472504206504465227511359064005644623128312599238042924924773675759841931106103379502128417251968412273914980360795117098282725009261611143148790601914314746081939074585357963950772194320026128549600767631769775382308158771499499364185519851560884554200318093744087726377613940666889597362672147877464086366567204910816328994246015632761998746060058686355535136068598272003799955749198368936561874367932850823148958630729167650977837305842777343789589252572226508153897739897403036118874782903033786716101564356083777176514272015926201132804336786612615718867332370776364206107131148841647971813959274773473893648410644240444655913771349522153035926922438573142038286406263307956283306889401496378814825169340956387841141683884562943209857013292446920457589653149967194874940402472019208964788156075119163211744467961081043491679411022946216838649433922200360482332996391520484281590566930180990301895627004910852358848446399034865461351363880382968064170113314985771341174389997035762229433822250396948666373196421724111806419359425100578245740081771711914507656812800014973773827604801191170859764893538486925262057270380150197295211988970383133466672476836031269584984325640995266979442888587090523268212604190352889455855247306500969479333995419180743009368436792392045893561810164980873608743018131986709861030942891343895147082954075231829219428262383335435819793394060459040164142473406080494858626352947493341129701762207836837193588444374525158543431686555220752217407181267192927035966131495985113682360925020166816565757298608070698748868280534791000034488505809788521805937827985618243207228455243092881976051892970454584811883890890460335847492274397872352968584713800495483753264728458315969904110168797839084286128484999460114308951958343938502081464420231885538426317319175277389627221336745310190536191714786173784470580682110337608353156176045787342744794114436624659694696450610923212606158136449928640711360610552852214085592476253883004337832372593629857702194838600456357985398846466702465028713256128442477255868245837176586016181951441859822380980586586175905198685247985993912078912167287335463315512860444914468496527080240837553353563557398751722888946373005634750676596237671056497384463399348268303011729299166838964271461416296287974872286581073839830056110006062349415625257239861677047770016549503446776373593847868335505623274212010767714954965153208779965949539585035157266033433874133430854603295659056902014590963121231388595510310032796810494375843097124870330259781118822999013101791217794711671957396452173446888561107471492127552874348146317002078028853675323803755602596708725415697774441413409710470247917816118429249002543958676717664657771095403936616313682528489732578054224242837310688036389270695946004869937145492060685904215261239908472113712737991039985785037913439849420791515602593257645796485606433325185950314372683226092074126556084352884906608146568164429389289194975389731077834855624433127147093935418113654213161565163090238750479661914082404713261308372571386673683916096039333592629722264417976587697043775729104514374988923426250940054453948715623409438023554304901074661490112616603455587210473826029248160294647135257355186404252666156113572432963284057173501132983560208865557035247619183345001092980035768037440962712661708272728747888090265730435732240699080459668500259883611066523782061686953534424749772488853906219187137593269234128719494047100628790280262809772813953772243895970315761608361015965216286593513011071975615770255703997287437372609115885422666537139565650928063540648412542165531778738943684763165417593341564922016003288967770135872065816111116785080791663068596130264050045649809192080569164117963259899533963560400569194964798835106136529665024057691621416281681673711697128188436784763000109116484451381455473506607934728059882857830835892410279201287284942090695079240865015194899466723650969066243718490965048625946949286412573774586736960745878360802996869795293950825895341916977716478957938712971384507669436313120030283499379689923574163778463060330774566541147500915526484516587479260986676333171369441395687080030144859173179147462966595631466992860294679591607156133147397341383785326943947719299922347414997599451004582690506893364707476803840423139739014521851704088329508162711591858277707768166384708548845127478547489948328806682151979583886063167205219595581560974458272372583002374645216839383009817917498575652655112815756186759835885010182140073251048737090167467671102145901904621721848618881062815679428059336021875724032616866714904032182367545336521120689078808309764744816271587549876737717470886324268765327218641933869185183356572234526648487354319551521025829442839266909485827019190916072617856329288768909265926887486923462884571776795676597289215727471358000255035094781579721139022595351624467212396195256781435910326547758287681798015691145408396372338232808730774433985459961522059738923121737456328061278492645874932785183144004189869014568247737287543762640858350317846267471713762382612775542468980421793229039809193714746942392206153590498796035843056371463017412542664990494971578946301081405905818069437615451496842435918580976199226528181332910264309170570033210363339978130750047155383772119178197066371534481675723399070304387888445213724294053284892160288990170924338479947377382120044832666082366464956906605952260655057590271408638243850448804493449430393021561152027391215600312179082141263246601377760523057742064451882711164879836134648474329843499959001552631522140170484450722618595303187266801977918620275048136792212407569964428525375003057856150230483806744601312926929658995677837500516953983009612868359959448052579933657878688909216339209158731476636713979321653034967366739336533847720789536969579556952754661391340121591400000396104966093272930658862786113292926014540933033556127086726377952945890013201897835405892255786206323918822449974955040139826023229323355414982591140696776542299022258340044041490075500571600296130800044291841035098028086758179459990370620190508157335373633949681066068402501126428361263215516350408861995636147702692410957922293400700899304354228390083128642090475432935955818109394407855668436709008241424943115562224710737075887911052919989079715149470439853068664871358674305292028879435589198146867609692392500514423841744350424730631769954868996855819129659053973652647358211709879713727567353647920017879218545513412822034908624892038566805206341312099712277258013012708653340784308650697805147159286851947656119649134419442106094815937975133641823607063956663374470998599838254623370224258844706471540663772719364644544846382919026533382165470527268178746539981278445402581477994858749991918109268106440888005301751980084230020016115168708687900255159384398677504595760647109413431992666940155191668395822708226506535712991699361684404175340216831829850513249697653502576443276566177127350407301171039289166639242024895521673631690616101050503472168933615739065387438808229429500893146047604949386245351149604346938526001849314591236991634138996158421143608724183026441727721792652836921248322195168220968314839143996464854111606263247749792774055056729657616689900926553308533480499530117397848225494805679142968899618581852966454423912987187719956180554014010040833500238113679919717015551096474943402453118278100949571745981452865832555033612189520416763133783434476143828343159399947253078771079310357097118174992107064453843296271797186967258969270962370749745866687166174071217160559253321367760715663891371364142377681000705177301476196375404812008050005174138992381994005028463027379212735019851146078022247120476645753220694416754253093997005337562366430425956447046547753891074398493795113296606633525613960873154977696599470169456273465251656448465371942062635379287585564376845312896650442296676180466198549119230853605147352209002003498476114034729906141708525779566257864402447158212265623331025223046173278727102619754500956667830380971954182330382347505176527660397098827877545820850572737841197725619207934189124728062288920677052451736726360141426198254846404560776623044498874477521348262203106215309332366327711274804676659966770720313176985895234288740002925252392004517327241790866513316847893176114531319844332648020678273677967701600610716498508289058463893493107264775107662017818142627056960769436025647268377742751110984997114406567926948442481255854590703944613414071562097151436866220101734908985623521358820447158061832995990772342351755571836710699642226894301161200572003315626014583145164235837475132523024892437118484038527570861604643382721225801701185627776909163375562941041575498820756808149003133073418553585651554209873388480408786223314622052966144594712040548147114056374817454230492740161505352112966269305187461639641159118931300817839534116467253735146691715613313148978623485143836725216668589437133128680326314729719518582367050364174292652643234025499093732365946340815752827283031198063611005375985085090748106719216556490164986611051595523783328981214795321453034879819725838216775003062941542186553706054950835996689934189918515181632245218342418790299809926045367562817752884527253671138607570163659060504920500997828734878889687705377114990164918101455562589347571505188534140655773696335158089352668033363806475269645264383371801418403235452118648007632897574235700544518137597381247533008096843185015137177711886521791205607449040501951817596122170692530545427509398989181291939180733113592118404365808836814642665214658846222240832494216138107659169348008125807754549046164695595792072092169495466728230181605021251036181670523944806370661527905708948562946588707819407209940254278663764639858672256917453073269411246232122522447463288596468879666544503629446783341212463507319932146177829398843648359865258050737535534047303722991931952228058454823573908776512253618127147185861532716567773857389017063252868655965874529259518348267038381510800396350785446669845423568765750142058874594845281834276548451019276114448309625895741493146295663830811037473717240359538536156011508154504722730233229085249175009924647602812058646376067511901638760557376687079065523853332276229843614706772283415233100733479354455987350928181302742061653760221817630129175870784949552919971842485359509738280714620121711490073093222500629789372197847229851642970659347495293586844709309579888268087826244492364455253596326854036400447647687802318246003259617281139883640716154085704511214595722668508806368971739479429310159952613716428904801689510092280374856928693360912088087808344730351122217703220974010048440219855158539411072991978901144365415567431513152289862840187330913504972180403070557038236218334036833260422173964875801832752223898122751537966076060787836611750246546447335285008627797493533417866486072935536965985783737380188982372840899601428167210587738636077832228133319110811143856723503101624166334127804543736288346264254039455939654486391615530325764107385086001018085332043362178724492259853911812880730393906788251477624016835631973707205920237704544248771921305016437282579859809503395171782294213625200057345531770957130657976836540597669737475335195201840570826707383132527410428451746133491979998020630991050257916908342971026211895079271909655238072534509200158265275373818210507836536485095009863039620426630777321531856966271238328103707685300107008296518730304318154256628893897441979798912707493901086787313004232648700996160382419033806493287327012394635461846508515435717942012008116958120170714537173331336923111995772145139623253221762794410009795878252963184569149552097849718771636523282096566028750064873407251690316543593279662949959293013655083929939155738821324659013312327966723820986635041009208479268470405647382310540495676762198124899215315754219815735486754229294352950431999516383547055396199209390691512814195385220576148633701380292173339015301760911429654672335278978823037038431484906120355241813868311638571041912580211513629038872350059240710408615291005643592708197472327742142255240423335808424347983570339342916571696461009484575093622012834415017479305806882751340965275389847492990410412230494254650277227587567137650313613692752097531724243008287018821319754436092208533925423628337563993663120184279995210315811386923434960508544501251623771755721500425934334833280354308409568316610097549551984851675159564852975760904487174604042877977031414131787480414587669749165667192231872277265083243455087637991289804242700443650191426306931763234547143268030187563595666366311016515953084383576664594272364499990501486649839767010615180175805610859165360740828798364735488827894072873863147620379877994830898269382773786419629491504620812464033346570665911550172599089352291984236197859513329884778868313505623931186311345331225264723970223261275538429255600615716871828332564387479086315415679410399346336477448174083259306329956668720252459507170163970831935820968109309190192879789680219003867651373128123089334942591454760987428319505458876844485385220195990933929424190698927254870429512159700577016930802500221442652487676676013553452893121991991729768410327516305687716253688478653156718128120279592480868660893095786808366780259469915980047780511566760206411133422349258844238075246523963796366034642087253051809579967398201988539237955719163975204634249052543965282119509098565813310187144860855739338747160499844609066685282521353006477626189709139834434854047893573719134006729814188240170563941377361533711369813093740760815300669873110603577714931393255050544737329877891534434443678908405206748486647452201455965706906634014713741299097436652909647705290931899519931975693262727652603529923869656386797471299880148480851825922804088076581746352277343943962859165499813126130818866709996943361031775089670425767430776414008704737526241388466652286597841272956847497485482708025055249517810076840387671666113365443687972870043401260804274343085275819934052998761891974496827346735391467959429921472153167917281093940341542324759375657927826243227016140547578515214872350011779031636741848389266689099503429964773693030247046570254321925870801765589125574546662510521852338885201390976349539768854334501682049766810455352154338635567458165531860176104318191877047743084794992329351574037656217511334124345334370825468528161406788157055281547822106983531222044841645623984008935993624256407529579587709080185749410228525552058484073123999051804484974811851311975983104137444270878187419909593816960752324870996390697156533748905926284341090156721684741051857997632843965747055732660352223958477211287232565522804914247006994362651515974826986051192762042196973928684607881261622363360946995083713919066853350819786910396815557328588574417265315237166746168551012356589076496213230286108800109927513434986352098946240107033498182943224976073242278930504326324930668622839292016815244059411230210084378307209977726498604153818708239849371385016091367209650732671886550307823151198436495469215416558263560342263285028852394024801987458952212589508831743643411889466083721228003215038908231039257672067974397781716703783688734299235540370391387704885079917319463421030182373631656873135676315341962290390874134543949594735769219131363802336483604287819670697914976904343881490832733370673930343712527985982728842835441522528223895029275971322706753529902707914962835899389040880931498873489183224936142087179749758908650963221278615421172113866576878493243214069943723275714469557993294829036700540772654796396600834591841621207479483926092729919789895119732728640859723949662537448915050490765085690135626554532522957082018169902522808518036950085725553236932380044461101801657214299767407499929194885310195527070338921996909032694197653330240004825824502762627245359652666183888846946838766115932737991201561636320471847799861754888239538031286506320381837885722404288236948233741481178433018042147860330937636150728331321615174653621360595384165813887329681367054626854171826396045264505868839265197709593380621725717395512426398206150376069162871513122300594100945919536800520047306421420104314639115067843395958670748335117067146350860480600993418045162942746606196300444495176486598216372457334167182531832509709978382578159626969184944343076146189031397720091604562210879318111936241355367499966177229407630941867568167046209350838723719098836929351954312660867125679385162902722206051199986508408467245796861662423126375754130425957414080446905876126002582986048007764606123307450094922190777103502205727606949595035728218836292830955399286093634552947286764962862795811672608954856605675807305761772675083163697904560695740646346385833801575656218812698490356935222888901704389948719995188317491393259720927133679102193818588882081326265863216190744463998973452843830118316253266185689160879874457989223167694860904708802886265604315859275601540056726469058546128351224604997640106737751439454866483476310476806453484577572491962629197383415759508667804890971569615087094902496819008929358596146936899554448852693541674486870381566972175273504644613242426872050285072773625386060354522245517082311849625727693806668051190840954191269759979157401862190752460765366425880462960914998670439067833792486816911628933012718609974292431641346356424901602651980934547353893373911670489938149536598021494091179001107637082302588073692875768034522798042470888940119349109619204141201671006824307913774649243995730470114726535809154480979180635305896716310896788458169412823656753316567307991586053064844797094750370340547752315188577596596094334237945912880909570610023783405532786590316352834774948387546471994342287314598854236443393474381504318613103365823708099778584321583689224600410062808690450914443138116074369909688361467939257787908405149677685614301411896752493591277074436103338469692547048711362854478421392736318891951840740786461836116202483894073808415259804837465442305296340855091911161853731760150755775369209668974625008000465105425647842766342048474554585842124546077558678740896275821679676407298926977898314678552986768782028090081152517604251122435868917220169844170614700052599343999422817423406825830750302777351361464168893806207194175587851087110865693887388620219336355503902666316494683654237882412332446429576323342168931802965352786653312850834465717683064642841409063970128354165514622481936015317739609056429349120380219632380059602426144653941953260075055872245950932724002964935485053364032210597647701548759083588581730636323515098157223998960552519848887892288709193597631515645296403302562848201979276442278843382088155184368792723187302302348589040321430045309153543976713023343470298752109108038539216015498660498151683963440359131404832920726436833226160123488514174826327872024722426064199940275484228888151181983505297256722645268431670683465338597406326848329427709931270238546689518141638589586627212325948851935298799516954041854487500352968455096162559936375015656017891865044197491430002186198166064048319034297048433703582440609727116349983070628105749361605890735491140980897151371032144236879975967744987142608137520935782327628726534335822498093219383982480984778656315204037935616584776655009081799408131200134145891667419596701745254980799703908392011837636359308812129690248736154478986528715100991683615467424903409326216235877285055964438438777305493192653898825370755716605776241383745370746155374365811788149236060516662646327869925662760946899384994285938410757948558430687719946845136926483788259031185086404561058739280326402656433921848301735341567424954587834880054457341205324780850986891520430952834105945557576716797377847177028904227069620915423267171420961012432820901281382807474403955974462210888691859682998710971272387526044214554633648079646380742282803747179546192756675577740583414620037046544173832739350957061532267252779277878993487050319887213528376909358914576606933528393359617682335949110491200756733670228034570653350390442363479691352174452869980152816514385442811943479258165895903219774640816046565386946376073286373132168585262726065915134756697156211587268130875358278260144163100466856298952794856583555832348258475044220893304397040253637378350158960581843345491218239153421070567249806743917110840009425465208001542085209809055457998128340477739180637584129478884878700634496677197840015243426472646262043173764431670215882227940959580768247507172932710274517866941903938505378107560332131022240633392885734499400967164266071976240726221674973153355242824889414847778994384801387123045484390108942926242655778999992408817982187756260447994085483939731468037949023430763600232190654742857403294760200016564841201786769956723726660273443647617697428398137788282795367668972483514900149393928751176180660536386304988989582550795376288523390312364455281681804460717728910178211005150950272581605107118211939576167151495807220823211152441201093719867204007612859337366079408349600739028780448453047041338209594316050030681767235450358603097905481855767966454306907702578463974650784711977990942347345075713670082641106099043180560122401514855522347889044149543461291623745859025585514068754550760778055824810351625744430971418798907526434171334696347831687090862377121039035544248854746313323231397145617835415124861264348651751165920444538126568818321003354122471606671599296852823108131340956947677132688265840469559952989754352398076909059934402342667319710389353829665313658313584148289653118455499692811042473427244634950175461288410424110650099121922465576220651758027678714990615008361760412539080220058514468518767569858428176546224229053682876117769929397860809619296353408219330721060590128871410521219592709560388738396661950927100158748971494598632373706858340055680762263015855902446948072718780334701777057442942556985901892605548230592160360986262941074557450243278473103138699929555179059024712137063154832976548982525266110915597733697997315247186636691927983613072871950219542003452256996894409029639088766894951814889696153531491379042148934536327691556345006383073475943093579060072008786174864935376759183138552396931611246099700228037283944264934361275156267240860823838866505182680650341783610376573951086795941588631637368326201816599216396347586288521076732977386509158597333887172783807805925279092302486318534009481971779321209168456683391442826609582431828791221388461532313230230034631148243996596097230724659522405423499054450376042236456158633620238413511990975910959803428379784681581979619750633402304348656074274358217476011308244332048555315475380153494457772698211426589980982247908788730932966368494021994626685806204502520129909522101577916491682655213995868709532011215330472358750734202478061730136684868447694990172204232949783864420373056694956944532266506145476693013555709488165469813184368831461323012602769751790855243615632050494776934913712671074631938375134174235796501048820673357783810191887799392536466313546288895233245707157310233354019735004709917491480379772767499732642678019404807218340886399531517873586676007601998169702800032398077501820808135250192884295687966706739740714987404355704917107884474854697174948812581063186537247803115068420689241058905081755832553125975353255046289815231082367003053213392960869975172157352171970679052240755966910471653061353360860980839702746531884689943954838729837277727832348167027676523527910168873234721072002749314535301339665647585853098595007386248276035670450952891647672772067230444799094279462132484076990942865924777108750267885291634676088234384630003428026059293099686135456575264940107014935926299156253651926119892452165636179231511399468778979212810581933013752484064738121259447630948505573790874093748480487503778685232923966973922618537944096634883342123383026673489984097636589581687450759189712903535796292425713813151578771196738569217955046255861000572826686439324733770769639680925366989371596383274748331785746093135326012799658013599496141657149616242500693971218496802420057589382930978569426225579675879139186378781454117977958814989931361016348923598783663644653507142751472341656079107482320056711198773480296424157941723224777891274261585376525447306862332966565800412280705745657400287971356021071865248239985749285353229531356971485752502569382016856855028972753806180638261399408249076220090506151534291206986312424596196656021474486263884865551841136521168962221098789472979657965832327041050293384173338516678317333475253719721432209051808466641458913215326729087303595619785132501681004672121424854806617950579318827698746804703476161922296398353214090714030938303096117323327485267656802348101966767031873868702626954941058286669378924924153267994196754617194763103666669022596575876267253926123610894612045578504351731711415271599792188212881896477214994272576428283254493735091604924706951884980955938047595209187852238757648051480020615334841112344115832077883047038383045756556274112504156535624724732352064385801739336580973674702345793969139953190089747965865018185285634423590147521718397945447042385669568993427586789105810199608016770951688437064609547416123718704157999136598445213357819298895659869415338444234237357639367270665152788698028767899585497727492183954057927696978830418041669469811520848474429637969742347669091020544720293429828807810079937699296272343461110490491426910593248286080979776123870211312962943374334247691793104777694764048863691898061828860790412574334578120901194467775316939459993171999083921606332166060593220937839308887771138326819087217001663999684613855626073514635379632119436749560349731719796393672123899911284193462810001773520335288432243854374524505214397257841205739626860953785662383721156772557621445670792333870873279377456392069210307298073770546570226022003343239902766051073978842585708642264576488801648038230106595805771946849753191105957446207858962648372510193489243196572756457634058122625065268231515595381135330589712769510336639489991222386800057096850953414060668185725059818097706123155362807864782232268498426536503745314348471806529083711452694669375196893582374381505760647335454612661642865276963896102493632608523625928501012131580961622893460275160250470889631461854397128222586872799535597543943821544068760572792711102477243638459382966845133580911505035998651977044033778998282422759975748454615853983635278448707617056520958457507577864371001671491075566281124988961604750801880242421283504743473445086606651063314699552226310879902520620593106095587480440495548780896076646233877482533222131223327811207082771364262768579195603260820752133423176174056817062180249704710774023427710503213329442220843577430073297093851774706819409236510893981905667475604715510428856209314208469846524239982568523853825427744688973361878459177046716777034322500756761697414948162971995121337044534024191703385612382574663555744640664807422419670334478741380182664174373807191972007507294669463345558081236318402723071717797343737846501683571467130631298495468265638368423647024824070875250502574553356611179870542197372012146435033722308420307551036932049161738588213072152999577086386342246706978856555365750814499387267078199958077671107967883354691107159125620543900291881413283108925305965790020790105802856200654178224243110139835255132119819062212120388364370592773861672353793342697342005594724218868592274075610679327202710705307343462168131787486945757219302824768985504177891945672028819145269926719639057121718738336800314653314391316367180788211068625507017712555237394600810775889385558911445223462308519305795221758239894589270120894323587578018599414423228878966125165007749334595736366847870726717879536129598878422242811974714573007682329863520897879377926184711792121266849778179243117619260305520268101260250445462283679412239677167387736597449874579687971304239896042469831468793474354421904908517342749175129669197252937464125239705214124967427368251464178149439352814093316661668976455004947944872125057069103164241771847601906705196064665224655560490093958741286841043494935707381479571539709527912102125802133107133876701456762668650299647136779772366515409402344952697372658179736441632104393737216787141031678644800641026205658435916531361643743688955174052429969792853895469729111993587324941233760176337008604384139002457905457832931103231230790786316315524953341025528462744457715883346618064804661913352605626221365173522817505659035020709668523281243336654168403522705902097162766404893825579075138979540098567040909011553410105099933151075913669783759312820600475006322623229155153854808676302449940535138397391005664737843427236649966193126649921869132281389194131385387038328571984400314250607890979174146081907531551728601642894946745118166820146223816203547548588882573809176763874664772157423678517348572012179440346428109445127851041126899281193974982488377243546496270643779939510466859671817102439796088179707571125367899948435283518763065343367677809534508610101749048679487627407351826839018853715372189267740488958720210018558177841766644685275303689858976424451283645627699806801046580251639569913998854906771246021830837402960844878893578152096029034749077538976154579142971237228654237488875432127935724902009896138691138234232422241910182270242785377144134755756171237230891950435838171452677283576249159804778641515893134201683763059457141362691697486406346581085320678254356504128719843323639105575790705953445638726288658062716775101084702173157543151665091346382275539377021384406209418088389909794822578246445223089248927286773210634566478062150687421740844791669451368155469201932118182657611818046152003345582177214986046218762365948539258339657167810817408208987955556484316240336846249436176383465531442517925025157864314928806978062282521153943392905337802616233598532935018726973938082194654514976916864068791737459329374606233141794678667686914922018419758097658504987856720297709878446437560310720638234210755185238573811823365800245814428043181283878625319901728730291259546761858362806116651486219058312208345964448766652310254999916950256807337541979911226365314967273540402982043706518515516470898733023639231420120537129902961230973285127897980750455788918961190409135084634464920991317083346299064588622879019542588984530303777878754705830186918180742384709602661817961259170236943447517629951383539831406350246317617155212216626523153033992363236123036527437540482465954355211176308099588113745845223788766790838641351220783979705355368857997952296176602756698304371752981493773755553313670232616620093652972147054701686512757777688623428835344853203552905142155408607952569851412176105874208035898493631551330827210702036439307993330470798507934419270327965553180702426889196669648522355250488961063085478904166058416655458630325412769198219033393187902794941263123111418420225633518878734433355996125336618470259630319155456593662637236695246773283885259975412177613722552884667517803235480992076654634471498911734689673357320842289571120291216214244106077902183740723663266209779862065147931364820670144789236958056670576476216581560361103583578883261776793278876504114434535077119698281817008601882488918717638705279279920825725784750705187372920268504732952630860706661107876049785349389100179163752560327784968459346176268953192236873788674673635925457544833985546696500241735455516817586986255237469967487123520877213417546820629779323455079420576474175661963351758175762854189579364865937207602246914583501068062097360437710641939174827829810924208523603387315332279838590839650660695151749058077629576528408796397034784385731897557422324575643064372991594603502920882907734985093932324491390201568967544883070387036311708739885926350405890994266397247503512730419308045630217081848514595179621415345044705581674288896471488031606779647728526817703117889864687626202764914488188546850905461739024723839176467967700657138746639479040854105686971017384163548333188894478190713416731835952289993593703034656248259611968988448331006789337284627463743287790689478689223844079633930357067723571924108876502917567889848879958090186983877234461101409600310748594695739394366383311981626349653737572303921307714853017393467105182662530752947220927254005938049380213190730071853880350726094324962934973309208986692961885785879831728406845573462455966377617847003837754860199214256441913964552185513716314226745426165807596035915760289414379963783942872847881696084321919844991462742819734554986673217275944038780847232216358526048144433231913821455733781085037804296677282042595014295065263353115650864358202853828102500176008495524148800762140363688256748333274359271788480192287579931676100350130840364072284879220642496455082457161799943219318764023677942681365798196030832186546409071331994662087062253421338963007753773402481252219424229694376994958810381323728898371170448359604156418768710741104926718886871917688139160201711390285864565428261092216014081679715617814860625842163517922456567773335849686981948714916315993181864110582343737852997407033239951102918748840297702824862280256644888173300253244501298732466510487101431004534929037307305145575861000839910772838841363603148486348696776409754112948744881637903587596041769340206043757450065017741228939865879084607674548042363587714675596368961661712030803799663584199621809414629075265580618933751432351266131550238802783372304142678689732511809071980016623156302838730127174675118164206981017116134245603088704844569925795008903411422174129340257016199168284489482743272799670898046275198287667453331649573324994300790491349931141022068409970554146262439533211739840987457972506763108955582658959407418051450848754624118016348111409794525330660061861846884511660496699324486228882307406666282368351282840266692334444865614374351429084422583689347748928261017385424284975783814075436629962395917892357638767107611618923268458707703704637765912168968389947654317258016993252059026815657413788682673010237871099620850325292590341258940291994920500311510217882964961478110174929926839256092685287399624905614905026181333224999771719454097230283064551674640624204041115041982736444281900560255664820821258478842293977447107575901875085404797498587473459320052713262520419526533357984783072238517575827148239740261706852389182065090380924198043862162111238926614392828671895752733845062647834451036265598437386356043463508438029672629934289228230584891014829332093694184013130322046327379895866223582995772933889632976362164354133796917201570973350445081214291045590483872636460331596399514999007334053859474766362755172757269502815278796917865308295313973854583846098360742583141843283663430355523486973893444954070062351611902368697813640317901328274737178746620918714161989770869294286503291656680785319113315306017726498969473703240081441666700432245052253237846129378566285413963501036192928996738353013542594627620316227403296342385209442044213996014722855877961292918353822805220635106109084093153468018111800011708191373838508272644733613318611155279350114631304254181517773345072246885143339404287835291634658405955568892741537213672962672543408607336624288984228606303387224657208990562839538519597853976231459057397854416642243834393187136388817185692846182971659640122991830699951316139922197116076329742763209766298685720425787628230914101340432296144487469943650997854261029267360407418541133047215030724648691030155531784309917925756845628107109771789591948470959573694676574508299191295901481597543614844568326905434123399638166165418339208195488478283763641075424313161395484553759446201675248197876265485797455477345863780058817513807642536450415403582046586936757492857945236910495904642750079091447048402010182517032610931627297810574090607861959274727087932701281626990678234419837782103611059605224693601139066286691951695414255528738634531086008432482431717903907568939007845989162361771232271297912130452945106005664613660777859430786212665951500773285239679487932438994294520322505825707684822592130373695869682509884109307417083773505247221050124648365538864856958365323251353171678405102065781263866644028394853653256791853242155322986785184489873480589445881818047438886022053453897583387680805214758336120584552050930823909584755485463228011089205277907531626460631958015180437756796376618308405379996192727747659526318525027971776892226896660800826426361587336665900708411028115304797158715027681658215611355332025812746214409380602718080790281415448074500633798437653721290165240634217674155612973228876610375132318150947696147588073959775862205403416557298101725189822172056259874092686361305357058039404586177446503637696646951229565515963991059882265423849236134527824171023895280437080347263926867607839195245290040808212319010676603905352884624252275677660796628831476926872728221423212588114998579093003588566862272890012266610384530217218680182050625229490386837886969935201983176020815110336215351419509871404968748203893334379808289422322735263252843896032432431545090385153165878154776243984274688513814393241707823071499725809970277122589900610601499693496186200619962303997260822121348322792338493999285103145000468168843430283109718465467942572597391751811135326396742713593387072580569236072462424343047195357026317452920569908932848516965764116161756112511302874561127963529685979766380469982049963197463638891886512316014678169084708482578858654379981594631297804583695299675093975035376658730694323285571220437716135458745740650096736705822742373922122372029910223203743934943933455972575763212530268424792706590760860628415778275498333333859666784986437027191113567285447650196976408692245303929682939715199245537391880111357324557737884641517895774002912552650892355048714931645705036263406322218845996246062278357504989793905043960080361032779355234424084162868209930681584143575413292105880319949770370347305390449521431529709177658036636389565168313853825708163657634395782576373124041880651623498566536290266055381891396956883683233530671958274981859248542323938102161106849207162070343874764899949124025031345680699930395849331523668958858936590439603196400227163289484950418286581647991073792225599645066764791135720310807881040553074682113364555125618039626409318557002877730071983478414371961583286628305566785979550346131646529302648839830689864205029253511650417150607931514822323355014271319421386321030479302528551648145328889442930631931459194158708665324445462859327679714620537713939765929664684201851699623139032951516068653028529978728684495181292358577350306917809712871234927191712050741420108925040980288458096132236369241000891593442908351641491894813358980525493216986394472409556048207067614691267310306577718305324777889166866397173146740008958230682400487833260555075057685810886182239344938989153170183105485573010620018195090816813107510413702826573692301897426821307541098479888945135904812227767861184709681979582980833264135068648300138600074110904789753366436244861998706287421685262205312776531424761550356528703860074948546410458679536185764215640407663185429156260789268442270008855268294455434525603871592837744650325117455807232292147188131755914856546256689475834240914671413762500134510955758446424464247861842523962503562455091691879425173068700918576254799155752266640618414892757436271579160729304348703947084140552799207754352798010512041019154702655074241273957805671414597978211910536299139640917498071714205113075736769375414137313676205674511383004005551758448562720402332151859922720126829214095327716191249516072510575639692604007369491658437137836976832848852578786912619078126869920155634616806169156085884930610385951335800823123874924618390935494076161208384323020566744297343057116086915159221291039055405887643561945041255566182040623481082585237673988474977189035804701417854761284452882049110747569760499039788840663998162082407663719078806651284989668337218765867063180204183602945054758491751981962364540390189070022047589223792402308288275429944605113838605012144557587781753010499979761575070586827259929056739496609967755090258489034008549978930737070872476094088881680334803639400038612849171475013230827105773227805121516407707573841686553732285110515109981226492020668052283231725001575686908045708001650271517533224570755669969922909975668748896835707538734792631050789370692724682285753882093213485254635976021692852685770392327742903913586005474924562917245804806597262112872516773729269072706896678502298096614004249517862112537182106174632581667493864403988786289098662999935477951292300974623056119518656870695604331124795641206259778874285053076872184152992569396708560800035575096338522923281158091046526907038897277260858784283883927534625937780064734796007959863387650441588892189538907920112403171465669862937852462575812612957942541268643681011420427333943691299578300214016427412600718907343365308762810661152732946741957646331165606232414424598218973507099630032512182054996774340447991659942570478763400073753480196349447138309771966175414783630575383608333658468416174395139433391729527642011135311825351199682870497039655164912813686956118138269336263709570343868533782548885202136194199123443283841226972472967062161050327496956610189135468536919713170766817748116495259526855163468805125981051287695242147853596934676101463264567449819545747513395128787879470624053782059976157666198205496514504246621334147868022289415025418218970625295905169763738580470115117103132814128644329480465721215564513810345714566047561728840949604947542586552279542495121062510433240039354837802057704702936281713551113374752332683270980478699013934193038483190328554346857889516968942955318322176193843450323805647204259048765343647188753789056163575641084040618434212768974350724161223586481397539541352684846652147963681454562316685426622732864650560960117243141642496782245457954987643264782406844329201146043370626549890869955766314693582795000693823433062998142028599412784571379193645932887435376904059802433831412801264363776441650966487376639801968551746756557197089061724691436585572848122038893689375053968611942100877059132255611321885432354665152101310683010856329062260802958506647330923953285842034197471356505723558827522194949142762678518397491363303391363667321848597231910876231099004242254107037200439246830602670885876613034229418875764994899694944604638034065298310154573012034550314477377250988542470503833692650674213174144517450789706540591220811931032910982674544571061418750536041306086613242807479789460348481805282228417838685101635546744292064263974563313924911648684155909898703192918833943063437015216791093071916687284164425832026682684637830324346170595161925633349442576642701095189479046657436626266458523968291733312398237299102157846430542911757455884447629025849460332034501136937937531193719696425919104374834142875500282953633703827775750679111754401614461957207888932155239806452408717762690518435427331342901832688495729117630308625455082990385322843438692802685536596217869608713313743230359969283040499056222070922803794006114287643404417986857112601884616696254096254379936167973742853334093565871694681967567320316863980337311773234540338095677644129943247355938196366806058466380752010705258511920883930594195365734009992706897394231980307722732621472559959446439252032822587043321495537042897667118839651952544255004062732873964623367492712457799552799312317238601253223341111086063394349354650606786064441309833105285324260789011379022991591863736262047877010571331941456023060254926064918275660268697295506842803811894130089879447734754235111627626570669388824275426352615293996952430389098857009561948927083685102371239451269766423444504447753777623736879700079251070311370221902580962027530454169235460774004296867070659944911241660824355464404363026364653552781295304286835904288729179724952181895571108307535631510620515455203589884071511713742684526127380886115973257168570208353927849111332260718631868335314913701898378087477780042284937755665955555421158885309407909158741520327129051804214888470433502438986594151717306522293863109832352819578583629815055128484651115197809615413105015874576203066536311064148134234917502329090257011683105554623007743773973578262123512363955596115539627290720748543686755264435336038340053857118958401862012060456181157714813386071305561636908228154449926885925861882338551406407423492469976679986163571071436261147851802485460376033234951990817980655870870388980208239101589406172967666584152928255086525568015082111262962182431631397097001530981433574977884565000997422849481226788880889495158709304656520210364201903075793850431965603557344049256194073086942660930189091671960593262805560435570399609753500563247413330780410295374421013019768719238144852892556550601623498785408098890697201917058510374133529471940564194657252362851305115931577228399878170535825209656519403348722155171021466254841306625683616860513963546369228934386342750531278024724360014027551513954332920620237088441469752389944982474315628141502391489249320617697186684004329495477555106817450280731491270675682237282379671303209474842396033102645277372991963600052699297343299786702421431245476553476998048462015618024834541423153645204609006186237506904111872112523550345795872134585390687484861061637443604634476093797900269003834643271087368825971773845343070220634404392371197652472232885602587592856414756334294280752972926404263589617304002697286408098328612173204023186273346355494619275418522753887320558374586344055996283331597505403032578509388254423123218951783141692932398259555783462100882437597781046730697849312761312673807297799491832449705192503632999982190329609543506113014744628293607733388980962598598740543108636052169218033444769406830868045409170841195375177601123197879348646611836247484972234653801732120609388201031248489267079476627331920601319276983537629491786438986931180366009578972474849033714288031045417715327230710842563334751269119323039332060976530587230509458466425444237107660602275931032337278878255056685942635094758181236969192065966160851499885734075347286078985354204982926115721286281963122862624038693238094639189733353180279546156665117635093015901159732986848437772644476349895007502597114769936941390610515205416284165332534291247086073902873941798601122066846793379314151267603548923976160961644482321788943918027434880223918123215757322955191478525260214466719250178799922100982862920704604388949632695649764955650741048005029038401178070289655884258650319354475714613966577708300127518682181701962962928643582968503466901041201197267785024766582450087065053841708787147197202812929784054870015122502451600292428768234564351829167839853779071659455827999072134375940358277763184628361530089700086085148558318593966567976316424976606627553212871463201279486188543433260758053850630628595026688763676184039063875018506086116255930330718349834341451416898181676404231492787618115511578872670880763692553123949334743554243654024496527444704485064483846138233983498910247967668653462298631672746249386695738995484357509846544742727225689484585958755368023458869218741017093713674983769815710866524070523691429362739314867444877215937316833974311124925999471157757907851358759484230991592924367913799808049836636053722469253988088970906537170363779746044287441043961620741760924756792111993832303844558099819533582751721646838071292590323518441431003460521527210537486500655733035771288256916833550126058551622660196507722481815062141104424218602711968606721801318109909783025425932103224822526249166476176413924533039321543655705444190146569316938722434188651811429739493843093783293927564858390720009115183824342064461236630255811643000797723692261938502888830824362490630856236094125775757602935092166647492911521558618991253763259115554683511012660331661641908792600861576157881129956329914461020844064030722009535322097587437906617825197673987818967858495243554388356581386391530156446296325458237241562881868508164873326515941794127186689938517040849915543376952313346474260322980625080822998965283327526033266451422172059138304433233126003943665811340123979509084331275791272894419458623643979038985003106403985352773341284495565074450947479393815331405139316507162901596527215576452314738853582124498895141294469082792948226907365698094925214323630733050648412167225638076994494585796602035582551627169886360955585012220088025477018158823725991287687809410543925803984638172254850354572175316339955074859368878620718394648010986853373651005039440181701745119849393423876615966630203424549489455919607668228892025243991160136504297944463131889280263562437789517240474138992176891350151574192282764853520253611192969298835998447489017367184598569013618513346844575859880408885405566325631673700038682598531874789720415493878543873628670613824617967933882670608131546867519173698601635291554697934964778810713820749709500077183634769020340747414699060438907210623987054378695110462156748126893351784981007084553173078990661796467364224851523214339119875010916947547754586980529665711032490121768451103261778593676433442382115789670608809360499216044701135495001723566666178390088069944097738851598085961563154786510295201936629788219861684691930660511851937522149001808588685209066229643236943807833936464334862655972238652330336672510847810615571311824597300042614803270567243846593446160381395730225724933049468387957909723422400126198453153943464333711113056410745453309125099569091802535809610334570764593205411723089385018900951899281629398314805847329970111101199900148431255126930260326088972578885851977458378930985110420446886175630444450528813695750017829341121811839654566204524692314378211051613711556589529427655097165067672428388543769985613384181295591375200598392923557992276203735967793452438291886247200432220879746653767375562068387219347279124264757544928747830242608461912454426916886559626873686802414763857257766063197963660313091183602341689855390323710931792001936410448027776236554681605669966089065008824647590126871648450011722267255358041650739985951443195772468567260285055012053761785480851311620307089931672565565633576258806486038900654948749270965946184157905912886734323983230499493024754939915267434101944910981652284109418321453337638900316121728652435598008791584096577237464188656525335314519781085501315427956269544924017396840230191701614246828139575074436503926459750688281291520191643143642237685526326694594286173771457361618218462164671945995198154260799675428950416710294179823732383633282450718624778306073778854818977231259741678220678410924040371276011079019206117202191641742998539982424288167507106017602959966995194524954777140584042223666516541229045198136206149942759418754216594156968580410468819441811666090652931678074380489936121262876787984400184914384820367067811002316598687589542194932566792866101426965241768891135784930977516407908713828802480879185400811850535120437873580450977776827405455091356850147878522625468320470892374263365758246379807318609142350113997874572383082425239664614346076999441544966349628909537101751651074770983677221866524182388670836782243327848844692915257389874420348740292215838890960608327329895999558479560350392619442516078539631233584133801620948296658799372976906335015688868820863839310894871707879581720466140728500657957883098512266941977306971061897145207492391632532830839285772999606277081796915440962298866559870644103361971828625043830130465639513806079262182970044799051914766378218938268298799178318484678693579043187500279255265143805683358810802347545230676610829681879817373590848174170592113639509173301964261055193719861071068139250060491379412959471683701709019867695113432169902073126521762592952194391233347139031424224725607287484617756641761776836895775833154740760614307970280479154645966295114509735013840136777009445138340148544526130052666594050832563184829111498104966894488174649064669266498497995520212371593254285861623479459977820376604630946926504763675025613083777667613518968197984798521125265345001926924404397145414080533007142584922756753240503147993459426960295408505407683744424880740172473695842125919454948311833846673006620174786912475582771946867981747066333147938657430906605861047290243816551947749384454354419723254963252971392513512585531305076516980933810006892507452449496918734434889980372619049552612380362275974223814570732129257037385005249700525750456039305283607923104419749906890767486247398915432852648053294573313470915502552596770667904995320501285336148722454412168734286836835122725251093604155190166000334664181720435863109159556845291376402570201036034022738297803796458756966410248625659077666305580017488450277242491372372328346216951463656673669814296812980536541073065937310594909681101286946922494060861608877174748753986249035877401095227980881519910781625801208664317928109057759337382507022011028836009439326142364836297527949558723822965007228887109419712466446215235062902749604490032885281615677220789108482307089889697931088613594468684411220928283922765425306353497876581389416067229568696958979162143961672549153415212122812525071357394131810265234748416586986484572261309899538126844559439984584344247088056337257413050654364524453516993783160317087604245372531961313185906969004195815707042576142668065211065740387245798058684687041506475243521380983791250362989050998592413294720446054638396727758130871746215905889221355188827920286722950032995278100486841155189132294898304235777806250069414762315364920378103168498319440770957688214683930864628564357050663481187150246809705687418238013169433597213343045539359281165914140938246646777684005533430302743409224882766668957670047100576601227930243219342324078818644729773174513410286325295653719231906618936440718445603755767356406514638388879101955643605222209623707974848622323549729751925366972763165525535325540343579180279841029293487132249895694872414655441780039976282832625238366309728693056616382187838523651144306533991105501930035628783405772089831043434962109938979203991485340428777481019907119771403333908915180280847983638237866279456680014104511003182564895644012103668370657381547942012544422559276183212996346596698187431871924858824881806262571177763289243658619300665687844039759097999644685792720084372916911979523918813398571763894788577574248608649167730238132457499896994668062652750089348256011529995990310023387644568661182417734370979958479605890999429195534318411170612768005016372087870712593372025037779535930215650428561465129354184831135532118845788912932440679473391194677763495792274765963029082282570902703853080060649263444604448500248187545787312484025811319100139899383739467537757386296095107839831318164272415743767741015839764957720096600642998877653002778047613446815486965456578818944449975912990567427912699082511554549663634375318771999822552414566989319262046960788881997262676580512865266305462031447280804344741801746832065519848606075323442901824351023988360600943291125314522810759936190451826906179660035110262972442877263558014465425308050617372940975648360511019610494365428761010905685600884491046008747181171381430340869704310458586480957772488500353365599255015957059515717952643180526691438994827558195169718877753138347970124955483051445530958006687649985842134365590331538321267646798736988520361338015541580340168709684407988998354661167431987957218043694849656967658519664951948806932019736545482519987487438859721150415805827655707612733293011151047628785087950102605580842746648887515485298500964945779870315568294114272225108324330629806569876822228313276580462662260185716985745972520528315828106082114377059194337971707109367676570313367621594680203552823941908433409266459140476777659314699299272564148400385798317359063254109172049494527326854542883367265401633942842890692646868986834082751707472979949316932337999797991889269895756592952441178161366329125706276741151311209168817591624346779046304543636817627943199068218519800090730134299332727792441502259786133109260023774698374849947288618845133117107763728972694686650116051690840631272380635328494983534786120147016251609571179228219628214758002798936213465793715088069241969262157807263914736250999047408439784718301063495543053535491315058989722306543251637384490681553379254166671366316968053122931012505186239630695131334299677504353088251534402815921710443402055840672519276585712518966107321335439684638023402826443086905514015622768758881400239642016340396289826763989194218167901482946844563162100531629936779256028545876748222339429841981315821328481800996358354420689794188753025902181615132252222086509863833363155105628535462618999522630265667671663164142711318139460496006221853574314638382853614330785719449497672865968176886008179473705516235274945575013679121737048413719119057998722635075581882467171141836043710824473727485649447101750954349352859333809194146143781161405755746147857698810227922147839918260428059824306101577666490150283297478916754762181503027135333515335497868082550787372642310973446663735972387814048050371060410388687261741144542851344770905946892048671590181627788228954651020378133899036712261736539837874104654470978801603520661338676283938672729851448015975336777566138759527463250256535500821825365001332231812172394820867875712137022331766186891904514753850609445441333577361311798544859961623987879281028793257856774942160473865987565566509549211907760505621112477977253328941173049458734808158827772700429803247946674662482337012342657467412574226943256041394481637458256303398729488052270770954274186617403485165757750584356264275866074490410408021609957703652630891866349685481830031889299154722014913913926102411798730142181555908310368949158432387886668835425657768728570223434695529658259396411336042881436991900085324806848962489593398089880721782540129368284372534663888565909200975924006226841158745792457852401350831614974606817703897458974348310374650982613437076603902922847196218954982912487524497591750001430063978184595436419768240170047700704611003907190559758175241401443238956776396686241291339873703032620114981275609070185082453100233089869944744154457762564533295938491773028260624436061979501427925138393960700081907630543778564777582137958169982921501362411968044701422435207440106606719503537358138502392015337762742952963884221408428377074846540042496174138699863563385894647702760110006286062941794885466796116809505244341296736422102696733803571914612251914691123923017695195775327150116655920611702416716232721309610476958099319046715067298921423810511132858497770440239807870423033359724607574825969002694073856879746835739885755880131719826429795286471744150175480288251636060695480441002411112208864697021306190512809400177462818958353178760926997114522469535495775734810606755645717680578180871418304670363227597071636021971271576530852428370633548787389121763782248699037812464888444182444384840946717728865734833375168971412428877163941589933873980825808517233246733423748109695720609994405053421955000467473657724882725403965457086527645253763275731452023313552713723293621772489439405119947079607832227307712368061137430866825305117554853033005914661955009979596959340313795293541855289800650956998988040601465045207214023349703798485232548527853165786668436082401904715449993077944227247473934757156950397833702895845982861810285674990805363890742403024621986322996400684602716940754222994817626664043375562691905933617268599935118334231196966367472648155034881564537705333152922606528955830955837550708164270096053982230838746867356841939319005730903034498540597716004950817487756798732169582920196328432762382785983093340409891215499211762081429607539182662455116960132458256922995383137139681482888981236867096615417644525651644373331104008122815896726890344377464449350998969311012230568477644465710093260204786567954348272364485949947377923046106034519892631628027637279673889340746864014670576100181258463497402577033251491827447695931325084970991465114799002107448895872733791862520054183262400090884605310608627752873718273116606560355181141232121168235560520010396262977032839333405600556535527014994259708170824957455562021558878665026466291794283915469200431273264764056884600524585362885295598058374530743073282712487107079342515036985211893024312508066800692539321945305750799685169551570311523114737454833140155141655577474098678307615900504185037041230415351583221713791283739996358366146476937048112791844343565234542262341434824695394824019974633253081570832270515903818711993199424179537084770130920170953036335554701997091266885165752387882480574759645358128479844462827827100820718699173463637391652368109950851784963615291010539934849537908171148040582774083312135435766256485956783269927892393118987640478943965325665124208235033971121210394872599250436081179438672585722636820306305719805432052536882294085013819572365890807440148409060593873829722211246196190801082357742967348140829192791198981039148637051962807305220190379742657941236268604218879127019203403695592505369762278949409627984290572524211938855410394500830725090329587360975224233073661732268420076897102879701420525719307150477748448466811113451220623483420852414234068094930955435225763026093809961793365143551302785862456510847440386543956046013739451307354101996728385684982297626911133156995239173238323447854748041275155169880263378640338643708961737231937745914666229924643668611228603084693299639672544628059569247628735840051089804653930201798881873083943289051071627897470578900371546550792440389440297881777420740354503708123671052734463578455486242356977721620813109987970739200170606955458868647225429815575790796059270226514013665061879036959366084384704758208656890090913755619468974138163814261714105898130435867837821495812186486057146780463948269574407190283170962375745274094108970768692812399424461990436055375096769840891020672894107520331991438445718895383838305267515292819821163927468459667557119543209506659841276814429371562617447191254360657996126025074087341639103787303869143846498208989654475484032079531538893913042126104817827004078969413880176962055600757424127090667330703543907919935638869288921934741198078270292282945640220019415814094468762799897983599245344629477035152520889585928966896057059081863405485277441982490262101077165860161298074141687868818876229546168265674546975342797991869367077774922146188552879713814233263445508085296326792412258210970624197716565036493018593949447404837053341766152845883184939642575132694732012819076355983582575437061655153605913567450881772276919238043424235815207986792454238510960300479821902789853406781087176598964299639702793660379497765134744174304857673582131043462042156473350122531009459036172869506247973053526032432244629541426970860418091046868660623641676980728020878829089979991912084521351813350743912130498616129505045909833986964220200643616824569696319554552378651018613396517753131717342034984487274222549508459482692206395462715567718609728345448871226470061412831821375854855483600892381700017657398291333834599271662093044482357481589461094542280289258001126564120243740449034675903949678645181787545388340010828231833937548029230052943243977828525694546747336940508636130884164285359804538930732623543933010720102366377346327244275577706517598799752688549052339357532094549308095045250353322381082023332225968274097974760702042362368418095981665852169523792327721418731070251949023447914420774908298606159385567003217517013064304150598239384442402748206700638916113515305560750263359434396256582182618561516928584805088902870679814110757001346040239419999254398224260411511610851176707885142115887896222755817137699731114647611941972208567418522360554000252873742989593310145696310321838890392416636309552468890066066140723264968141310536527884132640555961382642870806427074278119674423859279040011848737159997481383609768771269734637712488620646368375084544807991716953955908940472311152231486084911696158994069725362011099826410042600205856288056763944794138269940775230398757415490419617137757739034838433801377012066684477253734617420540526623411682841513411550078775421048026565943954762200128908357166496408253880666650700382041027822454150661197808464283315598111796095264515782172248123531046387572890500440421569667825358148872903404183429714989690458765057972832314305234522819478734031368369879883022773660743323902944477121878932068957183756455657471834700125213265120230303750490292187560340745147897033737707044824704824829364464212622885925217289849707014725419095604875923750397793149685568142425056884424464928559674577030706536574915798504544685775677012422941253116548573437973272237735393612086922457423929271511278943183148799053395918178181702108692575565975816195116392053477492739826181946986656651165727685753267455404451548010378795715662891702272885088755112673877762304777988013216759174621340170529533191051326868965444289839868755382337068706006612225667584426458815925825198301274243439065826609871542353816632649159202059168034171420416209359361916054104371387171146074707472892889657597914857511586207887431799076283628928393743585439428846896918243672650401033203171554875633629823958898412184680426422095896480658445742726165155776176587441649060513345153604748224829538084452266874836053759754807515817109170623853378736851185567097682766818626376646528059776757167383335018702992123695071132120852002569512375570571536333864580452161179037310171301275039522367596777709021499375529642232967057617261839087892254173828981224694915695153225860922578880630462248430849839996327237984080847886703255669209591526402961420172385319863367278901402356565129915050041365095556908861725029898278768325430783267847662583027101870757518641245099925936862105489078856603783083619358713276832330451292994092939433266254007968596033921138518769821015413144995538474451305652841431940580594049646532892082416959651272755393804385760698175728402106900340727453921886983919344458760363105085695807963774716604516765092859560910703354761213542523300902972611045580044051376321027749888539091806773904447475960740324839524158155709502632132990787822145181555478966214184781378106304817242083620263688619103350776433078113473158228903430319598528574162903626775444163025593720843133144272345465794352585108740478318323473023577166903317112364595559341062668323568433736565459733915566442547404430927864520356898400422751500911715993751977789162857174796603983637826979004475019016778877341116263740696961764144524986089365368277751701494083738243971542435341885702320543540734111420391885146288806645031285527523393067511744345394225592457039774024170088173808307811794182470471566113693866716967288654699655695878944877404508548268854735953221969098651691685860388829653217031051123746860588056937491579980430367749887880361929807403356332151981202269859875701621760820049605961782203467925372148313952780083770867412593787296254190625060882418578666673257131408356640286926329512477460111550436000748618493012049336779953149729954750050978622290595026534089189156310311355682088085989351345062613482506946977649344732341914222027986634004977317943753950388562434588073321133644345050103806007497404478289302403917130997768712666404820289538625443187527221464902110385257066242474034051881673228879401271628727259958302766411572474298083752587475110083730051868634196332807152180203174608526921208117779054809008915336078569079915714730862759632548499909255096394419251944702296741381335269956436177496513601613437737302391303384826969692845777328850872567913842317104692597787859307131006701237440302305118056803463449656376141293335922784790960258025272014457217698953853192082046991875588649795726868598099901884878264307122913107655067392652324161412328340027842834881421777065181373394198529532770207197617325244336779074887747762566434741700798858696947347517179017150982613096103462056980017780125232514908517447403570887934847188928868282055542009894898813648402596830211243121354244192851441014739751184863073378947709137422207923066749856259273739813835882081874560980729434339875206057226645519050552406561101648457567414086045836438479470398714579710366464786623437983868976864114966744670554710740963292747045586424355700147550793624898356672096056291652677892302260949894472683691849456361287312854591321984784549800606948590989852568037400278085260877296606752845874404334091539827038296371658323374920425928106656756082176329816041139609615449104591337324110659968424924002590373829290367169002342841270894347984057623251472176505839127279835553547667963926378022952321323538019047044251641750399519727223580289099818029212364081627580880250374162966548687112865455895976657853690299741001198789708134743048899736667118353002404821425281771089299373848772619298579314410733615751489476440021026681386262445720076044805133506163271269786832652456927921084150525052636744983148342302448432174261982236607930536496558834631778711667345754961226353512909413660058887203022440015354567530968694437479173502410971515363127959849897580314502266571231412952112901264739895815800687556126261907985876799206743532319424291046032058750952061090599748289651691957760241618684774919605076961800542781427984486339750211543773710393572864429513423874675964939656713572692080802010271806978485248205557919396827792065741182260797648314814620956283520607141333095632665076190981928304303357969785071200518425827340120813535630659376348683013740836809379522819043678861806295525915779605080779336522530412539349772973903963585890872438293014789594271212157125794886586160296169777409765221021266574483092757541558349398925001209055328557526569965201128086533749086652263869878966514656945531848884428558409636390919594031479673644037448565228670707032761017419114766525534288533499571028141622741691695707349246961061517465733636617401956744122903248611469670425644169523133455345076183705789965442547389079079689364450534577011872153693826900934906549217784307691726126201201778406520005223428072122445123671509572765941238825450730749386674844513887718162481510500838588140066125511432099414593344954595819365079714332895744387988074461222341380876562622185286681958388449366055196678644738749748331552467083604515729402835008355037536715172258524594726811065478678013799145986387115574853732787730505007795696560758781429806013122278955601909649141678436055024126578259630937671609614640209647926166697416030990066433126579447302513859617000877804081593886499903814026966646011508449283110937609013270464817448953442638918629191807223015093118561050224187945321620854421106525948235775771537966803082496734622705019939735854124246746495102961032926594332064352571158304924953544657680444175697459804468257676857231357344560486194716971677146221447262293487118551384535917983329226345201735003266252006725595391166731913787330845195148181249477851244126250766681959448584731527276860114310661478507206890688065765805316170754986925923181219884368686118603414228169020235041146181677576838289148014787915545875717002459735891305856973255482035656500017339401208742557948697579735187855909738640146598271041337836262885535991033225918790199202059950569461509986721020834506811461720008932565865224680135401404298153664966399156327564113015879806883186936912680467182777758255888963799127002969982154577143286313676688008270967091108411848146927335037153289918643158284562529794718290537989528504634596204406463272500490147950659024501232649101456193359965127014224768073163174068015187983268509173979618318256841529957048849543787564537940222660022417977911598623545830379641116340835328588076021871174326012616017437202873615185606570110647727811191467886062889947122160186216408175110117321078644569632628999750491972576523759146521129075650930192593947500393008980088912472493110924093472239196457110226703928995157536529816975577132400789501424438443474238578914874922091022776887548686213148886706180023538536580162861915930885375654738433521139582048253335372868275684888153767836557250519196381873388876376560727523246414377072109920941243325696542495998604472391771873785841503372559008794966509338489897397223502170249313406370740030934039414044448906676195090230892360652996054812363715579952727342239639558077779591700206166098374027640624394660889453964363200951562156553210519796842458058768267033316747719901754586155961174059632734469948836892525760584245808792691219519483841125657091276221498942222406719932956265491867810508346694469228749709556826033730682748960230093352219655391243123852270326533547123479701648202786366165807382724071313378608095170515854661501466275985328549963657150496010523638863064549744276612674107463133211038323134306282644654205914989475593332137853341410866825947984839644408092988007053391233199636599809907349687567610249639161553997069577245750206612853337927746727188104015726389146370771417004554873454549397044544114008081769132885524742270782011228823827083961067873445739246250104235043879120651193166205233108840567410034797242013711556237202997122807435134404015709875674616592441048638198978329158347757797510039150220998839745600884529910057602710715062043433639239760233530798250177406976257003318103619599567907701841123964155288578694332044138792915175453930742086737028580656588116677959909986852556390103361677302660259150940056353731875910841834074789451083106355039724971891459111282189589418295115218146216830752854648155826159885477279823009043627862553189064382734091935705173581417312544858248264294889937222460717130877680882282457784924553660270243322451452752880840286814118700005961465422856205156728914681646566041029480886471903983428552418509035793072148751534875060155718306122054461277160654325366326603719536781532360519065051328600182998031274505613158140161482371988343447567672812197109269257624666258571600057313124132727183120066465957280955911266267347884302790326776554834753441866782987190962447222938337453488701579266843612364959259895459060593653183711330175989103032406357443948064259578670798289408167722792224402985722851165948525403195525525000579315818078744005153406400721176923454825885566840427907296351861372578627301742408174718891043796095112964752638258315672161057549269666903650195476782295462609925857805717714806632946648978115178143112774836012799475941040890528953736451168240938358369840177095134910230550538929153894823146105847352808828262778174181684635361534295314092034532919258475792157121902410692254206013784887775765291891345982446767096362253185622972853548447726102392562772890757560999737574183191076648096855107641672955525533811288975604559130484318113048117303237878448003114099915690082923406668943445662202126393094771277493021402520476606477966412224436855233622961310242519999087369716795548886614808374425387370342702153179278327741114463978315670528418976771329573454736807734756902674714465502139215236311624558864793093821434517436317942231260865513460836915203145329649119294636866109674291968954878728073567362606320124620078581758219021574972992332614531819311245534047011980712612344334890942926550766475162939192099155120996897357384888889296795554360032747697511789367039055163909344427353088522782417958547031051914379137457248093826192453521903236411957411788424037137953500260486522350262652030061841642049590999991117009993583589185496517651446923836217155370475872278128499706020242133947774764174249871435758874209450315766121459616549096580539437112210653940256292352426937354467237135997768770772943111653156271147898504969188904289014674684080691641615039026527178957093196440828000162694177151454434842829308420775588130782437595168646612768098966167222194771531166836314069281025628156683230958613443061602469634771198366559306372984410841809035507682326114377970388607049230779787488381524903183995828190528288258125705194506620171372710727134224749578908294100866262027433480942743279430520446568500176441498570654362754694914735490619695858254014434478614949002051248114868319650253693418387362442665292300096356576906146183441273630763557350567087012106260529019152673156257753515545582192140067330892359010231214426883121539546255872709047995008745785628112117461321433071722515780917173333704377587032906520657898938816340784767470115350165595990821960764235790075846719052357351702997034347654126799490615878786468613861913227464183546890091955349033672620977933514234673630657383081370751099693103436400268352360068303700703308507824778721977084348022922298550147278671834157303551066007799739965060686770661547744399969225275779129385733007244304655474232183691080539885936662731882387602613709871275348524648012089226443075663797113925382574179626786218407179574288105362846669677546927658798988940248533967352916909871601207279060363280982606604440742473667174458757113009066668396671788320395986612686139029160148449930737997937806987877261887788560116094234196058279449552256018085895881209717328273901392448864409723785394679201597861330117313459502867403247201231532665594257135099877492185243694467211519440634362832893561244457872506291613957289234996211320360043376538892654397543787636271460014174214185816155457748505950439484779433653586394817975130283380309924894326353180829163837160336577407428063850295484057667080052968603477337848201546597125977029842707612322810723921772416903647234319911137035772786883266629549111186155078248437307636542141624474769162143612163230788535729273991893230669475518876145617711383296459742025859384194229231420664934832939799989377666626978228821238883926716692400203788747419744202880324354443044462589093483302568073546256142917395868270009520936918835942333089503092436253482415397419343211550042473375970054931823138433752789640287376328952410941042693277999999237163949721563669309147884539122659655841803702184235432225465938685873314435754968636437954025433379852239433414245890669193029441548501243950704835814394468058788040278345943219339305023303385521055917510412951042345197998768620752467618425611215006435065984702992057526803369271894985000019098061749080732175130326746399203394633884444881376056327387339638267934187044790909118046617862239297257920186617439460578244712703162539164710833797752559335385565904257134446853655930878864067252739311953414461888752505240984832199640388535844254823670000539414092724107561912451875434649853712366343014304552005208858572613427998607275241825466145644478909237434943865950002788750879771394329352818968245466717885953425782047866583279832109379501725873082793973249987906508067724050574657038720223345579091006470835738289877554335986613478756614116453247505035350346661271885771164152404650999259095836849806551092635080867860059631738738588792387524801066687021324843793538791211758418521359250244502498579966009021429079368822248285603310616028885099231655710720964606214218660987424312790537776508437259056647008888351966554128699219834973520563738633660252084886255083328001675635989724940698934742175324382539852404610659496128877434119217473803192774766171632815037001151884019642031617214925817249861946093724102716581013930586821622919022866835748326253188973057487847126674568183063403975415757134845013794496702502851946658362957357713719113812348665232369243896793093708744350108076961493912196188589803778348872937994719586064584416104053102594707318658413024417169139696969580041515428549513900662370279257626114234851578395974404057497010997988672375110498840757695449306927519251839743992854707865391735519665530827211175205942365139131567314977026366470554988718501447792014214704944966174647310026294821948546860205156521291903287765413452309824963679195790204936509112110547559494663943076801824776893721442135817112545056727166788846898813565266202693348768529338312737905993746775540865696813368798017199434279124671406347130569652504873723249617997524347366552135707138698942485423896241181690572019344745535979591754540185021488001615055979244968869025209982592722714312611949962984650876439558566247020805629627981880653582903482260518657994236946178411291144900787656697813992785772598320321059920485675994221076748158140539733785281921606704179260074305518107097715160926486968762121215093408143952948472698957530639111168041256304814976437778946030599314162823265529957696942025733891243950970931425005058502799445690492301806999081483185493499916046518294589254732737285431736966297582501688456655627268820948123713258899145350194766031607584120723358057754087938553189228160891393400883629086865486659677194355584027978091628280785445810692074180750168561371099122830024355939486660758873976691549768278446094657728894281278304295248556509959576227478269473364643174774150408947076055957444487779703866393086213486681334832545776813543763991652018291790512819874085559328768636957558508058368652493612731998054989168052560442481540971713690729652331776563958259893183185653210914838562885776564421627349119838847913498834256155806317820605036391879564255336755192718766079726981066550392955762202224808452881975955658675308537580476237616329486993145838086838449479580109530621885269545682922090026727209046060830152130585425194267246248349636323760398770122711949742062972416565929461560254386207862869660460035159130607083714379923770315984501006120733968208728442544656296025678496353228196614396732690552584313973706893024984722302643288718693735572871210217325060135767455643265912815734642784587436734165052663241920558000498258176686290641255961803341994097085388665411256230797713264136260484574948442491877726564469283964746190312083534834453819410225905545642954786127767353773015724372988619582356205752693213850378271925753315491103112298293307910306212122186348766375929364917379335478905731508594166540938311139084027205902867587488262299617578289139529480999294320962527371824480945549222592890892076074394514273118314805633550443533521232940769330375303005682542814046763800403465689642342608908551396207427425794803983554851552644014208961855434050846069296209289612756470255687141616831385426239697374535730322463858073249911566071885747675030143267745978301671971515703911019451731139549222785130882872815272078860288189117085399088797388358186244774638602062139219266334249155250217437499868402126741267698826535430073109966417458547843358610818469754995003693218983543484166705944378414307138056717535866283661447446751621970011273455010718643513916061785679918489543750956207231785708076721752179580814255984400279424644968653614146354807335425005058450595130877941894470414598644218429778905436230781644695415644534288882480933233642964045033985915364858199658340867327929324690648708603105566795576984906308243817225395042773933678777238691591723543593512983620499558597476509617592216243717299238362207963604717894469609903693951532041944060732270506128780490740407936819613183260977342566904068987874915081634915117354365777704659734433693650027373961375773031258337884234205920944427483697990537931180072781393239213943881812283525381948322706265217815261736065209746428949018888341073607810587826506678951874992016772727067436473902775999664268075950755619562017089292964487802495678326177667357113718175531797670553618564060067500675926337796825421852390869171750496661987137022320902815797351858123414589862488644962101115354700987163128459460672632340124796666051756383066883300484121405445200640602989824884925356192702032557487511538317911406478117503143386052352456881188920653508552408495066616491345891829139310853275675729250223934968819576281045803344022437291374208358259517882585656044633368390377440744825958825822127366586084846947160641198892944170935430986124827906196216703019901558533437648166945392127979529964098584323088586696748669149368072024129685220372975622691250357986668943695018852868689670301017146081404532307603071080371839688608496404904547481571551047661753816549956254169951848359241043863089591405348102665389010946962168790895100848965245835402940423031046661908102347545276683150773295401605290507258307210973831233357027108918257813846515356327163142929424652038097114977316195473690800145125890225274724429290398312542410482000383907964223517676939176696208073540261278311167538937160429730501356796325030825168991052732859413501136175150555876085937055236078560086354298551194090281949575421417382707824792242266788097920344667972370378570104133202930307817052979748730244258508885390860213300177696359216333014212567381844908834745439074600151155608560303490676686723640227359358492048236778198415350280111372697537506761621382272946960377634360145815611608855868210204482258347897565913088830600565976513359654383743962398586339814225953229160404183751960215116784796533561863907350461018769019358738557694722415555122726069014382697640281079907130603806297311999082110959008128503145671690670453997089561069157936340854601931135077735187607046113910407662261130099988552309842426306211863108599158660324613730966222644661433887456002348423952141867388369626339662791107950119776099829570243067987678341250336197971053108988826265531440972679362944666947224998718546501068457415634891270186662831761088318316556090422722735370423296149328324678798904394866347644181043108415389074344325487937896432612662852457829757549801610566527295738412210563711932703313398307788668058210440722019058709659836108894398588728285360853056227761022568638169936306277589131433777451852390707008302916957647048298831553932577525769532661143584921788297976308744485871647202362626066093714557842593064383670361561208917205800858237941566113409491375662177305855332655784961590089428608594009037191187957350873990091237454188233807598208146190123734425497263505821753585261904856318385275309747157243906040960855345989172410995720634945205214753515681589243566373949787300405123336501451379522893633491766884822372255337101119262988088746721233025230628217835251588232799723009117264887286086287683494290230120278100461360106053877764681314711549501095987926519426660443512584982331173725993511179900733143750230375575737011439454189348881697399927531860495139195247363504470689977051935952003378496559919666373112128362551077949448353483501755550375867597508260719338320539318712989290774465103058787281529394941943710483223064950701470660588376918017581144140037949067967275117396855414254122921462842602764655180957975249844150362147679492089940461958452894323721797705560342180081820625546905446174061354159268970754914948886253871944356859501208594913497445364616524871496624333713025034523730645339629280530240845424007835915657179025326520373800888999493252733995313086823888211811452631464485893954064947817188858578285126413637637189911353721324485756322718268286133705598628811901773030027914987080410387647744698251654827264882482230708614044081620454763746395987912655215775482836992534225447430886553821696638330611346702473907860836209395443777407440793363755721083386775274545846932319671191244164616495330009397916005021928447902439117365384066680190014391408655892637451865875052320235998703474494676388862827524633886520854321134369389338970077923598610499750196738518216440853109010547473622338710115834059665773448465885099828944183149298025759513380427199186905289205529527900191505661335812569866560733285857332543757833144636230752425094174847855333823824815712865118420079642051229209056221813434582997275184822984239082094141682143864650032396591892483920825978355695656594223656566218113806966488840127816597370239789126450563680597684098093148682018763436603232271309548707608438220660746507890309356982378153011584603212925793581761060294841536168864561748588511815749702751667634829414489590556708681770687433193498265950500796808183243059350445538704210740301916973634840551908601003960113295872458961647433679795161085936856588283484942951686299782854789099429064064274250305680845991665420707735958593954069229000666948835399427671149876984870374740857798166708243469762769694346848904836062856969121202839033940690314181356617385945868013281780764305841421142140327483367268197798154879495643156035203697999082430670891648812653189171663635360845759655593968313921347752188962610497063896690480335081576036618342075019147977133526017230447440947660444573615002865474337540357989457238700800022717695020295000062560796332125550330895223386880620315094975653108830295311374612206529134072883644993807758772889683624023061414626938243236425523201902551776200216315185744769511768627352075594512226549761293650071255168684997204435730626171097612757612126602939168836736047486199516442135245659681414570014440713089787582680952776576903123651482361817624335513021219265742543241433718256513231113938038524794425823509413052863997393241980459953437165216343334889051037325506411658401759390459450313344529425444168326718930856884623365911623307850084677692885949595602904747083477837939607810376048853201573949959352843559013338588800486898844732704733231716954576601584614796642619731431271455922474478789063794591033082228854900237391511956629263131679041026457886117218174529312403989276741889080861117376612615673008214908230756317941026211305388255319211920893847800478273014483818402585194131044279936768302724289936641254466309771452437160389821140232439625767985611535626865034007261198914323884644035943015029606373825050865912258258958063234649314116763489278851325955265234402949058262482566626577406958133176950789407631340150240787540949713798987225965759641295037479648049634927423162192902157800135610751934148377596687863342061795435305706353871058721502765354421935969317862227385337922719395229045088377677238820811368795885586908296287036551689233002215227576711253145319883346136884377341081002596585212048325468797309098731059168405389590436650693572841354048474694756248349865815907901195484244415106560461260014305019417536607919852171108830011654259719204615714742152131494552083047203458236499976078055986276979208463277897426776259737168647081079419494169862544046477692450307447382629518349466760402128663923424705786524417583578918533088516814902711866693054738144382955136973048154429733104099385267690106401284860528088413250095464964074548867562377193001500332038579210775133483417181369537821381098392844372908134344667509174529979848740129530925726839948682764670467140801012123373748744310239497162128566865665941865613378317365726311804474206191409191426333798775590101996242605119164655842143458177156642444854475354639549420559831011194731196160711371419374689230835699080598638380387336384452771872334770193417039188521633672466251183439412950184439362670562358482603288655897450073668029026284090234806451438666702292464730101799648038899639170532800179049632512665432022812126292864115369390449948606929262336434338894471830220062213512708684506733439729401146118077369045853755629834773677280097149238566872229730623512350866237610100850134786981129251416486152552759456465226834707138789944935112036965117754345120580168282610912108236461204058635627516583111503809628088716566202534424494573015970716689518038000779423904254396671330101146182625855939730151408525451573545681295247831546203108606120323756737004887944472693787991360714891821567789863924741313202107932664196022611899116235475933223372177525669752970622414408519975421492420565530995165975735859923389220330262673016304981018150901845179453008354420083397814361306501626592842147604816380370823232254872153126662377850965151531366828825454994242788228975055473571240870188074945451926924967285035567406090747223508060326342271390691311211418744887104415977184229115158362909254279375117221928633566681758138539320247025027471592231776976053975889402852880762453707125475597954801746358979420033686843005560552539823025835356028610786868821060409992249263963036833429750511978672299882988430045577902753674607558385281568134827032508970763463081365873068313144727929483294288283777390969007185730455436744666763191378672877631256420928751780968744760878289826960700518463767939879903910327387232617832008619105619985348961244835892312038852373918179078276033366427642740189312626869525516973316190868804891275723186694363256482744930984171372937226883487067409958416602210531830346497357412541094509930325078975702723142200767250902276890795236813336063319000556834540453940003750569513703817859485901324504818842250531656601826036987354647638258919271272515067557758650990928309745396982272377207443620250853768939739512295911035267343156355850086564140834418588712314055469237201420108837248444229328530922117357068072270913160463985979179676762550509498475444534746384070243666949311703607970168182769779965105392194597498628039380834313141231691446675742194242386351017376000522135900321473155858341186062691708540288022844224378739894020924102049421826637994127700543246819626347492035214580847371276038656557242908466161645408439367514158159018471838060166608304265435638857950989747961965339664632424045451279512740174350612983999124459856477047030784790816764985238735313673589155938493925790792719051274406586980155049184278333960833101688238177516325838110537886938524582842089237959367157367745451700353464535212046228458477760221259053371066307184197088336141643506429435417544396633364852264926310621113583810656609383232528161036231554563706240790691813846575211795301553438450958602202788642637075374711474920844209388923450431583106378259904420691334963908111815808534141795356366348307192538461268118293602333542511172549499661625182841457371391606250049644951469042000257288273457418866266520373745502775968146003052846412066534310406762542075531439500948314244833733703113889489249759108725617289764997253871066636278422214162869068770982387760193106834108719435783081202931555212276647429458973087406172751567106125033024792825855050191692135616836432466500609725280058341230769906045020938185769333576357787484790015353440970607027521501177777859656591432966765082307214089846829738268062938975502710188788756967851799843205096765935125944505597447062514726018119527967093442296571320034752182769933117253082890146774247941073922289195155389941993014955642555988062834573138465188156225307726040821745472172906090603516787285552176093456922125848977098151316292787791347924937402729889888313105936332800914664825677212172480040334511076644746551164946962428247584664691510813324585814738723831047682443842920858141769618727380109378131941075733174909252553594939776735961717647324810607424022058806707918414591414690523408062395353925305129283930765036848129254092674586279332431650120523068684164243232404284262895116956255057011924667421424975396666589405305336320590893312623076660801672904666766823448431429492118008638704274288949738491232390984096468125034544691605003647430112853337123742482795129533405277229790496164290236009277686396445840223264533383593589036159764913102021116401148523882304442417807878387849396353714676402626730707192424692101981549471014285287410289287801217538502914172508115981892227485053096475116241038646339573972259821921201409140388860233343315842267040529819525646932578437389414650624692791037312691815882127344791752935376402569108776247127928364474810523864785126311661015004584714856722334107528768398588181436571517819005264031231119761826653451639243868911978819738209987973167328850628632423243670357467369428466439024825348866048667878953844356952670654824937744260811512975650690264877002692377867812056078376052748783556693471124263184805209421050254509803314615470067567195484197918590674280286038930771443142554506505019147084980158917340604793784085453141387455810780456352809938706224500387102922439184123720693986314940735001125242757874170649059353081980328157486864743689918171691966328049820109301053670468195732782140919192974995763439628140773150357515495076160260111518577478152508865034072339143956091094024673338497500917920431021898002214081347345183070223985249261519695846435855966013056319845138083538486564010778299971839954484063858450303459682522086841829448512402546550685812630817748217805909387446179108113025342875113869662227431864184802789280860042725855550539913382926106505009626469966963631777357631645053822494262049424175161240248595365263289933662114147940046744955404860954066794517313691121787844747174596863288313048936923762532875550154799798653444754528295170923742760468548067070076927384808449881181416558447569144055649670001582276283038533106759034914947083253899943523268520619434741746160459922824014749192669535717140594707075388110930306157159438543614535394201451722446824427937500267884672444345462301044988668051979218690263090437435377865201958649621172545624355794178386822412637656459842490243616202300091105424460881928150408676379455823972771709640552503583081196836818988181153133283435912540690242715620211371814967715818845874833728010659480703855486673232580601000950591730206167709354725439218176218256401478262886611186275473319830049992338407444116082348968176961528493966306008057435674283335220968608309746845096835562936185174218587244778128777220183799486550629423231571877035745295976694194956328358526204426316356806465449947515027616563559036130234544291554370804417074468506524352290125305587087156093104522647143730215473509211886331868687697848276180251343093243656770530132815165727541835553283373357708567712069084788131840457203224921640406792472327629119174955558617498879814918693155128904624571246276923423385797288857404710770557763912037527114509932033509329443589512714953065282877784706963859883243928267793265374271850762279280255414185420822069148185231744032529726649547541048435530119044057476426636092000896528964318571777793543968222179424532303538821676741595553098379234039053670636300186841595056023911849654792493076495409185878581483808968839809305422806320100486289081628902476441088458129040090834365257051948573815779847171490289677027567974750618515357180510818636901053251322521976015822464496972803060641601800363564994119927492662883390525095296526107501755899716698241484221047788944640931638417302903508010431078363819586355551532045727470392295975701949341632146958853292035439898819378319374198701005275684541686220551699509681603135250009881825694329976146766291550813524534639613808192726574049767257550754212478528388245702320588560967313150023778789670830491754724410408799020351413454347339070560684866914454461462050013117011616244493963894813727250128636150771581842449065092239859853054602200541066469794095666385316966018349196267938167997859358505882211854697319626253752012020193727858193999391572069599788138012910029490810566434645473373942382097117581297764785763570636629813556487228971963920186433661201490045089490028885411250925248189319958669042808741036263550318890957114414697820176719500068194839614897734369954013536743073113041611940280351380363420568959034292483617091767501279591476868071476419058084882522575381741920454487383344534867853917693015040533055328711773494851052447653236891045785519639201358116535004105810971677999097735989920661960119003658795550512764899282303342835080978541824950708035305480224121807170796937495143615746920810740945152608800427607305720354266389785855184781082879615235709005080855267343093107409067834975089527854590807375170441947159205423951802951889354633705237050861212358664667363928670554714917273115574974543447445863730446750065780966897746423677515353382030835777902690335158998798666290691428502980400933664270012494174136737336583139296445154463689453806242067974104664664124899378978292678593628452068263130629765494013135963095245219804059497360560003471085714806247785715398045499376519310677227841049185574320416737062870771717016001437694437255035834199033213466475269911779375030688332407204958920539498284735021336427421100596901625566604034588347088908338468703707730811299948972708792738157271652726592552701161724972992752831140291762997563242440305562782233653294958892248647381580509796985239505782747814886052300768098491845202060489001016632192300627170086686150482717871969275338681727953212097163424650559219776322739560767144882212893100012251939005457128699151192056724670873995343053308418760346384147632355919832801395230330920568312683572095431802826521963609105195417681075703590989106738023957325579444766682519684655354248173217437568734683656913523470725013152654230548311847519828025045320376799366838043507341873611446777056383472590245644151292119316295862137688017540513962070865299297476422129071155537272715767312492311334783674306305377037072475063857354191758490956132549363314275946985501130019400897173417683833709467022589311872747676977252891083633230876848558521496737373740626352457701645304279638703968392426882335515920895050108220272151521475956965328146596701043251495045496935558417937116803156627089680766306256350537702065327887973912843249136149042933000232164511992298473352554821285582603797235077555382033782187549358528357700840623704868853585194814698449928192603432049492142757315479865570937200762133523733003530987954560051216792101494873356023948719318637445551697897815484933387798928693306481766347330748253797247355993005927241839245718171351980106007456337754935942508819141765353107914259581884664556146149694320975656142985820987115795003358549115023323067949507347188149469238857467491985691797462214826634314421959741130336127982996068861891953709259888053096026845604332699529705298475785494184962263018633223890960270936260623961344807895093964200085526885045451718031060002062951639267514646905768731708632467536349921859366554886062977941184849938726531262338758007874549068869375691189004599779236646339600790063670867948317283816977866012226208912542722128812282856903104444214529463059619796550028895378574775335566356366505592343271332951633136789715225903866284194358572809372607361629714447265150286441094675887758597249405849406278943437708961440763019845970835989651641610299488920798231508895101466202930469166442845957282174055616126449469074725474678304858707120106777369015398696352847587370771204773688287886114601974598638099830409303823280869132970828888961097499714425944199989180814121181406256421154083724798860639289776377307846459173294203962534370888913001978881474590977906956117900695798662470507114306475440224661446748554520864034757395975061564761286092997325306390681922091245251581028527164764882809649192235289979225888094913774819309673949214283676226992375236101150693561843589853137420824063203539639072421941041986963350763900076483212114938642041678132743013774067922094660015924287400054428923022900294409109349578826085452586791186675116457589625126423250152005155998135428626842734722290457861988557914390428203891307180093264153989300332425739731696816037219408874295273904430177615902331856349429231557953966098967495037772542631421870033103331956485356014899283915578150599291575097419914727409961428893394774118779285327885550347260513503980674591875792490723777929988062906580877764562981200256201153950413744240273166445450471413998968147017708031553673268390151290987453005239482816005388951044335335493400811335203691868204602924132983130171563753988460315609174310755804890816162678143324173045407086317200633993927188516343510279616850148496907846437803675255452175137583707406777830908282918808406996646154309990359368313358364243965369529959574239002153866392867197348990192051273707301322001277568228922967911948660181316746395683931070745782062851385474924189405688264281317149022447514487318464707471227893460365275862477097417478956269700014478842413363392777082739254872832688194074312968190079803713591769321119020785594531958239186993656734639368142724895493958233702707612852826849445099435836236364715721310630775320084352283768782802830583529158081507094579093696919019038162317841024046053608520494249816067643606207759143541597975079809572679580083932368291537832823460787308807710850234063868616662316453853811898949829567755656345938190435644909276862775940532931819594277602245019390689118677412274083961299586035436007548106516965540391792191674271062838667095810589167596553156208511272802369046300196087350012022541900723995253155333158299854948827181477650209141703325799417185077657030996484990850491533457874424191731142589379032427983572263096330699441518914092954210016588309107610664953963588660606279411269705649858204065483218317195314010823400058407985729352173409696687645694869830628876283301423389596271497461636923948352071005268895810819210968603948039153572897200749950458382753722925632727316282530711931906101467579676669303990014641849887035960274578528399072994351756710143340467711924745788785700982848390648095392926493365477443002623186293412442718091503506760880923973655003236357989990881717883201014048335259240494576370633384079473221292274988485596535277842590099749125323233182418081766619301995530750026518666844437665385862885598162913690061596229302250059538412872032633158713563912780832839717088809923596150330583092346864515288675154737722473745818446712680770055069090495110807454326497869939399240893844148025446748571843140059257427072852634809803161727880424479543665338712804556462578483223339277054841969809583651053595431884599036527724532125153232023423770138040694785708212273550118208685570694524781899786481563065322413257704219533891866522380063872160133224273999469859290806180216729988782804124216265039553084330612460032236989815884558337252074771133929108315951259927629746882220168823327247093536947654871852746686546230795914488114686225895597802477574947131022926600908288064178807655395220588177994848811266999007230379609011031562631143126658150473854650167052885846999339048077077976406522555930338297740898088869953494826769348911733859223320908458546000830288213729171404263792095092443611918905072830947017664383951379263166708656145956650322979517049994264989009044791217836124561166305352253475607049725594568134040222841326248270062599286355546522717043846780989524020634723598630808285108978433859418682677226106157903027669290934127317875769351634655297166477733293324213396108774649998355554847318539190421306575528982052358915449855487279346331255257448607372732536494326420517868181281542395576714002438359764655357464851989186195176348299208365689125452055355193545188973333329108572399599013213269906524802827708268907328529813651075075703934732206028961454838097550522024122388101116534575125129935465093227275344396864049397623326045965689372579247076256485183929337750495922822658365413286898062801454140841960791213550800093176758688025784441059329824052488590966329379871920011247655876686117467965809564253906579873463070991963005133578050339844223885116886762214017855570042851934816747348784115264653293504226271972756602945366744913265508751395688725753789403927895587723251634947380362942387070935912784341491619086603396760186905457831528864433915742238220682525899264821846805135425282315712813068434068376794938808796732982513353865632845789951932998115594426598528245179681165143812786060348723119933911912448210261974682867155364283361507900087626593649205421032569453610529295908199799894438246308912270121103226064984449911404116146913680151223165031872445578088223154670968335863335830723890944884694417123174483270971408031587562810351656694329085945207049884713721248490527289289006473536391558270600775678948208642442473786105462111952836193582349743778686871498262918977923791765143098931298961221830290544154635360942529351529171518751206193871348361444702589819079717710664304158879042200577321951374278743785552066281802844516147225155671261119332530601084094934764853251740097099010463149149254431706668222582599478581823713923729355632178160392281190711344194613576033569711039156978029566759341752674464083530205674856408097467933188935209037157107265504688618665851996420334466653018683768698800317640646544047677663649797354331914396923767697666119773036832481369318406398737349247238379088676979901883502437721960649532510451679740021174915842946887142062157363372547202250867714549630957467633112798497092940124340129886704500406602022459362388349189724924539905900770120567286079632896066717283939799897739238959108044840563319121902815423172054814418043129599858776834022851451165648011583816406332544814583124605512336186906541188966289133405154704573725618263972619253191424975382278313721815185080109456678820863383863677849425996633692712681627047174960650152546684139525372786083586872295621833924445798515857145774793708811071300084621493859278922846435072611890031846637145615879554768095497998911124789896626519551785465200534104496159971005420022195138929720779227447378010954857073693311729420525475344457167969203108155617412275923508148231199164728547040024644919346373297233165842518135075202179325830630290817212444301756307762328721190946856712675857189729522318021459059540828196068099510540334567889640821380146375191911136501049133811849566670648787868286004707566980325419349077495469409483259537292208127586100930163656290140699317189683460607645442555438138014100091997333040256897847617292421877918809598881019172686410345024948768689130604653775226199655517534755844211656663517162243801452334349640601209488411239269929273912325827037819518798816196822928726240611156703801482040001520695924865574445441286463160124024108897170438656134029919702926524254262718883187251644831643226253350423512586158194011187821810536965694030213603371856141240512580298106856284423708592603948569775373100806288286840997636291291863510996588317829203072526302775267344862333456201644618652740758543268493518269091480667202524022924163712835326372560531772521326171937886560119403952889545927602196430349104630827976427621216693276216157026605199022930723981064906690257555793192875076375974935005090745890644476058549591854135362825449150197084353296969533234418388876189235505370399294345571040099802526243151591094834314000040143219748451458481966518219197084426775723602451001989204112813800587220259662452384697035922499952558780568698552309397133898091168581552285213928743932421432167661761392740565947872248733013656745589514823225586904648135228257646414241449307615707659829230132864714987392212974422324264227059494161734503955444301009383628575569859812520827730765912997285211248809277734161962047746534485226168054315624131619499213114105139875847336195593630934032336441889994945354775197851885472193195354214145280368529986582018969344762105914678710330328551660320161597530624547550530197614873043238674356287580623399724851596735864811890565282513133125746276337500096962066160703883114143223941369728885522639388788169003451111745189074376115744138487918437344387969721726479538000277263668155807703456461105955499542165395533291990482043024925311538461407761071835837698278044492048900483570012901329428563465965945513478413236040821735112706212018938611581811335249646751792991202607365113326510899193880596644838444319791249966959693907553855329551433248106373822719856292556378099810694099418503195021287292577022923226221037168804173908311029316527242320982563109587400172025027646619689183718366741475909153636045445150598418003783083236089462136113034718232421578955326284425296174864577143971405837935149560728624021123973670353334473155034972979780203288808867479117556716912451495945428698265596371394066685001207580434654293171322157957128162466885902632242027119340114953728582732026833359865486271757202840442908842115298758588300543630526628772384843605675999236946839967117110576316675399164891617300257507659589993496382938224772853063005559646145758664131597138710908129977841703375391868151444699733729605140580897523470560562694927300268233295920455287971740604055622141568066170551707945328491076575188468182982328860744820099230297695063001913150383817463473603382228683041378112571838704918891623592824169050883148526680722161645846824664861246065045173204040681384393660299795713597387967522456357677142853620594020012063126784275599723146612919100435516889519644701610890602699876563062668689669161261313603959983234240966003661079033388900112513254977627604016980646734451155777979895669015870488927892850265586323551022371332443797940289968730042290374176040380729260649971710860396972724870007124070541234242104207676715833725878771056430795466545128983956747956609923632591117253178173116604025089370996160891310747872900837181271551842665928874789130303722176356532499053594911868659574668466203367123965599136502074466494552955670432896981947959034577866343984727503835003576427586908482156318168087895722784925032121204021925573478202378498218721950249636825718012641895912891523667792379147100758658057177086872835938518128757493429122593199121297603441653800923516386685388083634713700172807437694134580782671389073369332831803040089614132591955153578681684006413455934529587790415107582223270435083675046320471578618151623145896589873383560169313555392991228855591378600066047939085703491027304593245404179748679803944577946916267490134084513902284945833384372853002723470670484713249763872454384170421253293929940000567398876265586165946031470621686539078146622228133213819307739277263682036076913275676046337868231175448796954680665316863872370892249558803511524973528873546555664436879830293666896731290509912295113615467186261951118081230151650676712318713876960001591518305735633278893614029165607575865837474538137357497015574015320273454316780916554801643078919874099424752953180395444567496996030113420042627163280074308121074215132780563392820800373350821298716556350317471445474647909175561938514546677977192153499304049694361885123182505629265499332702191782973467467682665899613656846545963144441183611849027641690778461069364148221592960548089200992672897501626647842170175640968841474050667573389222009193093447454728750127069924906646285576379039714003674615430682719910805211581910544006389694815356759457576107889718681529401443250203651668606402621243704386562002329204023790678713329464081059357493313082701459208365441705636192535777575337007747811690634719272743452959589918092745121168419013064673957502202433416914275239982844057658139678250622080259266292390137659588727781832057896994592979094746501157062279372665385844808143826727120365009985025913530358430737862197654291135303335664336536096620855359537735248415307468466793349432147564949776720023683023939387655606724703717911648039284502421822307057428963311625609016497140039126276381688802843048775243200456112767119697665416061370407328191049872444809979841340653202221285812200551085865153117240526863252743758173131346641057929243475011368429490885900027887280575644064043750302024754491689132712879470516344963891071348743776134733606810512730087269044942225602800861831079554955837484652490806108071834087687146150423521267520229187427137730824299351822270250120780685420821189246550864521383953613157432662159018226085289390112303397600639224123281553447388986455492091077158264959625064190557929288530489357128834271059374972897020160806879472466699126008933688901296335083651941444701890000588118309322738285544320561012225382639032829977508201708563982295984317908725474247862994706171583262270182911506118311953096012122094833382881955621306299961711814709754957731707425341486735681407222227948214711553320670121857244045090581121961468069163737728838425442306256779753970204605466630351999481936368373090259681354501470038636441746885130758898407146215360455481692431699079047196354625294945142740157752545355077514179321329072818534937286962486749952320978941295911926890994602950422826068567869896805565326336449414786457525785135639982655230045238570001926456106049779760756360167854573100352513558897632510494015450810968930327210552873973163954770621248294324877414251540820577093006865133868416363945853921723980762019879676170788832791961119194346629681385735710951683357688147087043699654444602975742773802024392798535551556126280990548911528603862951164231101627170778885689675172871526867539293783835170295019013523745272885331075772687900952446187175815802198222070979594969752881691484865797192444212723161411958978382622942429007752578228243746968438864050759230896856804407755688467925664000587816414214204422810558334392863647025075817116202614387477036222884733009976471289513756406940325426067709873906875330020492532147060789946086041590929519654095159246839043341784261693682870490792113467821280099493062659403243905880450113986104213203806741324020734848442138686325982856750863488454222255766131903478520578934562158652676313300962556755798463910072882779558626520468823000706517295029008989463039678857183113512969426623950840120134825857628235238874601691350288613492910843288804433053277268253908834068357724539989886386787833596435472297311987964248128060955909733432527374328443988970622263601847996529098911324616370051025843232236166193946103677074793274641792688725289808269258886457053207122799108361695193423405296749228061881246709791771411301912042924127828244567352512763725829589089735901709720314213032304699613516763624993215386460407921567473028976877622880605079499484542115368878405974617940407737842481255759845321805700573508156091586983609922491255582185802230725470558788121634105869692262345843077356603456410995644033385048435080860231236247960322653749760099932141469581300096422982950589855865381091772420639133672130214450288232295699419821400922521780202687733226614465409558829661677644941653881694453194777225082097848554043083106429144524976652219737113620459407017780246674784171450958484875062339020958930898044922086533943471817082386397304560914774367390084075941102898160662082539103734692449250422165254687217618559091512550324901320004864748428655113153123857384837188902358450724385628947024621609884563656320511236323240029255752375855612237870439606394972231585175882997796257931447501445761137665251698238399057870299146665962910172141693050721786632965375369905641499284378620943482910275172237997616295497565668795440983772628728882564425783152847799619281075910108285899529793339361305200373590003858459014347655380104927440600067449178026587299295382059695668622424272060962038873593650382994609175888898650656669267498063418439154007423359497869243132372191314750626137245950032298019695877932259578735983158589259982662662239732319176520857951537488951994394380282999740961463460723538821567141824947461869124940877385091777285946692714252146949849736037089703054375994616597106710611921292866086732550266897519429204007711151728561614139984607222056907512376064014542107333763672368143831425168493514944829988526046991234129786500081531399175050142148404178797400071579385485437578334502307197777279593955892666120287303792512752940932332820645402545179409074462222431571884317587900789875134308129947434921440316014862248271883681961472181748266530802153334481643651276227197075556304177632721087934434522652046215886529405074108474001146782025164149093883764902339892391923036645783898055896918239040478155480370516137549231323732367393987440009170167458023284001413316243214598380849841214882115415217092184170994513327185553709521778861586335002871320573394423918562126905794801187818962707318699199591800231895209131208777720306467312148024432089668206235219572200185012992329578158818652960891934306142939217948155224468545185747983764079217025294117367547559710480071573397767779598889688381423241310682502750503417249276955895316259017905507805219933728316320983667788111034987290053977915846424986516478913349004607321865650400017912127118090803026780186445904342488914484778829412532055630526714128947241940380651656539257655447346628752852725325242075969601042495195611382389488563887572962087205103894555641764502514855455640660172975065755302866807619571116513485503684929009793221750381688431300586537554679225264608357408409757308059354379240043867434938677780470830524548670883818414991990485236304980538857882195837683979576281542714603106502603694981174343044801696919107059705721853918031286426420106198647227574804497569366401425250242198049593520839275574222345944665162286133377413419541034809619833256038875636823451772905671833067228836572965098784957648199321297882854988977817535712693222490989646424424098976250240615838315119305915445981601562419528922551560052092969375515391058202072445467130981122068438861088988353474901046879036580777677569921484364649818409381722123914539087916708374047329333947422490420455325911676772438568642987351912952396458121203107383347042533353677715293092739813725170601821729402911747023078751483590781563167668729816729569418829659406264963834743834000941947042232098237831831205945326196192545747757179366297623817253459645939996695899565653675746051549830239105679244629467688486068589869360431274172048621810210612302502376201649687265943718786188052837219236978510827563936874850431322893032083482059986525323730086615725067154610484446794689132171493155715887731759325082384483486686579138701739355055854235836845054542793761714382489439108311081743729439297024312227930350597459139771270215099789623976029427495129841982466695660670531865470801059784053116653084736261281493263191940667669377595818332136768103181571399870858970034851865458196922137675452727035699196447449701218269778886658671753145551874220537575388750097036536857456991173556444771812313005500886941140653476779136123639143016116873232669857295894506106835664335663500865653095680018791059412900698793570301847934558261447808596394707319118899091621962923743196694276133797800540352684589503629029930590047764227449853466197980753934603933974485160706619913311940628086341122277578312135714335205245322849295649780550393073375950115940078877619955145957523245934241677875364166517516294655842346292829034079670119273996803624177468085800242585843628976284080158351518903300598556255108259123010405723381831023068460621405702884637574510645774414852888429139580210924335079955396571538559092696442221082093309924817680696938076039310946340125331355978607851879242283936193195523311806754695420681908480246797680067333497228989581344369131811114025787155524619240297296372290075565966067598228723289798957652385696594881194941255559356629814911699916270033598653088178334230215402344173026724066242483256536482819090098190644474704343510665663711413905927952099399636327292288755605140150614617416641631518705578394615020549749357007531638225524338418445708198501073883390188932622533056633008263434319614763261705633725726875100600873985458477201672518792981339322952307616067902134910635795427670144729558583081785166466889857302491304244429938180830128897296702366918824555280313976933427513120724470517474408874871920706123659298789499439128632898744637504144815877514932254120815395067622267992934408499613243521095069345404399587219094956133550159998233528354255329769191726911179963674934284633629011771211641373708194859104635691507438846051762045788289609772952529980326045537251000181970856650660921314938830457859130176783949996159711456592133570599418069973138778837930809731208363699253207407126796848772556677060441766145272121755783591794738894556701604728360950378318420121678148561686989440419342413837938653901341469386990355624400718616123739784550611723235042695891598918697200372268745820490985316825638992981077491395171172530167445958502940212779491735033375687267433782777679927990260411811397184812433640646005058797296037737787001064848343182833695802714502932440463888478950102294476741212816407393630107024426712762947440881623628797703823827575520995912157211531066349041426595360326022898624525103169703894436612775618608125044788519384059129740242974320199314983074698929493704994088346164633799013535911151963952710382372813509210652282401888582639920726565015141661445374998606611199411795731554207291575837689944393416767774565386911299835079893955615060311018313405915193958045489318574260463347152862617611359572800308266072615867594922552585658996938401245108547527239511799243768256968178465221576859953230771530305771454403566456184529740536117235390636945101469793501860416709965051140994810151294646846903381149955972420431196958304799735581567819103661078705315269093183926941642718892325327997148277989551589386116679761380222255753583145209953087587565298612080230942480521775693558220229384581052559949834016379929124237964020242913590322241302329512417627895461838993865834745450715077252206067888653382366586873041662696430092991379946769993949431402508375377423589618383592468351662306414772384837151268917006667086130938152038424343092744494164511152389393882616935182281453972917711321652460303759595050934439700995764054186934971091130888175744069440733510421227341406884514412731104873517592682251336573392092686515771834544169484843013239036747179612618876156400655490369438127766490714152534067622292776578361867646596647765975606864991974494196567703362850736727998297203334147155983566522447250743395676094574719142725209805394168392848250889976261718181095708416683577466397479425236447051595984741198423592451414148187644128347467208356759359577861276221922861847681617618713683357221808441751019170166448262915616912763000938244766192802746287953757175448697676237006125876742124668425040888220879957147680616829027326211794367087170482837524356494910041536806281968807734462507012359709613155922899580576464124366255142074872110697264598061002904006265175805326361023105578487999738110946355194694553319531797753919403031219524316618204111916743273930413080197353955420395180083378583973562331811633984903096824137787066181104108666346645648590903472810325215011281924042210878067526792117268598711389406972918611533156364925030543563235776025513361767854600289515923685930025752514813378912097707563968846618803036214646465148466844211534893372365425420287970727473208418932709653621383486626601343902048212590265411576051456565667854340033620608977429617746898465339616636644455740658925527070635922897253198962053109694268155543868762236484679013372511975275588489195229872769639051787888430147205369282961410987804866963515864716708870604057654194455851446185749269002441379263560861618384633618292998995476826952609063027991395488361124855936531030420486475467936415246836884349032017171201101628700673638500425791513165101764351654939687719056254921225337319591248259920229943353897838049300655636086066158657550016000428358713253373085182399439192068739449058495962263278475910496537606960447770665690824448405529204920051316755199808382576657318527484481126834276824042963720034204936636534670925924456546751135700927980999751010095553764815814410477705747730257069825624865253825006917273707662370257682947253936073224207443243948783668315440784129671313570565027285022003004570896982322315755070684620212351674979703169536335105436911770741408284843682887674057293619865869070904458254604790680676600749952898849708836713397382442458759374968288778901704230259617468735396528978181702911778791550722547083575020760180528040591960030489295443651875422170135718928494609682423961610534278962678852222341262949521166563659971009063193522870380935793627111681236779017686559972302420903055048612590865151376758926223244999496551145960092300553551291555231248389355409344244842204641628786526858935863569716533057105894591250348897011250023268348489880249914749745234123753604128728332122495069729599735586819212642635442962963227653006772607409591277106676971504551947041507678161282819732510608011955072094737485027651012044356847539710745933207276320435782834276035043313511868297849937916572781926349531140521195965796420223256973001652355986337147852872278787462067189198891068608779095858884734723954964186991102331332751628705309210816610849558422464083689374079578569072505270096423119146942153009562049939919021707165320720611217356030105250313800653500036359447015423621928758845387552565748458018165718202975086333623525203675012157859401880198835405927793632577174675672686052491937149558037919008360451796850457045843599358305022097595015103620797676288260024015029981454697979389543650342274820505981792460592698708670271858921752762686928538253856638186404508036644501280790641334194329349406980586252905996079677699523086799784637344603423273180383894263256028000345527081838033406973278159880247821044053331309000459678938103532675460083660874906269996172931737721255442230671024198205933559757499066041976032394866515337346634362566588940962870311704428070251091792850286803643782429538810976072103984281984866093741137481407124629569947002949265267723689417273465321999003603232763080652906953686279823866302882027187439962034210526144196963726057927792170169050840778460114453351527790748367890240695094873064270252241267064466560322573498148679729995602982645068801090626061105228692146283078065482030920536521379311871571910392288234132606146296823984763315283834846958301228141191610772079390094261608820055040671092895977343569266243363024270387705405404008527707176358305701153070248712333855623042131106418658344193123738405847075118707352618562946112196981805118232562773077331725608990309918565832720276275918323241098524630166874759850796948512584698497261516372520751360811861058677743912984054383190440597057191077078966578389827194226094531130412346688953264085968310850330899281085326514504116430407550054807521771491898547334774586774720997088257191352511050036292949865720318425027527822542021308118633321782419697462586102719321140952541736359642435788128413207551455510765820969231484997140681860131520783686582244087349821337036889524041955245852366207323773739551807852503183433394373730582647591835062438800217538910572004909949412816819275882573332330336654613713494418588057282740196573099902823396243761090937845121965632880185975819151399817505555218049649094860006173288654764624551675037958776813544905615978927575134473456544647619822245639381625384229062507159589450505919800676010628815397229739000094864825602624550835135559558309448448752625737050497675892658972766790395541133501575586634875619071644902050204227217824136256969784211161295358165383590969049823032789102506709871515138102210643569991925601924359117959086002688681494154398374430752577778460522645638661138375211330477698455757586907802809022800805819352693460110563009176576729343000124575634304861222922633026932731788976057589225758825437500288057869148307524688072576576356770644326184727666212815739344182013156518831353838206355508390158355692229086346635744208094668955162545949009027428593559102442336772572055969400797722804281956740933355087054211175597737048719110308569411041453892122801769755692902781534233334915385623937454178819664982502490991824733474672049437502462889432717897371374742841699123291686489410721680697390102401014211510718060941176620704508967168329312730969432948403028119594273115067920772313294429680011413309787502225044921045317412556323700849300973049291494679781371884099001340391817064069855061507866312993507380135602482589290455669342940458507682750882199735006814657049515166501956295842403907297890049962827287725373016260126445699131981055226765487769457568130284660539892541197331480150880676069568144671344695771104356292317205358675295443356379008811059759772225698604541471588825531856897005255229614742217880283388256800555406877687945526596271057642058782232764664900738216482015517309551840053473795165663722796815806692689514079193855599777474137931319377840621473226448417998214702443147268241658266380620490855966210928811967325407418810921126472248058095353351509357517203809725869014319100800182310797379123525004998559705597705593933667619755578796347914313336947019292035789600996601317627984807844835842855396501604816034357862470288974051408750140432780962566667202704514197185737049762087023891773945885968403436381590384430245686181080988591110923896072109261859384437826427471744998534359939522235071449799264779123116857436929504076837525838734250010424278922046332346499347178358351563063726840897432088451283484146882138727036800434629684866947321040242987869308601565756857227632701716699200727070237982188742027622163809635432213725575039496920767363149843378140876693368352640539229975643578307710972176856260015118400131168918723121233785844704008872117686965147227423433035022606616828310029306516601565304229173488601757179912678818922573665692358140284895671410806385659653752393307382211105925224478134503654067109729613986705430229467221975297006228627949955360141707088627250245451643670726529991585000391486659262745265741541228673359059802676798993317941180025440184923260112716537268321133807966532634237415143279765424626397219303831661197458147246458423861115258583757129903422159491651990784682543562708387840617005571382006525948294760962379359281964641194896647634027425263110745568418258364268151162264952746080459820166764515018632131611464221677670397995466761039896265152339180553706794681980819767504035504616305409470201357236090425097335434612268877254835764681714958221941891311792836223025295698423067272083607117209016558358001712355618036783559900136113008711890664522658406868099661578047851973332889122719470788232915658824838977168890139797935865724281734023377839150046761239504760249057520750627413434770120438526277650244750939964022648685683804044950959662853519751789190824140825761339464755444863790638337030639327863189555873769566132810530161485728343091312710229719816946932596229627755917674057545915437530266998558427993058906710557259014107489510324115557619537688523039101283051089430247750968272339499661148463364696078922735845726763902018459565714966719506775775349405355988276830974797952640375100308553568996194644226102604179843875999349610908237511819498926947167967406293167443113341108416988933611006549943229170596616281924914223890348086481733266872284736696089631742810914150562288140246942521297665293383133526522326560905752875394130261453334680008940391245171017877549824731130955367214387668620457696723833555164794657024204220294099105537441653752513825573433419191706272519250607568395957295405832858993781619424904243218923742930847251914881940700011439920953579756496252594147071282081124793247535081604679387692915360050122556895592441407455117741238470029575907750401447521109931800592578633405573461679427114911072191949724311199521893566382027739702569609035907588961856076432948183461919704094229782685564074830754478029688607377931629883140592333430904105461314625713216284700088564866330825283712849102056495145973254980891222931700715705547741125970323374121993843741259111516257657311460699291728940266448974233478139737334229495847980490997819380493141644293594115901495223652925592026377038845789165878141301959696787427461840430480687053002071756494857574080606355419358459699201759143615072901608104393312118826798845612979543005741717859010208869692640690736280838192798531799553208828801155750196184769383663699996893153169151421870936058571013251169880666037505479188522392006317893694266338347367337839154118915656828805222808173064149955690723440705086288885198676014277764652083291237944117775703039997711012879940916141757977299763592111824055523475539888458956376340384617867927707040477054125719098896233011291192778939551167389756978793004810149911762759234922202439644384104452352459169762982549622746883663093521850701792258592321054088348767417024732420846310305023422842268819868698962734967029966324128579876994329503687936604325296877488371319148881195139515562539322444738945179762732296758334288276046923554984695411615031588997317795912128032575165024019951780623009008741426758025409728049301847976105112995630212805730529286237854881073278885510227686414218090747873202922933312227048180590437964723949243030443817993692067594250137772688718207764161678746007657365227559618722646597348216412692321190185160113313383825000847270998626560141431146505685577541674730476129246067529616487843493070736551019948069357952636222158219225182349443165167494971385573009950090092582641219610839467537460872614363667921280561234617510661004948418547193733452298448911281823308159726435940244774746273869824134700865068569856124686560553146970848818873863723494852278192351478261639930553618614319442133491652071923160132617203331191368100852400242015215587648480733424378665737164646295955902428233907028754201980672782040505356092744633066886901115976587093517180302354946983506552270574045012764574786774077507240127141669252656769292528300208779841298934571882467408577160759847797296402900387419629977693763733708942540157883932481902312696530393166547451732927806640275189407201709854630406165488275059674391295282562702224931585736187654226295030164224727739431510755360959898893156654392693111523680218584034319303001169775805432865338662055284288590705742103272522628205082930507523264229286554877297248790606775497744314849342338182681624034671374341797745662409407287390676566932756373743298874103282354058526708200440079449996120790600285038633658895180897193729582820675833296095946091475224726912360984429070733897901253092132904846038073173979266201214160736432508911435052146446912446167289242527701066506341217222901239644613032699528854918962872181154519923564559323674239012892397460415034523642920371268297391421496317271719959323977608182489892291510545325170728204216308018095375627513129004001634652128106559004679389484004407825129345242564111079512587369247361669430443585385054466546360413100493600575419504874580701309333747229101219152793748706963951068456816791888441533807179869991571500543208113053883641734547374040961907850514916116548554325810264955910443183341757135504509246227361402503004502109015478490423397925028557097915306418915972605057569153061785530372573535064080060351880481497366898907657728517551516970320931506510995958861632891618323902415446024737025709279984560005351339283826818716943710170082566005223185211111422117928957590866378967962035091675113896384627872157874882912516299263488278881834381474620992105521858193878080522298175387949062761489161305598705884899633729811430399277927519909868724294012962366045300086877743320323899415159513155173516770150203504503243746700184359525698218064872239757948632744304351696362167084105594042847909152084976406554895581140102279480582532052956098392883042692175226748334883870671501877114180715424013490089640211795811811191829493632345992172963841589071297474861297046570191440642862737200325727514729857636186445090472597532521118500062343271794058892235968023178470530075546899255733494498592831221825827468929726115977535160221554089910208506743025966651016734420370478182447203710548686933028773852738611395802444661331318459054843466767496648121566042078253004781247098258173356789079736357489321312976595285778323732791870802430364102388802569637080930005152841897093188814966472191061635561254913520584308841992715477748068052727684424678092816795567550338046108011967708223510625532650230806846579542110325999623420349125954867770782716877408243369985338114429475235967022106693262100668107075893330272485891648346968428052699962648374865136801875248062204751141380259403568240331804830016115443874979511228891521681930821559283643803768850165265740662238529990996421901636400140228577508486329519265334402293306786564351329995085022790910954998794015936295687957702493726226422214699495584308638757965799271787887607547688675903148543909158362705444294973319526034956987066467115254851802735152740478311026682694987350157357718855899185369143774419846373136909412511546877523238719958968115459068518943185600119965346673091696201668335269956534524724330663570832406529409504045209414768113821150964367098930302834094405294676566641652384847024102784741076109613904069029395007868622478113287891347492601713584097107102681011142014403217092685448925782881650830751296262137397210408991200504723954243220859625885522672890207969476101896296340208942238503252044391705064606622133985676192075323648330764762686265910438197967851322477176340559107340886736845048510942141015034162121582062216184372448905153257915020440473328492108846014092800371605832488659519882942449820502628947721351640166845847546414107708854539566517093727976116065625811522176360580057728198356132688719123176050736856627140268155014892151521764400551460463835585885969147981071670764543293644499883073585980929011441282323927844200764192804062742331301023538981398989140469259217949895725321343707080412939793938923822552311442083547683035802305638913104790031091136476968853338539096296672140860855062043854468121278163411762475218011592500922539417756582598432131203252380357225158047194877216262275229961473844491443519081663445518973797343802214372225768339249546093227765172840309202850999793577488322199765184686448102153866938226475390397666934493094549469691480372705870704359453811544340666572118942811700759869436477763970768128473307239410113019745076904001077857784212764820434049945245257401961342645700577862577672755025302399239298820716271035561463004233183317982358176583328013305996941843845536968048829976999860224467967743233328605430068740011899382941059366161951841161770764319107177103813701482401830405570913386260885093965079079402886631039663815638321805763195008393239073550962342741508588104892190594314872893998123494451685613581391014854970069446503714758370930421203351972451614114931934370134989013494491462310404021558355880639065265972744883198116021373135247797136473761247601029843706877350114175071150867791069144486271688511592321841738225699289578883402916406710824431373662095293613624435100308961496264234290330540208504569207633260853210532393934307393348730121369836111396739622984753727007741403419368172498476457263237333045557783099824696605668048291688834298594885574621887633692138642274855296780773404667279472684303921288917385057277813601688612223952473691732513646705011340332070585891109508686493834453328303573206071588420924383759051765221747164419556700550088282699087072444948463666341219200934227819123554204226685641655405351092677875146765817055076016777669544487560825322706500987090200827457383631540015897177971869986333214241160631806971886035638306534653967973584612567576114177300074248061613454064947347747704019576092451451508088591986869586000668455716044221556351255812243409923008158566988483957670514973864486744445595125062769340629375739469706341781423164620230214099627581924309039108957847601923488186496648332618476835251133694267255233033633043042113326432642963406703051989914189623783079042845403965724578447708556879858990010556432932847252913960841879013300743292030857673857078537649321966345608417982737127296663591640397164054744610576450917052296839049671325471417874781628905035667914914424090300170221072642975223635602267711711793883925305013018884438512048459470746550664849144835216581607037130180390862077154264872230135054927008168522830373402096922650803570187875281266933405379280267273233141874258059444157336680417557417186928463247316684919280280176319184567456996819881090704122249277231251717551374033950775554773131800003047533128427829188223819155861011803411948691700919907395572865887534235435651973772218244831981018436439196856078451581859055312074278416889726081250320939309889944186556549851835653324807509257444562766330457336856270869596455033345792447749955649650777263135669565464251784210173271411696277586949220005296554664606315813141346258625707453169560757726544062983351499683233425653169786606937272360317814832950977980887260448371416841558500102247186630735991792951794582787495548202010489742062697626741894506460678464976922996848398839671051014540177571009659875645074595244617670565018557177213714424895542497190590496394579334656607066730232745869368796360441322462363220997134017125726149412652342426353923611672344704993613720857382537914419499429248822477748163559524511583166285376279928259141344704114683601085830704464195911565799552058658898594667989553543757238150898975926336435882822004340768699218756618270400538090649542535266876293587280119085173116265151811028387385205520334776318725937391365250291375021969287817587747689635312277454783776091007976082995329508073312675850806339698546648543298278926608374114960874550125818140859076752882213207956421736338934952355189633968182811215919976287067116136049696145651962407030005249171246539026266752316489934489208432323092488683983670022934233641206095619061349998760275035099429328245725756777640119479117433852740226309501678503102877277890753621021835309402773915886036764892450263743211099431423722769497073122541153777753033293142461757194473156426448618732871025459972903427817305473828606769469523094570578205726084776121034046099504903113148009311578218232972007762172402722391490368720087908479068648259391988812206336066165339644958627453754529385512426323805409035917439811398218271288539800896506196234165932755233646505738627518851274524445192594134642747928550728247277223899585266946066186446417736112313105256667347883322103248215568381322669781870100044326739620819729889974342557978855555172731258477149353630913748178373815816828026348182722963453082190061018599728248416511504645308021258997079583041894062179216430031516133901714394495231459972041576172097780970772528693285588143830867571635268584510158368179118513733140468864801565974010462054205207569802195245537302416267511526926625377368673190661223672890997203655363849891870146243632345060403439214750709695598297834374295169087811473716450689348141246723519285404639232097273098265267982238338437054086430519187625925963410961736603034569027185311574636770623626421207502915415531927460762669489456281642480212049372099581836595962065570964143263000438298355177594230391873858122125918538080364680244240144404466586715494802419339485800900150664166583990307391611925580665404117158452524757629631273663179882578978363166587376167810214101472570232035856275548074431536177666180983763733421643781538432257883987414840510835019775975882782582053686725428695950471927172919772029213063382727041504318242034400179408139504156911955437761400064261197617459190307483254156872919849985062703980496750038932616142676802046480225404824643529495725456270250932350781112624753843336040687789587952799976232951916664498979098415151855908319844830784786941704945117842298469568515458443448270737270334199887347520748813575405846992006704913278688063980642415581562276423307626706461838592972292654348931948403075309138163448245437410468536390670708855804101213810605627417926589787630289092853715967128325435026162297265950680784399888512692983144820343833427586364556778935197111143905353520599761890247849997659348342132375795289766629255802709644674290235124919774778580543847777876343322653389282678328047062108195004103737724373503101306199974277662822839552892555486043233779937470883681045655313292853969235741641410570097717938698596150430652475916215019716545295645152021340281202715541344015657620572803194802453214661426986535876347097782912632618065588048715045777198413868556385411176370753702631708633558767068274882569252927868244981652111076795065363027709581953661519535516266408817593990372194111651387662108360147464248381840681272328336781937156032599953724135196420857211555334434394680425376756514872024423263552988033719916759163440560046260214561779453879324605659960608499316895021233294386853684656120914190877575728921459701722128124883192264183052513060979511657424984669463647398848280893442408097081487278709015145013423747811996255133379777566761539018330875375361965733951868211862879070808995860124245021733821509697413889996244700727934113212070514751397504863180185094946669323496610529397547653796630258020383485525123994486311713684744629538114321302799577952966254814698297250950470221970176144693079450991156172858747832861741245331246934393995172024235893756265657895794412976271223114342099100592675590489764604192020637411302124959334927426142766788799419327335056206493996016928351604451375355512182875705565926978679979570795648851565765239753001418072441448071937715055166754617286947574037084812028648553581889090506269934920887717945811176209242365009060632431202989243169847463114070825973179336521053844057069707066027039332584598227626053004620712168718828524293679747421560664461669410757436961202374994226146170262461965126994023054027508799511830135039280877571952193908846717336994585137842971946917431647337686671308438770275345631245827266649174753240410800895059639858165841458849645849446701910397968186958428922913361182574115973277556646373291669446528914562225542320298514719731481963699085962283877582719225380526954659580537429689627156579727001034455015525116802453968866074152405772809784312832781836581891863954419583045497750858775300137193412646367611670897767918954874451723131455803911095452499592927782606247654890475948592231614302521349097050871494639776277265342734841795617420224977119594193912117708099085389475841127189533189597078892640008830102615249347926407032373439243189222915886790538095467700840272527261299219875650539356028318492550800012581459199946441399089407566331800361088568070779492991423524493991320342046403992008782858091838830227312676594870734647581389991381947533880610989621354308100824343110719730350129388942682783275138784692588561694120956916723306199535306287694587702435224238024910549459588787809403137551523607258570201092312916540888643959264018806670909851830432802322523953696630037729447637456800816896538458243296663383990500602956111426734930873374679481211322777653697436681380527228637520537227613785230183546805977831745445860743259482445877674409152101476192186292115030364395812495878104310559603398707267252686915433469118610913463654291315076393617540956994193552581967944729014398879007306610055105939075417430959129788558399091611693584528151011786080238856471349618842379119482161127082426181255049220669828984965430609422692936164539967562037636295721446446443111052254057339454084855118741908458119974362375965640025999905617343994849276511921980546035437778570675797644320680457941181618656775227352331049404902803828983834328488703160268417277823838730165908316976815821274485799040969037125783008407417079154315888456367613278333664864783374349202854126727798284164055008515809070669276671458948207156344394834124244904081493549655112805075273695671387342990361794127404465782470708713013022294441697600011678069390549807985336199720225718942554030388253423702020619013623045889588066177407149490574682730306594103591090610893864038679674908787520357307532260406865219289952143215179309582230728623345562608158806921887108315427283016597572268697059817250060853619696986249683087488353122950977713449944583097705169449713592418036275331629683962989628063959417571842033081184164547583960074362268328184742935776687159251063291839192556748754702809682037711191775961138749517780872458636789810193427410443183489676965904506022387794703071513083392472985002251052874996073389185596372572852223846487617523125160613129029189667714800783669931386313471444662480207429652463033079873917352073624168493581176934925092590405934743059465794060898863307790189946911305672441665050460508665050449981700467698937687213694519480267015902378763134534380516872818029028730438672894126542956435677428068469150424491643007355624083269769817415404971383316071568150429029531015315947189646492342940960159143331167109146826813888373540903658791827297534747231546521278229413601706793298009935900968679188307242461576515640714571776104658758406114625277067850874964237013269828015537074811978267373242009297490737378367256016089514646940138721341083625582513497663269428488469803910641973544155171690726438670466810633356001667152743306682443847223618845189168952907951219393741164732730015205184325455544993741757128018257417931840952770269866015042745208923820914051780515646064702972816761026081371366843479125460214921702380832313753989142019019630560829219305323713272300196453855513604431350361490261725037085352696376746588050557927836280890032388750338948433279242302497938085440807060341542830144843994546662530085039629795125398625711040666994822870333208355910298069100400629561476543898472831960866218974197581450913625557428695033382744941532911788452552112771692215867145822472363758510103509897302008739267280872359342262695480690740551740194010645058405588195360897181437923986691837445906940498433829350083475249681481280485384526726459265908230882319637611537590131240154752427309809510510662842203661389567361099487937385710044716623804010139607004756703897961315477735771401695751313731082848631797225339759415319260660647090180282148496587162104910170095065105537582815050088017295795938137523537659836212458339842277725929303581678389079819796635747933460688280540044498529537322276180577439038107569341226216983671850914171601275892127820638880628355010830604149815752261652590227892846743461298441451788186409037388995383987621742969764550746909471938703487416503777996542480071733474154449073041941700600637558348188608742639927158623489550340462604930947667330087334986676792102751878598421593701208258380930844578298828329287171892375623182311541293262957429989099753010567262312620209401152705106360228283983505987022587069987102390029655734153909264471530171567986283451707561481892608892030047104869470003173878243449178617079206568586830200428665039368370413907264374393369735603806643168430363301160187725829481422729107815184965185737144325634202918021713513015653277009700133800369800368942859648514104473915481963201286378068787955763834914795573430775421280157991005182092040027819798001895367000602396033345304087291207240714949798567711447045192633885257155829194529760082828231306317220088026759034322273338265890060379194143502252217779802848044559859550498157492868811969632772664213252004426230854018710807695077884923650306060616493376383950000459568464212024096822154958588243023300614641728464984209931692172874913417963520445336645487715132238828650391921657685061235423850498959246300480325225031786130067621069529828936606660360939128500278351694891721416141388439483829619702438925938317778323080865306168218862279730963991177242866472295670278128085997636721677025300190335605415853676648472493622830923730764657078308717117984504289754443131830280887378500564371212005170266704301229742904638972070539393550907429972655562776122622151522131267752628065931264223777445280432938046290286621670286558537494814313961645811629350092639004230685888265379590543282544443170595402688245230159940160467121667391341873640193240309697557228289900302455466047237138425144248414788151391679238901834653772363382314083036353628629131678477056608701700191779262028904930582358012388998910212409034485304666011228545127095487551825527285263527415443032089825610031650391258211376590616761504433311412462750928483012015633223795141910880104845108253770675148358293892079518063902427509419875412729872970585655722133797303009674342050883907566672061664637581489937598680734324016543924022965765487667015277969567778461980238681338030847380244379042626634318470330572265916298271019633959179322639181193337201332287223519380606749192767552572393294151135161898451698345680548976976044098721993383894760148987962658945512807619270838153832541328758128747538145973046414895953239852745404328036979767062514018753489090762084967811429790600972039252850956802227411357306573703585645706589880699582743038051886290882729779685028501595612054135089768765149657353980404800716113715773476677738235127354606432338827206139621965595081792490570505669465137312283137962304427407044713835751746711944037959519190539443713063405569360571906520291863028392211757330020998774625746840775310061005279718494523150383131905454779365789816850289337768072938407623139517855229679017372886996625401308831648282505309625505402957808164127437909016659639140553562592570270116800018037393921550875330333243999383393391225642847938814437208771902866499523536346479307532744281713667403168128561786171790473398176502999782020658313937167737108849274965766478627526156892897731912175136743807448472881271348446911380669610387623553025868784027236633305384596064921327186874347101510763162214011701401902503159994533942398000598931894400824965147014413779032934346046143732793191954364625762970263888889844935160672291537495282006090893763515932162011977491180212130017270023416430048174418357821312784479549247837585543870142357495299519179678274735744097242479674043775328253775032114781687996875838038480788249815791368737942747455776514129482761149960600070390951001073892375104032853478044581279124229024924274711015311044902436652479592454312276504880945560469806352674124533650343489508759038994420189011248420917692989325520923574180973291402361702886585579414880971698109853103079487523858627430749029593004053086195880844246696997450836349456632821042082253989355880091739479038576792445015121110251447660718110503475166605005701516422639942660647337958818856167619992743018824065449273483503283654962367148240629869928723031620815248271725686114211236890012219874457121324482996678033695887117244831640141949499563877416393398765085738189746910187313455133485792432887828279087832236444827136264059894660936527044586841304218432736441733073979953844167989090688508060470055979836668388602255975368796821264694834900572849432701725327341255761624742069249599839317289586851142970991061207137158668343492921671755040344433613563341824816498768684590334103919133797924803661530909557950373110132912598543123602691187708237818788891330496516845137685068922207242172574227863826109181057615109624057901391887973606746558952338123094768491174536729325760793395701379241206017034426612331128368061834638247529126146151855762887673402755968077351449088846948987228559924145038150475822169465893968202061150112269975695458750177788078411330270076772660084615771277147425309675560417123880465963263479505707326093234634140103680025571715034206707963236752115411475250062505120477643644622331426012702071664136177335209675578975220958965417365135659182532459499592540697139985755913150181259988280771716734366119094742610645877417857483855500610595450301691380552780702055446259288858262995506486264402036404879082859528247993860103034657710182387401947854431490719797217257064654580798955248114526271990411033698186645717165021361832202101076455070076703254967229954112439084977900074015714429673208841137053656965742079548608507819515652409913775899131337620098474664188776091867573445610453861905938563983009754430224862069032990133973354253061274994821828063182068621418233814894444508758767530293145710073605203749111432316358303419889009307349338641325059863034620237086135889835883708894622204909843732126845297865418610964628299903735051469380692256280885765307122154784044833562750415258662033132505080701969790554981825962990572306344000739620092975376193825614000869245662355731356153634832486967799706784296167931615512988105715153859583957747018123612603039809677698434766726053256507132971418045515369707670102142847615601700086576741759031492343149601612273190149750435504296048035499705630324018834937149295316038297232649970033079956720564368763454957715960836578000794830851201720410375902400279940365728992461635912441037666393769607974274730262290458814317606709110239328730838926784385225773408202577798594586960207054557685924395443848204050959153947594825718079293174051735753294183579303128726961766234531034220614526832045410401529608901249385833612867523507338570578044203918249337334561975313997994217392027290577392292853139043608502375947996729863259797093789231946991441601185293088621369998657434379135697291550304691775904195842523828408333945099394935075502651702694046622114013897558417174218016024382221933149642484316827316701770061099943721000439172906895864868990647996923641455116691501107406905165464951499230205193260000954820255566692854654887271235201199246775229885527703100138614835269102548133940012760191691055697124380621032558485254633729379662733018864126705907206605528724342569599365975895793050011396810331060121201899921401946216623659417195439422924196027827992071087754194301718107922192143697574765073233210071016884730255477700593945643185461176385395761473098845510162090157293557465634366207021725150900775522197510555726876165485907112569849386151455866477791446503346255699242907112510442146385473543558519224507286127016976496849274374722867644522373561942197753893990035598967939972230482112806605286645353271731561651759173963903435651567792868863617574458717569754003361489804111694784457911103024541718044049516349849563765519563701626994045622827545757472122134373668531894799742536083820710979106418287187729648715432439318691676108579201348561656357370283882714704679325678618593940205613359553672779020114493245476348970605530821060917523786768231406612656638008180603092849873370094247454336678736069245516791937425958099843164020006729706293588605753077075729571223552112637697580916417919213260032273747862706772926442320209601895741004860644121644153832764750818539549811865614626346941872723670492736742449566684642177236711398728129646543877405229979035478663815592728015345919543360919812314356094623990969057386692461608458892537428053069689497762800305659632656205455903495446781209236853365448675586701870547209804480704055604485668027460014280328291432345463073300332322491645869394575808935606388397771867959668555980366064867787750039329506423192639970791726006728161646871088351380695571175926636021126888109567070264950420847246333160756918490492988932362717467096476335578436435848682551827445666980981754580259395203824024335476369057541428177362107355719666136429977311488707155955887055918397093298392438239852219236461996496889707105275723135470565469401462706834277511033526795382159552853247542986754744916411380077940045762996252256847672724464105781710936536880519022696697195654189162152982470311849331858311407688279573190123239669927107401582586099232333917130951905133411047959449219644704083105067037740101401947648351265088250352022293167415122181185018962270691413078156907983799349892890891459019004120006733790619094370550018458897648754355193561571434848855413007054286248777488821403707185280335813174552514828191932978437859819634846759339275957543789984189654113405781161068760407900250254899199605654518421279453130931180356775496334493023449826460286414995255516825751457321398369009106307688628956320885878830531507490531508060065868657202674013552204538158834334158030550096974170262331080074815342547842918139025965897789937449837640725628725191352375234597427656925757643079929259597567814425643593479625264049208534078246281652453864468965306220214169650947304786370287223383980812200861102014833456158627171660248823298830526487829339061958618570975905637129980930625862894799648871477768553592769054210532136424828412176149874537849717642309838373877427289157310522123270548831693241220325369953769895269894991187086127852937595964872671797310690230228632845441040075635330471375685741432608280875217116421775266312639955275059904636101183813763565078479637322433677886365721851772391320230324577023680532704862473333540995653251301328038999491432050406923874547638457280525420876426919615756806947220159500827891717244561496318510469140673186513592146435439683910769527326717994566541585139330123042763267969772777188346542708602961041968839688148930953236398595582918414063779793377840730569261162926289618748963366861121692758899358477979728734635912569074994034524060751521462122180676189713416456429676379473177871179400636778466729426128817465402764678896923769975069936117242241574056656273235897100802206331641142049639066406393601080063557170378161447315052641764639849692692703395220083978568379535275663064831364756172604538084421470549318238643069342231069868806305254968175227072310095590628574407489057943534534291819201717447204649612154153755050718655302602114422149140613602907062366505097707685541284643972421128999735418301812534570150120467408382230375183439361189424992000875418086171936148692719661046686333361190412485351540332700900041464406774280012237510228180964699415430787259734891699285071175841861118325347970833313405999792305864862577057643534037966136307319290202830266956163388597148884181237313439901694409489833620868367669815614427092193309851731655313121090751981288990113718643501375797642463924897775935204865501247941269359723795259712027304803130281973512293785425939559360730441235850321328016641987279291746444266404741896821759773783529418751130116875929304344405709955832247338678947771090670104236370550786040443187676532208497321789156849353051542645275883800792386714579418287540908063903824086987432628538469685145951440103991673874754224420260439918689930151236043693589914379818571466150288893017499874116380632208770901068470749509066015781439506143303932040302886940630639889168458022298229075673176960415561278967445167103023347677782064573404268050605783968008573789601713719225281293669879848893502479970374792141456598142716778606655279626589826047294481919265346036325121251684579750429566052687442761762948074457520734598561025288297816564251108549604945809876451308861013216876622375840772451318262845370627087923300477564474836228226005936499621120211184918315234431865936515175050093109651213750572718454137540586430815834686869032539659578200218012194361564181376375941206675344029454295320116644191355021859578887622704948406947622997399809850099519864889619892944017232103499757205532330304275118218466053555313109098697500248754335725318944405929059448997429671501783584077095233127105765147076977188855015486135038731096101693110713169275506741542341479440381033490187970752049201838035838697764545694408498626589435008736605183748213673476478920068562549718353855161315557888080473744852063434166315308405740757686717440857798785624707136360224005624114228121196868227575915118288530654720201933412907644532350447273504409319471093373537770843888171809288886102283459198177064053150715572922657133156976509846976050305808165858796273455780686347076541090232871564697642766179205984512569826862550833415342352533245755650301716535919523999120820520790642450622053255964082904193980725026188531111043285649725183918869900302652406143806168645573999900179732335566547449573848284337422449983212415849087639751305156447728068511381041978705297363630462356663308457529610264714920761876433180884745080583679343233072715514344014433926088711627807244512576235768868226899005495842465825388303633038288679621463429482849876385566965199450696182902649869170684197878960445808571534422421065429616623838299852182939196157317757622051262901125517818563335738226488124361573452041068725708807371459031760992489050324278437179050844334146214603385706169944278662101663583066760297746624838676918200896646636160385176406689953243135613875318483490489131814666383413447010544091957050643891170857038614313159356937935473653776756662425513293623421324244546486200706611546537837872163463280883388684499723960578584412510565208887814478503511393064967287193868945227565045291090932696048150409057801170263535615108002267895427948061010531827033926127157837660053831732085967485788352750467337086728844893326930900393279319063085390430239615386766268380286449459901870933191556973593793968416625820445545378033285304613167226543066196073024770450567929369887537743617346849298663872537045082873091090981158062341493829412296869298445878934858914524041248582802871616108568429066338419158568020586724825913294816397720740477896563372204807961092067702626303290998856759341516410485296164031682455591038715535346596805087615797939208883393082293900345518506105209648471217393107105893239850510635933323666121043037318790190942050825099558531127374526514855136615259431620393396386264519045199080190702700778198625426853827434865483150889858981632545763526821944823173069021268066231380041369315195924018672166777486983956387718148161970350436947555294821839861360579544394876548031202372046445521939502294433190459811189107948975953970697341651989152144436303855067111968611663541794509918473211718008808020963844480772600454552572317287558764437988969443064303875857600659574355057807649855727829857273904950477713437010857093075302193014169529038956072442698322896342172651111528899031932102942365608528177640908979395245234048684771663528581168543158536633788021606497061469900068357054210086919692507314557481588382760984560951184755337438899311699044158093186559690085322274472650453579094741684749588804471394086671553814843929021584924548548505658190052763725004769916928277168369764026307201747187245144302954162369142135894870330789515640940106928385899363958812313864193366838156244243407860855477596497024364952710911365520853885016420572727127620051499836763107041418683452301182736813842897761218070462483093652756915091576685379708576238300615365898139863747639327934401866056621364812362085543926908630716975767853727807321171566287508602754043254029623231588167218950490265101354865098332083241002502104838038958989153744256031341316444633383560028064241121973180780334989539211023779774386690693186649577618746317094274103317900974361371887379922964213015567055697809940695790592259275021855246773654814780659907364956822549186875075600548300305209452496554031653877899955234467030818913522434950278912337391340777440155565627012806823829905059759281874997144226152088094750364424079204080906486985117281839469202274236663846944870982000565351533195208448302920828022177255154722505798786681119392119562252639831397701682857491284278604912198580368162122550030270912528415702211142348231366422025696367647679404403912756159140242257846935109771113695611585948658019353854351450957386618765703287137918556023487228667066368012471029953271209233607464815720712294280161414407657287599570350025155931764035027346169559317877412592141814180181224936474790402229574141526663726926622845285812140481672866505745428385886982996715281532080672378907927304066261791486093529458644050203841978813811502804591540908213678077208746943348673836212171512782163383120088234743422632923918948924642949688990289230237616819159775976636480215883248887391132419539316797926733517637769726237992540806233794605838471303482197213534901933367647058968976004438026251371665788476326799624097856778543832742413136192397247059127835022868758029426164398502198086078094291854319491102126874073332499395621320407739148289730908388856276546855443722926002225939048764676697251844694574760559542997129491236577950617628777500475413306026771810769941430437382215864781575634984832936368937552076412043396852567487651149985074425920331363505255945316641995436730854051130042003791685840179626486343469811832189282760165176927226456172986987029393642035954774229190261938913100355043420869007264703337668971415294157110476937358557177399721533311335802334370179386409093071174248133767446533389960179413098817385170904172284034485544154933860261939187580157962523660485433069348101216886669426058411761892123523629141618001124198539537291505449167712892490213461441981820119889560435857357139913845654194219828949225360377838295454709234314730396005415763593436647148523160928800542900645378201307080384874189781672026532608135982210765172794481454435300890393250765686487759839398427105782416404728433372093522819205286897540233161302062675672320401423468255190702037269220315238950001269013086556205584218357800223802023948235777837617578681859964849068051765479926945020069642958981510599462487358615286759951099091517720418211385202215574566743267270509702811444049958765662241683312820210417216712181978784210345343247085552104159605267552575394055709444399102689017414914089015068618600032179062624198627664068388843764151948717525622968892639194879705047835617609354492556838792856001281625143611552639479347465533301227824374271022325196842304170767490041085364581991749058793601099713107861938341031904640410802766343801833095450833988052939341682593586505447962425586746329978058265052328259948597180937967697654901879754821132092533399883999345690477571738053375485073609598871158120055027694064733377121315373250344542661545214980671435727539676822032880124707534444204469866060392536982886701283858413748258264747653170283246270997802068588372477988692318952530431193316016084616956795165915651203591423032118778648785434054707307097837179467486399563170637920214149038293521348809023377038762723482398811051156346892251081988300386916289599500832492872159307722063637326188123554089582867993786056757598056187868369732917688545446123392586829754740765873403348882285412936636715961918082467298633598310100983287722806993849575759591515377950366283780160869063358743167049090810398118374220337894428448289168232440567597217778267169167203749473813652273922000557695224263354059576946985878210344778173216679941121808219727386507481032247637181165635737809191202474969219876675902370956549802070745260333784392694125029164585033552635016696790677593748201336473411506179336117103127781549175786359984009745649046578998031872842913225481461770397627649304006517666839265209066262278567825189759356897304929913844434527039879421015679864812899622081433106783550378780775476772950707459277608179279727923535947765794031748599851908496545174790901585308550519705843664947520658275977622046720620079712795164375135510010902264991088338007806359085484675427781875346243704314101632648559326282330655541437925474741382652960020277528143410871378278819404212931276979755900301060376849144191732041496968187451853241256993274534102795632979897833159318186992460781839601022166321482642912401643894524607242497435887043271632742190607260765043966469807864831580035436894224852969522196284202355637591618080148222601795990756812856948968457997948236180635267128724403938370819049247161118809276511771322039841226787850237777726804478510085142412395449677381705251457558532052044708820731894534941018254882501890621830870915855644618519532443312729632085175852974517617506588620877980032765372738974076657800343289646154556153075155654117526420606519028765383881989742969471705976805518700140010928459089321176967392125004863584275585517430098239375241324702588968635576152313459781934365846293384893574646747828851745712797667656971846555813773068637259251126254763801538643298933459375819762818804578059237795755060538276587894608619690561270023198224969532765769400733881891585490347484359784777367400971917224714125128162972157093269161831452127972474442374044201873774273480717993737401267341465874667189357858235171797961520370416412241988028882380569724329309489834690838053672607874712404931773183151350007278334912581990610987792793500246000053832222096939998021043305431387768469347672595164042729875667157662337800003429249510011600641167257283208349252209715084253171401761482262017798299973755195804894115180844357841592813080425725556409536125905751742161168113912339666211537639574628953831064761092560427192553764332911646341248211271031268620120338432237606349528185435449966056081177348677230607334431011656816750114485536370857902128890861080600725344311050277145995976860687877522187587679497411078144180760906799598492310203945557764437969748892874826501376023271097529811322905125699767887285843355853628189661354636072118601260515940215300327075205794711525956822166093115735464465706506649171787073470434922323168316941073374545170647194340539507705809408825234632614471044046376617627714077290015177208455263554259875829897437204686629337892619953912982719838172323964002710959312417944292930238405253788169171727713698424628100473769642887666027885299891188303360752256399128989756115156709924096766384634065562371620412955411879412011739338323798220842990407034085361539177693916158482036384286953812038313707997123588444859348287807737872756780909904486464217464827428415349372816436500902928302962256628656177322044661596416750443498237807279520002594924003537829646813882619277501556052014157052205205120150591359840425907884811400459078658738213528443894433860927570203956664195461588106498007515412074610047520719966434943711250193467115498170395757693618436271037568017546522159262487904290141645701565778931762129459309097785410773369813000072524063589847557461544702364493648095047300010664087865083759858886340649279026429448891540540544811798552356078978930971547262212400130422406228045716434022419121693327552419890316877443563067539716319869269312086394314497135528860606457979207121275711579770061567025214818438588007639562011571258647269250912605892662905972833287099527201111513520971128613652362246946468165212724553031637322679998085233000081160904876454849942570887563582846806896257865029384786914116665441187128186942591249147916151374861537502394050111380649056885477053424120525976889763104265887702518702493175995945014151809833188380472002841545343960304920752726198935494056474211169907795529126112211436648870334499249935600284662171418437567905300040868594599833018641628824896041696744387685580996708553115371734538170291523203387395551044587306251450222874129275260279447979190681610531616397112832727541792577866351635706239979855693082245989676595987253139472551479902248257924560842990461427737592955359471258964867481875596846411104501166224390246716159579046571222663468734681000831151545340197422267336215314304797213974529932865708852805092025415047301541357491422821349506083183181340713396635194085530302439720980588608190328145844384659569834543118207110966647424457944108486165737815733288132453731849931317253137506342753446837968202558937330449449187852034458027162609444546236658998941082333544757419174068846252294693436387030521622051971888451963995043115866849340805654805161283137804958493594013449788266502546925086684861092814315428664752277212323875856470357426181218934665437177606491869239740237896852476476185704393897802841406274836428808121060402522595822477654803742843959796074570378729108912638540721288731389314913906431124831282957812417850074295641705315403309061380140067859455752571416390624716170857875075650114035586150283867044000766317106397114737659519204669926554953771062438259305760345647177454953924246310208284482099618169669371357116355827763380243981134302508572832835249798656857392614136748496802170098326473381509224453098378452811387298060579759776299288722237193717243473619852986182881705719285714387623221732978656139889755511313610280948555620103268038371847886328732832164504954675161794581892193206540662552410839178183721949423712032787089178805201823609802605154467616403705361321361215360808076041038283165366775110679567325697038427303678295473210041581415542377753876226542761364943796479345958829804945759608115735983474222907247367570586399222884128030675266011996466776260848012169391989033609923374697526668471378684726491481962168359380710832060768078784570622846643598371129594258283549820840103733650713430846177674850578920386240542808750106543529166464949704836761957971870584511678826317038595490754893364581286533427596080457488462789802936878967665314585251439949697350714655112219216285256855088045405584845319166667575485392090834784590095225128940980130330254411407782046605360506069151168872197273373783008780976634722489066952898403318223361490501477338156209517460393028112044617901555031974030572840533744470585695118989063423185972630780938425000753842492533882746075111998941391248443160550892834828344438683356940345522796313031992813596869897937060903032994152978649830796946380108057886350432802929827972068376611689602501016700833051035053008799174968850836087529368597082219210883330888789953362496571813456930517962063607479947828041036712881259973610201817617305422472038353950578386155838866850771305349569557390663742857778955962585352042988056047573992633675615358961723644999738612354082561064927796910952724842621822258649358791490661537637172940782654136102240006058472163202700212065364778174768854156705350710339855198106334987239918154267617562725396231497489421088125345983242909737709850003591962301300815302572093858353691852572279132595835190396985215962266872856718244094236109559992615443603558220619809436607175963464005132989617851744460041118045081596439746511525740620769888697968458643207292222385975615790253868952638309330137505693493853274563669104207405580290398139255007112663865539083507002226885657887594329169761320754811597389773215057585648422063786477809099970693541143090506961668733241881224145033309337384367996082286249499785519214628507692723491390523305196528634317517253595959636472267693514983414649156233749351311446182309135427459664593329070377729394092538996667670192753526076495201275963970207757727581412173163556898906123057536480660729566357005647935065561548525851949407222984319163886328413433242923962877452350715679508010526966961836605874145486261864115112500225239544354098718409797387833481903041368422656838227282459883534755949985073958137521268800625447474468826485619986061178098030545500491305483637708301304164240125285777429033908381060882466857002621971091779400935423140514485022715444460400271449517605670839478517524628033253424565395778096319907890983098338306197369493496903218886617673826928430864687564164604343415056229609323620926493127563308938579322047677329555330997693770236781749711285491252323678153989113033217285471133446000639560771423506463738611691412245649213461824292889774433943422327074569943647472333695154258554984969638198285692800154818960082652288472118580534766429556931134703651363837025020283530307133626023386112392106762033353938808694277126360993716641371557987933175641295202986433551662560420916165915608346083498239139392950135667718036409165904681761557864352195397757637456917585510502894135221412673360176936128040051790445133696598075797117046760916754606368869456480238755471602991052928768195624991598317350765788222647100783342299737410333225325730037779211942346305170703860811350923204077665551382541078287992316814521289460192331213414672792617831527504706691349010835461917385487304611121711113304703772152346489147936300708659037835009374897365008497316685452662003544414820860855350809527464492428762042797397453866939490027760901017419504626747580564177917646152404279799400578091712164335668574611670558949107514907760273760889033783115008301222059633922456331715768419302535602163376930858040545814301005725123102311506481151607853782033753944103161275630384981540171748372186095590240532467338683076250302141125918698827334332368854993102101101996011810435161555180780023314204508387685786033231870521368753080115917087135321074595235241159448525685202627638890649569445608085306409062544617299400139614134093495035773656917795705489431350879417931199497407769075575820676104327283667543218114162487306793207898623691545428407837418240865164295666078000007556170272228197296157813118304571916403625564998396290776947536686202872653649733329983658632301994577812582848106576778086066191973031166444238175812718613955813971509663188724478953537949987617243108796436120516329291008036649928956371760044111544771442545383815515896859836421092972594714629936922471830782993589847064217055250497332401248074114096012270831825375881791894409520116218416780672398436372614905633839125149669159976490136040641747875719836111071405763501605018306407904985043149854546157153695218665151950215958151487522545928724287803060737341529730906847271943640743585204711455544500879339358419075842581956223378594997374020640386938379333304383358493713078577876178005516102430159894763543742574055431049858507181925198157139690436979843865603513191347081384040301055253130295351943529992246527223900846697260114335328065299505372442735937730834614701404287174395368424544344473525677171594259263735553315808862340307042198235360902288736201193814669740924981557697844130347270834375578862440553809107594494971511504285177276780756480883262095105474795822364513821584520735414692393000490924686513395149106576050718007200468276537769429383042024150044882137024181821915017775992240289945148634276166579954984410160356239800047663100483248150558876611708274980941333315681686909710205493576760775692858462638843820776228541074612851948489818424420274957630012875318908048435543201066241116912438012623509020409735375867438598974266576057757550958743389114861480329504114445420286731381632902646085350323816529933402172262557635503467256382049516698816854316608463596767685386562303203364949879995061560815169157508584508868852679060023900769566953927854986149249155184730891360114446397834321127285033035996865903809738920652454945612829730440305425225640950202078708950512254049634533403146627765205241968021671773441151405359040106430107638354568608572812675256196885897407568702773283227429660006507681021687277411494970898863220525908271894961047157297451935213277701070953954534472436379285919903476400507789666479704279915163773664176823385018998611377930951721468503090401777740038584553801732338448949424059386082265260456361073217818185234721884169920861631181842976281668095578900255718114060325881023971261661770311243883427233058613127519234463297173206394300403736949249438275577131202085981130768313879891412218575918446469185708471256927377094151387517804043069740936232373891851715772355069949930793039791590581759324333996944781753264615466371029844944960317414827654190789314334895665874143726673357148799881263062594825165609007493332460641226355931910089478413505929515985403034733446605895912871629099997923284525193301201561572996896233688279348922445711831597746165308361855132828063909471020486303882003209163554868941100328362133284999658484106094269637561204943365799698796735274919265316652438421087796517999968457306271623445926073263234711912522228303093581921129609051765800021464914806860837289304520617859504001121431078800736218341160418067825457066431238936976074186996384167879843096340968903634722773094697810367017407026484166725004214637111508944749875336553064964255469059530576904617246864310763944772179491406288264142038972266543015761637441937313382709959481493846059698744168725642549661230146029846496278561368070806454881317356414834229273469554115276375972358636394330557567692708052551269959410617574254748533692498489191071255886719828955394516418583774628853425434086530713014844175576479374687999000941959268238258191498765645066722843843777834536870128589665442935101678994880272128575405288425082738705881163943650108721605800183209720885299980721674428604363485408190326051418229387407599295751961191665665429505397080662436553470779317127377710605558774610965457742451055655599512708765122593757424939170890590237217962840077425858554158643995426195815907164383902231322459876680646554112688440987822199174174062163301393885059043215287385027832804134574489231181159613771744800269259113650259160954886786645440774340404427313098712609187593527775915382720692497402856682323198864951048098056634025971233419439488393153261833511266397858116523550308479605934818964963736523391686836175419278735553007781405428524658373055392648336619197784678443481271203479632371371316038552428913305047395656340479629433642290873751646729007569760694554913712567783636468916664288517719474131361692334741265489404985554805703455689505553455038736199398947999581890006690124922056138981864768029252812583584402517223660168768600460938825762475960651941808034853451428705315316971954142597671727936865000357520679606890163519889382475928962454367366317977786984197946570509260498218701903923341350488020592484109637106717123558664954882451548530640348332606598615194889132393585736873354883338057214450795802690631987133171058686946020969379012227905331205607965753251154772428843316905835448558022140603897991552170348340070103923950730318205456060393116826164828164208114815623109374425454313477733934094547131599961891627966201659439986538286384527825461145328576403578929546853040888689171625369028734787165114950111545579162607369928432868381617390755752438732549640211985940967284631489505211064766294843952424797547806926150807081577038041882132458405202200589928745905969878246325419127078380112605371918902077228482248132468332657824133856284934753413091539498031476475953182204001090971762642380855835522735322733664890008638282609426321866383192522847175461973010025300963496490647880513320128892223387204979009232478465144044780747994417615666446550949168641213207512792355762468717287266085633153922734208889997267066242187261375532302311360279081721194631940525197057684684955594970458660645983565824815216122502841756448462294221281253494544728308979621219478556947082577877093974412919675974415433537685076438473692151936474842373344502380998915539245414969502417434062768089255526190373803791764055346537438037052037114035412613240740360147418056203278054606758226662589839891946490493050076562233361908117219441244999837072794952573424822846258480970703364260695430248088146209872591191398544370026852362972089685085825167342620093997496191716488121538681121908363909852066791583165768063530928213122331894598987635092024141219773325109331701049296939363083104587570532416205981657228441043957011990827619044580884174269463441893230910883732456252374551905953248911200981358179351712814809487368578979733419927245900396826598863917709702558916095148838917182612698386515748336644868884936083811872551271106456457221436846310572588886604608211488684888455596320570699420910200102355076659945095692510190427753466122608912514596224886464715575827417039467268873613773316192869960359397412019556235777385076670112064302831242391476596052633329952951290083021237190522098909135602024174500886300512984916817086989573120329854726340451827091557778432899532120770983091098215286394355535076184786650586263454862764105478044786861215311535625349255426482052444610862480125288641419912967471062874776941057976898288638245901196084323023511620983862460560483073132500780438828198241267758126726523325348373014254690726046675448867681014330824236467004419591995888731734379569488020178172562144391626272426267847139473533272844835588220511526346361394785831962484779148226097965204169666590913583938594323968494378645986488494629698894222504572920153273807664581198507178979564342943693238228950719073205981184974273822415612429254282474661865089184105275411085639383609124228803343501032825666793045842813255575756966827647482147543015039784810085509358042326042572417144879040557292748889990608797361031170531382488748569883763199858604846617471091043754748684189087877285870856241426228980947210442423162179359291153792079569517733892319143024437941062891504902837875629657875549816456941684622200134757148289038386761167505345599758506076814326143429177146201966665965512121434901305981411402826632914022102453590507915128290110155405746606305603584459009937790709072133989829648122022260328820614516716662372790552241613335361174868005778991693049088264403700034413112612897898407637697725520574565043665176640531950047142806418513734515954948541223094146613827786414430471800545455336756897809785488179884574091248954443933822722085349861623023253147043877288164593710943821976273966191755647416313939443523203991756156605602582499877510181732154684998774902107901050559392897002117777709113636390772895700209834115926068147495767058019913774898551212596094823127671874462302586446746368828979202960394625788543830138776308939723721659497798935320548255726936061672231121364330159501114407541321018349147846685968859701131524371330086178459947747764935514820221280330646921594963699110305799035089279180225672518426373607952661299815996124725311352396646694160742668433599713797641206478108420760742491595487831706549954496556569850930094302024817938452554621751611663762393616774136544148095018268567405749503713124947654034124422950738761931207507406344634842984638832394819184887572923827239252516805515396701229301290697824468672497924273154252529744529435292690251241269410779724254244877753681874582105643204681176769152003439515568937252076117189658158262179646386205378998118641015951087184878174242448067413849724117205335500511110836578500006140996562781479041982671264210432710096900255108867960464850468011756372156889526272169258691402974870809790455720802545006245428742448502213029953081720246632044048074030131068113622701729301265503056346726438871113994999140057121736932973069286899776787898966761004067901806670234510123313237258341873915291021474016926944558046972212100024675613443583665543363014077732962921096936462373692172493106041064965814806083166805270489581010754964355162683472678573644897604893135490803588390344667228985911869816226063044399802329249025430478880335513487981220757852559759998828676002311178845620939799508520183237139558322328121726566437578897973867309910983535733675204305320370754085324034359571507762687991281141967252452064565051085778903486573684227407213845657847193064990153515351718319926323388802474493887665628594618934662125061187195265034548852062503488707147829301657949786987249727109819068366620554073181541209290075070576174374979009333244170158703269246136218766147733719726530521359685306458785536507232371834934117063601928207343490853444185789125355037820315459635615771119307940962573046839534520663225163893881744643171830666853781207913044068943466782806758150476591586670803197956650480686483792257943987498079273287942830147241762412968469053462690903394821820556312196448277433348093220483349641799538439783797941099579438959429987519176164662141709445786358477604205747816852333848963811633705325608331727395062285656806685175429631769219081179488138733898071020385150913420651903420477707272774849332501030807818665170452418360150128898389982241394421894413029544124563015792013619741304989970963270699793877972450603722560163607987709846538911152904996358481326360604147280036975225319783760252986212815722055832364407556312097681670948648118319506255896593125830274534976725231850722694196123987161298227307323732100699987384530628427369346682567833583265082911505885044944196107769312104885095126607870949005688906795450492879654270808161350187030095261714642379371126837839453554428357273477237856490962054137144532695930358980347559642415610605033051770980075434123820648580269833147993767362193501558991536959283887854217052645878401295621109493136241071999154967077199914606398920282524424576389802887443037488454646703280144176356699044753754663399697487196507710758416474025274648858774354878563104155002480658567492446029553307989899348791276758252673476740902653716295992755386601177320776956479473024035386363578645492786081081624006911721300177231725956698815729754345237272002221305016492741078213593582662442427690711689672452461882367757339225828460897679125393263641136726339562595658316438996848792307888452613092233073313759792581838741448376846221577209722694889079605202251114908354338305082315048095235637188623496152339536755857266087552614577865225137838155526017369569247703191801712887637306405119547255196563388823841911641762220002776775378805446174033205023860902456791523373404447044736451597324334353620224026302230129273172534317822508950175159234650720594302953991340517398951091806588714693679437324497059383522832187703469608862737981573345443607853714473558681063469755235339457875340121053286006214223470441959338743541962562872688852196219534003237306060590121594098190644752054267144645081276428988521647403902488851060861072924111765139753801464853341208133173779364385603377150413766590808567438512944039647615070651839482447634914632897347059732208817680299978320396615265843900115994626045294029470970228186520972252270776481366282834633437953350273924716679504315440024584056669284824488390793975530616160444160696667505701251575948491452903559299866920829231913874984344732989238202886337994456239678988692905559231639783665958296045665059679280250504913680599733107293634815985028026471123291007320182560516347275856996927962705043061514172418959296297283192677590974762444720231811584036181927663747697814173332612210332822410635640145090237349470199195493764487104818153342221160732378599931723287506256926793303891993257321756906096669273066931742646799785861209943091690526158685404423962695468408061126923579608627798436554907158084632385223158208552372226554015583055327508941928430077838661551646225872221850991227721173800081074077583369427776532385173393118978983377760225063460495914061401180363131728285763573116690571533148138850737254234435066468501238006380382006307640334051629337735826097208571446155411308705908212143763746493758294093460623965230667430323774673266965210678801892907971314408111587917434632162611131361616487379822695008538125590919538785727725291888941498526835419605574050283180189026014639230475922578529923997606033490344457421646045546070197628253236896697888746931324452302757618366536421446806056553658191761219717221446195569855321006189706481118019369302230294411608698149312736691470984892788938963281752271780609711251287486941383969425945804995439989093812240348406285986598426505270885415598422249889585195938859035163138373696576275654173532943088801141636532542475305742527311014756063793663290149407017922273079026581738198907687005019953345749999715096514510374404834832635600262382535158490935640766511117636637119204838391945947761240616809472961429258931026986940983336541651329149139146980417904874088189708643512007356001906566244813053381045993581288194846074654959481760496782799758270024663500275898180658474694888996528861037883043195549964739763552145074589350512933865372775163966618138283821271691968902410274093709821685168130044726244982741959193194321336630074230728854161185461259745514286301627723256905396691061561051925704918328992420950476739284807492627032078116321497240396708910291490529804788217681411493070447406175907528863993985927410590012145101291876422951791444280798120293899463226695587328065532163593770230892357688394165470031819947838064316185759661013914099721563436157121045649124355646427942074933814334417445532397831870137691369582240738294147600372383856038889672455601381595190151982633551588779660026535392269006347081107818538834245711206011881460942846105149289508123425296624564162511805992524482283969745553962144511726709413132538016242448572765271997610206847877761319234087278256371868195162211775793506813612469763208549969745512446391845671111395794078229993256800066992359859203001167136715955470390406381544997469171812271597743615619821707428865732832108337852754721785022523473635015485663601532552580892719831240129902428060585991662767217059767077101969860700444506458915763902525052417592941472932568566013842287620377761059449201607386535421147986436996674154201918084224265695636257723415563859547851141654241704938293241722452681234998535515667121705467546199271924859143307651733270147827538555971166033788609599198007837635943881929626513075752935492467779356841965011140295819517645084225921489776156598510238928788249314945085952607958894183783392944548985835417164729009161675855394223500684702893522681631636348098393750938833623162355049242404696551922590485637415248656824999875859610697667812737651505214201584652314311810228435376830831473058702578913715326072259849574453800435586958984048685615775961149329003694680782933939101138328408799170990968760617474341248524889701504962858882800044660113054439127218637071486398615276821365669394137395317958012384054567103098800443766685458378602840280017481250480064905873715065410446730632800592144659872461380616699653182786109882601298444049494180982790715828268475047810713840855804994996948498698130817819729941414048675189682347085544338713312749507071015017485669371453204983942502285631921641530063900815500642758716834357854636388963198751526744216757102614339877125071575915139281384516096566213554376528538963958025676547005125856757990317273828560832745180620812057102150667659903119328534414964203338698273791192230240351634356285119037130222019116157082789751138181537611726175660179199825529148366717256185118229909500309429509755829653005504865372420805458717229482711324147005236378387565557437875568441594907629489804731088156555789962690641509199427871538216679955703418041626419673819545435764893243939191675002928277429097200977281455851158683074824426604263502373137329133481401009642040014900124541898964769454379936921383033508420304018555949022020648886612280416412681315288648761268764087908554956805524769907120870106751544936250262183917167756210560873129253628058326152879529294193933271881738514353118240307483353535134762683563926626146379805604708508666402831255430402023253440260228828189653034707477184616578141041113887900496569965866627688280232573639511128946417630667691658698699278902263781864458184999307755861437756440030534710553520989823417083963354158864724984845179745295782053527990256716966604214665784215429746784736480754991942911687766735177504235114137560963553286465082759329286162650710682369544557925095492923502315997659732341025187178115199843339943961935299272646205062266026932252699486380135084235024069627710144371237467701001261314976392774323287007807384216661641667410113256424010642706789245340107250134371136776748836544400696333556617555919740451552908929009114569909760696491777359140640141091653096978605013023700082602323466549347307034228486973628828426217838982902141734425506625568490462799333659279043336044531410987851223293291627206384779808731487265410629586156284751279117994635401081775256578768605312199988167931807163893144563277572521291287810247710904804015098072929984327969361522763799603230371401609636953439717447196717344001777550250678811005522254137757878455218065508594215029069720063521390027243149181931200217655916765597094843018588346740124041499485146631334665882740170963476363551895247856920275073738969248712150893067620654539565940276028908355220409974876767308161381984775646728399007200144832856988434682661510304961360571793653159037603694064285573278237721342868136883547692285609278327255421161564269860643367793267097914791448300322760548098249508320738263582996788356391847783293311115981211786225340813137317295412193827330722346645292360296002004662423059336752699403209277631826730455394648382305179543018526887161191449715480320679155213454241733186448604969716946825792174391437308559611432104937504785021374835330968821423080373716818992032785858440151518330355826066332358223419438299648987205611839738531502794919719351507918387670814070609948955935992967170833842321802315479683557471443317449578493404832402273094790323792241051694053906593304949842019484721559091389951090874901026249452424553001356457072373484323346364234368278680119807121398967609970539945855042561004004149466125672201105758012631753344507175908309678335320854495728013099915037130870765867938909089157257601681910835904157331268928154724591529817197565132544389585265997601967964761691529063060420386301278269708474289093880728274341971166425365310470535739001405633878411377903609559232360511327066559168713415431640198408209043134303453922069786563899820559502073038821127174662808377558276392352332756393408784885059880367310903264183047709729526936629206535972278984381077364993653661731552291976700468900726236528870221672034889128666162109310874905181831276633519319532619648347298574875422295040010047939236852501596945707442518610884021144785113524317468415930990041312161322808792608917128218508854734654890559325791131113616223613521514260822852747618317445033514412321286313675223042984555542896664116592720784188642947784035128396837947728492596787486356685720181984898938050932302974731560730579529596508828120796694593148520093920520901414255010106917255559430677170548105013458675623760726353914281872067035183242144254975071851251633427675701384865763904111301317169427154666745332115339472797159267609057289401184126045741166290401951830002576037739879525263758503937289240893719636639917762350407483713075645130706341507638173524490491048890007641512823546658518676282088593448379430471614684359210808638464178107374581572700758966994418951264718447321641320108457700913035099289853052015281259181733786795304183255955546949039501030792941882073163655314591780138028956672465881710779902169378334591805467828880986530093583820529862184365084711759412981539171072247297729904186300549181249875543542342386690012475350320276492402041456404564881116084337220762897546574436567452304447110730111916726168461986424552157374931977546833939038075397900298345184970488469086314991303857781360450592434083636702770250928435352263110900462215568713930794840111680133227881887951142120704382665585404803259188789373602773612385640493262199860041620670904754178822957051170501184008559957474708237275817992290437120952517853255865297306111258188772624394149765995210354974252184932525885664965885678294422660390089683763259640884323200749367150558262671348452834273679845564250895942970752545753306208022023893276497401253929326737943885557685231129561195616054448586390719191212828856121538285030300836417382025685954908612626003895376842948111960104111664809975085130071613037083355660270522715114407225088720052805065511658454569780656007964728523520178989881343010636607061322566647621124829332266221403572877771915153114671303589414582468913104448047477201758179813557296221011668582288476109258775493079715928568862311465360654797372517709930938180249685994010209156080248518727234958906628116124064199027948053143172790759179298635893539855831189902977895693178900970482802998057411327163401137252514692218306316507959202604670563253255808397315021975826144260821586242433206910846542574963965971893832538680636146809891045503847212633862157083172419277931720868758067538636200187511879058407714523476835847382483195402705981322152191067849770778146995400566121427091881550542664388790213405166905359414299227503984408537514473906529728161661466065390229216618943394900032893394797995036013183272098172079988750147333721278480027705449103478274024949485115563319164647902295745553016099243525554516009736815815321782603005070048965151417236852636712730056723412280393675157181798559118799511938368988273508120122633297729747468924598346927331029524708446921057713853304192778507561035734686165614013756906169269180821647352271279137871732454506572822354821383926597663156689433719238529002590342758652003262302210539319835588147384839073733644532110768815308417747770232665330690602822753960402444484705005021499236172896050592731426358464616426514530907007721326106014681969940533653628385348986451335706923866574543972115617386660577071460447832155676718379264437290063931287606852720391234758341735561582665504777810365499455160862536585952174600418904332161981361130227246673261569979155874078901277436593992574710971281598746368819301393970739596966192627710850831248093334958198558538024783520877536587749005138075528685756117115980690381390159529058287673932742657165570482937735120342302739905163693611024855351010762235704535773886835877444176132293307130886924198164288211743172235533263433170241642102930061956089621625114732045306832318278083966627121736567415617330798438801001091574904498533085435928319471918519862298907092090610505533387784872859159460820297550202269113615288265540808746715676770289364191890868294498676154132234551312675153546048462271951899499623515072631298906712795911782436637811541539352156413747689099353850560316337941107713026030373195095795530242407256279270142425373607950897181356870379879978886645682547253160711156253943567208430689263493938887614148056943122194479858888332470707774430625571434521300005288941453369634309396420226713005110495793678251762857746752559284126501099437765933037537153615797188036120246937912069234087217045620188224921306039032342341630982158504266672581457954632753090651533356917874687400915140333027522160678129912653450785258830222790091563244375778307428819814302664588653067127978733629064225449679364698898407113788145709733370606837766850931712546698364001282819685084811706219012994557152407420899292723045649395244964835498954830988333071926116207832055030150599530776653784482333429467685358924130262195015974926012226098412878828215192485160424158279411753494601592834003831018598108730776677062081684842449381280807720723935192106636057473609857650454744953437300357776109649264360262489777577875256801621905735752766177583342755011574135226293156551363018813235957633722933959231926076108135978410903832501040755314881213767708103483973268458045797064147073480568363969056880152426399066530987242448735935736362919126850851362393466681803035569646963481291878162637669024794689278364486199892946860133177824526473293577323804116037416228181705061985310485584644835636085249578028603658037993079875714941538774155491476022260971283166307663515072431293369017751506241873745829636157392901410145709018803196426714487528449324570568940195296479887809511196070009517355760022485094994594239585934910062930174096141886636308319217091236846224477225642800849275469131816279526723381162140880035875405372491716347653310718785578831625721060060030348165429218486852616115441759668652424569406543971491354955334412740595128631345095668431593185876692740455060637280787788465781404225382319143886419162394721378518725482727882959685390095743000343866146989688810698483116092797652957984343689943201767018724530002816301114764822983852134154997280913885642319259218281010847802627203712158996214409928334005385352751201389604356502008044225604833281415568729055477613418972975790828963738306523652869942368274472023999435103381563430504833550904698551751923304950053120475537540545531156331789342859297798978546432406158746960447987336418524630066968319556361925821320889587066655240159983413925639987411248833789119239184670630006603310353732498999542041309388698398218701272320983533204340790524807822444360340706507107744398326634111025974151406181750599342278571057889238000565345861396650954215592088223629759998867252614182143877750992780268494848610123545519278288496960637453589895248328325522964906792800346702723662865455639533259214447958965239690418236723434779519649324465587821769548206262621410753459868833217602399999153087981142709471554741595538915458500406704686449573346263302925032831630690113323817463281138860735292693205221163375401558348922183781641009316220757506147825683572371895419070485595663016830752493052211290942445180189205329043103969652829752834299668638978349937862518161530000499352012055858567083297050529097824673185379776566141106889274712695852451603740913263876894988514094231851741186001211355162102103639101990168382225468219367401663664577915678884568828624075260874279944180101852330214501008295142224001309534361996222393672971817142619637757025849615707626799094909670486729397460287503188043760770957591686124868552778567786418352986719699891920393873687583693709281042643635648155097131896328188210455213005742076065873325032444757057847122552509390204809490477529065783247983211843715936764994901974314871574648669424962107793315574588930145813778688548417829749651242565286899108822466261066686325136015651041311770166312682550387957904820369240944996447821433981040360641184402247997383280154233155871676178900650330273502164099640077036695924585781913935108132098746027115782088855133199912174058203671004315354705820148101449450277567773646219375456116954631301056697389410551968144370473752155707419297394729253018005382479594040367859551418635880376358625556705030683753739714732335660367459823846608393181913547110238018246216656618768826085671033364705330280040648703568126530577363076133352644801123401846193570253181241530669151840067249703430963205337485569532450245511030232610857077448734351744091875657663522451833150534582134699196126932250106625332611207426787096951409456548767479513627341253423973799598427752370686278044820830217586395416252414338270201634764106746297772242751878246636831497155516554291498610629863077171260558092945530204545085528719732372828346482603970975010517607346725646161751456674251033959874325244022570702602770122535163103811379345427941841077536885834102586014405336090451813747675534911263719966818161775500460109097672474686305768304438025885860267522568780635657332061664255160584140240646317409536912022000562429720444484568521623784041266628879362345981409773961987978984370969468223422914870143082164048114327988064847361339982154451777587055597149520730994047458443973938816744290041906232621852061205902873748702864303928942989534560856691714099596446261989032211768567993858473304224113259894960974879818519115455051073911138228660652600750127935872171338926944351502691290525493475782320205550016572815970988027582745614339705001075546564718462673114259523912473294570280756455809483080323372892873382719843206116629596924273664908451313459432125047869954121363707579801037823202907549680844227259866764184692869823298098955540684779202251562369528627889618463531849001932312643423684869173416209302478888993693189132678304918139139060244524896910694375803912245753614834181818739965425040514510970846163751797792846153021244650444690976919886008971821966910283252647554398935845739042330247305957043072761039586290700374418831822384636029021325692511609900966226655203586669718537824060628622531083531248764915209342077153317431429007638232390119877646465299774960422101898800037804018945519873161495191384685135800005203129427125555841731245773292231860598837918875631652293673348078268634850930545220238039895327595370030699435752584198114161223713076321088788881379639446244333638142173974113934147207190348309676905413590780642968454582380201204591384921545085692314466968818347061287458846602473570987714723278404937639365125133472179738413130804097945910681606707809768647414834807715727992763670767321692591987365689299003807972479334882782883574723904980219274445067775001271498441309084000996589763124735353199279177105043889661192796605740608229788527619345619412852850558542323058815073138766493338256318745782733704361008182851715594796279112316747357321914264257576243725558293076587683002883479945968883488054451647856262945153905980773888050297547303472431444595033344096734810769831673835768519288032143630177728218050131045401164377513023280231732496497804143748737027985008261158083027247304501945966426049442237151620930600396598085142553491006127589347743740645286870532548769453067187153845022213127018644214096999281132448439812412094717055281639307702293093265910147781624093637977208339642183662927448810064580923163062766163067742540502235629253179468564915657212311298950865418919012834735555224474255245340150470119930220444252703056037066793086391770460530470611346245969014547808821369074612632623104804136759046559260628214015677478901426848133577601290141409356466489925792874056732976916867699080850777288607269691167448393612317488362883988164541073374565665979257969290258302169079525656954539902132928119828394453592015285980783255108430329910174504335419448807129709859629987845135132296633966867095439952031765264723280601825218144023273565076328432681095934623411918607745691539337156304679373870047947976045718999179235690233400531815975536890201517788930913477924700513867851724099712184571084133620779473665581757595354225127976094203306216118107319679337958519984041265244361714133367668905262503571122639378688131316777226514927434670705536263363977695205865907507639203785347718298903542972867137291637049722346377470073779760540108909853714550123550804100388547151899050193099997700641336031358243613842379494317140658017438771854972524194519178024508331899954297746461645030341943234191971979188113560443409665148706518197258834452696224670527922830047132404700101088978309658803120973361758124322406575810468017609891815988323841906012120595562056114873451492124761652615703823545431985501984162268434447492295240881417998989789622166610882089631767540615282713459423489172323938145045423587632930031718070887666045291637961482010516822110614938893698068418628372233776945347103553784591526716966170651151587669046703811711727623800215828689643231204789728340380745369102845256349202597523565474405641269612626371445028869301850562470620244281532543360849020546690291794014821996041024872149792394037231884107870626560266419764986292508586856544557878967156207547162808672784456706089861854898039687691934856642214168990526812926747994108790353886947216753182665191113924694672507462120454011196218501713956684773912495969744676159084965036749691269387604883605516366887922171494721354592780272607795864075307976891471023208216487640349312231713298799703424494487703296883856436660691315295673468126023010867475111880022250789201827177358710661979870129650320071529413222594352686436392868954471674276573662466972638624372063950423968505142476666417845481910480552016478504107553739208435721826579363959280596983947207280792504560414271584838159408109348435254302517232615856824721757244932313794166096023072877776611003458367023867595630565061299716663496249639246092769009502286375574211693854136300231204847071267276837701819175214951488738977458172718170609737156360001702241520839712637297408547640230053465818764641596730124924632838550174546911335773951138972276150394370321174522178304230133158854217512536306105250588638703171014447247133095715887656813196975114898113174159524276342643094302017162349847703063079856764908051798289039412109060851991422592912121135552324716181954481544405237321048731107222968438683212746299984280793662142116595534325639777632880929352573165640492740649278785206757704388008587401033094447284910952942434287544537824178913182179262665743138299698889006339514876816215160675992376692623214499495076423288210685418811970029953968105498669607319327604629963820358006548927067856356970905721272448137214966955997007766502069700882884470804809102356774055219486597151065938720722883487855826044900600710649453865806077887921254759808226745313841585617755598390650465160926724166998321466170985322782232667760304001938366692238843103400656298567108197499889151284721839815182904098119411477667622690414115970639876910912949957766273786648281376437933047240235094316745043266344085021776463608394712497621524430421748016327208848152396445165997235026506861053060043879391635027284635590794304479852665709692415615448084288805827635245770128090344594078708405786468520916825118806274466982800372938443705074894879638183343402666289195475556620078964665682362128427525573800658818464631560358924832079634645911563474501077681302344216064270236461618803901508340008916011854650347750936177815929115670170735077130228320484056381791435298034469775283359203948996984048588880364838421743935409130086107622203980229118761349533224695142154840006687640415086677745646279255355086375639114047889031335044954460701976958382979431642207001050725457122150241766456231848895344774473176595205327853204472869100424628356532007117359012521431204233058070279697401043712615691350302192822593610831365523043856112508763305306806107432033216747362041455572261093763135672610461826316484076099490415914152874900982606057977537867924142688749697941058243610779044477500591665817536106453522432017468728670606147827124100870033563424390940628419865783635500818258940916819332397077456350991043261843153970965042747946458664753793766243644794232749058484808877266551960301541951836014785835257790131084172968213915948449902976001041490165747027319296762649276976082890307449644456691779457697383368440322939538889906503181981493526392183479345569761948439318999945834614003983201779810198697363942913523234001748766103254894492720659132489066658773861040780901830802543604082341168697671558947764199509381114680121693533857751754762834369461481634615272089519236182823383724818825568649986545022171725895851114751022727121539558740846762957079260424851279955001030485824239853675814828719022253320692903714292424287628977401194635153490251111311248300288254192996679129087805506063225575891826443525858712327948022156489577809591672858235119004558947388509587448605880161877997560716907177109765739631578611998636855206141079812016501898825211572335058928802945385866149496088770514713084424009673457295194370829559497745268220724242154542155729448547032004134838055581676934953241801790556181711634008603196215496709672994056183324637720668188533566350157075915295809092647932324329755712460918836471778958576340636716540789327131258953317219892043243394500196162759333336602127185903951206575770115686503213133755985051523569766327609707207663708985835007271360095894960806182635232804310761518342350023468570328573790018220425611731669003514633992280455880689448116022831494873883922628686347156314009985581816763785227276227432313177816103009387250701852256122853875818218590695313476367011098210364899310787170748431355560621932908930328217279042838537648048335576033758201656017509164912698416315672612617387810780086423864627963817950720823235378524010744895772907524583298710334501752122418506730631175386204676422194567925771812248089351882764277008090419399756328004953150675856463484267155816609896150398176102547696217089836386263399970136252783690478943816757739111714983052383795373643209527893607998801429888223483661022489379658681599999644268601030786119234979850737917544806818998077419970947843101743939656950954975599828828367432840069671853142881924033640094461795504602858128830410062300721346538814978066637942462789873477535263377499049074708040750804400040763503036456218309270265987060385943686118498896388070565820077291734468779245651883299102783739008973377642441339691674466538319450553452066681599029887981412922981056903733469839452503918028191788870117458456339991620347197595151595079257773856966912157140480774179819638355877111805543524594907120656098671163310798728720480201275532699310035072922094076324618586734758568817691331019886696523918713297953166215441758395101854545798563466794716136737119533961985058286279041242623757493728685876229346190636136627864620944272676346220583352017679977089215433739060130743484870453870955503866852516581488919862142371515392664462471963217491428673213745510396830704076585576766648367999481312892678207347239127457708596008180539590819957337715317305405616113585136838089318569332239633157641844404250270899068276378473086510755839412561563620627779265591601735301781795121618285134832973623462777924780490568805514531806024461124182949179555786105575699577752367155838425679326396208831247953363975349490546975844354521644879920929130204845265624054984968429355822532549522397161612915498552410797992876459842938523386758478102434216253605394472105613560612336121519025781258723422526667143761151295148446594267266870207495460172847913424433578451011340324772925582268929058237120166195321050700912905900750549226959447372439097925576739232103680456034836602942253021894422585448502213020174732870373451917850523675378349796725514161455277493140224034995888849807035062322997262358335549825609487852708638409235730233894647652881748757575944133745906449351258946704318734375714399281936759407210307934399383572215937259603157193927238909476549422608458230599853618386700616046066323637876169349076810861195671426490793418730827762114040282635939755389538973465639203285046338407631150448002723877896998006212583250659553519865834378304798432149229591587884359483138486674628844950798913513329762300185986309295229175438773483858856121501932571551210659587397492542981893620877878909032672744425164660745902845514981345822839726611008537871897555630461749662493015464108280921563877420267522055132223472539067815699789503815940239650954487310418382434205313493951481263239062008504108301506569435421520333638339478323255261123227998327227050411509292037636565767164254384904834784827824423913767907343384791835389394712063179261272570693682992826963723605408045089040206991268080452786319579403238233939809257008907315651745326200183336448709873733275456754943896532069461931007423212828286466015444583152539831202878042830364226726108641075545032885583630588145428281121328948177556030649999553446218058246244845247000410731163889360162352282112259916471254290443803493536662223487544867438309279233330911419548121802583607344455366333882785511873236059649833668588905994087239235084869408781270146954765532170872802957751635151205760704479041054455708530304265265569463556988406958853113015720175895850995120014660015584349760523208212306310049327512864799950582569113824389009387690668469735339579754592579994106981004849721649602964629007119411335493033021150013463837468224872673842812683153587013975235430091867318290305642321369782931698665487314975077310695332387809665386699190205931415414251029361224097483800572011614101421355406395801691957643170085572851264572508308295713710574306117848010340668578171530091414674043573695576318783614582004406439613820245860812306532826493896837375474314338286879538461370696854337800825456941782413757592567756267628468898854591802333103185843934034757941001996401718449116941632939665388615448675791319895980023778279222604323714264867681205875746084926974391183094422271901859904510287071861689551557415057418505958590748466984062371448103785799093513090591943430259615948542708997216770621837183112488940742755730146658482276634575254426966447655493722630018302943317577945338747216100898231144248182723717898397462854075154591036221202391698749918158941125198060924145354048887092300744401553772532548611595511681392359343333035158920712301865563431008457494847428716919405685774721859928794014635448027847848712564148324702265972211021191894826777612095473153037162359864356691329484280863428040135388745157934694915209673172825920608070928506493901584177162656586978247539548575011740739381756139012442635441460736495618850928900201539050157107575797799846258075797983284508164303167906577664422072427170109195204626800211734223720874462894983116986409989084545798034137126050882108436377441015682625351767178682699461026107581368947221440897680143369188125634058225227546772185157305102085762403901787504156580246237096456209478456013094913958248308091698847114462315975694028143922045088062210186699344552430171097356706860288259549792686225377110124894172721203525372519416346846595307805838850305265407841859286756100276548772460589911524666449401926026683155859009295407263153581482032279471787405371240506222434874415853670666335411361259846645176636259556202294350930300635729723650937880694843023026321499328385860848536471936439069498828735177824073897380067770577074358639572304268116461302933502342890771824719953883504033238690596515397195539643224571464979577461566790269084570527032109709247397503344144236104697046362402616725361314825973801678503317337802586550020325669449365384614184561554528254216008712061192710584369015873024135948445126515403557713466781545609651123840431240577626544846618373428682031055241151837811849989264819793181878607543147268707173075514471918106488883812076393267618760706872050132138941108341979970044226838834891669831163787655971466305791941251033759341559950602156574919573400372865665847674475356283925592940123823413240402521519551789944708444454331714776321290126263635491769594041025122330343485201178645099135733278715972207623778762544403233198193908309753871274164260640713377217491833383664723446505628337271477604716240112749485899470209164611175433973610654246548846589222057821461868164716669463121491458711141249648159442821776679738365626795688988218195894987116172297406446198371888857812856930529119610399957854188085394465414516965964941135536529083317249883073621137190359141694606632443490815459056737629631609244484933567442778064799989280166234444144433102581243570204300254541801028366113734432884970112897723018016109757907564080432825964796304457254230902720458253715122588826584135455768037411958843617146501875780085183415230435150509535787665766978620484649049004498790912076191733804338405224064422987963195306500748482628069156756887388868214598657303323331125528550400620565351528967757839660168706341067160805022188031185742202389268406322364928920870232073825992688005247670337416213853586719102357246214522410083760415655124888233868787851447379479134918064218395613808672176664453803724811289555721854665635145520236305574821931932215473790413915921772974143340263157100414040498615062411716109642609516784691458290514360895416322069029036943150706731544353600410941422698039616208806667939798945500987645549657549996553887607747803595974254626955726028047395641641783305220961855772431697691091491360421949363031421420366146166861745747484504980256703487654846659775029652573337226869145140509443272126826627573334129177616086494699328101377073926848114027840034852076313069900308615850286021646574326882031685409418850476725152185889349530197530593383215152793327056044630589146408061045427098772481122157946227644191582951707422045511582207658921082573856428135821356189450927190037327772895102981299909350517761749654920195045144679877631838195903379147028491592047027454922267591310981063356769748283135521904610705342512149896057244443828135494345002645345367901023969581454537082798685399554213157118439563782713063300262885804717433986438293407172331334046430474147217324230957694900436096205644079808717958308760271481224318899918228731765562175825925960831987397484779911554895958049665214258621889651334654565569705941295653667994194952199627535657337246943694114380438267125336287722909870815851197387941749302859662928321307621562803148336497993580967880252591905033953571493711912730804755766343402431682831046114439273030749669225751671011223832426332358022605693072693600154692456686115031758271625275425715703678441988155744330656198728434216242072138970440991568968855710443465454113940541871875667508065262353309989845690672108156430333710031993298024362548895621948169303055154133549158670364350726092120398355655065756325523974947946525748140908473936379149696823645762897021765409205919429019372119387682955889801357235025880903840399653584283827048475346591796181115648171309604560943871409903053920623111147451288635909160885572242358268828864302714099749404430566595247841836095956329356714802513433567568916752572781453425536169951497697433358277622355431280608112620048733086516506774077863946817491793365566740303813395948974349904576640648670383385003725664025229284622506869716704934644485351066097749078071796343223343082791653347061282731906482568318449128232317550368444652814507970111486537501444236518082234244376007349605363547377815113294615030720877372052263214181373076956050178603218470517712051764992273234639907651172182319761737550131952309600716202243452749146588142401820626029373673582637212623717947570278725119646973468485419207934177214455864902561605182079310671470992601551470112238610854097409575521181944697237184122183321569221447718940594565299990256044436990923557862821052988276573075857375350192280018799022053402524894372617513035490732734495252986896903655706963808079845065296370895357421076661477713531055577898387391222095865491522633133556382137661973655450832776009861857933783886477679388243149612978828852395743239911273212285876151235919997602405625418035855567035596369868983511071982490832761052687430695962332699160338935624923672403107190717822009201908442833960213500065047048352369957112157456890647379638984239118809451544889722468449238240855081064601691754444549646175766794859056113614226405347154395050188701040552238617915954421253789102839771814268905221751621743824705689621108168701011756266066790775946450415778275124299129240480361611245107894235409653881832473167449365769587844766555601471056868232855068779335067320147773770456581984354433105956700800747464696480955390818962894170300266502161901430527962721255822232073630535825859391869853673987923470299761220534608821508695654574411420401426984881407813667422351763206003671629700412858470487162462140782925117179032226565691058042663603403456554100023241606510579763524304159076542071048294188585944792748480645527396012297951459730839780091667432119453298871248774228074759259046633343681800904754772047684058361353175565381155071563051245733750683402504007723820995300526990247588394000874592845295814307146223547660314137791152365873680706908876396080661001472418447673089397900362676009117515202889740397900974282424374017207328635841295578546497806847984399682001405029296734003262869003351950848155265375982614142447805600595336927737685636315269386971117033520704737219078718690473808017314499352416824760793944340177514110537913640649911243494826129618639135648581345268384190612219701188492718098556499616587507482226443371027252571270342344727466467443210898060500332761547286726081429323988639166412249624259697703776815140252274937395114050126798004733390144027552505591608403305392725610132654729749382894334136743519153891593746632438726845386568411729190692199706313768925293942674644699698893100578677129742101123862917584113920709749515564436934871922986126843576125245896064752482525867431204688190597688113567736564099689279119026068103923631749541382378718427668410457474515378476319625338133860540046851332166504590775986215685711605314974354859540953880692604121484036280129628054142147550783553090422924000776858914056433707050453254534974737741355605622656144477242762557837733544713789201808075534083734097523286968897622561712532156228988088152392130428747839077145372895915322766925556007514491091318757331812796145481567036023340731866868674762377589184430654152118411261422545739515297173043510210985849504979572516536353097594524091758615979688443975010875509566422795100438357945302681651254344305742268588485561029228693541758444326244361106147844172348241445431260106853553917487780645861741483464148770787770550854885386123697527066417072324723477802698489992654291659184590326320464548023826948982404437080843530039535498849623461020325437309612315334855353239207906905066065230717357436688436204379236295621912186102262625950642730074057587512122795734932587515252256915424725035827391727342478506874534240000626273566468789843390356658234149259208470743971435268403462672932936948043325911123359001359752383500608377256543260957618423223580528808423068991121963211794619651479784588934513983817297703138759446383422454056208794929331555297778302941269868269409038691656547057414356948840905084345643689613205853267789886061352117515339938520625058303923964092300119387162407573079136185955405307171038268902809650623276317644985504004894814869314423396814891060118523951227988622226274945992927125447900255332489440387901681699402791425105958722858908863259641859272125470949124113098414129850813670323220139267812742612688894950052531205981095807588471637983830810662349918721784016368390128621208001848581310266964867622202308878005526690901733937590298633493044401758753465864345719035216176453032363705485121292036433438579242471846063883485872594601408449298723903277876563053823027451537246350153731122878185029007204892022792076932533210713602976938027738564638497605809543107288003728514241936750367038048870734424172009707667926846101769084475672562273002269126885004215175241798173223534079276252084391909609035950930424216314738840803279331021501326652688561362487974849705788309977481892823788039670008989848819235043991241901971332795736050450763905987392868233060912744598306948444923689074791137841643690320030069310343416846390844773990819376621276317552204621358454617047932243585424039428224998296407555548831946230655030112315585736330382500282988772709418339648799747619678878274841163424723922953080435139632640557600518745914517345343269069016712091365055948577977759606197161587136744316154310241394334826522761644667730977784937384932127618228981758415575963893583367862886118527559721189227772125477957846040505682843242155542568756551192355133428650329375619676223635259386179560017480987920884298510227620640132324457810353635117196137883080275302673572056941647893508157953431202714778047121487091395138903358840984041150056055057921797787900164347297343065465273427903452229516291061326454402624235073435672190591413371793398401329332280618156647194896054016620209239629460737850826975350227142217885419908560160768385433470303004469109053265087946905188322460886112609703905945410582203575211603132979156111163341367548718900042444398446933319168791275352805056722148192887848710882372900993553124635953912312316594278962535182184055216577374237560873376533311818941462190557963717400608421486562953963834312960472195563351279022676284169973894393405352494699943061240782847465669576789728669807537897547951001422871490279740313012096625590459708570978846669795670166135247142361752144495222158345564281960765485000395545759447212181760485913823127291679848217348821785428060921847703198648385079425509812458205350932944506870671986813348577094695500632072233748956025976944796135139361067294793579192503552041241385448727194120577384055305704901559155624319692134924420868936556606091112533297996615940893267482756693797231333999793463074383411441712139771880363311035327927599708828416616382297827152848442386450919966390871067702280774482186844793818079034764959200655911604883342573926241035281597516396511789791360226693226025636607551377334085482046358516049648279761824955341616839382234496771972118002013217629502417216705134759548697059671684163896875963868320623094009823846496907215049249022569171904495202886376408232425445465778766798837773492102324154746608431977155397864054995518587555426295662911424189074415970528865688094267780656127004134548038802665776611413778289723699572054799597296933383446647781255487109327879216255738073685714989395597153402584535994949542104687933059120077577539952967141451381060670707466687839121834223850588134249647176189594245337448843260503480196175725990373753234732591055496555578213103382226173389998047816119771739774163907320033951827509884586523089240642256489480540726648778264079362204033108584553505216850233019201833706596061606795268965518824905763015381788136053412707491093866316903237044832019908438449353156192270125066465289972193669983482320309507106634344618322088613477080415791549892464893316484665436278384243270629034374644690156114072712241282869481088441949796657706976677347528021156533890528794611601550218780944469903642637266726573326507026615774938098622903927441572996535295704410240131333780054684587081582232933449103132206039198221597594657624243852308282824503846559862916716816296838905396740869239346041052668120107982620096611265063901706990053536147448462393181737025903023461570303122025467046431059522993384031674457252561813307371100448090879678415822444348675104419446665311180036136808428547686366256478342921423178942146294008567006047403670374314525419517648110250320723192807369299452533801738884325127968931008752761749735763481556033450861545731262988936702122771054595523608568247620041456021026322096946026945070733416191479708353690944344239062533497095522483212822178029304741085398158842406495015781968909391788908075502999365508440494548898375984165262272780722564525646359222207557239999305273154146058125783997937812832248960177660546918286469977177572856735090180995643038184323973305085350784541425790478170649580128969754562692719461243094015408197556806151468449751268117821551854269554578794960832934199255828270339069329323335027081970594265672302783634540233479175280371353007963699540352185878355981831564968630052719232409227205999042972233684020657338431176019795335337475511003750308367933218062835484445824904768144716227674670055702360320498279418160339464166477061476723619709805666728305608897662192020267021001752973472043220140666779948581050475496371780234659954746347681834040453069205322538868205269881608948501081820196363967105231190157732444649603362322394525512986120735504950916445255884746869786605049325481608105136212033047818560545978710442826775781622208227277547195491343380512478882877510082348336587256041603392352443308001205779628488458123446628988706950970198454855254301453230677474445979498264691463006708061022940282237427364575406650318069461616863087555853074832677092369469156220404854005012883410245698733440750907403992917873776933831669860312286650807227358447451731160745081468329082964541200874640786037463329822119628432713507066710110766029546575853885926950266612815244728321574053125774925692048821269516106699171009536262564421938916008537061194330136566286704211226333817699097288315036830901210697584249680687081002487797621900441266271074782902754315614106043197109384595176556297379166057707508700373932678222944044543752741678823365488591877093030518957322622400790912223679146933976282021216336255329821353159736001596362670971333090236916988463852537360760157717654491680132551632762271037777515699372499427907156838828174999064504949564337079522905757701407839889041708292337614868003430342942350452025588555327660791760699703183007012652665383113918088979733538239212115742579867805775390432446651617735369935842474317126348876111639665891642724669974467461629414081200290051284120592868834454258710022187065555163163535844961033855792599692142441110971788969827367427955333256449546342934714079609587172186790205275806632504335357668945913699349192121178999215910925475629799566251852650024979828360192368940463521837565472341993072826888072458815475213558058538122162880502243825062081016011555137208542560067123114962609011966928707589278442576709592305783470512320296550132868131809124750844974740407589194846394733028127892346606868454659219658354155187663136283080920432558842275827473513135478313659247942330597772990976229982314049856396534420174357663881221604614013663021097827742654201828871823804511418583743818272937317270999356990842904458474523370881331244689800210909721836944491951219895661915541675574411279435160549521321989984537466846576280799874376907476759936456359690400878948205999761787897039580309170302442958551367183878955999661457012565397752481416591773388595355765419058726476775305274345352097671194273913902100419108691164238336495306845332157567906350492493488627312901792425524069448095855078846268516168333448055486616836199508568619390372724234576420294748136273320560770378629442765502296442976164721272291032601368620377345742585674748699405755524558742311462761163218199703906330071960324163623864513948824025405925293647345438889312216328892022702313926979052623074903424388406786258597015895305729566254240491746333638424827434869217123852241400067435250177971154351599317594158377440484574218718143241850656648115129867613847431219327827458563328426916396234776779388582438514647300764519846307888077077552376448962895358067355387349845427743721563045921317587931467829879970351624744204500084793679498371741245086952611860794237266963989797481077170369681582298412511578233125891233647446070794797498511461682471616377220872991722807317022359922087123001655936048331732595958051388654833904562832611143909827247775720692864231565965974681916720699134843428844167337847062607086208058518323157039502400409841589812112340899454703349786150565310058768405519483362038902410388014509711830619547192767921342475693934550470748126456277936690969745848931126959647337515300130619091379843920235890654171180712929131506575085419066368570213841855375819117434672624686825633778669750614149887349251528541682411235559484809483631784107384317940599994070782832539350066368071552470224560245070160457516845139157731614375935533395505902539810912303142739494541316502387059025427260283924477668766871860650531876686436160521095216384599257970094687412260881695839193022739337764028921417010518554508405870688161669327420704070660390054463457384282984465107310232181634908933048926549570957231794414899941886899472138454890558228753747680757714306855960625508395345382618496209678631764462118769852724201170307972874460028060677567893647147811673643500263916330803467003141570046215342549780583131300979028333758178618350072011185472056208656563136007697809260709069442801294980613128625038845431429795825381806112368936435473645796511930800030123680618526443220475558111016453537238040376073198705705016629432607126032482432197097249663914884257765143730038601366363996311840760476305335646229719317443947383568990762727593940155057864373453817793058771340817630376638694462277710800992397757502371893402380382760744090488284959793598899234386824151007048343094607699983360247289764886862875153928057468082702981236063523156747506177961899772116029490685977554778736816029984067716392356059955218593250577354214794372961017794750101180809401125635641000559023474201053840334136695984635347205664979773921834490663258222826435285833320802369980468598703272414377028942785840108038783251330832125511082609707899321183159283633895713313307167724639515439113635015349873726236417785782760032253507152383666233094419278791732849419939927961671836106787914472536311439323511766164839351917077234333311883937075444121898395708033910789618776707225915531604769686223491534339372338081301861830811841900172477689065506097006840943877695312751087638269097809828257288920531046011141120691069195711252419711662682019867831768519751036993315252022306221900772174287078374998311043629045460297319120319250278871191227031635207887458529807921900960625834400427350835824321964603072119771540648982380957023597166030023564558615398155928990914287469915515449224376306389354982029789330141242115740851846709512805027845124988013969885234748444728945607370776550533764607995863694696794026114362311311860309249264810121408939223017167666304683267524278034349760492953074550952645911900440222840437623758883770787334393084292103150672535732328533868569960601531028253371663353252115111574383157941579642550433877769568325586117617602533038739320985552513056021232514178659374705099229748254991384822947554810778026805640884802504332078277993752452185939180787585262832531683950463024188266181395515174024389925738109289634975693172801662997477774772655049797561100205149212313467893743463525280986125287866984492102627120731238534221372090122630060535885633138214136698563443754348082594473567314197189358293488845583914131952586903918019062593994276109452409213524452226170769491149864710345827136242432484228054939834019962172221539953363190783768621078251864050087689465139229640745719259289274279682765509254210976526611970934855027574765983992432165600987326473963692651743527681315316529692548109300855178279210549002191940762622737333071868781200099254886381239643175956601944735488749958822382714046348765536831185998920662166530870237090110213761436515341264711556850155584317229267258117912287707156703252147221982900379382177264539501976238950202910096992388622131242789708111706482598400054557411781844316145473925271496868719973635506436390441337078525214364193207511523830749091525864359565870762128317508539999748260680778968033864831314676477665296002150649282834215064909539721152611003932570482154609674986881347621242949491785053420453704765795905539617353915004120314710481002257790250380880035863054353267233611332638906838879363611671712447099401566264683571650455454097184935197927360338647582488811967144724587228957562033548841763350943969560189142806969334892151569898250397928572489344247887604324127465046291056194031001441312765424900462214350794231864192012086793890369932415021333741142116715377685903713426131432828082491285241863440017265238214592078077645519429850704336558621344852001253832603139724560375780706064764311814848045208845953326414531627760755976172467475344006276302226046718742002092576814472672723687978495545300348884071163461672811179231464779785466463828670653518714187007298824625212762633662671763597480314141942065735464414492775123614401777813227590895380444467470482777402687078076394011368901691730247092833240948920898320229356271959126879627591585656874035871112837442208993866944447305226738118424812655047256819678071922755161674346405202555020773891938226560359579069838797426525770871172239926071544525249340836643058474819685301866512389474632625665050094071045574637952970209281676816532137072516088799531242628156523332518270113666196725595189604527660609974540615075039745154450032759347305813079216793749558022601383772062634992962036096930320859073916597104114062139428618751477921120980574425882226760790070191292265093463872471596495727001770092626191229556565995883590842026176563978931877867622654344758363506390149436474529169489561260815436671105325303381798640365678369476228361324664594833285175429183569591484907865758463757004522254517473289062638508268174058026652462963139438747475425122107861407242490560101598544655759102941101166641218925999685648570908041461559069066018592197236244673711466490428225371692730433896209696788548710487572825886446213728424124666722456560471667888095118357674771279622553126872538805572437732237866930167466465577152527243427347892751644290712859899450476579929952068655575630053838760463528480471261796122729991868144539096870121546807992146835690455806200485583976482701703775107158297866587308335219794605742573011891858226022601221995970071552844762018762065739017071370748962260663678570466810557688193240136816730060931352691624142988800539038080145574939971873803952638686449479377803106037246591628296770589578172614366537728150467624613571165215322885349944343709265134092768902791991334013549758909058638382249520558421502537494325484876163937960696756391717637159970160243603145289504558100974773369811148509964954275639139679634309533119324013900125591782680714997899180752275994282488833499959781030799684382042616543777122904332111858903700722707414228646759756308515659073078392651523425541047515888081925007997295267388300618596625963259940829225538760329184567618505083587352181086931856138632104594053448592188751795849726775156096515840020770570194983253503992314379690135887801494360587348950607626079841044800338114459071037681435608044411733259934420633278144763553137623774736762169838206591411020708720719304264569380031475000838716187437692506120833151517640096054266220100869305509070356846141780105175971817669134090103091371995258904540154256988636063607555246458152226795252975097296423097336129117751457754453624374247785539569339931638002697659644356441787954679198456021422831803333412714121280137926028854328594292047683952363973344143271021984704217058315734255420799148584435586468231846771800640549950113713770709888396332616562143382351247898330124888324980718019603600588390459745230944270562184060228083251445804005285930305277859891725335183711502419768390861001440886358478795925554478632593108897556597035174912685212848790666029627279068072099473379473260700759202058410696331665757416255811345504357492157650299512147126187607162139257486733613258718559755465498531295826426347832357496025068969663700584751686302340982507829981350629881388164948935453305011758763900614783368790848663534120101421232234565376058473815369451204330407357074886837160990388729516647821624544392397271400300292458124062496770631455056428077393969727240840582584923531029831431213941418819438474399773669012745581644863841416877784405982858008831871552775031258369177593347359313995839911826282072653020018803323896834681114524864847622953961403037254742288825388171980795446142839023910572861432201959073705234601863335987777898271661528865168554282007040093961452566085550727749473529278229675470892895310308125807124365585330052931007322511681723887534863040773449753728502969603036223786573873859095074952649883992392033274474756264160817461237037054348792338200297426030442787797432139557436917308331176043705392771022923485514574859230671232929259497303749037018457818132741039234141085438173507453998763075686310075503105255835242268034194700004755134308908819980985243841209269028399264821068836680488182255572835991115383050144744205961244665669524620070475185721136897353729128264869464692523307927498133177559860946161069591867863015146435379310564456907443065618298404199507323552167965484435451506385037859798829948750854714085063277554982990905053312905095834908147834956457306784710450075091129086279218642145391201222427201139399744332970389524702516082220531180813895392503011942808230876589422553410028015817389267243011190420044664821954029628855134829802312374174493203914453263774067392190431046330240057993218086587948956030944895969836484261258294312624201695649456192960645938081327121952184567388281846695959043197424104463429149437323028960814870455995327962999706051289940374737405545081477946941804734713087889920086141252618562129295798930596489787066997184196616140836652008038913481077076018439679387963642962677599641092525714735309145451858679789122941743583551645850746849311750028283233984223698318681949614410146693839316102156332677860733561139579609287474839082567108657857988723107111597871376754524480399616800353640194519173751433807452873232015324589827598571547237559105454624441399524333358457941111416157199166573932224443682532315094950652502629646160808381624222302866784580603394988726857423159919266518915176154867736868555511037678746237442162193670570337157185623466488878488029200165681264212179546205159365040985565930304119134559543846951232604012595936179264154514724977862071246217906885332598649134872109461612443776970873780638605598125690465326233846885081864318022760619027105540450089526730164419769926412993416523224739954674898029219652753738675129815337553896786305919214257837514658804715400754959244676325721145381790970241818505560059763009072346687080275037975146114449998902571427284707047890240165455018226276734534763643728295736199673510871215570461483100973965416822083625412727996832173813825546811183495982470455803657672925956805650900220953988453545658778980645384531054691358627170580147909655311680384485445341955870372019495507278108973581409455288008615466120793982749529442487494580777462345387359182535464733140373020755505115343841361426502670407175756285813361830448359340897914499515904331153596476137126680749776895000057002870977809701937277824409813230380674066016316372067250098025873973553179730806167482005100483675418003062506112512872968546430946031644893372722813059937614655199776173851129679921629661884216712277856487561774158692322262459146314005459358713185804088684627758207976698181010983640256610148662862127336350563905806290361544942056759970760196459282592812079739860391010585946717973856720300076466749347355126823075503979054624314614147245943950707619962550890797598324278798367693002396369365615021991200703994211409330030765174093959437651650452128370532206783167126208525441136945791160363484845849578347813422342038436345741358545062215596299041600798188028702843523652328844151143533885152747959810351288487641851460825277067382915758751137583778786693372583199237581897925163452724088003503915244825290557575743329709180144894424344589279769361424379330751216528766293085711080322335926536235196862128336426539446087880750391644088949276714175291406846394821680174928733592082547876396527210217618442901383395302351182985186149880597176204418844186479388172138789486857622761459686962481317810494637844451216528556906586973770200431363954827964456549365583581088276972148104719804433418359294520692945574746730387149978432015439194847975579591343456117135090660264355116248139563354214325997361980494970682414386889708281496890201849455477052748631453656412899021307822181235110522335252210508163710155445554091739475605935001382604290929375026171525644270726283859531093270110445629970806657738163589155105242454662487806546512999573915775759620191282176891970933036393207188631313358582340396740876611573721231328259074184150830931007601096238495163561657553683349650220751658829806875666647403316088641682729560035522992434647764058315077848565947747329803466238274848306289241148934415523811515745046609818191461299482364124704927176066743139059243837672336922198055854891718093262871268770931831351493533222091534292703305380634109994685288622669742405863362297580137067563311559972228305613205163215726647401852551795146034083096628177310789164178066857485279605906052270443891061182465748468020252679558278099758319558438532104584049726304165951906921035717506105063223561385407427223264142003009548971860565557432258658363821712846677654122564173040197316043058989489433744763639313319101569715371028182539764610882437990405884528468223074275662568506736848381669093728317880426674855999865932796882229843347774883355119242029489367363483802970627770906348411063848488563223096069577565787062483630633752196869435993142793685433946117735669063300604147770013846360853109744920914983022142056457292373236463895126715142349575485251647365370162416480946721212810318128052018315808309838771696786798959318001649098179039266113826037673205890204457732467606195369224795869084977651331657253131413221334541912214077150940143125552048765249249049588566493470622530350367675858349520105602781742219973246988729795601998359263926010452133350189703830925718722455515086254096116920272133136193261461761619010680519095382897564989931966262415216732893368879466506909641937990994506468872007627069115819852247569121543720448864237047062478743752807269621349085135844288569518186917853637973956921670694867819525712909668440263985760562519688620641899523624093245836923899600598738278508292760014114476461225143992228660439654121052154730285027582197084662496848279328223389454283143292903757100421325939636191014894967565622658832862897101971934672251784680713130607884475238673531469127556722266114484712502391575016529097454421272702165078766105011085421306478835153784007307291812921252937502652790023406889958509604222849249155408531815509604180354930078996682916953934239890694726398946077677180619424915538750884833053787363731092989186161468371616533924170290903912423916992251725597787964988241003386415597760391665240010135993539097138162768058600616137609992953560370163248602219718019095020133200210470423437463413645939631741174895087848124492495168464657662997513605416422219200951578614711496434793439498026087780712300007256543554862744648739798736924217530740679964141216203810631905993946944939967308169155576305466022582020471632781923662279970659362366165798268766775549785462527913862719431595473903049421035717004441937105224522751390143202099617048985176654525865314079835655957888249585527768246281435394532256159639760329599626737905221556256041784836241819826853849720020596356261713697910466480432443178802443976674584470201400575091409325453442689905632840332933119831219168282279294083913836201343210646321885761257625448301484258429919489057171456864153281721955878950013020452227042741075853337565242639824673837277793384280052026936243272011502801223163902400553059901808684947403275905455628866894768255496293568728684823207837895982371849569152631394687200064959629097390552702835656796452938431866202192831282548376406783176545156949651409350304726471904238368230841710419814430141375654687227162534742182722704339638095026177050861701161215342500876873539002508602138258717368419599094832898949936067043998927603295657778563012322308058439457814794154544388638309195463731368276647909736333330525302538742416894254862501515593356434575576811726446787519457739338252281656368716559652217910108805616426493661110973196583105925324684431111161827619064009578149148384496700207853660104643110647114513404130100811394126122396414817137614087249961476680500372421275973635863045189437474421228672029474179862683505142900445332475352426235967401712336595296571299683034002944787847480036676257253982650069029541891133213953978718222746842267663217555619972411221946323468538431689581237284303257134999559126108118228372427402810419939170731876262175741746548352479256819564922731260976898933633082622403219209425045195299013013720820890325849152121795780984603079998955649059949254745388293401947753822095213326652830431631128682557607390394057987919428608075116793718697994530148163374340751708565986382331850024856495232585407114362344000660163358595472939332390657889931395453529918552742532872562923029603736590019851043758319022129643675483839262847865461742850357597409455694283851166437764885509964727831056229872839980928457620527238127701273999124312660421867100818889885283494547120595658566286582266172339635630062250685761710146983315329349682291248701896458627517463924387770143488737230950246373121434960327252060307560843046678194704107050518693515773345555235318316202197987942642385265655552796562150173802218737039799459919487425042786075462596607212633588047824386800528013303522758152771763843399230699821613883767363652570252196023321320641363719116909981920893175223659544126233278605190364130353731377162929757468577405625128196912550579943319382616220377651702571891267558038788204696975259949469138045413140033399981339982708078457612023106090254284118894746461585520690154560567760354496242283296273745265975255558546822933401931902098446818579324670837485448361545112666848918395201300879328528776777232930586705049161735415871511296433565090925936468756058947853072964794921751548875228927899646892274875160000004556614950625119747067127820150654637308716448133568815303811573778472513188832568280272185940902629095024863994353684459959533369799110058512953437305166149125618621517262705982718708812551232054877225164998675518686840520947098247099247398291246857682953147664244171788980973185772146684505808599174175156903025538993740934236781610475507712041159445592505434129202630014106443295555490767852711046215555768581051856675457872378843929566370101130581986775551667337417888586736981091518048607611448529441099611039402776751483527168743573302191924297412238649098776230353996159478644327558921247482147205332585681922508096058627870054520124075004774079516176900846512299765247222900554453615306090009462276563907447396279473095998611987747244019861393627375449396614936777631192090265085950157342849677804386782008642266663732138057058114421519230175395440390906157007915235569495822140645937883711577328795661118717153272437622587941334824007851126812846586756366147558387393679531706134023187695140341669396599360428266621175773100432472833479897400873674737106041779735319504144451686572533188347747449421938280816988483662397498928084948406531501724162840138731226053681335735767966216801550501777474640346669385224002912495301589959667833705725127799587371757750295068840995237312085349894324736183478175788614207968452791542516623289555138775930645018876950831397941015818265868111175003372363376074091836322924015542536839400862797256656583177343745292308993197371613739899782553371590952494215541102559746425869980649793887505490814993878096610815357421519998986721196234648883766333045943143372416213498664368608449741380234229093602611417253782529063203806138162617713670199674481746824805367232919191092965449755114570578718962709197352248000872917707371733236000927217315119802264478377456147373414335161505944829294651413316093162006916909608813463986612534987421761494807569766761098861095390312038098055337504166553425080066758865093463384685949817969201378011909845249861397701586556465188197866227370024359971670739625194231765357946136625902518215063149684437908200210670562353984972378883044828386300848297228906289484546937632445103670556888148070282793307027169200068706408988603525459781363983606362683435661616292384255010287716337909294931751049556585420478433588760000382121125497434368394935004174537902723490149882206076139598790915847318992058336395464306498614348212302275121155996324037542699871033888516482091801453499874022546890150682562608574384194849493844837449445927873429364071472698059947597091744392759262437123315869228347143067537925520342247800152721692588327494402099964868251958539140865063904400871783577903184231085045978408003625901817578026789628906079280600925588941794991615124593049241238558474856316908469868574982602773134914221991699416083341731585202962053094056539378822555237613756395638257198340402610766785370531223647547194917559224400566739568219984180249737038057135089091255507089310546615058908580846513259129131593575148161018992128667624018788576976818507621235288883081319806460181912697580334337721111285771391821502029809910505845677791962983665573469249213186624806322236399197367535423172273482386383973287785161408328068118261992828714001048821425946064303565284976006343663297685376932480340599940730342507871343941429708909583226946336118939446128363950290560423789150281946705134334904724013167085686248916181071371321426763904456914281163937791359875210846489472995813017453768906464293632845883161782220047966545823406367593406994962363307523896538359747119740966677780147240655679477925440889917914193626928664257731414292044754214633435971340428045036493196695606525820743054192259204812184178747476896745416202082741630057555931250984068607470910218290111967368891878279406911716281853114695011687653636515720827631497366333833397696611431651502271547095973047055633370958238445505660583478001037947793827015148310628586222388880304534651614174986624665559324236557044687338510118772855924345288643180378674531165641385620097701766829310894478850662995007229094068470114603540275518027162047829415332238544303577006631489706921929278672350525565996408754493602846104339934137806207055860534377513452450983805794972568004618931684179448923984800114842126069936480716632679226015241071368643763624423653714043309938863899584917330941305068143203884642015103344154934324027540067995963703095982002889986868011069895083212919119594354078876060987971108079568587536017295459864414832939785066016986891788318644511361089518126454588683055119331106235861176108334707123528775247876078843218644599316480016312089533202453271671248543203849147169760110266555547736069301133235391831724799255188878173280797005343698319390583993014024649508392459674573792999886826961724097525437268835229190179432168603085160752749133551728050744079502000991217334393493856585100959426301100253511395905657947990485369760090706765377772430387162890658319240428409310246586839071079322586900633079647760977002806083603308062737519591124238715872618261329032229668962222805727015603429741779465543498369976398667434963971539382912312680653694290770414683586780732617386735747594090792364567392705174564247435154581279596652733975331587991923653141807964950575782730690381132639412734035400672519598401656535203704787193409122447970278702681215965767653143921187726692755959269093751312684921589358903035628549013191562835154924500456953124425905274797072150110078760863386863356586727791828617323675267357569150319065567289938018987871845852638469267018124199919650533369839363706377382007584017297323579909970725216450476721381254022829990745570254579257120247544870910394352242695629108818306868532316707637564652522603660628856460819820928434895300025854619158043779659398533846000593178480292845471248176189634452979482173909544188475054032498405453922775602374735254286014376308925890739786380287116287313393682453277807236034226740209399298029278370927500415794412261962946772521776603415403399518769767054148214466263903723966459006429936534882530664699159873532009266508634490607003546465410496449589367053829293404392266239518786873147871282479412621692053547108641140539221787842825194905047661048096104046827231499463781138157243346886643158373563717701820098887590173504240774726878056323783177941588125656219431644030324257274880736521330436221855971275090810254254942488477139138983536394289375750676685924321772990990066405004957360323292283718632744336135716024206855507427486963157169574054277251357461172672238271375083972626060841971419213867481058941962825256995790022001133290285545341367505074316214929195485029934745809500813482304377924952488091119392182187290813081494632444969796453109091883527475078602760870303691198360667186078025460729227846619567917532930387752772962169124021100175376291361115648345584189436116956368721473294823849855916000480121666065024988882267452164013223374614870994340970577092560649690512733956370900066677230707331888491709368841101263997074845447430772756504022439168447572488743919917557072217939169446310419643223259751958697706381684376424958004091805720859226622365920506520591986153933929183756180180007097747407820801466720862119114336701742715570554123118568908841401711096390046887585144295359827926998720933609447159460877842426944076256401621984277500343714689621342469907080910324853023515482196091551053127961049474528298021618182099116580545734385101021116923952991203828758912575635295313843170162501638351747076407919161467866986687767858879472386207106993876647096656090602896322173529515177293188052903120704721783579511382666476132725953898189555022040939493575589944091517252157088724506253983140114105879176587593094508211616843476539696304068179867141199387527843791931431581605025287108573728337300726003142483181741377193123399108796411411495914015867813094433084521834356384727407054343104868809005916440618474677342599510336046945009310848099250481363441041889136107642996683687180874357917030037054117413588419497663247241148056313016230374658666066178417151299342221859703210235833526071753506413660105019167441062521736586107485610427780284707367262682509512064270635421792195188501836987755457627222827021958396174157653340621638951120964098486463266296641250274047707253666148641965185679849370634303856520777865545029505569488929544752686270336398882803309295575772731357014222903383281478517904325953693376079040137996060689731586055186728094576021807948040823816093895173841778728642064095156283392180171671276244086814126828454497215354220323565315265743191988460126755541753407783219679709554568306141424904731900927809694016777219537835055586947049433327381450066495573247647993192152986861091379370464603716601686548281750253481571133492778773858332250433913893945818410247237369147167122659210347227116987435482362284489829376352768168280181963542933706330273008637980627225491478141162815502440616353656752712641630246933713887904813180634537276898334887270836050345800766734712604839376966891363867599889151392601238779513522407174658762789130144491441899121293751043827919344772767582380496803173944257957886614180847437499969219414835455326089128697863875296604914274911312252824074143136865709137614933860504634390501638902799985260048465059892257546915130560151183906381563788865441407909468771162893007401878038295176597029694950009666853917328354532241860519758891736351838640983996054850015003064222038163837244156472580659314757526180417628808113155562791854029917130125667248675043805119911632411488770425943546817885608182319885789278287226210118030737280696018836555107856971360667527653140398622818627133204384348630674991478156075477108861747467320897307832321339565166483268939543971828966631728579451165290424757403614691203469255327893048823734171719325956574626681618420879930537316876068463203417321938695083144353042189197554113909446473946828603984096019976922035674499894232176339431278387130763471756209445972026169717700237500103342840562520318173023860938057775156780942158895095782099059233477713442917989401797950826796051830989717067622164263524105072254987479618900974206890425846234916240738545739844271915699345546448248484354051988615913853409821051230366012303345729664619575010679320870714245793311564963419838900438986282254575879039993368593038449304760997000706457999187230757335602560903198557139738725829944261536002379173471870647634687486879503299821527068726899098944302834286257839795191703198562112466797856274956786854972044249146118161050436069176165594045713335043212194795036051880845410172474141616473134223562385463716373019012046378490312992203922729039342364734473308371552858054605460771354506280266482824697049822020690876114970601507811539915194596360850064015818579029530239777316605682319310383499905974670215499267223996620683612340856510905123468624858705300734432950492436991940321608210078717671341717350098129393535521639052596502781095022256824060597076050824003379359812256262285536268146179559813466808680548438090353493266135217719396534045991070698459704594025506390940360078937518216146689945036106858240408668142842927493755470358545530045382827850324166490934381707002308559514311901064232810829781678591467487334535425431694505814609650367703120382026363750269422387563491679674440519269132074657205257095593935014221085892771300899373720557220651372742907540841927594010495855485216863987708510373207420263810210482534335568163490759957897201580715980425823421599444126303353316672871137201669540888919362588924012173496395929334844538316936215727649131887956151093392071115863986172152616397205943255601961053402598312161720189416449788148486811131995545870019673144382839276801334972281220461959515871340890731328738373434116562472438100639388619210647413506667308187598946220794590725018343836176366235678651723907087351740558457559801560115949184914976240817244460016423504159482051572712332458373157253304958093324176022229746657266615527670589901189538082229341189780447645442357696392366167846095512509570357050962959184930894988376393200794947008360292863014277230677924336004956999902442075838793857554190009669287647472396511007754967781334662346124537813851968488235273556453983166821234367358676794894755356650095040864852794037610232337191594797939300652754134577500541193663346021521565614235071062206339945907647961754389417622120130422771319672386774986259679686253903367034809619094990406416628929607201014537230544937448788191659409608551375557132606982536758592891947294235974287957608938922240773121269987884957437971845795564131177403471161505398643767964846209689075641324810329603395632290335200676315653240054332932050271647795683650303537742647545235365703963060924282997004956502299032368647955401671449678164369324520990097879336046040611713452848652835056297338769625252273911451226082612724426478486744690151143902386509706285560304486009228718081248175832667500989151717162634100709161681652393502634750451062896359033893240091271956140087052279870528774825797023435745126995504779453941988236480642879119697182537764928317521438951796641767062413736976846590623530503275122246537281875292596991202938137460229909069043710252975597895986024707055270187663131697108368096904934383331077195421549720482448330300635972876486623633105415808727514256699280297326849549198342556586512025468924822176177992915878390982395975884046674083781520615278568842949414583998913492346580331344174046148427987516125365022461626541025607660408192766281112648563228831215006155105498847841704326539668572663732306804308835682823469694404498891395391924878238606094874321831221347639167613654759902441073246970147559302657656965658270442951368153163115473819391318873816917684346805719479250220233028516152751036865979202213918009930782895853489065531858784839833010310528065277042033541557354078492473039109771443650823969973336180483368600078669832602541297658273926059318366440466659911599302293941426178131257604068268751695893995749838788776023414633488903032711086355973382590083624967417003758202881371450244431918259905242683810512777842423213101549976440903173735330456887080142496707491924344333609896273788369698175255394255825263296048418478463892955187893694654396209127052329117537977006757816286051640758114765179627200672713765627576640241763703187694070598201674907818095753729254194327575203396906939681892683617333551341738660054643709045976984458437987751305224441968001028387482237839457137785113040555501502956557376795850172669858844826568381379490155209938194033985116350767713376643310801335784026801672805016910614207226502967443318873034596744089066128846152157698768633002479447803304627909730652411360976117698593760805640521955425114053373951172768213679021327706677249935795472637439940858209059097081851774536068387817940898262576977486996731568711521449061793753869709046206891034170134471177925043323073119187085323159205201249714254456993874824304779291035108258904923898523481194528532860805244874369641106832540416114009020979971876062940439192885379968451490511538811933696370002162929628192439515936459624998325136275362483846514287011770542708325909934931354816905760718428933509101847862418275151376465510106752225803580702633904267247087864226129079680412427291165188765727345639740675275650908322540960597454225804792971450752109423324703704127145187199168307297454703584061775180853597494455876415055516880273157606611663369372541632684086745221672808043854772482690776873808079078411017094824711275540968414217217038041754897828413582657569707292139553190626321044297690911313574287120142618183191954350898661248566813651170629026752926404916187982869865900276855650559971530448146969058321127942734537779548206171367268665255170742491872473200942679255227841620217214738111751424985669147606118906992196728756605404766125591912438237782826982550504980064772410035763976167691137368664207558725754300670169615395515707626404244294124449604050503131847142441658949956299697395864543622591752301738821096350162297482300754718650988104481196460750691146515335282901288469566248726903467075416500991743868115019973879798106363927211537535855005524889499413761359934747270926019039019924246735432659258434567561974794011740201189054145459669331686343460518763041362562035117428843645375420462112314979397017251996552322881852310110682894541604912030122996247409268927291984273408887843328680225007074192503426584650847738054982161287575032608945783630744707575840421984903362693997920047997487702287553184891589950548634426206415230241793013137898901953807727148081059073797327776672464265832535690168829446792681289277766693051600625542090604301029046026554989283187375758369821837568405596298227883690068622335127275032248600081544089985484717367787966399756786308819370598868904111366982648342658049974474497001666976926664086022067460285888467377952159449307963435456894162094192625941995572410631248780166585994098664061326439711793780424115345822750957049348002071218381933477613498144882267941332565629344531050287562130505060629348688701900730609306090086496489846895960590787193501533276655159158124707158984179099575328253803310532178952328698231822068259538491793618221965000347578211281205207408904656422311889364419992897867861796931379953622054043697273579240991339408744512339639559213551842817042958123865875754680858367381536675624576552843913234699488279883457551946546393256825465271517804639333628109111097944216954807170316106828339098683218059684324623999568075677402415793812389713510783971785586524418380832317114443071952721211855963153496227955149700399930067056987699445652164350499091606673503885363678185722345553632271073286838723525887611552309188770913318300001684438022225530967396810509169114254719551149892980630527607697658746824900959663959452691818052670290249117019629586756906191778213109149429354091797613928910516780130041522457904435979553324090108840082926595060586236477387803986800589366519724049032529078488026860046557126674629403625542285865340938791070648802861260834160454971334055908146554617057341173421402290269795565842832768146492208018245377219025316864455408777611476260084058117700470412261542578753088251518927362101865393905657408961526975979226708553650540670425463540606699457298458624201265619877504171863731162730704583457401389842981001080896442268152665603530736696391638155200122053905048329946165880804689892147639981755293863193036113978481905959662879938132605019693886893560978069762413540511852030985691791134771405461543632165162228561527647123515654441562249106304312744149539542330253935416599189596482119917352598576974196092524806160865029001368046688267226274016341281217607511929436023214121261590923143850335445011243717930839004447366280830707290575926996789244723812530552011622685167894435394204546408268015446682462545446000479030389683585973566751312938272366974097268284802238171217585864408150738258794256478550402537388997830848116655944859502639880498838854177600155153640824095886537336301578773540020609422203233799593551868377853199221695872793237946876879363094931637027760242383599037092670022377388105514128287551450106579290670271457993770326221448234236033771096870106439722945605800976731763971691474048220255485283854410825156311799340556134802532396184981102879860899509398102395715474144923396919116057389869028335109748904840372384440618199560053132813418389315162050212675677956264680935100675187616543285758767623097466395184371120890991545174693922716550284242804138272246672062536872867199245233911947015713632681994607896167219536103630750343742004591025682852484211852940152822201178518638356884106742832009732429687766511416526049345333777966702513934254104501868444661167875118198084901756527526665251072268143294248284618632880917846111520672494795978305819980805883403741692157169014463511841428140894625517077173175557287234339299763493746151446189941296344324120768372360214509485887073972582684527156475142775390973636180309931771868952753049041199925917892272573407916682529466082558759022820879849850762181579131008118305577498704654136033483228469077996830055708042096307671310957343599328934492108458091179424213905172049338749407714582100529015451331617730901394748464765363343148087183070472972733587389299268081166445239462897996289193635976214912130234685101119816432535064264360339401200404172105689709680036668329087502556407977211153638316523439135836412411744055295100450465689888842842325139170026167229417845639656801210874278000454922872705067476541111130472522408019914761935887398158376517419379656683098739676395763276370575085127083593534879778185625268121263039447551213717079856918664906211425132545934122306469222217330305031191177361574142656162431144806847130841078219450272533773938979240529431246711602347096438988954062504662259596399779707749035388706586603250040880591677718400841264829761814271417826752822041438477007182578979094725194742474298720231195078334778897344552568242851411130212584209292731990206197161446924495361707377703212168114086672395521258825363765650911523297819877790673547864233122426758537796954848377234457284295717669337759591492529912254079937357532708490155467395110123452631695733856319961727498521312170048118501985251868246845839828042030309515234404258669817909389660673286437371144142585995185063135740234890116865835243064746026582951272705057047467162352005210051099249921030690136742113386509965980838680995399817908735812884975050324419768870676376622803116917089634539584359962774646111696722862711904181253287197448831079376546510443293618347609914261503961171502268033117239371621919763443770465942571791938820068929673266178439578920771618243822449823951599337972812777905609857000364375815200067251537685941430999883344803934160452223097243468052021297510018137718750252742489708837750583071943504386042312037011844631502739497592267604655240784763560371225528149367370578667930912377150635404787702774840913789302235346148060176346476064639685314059213530872120519722090989560722767010769716861423986963671659734710130472313797339237503216735193013885889040044808526244088553699318787814494713843493297015687965353642004994461961016320312093436002284015251785181179710718620952516175903376903748707224515836764079730834782668324068688732266059849881538505765693937550598464203901371648985181590834448450262868968253823526092306567661003690272728310100805742206954238671153113204279906371916804897200936640249299112465374432841129342948056967654779647409655720078920017994577088968787897607820025996495665474846325845629196707519753642522067372424432591635573703494813690186467341922315196388336361352239234077085608623330046123643407584729894596104663450761324084416145121011495536530489449642881675075584499622335774913180601852070831105307399416981224252491658795934163559490888679244440814384997432521520982769804592489470698447024586093397215855182818778165320705571536072715491902461890774401688679452355331095249237772210038375421821537617500034207672736271890902576512800886313619743552352341316777815295492946748479292181697883041246910723642281243241390270123856501758549517258191103491194562823725262523549455942082075715323746427095015454249101453314848234293392472738509618666362452810177999035005676349704183053797933042257788684218619643611021176250110812162003279356239834947221713730858630395248108276707752093856923328860629273869401793234445907460887241666478730872471350682616160772320207712985906419810534098125089615164229286362404948676940969093661609936893490723315736416598320636669210302231234930034328238865890424852926616489501436583951126739410999154090659139100627313697085850201578817899000407800287060902604920987844025214309932407784203266955302136938196324090917746991316350235089430446365473594146165476735569470489776245401114329933945113044425534517079983514522530586887177286735567245754651307765956170878925113926627738312870687311947808459900221742718522499667397709086373127182443199922730621644258566282803318126303669151313277540027050278445439827124169535852889527619095611537110642766855924790123278445816334066840978021757009271357218771442398070664856078613742945469039647484659521177773761785674785167708452507457106434389927459277908461351786893102488041357469384874900389606037131235092045979165489144937862618585263189920909197562093820796729387436814921874717874774349374535644695927997296706003204451920886255546717058933764063950060843909650394546990907138057810849191610032168787527811933699057712370912144031747477987543260778154770438736153103291872068211801001253090412883116423316037261732506035149406492200530841872818919645919428583384062003031168045101646682173405496609903335416853852448273459872952999630388411863836691582493636555101290054782936055534612968356125400715661315190453666607837142113632057708902670806863176240088254342411958950848956412538782008843653129419111268391637345146620599021096301288793407124405452565841076972041326182241367725481913468109745936299305420609406143135525634662925159526965352907741883266340948019066431890066972397894649319386717530756451965474098543140649586167003585765959467460594086913555904312601402256405520438669965382203316435809883050998540324050081919443011123150141136192948304884424422207852060520855897374016888390390612014764831295209874442608394158222078901581090992266457899720890611036462790112442841179819746933628910478810938282820905834022153393894972302713051035941258916217072175848903548490725152264919214759886078046684025418790495177519924100946784233196353633725971796797742517791281912334382563794710987996124279407356417863143533369408182190712807148678523538043783846905065476042552215399312103775451541965492330475432586326825581705223015423174330123097106083378524448219220676081455411564138103222187743859105723557183953805746887192157551960764270187598216473408956031943765944147980443369840477195179151376476683491574174213209743590827521625253794154813830362354053286016190305857795659157369309397674512804759327925484458403536557535231355748489951327572698406348362511451797543497808171859876644575539005133455057668775607966902803730801095649414994011539880561719048648827074175532155468793207421973802230013805694744338515032398742226069136440880607429584571268273792920868701789847788737233826528808989471172028375531412809567603120474428943145474815519912789415728772438708965872772666463021304677912041822122398247580020735686288103296199782625025933443405266347427266098763820093499430108150481372946183878640857036502273843379602288442964345580095766746920431032600163512983470928138110366341966252569213343407942383160753659639421774506736951692589972313398160052209914467089311896556074917261346523386444795398304467314823314201326571284900847753629128645761471294244241002418487471653817387572289906151173797799993539654370797808189953407789771724143547333342396479017907993913374650481393825932374378473983252457015016772335853129134042239855791092688451414502483278335112282642955183354622326844231419625613668358805740010062157162540840498797532094483586906793601860466570482911556650152985833605453689710902859520821585819445709185856316612577440921942982797126087912434224688465262543754053752585002290126252314326868299874073650410295734495645712220840553942283967762466057859830672635274580384221922659963535608885720393376183897367001873984407713210724204293821524889310112980106388912092427553254909855152775346913636066340805606159630541647027982930152400519040619966936353622359120282601363646627213323402789989350732962977180998705808951413059392748336893200349894069751074427071334552088771668816477268169143889053822314078750431480157251262830017281626608354331024596008695715304257015413359755544353569342104016180658898753651283435541806352283854561535747993395026535924316143684119001369516829789467152576237042226883337953998988733891185338751601999152558328580881024915426627033275822680394661584713771673621940769916190652046533768543532497806944561372569964364122343321100739047156323795331804426228505386106766755232875011848106510124349897678529648121452944432031920478964461320542999347977843115701452445468415937316349725569604694945319014091391055613017503139018027752739693867482289519120315657463702273537888188989263162026568113532331576612807966907111740265956681879307769730811653694562641922413231566635535750472381651746222120305924202469933808658029718194283135183221082030335522133673738918452855370567113281058671521944051780765309613772045334453173014418163559663385187243243750463375447095452095260536192135330171308545055954040910824831113378473458022545620898127934612362343802674739685180937308027645740790293337466136647235692148854658851898494398488730683380197785392394640148459382429603985402422620726885530658747278862439296596961248986876665575093768976685143489554146552355950299453122330083132278651169527462774855184136023444489237154762030918622872302721229440216192472888203840982810852187493656259744208386676566910983370258033215202778760381524568790497854620127269537413349471842269589201778927235859383641667630959008745570605801369204847087923892556164112049841091323722002307661756694712517892382319526838629345077863732120953395721457353919526403730364644362743949079019422268544147211934592813547463778089988483880766442433452287691015966950576993388395451924301800725918922940751485762117672194546352794639427472179784061634480121167686279448495001436821942996616156405155968676685280484875131162144846588795047812294319040070940882535029487090384913091100129377060359931873566670055844493637451679943634540794938523245590216171128597536650959009047329487392358116518063303124689092894185375981951352993629521390308499928508423836562076247239214379672598958414572245546479356726575489245446209889895319324366217005724457962129935519227204750101377836959545951513878114588093129530201282718303725653204522225133295644131778275713942560399779744358023113613222264017163503295405609927202039948386513719379127803619425069280607773831175039858532662193941999021393551547581628660160033731292575867481028158935551761440173083713710657169216409645010969593006131610142090636851390100288304462657966107319466156977765430121832217441034345857077088551867859398705875816159865515753270500967286427653002368421976676981765941577921798018019749150070199284382984623895207263865848616531819087678546586469962860856922678844438558212093944772417277779691908355026624046993665223551954308355765042912351454139032306325926853680778010743450319308122838617374870399148183533484280283029451891295338531692567991200695988924715312887246679472579609476883347462232195518053606509290133097628831278862323290286902213475223378860409661971104881289176534835522565398052634450757226978310768979863549720701505299442183023700908530388047724999157408102139000409589484904268938982654765976269579271126955985198463172505822964295248971873104239214588898295171605437575410898280994791697552386366670018078340057588440855056839671627021116092237436866507212841028997037413832272301377943335700443155235054700673816304387078419123519825498652633586154960248040845832912082135737523032609253057142812221850761106013233695368473033397576653927100780247045152641627273073311589705483686436290660998133858409978502368252223794756948096933352303395468635849132536993142300305830533250638581638059669640540523441017964771941903469801560986329918280942779619157911360562609699752537749562385147156293550411469028565169135795852144043148790009327857011195594587458526491455025310373371889197755757796882111181725227626338107346270625123167383997516956875637982037407048555420768362910273449420234557732665349573599989829409722490208878870638066831430238381563892780245373534513201701428887875552596952948847913921684453435096793234604088194415687701401827893113841245968381123786356427894095494825289806930729656962818476165026834362146111123862964081659947203959123694072841115797982772947166350184968848449317636829902079195381821523587700265073904736926309171410193962552974233411291282612139853662808603998169560231281262269823829897935108194308485966800767480977009841171310169989623747919888423406061151451686808903893691291960478570946080803100077394801386527467674406855805936300101906109902953771086480261975509264108258727372266053623890580532090453241950469917734573748948286219240858187087604982863879359074206659241617112724313304619317141796431395837496446075069608224348010667686065383127148841226637716464729467274095568329077259723326948091744027000578066097208212515185580789014972937578163765980390884306637654950546271372487697049622055742511238454151979066963582006398694185327265418858159018840458997499571279700775513451873879497306986916557591606228908802748518623747719701698981378630452959764089198780584421100794534994678321842509992736945290551806664113091891295774944177754111615467678955178964852258112984887788629080355084318320467570177017091132555219986051311161103917793060329182181282089880342770701819224771348728171464387005475675425552875290798600923189098808899602821728378881067035681803886221678571542785453326180243001983616244449369880553680016900673278481934641662090296833527568751911871987672628762251501143189974826069546608840920365572474706179236588127862482048146479758605077612180584414922926876795586856428670458360382293342655166365801907573898784709617643160825065281818745391030431203439031691678348151351449316353294631360124905800477384069378563467219539294172123200671591906140532053223994081481187176756941491041052833998648094145212598700085588730750938395801989790871636907071889642158705021256025283215250696232395028874204598106825691511254503913043790805114620384907910364806034921846374907595754241054424055083628901311706382300630675298692446559181543141821349497694793288714794632186141783206323138370589637512053813804911922508145986291807458230089959700657217135387343437902128546607891234758489250063139639195633282385089617310108393758357303249253637148900081897278919494412122832935452409768526142606961693858741594651908495571974872691791458969824687527733163863374596546615913613422308440550201412874807057685221660394598821374822831578470461711363248942788031541784589405786390103715656331562604522507000332162901386005497542017768683759849490865722598668071801859612548123849678861562862579930633748832231296059360958056245674670318901966939188824707817523821279236667732069569233325809213441607294483296887150552654895799223198423562876655197230102675746806493575749883768268045896484195564167271017735834720817191577871204829733410354064282544003706851672591680633027464402020786369922337746524126122921544317644730133774454664790020407668791876991142822017810739021282476149877251130986399058512482978339185211945935771646880137111614139547592889114216188693152528981671181600307015721126296480179334547037657949163039684644832512259241965845329453412233885717768805963844516283791860909546435829418580460611696432295019827141254696571629798918700325955296991590234210237557099019221911195398437511424688575929342680242150954638395709693397754242094016316878762434811751042411192706609282610081415138766094569887946031924859605986070819216450049821865733668593790374880824106037308909462153836286987387049762042649002885428547509504786207950166766566751509456559071748633463147365105873237284525336636759143371086820390312752676474709367474543983955054283619978599923960753490323759012000886593604441516219319284153225784620129303354451510411486409315772618137970683277628366843896537748238244737987388283333718214511507620528800156898857473200393539078725547249450084958419329802549760181586764630660751180751912386294841077090806739684143939544991028712269068511371714768446466248336395817009701453457966156661238443978067847018561415570581682780618476497052343438001307370374298694210602972471464535735664799851939935553136819505341528670914129275880572787349399123923735104924634549255176588745638437314504664627720808492386342432948516193515752985264478859746879141037168194344630999899501382737103034105613334364399868201223794206735508023590181226311291536611037368566434549875905485495867772729027631073914958774968226781064201500947716034388344357360353226642975888358502875206480094660752369950956670938440037938735198120740268888643293661405814686342739381466871694436597105402068328652017397909108439534815875320849737629705212592705174349680067111957714395163002460080698792067886763591796058043146291158775762968346766247560339001587813864487904101578153228627730645988478075708613646400249701431940915495823124114632414015427644142149276929903277877389584445705199200819415458829027605964233074972235272559602283570700632849378601867018370971199648269223792356258535245766802680491038105007600115192049420918409955412230508765524162839566096960611417888554061430526028255502738891280268462370923234407029352651162881048040574610373013549866654764458883008731770823829075450163035534638790584949954338397804058884005123049490507386255445169072807974274549521207903089626351396610372750222289305072258377227732200357550166316516392091096764291583681296252175566844612779730679861689016579724036411167036759319533099270506085769010868263061712077858822153525854780086812101240825234675131377359499161639267118055856787117962921431982446159981911548194632481522860177536846750179227476385528676640019440196482525513572259955408351667268457775914157410810611821847434150389904423882596760273349065607764287120351955815952311213142588478744438903386863523550366921111619270121449602225220283042979637384469278473197104077924927802660709838634069725476395320012868780208531860895997264581956440102100937187496385141300939846331031618480513117069482657772186397199801527755041393751317618498577242626167129503897740351514842680485001279258191837992796745077757248868816265775300990836798524081367292085929593994028623951040003059677281317151873802331068445996811852540335523207742000981997093829173998880293884028287672902942953387079754792241507590553989695646694061328255497730722816659993514092015454350210697899521977043346500019498785959335174122293572605776847214466045366254197435224556497991090730228375466597500000731122293269179932161378947466896105213613919313903340223169831023146677986787314358969290104475747283234329482027549365524635713729195410777692555408357700585780273851711442590906489228196376942304713752836588007260651650897894445340305762473504072666314320532210896776914705713627628383050103726902526861832540488168634140977566652850299349613556358536967587795150037575994722435055047703290459240219876306058711114520707598055391299629725107331663238211694354039083929237227996169337104614355415260511029845640118305993692049172299907075950306804784038580277461181439301731437860777042509371198626784549366896607896457219023642620678845967867304241441694500464548006693218942111016118007917356065259242293007248300439241020208526226799202034563199056320483252197833468995375589361237712973188082142140777633659126236433100464294965767529465399974582026877158501213949370330413647297540960131171471802574593739098954205333605543964750546529361988060276717096909069648333227222480775968633837719624180125614293300398656976795200860047572103288366640424672054875358973411132693435919869454672702562959312121395748626543156735947008504303223668380843717634485405876340563355833631901866761686451245117569077142435165725503315875004039492424634676736362476076480495860482490229556216179880202764671267390050553135944090134036637672580586112870636771629006325336875532083697190322427185800392965069048894448644444840776032994954358843937207252463373790961859998271279436010770823364556876327661297416917623015572782622612396922949535617904713064216017535060897114678005496776423933590966709466854057409632850942994637579025856225079362262930095750700732443756748734516428949551615144060967242750279858807813570129346496466951059026330081092184488788774287488456992978091472938187878989517547954154283011522608699091986762343992485745998920303211956214401903205314079076707114582395742523347360309154455725124890503456658315914841465560768984372198090609470077884354128598303257403516794266563213852399656480089386380069490138290530184215207463564562096658890019338358898193346912768971276545338979554198182745085787535661096966447422991938784598104368304416335338705027278228559944044118860816216538933071490025275194161287260281453851619751382600708795643487696375834304861708671747474767986435322133693400617562717394307160312629602099490416066226452072117080781345702683886435536323718171206299579855351649552043069460710207141718598097305165896794772465093843656528037049428022769150606989951208593308273498654557770599181104421196116602725772669640738195493231599958404309408524665789745184106285581567398719055457223269811117036674003113418354384499399510457907370621459220399593282134327062051247534264017888855195367365667681961095999837692036645010225167299304685206603615302715733032435580514555307754486851683980578808748817027288569002039056066455831629025861077674918428591672697075401563727125933745398131876882706045187420484925657920125995926428667241055250255989480285106729597954948664049917981276097931367699019202402631221110661172786396324698577304983136498619866729428214661281795010850546875069341009641451173740401080157265179245614620994710654537758091326542832686774040251634602346330534359576288921606244860813000571725133298896616241902638566298578505920532349097672728296330600443219478191787552578062278097432292119210081224429226561354472358381339243304836270764512855924989758732693500159988080470605215053639108844670113687571104203045370936080821783500932628196979442104272932144317459047085448297348206049776664369980286679073407568006589207704349637234584819112801594266837292476243435125045134673585192157625025430804413705681824961683278063377897227139679615254352603869933132920494681930589896148205614506755697188886167692673302840750854029620816923064640843905390798632226920441796159240902142078721921046186996127865619893381498945709801699075587430919904467810765006157010553307213410452470807789967788448065937049933994850690370647971532971116021136970092825961114743063561116957603966328679922143427801438327828311713232668185670528861892102429738826616307923417329575223878997829878907968010856510744139005572837581964096054584821274441737391838267926938719822524747723308557249982056325160767342716301152702782175543536324107286196794628991731894447606604449337953133476729163844687828942177569959255675312235027583412148157689850102413238602809268514110116294282073367413553130507651989847546923265893535343559628881338540978237249518289344923780738908045453028195401881600272149090661218699756070744918336117836286487826538612123566098786839842807750223437061731475402058119047281811495091393684174920753928184006112375120280724138272395348297850519946120865030151168063927380767140690101202490252887470769722176177338765876893830202700540308219978611226906831001743054243200382422753858442068058933367194887263071669458557596268085316279083292361739961284421372568583639600119954064948478215693279022792299371508948356277705360644726602986229329125237917592369726748752043618530112836727569602864703863920858857074312266769386757483024867433141430557788436891607242720707129547599340928128032637635045204048373043333304886953962294214082574588455100078353265039537964634008749375363341247370673804140038484496368998772340057879184358827024174405339354643892622027058539274179437427850859057877643586458705659066473906660726673206826330444635968944234063438765970734747838506664090862883195752108410201115636562599933516689649956306891133593984542853136896215953532963412780203817415107650577534255660365039739083191468774386714471650495313951981139326709682867643499643879335806265776389379578337366983595675175282382191524498228694839974187715655577083075322685164358064657482095642919069661812565074122453391858803727410082044773462810868003233581519943124539137185332462145513205736881888905231444510408144436422584453409372926397530857225143007262238145110869058609743667321576323479866003712893308613619052378840974365525859789714432674481071453262158404169729206807349455885091485504219696831293423796804829948158684658142173075184714904294210115600268856306699163946054472055281761188604309056456959625209484904772943357694935954289757731922710126370084958692328859330356941259733779860707351259124625752907456994588255398133967391557759233106127674730849327746203560707089594639252608122874415958891233104272515690627100490078788958911616378019205403457697818071097030732416963386617004642951660403250246647449637322433202206649072581180263666583173320182542989659565305310708065661538067978892610197628174819582356847016442307686412050626008193866086469917025537468779003556326150560072804123064397884464819986642740836794277357744103783687833743420902387933032934336358119852702873569384681197436921442522925918554642619695065464901129827056134827508628148981099727118218564265058219397106541975162544455658702644795070551363206568748960921260958565114489814456005564762168512800689810686311553879048828578058378721919456492588670880289064547327992527611645327250426110384679266640657628647772490754169528124739884075087035048594733154329424510980191407506735213809140420983658704095856355087900035184406908245237910521340613227963470500447527896545206628810467482201214352185675892506354294040868100761057107940518388463919414548536208254237547480610392265248229124907201952664476240866823607735447898597178419214536739947572540594763063735710149579605704454063245907661959079823638722722768492606417558361010283095078603717696977289502562654103610347985918735043608552489275795215630483251087895320609651456306638777876014975037014598444041892354901657469952342991015393698307915622478055855263356659382687369973875565780114074102088551759602001749732174404101281947607125896850274209514210630690925612845249104428469160181069377529238880205545048622254972151873265189371512828303126464344675378063474759624315350686828840590381760620432397361592191504714831322040870529665414251519760415645840268683027884693120989410220988057777076237066604353569177964774478006253639981133906189823425082250104476118836046457240855393172107642534252302911388496947614024069737937560640134899083983350714103579999694518637111114782614274793719731803588003721676368363961868193874279429504346506239045652802699540920920992719760770159402232159286404595847132732638570237126700745945704230299808844476382524696714895647634256101489595003533206484447679964007403142364592302835594873369336401375195356738093576948370082546974473706118628350092750893603611453976767029006218382388679340634402063324385634208102443188484319120059902184892477358835894869222196220098941921720906096554705378155809682120172611241444302564176856644393644360330751751862526813411719444599224883725177765030693045875858210700701809864139840877366846127932644041577128940788014719286897323277698071094702070802582430945169594334758505501347611588046645534230708165775427062142361327363985753917086011621817276226525556584816188769942716359063213843775252853445771344716348539993788901260704478722679792646087705826938744703092138244613732355055332144672818812890068921724589358605699167102302765590933073198068649637810403740785527724911259928715743927035186403623470895246121933680539154967783909268834127017047078698942563960469503358502726580005059647896360806247577418544446491507377765291770043320816119356950772056513264870296237457624009169477875589355191247175077733874571110478041100779603992478499615126229640365497872252630714414338492018852383260780583049767909287038875102528492691248563090628651345472938066046454461645272965161619666374984071259172252378451487724732376168771443034364322513387874084697937767700993051651036113322175732037098776181995362315650877301076878630408055109805154057327471116826092621399204508102567782400393805112334943767853331216571897487040640646464524530283350973168866433741570932324263472368006418916247604298112209656240352714656636430390325697263008607149302473003558692988707867459289684079553731417791423733315506563570657280495764073468805801690952788843793057015099681730108772938158284073553416853448334829413338210920226592755619757111312908645780930705177616247674481049396669902177311675429434495884002364230788852150206978291251984503751752021587434186266239499210114458289910037230905576292353456693068845941843103522681041667450623341236507487814339482215102086734645768840997414801045914658566898104936521646631623483293857544569009581960291658943253105031416222439783360358399429496904591497933465061950392747267758523044816979238696850861809319071272803802153160256567648246175042136583369137777752605712144988239827003953611649808116801307718115579516272195947990432910603942951341356284149158723435150008611694273284314563834674575518486032528232446804576905050727663947217363496927608538174813895233755397135840914539266381521412237403387251424948454639691590113267026593087552362018397564098970909324983159905175844750965610848575379871475429781453517190344419217821898969138534537812610494501798491619298325227482293399022121800748549924028083030337468277273690635738971001415439946763436165983811290532826495117300354758574679117451278824905043790903298143085657339182664712566858556389254465232207744718144909152241884392082888931864811969229756044723701100407176819866268047673129299809854343213092776919921909266873064709759264661586267246536032456732865526128591578553083590950607672044133874914029661145270053955114368248780944710828601700816573366892510645130882886615345932934847157954271230923507482831872507723926259208034018625080272748997604972090126903134585750331703679495784986868069515467900463116197777960680072272509970571764048424792714368783406198769400209987152335033804096677459378604052192397051924000369445254193609100240428329943502956677136490422285175775189914206423042526301884979614943438834313334206745843556036851213453147138612616794832671103357316517280305912479007346695147076526915227467766625398483190161420359762058836082610367147603413311592020945475762559737998926161682180224679349928959698717082574647391195126095820728857324686943251592874997959734007768326081196249496408051436725260742662024041518021074492342266711636152626416195470152907950486818225266819646193342099798741512723312396366773122465163696474343388786936475868516320272531437815814166834942079566532973760037485359714829111547409129621672093846709791668664926600598600748135247324647376552704291637756788356910705542636731098899936306724830358619492277297027635029505053454781294297533830513224884593031233328639790576399728825129908264497691080795525671561296515361884275520732524274706944542358807577946236351481093799341246015646711231361480790553966876044502402874530167007714717578808641623677989381163133800093280128965471367626477859158439694836378814099327372829743176012068775083325425985196061931786810338278955935396776535696765590805419815843633426146252805694797758810837607106084639272691634969769553099069582091420456344442217020706923028216277799947650009292429257063769796989155825623944229295390229646766948964511497697039806700793872473683969399382450286809805723264630936262524204241333383618677454275670031125285189821816526525656187495267392831353354891109896536180320284054832100495801273937331714373815001800486754004935424443460746090062619820035185966594275414644840814267941758942151807549199340712209617728577576150067787943777886833589758114526307758280967336763569460041759448411618184825395288752562849599537079880257728678074426228376520084076875915210324282301727578693304043529039433097678853487619329771092507401012909785866354278787648867520036339134431885605358567520228053624926306639066322957207707553838827039089451236350179437164704453865359122085115372306886101175692035253622229692429904593414398982591777517037649740431697716512249281940616142363644810682067229991625694513423401771807750630819246475893689403455879645938443761439365149561408068291856280899786851065900809843923600049984913745270749622757380706447370527153850869872215522148226599265918342559363564218753485419712447058694947569079734957996380651045771168485506011518478861299248835697622405162092860425351018519929247020109505930134538973491537049612112850307156545172189091960127016437217543028434906299464959939141170763491026141687143742189475762226366396840945820852970944188230323994648162345904332293859511662785785123380726427702176242405374894500074260019547238428325836843577761226435171702718163684440986489497328065335077767458266810125738620690249144290783498003019292227090419667996040916532323680946775950826725520288223709832047360097581798543926805954104927906779783991279115809267076878075661814356945415291028566326477012661260800969467945071704865412201071084115265721028163638905849802813247042650366972563102620071506329956074007170500867797063974800396793372743191006463929286301380106809570662875036978101238992625802975062925517165481200830895718133993443433771442603438629431397189174348773956321031933808584789626900459312228768368710310606829502472449176990732853746452108222682101897811697459757180514324202951543440006926626641882122265350754334130256640231844166580422530862911240882993957348820815908570427047184423741158267999333089112592659289312344827472791168844185521758465916751004045515671736847055392194364571836429863427459459367017195361727143537261555267044734585660205250988592483696925660901543117668404422929888834189227135816632626713910962330155476451218940363849334901409889618344585825411048009259086069017908376054235431221798698039836561273744871870576524990206010211794825657625396604594652927138953441363180474486032221604059835946961012048462889014541918345957111391049823649152529241037797405076191566603888882894114758322615942440816257780745584240943857046551552716046861255829772710262050527305464943253221688171099370604640496762703516602152690976044246506414077940534877686382418324414162190243021787609179462386570566104850870738028182705824575712560167926911794678785686024875909016542088734776467130665334769742060836663617338593647160663650558444490697074818726848809441658771436823646259073992551764899107284742144227971196884363128988452994261647744926204264182484075872323395651937282056874939910384406413916808538721192648760174962686527176430268791289687603978672290242310314680526854152036755610898323223847324120654558783641687502588858648025236385839286011074603912368863335671547917504977408753692425415554582509799971428114621437313587886698868101730735046184802231239021184055755445310754619034202106991639162274446327958683613914556830083980706121549271050322053514981976960347701765002602646686838791882584292305541805279161679719118185707897908954868500657470011170636927548695597054665134186607482484336247731708982899398721285846572231332772573258032687091758456668406681391300477135461389849093878864887475179105733516950130885038995296481299450347501762914606796827927342652852316695121790867635559613855792374170753110688905560506717316774737333788617135330139822349092209623790808397280778846151834661864546981892388632151352998015156754956040274289243753616167160528478899813666799569054224728096616229612713742495027354275010578984682533065103981389027547552383226309416704035912523323152561725982522338966036509013189253049108546169237136007207570207001351829576416459413351224974938685624446242001461155110191756927206121880699568880580395532591201967232436135443470012049567196872988093913232243522491204273446121680295043331179111062576426929658669812058395131238352963980122343986729895097775638416286954919326106781395789160124944755555044847341718757632773428143900826601543166844470074001498261658605599783568473329986174854154056349757214790588481925956936702304455933004439974873407483946887906042341408925169657133078205034827474380427766119620392548312997709417767328265112799884530911801400614824901437428718911471679229143367603660510296457545463841733302164193572580831836941565340099100995041439300928381503432409783291538960556519372151935068654679170124238334988529925176563347364461467139566200851192002939646615705438311972847923337091472259304605594759808405033200982451325097629795009667171213509853726251572677705221395352205182422248161095155368766644937159152124099913950107477359627335268793791580754806683086760261573205839981171705561963094605475069952872303426194553491717303092301095878455336710562853097157086629204877605837609272256670722444830123618726814473554584151859551472919469792115241347037368437797170431879544803122107177710810803870212057281601322069804132719550376811793162429772307013584422290645407038022996447554722387671644123359729853027142136584612277143344841970265274630236751053718597349753586645913563331973405934626460636707840455780036323430687093863681351796296819713199764241449617558742947081520258492818720216588839698113668712164010391313612717241089951501331066305068238736819015352319875027947853135400073805483739570456573782028617349614447993476402579835194587113772450534532920720497212948643421558637145968836699383273918637316228665066750822135185526190556949834683957319017803625662128480447039517072999581485148461110761335060120388166896871283867849688750069291823778878007655060267876705098189315600885654168818273169374790786908675167399534911814251677917862887434202089029478794045538871235283824987647152612049797782938637228311743820308256555001598068272623421146212872639278067652772155883539862970950612669297239884576825676999960945376292364866863478542591751256293444875902727816619633172416044078539227476110206283686167706438158361228496900015727949706965352010781074341776888497382391931147267880714647824919582664493297949182330646038501531481893448150052250271013851637931318018945950874888259230410663228479183769836348303168768533652018068718223412050172154738655357031505523965742331793365476862744591313713815672716245550325230106137596947154475841107681926039857540408507570270192379405723848860368553823153210857210250182912797637564227482586022079421437849685109863664880325509867962806471622609373541653762526042896319552200062978312670879258028986519277557479122392004868826512901289509441766479087975483181784784217895541835576028260048296483921467904010372632624390418688653710091833947388901600365759661612470279920938594829966624914912201744145881873219398132543577409965737574439530884767039264175510872403047465024657237925164306158846240064307207223778651475440844071697863344124897632960960183893882857118301114099284082098996116102576521950358022805950553766366693750563678712445313621194072752686757670731649645812791971291106795377395245767708604590622153554254205732497398785376114306938325115299947987966996992347747790739693547922463732293015118840411216616641693395950656977778819344506844376981032398054241565510989486073004918567325433169897278475615470110608247820805951432565057408984351170758360864609871935552882826109841198730594032958124719370679215615631378943780740841895634252702169466997423778679855913921768168499552532356530951969845479387262244372454121450406596505181313081037141877149615482806824415076278738574107645152554530021029486335937560184057424780034851302554826528705204328081234887161724410155661081225884050398328239015454469409296164287845620151085436086989346676755031434203763260561585616068651837843076370595162474837796909103448567217636980314994038699389930800864174960541036592977931937796755945544722564102495063135558742651095632683442192114094290962650597094559239071779828404857695607146962905463746497025177589038999415107003368095747446191437756577200660832156454876659639145133877294580439861475828208271166898161701694926313513328935881202535014304210112451691185739117522035828151867504859517412410399668840543744914300357423558835310033459101620904078311996121640825584755339402465239623786121809076867702109056009503527285335250758839077433171923905051368052791065366738965995724778036460888283498195965757829249521199102050981221531915926523210919947266502473121144582982411004716591287341139909842838551619897852383560539999484156143942591480969723172083627287917031274133732592158294611610271211437704624643096541302057879043178627029074659209472345990530087873045250646585575617396544066964599894475258594912408690941504916991289184181215281998654457971532021872370562356497839265172227037041716543671098641032882967911393183214868959950013330710373502115709293759751933246858482852979433208846953778201538559000199614274237695062460817674299741315518764634598544631154314360460954154796446533964520122076828598352958352261398299548065169803652967101698857613196282612060522609515623150904312556155031476186392298827377042155261028130245561994054151146924972176198380337757234615513558866416105166731444179607149480125507255149991093031492304006629084017838535794708746841069895196981411059298074138677973299973436616579159257451283694734649687450858872398382012990662888842472221714355869779764292727750195427957292005912683439136737604492014917624136818910711888793108643428853824759814971616117280192349086790436913548565216278701683014981463503137680461864575367496521569861981063130213579298438801602791067639561950556755377025877053483284516128381991043802233440936940711788811653259687415489818707074639969367310243727133298857231097614189668385168328257286879537401650318506329700795041401743635030826544017456118072145561445981132574413249984440297256905317564625190429879176351902679234226491911535034057268984409511405961693568818962843178122706608795758487017792617190824548875438308212271411351560950982299390125068213083711409450878977691247659904359501755130895060153877358392997683700517754744983026574574370773263274825437143563198697947511124974800236317716017161665440357086874250914852410473719463972942238286183658205592321926745424527653715925518612330297664092019478131409678668006032177099445725976763081465305587240091525994824947034761090177630074625574728534931517874772038222776927496824708899523500784918051524404331975644102796222132364398065449264583475885194309705906036234334490242256297278710077467439310798402775044139524858797348370918549744001033907984732878498763422493564641457275528366657851701327278260130073387717300470547856490079290956998099103417462413666131949303227770229606040294834467763305109133621096401435418264887259654606492216463724847628911963983201432745205641776050186092011320883350845261163176021937063626148073850815477223934645148146193407430704087457100996565418456987373879599573062302108924411421932566369599384641299856641101522875400543457001916133747898770452634682986624551661785572349997707490619491549489076825662740145702738292411938808154853145311751513099154385948143128057833609648214537575593075913843230540335986389199180793094764467815241130816585510303706961384963111079443228781232983998730494633911399841994057166257656979315417597703294519966179744354274350901863778643771869301640083479118356913316574505180981538625918324116090580815218669261146340366230338825527016626111277791783098801416598081710580050004349500777212925874657826557434944985804660038926921466105067354835022569670748776748270496379361137366192448550121283817406075491142283205084975004507257101697743930341412660588727966751134142417890507502864591998985523027066519819019169490301491759373380866662095016754168242300409993003550088550135893220544872296153042849758634111844909399750036654638599325759903333755395527878791676687122119553555999637479688201817290839188643151965387060794094615848898633744421354871933003067488398413230689694894422486403117812341759466716366528341493094193494628976808026862143180166374928904131339261773650785517858356860636138174180984444735868498170172454320323083723049159047038513398641287173475847690152239244877369782656730116094777046278814008679594159378625904868213920365679911539950584172423354254243488667587642449927325996047291061698984558424612954452807328605160530916081545923994720179078976723448161323392568208020403523391570085088765282763897398439189129737271179165230421214146469163073196565148650346168500047275372462678884606382517512692521102693928528796402441947738266867165877366482986043133540919648643973965339798845587221641308036218292971475158686593284612164219186230605623326590108777749394279546545797846404179919067724079060094066629442951778613920339842795176747233115816321147153485301654262345880440967186715581953882796176442870877875382300720767553477694832131494366633520817346511723934057727834011291539071037845358838610618231623046449209390065394491729383634405543396119781478604391260268521630544797574345229317100081280969746573622016111135975272957231835707193406097689381832663812899514391755991440340593358563453677017070523855700809443767398774395510361821625793085681887310208111454669479661044447965658019446133745505546565565262756933899217491078332995429096723644925482979754779232533690193344571149383538576918355872577011395119694429224649793834244221692777942829384401108704275724514764551435144334774595899145926382989182283028630063848243811743762616488429904067103193013602154834282287693475827521855965610058859281259238763047730203860466865722477748545582920891434910799567515095233848927595632132330045106009063030061236555886801641115081437200125021463344941689520742707573346116567736955491295517314999975410850290291488594103849843238717752504693795375806035244829191568473716042545286011386716100951834301990697598710879893809952047265199298148758498387522604085415111532736708407962589788262091649528613206743403809961901996284130021593557485946191593306637522628463099288596271444577053887641552963023339539107587526538516845326840083804224226663666632810075926158848648722995938876773004195711290467472438359074184982739162069225821022791965915356912607826292014325664780835059085579421580187883753697441843346936846355989306560978897998525233731044479280254445191738001196179827123791847630966574455781861274397211811241533946727966590925301493469377635580649573669758892982298852691411758512059338203653866614789693572957497210884200222157526610547590693723674764196752392970094885145305495560953553785164469614280237846745176869035798719658155811785244924393539691522628595265531681583671857528805283916604087445255235633041511372025623858893088707723184558660367725654436012806513680778454179994803220131783268802958090393605445611185471004940012258675526394381677546414849658064887464122734277831795595467262720535295035613822226604379316879354005637594996748239414208011950785610890745266891887455503679678292745695104109662507467490534315729389331767313784915792925502684028965018985580229444202864698706788132188367256294186741514427400677458977343228476523296354189486372386936985393226872381736996481973203596260183875955532000208203365332832153516713000740720426382791459455923654600296201301820605726346428333819608660596091824353162984204027506134315794451440963385425141146541716517685246615503178856268088371725278452020739029334427457241468119953147162549167977482461179428979617312632943223946809179493864827433451605040124981596883074166611672616375572295323546511958269601729359186137671631467417778380438780134024370692030616633069724591614233198188316723630952487047677158644235868340022210627021886144217541863988938290153645703353232182420530295776021375838429733637637118460603670173072987454252050625968879935957906360550056454440833012165549713207613347968677338541937867062612047538116323796760718549463214189447903100897934959949278298642960106473729170027836578965552619815965643022835133603517146244306446378689250781700933791369950988849492490298845530097516771190379414241856802863322013390817017865812459181939998001805948195175809215378436640204933224465180041605308123356132834475830274132444616211074570248976054841346754053610005915774646660826493419816779996023629266686303815826749184332673909975198736548826577221362801294372218874613618671276522905024024684994443273118017033220381066845993908171449126434996459499162660218698054228815106928186743940015731535296796923977919992404292998581610864654076761180490218015435817796317996862521376492474248401618273519201769697908996340219705389245413241973156761767913535056730781457202735148830372954759404834366282875641752433706939692726178473512377780312575142337216938966924239345638762884179227130243532460075780939637675570018852827666477075332016078016779209530960139245198677468593828178891406258131976028087380830689087618416889502996707260044507127234925716942410108971343344418074821080363712968281540498902652567243944833655275671590094162915416577666232880207684919725141518660758485887893870885554935190853336575417839604161942406814895092330832075271873023504427979681279165759006261507529907639519392711685523488139768604066845237867690650445309270787818839211435970137862215417968580510039599073585110137051219860008802118327043763611598346707727740752554908684872517280559434506455948398205044482187812128028449394560273168725795596949350891241097584974616530268082748414947086246715781006835023274041244224554323849028245037211279473624069903025983376226706191139236877196696050982440886398924261036949350862742193249057615033119820221869494595591544017550201357337262785774811635202590962963951886530488435628446950953502106517919581637355724398015347999519176467738102099762679128679138218778385093200646821236255964862556281581298553543578869518558769578531877780328759563815452648930890443111823356901711924128917624060383317574643648954781962529616246083031304867598035976113619069117976967116800490374931357202619745878256539111205208775008427986227435349629246878530655500224210871926868087553502512968290008069963852421978175862121117769636693642496321188210105974882843380979008178268420277853420706075253996532039815436706322712300763743231353907403561390504850930315885071801180930034611883454758457469361027652965672144373466881324585678803142810069460584114061890758262614077042440476645302829429151393847483814773167195757491211682740055141525877552754878698535697430281226120821611906378504044878822170589445623355151679791098592620868553659079068031716900552013801400645704995652192208041686537295864205424438556820141774126270226991682840376202629989870782902735826476181668333438632094346119065225093523215109755420436539015438453825567018340418568534530945083014666828189875093828726816277304739571278394806903248594459213971188358775376508517601080145037973204200522583138136689808542048060979539307781946697563447697144180920584928436673850719696495109596212477316416640198123840478395900178889851408752159966429049248164507783435492007993210226326807946454585341397473814952202697011934476034487164397173919132032939824074022939937252980869679399080538849059551837187333142927942743996655954809231077509302866702495960654052242986222262436501872630831966261500371865759182590754639415469766049895658209315736338323377303458801437901289784838938619278773685839589025656187253337879473854664728831694134570802857181861477426517726465329613555697414493264240577549334554252192555323414999767255628483132233705580126670031255727541114864015409060962163505632018956799330962305954215139205993976114503306692400096443368198845775409919389415290965419070687049528874252129211090776868358091837028439477131201063345102516497959812713074970216673058273282618071207232952135446548433388990282888080286083134100380157624593141783765856721244836900095615147937125300588336376093949062155933697438058086427739190302545561941519956816499689775901732128976673330287018772912045694589296787736615082371565915969276246806987171206850831158529812071101249658031905509673524174879825433518064632902190929624323298883358324839945125055177057747264438082632039277071510235871185198681198454072428966263518620359630549000505700645118477351689919466348887337896148540944614810772411016296343311771009306876064379864938880360558180426015385686666271188526533690279113302620676478633981597823085223466386069335853167662028440169025573443745966600417901097504648107057616758542536866306137999980362100583650502178026742418307654999523075931408147306966405915983496912419117686455509118761299451859833900777458584384898171096260290512568059977255288546310972957578767092536638519959684615832426742716409890524358610634974910419690477799358537030526506631965966474336129561321873338915716397159850031053243661063035442418315491914840864425395458597444657958343297055048373441289862067497916213555832753780479492277321920803732422918489106915219129101558092414378291739902647786049099584266866008768593645251909571220810576623588885576881384211205959345574576711879575099348922414709164033893595454485850610347248296785424220281094407419749309729879317735277071011942416464958789694964193636622144727756434074663373402267127962009342956106587432611242522099406642626575075296021153399045533142524595974992750812971014853864672649856718932574912494974927618368204649241124996042578201839498345458966452233678109051259219410216898875583961488435315813997363003839262242120241109824078804455790974449938436767327282690412932765888659741707497373226122292583911492868097462439725101104295263558607622262299365916476557294773116566308196208510489119009340254985410802575655527134231466432006749531364441868747243733083054870037918104165426419484282108083810703755362940958929662811822509108694060601596562313576584339598666830371923383183101670424297837574672348153646660352765340491445015417414900233949350938899340461763450803614296087797381466813445981633654316784852570319896187380776650345730082297734224953112252826309102551883214425327092469644913513739252730904016251305056496985475904671239255462287368350647620470807846194108705310244737865011943226427315628303585338926778743635872374027701305629827343911523574253355079923524894180561821012129500115311605529653786497270282826084708628988826549934980292557335673739980314081638304291570218305553686078186295837803218520331531207523050395543960385582816122300993181421567258139285581783538972714672290530889956399623304044765843026978436575117733406929148552641262082001945768401130985114968280068423523669657366174462543503836724016744902943065605965153809221198339121880394102660483315898136890373794720112148558890766289594931210211794367804871913077240001806418476695650828949847536231215320836112581811385569615141507975273072744786689015513541879469425641437297844664504136453123497657668988678701618344699465627443169031338130248550993818487759510186874883257632426234298366193077224610959091158034894896241057442737485952184668741877258036968918668805860661159830414407825837256412443292784171321073769777738629904335649555786932081694600519817023933825339749365883724512358885737298736514188759585609413186324337364818062099159313058746678140401955666234407895160667727114955678648382067753125833023786551694882682048892076247549241366888510451752692467753129793612728289821491917424713704603871183008784468314992448713360175752260449607622929815594808701614698111007151879104890493335811982392088804787754041565824036661807917653599354346151803630780169981903847737761423536940792935386248331890960050160946895281354497491565426675933516153267787058195829238898746285836570946610813973061191326124202768544856808707813254147671952535667195594754804318662624359150701136842184832911290367229391569906679784899710564495418558029603007722507560214585994220096088024235334353183949657221563389701784420654662524623471303505868226056818322186254379769632592970062566347669440752739993967528798542008159248085651697997609269250482237080443922788643020887581585591525972878192382405648556686527684439514796354669856174361160693359531523847051888482513584976118920868881720952627613290755931138029075657094973547112879144063322736654366219793679495401536278272846967670758906438277905684696585294737380883571613630875831477065411315372709060943835148988397444736773216197873969073381123537081198329871681969351004425496310833600079458796403229408094398345543881197358721126043015170245594003548556210575985435959655679204706710329713352657917824971833301514707978708280557182378939402062041092534320546890155798580935543883889600591243851371013908159772367102322125852314500300919367882545273857864135408660026892474453891830071814350661253374113189584352442114290291949494935270002465585689562203278843404094612478953963045932029219444546949180001615945534576808894883226385506812196914029827463881721338307367426094550466136028101356221383077159628899233075677841594783413690866748716729090226161205138446796424768206343526077897557054107278775812825172019117518821370446205049311741902995914518101773545285561356183021189526161593678403389970389701238775675341649888689121222804644820517058774137829979827778330249563792894512423542123112082983761583410408471336780883023038301422176632377929741272267751891031295145671012248388458254669830904357773870731255029174702335004291709457348807043359755664378190756721451838587022993099433606956493586343177916397942769301875598603095013162460321449890121202635770538189871453636839593396837978536848578457230207533395621651232549363639323799434610542394635106086872586207544818802697396126406780612404035661949638339056900293868301078947611152747398820380212965906031066474661523653918389754870852898096823288389992699317978922750835929069913001910224113643705494185663352165134927486579021963522034442399446821370813637318418221302924970365073143214673675031856758355832987309465616054756593884407663105112590192215983850855789349686734939909787306940313029058366887548884876150080358677535219982336747728480197225024541869212126179538863078034464706477536883803669530912999543161924138941254475956593029470978260178470910066535515667453698819020356409091797548633354653399795263819081006379410498676908967341706170290679009807381924410933642107928187203300223566016752791443313726525774180738411329875006990337342024107198684580390502688062262902334595806287240568263623200259495049088801326415032344259285542001329439231676327737581432717257396922779118177042465526223548718912899379320909988729264207551971127657132970878439677363423885242300934507167486464077025619854016619308402813751068022432814100637955901285184568225470308980548404718772280108081809825356547612438709939667273983627161402602554071718553920555099720286199923391912370316850729572089080477280292285133840666897555251389975434245005231935371990538522535050790248939762003484851785932940929513178444675037577301004118054357424196731358136883756790877596341107364130706756851560245345833209097074036957479121753793043489684842336769487218203874726667938167161127582617240993385717344865774533789627897233675178479662170562670579562717762427459676342840991060720889300041337240136982940068873045092604885895193617265011570365411102433747214127071839337565613950327309182861814237650566253358079889856967559363235276581029221286403748971668027978814313990599434751587638902568171602487207171946780014787853951694344503799883635513094274071726583928104655830160008624855519708202662059972904478969828665645247927803609251572232085019688463561968968369681903255218321568352187547905539540645081369130918043363136863403279447250961434188104479803000238329570470589708336383357186055848809001161243488139063699741862922881638329784803420171328391719550695774510501505753666225848820788458318010488671917420036334655695334251218938777421898555097556828771523764938268005261775918531730106108910147862344812929609971630980297882804254394021703395246976897493853960189368917356220634571694947795655695222577377537315401173431746409259926189768697020681378217012305621721246370269372502125055809493237335120273066793522110316559811611698162484387946572368877526345797084922656903427104366255913947743918870498050381596768400266772802893584828188039589188489021525313926396888489035301316686824800406335410666257095991101094383209308779025413604843343632157040760953794460756880125818126589251453371419459372799272411911612329451677091174403121238447623132423465123005665143210377430607922337459526779560987930757995841859340294767786537316598142542364272334903284811847449583072546144635810588014357127493971243730788182259050203053436664343326293577692179744105280954273771002143093527399595789063475262214967290535478623590663063338302657997255413645273028323355596499062587873565765553555156976564883717973810859945974470414843492107636602972292129706796616923668095318273267005614107528793461186236139351627675074021119200677629975892705779396592705822412866913373673631378953398685041114974308966010881642449438930707099988494390326084520759717778309600591157430488822262330545571944075012863500504533964745352405112029741287944737944402238400643729664263877956611843829449086034366395669446126386199939123855166067551717677521902268195479747100634692748265864342578364830056837048036568747662209773475231721757274529041149576643477761196363428754194633213006451729024845176463171375879037396851542375237236654661065432016448358160612479767159895197937697027948085504368436753656275391956876007972466597439936964585161466869499841868081124840293565482628869245200355770755937959991743451944283029022397550221032689459318495011158074214556951253500949014061015842011608090135144598743242926821071029809911152331958516978981788141387545250516699435697495834583538879623747428916780434687496876330523667657742003259446844013405879620842395994140040425920573500324242506622216969943460561142106091869784243752176775149484372215028278673664302303856735642425204520224991023097994876652304914431602093707331500345252691741019856288531402014250158111952462894003584934416100860977719430294385908355252878202471199818568330336368085728989270296392999471501054765393299945496234507793281080770294094969777833022585860901529969436114161854401847074882077538214805341737732277183827162342869099265306954054322352509323472109980928031595669362149613269257935344607382885118414357531666314324600112702087692939646242628335003302651828372481727194775009026941757665979463477801428664614682132107432435073500927328682557941153188006455288246555428029372697696191323338181809713592136117452676369703922506573589723802407228373894065107412636786852272983581944611509505530208475023884321611913546975915984653512299690811766084364012791786329464210003745764518354530045684145167393961790117781227563040317565506593828974228707669526623680721029897643669232480854987923369641295996091380099783386910737244876704613796787517264162671887251184929976193655034084922027023046397320707029412778476957083007965352241586886470017641780102367515058168044906110721289892640400043243252091550379648351293036885626860166905112059244328600413595025256512104220327974195737472324272113086249127418705230284122386600754883909145881988513914095554063274341598808412784896898338853168805689603210003067048138030987165789519977451609333961613004878820820944455806058617901001362396482856562388082412951986020793767235108940952385864339180897569530964419151945469419883205261817202685720093814739484971185298193278401989357286410590934080997452897765351745955382973706450229384267237123305964911376197858019773592656400305792450507532578576571545998814070087006246954286843854718976885959663395724225230470418153008594585670711642775707332085519362201517967710223478064002733100774845975873262329182756242208877038237134172461962487704967383864724248342372676215291597507101632444435949631811987853409508653065150167730382275591341757948591468752478559078064503016704371360959641415194297902213705512580620733024366876375841112779475509442951834961668681300127967211552851085052878025632037332907834509982949299506960538713435578565895758923438651395226447018115213899700822318447466539308815694648976085141403163202987103285534685879984321571244821692631697542059176859434920084145389210788360983536289217567912364591874145019661426835455468770628903414192238561183196486014254948704595333324085213310454847502529339355497355128660435864855798608105828260748812334915803386039266479633844461698515537450326317643158491568020754663025368289057856063014893027899026492449197029170064045038195108511254364528733935376051256692980562731130940243670285936166937936147896156336631383472735488633699456071025796904149518735170307699965210434025481262806211221069868056566949257504377789000109967623252338540824718044845447965463378915961615058545333776191839155992100818666246753676167670397054766404977184798537478226142474441197323925038642623863673828421082790115391510378427787101353734818641480535133837445793166949589266053636679765064641685487805811747916135671122750895286809807999607418107551987344595622298432586308900069448311698016686790071503712956513499541028358881101670155073735013096291394924811261198029296371658232497835010966004814686598934595679410572118735132283783748076254982544604418422080276179347871973325749892073439278954331084759927956832739000962093841594828913978276428126257025406137711313664504031543428158241150190444988403128123926710098543816985113784033827628441511579034630084983400802692143712484455102284262803423176205417758079696893883705387259452580606397941888541470857251732635221851262098789172469159619993334625400500045770076339695860155511398670031670105932993462426415593207754523624931001953492411774913531026051472188675878390719027077452261189685087668622769245630764361194471352120635984643798777797045932398530622905662101091098489342113140737311459120064028025082148107202433358891995914503080092498004578107425869561072786018618151752279597217297067266738097291093175302637810706098416748421293475573337228974448174450449148499463169784338735062039871149168381606522689787609662349742597134979140354626684098612305735778274297703473919377291615033667438894040009169428544779949519953051453287540808389468783361026433395458864763806467438427685184786703150190907107006810686849614487031511701191611096278135067864622861506280017093078008244271397653967868138066681436794362605627533176853392972209447361893848404050529057184004105714106425729862284726576566560553999201994476011948940517920792245150058900994274534995561197085151182918880624588064577204230726185582166412991434330610680284904040150212608391982686492138274152566676710730393077406792320156321650225826240809567924026308113919363849029017671999942530299086649247762243048702569396828229267922038998168775015873727409586945798576846538590379874736168741659891568923662400340840846999390096531802518276244097485792911684729385237135177925750568644648418020363395177170748772932614616437556127404709495695177461734810315187996739404062319626341197980285269287907341531756932187580293371662137992402078573708464005284044966708120800381744505550064891924866149321474813078090501021528234513353427084264724235245690047884177805072586060858575435197655158407580954175339193091997712174141398328196775599326430253966222170892682978330754283253487759383396986812617337911767792152381226682573534221909194357887565658140932861008841180342108561629351110176734621147036611404149212402193321739213652144677162593769331581039905682219569372135363657063309496460028096748615988096402911769295567227698738442190861673976140951931814219871334541045635596216605946200267015749014656868390729646725608795243515650176049245124705910488321718117941119084211710869368780951554559414125648406640188906988299732901261817185570517028014320878142880527878737761002256950184893221940378184226860117677475214555126117371334988981331141844659570428520587516660722892930447284643783480386890626284541804414088017219763410987963827116708121585174597587461049440245269218428691964226152854854227690880093868696927365264186932683451266221547636294380601574232111142173475824674677478149401730416238109227420361737651962689928932180258760707810714735601142158580328551016658941551244362689022529831914028211327328731561945408571810494648361976182635554718383034868895468355198214721312369533857374949841900532363774937177984198333938686453915904735877183941161797365760764547006209656532756946610290620597374791131274070962072528894348121553668493645322733280543459391835987484552613973192116872062929705481016689383176369029911876149418573237052768759664684973395793992811629703778406726325548869143414456179886955285941490013135967913650600204946478790947769438715791336682847368021644026522049000926372414107226277557715058268857819098007986968787695478562616082844348118764724680279653740583406411041979560595316466585306224211820317661223005259674104450834763292518540771539268045134329668514920651074350046453547924754433725586179478626638291452350953967336754142485635138668354209720986364731951903255047772063765034656573681550992709199203763910338375812637827873950096769623412446074722558270876742105584369727333151433308298015194559851215664987223518945759471143614121387861089612160708178323898507483497086569742519413713263518896635713558446838244068000126710660240613391270552867654388761725743089590772593063602937172641249378728095892047132860267283548730334299600218549034626066638944199689226928513035314584596313977107203885416426918197141988738093021241930409043053730452060734749062108725239138979956757627804062902083654057681862858809137558440262893070822665323074957474823152687654821356163042231154332694947476403134558801800334209218899409384668976187102220180111862725365880853692408562706954466906598015707313162612392146553071670087017757437257033938470963215227411361005238124927510511237390597499003854593115776981259393490839189915260909699986361541777347179538315190018352580167083079345880347418718358648715015380399509098582150450510709994165076991786469157684026734968845441075641591047074721189019721862366603389782592255409670997223249915536504411683701487452156982330950468221396790616652225503202293874270456319439442099480115005580306867309451632341942767302665783743225834311724778040748563283763571068765406224206546245144728983107623128800791773444991695061593107161501424911000323835939272073765763656287372628764568402329230027354242445874501237428434664824101555810959173399328829242693974810026061573033543586894492479114101063188897434134257886248900802750288332592182035518238562448206644077426771714660255885443436040155584546081808722127445616534171461649254257687478228741049472407823618777174891385542673959565247354509690066738196298791264681310999918423801729787496139209745578830017003375548041674540823218875857684391708673586146215450590765961481956713876585967819786987565434817401177647641457382104160376338325372541935038902949566408738544824346496290629539600685279165644419438742562280867775613301731656255082003162504342111508634515926635502474678349673705932074364281269507633576811709067194370118339593128945757965708012633517390833933068541097070878383680762192837460161052636127207951736599231547183560398998712558846238807057661702996979945803712013982882711024067747758719770495583420365093415469045510000674777069910283968969537356633515769467661575480280480295622840622201471235389085651650085741775247067677074313105942282909706958186816533614948906452170814991258105693956543414519354803602370811991984670182401427348810509697089152668700402577394669181817201985833972502222651812517881880503266411233422799359613333141699764701170103717903994471544109699689619062779002338591600523703422761419450042436826046777406656276151053613526143779373753908294176982516489756082882679930687922520753675029686666064942835929666655169177371352851954882118645446626958360495232655107325759687186261513000929138326416443409262896229302834910041994328032278358273739581829492712688123998827238667174990093371254811533062733434213255565119635072554495843497422444171788222794356283791950751697736177237705541304359857016141568147788315545506586387862851048774787469215410143569038231692670505642781536834234987381995031611943681606722681761690347392164755495450462819282794309345173907928631747677828410467258790001953146376862346378769970123356265203427692642220423165778540069732448897250428662411962125177887196167546707672850778221125279248915645536976321361861596247508198518022187322409127996948656436605827741392879641999949605765011036649618496616664898408903366715184490923592795067692600804592946094220256856397288355661919743416062517554605376973810421961960966669425825806425056473677687593245287417232806826813226943322939083852248653092351827715731189689121653449819147642329788861104548119754347958911039280763923738571594974577047044179260042746061376221167303256596835972060537562195311891531562816521401505763172418612949835388591004700420268852315531894545533940019483130678182488342820227193336159556006462806521326611893394400189041522683866688055959019314065449537327737013751063608507340805868555160435275472330930261456569908428540663251436629273573251157146741318483845252269332512079031982195856008353737340516881899981156926058897480115938381564859925533184836072979723281859999678631317926318905872544075900135382783638592545164721163146958524455640820753036984510760895122552028349940602694555918028882391927937006049782108640933952532560724302414998472742625543274913890006837629918133706754257562450334504765833851306337395487651934924610639791016653593054613629010157787385877442184887387716567604796282872867464505112658449389796699956371597809279699060796713853614777430788198575001856218053951396983684531606112060078188372936465944246424208855274187475032032834827978121250620752365079162801732594427978911818060849972406542405912026167697042188246260911384468852891224840475932730362396569210240362186892192492922554334674767610558302761247400664920168303559311804693696262078906618131544778701645571541779341261601318038460553493165835513332934871092183498459266128194018499052279729875796779039589975453407100915057363950809230435465129582167914775850607995216916304675372005030277308421292707148803020208379622235425011119743865718077125484509622774526319087483915600735852909433155225812803770566821126312787122899590719382185197702294091498332979378177183697805097830130789785205744416220653858046248924189146191978394108706875259011919134296397453046619112719734402196383393659198865431831352031324330319440987663400242537341805200083810006798461755806465174204519632357298475141491917836141253322313946438242697907559301927623370625123658136201810134834676079373749101191797844205904284123042785176896317279186673651909008803618445521186960227521570329397865002161611623594198993101139173200735672807382278003880968835253190810206133243468137504420167294388578782901738649861552720874426697418462408736629457641521667446693381889758194320620367069906879256931987952712097023631435722205142620689694070124498183457739084922284520438096854035250779501503252096404318709752815531588071328892944115798422821978585938313256979178063238900465951835882585074892054027086895510410775537547685791440007551512337185682524275381943167564384493078936268459325015414067190108396602552462612121124492191168997922078406314429513095708454546083009523841544050591468716595077161105697616967124566030470781721676114901297516097180857590525109695863425750926164498624864803203096411008252805540933473595746603970026740917278369342006322665869887319183340182540111147967361985248077840668706215744943832163645517652017101811520032862569985941672248668670403360844916739787478293230691831046030652987504617974609421903906620841958401049810193045715675811810114759656026366979970019036115648114174862447790425746194251351426554990796088289999462377254852665091315007343010539122904493657946770985246523322097275506145800458712839497064358878787662987192842225464342371686917145655330262723663885127191876693347647531971040351107136730931956674678446068634433530949966187651003911168524115832299610647166360294833447250140939964870210723305824251866041296628405979957420980303615894008666143269036758428311886440722408398238517693666757759035122468467033321618326752960890087713553292836713559119962416835973066910289446700164739535371415338715995956020250851214510203876662344628768286210564248459950069795606244304041287648546348158812662091210622622338072330224966438091068422251337855256183555807075695778260945008848149074766320229663262126890393399032450256393457168510994562808936415599111223117289043283205126440077995662061670231069100481302031387596170188274913249341402470931144224610597670716381135022690079176503267915118690190177757354886730166488766021987216620751298759528961971580359209065663408713226130461107602654633374543204358620910526810095806818710397194458039188310545672749401350408283275727894661551758868342647404228498784391678371738922913613550178831462713273290724895283140461653666662004905056535070376599593691888615724964216403934652770240409363407227443709173119169879739263799953755213863662366531983108621292745061869417102402870099098682498616740101955174550918052467968935181996281476677414101225129992823886936585763465378417358321296881833490867351377462073652580073763025669745923517032108474604340301482873580120129587040593663227796213508441041188554239808502896780980310374028036226431085288110163036055429341873564340092692698259024594632964951162215286568406188843528640712071098233929576635739659705269403125395913086720683496214897232656290852812380754455545785317301697273036249744465619500678265581053208342652808008834028606656703313594386639117495267374286335610199325413408733420491325306783709501475802194755525423444525784177266006570222918807018688252827513883836292738656064094429931442193864184130470376000803877587789052677996681894774217311719986821864276637406248938799183411044774800493697350957988012976835728170674588605127819239154501801812628343143712166550537468183384062483706507023758669737229771555239276946341485938422225224609862787615825053004407502958331319829300119937559374094275502764299979050135429509927393874126719933324590118086641343079773572587156684433391139789586194490158875899642335061585050992572859639091682702410228269705087614583622178769654153613296056358517123332180648435838017522209600557099447831931618403738695385559391557278446599566080174537746656459415473427924266095963677021098912085147685061299318388872835461636665449046669723517977232893597495060737975283611104493547212501672229548839261695928132634807866484939781300028846569515299374693918110843313271867107514421808287007689809834686691565373537499772701588956009358660425298464702467505515817907259136702732729385895567358636882068936684495928139699703635778553211692293502144647089905348082394071713282633004674615289984992204754977867987959434501253268460896929872220564767103003574704107115840060976428594059520354172123430663567933940308801656208389431399597166835178255296365647903274970956648401768889169671149559866921146171758902364545998236934390862568402492567914481267482838472620127689521316178904452665646677887671300048720782460985090654806974594876810886778349945369442969386957867437247171092447007410133520419077057217275513830599053429812311344622011745736256927596845588541619180116867062204500337951743496742310780826262095185703571640525744816580879091590921304438855739399962378509542695230784661696198903433471769812259339136846786438645953810447163162470990405790140604821702489944142876179674186553008928867652762588311558199885075141234244083147052063507325427908798342831534821659278594189945607852194800568072140534516216401117660950057488247882480302868164688732352684977087231930487071831032174368523909403008834323830638443082875692454568201672902713754276812044282277933449332839027309620059237498125794942936668948397726823814263041005948582061870754707683879701868386842395311248806269078392363443080539348511620205094887310929592586475002199334342243380528841494390356816083038733638146776140242415442351006081489127253417018535871784248587920566884216427909972723369244157829752959833355841495549341773634328979249017606346317869801695277990556223875072717100377046880863102573274902153709819184662188801627462159520816263255852456952045659952337808105732007574608472958454899537649950223447149498313930570318308492988278239178191546754208885903506530954934811072297470917373352311321196821380285256594056176911770236826216141691674705764483772231187154577435166330002734398570259977290486728920423175188322627040910140515479857781469290325286819545419664546120768636326527850020058082547713208176235776248007400887381008632673380817526036269077983533519442166217494415533062054699620605209960513917076936199798929896171941398970537457731416990659383397824497528154765611504388311951134240781045482238917203550912690309579422717878761606138544530857067770641640471029834396251050817914357494907777210417981823605337631495017936704121600536997022196498145686057175730300348919968098265832237362638685324172764170985473268633609272302573802826073809576040482248950150926278291925466141065926446804602244918976460526013587657731806469934489790835566338890796569026473074850335218397633742690820890468764180021249871694781589163717182269609925151739975007296040368181874437679854175983144924132150302446683224853594760528149092020934773039779534933698898593528819601161489690585901860788902722019795286608832726933587046655800094106882906094466050285137115017383376175988485234502300050062421293760941498992012211710103008418435624981138832690307560937713775242827547160288203202291016481906314986233208656686629320490865053652993983523574113903005329799087202404999102113044157598642723235491410713578448582632561688347885748472721312883492963937668245324440097551639951231096396959467629069668098446074240470970649918881653396838029673350032497316381521304540419416900627406741317922998550904232108332438156728885075533595771136537891112248741091631953832457699873847853265980316370858041155596575701855778641619245692482003293812944231082701855488612984831907618250839885553215375963330743780158549996422995072510713630676545626728847716738624248579418284499373059551350121440157313418678921200085618011591284358632762890586270002183234749851187061012416469918414352241951776559277186152624576308114832255670898994317492997323729883219036964310809676408047184294523135018334743327700785124877812854770105772250794839950607379431954330947069637384882720517936527115890062262072835307747055530006868855955006077664246274249983977361689163538901532522591445387597906714837093537468118143081435506030627267512089231206176615615657705038406849997014489908901838164052487672341773895069506404004486398270704173192223946030815045511468043181528914403006623642167779437740768042328233902609721837033697772906791434502940337309462927929841547867124301060454367184154809284107686787802695460612572706736094053268507843356401632487720912074146376498294310580160343140533288159774366178329812334341001986733985830895296648159877154202815553213985845601711880122725480867035869300018370362677774208822707340484079108928033122674758872524962126337852177718925164829182495816086431520582215156791872744278528156486211986989215579413351618647907234247531757049758855853323107167841238919349970116363816727479535724016976682800394666985914990916840120760680326613583522785356426163838762955411724478810475989621746731059376626983301030512898987458821668604259044689321418819179317644734880651271626020975386179230671263803166500704304699911464391764373337787622228554831526792647684969339867538780491074707707189266611339843470923544342556059129013488029515981903813958478318415857292075007986800872297001919711900039929395989599949245921573966025966210040627008153102414362688261315158987207195878603104758304211138759186658204005225779615713350426348670972754234607054765746003746777418725954387687123670520017725639977216978006172337754510741980968024330767942032341732250562979875423097292929804361243477100551252708208960157787164457832613591726189238422017791664028155637476523630282685612374153991724124287983248936253220350494524154046884756916185889101963143720899799766122632153470616577052627534013958953451315202158791427017508116845817677527778228357081692109292752695420964487636015914641740360988489988764663740054181994364897707499491824369072053317072078514462467734539306530557305200241362360115166989695184645667763805142757993869924184557452719740777332679804846277009492558904194484021286745533712739697306029274341298413259450974169475650661165250224110403717467889593233834238508196061400746131213892699757237683350061583226100238458376539096427963107996651726777729470841681379216651620678748800192148025417383764865593107344569470685495262717279289148245640065188796598999059175047182688943741151077761568515554290913142096991680235712338472578033852534280332635961430361221765141285173540240604923549527924177430062314433928928795810719730996580335112431658259130041147971751221629835702546961293250892284800780893350098161376989904715464967915987925882777457571151688470790125124313429296126200393484859138748386617215606327477820095128774905970765066499095843366813658094394196204158880490572640123323568940586929284571604539961127062720615276806411202242837837896657311493800020407031702054952616195268713936833752470903861371591890068622192572498271818869616021150239975140929962616700606304282747423005380526586514904002495179498122865289442347888421900973414216442876138755785875390283357514679224532461109865604153823626206394709452112783871669580925791625421025449233719792824112978643694866389313665280261550505789542147947490085822473174496041691604650259532149776354591093916755000443485668881000220335384013165483568179765528147352746629671027805874683155012659822659327925609693834249502763248924690290136078750258461935230783626513593959510722684692671123282086677927055703970009159958290558512319969483713652577516617276684199002400665254462938362688692057567113953492763312230128402779934869968689815981662632706411976251718865107447195258320183544297437487950391000889960513719697618964366392581901255735293992958884949776771753812221925696427599018342390683508257099738814627897653937131312720527884592235162300307109634446958379259532055318223626857869755459683519869386945011606080943619552869808605647348118499449062871245815569780846162675138179256850598608324125757392471626771007397645690410499710037846321508652968064701462143422638634381260043684429180250124065662636092061844762391262082586942228897348365217447853252511672340126084673528607894411997495922976981748033630749285138865920344315285887105918078118599389964890388252857822793749983795074743723497348701465591807000902896207987365279426829365601305340388566815648857162244130488340256692606247578237191147211994105673105655743135947952553539946239677102115542280684772172862216481076479906706724696280134682846262453305712621828277665948267655481921015846936126246781723982457161898211720888471845201134501301497065293584585185553684983136239936399122526144580602319430104777443647592692144176281337893520861088288121387208197525646006905418878197552436879007666534829628518691733672354769090625282621114935753925839789481029535301702382865988578758003143579884159295013852662451580822089171366531803103750052751916432528550596183529897775937256424276302049415794731730503912460655550848823498133474081128770455036513991422780388757414100861339239156553535074043997819004549598344389415541526770676167645724794357794001253333270856914048274394519613781744499150753165891754478721935152863305217677706120726775014275507293222369782476031312005146698230592350408829972656310253948427637029566325445537806389465603568155098685793448979749786793486811667657052779415018358279604054357053727263953261950718444270191001491884511820596255653419813746992884953433068303576743051530518291416826432698241842541541549670832782482303139769671323648289630813769690601575677866913039400361583810697623711048634968927275314766619895454627309053595487343818191048419195903629947240867869932774166084781753086591987797832343880854026955878697399366451881273170166949514788459451828205687039984279930261260490598946548916224566828597115014555735752836177885968472158005207391033524640701040525233505656090357048522392431626498973853623691196454964883313999039801670905885343282260404313232084783340718500867423038116028644197621122789465720650136847482797459531497221448127871073892570370388397236680993247044898978601782929165205147270890135248747355313674134781813519568656046015587158405388132105519956810420163276258260471248660949131857178289728438313001451465120333927850302584202513869223439798523021474099531093560332366399784610339763800468816810801396964417643570630428845095840697791864696157299207912182267653386151778021295094015373644794692946605018257640134687425707173503967180424254693531226636515440918836414541017909234795636075057387241414898746848023333031673769018106702387350473505655867761410190076398685408239501313231551801858743041885509601731157656657718397975953703449337195371313265718225822083050033772911672915218147451473984333688992073813051616125169921428181056202308101499179067783644975992262970297912682164139867138472798633760451243547944956276714185409515986861338065166657853427484249182847893108000640444700249041440574360325535504095682668577625033785981548444402937708773257305595098164716263820762573482144481721974261135759468392731032065877983476899445096365791676769218010007331527086829997845031794441853472549055255716343524378515798977118164134260191526339836856440724331108054061905194367319054321776760539988862427080741033807419214954205354385248627525698986034005817986943476023180919323143378584230173740905144752735185305984266159624106929551679864594723352414170489440819694710947755881257418487856302954281617076992385580160534302688491697224764821890145289241022393850107463535772285466791352090581933186376904370404141110327824628499071295762106863607242853857096269008959666091112789952102003772287471354940200620405762885992677237493313679552591027895243812260512332907528022574800030884364746864009341474734619372437345915936568900969912726661782622302090644742776593978724434825051716358220148452739022288698021383744220539464845730929447629509461891959647270761821855961917205754021053052784511540050396740940094046733695042921641288612580846112288114252680858666416220350123814231201731914451343882697583408627300751049731366398035203486468096893160011781450594069995377452686437307295228214920219643639903869656054597282179565131299462121110889375363862487416091641512259849884013164644564168053915544440860221274289009965533665947761608114672207618274909013166808512515064910144677242461696323556326302183756425920723493707533495503154527369048340312035482714538906462979322419099181349104883586272256276620841526107581563935310812378451005670972199612000833411787283431748386502216461412210566704540880616946059959469195758543486987774132842518491196663506386675479380411242692866331422987501630684782717861694380324436877416425566523696353960552297698652910923856979047695981786359276192392729483820952582074180925318796776277116780804440942118689888193845873720208286196593595257549578468055909184378458253038414578736958716183853255217033833188117816886894393464801604488568538640025497922647887886930208835738145756632262645941519323433514700287778001672786601604996652803050552206017185134077737822431265275039914914924856295879840611683882225755207049009705698858708837109669965996000424962371089887620805597283105177008491496278200555477044806833957788325958647765003490080052745617838987477711451506852665669927648478191539776344912353992200426983743648806307054428511830243503611744256784318705170609691320637242484109583891934705578886221964766711530225455799552033964232926910105514137605172857771633706490155584835782772395005264830841256208332878043485337618633430663576588495093301904992835173895291218590168533861208314312644077362293650348940533541312541000645405778114442165782330451048446280396492491467853219963467649595550745413467759302791946195675624481562189109903579284129488746349234348924111492848906200417426294229157436814461222467851501754951063521348065303626145310996482347370301519170499860803604673995963532149727657071830675961125430511425748217753573216676557140518843539664456384440433249165691174693937943937385905098111266982869563686519863101673862553047620209519252476082721588368232890447782541746435961843742563962973432211342917423640163510887705961572728279741258746687439519871019679220080909895755683908787903175503619015832041882104887024087763243742260707801751138976762420877082019228750876027360793972381722218173423253693095092124038118415163538981594637630412916767008334903094597195968207723984537122952737742670873020765545022464663487246917621915271370383651800186573967778825388028008705204713134256374659343650976154221598309088042743168617092606320582973966427063063379268893229603463023043114628271490245743230525237676597011806687920281366242902962229013485579365377880221880952785461213702850707425878547483860541819233278557494115143769500455057838873933634543940887452327944165313172358740234567187776541382968453062403587339811664071149951200541369663546145020481875667938325592820373785153962712353191178065468247471628596504856590823058880845675258843005639794826843623385011943535587809631242982286401423745866430949876175609793208945743553901426440900080393257806946835477192072138745868017530628246938188485655290874443748670095090873190021648624244518066763023848910948118618852609228734152071265060274494645298326290259176386813195611028571272439465563864626362495247123280354357640093943370545925635980589207184047021327006636621694945095108555953536100108916587046018182458741650151879375926863658542850875193317357056436858555035225274489539221675243373407348371082410138244236330353290318861835582998372413274200504868976973456153408489954140539880291978462120483364668843379643657389011695007105692906973412760898905751410279777695767939864434616204552620842838434077046513400138116610865084525595195861059117807326744463734280113309919002360710343600945111189170968603383722185017296174363975045078064857208985284107951522494771887903271569382308126567061552662423635055018168300200116147871663151097194943162486373436010086784436709222428141427046940779050813318838214663407754564563972416757567676155690824384243144298891903475538619018490235177564392877166784243672824148178024952960687113424257774602036683251520075989569303309080702515402647860603107634924085644963766569192714264236271863359933543725698383814084042322492803189671074646503517822170753182764343545179618920369203806324848305600500425317733499459075021709611463037095138304609209036541438089995329494720465019737227641912630249270602800844778584517728311857662251591336018930301282173889963814682235729189660915397935172095084989345333739358943896929987994389182813550444432179949004994080566139349257749894911623167319109841783594939389408577560890679497906876544415976177243242893750099710912904730858833419029751895419128859317048863688422771676008677203836734537980023788940814954196448230247082269814687915841300490886389082394077125046281929635528216833337600745524503348547381423425978061590368491173035503808172495493193608527553672907662776098580528580407650189066430590844246384122767035306760238178325129259542062545801650877019049758091353469476503439937856037609084454463606692654091743300619208459597726374276444534056163616165670773581864924286091417471455707945912179498511762622266082302547918918176371239973272596616752185474589787785979311970630153832280344634678092793371119590049884210389687429840746899376519594200612423123341894688583142480911951800423044115570868050365647526702440377235101668683639090358565704055624645883425774372717747984641151368641868436756289340748885688738913720320192869569064750291642301267038622591232938967161742009755075631146767905402403046467068992287628583997482015829372119821574220756649344167688906870263083473106613502545072142165071541776869564783808508026715646842010923576463914859210184513986406193169653407329337548902535766008526565812111865948198800331094793991490333170811303644996883219809159496573611818092439760582864195338701055597119902460302917414548350714838150737362088185800882250576904053359800180380808482636236451377409444582783836087368889149889962146063918164639554666191648008532908142605173855979678659744444527039962422428648739517682986294769210248636582381089407604048795613928689870577730560051851620066551110596361254522349641847104527002891198658287864015882741941933036170674393989652160346162497427035419782409004542534676522727848375291735661183618142952831960105519211584400123604229333369641395292384427832545921010092668289197672294716817402290284244511760605554234030108544991083157203517426477208114752351194769082424199414704014543476254856224861138367899313929704946711437202508652378749745145476746607498434439302306642861571066778443358897677068017145939703111279578952864064342146987472878928479951223406193496304443488569318896880638589231318626984687868151215574614397889799111243020912534199136952495504704008877247765521041496692709296982986854402092476159298883472601309297862808441127608001290278823585695666033005147519269088723666948076407017108679605113620805910278481229829234145109355442747694687493745714871677011812806636965149740886763528393595236530762817790698362688606483119980326792179609903312481014086218068693806992497922764916189917699432992343257337310578462046953201786943963877767871041477483313373147275501589688725939743291841195455646698964821144366591488276965892593353319619221906149732989838379125280211275359511660683987140728333099392548098968573551937362927600451794748685990135941088715775381587002028554219632215738464507159377888595370704570370229382538692698203555683369518363567372319996116728632591835089299211074143824666131227592387663582749319663107601608350949854446611528461692794286075860366850128360206970497909952051895249862592568174312833303682045384453232066606626707841056194660609382247473856294792442767865841677723812727376869338959485353139305566843249538248322917526409536425555653468861193729060714774507137674234296621533771521157795058143792355829793363752028512623114759936040783376848478668041062594596640834945606070492410619600718146203368476368385146845052343517955225208481693642076448384219227767100391103552380242309090305769991656423004662246636977547498896178392467191300195241150150936430323306225658828540056346538475992118862993195868598637697842369915474335584389379851505125388871591374265328702420834372951847439348609928828622946555873890343566100101115625283379789527973849392819256750975265573264119232091134562889781378662864612231840150339138883941802059204953498912392766285677604723967784128610353372514333898593472735124059173542961455738573083249765901706280160348628220397998076789764431670534929804148507368555891455672088619134352392350998925004614116487570611301983523254364657857917732646703459239094950550399424714308219633089322775922796747762297843297566764733035049725558774175670416363056453284025730121248434682646943211212691314162587844729375734718103021160817669905929964652236812438549916424621402638498941360601813829234369970878635747794976615632732335752820369162413209901735461947707295411278539946820380915073975224110333716802092951118839089154384188416290879084081660130955662574822044425123940194048470137518528540501383768815714377421402421865827383628637454642509611178092449674059128023469933717506922171572375065437243238625201811556711509978114760094379219772424600505673279794590019542724136682780518284593947111528390134399891110230308264795693711140004828313115001272640838689463990070985543710425666453422918243476765072772383066106818403399961466797107820961219205445987883547095929167784565888443596911768299125250353551329278384503383900120284741198261084269375939996222468535524908777182287771045106762950547304784537897554432100349248364313503232262209437109802482931818743139159038795864027948928620462107288241047387956585076935253081349675162993504259435682668040870508894168555535958947900430428610902153138163660770174779492008791744329848803222560210531665958241311985969010099726290727240493909481456420773609003896378133672873956532543783836759518222539809106641851386420051580550870836510568506572459674965083404883247299926492741908974937608313209537292875618635275826383128533443486425867748217457222736731470664894003011538062074923617903515144210984276751437299385098994224394705691538802908004333774006413267500163800669015137990296813014118840513356773765958979692613838739075350319959239641356026048008727810284000438674689467870145877591732909875935337707435210593447434484984898893082112541699895493804558620573876043461110748241626307776678858871384439990333949452992627407938200005781670310720367197090055368486794756634877727606229939770293635640085807585464576893023376049318628016898073480889521130737332978769611246175254339947762625714104445008451240729054161996976025820814082878135028612120094763013507323749582545330936931207620222488061034240327803572372048274740973463957350871412070709434493634681517406412259038708528798837484712170778012043344180340118787114363047621689208891180030626634606740305675979369737592696303794836487673137648257410396016265137422898085369655751108899605626421643807180385836467318743991410179835110090164662770497160535923103245118140541203467292921937068794600402405996267228049542814961652827769842874027335211084415002126638007690681945054182106691741061028005192834373977450363453579119695971182529618543988576901361886452463590395828285012731866840699820436822969259515340728667364156458109789395809132673266475136106355644104652067100748641151903506418286554849496915679867473647807950524416132576793168768705296577868587483477170206945565222085115209319968055765653070074555932498329097587912258074596785179457764116577460156902314539738462973897967059106987364005142552278469643907282563288459521276181069366678161002812670415533927597093600988658778709830386692913010334208258064462830088169962651343656035619717063121601412556455868914558119844134203566951178927896499715445490256130750526116695975679150093232207059408461611949669819575879595160684502688558569837700620140774189640759090071921706664795469502057602138909958592103497287241868534215917719103286590843896786388388847795403847952503328656394994785790261211438940275474005301725166511395023762918253785412174385898901268904431237276399597540318358282852223211473926779635832029906759447558287704262126777211335158358936171221486802973617721173429928802602704765436370806561692558454378092802885517695250075050324333649799972588300042893235179462029074785223087662822796529252998173630483535485859501744605366560892876504098577826691387274682203360835130081266050750059925623834219313802978922309211543825383506505757664018571196899632544647582626134444482296177102491719283824230258556153688350023010913353492806634994359003446463069103083929029071977550914620511510321398772745712810472840889219361745309644246715667054334157038581052355612694404239226613809066815795237709568322844062373742411589466713278994520438405162988323553905232424321457913232632316661854532212455935326383851011241153129753230001980061833127713676731035444362294757801085497599814006726344015381086974976690767048741518029203048646636212413464687390653976018435567904139306937201837764303770876702610170578031277398566966654905641296436586851014371175119260787239157269408972464967063367135051381224498290321085519964450219814087039132181412985018715798298664253072848568645053774828894253246032084533900671107104470835338306580021381848993045070581994437074440602811901109465083855478764816250670608935299827506616753801145970248929664006149848582508345848404387468839407376224066242212372097460074450007156484572992912210593321708861489198610727755615589994737624893533355797625635501225779898764245576088103759119949932637358134083462125385786376450694539628238665613023842595268684598478689466618162965238296996517580152490462391952847451123930848996407392541555755351446748824765976796620190723146753950400050298599071640245088259351264320761854939798581318279976550251849174794869717082882385249225855078163555105116417499282529394619809402347434833253735844187923267787943090051209952438538436087594934146887480980179457560715704728908834533367387303444799118383087647394634062040086481056182256718036744992180871076039204475322852885923846338766699500578090609526734111681630088728802448238613293402581831833785065387754484113302562590477796272550069320432306983522367225797872952487587369782464757460022840211293214486643153695645954452018754238683933306602029736495600756006975691875137255418481612768430285033869834232084652689924095139578915072500244439730085937309595903017096188191338004040718624082810048906592372613762447228084614826164402111528062505877593128395340586554507076079889696639628236246176948439196555467995502110877906908478498522358022165407891564112782715413815338069836072189996258316488394029400774637593186685490496295529818476945992939813502040789841885406952838294998609838896152885873467071958478926000394177964175403390924750706420395139607260818291707898359049013433970979114420237555272236184610976770828424876174398697974629808173883204205816721996191758168578296748163903299079572630921566079328620432881844721792436559045990584827595308750022087266916125685012481842336898285384297987932941195540684078161767832149437692747170171092718387581129120477032638112819398316372434865988933243397224662025442644401692316589066365416201790441772692089245578763574432884316605998032312549813767893434930012174500333186305583721951604203131586516998414402859969998874141319710823299415538469908185185343344713038018833542255676686699745548508943310735650399878217368583062691872817804963789910577991575951815026308704424915034990900967458526714047076785827102233661802888555242967473858588205543974340869590690814437156621290270033012430899603410870606111157959890141896482201185296727071352904705524146156873600376450842508660970028493728491314880405454499244923465862378012876104362604657998665184687430002941341470276510155450156296309343370439763624532696109501803242577176748445412165287425746758817898779597346991496299284625452351006195407767380586753162329708050159653193627600032165773147104168306077680468764641886901077279291910037424310323228943611963653964424298488337762632191635261242885901797138226771659932531689918674955989957628170895914731307361828971896120278310929579992332262726358582259373391519404636940336758690210839115196296624069580310956442431785737324275564910612873907798466047129642785682117293974090076701340353466719181621809119028589911587287291332349153341706977220408584753818035940082708743002973253517844637442947286438421771993374552878665529992118057986626168043705966396533711827958989945157690452143137187925340460986584888971086488883550665346673587819030972467529686507051349207492248748859988114667423357038348872333684882995870438732780976167503081788541712294353085574946677360607303280836422915326677073560252462531317492531514377423157069001707173051080621504800316280260486342057817523725960361454966436608275698517566649458206491407951494624592371386305744610551938999976794044080664073393354151701669420471229229895901673228334803870794770793208681110054408854473699344549663415765297326072622704775200184530992503354394128509874971617130621846756316346468319598401275587395977804936149676896207255986831188027013177735798254190594851992104925849614428914633940667271085574848423361908815387215421483695093555093483802568863542103151607602295246022180342972066877107157109971921118793768530976759667300022568907886953487255557530318331186768832133217201922157365109120613858382306864653474618596942167066688367875440565879034296880965487297722198465729137639241434583744373756204203332719612155806604286737505412578817623730134727246127376176273296136571799037077528907630154058244031838500852452820080358713209319437465410332682351183108942455141338540118786250162941307985954623775503578001204334816589770504126405677606958676361755989223700629286806311717307266922802195728511853150770129081417484125423514464546064718158071637434475831480969235031924341378174189465045608709563319572336744374121160129661386010408803373220176806015098111406766179685991080326877011476847978946640686470195523980891412983832015257510898003294583221269979387035885156510387681839150377536324260567913121316290046318015289407533775157419353942053735059731576228235319034694401838378948059149436972345750494412122467268204628878674267554155732989435432989066983885001579769917298695836575216656722660071674457906062116747367952413928651004580946104201888695679766901180028838640609813835467532341923400141826169648597810482595721015973553677786144614889837126825055069179839845606506057144951569065185748202757455014417583143814102495591603534977453231423971227629839052214120280085629725858059728194089544914856279887942586591140427256527956715463896338187470854019143343180482910591621702339519395140205379909244944900594870800384960521410522384072873822592130644228183028209947531687418549989874849915913731671387499759105763657795967799915815497210514069333649345338888270357895985492774332162000335665639501959896616441353254461735699485624459400266984413990823038055420034020510510181338265016011768007963704936744390442732385118887564918958806441969853975618957207416736259826562964401821477961462667917497474180055950380403799181739204054099252989438726358018125060907055169604929860921684723368060402587619620733585877629577792816849291776157509612445685284285020121699921388835014409489546198891840050081441383653362535981914180266540085662730264372348657822683664037034929997304965200629397939788284677776996145295358016079095577329624406724939124022161778181215038708406861525842074430661798532744081212495448387375889206195791750788295520804372899103502127276218534605930026443052627147800825099194438731454432153283938171825698002168222982112858935757882552931828805116243470659270890371570853763912017601095416366084049614801378140478545358258787896170492789502238025849863391415317161135188494321365615351988824428874508140941232351810827487342528584191452769563332782544291898894629346962022145052059461424531917917846612156803866433521861487486656610128330220006017871583676775102429569284292059729815925183060271160989500822874701250828614012432783840672012931519381648812696303519687891000323725880590969699549752031250900282395687195798414383065625438710685296093211447677639123631578787183619245106248252541728417690287794526601134229860652271749002242124040274262048842496077694922699795559760502394617288943677341782488164963140977143391421273862431626302439981009190473786243385302516627174570816175401735846374424258310147931436698898342196997828483998902435845114234781271779028838089277912798449817381459612331937472375638451833348871619895774499185103566377373537859359054270335678668287322394474259146186988139586975634617936792197471087108205880623255166897112209304496769138702766357562090077946431310224729343180697325761211772083937680796559956647959680541561811406415719055489561290727611646205864345109212914116849015185482648327164480177219807590158959945495662977228173712085011134832554101032699628089452725680521778976126252819040751678245863046982857334274934929611093372669608675463448302680716392132143088345413684173322151210951467432888933697189161998540785726649534390393166643135488497940519968001756057197115682915630388185567393547441144429741473791696319779750352806147329252564167591937545859857624605391569018054466433474267782681951477947729209166658339575779005348974807700522658621804172461092536126351747089685358366542762396256286392606585757118252764383048974805820524339299050117018413349914707348432450833372286492494139337694371910763426140873793626756321334338634841938726052386666105422342114814402819287885134394138001191188104827008928273203727692199560572155978288985217221571296274941770332921321248085582976283194969578755904309566658602342308309473199484880156753877820405127348886755532820290918871762872522585773569391939774322309830094877674987888824601210912190618998529967018824042605166526958562026281562719762307870883895493460215629640674983017488136586887379231075223671375586901478064125113794275859438456194829493105195797155955636749510444517962619983340716376155088251127663706872883824382872503583111714248911554526987791737158273358421187574909102772992113649710714054357368063810601256445021041492077713300570475961019971783395822650259252463879039688545049119056154989653071262912150040230186055368505673243629939973227292014457249483270286373410638895226768312884432543713162975139942243745459025945396361794279070277071551887335295189119119257840831088558379811281813454922317430555481232577024067701012335505662596747368234434277345371772593687683649721146072927075757521404386862348813176249964040996407054596168210396338911770738363401157068847842708829593009081342743203437611993028052862768002593976890925546854129461641916692883185609175133939271869676141731083644436852911485459901573269485253168605160987008784984917379383102742376137775414131257544610234025156558122689751653854767349041873176431420750523188469897152794902640194575371746432559857768936226358578807729444582710114133574573752392881175561187898069858709105521038241317047244848943926670244891202500119266930208147144058074934255372865757860188706404942945870954676809525155179294075663015446493832492332220959327821873798276536265911688953518554297723858352878972345256455171139152245205430521971617592082867427307608364157383863041424300437354128419399439622723179825639013436100067962570216809340873457142838521018557557102498258945558311790236721369586115231144225639433039293576313094987028061488058047501410083237572896966090015680725737244762385109079869632954779570167792471771938262686469204060646049562473081854624172559862204946832314741959331538383195442782403106576742443157023816220562168416177657398202729555989922858945008537707798456284798500193551156764784568463540577584430851179007650948777946729779117156084777534544713211810828582400510706144032935550364866273125464007097764256528874049266041077469865546605753229292899680523168412551223301171502796122442548641923677376241358567019488372256864968375747446555245622525974833829499471162270123106183739476267094033226376833903752787217779358371492207082447932575294535935637858342554601256275801173820531350780668965855990975875655171503266420788269991929263035107114996794658455250025310243113607750964952407766960720268928045383589918438450081822323065930509016857748027992607245557862664221707852809617877024269465804101432758045077823820172837655301586903756289833607147991412760107849857162523099786942422664104175564555439940335061026638128523453220057796717144726118332098247802943024243645148144668222482381812530882765401280044492606472881340472237651552707358090872654716454144741540470515016066115129800070872752994298105423646697989591975041650844946529781845038943561878874498505628883911097881896549985887681116929512145900260836409323299045674648491357566550750566321832631642198646642581530447235007237498152263286923201330961719057986439562745468849334360199178453463694658515421569889528903189957292987403319516677477083950906403535901988671532688288993017616056465892214653381437704967365683200959111934226690969446841888613705445286301251046736945686042014201612299161731343183288763104793916380685668880512061581998374859957516975723929079804773258818624932013068966120146467338412778248846940749585395334183597086997679368751114349453181418849563020387494805484145214524460285295141333183921130318339339734620828122962443736464526372671608602778061060200681541417741315328061338679186929964938304034796880193550144674991300520915448337399273293990363610727027375421592873651095562445002589771434375505121970381132686743398861356824471958183089886254569953747748864784610186130848427042027128691657794881418175962772709834129755404762124547666925283609226073764175667964898031843650692619947932086555073573889491297804142620496793497676042886887978077627280341382214847591610630219388572112009298243778177110610152844438423847789824966600027257586683407690979009026604739733721773606994345072499443141903900373963650537053542779516077426894209922594116105532014505425860883842852554808785699385297402532491863757746195533956893607537937977513126970480041969278454537703768335700083644385396700086399413556536407760554496064319724553017625800349821555095273279977869605250004913490776513936393598393407862533891342570208737440500415097391346847556431810873964324412867402592216766818330873959526103204619931288367797291771494023143444834725291077975930966154019862886657262761394227101814702575802550871187580720972575926563478686338441092583780825432771789768183198135343795781601277302555732130734107384791078255985552472784229382025564703531401629152400309738013122909846201931039245818282595826002797579350314085365101942790581811535378520685551177473396603143350632459196614835242605182459472668343031390369906047123623337238498358222362922715711378192680837328639157348842001619251129497854993086261711803602777332505183742175442450909551861708824403761479057733739689166026991008581619915916241372952550986615359495496226960180076055235349729692735383659466411162393715839096321866004721108436217366118864132292786624966479532576050468821614047614067396252865430097390478093635793720527642854543054096168915338453771062612788213483127001659208530401404494334760065288221410612417327234986642533633992294223463863889826247303098953714847333354139777880007806316614283320236538192234241424437430000788420951304145419797510912723256479360425918769518436614026402941434819245529245119963872455507226136785861708727646641188389656569115638555962995320512505596647850155464731343245374036009889449887839505692335591987736885719129173441982098352190292153147861225042099136352910249917694656520092970629123097012850389291782512018817697259231413055656428784291791746415110226438393696399211854307184176492324008176951228873914017989570995400138966134109101383048953404460099078953388757083136664659078654305500139499398172478643001849174436046640732622865253133393900413128029717386134212691083964422040825436652277893543518195735909190233226868610723885652545500584728418764191042341876848403081791874803517822934287255294498316429799288663696137690496675157034899642845903521028668188386652738961035248150047444048775068060835798173876961167651740567721229805387890682072776407310112871198916089308874230356718104919963121895089197786291559657337595519914737313483176931302518828222235196913787564058944087012719434475929335441687946815429938811374220065409720179022584774418601804015466602651997155705111100277443704881162669246811035647935009130602486020637719828058051434676938696957719369949819500793234069377483645476489707522069615796574198372716433633116294721822514350316575863134003998669122112937730452802502186982553761814963943330889182684483877138813816272639039111863580809870634450369141617833466370553224137180997011169864368057058516963466622084682509841376605766424515255445014068218439091575501035472501480184968511343301321416619019716243303037075771511823043026951771753234796947864941887232262626973282817561716579598108389460459095843724085023866364759911198660137835387368544571210049093720565386797448140208941114842593933820820485089999619264046751727963785197299384269055367645096130519871017899292667050779452869504913199577529866139171888909695516495425702402340898325979471343022290731633141575642389095531032314443037092774839605292528607141249976783112384287813822446809441728323686790048955670270286896691288759835376890805018667563959236375413952250400906633922068256472040790382436417024838381758074234219572250057972415647585557145371562817151345056265846376974522928311264390422216116701188271785477405982536849570871611150273164848639575216640930967294650016548999583301561323648069295983990576525966197839159206858957131633971521055232067354529894808726095920816661119447672679437141131301891743306362658376306335768049938149062350033440215676125383024471796198728296624518737539786571442815390496591842244830295245101862758939177323481665754045287253410349440553585571017334283311547162092868332823289857849525100603734468989313973029103439306356876470659985517592987622284932545374253911208270410837658330805203567140779199704182283463233525110411469808635772280661495862488821876519282005941638424576402370892191400080090932122963770609310312623537509421621837028735959430912117217749559006545721312417954193471317686677869655842387895556909899812328842135489474491635615438362128237720328690011072558452793077358242280297389254970439345023588076674388931653023307418512889447466309856311319005111177277536392986595628202360968591519544546381719783110582719202773310909849900610479488681416237536523530978356694760486010976014455488076145122480932424924048441033616450887815882876570677779954561479904431269506258527756374508210750744390247945807953390895806064228989502478682678620542953758522854169999659026824795448262701604548922293695418132044608658112425745735245140239053847662516852237125140259990736239347393986009614068031607635863919251444228413454567742163286483071384713619341219348349342590325751320906674470084181766580353339265425129103636974260930017725597459761984004483340466882567460616943787463797390935029843334334013830224299159898259496380684301689002388392420912947810033098786252381863153556560865280894495601385180608359545809899405563566655552977870860084907550465604570281478052768059768180025275790727074121644061366690097561382037740777478066173994102811409553078529001148546520099476067931526710578152779195140943284107608525214328645846458472355797283495321702515920910535537158490501226727698069557424954357865886788641421151028430593447060343266082981036434551662654695774721045576740379454924920447110477343116099027677815559521912861540231153196367653152773082589530604598066046297161662150678166176618475707416283995641898860787167283951235369002062487016510834275199311918648031036918916505120090729321296466014104312141714814633240997058298109692289677687119551449254273775747686666144129455318026144968596708188545827032090925861556909468142425805271082824146747057433118905008863021187780801503788499047868463178967978344207151618349743683577162617980848375712074994302312317288534588136667293663298689884986577119991752397808639276663727903535470424617920000554672105180359153541951544587410677414950580222227674359448853722200239443384895174756069072677229612153761617899522438820727643568944175123462467807124932995363381746622639346371890524003367263448870880827838738352958887837728593290436800876006041731445229484568459120672447282911684875790508154906112588302729763620405290474357545037329870398624401371567896768414693010360578058897868183839168406870626724294669308363303849037083514950387984773973825768966290162879287177975156785764042985397736152904633537452127739957605246160633654418175261848451001463563525427332837241465538936715200333758375201169133572510244248358792400358581658781814668790430692594069282047616488126015439072592574090868734029358563641865448917208279542461882198301607331515636213524468045331016077797423342276999630209828801323139680660401582022335310016612558151857234112812822983850793362596885484972543573143138893569346612049130811801251802504648216196648781858384925198192460329573011063085650378528284848189141305930290960829552129717463101722452338069146983550092072786455352677138978941878544313876973779929928586290157349781880966713465958021712454020905192015038367050425771558090585788135093363390057751659433100366279587472847706511905510382403559206780296123197554168276423452800512042276340152297705842399620762174385664018415834863404081009146409784041943971901119237397514141426471345688013550420390933677821791907580584507199379687913686180228448397263381381063280242724531322228740195098018934834472425086846139801125098640478417959786532455802538252390648105626885936790332665158834420343302869649769240831465923149749983993095595761003614603312804671654316440563584432187528669707317723743952039672619165850792467931526656074944308900859663477845664616704363203232161991707889625984402125793457283092020152086097690957127511726213148018841247054107613096336612222858933512898820352582811866582772985162753819356370110231413237300106099541597691116488293315901826039771338859289802847890979688131164819969946140475806312186097424884128432122315925432222730141541194322641064598740144947692316790185230922444064557817516673266220257424778514391941890199885691365258017181595990537589222054790699415745716478581549912675621377688556957800441740764891433653698004316265249747095453094279928841659168232207472513351985282337841440691375070802028753898939415868010342298807711966833472331490764395141900663403950536642503774899096486194873563369967683316221833636482240228514976850731592176573691535278914837447437418671252058194398661933424866091301084520575943902485761987142272024275769200360899066904231913010744035433168893557747307711926445891752840857704449827226759039346753694008296220975396243590927590909091811290358779632741711982658657190724348041880651812010952797128784444458332166824169720981809496768517155407276123518555129190761884476865809443599740719553989559490639423760543427774633685316757003707313201564661980302748060498159129408949584717069476860255994781447520348682299552686506877585650046351373350242597413093085251093982814213190579030274218880479587373664197456059006094164674406105729976287467653562670585254936683745313580393103854591236895106297587737504469311925501722168368273923475099691343995870433578168425037571496382249200672255883931148288512401639747891377541938563563211978693921986311761634730625434001854776079522478485646898404457632223854730485977602378435485374403281757490854594317589897179138448605422884531784462272839128180971694548087340524905825245892622004681282740010974647898444731088569546885394768511854970675847276404556225195686032664054303585340116248591133216187244803042766973411132941667365726485308124894077589622140643364326261713279558084867441738402728543894824371177588541352408886132016442897751844493323974838974086401495459545533765168974901328230108204641956602399439660380836373523975735399374224613791798277469158559033087004503762549138753534357257835950364718757178875427818099532449932972449591059798333786626817990793325329310695843538623462305717333905021820842183668399475419344556672816824938914500409659643423797988555589256723770708354124714273534386606324279329778747257845864186328202823870127324502840186956123223650290382907639895468835821933687852184104227170188948192568905178437014058788805488949488868539609696151803968461679945735869908224991839176201291403410456763389539898162935385015442433156329295823245831474233414528343515520495964913855567496735520428133297617861840733481530543078756118437404507593688945061482674559534292009281321972309955197352151449476033591578133149651766261200329725343198896948981943112760139353315760225769347212489603629872510686535156993732147764325418507887324473077748831272316968033263456984964315475127298748602603857604319186430048759327142582145568511564985503090278512720064138619350644259195363100246140906248419048887595587749213897562981484722110571590009460765101645732507748418738579498382257405188474001731699660478241829246752382848984953341224386132416001351440368106347108042940695351287844666389327376098990030592785722863120487569781742191628847236615199031893867226006875197352363199622960981117937893692251188607806143788579371988850611589130739251579644316780564941947335743178848001932075219435125759723106846511394285415312375015424536727956536715858686952935881040570234062887738647710494546052197813289933889546101245606668225549867086157573774336291437215522956374275464224831809823123451933038210978086504706352481088884763105429059344260979121252421246960861325513515915504683746564823101920313287933441826959441278173201369845335688084489035549037170611474412123294693535535480069916669270910218488482837110322853153457358748414437615793358607390013430792713774580941816415132314633540216161240669119287650745459463679915390509629674096732464929883151292490355696232120071689938114276820451719116107955563793128937052461679358505187193218657515488337607539310390854762748171226354315907938541843666996856409631038831107859417170422510830527137924825085553932950662453604074358824924412093690500511423173517382431851461365574528900895664195567049403476196492140432465405757557930240861725045075311899731082843618501448815000041121221496857794478737096248616564395309868537753879078589977497418616885745406012744190104823441355997460005413658453240635530057251361318760164473147767098011536532787843103591108274311920114831561626278310897864300374556980459598541477638870994951663797695782624556240841263363083855086868936345002884898791776210990315751049509502359954149967891431500797466098434791257070570328005326629313639317421160031700654820936536503866718103559765665841107021240745905141680398325414247192187854160388212250723747634310212908432224801827598173140688291523222913660236854637399992165414673396090750587889640959656189362697176960125414148115867867028947069653604869614659162899079986784583319948004593351277178632955338554567185198491130456765476547649865034119246618767809071373902262640947881827989834337192606062342586625329317990120606215091421222674601032569712125505636549233171290360460438787938187899343562828928602064220582271321939412564968128656742982084806595764298544641219186391501129724912432831129966163231051194235564555972419862314986460974963226542566076878050535865770038966482765709468544281295863874136037739183739630714719305980408021895010678034245980092463523419581044019245092365666851059062980899227153834063419222712944454961795866540288525652205727536429045226713792399412463393867441679532502175751453077030906411850907756967931700648194245165605530290715821645201934711888664663317147178241749771262650512970776819043897834484812222782494327214551599893091042892123916063931113305459180136495314798623458159744641850030443577484818891767903605535222788795503161708634877807208052023167535119334917140263858447717638302833390131125519833835656019160372399926270660807983176910097548177965057826130717082095308344055474597657225104495743366356914473492834242686447210398493302642405888982120365481184195109584311523955861925106009741532951905824213500776439341021884826944545977901156720525459843162530450969814590998204318802174385192917669904700587244619643492554617889246596925119096447103477885837632740450562338815262342651536602793542994888337772245468214460613448027729456342278733432455821982457055602135876156557226661768557830315009825868153901106084746212040283164463225514448980529011120429751886366769832015159216891172346832056773981525004602937130377386670088870147231476863246899740198181916974877400971177731536662806483846132770079508294769316642136891055103659539334494779296658189792526089528588348472981597159780571050610942086604499753807729987259884920396401245777338678563745525984626486484459364617084194549582589838049449223550398904012676609448859691930153566927039292712768657044780135469048936647330045458344784994652761661073339335110712573624695148514631558335351464890284467421124201924589584046688139285472211459312573015699369593838513719825084082954412526878755473171870788413442432905993489752263144897253191492402930935428919812456427722699487837147799837284804049044760991671755475088350307627962826237372245244380128295522239007076738744063323580940410748732681890818702799053579740554708361300514654177051716215586962329361684680089980447194429019959654944792262270047932230824987169601561942579679487088057153338205619561851488232658022315519388113159582371890439604482153562973880615178012250471513360877709800628480801985911834391317181264305214561705907957355201988034141890764844220823514879125660497893424179725712465110709365906706075050551696996500059460528308415479413522085255277932412468618391773552108611564487224098472710380793358658649161658979539350670310051214952143602539266110661009744438180620113845604849955148070114779042467714626270658244415809012893400149076705115288542298899236596181917106389780421416498926376257636283091580671638148302197299661743363900059463776360268974368161907086481189332501494467056845451406916521263642704439416510001235663601647856461130910222271335433981166449463393553469355245396040587315151399400532452011559305248980032116508669737874193030304852814579247891821232283510722479864968122759012639298307467122535676281013586102189862253046346631607824170566075793502988891487525560215452391781896261906489490661112539928702219008944621300542264439388862449795321710122908355492550056214909865167192082958034897776081419201021786866320859502280212038293968821134710073335704543721612685336089605230277195828092892153027364361638105192360510751552266112838919924134104634008535307443767475230306517064161633780563036294009993377800992440743769769406426695541802583049938187380874801093270327762271109597771483205833518600589398075036475569903950894464842266540894699582498067976017210433555755616791047627120489435041436714373773003846132840478331262353925612766149255461143952859166984919426512696903022490653553081615741293098273508428280026092082275075370115202552569891069816730558088600046670920435586368908461820302752864832575769208767336883482861117942794496709799252405331846545509660834053262301391969431734423644755130162257264144677622644317943442581732587453706197743544579919676182098628560839328150658786029503060896144126012772976800971712310606049259006436407224955112358974638448592445416737122504390900754975854645119490380449573985883951840730909973920086788548831002071349769509403660691346861105209701458544749847094482507886622596355800707426527773590382771320230753825740450182546680563513024068105994495535280316605613068279937118796070305595527718692414205927876015249210362854275285120790522705333099115184830778310773772500667438469045857139270651161145524804443554382023992894376599483511109880937774138857835006640735024163998128644986086872808263310812577734610083116341006075113692849962256343669668931886549573186644790143447704954144021357696919861378046866010674721370708239648771567491350674046389113523413356462586480680388412497869524542153652581783077950054787440552405070793918959209559106699464599428190280117738468584271587885293849502593556287266750258698775398678687873130705442979527248556195365450697173939414610818420548640366356846971897180612407915274000775702583372221704579826483849918336666154778465196770510106071811484876647073404103751734457371579684861357522689634446141726651327991865021587606101258468044325592331307312840994927872081908281325741357628699985652914169756664901872752092691643366601188174003119753613642401246304842013836395585271220244285685756572611116452602922653125440135807059190896086215067311758188244562535326989418823166327943522986564225114978754680396719440430541132408427224872917089746263895418933114080695600351644910938889434834783873112862839452523702515224528192097755499343584836580650628277404993644796400113252036199757080255802176429549243026870351721360633764127528333749625054845781658780284352760331908255988910951728832651110115633808283233170312313911811434787928138695790211178717907916200226800839901611287723737994925807975969901319220716575178273473222345932359900468756918236635301202386889717187368440339412147658462226369244653162152631407164756387719903812439244581018200031231092588384813751772505824023277712098647509222595319593063488907418427088818683054395088724123094332681485101981506893345915156186824247822335399213241392704719447741735512047659799690685721339383712499685793510111516828722784389880726484396950143739638125155613190046920582826765846131889454769735056746270066104121002464181980174361063664933117002370393848669770290808411280959039041073927874919148293637063333079418108733554885921842584350179840560989152092580950391873793538128248686753502197845770753774928055152789360106953624849527440420179309725538156420069632506177739133276334015405828993052926938764508582153967575692907180057161252369511724346726592448502096197726974923245602264006512574946105804926209991672201756561191201703454574037507782728550417219193658436394190013171605508213620337842379673284889416530111266243184131298937944051958911975334345002939985644384828406408798045883715123679175790124184037543549767421165197409398135256711193047269955454883693642541627678944653837982080414469898486572271004097268771508046088210553137629818683948435199698945217442429421669507066189610787739513317745867264216544337154537288920383482626441502092098780196876038236992565427600676909050983317520223598203826098776631808043944909889689251680935507806761606493714846617269412251241500148682421336741188046267593731908409350300850716630433250258514466552974026590895605345702082368895405192649115926484927191510635947307642168343000754820287740554380596061861890679347180013320996091565285733261948658017896353710996646934773397923538944368497721066294301029344437437922016592306326598253637841594422715769354123372431156868444809527728258942072757430024426752567761676844967816110110207986190019636343956334241228781065234919302152152356837454128817056848609553445696723292399746696168695589843782419341901513834416130171525016669874413494199404111985557526030145354070861249990096717531993277705351085140216305351275767107052772049184655970698635925230156622408772031311043711334976582994243263960596814009168822522028135892638269112503733087535247396116843565779493589358513433694347850466666729184275424295603960916311295738839791795629067016967757717778615199396906803938012533576001577276128816157436507079904549439097425012506945529753019319242672122368164927656628060170411176109114784701323154789396946514442685127806636948835790227019172085243219445094345259225345825765590526826301245694353825536487977303069409658562645275554118765619491435329234866469386698216424525909215105241011091228258155455401272102241528022645322417307418482936078507545878103385264976455910096120142531780034312057955016908376074058998839173267451957472529164776110760561752759982598682209458931327953704250321599870472210871921381530983796534552490453776222974869577193617902641374903986939065587083929023178931986820454603346265188692085412596299938671961709830878416621155235466189637791209477043969010999724365705517147274568597362372860167293756767151134925962540754826480730869501172800745563808051281653392225240960483390973423141682305947636124438404916335018780553518850337812610996334763807087861878958107595743325362308776944273761538169462380756970408212400849795618753281083434179395686817225454589794134868080084986168794804565972713779718717183461912572304585682154937574491418196760241180968754146965216558805162661453698535155922908669583185712074512009069712004640316178798151354148211930997517394099931766555761681145021941507856968940651912973836826006740515404734744786206448034501033353341404655192059748262395385611722855596373321800843136208064179732074652515796890719391753884757965143076453877019257597709788342334585888492416393558289087792715875031040263944868301610764390976093936839836731079854208634100722532624491544354050422296066339070131380935740242808815680148068538536123650711762118067350929456675066883016940620858906625901306977743097855368317568590972245768692637067735604378199550505410906026079347129179914109394665619696311575057294486892449750948359307504301005164598210747538233278996784708716796021441383714492496483503445772771410889924811631600888829841415103559059468659852696761536230966700635828557632341060053581672169250810151375260141908036599440116901331393688205780564640989964704247633545168795086988038415107508965750241777387556356505624955202334538732698135454576211462949967989218534724879956040864338137561361617129667995486718006920663010724382886874323261848870637794023163450023710694436456758172694579363744107521545182112787873011005180874047968371303628666241011796773920343205782185183709172756129931556576128183404494991870771968719824777737012178772088196788691538790692795261031330253284959694970959746806533685057279535121679538813665991971886499135109369151902928522194053358770347147571555057761777796966514691764962271384948277299691607647760604583527988986148293315503476707623262691760333789646656282860720098885419447151810554931036799306975764769232767244161514184775361308106587848112937782787828937167013331135135405518837504385560361996197170008915235568556515676869291412560788579400761189610444334088975291154843149423595097688626704951840295296318025324190248293213727619046230129430247217660374221815041402893763732297965223006643603852182173111076219781491023725453264742979177205524590759072118005142393343931683391369857687085106956630456345757048280932192959575775059874724984659985109530253924912475949043905801562279994029149514067094514675205675433262723394538369897946229669241197375151833092951069394245720587872347860459076452595346361868377426782958560847833483022058202696826994406507811753821027351588240697480595775850538321617202556252240963284361134227523678581649875677177471172063410642979148848544314930142473757068929072797759645020446962739615356779220396749107027615603001095244594026939155271125693635553851100316696781981262874965685595230869885664923809590672273027868425448231997167180728444586706697309304291720438244846111464624883382535252133076540272701465747666248293209045329988644755201512092892834824978052062855160828035549108761557261672559966988166298718006705115177380622734254644675595866498814532534207013035838479735192855681585278143574811768981613073682093486724164257228706644944337313508485211985480827036653544209696508473728183185202524253789697479534149829172817222110305949208834351860750259182773459137699213497924755657311407560029905301537104056091823553105944686708887191252437873008934341575173789547631621211564747359509272050901474855281625332746341387061421127098966745912818191558914860027215104483205386031722268338628415668352061848668983745310248943755470513297968022091610795154008553652275065081837635534886791793084156977901562449144591953441269451967943535297247238329989942891216232629416929481969331751276031680401387999279578903220329665209136333733997150222816205478592269879382522455082331661880399221879627485731888153989943229354259765040053617410464974172178553661013408239717603287463146777503753851873867218750272003039585465847542516123391445960755226771480979128455986442673041737956719925723020266823711270614217668087903900885802932918529732172579104013136550644275305198695080566844400690470105490315829898168010560589468349406228049580317090315744421641299877112589394881518492315808285377763374230850637257412464473426149957099304324611959599860696273683990840342894522092604518275892634730282404326322507142587765845732168074563109122264278680900275449069082772087834273630265330995882201706482284438459128724032883962914396833664329888832555295417777771811607111547506033775376633344782080538475250521377340264182505358356809047764146523563151255543847347457280458870350870071076753765864262894662997764589549646185494147124539843498008045762889165648536657964659925806813877975505559062414811608681133948664584290753051033742073385661077278264627064503278852784228266700392145468300951877598707743081878297336074122187881354808111028805835064964791788218943186895786131426108082378070797560639240177622489074559602073314998007854173910869301257267222894691803061894906829394387811591398622319085118747741667379427696692430983825321450398209239435987842136967261031787079126705134781429552284081801837935882962376455320505772683703797146820858524022922668947776834177540279325526193244705886547867490584851696157979500996260893827433620606864673833520696771115293914965007698471956859909594092471753542392088993977238403464721537973272096945334923926338872468868362503025745022505057115187864796949865685900774344360236893619201823731018828066381102775991051700943586914352260754335396930300400317150627095261316566583582783861571622643936852459544649564266404605853196784318518255575141654829336944658175737797403311051300897895123552462937503782398386917191133291689755459212745843417654025405700054358818475536349385620954257689680341442163323484430005841096475801193255568935183915385468779746998956946238865051618695375139017303934117214990026540522597689509229732704663935402899813808280059654404616590317222973104588450732839873247764028179398917714071711586276144268116228289511728337347370239912788475157111347722643532248058843262137955654208151399521770363968494081150185309943242050338170139985128637846026105353479742813737266014943094015046826385231965655445708268676335817173055992055585455801161688980484059340551914116513633953470337005727642182332566272144404527044948801037674108661380561234792828690843005906370099904364406885634910879417488216276203532479273582955036105957510702143723573158022106700067652452249753737198152511897493602313969782483174719497423499195357756948563680191877806929187103095346177234315974613813370648894010940905365345312220233887905492170658118814869172184478328133880682265412836758893782595087663947034418871595303954848188698535833146827237260985285574152001666129597846265691169841850792735690803500267755909256502051471300390986693047338516821050455739489737322474588596076797057896825596745252362315872501962652322984231022370588106850734810163043844917703549506595779852161479439994473479265135577529356607200029315011106771050335915751480844859656931238149508922395988894945021500971685830230530512789609157588790705145581345483800291934034890756973396747278034503472470904036542968483292221708700905115328850472860482835853510220293044947017427722876585229965354503980611197148485684260988038162844337506550260785028405073388688867217965373113072887334306148356347478736459893805854399088912045471333337327253222041894579812230812011429772382611192034744618159748601647713307273283735386732510168380378379648460626965092209658172954071961088213296909147106095367708528216496693183274888335423627939913377841511562910339156541064785476459774550635684427683927582716311355531355183132381982912977510260732987136572923306750059098566624738330687619724583507766388841636653230054000319464535269733271250738431938117930390362707838981703091863806141407846911087424862178857960940151263245876297574411150455268529120239597499704440013590627815672310068497005346304487744661010976828576620772375081907418877206856984666066287488070402960168757109370571785688209499205682803738691610837266717587051567311276879202700315543508041708494968939108217887246818826375590148311610738224153601878628103623023870338691341629292973181601976938967538249758717779203873353282385260121950292751996776899174233114698447307680375292027712834809373972293064017333491856744829411093053800360023878815061408361670528231931286139040927220349135685152245361573998948915676053505565879749654598390486280218985410474223267717443747652934188604711033412339662258950835713263971736485174326728969705410174319528921263961006481990581950462919828468552969041152273323213757865095239791276113247213024913755234018700307960217870167220136695660926612253313548778673660346898502952191312452047791429286170122011034232844005566896595151481718462019825261280829022816984503597537232191842088969541677079748808533892377479004107564129012558813436002805307067222908565940539470299385015053897038495660372130820283678900911511392150343801726005635017969181354766407514808543147511731574236132102784581635781528723609776936018224226225274345749228834483515237589785592548824794338577542303064895298425142633898807429535359052264724993076820127203986610672048363873050784493020431843467142814249348261986748026906500658550324306628358950552331849747849264317764964578956243115396021863687406673660356021652646058711652129552214537381922882643287489250181226177990109642039092224188705385589727877846272017100207578685172115444721576539669181793265170623761470035828124634476227703381291924806811829806989810773063530049111333088832243879988210802998796970737415492750224229915484912625860404538689460888506287489365025329067084854127477181884111095612651333801065466808294700308710485898388598032847048795888582834201054259253471944394259253392368354433770347784001062753858683511751580040715873956032725013233791381701307946070253945815621556619090880905420757908427694543346549530199418378733163400210032995677504840791746340038754519932612081859094166813298058120461541628927578185013736924799029970707328218707232319945197874692081647994683116596042000541910030861451431607650802028496835596965233096354550771084250661686013249029738466385425420976992391978825922019111363134699131282447003193202090355824129211096264634236626247627225178903182996283898397735260251143206469911240307167003297744819644081810598085205452367682576251656094191556249640944111370318599198387287114882413117117417243474428708627277551140084631377067800138958513934761463110805779801212886867537335363730343658699936701940052842067300432004342835190839695862873836197865791278684659611294717227864544611828283802026403151408430175687155995991052448104859639645806913743190710815239451215985325023374739948757828876530514266715814896283395697048453355871760966591252236882116378321419689562160207268014351488424508032000111415821472102422846666409162584438778413929570314973642749154236574141971480755739700260842812236229033194679822328466439969059513419134200605186258883096680387032720422848095792486524615140889148335655923710137019380330316994308302567595509631901907711896075473539702632418714860977795305687518147844550996548189815187485361900554147032643375914655463659910674839653144277241563454828518746734811473002437746317389157313269580277268948478892106070965116039738899457807759793838215735219710364059764944883172226167682914130724956742578371121454130754122239041981417902630665152417703482638539232539538708371156479209935725432703237060538868736182734146941130224894525317779668306812149963245866662096819932114774098053676953763189194829194181868870673533488720441584690315303417817425271109754962820012381124525095594490603981787423674394970590226293455003765626249818823442172300025482880867811537742840521747441986917624115944041025286232674659100628622098180820818539782923627438673695275104968392489340826392690934823830259277572605163541389746615092576948254282709978156930365042817096555417294707831149480800213132605078072075938258408012076767860679457022571750294747625957659027522073258816526699028197457304306722553078116715963819166884931547395453948705818278582752592505196517137112993094199702040735883560097661780927433611289542944009272297238547682435893707211553110386588435534382412907402682177752254525978835937499632812516334797678815584601595683566009344248093621219154785809960755181870358837403642325237690670428951822765092650550514556908039431104538364751418155475485672628207782658175209872097547124739019119679614641997289020087252040337196737969691685096408647613938631427710123740200763246525892198233099930468330976222862254160461787405384751378767022543525731893304764111062645634388667311511321232183354861473759288674376839299463565327043794823690356769237442106032927124589450240381849916846968037129994508505258271392468574139759047477931545415055041884659993188410889713613639311230213454127754103775728026334985712333161551171124617650972117301767401200218092325277914624554328344072943790529129062179541460565425848347670537052635087736406852091892920375553491065764594569089368825561359972334719673289286879028431343327370794734098904672887861767619453030347875382272557083262588471919804587181324594591699789571518071643427756623920568093026631643004602901309971399072248621978560618948438906754496863417300928480944788242654830002598999862945897057347349348823522689760374482067644118480342689076937018804075517268562456671906052640329436024994988759932680484242852171102043250925785198178097841884271019651111421898075022716011576355020858726308624102036348386647810648949443708743398384983785053589139549957650585540483371275990300314088007887942073024719518620283258814601646891288851263316948971780501906770449250207630377332649174206953957919315248790937810523529246566769738546089847216462683130276615141133674544132430934127745360804446199968264999572376569778644522877612005530007049250056613996709136956147680691723032654863311535393560966513527827650969950004561880128803939775215316653018061142477293704408414607579190583026687241838504890708943856059787546617173654470596731223089410878554367156164503235922942897044637376869840881011087819732974971051946157457536786052897103819535300491776121017917179021591075397834432518811228892463060250908223739407047319330301786044020940593755275466887658897314068133305016169663560457087445282851718892130980637749303736295229648679345112981137485593470481742061103179847112929236281438592674278151091586243221074833981991351378863748494407926492015298943868232569779145449510712088653867667116637230550282281018055788624067830759123335383941327666786569000539035699916944870420094287571282618607498767449887307456390718253570412918825357457968600242902923975052968614484919752608068587121469523298158029750062371142032401928246195759715306036951094494952583526292434796200608222833296106504480588892856158667119784702545897272626970741137316728041047915900542554925636174619415151280775655135698596143549952150442300706001760061477370392213732060134975910718711613139102518585996645039885635873407356303813887649138720285015736576377804040737310456527708065414982733023627918494134218098900653053490436697680396894660286553713352574998079273235780360181271138944891093349869422095378112462025642266458364679504024908577750577938524482722486429683468343643663256680365859849036399362646037037488683865923463897687541633768482031833925986916406908749707127508957914443081212186957006748669312446314857832051435965282335848787515537473606995855492037316037239652380490548363822896655496597547109501241213142588175819544508384385787060427440117284597013544429553285778507758751642117048876822774110087924285203154099656445355205526824818585973016465980645359015861967601295474108572000171043216540810812360845464237194852838489321110845204146056524574143425421187067627835128397812992266390445844822342812540595041914598655481968262751938096752972196710970973200212087903089259921574681236160394244648351443132312206788509119339392956733354104351879934260845551209000898059434383277279522949454922230840578314488903090388040010174422860154433664691244528507358180756050016393075748654888932036692132350178190149311488417823956636835373293164902769406326780841386681686075749997821228401758180038155115244171965946231419228641515629770213118733815133220287054900011805551605096137462350635403479815571485237898678924701885307684881880404135285426428106239841797557151462713821881981496674128804477342675995734799732705642122117589807200757803947295272310662161420241094701209687544243623148462770701813422133817550338334031612371682116378061378468418057749942381592271397044488637858010449791177993868726745718584227478101880059710529803635430198826441190320773462462838309942118683362662772756798503067531395238635879512341852160698059599772576707657957153388696562677191029515580784032150936306942123748286325448181392173689682660880499487209540246410951643785476714653265766982562777351979904586586550735474376427600013224367765253182661273749525370385021865842705136964649427430668087743120122947532888280947729083304623922736248785801087752241676606458542291391666025175940365817706757244724009200803842381875784303232417771529222265406624231758750182926127575132071126866120268846749328357173724191956155361876567837437604406915519394353785335741259634698981927573933518944077991257872233512630012410072726300874063761056606666537155142122414205740514089866395329152152286312016676274867052841181991028610090191488194130282063737175425125591544047284838877048922177309508392006593339444129962276256764997894403039829155858343560140762435717465521692408297344396879421181936710816110716573064512925198680888768140344092020400015297814093115636384850473262695317176459003013360588878753934155442788716488676820924041897780780786757281396032281083919711742798152159419512373252235078191617322045876972328096725335881732529948801540760027585106016434532082988925510236027191746411562684490149399110558876936029075819848570310415864076485285767634560733817957593625160736976331948010707587119250046189778915755773577642539342677933530363260869913655686999111163274420600888633873020654489021232002635410573169656076627185110232880577796654774379100151977187160124439810734406861371210978444291809306366958870862963487339184179208138058399836150786415913101786527741906686433723874584610177867858287040116098638729901720140332789782878977401281672037697375457340818758690401418124531824082012139062608358527525380430133765280592531168047099615077500802128163798294585288149274074204587827023671701560583617697835213138334182024133050252715919068687435651912631710964990395404388491897436532562432107932730972177598310996311125404385440216802377150290522962179602876234871223414346524712520844279637405144771273034115009935129868349742573504015750396972866290727424904529066028890843062636959725614784363317235097264347674107221822957667498309878976928076047956783046320508671618649318261962642268538136098659344336972544056226509536945175101545726618907837517443413614999971560805391528150235140349964083754346657803252015480294159223434285007609268481017528834532778326778177319280592468316008873147461805251655800530921731197486892564683369392243054152637797611739499833458937023483338104988891571183877603136601170320276142133027023117832791991658622975843412032965878877488342994864357390200406741336266127521920442601575286024949782160424978868417901150412353493489855959861764758409622105716463196319336551933823579097247384709914321500753303984940546857547672826124029619700496248770707737991426297958254272402066686583881052457304409991527955130385454090273636263097959545111955745999481307445911401409640598179804109666053180330420113795847548144521024897938860957327373526590698333109485277764424736881273563489626926882211312326164011388852637504610972609146561727599397534240851038568183736586367718672299796736309088337762374330703545359552808052753600915470814727409876900093771868171744949289534312933420697027292535169122692322326728433543931890851599871972129519925510114080454976360370695433226478923598267337361736630211908688114503434933905708182792750666446988078489507252320130771589062378375776856041175408913298224900916268300274889533284699198937836150724608474630510529058664952351896831437319498710539941149914182071681785117774938157906349984025742753743348977122503633301257559479068257759462108482150209171731072331166179216271608402792857283640202421744347721525456656058991997653089235995085451630466503841478719543987873531885296823990007659908047687073581678787852296385777460915629978815596275825833122561289129787690199978638087628208730376921787825024467905111360517410882699995053043103865955268823842182595139419540541876588463444253420614681929111346548107201333261774941512282241105617802067473207880835674771147463203354975103890980465112505302598126142393950096304704101795503772602601326794624819843998737680813577548782777603733995783133001293602362407343918942788880558736385467694516878804268511191972524769839209949709800526592434167265933558409465529633926761642846956655084343725075211181281133572777102575410809818838438029071087504548518553541155863792386883838572002758335503557862822210935245798903195194045637315496539425932557817000298632137847778891992184446156626165614288226980853988154226058529725440791304756049416622220577474880670234054607883294122929205992944852910809534097560350325654564618957727156184912209307519653666847087308488038589575397172979347890632559207546904923605349677814404094204047533894311064003214581931032174051139488753337284404649036609251310895515263498224615544030071988554512767684877330015863986661059757931618058416520270103418306414257559557817250977287288135758146506543644733296590239844746018654129404907473009263707167872257085445623974303372958641573330093869468542443132053513296315047541468522509788935716855536729821512274727139858266312390669554416984291465517746535070637884614981992964395481360305863874904436071872480439219492810568752441304620440111071242895687581971471243975392092082314582563068335179875282185181224890710777776706136139952773889985672564840158070404934305178570567728790318818127460725493290736274603779623880659959933031923463800206269462390905322806850095551614202057970456329996664998758037716214232502364228294841220747369759277621504922208620064939077183535640451855900877076417597935509113768457607703668174758672905530873767072337560984629264109391827887743005872624862464783773392449157533432559821734829543982502506718871444562885324731062708333597624486825524080914881660808192427060911310179802044975616435910625349232536984639513386385167047972421054422475959258365446329776423477007991373191784419289818353098225684585002642947909952539321111158423757126650333421010474253769423246565750341303404937169907049403331064204195017025140394530411669023622148997439052075782578225919085351231909350729733454398534162076653633579714443418697584684071830549492605198043815101400493339242561527828891122806280956346837318280972234084687530269426740390095632280713528391175557871694940507619241763149095919980334425419771862231402579780884951197701292021813204343993054460157465846980220549850634861680751208083166462980386244421040883316051530013718518794583478733986009579758779904170450538860343532514732940878978252997158736026199719735992382821904645780798380679187262163223751796821532570404693877251297242996421319341927838133936318376690417569303899481531252698288462171785121127592437246420488442613800408613757464581046136271136308757795416605542065026526861443741898582929044204633839003351786698477956605323698342482315925981382955781418981627072979562715214647408901043870100937054747516591719640158567613144674490740605642733853936092767941273351860567409578235282978898998815697893622363724395046744646219433116583211881295964048438018795925486500589641808765720975052781316927892601838744026619302018745778410668885264666332372608967047538319960712593376264891064848784489322771283842689990120356562092169267004893002120452586963540139544443412514602270218118734509624775990473082039499907344745399940506041912298657725187829516516917628388667594062409104444186908788696018469880025836529938767698906366846568252210022581212936450921828150856980145746715009416754567426523829067650561097515662329473767073295301491260463999113294592283073703868423423906691588422024571270663394140260449496562647932816422348911026375437298131429176790521988410453025898322830210564364765968698318550224820552327785905285821987108186145061755188482733968071851074455179155549841361021339633193155757725335148680753936179933825850487364086771722741924328546583745000345225416338815046884738171874035473522245092853235507035561951335925127651601368887789746154303429070467436235697125538297348978539313599496758380998920524593352307213264697233007657448611027125634638321823700640676124075561182012662093780098124878222626354685452553178241442930517729142344141607020123703794980829201405266960471005644017232912827011981482618539188837241121188767179275106865003635082821453652528002629451833961441155810944745776095273087938932689339628662269355355531315954229252147271183054681277886903733264067909927895527499909379003114850384101430189822882461212655334920172275085071694818567788353089946749526951661111929390353380005928402967936531993628132735983584315430040209761933338858437986886125894079949334562475655610313738514987345146589770378945337588353593786092382871515259492891940592142862646027907899461711613360093855726837140846635345476357527524018150602991701885630725592573482618585110402210194256913919088270868968840825007376056435505854659153660245034069243411327819420625128621758663099784320421066027790830695341632706767366796685562477951900864967517100006454460012684010537978657326972732737014273418622727355434835927018881063162013527409755697930871526838708552454908800995113940776308700024906860408785114575806806539323379062967928044277699946353067007394230935545568436182119950418339089822021408131409358102131493060374181686017207719320490213250344079180403008547138905532633240109937630690678198555082120848209744731480251666175123988413610174373457499643384939819097140796696072510311201063071833400856781764794874043490315291898055457627614993732589573100651675636517204870721927455996283128859591739320005859878735383476314977427179963990307960233581371861910059567903743895160103808314503368748827938050975278960215226758035430409012156382016682469697942187716113471447664206152544578317796242189239808496411357069042421620710014610996043799118241271446720168836382020319996282648410440151911452207999566925210249831054965096901292457174941540638047923896781822530743679609954966876936692115634536096380646482899055209491284320422831776246580049546354697550930166428747399251742546107007757300950209807366236147455523322943016705994887006106455012514242292510387525163275081598278971338721410520059444389516052993938831536400219764485637071305107846056836451554177331052792727424339987841309245929669992171787072428847000170791330022170962469869291916854910642895400380008502736270828201687566044163854013841917893659143404958991970220118398455209819501934570398376642953561266453854962658045254081120765203269950430030347386809121804552693077043588327847150875912696158990563275186138724981576741302997064959383417567899883594834569443020870594439643552964845490542388676903239568074807228056811559452947536742976727278693308919338400004681839185448747289010826991188047824325571239077415302611435098052798886179070575886896622729562041912927247678391370975532675855027285817616937792629954051326416827528568419447021185539908040264343207480039488010917578355802947873902560139493917169366081196680859067005084890781648673532955617613356905820158863771380400552166570954263684736923718477874681130195414984146736568294653223122036729169204484422091073280554933772785085832591374843199436590585993685877553705209761513184840986058275735046515561550095666223470682139227804775117387398980584671999011442559120423150864459849014250690090858365494367129453950291205557130433105589453794773410151403575969964825552434909454620018980027766515349253998818200884139998878702597893803674604718935008115580669399119053548759350981854432621833119044702667722728604813213095446647241112420022225462644937483085524249760786839085517194191473716276869361266413643496279973444827955528538952551097959974633451618727886074268706754285609802264591361806514351980834614808304139585464392801569634620699128316079708010544151324790348203055806600223484429468231921569867952004465097366059482611292730380680410793677577244774950956605643794182871233714759464290386621095344319636669292459317970174424243423743123504020977359509866408237992675819543854390813506190002359449408964675313155597584384055726956139024173461279171746881140897670649502170050374864024563045185891254660301347312476206037207302148430930088562957432649388255923392623858119833610083187790306812947521047986682061394191048381784339844012886205372753580490851848480111265942370374894690213778456576548408119023674779218638798361210513405928557160840512729998244709701748787236737379655245614050794674675466319326214103152931514548767740942026443963719025076656055583532177258172595956873897294387373976335055923071711258124261092208066059688833397563918643888240546765596414172592840530704939644015070352526151690591938635264272451087645841862076020133445241153579272852712974619933945635857040192252334864972339117427394370787719867864531118087701194716484637903412400013180371434713725999251160890582999465589324134424767396471382745506676333751144290249379924826705034165444294768433247917802250756649863152750338659769768388042419158516588782352330578900551395829426325877891951231084960009166233880123632518903354430322244890471904689946974118967857193374627011358364051346787090914816721738264999408466191431487169410233855938552789242578649387511187166726605115872456684122444534028369814701129328903070790981275105588678290238322640223761989558550044947391815360654403080711355724212214197642574770674785928307977875968250591028462056272070208419917181238929037063155116371072919475497541939239009216575039274651516125945226426576699197475455368026569082529847272485328463410551008579658134418804967735790520896692409949600098185312966694502509567077550811111034664982220693139379649503186009706501416168931536460793480618114657784364684637383953854844379956721735456753485500798291553446409446455571550307133089287963352817664105956588195468478380601634144217405783670763418154723726881670393189842997673483446646859607366401902912190484642426284376573836701453415821092328926129169320488216714942841690860428378255734529218672821052035262175767311172249663042459064930448425173555655755628910025042247247458768223998361425288655812164048413165076326134183717474947196034283576575962990458640747519034066655090685407990500382086553936233138681967233162590380719621212534322876460238556876257930452590306968871618052348612351939394195810387366677106391549691381976827269361493695313999223288460987255098110755056755313009978953873010118727853770735525257151146790223412362286760112786789226238174803218707716025807141515089606796282425450324053768513994535103288349630881936379519100085280672408883338397053903460566362056574234823120163641494672621115225409815809884918952503802031535289939105874218338616254189689079482144777887023762935312187851695569993500121812649438594155354697596594810620638342978604457792374112430385456906744352745154390006840513337813386157046731233510032170990019550513877490201793193984546771713121644760687222227823257707306751643724138759526713969389400713106857204280581569262482937524566529039902086665806385501270640288312118702611615054695815377635597277786507662435337544946550702766072167179617255382688092942267942152537162965282542368422243777713287972200593692450279464578522661119637160667562140334486057510077112313607032557794061845016191482852045157100434817979193469904932343637483805442913477657371928661449191563265238473459053517824694053931154937653224288296496124623008233813846486147388233812202712293770482914928902249332958742566083234868253338165766167781588763638051950982102678003344964382204741185728164562771885300410243229858570645645216446292661086391201085361971570861855998790532150448428364505902579261159869014912300793586735222793974843623540556102449568867524099749690356138666882393668146955724017588915733121362374534086562062953558641704263038409919101262961163770077038713005320829400851513330638796753143411121746310884993701555220977336234864954234030443065855549366473218025267897254289338843105149535833639674359490182088000913415139272659407181922246698354974421143914902002658631098537424330243313147693810942364784698265741053205783237712853688110447422332072421241265376721908315621769259896488830224985111735225731194581632169354883220575106136503485516316826871624718915437866740258325208337117020678966776063660443454078669460444863215595640887366922877865259575439555303486400313706573821871544790227293678970141671680784432462028038778615444618600279637949915676224130400897575645042816317656245005974191412183485254691643040430203511694284756317328557974157729436856329069402653932647127624681679859768622172410605125731026544601010730039370597121335234267959379183147864383894389117854292097809293116691541611778643445658556619317073985661249832211073145763209383726551708868023327622710650922223617988682117414307162183410576438463317109568228739639985769299709265916606408662817813286368145636687615093867617672531939030609319742451974693919862271909008351798381975165552516686684210188936027950570826601948507291096312681875972711391721480589792028907662915686239834072508181895573005986693283569068202442068581521630334088543422634652122508384846715336893426050188766529344834264967990052985913250907748017060451693771124021142875156095984536299582296034279697348348905835671567008133188228373708344397801114449118002716149062632879062229451031462817252903512175373939193349050578037070063313875487068652242689730589555779725395920108171862451426735791222944578475720311159161129211917260316605104984811365261769892784982178256158257589203240445432440206544593510146469120911128782975099790756411058619673259471853489435825016436036604836898889741130715550539868020643773688760799749047120621081677941573426438351770293138280497485218994589603479162124522494170226835098491282758095010968575794746610750508039704984550032348821242334893503582668850768101910476773115216563992712821783885042217021930819068242284849243900710131778482643930901891442924031117512374949969632352800180687476924531738901048863211989237160508267343313758927882540933451348699411785037646867836368003028021221556639722927607839161562852453699591255628453887293032330753689605237171259418111059439588677451367426842222837867814310219394612460309647220983219782372788161142587486648781971952483254850782313704147589080112619127667947003419825778380694898370266267563637091979929672330726653557051411772983799403563620272475123015002505662362028531362807700659171088332964979095690824729268363125059462467373097204516949634986300048803836228154828117930877311764534355381607312770912055898572031853627620193237006310796469098789267992396922798265922846253016729322082691885180800724568867120245203728278979802866151808573330224641376981235645790669576374916903766317273528093144567214389093700439668057941304289903509992500205425676060048276923936702046416437152753038744040078650696894623431455964779302451936574630893912298922827266428339362926064945528020055861271376860342262771023612392380297280681442543812698972834885909327988788439543926054070639135404941998078451209076742895874919187355215841805364872538158023665829440796717995049393650251516632795043962596958783984359961131972462158369616075782599426120072731556516635853271754621551757626349941606290817611423870437630081818171595423120530666592402586439638925885734473690940451733634469519708473165921530173706489804353974107781319185143268676584526988130030579714835422185942944566325439807221959773362014518851000908298644279596390815669149285650510680232064578240000422374738267908595967578268076222242802833317185491682677737104546879935266024709782486559489185869611451664900684421562980298856872609549836858459477582678852321075748874754521812735573107643101594438984031806808264945143634372734824006641957494202594967447133383608480799708065368868902497925148707703380050443891338699338954781656855132312564072691225670884553159844722121718210003938916668759597009748540402096381886829752989199241666848033402000497482587632730112131830635292216850754293797783599711914728153020950795073125955087163076970688877007364435611290914343824697251806635117723804710560245785697939612402876965708435619312209210389132055559377258120431357009427909875556214167966010544575258482234309094542121613004856560647356086051220239860170049427459166333179774041588982390692081280151724795208611614399781954647582193229459074988850233226482195849216574971868573312877853299075030612718428944176213367287304825978511122347134061906022322136522287820604985571085914741167661567018899976912586565651892919878895893276908000430886481521880316942380705485432491244839488869290056219109244729008423677535926245577745330157970344066181305259820507415114087319734538851016690150490136163938761979045084693931939986110866722060823011220153147870226192707610873122096854168073771412241895572133274048195245861155472008425947536544080215592220459198602058149057013241485259623576623600628329554188588651201047941691971910450483522502300185211628466243042404841632953383882493180263935579592570104343236401306199915347961113696791653266571708413992595202572829127687961401043358190635673122627372663212059413048786238900544460787217127002715917906225270537919052133675226765259350757904403331888733129723254270724718786101523302714706417014283183644920789085326761735761919754942824674787321266185926777997474405154012772009600654399704677913601592614903812744058785959124129729912697356688635036063416923602323729066644401477002368958154805694827403803273885390522344290805588018330898080164669804853696514275670417245455365354731123661202462024919537691912250339486112383148105493596798005286550321591960504292925484010656390456345626350236610621483597235899194975607514028801601911488467846045042835828792010416333319203659944867850996039615546632159868668536022587025264830743739139399027612135372227479847334430827474447737581625096241527560338560528039493402021680737720886539005505513137601997415272534285425985681094781568743457770303598428966956329425091153729915285785799261786779510886571033421790931665114316691062078149461736935795267956628209100942753209555329311357329024316450294002523721603635266347745886348835805729164684712392324861439633561229897678130008119901288347362494365256970818708200451471632950428773305514794183369132435812015077508252245344212198704537316978007820249407226212180620757472655918548259246154024319476255155262041525177787436395354261441297118843982736050640872195256338041951256868565458815693212665622302235083838433156160077720534626956769358073545117461570010783617171432347290908331167253820239356617075525951868751503788526462761862961989253118418644763736498651859666391006456153513435550595454250107287114860671514476639436679741592616882573956011401447662749214944574435220626737093315995396950678612799642097663090902728669194222765072340773997236251229917448655823017284818442344545026492581517410213876985892009417565966369212299747801112325707412307957303782811742921197996471711730422442958445748534985602614575671554811134087185395051714577910931744269131139072596638372789162798056539326622038088033464797737118252560879995918375915553798483637443585352448370140124889114394338520533578144802141624199896379679486244119600847705344672208986969802163086256342930596852133731545610403080512161167819509427142221956866730227117420069098694876268267399902948638889723088609637265583940694851972348720563600550348519973518759834525172342115847163782518886738318246278199781419299263390923463139270248731594655519201101427995284299331320144163398564555235288463074910436030663449063967233030294870665738353887791919859579648104473507232506380291258019825949161121062805387818705793425096367295994208453296946973638184265345427615557464093521761523720591453186843103461744748694062920044857091508696709364984047229938526652066853262114557726714531305673240311454686719771226578708609319021223067763419177482671743358507926160388464336562140808339207766450208856989979459189833187292881112288807791540412888226587587476111918026160623691885846127500135343121504817274030486780589596486138706446370412560500372160449268189646106220150070526989283250117268837532955309597770548826673911123993961467454407306599277458944698871798520371263470623927712275593009568850486632810416403131738134038705788142391903824743263608115935825223419268608614779866954471833089415002385678796321488652479346197865127678336775325111384265013661571132465437529849880358565133338496418331815179445727861792148131527209411477926773579118397879616887061962893325727090698871358605434675595038757595748454414826580959488485009081900742422532356891974811226637254153714211779552320925821437776825770438964160229434623488517730273773633776993436332752511838646096444373796163953259938953645974096746372688161582588303020952967460915652647677539230083452837732483232711951820970643468429847091062747190446250282658200248101195823311299408374897784900646517292874705626330327476289416394852678797336380986131807504086895232534557957644106802619600822723446936766174458527056737280356642255988776214862313533313830341430145532398275815968481576785382227696364603253742404393456194978021252862895286004127693466804091717611039166805625489605981250893137010633878810383709116962340690467043791612968662826422159592671544120126177268849716540596259458235234852474713410608412042713598025144634369226138622997767432007110870414942421200421767327125978349320988762208806670357169063333975843879524303402797098322646898497306994458326465208279145591115370647780621323319696502697575405055121231590378441789506726979160930962710129839870800074745103045300652632269785720351632023570562610655379023985246245301347920988610475250082122394252090721102821893059471706193640123234755662091824729533600956494910849750907485282283094200549796201953115152564070125370167486127969525664585513901814700765560124663752129665718618134461759419574574534844345227886717028408405903601327667905905368451757715491816985633440852051605823563033544450815658885719391517175371089679604188546448274805565197128300523479907856760270270796044813822992014029132929559701116448082044375718054271680973394427010469360076512117433358626432059566010069079622362862563332551563067757430317435390240272964582741944715147078050016317787416235829049634083073817621918025935699046953085429114152669553709151547350433822441060501783444609741063991666645840438879329859150386831163698828097713385978072289387089236496358424774184976835071601059983733879937763502934317966691702954835954864645448448464102798546015609930866392345098980991665082289488647230807162087242730577138393661452143741655971928021615690354961060234062895531347065876747231069314973072905336676077516747036459178510949603926056936668112021717122015889237099486729380142501761217480534637026121262035062921661164233621392638883387152466215625147917845689660550178732925336953207166713892162053245877555023971195594397697303266613810806205221630409092357238376608640701746176720301754437907445409912418783894319134982012610013467627445800205950664349273094992986154115521049573184344882399930580555535228644560207841201041684701694595432623431170026600699530164551069103923319339140588955170403269907536211138088605404610506110793833499257188733612755868184418295970676198174816504316814362245304180050348008403047206221326712023119515544416592041572948497376543649719690319972572899656679053629316483549679325582091047761878224397354154476663173217531569817951185497950987543249926967597705696884159676109377733905230577692656180454075764731063724828004141820037781367300693879653608003165655488072494153164154513031306588694894233454185640489738218123589288270944724047906921240628117384162980031599253087223265932419308671388682487623688026460822996932320954008327925776501182721179891833733181968880701346513945772895412532377945977306193641081626179939059830517778098153599258227732228386191579769942785192099688086337470434492847975636572808839859590194075938653305552626500538324360274396626879080814707972906994618485740659873684340768420805419271690668465513777405233977219786184436020232960430061800065730026245860074250022641311198466856375334470313918470361861947392371843775851142359017700919534656101868409780021807636174878817617959292610210068757279992084303306700173131033356236254175588800108788367581706025761036375073866482763125395457706666355922154704197493377023515712903800966465414391890087028977597125897159668477890778908421869570224070787084287329166470354508905676310922569867436922265799931326929104742166819275954227070941437868029304050076024982576178482133715495515062327256461982682357319425451474732400063174173652168059504987443955622774270203522415869466995410459673833097454704898883519956079889585500419701600827434809823999369078124399519174905426909024827686669769883775389808311542835126007812533793014070505354839709903408747780589665955573708362440001521568448785453307274674474888006141581545230951498538971688112440535332037926781912171813815505734444191336551739536198204316828127693255466690240817106071489059382746249898131632044900906403675368647306973471981484853607510827706944008921426412240518492730181949681999162789947388473546966816208777603583829795903439352062500715603718186611639003244173138275263179759445764179571547984319283124515025166058978721301813370854294190538654905059563270494047596861062551959106556786602447084342178063869353179694583187100582137725093934373053365899269337775018488989800894893791832796146895336168661753062725712103791697143082437854640216907142119523525468562468675497422853954522792961397031582871652286416216793358646186314421146652653748210468164190940365065773324635016872296275984211600772171701068139395684144116539099804788975936906801538329473906129451185339011252544508995079065879531628707269246782028909444609959133235510203130938247861217409984901195321024839231171396378860689779495534810562866016252606351670452702812011612601477026220040650156422017432091906280601205021843033732782754226880118501945271072952254173671108102143627235136214240581591101125180169723104863858225184323367288896412869694039593938474979999304965562954893693247551788923405115351104354716958364692464114483047305433967229331440277968856923882733813859334037155742996248497903349730516336760499084495249801719524301913686718483502745963890644978552731206559338847068780948173827664689323168981117779615504811909938950276170912623112783440353666246691235127654104628793212838167222277794026009449521188553247188015086951525295880215041324755524431594403821610122152347237734707668233183124216116541979716037561923547054385225326589484126011199257439184780132354742325682101646374830233474757225516502437651633462165959802071326004643067372367350123982356219604489798089726950716744928556499037169916734808036971273228863969644213812185804263717571205278837155104699694317806245648634264560679371005603336354728084670171170589468945942938784747540064284177533688274171941757497902827633011183717832975273826570302387603194528165569554978818704743656664651341115655755382263620811137291886465807141294458873183099859730613716710360202811526296775354716559182030338935348714894227791427678263807601811704127700934386060166314524638075530734852600346817914488403945426341799430011554689775342609330550271845612563837214349884314563777535539942597654555658628428914881981779841562736495795688432119952950300217689349352011355514895164516162055006507063595402923773129243363644511997316768269787100328464153623843594773249375569842463064774621020122339918960893492233785134539975235927217830669812977532398152678538741316057197448301513871455965445806058284210765114994646376939114356956336575188949413707439738797194507940494934479317145447167048229827508743074482609280046445067142978273115347702985104430971520862566551918951309617203190508450870324611703345527839777567081425117120827202176921231646853301142493579798511039548567985406480397994109234511203400585273236602479419847299836456996877588267196943226817391275397344067385774448227378996077172567466230761547433066914480270783122851665772575468146316119717109317702915985200153592059322999758670958204760479052409270023490615112467597685689427087915085992682057223954264035490643114976832296677884472680735731012410025538923327996352764677391452852489207410444625374327488978616526633660448259311363766898475118495117806213867168735128877862195102186224331422813786394509650407572870453987491199410818373748525337575562324348119434226714671786152060127971065333432466840971496482662466650754918289365755326953210542313658574168454056963722151158398959427725425187689964982504121359880312394592298301800201597649760416671522737036355866625729918679267091973799154397762720476874070069550408056891527758930844733456443637384265112157701590108346361331706514711729993036545048708188868490901929841927088862429583660363088382818821435007235808784886302205151075220847976220048479952272232640439539425086993103978653228349676776783739965279602135409289533402131988645700942316005594035767891542726923222019323980223277649381809533585925047652041635022047949021937811396473669014467473900187315112343610840496727176646904359929694758754344916293981178650479847616798697216560398427760437708111107288976578055503074816095609182064838899985270789364015619395048169913925063738122386746562290111974833211216491104169952358128075831009478123632881904153315676380399632143333735160221506698692011954608656143325712459886844453683393055663513407939660127863901851746014687783285687364458252804605713222221666783040386023129089876216899060553681618792893547312965374607114235644099746659337833906783242506344200659425108896357562337467976422084379846689622488123356900077035395402230080055116823371384917219308675909542836528218088835659150474741946695307563946458217697466796941958068392391485193518723253849940042651042211226993626366576974358801264577923782030693013081273677524702161416152923386042190555088242047583467701488796514291258142741570923719939227499934850231442259812863264951032384406763356420187447904364493237737526705498250479823861305733335710632233628762280348412760380980879321008078598156354807763950392406477625704712518862618605447329006144606657547191592908177960094976050722524790488529472541688486939249953339029205529364860115060888854722238713540095134197042156891418625280383815067826735941203476183775565955595539627459754412518792143327436218543094910263974403968894565102684802964620757608054502066724023654661994054417396474330730682965675732875796223417324817778909006985509777234659611442385842536272517698363483957783442184376146162267647553081927146219086473561347606204735085199702150432743603057034511922927955071946311241773954235408076295245354584916390498334271426034267363830974492722132220078527175709073772385448659697062541259741344544623345603216958382410422752525295924250184159042375485756898757856045252199263359967719517294008083740622005547131092318978056903590196381060170350367141173114501815351325882167823568636184343988545267927878899570171696253507649329229566794770987059697664164241055787126654853500746516692072035934040767085767092839331769532800195051020854773505912377809213088739432754597329912244338854581712868974909794341705627343151568016770776630743626206474426227151324599270189826769478636168482178215808634868239845249257688214001869040105996054448496776978726193021767348571466745126292554598263335195415348859006887063460227725605860597100913427323382575436807166602002139310684495995744132328241893429766020231817979142762092264672760234355124051209008023934112696837929054157507392058575549681975449450252224041129371718968368606607460157366547897296997989881211114169360497885527128013917566886877506777110282972785904190031367115307114727824548902051119377717313142844829170270508777835328689648791468552872207442689401153961410122592738007891252115432766750438566548359954760037579013038462602841364351409913024597695330472258068394296805617334088048184805428338514505381518221641939257828156929060838853249443829226082109414650954784524462667848052612731165641531546664520390323607239352681251793625035326506511604331057522491600313711435417709060745135529257352396679109681572705210989148330856709169559703572224628145363351397407394568044863537908726231681709847434649941502127625982089953772615764110164097947211815772557146423045460556375633431301487575148136273561991529693638579298955028554774421534158172023814940605980968282009892980856708893917043837038468863164611896238219409065209503637247489569891842051693633744440396486436777641654194096347693151538679565301865269116571343153377515040326350807456705751642512884066125395941358011731277302732082921396028469704274669929439231679391250185077358281667400688291505534619286874631158417718686557542379999968237217728265198182589395408992654532278305414929008273511002648285956750485903813101557511147009174256320257351295846720752545827011719281345766399714770731827735665866255464942515013389798227501073069402857573575963684345414884056367305974531908680021039612421497612630868382291336332448557746259089658642139307350620310507456388061943358088270896852950553687297677541764502075583667990047794088261919913206731275880707079471130404557416546207918358803995117730816243673208835817139519404222211527137515441193286079590110920989747389365019735381761110468473450479871608858221674348948133556010758973098339285643776846392589281473464960423092298289067018448483109827275492352625878061955842950889982903389161885508677290836021865047444732751957518535433491500280644008495320413503214642915358889412563981725063743568431454655132919594013689230252967232855608686559025664908364438181965281221016781221222700851301853338497213080770380012784337140300672239603300068983677678349843534820671975821014053841307090980021823641157591151032173529047671084104601224320884311193123693007573406972606499780587657590367734003250666171647483662792490939280728893768103980906466830599171400612553831499651165414352557525174282865417410094436263714299458116935430371730550479634558523645281770394958245404880887271624236440217177445216295109856069771922081157791703838530667051261088021586230102939420586185125235066376170622849555097525544684101674225758447693379319346796263465664063915549537014098777809221945964703444060963423526855956711291799827931933724866061838571205052387418777286554269085298345563882384931405723447743455471005240343687627930523245624643481669559197051950510502750684423298933597954855420724005341295444400627750342241475177616907807036503161245066235574603812793400238466334604879571985786304708893726230978263672132298586927850676515782052725020073498691714544764164102044812712376364706168138114200223768227698008495349324068772279397061781448280039781534369261283690234955889389655567509160987581800704709608227020098303996167112419281618951463874120611411434810159694414696789864937104799123731605138231750136660569513896454767360204700460377880109609110315423624508071029982573577431242631708707801033594970915740826136639834207844651246886219979807961581109073858651319855263435794264684075978754843523145218214983028510797093697503558506385136194018854455553632204309120437639039104411027566963548225305729386283463070114115049474177092575340344599661665668255533910227887706083617777268715023779111580026649166658221264463380325530610294126765678375869571204612740928326391657110312208965236298603212313915345942814590139921703448258694570053307094914206185377707613599961159928825190198600106511003927722543312174550608100753783299094875616169586245902586674951630410996522235035339661958967168882255381702205827896595528151102852305048921197788943016746991147103233005488335700103057306383252944112964250606684104393899989911235364331897434082865925739288802775189055193178726001826621882693415450444639585534070173178893568875631364570623488104122059784458028789826861315391181338555069534917567423216732404803774206713931935536609021549621852359712863872833270551494692825522350442398920076424892600487593676329051387137408325665616317592246246642379819319352563270517563624597275928104535459272509562159442067946827238324828535508491398172201171468707276574072040099145437009178062838480699602642337880517042971151687176462584744877726253297698371961444376441883622516935477056680548098959223164976505071811826635896674227129366185776173126693009481884072248716844211709453415343384476496453009282602008448193588757818873860021190190455597428106324171207425341240237807811380679524099651560344246660611583364532219756873925715374452750454013619476829100887293808258728830032546603930850962670871174443858261104052781650627631573003611806514511424175413114808360361529320463214261506105330121208935646014974609056303906609965043106392177856392563006507924065754665912954137802922570822046471351404353563772914756905594426529635643163059385465901972284172762734255626728941554939601454590820714373147151703642027314148975410005066584447144976858699299883617614691628472978483384360652723255577733616932887532413288671747646178692245732166061812546024215286015323345822206403497915482548720786632346191366362521568242985671493092722017745535631473014481838987021961098742378583323894935526596042064957604891817302538609206433738114846076134223615998132120953878799093560441460259629211976118113908031088699149746372843607571596536551875803680247249941171662287319443198816439488380400038140783192752901712707163690824925075185178168524632899940885366365480239829993057725939374147802075479699570982151337275905119685036021233221903923032678488634918833677293541304153718166016441019378907567894449400621565832396745107849947776210100530985620717681173841168111518060256185432094461432722597256156267871087084099868268947410373254613065915157954053603785844178930038241456751576687191458397414909802607448453399693202638092270099351516536779720508102168166039768259076049552524407256486798058189027784954742313265711487025369800050408066165979150146901381011365515758585704086568606069529907259424751883633694242273810531644325961286000334425985824450659650495419039551202424093954968854337543770881358879357302803410591111484155762867275554558170353175615460274565521591313026562558046727709495274025359439341380173906229431634217916097524607248371512579259903494435607528654899968409826172718620756502515865764737147944766105409484935489763710736695743411726124247484564355235863941796405782633256070092237290257924244932999800004170668346614510800732189695014494107436258214250263366507823279251118348613587445333291518890427927655659415008193247313657574813566888613497081065117586638546358475590419765523593364390199031580980465828386512059795798846440197947557578285254244219342163388573653588235333690451914163215295975391031427876285907463428544272843666996704042496511113730175528931102749695310264086577963156828603441234638946551072241914789381450539398434102635097617023551373269687301113246880039545593720336974026458584780424222630209765409109448502601831051871572440151077383110084206788874939162216563171226008934804928408341903170991039422120296757513582644256124986839144630222318339852801802981281549509802686991651768558287588638501521519146837451456819478855829459965140274235170203561990449187184118391833558024956724271993031301515998351105032924749784513482175716714495979195950366963061115089526636905960769013551724809021458630684856205482139033625542588723491669861523463940243245202052867617615112851071100078166512814149071018869887872148369253595030884043176070817889136594307632528717894636882758016258861103597744398913538845573469842386960137343973763531736531417953273215013246972168388897665036472914424254644028036760284931377783096555753432323883879112434296776358412991115987063190884750866498889032327363286028613832784199461328937484801985998648719047372501962565363968555255117133963377668908830862210890718951917867567424982076013071660694632961504853997283676458874435741904066031935693216276537171848072791720401820078826327224895982265523842009367441528888767300669858278952560290380508848141781468184382250095225778941951953779047223898286847947835837101958120072370198253953834127295898445031415150091911905659697516890028268346682375038330141060917554295780439018088679528479842458331043432795763305034306678032078813050114268848044208968613937351752095779036725047628020250904474856089605520686934835314372089629979431995486964569682813620262516530205663523011478200915601526332679223952485065140473316391820437502261580402849836592723317437796217613614634545522573562918213964472353377070034404962009788323429645851273561353611732877367613215243003336607476381769089103606512330630569111516397757251435689714225222749471087030564918440448629044141978292074766818078872058438698006757283397740439110205685765109663187911329958588626727666733092985897868730733308767327420916786152439107043563622479888125760825624699135312801346428917800900756084752788871428288943351330799573356964244402390457377634188494102290346038927072265367166712980918380584476783341781368989652098948107849684011558049202894839665690197937951639052576036424491286507409244383017642404390896277729191440501742777419690061864227915017230817558952096061413280681893565174632657520790241317219815306081373106473949842953980739481005051053624421896323042126910240133930539783071724757040347334305177064129476459724583669851446088725259941780088867196839549035467796067699408880578707999514055769390988444818357219205146409923062227074299372404706579062185408117834283310212540813284217907542487655679861331880113144010570998465150276813337219150450074877738057834314763887964232460436921822509383953726139963551480907420809994328808891921298737634058239239162962500912367683479900275847588371158498014551383669286130716815866653518587028463980310900980357045681976581459162684741660610541664957224615809535895266467208778539049560879665417987824709544185819036888963970545918025531604050716372794554171792781118291080242090959700123155634375415088841183536157463794839479212980063158736578727373363520998235469480904911605316786749383293629201566749744522157025988995147067615730351304239537207381455020845358883884854044403465466579290183590628082642935123064370097723798607920348759580340691514929377599470193958111532879855880599492628571382583614036180480086016483193023415885577438177967391119949927611524553964730669217062140128162544097046079794432502697399357029941287085680043804358001660299634485059289496016883482846801930682502004604187504214507747237693447508812852348923381490294640394594483643975768126449293450608268360591998821610777412236446675135635542481032676031311421296740612739532921859603979630497780643091974473268877658627916407925760474202712256784888224952964303659088147413381652366337582514923715842169428851263923955384104666486721350489957316950871480067920311348438370063792615198276888308689213614171767307514135150228194950803679147514234070706560868518281054501040027420705603939218462728881554967747303944561225978452987064266049251062973507192533939635994906431565639517493060376919020870261487170295305060285785240452180858998088065819446034045632550283739458809201036184267864266540306836438331978465222852332407521499808701364449984813293223825579356171597228161948847043511689572737996592924848745703402496550270756121633866740378982334184347368544890513388650184349959168520137375425048077212979240416269571837492265155611773932232573626352946956640573579138906393049803164716259727473295253141065971181279701601030017780710184809798521755778219990378069384021331184726761827527468244219345479070650479330322281335028250147517090611187689710352780680385867094250841481459988249635470148076346710370232537051260021541840173855379718646048941144661085210713793169042089472073158661909472138747664922128789907184185934060760119473016998884668354221769850426304456036592471966879237403924280578482757308530354085321190729321305227390219723811872805534897355073972047773963023967886340889973546667278466641004373210447611646036395451863716555821311067067075953531077655260434581679746716605610889320030445623348594519417681675410081525416875004193446906457859702146025183538549410649826980064451372624857064414525821665826917883558203933573722994302011344623852079816492037320738493736574969399436891071426413247344008479368728129031219184219133118457468177966839546554541348205222633678247865957499156682573839010012133688844160147716791552637895942399223465514267044578851621334821251716919945021817075246895161861735607318431198334728421532841740546709227979530538809965465932214848624958648038969852533039004659292490655944616420747651289168046821671012670051446257399450295041477319221315599977123814671385217025563049125590929559802251277784807143060881151923793058027553445184780692888562336151684380898918818257778513873019382906046453225246743968187765498019132277828922352085160304156855780488673741351072156627952902671243148254289422984744033427561454001489128295615208610055267879404958895821834474699948122900917209602716920462785258786419280765667368978656969471005242158213720829754115642474729452495217707206026913517044330050539509631481262859345216509458800631653085841638501427896344188381122782442874052096796257995961786682275720604783816977892540441801599736222224431327788845287787954101024497248892302704775841807879811618936846391604840137770880758055711568213262433022078036514681276438424547074116384387151561209855242571605912350457743860673174637831156465336684328591646182345230343202428710764147488835830296833686028627908720511364343555123922925945505034681989732551501169316677414513898720235483433223757812302346092758178749326027664443519648976459197585663911535971645154534873799477663857310921631441721325008150529355100156830621726693682920818739780284011734909524535114688401235570122450319574524867765166849883404236205909229705217541260527358730169791040458867162448966546165813953010880821856049216477265565469249287962185271981964372036008093392077263436012287980171060624588366612614778182597655482315803319961475101470470107360664761583953117886132291943647679507051330526204383436102421589162623668112871375861262742859737829391261693636446388173009364542930846906953578788237020335513579025536911163298989361042297804607867553956319873061352051857439020746267161931519130108726658866399696698924305256855623734966218020956707362655860025636568660919004240412739377163702851335382403587232570175113083836101915520259321173983935184457164454425944758227797129794799424885625899737786633515357680335594944953223369146127655916265195115714475321938210212417177715622113091248544219297820838092179585107746697791216997622767410524675461463487774747032843851559397643575686262115616907587146139298361728965090883187439354425760774104464251985043321300491586774459985410629333472146048314681702557158198825191096560603767945247166986171087064715176212076863353027167425242643583292590623123453536834765554189465362454306851371516945352365696261280031706645240817410622659537408550576679537891936092153692018674985991772812799997854047762636270002632381366034290518863889011303205229453539935733978569623194696068340528044592304792013751329824587330985035789539148761310870965858986558146366692812384111790103140073694398021330449494633957456125744392110908918175735115649401247578623134666745073173526366218732194201889241050946247855207446177618770881298257036058029371242226646592968912211336944423591154845067062539249444086752207065098557347254937892954385979379612738272843802547891913419984297938559645064799926017622383318506656876020287498831928419562891109654724073189418917882977265642129968157908717712764123560070823956590383855165979591989348202880259041950739933728980119914730720690934634404541379757400924067070080969663513613865549334317143993679843806699574778626811774731607480566989571893252860415425489709687568524622534386041780287186200139158785941355099996284475445936819079938099597040537860375983455056706511868941576975759894727352935807728538292744751485395642277271607135713806966781282817850021007174828594369818851868462155015997250607458393096625264743725218753914002268899791334770507639236476693551723280723904665895285231589055098439127486786302056483007611214928650673952899318764556141822965498689590843767165881338920582632721797606183559993461908972951011886946201281133254671999546800214238900522985110617172925324766645795978927546090550383746516197985527562287875368232369273841559727100578523216969527643705243722662961920809226369128188619476618665370381001731409854206993566579711825813057171087132785955987928493315468408329893387903098846791167373919428096290099182484938712455874920256353774600969930547641670605323349237396276359607540049867604581095959002961674694673963389273663687096612553823223687381244657375085654700246502711623823021955456298417832725539295685213995569107088617843457299993067987772537276273767706818063983641257149288616480504563732228056689546196827068765845169507516939399910461016580781478785142826414192524513875431700519555637523756445651493086515691609471893410257753691402807915157824710274738137928533861705432841184282256259978270421909399873493924263781823359577905697170986494677828432785696869371146511851939018859842908281342488334169580886166193612691815753153447749756652719327378206123562691109626618433570859862242104447960736687348145633422823946876618977086755045636667313268103233793576394870992354292992958291064254901042873125309759239022431870507343703710983930578478160969720931210021333430316839959653767407633999726852260527015609703704900551223715150649962622707536661165176666547170852984756925703281505696549510182639244108588453719437938246834650987569471490021968396984540118065204886083444355355162282867771656311117915802788308257287264442167807723738383363979517044729539586169118407632970344016051562426566103665395325855532022165791008289855978760053662083746458462277180350911164023185608416582583278505197532187517415650163671528387974336550945572187325038484617170224403287898287353778564617848334309141042155775590532615474578082235760552302305923234325223923028380268771456880646064862406272525281945594270604880984199248631812393402709312065830779302246911707670445929439767832432942107771960789630732267255729460058951216535839000280091259159696729114180568048540677349581618357335921958878341477446601684197861439775324032556738996171209245693183492019401650037761251100766870010833259872842862140619230226870485485311638813327013796414968602873492229114917292440960312910888226607164892664007030974762528953544918300060018888752292521438590048969487073382259621491687863294024968876689685594332350364226472806973155726916160455364699967680478027904720963136462324561650503207187941496782466797326567565508404160781789277138550623634202025838159165277886851544657613481143154460042025350872368969963826013512861826357383645548783940238205393208429645600101413117107717826768659305872159206606296192182318680098340089765583100614277840185962439809338735269646855982364164641366642066574223423741957677205020922757482308402069382752018571134652227995487726106801471317606227036317377322397943862769276819533137884331891083875416110940075028073189737320879862596625749091375544944143305038788591959555436384397848961561429549710363089430887245695338842010643899910950127122599882852317749148521347889775277275740977458988897476591690292549318557211575809062144687869903874241466830629747080074870533257408158503155553781010353838270015304408347530542815604466488509145376657543106848347361320695902675210212998876212753320273420067044506275905051622239313582727953468227217997023737457767178075642005138661408688306370156524951840911229353312413614281057977731877983066555176899057154267920232080840827117541196354320459336376636928504550150277382380259263699712431786908694550581756247696937473205625133767888605712553836615096893710039610948295632223349771580146615005388568984543732664832659642061769141334349161869107932904356843569696084586618030229331487360653760445137132590455080275957745338160366989226372784611754660821207218495869020635758553864952055500471821966436041020698812915688521982926588914521004586055009166343816753704260856072346341360735897888027555448621065472889457082870097932914515297831667155954257217935603331961512733282061749430727824548202325864574602444095205990071971274689675065185987914231810844827279827159918308745737442123198396270828354836117779709279693155596254807938757045968655546887294385655732462336623218227931848828493287543458349239970940461044973974158046480700597184508118128345146549589820488213807213606575535920184615538468672178280971087293211806112168540688046368295131534462971038669646475458575085646455142847725071032311464528925384351305148889223788977576919757154270336200048751780688239615834976124060172345431175298929329164922823570035063232385030417709611339054057095073244995222605104799113816669679891517672593295824876147593981951905593477231340037945612828250245480297169189855330024321685041023900632431370823987199516872562288832490601465445617808915097751672421290719030251516610216905709207156389309838153306668749898767526087433559460628580039427776470249240586886647851246681449954030370858997959481353787137590676310015847375701494566256370227691725497289153714291142329514556010723246076435930512535103810064756269163231662508642623200180111391848610062543136669197768765468020011950104036953899150139358213924368798301611686353575624027484482718586757791486279465068532680700422923816550313050007749705518539553107383171065541355225399715136980369947197700664684601672423726575798861672245383579740719711106811152722865414345217577495915468406192513542723002474821558659417284352254453204348705547363074396452933094831700204937450316082338302080343743273067335035531318853189873226176122351701564911577523611221788399013205332393044131276253178218304390666986380425471029535788106191216127607219661277739945954191911981656666830332301843595392895271890498170752242155061710933402986404161925286090123465529153280683689935503385910320251487453494684323161870483768348812502375005907884906527946376163961676794302343518772085510102703300172289396585110714873338342644044293944880595700858516079343749524895984574962763552820710120004586713849905555700434817445303585765388763622176469749102108482050833217003324683716872996433091776725311457762886039686951854010966523184127737261351568987686698305530927585518657204689230761749113196015663471892467896342066591802458841711790199294178513430672636314160774075769652620846085139478875126900391115199748896055930664006838453100914144158623477097545177876638061069092460576670775891633031532916211232472341369477402450475902912878526680798893940611973294793449994801893633982060593953676634130953683886989485575058384922486091146108477504961280308287261981626125944360252761656741681930637566016711223615480548547877294078408971595636913511809608729149578720230101587301671020720682691318083776060409743012861748484076640197045621290106914254855027623567508799681924878454981034252077138763516580020148252211295030286838284645420147871195087147478690111487851847247122826888000360185776462231396147189211918922088554751894435346537710382550584203568156457173591168996081296746071808884786451702316820926609924315620789222231640830380134618446094447484000607300479175983154804264919021321271372782978638010721998199896369024075239567458961981514158013257641885115896756517174175314212640604602901734210066835842894283667023862897069760681423501034628872752165496269585038078851049154546237149589993287640254583084774090595429841788751418544672707977589565198086633972419508163985214903493369274341479733860718794214073879034634426854576459258857257178551632554474370781495403189723808420452592513806791067703193880065093474564755478609476734393151487786014344230023888740164263498539398129621735096869085042626235405546912818598844819142576613951643016991049356158212409147265684649664781768179399779470712321064029524833883237823503711237124371108935239973737163574606222736878148411396093117759067358249606540074716792796026222699204316640867230134839794734848687982039397820392890267561218898942390559860609127270231190642184400843829864015495434199954874179417420760344167380780332020136355426886616121440536469467760014615140244888261570455922542737587235885378855988752064831654385341294767592154541912193305477133489354365893434490921279279668058922838382063125306660583826153839679324651325176735185848712859113481443081470936875255547733366567928391947585687825483867088014496482670193279406224653328293705343853790975142270117022273414939460629020192445052252346293981003179247427046905455175166539069794355260272119304764088756616248330421026383830119363068533887016303865847161779656229170351882076223926276997171859255661844674997638169509466666493059847202214798452539006801358364445006274466446563492603381576996950869952252829050809900365002262886819787729172668911451994098670517059733843211674918567936761097800642093218933247617509599557258060363275370457544367798948159955284811575477918863762452186471311541868273674164870726877938579901691080787645185045834981665541790608336471318704407450083398546481284604456028386014366516144829600470084267622605238344949398872262812777318470664726912399053448973189401268637902196007182118081467124013087725928895723536136114279472234063502675976107342671951359455772557185991731622050252208361554188423577125860129237676197723839767741985883737887306900364376406903500407681852054539945410127188291420149896617440268402879688271264309313997597703548226189770212891683908556680970707839993594861027101514030500238800724577890650598019560095407022459025061272475648501097850774581138447371235495777328173186710636596071079167257777051401910876631565420553535321675254367172116109929146457004543089407229796363768677372832134252614800217598122634799793241961887830314855967070487093352100932018436650964405847568900423373909862379238990096949753021993287833554677275177210716279151481899129652155225599247649194076152918696164067474513172681398197455761888142835731613313632499668219134671386509634905176847942409684549720480625148486234798953568134547289754572599940275575152445990433882320411142267907193966232363012477684442146154519583335913031078774462268660638495088634299133409090784826694287473733634420871275413056586355478885816303028821740649452940294051294456649789022629236931001913544369384062741822120624692889455526068884859937899318683728007535364248831510408610121085588747591618601967604321333043302235647611860208090904659434510800285423567805425588044219067652811693073887029918485483646597506166047203028738728379446546779408017678428733893342043346772287466609295660930414205360965151506011847185108191031215921078227678832724038430017667659031613321327551499498497257267984343336323767821167644951936776431809189861151058269977079678523348512848544111282885444064514423515140122361505742065332485663590541355306764762056868989937580871706971050713615415377839692780839242532765361094728729096737762911010613831735046706146308729936233229891564314870380678561857196821068306846321983513444662099623392406057663960277903633598270936446582196911111920247015713078052102918680345755889820630270521742004051660501068408501601172624730574339789112802448794720492335900007893174945758701020283345579842782203171367430627944486351810770186912597082343551506313979179479310123365424799775857382181042431162045174564294169777971364571608829054838685852675842622111150420907136677097717572673057820434836512568181782699756027729169334698552517365807167181460610562073619623296235699669481740192737544505928613727113110074421333355373831927057686336782209637326492503133370982521065486965905534575280923059209532276793430643306422583941700999762249393551519081054280223710062079321053990492426904759732109472621309821246078220545895656945431266332857102811971902501827583521339839495619119878826782520013341747350480301155923638172977868765757596039234140944740804578678035548903918201803966449274114904247269064148038466518404695890976742429173571262965577074263391200329356866040230314153900033972651063172587204999553704131204618186088969815402213621822980634681886583803258626860979842757032996706253298512688060845740456523343634702583756366659959851982656844877964900834747825342873067583358175653658359294785503933134250531395575091772912446480576866370317075021606342150953191238202560698141805872556850330831974460770356262455148001383802207091860419469855615932675016729048952531851955746436720107178933457445738818134095130630899522901458188630676513984834196644944021890451115155373521581723844094081890616619309463855668935955308540969438315423800967670280799810711374371567867129135409962878319016130867357031256849130056114061059270377340891449767679308705967105584784672631482838221756916429515947389977935956856442408500052476959463449087644363491437116207178532876639135998466966120491796429561939224131039921044836499294580212551792602337651249161719667930596210338954345995056164346839464176181389132463300558009156162166827399977466327725135129607062990513236344428993093155697524159255346920872233407282935487534587882126819195501933261287837638559420070408801300226169995948349262302606913911354108781763561027647076261051265212962154314385619438922300644821789200834427972788800401693105972686929856570450077512375976955306447973750696947774897116398137462486785480371118789669761692305383051690293539144100622178359918885415838179777931751314919253102887265001626087987732907428845712995175023976552064617759193005050794711049406422962513076110760635957288701579559406500863850813192560820487023752748408253843321750991433350071462864080350195348110902036384541215875149342200771918271862147556511994421078975215137048373693537455830511140301775540799549234633181699727340256348655114932687763570309882435014610983205097462162750116884340276793846651619352865848883159429127007206853739243306005753652671588178725866998684514468201047015908141332080220050181319553041662627121041167112184822385549545793448407589995866961002348966466379732079094022698230471927539059345306845964169376886094791032220961150640816770685971580163951288589508874232954645954896741597734800625864926909968237240961883514383710448554938316795028221721455492168603578225803210103201607877532479533001233073321976460172838954795851973257831548213607596782950875340296167304771581766691186349630232396122939212006541804490642936429144245208058214863723779029242461699639472723102013628974723956191145838170141641499819485810384098405196569033768909309128952305524366283061223646175568584397634362142348891298724903978014237732231294168681637881214128748299599246933627650438497005486543470057347332452120501495337316345100434164838558156675537394410930226443914739669181894675207124803216206239557614660757787276621323348170167514622690201737448413364533879341369128049487266531116874544891484377513536908779456083374805690342872920154283608706047581327503688922692498580926719675593364128231538651692916239759877649857762519520320556229536961740046915359707371743150117522688048547936237395322976884083532296241892617160885346232695667099239083775604168479508427176947658511736178037268335861894330479602915574320449211678843052611487796315273368613128182823845075400201892291023629074708914768079528659735965978815866866132588018694062797736347046578266550544292029604765351165115988951337260533155084985175515380747415263684157117199768179035725439089775951746017823221723659157804977665669638686086429931909720140796758057162324277654261071740817548876315039751105599347106463164028181272586340291374962486397484847664747555950414976870114157628976278658766297683119984152969249939798194466724816733448257981165606110939448849885387566989415282431962645741188468345783006858199583943445232973402062527804649904644878227768585410884128349494181374099080065260707604633564444249380447428355745209246830062627067987514385349106266241026462883533607017171361116665170627112119247668999509352993964794785947402519184440486404693871633318511774072897896556132572050679710163313344626901328221853841381534869456861676493878541358580679775610983791880253097754427728697503900704875629602700817121684100376722177181364073790812494377833811903720053587878247661764524538954429503987582974867936635714380606551166406316954608339456202435675764577257209888906396115778212102201895212800057765744650874126378487984112089733269029224714960084167888314469508567432116360175846963031625131206557078542908940928791035470112506801255486173446389173777953461414513187506623425549845052525052683808279959727464939844242700167120446703824903057657854538360392846143132005526123747632512840081223343614263090618086486522909044963919120150561439369189513169412856673472704274684827894657534277777596353956412854190550121751736340577859040183963741673217588886343350270352508470518220850087711598560922349058995557715387665458610933849842379973102755874248493516764961517973827382439491171840668721492422799990589405514610291135900609659404738473895455933868807264714369760654296916707363924842527355429109674368581480948932940406790395770546869566065407994328173228271352082631387143188710603011773229582082016362335981942532544490439950198171048502458326596509013734702761115277510450332193057727011134099767503379940989681452867424545603276651164751128570415418717729421957573609125405839434402854414677167073762178320849360250194122074812881591399652784760078797051952048287089678880325540201863181814230856311735930501467791815278433283988110119619027789189804264562700457997326179717977158426201165380018039228912467981944323957590887542387423778457223263352536021676276198420464832687289335829808139040400957436343458653924386059333397429145150526090174537932674368181153408489822395425800960115033562180801347985249879399974834634708190243117005740838895281752237519209695097021275321920925211629612598385990743171432410461718786710502762231666055824778321855234943712551549120933829245635993416573577236867304513952271538584590831311214850915173594654486327307505575603224612755010013525055748591859268751618286075931591289968818473641403836152398856792304508693148180700097354385779164418412964791876723094742299467348405516453451035407146588569134561558039529300315084919768129986126444655749976251880616228239431646116367756368321645564667540942159850340921707367280496828541555220288759447826741607822138409089414629082047285748573549685954152286125783385042180087295874267461635108915339240561337636931550321763244318954324340799178420447536719605713413994009680146131820600034670740534479846357085883812442664771295836543328867031174221463959723256600397785055492347412590834840776823265352888076645069855318585506381034365808514889519101402810371546140662940260002370822352791351749685055192836510873633457133586000449829108261058080474541332298658200118672893954677127835048761193939293742741559797747915419503703211239785740953540363843927187040167760708491383938610014773983708996526496039760983962377082469593349456093474747502181324751380527328980874680440285713008754345147112761285222310125278955249338362073113366088445512400564753264997686862231683371426666179256109757227987268250987178698697131385741791886937313493030239344074842017260935191054144271005069954426831906528930691159540273934359657639576500234806091999088692743268040937038099273499903058524821407289489644538904031863979807043277332650770678389953955506269483303545376021898731993195818412822972144399133081828863418758838847106698990426926903290821134242563028265286898050526009370812063507125091108276898377220656828389012933644880213561687063198323422374572619068237317195463326749393872229904557789391580561223580273429523059331267008783467943975687639199082257409790968084037503345800657347358889327757901851269684644692202553301859737669520432187946588875013639078359908904787945910913006269549364048136915306564381326918917938025695912456636333572570844593596195767916874360699106406303700637164373545324456886876742858286882313725256935329669803114909058249708146555737227129959687196252831211494763916288993194476500171765349974579231375825150273869024527344295029810160611665348753960174868970827671758669759054074633585524598360067478854793260430180470341528614778029486946572630641017088358971921924784417873191126725079269733528380215918229155373145444691594591368886485191515145250516551135422996111641148164192356595534591274573827944813579188133686591338658188128026967057974526127363160720838132825033352317881397285794454272924611516409774775508588062112675360370223712231175802634560089464864541159390163464398121306374351713272575212284333101993079070148643505226028450101406479432876458874658753654740356434121249544875203675977542718576781616159489731476887101896177285855995696103439656345730952257673863529486983607724043695316436305286424112959422999933492429744923687758672050680713415173123218991631299096273419862786171638139164034047381960264595578790603672842243256522215977520163934733183023011569855741754753558506988669609177700037600328541142025740633580521590162817647475276875287530994551451734607100914981366387192857528919628516830053500581449414701845632685651193101352207511231100475843235366081554940209697145026921445279514553011386360722519102388239209090432763077522119771715889602540057288499111133843775120760076336050055112179228722977195939620351028142026368145895043707945664385174634528816306577515086425914195257226003864545011186177736838184646706805686111693822148554838897512483336413180065899632383147557921853977545161074516011468227507689441722424361899986465351319900403388460421685395221575909853437294232689509106583831454272824078657998274574851932029475819747326889236574805153320369625063491196473119345071158998240959964378553383100756621047156080242884990551594494224252505941672077517726019153065208125967024641720821946376543214801219945886049662117680233139321424560240417683287857992455654761839558935643971288072230503725185492332280739748526689634256281817019943488068116582633501170909520449382047649984990094955630222979365069254287609632631196617172871782686000167982802647291742155538852446309725470484020565550508510196584614587860307406842213836129172650012435619619558337377550076792247406384045124138689979823223771950457015872995920695161119459944205220008329169740282162304236377251626851701492860143682150551490191696547920157174724289750338467525786008063271754622058841602041631196171462593082673258466085633683121827358898143660886571580576003823371659599955816867262901282944493060809474885918488334466710468719817422460909326186016511298379660520326795861980148544480108498302106053819087314538725238245025391002992266939357337564913605162757114816360050609771675525884052833294240699470075560294740437612978615917931219692847244215823934923507512785842862355868461097913147276635953284193516831841468286058882648740931212731888005862741528893683082475855635106349034908131152520653136248609524999442576463825039797314367087062075341399704821034847246899528202974395637887359100339541405463710459153270623904529237638892986572257976537785260944997751185695097265946455455304226890071274057966503415068349588000486964677383444776994259969447012463109588674080258902161865247402102423184415969302141122378495741330587780547288481176222665480343927069565528679500480085479426223193437702077396000287909762267489729354274343159086432194092145089292657791099717205083177423890791731786820701548001510926689445094107693631610013875091940200039429265504060253909375617261114961393851696030378351888013236277966725223641104105242301001547122048428403436153937808238226235894964231674073625757753621066736290833420506489815251560734094469527562904203157434743195501195795479018796357810593765182419019551418285942548728688386874367694744926250242274349989035615664577403674290340905146825175422801842334258790218605216707899812060889648762588052940744327907735109289896270502045088679472739719534293225817420357489787350283415359246540474285315303024997530196457273241501652410496138352153030719635583822300746085122513633003071747276304206662796676266861916645649914221495075229273037073077370207712002776250165681202794365265050074215320443538863254677413902933190855071689941821365347971508754207701580839530102216563084899367684170269112933792328218724922488944790613083612451627477139803668734097863914533465813680650415040389748255523550712773326633588664174606686503015929322860115610860934405541386982276084648422794939337362294611366197592124491214764342495277063888115801138561253717003892910216399942875620887880834085104511171134209942040733505883743178066204969775256324605266525820134291836749803726520212671091097042215470045378757620419808892711505903336919657310660795199536332473467498799341241434634164402261766783853747633619328058442189735193626876167810654582525287253658506891962159541352104702044541928061505258905824184692448345383088192794677485037635707136069149067785090816258789713199922086962296395557172067155359466518755348277594223064738654381799920934039033654374144747105176591666375340766102364968037217139785802609111563721249843459145664216613810762729343814023784699546387986400971569509580478330710801213121647219578499621542935931414622367033953380813703020667005366810034642720755439174262291745721760259607596494310348342754876971100607084255835468427146475819737354742075511242560352852794595472305559884670674768939975071623034014468518381426662864074736548974222123300595006122711702744553682326464601153864994674333547007714380549545585788324054964125073001290811039161943546197447405162840560191165143765544722636470643222148129162921157625195846299606508760087599386779836056370480224671495620329066277011468605570632355320669757868896645018582492909072175496326468955953323247856148142531489112003548321839266927090951956155090838214486225489874733804574097120812476883479381930740297852784256900093398821506564296604875310657652978460108123376237590434604505372935590530713880201012096973819998540101635170686857191383716162470609667619270131164665496691993694244071709968581955082045332037868078599665043163599772019102524740755469964170753218565482325551683159411353250109056546591343933050493645832825809654274940384893228066200215146616551273416495456302320185128771325569052845207843857610695934553653871872195894341558007211140916825243921403070736360276722929735054207104647770212020371522856465331018269159268953670860131477608578298228985907451430052457651894816039233851880095549194555630591522172538972614827185473078247644034061582441613678007800905779375328743064643546078910896156353757996340433104812003902832506774909551775189931182405432091768877628147868197937872672133187413347693829363829668327477573440884045277198093385542363042148220691409717537227713309287446326626380109934248637843838494116728974466321661174263789366877959250068900058315661765593544231471895404531884504108449157173426531671044193042850422134672690996997471174281172812737222463247207812411698447902924556991325891062826485313291554022949677227470405728966930827884546859596564166892954207179428869090261206554015477726508855609197536363932981440569695171120345555335448033140856662731669448571103262447451432068607569920910864547419172522026981141979301885592491733103757386453715727492338584819892024949078260250866074270752297681314773652740786418973375608049118916604481974766912736723033272451142086344674088157912427763944282469556064970726828672645838480506930434707415322538778544778314367346193089452037737312424979590048498127177312824984040826061420898520704046832715085897705526813693902245387612762229925734491402998416531096515833457030359160175389051327971081849922281249225790163031303541301795022222274670671205790314863780310343793211967071054014303106451432979765387094552639155161812807103724598431067723871443279366573651051622436417673839273611448925940650972524426256039849017247388976044606657064192075028666279723688331458326505465660850499916321384493949635832425964798569995752447362506869561450573161565981784235370268857952213113454157339709101657224241592952183977444155162540961171000362420421963211594670537550360175825491790996136098530538218471456941443170211787636584604068587151415658338817480521884579807367586241825844826362670929518170841059040347459024170653551398737713133573109305495374629621230768448089164769557191718601564243330828323200251734370503908176789572181344534586293154818570732746897235180275176439901556903423936197361731746433642899509539249859874857350941066403271681218681397130204295598447946867711862789538354919174653191887670359307886224893442920742665865441143592150269202237970564919502055889327674661701747598355993060657033643483625988914437518226061938298129106029711379787414470457136076629366416690145415719415422109890342911603912957127205300785413981694130889340108999700301044093931867761178009827294095670858417657950370863464321491055549519025066368734878671307277532920925543378139450796638229215334532821206638081683535526360268040160683351778039115975306506701557968909695427559171001817290868604071453339368550024315954637888352430786317328316684483376648327553133361146702418832796320614837093759566137740356134334200844197791425120120319889608444657174759002750224231104481168118214434735791625651573208745940564655619958430072420197327419834266455805191210633322184533814849541284521948866390977001548848799273406246177256865091615872793906292510195143740547282249822059601964924013243528702437703037585267526573824978026214484964487333528582301182517772235812984893009221139639249501130668495990551903327860250450147502900717549148222453682777393158765210502529534220261512756867451528218577921459216004247654510306265458131558680972498116403350099694833344114811529324272679832297989118532864725480163937875124747038175298836493607824656703355923449645574576578794714349334116907514023012623776289780543297334072856009676896910011326478890982109108614254246032304423879504056829603492802386502188279337489313814716143157621529118210242205650179703454586704220798041896110633055798430844499118831153773389194125886435750745846925790768963312800802848269889020948569686025783544285518438245986015596609104579620544729375451633333048624073905266906997259867621028577405404311625064905150089578083891954425194730393371380845134417356269576378906290161529050700945864172302270129593020822227827605870967625722025856315723733697706203828515041616514086521554253620218271699177880694682632780132494116737296215774625544685407915537847886413274248851271854310418740992896929921496226298162805704088267559930595911544957922214960355822601147628810984804721477653802242233144655718338392109555168258434039552457704040102478448638483203267420550671309542730956543441345339472875155392482716196897283187298800830812246907703599658769473383253032289938424013629738397831284853960386611344526675297032389547649876706100263816292814995438796585098134671975801841199677825164833324879377657717065421185966685495694660442999766913655184622898338255368152504806571472323460575043209452148420625895343271606590776055001021088322254557029416654229301623922349222485564068668026124985906877230740179292545615307430567278312676111282421892068256851705455393621341624996628443621884779430563948655619672139907364833266957167855264340561499072286577602386796656541033044060872902170243446607887147977962443502301446374113469805762138577428802972534853298125029587680229225299000183297017821552848473927275295744222123399455191926044897429605932987828587001496111538996855742563113497505241802657308508480786606891639749440631615021281199895842505400306424137640114171283556175532090342892824880437818506687164781140665606491314733352407671218290957442721812533822039147521950007065545297558311613460322454207652311234036998082947822409080367475892719537890986483762850950494106592309450713669326935620594508265604308963391081024483108552742989476185841523618068733931489715019199072557218400160248886790708263260624690560053750654608747841391673772737699833765311130104211544714603274481633316151619520038276759374447060258452877050932886372973239696192485587239426712929919167112022363575126686993974471412764776654769581599965462553792445923045155819478661515232967743538525949139472360245455698136682485499459935572875156820943660563346176364219648623332569282318644704157662705352266712655311204204900814245348062932006952961653036062875967588191702219634748332396762663013066223395123367858707755465426002850464716384462246976165016838424102100218886880071148988913849407266619935702347865257767293338719616241026710346676372234657441647358890450730737245808186548434375286101128299899032087122541839566062827122604574844515537675053949319843009651394599794135194946741319547094045796967952112143935401913275077912334475743004124417397702182173046011217982280041998836992311429862634050224368114512929266298254958974126260796989393081684471910139760051832392920161147200672746565711151099022684837484986764769870748770658172687881927005200630011669696321124028875385039185987348199086855719492640716984509567331628678929670490977043373101208836204985158100870490708741245743709834401053963254730107588584463127718092373615110237863435045739077673486797084481839469466414664623904834022126431593864136396368494865214740695925470041356653731420558159256093588085576496752415393857852556954014418459695491065101347133586344555139899481449481561641897178174679946639213396517144798279259624211625737425438167546928961573958121843064684961129577583067069036739790671849746545350804660255977064351695757408585265671979092669234210847138538889902194212559886309389836049862450901318624416443745100200771611253362762998790155498017307275068951493281219635347071390041794639644204850889387851200041319955078766394774073654300534642070811520456905775720296904686388479732428230597936688691867358086397635413195848253921299676585326363886323639148659880026027288071879619987205730576218348999779866471597081288142321686036203302284028752053153566071114388996682804550598860125514018742563928654100206744861813838787181851707099055389304159201958190767852190309637054100348565623637114126685767538441216374106761383005217632885161387534417318969320408638211630012228448866199975308910175983206488444471845139580822658728270975421419929755281975375770013811776092621357106648269609335674760454994454075613743625442167185434206815576091902715494460901825918177008092550421770204655969819667537407485550884120700000683221369427874950273921427702987349345878309311861375313975533785268936229951982682936377749690339621678678106890662902781795859803092629261440931825241836823657114814484937687432998502099376501253480188136163608228099138602877077526062474026897237192947196156788619740401848830182261551570564466364856229352815918270557402830267235776497857798165558824171865798675259345914868906932599405757747714163939701226277933470900176009544382873998886263207610508749761512508671672918920767700001004045796237355425339606167593289758731610138574199946436590209338309243157052345946184398248943652486151613059148277087417449965868428455477854645605459921890005981663980431470316060027177546034539578052146039663347095002263487482349397899234896864813092690412809657726099452477453441675501122001352752702373362871409544152123540513119629386970070816363940109849400294580695095546657151018798182536298458760015170211480777007808297478359310752756545185156386030707619453039664259582507130615937321999562584147627649523455014343689010512612884166122527182283808914458343090278990276745769046661908494703601245882151880290518408643895005305301827958623757957563035251591322264851141978557185740170091549270948280558836537971055948201858329065553032096097757004359135386064696315519296261261346850452435735706451967085917788402629959435478393719390747670242620616870749908497600753920777052421011329953592412170990661926945854033630492583720909857706453985231832304448394169232517945470085291726311448508596862000617970962908735615163800977012603547382885782257298039759708065037225624155571424145800084716173539363112266824992662741317500385461219055703613488853000253235004816593444184923078657263492810595414733951776026739557631439382632391991820766318759067300143199724129145684757196023511358318466588495820524241015718212822933916687043099422363226840766053571028095741290318576770807074260557026490241923548179164650642691708108647366730936476113645236492401301232034672866972229209340219977354600825004412916773120277821245184985910393760881509018961234473335042464008488476880442970247540578520100382430118974515388591728244703372717819512418086260663637022037053677222750402543612684991617013553978171591139437859716151637585528549103118718050697304438587529984628727257053359525676097497496073696588116443903590022231753309266804061892578511177561821700283098089297623065783031545544099307809561498295945706104042587402981713554332666238705931469160757050427355323605692934068235780496218749435100502643477341177491453798311691918463199208316100987704471485885538608805584146686352948854451113287187571733756596862721724950566570606986588582625579076547481716965965699219680054282366521286272020603034709906486915471407393720320701223983080610308958271253769645375108828338175952722622251940621285383854067524414334998945196675749805471861157243294382759581057754648093876898722486410770267059325006093548027812564159862370964317299830094337539521873825514475385874602829340853170101465884709369842293608539962856718969678729260180360099011857155770531739408234743459255956997435866197894958742318545458601620856470985498885533577032524078291615746039578970936428821315432235451867501407607774734586692000028379402514047526509559567403961330409177468303057730066267392088337984646457206448501853095746695152676547653930833652634471494538731210190900666819214568629053324292135826624077796760242273733322916433988835365692958233140780099477761639093349312698513087779700998576471645154184876980306139044242846938232134896684601266883055689346409396352924645386081143937232902510941188362459923533069750358632318847547247757473489355160276124274626496566780302342793327588408881208018444556633059935924519100788895860421315063425153986172484335359142327861509045975200657499222528700429794294443412111927697778393414819350777711114365466636006067259338748895682441090948762748900893724749822241501508282805481503113915760630000974553900300238368250636869117802192445934934160814254628538037622231601419373088326502407403817196547513828600197594101921178715054499355608001514613156536730312152447236851545086581237623148936737209108304706564823494388367276469374696743334144643559557460937867986929772606579016640228479070782508211752982965004208992434280364910385814783111435277464970939014661173705985515316163743669021124276329359355823130924433873337391107238112954974825970248006307542775178797722822880900592175700334423080740374717987646002605417732667547052936612628459403445699351893387266535380396088200806454481250302037867621743843768608854990673458394943127075332970902521012830978147474943030165661354619150046625850489856412611927372356796445102180066119948500798630489782084590605795395063357527860638423230425074472329459039828789665968549272384611295275433208940309483954234738427460419445061993763857560020978497205978413678854488028173351457912541004950108968568181430326558443221105467766073268434412281683880588464063246892133632301576673807655555782040586132908353707094081695339506105371478680315370856766825019695057322350356976326335705272465690720758870063913606608030033477811698135238263407732500132185234785415861600192059058943939565931206690337642176274091797635044857907614077902625214172460603886363501534866171452365540975543711576927722185670773170963870968981726660788412047338517363598730595233933860261923646526927868118431866459782931759986010401818313658243414739958813666400161266116138760056253642016391281805698632877827785772852248517066102728330440640155825843882781494780892161837801479017722213251192276661306753749332173635719269162748921826387350401045738461579241135675499905095666926560671704765353146506579620777358126261223651963244352927558795823958276581910441276112551014328208259169364315412685123076443655872866840332697605234788891936893114436633715051762876867745779072299977139995716876559587782104766828803048939628244395746445644730863778630823448009381027983493398226818836005332974687507928722970607041691032900530098236076963102425005455703578325692036798518373217395800874919771765709199330479126635507520278154986116388893336782374238446294192655781331810165306288382420872621961606561785495600546840874522732186587489530208456476393874249175199438960474506411390577003029716796972737213534835047537870493322313948123048539310067562123360904692712638427475397458849034457190395665443983705738517043713341329018023287815308791586788104629077894859972408663764131777797767507581094841943222566327043930686612151665693752244087129734797644069819989200468503270394842573709563676161779265116374780480855231479428683099251388554099929935553439610365190221228665299097514187731345103899955764515116047186082884589655474976349142734995123939772907045699404407742456054960214280243304206374914295769134245921261556129018258934968541012458551006516543830839330672287848135845564050352098839185648226379028857973122539798759845828160163410035986894151379088147538918478247038473032475342003505060159907368213077313125747216615276931847040965250103750293493862823952419990411119316075158926149246443716087001124739094569216575632324705858317019714836546578437718340298734344826449722978285350307616062887985325790465862240426108097209626004865408280508915646695333557763201651300941885557821230027201650133110651605701008507349971987411552554733354649596768045718344615106193444474183513686415537399176609703219942427050681107061273974081837471597740060587908745061193153639653251784095689382827212266970206495201347608386356759856741810028471218644060520376373669598174362166623326187892325733713263759327224990778004356517314730291245972582108503365822132090686830990545799024422849148544502796076893839792165879762724218442495899724659912018835709682445202768178487749247583189563363500891930748759581984462562597155923568738799141001616683269243260889081905397918922230999839939512842892658751679506311217762869774079736981252925425326322275963844221778731102995656079680768934211027666420776213165215286229385338904943922961570273734889190473509751313164555444556482177965912820471429781618446770147815985525212315669992871343352197790715918569089049897102806979149380649966037130144892813521263957744376887943125886579718175171966325765139869267408641136364124227543899459432016404861520604408841375679196271108398016899710826741385287568124182023101447490423159237452824125937352645807123735253534290785511493237230794310398427111860873621404606403235861091059795222365549952396250579803235444239366682250823743069706470114988111811572945464092910091706916636339171577567476259188168390243864351567618697209530971182050268121709093801816311345575151344765076398139437148118983517766401537693334981292704721211438895810639805313492141339939002493338373457391045148766840148521806355685448099009269018693421531485811860032123491588595507979223847218684134486941091988738411198030048657693943949067386700353860359435600276353672449075645979583145991198745108037763173095900839712280895747819243682522621306861536640872127674691767985482995341382867595823961591743053581237100937907241969680875611776470086909597297431372609238544379657565694948481536139462905076464985641393335188626350001241713266240796737451840365513754752503529165787298597705870273908420975790329811207170110339575067695147136641996607989922439026910727114293916135433254434711733235271112975723296540644102427119805882607952604938486737155188935397471534988679294821294267930635468686181312094951749883172395382990662375179092084150795680931926789824101273451722358183285125766772305960290037454961470693390369658709597384217972922995720884306715070093680414826688895396334270568075563884494747193924352911728989594258751825593100584029270477953644827330678109170931139321432640329316006611001870778084482573094342757448178401929355472796782893327224991484438662572987585811348705902631517299113143372624558127815070880298423749962798560612275532152593927770741715798865828762923702191292406879342160889381870758860533550444482040052988336085232041441270534266684842998238847094063006134871462427341901662231548229752895206926678912899202021441629942740093641869079621277324089889153352633263846291007282210554517796317459440732483315822053662452850729269695256685299643209468687872387459464841087136306572456529230711158444716744861721163440229021577203643802402103840552191615969085774621321339453803362028811886043277871268607660748052864537944032939967338302875315031171067467611466838382669472698010130612564140384271812163013882101614497943732172662090828125947425923135394196323358402066104436599007279263672125967040006566802724327270135766779497389703482123978254869104300814129785187233016685724771557812229731351556668207643913344887347347941275277286693013500662395553685460441216802898546286166422587333549517861286110308129444995483089381886404955659079189517270262825887409793970771923504183285825341362846143388006868105751839790638845032251181720992556004856294931525270502222592077009737140121201751615265029902231026359957141195020704348207067783594416091759130085529130538177500415749014164455451300510135832408743791823516677557165160542374639781785725660512296541981155455965029685557265184143920461536935807006790396960406798463131312267338048741066668788557124256053850905220276343583081364708994257615629943217751972587911745415370002394690356265985859252272534181890461865229257825811508625850741115569435040376831718171884548554681449506805470063935868712590215973992118906277245899667977465048585863026933758267410755805151922276275380837350435209324840162478199678554659533453435762005553587183141287206658284749072871939160150596961637423699099006347832782779544479212778346470551722167221583047665741774240767395371045974133138948062617334532501190290812959645744841163332684700137113630847267520282691589503462497403509164674105888107533724256719855961307334740742675090578309416031590246149092035322819325533225839355313308444526125556758030494984634240485237713030354970714896250310631886277467137270763621636214729576909819963062190068821101149705282537062951520744148540584225444295840050650670008408364090185225972005932303483838072367653367106943938819978214868320734222870311100303093798811014124203195398634838823076425485684295985092612900183698732428881062125320922935072591911005379945934918219947615368056204484165880423492720033388681214353010274584082857429567097008169280729906945502478673918284959960914203891979617530342549073588248964856178806642408436287460628521754197195591977358393922447295654320377334410313176107713729128539419754534007791391058089068909445718485045059564074354418529482925033381039381317465267976189248125793448525233992134989060146170735369765230762395429192519064203098633757505822127946484397091138960342740311022289020130281612536270257524902584374069404628340001872400149918791023296151178252802549803941842768756404406404371942621603970810382986817795620236151749901313458874853251298249795925933342506789459777204670519773240486035654844990646585908184006156131700468397867890124370903692056193844053092059600597160283026866831720351246028438284342540641319425607609859168431156987001206178598435161272786073762670040461779785022016123067003516141214322971010957088985650750310685714680858977232741860519497857532989951999381995988134968672882689175330667089570263947847449423410546815835804960767488065968914041932711269031507862466353411435191398380466352878624707756791174475023506238286618221284547234820193476564231424750364571464268535935915131159409002597150658263149976315244507418086296246513512974055146825886123662943119023766446483006001102812074097911776909245783562413500380304438399371142615071373545040547351012373728835802058461673848451970359871884217293478924561691889829021495981135607656924719922616521310087239664202868261326535718600712243113314543733710126392708836877943798870897073331204106919581112525482232254783044856242655906970188138047733115555131731072177986880640927148016606635881420896932751320493861059977501607697617326598172718993435442299562977441893620582451335187540089881364042624877704687749200402922200458753840418634485096627925860165426153162925227319184395274110440386922417913243398200260163477748101185045043867143491459733211059874948292790965759545609282423126710750010028732172461363411012082910926974565272832572035044678983481763256476377973306070387529302490096624567986727500768561669729712345015839319696840879507724097785500777427916989804959307935594954725721144748436379325163402009192258329436971316290437821472477793285036578748725532829914045360834073959819181270121377559394567605049882448871401096300066327500484915870966956531387370147684132435640683246154674124637633730373630671880648804047463649535023198178039426826150534790831922914228402606632963840536725478721052913611179442227473144765405498001925241713907280812618464132729378239266203842439796242675764903774937697255867076691293518755319538360262663960945152478012112267324951636937785057603079981082120440544915596387527089222737925311141618858560434020001625391786759204221400277878185428586811265292867853919773347208795835775086387107934430375003984635878847755351958550394845039304280920971813267788619050466413084664327955994490358562859685423774811267760657360826018961932535905295669214846300484457321940356349377647014896815855859440148876918565918160149865553419682490871958450453086986996997211667123740223554072674574721038262973574394697255636105001582902281416374859471773060648349141719571910073486193789526386121072364226797119625797537011891958337579348878441723033904693149848428026648437451844045620827084784518632593430962031127963991784434017066988533392129737513644444127871610493405843617769711245210023041931975230380588084864053652667948136889406388329812423065115509480280535845703116901572901669341064689821412300468922780524996287877891464998637118706449884132489834096772052445388479553687319670728285103117322631252158052985497511309270319741954807969692978536044600804640090757415507776749785450426648942738458512178906634835285641140741820062963213862610489951578330542439536895591894577344027368925522714721890361608348751913685840257947405873400482128082434241494944289899332627066530094606377782255971273583765526025366294266473659564700105222923386459697229914835968857532728069186690594189787582815762101439699204860745226253427592489689657099374543965064483629096807593384297772335071994930262684031460719910886226717663457005165238983112648260415291431581839450463934824774842486143162576031261954087785430675285031763207329262253596137874852268656460041881441166184355141694173300822912311029580083762684046040917457428501167935384213267979436937659182355824780248536783801359803325075016182511595614193438132026182676659427116055716436586646441989529975162724759161457596830230652042297807744667895137987920808372169076229468786960535233678195811572241058412261268855853553385720089838460428091815217101812599329377179123447904821237054630509069064012747884024659403856744819313319273754042881311881312642451864704360492969198381929617776276688662072909947262352050145035357661963506682804021001666512962447224223910300034372013213350663354744217647183948954474308882824920855171949440538832438320854043104045803524036508650383636427197800328454900063769030676910259484621944345247475659697023132478933637817074608836635055041627210247393255147624063190000119627017191507048552823053498872223671237629211102599936472982746421027523247129411180648372184677354877015360617304231468495471044510262153216626863600747296413884785996433719475453297888464490611063296919092210882140248772085234632064363866613332622548677769537215320688013245665175263756177164051159887087266154635975221884256610695877056463884291142122781091154671764122096741267479601846910323338382455185242507504687895567107870738609916942897595859537282504971009853715812014428462398027728105036940737785516856210814542782151877424442388464473995987842898771537370217550977067514922936831293857839253797365242113113017912224199172958536852041123707923469955470742384364637409027091156527034454252243880024367927579289240651906326013511577032421229622969972585476385017050587937074557566846471300679877126963259249824949277663241469169260953424659652616507773280986572416989022179672093561313438020149228445145709071276400067779185161769002625388385769304750938390500487188779412064573760542130122751974947065549667500230560148734525691329887588889182407633073334118735006403347763480079494488268874337509132665560119696741127739366670270377284858700943208953336164283123035614076026698341040673836570050238438841823624618638926684264328466499100758229089305598052021774138184309938757004834871648572098216057846605248038591763630818243441235318822280978547860012109784508584459682998530348565786215585934729588243809521921112394518021179182342345502678855901312380040630364947000700138307741608855300621925120087210012172326849005540103263861367401807008797515201558306498856826443507047402077777169958405873894338294124298563516308118355556976240993248125244061465020431745250279479562840238684679673702654938806749102586776845030376131424852008884968683371947039400691530633155669230794992084371999556028116557910872614579973947097198184982057321616743655048019932632328145920697828408458925557836079948484425855530431978247286275681038175964513163676588494797501079239238453399438245500400442660915090466505667509354381153259646207793565284513891986444726652551544445625762836266954437573772152784226792441978342264964885286118506686318719380577862615877697884527554385512155933651183843862318890454284163006279649584510614789627221004507449211551051775865382375469856543444691037471920190888763207662637082079348741399008142285744065400045786635312978246105162717563904609149197207534118852293819724334160070654446748313460935486729622168148848666132541621971659424125325670240814894787049774228060338518217137807062594764800327170337765470265175944698760032064681936589745474317718938257157629860012715231557478877310416265512267742896900750284641302560971648331423307497973510759513156542703299211303759505533313909041910076654120608168300940662131378381997821256421314941271014083564087561038910566723479934415502636387634704695526590125913764294110953137899913692246811716297669986695792558201685463369446968048187069511855068709373419141739808190894003792702389688115694459235767923671241040525976077248474844739792667600467966628911363589014619029112424391719452601876572678537064713150859248734263584210107566223406622367700656867395378215842948294953574960079808171539330356622288902847784548323212968449715922294155092136821814868163700529362434607926346767099434170483959314276170631585860911377835464467608913881958893169123438348097480389006256730483474688587891031887741389979757750784772545714604180710394587020000437614224349462439326747386470419486205550908927173733818917263256084866622894865255126231304167232756436351545678388065722102223400548096095774322796304207523800621939566611377762723665963101593096865186965630466364663658056147713455556224281578778414763163110859155315949415484388614667673374323669020069453783839733975488734683741348584127733578329210788991904635644973398643889541213161999014964536766867090258241419322703732313925360880675695162409279494983168650350410262259418613465891104261824004457432578808866096299543217169746165604417745412366280218031077714065897495980693410179188026506501106469933903629710983592096770916838441622110289920576625769944915005348652761304371580429010563998808130640621661665806523060284994859282855637850891027573552543568150335552298334152057545587101586742118088506856584283141457060901315869571742621225278383909002818996802981319756711326940093505442610871900108019478112479405371047978859013146053616347751439390213877473380283894833312004370746051721246919448433956610907903208338278655163654944325072811027441303841368848569069297071558634184336827603232287503238469420197447106539644698472624816832466545049907976107842871721190064728222275894562532499699592004235161096013181144103038372459989101917510980081430184535876284806939977381756050768208937759014799433382704404906673511511015927084915795765974571109583365595782210132985702722909874235157991772452424525241077519104442302229947280799730376180512221018171152819225403722638484470788402691786147727182547453290268975186958326803912927192650472150871908766987528581993804896336620844836585874457467079499563938869716877517972960080629660923335739347420699708321483170584728407271907519655743305910377403577365488587505625751961568794609200241132001564883935253340005694055926375327788456178844541643032736713283713576797694324665866049920157774999592204740736634667408155966560221353817595359477660677695669530597483834728364251828262458683667167133452487396638467176152555124717953780060238856883802421640191597224447682727935992673577907284617326832633892201729959577086093577402400018164157684175420565841574182363099858977993800510147113657475530355131244862988919951601063851044734938090207390933533714885640518071160990569776614646923754492327854153660443056385868174398673763845057593241006442719800742452632915767250672636895038619488825530891869275815901933088589773064588115182230646583403100067166756565540658380152435993450696557018329594468340744360954008519526318900808228389499685548601374759453490463140082244358067282670308823600039982862659128746286750729277121760173991466062618657224243481838029890961012428087986937304323717736771059252899462640282524486648368235726096108429812802135732030470773393383182653219719710460809607181859341528034934659305875005824427655664277346709296211328024380741972913289460336747316637168472430827537854790687519103081401499793788046682618344175490292781135649844157824888223134887416218949226195004458037851444665325883091278872191591647595426078038306824877570796026081619644479188717796484975715407665369002898128742644764830086807937851767944290259512118552809162416899546266077867356108752262086378804269684421712870391091346716008633696594496573216144698051142309651224340946468731877757264658405760304507552224373659024540341554651799703528303112619242649898570214574335717262387317794154049291163595016113004273265013194171056934895265933989675409360481019165355160842996874104750688757810192612255685448970117862957981021177289225927861912798319139827845288679448954345961661014129569108474290991553336919910519277230173449183758359395265512833066205936766190972393000377352178216677437188059669035885832217148589880297528154814266398582255636837441155651588409721968294027946742110058755755769996736394977829321153868397255375097995025389081731066193221365001221056883279151153351660125070166768321087031348341540037891556744843077680253440352275290059071942924503595752168818735264841455081643935875315903242995226387320833451121291818884128245527534812709814265816083771137108270450045598756272888082134603126333996812616896463643009742959792093522254857126761945309519913317031354722622229028575535493677508120083901307584785543642742286913359411527851960262386525021295955570335833285909714969738105949249535692447766858976315812176480010502582859420816401099678268896954065329271666614005108583764269530653896075899142074211379047816204191110623561722691116956373631271278140506316865901738595535438791758836542168933080323177915907327859609010490643360284298847825867842993378090915530206051297978545531006959988663925995716204296796961928709037242971697361843964826500697740517855395360278120334361740093754202818917055139557361882594976389492734711083893114663888747771072295871498961366577650159374135013744805131614521953499423734684480868015181300487235612507715261628647946387666684506180490408820976481489533470029531117452635708531482242991132100311666247264354528806279778742635590186573286760305658325308249508183383210385417816600408382937480021357932064283993159022824510351351614665308456234086126616297287096631333373012080409083907416027042483256093087492526110936163877053411870990582544974102041661966398086538820216298862447948095716143939664435140044551842967239686445473078752109752645959731872421918196192885327008895690103031059205198257371217312797714899737129653006124644239556813814655340071322386397768354315839858261722362394933016661861545018613322902662432776263376481129149729752019442071756546060911862812280398742535494998687733127629480806622525070190702615189614461490570171261942124292760415735118204544135863499429422347358758249690048232519985785784314329858477969476391762297309636244974549553560049810749647976268293725013526749301596993166108803893778207062496005065094053656236402614934791478791848352338075335507878898265743633759307397059804601873235388627293963998592128082374652355386153493312021387947480421955942111905111637616760470079658594718614807551079923521898715047458447864564352538297818393119014008869463847108142004225987986776770919303127202725429219929153298921908886988053466760903532068964636194662190797449053944090654039120683168539495633233661708697549115677759103727014194117825239443812421231991482120880029887988781599582688288541045823245602851674928131172955098639473541291092378883378678766456245009729589812396347755002298625903490356327514652148671651681477362637295375946648702980719450801019695695266493941806537347164036260509773594062828580923300409282856239336152661456581139119439862992033260093757043078038448684735742200137426021918465176855703605983567818120025997401172077461471069928717744685708310936303212289127801428862831154760000698114042429389984572895520142698597219427631657530667900783420729075793319130642076261208248783347275995934212320462403327295500375589055359780230367881722469483374216252033392186689371135322108087027478871030011393577117825432878567598283869696349285211121769184477781107857199161372285660373623258130447764120402823352602625211208189438648001001942386464929183771180129661374836425566629403927814847099104180659591272357040181702210215548284388630838182096306213560434865421867235378470676491490174585529305761832163966103822927440699236602394112485823209327730927280277170645500179270605793212654022426977620723699952780276089725077924541266219538190521497259910036854698442718588090760845053258888694804056462189770300625317312521876333064386125171277582811541505298008915840354337468681835146623930093199654717655727374698799090910520916042156050431434559618899528534875637069791402913615023145085111724157149667024782604078600305359907005302037862827160710753530785016893917778969989045236273397397349607979790367038893795652317932070862437379244818237277645900376050470129689874266201911454525336855653998333047933227460242916575553481084297720550366539581016673091055664613747041544410162052474920600284956304765911828463366391104276358185001635741527107567834445691455159630237013149338263770140140759701776622669283619405314193612287568675667604014230970067090985211957719766741790474337269408516109806193567152965545483620021486488136552232714695968664267764793848026130666581933945774151586054734395216571892436009887405048550399030338244645848031977996221500427428157484917378891962834580240471445005362184255429829277290808296210932509544689995433535778140549175404937756346523522499355150035247116577946463666709025425638255632636000158493492871630190286524022474566179263238104089685992231854431119123110816584003222536970325252576397328862192346251599897436010865325124586351721508335599721277287508261893030466721710473961688346271097184531601185077080994819032952665396653417064899965464117295013881230662272766708746241015229301522308981513657019453252413550804171417991918745307500478638796651899344945105003857589955536070679421003416260570188323305005959777697952686209405617784181269969541144807172526019450667383563278084839800704027679087628225789065722845522718798246233293621944226678337754217551879738066320570365426613638786518416070570511404544326133394577652856503751341897402814100522834648093172060245712835936837109392409901204076153071333628787230534439762068108328057276208253529351201457219646577881874599478330382056122511909911143378800589941903316194863933100738558221359911563462522680911681353444572512379837379103535835424503503829488601116777281992866514037284154601537040798551717048915739425078540317411919509569642598549164302316099775054940330588033042333882147366779122659840675073066126533005460595263968897512140576630259203656393590373094421525349140255361646341925153054683614452911128400001708047624831260986176475227562410300004655910229106604887372359924302022998562622580689184372233803822545643695415746955607712228803687721153733517565476730477906172116404023978161236289580675333468342129422164727481650014950383598633528022797505350870565194260855250861919234854070619694864468366313166978523417120188819391489045794281958070404066120003844767152785392396167554600758238813330362596504296949162820322648031035634612240844330629641786757178698936229104829026342682155439388041978785965871932113293823761429351666985888520988055030214513345694185467776115079921919676506880098254669177054770819006265863720857349918979594447953477464350505169826818977175242534102036556647799747388959828610428736692644475323975571320538663257989612714190011473495162504178073728185140953764072322534646742143255660882376082867717910365352137229248848525173922191939088947054828959925500786885109848581917784808934161046121760116201123917962185357385365103598180516275687450583703863861437094112479968846606984262007386667337302043647257952923703132478792637089011255870336341556992379459764686703182348105367980659770573364167436779856467318767202954493916244882195356456280502786464730582143430144908195064711614241149439852232147861135793697666434374081194011458478394007272144477395062545378894028089044069601796972829813937617316664636404096798638183139049139810823278565314034318317274315419974719874047766083081290618212166652764050037883255569367303986415606583982836650155780802196961722761028971535213647702917423563312725479867478639146814015147936038708477315527148972728535586346383518912827572547652012070170535396570875912076703072368104129620649449674491797499097196350060800513863728337852550744716836234689054044261507743854367597706976350079569279333176694178111321483526516915819057574691948577346003211633802265181191660510712814519541418550906669319806399877168739976927845027716365560987213300197432189991291339064179906669001264321999680919430730621596873439947371870634398648334134709690057342403031152696553447178549412914685605026464654684866586765568806919757265152672889668110680227048037378369294148189150176619824781871446243469016989744950224049129573158760942518907366893738062981369494291338408078757034877024148149745243964762153506065860927244983342177767055707284644186304360486377846721987125334281441524226846824779250077893611916423019945993770030364516914280013736514168451911490975995403437335600274955464387878346761657183619545494038975395894068190608104482811128546431642693847934666708575476648851164673784431542115617183947127205795727412331333080627755385084280511746741706180569462410468522527726596375569890996225258554564160430340233366616049202573807189215361444209194990078880294061139140101488692490284643180674104690808097165154524974058475876154469526535872100810706332336223541141322486429548165671640124813808445125573946082310944761808427278171882441764384500795733419011031199083296954404671725594668858565556577037906624041717787964675291250955691764213419723610805099414059173032051555643076253947049608572599353306143501509853372521800634775874876196235578383576303024655903365347606280822888774238698301641049840732342082183183500446165048111191666013004482968790378137359432823239489158710768208387925005241305707646812971418955769722552478077356818434361481635788911276897352544329721448600755888528292916855393760981535590100676392042171479294854778775757444649480828470126015476137631110449926279030978524034804792340103860997510986390324644149688557520617100966194913612972224241709569262576156808816910125454782166197019970732406839655713518718445184187567169262530858494303879768821601977478214243834563485486775797822604990504578727560977708440477898312035694304150050722048219278751298812508932174138097148584715604017970806360614619610493555518158428963878161574901630635669810394206025239558182755764634365335856008370820730471070097938285435818866686209004314751175138021704659961471971642251339476039738584108484490440027486697452503718467664603958189905084373323143198795092071416890728893791413084115402074052642329039616925637444767548917094481920656289115816925268652920286867623994693767055151952833116172304137925691427813047387425514737682591582887269056184782507225972812963352617765008141883149125593431886517187209814018345551441329679572025093266234859451988873399027696038512968108388737399629716146441905709640998757677138347519280563050135002268177633859053625752325324447861397190277025415951578447505188023059316513612016376624598909781538513518593205509656502311956252429142651462242043532663381094231909952919406664693681233137120561177491835289722606972300072864936086829000410845982545615492741327754884195915550779101768859003839000446248166079186925702384205429613441822225061424525392367595184444720517942911954205423093330704610563913621134878161461410089971769489772983217533029276410033310007974091513765474580538031288906100847737884551084407255067459852541372273341941549948949347285048819880855708462186311300209420116487799349943677754494557436707887320188381969689743506749966781188201356850713673859206709242955718792168374430982881782479933024734479864159381526746406771277369239428402172500073819201561532363833429543262972316098529519272609474142957260071875450450720619127222094584080213576325590354846759216996739186969576810139531520762597319785033228175957254330952672545768807947411927767717310270274106767716105533403041928231669744416746965987427866480312701545890600815987566591093204956561104761802350885483271161294695781399273389501161657467296163767541319451097515853419645229881128201265252445717578691965524795212352844316453431489874735723535909166223411683008926346758042059814221279404403052474464701180823505310402273575919009662340172193708427932811656230460831175533697004818591693493065983477369445248494855852925301306022958898814175952114160987434976892390240039394691283988254545622762268861998676013407785781824473625039408156972272871134897504520960544112477660777165558940147913772077449483656406409506213141826353964083604898849002739531700803105616993284647821297553411289751999826410977619596870894873870180496523276166064969096468184922915036765220307023192328651933912518437597991973526312948510328665524940043182139382100505300160815872936452122951560830429242525853287735792317281397689052117923570257682938632093587406865680323292667753528894672037833701858975306142617018459879599444335713145111119843989163966931613562905682050226948623755711139422726675128214672547096679353098735914404334457476600418061438137544141462990169364553954693948158845229684577102283927576237585688889351727222073313254742375007953277877977347530834187772526276480083455029818609805846453696726170003204106153855988022980546400337181508676459193915955950649051041194889369413279935288685057528204295161875734227465456180825730069385039072349728838854226033728238023106648516445097266804498008106596531115340828322239606615554468157331010868252825910131854567788524179404516122865332269019236850772957979923781722116838203494126213374328312264925165296747039232171783889978200132400379876433322569286950306122947107828101226921269403385047532678996688429207914683865736294537911531688593328482814023600049338636406617649548552758446774750481773569991785989333577789154961994876593105500657698275249622088351091638604481381161379976292542516050633975799491453618337121751260934325528529379227286757488096319548019238430380300884477401238759836630381497865145542178987686592899658350181565831253565189992020171454268410528380309825995857623319612812316127122378994730235844100437526577487640176243053075317259687186434515579847557930756303683638759264157031755332156515001484193082534614725616213137778150139453705585313347283316247747312075175748522553283046195118209281598049351335628932036044858222514377365534445009250138523461851055520414765862747507128594134056437909605068791553672951864831837153710068476698060722226367043800725211592343208529756565894737551655968779293387668990053661207076168271689236486389044216163904851060579822835944422152588187266807525816844800915919165326017834418519404504337895024541926191645752918326879732681506160311944027558099060353917949589675449983046115873478913132756374026930500743617387381974743456208973787552850497759276375802407224621979148771787043841832768293929136630615504152862264874610442800575324108331127317743511712444500121082578748039243471560618746632837520027359601644352481254435862500799660285824738789339503093071854568620712035103883585180451256060266446620466068696305121892338213671922318091924340945515975877330788655955576795894490832998322280062220315389891718038498875517460153113861964441069782173519424848453907639886672388790826810804574475822679684490260693156232275896424530746746169598696326257888287546608009465836246718241755341491943974947789596884812358219602500350562632420378251417230600170920296736811385703958151570867503945901485338400065606668636417498271674019826308817537452895035961873006007802687963665982810083843435868150994409012966355931642734379037578197411137902743181444720354016955238450786784145320923803450628812075155083749317429937322280414988662787471428227106662497803647874520311406016095331408002848342816382782510531703030867580715715183210880257983287935706946543249826939503629855659743319972281695827734121389023841885020998279960553668647912913946602159470308778147248666742831799556558274389916097520138838059630287709228557579123053060694648088994993142324417360958012224381318061493829835839294865181482634527987477977990115156059574328839369207752830223626734194730567020295223271703063761709351905827169717389917880033225372613517723156643658662081170613519185286662097630897172010752506809741101752840828984272241313496644237648141193125592071951583781403077803296782097875076897288784982980269927016826275964868641772475518608218826508958040285087247091462297355306088681457236356690381470851867739491658663588539301748760866643808794429212326298111616744395908018094214840341713037986773651930978536622477209308806319497338205612008853930600292390707084729414265388164900592789736806855155979867072393665552167060582903636955922931472757467540984717651925558909824846405257822578266158644917729016179067477815079015066672823799027861434060356190757249421809847539113959908359093189901599773172339401287983551505950471750619587968318957870019445420565677725514411187825987386717888636974884058514015300088365922653342117737684057816793133928084062084276023118561133136726789511076550592657900794050172199111684390892814341055546768328252366834968143753648481177459497620844008326952570594680886729615379334275730681198088425139122531029899369910228950969979455303333648501385271375799964186305449528084742306692679265425301997750955213534717644213608073273815433961126191129779720598769368321743475326909386056473877952676465322361629709432009035154486548187879371660862593162330863920169223861541012618417475726453679290167691998874556478270295413382728203257409967302018466290649884069947895561421839596180352431848463704583045176369582468093420060873869645431914458784401703105015781024152497904157589895107027967115809254176197526004661136720148961844974995362009858363214122028868439655007728878554159715765898868131364800372465580375206665239844605135361326180979091988890641156989192230370439439121604651935153061850047789886384178824817807312169503938476313908336533892588437485052075392785865413994658114348876718007236372179700051182232469456165146079446185938066632106979633297355891166411767633856596623055461066588012999205685341253499806442130289851077201029512808114128804777875824895807262992267706364528486170694601712286841739047895132233674002610415187272078655862341623506908270302849262060348108085018427862589292241840675097998689700936989073704168036777227966177998720873125841240784393912855127679897040549300659006282062141206271042797087885577455341952600421531862297205757054168198293355797644530055289932322733935067221381780285497917967190647921308099376726179028496061785669987884502398584258758254846350897682452871083338600788703022239276088995188489170544870319700684587459992792721059730063397272637497696272874478367777619723205077829070537911068519722924354995421258145726918781960084455048438375056489777240461738435125678766567407409592483421524970632883978776784021960790450552483482106807305368125095539678591863139996702755209188962301383935844949219689640885297675668783296807430267581961302090259690555969051212613074158754259873624849243468810879031429074706645799419123877370186991248488468750129716845452488073519595571101858360561038966712393417212842388071470894981237486106143550606811392851317932139241990569267530658676587597485893408797953803703764805420367160061140210788724088674718752644129033562301144780453671722424198963740348300794212028921425867534149419444917663715920099292898653909650521973122338493504293082983273434818173927848806701225120917379914425986745850283590156408164642246362760787045334940340290126914143480201421838815644142734285830198501633184162517066540339109923730009192177624058497248813791468491795687826197573568416475290862119381863201963505567020840639918646845899606943610197617076562352022509390912455331122534864050727021580541574902338136434485595115417722995355198291261381711859458705628152680369496628200775008977075226509093783820401635590094395543979269148773256845740575910828383075786921417910837254709296301609375488033019939510332945623996661929523955717910374495184031617620487296302832125472825422981056559549303707532791319955193743897342754065512335039498850056883860498953012960626392451391175414817559984758145921515920523328066781328337705185529635548900886677943637644689314990895051783585691920627375984471993582994445557331551636000629806856739162923747910851079553870618759684752822277745983013351560615352120135636367690261405455011860040094339809633505027544123131607695353074287116293997903526325875529304728515973152040801052439646653579523780034514186982465406312807241633359840127805345864340782457493941296455943373555544952732924226163599607657468055681794961755898796089227794832068390189684650448414266475965746248417585678002626742667254708577658103868373372632841038173228189722884217468401600196682249307207835842965715757799057103650941498533495455355631620416465664712834288662105067783904612032402816984002167668298352946111725198983711653991908667548548204524717319251431041689282005781054962884439755855912164718038119836434824753005471702474735148870503163505718728735151308757425264892923378624135306112451117127676577138062331243426815297198044969397527056517397298366017874186493513131075569752156497446853321824668720421675862322787432526536142099283669607863575076101152234406822722049810866278848627603812498812925586711116727717089937635122519055920757248459679016646354654737172172879353568236599678099008155104533039340958959795279824250760287894038798555636931151125158827641448469980566185937760700900761307335086370191111255253240230829359003129487484059224857977654640890996308274597315501081391393024822280179280368610633848955429589445997867992069864027712058349759354398089840778992687711490699069714423266960544571715095223008696855626194094011475057705920912630591670082203491539640550622281565112273630705842642801011254849714398479942586311959189371136869767803926687951171110805401409482769010612143321740607569915505282764410122437037007043339421602535696344436624801298052607364113446196173897908509820883256324734951312710795538704219271669258378108799358457218437863907471927481436268133322811823378564195875185767737224408634711119308842872353222234122658690865190037543945665144964987843471535082677590837382401732566074220363895358323077991636965510280219798178376816364901768946427427725671302916469799509440209035266701697689916344563070280465286062608477218465008522330182566022550821608486588264832638290539047961322621844774937071888019903598491597335016566871401109350381849039130470819101139508682901049585293003272647778884136922308495839128190692371088491136751218769545521865967037380972210900143576034864652500158958476980031004006385283461622029351898219278525409896248423844511828377634573933092917187961136718123622539860137776924593084456212762322346318466827688000903230731439379648573331983786025382821112142079981431636517280451962256101240515774027760886448002163939497994727877389479595196869174370589136278181940278820566423201944304964217232529768189173337215146498897027738540877277383005705753455970262930188208310713836112271217233178783565941675363877318459899530840347413837975677869047794468181606924310867985630131831261339659113136158365790279326139496154669702939581573062403799216804038692579974344738661095287076400168221071320921638965429818771602540988275346750231466859109907348050324878171189643301920808060382288123825380034764266290311588392626730340450545700949414497624392536048354263034359789709111651736791680775858251099815901027924854572846329169583222972649704227891873762653680983150090116310836472036333882308227922426467410672643698132275375618634862888289216691107173869796772120876700621233735034892332855576542733555970420843420663740498872280229418158438420568876721948792197621395257057856898096395917611307017454859688576087009936095641557881489940524823868665950561641459032269562904250984293975923652445523817614405798540941188520628831367825198149886954310321088744124599633089780365886041651689455741343629018660863986251727874779836904272086827833493955386454555516362680230925502487228103013819378683101227409440012970399461985431353667776525333108908165101934370891809904950580407854472783850627072183977920727767556172671968551479584992980252998718487366192348263509196785340789727156900182980006258924832833642187558799790016886776512749941593030987260725227826414791199808424794773206699225886502636925882080015051343134173491755386670673488772905233732613027947566811722929140394246458094837542255894885302018708798562736115803660774810748601428307445818808377554313913773248678693717076195811127820659712399862759994478307504034230180917775935323175218032102854182003783089785642217180551541456602664829369488223136018523026947246532199467429713231603850111051718231386173637367919715246107374429806737822426124008740789422317198695153258305578757821430368042982167797467962136458376703913803614002075900338010768830362515227271221654227996322328422532823096023454691916173998817360156525590052027000480468588701334717623097472588752526777457335844183172093774050674207028905397538025245952503070980561474746220504998994525164247841241181695962155155274620328958390349272573067943767543966741362062586545768548851392418356049318764005911568499236010392657078586270158684064784163493038627146422537739203824781070921635148643460188211550365326927236194203521509859949957673685492672996738782936409342339855729921274621996846233186709420334686675314298871312244950442427285431847699682545425209557402827988203228512295279473636732722202339842466193662976768116986026943152129042596323664448670105064611884164374598803388036256498065129019959097485709604609887215579032013030178070772150379270151666995665492291478344917287897293694486657104318500933599829282164504511116480234377313130582682890121443989017276751412455506586152108784347737137388829824691148585049034008858541893590038550843245332347269393932191724625080065554408252557176470905122593484883767129422758317189369569968211663613550311167737070238707644712381057568647779126191387468526533520830583780347497824640647468300714922241212018483477151695563190390689721704560020124728996647438160885437607180553963051701423660459863830145045105387482016099632867635384835647217739726332070020553173270153292267453830807032983861171965338515228787559106365354736700199795163726777978098187353546983730329007916688629831041040672396260835437436660268450604444765832828705446349136974505509271602897245248960649383546563040397961908785632743868151341716494284700497813944547441965665551166608047294922222747137372758727692948513253535149904306126169545987429823499539411027673599993157535687732894948016462515685202056553380078847763200540536283178642527968923609718167409111032454874578801261283131581735588760348031716043227418690006371425002451925263991865456610255567804131141154239566992095211447922180451294180400058555896162082627696483921984112383754215295708909616097170879451365362363869176072562844449596428116634695154975185273269677376931607752348474071272204663081294894833884044345488875486427931627876302534945854634605355772592961943337955054803693940743727226563757874515912938831080322790606472189845726053663323216541474440070894203799015062499940686856154405907520275490677055431449313884309906882438966292729324315633075579609297587570758903714149707553233726893553665120896359454306905987683350271540460714076848942853795571270585072769177942093337302407566592869181695676833045183846282433800832813719070337525034412565547218165439919517220885983668882454687846192239621994438992099448558413287132712777196115172305617099602279502677137072191793884521067988881895043094379928895649536359059329955233284516411299999004254120613912238538156217887726501045623294147522737278637793369307069259489246931305977020677759838201792570818242046722564644276500515723243011556910404075515369501904007502137663895765751824683342445993882087663971953646238695603618019819413395055572076206906559677443402638394197609631399203638657974855010197478985051638927947682651098956128760666315137787973428346533199407047592314870817145377540445972030832512117151278097429141226235211357375388575296225160544168561906385316561819851016002496677556343468629646794109636091799892266081940315699169270803849479522370951384869403317668591235207256628020843244934223069766127608529207291642012298123246454575274596305009972526699057187588061427373798478654173611037316267227482811613374854725091749439246178665399378284549558432539208088132494963016711212175500054781973879620246134795201964630375915874217267606112323781625322532458389876968341317851052652459397255952496568132677139028006930750528067398935450370529473810578420146008043204016040036167449660311917525228426711542837827569047881319887401411914180509357619302518053244042065376425957432939568750766829000029543504384662959071590984641779109858893190804000497635754272973538006599319034842094555546533838450987754684899342843197253567543186033184968023976962331313027451203874289937641135753257302814831783277221920712645634327011522616008035978264202372054871331760628379974099306081497570350788346210550871649412678014409887965283704527053550622498611961691047078579071687192258264755981082549639960435663448431818469178541642200296746103740094143193347948481457674349047169995889210663739465862565999139172505355947555128690391576468942350304805697964195534587867552084031301251062714517916592404007062979914798813887112798977177065244112410556028576483182963313271153722689140240520084816699012016836324101142082759982994817852224016947899555058653492352258653423179909796564081087756312726105034753839959520633497137757511081522345816906702771142565283611636247462651397736252325727405533777718780388424513536284840552098805833235458787875433266653373358107740748271705368989848122495784651962661794678607390299736358439371462546459165370425638231804929403624603965440174382153226255757530170389905661522297047087496026887811773256709297984749542297389389671893799401772027319447638496360000679903695851050595677438307418347383067296189089579326112581404599419503624517515499861845492641207498919186906820471527393547626014352245316240720488013200132148934699034861583183441865835233115877932699248990480660670488357751013572237889559574337127663273892420643130973436753637951178274933261130564871124159004346292985387089136231071547301859280141759839395700483060590375871286469693466528567089207577476387909515936601415448878388263751376017335093432151766082951665990612631338649450059940033244739213415726145202948358932394590688628698141940008928751533388366375640199090406984597492593764137053823598789815374302306820556887264542241998754482495181602409276434951063809878582482833339104966705823237454249404206263615393409109381533740734363703284675842657710845387966964736525428770111579649022911587989865394148887857268480941696099440849029501214071385071459068731584075792379314114680524216497786506035416456233410509319377657677357913609615971866616632537327205705878627277058075344585427488907546352426477234122556134382333476361102128410706941041985979031826472336812349753945118662805286199682332181014664414203838092283747130983771240034158610092659452271040501911525218209585156292545700441060755252121462429646571740637204071104768953716163859009301214798556755253936858931616111577037420052818039409331478871808731818196433928649839910607905378954761450769104133295075294769932858772480875867241665362962794489825089445007087465951358654315170960085829266921651263869760904155388859263847508546784549101696755020286737921261636761041063748226355745503816661736544454450154381065701269874286920459173653081357079185962972334390400614970054575451992161468069160783210183245241351249997924055617196673587189067652065651007338743460468315145564949709270856063677728175061552171299923157618470826862690397160881580745062232346056861693194133833983427775663920379212287339726162548676662859504812345090136516344701630040893152079640993877587969490233773434604318406861055747828624333607385708559601373469075264359449223114784539129481801025905269004503113593752945835721350534954343283198147757172443642947170180884908794295813810361663397475957585294157868660123973051735041978223609214035393140004912991618090394161138245257838617634709625720541632845735022705632422339895981682396739927654216801617070921619210086779371943230716598980057184282065741099495988697102207799617625388824026780495513684600062869315147452273839608802219048329561204333374660885596826968654337045862763057613123913680427048279125224091418472224446488210236977995008595746474671728582303210617428088583309450562516409132761711708648530326926781225537237013340619293021991911049075104727562445405130006838146651020906298775425358267240369678149546425425295285349240436463207768319825620827659612498353160696312160958976398950944572162519330611233322964853352965399749872634546213243502062718927904641078492261768105855923875279615158923777053395295072917604829363632972561799154459322827345968490195941464872594222648553069006063463734266093969237387159859292026687287407837375991083030093569922899561633658699184843480453501017102902253638469209459788142091461756974599761782458279578519211462072962184389059664689931476363579926622195819690853559451652025362880653249742210593208311831948830566896411305468219439094773367926718112482634604841329559781529295227507157936666637338704180887001893139821584353899350512857669405708815370131354427880710906346772873995504598027077771568520530661062161156364162973489607422856763788909117768015587579754974080058238620465896822487795607870295544128017484115966881761888253795900834374793438500691247401597339208747187005988459489426803361667785805244707086133470056868525644527663361344401388379088843354646670166611005797371021441871043763505321131992559807423983550794469812402390934379900881037400053825426584527352483649683806803154177385956250496715528373154880102302952139801598717162802292951112347088726712706349953830198462532179422537082730777213638285989601169577774003522937616879398271993781689055397343209053317479884343439712998163087662735593430556627056297619405354657584602778449735849148516353279683822009565974495117145577348558632591230408445047830330421139932950672009347559184975586619922525217615832630410919908742158065230003968829891661219181742272264378620831607969827248750597233310997693155711487250820361014482816666228006799342679180697007050155653401309243291613680112339049115782838055107655355258337917213568209010625859198056705971746105746575900911950362418455162401962100510630896019023691437102214901913838755403470897427669008436279983601415707414794806199520905965527168545398219686939884171016815209678200124273369773372608266997167930619182651920166188352486429717772367890713245030801414118253152999907847370990352392882028563470806376941237089241186771478807277431761704512162740563307404363551648177035953450890452588466219777341674049633986395596838181648428964552210503229371982665545574915779499446994804072203082771415771049103750315731563749822875074871150295784336802577157431503502185151764240504512712217971433209970747758585661582440137942033026625416360364597028274338177321745589371063450903923752218288080308643434577741570778992385655854185579698595690649558836528118266578223193410215039396809195057917020709992416722360713921606565108457943293167874218616661367670021362478400931364596776212469963971548668776088748942582104408452971989779838151251115166104356904202499260158424041867758759206675225253366946919088537009202242743698410113189687752878174032760627656279366462197024820401884483064084410233905823709492449868366469956121169450490237525696626285298984806973165607080546409664724860479587296758780005372407472520837459698676382848933842214644842780689473596375637482078514367726086136573552837862720177573553076842583178074830407782154647092739492003746048854578565476805522682179340258436610450692529063916195156229525203597072162258717535439347516417857947249246924352759757544008109169774821360319129642051311187307392403953343478475797456573219517657168949281675836405167622009756430179564745224900967411151657837937591103449472909938467537120729229912307303259980354044777657620447030862744398662482619200217332964581763390834792389880749265345056297892000787727771385095729977955353381374672632607299318949428205650857914427163321042083010457959145438344051389040971515222742047510606809191889836730328115331581089828921700000045453745223407606636579326391744373443252379711627457106990710439675409396179838442901659360300109137291577885204658409497105412034483437914525395720381415133595583551412660006178345741974600689158605397480856378102155348636146767788825770701658185199725802901826497787792566468156624608678320863310893915877513852322021469240183194685827071990919049183336339148618780737421504443808939476241602885792672827431208636162031772479968285470171563409824310770990679577533622730053606241081018488697187714096237886503142752945034823448206101826709287891935301367908037345496595907587929225940668060824971241572282811015187670301202513311000446443242668777961546129155331138178219989196580747050704973341977170595710363078774294958731130851506497644031941235074626123281407841126700743009357433635164852419430234879033398529422222930808425242009263143603608763707231915010558972171706535311864151069323528517303978052231464191301575482046049480683974141045250574235680608048898257319871080387111607398860867960709572195118413145634372414114661964414872470834756618331633478595350290586795694965988717306032494623341464651742645952012677829524207550241999399539004857761164557891896849449210100726822552563103818001125626271103577214970330962877192760762322058023990785907238852132510398380780326047857344706821179882783676383124879318312920316486490643962073009518961899168452485732536510318581218316094069225805527095747843726157201637991772686616824111197737118024012688949856050516105311501307227849231858415276345115109821769133412279978515786593069734962500724459035957619926041418514354915830775294164364138016241392238736281057885337187866911876921992295311151475142178384976254799379178069637959445711840595243292724790072146668406935193570580221266472415581353186734851136433901387614261058683950465003105547651217963756601200548497278870324557179497929060875537406393038598039015684631423813930446051107516863065279642439220151967670258009416948357743490570712888201662814047596591477830873530912961578145345783320736735981589811925781154423619449969669300144739334376052646597103144861492325585743708659757693324330976315470168980471229295298554872564674121419739867844228788901361343859512199316176498809391853003197313531184610548056193707088725996223389816305048898838387651634473327226417819493941043848584001142064134632425689194211774674440087150876026252362556110143123582391077625380290490673372972766275028025889427521199059620354213627711358652000112861898156217618031022398813956456931792333892347586192423853764227913332046133669214261471818194222752544963733028001234399127415596462092888858732368280333631806145564534311066354169106772398449932796411465139635486757578732715747315834250452832572137254577555014141551958047516108081568793439963552863801246478072166372807269739325568548256739668678562469225386780830165736505349800451708806552648156994414001497173374648834453064295375074530602419232095563040310761944912677796748404869286522258155040475861919044479244069804000773102202122810888427908515634510057371824762551682188099731788896274461881360036894751085332969588372605624307448319026755293399832343199391462358548201866873416570295562973939365134245764684768981467899982934340562256298915824317458569624080304724152357363079014804547693066441713473855678995538681823382034285627491352038810589268339337263248002084486900845348936198779763803141594338654442815565181806134154529744627474539915663874770811164498049135843835809239329141023218774015770157597151508811008726482511429485196693460467698992892691398617912934825586338887555159024695267151652113493747596203057868420625999006746686849004808019825896010461295241835217148809926875865960996168895107625102427637502198830866869040470720787376864408379626225424730163187591454916854274738165375536541583532260879235354317463680543151335230385603474241990532225583084204590407567742053661573564307138542477295011355580223506288035981321487387197487664653114891475513452101577600627506266369271702280009196277426531469288085652293612219445798820459058114857048932197795853259315120839189715896442247748091390225892441564639420508906019428277162182090927773278757564184746747365260447492814256852499632041438608573251935093779383186599576086648061156283851172656899017265421081896206549885259199459423925171344587471505715680148347869905645501403631544736239532102660979552396886916041388632217197438167886491594568699956846726172677581497203202016411388380823044530133710578354482848928337717349969350415070978479720318175620361787756735347203314973595372162653685525492670943195396159983272226396178703544102809352673470696813667635467441108749042675035181567841369005573018522392953846963530502329036665577853421539200231703955776861075587215372398256681480066289391510198808144482375498405994100788593041301569811931180341326905100702377608301555607824866884638753312034074713236538038167300004616275779239244639915669865634623253494402605719041698746348905330957900518505317105299970813839005868390989532716680112675422140048387182182041489415754031246690343429149303305870019973220057789920906120479966345295402252752725722978016136329319787941766781249417812398526265246359634008957835106178805232622571294788660899397524617720948016034316737148929220994763325877740424774754770308176862498164902487183366945593654686266998765827636569174208284747558906729491047513464435640543955200556016996089252580206894489462932153091348126104268782893955661389469781738337304271892795526488392847707229311771263134296522506586064134905218467185904435167658899281722659543673531367620250396410214050448826484251340223498097723700278508954865295087022267126859064488600262376895540517776273678593029039863264849896381893984912502480651456775152473435125968909036579244193602434607475709567664697148790201129630611987596165094551148873249215147214975785959752634688134955075462327324901748412992952844706460201759020303488362205151605460364752330360850878988965177955906038726687896371198679261621815449704746526162829140491160596621751167618194978340710791801427642050364520556792359051399893046628764813841002678124813315673481311511173697459996788713749860155253972476085817489527473252838941194064810052745875772688858115574012472786958848163385533800455963729324180780537828585010358268731754826780547515478195801959818125125534714808941434491172758840384700845222258972886230604095108926407719900439342783264930235695422625602285273326552189517558343676157841553124474505980204341847171434834559669182427831486302148864162011934970031997755004859775366871825694475604847516138494335984880782372310348652291732654730020641256015612613613883058459796936846124902580770783151594975239220718160018477168408573332847764177557411701856977833067904290063226291647373065766824830146898907574711981927540145170744203062945261802364293215238784766619457070145750649271316453411153690636921333164698369938093313924982809164559870154594704126910800183923385957853827165999786588205109806797905098064516393795911070464421563622529587634686012120750381253773477452424790429510937722564885905005076690683712721993959541978622254793443390657364651483684057996964325211772288302631047131375312131641762406166780689849097291219720667784370911340394311250834622884383186517676048239245920807096546122383285338493487117389617524367514707678786570343279557039416510379510067007427920360159105799105875138483963422782476384417729435663852405788379062983112326493140645761351633729847229176730172399945108838832034771867410916817963201245142729611505969876147782632086488873195791606557720434401133604614423253876942493689632963314745244976785964511911330457048226124866763278048264650328456552195973831833958339019898494809463662150262559366592875689064389694223423313740279110737218212954839225436932126672043297947430986525286086267799322484558035286049908292879334451784507169237237631047974923260955144970723167663411338603117798914058204079590507830748521056146294110854742616569448251862335939178143400933442229796687040995320235467378002792390498214981689650786674950459296056553763144092720660593643223107699714815130552815089924994805321832961607823317921508243745551702642254139242109371872349908163583064893174375002346833521492250145625364909358740240984737902898376863977307507370710438695302587914136751783537176526819715080472511480021559323896928162749972732962296683881904086730689805084402154722700639752448399951209559026984305140884747871136838584238326220848729760977192099958044485728062884031573085461245092096973631698587833679632383508234363070631037149495265893324646223208995651046474462355898737174757047424490004568032024494940287165249585924308711222227224184202095600353432225906496201353473026161254468040564150588090120463460608830208710136670742208787100284299925526420454944674479463275609214348849342814406108181161891394117276453146806453107599876245398093736140232407114882214485909888213212026253207241695982071642634507718497558420466982102802364568214181817630447245377920904050713836243882017416822999139648143062204580478235915522099982909005025630681047584097401106377705349920363137789148926901496184215981358627560367895122783407399092433401168348650793707521202740735051401418831084093939384609135283526180711341043610899133469751041573741603683998510818095294781348839115844600367567234913200541000015182488282184799950138999376764627426969334720624229006235780498745663088808078428562932211269088852255483926951196136488897345630521355645961281391968204641049774728253722900432739877455705882343773736104728459891980976889371332457728658116519037830542809376962473934798760067469910471833963662458931546408536226507709334868274519996222566774330460489326462139392793349301977511287207822579815044230352591210745103312871158825575927927273072087052190010754908996983724606565856124691363234489393999092212961056710629919397120850393344331893381048788916698403541185260799540601084275345006657015873767020579389761917012324036824437689541325619648266911674159190428737585956610357533170579012598120095007758732863172542636714844253666932936341542685309415026442568389308343554070225962524544769958351164367357728606033701195125061555790711263284937553210365644107120449667844731536861842588401645420576268145176392924040135799100524299003970453146566313650597206932017557974138062009455752405490316460630810888209400894675101072596489355319348312144311405464531770934062433223913179708260164056941538876960417748352632709304159766597010360680006449695735237984925611032921832843912455976618615233733579533533844387503834640905765993624322527633654492968572173633976964860824659638058451949846053599139036560876247976542710015718068934703066501218859721934989337864552971063087482809047080666950342784423774298292151989999018068831120198109969121339506299566915568772120588448308312503226384290173055996253200438168048274381879407739128347662213763505882441685315966968477255767307777493161185939075639074648252610637986381330303547928357713295282568569292034350408488492171204539996682844468093320467140076474917369493426591911552865067532425153440579030361998895263723164628880724776516331997181005652993369892376255922884710553253350974759566829743854880039817930353168759709456712619428891149790468978624689301951628046710113591614051423074588238172152526912010143076469483040626580202913117575170527121453219768148549606921161952609515369832065171479686989155807968915709297582020102364186338783343529448071966047812166071581794396416684271564853739303194309617623822483990259705775159815822700968490830575267995059185322438771031368131019242166390852537786679747619967962085631003675687591758084068193985180974667255584151451588272232665124629120990304092215869214850197530700502577387183626960132690316426119089948473685686883006379012557350919017203550256626938294000710764245985026574567510269896030814257199519705009498426872894798304270651858094298854587227804266500107709945188074435673813972687373677990696842849855550649930493247864131941284460666462631889923491234646304514126023593112717768346126837115552176471220794586349675680690669642073018480320983843518055220095875045798297046620594443313803362108296483736328158001067890415932020937683667367313222408150467478008790065431893425682793916881154721369995463748501776091825866341663638584255454003529579548880390539107142504497201730040086466141334475699296537008307216093560622454606203345770006268640520061407335091899218508013420721222513545321302894052801612964029268248584355245132210724848077043971393772110456533083141375691004038720905220496243411796148187028661299178426707595168829423154446525497211846770722469758467952879741229394531959577195054742417392480709184637721148913238061927674641111203839325258185097820537993917089595680300902682755257814835236882903557488343424816155025084262377235099528300820434403929547052644409095298726319679357826064261136195694307866594825980748233652511933711163228345534268361407305856192412829266952741281757580841703086445296812969698115897323381257053705867258376596016845909583037467230859150690951055975588516785087462371397047221861836582171318063109580316832873602423280103341152271592083635007987791030399624531595890759129990389708149249112568551905776148195153440883394944681552027823094103361168035420548689436515276523735357247139850458519515719720943228743775352807674337452272612142267620498287412390454498075932946597979691707541674683371163642897845803062737975974610060579187838450587064425155175513137652577009691608077081213486599994575329057724365967801935313065055070409331928600159387517109945723763242841330424491512571860589506700590364157701426703931276483935214043890702824397128347778584014325916683121135947246499128953739184991332859364145998740837381577506482037820836870055706210673775729435962159369743151219181502438442429668284971999056555721584572620564619964239949580131958274356248325858596283066349510757726560910806872485979553510404553207516373703306184039344330533798763650053652626949466001043106753914144070857156605620232938919304934728240410388301255175356018514252943962823604255774640016599725567942375787136640575805360009992620262170122573550257505352043981843329712186755639086544491958730069315330231206913293291174056952784388770902480590984865093249199424883627678719225352593901070658915756578906787201987945605125014448140644742551062055041278241218907553285762106465449460183637443385451848974928346465943223138037948723306344210065147244581115311036547142196146047054075212949734234500468094478316016792402930026624391924098235711056071247856449547076923728871899492972939754467027631574307604192289554367957558882438703136935609697445607809512403423671934340006272198517926540141977957831692585342403217428071608166531124272357607428174561363486723564761327233279631533857806142250831207835519886005638998739001723405274500571073805210810241864859506913122663397747750155342050872370108180480048470285378232806979533056687966687265970156635855487084578189556229706328031288306670626049099406683322794558142319416820936456296605158342741693741705274438766696816179165809157487499165788193148913184757538486623072208037835601976027695571692293014440542053825306002422093715779755167413266486169390965354183000513650314273509489748632197763140150068005726440033378769073535389466227768886763434076179105912966940360579090087875287807053103736089856409301913280451300775230663926044885281577078224103645854398769489802671338182978169326208406919392668030368830629704000393821751059001094261019488930024689783870318190925760608013242227399211313800189190366885668029588517775425412499568465392073439788909050563697624523772419497500060516282426410333502773414634251601383251585940544916075343480943275938367101362242027003160506337193042466925011154458257425435929925283584476443161554919380846490463193088232589615889481192108151136075684687278986205218575947136645906931797407016222008854997701590931566832685500586109643117091192242868751395318783840005509072015476679750712920818701220312503455212722738635676840106621321333137473990308846984747342547829259564316237058568349219206515867897262228790201228731273686389397243664033333514296388052499238050573535808851670295278856720415598439588623626828266493678379188359047456671180618440435569171450396361134638277065120012047349039314742040716438373979495317778196334578371722621042538210836082850426730547205502287715036345616677362559943649237243508036920766968673034767913760329503206567987998795095909329972857262582822762739274440886577500904791525440444599819129917042371596660901812774871553302610659645055371039895050869346378530719038953665559005309778282547869765759141813500237256364143698809814331098140298737099503186833608521106390585053879150040383498783186186362273941662216354302347473608201658391136558775026342148025161939109198677040132048278330316725504259652369631406681297364195908536062037086825315079780776583787383000216147493019068611407350900691226373786171437102534307115618523053298481114131126324245644318108652955017298775451103210119419939753872080336664941536537249401240443819909979039669123292546402955005641680406625579630304330807802559866263050357089429862546277970750746724958680463206494932755679998011797705469792165773628708600928013379758577066953706005900272472182508561246637704305252337188478635739495429886883453295523074970475048890164250341275108492718241288683215706376885513572129445655274319620980637071076479466837802154049129961885909442873476072304335796945207125549862489882567944120144178870356279091410455974198149284925878361806493330864337017169712621512876832445635735350247454577981391403556619551168115032289831117738380482133802312589409813497915132693142785462854275192941600951186628812175841778556240521355488976014756849070524464170420293380041537110967971870909727842754715164344915648032680983136197955175145095712552982576001241074988055973222268196982027885697702158463940313582750161701063818875155184772730832559546291163117560167412115456340204301432048700930362518355995318879708326208094627363228018873604503013043004518598771604604494837290761386921267661422002637670874066037004581954950452747216707914026816730546994685560615394904434369864976611268547139526552887118544948043930901491948438856047298275507189172363157706454031339893718087277113494833550938487236673970910244452435396297363634913540364959365760597689694265384715554160126470748207333704897073282264399680331687862054166898515425623157440160073834600981440647060776639518310589628913816340292725772547659199678451071534597073435243890525503773982832472706408750988098304052303070840568132589135373927964442933789797503666877490038208081889451186621953724628116778859321825655812699744511489776700292753043484064739529422195504615365336768962764255639117268603102147858728946944945469946205271349806118745377406902058114262726513773101635290068300994917352753500033672098601532246385192488653495499337914936329519584209630946165336058912762098017180316361231589247303191166691757590758484777611319858024672814350300969547409550523396122385329139779298251372272358548008875468309962194994324866944069358577742834360588563404503049371840093055895395587826294974794703486605075410769715988444618176486506299216298487029103498041588951148298036750934559342224152321887107107045327851830611518181319900332988877431596590905065797336462220840852707701738197894037686055901891116264945526431557722465231634286579581635410097465293321143246345819145741083199068931944506437756690715744614139451725220430952159418899863149550887629709547484236209846243924139771499845691061164137975988170493331212143860922031478292088052171565003764226880554694099647752542019762308372312595229312309519909373108400578788550864899435324298470447700196897808034242386405258335976986992875099309269013116887631033678090854304440220504340659681050219506701857017947425985892958380041670918399991721736830371040316886894087890097869702495835704841149334925401122926124042441382200821585428940463677264805776312681304209789471362599297302498468352731247881084376250026528128358088828667741725732074106799180188210863709734893814687528336777998219938796940567505357713082635191824242621751724776823039763703287337211562365901175369502761881474180380527518547904002562727386102474512775989014389002524609227650560055306501495731784303912914978652594788290640487427704748231384223893313780154593829861375185506841936472364120140146632234093361944350903090933118510977664482188006203366558751164137992112816746784923118586268244631296617673057988191920318620859905576977667142293897974662482303291654961272774706985007924089960316233587558731111328577211248556705676471333623027954769650980743674306024611739469350256979106656949961927006894781122929249147133172379671424642907239712712981773651632136410734085653358028770150109101962033682600554681827805513744514214821910318876409538646535562319871487775953224677059156546659985679064604457864261476311432431893118710353047507238996409326812295007294264452723452192302909711139217722159880058969454079554732290338641413444378661885027020912478357352184578072644288274990316645463288049875664089986551664258191698657057823699739176311668273333862033802162181724198288303703286764436727186405829636556848074225541986455198975439236995230661380480219864161276620306241116229098756145706172892548927309859335834205740403066967855128352509263646623995739949918224143601094586860155803392472828415305126067982255484397993571559232073809022658408163751551976579129283304900297630061609895696249341189797493368574720393577268457087140907518688234012753982141456295757600208328039206405570782670705791066544011491269663752250418239702138256183356088164003167600010780755895599481587510562349535012575875945797021392226033431841488445460829930662656622321947377019540509703450390381720390119219686147710266366787662889812515195876922580643410689675601790416841801123539447703304013564659367709610412987983033804194902101732680701241139290314409748745206489317576793067857492252971611669935214346993199405790949171764357204885038944198313525366333304686169530794669763299702478824332098698788498264046087835770793257664678639701991128977149485787309169070789658570018937916535744053827433140604487747265210665436042293101607637375619826788967303088908313696917112573211046511914240452976991883227547404914717296902936663015754622962961270316812988375993786480997177488900132997259078082967412521537287160124168441369498604274869361412186848371142308579085782970157807836137909582224313205415254376551763463019919809387272398115107612176633936800273877604922983910265028781076371149359311984196541253839043723680468609153154204566085409301547283761079734120840206943180213523377815240404862539925308324306358486140991752360919725103583447080955717267801836940923316893536737386044036828988622678514160884562988704692412968882010014517688629801023041078294205979125815288679566181518249619538796314890401614290248303823454266930943673068944638498081340345834738241483305157681569664871229990876690247044208859412557533055194000271385296823599096211535664228801184407018225192155866934348893600038423372877259253956537479828864840451713186142559676971796672355658838086056545889725769930299023625022521401525079457799454267553184851555976201634216868030927939694538660969440186013006637630318621090211179910445199473738296263781244408031865328187873988352547234089645485963467347614264657220209495279580546609074229417810134897821699079392992911593314587602240538120320085476838520550597567982735722205244323872849789332354080930707497232933763142189581131129412433216497362247168034679723623543938662722107446822788187564988378194722062835117938158008999708792643313825983047379511013355910141147134475336716283564029416758181656325625228979669619032075899392607780954818329533358282997242010613285499576071568349499416247870159489507219096992743710481065009595109116434897349699838421506937103284544004893645352657958264397584182704914104105026585770055374240078163022901554572070501301627103763628613582831403218672220983361523928944061994650393820332973250820973285729953528149181177962885997629971825288154819499753039632041325089435676784426124466404469317090558001913388149987059097296295899076292830374153499161409717432851637235745607034827674735847449420218042344157265891827921920808614683426415555566345530975265336576732209979314123567939845555240499823732537532106924440612201851774470947061089596136882175155816439478327870807621248602184267619150584041024512817958467909463657269166898935119619001814561711340658778793256232312620607136573785182054335333937564878526771663326912576429343742198948129462268819172706772095114300678850016379637113178298635189848591543944353856585570447963740344901767522027343019350810504460836971994303770410388162315111297321366697581279826952790565114823322328401388771783156463135418767262614772181188992490877169453041808120812403515325997036905437776799862408750584387844288755616208158162009383269926280607860457389325630240449185761233506711563481936103952769068031934690747857077922301162428288675126640567131609419990873130317874239851059412730348897766738666107828202267904415163538658403600638858965071998384157661188758471757594037570978336896423087518888164780703282400963090057952501662090494536171710161263199276679859256648261549927072737832482540135501511671515449061955256950342116505469120490025446228184061559465048555457059133806075353165303863979716991931932082385114683688624640021932634598184562665119175650009665094344112367908208081327923907114354024065167267603615659420652560269082419921678689365689465556708788521157224188294736303820682441565071254847938058389852153125862244110486686006390559127016584864625733957982529689541799002991364850588208472426074643603125054267714992172640414908735212105044186485950736975720067242937105555320159500382468100521733263089956957197045441998468400745001680588385926801825251546282655887908614027686852902425201064961933792644722466555610713793285802903776384031890697964716871677464462690826801351745169444279344409598881580404720249597582444411889689520875413094373783761239311331104211642064063752718608519127976506645199993866844121720103300730686302605081139071728009063277737837579668900749741663801976947666771075503970318144163648348980081542084167419331573867357035658959198857438284440624660884341553888633812145243648540808896635489904563102523486606138594875376190605923474961576484909583594713511667858290437795933962396692366451928474087599277851727970418621434331061050237640972114922492874307392534762802795949154974428145117049275411220476131152415262211197685276120955516251994385316957309436244183459663992369461998371159513901671992117096914608543982393847441818154762873257824025921486381944021276829964251298840598672067399918727746277504190547667508794440320046189322469886954555600103921378737047406136890788149128644959959028468332765794686602392664300504149155311804941871331768499126840083843472511004859962313749792587956077285729857258688265361460710330087556482205906831238454625890360601825975708768222067038382264458446550075715930281727742195750054705285348665481601383770212678665856621913906948647838138643991287939739169738932666729934977981925917906761272677568311294925151023187200818654601161488349940456668648059670373313943618049314472105710303666986630013132036132697455751718560089942523554664411590794569969468189392719397128108702188099209073917451490621689505992551403107875628334402820521153104597041642254573275923287879438002139137939783649791868839360891949178232605405710602815401856400903779767124547236222225349940568220194207348471129539858502200454982706656404358943158280382281157892342277526649614708435210816614434996883192277641146166055839029533080631642432387858308236607361377409334636316910073147989705449588193645003498851038798603944644374002950362204492056041293883830224056002388756006095858693623983437201213844369698673705077543120836979081060808554330916554801812906807873442851471468054561902434503231450452159605346051032445366569811272580469977767124497273585417567736307036404259350463513947500633892909204699233139837263925321624591474771236082792801542032061379408149539796898816267809053739394440261709604644808238281110512250547727262909992425202055535077646270804448733963423605064199629627227700347533277293106839427525882978474234578374629145173314921829681378503774521520553540470936345071490655755362800822462581709290026398874968520348137541327300010278712885116205379775259358655177090202944989009156541666331486295156162141556541001600075193284609111075490094967984484937550360075042232525986450805705909443901854597175575071845915579145153091730899956213673606780040661803893092596001159962367746530071104838194487229600006346883410113087983754087321852418093999623637957325805084732440651846704274877932561640313822741454491423567564324928120174732314144703884869993973713882439159977506749590765947188985905308868235869468054103373471926778265492420214088711669762860358152337525408711510259635044419343727178713634239769400755217047466837814638709384955212169732884478088481734482271743989260419252617729231330852265264666126608321750253074907313182513630258816184783127117850436878357787713792898039447313960999762956904590847807985031902967385699116025836291906090551953481563314350557460119545749614162875178897204460942960570131975851781586696680976212663357080947797836773828907154385445308994030683712177916413556320046160679704561917406264311346252654550686642865356804857540572140248762187863462347467911725041151564955733632295189911136889088571760976505299122915725220214562006297462919432667835619145497246527202992618338904231271236392845038100672074004869942119725763169642603771354338301726036207333972400717567026858150388528124981723338442503300949780795061930638674224156546158687448997460592926569137593509851970038387357610880361600790923194666875771477836472529189022733277318243220851449032740672951309071609841690051436576160156236177204897572944513769110405076455165405478724817878424297671045222205457163139809941264732619169999649532709126797761369474529268377779403578827126217566835928463130347104370671963719286837016413512278213837836023992051260717401320337225462334887989424049854109040068365455828931587884364379018005839826423962915782076502360030839401670557352951542088186156985106089735275877246537156969465611667192049606290387309037403901372331957324149901765712976331646631686023673592977887101184881893907218792038078196096344866683261930201982048395294440822265234740239378391869361062042675614029707840204033814732853587384778673430492809467220800768673811304668566422916156214578726193183131747533115704516818175721757027615602489300154504570422652871883739022056837706743183099759064452212523705975693037091987628400075467018198863675827283790729541314438000482738570340474274187253209859715180781031699445514340807030500155144344488286887801354018214943237490854919510257178275527070464009930507254910851590232801982923685367956340508281302715538700391756320904474554664731445799838562426210890765848966785716738899298206409673069388471154853400422665861512705784755877178883441215315532248162793048167895174342274094942264134626037975694895890381978571331792560476211671740467020154717186521405801584678657562543687344367188164923318510889545596248012655426104511782947517925954803301269514244225014416288029707146123281122573388546508037019166748425433782253827151859511378269846713958071094036761565683074074337736819111594677653305646986697355252590056176652308516995760374499581456035604226810890053955015195766002245199657452514572210128929783550418255084491131798893522426526926383319920304955328687520951788171928706203897230500473464082217824542935602281935290575751352418754180187955515015967881625285959889799805624558888256188285727564424736021549232719171798920997773640226708192078964247563571282499127632306719227132594991981551682797549207028515029343189189846172274223842332970211726268682852719561895909072238830554559072365013560756037600016336521314628636826555383844601639541812497089492332512241126309301565305301826418147050604742785700856960212481650275675439502728882153918613145244179603052257215751721559357313526137343881251145263733526183891248660916432727221148408525090449816860301126641932618336446451065588004842962490066339073244829012510356979176220002016988756399008295041289553479272720140266108898374101516678084570476763751182207748213731247885101888983179590282009097203476391278121911734857442345752117761781313617473777926084342162013912793212502147978909266777620542755021652448642454129500354028814210840266733981341586116303622276244096985422487956914622707929202784219209294093302460209906457000744897058742769437058759778840420685688381089808527644776941915954656323505413375764313362068294193697345911398817433599703012284784752654459902119375420489665886848565756435869970525718974036569499132521720355202518303267631866013064123323675692097363492194876551653725387734704604083700936774346384192056189566957560293187116952530324945481420027924321747551944252207559036237540467276652307466360319963214281189806237619208494196244215259769241003914596406898256811538158591565398449389886343027621662616253754112005690537396446969468878712802128275853643281502738841426423611779310143515820903888135615553912857910249075518252540615003745582228925848203515508683351508913570430610854934281178330426455619926712981701229499808114020207239322715620202987846170766581793849144752505939442890573127486514605282694058674432952011843573366580442638803173740971547822788111910997714124942458428697472506253922766131888496794758264701922685181533043442932742791401148618289070636430368051548915450234306358956315274274951733675469806846824208042645288794070466106184833738437780966964444998391413317003545118759696308735728974860024025416523769807994932710135626191450361763250220764577007116283784844936443492305108723209632768400099874131776503171215176107788837733054263286713761612558034424747258311439976051380485422021362227835080965292442499612680455133567850438229876435400968243059016533061281511080223304917670394017086094896735981762030931539309266194174243898996486871890349596479897168939714427266530428076469821226177358727685801319825596169128697055299851640065625017823769059454734335587271637342420450215193757771532881747329209474102799507105939719671932271205199604746590008196546213223787897831721630405342742476776946146788049307224391870008351653717583389047255703330469921258284019084854254212678417708597674936720383273137553565650469681055250286825056191607281413976728418246240640030437682264620724505662842232487101642021844849262904791308024864342715961995872902997158863852956904029368160364371226148384254458107653578605865391362025392744413860407065508855376278712993775169817972726420367374534701174159270434291039022583129236238430015901124713512674892501948040951263521789498007000114617354512704278879749788772458650212421158640988535057981296028471248623941173558088231389987250002620612712966376726199183750324525112578871963050661269711019245223301029881866455651215860291315193926213501152566484544601806003061047143053291366898777256061968768227054158560370552900932974659320424836822944072797974412358326573555960029247974690293725248452890616384365542443300888560832606318387975922305710927357784326008486618498623515963376401626932325971278767930016079610383555901509812470949944596267994774097630964737537596249749505061384394002327346324691005322893130345760300839004389846949230090254863196520624344210313868546559510059261379597299663094085232874042751332029743524913217527764134951346764539771315437903302601849969001654457411190490339972698208327713624248608159445486684765834962201388132996110345673372459133432619544826567353476741268105984775080971266356632885829391888061677973387948837748055666212164900692002237707651957796233547192361797175897853066253971578823233659752001755366543628049049349194218810749367114108745745288832214365741005998263130906154568154178703350951088115357423584508893173630840857118558730222748739520019829053094888257850009551811648278186384406696881600282794556785073455013214167297722487678658434145516139665490590756714954042587178601734499853947401085630438513429307658144209225152572890322817807260743878880551488668633936570787160107705683447832909058238540344642986746124904344178791106217971537145245279525699198726067314738669535553031469367462213541236203222886314194134955834215758795631747046417861451734860641556872162571303936262478581960037089499792210319758117116819345114266690755365332840907328769256328722282299376968330918156724529369529756182865803517366709377539125875212992257167491194656397235246404254541230464947213797611631822696693314664988744918976235869377762038282073598358400643701792178965498007904600910069269683410752578303030939124786504913453233978434541263199561449010284389509602603139615571193849086888326753302869221848840188724168730190788083577375173192353866436353790177666362577284811114172435002085829925635211122340547459453617706666819074775360975041418215735372867293611930394144853395898908237797102637801538779171198973191436779175156015274338218646640998007903253814710479304891815022394245797825800306326345528145693634456707865364130014157014098719242506732195156993492986975248148624901045711600567567244833416349450861632804142616131802430633808193503739981106139302962302084929537870078111019034433592073010224629573611390932830200512929679776554042539222205624852580844656187737917218218916682518539802266496333499751630737290267966595254349767820882211288103244100100431395479924941730031769917318419048805877671656225665432056584483067621012615621157767351317269502961879005396319186206920065878706341683868794970860671826159875022369806326179660099945500916549670322170602401835922366691310048614778518268301883612207626095053673450417007883994653707321947882843000298162108999366778791673708468357435060617962342928018767800723006730387540304179610848342757627463653239873302498620391187489414887157849084924532326504489067942278847787218030077679925085962914671076824184773031708158389595127754019337419940616236136306591138187323731596289695462899986197522326701387519654107909309154499612418024523997047695376902578871697772270737021525345485058769541302493468614462626792855610467359538483029671347250275042246770217287758609292501862780187902668280447240726434265817678919865156829812729329344847429488578182091743270251340565744646611948678200322813782658919353222025751914983007106907801685789740396258162751358150735725381615142259252944660603266342703851313023514166516799138430476234591593051619965289532139061747597789211245529730848080682999859273654356497316319937142531146331794847460838715967685465513241949971694320830637659464221755637826536248684538486537920305631591957259979787152193627549613870306276146564499787318703710694343362047593879471516519992088251165400981050488359525854097736743526183740074694293059514629897439046099769445765807534209364754255380070384773141369516463993832883265454058270827618703479592993210435382070931568421751764825870234602104028751421901950782015964428406715836731687166527383813343013758868554164049082506693040648172016242689904496506607697685403759200982925594345033719391195972692749769852613700970588809985040158169181932289995101765920247372197830666117500529405250658265321223048643636588049931357494574138974453802195714634380405547985926696904579372532739446439129227387107063929043773268345221713160215088426773208958701551596114875999415335494053456780169100074415598314179064045431059828480862010575218321140796665072511919021941130249158900700744357818913326672100271453011002139486882749077242600990359612051836546843081268227281897156644664513022598094197395301041947428300419924399424659481800051158996845827489612302211091372455361311099246593204453901252920528736475758453304763689638549462228276534339452630563365289154772175520988925815827299268661609945655361986753291193759772991987342438060273070168906888514673048923892227561862859516090497574492394179266947780646551302353180026913872850792064220294982639130551800333621815128942878802106144457672118675491657791491829516595876262338365108796924997922374702768784273983396671639733470204569652572105456592224077358421465010282163745247068035114800412308905356367739534476006452579912272021299041610719711720522366782541033749715143070615748611304156515461347258825374585938389102400815500977441645612893016779430143032014786465476782809971708153170649842962389097664192876275354085408280040840681840033014917986169323009357427204550883272664287910289551575947012677446835747522732252861375792482361319421890119483008309383989972173974876707790611293549452161378635591999100758435240337887191515674677802063185872867421286077185493795615741606119683221986495104832578474397772010342607247170030589595640693134137063823816377220482297303377390684131961947477577621323494527322237886647509755642798778292889865894373708124735379885676696406688399757939196947829281133982598658980190349446921682223299982576596709752508203777088875317945604527095202677499199792174497891473158865528138260542884394762321760239288406681474073379614535403889996830133688334676508764438961927354587611456542286134024174642840728337859537924861142780387992148931851253080284332937671395482666674158389381857554984680514075859128522156403372817030902810504487888909428215324006371938911346353207027610905150025239851312400315962450100244695294985010845379235283940996157359375388581012159236892500604955950499384490484387008831841109895342665603462322436161220140510404100019022692959964820140023152242209527623135120654584516544587594746200242863577656424373809450264838935541646600126599766406081572350405043666181071847761463113812821200014595054611435804783277785296133764008924576953413792307295360378169500142169891519948238057459047491148595985343184906969819507359680169806942098114923743983491031404037573668933119198630304891218723403094628839309710102577661514337803962215648351082873792264593583923618637356954935949740270586985215964748138224227958119405996516728271075613836983208677624720191524594538108588789846522988902707148462390490887112649815665577923711355682907818908010129625063531184145771947797907823261433961642467687263973969986109664916415097638540096790284552834120117813412470908140889138487625623809063485888765601755827914910769222275463356175929513181975274384864850242841874985931515244986147570667919395311700744348524564495739745363414253927998682292513290439812738355691633883830540455437350085373865898924751208238638727025726808748767368389362807349928099287287140127263643850788888093445111615886478636685198699763383780629725293383266791613031557082390071149816712625097741130055501052062018179767034900173606326980209169859894222902113252217412023765266451096364554300002815741089108527192100824171809098465567579038698192644921257050773373411359214789010978815246068945130146911117529887339630727017301705492333925656116701801948516939473315676837977770318823471624030422397858282095922836616032500361108209141298862784677726677920171597174113031041627431477876129859463640122046503536718757375185140656068071378574051822785004811171555725618117741656082364765865057091250628506866816728170337283265749477957843172135099837304459877488690745663510398069248060928395540744231626064184940932099418701075704495382368969557516046099283092018233881077854269802290946178149894107912491393796971981241386288797812666457676820557556829269259734902667702596402218186788022350423075554736950862292027598119683464518862005292527692333406774570292784370695223391557881500197527186549712601607142454510298941265066202300341717090272119346192155219767580960847933298202097027526101635671602539068593578094142860824302339324956336849226271256047543021657684176756558127649318704305068276939342854825328278252246044278573940941352202927871383887177411275445095183179611517806543117973173942786826314855897593214446742649630412229584469336719433050436298384368129582600371085383232290517690984050496940493350852120415497812973052726549402784354585652930184509203091062337825086422184378512825668994432742108150693243561223697801258552318801089647761337699375448489530469426916607159372894560199786919332016705939292242670003798450949836375837437401892365960021898297331382448674417338081174355409712627294719370936196276583368662584800928741405619780012473521497697088100131714298310703896179706399601961352871052118499280929702446065511818902366673572119645888553747052488495037485940516492944591648891904311781921566841645467760704958911026609191932508936318074484860890908901062816062262427032617891016859245894350815182817607085632373149440280264857354719114025510594394381922806781505460186509942333725107375142825881608261083248007083536588683741204078626561567058942303980965903317638296543926957629256778156004857023097574027553408750179028209734193491283128261626473710327369243778900981675610863417138081831366465852421054743505990410902716066249549703791761792197982226200780041541917412787469519732487384660836900361420914957531007696315250157884794752387284642038185867812860109370933785391963853159735736316550526616347473279206593927679838855262569313959808067728990654719286209684703518491169986359660994994225423551818671106460862786552273624783910096872745570418089273117295898693255995270769078786492792537937654994933847263291712975442195082649326541355175726162645389160344841089450128501995695955689831982378405622971709353895554713416628938649655329832854381067468558871574358883572827759949049259526805974792532135232841509550854339703034721759747154159696728332379321281669192870622031553430756369073435594469285745388694244472529604470082900430254067325946161914682986758684696410381786868490621604301634706046874123565411877746630549310881311307005608191801634654942122369695351769173279069802367337555826135683234016762030467682667144077802122689656283959898471285296883997488795352164483653265848505114642571465101540951900429631104883640755925322561881348676751099126254666918281892132836239093858333750663102314908658938091069740400409561296480366944461378886302796909766681410164184108915933362939174080307070193627984398985490685511022738498665333471536590169553479511411937540763790805895930308830633947324072049341293689621055067246177548347401179452602139512255415497928014598805880731844083313102986223406664204598429632221156165488635922015412271361703769385736279760123426073813314052345085081380221326284567351101408596496652779885075716685306663909211324701631647562816895976948121886577726295907228981735597211072647760444306376785148831936823104738721427230239891064556887267613689625303482384124393749028613125908279108694208360697743634657013736857539984449815232474824384184532293305308931269214152557766644195649340498411538836400422054124394359352048346836033027104561696030838916649906899943801106134701146085499701669875163751294188515861821348847672282340100227312261265990731636848053690297588544991864444901652708826031591196003545718808124468958916317163021861911212648185199185423589708182144446415719834003393452773384817090040919095951653299645652779640706513347123012004951096992468240733868331648072329891332242718877062670737002545636355763595286109682188176957532039841493126956103775815331851695865155850212011764851831513126771842388556864872409110772843626121878577588709745891917623314391606805890336596309100945940675601139072974648297206804521119689628378675697605930159042595163934737016565394558268386841205615677859408954175598540506868019122526021384031178545765690234002029312763357376708168864576367468983659884534388791383729376566023454169524171303440875710482867998519182757512583665653896148396329660039997693290925977365743855723734889080248333851119997379204794957350754506238618273593197986617919163872236860839406476563161883563159121731665296447527540629119192407502999762136295881474540146457252889635638183995273200205776660385087222649685366612691846076587029660998477942840663938559093705585212979725875596891693240104119200025119448986644002988766133490706923715438515268975267475167073623524853431622116668645008563131427924814952505604872757046712728646564573748775866371116599422392210975456490999524754592144313389427685313549518928674779734271500312778274099111700434404258422609425636029109519068480068742864175988585639644924713151784683621008037690005137676009488692901702337761148994137256520349969217240136778821807204246028504657759530744763388430497737260387613564558636132705170720280527978201492112915653467569077706001794949111486884591127766474356094109911405338219972106193854196735444747583191790653983875970914232543292914953588605474146780318765999294147577839618821576135899969767517730452257197647123366020708418078247445126847310420789681141843264497138531092863523344168533955597220762702706799941717395979244367927828734821156447596479393095824110884477916807807568892800927552589534186892770175411703539890905144631573152201921820419296165557124965425624764223726769101894822438487848720900265689935964967547404954666917546254491834543504931595663946228259682197439648292068066821790068456089999626217391302169168021083688839498278199741442216394612669355740094142662967377359759229210323950998314938664580040499429963552744374112410444154916735853731154850173471307269952248244920151728893098647613723573140154867323611590859125687228704275633776713964185980477858785913909386227858996083426691046686613312761610674996658725842405784245963856950232867473096527011649700240317580312855072515742257680099676150728003063075061449596154536373132717481439508119489757753386374862440836121884135322771057957138278470048651350989638520633347121373936692358761862702595298204954773254212795197560526386671892892211970593038882210903702917309399733626864524640856011994103145603615497534460352573325520397081965012984477580492685862971784676643998292379396215657273388067129637893588318994050704496461284733591500652900258827194018329178873855260731090429440112862374863759734579499166622122654891760577138010091014683694246878019595918432005298177672889900702194945014677555377729755065535634239174625658346777967419036848118182227184559859858638179282091769970626673865036184681227987495312934276166043529194273708855293502374810994486251277046963825486362102066214540243932689428990252095706630900950694957665678014150318839528886048889071627167909426574582318259752888869083946832239171098680216340309126316656643413876866119506476800744703902974993210613969104662689534720492038289315706648430296196523773826777567780821712037009029222083340732386154667391488938087691800586757303193558332033831418624186003148310051812390573068086308859237778118297378469920983702693489877203212272744289502759374642889294081867249288217483794779941049865585074962896826935981470554053688744203824328561710992826921827986362622098558002540659171523742498748283170564216207081286547946561927341721395735568029424013009394219555064979832891702323190516060484225671574097785637370146625738475702465036482189151499521786464733278081868304968027833439567791421900684253049397947232531546069062497695117698805123047552315957118964248647281690020298198147557789997471584583142693814101868334588587344856236543668457559627382323494681460305519171650135447221693206647493486753524536141494647676264165737018318108705662767644778241921291965987515648624641432998004223762427463738887288117111199284676921850125296633167472880472079488772797568228568024980492429547948936011119283749243459021091860065419142009157976120382446536955325893842604197063547292847738298461077236248793491437891293260221150070252836484766207898916453058302173162728888191695804391040366647930771249008852626884082596851993855189684221354440532532810515284178368823640336501944703615848877251364243748274884978917690496438544287720354159760523621030782806807596100369349949917801141158136216417425962144210370778139406963345716772584797071892281744138611957634517880543052753977124557537951012098983504003980387029840529464518860786165941824744250649302759328363478774833170946971721318342060575928517751797217982218337192737585529983467107651368121112773222981943186666167147363759257146156946436829922320119204169672855999697217600460116018216096272552184713949231274427305279731680085352014746170485656666001231019398613645134127360544304702942621349139136778358541647707956833132460358425742770400146149366020932021714490869134019740527856793491869103755436152717768255673131042030258579911941742432314499332664335342456633084218307039790042321493125909937604558577810615385212171722194115606223934960602920898057453194286651964463945353503424093239679299811751915145037958610028847715582206813659193572747792443091576982629905201151078684067279782684367954761797274798406609616117761850259267365553118537581701784610146287622261054398880540187815432584212866383131542366014268391959427640953523155147597553494697571837614745357476928815683548392993703970235591676309267709434513318733232931771057084745460214738681099954577742982212930546263926556192764189403966631244418392974424652261111187433907481492560890428739994077443742716644863920080550526889575632581304445667056629422694315974192327417243298525624968678673818341464740627438451060481586377550642385491626614305079578412300337861608689563892877275240067572134934701683170290466689917253174620214407022070993146741049172889915390350390396660611325909841812684305176799365358133304171379071930801603009521707724094333562267809494558542586203819692201609322850274916531806790460365600578936312537569886817639480830984543557726122365792644111431681482223307837783015207093367064552509136293555289359109548003024889120035031088072429476880796416917105698278383835442036218692859059840097579530310458298010940473013306267788668095451463236277555178533576156602824091068469002544125328623215671738783338277749700583608381047122066946395633484782032157203292581921758534069368415615227209511483411169867125445233201738824724102137334016109928339901711412997433327921664594637277414481440079761618586129973604891602814103607475481475108175172462321619929773178071394023071393562556140411802984545867218245556145482186978662796647611274595220542248675631688976599905731371296694585454701758375126471953092538140649391324858134565266483714997510126404052430684146097869651724879325755985769013444171065347834867783467647885906086578603402678928549190619286519381273427494929130832710071627758558190792970138709819868529529883779879196324717510444133601657791214100203675513564249548648272186932424913264989353603483462838236306545734829294320939679707566775139689430421063436803061572967343358754983899536752079106501135526486746712229103089137427228039516248065490065676635327417647637837245924182179014869914911882172773658381416115494119614233142646073069559430303601462076127261303741457917280467222046821076201860591563801153735673667345771149127139488038446018110180444401718366233682004000577535744215013365970563522392673453559344923129850025100892071597950319162985469644060253491204624923529425910026974939249098729148709698743605601272107936755452275341958550852478835517908268668604764233670018872926949952666055429460285901866974656841463174250117688115254650985147560425195551286413840872522509549987363932642516180742341414374508784469970175690586361445153900037349816621315981361877282036777570013079144642316385071954858788636181649641568534996457610759437676550694590297276250181595666004275528090609919984661712727184595458600157264165812555369941489600135242982454647473670911832981676571596849451219295476250348633740929951817090497620602240380406141281564206059530906371638951204018696701342387093699658227115801735722728459452617613257540565710929268635567056781903096154365662865476822677443792169013846381633638350184885559031260502608765081684250282647401101812704600261647235164644814268975467755590335791376709430770331737410469820619170913230750090204326440192452671985909986221973377283472203236834896056806855983213543699546701195458844721751095342544272119544416507214984987955005087002556845626410113039355860596047420125161216925995281215513632883241984424192294916866660001972572005950651205361003359912858513302707245147544637980205573582860686003974662086549829715096931570575797980710861092823521295046621430024877677871345915536793706466146607472048016351276159025417800887510914838171196796383401055248150201551349444068713788283277012584624428200561478856707716236607754655259440887301847898088116911862893420359884696319969454922970741626578081297051430217514190201841491298238813090950252114972430438192480938065704408704687918948446002887402806100790611683840716231307586118824933008376345582184160780329626649590276924637153494506844774989321130707847740657322180204207860840513849697748937389773503974583964809570310044243715584658732485959733234203869354106982852553231509599131828613277154020314273454778344876227900203449645056822975114028995889807711802517705490119991092152603005667661538872888544549208120009715465830910913056352987259225425707912680561280037079302960095725877181533230948701636584178657461717181250300767094246841493264297536939116481308233137163133299730095348147717240805802288258823046609045316038042594114811383536196301639303379649293803608954790852338301366293801199629293544698556090482790614938953021917770099807403080565064037799646394561019566644728631259022479473428075095077354501405316527268935705054420138391745332435797631395769460901743298711304236064985922116225133616078182520250665650702883917521837843065398410045313324691522130485246523616642505991549081869037300758034749553200741501342517496921404067249341908735876954953107397165434235922869988612196774816122400437830900382027753584528597925389327271846806992467663729081055530402820026480383741594370138256502998303611228010262336303436538677504908402742152176341556256561317854081490810518790862011469547498132685968002840619871284000251717681479777289056164428979808645648148930681653177042562111397638150967045479862191823562841833818420596102760836758974183748099408311820812504163659324690769590640001320176797660253417451927110161832572225889327829156697518976359818294331540252075448621831642731187766752928158096766955418767055662732906416335515714278854001842395588273542660285130146014874887942856510254183158537906639958477683820358947182961744229547767272700602589758731542497907991370153659268090892615927788306018028545441595173654910111894813732816236608474609836245726817709070534611942248720999699180796428643978701229815537100258209986856493132003534049457908936478449486469084359125738012613195193133109511629230181612022904806792122500634770262312121808631079482584686583884778385426195641322481434295786622453108916919738062012602704853446976859070628400804694543038902185493863168429964973240429063044697656254013325644568239335021414283214288838365113708780548752064700333979690545784382083061589111917424546220937650709434581454834781925466812844413361870173868578941632147389065777756147751224972108812404183541026539423764957633473246306280107204699276648908875948856771298531394869632878327362119823321532508068117874015764442516745183933616674731060091080505092811668283843543489099823328669582025430333191384601636872402090830951375055418406712658861433999392802590637054808472095856022836574243169844105160393752185048244768515222156565882494337802821198943324468253427903114290121467672097884739291644075952813122011067198056490637118646076428246099083173455986939943250403837539863057375276081535965825101824202551525688349285513645812390125778584003199475261404318789710632800071646393140677121796479334588404745218859587106152733928692538839646521846229750865785540141952722003358566381291082037244643899760110309067694780613294416057325765052735660053282018684325208000728417648998404324541444153173467469737631260309761805050570855624571769628399893703375108252911807849014026656104317916937708052471965021404661541545912869118303960923623689154293385405603300189004226238407957066590962319672187517169912029243195589412230456076696946301752371758483152803424957738204973708528214670904546732026219451854283856618973137417670168559550224221219938891462255118059494757412998293231300238740049820008640884568122233020748883958506675919732876481760851729977734451082952985836616166312447291739100367423860484697141124551196683557235130341699087533886808959161318921930309732554157554731012971554523815395656218635912746455832256618167761371977297787009256622384615539075946396775012911192627742333083474806381978044019901641217569619313002427427966477586555781344412348999424342161246702927100370643388337830495978838962379836290792530582225741142436384382886312939741438541354408470232379419432366996716943118415570742829046170510390026884465406788693813278129162209722680554211006638589585515799633210660977754405342819591743874966004141544628350221740525330577530604583422306508720342625692693610411574296972928345705926229380801502018482424580639865749618107544742644488120356143353653090032383113270113955188195433429016161281184620802257151803201184918600369863630051159827559880883607601815924110113073513929790724255079888418731072740492116431301855095130578582012070723575387808968367250037238106640528142417601704806455587524627729417496017991837052717171130753230928154814978709731590993620868306999853554555317483945781722264051271659713878265912987412112862008436123272526299785954183250880632445306833990383134777212980438961388563796302889600201220214391980248518917535350885830779396671530304543350592766047367284961400631084041805187200893725677837931388923996255378138816566960314247067275510181527743361047749669986706790081708645156582920912504505146068953685941981022575764205449673397678633517570249532051378732322055162976249890994656294823721589493586338009009576934995476354654844784405820460670930575887241826783241788741426085916785927766699310956998772256843496235922333292893881086668812997863116169516358738638504281427246306016545764021049969146862644290837398816760326369488554561345899044006725136147392267237358901032127458834729192563229854653378943714348432982007865334271887699487254381021034555955613498318955731155711715803175976719327753810032050749104002875512123834308506153926178030267688807626785714091351234176809537060025225098133722263015885397304480007712896187077700319279803287933781099319360647914620506019929127334474282349886693105710380937612083008789019604309245488888930146656382568616421688895812239645890168994784213990629831332316616039828047010550539666899011695585468379302577735563856395526623288963554762282422283103278332837167617005454722366531188727853349457182106041403901164556161657679096990258104068514691477666627286662162900343898491161524812098297222916797166823008136345054963199030826841867562348591856018527907461294924027809623549604234301269799802588019263703269750366094672441269294928869001437199946661362783248854283465524011931027158311474043883805576322353991743008915542947358093910468533456820184665961582637546881208101598351801451981906694049758637150039595743333445593223438824188336949705172713102977006636883663197633149702933527653396410493508257869063100268178195194980690727017710165259582209849542497459485852203915069599669873008759665111291485753453667800953964039676013159050261989501449390352965740527172563871586567590908839686856712312923972358810468754405903692092878889758133448172503572521532545468512280966259339396102786717553568577001290384818186253060673349199371780243404935907370802657042020897077945052614521198679001740406616130515197259388906580725881451075765483925083566132070417974821314260181906278046770054844805465927982493247013692056003523653981652000282131985183534158585444763243472441525642791059421926047280717946680935006699273366700158600699363676686154791689998871893737921512523025788326242144000913492002535155418169511839326783677008036325797501222695803383381450642529470841571085534442426400888733599849993259533206013964776176016278617498728223887762882739949205428207456606533732734624265521399322464561539349274722211363711822990785888159794452343300751590242814797323371631204366501183535756610386957570397971690800522247989553386803552475933968333690692264396334315781118513371325306252307287772010228870794860973926142700604087882836891457609373007806733372031081490028382825335249640893991917172029870074730421124374214257779114694715299114572353017347249614858865725427634713875362575201281779748808451030296491092326940429098856569569556410374359975113171531337027141353321792124549329221725619373523540530845721862724414050574680862086460051686625904191580087006080260781490510394377439554485078886944992684927766507707181229542832987876784696175394533705739334591657499137443490929821221957401631019989345877578510743751515938306599023021821296347804819279211830419388632089584277716831048437857232681973806362636539614459437447585027206187989745185864030533098561766876668436324456619145573518004181332518187667421619139161495170925672656549351461824690821048470783043102652109091384956780721870987770726151933922572720442196059680484464363876057605462367669084264339365024042556563120802707910730381582164966202667495010298939212153267155876051906267224610754911152849032320500587641703116655788309222301853037463929346152354673717309948912842764562477973308395786481767995783005498864033943873452617261048833076477896639113973700001312996586522555752975279581939952447798039942575912050309442475915106375782858298553275256482428151907320320052000521114623399343899132921298253126838089449320861187554059271545759755148807707711300851480405003975886801960435023540205122889234569189661685037840954698420524219109403071984588703766234670729186164409901739296818220035420582394979201169817130911590825968333987856531751613506719320067952096490888795833751925285740449771171509228337582559765118778771072907308577287657973104141255003269175711601450778540416707942540572873204790191930864751172751660235632520164066704840984579418327965513803285874724117435506507662849867296400011159954803364259643507140484197225654079563151967181015961777853256064617747704038873693038384247434998124694070394106011138200948984738812075215894999399485718886919244222180739982321957453995200954651619473628849912519567835610260131327189672779891275594864465621819640078841600905105489540696692061763219978727398967408764259042348144576750322217789194966661806612003572613496442642889184031717312403102416176408656138058737729927129642280518756711774283848570804529126152032716943520912902269683738042119456998860624255041776507531162573224468286179153763274346177207390350973481200840254765370484389102037903768672374804760000730228050579301592409439814686467501635412779311844474096433821661818098607268408452764943664727021135200161592059125532005848779924054723665192213003791886720216607287216437551740260352043894867605881273387295187427336188406047795484898291220926962831312785676419500402945007823692863027360728744700583882243370233167648858413264827820378041395242664051513414191078347010336137673883527516819323941696756428438719169462806618295407503473562066730616709580912174509870985112967765255155688831757923965551444450564185316638310339516595427269700395557605838339057251584080126658899596229562079597186280948649703400199267342987574338276327017624782004889635852763302730198172356803427047471135972487583343467930985662930584187917836983267719335065806263777681855430830169056317847133766203255496387552722214390227660575182052617721259315908328735786759647350650262737650609571944827181064951953473413630568118788671010689131546803496974361781252638830988266203196270837725041761719083592712048847482353049691313987302531817753516575759657113907736358755467687165832312065869348492222702663939831899941406476174191173335907762554128288451096447668370177078745535582359717534191890559648075538251742151256687038746559729687239478514846337893382331953224280147862144627130996272115869452950053471181795887836438338366621990034475102407345004670343327295410811852439356987235159830990520394699533144934318235846798474144008289299461638957231313724917097183534490468082933881049678454465546877909099672184235747171042674697709423740202643893517528222779375535232530758713492833805158950293411204479031922836302456335869275109936655032368489218424038284715038607950532005488354636106516560624794917401832026884791175455642353307772088908168875203361463692951394134872944385171892000872982743316329524215056773727747850515171458894636199724792049982801999426325434083410105161874299207439832124126987164476035141227754247805324173832244469046015158917563231028600784817363417763944939346495197904119899278099251205980846107403655536731953257459359114608840807570055840589628392947786732396379266350742077180224365645257789523059439915734505601839343690691990123075159679669920332108829669174631221276925346159172641333397659171332582350813032791168580793137126990694297284358888362010874880505999580939828722154185890274771397933726902285159025081059245793865440101849080731418937169986659288345563803467821365100302209941568632838044568382362884113593332107095330045065493173486178916422978679984468993850008172175238132072970592809819688774786195426205875298462787000171493173342385059314616818893279643341303971455949772013035279594535997559907361212283573140030573797095589395160502265294795101883543322398875069751832357366240361548395757286322531685481715349697785502412799613613153749051302176126211830641613030619261996133719296317733794641528264342881368801061903791753824015627826624945760430381842163075419599329735268586399365338061278255952538000683507281571492737046246986981916117585644097384406314353288692166648628268114217670174260678532365993334476760804454015645210288761212969450297965977072485091814150173752981247778660595983402701561659549021021615596593120192940936439197796632019905358757310578979481347954484757766823954086709455442073889628678454901232424209560420304882230938904699442244975187319862335104104840113646938250474369514060161614073347261082306724594901436136282633062000760964986684041492097251202254592058578585790469338268356627343833893650255419177003009412785730665600748113683620068190403226671431147415639418861029800974148520621740866116361383724659943459146910042861284095705247453224351075994921721010087403434964007913686929230037895097159109833138124956324614059586929016933749993807987790105543773575944157157801394709026781486246982929184837876021439851808773260603420781131813064743699130117907472107132464055527106762151701838915283659641488073248781075414841750356909094584645419289974180557687255867644494266245601306135197482522706386825807715523840607903540396058481238445710731910136467610646820578333142258091368507830468935377528087913399179672557432115289247445628953284405714949279241267553050247188322734085492212539732574411393646127556752360431670611035755126351387282913192365860135037904798189694315956605116716632728764087259931180945070366533404424896904909065528016684779884393720341004430967888766836775129825539293692135829636394582393445564206024351770571116904122667281973032830581168777060489690276599146209043376519435436824839537967664811629948610678402837723722960915409468044067192266308767424555988947393422494435419821315021446742271490098380204520973796731947221273417416855697672943052006277395503306902120696541887029661571787807242650732453302342512692560998046431856295879630709507931454415349880475974994275941564504594979050234796636981656074482742881637704622996092728972555345465422835474400588390206942758688333798494320410361941472417826195299344004788699836787597775206024908366516526489869785664546014049897477439017860948002744409987037798778640161248990066948102414313439280045110628486821302477942332031736694153469002131750878940230362203761187868391730292780094281299307423777321432462425015182215488730659283798576706175778615600247810133277886289040137118309712893184362193120493373805778432970533630322422450344236150160410408171498630975694847354664836951241932343810678649744892545662963862039266797229908570809039275526841857411577563451010053676682337032481475779067133910276065550817051415081600158399242562980265809553912756182473370523071461025960628625018784232453436814754046939507718727219724739915497913749009566382105502929974337467164678952718132407453216149783112361589938297145713592181584196700813562787371350121716310341301894722952567991494019673840017085676786786157773265367359855687163812255901816900783571862834423516274190905337856601047695252605972837512880779843854677213687952200144301098508853590500211641476551440973685214557911447770701693107083038834531017941257104605494408807606162961660310187811020181826545138731164049604910735098921068773779569814072874577862701795865976469079573246900030678018038301308045176861601850254707981502969203794699863047721441951886414033212465733362513164940071538574668640415701477396446367246152092520301265016330003030227292766564946722879074071029790479529174317155683931380628140625899689017045733146370162656613181082381131222491802746965895849119189485918226748926096037809120178440768561074752217631085060149267557474312928034158982451022822828725224880168442357237849711218403148324096768808559778736956604439796551861160897499209067766854151291110153574658397035772822630398876891837254724661334371524529646279698596180743804902189410596010167596249935272270094645579002229329627401133091555727015422126767175101654487721695415328795985884546408724773169219759362978217016050295656115942758273437939224643215768900576663101007172228683146903589790138972080992415753472648794946927996799740001409377159927362270282390299287028754559789519531558724947564991724463396050700423176662624625669180059330683644737886259369502559250815429023828939992122063648638278154013728727739163921524030037523428083294813961079452954178724372644253922743736733615921198663274997717558593777916541981850572678615541808929612204893585254925752778561754288724776660110274354887884255535025071861800758789952828301397795097904627204573141902168439787818396272394430966232734262234715666714455351562366575791571209046459752933238756127393155075369218816711535541840330632939831106683958737239735175052535575839739768600676455706764681914282254361161478875751492255528222097738770611042967637031933684456299401589684757018482630274257865822109379238841001635837941089593723224888938969947664243211059315764756737799540418100298438364508911794246535593891954272553115875309653890732994266063870062021225570233157178274068991644225572154697161262688048314352513422296198632367956447711315261300162459993557942396017412597927068697569949117854041767184716342507860798720973305462049340407332283127227199012082795068849827525810023846185864999705264945231898382984865139491919823462872769986120169444978322497303585512573901960927420189549363862889988121759917814417688617719622156055480140703840201569611426354074532804059183464327328398354307630498767507458746472757473501195230227074197801949793072529169508553733674387514643455580903313710767428723457819811720303817669466203847737363696891820005684496438403146853259204316521062286666055033914673824962014378046668901574117859909621350906795855305904818136613212222922295535116803459068183009754150247069487331406159785991509575437631133428556893461678464204474977776036399680593302973703742801547686056604528478334179588632316446113143099174750993692692298480848617760041402000504998668831765550343825677301459790759548765091563022711481879965991567786438284228110786943759310746670283609215239434826973439945494781198446418241792944872330245239931828967678032342618415982801218373783288820078624228628239269597811514412129984532329672461638696801281434209656697070262723165035199848669770271460828225083297146032701421942905300901942700074468810773685640332879700242988747246725834159360984592513212750678651645769057947972852573244247445119969261997205947229021847278974495647149652261319596669367208671124262063290459645059618230175514205336717994331988479605557453022811990099055827526564437841112355683993596782600078354665686539897094305056844041618924727136786062761858342582931928456754631854845178112386376586774899595983473725210979120043653683740668827482306145923027687621473314556988674265961409867152975087698901884480149088231100296562230935336998132790163711144340451333742613925207378578836440052376418295628272726187706440375507606943857866951219740438123995525666164907826968742133728133136261674112356882868040420849052600004482839165699975102039426448676604912266785962343921228911619895063868039131051002353345730204415147960116646541270163608719133849349203343141563748770800967457812627806833628578824615914855547606276574026229660616215908800729483129288540616930454327609795837265410893542216651528321597325555297243231146225880956787262562004818522177919735326845884463508545567843194137582594793593347154659316609810771739224420678741237003722777834422790209489051342511128153191488791577482501158519864083976032305467874649859338586351688539905168521155092128663085913479001354176839583510780180965884168400036807277919180351174190661968134740192243950472992387078908240953501261218167372769256846159961833934387963963875151326950984316802347213296250834533841018433895651919023080979837727548910475903569014498451516137366792037443696532030255970564957720125469416922668691212042006605880984563777755015740852793429524702080939194431261085880456888826562264414907701870197525953383017774460333281084364120183418851329104653649964311424348647853517385601340443014753942770858308904216330293943522249641714513561038443044312636293556708412957689187570014656513483260347964968147409399520984315226925001882477634889050336872459642878779123873661269535213852691213815507067202373878142032357849928695445313139951072600798610566871176037224941536943661538179399995651103681936940357413784798071124452731267754568514361652286541615998452588758704671512711395594462379064941571461929382840646226958423577024053715733229253815196142758703508050567551562775375989447831704052124833112913709169101524265249174341442140692098262450873284224862554043554969791328246725805346669236400166581117806841738517835653042592909945594715236692874312160840468270279400467794893476256448195490853315492973971574854814179572658990094966455687961287200195774864359172160391798882161682958419114890622057518095201620544533238528661808108323794246304140734939226290580978252749967705620783780957360192588445226628565466411103418473986933589687366039679512980609224965647174406831724388679271068893525426912572450405039543297955879027702927036059471701269840176032325472070763171100181263457445938851686016012980163354290497727187845027744954284546563257453193981855110142301149011817116576879262573764845948079754057373053016949376032239490810213637696233234231502006867127476438214410710759678568610042305461471780874327387842651178860346621272474010388821686896554538224348007681872320916601614157277489110540061515242702613722788486996437010815060532376029133654957046250452131336216720494788028730598591596169596155906919576938229283968488287608901005049798071430949959895858239736071410268174953903028893961624849381046395626322883387294558696287682434925431556517236329586063995049928088726899045149722532919468218736401678248949627314812194764975832162824206209315551594259123157982470837088934910473022172111574859325664314948255450488558546153579856407328395127714980319061411613684465108363083759130309666060313229529318641619500917215438659903459475135740603871339785782552026728172440639241698248048265457623366053772655430212681655036144807693220917425115467307596677911766072932647252751991287068017150784290524978256351012723276683918071948504767694290338784490417435595629737795363881460377485520070527284236990601930779228681914352155284882749217102541126585817005975292395875638692035571748299872018885917812086879152874974374596835168335859932582868804390392391306761222285012273733874260543013032199332554740326243060101163446891272805597353758924264399339935957626960658827738460465043276640011014811279995253790215817707491089431084927682423059392223449085732896317514036678442598746426174267338900179217913384690733200988925329429330141416089297452905390920894087277756914047894431460179369249113601281925508078473735727019256208033314943701127405398897898527434635449360211511885509617893933017302566818602764640598221711355353806043815215746383997546502518708005595962297231360256136883035208388092636692946208240907257014352895493474274666023291309331743510606238306472329254343458963973129331367840164098251131737850099859169731232832254938300544200123034319970427228069457554980919805698409712696812624366308268722504383835790275870979934823838053884904150929877767566502841012349005896996946732747515955807733405088114037662855449679870193444842159135766081752901238729050260269532780028559367076047032256213625873675794451214143284987356342685630529614747834356182665504632294339708486989026949641484058027240652241401475112429610464565472411214006814741267073930360095447494393351672824678971993194194000218053916975360009308508514324021707000384025945503805478874169814227399018252324516364755353113442958911643618288331527288610182592752079882304117616075638595942997598433034085493529105338135586918315264101582277737820246368193683813195534999347711629426298491326152790022588738967592935294193520928573076756308323130877422203182033522250707070061070204265993783720450360033448976661226731089410540350142793675513379495395777639460913806321881909465375720781696569585060279721983552451705729960768117045525176808922481608501709187530340271641425730243477534406657831595193114786765065921724144046895512894642004431803159296189885302217630477908630065738922831953070254161804424045883027862583574755792629385288254224797021159046430897938504763002869858143354628504099406579225552475726328186747145730791969947622818091634519606809766900753531792961377743530600453713917516853865234690901808078984188035088141648514319743822533356466588700599071220760867628101757487053160304863519983767017425542782948565157604255205688473038159261946709459124778463428167756963791315981985975954026604830257558512241674747019363460654342371707965761512677262865907601518249097686921079574117222495479976827712126778430065567464047961322519042278405135178870449124841888380202342092134841825278395212957628530634171206434413000170822212147162398377694473843366379967840127329662536629068267344781861299125286287990201214258427196818633888987273788609012718802784526367635620037122761933895077442383592749275607768278389583311707541064245851074613696674570004544749062158397080307018963793369666123020103127942606804121160643632731969445323059463507164559155088325033632354145102219060727072988568654198972516547406861777806568484712638043756780621387694245253606282139266263853802820870872034850252501649500675026769165092117600891996546366546952701481415518022532545818973983584490963471103158551945656063354806231016564967758329702708067735061810052906683465914198612076920945181365298415442008662459339294798901204605773280517690652014886052529187893895404892777096328227414977794924955153365504139863579849528625162559927975198729699534564881466922387800785256416488678019017269052959270242157054488972311327030547376168464839567378074198510201825437494945400745362555780053221048540332674520668427573825312548131366020324363136917699360023533593241685880355777908074791606280674194686616414376658683607481171727108634507277087336486914459564430235989094636555645548120261788345255624470591126016688841582850500406031081485881478385273988740126250406374970908925904721438239176237492509578440753993147762043883305677066027648728612287506269683902414948771919365356793308405328576433306949988807373246024619495375774066167533147679744024615163929335027203092744839130739729288884085115207524500665005597915674890810004983153780213223217492155815711231147142680686235062181669641480064117695163683749493615919579032026563331608769523501570588146668085225242827319075344787364622573754159488642245377190947877639213282984089838375795049155626940811035389990628367375026512474919599887509272898924878053790123518343593123755280580581119806542558644426229035304168504349221984206708058352260183099662693289936789390487767104771019288846764526547812638312811892269654159582754690263650074216304885176218192764644648243102157773583841558404038826830948847236478036045751145556482215077277675032444525217527733726396398637519712589833469206307312828587382970709309056745746190540809692412289173820776312964720376730679862092086631970041291629248238824083857061285477188012727950380686994090020082849238691854398716291939083304102866514978505945556402286353882327830927646745394779491303290580262069469945047128922167964184574360358821780455399894250662400196944176053296015676641310322791604150504918044247633882924841508313667382473930612926545776719178148251615171558331034590430941823151898754447277739592753591785305699568101154364269265072283613245913605638792463529943492231586627398088272753472004175488998035138476719057270171380104417926390779023699996892480848113222880976129708121596887277149869826761514305460030559848422179490836839398579658478858737989149880686020020612646173955579726515758305163427382500967943293210085052333737902193763564464074576390243665728803865891811199286702983052869735273830898849891752384908876191896353316544014276437909960331119657306169410502027658789976174027326457370279554068088245624344885806200512332414459222414882475807467852009309525384172863812620371191881655200531301590425583457226039502515346461992881094976547086560858967464039169071010357356026171467474010045566551752524092772098252857914346423830872140826339804540048801256591278693501753655037285894024087076318974782804889271322010537656463165339232168187839731233931552658177511113303329944041432794713183140435416676351115252228954213681417147588518105727041898224352088128662465124710765297876694153568130456006528265030298351040931184044865794729345895480987921937126456222313690162127014796168086999043945959100521132909883357548845808431685073436572147987730482704603148529469384769116969780622997068001198766640556407307664549783315146884092475411364305943690593249559788225502930466545233062504619343702799480671147924685600895635864322114956921843490208563921792235665374135753871370631554737666519216786659036592158987211531226638736361331567149760857479533851918501369046774335521420556146591882994547111294236432003749852206262882849229964281169796961890203597319274097123624823703759676302166512687168583826853210519266199290390144965006466493181002844673472407154736377407042104032665567507841003472435298908744516344481862007862316108627960723052296323002182741433062054844143499759903864869523702959197582632158249775644946484314040233598238571078388984543381241462829000858332901284949576441665671799304035318728249131746730306825131937265821610841641506067005799765804871892517449787287117703974465714145700849845552238347211486279520825532142369394521281618903330318282701348555485609554504270995281135219147153170900191405266298198998716954518347695791946571560358395619947894264380327957745379874090271948600508955382996556630051340302759992905488515206057094002008943558314639568024539632833316345467394246063122483648032561998549817933165379313791065599277907421615782086173211363595534298045493762118397570194975332918135450187913816278936264458294808927932246147760720029363712051262660749058169805472642750773957846635025170602088285096795433115279505651137247554097901892116509684162599600453629922816136134693671237768118560813198833457631141860630634781112054303000160229717372016041738909092519678956355837601929283800322891232644990778376030498860453735321073279094533889133951843566378588270890591270616942458970025008139060041725525970392734285944586478400725852489571415025187045687929571367270058152126612406317290723365067041755270362057708221598653295982926878802753271603543038324072911767776974777678314531932242241056362072087630523935744114055121297998324218246533888385593226458833788207674800343019133241089959537857213550155133008277060564565649844832079483467230240570980490099001692984814782232309948814626622390172633795205400608404473345658621480694851075357293273309929266822470574665027845189739925178342127503523129032748084891323903705322504798179061976401849018926831492271161646219397160766630878948612777379285061372323247276965641157859763169053056058905201435065407464722071036039647677134262011163607437185350673891402486342143726595182773766907349389475151932622151390623755800387073870483002841184496490240143408390404478352778886088078413140139389002254993070745843213364738745159867396178958719054153992119686947227887020276556204406210959056226926659544298061216305254380571210334496322485481731064038701298188519759568945988761153206879601633923620354512524990536452532923468158537026321455772593976461926293449357448879276974471253218400059474773425625423252062186455794941442866919004825151873585015227357926079243522988728469379452779974704603107936992642620924627902117924778026388024509571148461055454463464690721881851503060975399820137320372032343462522979569101689003219266012936093162888223407432528909020277073972778447046913287159257205133507481244176530005237320588165525166470298888575177988063671492764529900726217901494486326921206933226951726879081236702213240341340304722713601175653515596552659200331292320994175698337684497507907217699477253191849476946997358572666591374853084401247454540668248626191690891965095269730312363928135828161140964353489335821670383234261088556550944414332816752009123277359088968050346991487550422579507400365298198237466492406839706342513405790945362104160863401937139574811680747393994332161702430767273753815751374672747157663006408622771148127126826937066907480847960500826142128828148727586438501063672298238305357790898866920107322405725435301408011885995370860303759913876520246396142393207900565926592470296934552216784543579281096443309360044375585348316784724044812211137242398285643995866023076144744525477443755959291976667084183214014975577561424949835711796607467871461322133176648711162195867953955551315326613833216695883615973153276317468096253754079103261829473128689663444438223030183077003260247904643307221285517876489079657407798683214189718892426792599743073667949006694758007615869968502472513823443596101766532875685347172339588072161781597375948352031748780122629518275718114821712560062657859682883743515071960887980748462501609449159115464798578939530161331288786076351626426923476203940245903083051678701916933265395436025489039661382902012528070663365573601917284682246621200598853711411223599553988261617591175888470952388948254199411400228192861787861246776671306138222447433355282727421143170563488642941322656874130190082658428088038010935333117159884770031195750875331064214103993127688064617627819880340605542827204502922986477347711320749989853296922379328022468323298968596389968381885894401355953392920888815563152445417730041309735358057573249286454839678902859739712496011161602103676580235062168119954626440488968706899426438138091941555338671763620690547128770540653171945427036127408877190510399875404398996746467561720836471504464761944936048427042593590080646519869132572724789652249916225013271578563727018143932831621592498162140247268676145249739802301619297262930273071281840539421312743664236370810983636579171918963898302309752904585197364080723601611383585314872327070480147741316326685742083459170339808670816682779897549531479264127710120265465551888458010390872998415019930658036602216562524555729084641669499181238368151760829414796214653656726989568555973415514726689379597824263524800776556883445995969313100172186973919853715095781752578222537560323914588919628615151138601979294038023777618739069377063539012079911170338495984905556538173290014737067778083365730003703776375240554780676525333829056727921608697551811816439599514497106193760675661401463232220570382251116601061594298894557668046275517831696174169008956139040742135361892984610701302818286857863396758334629662334307730750897073335286679840719631807064388036425080166015493888050506381998756571691706482458806202097565843514860607299639178999259047007074482764635028334594975623606451565497261020185342455211024949283022814028275155941901726057720445651737921208893366980840533571611705047290235635749209404586898971306306258299487316498162182044524747536559546194435533799261237936864898205885214827226444588363218694128488115477469993145884322802419378144418778358663767936804821431731579850488736667557097801717331469764993313923304399234238082974174163768348497014803760871969298651151342756217718560530459524021791103223624344586694538311071456096294727882190179148378046308440831603335305855209654860740832794999601443902711463986465664804750149057288259386465514448303373969014212804282609912841152907902365401177865127538775991438080238272523853042192025157352746485074861629904260453325127129316213497783000094477061283427072352336825653095011740039760977779236534280802791285067483855962308750507419481795896330303996919811441447115232234098021807300106727000842025587383533578644010009413059132276590487658337627692711603048508318940158121319645726511603270921969774562664010429555995951511898159599024023756709714788289437689873408805948338164520943883718300767999871209696398408379905910299284617563010103451439268333743555837373007183173266622155748152275774497378767892143818587834125819844664982263176299935746169703129053112772124633099465785220979841532335312009479223304604024112020611075049036546574970789237629362665938707763601431968306909093170748149466473993790045669137748951835764432799101466159466556083905864911450773463207897132974565306026929966668339268706347235978271297714122610122291544552521554560454964976688735587516067609633403365707404473201550211826911203205572192409533740982736698978945012775203435031803100896420845258743326038721669345715742762092255586540236968768231354476111731703996498025455920999010747758594579760029058078496033987239006551604422404363224215203173701785433301379224057708611486684730580775011347642318924913937887529200394458772024257728923595544074988218781861949275995656325061003786943768276353529168565379512306003283472340041501396959882856066865964199444644146309250385236589609567370528058361419192464196509103767390894117783714753177496902029287919597850996446370489602835626882257774984012449467614536029213598507047731915402509320745922333345560833204315384970516780096403982139244730748143196680430378045513574055464048919631626906473683408109397125064862598906195929625253123543427680745319275001247295829340940796836216870097390813831330370907988169404940396208891416055039353768928197278477662788468462957656500178773826479904700420116248642700198584474764400896670139518100749222985428946901629447321297983058719275028449292972588637577651076190968516830307943079076598453698867224352190137410240551150803239894928773038015458430049296196779415550401995627369924204216133195505366227058764736540361197947081218729596030708300407818631254419934422753850757834273585518104631721861287354271798087769752964319834850385643783097115936377089499729318090187507357602648167682658363917657705011697174496176903722080446694050750782389958425710449260736915775706990142288861133159775784816537652732300257393265964528732406262686138381055817131701322671277157087109707205689146341794501046609892373701178214951672010566211530384006244990827296453034984633401701564228421798839837937963587639501564121622698637403739670255899638960402317821425834772153300994205864852934016209659654288078658951505413211034404298633145213039055954616004133519348345026713712381668078387642654192470189164024700387475781836404323256983924501711830018087015335140782190000575795463953678475224802435757689151217011077017401632012455851760954055416489321101696305717199104971402706288993481717577766649047727806715360301855155302947204033989086843781946695468931543255910071737280934559307447737132072635399165318305554852346365061594624515963135989548223062616251919226150522789716271225659472855351471339153436002680420358523898929099643955375913220864639539371719143692546342074731132152363151071303537412606022319813692862150473705490295456442979029021128050175519960298207145728602818395163550997599195048520394773058571925401671593718637610904625057074547549819042230821451794893804552892806964781172724588515811777994963386712376420572596620690961714532546078186373763403089025363098967731354206383457525487808864667011702515051375870503481957760806855007122188313868427974528529054365824617768246795785328838489691034287789799502671361129214285416770867438803409302571940731062970162959416862015659659254082290743126353699044628636500561696909323298149164431302499404351905482804817264326280707719519302898078776026096473562664845060055226912813311852507038555126468226425612394778474777287989484048867300947938591411030087413014113209354822955378978812399194641812805104598374403076373318890732589220190340543896943829311273268344575379677355655119102150891214091332418863778556730105632907312981382284413303554140836248263693382653544565732981720131389942539781353231414515871517847286388574616800184819396826432313799875695168464379066763630089455494482659366372194372728220580546261081359049476454717594161241328771792688977971911339642459495735539456035330849067219787959974324738827740373853901900926637045097026881943487836760524337981644127355309700397145210224724093962093106355874903256271290972789223756193560813982968247107469102436859257567103693850968380621159370252291642751249035123306294686914535826711587097767590534875822321089005963499648451592916177118888286216290806535372756057022001344923248717616776519492786075839657144658223067737870623462149149908764126865294880136179443805042400768524916147198733344492122296367538195203105713847943171511574070147032895253684689595350563387337963195188261207084115603635633468757866175133970859869092233701582644457464325379334676726590276009876493781953540720103809750680307481498728495771544107521207349363377464712283788763436757669612667913925453341361700776909002289430901489039480292565782270343752924377255653162889579152370075594818176661133558806413174495647145888676905286244482310026345384937810043233927114702423010194163511152834207267587609839123375200613600358534751163282070866350461897238999059223432269785518391696600893208332150660610762315195354920431274265862853168820528142220658752958596492903927267418582943491244382523730867708593216529364490758015825113486656779946459483871043482583587912058488815493695132967514791249664789554480607693753073029880703260847686975643503551254919660901142145013289285695985925713880733100737117748999386027900747580430034901053904052828814028419531585930898847078796358793279810588997357228705111319177558253855237029587480597191496018727644406004863861007756131952294753341837160223537281228246230925749570424764411554805062937612502781142903694756127654485076539519193493646659674694940720401574390825562493086170568482924010954823638621842723091138386372326214683071640604868573610361157175192648121489544963382120754656025869770389228417106530223668198020820029316408469551386344056315601992082704103650309902088747045583572703000383550538265110969876877425397831240849357759278215022323473570167825196787448353573020442911657325855745154330664308211732267432169698941724992040529754067757162717810668147221696565520770265820108247035656107184355643767016850242885521492901327408058844989229052060832793153892600351954840842593560408037319554224988875119960075519361854375024612607954796657758912505878818890492353679778466885074624539864699986936879687861885794842860819770666765868348212712807977485474763325251750003345715720420578172846312851673988725612285528549142745785833198336473475277008131342454574612364000943738029526235991066031314254936180037585144157152795417508701220353054003539811242776337103165091863234122038939367409035812333005797425869259356282886567787617115984716540011157791747402194284267587788715458375585350987810404284999060496603278425371741909551881931271529585720601600003237386797899667816065781157213307050472958386408758926782582246038891083172829041725128755893164278785245662787265419691907680459901921872444269068958685661957238465996614283379101455231009504475523757350294565001815735536160452254362187380778284742935604378647409552306804716054285879407913789692544408761366393480780376358772016514259364920070935075606468278595410923129966510882431082605648109625491857523153076677963485904604105213998726453626159437612377539047323351703078936047469203913557996764987271154856418724436650276765544733853818482116944239997233036111454442077636941425846370292473027506812578566274168620432046772168661462211943442829803159929069180489858244521342600240475440188325891291709125246650707700608469843942478270571904871070714084808578935940308903290695590348029218088760026608130574940716271911570910300146377962668416222803366178483506180098461126759503884818328159134874746442945985082736043669204133327245326215146434832145381783954328112026395268297900439972935062224885585249549064632288361447221609439687665977704458647229380123563915694974027514067109349156056855506088880631867018602782158729206639287352912757406250546437901007086903444705665581339573612661260554310667589373791082190970627423035613177385504127713044801087695506885235105116487672116429398123480711990519644024218073898626207817854631563709990813584216779546550900720413946838625497285739009354579887175203819023386319066054921269040636765633768882219259589657433562865166000881599780449309535360113479788375971944814768793651837748881466287957666887287178938238081320249107497173925381940233568311913360293216318883879354292812246271725487856568543519782553451817177180512025102643466457224575976088898545353708913743445837232777925681966345167732218738632371028374656874175508738226001231214593245140957433178309322947214513053582070672643442351891098931981774045088067330974524944826066399591054529710473012203867430202860954219170090904825451470963288370097496662393610297537147875246711305261347052780994966714739770658264899231228600039651646953308439425047200242596339383107174216961331155062885482093218005467357402475025339119988250265252630084658459408330751817676651932284208999061789924487635913110638203151156164775370765185905075306890407507252640232962684949125650927476430414218344636393126864416766354566361020180344166206556851326415166691380366519636845561088028268070134781439031115533298642645950186857036443085407250993016290143410583084962464067213802793192924276648075077086517654889807194743058125442340986290830834704550528457556108808840262647547383124864553114764268223885457852472779005016159643011912528580521371373313994689336621799506091004565015821112771337181268838248100001653028169773944005642214207557272244575735119566862156096568046326752701323889091560860355395424715143541651348688992196745576982924992852646877958462181052887105649503793030444761817289439329631158241591481253640731041146439909070010256555075952347948716711852505446176156584429700161726859783604916517318352339921534073920527938623626409811664164729723334928297798895235756165527138379807594615313229050791849869379174413777762950677876669927867925621528110958600933545215127087942060864117130238003162006611141791372640105222771768851889927779329494253595601980656866428097398104788562713066200172421742236542024946490339907362690596782374942834455915853871874205003961423180769511727731618539551400113927393370758200708859007232578738032483154398388872788581400847003508733599306645417305747391481221336541641867560128162369837560589922014145853817318768908073255626943526286012526896010842527861855619439692121628871021120558598300291605093194857512684236876057744443315894334428279582557312892157526247372095498715583851258571823562623089541464448246313931229546777801315289754635871311134250562295088510831509166382398586704126852920758693678162053128255842425969014810077737891008369879584885555404147730794981742489732353526177506947312381834846013751753251934486954537956539177260906339458286208603479071056586377632995960863694333905707124993809856978073302901740102256352778008074907381615352953183507483694224445760290811004282127318984508982957865867182639454979486738451015194439175903107945976212190748034647517546099221717869373865042869115887026811345442263704499680160168133118883204302600372485768779990863572502747379030833617959939015083449332185490582761340275084811836840474760098661841901171947182784924267425000663659419105400142134175461253154437202985972841702872127260130071069398678996275391054558169924711217747846493108745693877838744036445894482467955493849298389923421890918513291972968181720565220442255470063475668057776702623504512541154557454866393921753781722403408655372037347649049354654614721579700194389108335877673067996530383196068299754405201549001784343775175496948210423690901638224901320009685870712261865843841674457329825624395999412694989914765081514633554314440702226848769204877565988141675323257902140755444543798570232952577311291600169050105141566425066294046149083667842599762059907210882481548959699488029996631411602265640914642348008146051719653594707521456199530758998123423752301508467603530044721771150236387104774458440910298584365539060372040047566454788686293607052520275820024042638369845507644112320585376173170225927433392370481811475638347751642408722072994312277022152773711864606202266186480950863269819584436256785388109745387899886565404058047424944108140154193354047438825068754570018625097352218378859961853099682740176462471057179548161710982373764464922530234866783566054038677399156242913209806069974876362774691752162251067889115082725514997102966881096350894930273153497991860481984463935220754167366936448312616807163994136487933199779409099356445935565777973512127028142216581389554942822086520241276769917035763481105015047979019776518591867738019258994392958170612626651528992392296274077086299247814448230685485716677266682683923001437174182230546989932607575443949734459797402431457948092887821967478627645332318126734082854859374751588619447942205612046391424790687637446130128719847025273523155196655435181689921253434271388667868308123843370522786556546319070058261663931866294617732760577448480990616264710763241310772545182908499228254100781521670033444333212042013440751948648438554148230641108585234204603215502334245566200839784591684679534369961940222153732002787406498201103408120956456973713246097446172612353940970634964085467768447010933436769721479828222796914234250446015879612438391501823699133373735627478514893860489690329019223043533878362376339473071493769376568659320723301142239562066456746557871478512231291641693361948363891634611082891957994150330918915505251590593902316970621188854639197492566932484768300396837861355456107864254179151302415421737970526903570453040726148225922511584179824078166059017918982691719293734355666509165603459680915698727459715695190102239933987252168279995931798429618310660195606464553808790960458533838882004224642437845750130187862669082837173385000167165032823691670294643607608240769478680737592957425136704513161703112340476921473135425410825474855101114183285660971467274606616646001108563550074837563883592874785766617634752732705949896391188565915458749355787950691780199899708984120867783163070105386157180004732021389427276459730829527281993054045362172366789591911732172696376816401335018033309368392504232520067443533951691741695764696341121011712492100889032005287132407574516466856002409181623377748279980194375700590780338739553249654740420212888649442852293185872614388449720172656677204492382977771312479622164020854069943719952331006343042978204021910768537850946496805793215329274021882713030102848256605323816221440730264979356514029628809843906153386077241266741735954389277400030366792457316802659238935185331998857095935161839787324676521078429567906445604200562646294294510123985008829491880422798686442853698136094037589136441213655935035967031225516915840936090957020129986126867236070491204723131126200816358155211261394603086586485037972905317368932042209236261511635844267842808951426806559982831800596442910748746296598409724825891613207447808383250829947673527833111520445323434822285356769297833356390459781739091605978969668199957398482911547631881490850093615935417427685315988097783429464382462555182380319231320968403476894689617983553395598298038582938675709266795324587826395008448914414342904219846295955618115959485353232531036525421505240729842062413853721799039410435997763639953808740719390370291120565314939145491595342483957816890600547348041198622735534098687911801435280599381867625123086186121023868444189345012503461679473791660524518736891810423547821236776258633687216859170457855772395585083980048608459961556434649354729926208078801074223178586693459653005690233279917822184656917306876159337441513971366129388385982898968539636437942174719497340863937612286890428250729051711099322541601108222912661380880782109264352368785854100110214296785794668606722643304360536357945412728803246056051668775972794278954637420260230723016089083143260162392987566274942440833323811420978207659186665395762450782932081493371519096541020781592155062793546363163162934171198542542609666457978130755061427135629854762661288979215271088889832056715675214176880173898924168305671574242099000356633874802954605603370216208592879376585547203559817267112737799333181180613452106984429997094031034798575817999143765607876679663433569696121353096239643193679695858159130477664058938957422321153764443936466191764670100457608281543439671316836030200895993941153732590266278954966277849590571236741572943641632324577158838641021961444003646321664300973037988811446810955436522576594417978233340309386386621102727291320532818051147893921787575603906045652334530802402730003451230699766841583654223041830637061419021073616552801188592057336779372109304325090214041029942671308266753163157562828707602179377855588164933690547887458294185078420216181668474287698957623281918092219904062401314176667028164542858189607972869330868915471416747916889119638222162483411276117187083198785589267706302111576649869679199399899865393258319705206574375610272699862212008951715434876365976888397224656486313001954411467898335534931573750825697973461987445973915591952186149810813680185485721320843053146000299076802046905022320327719863521455677664611100548741587362424105008562698184575684358409938930602683284549841506836829389986004234224397181382566118558823878341354745230434256785529846033714764505608664265740152000031825471373072071653135801975310499615326195170909430331509682377786550392958153147889498669520008905401624875576974161671789774877468668484484460860253797125734116479264299643601748486828197784955686254246483066938981252407569535604362587617524186605446203750770968973288876604361101792607116401950708911162458952367378075179715708297511574175363511798121342800494847587004354863595392380892293665581463916504630422771422198219821951409431713443863612659390595516936441371871013373910271194271184463055348113686821950353647015620489248270120109878673999493167409705439694126278204691265923407783174423562520856640448803744136296406342882657043738054227861596894419752190311334228337527276710559583054215213053641028336048084600442957958280538757395187411267157062970712933161657428582914430656368962062528237386849515323502744936515501203626535585394217646892052476847270681073835801225613404294092546965236388926810169495156882629622408978490830235480594535914282032394431155196691340706744484525826313903557613458034475395922671272176738950622250352886637889500357606849011376519400942274517396208095941504115894802825264706267944791335555029482601755453388308481505920479104776985866633612942766886605111570875721473687677807466619591048565471004710541494016644432966955516180622352378824749933156979188687860706617084511217545995560459012219603827376039692078484787749386395742361319239993305909123302847910792528316803538302509601350680891663753444726798831044709507341615682880700246893693377962106181476171961671903368872702589200391241810435891649879864501170390506823555057246341255836856092046626853880926120941100417910646185646485017972752537331091645492064317349794060280162925722260206813829487179726832073169817027197911951625105433997688918635984335542570605298900460958126009591364805272046820360372331358880751283639804393189028519616846337963456125754003649042642095214330901543605558656249148931631221444021236113618592083199980971298556928068511414033963043190100821507053488074678015537395187057417215877271961457766673689052050910997001549949821083433749275905983600025436419622890798068075675129095605003103915397005644227397038957672168578762216617656959405243179938164439902386943740579691628154851893824269067065784655234026605855976570102345637431092673589202069418354348104703660827312225949850229092204628516342568989032915424528349418065184791109895060142609099906145323676182189407239664979852488188863627635864537745487468345529846423741499419394439567026371812675591059458184402690548470915711625530116047970881361499292871414633187732041518880903588433336046708873596868745169860596055724290108904449939024369198315438885066130279949694852113535631817078443946550436518338662685688627185030039214878318171135149502900395230503388443822355552957093142525075125312123729783164586571044719659707931360974275557558674790414329182702778643601871901480099588467435742827417220233910430632011524393657045910999562342378795828944438405220103479395261744142098527154965318288909019697928295904805240426611016987167610704958459987317866120769651735030792398564589376448318556190337862484426787732265973108709724367151734924025010771811613863990736644343194624177333879713128606989377016823506724128667629449388607541230225966273194346114679468406905189996673567561385391802113730975762543455111742976776066493916103397003948281986175215221845146239577893728647299236296601063964552212622061538244373295093524046617408404810708584111891483708668097250041913576004644761056150274692219369007205360307803477269481469011224200408580939115761867866359656114405588580162458781542295204917500919428466568205453617723945585779778967667445450367302976298122613772643183384353912597145059722133463352227108715169306848001252117244927067609670208829923086138475462125912554661795990091040718400580959404289387067231967184114484496668602448799606826099669736014669459065378646248188689890812823268847141260206019903603198845501202495831006619415118372664758610136243666050847635335383146665004091181287823490394896785546432822060574084375337687786896217957276790378357917022303607422196670618912099566665136019463380927794451228197613041568294823142514185876284463976311315057260164392889132523992208851541074905563336550201914835405218021671221044149557912810371823679058668836670019864543625097902393627563353137031308699768293139401062991560881336707037956025566324495470761253063812855001126740861243336542451105037371177743326667115460223735578794365040123232514281901608423497203774706206050355036047561918356045557918404460783584945482866022674750922130574916850722898441258838879130599434419327179577903374482349634800823564071003242116626192791372894935380542457996937487938459931648725021491731758918420597501017663012505183401860899930344367006831333237461617069524341183511662814959629919019322695556969954930367752273531991223054830809347310340503363817200204109489094808354360632002973477453543783639112670243243576384533132509667792384588708198086646713543807708458992187762715296011780314470940092469892594209084114334154345931001043928085674091237679615383319728895825274613587709469495827891460072100534325569275505912956666345567730381620058006086971703665993169832620776253180637521021228189105197092109633380487593774708277969437417406471700977205447990092817743248680777777597253412369987006781755869130036734502916232237720141005991288925102198256806340718295124343568609823556867765191707700957667370663589706740141019154634515015780214607080396424295884091736342160104494377610713738048251032452889357754528275863252534434682683418284462305677122066348282943144031271700904641701083869538952306846656327004060360181742802804820277491097421697990811640119107715594813673346184347173753836820719472403852505442698046527181638730087112425013962424465678861507320083066275969992853000220492404609825036266459072039567166567362740956395339341442007280232893474600325174051160540299211639161700087129711789815922236512650898810290855696102498291298317365441132629918744423203091109337476847892467501154009673271191029778836763668669639207976758673234714989257978890953647795834375778801174085946066104551641997618956677200987375122197504774085752539912098419754455574525767099410058483417912241417834869368982579663467137425419021270157136639395806550765477485375151411080176125468842788566171412035605268387191477131505746128650314980648544510113515339431601317941495059005054425528906145830568382433386458431475763147557538384743311138495439864528926910066973500104384845338743014399349826637428071530208115898423310624259671073506240567804192974262460284510314998110451546106789240966764048251122313468559837906678519561016427669469799913625127965615955362875822052539417506757148281267909817954935315251520911486594283908316242424562773367208850046012748647185451266095931487060506629357121599651225995572961823377179465152772755313908522590017901289321568745740242382303327366752369529333241514683585918550305010354670853714023081009357819472620451325925600672441172807552242191189987824994556617741838408481095256302056165365345925052010752453959444821898169128496898690739111182278190248534200246200486694770906492200423460560687447293169119886349820980966224728335387559843993487673942109301527482493365943826690574803397832498253662116188842298786240119066192990042271128050921585382061709450002708425361045565982324060679619700618098516018953665279196806804551700816971587420294862641998109284747287367850161249186983223967321691279117031565294774101413998121361502016118601995112038716682095970213243006626058955231639377747779872816313867333986711617556880556782596687068233481537551032703837819029990173260578198770613987262863441988513870393495768243915397289038251114583344055719558610566095575766023769814854017031766020304321889471546182793437474047096688083465856266408201027566388448105526932366017856563018571349769549477372292077938522374408561509314720498694160424691440847200510565811558079229046483370964950677704089483810479884801623008974410310677203340873441807840319840453873427092034592455956828079650305914675083814346829794586009278256091549719471852485084913543921547025902487686211359637697961563182467213050093045273088557550969580734002270150374304930838758410855592282535218420803379768467602657302909682400263947811022695606856702053063672646630091548994716731298426781188145465604776735248772185935409630388117214871549340783835570197172325223498455266230513802384259873400166904596360801833673777170594922582473200659966667618883990105389792650937029981298978528554467527885960725709129349154285655262692964324822788376729842493496742667042654089724724255949824778689894435810075583816007417843027335521675734815939072300568683663053980938686939077147790591851842265121994847855033531888681210265035371515346434500927040938433527797701080135675351340460583567814013172029817784633434214915910335997736544291819415001120720128499376811055849491441388101349052532517045423567655166385758013543646973660846009351039741065696653791960705565861148697678846114103137924384523311919985524987558135309721307535903221685152288509874316984542181637389934756205818780683307175937182923867156705299644710151631371037783109115808269749950779296696850715891852395806150516219461580630536065756301007902224681032348743962144187027073129432400041332313972762119624670440870476246981958240216212479593476381631713986900060269283934256299126435673595877815049418534907009595466016332596271827727460615953480486383765268068234530198562102691665577347981285151874279043675547301001021017139550462110981703299911627576373408405552675203276969925762105352055459441060648497878419870493308421919328131410870379800964641384413493257001350540903510385724915536705629132264887918680457592098905656054481736292885381793248266941232823576204710575959337713138598172527100952879547506425760669384822603057362181189186065339036430487400199468412501527437538904292957215296441900002006357715965608933989595369491989225162688757022058269198226513174559884778633225677286970717907385199137640430660790830986871288454721409840214035301902236605398447884830385075215323628256995945290974610307009050094401599443114502067148125728410582466993751203297734876475962349168594200879361667819302504911890405107193197652608127005256007388723868549737265615642694399889050546139496802793749970935331115537889336587376849646427074014704714427294832325063105639993309656815841752394242141899613503909991695248344753299366127935303155126284170934964546448211843220723179924892224724972859828450354071931978766685562427929755051917176844584545444360532418380845894024450514956613461328271987907716531036689522965732764315391722167740579072449821007313143857390007188144790772242387670881431019340737874442192159415159926329539571038664131099396078933257992454285343572755349777197004227850065523852651379297271669440119557305574652937698869372582682296729595852605361996193708672255648726531253411388988355634308383060504784521522815499455676169741869092213515179210948784429453295821925163360603294247127270831260630769728655961035338090299096060470914572088673523377165735428538164607058833505982533092323275365073844223133540465570643679031290516115637230376768177248505557679887139703570740073899465133875928509663886883931083042825409576750625495473862656048088223459677306034623522920761038607126918103202335080075698088435578845170226297432991156392703597210775322392828155866362035339785467114052247461588695856552743753235059607827284350033058858136428507084961960236413363218967266886255733969938428878036944588006786096415008270339647216949052711861270041843827638948393564627714444561436023954838511868715758683125013036854289964136683275957343300349675093381771819866125728355039011791797718742801947415267958295963803667583308193255627701120512548013038203328068262603064540454706193831289412533986198212368936957420158652712494676966101470248604814338113453632486462129409412011430572968380592910389461512619746798732537956900070064429958321287914903976033110880345996693658560592768923159823637725712281880131725416143024643419177714019572418860526411378986580752232406489672845936554698363439697546167742040090301341461081506069354284131632122779198664419688029671463094615777164345720876127246583457136923790398494847542304323813762317360239846928492655731249711158444070901122512272945551999686362810330724805199687575911930474615070511992088319316285814804760584219800122638796932224501688053287326721204941966617548481040222551421898825742842240639003471752188659236280366581607512418712785743317883749753406669624888138260538622762012522575081959358607265955853207172320887720251941974813566899258227508400700479507572642464891229697983887693777054609182823083045393419861480444780424871025944925451148516981361217663535541179776201053873295672948314923657899540432204766125091144234136654412688789674086219296233795621548647631690632473634762886460015130033004717551506689268644347694465583837189189344791925449289363206693967008705077572967206738213406491110248812984460067783408634362586815455013358571410098735979552603628157039296663285269416722029709936216068156602294765918973245677467489065935678838607776266710206974184159166892374289907611171452033801318357332286055043139545226177861463810320699286242818842238066501971849280564483099214984486681390769726067041259800831519595621373988818996175145863387531021388040479000529181327362857181527527970609157778898677729270747042259613298396383177876796129240461689779508316087164145750281304872693255916615898783246695920216963929895024088445833900650244897416260333608140088873967764209909748961133161069952922639957715774698124830047939495236101987112010354450355397469027379260218019822650014816035735840958976172373466886750768717095712401504274556166838827622541893560211294966296118208007519195322263386113779063739870881488582781566131004395108852364638386747838560885298317515761744081562961694757313595629774795772331435244873921637994025007320205864300692045751770131300567793317913453115142688298165720748502979746532647859235417885146749905805543572443815525626912964054884589618003032359632781458710285991842551019644372352343464988984113056666299222251817930914001998844896317179836415438628330452594217963438530125773720341870664122460214207286949911132510257592089595771501423705148237039530329144559783070959525935026127448658045612083229052964716544188505825487060835836917912698332736168351795336058982914942885755215305640870232888930229727803493673954383825833973324503206598367342498213091372722400790465008307508181672599989812463466502322122261668249391644606138795860880499809918694543711961063752288382194430679009102522131257679356545935335657342002364799313139744430033403520931480517732441701497915506765994803048781762466484041783512572163282131738021956955544717121897733945978820034263225085750875921556448909386260074824808689547162207675354044116339258767929765764574247369407344073670238136931243333888979953008018038914513788407079882634242695062672518280705025341004416372554050011862043724481504111827224422699781312984660726116023395165876848412620403990445993090561447562161397448959405018610807707471388578021607396222076435348260960926803398360838194268150827412291687338417436676752663710640603503149559518436694478087938155274786300162619014087631543160451826712197899277279505700288584609884640343713116842284886540098984316623732530685000617870116051556711881847634510615164360093157395135547194554356888405265558064091299717944330727542095453867318243609523651863384606848822445538956733929015201747691569090084576794072829127351636678742316305927007319752281205667760417556134672130400063645351712552832409639437872855716045104730268168342910539414144541242912829858827508767769147701421776791639829769537560411580522239744266375827809635408411211129089482586111518923459597662103865979899072826061717481662583325359736076675898250170899300939150960142990897377723399634024017857069487635883374635047072515272174839158973649905382541057505764613190799088408461369144473820748046734144147799581004259599946862819873581440206487111133101407267229460941141893383403568058259263646079785974386034603776747858898266039902626108991059646748342928860552711911187087999702018929962801426043785998011499620207390560439888723260142773092109046431519587303697406859121289631249737904991575984640102552617453682339740154559923415491897381259579196708868190235008394416299166794882981791179818931930220972114279296466632680008516729553810887502647561768648866931313350013233728124824353297850609758113181499949906287665792893842230266703907338364647373752874013929624585354929179530223356399661367165126868907251063132698089890569709334495600465413313560872500774876669140524399128776242917222036187030390682221048498204908070376452008909625096291460509832611089456466669978229872079393704479605191178644930493248145784389783486368777305638617481960081389484998241513644174708622455850887369832632725790526145789185980622293214092785984211843352901639672255088180040671750867714977238579419668414042670035830130294791176372006793150448574943371996194604529859221395127820782892927332582392677257141000867714711667696692015191342904207159219793867534450795700658026320727003811491866624179853368502823378334393164495181511290023298450890583454925486413608662026532829476393408885738117030171468456771135927294660238645840506384580940076681329837851323541768338591478636669058896232213368509557582634928648126379225744847081316449375350026682618827221554067505923372920045520776449388437333743835191011954492868705143616226865223369171560204414740108287082256887306873196656476607960536343337191635983653328160304283327109703564590099343084675541919813218243196791201999091465702545443250452629141830321198421442360992200209049892751915081189615860389671343433876823624565326136472458941104292060204718344232004058087033557596741760141580380169558399232839852751585145287245158756659560697116350003698553260392266136205200943227010015267296151012171305663419210665640466579842559313371457183683444784737364190625726154136011819952808030237023669828500876562148413048929967825396993522185338364002133182717308183310094036753069027519563674417538415594575941753178398655570575341006380230350149738282736023323453444155751525907034412323069967044771851691687905269833361361522673109446926029191234166973169673164535849253416497658767086437457646435077965113022957065770007672729796082535979456367922736915325322004327944278934720578753853490297622818432059879563104117840903706021229566166995749765900194646219811850532302670323662624137714158541012071120809154005389248995590721160353589714111024833429180405463437149173656916608450647912756130276970060171382150742030891791882322940683522083718775978967407063697947906877560283552922287692000267313132878654199024455044518610665017111029033835491278453209452768899813077670502903846156838613030015707700502458358723692081703345444328867720925535834683261992831241065536992917946054819830940834974267543928195593184223024849002154182146018892839595128404912102070506959649336682558298251131970210602411053747694165957561337542842633067593335047600571357511275859169111781746462398060427170092617943301012279029422933326751666125637613222419151979776209617905067367502646172267940500036936438601302622798403862528895028012768635786437632558253097913722033906972218853548466132435407215778921142187433386991268315282186742759956710802706611519846711904719500092960537200130045818409276354321654623707187726035373497030282055574099216601288459555823326389692532192270855499042885231800813985918282452446330574590325469181150180670671862395976266644986680586536509177994919058039015015349891395907184928835205365303679062217840780426308841913406346518450383383175243090391467414389752783449743293845772456565419968711672012243369817221220633395490288531838471720757665959858088989047114872415609029612118302938801479263863840850584584957644340298168369929069078524242532753012275240771246833253307585807891111203542410446154632768430200416966717838278627319225838875813112824359043107097718918303003348780184614635702537776605492033899860137085438263423560930570204127174357057439651140623670776730994292250342918537456591824417277993665355709663124153241629828656360270933000803914940299066070945917343920277374684509417666631211277171608691318941566422046502236096577505886661802960879083655163727891436554931349671402466710552925226998337661375515833449907181696127579266574896988792469219626656510739134220955181290935385109441040871155113606131503399073821085167355648842875294502941263591794218806719942111588529025295192863600141159889621200601106954777307276459926293251276900494140406810094775488684778609361368325317010447340756321560655898089195164158510920514337206683443114595106334536909123943283155181716584962811675229108053114879911001860407773086224382077500192221838833100934036182682679710004817405522889874367883395784068205580617228321831772158805145167646882759544382794307090094517572432580415585202113261442960063968486590436992465462637733938819623838285085391838416364209900595638970137575078210387445642866577835349855768732680163825993948958239952962046654190725488003829903855917675094552102151921408702089315929493107741930464360708616626596199864393713759723275783772068410075073362214645868403352093936228266867012565278615674754745656467090992935540587323291657276992845978178244126348278535900398491884569221932077943890251330418348742922006215160401871959029207182191032284448283279616620046742124307019778618973856350147372965734891161819670045877532231366103665556904980365264398109638395416569387804756815459551097585027262532078220070988994079939285593780110882594989674474036166815568049614059882807544309827857671242193266967317536516917155352906859528030209789640996719874073877196887860295046531610346508995748685693266979212605744140848194329809410404914368161068144639638758323674285817002400218961794701387980509523057318530438654312447772645574681410395299924384761770399966949720497871085317120785818204247489570769782651909385231766669908064104070450065915577044333806635125856608752467080144589457057887550747350552556613591158109121339112199113891335163632903883720095186944615090316216849297816649696872494239627829552882251275579318983541111222746909099615778431255467936874548792917407082005567309242524848233445877540835722679251734173242312884274547853554108883524545566758679696496258783704308347042608855655148489362611089201003043333627575140792203714360138045900753421350495756170972629778187216246814471572414950029777309381660905445367283565082550695255353372386112557353807926249768176383115194605308790602409816325744022089826096351687154088938858784056369462002020722670867251050519160408739984016468370443277616557188053574304861925261713205233629359824917579174310073484769631860092002850214781452735707188074373323559109518967260953240004954019926282493108066900915218074856410881298411108204906950475880557179678625555512201615667963592325247478604375719176614045953228824058376369719238198093530495784510490337459716728670247730174391307064525674266905116225881831448093201349122563250433311001810514111742523372993631361642489811886146209955180460774412102075886182229513352941549917195404603972946539798634796180534597399287265840145153063936188159078953400101485982560034328545315749117167917461373990531452838470339107810439904317930168090851811853703199987475354806840515960039828876510198613091018535609863302273532841530565566080901632077114783392950338411146876897334567172319883948174944710297696311841068039038117188509421696382788819005754385714764703243205612114672885362160026434480073604398831465845990645326152055833570307784757800456317699679785872220934213628305949984246076165605021127713922780667422250303157524898606398010751490914742980713437521702468697205624808875453800906447639024866911267293208993113218935318335137033009075671083751595461708296212753639175199158212395699617583965838947845771405186740573698442473758846275206092875231300762347920234788086147630692012647210926945650484238972103780481769713089330859124223187735427110675533329408871678289650851308757006330130793552407389802333396920011138685333965477759164556217274452481715995452502795013947892909492145758735494077524165878456498720857016113277713095744440097628142500930783035607497896760415504492939556213434537565198880784881352358047080067816366263382688350690988847267294248313535225332669480023521025690026545485964406734702265117587057945724467881180529875159615032901077511455685193336937113330118439852877402538737599668080079228556302243755106461201447535323655829065446790129260041692532235933106328753598496820360930755220696654754534311263088002912111344284536532457569902052625584614288645325897248042633796250952282252701892119694239951062224818623127744188695919012368672607449370795519529016719222440368336471982371480217993594340705668226852710745734627921859318182771877370253449939477836141201030636773189756940633859471507915152826153964067464657872566426985434199778067323179135763123752681459924842598984569472757016853439990042792503278627806184798281125752815427767902269149277448833435538237404607596427514074635948400152565416136079442084157929615525807116637391059569275726170268019548976314346278029608794784078049665271152168185398058768809617507419314843689090422597385352463836398126111762875068940975166085896475579785805237548535836610178215778744639764342327671935918965513493464475967132116684734351175452515194742156616252319323618387435930229828741094291271017400890220090754765514933102577061741085067742145428335937963374567799571159349879104527580739229746007537533051624923930388697500111342934582750360571590381702446357997011187754411103026408519031481178206211648780586770852968116321670125972783946827962343318947851027199539029146500234226507117570114449236431411758845449784654093001221801161670292256795812239187833260480275467507884077371562911192504417031833526262959046019012674938942480121918191946675931031581152327315103375584237220611489600306824673553708216362039819748373663452043051015422284490830562262033357201684063578272039154320788637619396222932111482839783147233773544283636354189519338989083058941842507843366284934824798594531278701901277860930452734266916595399038236681417404015924097997386352712616916021680039384358148760988266762845274172045504379627327662937383280823539132867414647363509719052396859070088788990615118556874952686588835191068409604855811120007202686580361797952647579615278052067930029740429448454511016358681447463026054168801762636254448509931166051101777008804880665917541922395191222955002799717682714316706580995967012049776085851479631199923502930585192041664525384882384410948173780351294296700080222477744362652428671422872970960237670057383138157970280834865774549919250951450468103415188740890171560697868826490542683245617911642351407663617131108852073892374859845489256934256067935782634184403579806505122774491246407870333286757699554198421035039877069812323142152445510808750666090883996852603423615125657653524106939575916442376933573981004204944263873013936810531289178169876796067690903485222474233675149518664984991502125222466468680136897567275506154530670491930958198540395014186974033435551703699377583987298457936925670293871761107836035666646802060320193608341956563518892932430661501556515496588293052012150100922603065264214226908907686704831502224115112030665678792171229618288117534901046826452176842435793414965976205425455809777387019454070013447428874509288163818726557900814818459907507037431360246599961594633058305204848364155249820411870648207733298187265917296316684145981003480250976778893843494995644990977403528474380792841305054591036506398839493290289552172288916668598216162021609507831881506549351474224189929592609351844004463571419244161934946097296772834610437868450970035339066043169027617695007685195652139461967739224467977176292632801358215827626800497510000944241246197191254111813518814025595518734206268518418143423156955857725399507140054654533932625433228165178102934748204739103385898318794195158186498599240919104458175928634300511534385356544655069749044668709556931746675689028261446233069708478591417279226762173228415244266568602645722415865022148903934401590409220707778171503362779508007372051426508273695121066611530116238390885951295776010188430201814727788720591148751266090060799643681684186538177637685544349421428398004526960461563038235731643061372827348085145059947620343473395319161734993458928528771552901077689739940483622546739498795471029372726081460265946134762344146161218780168323358192421066416598050447849340719358517204826991263723795422334590072769312295501432031416916722259040428624586918346867305606044984957726026212791300701930678568363025996866374130842054528012336128349992520385978942463128143274666632840235775605736948993226065891050055208960795764619583877935207642072083187419562209787990629065415732993704796079041234834629375870734169659920851607923291246217697301193763819879089999330199205399505971540116858507267135738608679896344246051534379090230278246266224678616447788553723715916378600303621775748471304433453468089377439448528954639690678701704637145377553688315041333656920029712278292308613976846701885633008434546245672838496958771325659865603380301349326288728802171134825177489053960516403897350144003359097878863887597356121490775922638405464953040058603743884866360494626191421810520871262893028090983538281938848242615894152571053638786549859256026123716276484431800360992136042876834945144300988342865037209720595377982182358216398054776467600406079402786466600464919147003140849971186500662133085376401772883949914324843714717676802233900573060449881639433444993970363497210151277029211908993812967334745939977660371678157248013319703399716742659484256539315000323648578367523760567369672081229467592591789594446491135909472341761155489989821275630663631329446320246150002226485600883716750341792492661521426557871050284436833541607271607914993978310932875620566390287616194902041606129187449612073643223427365276621457175063243698161851426215530502978448914127589987727517489309786374095523410321416774019343231481648294385180532643309027986064059960909387038813095745093225577153914357485223875601136894603068944322846436464311396293025018129101623726467027227200891562937178951562080687504879696884507330893079271274221704417805312454679119874612425935878112530510373426069795766915777171289710614195792033800734845104995114433317554356579528520811025155865760375292147056967917185852158366310956994841407834999622656686699322245699591169675677623989909277868694485652079489794679862825439530206015587793854526731045439975737265077031680177207957767316984049253234594102962103711294683076240273857603125683955584688264472586605494485004500568745257787549581233500677509142638049332580470137072693695906088824827735949086487924193779094003572788514487874949564781198673753524859932739558714225537886148296502395170081555153460270931949006922680203069495158879561548873702687588079761258799847139652483048874179799603827185975759504223383730107524492084346359430795514592266930148395470029601892521818968944688584738949730328939288097804066679727785056723309393381387614820979422230171487760732215259476913482975299924144946531231860540722071789765280759056226006014891357198732554153446784552926308646051403582757988289717237870534573455616565317197004965320044211593720639542021635240231974235763977537647435313841419562374066473962101025705336437297565684263786404845555719673353044788324311721020272897622133361153270391926878626893466819055430522745875796394749834538081597174216236851050139266925813422265163354563656050922497249456761138792651662002062056693234194978085945735095486178281881221350212311317918072524912702287040477065270984398679640089109798867523786931219393337366212810004717170671439384985394409474124126003922526102019078310542409671865686005982670231605039268349429936748989071940707030484672484137825757095298222354675973361358909749387204592725770906284801616529271928485479971891894232947529855342236053609809212790080749849969797558706092186875430338702541089080118848776116100667393387572463057550135352323638052971636123109168988355807081140791435794095975211652563256624442780370015891385688949863566942439648563390186711220547581979890052939782607931196706798109264325262605915846474067684041112186150809496597837563994800732856399221863947701521846087464416216939395087643948164939611465291891647596432882289005264871408945043480964060628164912810414526954187155504590203204338395191390342843691349542727815019703195406670196897274687660750934025731749781752435723028423576897774067964898967172482829561860459483879733135038678742847768272586325569131054383868568334727733425103017870180628821718071369067027888245749378921165858651320318927639794039408110820455626088023991310838084957473631152049524385757666013566073086381056427311808950149011732021298739518020236674047137420165439792514344417149891144123125517922067452892419033279181127584554634712483220674645882828463503195411039599978586265481615589687449373288663508926400262151404717330692998796321470705229089489145972975704784011973993476160855103782855078654728121792838787859417131407961350126339495358199297163830072102128332639678317756917370710267664772790270095567487583407753540900681815290363568360973999866374228009359841843559005687526565917615388461706162506114188547202297484859617008354664554403340714041891916883064686894038133263429555081600450850800812175971712699573871411865799236376771181053192882215416257728439029208328508289267976431281830255699352905000006805765627663415358074264894912725164300921267708517281001520767638566828949559680113801924553280213790535561881128884126593709361650465088240812147935788835695958458497136456483349878805663056574255281678590766189781406072822213102397826273653829711007054007644890958224936625925374637607348067849875452319072140383324832616504445837021419529234986325600830317285784538188531940704103712672168236918214669037210692660453444477658352753060602110179176162462202513951191784111375605019115166233141571665787788555884315588215779021340513368250931840319708177362543274086464913804641679350819365428156707781019222661862865981810884800599353673356592855313584533531951584387736310829098570083506762577152552888790817166761172020973331045764486821973159176908410884948739017901991003998967891964242217808825476255162735591018949704437736465906576462014915410744717647440878820702126026703443212101732580510577952875887609048555477351679545355005296838249570024669645275389665701749048857757873928861607779932201330458807133069526455035568379702430218782951728548010295677205995201184234664881053607715822141816306066480580431250016117370273069718439467576180813018612532914672890264661840820980279678499194810043216228583136534312980851011226941913047366620573394735869659009293461134059900686400459166159154979518106346599671513667530154572739525411680070857204484175986280467412248815290836327739302852515147689393218860419071865296156162433943750863639409950011565641296169463470069479391410528320893981130997896520602636821455023996699052554342136486282816637073663642214642805678440763337751505392390485430638298154623079775051910012204252786495513764085813935222838423231199463257818751379330129011580062128789760756511005152568269337800947058361716014466204175015341060627043071552108673567590333974437286052361637936664072270739279155190418458278061987017474317171522706366194819234395314537622042300196084282489541727074468044292254893230360882331017848687846245985416825041307646086390071054613411938022491694902169049613841190411746651898894581334758188090996283699132826057538657741113222568447743208989337261893427149145729350186563017234853273931685047208959658556655310850043724330113651379067400437661640416949100482664208583446648919750587787499335691209126061319261600024693890885277294454098673262217299738240719976896512049373353255731246694807291187452194188514021372159389028253650882576958539949532717743405364081438896034902594619810622678493176129455481043095272470420557576242342362563356236059275556162177752890075314819842112250808276264997492120702115669420461021411792970890902426222699637933701826232740180206907209058499456387238352884810704599797681588785024972850710044176744935659604019807966576804740940148124491495146075494615267380562752644481009679938984463933006413622662868254944837761738655941782085286506353761830499524727035816018772957720772108288072127112411742144436755739438576116011165013309807269237936747276230661733233427022265992602891969450993467869283508216206469682958561112722057807599109006326384003323568522888518492443907343588993681607329108782968697696392894528066970068906382135863975379823717192236351643511828389422828056908978307315273048345636523405855610615161407923588260933101352244373507657424149079270781258790031039006598548053547957451821834791882270020897615646700382034410699616462479428474046458256783674348359491197110924235897007322462144291099322345529149592324996633139479806714061745524628907027934031169373170947639745343400121956643363339394464123745133400058757420165404703054771504603908142644392455304950146599962974688676541203442496126385764786660108872843953182829778391757212721945239665394003158157086030357676955643423280253528893010648072611953004578074371315088218380046236030822806726314900297936401050714334965021291750309187008782263567403849758923460138669569783473182754073325162371982108910058781999614278374253634623577449993062546707875503340144980992855708004554432985222019089421255002585530222227916207798165433024154869923227527469646049032213439855544049221120282738627586245996234861064410220492018131182207163884961065171792776828213769247022203094820359121132853139127658678593282768768922218042726898170538195464205384523005608401319102686346001893976748677673860517171507307929125976601209843888046712595662837725914938902513097402044910522519068556069410651822747367791528627920060234328669447721760972726593568229763490070102456427470488243592308061706513476836418608795647641271949075247392700976671271357962513904334247739244080432429793341518381695188020762235948113133720956044340976792427560992599892796570787810832669410796985012470880695119995540880607692256459083985281706487814423715878981995796940662479006366448367315472917045773754084435681117127198227559213513626992433865915440445814789323374780634823914758015202311398945759578631982419999362706946188712625946093298348536055646465142346065196076901767861106843233137574509251475529962260915618463516148068105031883272084539762860869310272537827920844583226545324742928212781438820334419227491310935294337941635429183486862802442994051291589199079373001833075055763007812309315608188963290278782086274926446623159569460861808541237848321620199510591758986126058215576793712331829798225931056561214754946018184683708306236518918866841209782284659183130797968457050700098682037321387391161647540674758305760833904599483980526176051671499361620600767157273537351066195519732273946563203748345817822996826046590031300915000865495979701471068793763028306727531128455911548015778022251313852511557033058549583146395100341425115620842107418147027423150962227435767431282470326718832214439218385879666364698303329394625748209583335727558877093690175614891858547826056364857409407110618214108441920176534328070351653641628266927498260325674548950662733632791492248262924124362280386031232676492864883541278066337235965340010356338369677975760888529358147273198238153412223217971016392225698941127542382770558144408063199056386036990566210247168965025084481373715503059741978889524606847030105961532320183975062203753368744713289760446572493377789587151506538263471387681062443271959735891161232693065328883794858080881917287314439616480116435934963798079770767160842682612153986761706685494539416634679005042382809907334467057129167026879399979520863259462349295793371453438098218788895816060219806288498119144333090956449756287411816838612463069357490385210348958658594310866767878745159752152350865875354717847577450581449176874853546521019117693023437470588766245643207961420603534722806807156039873457728632419705588580073683978561173982385886682472570696558228174821310830378205968288730952259729047495755489143262153655484221201062850832535946923037534346618508425834497931340124256842006928637543497223073796260286294194708776243733545903902359578813754985329146450764488426382288934469586189840791270358681802567670358083289749452682037579191609757917033637395950937410436455444735177464940215094826601363481661533401439828491593745225465563059930540837561309140229881673371207150539379530421136271961635372337624565480319055839234532968356582936620671210913207710056695076920478301343553005384418374819481010330423433447926986606314838193376098478592418604340104074492235747954726447410309078378810533290530034287094488460349136834674154311742445536442919269552690732575034365575414596838433586010368227119296391720478656330685695321945404056785101696225426108451275638721081168927514390748440138282689497592541110297119983694312450855000909900505695843367333597907293997791440718301217636379783828055646988029681751447318799879401940669546232010613111051310097577019538859703003618515085341572463261623902970120218179641052623534885350235716706788974156444327094447496881474177000838743517808078640008141475681494627781183400034557081554967977873650868803118205826800979782084917090153776677898750432734615783597702122004245421528608286430858194741482109438418596751271940775954741585443123624964852344296803315665313640292103299662669016656384961865367298261051233291273424901774653906981648828478282028277305409149771381093267533283875170997665375550916802691082765429346039706975880778991003695227704778109270259581103712392949129657362565072134027120215285369801981079712466044451956278543638981268311080599433666143420561885636066305284620367563908946219197707905211169754327316194110103458609710961412878880054321483494218880491543731695861966270198530973718876610506200407256549208505964811911810698249473950774216772155918870315077916549225893797560451472550172916262807771795151729008027500420173712499715244219510602159207333095530190783012640880035541927816207988204974831623656515720067774591977512195508045539044737398272148395777674712806494149497104348786571162877569664864228868430233072675094514458309674447369182361521642023779620961802862880271665593229901989494189055422667525968440112564152197341552321067729781256225061523867949094406519045706641446064366549939309428552004625743130961410732764047536158121954455870871233047390472452434819108631132830551001201644650974446062452379474800020394121505356866566248044116760713749473034959408438706380270205000362429546225977805877191018180493162708913774118683317342593413521305255019878000042652164845441268822848750316708176223338953604550866371840582352803823563149647193867337878074157365532558918407495782190572428886056666940370786819048088660759722771547123517054893440293624610811814193205621838552990466643526103841727775620568741577137102748701246063873074166044447875682811025116118173901108144242877719508891927205364417137147317356882507335259994582498082414930865649347490274516361288261970495382786559680963378592823286566077016749170566936032759650483259067641597999525126373787597822765164375831271447290051845814442624724951366702706340303202054048717705214346414045587744057170898276105467213233643351334386024774947109742941896627677851889666606190372363033200938038189039658509562693567639423980866397446684015777841999118646177876724412341756666237881840678452780131399718121549834644596223920867350461436357471384089114284973738298158765560076998913753141927246419177990782754787216238534877954833642976037421704413759005677249838835287455234907330292460245759654840170770825096989326300927937530365176255791599113669732552764992726121239245104850412904730883999947836960832566616979046286680405588169758125002458300045528541036120775570515583483319038818887481229674777566472435305643961737312687616204697773279182560411234108541992610820681968907175850801120963463824899690020104318687537756785196165377956401860028825562102902425586215785482446886555383968011119679961091600056024255507050660077083969055489158779978972550819451707657291391406921617815155503395624604276437422084467548959897767080574032506640787902584983244813536400715942214187236966358670193506212310284476981933978624906493206522471642449269008625942271003809518947614481831162140079818067338297221433868895628122305986524283495080748727041352197103581021895282401471720258761920864827006249230480325102789787305575675019188156406715481162234991483855000293276863773628069093093447891220658697856539908301011870863748851910026273051853220731420692672529337097004177295852605731124329548286246660295819487204382473735326782542395589066535920328876744357373281886673097206544860840010170835386227265714496053782240867758200370438485387124729031416640554832782595242531694585783842517416521975446329811543751703204908331090704418745271116797453692941842199506515593360057927551485028175601642702956801822449408117984876610366560291212212144787311662250860640952451466764191084197519528161839934670998105690020311867491164297880263836477634292034280505007754414918324589820875392659332254329449661312785894086176363679204048995421279810575531012598535445602388188834909097906388400040943875371132865037395723586839335061719495625027206570319337582655195499203764703960323266003226823928783882134528799279006937393607824599270864508069403519644089563318640531157584406917538268693544292224805723548216435530544033419944594495012636958374957753163520211365788657812525150240747876178531713375631827285452476893667584786794227595812531593333385883325772103131555637417200643294519436721757754956418313207568592823530404578787873700063485925727029979105213990293521150344731712282731514117725973726260371196360940136040698103438522438889985559085528063771584684077441779650727043430134104144433406674176012010484294599045287277516589236095330989885538324635237666243846412920542344471118656263635863264721451564882021872499286130369872748868556515491833711766326021644669583403192936246173103916286461600935339324490370274606426934340677982105125240435521103098557273999149878315173181152771454344088374776810933692993629264009830834511534910393628504838132857528270839247748100090086279846099943930791564219491789327975854301020067694743189174634590195783080943185449368614314038883776199394428891538292240693162344725130243343483727249389057114942131611210702086729041277219633935345074445744747805308747876119946664946944136271184835238723716098742609802906253890608384483807874365595117942053985419899518657703824720706636323284712201843451473807058182751132488191352240330183120817158263213231714726380072203581441565152129154534972839144028914396037503952114946230494200312670222660945961302530511251661828419476940828831192385822395592378944339302289096089146381101930692764231591035178545040086076310539294223247074246882315941639871449013195841503612296926827999869433911793829935127619950278585835566636368757338444903689687199820112024561934890903178521601861480328940448199610978268143684165867452095836230138782410099709597315255359461670930118897150160786728906871108911637622712007679092197739175851372268332411673115138070747519113319129253998071577221998227704182993399208927722160848267440984147430991979599847828140996635405784838803660020795383016939029045799535644858076236729679888430888709056897568946480872750529494310527415517699671095764494190751073937470272646371234962820429211012572717300754902726849186352962247501941704419511432031236468736840350247178909460143221483187060127046607010084905394431652821459640314828375861042554742122094393744485223858945266859826340236506069826398160447672734351207561513505138633883108301530308594998182513498226816324169870236385544621504458426017849696567732220866418714322065096543090331776980132311894256413732777079594161059675961377444983847955922884041086958754155666451894918231746076790830594587148642190771149496710750934034265109124770156216963791349166976713704372835808347967464997343359162534918553645332063000552609461905326451994343087714731674050076050790647277216344680748662896183742708399130925780022150720505311884050529394877750853044351785917598472927727797579749300870848198697907994136906691045931838067862484077067133301684199214074447181674340034776146078028634340959026081223619616616655669691192098687554107230393992556222166174863121642791324785773483013910606991896468440526476925591262901320053703568514599378732674961817220779145813930893157688578875789320537183910178962969566560201246789671799544548785346246261523356764448997091352792650419475965118059840590107025777025418140704766703307605493386493977550007898569845406894663661581434528794517141818663808191189612056005742582269700756026633441779988206464646002695824299403220911319422737551796785062448539867167038695440346628030664779386292900348099099830586148800527311255111133203618620552702413367347824509228097639481186957003617856752174270400633926746523587979343365302810630962891701081782930224775647797065721881383732340376393050641138694513200405940066759099281169921168387651287493250567847114614377179703732287038619184859283986847110030936647914407661345137098148363499516192556958575654437692386935591770826998096378788070291666223134524340102182116716045341348885054572343863607855500935218503934979508995986016010476743538994138924358238481356642684387493424735361184798763393710786295039333312509042550803647762098788903814925974584193062725932140940080071190728292771549292003616050285644386873320845465672260518291976122933934835737533908992003730889374116260321463828935385209225641400290243356238253985014061655141614486620299241023005172462167128789937296848337701050739926216400377079019029461434062346709606110962177184629704053668444005063195620201721668058746119068922076730701987396896667971505605085932453739232154290808196480125725884404011521766691467088678819248965066370890928160273210868725067710066381211433615548602573013158486722143782424821629941562652475510134829124406495698552659328887049188569358468429052537571105792381721258042677078523382001526992475689098162484759389018714317320156763287713868765031928936932956559295924561616712939614349357605589679389844347856471887229409547540665080303386012981286764981899692488952374727175492344459502053409569383979937160820400986652487261259693796907263416222936098605002912016803682624767713225186353864738490324819444543081955937279026889044925095044409018514198627175994369729132535879990733150434133669610865532634192771723731584471770820769104568935700051832195305414083961708589711203723897195991372550458005284230131284228515526878865107643922418183224519755454293300922529374454524823317418317943711625925721420975342095831171960279049295096946047214174331876910015437887868165341571879420238808781650274530837595615501476616116844718865868251560841756266796478819511594059029010857860197133107971648365278456938300497095086018167085394759367345490954011830956709659114718702399748139925949326119247472756978494178571509381541408034019143660852742571102428065166873781909925493830005228833574755722699241866658769574623536519564166095680505332183607972312526640966753873179490852291030630501665043247342969805891248139034798626169913666222490190104718497597246848404185243464602638573827993335738354588142407453467257342904425710468879039543892146485499620505669003999320724689988373885802898438731740219159628590352300949499466132858194523893885270232484807350929928824992729669070282364433455816028183067374734977790542952635298805623041598792286442011402801099923209541964185342917898072325616517411417471648828041816542467245767226304958782832867939521709010378155267584731305122170181739752419924846993651797162699809303432223525049503418007237058806205886391158841292671114453833489310675387089033866142947550024594640646785072556776020941898496670582873892401191740395629227619355981221505268259955888430395134590775124216726148842442750596929893529176661793368723595636892098516366298540034236389243423761378061279042561382677047601639503923228072074612635797216571866591991900504087746174841825191770882444214249850232048791126706131453541754918205466185188422419047196469031890245098346103057507969171756887043080803144366950339384831187633645172247793374671467474202737703987522599967759562201429162137243763252875535232265697456090659535474715365083532635444289569426191778445170229345753611515613856299265439432589204021554264052660388758625217743210043925299794661019578222260883866738043231389244293695096330116806072928059344799776698562331727063665200715481898201285041473862030613389959603679955076819921082078039066848506990069521090848614755822782508395282056239343473474528205915833687413800463793069147254675978657874150897492496707082624663992070830807274311476602637371506960176702312349453105599584387054150602872703282825706300960641691385037555520457766004566497773240289427871473033337808401150567712272088303181035367273504623269724912764627788952422935735393089980771799825584714129940125435159592644501340103616214677540259849284127455580167064136584355137819963540917207460391018464957637147531211519200803049099152828070224054975361284257274632390909616960650367482880816147302018406155121258600071196650739278543568607423974944100970743451015118063440395183144549784651477016728057920077255427221585533587618607475914846862168324914172512925876833997282035473734264133181115311191852115682334559158446479225346736917484537604300049657291663812275068635049284721320905505171557789792464809821892458789383567150590386360239074136884270027319700038826257811820874939045982260393899973228522191137074123683532552909703610445443730826866758526068651902860820074989963473603738364670816426356858640779101993459526614362440034685048190194590295833562848303724166019806523353181191708836278884279713942752776191390004277062708084830412769652855112398185996441166714069169087521853926158051672510686961811756171008227764023202333557833127044602470704612611172088645302775151318545726828231162866936298805376252686351125984527796504381106965382192066972458189790834920575966690753088879453321709049984337052215034273877917116797495715852767819159864650007387476327718092264097835423555333387426355464529399527258389204272355710809311416380156826317134992701788782830274653351832624045134702911010835525352291728178221064387585872080209605843704178354728083607592066039341441428537759926724066315946124485899954890329579721170329594091451346194942189790417829365956294529038077520925148722551204639152188928156299637168662143541962319014849232065533038231107676047280018146251486218449848909446659749353331826893082997409256534993685050218185132469640618018597089735831183691402118770998100718430857006503938165930577267094495945307785630573611574714558449678193555305671819072511120084837178745819200413190877726167483175457245253920444216135088109329048286198841679023107492444374554934408183560662709186278600940789962378035243964458315475361293080480716882203964913214372608510429913295655670284027010827218241931153402912152550754265267939613849808603828338368610093154517301066946476894014177061355896069573294549009808877310306171301234136260068595419534059634395170826762975607993040402526965399653554841454356603795891719825221190951821863853380910511060765194864667835605537621237132862464181503271502125700902485466540104963646736525238425921128067596034363140340574108715606526165688600888309771305274907513647573787974193107445412132924219009873346074187053485429786478654518484125636967820715053228027326407971596800912591461345847378295174133508002033547742342788255282344340891468862318861460353361585373844323281584143242145366551862320156410150356290869035099509382889102498428503420388006579993039902086931751465810690115611125999391037035759797578673905450438316790187791908307384767987298485606911421333026748958831871793060715432209859254608519750332634019961421249115431129453231519087732072477308237918034228013454090580419981635173129369938770967080503513173681136174615762169576968474435639170865221883481809910057878644025971921165201367002385724112079572695824082610821189270629309175777054232163605139917815362722247034362580234860581789221424136597120507708295751628204203581767166791318743195030308202578178237945335980880492971344178928079176814741141092580569871673742260957392342485261207266146241933874480587407641123252069243822315065530492681957664925578196639452305872583759679735154787085479192483526655134979917206231695839775390159752570925201913619755619544328792120293352463491365628959581177800442155869574000778810901212472126591443634941569346299456982146839329932067197855960729926001173658743566288047993959782894451627889520357177778137963599630244155265571728332571695874416794468923713060824648902215511341284245259364967847293899461270083564989751282070037637605084642547934798213618894992926908024567199277311817700176385488783371841763135824053977879640319566424232026676583058458882528184934789821956085769108202151178077415049202284922568594311252892464295579034325184149683260928586890130873710086980142991611187309810711219555611089758812726668139750211721248211459869828716904750523948834119544876830346792959750403548774357862501737922330146314327137512354166559318823178637784317707365053600807220607382696727071741167424210609738124233563063963926365727106871696854899523380193542331436797343321420529514017446280699461758262044034959565765766766393499444113833893610918521777452749705909630616756036936700250129900548011382555181379626422118291235391502554210090125020697695878977625375459486823715753544147699225093878721404352374923464812836140705057007529433540422984055341577534597682662011570437963487027247078193270373902026004887067426314674179232747285194019581143291111995602194250261410926735442403868164645659439539469236227061536428165873922728610835525978356021675253350942260285598186562686602774768521752277202395344576415402834232247004682056596954820731759704464534725782058038549782051168439574250075753035858124852719080041305387942687037620099390736174226060434997478432089871508666882393786627130630882784271988456172630836749461090958080563645079714544104673284890697224964931217913150729814455397838725158299030148228182650524238727753551590302892904333093642802553190865361907556005200251513484470708842321473130772460711166498404722470423729868857729779035942814729493785061301539382066653124418828783064013574869890231015602034124620602809770860386457245044023000285463745933164461751965015863680669004663436478756348057040845963891164562315081184501503939647670077226768416838142355361698135172455772373524268698434320979013272089766144289338827251067456854830161207284500138393032429635575832102834959150700115033568479656580033680683627942060825738046724549977332301549276421280772332203305610931873313163799921093539867196166066060706870278489599814801467516908485912218022599046798626720513528710840128731340189853342304404872164013224887400552667668678003447578992751513744992809307305071131928525866367229172876101724619121696329235078562746632055081814257871019806006010425519593395140248861936851448199889377057596927535739286879389721810259601092447523810901849262427136348468876035155239515596819830369165550654070614338785591389671159113825644564310801454862931236030179384575929764974459127223750701658752666300656455809846151353666626510613774639395004508147879158588490185093745709697716773949257572162919697576593309707453806179051879891303804275756744001623979123786974403356920779008863046024979154989620157102156214689313739562796568801549316121324959974260422369781731364627423716621599129519904168599122377168119707603755095813369591991464946103145291945943612710169850718275516597170350393946852421262340200961818568503152920494966578733121588276131944182907515912862111537798347234742260199257900055582017593521215851479297828462502176542979199016732644935826145782611687607047974109485309380706420784200248172701700407773284053928602420077763303005766649375666118498583226573334261229475688110302212257479211769718376891634214969898293616095033195335724985723347023797278676704866256282038918639375950321561910728149103669189256911103855876602690032198787464869283864083832646366751306759602065895197615495815528489460891596451162040137787597085936802820629702862679241876713696536742839585898026369254129788390131056959597711866895476933646381395227213186762040381537016563562914506344540741023251003161091901808506254596906342383609890221339606484029594843976623250377515434913855573945813757284914235089070419910960149348104851438790330441026005412683149977336070440451514494572250853898252696906448949154337619432166009599001549129231212550670217987835727455094301128822006943220492259926319087356328102424070338158696950078649384017843324142235712330249398945414577898348683738596949463254209252607801871122338605655998837922370881868747137861370194979406056626664709989018356145902716763655699362995600789268051337376842175302701148293089799121945801460538054155862269453873188075565624977801945566317591280383277731203913484928561994254278525020960082095776030568570689078881328602690586435993606759303674021610390293746890756093944751743195684745106767469269750914450943159910892309008909194904149098413918989621025942119251136475528234813183988073213676395379416578906367989942174517933837049640259495557443739786598341024208511473755966581825169423602396349429009514758290558004748019707822205401780411237101931669425965529981832641230550132498064761765758978949911871079620177503901105920969240768357205225659136656104562119688420725816134993251228902660002803730158232061245572439134921949697854992372736780599142811938050304523664040279131609691444346091478326847022107423499254016475684062131773407939156145268392196380754527307957890757745778972343143982805706637024553446144395821751373834221065534788783591524613291249475891237897864634739381608581835983057432827956646651449447139110249612447189665324810381773615657531430415684670294328832391365739380735060703451442225898152339351118167529617850084012293772339325354538021524564550476129876076730617431772955545016913658586027433844846687465467299956847412606228246555879529614565378482554348558915527897494847478199111458619798957740135352744561770754825239206603888126984732312097051340328123383089533935326457772566228430483050526259330662294416295520653233753360898506746059077246753985650990219808752906119521505767946531249216680693827196240198009334214957388333007358693708404181000042156411553128091088726475832148396519710720355425595281247837374099578063761800532398372817528748450223096593881352648560311821562960187401351644414240773036861626672985387182047046838428107935750377918050671696235996963331600665475753281350710709309341864254883615768176015563569215156453689627654174706613869908795995586745513137272970733505572342593254585704734780134785612255414497833223983049695546544868784612816589280276658184188650551472813886614853134480834226225164044636348418003352825847213983944257104629319458068347275498285512356931632010864952590084457363233911189509619035208608747966959473327641627269414943550190805979278918298957019333130195609088155385429722092395798438409262588948425692045435638770670050669115893881149550155273979299157608571354013754817754084881474402633740212991533316008982028929170622970402012252949280611508541504277059690827445632041070685936307803159691301526230573118350247907706190676373935672593367734425781145382914864155974529454729007681132287568598127572615518545198412204856991049204650491978819149668380338854507523037180649417453915121068110555157253154661298923090016250117035891947864198476217801033868553307302890828020650063806440391513834488588635607946361810110532224069686203130289572053958147052038743684800404910994269722395098848060270944854839548232933752476654616639473805249876956947691459591276221055119056545417744525225321188084015686339261358058620238722828273630955459273055014366238876908764466400720572921833295299629091888094747935421607597295007801168916311709737571052771714501703967603194187483032870513333884126974946887848424157346644181514657351192031400620462188897408503498248913395081271273272234504561304521172404788096922775106301059460633348302160536563560731578499494661490612255291171291428191450127314722389318126073084361072610811917058757023138858192956977191730293576663478817723081601652967237453362656826190647745393067023070145483922009776965272575144236787056147225209416070120398653243758529955928916088652583365804325101633998372721043320687499599605015582051136476595047564668625353985266079800181681870672060883863205001198836986945746053814912730981526756277731051338101277921472925196545508553310159820550010369870083586811280707988240465284262826898057532379500404020119924675746780920617696717542597739653025570820975753371003164784402403990524531146462448722836053586291941571536749916615298109152565250679141978753168895827816388613292936439522035089636762274336146728761079464930412929699526423606713068057081731496219436504468193591402175387169846914547077328151867843050621378068242560593180261898789847923631064953844984868311375462855537418272077746648025834363600090987976550373117889524879235575429422027415473120927906101764490347030632601615522248965095361792889453235230981313146327467745383163635934900917713993772226562509049653401315512164777199241986257566884999551428706302304157724978141971244038507336988917671555594429877266443884858202801310221784645324338818504621835370838755184699411695448783663117383047035467710994145688581503351987605670749694857064745760629358056614436263843815068597517453436990565160998864996889213195838061427585103889821162028827266812486609322108204682224618879458051238708422922463249146464165255179391108943647734644441520662303871511054418303143358702097156704488978117781652466754072714189807204174166358344207140560612730796423602808147912478650200746878803676267654431778894165753517064600298665446754468240501454081691583973027928170410852969195821570400798438471341354106582228545125351755374613485139577633281175359461480595676193453700804743511703479010701752469612066739467653288484988428906240909259686831861171127949821156560970005030193782585910683241171681135910287894461707015133667973001716576005704102376366455956035563683759208483088995415109047925859827134248771996692456201258753697399163400613601409510371093152275002978902203201520707192478165044997148647476557592681345696042011070649016185151753299470387870264558095616773531806578001999286225645967358272428535682239220109632435121228701591339478952563474157047099023170844089905778208946980398306055296408760843504639363226333023575898851216252817614346332013823051025984498932477848089630012473977815735328575691984424936316576905871868085194140393449000517627668051716733844253720073017204406116248818645735626923850034544157375700258346444068483549105549922592141453929665563951335000592955275971616293140515506188360585894045526311629664736049055777942059917942273906046842559590357623032312075913630024273674382295047832765046160401068423771518488411636150650510859206338271407861970393717171073275271055718100729578798621876045488201705960183731544732474359184986652896671564485778288991469726961936597398423055595275807124665002601148933601289576461707003271506354665945706935903891360296300725205099127906675864040586588486403037647046695820069560458895836783317251790070076549212040381267633026481873265918124432412899643259654944767859043232624386952055764067529796436977209776275545906026049422827775173099328689706774545344817813693468360791647493209613494444114921624922598357185493207456812965711071122681902802972021697416269809784063555998908159869208248852087236617193195685530123412373520901307893928589188149276154071627626510475395924613532747440927233158740073737927641441896520522742275691548663130686261671208875126655630707815238146840469462107534522402927004601618384469239984771840207414347868506661425995048460296582359647037392591128834448759678318987389743686724718129025423146982368081295795421394128461139002986607848635163838644477823218585990387737048441826793676470503639501032017166747296892848037507770337800518026445770283769775391750038408211423994252725756876425492465794361455597021098188577976377920593052125922344062103668064015767753700663196122554534284212804227667351625852511357477857874208868762701640049351013515871801348992429554756941714202874051192228572068654410983431650459142773070770226327423528304681826474723918809422378550550806459227248541945846623881469340375167848611182196506230055746519102314074382440709563987851489115820622335068414608916336813625970343571969643852399020880044194339240994650767660431498701403741803343833652429553167041851842869754903559210754867123349616493747141498620812159257684004220331157920974499426770169639805820273009494220326707110558676135120609192014737908472064316034447636110123892991641980013045916390462661787881420162627255710384834864191556814328521246940374049724712789794133171845826482984948511120003915391539276638137720049631054140748487323673090099602299726746294001364516142703007075885831702306080194837424291138769770629120948751209511193489251381899280449392474497113335593683777408057616739482495441417522563183512264298645034504318017786974552006198763563497204509571005125500395013801472972949078840899147964937589929189377177399903100420876778550624549102909259904841845442870893118440643058584791167376107894553518548766440467529194469818035974507539869217274759235251214061158349779101199795759796669890127735785720147873181708713931573433913639923301898817480590822941916686492367100113089144072302928130943637625067460078393347497761904802583449810102284300855950872243010742864535043592139485651595485295197844822862356764541049359665885232071387293132342454889088224385177787372584333677562963715761391484496634382831332322564683605401363821234545246224054945938363121280158480190691609754971899543537937191416113447270970033638518490440446760628656081124260643913920578296213717356659672469322342248614311398704245746867259098629293621878616226193082770107088651632232403393483922585068690230305532337004248767300372250729427147276436678837191081573565618322116029821769523427206097164287140423787248323760606063199693326179632000300114053406273165899540847218658776613393656623601125458832401022070474942132155708722644027116924729488471596259827194519355789109737425937325160852608174251142171521849022564846986992788773775644550303738955470038333337043990572131481559838759466423554582770112491112451397193988990793039268918755398446732461020086115872250351579234619380938205635602075281041206850522684539688538935422463470370692886895021777387501694762059507625842881636402151216622615678496925622051846433050384800582155478658921132382112885011845186882873124237933148517212771805348146182605783256590184559796808890179355665204176017033641735559144101075865610976709891128687088560450081647633779835679265647599915659840699946839309569874268403992328972819510399741951161786609779798393069113070661482253891825127851879659819509527591795224200451167767940181541132667371235533040977483791847393778656867475136794637726471715071973337596409602991132128156610768746797328528878720756978253127714418447190454764733626863736590393777695761787096586046047120758791940784971337275069692378498013275818654991853156789379448746706934064961482359057273195427128383733819086244674611983659535208695572590345312388500146578301519740904198265512427966776021332376775476376627498771739436285100356656541915940023412130360190436361585202756417318654515417462448861999824525643387728540974824607166678854149253852955000759230332994202560555537478764434972132989456080912244976818361906924795404277636988201199405032749059875783369203689292070836102184505088233975526935837519038274100050358884572700358190213315864121816358736658550622889352613725939296911481660218812719595632658028600051045921614870986116270606238244424689996067774202215083866527605299675961763987131584717181033708233259609056942657061876485364816621276511716887009057534704560684952616635954446781519032098371130619970078013195131750111203754088169097181892585858444148590852941614005519107041516862263311725805576634098654596467722936136485865122056664796616732237998172600176013471406395881876064894794313697940818518701919262843322946652733466063490719607086648683155019785461948961510622330359012476489897527650463197477926444699909693165652873196085072182879309108525927516788487286064933835685542387917714727192742278589020158120001093639456368370705727904244266421357339741172634976340094743369841224117629826733716935478019228050537025622670557776083593295998155597860935329528105502825906596398229041349088439562487718815323052088579705167102990854221597115056164171813848393250134854657656284826698890399885296396483677151290673978032079203330653481857215831777374138737180389704230188267473071928082630724367471748959852966328490771605179202985699034314788052508687085082593904965221917234378620082048108061872939944086320877755464094003233846887764122800894708027092000805005514977100094863469914926028301650818934971701812554206644226532470630012177465705124878142621142648826844815197456511648519380975549286434590390051319845957807749170212147356583117325096402758981469784648819182356068914702483709760143516152774520626083868595065028614232920490164098721788294042715867252845095172171358025640615773678439650281542365616655256132078823212318162744414730041266826570195376125587808371350080784520424873050111886389634886297496400934679400993707214605091761957486983684974667054641068983727024814362669259092784310261970427278961591119513767049180775891179394019310208481839680119958720529073495973098419189845860569456256486497827726229181589042636226669411840316112984833203923739900362422129241432494991967352361446608602047040136488275188063621693532022180622921026937275293502297314608186433200642968554810584430716438657710806635850457545501052185506030061835593096453967023717054468749227548050836999634322646844738254196909238461474205603442618670318520749548784612536452083717147292793192490236908036658464659495170124278278818729913061710353796679118182501468119861607607565530467076806036290640311073812126156758872371471336499313674898351954990777817160855665543519568655255751132065031290359494895908529908587137988260833190757480919530219103995588079462333263132203068348143475601899403337717910271831257685277696652822245019477827620238051989962402358701694660565238959610831380356246763648348538828081145857791662669564482901375865900368393999162922791289462325334612155438870094301348758381831050819533182689375511998471232029778008892951521600078117379573053536305563059894656596131531236700179372551064120164312965515079282740160483763291584852256549233713037256520121336706505170694613500448080787502850098086642346331176709587194863791357154926738764420992491776570984835136566422210276778717239673661495713429538189864268786502520413852144136542503557935915056120227933888554425889863939575351161631465299897379755581823361084306633690911528320638943514153740023454634456307434831263538380901433966277644471798123100429072562234551415246257080657456449538871871059898331061854732458223974197060369590500223242113584999927629463412514717899748599920667804399853996922623777138163572894099821806751727318018624157224987292659104583419658058317343658659588318937538111157374711164475633476605313714037668650799379556357277607762289637525538545507732814165546479220846002085932601548511751657453344895527428137706955124578876531173386056146142333823201896421545445696100647957212804695205002971770312471771145497167609449543685848135868128456918249594321015780917506759673869251452292552086205534486095934078616563132971749807082745596960670013748084357944635353551086594271250165742049245960540633359517726159699070321292323253946090893361831627415079552383484877360699093535166697284534769507302797432596633701038769757383274395468291068865418130508267760904560110543348887523021003433327154385247991994251420439264262501843583577953754189938254815230179825437763514263120388965793076329904826678915607048315567001336595746644665237797367461107689370723237097850803943086375480996087000409859622555443614739182225352653307249261609659922951450922278890107424427749260266079089469482820241693588012831652864487737118624045425192411809987041387646811977219152385426982176670875927730925540045010042914994888962599952469713486348061231608409943771460261650621619523749742036147497521560725218550541195956966937217992044098039998368742542182834843478042995462797957831328398826955969914000583225385642648796555188682992587932252056442641549632753815323513359583550694211104341521429801335478205542771192626961970640737683028172308428764672026909442712779272292383792352739688606383642534547002738328198834510157632614864276747935251740911970330928494743965770913033240017493645726019465634883952505739126441268591869600217423234834403251132467648600955502207599347202072109293060484491541819706374097829759791994942393650743717288261740027044844455615790934978478237990162780324273201589259151361242728223198179624615237360203233484521778396457331568705756189361183950267905948926772418285151269919904128859495737617011962963942864897614276641733277817083689562562159679468140016466436447719197235349751637600512808570608706479357037479665733426957910232676541635431361544297844073088790731430656650845326831662841692428369753069975899900563491938406336555251940475045086163594118067892247279698831498826826473121570171034540429082246098668385371030014768836970555367146606923388838864557234141176282717322720302728686196376984352318708648554341615661831130741303749051254028101466792829691224395015366507212117683928757096425324831326144062159586113377180524777139605890848979410257059222990153628159932453717833751460851470742731196630956861418973450969964876791458006261045386782085591733279128587697933158346756642500660879416528947152134232465995036657569980290696448486676157858267213410998533934398840746207125125092614714365905205923216770635059891067541609607236175891223342975094986955163585737857600734914260810038663313708859204482726834935134979326025123406272239785339852153585571726986710685148910800441419442271069895388830717872995048694237015243058886872429423184840856509862333993480126166078390263805552048940607617228035711550628547724867997264396224773005863529594216724864752342458284092367678319372238778999547462854716092874770835872190016950628528857815210832746067924178278923714199387966282625055336392120674381008027274325021530003177210708934582031580248041640929713687259252612498654057495090298377918576815890515231661150535241163936106170898069559850110565352161365603371383417648233386244804639523848482884374837151194638231882310245477802729127361980357772909626281527010037614964704031053158136367722753041523884810897929113001868160361629136895895201927297943403774102811788129317735931176575136382611167784315152915539971727841352458124926917820877119615396426416000810635947778960213595717578794515969228799814226902932568654404935715611262714228238767840008979103657362022865887945803213819349041913167129669794225278867711250303704201740480457689942323624934887168678499721511425108000991066356067504992563729213679347208504363001603552855781478536584356292388709327059783953528638806450240184141065171684145203449597298671509969552746860635496893065908272203285670631415125674715159778105368754079219654395469330628201351785726927542479427256930913512310709035747829156388590306325004611442776301884049817786897735449970469002900440537619412353622344098022555355685021078690978759413494118057832198868713999415650167649553208152902912165970661244653653534374908321273140262598661746038076827690886157820858802753160542250171375010218918068479000044245026268522128198870109576193698091121855297440471525903066978809200952927422020448508159232428603917991625869666699362143758139096398530025480822581975684118438692692169227049901773017890083816865786863225952545144542789052874211955810958813794570995920454098491576662285570938181337049790552778148494157415668369875886228676083877811354073159082500116380771024676013893525817854254658786747087756208845043598145406043355192833954934662285011245170381129459209152055903764615763148201765448821832115018713216924015517838651217781727188468958754270986727072342533873394919724809916653328019099660350316087852409719959048611599909406752998459516397929908227107842518495607355757499343850402954345927346729249625238126557640978696768428423431360363713875910560258877634249502576020563978191257403381709794775533656295425012805875147800755080722179165907437653488194697765486414100442344725593119184432549666065553389430773176159400108506020586737766141897359190079823748119954993665152798515023621304069448036298610428239071989885527666411202063705791523041020339359443590618214080203802568966746556021787841234928728786313713511908919166189101190949779878202212434337348288285251983534966489836206040312243659134434941109486321636414411337409966597659691596308471512643125845471524006445282073116688907193427256935090989836085190552126193852515969383976112781947414856145653163093539135782164817383198655678003880130919243294994990962939845770542057254622624334565048606845800748173032434761527433819664293075500230813796859802149586770768407834053018300047614869153294256988911570476227323363810694731309126728160434497229410495012751292266686303342709641032302778891346520992325446597947335715150740126907424855322865321606022856980463234193680821989786501684234482203621482081920753061490267117317639060253249700016826704333149195063632210212134951782017647958753764761197294532488041405688984679496274812497033463676215851342805773051113925207682718160424061460617966644026851944644069244561717251354026269205536188866808020552136088910573051629095929415924793582138656714911522884754721533052745893373436905325924053873941787348962788994626208366132403329965712130971900123638209708922352185946145700890462599953105771813313724286218455271155793675446343861717593546432112961162620212030454609326504816676593387611582827328647751437676741155546074456800509240888289870694653595236219327392070015758423595992574075721946440033723727945987346410583240285562763314444898424060299667299305738139539241097210033417481052501897468921379180684402466253368376319232778482945536312057763861152895537922076658431321012528452585242081579652427833450517391703837521049885334276410524431399100312730994302028515801279611428266120526291285416053219846468138487036549836374728741776193389777349201203371776582822761359279337555086075484318816066597177130058369314703940274637283738716849750609522598157649782223115983571498623702062398028629469373765094042568352107412438327293660121453044190420060526547420325955910329365989500306631083466568513984448896043001495710826672236832814789339317642923664989303240941508896446400068690038263539961725086502386698675013680484617942498377237725137662940650178305382594182239863843218921662858548725630465809867981540619661202556803683123388107384163479978914302635404194836145108629528966346299292896429432461499439355549011500967484201314040235310639899597019273957708625081391615180952196321778678708276396029768397810463570317875113751283452961286205236757713452367499997572942442291862739348551080445308025314769256407666524334454735501511596864475015671532193798271829633904901025108874748203927763046999345934972452403326529852869784009107739888109003583260328085586862358730950386072991362502764549286303238074121873243711546273682543118221517184026835715743740357346202615978002063143293974943586898647043848287892375554346888988972695279500411473386790454609844734643200700618557908150641659850361722496416570768120726641066175803698163783320369137927424091843541545350254174665797102994378515460949899300728555564199462551762877163602523881881363140497150802815164999539674579796324260139844051099825449374076005373918374897021579238228537061098732899313563743431651442650097304934196885645095538190447636163389225826450035267074840854488491392026440917843243999838619897474720388592795353973317289604792257980887960286639562347972833822002620781142568235879934831135555100072068462068919130523389759690042861568797358391196673371834113791249343903394336416209251045496419051729075315911315104544630644067956685868107417220973731620625998941746518740869402670272551162438713191947567766707477776772523932507193119593119146325624019998392401955372190568078414853164532922131240989031552083214849843693192673739216255189837001567048430440009104322176003097384131852500290881848835339335592786129413502221780218624448258818428378491485612275616912904924896045748683542843101908262888322058154790733938001796237963726474808472685066179974757335142276541568953660080719980675070467574572620003401833879467423421426198154631005149422988761307398937160682837475885543371354142571059909300622980485305720391901039028101307633556956532721709439828730231265521423210011617104397541043463329660833978885000962078438964066248853547130993392386968381575382986467963432510328581278302139898830067812523556926014461129778423956823526861938993890943889360043658049213660472723349865474536315849946589994973021066814767806207877267867661246962022145617179285096740831841236800120487631743440197295659661175369026810269052370666237232669515241619897638052534533711870730455391495163247868141920060846234487831936577008821421475957178201958225161160668632519319344811182288330341234495396393969213769751243110307700353699222189225452018378743273523089990881222557755389045408586908229703747536929964575357233394291387064503728192954894192564408770174643539138829027801785501276477651896172505858088926409792577960470856156555256085984861044588546988474633391249855357515170753220566825192483581092404791689045793623580027037642074463885831648617097930649247925904160654099694992504970049649021998696561926555081282072526337773774398986297856016635800330517728797472525008932648737327008726137740257400099595757991657187908170084804671317260351995576043878638713423568826881047460731317497311344956703435347980242252359677082300014117753702752945580232597285095194675035848638171478618801240290504877184415200917184881259536580398048945797401403503994521394251094844099092492186240306196348825370560035466621732288939497536692850984928386762836157752756845261276795679276981358267585596337036915625831294951824073307225773737109030309392904225197696501359235103352890231804518231626333416712466016458931691019626784974389039780595507641286716343959782161802498879375056003230116257219699107678147405223771647831225740100777839729319106063120126709242108585058249086009170106287628857104490854194370631278654327278090354354383502328136502058777908878336658990234568787047175419991154859504520479799218816020640546677767934968604709309247232529274863112759184708670589119526735191666896725878591630745059160003363082828536002978791979230542460766608081809141875252600644904010387292555706656114028472140755246745716077118132116823419607798825784860310850507537981277590555280817580748123682312064165455576933702425301126872785231862381228121379991080782050982035380283525298327972690733233213221688634949919747376239727878632696999058933147575963021434721535349109833212163609997787339129151838340413876673877827634019241524304892133944152668521944096184779868686038812655742843250995930579787999149757243008990567772033014977772636047839134647721895788186405540328779179555687896587540358624473564714263726005051630500811133097899310427652429709993298607308736050868455997980354735511957344783291821653955730518285051466638494333141353799398608795683154430531608975580114634634949014699855790828497439770015355513758310170856909659806529876608644918187982701823623899849208514855029636807534656300725342410218847357230421686940096016088492131855674823144012924071340823081920752038369818319759193012427603392002694962787673308328902541580609884450684843736580866021685163725693697574249430378129256155452478697559689160435274506260935054464212120007016347375327337887213601529093738442385504109310706476667616164449923478881332189674629734767144099705924335152249867725606945706322748128438347247933162768701396304855522359968307902380128701714058178811418197960722306032449351233270502494647205625564482431042926607345986504715786191079092600453639129586122547195312054844762210092839063202673205972860518771489518912121765901074302421122731467277965318300173232740707790509573581619407032911864791879231178395488148663944592776907451191241981119968631767841304449981103494421800196642556245854451677044318601490406407867571858606516309693315354751377794504405451918069279855252805637902764777298232971108840096539311029141459443760554925353465888828852599379370046580824065579166611940087731348764252191378921374772915528479984153734292396799394387384281357140664734210367263462364232623785992117798609808668638053441408096196838773668572193524823502911222396337366249351095610648345397413718031098053228757488716075102944793621151191930015249063035697725567133422837287434442808286093739389118187359034463708903140787531630290254598797517881640531859753833779948056908831811477484468025462552755244711283086719918401581778302570010629715715444309744668677574245436834465173426331900853093668511107464105984108435372245054333823286813009583681918490179348538993106706254272066182565623734569937018149956550760270685877240632831923302098921251098427535594863340238696749251995375348340154985703169701034898738660912679765304774831038764063011843863343405127450068455484122053464677678211313963859034910651389907969185288510718677407110467166216296886548523073906067327732415646719176420908826085099126132702166026471951737377909319800787575592359345903308424352160955546673047119919068279248744413112948563791731837767582296295684214996220460719694140501978059973150385205488690177186517852840452575737716584336502842713725587920613704370292224573801186400143818108392391233041077016613852748639835124841305706158652620380685513805021365126143090640059664436386150288494125123235267356457725885680137973136886247132869221511995795227896674724454447150976753440129520087321407215500182747081459197535284699334343411786064378097155233742736032718189392169018836208388658498377402547361376539831222317508906259126098172192171858859006829251765599608936420317358741034324193339306856935700335738308686212761050922242185421952857345839934663165913133662267964590634181634005914936569249537554850064792036130061422608027672676014402361569179564890376737957938539180239826746179722395701551964732508947750688952777391354340735047665802724184460856651590518161385840122053341932430591435801499342337965385150372430951741188504085801746832725887989948245829188062168732841824365146951363859519157449981312438660970432845552773545022905055823425300144288149547861501163030744096026751970104149551599218451651016140139714714177256156785376078645259620371912337758453661994385952914037961189396755282591317184185790729531367878387182888520466268324627400859035235642839947835845242289944628658128126742494523881448086581123015900548156696575945305772670356333210308733476644389783816041178547424777303111120343257656737813765411227008978402408577451735034135501572467789610048896238989359339491654673941448294927191948504068054724935581953915930252109212193874347170339144638231059445652653346946124955756655778899521298448048413629671624760770872659043728198281060466831328237377661225133283364872103331716701062450112461992693335827547921203336750623927473795191548326820767449559291673073201774981344942701116208938300101947143387961353209107946982560835304395667910596748539279437080299056341712431707291870483420543105068082017894095978751621902841236863710509986752781121816608190140260360504808754214820887952517111592614215671454059581026530626017014409387934273529262036282117460577685304920440174780467161315338805902425139437864220019354301456027020030744604365110469570979745881871950760790176187383434105757571142864065473634443774796042121758054894542559583791561805327497993444516119103875490828517001752933507463244748955701687514895190057799202694027595020553300413877723961284277396148925768497206187335541448573518546588963788952446324252430529451414991885809260262457262011099410300670268594312102088657275433657365479627921596498231650448721431405696639732519704093060756742300676583867377433861738562602647507998057478075617716774858408033045769169132685744282072587599701169565925317414027213163706820834210303937073674877452033967338579612999784516090064633711944835264659320835942869276738702443454835440440384399357205524595957301846361458219161427845112214084092463355423743625776262658189013831010188407614724124102901010087624786086530428538671479601926704435997201115383485838868167092764323540276376030556804673911786473589139155075113439994265439563996159992254955714094209579464081415360620629429512786780161466773808021645103867228800119786075407767835759204286280759010487971891223124580125435276538015114047092501415748946356169160091814831394510835681522600178166721965984258013565325179769785124366952804942706340102245095775992225487372651451120469253672939253611127108789309234799079687258748531554681311230364227280645295101570696878372882528499786592055562354327900015613325714334211781805282512334268112357954320144206924217631296652933977506715050340191168853337852810949116456897293602499067004847697706678470686056598919735482229578796983359160980641486327406925788572426854539826992970355236331857404174593019375903088303944602263579423541389739394553638993456336402459870038231305653633271950353945219130909084359790725534166487074968657059752740066630134857713069405857373199195498224564862044905128692050857599385184211800465128238654814934578374339035058142592202811226769627136054674624873810754221864003614747815328933443385923826344722855846136240330759970653991234636409559292857890697254043889046038228852213452346820458952909873951846982099258866660741105877544192019481101678338442543766444527489720153714118204933111394354288345801479802077203064646965507588721371755689793563072010602760042587207770076331108354291929152892072813877123210992706739505292843034743051691531006894887707016378051559147230033912718500137570625394500840889502411563616171882820271767363175126606154196941575491115545173164129017947833942685687307645647667654919834744813907778482217822985318761344056483622620436928305822860337087741533063928623176896371634234147839924225477149996774513355354560670336227422518801533045173238124383859496482481814661804860393456461575903302709542510564662543833306230761820592607030364916410278107041485263722788807005640380164550365962572877035785895014657999952416254778950702820401395302690764903113964515047267188970888105741017073863814434402402412425316458803437909696687037598239311981567554950757327181017514407685199363918338630893186820025331559524380918692598628128121168972778332292922952327174030099663249828502730132398700478984529373381604255473331057899688804812410169874146094282520073906839122622473957743306469351294068285321209539520851570115128410186082154761390397965682566885511606742025216984713018522478408764150603538530074676213677678405183728750998367790264368198978322029735354088679035478518484457374316402558333757527124465931508416739786759847454177824417229787537992983333828092851081046598249112256892075872278102207978160168617544802163942919065934658751810944961457538595414517360794188986923363983459249285072328080759277186080114979941429105718128559728735685900324412176967032302572545537448401798398703617054809070181256470847185132321973264889755403045700105776519266389733590182993114794250334419301004270360240772739523717776984420528584778404011513785442704513893548245026562781729353673803223283207715850544642000345581924905861190725913892317734367508042431778221369288617489455399359702475626723850852015892627511735335395802434986503007119507206481759581634193436917021785886814065974452955893933660399932457335711422451203933050198819035291269117008251911258317798292355601750462663632636983891979245310854254890957491640393183143324657894635725665695163357952435496494754056655563938916924203727477517947711373555723171527622753857058297784122915368402299718448496940999456182517371265738833974285992004847312275201209684110496089652079213088037548044213266112428336014384976530069923753453284263542916095646804494224224285393073995839079345269731737687720343111025163850552215568947754971399779367399129116442396996953672287158401123773312993505792323749291345204814088637207478814157107173609951275153445603258836134949085411099251068318606549806788887502272139125877767496935223906565196025605691643475601990597241187236334368843473243309811325192774434561055627126067400482028218008318099208285517708527299211778749473219132066831987326091529409276234814997681528734386554103978779045561953351866295066192465962935453820646112754936817707785921115320438043333695905857551280623841558834561570738799565291035176849084747731779501179043992111090018484090314538673181256376068549859225169854070747484260316767677133186814603043521657340530507112900665141495763356858538040354244191021651861829634625754029585530538342765108502542133203793666184728178681914196931362958843203009370907647093989528977591551671528452378655365751186058892544439008888405905488956101968636837284998962532194114333884188470065626367053334758889332451235423258485919480127151141689289628332450652278175057433760926292473467039760147804506081436336359070049479773844145241252647827616232195355092248004061595677696434601936571823827404438383814642932637451200357408068664440172337970584566069559987702340790396725392233522094621690692151927219804812922718710965447444031200211695775137892130460715734858041582057740119189247743429655952371155255544194137568703487053230104602194667583098248460211051481474835580756249796125431419519252755634427090388947481261100747309012624083455368684548418283140493964235360274066042514759321853514721158771295578965602483571071212906933012922698079330200327366236399982568227101383548516881420185989193954865730634961497925361046363519951594299702470969574232903152718926542415038765235968845811919465724270448175348482570065102647852035316558023804254402418921513954333894748996716442792946308811365159893099439381556623831291435741383953532150567561654482826013123741008307482052100022708672772737339487555640165463170309129381983210531210687479919308456995958191082906142139636198342223542878102428022017293737851102485483040285897788496144630829191809853088451919602296172653841330803442880129311236984362683838390077152313196188461136400280620723452405273756959350200406503902109608887915996672836940416168544309146712725438669833623032983592373231348150770289954005973060156919835543108106638122742213833514843789134484186837685008780532241693442756103143756866988144689090082544609738546107787859824878713356459994830648339871964964540368863345226492514001097700175206394402505271508825553851922057786536113183405952148347851722768995954649713198270471254721092837283998810062994445457901694313541974752441139054031590305089770650964124253513602369825874603392402820252691130862022822432614555922678370857211252671633791492930900155295697959695248522628855632097615499584488836923544863699706565332958799571067665381972040599482826403119268129924520450988032774184360940660684925648753979854687595257201419873021518315589612298005212731485495064207843754349145333735849382086272529601557483495278574319814083693640638037301598970667808950142931109157455450806565695330143868144495917433111555539191335514619490357574074765641252516691959339485677991778199207697030663578649299856891299310207113729743482295964033499429399107737731904273994415901333425177096724944342622711650724291252280709128688924128541139277427129075533972418441565230517419862818537808511491686310639562437493266421074146499040827012402227121632702651070521490695765202922658973283825330636022765111119613257641395467811002570848820605467714269447048439361456763021261662688399592814125072763232368417443000590473922146004079230276368641511404011341050634835535723997773526977759620938051046014302112299356294773075265577374982444777934237081126899470698157787788020648106187923949441035147309191561139018536638540039125641445977566949392460267915898902780854619117493648388306950095853439583672082602797416135979070297489501312950562238855768661900240528911795582415161148001594409362448669605714491080478421271002902225355946481422177711769637829387937216138358351211451494996843403319773569740175316819916406796990614781705140943774891755214195141821968916078222858327442874630870452688311356889561929920595165851889514989824826279669965035086622680382056283978091747758623966580898231198019771134068131757788251280483887247023935356864825564927852318690242050136355684360154038548652006969957760890906062131321151840061707851505975062493498411952011603469456733219752096701037039450397175093622956023951381006169861396513948085171925627221833735051204147543452099144053830810865067810629598349528007016775109501828876155039136054831284491674880242486592383190487377240079956074926771476132631179701206511269977284484638116822451709146672075926654281600489920606286209354005936547437730897883387736230474130423295092411375727543189400453864564447610953426473252143671549179465537206765479795405256942761930609717546011689196199245377673170473445898044792399757380409911768149157205015060435351127152055303127010133903891253400775309308592559890271621558324967701075017301746319595872526171314866724660179692184473078002780622599025759108798088457579180200779116906769772197395187550223908287727321573415444779905948369542841846777410102886725326113227024360503895320873653958415897284641308290029640672186974216612798323304692792121132969524090064489956903638228794810870483131933086359492450522008894141754532819688068643825364667316942664724997526652649996906410077914152137261547495293700143260626420571854674597676207434857620519539987960840248923867236454462805131135815883909695649828663360160524936662216830361625394272678577128153263329701521412134172590074173528644020452190345951113283579066803229595396831341087357689977360243404552468236611071729379725174274280563088941062302026800097409460430611492172420233939366528703314541908306843129089234501112566362429027692546629331204823393099747704316830552499424066335073915295963789144241505803683225571301429880864492910728833753100809225802304650875621593332759847980299400847238472746726715026212590906403226852686060103598780516603308020891926359479113107158373785642175735666061476360209606856520420642530233278013424148460530353544165972732064580582916369229854908202951235259496423236976645151438808330209110776271480144130123164373748992784993237255005574473771262678075276956993806934728379034542808568841307741775445744019488745836875418215441374192491856904514173407203776162078523377018980970453000536371687174981217420202041417080106878800144313225831929378392517838722614266302212198364084558292965716793682080571781556956168367803668795405877534503604020441077451399202326125785913487144063008819848481835446141425047196510940197005527429633026929277169863573482974931915110859575890718935832819639973723015831332833091032165343378816443584698583415646091389322023446505064558286087951784824281236486699742089945813234596839172477760304388341049643689436996700846757206630327252487906945558629296229329702573765816583293829421867231026688171910692641857492132141685740074501405725960180544599457796574188935441735526827203233777741008132421996426787273337800902418048541963745823590765235865822780400419126919653377966277986691843839367836854451507066222985305636749210984405820286019563590312216406264463680881482202070821071703853999863048234191713925052479200820051515548178032764051510034494013778652291359960523738156902379062185930313848240254885308399378388702019976440463046315789207720410672355598942112536897878970489296921551092039979912498773150470679962396235391648471031317447636716581538637052818771720146315818332929796333967434081298861800271988204446838008406996483485380572449882741052856359168853742071238939429812433754661481738773164340952410505632957601464766800967973217902873011416902593459654329331765939400287561532549590510648395960507188076164363444336376876087453353710651569980073299701314340827581610562260202016710399762742638330255148196527748607096008740458240587607801653819732367084272650636288070715532525904734798738016179516461718484920685125966555991865443278420097927722669434216043228885659404928036674570130558398796635216808243876373398454123609141041052926317691995248671786614033858798586323125011777621387595117798171976474194116818133651833711157436770566384250542818804005747973977110030520236747930947129984263051827545106427705476465509816981098300844346095275724673275714127784964633488105191442617754265642861564887381610908468845229958650143188320228586824374219590663512756277238192738926043777392176716768618675666358748312877823190904994513738407665921189528292613970715635369919659565252446516676860952689242596175687478089436050171191843083904444385713631603821047111107105362447046069421510425082039098170247442687591192123242254796474248551195756468495045727845872862434233088871914973864211126278758499740343834744878281133321059669844154797391201699730338009725308168617267362793160180934692230056127055536275499981859849346861616577098661876790392131427697362707408820498002188954760308146050067258130755227099651427018591875452815966024561746614765477109781238689554197381532556197775289449981801529326153305693054209193936814756818788418413458501248666241561811747868304017244577027538690797898683223369454970713306602182094849063561077701278917595403588124183272181752251610296746607253736152571764068691666026908215703891135840146328192448646174297242702583692225053242542043770518141833537606062116392236126337767591112288195318359572250311110681633596557409708884385389998413552508662896990495119860883177590640926968909182098727117971797441656326888970737112981046743806382825645025856100431704763730802607699535162185299852943768350006347465025314474317562688003918116522420424308655709956934781081745323128823912666077170275645964597677144985442797836117742597361166258001735411890329793734203309881706117263617274522968444494809966606561331168832382985710273659590345586407887192415222510970848722060468283699518942265554466412690428345733639746192647225047129112030508132005026273297702489295859211084334407537162290530425851930623661087609138382897831862602392136460812129533583669620569018448178666334055028494652824178370518071816067240337226699932333766658573716851207314768579377697074195966462617816383569584573288716929364308316022326999646085188499262775459858626039954665371064115087915397605311118793802957088376845707029734854316437739826331989588329745400892572447066231235490080036310080486084862098354662564911395967428895581977600549912988276489757070503130698180322566827040499672308317349165682792517716937266399750550548309221506451356962262668840707749363308486632781390924942340763655615935694617298613631273225316123459568517530256527219559343096515178328712545029955972011454359015823608757797521580603598865297602752915583307272946922359344270637938612159844742741966295887674221807274124102309890328294516737305932977588950464981770556470560663866396375324643696578185352088638732784206629833135918842146474583619660837944280712486753040007421354824593991390841809403028176982716746940496702024290147505827355183396850199829253671873541481235497287909293396633909204763278209074959307766660647250484271874177197919873037123071638022286138584821161066516061195748718128318901547892835489750760556848048511996650527469435730845252833886506593794343949024655873821941192355701775635403534811287907131517870729139375482069453173117616946987236786430375262756429549428953433327957192002094012068399164467560214459689666164822431406473981697416460300337830043847698862253773806184935429898479344587126867968015047065308797211234127944153002939226967491911531925221059445681913124568058046014373717590424653820076565996450724143450325382439878689202932397531064944978671283053629376568354022918113017744832199749652378688594338152289016145382501014414131585240129903484019380920499018538413266278192613181822337445833443900403622367494901336206291191932415291524968603447858356223740813964914687323336168599169341595448984007066806214576473340779493170802411936183257124066047440146850471197489445337176593009479875920838866998871077752810203882683149206279918579170803562642995304204876289957171270795529178634960823025999451428595587972519973563930410389744747463000974914936751775502509463538895644991916658146230998483266806659319080591912153401408210106417805300333691529804756251628296484736472939006529331570272732772018995450134383179391597853832155459506935214783962091554493688187203605936798590685977603747334703053844172255546638907907475884555333084426186666115695222513723553490114307744454085412096672618722987014567902197179101006511739729944253910705368481373542215487336496326736099676237479742272967333004022239409438914961610464353417478150293573366827424655555726825608622531919827768124107241340822099376082539720164266560448047761011092624905172959755024650366357108724820712068477582011455774943631146953273201748666925303453965481641874953981563680782576261260227386816483446226727071573181183657372534731335665770511754684724723479651778440604954472939554963655219922960040695259723771938624269742424388005909670807305016181928345362520276905755900455217991615347811738852542843834964970138362331086628133589394296271440855952270553856459491213556021281612788212456811588439959406359476495651867255649770584556301234712819736633124995638923659313228038858909284540493913803941013477735151581707114254606054506544835628952345433132649153490710396140182053413241371626905212435829919498363320897968644715417592104237488371071641978054223531776488622982402008683104229262681986456936617521082371883992925885348001400127922679249777220025587286294924479368097720323295814725808714025364381879463465171582150906952327233007022202935343997735305634620397236591773640611588529864893368592178701098019990052948601325324022726510722333311048601273006540099157766316281625026914125265254729726138397221996627723584197480768704765117708396676291374083601517186094306686130034757719047213822272633649150556284803995718288865690555728811307258302475867100332125348978434322173332886775804595743946483618599747838819574091959985609577861684850134734509725537999518345845954840105382409854433839897675197388704413311016797190755465079606566700862720997130170549496208539261404307252578135461715407354909961397747804967610141619761233486616363575330158063376609226406054447350237945998793360587709791983024031194498016222275560093054564194076315266278911214220407600803334317226265385302695510398215368223608474136335172210848757144725181622245403210031907186192363026648205787132979675948100650585812414127887949058676533113888731527112171452858588352471281007266765341348620339975887729591285227169540354699090535060325064502516760225912584718744595119005338487277045686128140428334396542526346520032782960682912816653092633453246869325148167251145634807807547643173266104868522400589698987732504138421070242594656756774192802425492469700538491094188287453494233728412533149689352983672250985136952665113964924815055012912232731246875756964523030924050451406410322204009559949320384799622824176313172136057446439130960883405230653181352997500233160214973564948103732139604505853430019007144686032710320766294797014432840141961232178889815864856990040144233606616405315896306162587914846097109684269030846500313503449539161151781093798341039775946970694007263851693674282936695010628544074808039979134351349465373531161462145917766218570125376235677324556425438493274432418252121130151555823249960082739666892812597020157875544536807079899041403697115285540727699369687760571381640116093103952889327816566461017765847411286795631025019267997791565409484143578602943543460031543905665162007203876538498231187792633618932012376465868965666493934090087824362857874405674536861683947270753635238301901836213007964739600028194056466160902717119975313123962791326229842699257334269556870916884206830077977828542804463353716317521700921116748648857584995373183761459826166813783160570482282880450451450621134795180775457840795948389208647110609633046359160617083445233262983636707715023998834886525283931328612223810498632148320743646458350280139141289300477458223086894286267452282910364268576122934340729929656539563338536080828405072982115217997414480567387996053915964618288294649326629626506292818552801424818362664524327019332864138394441128408973936578481885291910716212372560700791481982407787847936551866560851918515845776190560169887139000005165383801529880598743324491283082210318618428101023596950000018780037174593471218181113267180609427236455842047922930129208559885653418861624861068284381917006107839596564510505589373199511300016167812527014764395559143799404424323445075179716568366491011867407295748672678524966084938193707924222426398789901120431810721804948780659553933734471454577229009322442446057165856530309056733298823894552160672289794111574622971723329013452098236417880914044179899792022387566771574430272227896104276245338941009153749764073590501950040994185367341374176532548516674655593703914212996358414070434790650725919082395706281580094238724936281475909315818603240860397894795600266018491373222537656744342363425851128256454488224570588784581151270986493307652408644763825080461413103790274483099732726615968455189836522672651478306584552978487570287911076289077485028010196535658516830058067485455313282321673191306939938827466611160228183540869615725757212753443981166328924120266767521753939733434972888296963093217605271778959897698764772962507773712975726971128981934374806987002050097786492582377331363384469603079424165499028223961323258332549651836698164380784768304537563665718649295104491317560601330086090737297960952508179443985576087459087363944455511457445197011284876742580414373368850010930974302789504316414552272580670114424557773856219708499266436415004959641151628423899823145962567981078267640321140635269270892685669678029796764114623990975695539493534044673407573498513454141106616395675425731420452530304462455692498166851528385101561176696613368254166212252175066677228486772933608878409740478578670767141021385647021762042138388238166354642671411027150752912753085998628102591545588016254760298810977487899184344194156186920029763512280571979267109285255976239118552340963975779896387185550800355625487318633521225007512535357902983976636065819670406905725888610324280611517312380759502878739709570390424470990982155817099144984367098791202225315135634258028834557500546987018970404666844901595841736680583573963757464474838681830744854856818008891376979075622315191345526108081129057824729375020751569663382596910335501703529487843648768686004574930487286869917063967015816937354819058309534362389482834815277434183043821595170731064884167524873768964498383797661150517760549311515208857655773852879845060957634460617410816077407450622707116718314285364005790897723523403280634413377374667563995263923812177629393176079371043304629271894394966676033724849975315589756557768933652811735743098138594349373795569119923739020211558676980193822733955437222712324089715251862138598021785102335661969576458611059205745971058595813327410334099356973432145168010611960301772303078874335906876033095970574744716219389460027877233830834226541611413511573349340846282062615576435609410738508964219356851711277529234821459107631558810413281052653287091716422242315255261465164001398472298817453821361884653802745027800542865234071566566868428187817967533432128908034299007732179503647957055464839273519195778281586805684192380589836612744573172119288738149562474770507102500289606426505542888378378447409258228564948739730223256382286071979100850397354031958864776396653111284147762116156174107828118603306147122266302257591452044655949262807911335636753657756680736695345459698693032784683810764591144003878362837111185519263986161620703760597802936724599059016963827472633836395700365666585403391640382710413706618297760948762646486356712279358798882311985533564437169633270827200442534886764788751249027570580470808765573312272470836426246601740690894012713298395127750565706250897495163777292420570609410189288919272062072624124140790215970527002965294311697273004618460557514211315569801996307022398697405992783132152102655025470247684915960918524185678867562852543115009994694634370472008143431555915495928505358031438657903969941119769271857766906235999092665352124736194739221558196108639903546155585303733395142475813447432639403616727387776105508405558798901441253295323413872599234651588287806396414155124454397605916103730796349048880007925023137849255779033568761949420099582034182073725519008539620132210807764523805202726494326213012340470953435973382551838528626723304862235180028361594280750662926648515846811046809025421848697373312729829243469646691883741914101391345790771928648114318965673772826477217111486976327703170601699372589862874806110431581299689782206466896240364479873428379072585060493839774431374026712012002357600288910785177347338308013182987597774731266842533150705584006697227410415954248752135409907614755112398911550349054025539622519724742638801589748051971407672506112586043098890808698937343378228167857589115473316681106829070085046086868675251041095064523968230488565548968322761536691883192522257828414089496606458017816968582865718157130211724546224945721344332625193126163382062021659653463676583580255474357367064532608834668745954572281492159060135970235240195663133125912723035742391087006964608711183602171668363784457761044747999568961961083565728848612419961953126354114188342612934188761511322583993485676563067523489406496305481035618843861520520827950138414852442752925251788923401020511995797596334482046074687745465142716557766210717087410348180303962190455049852613207142457190236990444581089060758913286230109754200726550795859988816042232971671374282585185571162768711429137694075817133006450642822015531449806567916990024458607018854669057111243316153595565620027491016270905772797067437899470479453589313288934135656043796700623285523607355151935835769385187819720435167984471701099766298099126479663374597915255744058546391427336465132520015496788267399923988168844921853058390172435664036059476538967351577304065831907411536228632866530565315303353757535359705826460079078293063212622034947084607168803232333389274280881777758170428785105409314301570370615157394851272364794059589438913036008755817300780350783804733543078947762327068333864024295705311029834273307436589322543280600614694472551404209874392161247962449135487688926663018538548367524907240519738085224057728797984835236168362288187494299553039330766008095827912884099856341595454287989641232735808433627286146067079342831542895235128209433920611975743399335468426974566585041716754240309077994114029880964541229758913173452080587626035163697578906428044162452218634272714238992804222976640655498285837886932441517373560993077438647433894405806738002325544317609287616384317695625738433100398898623937227932187387934158405089530611167617552909712980603465165845897501977708875054242373576467771023071376883398657529959368352149709053142759494319607215102388456504253565684160012694582973324642859461704740036931808731324897623988626615544976192614781681547532490097646286259277150778468380619285437642839593219255957960368404878719822981359599791075008053043720590279918869978067070925599547619553484818486321995556424484810028104279302993269977824081435598750516632398960175898480865853352755343372684679953135128284365615371350835397721058304467628200021643097981761432707699457501348463382362329124847120749646421105757422618453164070307299184272907020973428256780146727446002171689091679027427943739840779233666781830011820063885922631735761445884936542969393469434931131456457213847885877097879508427026823931049071408926513500597076192291234934792634439268449785711460743786504357722299656836099926790214177236671567310478725927374265438928685438184004400289857883876498808379987475936164651063708010965579092191093222004369206128034518198132861186223195132152091594278124248536583367235598203583335317414412992224755318819406757002931159238855220915359627226102816304692917374677308585150937926981873642816191375939240537982103881563263492044604966335574123851525705492732219885215899101147273861078677901388449210595850586864823276495151451010347253713489721141484814491971956622872459146912839149426445898700670655858961128050034551310560104914335979440294648560056758026143951079854160563399241450464026782066966672405456487687216170745605779210869971038512537601327348326446481246293599507853505971322143418995288770948652666564035805363556047551320569365016243363759516381936362852506378324160029712794673108112848622346422584840168118639473519694833448246593185100482255270659730078429654697037572814739895047439841359949916454170072638353819832418122509324661768169228053127964894776567870261215678988711184137064986271870229899753005164740488524172286659440665914411943621732342063992019130931371043220316466721980225035593339018097138515242210876773660173102014353202261272661960592569575077049380273141343375585978290250373026903284627176004323250765236629720136745946181506669854699994173306654556377044174282452588954486902184403572972547957692266750585259270791639140251007023733939500523214219778704067483706211022109045890253868973879244543991860232833470782706058450697724265274581389619978719019816343873334051083518014306818126132034016174770290683519413809983093938747132168302661848402697884534400414321014419108827867645881585975521119326491027754496523688096106703997085445561098740093695305018740196576736430137066710944956062403594578097581470742929947536035754252372161284172411326250272543185970507277328975402622060114125585975875191903194985328224858969718986848014084537060449834298950154267716497175131735911888540470957699435433017329686039787182612998118367668134993415765900029657670685834569045573339073484549949964832221783159326134914601074920423586130768894802069669102875037962559328241918311497528418579437616971114889477374258965352399881139911559741813853630779943879769777855634205596674961650437195270764726122292101766734596025885195342389983732824327063162938089245870080124926484910831291870021301093851342788998919353814239345900001243184801664107829986428166486357970081962789377506640756889664129407671315736749956066454972687405644051847687884201771429383817981882506791452683699255052164314868794129258184341723278258365696187121689040304387754258681724792286307144143128685189407692694381928205389855370661098201603041318892666220095211956118201950186149715672120711629842671690405804014173964522520826987319539184924040739333235251990515231703080146874438541432553310699602530512381819142837920980044235217259628921070241469128950562365453374715001243432024477197376069836002460151128812088786890782241518851253434107202250601781610277818497727680348589214083991184997065892793170248057563283475583451224536479322220547299430291818084301395253553516678935981002909229106154151296034187044047371571698605367571619317089789381090063279522254203739746979765684625673424164793443226573403824017260354701099934012240091830873816539754310060958696641447721090683116155491531837422427376827407624705490211321117008237177149498869924440704803732405831088114641595796418674600250950988296854468030139725752119951687163447700318417442322801560517456789462713096809087157019873310610204746540785589741009292525630793051429009934730468721477856197462839726966509716246762103304630998057908070483248059510615412421322579337973023604659686009174549451542856247763861304435193636625636088222878680457689654154585399124714237615637768861886744421916936802798070591152599605230918995115526237783167096344674013269865288663244376832635494662696316440447299939853825251187159266635007741527272420813807816838551953890141862641194816859477864565993190076069107491643028086337349365215627619822653614593757608692355194872851174204209078251567504362597145501807895595265929233085626150804215762630761766227160474597876127776076333710704121139010560972701242836931166173734547356333781231607218315391825991547660030222207843502229646561561143974293561851492722391327740649813962854872655945501310868682584751570100972326786039626390280629704429655190565545568962747400679784552038270900001715956580291189770306499134818388359338046118219039466992296947071740711250285980127903345951506008356025945243205290249432287571482123672209451398873710446366794941986329038795211181955058061828737723575644191868326706246722004292059000940201046308637497565367372751654879998048931978676856118171258451941331146882714739790764298843194589187890625401499716452927805731011877134425664098339031048985008444470845639925388572887278852015249225338973267962519260181726687493020702733344277918334850262946839138146570796798625938017564755978261981761317549924801841208212259163948159566588663785991972507902281873153693558381676860527979829429203248943611516506623923864633031186185174708463299793955864098265412727433994031253938715486175090682170966876463583589864071378418335867107351637873482723055873153232722415634768680940638291404680160460565915421977488016246330257295471949211860547419980217550893512877807567375847857793089331037630704796372706680721078265265948301145018017365567676816723072107531454300502503104132764922461407178746487279416645961047741691777873359527853716127779345753329252017455994195033038355783811862163246467150590016551455702780858645279222103273182774835241411152706100878194049466323364480549285952494763407104577265537763527664961414016196558695746956732822803409960672298885672748851974071202689782156730835703776629234613327774734097716967109682863263854783335274522291566275860505382787109791289944533552958241337300988904760350487440304732295282553661009841332651040938792766583667062457947418609602164342071508642847710400884980719059444659787683825665805063849539401917292039003754350026775855381624031410734215791898484438854420525537135196146112257455325980101662797214685539746463230067394686801325277064974122029658770059969736400479058780789505389665394669173413862524688161250768601374389426398760778543679464577262690595775975337255409979959447071103690448032123012121564013301413031243599897535217120196627468565963796588803244476546763273441468641339732824540372726997081637911826108731655491364636004647598611320889611054864090362618226352775096883297253278063828601008871723846455246884607146837277318691586977737360651093366201349525233639372325267035464697698416900731729502072054953561156319007738884294675665209182861522024499131605454195699874413315845671337598258537739919484107458958692657033336350790548902296862547497490654134408552311512449144166338990154703171690927540673932076725156452852163557984620050623411554160303209994383814337937396999045629558510256623554749977187996893027362014854728140695020167483933575574097448821795482925539918967624972569688732667265454201419812278884918186529005032594178877860593959790816469466321848917304284493866562603256504410366960385107384548974580012783558071156362672245156109568149791781508529458860643051553013208012649318731105825158096809047460868404279557199296461023365329498786026313271830391322911805123225206807907077494824155811536133862616400813131763653516545399845059161618461764704083595727703306170997931376714096491118318188903810553511800197760620305446538452397400234884559463871648321671991139385262006444793217344151609922993382526760580739023944063647554714539030061966219287968833295352115380561757409292148475690675055543199393692526213116341329962283927352725067501612317048939237293260668842915970111461628648862864760731238513784133921573201434826538904824845261386415702477223604631518247281177995244635386217225381391525686330422538486881929746450891631017130132068016896993466551305927933939889178114663246410294647025503103526788139337186922189623542746367946855202072704593788505927644816187414258503924932133615942110355683989640271613396697350401572637325261329812511479339250629682560780812496356814184493540697739288003173754167583114287758874244445801241768605245208830142462608767603971247304265743127946787922532301025283548523810546059380900576719030419682255417186768161680966755163041772176260502709131549463968960781668350410381739124052010451261232121047511850728370265292009178118753012315143041709540842178916937583077743392872570033378157144864805638989664381244862193762864726634148556014780072543687386020168195955139437806674554422737615102367611393072770068097365896289947536672878411407283122684052875670407135910217175439272089032457282736797500429488535472728143962711490738937623050515617038474887436205024761707180281077214772940721990931479214196017938398113713817419496857291757009545214381241178167392466813964295181182649017610013176014592253596401882390604579718125818322216620206295954438060208029674479946221835084344935584888022665592370058076921165616832659597320384458673797722856920401147597507940562330289359534220117298395294505670527663597144833540558902653410976369125820995395688994247309566688494714337348859273998469777097932882774850755870191172021720846875736913063600571274830744925530745536361104232164240630991178075997326020115320493299283727299087382638015299637464131984697542681758109326272853631572544934526459913877287615472736238384211219361453041892523994721910380853418948433910459367475368904164008147180229558250488808410957880832991639252776543962220012858765316160788446534305090602392010234137804822952651319443351281894049688623397356136473775472687530628666576223789555454988314204386042833581180638405121197082945994797647521742988243353175404245254763465452722839924873739574285692390739436032837274941365192076879022739118835424305814026224570863803796396649886584057773879027125939082867784541278893268700042737296556513334351225078666181877449197046913297401987309379016371804913718707048408287027367540973671549124438545826685533303662264758549323390509391081568260239913850799946807579227963998661975273565864182364789066786314008123208148199735344485244731589752112101435248072367380888211059573126193764028929097282047336794089716430614963302540998595351601169746196488861096942252421062899683166870629612800531793511509225295472276348372127967353241398797334671762012017277617110474639595387554273575429745143951970009790616845018105378355208009334506287405789212749692163885258688181020204057325651295578614147501101464885863094967255628534429982139948018839006969415166509705973677451113479265020880006450453714552037945557983693042436552525051752125145304949081907891074879969872218468659246510611598094117871133335466208617866770564321883243455564890383278345669035809716297508002384263194557674386314367883227609364144597113298599122391641291350271611760237118515582741125672801109071777270606744464505267080429388891212740507710029868087272050656790417329605020406519927677860425240341829867440544270533717386396772562300609210210415859962375912715640596916807256306500821137593280854800408032519291617422649228537073354470332293392073216961563072886180714424200813469047985632509300333477179443593727480368424004305061774295342183168553272985580126299744559433195110628040140366014180654294777995220942535762395485913606127840515147340783913132660901592247281956233789796156318200080402735536806951394829809913735434009152844631474349959532116235462736637598876036242718656344974488427727545051987961078478518018874408855255185132050544318579797734509454572816640300856073205684417355024783755265872655724557228284005308433631578904651430538025381502555119450173881523739457715734381424045972708101339206207999565005623899257773344330557897707552996807042312299382236694734320953558797578335249092916836050850350064713470088732299618609360519994526272429710212995203405110089185295080526681189394754227227025775762392090743310611577036327060556474845810741020078600467517690047816893532872502923642198347269294731838250069744521629570245405602393366852310001680706230191153885944939377438405000304358364068562071483676560759525252658558808104532079133199995452839404253845812819435411356281620914954727251046662591303661941040005476051896814839898530751570739140956334439376303404714910889282087566152752209399260552160124370312676299630496697514110079624707933807379029284509156150006595673699973703560318779733502670384955746251286132269506859454399838974394861604239393782899209723724901008184767619697749228392463615085236088013817820163046800540991980233414469099047877865679320589442918720465724205897230595856764075703691050017051729343267715320414606754123376819512199410655900565628117878580329513562790269935188029049165953001078415978977130618380102819651163657377212044776849720451613126021301724381457241341131115257563294360540698451424224261647457624508539933672667748781872616193652135140108948651392551066911636507180530561675475166244518672428991310029878883799473169638549343437839280974980115875833950731832708060322250315534345629942604082139027736087755826801211018904418990237469714370468383946775779381273215880858212281653866072227566520174043088781007338532325207397339746036748935426025406748936413072850557981829154407633637263698161247295667267932222542328579110049675182784295523935648244063815675967433207287765109761183673789360216773815568367728514983442949487833881417117456750473837920866976334267039941892028891387751986309485516113073944836777873165874307705798321718222174980639857776716718661734445756021481265491168608782541362716331937772457441000192828793238880191214196773133120411877024513878297336964843723596053372015727387208370206842329502323723134222390589507705201820823616287960515719943658052752477450889745836995053680152755982593349366813217259392649413979147779596551274481283950514806790127747797719509198576850004499439004994294675696906897958930135107607378966570080119952476642752666803957812985376459632851072537750049708240812336282862007537347661469312859730098544849476521952776038363626120557503620898670346563630829102690628284290393604307611524511935430477375016559153678975923161184646808270367618038413422942527461446610675369372561935900688911806453148764371777993501833312639249655077581789040782288571776449495687139797576485929475302869722093314745939218340928008201126019923660699471706872534107705746537885073894726031180271161458834279424013737187119868759056246697627211421858238705281748791231318980115621383027313505734739304552249336536660045757288672231442863886262887160437149889349069432504301473776923995432155248469359280125968328932206955394383069106612134832031598445081216706474749752195814977819839235453573936298851191860483254254799753341492520085718549686833070153748711845277984449167848752500387429692755205905851722977174360500018214519037206585499923240819176882197007313856527017832083383327291816439153679031643169907840917122066585211625528731704448802171685668632877013720695211549576682179128669807154784934056067839505199724446654704364110032827647097653700995595964091842547627425843696090365360520913995086186092508440076780197571833180274150094692508981195977619426007718782099083755762885440821665438336296736073361799345091797535766126889399926914759900071909905513234864277253954571113325695075782203752193457563551379604197539501276835115013684069694351338976604024474310932540511614654456220834196200184314159702381156168233119317754712936400379697698487439192607427166561467881807550654356150900458024172957732570671941900051318275283688616863906252785517087419956144138118996322123412846337386803957932189042004923845872622579089511319551109868186415184072795770174068925679739490696151820573123758204389891245260797347704693363163726829451637001854666120586540306734587448449657235601304579543863722944715695456618416606374685252598036582871555055208724665682837877522304600972486815070261360156495883477081719483172067233336235560913712151583433753554203834528573389407011811768256956166818226027105125979893756857739571546102433832071603075072836452884265993312527504138341732544473143645145987872157431824793516677051784273617548705597809561289360739396436563389183005400931775980440244148981120656990376154387566445002194065595793658476323492701785166694222096958070297614218067893647886331033032762964472611224520455473949877026103847373947796788183411708535173599327806876313013412832772423705343681758918009077724794471864288699426513990204989509129589219388624994973960099557456799985560754281259178579138286192486573357212727944473880708288541891544842436321949093327866590711278584089312103435441959318282380269671096923551416404587531523854634296423008832471284259135589457448940025159987200972789686708002752521211200807004067421058611689153872151469737992061793562941475862905084288050714807857738482369223942506472348441189656406506982523419354725851517770533507989163253073726094907311385866652632079725343272029734260313309342709955250398986318960704721286996945892088362182653014873071829087346103168568802170990911640436091556731772724118342960715146875724507645346527353243758992427831429975868707767278029110261985076167335758156922134253217128696936584760415397983789164715316454465378523629323725674691828997526902295497988874910841545792069975613925791735315428088133119844540096059804314685494685670616050848546905754170396205419397335667660199742294585931071641227327999636773852063220937694005835421689337393731588223963913585961673840979068452523293134670202647202391551789926442886931994343015061144560976797009104669255103805660287539136131085030966553065428003194803689007402544102696881551139874460372487000049157591619299856985313663714356765426126715146448571659320704421884080219625741016044714531476136754528078883800195596912928088493840982258407087890727329779376244397754118189751464066825120987762721458932884271686602382201012426892309145520295307497327765104833526163009548703722712567195864988392073348904415323383003733441997426069631130986331851553580449226302695624051537119003906158913319739361700534022424881769043478165531524434706858995196898587670691775893226979698292023005053909385069692732224598171400352476250342529095403872341830588467630273844683807810130506684607273853012076363535726077443450243724559139559458465499582910500232339078119140871647214675118363935449086316824673587602802323165042616645142308473147859388549250033985715180191026855723026917710430571724597567106259525666819629353868195046286856319691893176028346963937311511844255282632438663696297172763869364870093623527892722239044320013535136392049670303008729240296034794180967066187581258760227669570703682247458489387749996612163730232450836911555859114292855425015015087360820407639376449589064816920023707161957458516044997976883179776596901018306805884882040062846964305998914023330072068686402688455955234121245579619956154559120366320545016361170680422051355401686348647924263022881557239969230091258392388445118328239121629689859547621526553400523513018097706871176551784472324929755302001134888171166041593265784132680027695551157995211113042959054544039182759547155035725943670886152623895043988930483166498870416498955363336635674650094285345692079220926548887238417227254880107615594144095047394568129125200424385178283630235942416013698134497192790741166842645205937586214942353824069367026895941728910149479812409111288417184381032170410466648977559710675182025722782447094433061133000309691281159168426734065293962968323703715589841095119357081303683097970744789521302206616449013483599952541916347979599755707421790591509531924852638061369337557889601667322740695671826222473606576529715364721029499358693286618620577426991124687282816815021275308431633566580939427713796458667147711916786187129635342715192752879511291775970125638316725825427698470457429738584885704667680197758912166336130338008027500746119886272333245513781720425797546462173122331438160839087884183341853300518329498523469331789557337359921508830084760333033093049600797801067485242882632018166500874936982084069108942588819756506984061422195926658765577550439673350270038387330923828421952795680106715706906399535631809924810090393220292124392761452710618747751199614833033189234719741489634397714845652927543645279963606095852442645057149984118193728408270684007469242128079228375667879954084156366712400142288685373111052382506478365587040698539001340327058594394162677458831610823823459976290185411953260610455061172679245348882105930781558542954667563839033757978288245658790649262321816470189490924012604446206423098106307420963972396170447847288311164766141040607888429153923178739263441881334652963766658387908057479007722257050459813975799040404332573282516995141566772167416737570400681864941785189369493445939317987027863754930935055757123629363653028334327616077186929069971837605334631734937722896859461884577460808592257617781212551015075001559099177556681385557836946355058771840168327612329082936339891423078387772813035889693777188127620777266482298987114014466103722195621139566679293424196929403328672708699608686067485951658766157855820874931166165821595916317969511108776879574410245730111292576617910168957383596888864514244787153692346669692765820084120952930102462933947435082222748454299552775427866454365191500870449484173755953379580797222291435701780430970155288507982894173906780772221587939899392690579204992578747957923922144048502342336285183210485123847750682319142433123557838613786434839493636993016026198216149365327478492708239949025969498336203906201424499791629135127099317644457894773798710365863537810463844929922700107061542011480550470400606380499762060985330443817589678216497110549559060535739113680994007976762637576093108715060137787953373427465490790071152549892650183362210382509886023917907001420946711805984477174662568966075925073681773848836485408225911238195097886134151286610731763932927585666846309175883095535265700505781567937635073059743386233260885470534070388030964149870405597654422586053135984614777543185575831651663831585348124748073653300691378591748864337864326791295886514454942138740243762994038821412823471157582835488651756974996359739748624204290797004588675755490819165574405759972630879874153662206417767061512103217600531233898933338341887736257174240483465897077164550081853265833214680776652432928393131519453311477913941119078450309266095296894636027152821614325087673460431186047881022991601835206526411570247577356186026326783400244711113942555773380267133579555378873765926523353042704869422983247775618884843323731693099072551267672936817022976590987276370744818480430260017711899523010333548617628613285591921124928950880107047620029744680291742386914545713732327559826237670936714295792405511026966046716921679794155285970522414626114656428411000816151014930865793403858921868533992576675548240505352511472765353207774470846554975953960946125689630642193028356931650470513119094195380840855275621594105610484365259491690755716133974997513655732308570910266126916142892172797984934502654313556215252162208355170200655329936351634529710324913548672765852631628482604844617512280745918736696456876584741495348087567757879427792777454776380966599019589958253298863782940453757588219645108010216919090873831660601354021592253771147039540670433808336635992830018660892078972333806345638601043655269718369548036996291447866083084605040220114231727017286981726262725879474547572529259827694079760410770414691912888658911167843747447530831166473518086881504013894284661941226611204420396793358090438873239528582249379528098705386212026235889873019426189011500724403532049942247814853658918815404878926089984508082415461950395544322014312969597673288857098655755229951354247730690334315304788568138749069813644964355039393826928657276855441490838948335425745997011519524474359322023948166980337836560695585056276094177376259179682452407553849141537977851845830799034402709122399608219735365551284049932991941354648443144620053630508392154510514857981633083289010049754633878678223036814007220256547280789115841029560465316102266582168985896053090958296472813167958878431825155191428357393398818925456450404736450239472728248722715951707211808001417621771676728039849423826690111134477740073482657841717774242520720899033458862466047395632554067330368665652580474848333657308660175357518119238080733378052992950008912961049249061665573156066405179307043152995598449117776848003715374629539397991416924010748098888957002569460354453070113691616781526997167113760381750752267440394685373791576848099298136061138615972800269670214607038772056443699908970931807398273165333305234454240029244478523145463765337674045172307439865686349329968865361706803575360188443227043720411751087496566131374576088835877789219871871956136733392092979113037701865908557764933176300786318848304459421843715958319900451468978747233812470876676137371253959797961007667257392430246655857999939222682209146935090505499333696339255541646578259351060338122848910019985546874890355709918877205270761412730772402148023557382719554318254660307190339882968436811701095407613492575073389896534100089374762936583950464174740141445363440047495326476958388325015419182972423276194372528247565231808712693708339670740965606226143314313069060876740259719458391636048243368628023533846715519294800091627550577919893496568915574595797280597714616180869174103491720496457906951437625089792442838403703665507564833115497098389637769302933354108142710141084563240929564573188409606034110649461577360530023632350378070954683118332750522312689591616431486325732680907716908091023233030497106818631721014861328209003894101482644162358542770645254873169620925819469948832083998649645911495981487932810269745761912229446497567152151641083943378132411836742276377688489189417725611035506297597023547588587122654265781760502672600671455644009639998883920202255467759099880819306496579449726794614581552778503736355351698105781369865762283325379765929477478710566576829826514160383226275458816349530257624667439062444080898721011438541146077376063056512352144255591612414594918087460254546253233787642170086701237614728395110162326630942476955385240597618073046746134030452431106064240664527240476674040410248666590268856383962583311878333603606411107416824613341345641645743733369236793782841029165368263269836277744337383639133780922048232066474193045024626910482965999777276216699178618989812391915301247668289709403234330912331051475275663069043542115435187244545828719740902306515801817083351493316686396243437390359965295629215493170333092559721893904968046263991674120746687742014664059578678542820090434083899552179376298468530886557232692915320733676650063711253047262563577889070339669716789023608100202196601742063371302890437830646483632272084653310327662053037395589941351661785133017146837359353127966791916259408382416643692506126855922054951075948652912932132941751955464231079666676355081937275633197949147796207824076950707975558243581090315342653059621319582126899768288344399625374730336833263554953829253349453586534621154673588067751502878195968224354050176617664272403502248937750496637779454956704704987322991086655361932981103320634730329891088459763999313967298010239664768419758788100515579249334039585367684167037949473339441924739797993116100341861990501798444662429768781686795876148314798902359036956887877597494733594623753010398940705099174012999690676704061734062424191503255313423848343681568458304581298072577212848271360096392531544566604157288193773700369829041455396707900318738149111990072625650801115380436004038231550947014279010043052604923891942914541264031395387927664160086008874834150449702931746593574527683446851500536343034652511002484038685298801853139297583369309337191770663799353047505154959554318488654730846689913296292798519887834191614275387845058836459359791195331922075872306307708504653442355041175637941962242504717992284509599665371223768125445965604735481883037757665370424728796242083531057395572940105901320707179003111124606191313821530383965252812256600876347710414102905913766208394209899872094885668529171390890321157638328332323251665549681467876632523102730229773066503171541699234669434527436759291554478656717463907689640683594731116925414855451039296410779171818265030446177102907723726106777138042728551667424257905506916698914879410751564713179983485742720125404992554249112429420879658772698748379900690614008876568679815871758669021169079761809342420534135041600304446379472634836121578579223347182096723108637940471362163863600114741193037578359222074972545283800483823011573991463862014796293646412573727967908598274323511228243252275180753973966874225997799068161706898075504781342209654597995185135915457042804579466455363088278287959721321367357304027032298968804765356633675249123360279528093668612848950811656537525429797988016749890664402766074775475755261072233712165016740680393273900599768124889852765849609232900455741608575359658444912495709665846583999893663369891149211073775978581656553937783018228541835514633028782805398551984536865175899187667572843735236271444771657775906898239393668792737555703453766574357634655075162967347698771131074610551750247831106352066516266957313198475073456423413829168568825113244105775362218703234921814367919223623653148027155133180850125307795040551810009177307936434249105191184039952245046247532953242537740570083731869682213579218402533498023370740224614127959321025288424742838230697516692522744236178464970534389255535906822967679974818714815001143349087232490143658744061312793592341600911956168000333289816548656288683665017157511302808293131138656329753497305994948033321841807712124342601336487570247988459238140647332790557279864502710507880138939358448096371906350088813793569017671436185476673377100285902321268876949140150726010941210245810585420672635081648237583477420119747440895242378116590200292153350112460995114662260133696714419340001007003867296374498482199923521353148653055620385231123039666993660516034047027057076862403563638711065888961711627949199749461379712156801836010657044144351156187881483579921041391849471740990380978882802012274134922081625021724717302992109570562780768971389870099174705878991047265870237343313375408526953604011476547128965718959487796674018142611089743222889077213002427603064881387998168204913688835766688649113378918079018647886739632042376388431844725655279517523107293651300621523584027105875369239347026001679104426940162601773874327788673679719205862834041487768224225211764424396948822836013400700618254212559366974032880515619757284852638194100996511554680102926800464659396945194944008651004249381962878119086686249837804382480725561265817632807405404542117113233699006086813671477494887638781734939089243375604110695257090540603249877726796059100534912274205970033709232287358501784100230153384956731323084097356869510088186991745440534043932726340134879576272569638737623965182003962921700746641884695742712113584238122894040524670331338080019435018101027323294939619491666849550521831937198819010536968147176565974845536815300479541741651122304478878421312562504256981528795693598273919174659880625104181972629889888290809181183788580621340826020120522696025320786567117551643567992176239719416240837347039647025761531543502258882058262017316877788772400359248309492507782931245844998803736213483468664058591486587067755484647786652055887381897101800397045315675124262593771417823922872934100668543012019614691489732786606779914849855706630364432437379622442541170383803298477495331455202892342337864510154584047999258783435506633003569811086330653925195442724719143974335237672715530411023702287347050359451719665006325014889103224555131079104697510015402304994983005400199124579249871840964787700632097650126839002598725708834502199123940631983476028120846663250151810361363741814300491210863311897332570388394098759981593669073145444977519577622758475091494606564862047174311832482314012580122695896502053606480722979098626613505759243113424271369603681245298649353676563020042255401902472165414944739849040645436329556047614060461514023547317096484644833705299147102039639461915816859299987997429364512577612390667276887428179102026059097150139275777927608324584432808541530053392493880153135173549967118776179772993571353283686093482483889697620668562312280598332885375893131265063003476828593363540282330353078774424794805315316116683995031291322495598770478993995219527919384439665007396232722814362621694253066745684867621120314736470351282456629400438462713845439968445604075159314522574230046613764604787582661726202698368298295506532073214668724026220814077854733393025956748766764684796745675897701306072316359770384217947726769587667849512524578015160044892760882510023319447803903832660122891585120620836409833186543578421929860979306254855434390848841513963298310504270358654748808225390026671197103836529344376821121145899115725647102950437934237880727596980242335601187016468716414727455169566558030381836535316309282504094225764654635976956424867716656525016008632867317451121245758364133929972615258804611064026395085024314451931642237215719558212206694846633670358783859980288748156584206587500789992763803879809959315721088996944056011599478167196714202539715714616115536328498356260674173369967644594259678979064005846653540649795597351369316681125843415418131347127638718052320744267493881733815276134774773619449266748267309736660699438191911620932719849441967494136592528557994555536020307906443261924268209268586958554024728145168747545697966833092871672025789335222018495735859666810256986118871393048661626604821759239294551697846036827121062825212356377462546627940638280332159080731160283298997330439548118403485818271095489461766376641518895920592786737187675469131075344503058451754929537491471848267451552068894130524242077695942140761001738243823135186731408736006850183889293956631983324991848059009949836052705932193303840780826064766663753110565011560928376053891101446731942689885625651682372468362154020581015745968687399985065486486887379515276283617110180427645358699814901853621575991665991809508022151077614390915698469909345496609259653922656647709594604019954045892850262659623073210331988549079434494259013220801850455094826622814115236983052963269857986707565201285189409793751215775177545386081444288416742778203691486267221251773953043927353461328741544276779583388153352910929003677428748036116324750964608797668839399801534139959223394829097316154868620000767862448939698425712555600622908714288305222267700524433284540137201678677297568019935738880016384250522776716792197234617526193275638893531132169513686594379277849425270609415595509981417120422702563194973263102454477468541344306974584603213520951944705335341593483737653098533986052342800293176151511395999100282346970322137398933842465470554832727796632674152746696789769586653663394890532410627528357269862495976785676585151932658196215699266361606151423710749254819742831072124095551845587314981925009297182218887641613883606457062131899696269677691701010057655201155373533236529368975983183505618805260078109765227565573351052988985845370391442003475017611689482244839790361458880507474033953565460542712087708325743254774619836208312544462831532646085837193376249687499406806577527098246889162664045965984143470399614089973602536054866874475922887590205415527383780462817469481673288429506728814616803033608956610722639646332697574128410501328214920913936348822078860682603995027653833283010841957562400531736794251939129696360665043685822198406943457933258138477150976339691752517033800598237261007779457761829813886741322455145302209081592235423287343957863598746719090830410676258415887008900957824798417643038050986811480646563158434351838243787377127774496177559314967667716850511597711344578283754008864804856245136726240761953812147178120804432039858578333972860037781281124356256007862162148794989761411096245007779042915879226461391377079689858796699312676646257222830799083698536327952090747611756514671908338724241251880139253713528126359575256659728478698888178781467557970052464445468128498089322781772797876359597700564285517019917847879855808552701755198372894832733339330755089880029089026030695739842212983688995842047483418573041093507815704140551331461615569709155117740401388597499408454083652378584833622161096477362772154594905416712666372585601509778955662969574257634655357606706589863389458801054506305443190982570500289547879408842492784673647661787910732956873483448061664693680944134896083959856645201803082712264438007747585828221435967569264017669647856960129018396504313759698578266728627731638411166709856817489510880456084367822286567699512394253735424527628178181131865911240539714168431700273640660494314293820145451987892311859641108652930826342436382113534544842131109846618059082096624779856273612485213868283306786742683345667710917842699279027997215724319377716572565993096250711362673766105226144318423109780265899939081351406906898971636796997278771249904222932010049072370266807642093616491098289588743796813172679496895665472491584134631907801782003055304108676496190350367737084839381313891262879779183468657707052989220121979825231240337519880379212917142938087779526020938070994795251510398578674881646477099464586560429714126264618918143344661753913315448794544500698617523516297337876857038706139465975992590547637518905998160016536941028631674328715798411387442143703486645096788045004913728105330794007314525536469643346599382987162683612691104074539481563060954959476160573520676517571755662272525370389328954671020886179112087924054567571527722703561108193449382659743580560950021317385961360728840833872126038734618764925566572778106798095245799470978431153617401688092507135382592610405238103059073733907672794572253546442026170569813531364678697769017302630605658624438621699472602812287783073156230746831847544518347507404860203229454437955850999369339249629247086613730870021010840074603093126113118025256603574640859350620007693873637192796273295023370947773757077822452006632764588688030570892839139497562474153890574400621922026045660674200696598802121343413133493715960166632855284874912064020822514054015136878983632631604468672293453973810880741092291366672753396721152294113872091255223007660028700320233204660295807644599524813445170025258576601433528305654376770562284240861581286700057875025963825067486429742708618019236148023536447042951989302554511095825777484784883511633469725637639823390414684108952896116672624939568958969585842049028066673873974122918599660096703478332436760394924506927939398708596712971717995769263509500855547471749527537614981979857139701693503885290468896234668544882710291136634976771284896176201559111218499275961457819394289342781413472318949986097371268666192106408482802740643594702877270008010042946259590237656036112437185592571167545968325548813354726315381065456895323861900195441943877032330997483660164729711188463405577643079008092685460835753371644006595822955960180858006304360349481616928043909527612338150516516751604026481969445354994394816299544580670235914215980454558841308716630472418764232015528095332480814613832276342771352587471779234261956092219174223073936262226181988746325018904617501192258125950455722845695549248984440059371510119080348895896133124510176366368932345509098067224475940413072925396677579208175094091535758519797942323897662355424953714464858924058572777529772744284149992799445264419702946190054055889714291971008199333408491383563172120578664198721252347335962231504836537147656242128914424357541881230331409768011304884129586026642008198069420787921573457642344644553005523571757830655407146213713118096235503609684828586963772141625807137730860556829391036274054964784273958358082930285732528517752265948822730365815417846821829717473244207638115761832394168237707490883229019974761856757537025973708492776991997519638749747438671642859548981951545070385733496950006463572725662966666607529588533531772440496158583385389677022586944489742761521325749507394770131170055170680825449906706155671672560454034091234993267989863656911675905139856569795890616348495444279356415062926744668915399934207894290178785105985290832638976832181646619734255877299370176739596451399647118422823707369893546137630442847479929434687285692020019700094082615298510285956127629737311948665802963887478891448084834607355442204746904593288331903853033914028982187324546889036387982295311485224742623243937571668959302788944156709675440290608798054950522101192741800902225901612953219990206371271767674439324805315819757568196043883638110274180337349782870605566826335691781136164131025713773504800979981341110703535467314857340751140922629340391579660039927067200129618957336053947869046475080816724860849411999266434936286022436893631366152857784883526220956641348154737434859387688491729083351855301375727604253806541299104962714919581664544330800296815908690308897872108820117763064754775881988795500957445317505095164594570924559874815438097538622284782149608001558529328085418091407676727824427890709373224719741387952004630573374365252847777255519983511283504528666106101368796057361988365383764116976907667730080127822653120489279415992254253007862251999176655742663329213695296253389801409138301827502445288398688271971221833794758578179761380498773236298347904973222489509532362222469376119868382107071270668072366822903195755950663577288150106329718281567339317491531169040894417264767261308766718797751126495475991169228884097030951444311506312680813079667188739895191363593789846504850523559234867898238106254369678169839399908578720542662322826865179754533348456600369867184424870378520878556065476942118603066996642364296221378590980328310385102956694744589527665448852959001190174782172601075354328621814656901587052326636106106653848223060351436147539698267976689075000736177721438670752562628014076498105292668114581132818143279451908471951507715420144047873660899703915979176275563913878664013158201179349528178442753183619227464609874604308813496512230356665544370895014293417318119792378555172010614701675793361467766651667652042073319408386097933112402833323917753887081909808580194691952370751441586320506675456581332338513342623962388986302871870084581767336821223267436446272532771757352178885006195715312276144782111165374333420001792053101504659608391361238147256193714997206887499488427234019953455303121867555721621585296534206100107770917083213247684589079607020269012770741857684529885849768613194858043681075791000131132243304276211602128541522677421330458245446122204211263045578277537349558530305355441808065213065995121414880111059114019680622075560049295997454903233101841113767810183816561808664151388819096481205584145427957863202469225130201583706320990207564696896836649450483486577080936702629368684716256123950302567914209377891099149961425262247342627305444698690323799968633615375902154770453211683270114168464963926862399401692381766070892711252041300142756962148236896270923971713122915850525957313858555757746919052235205577431357508292830882445760194773129398441030107058064970016186424209796745890938968128017877360288499472075533053143924288570466460354688664244967095750182031953216335543733469736094676067564277633955381860727228547738393900612596585526628122390482573701219881207051270427299026655356532172081952200191137438058550985426644460523361636663341853956259683907733641204270584808108774774599689358670115569344638004730514697707628695861079299080523606063665916037631787083870241923702756511530684120867878474904912663633023873312048729343845001787700645284741805238472050674488497282226594132520927838547911192530154001300811331204676160821941589934526796027337806951395895437571980993170340430489799684413690370110575120544009788295078194654659912852185616780118892154101918040642118256142097695055137971682335529540294266051323180597609533374458301095290746504021184548753377525254450091891305216229932929872560071345477908381616545204655764028446482518730309165825565302105613674791837935113929151728483247902715253662043313798793327505139867881609518979095992651305996033060092819387364115432229315539756873366931192637946482195531273804694751439806377380430376166575439961954039092770374779205007579984345367534417832942010793212401511468510661885921889323840860467648458344511762915129020054466372730940868406398145950003622733808928164447901546040480342472168184163450607588725940986359968417438608607263734977471825088300575784108734948322927132541739745196733820368825924265778324560763038393445691909646806954133322140294904592039589685371528644132583980385594128465912923864361385638515367123108781236816926802570307933378823225461966166334182528450369948313475280448685605971532321841539514837481875047361291477319521440701579373176486110167850200240228591857375328793631819050431910987266105495076867186113727678853747379135954755005993126274468424531078891586553873163723663523468446093286918430398950801565781400497231184415318858037099771683198100265555211189230149954020626298782969973241237621403728039336146729909752939226020140336388940820869212863925701346899546280189299170317696685611327499185650403339832490869641812852813402538581223561968694588372858374838477114399114820270408233580303657153824278614219665345571158619187946747703676558909164027772975086252872897604986627208906012741516125402294765222763069444890034866861502358071912841205236213164888516693098648391922943211669501292307802035927300754754793956982072304352583520689256730341121592828777487718360669698015403517602349436688035830200680480771892769956981083006502631768329413162458083071602920680739853714120535059413054041514259720820635397327428133118512986008764100210077081141397729007907787693239796723920211759705477022845089445501004065162060239567050990158011559272514875852095625085744763037986413623371267764716027238711181540144446813050706029696278714428614019802936701876173117322169467821309063022756574504328364143238577326716009338773381702037812412441020618929843945282174507913871385752658770782232165127082753054710693804411511531198479690227088703426741753247508759145195674426926413880203449952879776148729792387329287927759548838333148335590278989422087251311104532151619303203910668974592440270412556720624014859699803293844951755343292150530424485206418168236558738811382214561495580404218663517752249273099101248314287410145157664045840147525537356045029146598705019399140568651567577928324707819941215674453935694005158875285423686194883726485223239164099479444090340044712158269563200086542761276895581443260556038185623969763240826414038994647826089316577366882051827948059864782981983598380115216616149061006973613801391349030375010489862398332899600400789710811119941233378181467882932073621535443918825852246457481289048203817433277759858997763839232030284444068144248250422228433712574407454239795745883732206416605609961692328369669392723913197103226879075714643235987988097123129295837055283229670560162632242780071878814581728184005754190187304921616722776919445491971876277123688442756198653333760739655378510367975516685598202137618569345635428961473164882161421711894771817482040429713584717674191461275583054574501098465208596479617746430880632891183746393759972948853674886561816315889011140385514459399129938218959096089039789355583278454864340378176396817313028890257643987442499333716680697122669291295180193943464376181656490383776046796549645595207585942624632921242582046557763347969092139666417430292462648702832418908618011279661158994116956145145026971287933324347267695467856400967672715525791155067840209906699651847247016039482635344396850440656433021069294711865915027996687150787609690135477288351769491159883338712139862332031556320262069666095942933782665028355187980034680352166902489504356652744608613230838496478510444228026914271033519617251211328195929221861586320195027298513862182882462497900527725801228747022546359872956242546881188882369744597587261724882611998558022697642211723733843961553562442921498347149088933629019331041946416895148379804278501559109196395544042827279931255422167794545340052883715330966756931093175826352103571589383372618971987007293258533758795607078020241299738616375871983994112339253620860243095136702114043772873434885177640381616047337517882905158436071387155412916906652618063570730946244287728739717190069267231351206114642481040324760192628617664185750264124248233252159516679665670753183850266825205967001848397905973312289103610428870459197067516758151078914588620679515776626436639375901837998336561432433456044621234400383437433073087608403179659376907484886426111424120263472931648980589260903366009659791296822852192575428868511597512555658866039109855293666234437159621317303642909342752259656745517436143659796908493775098478986777378346007886929317890554852168853821572042883010553194286484734809125704711521568281649045288294796448399931766798900314253532392524227313548160751936114579718517150170936983630178944068973254197139138615849748961093244548279199523461615313184873609520455090461137498528191308931827331335205264195972339667232429316145799505554631770256203456198628183494064854013286789728782756695233479521842275992633414301593964713046029513838001836045357317701774570763061433221799430002250007678016937990311797464244895847666912525465196736588031014426193774460992394626507674437442355566362367842890356656660643359140970426932352187700726013378607094683455019813055878764613929052237984909744455996191020587609192323721280786666774480398622570598128552627373952768644783889634106591536666136715010712883362330248509576905675859493628759517748861945005869368754480101622405220354046042527233918036512352440686298969247149227791702850501512180753244889862016878531622148501955552460162739165307800740797410524232525391072589042255231371655857940622845850547688663896278752296402161706584945079081141959946617247493946103720982455656951489755168685197205534207278852778211670273437639153065296604982236182069010124822753294127409037352794569050165547305814094464589507666239098397734709852749626788403098398208376421101609459364948951442891361085076540541947034193554592780859033345391689069293484236412708864507668657425720534614152103107210177791832630614688991374881727761594683909311171592616248192814189794261292841258696563360213251677982153428260242535690929611118475436950960772381678345075644038168981483680033118893030664826080155685746953914220267261425068815258536508818875888118865258011236412393670294319414499083207289360229561672505609695443431990719445005062649193101939197563203380715273920905989104278837041578741479437033864575310519351178633623021530230986855821771631024418369742429524299502568950499675441010827187062135930774791902691372115721092839179895551840980603632132898869870084346505831008361418731896505725894074468014022304263389027975673746969298488831334741422257293068660504375034565847368123185374196018337853224963355456536051236043494487821496300275636101017150504104836050669415909835194892679935151841202972985034842204714356515770503190267072730787225623686877566733874891167960686972440104627634276887187648915048286217401958159055035794971137284490892750748517447256829828113423567680165512192927506484229751823754046542943288627821239105678489529291372947854879026328893126869599489074746727752538965870774610079769102192833360776978526764287857337582911049106601160351504667373473051661058344817328520945806389021340202369770662375157855579116193074871193005593340588693710255551060980915479836624258130992349491828537196978711600275363668004822437856713901445614342400857554568486328191882734848835749934082751839343220761555277825802145873177674933603274862108763371614222976826614482434109536405645325440110107092786445795981641369079887168889524505995829202819135134007272636586431534538875003593603537278821065373375567099991713642458622486387940153089392258985044094375189370918577778115851191119345185587729004602753943438618107828401840203590936286393637453298382186669034087657908796149943940790141415696431850134316572467511361720246023680040716431002431053151242169865083109011414760675533981550166616085533095161094172950867000875846792699818653822043302008323908802582086998324242982735256505430861747276391184179624142148366020453800843755931309016565021690267719731290264578440985078056701654910471577624920758094962755050720305253801443517260585063249219705742220286998709903845504382658361160806056832677335948469464239915664695547205676969983495858292038344758575828778146890400721440887501852972787282730553875804997462657325768289420207140174947740080430329307670636958610780753737041340021563031250949306040713190257176620522772562851876258918754234260122820025225327330658785798684204084382134173249815437559195518079704944893977656109275620727787126838761441865849826001736592594080023751774053547869371387550397503950669026998040823108142719333181249478009257803719121322303662549188294263055342564272279950320375050551419100560125809564066682121776218693938314325788904431925207960470581046626665859743567183874006754336681068213571785266218459835031520338050161182208732500008480544758302779962527020873308937610245318149472392108597883538875533761413741705127880503569245353513553259026179715528289401157375738324827222529417635642616371058375934755665378671819144567033955137138322973137264249214883703990177484502976239329555160102145098378602043444695083422200887090288968986973712856387765900457169400565420508462898340425081454895757477661527356538555247763655512202696727812031117696723145331372199924871162161597428643519463370069162216281783304444135734254799523229325276442666856782643547204897869944539483667518122408896459731659588194064097133922482823999238545119480063773914654623397125085499041414037439504527098918531242896971145181799649879004320686288949837547487110910117117670687890802829718236221435075698800043101624773992021716898747043516144583863214513111406191576642331236956407179526517990705120639271060441176521296172287823624822340337182153638954287378374198762735177324626311005695590666142835255329425897362427545738009385162620432926236666602965540110203783033511569752184497283128050399859829851941672169957291703260343855864949400485409168300104714366745563854717362704660563357148107934592377379266799649973390721969110660718277766429929769282647868450755303057242708590999877569854927243399213012258950085876405677690850735054843543431227375868362313035381351707688113136428715484422402368665488217224483925130015770988520046828705335013726662159074301318630693439122817944916865500787049828333286639897121479949604976234523286552350372986249282088786510354205789044154841831727613880284557193152226593208061111257747581831377799179442243599617020955958045911329395817586740525550296317248195467277836369308051839471712986343438874380005427735841094201482049723801221708659381763526760923065738443313438854579697145159787178719648789315252199891925730014002242862788545563146251151786332112386242467621000024797081254040465266022160172417069583969282138632916999852638447650084352319856011950716657489068115178613081781077391838175113682618878621376347531091109961822219909302743007718871590049719219179246187548180603088518661815047928693438648883538818840305695424968803583946958949712824904649438654702146281195721810430459596330504574383394894983585651045068204560802178713858811296442791536466087622513212591602337991356924745519184554440144720295046212007073519047602610062316470292522951784210385617778197210042066376033622548865321339320202318267908616757830607547032398059202704778878983068179645508089719034419437844830068622147186833336450270400266460146039598402512853186287912742685971840037074800389757984473912007569192169951101664102216547760052001458308433117963664977641315254592798818874068835678076292239345154142383077991706990168513840357375710677384898924222670890290889040339861926080459071502791159120711817314881220889561053693535650697898681413240337151633260477156815984962938743518882253089138154846772261088581082664122756531366171480651780512157915837197584460131109763431095704353126165983821111578033667390556823014162184154082116772932984044861367739223890015335055603566825156402238681940187749099736257393361602909005022370495856634626323853177757024563091452182948269258528064251195842250157598219161624915600779914593696962464167274628179774234029951660538025744039880512364289003630865814935960752635955784098722984202046003617398395524983453645162696886054810688741407586588542298705481529346032044395120455107568675183328915638189312131721950626303323445304794823900566651954427599303904906215802839285078574550994355323476269530502520806745606642673466622062552208272974442461396115014426210409256855755931563524368329968776938559560985482577949046170109440359582787511363625691787376236446840569414569330341494951874712521638202583126948170861345619084746574370551677411903277050498939505842211336421915978941379447115228488768375910031512324899762266291108259626567942161876495296196789103298538264734998604330095610562277689291482275167160470571705100453485284844289280318038522922782711675612991599817053119635964235163029672597950254381306531380087876272696394999073132684660878600181775434903969389052789453666383080086984262590204044230898988837392100670073222540662074841225577828170314400805721745340293404259741238703303586354746090959569886715704498439238655673600422901337367321589985465445704299593796614969651858873776194162981800352850432561302250400141229537762952302306909399313697120063614752220007196435883904126462703383527880845091424351041245772861142014855492870155502490615842957653775059909395546396474595817658750355659022974973891386994817857340928108592277867685841800235719224345992209385843784309358254073487500001735697839696983709342843892184216932617313834865733134392320207439399079632978405328334946119480769230871041323555719095251906199048123849328109632443019714751483930077002230968918724804739893046224042195442504452656125815263047925350781924263347370127494785474466643619320723521117138191290016394430029673826552300082418539485128582193541809822459054489884804440855836552374363408388087797273902809225509073516853739331948848918718009085708844883349954568315388977702406691495478775969290542204934295719251081176258310709947620656584095688486283723319667273440382588944000514527647609386296424478761061922093125852753231167667135616488984216873078416978265717516057122704047836192526820851919792246987886598379126389830645042438261842339563501400309470732200004812212650459399824543115936559691129452071928048074471355989040245540248527816725067230529295165995231957284920449747700597877093681283908139428105145553449794994923008447812808536908361698439514315741828619113170292319493526334571351788396530542257996539755150039320714289797960135377684399834296432384928657728507639065427242854612494017480385763967817441817093465046498982742227931509178877651612366239303781933013529102602430177825105988259244589136614058847274740017689883542911507108860300325714853685933709634026902389088327754312235724624633401663497220326440482242868731029640710589531832432420416866389062754317028631958005055707078591552734333421021871292743832392095061146485617448383237957436334537643599449308916417429140944240624467924897683367432620147340261606875600207878425232786163207360735708566881335634196329486178511879180296974396674098158620014458808444443196653049473736419712446810253775672358834136146660698495718639594272192438155458716975300344120384174507439473970925725877121623934006750936618552972191926422230779688288394259773576605543658087652737491384872792113814363422581868873415551883659389445868330248056148647601458188088562513135633782769419272908713722383796953597525361664132903528220368675928157945535821688897735591031233017610365469594121157791390076881378497557837654797695454033233538005677001272562489571844676720989467868248461350371173180378501426181795749559415704344726134489834314324801353008926789616522213321632602755522774001878074085853101756696478229492985163066738450170423174805612884070019784691295243859275016918870466970542937050807270676567019352330851806383797788502141714695219781938891591242843576987717210766351562542966938415885794607706723274209179447088994480686162781049012507029953030142406616967094420013172520971733628839802937489746299310568005320920986085799566206636063704362142191295346653879492877356407509375308004159369560772711010825937708623538754740693324024082954562036091184296563651443399187761018498088827102348832008640381261260009876297373656143089560781086755858774310261203232903747214706547743439099690788077139340491741002046683271287573847793869631441036579201223586574487506610308604681366415350300176923399800056729314234791309241310837676200692689210387325398504610128537348933493934574292175784307993525271311423890362228383123926922278098041291716661460973992910519182454788543220711208518881910059535618220407603427173201497181369223497943725902024797345789082597030973438750601772735085707015680834446424679789373579220036844740052528186683761208509567883365036305026463256767756554066610562804541982350696037406677519981470430725873600166349596806224291168076268636749851583446489381190585937406774041799117003034900073987346312568527116240643837874764085814501706297305488381867814341341849378410326081705714311369448696850064539788924813994490571694929082844118774379428300290546962902136520718379957665761262222104875309062517272437306494897267303723413717718265502701797554776041195965180251739606344952046011060907726984235639933284681066612434328559482643369925034871033884902107968416806831338547868471750016726945607082918880033856858161612511389170637008655360838652136702680074654647306731451872909148806751503059033316647974338549499882206954798166603446131889449966857293283948905058463015728104825735056112540363480991826232419050868036600673094960998558652039981645871860451900738142873320655009037209469570828865889109396049700432983624469059992539600149922914379598157786322386497277666767743799677172425664209978668831823943442149192012640339995632792085296803351731206780757711856701011639849835343301536047532877679873136601031847068172022924988194979015228425971302366894403352982869961955210038335475373192612801967761667928769906188235402475367132509685823377042861073211247760304172349598733593374386948979770054250028900567765388247037183907691250234771643470862363627082374501224591674241583171415725040113149674512494338231825285237315077990637700984849489739358797802842238276030370528722022996787240911955079889468655104589982923550566646105203971070919227886178083551560056431619628520016653287614817780405290285761720997719342242175963755928098694261690873552079017863794481506481628811082105426124817805428125542417611094675198660828206097787838659936319748545296025712226311241636977634850400647991080487647795514456821767177400313870633890347381307332419644673836036158579555859401359164437857011804852168969650379926856587757730914150756814134966566814088902522763195193603700551879066071440569913012666597195897351398109283727179138120471477855006796089699719622043336801931611982015484838670851160827368230969796742201734707395809414594541827260439983761807459458532589178641365024528262391697657383580818173736942617427512199452564146979221689438316329377948166672452632902732364420246672537592124380466868025595608759156864518291920858882698616937719146786375186522176390003862930473985568341572216322264745408352174591507158965267188647100320996219564135069318470002169667382145122781520463793703547889536933032217866476205718746451875613815507670946440265869252857822839933851598059365575510167281961796526388976723456311082868599263274365945081227832832233979673204500734409302564710280153010016393529666005822438249014174227515657319149686495614863410020959760438587453446767632267415608238874847283911931370183688657358120339602668754989756003467420345365593635915209482569276907189978564356643796881150184915896851048362008541988894464200172303462515845278476822342119830435094473613231794960120541793212123757180126875272621995777567368221357676891290605999854091268380916279776650968330022520941384496191227413117766168417303030415010419475342025501684445383304008213649832535529667442308552743256628920519552933326055107313416941902389320677388204927980953635048412448632063656843982741648928485314553269237663857000187943521664701627182154056019256325571661746117883943732664254086768100112340910414644499332954892938985813214090613947418905239883823392223572200481854175030886892907128292181384130573786390750446036075064008944094165927839979367944368527598470815974598682904852648009379408544028120485511221357243203715621336212870699068814799946184337347913190256950279276890185631770714708400040117693409711053961674653354999500648070189435405436618044706652093673924066905981072585299252751502781238872999038435489421718640079605248352255133236709156221587673646410997654695847613460243291356417807746572473288858066809542561825459109588857064107455233195798901073589262814100104537415107363229572350334871271261751573078712340745640634355155525365153333019915719245723983527584678030555950668248671216223847867253704187550346881051229503012928170630822259282270650782976450201050549406056827298158951547232540197626824434724190199130931005981295918991098649304610184439638919488842188111720941657091479899214935973419592613373125988942336171277491250119513164957956612561259985196887188258431645498846806418017607116550989656922859007518177087219492193937717437738637662026321868938118151122241729332348083579406966077590747330035848808596933454981515640713544633478456977156394209152096015380366811268388227754734277875963080239982411931476025970939919595245398096805959791451646848071718967606913616480910139039659326927058365334551488268058249588252599595224424070035051012897250952962622087320501585000797759637434717960801937988689760982143235485742210340033494407870707926159507541924230446060895933350084831897641414369148072967840935499436203953963216679968969734210039387682354915950995349358753428119321667388094875734202390267439035359417005295566188899565215475397845080043032897766702708330512619174263889913862716762261063328748816994941290027037160469811936551813496635276750123915821136090931291169607831839361088784819223483560692841015984445180247100960057111560758216070110300207018242663799724819253635694983692730267193914604506582933576474178809200511563579941494994330756096298403483714588104254367717881453745806406254357582341100688533061178350690768856016024079240782489805482093696854190505267915745333596012754644847192000292634702319653293525794729404446826267252029145252033537223673209183508287553014943218550623410162289056891383772416819307713191205089197988306868295777376206603672297472056963871676839521146271383719921489700636497814828927281141661052445498681514250704236467104475150640149512493327215209233121669934248058681366167080286093236968918726097616362179132349961302943403915748354778728014226836495421827253544996977779443230693044234130508214059870363129269156780273660553639130073093644769205883566816157334907013633244518064239896045940577076076733304942920105138347492032973997628930621249395236036814460387761232956595430691347002518199340452224364349356459577538927001770105304526463799126129790423844769186257132865284692450867889759864542523115679292488032042962825874135210002700521718614581507727314868871121383316881934899675482730480222944364122696593656054548270269302526970532209147222861164456433225656288015955238309123569559086813043907805153291457911707017073203932242427380864848425339816202111313869836775862153115540076541931648169911635404511661551225952097175905649840830742343957862714975709440915887033954617525117598641739565631518386102776897871059052209573382414695937850779003649385037982312429217263061104624627498125198889997930542426785768642587595924055141255319834769405841229967295246357046942194760112201778704114884311655498336237522003815863727419789621116183524361224991752869753178728578530205608245872153319935605433146942249081541347038644525660014310869670716263779115968613679465339589302038170204977180725649904832256258950108689184274566873248295588128339604594701151797208940520394485799644442486171602002584239465710390805917639578534352743106172000127065391345987610504841589104508867459237373518561125259060991191370617122234553833809616510192267481972681981815160505826884817511823517339554241601337698953016886047050959650254773539061623370861390226345669202344658906505247918079149062362881943244663812742490832936207102742919093441316659553401046186860362690304763475063179511224929994744847207794640391351855726950813737400295843473891495160743212056959906350955038922401054876420959844761450605994982017937942939710771033578349296751982682651585442559491783554280475423037175597980687522145587310747236707420083198802634547168421433581382467228785496719771335802359933534422733326792891046903548951521687124939102357610245972264410767888928093128175602100795158046953527266976964051901257078684343678091405162735440483480952881836479379107362368707306955686058336999050052913788663412121553750951718705942449397235683788194803475152473977822488700214029396336562632550835240721026668777992145801429472731610992199523897881837869064774119614643972175502643398878960641445732393015384562973691908388092606240671086925303930215976422067812690827237318452247762132478245550098325599395420867840541627202914728287566429720030804396007434032324672618648156454874149729272866188404224051109612086762069694608149603100731140508293618709007234537981678548074320995718186795394094755286956643737353661162988256714734871722198267928284415051480528362116180965770983022092308416637464506908808546469437759485441067744325363994148556536727695095735060849191347313303640280194564895977353375900204040008233719224522964592924242305132396408001597166279501183870908212543742927809510251731596759917514115540691699538913701445311596552668575585596170947971829007254271885427393784789705977671772756233395962844108634227818666469423230599033431319290594048965177528138361542542351601246380276611998319989256098556976715740048724980449795380154483206809264837233135710080077540999390063164168919370930718829324852849394640245899499731344418254547032104514976171048194950735833286325483477109910721718939367252464133902674831158514757765802217100834553650401277004245248187463874642712680690933565690565936602813757788504513682675235691885354908636306338321152296716438511750279923162729655989196759732211798179186097961623774760480541855397642402091142449715983318994794775770849527399739858024025032397846322625049884559587461385948150230472248266545637511106731570691210717927309329986909711171126522002325858340113993336395743912524445204979802596509465497831139082166359493988417086605628509021205348209869941974064371544273171689943869979714192497474182583792180019295023350645175494245403191857785550649582220730884842175159869591210602306745393905808828302461555995130734353986933242107836824841207427699206506766095884929832138723675951467104303492986584999516740607563851293678311434031789027731604900996236617415239876184646528856794609013496953709730148978586691991244251380433908179087902936104788043584651003290939164497758756217059053630439077992123586594142726946944687423823380809472143814384641398833570037240872103579849296381959668347407997860648587098751653331741968344033651251520782386854019168294500767912806056097949551374661779246169689894660924264114777220187299554035535299995750810415208962003241349163372782331043156942286288084794467194794866454992799967179580144034123556043871130066657062216561476886427781823129310800556449363820420958848382521353569933916805350429713584835685658813178202425751665733319247947467090219929392404363249330435926554576719340337416205083510864418632317846274338388384145054428893899589974611816903853227277140561125601376504028195452152699684559405859966393289572549317097008431500618365273203380260539499861207572830705350904843553694535981192156352820629655871338830239954512261698898867090736000634433603778432002447794943931314005467113401360126406575959310915535453356297604003258269016682774964664130984365442651560640387139020975710112157798625853652522599453273736669163002367840683550247214845520449259593350174304877709228113972776390934427731794338407986114404122312449621627020399956592326332927882683077289031766912818051027096617506074882202964884897306160735132685418495565364423773569717556318606155425199245933319823233950574298782317285898241234368387375597231396642802307739628598114955876183104033645146438898729271985190765357244178252326769259179687961215738792600469203149647969242910877912346621264413954848151506273352517112913377344910769986009083203469447058860237100800787528541101750583171139007074885289978614906078813160749103015190925374419846742778984253191008380375175103745061198337183845727532544158606406386588228291198058816172379445474776587638619392596079899745694640881987677543051253683383626069993641827705518224349589537265367302198812097173263773636543045860083999909130142871518102545190504559240503102727421392679926908827217315313891002828252588141270442167651872379244091672067758978104565139315202461119178217531711563534736596511208103388376787870926438016422346257492830766784129405632373975553057655973970275672798140279368315717251449275943784644699267919276545430652798008225883900534282846064979796670783599923695522293076162907427426935536960596714639593642845902175057098901700457731481677069158971269597433978310876523294783517326413355281607114335064031602985239888054508054529034131647922828229761791873709634215215300864066177811816158991605395959041956617167003873533220043160781156150125670257582487201486461923641397272638579938275545832548874895941657049198763133170863598735690704850877867270425700988167363821903733944271203137011579981927090488781665506046741542043258621039697782785415659092909136123876884271174689390776038461130494303011516730634292098341058959718065602071120788999635839492659337291512938713700507112611211231728738087064113901652258248957493253764813037348285535121975350265072740555981872545099982920648524990158987075110835306547625409216886375543187247955042628683629859103521716974680803139061100417167822950721136663869915158348327607957015415533295596496148313759959645783510678363331834194006080797940294221902101242882602786381301241165642226354718398434480702570712869806633436690191194836249693947336363761120311216611967318397585145035340876369368053912115225086263006904611996738430700896309425876681369726417989880173117822250778576630935943071087800255578247589920222765371589856385641450940281522873710935927509999200871861014726251396817725523281968137411441572102991502180648247787802581986465207306035293756368281260494604086874619363182140831377650736288842107729002857768904560785408052868726922320942934189973822467069818289738233042537812983216440014621146021848582315177388862851123009728912078092894751194516363257303820069852267864280970481729730122423325114127656515351971911683469493733642136254801311308455302415061810303403510904340624242159904473733671443625513640525386256921048165378268024011381453025007672567551257775353470595992545458247443541334363671568773527636439655373034958385392150322123674218887995995576608489818767366139427599741730305634412216640772938666018311827412626480858516818168013630307013649967128212747182205124540931927886152771383286608076569467057013811876855852841579471718761086387758607204378017825964477166632607378257032445583153584536586201372228074204230196979364452584457357340762489109588032702988193371355204953079003285808372581600764496728922510505828484994698195750212824839291379421610809877613348584759022948780339132624678831544643972605575892242438206252734159094533368472287650225881018889049108584506127445777806514942836153744560727162560773322093983215830104051729382828373559049589778249751906908269242746259687953613711112983622257157454131116388474873161115711612682932483297212089846795547788955786010234019635420861283741047810070556044601463606082054943930256737533091893452402032813633356063290740726723825408457820880495952843122363861481425336042158817730026675317601349751858639381647371327263755660673667759951149641246274611804327446816630944085145170328129539010322838260833524874616630495327083163048504527952637391072076457521677769274079312720898465309785398811900310278079967167583593920806437929548477465917762894290327296030443468618479545419619171718021259582964236192597964881636357229856978158742442693585369269579499519381437200525338991658147747720617197881523941947024029222944578474961407563236923340136973688214702094137367988152792337512836312723464612486746690198417565862805184589017961616225919702573016723859319254491369692385741311870786791566382830649334739673277637132046870415160272344021871874743246587815903666122337640782937275163874383786262665016700570808398907710443396400578305767113073461080858940042983517451711981345156730830854279820891384127738283845584069151266413667758487730038160957518898096419742462804414411280489216721625015411535823255600645811615472046035191458349575871768681598591628047934030764134776695563751299320891716062614113062561908967160657642354570261238807369531832012295797055267966074254152147147511393514177963361023897479569392226442440572697615758881351519682884717887559407097030086433216920450678215793874830593815122782367741931382327272883330569099887931090336011798941257846005091364872587446976143977755382050872491558720924212603974591533262008330501643553673581050870419071185239407591920149855590054889493567582299695972454365613832430573987145190776886575026357930738349464983851938477724541116579016464313504579093063925430403673852211677773125296767010299849919749809398015369683411639236492124598158792788755337431597597304519174554449682105779470855788108547913370195616928574850672604960441261281234786096384322249825350238941774022131740304654944347252123569905190839071025460172956040634745836180344747726715331610091730493683057934842446775795992189274187551626686662815940951801643965553316204354692585287426519209013411901047245692359312397112525229478656319491173382070851410144597135221576877195729183525385023826153886263412686254932366138319866394088134210453655180491236350685169009841647862828497229644973923300323755872931450422597156977694182010683046443307144155543576458816042261442223435138103241226059689183128004885809643494089703060222916948038085742501842555998844883232504114474067307750143075032105869614917844576111459259234008084779969399511349171408474344938284178316007913923297162374286789627920426270958696602741800370983675771352848786424029950103138339674147533319813285280426088198742324393458100566162366791074858683899037879169469099723897370138670564153766590920521769555585278030578070496055781904461756631640397016848643920505011244746078519874369200729604023305174124013745002824087469870390093594336345906973515867587202249653850199172008331679199425709676142483302392216113866252339494999726576753462794571666606337412384585309160625382802882406929554082376925283530852123098155974265701273951585363208053267465502479024502091718605886275696081674761813252125328824880777655840766387855776659772020790928479683634286309230519990449151653847866323521026871210073495559515592012661227049542186312785587163031083747922568834831469912006476486227206490350618297406961226475472818431014422476479514444324914433666767073675724972894120479083560760306778041166255298773723697716594748886550735093658175641881760621363543089579116596334969456068571435337290380574032257761557903624249113854705930248406043338121997680079772643099104097899281246047515299900607048010435619408946791175447203450503838815515046358615068874729295817138067693807481886659919957988214865874142267293584873558179276002843866123053693408005554993741431192099299562412501298435394465378207432342177700580048485353925003034878760302847040849156034941599077472392798120640689133051441519990672027559167503420667833012746704357848977957048232159734493971487623742047731147132890114699615402974441724373890335353041670104569305487838583032308842605621514556111452703051088263074498845974931250578872155511484361791797238738413151504267522926371926959890163443507503876020994078891965909554449973889187157453585662681393069755863789161315819305444543008090250952441200898147979090682379376464371234088575894882276485683831529679675613320164055339169899114028219873041147883603677783496807428603711655828911566942771188627822569470356983971367798543686795141721228369844128011588279778233378141405635362366116375590261528801224880313222997610281594557008380281880663533734503342992939435999176735525184280563331824257312000300893449420591040574091579103749456953961125640665007905560164554478468915187140197317786485505203415553047133709234799842149807487878298137885733530161447948228933396553957121132413299454525477471243633138134133550993018714679605567783034111845964617632955199746521773729780735459415911337628754862584420671924139794532898127030775808654571706593112093901129027341255691797075694239439745795963344459169803803763921040237841308837347805420976988896199383288308934412803887383751170785206558572059778069859064441879012100640175254848297301643837610289288956566899587036751716891898596765307787316294719802971119670118480725939538486531655717537274751853694694310819957806091372193169207472985629403071364193481646945048401811356915261860953368626442003162486094790348219264831922933488467207473013538020174474470475526893972414061184611567098355989222869941715232596311758913281865241140720769605632618255985173604358121768636323156849213155589533000505760416614836622349657205060945507968806547273233106509323327737202662030855227929611679833959438296972042298735713457845855369536423272739882230888131803888817588397855716499337926045014568675747649675247835738243081381400575257241403645525190088144040667204819050217073859209019564431595208309203976784053293447142121761513069400576020265302122024974348275177220965606184772095132129010919532482139263042134664710787268850214652401750916541366548952412824712309705701978991400364249922482742839945872443332578367777194955246999812320938472540091569617277980450271935306750416193381178344999876043591637422575778419888599535629283422595899902709387902913074988137653318139516304593279354543165265331525714330592275754626744784468903277146373911899966277916599484056839743944207004398321820380973067677413150360702523578368176078391723134195606142549158905751528315396691640182947581892372604124037581873678180608456106302409330280704463401672730219834536910714720426602465443460969349218231367596237378322827779129370265600335958634689845296831669964301240863993377471861532605112336310568710707627287176485515743118077869183972193174160235508136536792744138925152156867259653567389360421957973597951554495790070310591686890655066889262071037837288618482167467508172126829519659320806501013417101186621946439446285166202910699904934606739850979707444209010821302067868990322023371335271337462681411119064783423266281319658893191010956477592029987353607499000080563958386704777485400508430389175686660483045470034034478068009502522420518334029490635113356098993702887791315015500586771388540471958573982745089374108995165981255920433520678737230420349052272287073990062839530199386342905217406136740841908434489082059004298454842092365990085434748812003598101714988137287385631829448939815381766316733686628786756851165238824100578392038247263058427043587396140086382405539555881999849974001625238325574505554061720141971396726781671493629635677629098765717294090975713226239308867994943043163223491257923097958833027710843623384891533810060928860165619592677228038533370071241227112631883452167156319415380023599929521727445766777678026782493291658467624252199376604881924968584114285440483114986475892435326050499313291614269499365202935268066707776613266488857207347380053295092150569292366550772369200947370042675637451778035835086089850329690646653762292372870386917551797546159694943228276769309565429433105219162936646955820497603355647543374346771272394052279080847964745159056358149806437031698709783784306989326426292704471356575973110021516825053529570327340518076036421647393007885449838392004695823525221645948591257834564926286821647228408264168410496111602724276242412951304427333639676744995533786055725512035666061931413287708894821730102174668736270503985384237680925190984778692978525092678555709048657780381543525662300800455393531582836369571560752877217036121561204134339352187649971614964373400694148758252452422917367354883687997751782453203400485477183151471012505479419352670481087878385502463776293957101667573805015449170037563768522525327501516093402328757603286848080078729992151710371164585923877904771205300479430142550393760232903252896782559578862612074971252984606805287800629602938420727769786333787842757112734792639233701069852780832239704528148909718623748407769993815033902315198948600376239476988274165743705700532814516172071391133730261629015401022416892446686148851009155078429498261695773345352885258313504097607580568534998808753840484169063784149672679166736748928266960492588029962737820809863697139926061672019770201781110340759307831310646116032983261663186976466142978750182373054971615124545598136654401424591391523384735969052933998643203143525501716354093543418164275127029574516191064223949873830203689513931939946807713657498725827105388378916260248426997405427394988294267000294368512456912513433654367738837928788814778350242204696634596722503989239557163067613264838416217755672354306248693635304439841390517200276134128398247871214528286037650639678580487736883285130365143521938045776804606159082292088092458137702588270871212708281711357170776076915240761401066464682287665583568341658637004654573251158042159930246105509133417070557747527472850647112711035981495316727648851706294762876169247286993110861498589747018958955852708400055036595473142805748291752981164604803156264518609048975744900273286947946597225442099544640556911040573136978381693937561242008757669431372550726951534663648855323189176357615028777495860629284562500490666912488265849171072874298055352977657186278380848385852532636707882219117687431779332677639554958574237147937680960683684564834431579355621495243270425003380459774356636500581442033630080259526962188919344302285114037763526659548325408612704540821435116768068487798163776376893560847234468690317753719183588870895591996353878212610823510734208174234612500634639630509202175425272856843038316488254349905779632618296943460870803855577158567921269820147525651459175542468983052619441556873744766459431206601629517551920040744837710850530301385674680919811671726504868442625239816886713468525471678100468305728733610866452961696213636160695138327301960411734752868338856577347858118676574024582101286326781392665673752397640834441017768347274323507418854494351791460152504547823015739287362243048239803925485063572515568302833961919701369552929738031308474364138380245939133926885631207253636281663941271529313305634588759165178068303456068548103244858415564244783755450741299632715196668041195909578487710028617370054635158361276464815260309611463444023690405925371541519526311747478368102260404473370526985998617912917293737170993955984010113084344005317905377697623354318454524361825905743271551407664968412935075614949467348261780903541255631521173214284992608683341642450372914674374837026058625751794351212208445360926720542883897489092966692813644327773241425480131330610248161780126776432597142142016870879932964432628985061250214040179940474690419649117069385678059052338508146464670047673761179090633492508543812449485608493128735023057328710891190611917945404880352579913081831589631685217447092540629604091411170949847884011586809432144606678950193375863674473089429349856736052776286646110688907608571662940570781149036172733778174306960978607072536104505994576205685394563694798455335918533169796032095793901407427531242020667738567171938079513849596673415570930259746106525312467768107522318586759062910645328892314612932636908113440550744116984650124904197797808464477956174378808964654740859625029843484772047255836449358146056566146706915195847331350846599628331762554737927453666565328547905327011810342089813064071102848476068544561954396887368004787981761833563785469860829541235386315388963823578283531121679272658604160991535261725070525361013928412836777529196068293471836440397635830469085924362627017256599167551646068510897270333090186667457082570997383348168233424759290707492614376791964320624043987432070395244825796644849748707358706371021304311353710438106777782927197684125112594849156407184816437513101865954596466236274392023009806415698565832284326687673200045279267170091963510154723005377743363929569909580698843783691000904487578346478980723465971647722066079540096750917260033353604570293620971018853739099778905779227304809853816318963524150520623778136341787724772410006250863499491346660617219734123084075965214937896706361673818028743682129779744077018841841815033368476244649472705096541097678949132708387972313844751868687548403759013575418146842961707053659567423013535220345513511298858504008165645476676550473337626671555406084366259488156785670318974947459187743162668809957463086411384806668856089504537834157684499814169913370005397896417045268267111466263223039358615902312609258617566478412920744841299600967062479884116606575849334165247829873904017224922275870810782663265493960634184697941940798230150750327418301814673409334996549407087365355847619961233328066105314503034622151927395360709953955485102219529136296374776068091527442875098707250325891624839951480381309234964267420462535661664297471961054337398634530534442584087846494067295761020525280088886233424085092020301746952278563755419638524691033627404058287033443187192991987312625048414478785736489842179884962584174822972130698870306061421680025276673872041690515439393711507575462203764605958095698340019174466277182593674473617182275626042411346367797535820325734602574414715506406034395919326806532175553289548979799890366747486064986250141144086209150228547793037175077988615836265509409420568187937772434041725732708087296094412651466725118651315988943718150076639563904721340738582267018882165367791533327563942745019818500872138116728241970506060442432283397127869670027252398743091683147599958116638959293069230861907908831688465190100474821597853233794844291562014373430900344526140130330006283280211757001596577210988545873299462245363485996086043833871983085301142003103371700826481008732336361501853768016214711457203536090984235825810318622751154140819181279802023188223303556735150192693628497236145637960182195274578692379643137853253678658445975222239989274031636626606910275795852153008406619379170279903235041852865604596724430754042623011786104019966114242840580479057902818606642227784202081720179497540349886898202809233581929627589688658271401465594302920466508965805772826085720202735823417076210445607064007457180477645365773054647978334016838080430145298590747216311644519091072614519939192867411470040700776430791636264566047352076796376399253341491976919022592688495121583545267770561358578023196321632041000724427052758319311329047608159826375496697789303698037691559398149010363047371657518623529192470077354648634507123750317887702359703438571257957766409557717854374044562416284872134086404264515244021803851835571489158106126521395858058844436676042749717447372549191866762111273237650444423072832464204703502632700826219745651148388118322691782807181078012443716433533349324841008617166053428354646243287583919350673622395555703969617033289484705823410059435131147671854190384771596284448859186293388090398887450920459968532319466800377604636735917176728454183461445487105229537874911132496656108077736167285946613136116635245407122476348434759741635035338010139278452396355512025210714569931017186517679009918929142206358734188164278334581328486984176202788131535615084059629461147947374048887877247067137880859548167242879400950734447319227293517320778686054499640764753664353576302242965290755688059243955260520503025715578718186618184514685361725496638639902424712404741736083237109450197928075288926604679010773025453437443987149910485444204194743052276944968174996454889270324277321840969320849852604283990464256252332857003364889921093590610568944807643814298653243521273763037403516589337678061163659702850274712442871108705208133353453539658040301217146696958012638946792038683143154311764901213446719952287936241039325354804294628963463111111291947086923802605584801558667251988336696186528892201216804403853730217138057251249500317190882020044493410216783296360813894395516435507652563018916146862910793995163448379175489609561453216706991600422529086241234658506426882373124407424115192935754610246768454880863604711985152933146372938239686522018897837942952517339556292375699791785489539586879610470194151742890372885058409820518683474971099793091740815645797712107625006244518741328915898345436026241380603348198245532703147180016483608071866439548019358197652359721818477233338495947145906417684302788320785782396268673120802975194711027062472815782507461790184810048389530649763936066331788895940659638269088047441895478393532219542258160499028132272086469670589297727659547076186892151985860593534437596807437368763612075754808394766287441036772363257403011038140129899543685289015389565915106975728211401519738227986592262105081329181229011150420877537239689781865863355164101027776389519691148968463123412910375224708349773826644392833132104491718940981933972781743124043082802484468054172075798588170053615664010189228646784974659152557282307990393145715236773739352345414951918004788216627849150845442077323998786444136418242497664594285716568403879407744225301436621967399327457557219449434716911017049014631999947288355261957744238859679355706540569509433699035353575639667928523039547769354989499807720221425441773812570602847697167288951083594687936310547825740032687578473298336239801230423743720045007012344981716169748085445516619369209715999212354987857190936451320375719829364058303440574982948252550572796837118957865038134399998207936366937174240909837831829746174336696156023657310600538150123764330236853947681014393700167704260774805491340113943288002718916873971515239289071602671861054266354477412497678702011602564059771928067156793786853451477495403191419138001228048388366721882930768297912257580172747226514304126033085667924212633331246175600369898194934519079910351477832034571845706202547065164836930485483485466563688360202593427387603810514698568304786108231502926173648113707407805227366667715166929162564569516091894903277829240789568205636704803033070153792709278180815536846003637171419643747088185291499366860705332076383569248247130876158250740214994035113605061789109726663579724653483247166304282686398648757657406110895092574970005702365095063163264065013430479232171395963968223923490958511275898652777756351182620904841368064318462187202535856788008900810363374472301737800696559281150116082824717507090954116272153231985279913783893601339434295900744456578766180811462525588097957743990512245540720856696066324598685384740591458553377808551389288666870988161112185246175634344529365611789542915556075573752704237895763943586571495911325850223810348667847664757780127569252568116927141127382898275452496955385297145562016766633129901767425066773924811203818593446987638070881352414882845033720693611482137874046109293125368807390288820940248589267031260878392183746370718012620369139926201209282672227788064557194225553353865872001149099521018019445225601105770985688202911585957115114138459642723278111133826148424969049973090347899609914482742514550740271801011491513488944569795191044543377895265052625163649403450930239899872430717007158448710263046687042753850297479647514677869585301917471500705305327839770895105479661376209941041712155015744531045260161661899401113487848347662217538360811564217456024673416245119592451613996628761964567202736298069923866391928648324418742590249561503776046353588007122934878632958159912245864062257033909521907004784493256010288357863245043976182400999364678529131204130272937723347889216115623884096900075154774174574274257815255768338148212176422586831582078668696450187006187108485177848434068889409831193438760291563771423623905776488304618805777389769248050142541814264025811671555565273139461894107710529854380947830020762915857018467823708604707834553585370310581976937375527706637725043828142449553350106739287513782177562982957658184337662610098549559027389018313611467219245960022201081801515330407465712687141509283425212445587475676032889700833305381066320325318447797110007339207291150592097346787748717892635401899807659922513988394044303642942731351682973596297619601749691469175078861567523861625557012589913231877929368419550975210654381667729342240020916228246391092019427087339663316969551269199812507271930979006441853733967394057995634313347335851140262470276766883280488222819570399214723802119589070314297847073927850759286873215042248469419297758034250064575702534575794987368668391385845463166844964949259478241672584148351955621258521383285031293278151234362422624798983512433124548495535814468958493363319570097764761032579184346362972364623809753230434143862853925967387910978028497112713582513986861961673420508809521645264476237481001749850189944633212267261212933554425503020447463858991648054673590911654908484909613610812107999614573877480806057456386525816673327032065270273214863906291703354252000112318941550513798555310037735704740716082349674402113103140860543108601975579679847707440067565000601723082615305689307162695939724342252368645091655783684069735173349567342541250228801232869580016272202017240585674209509580161640984884182171460008087530198529501073288794569032656607256484698870441345369154116538390568643251030266251508706215780662582362916112843633172828231728907544717083562371978300183560751031691591534242666178927926215490182926965861708271352410220571403392357295120591916095566968757255181766181407188645567059401244814690588761116230443914746813640132385027033849609057392879763092569408620564001708663643948612730109149166923180155227793714524963961539464910754778041356850051320789011080267422314202039175717913488886926224700270244771206999464934156837863898086058086518343811067900425157703352220632551328346932758450615833481301915338771803500724618141436770006829782272185248376209334807129904278864507381106331283576131541307266700089336932247992834888718774838306672733625703886620758682363133181216693127200798524299823558149533971008997258998109133043440597095194044440254455121910761872591960699409091131028532707052124407766963231251599815866624266385643424355097135716506401069243549406145116519298450479740884924672594049713450828345956887560010313367628070857603949653362301978825166197586035108351400767096884492376206728138692801245031513334431167400219069706532312047346422583381935518080247343826737589933383213786320820653712347649805998314805939068033889322098873198556014857832589153752408130647687373052123891189856300646620682168437365220363671459075196098343399726113280021001418089954264168611299353172540894614367810469960206891955059723984188299873689936788203831836333138501657566827421761643597479198303330337961405765923197103369101654887368979657725903615298966386303662885898157961979908888389623976322552854530615578695517773362266852306240610324057378618134400416451022182313055505414090482718145437804584809267162067002240835422139362394176040683651073571869129040815273473505368507025263455327163150700759861378584136906912778836593480471871972488717540347406757803315974811672156329377879376186196144897186291669689775322939937350815559998265807934249635448934292857874669768182529003249709215023453891958325138102215240916629647820422694997916486541690471197149973008955010186282880378027263845305669378104653939144308985670999123541890047174364924562439624907375908505830137148776427023440131657809299607638186548966418654740929805181538183097227176990374824659514147105284479095911437182878415170320332510934403414211191695036113705556232514367458965108555970641792113122914228588376862765622976294825640315362594532669957498580669886830483025825578950691419149596364729683072835525556123091169443760048558740315243315896710513443834887816324819112598427676454650137298029680659679129255378110488504153067395123630454709418596336425834309677561617550962703846509491488035192698909229545848873725795666823368202622669951530214257907770511503041405482416536665650996571881508012349111064130267776330354170364024587738767044859568599962617882933842154550134128917541375693956579705772847913010207191990896348997732828465414272530389535113321547459058191411878915672903649707289177074066177620358051502407875514792956525833503175236916029279106778772991859221825669270382173386111530684326081354912104645692009073134426460373062757140833467894099579258253474607785516690965371364233699966787065551922120373608966372679233661320105412115052426343273980635707158079393306242002849001464621294320863858846743979847697852048870790190089197055641326354250325183589050569733908783141683190563035110662092576828942812600366114875762287568491151034594169296307283202848707904586897938762995366229026454919926668245078634485565538380686738469381263326767530053018408885336495573039560818203914891221894212278393947259386403792001672764393739363133577791226633039298961313291643033866245042863833721199058962735761844667301073185857552300691118987158901488145576809504993441353677090309360778944059266035870270878625629201956563896235087747818905124593908450944874725602396715397026474344083305480754234471043354734924445273581192480707277947333728517267756074217195486080273408403731046396461115579230713172726819911823672105926508959487563497812660825134220095938944532171991527189027648887894466780019821282798603222628057655261456605538177520591775664501284921253399236372815304362726231031875306252373367026310778046731254001125639743676213883199875737398283469013026555840309152036570017657132681339056687517731163644518118659527605337389384491336373260640377590819739711572513691486770481897410512478609150602911026359651193318106245328853427921977433760188337335400820973629558983918859643001996821668293222301130835131901078993657532663225421137883002678577118279346885861704070781130741563780529385971830806143423823917763318453060152317487935036065660791084380770813690616568282931835342423313648486140644693196664695958893917583616952983211597611721408176243048057520926063170108465190431294619257656351359804936990956222483724185842745743195954203950928355942507568547384600544190175478524217517490728780024531332802447816938455544728035226349227763730958655468618970558695449552620750515584055861840430286964952821307451527718857980663161040251827176860672101506630949955584701781132440636917557394019810666136753350606729208619464880991876227030066172182406821867334343120733515962321506644207070509584950587893386320822608699588628696229509822272548900233821852582598899916853520406871074875519284805849007844427108926579818427068188097793044172420678298374508414865619955656380592718172336140900303171632566655106533278174239174502981924348156716730104972425503617133351147970731498794204037488436776375266937415308923279816236476592544065176076929417411404118516848542614551610582693937493518144508921768965939368535648412530704471244384234534402500407530918304427242550073563077757179122779978666005522060625208851348025352582943545648667881897499302584332886833745070145957755344709209309018851667914324011681486539495639755307678780485880080728106959570722376064252676710985892573290829132229485050724329070602342034013388306640278678618446137698941330791089719778698793056916123987348335400459401036815847093404415184584943080323847222903107682954567379593391552130562275482772502051030531870740573205367161097640859964463509416082242586345139737351635540056584976767466743558421298253794557607556776992797067229015586931563081702203044299401651834224666239629543803709499419551034250095137208613304692769405912051862514679384656592107434634180745647326742911977404656158568272181116369770208832126641372944317963932369475513902281793277897194776045165191779931015773999851238933415759378757759744124173602416214789028775824857073403215381877616804152145548185453709954531626089265381954599608073964500520075494775727148872054750625638698266828831271679646253467017634536559456776749798175141566240895107109678979444440443085997575694553847924855840789203441629937309099245373645573260398030764181635154833757672140830342233626730334669681229222011269493626143327507237964752859725645040931271547077902983171232463116071135753536848729638770461686784386351669864263104708479610106902907732382732409800316383350350524095926266469251566892144208655228697604875563211517408350648988049154722779071438533441136815905745840450233975128104706466273882956006822198649865034108866109770747657081256204208317015087029035249798231047708990290348552876256376619106075578743109735292653891886321256831395678093130657577621697871704346015401771985027163571831767184768037702445708474302758536469933276003720724638213060370005046399025489218283835671436338059613483707303101212313159923061129120696062321545753552025256994327809218146750145870954828229214999164231700847540192608615912371514209859713844435300075611812544919805708103699788484741743725709475158766403083280145557188114044649937611487659011079705110944082482307587849443502756583370048248788173723028167141717623564258695641539800155567344766545901041234312633629844849751628549281902418469539739036247757586520980068311205463525092280032149918282562674506523638591283819692744655999796396881825173292554615609161389466484954419688095062443730199112529628477792553645122979564367171119067348598121323535215333943633869855730804679174344432778141724014631142217554015225983037814339090978643121642940048408870960331769493012642059387956721295251672322055281681629406358706426260826122038738960972062708970816107767388710859792374656908117206842688218642681906134252014718894279888309342647943276265226226911952363536258765857957530731163811183230451096150991567995860380348100890615289351492047576946573814896363812406589187441350727894246975667150068179967968487091974457501378091571337432054636900193491989320336046434124525160206218634006533167088313621210587875609164036491706248135069553880709928576889347574312603788751354014010312365440947388733323744314026382598727684761083373977227787973744179645138315848165985874641968067663414508443554578327905192547685521275348684902378301261166418001027885036330363315697615129580485771088323927912120133426173087271202294292794091290412054898601208648085046610896131082417666170262365847424700250024279968744012601708965510495204548426374010804239537345860304418162575203235896833150130410898688358666962770653231237911747938326573433950334246268893606643491528311854487075991970834106730829913570725048367302350548559797926291957659595223255025192738501812766394115968862211914328514978406334252741724156845116535427666155723619559543093851379484138676576321981010634049577322065917858642238493645067018711036655622165750707594849392378563225301714922217000533450538246272115191852801894353227951612223858199155456513790828909852771173706725027333101111886450843876220185776003208343778066231849209304849787318041587516048849983413634118228965167199914881208752886230633333379126299743362633222188297782928840593701825899360623234458433593242790737863374215093983716301355433481308845503165590866238923829381935313467694335586745451694715426198463683449742276435913102500332339202019592904557873034658184100097127677066912167954397401599039699559287922016398227618584020685725243601742528446169863799545585282353020342396586527613937882200372281874125698489256196904724142082611206928635540348407466823220763836631883360155143273164633078396918039254554092988069440549349935955167708651132673156391362002738182497826738876525854875779024163151914860372125456241906734930612097914872155509761871475582511598467006623071182381221181134658101198238070254009181032181341303247837946072297551696554219378133812437060023360705156638031319219980024756303582694286396470721482298830782473262220909240790490297210210130815326601013023716023582181142058977381345261822874633334416461061615636664277535408655600672918428412877174918163408724749099358725154579560691481139487142762610146206184484664240268169601001421975876841201657718902321251931223723320474158034724598266060373682680058888139302361388168202738670757777144215941636305642379528546750202971023547906491240290143931683576490224433274837436992978739387139004750962861836837260745393877070343942282817483633338477140976561480647742199730340045358146405942582159248093548745742511076208634925204342531830670215851307949843395622880725807123287181047996426191332935284940178356866541999888952166237847453298316008477025368368221420238730857066134795636118311691042638733294254354384362648288130093788915031005882490713309203935032570730514978825556756875469432823362912172911919791159688459330483371848874691974239249743619264774758710407399628413679667210454832535839229930012532427586821465701661192534145454155264245766791440192522194545141336344414816582195596199575103469794072499743998671821703561350241034107181875921314762969277317017136857330039238300453216940650165093505315795701512184226216841021669361536033014437379279821161555246439499655920300211023955958272218730439464194747138658617868865353360872752303231686451533480703245267043665215382404954118464017662544686298065652325379630892392495512444645630119190411576109111396177532184218123130030717902846023028268516214080844086245130789922329458734187872662865727022373710316441714555626255780316169683544312737032956866308544921409818311777524403618530310079702266991512364671730934441669201831786800129909048517957170273212737202234861547112391263081162978241707941641686857906500041541246861106166482200098882612056415048164219770764879968752616906275320774740725376470998205446371275970588680298167975854292580661498738791592007710011300263070884353816032401476746919475912369880518272245775985253038239024927745129453707645042268918423979172369108598919187553220018813887079391738084537824773874509021857049101432837857755677474952655786189497088127495072436496286698611428126763978919479120034314982371751362873514854536678181576167757412955855367624190695414536740638897496061076585353939758093267956210377959197202821695141672725646881688576896552890330626346234432503725888838527727157096034614974872176766392780328524812162733246857987717964081260541912038243973414060216950892294378905088730191753957432688064580193267878283269912995816104313517400771869379869392290799475816336200975318658768367530682969008802777161889457739194149330143329527101539763928768768948981747429388524697083688565451410325345232773245927443492789292906516006321786592153105124036281684421650866262514489244083449662847752912793861176510253098524678746356301920899462644752781623264503524909968977765726049598371970572005544700166444667807855350548179924996749980355841560278476704158234201785782267936684549961030739959693662166018712334787353662558855476796230708065343334560757310805054550349889270750128875666951038905776584099443237271517760751671687881524881400152799208910345534669564680204720798739286931011585247795457612930982329070342114958624010398369047177485510227248033424137209436755888492387221368466356395762256182304489358715270604702605955839397313077174302667392866097448992388969092792986342567010008917599278925803695062155661609447314692306384334944272109884722971363300526019600215527543348755049548413386945878807625309784441611369651570957300261183979636201862194546856958740507066712545616566035012088017721529594023748853460052724735184006953074210424974529065944072553704243833249442057483294354293055248856471132048618251326899112086510495948531023202718533975973094532648120913009352630304651633467823034823121534448577236205739326433457387051864801279919780620693004899169255654351137340507568179806794343119531318427338770861420290032999076522725225962551723861141151238430279695324650382604424497314408821993762964340852564035685720782421853745331249722426490995205093379585706423010875166344418625592610619325634340742383941134306517738407064579813874117749033266000641579418634738084960729784722815185014020524610616806193131352117940436239393584807781302228410357839427223143195183607175941560078837156400613122114932185255196286303245344234335318029242504736382416977248901325200581694032500895842092212864300571909660204261040831395723497650516323341648027625733471894918972911799299838172576618691959241073239449207448103936639964610209174825928630050675901641096351058085795152297215196635348343177463087507312642835778711601513387691225066032126840902370710770990280543354732267057730535985595519561362195446515763088148144832821227318526987924863502143757411846388754033341377257319193466493455809444300858005712671794674256338045221123352717442783298296923520852051642950132580535730973486939758495085280837233651020414218063287679438031811351581669092980584669357242407819649138911953728956671333181215603020365745448552413544341618654907300630193134677487472577496058772188321414290380311519716258223868776766715607964619809665665308226915236485820874599080756127929996387239990276817102361688257252223799568683415391957782363338328565427230241871083764997757741362327279565457732189579433219924366292720744008618312700654505048203628365931762916988750103799373594298483753576387168318870884416548749158040618875066292781326335456596958857340468873963831275070521871673307449051128087693290035054682376511261307111120431776576972724429355250457620613818771694265821905119918099900745976463194415784181619808675888059334531686780901637116564825044123308080049009439555904096088068390574647461488868101306890046260897818955244074394064800946222421074444021883576304112697309354734110514223547678357924962103396911680620518683029944743735180004133136484465843208056214748121467613562496716307162335142805600641914349956916946382397654393495167254940699009395799790942261122737248007795277481754166899557809360358347722478596805320706195363219893580411768322841270783658027322803096131096870665675470409796066495002801808205036252624262729224448939792651661184366195382921419721553583861911422737958475151018015045611638012778434961925070185487776137955810520355697511602643427153785777663655408777584872063302433268544089898136089738075202381706482040757832966445670148309259300887520129729634507729250631602492655012488995733350372684272350586379986080372889110560116066382365289160451347165115522250581601507695849696500770335312585579149657733526396520077719865618347774604005519173646642101319771589629143153249166800279637020669605529858858396985585288904652890935941102445967977262919594923817334481470582618193428335696812501065040820144255061152461788251126571108619637760777567320369106703585071019383439860075400600524749325969246306052289101397256195737813557231716288387508425532890295013923879972498814718038591332946355611818937721778380454119881604750175164707259705767902530176222389202839758379203919889286244583079164414371374537480146228560516961786862595365628971202704992504752297887548612586285775978776749755859570311795298472996354598855843431640920086826240569254168857033951089340681177966041401598100436729257686364672267993180778292511940656868234445421596054373109388190041274121221627120161763756662282395281703572529949021393887578108112596308359464706634561363991146328446285548970949563490361077349841582765047607034646228750871573906094725387549858336490223948988462752367399270022492037896303390353842038010347386268399640593653943514308458244738691685468375528019071605406227268704797617609547843336874279692796189577832185521366042425989258147306006275589772831483438646779624214651905010545017070086902809423405105692498294716026345222515021716385446069773960501143765077179756215148044633885618736201517800580169902383566406174530047237408329007521474115399909984719267670879663697827764967169713114279800236120004828285913361653446231784056403189559233465491991979916791446960609922617597408864635603167987935029136794162587997699730610169242589434849056238039987757447751147542704834181540649535647527458146394889410910778265997471474022072555904766021901052034433753635011516913475591707191116263754216174780646779804132244879618180563240929202803669935910638358417988070631931696228688765947035510493097998962313252017864548051080780182632863540313038026355564992522489325990418592830928136290293389069300898664317886662058878985379499571450834072848357878698407576010258394703622660268883520972200732896354407359487060797370539910305567626960932656806963721739818686233524118031242554282434461681986301969410014662420397172737178877788368982732164151676528097946900987209329377642734881096305528861305490444501606139535934189569613733296401335255268173979900460934496864564324516713730704621443997587825973450414671616728389985103418593375454632021649244252646326363881385755512542517712717043223575179310841628673083302945508603595008157529341298044707764497883463385402330047865199656071185242124894768604254611789388191500148466499504568946690508797700910432760994583751981315010917683880942450813391039052373950897348745879682035853678732879540527693406635767579501727545196483849196560113257081179186272791877363581604013079172739565054740357962489086699021256933342903220285394545134614669968102099744272980065076013081621118874927262792288865810557480725781033907370195930555677978762737502352863784118591453039641896337908043617165991763432236179955359861069492641719901349714927252690039111221824256181904005123377642273331960763342782169862273736582467442083146215738780649222525540017169001393498425670502242573181398648829142404271165596261846755507344633138177863932729569909354506268057687897076035608366227985143419365826619047362845196984813619804429615100762752652777059310684746661987888992468145199462568562281554585638489669548434052909930198846579050144636604171665454603594330888376594705375235673016067744132360676888040376747598645964011783369639342085646741486661607744706231161827944317997479222211566351168143135822623014463685064528831422392265221456172946216525145334927041694278553564663546758353831713959603689035177844782495714011283354291489195017330806886608842054379915426930409157437696910227262082762880050415760643999341465270616953401158656902712285705577713168010448904272790878796572632065625949504652051558268173498502291541951393859886113648972194612958316008189352225123416746126161229837524819612419315292203848290233673333866432365372987833000719531635121219103212193069058974079839274346112923143577418588888690937018205240198847305151356726519576401776555622959416617622007048218857578642498056561277213745065871868644225019177798260676761359007533633609836402605687405652298132699275321192043894729128846795189618379921648832036125885873008354507239100933932457820510236774701734482711309803482700705501911813985297964109911313371085608855703035280250017793575286715586357925498155367753355859765616524087927692380939613659196312989918044492536183652481837585215744182039481500239046219160832611637945547201755911036259236697358985828343312109387828485985877912524475913705409851636851455485841150535866151943485252862102135705644793461396005300296887330379845863357757143702228205903721510810487040208234372764937170919597992318686916000215761354130718946089896540340832724772273446713196558109702595680968822363751931317083394385977596308325051909723282547624584545588842294809847495840569590563521721882586452850652504827669138040265325531787453102299059541172350759912595032727992057891476570606813879789915095984301572322268654478821445904130077251205639399603129353629591249377272023236245407236741417777406346454703726506947622045442098869489581856140998919772803120789534164024589286521934270635058142246842065988379840229097102889644830456829638202005751343336817264253222851489110989201313297483297283975358958271617519603874219920819751038712413617028433244383957388140539992527941205498222432172654994493303909276130677259454996639532001080862134721596909622292885640624216893308694362914089696063274094469411904270963368779972379222923283619386904475473968410248190208944249738468921616593549013429607631542133304247944671733724141820335257374768205255686580093086087316516419138673621772221777208189704230217057798798308601630488512439042286378219817273945935461117153635403865079433484001705793063933565577225237690716098423418130946834239594643473226979997737442698804697619612549414451951447792424614415412297768988743996569450565120638664885827757547286705820340920783760842384212547738703598668378417736242020739313237474324425540454636034527121959418331873599932736023503941521047584317133813916828938808790648760811464831614033120035612833667418941894350709619083610341046095409632769404299003750983391073844077996363650447337353540947679431721361806424392887447939450815382513326196834955007310222533553350236128615137721670806588448635689343627527211699210947543103729436007857317117840662957028511540881330511416012901264416965055254299656352414393799737850995232665769799231929914469798133046777606293662709271518818076041287195565153781050757835685925793790093146329054634061734458212229145617223419154068919227973504152672166143637438890293066176453737460565680887369403719430942856493939435241092076844658365081579011737008983197930850196766964593133398044572726719808820373055977636829185012592072594785895005485893026804838725422100391034483767591999048772717818681795855405661964494950476357681488012227967106779676500292893176696089755067989609754588265011813308876718713463289740919751344354222048363007400340532043697440810025632951791638284384069855224635368992090470802751238475509871327750814335545150388017842920757544412622271923345884243190161447320618389325452921781463412316882672688980032502857385149554470165431573049212901989100838095608833862193195986434390970729145953528450943218131520362633459766260934111560028412656890575968570704560841792727580636370567548691658149125039093811414878660069554448400665835738854873014308384744593475169790842472400086011100526281858085834018792042631786122374535615605473449623648650411544914023524056767694723876805803308592376164609325247313432498443273872839171533573276621518734372481227855110082639299800426247511672462189449430261332891384993145402543013634560976978590401380412310934306821853701220896917686337511935401437102718381329680481932238037115147800021793768941489848043888984971976177331628985828444887363787696475844737136467861398078908042783778448431252636501709664035121864898589057301155146616863884591392615437136635632459747904099349777985070215893340503883556285422817129767098584819119462605397594347467165623307414528120189677422154006693662537932628098861932715354740137978932410506796152643566788275549003545359436283258138280024835576557631328905910961299748164117042592767901010278977489382503456028075779587088171976925097256050456264893386372303474773507764513458034792957138758249520250247431058213597369332715397164989873328135232023727734146525517217559210928461613376438538336350904469579595832476849490243084351301316602115963656599332416078382026600128129204773549987037817895376879998520108970671989462512551676701458260787706823563070102298630596739278515179906383861271526503523379774771180717094668125403205318398555197700933546420034095722125626690840249723815130200281854095747753769884048220399637844310722681410279073890265074659880755252383445629364297789233096304191400095833974190869677642680272426453458877718337015746778043175321412635688279333703019518376090071739294443476738978705040859718251944184322878230545428700432169345240014557524991686461109977027575437617457246643172461122922485554534201260424074799836028972675345346951813610700336240176767284338249813515507801414460421664517675088758528179857846415352556087215642218273559104636821187751191849228663807448019720711106851113668809976420525965910135339792070639653517482138393948487180755431576015970511490472656670331027902229248410658722386841952603921858444310282063417475298470616082476587621860270846096509650101572076496073452374749573625779150155482992095281472963784459881486843934614329827162953078333915209972657411803399815775283901643715893842499379872897974402395845015819501626955613410957615364508240361480400847827460392994296807904113477010973111554759059146331483922180698294480008385459846607038186011333627086690331878408325791859105070902702244689784988098207005588407125596245775811539895973993579689527198651221622668432630830086258767064170608069606848837859723429350831437191495828350345854051135163221291371697648926878507697895367012683161446023758692917799762598842915715335968432076168447422176251089780496342834811278370933151542984649093104566633889340644928387804556249263295064948741383866763519554900548786910706747367098592383043297893424940627439846264680854571559447736264788634261558625517863651324700310255972594563554316555983295005611307492129954337110874256502090902142261423673616370213855540429967811458335432666135608283325406437823281075537092710359097070378851875285776361850044077497968188029250560728637190107902610561235802722642387149668217290707808635389355445777301471563045601732083584378386042372607627227907516622858147562496002084265347159996313315853954016632085002172039249605573071188255453328930387550222683046159046316035264756396482593198998604989018989753824242745542931483112250591169368740656956912336729065051740452584292113043419814185640231312142636486675707427056297690865761907445065261212262093137201470581625933248306528388277842540538516234822441730514291206748537722119247751729289762887229300078403526931947134109518030664284117121808218596616388618585306352584074616613648820961386956504480303470955135574128900202929216092160141545884655399508651433091996578972480258943014938188154750639595659784758868700260223205448083196227371791483814078864202900612512265772697032585190588797474799417114760596859727346129107509109971199246864738569987055771159299853696675808554920917299482453841067818151874100418536751709276692479733621716110016969271221468101491757665282099679722388060253961696763726564684089592253776735179616427281000291236500489932588195702254188093408724033621130600463326616803953930626500509570454574788186323414745017688579551584477271645139973330627512137404580809361161817703447397070620516687884336690715778375956789466840468196170167678899215949211299246036852002473612891065130530230004374563571020771050359763313030978224686938409035343680391323389875593071601876574122914182429309316469991820224267358648323835735589115926182727811371728899855050402220795737871311979372730943730780940887341673388267145435689296505107234570091755134231785956081338156691788093200617333653957986015871469003632031476149233116042329314936297106442264277834353961375511329737252962400483467102475699151714973242577339438258722477087149231646638244231454416376835775354705329162961151304729823429259843912805638334041340352775064005226049850554129473548526604124607712270437598441924171893902847383085305966902104684232682869873700404357941354736618994093676584517729647471548288264314065071454497046543017475298178927440738543174407115754875307426302544266076011458521188062685681836344021797445107895262909045550136756841604898465293604987077716229219839076390810056434125608478459305692297422335622314539536797406019326947351928275211155907879732754366033760900448454155735288511081309945425860182078631781236330864792098018808180527861036838242403957342655728925667171934109976845999837223588275584680900980658823103821926105847704923991709617970507018588894733189011134708824249107290055626152346072070158212504343764882075041890406106612317030843409926835098362651990724630150631681740197574059801744032143387882744563922920381652712746633915555065152514112951504922442069844935025579563663751273536649475563134428366173916957598761239847823449904715346675150100336804421118093118507515599605589665206263339449691033857703505045842708969946711230414022293952135610361900778387034920205915513246925729959952088737099039037211184861415721091831395041728276890975765168877085087391725041717834899097021085003025206860975645167811385920257682478445951597364300276036231924273560929816717248584795398698647787442142321791410538085718284406132491204626575728871262529107619572580468751257816778756656822635693307104644912430703969332262145319358502379443432364329952177570216110842764782858554862299193240849086036990020048726798855303695554845678187343953523528871034923003193803996681811239100286740591928685942131403449572183455673864771786841328635643699570717768675705510679536150000795349900890163760031110131668609317231999987718354791877626407260757695257855284166984595165556737757204227293494333535700705900210168511129515254995969210889376584578404023212113312054020716092942018306697627678103209946222097106052374729438571791498184476204267186903469225232572579532843999257348705519022748580186544197387458171356528626636448771595483384204090176586152912802593017776501667654939389226765838558184522468078088091014648294020584452883389746675893148809872008809794237303443406768245643430327390901198870525669396562952327948235173382501304370253645727458180998424020387042756457248484009304917664797605180957232390766134214814929775733274454445517976485802649187078949221999248553190224980060243329907347464623375809498000381255376252476489485651081628163828370994467456159015113711401325502671260540474390363219556300066939064783249100603667093884809387703769273912139551280369330361658741427937463369021607101568649049460068568877337461410020683233334294567185220833125678713194625414396188754996019305923135000175856456776791371476561736526366955460481538473219429763403218229284056951035885733825643060314549946331351245042606296129157907234701856100535372406410225453446560123654621540354257869636091280131852843719978006825031422595720759090642621348742442901094858125811489063914717955002857047298787486319514218228130692065925334357352240941170002007854691976235549887926281263618837679939842139605266639061748018142528183053500505192091907063594895969973977620726057442595797999173983053432063986225960499707467478438740140141533752231997064582356918982290205318436381922846921934453209171139144985817632103638242000211993915880331209927264458614594527232204078796686287781008832886984038167345007706618484545022161269275495479629807771536099634389492106894178525296321949297272903182345065923349959956520445965267149675479454134875295393182619129270342491856178635806524099494216077427232439438868898625462597348953986942833147653044048655886902670932633442283875777738906499761936074346800161047493386177019711689626973146216932520786297799559041031945712003497153739934935610205629484586318013939454445555208112663361283332069759584225055079459252399656734867677227287041430226527715896839321284822823649667875621393668597013394082024369778291391462788617249148405054442216221533905078331474958657760297244262072495526951482699927596372066727219007625151995678962726260556006005337721745752772221546917620687774342217711577087126387899892580846496313331998558256305661981156933919923528366817464202259488370571554166026943085714983546647328216875817203090663795736961883373861677384896878868846175290697297596320976109215786460898657408072761996266043136369237102011874494834040864416082642301065552872289798462472969423952912627503123425606229813160343176896985469769866743869979739841568631065657310881292311127330873421724304545562586664313395153319031425063052180794056796672039160492902560746153881861951095633531746955004807598686033615558227535121704245722909703356914018357695140097382865195334170121765880641236426545882671568014023341141798451532462882598727522988391951295540115554760623451208434454307621808214159662616256640280926312853772343427743721960748517938543499565012971321389724943574010275764468091739491513017589088076809471843713023295606153250955254994950191483671439936605910699437675559195386078391522321086589827644508104706416522280131956490481056975822805216650572909533831172295100839228422144989572797345276942734415885151796204114232997705333369128590348255358086702723320933654107004195548485806571976340775652510854723242092005362350664728340048371951205246739900519413159722417947785584497807146811416749962352272134877859820462284679761284006740928058879252955437957528954229491365768001135345252331182203035785259143940564128432363741206873887900033992723472282056994971336155886289558984909693382746374724689222696449980443582236068554342706373911352118574806012064466102603859211243848321743731598627522854963703367442989384399434506875368848089644501108650864471156310993515594603215069252862251337651627461782774589289301030070827340209523567809907771128927449317940035117806613300207511840604835062397324787347080787131234650090104892933013915804080178069035042424637789869572161782265074454413791863444109071123810717565407762988420211832594278496933031907794884393838308242956903617150437801532931831663303856827874362402605369546735853666270205000516176962392113086701738775805169001644996253709555196399057993245422714128952865843944152955652144924462559711110458706667538390539701367231396428928227675871687613257661224475689081279980763253475280732652367998892421659051923289569497523037204616063496920270792257007260528382406552650320707759738509058144848770729340780033497842709280896431891771246272260308002285348145560225385495022701385419121368479880844211370541143075092961881271017061797321752001869331330555327670196978310202794882594812320763974067536269418139859219999438096978737212205806648565803894046553593614517693363035809654287151433087961383521698614966802043318442712676288833373020566281931219878921971196764092439172022558843074175543758267070917806749353884917101635865669935297650635293510278590130022989788389513380347171446738554957052694464115918680775494560044289332388230716322328221398016060365996608891626561701668985050902036958085240783977927638001311153592229758688299057612812539319954799080317779213585984714782483312651453508278112666510625169941828651936262854546544610433851504105527179826034624869720162140202965963882413932356479473964426073098788022096366673123839001203174976789170550144532148942895178451412336613156470649509569869269619815047706181850957471176989656908416949866062191625078230817532169525070780958894097139286238071813318133817647570528214429795751479837965562654760114668130452500863429117089075117296972588577121059044539687168398382347114019005291542076281788406898988079093629621675715212420372157295071388592896069379555501353463846367166410711761898138338889819128965271816162777829240835460601064000905560276267744677314835415178969929622165165044820746560203253459524005652449176589817374616677344145586436199621712160811556398062168227010559014820336135379315457852625794668238221671282760889384042948032699836628768705639887689066984613427245880630223059625905589498079017428585137089896418945866826238557411079965466991724373918813821144226803296842621076696858912650761645028352983568240076001516788905960577529742250613679064867830891413035849435559701132791276590332046006008825095517272627678274033709332097010773433789006284396300286955048306808687809160455738314388425323329969521280696766275429891234713625569672499385303308362099668397212160511379356046888023564601176757882259766171015733250016874408208940464713607869725764779680971409850997479629841972804577260420865656362443609966259134253840301782069586335081420771106158792652964369409823861401855711601330171756118073839504596144253884016303172838776819511212858083582884660113161767589907205849577133900488498842253131095969951815971034248165657180379781501317009671787041775000853500456116765017417295929572195467091768577217545724074783576329502192165038769593657826722588075806889796803829365944563464031082160216365681636038812940957304782901637496933279153714745882036725941890919395256964637085808022888375405958981075209665677736722668848621621208733968066835028473317623046948535068118317480510413710907362469906967492578997205951000240650644291231955016963472646917192644988820153752483831565407665913626322411886971101085247763076950343331344819511702042753704041405117388509828228603058179510484264439235998884951276851122193338237500174387441151948771853033837118944397041913675459051389018714305523866820312609698207985519068495756684060230151655522725899201556930524437875930995269194840853844925546506090100848422279585541986175759098602877120378228912509124702638903230287792175522255660195099596463951236802042140877003758632504229333081707056398440205379348999208389620737267087924454804262424846930910601882247378177793286742154958291529803697698642178645908350277828880781002112896725989133919983741648378852469348944795379194815906894151181188741585157062647805944201222758715939207926567403345845178075908310467777603402778408342629935797005763124172455354562373718023707504672880400177146443583996453712791549805358241105300406021537525835857477654081347710164807166340035366560888483229701233530962154252552028890336137262708950540422221690256492948078272523380094793067376169175663004600406002547487700206160898094979123976312788645799076902055077725946766523679018126355453119119181516349912464066061199066674583252686495384451571899032352933177525124024651798209228262207497970672070015427482110718455950282250160858824560225425783486940087593545860383535412316200027577284912200569646632605597861128809399426728275581436065555529474162122875029157292161991693171584660034165062503802169835892426643643568059548294906152032323711998334523758041708621724831807140553092565597941912420094266056239531490820953781043229194890828117445052275880314691036423071921317311970606296963500790604416250152203850550820286151061562495155821307007586379035937962743150997909732990739620106390502007389288683509223839779762334337725073825094749001006079672175435323894743954770314783582040530460184802377712072348953467173930249872216706382044226612962269598511810460498272078337721714492622428243080384869916217042975330939215015225855582131794954034777721196587673788165398332044303972540181221050761297536868431400949138353329601744355985765479472426621385023762565326466539550553235833394529891608010554781857532058526951846437464620848523001086284096016483331982074192290062263658992437427110040509359971887192610951936733270221459234760002248706603665984314290308156166072893581063991292785919603577543869481857244498212876977801544175751632316785092859285075505562692579089194559433537053268210875908431903669083567942579859853104910115572144202410815041344586107839510412636003291307537696615634553906243788891482582456507518363004657105872551898331311888800080719441969289630812243853918827905923953140483826584100786311002677323333820738054561550550257988306606590163031769593371822410355704100186096804070301338511992079464611338307090226341047914457298990394850689596321695822978094252734437341965832521896131273054069732347020451146243176226903243679511691464380852037987006558855919815448516763408680829658730105253209895366349712339730082190716506330596084576107077534610275027945198895633311257337207432861347807245830493562425416973783572510927626596944397534980133782023221460615602592511284925061832293343049731651103880063909134576309280581643462301473885027073692131427142821136298833246915354300028971546034161442686452514265285558928528529534498183109535714848390997765962141348769474453997638892079023856092173620444124290981193826736114927289808047049531943996001708719968717044323981743422967407867458467468800499480050692621620488762211511941393605598562969625942350589452116015018827627862759136400912080836668034663190979534016136580144440479590753406506925863857655193392786579084603407872783070618731399686826272772849966890467682407001400262673251073690733959923469187526127482324408189170950883322872499333521084858029447159463674275311611003261238803776947720950582679594303688726758448438396087709679093829329940279268954400123040255196013137712914145257937584452584350154302600115849188084422341061962023758087692065088322547769975689616526730524724056772735151245746499659311312218774597781512846666656625519998630322105595327695038937564237511351084133173322032939608003879045717385885197468046774322967793425559812381455196557363057564729623371730895720060653792603907561359986156215500720305100588859807141697445151759611345616571009142537424740781003669388891129215755783934582305941836180811671860505337498144137273319679985261835585922724653013009035230691707198333673300538785616479989473876495617682018341942322260870868334058645458775208142654137715733296791600773908160104421422248418644245052920320833087962273169410364702958781641019565081589454027687460907108652548555387547849786588412166245462308836502140296066369416486618187734124310223813373233324377318988134524756840494934843562648685385571480680053481153902652110767029341988448435003698994477799574175582565007126339242161382978971535736522542392615202696901559349470970779648143905987394000035790227450990051473069208133290953345923111942333132126413314793907025790523178924621721696062603613866448803194427015093553002537152727391489564337197905262029813360470363857677692932266275159727019095258108805169293539662035269248438799498448043081951661594541858799212334185275525521198700653939453182251538483459018382037617739506265574787910463250691013628636751562357823603664388804131462961964876477661014792095631012262797913738406578507975140500452338191285469054960364912347756296458284915393602106565788175693234008843559564502559537276653190578216295704927620359252210723378495368062252314587713051319877197169307790536564403760477568072097393469291569534480119120482530877425086988305476205396858065909243286774225189127631119765905671640466858656621606544479944317928174308518485729940941597420546355320833091980359982200391200152513605279648291574828419818851164252571769237958879965862472507445485701059898606442523445423294247048011879624380654779471549162452453720821197680957892034383127229575056419385260420103442530127973189154837965515319361896454559192979187345456483712670943163824072933977137994291500715392577831508631395209515727908142067847739200597935750352698100902071673145888728420254310364405190529378830951404979614590843779912449911192531980846665185831444813587523503056465522215880106902171125533616430901245741528057232825610685280469016299185006348221833080924810900149188539544862388639372440427711807005912815159803762338684812308278802786170406252294847611290625633550709230173188267692341311405992653223525595550277082634104987698280975766503431329594954113947183638255149709709418244620412971512347214497644653500446484213219001673285634812127239388067654288852980290600004614554581905650505191796035485277599493692822869888730766739739946745766753269678074091407913598224065398728413233358682223867414919054515504602283712006080835985140011749864864354707715330966400136477876400671106319833144957154635582843107109397789309975062419633407404214552490231648786269831470019926565769094072576997335515409487444187533730047758215756630215924181698412458238759216129971168910671035005219704374069518488513687683852809827978712385713684868450068607344551641761359671533187401346356635900832528048762497484588628552512453899515849455208328818693171930760068145624535790841555008125791809690657478235826192967449793297821883624763521578396163873103812350264318394760138919050244611965268646999371561898883745162643126790430941068408037432066922992577216121178866418375860719839576003341530977604461259741499631830657066260319842556505518468529683889032666877698065212424635347690165446953664924490852249048056688162939248728334077112568160957463842226608762097101169317328880851106221258551599150807810187158955735797325379136011646240227905388665545096709690713500164011647238084602719941550184198926193397966642796167447286324179726585101934061583512693025231457234839991524380583567698655300268725960332101045819294533846147469333335160899164876098122890605757814143358765172039658594824711598275135561917681936065464100831892879118543920091794584212238680027303676947327340358606718376783486152504981785114060228696346779036140871868796786985393599889080851593797359374229878734773141295291080758699209790642915147187804227917351792123813393302290961699251569183924486371464151145671758854799908281949597704066884186080305198726438214960070514056120635377377668865863791337306553926767645096270663236033234829511800530701881831611033906519292042777501171811050049493815192181554678096880143800024500079904518093267401392196816292337997610328014790732966933765993173511458613083405890714174554728101256214765473776914840649081311201852114460562111838826441404118487004375830378608567447378753038499358469724306978135882905667728928782192483957969678750384667389265913159484305392546266605849847052719206048888868307253744527254574417863362840658889113508051674885493562281209183931197365950527912407125988706176718297810225065920701794997646318519280118319084834765114642025195499655150082725720852348974090011470186016805479081620654825572397718726688717659630641571307499269715642974650378077187500904832522073037312304642921437015921779304063775473423945819186358408409514989835503313258018147167426123752286169115586924042820446832489245801241157608321010569582964348353935396748691287907145590992927937442595298928596079896827556756902318785244981333187659139686342137756666370516373216946742625883220466658787384429473082106616599939302350306947154870914230748135894187466295158306307914605184863133765452000988993460675052298035105738139387888331513072998827349084053693303937523035936983268465086397820349039308986019735225155270648418797142988736838424913060882612764758984422633090279376749404725914762291419348298841763950402843552681180818361336839261813082301362580344075074698560283732202449187914254125571718245631726307174607624503371468335624022873530032962818573575433188226958671413237655919289471818388246047365255546976774655803840346147317391493518430964282719773045171184702488188708898222232321022953630840965931493444087043649200755366683235166991846128842021113288134075504927845479531674708043068434055527455862697273405746286870669535933469857750720463939814402973877107242183088466674921577289172377134764730850074657435717489591454209715062786847136547820793458150268396108064765337623318089777669014196858246256663124182336923894249529868109457527530169958730129584638912587583802968859428677595261941151208633228674797274365348268983610148083743603942256359839660841371303082585575505304899909962903629641466731137252404259223639328383820457561376306453732213064727691841570455894390887194529418003502800039876706454603849512829675699485247464667633242854529403739724824736501911816737753079980803121833756822293231538786878845779765697449409389129774002437947946562089834019295774917597556752474268440600606271700112914508944805032550523084575002627502044219093113662059697025199262351924797699591600637110073491691462371139261455085123210856579045749105105472117960325695397688979486228726410775737987645103409362049232880020308248070196680314669805265774418919608559248019205248463949535955815908234288707351093597723706444038196414000044268022414123031768002225869579297052058244990843085602289399170804368606236981995213552325152978703184169047345767466536157026004369557132021717120004988379222360712088547418066894619860898749311849390937787300147542889990063357420379730444511223375645131832260819337981673755224762244557735057802283592367223681429815863587389176184465300736538874645538419474117297446396967642976839464602700143738460003718804595313182425288383155951589963362766236264147143924999530715753430607832221310137585366852128215699040427772545861369136637159536967901299162845129574513925583315694561261391128887623759379695267964008144398463325431487997275051611013048217856349303265451379900695416132123609606953119155163052682252578735410000447288048247616299808556346818784818184852720954712506400781583662498274593576528585031559311687065391697516581606605841793430972251354078200898182731049366518797575427917769669876539671852064915409812131542367397793002448389872195014441724265677103783633757345825628169518532204356437174591735362942181629307640793510286824953229634617423896094564812331416830339370945412947916412406176785194166293670594184849023125303440479437822035545045660947880934112371600053169821615297051055031222293922220254029023429882447683443945415408547318159688955244144355089382206208419997402493891124205592258833961446842898665686309136554465410037447917448887330037240010842482256324172215508021201237902221134841961077679086772643559719603507576359788577132158070587927601155134537738018975770598752290845117496195221865457685541811966037807999524664248782523900857256482258833886951297957114359413068053585495412570769798175113596054622270497198156358370772222423302711312716030339817860497094578845880192452822907542116132426839908039571359616668321821230890133568853395891295112319915696728883689225470959673260752158251020361555008324027104559269190313005926134826316851655209576480790330317059224253455642772499738688785772752767564664687589859124412705513748829732578069095108763762403628943891411248217301702066783465516499528535843770760576073519049026346208837969998240802028283558320083421283433404025363786964356522455786468284056983722426738118143899784000969268400547207543183884759400359654519068544176403746661102921417353607586602218721958627967864522342979299165896631245445195969152773780166191186780314316027948446945245551899863090522894400749966475708947246012369258769448041138294231573935849263591619741470967863860982083366826232655934735987061324206983083434316420710729836698363921133838053881598516481949966393986677684666075591862508266499985375460441016033661513750804465453743660270671154433051134731948926750697893612938823435836703516264629125021501060107731687125372829457779950808377195954249434350946879560105054633348503127987487717325466651587543762095243469442357527560645629395362270613788229964746038615071093868997015037050540761251454027909348693775605312474086336938392877437816558797645695804562018216130854143452343856343931768964485154171684273190636278511624495234934715767773620961418391339639213588515635165279565894438320121561224078058307185671063276177492700312163555837033582528735528719714392953032328889469650943293234074154972657497827578234296048812859686876187867946445212459284269057418195431644823214672661544940610028375162757220943477549012794940881248325906081444402786855563772305774773594950392479395848220388292838942317406975802923950384529680246958661635729643239212337816452980086024306582837107691530664662792367805423389807281584394540893283071444929525984068628242176376496190353586578116110082821170911803985142987972162233744770031925359009152815590945184998674180537483184608252936035435657741823319584467191251743860734383138772424402361834582212065979370824585084986893787146087824277954077100133518768403992467679870921660424189981360371612739401036329718531774725112000129905844150624879358360387615404735535466072206766362358041816445699856036212059486920130413651336159101564691282151902314350813936619198884152580046159220513277023193532765637260497439235691498832420343221113229109171750849830246993885206977445031467080697572463369532569634377165347527577712528996833254843388027109652285303456477679547431383142826707466353299856199009465985758827251820303318831457957401741601252235632247178228470058607075562355574099961857663859986241173929535269953155228477043475202245352252335696674783353632750078535348586635581512943527568654296162142192819750744573333252038181204469237529901886990744410984908372885190075466176476904157830216525513927441979066753939700433705946620805671248282350524059108832016231573328012581270083427779267753482384574434026586234711644539824077715303798732622511194676927500207654478156621214891886127797563084185130171390254251728187137853072145956890248489627625171700124435053772262291133489549795158676779028840694540567264186811229049774238240417875072644350228391691035134595893695749953550154108065313591065116943624581453353639896857470725234160148186634394534334280251164781681889171268675243337111079353808666977909017447093981248828674597447702465732023577686276151899922224221698283055316556422764932630056535031703410220912188607872906153527646099950209165098896903506803997835641535363293773663289288518521904840743979744564727604036345314881789406169655447971275919312524365775015054237013219345286249993125453051083437310788506907713293739264273231646891531029271143436967655183526478059645176938839503581495393005133082874656216345296749676814301005406176842563156376977291616262146207588133671415065969474889656248709120124344270480593612301436410296331681204090786838661377284928516635407602027787014314264386189641757475253766585078666287068159435754835599251592775156647957424219420322564186436822943309312022942427723456859102763153432326535566530403670667332331721276358178499465411737268802349834848308722261848598733772134147816294336448151441493173246648313030572287090205696821049507949605992153594706665616186194409599761629811590009202498142377581058152568176137878795823903810312141715598024369996465534178658197702464113313684373066704707219211926003005750393852108235343314632193714677181362466845079572312971343202549440168632517275089368668598105540257802045019016503965241851090607964347197811727186455805182652633766343000127818663664616347714914247541850647294326153982131455685928416428041410704778495794836770800523014026981426386476727119825680893525029732121697439040811627436061496143820194619308948821941001656723526408555722041340211274878103908686842819384018262876469469389609505929904343818702158401054187066363207106586081245346089175529696873092832627759099092249505828219669779151613540198480044601752803024050296271588664984866922811270989811497604951001729802544152971574688427668888246928591597597076036047436977706973617245346016288850952018650215539983351972437735235617103908985666286511326548762174076902101577906129680826205396505964182612993930660227720678370922482828036756134043203570838130853786978926690809731553485315950816592483859074599707531082898558630133228822582852050265840142583991905226707754656082670715604371299077845083225281793907154370522662562178796513608428228552827738932864390695856620014462683897403187099999377077458806670026836715044763073612139714437347195933107575836936825105167539543050766669112500351492717966017676953042588516752916705346433091578061003106807306301291760844112279709631004013178724014810934761030623384490997153673373151750030109370766887145717315289286540290886240623235312476756562921075352246459584431694506339008463974406955696446492701969029979383221305430329577151321970619836744217740694700077436491694048709336505697449955524123532214544371709654248636893348634372770325560374365833429448303074689042739423704990288158124519764420063436932656076776733074146317824590862654831004735690219143746359503126249418709567159296141562205927689717622172507221504039987237859884952202235535428063454815273874608546052618407623050950115902676853946070575503141093574528233567953040796092906165123486480632896528706552421951424472787558019672932303040705597907777005543090250187887336789955699105713451444561536336304917181452863992196398789516839401687484837756335256701159731123848385410893531743838040244054409998952305196447793470692733843545363013527224165274804238933150326627413430594609810422460572742546687772949100300898941056000072064152567792859541914412395551264938240262747250101970244012849452544243249461608705633208776609405712335570307419591414016240933565664902933656044314901964656210407970405377603544659688972293465086299067637591253324637830318409852251436263661004961010030379754130573671105338502809587949972485433745963242398471059020345994053606247555120778001796150365903137168583724053422443778365109450631087372682231207711084909470611056223673714756935300418597411426850528914886364688340821369340838616678227954689589569601967831919401623043568668039733327886746399111890379413028108250838430500283580369430214615192742790780309659117588626326366353989930906018134454857224486328981691600440572919520862437250292763067750265455025283892829840294418567135349204814071468626268184833404703813743623753988952774926401809380363881425522029126146907085237443097548415744649755589703759124384886586677964182021500191875219873373906862891885983677418927524066865873290203880333486091197310671008513273662773475497560561726071145577015136616751745006921070267301205666984446375598590680453763289155576680522709645658201014734872283395629854821519835929257555492649222664808522708090297309987174658426182321435937586661826866341882280673478172910569439128489358143172225541558087397096627823017665171382346757230737070524341187674871985269166450275033051812447693649839171161373556707957339589020227512013912881033585331694868461272256116948938502921533873318476812710116302888688520033100677359736981069686298792378377722543699781075054056046298992093572151497255551125414284047012130331473098302586799617624201667806307772863852247473562482987595334134261311309712078817380124240610456005975171000711979221879959434218224115972501845490541195854927592215298696831842825794625854571716613279392479037406309932134871061506309825338044320028693975160867665102119524197704729624391569130285349454141680889078037274980216829153329105996042318387073643656794734536487111490175861557919448435301654194208988189663765838436319711795041479568300769729118377565683747283608231014071247593304093491121884616214854170747168482424190334641729969834463201097317031515191570434196515996755518969585030078110542406429245583664806066575522863964313295064122396095225558369010325245452281482205800168897262457483191265640616083830772544518659319848597715785315512065742440008249356837718606706644318055655487507071487103958332875747453631155314797186194851650611543013989687334959046340035011658977303428715067213464287269286515948204430456949884108093537044476211461631105670791735204555417081169428617742254055695031112891756889857239270455985143588488095646089859702136475063886153011664297866196650859875999055268994891766650137577296117020971764579289299492440748470795535069681233667716844158607584205805968605494902666449366419927989248405149601303608713013474507782755337628858870026340879849808356279073004707443308446768840476587177470871830497513108398113623954945925853915864994624789478795570819281848403728547144352359584892915157384430987936554269680944914419017190874337659140698944556803640715228937400197118814681718783450798948978110200862483637694201368883060981476662539851588099904689434379655719318585301676982952717711671374779963935392263757709827365543493115718677437017150973952490258093984274451306605666631221389301860214617526901931582215891368101940048141699988817101841975856707905416000609105702988153969866563957688934600624935558307780107164387596000777052476566718484562130552020837684798326268618468451150278971128254106323934967754814493488753665364552891211301591557869801206084820633876138649714997603128242927979243188730942693305113556433800472564287438945370512497880240263386384662702283670083224619507411423795786792753348515120234497955606414898837625864515832361737436520957436926835783455978273333828733806847476358494962961990867679251276421310256804049681580562417829021151817099701998159161728965103533942252732734888020004935201960410932888009273331388308624764908724641575976526189299194517446113190431149528758930717188461925290451487224600355413532696265304906062759926374661489556625370098824408261649369595094125977793019515478927471466603926508301724945613992740038276468279168966528768469326634188251199453129634264864093053607320051045492096173908564930063258952599253172874488047708480254695283893376284096629983743146721672526050629024733110508667546999121601254155913713063819095747295618440427745696434528078113083188498510229016208199263338345096039992569585642286969147793232326177626755014801268375456520410241598369745053977861744955275726431100920638778740069995285408035120532598446935065089367808913565270400463484043745966940144054566180366165364700378429456428387805380726408741867518501537552434838669997763831544955333201386665590775635051570444937952904773639190366694560014362042134903107116377183337414464785567507703914374061236828070627718931012187472164358520369411339792671333297569447069813293781816247721776962293438444107585894875125296521037368253764729837276977730700683586255528984494939061147088837717031478884947974985163997250473965179499811850289772994220693984141051524547177065284383780020933168360747885521836255151795907088669760825373938513491045639603389654781909589207815747959982028068830680417389217901173512235165514474471931718699670647628271141986807548057461576741801943280280604990939526528697724721649390488820825805493952330329560377876912957262735553469404892598675379300484898331511907335597651000855841173657601324837130584807019707459779718261329322294447626186412761853967513194730791199709428887625578330463959054721740349053641345096117473138236463066923930106489530519889426245237601414654440767314910594807828485209415356637312670061653571101656155750859204785024085276253702511145352269492136154637942958535514267716474114402906814785203955742118675060762114891178252122569341910708602163440343913246067730328358630108776197925238989640920224724464883912543819406758274927727929796169003120892295613559716265419240321773920684544858164786206323545200999250205992927142210042034909736134442183107095852186801118151878964973992520096717825335662173737621047004556946383096778798152097991920172085501180507604434377839321094659068715365142617496460523050555553832352970571079226591377625820456265908279270843224566248955223635917624071014723719359652053410063713195391664021983530555347809510219840676199822563069182755145804479694674292321555659047466419827732367274438066690745252167505390033932134654607483056271455391407749372737347333105326897467206139996447393673316613837022089036590161573058542680766157154696994818738616474244585739910253674084535277471526225565132688928538973767900238732962762015125158065453284022060820212857127106835000268324346283523923472892445645624000386018341030577606141403880334171436989107138308312169249075328100197564261651525690649843916765702405707192320634464125241090091949552401233091866495964098675425157067415008241833172936483979870294065067580848403831433489482943587228016038973020067906848765598406294922824485553222891411667703654684301682480538454000907712518252086744854571244531243493329753445512718451613832687766509834431035978757809527731984628977471060373438485036776750541216371664842567531601043477444413576656023177169841302325300426608685376335320083915093679944120837110744108062552351671655399463594652081294178984522481812926638811674573002133536261904154239158833228193045507335930186189365205931338251144202186985686129154209170093951819871163071634552320947318281033828083955517650933698712544963646331166182164803361198752040010626857262774352207673525734858745308258919220855656275593479017596403544930585291768661019945364204802372360140803658257577216304659698632641946189992620274341890989303983035215677770604618351580689798289675398049241984993589783703912867832421480748099637984392388943403714425833827389014343642108734553519414346445183043689228284212917325731680581930216121687364221753175555000425109110349056139201991058023917557814936005575936214858383813556343960546125197199856095604606897411856599349076785436128431558136412156573398931550311754098771948420546809419810676167753817419667665213738977000727103738999609010197212693454396852492841526972140670897500128360366160756134414064942259016121168379340893668857049919698370694050792087235667705136831545855665283394267088750824521807725916281964862517213083152841906479808763965927523715862023702023940790291497690814131167762917005617022674784232066065143960688498852207844988776364398673234152428908802886479897127628966308455723149193460562144976854047557123426954158388273450414149727991820648348830219804382635013823910852372708191573388513145154028144724170507258568191787188553414110754715573035254801632049752308096544452131920559174988181781485019380077333687587592860945380898548202117559931882470203676309303548420804782565756923650920058100828344410323607080546866803273450158427279766454903318880498689552312198401048074999357738736989242027560839604280655180589718865041607062211671968805657536101027006567355634220200824027176300969720971220350492490618545869846801943931903153800598255086983456250546898027309935593421504165233195642676305526655896373509091410386343849999183011867909069916216731414621711024460697249418666240248922429482896790731670789746200256618879738806680610449583274592652911968146585207283291664457414392451060516305990396088699762999703340275875030300664943379672683677557883302283138971027345543613487621055841411007243931016997119489458944295187603082172515546841356177735973182525185850384158267959736144895258513472813657564667302469103017761696346680359634608355806425412734011899278818704517398717097085261984970144803793979814944106116502853824939345807001644315224966926907872788201804603769386919481054668252001586974500968316584190865872156209130032096965653362550968931586454824096797612607287901848546240473962663407328869532024265497698812981470761934966106163932353107436787788348031205155610335850540233677904351073013573744905327433861438623462774721790436557684790551065552789637991464727095211770732477610950572672212490040400033946996304999714229431330415208203559325030649843721648939159602725270126002374849134194623291665308914177599079488055291155142919796728574902484742731839003085529567339390694323614277828091902583094595677462062930106438842434491214718462268865011611215824546959064006939512115574444403481715360382936828860687632304469233188031266117333553633994792263335691386921596288358685962037745188068523459961591719584034350035998778129465566428134423530911440241180196962994745518712879507588087212654103678730333818242178492480558641342884344552773097645096027451702648138223271110369778157004892737315162487508067106779319598363531007094469540748112986925020710451886072292621278799508937957749445942805820606499572753725774327871656297421754862250141834000153748122110449452075700674722694369095894026606854773779364482061766524597393884269152488501851485962058125940329876577033686010795568813921484088528772795041966533083708735785470081977242702209167256287067166951908070685673131717333725668495554573841638670931123070010768429348027026478854948808452966575783228546517875497841612953257582531196263678816028441182997631447490059948463449496449510021927806295703802662107018104878004391191867525758547096238381912510410046118018330636383159859664387778631493790606482852957156882041156146722356522835319357933499977073829961343467671134074788784421065417559766814017697423373458779851544930943300259916169521669203883041879951450959616970354527479803871666462203348741526743290536675935404728321183587888668178546503613244475967930377384115049976571981076206624786417969433359765683602915234404753614845114853085048838150168059885874315090920805595955879985410448254519883061189491831344310132040378344357072841325843547638401618648787118220567867254709692333425007708109203056647811772389793443676988172778057167856225694358036220130768882188956144927615804994587113399070919393732886828417228975467684744042688556901236645079936029490628683218453744726740190603207961027940972478378366148908716215700193647290100042559783040551452726509170327375010958311811794753387586339697479940224167447155137240423622801537736248979586947223499249544829131490045113909049394081778960254138875744384207668803659468567639179281236613824954250681652358107833591362427657106859092436077938291182925909352656118883183635035585382434343901172243747641359934877822167337239667408866444426884164867003540795042222802565124740160631200894491834936572168665774729990122001049832017708668412125981253266516355241360140995454843202350957348405800172722788899468316621667710434989032648162916359232732886591454881672224306321279812428992640036373733892100407228038874171751244338007888725208888313184405556691589242316352810111913533200691575513347675910968185772869801511928355638899715615803708951216696100814031748356790394420617590477137575622174300461036728021054872234394330534557724622045829951383262240499791860114217710260553318240089249217992218757870601105546697327315868227536952734819184285915411134242009705763348297055553483653132001697944814907381321823200079799998635061513848807146314814027964295283362430014174135553647449353944794254188011730261725041725973708573788439504301107803528587101584536572256640672436045258274015412147330791796233390329672744442509290037290988393931744769736499346561515758247140037309688179937114667106992235380757482158270506658794780380407685623574648903223577474199548400927703676464581415363589248876003806002282700407237218069582894780982215055402269450448912680432656162891175145999205618979185336287879592754252943888915323270390913480995459315059845254006264297134698482468714842386099249748512510881275272014205442058472132802678124250748485086830272894017553759413017316658170374519146956276951131704260625247776108334995576075825613688453645872388402711857092493396220788611923917168168867385052764321175393749790416664377685393349617658563204525685456548290566544277570893851038187348417306820683274964210138067413743236587550517469167746764579094755194730851669138867803479384209386948254521421668620384221742918549462583583304445961667553240853544498736770996570197489476936732943044091704902301046786408039909466238349851716942199281348761725164632933531692228347150536812525798465256048808761710428776722479031111018514753202237812421633226705315317805570176412645761177778290635528479030284503097708227095962342140356069998125651838261080912427111093815872484253853199170312712470204561906937460587744989672238613810511804910360292071102027793158070709197311258406838131542104572450812768221662179720931500945469721111658337279478177929888225167329635620947267012460868309923800787878555498705392327525607626647986881171610441641843244261790319388300070299848750305757750663835682314475627639798780947569625136606213110564328161544055514883819679148979523745664138727179396857436889844318834620678757857361259745956680501000042891912851067311705267274220036505894972016964882317003408494740465352658327115103794867136272767864239007018871212525162110936330056543140042926806191790817153081390925038656101602472741043425825410804962819751595006614639366231791654976530197802866159712452071823164135436926459968392400643775316357052565101919431720526265437047058352945105723784661767166788899040554173484521749916633746952148873932538114926106969285255591856433733968651819424392146518918059032910690190490356788479431955489534223527444528685591485584107415457836525860190202953408579814345178941651964238338063853942481052310537985937833232480645484537369040973258723165918704384920281756602706694215396441686759342051321769224312899126119063073417917651835158050162644403070376332697759506665995580247829454961297843017458277830039895251767979866632601772984193098870555775208529402618613500183813343412468815570630242262082168456167271534783638040934654226627220835776620949226930153933279882434866392378843070328426263091973067175088615107811854490335996889192139057152226221926944586796559127843153430003014924857050524886625254637364226879331245694335003953944367103302940655084949835568989335372991647728047374301809168244068490163126911944244772215270427419857182473610192642568835089952801400418476598015748309243715128611447507683663371273064344587496391186558442164543316824308927475581866791264897998990128081003096374945068383066499190552509513551900076728132620813876113272361653624545117102607592870550617320599105266647725128714829336961634944527992091157037079095898870880883075373299034834414822232620389008038627046255572563947660438064988080329439731552926486176167045025397148888301137562011500661463433119730092199238883163840472619046550784095719841667539356245352796789482427644961887487064154943935672735849573074942360892875328213595332733054431438335650511302373248802457671250277946504998275801775133983982765270262948962525727813452988877331159130482388761940709355947121457457797916676920818662691250069184056639223075392413719806207210917517176978620779945454833308273344164652710256848831358062278628809982469628787077647577485128476627332794488029441976631044510216273550691509322505900108067278968731150047053188659245949912664182462312679017739059476989634384866137666090675745948454296060186520222164681469016349653693641038857927545854720059961955758876554996130013104526843718236691145229170274679135946323817237542986958111435650969968342115019363962058439402975190296016439446162297540634775833261336601496705627038836089280358768520656095501020260131845574823853403769863736573594541368170518459139407691480537117231150346868862254948265538075069479880918815801029982449330997327613676082451672662121372596797409072684860474031515243261628597526316562261477538802065932907328291970979053136522989571218767321426747980696218021627457796636550930049239648337518125166662894060282289539312938410731814417937991024161227250512794592710575769071948934598691637894689813983679423786760502915364385942532883436924730160681259832339560243075604125353177235331410101829919776815456958929536715753877029637491920066048200337577875827357116872274760932580755251137152755383717967438477751351167773091535452466690339192991744991639624418776136626759080846910807291613078240927349306521780714347727296310253830507127165478078060995299044446869410215496902863859383340289150183970322172014364171764805068677601728762327846208596249206879367032613953529512473203066206199270853176560782336827864004326945177111313989593804719410285534075544998244407387734555710850314109960346895238442218091260955833110170418840761240569122785492941961025424705463145986961137550496671693931878411162270890684070456967791832608558754691542547601520036300597395840890872945520425485064127330547416357210110397888877558297735616569625484709574143962494921367161243770582900665490277397379068075409892170248589079943827104556753349865136350091835158442579524208436414438477348826453335888543149560941163895073212339350099867788384029683557719922975951304679427968090953161091002684616477304701781823252449739970719480792960526554726564595853993942948670111040800915105712394373361802121616134556343986373969484068840767727715939843443699495107361386103968078215497791330549588984675809080950966151615392055126543857792654119790730356679052585916793077880944221330925000354046057803889137290101722504242700797377711849718771771327742201927123686293826753961882189595689041234007836854213871055378082456721475700177920874361629873714017779158756313087942173615909696821318324755312259868279465198976333657863803073434837494937997710831201116900239788876747902303682600685751782208636152877262346674132823490903348367778784039241731174931711285754664372103497102823840975525375524865277060262848941858369350000237263842635579108554058034839146123985827669695282134665018194054056741684540706358046245369808469990226214089660242762455982166930184244111789832555969233842325943575213133646671355360328008550262958870651504425191845689021852848787128167783431532938571956225049708811585357798343376522488069677980340560584394926104351790240737208605769804354378748181776839206096596398180110932051268507283157220162859173007475953195156775636982841201176945500676793174729493498933593125596154889255113886604135955026341540146574169094745168866462176253151110441163343319160181965318095409367752245060823865962679017934979987360626764131287924864304117326788001614851028259710671634591871645268160335348608384513459111460099572497759113217842869352435464859555223865763206792091841729133798595341234887201526615511057267510063379257581383566865478244913102771549828544070994472705886582675405188614762465654511814900485575479438657282395691991450847831459367094295657891255466750889770411827443351057905976713299556119976816812742128581264320413898426281301317292024513521027787959777054661061036761108055392467205399509249022896986534706888593349837445881953805468067769789106590004464437422155517728378355802695543385505420335618574581782016768474153050044576765308078492715830291733049679467848450039548497772187065728693051675918312136297155623744419124912558489406748317475064732473082858433335216483286816480929609192555459780434972649729023953404667834044904085259429186961707737257133856330414701420138128450336659110026251250239142238021069039023103514195718496910834378683488837250452312568599964264404354203355212309390529493784362129148744594227738460971783923267006080540200742063607619533422480886682220810160363640220961004837466126769859091743051834410353075374635331873370752859342793084199115379234582154212561525918845888027134942734044510187802243889468723574375431684639345814998660197630107395626570191340560478548814281133528084162581487572407042500816854628070807903421264257387418188980233690893566721908840271240585681461850933741495157653958054944922097871955414058746977307577925915139603346481209501202632630018540104035648839913489838531280850973063641599800020980871505371431723535992192907435617729051145587210264503928227681214442579062051342663253306550524471318726026113021316627122848434432027223775386105274289200907843223317426816318391550866613438059495694266796347156724159780120956665305010626858424240309276004086270173930773309570185533578768528034387100547614472632451899039444484281845870919720484738896865789550872685604207936209764495102289611223605139425790269542793631900522017535866405219020636626787251359150647711490678002734718660193695114578404143024705397348494197290996999793123510972275177693374876914253322424382395744370462979068096693247538621663861008106654993740720156657678359369876887300851492346103565091233209117293186217494803933812371205008964404515898400070071130507072606821581670369754959900917146028203069852910147078415805191963144493726710796541084679697148018979286588958685352959914435882506062093946569709597595086783369206072756864471096970385775464263250663188927802907289016642672443183692376259402353886036174626349913557266601882692377184551633201206462955499383060526926316984510449757452686894281406880851238620319814464633587851049154164770397471341967644366336572972490062620910194507728219761142514247759097390224458153544209842876394685570009314542898664358441765741857744017377262678887355694804896654888501087406897423317226106594447107305381123161784356281304129660789267648300095705317122521277713722233657169651112671129937492905968702240520118147097308745637626278443959654783036877676708380430197370398759439826298887710099029347365233567148093808766215932258255248125710858200989605129800943382532020081112481970615093112326574800876872272047976737824427095747236008407154916712579596860861561353866770828721698167824680715665307016498403149557406673699074979862196198440239973606305227046238986620842354682196321270894048107271580102660155125364686618724035272754997504759177422138478782866439512929218867575448565638378523942166301789165735143819498879379757638073358978820864726959867888181154528959203955658741156749372751699859474837231582140065533228562657053585183635131263884794386948856344116985452255026638058044749031328867259405198434769236077327981670148661475692444471892123474053714751685477407917464408752244132294319969993186372271919955655103092562316714215302196995214767026663673273701507061722225602535330367173895851841878429463423224058688819212405466965258499551779234907813432485784712875205957821604135180264225916529613769280153539954388595300540715397913344072226747550049654764475193126029549527689792170971188023042274429251832033990885741402204508948047337533977430944132537329097008517057489395405401940612149039179082113449874259606040243014939474060389820864752159607459130007619090943249947360145749422494024973179452285995907318722504347658917629227199018398957202497306040075919733379599773987804868128939703515432620831243972742300115058074147049707039956366917172596301960079851366233334589017479922776920361458901646644180763474337973398676931377750908779273160025565935903660783915216478257512667404705428290258809838813104934091709211767298931715602782136045214253677539288553251683563123440041286457551255906182162117099540781088484822980384496245326514757393343717988106103057172279001250382023963322266581205381303359044522938550020469373588398683724445116322047647395046766968205502393895686173805187004473795397095731605915473065945718170719157148602210986498316903709571511682428561935720681476097084928603856564231667793983260170285663055894946994938871270181307472960717081092174732434602281381281042753874493200580359870571337688570244005637467533984812289916999592157330713414002652647593318111079051173435164871600335082631417702758766281752908235845404335524658211115342669062835871965199337855686469325502199758154889295172871490117112568190394058085104928602193839708226490455666703418946877380697510032150130586244910333091308546868298375295926307937413374888657741686741995244048071237905777962198974711639311282169059530183556935512540436525289750616756442336104031732535088301868422412203429854932613744250261062749172332672293333624746936706849439984892502500122831912677436038926690031155308178398561850660474296270111929064017883168470263348087230571518862232048749035867156344050418122962086594538634020657997496633851624010600104156657741271557638838690761323422106369442679259522708742649140952331248436233002379589837346237360812221323695099746278987214027916910921127127541210305572594743383025768131443622232844485630457201598515996850296890423197175025168943595857140571669338277962491808385912104185028168620523644933166292050204444743876501241922404658969820926670843933707434462818884646491634435835617784152194490105362706215353761035554950139391458875663968981191662488486003008230554576496916441363684066396752173719726128253194535033249490843179968130448090002537264578601903098599072059621490838720180386523305239637462424507648385716719048189280981361965055362360235135112134736767789631957241037565041033979887379097333110257737483373272024869371299009405348467147449931568433703315807334212625342133545243009886373070506606969296657940766289369148725219662217854825080727868639445658527188107287315085840355800494642274892553022325351426615902842201733773300805797203433478871282638829575751043676548664744110575383207639276175588914537216019456582609112384916624602265584474646086394736703753526067648822436314655883214012056116718915905268614409166081259782874224937712742643826635745072878263098996882814296414509130394874409136513954454802710094223753181953045607658858684126320047359540413628207755758248477860810665197560577056129700473115436786997951889127746476542271622786900495882644230517268160391965647821613062675985805828215450700848359045525340460127025004586298460637043850991496965323977919754815405056146599194351137638708503469875779019497969304370654886496808280517581603846328180078574653713897498353824206830614373400678398996595793541685776901852932105691419936613988685011084112240097625922233593285684517743937298278858517905539393596810031995867502642186446729749635067711425683904946355217912940170165679619557394516188708750039394958350602908532364705736535350509248783273368570161065535112835137621284398048001013897285191213301527379111387248037522186446547102062644733425346771458566292496119705061239656916926978117290523907341944529240510126560514479301806469374625512725031330438021385745825929053297100923067430323849998262325892816788903980590647998270239141658618578448429283744244258642392983200190454398389152519983312326383049638770175283912208082373222564536155465044994910689638098810625809001574001300179957050486488312637251519092892631333508254934907704284604707088579953581761589016035870141204028683812334509550501354861463459663505071747132558655027189102083339446463812355062013989438504354443018555921920600198856152707202012998605881267770655245588558517167092995968703252715692363585670145288320803590359171408801044481117660828227238988109479445624642971969205580676835432699669126548836500934950865304756524120029365827639365514540500925418180989644110512895440434278996497299324250308321878576693885908723657374385607948956472923784253104724458178243900169473174078504990297619185691485715704652984086729903224382611130471672912055496463813804571606004179613963928538928195697399930528620630698659558739144461944229963755872298090506811971902022513407490031750602409934298514336738859172129683247463176438519070442397374155187778854940345944525007293079713048798759546738486984080763042842356113291727513336968414998767195752809616099996661200144694337428922881337585000721930603147061982802279373868602512891959476073624131143666776103278059420736059598741766930133712424471316417966340889958865889258328047821184067112942067793265049715602097095796381367150668373551541651339379088420252619254681732717419351144044226095813199015584022598265465431987108100286884763861015470505680812261289546328149988196695349435089592849881422029478490480361466456644316934537717544048001108719501298769802754781814457818732711925683728409801796922365885531945541102690455109430051868716024836717595458659994264742285401192070503233188570702111688484441607170191585020163850347499748057700102974320234109499676304445162139814628837428265239711970170200675391655688642083330564487471436183649088331841475765088154645807716449933505018528000322319096452326677517501569967454336863265289168949811153240787429989093218314385288432177628125796985905674473262995284966238535601416564281090866990056025600981973979758590792759872145572846543684146446924724678685146518362347864018822515653801682716103251154420818295032643865600280576420696706597690468635599956384956411203122673706397848814312795187670877082643156559494034057850826694260861553360246543829648929706311850725126811596141173529346072179456570580416221673176758345892886074646953717171936679710496715495472307230668973682463687664318903106172468750519663475449900476643675893797088972975966565359001347386503026748026693963100742524718053564199125525760218502827954161816612323588388421238899649888132381961739367384280137525176713670318948958663481100512435429350543841040571852463963469228920840856099682178029556502161904812987165315309554039055800801554014793507023873206296170516643181552153648762977501263890479457977689023751653231741995362773927355625277758963857846648948623625567304567960154620025982865079999889454928999821923845907968218595067885727802975647555501510757699673875882040486781528148924761827707733383666265705275866490183149154564201971227378751049168270929731412124478302028998814496123500608611705176051735110162808937613803559165469605715880154260838510768994228089517517039178397173900144780807458360292668740969782181568722640483993235465429434670953321888036877660677847457350932242853384135532943690457229130844562279599299861376588290472546101686912113282043219837908824119544708681414089614878920878660945599397540655351029751152799922040820881338416976956927239184511066722422127954632390529182573539230623025571740289300666976287274651897082043901682617602434125382305308126339657171666520185579769447481802956410088145253328012010754974704514454603474789398907161686691588464734928284467898529118887743883334717417601452843424520797109232526055708499052065836517589266631294410067524948122319158999532874940131443447497365115274712891116007442978673014126770474142216173559334988033220182325468708396080692579803574291030763133786007334721766440598195598269842040306220582963191319977257779057444988051549969486012631859344497268081036148819899020235576391858166931080749881052309431596215937187329002122078388032126033725634173502756878792700387538634019923710233850182487318068595636276078694204510746000280908139606727266373769395753130887428640554235503219767347203772965748979310589621108262357679702815061570924214189748791616148058856829192153622667714771830579023814294300452933119982682483023524645742238812717227473591629404902668521336045232250648083138019021941213727335605601833689246064411292409664309397771215888614835495428693104477160784389557633561614872240782416315422257447227479413277785333612567979705779009336485661071311857070899896119053368211985876212723433853136239230080179863606834113171866253865886670607001984305690660287194619252193526781350181782697011485617188453362541332385839478318634634937098826427166969880771898436354487844796221036669236906854202452717389851374105135585334171581175116945139751576973434686191336468214975659016077746081899446596056203306399765987662955629190909171622186589161612043218432764666638530314681073882600963673101904515011498879776057331244819558397976452320657041925893350688859036942913616328628426061538865249195324950695176373447964247489529906817842965251787152010503786586094839989200137674803192852529701779831928634477859639337927759172377306665579336375402955220508353458727777278751622221869715270997479235493117562664185264120120210045601057633830540420290694426051610933057725078864115172806049785318025919115626371645650706938455554734422889914837953105809702529667826492300143739097440264612475616994655929094832175846649294864604234872444777988820494513468865337642030393768833268645081682405025763251106087643749949685134337017791794536249987129252682484478346823007264878849448011109155480542451819295883195839552251674634796695795513125009828373151216366383956320752231343111169976984006710264127865471882724438025420068085174665212767010541201235771453364788281827909002752156814466726962466339605073121906828850388774823940102939414553693625610518702440942941358574376685312693299021275384467731187867351283405051054750761112902485113054407123147279981309313835038644969134492207786843654445176754106679548859693207394030111570832638420817865412670870201805695417478249743774871903630471905184632853726445561757181457448942033634716452492902300338881697890113135756428914917644920755812136942054295878698548984185919660156042974610962471876340048562280337838410873095400131957647108866307382236224483575885612736015183355848420312147927138617488900606123395283819890032257538424484174943901705015921457473715380406814205979439657296061501206498465068712296895686240476492346410406070582443408445290702269431590182001973779397017616522420929226231323869076513942997283923542226409498910815384629594597442083476521185285721436559984686886371742843283212617183428337588903393796052916674202684571314588438399737326708795354265497493410851367821173962358121305530086353983899268087348937146523592370985557993388484890297723515751440574710406389503965184525398688654664517986456755281188902985555844817996266758745035094470275283988095690839405389232821788609549451438235945209785259276787274212394616335911708736672177412804176048266853645844566075815488141641865821032424685117830707154689391350755166917235296103850800675320305130327094206269266626036249299781061781265789447675840861833331335599250700572950802269082895893268456712531823789117500194057199155999140203431492549380102969602818757599724178496585686342163089596875931945592123152834973785202700223682257280389970895901124729621556944886778826373341907946895821980337685168258478819815895707503863395472673700190453902476828304774987889872455314598665726752100401604437431354706361766083904639303138794639408531501416857848954459295639210383870536905442204895159024184565186640525897446723076489318186285658907300275703749409028984866660959940709137923203444289832464111462786601147371905775858742984338313277141348925133854708015781275202397781727950303181340204765529344119226530809137532428911849967408434814293736132921721073676689995683039425297361383998380197490761532719774161110536956731008214147303297928718814762312243261616575704062524432471739716600029945584999834238674611555749782138452577812044805106182275267506498124866179299463628958232308216114997201309212911375701046032698864980304786516443774852722645385490271475388666071921700856873036591796543892507436618669571308744226175479888190679687896565938380810208472745150865512121593871286671045191617043436719672173596803685350987817174918126414054854421455628340205858598341301491186523440473962107773111112637667364284976373100502980308234439376824249032723424057991329656789730245305514339176386570165250688705935681061750247933446211294218877641107986429287410563220725007469407445775111412321465895754380853334803197868609974264557230781827464767408609038153943779147627041534866917957564566310873576210090910085580774317047408891387597350764828611119237339069419689654845903916538498246218674172177779918590329192480634944555316215176173030952220953663383110970339806285143172384904461538998274352175089725874262068885600023121687491831489477082524146126489370627277765189357059815288550750781317666419044214027813639968467578128565288055918754471489202165746146885481284905081042841437135289933016656247227194306669134742702746069952476746053468571020939584705468975986545300387054187143439348253539097513470743154709154046872925116946533053919100620676010912024764440939029172965451162531247883723834073310603436988526616728766787362263804164775745118051153594733937269149569357546573818387768210860937962595422579636465418894707750627899829913818013474229039505863403809920957434644609685049592386030323072924465094195080257678618120325740463879274337040257202007705795934047922007522166799102798294148883838016472478864331207855510130602005613318984158312370224865393806575645133531534584949493490035256776887605534599264850099213152249681441754241865622771971611821713257329900962747757048212764369590852316382086179849641308676935900013396250993778990492026736685896947218364724922739885537298511281793034492053298210073357355254157432610807303434606091462556493188287281043118846591971469663492973560253300458474679955052047947005461776562878904120116538844722928318932217131875361666929448848478232211514750106713172531741652765337979738365950747732469883372725129173207286743903994804694106729378075075111311027891374089222802715995848508798085620930249418239241248720254398303963572098426215520466505082132125943723351982886155859212273227762628213159578484021641865308730129347374101645919470684553347451482838635928270928513554344610703957085160287497565976800526472750883013341621117928938711539195680357756871737283147422014278216369252925720609334730210233181592191610976691287121808613573117248957089391231133580188511364558482447711977483692871319791598541403019968050887314922259940181687311876661277211918549684903662325775922717970730213280123396097622053502708409249695071841404239014057063332553496613857660308033068376513427161546346490400152317394777221513139097777404769214291023385505171843747952129922178663713000408616446034981774474616377414704685046962598685560106906700864019474269687977718744394657687000528835000342379731904156721322118282025904626956876641761025499012201813814275721638237352960172704228383429667049244028655486599354979691567226880701029702961719157693541008737027683953563210879426759957806821944344837434879648003184093360764141006260023058955398876299719484453811266945754366562543971991906585517086996206459490074689034895728943927337918344926631119336776996289747966821086271283075922565593360915233821022883734159779245977316556952067652064605450134171302760092093469327595932763013321027796655697065227732750390305020976599380676272832131992980444486518124685909628568475279058006622616637440245627025152664045455115373773351039824764937356556171377294384949674970778685367121469364315623728748873731088420129722910746299167931084515373510093113362368491266398623277767394734230306524972596772606347170478988435032920833729714644031492232877932289948856418974165335099820801384467338451491316746822084570122902669057347375646970478973450899351362909157316338258688682278808243642707991336993796333308712459965068132761596720757739006632988595184982186268406336615616101373662511534079357975165140906270422465031146552142171880454407677654299156080154063257776698642461130972699065148810880870060714832664895599885658913262635790749385349311219006963084167421791212317580039218608049659576998452890486601608780612019017898221185065736382300176855999978004835404545366271787424380622991593392259648965669010279268149080598116561258187958028642237166039945684411572483231580711939813708816062355968802495924441081723921816835906413811903289650218462494745012007504434877698248832069749959947850683936592255283117925774990973201447415628642185708307116446394373113564375251278889358424110578198543831237790669521518599545126981094130269476530839245548727419035197537988434528870487870101184344580050473082705687690279757241643705108732558668826802952986100781275145732605803269765989517765121987112646110768092521777627544341843128616470556469482569020431621036419806281299747597903630419983804592363042314271954876088668539547160930022710339706021451302448011727582493682895815468422691437034110018495160046895116052507566596955486042395973773291428358548074579542409650047452785723988922467161664907421190022982724265893323458334470485070313439585328841535152105063875481023765290173732622166228186212323022948277827122973037443847658187796450573533045959631625873611041170237956444900440925254549606074283013584202039749031411078491004911613113064212457099973062118032910000793089179142520978937065172538339018636067623685949398626924538437841670193020055072821479885633394329339653440187879363923629253761975186131251662571705242654112148737305443358772404342894807227852019899589389522003037941203924284175440812615832203699462424730698891055425783926074831683979819853896646169970746225400506531038328074869003714967264427484423748737561095743990250161190226581748091171968351357469476597758276252461693107861189226648897014164829466614642310173257042017583169071277755588516645116885300678618967957509227406457082248004979922366297781809188367639244175756480970597719614360782638890912614459370176397218138284223312456429206638451576994431116110386475048347128095028973401681740366544343977544400689626325497591674842497190842412436256560155626576413813882423662419747761252756185619625136233119867879277669651222400501383221926403650452562000399595359173018957987665784424485378966552896563365507838643231092720825932546498214831030691987986228934922483837759529854723274901610190882481862826953445135133341350570188005929614204107911542520855267622081527430085577319738651737150373787284683930684032309466722506538457560676349885148335996994556086383944286607723642736162640622418663429279514060157739930244597689249903398778542942835695216835808812452575034728756528111685821418295179348751866523331353137363009787423347036354544273865137813301413842329141035637787269356896116793294565183421673123451468460402348548900407513200178833621844469462392990468800574932586833602873692452331590140986809121857855631309822486851989101922064230286944203708920369099336498544414762831080070074105969724024094130801206964908205270422441643584370891110415810156201716110277244623760488599752388222684172925647918236267528258817318506549285327249319488556515989635563210943172327490393212249189443026094111485548074924236291496802546929629826367622704449141261158774713958255290245599651045099945731277938899050849528395735490840648872819474540818803301367871978908573600827257204067831084459105631207120089573681236580795664039431565061788718352750362702574043532127010332411264438290256844929147137792134584682298781578287142357617462300651169902158492607854009218884522746996990613884575127583886899935137889747904004432980774277846135659948811162744667824907486155630688055970362194632323833095825918179068969526408240732128987089887668985715870079184798434153779851104722063826019425074938902573992427484989835731232477512355321736486865598051305430242025268713985998342757579856796476834414811521767949618078918630571401386124326480346217206140016481698688363705236470566760626152107947886578389645365231001723184720434199259051462147931033301054207530179979070342322723293748392149651057679121433078722841790596496313031624942602777610752575645379286039424542899572079011981244220146041336407403826423232822517641296095277264166906546951319580222377022108541152627995436363595135421746418379524621134197332317393231696076954077301762599661186888415946214101311724750376250662738658649188745976783565965715400350729685788124845831331807007946923541740266728793452326527857987344706842291641981064049947698172332856336876151059811744848672264132608435393461675069335725674676671469393244491368956619181517513096244557898307830932046980881478900185505871310695175914574355221938316659427763918922631480133905862694165461548510411773645051989674209344994177988979046049398980184968195400235657558443461321986328055412068505641294830705676631189867216297782464710333556103436194784091950265506100603146402988450027182805627977152446446003538434612291317500240178334348312243985019973136927287385275131095853603573795929613063873011436611728879556008649786915964696969495405456951916366500635780774133760008876702440718290999037767413705088755485559163777094054136994738926253332344612865924486325823030619182539924884855032875015319022956949119245189770929552757971115548174867606763243641197333301511644988505108115897741993365579848336707500641144964063383967513505050649548873461830575289718269075316369292846329415336213638150001120595829788240563807390864530893877058860717396474513143468615411675958418593548975003451918072102311922664245641004895064198034066775046789270174044886800022608693472232240204218013745399054997609771502357664062409416051569142643072588161098926724601728178423561775272034561341467829777335407624778963751235536020500010391593124804674945344608944708235034445263787187174108744564408789025645758489172831950740015366591832140328131616891460322062661179780771646361221812516308263147012681157981026314345931890378594185373330952561575614133565362442674364502670638804442982780350217782130204871172513715282539486590100956918595387543899786168453282616749660816650498112425854614354824336959835104269968721614524464562368602344825437885074559164003608918415346531098328046587182413791080062298005845299832098864944093624354076752192254410148259919227924302863976447508854746775960871405330348042581749128140596058563824762983778734982974335588743360074360134137322211983898004846320080902033823406139985430876560045877451343403993721702940551986449684083020350150464178265820960254002046105357840253080869069175207866878034671396968257267703933149712429041358654134630604019801785633780439756024970707378918110453851919849557208045381736408697356187968278681612646766203249111543040925393435938136939632426150574892336330994015171244272022310995647283363434031981934536610919674761762705755768346257646058721558131821217011079644444414250227494141076388117446693826707781951838805693968168150151176057479500857596174966538728082032884603141673805549347850403787454708154652685769146259382461234447728904296614341391517988384160277004231925860891276201418018918400623283140973468812450752693268051020607522949352993221579522313465121223165716853891642041216087689562377392972143613924689515075580569948109936333511460040397762542735373203076334048419341564748493419201831679873859906959102105324491603836617618295897847108077004316323067474770498702089209730106775348215312279823973350285644700828933809230007083370353527414708833181938884924426995978809175322711893576372068258673031111391641325459648749970327758318658725510927806811625824697161775695645461937768180958338099132514959363580914590564987191268311498230620194982075693875317794373872385676085642486414073337712246045934122441027267968054312889507463420966248928314311757941352623461929755689141889034632934406449441311934340168293745511278363000119058432018037380560492812897132350422772024450303063847754126585359101586310750365544301007548137558965342046133326395179919611667965363224507523159170586880389029254651635864299713828548651472772243431336336916753610169460221857175094443338084838949083314919156318494662015031714812747335487959826821438822180214335608857867498031125099943972200333474068405254579513611737516140599049156401957088143816658469430298135126148505776269488033194597089390448496830879088221856644569697788386385491859257988863958215639944371613700896411330818968709366456840533436040235460356960739165700607405319103789694164522579831460727655092046347056956039629811812266687012981955037356344632444396891515468420431124681741228160673592783955153012178489385508378487617304402798606374790765532334469997477923100110912300462321222925899059014447293546632349982645964123368076231150862184044645289786347936398023855607813742542790799379429601608328194059143048199913891119329900265471125325676865175082829283481113291699516994736907828337955572535512797113201344389193344366856001673693315428900756098622891951158154466163570775714258977838516511651700357061928366199988972697458002199227759087101544843563342538648978051610514639005543015687923758971543426228913403097659366402464814628926895666059648384006525431956117477509969658211052583002903464655811739514544835821256765718968179529404573178170463115959888725012260378397862048313697674344621402340778526236735946984206685602754187676435406881695928059398802060043611612219593573009466349563280047674955086753368185633951657534622139307166174228318128305625185752151540562985873123211378307243455530491426543692146124293864906278650120450362030511719023604669359355486516324036149827555962644827875427792462840062245997061581494860931960895101055587030000887779971977618081009165567364750234145384546215863356866359140482813029192028950450730169643183555208186610305321425784761165346270675317040550409781477452059237061898840998904560737929006193320218301352229645166724316655265218863390473895630204997741907449329531891198788018470605314285518321911367263239484764169608323887987068167240330879128353277645584817529793946846982503132877892537025323718081251507264912244895997048081748334991444378682761241940925983247122268444302633227587740386115882357475193334551282084105323688985150121957455644728556530378992593286684996997533873894417993100556930632512558848796036732435647254558435501423469810120648832495673278575133080291840986035687520914806651730596317480172583979615270318695264893867185212045205247842804406153678845321522694362664229536931850672756231445559804344034275475681557807144243842712756816721796183108901010666532086704681411230848214205743463154946388460055200379280468245763795775118622732434989464133817936634105733637400819836881202612237102745103628005700729335544111319331659943229855551680129840455176227687827884491019500800280627183464822953759921102266156495894880719320942135581284314720861076508771051623119243456469049510562440027399068005854909503184297265279501766832656429709270140430704071192368691511776164352187818063737949492571996030216238885916524377620245341230388642709448480707914812354832637479941290306058262289909770113262753341326528640297019931135225309708838135338297695550789519907016244403064373043434710665513474052142768243572576854356103579980688683184195163034403458687528664595551219340368908007655373086986238604679511600569273350827975058567945930148979142735554503274972119779523387552374617790042873233030847054282578279841960314173253157852225579382308649333365694064037654124186372851710776757127330426917388215409462074151640491097319690888225400450031320999436403692674316226348819535542584886495215976300539673549661359117844165706790738162021826246810684635795323165971523061424054292848677180328953315835218657899745580802425448946718115387667179804615802089596763143102504703959458944206507237522598257330682503058569328175004070755489648447514970117268508241329434114380477982664685595693259653637461036401851791572565362995982712358208092302057586674887089895156997038165298917749341445839621428576367742223873083486608834732142455081055934701705264889434845726713548223071555444612310067794691352209774521658834873433839293601969036494926944498531840712857399824544079498678080506776011621745983438253610545985739228963843621057184018079193299509874415125919921427240442874151775577233843325881937786293854934631898506544448885751202587391181286542221388093322643613869699510012684531219781593894686664840175616119841254983051968292382490458662053030449571416211961907287575015442010669970162402661152032085005211464571156513832251097637006646219913588068027152416096354031752767039334291759012004942823229182403464633017163627985223419049140385061505505199577102661178137904593283206335743348844511198101630422197052798214056239489951019198260370388090649485343956152860343433960451943278567533278351091353726819500539628189431553513635393539983625208783989395188390170814125149919998884774405292409674076219392751696206207698538375762526018663864694894203875788037033859335104636750734923899030471641682550587683650919562688170270830338350520625244702003179149483518521623124463139415132820171432314963969513467726764020629272994595580942496192462435298654639589095837446056953494515815699937827287349480889176039178446636954350825289202171401406819161436713690064358557015917928778528719374542520731122862886622306241932296794180564343696723345385226461100615912873792876434475595881589530359584453827326850044361078256302964946904438607384700551265352753057031044496772097288292925394663227398214517203214671309636837565789232328608539512074734454144593936235874559246075431806186060224648907786307764275443984986149390264137146076482540555506963871590913241573217971489530032964885331114975486227085829270015618084815823422216326667584236484748136585435366460096998941993461085338631206672302985600488444752026119681199993771395142716215452861784149043583474595249537557094761911743567301705965851087799771707767001522011372525780274424229264740018031229978483585959979981373576862919804357626740129637665038950609780874903564203946638650676196650354108985597237051414136473531061570187627554193463077490683654070209569864660587684282953333269441701947394422898379638781781177457374864274376948468633016567808617175589605930309617173627489298003187539273203448035012498539585543682892051957334508749670361671462801587000596292745082550575159238668922909231370034355750703553442046232496246800637909340636987325351310859106161315756303420380844990549271310497502043599403372152903743293769152810949585771587005393381544255437699865355452865701108976846544955940057706486993050991182592981110103803115675980545880461137321111223563100028830051695443823203907258550089558232852931861212149170937027671140853997863673142412272349148417117769071652294490359740093675144154371246909256051648103558018907919008567248054456240304191949199566378460688062570509749219085677399804715192136515974723160263636949023082174863868833221490294542013714279198976476547349174155471264596097137522330724552043060681384294842953453506802233211204010943340574835820315796937540237245602604443194679978797139965185121350730469011045774806323643107982657538111787979795713660548841738175789015109318973467073252628815119158545471644399786280053356066884104930857101405527644271351133775385996535452700825732925538176199621805135952309012491961640288266271226199248743109604826963290927176607914716568141652914248871524382062488897460658672597274641341223023210214876104442921736040006803071926819491256878667944537057436547099088538818584193959088411998775311494736627070081236881421242829203101169878667037749151465894778386694703207780527184627932933252833838085185521417951105883809188890976737057595351099292406365850660635425773221229266408297645569187763082764277545484640439304373883204554585861340807371385761667843990720794628200630256594513506547458978173271740429891304609191282202749795018342809591094513299968597589876258148045022804930820088256772514629768755013456827562782719365361590635210598120832774218512401650432917072824457489020173589026781766703737402529001622587256657886369110360666488080435338190726445238685890197143588819461650038391568920357159112737676169529318571602055694333852555609953829397774677563711119304123864156388313184829177680195615105944335655383226051181308416819141665963631115921640515584882845526150627471288612626206259377377723090775985635619961079579921429466866025656740669203790854683896421965087926133760844774220733876517141565162222278069509112473608021080331369802552654274372908661040010332721908447894031510657620124448229057732251717137988307990150102151382532736690242675969635574809552943593471660082091778229383697517777144811582100468540915390561851097248882080429631403564493019747585420337085760588887042439178546283391171863913015663251430875004574555883156596628348428128273586257586661008665311155189886686616344189430783619485440007984074966436771469855937901459977027271499754296719091144977848468313967993798513010707218057180766601629682730623421869398364024378590556294999525879039971201934237848836306487693243365415460996690958250454382849841543692747460269283560364947624703314631987395870067485114349954869229366638795104068197758441156581347472570769382598293655093374549158441974976277156143134014382612330658139207929815098392790483021586465890681137829571746165177156112354853148137879103886689928320186125454928796726420314141222177808882448163914632008162187046837136087898663743769974392701018958000871981785136876578525092241072787040811629871250759185166064620948372377068886412445379854527259675423571672493134141830287679842502837233306153671967436644078962406091150525505937025658816532440424003500480958754486963377404816641884091702063955577509931727686844430705547145190467430754924089674850902515172830658158571289203773146282157629304613064348438712823700251793872914308683757786831679000225144108961144695019629356255181699761678000191774724637618926352559184104845929960459810128074261238282624821182835652150538350038166582046874422149932001761840718657861959913269310299536195511350715520321122979623785093092089587101109223967380129721655658165828887087017728826809014365391792885775684880718259277369423393084422823419305436380692908256365666942084680291431137251036452902793232098824643520250111243456506332345624184677612635698561550058160672333114950277422478452333244798690621217301107643852910929683269262974119725858102699434760852636630476877578222309479544012652998832236406754888718353712019146625831958039614529974109240399801842742161966552479343637172988620953600545607045815986182131528757903886122612755261412326310836204672174499565334111010293742321303796475766795183635308482388242526515352963098948262955421766619703046913754684469975253235885302283082027501434659021110490260310311532505337264550251984264672161494042901368728509021575600039501770208773318316285104883221829948460234086273945078148102925978049273219083020684479885317366222884908837527097687945788910166358129441209308254867681843357199916171962271089929665418981298859025358511635126033708070339483786267440831189658136585097106492756883479605202511736741073289687807131120270184667850878015704515284758575944273562082662176648524744491388270834284528857317324486530318776663132104764875344179714053857506046279851335771249694665910529599342134867796246731961900419090002561456617880877241926483519444504455910884141221574390099680786169934567942328009143739884955972324935341259550325602273510727963077657155566527288329916954011019465426682335616255685545407736098318700122591208630673330923022283615909133623689727549045484500687653515599914793885434648750818530074222247143743034000024769542865881151378084496459692429075208511522441135803362559948536807987020938061646894238428547216078970914951301890114457131185685808742246869140799318814031861236363065073249563041796298515926421745211952019862809439635455395316205829064829586661562561525335612351985044276315980665026667402398708757546085065296129161010058862029903485583501427264389057209102198254104829036154745201084965047149380796492303375798605115782721849129214026948717494874792629783561379705933012545554074649453802204066938240385738286224389139707370307684570675647974160611263224308346631792873930341699336998489593895077950866245594695835471205580019308472257703354146705151946557820180827925586449722114065718173867740560101800422936757349456106682262306867904413065205565454774548416862372394699218133255723578539341774805858968406526408456710798422382039140930056575471099850510497230913437950504552228614360324443717029438193598461374731676902741117553253206175262674710192168344806669120555787489009791754374766152523895863638090222376973119248283625435613388301900204923762006421580551645566701937854892691530295706398782628914966999082301997619049701531494100992525688246031511570696871684925920644659282204828762769363288371891311469183973815664864084860922014363571407658049279681383007008804839119909724259735472984181211143762408594472043626576731433656166166409625031119061051039263188381398195036350382441758168921638243751573156698376151934254495934139249131215429436282099321445421431318571646293267410235746676030687802896009825488243455794539543150733507833175071247569200812380557764358208050897468613167326762183940771150356964107813262321132681104556858744462016246694347884658901423474630488480163550558772162166909895795295940592987922646991766518748103608860684210436989749893109347780245628285159628421319812359603545939085349304201634247803186409116297104991131650778218037911010788361319970742545662785387855902834156589989892217505360730581169847390173373167735840570970400967764487020420666302764130787955780286491708092110542732688801470058873667261711795538578172994760683616161223873390772502932207907016511626858407961716784163968379557811024402305740277306612381533678363898315754092936614806098713637210414238357898736867074281064988941105694870677380548380545941818473367786090395226934179550248028230671728883828982424495849425998599743613750030359126535082985206313867516223806923692755779049347067880534524822866382885801582261873512554376054251950548044028041868819717604184524802370953204238167298618934116118558581012490969443169569066706498911189713654961196616259870172409246951986341626992786318280879856857471851681346814061608607674038024654682712143311460179812621899038357372434841571326077437696535596616397534397514547480358533138792750177438218738841875432850074398567466253222464830959892157668306385823227311309164091543954433559640810126213411637878950643534235529069239130763249123378128182555747257165476590429814672618223173191058915816141792107313464534486965429002908205135540727944631046319510930850010572686478610547740889257022138699954042765084246016769143354887183777226082953588547057803220334450011966755940117959088751148588487915790343118691047277718251945270862471504038860387747525683254581496000718372707478924415943650225313694936560369858124756702676700407062125051877130766242512606309844225571499912080430520780304114647766276942132644866927321805267859571330067469798602201877548395953309803859190992221077263906481087103699229855393380644238117202200205638759663751213618664272287106531735356547367410842879327211070618283719970652304078934103637802357321474269688969126555500304723643855788729486534261009661888549269520235577419487500356366356113490712276689975547883792423622775934092426392836036591797397273799654952833741667777750710371863591813178292107170866677650559193955793892050410159353024202899906021983252286108219301211318573131238826405285953881574212958711863742567564144242726809158689655061193415908299360728175602145050828076694341640094766523654906614147628920287208677402263918758469395755976945770814606834148222027738731263732822408584601547416243329741488788793565756115767286377119653602973704648028229250202616030746197601154477782836130513350706067955601056097882084190460454105474183562175018685524499405200097149220143251400244723730870233395947501746946275371430947403631157855289023030374111103875032465632763599586983900752636693659539221728432814854163896794576937504336927202952755348182116414379905965916733678478644908541588138093893737139871049741327926352709423170029822580666827903201213930660188650267727148176856934159041277470248898066253549169862829263881933541185229027310986484390433066435483909357126168886544232853753410170754992313427709785655838781005052033419641422895787609112303623045777973889936352381513181092013964777414527298584311043865231814878036574359290681313964271547703892757494004605478250089962610216135644590000442907915468729041524283239741403710034083593687756519943034687784015517350592091954889816034056236519520073953802790276587566994764883427342989543218880711842476678646353267986431509661880072700476989232847718857124395393424782887431473176629064223905193040737204040934597575832726053202818873314808482712648124040277391941815152738092222874999951136422770373423327525183204468306446695793856306399395200051859293807849601964323532279403878199601016171740094806686467923524098453601624008373942572408300437774737353110023003545480456791954040503817663324169504170653195193891673483748171373116072801174765568124574107510230774651493232379358766390601608732114503336060792140905395825961878289868615833994735205752026177909999419208226026398608926318125109919660630417165988962617547817634407079022844266699587368493700979117096110063196727789248985569642395104949487268805835237053499048788098693097805626813666161820276617805756053170186960592646249220172490833967638894033668764816525704768259242775966445188677676476951999676110644350593469619558696167766348049359063319655077560540234950962778095260894891325257417777300521837962724142203578352730634090236794477593571431107621890630539639540642424513728304585148872722944982312230264795965103370566820005695531107499910029836019662681159327623406834226191203576182534890619899099764926120924350154779178020682268794402902644632143254410356912072424842711370484694775216774114591978468512119334211425591436233945882442387803781956675158855772380437384693755608036013811546177610595958248800153997545240707806045007624605998063156712942823918517059627776803299809059806398155033009011530280438490126638739692905745997797920494194281043242281324849686134011757128291241242800832278275621272441262803203249921621618748460796625266001962936423115577983182613394077586951264315257546890092534967252422253282426512950156498653836991533618723095571208357062916741938539048570766424782156532589076477419620606424512646006283608255831052456791900182460701692252809561813863575895085021432150988992410094148327990283161871876683491707454744455843526284440995248699173110428575257367459019806713762634970301688823518414460993993086845406245920230558492853641159631803532098495257680245652543249006969299112446134809456262165426199543693626265535930564417762482705729033023154426097404504644058307076896822261003821339271187120025679029968710796626846185026071977184862956553359160174418716869576487116481718553737626819062755957362956868435808788745636572498099681745907863175085068389320698867305109310879839400544393755710088696318874171627504994828193641209166657820675882452238800549372613360314801572103071693615656139047781888019071452857464002821801558347241876846721638208004674220930540002938947935186451191153904133631669986861602020174406733374656376184038061508126011753186752412895027572905804313561331918034642359313643505367790661266377730836946561921244361266207213216771249229831244324920501630052069768448264716856933739145869504399217014660979596604958266394057394488601867163371680954707673444956824734244190665409220868171181441227621649260537995231456998451872719992992659259846159208744283936694597433996464050255476721805030715336314711000178977023163359046026428675353035039917295514332417970775568028700097786097154136982850088758250594066171128386816843134925045765026329145788476364578868737569968653546173049859813551072917827370031339591908699186560244508503499762185075052375681546885737177442289403262630898930177044878914708624296932232829628010791786376861732114277868999322450818690832136286464410566609868862917193374321549673697416066692876846986686070677048740825237732651450891875758888144470623637688075209784595615403996012470302552810306762578954701348463127966365677295173854901168563835988700082265109287920599860781613839890371754071023090813207528459547816205058687262926549231204971504322216663647952691992048614303717262567857459031836122813418383267380421124307932520380888160494360324979325880778703422782498742137670825295846716352585154581200010930435726768479457131409055517085429984888433620039685747326576240727806309502151687019391030136960284195042562300113664517375775240345876256670203798678910924041088036185319284124781020990330107138927370911768198981448059348067068274578033642669296305966840027209377814156712674218432472355230430003534892061479215065587824840567040402998032081213413893167289256641929220572707612150457202148328012678810024150825935891176936726112343758494475343418988705260913794604233390234744793033753172366614151533511265479416480720222305750650784949382901995776632411683327264005471609788368601277791653225474584370768969325124463444352531429195845963875926434006530836671520045743431597088610557715220342407848857879326780034373729741098813014403389920803357072081597523218761950242193307207384529718508539662560210665624330954460766743796619372346545429686857765109821609309124060951739925038874282456082263524985659268383067657426804022215185875443207324218546238271154184342735555079707291414122097955759398549653349431029688640518888108863927986377831618456784945732135598871160031906656309536591265791261605961012877430618087977932694710626238158248653353091185511556418531648004356558468922468343403309210752825688149043065152429535329192050729117570570028986951031101396239270841439064251399560048626116810141133030241107224545638155806124506025488222945727404399957455707961115678611978401166619352991499573674254412922173049844451473929456292475464729278155970131183134934237023837960038767148989576665990213797090084318995512356103429858131729130720952927505298790081639631258037692263689086846363037909493257547831511636462408277133265336273464662936466319745664941892492404816430153569545756057006369401985183610150991540975708976112747381011332651025462416394485913887781431357347773299307254449884316787227298454460583289770940853986165712352005164434836885918265321591823224584264328142861880680821968646103409148105893125712291517315774699271821186041489048470193909165707679528115442163352160058207290311208658117295707545573999793368251708958978533148873346859336624893232592109193830368983371369383751939772265597419759416580616202277099422644234354964912341680269452604594346002519868845559799747870154865100328286959938678988258556667476986268840673659752567887362226125017906348902061578412176689898116244047023575767674005337376124785476588025146585012906314714528168321024130134090049152795513421387733357813678712625790297992317453374941319825465259978814965952517889786313807559089738609302038374421074493013469898593692139421000534758937221026356625811408462536875323806097589190002910792828535809095952663594168397835975783520868884938980795478770256683067811595528980426278264053604446812265777101910109505410442210482999079924491937458375208979950001117213257025533487973493280234982662902316918031031809414418942603190644727166479010882284663455182894829843040899340075418095923416088765952942426765450955784395460411247115915709604092614007493240099064201602401167326006347949429675588063639094811744470506183560431311347826463549559323353368027983440159112375032784031081868053845834408360762281892408392819127178218652308158855898649845525610370231315930051730250753706125937935073113266787855049649198901939604405474814264743484363956159136098102810642911231908846762813739611889689112845089379954026737777745427433182079125212447710017843311986240160650035701860333999099472551129924510758673309725150369012676958831205056366954826839425292304821619902305525123540522564549504139811445089878520791256079179984732623925835000933636739338641651950307934814516484785532753794951117170330762128202021462453494657951814809486190079758161987181182449420188472542476761704504711120296715672147104801063334566932433534933714350868447858511223567539802827085235127093162115832219265770071322411854895592668250410139329614733907094289942306089443577490107935672740532540394847440193885512236547007757195799877570284286183970293832732041400445670622424059001432092196211151756937935728716427719142865586020507601102290019980871933468869462075428176072633317301881860199213198210596904708381927384290160171467068419878885725707295910033733220455280356506299984981512704695534119515706064199966026867954246628644648004550480769724892322389029872864164467245574475141995256660522892351957955517931228787491608688244638242774089894744332932422265751658620418050560068226708848237776171117962085066598092457231682374307572950367324875128382068905010557381464796076902811647445884454480745776014644851231426825718447717729245560519303428618238829182991298295978457013506393082302249201955577873150797186547905221046196113417509875022797590138385541908226372011959294914403279384322955411972387144280472002666947002422729106210777042850045923418536322222121474911532149930406273258275638079718623248343034332122413742037288973770638328317173476976238398814588847887779808465558001746250658527557654419029118787084832860370275523857291170927340495094066584907763533839009181822200260002671760978977037521383363874015460067483324044725937286768533539159809210025712614465981136871976460491456889214518639262560263441756217556089279038813266843622313004753338677457462074895126986834572328803395318986748924623767799272893056351971983415027463536907819581975362382829925109377748832514271262335680439377567930610342627406048261084764515381205024522516463402032481512718490162393875304895390731932286143158215880652273374658087463813946291729407719053893024559226593980982408158820624337054076978655517721981574334055906880333083829867554972555838855678797196279725879016786828436509471117015225278800529670936001720141724894097964846222273578729142657155716512566771126964518659519174432775457783424575635089837729797650084019455466243470074136645816504038149932247623882863821957020081433961259465577033825868410347038707507317223088625353835091566786532486282913798816462209846927771317817883724763745447587925534901465989074766372815003049854301159906995784161071242752925240841977867209843465787517568149540079241637577253808220975899274119880600430948907034612319630190370997327126063235134583147308233827990988885313951177656587391009925540030647955204714372103600724498291137304572054706151406108630860029807724492757004275843089746148449202317606585815618599721530429447206552343120888636862033999952694409196742022887551594638994530130520230545160973719848808133512722914541886568293516325573577374217325681938567964141758826608703107122354740314390642177125664777744072073184351224021088096701224227365202120502251519206179694185922400775267448049597104514972861040095305703069995512649031896713848764457304381733202943324858349328646819690520130387273419124732236312882672929545805649354849542482669406624643735584252259006819494203115053069943018483626252533724929349742290855350300893583268992830925139616130051245813589339053066948313527536075567707930645348418509165620574921396644790028065094490427397127812637442565118181084627935152671362921403525993536487327672459226857405531222851989172156455547237271862903800119003449153633540030744445997814495278758065012790415119339301693707616050886087427397676948696690927827164907357353296867458866745635084890709314811734253610290601825664239699364050826614990165794960424033347120685143628894298398478713345025118699016427955463575937399163800364641488214377649671374863706252734412299960295585871235101925135794395423415349815040342062677149102800296254985690481608769680552224121993634604392221308293932730698987528804102281112361996568626508918422491384762861459401145593896946855448668457130492304672331752695713421818440013732112078567386058985595269737506432855348392668196207171078720544138833432191342133476912660113903463471377915013662555905302743334729185453753116095833208349765697580841939873997824999787165985686722002849594875491896293286419187308392228803693940862110757056592750063763389712790828075923121022616350331577676595051562396590873332961895884603277273133248473924349715141781170445002970305952191591191799609210246638739373557965680394316822630060390877035111488193005541591171114684651376782870961324985910690261182594671440859499713911675634914133296754738278777581809183726162393075416047197208609955249901250288122384720088398159937948769000228555393986278098554022289231392114582600734181893136347601127375647167051374585981215171137630908500105653328402707238369492095974861489234892967167513662454360245911789237823817838538290112388350475219807060247426558452987355614567386189808296474488538612920651590134385470215448212488377071304917649061568660902104226010296436225694579017961946796273111021252689774597568833260069587908147098403324847130389816243753676600324543646492963702193647822025552507988000837319625279339274938041731532499556909858149947543897800393226934152219623773100714547786060947187600614382157458929940832216785547941604417038034591400722446926723500429412926859862733812737948159486911491006544760350631966788120865841058455984203427359926289344241047371105710974784964863004133071405452352589129937489431817158976818162237153795196520920615550905901603911778376119777896977709251416078315892350994259614288141097767326213129376945818656249173664100304614007177548088978999119384455915947952754656238283020313366223030780997862289795108952129330060869989572320670366117817029333446549539479902904136515466834114253978977227576651880136406579885434398657188195629728011659227675129188048662486655611898869530127542825414992966172061336171753764771889350384550160041377502688524168654938370457077521157143431625601231969884707007193459319079232460860618616862813159210195635579432779953997545634169401934039004597863621442858676863222815308401641463666697723018977950741758858594712601432969877287868349509592174268591867624079552462156131006641991031919074472020500663538492212955463228878119869573974510736501572138981146547022232696109911511946792988010178781190469667887515641111651400148238354748426378768897399072883805526004075963036733596108266918874077016716103960355613166930981463479644895019402060275994065017584342772784811285210341764722897778866787249179809827408912292606259485576956364540653334013155288202625404213495262760371101715789723915246203430242887514063538948632898967443969966424978087277464769913283895163497945368061365029420668299226632270789384204469213695009778063534501358573941109488269145833276731315115002928349406207655852814364688200539820878751359368596031411714531648125276029565911420528706413549123898717976413004810232058286163093349434488992442181214084563855800879490796263128171246743046589614208409782456562799139174539945698946402764678255360776386536763029444451052892587196405978647499835909642967228056283693629848525657714003473960716922642176802265090709868756038305766615413182765580858057436555074520205130688708638661847154854710346762738872253062564968033749890810205793224752673956917314053121716439924198107686044972981888026032662087941053203619130240914702398125718484687624744401182613701728987101358924747753956591282986946531241170713010885302933429852911883003679267274440327393834260678371041827636962432859315745648880506484070142310596767629693215970897158316310720689317810290637658703811768577033545968020289511060308999978169530895320776866957797196782157984998878456943182694474310603010665292294191044997117439829196933075598167182437390365257323205290384896203042279104638747754127596774791345703744594605985626997178381648862683583170861026506051910561292966803552526934062859574115369903464362631671450593968467113060273735168465183516551168271454569495614576379760609297674562765408236563010775314765124196298026801456363634797873362211923996952396761109795470341696086131709988380452741608005001381438431141354088907496245720759016461179098985141470780750718440558574374064952943563959990288679303532379582310342427310543542931921751162525514655334159807089923473494172958418955490525035803195644042558991354899769969373178147381610793869656680858750922741870189575890150437768868837085067886457702742330226624020518315497770436603384342986227445454542875822820943630485616592885459771533722967576309464966488203721036211788099605764456629310952785941326381450357537762769308263994679942409349078916531456357642635738718336292689821942744981022127969824344647563672714301700956760485258089966349243730334782621697754095219793290749248999858263640775149046874055421536709401717783924907429432398769470350061369488341059400068319772257235320276013380013084092561252882720135558713311549405373153937197263179074319298673264818391228026433493614850730762006117697385301435872974564873927857496353023701905694807730854899285846422980106256391824007625680405468813227294263999738031139568731478776876315275427251880440211220476615964989199827449661283537825303823950975386355311775267889810173053908036738038336384403685771670224155958991112113482522647781331463281154288886087790834089461987731213082978750551329407083683097529861854935581560845782909991245905633740203110132836185096562931510460553445982933588296697997144598313488142729347681103135703831278335488070981914711521386602420727809183458649073587267659931770490435108057651294519436157027429636571448803324671406238131203582059575780324088547114157170466423232088892297333638835034269640717243887861113188247336531287777334612112668277003312194202594136939949718080133801340584581617465265508548062596029682412164395017352052616618265956555544293500587348630179171522325959124816898254570447213322660239041035074677801852802378041162191532571216003778015747614420180416185556629588462787136507910245636877349174117723272482385469567549496595418622441145356175362702762822015646649148145227797882366008880331074919993014838801010960516028927372748145920675814462152464146316154899595477886248417485623315468214959698788815809834238721059220227560221011456176628045719339486186472859906792079885077401842872209386237371719940333377043722586993925773726100494668737562229808489110839779859282547837145014110215827814753507767138886616714970575747895252283116005130640752183131295793369330452922293601068992394325791616986182295311793515967217036485817315618412372892728203219549440347336628710747314165204591294793414783373651443179938205210595863262454375254827365848437424212619281181183782449392708517950840047451026345587140888676438886736343467858654533476382375927562007776590898214667510875626139127914243430585083832692979255682878660773987634593628294464307581166156015892825730901912846502773188554340856426504665240971459833826324164075664632576956922390821024127551916091580442922912641670997463707046449333473670695080953025498655985539101038659248166622028855236358447875999638826791040826273904152437295812689204970544929825580002240859168829073294049032378951579113537603253622649125622603660072773423897057172901394719242426423237571209597017579415003554728889692384409365242318126372219963982931447825093504108339190323988829660481757384008856178974302826964163152558586454679624622824536606772006541911153551979510094693386004286842126279884796051169470036543609052370915798247798562357151260983806623131756447617863890330925019082188112184026281358963501958590557342408112773603076254342403683394864427758233418561468112176731224677541706249500232545675069615550841664748702870876795075201968554248894447242525984137973547213984292895963027969707156803085755460698831467724766305683200210327609366818737472333029211710072142872799032639565798535298427052923952973368405382018636461842097340738763901525187991267201395151824273754795639640100113391783002078899896543770446896547592234618393276362173840375120244312534501570688346439469481135991068233866877055267317922437196401243021222483058144135989296649870368716788853814749018128184542443555237999918762660836925374114705618934250155825693170735115680438386411722881854854337853352632273040727474371943334508156036224283542925349999646642339062256213219091829801915901202002661396622895433227974963924178735267463379777057064424930803429471997427289008344966588178555588888637354143991434678101406024650565800614754305653499179034319107426728542598761881386731804080686037216906322168398111147326190957159277393879734019299492918437781432226916761367779366558007327022522771297094462314915419572738575795343480136861613988657342885546142899681778209658947336553147857959504065611154478013076682829153855763133474271469549942061387869383414041556655818736755252963979668704461794103024455800053714871418182571859711047692403979423014346992739559070382688528568279889778514952555968698359656042003770874289113647780909778084067656349196875444823486410905516265670928084632905725978384425691342301849688974790421589279714027335516138695007615318947107246062184925988364863581842334680832222656565865699271776454238858893909429368329060304274013069540365582075184818852149690588760021488560122721409160894960765507083425147328182610380869846176769294913354565863078764875891889695661756065588789166120052226719640479922447884002663197514803672426382161956578215127474802146595553171488154290288066921818637994892266968879922639533790050541916920686591875807309430789724104808950078770901299376907670310674254754995346857590933206612205013656342262922395699738812538479044287382111251157258597943169537672573399820469766401119889174117347325894940845425343185617224973057133375271682073654924849937518324513555344590100387643733693664787481183616209779222812256338809544029151036475999933033841219520927677827629837681970620353120987345539054013924148037564369694032288407112189725967029383945232376328446210099232169384149275572165372534788049251342819688143741720993675079648680779245617834037438898450686207825454989899472850396272893375308612175920857026244302283000171307203498513217263512024158494025259069730932615917095643272074585857688896421409703324919203643705421688521444638826560119760373586211456719690332440289945394506637878717361709034100736687392081693786157091174347193456013667842733461421401195262039787175026457923052869797497434856825778104223012430830870418947359994419676780058565759550453545157047615269621389066621516636816560686896270803316030401004409340029549122476031565444319821922623049034509225319559806343822189406313491322375068424870332203811098414660655651901673932611690924355183972531303260985442301435650468984588691621472353390519496642391495510558566212835108876459523673237773099115438187669314433203312121076757928947779428936670899498464840796702720831919171581301665546354232687301295215405272935273869110727408092866873255476159295808931980071824435399262524594975020703295424954817165954877465070888325542160087592818650914752701975102979603653544109925365306801593295546383551166449626336033361336095380267779899880635906344832920526768270062836505319752572557066074105691479193582353060887831763434068122772086024330974395211350425102979942918736516722124206745134663159009535883265644527934393504497813190728541759451526166803277975177731763029029330254683992776654889587957187390819922132501309138165835348045600887593283840321301028724840351308432145161811382604208694499986557239671272069526735276030174545549876483756657262955579269330576563055514266294354862508969755636690516457786406047157497366749843167946909447153825472099673564213997547306473261098658734222459284980463949202015074752095985384819517446515317635382549284742325532336318631745135552344317469426447134951215740583800602631237402805925297632782210148033758474995379613386535037156485397844652834919969123513757290110473995149298805567549638452166616725073142337019473092793688831479810703174952757410944695981013715128756754707909083261580157641781792921986045340005739088660132365301204325588168077385872679480632798318918500388453892567389806986518315670112889283380465531116688362894190134429059829347903042100322951274080930928392978678199534103532432724408183147958898253825754006466209826796200433841191167091116616751120140155507989234932393551901260939293656450977615904763719290262701829022349788519754483582466894398569154683145061712284449198471845526293491990540956056785120880474104266382022437695539945104619899191996347816165393846140527764124917721624922333911319513994942982925424826333344364250988746936550075351048205432930755102616073837089423718547101195544477636463247907603009056327418932204435979337267392269107452277559668327594346296200946992791073268078737497830921529034511412447066348814548723178791532120521568157878106830104343658743415680247089082402041046557153476541730712933980328760319170494232904650494488228514958064958391070684281683205995248976066307451455843295585774373904787683638958518161937837442008611670685037066142394280444178910810507569285816063013906070855134715224838228407744904705608691888754851670485673796045426934268405239729617494170867139400152320615006767221776253990098045288775028843562493241956545563389569086452409246923890709309410764836599896454892059970023399734466104639705113262711602546754309676253246328187549310285943070191944420766614675481033232267623983334537698862605426120186614703540695598981485007897090104141155654525712789514657553578368693587716473889166774789418239495802329808288705814472724684167754851974806431246758667740130527583671628913272126303108258949416529230516598261347816947704158280725565904177327930224442363838441464672631191660974054362884171792994495619485495844629196793813899129018933693928043355353555474024150998187749556224090962107807579384766536154808408263285572198224768976164762631767531839054083534202710338044796053481831511063294823759984916555184498176156796571201300532977233144869320519380334848794559179024211878620024729790085838369421119928617385907224079374125287184390071797671278198963173801654896368734871612464664055431610383314401388235381584608061432422935976667044310396853542924531520144908189237677951690262895289303507248827689597022491669985578320257253820197420653164263133197497596573732815772693341019600977827607966289550584346829460871983706809457013652999509402383699753069973309172832152407825473308684285722587411173252616549109084430778127039339272705666994068055098075411498959364409622460074423785300883328806309511195259881128336330280675741536377755036911679288091188531054785954222760312763505106394057555816254645011112061814674345839240122556291857395815539814943659980288275584665413551411986639903896021720289061423919044149887361687926708674017185337409958076516862135391551345878392967884143907222316466499889127614466295267313071518657463743635918851539863676534202188966928296220954375516715770005454407645172631193190776587195281324353720452097810987992877225450442187059583243798690650522539591373405005387444350628108212580515335034306444040603010940703527001643205536871800055760499696872472176771764525354282435589151064935092601210528239409680187816170780628166703745237817773884227197744105041225890711581001833366850828949374765509193125434699988846344491019783813851447200582473898200460777828850604282284955432529906387105887073253019639469741669435908449932829543450871130072631693531703231957360818822927541459229459395239743048170367909758374946623777950143101422922834820391344827191964346135213232694563554127933310362752213450023929619918809884987860325719357742522922738466686839092579396672327424931850103680142320194223334434402792841624524735295550203171465758962593840291643496812291225399904921487528388332188371470349324565302191334652791584095284342026970639179062266068929323240124399943506048545512687886076154997764581833930467898714762594095523619273529288980007831218429341031698849763110455834655914205891869222901481827821143269258229381029965554195732161969370887538033321819361815153083153884898084096138838014883722722623625669429035506841087940677383734174916078909259144499622492220685222669605715137784293509995181495011816986486017203878303003535275149226815608424084744072284621766888907939862830219260226188870726068985011550814263350764386858523545733295427862575868587486268703630910911960767126490759230779703509024425880420377527398109228552303522986266546094039316223849404954131739673388266202869381255582080596434479754817866153266134679521266916809815753362650911332428316228794945009337440696000731140388673942295926804981926728694879308823803799488046569818693808697367117705644391904880385065804060602348747177296121724059280160189282733976349374145116454464845588901605757748720018921436373245050945237619477973885126428852499127488661266769223112493887525226394982133649971290323910995222042037058962064043295678278041936321464305500523297660033392051080149085397048528855724629932336568506784407889027846882467653633474683324542999392848506674304902608484162002538265306428196846761947174206915280981888738371129563584638858109767953225683210392359675570616502215718198605713086575123397118524514296666675248539239464852952942234735224142573285035276326253057336224218262703202929634984196328262431491834279617090065301176553726301117083282833565620089241142610809500700159178978038127445768015683135015592552263613248543933297663252198510986708911623624098778534421092772634137762330042962584467819988706034766246890838130830276165875665829806783994613738572250165790582500601626832628421526227495634024342562573383817447616008487107253859012667231328331663705662945135062024080847427729550315565949227028053429595857975131010788916184086687162623284961037035931792868907716404974262104824918387750786817219263416595072742337424939522475905150378605432472364770520182104707841360359897961070338899908175914302033335478698678314555432448433816576064924616677895369260745280868680236938889987707714987721840829400698838165263831811501622939790795228741226633896132257825882827018572269661890475397794604595254617629460396994582980689887121120568356187735268806547408424400482616583882757963660443014564930727566282543153484800467950714847646400547181829708337281011980647978938204354340448489377250050682646432165164227755570569404169344748368902447847007806888343446371088519681414269086442226681652943846058153562495654668320510920241465905076996689039217615361132656683856113183770697835285174981140952818270835721897222459386658486428832094023917710266731528750799892307710488925556796087606538743987877287038797979181728509856773133242086080659601644945818003107828732019666827923894278153876745068804912198644478938506966855696310906642151448277003839869384998624784022838708757131011942632705361489081540685190315952532689519962238511879722057722492913579367374643318555967745579955300426365218134427013502153747284992899176190898586090332384639817481655713184223495283988490805983693199435097660477295130946807784003921741174986563569473090667606021463566227066078724263766322805373632295349273919758266799761138043864177335434959778187538395141460985416362386007406477331842821107245157812567579590991777064641591330391579354933384548139285861751448012970871244690006980868940641728525194918421127531371373668460223088585224054543517857711359463895536290070550640440656419929295643932894474680738658317202922119611301050155607887698500033013446458366862647921039750268410519690996323007198099261022403285328249644294275265354424350068441277030979466019550761759901849754464334094941238578436336167242765162256463504431380972528486221924927973698168906213092829000902162209797106231073840476193603130482530240686113838997242241221882550616162949063726740407268437323525206455708902442041105709208912113682326140194385785167556008038038739605073313112992810194188030744672399120676217419827116737601550858219481886813046853526504086728264913909488173565495919422412257176708562320597819961930939708763230157041469947545312021075220173934539287910914648598192745719164655373281912497963871331207020897802730426893753195892251734227520688063141227401031043036619164113568881550875269911457356061004252716882067418908556384049005128183219574766679004062490788846411417156921272444113677514748536975590956573451782799969365012713764699567581389946216314222705422970825303492033309208905437621398420457446332476814909635224640689473592982195031326000535454010694746912450715559643370705432150009801624461780899981243828435811310835423835736366206531870149076516453802416674336126148489150765769085361723515337655104653993536174006285610526488992707774602421395122930742222971995927459303329254802367089483946276711766057061134362387331971900464019245901109952577738410139726315036179015770666889816700238505151408751884567763857562533228857590826324408256298692704432095346534348425269132854245304257872036101721049274041028078684187816173982919652682222647791937849401571618354351747452154625819490639729935195733604728870980673533748598321817556615905760654636957675791321502495771311459216064215134058633405704238894640779507188492507386227920301077970258693912352278428535645375325125521732590943845426990451377200239488070638606374929707787354387892788317359536485112833236041268588612150639583011344418257444129864160306998386563730319742240159009059128015922636537297388684427244028346691385005961131776916630600544198808430906382190727657017605789129365853275844387363161121492895926817024956524578362576134137246055321595857694936379506280433348503387956192952852447020899658308707315950576532893214247183185679524948810771962998988422088334781866203957302346244406330653705290591219800589143073313194012006396713676349640414933682742194761813022133421537291342560408097110165224737660448914043446783234775490931096460636465627818040926864354949988639089076802818110410722618632529460260806107295390825613566075484421877249812945802328995720827618393165659884120751603494629668002830042981006080627183694814001632451989350857588640921540340465904626904628383666529519005817727404353942448421699321446476522827705098470196546570009339404922908489704109387660213702235532268893193831082116144478892608862125234642853981234018408382065149677721888333497358876808775926867058985406823472508432548255331874727123407974635226069750501673674174086291517685349956115677498517524470134090957728076552033692503856201139295702808822597359535427151021122080552615594560120090507015253073183649802032428104059199817076855894074529160070896905637682344025731086509139487720094026745715468304921749804947598239090806294424334413264946330006206292035773960293276596629619564856291489274070064952202501230535381073483230406433333085497592977046775203000928726664803343182211610477384947971622459070699555497537505772428141086794256200549199066179038224014857460055724873578124644255849182543368337473680161465399313135273394566244851129139723129036280942792623007350699614161455358212664308886520473340074267077588053782816860812569210954835913301154288473803688370124054005721086225880040377143053181668303895079513397659822365293558342408015990200204119423227401092840045834787069187408932280568770930576359375450648270284759074171282808929760692582296104378085806424251575402138305401749466248248066213642195856362312149294369123056602825736560529454003532498840508741932153200873971168455811213614777565580233077873223184264028659734781806398396789674087339793377397140452737651795859354475166821017087845705159059026886701664081261786742947865493513429068706180321855818721346920218594312591317486101143257697662785206559324777859520303608584858476274084998405781585829410793863851857737978411174184027966018680607813214281944470135656339612737269978114266205866728090972301911221157460688509058912945609318349264297408253893018137994267333671204083563637408977116918180360208546732839135487392506606129642338241213658755853189518695033888257799715885170124110348139186899401664472416093598842255113110397814168423942021261999299011398003681582999464784718575307838502303403918768700432363380816591964276197724309426295909765180950766245693803711121966448392361259831871274961612709934459466736968765400150825757264105665488361695590303731835095763272818085854728109223896303843067513346788263077771578809753823971197255987376575824365820393228160279983905061476696182650367020809949304690220801232095141736612252897307242218303137667418612758014199406526095005066980102545076352293223559453781087243717079809479819725907689125928188463397135723443037989523282733442672319913021111415680812056400952670185073303260197554795032407859608733338307372716823685300489636849091214628376146142928854987184165542895116128544281325180499744845539763278876177207730228985361520319583323603808997277917075155005875191271429797693321838688517839106203534630158266775601911473495328042084468769445831831163048887077682080779276405975983943786088241943951940325746778407973465109837440172868677847008764861077801733664926053296728265220682159209856426301990073951954613335782472643986457608020358095237631118461505766990988009511560835996619597205719044173853182459108652663576915604685098085299927940021545166637198441892680592044316663843279566028946762195617241765288564772179018754368212069705049380802426870755016449856189781939782938376050287170851738581244962102947962850857146319310979113801561243293742283662842707983341264499257975195437249979867370126485210622574122167422828309368046813997047365139300841277071506142262127016607105737931169843949230915088279885558083651722629767177350620268945652216457088207074784669876437188591605030614077760812293076927710989475149182273235225714421135301724295152354300685369044203583216816029674951446452347781454391226025248326188178272173477056456628269787047056871850013590881286781804195411015729937149508463229421810409321051347628488137823330376936621848640339023365968579612404394269415726846682174546806782782583638190057249833994726099998210004392555081160826567989574157455415545057724584306580674772142470651301598896352578086537288541651356240117219646040686559023649702901781143492558639291598405486954167735638387478471524034689229509988633128288654212660064720500028635800774987971104967078920948874568487432865133500109048267985405789314630388095404741741609085015434037305616244289605647876387086039116592132514370686306063051699741129437133390900514044136902122388806121849844028381480046946129340260222465315737987392931039546980133375157188594396370091979820841700228784791857933494242949088533977610051178065721324880297941647704648407717762857628122780807667912771474209966627847687453328244305628140657946178363224463099902796005410534225952207297457336553556731013547569331597397738010395230580723573619796923252013177168879240431228251349870957573388901635562091252279363127744274921959221984973015587195308556268904693264770199049547902419634331586159231382149845715961394520025560733830232916977954564736187700292390401335427131032192464555890215592657533463638479607338639131070389591759520178534298265850719981463005979416426944824673075552043754399644586214107733120160635442916528720350816979505259583902565484444633414111197900899812632317258032036291012439817026201201860832506582913242414388828860677939602166828313240493595095744459773295488386658780803675434156720420568743035331118559584046208424832712436527082897700807827563331060532126268504726819935044429008755508075042448995010834155439208578460990003074228387190429656757104191056830414612192475596209727000856161079775931689610250440478190763074862405597962864425922098445087404169519188316362097405953079995628596641243990397335950484185302693416152289520793943910308829161730762111935754486886562598602114798229936484710790267507509946150260849325365154719976951778698374856632871841381162823944559975860613351091109341831793432998732949115481777581592456632516283104323304170616724634971305532062066212087775283709565692841882090987937392268326592537104004274120163563872111962947842398643763551651041840095731917592606827182125270981851869417652095693894535816530603181878540820311430924533168406212558977703785633384502479188083030438097839541427875610107525408782568618785162696477506084162183528885758443714888974579351263915760388047775328666554389938404818802809252951509185105142236706692490633851728410765214073810481402785261180308233830632339378064695834336093969168780721133919261467311059215558202487623901217386924798775227370185508978681587933597093748196718067704594476839034869442497725279627776087166871006889093918391289378680331084183418145027946728597629261859741957867542526311905691248280782809445980024728549727030338042177699186419128643803064426335756766797584282388521179840226475167493482546116347955390634779912537996260456951582139819711513664320382965547335348306860007259014688010037522201383977117066253224180171033583859147275181088500021034429197056686964985900406107626217468160743498645046411890177514640821226698766878131340809656168099224423654265592899890228372625740407033769139819841096232298475394356294387643687586669015652887201631018889274875710553403251420939201958948240639615671164890595044881241038262880095552243367430138222440198411351954058404328025055492573161678861742202707350508783330532742173612688677894390285021498727291562491272425109260848759306930696932441854803596168725190289476774652907235072555678125158256644590496799184069472528973204573205929720849949384979786178685362510864045613386979093893456247327372017183964019757439369624194259358752651006262419375144440238999269007651341807152538514601151086449819877083341140810189724612259496553633123244589247895824426688464832542366449396290236262897553785994115632164733400930876583296527977877239266725139925082132812612736567532097005915087507106983685767580475485894829990770822781738748965685185256729168943033010522806623748376568174420868342109832908050068663944196084368188345649297856926636666912134154281648378082272687594570777573741098331176280755675157362081962603397662386625703020931746332909992728315101442751968355145841660800281703946643768672799348281463281044866544912732414270619121700920488619154793458723462850055276638289852805131185842930081715497693901812220507244453284447776518243028141992999495556774669030846132897920491576634403667129685795258830189748394818213961687170061611183636856264411781062546379096841485672392982322984302457961444609169963600820703036883749060357552267295269436001159676665412737259779963000349828974879814477944337566054344118380854521476087412643896220516965256808383244356648653097849464552728207534339557717206827259827243434238780616147198224773150974615747892296524430402769934526586543151955647128384633922139494378819844368222284592071265461914798857003333530378255873898673453279695012280526009974100577970790879533877207911461469688179983312618503321450091806517662607013805425843010602695549042635851609894683521031727852744483531412016471167039475670026225910391030214141390011585472243129201672320208803181621314919333265503548685810484946993791609123611008093466793428646374909361724849063190951313132374136468662861526017436697765127640779943281376584467049805990230055578462945934063876902983115384873043784532499892684904823762464273606167902526061509409075587245925784994596879487777195479790831439511203573148076376268154970507208472652979733154404200717395943600377572781246785086656162682816778795171904749207635119059003646878864676155995599856918100101681366274989103335077348085841663056570713603144725977424824773230803654801876436466566725470225047275360230052683917626335544797325350898054114887483149810527341698720364315245366029430583354168354204428758984881370355457446625150681721772501115680041786685269513933700147348697918653590940352563534670413614753667994534154759803584529165280474470913005906097190692462438314140856504431825968357455366395982856002287949754215263068902681556353583959923754659993590709529938196418941414663629284040984768735738277627908064612096746789760189263346098769220872278697157717756561974596197201544808535707976863985431835069488585347398378774479555751281490164924359974766434682001074154979972030605893853786670554112657136157810198529270040431119978210267590953087856744479926046206126833270856641053707400006294705186058142096475272052725150248704221612373384252808543455416743605624230222475993697906506485750569072358701998953619128723649419250247842031766844146452077120555030371322458899527808723016817760382323468959132823259270476104839021156634592806092290543102699715835682412776966016325782774156470187503398288088378037567713237870723818198598947059946364471885220850914486775344783432905571513843570316062082085504002994207599073466879501640761835986322970546401496593025795905617523670176790885784959364644589006950705792170875074307714970954310727133431002249758196846667099857325213524844377786438769691214769525350441399019255672285359007876362547565092075701818914386694195112346848241408873233424803115125492354446461274822018943927701120193027048973342966937447753304075867122463001066298840309386691077599829887110571646883456784166604388044881567584805103367918014166672312680967723552051465696920530692020824565816134712734707415416258557318366240351835511787003771136182671851806127566668816297611470853074292337601265379401352706840881346148019142350410166380346792302814163787302705959240177555383147781380772943705109820106425000590573619886286173481206507116257834269784260066839195182007504962533554375867096738273940900963578564193380252207569810719556982586626065285661291181618159125865897115224160588620492936660446499488655814247931605045954478407570011356408174244516827635656425378967597865582169413369657144796309262196548130820222120938555278304891346952224551771964910642692028875139335935588310422957087434525248380871544862756362528203373394699688526451218573073595921415553638144246400754811802537869709061772124756295140476007273985658004407644290517891220468360001031605968880838541045492049611811648447830138777234834019309082012133683266227052630344184607450904487893695711116483780171694442316304654251685935353319253640851777239895675935322093620927466407009250768239142823618077009320721176139129205467676260361512035346958905364787222697256060223417646697046627483874325562091380517644808637936510563435778513094049273524359483303327275360798031748953532582572730874926536732844784750270656759560734199239779063381881671726034451904197332388716488038639388362192438757192925565408629124839988789989644711814342172715790638527401401000787544914880483992640070357732893190896204661234710902031080576692100131904705026865665266807784180277513125768356078356946849572036611161179137006082160912364969950999339944445648941889567353084981877020865150020029243495252411110996188925468868412271261381100706810895911190659734544214009724307882794413975072844466581088036624725386140244333457009963106852845255270131093752012741765277382699000827033279131770385161040999128088594311468259343072183069874100384995828552333717940153570024378686507782617400436904713768662157072932538524826611267398364873738737744104189603068108387332605765322249351989569600202445414317454000063793669450027632723898947146336753375150246377899457081479079178506365727197271677293346892029849498873813747453442631950286792752431819226476199677759397253422712202963402746962647293220369370530216142420437712023291044400639705070122503424729840926701939346306092279806352367701934677844321632598048761051943724102921843424708275523177908076237444819422483134428468321322857512974942437399819374516516151155162851014965409682769799154836169784148320940072070640249190176353091378894432982975042726653483057945213609114991255982432643406881524317429264066310176386479451515888528098337352374625528492454124663765783346533617240332031010359980613671930951742875743518699670800605846504612460685733583410694982865948502727589209833579837238831855196676009128735564724901519372302095066094265869523454457077587205693416041698601905824615328440763005087053516934943595102724639174568754755575945122926495391376449854092181697363023664010460463960490627146014043908897955158697751415266698799746117287566546343472592313471469123198596518742393762827070644613887815848430039621004976751290741576362530618974714653003223474771509024595128936932282580465789033682669199771835829505194126401510056091445611951846843795868172427778076373791418114497237353921880946821156418324024394425260291827599846562554710309125127377147298160508734787213577003585347030729343525272780730427675192926091547613339427134263803461944117675600926910025969845328471697574982320584765012508717699803705271539779712933595895595528180447614901348827179796699399465613791490723338825894679764204322560841981930290791158868743937023946800964675399310253079184481374558641068675837631611130683784651396346136745533630703251306216653801419297081526177635702041790082901872369814994634260263898849767848366862478620420018577994563455715374119146803176220935501093300494785573730700704286433256315689025555305063396014425364547364615924714303643701704986820369306377758174312022436538401337027430254788265555650617750208456397363361830316934632830787828033552287450038370638301362387851623567429932803328240983067192898292436433727261611930220841149507061576089440636060533614820160809371552919965226672771742305769729450155318466567605339957281812024412286217333907659112616612955369292395837134023003609703653586174504598551923038752975653935436851668524170103943827067949815911529464809889172020874866043941180347446842007983438455434099291118689293588453322012415360500644007472972230057995937227929842950988406377261256029460648966159884338285920928019325168588319702581352647914208607197410616005197154961154078616117397035301732731371676931677840638732432798015347659071469586845038814362127350321919717543018838319735142948337092833308805855853900370845556401221878986341354810413248137783477374147138349091336933574693088596526470132219016827955858019222926052722900998452028328540894123465865930125380606269225953201216802610748729566309102473208963645663073368597304807443954887720487393226951411735271731322807051652073803664936931180614358392147706705211955260277781385471845546391316789512774332087277431824864009373283007202200821919938397569752374951704272579085372437820956707500186562720965269685961597144961603019199306544951136008677413488083732197598890206072990835349129194436310184180059109440067417790735093132357081626300620302188566388009568042484123293624260916921720373961232328289957723476918032104283179275798232708197999380264149837944486247456304619487702397544552086165737026607415236222482959560470113266300062110014491194831930858701067405744093518476431891794871967768974818924706780464541936130870368290775417440328892838186117042158982868977864522511700248582595185949819431235105180711964084193856514253102112027173610775100766237798727451914965622614921747910529495239015199156757249015882079952460900359906515311529191973622058498687712185190812992833469857931349196506212719561460890915272821828586684026636354877520615801124472097012001390218679273373380595819004248892241181195167924622690880227078959161472861361778777616489686156787061465937767328587310411264488789545730372227067060624327696593183635424140353885561116679243036636732814555840594813618858615075890188210103760381560691193972791791007365804572643034019964875050118520478919983131843932485896606865289637115185036131201184291794512917339868040583245860262222546182803191573198457154326797594953595334856804472813519146036860291559881273839806129216482227352125056290519408429518167333301437276534051327946130757671544839798076833456552632549206988780496206488136853394519681547056560527544052804754462051938160757113672022103011842663411693599969649018199448586811188399498977822805176886379529323530699952223465364034869660328362052675675360832814607283389656830863543863999301348349622431634069460353617172386887744802679876743330294353711557481176013992034814036723356704936240015084075817695800775346449655372774180453731356838782792317299340638717481937650211279095493921227028631668987238932893623873367930297865205230250486508221041293662461523344758330890376645101088140817571219830892923834757502352248736922564713691602855149738322183362233352726911539732704261764537571312619959298629583685368407378460162801233073890722860437629231284003600637550873422820258971632458925380216385317806914309449905571271857521789418656092710675755185714155478705371092297918829839246164319431926972439728243173475755646721107626228565373713666394743703004402533448969825560616808260229926085651119920125880121673816515180854115787528463033456641671416385475867688913977377578247374396196716957507199317714404022154256814683844849320968781607165397345460503417260063835489079932692250011616958169153852796245660276940404959249510534716287607502177691848393865608429402144622709456244782916564067153942429950610501233083234418177458679850857408442201126343812440364667366863508932326340170099497011073228653028686752384408825177417920392195242515204884775291906919473242223621810850952695669745659433836442981731003609610752158870229629906035377658551926521608457625607714636824029232094359211979616693749497063302276474708004452639253828203788501712847266716789991121215933478472319966276806326256986667251026052694817676052202100379505859639192276509235801324837520724865671972378708844526397767247961951336314237877289933915540938860219827025607012890750222950075879646297126377595958105347463355371315803433617739212515389873473242819511588896088018365238201345000825917356265539343117286976019032412513604582591981882898130723951540856410993576236624299560968310496210299353315842712752030127071716829265705381370740620590855543894863822999677496984087577231849600860059464737687035233994561453614205010239336878688032343775213478891900223882693465848614033047349003557026189687976295013105632829673746225664675170593856233474154716598058418616765266539352916010345748763926379018313279084115916160084534825321263786145208071647295709645514024644697388618924328778365208923930770736245890887452284281319532391810017139410342265510931259379776381725850121170991545019341348166796941297778047166767204356643969447253100200858281157343527849138999312336607792715451217301838826716388515987495060302568034187589161081355713322028155816853745136984099286740135792213019407429553142360673132000715768673309965766499816735419997981893718452038326982556703482806774855404156567228961140225407835431367423391497082919927010073716015111032440548633816135739142589514913506260367529438616057988800559002100181980564406314959376568902543175903028093597768010151902468727540932493936118645663965497659794450273450744395195529286829178032606059498245149684495969289907456046973434644325073100823336806401692608473996201624161240403630259947584040853497945241110727077490954665210590066638912227697613205995667599780674698178988333492457267125675488019287364471870437057560737433100457917997482143962718816215101933304124456558523535911028027314479184310116885766371022003938986353874493725703419513636908691043496555377964272509770621374479638072774625094857733042905899934409244764149659244747116298819079869962864200646355625482796355794774572502817328755903851195999352989377501694059884493294142406331608670791298380477459595505759293472408660247418061144964125279681779928675613948449182666294919524858196256086958983853296208584697632582258398872621324381718061644520810661528888540592109557244647887694204556267063952920578905786333519378203183984040262753601883775617725277584949010064774402247664839073743073383959615092093214439872448863174697074095398281491655015179700171365175133001301338095413487820084331938398594272819232342100863329821440526727684828915093053134594324853637512868836019281304731278381870894928312086101457739156835760651429893119552738710855622090994795135393162219649852412932167475093111985017303504141394357966288275166785953772993842826559881867089797498576094863081527523132220135640827473029474695544683705773736387728976153675423899037958591574335881747671141729915432871659985354549368715078017409082250709158142459850435787179138026412676736601731361672681905374563474867547237139660487633124006790012016272520206678001584341293248726740679362118075230383207745531121945589959949608602712880254040393930758815099207295270303171696884599602013171943178887401760004179060796635226456390622433668384670671991015706753573465864843100951396649922478817560693918828731082846959909883672187554213407208808532685056478297703751087132366973128917473111328735061293462831714288731938645732969498155645001552719035023438476801118831495604052489571012566698327584230124573051932814918435736820732958849694789733066698292873595236032974713717638350451931813002816745011514046174382591657070482958973175107105972301927265471899580672869537031737496849886199776105248855997692058504094689341813875591914329264656071995083467739755266572551514965015926983062308964284417335756658191220961991526670264272540068776330782774750752353878769969482016435981576599584147798368362563860506483174210976765877612546625418368345677146992828451656202426713252337633860754155843917309504194048154497493468587734473611262125805724440677789543206084091806611529377483244012334114864508601105047346014168320500897217507395151196217777915983129015976298380008372536738708333625882645559528989452470870376110485430003564285267937651042013182503927381506365021776631844394877349779963689914278036773767252809887379426933509193384772597125485093458889297310710493135274808550425271296989498236076292941083923286774608786510827500268052492321304899167177470741494557256335217293206683086078027616072626440262632659218995940060517044122491566846625766071027522445347072704415489175173910696495330954965075356114634701859328223034163805383791170906850637798098937320879120952878859129976283268431499559337195616573280809604751023663431745887425842649874002612401823398056938201948678134967396718034891630251463764228458231500334155743912557058786426926771557234505563900616958164515173605225322604411268283896148704728810731635450732809759444699571514191459961010627573728661178699295908552017442223249754997907385689579846822290199147377852928044322796352721809124152168532751285512679133569360833169799129183081294255637942170234092714051295498971694092732075845905547445926615991451259577058830285934138915085344617461262066868031994136033332729372633205091817201542196195054962205903701261042930844347655917983314200011742276840750359985148768006589916254175294215561782412415438178122094662790386204062735961512090742587581586237328782202089672206058120882288855210067270026648069699167384512810879077053785704404043055150714922562990975796728065661828114763061716648807934158722533362249131498497656906685160643279222775806787998769764410271508062063050569066740118567245667030966363334713828105191032752989506214993580920758627536567873748185718379938318657175876938756399781834747247994245184509849810015527065325301807499690207351125027211348155565255117000187898543184594781828233130436995970474341212487198842151065786727038928092647510954155061265906228500703274002285397253821482050467216041760910917174462689848391332279563991840631393157411519225598748538941024525036300436209704534844114510668519108153476351891993525874443560247491909468428279777751684492766038680537133636781038866212710284148749091315832109969383994755135913720591601153878233024806837624537298308258718375769371902482368169743333453827814144512501992470536105548784400547831646549569449957448303097637153417918147598021445777010894599381496433077072779132338806440818725170064567752699734996976157584059731566969437807575892940407478686591801531425130014981881591297793017674533260295716622421280800648095618378205561643965892735757167421035738171881521513154832969526535531005140824459262401416776300944034877264035180893001648301134144775244527737211456996565958250966928723156549873579060018770967392775794884471115665156562220023413372665345860176145367362463552907950482183223250016424241542001954528920104160456636297157452524018415551432827167062310544317553206739762083196311082234011410922781786340434072138291618314931245188853814073485204018253334020347437916775134729644066972301726356541176653612997163629145868381880251321123950797991228745124788119643190987913269401939877740702100185351743959276436220575160953919873233312651670118091882283180582878787413944536779134489599746906407109030566213689330903637080075328803445273501662625793293082561080632247645643919379663754652973394360002364883027019452683658055524301857843561152402685799174709932610926112405604086769041784144946307956996772968401029151886369775478145156323097103401403228504859326754930469270511166183453037449302961526479112105060675137778064368312837958765993183945924180711805758104080250207710147440172248941682342321939981019493135544092033841002086151593225694085488805402562529406163271718381633407558837804344963324442151232280964244589567026866197064921265027477872472934850872959695330189734347597039952987300658789013069160762109116331454540703977739894769662548254653769979799731439807831311667644382605391273501813314929045220008948693211751439445589987335545835022976597195007070195790199978080472982467332107552517025929648178630308722406272952364458504287028908496607237773454176899071431559931408120355953564457472436968337383926083137929022281795820105623317523646490769750153612143245977747042718557411696619473551200760742680959255877020585737183825753861445913365111172737777722426290875618440000633917283239094043460964686787721184218253802407977783445206311152909445479611257103444186340342315898488101217875457100184029758457530506455750790270342796106637241150726722974212884631625593397047790253129122445115350270674580727571667548605834277261637737084034198648662634540158043143972041369774924042896067079381775487673127834587427753505549828207467867576151333388850726889124044038202514868386675284193139295464273113026948708138512922268220637779819092499901126889463214244808424038629100558158892340139155813692595771280855178075197493815855610817091725435071112027709649211224465949005000028343924506207187921709628111987452537379858257254750317059924812868482144824421012038963314000652976215410411072339539680670108547993931014775375694126617344866375323556736037274560138566862148120553496057749506882702756652557589145030793353275364071990963489556350482935612165708048327365697391328029316281100425453286030266297610785705038067510914515323211133732366281296634873937876361341716579582546210222706588271477313709698439452680547374634785822164435327850161735816764740504309718523069878427458934092631685358880969695943188744806471019667978750232951658969120764988690176152078767137780111140935887421758958423564383657582909692390452741221651695349558698826882953722089790561714072749502666815759651445946321805658900521736638151087457041345146258954160231996087437092670803122329362531121994435038375096804998920031600570190432014321585393286550258085134159437182356101922765747770694129737625781892619320761108573691506489715823665640952616740905053669742149780521995745676740963460605250826083213599506502004820827789306718960002154362368379653044168001642890641508955691609856414635655014412579403598662999764021695770818994249164201318252398518909600780344389658686244364022370348756434798608897677183691227817637170851530151176443999756083140089366043880051549126268030361782967947456485394003149718503442886140240579636639564738605730037653410397228801445985146159800077011522200821759538297015918096804871830658986169316961834483236466448311999722482358035677353283257333955848249146926700038404476719775553059602591489997405443902129622679799850115475340353610096447075436351141640052765022592517846056889283500718386422491506213028213522690115758548013912401505637694139277976108617720469199792382759736345501498685209097205489949534325394861429799689013366854675700918446672909187303871791059880548336751636564076635752919218006590364538461558548682518852799316253474422988516893861088560402455555909034010689845497913940274572932788123436277585437872548089693005786615886687100246039456081883512971413287589544455310278797584681502523035418299410275167593246016477870685398164235600569679405132443446575690119623467401713908452605289821542872821245587872679795295197053992699165341090916614923143198441503233893782407198728138123377515547037671472712287146877281134629931910725281463658903396745957430934361253766164385014571406122257873830188293484112728400593197536102359188117975899187150965495406685091986686560816550029280896002482638035440086805300458988314303774568602936043365234003916226962863268197212588535779019894170662019908743346237923026219316872589115194003471684103762330950411207138427149610601894376437404361775600339321153585283913954613270352569760993092636425719472377153304065179956118747037189776115181112806293252792795703178376791272973160469918196742062379452743243962015900647614631297377292321706063827252660039754632581717328009406503864169872076291367907965691549270112368817804630387540730949363094028240605628816543780337841908804998935812802957238289399975458299921208140948301421801705452932073930685110167016821883783736756543221893609208477568299604522783573021069285566018362014306497182355196124805361669227995599951274502612255126862362204646050887710931821213506373247120248087553760452534739516789055662562208669247294343214615391303681428841109857966641859547171842113282380065104926614790755882464135288265782876606957104649523383755590673276958225539739617007954744635431741040531408253548884956063791440105230236987330198893957653546409722951956707599490708303468968982109434875605349950134259249518645744788471668836222197544291171498400256122390109842320828127378223824059969992485699682202952935707746472778395966349231295912920247717876391797676716565054061209643890437976520968921610458124629203047230364980487972790595479227143886559634726780556504893281758539750457810815135452443264413118351369679655992174260978834616190106709270042339637050754250191942807597511026015587074151416053615641619966908927371540768007384224284693951531651710845876321377785325275374715357703481586119439461368690680731781894111215279915070321099268261967138972535153962954722189705028861079199979339406673748169989387334007236243910925159614306683566395238046398941828761133872038881205139681165582031570838019984719960195906834505795164741898659027231907775038126275771693600125775216145079407335426401115901793949201691066754648944737729689159285686884159348291249537106161551316439832200794677765166264515443330567475056470963056062683013691324348815593046755120009449850517934671672845549060541395861415604587158845554790176877824954152167798398392398050327990238775372970405321452851932484875873975372921154736774513525385521725666539962546125950508322478269129296156533884320091862436966320044544917230820658316608193849648588208303015826766105769478152078663358961600133735362037437940142915652084561886061706781090326281779282280578068157271178067615746458317338781830759309974637673754675889837325583938773380883015836912154814867859831986501968144084616452841388129877235744778384274782315692900640373775639980083686809958516263311151471223571457795366098929144431226683838247699196161689721331064723645553910745066660502416848812982090375666179320317063893188222041409094046384954303334607040913089051435610239731991446723495357708731112772484889298517785992244319689809342366959234152418212934752823272062657639548188268472394019205335971930819964800569491589954652414277908078751323719756531996591155257721676867037353320368934269823001423340781728808211367375451468558288516223432064891632051490503153454489664723030172295467247864592598716863506628619040292285522546266674742654079493822919637405235146904761213486997092370691021139262398787543378592472824691578136449904099231747518137301582004870464944425926905397972964406026921690103147515034829302141917379297003386943323977732275158662152034106771266401535431443231768625328376264196530312204124425505396808854646872556600933105161687116793500392057422471171130510061759052483999149574143021315303632746166716646999354098883312932959204647737124029749752249154573191112695646654926224961235269916014178795932833194690908593881884121827889923786288214576340239952126493443995291557573407961650380530826164332030752127825056105749813511218802889548650696178594087213536822234728630093527471724469362506006130095117150692595105032796089142700945712795795733913544783776189123384164198773775809043072466565761972986044309754229915272816722718106273431668749786205210497374675685530098134883159964044048247959878213067498619107919281521229344761006670959803588158182242967543286619230331803647209688690789173689548267665806020091122417398840906248331806829517313422483669515834641367300669200616375930073776626865413174085236088824687373879361741394605040355108537027357404886110665919437052222771343876738478939726617320990640656272181636478674812436462386313092537490000064352360806757385720103370507017022301792774835388043661909657499955990523584432905029657224570086787584316621004334100818593142693680886192421753353045052765049318025055772423028613582895055386079700886059409296943407370145071180371479387981474601579459568511984055544170046778377367464542103164939862886948440747175580466314662731460385554345586003963734726819769770668624693808423249417091891223555020347650983524759579320692668154549743937158933934443981438249894689247615804862479184436890178538380388592913567798612674038198416166402034561549799407867002569808235739678144220937313419962994290064386317452740925569110096104156422679504778024989447016067605584740758743756669677103232004206416633076949316084552538941404528660951907537192249437314887433753500928797424809102852312271621712090856076275519904467191067964804576840879394533221779516692547995010945025634816418817483155446479079909150695349285572922010187755454793564363809215514188068891984593046690010928438766101099213172654074563677976331111317080432044134694191567156051624129585730593578574035033956066309546894503852037313250992574504604055411488288706610608375379256277453578796138344051138716627374607940407585482264712681960030226546519844018663337532548113352303955972152213731790265535529339966412037488028991369997976443803337390430691961881716234288444732468846349949238824537865057251864835103558029373159769955378239131541110337720785193500062677991859060440055490182188152093513448799693630746731877199123467981219233957970869288422251901584824611277253054000578402403906451836193803047403655376215302583373245203609939457896017280846532735003894791552760609710578778981394622342063088885150007687168296677480985234933028441018026017917521716357933351537868029580197588350963829259252023319709700054911176657077101470576333924495271418025819861651468950510874330755501049360579102465242483929704862414757660189337187681499824174588928230744159752985880197432997178682163586166736841039255927946490250260941936171143135705950684285412795854999784197334836392742312317515371013606215214226635584687296763373166461038852083796425274481886943680906477925750016448098204404299620734698363622322318016519219058217378986791054510555417775645183568551554038448398535475362029833363582746791624170205105601831128090964942805612446821740079823837699671806615237072425589885489950173401337000790926604190108432664784883182603476560528208360991168426467985137475296619176071189895628947333747227942372332218827659831052247514076474577315768587004957589897081238988402858097851493926737329135125127777208535506186304524204327712533726415896436703445860523589543304552207255464287657770935065485837744427007587981478177514843108655637118809600522140092578934727683603146526908045535615920747662118604864091710338044538414989657320904683567894339708629225204429975982007065776679115464628902972671279746470385778577043474187202990985965893702674350580120220477396555835467049339009652554331826128930862519432062391939717688344992953776781475523042487821543382855133977526383386657005733527221793826768973415444705241661204722822263715646719507963340041154218089849065918137553962560902150588268042157289266036791776612125650900492058526151446694135787965571643921788361498527525937305223904522525592332967366492759043278052296318306671338389753283454320262680716728091758375236031920617786252447954957197194043757265906142702905173433941134282628764882610642076346751185055598206197904696136066458746161745317697464782212233093489781362403892352252403008966842358900412657751654788385518811285302369862878007870872416876023635093932587195883814553988067478600486228433569542515613668755592078916899696546945714028005952103495284031202365919356928736702802937881753795473001466085433432646767855982834608964214005412319215270386022137818235122529132641769146649295842878180181779413423398853295079684239890876848879166261110473033619641316965927012449035243345891886007966710847263793126794355172051906490010528832559264789073683386166155724240978751219790035208475573388112675007243916516496528590964868053241867883105203295992994007395038388843485487281520425122287873192430192959838578534028550117707586281170066763496975202939750281151088802519736829456006633408315457038656526851456698456386401243475533553049805636874068388645353984373828929039820387585265592874297662439120307337386912929296677695988558297727734464510598106131450062219387581747949706524370209230214336454562339158264846675557291627896073461723427734940962178226541944259525024195446831122398681001923488597278678820405842495992631920502938070694800754554728304266338564558153953562177497720177717097776050751873229077689159116750216016388859849855354933857730024484588547183169060863700461216146726257899092345162121027139066032010413503718716560661358696509556260897388934518109006105297902873131799559038807791478337884585167199560214443904600183498661293380504020446336308735903873567623751821742467752086593176198704269131262853490834422599435240769907381793878230277877994651282172118964724816689490497304710070042920599984555505783197963045712027489510172714034834448487556368824690071673049374924253321913132951419847707710483703856389929873798289203529595538165021344368099617064472125033774947150437375252676896712868062148748305296659155434057409409048047391565093426195574512384758420270513871785550581577350870263722887996279438289586056842408754287349007591184729371410613954381279144229830392555604615917566389811688595053979179232688269759773739165127811414655989122997765168335086274454773810614086262739739346601818611783534867773383501666802405593143766532548766751909502573448690043825716073614589363523163863897384520935468159525435077160133825030506966339858575368005720095618856444837871922450179475947302227106822584781978054281983073156861473932288670120753415399842595274261159601239122203191197513774578742626041344142361061641058315657184921700471043058569943513654796588091660543118527351715809358901171714186002228986379215099479427460327920157894930448232712068807565217911876331089497968385135750370694628587960967365383230402627606916736036949554239478552633710290214155050390702601559194036915916498107889295217523587581649002876708150729160271673802816241247207020927421280973598974927469039127192453789750015613431069959588250360127716046602562935548510091804468728058165470333605728432295488886868058395902060501546960369474283779444714292301887478384890732844562987136512785875795117284435603289191508204930608569571803323666037763341709704602470402217031361028211992326461436730242919475858787556573035595539958189832147978158678437254753498574889666387770455105492249840073337010307759504411784238307852090216930602978556743104671058025507041891976809972297186546638819937788244269817977053143412672781716900307399423740626877734801022952786012768853575650024308412672676340263090372636701823607417697906277472142908225594409206863628042666578766181294495389388123924038148988121898066417582205854435283967564753697438350968072704249369342270691792700484825653266724247290370566633861130483706871990939138403973260585851423409862423920805208809257892019620382110980848086556998585541819391766373828235069006059172557415025705410871182168254442107536749130922912644049404811542927301298281516024755850147099635259486136282859398213974727660115504655331643274835391322299830784429146200937209316361805107854840804705079938620731492938744123578217863920683018055486557717830575762491641484927568314577579707081156441120606657724538479233428507765661504777479431071896009970190360490315072186438413761411314946656813480910131000314222713731454425234183082974261550066398423229090579677149533323165188379346549781277220532063144138133202536380145499978001473906273479994298960986820775317772260416478892298443908928074938335128381694307776837697893492080989636671220197381052716624255768933731943041988938065059162422961857040474956073049545534289489506740908961780945483131637958234084060050402946384319578039721845284899234033546722817888623747987842222712868230780487948780585940853013218268040157325251434361320738934550617029172435519728878172864676366338535968399402966631192875958781916773565474656285173978497583682805557914890976168237499330492199156692218809199419359931429611712184790374419252684088136785660829148815920859905978365664490549622250591459536457730023557265425964539554689792937215314441422359185319490005623118986837691398545585664133688235282684324076695419278632756082026447179989676135935191122262744536870606415236081595482715282987991870560908336705353702282013609736606914501909120839613002647691120932838703306687128010652354395348747205393517721425828096155982690060846000898746567562821294474502945980934750094086380982314509444860978574635902220111882629633039450894026769736606839614420672601064042236034763852182354505784926863409756373286439963643621862858729976719427665599107421346271366846286288698959526247699468517252559420281059721464967220952921410134326188523365975433307227746480792896422124627494118346456974253642754452970664815044787296570916734703062905301626199546657033054255038680495055712868901651457857426577643014107241443118477354786060815359536931664853662640816952893392043589009223708049678465939860110873486250023558993735307236243236739487856426374965807060425691001718034412809030150879141071612397297014208398718678148049799735362335356604014537781071820703327383365986500472110430245672534561087970008718885463355199620422468487242804745032012925915925562544570944433335717648956419907917295095883963883522417538799282055322809388172604491061105377719032719411247550244790435001708344858645738812762349697391616777169173304694912392819225589917289915829632292999116550984782954103107933325872794123287835395129143775132150861981557330529500020702474615280599431899280053329022635102651549729058602947334817936780877889313153448248193932869288511058772725094422809560848427276991840636334158923967772473095490030200078785857752755668700463078971836978019893440977540841331307241284959452448015012560513626804761278041402769025947566187999637643859332007622902814030900487472296104813604415709980175305907919436201280316398590293051273568384012177803444237014622674325946080575769723138094471739710559068532471397303631861153539294142484969370265595321390523661287883024087107152015881834739012540679247336048994218116816043428648702180437647302451841868689110888286793101712483436662150643916741720825397227585063431723558464578508142225878104404120272847207478607986277535597349237645253970893423013709729711392167448401901335526891027348823995657628355498238856868041620438796233780110147255574212655349472958597415230143201661996353536760533174797954901067959629248527455903944305406555546675076118755942114303128176236205240531592860394815460244913508023402047777131498598194468350841860083898524781184654739913272507153198866949676031403482307571622972429437245233315943148557754784442599205702472449397383658309787915941133689488255445582669488564585343960344058999211611146283862390165248207843283547155825716203138818523674206675091699105020771214298937485902108059215349640847989474791438074364278978002586332643690950998202075751776064648598723909875364429317997125951486918730250952642024896027503463752275544213476978795485725379352078146299174527328832224511498611980167909619056513031920706037490761157290041077575928299069211468355026238391369219369146256324745249089232622462459736918294437162781173416872967880344071201964192723001983713922990543138051954787828282480604521465717897958749941867444854262201292452011751145617179667134894180595084669544531671254969774676313420971063716376049815086813170768644680027910227898207148465256707096725975737243889928840564495130734878485770578289617910289665883578215549092764552662173310221388785410463963814627207735807941368272402978766398410902272606084158079478481729273311236311841472519690819554438167973005225360860102080398655689581737619653911387561419264498102827975271213422484239676355186720255599371974787707829695058810740259798931840030721792204565503074424821441594730067626104474447522469764012804489847054466241900297352956718594176151656695798754419810682798024427214694193896865594773174230350516386066249323167512718266160993215082978685618972672711559379547719172937839309483523452697819278959894575124035299100420584344458485524981279122037221962124446108595859569775637260507956574139153782724580270244014565483399335216990576356111500575663116636332517051829895345270733455990653390886285647252554672256192867069759390485135696500491523341083743997169580674729405378389693697190522972099665025025702487438898331688294166192265105752236366319152124283627986233951987806568266556822383851616913060959458730065797950874209580929777127597513089159755382879742912418392741446735775136681717987297423696702722687158760817210671533396599802231602618171662374676876080095468125506416155199852122582058281108470520193839579310818742546085928727079070806982623020417919176590842070636667661487438293492418667753813588861600412897909285937955011009341867120629992579678414619771470051095930118817678639248737675614704457667106285783866845105998040789449231925946892967249817629703550280561777546322329162328432074145849913571850487899421463118001754041225943816203084222244208235978073933772466518905010496042869308461844239137666181839725399451574039825926583264719201669149684156659920448531393695091732632711231369710676722240860423414307199954243572691001695969433983196355269157680009567809136991564035824688217003027802425591769088744091235172547241969688160664826231741573619630879667415471229417813035284365845613484963699489525434396110133275740833848733309653399302785344117525359147106564123023460508734402383333916991601638418524012300925427305042220903289235570722812303063229677575577405489817986653675041498801008184443579249862885463418113956824714361157717120354832577118303450311440797811334873800134957254274054546010109209551321805385056877364360221488839399447350420829056697329260090748082551528396800208759034686447314249248836001855227793988076927355939889649098840803220740040599605765151069747377726990313403262932905326421782684182316870875890363043626699648823796983616031913523635010543917963359232767394771847247685017541287172589519625407157748059239359106159312033806317362278023910321051661003929652317912935916676228867841404802052391438415358191238601416048438404180878376809641544005017175274319826478561699858248446073698562819646111781401363333976256743050169211804419853514616184065377633208835753437478826249333102678517467376392856731144980740326296456782807989036217946876368321966610570755582819660271796843507678943915943748927177148977253353260139100344930268545053350175906237579421618300678477465728197012384907744713765357006601593580263308515823507714124586883546467037100560945996916860850759101022786079730964864109115930321630957521992946700547025191593312875394744467992531754836334908916134526033458107611998673075793890159144285078749998814492366835179408970582579143226821823889728340949688878267263208220245278013131912735663100805856440636298462841877236489017717329740138365446964774280025952736346038113109951562749052900473906127989185684359120209033379003269591848430907722653289702295563552187473279717476760041784926165518674990213617727535599612745506326272203324432398992057544180964279210655674932878211972856230125595905359872874697959538216952406201938813610379718954012526478345561049287557747652328656014722101042194483939265790862218789428570456897733620801359813417085822002951565061945229941585166058905677251376276236431830417721068571036673892520379528675520307536907093695972167932772837192778741026855232538580468150498405914195729081818498890826514492054503446254641402873474110086242029550661511675884012997637934474379509909091876974061471331641307473331689431044724758552161070852946385793775767884595518819610290701741397086603116438462407036594581147176631071308229477698745554236530594614512802483312184522086125818775294528861112641764897211708731763364733712173730281369120596389512081177605066470803777494962401579079592963403826808818659385795741442080667032093094418175348145227737424497427008543406394418333118169572560358974647324568128604652165960066415929032079179596820693364460175874503126018469832455967669623060610082995227189337076999201405237115383771247371860667731249395295322346860855718129839580424326982342025763253838522502028474365140393700991887819565304038691736194444616278000955378338709074158480704848672794794464402074865573836684699928595018339380096589868567297848492435359824557550246534228583404002755608702985090709868210180031511472053171054639608694852442812413963461542822826637512530162083185712716355136752829325848060039852244142728279133751959444723766040539104256213091120991024646462484338483493831057194693949752901734021806660769086571952279710795991198672477539143054843127829917888971149542752003134989505018904984816204205839132711144067720455917634079975150307628124186376855723361030973978633431503561949138499501996463150236287363570564766285196498408545418304515673921201655957570414189222874032850204305628530379143167774370158432210386515626317384014981409298360309443089601703432368791463495881259157323734950371705013317817282508309166979505627156811628586907871798757853747591805965201607381266940623706683660535390623242697092771327105168811469196111606128510560121072352293303303969269206423939465822637348196605026610848263168917926640732288521307460014478183345128038488093145081014172363497177805521231623209774787764802043822383216973154628026251482609619732088367671842080103826925110010955073624664910764624148809409773070303442904066523067600460858534584435848839439773876619962273710600726416907100237152354069843500905226505532034021578935906786914939215708940947721333196605775553534044732974621809068886537840490637202521251045599386544608084140637766149610783191250543882896092456186502928149488600435762216553626962524717134967830751375116244283196063271719355001873322632064055525070951967179980668484070575691982050532150320435629127533238467704230700824665964984283066790255687401001019039166513636666307702695339913720164545349475628549795642666479145474861688111197936851065907023091150562109363629516683195841281951082633819497610270110621006564862748211460401419513085450010423047973863713872237515116824227910269182021635504934065995404622349831327260339201400049784806675124662485876463317422345811589882652863956855037532159759046625280734248407077932067675259006578711530393756520164605414864745407135981692300833529863444769960350003156350244119223836495199949233272833118215306132731766858535692523475289621018445284109155468165515728023558249137400099550631793105015256893224084046695625404434681835128201248878868052922695039592900209024404267872035299197459255133919202418029465914793972984980979176187430212858691656184207003210211848997446923454046965723176722185139339876948464323483779297533843183675808344507518583274655898838376095601744149590676519612484461819392826857131477907325283534171041625036093471845994181667922181109361138194849413154611109375062134128990105228926228701393035449281462506006753357651795186452510322571519285816816507719757075763420765149211495648753784523163992243653004166068721163740030270896228891078423554586431712480146955743552715030804907640306429379833335530310425535482421522431405929187463985733779673088370872431828536889348728287575898182023264076330804358823731121465604244317765960235672387073457536395348320728521386846261126084633984111026832986758256610758690717478672097211388685481323731881811875476517437077105145025931340495483673494560943959424525564470924730524422077319931649310977910512933128680087621052398585168328170936433592690692334085749706808592539562655847149307177470448503262695757681041494397081999242959032589908522604133632501089713833946452242433434750507898841106351995054915798336280003349509477959402566678151383635173285469985090906680443815776138693568356317769456229313427211501233750892775053260396091963480582861540091191449607769370376061356160639641119224091919469930977863039751378976420569533092599756896949034280493694709058886810883828691823380363885006069770560752125617740524619441122690853501262682795146559485079090282160057191908220636398729310967324467008420967959828420760750936659022805136131322986993008512355444128599958873167080012833785775435205804112236533155680335451808676860805891432487128235995689032246565263670598865325888760360843356609313879198927995378860870866519614856711135227675293969961133329069885754744296846251458328281578430528355384695198367740963031060259862471371748524830046058063104586934219881897408158840623399647929436817177637771058079716984473342444690293932959980662842299236782613080338919753258575860804671232617258050479925221512218691115365470455238440832473972196975008101604616535613426784830515197796990845395965719599667214489945214535852103863045962132966555836261093296227291515332633977515184696865372368395471385496833642752788128533488673369413084862687341701274361626983027946668533884026945868720689441346849354171167686008154613212463361559164593201742564036022187518155519611629520770861870149860905789069727629050221522675289448809265728937363016955510965835506321232578792908352974536899925068482114303382765339262956533645785109368422206881478239828944148161567155210853734253592835240226863658686468405899189419254988505542481701360131206693513577401417177456341320512103320220081403385631891480674416079104333282508581118397717317971217299570522350909742972911176427645291349874169494901227947308953252881031153050058179160641403207061367490239632862155487557721703374836369299035684288684265763037902631882166423379364849709793294860364621766714279836912285779284521293024573957965846195328720750660170843461143473604070785890051432054940201090191606942390622175338633766451027715500555760455910297415260332955116055406779335691194227036151014092127168776142669490040057292645810356749971455660872877237644647231830136099125085717206461366367865157443919904838495154768379725852763980670497902153430281419561779432727976473463956995166939678458101959431862948201006079769382822848388695455816460848626539613185301618581881098103403257362292695647951775622027319750247307150111800225287663758527451839530720731417148412819060285794400552056399957896108531608448526517434162236377159597133219904108766082729862662618307407047127969400434589168195510430811461247171490043389005857970009465433510025650969950104379264463219951031818949933657842553933660260928029631231472676575538684715104380757231517892025814382790122050396269693404504169513303754883974737684973495236880650170914419301362564025825989815515164059540404350351668997545975428653632890760823898794801189655784674911176005706214387323506888205892975021391756640780929949287665463516970889231366303428919064510679468954213937347138906902973344920572440042290073493080451217937353547087516879175369323431615741836992462868418464154424209712922695034091654521067748185907682348770725801900683675853332111299234819200812859715767538655687054835279050442071774029684918715137613889941013107344610687160159343535977814917277566431352295914399159647062886871943749870071994929582080115014982239579937455110167332362037672730321436127311028442966725778691372689441434421396687253848860610714471564065064246198208917004341599503165925172316603361890269627246275378483044553483139242160993072931451983345489477905779982769008075716828554972684859411492934278347290284308577248457581711408741040246075802760262425253967621249338688518133288557770107177273146599865252621958215080123401263794772164573852477989778728024976207898823041610109981107725365824350249771672345867897653574904871992460298705443560706167905440146983238839303867959002529308983740787742270220917373974431604403976688450960262406846253048716110717425325918479866053389383977124435832561086921151934436237454116567226977931271353129640297104887231882253174341274255403139464030061505016831494934723251183361469704619438878515657040048573773307194312475965456043765997361932178640046692181371454368222677790618074419898066707202410499128660313777218465438408336236994749223672656383434917486958879386002740148264973253352093191389908998980272091925524265757030353845204606705881759518343554933326257211893546843417270299947401955319680299259199288210136755783438236598963020143423022279212596932214406948800120472567866940837940967559576918793787121554914241050690555251305187970891245796479037388858093981570784220024532850940344576591879381447916972084549475770550092418005866512392328446690082223019500818182104674882545296828907372471896833901645433844962307255302064235352130848705378144482897963377078755617903890218949633167652275682432824301946760504905165188379691380376783262697510518504096223907130500419792832156672217752840958961625827220158142776995381565400729468791410985003197836153656195974641185167222088691300416890633784532600395551478777565015881656869114480679435077275041959205885534809282074009296163754036015163304091741641791501673684090517144119272103895049643151344041154886945388733549378988639572338274082533887061150913495591699733560299668813287915644778499920272764982295644808787654262020736392573054093133775304602400865708156206572178814667623664516813990541062686057309102556310997882759684783513195120507072438473346962480032736803379700441940382647050439010363242013862244376945624057532503188564922383715679274398520900164786351941332080033129261634653111020614602733181999517250671842042653487705410100120368865921144356368741819363932488953452736682627464271789211540797735303919531441024293373859369676137857677816342149689724852469634056093928554394338077299759372689368098806962218713286187409834503181123638191131022864315341875691301812930464370227256244299806744702844377869303598756590666540628734114144890163198132698037906537261255610077521377870253731632637605380383850622197393479560784557159028669297410294653979617753817035220006850034684313592520859764279080797637927692706019830730547369572142928722238148419872996548126280544594190667914094630522103600442749648356069447164650406898915932911061389800658445021715895598240574763410499405918628751318300652444924194064489907357619934453285047078020147859183770647997920120164396764855070675995220185954188095229734731382065720147827267559472698825186243275968495542724241124346368441501221553802335785293539824715352397861185866724700141529278208578896937336239134150987629196087522331583368523799652403369003556827106161104961398416847242671752794935804705520103846145805203020126866557309163333030210106600649557025387698564370399819662215641617635155312997871479623455395716044562908754479472746539043312059872183348300227977502525969575325393163673280413031124384201210807725452035999858285172619726382638346017016083697022214056330454999068992607222188755291807381777500949494158028495943842164359170770050966308615643591205723432018133791808137249604237235515234000401215527393279078303978448673743441069263048872591677947831090470170016029145653111162766934011871208486853290676137388273708353292328792800015656291301942625073836180591647925537765923643241787748999186048879959558712006650395079746992700728479119918485455330652758891440732656148813293677198981611847418081844593812717643964660798657536916575346143027902691457904580053272584215818680272501131212717935537569456611288799358545551479621451221613809510439862581797182089637163262838103492011618245362318556453628507611043272318298695740318982588078395120543069363110931972718948337770866234314699699055217779651446882592791458739966945978695931461831671528482550464610667401909545157434795861341549250949748883359725143037179129217179669089902400669960295562112031767566674226278593498001527052655284755723455399921818974382797930236272342087063486419811265515287714479147341134379616336487182917942718969222844411684971992074503942635293296791607166282479239888676840331146349521677841669606894727098638425031526623562158628454676535755323445034875185520975416000450202001083810599850643147336992689713624189433271907419230502298185337637757691912530666413395201486943260844864098358851841824193572720961813227749892816428695417661730174248641785044522644689065208987140735091551392595604254458519591282251466395211708730931461587167494149427373199662934004660105425501994432934040753958920453490264322984221304351059076911789079765872450618974999465181202560622372560331209761193648056580611391680135484093934147540570348113028469554201439138599938767622982829102963804636496521008088645292025048796977309669418447221950120718957062158168384143220946538594669846525525790828605589373513418285408139768544464378104835909067695363101633340028211908714658097570859855939202904078326460627359380459136971001562130420438558913769780844766498954409781506744060497988964915785604629835397976641884515287501248327200264137230237466501134075349435461756973184402485578304221755186968141391482992236280277661714918817966131123228902052984582412015082018864300175185505474798950084088879589178895115050329898467764156621793169840720931727764956509371756417246938094357192428809791978950495378068095926687098869945544185790065937528150748772383900338151346546141477463695547238158735629700683134183452972980075057675452530283651615708423381638121809028187040495522995799842908918752223812994291954766235075394613899614494521285350760878092830126885876645678862171060984064515451636426612750151560152706801377011658619151757470344494532733736008725958108841476301136555857937355378034048393335802924578429554516617311768224060326203162105133345835446646019247171073294752416542499757035348708860694077493944164319106200286067016654039348251957088261219068468004884692591273894577685096264627982406340753181928592945988764575788670656312558257623020675629590779214298433439319967784350430445124612176915683504608911974324871923782654034672619630603009885407376992999067562988385000604541949719722763465724087101788403287388582362108394406805465104997591019025806632375145681048450559188222138804703975148146423890281598360644835504924956464478913421743049648808964838292656019861595199202043920854128508004120161443517092179388413761291982532583757704028866885295175978135544003278261714215999938101641654249206045293312777102609148840777259246993394581790166682216242590850934142913548331616279394814708498165658653777302958030872625661077789640549009697928428708737956666489380495659643758525331479929942332673932567010395322136385156096677339871273870468435019689569927286549698130471571054775210788700514272108757870579130802329359330893837819582746012455831563746807705431605592921106376110174925832520603971906914638826583330739329735370390099556662100408055425942878522268212678436947322992179243948013776992273854650557082024972771802264174778076081826591897927998630746301408693546700372251927816077382159486170709574510487915632281767820168210940090980775560146702341246153361506475276644433362024103882775635779242786938872004099463908211346348629637376233148541644758467316231750780860684535337561726611867211707436592015155530974234207091952760326114555741092573548120326453455464000443319808464315714495385386969724996156634307705049606729358038697312228117375940767286161589022709252619235407425527950365067891690611738080770356634033135576924056795929696349675651623066162349935077444054598879252348674441911993490848594313150689749817411475960080327709424418490133514108693114921143726911918705896605023639403813316391298020962737364278753944870944492114873981667860418904615830474169631746988152364024893173907888773297490931287513050436329792188391989900871037151506141488786099248607727224886508861622768766678642060988093570984728889335493491089771777690936125797774410908343407624732950173101036471945152609150883932860565984533208937323448779901907531353143005584559349795287871650561905154033076411910595764773569382761542898223586367654180308371906458064856178015779186923955765443722912536946293119639039629197838011602513258894330767105587356133721333292460748169836023250359254663605665528064387827756169756090431992977467301936780083113227098020262279041358055849875252344268162706836458105683260615664073787171411925766155566793341910878259232740356287484739865336954021781567453627975326648188567840917725001008992533830534049327522927378518041745808423482450237140874623901953485409210891853672910854046481214142618829295383611021852455743640048592066889268335309374373006841428726208351542862729496186727766595160011212156403535684961357812916052937798052772028435413456802250131024852495983267006136093818024752446764833994958285459066880555887554214050802927660849404598495275815475467007069602980178814632161197753264531638559124912374295273583045694568145096858777589034127575163167955183410129428573664270110935660006887936585976945500660156767948870417911392145326900616567748398762491862785836842427173599190325770970249340640362596463525618706504151269965545112218759332232570792144647831922627131897779600358848729319339158851264991363580861424956347361038676231814385808455217869001334996348976019687594728401012373404198626701837903246852697451229533323924752544836172725444790198328961157662215350875538530381278454529661819079028065055112489591792470068368277203936993070719718711264233022091931310121289756519428353096971005129995285481311718840203894864314968276422005319894445422264422039288441633810024098973755646993694559426337590178481975652626780459985383606156085090360311853008185471015072053718838018310958369139423330547151837192809361959906839639975653061533172549301780387058586316900189643415397113940612011172036270802969022302634924356189251993816758868536390287222164920932741370701207566303776133164143184437685792942707799160672780786421445595456415629071470803750446444920513908459716761782341552760399133424129982160610040237377697314318245016389505454823831724257495192660321384288809973635417553582513588818272933739840065910800171547609952757903289365813514473503453562763845126647273500823535063082433970171399061244400255694732109672143025457139618530123726929814400301294328516655004607586989533201716900415229013584394704222842493515635017389340973901573498132471773875329645788983732557459677320688387439090426840899698441563894994646291201861256077173424011518952541248450444910396940908269224656078287288979944019484498701642148053829525371640664622953205401212209163213093887222271414298441986474522638076135466708491006895768002941312494814217188446016013766176668259511457647517677041163963247065289648874116150911953704158258463771331253848042207664500286197150169530144329940258135435208074751165928794523973107526066575379422275894549586786137329289362586366770948802796593765803502991819018260467841318367043582200284673831332229923775422185073469114563022064945963589049765514995202253042865823511427752170427575309595387019998763946461463611510246910751038067437727478623792103423234900889852341881848279084560511776000170761795840151479541628021281654145710416793918083292253814890237037616715623806775643556813871075879285813300443856724390722071336806015084307857624629535725860959827428156019325795145383915900431225886429314406230623984785484087533909844675858479503023157118409994757444078543421030348126396532064501585523397403088536620252798028250218486409509506138454712672132613576327146287829053300455154762136269188107611812288305852914679122851951874105121508299558908357795789854274540425850624526290746698396428234717920094679303089671017060317266842071618745483883949665225123394083506160869999788531191736623504002317025193952268106564139275159324857927699398071803848754982751366816566598771064269305174853156695201693349875477810794687879750333774550808977564830859945279933664642943037794556334269289984911008644879330275780532268593223724675193594962965934370656411206788154627471383241876908892582278887984196305535892700078483060325473164177554702621424529139316678154559790863623313023617099620018518151314913417989085008764828968254972927574761421149031379029087298785204456357463959783722595856085243247876051958227006282414392519442060995300590613249353808130027461177671777889956229040473147796400647618373824646041070728776164158821297504522703372707915073089794575661938080264505189239683936655855859811616173751291100040725481384600641485149867306667983054811819779014873208629265648195882937518207742567869844346749279716237232712493053347800488494191543584209475313440595961695124897049591069987705016263092079759220067674877709459743330886948844233739593288247470084587077828733630520324663767977254315873976934036144426760630909731935516919063809409991991034821530016887578978872620091787050966497456731876116133040199386853603500849477980480257991490078386332822482583729362968531837174335638432960412606573218052473841130449881045308112791818671597241165066579738196796360704970263319492172490390325366952186392319098354726731658781088443378732906141504893780960311238470550004626400681930115554151506592650810327413018324496472478774791530050797406770997114310661007922732599211802810251452768692407823852660588287789967991418078942973712258092510295644870979862196874022229576559616384863900178295929310351572985708862496549493465621638043041696479536639608796389185414381793968893449143131677329876284284293759728688163908841164443428277597719426358381858616547183702558303247832503607438796936496958788093238570228573085210773342705614820330427004510698114987727677076422876261495414946451968264323403392761412395831271321952957595172080053836967530262360016595771702289638617028046163763956208824594870339926083937345646462093963422401034863190300645761720506335542565793083450648946580186557344495985341041424007749442519004153062176009651264464176726008922674257278021180027780822759439284092300583463674364508858824061110695097798487622254816802282761683461382389907044866040798933010219818511405992542534295172180525141832253737608112839233267526781038147859261055515106857766103654643667831949200359272673722793518200264822319931963243744555821768211484304730278009767454700088587299066500955625098142363571072492036066730133107572113211909011047176713570452533523269730641548346911125661287265891962873313377299614194210013376990885167067083102584361353056529785846934982521447317266368842008447529855757063005724605502599876684979820188945598638698247676119829563375402664936495723795076859090307116384479393981542982369586752285153575366218705103493507896664723189183840144963678827593910960273267181996560631644808084445772903390870242460407264532172836342606747584704033521805100993002326619377212702584944956963119144894818611902636552908375917153747694197750473678833526701510754699782655302712696259621384300146887868949913800419247733998540145681032887906080273144576070010717844042668922805361828432560155585120446225698893346512322894308073797715061823320307118356375872775314429660593945540246021694077664949536573635261645463334670632790433854278668624065111704113569926771203817638593492924260577314319848349210604204842903341081043188554267016591164360282864840933816837189843124369826430524122372584472088111164156334671765298410715785671707156545936221140797417418137113796158798858807182073624998726425366391056480980135925031325952860983577642030362587785328870321747829497730241407174804809345606611997888373164578239610100652749322086504111067985981817477821422025264459134738282232770751942264827743664029626001793479476616333099521186588624198060902156850896432550616652656364395724784655569194003060778070813403084874124888035856521515126981277835056203635727901679878201355510056712480769877993441787098173616217718739458491828779254571194977877848659684647327056637007477508154391574576136342997522964227267011950518756672383559139217751016967784816334372290315956056920074013442973328106296296092572373357399451268049642115726928452692781608573920025706527512046076340317503724539130944749019534489413368941665747220444633144715778393530140152077224248862059099701348023247137717330825437936261694298729760010386938554558252149314614994946737164358806511580872373823923814954999686810306933859030052084051723656568628291856518377991942304888428505098512015016954123099334994101990779999385617400752799711969429455304060201385179565630423285254031053728666109920273589246749530767422125778267085611462855335888101285943979162181668527400078478767168393358186514918138716591617636493792159830381836437964676691443262968037236512017561493893917702972823683246753921296461486508834987526963659003017104073564615822549381637593993374279864296356647974247302421871057316425583054846346957507035094267483607967043107931966216539256502394618957121708984804844785076555192250173346525605104304567321966800302476922293007107055595870334881394451051142763639376488684617586804442251544252160751923194203252304757290742728096484294085073702213275099379264439878438436169840382494130825422913826863420677071093747640629046571004272453428411057057201026014470117792248592530293694252036240906819970575238739648212619792962406547663117760525716034251843833154847394872036695239141649055721006753973925983285026136696014063146104084522331221447384519212269707926715762712380048886198192141095874717927647883877815330436266061981345868420043048884627373521012649917029802882610268419606499648735105284582112862612966859778572935724985484077711668330120437157832197658186478523052086551009168852303340103893036036911603950133087087969800588331106596152283435576602421625696827296936527740885643413684534239713104161362393572928426847079530505521924808785696154531463776354048671397813883618639457799603483627825548426411191972232563164080505505418520727202782962332245808619853841913988437477486537733520190633159392555682423964054895639362105805921118369832427260883448339499566477763250865181075792605483586001666221723786665982267303627973820941980630071325609124209136951200502035713200603043873492824588896107910029246823075951702190309807551682504377662315244114771149718961995450424916668362514378627091155539204349481251681668019112585593939000359746099224684021652735709328186334085751333035355658888222959872271478617205017619890940200258652599335005409057126067400564538148678593275361209874102617611248696679653975141774000885513549505848811108127243177884793565188524597997126650413637411322268524785990103438281995118938141277537693392493354844581319420728547839451396946217634381852233980314714189661356867776309895419640469078542920614239847875668669104859924261148273585971685527363026067761463979717485392854277104170338725014362343042495461094479253666804955181588265912979606005068345137946688553429640084907042472193186374745742437952017661872119521556418760104088062242667085957094855465854142940978565295264475558385572188717971189889501588747630727330314847672565415380260906858321817557304755060807599815690788596161667378187183264050987059345130726652245881656434733127080453131382882994796067461471706968815253876534705995166347349641545539334902533885753307672612227690075187583125937566122713648444970934177754412555769673915816465897767849195548991059758413987796155147571943648806186387804219966636741912809635801210615101813804745592522296753817956933534561465513017832327716536683972430896515960143846936534808072789435121427964203463338248585066295610717040011838289330736137734316780673849585953924984202624519156908122712673016169172747059212999330823467009627094059682241865664981711595187667668107135688079910920861897459337606807032298450607178914128776608668338878222871348378605282116087133867387766878934504220675583327163001111605840994461316173930282746031839548532371162396458195062740591338648218638309309501019084649138904040167825732732744998295019760226653186429774972591601776707539271561840791988369770430482517753385915415204095526985796725554654995907818944179516847179012434538509698977310139844230149488136427538701551304128824551336664881475069956962492603674749914530543584380712879953148862806560958031257088071475361856674832483889426103702212459317840623209060812116328366447944464138420474732338152601173876615220902734994835594951875983392771868803578710931827382523629997374415467247917347410973942215933573913233630405940853094128294259886829845132282906132539820343875607952094303857067608375085872490544288983176165461676599322566733476935751774722947157166208040681246165210173259002946696369014114174172615642058900848583885454015854905702310915023419471405989576815571637254426322768529063104084811155295058632028174273870169795359178838011363825346815688969274174548709942688118091773733019930165800399560884594191597209037117579899996633738781396955575422562439327026277854988252996356301436384574458225805774398572163748427518263932734752038208573032728716854870144666234685769871167232680777623562034749457501400377427842684010448741583391821345385384343849137600143784912120083591479197221452542025381606758349555375896716476529566304018168196799429485790929381102671013272923531613362993973735360166806415284895785906115149469873025158818997574657090947925386380468302564778319384254253570019181001836936984563225511322378677392687555027150445395873128901816771862417871004434906168111785640241340959995677813735681901874866062804969993513314204784605837091063614012797341962297095169152373958785857957096084344994846519687189812690608891053186723040505006924630561266581532988991149715357084264678925370507486935527168978762318870163084023124997047118847021422414631869009990985057357150717794925254119466184729529911604158895449269593180500299859484978269501597637417337681146121047276249882265821791574628931289866608159471171890097870225999961737353516881574502381010339098851592065516532397060133227296893462293635635905069193359324858459373055285156204206238912461801838438836558143145998064256917927492897862786944464183171128684912203031785955310038385079257268242673893498019524941673082518850530466570224221285279797968482726012680737893394068682021987661567727923347079574789336988524884862837917304841288979664319113493907559069063191240594663729522406890965062263574246831388707648150130496861276745348511402460839329228705061989948286336481003309799307880664671595853410237242511822572626837061594517467716179977172402544284623424471288050120282680055467360494331945349794127022048380881578905948742222549752323940180012704216868401034769408235171062098331998119458978904346479951873491383453471870452430757643707352776234646907205766003954573948124220418151016999818660687608550925352818363433270916843205166927100571465462148263650370211366016589323341398874698970828274063772650039534442508946104994457123479065722616535641675335733053315870247178260495919438828683933998439587097135380706698869683009842631354700007621015491262505422538545012549663847186050008116616135666152882327886578461398850373281256806111587129451290891306818123979472668093480878642705067453671034085028915302196747252859422328591521229222188854472756628838610585982080044284793247684838685488164313324998966578397201020561291404425706919537282033068054631659622869320828178781056574659548398794601899993366113009963455880937629836494754750589171587752411372594116663915386957397589709780460928588026564101228945678935751121804628194133499053503503872354546362136799937472995739069771841618219599483009847301811548747013504214936435974180485505662094980916257925395567541265514452674764427257165641624660798509962919244084988000098606201964842033851287923853496402345346713055205115238375531603384877045971723233666731974591219294619530838035058423982885379201798443526429400074826312888166349704780455865247572711280584189474438530809563347868518028015668229912848505531682832724725122163247826699712608185802097405772176904800220540849118674652068972116982428106476899229892271930072481358060896165630756670061056076614082690053271391961262533801823025483204524823347486244096823496703074559624944559905233499210598171623925521711339629888142326792114052339682094797259158457899046283899441962822701869932164417323451602435315572436830969562011659942801947529686587633985443045116739915589852848789615314245971841431093511234690631611811837037051730613073372311960173803103406873865555964378868018120389843254478720044676928356258755242838272697439261659183679566445841041569152016141591280495265525817246652698343882436944897601758661199162698158629044063411909794690378896499156472715793856225686639649672426659672069672687403106395870204515201978321845799132923901270116301059121216073653562122877990495762523853630091480441867856889915925064798081427338434939049029484541771636441040176261878406700393561381812976202574536719599654711539357063937016804281963620388483450268429437488855300369148470426762276927825638904163377568919138298420082583796009222806100723186475577048616918571099391020028038482611779130070039307221202555167252775429811820881042949932508836812356403291293359171634914344331147227870718656745487059777537158153861997847445335012073176489316495297271106131682846818336454700986409256100627867723458376206906923510457853016474283672631184124983756351856708068884548843961064860524663041127083601856027274732323754710474909292291104992029472661930804296654963292117867989215689812426973909729901321408688084892782451706289086432742775641853256068539255419488402791151527355465619325352137825177983579681335868913244153689554250054046501046661338741932509494218261410270795858486852494966028686801868221833101044060391858095031883798025313579348124562769745226970229425617524461227108060544969401966576853228650370921366319087978355666966515497797860412860400224874423140673218600470509555066790642323503405952275900051927653698361274832883771990631973840492076742514866056763317984832203045857937425489061308114894822663304062216732877169501567848172328672052340639944330511868352227241507320636287911364538914410248798773472351816478312503697011357606784787413168629239462393913914808989275005891269155309540179879750158778515498058987029961734792203638953781903356253833829253645632086541000734138314579426061327727013930849627786475792667810309129437716767172995767800446660014545558438390274181031585475227685224771842337103407458964932876916412239513315540205501557126920375672048446055127792893498334476320725416325195075426547056415610033879431805871578819822761957141134567032700728448490831934838191079030475654762635552555629892663287251164566108100046449782872241560763029426997446042873931879922452523867797959293866314606699895105480630524289659421768034040168977809537250430160726287996542868110204608174637244129351140009184721268307436946830190460333679636030676235908791374378251983822499460660987268481388190270253955854379440240111280010837717261122280990831227664130638822538252845369810150621808477422666994776539532601575876369257419417913110436394060171284137574752550183555520502119482212027934013779928338559199564874724685025891427973208113729208883817844423895188786134756271274851426875593238861346628951516624171426355817514474689962638554558815426605442603153811801984454166507903766349215395138964588490483427623021451522937667965755833163728747394800935838963169264693349511247676901249175592304717785710651147615873116122665471022543419920974198875806499094133315439393064554565755190713613988569435755834098421587934174617021851114549232090596068114670827488663735331361497260469497278017865583266798571047979432330797856823241797020868833394577244805392771235205473550426398078236088628317786535860980720778423428023836976003842882674023025083600190069430803288190667613644348853386400516930283553965753893003573274727137308845919272262906640991463464674083204348958192686036951422282135950316953872486913820417461998442465500144350468760949476755545623070915746359192973389409750866457396939362640698046363133188333232005623448138905840512267782178024776040828427585584639528882146725657357606673917020014955892021996672184801004108685871954322131858234755380310639948770760683615283010429574291333003273594689577007468130673939072276789247490538782872194055948704001508645424632458374548721689556656050704260654106591074207704256083026369386119916513433464464183678121058178193860794669451523338582984893717403646544542794822895359441480840182206960946985009326963234965173141553541394352405702641736210370715691260725897297341049582428070029922685257005545625527437140997653642151801866138372429490500470477738722569702974008721997687260882660878368329688262449256396114027284399917164420294171421018073258565746785344616012346338845628442964573972950416222792238452015903583900305071977353230485934140328265383146856553232657490544836679528690690740194980125299601767640306628047655737843014914115074411417184511327065140393260985733850085820162817708598209337689688619962573158549804822952205774672337043895122035428958822668117470291805847579470695161566543748325419715828150382189715145258211208618914187671508088417364251252289364867250984855709014109855576341721239114663820716546385908691126802004927276520486092030305185812579758471003435497886624455423025862207015011773417550435013652900366133091796749144812878571966236020119013592292995117200640386188386317021870626558114760650253365351845234189677733231806280088639152072802252561378662750547312300514808123859844876736243647566890195127079077262082575441339371700156626292747958876137738818800297940656341554854808159839155054341908178133175247039701867842961154464433386378964290227532609477147584136654362097685939720886235533204916562636953235636459545705031346315025754084065084626193969155626628854897463034737687526067828668504918833159231077477074194638307521375023006553540184360325107761987863472074458691031806557366513501512438358401827910272521800017414925679770962193599938029163550461887565716833058316138960050753295215861396916173357649629629240803557912137791088583331783869119044913987554179790703046851249971226895345323612024330831064301196320095745934387349224938957997692639424113178838891710336639308132072670740776917684049481406045820345973369274889722788681313963263269656607472667420252076911261872917136580996244256329875702535457583828933180781786622483839152538119285908489065444718821092006145626347911124283620814364695413886980555707693624680724577241220112304034757803782817022299378356563248358270283112167899168280726221781454237057973501599059790424525943071010244484377830243632715094936513987873505884647774542837719201527737037807514573304685194979029254559051926442186160308744183741221230058941798667222213736491901154536850771396165453513570920025538567081641499939270982775216327756538571915688476811276611349829357380292905227208697167510948158855000688476607686840084455454277871624427856483261464646160092299338334752458573422906781590526481226348921136452611362768856923789483068183695193216946676062034138674219235205366305909242386060634613894379334978322093726233468323230210850803913135535630122619116662431146724186245739265923693558316293318117831088055955191313864910476892152050651214868343607449468870828931187512698685737928450744375997594209235475421534256452803892562368220029552212153045469422335297712753148256868739591066977135314209138320314640738576178903799575192705967628211362023313670735482402154223860575653553766278415420247321273596999724483369698606232657576434690344767291614389579777008425596271467055788082825954272081108149708695399810964249935277748651383370588971635183695517602646976280826825414689582190076266886493990650166674135520983025406726351764991159357631462815968338180316293625407654920928220394490434553921379818721333645238595238058841637385132839102920508293975096297610690212197440926571143126224181652901005223208166288108935046772070611710195639982984681961589114090872770645527465557472277346530167916411068570955107638555791006345086794286719753281715226464670006464276475959182758086846167560551134241525311487719326649271962499130041296183402820803572500081688367043952693831663490262901416147856607786068853065898224155569833338789344094438536942636794272426856336189192161590060321870308860294612761524661195849139322209129328307067946468817463715823079819887249251363544863967829143234867030556611835742092699301462677919355848707322616445281418318215112435957253112985889411786105310666750804095620268502052982729552159403783364694342252915527239935273999325928349628361891117322326561647835804021227825008644802688331116335979834726519069854900843909944632735883401820804901265560195604005695598081325765751053785177195871185661548091125152254172929030079947775037713589125327764158610614190481732944749933264816365525752979297240806126731762067416101050808125301063319150936285339401718362456866265949462072504341520525733729260888514904278874495386052753933641288009959889095099775005773934168007432155204238615712792692903374595751743121411987793118902286795151079781349268706769468593495719074495134413111071097466328241999842432141612573530462322356613848878418735464327390340804645448084360781260301084113140413453788221128255135675561151043688827254512406344632072341583006257676644247413001132664143612418561165844256527245312009723576739448397034810382434071381166416404587707284122447812519808005398303367957198598586328122086888067960774424225249752771420861921066905059816907406985137668742693088037984082935107767947375601235023863225522098990931685601811251639463797129121083364918202896350840955414717473412230631447199127104993592306826134597702191490740335157412966891311881458247796923239466218266969545702139994885303666699216092886496880513485027026111266208942566233047593299364251564304585691601563201865380678641493042827912262121226210422250969120874232467275115739829007498244766220497905585693774125992398601725028052336582062319224077344612709468105606427623696216057831369155207878099839412116884601396601719174450457284491185268528978764074991983260200712316164176835960391742665164309595809822137158975291979504054344250032029373098337695573728948287508273731293372998931917076273612316981112855765770990250814119164172881280342150960715763795494031503144486063523565746224908780523728765911550655730623795908953533984471643013952173205989638294498413946596604542864368540755104410486825852812764695777508286563248597507792788084987492562563905149742699950170843539317783581002760078403178901235120857902610437270704391340243071589470193547459003737960404887787362729371827067818475671495108511496198997502095355465398627426352368064781616989073912420515895424847966725893619962926633926734275640855346995998464798443047454035589182569450750199980005463896613651767376574904174336032792723810714253006700886210798289855060543288672535418149604357882702297505903997445206108775683725262151245513055517340163968817688571370141044053915277334780482019805462964093903100962860409380995927639454665800004451847156227288751420646895501107951418358440934110813969535172332840946310909297139039242348907488672214277248545223341401722237435945533403885430123303358653927579315175562166372371612883781373178178628236550900777312488575877721952153309223768609482677945355769691493327866766307019345091354862256601235177189968451524830819979009927664649925041400657099482370033668047388623659634362259887070797474069574301070048692657516934600554638365278072267150057297357084280495012508863782119160280844811634823557213451950499855133499408578236840229160813649887212423011501031782304593897286143808358051644560190796358568344569671618166353636045222186259813709854475430618514813334582919878182016931564263709500386556131429819073593688496332896363091041728467597140418025839418206644669106730964826934830679305646905681045867109727249095607778694593781309063802265878534427878905513245565520177020903253789688499323424294217049295128138282754038119541839679927722282502627238567645519049048503282417369635969858215558007004609535581234798829012550514939147239474846034047120601263851038256456922173816840579699987029608236801664640310150158210556846831626259377710756677744531484746765547491869565951426089843890300665671843836058975804005439286783964974115978090803950906382695264131520531110888445831563554548790120653772657370731227690330881318957935571712191611485787277443428187330509290859163263246438171850785171425128436895237119655842613663852157848017421710295887078655848438245104175566509672342258266579727099036073435143967931687722807795158317301537400248667634909785133890712130828814218251000809016627578210211942655598156480855369705532462939670891277370743041891227614730810496690731375408416598549979032969583730241759037003267677384041413278686506868424697424474315709926792712299487254779030767468596536333421138745191522082914848461885234613891821357608856924902859616029687187410500166789859669704980304882710351207266009778701472145713143150339026283211261489201596465819251141839526428179939794366149717731307523217281306213338500256592153185619469664617226637006264022155879124883340366022939882085877964864604691343446652438482089336945522929934538757907375296581818060581801032180869662122388795394058291737525810759054395467414679079921822255817843121473598981180923711188331051122557441758183190627476870801297420104854604410711009012536842894511086365354500629467908715597604444543357844019997740314093340909887876403406314479958381273448039311747191322118398389405921640154367082161335148961384353923236452372549526817891735886891705105208065985407959188633571258408558815456033623335776848924172956700497256261601228894203671711826420217583232412341453630353680142604754591550098780658705158191523417091118555574276365152984709509435259233854206378937188755716823676822133431280520822282158822722264933028345340883395774968433963034905788195854248285549817307635348234854028867952790775765698660944417926058811890906335135659723968847774130291976029183665697448217240105834812015802111696068043938643037401797432424224619709904392364154835770626998869150504807686930809589447030154054424869189454356659232675290651834776647297348989527806182565571431767195137748808701322360125747984387468272036366361281509008157505869020152867341983184754615428934124990865971275474509182499857198646929152684592429187371085904496824966346025808151461894580531162655683638462239982621648699368569824041913265257044418428022964047110135101339954632232926083624308690375041495326940588907331953980049116679377384194381497740128980596588706424000269471439969154858274936493707422251228416131520308769087446302779870222660659978048567016954181586316342724650691340636074145251629802908199428051005231664072902386180055553614965408031911365643309261720137352093930045793097851427349352516893073399705140309974486541354791828145561209871702640458036024711887836734994329369467536937215491920530383996011622596959020170977553020896863434079516614252222330055318759141335758725859570357273651845278470937987488796644932423766214339350381096381157425849715497726813240540219403638370486379821425205786045725976762645088239234136998654068343825702465267180484531643853605270796647265561697516631924399354380399574675811370108331679300030119124798544503261066674612742901203040785383609390239273685916308086945031959221403550630912813091372402595724950254239919065617769588729738109096604205229306152659673937939795735735240908702464830332072782379298731971557016279605505387090594164713395015418584587290079753836990321568544351140110763195050597329330989488979456071468835529919571327579777441637609808037817555486024541744334210308836046443092029949068913295598943082686447930556627579109009305100764168060725811519715093705446212118161742393263631583097132519105487853536126134193732317081491242868233776685734292271409113825282400986369911610292406900542268047971453974031527251996415855901376428439279329168247595168934398932483819765280469510764247596011235928934825452552526386633118209917583445217019966543844440843567572087079752123835953494682108686676710101261201842102355503790762155711656816993007176158310981994531784502039171685993612377584273361463533927807992678693856235408550372419846035043717892998472327867681457270828181207388404114470220172367788061646648606768347909026576515164057274356871345721672771880575734137779889294150143531282285957414576677259155379344049276331192692196389566944295585354581675093559983912164828765125130899029359851468399637758133927671132305286396503468118486222369012168102394499089716986786749794032286693309607857304714995859377097136503108903728948688185229962088411294815414115025077857935099613325672996700061330286489886296342397504055201676748989052978727739842687295304520127848262882808105380916231470643612663245389743381141761454933931025532784749241443553849445688242430840146086296954304050928993061026686762048202413023491624534009412714246415342638870103852738127083289142031115534370948899743959629624867492133898150457183808280344573837945240448665160849585635865192105880345942441949435824189566204067651165770197802414758448653834312595802915424896936575316136713210276429251718401948058324100140190590282710060581862599588980418709418448634350902231635828833529879765503820514544900605550261648691580248062226470263978749844569455271164647053130496982424997487585084577795829679859391877041544794884132406498366518498413492934950913577740258613183963034246028521470718843609742673590427403573801226210873608318759226609723315540456852183210551067162156437974973399218912598907856022256045719820630429383730801981575747855944732674038789818643343539684263570014563602291404884057557497374428973704719772590357526200910156022450177621253053845869685685951267891621562879349550295384105362569370739350002499157142687868234011645497461615564508523776114510870456451353142492847377619680327450244192106742926277420750855366458872187970451736946400638656040410694720112755366585360998769477152596105846105771945733268827600231311264527797977771630680768165867977936661366260806657712675755961249984257844501029357861219119367870105165086494609777785969186908071738012237908305925567852722547927997342548356858512333429528775187012144856436161784706415553212727424493221807109877293589822051696368504139751554079668648475802819744079825930701605900058204080030413990757127036592728561875125318600773064344216534303471289659582635278001433974748803831263522361986330352040968799161446100554178825883792294844946333901081843878736999923010788896999764369286501711111523132611482716391745661508673813719283603112712621294691878573683059403397474866612900602531452706547808501884870249115313136893012631424692451722086959735153927539325135966580859652447296199777333839427730552352501941391012339896318083799446838667023470438621599044364302185799705983422644489910866731725737139460465366802554568412019497591555592329586708788594832001071747631096859945483585736651037587100584456821982856618646581634931435250632650611125284977320838624365860498874425388316218829438815678320542684036259133266883018454782488523951063920914318290470555686688079870615517084981713386984727410359708661291710573599064622095635099163312243118339076797767697133941190872954068267884916865167325613709456399420788341653059832047075510554746154895697357925604149891995987128552803198383411500550680048809651778548451773927340131788485177216969715416129472415162895335008421219751573598276802587023925014323660305326646460932917152931765037564255487048926172471418703096098784762353656617407257367808550807609134583867824669360606945333712790043870914009381319135045019768744746304830526075215378225370097803166242016688468703940063319098819816766403057040926917539956736751850174108644136303442530891467089398148517942400967174382337373338883657234003653714182616303126594745607357048035102498468122685443448580121261283416361794307320813946680677196652807064479659440937571719697722360441967576523100708787404293504375406099877894363069637607530171308192940759582872066146636486181871256400397311981431178871868817527277941538723520259027953235463135838324600999870616422867710052194985868134911646927270853346704831586628640877459812538552543351642631820186454589230952449466740214079165377417713905388128328548969796440980173101478050199834364477826091488090293254133946959165595028697319228649894352459147058598640282516479007276981009378648942101351349296901116000109602022735048280677095919880336786334159482159149116341367284342705941543307176950358307250168868290636859380100661770284962948103912550298415639464694589080763811858133656656002677131972351727107146219362889170255161189738474757869057020117277273595747977327690184460811151897426901232232388492050076918700989119429466392164536023200053250851829255076896536834306878707782831342851387621626891945733317107214790430101628379792158374339402127659517273193621123778049339384723501720994596953828473384809637479555071271956421905126365211970013250357948078735054376173417406230842521798161674736592043931860893849525881370311331173558954397521859882296275974136430279565702523009547524138730533135659669039397937473370706486806985581756356849242709642499626658447214753216629961121577452832448816628647126783993779136518095762816862991271221623462839277197367243432493332217218064148802952376152131984412088573153547531292160902254970797092492636293735981139460591397061955446292634157466111480564301940239968164360030596411127943667579638097642543908577984712339775401650193170165736551667875823271516130599210987762020279543280003361081278019043643988295917601465306095000596512805490871819106008580557369582632751360581094915391162669581342957976414439774671810106410662465211987069913311058371623368862463265068504284821741334940215247905105370741338371993586857634972816380937211498452241764353922824051226629829032699703298009876415819711463889744734388737624786503798467604508880101505081693891785285412306511954914731644830862393976019021658592062987124834029164841374455190528004717088519647697049025623504371469248043651496170550256617600171970792068415912706450589567055641998208413072632154136973294162430052060883149328296771834715127878130164039099816754831244800609464746426479188216059431551933900399999605081676136671483622059291753586022573428229751664901382465061116916435333487176832268653662403637663151076564717113085275647492130918107460488302891425551278526649481229514395388838666778531016141134278564573915546462386319490027488671157320926926856502710105837088934592541576166342909399591066728287529622979587089281457132358057651449904316768443779390631260678394188368697199222871594958389031551105733406796730832040980840065199570091285599342294341721831015513222246159736531792670906504913443857844107007909945483189435791843539542367125131947854037257344209558757451664811443303673635800827322620518938365058299558144538190045747223766034373973373144284348749761767420061874065305674505803341014105321258970534761717362254788150696345284714742784649574631894368201165445078276183121751439421401921910831611827940482448728112792419709294005070316260065028519119098188562211362953255433221864259885715687107428428482786223749841543201837338240150429002884892457084718970873555550615051902457457610985331135612275787841889678980311764366869395019010121238928556258965752642908758358191331670801891789946415174466532774402850431659764045168966505468277580058178785423105547768468637574584691130336646407118952515417670975641109491616726960449930084818408413167831003014422753056526121242396163796398802323264670341336047159783970579544600923672710094839058798865437518576120452998100174180032750629457790412776641349420406847948268885758548885826695285749509423392271106840790878171260809442206371805156285434570512158754101708542326219963408213057398955828446366825723149367086412118855024169463488024715616529637169369492737142910805895629066556955675844349720331893390570956429293239643943739976031806359789501584375410109989313176153860184114533388256783764366201943651811582270877150274734674807630489659607260136659983271070375691547201397496478074367748966361019174607335932745020851693335918326141250789177611591231578585420815099252512625058081406722033160741242084341407311139503534477725281677785575654782625233114161124549324177799449241929683614720398014958942908503477680132653929414958024134908322126571771712763454277757166251440913967242703227412424342541143141184205356402022250748364505188422108736351803942976221505204549959754951246722921684572153965254777609585621723404702506642685463350640052213373862794065533606284371820167879448243976370438483233849938772127380945475420828713309962979047732863284926933106500529519630592990543830916535662146211457147094159780493203873695329674979465633120263916019566959216903583122343954024678410162543224649461318258363945631682908730177538932700668907159455382033866671222982643777178387869261474187677097584811659008622811931813639768267479947661429268802404126707747473752391479731016051338666349320359466259077555854424100081454984518951516958700413450663911114610778126503721067391060565500283697853778536948914982145556627709939678388804962035219925911285251118607458033338413522372076070022593488653295574809678699625803766485402912486241015131237038210587363144831073355354581231784158791175006241288580765490624546459894384835315318592051528440069440995293431419975289593505699708097841325606229551445731848129105982214796977005082822911965773040085279875326955385979919516373955132584668659490865085988833099953276631155026569019624802762109348871981440466139026911984491528318220659909583554156094014625936467581982917014537126915514445230782303413320035509038195954457524974993233381005322013834808029327894601009126126753543291758034282616584568311854386216177264264754539914090542668454986473740083717223439217924381493532505080927685008116849878526657839831408701476503278147786279354587476432576507161456067261545006109330013538058633566807677273775579148368030747456523640464248729472703333455950313327024159311754958359302982999306426703528679710446821812350420934367735525200642067054587476013478808017920978570522778004906273574904703199822990607096137694511302027918012651395352774675887560019648122313270822213287090225211850138754226456689549128026934237682860752585115190714575327269935708841228691130911670399032486709988987821454901560849164296104512173912711809834736343939208378135931504700280615175019860233429476377623625796293076073961727074338964546414770163219741578738406848115049970198438103515544958265345827227828462792373054270432944337928123891880039347288963832499907032190314014153545633264377422894160282789130108795913962237414906145082364502057058884204718798460452831316021348316136218958178944120032827041947848967213211941832092972119764434841734353047020648212229863488522759732540247801217960121911640352579133657110115983749629118512799806906401788324510317067545785351740856362487313139764413107788489790307644657202425949311614789848842484072450674266890440272748103070626545014064830042148708793289029260176631946522307415849234342562118305337950002884088027502372958298131523835988503782904871602350190620381447101287072138686551505910456362058598756618977945114699661521991053687263419594181128860895027696627757491631659336913879739767169465774118632121234105469904405592729857096614587653928823233403077708695026456441963075608131135402308984499418969034684049171814032163239511305672118776265987026079747233378215613975050415067445931874413728594243382902937302237172500726970814955698188076746463296306980126782684104701556083769885938190595897508442497295778372567818697394637724236451088517873264507992884705934083294343154388872394285440105877239138145160667557518500422652617931738303696855469758972064938449549313498456152636708391560722411372458628050999080566122870387845240899827611687194994186746413272136990485707220287100423687362172144491458245745389227175414314195904808933783334151652111091529404925862607223304123995140970287134962486851144659645448518068905844589195479649637540960180967699075995478917846410265050888948726006868583160457284631766661382683475082950126328450654425557275769089933575944075231081757874008836008955118467515588819987453318168464715692608648983695029429538253374522989117748860020029155422487681266461751866733624425837810354271720829592779742080591052745989520283918037556770380268575415379998961587162837220161830889680273045084909192140876183228728495337930409579693396809740928550323984359184237269764251077461956347172608886961165292786495817053665943762658636301548986985307047842536517930451895551871038041792119479161233962202925977191817523675998684911521548846430013339234880039670176186388251121850402791284208943385012742868415939519344911448378949940451177418210745214210318511269556117431083640362265406552537569009747579454117869859276885186354786217692042662377339618649361337670496985535425399598794312255278301888323470228192405513177479423370637828842166947013620567716307944612406549856148588888379000524130575159703088724210094639245595081774169727731755054060512489044523134846291361709338417307094086870547015295798852712273256154774864654913051763803211846962668139829929799918314144679513911091851534672559164469895201837420599103238716324484413799345415808048999765129436578684923228129977515281295134340874382948605023659543350458999826753926956982888123887233775551340207887397485187829469498098562051571762765157634978977964179019565000989436320345732708208867720667913574571546432703224942859770413948170740704511763287240626914977123058193837575730630017656168388618217250244629784722270888064552146390283279191607983531583920098461862558176704570602117207052237392430555070471452961037463146963052225216241270240465496177436373677862444688643859612514901878658964046657056129004688265823284307444952194986274229957064087841186692060902157615421862494894295883561494858983498769174698426256443822721020318130345149993416478754518059002724231427374956669048191718079308153283374729250644181076252519735844793190041829650330792274114122502437732389245183561942271052746553309249490862704283161576888938170490879736391061000807342508561708626093537047276327381711689135214291337829588534083541031817090284948273877860564511918907385335233277134316365337064709331487519725342977149681148592542407175698641179628897164598407024786699932555438749333708209438359497835572293721723893410145093530857300822953501482324179127606369467027878480814729165718706262343206683942958920807382767147937647936828125218886111336999351214685717652255012439882062255735788853274084952646621591510915965033190554238660223560108928936259491035860068399025614207344338263625554199576507764908741066884430459120745305345684329872770750035742884363341183171303757317426890155681719006284651428574361619647759013039010502396674045140376679317309585849925476778931526355645198449426928821323001392908555790712063177917310450635266407902215102098364847224269172298521269386909753001867887176550149310412661388099948126186307221051265326504496404427149587819340478645001867581929217542557374658317750759786525581119465272975752408647265195629656935341183354060099729791323668082491933137931750355783357612358353259705718387324859627362047663037166583784405212263981045271383382074125129695016608254092352268304319461331543434882473951443707540137808134711833865600202496060611872217391670421089692768621530881065772527162002083157064444432054259709396767864324918683678811452869606888571132345776337949367258461880131620066441553709281613511074230727966660062579533492324147622841751911155481868671029421826257488294534914272500420252983387137202662487965682446800217321023403730219382378198282291592451253238097148634996392268293354113441570535578192966409265570103033941162129406256180272144607500808371580800160820011342842795992837486253077178435088656739248188986508516432591574880104094793048050460480261830272523401330075911976894888311890883054816110331038792524077842270032560820137043079470532746875650430959868744134014929473437177573974943453660913275544434616762785155306638307151550498324864349017057365860196612633787465086600521652780606834992076300484230633749019752473201020979551551465248926134436498601038643474756615060909970420073279340482584797577809032143987847507932954670015629058638359810775609925953135925475191492704485941074486970227660026141233662821061216659761614856093594686297529196687095845613357952362969715966915505398742486751358880837232392595099168603581019498677660629232876099456764864011941379727288347009105088992494802595115844662948093667544604857334624633505454016220603401717237332225098884246985926155513452608436311683069947230987616902929028561973859544393112031359252605995381405632805070310845284065680145617533712606838201262287171928544666397879906012329023591673127299195859406920857084061572679444358290576726046608246153419804030243767797907962267243726725863018863764405087393488832790345151580328472429081744001958974337587588674678048702501667708292937936174970616109267468691193756184394007478643500474370394577156880508143495028944786345586339610554256881624266228853379183776580245860708592672570687239197593344043540202481793631411624378073596470778810587126215634182643056267427973937106763213033310241963845918851898785717442101005101861437778275907957524056756771011680395036059120672362847362820441567512429647812548833198084061649833141828785128573257253637293621919958507075710911768330431303407994330553069263893916659813354725693435016953726938456738290782407200392370507975726376593223274662800923653850948216765796616863045274083182240288525722034423466696193547693019772260819975381007272546765212391602819772477502943269686148259470562445298738819129393653499264529847754476608944335858779815294016070051717240506532704318182812984445909996466178975614889876601454733466016350188532125243210769635269328448320380603575287985580763120001688103378845885241087676787362367847366820522309353342922955483164364588723593052612229065487811952344484887367192974441518278963491523919934678834657268997289730001454091475387404082438486251174967691809682570803342601216857578145470310911254015976660204182639690619497687090058704638623297626173805840586510459229131872619531795500150144176799593892767212431053511591273551387102920341089646499869847795020088203280791613414432613948332784641105058018691051588198965533665984983253136609280586017147535096527874980761047745341803423774167328008493103873369996951572119767877412558070933077840298351613134327433394849918056150668702086466924011439076710151500689825193395373786693771533699369893317853569945471264649642907383010249766742734917737974212056811267945080022999963507103100524977369738485701350620841767660996000486617647191655900886107226947619039938368469867882733779484297834430238898595221749850289158663583275961457803317380932198154834970125684847692475969936282818105351134736493733216280639577452627502573575853423070050105232632992132099579022845871850612253635033218191230264880513913789036290365805870308898311945803356231384807430419784812757651073478424768730148953424359202020901061061715307487590229713119818243471664168759873034472700667315967442288409943565015117420364911013113148657690350623093541233345023227892685288627186615203563156095380295942266639686986410137344889262392522220684142347312813538908904993549813531860722826114415911820065103031662035133167133874394406151242229055301839278416865092125200125891076247500208458902234745457153822570802273600409310739904354077086941012363783022910936433038407146292589791426165162526891890753404252886333437586705600130160158773950206966137241489419982957034306650537606355928315386899657712530159240669455181563424131890390475932471162996438470494507365574148685394189774540161837687477347114124006523376565840697523863015748807273114899995560162325661934941669296351563019477588174424971756414923653782618390522825855025253045364078997529759306583752987908702453764909685936338014969500462575015942759110099933735478564234418496024401574570253705791206750004511988869064425973435259114752939394129636963466211137323462770976924112728124489267822532647701314642663923840673212859200330880762699115828050141273612318392687478967449574177718087037211206478921414483207606604046160799176826648253225077554436416790760468369226739645863368870382844522981645218756371234312747389863395808236870199156556062906162010358962587923142948402218105375847179045813076269448712151974310543492981337457213956924417607401244425110306180441478863628732793782050253412803971447005492130586746028124884179851832248725853338484478817683171789366606033412138524793150153856498511310398983146451902054512264114825038953682373299223503227845236617231919293403351809244684175737412272672960360948763785807344054356005911981052897659173301739409030060195285784062533881321545081636537470857505445829763218947378280806917778343670080345025962327230760288468364881430356094786284134130814506056090171700758130252904345739458414051792957150555863259238095518132120156684637597573053097838580663802209835291331231739083995079502760224477306763541832385828551819441026612896676205449358162417029001073493031451131264239370448438468785248224338350058908218877885183755570683465246335212329443689625822944064672802554518163622501547177043639828895738718145913990973691013580121259761668025223144465373707607072507862241765478560845582387735710007326850030594575815537299477980335851715610330077723317367958645865501616725138135912622942875291719773970565124462230099268236202118187885394810061822463909959832217625705066543151875941984052667312634709654455369440099334040251506319838191650525015440670310705375273814381929425344793402971919185168032757316610480202020310500248010847842698007593073653187335872800556195143792592215111849234426631804435885225512700801911758199026148784945782639554949348222468822369399380252429078304506669948699895298265164564093193131471210600537412476126707600656026323241592769214516573994768250998645922985174832753059582370448886678182111854486006423364383543653308466625209792018393327961664170267437409819152212109121975346895758123312417128997596837494279979718478511145100673281623582852736520758574676740774639843461451254086895325567661878323243512310079094153901479683600630659518932403870244401823110704237168824163650566703172231751111751062984395015562590743152773186331826775146403004942294210109122710745778626148269038362684748087308892752882948380366545070297954748939631420050325695395220670071267156038830133428492039534780753659339574585741640570198547354444294294811026608620993125376263504871995269449588661484203970988980868824473469908785886189560725919497862905048682850749674661886015200258982962525199679889851509332400650079769422973860865716772445181791620541545917444030681761900492276416279286994918714407570808742393350141189087510170197122601381842075172994880896256302644942128952591131970408432167139662334878673672538471336270215540626143789474480843758276594265128200488133383218260027918420449152107522408067966874929619035940712147915517302163680879342495663278112734481014515795009049897592539555053550115105727781089361462231064199340198487895466234189422406836768795811860290560207219318754036716558597356287164655320135292213883439468105771578372191160888255455474830216718571843964522056955759878527502342942647458925787407697470626464536187264392134019356000171315768548145959286298102826593579557016772263620380609924956506613362691948303783677436838689716131442450345776877050861660439692103032082338170080387453483808481688146688653747294642686837168362429683524339926915496692941089421843145000861697644078684840335376205106255279954978167483003116221592120510505182547675051032600473622695686853961597315424573099912301821811005903388470830413128481316810022949787183003485064359712209224630630177356535696187038772724455740155126228047352981996739645095275964642838810429347791810342323125748461651828242365215095522723923294944607488582170953791944110744065090377464715497172114229864172687004056230056213848498110413932839632516504037065895043455255874885450423687515808254848076982191357289134099358559766757188143428080928720074514998559813366755784897538660220530556835537137827515804636958881278605706632399135183175806755616147006420200074086324957653474937845193717374105599914403724819017840604959291070579609309665203291117554645375342089160323790500216208412965555194982935616287606842600627507091116706698028733521997184331953067813871933039368848671729534919268520204873825613363536158157478850382980734365792970767417247038904645373701893760779977751054990964079738329175074056540081804544321157933176552836019024224447597442322928598528981152458398650820144730186061179792686237802624518557687961908766293587737473977250649442400026972482056797224335021554106781966483435942473185375947768720005862454313695378175538403304234240427346473471419736758446617393864445806677910883363964502325098876830418568670937217825659135062399084495024627686321540198823487164764796291842761255745477804590458019171638244930633087015434156758250038464725782627329422990005769549596046208929662837529589040866991526503709228870409929903038124141430785173039474087729083947194640327453790814505453963792015822554120828567620796263490900782248857818083256377067242387839770885327660962137749989556620576039030867811166201640551393148478430578111672502741868420857655776975980234019761081202380813631995019683087133899258013973182542786562243523566954817874423023427901765253953323812285953578977994435702976216485166950657608568432313645020964054147465443947447591244972649353609448268155157549168606258806940727615815915033753800076692231794738094598057773180949713215193535400770626514510446849689503072530659463462511172465042211200007034022826644350028354319788192223411311544933839237556529882323773361198149015022506205666915488228424428149536213497473286480422860081081740598737876147185371012391266399363348904032676608422442511855345038372743111788720108842397113470297065174343519137993052874075409447315768997334956287522771581548686235652939970999034680864921410533713045533377682705123530798294553259770450131484623580884214167047705077261948798720772895684839157007948983749304021077767276268366402426233945668962094403113650165014465434505353429586335921703793586208583961475227235400009821247922188331622958468229837730636250333904371671844492882587018098909023650198559516381387564648894276005294548035109445732211405181279329516431220085384791198624020029681072830983942520478806227885001754137404172723036363174712685148599557361721811941861041551205559243956508181240254943615131373081553228439177168185455182241656730072826309028430841509815382822924694549050922898409339827113085952286419657674146306710413784239755792312075947032685070304385733703435476171914586895582374010719592081005156808408375282560529321459290948893930945905094033766662891442668404955859279590203258501724327235974644179049112767724986708700302741576948522263701838246461745898668130290653789459828895179647265388973780992803365424737915020474685772187473304006628702129536080246280467948116776258563594471686569162852636443903054782269858973841713806872978082120553887542240553706198708602726454579073230259861840008100507204257973497054875055369641239609550841520804576783486654582830776956956188766333688545524165486822117055530865815558265152075889300485507335625192667283509631599363058496526762322435287711162413325154700248551885019028398901673916683677125791818714355609030145362715020195529194715989330063507082130957794513404610551425279855092959333938249173118866669035841027135194943322471616065199736055151132877282218732546951985622639109758054186461955892738129177929947591840817288840837579350635271207736274203379655720813339262702104214118982331718373662783929707159792763672786694682722540743819024216106105056776864419832903054389638526951085738412978360416322320715484161749262991054736734691729569531784290251503136409376059384870139746741152387362649626493837754377614571043668474797067619118362328562141140775286920621167846640091298505281257534987451063596636370247788194123336537057433648851870191324928722416741085196310769407402320828811201577418755039740668540559735102381480616568485645464291023728142022326537505036795897682931589768572831419496647876854184984962302959664466099568767557053506463828335275538439676892088206752666808324042830733097832602276384397752257980426493995589243160137895630532070777474818910408213297382951754261046354047936607141827711154891416420808258596512745077290340654977686085119499342586798484474822899740754383081202704968593676810174231603839004112790159443086151861186911627540737120747880486860935350561892552026564270575297281219033713485466846555203062670754738313134529408091673924168017702880669230575327651070979807438390780467573475472833002010324430729836143872856921203715498001394943545009359764823612647976077211455130629514707660173203288508536836548917995546112169034706375967256829921644725322861728837169015413209375924878689296158270150019091866073416593677793835850216931532986980724185810725010643424096237375983214374595903468071340820975283756747455683605306926060291643490797826307175979685710723359490715807858128924709023643055275206269529862543146788654033263698823877229892081244318478916956101389158040132191176680405073729276635034577483737916365532989216795064977582447338754236187745709115229008131249538913693803278480612525574184601126919571323160997078385013289164174841616880690369319383668573686978591327289810800163698592783675075811492428270749839205658737598133657205660170885968680786680220204424474410310742330711069663105279554564917950102849816105452017605841328886025944469985452031959632666490985104544509237725453340951214186431395819505412172150813633156138985369133793429441601580785808019081167603018743050502866960802901348600231266495852444862734053070493162554126653271893760198655170819005659132931253357440941821229818674881205850111144212486751356902260586742666814362499651190504248129826208692773435091741217109293223018353967994517774033792710922779157071455450410313220613898056599632778158874841104735317397175941232931988063497728065476991838834154383512168950896119409075579990782810680623119042785356652452582310751306610768407227942279610896388804630870355606190564266028969053161439731846649563298174068423022786189042405222135570718380063775339807161741414632874369303385305257843674615049405877683541171915837301137879987458508016932312275611656368621023364786700761229599948894306746342964464425511897894019511276941379036577490352342904962229208871848577963547789455584801836597237665364351202351134753838109455467313466241148030508487034497882703430805811933246043593117179072030963078751528391283832471808776068152853180028482077063563177019628611190720474456160025919591752610392215329607824895125782812617783127738332739905627186442369713537773716582694412358699049280413387170993784520658849786352222473692236697845229432963833715727156855409811795932536680157981186685494989138593814608153088724314794303291281059903135392448485037286819069748178344229231841642910617734320415692882019926308189481659685723448036607798090276928578090695268637077850910633547404486982994308755775982310252862792356959453832721459732450131147313590468045807560997842491787277602582860687258376747174765509967848867995229720850373231187447543431815940714870709966956984440182242933847136597221444551614827444565598545039136399184267100049709889036828977868875357017812513355706330561964251027556689457000014916627572716499803202703598285546990609245552130866280937327190379033263722033365817638005428542268361914638751513054780760901516312201573848265581188539550104912341868180954968016206920191737653233402916261474786405924482603151013325556742878355085506476000830246626310610399827359128147230857916985399895517891852627323893470743057542521827220316471092358359512327256764724223437022221444662962072053123465416524508838388505816112529378063518292160821216469085085358451290222207555608656522718217242007204773905400874257198723261390554083577202030167234537101913534272931337681643195953926487329611321970106456381636087778772228155699557815626669872707847940455661126549450789273895172520721520018558562962945334134095731768373589333807164239972597375688723923854265862400638253516650650496468760637290907404391863872904802989973899229568293817099570976680104495806286717268099927848378759326442218337610183605598470400593415692187743530533334079824278282517850930003214882653759459132505652299918032351271481766420005184133878197200442538497183038548520618686460930119095285354767977070510669229710195117497861774318092746624003525599203325434650099198928511866810774528015285809987649868027006076365732139277541548875725552485688582869727220792248321685723422878443653220121186006010852172830709519700604632385136551301973113140038371132362865351839712467141839623343717022113511844718876356845687349343548130272681013705785784187161279394521496582714495738774777954818103808865493117906726377692033629240480973775123333813159153507607540210351255193156627347260574096807743226874800424908442705605637372865876060566009281786662922879772084002558283143448460754858910729646687643084990218858615026568152226601855622565517028657186207694614882409342817278441884246257377120600746251641979640945403047526481800282268413669456377393073668392885269506097380087768251477053996298291220998900305932693875176025769431785276262803189144253504462338467138978730649076489838818154609484502064110940203655641222697471301738344833920145626959836098902402062086760324702465197374333489027129074099683980196142405502729129378486114385240240241021425566959764994417145207180251133880373774393656954243434795965937924769518937605382860411660257600111988119998052676237311802936572821641365429809495439304685966489479148061495704387782403076945510673046098419492004685557294253021538087309223607257497951269558381898655561878524148430482425366992424287436827313558060433607703142505660751622900408593828829077011154220258819974165388224077894346296891636786687889430704123646703039828813556558547971484209663001358777306341665431502412787723478077586246252132573710644217580863919450171663749304231488005211797039514926448080564146186865012467791124320480449367873899954762567779546474462898514295114250731611169275912780721360475778020677597919354018982901037727034520659583136556859899044472231088105525314831621271428944754433059401379169858782306311565612507407320721710147442915883002088630434299162302937058775788554722637753142287412831043066667735973124680944816870632551541275632758851855092578082102729865117509859050859653850718120442027045676848388062402111209492111051190547376929939689663389893158452850371651523907527063813254697310366023850643544088354653613334800454146852713409961625331494906755751354455586724911848898262652762273348528818476777836683707312712178392642301913777945829257801356426644817017326146327894773125759737769156894493975669420143353279585051631639142346464773852218859661101325561018109192756253441656097406540515267250159381859934253047216656907405376671881643181918308302687453136034193157101530908952627169991047963442924002859028064139486194719539821740757040160393941083865315315294252297443843701991399697166756199322349349022634402978843239563974331975346506508911940326492153387476084673372955015273474514450939232182654692469584839885057260149145270041363797089163265320634172460407070349086585611340131054313611855273305483047594877364891696055616573480677722670226375391269993974025442239270551818608699376492291548386006367661259656045249123541745323735824467323521930688062748407707850792471822631491080819412682259062775523688376180224435804986436393471922625999418843542582436458766129046378300343344276297870584620301774787911066783333966747388901294461490606320897793260242396833285100204822282364298743840565758764341568893418428383042257427143375494178053200820481694029517400381827747817375031060075220495804571282531424022427521809411500281094430400372948279222723000636522240734601210024525688789884702922246721553746230181289467613863476836034047472076602686680425670957525505860750675732186623414600961315879824652171141322494511529340259458497272091106427586213268132063556509198970634333897570195451636848934188612944855404140308931126191086710814266295468723201363310007509147041248275746602671911525277537815948050947445544231352741154102852355393676782080140523948866380071504048716744868940204486578230717971963684887678531140511995462808411694925891646815119392292317313431893246451010395618651285933714319819951817495253661860613838353472994141029135106384965791612796386348044949854265463579299397048211739775794145024886653177492321874789534825219148907097232128454394902072950472491891169730831376285451390647361045918196432968756714778352391535667300313185577583016337430372454523966952943970045582457007645372945298307612606592189250054460286390364876232023525017299375026885200911644276332245092995095585780195274983416945089458313551667604208160350343403402554954267278542790572203088693746033393310265310648429081471488203022811929959571410709080881567132838599841512157962712858052109551665841793498278109862528717613925873714638892800126575482916914197347518404545236127251907165893196365520588276422513262409095772613471909663250135299308705661971423790372976529694780053679684693959950353207656227669598934967976079519849687707251130841253328178767729692439818198206174036603541674520526310921244701528391378050421117377740416564648692638188127999721996068191476845744786053114384121250103259629072514020776850815141877975662193168245002599639038152488106023361042605345158258881005156204429117035580478270244645911956658594821478263863227494057582155735546147413999152901785091873067034592598749480845755432365275507249228155220160953615327647394432330768467259524655140342959493879425257814711887346466524489960051672111311498879343014249804784676100260627121116753064831471121334493815192710918309775354137120274297019183587625754273583715573418724302663408469922527116902257797041333475096062075107226176378822846433026116645430741443189161188927461368685466437451479314859709906515532823578656461328315682143113424760152004588694938407534754441066746435576279242708181688618335621120772494227962415993531520492661628380205556890822498177083983576394626283721191509321255640141604412696022977856894279376900635376231680155329799769413181610861593480342527419993729517991095780840350979820516812066137353982080049061516922831423626353556991925971573716622813725189290775893107959508016897376102789739822984272102859141416245905527433145327379219874165944688168589655653839206097097237478614815577524823433960463800926558404359425246265856354232250984465596811332918556215071038317841650657821914864157963241111490019253486824536953698240410706716539296347006304424749591514197891830523600874468053147558044393233677265706807125359353093373238335411743853411931335803077335396643198003540931082491488476620438241265477330049526387723804439239132460792289891947495587378203466878913550313274875717514136939800755428502474988062651770524343881257299511846252817530476399598904207818083249359111040069197059718653480933716025657230570330126767232838527568486881942425181674485840236416973565679452372379583504367334449040770234873323337529188075932608194913645564021537340754804095338274266091723007067309566084839791211716933173182118050893152970520630072999388369000465382510500714862754262199291912246478114228276202480486972311688242957524562422555889103879304723615292846503126741413561862654713137674456024452090725961933341325671983462626589885831773520667279878870440558708816634474599964896426230522915415633738780838511904979001230158188400690019461814790418526760651396543841502343784157743907996118489996960073207313991537409731203432096082427428536614287482097167560193068546930168076155139980030371662810048382061129985015911261750069850955818472719010257585609445983171216393518140289090414487973741362882995034746104789761192625588160640062901222573362745663255494304181355810923880328772851221658646753764308296051198355503916269687122832118816434438294317519040896637853520484596573433201489734726078747715526293036121124228253428450954198940760451188749495615590513231910925900134535846323496818199212660558926592249929847967220387597539852686343445485988582246794949641713132253098260802663880195549749840527704857138437130084460876315570942054146538572807484128528765234907478620683721998848386579232728283101512479048016125332057895079099587826577232438005709006639162847376285228885267546756225150007700450607868786866464430384114213414191929101693878966531156752147867443355952036918575223108930915767522568899603210087930275190108844170540391529492581640091724541352740828985173458143676223669561367920591657508712597155423415387320341440762845267112876557224713925537177417059988096148655450555684150708733327879782951656857883765503987348575062643100505643361554503979648625066536989396917235102584362994565611380984353905171977517177877755104780490390177489820394630491737914474929078824650450981460398099376013660256757303705306679774053653033413337511422068661676646555070597260448726108309905116643772458293440558985021456308454101489571094565304362958309892773318329323377522014726253870811116313769724660929460718223956759161069166638294009749873159151776434998415436275259664124130535104705985538535701185527559504074074387172329837229642145873618357301234886857714555430703959023468297647435952616075363986492050664849089648498361236246486981329319603017942022814217994704124216210960814383095834440326609472153169348351130785700118435907510618626739160712232941716753127667708514201229155286138619296209622927921289282343103940150738507199462316407490227801710030253197013570160814737220755257792856998228650439762046184136082158414245087033218821345459981191492135029286256516878515833370370217496919661610126294261084172439653374295586405244344259423525993397114666936928525430070083794368642432851247797594310216253154220165547323668508838349731803008387017380121462365192281869844605605265123990828577370620018458990882754571225070817242292275632900310123529549257242213358065091347690991881496836490794355000019198864001951330875929144425021283933756500651208123399511682847331092424026514127259799883669393738160526314255758882998985691764672871361020516043361801351915027663153854598016522841680875330909587021002420943710154901665175388907721732734398585946475302456949165624066158122692762425427460433114286686592958143865693361740311418270510697708067934377521338448372154954367447547305775030341446523745238068692812528179658205777723258021651950511425024022921609901583492338521408827523741491818312969444636006676057386605968828172934472210512935390252898295711693188695990021838219096192508231104707578390431864162380561293861632531832576521553498378638085723210558994727712654341965833020577645771201280340799327772666851238354544216799580674156115755118094440323352423576727986583406775499509515182849228356223258005496978002642552669700694625383690598158787086903123360692809469508502970764444974925016373101963343120273088990246142988534077766331433946933103497338392631595579818489542314459099297575734002266051746712258174667385111022575571791591815766817140139408997705076341554292836055568285767283926166909840897365409600239416283877239771446754542230310359117888427875367579996260995755437303002578837129912819320280729743222543260407878079852266870735044839605412139485351505720580578114343725952979479318420572141219034103873825592318075494772599161326668465990394849682451242213988342559117844213496816947880577503615850172832474410522191987816672623918450021954274430382087748847454979132168078614880488543090115165958615510579352869369214414412644248915942088234844021131715170689962084669936428932544282908544207077110361231449355361438730289815364336483912697640626795244684864700904209978620198352448536801821184280194252598534103056283165528589855370012279299959691638812003484481729360034890071722554518910647337373367819211595304813154812615296667380614230817890305471913416815206448582960903034155900260731810238217829193271595678139247688230613542308605497325274896969227689912765988865683761565069891843937634866004782616318920809417003003658972571789003468241127053036335151407830891975215461842845250386725711378172072538098280382826079225357912164888105108580977481771081443089580119698405261821438588874371293978376745368006749427876890320901172160371698645478210221784565614790089435577906216878316622868021008346032768832361507144412584461156713101384296357002659066776883396872158994605983748767035832633629736480790112171141413619698788596633227588183168152128995499851934145350764936011705581812080198750795016104657452315396538524747709372755608573408623938591193817266517701874069397065479735357005205870798585157324255945721203230361189128980534462868396379641668927084699058524202851083446532396988230169626704406554324807764868760899906592486323401117301648294875454998980700763767413215517702516400468540598542263175017930659462562066714502602320045529769026273473926714703042223067082504617300098216719248377635848715120774255202534510859040064679498200133357061885133926935808909795793035162369997197164471909535250211756599619947876046828766099841308608670979314144573134439075603116744930285782703234435462155383948051714725954159022196143754797432853077630913143060215162547743183078783318623231503428844932407158266659150596157840431533874223863430434225446789626328179331163117302805450111035851998706828969621246922806116382936639797688862177151397217060279255475975594005306532988018616584858239812521374840794743920228003613709240617430995845359213758803529020988238065510451669464741145096951912302072588186069454161353721425626073712196034234077456097488021875554114053668196779160873173428362772144290420949881327156964589634837173930240922138090302093158185501101656297517397478026175759908051796224814091068668394442109965356714873676810510254089223526087222257024083507543617087173695937029903550770073540365169328839237931853081165346740309352950493327211197812540671217924286779173174266016533806980939695298983054702369507594497650112789093880026438124177360514670872118015089870684779622359294166420132619565181932579023641091288292962627590647831841915786684105269326377684692667147378886616454773736289433318993012654694821561388518799541159294920088516342307786681048123450582239132359537421753959428711098715174468156054438632209221683116397569846194777101594625110574270566667107491402027677141427393007575779286831436126387620054417144630197053949398047797704835449600398954454948135710011430224685343403094043016133720541021460005948143965083387764140072185110962772325323121013867446125131249454632584844543469025063831708460828132148929344785904482543582673600084627735446977847379829022790741701853159019445030204793649089566328985007149425828997877828372245349485081760359315135091945173041072165839657285802327567385520581614315008775534135601365093477874676902996071251222023833493728309058689696398687292494731105019521597477581284738149002629085737477595846859301818925715259137255566941072270822680578896681266030574653136065749883225786498174808320673350555712044856518065842541659456996937007866831214171167884674956163871043540191148720051005804005253914141223047488025816937536729258287226784140037679085106221749167639468959390838700347093532740989482247097334653273234296896121277729813694224985203451590191039971544666271150517778914781057030858529559264857674866794723459444582823361718700239539914373312539298111088604061722403506364996238596823736528418285630110287677361708798768402849313251586403112285829495227213227378499549969363903981613939763154279592144158713379612749448429984834175520584822322988739803081534320929715486184867758122594872266497149101915017379290890055436815965169279005438432296203632726152191688693229868085153863824983957579961383629025399282867127115023080829968145067182871043280054202787127250718164550139034621280019026796942774000233766299567025656313881489445040807525325820051813938849134991007519929563863130551246239612660328200819394257511634409802354518176743695681553890791236385814465303194963274235939116362256390667656517315652446224408952614616924708817048716603914632968136760500837738021933487616247480761266262075859617771831088025438604833552877910544967640819647660776460096076903720999636894049134641783085717373194992435412907955266972508750388570194204393436198863836890842097609752657414029587258738344374153434470426373114154309100628970254170956295540459052565270631710472357304688041225639506118849301883746864261020768599776377008198003904582847583947078866566683851811195715538210544145049241216898427929470641005187966680072827814641363974208260833919364619081231106808017750969257484807648613905727761045037909050684969158860726868980522922163882744906494433791167344375774483357925970574119725152122192759977076922419755056401651686379388216325622187112684819046805517352749184631241058295964872610788569073938146315264405884948134714672708653896553891234423784907032427692928772816305157437367212433303844529868596547347154051693245416918200764652873391601831782854283184622342436531615930432465237363975096041568670707542284988537598534153125056043430377305543185987198052609177139868880609218843900769056144560172447655560608630624756784374506314321011713354903274037049985293167926750199893392597344943274565903690648720731601882139293698764102278704828510315838000796409863554688189317945248333323600721285978855587649522115990469552967604043651134990003432670415618517199611214416881015236161928539674158730583248844358839281082216941237321679937178341683026507144346660796707878523592105146111320467431923349003343737319376931723599941238835956395417738301328829327939644913573942110213515466892667577275074673612248452357588506528501301598157506841132157961751763224917042777712359697264104779759051278939856240930291388440195757162689634668166543464829648052220240761512109384489347838575667431076954153759408080774077290853944773057667786016303472650748433830477343926313554407230018718179050556686993222295004933419257392229513832760375669443558189989378476817206481665333972449042694463677947234326365421112087070219814540658581339235512265044838150110812505013471335185529907416087233543144338969388004051419151719828778310502756970987415974630938059822129066996089449748148092222952058343401371522436915724322624256625207120054503211343107302385304435923045792924117879650092645937175069931654216248614462321557581850547473950670053751711945745217451779319537400034310230684086726748559124398326749638012568113399596694439667795324988780952750872634791688643555159540753643476344546260976629422669136051329519028074669828421025933993960613883167579207428571713644772292483545974154531524150465651483203896232084515591741283085838117049189807217397799608073940581569703598706120875996884478254853655371372660765164508783209538405091446980522414218481666678248747097108915485375141971204139942307449746342483561242904005582280431558599396275635533636208266526846414278284776236171155745670983541419572403092959554963767056223384677675138728471760423401776986968801132755230237697415047855117118779127314783358976820373621610134053840401686344443879650901295189568841419027480255804727759603382321464051811509817126628102492332590802538795788091709919400846728222578875533957463097454571333248755334018366884942957584061991363738067101951719081434133167065541063956241137111901692729909310745153041565679093119507921310902642280200620546717298766334904817767094955770784996391028255892572183187142193341402838845839179492247538741634007308020973374304519957665879430798274163018059549956861336142133797700354056244268901078691700646844015674944843957663726388871460866029532062219373296996767308439763504316729544999037194498296548321201339513000433974091887769021950565362070556301937376688005642406517255297823494049710379018744964881293016341314974954064855124196366508407731928300630611303704807235369575407057685379586542323051588488274034122847000021073393086288119859296769838196353913581048218533026724511822715672118509671228093638057545687879569699949936113716972040472860523810475089064897573023035944568657339333920074436434275654845870532036856040394546891966074893025961975138901718698315973527359633591751151501806051594927471581095879742935582920855384512225403599581993750782711501771695589452405878041155547745289815059376925111665327642181913158901593049592809308345811976593922028709621318141113031320727465606800786654640586549665269961923411072824802071531707421443160221860616571108974896463980540884478065186571096927254168738846545709801029877089677738089865946247505517132197157747943229258882347309716762842799733449278285651361847725356159399511827395037725437444393964734419942447807196803347181863790924445949630120103778802608140247586377798856093430677429478525536794095348429896126956729121752410210009249349965102979051091981943446816156734354754979321867209273010407269568020399469466652594993881330933550365770253618070447558006796222079635721307020072450895160557969083559518598760722135282366670185979478452094706018288351203120729471723490049376876492737552495622937868969031190457378491110068072494103853600606905577010225382720235445778651225298536710926477766051221126641223157682295545511501622317036704127634084346483533342079246705155440391224400446549631928683368267490384691880148561520448032058499558586105755355628666929894009971963591479998718683597863117446384317540679437970746014132487134283479214513967780493129268975702545254369483561259973970187185033008011377307081567298243952835056742839231257917087155411939233444292999982609320276249306362960847278553276639392750156452773938079217949863962698535078989680655496764527375759206577238859964189890214126075307945125597763004944948890207673092263041718485426158899975524078182262746238820624502718370083034519256872188453528548080546949447062217607937353541622905135744918126045565095788339362683654504615352250068578268757799931893141689265079128056238660045614979183005046592059971483981991963544014468030397927782144356803950643725559951113930129589233118398746682149928737185494501366024074089205004163838952246149226713357107265762246243776267632634365193564879685456275364281267887252039446075819356965203845549396580796062674655733360800585778960786002013015063490354540830573161421519853673849703750802390884900583971369060725066753445724903178806801023101659125161795975192733626667383567712148805545936042631897722848444487728972431240770784282158726398640596349669588005979512784267586026542315476879018064995703137230250109685941418907702559678705755407552070798349878501634649523927767812014499343291303738803165019410227251449096262209530850048940926014709902916848596003314884952867389983849133491341396393124409845181920504725824349166835020936185432191980937034051801452628695594783253254103254185864529348726668373801594696255711590001087388553665977386402240530507516298210732922592943223256316616952151436466813214514765888299376873965899714953138265374346606800139149808638866399201927260069677253253494131765843310513033928936574646769809916861406105833125488725205193690584952186423939554320771623453556338218905995833834666004981372604822135243242044422669275199370929622837880413368616830649624146934768118827355838807734664950223801306483223380177169390414189625033367547637849576202683496460535794548755817086146223105015652900312828130046976412403478573261067567030759121315644587833349255448991163262479605964679933204604621187992191106342512512237179731607909052570013670577164291586116621814000769624204294553964227293821009166242320356620698023745129193954818632437761079549067810909988667350424973068732845797225186778873572961467836419409643647456984917497183596685867049854193050326202937441480258380416269571380039814089663710898060574674508076405640235512162964787079085663050112445755946228075234189910915963528474091259181808637927211188243646947577884048224464265929030147380511915077880865936879842154758625226916372737277330754811201037502531536087996077784416256047063557849324261634669687759371262027177775022200711983010035237154903599802355357082871939460594109739100504998746127820757246636351535640973489876298703857344025049661327691241416020051211951218891817395385174632983101188363330154695624905254483116323931326082298581016038148970935485309227869473258657513248130536667389898944017820661741481162553040191679735602297917699706889041882017815357114507269611962164074726340080472521547278806605302541127814833120279548708109144098186826842099508690296155928327493024414352536861659617196595220751010843113152464374779438060707011460496669627778459841457510772245247204649483606833966089285558455071051082032833251150818834281297914511985966550286005905669746970027078553996151645037169221400338124381718103443318616867485446599894425967078893705124902688488495257717147527131496721858436909782540080342962607085923221973364062573517766027449045347802634678596378996652513765760474306350981073043072622530707774719022277992226572065203800378948648462151083206516749729320865349746186005421366974653280633379916898625396627204247797467799898212120687948574289922280751474115951349728696413685646859425106774309940830649069098698291955960314961872795872863892855416742251359282646817365202754223406522203635816876100145791712794194074967001719007844763872211246299417975673629434877616763591811874931805417681544504294592023622630207632701394466801613516060686690077576488434947245006611499011730717524286637347174747997389066047139998243775496523366558121447969892801886674008336888409767638102373350483013657453430044383258097156908250415952861606181752051234913930940785393361038163945714789519195992911567814137566610905949411264966191712625766510764695779181003493224822732272110313830529898648823847812956100569393532373968528500382620472192219068065062858897140873170800056240698702941672569170655200895063707496263986973351510619923653401127532106292604526496260792763550438128755719379051358757840693102296653670438840039921242252599003282067474576897260465133492187265774373446397696949755935562314051975454687944768682789111784856725610850993802488630601927702845480337807426083330783218667492244941183894142331759450533740617819522178743611994483736942729144647217370824221154960657607333903742610027098295114579355440670978785255675210452158565881153651045305020319414807085154199403160711194139640542923065438370472374025960845503890145586807938714573796376084148257192618248121864956321870484048002480548160269462154049996101354372215413426035228964579954758234423925938348342343418651384189733624412186423848253945851234121890466099498688631341703612167808701443428047929332477215226290220179239454643960298750168514058361010385717892511323606179556621773913084573473667542658048130658493519762034866809811114101713742980617024963662833609096763022349002095458292908418998813714815691218872589416879616757422536283836483004288674818182658001529899354466289911474691352199518335285978567402287592984766478903744178815108979916106938139960768186465358297765588213771351568867247340884032652168007827206092600424340353191112854027025006542753714757938396769735499743134331997434219204005283078039273289433441710433422956253352334190967120364163855539533019273755015631159673285717610620808983580633034857919638170962426245892355543231952125497889435590850453560565730455083351783529649619112780816238206068211462958786625049279634675508381378243230262917247748020038836098100969734876254622452122384586541155939126842514598782447816126929291596805731859846380658942657297325642693958487211276518667041844240460244920682817184634974428505066206389283134134517978607136923367265683304843000866909576124172174439820600268886833330804738396691890120668244283039992354435132668101236669816505367181532540630172535879758184812648353006955502714219694701107342849151269405311263265395382842940851662400083156615393302615337787983620051708201644878196102481676390878729415270194517112541892787477590288347615256745527350565623895725311127402839715436434085997026951362846475210441669226911964304915786618095419555421928193951134143015388790192808555522406542860618645034877143417772600054921005822977348024871828558508020713005214451250343720290001429340641068864822522070783348332955101155578368425433133648619489906552776706973794494560414694595132125879146897203724919326711936342927531728623659298265428071073047502236061159980535691890894352767499763305088065789804396377207343389937748177920539756640975829909510096254599450372038731023252188892984100061740941890954950478679281277969394940318632134438362783726081173328694255043986637805394557783768399188529004646139367465230913383356964078867269996463138092964712749028734504570192943286747690343115265967800734412285572784633304928268055935128655187745547165479648570295532377294142417035235509983797985719262644360900169036937535718311676791418097700322236197383240803794646588997734215029272143562898099489599787694326629925360710922839307194145727848039915604402859877174293751585308699502412432137267270279710692687529236165699819372642055716124141495584042554721816406025539607113626849164075678631761792399482588826671733175581316719590660583277072536942381724637798340317486404120045391961319960314763112229107513106323231271790215695748976021804832112562470556218167709443530257885840454580820076835283930905382126419348371767891500393703155026546234985194763270556702102824952823210576422440142054288357070165308346234222781153104043500003726318397534875727580062744672572743337569434207456033793741090446606130912376261167781449307620366225349760228319435168008068813949072567450128652905071501280151945435713359082087530541132710437762116747199884222126176518310156616255485823860814248352232696741446889715669622156889812890238457511075463023531737788299092759928975191754098539413803569449912118326700535549035712510416787512805121248632920935554172042980597586864490454120573640138821637100996378693751315661659096174450004660093433805693999773264688851431197508336980202383295275328813665865372317988165664572764217613951680957943636621763300942722893524320242047229057689657427477049679442108644639314547232088711395518625929243033984471188288511192681839901718816670520395563066860489260650752156965486413568011216005019162814819538139943868848635027329217828789259702084096742261297823989569778328672979195407626025925238220434570705676561460531725751763824321988633798303207953936316774802499039050210075703717169873974835077607128570620126366280354707380026677568578369568786397520931113868278798733038006097536421154443367003450339525646313340005976388217942503412956952548684268339298421939066448691533596521144328249726610044546522819228600918878685765087699670640138265696786968820698653232548658287117362443257908641853543159499964530880371117383591530084983568040220375061468054757027967324601908613811801992119230890525551576888529931774339017256795564933508978142641222133033354911680400869504592647925823201816579248905408495545907889308624746636348400771777415080843907168850181337705112721293920598825347610876169064169629173052257858543459586753766045032896004832952053249609465948420117740795173253577641199157999449178904200726737587398665692244085861003987158246729429398271757251596356366480228077865303987799858645623758607159304195707092717548745643602101150233633333273923801200014221883504483575097281272239891163473570130721343852022510586801256859851856060045036873135499127196670931736652938121551327618761424348116949304607735858908995996276277311511056785701865410978426871585366425814871017291542125951869744212890421115716718598010625102563299971553911354075024692996940725521229645683388992710004948680094366642595697062197882420679408340618582609488073348305148970197676102718601017217959967284317607687308627583721268671246614832796685055358066220632895809607950079013175034990087772979491902477135464351318921811793881512553956535422430698686581446050405836848855276834581650035673256606461558619670474649582162790509992548373913029774706729073147965114471212736834496020019295630762942418518796744565705936245775049289337970937573278636029133732366259171046615303335478627907117958679062993891947778763851821857764532575503288769249503506735755465827281230300550680194490323593475196754840771908284278573901099522761908283046555697755788633804852996364495537797986000290533789705834725960879849334324853882009240465628827381265010248357588899684989266948369244274344776651608541788460527713781370569733131548745249181338424164580002452588559088935513610298625471974584845595242570206716953626509196029052381310612396521176150578311311821134068430043701878736613367640438462888708876936322088307135675882173877608064999981644444113994895551046949155208139406879011775256447178918123846373985435968856572910480626498999493488682373397503177489130556657869954471807242851514722143724109316481626923312649111131367773276029647138227605560249861379436416056351960537733268116396853409652574905856818219663728389321580355067948751415383295290008468842345662881902268127266191499382060097170832651759492550509175677414919356936484066461964718936896568179948557155520066519474884317734237020938152095835647535061464004493104090632633551899117547795841575807376274061860682992880841476882635720297406013919376409728507467844987300616678096629212536766945901409565391305902726465495754550936821596719764581135210250428881509985750183322366722229494912490553574975555598263834580329226420382149540882136459404680785465254827835482488152046125308942005734178238597339682347434438148428913693039553436466251128277197266232852449845390027954299703160908683700253298596651214061201148460246333836940400625403219826541828512836987468821368523330870355435598332706281320636168129963725874904076525529138646287281208074734288658260381983558636065235102413782878789296087481849592017457936746100404021178123873902258363105936220116412923672047904530004846301058260943889212888455822086065277952127994217119265209179514503205476614109742612234361835050634679414984495494097890228357585514911827777105852562378086479886901047763075605192680545575272486175793635917797644802389932613006695212510101195294464316818528196532004825331673038852209715794967761373920435984075626636437292974256278906024188708388697845981410698547847291767266978243217390755899064326733542416490328833434073095074950991057879441419012759513268367582044790486511519045409110159051472118815345500492211951929973227485380798126568713077585936324132485964280925937131458011445736303770404651109485941041034388809366538642453694779280486856723308332846782436730257325825854679810212734177057282224923724097861317344033376999856615258698760850259247117312942067927494527068326370549659169558480607903778036217913571706172520207594937887758233988123587095820163465860367590664681337351299405756634492755263839943926133580462777625531370984158231205152705692031953480580019879194568463560913485295061616186831984219694092796346136646848267119648524287207535089449830213526002217676027071139010725809837738509654571606534975192769030582466860188529442812970679944873541991030852869260652344304115744528315935030192182473697551408887056170191766272171730458246912517334786157885838211620588841716387061806488511763483996493423654719401225905787780102180246589847427904180321390736155410077282292958637807443057546029209685031384941613452122273168824488234833120879368942189513354556672117169343179094832256482798934194224400762550499550828934872256937921817952098294999444540400415289815521199491982929974956246324979926770925434554362131657157880913123144193207192322013145069501297454549904328513438182525483863755208862402574690166806760552110382133190453427463596483624419310460509448298277193200598737145365537784280819525917397829521568140310644795929258875461872429412604490187480226956389351763284617538880238907700920091286393453265599686570980622141947634751717852659946125364154448987963249234016451742603619715711797271238468147929283999037951481711097944671615000644675276480469748085017447372070095263030909949068374785160776901926080888490858765556878912550038469474322503133082472605103196238934135515279850494350080168463553731726216669091030705501785247322443765731163710468877924794863714982544388632089207356833627736406784061498546943641525184045077570804798994814166464861780119730940685838124571243843112137769367556018435707223981206498563004659652215561039552294278381692602308390410063767508921381229630335499165367895116555672342331395428962234896065722244117552056007030057275431084296269114916972493529570136137209007470725012421590680280907341588599156298766761365738665060232129982059215501752429888797214024874736319472059778091269269068542121143955909879029628528035525513211578552501863255165434301602178950154524286306923412968652944125524558835478994172245202945650795606516535726290590548029269216750890797258390768292883139416562458402616158210165944847109727985371385079427346676605057997559117469099757851023616617720958153665535739000228420481546044595876708768238728837576377576436179179877816931750727333937680281198718132810248697903637336451518035238738114557476337307774804750113365222138394898703082198003623363113806714708595065479879921235518814321136031828035663055990404927215103895852187048824974818158221557276662346026411920447587746220873443237204902675457942208124036308541097081570682223396502016338889004180813576657329221634253666551245962209150001864731066714313153113409318214568324051821629318721076671893371475506236481556230064400296042052687537017355649979289425597539831749164964958873843739951388069629674292205207148129307698510171188139483047387752961808598363749357201272793994164534902828580550384171914138134927385195316786079818088998054854397399876486729889582550027272477842406971106253772825990131527438402322875017806516868465986855323484639975103325113351998562798193259466919360837228134541528279515692812759705083971752274496464277180019852083188532742886276092705056386007718769817824466602786549200415100621429266514332949154164959276584287464159047389087445703282775278908852157721322491940764873684645706597760622626046180396867769232288786079160734265685299148909647832052860355753683008829457551251066663862639823383399542306266433220459813348166544275044313774082556831369971853512131458694879175428932936220635738022988373105265300318082956324425494901929971792284724945070143930853821643812302669824766458996718243894733246278982088690578992069509424780553922269053238354827579734235371055856310816457133704587546334671685227745053502347633783516978034484809576691893226989457806940667745271519717279045997928657109135396463138170644585622892682479061119466787524676410519929505874189545028392967039902881319920309680389241988298051445297113760706873821810698897406216894089919296864656232634012084424842682434008320431506041770911756305663384263516516317053600612428127842774060682594726958240618077035183506403304023777671860752216023244529897647042046355022518351097040287281633397568647490037049398474200916528081531306728459280295447732398025513738448501893067632173979684376221595723259966581212576088304288524614670391227329236433999263085696376826184010714505923289768566510244449834427484531277276876998919959545520833574637680126722455026596370919225889266624225147455153022054158125252915345709393558850935885389625856908160775787902248334860070824175619869819730111175889410468673816106691759948653096812426158972173647573525776539209144197984295753563311893746073562750184701300257312259008423787488089282840293198529512037372862056536201463610486799592131443050416781740375654658147786831328370949141544670236259281637921762289027981606944525223218514276309882406504544806709397937660469381321084916357488354234672344990908135461667716646936992922156752746637046874697829105923743134611466235493241692771879247857759221759678458168473229961474373643122664703445709215375939162917694610086694843195822937134668309975505399958531123626859571352970805829594008578707260225973098715642774888216445132022391167540489475118529491570029926068580792411911497671275689609255142551461640046752833312054076389034548724488652025996716296163081160056126711238898499032212347442513823798685477013461325425387889530171726145125346428980098932407491359944041538190228520742033392638083206342833980468084941826852049465614272581360472062913365489270890449150888949333572317967663001442988881985817989608042899230184110484794174249455307947673285027693548989146523451780958588271711732399230518942892603626748216610796977966480314348831301524796436513966423055492082928396506678631151293954038918471933868880615235151123006546252643526374506044016983344698723244346835304026963788038121530237272940639131627333009944688412900193339985738845324448091318308832130554667715719126196059233688666836815874777695145732857011178842436790769203447589089268426264891066399073356926658639011568022612726211420760851994960789491108757733533665828307068997057753831689291754014664761522108642792494030752919325993236227066913866167278695605857089333851004257027090665477103165983384219602209225609904022646360613069418233205145830907751417020513873582205094618820325966415483153415089584002300208907451994346584587441997597551824818841992683263002525619527507638270987974190117498594757338514046790346388035200277665045385264396203367938232711218625289174747157371042590941332916230404721743841651524138244876345015708007955365010979562623799260636643640043008667838136033322521707718040347976221002306921523232043695361731197965922453015723034858546488065555236875349567828649257498466577373557019698584205774519781966886354703043449716644623203742573953426162557220848727346257685536289254936194805386591906166760421745841970437173988557530531428064378930075988160756099532458430780648336385925816084944214776868783150000872533999810201345148471873324611187099790526035348005158669199943605721236406818033323889575855862143674600808574737106275312547682149569354650147582165635944470522180836605140996746557877162832127532712071894191274274781356754569585172164663145233115938380854820092780355613333536258010085507441618917823658000238250011094365742251983800213377054222605492107972239453055804672060450629517021537956164896373103230876141438405326406779212834487180686790233369898305581953170798156285432107393721224585871419393379369417701071731162392742005800941872966978031340673380634061536965097329239788960099747458427920474880736810940699120396332810439042957347933360117144376683155287424144707558073767301603799246794944075423706131695403177382627884626831455348252945091601508521318935862706175018002626220410612618009375481530405060728068270959257750397575640650286045906143646023013361356187246077304818143212000711313282848215280317302617069117330394144909688309218204845857214010968681063670251429740771513517659238519066997498072721289269838617876971745242435312583286364618660758228925521420618597620324471252013848126287092667558643160924234197811817203690196308103771427369991874320907961641702931582402022484564398048760624127404284771848446500422475100128798595609339455573233800206179051573532545052766518890106467138811965111995606704280370194882258038019259905560972747172389321568868694517865543974770256031288975128780812186948645240262070417681179582813087185232690100656171441642402211259439371821756013775792471793438602260240493515314476484882696651560030154352666698692761787809540172906468775269474645114382880590909461362434790085325163238317033086973693060944956957509991242297028295203536444117590915859722270735367472830496067756277843116384259444343889523989610524748473798558033030773773296098010699771220466874137019598641979583924005525845829017513604960140312332542341731254591716874093115279700696684276655830014150032322453253628995859668790433869933938545491240125189510694172380844213496173695765277762507691166146442124905311904653884129529743510141396338641275740720002516010858096120736291625807450847115838562374502636030667671559746707504855838025352295111690140133808515928601378914327387088054967351338656460596134483626634658397926246697112364343331050861790326050445307118601391311022412270571016477180581940659226618430311873993031511273330623228032155651596459229474542094922597231622008227677493116909123920420382088988766310483168314932408656343702757298848605877235485142233072509518746334659278986392861126896672854920173524295647898918569190208254031466604840364871350170771827935851790666759973986250555566004278495730374931803953761646292355987311871243671484671699841352661380228061679224778483887434861112478956661938051726177234124441448131293689260211725078857637096246909963477078973813637156076139651724698126579853036502762302121074922093674286162787580036884971502401005746293001306872092671824606799065433020830025573235857490254621784350320144262156490871069788792452568864301392666779528709792110729294550020122760338570659644699033343084497165793131394290557333336285252676080875453990465807412867800475789262968628073568022988004704373512317967350121051291361002569159219697500460802961506652307606101721694309438715331381930525805883579404730967510927755283355620078799726840007920510521232865662386280066802531429064889403343542799410335019520115250188382402327621344733910791159563050739857956562597596025294910418735424708176452996275050319224265715715136478326960596715359075404113044858554162131545241760595924748269424104389220981579886123529638007660154590483065982086087757221325509492409468680276055711660526994647954189263638981662504378798599906158307715270595540429313901128792143139426054068681136794560358325429340644571470581776402638492112851718244479404149499764633922800425592448754687651609489703188774706188570751639206701632158241350671556443815402800244479108364946979410780056549362927942289865631697153691085477712512490432377403398229618793771650788472798940153014599830148707364903521546340772285045654827105616477556486772296685272804936749700668115424458672592802727356694670578208909188811939100499692590913801225132814892848566810230347984484492111244436645467975969659291579928794923923079541043408020436714968435446672607051680544027423358181795916197020731336371681655407329799627029922766455917918414877925755369746263502124286723661127068265963998503880201408893055261744371552317655296767771706291509662680103018270746596425129705087979512283014526317085648687355977298329255831036246489688159466408787703276566933705805275366060786725282051714573815178836558539908916298766495081372948793128296203749099755386485960971319702816504146296052535951372134292882392948003853839235344335926611766618693185229000103746762379337190677136022513024673022556930744704353956941282391405246097641978137837322056622742221966224755652324732137467451218541841322214512746234495883758464960999852518024122462978747691437806071102225924054889120136610304413461992209523015286790135422789613005031174365848266974317530746532912599289664559249648806187566824154081191490197132062845859051234863735146312983904389903736673658330890017536373564349330569423882262480988025971646029469644407405632443345201945294343395385937148159559410699412318484293988156927624498478632136097244471042554721112424780450397516460337342523781016177179844293024515098952745902392218473238349443591110036197086544173269139485634559755864704799404539097681625088461699844507617815330919523946567882487035161508121594153162855265595726510200390101982470886113314859840162948304525939472392455908982865774015789071230373011234435553728331324937524950155011635653160155981261981736267546108526764836771062307429671841841138991136503411897652939798204513986768341639388824529904440488422237115589932124724927419108610080405566897230437200417382109552234192105942672132058094068451464224888483682008581529982247849872881037622411035724329952768288723029150596078953511208266581641665240421586094093338514613888075818139821921532858241922808135089591397110627207196711448804027362942036422929794546155441874623918375446615466924297344190184509389950187088476846896557339317148327188685673839508008787770839890542915027249472755279676531467456437170442011342876989856773852349948256138268074562785677182079999084262601072327736660202098024154451889291114444289681743228403283116114417371903978364038080206840143986784977929362961977601912336545002588305588505729266232703653768802525396669524500078306472842852289958429252360801043162621932580581583145221224852050072296833784529119173624286230486747078328973835008068034404982695776173417359709277263374221040244426477047922224912152007359053425448234415184504831550729948666880856652375083978757310120583180206645965184918400183064789335334925088772995732153808787617644463159285066233155722602491335634299806881015709155355733929418312599974722856396653758635277499263582080293862405517995378687486336404951758172815098788908063270185102360039365192470752327127471727691283111406194260742641544760947803841705682599034007081711759455896922093338561234247045847583912949874324572047048658486502172806178731249320264739216249835437211134944312457600824882859370802618000059252722608524359021712157614568737769556986624433333307550349219902348641509694456048746185706201256382719638453254256549086734238580596321918542727505726924272665507556225453470595222288632082611169744033699289270731155764187042095017539448364990893338983971415529636777210141806003229797726766046598668497377337437440123720685900241388826355141086696032874537758819890292660830122289091871602165922399028986934256410014782237777241940523613811470951533105430874050514264039717802994918599131884870737716599511947609103991213914335785363035901534432781342937858612858759057356463773060619601236042870847204597405564690368161847753546435165137881601817161388716953920154101834191364215947746369461921191010812442488945822220792875085600080841278749956019500836888923727490478157571667871982485483332617399464904921327104107584113331673471076843581184008561418352233321123169991301065159529879916711276797704640513829090108126514594872973374665056187267063747851920125123957674933649944400147263325370083660956563831762102031009992691063134058602085770238064364777442575155687158565479076347795775926059337663206856268844010464342133278785037323602519427738352350007614411398546223766262531174686990580701297096016420106876358730171545523252474656624039285596033167026133228523648330955787704196815264932282232650388915171417840460215734907981537829734774445044810196567154857236759239577431621202199194185836494670564195377683172744753719528332882963353179387161245881850327988200778334032400540717667948950622268318995432470784097287079709646204626802577546689771801636281962951657423686900377601252168228731235365774337097842557064387383028086265411381452682250014434059123017547465383753242907889380128539582344005701932838592316315698892920059496022057780496913749322242975572735989523993792825091731706802987272993897449382861322419362669510720383632863306662259998094969789766163451522219952379347681880350507158176028872321125832888130091910379676219499527567404156313983994691396520667661293374465109700128419916519618964116893811810667444023461362931943587995867404242704519102742948604600046521442203984906728575815005603422705134468348418422179901128577465029531359485340278648485131203088107644899457893250927984488050247906971996607992754831307539866289127199324006505212763045637584092107484068674535135945756704763077998441027690180161101412210640999180669380769539227968296778582744141734479306966391880608309866912571373638911314202933835971391704100186613173846937469249972994060520200616743033284217850598519692621682067108439547245359275247610242213425803024495142626116313913316093038398684034998805515970724967121521278133273586831137103257513335512713543054255603131402683338988910560620655300448560411102839788341424278660652158244572573405412660721546664032861986353024783788518815831588766628405429166130508419429168528931380053419712968950283949603673380722300528676184143694489034687966129114592839951039123283308345104318727891797598252745423083051487534554909120868751579874403478828124580685513928376350372576467493341971338392785293294173084630981919493073864391380375419948566732622066256608021426687506554713077446755836862343137799196221800308829944610006767080172751446461293075596733776292000191950086052335414276574128403172031040528654718552099939991046273332868868322259183543220581663303588809715012409147616834289960917398712887877997745946430895222271587234867356418923145948098280093179495846187019096595164151895546154221977345547283579703140381373264609776659919182676211147194456287877676826711024622232901214166151508249073659917801841601523064420478298044900904583769178002763975651266312449684342070662407766298559509928388116109003331712536024495378449644306341699257293885588081294101626808398777285242916411346271227913153961231372826965931397213775291127755607097705070499137383319505128194614692724918960206666039380780832144504875148114735735027865965226204938461605936705171781266894074277169990478864256902563484259002772110988292414743015401698092928594801444087595330661685335194070763979616151637674141874404172757103094052116232114930555490129953684999978526611423996305655199019562013673504311098332558415017312699387785221046165521435917030010749508776213941919465570350811858356028747254266668360988108177464389171378301413916675405643832409754537744503843106343986169661888050173647895352993291478630831232793461143608337133556380010042772899634631401544878312059993045371982181617059992164583249295434296909574757405637717762901780694692790681074671455295367135529071970295446922570062027581641427234572699251891373065007627432412608379377974377141936384099505999575744591083408375127827762471709245185624401436741723389657896750900397878313161508658741769326129681849672667352766951730098392046427337106209140109990220000521954505884915091588013625197936514328878715892630388468903818879497710971246857210299313394593330023902183115496866423143344550738204266021164743685155449550285167290728234057962124749703288003632709275092274452688453917838740560879528331626217714604609633772839139068569073646461647651734849866109302462002941007655906472217269582449959489368685982986209014160748501284089861733188842532320807180721379279527889431882647619269410702251924450762464645620209108444940478964557616706420963515772197339684682670708546305484141370420935667174893283211369743612537088776403015698546726181167707486353583158018795497680777236509377896431717391629769451435314828133707055857175382118772745175688500003262979275473449439686207219327893733623607206616350888471131834841120362350101688444406663525068066639854820583869806541932250732018570487249445613831902421211755078434183027405658556501026298032798397731372405573076189378954582877869463941741181259906816383304068840000884883143099189314514419001070465908974745445779503323803393069508012548284221925092338055625078405071765227152479718830931285185938976635443233006483717363896251630163146814108558342801021867536502779331449019874542379271185103999365087894160056178595591752217496884654472570015424938491209172875469983440669029341568289897364426334209640777164137842181598829224354847684562089737336766559605772392127388822429771311629700139179573806783415822864324214948438517091102840934288355738273231194535732728505525130004249299030030070799687632648282948126423804834568483201684199274739666054807138321859952338148041183527375309775831204402383206962187770396332905700550345433804774014805128215178933539924904254390412370762847673548860088967409361374162731126415455483811117641850209236388704564575759758347865252628811601555765711636879886995234912866104649321802728315945466417714776906986741953989104534809714139182918467658422464811285302449136634857091149063465047418001669070637594958645848210509567795117179084951735960457890291805715980270888298440883035459350292735447155334955460818325424656509895337136207535926416279908322361224083656425176927744049987052606963451410371712754303559216268310390436301720559356465549403028698382559516721426914088589957314251225607377212722563985611093611924462394789036891535727194737384675481486584549428403870830227810895240366393686028618782473366394571831167276684915074286240303762285853626338669160361210027564287616770687317494548339760709603725962649492089790651631078666851014421155686675482906175351885830013670911008035143625024807281789673017412948530350794200448267323701272711474782656014578675607462109634981184418368456935033432158332421930572535767877684777428194646703458363586218758535920174942560796652137420492923384445863192299647119692829956093438359641380585026549390702719470675390594109741233683503146651175416170391282027568982262225763983607354770882837873587388381725018884745751715399978412541651533737151251095002175370189899394946222656501037189650872925367186416863208461798503264239601958771725629827352497468564779253671811591407113052058959566767256817505733252564723654158535185474889235265195628775365852437268296049733993305945340648062055474338198709085972285101599145003981296803025878127630415356136185826369787438179866066214479833890813544210563962210319837625272140774532221020407801439154440443766951859519862660500097754770950871968771890156878776603968788337236793973233966297798506497253562011799307697228964556540490419101927098093537598797792594737603848180959669142202651364952295076729593151704274062158808911459698216548713832917311370185439340370087242948313121282107028591440987257645987759875440746870522392420107014654120159251412732266188033838941654996597853270283492645277216234235478431065938746665928998685830215402348783801878097268033739467277747466904895705394850297944756063151330329298243898720559512753908405783206317746171480175657982286569644116618860527714299203887720369771016629826443311571095847537224537329424869097339288896516206042716845286393077424028254472004056159176080859105410358751223357458091358285711347067688121344892016072525998914145700259556792680100964940271565069168035265721224075530371741899707439084278693048924268377030434009525887691977092201377087114923312236772229267224552241154273311519862093101158860696238130768146176711731309957491147291317575216641026016964911842762768505028336115331308779901788100345529454647933946765660904603240839261456277219608828459425792841333033775781753046755330741679835629642622394258853895874433986541745163851655686982683816210645409176894289648173398602587688715508735121635490099873962826205041891111236539580348081227963300355472169995534673302655896861151091356304226140850957739556711787987441528586441183198278149777184442170671614303429593823519389443562299050890310823533821908131858840441522777285066118062976468850429378006511967855804628437369217344665273967938317755279137551746394465800360288458732814799746537589682092053534901144895461651770299507210253513522882698549730454411015505538670731181379225456266496360997241662449896560499540092879179090486758309621626035222525596501850718185275953855090369518527987317796173908077973445219260377361630442628223232642718063022396550287528595588029531080677263173329353107147379010578100488188757347764760972675299773928936086315606042424627054872877720850465865064795025548523911201722371162094177705661724424125454590012147732718218286278544933357314262604309597275034958751299281870502990415819112885359548260282377673416647826963040809650365313614130128221918322881394291276703460473305027703048151109919496276470913955785397625981193971337812543672477469170290187598953600336579432771075633091779815196284625854960715814620499895965505789480325919881143742390361000070797729213298557398135069378385065483286968571084188575247930511451717506984609124053400017134601785615463891202249668800856029760503589690428119128086094799542961130255224039458988982876924692537922631949310322657635290968757599025990095048154380411716776430604497329956493397484124071581346801658805939855604670627401245465389747106395991099225759112980715057453447479335761643731147969514625699569451894072531774567774049872359080123367401602197395749476203569025555495590070800259414255971619191283646992529211861277409357003716845880856577839768099156624976410399371045706498392223846897895792754931449183371983670599854814711779830340580692857492439622147474900281829090891428955301131649142622193650264407730234713349437467558222327927246500570909971281574955806458847763487465728710559745306751534323978433720593671432359819938600095756808085687360476380652618864710946877187276921759311047868465024855871609241010373934147439439026275870769747144805154738618772349055457149286759606944495946058646336773234884327059894468349434018880453216519021674896221172142653104227631321873408453913262176391942466191123989737174786580910510513640943922928199300176616548342116391942237560201245476470624257353849427677987192123006062064909308969234403795294789231992497474329087902857772193327425080524686803095974654845703263829315142288836639395461216334772247550762252269327113578747771541657576439973223224316428600468540524241069867900484661289867127468588332543145448789026649593806593072156292250245225561706583241681081155437553917672686503059515796512295005705230469584599717037518718811896302095508578030570634873843539175385090586994466370478064424459634601554505509342338040132950543343431364214408783930113606040572511874919426039740242951632216808773709109247122883511756547087016395637403432125653540403225312846313767086511998697190961569014392031174398879237309955365164160371002078602934532994842467181863353520112067736658205399477367568671910476246659555686661589410437854703529659059374291165183355384570775963827863329354192053618583915950394282104868223746599299188769561848580865936078924452998072976517943877746113795190562973161870036507810483005418912253373624223875616897342060974663139703094723458268957916009138258061793635049382631059641970558615952720705016134418623442432487469772582708316145435523720647304037788976228399410495984487480043091009291482304808247079421587943043395608732651314027401059018407010694845313111153275690910531862921976503738398145462798373115679537224054204986187325833449408996324096556438078087084894912140638606491416516258996289920156117096171071767721023737165049213207664440523326379035818371109589505848873694802688834700312573135445676714777169129660149101715410022289149968726835170963651259512619474350883684730411162006589383028800572401940088235792811673455480713580748301567219914042630614879272929386676106967748989760097167944133689835423477938111249121784204609888221954952316543732463954151303540396075038971712585317137649883220099790732228433851913977804424441768867571998248873763913905311306121193360567469750585306983405327754620376713051925041855907965899606182472229399402381889755839448736854625123728929280469785831695534859119649276814377334180315402545081789164361037384840077837654094968799603050249440341064188520341885095482415739385007506516700100913814525518670097932970179930571595978435000935687075015424483484102107165890359657931480298335769582996694615328615033634739924407115867046105945056020570748322666795066307492532525283343209821182998992047816899880099451443306363328321489645080149700335182119987145267232240829882231585255631012847845999563049355172561605743298853320728503513827736151803205519084726911041245785657831369155168646275128401822276139578711368706675244502626285545395430170081439950656038543617414835388459910842163673804246414203184769191188742009918266233186903908191412970125509645867845182325293147567922933287811792826238809411841942220484265349582273518162029639015752030368008484657842937697573718900791199100242504287226125552448148062883576312675896057548639216491751887612146562647453793196206955398809602719251435121194403717073905643060364210258302121725050227106993194705412240571976197770977639593948347060343467247928268716152064331529420368291149073848207650374095373731610244007173259393647017203156735879934414822852985825794582771688507308546049592033498255993765437213958238244033893121894359016907725104085620700712462690413073113852599261116991652607503807254774518059242564466513506717579718443468177575292800243775498651130317009828822767013428115530847158261594480367092121637074139618657383086396367541434513184878284534320220685842874196632334781928491707179499079793448442425358063017181261256910019669068610667268345890054674069072683895326356246202174576679488333182907359377439774133558831547519849129518934625981011804979725206151584485482830347347199627386469865034011454022229458504701432745655693877919703961708377097587232411416196064367972473893360141462979287199105765052556309134770923761299501589573078512631988016489477057410584951525697898759231664214381049940373584594402562549070663220253431951833079537367727786179303476806708786618000828291251382255621909695619035585495353982788473755297123829638072219538625878328732956398238419734427679468223485288287941431831317337665427697874938546947547297472634420308901783291429223556767932767600346095468828906578986658998711907145961954525657124003394999397699493237279727020838191769577714172977079874332491503902583186105641566893598046426998924821806546908018881866844099700841947654101099000647387682324398105178746594334853179451353790862351576019432117672276608393555018610888069315740410006313397556415339037446456333963280644300669765975438879369607891197075309478996914643128865594169492545044506191007770278462442546539414976195658347132381658275002244575065181986408123925791674036791139815889261823501478955246056345753510285189003647976863390669529551486985120743694397424258220037719172428726089027037025111794858611661713241978671793665834099527266050091403111322244482404795099047640492545877139636841337387384028787749815866059000923096819061217734610921583720997213991008858729338406436120436996298595021477161516566239574901943625976100455361910660981585890828098425896339843927365395314765703286329300596423520688753103825692628285856167275080388722730529796992092781993925008543927269145103993612898653648969616171422286247451058164528810556036439292547248036625880205297664245205715709747966916159700019802390378675073975043073225948718527962664362514737503245504958632751729266261121521663509431229203897863677543236982424369947585241775362591385165372486364925814305965674231736776067919147014857328921330281364347994224437389288785503613748186867426959482155291060965319833222167790776077192376355572781138281344075782948536807969073062400160410771622056814905446351199913854634815664469044467546101276528563669529746188447463567157132556220545227471318657522354182340210926390852943498383525304881674682647447833205908076659414843569175885437708632951419493726154405664916839970358283375790208602821318449719392122911368508755887724017614077770767083022505885471854836522141531701105508056630563572939683048858523174665640228032991481021599496055452848644517593653909499927429680328648297444890848299183328773467954447296555567745712622144282367381677841363616566184700610772256398806830326479301944172496040066535745270628484515808550972903628949976295903733414709332561424883136713702123739670716901940157672204407004777377303711870403310992712991419462208038400617199297132780048017688621713722009646973427073957683049295053347303773983812752128867449901266682006104976043225640535956132793395624097307506710940230643641567137792283493444158510011163003337761237866006332266044613628775066862039761160130446552422309292140854932339821302010718172114598872242398604538748765347932186425626710103727199222237253275762891022197207967205653276749616222648639018740014282296923080691023894110069257671802865777892184580930909635828253093025813104039680970411916204166842860966912077160219084133887481527336433274560649984046485885401837432876636475783750108888521246181209670771364544985485129620301145026019177759831154325589816994636469143419037998757874840228426839832252390902145707543561130648215998272080804431270034337541195350010865232135708096600191651974143666112815601134925316879165880252384825011304543901284076516600936399652457980885857042579689157647682601887225037592050993806765758789083493473639865087437622066025572339027612965872306266483076341953070777141809181766017857098714692622750259071915769830560181767436678101304264800337439577646592143633579789124716690283290726986605733018796111303291417677933285829695655849847220107827317992776707350310308528925603710866517826851615116886837339370060171824866421514960138962367598108935524852870100840528378589133748896077195346513422892943740446279902453476524648470166945475753511424663702889071087080685608724242198083723743244662852746797455377150171301002141925316264925750507291678649580108684152413387450600730624948169094394772377524194827500065986215563859168540846779131305969524044305874631683279216990779048487789671631251697083977243710288700621805581352420139456367587350611620910608400416159558837410081269865775195784821030965729603058516533183864954571112675239844424542657163273655568696677741438139251507971407886398555504140007898337903236804090848682391366231694143881172469998582165007540310968039648083102083494122227175198537113741271755862781875956331942096494776829781982621170696680322752488874159348081058167182566537307131155497774236488911103287024291810011222915536802269826705534441442885701315599045367051259523004682802998757569415614051801194589352512733422805306836062682866309327423098596926447402314286357113772994066799036470693031139865108154600291488969554663484355997977268461984907625587959206547507736153077544156107270260271421399571877969594249166476522302081986776020059752381503392884572063817493915592049134176741094440752745806738431148307805724989542561264014217844340215854514194545983521786401355478975570423140140943982821039882899813705008262606928235830713458984558990049249196051903111973421230509278036243759266856376181565385572561900148078654606384751831619287815385884302222591080801783344073813207694925578279421402733159514862828695965172683207375206396056938765584051880274568092405327313041985858640417257854358921469383832541497616442920304824682608629612871440173346068403569589322961719937488130774725896137246388940478155618216515757019683989050890836429044377722523498772216805055301150271940663517526872769621095083712319769801981920190107067301994338426270209608357041455568917283516631678838466717143641053829074519376009602763260888161836115170464628231408994092041045233828311862446639305302637412188573600698438320003707732352758267545736561367865492288694856984135408998589108731463555239218360294104295326267100514778701810184011224620448894552690608571685857148440772379163241598877555000992511753653130066167177345461400643628705058785593785388332836372263178709071411184147963494334973314153668776548298784091187882591284297185534397710862211489688835539905116363518450268319940557830630160662191444444228047918142672895365940783957574573347100699947858442519966947261555270702331803552788768066511399943041724680308103544699418717920199958134439152891846198827060486922767288962174133547249408761596693284294842446196963806674191223429617340526160191048997894323539927654071464592373426893980399458483522380382868143516394897956950950528736928666076832597040163956114436273602211970605581837314364913198373856182068119772625406890591821212048270332450453460571283908206591604545344291241122376478944930937956953388972318847695218269709400260502549366349935709211240384984198361372106914125762921206898547743158087865424483457817002476620325077023328296329112528145219716952323181987165438085949151445282639894850066260515393699699895181373440179430229114582179395947336597009444292881659690760604863212986250417260237624502588282881613341302131538740089799904854084239171889580273751137269174361918010310703696643101467302479739064531387350360949790330018650905879834785114569605131641376888568625661360181149816730802295876052072307367995483501473684723018302437538390938961245561263150074577702387702319775010445199568373549984794812407445301100072291017593944657586167805949822668743027534730951086732231746871936528020959746128891561218487899184691340713037898227733592638224592523366906164217542668615244245418669513863761879822234052005520108048031629796245364167416362664538774936613629624683200485399843724717453666341053949272255792492590241399133244243492912669026244572120154547145909946014401033786578741582241133739553446868334259370504409940050976264555922464291910623076704928862416764943440912874745384833899505395914932802770987021910109396226469776465609245848753517170894909676566422903081630616174868945299225804119443301772768011341452382262236956344357297056180846379710427907416338493358936273709319099080033609912299804433827240521390357558428420926979290054536059366604460753086426251985218706790910530094068894570895143435704832372376338751346743693872055691392002474267017082320829411662285929684085666483555491392550252404433279383641249195600057539242866291918381288714337406716755621713996251764462559030088158394291350216929466716279619957426544090839253910765761879810403096115012835607383672464296202660921731405660547015299126621896682111018895382331309901825208696353936301307433002720227789196041149591790006133259863685408631085231479267304558039955175469029177859492099148164322216872469238974145993939367514393249014991614498829298667512342288739508692800593228904170420286317903507476273093521489845480943891330334132089578591489338247542716124812163871996580707830453136942204839181853266019776547116298955541909695608744132861161346412709588297525602072600645809001883068574910538778165216935790420175367933301732746608722622187219519659046381039355702187777516968773364618299422984395803121000932352648474901359976609550058931169172558394978548421336402868557786006277792567239391978790891594698502687933922119794582948442801949673657447790227897354059893586421804110839969155641167214290515609673818993722884699047770803444322808385343197122213095914758741164899662640970494765749847703612426967991512601879757273069362969370146976036761616715417059486757240259821555311684694228858006790707101268134325590176929294793023967069750955160457855414991812436081568756403511976787857591588252435414599871529890602565574072138832675680666698601095617363432411942037105401472198603776890567248340030425632999687051439959810163643847155523223711764698223182335411734961786123166475509905971162137284983954991974249066207361603134853479491040011616150471401499588969232493024161033102846430553009082047367135113474261021056744369731222625606207947172293932924394007277109641046989657500112296547511433426677840696232104452119792205709672685767513748723157124560389441673868927519173672627375968180308177005578816650627983236239983140878852103747885577858325487586834614449723785761319045435317320727832426055767391040128069347699145206503697821079198264818686981745022987003869846517681410686267652304080397733762499232847621538854843506091711118648943873466235493130360010571301413863521304735691962803649015482606665427097444411683162029055891908516230159482770393797029671395076728930017694624182036201575258216354688275317185660284276879679528506141779696038151005607180034685165152722234020600118231004382565556465080081618669692969382735522995572947698465726602798976798812548841074228937502170491398118081211350644906414119143984282972542256083400307248082330717339989346939064678524904834899564113185998197831885553446261137316920533105936908323985480151878212377921580302287884696162112179738507756329369091871039785311406764285228312752148677538376347110505560415824022921348578600737169782447595115997141458228578397270543161454660214436442807703977846164265999231716375537688482419216032727553347116403471377643252677645385203269946034824674301565210103922017560529328353239861422130574798848607563563083097164069887625086192302154711192985253393210378326402246383219185119132748441874616020021150147733889175502387042866616575983439133222156980313758426173822123074544294715813633837840694884788790478153741806622115416935368993076247224910607978664667350739710697700812423556866486443460192783977430702964423971916101357820418378462543365350697858680846740422550083982843582541923117728428858655123517861951758598605113972541170410908820775845108729365724676266173850875746454072588519295817538588937820371503262482082229139876832144495977626489226323211060200252390611877601331002707301133456683027914423313535987725996851715184890925203020940354759715238277792913236245317403359278277008793956076445275888357054031100855038820489309111987879605277583816094172805191534115162643176710612985060253604929508235164634345889807725226719180349604210942816175634745860611157962508203668757172895834091139829080293617315099660748959829806444061439641752861180377916858475681995341096141455732671783295172833792329087634632631207814734581313293874843908134306298867338750774921410458563889706838419929049471324332113731407235653327478986520712797062230135098308596325400085839722175985223640856694681923398394211301764651251150662259361351832082322053446603387255700154802253294956821193297040699019606635777646982530735307817960916698459005732268261356828439593527303132470508484025946443403492211713739058872351626450394576046324416730435601880538911445939872878907212019752394509185205302780833149855205178689018677753256576843795743999809441837667106832905179787733853982970341415028824135809302039633072419748678596124354733530059421048624170328664550091904536605660570862823105879887884989053027787811594870361002838526845034832109070397234868172542917783185188261100666354939791669353159314541340366441162410845845231245752212506411415050162395368080013420525381795658401012451745307822987798258174847582909385598700422721226808846882408107701963597988877730505181328709151797007686436219280218519217500836068455560160171698867744175794442599444696527371689384500351538727980439563330484354019080585852070242567121358397866136375900566782085159418820446041969939741565721778876898592782950712149769444644107330184180717230005898287438824803785178889788049227303776591818720853735212322819378924075323238800841166031838669789483070384625410731498769831812420397907590162755431294779322329979716238600160185646293730949004360993277733734013351631411328569345564107246979635573478843085787085523421376203250379967285014191553739742474792395486858873468136284965608048841470627173155448194458306975917349573029387616785378893494544088278311548061514138548119373019006366067452736993625666306637660491047789633845726218888352416615696316340133967572665290510988051869886876993464422014210067288802076122559241349845099129923822432251442760069142425222193643980699569389782529033708525305049210319518735046703035359228883366711586243378613295495783012860088569346335735672343059602722186841101865967349570546844505112325054817946825233830455338172385165926389887583247715332698021149501221821037369541069656290287531561444026064328704376692625954715402198777026124521456972914073196604517757879688718211917868497188457591428890575755901388174762558276145804388819890006444194584864570265970227445567627523485021870531666695400351527204810334856190883670931190086895711251470802563319149151448160674579349323057740255660122480039309747870782635694058686645780281926454758424204374077672819073774323381637687101287271584437395525944694555133499530494525722079512408882224546592810321515198464157476250411300371200297807545783491161574846962941819450692642920504308229714722353618770361212011919347736963244991676511857908971095973107316091321160590268754884540030264396207442816317022056360805543503320580157348798354615479499738027324328846713273879094957655063882285404861879371534353134937622918316582988875798300926451241778061703462792923581947371745717400783620700578615555567590353645356785364276646274672352633363194080507937153764390579954917579942664915283046118615267082392221409823172513113321740658076750126612379740115423246739360257239440649721891068634144010463981732751053318473597669894688235583162552217337170493806034091803928252481112707543884097820989407025877679064842092476990104128270997195518640873719852197912295416350383962638052357155850549202569447724849227383371081579147846372440726156673681936360299902797406143676233609185461904023356123147998580362366797864796389631649708843199289221285530174469334915716477379817308680877173687634618136498183977224416461350880121409398116006830943374609549916095008140171384703641968650834361671765710562181440824443698407899506179321456104551538971883140970556744494700632199885114954294411836152211267322591126140494627366102474349739622909468991655412174203883554234943293097945261208011125707469933915932256309764519461155646012988976023589847085325737866230294395384917374198279676834693279289580942893170736321310982454869900530377821816820292380413436637312700607299165318896215931278283704760771946534547287285578892473899558985923142146452171803100945780201925866378885725698226121283260882832505541212663407228728393198385449103128655143789685168953490263615227924595983626040084628308568282904216705542197956459489792850374693195280190524322480806224102759449795013295215455492268406018275133918797175461401184959388028007629927334799358652126417462179624681793822610637439478905690931862335301150380571413907371219192614700180002272802989492320327259843095985644829196754793069536649683096961440408574376547525259778399881979224428914898721303510490951263476031562272918003623676015353642120577381808324393616992134237400564431923097339185213782550317875527805750801308831495160713562448309674623394385175391447022083916818713216284860808751535590836277537640843251336268559421585534954901304110761865246903797421820598274533934612367281753036184673452496708954972258045504166654603585776418022308963064976956882112895162689274880987169944310130996628684572756301409843839775680464805202907580175010618276619845236700831134773052490243559582173639147354051937233814460738074299276911762959929590042088654094230859340431390518329188518251922626968434621119449447666068342193316489275930468399832457113000766905252185510705841543801430348345536393636581197315600601540412592524460996593016251026369287091619943125314290698292191204822493336061438339881983807779443371015994475871295928294288917467472260631779501936418744545743395404121474030605700048148874057945102902549006500169041895169806349436070634626000778962604198625076168023583018513831835553356163040128061935716463566936328923864953603169185870489880632505123475585265690675677920828471099796644447761878084515695186013566881839976995446648423979516850172725460875397004200468084300095240518824109727384621749407094010827063531570985192131714403582029800963866480411122747344685462004345206806442030836346417478078762231997868944015189655145243118089080105502157944376308302508741867683075517991559375536142650164217024738987077107310450340106720923138801384938031239363011501988711496301625243691586959377003587767330913592050385093027121087258295108496148715790556803865334900449362616081967455400422791775341781645261282000787485606581956499950644131126378280327553593976113699868194891125834010007533556115618074648104049074749553947826440183229258811761306340066144870109046931025659318297383991094966479073196632605153019120596825174179712540055801702593694674176610562987577136525763910514285911857581146819571759500408966216532970228749476800004702570716555845472434426556861027007910864486336161463659653617997001367359310046471665241896601945472849922450894526012214981416758502444835663821813480045480901331994474188453481786400724130241995692089405875700259470681924318056516732684052293300390920495550411780578256714270526485815410179089487838190878658873104108752986296011971364053994293389230731351542387560486421775147928476527165370965023049076914198759611123839486984237940476092427990061953652040770979040948522036444581232643699172124519909342471628453090205752627640254024541465785667381754753595978352486256312081564103328269683678688232000658189590010658200021181072003316678064653226313947079101577822533109925441599475381153444033547104528337283194343657601279904011664283674705395924201607903008063065703553013340471679235349287581152273765114976240860064843311391968893387452263464589251452423532861424877173651765527598452240193032159244527213257205288485827915727783127914181257161297595295755166060676907509282229064318498883705265960365956041028482646527737438194141725032491289141369251479261329197732057214679461586467868626865197249174260667341832407924338610121268408729597668035415231643167452173703539179667812068702521396137187561666410178812092875760767937171508951778993597117680664544588456764969786889068305609278089174727181356875216819607148861672110527424135218673803376279794651860742456163959638763948496083806494523502699952695352089735797625287849964135907810170314771713618954778560313841951990512482260158042708241647014439235905449181801928168316765130405914885928725139324512136129116618514919283886066416122020256547004085236449755573759962303374134612968186681567124121626272337120635484365645185019674585658409348174381027263122546419249333635012346495742884935293720882135077387208237042623705711355644133053673741717468317095058230185413231433770986676647001642539385786925973230086725413568130071662500894027204153574993769663992351578752991155610211039693007062747491533708888119931703587018693883066616624775127147899713136871734952269490494056895314087659565772785926262688276459692473857469987896098129695071786790377837202269001393644384908654919058082429242113825182764386738172878881440216683926017934076652335715035544734858582159299701702008984386793393535818013186610000802002371109189091573900606429955814043058811522214712778415756910501581672305365996682006759826622472301350975420035355599186940524785842763676978699098221304948053051635069920326650609947328800452452411317526640843353024732645772699249378896307084881318839793479838045976359997463189667399770865016289146813436830942391339699533738734435068565889225139446220872697483162566188612498237543223019316752710917450567071913890385280087395503471323961485043783395891187701652370743374943664959623272625428459376150539701670062226820321962981143324835321675845223748473264045255123453186999679426338967599693822994586108677452737596437035436873380737514241428700695673631307029314356529138246199631689356772888491196961183633180396020802660392498350136592282320138800832240459023557134442856096401409028313705564521212355552490229909371883129311298456910532269859313363520783494480401341626424461773534250752062185597934827371596103660937371074662730832648404131698239297428560055438830413707811583088050681269000720689498469523069454813490998153339876279716670651324995401933147844625953263716374944560300608827230234934659759141101415830267244173841272440162921665608931084440071176775717829733394740603729204118512584697428481272143356778154842014515305569123894270284595735467313100932092137927605659162344182817718136644797781066434360267295277140712836917929119810555902219734973859344277917699249962050080121623707257451425154195555700191728596109826302323218321005054323784320244797557373641821747693139330205482381585420979575093037588311793775545536387339109552777348216713364368914392026862914879977719571680538821599570636707882732654071064316075241063203222303348864372720056824150684528023934114625466665576993774108933942701238849705069498264343036361927845282912742268019614368549421955955390221531005749206519878621462982865306976537496328827430075313103195646549181459760479843296004565596138275773583230718837921408303530790657498115408080969471847448169145284092291595305667139849505098097263497315982212043759622253813968673703600505876036176485810481675958420380644252589655178779454248128526760401584615227786739583340305334326564228821878440688149948652030954009875126867685177705394088706257766329144020960432176284600485603741833115454538912647428273479052847687454869697640635282938900555950796356593597315265555876203505324979082707087251889745385719147313771909881819512043744490093969400699927793288662928091827440856184992259567677839998785332706743993050585628246242532730317355718332563315656605777959485516736476353252967114767939131695630803387063634466381881052815508749552693429245134214709093603913430398101876187657954287652033816671690930915370966484024765872048102518679275073016669647920113121536273925281033952080915534938597111075828850345614075857520739350185169569134054323999475934529622163306852216812097035403284383289079831200504339783331176113482243941443156329262258754687582927468451363790679108654366980706869967786234437681671573416430647563709970501980287134976142870742423924990360242182255466185934965149022767140485285798485950652922401480471709042772518963481570465037734469846409301316680195433625423967150089534592275017025632713798770850721578972334077813918298598869223189089347260379638509110914730650454444710038251711845389525040936692720627787546597135377819391196435855015290701023378425039710770541616867267849472225639485189388053805752214361892197191674850570985305055194041214665195954378158994881293383482902327681688101168437544442828856780955762382996326940560511237621593075573824785596417390046689543961389585937443030681154583778976623927281756697606979602683950656334540478403053592377186861822141449378750154207237831105469039862757261098391155986787517051441833809929798149220667892152163892661190048148795494842768697239677109263816241567771386761003451247504464901182817322396062173758468609782033387476609630472757236520927606962643444094204404626192385393941297462608727303333970811264271561155543103065841477397437061676023402059644656825256104685335898745417786233337578861608178165763105279419046640815640026389233169280902572881445645917225433373270995615388844867821122073547570259731668491163292510510193302745277636485622796990367309716250494755888203104432067946327553155760027416593711766411272662042213098484062001008758829911318756374698826477337086685714433590407883682634791722511855629842695914465380868202924389087585203366686629267759868487487509518462070188542067508983811197307066084290973773374269030248875344899185139830689542242881236710557582815100583418916035569038447801071000398995585349913401189837768160389409455729671893603477767055501256414085359026502357470191649532419305542869303667364693193726584119596860833868041924250828189128120631294929358838802281854488978700532556078833437081867794847941108175220168871584165601579270534923019953456318210008061219597127077812352500688427597358502827681465731794482484484763986660482055022670932599255944440796653049397924720840839874990142575028826593574407180063717547174895228607522065566109692673053754235120160129636158946586777136801521347117774833361110098932489373433369780650598726333069116352797214360667579909992882806542826617264474265514716946831875420287524303085404092609608111615269488266792031062118719245358635738190678970050058631983200100558785962261604621535840915539264142808746071256371729212434598336240807529971722530870956793008652385787147556054057799852017618082611428081899546784848100696684929057436841674605490235330252250632858531229248201759934789232214421346947722264201242217923061615303740894587184685635055870125273447891489093868710872914169842881198638606160749696394170312114281168488765753418125104333128264620581687423915849261557134734399590724495401604308669447707364618477947050955487694846853419842837460718548651722692945931151653030272087180910813055570322832008247169326260993315683383136337018206663793753727934437957516332514706118894406009723522770567943677356066950768209450090767546348389449069985319154154543312867024910296747770103432656912486635146435655885072773437265839483073229275418602950578101481191008249949337583044599816325577728886162720010369092393632564942620356794283608678180777901198414076245117665077986038712388876467781440265485145890009306815413706874171581683279320821734035324394695825616869848690086023813487132471072609985255783393627485623881195357849830219193281400974613542673503463535000530568911890327111556991580691042872860764695973633147073408576730892644641740251867111253119205873630509126205838336891830666893800694185218574186915148713933288247322148566306000676598889445314632870746009816651475658845522842407873420235884138519999808898132097312802811398551817061734271654081072594377925522964015219479434223295600267126405508652867345409325831665661640950329749144591168101403608926576891039913881569975586334194222523712366359342093053785932763762615705436772368812322235101617876263456156938114468525732435145471849821879085353432620580685807382689580350032120290868900116260130585857316352269064806912529234597896176113048725573664930039936102621223012351934991052814176605763461883273427611438388388165325857267787219175081921523658984441032471755294136125912630742209858357042518147915658229950720753083152216268422972530002844983988666410252831804920431014504399077489496719129351874570269247344747041183472267797414498490779126909204371581672742906366998201636559625566936326285446713243702906747743094530126168972055370357005569951434293747564963095183266853461548711867799462709808064372665814806338866663974130127953827279666740916093398853051449500417076884735439503402677203236345860428448524590582748946065624033898902178450591615372710366221857582374929732574309177008922988433205100175443953135014914314998765469850110348545288907042082796322690225371206707426865598785705697311780309918973134039391791241890004925620389228449974757342932549441728990693492507920871458765287857848299639186529898193901574029677519385480939884475175594646244337801041474905288938879813719913780515479654729265653623860572856475456888546295293940372195659320584771849614735649961464661521930647339512684743125165324493846820623407641773426233396017306949484898895204621803431635499164313322615573433232480274757895893480191467209030090570817382435846754761898536874276241268068530500860255858679538941843998068062468801650388428264372975479385721022686512298749106064179578369940308867885955328354271104450416573119878854295716927517124593930996760233984065374904923454270368583787535857913583160719274553404470721149749595904297358064752226747578802440988207594804546785602305628124042852750574991612946453940451525085552263218402223521017246683968828882055106693752538949193964491960347062992857619157366482615797896762241396778919388422047147496931348920546990920662500880013850627387600593173831692754079669896059279759187569690147306615396835560867838141315542066261810388204607292132908378273484535519538455034096367217179636360528966481320740858206544299018664260258134257107675972098482706370387484786837766284062822916892424552369985483083449462023759462969690268841920268746115616278575272095609927579722389388459499905872898193753442834929020530765375587020214037811360676262218220355099794854719382994359508116106593987489226335804905351567552507270539176808042167633120910250557691890021602463008228964656297101351815296022186420846400446648688577202560880083632329186401669222382741433165337307348238352645089454973649954046181145550098713144132428708957800987160452216797914305768051460793730344634663358024610122373676450859857934269512583077245899799914624489207304270945667504376752913354245859928103102947975065952498463105262392360815679308792234050223647840124948362914060087365326833578835549906989173613700544097434401142930392551403136788030060331584728081751139972168003884921908783092887599257902919636298282551441339618727966682886883743576991938520769015491662030552918332447636898204518095335227457103160093170806683085472006176744751564661909710195031604733634129325498947492560685858121080928721331240593353664372139995363752326315642983003068051382311263550935558651470220819773424197581718679178125880028839165522861539520081930028973789772805138242838647872124886102549788078559155429398809001576976454189241944057651568517225071091583029525116467841303949104444640601811683408184082100755756439601880854028203349864257461501336795502245903159343779320507922743863692437379617791340703701177134001578231453204506500869160203386960830109226364071965807456674102768420804157025771459101024143614659585741073067840189797217704659239354723406467599019914851308424451747120206564551153400084254086146986201847832592696200751062196528068402274096730208739501632771303412872555040985480813064358518059827108597997770711242434464503720929621470859668507803517474448042237920762371577080511113553222070651407375357551918647702767868857463276290819104232958061110484278159690737710495106230067062468543465764358938241212727645818648156458358513551115182725931400180469478036018829216672928838447937787936322568668437471387346359129087211245451100202954713437050149579540728626174250140318757752271748031652015349275792864541922912257393397149889667798780181768314997186269857193141672486321549711384171530867988132506277438698789655190755724923907850665877692065260791576627164860725675890906455898287685100608310477535023684742898931833895952522845942578948387079703515702341637081281987838754962905155578954143945097843482770290223540756259156131317910633014133430307064478288938004607083508344506841732806839048270814545540675310463354922525149799175693050735060620634882835042303071775749547321408895431730945876394928199849431319671781899220958083857016337202516425198072829940632146303248631032437775666037675220874461573861838173222311418958264677696428923942917655725699273184609949393645770533712082706808177227707473837117711081718315887613382437269400298057411580999413986238193859511512312259959884888750863949205837953231962275216703750521681841763990573456409805771735908196520977534499787516973619217552178266024144296505460179328251235509381515582873854184917703410255295910665774725231584458115102499365548331759961046517703137139456275335954933463713071643113695124259992807513605072109102116910638757813673984165799131850484707279963730824944084568883892253865974659241666090889258353919801810474227920029129353923592716875378101573039702467298246776407716904570033911194316697100639343150386572830894406256974976515700550788813680050912908200918372556870219221981642541213083593935124569011029076327157606282258857383041625265949918723919183067050105808848464367499310004376706371999858558461940268616255562472866824611444487042922639411468993444490398945107989791715239704832451573225651092482668626611041044856568493540302874830176022091854241320015726682784717202883785727279264299433220306461239614448134334922050263444104520211652396810071224273646072778523962790600164793157570170075405773994437352583267129510620867443674933760304545030804944131383415950718692469731033224213678163182717980268905874729047475164722239455057119562642702564292327291032303820035751229405075122942600064455494948259948236166305028995014906995906885623282314014979368471368184715308194684383285958806388621533329964730705338268931953181666186100143915300181055882589169192718202014114245348739576778621091222030781306634822066696711136304997645871532417790993870094582712119212223851979838266253618862635874630858176378933875591036834717740802137821917156292434587299108372054438865864028927642294445920811977646777706539728588964985688308425456731223219881269071009495600969102747422630605393548461585288869135906295384293635960814509750808920829953553487616019523995553999069756872669704321976413818515651817824208159569823376902140909688607037613191164418221071612097951387532896693726047390154966841609739298298389583255532953827249195271565821194240010487997440462838447300240431477558281709161271948861294207458898489203866869320517824174851835351099183097685489899274308568382692186101009253244408597691835809698220166829060165256293162221212415647605367323307920466330998174027150526794667658836455023779173073201649762524611703278453709549437715379278320626570482085788327535322988250627434526462534359948545205151085088494074380806705295997841106936320027579431911054483440437270293106832192212412944590328317336590783987408129037839377185431570928887919917544571000929099851979027018534308255083876623753405625279780749255165152032396095582778215635344156792032966602891449718909964354841944734971196514882024229883878042414697981032756941786480941615631201814171115420964352937095051713364359029613644771230275188619363497069085445369275035503529733815128595399453551248502615339062629956477244561215791779367184815503407529961866427408468045387640503918705570265893356995707667101948220320138097185244649253224371348267895189319148202357146374939276775491956588648553378088964249324451873795127231119780688590176006168154307918559179866227325518200882307783258255426608319504711809073156141845538941546279896249351149668651483809703737623957421823723084195338870151848847266901115735968218641017094817308193740855843482806929617635553106197288500222267071068419385149179462906356877838439171575233638328870875367020878795003307017805714695858003246193334511277233939572658856421144373674929605650271272880040973042051898502225674725778411912773804094488699732657125071607957425605177904696649881534471375861912467134328865703715717850972666673465949707131823875864191592704878865885358860644947823777848252543589203533786443581176040346877843085341615816629484355149474376222233055058324633688865046596509071220780106730392597180345319899135942508142523345415694329095635733543329343700930493823064312937939431492483538207493189964396484604095154160178605174737664201117445295341107605679996818336574414544600103996639807105670195827154778834736667264303628257380254744415585606796064396760526684091186675486282543369150986915963677930749113221161584906246754721753699114933331730986488480441414291756854338584708176232351469307925295532914876417210420984401714571540549817655981553615931214859837809559231179164901620037512197095968398527545096437961594366213976949720007382114727154677560664696311212299203485452206912338817932290146130944753851211404908693086220475391136792050019636741596867735893144262179783084054146629911472603210334576921036242323437701861432867641088426650542121377080234966309304605951603262869321650226140729202081340900602853503056797285383941426317294781177061038410429312098472330535949045214629498106955568812187697155071154026379453029257075866173481793664954097797552179661033954059022116298593198341956120799445043183200803511686435977013985271237778798354782512109449429972827193824003940694866837373241540373014437656378418862549316187719408727073548146762664973399752133484021144661418889295339953821900298004249806443910466312848544511147431290148692552444512792500316610113182108163810229481681078626924385726081678376673725086288474953387344216392240262753513635574082145969699924416575569319137956547979227095986969384523283751174835658583754434004726529983222125903097117552013995223084107606431399775061442315174260914073794524058914949908545819393291552795007244417312026611900557484127472118125419562020435544911865282944925142669298459181836074936547961770561750529692517471135364659942497052616769453394979045647168407219999478383142752757001626462827743478946060482815629630004465828105567707801130937292184678125322020097211323127115605395048053026222847352094732529273212245610121977090091114642028643120729712417987169746216455380987782480186119336647183397145374165481859819253309287741990734600260390643488783050541240417762010068180603499353766497547042112390570024447202242621098449980071778510052064922828456421969119188934631656992915737624275025063830406035463382380799564186327683947454489373680285505637914081549478175135556689660738391165875890920722189222054053302787658104799292504752512831832804542376068568666590612379062924891434457285889251041131274780540742583853790747178696760340467377867480789422201472948055326815466991388106757792033665099632931536774000146559363379684811858186022155772069527892801146476665537707992209373318472852158394842833597532948104200505569533490615362795931486853313959546257829972510558218363894641703295465511468368816921324357075285967046543676359117717389960888983160942649073192079026259456234628579773734112325392185231934837371437439333333784173737496778878956006680741832568057690356235896316843494698931138753183156049220727361648397476649088613357313410776386869390569897963533470027777526948872845100938088759395542171342349582081691058598329678582136890202367855239216297524671674295777340159480277590916723592103645805890512151960762039449543712091743469155257064580683818073886027663700281389647287636284850571134193504519786796634495578788067234431560551582921812492468114208995334233278224751970142164001158933264249454663378231911233941588951453783468447855497764871225420461827672970516812232653448687874203472323672766811932121462382917261628104663843557394608941578524679104236214275470345085208265771199169359403020777279608135899063255732975164136628906704453861417229274156100163504309702281036681267507593641137366042487785969534129490479898085894408510138276460712668705540973813979409120697789012861417799563344199113826762766131251209664703071381806002964811424860245017623020434680984455921847398760699015141179956721508897383072172267172919411176158490984168619562327029126287761614741248595181607443253934912668208503870869519202812756508312460050475408448457971266723225711782586606193901385825190266943794354498100691676867706164354742454426091552915019926430996537361932492042239969655695648433827555541268090964863970093751229673942851082774189761369028119694400631710105853408901979344799173323748103432456107763069721946455681151930108397332311866595696241910297274980589057741326349971374879708713750302847483105615269733685786980728993121945713863297414463707942087913319153499430170205561657232995368762007460923078798249529902518762236771027792806965952802661647251440055931230208456105802912202012405640888236937347508993827415419150427136522748645971032077904392873097724979745123319279228242633419785205866441126915731982332590781977415682360974263244391614920186259716430595665247884716072155528382310284590614527934350650058132535895611859703442500456731720258991014609280556652556023203056672248304617741186665521487872948762811116297611540090693217954362375412291871791221459013230989954746597534605098107436911588373212436220839857083623297833394964123947003761342931566379015526725854711493890769537167258568906492807230298387265448230987444153727282529257591158862582304838117547109266783837721458262715554383422533951487695537438113262508335361433462020469532993641985601642082434247984304578785163597772143918065720690145827683539663989382020037332138807289537868330228028834316913643730288314245229521687160800724769344445371862954992688259755333697681628215434555140296080657549063795747864384114693124376725340630720232509201902079876688647652194794785762551792883329802652424945378666611446728316619460244092614831979900711203936352479492079242779337340310089335916110688014891618388825453174533314104829977558290467454640367515275769315084090184303940292319674348208566091055918385132461462070168197688699560267647247132886029409553365389731327805047135963210489195410408515073703898351188897272130268497151767659789822141809330814139662613992236564530317145851379101716390684180336794944729942564229927068350735890208159995137991734585701357417929676366155174454239943451318914416134489160244798160475422422616074377616410788255206954021200265895669621445472190617182534993550731583150673562987995685243897543618567727349620771480339430858470669329816889530466947225055659522087378062307538604652875216440975507364678060959115911700338064408909956823802676030401733244610547375403492406917353261717155465685363830656918209177346823909665616749513622719460272515190057154956328838012182925743626761625603299478970469294066217995607470665222515212874746080973415193657465885087906498664331041595232698465021615822827313209295452403509852224510247070614713664262169745028491502237908304912378337030942121191241882974162791317439646536214525935252233430109606369152011202874212758691937874461110874229314708317728029673001221380552667926368930641225790037593145394221769351928009427940327268144734578752709565693140950477243701617916374690545888102266594462752836683439725364762448463394265768678322014389628613339995027504308995048223930953674580511968246283758080791803856722337400866944239897425845219191947443004269470789907468280241174648033270758756998346696397026816764991741384486259933663714665519313698073903240769679921394062956877689306074132394519757159020364272972789556253700163228111843814725364345599398752415870327131484586870420234922104671842705716635478563046284402420280962771965765767212623283916445991125449276966721447673867119730155301824888198486309785441526329267727530756878511752711592252269090062242939433023555498493292199857633126116310450398739612165079493616487062558979185134035400535630600537734029550738525921964940023275431877510679326009942031897936997717091851795847226874698656635967331116141973802088891329111205836149232546535961663652792938280981777675074514975472267646086259690247468121454379355018093774715878665137037242198265380229465197556901016849832366822326970983142883591151762248270958573178306540248888185115366708103722114343224414118351110578126281219297372605461649812124606782467187381238884236536153354007806983938064456584994747324577815646716635766437892617353642435031368919383661555491052274430793151475679355176183676310442103728395983070542512429493559287248299644596894465426372714978667191888093271918294323791093762493451972182024057036023506876304096765209986501627343158145453616018060663752714721343669199399863949472457742286785085792464997617882918142972611264743886922711824160970045548084592496003204920180294608859035060737075976498066043677439559823594303967480300848890263559154445063513055766449215324424254528848160127587909419040478662946208487297298332073850910260097755253512959283639360388618834831135151486842834088361308868954389230493805419404827555214050133088310117475165891026697275746246917707195580476829847936911626373486326887791310848912923187747045170778380326681545976163795966721262926124681150671570031207009882917892702050190796245796821435479909325705145825182930990647061078660700909350772155748259194091610159432144793842296447799251249672029443480194479851018888531832276513176046980430691506251486016331929493500038707324496554229981201476211395632629109996427277002401544636594992145957922195480004183009238140272738181455010351803183271716899096026716323166618828934880940407322882688951123113944533444588563519635128449371071227566000887034449085099103412179401330484829806256545717945093094393621711022959681969728528856633184703989228047057113254215924424320840129344334122413080427970051736693907053671287280938624968805478117744066238783527073138097324993816943809795679940232075659802634751340721715035107091930593805811290876236248323874228346701932238944187146711138752809471437501499934880646784181269245619106448791230883653107251747284325907271388020511307262465635611953706606987534270212785394168064865160552051675495433374861590471480139092516368332948267670516157458143162931622681435438038911380033139955990793659255468567015925542552033481036649798471508707944985157908765251728025952673394931273666812311742273329341614454974009559422273138843782536368501783290683569682312761817512163452378873091498255204256366273209446541325989080011359475530576224584997578441795489021942346682961023676639564041749484024592523135851677965719043759550442078927786905095904230204020398534685510630614302838997137852446979481550601193672273546607092221586447219619203547054513821562850534707966776391051851722440332904163279291334122361798173240744578697623942361424829122776031803999345591969906746866933156823137633119396829254766468736233357822890018080049572471190346574580443002043420164296572544790380633831998669770726917514390977560765016408635543393441555647607881609795458878267830143401554650105155331646337091981292626618568822806272162496880118382427389254012034576715190368588127801154664608641822885650169085423739523596329129951451599307111534773997556661338744642323868328573688724087127526806580357995903590285606212626628582751312847208175124907110954305657645457488919530477523291274107815753041327921172152560383553505040995129425176689131881987017380946353067857569353474073539542248091354906260421396974844940308159322191832047701897422456560695952023928943496398883736484518040339820721711532022003359384641332548942211801714382906668907262081339221416257225924384192882044126705144488830420316528648655364413920165712198165479421792192309626705005243639123740511453723957702528803558781735096721931282047957060827039519626960425474622498535986934595548230478877948389451669926096731807207814964414647020756995720480508613647788808877951779609377206943748215331054775654461868114846474730037946577980372133089126345426576320232789534392048406313937978350162426020490354350441067004731316000737808824136169779490697738670053426520301646315870015910791690189448248005691986340843875759433426768319794548221868719565044069942665903410494325516064252452480912419701471124241829292365155889721531651108820663281089843043023693840593959439561019866441593156007399340447853482470554276316375537187503505933185811437216332656937777370211466795089992121727129938660619592749115913937516564240270458708925949874133314524435438665442625190537024191322961684324152225479827148457080110364090225378266494269308085187596876113569103048099303929525591579536741536657872837458149989028105925886056329687080306568153047667110357891209689780384344885689646262265827204895664200313686118422908295509953713002631829104776626843211113418069894476485098393477397089424993439100816611281505940337312539716807727577745700876231974260115814091147770409712733368398010764473652331784101826140168343651470504556966363771697374042610270236607199983701740419400802994368626160367307397232168649386549714676321716634262214044761770560015652013616767577005103397185590013424244696982670477408043474903406769723377684230414699685244707170159577051235378589320171771310870815500915831041578684144409397680172476921534826178573339205994999115104751509371736568054669503659278263655294317440906529805475170160139827873344790651562416420402812612024194940364526077097964008380215204414048663012080344931357591561661136722732286758891588552862156554839355013037175609493846591963707727092221889278621148190604674315601897285513959677310899078938528864610347384535177128476627396136187619326309418540634380943965111768390643780694288388673089478250178385761053073868990907756567092881270224744906924694405123882829740189337152809083350936382972509969300796339326178170828180203486910721378914255573640947826425847728963575909301261195627999590736814966141987056859809678934250689168708040675377665316337128309076706015170228399123611945388726572777671228587053276686654733089197428040989822655447958558006844081622813856293194043672116225067039364064588877341139584649239304746506780043664387137538336806296183070179524422882901618042464539467777712707452278374597813349811270494339505870968911984440019076344364694466912479419793790333354428553164486019925713737437972791311328014378197418063656067470184123808230709417584584915714155482708128403187360889096605560039085638409279480583729241721322050355049357780864029137170117614310632894002893347690840611487219406442477821095915467720819613472852925139806817434979915350610078767674216114629056173549175015294264626762514357753400866465557940462318500405960107957853558632604545712164302542818289843318790309541318249793891394563174831838030929269754506278540861184988699202759987501613928207446380763709788834691196833269626009135752274158458639794388922585346840913435872799840007467705935045289517331834148909544650306596741159584617465886729830155744899818631942678183220286393900613461052137764997614280920678746624463110734421252763256786994365357192687600441581244248680092894549461506443922937579942392712967249811026547612475345474055426766745792207622578953023815446464198854400326628117987763714220391541770746582436270176864465684547373277100321145739555381897834617477578103744433316046588866300145174025287664016671040382941238151342022562663841064476006413256709400389703241594621596581132748009184898300740826989190626935396879549077569227604486905704131230770802555804400508222609477090127690499796434035080262674290172710762241426154387763207198244690691596160549806667570021731046465102794624919800933252353686727259296970534421910648042340265286229536475174982654073042389555367164479448991467977790077095337567588362293373742915701681840358065353547844832193722747914843141262828425332083242566927348592958839872149874933060971513539075090660650348650230661704853361112853770852389089398392951354166948404347741130618588946047182641202460093955411974718477719157679261034487207040983184098857889056672499147853138627528554665857113003595890250240827326506163519820374829490380232322294358757927548471168749960676442765715411458706740652473634830871231029961040013083693263097564958448562849755688407501974450795576586078994349941501394576661608537110714372920695232771331450196375048582986864111666451223887775804062460174684173081050771383366877898626012918922721357298201957440076343625451864955736108627508597657630288171760472596649434257395396618362594987630636831952292274018600094605954692289017631954027585840163809439925101284358027004259057243948627847023364022279866588358071489735665722136125323133048290116466165099411707695002620308134483762364417579071824674280021583518694134449811965660955534560223808254061567384377973758830882773712749187694280948709748307970169139795529110412200888887184337136189244442160401050123206132820629581335514175324752013342588934415201369232704419048854983226112554266904062028502895631889613069760580222830768300986096922224354324217002288412175293982970111076788859582239296200843453151457614247563873244906444436011022817245723147898892859348835993736187352633621517304800769874033103159262005238318531158321312273512182378347897086037763980010056308734589905853369090257131878568241241113874306827763166568596265440011144977302556997183045863289841621606446753722507186839192771332959865618589994639602583954320106113601768498689905300240253996293237480210267311388165913449499585816199088331871452948080636496350984060861052364475596979453108388543804951569633229749703628698637982785396795398883352162257114129950508248273307433562468532098355917550152656994471753412173173909359882687016604399547759398576423727628803826488846865068125587742574505011054210703796141118428646513043137458006464548199898828827642119274157778646472723854063126640013451118142868148711150626586285591739149875699982948035617699146110466380358078545049657177423102035064532030260397145906809585212882048395883452738763981693313571847587574150396824257498817644936148293899416110160881108815848418512568711303412226911224386492249994048622760978826716152462444437700999533697753346364664415833560528001894851766186351671001271166698545227086769993644398379279713386317443584395148659575698807643802906012108034565312271778321025050474499398618678918224833992378756740222783425148947048165596773567692753080414002679990807935661068216842506943381345959540789783504054567985392719560151494881000160829550889796043020339716616737587820129466913654433471174923707838767181260001502069919291998082325494448362772818168617404977595002542536614034449342967766642807571979562257566701712008784859084633706386859188244288629360893193263855401700530176661427597626611900473635369344772823145380956275650719846875031338601930713914803227255112869958894107699990103668007904902175248406466102205912086798040514916613902400104514364986041884831377508531149122176835972324621974329144589389176621453759800570931737005782936588957359337384354690139571816988437109630838757613928916915366863588795362538868648639823705816626295164747957127123389618916037909810655945762089927428147929993433308677905457721006931370685314555527589750443471039248102050136020737859949297621958329979980805154590639312581568538480579661203554991564042508394188577478211085951486369393828063815234502370892908319414302657447622727156948014719076619021948099822904664086289001420720939694986022432352797688334265323870539394246829950849351162072721850828077986545714232102245215040101093192975180377530273985331032567210448850999335595966505448238289065535422180166798260867725642055203353380415918471274038270189407112670131862427809256635849414404606437201890638246183492243688847350802352706840825560690586866045767480785569278637933367744064895097791698014194334305039025035026669489507849491247688544916307693038336600247073827432954582458375744674411029543535871523546172336960031281082008592730489405844709914698422475517812417312172350300798384642739406330852063190945467556107064782672254704474279434667336414135960744571577347147970424646100344483738787386684220075457957203358948613079767517781602080492217606777333912395772941161922615703136143800577978702871568008144122089301510843495689249412909318662109395896530082607821841303563379646213127745913476001227620703271364759544822089373021177583284249706612975130257837947099207660742132662294417609206578984940111376442079546306969313613706405775600057233862342719458960018041035429106552860935884434782313843278820893389144581492173965047433520445903023109038193387902822161724301059518077077267564104125615155309254363148405491979714479908778164562137212341454867880843257256350079313054963855306906130879390113942574932287054521590412652785892857082320534939323453555815980428962516091920811133345226707763814889095758787527450138547995808241796278562607201742049241129586218024470002024071818128638901917309383333897672402456764492939231250248578184696941438663489822199589184928230957001644516895137770851719757232525857004032612278814630041493174160300044120238692199197654379301126019112474782567407977761700716168715717006763105305341365009015132527042448198088393420880839522650425429807008989907890167531757455722916319589795309479078678707764955915060443846768792507736122374769497812120913844985062062121518538216475529443002857533784301438716971097267916329961698192589646373707391916531410581324907069742141227464367107493190564242830051914200341370596574918838859683136583036888710312762978464150973462957651467908418440552160248703974234322827129900876012405383300782938143103427378150007409790886208068955890442547966605852350902690263021971919796007488900903654584414272311413572792663749169302924648960897382407301622269983516484153263084111485918121044831826894191745232243639529891687133161652711961213061891678723434036078679081697538293867833774384296429980149136427360483618747529363688500242507870164824906228243086474694043710685475213744399977923588109991701842102755509111568345373564752205721104293375523388772782849769693757242285095715057101038508911508914283930717086677856375448276099273094395547411044125745083465180212723268635030581339739337465430751515009357519610903332754123130748509382743209543627330755026553738861139721486421986614768798962691288491573922905989067393934721934459775669070679185484824482952758482412425016582285230600210854522987862564389181728427937146758546355840795397862691375976614317937999736650667258403972430405863139774289649634207869260862691850467247422994974911942648987639650567873294016287770817316026427446618769109817415145009358084453322343247784917990112907148440935573036705626662707859616936023332704595147789410158687286501016537204590406811847676305298715388425098946693031036436642924277974487968609593239849973188388671104115735188496977449557001424138892310508474805903812709556713414602729575040545764422041876744316466076847038171432701413252440002881615029883082411552369931068144428285701526137219770510008177435285906185617980033754261699214047171304524862276600659958949403114671762916157311623702034151432651455646557923672176544373032781770242517333844063430021991253575194101355560850720557776697874453280442138108418647876888040843643606880319051164028186922279669767531859235462644689428650176392901274633519346884865276851902613748385789181078648569111623168389634428260721850298455922783686238149885827062779320131429741001972486111003882690737328473724851020373755364255889170905087313843290375410961563094086618821447600835538475275475750488327450625846109913584695618267101197056439160326025992720329294365859920850125499262476234683438631150310935089628841229055619976899637046530276702921705474132061036487792187967835713075154709437811697284590709215283646199536115121907289393728098387305903620546196345040233508437850955909028047496663566564228748941920086218157697905842730551319853156656345523314358302042945662252206640943588370208993958857792693166159841606076339313342876211339892964476455161909988621716874602146941342018659337408120648203989543433824143637883514200139530142626393639816169501174803538196205007600839972396607029801135749720739102374408712333577957167356330260969573104109831083413050208854639041887283170503492285670116177403980414586680649153885846574781370272203888209768005816951007979553358798919387993697331876606428198530228608935125174330756031352826300096010964360644686720903088507383860401307535894301002391721706054030922197594491615238929486910145800708532304654829489483984387554286728126749897726483403659054046715069757235429317569522919326086795804703745482251672347003867262723876472982894042344363043445019114391374063606972041758187125926836105343731575757109435927484408718700027381702805461720427293713342975544615733292875336152485437532725162487713303322960056133078097094725113760847789368241827738750406386198219929387893245485697318605976524746849596815596211862270510260310293029101957877842128940359120337927288132361499207249125029982051035655648781498816363409891983954549803287556966647806262848980830004165895258761167236694379145574415070397048882501919631861472321828663069153239819843462222763091286865271735190937229090081497835287606453534660881422106719131019038665397374937600994863947640913285468228070999577683441836182549880424988606120591362547822264404794806852530722737945878855478381032661381746766609352965311813221374478201492636978498912455484216938613144523637046782267175869959821494484905879337363025865605735773892683363345339996996854556538268095345184775622931875930374187005060895213837280092701946173754060717569274965396021193303016534880693247429450374184447929357282473350264773820685809967492528687132518982268914033627845304143423727011918983092496911984324537519085553895194720053526479581182746113600370643864014632101473367444861038324867291642626572578754393729494981927859846992329347902318890595835104990256435052666202516450152173390306905716021882242225588819659024388635339914033241989712196054610955367945910254085684884526893885664859197790043325302855033199043912387410190658193634416335488974922271937115888848975112804774289283250157013021452176294803729388446242474812139851706732938584168794067157282743002882493395425373023008047167845461668170865957840601232184173960630944371305261865613347992039475617512234981753961592302037968118927699429511079448461250694114490702475664077240184039475540439947681042822886896148382672831313982090919603266874298377514502542378222616357003013040999795583635085562273503608690403655717279772851222979917371500245061463260666487808003986128730067225826653816160095163584339001504831376277756884368037794643506729888115558920037472503756773411144132263902791619662848110548169023963614852499651518931409791762230235317264165950491367401163437970136507280859441347304994306261001111211915003546597174685337186227770741993282026086975018656747461342534645411516258753954338358633062918171863598023705328141249555693194257377708263254125790380367302544190056339878650719776842612395340693957252007026944734741411464806863058736509773075910311565635049807079328193598235065995568031312402070499070472631594056710411437016649040476199897068087828146120273247714318424016539929909240222480529367311451038828489315124723787450171476954092359022515613742563461760407448922839618983479413313555912660713634482734536143770211960968010395601119789246025210826126164156607108580125861843225164879929845148131619282625799007583238489160515951005172348963689196140756497445701374397184494330224298743031071385492401974922863531309407520594336932726842347606413244261033884015901592108367316933983532459046478688951269130096646182584822188551803897659246951553633422560510895684859574043839284321806659586245424869205987265905535504618388698049351366656596774882371828377260277969467601996880992860387288464736866279132391503683951037145819539746085182804297712295742990453934080596930888220949691191294338160627072001354985688036325982934742671455968764708467669965389057627263470162383734359618534891797664530169517126015028193396583145091634358610774060019828930265830796563958596725796982580145761497317096254762282934385116459874820602822611923528512123986776796982921611241509116897032608989607782518971306770702012628730223542394283947793156570697811324769309080310997050699294900758139198054304945078047809739875016584689058471326109764135708481393164150407469316827476491169638430716376655485379695428408718154640945750175196507569235242196052547792058809507949954109598001133066413827481925419100556373498111298962115412298471138878263238134642315589136583953872125227547804885163190840782753959247579281513311135561942972283644203743403713632567878416249798060315324989100832504105119524688388849517921002979102543074813304431707923425618794203173507147051985767126453785139707420688969009438626770927356520571737244465831427893021122437875221735162554486214319953581094169664037754105559440405392243685446861672506371869612597566989477860358838899443135400008163243567579042365728022391770258612408979035381257451758973014014940428421833915075813106374369911740915391639145051448606676375779265445750272112740276123596112474712825067207506435548570788012472246990118192543803585531813478011063582862387103708476535845251176694006480687297371090149060283020691018403659227443304632603972442549681642316121536939958103321070524986802131052327683176552931464331458504253331127074905516094336842832458113771297759934271393699552783204857588681123854097831317202415118927199865623320466305461071978200365011520564362735999961999201469789132003475785709059026435327967801340093318611540313111491859921196632879120415168960722540351281104988906843999294469866554247770880329089801185437581618501135342108612052194830774644586516290707564552265775978767963576738259182971982966238974259839080106000649404998990150948662878560844035840069202314187747617376818455415839119725894041303792108349138636396453748486736111415903362740228386227816140757401790299193992833605916895333822616743248749337683472281603610757444155976005050073378897214397883437340552636114026963935550542418168240198679859287352303784040809891080513202626605551995698341638068272484258860223816003356540865072682697318146215457948866863352796620358275161678721784458808563071396404719392992291329082501548384212604885577311202302165472698525253791438410640050090451469802569113460713656868473299236181865534618617760981968938887685294404152634277071998867491924625302712280484954056745992247414042304318071156569574333743748405449854094775353415747654098788251153339915749285176840653010797569697020220990801152117756663738903398376766027068636281633229014736491887896173108840087076058668054480325219343984934082561291354547691533068902323151733508323274890034885132443638991833704685017117403719458759566374595875248053320291961482647477029924275084184002161805098070033731174197209342359042844614217735492245781872471045028404207540161680837725719579072388537306056728131214824980125312463610950688265225028891053115464330346895376223657290573722314752636954081402793213959760657811078074808601365616505655159688230562271967148554546945734703063503167482679880745321077496822001319762575537303495814222184378983624811486772493658116447653511865648941801920593844180195810408746859601738950209719173831301813500485886654025772747092047782652349122625060119598120644862696454070186385558681552949032033508480539687839008340386880932110557382842444513450896340170710861163537056768481251407985826998130835075034162920008463983222379300163838762197373882338848405987116989202241192733232387589173584490981621505585845768910823317462282026725485157353864433078512986790756339318742108661956294765702528593585340154188449705202564596358849789880337832595191058271472329284980512938202805123413769873862176959029693747316240922994228935986276606275698897941865350859390120713338804269348537989405827810286903619702588388171177367364746742352894509127550438459238367068183418467860347836770327489844110659232853812857141530690453809455382242760793028560414994366874567117215370778856248706074665751683698497308829644272965502835774560839455024538725557303661152784520494561579198336564678840354590292585621983143680912112523628245620960903100337256040033204747301737645362214848868767467147286665168655478789038495369314851725156271049228507316548930285253324215072970622073314272953625114306747991631167905474743703538778731577695212855004383704688747392852591288758464504588453617230984050660948923174229663164664422292571890477182584598518811027256130136730285388111328534106420233022938069784733326836927893941787143493496471070277493862651214868264131075065738540634762729651660374160356882780600346558242299382232656173206108683854954379102730068800592163288394112198375311311602506203013193476294615046075741694604366179430651668127260077718553191974993486281439685533031905255279954320835483338123947905156605970320903744447825837544337374729430658370123359410137986452030512682928793326569413776893523839324186190906941496782475010955459143168716260292187101525686959711204888494953395246097739535938734819515295160422183305273197982340357118839135578734250901137196163230140277485002662199449381085752989828790799603407442323307356118995789930190976363625242605512231078025490047215903862845905926195411603888545023232227288584040804990028759654190659838347156096953493357497319618732575296297025985264885128918593777595200787078382581181173736612349544006698379662855244960297337649193803253445190119162575509343051788336985678610388455712868316239401148327078389872333805275722453355997307967136544504987296330462318488148606522313254270443575803960702140147179788443737172563087642386434915446747445959733297123897668045539289543242563500373821497310843547596315396667851865383642940747002466774543543614116685251350544294084163363818384645361184255863599086243379245205397619220897376664141834026577741556916406928687264696207976944789740156876022325678202406902721571370088260842490671875068254713754862962511827218993536976233168355667950767699177482191844263623652026396807719656524120546518392329254654504795193625474993260969640718690648093663782299859379823044353321607265499101690170568707304184554601058594523042854860429020892746953308435774175449808171438562261894063943894036594621179847678402509863165235041543623076526472638668194960694819367088759786933431372820837064701276856296241607884166737766666009794150269977670834325656788464111660381526177659081577483299318464879245807026802077968921278589003523719441923835756993777998869418390517677099960142928528387530221378684372869609849901921208325380929848891205589004087858967544304322113628044105851303140405532565371001478049081904137523153618045218610182590500569927061108916678906023371197822866863204328851969451503335865419902890436449094117653267330004288299482402401169743153432807054190904172756807335308086517667563870982281167500916485473499239172991520545280338348696261545123848748633226250476793443446989519174908459831927961588090251849050377444270775509412640459327385441159804775211006433416313074773617132296296745962604280445274415792243694297729768239189896572090392730603801729666646745993543845196373712391861808452554936943720712465026932732947013775886402539018630398858913432283942206527459956182109281015550861839040932318981203383499014722808028100540680938745515784812812204863561075680395926175820100952035136408819517607088329080729030776697900262241674048311377540432045379653025166084152438610584150706533782274689471939817836196207121111367572513933193465995908074941938515552386416515053177225669554642757823512436484368409248718400436806897755868898177586873324747042245267391566533464768210691529024573698274820791636128706967480471454879121647451411787204699592344911379212579521107237690746663896707840396861562766639824487737618961930445274998133790892057198842489261573548166404907308213922546676524604901702500015935430117508133272394990034374128352006411472239114047277367093180430221441161796223102987814848102721157554725137583724796277147704754921497663150528578886894791027982179820660146275588146326934118254692837948690204427981948670362235363906490721367947379812032185782869222154356928477652302565285034297791155941434410783319118564609209751038100238540685658595371815926559990789273857666384085751403310205252970326795820185928814108351000390011081924006646821877491162501150222855289596345106020394946701907212249380336419889936708957916272018055566388596896214885037295434032479753809698321899077004233495113845907029500650898734713474049060972915076993275651888844026956331421908971030073901493874945189512248301664451725848499570049578554931361931428433565367257089724419406392570203397447580571794306876684725704294326139578854691204968941707021503461848698322858853680378674593349994032811760764359368636701066006999332675537475736655735533444897751358564871398385762302345968205827223212068836334805654315052534041440353370935879596882391217036510407044661789381862154423446142230641439416334342791314455108263070076726743023314679521286764254084600239250222439977026036003089712404817007609703697462023597786209069258236598563535963174793131296791658530593406624460740838704396733326771081364940057086271022949974696575852000778482119819286659365155266391524049948557722924238093379155749639787330246799266499719526992033523944884461250695305469199513129748984270545758939977727576921734027670627419685418922931017715169112163479412387650092853099053292256917625091232130143368652534413431597232102185604865385603034205829632200452705486231486086482527292324725702543880086690950900478096012819947233904796384287151105709473923825951533851064828950792096876395634703594342541097129437067520860675389762434948287852537885634709262785261649112463882195090998188738890396249137391297384605735432332552825602268681953205290107612919064979821658734286457232900285350884198830935880808787080928005860569359936489447418068488470753180333177998598857509356800981637322038743234239972404897479044842228050904532526389074510094408030315432788340639759970907264999118501020851767626056796410139137073266825499849263754812522766223570096362340496168433186892937267685673392032643641613669735251070117601603000343533592398598451389687154746966155730599346681691150612633604278972051297476910790739317228039577953857104786057845956070398837242067666537906709084864041988137941402362549916855602598958830194828541155799711057069829599816426771487131254279352128870840818122303997627480751445185598151441648178465487159854933352471181988402775684233883548403879373732513992769200797179063786427991522463091024877841770049342633874249725543776091253768209161756345791939264607428748536556301101604628597071829981413323894339991929909142282060076247337027747100228877661013761277158154120121011002401064610739125346629796419196019261666356458605579390380173996476960533571104436694789556139059508075824214977785042330016679524882439716322520389968656172216072222841860502568942796577167245732055956139372871563029614847116503805518587768642449691850499086701974344805961983432591916067406535951670645218172814026940238053813113885548542746943137574663139421664949598240629427680892781743663077633685023781672442710370758791454611625508419059497185220857518223097109800761991183213874628168740754292218363928258185095015572094752123125109994388982286909283047197481703128443663755294570524000107524815857763125534164096079283414324150609935454093699671402113039722449557741390705886450191807811367362789843468664957123957962509398536219888331861916983733374824425010623989992878391819037697031701240087423658399586071637985318165133416922304775086407190203237551579412892658041783595694821613762912572336850437941109300029892052429716320611869434666576111107162556834572794249403809745847593012373256341265477030999371448947154575980918138169822115573986059922859928997604890274929938235422390791704648472732982896157432740567855556874787260385241162912434146919693037341871578499303663503848444773383705546255231285949074207845096863276281123232154074381714116062952934411588798860678627561107305651235751267741887400265034012053429489050969682681408520896350439611303630525960448279921405145274798167259268210567702528557728203912303778402834052874997544769184489441308420140222938836360154086140283369251872846385429898180290370197584934722785399345904318702930555404189818558575128862699931224378467161805003663140507980583163530610529799056530733556607375307477716407312781478024460504768024116289410637275271417817736035813606436688742224736204409414217504113727532527350453174300650796520391660387415896412908229458007415250991669073746790393662184722882670721331095531507661903310813527106346719792355684970628172193184276865551858433250048279495017720200953324346442287240658085834829837609731543284690752431374092769542712034726419687972034278204014567170737915021547998084364696080205398914745824925596000275066244275924396324076242914006735091113081373370450890713912876205485238485663876099821791296521872178344011049358043945526169564856414971141485084957628308925307181557566904177605704854901989662544227882873274217750603725631505879222757454569936390784492082188638278601859330104566511102026136546080991500272551236202315941752262644698575230766450243739651439153738266153175506506684189783802988434525005223674362127999847806637324807656552737074843409179140144559310088103281785591942659516074888119140590579320925877487187555680407370240728621106520293209925411674018774378523538056643331499520541640754534188367391777313880329769454050603066074179191308560239342359149078381940114151808241020781819046448944883170668616066225100108959044836837485987651182352105859082124322823102615913251972935522151098314755554734214254251629984028214170411634071660932373127747688529947133692326086245191675745093939971913171934941983909713297598354233557059054695547021109970156402504550649351239283468258224153281776884142266215221733655194916132971298178094787677885869819166351981214863030016024848590788236873730669811999897402159593675464134190167596405558031088923085927613244882794716426903091393673946129546239143325684139861813547812393020490010882388844458959331545316554516588008635889041556572860802740643729238302756510850150188277902086153932545263599017918240109997162965307703088984436436063936600227356026177985988757242822932697064860405826469565893301969469553699595390132588357851938414846981030451653159171670889837208625988587610526527932670502882446010967886830870684339997973127075990009667073289516594861649352782916812054442977900031196810220720443794992215440418998789360758470975485441309154212608017358379824410893421931986617628602850961689018325182620699494601975416670981296670830449282801985152695945484164971325241262470162914939878747278510710933654825447265950605210109347233547796174284850624253918420855266787030821055282678771691883207977693045686475929891779542453562666096531453444528114762024736667995233400900873566840407261797685555673362197715198765377334127752096973495712203548526148987947275657531677540507185453877051114889363379272801386305269943493091946678518119407498458693194627295908908159497811889161549857225311983081546330382640804859960759806568878441749171956333374122592761726323665243430085464960703691976962149929426854841972999833835334211950471927622629175883164458865822728364345116217543548414388112887130095277441310058557478619800756158447344852860820390818212753514805555401255577833227555111390315264369940805907538259147188803953113110764393386409926140257910288866761868725439900178657006698619537040530542663701225820560016012415131078956327571572609250453494254481821198819588868902701643529314367672191045693908233198824067847041466283851222372178292966130662734162684958602010663835612860195450005838196148080714036448123603055838800664820898584469483007303271218262350710254609261535602622906597375736377760520861252872363450458180401113289781957998844666453701911460909248700109127610840695343052996889649797177312962036837093688317600999892028448217227267488723094119863413405060567084003927478870605834708369464276982566096190190890247428671633044142211972512381361064027088026408088465355692731765747561564435075304958008317552195480274789216414784532784833907449496642988442313898866462932112134154618514020716364063783119194466790730723504154723001336165263387534631873248959723182979972258318103729695942733430640121033694527035015991604881791073667791641947609995456654543660232275747565936578215927191897403734679552677572261612937718922045207422598777516147801949916867908418733443526138783797742019740050692025305609703005002405195204191291927168688727289439977115624199360733516673150744227669784108094964911274199920251712128473124704939906841026594803076211137365808853995257136614944410154971288760528433988080255812677310299147680106023671783732645947291893380916460334908704140840977150390917496625762436588684244784652380624458316895881388002564797297638747027759866671814054057866104907997962106067605231782392580956288757134033188919365105660082523907893434961103937238045383949866814911357976238333984959766126138430518415808397515182899917492855813551377723582591319372294029014407193151809542673374874748541475978542753726102824198140733639820815228602893614646794418158470375857204535031497800860045897007750841495457272352295118665264019822287337133619070160698967985745894678950740344475764997078121413426710368767796781181193956830565769187416944999033445408972575260077014949744905484034321902580049361836388881524241984307564714905936790623945717865222748428429353852902604912075089510570714417632843400281961518832472456828087054030671590367707524019844989820747863396143732201923810030885159436752234812772023024786662293259124811024434258060453104583961539905175966904783130919861123627110697414302379691083974835326129893157972739501266643513408925180512842677370805434301837261756358720840832066916495886053903203444261086705080326542115798581997115375111678444329592895830886324040262329055242564740931074251812329096449982050375179230135187112556199340247531482168662641360080667736669500884293359634582320786408311816474465214878757635456396874765542528840409449745332451162624622680465874682339582430332619364176262258194334621732248822931996443652525963770560183487686527346235327915894638731160805906751626987236588636351165549824429090520313305052771483636839996821126012640834487761957163917091625631355433190369852614269295524547292303444016566766954194615458320091185778177008407099158241347067838844552966750991713021490060298752988853986035125333340244699189683101778886699202579123962674169952441599667322159353725496098879116956277926166558534773915575605026760271941346769894112229445560511818722574998943469731086868106308071115874313693467770989585856775367267291044485239412023600412482236977459210455912748236494001343598495821748294782629901895319428592267405091901278459635615715196710588461923550533971693246415582310339018199851276529425363303179744278600999697114346312302374501830097162731373871505991292859082353938413721316887771635415114866923371823966726484819558411883529860383327643627527383909150924514389019455289060693696742482100751240098887382146275015143240734645361193640084692140799423186893371703846840546218950431670124499389692156513641519879277446773524533050276106942031675399980676135543966395367975835188793414085123309563502996600140577289629578021712632515746441495019003138703684248216135689858884728654720036358881818434614045689254267926516929780160685836676034844712443016620597356923628492428421321257130296264202483091621730663494076129361232934009044179160958127124410911782055781875955732108556224498688468615188701052259524064477829699008978490647145580966690902111659538826324200167643929566241690907572027152432466238783988518590620088963510094573491383264006391505135544236038216175572370597070461551288691231063999210740882283049467835547002681304206992042564974257798924010224686559782940836900081629725157861011183115395581568780033854187542272003208840293053729420821021961875254872537030104225531485369813204642044165122772492301280716748057798249226842905768988173921175487977151879235890991290766865401471664096986134405702711740191002085250962271230369519832875962260611117658693691050430070677961887013489051876303385814069755126501579311127923492403843082695979920596795090835193736727403527782229647274923902733805675683346994628307179263851246798332624117351808967503022013482723886397236269998178583569467521833053135618648449279732002638332980879889892588019918101164439815504360072746155222720422901042653056672961903704700988486245992344238087733631642432556239749836808165084976318300599150647860700946913980840622719635228497270135692213094454420061540388228130644554227815826159712919920128521296052080615071577136767393364127992013926213908377279960128188062751420055538290872480502271979654816046507117643459133849885205602119207937153453345897158478957126652247215107260425392731637026184116895415515903842022231214133609343751506705867388345979841033216427778980879597341609945101298002413784745883982613091446318962467830272407198921820664697642799762588808306898880498695783694310880664301833334055873127559043547013072234056183134275528681008463801936145159144351365778744181974293160878756190654973191291062640259510563712299859926326992579985294265890549262310939710427667666053974437548721652412110595246774102708642567077318361418902934545697811799345191155509586612113433771583528153096248432806762980210719244338849227944739702859714443497474992110042600545887956785901293419775294656602898983074194336811568291400636993639778365364338647865715025092330700885420454197747736927543864483469293975656992112482612362667547240399707672775540052557456607003894325494374632090179930113583464793196801081430632796735832186457540884003637071987844667563863167381330316046151569669681149452185340800824500504413922856199498376087461298813835303661232401608040840129772988453291627109714631367408717334032488970705283888933248297181877087187367052813001044319406739967228818128955113706397554327341176552270257247730839360121666214305977016176622554454348717923102152432777705360309073093268549454219003543814507798534274558839270718969936700777538543458877425821358741359407711685838943555123454124324341394327462450454197111390918595927832677408948130291272579789426812436968171241431734967495799201293377478948315231373742913213348930499968473407789202981643869238386615055777249993127256517050150814061739056268856955836097636224030897387765041596665946258930777850436935376112371640076788227510168069607131451266921300337029544270522511450847631452902710346448042264349432728162094662328790933476872326603186763195394938294195915444935529264390159558589178950007815779352510407120178640338452565590043261264129319951821560347652163138909220878822290774698008481253556190174320352093433297060726314447769333812877575393622452181793765465278345329594993359516259231948583358048790498410923259556083149212363842015084751797384546150896271282946264753196784395529743143983271982017891596947122124416273908585661919246180413961570965351837793227084577411372511112308674154618397650166564513315863992459271445490412610692937917233166969313904032773061496520701235328653230652420633178659023913280702181167651552440998467426046048296402667618757349290047055856152009835507757244313375807713808352034628600610712284295324688622930540868820353271255803687207642974027527233452045147619552121057675743634644592256625251909373040355324733322695656888148789891437188488650182232669728426107235116557825812662976027221329523649351596645916855105550526966577992732802562208772756353604935746866170169050659237873312132423905433384308254325759367801070974912168129421011400033782439436347304940533044947263707552657926563507432340428137043885806732522345553729301943287544240977824616266750433454204605637561572385861805388167632597178005574856753590657537007015732149034079542770053646271332402808248900753865137064583789145582291746854214779489304807847741326489898096497694459953233362199120752902126425453677310134630135059822124822049268939326835867127544097765422080902119759519556985465794565905828354074819613735173507121571732118950371996440142217735222643149624179951900571744851400908004734089531336652262207176662451504032616575607806582858290124069962733599535502216572197829620469464869310529489357623888338216662124583316044995325263077433907201144458975997098494523395823287291829818715460311290228425225276203927273974560874313205160586294452430189904539118349730370147133111167455390661424572094925889850508051620156219991534754862693716353358154947869039869702698217807499464980058644189856790674957618147436260241959424714192618192490085301647871004708452804282638816096756930306269451381683322344047769115055462116236689036675786608164395567532636759943034209177472377080519446765266952480540206314018536794009828540691796068357386519901773285809870905747133089759035859549533340549855375053449627943475415797544536606686333093688944415807466435192868328077898108317928167741888274121847276889018086719223363951607653722676821399665745561659978996566235675501992545376131680846126216967157218487522790028706491106095058676272754706607759560980138185642095472628789493915540911064507949438622710967679748938543412849076967246185842761744443888536947156649194243634890820533730300944382491088823223797225211557960658727050511280731154562465134029005826635938601994818115997492451089965071671809648545053017000147288817812231138768470708424616352697318054678388130144669899994716249310709098794154850585010633639350616577253800938969584554969955471358396251790921247800510326232751391415843514073044082125430763233448832674008517469981892337310184274712259293207864098675198359159369699818088998329881507541563267078211939364065074987488452068376084318773857322161546815246416311787652817131878275273553478459058464790509746352674179557467485174384133768758222887254657726765407005482705554530044363024537829522502167928433243256828013813616549389717787491200162506061054724729398344141402207077452372199736828163297080740751470111042701616183517878417904990731482773368492242039812916526191061710476223083571634353535369915741059923543376939432159667313211980655438188741441486953638486222012776814739867490261499037083894247564884888477760617133025862884969894226916371195714204274577803452006677981385102237233046171059144602453698321822998701329992251442753456066972274505076723557669028002054749384332062690967599691067485578097180265769418482828536185133334888329433747475939395701584391608372197080223551254769579556659647859629885608371160661590511494108256365691363971094398537578047615259467013482939589532897958939209114464284933485461829726145819259577235662590184941674068493462257040456994079051020983880918257433179528267860936338719447058974518037587582827077545858252015629503601577649317614275615727814102016305122779934257973904021542364302907566708712291384646723989712148475612736029894473745470495147247175169881730330953233018483565830121177303300075464936703168281567426300123853736896636889924467065669639448299616895227955388295994931389986879913203911723000212396394361319551426930345187094294072874298220068878633997847599785327288587817930415638081485367038652085349492384535379614287190829711876567997024583836624580798617470846976594045548556814738584497656737616964632904534694966856082276007855663979001458219200286751791715618080054547976760122609593616033502644859025598730358351716534844630506722974711905012591662864457441838959709110012518879476453368916102317144057845798812967085790939690939347863289474743592167845483240867960022603837533188729754561613155337535594392115395793060125514981685696140308946100412227102690978182895785243497499671323279549026005776357454243439814454532355067031433642648692448817654192096386046524925741667940874569940139671935618140060838171644179571526017256625079953886280774674217879695149398666397185158837189677210824676787621784177860787205283842034330766585690130725221870624004808875705739327058304766232574367746078688531454976785412906124712519636993347467978914761683286713700466275544866093139666638312321421396201349336728108994009851046832540844953546743054407901694107762377614513597541389004841917437665080896592440648011357144522016097132693205123920893022049034632251860583550984546842012540609644589201576411225769298778044977368399767314319102084341186891411505487583185631920745787792437910713853838660472544566306424798919747269299027339730903826185255230659015570957229169124294191558272212881507653227950338076998447446303270929096600936870632223815118433233449672401704719358697757063426253197807169786147870115084819326443837683901022126516828022412765997874695710305090988485512281841471747547328989032352628779954009641806387982636351623185422845096207154984689831604815244262504114534503977237502749568845545670770205513873258790321166569062455397457568596089118373431979418374097182520630457934796571960720777555615618777669416549962798450778348868848560404736177839499793201551534795979376118086005988079009740115565354615170774816190745899420491521736143604815072126463701962294591697384543516645622741833852896279150386714500148624508996521003062446751375597271524570280946500617735225878673901953230978076392488192454067171794269456237631768537591908841433077536554892634494901496016280543240708347127516939706248305361096030689619494917938736937101608965489926418435768983821573264839166341600837979031529897293573414136333733593562107465412874562878087147139376389653525675320563001743851016705390672832669751145791014833696396304696582801381675579457441341918390067627585281628975569032441038227440327738723926328986847938149893290274715967025686778034721518069292254858757925418756829483191096709666252301113299952123792328161452343408627740254818694103795019710840472278257413417837825850854750879183861300180760109765845443774388309858383567727384341018967287990614999416681227483521580846594421715992164427887037113091772919425097954974872575181397124409553448122074677321283361888832772330128990884723094048079295495713172629629712683960512278978668129567469619913798835238142529054566190119794600439640309550409858655516708203695684942877532746451853942857119400947162214552637517405920069270857688819127295021866753592848603919688844883037301011592047050701044083604587767863701229851733496633884972102906475590277725517647081632746782275644398161655898844697757139718934610137641931735275423897670638497146454517344977812279811606210265546000972260524107382402087872815660932062681541543194540262018928476715768031059136890230624144441915379303759233402153975196464773894568568710115053968930047241566322322317852124242161182505864250161803256863230783149480810090993264632493279572524046594452274324013480426529361447505828215019864152049251287280448993316009878202769354303501513562110913090695447545697661380331303697785790966177764941615524200151281774667116956030652874095911505942001283248156719108531010153341443205153709466204227606829740772554555377095740510996227232020027529271873609608147411374987553252876845841039861111502273695258899752623335828820879151973080169534233179029658076191927792922865139367783978445954676532229682847658227711972415768497855461692331565704803460331009580183426096796176852402613471716143636654750689491743780708996403938195591039818223509410572738186993601887066055115613560364248553155595847551246317664901107906246087594363542750012411761511662832513629425039915815318969013671272243065580842335809254624502383154851933445260260757635803470804993384756728353849133221943690941633715705182690714129629089038608877868291895780390945558031636215035592107414743866562201731535864681723112620667763913951976154601224260623743697085720847776394104287734331030454251306057650024023977655825625923892391393290679338625438822053290040187056795681103564209081827959361931942667987288473983367047550310614920031206078001346695010766300769347053589495576103999281816411963040707095895196857225858362857317122044007442999654776628981868540874921162394983090361840762582146863446809861117782777503461179637313756143666045436070176009911413998534345831772154584658973953108908807776537491482003276645319417599396774356720386758251576577629780061670600990087179456570445030331718437831810991012434429721344494195655532349017180937456712468367753399897460201581464131002343281159152785218102200121613060692090600728651057357296268296262354638442162252479847439346039298941922695725997872190307325691784191533667629574993911037677784641325065273034037347370666949563239563462423614527286406481359538827636907822207968126781080753467875337407341036659549735171177365321602431476514483122512506568065215386357480546815426186614852077337962135138172539877446983334154066597735932180099347381671267090316835139224225782972998535062257218266726098065251184605802008023270017648607924635819551353106580823567178539367695259046772234044279914148972387059587991917885183407483638714527387934368450260216280674111168486550604371457371922816574104772322034206323826350662477567315351199488035626519117039035208770310591033490919868804187621052155583914602918930820336218643826616191842193787995700237819766102647839480515512886456754833498445405112700618018768345970820200265229327741067248306650504011311727245043476756295734965700566936007857776150991466434700409293339000719090664005082226407725403636042051861494805951554217479885878101736225290876103594116581065763412484085387685891331546740062426406909397890555382718766923663951309609739541915424794396011345568490879833033706558882254690838009498810430617818293973160161532322026906175676683483273434400750581410039596120176609783181725225157965559959600191508906498873193395219522723238942573605932220651271033939553427663264302767895734358762305382238448285716238825789934304940786160091407758029771139518831784169394279599393789063683237327010952894431845967584218744817751944614891847462011771790793401315012852351874696151054992898563232731945937584192940752952398803838128338910848528066882885284775780527475129818993723483078101384971451075415263375903992909911405332099302843967251079970250667384023015948720182453797656304586801287508920575786407919929503189122168143524227834734117267375416302824158472519305279718156737549774922563167962538589990927571180224154593129564780955790816559037041604937124277986542694066173627654817526050967165051408765744617670382652664301689161754511521972851177402727636681901752809012480900036385738880384744990889134006116149906111290089859385949493751789828626202500150793535035360267851502052823856641390272078781850336014089548324421440035082366944384879646969642845984429626001421759298921001517240166525884406993406763259587728737274720668936207622379234713551412428461121551489666244929081349160774399439416046145994173728801985495028578169662641811773179479315849194931092151248884337835575524277937917701849962977413641601262270386581438473815874108689935226316118845879488032766100244762962175141938141876614483169633415829816944413874357244120502487467789536644353028180361032965204339354039837700137043509390037727820507175567470406461074087588504476325507694952039978277845544313278102114905624241154554176233100019302682999938729664176225019711326282616184629784416069786548902884784526735925865956225373699138651562349764919984386850904378078568873486297809293522113190911808685439574078287863644064280486391432118733519934297483742791252862750213707632688411349660924923631650414974524727944762769188856550930471087803624041282503535223923805029663524529410753732249139585732810029596180231524274470600028992418064949992686865171561060776411469401165082191085079091389191604276290473325819646645967928393140456223832096353810061678836303576441608927829372235812056524809882850784994506535818374461383717810867704119759811582699889634234139311101183078463826754623628322525611688783907257821082057496191492538732069398249771221011090246573452585270070747947113552910535427832464508406865310250643698794587285188144369807515033082111683359256464480833961599485494327977416765656177947402417488208659961028482234005287061265304905816389611621456838538774586451404495449132662311481646277117578825879804747182645605249417334227791151716266695702250341318705597806689864543776518078914673535782523839664362261926494500183998358731548590766848777007625513711272296614981857489272502275961983805135955689977107151069192428164650140097734196474756554425463297771026368533219587377267710017894750657442485802297794627904567508398587717188481552430372171199347193145428435366227072885383904412849791434432269283009255370937811340923839774895023999934287641388447957822379661186982207012320387189070716582879635137785219482654077198799128506135858138977864416424871820703559983673063009671402422957105769223245922888591753996077093327130466646899493864263630240135790411532666360146236993655172909239603459405916112698595557707210313562513329493111037675394372664629353366446037989906708013207386934527282925163544427890155598981649944521543795680587199758346574041656840265620578991283852183731501240313002969201031291582844520460382870515675861309759874724576672630060832157972670562633352435196575917820389577460339944485448001133049544175992530898480670329694120862452023083720151138058576981640169487106949197505671135691001334784500334381928354875290391990863993268226990818899774265032937890226147744463904386216873324838268912237075585976569935392012126122701706798827615994909807041404850327982615209629376182738792502393783153022185206688747168948266339761460588546825704098621610787364199310648659982464900956575506333049954775389251437890929261526341443251302928001395514332924619349712776085875888451123410894173066447139685727974812038204648473388538843782277005318307063976177647733750662412769178604231696197535072582865340758771085506342956713041370844606079025324783988839786762960562914774494475935061086360961038337287350061481018166342578933758014704242578547246741177204155691432973843902974334066780257523432198497567829676494387762876920552119324125989841895508693192436670938609907430869068350239776410989806811411990888062082087656746545000145203565722287447652332067481195059807628037796969894171516902452902454653151951437040449437693960639884481753303870794762016256184175456725231708315036893042759840295803899365902218494104788933756730185259668266477113414006493850996960328568764047228965259874136216015243600586562180950483830018134466125233776128148054046364854330432775508518727522602899086245948280865550212189103444846930803275037949299468412034304704043936778929413714564839530849846949599999626570426096100338587161260149857922576043380227267060524622550111575574814021194813186737133536409768951910068575844848065240809301294128057673832782666846001003709604008167245105549906803450931836785538818805209636730711923263944765107617465678001113817187570003183027060532762564309081190523592868758158658755204008602679641381463568939397749117940175786098760195941237800392535281794556420436716505232327682744461293194016995715286586116633495801275061827803901279706175907883537307855733357673386203643422066655884373425223914329266091239106806949860816492765050481430051756364135137400922246406551391594181041637772597647446801051852875603437898059663658202684404933066852930612862396900601341316615511612606062036870876834296653664194973991548743412372508593212817795904135028183586375412294217862446599440490008239202117112812837063656483857664563711685015116884813651044580058453652505364497116003126175967533485005624105482486143047279540317090111191530405741893203994181577937050797002512862926598910906697453729461633345510165675853733255884642275178388528381013859557062668303908801587462140293237293531074750789272707728708527279420993181400495223658941697861527881020829332711488037406583297992263636517408245264573479311513073770996266770647222967118727014697567166620028717137394548739379001836382944056500663239371877651979877300423190218011333756011108260899143267829459591717958838847189337098712321265641803699910498304631833716670358308095884383901800551794356459182221426987753573237046724163856472782853666099810978662052751985974384335868226554832247260309903068896166372641783467742765318743847194897256191395116215585910406653225399357083121958128280967262352256811357936050929724249928353080760986857418414999086060111489249600057132418311963793919364018966509308445720490801310484075055263286321246054959649268650369383320283513248981384181832409211558909719480420829191014655401135249193219683702307621512249654913918369532473594848767045391414952683102811632160452897837804668327104726028747144825488526649380817177762466441531789764368747725804300408931311923246288250758724935519742373143315094063471162725739294573756138996141297347010457425713247295688513055723076228903972374523004399911003642618701170818667567499075951588229592139686534962636484214744561313477776124039831122103005283246341676351572316973668761969602792319700381831291574658276127011496897589999991169185257547953965864046103314523179232213498571891631738305826322693389567980797287045639341056369868543486071509478842708040019974294841031412185016620601527675675216251132639401853186371396401599429882517070795337959587351822909243441894454478679026386599697933104047091049560504040818186049619763393491889257108285072694412706229235975239569237496416511871911093406772808780601792132600410286024346493621199335778563184690211618692866574299724661858793911529599279166910949595153131716752051262234222673011304636524222143710180553794751507164089639944967738293032491782429526995785155351176320483781571145773512664327194024675791507887020726560349276679715647744813043245960092135416102433720492637908844512453194567501608655988705433717231796942553714583644807704897319388001358736801756157832304610850143927718555819084377911375925788069811568723617416721445460267922255306024217337794446344355117794471445824812863135237003274483789768490816923176056776663826392017509876674390795879431113176262355521301890707137798453787533348857341823115846934376205909526004124690675734879012630717119494761033198124014776083818077473434707613095202656736468028863633920261011196432044936290467860808910871045596539155143305029842670292097739559444663999044017734677095971842089317279619411350107952847195569917423907349347467016335613982976188174300100015703757229172214308708601600307831687521424856967222760078895776394288365243001644436301357754170337172482397399246993618134476637488474250203388323430690835152467576363471264140358185517552581778784205941849461013239395313024122447781460714062697467646038118146495933127053293470511527451835925745276439174051212793687796414819779208203669757386287380202689372649702941492624613941100842336575260109129858245686931384457457007981120938988621397740550103267593290761968139755593230832986380374383966065748618763469157790512073183220051311775514258599906360517335672244720902497690436697990952735319013162046581182503009268167727588957835245799983457151098847884583547176815461573630862155440805251008392280725670621158803711171695243838913846906696750041385151610399295655070529385850934278753292091368869502536736900801697625870433699868745846504857524311026418901983169230121608433647883431857140161600821997720466535412341992508686968192168553297524249356219934385968998320951549729239914599648849722696639834284981932612860397267416034918011069021561369363123311937835120302624421820389498784034958910372486767996347913860409626342705025710678313230128865633770791977113732431705155696839037004336986973617260553084497563164271350769000084671514173950934918242799103219423548328581867147371395046249816582935196072631876628277680634596265365560679540974978674318150586978954271880382993407489471590064532920646740196235014180890040527595230011160957861527955865199367229057307374643800335010097929813065218441184973727161414566802480250510058083028253493707269759157560044150844870703580757276108351709896758647749694685824995415178374740958356578898054478712246082070759879668654689348632483447206950400027013512988763721361522322114642262207942200554156231410225023106903686243293891877412823871443588437670414731094165517586013135741835732563015322438065715051319253520545409791592321041894496399672621709140522857904846454529968448951309985789314370263346629770248475245432549303184225151410381734869678640283752598039049881147697283730494702651081720521232697679031866078100969916075875282223266334407017015405138207731072887198961211713434435985599111221606289303907401499036610400552957129767811183563362327032677559422601778595284146492830374338244128947273643021211947933178581634734291059747479479669909690945314941625079032876897909182258349061041886370167861819105183472615177844822243138072957802916359401736516633776605671484214421972046202092076096597757256618462694855517222927729014004762045803674499287792831420084057384291621624741928929762258267038673559957054600853283845464724524288541971017802002451245125853489261991666755861598443788657935055270815970049476669824041208816063043433165534015891230684292207837974672373769176676281060011635584282988136971149139791578212751507612733381640584281449587235935436503966251979258812803471405346256114012512166606530239882201423302871897995602758346810555163877904312413756378629347035084301547617007570684976953955593191098564853889573866237932710085903445642999245947388251565153495948978855038754834641830100404285574497074159594606194911798026137932851799362456065258665244969915092782207536667949172824271166715326403092003912672913607697228536679057735995295469563200366688310371408383805448772114599463553790631215933431729317192881842884978657549465498846339384851790073239764934461729574257091029096441584531228388474128524147846013204531640357403301275188607106453288437878573900416453584053148067324750036819843481774679395140779949838967691257669627626420965110457623332863600473921461095286676184056171799779528511717023585421502683187062328539865173245207271658084156265241197899126624412499073262179514909248392132286365640226442728846912111206899151419081730839613719261111312014528477410869319319083056707393252186535622900771728559078552603333140697935480557633295936076392936080552094719992196736079040056113083565999900557769787495836233543642833344784701180945018753412006457459113917412071954883330298175993278334834109965480197708316885217341375670758945750024851247135959210459957599290308350156333980081722572371857878989528968766663449021360291445092080328040417367429924087597356851756980625834348220334461335924797987740051889811266899318249379121485450514694522184235907646818784261567024603804002303174712794057319344493163936311444413187869601417670527251399011295498481782294675009670834242387710562555509220950455405152207600620642242381549538414870396354961870290717889131527570590972997513257554344833067739364140852708758987108751572260206429363427988441289361710089625341731858978248069225002717094122414417610531058046022740511010698990681913784492968071161640186628221039720364791635972881808447127038899967589154860787961958166246095173365735360492481028718599793585381705475902736089132769761730347685293661327162105432113244950897768948456347178358522250979300520468130413193839925232180270700426626429344708350964726708421038032685095369456222056967379049566581361549967918236920551509087867720741271617000733518301938492626591492003132191118786154864446184041434066930976476288952228232493887957775571873034818662853424885603013109081178517446717789791280397943665037394404010670913316949766139226682415579927196270561519450752025254221696147914961243363837159486526565180076445640248419614464227924485978392173523454950521097841665440603255200892357629573703355703799914769602074796484314493142769055678124531173938020966681185432242182800258531999138900996184931488013777873893491547609069209344042307654583495188278570800822049850882534972380945127569063916812996120217204843659735485603231538501887902217367871397077624474362291185104118477315384887267922130978032609600637130508771251194803130773103517146701574556401572275819558540193132433422039267219882074873484566496600818945243844514836852144754005863681413371610752867540222286146208576978236660542299153918078483105157908825926022034155054110708087211860449912896535180726356125524724238418527356411632923437524959513356948485546335289114805174746456490720564934708873510608184916325004811562880662528556866583502163073042830758819370207895165864802633678938625456638398212103461158621746170099714068330648829167045050490021004910857086912341606811580572092796975011260770106150888017318248480425920771026130906044301367885733356856815772105763102576248384853103512767035959894873599395177310458182901059736255003935366279356444922050391785138621985510532775438782000199410651684534048910973959946786669827831890071759890780710420752918166279327681410954474433000483363535316752821146239375605301122509339467030293279009890908340979797112344367284340261953005568605799250080578617013528393737314399517961415329218316075104164478458325770641536376112611027237436434023029027515876480543634119842047171739090191587166486394812710520665462017604117324106687387326763730095344675813704665091639617863251172991837807395982402160736066811086177060742134173735107249645526824198057440637402682873982163342363249952093542985885018388206997939080513090703261763845914027744901336476939017924029138046021623143581530172856710863023922762192252954861225615486981922075034340458148867285552789996859119848376713641402916429861709914541350637503387708929074380599275489525265509698062018595832506708561438682076226419057638882608686286919699264305542341125679134692165370360369937621197586906305668772767858033218595732169360685680561075803126049590616105453222484956292948714332625582037892161391099232721413070283732442515144506246926221618987225742592883361660494907762968715033143015380454952495456678782364695450425067569289499945081152070594991071146039742337563111489222289725555346960909155752321404739399174209838533430529692889579607402350609854189065549396757566345187853500624954600904558621922385449739277875575889630488074821622715641389456175808373843926538118489785362127744998764449374454133955598363627038131911573500837664720248057201490476144493026476917205637767161450382887126280145972846508288865438910189709239832187773435981155232992554279088590922343914699633509671689749180792009062676071557331228882650747589994145203407174190454751865263824166412909363571627785528677297137603690303983266429205003413216489115702637781205678942202757054653348330669583550895725845034318101522584799365809429467143976127720266563611879170080224531527960500870965469870704410587358123348714887975036778652924680689701713781144081774377735114257081928520604097133132771299565796126833389554678822838195264420990466052534167015890589198583849923815666738738302904507147250689189551671323368166582045310481661611851836072715795867006234199571310498091853825599778071973634642626145209920921066217630811111551182160930873463653384368539194313859200314455732849108865059113304606439353331283200232054434515397438672319340885954774106749356146179905685391912287354266628354603746668915209666591894369942273133218734318787553242116843505235067195608000262965649070910630573695308952824213551212034422174128338540467407880045738812440410878166645816606454802775373941014406373132332275862221797226606850214095582379316486852602515979165284301052356891243122806085230056045614776597481221057512111002482518417172181221048609899036168813330541293254369285264463364953990062847873902970647226605350242237815253162184310599209761751725279617565925436119850742912249864155477626018757103375426811185417384172481702703867320549406077719448827739745365173731265844693886349046125180628582695634830980296892248300387862166543938301410742011106656789610221441909388729527108398849131531345099581551007123740529490358526237071531641737690165217746848243753958184216031258314264862814803529290846526840377006185272266765278702356683000121849066924566273861012545373603015650230128205465282071106472239872530399506773953907481207156799996329084601928046970572951665538737530988231778675408101672470851364038011496462270379479767902851332712026436531365392882917657114290625381927322803233919301393355321551169282861423749029239412912446177043252108824064732590126838457732006417878475593144499282945007087318530128301252196396776630358746772328596778642433067272558279171931808330321863927876340634458561586116344717905875764399653879853038456081703338157937125511898514976964574155270470857455314185321209366580559844891295995183656947116645312257856536330875747205949289509380600047066673344900145992541779374905345865514409418628240547170081554648101208346799335479948266044994663804909848211140697383304997070785665131162325094194682992280369819050402418528574028699668870452484885831174604276656073248357001130723403704822734439112740754279293627223739067099218038820758130151569146433270884900359176707755094195853495931352661178592951533794083404045200461901554229789098246769551511400849444421742011715160473882137083888457011002603716856454232185805158888782287392937881749724633849683019085319005873292088002786622735256557692278548277200972553254113367368546864055748250547991909178796669038184906331868546203414179574526298045729820441464304865130340006142301340477210669900835483483013601425756340478949470782615225698723267895990730713851927281496234364299478406048688531275179783042677831698011453268586893401855000051298732654643376929174172374613144145958307576538589923915029174064173770282825436884137702101758183626658101092873848550945542632925705626044028509210672820436831362205622657678291194341074358635782439425274518935071264370035461054697376790983793218587790020172934785759775847854882185583287910718952470341944508992693414240780872987073743166587196011362096094767627037470687372509846046881644256711135010513915930907801081997480760226773657489130342141728005646708799682922330025032550625121180905442590857773736561483490381173707207882392969208611480224363210197990022704156697241735162611678596962354766642657092895612073754884623906752158699001383896562262290227682575750359018591134262573159661179709115888248213334862714788008418001232253196061825275846489003825271532270078577893059681388408416395378649229552293829983355535567067788551853415002970331553512703307817987801270066094327617481169655947142254579201239117379056008257375310092972106353446578952137472842050627687815228516478884022226409750923293728373126796652919872725801450151417415892563326428248078829734252758755502752310235331058263696669696256266728829056435900317451605856161729608347461490147033419575412900975687152279783802493939146270615337457413443409516296790722060429858338677663813006191351783258679110646447627279996683492229114126984921676908339758101461441652758110552598968435308017064748080452490245490377717845216235448490999599923541323195874407607273146391229217331118938635215172322363060488083626365601738362597084320065638492509999945036286220561895415087018739341927303079432832060654807219100097643719830089247960637985936161596609312241993274639435067466905295366230309415606313533005161624378877222829524567530978953804646623821628746686771779281500556282935080619468220399562944361363427240457447453816943336651347647537342545113303804024704180518960932300639242677463921788589118797796598077314521098025870899707903088818738245790363858565382419367265281138792797055807861889913814792472624493375716664142890387418714497718481603096238691154256097633218882578435872824597794102528265207700644155097325429109928443212208474002326319586749186513758511134280444063682910185594809291867271329876162402004719505411620209299572250325843896937150803716993277562375676914570010213774568634127734412428005292831627564170622638023476289291639631104571429595983895222158584262721447194018174769049236190154265521903063446005510186798351099418395077236008484213414131925549193694945062960124213081204727550821760542736455523155261458765785909916120084571929149690773260255331521825551213550446141924333110694110125843165974252200063945265202670041858082865376314371315017690069253326912167523382635817253344231460399615567841256616181606114680903966269767875573013371054817458899229941074425790709586771669577359226141441891559230959863048308014785834903831326086283802959463306916896410837504950809774086425871949983709360560935604892840339483341404015408396433268707828881283520615476820573186696082067362800711766625745090199120091099941720796416604385080716873737187101675468144313262374726550449078140044261645064616300002397936422711005231998996150718082175409659701746276638553013999145809350882260880663776286367796511950997372783238899712020409258034490507968053099695704263222248816970384921900964256406156098719028630053955247725680496385902153730946374390480216276452301551202724458736616744012932747876509702404154491825164603652047942963265024641637991703912974108481097988280519232079460102597106934514659732192199245181264542100989249473453292470724398661009119731509496339687518938881602546025677876051234835134662519529947990757674096270214907720043788450777444854351386777850225916192997231975603214481584544222399264272028299767257901979988510575194462790077861724271169813740625458122670269766557165804430468305349074625913211581991341954507187019028034908603820544378414171994311033454251555706779140127631902791471777009327538549154101222599534773331352666529524745124144107415173347282075791614035899642638196121329792893900598666878236906944502209589818512907160258990237310519050704197801700890414950257582599163620711413135560297067111546902454395267850674969522915587694743556830377270276654721564270879625453899715067628489939753413790615674142550250654358109200364612819826743728822300739536399529910423529015606690939073811425807616735964658373151748074854272699537571954067614144867990409896921468826646458054148850070897502483345024704497639466892443916635580198489180698891291589355569967760735878630867122995181445880728182502380595629254598744735922348748797006556791962201115949973083330853354960732451686879681011042516377985819711437405586091818051722294277610273594901561462668480106206220128605338961402750921940174477427729379529698749954532159844669459990098391060102175893475775077381359986573644905911309300132295492591913855595346214666077150059873949486619595031848805082977642604337193982532210860754621249240968563949742297312352792970759658226060966256682727264750023876300894149831839701380520783551236659963242309454668203728209096138665429558039784870881718790021667813300276394338755356576955403166121001062094691295477968486967596878494534227324963633221831415230302268054970183395719287557661779388449385139280791913133373397900355924591348285572567449644554615935269431482561074566646105323578037877481968990862773466303112353983638817034670965620890897674322481169240815287648338254368930992249161038048362070698879804154715367971680390457953227650904189228040626542301372425877912494293406491345253958577442450871220432083026323418849419933803763315658436582880416385059642854768408817743365858761313242177799461012103815900331939074275427430405070343007844077901800594405602369889994565518528352941933555602468138996538283021131323961411230325971405289331521927788292791319928798919206779047314578949498329398397902143336077140364717712688923665388597736342604274424226180680997979050127520961193405161858097427672534278358383864267256314082925566040379055060040459473713910302019712158816132205068287974210386167879732384324245829771000353090526412479257623989897528606590065785291702126223974836880000380731708353536455403022752373437847223982277539292415693318549807337834021170809904293620038316120557115396905302795254403735808915119720595224497749000256168315926569225812645143710759674954287611568231593882429240031014476636449838075174592018710151853185645656448190047244529016969421102925192878241871765162113953553790736763952900846562022115346261261626278602861007568935579080322276931356739768489583478008688603187400474600936045200393160284930668421617346118485463123049296816886743960174954982632730357504027869167360061935258613282618022371773017175414962487879823180098231971272915128922292768610653799158424747902266429103515936354780647586253065727182737083533364489625583285680482316545014057232952751266081789840222175021227180660102863977297667967168614959037952359088629540740227322592355186811174351742046214916458350589784094027786135888829868703885020982865240485161967567296237600344251936933195368908127536561014748883642773970489405640603311519219538744721250817925591615281178491419867918049454287730563575183632052942336168972693585125543874793432110746806587229357140238862081115112151765973380123210058952681720315386940556770045051849626656375402387135709232327793522847842691619442249563584138391484931462662962784566336293022097472386303431642934354886466692034724809925570005436008774196722925785092490311609073941402640125891617210653101445320359003105879986547137844656162676874626792601122152238107153294423962663575534286864624737625797248368572820814181656402420397933372893464865131119792632917406973290832083526588152152209216110243757643446665150868987022365545089468840234394631645462389854560904088118934878257918137714009360520588967951745035104165336930487310274085653896023595280562871384152253445638733303363592630946198130913011758733613839816799814433171423640999172892124662547947763105077225166828574016350805779860680074054588803375600939020274688004498701840888115217237523242622977412709012211512026230704795189726730293292698529109676590780828404242690290545692264273930339292241580267915124952344590318000195936171525418939846831498105189868007916737902581461104588600569167578914434197837556961667428424316087437002047245179345016522395193022745220132554961847489146681916491373233636659175580240816148526372875039182236470493000391988869585281849574295536358582564979317968160166832753370966847404922150355540313459210394953863320889826356187258574878198039616919528250289614066363158410854852760358659561451290515183751465087115176914121145001701678020754938070863481341629760691295234133110739693625501182589798564709061407456602191477759634042947027170232013345618309414756591042363000643331215248472995340343457387666954137493572210060491227272303906001149830289922035557144933950233633940623881921969522965948838070891358946267521830674560870451891637381205232590275476095527166703544497380224300766788111971740487539320797557993647838333077977203298211637544875523232798051501301503512489870628817438636636968408931134885031324909236349215867062870476755688042909260265268739750024129325405297187847725079281969981533038579463909361487972215188078733267402654404910591892465296980587062938220422412636707782213098025154065647598065145589386748528369035995498477097131114727988530462871539007484092525885619555615066332980601627270946649469647146811612488088076045426222299950992882131053273095017687234985977480600619693560986001352280159825426110030656212431574677308642621040427509509063039565106987279355128738375850566809924943815691667197536458812808982948505017875101958799326379691292972208170025374928940629053014431634531594409191539787919121444531531214411104704004675285971926871999617564297708904330969421190745865496176604559307468008942728547385118296851100062671543897129712675298745382314653790927876415291793798122912875436559688044792514600806510647060803013356749959123980272530406694138587988781640402183436667160424588790392342403992534266141709060060492443307732729992354864277547393989292917628438257528058738337603994282368483111115348129686337469314345685247442477693964121674001691541812881864704095613968365825283437733919903572712334778498482943371176559547674335501555790525703568169176843836335193149617939787711641410038088530425681277381171907222349651662237246166755271729710425733559267346631283187308176171653035022739003179240730264590079182615826915556944583893579940996231237251781876859294393360986758460106410346926398490215933694448392874300725305883797911329954958956370519130836876582952784045926858855707658849141603909669128244457011904531163669725902224117966780428249705796363815428133157326990515116121684374147558576003169548374927302945926896168150179492497367339718569988433627956332200942718694771573298810834519478790298820389627285345299946872749727668940204579549159084311375155527336827671662811996563008588924329305608564201124979981660671678553509814608130701261177353361655637709321119521560919017228685404923659426622124061673609095747229039225861926675245784380762855612509650475088788412319526213807240109366316478809605119053619112970808641599524621291826827028070952487512134322194302783545022825617294807211982438983233530000215154906793321705666830227329087404881740083346735657072463611558400454517817681961560988730762561339587670695957306107342641356608410509406145136475396026481968282151219670834315345708466832190853380718390717788746490081884284457906762827367819048054904316760393457620443388137009940199992272334005217190341258055995278316994490984865007815437159065012046554808000117481097067353714372747732680474024971144270579971394776375995417787170580537056588542743586778610336193968442792892694042131832093644372316889664389955924975707161665365157402055991041762461954553465792558659088880108795775431742307310814665833644457435629232492388025180208585258131295768114245803891578895080286897467294249548790068533471785267737820402886795778020101062240741059839762440657255809413618546100273768453230161556491023104092346833810767983861640196456632467144013484971229250639885766639973197072691771229894869734696190549915645979659558715900001081944567258655535627923497253573347885716082172029675364194958508489822657154068496700334067861848525592616092355233501356948272331200836738101549905731537803806890142117323450858510385733498522410043327152122915532109102387741115366238638440253682101245844867188824833865052612063037640586262581437578686441840258415688747171234714381714881072595800240154995046611679102115831666822458996246149063303194148815203314539241614993714461893491565452526371201679573296708726739415391376029682693468548839782933952278110620864738393695255242397982573335879566679367225285833999812899549475998150970145376199292070580087381638598305975281384814526008802654542976420053665775196070528025707202466755894573471317957234199103716790792725649915486218577711280536175636759422840572856206436354078893846720893100418636566649247667181268307057810304414444439268163883457280894811654421966926772873440615543817051867784469224033152640879335526172863703700701788955400418995913829112125248516169041098320498204587534533590263483919188498337075662325571582498131108868499137079141980616056252846263312591802090827982917017362719522602322579647943725810680777169189322455480457256103567743988417166384939694591353666553009850916122671603979129580939068929101058688907953526625712784354527868633129666232997408099610549225967950928155126989292045366116500882837614704327409113626306968340897312135863408489366056157590222009218925608901713280183823305265587820287408361181206898505812557372698877462459018803586333205816780995888886487092485813392925390441898001744255084113564646177964411911285464075738319293460312926534973451627823893687217868912877942309204985807945390472374830484188164888956773372741200817110027014009641795294446478168612816051149678560629531778046061958306763138694361782517342691109158090019110416405604290187218606034930848237137799008413325856495086460762327913801309914392840437293752861100368196799985737827520149228372908665034112441740657196072215114129991258771811361159055787639077530390426528408527583508547507508109728391500982563237603322226601609665668401920044906664868834289964327787005815391327042094850357135585425861941999991076906683468720256928716494648292659758800209838664117380119767955343617829916277526208553038865871138164787689977872443466225191988968068060670923071300957479379159854907455746403864316635571127515363623757215146878491605137490961456981698837688912970971039552757700955478113623473304052706065954002586917012416584692498199190195479411467400791655602356052917015093074333717770226259170064235297860016174462438047176485400415047356932635685067884362778477120304968710266095402305219852826965774504596094732999189934066370219514218766434547782014896990668999327332219795702726486860444921131062905080799054189073273061150561149800953903288630131873331154028520234186779753708987555369217630485369098212477476644009502398535884912318535553151370884769503735892416676444652006831807399556173503102949810772536937036412327598794372263563344264967404991904791679615215380502002153563539229806070529595180636657543101018858649135894164278098531840636193107204972119695624814797598793053645873438437778591609986740908246042902613718177947702343614725437690824632893070251331108484157767645133399195014522496735260007006043413916555628364788529207653439317788087532648431631344558283550546026002167748923737484393037721274921267408954142181403673554012607109288767500919418500830794347247634809463936272966797198591793167492629661626904249953063296154919400425569280804656275497726390367075612496578132078778033675677329230034796363029116130278482991485080233508312708294573732945269303866618455356419586686042425980839293264470087744303560348968538704377506664044186600562560199329708579311114681959162209289443465309484442410335191612222680854215346319141308287282053324361240534319941178838689960070619675004169309228332684430972427176492032966163678087287882305050611437170422976606135382163200368873408077471067505426083829370399363992011274301244419844318762582311128583752355473051100363402983559783014970901025385175489306821046997899861737966076198630690433045144104117530412753822433422115399127794843857340960897651863376201062044436877258873068561009094649555542863949468891570073459529992519729271105135769852425710865867740562235898546645297700380140559473680411936303391906163417194585806493419535132254353960085675071435813423803042340692410493417741689228399687865653638430449061003245957688196504668472516195795890206588883446984567992752956388589257826174302745413758844479641179390340555886595313145446133791839005811316211084652737353325457502554423796719108539961660752801828378251981028842682820052500085622507603478230090800867140722931742214354503501230900565687357662340452916392473484928366057742756577537201864598015524779819823347377520776836651405229475369638382295422185374410128379773606605192293716146678494058625071570934302065179170997461266444997738342665351511682974674287611902600312512242822662980559798415205539442863517815464163279233434501491867567018748377389895983721340216474286880864267727661576784448763667098057495067893658392164672430268236841215654033911987772498198183588751050681802089690203893062013074919289125020236139593009325428061187453126775896042617108112046920729206886721748875164764121077008261585310624947994464478969216909449408016672231189464396286092431121397819920080983015349454081804832807344102615662414313056960352052202859140115345627699433813314264122857274236363984898871799547823854917624177538224890803456705115771382306589689934415683259818456158208989246766352163747531156760604489449787292473265265438483624081399479060729154077130869167976870518395245751222658814724798777328126090487612428824030477086888814518194228380247176621089453833284387481691491136601598904078144550756043165947372114651477756505745916676039940887315380848893555976987832047897361473077609945533172061868394906677670943591329468999706262315449745580445257481819307786659477856599583104651136443259505573896712980145594134737708236354775906728013690801044643225449972641808466266877055987883431244177002802634481964792883272403606247164219641657180145545763935897941923367747709890182045341529779632184621635972142229506915650972356762072499598042511213874453336050231039069588554771164113013196408687946012094395412814870415325101185811879526254058986804672335407434114904881319636059822454583317357057152241486370461173755023573607686601939012839277123683279752797357788161932998514792734059973168736159834317393707504186015118273940226069541694620014550976804340226093223322676434278945314597828532190282547090608768952725287133044351778326445035050284884474350275974851249069668313046820502888159503937467765699711576340692074128506927234144750527656803417979182536083385886294646518434950211458678189942272100399763864592504586625919680217504995582437983076210677196504719718190572862081477707291663338347223328031879414083712185469638164638961560432400204736569032304322363254055579996302622353989057276749730172947638677581014635247525645793228251413562563135117034124203474350227788940256041261403669970342537968636584968486782383434458945611532446212365723037563689708790245311100761703234014073640219086218809287643172432857974700808008473933243230678180840662782471580246512279746009396463636589338617272182854190347087592385279694604229350951688396467157705322994087709585643560114353788734027071656491874735217683849419629683107893084940136018553538095604554787646719014861105554931676433338888735076883445840962331295527324105478645570878347363873281039532762598799459216219067739995809398280210793852611854172053712085095814245616993126028817023636803676778846511026636865186522404658682703842658645749400131971365202916951876925535397650368338233592131799968184025076217213127619348858630346892465044009652771942217173239904382973506726333193521061426857697783674762515640476990021722040831604095502947575194717833302409014214586541300679428732354501836766235121851422551148932155787281869737665093196936131354353641008674145414691327874389636100113689579647568859625205771891793788434070909094420318989609395812549465947611373932087880559180423684823591170818676969713386855457951749113025478414403448225384243999667678162273874651716027437041323857450878768537149430429110861174577319822300531763920817518880637870197715849034552148861140420862553561226730892517615979907108339894040536434881429730007482453154989884466492809341573640460004168989991389940561363687096382963801120257052885331395323045790590702443153384104471038029969293184102556808153449416511440334420425152705337062508450439746251475703660252500407748808116483849042984499100455430355600925413643040095896828801776836612793546178157180474714862199485518126571120039513255076149550494108522757939133614478061307899399848172431386629707195083988358605376345462334243350764956412808864443257424256637191230195107686893859471596414357901768217310743407080046839431866776620238865443600570186351069406222777525958232879936696280092859544350039081571626683305794323428154176037969316472327416110107882409918950035223809415921677656004247978675272373675199818360763696340130550002164077964347470506343888497113029389924372448733239129766763863707868676195727617266417321882644873105100173205855162071994706174411536714671440754512067866679302002651871207242142388926167771770453447658154497611245139666498965059370368106546830044383791319375041866757200147774065872226026117290399742673934823946195264367692769967572127446076976659847834262827381424509130900249676260853925117715859764967382488522342860509494007892120905165835523475402151330805397329432395993369443950917208140589115458666659744479562051475049430608039812378686333281065021782327858136340294446990049732112965960277922610931293968490980470934480097754457457290504698091415825108450844872822101407514125453031690892979766318231941577690876725948360814709148722528458770156316117248662941366630616777044599912186002467603134037304369515250434878111873603851403718219468832754631828516125637345008664220587377637994581597596813326767862402152008355519830180791733797529086686981794517052897403927962525256497961266766538968148710496389083797545603466771719322376767030289727813440814556649622897679872141396935908747250190102522202469504256771023180862453714066296862512562730349178811875922367514610524935812031954495629916898898740577298471573399334839339934912058986094174959020666979472913073562353595624645766079421658688995352107907656075887495331060640825408230082885363480509067116778668262168378144056028145428616399109607931006467409495106038448022721669359823982031431974761879501630322458830001691770528832595129351095070189921982402622170120005749770597026525711878838632724092468605349935947859455633288674959444347163443275127739144858570079752095664945303109022537804165012309799657445298936553095866797159433137745421350410936930785874411201992614860445670820193797732239338753884589416553394584936856991398083169871265172639708061611069033785222894813660864415169653207463440755826654337380492194537025699698969958921918576002015317843390743857334555976137972543103315043939544576528109276330279432798557535938595636241284256128901098107169775045281422538567286985470888542870069623412216310059408592683661646324947339620733552611286704619052581382976145428155850943806845857114155309312618637622402970868881393427559014911671252013777305716458007980186030509455589534499714059306901727799687167735604025273712731874399725445250955573204787668005121214580346389636782078967844124367625274886218623915760902034556857340323694878733837412175877900436598442403288410229186133047112832249840070919237896677166183606655067202710242678525514314833647178742398913646369981507753421604360595242071040513612695317040667411113315571303448689034519695682915947155986481475909576138987352666391419533615263164252004914333506313210932782575256571813442819715211512529737509363098036991202495323604686252406707596954773042501021329092305686265826158654750935831096143758210424270268324751242287562379518325695794551262528138710131817689658700092417107679840327622545445160536109761940546697555035849697984706777100130275185546304770663704215096138539737090026284955709749294227237375227096718119488675179508383389071738421270468076597704610415852966975530229917925563751490838000843668575793131405667405363742597032625343995031354643235563466883695795882345558621426958556417349293750833093465146307281601155784196235239496197401792580076661833348702016404076241440050605430771667762579114812890114300188342466119294793182220775841074635716067591908019565984363644203458019210913057701357509130117019806013787264230563409992911895038935787519819330139768289764946859689594864708051138477731052343279328719344698295150278727441516690664889437809410102377107330293673623554674186807570923574368535849918777923345016664019820152620330908760828251888632713044283270584354413636200525055393462061326552152489168842485583864211818377752379344559411710085646480538524611597656826287547246080264330407595532716565816477280892010332968343520870868998468889663192434774706122394627556455485513794901997203781067299350494566337517751049827809031430630030422110332789490649931195642845602202659923242763814859870254084757711237709704212607633921957701728634782488249005230852883676015717042505346550461303734661532443157905680006429547710797461442333687103436658827620937150563882540742028737776633690337231129093365955193688505311305777773373872664785446148799923625802033617914594239786806005388985195372610548554208908075303626521745785457642583606722562891841953085614159622363813121613700773330767956028894722332505581419342873279251425584071187613642052068253508541913586563258242153773290952272169904286432569354243175927431663077204984408031772915477803241884664264924912901071686013263551826224591191855972401402441053984329382789550963324204409241733866493643826576516195771239092891950457992204848794485127140021262041573855983460173785393156322655220190115359509108647452047133360065820999911659202145954297633440976178350657651675581367120627151861027925530915255224602463460097679381551739950544431602925904450948089891706594662969336939558174257763710741416867172576596973701173805832496241720901757310741277420910134888731945004311938073259377214313481140029308244514219364233791130496372320865442254284424209174289685312105553593211648378097829930564169253930061389275423338301753462325296771286352686528354642772715935615120027774881784400672319745517724796448538555379493119276183199294199643318647864789799361406962631914139040246238752429612194288724625230104067213940924711019925060912346103751329743097341910068461142143273084683414673593375665877941498137439714796881069142226383595057227486081243404313943844615260374450277443989138879026636893159795128875645622385801543082410711595499553694685506344873934387211761214458819040493794546756488510889309221463570175974676376785640537503210887110612843874948784338704942416049482013408574668403752856337943257836600962298483394474480178006168852141304957118777600340421916807884884944234933052408165343062472463835594060053205213682977374154118570018446006345656376395876610860054175317423092594857740446105649373666712113370572147661450228509257497977450658594378448753666516719683068262024382529388149608274717193882909602401610267180267596972039202604514984437181265147502447359308338495939518018345959793529711119534081558025760203573840750169337021078792779384441263061339588462835018842687004859586069690545254025348037031178856911210411143822751195778647906957744346733842061358687286671024955947543104205050744948403994265435357176593825475810445772214684597193841611286422660431405740199769833340963549725099736661037298487920682164708559341311258519444564031769902489417723576971485932329234086167567387196590904704877325923336132096383610615066946403989047626935899322928433208921836827719326876148482889950546558513618154897821537796256145198730579273035691498190032141068571693103355012112612431410415407667734335522808548177086084945466053922155859917629959972335801504179224380408206769932698559708695424737872253864849079884262008447409265299600354537678343229188185703848454912186010098412643961113762013700542119561827493174426035814800839101191229738943803193706543833388486940210349092151902814572725427636803650580832061766517392025736036967498030035756437033561977212288259177898070251002847462852262539863983514797462378251218659241582260866011042627629600550465989265184080331627173555369175647890810050251918226101131443440775045177595494150721855018428899509392069222751998148417739364266478243160893920078911360397594813195574341541180489416888329017962182534225803106472864940346825575033419122335545823429107016269984068522092167693432387656169237581437424365758169613711840750000196016223403178956985589924259032719109389606161648384049397361652841432738427851449127292594935522099693965495884777860560644028254619090853540700803399391739832179100925224770967150572003462963948150590205111878845848367195226104282021467585996256203130731008964072088449081454593300718375937173289801784424518129675379185355682592670579935294103926608021395040730785478365049941626559147926854628861395918864235726183991730663308965717622173253527165580819560380955361041007963307437461841670535513697015978858848601019782783626676421626346581928389941647326885759196153065729287974021194408610933674122320604958404972523863434102286062623037167664195155027243231800509240042813859518400304081675556523210841815395664159042783097715670235692084847451770129263372440657031909924722479997325867818204130834233466323771099007934743738646405848412877544979320483963548829461788012421672260972997398165355410431474221545538726891925528379495728822708779740500083565512460315477104780687174845587743994948913301026992700263397419914713297553107293926222222378468319989012447325724628674940606365181967513495595690859190442200286419903106130403595090200152374218167794105942341145546723541340327762869396987034363933911774847606215912042122673699572259154170511742001232628844092160847582917122896312991116360289898878499000358855615324976648745327647926703990531487565596332881136897083099355615626646877000729757024491388835865805322136584079458129962349914248372459190388196741848334098452707652871824371119428825911998631283942612717713114025342055518712456024129403367410166696660730414920894563016824548832371280131150574318397981207724763252951251740817331211882003981393088508173389134423931517857865173444238545160405328297695529690610041181078947564169771722131450691145042983094239780270752756697388243184023075162734888115862163437708025354657125775926321574551556847792839316511603317314148928908028182292522300814998102761338687404300055264826770468980023481373343080841677496087985784359129199120835609282877439176724976615803269722309475736660240113887058922899801512316610239459013807875772266029368161493389336638630969297630181923954428415945769529066170021742372696949252766887928391927345974927185889789007572698320443788907902367024912784239686154533687501054929697370738454086241942546253308098787817930971508101155202125121653915452504618790453512045068877589207971559539241235742444559694695895891485754115483770758672957727451472813096460558773891240568590179864407026924825147233675768374374412159423049812045521423414655327596501796711890355252557507831142283678538995352068213824916737484607997159066863420553125681339926839406164981851656657357059882077132259454126453052909311077304993960836262666643658510437177811791229287681320003461083375700051765073132749037555658152003747358752588083387239805552548483386096659652610416683899338257599470422338189536800395183464151350737063335863344606933487808066705531624222029159748859763505177760711389215912614217533817289571243503389659300258024899991538008400108696335350014456973997871116044802815832991477650063051278823026830957936005119664268414467515960703686760512834842439815226836447390081621335120706306892575246489830224130754686372656761406809013261324254918869661599463242631848851174499758045050252081530262547091868232327194381853950898386461027048794713648314180910338371439334847323511273604294024309815057141757481157129685724894270059863391832904436316423747820360977827879303873595863169232150897192322778551966746669339356368925376027816201694003522904389328196167950050192877408035244813078170899022417790347969776387184676642426016282368377418538989813656566917528527941623493628890455586756490790473601580187933203080120541235996838114269647677960037707494715266522819325878000978360713417629840570420687028479990206673590697092118412444310198189320040328557812624223783779093437957931085220591171901804777072080299234098310839858511093737516768828308324390018194768115167565898176945758418160870786865845463101255107378211811945607605272900729834535750539000063593745131725507763148369604685626477244862151515234027519187700146668058667862683265425017289657206599078020289909023669097473538169680810557055403380125901572632575444258863421397571824038647734918286270597324216281632579413459891424834241812616054699572623604059372300730004242375969916375312026339153202265007300173801641223711848492991526968698025513545592107334315063723516553929042873271683198237022633055054266511700789650294840957037768636086442819114524495529341923522250949100281258281115675988225269458206657434209411878198528863142263524472176009433753563541422699002107497149438263999081168119343879132726621242246742374372499603127144113506366768363935239082463979351632515953981609430044159870131230777595357409187584143075629616953803481658157107785981101266892867746569493665829737992512453912318765048987224425840340839210209086938967248699813025435644367747705349350030642690844736364276045131287545266222598712555763352990536853715233649053609859213059146289921008459026093018824936300151320112407520274749427746823746872050499665519957775820622996457607427791430453984162850290347283905142250728871999408726490350634425326885523629681085372364288752372882617005973006921124566112302167368250991403065562790816092194724998829970060871534029349630629242982239055109682955645158486381598914563523322370930833364974625533967716321600904251846613285089786196167678878391492321883127080135711754235196612407461082725018088675861890653720597013121411762458406461128098657679737384516434647455624343302023102371834776251941929793729015600130598000067292787462186404751163326840162259976324107903028609015120605046857267247304324598565604637937367312036373173837865371540107176810948819816843349402335870043282983910934152341859151107433001507556135685023966209677517106017569641808133029429750011422228868468625338690353300315101144563857686967808485005629458165195189641026111036753639199074300340740865157922113741134096375477445626856750078947015608164321458024175916827991637783929818867362775360287508527660437764098639235893436261082640202567652164234005416860197703173439831540820769241529306627892535213189105687954529341476468817835783427192255478788407930152862204414808648733497355877991779747876246114674876902323105083892891514601561110238945981607510887612071312012480400513602731504729908582885214294328750199686998779675029825400417821607741462884934540670005331145862822550664128357244751077458667402353972678607286609944088644495650262886677482700745901231943615396952967331164811257441640712705680873153695280697653332337313352499496867806827877944284399305839083843348577938639089619461657944909862161600636735591076423527834251164254115638034963861468867618657845354089527117697723236830563474199563741458204820093413731084299743934996919842957890757135790547575154930970104005431745518055937767416987620561057818998982210852298116506644509543229685663694463955128428480297004133812919032380909830434352453963349557142980741152932483487443753141525913844901034149868505076611516139191500149252656503745925860895331496742665756772509775591872246662239462735782708187298591530811037211908457410567151449454539774858584546649624048551436347871594400462169867225277699598299742374682835894518848728266659228028395982338173343426425496329622917488195295000655810006427754236825795669857510108994050838470979831476389610481325758344899248240331210747788684062827947535113010412678632468540393131415660347399092093095334101964103820417914789528542963149877131262665539483095631465786361281229233552482999707952609894136833623726737466317756492643407038994650445417379464649032414774864601289450326753128998016625385576483707955640328632675341221483167725301894417794472073517423342744694198260920451001399960934942877403193690123794636484430006091444380126443232233481823220248677473244251513534932272553446126285211932628584964724205013050713400281707442058296914479321466891873667245738208042452181731651197261601989421718764739817585945231543705058106393353608454089298971940415757314879464451096424237284167558060391668088027852506608879029377813818067342683352342241747862879922182960161881068448874230725311718732045856683211314008434603261592211411058714312961525130603020684040504646070167471866976080088994623301346036751681778227489077079809712851068906575398941043063842753866290562017770791314523237287583221272656133087565789229649676722074069916783568326599343849549690709394898552395232630871367283146273826125755880696983744809193265878680710864312493685330294585069076224080621345672771694283223374545784132570979870461761334177689255982503199514669543371011989553472641929894332521860118895097861737819738615065203687617003477292579401145993067289720737210774888235947299841906641274493024206046774984560614874444766394630974110153680925822773414520044764938789635716550364281931506691683238882467917043606801130954589889128696130958543259115934370776819114206227900027422442244829130291102796447354865233581719500620448679815237614969862924503574375317729031711442380827027307615789919098421515747781776420244554371248936221388977490400957401863599389243726573597788011670047099697295211951506840090777557193548801470023463819524849545331035504572330077268345892393297010862381950248040960725506019917706370263751798510394278800303314339847730721066233719132426079112006751994127114468118213030799803681887538376736457358610717202013517642046414708541349553706826188340987266787985864130961715897137844223055928827335736976089408387892969804866454513584782271620836007628466304189271208910190147436322966866461917878676422374766009439720451008223601562038162652869992744775365868514125339448548143082699108881959989485218706796276844151125748717655181528133808675180909728751969456727452714122433565373409281229434107441327975784692135607878303064825710758759639741477774831839297406506960754457296891242923855482956352423420728435949624146936087259845307149096835991715966874804521040880821982316879774203789347925483477474991408113904493468491727028851515555673411945998090882163522319964136513137474448573935519981667671245857631966482728858324198481408105742388322944392133711204331838405423694423433388986837395059377037147418855108308910543245857077291231304066198082387995724369002557156389766304320019627513648447137920936870802248417426896006871126954069697966492744229699038310847266309385593826952887883988979101463536633939321105620920556536480209397411588870959362471118987072841205215586114349014309404514472425784478604746279347232308120453320572725809643419439793630658414934708041163494589445778035565051696705775187452996546716606708016385120638950868265485282277622770965412397267661205008877331763775746458705357660002140913195569891771422077919938549957715807523174490073649264600962148240750699943010469231765092765828073530213997557600274830400204303170378823702265255470411810012784758622622244957370301551703814857253596116345784056932463014394853216776350349680272187193417304273513020393552485935039191922960071585982894165801621970167519548908521352643833128415304947281866175393030524179336270895143018482123135773289508279875102375720360794388302408228061120204117721778558236911900409923866090548131499148412173313265505841689357424943086867618485090083255071320620033933822042402194966279875220883810591224261068853909902556547617687269956638501439688115317644292453616352501850954035762282471809826714366900406910062756549931142181827898598279582901447040430798497906709270468846132580699504804094795249744039966294450655539674242139794541280062727966905778923692643522764314531725598090896162586453531845510053048326347858471397276670310394423263431723856620574215745508147621578947042746802851256218970771856804629016373560629315050671884240957644374898943744800274679528989334619119867698110220909087600478727114156568691588368676421216865378101096834695465732162820375484343472959443716775895791665677209295805051585864924515084381481033058640959045491837791117991213607705791997752884725170689945088683303406961933214425331424192114438843817509519677012281370227173909537232588676636650883174083592634971618556458378107331660258298926672715636613317833123345472654560514596743921783943878226254570881831381148686309447498262152410978192347081972589867248189503400244606068321628343996881631157622439472408514413762154684464111050538590714341393044874249441950933288408660668287584335325809498517025637796909929032592296418895547614929913233094530380047903128797522560643743491193102259944141290501169841037698407830601379597877739281851611333814539253369690371069495664902299127829946474186681318178704197906249935146172206555469184507014446690107412368532175428656993521319626209615778253480325251811221219684381880057760995291483121613870200313320272503829801605047730361713743136288750894320570096769735666357316311256075364428155435403009687136718579375145331440200195065413177480841529641821528405211281667239027706369174506515183348874557492854714737804925330734073238075071833149405664581601134032191030255289389875517465494672180537312550383455300380458739439190693808594278081145558664356007141036034622731493013638293532515228552170758275634449167721711751373146908871391513559697742848007305414620234883706153220034191554282669522468801168721179275281914716254397029075734911187204224428997746476674325625378858776296279858400359250222520668773995097637602613182946064586171508453994332749891076463402343284394726760866061564914697798237550021979683618947020787799233991324952737887220137546503537359881704683078685457784933015615338304047168199091408717007874395797228519420705458521144818162510640034643382754862246449135490385066567053619146622888812518451875061732103285120419720073461086955258875178352264876824451168886949060309398978300425134505494070755705334988644820567799839566480457230156860476100184329761430929360349832878031828732757322270802232831001431930812583698547697116598689525920170718176190118197946431189244569444010512770873315641969078566794013857632347891778797394004427502846663577843735715476154687626943401876812567498511552621878766391865167276295221085848572042984871257376121149112525085334256401388247818265401019157685870433181711614963741649766897675963129562238689754626841617312106804203617163361938580564609630002832842242726350975365603862921289448526464293053444330738481717262459661618210839875589730412117700521133248964146379707146367187795210604857117472968718960973698983305045405183768405307220905954550075104627132119102976933217896579374017666035093121881156035815192616699135211774949708942588567955638002150666670588260419877743610941046661526299132869504115686673654852280187009253558867379788219653138854699582805674871662409033345940787282645587546199484354567609011069949049868805719565305596830366494556490697889065926066239675580721558307538410114701199456950916903998761407890762763120598652709461079792103358466926582143984666730556627771875545844134624492064082424058648914152865047798177563779365235153078994289482540434637883693430832787290999339143040345601293225701579573665014181189641464372732304957606573289434557410966754397870490957958173036455692224690182875305468239028543835258928919557186979045726262138547015601512199023943188387938497294889595276974715707649678209443862199246964244472338221087042636394820372176341928158363539859961003055955952635005855066757465285811969819398163862767965294111548213751046104791467663514491304860177676889889008379196988074554087785918964513030598425315833950622553292384424504810557972754487494408848187068561517817403765150438011686890075608402734967777696198015129277393632203952811594185170761360865686278861132842712881168845615080419101520192508920741431220654505846797412773045029336700725991610056397816846617645557138747567150899444970008810478868342836090756280157642559952662393715679505695195444672040612482378589705219851187759445167288680871963883009468361012397960979990070119950255042375141762544624689671338830760960937969259724417541560968845245235919193458609675488243233071917303813799183343500351262732350567949475246164823806774970825923768105865274557623116460201500672311690065038837607515856197386322495950984701323354351461082492475628638691291032755297907427704008481675037248110542924142997253489397543988235574794729227942425316856098799715900210902453815614013331524531774335059053312592610841743762834514288034358802625812019159412746193844267830123636021617526840810172782318833371809992789220079547518910083670854781948774634746991191936744128058226678071199976182735451158485776547357982496600561771350132864800541693842968499609893645345391954037836030566147467473392038044384662481729924629595649084119887982691338045287112516860180913713226025493805162295436708138495260322247328775971609636088461644802146456473045268543340146815790638551261317991837395849492794946807670096003917114604650425503766477510477329117126082360975041690984489206923016711333662584762616520445155886099189399960829747251971688847609336204292893550110969337997158146930078210844096474372535175655535090119377666467349362867152459603569827015266109988485333223798415477253561931314021276621781253871187160808881607765662728266244396422358888207978166272274540027356174369162054801819320046970340067421476269513863584795090990212933062855250814599930270250452350779204927310645565568608260771886085107899962188316023128094770998032111692735570636100206897785407632865201125975021333922704962991318401721627108452817695786305012324172128175793957225788678003780537609571390262625786629039998408366036236608930522117276771454768674461651732682529225278187268773956734663263164643095567121890170593522167435386203201714711975022768306089256474178611794458324369742924688420935354261549214290004496198627430151805226700288739498036388059240781905506249649056959287769188817728788641103263251370275663274365188085655109397109841206020354353946069453373823736059638512319045825651989607280114293234075287858122931394210931778118021410799224193276474644670415880108063041778810154307601587005246159751081080952708617355954546043187064235145003932274472219936049295180724581100661995727396082334869889845728871976722909816361467838027294089417816214801402504653614983507340828400602231665802789485424918669119759982622848008274274884983653851131174963566963198579668508325599416164548482561045765994387225572151734446148272394514370971276996862163839086105110679635889803031989377665382807639286627386152674842846596245135103880153859976267844848792503737899852782231549953707786527897690294448140927036702804741171942731968010281292554845980659596875694365605020553706970800898425598162228850857922622426589623056451573116010973138092458882279707807721515876990911150304161037684852573443255054206123547298121092490478242049100004126635894937490643449885191532533598728103436715046337485720527028373654091865704611317941185926062578293348312494476702441993821936300196160081588274768664117161216911132451704522553294089917788139735008169003656592689488047592173252529941052278920785484278394706152723944330438326646273192533001411785528657764859705342887623084140981015209153171636912429460215682654743913090743098310549600971895378233934427763221188628263337778765921675593903649280835832882541256506654845675441883864794074942802598047284435726011958369971151722968897493669012258616184117647424208427725756219356993288891712173880809323391788045671187367082321208080834075643649678276728865309598010083567962814959152905224555412466026070044683990377078672606636705653873275514080127338043879206174443011403332179734194904701897989668767186685795962260996406775744565776927071839524396371658858920732608493032453923511210518203903023292721567719629039448281022272014454993885019029527267369584075637168941815353128033822420303544784868429712368474166797057068589349706929539693140261370555573657636296532912003407143503623020664931026850141432955212394021504728159462382786434217186749921922618203517036057536083040052046564348259609612897384177895097076294886602964545826227909453547570208931091774271656541019589262031905681256760666087712279101933160929986536920651457308420190858221306569711831861511281966797463048868995009337649615107312927274403393365945178832066543673277795223570188423267182182505260546049500261081868743897608503897996486415025614463649009941804065010517947870654584118362010515881916395689693686132800793880916672974547742123111280416552354774382484622106050894929379560359071622018421949623330208979889466254128927030569443536638864959248518385274919246575382485967702979725583016244886576808438602210293961001949124091850970474057761833331330632994640146605071713704496515268171995456211573572352978333811365021054238818235208254660582297997919216469832042133199908388539794377221204872672838062032049657492892679527959023893905300916413085698133279799502445074625854742788716204912773288226285007689867098945053987037850214826743130736417268162886190743784316318265250752107578243812093338875651741662100395410644768537170708622921686479892577879158146462230319595551687628322763879378913957743905183063435379630435007179870242538749572075917541880602785289804814666493968974458754245321004994867335555784779835105476318519010987285661911006958768670132663188107429614963169779780045735970856220413679903210168021373983073459942054885384404833595184858544079069431090043849747041769835596226957363331717370191637878969395390932968250661274724594306830671826720346417978827928957764824803967538972691980975643112718809293048489583217322585038542881703657987271156563833521578863635349651160813745055553298775701437306974105049908487266222395680351558659708494871585954782006828554053743226499725837487854563719597763391544450018190005425290615054134191662907638334682146759736665073842176963265272959302521528763298445150739159937550782051453690821766897231655718552745298989263677469860401543902777869959534787495539423938160163873352690360211372587909007027167651994635440614162187336891956432707344780824438977205538608328184842346759509225597764452727632236986284395878731512625351110195794512739948966533218254892870362269143463179285916752449595826595857808406533444468375884103622470095481158682248408000155422870995012492203685308077297368109770104814092960199357081831720895181276981663536271543632153201024173877115628056900794778366393734895432451042430560146122174876998376636009847245512432422837312565557941667479365478852214993106248623983674507932580098115227923520654028749961325617293460368621654692829385378336627477596207628670069283284000292721638213845962086294151510014442014916612808174627478202915049735374541714172309773791128701891327257927938207755327046059634585302001380048039492178357732180772733482930090836408511808393982666234899629193994685655917913481657141920929170188869668320222646006882468178783189785550364500140261438472445382892747697863555550577316766768421590551938372450355432867631716992457414219461413027802276814741680244807211337372543009640744935751493833602689883470244498614208014535432453462810900798648755503492877457601063626889807207303093223004373201125966870702905931554872608577017312868450440527020136736400052421805770312041333465611858584427356412641198114398307775876035092514337495344866429098937489304537195303155126962677200331276725759513996129599927458022849134119554721260799900718806273448031277236277962091072138242965578722805245089447392395800296232078390656501735850971766667171486354435939016177970309590787527862524842782176472406751683866457802843019971467217382553168907340967131229117439222693531885420343698103820364525212362407065158932560987295025195085837769617292533187704862999566397449391900562582985079899576117719365451453879055772286547311955108939058115131872054478311642730473971129085766866859059415718423833689175678286665917710664714697525752097436314158676108204527146763194269989074355283921708251684029711837544474232479007845603096007819587715322253611613913188424469713948350400985240556175937118741989718176851756805735282512767443475978933404517826518596549128022680156090679939800147415126498321914296241441354566741438864342503906598555344035836966993616611771530859910707921958429787793223188733800684115284098648329359834633281840945161784683025044174153614304358303613821634351238333245663513134904923550859223750734393589081404101291809823384313651198875229506219816801280686251024189100579622804108639761015475289857122275873029289503978352110003169220561917332918094725993470456186602888743658583190244190764637798237811592629705208097205181377552019503125067255487874252883663627874200609954421360989791975884706343037015482508530721034084926016189372413008137853734099222920586640099925168715452701727337492910027409822123049588668895243440721659192187143244136308083317203183781804477606113360582536401545671998912869838106010050260694051555231721116222606255640945621000672694289394541203894345870022188043180734721148215105435305524103812958185476715372019397338486351814060395160011650913685967079218404223998450416724507560901125850239804525901020442946858234408966843673649355959307017796089530105812266877044237088954609164144675464693703778509639825523586825980072857115856122986637618204875677766062137677196640365353497838307102847818420763278289514457105973842406058472009954332475853134455485101388019029920924977139782399483938857054609698644191400308181455124523207672758481412437130959463227140784074207210889763715042609184852767952579357937463667490384170259016529242827037137304670741963022505473952582380674384698230576747610570745394057730906330928129847282506034848119132711745672241434691568406355346467699359368028584628928849185920238485189868942314413803760233076644233227088731844991241629053558545696854042577037426198021035851904715109511005380745485397461864066206647490029366807717272710182228944910401160052932103768656630731488232971581855812540020271306060763451577056988668295189558259782123390612906461271047405396246809840463057247207666110359767394870819779038114568783631978739208129335216651444451617677615999306315190018655420391489586248204853103348206780926422449875942816260972934090038871014432178647575015384478652531249549032907749156187398172821841007832759952180569548086358246829513954256647569578799861951822658051500189091474953159296524983782676401823117499801410557414339174972477393092812686053459158065800659169606342770028702098252532334667641790112188875629948353483008461870442352215516855534755480523954232803370017960441177441517998104107839468333599744817434262859117865205188828708376089058089578383747067966283560551974755790727200853053210829106725293186996899253370847084851176797743421894374825744042596114249767231921626028101562613543743777515231765733438986235811798464649239975873217250701849430355140956839833496170617837362565998566508838652529120088392201013772743499247589896900626616563151074331250729201412582284412417500287098483250275809116994415052398843738855747833135943757750046496127774069530819786365178269902447383593622397348832115976399224727482177371141192275686422692789643022081787486317835834696512034447396294972317488145947794742498334761894014339436896774552804563607763491617626996229380835667057710336549168004532246556684563081556711657069849359802932613424438561297429797439728624042323232074643849506273279188126235629129422873904782741329375270340257323573222497778813138906547327301782088889585447045247050944736451515900265711120282287173902152569354070901592017322624689289061847443156736400016518563402958843293071075302282408875692882440982353087590170301904166831480522690026136695204038956368355707598239834700776352509403890501634524141487724510039548938238407207521145106741415671968201953807255770483683812218165947615807462908760416723154529641495851553875381851490309319096062310570980329022775277768964383811506381889738224441822422960551258440250968215277652934765151354160652627492944587847241023971114131247420243405333150150335866418593931168362721231214913290553587295003620175183521324618182319506055108297405097367174323789045666136326484179645506076587733749924147945473014562962471660936513857241928891465541434087953036155660851740667730127374814072944106733429897699393525249846856672917901679533162897738527968230777353482612673475096149787122968386234824049612615028006147962964293434647379767362430118477000012836834541201194253633842649228664504330923860472811770173647262354228342688423051644134740943977222157675952025287823525002025615271113123688478246181090355163401993379150359386803066125475156504830052679808949094252051000796989552956533746920481470124460978497768321270142805774051856040402642747122738231852180798940517521472876437883142772603454876668333800227451624240229318659117713734294364723716445491519259268732049721565490889362083607689203903285633703087373643758659120252079864681687549980611840385491572256614501567917596682198168466071201809024333040309355795931186329273696758958668170645657707315476907257946246025852554928271927778881158703179916317267381427116078981180396664895090724755182060650475927320300806186123957727083142984742346342742288758657662837459012595745135098099015254766933687015885641758617288111718585275142867918106413614748483401543755570918880926796286113106503278569629385048515383860405989429978923226584772984587516686068649489467691127606726114220449674832688388334940471044422170562585568253603405065437666722881644166590383198961593191696481532404430269676982924705262054417213528664128501143982289628751971018097120223577842939232113749646852400569525083464827044213363760766327072581376411423968758797713817704062076987777041810696200008333569612666371764020910089122190617468988017246488468809053168653823936716738788173680868962327828171892075805663094387341584664849055802228272048627854020344364210328859775542466334630427504906969601908832683081397593309405570758653622055665783922444496151614139495804543660233774688146089074034212445859305153962129802047556108925791288959851371752678433152216064301599574950655631377086519580469925588193377137210375455921708938191774650179670443222288663856290620614034044444856391317720319707687960521889852930495990057724772964747058470827459115250015780585632285698965777335980691143385523017257991085026823464102008997548950125407812527648766558655735643216932530212317005255357438646613929990225347165784061861392413917688570429770786622944742988935936361430170108772855495878014715624331996826581546876739887940726262924679012510196819456490028009258904430429362676924744902405728837491778870237991901056833248979147932317276374026761491563823235720827051646538917319402287178719145560090474206676549813778409443814953095267860362849069680675181592892449760822329070902406480437709775001617782991565544294144082294748372366214643131830402374985233395136110826176217898979803223750963487222337396789637005410510560559524380570862263114650963103951042698709823079534681973137634501986550552743595515446524898294169936311428459815910675851392574891268699008314301504910952658114854312863710476581824040162418168189841721826455449696131961612384933501480378262102847335740405254811919484532750337876145154608196934772725904038550050100831319048156359857193273145211370127931480933639635952693388965636393725000624945385420635758932483443789069759275337511852108307443337622919387776375749470066763440379820119154652312590614464132605192030751972117461265270468803001838699543812163816905346296913650934402218837401958655563890465333534129522089149919400458317614551244236267480443320476749961096753226805346063012770947515068239848324587203081511139492516866646649390562951201614612790079828444523035510582105540601807948770218909883341074899357280054046537026845636487298768332483174665614019682898239665994614312172312448337583948514594941653173824600743309425035481812387546363314973635052111130654028554807571102605921250283246671909799881909032956024343233053099101911730989320606618968614803543011007014854580457747581787186740004309328574800335265193320705850661138305495327618202551632546388518493778583077720467536472616650384597234077612984116209852065601147074062730672756806456530192951207554176723018326834567367405721374585030418767401289295030398683224644492391397446443629254416399226908017367213176329996984666468041435915122306747609626710650877316445367508128807932045297160892711668377160375045537052782965211088843891655404362427135140217115075547620399314008961833476868573324777903790161399503859489840191572660744585411994791900765193346847496007961198416463577289347570565730944522626202648778030772720031298086449178873376615588433734427506367431077242561001071874062072776846100236356362721103968811628862556705402400045589799582145830280973357105811315633005275167192466037519489806426586194586536282730728172499368231999659477953071136662026021383090196842372368109316266218437994519266428440141170339972118205216814495294668427069722528884156242307633375652450482173905275614831744391892462673228172176568856932633053055747229079884791943159017112290311821946355514274437240059850201139188227140626003021917231026584637271284814919504448474230717406085786687640020547770337035138838492728135319778182378173941143895317317594138089843464108444229955416018331752404142771540600456189969825753091913425603096148745479737102520253207184881881608158571553522447407465096280546368280736502931441110463234176643088633129783372251313486467326845891966591194821474728707209844215903485299110461115000542127858656981345648720673178490967592355557837013602032718377880714098530098684342389868883952858970484439982363458693031957569616879763360415986953400826355596470546176698522759233964587520188486666982317625562525316658050791343299960327769986854836330806253396968469037446582454844007527885831552399496072806019840266952126675483029365714306289606283901743294406506137691603136108273653996407507381575257649664605423574970246602104738978245400643815879632796373019010453487834603449622633011377781871030936470102955278311434322583451366382390454424609372961720686943685543242296192019650672307818982950246785327459803477572121024691971588390278276833128709894561998414236959406508182359925907463891866322168031215150022416474137974667176214042693895730955159017716788834856734031861578554277234631127839490545183657263009475570223156917106267746496651877262787345758281396506307892540698228123283558349718805628409870050926646141708630047240054335867769635399621781201264599357265393650516823215728393610154676331911894716959904089589542201432922927166251956416968835526494585242046548361086927323833704359805241299684159322270901813681235133140292577393194784545656041241524036926295595421756080095798500023238893083889114041596060393313329029143121314820691789813840818175927932667149931716742433723676900006481994917642478382678014424982845061292613467836592722369607680921093582260429451618549887278219661682437641694255108034221011147998689392228713299699261128143696955376318429623781397716430589803329220504478543407988815845399513272872809108451994503037000375621953788001128614599851424884275459456431015079423305186429948004917283960093294893241258711652906924406535743169469428518892855137296038088802235187777661709124027366943401187134968068646103459046391079310663970999964623572616580957149730761705923707922694542089326716474681774058327032528220201987629395974064621430606125339515129680228029523503488771887145009647418476706007618817714164671526092679466628713067983619918329396416225805146187174084055335898735502497338352131997996554262954051850498862941687808821805316812702919851035594895760115961435328716988700222870069749691156166398531963854022959627426369985074373936474590114120209319857823444939308340098267337377909185488838849556334080249470578996235562662079273817640628360110095883103980203725164369625422390029185334479427671889571952941255617939487464917944341360669327384666979730885458646522091204652199167183204297030639395937416234675936188750253799969850348647735326848274105875388986125390211428677473691097005760526006177671410720306770650836117553812842584359492277453562110080337724798150200241901884175789397786512522988615618487304379412175468836259519082488382270838987510111295219395503588018789860553428910103248510191975753252865436366265830690440490823147307174850782772766467249846805475828199589076083433772540363974044960621562435027196126323210241911765133013550506990480288625138276697130611959537433074800180971233053894400215164522977044763509811303781585635793123485422636863485729685654437104765193785926834623535119840282688431555358482415325755668883505844268830273725115308011077265849018361551574201222538607295440966897370588071832166106410328499560230769060554165333412453046785398379803180715329466581269979272923811656932483652211267701784955717803154294386705641668063118496605331749721178095014375946317701267738154609019434984780137628354144807860638647854724963578754610159187895777586014988561583988200379155363296049300796095520288123951760144139550342991370441758522065419608755884742450714805277724123359545732957394720131818970388861407298515142561374745160382365590298267220941041373740732624623310221683418972112587048273080552188346773046915997823277640103272150099084349096208663274430360299944895108173976548182706325795727364810886496040448616590499910408408426948889659461480743169428045806554978663190666211176780569187000326833125475310668567270987535371595448540095833240845634956387723938263882701207029363514374118547301688814777392767740780112459524297417516086885935760533711017954368064099938542514333317907528960728250903771240288045379662356588975917512118879899031142112576854475687391280769959951599202380637026121799083888811585517828336030228545058682448161645707779505467177533536721891801897619159085647606608593580805325970937863436991748451983054919962416540140157175839057040587226179136948414328381747772137118740002586756257211990898217742172197113675388062251069350673154437179255456534294714063073336799124308636613299176083293828781558387184615916627188094337541837606846678810635548383846348973809441320780527082222245947253187540228629630296207009988499874842094157026854596555063968950402397169273043334066039105238525778812534569965999593506731064379230785170940211337537384285951866017472007386156179235584704544159632081663037010610704217593746962408630593076614508205159605792917839797791973717833886251320515794879305665169793318197945852638876569970488941661890384089622969031179643663079791853074595033226742066834700540759440789223701221297008711575300430425371408171991378677567465936278767935985077392954078343614646262642933020812874800848729231872029600600591351461152848047665445916427713497883948969527125543645605106887095290617950192473368658968989220190465497500457695834107516418255631584947214297077593492148689882613666891356927367794835448537351470051218359128956181516930209709114330017377656935889524241923882907235807152585061422359420088011893762705940457516005459722126620144187772455709826661095486471638500268461122636452704641439038380302555324268209669589982023479287271661110146945414823303235257858777293282069111927667028831522130427721953553279523245972831427852137184196208402434001820606386195698866310500684632381137187313426939130900944218233893322648263611669608444790865373437965892074123119982371914822312912240805942737547923081364775096623314033673351393815825798490898596703978970828174286886167412387572271923011113334257401430931457036969461703772067543327881522076942242115778986004366454553205591361702913085849710049766804239000966346749423557110895980344390279814238359228945624047680941433789473474370008961319530248546075509634427618040226974051393138374314905076249801545648728762041048778039510927848795720762591113496669600404493477149728665000125855762050145072111020309189735738097398273912495206177056354510234618228582937294962491305529112111689222181927186378398081446408415838353062740035914918840287914288531533233657328346816020720966541130436941099078434822838920290716402503160100616597676017190537358899915572267403861201112791048246459510335311739759334740821906923251372514134421230061830563994953951331260088005868732231509615037906028406897800276406154869184587254778880791981622529609091856188467255750330692096801572431176961986577526261080174371712817293824882716807366768996459292274261119954150491735264779345419868554898659916929779673288507206594044361817083669120466609085694543474476750937068465191589740216539671908454027926966951974220975995783315791673891817609682977573745623299543546008539688838993638116319825886951491284232504444874334434157124925488263488752207889344525538522818106721260914885863347103499443432559044449112831281695410315479454604563961452829626603907838519683605391361567469170211881346336395312495738881135306373753053560573701458833439257777071287545512858612371856647078477954430173925743461744466151172875653853978625898440017268340307213807503068699468648307091047296005351981047855465074551087689445142960668316189006431789438674944963248236120785692867940039226848716247555326404419769730464559292638923251135508776604979331727644609586233526510959338364624045900193146489546292660513526087784533182077880454937455923880166841063640480195940499153633136011644961102693263943923785564916671656143239543534098463473888536374605952198940154418428679822390125255058369486584218895424521432816768771867556058430927304586678663076745695004482019600274400221682375068297775668537832941061435628669549617492203260016577069574227193675847826621593755642739458413928289055020045337172113825624229904549586886843177020100561383142784693842367904746002859454894950649896014486565454735438732926147348174405880725435743009581336934424807028092891821327296499265224843993060583940698318309677033661899186648414014821749788844097370882256883767505508279926122477366037467037415880085337776918614956218446786403172366952655220351846190543006177420050319587188672251496186109016898863779968877411757230825813011549899801603744659099597506411574616241079679108085520503727185726686847786902745883884465479719006082319314763375164202333574530392936488845363867999687986819642066250259120455778591688558683779934735077492417418199484669745049802289663161548422013537533548944766531514905394748841478092189794002718495016898195872840372047350935478504249291304862715418870146985321994172826121175921440423117856623620409582580755944650405065137534040311816144464098971198048465004213502896704463019474653023742781365097881067039008755920716401581190277569293559710847725931208246569281416333589627919138683396936616128223563246105526464792725784133652260073619362487690307445259378869237123675906011763934995907526699754121033696227772634479866085228088186189583305288265724703625225572276610331434795452566485214688839658173664322722230752410848386572856103337668951510677937604795198685941947062610012684790826140477358184900680065835710011535437766032906524319873065783115487392981908971634863555480215503409659651615546117719823559304108870878171986312314706082511491287182563489420040043919407384348868756240316853041225182701946651314489327105188212442260863963379550208146874665443655177111410044147755645202456528415240927076082932735398134027671834730742310147316302868972275194238679392804384139510013243658953963343997395428075161334457308938902019777264499450278473478638505094681756603541088202782036133587863822263989550669311566130930708030972460274225093189112634112988673964224411863262186772083597233831422504653479880631896623277611342101685283487804077308030640341015880413816127425613524655493277821559015233244848495247038265304605306189676980659050743681568523900774867569825849481212174789821527048638488135200605612063289043101029563740270998197527568080154975669282213536050287114464248748389573771788400601722292291044738863127128131823863481118578545680197221095613159802005346793689269379228723582793837374763977877527611387315928647933419222344156676879792153534670087170801179802874707006173262719705777485595154444576806256692520797667295700463028128819070392860917402342403730793362208221060743811419114602947327246812042528901808300688427140154534535529955783315254862784053205530550199692360952392445182111672381309805451025506053907138285161473578601428021682339802735996983078779769726979933341587545721017654905993909320863324233171806582809580937326479217432451536101100247319344787423148963134601705380832196954832711660709929239057652815450373696677363670843034646262329675238130009527326539765889666887198408740543719279056305585347222735797751668511014865596938853059596102250710441343513381073693204883630708438857606954301773517465194620211085258342439847444476635261084722875047609439642265279542453825695094689028479044258934232083361974813722639733964235230997536810440125266477332404165142465772246185152513972993085279417074243591561556841144126494926682589266612165724845940328443470003563253201381145613343880894698302742428843941925386282936898972945252423356503305742267777656283820816422023459379239215864437233302958391585796217164987046605360535449553551049798904941897658600013429788769551294668083300377233985043964315125740135926287419072686841602630379380055120296336538310282986467034167100364786460992571758943297135098726948730105578520138944076252094103655638853314963307772255953110840238850728930143474800477794956017669801766726126092590582215393846617316469336331300433297723702435631510781815711693446580139753999562988094122768973219704763898965045390599294199129933990828736515881293962056731292836468385233534339380789824096627262137773524858812745436499850243388794298285729996615346433217394624472384268996619938172431475497706509715460101583860074034887440809535426839261359776315480089380190717658326839140789451072432730797790773578587157114226427007092606899119420578822119530387304802473270709287979030361274752100596409455922170328364771451634352460874873395728505681446800898627633583834064060670893698317900730497086571527875472765756156915778242757428893879903617890920595789666535591803297591982258253600911672075971636214075031153221032470158726892782154985845000454364101250156073925913153997514039565334678343152612416815661766172779770023926119671087474159558782307254553712982219880742715356910403794203709758747408537209609058291392035669454917970082621072621941196268117784985644546377741074618197629068961816520946245155297744564446647143111822127393130938971026533141873615228369077639596768110922101896992782658092506017674635093312300962370248208818555692882620676305623902352518085918948975029767372330455775069437017310957169469140531046552769906314710850183925560454359804626463118143477132422058314162266939944790585871020550194613536360171578632038432773868995752572029772696481145811981117864965796735907473225474676506834397410613238943234982449639323074866919608580879894354844613635795796701107793626241488968825826754137802870302893878385222716958700588244478847314580920943830836540691872638535836087788073808974809988600134991076051341969657527380520741678816415319267647508995205580830461289083666797579995561172950144449557079170719400538149642432923284067770780979037132513035847501876593690314831096506461934723798652541505146295976431180381586667340669558264857177372199051701095932356307991397121759054567712340742936112781859736023481645285743247419814833032160134502499432080185621911874276161833627464515863386652456087004828419291648271476229783708139309373786218434390309478608522831171774867418298645980859103245978005323869804475053858344376872741087633066605705233876315551049148340919248890137871999800527939885741365992419128730874931195648572623164021135838479001137917745390307295564130069306644224518364579285933896969534206935447721338953648091910097781829200764740895726115959969579529267999144038778284550782865962950292853122277642981063190503260645261676499630228795533779172635865368093793147668581004873552567602219320167779163393437168502772048217014908438587822897169771550188715285633074142074686986822669484187239722666402594707570187623626683020305842554144214122500609349050507119252635716260254971818751592586960932216249272740035464925479029508556166606534997411916306829678772470459408926324178646351757422780661499161465091962474679287584548395158819474713668950802136735170722327636863758310621010608886825248613102695891830861778753083825768559591612043856185960162695654627066990182087341844101499103820897130032070965043618684795969362851951531419268323325998289730076269506995476085839871687748117700910681649794525028670188948022668106358596400404318626845879281977218696753084355111403724999704422425138308095852064860563153210818561842848220058276570793217377656971959842473201258356927435963528737664361124298970788932101041586508510013904817269211334178206081319195819160224260934419241903889707516356140252368926543564694564219117111436790834693679557468730789782859717199554331551207330143026693197358763396609738866147725763660063220563825437195511479684491167453947833846293070184647109667378385792320224994733431357164979975211780962161016593791111347365448690462090679991628345696986831033256901153021348584223932499786378880482521507956754316846454138518409370702860145470441657091840761897667503716814029964502382884671688489014950535866229066344655694141039399185299315828574926647629721408034950198630539034471787461642794026197976860880685255469634841908715375270822371876902922131601129768144696238148413928945005806080370419985040380692429389577075820846327345743555253535750570853954467080857759392254387474511780706341741806522248588088561956651053432096086411951533969290250144428038473407701113930188958759099723542776645483638233828832486896833824640794138514743913515233122404102474309704767479627628170377343771072683717863987752560321036175948314779358147394451262361670313241315725531666470121020192236698358081278207962951963540385600532333356221498017362464791654856637119663576394870297875268342856241531610658711623975853305646784104966552513548856366034677002857854200307606904397450972986542073544738128611080393722537873888744590329487992283750238069968874389951199555699445397220082626374241030883730664831432899364157773755539278185120811060518138062897244047307344145826387178805634756173646285183244230369054092947708177820793536083157527222343065531568695214074153179778374465104145184792091080986973972651049162425379946700986279168602198278881267007044184521300420991889874711703721574732409612938870002591327696605298035500003557485471388500823230482055600968092342182119723845514538671816274748655573633454533395040654726844861043837154115140509813631179626702623653988352579994555839682755515152131230127145906731487283923582629470656895912431654706905749502167923382497114836086687766668828885751740766291060415658001009079054596045873950215496724389558300885953118237835357035209183361275699018614184482216011036513526278668692859429568994245664264737549576068904420614223840148419362503685442234154542248660322001168148036429640313233359046440843618461277296200927240399629354673028384219524231444540103412735223826887450176351090868977803971032015816892123933294292462217405690743991526555871524477353139808094759623492619985828131494253787632676753716441561989555139487324834671577280433812956077472603240801786954312159487198403037945491427960378260193276341771534738042300076548972719361830853363092533447079149740756976051617109758410456358604268434444090006565313872690067358102853178938566754443902168701889093442211592254012169059027985829666978871881193268840956240758356150804111883905291465226865096957523922238465037685653141573603710000989962111740215082359857548790151244596147612397224366935197632390457057505454398213791267699781774352706744051107197818782413333137200588960223120499570683134074041175534402047532360755682813235862886327333606233899328511689825842431785389019857766452909689917426887728666037912653755832575071979810177504081915339380603106724737278714912536186660156068862689062729972726787458608326680648406317626135866957950371663640217993339773475452176247964008432624514450200523052214976413986133916044630797147833600997893376257801878371618854857659546539684887710366807057523480914115919530707330556108094116199097660055497477560571818160120260182706366359858813593246368258526369364443418917952020854476359056420801689948667398187632918902793298026750490118869248732262144130542007778474001321554235462345536674459066475677139119391673514893293659339418022435663047225859220292238532835009669454589821405989637295417375456856034278282122881317215729829871385475948185507897212801429967924791156747986263507293001424423175619841927691178521396479779300195526811313841162670465806704630165503317419919692653013106883451990301882847116225505731293833525154046296802099392890834503726671731548718505311601344073081254631086733886617647949479509697282112924949359516681667692638134929428615424922283321253796617178201874093910477601388682049341491678059386833778022087235251699761863350718707380500715218239888109163018012700764482505074211921221431663648320141107418355293646141915000770836691598035615233025168154425362290263621655109836109113442177022943174881022158592201034118463917895397731670221148315510288057243965853650134213936347381351852338989627493986105710410194738869660056495140539376313455581540147001466665910001386592359775359666613308487194688489290582534674636039350872192116351677605425291998540581906904809384838637763316518671379564008468219856174087458765016362742420785899917642753294162874552477042511770604445552431756547888482522888179223076043457291199840987063888295634370612693165124288999211421951976733369582156565455388359163363091444403912079085973329839407130757289967492737544373313745987415710626673703078639529078219744154884974353310320620176931230197549353304781199574396080866066433907462171036854494216844784765997482259858932316257245116883329505412452959109357400827208169701459616337078030968395448082596272674065767339182991983891829690770520962035100953618265070178875453379829315359733144567633394638039388479829594687845948171204948532203949176549123224367470702551415398734314637105630624476690982199517911848614108297879745105127512306565447760257689982506398822108312904436321595451320573331564717159847057964806046109164790735482206826735987757396706510734570385434778339245110441516112874981772034985154619588107408671816070918902703485642718607473261793643895945900671392513548043182779872324739307799713642937279249597153409910955015913375073046731644627894701868309356174541424354504501923171719837743515880197186187246898568180452436292797125657770338269835335688828223917139306184595576819572789291250223805793449357452521130443985336613853589317789275277410222524518440975908943792145306517522964361839674712130565522377622810722408915289910009765993605864573592917446763229222267222123934487605263071329519640653256787379651850309435667254543530686979330813269703597506234401536908902971019613021768982938478079169602802319663815522679140973818776826314585799581594030730963388294466037226251268246775451282496118842918254487217789466703833987838574339265828665756745302107307797291970299812626666131209137028250191033765321126503450623340704851246190125331809162571658813981137644064191626640190529083356402233793340197753508734347994503937361776321953275011515090156244752687408681527879908535587569880885064626316239162244571889242640352984301955695117296956975871733834352159082758456981774645480852725634241999741267563547894626497182844181193999604680494644800052462381010907078169166095387208184287478195727487109629437020262714229812974950158448387148973937487838275060535909120839741883873493478083068811859255744595436620332288959217874164899238392561019053094899285759434487472547459752677599373785234942286095251217321144800501873423858890007921722030452284533447994812248546920977491433499427609812243548879710485416924489685548612006628499337504540841647240196111809885027342595518861897622560371308754117125673811472971162832977824920920879830354119155766446626693818127284637917421671137340803785914835345949085728516511143323098225154436063401881871642558025539718552453660814827104109122938332040884249730217411614891875284972111469936436683673905735933496037864361909101310388159560443830124037830571009571786751254377756775825850614988964782046172584220470582275807762266694877805722110309181916248578560962961599462056445067016805754472490364103683514471372552634412115200654493753470885236704630998797792822808578684704990966253589899234279963924144842232272589808574749924101163140856097817500464254635063974030429006040461510223855259715551205413968973493598165942441482075296856022771143099095810081332254370489660507505125764700636171679275376836294564921105501712207164214276554637284541818633967037059379765240913856655699287199791387403768503587402847981105396081592014174630120547356793231834910494564362405802636080581387122199725258634861067023952855466626486241475890650543573306510135487756603437814253323450693560520174828016448711516962664936945911688094557921501869116400856871101603187020998493877606925078792676893492108296102532061033800842731772130487036721450710652184118180748098191283583882179179205076923206192670515068668275543858599008017771216316504422619700443229864702653244898336670658459159533310296519104747585119749046145913380981399467479756088112996386926872152603204850094311902233339412075160623702075066518406170589673377185498892947038221171101763878768936711087277391161889982424518223414525949962203638001989065274866607009976139487404491551933009182115184773815503100692441651563033004326671871676835498393746905634607437077399557003683461590418089393790611789818262414486618167516831919208792552656563547236855503857616613993389662600190101848398056598154784340888380933017851203442279229537206569339088847519877429633637259806214066083391783311431066080446809561875809735191908075389996731955416496614604424451147032664283673957153396603157470387243526928746443556202974981859730074632342456822203987557187095718674386053378974518175510492663561301481027065724383546996186192295704357175461563814123604771228520528346384999419141303127509572288194288262278414237033428886508273831900550502132850784702288977190566375962983970893385916046996628846964045586111553843950469381102028354399777394244039916907087777332926691236712816008902520205680140073653260941925357566142871140833750427209871168959333472389023030805055573550597591583324231499106673674385898571322704734760002374668409114518329818790239531880187600204973769790841082524407263325373981145416334947590231931582956688561253506041675987817317562944108286562380253477620734083665862373287858255993232770753981581602265169041760426489694546485564782622002117371489697522873520905914309012839121909365579198947040493367535740388359700319313830022708679556366978001156203342934812214651888499335190737036849999064292776924442335659660090906948655905950702649833501224649733160337319161238071370943218373685709667746981686660468006649338679446277182497343374485603597231749230943779206119594279232237298582711064538752874279604505044829728244920904005950982203648677139751650517438184058346659936774305693646888377908482746480598579556139217143599499717429893036037082783251520812387994431649478655449033803309898959842402032980434852392469338360932993600009818372987824677658437958993587977734443593303180653289515341067156549804759248765305217581483495490162522982790502200949517099394632447858494274364641243262339487290113654968226574587521944409642143247855919304891030223685698223586577600167436288736177677764803370011839891836670855590927658547110682530110796420023390100125836235702262199425348312003090092310605923559162124665343355685752537499761269076235829781586672090809831120447861497915513180798193525801395458479651375255961772397889579572391365090395302664877566717775407668680814697191338062766680215325184326899188083260461480175976811324018150375633594543525389606252133033206595022859464304365006001998330712855842133896821872398599435130204138896413202558871721533667971352518390932457902178100230489238435622725439069463981477350452273923314428247709291942569371160534532338767596965364894790459243552658055285957863276306782622716095197128608137173894370149688359233502956525309276959807065032322681168628228580023987551872688177485693794682622408921562611564757810819342750894695060393228023186593293340971932588821960381747734494992063624247199792508496208403481619201228401600261717677545283358961031572172342570017806042613569102102119584905331687912237879682950644854750655675396766514955279133310455311697322902278602188026632773240947323572559995768635528668498145698365208423999876139054383416717269458372695518622968905166674244873367639099230145762684818358424989052000345166286416601874663091246492808491290173594187581718359664939807141306753750762186186281275594029686144657558747282563887082403882846047950606828364230459259644959759446528147483526018404130583321318445298395672881547067012211695573983900793409354569181862951132362749083631797415822153092372131620816605616354993301123823514985048913857108581856082568820699392207885142792822889343310247442161538347037595775742136454287446801373411441988928803235235024056865984841260232309839642098863156890412911761409935464010336684298459707371591136399240953192773952347795993279053442673845101186877009204235232353543594954666976543348352254843144017077907363239513993423821959151059728704959490870859312718978790834561614440177464863748332327104727326553693180489754375594294991777667045298481383667072452656871448898500701655495508296528022289039775353116990861112120685343451736718686350982298571001803148655386623643487980521904814076003919824744006698710923585309049656473934666744722494673890164330679158729471186083046649557697541377247907096052175744049305608438863670693196343342341316335593158924011575487785536249294309492506862185721341081427510637641217925060650669637753250851989067005477381447953581320419097019400048997636233473819227256466692444619139733329574010351740102610131367895465450223796279115425583584085226293742486045753789795851355912216151686057691090092714426401092258798696356835528464084189621837246939973213574383069058168774548208320304194548703002112346632243723305314819267726733329417709500916699341523541044788537865607737284802574574016785423099237265302963238797320492146642588409808384488534123635589409443005388463946190258904490641528127877089325491052525090727679709484081469074184270889968361148618809449267646166213799835222636641351577956309932293982351201516707052577346360604307993221101226909106876345378399798315714214015250996170194401336577263833163099531273190524834988348790499828200174459046733843358075718743219852510953343416401336834751068183267704557996538430735935279354132632565900153538208844525864424426291897774327347994249979831886298094113652436300986938869197949840158386151634518984381218824724049857484233515078411831604503019163118120113224430553141115264805987766231678142637519652616599727782770318221006999716007847212851832996203213041677984684002815970122972025312413038288159977375886036368414911020344691359353028730857492399135460498923937761862489856975196473681685351327865088937587800698426808125342018335994159686787200071203062458665169689656995513499941357585304084658270978132745883420857048865843767185531568188178291922015276555382284453117832786095561042998373477217248430072231473101663388571206090504352282644780398859732606599953172099817403560654082975456988177209050095048841002346233244013011978564440622724725346956321357617598906582752952502013456515952115395699719178960516391601499640567130106152422384032994087887910392265796381640812120828609393561778997384500205649634505603048056733025481627483477197310881274940528288745238496386011466327487638043671225790449568761385033011715962606225590438073140468847501452282643913317742896168258207933887082090221389626512796398674888244664288399817714743932842313953319533548915802474920152301187282119860715006154819675756273881893680490914495483003721365812151266914088576960990023078427929608211866873189857526463339942179762855458123924927734561921322396767173527002707706353444880411705713277752046167096112628993274190310682946931204697415274934718626556557784270777971852238605004616806145119060663194232463913543096418887998805271649093424380743324979026460792926517326686999283257986163728030518021398424087191159585312714646299064105476218440413987987974732493093158388432534411441693895738630959137943350875359743864155666737635707666258278087111834950882957804998687994302023041635359208848538704167386584628338135827074350866537143337217522229769297343909229199329675139547871433354753598764605508008937184193263003268176074948744026298555391951302935642618056946377980647965325284989748163370237620889133701373942999025991788757315616303700240993897525970454102852283669272658495373324059480449812319644338178236765818369092378462990091756789018026514555093808931492516409104869832941204041289276957422751985534769655785479066222875665039925065033487469539548084866633899138855449661536446911491364246861211801480138789820956488847578796782628532685512200903433059545827914114013775386060871219764150965611016512703544933002597956827453516434403224650956040651754826634211034165975362759716371058397456531738607391981310619207154341245550634577703922815325443204577654151154229738992810345167614138500854946542816244269543239536614501737608963354362479982458350498058466215094331419957049738107057970202826244835613549943577579502854469316827720822058362614363686472306412038839674033290295456085458280843211452746455757826860165111737966441131939427277001630075532893360664822494742220017954701800538349022393152902740400580712840566482777122845542722978980446374946367200891972459933473091087870691025873033136419384996419206536814290579060405935217799935851154203822397852007006490010616552094675379786344926305979025792323836819319327208899279343321766156066901740247302372052482751333515944982144971349433050736477145304663399689038177907784456718710175645972709029051891636160577031066699513333147498309976630907922111985837688634226693313345058895427037131917301788778556503966329959912880900141231943880128210285842927875451922534259100823224126590066662873503935805550593311354997668805458971623256400994827589192674019062559750091451131159755999454511177228770397216621259234148367895954816140438469792711928322831377123485263294819404632498479708199588466438176571085946477491729953715206029335949617975440860425339835410533988593202296470097415908219821853286797868136355619967318779740276025923129751849749865438099874855557993243739972990447414382555448103294612587023895479741706767714652490586963967184755829167611662183696548614377401432514379491795692274215250049030596193678934618134169632701898888400439360346373914855237645229771478665425092744611515034271136194791180608897358808931428343085716220575939643778428771802267647561483057767793824333805176495846414302613383693008254357242073418360536557188619972342003819447465958824316756306583361709551167456992801667137123787605967041419557518297839179769531719569081927548924146971373605576643573048239253358102021229429391523865217285961712052734523617821509957001989208567531479106182688709649067136505089925887537317734115082560112728565816722267411497908677643927954495693191592520562571519826030344114049483395647268282436735773890252055268081547771151503213165597116763343166587158012475817879170950452441519457454373933381245554762011223698334940860180368529313102084848396661756753401229999260200896485181721488706895168670688374780140978207704791104667162532518640829475484400619230261956980469548050345940637307509862858435205865327430773563552205546611942335836460765452502588072770422150319940148806274646697868801018379721287856224677229857824417987503109443100982509103318627649371172346440874961766119430980238356971111520091613315499865668247536029654271682637925127959469233749612067692312276975928481236983827437400325534487922952376633035935172039786833666499446830959837383191466969140030719107246000573940375742595571435903546699163040097715259467099257512337270030464598302612840086547634360505917187320348569098322973814999377734905841137500465108998925889383550895328066193150641083082120656347169116646238667990914055603684096988866044337588088942502211703704884907649035659382679945025158862685766353744674820727850455069166103696610477202554255672397102121730404759896911549758822416753420935497912336267842944272032508896184755620743486225271884283680078080874332331659209217497092423494351266410551760244187643150714632970062320501150316320369225655005775173477390878228086633821681331999427171338086232542032469374778282694162754895355457776768911431897632935858178060385546153195767811684211697389589827632688409564420976737761110887616984117282502445195510185758877492896732981940315911838343700247510948994048795170242866486680362860409189496174139762341029627165233083203214716443227160491135447495649698243602447092722876153164245105438504588017933833857110051977917520032772943289002687702283739771019556979783742453045935542468342551540708764341498843260236890895296459066272460415792108572078820572709940671449727585217985810581369614324325559223845665707878689661986415076382707090632589926922289277653256901329980072747781722185972206133170625287062479569432900971644182890977442585202895162202217077312741518821070959684939146055197509057956288623452630952947016393397437610416584507305499243078295253548283726986797941381503367982670331031196452041543021374781226528703403860698336921284527678453184131399997516890020277070352772078481658039574740945553721797611762538081703302694614295845253371980944670299434185978050611088280661970048063761158417483639374695013771372816157654411425079833447364613715929301411870479110661517395651501295575031308397250629052308367159744053439089798044326914011867778097086673079602984159867508357898896002391237877687465676584256534034199643466235280753874277302735794825302365220102531414322900185849325814186234606111761407975860563834934648908506008306586210823938177019103101968621200324478707268848339957961642057794007416799664921291045684619610831663599911034540640448856127343770784319715904044038364531839043960201089389298525611750329157993225482378089738171234301366886605267645948258169309011092063623548135951153037123895229300057244776145916910225673639517321431405474043468626812173198590177339166587416562285332416702826486343142036762839964994655158805507278919969382586820710188167633272801451621091367060678826253840669187551463892900259161796093859669194655396017151200648882122522614329215660416522056333752822344750158672669529801301399271180399719014303088974887628413700701661220414902314614820017821719543137286300076378746750962776613435814998935185595721071353004788902562243665019977379967992517859561532771672921579025450659894115563125834767291154315649380339282925305646729496512935505432391071238855142053202477552979846795901704625252615225106348727774329494740009510337438784075824908886980135014437801945432869891555416740896494707256692863840993209812711157555339909300038289019621435910302580237395244196555956655863909081803895292921416449122247618635833360920170072164126455625696361887474215897004050950427476612178916817464606855981352793968207530179568526799649160284721124434870993491226024961248687861175165968426580792212502389868012633354775766186333688750696100610879238094501280062570164028047527101034334843544092234212869465475225709759839153811382687036853588192544711359791073303148968927612238119854701487616143819268268007928017332968473316387493530286714529934166937939496909902302283264758577991093706333524985592651269589657204238967546002519947491337573170677216707689686838255709842992399429353576313681420468146015563352724476804685468684757793930796603409141383845991209367019075284310872103668414222347598451278642559185093194142209032707174513605895733050008678713925210967387259625692573950588745070956224420244297470790643600109795041055842703531574745634808173889157948190021305383383191916621403117699854512053270246245597096365536309087127925118990300489349730621575909714621086346337902165680022455841545701334132824066257957418616299754065198692833760555901851450091966265578671451224003401587037155360389897365518207573562050013865299583376330654464117864844652907584752976846162979307237570369386544248517629722310929010281174591330958171103367792705582411795070768977209793302625065538902167633139654784889898364371262772197474438979522164849935588805425388777822938816989628104185824952201006417686887244628999168387406487612937999905483187505828013288128552746928992502237493988705411722448175084256718770860557015308634047067070660211412075811260170569261714613189648373099370115133499377730962357658752450494930705369890564709213905073053809920277423495537073577862033200485839242982204544935951176502988861541273364097454349062858395844025124690946907189476290395530719518860372419399713135354265050816226129283002347374974446434308601501393220973734436283309607488223284767470153621390261815815189636614461667437546019507870366113648774489469699620143735372944699078807256760221056396725931067526754226412648677459953029130663807961996334145764007350557642478812336579618481089668574584419440987600553838799996888411510682299170701740531843734218269586741188448674731099317121505581989500437244819237311913981400503007306736082902440542737269089269393997741569702928430976881427479697583235619601022540859823927425057404395714633137552489097177216775287229546580561506532847441187851076389319375158078111098985825357988393489632274970358232292055432197812418722591843754702173244724540487865134635099679288845775635581281132587906282028477557623557558882460456227282747773500786956512033114937127514713743634255091202772357243122545188256037143187174870090763599860635931149787576358338260275492552949713652625871381153879764060915803697721870393797447572461039132878101172339225124519135270107076705483980037458106241327501246061951282325549565777788914402505872059121830621488538591718690792459305345219848798488207957437656362597150382157416142239294551400133266957312236444799944408449834009290678358199026694108856749779026646984678560115322279560356960614701845550210415916790612820408130113095988720294594822997296508456248995646902296260089298020517162805286271243273880138072371459455795491131551446671289550357292521855239440448576904976391091047338909280898431870637655776119658392348967766464338666600235531875038049852082434974409354146281748491924774441680712498835804753089409345118162217906184338616266024239009689754123880662123358552790330605601747258333801162899260870565981112558026764892137785595250140642629301742289936484780674923842408181770990993622086584717908589402097346901582732810114402746874156220865955541682718968861938883863297788670311231921523033109721748264761654351196448405202082028178427259547558330929650380076569844932994495122356645302232808626885143198866989521510674575159302848481065218762334593847575262153505870939271179890259429099697335990402814865269010517068968912532755763127223876262760244350936790824192205057730004882856125790969488303143748712903606732568605820411732068287530733574048196498341337410292015723922212020514588224716329767975254043589764323939076957460150931062068049990147045361766815641806404261180780551900431027218957996730337713820099266699444118179075135934073965094716533127219890175716014695190457439347442205536317519972324828199700923301703766223031071155743702381764758170009640836621922405517671539468334593675229945125344467776084386539665240215263787047798835974025579554235336495201736972132779630997909962808784564752697372971610584768951622540838877205951069809271289465147614536966474877626313342229202001631656288937586438951973907083118939144744090937286641007603059199309657667703280981054375364613406722405345553779611161595198944756280717044071431051303509901717987186191570378543120250546493366463885893162810825547350549404979328102270451984335363341504735452826974821439956467953687520146869819007261526623669294512871323755213249338569127825999907370463779109967496200225475520154871571950841311468431503218710941778780414304525606158712566183842525059342135243431065684292857433777692912532167188600350083076180249585790748753320077420065764324739370964557186054183892610070234776226900895365753253007740013219241051989961343079803998333040574554074374881865224805766762568039801991193123490822723395627605323822537845049341217917553435220855386249158619158786747338180840829083684796730439375453932335865244595159898141135889486252625702108714117065603190680074852403744303492942498476187892403636971130519325880056328059222208363894136619784172427517304587457545218970262930154734589100550882171900297376040460807510449399656647209781708304316902921543030161462022204562087489979704682222840158532180626781721565626440060719257435699972811148799968380134979754936026647064576425156628783281560151454316204558696648628284695402086706032100901648982725260199625859275666570506967071566996382438620101468494968267035295690173810175536874840549872639592388406351531104989883619333926685419759845130132008711235869963362729323628457070255606890790484214979134248865241582576937633818928226400047413575703079191424502761399648860600894116683477764381959458395393366651134650247362333657762536351377406685518789497896851918775648828323284194257598995184847280712833872495035269659686697959427358087377567442244783809889637151142344916614269239409053912853006452102347260129920649338877621045249981204352351561424618762422915564423963732231104665070082140404089717728412983288239860891900899621442516427718171274315390334674573263769676773519263575531721810117252103557920160937850135894851311421064403332642796723697042813561570708989967521833785620608750278516778750120986027051398750054063833194399095943082658066862944620450800741331186475975607368543650179647485126751669848734521249077946570592132303903669623320867268601957798091229367054520310580053347277165213265906196615494644114070931625469868500690311009101577500749707262660961960620822901144609472537138454156747229090403495329906495426431197602226245767230762330075177685960481214267494806870695454077595475565640743833230103892003144049986006463917435352019315873185592809123075540188506185275296650489031463986149826971565378717971743352077361433989935290078247865164857954552184291809345038562099483029117175343408960993289911044142718517599587585636662298905421729914266685408510619935063442047397909796582477715855447313199313055022103733996767453830166259641897925538865421056930031520165604049469403622898650673625325135201887321907317889017493165947544077265048301313074213156231852683933247550896880701636514473060679155726503976584896466921249398115264234185979929819709826999567543757519359553830553043917742691527841808870558872525451694224770571020695752943290879267429653814367392038103380351570902376644915976543688354423430799441257379271019056681865377637072357352143467391821860546368178634444026693303385659702162165676127686849571723649821231917372611605163191174447336052758511050975104337876991337123343067195426990299220167007602082680481902315127436113605569616733908704536517977691494937543066932289622367455016992277600099103326324242688549862741050228625605013347913936323302291499584214916019611500519125341244522811572668816402013984037713147787599835220063691729393266970577301710101875906048532507656978385553890137442103559820293874387969167651675958864426440729424143688689545437297450704561850847681331279609958273392862150268352709735555704695327429023312734313381396532251269208334428051933580561879614356954160722291225161928013092342277750596340306873347344383810872787568114332404600810019101409964955216212937059482343020802239136110860249009594135393513537037967326896634209708858646759707914381352833929200456990011750383987405172241895229421401785922077449039004757238733923666051248389275965512699537723660953124358534974935775170852318452868045400930126501857843348759932352125021512216046139362368534585093533490887984806786231354626701360196833641998906089931035414379392394768328374413756090994463412111154204630256150319346913550692676649412449753377733055552216961081676075975474935121671117946639768457788576109949481299094550934434761036852057548086097583913971527119048188913233152447035234352040895540155759384734456848901602393965755788157216277397391212544851488084766156257398706288295409057824026294385771003737132017127573244070560032398698666565225156622930482482106458218294744428215277879015537191799212765752937536564163174204915083873852659379786470421114725758256535127937338377129186525533518733871257794565235537681812028796241359596215660759291846768812757360607805656829855466354606215001719265866553869182975013103307763020435591041157134546791397986515259173399767590165595977257163822207504327785814612365146311921108091698104137139389250459789558137881112454466431869810843717192509709792442595388978753467129331523268353440991580933601694717865436174944507411630878838099493295002762676121926805356292367655639854301296078425778100933235736047110511992248621645622569814957687117643577434863510644183995557851283099851889165450920833436823447215908479339598370314283919608221745188318950693799733943828141708679798085197607154302792595432444308790980917157085333862907351333920712996444098985773924566926691264235948012893899987264662691714344710537126834784943171561044234438068531361382929984196033480131749951205351564212026820625259477088005913139473323457806624652643459844176876860529002794145626861832315094669299212846322914713729955443043218532919223961710608550487223683478356485521203401896514048180326390782343224164606539607397515746740201456200262468577436770013741502555545589601990291185977397017337592586468131983742827153031888786396120533621205505389947538896497375206743694652530038933464492969215865746067964367346095218749414073447690976827461157458767154559736204674282093961366753055336290459930391641287009097043975942560803029709431542455906327383265961511357833815800309331087097752673860936924097730771234493208767121914013728954804058392532216926727751881749492349567934449261801572874681406416406797683180715458589832380952717573489901280003363967640317172133950034620328612258430234334395181067876650208206036834248343870846585991744341301155387213029188255756083715131876329791672537379189553622147132187011457117107260770333588805087897021598778671461476076984169050627840791463773035910404445903971612349256864181704892078571822401242623700877660139528310167228859794955709393890304477795467744814668946416350995354159004699419392793365140474468657338880157753210946621179472038967700217013724394181436482289949521145865045772810010757717164956224957822629218011339867595818657844993233078607064677411364561306572619024578791657387450383028337866903628850184026335060966186084501347922926713924114170796354201546770519006239610364486545851429896471565400450605276157826682030618468042173587765707686821981835008312854467977843378944179780255433699927723788621154417865513545435990650759499702859662602378702685777442169266712502454400819180898602427870643232723140078303951196439717605138529297355862774658975088082399590710050954720841442052839245849911435108706317391125650002106453593357246003147903376793897889452674374079979376931850333040305444106275763094363975529505933634197301544067468622346229527625215486283411515087791973063251991784626889893738653565557335155493933511869451837956458727893041788006756033964323407046353692435138878902223819496275234975806227928939097029048044814715443569344777569550257622233248228909710753385282351872793080911368189560016490216608691837596266452693238781218742696006978320535193763611167450545138643601482938686680704356255123000662604572001747523049270909270598394217161083873473012341265812485446977025746397918973881685447645477777664395677360861112243964172975972613124003237797926019474181477823007990912995247704859754021863080962205610728609601301245073777121147426633700919064029677425967022201795974943922329056030411261991023406460671328053569995726362290693331840584071127487265971137010819579411536479094723878816297216424161124821527053671820305723109665669982697382819343596622984372665251591257730430501051727704571060321546930603508331447418224855404335452240370914312765283585639373998313403740484075273902837978009839230856090973933975424597594960972010776781195804512344687470614318187583040691428678528366915195857457346406537900963206761522485992626987441345765243475712916953195925073941227989646119761698622870142416414952132855985282335981938977595417591135776356012181421189191948267728258828400484531145143924835928002449651337711167285479130415441599167382833015277190879432921854945157387332960404414903074318728586247779844889201502712322877272910113786000089522591672092253140073068209414474021176847080393760228603329716546584760260814924250930132549495464568527336125864490900876517903181065118456740354297554470043634129238175051441053727158596086733134929817963658692260108326061987472722538496193263535924841334855902377901369115298579773613161013953668888097201872794012948211948822973260366455827140380355654121277199207799626293152197498661061491703309950323006509713118615234233468490735037360653501712153540605007158234299038034898110986875119759653464738677191797208745164020834238206458227643078979209893409528950466718423729413895553670236235072929330801267869285088475703321823608356923201721580456057492841829696028034268564802574574418983224063859789919968311163404793185278687479470627360876749015898411221350069767246999227032195413356753869539108084118323095622690955322639824837088843090989466589682315510153869383178918908063186218869073957294853742309362943997999375649995804155713770609508984142628736900290683089999827918253670648162951357551201827011982091371338900338452344197941138402770521145770925136956987076536383856695395217249503746111223047986866415831615295276922698126411376981800626614464095657150827715975214798983201372963796165869062572022633343798402248511481898008180059376023971612611724963496572829677764298394746413134761690378466549497443252751208049410638817816306963688326074481784900743768219028281996696557017331811901994424784890563881404950307891758612728773109152805109390322540398202896285638728325106205898159445744430121138709032175209827652451559600468559351114528388099282083383942500115645490358649425045531243936000042695698971263309758670123136623006568528896139773982980724498320461272480731502900748520976753549537167150227363401016376593735767652434453498693612820093010482398076414113773352492816769378202609126715626100937214970655156313537830887150872487672025713203953391182423791286025368572751301715931203376524391090712285933359051166939921397531428673672811422804188258065472204660357678965891784455978718418875953060039155719104759260488338067393784131068389315834341426389714753333158979500881811711283660518022288236787874010981981104466616868437171807594916471062280102811479431775328363011077485495945745319278500176738941179395267596322181276261710084475483866202780580884498243391435546458810112636875871438069131642839361209847429802166360039328741767491831075859260793939190631983158557691901964936386298611572222448316942234734501981800461099075022924045744746309720157155622627530048782378573855836245617845699544486284995108649145431343457194100284673502888497472319842877097757892292617648150716805786409636885525768501745417043549706637936833781172548394674937758466661676749291729540412233332526934953987248221113187053700599546546944048530150736616962676332492659812703863209007848551741558750687472169965351627942970336972854517762507439375692796165495095936362600604381553815298404084740274683840449895816391990990198319361790388760259117177242498160766082898581654833261877417479288669229038260866813937975493047534726605444924814289603922842772266928872209063888839154618069508835786939235689723372004381875082119761036245691963091528377878191717517434330573398583385122348606449436613008691266405627669874168703390420281397286011369108896045430096312244760521237475483568416008077364200627032796519488717219722817742278612989478249776887430128412854144352358590191006034871269322156919370162722068290952895889680038180358144148384632594965732290472489346321700596960447758794753057992896250040972942262537068555891164993573490347634407749643865045159000707201883620990827008749606681860151650693992506232748473984550163043031064273508725509213896800872791208499656703725181042125617924332968871713478948999550277721416032026183555380001712196531371598691116306086888266504101130687763834522224452982112511759654045512485446703685587348458853768011419397552240095192422245676975797967160400465598016582629855485036356847514365477561165023186080164816662304851940024015661374344361925188934628360744803576987075621590038784952129478822090674332453930901415407970294793046225354025030177507585216009025736714348770649763119430283278653218175944448879347057465032280872302906577887712491034186364789750560983518411082699926890440188988217694366434410395899585680177953523213539780516551558839060018612046519057705542755823430551910842894860774643546718358207885154478598095812126983773459236392110393877469544915688346149192545268522212852350022946100124264234560542789301143956564485432685597810011884894681899843864884246995901784911908548009019326375350220360702762686039626194370427305569650528664571578069424990595902092869182905583191659219278533136017387850498445658859737253889806352457326528197124926421746491847001864053079246857616000777495232772763721062618339442692440168342504339583566071842462489743336072919903956784665773830388873753755530475918008116214973199773686211329661510939320954264785494033010954142551087349408939232294700742802027567053490143720293206786536548070125268399390997485562946549750651025476938789660012936905805130268291025144730205126080717719452090395717608324027958648515791458153033436993268407306299320882485006663632628666836083906002258445189685312926437280462914968886312078206706206379878287025564810822831610209365640099045688656836484262725750024593440696013041401842789251292538915396538381338910354886298481763450802362808029676602547139494529048684176113373976595121266362999266131093233435011420948519433200175572791450796802985316967626392238040737311466022078403686123387627590652769374297599245901266548583381640456031206588399794128322666910263963651071235196135200583723171430474668058701985844638298740725446853697843814687327592963981840073521180148235316980365859735625533048915364150633251172722510982536071806600923780794932156634877563288067383185522233565740039721990639566433326848783880360684159547543123562294705662281010136563939142331456152961548399897726597588378042346969490354467855575077766014403409334658666728633506849402975754387782167436273437952804325034978287519369002650877042845538821201736435085446111773266030023764607400968676749637225169102867939182555123966826857089627480976722519061098110396568899089708416671938350513735135647820236775154637068992748476118306276503827945638173117562524923536726074779589691230065549825956001801317277524281862473077411465393844287215902727356901543982960515226188114997152615060236038690936251521856055951612359272493137196792198337246668649862813481603936980318846020639829937916702863281321152032497802753658691841193730521480585450662651144859418626402194092471434675770210267139930720682776216981485653031891907856672070451015712796892923177399079349481421673269376617104534593467493599536838202692260121356833777767972600757968872170193204979662925538267747627957817142661917231576073538270131545508787793904471145831815441955170251519065457055493241316895013065934755983852196030377350132096109464934259447501844402268745091269620849425682528359102856817527409647438077174261509792522391473515282576071536664554565327479761427332715425503679238933125342242399678239779808253432425085741921527637181227033099524719295773165995746689154134475190271669599902382606251774099800922598647965175976691544681057810023528983390452459422125826951109169508927723842943040105311838938649693583469264576213612226419581398129034829350609932925073923446708114833873906478225389684411951988648778442582925080918599010039729702378681438756024543613243155223705595230213278276509383369296492689580241152758176282482878791860276679954023859146736267907549157288557464945892584047660479770339126208328424843108807365785252180545743609858521482631589147903187555188040228770437241896594501596651905042775437472237294982553427162468942395966008734705606960191826802466065973850327500933096274652399097163287474662501274976895809506745052044015934310063877551020034503615598056174722400626301633660227917356789846764524949398603429739081555565349690306668843000779900874813222290365868189252476463067344758433544181449500302891045108882431166410896760611049803389616063384439873173575097769994393247181048777663442698450256817104755450697944698080323777735288130882621446951257838443559544232984170004284267739301971070078288325887414482537986706860292746113899259626892595324293096038584712570809803154966631834066095600269777791750262261071437293685122398647879757677504340036337603361606046915952936193420045100995022852446013894759756577653923370322664192035482119091066690201810507911106961189587471893627585734112204794106277013775060010495719085050943473921769927851069284067584335107270968077309792437306428655413137379499872078230892481156441365252184558181410541401504115485100148386245216103033879529464786166958339304981252271118239387039103620684422652672002267504458112095976328050949644456741301377735728999331216820811830523108933125396204805205165144428174712219129620532897775465636909357958728072950665003954480769453242949796794989233185623206130065349484766232584869668238163854919712448218262211943103853184958146843673839467709638327829154456534007506177159954141265223064179094989376941121296635344046204544446263021592548912372159499717592446845003365390677648996379558730682096802170673438783457474069435216755425166587715592406748266660872046952836692138272088543420877508790118717150044333243128264182345564740207175048156604096363247459746642399468771108598760263229564214099238714295597802542940963562304177668366818139855822377743327547221262384645332597443446276019919033248742022056143165549313801727995188375918136580639575794217355323434390560466162882395065511453205600538521939152837132920046321685627043542781007955025793636050698492886949591126889527817103706111449857653323119288837246785745212985748853003651216396399168580299473218116645549764167186725337700380690821210020165227028498906514451583621067669278346908632728294784800717543455050693367734462970448538963337905929319977100378661917111037317982308808660778716287131120291301176555572172315529280012103893701408576856371657677727342005244132071080234481061291900649082067790346916070343319466781883556362347607374831634811997871908311837450298322295102328967655549450915123551815605263152801830899975820509431100401231929302319597185923606087155935252840987653827414811689112948273362965371002713508957133200240997337767239015483817417184238053762158292320779007671947657387561137562083281673631280436419365285096874898865295166997133306741522900430615416113537462806115875500934197739260563110605806072898972812746213662043925601277485433006218333778226508656325126606824834133764412779850846606940504924477252826161784509310392055089259301650521104371082307850301373534645168422209791318765650753049646970323501867196362995753975713375580955355122975601006490539049780191328531652163544920928760108202994639525293073239379215734818765480205896687087538913257831932100867853843671661181160487723578525388063475371578067487484396651509834705104318285369984703261031354828323820101414173179175374931671266030254625960142235202737687563203047677936110704335069823651017922486115655246640229104172667383891272713931590169625409816871776481355297796594776391145391863277668293640933990974185946842027282665118864960146848693502571515511707010870936843908758983065028593747322653558410674331189249075372443481707522265196817255098044749689249280021330129405207822077834190329457151534863660346767538489803955184863498005628925582023764185776385229014877847307113621162592085269576923958325775398978694343593980039464471060382422213146720862784555645679187504890386011983657657625140922749541483788886703849052636276540893689886702683165570035097139362246406732599560019823353962242955394915116925011365408597193162270508537083808283071010721623883641624520650565494533301326137010431898192307544297413549105287900598228914090194876901544609297642803559522344834082515667235212941327378302342741803888450041831316723680868722970628361528749914244465588561304313838554961491581463071118814651753164967389707840532259769485029274870320774423536731205250291658503104768202084901783336593948088252185704953161383776518570675645359564101282907472572133772028184892325431774742847541635579903153345111674451017459861890625225118020182482870538404693409922013465884338612069836002768456539698259890824180721101975003939099969254043225762353847262181658401992837764976549275197884784504007482508791326965557146772454203804738705447959247705331114638907744689844224632023013882532993971182305064643496595283721511623509138850169246219772778472124236177036576576871449147574188573351654994865316710500448808970385048380339827647868160868579666105107996608896408934075614295484203952908364193755609334755990653715330396343342685209725284891732524550685397717453510730017604940662268379870295367627940737251551599779691319033383786991186977108596444703968076261072744430478475517628784805592646651238931677454559567562896412377528373021133084728749593475644104628995462550300435453541300926468770599095211200902851073228452338300335550268312961115140674766071990474046962408670129119443307553790936152645298086250798929873565403403745737189242909108742903144695027292524210271414275337573944707392529211555254333512734949220917804605384552687452011517956158149966785583303261881767132909062722279494220618837234472470255060208592197154753972165502881648478519056877615549671434644563935840863162143401059738418197067436041114562524852352831462940327509790127957067462887026516241468011602415915883780595006687022566569146790880344149536437977013902828826050004347256044476041255440985380315399942854947070595072024356164121454275118031496737648617859454440085311990926238806413958978266910452362021670243618584683097568982257176700535483162471040187009044894810139713939640827303258121699933127874472887100913667929550731239687728440078737707857258448382641686283970851560430436444448059823243092286624721978727312880459532478326189083238825707077905581980265795534210742901491055212106058676252620003516150650110794426403994558475433143310883871660828607772904884321280406639612920217277453592307898206237067135826746132827212322598445759213261969619384614938577781085043137803645590139695972433529172655489109014636610718763439761656960451858775108372705682501630804128255722021158702734909270016690792597294672165652199700446868573881574603765847560230146467991454783365174044335196317476578367591598451314069185378351869819388663664434624794631604921124979176218284249657939868471614330469899489629696671991261084325701912421017805741191680811764281245097424808239001465732997816097360718542992491691567932109800375729349807189595742925587983356029037811435865728992073607584589141948590850460020974551483965823646788987897059099587694466587143695904576651724364019174797306812840456765770923056919929575198294993195020740657793467298306213134838692573642126165334766184597070187183069023404705835075511727840992655237494337660955426359861590297605294236295712843171010742741401412424153330667722290363592919160498503648855446189058723781650972575614609655166807950525297974430381244352553911153164198108010588858913096716144588652208791660983344120922538209411712252459085132030384458330181867207171558362306971916152374801623918468466457510041678440483292894014748173305821214637625255479794679787857586895105389733127668152193526329161719675669699773143297631871388482686034792476585958317635718188574270737866344965598311244482219728742111352375121214539391150925622820679085360303300784820144097263345301907255559616667393171997922249994122603040762020430335534769639744156340510599234499085818988741618051529611616623507992648468208092426368975380602258992138772281158841535405170823261968485292154119128067300940467692013270764571039903350837618949398118440605626689499829488184660145929827131002094857282275989919687051543858439692215379975075195207553091930542661164284725290157874414331302105030108762736372138062022556600489351210909795265619515510050159549522205160888884487975770472239278600002844475970098341564773224105158894941510313882498471464943110740360418767156271502073067367727211864832074772657372552400052325334879304941091777804950770716864374793214952401896684885341660841786899208151777416434875566036720045788226173697147967145829444933140556723828537094999837964604273261513493752835888286306481248024630812871548909218618905215313530642426251613822922316967376113402128352198065638403720567912085772278216396576712315577329165914662502387854330647862644386284410900136827489623562563802418395531037737323979312277771508458704854614513229935485220099160313489723542754766829765306363384573584800140591895786033207692728859919847942533674869382552764813761179791525917425291923170372826768005944322761382551362405981795387573859945924433379984956398682550194798288017942644066332945144510492978582018781271518957823097725650505977275895527807774329516584712521650706638511124751889820160459841625811810580810656247393143265078670436692756343526888297735145243866523934244250552017241987961822693700107276946413249275405623703449893579991816520489220235660378373460902618344430290590822459472368138278282329201720561582651720313772675293774522710375877508049052324980536598174291901694192027473400962385768750861496390284034032396541827251864517637204757047931942230650402873833383511646049674478722172715926642532048822175221392971844362938098600115494705239974067311243113980688128489948888867661875727709301313819741017278544958133681654399822137078109966352381126351310686178682771764133194838857843606427324408831325479251922248076945065254237272380135631983745914576145907316451311447724801857661352188398433872835828066612387074758344072428434156673463513715833844695736935722133383517624256560555649530805196898267551808477131204330833979758873667139930723482725344984276616872583596323291590917377916318484583913831553328659653321792612777964854936720926591989732647746001319861191366855337805025120360069449890413880894001987613524039637758893769033538284947613660268223371950199745730680562619219849754065401616295156425285929654848448656033591822698461241278795498309378291347670007235851750052120538516829776092939977595297995442868804980390829329631593894886981455969415437801626130992238423429918234674652587008479763875672017278048524615757781142903179881488218345384265218535283401170506126277671137005814847505692567285175671392393567963094911340024847324022973104217020500506075540944658114561183452423736449095722666121032033418608066539976519452295859812616464193934922469510304786002014925869503635513110382257156541362372156690147250432590647866842232252314215898636069481262918093394355154872381902621196594693527091198637124524229711338270707992761682745753684443086820618152515448284103626284403671173467558251104250512192031332681081009588109736200150065605112027657105717067376853726310711097032814859536021487413784336027520565794142455113118584983300841265791358084767037311698329431076658159931654927285946139566635815626283143016734551223125482315619481751868614910044707632906952846657610724324697583351968148660679997438886018375919674404049002839278497746742167052985281245696852091273270692882916567371516086483464439549015913391137728054447752186589317479430472258464276130036631059473424007520660369133528429312383454614041099072917739381716712557747027837237678818210892136953873769012020002918669588848479081569232255953900106771670003779093836013361236400789320066429166491439503616479138356399102877179161425311117011654331228928600308125574196122984952827676945653726472745235510261180883140186485394168224370155385067503733665612313799519478469237899315262798594604880475273067847456606097933156075041535438588233359421413688623084824755758259439771767488192996624637140848477255879449904961474909870112870605470129861623213820774361714091930552613139828113954491145654543817174618515079638511505039421891421470717901145429713001753138771017911581816916363333252613924451738107820262616156424337270438351698744308733917124010861040116465321132156057874731805123541453612557226310932433119556207934552022674381770330557406991966156084795323121082300476722884888516436377614268293953202110989588121249809278473858262607795779323687387743418138419380031838068723049168258029481743221178927155574412939137905860364471725239406950200903312316890177942062164932882654693359048732880927865488917126912340822492172579664409554750417122478382855617619361583345572219481321850279655232938766633669894676206874707461556733532326176178488963200595337844720473936894798166422800464344835443789196269673504216160935484057776898446579001811220378779134468763305695840737397565034068103287232182834528472619283617263178426425917118569695500015741491549263448797643803126408849250506600280309886893373500985666857503553598173713807658874940781250417329113452816327369308756850196672184042682135954644638652300547600537095927745339532650964856947660589225082141266198526503731016033899922776300336622842308479010808366359589151882047141569695725648019804881232851171365276893654562449644003004044138830667019074535372490501272286996682780199196314100965897351350279191688049270601904765199081628186726997667900242445450212471259157500066945452931513137342213886255600547747158229133058858117010709247713629478956840167444953070819520965299375855513894919671737202618353626906248549233446833777101311636488209290212111480749517655283754184731136978201063942203019389116652657513864833656145427965335521489700284636451156290920374284859212690396147866543468401603452532749081826424648825744942302760565496408502211604141974397674057443751100263273362911502104884767833757292691161426178297735434694734710832523851813333773717159709703799795698288379374715700539496063914141201329161797192918222099138011741665117626837122914528437797237740516080406712499361004177463170538361516961556184564941727581338928049829744464756093685333449489780241784808168122853369979577981599017800906132926509527208006488794911134560065653485063639720077566115811273523845113675576771198891004125299558208806835024546264156878639948402930677913246091133005055794482280967013742042108808803129144957351808570005753145846050852599626982724188971848655809424364159308072693100279934723948276217011386943884003764896529472648005444644232751313420927956126233416987720633448453141507042139525323028138852439840734713895462734834718722462114994816495511572640630487822285831590178270059862172800902937990300085561479032539718849233939486091324987993998508467043588586983748348113349118992671908438556584254246153976030378365317412141768571585652451301300251796402329542835120690890719827717825478067763551326445486669156461101974735538077385853163031243818738077366191861378710022567376942095717856456549987634709148282148077787414305873747032937496169885878603217472477480138395475323537950125652221700799950717893930168196555494122331455545283656057844894342600220816877366803621538590802547977861556731652497766611493955508634233543777387410360822703861040526902278173000861092725801041795870719997814733626504183802728150455677524997581923148896377313901557770466777449922327384292741249945283646629389887922324092221642433545297273827213687963941197330474263724607882601857346827326883096902800104714016380769073211616755889735622723016802624052097682647516178102262624040897172449195555054191679055637022205835137433137535430791418406086489795494984762126393907370906993032599059268121775553194283811142340124431888996235811687408003952813485500332381302294579449350396193647898004221928816864778254326169015869657250280056874399640839599578683644197529785533657480629522455283767367612635967103001912735990366091870903304741598985099396010924130331005534046847740981702209955175746996178628871909426092259484744574832279802740055780034444027153965541461357312505909718934463201909400376383460565609527836924032970727047442294551351330321217983635519330532914520872816693940988611368795427909700752449854724132185365147646416865875272523937547545085418898096821587400103574612220887230114618618230055987614337039534899964571511983718431970771493813702965545990501779677469007747185107347219962644219801806946662205466033314650168154593875006151308374748475009848765325388731535959606126433058620355142248765137763853829449650496343434318317375529687787515058209086311118793681781416771424306686069406239012071739432237041587837198379874986044857663519549560521573957022536206780827528524584519553819904942763422028101793104573572274771881625812772072443245133549519679544371612364106367655611295513181521041843888573950407283505210458874999443980456662085973089527423396639440047089649462902041671545961907695215659943755541387434999129269226013179049782517874473617771992060013068513262058748777008240440098324685152397109267853909203315613360597489981163799818012467910698155751195620799247277913970880767995056886677119129163552536696708134387128619638515318295004394489390408573650731214618286382909426464121447003875365735823736492770505757263801345547795788120000197748511920081258768660827906401766905502797885107314823835137610745806245262906409912838524265261918060028077687036969956736901424107213934412396393017920269130786398465294106334547942532479792615758585357321208572052450609230137792317636047753911410441232562548905180649338370969266825230741997886551228755171250636742379704269876231026376548065019841972211160612513505516246397449450926390819572034802745486733054016734736195492786234411030790637338056357657350635154072927900692634955685748174077491311726438175926871206454763636764473580967484450865575418877294291755108711562155761672469827340600216995857110087400988972425613665301660393669321651689420694758124163500496036764389098172818507171706717387130200100411876070697338619460945082064419084272812928908892118043141850097406150566168303867959478708572775472351958726658247893117671865184484073703363173780293070032224133941893208809384295667171170759232823223768129462640138681621477434733558237005602753076417344070137073989512037543288559015613796243362749513376885258379076595748189383871860935441543484589010545580473558688003705233066159756516412114916987705901835201336435190170254958149210366709314846882716189626450682716302339228145501265280445298643664914190080280287306651899913243682746647798980783036556283264606425024984123726759624676861408598782009094509671419673007085855820239276455957360613586590396994689200512983733031186233532508815209631388273531392308775331918232726508005269960426083084751470404163846308195411250021984164770608377681603293626539818719522159166498255969528837907050994198482529483220868773410196077697440163017436533361929217194198974655834600247397114319642268969183376520355413296385755578909807608987599444851602810453254454307974430292056418562020254436757593710377467140708878677912139321708784321778386511009954958493039339130021383794778279070315924715406682024259903010245792368108799905672071569582203221818497850545977961637019977901898124070417689736288125739270987765358758288962412277663115567989548387978162508052111923128850228453605900019985719090092692202765728770990928377073995482879479883336013723176580597858585347526684061679813806710825623388575172181241170137115541530255847938389534964613944785079971224945576817827649271769124636847851479995479110605225474151382876634816449356930598673913430017327935218753313579338559209426700235903969418571618220158806075247348813650362080249836726367486810488348845007500556743225196181265200990176391035107704295498647475619848600665745836904025382830147931701128534654709262472346781402628765118809151634621916356994734877825774112443924737850841316313983153423369452956941790351009670827836579373632085258919619421173108790909011451686068725083539491202951262336793964588325130387414500806623050821548189169457922458420573371053092010533090962225057545178499745298973652780690884996849452574388050645099723237496380872678230130326651861250147006268135319998478279395959363410902995237356068118994453669755690463149033633495589691592826532146799500449936604427887281549972582950577256800388221840228890265499173275226847806261465476160516576192781444117195380920249411545777751655587902716778194551889821101628914821776902738170515327570696280609487649295783942427701078813845972038134503207627466060040350624478050570799100027265778746525975986993885629658555628796390922053695696972800607585115720697752450407009711157825026800117911911826399300654938721249471116173493497120105096251835395458107737602569084073183210785462190525546605165395258532820765608104502557127552765252088841839606675578580992040381381913121298235987246068228470027023829769531510851747267878704255364602993711146648278532919751144315580694143154843848124899317007973316518883429003047553877225430318115515309484953020897598646114916641570429475889989814583200563591880481193351553906393952354686000700942811413081165659643921281719401614312264864541560658526566903152277755999433481412419372420241259808250863619582357426238911424462487909938000440620106856950101015808055954993208234988420131102425629411564446424128220043287747656695176689419594903268346939566700002985064290790006227673024275645167842866273509714576554293191641415325069655147958092212977628672551084306229760578654096582906351000866788467256269302349967463516753513109265761888608142411244751584416947051714880249302872724170760089536574394632747709023844642778554912045278117427208671189571257338969257635518479123254274170565043858378978399340834080539822048117640926934577601874498344782922863713627777576819418099622236878723474569917892932998529831593765522096208760338932141159951359202180177884285880589517911900017509636491274605010677825618522658782969806477057358745627358721676469182126016819721170506169063208805479269735469352325903739369290800653221060271419507817281564105892739683492486305860832228511611396968283283151366061866157337833651850830981188140953460370955192883389137048983209789646954508028284236797624193821225258032115610594605631476006649134288803962381730257680039356603422618748421820778061668370756895149859566769391568317183597889218915382107125913505754813779780228111259397949507735784797154370865129006287906831197115367732470784060471758531235054399911469829429519581009410749193748615313801155340381270454527537600227339246337555079408581620110119860303595526079919607725918327620572321175979836623810094317887956418226513082396208744411312979361310151752023699361852245980236997995709706051164031229590946957904032002710397624377205592021435032128907193615136573434159959956403734372767605411576615167609879679745934754513635465567665792484500407465582229629745683853119033178045057163233976840256738572469403102016606536406429695171927021073743324843675788912062295017557680532851329604736508585220353348073154009646159299189326558245635798362892221915866474883905456700820368405975846144860754344757821487312712840799674007760445103468471071081988645409763514577383621256839451773991486364120693636663180748056427992365650836178901438393661832869220622125662652892489278709053336297454518108635076578844900005643790725902256503243700084268286275794352307326089971363503169280004350757749621460159911400606519404680308077199894309153301821691355697754607544889228028581312217623705841215126952358195864637345420539044702587106332432600876643404635728672731706413413745375634578509443069045915865548078230371507586846513975261860986091155915979775363525317685602375608528557109796662026872177486487672356393191508694658634031428997872449905125746003172296935466055185437264537386095727548163832459996774314042155383392462101247775428652568659296266644792420024643998278833563654197516989352592403573753081195309480044945724880856557595588245466446322679580262578450519066975267428774905772683417668951274194355010746196490922551471864535912010325293495693909428028915521385694948915114995990072549800534627788846152694014733191264870731142295683306580940058209118573452138005796045080027030931174921603119546846506037484028429705942887739204648123487941447006223454322839620755334935984615545716376334727577602719993313662482110309397356494241486181991161343927336878961572177472575226695412651921828598629960333786014270553929993160475541898699814175745362599422031920853598570585803322124142864360511900506592851448752870258836033164569312829930988088921300850715304253920856892841665202154084132219570021597125753309324175685235767997803239069336838960771278151221519158513618755032282252430559569244002397024272685965537844297016183881633504500260609752360398563605150587909189107978354173066575838480335303627150779987259587795422839218270559099109743433974893929957175872109785326363645363702459622417532009857465320458795334382879019817706810363398854416849677844145497105819758553289921809558880798628601132348240490800221191872696759008219544537230061491480714132867469824872444286842252662652653228034311801760251679974517085901159862205183906331166070890862783020548418514633542881347492667194206549684440331008134507882510506031886295460283837600056605129492292139561503111789556205534963059151676646641271922309060616360546171122493370464711461743015148298888610595368627878722273435884913426565978027630672024639277360333127163311911578630858267154451598523848749201430576943963948894517621890879353156390439591267662857274216472660698745079239801137126177973110589049078469506608232622535374957875558540027750189985051350943230721037117431498971347386753755219074672574927788744389810343537830612427933221192031404580218661029726561493851642777042797005279516832071821034059000741846176471781078325473355301633837907707628904144605048775061894840878101999468351296340230139285766846000481680706135428062624103201070524973424577443209772167671017435610919447629446570893152069605322071289801546179190832121078167551002854417360759312768678787166928984632781833122764085839255911167240954841078092823408043097933636886692305214210994369421314311580649870313155240606779683483296442320064564524742519859113930818211513278165294466790130281345207171117445894351899423072929400514077236798621885138492612512497616510877738326863814312923867983608432528134497784885623365650528593277768337372262726108212564589008614266172767976412575314773543213210699248720645339720709163906188330243921929749086425579103562635136310504540197773014136992440471747079929514013088080072899877738677739750801513598583484577359559042189284042212686419166480850815846850905242636925455556019668330800493454269094019732830730731829028219464070751228870734358595739256751139857037654884616707160346247706382481179728451928169832183767721226740075239713843734667701925613286185604126651192918388898570786770808288472007009053043903956505349908394126262069863871877529035362680262719788465620609497579372271309521843649619034843245821946920474678631021542169241646626931087234211474466664912811743504745157096806223240191020111362447886629037354249075325622348434903977323017714789702628047732838684799595445472286392656181689054461542900121062702639997431099571126846813728855982792889105919015451591445051861616178305686496612800362582192209440875997192179171138674938156656357614349320375188157995205639178143041327559317566110635686655310023498956487781984902800080842753590644460133073997282224400693675123294147271712316878424486851638644876065694309734512195254975786663843419078813273949344420511972991279179359287962036564617084177639056353308512350211433780527166965830336255421523752940252827529615311170700629260887752676341927256132626319774398380630991337430925529254437707392857424921460122321251544705141604642321489798566996224795369875355727786034769744029583025705534117943735886632248643880151936662143082051788596667589656746964885301877936164601827129724968825185979742765978480013922898581701335574363367231056290901384907473440147000480695176669561571204616805364340494276622666701016615675289084523177966658859779708125786561976179758759658899256268475477108843771928120943223858123336477247884644228753557284534064826732703794689463667680610249005274522925307838894661970948541253445527149982240881334168415297805911607246593058414014535230541197740426732518551836140524800762736812037811493493712204838762999113306317257437462794321374713811961911864168723592690817189703665239328526901670722131805061185474240341470263924944555011047766317240308747929852420471203860634178206868598320017373606406492041261328831799138660586362381443405673277368501188391311030983327045242836212120144251782566850647625943718720573998585280151099974074289268940824690107945157601270845428475187422651032758463149477393098679375382203538258215105158549764725247330137825494411972240090226226724025078784606337337023105207824686072601413667542005678791200838996915709491517034575873335044659699585749200820461323170413477552336557848743545957146998978712202970299758690351381632435714213739900147513706671779089130740822343626547493677326451620439586595501617441107919220735663374338018782888743191652783062603839817046942701550465661357598050643909216538313822025059963642676479184939626165844199379145496869663139845633750049265125588641617224938194954042202204900535837303149790304213393091068578686548955302102146963960185650703101953487412713892516488598857475801427306216337554695953067797522316383382978411468691289917307931721584883705063039130484667528811090119561761270675742193760162502652019773260752073482158939660936089173724442926361207288966574485276485598295671576139315618633664714889382672799961524496930016987343780898290132378097396755379779566081597455136557406156416225504995272154637534646721987122900279806788045846613460845025855883683549810445126382266281439521949231077058819070406909276047270584420169540001094761739248695127168757209370277550230951260162531528687574860288119045528441513255075652396851220527334561138369947952303579043140590112676485494538774143155237568015376846400357978733683773850616681282017284925315879977481725857625049571398787136592006995577484534257662802611801150812006321068461718930271864252992034596151921682805922153063892731117209154060461467751519983430350380016505922890986025453382721500426857140073961664187670781801026886499193078495427978842817823809810165419979166529181017183031096386344768126184151921977979583349415792909516134070256963019617195480534875677186803994346834834473247552501557517999045696918368429754300538102719719340841866101164555647285174977805175496916718498411462381906399992985958929052030069575532572314017683440464155644636594028153826804423124427615133566948310171954238290107209200567320984641709715440636199666260234978150522405707600059177931295194908847953381935519472334814633147934917762091306568122586390484596629923690947395588289699184104108662230544704991432591506911854187737021085745480827147364037662160672243694346626578729825181255963268697579301565703877573797713594931100746186360632980141808103603827279114241394966830590905740304837994904570190599012737586175160343140550645033775062094494288227048859416104495122160195875729673460211461995985322305436221630344686862503625049531398650540762043351483257650218116337037103971373303065414271314744362388029944396997895558383818242090751328185368836599622098159692360367117643787468889407632671512622021303028006421016196102397048168458862288546796061337318663207816235511271448728482517109595715876394157725843823039863330674003319510771337598344426736577504499149829994874279128356393355050505081113814560193339838912709756900937137232746746900275941091121443314122298747943799728544799212389671445397684049876587071836848530313189522155815582075741276232257726292806548132847732167661914076029385537416103914913071944932440865348228940936498911733378336114635640033025878646699974709987937951130862826441346753352474639272147798918492963634193433898053061302720443489595230085719258190892491639712628278933585780547996640732401997017516167206511635905173923711138116563191744987262573829607144526795165030519162227742393774032056842367213152887448960863375925856817147133316380510107669587162475408767370615026116987436981855991718173226651155035847174834054698092708499416337378230560672247532101281794240974478147918121768052364534001826917536217007874207615939730902446676788780273081355127577368851558131029449950754651337307080804609606242521505097437708739635903747432094951643690984779071666105714980335880737590417286475413439937039510497406910993232034420348700044701746472988926584695254538792099262971969058187144247154339879628928234835332047382143621227513000235157405026527394981522546031209484361696293811811186960473253164574938076371006438468550633466732014165291457904052410960163189905549984570699379889441622842643580578328627025801722809453022814300246398018941866779115172868325193783042328381997376838593968215919200735068077587714513602022895442520527559603571626851147730806703957895315073729726172959902676827039687651278104591574223746397780301933750397334727709381185097151368464549469282381141683456221159014738475911549040180855400029470065789946517644159570597077707866654629695468433695662113554987335431268054884903821824498155209416885873528336357696395309394995857482707869957150777850635445621069841779618979822351900422674197940053359901484381884102328196435332363991153074941323200210467879615942651369600856047804110553534879698303937330204677502302777725315809583342775358893699836928262874821067216804480497930532477363184063526362981514192647613902093760402972478519991976260068635827605549598537406664710101361557790820879499720421809224814335669472042652768137044285249715640332526962034435152080276893989545267220520775809553535278415364060502711774373818271833587052477421903262647527791113745793513021400404192263734336530040945639671892146929574056433544320233651230083509897555313193058002576653780668967776709329117541448870017908597885800508890830420184022154929707227594266311649205010579406693095045961350878599403521600388442078573742108511845051475166675605030329309150741200457399251655493417949829361085927788426450166455466395573346358464282292437491462651265966006355926322615829793243796669662047036568071257549091364524463280055916100166971668071067576552520152224187500343800990192431465070912934424275149473366346322964404558073874470022832769795543985564475458269155919001124259409693493583913673463358359106378528451828613300124866076863884989294159475771080908775568792099559118644084746631839540310777953430037930970436898149424857509786275276647577353298558882589257906192328699106411641318504246904171126115047243393732475431818669547145170888083700475483711256918778282689818165602612217307247862704748083888767347137765797791094600263897301895033866570864593962313803145558826125693498199586310269954974034106309502513372584865828678945140327365250163882070726631684280466443285672869028380294196975495221691578910659664755300035888701408790589693421591884046594508436266978535112240861334662516829539512464882414654534431869340525276577401224647795073497199924589418598427816133973550455189043292981766853694629561542937608403866646875516873542204169959464501734845397594433936505584454377178208898514901406556011314941070397708319489052812718342880521638719895973363517364448654233156947474299315005834294791197498096046449854488700602999351249498865068665873612129064503724621551139606950534605031734783011457474376420414597666547499089442518619542565234145071829386297894698546608154263736869475896616363087976973289705947011013977257953523218317808379674007213407579038903235271723197428219828765761719122922083591304393688509506520747066582359897247622885481238672671177739078812297634005357622385754811488964180519688872137566327303298907652087721618807145835955614871860153886376970759794626630776917390577096728958391391642913661617293492655813152298590271573530962586320576384361613911670725357394037448233054685123637377970241429970476706371853343040504948316437043325524623081597170100377599619803697671496889261993292602022132328861160570580628607517147555879539285744943616273778959475577616207368999454107926556701362324904651792342936181726640637711002505116928429265678590602861616633215840145773217910882684384961911646673219844160319399387612785779926993504222243132786990482581842881165479762553381807037399828810160903439301327777317310340707257210640772738439012831471682883357177005133463682579272302928232732481173720941559626513415394163393073964596238235467028084941842123930869886238981527133242058702743921860305392957445517088109803157276512347272206517672018181440826456864714180249857691511780320146012045960684985239919696860485489080191536584635629291151574242916701454982375021347521277641775855070459461171341385660425416818927444253592072253827531802949457564634363753118787190603536069934674021927532175246877179902353286897624476740220181869584035149694912353689712471957422821393322021783279922496795777080215841361406952977137433836552826399429770667037506710174666262666381325041091264842141193093144566045252368114657009529367052728728235333199001581931495363841846157942335522741119231812547604128935093206409801023031353869069670276649672327197542281277108241355857715550527353929453901971495344426806495886343878816905652699567310808109002351748004825945458790402994331205566957739323001925834695459850753674086406343422481056219569231026443983532431904691477119185759583180083350837923951065432013943236907892226853547885033260775110605513313807536576412073167985043676926606104626355276238111727798722546284254281228878525199951800337961164355845255523831689635651081759398685375083380056558050669200066263677861115009292601948388586083229525027807772192363796911210802515664136634388214874521278043339717102591209630484019492141238305265536507322024316761073201450434985314741447431907756387515265586464068421310087827705914260856916100623993530799620492481237093918800328229989080103875559453239447922896862651698785967225705628083194068891172879796514548058962095156649095725626659849196008608257216345958136855836780900547566575498528221699478304885140787495549158029058321776718790191814173839285785149093690976761323593458456416010654755257530550209480283816102352723894663182317412648403498799472863093236634542776029826011764822433468192247429588261738786464800978416726627050917662081854797111781737731530550144877667541195516389223463627905938554872646130953654030453334530266347912642437081444176780024592159859206170839259092971232129436629200484717590082531686779170687935502724476557823268948456986521282322299495899471335351599611838007839097122797040046802222262712968358845062027237431900314569810083713748835545686119764685615223131184073364656821961682523113799124231801682492432983574716758646608967529209410402696441230000570489253821136910564498914175927471917882707295387077127409570347885277279586077515196919590709410968873493779459516328959975868917273427042749364840934721738201182732563192051220969494688404420453389463577289171066843900123009913857892248789329611513345895896993240789530609322914591917560150348335099126624264718327481767794662565576597687497074243117653454383029034542730078188967191187862886449006931103268762598628376315494253884070672783851867969411456897440830849834599823135521120633098162013591466116569578929964241020656634756758309976305518848584652050448509420653495083203788579321365377374958804444046279268491293264272375388012182418393018761414794616580542981912737753718422819975880075282627171298716663473184645391547688522771966679496344979538082519532867393477123871834086462868498963741567262335629030804371842829602939236873445401448790245067523377403036958176510853616589177055513373165081077324309817364459358064137086323073678513861195332661509414791586623907810403784522216445507497089841065876829159361424229834218772723900565538690695155238013158281047578380928673440663445713032429734600650846169269148451742081625142621738016876235660128164101133185293459959069987013120385326751221251275033241247995471690539559033474527995704022875487021181326299468023444633744325114394665386941736308705807636348487318643389525637337909988116698190269703306743020578414862843140293609876821047481402287616779555446356539127810401456131496517297225299241829402059617345678882357802168591793753680277111745383068629047270205542082447232920692111268279575627828369257217386879210889310701890408111533765583365586411488429576005106317173715071282175466051586385639546878709603596657510146962363464821977009767068889846344681016438889970698477525909608676386440184348087946403360672870180796658987879472831604558338753185872142084624546340264821120884759227388170257827970563841757348243448457890592314831606752937471102021616367824708363687807614817897243035982198219647187035520070593363709153430365278677367713163144386924091220237973699748530563395390407009614761759599205305430224571325567545832329243834850426539788484514509396003193883755059741406522703077951249513895366299821887411191825448780572358197056562707024858934483533709334500965894664953714730123044918368917001210789112634805303399039836149458698085451099095344858911518774185711998327188353931892661177728530516044967443954069603600838267450647152796276299620489252935277407399525291024664855470866947990032392833458436179843850768488082970623073693099159611526199934155711610790982159628297826635011044588595386205559810203766283184050710173461002862081749757191919250766669790608944505687046328110672661449554815107532751178163228584498225220027645050958669774463452519409759496021883479361030710481253878729212815792776390383575970541239182036858052993885922390968482146345993846729416261757801597158064141888136061216388503780717273992356294107611007214160043157014418583971716507798172937908233589865400112889863009839861267817901750968099381914310727135671740313171063020903612933435036970769519307545245819796090834452176064838412990624934238313958884580492559056944690848083351054730697849833057837107332624365417641530203227529807775177943106921462663383861382999081994370240315283545112576456515148971693904164254960832323807260583862492533130435177453824421236005861927526104694028981167152390382848735725395390744523749949355294166957870126476156705400152224187825092087201467294285049324048692268357791864717124416416476838776783557112040174393733819159495904746910608184243594305255464122496940621082971000957053199019946369720553341408464468078286196031158512508251030948610124406465527242649042019503135483796914556759830329950762733899196314331428399558710239118792190524158727953283026273771348698032748556876607654630781502328066926168850698976102761004753059137509760466738443335172491984928391954046176311114529108594505312246585624148497254171294734016042589451803850825093000025030196446089221206342988353421169678770653263559439188111271366685184375379495128412514425374711350937757528056352161101766097679790283616086762540878074139507079860523244198566425886784219364870926525943181481461371619054680467627343812478633025319687951597531588389933120145868840557545511569742427474106650126156388932157868541340367965522721378774733615985410322678273597046904677927163706114485846820061500066294691789851653625308502763146974090644574218654799955211553577814615227770358059730900130268080834006279658714052080792860163739759480328660399934391834541817463709438315599996004729330842034541905646653179958573089500654054885760603120203942850269699797743208817900914541011194375978061173685909714369141704386956719800083041343641676119921944767565506334387311758210815226360822712337603627925299779763666518331650930142549386244787857455507176273899634405118120904591464874603244342828171949324082739967728404752218586118529668086982087031486143276941773343417838297231757679870562968444837888655031771123183716020485879268492551283939464109719809924765186730727755288481036252697379262499372265663456195235407846153385646184354188606140281614457447068329048106337109093740920013456123342197413878051105808413435014781496978996712821258368061874124725624257979042050035311648331982414663538337119950895398300910529273939369701276861546078509078917022502687130843360203240987507867506848301970930801368713998554866066843864102318289392698575382234448409495318570157034438185859926250313492623422808639492066637704808737662644272401499143854865478962898990044310813415731018451924690238926006243573944734769716161776129520764909171220937591405502560419269926585064618829429585089828092649224448037272747758690297286594861601547093461009624425379437512174687081911772288442091394621040170464149017520015643294303501844507158814720606881376372209355819681937668497891091420909338224854533210250140590867956882169716623096278458581849327063934766455242207158607822900135965691950344588323310158126209649858621896570200550012602462330830469257057535041321313634506618792474432859410877481331561363972440814784627980658724357929120471444109228923660568040377353628925751526433027659820303482224019287569656261010650278647481037168848508416541327175281490739959598575145522088923416527137060016630632376342408491529036731138124262949164640788337818669501914521208919596001954458226289717189981879092309279093735973540103467798933257759469054712385572757785285216927464623809666844971498196032300107581358883760633759936786357472837320532927945665943310437610467237984890879683937100421010758103225069718902418489606889648938015669730056549781307842197279751549834033392920022948009663792099750192867127426134244055530401157641693264110578683007822511587538357134623742394074731600705638341128357889035544121915593180477048495562408231499317664386883903206042080768352640675290242415183529368415819315682299250139773326868055012393351044630157500511188884152613687997181108925948572543167024919223768491530176099589506188635576123616307495642082194798623677455025160299031180561046911070796043300661652046481472143316648619221727191481914448012789904438353783845189626893900222470233868838227514718233290701140815778683487019496338682699392396353354545979348828719954396689078906248792763919573939757784305146220365917805464915933034464482254074252751585515500919038338567420197599666740546193622553271091766661928581173326495073691000314835617382503228462626980822909739697166280424250257135997998867079766330409700657732804241416905162471350110566850202439593166341138099927065244156284669800158806261385020748116615711207625446998823196440713475302625217484443069019475340738046686042926534869907651196293374473063791452392814084214253376750368017135040754704803272426658860592815482650035755629510648421684760260296197837999098647100118440512642899934191425862558218043414622612511691354070466333802618977003589736469545106943012059630894566133655721659394459950188250691771093009218624638769092890552445546106169709418863570458698765177340482410418605570154717330172802871208637908103292535864018563243947320288690388526840838556832144801948919030214130344178431204032982971888248049303817365313594401588801453272627391580789768793339820307052482121667671897926743534911269609465054926373549916771474067378533132302885238489028863220580484167995601596475223420431192691544214186193328669783999213056043278979072177630908902092450624791304326224397178505896983305397757126972538440934654048115670162649212505885083358778231528563624645661456138331153080233762861828818858975927690629901412571993328397156293007067740252765784377839794826294658132627482294110717889911748679122512003553463756498289538457081736972580451780446527360287422840728840503138726803386961173570941458516925903772109383194865812007839780373830683212458605327527736174060587758008426446936475848219957392090310885229400692758961617496467787656288786184925319952565633168688370949343529899467575618097175477952369702654573236675312902286975013450197044375073380942355814413752073192406971272125320374118297602745170252067431202431611089846606840038466263917776377222106019649606880793746823381544164502490659513856438753732477268588012565815808627133063727573197182803981019122125034898715880030414196701574874876367854621530198993918517433170550261519121575674258598682845955356631316845234864598723209545043904779205835818533289778674311984588455563565970289009769158770792024813572594426192004894893805619469503176072070759653681228401636662595263707019207999555620240388249670925099985976692877759260147048205616773249482209035632907792877542499128145666155358572512296257218929212071401043841204117366913710782365518252329852505318882248627669350781009350508906985739007974358086163650941312955065134732355006738036784515486504171547559629012948162292717796506693889870786710862375074914989604984794556864555234286456460150261925418532624415781738068072732909920162980886134571609251017245298008301655996571339915950276788956946514486866917724210174564626986747989639330615922701475898857982499825976718243050824722898759570498902164860640023657658339409077529656962661705957082913569860940196457415372275198045715011316150636248308225818731161999016489543825318460818712355456489788011653568769103326594386823309224443506072157636018407330361254188890926758159800363657979999022488016046835497886975846694278718642960925273785284556785036455813994418963904826499103910102492516890442156093610894455764147162152090647233707969629711224582984676214704884684797107898919301068018303638811186207131483207506179649998421923875600486500788705833022182339237260532079981994846815887850445713411549378854512301579175487344253172036608836801690848421413963655213951035029031202425634474940878808800334502089772124348417897542122619826967773404742818295872390386577315867381150900775889739266323312931273670676907384840118156986294207235436520160136154593050675489206498285870880829039325240261844863907149528610658521336803097589725748820077493164143672199694703914687759424394684123724795660613329510194302342483752929632993932562208723772847064798241493590774071126376899951710169397436415113581533231521367731220975871112332647467361753531703433849864001514656267125021920357883303578043643767579160158248292631663468169146547760219779068140993919105912410279007635870756615126368076474538186265026112869991198822109785532561923987038037175734594873036555093465899515291863121128964330171881955029074480534490497540831853503275745828662057978561271560678104397419635964799750972527607580590376206256106522437243061269713866991975017974635394937036199217875557398263947354949410720530316152918593214455520632843543093402602131872385253900652571263111116227568725607839372046135123213468563190986645194785819405563442971548202817934199014617175009303839744844889646279102115599491133133092907703585186717921565886080006355539540529503631680654023379475969881882932859593870447843276633566224712815060894003728951824724133718263613983561320004376537796476551831611267592451614724210251456198066747172360085918161367597917883148329611192180886047962051294285187749650897869840986699357051417439475483694607646660005512017631894162144043902702913054599260664041118176936293517888477227091280427506643521943838828561618929189255681391040610046441708318589810101981107840930205643677890107171726675966454543480696169607738855766160531970327025439719303264030505866644378265500419876028372901313152915447586422302244107355442773702837924764643588596079685118163501502446215257477272663901161005029249883189941492360766405589065355389165579557017149336045712434802363201681013909769389504320777251805640228103240194343456779463350716434648313692909797518673051528167863897370960758847472370763382321186703337774315989974051494310178345645741154249231512086531520848532369960750068196068120306532094068629216835707915542338443474554680918913558385135746144406451461026151726167341368836801941923744992448662785444093318420497443396820986264474808526237134041058282296774883399192216125912528392130360583455649374235564482281530801943928985673313236039953611627850486170189895574405201710941242281361330214963592541989239111311366421138388414101242901443355278596147835555769940357944136004966804141810682242410178421778773049710331210652847777897603016741890840888231048070007117183701974030801442203544859733321157829767148835404550917035437969247707429174067211696488410346318714729711079467938734913211097740374994952389023754202232219086353888288408745202428497342841701575819264528975292054736768543469438641873912861673020676299150143531708215250105417122928154761732454782457603599691444944191688798744365189126315710395896631534827149724414289816146729184870286881705928262426334312728272824478766481991794815253101122412886512021104047593301709626080826415622007117460765231469968934647805869428777539808941716730020557498737529959834077770549209303968315056227404328910892159807182071498480106053995749045685808522537666211075523228169609961635842857510329453483725750829721999637805103979476044392750879646665040887052161180688566199925841067803491834196284771473934936947280430451149771897038816876478811355610017892481362572977053066401064020025970453735955354960017072928854471434967728774013291456596910349560225629859147982325091002617603537578928511862801931209940513262065368476522275959414472436416338668655464267541174566246586612278743383649522060045615436496410303298718205408699138919624662541019259035026835941217464806356070852028137329521186618565587252123450907808729452000379798118736115504834587509177632149237988214625046054980820981540151850243002326778648898265758367846422841087908104297378012408493065602229576627206232054304187449963618207237984906134459512154450750232432308717009377284326475389966177999108750950966511040789997793145447191918922609517213263619558009696411444893621654147150724070137463352960069307313114431275875406112270024549711972146434143306930535457629873270692809492339109768923362059877805009257490793061084843818255828792383572613810645424617748001707446742299898742560584237448617472358897316605474294334185670580484039039081485957632396678028204999376806576039796853564395710074692768116447637292855495429882943826892445219386547821083960248296932442024259335860985594342741280715265100298983005084591654971458031388246598115753842217984754623509678261088986432789720805883066403086672256596115832332475758810073517903962132136542767642172016006114995082182109013225468818613089559225315125958098232228824676670771694804614097514759489870502202320240385565016935843493604993904720645184853978530656833670609020697511895824793078224782642197019492083707562166705991004877738411976666422282080371648361826988623770596168131149564959322956101237670351924961011731313625808546600906381331960467986276495576179770890128541150949169787124948235567661728357540269699046701756913820725313923380117050799371535035185866455625538562474988274637929915068030286443413122724636358449913513389434239492652675534467316069326892004587253821562941526409491833829871984278742304225635783376761139428265487375459886437771700737285042629580352746673985958910173430971892069662992192012817804651075111419751069559552920031878880918300327655457813410527204420941622038613531806613267862669843136673954226701426185135001200648466957491406190203177857191590392815967090438746463650527107444520513448477142129102057146439002933626630208301046856553046162854143487102026027243574521142593633333810329356461384893682196876768827850440307363842719247925186095699743086457882516863506576081851539890264363444587019213246228428933020132605115853898756473902477295604096537283460636603285587954036014289618749812378780738740820356737059583329157225915812394011505685403552558470584299835714115803607864445208120443332755788582048175555749239192666163549042975978623835999381123545581257519065791951970825167292862607933227567660655576581579852571144643977253681704461216065531525547849700622296045189136789941474756071545449307502460340327135325628487828822733788084879813659226209183108652416676844431708593883745426118911028267982575931146222640508072946242926637866794817854264828258290337546557681498765221335553562832483440932716085331949123671012975047868635234840264306363759693935392691369329593456799584802965642891149623268957951104372267451653806744521296130931706101543227655781647946708160634490353677485246356233881742785292103978219835316189128438419314493942206115371325138592511170356349943344800673867017350835450076834438505864644684208563566559080280811982541581422296073463740491727315120993711629600055104093676077301229601192420411418378080499783893026691668880900469565186339604883314152584299741268713858060064007327760307527790233043210540922689347613186229267957927797882950712923018415205310309965202377393456687597714325854822437390168038257469859988189751029056924983640316677113102698971615885192004144339688041448870103486741968016903536366240515521541694700003420672413435063872905378593072566448556464993128734692041977447097201092199538665013381568194228072169362352076302089713072355082235785491114205405438910436040410072056917476422895450599255231312113120248790153421762236888553276709424285215018069866591559687857966110536010878120812180377230385712575769576880741166274625697392957979536982747143598728933486472578583325407633212648576193868933204526513649171924287992805773168617454464150465076017015797011082279439360755922673431563405156814154460804010518718841183055684271867506715299178175967895674506895401032805574321299920024148310699821830180546635485777229463428657855829550739853772516354784687863222105872193484254981695394317569158097243436913554789272311609397494305208188625403194535323297150321243239821643222187286123390289499319843609620542883472710928008808104025863596825407715590578842424558175345110446414401455570731046638878875732368487602450428828833732367772152692319254487346228757513188738818158974215436184983907552538856531663993165469265595145666589486892581093913869978409236551036816001742870362607360059033776038536529668494751183782765785271790663718835258149097534965044483726444612705761963930509378356027377461457794859592374349259165684425888069568226094119734856097326191629877743131914306240299520773253789614171608085220699091527729720898410152685237794881429003070971717510557145077084750525669813901352144255852721855400723720010703087685465224451233468809233246979112717724681719149929469833779871439957903431324072115712810988800070611625247941553056931194340521108578068274720834736523209883236725522401286735993064821819844511475328355180188595841881621972542266404881331449299149124097051167834104860067058073463011223112211707471911348868822771459823314670340158164364800534720316273467955090616114061182348014939778011449611441224713493063732980078919771869044867964559706325653893827925707947464156608427237281250359576771297362356758951847435270377411795940148485416727824737550770298208318033657273743028229164356686760474463594422710768127165227426993660977960687047809134339485792361138700224881790359512282732098055232491362879945743580332235235200246449254680628890627972191592829436188173276599173492566638201042832118694153204014273538835644807495134720763333193673369296856728150661985296446799603528150227658913379210088625540467777749485582544974670793751921760200447608938787439859957835121364168336190587622014563086271658350433751958117572621298053440628845192709676591106744886962745142325429736118708157097986664311850628727734591694188254727268462810315147737585022096551928617858280914045028319827899818942515505684779587967265209870819735968739757453081507494097186752467629847017417960245908619181609088247356476426520365733799842690209883652370747353664589858755120608496198138533331358034896246596086993362704199378886775025432511754429946511604240673548858669824786580996979596603335679140617026443400741947686435978818206702552253589139961187814550768900372191651416248798506704287477430485153974841755547832585683501373276164639728563551522860950324741063137752286398643125292628026934920820019091056014650684713468148613067075538500778716910462792450848269857973050864668992633866870587483798847765900884656060532578041689286222367730000410981451584067282840915261836899791684990515866872777962394216125959338771062521603587490094373942636507868550503481769353396748630110458047376813862045324514894278381348973530243441379584738782899514407387837271846927080521157473765787400867423922617972486959050029428245667228248495267986439040528843008029349726547881119454916946309432526414698582933209592544926541154549789186487045002221229769773822791215374054402262985438705436012086807928725917030624229154970084760198153742277156043654816274218849234679009869472977073119738889947764837815481520799514339172204763211610811472323778276548082873412696505013901088329684456975837907404913770641340412846055645375411871062848382391606416540239876375631828821976728824768243670294128899808668616703176438245939911693648736633181503686313996528621655699686880460943844885101244995145518053417482032101598610772777551831409569069097300403178452268161697475632785212301790768574443265808156770270356312920268804610283345365631215562246217660841466652288575177782577896587872505045554391653157231334915009544349806377386293836745024724958699044802088832954491963851415141307829678094348571892183533950692264503860845205802220876033466006516451628570753742129309047128218017632528071903450300224453223282499616706824418359308070365135129430596472135740128646888601674288898872619718800214903176231444960108960099010578435663438005034603253196660038466011967949897830185938703664041561457728976905916037621606207137888928029476250205844808088587701502370042014280721476174798842957982114742940283718518297062081584096016043885708954501217735637678913042293763418131053842340643841882145572797575365013845126704552819079015854293000449769675917083054844350543248430361706137333390237267507460716424384520755095123374729672950785598905165498142680607610317270869342543866642672458521017780549169349808363718512257543714904235855849906720543283637063625819949262893196762964509622737519792215944065219772625772887338490892587435068901739076911342519392502971123660531611552312379734315177046023833252339215874744437016843106375871815534436079253121901172331358179863261369898897906908216840530042265321748365171899969626933869591846854014242227940040165767578999491663213054836933133126681251904384319137971930865881721495307415881885992928224202708321102750605540205706740567020419570283684533420953688259155253719571004899373829927065516058825791295171162133173863985008532787294510828219950642990009026289100606797698973417030088532229915725663927523185678672149711684400842898738563206072854184204517496845124062627386021240908877508138485778064481018414592994445700735916461526990867867145734176471284141695368183755328976569274158316222835023415637841779084703384416532169794762088788633102925547522863897442626292408605428767497131427874628414919992377232873725793143027150671164452829290357096919635044079459365337217050464690283310958019206847285182460787020699906384104287842797192143151250970878153606207809213457863494185291211169411841452722397862892913470762892004618801772515224374309483925947741525608109751747580431331249497857085827968249574340956569717323211165469210749564990715252700989692197762127526184149283900779193573952769106055255672922336860063552012711412935964875270982121141746456694195815748604340745260911955464361986488426218307994510736043607964654542233519332915580408274049165574981435147695100970892837668797741208646914932418617532967117613920317266045115107498824049601995595620760009830781614909842622994283353287267339041595654300803104580649743237027420795497225646041799435486380099740955222614647929951541687583750029257461633306445333388639079476649017395842967534994791078950746998680293735095357451317858486432922116592284987544180700286006867514875544452367338260695210197681476373935013360757869677135606747929990293933711340430203858620859354815862625153525935320798940698979902396237832598474998125537992998752118871790089432402698505128524745032819646133966202396899657546510265923498987469176635517931377328473778121779161442554580639778679409126041275449401510167771706933049600565479473736940228003217260814595091662119256639023505524584021218391681303212453757534278256157374818579457058239006389052779385531026144671444723998409771896868570799227520232833097185234043281698380105645660593413776496973006693455624396927515890085888097257068504264716736166087446649912892141045646488927305933612772299107525513875071621807256927927724943635794994094880048632011364393513489131452976395588710471664704203225723912101215616917363881180549868748586222429115939558497674932221977700786726505120941154142140527114556854761560549158767875226691512704018480079898866149948415091776821920353152836009028585931858436930673049452821775862052696221051806121982340201232748674627726988245293383014682731327565504466017711095626395197808120305767915413238598159188466040268000458045778567831589531375752371512523817791442751533140793538995161298491403728248722070592479538266510893240327123668556389004470539231452986620395282714039440478587657183514633289989328296322963008187274865935715254895364926917994552844784924654514724882936434812706482442483451191253757782488443558443861880590044676156252944409305002929531346992569555977063990108258375117859097226346388702435347809521542648099762389240934403459969170634927371749032777215567265356316021161426860157424618284308071449787737014056061950783178282583840640318760253736244991980606712275668322233150688655297635470266934778158507591103056634399487441791417690431658857310849998386739862190585130204472308375244268271783735303940750010961841764116330415705359408757920047508465451021543737304538177078177998792107287103227120727404405438005721924473215263769930083681963295594402088747049019291081258422008481323375954273728736963463436054818309042683894367955357870118346846040615531207083793265073413889010013094010483111149427628515130507989799973456398488623180888302929351205323454858755892076402164267688011700877030475942081125563343804266428325066152463131569272856750639473930131744968020934086322576706470402004062754869083309047395009238847778114526373680188987613326118218129119460048111626701636805732582711211195626560095044808675675326585039863752045054313458709170672468545841043960902149691988607321866309661775386285866499517216794843136293756512854623460421729417964881284761361327044823292586341926311675330899460274925349329307362350468549586432212692690914806825177001008384291109172859943846430872314780116305180673959043300127071088430036145362994320024368508430939242166838401631872593203021079220036508985597727049474565052639135750511810558773187489212975293575869084283951630538773500443345255795083458240525841894721116636883163757534214204403026665306149481815000317147659741289423260187315528317098758110598178262714577411874180582798954825327051509600781675289132110593967960630192368946945871993260823634271091493154314567319772167956578789660997086935127720483230705918982998766464028436119635520735813510681728155843564107025967054677634393236075613193210795074232822535488907932455860921994480657246606808673774034102597162976290288950900659117637888492809665953404761772022536741266857038339165281394000699477369312141397789950030980659596342419035392640654188284859994474801731431757682298228674262008304990588664618252845833964376611297530573832050353222655660965920907547867863439373173327846938159038541630334796722449905633365119259390879774933869837817757782496960405500001502569369762337218273979641450146704028913277156018117700147911794379956115640626529931561633960795688323338583062000710806867127823894769092512137639320465299294557941422364951254225544775640434107012081877293536719137964912134990311580142822241661699795960912880981975307978204497869959543743850138369658234061325971820455905161956230248662763526162307406131823574492519278367767916730789039352399253281866764588231614753414826021860926796650344287824829948294578508497115434800497951762910548507483180824262824055379350825651718365452875086050585882533274676774125306890633234475681891290342339550369220369970860824238443260995918939898760644913400428553313969024716916896868283653735615088214732496954892630344514649260404256301083187933258831979881625406913551845723757048345373470802119592308732334866318435888666726986223461874458473175929445790390442342336586239325100948772186064030330049349969956329836468809479640073968816705986789317632133821507626365075441955196942179620305937206051618852202324783469086454640847623180686670046486863985003300155057098796573558247241034068211884403051305498106831663316309361931420891987431512474272099895883922683010761752169124875794071890415809265682779165428286176414489599320540331602247184966786121320744074023044251680820738997614830501993207588518680983056037234883938831638214160192762124202553474927618430970102584737747022240841191022047311252437285823644009006207022713716825357886496698360840392386366532835688113888622853124958206959981011546034929775962311007717672718458692939361586504145426219123019966487172577245537982328645819718175059492471320595437448851906235513516584723257288218697140235343980084409876879058925489344630596171313937523643286243478174437727488040352404511671146875729246354689773189245408597815700422666188497340624856320138149598004376330065795846043915184335791995478559026985113479853451599416005901986246161937410034299837775399769176496138010917323695116487410841825221434570438590521962073541928726547521610895061799134084504494320245651613306601389449069515272653202408142905705929176174618218201946902084871949443617726471765528915139932178587008117742101437000288738234865800954779881060934584993899395296421321579880994310969428472995882931907916864350089633529000769480763937888703227383729676752800025625842144279555626287671509838764336914658169046891922752668645096977078992896764299846544534830057395702558639359312737962264637006360500523176779411115945093713465816275208746169420497788995943273754792827035708518761974510454396475535781008122650599054814675071497606966502075599526153231253477397255426474829521902261939619310510189223510310115963885407417775488721851922930802118114693271105851267547058829718240312456158749337809564394587636270045917124346901568791185616494820062839764841047016789166966356316928032493255057541268603587334838295025472277185237762654441278855949533948945419559074468912165062462444962293913907469142584989438743670778968492326243794115204050846055666160550960648819979370961724644311743320116046860576302861434315899951409476925642799520101470711463996825334882394104798361628129958735552998886956491997451807337596503350877995187624759954917434946277756251503180789080041922911909700451979448668234363236614859391637351496752611541783638756595572444254744926201669272249360142079889788541630569079480815174694093890218484770201950219102408656935776633734181120407441004258750206987680577041292188635060944752109489779304110771540327996020636463290533623035335146886255156727392009248701348553422078522909832849336141103535933845997483604904388391764443421974036201678866365511576277412755501821067444753343139530963437667950135468788006177953767187481073671374332385780450502234864693582382864151756990203126027851796420504574987419633623240193436889014020004191890233921849222619131355220211821264164523757894527488304878365234173966700360207626515786727465370572653603942015751238933521935439387645865549782030881228816772910957660353167916451578612235168937895933312899270593052251753640601096048684110212489714441059972909023170225215578742585479365187604950918734817614103193008960822670855839755612369676031170408184215732230191663267454744244526581423020471896227573775950657506332305115834247918899810985254289140142381315686747980848100038969458065609487458467873960627434226664306143669241904179840203768729532144397360232286544836506268686951112237025361449900470176200946211485801671755060020328666265704837053004233179108956000877672551159271095751162420174069123239056167789968459048962080259591128767381688217474349348943717249400133512872726287281041080531802820093993085608797260290122970316166325157850223645660360975513263424865171522681012283534354423023527177465341399718176984432766082555262183568015504968716875975373781875006219196150492053206393932775924723272860747750522953919901696579936669040517978232840950320353161607851085036794719388754988999354230933864712031853862134000145904740809986531414736023612155660958227444399204442264816161466511337871323252888304442626898960815453164965368692284064216586872423390504604459275091265635741137306019730697170150144202108451301511269621772364134429777125988049988888097794703969874621870101247556058378984664425630262136326534379268807945019987619876944410196975133221767376265744172194900364337330476497830007188269407818038914263685502661965778024558876215202222229379859867734098931462356427982462379796896036478004953724087432597842408846583312753015622964862934407035156248422949455948669769580576976419904059139450399978431575204937326188915899301662821800978353199017128153913266549239929676155471951940609754000315018020043038961432438123219530873895405445523624423405026402183599732790903129590068947571367959817955347908961271318042478083501589327931012411329778973145141464168566061030525896665201103124375238977167803609369197340631998834024220383708043794686186580611936032384763681061569953456068226485531737034547527650040520868171317420362571710128592029366632922016460339004859099949937429294296069023797934570428448339130224775817600405997263078385976784800474520765987677367728606771949106149998517130056187476570728316665025937773824177260933295519831531430337959457466049227821070614246426691273374253959630716194135025596884603465181661616718070153757708529840523179104666519519168342822954368518684407168722150516776744321730659742588353016364471109470060068579740794997598518029265302718885371722695998504233702884292354506299637034548964877247223678763438388204588081295830440534504261645131859514372474494074672662848721044502783287551453234973756873816039623988810918333043098262312262740500784461394926621314108378560244402160816025665272717083844283236402453509413361739445563209025683642314969178257497857872542042131569586917046865621952930419120581285936235272370015725002140256415346614239025814618941671914458301470297034043092975323445243062570497582450897252070152418562084957779378150857499169881119473262342607783750295638639021183655231155876469379675711666223034909876177613997429507624435522967307515930378717446937051443757101290414961097637980863798828245138500338311979093008749664775760449619702532468747448057690305150284865169815047818375034370301580334215046261985329619841715988677357004633606729644818900413895950087717991096298377388855018275350928345555973358248938257728413848508225440540411598189483636033890477932649327034238178762714866504852387570881940419523922116590625816347872962674110761206102403450740046038499075303054090061338341954677232874168877338779476365333189912334160149940969853825435936126170604457132185811000389774387485026325943594676909669073487507365440261165694375457201570606474449409275566600491815647431018080886036601803450945711493114961192969904191742142267074577370940340718552044213447034316815256423852339715173281646336371978975607855857164546733183536329095107220647536368547697857502351274744607039372783583883351449779778968660365171123748370622942745001613401886487492854533070874580538490592624984604836750692696685444333413918350858412315352697156367794904369160546147023392497524560654500549094899644325930294693464919316869184108418732620238527776546046864374008726649545231968495485493991206001309774047770764670673820280726159099599000685731579069176459153222536753353964649030985252695113495956083107147117453305482578842538478341658897837773195316968098121546936543534070927451287709015586682235353036629790237194852215955696463097128599309233244496268462980175048139187848231725940052480761039740004941230981840431724105029705210074986118991896296509042501491157294236853024310331413617828322436527453051142609188457161137100552871227011225662121924254595104556932998278620251769877503423885197567784873087279114600504243526868786751892241731258504476965220807052838990418309629442251323078857274433733741431701409809783309033083355461186059815881409343462744438892188520212194386689654140739735112179706262886070803855919522643090226730922441465206887818573634558249782101709283930261674641812059912042982209131716862505662635045579896760020530490724089381895170460315491132691140423737995781595783831487875353983889209169491396189490847068785102129492016881489178760355798964788846269040636579532778445786328317480019834757837586344878613541235980951466239823877055389043366954830292433356533746239396476944209725650569883477965027450069906587516746088878088636087092850307066990035988948136767942323207535946942624295510994397071105470077737122321564538892600761326222964823522425189824132324655402408867383238718892721629723469246998258934654223877312564799462655703531088986113391370873582140161571065449162062863722189058803918667155506590008096448334714716529911470319293811854914185212658027526703301317379497758020587300260137023387668785319575659301971809037296937624034131760123914363552352357055589464753835503380108270710790119260805244340093125934854250284196209592553768189050459622305032761572727948824630152657630925071393258830491549277160957822091765879848892119598136796168607293276748004248271583835710610461527478177435419082260741647099056647254656238365855942136185725088320721736653616960748785951612038398165439819741200461417086332644739714969573452803159287933534125813393374770852300136962766826676955469820145588622056524080786533352517268407738168460094165893180247740546396779218816663687450762168062766485255624905957658845668894367316717587060719718761584153980193064023376557157515388031554846095551869892159501344992549346957279245128712375430950043371681729666196089340580769556572527551126281385077574189106470635662707773425213267139257439362357253834438980982416727731026031201155577071923425758931537555536857374615047452582505414675502517989645762517564997925612357686679207644977618132258326182366136373480678620336082467023712332798691857848609701563425591139405243994507745420591808765000006129259887789385383828364049050637169470389414352148480649220260517961513618799607946809890226920203091689952274074154236710981967625857574697235002383784941764135299515570168153092170141008868126877464009170709341700879604116436328366021518087076149537025436135454626925990406667990056443232108406384675644901064494960893594196428642420752020782921913323413666700306911480044465759875048574866174580602051376685191478984195557657538435234694915154795717978936082410245350902109882737056926170678183109462888696283411317791033115396412693024862448125065285841870038780760500197302729933794964964477360512759926167770562963844183649791928045044934116798687083352723424346489197716736049622288436194068294441395043134763919742314692061691708882612030944074097120245949862640281825338774482015376661749435422419177296888242243177258386438070398495280610698116436888999022164449798071861869537018456561101365001173233762873129007544107384018854821039145785355106611792042810861254582991347389268037742724515598986664345326620938400411698599730959247416471478128863908340760058686763151864426938889842359196245277053488729326011318556613188432550788756181905042627577024826145718030336028139521305784724289205289808963537774775347154153434077207257719297820424267155975783620151818517851890519295388643789391048351722360799062818312175777068140732537610106623867085266115924821803630140563338875334570524599546497420425357945650596877280981346390447286400278961069100303934403803752431305730928639292814161468813485746505007301831166002044009923885679424271716065386119254027248943452779359058310093041916508262407669634815639146272911707396545377375065276524504664998745200797240288948740896210531965055498239954542397677084150055881057402383735670244149825717635477632413313924940327920400303850186253593217873396611665437861657589688400546720771087794050457423893316724070697770775682637672228777578921183521960897520257883520488353417652204745803126096814268409321218954407971349445721693817401403344977576817422176076692106174863916059420167697524583662661584397452544785130592173942601551266122614832894575163303278853317677878988107122935176051134285647044759161599733775202001651671670831644112357420534572485864131835396843865337404337167699425399471192862171390519913199532684119112185298235283299496688802313826880238636780353790673211557758985813671620061787761342125567092848650744359767053336382148731439956392202072991179504655034777068743129288103152025566248741648137759860345953159834754826050616442144245902630271688955244614720182145716010338374333796242394657937534367863308101427734939713577433787236801860160795982131544497458958278904893239019646410346917812240028728096539562462648247224523709080538639333296655398095929977670126996992876276197512795238268482020164395877111488892197897856229352461612137115055607940859347625931599443505305497767000364610500009253023021391631754438240750120743097710504246094812716737348390642794689202786903780024109160376863433422397429786465203117613529762417462808434725302191791827505868749002753177677548167495141361499109300482220140025422143044362749149302148859638964340433722221873195842804337344607888392745786873192586948653243017162882180201096842659634566748118798884494968843332731116301774574588280763672162206079890996490463023959971228264022771820319089444396752755418400950205402103540612669851899511448637925652015875036463069598906604371767111807722509723161538982674336033889341518858635523416491180391375202759740749775384821985716669542553103837379078678527687546392842955145923628673803292114036440601941329221974318275000906756125524601907153020394017660063928788117647341348517661947099077833078640122828223412333939137904479313616273031130955978981602713257859589561074650197961388445899910772469508852020280964718971619950703414279979760095964841194840829382742022913971619259758213956748702871728363575435047706566363453058830499602061111475434814046848995397279681556594235150826004212740700903206685566200747630372884246158912264758550689101187183244387056189423975850126343321232914548079183875247250281722006138330204613591977296183789736948423107571884230996173135110766055734751364731513062417241440292901636641556454050411192549999788722409768409205018215292345601811694655864371332747691431732008175428293151620082159341199160205483897780960250750475729409049410367115799428962056807297880681744267834469550844046545614011843245149669371049362654327172955323949541220592770106351275950487619331378785530405201024631323914008293213866383930114258311066671770727352124992466236776787197583081651071106015046847087925955878845527925959833048256722527089577826158500533883555138175571983578306944841027493275052217605988754504868025661269266621311563128954952685109775569036807528559174779528577868236018553007567877428334581383018113232066575121138862959361405539914029572529322513242623964355075608640281096699934127064863035533774808565254637814662813688778620366901297001962111695129080269311792952644536456201839275187920209264107059054355787379487819940089305642383440190489694823953505713090788790442849797549909068639895072979087016969724210538342041885896451711407191773729879277428226264146699638112122066943537469352377464402044317098912970313499367747986372462495778808799121425732622437056292615828661642442975004865755786509208312864002371528767786737263800780575024932115086393708127054891936604812592640816024333595315803514282716026229574903520403336203602176787812859900124249856374389043292471834720100422082705173715112289548316847399501712897018947843730214543274530178891162093183980739247441200312021132167409353781648095729296151985135743510295231124195196192210498370542376025189547012124246836386050331395890184243566559789024466530941952654861169380866256539267388834706651825066733525233040536097385289490018373276507009539562466011800640859508039710844866971877132008305456372567702366322847494847527773412277190286393985471738408333308342605843351346562358544144772528489225366804061510871528660175501017863105662659125710100718746876327631874881801750749421715889526809054554750352093572074125873205448525893936015662349295548683472726205987512733916061889716556216337114029374159191136642359289573539938421844595158827066927434414045212988652228928291899973882174625686729724533971849627751825242884490847446226274336347815127485195383315481672311877682138250387536162680330799459788126622655098971574378568711918455612549661290740802547273448763339273551403111375502123786838464000187756571946681973708615162657648866941954146679387007835415132859422363657939900601773091814302723573142760392755180457425322150407841645763067502601006774383505576635443757188397035997301792138407930387835930652217529728144038082597528661604137146023476745044460657964927675530292251223940788246135482548895867509131194019049984658823436851261104477344701626790901881936655398761768691329312098223304261361130373682495913546067003843437800470674455885483975525991064993144454959430262820832783981519562369884632358088296406071255192939000276647432847589258881692906861334781725859134021810880107725367676416790601564680290992271938355120752837726450585338646451435927952963783797544565200454628292880990133607691625750718279531984671481556826360417917526520841704567420592311579657176490990785463042371747128492515599159180006529583387396270667826470723112447629104282872723050981954690989515376944703001313995067773876727991685208955542968460347662268891125926986480274279864087760371245736589134824266088830943149273120429086690241328052642477094298437447610319903886341769479117682080345722856737816201660027059637074817811799244652883881197787834375896614127057203556867940226603202322085538775496977667947305553164271895501023182649492499174354893345492848210818914645017395289582846897762863284578353787195174023732441940591673501049942673282265578601736463091714099146650059667397963687748558629959209595866487203060048563056438348308199260731161491257370241730986364280134454362349896246565722313090752789059687360388836574322320355100837899625859862371188630571157002482025903274177289753220334838506831184577684048492228957468920066452283167201160557871516145367272224321849512352252352835960120997157598543743705190703669535656741029595489180574832278831169841840065389786968776256002002638956638168894735059050269687487668620120058733871301541432831203775744528080734531110670627982942370213925414372197377139739054381141407907285588582154856569897905993041205225463574801256133769420524294240393704557382716543686162059327827807390481598780583988522066400038145203771156549271864449737099549984226730009968870859172032166833654566955213650945205664300233096197555648656682832937716378692104395037063965947432321932032883973223874244742955789954267107905157124429757766805629632097614986470469538844329448985389366802366393715960715281766060309127259328987651625013329372771645277335362118983006663713209644374195770250048498664041226912010526048478040685390330589632887855324068302682352240697599007964455498663745626955047659209555399964711733870149639514534864247983766585897490131494462606150041858836947103446970902765552096912026270182026789673073441142326772783655551083015345191216272080247972294540334281592573666207253456630946985356323777719021116549815967233222532812605645451775394659331441912978418111984287607637621373002193956489459821671981980762071212072697502365125413866107438521252349804222004496540150472979388379109915530825089664184755519978560347730601913351130691850809404010191145223985949268537170411269061355718438348492588702472207364703728082792676955169331899159215565203095928577604310612747801737817205956935160938319168808875466498475772680478298488415618547438489212882537704395080826538474562096442974715078731480564343222964150964910762932523843582428660473224795583491624107390403892434855201564968603604594815922012114360817190518865811011013780641990194397108907674139270017821057769416928693455525935281901618293946068335769037613358698132048489705884112478879708195326850789677676506669974599437087687351698220862015993118684201156132523832171247371851263667792519844998516234825770241935866971178298748992058745675173336188862665321469426989680945034893959207549403850335442846886652260099014385738974979437304032699101411530719828579995619958690847047337221077146452077792293458515642285688454015184734938768631027388056947043951202742034542653935690745147451377882452270544568011287643021099348729522500285969460999383825202538044617254044547093543369811293926444870218343007809788702660813923202259676767548832596806089300017958928620567615897522151524358184105468094534745114605590270575666391778166322610198377276156083414107468074202120098862815200983318700179613574827714050766821162681765750686573572479827939685212719101184345626057797014607646051151536829746199937092368240354620238591010124956386253694989665938498859149334794322689726164079132838545391697930406114193810221402372834619711626107261299893155532315963567947247599604163835013095573981454767909357196942697332039502192357875357016256401090330848088102181592114170145854752895511844360109829719198103800839911794371396427246475539320522516251664268113117209828048464536618998810800167157192657928492986611853492346822483471747430872943890344313654332666614578977616689965781807216809061878131912223028345350701629256508236320464237039911477764110108481071915361314832334300763177731959469025845203094490439380755985873600442162314155126230165384178340044484189017911940864008037362658333832866357611621983921408164313561308098330353237185455160592692553015266690494510945003093910767328093699930929148764215773777525381278396114400067179239016654203989865966608408647805886963542048843778068419602356608877707970608247790580512222131650061601369272763240827889696293840878364294943615488923102517559513072263870266862821946334597023950963734905094536252385515616104171804262814302484331828158705989479515932316155878205623425018083141987070142757198186397686193721608706295297632988736014974730601859073917536969529944033612196542923803749706000705832456154412199550117299509376983098969140871823738604888846333930090386405812370346219493014032437246392916605135555160904833815945137774942949024309577246115624278731735703025482381924524035192718212416908043128730002018327271249061969788683443757835423064571131923375656004035357761641129145191043948823926880288738486353288665009597512585792351945811697457929794070655892374325202849620967510829895238994773906508649369459892939350469309230970627955294937382102456733133352708280987832456796809992086021850083127347240042439503928364013011580564116655471169290879111284086937953463284801020087053097445159718732252812215638561916495833555757895586263039520106071189813647677493107061830699166689399544539846902641961369018995355771607204457527100227597514542965861352822398003763591890319546765150443163504595973481231322209131558212278674187662826024053796118021527666361738776182875461444357454535516746997687675493800973417821197471574008843104722826467329810685800165198949083090780692759467636758068743574931021603830975104340415760341611907200456831258566569509496279516452376324487390349485027215354415621358369726016243263755855031835260749736109923638361380402954568451187164389337863842714208122532752908028093563127793512933650278419630129288021874629569121024365281703353862451091234237061976362248487129940506928214457776341372941677366057844990897454760060233771153872510902294638282381889290927799860907868637314858346417743820075314471025584619959662181883983432454536382697216200994493949060224225404377032434832098080494999584982435756557026309530415068625224301617360371931545208218568028378084259421390698005320043987525452771263737045821954803064172860231478022723672674722679214149768332330000574436309800452580271897898530579473524183003054289950056866847884874803414676583057670863848207969860396334224994333978578330963885136201352976706294914006288284849369093783095270014166767275733191972326265950191433070501455518720807784068712139713361232301333561833627063526416342982061282277065407847201128260510708987884952252047555706048455776624207754746949316128077196769934080919796511018937960780923214180587799982670425358509817368751051608898004690984885510526905544515935817922683779227812510319125031449279514895330420409295700450081452826236899887600450568069549543949546698855350844883727250375168131217528671534101496110152572684318162098799643068161368588495309163753233805568551338791021979673724596565505706667886445517356013899582428329639326153306304099079293654401581934891790916048209985662675911060504931513399478617260660447312661107053052373058133912828917797604787825642711822222762591313228675423081116571981211935196293443825760991900711199570833849894614900105927089515122248570335344588910258693436091046717519986955954176751473760878530172425624553179349062721445618888897744609931519270300146064609777342946894799088147074319753900887553216380851793177780519408870373529085781566400985469828986835727549680218867539185644413716041223107767558657414432342179057700651645847035595997619568748443597026133219375841710802836375559101255997612559304892173917877169528865812971427779993583794090686803782212193617663011144520710809147328492689910492044261003503718947948845813711203622516025789743783624038844544060454939843256473974727081342338918150378200912125822899695233931939720801556069522388122817093731717632522363465683633547440184093749733534371833762732837046900976288899157150720620750978596869335045427231567905947486019500190027290193753288020669717796065184418756392311291439471086079288060407014190980084004022638720452475329981765251577709399883452706582324078305684389647013169698871685740346386211531283162394083929338311320683031834202358486493219011614708162443667842925507068923337208564012333188291685934397094868134387690871908552126220012294835498658987342902061635075367886906517471038219920098541489079108020345783493124443218307667447730669287713652813065796451557582186395911103630774401672386086989380647435949428253305761556500806587225509745432645085969298132124878877217646708280512398597558536139654143984932824913257621668466731113945481963507831518008918818749708607774671094344524285060412860423692893436000078228907413743554911568483159332941742223752116474377753943816348605914378267648054733672436869806864240850720546695033217632855962746215399993931818789996461142522659933799955391009238617640409325624111746338282348667464614299889984205383797457779595071986954234489699452597194822843374477493800332731301514090211876914452807606006442989132240182514025537180581253844872227490023209259350434261882163087684880832322098733221668059533272733099620566327539415416121142839223295296287760968800076803259059064803386836565652699799485777753753930393325614090460276180310182985066981860434165298641756497044039111852858546495132605107623511386649501449249813136589528601743249695883498787452857475539253624683274314824619560993199834519424030195290424757577305747780105370679302971477873244800633588338126980484161160132836435713808691538273267807447446741744680807604113200799295634737713519473985298727164365156397300283575464346254989288422765470607924756291192956634317456636458882959180374625422023414497603235271632071174905798617081694775472522100997292375594728429155993944459775700106168453122783165677392203395582205919112687455242685810672053575045567338483323801392227281060521801917007483622706700464012365560136432095282157608597348463013198180965639793144107246854915589551108287382792724758614207453814636414908106084481208250561933590910757841371842218455828376842182523449374764798988306570045498870798811925365910969068197644493565433430038712431683164372905400375692060440425633295195203745970957802874890351102918704171391273110567035715158166185129249687392271383725101099839351588570751357188555005362732981201369107009536737700852177125651337865624735072904903817226328579016277823900433212121039687249551659894109506695696791003011645536600379321020328191183825864666578295075361094980366532387099385478825901750432776982623763770026445553191353793540681429066506521286097861515928674110847046282872973186233635414400881797384087971010546253886590270906402325498529721723531302814807474752661060369903454880021503948562219901117263478555939432629899076126911568982564726265109591483601044782321613556108223511544085361615133250660331476607909200592796647062584984106674393651632362820697886681372644338259506756621359536961720953086669177866088627300103103119259375505211886058904114709709258252891199030630957093098752839727344813509915511115252436654552360190286468352577345634690959297564930918559216386219090100589010060267888913475594126823978275713793088749106746742103789189882534452430925211964974298196158948377773360094379754199371151940291764252812406484955642205004942792163426397817636094514786866317939820393532284851881071513288843958234408094425166637932084648367081042183286492465510148355443953580999252769965609810504847049668948512968180665660914638108599928540106333810212929133861791995121472267945592095317539828580789366498693665497283087466200009403305029003519427688662144241089339349062787673134419402855764690980707087655643910594584300598554328416336395585419113308799330729008978430711284366395629775574815192255178360431603085774413177712351398034920499615948578813233058428889103630068650821901024410788614855529797494271160971207580387088270807151847927065093282033804628924422106446421244640910658670236654264399595628736629738276487570775659029482229198288432233626537114029530331998794935327223121515609757848537233053598916355648566452338089494037559039146682741794931011451249108805188838775335599519322176245084824179009042657198158564746079460828529838347268093260904624656018078586089522957063745265870482864984985909865271149748062550189634774179366490286801562292739943343486116674209813336503655827298611918674474497827373225778636035085081266389937695356166194917678440613538703109811993351202770698364297802968824289594598985557000836807893098617837624097762232701018039956341521048000073991679092944259072229527854118166112841819507899366305709495671832521597639360577863303481970714284084186212012267379663199164887525412289838113561820966216346824783529428541668260438108393532090255272567643806770782651820164493732194578570209303677665940804943020580798615232223945449473669123682963546965436972899679634828561257552519181487563931930316171484896026838576898294869022018314808355513886833373973319064963613009332349463613717374391241454984932471671623253874210525370936448821652782845754386547094880555482737223849652247678135130697390719278193938554089090327599781857436779988494796608838006056456209672602434053565094279806567352603321669761954992902789916618265500250780993749752532653299291766659312813160336214989701129490398681927099999009917868392663482413967516151047036848629790180282084411365110324547694120259573966333326545970405034932120368636406339221433008614618178335237521424734527576568328782388969927507648238253968817134901503631896522501629414160538859644324410925665412847228646315349779321892437050031915068704316938947939773623716294358330474310429690998743946609578765905915743799125232598276679963333052162289669734703133940922381670458995126050009527396735010138487859919763017499613804367015175493745106990716614588531999106378522840187029323218255958958052302244289970571834218414116436886050285025334358111525227873393492683064116049439634589162855198221439478488012446681733486946665392876389484861594529771990135208163297954730010466065069100342849065702973327447572109202884858669827265603706534849015284274796186995910308129885176840134642045458985305325986414280989794480945131696516741910201447287586229834810123010817935003111590683876597739524301115446061080548911687307768592927317367715132810145650365485569734053620151790797662152441630971220177163373141156804235346507653746680221425004901437579410007856676040355688440067567728905065382811985191707523533814348579319981743691903055881982961326625285141789434382535196017434099801328695848980724027904441666793487794867822272243668501315518445349653162328392167978270530831240069545192891752229869050290884974916139000252960495623634640564808929900098381409929340285374031017155688079012850959221052419435448906296445674503129321529317106073947431791003173265611049331566183990335867564742125118398095125150411264833532114980065454733107225068863890576765324775452776069278218798142150063521162351288482591594837865081244030263272415893995259467407320133112310313397774055598777639793125113534916925806114802049513707688520354148173723753742855329329527527854871302326150668054453267395262035671001273827080681670578903837451793072671827711937882936587270558974394020484506231400999128822715070663231969661447869508282118876568234756842935320474595026626701214345962980084919502068037257661024680448183001179509575077727854544913906911979055460885743945086612187468569813135994917254039158250565682401628842300628843259659101401477253616771409358569171295350341870554276432399206897401782276924361716140869308600688415906562578519795266082792329180183075280410640713321281918571094277681322426724693197879839097418839786944723581348560748795329062896286725584334351746723679370196313072238984537699644116642366703845324564447061562452167139389838377275786339774097414986978293047935999460042612783411745927061191013535344709910158003100258474960264997497700298243003695565445402843920173989395046106743325133281063919558691348630650189145766603934866754269408712078776297192096154450529489715455507114976067847798075280953188984619977696958686403245665366973654894047749717710171700640619686288610018028696956579108429636252055768579070746137775730808690318653485357471983173112093302119246740017550186956650111776230371960464922230661467201230034716191139123069384779762590344304895010379814439626803045288731240179896775732489246798070446669233651158069195857302247072536080449836544658717598077718883682822301686036228740895823983192709180630177574878234992670409427512237418107879891056325720572345791489007115606253221200906415241828734752819686125770900048694451511467885894359299826339903992113253011420879359890271258426511223898334162058368156904501138251253148618197270011176727415060153936244293230020225702521517303560349618979165209233395899041360963356460116092130186534386918581791126759655294993379303201598530761484976397015169244045922103064869589833569025658573821403174375682031991972832097992091244522004289989234863020230321077498076334671375503752784015727205670840182764491008034519028020306570229414054544653033804861045884663072337906906799544564184623758100269826425524340040290714038616954893634282505736668656805115923265843824756209066903312927430042122485541775703571909560125361354193467700492954969525462960093971068797758218962648781889989945180600743256626983137103467488577469968108163274665987861566225864093328421969504782013921709628574395776797374742763971063230017017635316975544442278619981273902204937652653948448809563135327646973982674363263919199895102179764550101632105570519076693125936119280665871673689705891877592289521549554195049241909111433074829216062119139365810956455607589222365966771856971971253497445680335116982732914743300580794350170927820011254262573041503426223273575865926617520318245656295216995751523850482309526558156521751088447437362007424644500291359341773666507144149599769344854290674137753105908741154418336767107424595126249958916197035613460694115716245934704628433952854118423222895934230773840107603855080558696902931862414482937850804871986752412429264719696481998359639640365845309709137023168261370546413418352367349723176251594237554043662296626810936858069106822595546624880774983192200809777433883607345220836338519468783690617107327257469574513668025564376695815829920978831676252884265644692226003738392049390350751673279280106326397897454973820567564881549821474465706294944031789690671153786558875325555431902565943356854062095228501153118085490695114121649074305143722226630664444299522890952789169143631792355378995639735899537257611361230025495564789380554484676759758956744424483168376222295635626868127148143334202974190358116908387413350456078866398214204982412508530289148129139030679758578999803885529029843986251539165855139599031765895671189145116447619294459119349894333098438811164077558248872782055960260151887380739277492067081236956129759006743188338751590601883759760498925424358045488511336018913176791360007220753056991782892636576928029664487386718348184443128964741410739757416033425488859358058746682843086134620851995023563884655134772502400927314329882001748766433480525568733303142411885315041104219567946180232444165026129391870245240464984432394215804524207106128432602495141128283911580915851240593042275642242832273049974633246392266773040298832631799186862253959681811293876960837094471073894762947012816781616894111696630175084496744251524577391665650948072054841896834670270868591926909695017227450796540776530498692098994544353802779079102495896609269562081919894545988664513784117760421913068316825135119763615834068218092923471884601180102180340523188412558825008940120354643142881860950608598848490171960379686386211171194758555810101896379730449810919204281922935266729596812302648518986104504592998814469897868573905016813335343102487235420305326803109001861977432660982909548538105253045279909265499085663491009530391094159067858489125553205261303027141986021508801264480912233546592880611152991886367587809079806449002995309948514537566510652637178095378013001770298659259613724824588551924463330263873973715044550283037607817481168967515190794795970545214727173978279562346111099857857884239012428538694259930129652995886182459503109999450107094537760251554817025362263987429502025736428269245957242802061884927078289585781046218658150147759808378383125087838234626082402144398450700210597775754407027318910992900473387904744829827598646598904101104737414636772602191565290799738170115371148313416195162166894771711061602927163768532255756637648446268303980184749671234322207947733518220695002878918716141632997711274139448495388065344187192038434415378048381709743887226130107713579748826690743981138349499868195538806224661496477271471509116135552738529298016551868380202878968401919854484777378819690611383500710539242550965537598012559891699378952856520994538794515802026817250850454407510155999553224503067672406930207562130913376261618104069947014331388932792189024410773806246927363163169018499237463711635080024927315959022211417865163445517797750966158693683051548151440947386416462244239762021929716234884767719485086815566899921553633405318091045110733328944569307556505700703795923816558992477138019184132329001710990454368428954269523900387528272258464965422273146311618927656129362986878605470595696049867008637714032740874662730629594238054430294079431722610302366431030920411207620424607017964173522976377554464252531510779974661054825867067196073040984924878890338199484966896657468458821793246697292886200133766136065897214436413493668978755176429098927431670827796328816568474491483724777505069820816443146061879556392261115310279276653943617791311292611514841495654221866381493332580525302006858727462655359707269272321388871181160098941418489597098087007424131538489720675704263212469475569051883324350637003846835727124914951930116001232966036739816261145202834535785630730848755400423124196662431628829550743655751517964601073089787127027126807127410272714194126773782615900641674040620906862297478852417062186177406381175489861470876206927880931419040087247661742670495947244129881268122880319287089829380560058899429750488869877075768007808797679361377548457877826811712857693755229868061778206153228330149642531295091002554316287872267965888609518392473497753318150846043915585189586111516725093092093018183551960159263940507470757475912909194498557371625383472003313959694766131427635661893546724197514526383089898434800171839782335966646311024560791486580291027122175164418846806317200002886816459911788407583611561544729971658913882190502954744291235178151199960871688702785640742222260905490239644417027676421565791225157755072984524163136066381004605885334649975892255062701726427383830388788658719300867273045144971687751337644506358497596363034335926967932037480007629116478904206006867265719188816396015755484216267924315495438105305053810658100376303197070775151980581256621973188804060967503324723546464184896935681879757770207403369177415575990739451778025678467867874856781185124796940422586970054399030789143553549464123234770399742577608817594723152131717236668326884333306386631295934968511289159116852328170629335879900919026046318939918526692569400365739391987183390406432053536557506865912402121386632030951088399294442309141064024893570118353110808934234598278195187286382442808184697756602552171781452994011318252588653823710718476506303127514532771224069951936626858869009980781925533851998624929724921294223890252805592575074967667939351896793632924754915449339480026882922823195499747522156297754059131250223572340307090023630197080743971454443886409653379448410452095705676272702017299343747797058080618441511677389972536492901907582678474831862984862988296478284818239377986101186640260615840192590835215630832835871185578786808317064655779894400642257550683919473941891408522445727353680164068035866160095310215235143130912952520096108266506389359370417088582520986330010304598578477552004012057032578695419681902776069367649583147901254891439945795193116617827427371937721840111915328583138741792306386586064881159931281034112398625053468129534441814671839602296155685850404846627959422486418818290260070283789524270170229563339165464809811164869266997769713897209884358951963911394559913883634273901357956989450013952675811617852854311469786932159180864501597860583542614925692122580563659968417768239955170577227730114840916954627762105010037750588177632311390510497197487360488874000479885319882411476512197248298817163653089458980871651549177648105989689913962659631188370634506032062008044842742818849279401357266151984221887836965157957705736954874295958553322773918387178611496092451035757356345940984010833408961363057960925516927017291177460794543891141562160157999465697012399139814112224218010004599487927028537015696101722026721444441311100806269488054452065949912734768490476552917242095086404477250928735709151989655607189630769058644536806350373600364434628314135824317377500651968609621823209726890399261966441775777807677174585870290570279610727208801108510422053117148392589641607458497457172427285857456406954828397826377188848181329074588061389001294342202100479512216762073675410890749040714926674174871870337572072041162263997831658304670610826024209199652526939737524168079129097662817552063928828883918350491025385372143891477034656923162534806466505850955565983840778855693282283077220308736282212811171492600018543230914547559802378690903200300824208262416542908872567180016417234693278336270320519985980331658279858774225256572439807235437968543416053978451601630350233737689366283895819999331723446548607975588668955041266366857490227768102580006257614550909534254222546674343905814947191237625177578075169756684401938212584319888068451367849441866444144979691996421052203746554381002054324446676020889257959880726923756494778333282177098987758040392887915812919639580883020671763318194841637480474154058688814531961380514883355113323934482732492876310646705893459447776210568555053232581688882574172453629436208572758622446008040734496166035596518287975163319210753680651583758908807561012015815376586855063815787682578762423406976683356129425479918101450643885194219557272905254406725146720425640554794855998845186220151173142425469968817914346426423947492870272010640367226609621337384409835706147263648892762875727377437468617008173618246198872021792485315516905278124439850184768364346662084647876339764080675917688912631197887392487250727409119979503806341861403108071265380215024963504052143820896266249986674471323122210233406940859507704125692995782788156209274315733820697587111836846209659716924644106215989841886168953712640407802332894821562080839345807074818850296894135158786455391287369803485528233702386008885046691654756988498224943904585623968639844637478383444549192771792371135755832790630190356887921331483306544657963636381322384647498378291885125404379591567252691725830729592257998086727725268114343461712538212601108499418993532131423496643247336160962872935213985399458891461197739493952109700467934867068189582438314816276758743423763482149315238982888744907387520960136818134854162800116297622942286533276946092800436426451036312208070990207889601762025592964363572884024611602295502077490662059687139248390531572629910705236579544820638521265820283089034108289608377879178765447834016325552931349774499504158678187621083795960529948760059569196797198800922194474067102017073457095757556118579728595436740432300531207631334438831721865429235023928572930636141112810023884322638584932513924236139621094269929033699775712337377227831443275295086835584616105460051805385031786721346758450406614589410575296565945288325604053178388008135828383679925274051841544970795843563471119756705448100595288192334822590756937330080221684396552716606510479281693665183528397419194276589594548389880421432275383178681429814007427345515340946625010133090600628416520940019668998329813689830479526509280473951461869287423029925018628164403180606262208591360018825088930897471760758253134221535560454378716768722459230978004621876845987506681803062567079430125534103584450194310209046188290548977566008173430804048185792112515455489344848546608320640327947167218973002406978958394923693128155172555239958117120311313217320907151745038133384432886580400801408876349699116299846454857128677375905279908429154865056230496583198450848242914526653758090720728982600952590282503413870988553829156471411661990433920090073381995375072575872487069273885992965074440401615778035527267314988501561461224165105424203355157862074152136276053548548900432206011209128095892759572462464771866338524782826616046469113230928426297333284365498944458919795019958447989593658898497300498415685867853990586802697048424404212782566133509090068772602243453154094903770007209163600090255199216473023203722559082555651867955041107881441631712422206056980415557386175305982957129277219377301755185240265442090669837500004199635069952641736321642942171303921016487262328366187049702787566933260213091907141126806103771929919447477806061413245733072104965455959570367489519951897322257943176914071270730746276710808508542322735688594457388904035857782420183234835930514514327915254985923877925540630092628174553450934098112584732197354816165015269773774387302057000377008340071374494248551591568874883435668535051029542488397215145632378910067636815892994357595450261090478975676928028075178178079895444610690443627537042194708979997752575942520174324893712136920521844491635000581229737974293033052798092929629753908127017040915958514966897629543852351636697963655144039005643273197353324351140494138744763292050865890941999266012106106903168275585402024813160882658638914794545675753719271506100807369914668196466935479038403557698798358334056465163626411876456315449418754829046256957180764842051078212366117363483830831281623296521913805529133307670454151630443573897827716172661637910095239056660518021565115009146839530926446380033695430323755130165624205510910179546352932214447922425099722394291476987230672963383425115222831599062902623873208002841048384692869059257308867941907071478099271898997129221245566666428082512451298641113397906312447353131908264990324849460036065864185290644991174593756456134603467450160676032792269201330726770785951243431389800262991275467175296783337986700749256923121584032409749735433575535481853409389113033088084938502336193644485128664077532251467012733429662181752833403170220881598165196421904875289862641395412257670028180516546170486103692596290471763213199273803426039067859174064529091016676648905624936013482777019915687577872503135398129046141978269952575443306198366180934008297719462029764372335579454301931017918252330439175090420394583565643118457081784866978118684285740050692565543475289487575692063947442773763753342186286299534944124335662031650315003888571477553106334130182863249376305167398652293149801045973359504856530984106215469836706769349252721569061481410038649906524742066839408969923106209682954747227654965553231329052248245289360237112498213531340175715923861748157134421413162404981542951265631925376666654431864009674733812810176981660825311083863550754295305149181053240506893369825707434710290854904946441017892958634460967978696197163068996456641179314185714049046944683668791332498503109556348784671525328684005514341455527181898977325461074698164288061061463266782148349667884218852419725349538337147926486898782960117054935472381965549913458064526380931647365246282369113349130003808470743508052014248475891270622726428574193981193653362503297743685891498051104500275493300235677680252799489892028351575720961525006878829910865566134834236038952556042567072996479559529878649379877657442321885211676485596385795271362841518805427651016326971233054806285288270054080670780399734725759615419896304395949874644684629313841030136082125418573314858161347761541011409213335743993902523837433880490911428355225271447257945500527021447704733910171141532167880936825275812031492145001653202168502362279468705117309008858233709102784665766052349895648936440227939404047553569445362528632515390738285695467308394388884814532011275754545116606599496517343177780613138335402629646878675410821569321726531280405190911915655812294601605580619627841223050258122410591725275469008235476597616501770420182145638012405218560859342257711832058167344334329914464510590176443754830648374133963570311562354420692912902219881305319589848316949609913990508937123244833429960324573630584579159022204202479092732399008636308625614205330922370119517212965304595030664298961473536567499848454590355750145157465328356696382287596721611289587510956758310624928019576769059270005174345426461298909548455098783612306599287695817660755234183210014958797040642020728694735537681414994017240724963107198670465143405054980024530829402372537319910682526740615252935500652240165135083932706346433505879999206456528249932925261290961829005810397739481522188553159362356601250180819736929349774502329878935080998134329430892270982297070147841170564139316879289405803484372349576445182544785037968570465840012449758287468616340022394943455022343046537368825301460786587623367856556577474334299820256356498130646600009007581401481792117026224345810943725637644981694567402845355645407714633166673087716847922331092304306136292205811308071684469830481396700581472454986244867926386551252399824134965558162856205643407982068341592976454782136274616675291736274606802013499120039160275665031791276071950775734659502285607647771822564857013461360180324380757779977420683112302853823936536334669636312472469197526158357468147474220212900851837740750217684909664046827037272805965675824984456642054071462122209867844043091758920653901884653069361228907298088212680434800674076743322317770283543118928306043131338118072536758870289651547031291746994873411848398843346889811122594405492464636140124708745274629182193055168904102788030062222572087887463499833828176226476191744328800603405974569506729930937394713451972533906497677380148649860713031893271847821517224222728739313550302861336810673407582300816296319191697442366208489275117391695338533423483554151316232159433609327914787883397656380952585808916029879927361971234720771437035963310915283858091554247415049156075761990241489129186161031775798990676495149991625765595547922149985337641604453279133335913393659220944585669018298486847521318226943251324854704083973597002492355876319387474887926134126971579390802201434206645190139643562864280360019811195439856083417228387460880544429009829947647693057880159814853667475295740511678830016348654964979591084627982180589720951334436087661803070751786912226201835322342382956485286722350295333275113974264015068052933787539785658941610131046927601504422907789510875073917883327096017735152345435347639065718568288737728619174441645459457960831313095474803107996555593126183456116949864477297676553836834111935272040682325813409012614462174333670683114775346387133225397968883151752716616044068398942681950541947568227543827474103475358205510907986684626725313480302514673488996883973087985756809564286211865106477659451129389123433411267648601179961416071543034570796507188792770837972715400473247034193732147756624158874159304152153713220449506330826121736597399317064736221225606960279072422935840968798559526920030732484472857765386682860167623869976199916526941227451139194759225143057870780250374658016999821584719979556255063279361757003533027663413217494234398645391693534431344311860005421307556733198405290711668644876095940887473108619447222807482238909953529493092501553166431007857981825647952362455580550336351461085951076767736246389154103152081619522712009159946597005953001771909215523118537084610275647135277975956918617306154979624482849297930266034608007101686366382637427045796995354980423089404976305389666748437651123971690567705271687622731209925650594701328267233435864862299245776476003061820666153995506003510067802072373484235801072342872345144643206459321720114629834792238818786594038413781909978435755542845590094676510491818648583653869449929184974612558620931298230764101995013604054876625529863880652441035633160000261276193151019645859125253437923372176876522211395916958955556289790196550198759596848488299039679364939786190583781755059932596105049668459368878280296537812424052209691016307646022887248821038068104367694571130358675784158722241465987542764636232480396415728747158530807446340064113529350658272039982272589896228799010404430750915243510593819390328269051556496057695063083990136653203569623759868297268679160846490405375445946930604426717974961274637155903290404602820379334555486088013602531336209248017206020428423129525136944389943080627564088312137859542201000125336942372477456419442448399907965705786553827778006200045397789305126983119830768768793413341447518139152587010102316989206981673492371941282446653809050116087943218758786430750199701555127836454102140871444873187069934603507843272138695131733590001697762591207351418646510142943536982370117318772458492105695062668393817603139352251022684397534566487923987893515828843005065772508810265842822443414759240647680669662290090258365536054581622432522373220196326003680413189523394252320003729469622635858940935632813919651066298339550008726707174522590653340748549764934931848516210490118783867827200004883778361884923917842321529781938687009351587430803975401831635022362955876240781350865025824235927647588837875818259914372532526990549890995681475123379132109175377022659663782653759111409042653025670196748122403727211680132349531256085619292361746235733463050969428394991518076272459861822947161012418224812779916034603051117321486092702547456699202184609122443442418128969204552915437933062055409742150869573382405643353922744481287631300243455554387568820379962218559179059192847465654902545267446291930727041586629493873267628929645067109427600969819154599668769505991614344653946324212639295375794616558476414333809054904174600014170465683466272869897940871293147578040110518818990113410452870592354077049433430924033127268008866190652422216529726066343007362596669693453718447576949752239622974723560899107415713986014715977485204732327618442143047486473543387943531468314165518485454355930068181554343031990325587376729760770262754395036882425896607198717384447545814887811598158554294036492881371390392105377345571657469549679670853853041077868688974347944659348249109479462651839396991469916443084620704357540896290285150448657530730293791008024437948876469124232463398077765786759193560518257641164991803590214802862187896045129393368144600296685077146700152980584920150902551702278829084043391982275785345888843145960740440883165073985649959947236751777254120703022231208027188007952603910782615528084577492311513799365580714373862330054349822268809032873840314326418274668145132623646314102567522184139623764915409729174292894829109223165951600190488001906907988682459552777132881361163402489820047105819014191757948862944997881739111512264226403960131949447462240459946574233137944720297534725957090238208431626689990845144309867654745757925166232489963495309359397197967328323969934530356584445689064474652368758601712463204500250644911749939320215747060078698720390361081098622929295157845244761148630606728601823067513876940402885776929918972002390567542855273488051466789057923663130390709033484621180174764729811780937043366230282597063665038581255438697016834802930500052024755891793710034301393974395662633387216555096705627577111520602384868713228093258735317376503172625218302094943748104013301872575391483777979685917699019023400007215103948316344363276544284832782705053810147212251919147848549355378144063446089678360814414012851446020225678729438469499266557914530763236534054995838531040784838385905471209704661367824355052744710918015380094989150043636290819911514706897467660697783870900190362502140909769675513646075640445285055663014957749860091004902143090373727034238967373819441648139420095388020502892095427685441127203409737433066736048674784647442183218452006411647264495203266772898240661798549982827310803038235465048276829754541058587400382650861415266523460730116382234804453612705267068960318917167192550358669606669148966797214495805854104624301433637046065381848289269797503514587042816891251182182173533192914238733130319038772245576329075256097148690674478700338530956865874299317020651436697386826712898329414484882338876368937305761387477181095415780551187557052140070665967863659420502914033570417268869669637506759697648610001432886592056264186967191053603992667978882165869586894852901073176164445075386995343493742885161555336874487873958108741845287992423194812596045345411098899105806340083198237859908682338670153740799021826767441914923112365882694242607370713808585043376653293410817593635963196796450068261858453672528472116063710401978079268851812373087789719766669098988287578182873729949894365752425135401603584152820839715746343544445353412420894550133541431414933447511062446044370811396368266716394444212002633730698765344137028063304257436820914184055282888942951596761424200067236919729869183689373346701134463369283536152153069152428615372396412491882757662726113058995237400531848183796599764399894637971977068667752761586006786160821345786800162731369779256020386412650372849246647583317151062708045973020389262696206797540337959591229449125251583973845251015439025326289252821296893171871482698340628777472646554042178899509659430497695573262492919918796296349139531192964950516772422895539517393562056364439841297769165255209114291887014053217486416165614241837972067090419687917684839096162739219841001143654225267316149378187559719741430082769330663170761225907112352236677753404763212056339846317296338800235782913293812254270514243992665498018846566571687110645342945581570850437458192068547421213533009275025733421241299072017859290533900366409234924371944088615466645307826942440279059813787694989317900468590740055202721496792135797894320338281766608058889752064993826615694043647189474310889072028371782075250138890533640735142312189716434140304244129006854570561789564583041909467077019866063734623538036887921947747684188239838812487657907856405001407101268157020646187255359919717316221688952668962896467451477686299966637646305941926492690526182637682292993716650537325106013603915325302087818502405642253403556324505655498740049723220791026459998592001908698758626424395334509924419657481333371552270513405217904585263993208818967137168654894237984980539688786809501227076657399043209598715113110942415165171192625997774124605956347659941440026787244127571465479980923392161840893780178548987787202777615002606609977199917178113750904799329607998976641053151106541508085964048484665280864230015906778446173284607219721040033426810658533917382656993858681196128403775922162080243362255998066697729495186960885677906872400023984821759613553700899562156953065560857180035177579220465410632516803048680616858906192090479463803872269467028816847365460950822792539409084354094582842593855405028134392948886726948659253614472231137621002668770984024310636676214977746845512207282630534717075288169188876762514304691963941917278247185354973752393136445042877933651752251640479156056267404781422973529018484450046302918595546445577502032473750718459845897276683951049798388425961359833271864475589092302703445395964483380132509782362833316977153928069035253627137429047821711661905685251873929940103529667235120215446770503128168424498870200213436537391916051845672866189478376516046346504090463802772788198243932712810151646466222475543613437675228692334053812019142212711263938728661224871743594248885976619547049481358887253462189476119505677067950596723750229316984043999612028309077808362401784177606605551240758029005458923184596258449060280681988492517991983889509526324274456296455684946310298800974153153727943458224852090153590913456310309366678012076094938061103314619889465133114586758666105951615426419216609043260990846634984236252775897818822979684487558000934546028051942062977620966286115483872308706295850083598645912738033507330776046485465898051429745463515274110403901594862809782017364835940819529751373903181815755111466330397583906257778713635993641607836908780719346292773390619568283489585551102380327449644337973974148360643682381275931312182408353346952400465817706527670885535633268485077235368040042375235979583297780221265831493200453186203199801960885134879385249518576928624511496981284391703725038545306690922140158992715373438051708959569682201546799885330391761921269440268304430983522994713343804208912426298876545127712349605074638206918419605096016427080227624622417804572418295741878622191433784655570364288907194277624457271537834277767346986337963779769354341025359945204180775645134359262148691702482154778403153491652730809652876756195332022445960414842853426813702138866326989745861076351964749929860681620727206968909889122677835466805918682999896246395382158482639838235109149203887736755221076254032421697900951637007379259657846045621267200587383102647661450375988722932397646167685421960299581672939285355216476814284230331277880520197378028716621936667777717567937682159477695298110182030893166018312467762139179785979928681940346986152753707805857130234514743196248383457282028637333235394378017074872923019232178944095790906557208682639442797439836606894321461359704013268555721287424227270943583750702634724083692927925437024204101778432213867131767331102370058473991519652596174433040784703299365430455973580197122009207714363396426728598997364792933566082116833383445966249304287185639003819665477069972474359205797806478569323938882100114561817806526964161582539004284858763391009410012054294126788308131407379066811981807973147641512258361943527603690886728529584660829942425933949620132086268134385705906040287167399760428271158214294908987632446451274300708542327096743956907434338726240680611216790673731398400564791260933665271458079785579506984409398286020642529205111222224670730307710629580334566932238593555586017748056940935429541822396746532055856267865894859219642539147850421236208144502283420893333556676914330968575304030201216995550494363773921555113131636020508644741385051511442546822928732601339923946176199192301793165012099257956100640169513464213115870015627411505129398979396900468358447294379962562149969260569389679014160074573780104618226072860828754916440574903067246132850588425303513792387831510667268478993058027686529497863106436841355268514057274936735464136560112815319158295501626632249909408362223117248016596668737436221372760820335511084748398137057879643290641586603812346476147313424064049116589009873658831314274728203161016748252878342895054006174199635172801784679662987269463307572431003514774478121391070824269649820645220897218141547487566764576656446986440004022352646367479323904946516413653727755398681217898528819448039679294120298389645764255950880947190864619872610188133582904422493482290032274352245915368845380590031467981501830053919596890579493605461364789734997407489036250371241678418642215223010843215930612703929553654954884524507801563387971811057220960841369168503571340773925874391452279750066236684638202207559734074554520946451497326070245475259367220771860154714068681700584556144340433594337529192822006882508577564693891683628655956224644925335012496362843761990767645575028211374678435398243224185013565447462515016262233476141764019913234480835734315035304745557574083981843763213083730457542703310683452192480839066464951919485948795541707321238270538447702007874418361871809402069962209340905168055191235944598382510314398261814887482359180296459801503492088675763743252338620426056025158190204257753775910550647487600503891165703172547164791949014259188902014048107643595561015337097987172748193374551313806037211925526364594251852973041752134741319211586062908335708416892609093926088435463749866114175851458821109068288202018620183881047702071745914100999599098685075121947197939328294603020525659483261358969900595737835388448395603954171111949806516179285403957158064916860650198163423914406742848185838175605907574426785190985087381270871326972458478177054246849128537954576202898754251792049174044870762477327930435855972453593148624507437216371673162130150188743901032786694001762679602387809109997870490893096990461293849013925948473151406262380726065024773803153820984639878210978845083263800791034965880498300942770105264901760957612534130950749448632790180988311685468128253304777943642277256180456396910259532192282560053563288239294092022686316255197169108499461797310286180769378806232435241021226395553946803089389151068039092912209403134838128299200690155475105504553114633485472653444735529301344349544004436673372855329683498295007725377865705136435725669528275843148006454218173989254226624149032694426106179042587718982695973228612434848814596548834093869508878161260041262219094724218197096633818352730344815169198308830458814284953729537821006722127417529737386858943332430914009407397733491419474416738002852130951695933871330560205943613049789543533498202525305015855247125107435645279431833057372992622943697812910418569591808579425759159336934092944513216165646987841656608391080166010408565147587331201307102923253156070440936681431185904795221556274509519766533342606165039379680840758639055073819918302580587031873603201624286091407974496215152864934103599018483465893091958060979089706136383384401101598720066351106322213433443241812791998501648564502061762313323280079764713950635269240394797151766213648753004453456785819794410138836199620557197865669874287494153981547215274458772905358983940617935111091663294777035310526192691335820221982328107895345492423474490291122470007017691751847240443674424837337442876871664144521412938344811677837412881464868704978167997545143635194366260832832223175998276840089488320309203550574466676239044750345791722180600470713285206809668301566494240013780539921937815241034576864452133839571250177965361677079208724138873123762357965623426099414480834503736762619524703800143265955393019770869512417528246342690575764040977860010632824814351699730526872442991015071566062262418380105987379960652805442819989938117863388245664510322943454392750733353825446741552637537851103408918611060099651911214119437053077159533914133647592851202316547504013003384047676353153289139098165114289191061037177813565819347042391159681912474549981171662755706151376868927508074942896091721624259406336114426161635607204802919165744489945966633484216957548490270256455933992968597191798054712746191628419619636365216511584321988743778107521074709087215484388398890323356099022295333068022876519736563935772455894588303470458334970395821213429655935955941510135243708975172128163189764364762141435094950301341597489442634173948494229915422543505749828662379904619327645179004516735661363242642920936644818689992537921352587836579629002286304003034632366379595812165952823680504624306552150316689336717241156306785620534958543458170794801358299393886928624777604338058540567294528615372565575862709464749906657023849213281624579782019082103685248307145063084184841851526449466007833195848333431961007489924830860213873104028175371980154903381582941082498493952234623114670567399461600668623698212918457546390830056666432564171809968926812536663136150735969702765765434578900899468682291230967368656336934515432152553406583727851493280123979250391607054779713921342040353223428627816736115328622171883953557024805659337574302835927753946148728658862668510857998143566420089834547555973996679603304929764719765587889716414452845775591093458023317903438235901885841280678575057340103045943825681535509712633314974628113939864740121382638509287999331306624077578758103429766067475621678592315507952270410661272019823567406861422402054361017649003078376391538063762842697770640622958878623819010205034845878981072901493524925043124561241817641053514051713972379186325931627811595088745450170015107169564049898604645478899356993129223232135071799865045374723099856168820962912422321982920301136008437253368843905610332655453471582911670749983484181941698560993260011147334418122914643177303555310808127049877462205637504139585895542528657496750117826236449496116236462146636771789853540196799097153942025440231387864866591726629731262568941869485926685664142045952229197459165596381835920390094348768244755401546801000866624550967927630700110835169385992355787046194456685170925663079421919025638980097120921746475283608633659780606799763648631388771197500667160842343535630174651889219467405930076131565272702480887832282741986592496393698851295638607241781769349636248461957341131362604011998933832844507860365988167376940128618279995216514845015851787680907320268831310596101700289610907471153237124012159329807945004178404846047350278583331469142479469724882073979172544999435452660771647391417222325129986052955388484702993906877266606560281475934517399386797805886534267172146987576042703625404392788312623055760400838168639031370904166459301595972480632374665058259730533883541854961912080865412721635595822904232202150501528496434361353876051604020709556325834174582000704202579928806315275117743911886596719132329876200741524092719602657211414778830384574458651758833603317799507785551520094157294505216612766126421444107468687635780683970463260632636119972776019053235539584576146421429363039520873140862933947466121609184048668907117211504818566712854699493098506397028036291046439063216925847213730788883836216047220516240447242142672400485993009564408777149968520642195552738883560303857535222241850218827080298267939864705720359729305018326898300168849241850774875124452778272543822742418075133532165152453189952901575783140374027352714376666182896434991913694730688224587317870547075512348137730362691178104861574634677663017119514476119100030679167814794197229160967521382660650147112065670481995515179176594345838734691000183566695453280832891654845159308320085236323243659914917533194111805393537416226557738860888757581853077531156705343303558842511120867223979990292471622806324903052903033153823402589804114826406485105586396826422122456128137654879920368222280361833088644660512356910361966659876218887059745838227952948189131096376456604067529563957891519616831006608093671859928719975137762071738777438443311694766902111536011494330320410870369387482521665652070568740044699965529089534452501807028024579204460941413427876936922444850555704265089027376545464844525428966325532735921266071822174511446844023587123769910061960601456888681793503689613296494162823092520220437942160068016627232351656434400520579628544103141731990819296360904007788540322634566485081921171199194227035872104992825335633809624613018277982508698897950890095645818884519334868392565186915594176455767160338264750544131895531361385674483305390942172340863946155015016103340516569533529307539149528009123511036406371493142188641789891166380027218457975798482314675943321486022062450083229365118211846902465866154532149328530510544316807180614247341275482628843885972619378817896535549622435687368089522834197876058457865376329168524444170023320975054613187118579506547733414402401591868253001069803505203974076949744409069816197853689568498546663116813120753084647027956212629494536914168812656257837280740083894296092815931993327272782060338600978103926258010759732427186216341896245675823259649358126750656964141680579849439918342543244472724256155320296796736383826048068618313303735644519431673964658454761324706553366267097316156306233580465509649284110514729167276574721262579255359664441352145446930320383176041675974387215435274908353900839251443949098973850299345207244157949422571464550382184584727372204348394494710120878918341265394185474781852549192012128360247713117782536915683272200616353694586819225665249208042656973131606818624308276845033593890604816571244454311645375721350523497600729578431517138092059626927647390102714822091808465259212320105258729130820137575066191373591055820690790737456019479764062587733567400119046337900986191232308743235655589409180522493883768987389549089110264745165121307379835778115827577959547545600229982952200036792890852526903121720685728747923738881370395420271108156724692980567867440830482916133801473231373201639303568495874930063952385647013779020417099541674279094049563508389510646159327016740788796460262896232193726204570476123245649595408959063212953103668367301205908750743458894784938740935107109045500978482524807060577460819076834305994618640184434941641585833825329483576872491758004860475135538815257985127958950420140726363579438085699134943585576864198391940306090955406887240724506006128105849990799937326931783239405860593188917134027631865076504900407329330712134177258704257650072351312772894793902568764826785369225727975665845667013404274404452523641491592996848459296065820199604712783393510033718460544515521341779085052733682893427289594206420731904258532969936164005081089381350246581325793591920630876978691494439801806548676651612891402329305022910396454229099239192391592093700396095291133326595078785116682565499531604407694844497648318445196527267288176565015316159070849519273889290300604856267026407331071330449970364749121085337758520343316740510447193577893587649739077690550134327531103601067970576031137897194791457877719169844256641593743330373260066826180481382867169487456533341163141860516270391738671655154079158143363151993905330323914163999094690667314957417614291809517059422614285416413877231797721171642079886897763141844121817744188028342260395013417176944391641441190320328600876074959130469035474179373376279111148562675393999421188737449423958604839694293311286906271837652459204396503586848889437783229453608583773937737499950640470411124489572408346022077487996881194968977585158212613159707849006961642280760575604110956085967871206039083990933491190714563760151032888331603246335061982354215501944562783746180479784476097354425621917916855563764852809897903863517862143975292541032958381340262667182215514759469149372481648640707703619891014207397696258962559682606410369049956857237370246586080527816872236764251977523490783921023632908414976829839225806088406543222656696467116705435593325389867873975725400263733343255076383081990439414993568307320571048143146710369327819983054610849833523647083863962611225316094214715435238172337760289688516562642592033103699586453077010186988353006688404742403203952190595098582444873478956698405184695362959871332567755100296011274118878096627405946591715679579309487021852687992752686186229989471535102677558611873584423241168563413970918212995286196618032734896500857979889113549279491217993016500369662046009878324191284873030894180899223990590885413885830055092250834246949670806574648925924434469114512188517194976595803017644719302083637569499258039240547098602744912895564192458566359120140673158106228661426915082540345638238430040153085183397629293425707548666264854058711641844549126375026650685209110207059784567689231748692562949179729310027736084108801450855193812289070233379098497004416313952645244026469222082879758528793314206665710087430399378564816599706315167512008133652638394700961101576828693781065828191215882324346562033688100411458911392278875179175636415649230002332066437885420565303863387964688110407365940170373465085711724457925329266143095477010338884445294984779216492886412570383006870290337862731959147780714251070903938202294639108877004380928736833600711046824669934450335926954435438803580099591747449557917099318806276050165808990457931980757872751264556837358927541008496102992749795437044746493589826685402574962731415399007648673330781260773437779702467071594500892414193119867904465582301842750367468080900099577776964632342046489732007642911976115380605257301265062021122305879807293357389868297419583892460311544082140649370455280112211148723487255138836913246880728630586622117382082312529710998657090348685754677235965485535480185371060509358848268842533340525751793616375980366862958141948748034280111988036074177705069509346298186831532996836399363404863220186158729813603003917547492674481160074155284587088724037427894584086652430489486679687434156620459893783498196703408238968889680179678797936552220833403181109300338824240482185412187628193692695360262702701917101792148865631293441274873029868121051284887970399380717741156682386383238310794283818958101888061208678576453799372729945074174149045623322985375394270662468756038440961292396231562289578074947891277712944828373890890609248011597727068162376699573741897012194480704585721936805830903506813624899257933121955484083485460799105965199142995270582041290292073822113746000513227881317615835226429917072169386725955594562357726347655655934157854939516525074132438622870780549588084278546542761583402079526119240976794945689107257933763311378411646355503581998784331550285324541991009421213944558144442583759827707493566772361545531345253591089939305020468513051615734640487468524089675385411074760465595184979086985556186593868964303969393597376695758168638473535887689852772177989962382369591924219441647960572693174004421588679705562076398143409310846316370677969959661343726662304988669700243221356676082734748852261065109812313394986457975945946377529809034506887820065691938594698899139252265757871224208517919917106002240576173498956651119502389874825963813945768349847888830258186851879319464039293520526164604763246471858124534270500719206994026422427292613450173478541636679359874322136742442021193058484137156603972846636056422720018625015151067097307401216623904635392121654379350009091493103376542514931207142452388055048013954187574556042331695957842069298703766697446277994998529765110423879020784033552850420124222645565489997099292634468816942780579085750860574097814742989143178341794576697885756952100752924271229865569878465086384586408443469592200380645183893615980543322447280060572209657978786689129710428332340678226811116698762657596895744423378640807213472137804508783033198723419121459831025694665694305899357417432701245005080862664217289162081046725831136126390786044901499596751580270879857085588972012367021882664283627631558711013108324861302476332720087227041675376014830247302942963325992924821552749242690890240057886151851385333012773161692874376479451669078756005115644022228239914224429292689209259470636326782248430162388041901825608043850878851444948935557443665746710520407618420863022498392791191728102846225567150711984588765216839903894658402777370501062405929404989853820337582972071674474599394416685470541980429246184198700408281049777728569929772201092543368485066877412434824897866816779320496154959224029838669955656620337896340065230669097621491173112392088225897958554397883888867056756911987035788809905194974200780790108616480689821156077658765920997626835569547278953544272396873031484086827969260267401516518468845402092208613997901733872906429490520115421421444158853010382624192346586406609298720989219164355799483026890524919449642582091304413733053738338566904409484065702937288548338358633076869106973824049954708260141907897202685907705336957386015304581613190300977126963151738312416239416827003012589465888997048331774458929785954109010239218290155152074706898268551199245793963522346850958836692680881859895581022183069111792441101216267704444047157336701060732317972933340628844594541862869430420526548517705526046656072328138616947120809453174157444716989313428327156311672318994488087999607705398552590271284223931725509143451640630819782298994920148795452664888819443316851594338541335096925167527883938112547410004865741153598715246166558016063612389786216703072595834583528482639987718641537326034260792181015504521216294370035930978917281937671964867785760676628581430174734421114204829506676066320828610486537879308084078531537511849524575374215779443538980152654716737046600960194637240751100189699101464752800712075758336916152436480624407393190614097135424841596739805522952270391482059798933641035754894145236047610956649600761184215629032446240750149609190086197664203620911277892659386586700443444241426574043310497679733779491400829274039364531343484181102195804180258378510322208907368605838372811638310775666669345293585534415607217400386689381556024159416253632581089494760745243015529413284573872799136988844828165660462819465232186675599807824024246669237579155255657756245388832108508685937104912838310402400153308097679460910247174049956163945974919815673065276315927700452101159493003834933504000644670544630698153586557313305766575033225863477088800014007165597382103882755033487238700511143811635504351920136564931267254350408562204547077620058448897896367784753011232209468633759144288279166126298002173262437519386084845262688940476761900005380985068077185531764211735549106230383834307563819992066241437254476672649434630250007937870025136785590913118973425352643639959517526034720402834907028110932531194549617717098103111566125490218589202165574701022713921037039105386944984247672979607520141067747102004322415732895095995954002832152060203574605581763694878240745091888680275158252673089663278058646349367075407161735210215857414341803451019569154851608830844573775046206626133686297067814757555251213694796909025861921095197924159987561858126397014781184947785865578917406118642214862017009319202866064962079468546285666988793517573804578589110724725723117572574884974555030162052570041149966615334074660264971646064859677419102015591310524394031818776946554660003410533267197203421783934814898003112638513115081122270223012677742079442098736446821938109306767077489238115101534825200956695508124202877104870900955977533512643278754948035054213289044361252898940883228552812467629746203500567066349382338071578089547518738430715080748888467346998840738625957339262000064431044959004711767154356794259608874387571099749307407215421919456519312588707473974751193220921025313407001633644840196372508443184810170929814502930456230684605285801340213673102311660061785197489562150552693717692995426921793367206929210422890443024491427585190002468373023521561114225159735713976299486631169988808140787522405423054276141644405774958484659127599804668169355467781468146099692880562260950311467113442349816982029104275937007068716032385961665624864594155956310393971212470154756390342566588321202901269745549615567298925926407912292373095136540364502970130972508313048708916481381742218358109710912783003116304254146161860003211115400973430235701565066429827326007837348992580002470676743115959563447882061698154713888582397622762712840151631846540101277232060927649312396272449602091927467170336333707330313006628875166117890722203824272012872866153579193367336440613418183965825989072928184446235740638210941418890151438510742931289376170893626372439356635404805703479394772076306963768905863656755084417997517056347635580017113557370836851236621236743749901563277547071397083522748649435766163361359076380654473939164817804882462064325233786141166653687406664996498759689206161227634990320529301059335218219694377514000397967641142400459234572303252405486663553870945692807081648669705409508637660916533440480399144771457236539503528624315020122795136249463716348320669607007071474224920192135688035460723327516697616428937187083175125491071718329742012878056020518616209040865842313042200015642411101745586624589671058296417437193597839532050581528881935686359070878639736342767841974808778054733864583524423646785165548190406419268790851555694331341414380655376260538482891196319343227511974112786741450818438948593580508041368569669359151953722140588066020060590624919206291169555568381147286455644672837022287279949194023465588130070216379087048047836606998953275585769404503891317013325675728596690135012291015996361148150893592881907860941981300009097152431786057759208153771630895653303070851147694362079226767548912309953154958030261556785421475417901019123743066442767181383193978142587085308846254527532251073346102740050467085904992134525015246334591437096666846184215632472528198086290883388283609113091990865273558855817106561215755183745569611504229358838354181236599464955416111992310327422844705052129669156053958133043652631754200464435031769550909604375924251166338887143476255041647470176400224976869312529089540838878155146596629070056112759127587713119871953776790723318796536311524041199741907044172110963150890342987524747020871826172063498585481037180332200786631804259862442085340357619095007516762352037330962731690712365057962638528733929288372134815317628907048077607625795438356626561233283785706937784828059191730528175669278104079163639280943241852660377749084064126655968314141450460493953335821444263180644937621376284606442777080413186517004527787455890808725346051019290358982975588587481514638286254732449634745141903793689498306825551120224549975902318073962011057982275481494543464751862820157788241439438434644402612612061746140927222350570105032971524115979465192561283857137349689710454167508074543992974918362983245491604894784916451308106694060430729787662343043918978230350874618239635422440636412051309351417481668386307313760773958696658844304947084888846461568194502099490085469651576472893764475207875864586437527121743930045949823422145119706355612622447270723135997975806055687047170579017862460267471509068207473443540383862340203763881549136634867719439514308523461582534097277343622340959521055365050291576241376384319366268644795550460495933744366590791415617703199098210196281525465111412171196004634163683285792176699260748614227765661049297880342506613615830030296386175226809401001373239360897732428038844058742465119593719585904205185401745240093473897088869972713596375375198440484675313807852094883917578170668914138725759001959553499925319386116578234477482637016022483433534161928752723453125521284268226551443663417285764790556145290363066161068525305372708173328318979738855678965261221584747100574838567822152569678306279795381239102658807663580231095904335597726847855782849082783415229457131704883328433208889942489164086545887002813153174417033979959508852373858880391797041232906320463021045183235719132607956346539854070053975681201017831218763375665675558133810214071789336265961895578060047710237383814568260865271932602593179637371097887634138176770726829589926943993626842280688191518452893035153972647675005321781542894827689492688766805705473061926413695500620916591613885318285662043788773708278226916944038540364282483768365499183165256810270290299284508672035773728459769041140313655776767794215578172527430687857369079474567003195277447530499087603768346397985129764145592024947964936425331981189786221930934413591992413768696109324793068540983688828890815660763832474116552756277774959173002425110097291026221051763504912455784473982809124056510603532716398303022626164172822759735498550193049212044976250493587645988363565466264383046213554190294378221756052631158941066714317727897243074693126372897116344728999385403767583412136265146757868893149892365758193155767294403072042304079103485170497805570055741606667854076788201052050765063240145841543303574502249059205289366885078511203078823154998884010823366052933103244068036406241582890715096363367697563460887715537463686399717325760819132558745874430364666669987038821603961951126865026558985426527663531807567836184276425757895250318561525344358245414164726924172566469053745993117516202088477531034460563180879114309102040069072240391293333916138778198802324362552650100434380657818282028112500897443035254422630977017448561193593337451568520366415581237106581770474838752253807685528217309022651716735067593108935176647165157403149068215770330313665786018243317916459525577786133505815894690050079041483779177726613942260043484225819379813749552568535511669850975113410145093344430861152623007675501259897681576162063297746885466520365827827312184286705832258839933069949182855141691313944837779289921880000843500555321105175812543378495040094968640566004214726729460259640570900750932320956869585910993889198091548623364139394659725764057254963164590838819861438631768079567534309440591317091453668003000690913401944165419254191396743244777831885582226663644457915563006046728137934814542209532665837857651901315750612789237188901837640560256484723471092308790604606853689669766560876190255845262878414109798663273045103462340443697654140367441532782051710884633006201199019540806788732880209822309535320664483687836503106952559310914744963509217221264317941793173436483174004210189177723735238101940282030986950841884550849416566243699115684420033576542874362212368010068694762427811596023713340749925879652231685285477610675741864081867721931173910616612568925748855115175092957950445303968190595763681382597865060150824286454119633506145856557242977430140791262515158664268129347989227698403630315304974539485370309245968273162056329073621389001811494944862170390252040892295696237198434570863493937000424613970104473682333989411878568384308615171015028201067744419719604990872364208234568452026281374792137062685285216147037577620100927914617190902335253726853157421299341542201827341390276278563685810414538850953722728313466182713441512559651832819785816080969297189907984581054990926418504826562225506695318647910640155760722158614177203867802112792239531319924737306321507526710986593331930548994720035921379729690462826968133079171790152564868600740271125737067936933416409296886672637853751630624825645406919989774483683632609760814641739161543631228114157579775976876433934961111546448109216180436871881562089032763293539099877294879691465064614996528150131260716528573433324255021063581100488062561512410642399186721819478757225016778217067011903057382538141463732810980703781536073543919324633864582999681635054154012539152758497903371911142620013911036406152764254633663952417499833499459090071227621360343159845748336556411816458112201414545945131474653272491440521616103866036643024623543059556887417635474560255879579258405959926781870538710561382636201386558192205024576288070305819178692324060428643072928586456652863198620337463568818978398672505333141544261190043569635632359947754860449065277725837905775261153337989444715928633695015683420212521916825768735095004789425783336051328904329632087599027797502176086452129024128920593680281832784845860823378635364475008537190949975516767750009981910577900320629428434256241471246601130978768719563113900277632865505247198570380895158830511981627768085844542320839728554005381489453159863620610217582432030489851090261153522819059676358786913649910605373196682275829000364879987854227224540911914903313758311660854775069199776653732169659144022884539615851545940845087472327620858129104332805339525158687469979905437473759339655507977124536722156133465883688044332470466822185183473429067225632996431205555244875349647099400225231692071326715487461780017128303480329018654888814833148367727604467201346976118666238362524314252408446494361106776385389509604384240089079142321117704498209131731522119732489871299485523741718608161584303925854278102656548084341986263099801127977984563333986093347637986862540744121705439643818974108059521500004232836255166813066234715847533879971939078051410137851994378894864079903702655137732574205481169151202743281440246679887497913392061210951564672302145669189175363729116445143163401575541895251718383788103421782926966250883399263433665760397599464458588202086980724478581255347507353243006141546868422480383385546113161460133235708153318760024318576815056201577837686340201673717674360833810424529245139027160444379884136515969218742612279680196663010054249670650639656685517790946603981153407452609684256478193201242642164171953493051340844405177318088163736904778335120448888085932666335135286994896076793065813724202620926012699378732315037744649400644180412861726522144632813862332417276374023781035770682761735110282592567302911474267999842602279865916399297786201509316502942131586631561371928585172748372003297289253800231223958476366485603651287840846049400675134601797103472701848086179550690861957498286976110385736955284373741555331761609446302662325753901537477612681116540881676664335339793122445579139351942416200272996434217754579599636822650320294464853101673402068742651612675434480617096394217283289048321892102492875260333693151743139136962704362889559096672515470775821295315883295304385919591517412745611244211270705787480025295514717372667016712946378145325803086945260971125699909843878519088228105415262105897001591909976908736793494103126338990342933603204747899200389576864241718304212658492175143711746606832264084326797042321966582873382162644923849298647470697818798145728578315522870224712881008959603803257030497739790490351950339593493937307377636722422829359688422611176261397358797716757276961390804946743969043446041453354083927366298721909022565565317066149304190499941691905330179039282270178030978249100739425876728751242273634443373278008749531832970562930505659256734852396686773026037686083170364874759668294782613778170034330696127592053781929055299042083032120204225948079606120754447717917738410289971791189057467702975292293138060937947427863501918574866522894336384297892672415712206283349024881736305163221065445754712722965288845773124639441648192293802258932080051269158782451560471851720573783126623373840025309941465229911743032875332506279601846310459633347906975681754756956517098369183346176105194851331382492379185707987428556291841675957007587086677701721764185908391152691664951995937797938052043088765318590846629321865888190150255530712978226132735791540341752676476084581893725339240100806982632602968731166762293637766142662674078847831433631229475644561750279191892945359107454437130669161639122193139845693329229571391993217698838672084903358988967657129344448890608667104838675024560535249972899513655988303235351125551917214038062804492807375483383550653459378794619079412878462668360573078283093589317729989529846048631899615573531579373771133515462675744370565544917566788207778781505563548728411181862719633220292248158579670250930692015121142682563167683289028617330067435705218466838312134728839068820111431729330229495953243759045913997400921410421625796628362847105241264980807820296144300714145705154419611700582826273133456532294982810568080000337702492212924092799016675247906382586834935417560657512118863213527383587120468142410603726951818148676677229159402095431893563430040470732853714364138688389460191549396760712450221686256766265198002353133422533999051935161460500091540257511523661186827651570260138837271606871803239031122075287068411682255150131168471110886579684118237749081528706308560938959918271957611788023266159952930748017937228153057245568470519424803731464946497389954745662862599666830014075257712734065936202780264457032817744838990596853307782695205853157667787806384858308955166960926139745850619843326573000165502634100933502680398372084766623389388080168277980032611016965188303732790328063739047039329657172760042753485165559677567352711658610596559173285432992055793796461877108145166824831036224838466427246011395706675827150061315977964012348180923305336446236990889630300930328881792556702869207373507134403223093718745311334569237283335183883572573677426136450228294682945933616114819359469967338742507181999056694352234897355430479776049911324705141574370085281476298719265548117391988453052848801555369532436301291310942751900086921045681296411359952609841804357416866190865080192876700771556604275048238511033254326840976547014633091764263931948101229459639804242532704229847565856467852409005607625907343438326573226523130615639213187134881488906103067682236301220596993194067609138501254360300095700103938842849440193607525385768025664796455690365786376005172921751183946965639123807855612994991153845845667291884269514191587592298288500086393735472787211006159364751751124711978147484152738053562926172424889964588401111813568589445776515602024720481109872748515010743611402884379441812551373735412775538085146202470523205045795983199990262103014110161903973598736580009159138725651254467710103957893475942471154640906952987920999848657756078085847560793042391189186011498578197641780272454969438086601296297925139030863542240619130768193182570298697381889233046448746464238556949560339025538641414577209275007526068276646959577716559292495755996280294243997450602079516459053073538178523284763272168147571326242405185688456997009088158113853311689907160415485358829342907215980229417059232311099136875065019294479576436325928781197994731963558038003753809185992367512097807507794128612878578732444787585787956052325016844146392942204465896568652643947582976437215256391400573299127647158796650257580561534387036446782866916972962618076002277619768965292316144432899082035872512920929965726757752119855464474495828197516626824592959794178009064081124081128463793139244133760351957402472654096975907337905281584027713950479362954046196800180101592944614744695890464331753878331228170718829633180440119893571806092908680977334804627602550921875958207814278742619225410937208953569925876568930349319497573424564751404891319541411417555614865472299249836044833670237803267732786885681682997437542770066022957343281323255695955864798198828980998843756787152786338722407204926068869556527886270962424021807056781048003003641374678495754748818487490355054131224982625222738244132602297956598550291015399142251222656710517285789150909183012914235181850396359985779853214003112352413862067678155708463455706823853799386542413999471512274187292331783454638986467561525046884786015798593626550810068417824654289131634418559809017937714044253264540771712198376932326990630476303768262713155078115113737904084267149988092876113624784212927455563670851454471285405421052771465016875333644488412476242323785922336357349917795371569402568728759931368633554398155778214865968946685141968385422653030460278936014793992413601857871022785054620964593002842503045701019353665571877520511224345785312786386781131519918412548118007588615796160473404031390133382524536612129419332823119324074189573165131369621396030816944718322749288372724395803848886357926076713729155728827436641788080851692672413321383186567682675803477592700468582494866569909127515151462745629580833141495383294267907803261225496219321107039597100710838090007074590389615811717373246673476130784221119449870076899142586024830698533369141148762734241450280792134786707445057720977941516192527711490618156446228645126620754310057414947394202925133451538320954423415989795291192338999932451674813239349925559775771997703349928731154727945332178398178216721011980267484647609218801996825030489997786673967440502494024934578369317513067227218639380011424972816931586219222360096339587956979909759092507016346833918972790625574490427693936465815558933056496418852884098014237122084779138867094432926387951556336252019813424022025871391481693677773096554197922408521923760015443512328130878611150685200912722624223444008561841329447102702665972332890166448995337858688619482781559132718338637225635261957561134467849948435877447883959767907560567758437994508265448761121531284264716331791360460729740997261585355904972320349762247040729795621581857670447276424580918258085936579213499493436464115287854204623292936395651947199285521391757807061951630566527254858116891059823708956368328494239383570498551854180916774365022159148095028587751781105878940031109571342095180305728511232835246906192284902518393707415626898875724833163718972648727668650166907422954027593562471958814187144049257991081404495374609542411588793382978169244019613450054464093126049046913463343198994760107598499078481507378900485529640085440564424232206144880477318809528509532628427202688997355867883511567539756063688112208551166747750360536329871961510503622354883181840591237102066708878150154440591637035057228118653835425571429652222128251906157350328481512197650638672426856614918966998277659310517078532730597520077811389720957260730950767139820771292479076307755701208922599354526891424067040432353956809103190218857320613308776770093095092478250606509745811523819847373293126476949953299100787992988808595597378964752921123135560917672869556955804868088891127274704581669947820758009130352699861966842608295934195000228081399534851600566681537885494091663662324721396736060972589582233812612271648765001013220795758333103090284629812962699476968974021805695051496594175284550081686797342015184198781268759906468863960765274677006283964606609673571696349044649505066018946654492474704589634213731480397422766329146025697267035331888712576726539580977165328876412181207570749986153140234393464462693188153925860905577769534968326448896754755719655360258294036242574744243809702716849300172840399578677005818796468870557992469780350224436735771120636219847318814033840535502300426625449399648020657565524940457044264763111303751529073830166897788452879778255203193621602466574105877048331695057918540697455857783115723613424534742754328080249828726174859977112770824128143459728401578434308086803840883321494371734955250614317231950431492059288579010007725007232106383696564734786779381994643951341123376554310760235357598358188766407022768130139422139517370617428606976026338273091374532009621288882264050500542152680073892503353255556233079760974902664172824829775339983762629951924532322158588232206208752728526219512899126556923777966715945709321869058470600971181463561481225354527005422054775704097833130351739990257063636241799410539533477794755559803082056763376879131720321750252108342426720189032979524165618493262346296457796646262142921366154045060112173504859252902731882854647209890337011707306187966220155313507098325541827926514407919483404956859091999291375609207350476208432523131506512345716784606692135139160534209796295290689280831480137343269988927713612140062989099285181781047210960697092862426278110079645964143999251905803061745043845612703685958686545246199708997528834703466709350626152631986199562388326346543459198434303565914105991810686000494146528022415269443108928917399937886342765913527647419640186154937426046355061788805003906271661014617784326886198491526323567928887052358177142493638463546823612021102376190068972076349387162252162130177969943552000617686985662308210687150539724050525508806746430616705922307730603418325469176228867342023166162673932690850088294271367129649171664371846932657621427721645273324950757555673304576841514042464274086927978843675181985521787844136988294525947281041277135498722022399000281762972765193381626520131258007632894376736085065940750079364165324938617534489637075749595467803222470063616747456267390146073236415474214979715760017592404765923317449287480968758262892107321434269346134787723632954976809241570240421638143688665340679161736848610189588444468071867655909917573805266951110432734543046327396545514857617315622817241488349493202536382589577290152611333245495703134201289661979300002580984260941897767894347707008080404815771901483431831792240229178657070789183078675290503567167246703844772440247717867958513745845517452555098123768644630211937008603264440251146438190741446074706543736642262260265845708339243275173440070736424503808064043455026425098489225648033676398701637086699782423045632479199295720267401575208835948904465145094758126828981331770852946578914912971123998767757688325832626099647590678493336444675875032505513064178483440002765720107096179354304062612195916453294745325962183066042663950967509657368567979601321224671973653932299562719485135496237795398286141805812392301979658984256263337186798445824261503388912505480895660894575940381305936697166687553467858019493870620360541738081175423351577518972728106357515746780939143355188722539967804246539752872707520697123495188470073881653673030427998975314101215404626968329787688014338416130398123349478030695439975603929229435573309077326442769745241154675626512691231669826025084486020843687406507329036752211527913424849744414860799966370879093649347275082776673332278938936935842223085588474131948099165128573887454523956875714565442108418963773594584514680149472462321524143309453740332117000336520310587632312010889375541680436058532372793224635787174927442522409694751360310886784214850509291911705002772868377191646274255103656428456682642998759233155582545009618849433949746613933705482564920022085594257200253119328215833553820608886293748826534716808753044564855333938177080516768711912947635061790338499136835506640393208985664993538726503336774362339816614303446490700410273705313939568318566706396934739871332871756270617525395220345957985818761391179089797865974246148037739360504313137915931152763684604402969912011813819989553410880311656379727300620943309569941196709386264775878241485928134560094187794540343360909842186697589943284388725972355103594974824059079816484803368353794402517364080043290875253224460085651812587769929680992785261974201881394684812831461611215879658280236433497753934783176135227956879523105796899477419509633704583575742643705938818079257141603019995912703690083388838571728399494252459283259426152402892671338577483979221877856074762224210242914607866942911167264940115104288140362094985960615873549672044161036123982384321960622734947802604684149585593888954039211190299051324829190226361310836500905576790911051420728322717084803419827709982350570458645068662967323009890111404064145661255986122854148218216771475728212309094834316553884602822493366505544152410360861703452568710356641076805211548900217401639370337869026877732742200569056521592102506697513951936180219202923506246645391807556959974957513348885755347727900741237779515754710713093845318914338237769405553032642515489911385380931161025768272368695398986317743832533785648976985373268283870077950373736204745712875714220621284967023215755108389234460685245472042527860768736270992556471026157977441002073583378130039542408094573649532833467494272323354437851084742407953379385512158843941347228128494654215711018628506877663412001879283811316632545299311515694161699739316620727252145211260650857277268073164384569316276978554674121298855352936000432595250671443172561884512830928765052382135687818999296665080843579766151266249107298748467242289717213490954902213680319848208828496151441741148261018564711368088032531523103090148555333070820343947897769374665266077310731358056227230002444879482915331543909311746606858016465390469089856463211385389872756190028593523441619009084187138994243593963153264943008897470503551597532160611940077275110827168171267855639723609453166104739733342537209695913762118483418360458036540490904090293596270637184696266820489886220645928742284635638227924200706571276131165441851339105130516798251907242337815237864090444101706885583137749809879967065235185332240822104608230320999531750918635314880460534286183929520502828237321527644120177487488452929602796474617625977998744185215010506148724952425594961974822053123700051140713081385535872030597945313485061294268046894219527149547040270014364995715887561888617752238585659278718958366647635514816692136080873039899254025384418300614546821652662361081725692826524768111027454114388688266417503876676527462632697859545098686212327523939251781748672206769452539144011405311722565473711607567946161707731629852716505801908796819576433447731879298663692091935063250448442966826714317066167080540223006654141176281570949896507808405620882649815370666235854485456889280508592615339781556797994465473726172064849627667726506321602646423892709854068210712299793863562872857850026009434121417074685628663626669167016299497631682048798909304650158978002735118697489540918079292986630948856609572680917800882758997091183429412041620490542596210406384068571706367590899431480302171059024222924843537141825373306700740727708213549084177419847161236947864874946039690964013948493048668823285462331712323043483494055888819007078666714912839828408691724515268407830635053763255033205124084190339785926143789842361614272459428615845578263093505607755836168351610067654728050106640073450249291784205043382161700602813775429725776270780557895770469362430165587564361284173670713013231256883232565008291827647706561822489921194801233112612008032213556147320843375261523278216584084575368695385559112226312177187660992421987430576181386551796219668678435155041022200184634772380660376483227462098021886322053013711700022289842803818937261128186726923203296518187535081218831947296414751038192126785854111065624931790571251067552537585583411793702474808024604835482620009165857248497418203013701343779298994162399529959524435741387518196478763279097845109908892043567283909744542566089623647730926593919747434492543731968750834950681550661793405181847721871329046392978415837613179953083627693741154899279334267530844845805761803344554107664621090148025882197013572602182740477191114137148342096001131149349514507194691897136388202115182665648780258299322415739356943657230646299097104962087355553875876415327212134599864723352504308850624221792167166852119802007492639029398246344496090192617893623255211550878525111046046646877297043197079866377696526610528255687675111032594662772581715790433607383097912898534069359470178780043590439033181194388364760006901045079689569368620899752958845468815767823511030767086216857420133832116200118113406858067762606383259488950280718218867742921709586307073384202213184569653483235840809776251641220225383601765131189418540195279014999999900140530047306809889987442752555500589071840642901626350645029579791224975788321641579652985550039035629505753239602503304130734769421547535485830431917359069560005167753821169025950747718238646280924990600691878081178548731328053618624822335403300800525313028868014626295127466055872342643953045952549768663984969256394212300203433779168116178354654547700663767515257704188948457405373732966546528081428664910569433583324993660100352378189303936601934292641691558493505620193707366857311476800566250014252975903217932362562895022906844731482393078841464839547644592557218446908046894456641282009034707562730274837115539298202064336146241180905732625081559150918622730970831267855591684344485825303550766621100982254249306449599178814158840192854336479295165059240303127785822617996838307457121072323235837862099940973269288642926571019901824125374357129096124133768512906048637753616419024527508962355774650393921880029039376022966930988123675385912620736350693956245602537141404153254569156619857329045266315621295363222367698179520621246290147967938892333913176091904046816356373954720887982828007324220524095995034179807652903430355921916608054471145509886294447167954677710109955129733698017398118093337503667884708454959502648299953848000668096701146981317223954848089721030893232842358112588496985681565968500322153249911505024248856466075954545463018104748853075099370456516758230295933227313321801217596578791306517617168398941298426631573089993243605280116876394118826856091156561261830425642486446530117357061267391175389588885812404359966963001732822680701112571231823909493561154262130798071227954081237069128451616519897505222196252974008336539215944827185835899317442647837261203632312665125648747496971525137474288578077166113108328065491516397291869919576658084988796969970422016578950252416937527211058029235890358219581372701200115517357440354115650579801946872718253128632726394051450662151875619062431706326783536459182769717158704434641228514573592419035789804455890410216855320995129280762153646021986294503474694673435287647742114880902473731666099370325762471256830777489966001793495207457207592841120042783793878712617851376541073858615815389977834685298248504535633529626940242536566400993455632889477706410180547918421589595470579659661009075332274704654665343899205801803756724994856554010982359953276605971665891031111683812293386892458139765860279373637041595998716933667144300702263555125162064886657436513086484994056727539320339420086165236446698138274388881654546859268185634719051718346788884356028360128001218218021932275792226561937734300719879507290649823105615210084921894199939396627046434547734187933092075380100599628485586885064676107029833145406562225036680942994858482425586758387761424060436553382207284417025056319409437161196061792672186934694803404404721284479669227544247594629203725603611985450858095924567825979823586045334579322073761770249898998776911548959248273527560121560700711869137521745357262206043794216714393459530768987690428244427767739283806493914735330865713512220485471284495053979546128900833666966856456198209462470026934123860911454893184216782162780134124128610592531286906523181768731572502326058902571743391721116208560060755331803268589903021163945011559970934030748076387016505677777005313310316612623853681107148056685450792041566704994427998434072826353107971028999511250583382731548761283594538971604538245695420955741527841227838244051644784563327098146508401317304674316304979290417700784300659296627998135748013206016778721817874312244461837104598303295828919926883183398023487617976330143290038839673673520184397326001346996053527733105385607766870324624751245669103826277367778956723067913420646336840023465141104140157828364429541495163052574245964122930674366128574746834862577586185706098244034852043286397234266426564017839437674885608488586104088797146212060285222700664961894358569182515554255119075481056199951508792547092818186676152864539246805766039754410485252948805339122823893690716086676436025554516095349447358248770285990050767651864224215615598164676991596414187578769937538883255425898751008381135276846254887000879913506864121888703031025849417155482158794320866624883676226695316505272311720307136672002538432024935203483128676630963309203279100570792777342558550020434463390588572332332925020225970742155872435062560853813159678359021207204155119687450283582404997878056868053848769094107079720274968910674384594090863981998300033089027095025403691551695697895622850283123590829967641160377543007395291420694725937782725443848227688650231745163310036339971579118080940537613141574804926017784030165176435926183187442527188350807560566595274913046309297856482991889740494735570605386991798705367273405793587882739883264048113947323034218586887738264345938138824037804689971318916322770954941700229800658208013330608957056119089795417230617267798199720453996089028725600152802809529368285747617536000244801993444824475302063932654110206923652831448452098626619244054096230105890329652648883017231576832816567001174894164329623600888089374715527839880170162208196932234447190414456049247745761684934791272502407061678416070881408362843490713986099923564792174278804149823675317412490960905670854508890724541289458239709472659072151019867258463207815145715190981971098965493864652298349786767711128306941189147571839076830576996604144398250544639246702009408548942897705439121027191140316001023373120284634959616105797762169540141049328593843983753496893412762271423319495228086233086989486043669367914982876192859461670554902208219960151181480412760670512572953704624332442449921106207173043339764487092980845032077840980537117839430109575423260436991893050720679146133020834177699567129009704319616798111646259292686572338916036701213966709033358625158906586272981359613039114217256638904800055504852236377024415838493820778335432626155822597487211806866662865740830895626390607989440550289815363359952558548478969187681311410375107085677478058851050999440921422955307490360641196004714594263248788821134966517058371436153446135052876807295187419962527528477045286036583733341872217481467122130350802896608211189895017484826968344958250811133238649835379311972974705024576768071327041329782099420971670460034144241019247769889387873689735944220639578634747318308422154428902746204791710150444569417571395284272533710669355482101934295657475709023050388292066387044813235712033610234542233895650386542245901650692904159398631058894435078054558854762272202724144345870886266017478538082963069644006262943691080343567823137967773167250842259978430806894301784662275322911192563614125222348807163829014357098964255653036317144587917469006658803469357517887067384958020093282404000186992300739107930129799360074951422114887940145131857195706021783164747739314035947451472013288407608576352006296872748368673788678608216432874806656818315131852900771182925968794958242559486463832778873431484586970837380824398279770211324677539986703880616787004222306136939572465392129233989609989974537515403332099850928742176609828130117877270889228592186077212676744470777230376149123026396666406379603581943844693105905783136512852275978611490533258371381209965638806527904082909752343705719238784499045492805384950512317299775174006882185006785329813619152613705725789734879532371687790708305277774670155515168494497334389808595275544186416148894314913402063130852213594274409677435005836115181534138694306443865874323325453413506258177976531624752220809847262239190267276851756962134501125623164747473953835530186277588756525793696026744321435814263259173607017714457939342792745928366843526174201539823887402806965333216928005049834028278758568640550315280514917008363509219215725163067544944058532483317810727901794151508205756942106315443326919762758375832788756605304892608119677425576564869697655935182844476927829220409894881312847129531880844525346457923962203885586464743973531388206022882975511558713160641873475741768332934676081243816004205687030287323311948287284032183274931999288363505941761205578109354464897094669094474650451620011717421585683461429297969487213424620458823389915335965086412970640320892954937427476273526484600237527085433547011883504673668984726150973786988532062011590486228316195765131578524464741709286989062958468763647161036406885929356019180827117142868263143197816900422469820778771316252634197473351777586972232001647374213803939817183537497644599225424624428976869256321571034058267628340230754928580681734553173312604202057677311060390074348282356288936294204252483605393251838193454117851185937701204556788859765578768242530500535894415219259216931286041687105483341864324775637286739062902436681889576868306224463464877648157325412103032364127863701695410547547945339996613613403315591297141937998520665520603829107822895802309882893882435245242184794152307539886667178755223832995549837016814209892238836360835956334017127881516241965577000229729118164523603388932455124821843297261979107769688541750136820214054510126589831100325199749413736265887624248698694725573153935444610979111543127268797408007072928524023993893887806615116294567285582269799582338097350114787055027446413739334920630797496773289443556875828162534007093358961447080429358561169680458519848678241049789062977382406519491628594467856861809706074931931191495403001597663446914528217055215062335252804361923695836582540577308396406620276043932807091358040075151507790039725003853630090278166459540436703745772392993207343480553637598782633630756497328116105393863567040779159716426513714580480810516616511730314889084544129538404446299102895622588614486043972595828062123968122026602572709761500164600580475756868278366996090206089010640080099618017322111369739131931202583700793074956792597135893451355044505258216617648412545954161220463732628017571006947720118480749371530540519351496944465676690460999224873715052377023913554101101249995979618616716528900862378066912869014469728376763312277702873518825458382019332909087922546497638696623858914069010845665526634522514235965491194793890362954850925776051644029793976055418738263681649619876225732904979647370875207904740883420655094062900572670207014031327316969750525048102951622302668947727595786451226064599926683085503537859966403169743927370482105018098933350298080533912588572032462360103874657524612399855751152373309917164074413059084915022539783008753387839459123097428796715910253668735674910156013445149437786291389366460798566199371792221974233711464148319268753196531634921951798032423718100331763443327275991489502976541777634824837491770179577208969368011882928654336108358435850959084110187303435721215098533490107878446748214823029487379631769847265740562343354139355002089548281039531364188689484116996129423266764119144762661060786587345707436781526306648693562862441499322964282199490427268629327373787729632121213771546922559745738794626341652849007011687508333596217194135248016649730545206711828864976244939459078009403537778811750998647253406140959939969441313418731351786918289585572098473607058702846446635079937777862343029822289101612991051353275283417782692595043326544421038127878537946120483086901377143493800890111874288952896358591870743250107639959635404676499110581666322584838742694481931537648388152925947972961374956839887918125803133872856243765514935920037575783234229827269817018939747809264616393526432876740660280627471389619073893740238028470876851699923942429688806223631653540809722786034093408192708448892365705894813909198252244438484073969420732300631695598381839001897895046059041183749756137931609753520536866276907944923921228585834206001329174886595146952606158220017885319935470921504633896769874828355169924362606398501278815717792442349380624705489923974802931516640372310748791952310411477337470796714429562207567156778824542101676405092893513382676679853927414319947461958660216778784680584752847291410244036848195592891020974412943869372980200398603302413117986320551845376911296956416264778153411312121490238743534553522115147212874815392766735570550628256459328329530181354059030523518646224780476056863513877718827410825193382570021870751812835043880026618653796584839867702025651914800266473302515775283692778554859282308783027553390397159808497976117702534559201297540831042106018616707967856881785054647941229168763904644916135918995969513911303269624053818660076493037844258511396109683372529710431830757665139739229554716359831177404193111122778455272111847556275328411179742884390135884161105791684540814876894479174646220330806462562425444629243796887327294565603096860978089791868131284100446315621653416715045279586287737228677828264374896674399695384442740793509304136732455219511060281513246145940245871935141971846537861488808603441742942158002643502686690591123134790573012918112788755377220637563231454066179458952062698424242150504740896161630816227896632953586286328118681976196298640057395615354328943625723706035203739555352965403962524067986800001691221247935631142152881328100827305977755835596333202213416290143699277703731347611251699708946284344188017241460423995078338169391459573840255046952640907631147007021021944873279126619227420964312576434314037416228980801794239897110959372640323069682640800299816707275791899743936023461577100026648324653696669493835367804287007685880447186175958771677427679084232004227200596546010028806686473486359815519129582213898989205325942724118466902875087895279612609107287508489205396988007329138964287838480984089224578959007773455327485989686014637869150695018757331735398293174720118734404027526066534622432000897456154290278025955897050621118008530579740343507529810660684769434574997424895941531711034674760693542249610856041425059030823307746250918501211818336091825795588089194565492406159500555285333695452655237896037256734344452023024326815932596659522818025747237197536157298825924700400869653601067088129623517537286181048371276190875249832113300037809287812936957879369122565825230077868631366712477066606023735325066659100098040415776757370591650057389372381844687853619888514596689556937985025129090567102393152537159493333478553608933750739340071111250888866221951937245274440431140751575178706551888324602987998153576879737183651863007826125967721857116679420430115078271874952778260929250423345421966435069373693287546583799717891590100120390373354421576942859522780939056319078597105396045204628962266845000633284469817638014590358572528245488821007211939848475698221053424143956344966647283025631982778407425255895155697215600276522784996270794275561657413326495311503832468670014159130448804374415138808204168254938956541108458745181282139205290810613142885217726532218926345715841214851643465143542194187607561319973414331976049665343488263334162460486684335516738536773116800856454029586103230014594094377216039745685957559830790820973709070427743545814565653970819369931309732958706101026814383822916626999987495720663749367227685368553668841493237403826564326099808768435530362476664469504534930484197482174908873496786597562968228889593122502306243240515296780392170382996261445678264497718165388534881392429984516004145817583436026020644504702502141049528543529316761115186188480367394934666507130031112944378592962966153662899507622702120718531846140611470259907585134607879332413493676532267783899689394753830814452519758601795350271098090667760729807416443587135082146199790922042683044977499863668118869201844966220736828140012077918404725144667804584703852851250359917876532203924003556570908737005318882998406525404167086623296347582648731319863515071412175724551677950470591760988065242932833539035597212526566344854510773641264213547745675498004287948003774602243455595668512980771774382887064795562433627657489340914786606059606540722993595615132243126417206181644031057478462825743478958921352363830047732582276196620309544529472011236160125518059795366856741957870609819386131253121560927720645898003070010496762235286717661828552277668617965397249015277187125380251281176973866523649491266160479680779430217695868232707511316126286150898521247668687049794946795680279762850307417809926599821489208076294934678722394135303670043664969901110867163936114254125999340822411103790933632292691491690115513028277966053951136947408316263930653254510188625704434190187480291152697621359524333425494621983617740636992184920798736812778105319801923286258265895803964849225029282801336176747747374698136068647160199594626793111089881787392278922364897795217661586701341515348433430630234519149571040399714899890357434340895123145109329314150769203335985839912620105382835861076077553898259395570640742053392028542366077254374895090720680087235390475189756031879973819353956023956805475730230645798065926393135735433408842878938395868214578498328380460346185450570899066479123161100462295141651609416941454987483064070067518106661931319842768198278040809402039676114342194423437009536211613422024194858434625697398164570733728038819680587897096026532113013297143412126385232822684766513793372332414950537865324258438159386469499412211977739797785122331096229688918585784585423445273670321345423926202872837149418844844542912098629418523991146347699877246929478336021255109242073035520329211339535077924007893628457333050419873441148591926967442913712691552434647200811882199989375928880457747051327339294483994479334573998629320116655416700631222727701228538629425016544600850571943638216483710118957748280756061125613356207372449257915264415654179762720755925495224032145610507377011479878817676051855003923080525947026532547882735996630310595047880591979540199189753422409602403343101848269728699533546264259305546404641806450007033671423271144132124390913319644846432647626961455668527820452719425690277152159163919224158135387548997626126605689896086027488339283253260965875951428487932981449837442783983264423052000745256228225095237742330779282966334456410994226042396916163545920524588078207977609710105596547749682041679785249965613410015917729467189935585618855538166368915541184961233285258239867450481439756119448107287019825965726002586818841885520088579651177814119952977958364076633068872597215687893384583119328398508702155572478728918649222505744307497609351882630561276558317693290824827837436469449610815041076513457989400964010963294049116880944742720654072075488839011785814119840435361672355497112174216491711441651317195641850742332493275507858770296264059145049257927446452809431364164071874806228570506728460489110715684346704218911520789239587395208830860323751685221156251889215381528522943444876445333256590990706113963641786871990290274122903882755947720902606920651310322972602587993484745713096453225642063570141675714570338780490353115108196340419610026440905480632151010025866273976853085146926729011671626818094218336272654646544013910626689477384189525864201192074468739149089679026389912366122484910982919948122235216833452354371569702998027586553401726032098387158296018987859489005503805338081461686572716431701824247491361600154863537000958401595689571661291738237092971184323611337603608607512753992334321579372944054025402367183312867088177827557986692990601662654664862059473896367868010421648126114379979934896708338253552972582234447210111297633247223361176661539207056605245503862191409162477326829476415117873711228886119128879349644144694285682409746593499558420654336529393729515010805412045639988583870702172634494530887948947892749993583561543690384705122094448047917641031815880874679551516006755694985322256833612832502940495950720233993138422718575853475240456074321026029508469755091257383058090846234003112233185986640443162100153331222586778808545878314843475899862313636247441047703406724869605014140667520697687794748247405933294675706777817372601037081294264826473954128754994988432852960954301244639280180149000085898407775732626025878041829213160401144133367337734846906869760930167238938890813931961740105723099345892495464457380781209833508997469983984369270339771009461572428467005384436413090246650677409954545623814763446772909854395171442453179837804760561125692865748234057515208185400411963184801832514318834178450688964618191178286081360475692853175784264328124866535255831671261062070856476123319810519113025060361089357517111725398456995313436652011902122392936537023824147710656709752193852153685187981542251497547885178679546608439245275696286334313321334133992539051299696153302841131601395340415101026083184276488217108524141262493294600080314787807552838978860243402674127251213479187301703358739830873387929733392348170908093088026300353615503929459897649015987929210289953175870145024737574478341572680282608909163624110443357996621028419726974764226479569170005767825884087906114948865109995558429145619550376914196452298268141045555142406753634706124670074408059363025576391058588569075194320307378564172285330952278543981423634550527518693854218864429286193682317795713526599049307378781060462286777070698927401603110596450939370469000279848500804581465032908948215493263848534147564676182175797440648525747308406096973836053046487717461028734914739651608325370015510998873151452862215779742484190118974962467181090646550303460817927107236109541977824708829300518544293397944530050451107575914875842659992873950270757494068068991475823524294063917499960114695291470761923105231947228930832114771451938927970147284735875660657210544872211299580951826589659215407332516793988063175311609435813565876876556132412896008589589763879038687511286936039231684791672911081258433459559932322743422995805019913621943670825791640449655095112420511835975100274745681449646178985575596645632268580792293928807192274551143104984325534673897526366146783652841840190728330469802752140088754264032492249462996202961882509311256882149570127307934671777754249693069180250356456211094034797391550487008372961240236602782666691692371533059730835481274314357956756718533191108551325989599361024522717402820269370700956632887153462134877508678246050211125468879609797982483899380540547737841807318297471087369394511281249343405895547398050758989595298925809555982333869202331991539441159727995248694004776225044013811344602691830410106873964255709405577632615368876356911229807846767340232915792943149170883386158796683773772986125089939503781367273534181980438120438943139162238668095906060778766549090468962625665439238394099956330531211697871050735666862652979143029295083501337616841945581050640112164208958198999058733275654108687737537747949287758949169988194358525508568781320634466293581693118912210137390715399649304554060068547352232439627040901569838104419252393192353549816678614766294754310195582193354316976522790861467090710807094668287087688782810643459734050334570210631313302883063731391212868359449780686946126980690111354643759400248933892574439192305872516764280061888966288969330364951297136894550908810893369367181542849165957184807624234885515720180159858260244439538636591725223462695586298695029187042690538248448003692431081104837068014823468776834516904049967963950848008492166022933183088614848193412272042217648971290187741748262924628684449290810834278851874583699398578533835945719410530019018763560149570851709358575723036212410692077092351772691761339131081884086289547320980699868020774294346578312159741431394564108148932909448866806563110918896330506146735184977880641907500755301133320500910347646111190581801920669116392657363900164276325895857665446777523232500752916519181472457680948825990982940236988375325292800775579065813240579279379088577376326792906035411891014593186185257178737091044516693402505125549766471988987084099945494982086199985879190993903150817808501184038411977655456373567027580430038052616341927903426087829380301478572108996242502138619422298572288759449407741357771419277723932306598847774800372923992542436683351731383174940247340024622963734138234074941483446551040322420650324629939172408018007444123707122481455526390925649664355615300418334447281844630762301383056852485495830368222847557911209796307522532875199205790243980878263180859816068037505117642986811592990048363928837775758830374382770317947707690525104819294738043826339813243445543230889934008560160418004321122193242634466183039488412563677923858056098228539217888951802685480484957613569989063181934455067488099413258406074545137895246466690195825790028815812880637414792545161479746259147258655426686689599271937026451174973826583062059202151096204013577854035961353689416749539680574613408658587958308832428160678979337194610032041707305638114030931561829943961231662683002127953300151864543174789643110046562026479595954201634606381004356623189843071216988162264874324026516058844086944158806928390128395162307068379729881076360588306480521344059509485369646857864973874953415825109740250025480383258421331441130056136648244897371708585420989159340565512884758514125070814904939625080222575645639918037814620817297563813670514827120113965364554081025213788030049758998963473908674072922477836103902481505341684172953679931753023937987520459684167870141610895224459744823167748026102175181298649845158085256720094400666447510476146634104494967129317917012148929439946311181318950898798219951812494745398194946047882567403570032109802721500962865842960217683310411640382403166143573333776277804153418061004658005071995928224069707181052046642068848420702261409288909219470218646442505507553083911124465280966908268685411841368478632698874028535346142324939164521813940509517704189517347885865830206622128156087290336079738629602456832379142571648424487714733192671324725754652574583131089152964716920754541452331245601979367695371139740166483661456619867629222379350280691712413286172017327087543747120722787296377292930405723443465087352497700061316183248174168659913898902839816241021838304662225423505680222588057850553365875260164895861136985935801586142870216641315614786393297590439537512421954123622414233915204198706152161567408846838324540789301739133636819722468051370015900840285955534083094511436026992148577918191996086845408781024185853099172858916081154405113102594967741187951968775254882464240507272522075634095326333853238892552838392149478265627427397764823300760353088762601475556416914538226060480988968342106582915905229149163838851245005346476407506105499655708855908180086179815823052639754833046794209555386517440795968634742887361588990897642860018817076852351915565181745135550940999421340706239036686872897064019767566088801460328499479885884232091779889338131105373222004192592113212656236878051364040923296315232051607743670969086928269981227781451882223764834002367870528381662557655726736347704449251407204597426511242642789346533827654700627383636849549690788179580796386699281907854902587221954149308088486284531406330791899793168214085326043514242259718331544064159595516581999383387632064651852079437147222354038314558050877482900909751416973065110828812987436109379249520793918472587652150816621817668746069196423651055351363111684810430584934254938546605943916169045096132559646572697960226577490846819551868424067926644365582952028388159312602384520928652557850707330165426346227223887456071224038249213515057498340702394299545616414149074847007212125439617015161424918852854734802254595228095567058599731344741902771854580308357062761723425368169399160139419957100035285271041422385595561108010375522865048885828945050326947677191447521096707116018768111699324782043675620881192467134282497486960942547990099404965580552915296254601595337004200280633598793995751857998082125933595138133529639703358865247016940283414459695064996086985905898298304916656529487165850149662715988860244137209620425204542714845049853797469217240568534698634963623590960557176876878518606366238024629069326119759020284320003057112607566064513592719962612461810355620773737334191999241682358840422301289339438893532576823393011236543028034257036395187851765432414011943291977218988892970628087700033935831626643704518908487169253877606056934081989299896191813242105994288033621286102877504915554222607769344194782789442045588961929477499555851375565455709736751268849619560078254472813209467947069807507870399158501726586131424340955958559709732017638835092827941376456801120618838638639048214765818177940368448088269130961566306011074842419948766757184818859806281605873349171693599118996659392411625663668937048296173005490409262993062118770838550718106316920990117633908276586523723240543742382001647468211483606641157284811530892565545425960919107195634891896422828243138738604199054609094715062025234809874391255165859505913535098666723518465106330196159994996182462928349227091087765414845847630996757819255661660642849572541039266317742104991011631135082980316307428321140317009387513783809216220005169485731744007973532827442743193418341594401301127750166498142613680256013573775446189255579956746635367143432793819599972719909941993167153615451294653334071429588229908777397075776091230547056067266137669284752136967095076639383941652987456795660294507121454465453760824388627445122190043541974001437829061047550431079973475511290462468264064181746580848753043604689449627722582226408764330611800987262450320145077538831880449278310212529831078352795400917796844985265933027657091896605566665962229004109855996614880741174102769768134337396762239788608171224571005960077794407493316528581869053122167248943187075159410424517387164643137986318614683454185554759417712249260499377246536720783348387282848317197910370435408204525462448390721918947827294605185720160857567230455440420762766144084955457071150307235742823517823852269479445220096340084968147021161227612323821638468525791088600424564615670259157748074892886705705687266679478519539323161216334445689834253003570798736222983991946140517227461644668590537322132637162266493033578558132793600779164115334360738679849326867143785450255795240014869777824894994246856522326240511481348460783956613850957337047649291262472133148394011870692554858697576459599056258498327119843612888034617050838681687907468389086449433522662997867342413699241581374596500999499241780333619400222444379341329172324226255353947316320067746111870710991368233626392920826114014473370684463529306590160590206088253830414707742056306641190672668649061706234926000572879058588682784678168179932615296594510274058973237091512010626440822298202317006443418793917809035056705923443530259053739143299861414176525017881468904304598255761283882552150295425568775204083791902510269448185700810556960508889753919280096176159923366644236963594835609017619151190351762519205393771882525576572205017366397627482628101250890484247565009331280834870779612270684459928919038148134470456512370873058805541964213068831672990650438403201329757013179426986277107471364856367142968899626955529283257104379594837901167264986364944832355798670600703215868035166162435221049029204838036263970849505338490602900949410530865834768158587308973381506636622041027109640989887736309853551363573516027577567912610554868271716939150145189001398412422347917045557857940617114679736438289424740171861565213470773264348652417093441287199200416442918391763213000704675708361421413361904417164934027664140420196101543771484469298105509614813520311881014231735786141312284630403389359264214485837956302263464214312308783034992117418663934931399929591570851572895798275662666118564394838311667173027718915499579136661306847478510572377210798060950245955120827502992785080671760500173341300417228402543733110606197604478019448283988083163556032418069426743206694439006161010573395050384684024040497833226842747606539518058408609921758381108322744051576673407817753319960262880079884932380639962390364360511060594351416179742900185279833172902859432842821066103165463836171500395560605454926969558339849360961692205507930893309439425816566048812466766047276061123281187501494575537882216953628577662372225002652678823871290761804628725598636353489793984886654204263590679169663420930389127886887604240639833469303159227479842898494579590766837042362416941196119825499478160814474884662730073053149962337665501935306112077119315676715887554059521934618653055947337565259584059229912804194604850868837928316788415511063771432275774012985630517322617196281409375991026936209255812323522836848885028382996308069374430899700992276742147783355367848908246078282045535810842678913501938214949598439543850646492340267536749999415864911685049773103613844885456709403425571265355884456319185475486450347908432174450713142126261517006864989841716983403787947230676116426912823874021179495506425289902283528554643240649404143652739642567753179972460305826784996348684985745850273749291690856758792988780182340195300423050004781338293400322887897299415870930014424392659628439085817523236752301591052517895409567244979590348904627874118878792825400918294756462829278037016750880124448205694018034800775499985549622413310174932063114297334928292420621488899136930120301688631738958601766655455726885113951365624493345568418641642334614345227682636399518514087231187123106818830429139969377389226277401119140398047028520696826495919197125367134602504475286646348703248608286513884337574292275961720933416799586653827114161425030292267276243074223592698607703387019638703278799846092159120114569846096604802452995775782330209078542302572050995432542206322461267269914987850961177093117777190262175383483068681766887807578395590771557895964837068610667702514979563571119493588975257901212827436562484909792556653937836835788406551572483538922527806792974670567658028168794866862788874033528849780618634277637953565031263645404031008317795851739353609680162177461361422093140813550052043314867193018546344343497519495223686163387838755852185551847049029903211621393253090567510739289091475636313147685305644244226253998006195595478007106001002375539280665510500473348737183265353998634030440756656941246109948798337810601139824731747526368081731432479915352721204130873531349422932968075914657375944665359667049197642721456491672224350938814557619066488075548084167221937410099136397072483349724847866674526807813716705363204893898898789583987852584854175395009684145535806423868080591142063035606178527942248958303967645970146467589069540568621844563558917394529096875478369977565991160846399007918779589719557416074678371119984521298816377906152052972663173404817487450633470364016179768253457951627852573538373495695245159235944906415914718313211840141635978261808375598141505768262619040919592494171646540862409905329485343400840414167566344433429963898929954680211453902240943834487175315010645283432018037747763650715239185048085185247019053193318310261724649170519834544494005392681016198522563039014993345880987381027133867515058212034732143119759214455213809135118543665593484127241794650101439056474469879190999933138267569010480335141556726622010252955652211787528031085350944938301521992100608051339509497779256516369435014301374253167619613876254552261671344399367342739662541047809115672306606205202106778718203033655122880623253112784594233820846424991580412344601797525227827668167859550711166256675736341509874304740257903311334047240639044699819168075126980418456602150420728946106579197840589649505135275308396711982450419265581596142165401548399997132519631573014693826306292006301342314450672679086635225838233704334279305172220112900655819152152714595354454710153948162843261894791519108903782052271023479552721685433085991763175810652896570203615914820417775939168600948869389351295248756153398991953251467032513993584380616387153052733554646309544320560141930071224615774770416242813807394244246618338789665611080402099287938687515482682702851588972617887837699656983904222016429666468094704735426753490069913974667186244032324401034135701654837951509098029132100051142271820984557631153201269755184286095331745008297088985036165321913754723091453755899592961695125442311239621199776612618832583883593944207555358191072040234555839588822246328466403625153511833443238604194173352655401101392863239737834935662962921975588707569067245662174150736103309451087997262211621628779238160412277828816321676192884497829681019647162939582396746601231592439041586882529630823563309285232026954609960471156467267591151788702246579744903086492861981669665723022765921421550115676135952183516939264233059371617505761217463586884015183344988753115702309028915822302521671595624982682329137821172382338203755340510016820579913640931800170057103419854345007658957198025260368203102613146268803540250173990433882302175250082797680446226223312605943173037303988067550300792452785917093411211043101943137530485981232652711129280130265160515914465416393910163761874427115567045777434288024241696840527228500965703564725041616594699696527913103730931049322617233571579071507747570078116974520795869384622767202322452716916757816577332143232398396162731302890283144304128301150463331097612333114229662912577870444681901540956907462381155156060636578298428007635178253812455550353854927189269361786889052628859980040856580141330413599819429206751788183090652027241332922633997852391756129371797236095457493135249499773423421371764009941455532952935713827159672177201240347678951333781924340566111564779338414074406950892598406665004501426382279024983247127089574609831585609263335368478482102831551267585296046771831939548531875021273374055240237245941911490140327921700592989445821725396159014202547385140358504763771265511726542910158157558205349810128668826616143289091147878432249599287315990453832420561228675338175389893752144500615057988168226799959461109890396748517250100821209782208290119312376978443997498740064599505812970698368865809721365824699712138384702895416495163362986819138797146626601260144157302760395993612839165705403070905138484467978730376715453535214779537314776972525526740295549485535862969710938580778538988562155401641697442608084672587859968570687485351197714243255956197002697251137258132727114469200431592697400700976589186869549932006652274272990377808316813135594197304966360981970839371911170690288201378040948560946394858246489899145329617986646392243646351353513220908075812279138029879814169936928439583277254636869848362252744009603259127516823399273438057561790205879467028290195810842041169832672122977964557265492088993606449156976828157220899885346181739907302029106708611121851041417610193328560269211836276907709475375064179478534508133392626837547402418782418702436938539751254859140115062292066009268084576380790245253228259980823764264912691001288814664377130053154841944196065950636789275686096665809434037870402903490900246584323818558333794680877608477552953811981908780549908346729773111671924610745863300126150615370505817382068147220980516225266335448799174338562530502994406565619116696943180795668423983748714069519803599341052580703315373092731061668223392176582614810417133674525129482745370705250366040484608392395211988539055622530975110983534615207938496383275947228059726583285725738171709396679269790861123643221791519739974819769034063764269669519478161587909881913839742208683767587991840283025499145318869879122486190770958550476284991467449467163132024185373266560941987465621629267747125893879579659181629112235729909568347311504915422954108433126207133910737935102122184239774695829583134488272775701117978539148650774823278608249400318419500582095458059607231425214690600254804574508895552781156239981630689112478324715129354430485101121061969304708149494810015374310098652832241181964351641958983376536175322595170626017488449424006489746856552028430564419885121200943541836369560935528772629940545573094444385773853698316356308856892563361639219354313178973566379864913409724740748656181330200256209445040749098246747548687543736231920161452821581173100736720298754475843799738591158038907778369751790376521111407168411851053458711533809448076900136773689327756688468532385640912066000755163926030968309143845330622064429279685982162386225637245850583288154593684326986309570105270057954094436634009160849332708300343674544074106754218465107469464387689635502353097874213054369631675491171168171844791820167162979071630752145329970113868065501554232716153735598527944746851503327565834796144286196360791114846051955834917579797544930198091337808354623753172886198597478485521220368811409556531851240879365165940084976456151278605812494698344053226638200548029064893101908068280573426224406273398196521538114689913317785943046823079007959272860030368020837210500082862495404085999390777691804495348346958134347949962800547128578892070070862743472591148067247049848239404234374026637233401459787348678808660479072973931097651446147200545363668479748637008023730203026928468243486623653833471185401242799421369904687295738079238682142968418021468433933138603910744792757322402324472742440270916140847857851171326213373968895052969746539414162058484560193290902325425703505709174307757851363804435912522325817947294392399620392093105983467269529902622509012016108424668649337363301870174675389832044617205727844061575575190149700132321539355306774723361004706524257623262099554609785293970503101862430808850455306425108783098098086399172586181881986827333586429686265597403168917105669804286672282440695320480650922231663352284193230676588014834706951751848809599755739344797591482709923246527637509441858207696045719079825438798940728142870539344723560384086489339534742132206782534417314567001907005969217472356131671809443243588989888766980993024358023048846874657206813710407226762121388944391452397764801378362501327866122401527703816548478580253161227103290266090348922281480174854750099354778686417651340764881497839312055406500957975417390585641188491672474951995952122442297699148602943460577178599499799403941259080858731930457925235333833742918080900424051155995106436412614132128010041094653308633557701576184607242034718246747789516894129787721242113038614806053285051368835931119201655223844778220361520609855603908483328994204317753782933283163493587943471544035569501114209829941615988023747865625769646767135754912684403384409141611150171344433898751389216661290302509197105920894599378271427580435057687249662793431438063382611422943786273739388908578548063826557654024655233752163912220115812211029349271113310216912312294997694083429163831618170545140949518511125898716473891990156307881796837742660167782146711470906406120472183044287095365787328766203284145403408095105145118661758366299720355827068679042590757898469984116046753019223662129439668900586400222028894189484324045839355791377810659588297750416232589579422119152246446138515422662071978473387540996476763826591142574884016107667318072168605291056862739750422866469850959710247799049148244125403492960907213932640996430546166249518586006270367115891085081064065195117602909530265419306514860978195280876211415025352164840292698604745244368498445139979352638800489503008856193387161298831435143666332552457460003438814232855868713734984936055460833619088089956277542925924441583213226259630647361543103831647284193839370661557719448358321254767364491749251217209121522031572972284766822283745542344998642118365198709373052194177317282847016509192095964681969762100409136885325806631543343823918395885043261226042686384393551514241963576459856352215336526468452654669478998064376753362031148809751256997181683144709571134331070810019879470453487249256048732885536233352333153292352217621139292674398290093239776606229377785800582625580780429237353055693383021107369020297675887110773082629665459718336028826156772624037272477797573551631167594000292203355025022480769210428809689581219251816759172584656896544673540579099531876859885868632219607637867666014893389815856484499679849609172569373951518805472327027518973789734650445534814532730986255885809775746000538518896073100859897464701192532112317832308927461073950168553693868898737594411703957987203597031255788588578013324302470490212401000593096853893333492938002456655056633171521030761874459233225183600980309104646719652873447507777194176547368468991290502975202763612743352404708222317632686182340426965267497540346360032478212009533466779490079700422980986586305011440597955419101860257935808575646865305766123971828014684074365053312974591838978582927248900824201524742823095812226565673695873173930408768998639078497257551527150285690540552689834352425047643814740649178859989323579404145943296461285360999491953798175415329701621754701679002183611348433080009361144027632646076018235443416943353791600771579431178205575650149506768159438260796227589342128720292223045178059680380251879703186382863936422443110838348211488807605066059298246589880755036446926187379814129411336758229460962489308016468307146573506917392613889167762588422932771941942254470460205363614846787564124332483205182303649262371021866127259956147410643671312312556207129965303960408851602157697338470184740377892622223809763872275400606689923523661377893088964437587182187900930288383585618171301582910912208258242097220997914164559836855592326223869565304795817659457768675231357984227092292182416561100203794539338118817156563041929016816664916156289753537810286952414907995537523949285204639692172623449349523597519366730420099222595191960712584270046397239811835418202366334147789456086582432167495101651531107658895734366935518357311085089240236394572372214025011053932553788086653521046752837476702474128038985166625152810490415518208306239007480886021302572349914213864399825979680720364614777850060611227733614725677709736332264480081408053549465796801355306636142500643753913262145082472110051262261979550984825650091934950215686337248244922562966597801206110213135000809806813324127057538572553265627725495083565355993448760705668352467226834947956743563452549758806775837867000779993832179529617615883315579897227584621663908958968979753966594692811120213585774196659152600010002713883499290337282358737999206102647879817070917221390773973369395394305520584522194694672550110216993559048537991088509537030593794365940935791443173352410550796740473650080686659429413431479177689831340239223844618422581809212295820163001088659325670716294396843816232652231741300467183328343261852947123362569648244054648322303275171513000257436095574203765359100992460216365351283786503128317408567099126280056117551129965273578573317654288924961018817894981433959643728490400517054068229121393988033504880636042434439547515065613225882072057379422148121056204666119293717468369665200771307469371693732786237750298479543012268243405241503159804471910241134825329142767822559568048771830058012055103069837399434235386355266698915878713060031717037768639190950222998377021031341332308394769189770749882735575799208733818457843507795813528118143804373407986356705059648995773398906742563164098049329366588805311634920358307672316446443636824706249218657206898646167274686998802676086095921455987918343810911566449495970006556022477558471705625172475251298259404331131684524694088328360235509192406395075224072158647280029011112851329417496060127377365815123464528386007209420977662631166227393574959150140854788646134210777802444533583937220285751285529114270311921002120946329582586314382273565148963996850836437892080092445938283297347244283134694047165066716187755430400895089204701345681782382891045771560573441210364330677246884441080138729611310684934039487498062196171285310055369188380571173993408093812936375617319194344901986072093483374327846090234129938134776521214363452717167810754176953778914876345673897646918449115987568445279066197643740623037474520496875460857624775022804213119244419176807559764262370713701618278531999782399995579906371960700101977522833803350980319262450229351227505961059750933847110810254446366623662751085341395246749649454929823122913932660973092909616644124923252779082592844516819446971886761723984889703679085170713566374736239867854354272432734081840929736991691718836591651705060789147794248824943911611969322237573515326578905577062329297918418485244802035765702853391456660881545026231295157485768771379980145174341333680086908538647428916298488768813979004914733514834376614288030807752432912013624225220704046121551437800183369486107618058642964527549082701085928600534835852461266760502238357520798326614987099799332749740871771621202109324819678271273951680847617304386742674496964895785081103273978497571734789704576982855054649444240059693642368253617625853466225735847929329380532768552821075321157951927030837137393968552550098455450584807853779397594314402183806850212565518770248740746282700482251584943728491791737803116257089091982362963615480518495584108700841846912899012805904186052452296622062102971013198555237140148671780721285462430898527272672352456558149366788899789987402832169520530807230629705409755816910114672957154297548392462808390606546159335451840914266242834026797323391544772902943462616490446980850927927303637283830929822398218056596117143732738498319664331007896530768271570929023797703562353973601999172265054202871134456009716580321725544209758409219093600697156763975429842284937573853281818914750994038731478672410134231360373670973899780380558664336882430355537956165453416549784144750223584093580250378321595850665112176606059083864542580306391771573843506978308724981145147588048706080075116754049778806098230704404230821205685786515102190578536253366171729162683247427549180824689784330635627467335517976712993183763312515991617583225152518845555960811004871193887212219972645064871146373041521480866745071378933618635359986570349996715635055086820982630583245881739117547046080212456250675856566234669076001092702045291425315388760807527633822512110338745841394909528594152845878210860064845711003215049761696580489447680829934684299442094995917545213321265031701333794743989023951954907039304895371478565261609346203497883689506402977548212063638460245230487105851920155140742972244383355537604785994486716017739663651107240986958209803846114558864557139270076057288811758470005694009493948697533767159847322141725205226550819390379266963290874619848320830107955177165364771712662801942601663022390709026028379109471437918015622603153605384624272148504064034563862701314286669336397944182644353952116354733352088684543554286420499333844427713053332558134575879339628706005539126941610078044827366029996615921738374332117029184905899814869838235060078300365352628381019994632547890264542089598727747599112445776084370705530854160609954056702927491704587337062814525156531440681217683622574404939882268382675336613399356515316817162293646368666832111656869339371419022401025071314090630631480012068911488477705632169368721502943633212079726878294712567502552075877577939543293460178393777961761580821136294001656066011583386103353351655347366999818849933279016689881381351137905938666584529520811009015819072171354118008128177363286668584076046429441706166615629879309373287605813511674572278612048141550674844443007256791290176366461448893926170037654040294306131742307744755291429943491978894941419431063445755922196866934716390778016133812079347893733828397062598626827915384548896853462032932296550161727116203325770417441230301709147918345011708191144352927059184202718228768658210854391697307456625703882175071337785580671891450326262234600053110925780784752780381546143680914188593758564194856722251363051247194463118679885807489821796654672734433746729875252126196335745597619184737294593981254367246688386256389630554689763142714863239018913059298584792726081784219081690612304517736054039583078071826696967957879845358533927371018230853977541818234415938258678751634830904931900576447892494664516779307146916398541381182212751129154894471112941400242594222952377043714238174613044486664468893680887852452327473337612145796335232401877201880533075111765233989914997152786229004305062721898638933997541056592095040774668913913259381025655199808788902823267408163010689355991569332191099281261099588966015091936108079946759644078206856715397728337643176889344768820621592575932922892472324281752041956203357435892107407696821202578122190675624417940623860740818521883106068260800548587836997436641860606938479068698274452859424232954936118443084425159780363655811175892935593055126057729693636595554475275000729735885997254644334744342360421197917217805924403615266026061192228420901728325419771458925265636660705172751997501116196169003311425893756517493069573612422969419976324377852490763930276553685453237108376928441245502948656406861251637321724535638909489739339189116056114744665652765946173175832760792190068473759139249833526932292833568076802200982347014922319605286023168985837347455249533583617342254375980072274623726147304861026854814001187661424593322540101189301988381038618182527413846414586584007501661019769535940904855824506760328208363334242658548308637045526937993658058214163908168447129595425112766842110963777921882981350950214725807327692255730022519619558523858332766901907423484107713996991269326410923440740218771809034984806883550383565265378183382565296469293238390603177910212553455755502303306307828718279438331900177278410620913340754853405612885426072565165093836283952595412132530412017126510502970660932587588312089666806370016079527341362938998905365225072613557401178001179869731246716609448022337522256957678770966227517802315201939526938045065523270645027790974815708119440678271049330694712920388861023365254489514226044206156753449474913141133536436385357751763361987618881283908539370141496284833809541227903633555113680642374848413268494607584696376883509243635209368577650754113617021455975937534849068709528682612319364521825141042908721949475902069499759893472001964014543827566447576820096463542870591831428326512316851564393180737325357306345809462840084484175073522741584010325611965065216696500487021209290722436704816734551901500252036500623622611265012876757431724099968841791363710437544247446767944983719141745107498311564003913569394855031213438421191059245828779684308505205651355486572963855671064529139172628563099557577874540673355534358289556777666463799167678999467404043092073550670107901201980440425001908650876152820007230141978987115387429428377009909314535286001678439542379328745742964302671000972318239771114026665651958667547709882151187351858701316716915861725271929016988535670021575801567018810701945822542162078308266911028213450105667574852914338256874824702492977725738921918491173283453335899135986115141429614055882342021060532992510225158048527592308934107971198460745338479070882462303524443841796201299364351404606022681017152977171601650121939376434698119199335170256629498854909895753548743629323590224254252580945290053179178885685892576546926387624449311006750037283966263978002206843097823390429131652898756477351878581398182386629745885953757288735539125698242688944910013064993996995765692702116074053022762444730407512884998940892219773275005235362490739542840190838504769328358740862306611341047708268834309918895649373870276241750056371774176080950321985543057841255116602127252090368301140075407216626671304760510581586788694456336163055929711410673683922895282110385756271636814767212658919541011346741933646316641227692267651204679220960363775610671080624144207626926813914563160160638640111866064341880222078645971210594055392620158450637643529523170212472177892381504552928007205069222957874230623671361960403896769399670747331507653756992331706192941551433095955053329820030436455462406688279271420140454999187975672749177722217393243728261880654883634880491788411416730876328869996003169925666800023814749335084472677709568968388406749471841970617893090745855724809635250002645127816250550949054152544424519865873703484233600132742700261215721982674868387978102642760008825136897261426350116799571697241550290205886833413044415888010988555097251892184078573782804250153287703207868194003875037327890127778792837820331681319237472868012940568459218136238321093576571034380506379630911754565793151642202376807628219123973353276729148800336045606556430098903765698624432343529722667319013309475692986119923712625809503041099436294639990304467081681558252196320031074652137869037357823044755324439332225660317104376218911652449924187998373701380939677703732788737527954453923279860354488869887762815416859830515932230164084919414947072350136059188370972114545950086687652711013660808801785423105683115114271555225333536098378230590551766337635663371602952117351200293057443591801566210740173920783609464415931076546199490648308482874017197659982953938150839503817243000480273803007874172400088885917138545362226737488964788169599567938670793369094007314549706180573962580833632020910349667715250429509194720529960366191075442702603993620883888984055317724897709527292135651117165837960137804310084378401631145769604624701444526874133965526664744553653502782333679563333163218388612261791931912099710833891364962365979515207996064978493477737757748972790005759382001057061393914681849267920773743609217771574907710274173988891765649459336092268307462265987062754236778028585161391090684984367915115475290229593063142243760451502203997981152731952165110519665863800495311658463000898835238652292716483274496814015919960414869762317347616936684940522974342342844424009142690498978749869318005263900880466669394114760048595341263244360959407659076948830020570041503808189202088487793898897497055298533266311798053284770986170320114378130403618230479931446380666282861499415288253169443008123511815579974501865638430079902638752732472444125453187051004149271676645063384747695591821045334426276184976321652691628478655473137015019720077424088958195789712947771855388856851904362668496933315798966534097691985036697189935297355927900603504448698787966563097974035452708022029765413269755647249162347037636188400916799568219773922925258271494251458245244746171117572969254401790280328854052813749710363656896634672966998957134560177573280806400223462535552514983261732841544550940531638415982687552295428291252264007762253848502779947460037006613562379645376348246287339093754520821046224288506686788075162139845960844896783206026764628649314628143439609112618942116775903460578497912304533972310233880104954186436661395393710228814558977675099798999501263241089321947046315204295966404203472294375266831126267688182049476902218910669570539612652401999195959232136718781989621999410245165446917679921930560463106889514437644752667528062850123327242131140313882259480114664336318085660150406565756515555845283613789847981866764770196251879383988571028869296725357144383830973471743168626398070696421262944001291148637057424271610382544201480685450902166224357765294113196052074584513449903522783328989952128998105707363015383445855829719517061042715614825265603688342740808115148372916396616524995278354933040178728592892054510524381789785508938619438717539078814661402428468370021671193199672824513074079559006539006705290180401377643313309095127010296509296624838511006377055632860575050820627947572216754413820694190006163302005686446292274697901751509065996358614811513524580925595388663201432470355801390022103742761930419236986601961701608918653978924957693364007762633876520792670156209199590680295869790069644115988400517775794565154509264973405777624239835286990000272430410545486995172731125371325146818367248026535332647349394176617196658864894944236937061057569880312003056261738906868871256364343836612802649761995358688977985898652926041591512617848013304739408573508066490905006958499854338743108165618181370624129296360606607058887554492332144843664209599621435313190459189668898533726507929122795741916568344500579037785991971691909799260095996063970474563703023286505766786359568221518602172820298347257249433826746042996159743899479595360165862352070759436278128209119344681403972145552948538981478085879142002968657357422365258012772419468758776322474215986915132664933957858308667599952748280583506217655035403478544157528702695092040721420153962049131227403338802184786184580771009097757674372879162198477713136460638802529170224821847509673729377438452747449925498841720246525181272616641253331196949543732253664419782174519259844513785141940663350119035979493908917636861651349837980677613151883911241783140585313545692135538911074277366609343334671731823282837120322735513765368139427513953686923497813753728137989410213534657236340799137763577963275612540899277855756618799469461180626461429551619129292742701616848536624321253490186013166752324394132587959956809268878911831606274926856858230424661832618077339816394866346443210655113845005609832930436917577200042703843093911494695112335126374332514870613742666841657884099293629574113861844832500043414240397262183662391242521606190352427895809095577654286447001133700739148722490331151567004460340560995329756187235015781695519838082341557932900282231676687533004598614710871270222803985933528222509287406139648778438828335329035024133008722556385237431037062533109788939728808496285853704858436646827002234280109577446664880770623998522124488147583624245071537818106476822961482083098544416668947180239329948575870735676996652251850240009933633701524934963989600637617634043694102483202247939296218561957382980008421577596908814401038423511826645264411776073567353931700417148594962725077341462810597391494662124226291229328378759861736700910450592989630280876263356455051864129104349515390819139260093277845789610068159511042302610442468840358415638053701150010451694532363010467543983988488244766073125365785025600152819692771063553530292688531072826412374662096098161401117205698460602600258207326412635342600133236553346366059738153931811060294166531317092688397298083080797635729717059891355600555594799087212148423084156166656743129948610426215580326057106414078831154246463788427480171454797881567572988292688950264027608123447143037456547554345475983028569606638122099438984714875209139343132065111249409492405323937140232666191525519784295230039312705154643694792337823080852468585423377464192000435773932946327274316161311501883387435107315154743962410360991976603546185397286761650361458186746877393680636481828013896507825124146308573538028473110245599581635514197484850606611338369087020832289766890715189512036493217889631967337929554229783949611641591525106218997983193212324358479794866644889543383234242782175008365274402772625260610108454638846429096786466186035898667068193249786342459779865048131399582272422364828015600686931957460138701246761530149084628966010376548994305996736616422599149567498433948255332624143924666579173446542453132169900654305173484175509153966849121135378828913811387203223103829847934566914628702284303689853766877115750940007953861573548178546072786758203836153535475955881982977324561943923297370749401894532538106642561259042070325537876402731134591818220373793301553421860481379475907497345213566064919900807381986547436536569608342494729830798918471033233072570813586213325214864949188367225248950297937841351480613928680457908644502091123396113751504692729332062288320383757890723042853871789235834821455778279259197495028591227102563898595216691920146907613787679216249993191779177595361734158016495849640041844830232397771313437924736414160029879922536848025734759068449700606728289444298221440142477682705070062629412003766885869263651567878071364423585979233577074104590284068047516344463905214095824887528556347189692954246305308458351274803535835893721271509637679502321549590773347582959104226174830811227251553785824566985252402785794199054954649776070382391995611591671248017046864761096582581312302760868530115528180004645884284944386633769013078752499224551908143785181706604275014843473201171411561211904277817726062660190547021580069887789029741960769165837090404113273957690505893979844222754481763129401994709356674019798899492027787663695267587386805930047293067222895858375165714480973651559130413312336022620638930330892192604037060767150291275191227438998988317767372219771037772700070711690855402934987787676115838469909582844689202188248163648683202797824904646348262675171941755354861047941952513153318263464547900521285538172994060030275109070503493704796344879887482390087371236881877008628535918924440642876948385524359612433902891380540399796151004617803167671381560165058170019417453016882026194573188457332954249569200572634661522349546138501185226807842472620904612519487008749133267875604424236964702137044693886239726587506453907468706654139578333452283423977221017212938994127106768882029196779877269458584219745616265182743090423317680024397699277712779887071772432481136723748346848723667777105586684319404000918895427738470808468776586540328572346097032582997120579117926113742264628283635619892595041169145181656647345077474569038585700127912422301225534971492811748841512049936261017857532757678752659024414939537020917392227003300671158314104022776404488785711432694927563709013825509238302970040619383026505774663146829842182730496132233072387954723399842924102481805788471798834199019862646560397444671735310355188476566487248887867540248359525442395067963820275832283612219110457493827437774526771958419673653392235921368297030593999781241124706641834961150230058973439261942037469327858066577200669257574645139307794255859298469383377291653693101492875283897666419015609259579070628034005940119775596806234617892018380262985077544762266686064701052882899361036097372309040901044265706141136199298912167463361919783409040143268743873414454024568091780299159712736230957496304112443072718425834358198418763643898780127925632872744992314318220633737563399999722153124624326516169239234693466431971761102732291718723211992323875069344159912367589366393705382778678948275840353796696344782831054460214205102144037891118598587699521204173887187604640237702102335177835597387445080262785236444891945599529017500393967659296246473565403444027849046081831000879449149451077992686985573592327136019457593934318915515599557338695766512106995448481962254229239706708450647775052212380851396887424535206560192353231901098291310114412076283146508169212417143187778839770168740305110920864449396175061450149591763545672763237001108988335715844577325587158869427520455222802166198591812393153298439226547714298709914198698861308238098950417145723808313368044390380170364686471687664609603547655771746540268026239602038836464322220061988870960477067140226530440584313992726179700387002880002345319119583907666827424296360781796140935224849960852177402872925870872542864697714160486145794798705316487094265718919776929824699585469108003974855770299051253628290201889360342177127358965093374834900118285991326498193153257989260268732848977879920158714585405716804539157966947803613189591332516081274676136384566616912934341772061410710266232906299639285931803091154232654535460039362250804511955386039840108802676969237282682031231793218491818447836162969076714404147614437443795936120677588362002602805521166623062070752816115477716736988644821281457664349285708212634786193984331515595947822444515147490023728955387070604273220709875530099212711826808514311810002826872020342032864147802347054269598079910213252123476640345292327325288205599962611083607097280123019997320340644279260152835479112202662588861680926048762411096868075903451686224273645451764489941632141416333983245745277701127768574530739804561875232087256889465112310237211988983891996168033159248412875180497296353774481573436526690847062428253356947330787514990826457287437449553393653891048786431862154027167640796940379478102465332824409359063365777812695286010319807356727247906497261662791169802210974073818753869226213763096639314016452110659597812350672883411658708893142409453452857603267538146966635493180155803508774099768408362395219056011832448184869380249428701028325466873272467898566298287909545210328157994988190123872483625718710421993796885648090346525131187694437918017364056084413450165165002500460185074707437709179264437084591050528261198368450249718464852761698581519029194132515049040721711639268228022343411435099984303670972800475961142530080310460822800359749680579606211117130934924476976086761559109146402582897680694833231950090048784140733685049287428865671834710749906758883404109894446580618304134942717811677222275442545998877748922627803416993332718478791214163066269615032159198560821885286511043902602720632126864245116239224686652463516445341636658225887712056168438503643672443786935574975664130452957478251485906627866611070918941004468085270077600814738286420324287054229599802234909157902340545098066920422636073631236944086662773651166678146001356245806849869030364808699352247906214055513105200549749497520097128967030285650392070307565250231507799856829190201963526926422734683082646199040082091035808512294251184476511187223667274838505884897421541336727178339773085671817595813199226967442741091508937234080230894089016842696024587177220660506182302332100890707237677400736829378550315895421411307689864678049420411677050004839110322537802202207263292937361587995382485141786790364333824344290583743190589233213568509467890728491766524105698410174684824666998029269766905741708281816947334904516612070508744566975329970323160125830522524171742281904385487099742028484280670508390030205537735224916005405976989420511190045134577583693616086004300962163941955579641982145932549224992917661099616034850068575051357731683438132779060596180729514110419278332101253152216081449879813389595583797787963963525253071993582451443170770324017602732154293255206358140141380002600029402319951288957837420108676167402223942160633058136337364625798508190207725640895070441002917907400493017298546160125261405767883111184669706699654009788589800501133513193086269404197900027411993285943368814098712179301448707405518939543548357107760226897653283131261600015038200334910653371470793509698752999036557479966714655398494618846377772372751964965627958557656502122857210605243204639955909737717319692968945251791059073115020865541911743873734223023057153730100382737339847335689589822341666076069632502994213746467200402786792791678121467355787889469467287708108546572426651068277250869607641832723113636780794290446844898136683076159286145392918060374806983712701823418475862437439881706292142621294063005057805294034453370890218742923042807153578679368547365616766686106460462180404056760643900872658254094923914437845479581120323383251043548122278923064077971615816568484942444164964744563825888343872574350111326258545198272791380035577660658353594722235755601198924621908228196376039513959208770761719746460601737666371070466253634219796545114475658103287146850270935218401786423400535902586263620892462649192976644027758346876922719407268918978672296130073728525832625372161589562107686500577875748500938000436403630644968114061920328729893596391077196994297587880268333347049287400684000961764639507757091793359161138733039787604253576823328324862333306607646686585201084384873602881893636710364703223650249977686623502660166190518741205351734405218503357753309850771058870430705395390051302607212409915636504856688738775482847836324271968003534374673187615705021075438313849772088219790756462411249965938886024887138273734812241644220096407727247356002912405872961427640124767642690157819945513575961747932987443404019716917666794339848730999754639766572949065149809610026417263124449052391417228162744858646446693852074012716110909129152359266740919298567541356634243845878977607500283302892086711703255013500458707543178826023595899123799330292996465600738764308700416098729961708496382979737594779586115535980963899924470185950404663264032036627129071503016050848183776366281355667003392682563141222719130806573849258577436425981214676332575204396390450989870428372250217648947635407618880312116415874510409185320068127713709885491371844790661033006410951148669737904287250968348613290341029343675218200708210497551378833628853533193381523764057448917856245240531798601783951411912205379144298294778924497724027412946123990184123242376818879862320702216027687702328672743102620977425638909020228203802386471499167132331512730005627592826406149960071245889462283716471930697428903751910679117736213721650907399388468649581285718604113058480360222549323500025936686162431595204231446689682288239219201237642959318533829808380912332381245500379246128268014499745334998913413335931407165527818634289167082602044075926985490357192995163547782015586811987451721530828554299776202343199173571618293806804686348746793450244136940812661442995321348106891230281248762045293310882044494213467244405053831799474384580487874277695889329214918082035636248528944088288036652563543337186620726725560397198683323377947093075236622286013710066916919507938611313459465494025067020785983112679098475741594089349382819585748960040584387842092826951553051223912161331757610322684251922703177935579377991786436562917951963792025575072062339871821586185639974899260276563983288092456010283906624949307013890931255891598270541993410730020903487281622766185247935196771832631191133556139905930007689990033031245583247828233389848056577636585313554631628788171346973068320122215227157976099255628774526792721953201646473552273897385144900050457027962511783848352634121462366324311263055101021782052879314520099705123410861959327158516525885498674014164933739255661214785674291335584969651570202938280944564191794155215379132315214976280366216432531870014626617637014722167636803728164515936249360419557793812100269663149290250760812053589884316288806879628498726224334485742694636180718110584086554133365166813353426690246080351619402420784097036119456340762430049530238908566160936088059814167357488346539878985842138668822278371757200781584808429969382903155892362807898355382296260146184777464539819130134102317971282515407917672521747525708543677550827417867532287983399939314250738200212171700877329706746890851288461467692572979914612983189203830096481556632193354657375410552142511441234295069421480805368083149440646683673004941189845864149924374170927315194231505118265783562575798811709977451456495052936931211403675004156251492904813672586418352769339013424739594860251037225844333954091593108064271204207915723880287353054038558190558214246396598349149495566381016738947888777420644114880437051523730245828853454070220694868624097437634477994771920673797329925067502486819901386796980009270501376118371676488587891654781003775332459685002796398227799779023426333394295018292500719045494552830224437572629269820267082621130138391943055221725238458294007620495681930619958534036761803416805261290216090019309756705057646526948019281329326336609441880784946267220896984228454163260251460443418370050452118107610444943516298874640041500829733162603819400877032116554432177240483909166997406108251932346336964068356102285018745744147327653646958815512880856157599254467175605123248732904119135609849945864289476143615337042118672880443982186805498919763512880945386598509282693252670133673901863705616509661112931761740684788717626114157394140810590232451319419363265183445660077359466707564254304051436242636407293818388305018882562462093946986599671280188796571123748521223833934764845028908328395546241834222364035362192785811157386457004537594297672747308115757601054145509249988652942090865043032586679094612371530103403610501515259767767334097977565861179177545423169166444050927389724136745339506699651847713913244361354100915735040744941824149305903718767581481107128219478752293181889059945082338825977525184887554307337010067900270890176395659860130166471768697193399016539582979810139618202117620362778408739737089804394552565369199346811217246276183579342756370787340636513713710243231229525453127925083415052581224231147774913186854020225752852385307887086575246443496716618632054505005897511963513023400090550123635972585417927211448380629826783411687331530258062192497292118787348103503392805733051874730697763981652614861814073138810182066692324103466672184743609308248447847267816676403846654558102663306645126531324208163941549910858116199999595325180080924210022459366234093401401166507826575734304135718933320951964819421734122256831079368283503767636192741793943183412411012903978455783172323304134589410247655613346494351672647840186623758217707897908057045780578446845963030896508901355271974584734498463711880097336801184265877020744924213601235425882629462054274646515457594722150511570226530324426081673764823360078217573971661034053287532069486397256210349947785195944908983434808830205271251058676038864640592394633610255887472018472089331648667992990138612572705593312565931355029560962055271433135606239636424212473105899409890017273972788288928768302603056878993806354633686941989391448498544503498211158880822867085331673428547158065168302056608896743596717143211541685064592134062884681626876486125333401527270825109897446204630695601548025238012426334646610343853270045742220920488880236506537841188978579797146440723478685642311953106932268519489763545438702708954665137166487285275716532762823022501932133465548147611049128918540099661407978661185025170353321311912674374772548460030558508580101825753930653706582751325648418728479779477676110492226599454499205105792087993778757505119055949630199841634953490945589242772370977678840832497343812530938149017079349296012101005132296663309091496626676915905567559312740610721077674920688365416786509446224016018267622727717059137305402713601368215688945138123190318810219473637249603417987358494036247190913793244440544347324605728387113318068127543978218684074453908431916631217956796109722828708088001107658018039401115755311313262978658418856997274310869442186546954601963158757747503005321809664103978645732227852808250959033297926323278796394611381543229871480223762042643356837483845943568617774630069653321910202853686811597844343534069541384944887968449500728000542778479940323530569181066885933104124169324856826142847608984216975061416731856137690679488286041063884671755181730431716078019939239137234475821027003427051875359056866896067578698315335776751293663280428423056885642849362562486132910878687360454038601839390736111864611175931056431419758235172352093033815569794317525285915277269009822290705986589888237855237283005307323142443145809866397503828430074049035029537772880133601242848539074356020977218502366538905340510144441445960900064960727850571970468107952852938986021284762086824785728229469705089450253134189931626446343317924840018843538083369324664575508846754139850704294198234836559163059939854444072538909342123376967498478906610800024673375990521674326041603221581822519462096090998068112774799592548712647365678241059967475295312971419966833602602157702034416954243036361648369565867782407136856509052614284006319318739933834358131376167327408361598590135609886032320847446395689202735477114628308392029321804722222856109466004809214079454419006494350211037181380742885104235962318093754330368507776912824558492320180576989975077468616172346503547524555499686858090272249941805465735188155934643487820217091636738925879444767244036301659819644232330022526552054164949734796146419881971515538568054891976233026352760250319114229652465065268059206096563860085169134488895711347076023746146819850031248869662565050539894557082808517620031575506319122604146771662247672036415094367147633989030711203038187294812264371027092100230317198368905118361905842538764635490476485766544700839878095460610161728105126062154570901172197053155981620214829747847602829395683109039649197185454886501698323614886863925053465935767764023561480891295631721911644100574019075402704156832161740458293335452717151793234929989187670023080462095290500270120897815643314985666112051310457988356085606070557394332821139751516717905116944940005871158944188882331790304225250519221415272033627349907337637903322999990467444367760380782315335155733096872221900964185977342109580685928028386986177879209078659550342432051897701684706980943329959694422119119847553175395533817859116336855736395795168500092108364094444825171521557028111056753475457844643067521839831151314347753444030705605221745753998654153343353203529883518031113083909870506646807658734637031192055506321629699771890083682104212932676424443496650572565858064618013620829268530802005153068424823297553113684288074106882410972120721308367457857764885478145782544339593072703955900954773671257119848470216406774592313906010101414486999856796106418365515999695081430168920426255808619114346351142814858932638541047369536643445716439450448497532928642901774431345668899943895295105843408172921172094961212069497664847667344185513482033872533694590601741624085795275506379415999026499332605994911319628733112903138511195885060651365539152328198806713160125676970703374110805106281796755905903514431223384654462066268499384166967793631091669387402928984617088562428247557203230982245598405766585586152232447242180770009788255888849623674095732262012189209825923651241784103087850716999111262197121186175194593532036449762290031888872451892328073592686679176886875263039159980187289242207019698742036306522015244317068780104920881772816777216703156860276150132598961028564659335352713876144070851388225534833151192776359646737910930765987414788898971662352928644662601042670504970073561495330041556721046457965801424519279246144002871222416665697202334947559726865667441479085061382787657810431976486696533323455543725654050360673162611048826528988561005861213807547479386154325946115963406392941578087579951046195758898867523260557479784253355554473443129709291554915013307620761025831036941787008186568897924373951777075679176338408744251134866908679053275122299363972699373077581852513734135160944316688463207551156075741392263989299471541383309049127625821836273089494137034089931381805724532516998667651440332052815135124195224140109005392657147295198781033138214067176825719910857610007189761199217843492458327694121451105740859118387508706426188898634498263771706587687703764781899642381990687145924864464819593587266831081633837928202359955675987766151387094299488012571840231820474825677853114136823936586904179405543075404427698246459000322237179547643467257840053920023489873742786728321545494493477105999661288489968087392399845056859805866488653288047724096562689139966732699777727289826359057200148740100450865702288228711966744543356893810996717914438126357149290710875917771941592478961505172314544861988437888247583261335867572187351833454976873442082388776911059307512320467950432909963705574952964445725042424010578147984528862358525512465145628149216714856570288451733015998052707538311705674042841268648701972573937793882033951223460678919106838690928731334867894616577978276929331920367465566664968981861650240522607597403205320927993599126527407486292161140521732613602262756784184514448447313021684194240067870428012371579880908858982473845539998622519639698745776209507191902340216494701217079164868579126605148509375571850555562313629552170024055348581478996009908261410942130991764753184262218841340815646417689195278609643571669988671437412138343149392242650380187661292674958949773728121945887888139871769853609210813183413664234596926336194912278234456800096876870227804909806089234825206398498735710174508586001203969733284057127120781993085641793852078618707375039520013417498530668502952587278506097306074232233173382064671750696682356414938413376272531571887954556882562516008711180806344393853529011834857133799763087866935832122609882768412051372031032275641757537013270389931833353070047366668791002878117122548570043237536065367348571852042155405156561549659719091159420236327732680283730761200708854135130462948436995727858943715008214644676732802129854298343658193773984958948364777919262719501381352140189871994194123931183995873134824500731051588126370697091922629785089948955987599699007937262884752893479087134384778421867673402014839551705955151403369017529441595252529856005455467855543471251188527150979416857590408123221983692696005988101458746106414524763756445492444555982538697136210929648897249474188891050271679194409356101877581103759700774585330522327759388820843755766534184852568497261196671243639378519064118748465254674719184308466596921475647746405557281289558676222897448404732012321102091010687709231113651616469297073310677502768308315792709126607267894028338700892338073481158013898865460503377082568065916988037877647945428641734433963444350063681552750762458389405561000912616026740940065676773840145149826133123310310384531122063722848471531017909827758085279148891439454234095777476622987676793945202229010114504727931986836849950949755662817268350930880587017685901119249508474722291632998138770210637803604114117205359780986356911567629552032232934377457570113947805918198682200635622493588514134527369889994052067984730702285047673146749391581200627372794111364359723204989822963904881972166814306129067515819728159734267316203508903369307542942090750610931543036297806041643831386285976511876208716430098767908498879860481368985652610333519083886285268761029884376733117749313225962882760308657644368325162356091984037770749997485071109969647741143430700140588828853871603533642866074970223584281038474839961130906245491016693875997919017234744074786819132465689519945065945005297962443531589603635286124642637484575787476928536390436058691659038993796425529699347103812368090140955222715886320603357640955799962928705408885721557611677689688461167367896742726195265269034395288316391931542918106961944423826855757264744014929992139021768528437684072118309863551898143916827459810787664113031478017814565172122622461085683692683898193399903835583730521160680852376979357240572250168578195876948478173705691241775367152749745398868069893712170331528285151978470656632978919029028478827533887726398444343567925630070620654822504167863323811195456237762591063815705432168001694867246955591120321591027091457782152095676467353675450710008580687245988125663410334040142922584984362425906359527015365868356647028850693267580672962408644651485782772666880251628800660595978822746375723503555165703489045405864112350708810175036430453214840718084370329102388647852405785323248868524938942293857101398601055284992403131404080140348489987438040559092801181310118928632688364799638855240218520321312242509692190462107682820156181961178307964816942123869167691416139107988199257826496149994182740628222829927694895142277839534563566751192132690625390528770151174369520834746867534503148071852436611365837732445024764026436393189724756276878255018451200801111571375042502883896248833480952117645866391658975892354412521075817075720478590262332543061982443735494128575890542695273669516513052159434241311133042927878708039324350245101839987160962309729660448691072665228003398254209975039668405840214677475868211165781605466092003566978540287024954160682161029382036044234308964059285486671729652786552480773500955463420691805750605893938247479200554627331997228683284938662962547428123470606000236744396031378277937630784904324014308158834347552208147299376661072336008096062225297573245548524035878776584537358315297286121793418145543552901442253573648512777966230572524683246054663294015275674210040641090956945820306309288699002686222143544619451600570848874249109977527231172563214688049027992854655669614551067378422981794123153799705994669195092671667971843860332398464652439473530037044609520361635192370945723481158452883955118045861627126813785516748311548877806515173230157070995782029148622206244003986172224373595637779249945655828387253997770149331084849429776593628906490272607104504570109427495468240272119719286553426154453468079017284354657959555162453071026088977780562734106383660295611498323456943208089082333142055514468883325443074492279321801929881393355642283839029054022699431196453294287160724477259931281486742715557649385140970393983664516761974375638503763555227874010828310028864668742134730037857960410947844403223809331960802415804710791733398337344287967144207983948918495192209444654746027979297339350423717143457874450371697848835404507340386991565151689844970785017061206934986460894061346983774347304972377962591281421850280778342265585276396590482924377258892984184596989995949690961819059391563504049879582122777173963372536681654702763564752322595176559220741359785402847712005506436197286975395207188286859911128626860095815087145878634814059253244974749241709686602738239375049956444390735770444154709672091302965723833495599314646409643816268200973178166710394822342666571659032657162470450531228011597438330429303034424870717351166123537130241301122486729237618719080301733259396576022403913198371457310372352688805451201016089947533664851961134666522579787083151662393270050989348787830212874247296235198096714200305891536879671557729183485395584919871854354528850472377229174199166653317460240095303928363877963678381470256152869652796221194229419265418385604327330456274072064369045819425361450006466491355114837139051047750588606881981232620100476397044534051298177366228771153277481313564875474433305843979792574556281665413035829779048653115708352696934754058576347168874545762610706174985767117894300752573160653187966459605241931746567777845520083609368215586250380500142839847165201445890364062727890796654028494908612349032381708062174497361138699752755904411901160099185223904105383584848437699265214342260191171529438905905951996926308125965599908681423589063140792334187088424686789426080125550450536718150830261325531751693684161713779262074392280345682505173383636548802622339660258166747287383646431731616425136120186165236077652204006067079430617715288739200852102963450445576988559923039867375246076704541080711874890427227651019452442934124571698787405646000262452232383599785589847822263419269261971366818378134319604303471888600232111227692893332791785111560770943905391465345479745485131052162434123463064150515910987354809044769403626476597926887259301746221937015687494195222987035016639833826498707446584615376359077891367120011735070413874194048973384732308551621924076482099423800851592810044144530579978995071981334354292407092728813753636335463549332856893516125701260652961461835180829009168488551105995852858197320640186469471613447231202148061873893163503768083654011452508352985595524687819897560217806096383710963764594217706496793324721748398293872942570026334507675973882162898886879167472013975131381398823515074508257672168154409057713531483365702247062542809036663718585798351382175153433811528445797474272642186520601895181520126422662890179879571364645734010724810330408651876161424418327747370686171576945776439142188028143675219016118143273138798523559998740375485890279357748182895522739327318900926452078659754535081257880386228855541510633627748837659916517282065299201060599339226063097467137629060360563163751480157027611935376259115168871998699338416493686476619665625437121315198947109406020287447389071504431012114066613035053430119496449253558900925428610902446116405964145189914834136126031646110416672779068865922119917101352126261023518028754701756564333342880691469468618993069058488895443362801112860762368878982799208566541874945690630153998030282278137393293828150963464852179910831545611652533662178861803692510023778915859319605161266767332875590708095400502635561117547291049298234095070572561475939887404798966576678049112553357936523420011057689889153628038594691593407190819712186088697012384155425033390475019079055898371557642607888367659934143750888308420120877858955421238273848830323047914618654387897626200810896396607571503986273710683388580445491179229608984185548123092899885340358825154585294117728874602244982623333560354764140835207358791980419050294526492024630111791612271632485276727796106201909586731956289201682614477561352350269644421119734021843039236931534021156612718095645554254722728489947947754440454890643048564011072774238762039649175724683625414031879253788313934086397960216699461706464551425613031163892794967600546135192392345383964457922451636767077981724345036180524814881010865953595201243940570616680439484387352236817737683380672428337569988397828548280334167935003903896408453628252179757580604751436949904128036278493371389534330970335473428007491990967463888727473557342097996652454051032139911171277994575124373370427366793653627832386951178735045571749315585527233539247490484134081351592033718619811224565678490974017736606461664664863662651779826996300004594421051889081719453552447317301704571200517293713733683178879743105555064281234362099657945837167583197299141220912469379831589733394803041219335060353876884694401417141433414472650097599095006147393034410409888748781878185814358978422998989984138087001927896841919708041580347105244182505504424508497326259348549091639080990062396743740827388874844426135581575764398390533708586618942076499674057563838021719786813165134812117854691448865331288150833758547835636297724071228675498396769507689002859663984719833162508028107617505118926469383088315328226070377689250376613574934922710606430750634627783490652726264278266065052341967991493717197676638849725911759123637037718763539689602964784273083637906438747906468137086685048150252293163918427893336929281976397657764151256252139953137446696940336965333558878175435731088226241600986810366165801737956106813895164474421156186617480412620798007752132750285271026904656133839271240033711415370841788226911303544176270235526377508846024192989731379657455418492373069398971432480291554657330079283885763122241187682776049742717142678783198324603753896470383793080600472680405598154262662176152440672989581800667222287755232938828956576257363394462264345840582117988754365574764173040848181825282610794081430269417708395989891524211926312059662408332960815834848815217652101375968574410712575712040853966233065547172665416836709015601941544650938285914468048201160280999652483400508802835718837677573737210034773997947339338471620550906769942673091433544688916019147441047083589548509912871102763459148401504297033123597546436598568461356003114476013937307582395062746148762072836271525819782118784053138278595126877270085504828285836976347129058099914219736353966427238804648726592415491158683724544584283967084938672770323738177707722326331571593276213319556509162688761243473042515192194782532451689707810197126889909625475732954953985251934696055150825584324739089418201173702589736926204364131857082625669015950331829459057154099740674070074125255455760559811696049526876434033324132796472142776834526301251819091384433820851054281768493312704333719128780195167335598742547745305356758069016926458027733528742314587924110521173142850819315218350542735283679513796035950526055413737170398554487525965398355165451025314329609407683564817590697900757272167766484821404555450559022815953020693355345178590785396247653576145026910295135944836363937063912261129971572605161940603090364478736875894792434829504547626969796932271964108796554025463633547705625619873098829181202234949826490386805389667011928481866516830021317406909595055639504482524765815907122594838289408191985086071971475973315189168623876710507026748907422757025056172165452249924079359384037481212627503527221297600998956485834875417552323735259933132575673369915095131067834745051662217389525603817874376723297641167464951844233528542833597505193972164439040716129348362161565300408232585141453230968242055238424197424866109763019144609909415107674347905918274957511923032308080821719231578643617936407822103553086302644040415466592734823958291651227974450598863555585727909124731727869130682781676929368267823862920002740204115742033298623625571266985991261201405936117845006698832415305273119874484455816020838327330022791955634397908479750224471440674318039954064675115566299848176521076626364550143145896228798514020819801055187638869468168087307067571889785660231302926763207343592274427972957931282945649901985482846436701081651288163769111078947363248507570570969860539209108082527440209420942844679558528393335797135443244312065922705564967988485754243201279690945953764925274764268665898510352881142540885824740999521241826445741113118204696615619493909985363741956526468583641147282977136307532284920813994062988872005081734595929511550453434021323012645488919964598105104100101967984842804629006587773439310806095303567055631999240707795321050075998000513228149471060598514398792084790183716914590257540387342828854180672769207390115589263986186368340135026511463290902339451194897314463040838480851256832509129285467750923504179429564874547752919032254215603160188507847774886293473695254715071061922398034996105128072759753656803476977564181668301664203575640849470250345528618326570174061214731384140690877628788561690843659277031393654640568495421886374498630705474509173124350490979881653695398911779297241868849899705827807103797392552149363587454715574737939824595967246942973888293815775593389633384754544728118648654428889794628060028802602012915771231766268344064262153737169674189114587384502997137744395694030374695997114236192895973385570360763437761052428693383371565479154031575240293188531014144526958756295097393147359626661766607456132977210174292680022063252235206078013989876007113841172229883723760393150873433908513423482388997800490269489522600689314100746977707222615287863319826683768486937677421970338590187193858696180956694315581363549434875578741785526666305439883146128173362374451744874267262506446744600274036698826223788341199645695860668625230114223084695573639463545864955192434623602017703012451893520562268002708712818987703933818444462492621697104698695764548789552890591521336552550731026303746239860472876025198857693376545819082230220459027256154173067007258536115405817642153115863234929520680855801367910860991848597614125500374753398341535243157128704435765204220207378742928098413043739051090802869812539912357138622922023172008237410036521454890062816398992743592488764472114482699535983848313780624416614882538849836274040409735988460460343726922651156956234757004543279550663709102983523498415491868956868394737804428417184109568233735158538184211890495746771323619172157844346262239045903671165137973423142615466470359973294281206937509680498391544579081867184617807810611968402786951809107832644561775366557935367832401820487909101284239933674096767410304020615876683962031547955833709493783993326559964148050120758873024711344534678893198850186357710436469081781306440279100959006079750122603849715754797121227789926372346047728716962238095974769225888836034416869948869027953893805951762943483952133654845182913408025469837109046607574566262090510640881439634076765914718391244024629898574201182801328913616866416355365178535720377092530712117681077453962015575178813516649584469183054579322890726413906027351468266601649127711808363294665044802401804802217195855763440510928929858198356929289610598793855636929701966738539076710072988662620377177802667983052635451097867873984413516124094325308234448157080669699887988118393444632603020234046315238362672398275033894939246351910928186233488064396151429043819348067693236028649036382078672912281831791426864649777868172972217157276001992291720415708631799163712243296537896226028099410581516193033257054075325124681780925212172704147675956211833320010999889206605108618895017372514787932200174433742564414752462612214747715976570210692972180143525604414302499584827273595397942818451077776019228535240088949949876494016728547411479297691369628341482220301340140031381502871238240416221961249299741969530755245358594332748755797627389630719611371746145503150201909413054364059930419968619948817984659117263013258765585898974558092995377987635012338794319049303340676857432760311278902854870617300921985860409120488084991269454726936768270554410478674191222026140205364939302712567329608333855976109659522333790417722583456838025826450111078374162012827493892670061969708582314581103875441240841077669145173864241900748810114011428515239020616793707411900970292018645929744765728007903968873082046283307752984127076189498896873378031575728730452039734442855260045295950973851014636027076380601370883817016202013024080403095474809174706369665415708846761573987681047097091737579640246364855169654928817736286126341452799720801096130240421323955031785381961042548088869295554323354862608816740161692675118826093056060533704613572597730303544899624357146650845702868882452855745485204804134401477192772376156222149777964334649605829329928713917977273029591356986009965416963144252332900488582211541150417956024309556234832921952944788236476194371057073650899926303926570954987178592179723210729015371026115134616417599139106423496450343804462103146622937281598207474047093688013058620499846863067198013949559802093881401337000949391670098317143287479605860107798271757795876509082226326851478131359346696674461035391520089539931050736160152423798545315714643015638915079443065372973064795927538786655188840310620399749363229811604181533354268296067501115574955951241041066041579131805824237517109676698101336792791621114876165647611509114459635465090785073817432687918391374863521929201225104669093397668390803149627807537310280151833350084152774619066383474203202004383971076273640835314402371865037810294417134144136100984594131153291155760883420163079974729544920497578903674007475509567904982633432039232392086583034338605491089201228895184547865060814426558533628538380799813562211253164434447143375310589515267095006491799671003086965959260796394439232157024589502550233543395697267274497234007641255939694645915896898665454574612081102023424373018631912870906980100407210881997418247503905555461271916923357551281348694184680384454815889681350907401892817658460538969797338122892089192992435658047855083722945074174052458033258883689051687286748086252168482140525763340118830290704501187005804350636373281568776222637481066823772864346484479356688756036977411737765671758101302224089557562886227219558124381064946853036739799702837661402626042533525342976619162826518279394721907518138155604172521130649857207471292589113995202075953525910053365217522132939033455401790762602867769378739868347803805656682148594087021058259996412591799949742074175988148889485191099375954834764638616980148637602964275750416395190766353404643387065989300433085302586941224787261931273729919023658409739723369863858852835440188120630824748291227599385188899781748788430042976166043920723865556978974086661923625877156535337148167744122726712552870957174507093783963617429604627545122733310538271308859131693588970202120884831390056058251396565783270568506824326498287900077765059387081812054955612780114598884909357379326199512629731525885745508463220692817796130316014546526142651401261079720339304071117739655288594976581993701578462848999295956843102705150098192565253260379763226412688578851998971371543135477565245572578472055880365147289496586582988825887818420086389302439812550900495979777310377547282113012498787741339821726009771050676083128182701671191789428890926374284423297423400521626059826346044075109373327913361828378459957713976842818825698562310166978007091675927161644247471131815100860055817135078544264217906670185965584495171906334409361522203227951252517739359995004007148655090646324121535806676420315257239017056186054007467088612403236701526289010428420931453201318615742141201795513674227216462998650477849503432802040395891442924753016754858146473762365388794747162426367312294531389547788132151820365189523666108008881958988902841260025841812665682608462179445836385079753293121271765393788882882637216676823189025899788907033665690340927893467996296847936584550569087903592163629451085264577284787062505053694395942075378175387447701683964999848246610936582842456145707979769736322824588692210686178786763621540587704708211983395587739784262351580796122599607313026320855920519292737918335312601433850330968545231399520782930582779940499578155579664437749385624250368218534267106250521753793077849689751272443989193982649915613685110311030246610526503390982652524990825525942756570986968091798377716775430297924135940299586748676131340579718569294433600234040267905016845810070603218077794354056327514480492759077012995250440409854876326032518859065702858783544895893284761961497955403067913742465663938894546005956104507460455430778968145263756000566597609772168416300568129532605335571963480462028239932565534894110273608616367036173733617911911502251176842633305035070218699616654822692727168132530279897464199806366469202532896962727821479804310995527664652905759215741393027616348547515643260227876591361172467820228442078806088549552960747877004211883207524176951420756560318792981021190509592213369140203919009469634098322683301434619800135938572359619998023993119223697536069232341511138452286488777479488372091770834818236540793534790475695688071682971096880704272851087812388882786131698071026572726973719271762456782642007185469863581776503370280339684129770312164414776240990674874023665665939531171584029230850910988418988379660722192931913366659928816858486948496132855165771407427401600276211047875140992441064504960136170100690706650079480580164338512122076145930164550648772266275628422959355824441379486405771301419256201350604089296254210693287020517172540575220960402430541909275683438523052634710657122964378593572814793840088115773005432106850400826469415149102267328818989145067697899247872951617115753324586561187187919989784488193155581645317424180117123281796185128397281489244103227474079541739113715415354776616008804322586009664992988818565943975523736415448511969365724907670279457145779253852548367366997529102942852012015266954502461561714176435685409035371585341794334028557836496905547900114672287302680277581138850587462375877492712091171943676948277312942175015379679564472887426644659748345208101128875839651270018874771164956930635597085483642657482056501174837057533531604467888026848679848246820393447988104676999628395513207823018136115738089084401251609982984575703498788580929482167851986771573939421260492369448424375560942609875037638855982236773487848196805058601518096380256599498796837233692258873519495622525455052842694394156103341605914502148075595780878228680843749798735374019627775537493155363461747260479691629665207950652023660241473195779441320624277747021982885305330187709219304147331665765730908074383544610171592809171889351576309745626871615511036388264946272985141548624541278599507006969758979207401031492682982035591019840898125816284112295892940979717163106974786296458647879030312639111887829340182030348037201300875447477772913071275939409957459664267289908467989830195626334642893104295798433044480853410445983699525990430799385907418833983599465954232021773739582157431461906706378459308866628677596449939825990852931240636885571885970198985432989187090524290524930572677756329114943660000992975799153742121593434863202556022956255489116193521350394436645078907641839460216036168081076442835238400329428595346313136600254803374111765209016240161418070091714780983896999266863832808492014004937154867289647846875636004391205327005731574466278343470154865998804055759652724637438274374732222865121060665243367710431012085983467399147775391342010189766065187620759257746472304827894897727945990463952432949603198027835492578299030870151075498297074245021034614084146520410233618595987435524918135991102265295191988759793912586214749342342340824356299087351997361579281908496115588792132922046358198810868872721227212290135642674214840470301288824699543037664828782315873723511735624635026215070675055189422277961069154111290827425579609319321778670698463307980654794982280136711778238984523071268728834909234421694740149122214619286876922601612450203980149807811929796732579048146524083771454849919098910917546551105052345443037995829169229292261993716117660588114039206579566972824394951566258758722062257206904855070475011037267463434342884948742383240767579280917738855617519559865603285914492278168175474270536440446334482847936477986174533271273325127776072107508309903525547846867187627858984422565428488419045106030854010318813986915184340790402662475184625151271484296299303792961693979808207352662557216233439585914627596307073716054454259351668907881398453576325256533713623477822148476101600348343438476766454706566467870684433211799507205488397168645846063348627749972064923704855794635441735178638598989836792862096180418615666994944665080062525192692894324996496761308985250391484283771601786794839861558036944391248678024077648499024688383373812819498104626117704269305111541147215186093524384316565162807156116157973224914342333445514647010909600529655485794677014117008201778761994355559271736041531966366975243502709520630920044079485029212996853819945472156994555115245500696024165947405776469531465866802482991127327274867308208947545333558936146737498607767327441516529529045646462002836879057656993067668962541207572155190022132561097121184858172295842794769956642661110878546122033431869288877724739994820313549840836535347609912925747089683401402943046711011769688146490420781750866281270284869005157359088001576073652303486811717985345504304680548969628944480417263217660186594283669901686401099834716784233185060663113699121724255197174471061464155810412518918902924766043928039621975973470573693996208626101178507475293924129585092951743338132556209278268811079094865810043816938403673158517520474119097044620126206226441324700240171907821084701203972074170034188207145774818787944065289369309107006262951999900631368136429947727779613647699876615644660665083662479900398853245968772663210122505777066787167743045937774573276034825816799424344490939184222158290843532672934859624296207961222590630746208791785814526030133438487024345129357021247225217333406731914755625674949081262440932159777165316470955389951074667023439072962232217912928716802251411437084432734382867094173287630524179120778610841214335724137389826720193501835189338509643686974682620182601562645791695174656170160789769917216607799850663587528121009887314335134450654824828679480138643668856124312739814819065391231057082854720419902931157970882171620519367614370170004434181049709522782463352606982807842263764786142002222482310082091431505185228569503146948913615556874730394378324680174731923233872447553417256276328330538472017612959064199384711530974544127164067055019171500574164937184081842189994204531581980931704830850817430660823778664483337280051594480213684008062196833838061223568529528285672799626334643055293433769755081031285638532018570307131546441018088577218094410694551811132704012563036594787000069855475877087572039423332956918440522202031653933437239325956323011160063654434182833389262744913227642483926285062018098752295859387631293279745118875711035178069832710996612844463741367306212526661621901786877409222099941631557341555978334083094394808206661854798581835414736403578522630855169990831076242697098882700490045061387164030268566716572328184562923042697691263228974980469135110432490409312418877701965611615085242473890866729597976021370953268383036879856147451271639037553148197088719076440763561421316653825935772493717318685534073569631772504652831546292627409275470284969737379948369810370821853904350417767371200033753167757694679757286290946975480035542036413192416567925800073872052966952772994785967002404765616901798567519356451210128314836487376318225211060371306993719254785576848596512665389884698297838869613649713681528922304648608881349453846778688357940415479994519466145599429693780530788732844226881833638300813293834332407536417687888617694011585090747810859741006073774906247811183462943223600413400525842174974646503790080898092407657137062913403275038491528098919284321324449165843182308115611349905827028568913061027823586043742112574161623566609307074766479633170120579707268605874178421676310137939856015945924189617317927342658406198575927742513353182885896912293776500867119095984972102484214261116951797518291318796092603431870541040491615700185468377596522806081476685020248304305763165500827666981279640029246377197870278666791634550281949909962168016849351737977787269011359167417407616671593870713510625627915973252096998810783574066785430184403250487072066571513614995159268302675976181982803845798482544710099103994813545613981191823309069340717115731834987817500177120304627115267826324472553459524086436343343250280625484211949841432315050345925886364782299004452572739297725007592165766455171643423149880860584146769671555013278803912473726311739593450064228203835905372586545407473909382964933008985335940781707475704000333073898048994568954815717133584307333443657721523787863369336153816221703818922035543115279236486275863510003303456538078304584426923182114064628634001673916082040318463716113062438049863026009578423566495957124663529907823398301173409989295713348207366001983009730771587810484915981494905098394622634144701581077297578202758724581791091429656560209936696585258429589097490104131782210084627879265512785765053590523978323492984037075839332551363241047451718257838179190098762790298491787944795821606355587512441298655360551551373470516210670723684860667580882859028656302608293460953737030987420221472953376703008573639448574153222290135999854648898769062581552766217235037949400448294730986291802091324121673499991952511505814806870507512276657360374107202605735300662564684864094325497263817776750367272098101773236445547823271501760143100067988861060839367963809343302467621876706487364850714031109544881187699192628785767310817851083076408757270277934852218816812122976682810988674665172553551049778184718246730657783542355907329239021866989414125773512903492447341216966454539385777308929114885871295581866826874045387002793562936548213630607167952090415765422770248316191159872376687115428105094647574586969354405168197981466347451287622773286784213877154720824601437075497121177147631915194487922430345956077516104234158790218223444900195607118982950162312977226488452873813774718645214136169360255304684362322901726273983472466585909156262792723783471123282952324681791813279809728149549861999254433910197699754112660816911703239552853671359002519196960433323689678752226405730612247696030880973648244599813945944131202029623098138667127604854225404472674124598314227059530086818277123358667573143305883661412223574179041097331153333625375276036277912790712413396515485802260370072595396300709044841915043259003052369534048920022855540190487153680817505578056911101427883967542523448581522690935958567643285509728763983344217167804205198285763349278212963241120836783207717473055318798537383955186615163178446600716132335380165037873897557740855157193969961332653500293855851375817971227018912371318444335070981464561982800340192718058952673121985519967699371121904857457561640723674379294619548242938434942122189258742905703978523050012982642102301752819396753903109413058399902694822601531890982837633047251978743648579463376842331469412539251214104182284720033733200681861327414725276211073228141418973144579206493495967506488399390901171101062981432208369579269973767758242227159860556247591440299356535784063359408877373584549825114836084753157115369060342431159793869348123786537324060835383174362769390198372568491372102899982800249348815045283844981539551968146037290706926377972090598832949580641701015639100174613949119601999767463216330041872756057385073348338978401713867709903972989546330764341359353528137093742148411431648901226512124406621514449479977279210187254830864247498747900284638787646053502577524681946291193450084400751407313478342820590300376531510104921696016701321888372810571223445966737197730588188571346471775021662921451180824854500946279168629031471281326709357123098574121374734326877500945898873033978132505852707852519480749658246918013544844246949280786133418633881569678420884171669115399634144066849165266822409602852125223420325823010138483779700081933241563737109767745146823876336952377422029169304579413674327062624748601987998710367220023558308565197258190663215531218530626564871080501471596365920431319677627684874610841295638326700899128735788544187525937512409304911990534064439948456595882345532037079313262916840833316854768309949795517002855667987020716634194494008111020490799072492870604748984522525385115608175338595838662239670013724004125368869972678659815629126528197930824952537712295247603666739840914629692407170431036940440744482171134262439406588279059761350448985764814837518272448628782938420244177390083923590989727456830519531624739254172230308993363865792350201091368513220627589947761437580383583148873168228947578162692895665220110013685675537609799553267613548988299816894043245771244241235574278643987158759887065302231157886415901284813722402671324971321225664837784220261747645741610531863134411062683466184308897224364432256272585799204099211313957968980958595475313000430525765466667255995519216858692474195852728055118659605708801778910788079394244390258383992132051258978997307564982534073747565405692501279898055736579681536945628596951623359711818012211052348038137864270037284575257701048337433614914384813476941994794355655131475963881774103106611619420878152395120546706114782882644433059894426211469706146163838401810965283091489962296155345687480467031605501928592912241616371690839087063738895204190822528340125737233344747653120163731584420474103672050099384667660905050500082387617663405089762611685602788261178451142196625668129156113048788598967405294179332218265411809500331165560725430422057593693226386750259553931761657898522320601619110341629544506429792122924030423735383850799846459038091117675956125395641104728924800334023028574334701347925835269762055899335861569261949339464841556227917009696562040736976620330331353313262827797723928864845325623453256682500164270211408994418276479102460345551528582245241871599090411767712880387365351329605726049029508204538676692613574582653124608658337203634417455442006410772633604074183095937216845577187197845502618859566355010493495405696009525901261726939124717340378115170084667924533776666357669758084721713855948185603278446003616506682939699029688870191442425385585950336580924180008053238945161956880986623527030875323863085386178560065146496712370675230052355092668712757089877151502540055889186207141308716814608884150875888564555412200443495410446748134296632186126350911985568421021401956616687124234735816030426598836556664035937716617247736186455885236050645719220346755680771087634073166273939426851505776948814078586764554789006137118158040374479838089455070031295487046738068211403814004062202029711893974500485434116073512888035257822742552052538170772923698634098279924330223865544167901225549744349807893910900417448913931274779066039331451507146299778000696802460999876722931879673961523269715533819958367759815888828801755600889919164064399603329266822471561357847712769368167295273317162769474771753091363770175627386893643388330663803369110417220378358893280121798453329925570724703870572603102763778451151090018400337339933637623287403209723837946793549330231636446441630436824402163601806596172331655827455160172659349510602287193065025154720143126661194458720708531681862341907510964402975887891029326211546308650703299966275605978509707974439779194086615464660296707830636506059338936981464073236771116541931403644723910930409796880010389222189789213629448717369545573158508064722042436306875995177579191197189066245586233350805007600390152047756809995827387197716175664482614271393917676639844919248540234602875033780079259448671900267644619359481978602355798275084499379437995862309128444686217233375893571629936901014455229426039142967537231589868398754697025060278019092514224363621117066723393712971986239492143027989695461668662704899845379156088892103728947217092037932439644606637526107926307037704842103441322774489117998328445867930797082537549976308318692423988313421670547930093999569872450328201592697341763497816324575413548094245228647416974994545230010650802495077296914909908851227128472433299120587086413085114425582730411717184535103302361010567225274287912247147234705950555766295624608174454466584364109109673131017883899737268922573297135534109181516400635429316596747172715965923085123548052587106722268290489807494184945368275191784370294968495251697863436721959244101726285792532527721032579046704533216792710336350908908962109655425628422321756161925200116071067292000104793354036194533568372329179241979421290742990691179079843571000379958452223945693487067341231279915809585697610149975661178347347274038471927513706987524840930984585396780821386823381671334067965668772617530208337667281368443263779993345108109390572077715438537833671902098797874127132077109807834346898608122091549984156700316616790283883058505062324220806503786013434010574251224511197678070261121026572797132404307867185949464355988001102406435183212738515234229928877260018757857753906909133737545579241220638006600595965754860829597040835567707863888443141436231559750727280054156152009449444896677099811175215859775130373790755810002738015861128820074227753683520480230490106759397594460472359391793249023554379199471405066528921196410218409022657653196705878919818038966204770685915779210905501254399922191638753276481602775059760392154828608668776731451424383597006381678468088664389808095850771118516804547502589673174387786275597387238355878275472059555507629247110140015233191759619663708434233354771353844993653419981069453415288354209265841859478292129221468092697495523299529692163636754385822613128522413571447485881563335144858039720420218627248417440198835799240495183482491591635247754743957693804540004213665924791865303790772609684212351200424412629116332213791953192634545335384396166309214652266561333945019704031955815678235325965211749684627818582610316155352208945623629770622445882636453338543971506391211419107607862799542876303230658428053509201752040258958315776982002438902088755441974224757070761450373277250575669143463725690991924045480894861986180690479123355457057467995789137403090699548193758922664073599377062005915209468798260092025459860902268834911509285202510543555309660055573357127471031634683735327588446622029043901439619884125381065210101862083110309946514616710972321154953636586347479624960360681034096534068534845168664433073903915200083185116032517292150575403209991663974604465993638291236123103761969914809002008648378264748038913044107895016658431982129847523758828215745596823002841989404694975916043726819193825891279275004270032163966270149758393770202887438316376503465591463071057790311728779318044496231170614401540644036466122207185070135390516489915909838998887950732784244539326565035832482518760673199170683782455413746376043468427568301021931154443849608613614310833507982485257806632316141650143662645380876731315884642072336219782404965260523374988819682591242722166691101475650820681300042408502287744788966088439460557163284435248735800494118870016180620975584595535672554582226883918739006259541056774291977702572798768267100325233894978556073845242843522895357250206839531631748588467652154345528935681954382387271240153504721549434767737117438130636297756666448274179948169651629432717010131992313849863781678197489315748308424318355865911705762466611492609628500037176617328350755508160815604192730743400653646942673430361702151590575933077297701858807440067797809358209615991655023976115509620911343104688432366309397844809426580588261663873094424894008314833180397126894933586345768515457207812522095622713517419735795257469904300410145832291813210717537415225560651730047336963391732305763869694847980337444957913255661609003955291820463269525155677849231507349702655878824290964091054867040718933753552599486897711839056237621793953770576708785852549583634457678660720639209985661934488163927193171885504734248080834984104954464731419116021293561039505907968085413350241236383603408803184103642309874873924887762314895988864755907768786707068433115398919324529222804680638201857725727332373063167751628322711929152000494003327096952716788650571096358748641350726364622439241779206932443126210454165621532333374181297377932354940755170590106095081655231250479447108976124660390796684856619926100579909874663815297752158471512081361343696889320908304988562935916236271235119064264896189882429852528846620161827713346921865632421883949257709419147742931913461628442125111097127865994697882974469782817555151491195438897951479680826946004901957506316440075738543451050477798229587744648132743140946226708772769912778654684138082651878397278529932905302800567446426189751113154882172636115690573056069295665092378705204556212873601448165306174346409040904218732828516829573983926126402602831297415767350290762768291053846263513299160942998744850257035446425806183384604975272223075524329326176563677289245363639655274778007319970577392526627615337786369548167526652942005225161895430039213211479083350327480703809068289530369669907756430851518541662229706393228792747310223867382044807269143119989384963683902058753352767774637076771881720902019966286554678191969736470407185958877420034824262633025022989226946454686139694680968132722982756773029784340144770763553236770646774852045940340859631159900051587245442651383270974256705475101591071565501160178265818365324891511209613479821287213689596276018927907596210559841171597763858256143087271026538178317732121818846603099601134471194696657728404490927130106225257996084865524954340975031711515869518076417606939969773664629164356733970621433818614572109154013237434542034650969130992652434761658891263345625292125218612190438112438730406802266610159846393604026421383713037052048066313858960128656770029940893160272335796144388902083431470760956096518638067706367505072466803232209070058681231427304296343078424411429934733287249661565415975093681043751025023164790916917518502250803767944859532636362634456740050376294641440964711154520303620093471883006307622710021778710087607231567324331104931033421702738942664403881653228594271828852333041562631942531687911518505962059636460787086000130215173116727482858559439282614280192814303647347435570502048153475212733884469151977783533495146914068930117012894873611340020252747221935002714122091826678322979491709227412395456432558244118959243151264376745342702774794491587033642903428956107724640968280093939022867778011212284608166172739472238111130485392946299700158845429010762689425604903895794211577193586721312967117323159525416055925097998755739746834180840935373291887542889034836128879598511635011935021980920009187319089762827688453437593792485147334881637776247240924260975149694432707260841571375425685501517218433177279943828281130672976258080184416430445291677648093471931049182997850761401765293295662705848186645764056412554961685491319873571168500085329167316086303405928290564872266471651172006374040570624082506870684054241932221331281880641788608087840614281261449148508006388834925164219811229365072819856482186771518093877787525599790173870073674186425481924942111201187773919426726616731488821270233448234227302673525654583215305793171948542481964088325246819598351643134254159951663026078980498590614088654291567067786692986877768440948677779213964639126579053152987496462701696236021729763905863929556209486860620943842265827538187916944551036359103438480502781350120822965717478607631000309028420062501368904648514255840875075135200342826645352950217582996767268123010223447057598664897972180303702028251494336004628440264255915330668932658071656451191569051859738884164830161589995865066972527166588684275368429513184142849382634206267883016539228845071377972696422047048649141218990215135920810725582430938272857685715790556097060438492464112225291895941612736217144500433913926602378985052914822640900373188486501283299940260629114925888456717027316890178508381801776309442713263991427679671964427864499389639154281905343424892192293184780671442637839977802755180229722752751139896982199711658864716772674886642525647546129754006612071750480963863205150543839344555152615560820958620607507851490537630183821008017268000004543488596511924422891290991777051888797014946520634605081877340515659200032090623063287102978407616119441916629994453189777044567982702301740990812194862099259907267975024778198919932307814406155340932664535818023464590106541136955712793327861264511839444025714925736115358991619913472787209852742880089185046836920806036262848981466290401727495722856581681762013507885044543973448857775216118175761868597261901021766980591910620065276543885752953996024513458434474871061646554389221268832576870133756813900259204983451353085911304526906751708179672456913406770748499471289260213742166809786784669737510381633083877507962433524031549408810722699563128893170121964259262448659761262642842708083100493630713924585318582737402131556291779884062348027553791818792872544419174002209622928152043687555886576503076856547694193035097550492852237445556625843250669027773535127174794702833383717887350704696712824378039193140774453354257833008089958037843736024970861099504374546569603585064849280170081075753866510861065607486677415087165980646625641987507588849966007777309553068566701358651414596381000661799828593199293979081280119557611412037462972204006109566238763231370774790631616457157075422227127024219102862031750534798606554124565858639256872290287720333820657810094137261830183905799329274490794709412068432024735772230547304298255566082605808384401356166977805645577904818917832881103161060294003407133787906564319275054453880205346792662890015894532511067593335441220416321295933307756639170443426328751284304802997456178427703486582467677062716265270722605864271325798710550429755729574376632480227219625293164071366757804238589055147180638552486041665865940266294812633573264603573174135849010284758363745113250665643496508409362763855588616636951165502332873057911444842070869038817493532051003335724054961363500935146695310017958729688071578007217497899260268951567824621752446213392948443418323114626275524269670206843821933450640428723575327463973561392803191572664054114234665357996921750593721480323001863179261496879422138420646196616739945219009737491507300998758120563660106941183214528321675161321089032795166758566893287152580716233524164487031319814938948929445553984768630258228631700167425219312988394964516801223880188987869955783795076450698875742251768804103826223053067141236891158265318984527940804545256746749897997440096184640615790658145484526467344206089684705421452329471400959652149858680405563454459430022610914600019477516710714874858403902336944371111939505563601182985323735438896682018771498223129951744315276049652498765360223544405644407525274907091602425493808402141765095249037003312951620562827740001578107275433856222652771506385463082705096689133167384423990365217529276662117567312133221647082618092297624016512207837629885433426462919622448019875308083185986354871719409239399976967181447502006733167013713553674712221815083336964187758899999116010014184345844629554374912588019800205329089603770816089397535473391202444244036563217674214502754549901756137252505094417515475271203817543265136005955687854825566675619683169259021908033342880209570571673684025450987262584733677610680022487712619799267181786620632288935369075172246786786502536770309377467813161133207829431893041946712104570531557454044193391489810750044197843365085741843653408244967618306523010666502016414201537682237438303582923349750052504966681473953338594129425806659879890392106481730437145980905664712540796965177567272558294976094076095910999503797554975447445531095981987261633691703698144845599687981339070467451293273361948668743762683387721818078522372249892057272913704433459548704439683693036254105485443339592816173986165441786163236740064120916969657964016223412225927256560249392074798762277816246917245479431551197813940207067453052867480742023624156631265152214419618655385039868042832979200885556938050544641559395455942847468361319171418532740815170517412691042871008166918140893511571286465313509351662691105028571596057913566240817193395082230530414302198257380762837628923669618966758379198526342907507118852862289058495830539643598263766226610067133284598971609072691303227403891966282561997164558341399974050794606605623513675342864550361510351874055025441359594360527555912721914901083710072469241833207892052780053687968637936760693011302763787281976571559865913407344507903050592610738979602085716900761866163181621785940983036598531366961604190450001449574086955763288089888945128096828776328399546672994558591742822587113769659484131534755907863262358347000113100330701434218709362093288698552928536592474125461228945948788238080161821365584146539492842421473448359303341190353714570153884140375153415569961376442640767684840795001043678374124765740846313067230273635568669640954065368603497878225805752504974974372542258393218294736220701727286795496826017162680884746080559673492064860494251888975533947838347977097932252588000932997056635895440406506954639056192546078065080028885659915459133333069187166847464638123691818118437229721205549605704107927912748520670894991481711189418323662688031269168803221501296538982668578579377215844272275663307101781326665036008373596287679256054387083044759206193027171271920960890354415490400108717558513127407040862658866817433183652842395688956141600224389102627783779526261625222030068397304116836350253740249495622829169655870939114506856936374176589834334160840704070651287318065046341001681480789731807357222708032891012644440136175394960499747240667409991456839498485328941610141387623610844799083566541880577686574491322937914307268942662038633772133942843476835547335479955913264605810589587816362969806683237221041520478145923417252464959603941298606465193860155570200606912510612411662269796159427821294338994556923084996871168367324216237844224195656113078886765392626766439971312040166139779294485648431606225458622409011008320530205875698123395750628005188613036226702239903371823737266292425029853533975892061533540325407466761611249127525723713123902287924598656648261440568035240243363375403393839328681815918224258034244815434284248171570793406235340904902168642798959244844175958344038337189339973115343498012903710405644072334017362650591670899039054590069397118536929007578625399459375586014009288856451705589827570894807510136686236617430950605316260953315681531910271908907000720278127167739739281350038064869346507420502434460379046151690123077152548272425549030644599732654588764916917429623704866481023075752980268310365352299208506611222466207745326100269724702023184176533098036204723691975005585285109054699172637211986476676904422454352544115620334999454109823413218369348548837112190906087706824889713883491388939903283419889728326590364201339311937708040863124857159835110707887114964631693655700903689442557425367342918271942214389663193607267655516336114680413085967869967124498350484905352434053296084999448635569107922489494523214545177901334853729846783493646122879588810857214697929202629242131903009990612792527095332852588884534250046131085460940771150945304927258497916844903241083682615077541844524835576252300776306346699092391181373233924393505911655318368788232648367187972569373045854563632812244571160783849705484630960462604352090843364170388350624330854318318244250695762225223500808661533335045072507386944415668688505283471808614662833385476009687064434290329998654803170631026450958944816441318357750154393471116256390085383498888018288161572758001046095799374079442200903933856492692205625581834539239427349462519894838194263509317101803914608426903768250700927538426136604556291759981020733099213437776486987011559861488112008100281658244013342345258040210386185050681049010795926814384409942847011806420195037078497343687199075083534305057472328362605445673396675383583194224750257977087655122904335532968851763434459000262534875265375607863770680283986213366192866527836015145886062434629001660248659232436240678452196946391133861160240448777793347970619942876397998509528708389643451914329994195866793065392590704370866414720373129409550936530581101021441219776726614267345655081688625234045611262482665456665669752409319004993993427430508974223239507933679226384841601657548365369821358407773877105238519612044996039659134972475170533120184142295500367099189691903957839479315480751229506436455658897283641547119373761064578708467042623292338865475141691125503289511626255373490269030843413760476717523442086278915725133116274314565794838919331380222550004553613232500267911347385560765562018048955663647162148134313305421798326585271291405820455829245229514912202418716245407963982923105266119948954252760776395410249972892914032561073154611552673123962895812544609939847019931100232544332262530302933842030893385496839614425112847838470762620427128044349677346113913852904722843241124466580974859278324052100145883825897947500598001750246453378194627200160143599845618438942584302142740147164753332316365410009523192427528555504796380257620534496640058855698872243529472411314889806190085853876719696754352712068221088590533219716792617062971558356843492916262949427470406262636836579781581183589864578669181915015818193465915101724706887899446177615716302040027851903142099303060696491121612927217694898204398497961257002598090650548177677240359691840252843384063321984405958661934087813861147039345747720397055593357773339745817181179838277746360783874837921432465034565301383363571556159011963819688556804833379899110063381887105894334415821615279513692299244137237543284084515621961980061163271677672393744170447356847624690555479075083413418932515253820011280963712246096701100691722545796528547934659665949950517294175197587062585893908133108387943139653006616456124970967966001367984107487869840006964074955886679892226255034226176135565915343289534172293535591122143292667037200100404152932537623693936326663736162061657285549097389614748826165290722497341202677671422811035141676605996371037294969144538748670876274170892187155977140954368948756490119943261965824158625167097222853247133590841415853676365714978876375311723826739672612009247555305508783209167863658203256892343438038101827862111034553457956878878021831422044017432421021779520971797955723943805394013859596237689227785927133945973492933057098053164751691430952221920341488024543342790469356852917799477851887038315565557359750732090196675488830949204835349557223062976852522806670839024535986562986315359188301418191395568731485170805878672470943566565187813673157709174054132286529285478150994853047339386047754043058280490815417194263882942858625359103624202287939534761650586005209971329780032163024509403654937897602476426756664554026726369941718427867911915976366929469024215504282808050266380346892405912265363298202778859256474496814749839806259002481453266979106346108673011431846359149832700208254540990297759001765352048323684012739062894761115823375086740818241453639490273787506435624933909095274318096695682570223810939030192890018451717421459107457797983865331302487692190577625020157824569758425543247178121519317522080417717005125151375746959935116569331780066091568201818454410982539642823852721956478719623952361034604815780493274117196024758736321185995230820911347262248731582170774276073767841445143979249967176775691472664174174484638020283366745876704520991259067259933210628402381686383459102744152332944361472505110573914673171414289964166318987970263977177203547887352331792011810805530206230124211972403717979424126716807947140235273342011705978476404104563398175478432660381993658150301348900402099457752359774022637840964465051225383831665998263405738866436016244114271479142368421677451178136857329114187783268099077420936439058481907985525740599270781940810544723144038400226113817682141000013520671122673139787059113359217264135046411805129579972503137150290206278148316740143879117944725368406502879217883661621097861793455553284199986568372799184529961422270241383022291685033132558194457751857974001742898326030029612177765337452187038752654448828413457625985381508162511976076709693663283274098252750855569930615511652655513982010658292443077685223981522619463752144682734415652997075991782444112289715107636017633204529240536911379895781158869406756126125345930499382253250361221354521471427126392366240021735968662828955664794442061802775820290733010279759488750452889376555694839103011022273017073588319360646420935539183030718090666918258628982655204827039864071881329607328091472417293628219143990792447786385674064778872354971706697902952349906385788038849485430460295095029630665165176975135041258564900376771557293028442154415808066897680623689541986894525215487267405419697835177549831746885455119176138385469927511381101253529124007729166216816727685274504345234614362121262805788767473360217515235710253843082398932383331163253352517758418746981573229937844934924709560765557240844655476126479337816739369493939323348653714147653859503841024839790440638413377532717277021046969170017377078278204154660075821405870143520006293040719010240739037763705514934767563641671976157604158362288405649552251208837650791143563649320505120647552308497128428842759251249333080620173804425293609159466516524088501112369181757386074736290416170666305510548398141792238005011336899966624244344976359742966348167839910259313356059523379491188898870630273928796459481073450485480517715723053965861467651786116305225758117161704515000180566297181685837176817619432143381569653171544557917559334011999576763803697747518505051148419685780520408041357911807520322294985689984426091975486864159401809009411493451537636036557783681778787971272100761659225612371479162764978666577824858596683571405080132331377787637416924330088652063767173215405558539282148529642130717770316188655620044882357228354713323648323669871726203938698508718611546848765157104753290693873827506261306949476174230680254220849571470528057313083452821372139898647454483181803891804506944263055552874550835089939744327928557609164429414661351562344148853954428521378454216126961175833450200272434867208142507321644121561749546486777662842949871388237775019063420703678512167028637129827051700179409497952909562813562882713953099410066274815513805555116651370325775355686452851877114016692893654866435892193099216183352720984943156936203134906363181481488689921920318077811928435014523530211563959679018314653980848270902556350584202428365761419251758122882468331965297627987286030842715522790102827385522382699078317583073437826623683759195109452085572017482971413835452191176878198320683474128860357477290126948520966715182968032140881944471280693868930547587725129659717059557458338244381471112355401927905530807500353949762679332188895644941547734090017736580950546510829822164132829234581796166270124411256630197685860361752583970222405526884656380931869843348146955085913120233902178596329486633945938765448553626040205917023507444693975699081278122141017169318366270634799333162823184401647146453021680280969140385982604668390027994416068848525175532277040633812402423743985382780689894791715994168145961572441599037299735684360915482016202071069817153613901030657935231118953713761181410795902174467846947444600778253714880782795921292951232557659272316150429709896353865366935082957491715203666484235974899810748187184681527085091024244576917870469584243239544498568273586890268843074030154769268088201943892925431327431529799558590528771858460582536910899683799137787637407964867033536412509348760315415434641319521598573039000842021760432357114624094387098083172199069598806581609133227785921416500831319250985963330478739710261016448885971851011843902268638366148575266024434530614572174112235629789681624241699183637231078264410320456206100009561823985828309932360026912555649991415486995766166267938677286449944590235166744606926767641543357079934877086552591031260742225856997610450058823854025438692743578133897218191179192597628611221405204425048197044022744312161869464692337649528414171303184857209705947421769716151054450767279029133910693524501937294605180505980444582818267548941146277366527962672639432295379350143292251251852620903978205522036029086862510147819117182332563745230150075321255415952850415037817068261612234890084694471597958787705894799654663671248501381195329087503942460691757810435593996644900218798816909052176457538582699677254750615233795716876503623918070498447971417720605625611724508059756375337178598080426094594640984392283747109397901416889346646939791207071669676278412749814315300094013275358390276546448359067001477566923095550463489417303596739252416330366610799372411631178764909747654802472080758493045976376571176733005390055279722464788228258314987620072317942350050161131989131578693300236147380485100797931513336771480266410687237061098994268174389952907108646072967641106069542520827024388243009051411464751543399979215649953802019742373577169900711472293115352178493633096449981666111196586493374081706767427963648413868087303018410318585485978626402482920769870535840329810358969886124651171335807737418886328311820307951714923644538137412945020310151088817914280496336431404642112203384142415467027100119251315544980964893893186042750444796911517084324934063281614216983449392333184124448521494498620580081803537186541652909108165642556135410474092167929293645235615841601131393836097988398799153788528340224524342121899373151323015267964046079921144000983532326988479687763786620998186460661859349910616344883173342345043823977092156301432932979296276203393260850718421404491538383290540504745147848579844109036919291095066161590960057033848123791120154144160843921371447138593462873765381575426048123155797658724597030382828151127298266680982835941011702114330037107977983405767272761315758451846292012444089537749190203917529289764335148673711875909822241032100690818264720759290192097396635667975759623687618806357803948387334923557665468077438161310388544882805087992732168281024221182581710806240086304727694808103064505730263464029463767144169378952044229588335797949221071238752584259694246965442290726620947800675023424744999682671479265031582957918538404211301004506847954712493064141559278726444437359193007004157458444812785223145630591877563964881637891754674519343266538495283860029241999710391378832371763225242921068744150618394917368090514615410522127104410472025982931982544334230116547999043229235954572272585148944683269655383621795588660971112944267077249202184761644751941510801331905942628280037571068701791655314232475810174413635852283905080840153773805420083762607902922035118156973916411717001446736755917156026531671963512915471719159086049124048902785627358930861638619772761556234930769246689273419345903258467966120915378698063587107257928616307960155592670931119794671681109135729227233315212810540855366877517689117571808900278930853691562341197433423873483586897718098475028319398370519238785693256350299900808759117479186586846441591032339698135434078543191931656120245875837361108590607002935650433019578470615323996962447985098263948745774145159442216883101959537627928588403349930483124637295964177460115591421341661689993324779073701717030832280890904355141344118971475699982228930121505626066237802819924382841891832717040542884896714529209340113102239595275445976893700462911994233275735460560082740340344012377911177205605251435035457221650397467394385195184421857541017536866052624671206604098741366282998402361790308489707230257779766112664462159004043416495581847391357607427672971162521659400892884743005767738206830813233130142799565971480530116614261281122724067556257250151342437046481237138750718545841939295594256961550255533921789606029342572463363960801534403594670611479853187770125501114190291263742052192025771800656866365564611265141898699991336167642240372465903427419230521583298098148215404277773632689221484463036801626076391285359371317223624126780761380785311980537930484394323725644807058586034876570734949194295675463658914585745533199146208457866779655697091673557332960060271115394158870749539931587894564999337290641710781654809293750750602508874049045515830104374669768617678329993913099685268281478310092790904799224284942689174510980511520405581480444892610963904810198981874158130524286399880776163717551973861990227676038685633503467974074641312390616338568704680708782093080403455585838410384908190394824842174146728348208329514225589971422524048565066436736300606912518977197157942983926553477621678712919704822334349461232709456635752333224512565855766506339194750162782515964861026853097528356199821517169335764071590653261977630654963320339883967774444631923366127574839590016733337462390610006360591783894288517913433563853428774166359840150339300433628824215019205281863415712820065224369530336477386927723086316144960970918086442597824291831079866650271549801340389794911030557856964710877345593943410708103075868074172952631349149502923236134209517896281185792246447056759122289448834326979976056132550127617577035116171112676095939804834378813642015057019459595137525802934570608051633270824931348369044814513187516052958489702727848305268707734803535443735076673692057898592571586035441894906775556240645288973042477130567388605711626071754662566717874755385924883120677531685158613668524419569274791631945581761742800747488493620384227826471361834622734084522908410632410679244741196375670784102401092705773301105014249557936083895687495006051331388147439445519171370538433465830831649925083015645870525127219029580666143697972707080707822620486098449781990797509961851268917293588366869640455373397293378921756675069224976675810896304986576256819891574847060077128157910126621129612448797207487015366749569467179315668591111963816823354617686286572744403475897372189131247240965058071214569558571956491585617034296890112577932328662703267376022564603616745062612014327994721357327276765013439056845028093113728235463985722384131161150986469236665135832883558623796495840856208900998225450060214735540035697506385298002450085620450936259625863447145937117973879004264243571293584520735411156577159624041634044895782761788724665873003417314371940613047752641109075605640230365099897945672380377746666241006641305103323553841754098562329234016392350725552692327358109392902529496275817633877159110156514869830196307989504510065564906720325952150314781272512197655239081561015544594317083024473824458574163071360103868727053286098037226526933691678413833443001946799487315380339271759291654519766475929926184596604973505623460232953817115738362812340118746241578737416856276197182644195586215991727050898977382846142193180232429503840335441617672850297798107210763360366890272337447358341905611422764540101237279250288931307905382372784839333247791613064627830805489685242911057444434117805771905140475417603727159911660596682055949380627139127157428724272190870609218770856561354816498447072931638398201866170895247842078534995300368630522468808501373495958940239088535006653059112676927143230498825172680060064624664382986825353864641373032493107481771682101255648015204715863649819742215955630596128923824594191304371675080665634439440327368318310230462200556991968950695812287466625758358913343030854138678193045443897874031023095904919751796682553243787482236110804667516926021941284757451289060690312626981446764377790201958833806883294157848106598068495764417980031115150489495400151309294242949380743658031811064642993513423129459139891212117957916165380939654002268762773569130884975852638147402620557782873666164851653714826154562958254121315814103408761043200597088331567424884934327290596295783739901883752922369769238183511753110607132594303094333179438714326930750733967392393605253406330539800702474267705643612680987719472717490749859125806082161029352963732519818779897594726832062473170563929072684387260502335064268009136718311382804357040182308296263378014988152087743642027365748232488187611216184473447170514959391035631429914583060002285820919835053938546629243324560645647924602549681749408671468311153190695265496248688065340712781028049563329182527267363171462235809863497519601265388110458780496938959429545040056270904767124076358993478978328244764022762312233824307354543233075879124890242910112545517784023993800686522010203610762780427979934190280929911846770596964548303737956166441830554918323602149664916546621464183990163322656437966150059765594278134368722133569299100051266729378665262594975961593477658062156208194880832100916819514081169128007148361029145477497761945444759345041595944259819533500586484247090266003455883606337352363695133834700516236224133829259613674057211256333675174473432789859213214504543485881227963359739100181835680145031433548052036789347754623542560810527735121487634199416475486483293692401718526941038545640965321969193700004923817687664009955881149609672737937295549423450246163675475290495518978402753543876361435888927774695104578452660185959962463967084762774512827473696327642078939298605845290336744625628678198008333822045811120023183648878111460588629770619788071878391038864486645082441148235212063965521030810602577075894183469371252986787987085586054917944667099104458043401761524757748317144134467138340311870856195339826606635032739733159619001535151207445296604414129076125733044524213528226128427684811070549361003115306367875778424147803696121214097703380871470730934271917646714247546519663288651821628694652622384003585015433788614612144752222907175601026298881975659757913151277595368192603428540020982567869293304378198634056836187724870462645009392467392264766658281348274098411077909814783524815271344949852322162422935728422164781501184471950940361576569772051831771644520836101297036461625778502912855975144011381250298846460961851430598388399241691039250133214401921776581596197361389452979127820141273710457149537186195528923541276413863964759752926082743427176504521503410661657427000717063394964495062205365063941816438059394253354664895021342476378449344757753402575790079167925022523233707402857378549677420236759800588427564631211321453144735966011711970526174964240967445209330652935692163309876784182836730633119585640291138619905685915026751391894464853481634649379926992446627612969359506740182689436226509421240029017284078388607416021663945681539178420751982355968640056575837467107317821818738152387651089691954007659652725751192762813934009740428455296306699813692169195735155361297119319732849143139542975635870064146131430639248312235504852327322353122375286359858228504941859093683337857477033534263013989024869890463383461054006002892879292224873892323385099636481362183309477797006085436718255474140240073475255726931233826508327685325118619298449593265713089805429374219940984739389487120566275099016359389103328324032698572360025675236542052559197145675858688936798945993105534044349089574888622154779135439715753663102983221657006621376252645570442055457724553181363534130356691440337311954365185019999814027302434923309185264219884329672940583502316674619740373394308123553483963235613875749509218954249822955190618526985585986619187771022203991743088267315863297893569315246004131443111244871257523741284176180889355528156179419104592500765822631630633916054813693777510031296592284528498656674438288517653549096764125115659495454612718980357786484879312620490704147562953257236900500143643122415525055821850088850087471650950183560233132698040454903870635845576801075481016547314942229913852533032268122257231558147930165995471925688261412038871998332397064832853135127157726798997968509365827276325559881194252905052662785515223947490971579587081867610134336204011693361710802624713576211104855404658417356324621774675500418986113823632859065650635868545041024451082917723116884888220451987835908569655008937040337760236355972403220142251690919776001207707581062848083667253333627018088144740995391420406227407508662932198970576095132558772212016064742938813097934218178099259128798031072001103071384690633824638308981533608690622764174437440048359064353643349531178885689389870438696300082669812626362017847558047157749007052551359264825049357417263224733188607959887568862496628357167949714571437279359002931094384663094375684868894183241993212537576775990010362347042638309660150627624471793866535380056281588731215838288918619451139720483827681735565217833658322946514924319945386675829205366218443607676060001192027220959405518818047065293113506872687366708813601549857368913044074031479810501871988049936906453576211639447023316047974839721270713214370849692244198928582161306408849071189466401665724974951235208388700869125768826624557021540036047870274758168468999300519543302837049923013249124969961595107709840836646528062185229963885964627080783354184300567654311236662047924268411539889843203089265165597096975840028067491907542565751896210824561618150623838032763353820669001791423474055646125144253036296073863137975470279894272502361142998808714103739166434899002051913969531392588662806873589345263778910506616404524584964679913354291525991651281759875069458475849581101038360648586465160109609141687364095714428649127520678773328895835488067665084447697852717195089734637385951272633998753226064090641755349894499180027661000637243944903043721333151491032586746363772386033876302960976220193844831130550689126426902593100880883101292939634718590472858215941349568404112645214344867452964526344517276643829567205021165896226588032301650251590550136184676695706432213133270867274280737687561158817866098804265243217851728596547710440199176062636192710418381946447883806144983144272716708932780960513828316882248918094357696824307399456106523647864039832062471673914576292205665863842334343583394388713438437828652038336070521666286862648008162242310059436084926907427206083247733270761859639111234981615642256684061771816933247467227285505292265087553062321061595314166669481996786907706235591587167625981933025279766558894422276225324697753793782453339117048877681730947676140109185079887034282264924029770196263794976838306475069494589846121521638518298923559411259489981541019308995464501651524463866932802456514864056915943841661753574182797662973680783652603248308639569191792167907269118003410086033463071812870504044137963259620388137813817884488444272300834007789712823372238151822774188594142983015495345122175099037561399955082607382186999106327564436607763292973693330904064366765552285535833866526605796457711719560459719175456327533516282284806301820548972797088209792430736345791924850444405132525872904188946278413008690494904656174196284716855197564818435146571169671322077911032345794330099150063442392667997758934624283212072473226835295290576253409615261675917481546508631473320087813250682982944571837335537294302135782531442255225468074180898435773477014448743345887176696763078634586230070679734028074440124158671954165564835101006250582876863959337819561001497397314206448112508124543771396633881385377672325827380585948399443853990736516789336196431794007560236377908305400123559801244785009260476844551053433288625537956077079871424315427657201504220687685424930120878437106476006650905092495957816360749246889610587509143033229784897877101881072571698356574310849145936281069743173242598752113893691190620291043692440461334186373827509267812425869119693184015549147877475379636893718997958388967430385263087589534898847904168378338781982877685151938224418856151805318282656188622067687706767243491038490769201021684304603176323606258415272489266322271707633103437099049604590636423883734569441498124058314728606566520772991066365734864840035339538506509215389762922645544239151087214786720169324732212888021358305644678820094064454187451412899980207854308405310316642417340985745015677856671108991223972371276091249237086142851704127435594304392016344886659751497513879946659680289798165916770277448061953781509231293932601923738906831325639499288734385417595333510110920082083245709384361913945360828479069062027977004554440199441611958621446339862337042218247173795231237032581403246714652420121113856000487137956716521092097197606196889840937672195471956519259495110826584459258002309094290738902885889921429779904235185744626562625593618320600767682879494657186445997173074208120832139162512979012002026705682654358679549406168357022100581488098017224753469817472561005348907837109949300687374253915614722531224094454887278976130739625204156733955830738641139910829653979053918894053769634167366443439564773763466944322461743708682350003863868074012840054043570400914937209780089961522115889218957366712484350386800470622243926788684515775748380357756653471550921843571107120657562651213021487141879735346951848558186979752421808161477674426382339344385129985130006563874373238839598794883083166806723306958638009322721257774287473280230582754346115727728919829538592964715180090610154032807603793588433656276910496475583585174972723117427778201767934390515309603160559553318872920975281316543500002242831015502574605399721747069300681994846470973481842218410002128792302212667189535735373509309459708028662098790738820626524649217497863804543524469601523706007213921162697498205790127464047088854711680194786813320772126657214723250978191818007707605293485712171838647990061189749677877542215074518759997340952354660599186790086966337939733439597287542954461441753771310278659177857909079998285835626862615805475048660080550635894497430603472685463393363509751667016908004481467892951271871009035731297403843152342325304300156777068569039263379743059825761537410579664131249848668924112432783812197872550328996162927372994242827289656283871225001486715055532999042540461682343423635091674115784477769086339044750278053310289569536566954955818333961831444101260748707475184764576992536741721492802553794828128538698211083823288285373631203479944986659165434648775424555948048222683172756857311859405276245054138117745767525963261688765760190721865166484699262227530902624327441136262743954587643664513536809314522583118360343870109824107520878979390409486658086765047972828220995133645515638223387312828094145665750684284025802647344768919994373467974405007265460110885832775281872941528335903656765523296302899596385138443286876407448618386454653587333616026689075953397910880374839338875333135089989918080272659950570516866599247742669090085432332739791320760262365416579934887414611006980721251927803666827090164143132536971824099741529051092105855926825979048955732094378095007757010157267395900548956694965785543506199381993860058355547188664445781197413929364380480006101563885543788288613630770050073949926966803597756636563114158948754679189016149265835747433667168646461245894643429598587897336267604043124987801152002718293310637993310211744247546970625881672357177863378298655092171894585547889456900646950695175759422028349748894518910207845336363396534972625570618422057282014214005543591434650281898288505111660324527717797621504469988663987480631235255925856161840788660955122909227852955529697356767928944328466964120028635865119262503806246456850692269751488831554563486088170249987508209480993925558162193880398735229602523342972227902189581794066146003442196776782465854399156575454832625924101846499911939093570549967670808131623173796171542536419654737275448187258197231877266132276383687106111244987257765929163895335325195859811202890069536509216113908657398223588203299483530537317129397034754328860223363197911720053788188755437378734130740258984928091690430552979985983999359148747827225523624152255610105047541511483732837391388986705936606322594574709701652900971833922639381561418055992088232980050461380875518042125567089940334330409044072414854213747619617013799541498874647391654909221367594626393698639614241565755472541819167452482159416241763231901219574113423303636202384351345498042567366855619254415082483000723229738658073071256699234981816158350031137397757024390013467876847464050869719700879838538235938638797917571539337393249946389845964916613981174017859522282152029153594438077931578162779209846714575047191755559496777781421108975914916104544856322942678271435824261979439765443261070122013571042175130003639712599476445835112550462388030038455245269489339514089292182288645488134611247088740659935311349161891563169347575428922178332000642952686430677226441840382459773948513591570597879196232639663483920450342894130479922892957327345594162782210575590252825238360228953871434300722030982311386581230099800386857495973546585909328744987408780671594285738404396145303817511227743904330450015010602933788689944687878667359872969447306826493370895264237829256064016458754150899428872285826071276391304098343724093472761667500193508447040762641416164906469495066791508690739991503774034461436561803188563803692388077989609148836960632200516749388466063316284960404185209392788334374691464739765614469928923035524023820789852340163607350052482471340506848519943348770048686014924369483785072522214116870320492476013112281612667970716898136812762723747767009571984975369610821110935049392588279879146333302580253401530652827481414809026085415823651498316489726808863422534089640140773827528927100384244582442053402662634030044235549663830492443740762764905361357079884435236770932519757208594231027214518889203262091932479401337248428927555700213502324596617685266137654660347123096276263482888750368256658065527878030690113641323316918247610294785152615149773866543820422979610539801620153632952404838860894876430132331855585606717917223245029517975624849457439609583763289229334379205927424869557244596293342516557678903031684382693164210722579047620174118850703197147728559251792793787775587004262785124201083912285557125058666462931017323513538824668072675288352242115018461167649673713798218071795438314854945167806980208789798629420526359360444843351293231116457061166666288548741190464826200481276849695846968070352407211328919977496821052054348260602819718924396001012345805199297143177251610738540111323032709115900295428464683796252201351221451115485957195519983584537920315379441330835945025733578749702042929361999888710668534000280860640749150987488270067380107512297937041157985760366415286136495018602649081075013067791333353879683700590516933641972298501531416806001452755286463174883084114995118353789164237187384293492314667879325039527609618819372740553778116699418659968435391883288080002692192243328109784247324543198051621262027473999016298231151584322892693196935251513179437929993623434482395631354689207716418580260841642378604878030601338864599666082861451308909558779559875977035255129644058462607927831639360726595344220543686867347670258062552128356328458818341234986370974518278777155297611829148867060676210822521283543094312813501641299413874244767411247109646380611468302515789854461126307919846301863110554451843025692638775205264620748732905285926445850351035667088432967383330330177835697783276046305356363166679959567286901479582935942308794075013244809479264690319465319762495142939152256637642964729444001590350073966495062967426434335472159425018579734085457465761008760101537927235472538547051804161548533361290107421401237871978764430843597957928044409445658006181319917356345986077550431657911106110564950887018082711521046416605397051856767249404507525349668582161051126953501537945368345819664946057082170164493214018232393327854201594693681449637531506479833855326427108690893417321292924896196069806492187533482481949761848554645010210490709427955617452114822613956869038097910356778666025714487277944071803118344977002978049603923913059748876042424777577665409636442319398927560929138153265673945406856780277826565799687762322569957376861167794378381307449968678018997247079483984788340589807827590009739563539216690218555623740464746051699249756631077479845734121146786911090423395535598026631440636204554159036697271879285834152292377383351702192710665685411639340803849939010577100952667498370121880348313571684292055436604533122200701800173813310850431437264183941084719783009246534537531704554886612048671724602133363817458496475575120262246255507100992680637271752552968308134346716528654691149079767220255531274992212852408819571537814216433280790609207760495579507368280791713214099644905313285872609022942076910130049011701579870303319156667450303577970861511849362120386133088902356330482443683069860674998028056241657964897181656232274634643405716962298633060947734362737911931717686939396013054870738083033782988610661576968403795298134533108097999275275869819328027763776257153459671327999463612012001789018919874579858926562046357513101854151482917954549636649066513851334568233426705031074278508753474448847637897581409054962608484271951273940700669043855380936420023339325313214304349219798583434124090130882180548427841153602158041885890385460589719432254056403934771640706795371944066030301127417954209104107708063393814422459425246935869775527507851844840328230932919615908072916543556386231935285057687330589532413309322960358293858048424384309933609064360377660997214038687959427900818015267705734517277191717744928836758501303537805354575936830675117479844030286254143093883932258836410690899333774912672903592248382186973830793027208557958719413895195347518162536395931458763535250994335455852598801377477693750982978103985290714147644928102929343072061524483586979142729729026945659822514767936479022593153698704685074629687304990842215710553659519958389528998750884605563441456168005914705417879728114648250225958095785968943753387692059922135573963092727977812028323232936182117883543559485413574153173845355451190308056001615355082685262521632823098075317904310138697585490998600017876248216757091711751205895397561753448914099325817393424415441789210570206123453877610163185764715018636441001174282236839057682235947030196613600550024979201407493938174884392480552114855794527401430222216553073882168038241304927221539143683595927626214462006098143479486818600191981566996032989394272169190988106128193939741596477676253199434512069285251261743636430674346034195572621886844829791343193358209026928792145216015339904532825240352229293879446842011926715554114736066764640818172467776083758679088334944282730202815200682404581473173984665033684670794108151212105290002694717195267471842566354418422515231886481950831901835812116591457450594784379803566471753584074588955293882432637857655825407627449851673622512888997100277757644213603645806486225610817466388950853990562562811246921484245298970699675977748683318399573440875029031290212589505846656102793728810892157722349190414093221133175703772477158638890178156368651152318960756594127951137042866505884724699708200773033954840188125926000350041113287153580890007217574094905213858161666463136895281225394426737747967902708563326945237744960964812200241572362458711770053609610912038302223380867161836042292597571448100172286319255628653186355724324983853675143544787883479130809602925240894198171420702312631678222498862465928648529558881158587762776507787764099243206120145676109873157064421995584509659922614064337157579883124117272233932591977096091669636025478154693528739860634506623673536493374548555465111085795260570509585891340563912166689000627190800080381215492248699297146851979454133496325660955538621574853543859356211205755326563473135148647424175803551003592606032464465665316951808000071173842881576861801536445018447325888212790254974967428018403275204464616481579362270361532674858858835570996496109968250039523186054292983758429864705661837460397211026343053338504249814380370343348127881323763991449585387635058507991151989113948177488192952680094370764610460015554776417088943954858984003693954885862198158650545768697464243840240561501261955147856863668250520769557516416407477796868836410890758970644816820490091100458514814902271026232941639215936173468666578674044571043041652039397953289591692922514653504809047431678489040838380351893538911472216389576770705712875554395925032836996971739275574060257326270551964590126029769679774662298034775035853576517640935533017452762531066052503486260409315372302491012442777980190038329963034345767187481909270162357599858527665082772703037253408359249477608284260656453215305273176969641801668278677626679426081401947514919432835060684395875415926464379887598909459134832333565834930228948766767886838629606297879187352365080004043940585041827425075699374524053634187197149608077828490732412325436718940882658751891050847141279028634608939535602838066374800399048679174389517635009679121513565368999891774234006307453996831375469122260777999418253495259400758691747902328343519507936693812953733898583298318954900799778790611258815622177608938193875609277917547214630132586811025948527781015759036228167974735365642664201895322570380981631685166472135126812066133740891774777606059404600422134126222715114995761845865253605576095606627171073370848784072220245829878680636196821758562188118743866625254793076916607366968259897461433767081380702775709989130107883974471108380966705439858779091951463377459429342603825752036953246062818002308456168917668136918501460487356412095766931277483156972689131503809048845811842019210199131086302725248754949139187377253631257346345388802619307277304965513936452422396240648155709516343323569849828542869774201567070511817136789798223763294192914518488249477400999876402448400657325145351055036061998987888374462556922106118537587787013376827953150237607396382520047744309210491627364652407669718162892650221688363626120455716404906503390817793136018645610410935947011789831519360041308798195657779677828906887680212011727929742996420509053087672208264936437071429965422197929576367476974876046838309908047573545058230389265559272952462420014718091584867190074568953018285902251564020936953174730557325849821381945339941233919141712198096184753661149888616513943161680245902137842231300244266430181944202123118967601369845314586844494996215889196823169840180728756517418984406949753633402128987048071333168233048193721588334636689343668694039482826277392098943933733569708526617184604303457233308998639501822036733701434921846378388382301025399443389156644911979207610655796635881014981903141900094432314788144728207842319419411403336318329638732995218705533957000164240829325570380552210390911490659572152434112594073187920676167076342590706722465208746369923487504374339279082388131864047160297295099738875165181213905401025430374174432601992582206355165381166034526444555544368900412878039506512856537928670340456158520032783611631580826700391256970847245625143513514408560363418501918272206414732264553271384542874825555600431856437986587047919822654076913116671782485753029517261761443956926191275762027568776450897567311161598794984938414831693521801607131853798958131160283323191286809763854129607139098839847569334898068623531473003580521705419811952274078927504648240422403555353534226989278268633054739844566312295783812280171251521144570538460555103103065484046186162897397605618241099242534247361695339451439603511512242785053348372435665421472418510248701849154705595944870835687648283860161162453135854826607326297995487919645648915011577154736182509677092066855290390092206923478604431376435330174945496591500490706539403018851544996750797910776699485803107938546275937376530375865366914042731385523393977813075055588208717573782617898084361098689796781414325206334588932956509233721422641078764286808732069225400666943391429793312070668718869878797756119405171983558163139127598595949835484825194917573432725067583004149334131674536399484525627216582002803215392803749204048873968866733290416903478602472710750646313880735841423124118536064264626147033371094583695803210637448994267221019444076014379054311726106437679829448189644130742274059797009144798745253149261996021536075963858623023559556061104994170980808963237751161497830873228561686012050869615846033521121682978176615101774496321438186523968845516972575008286244407704550702673387221298330857233174843222994159884940645001069889975235498307498429935874113995083850430983640046177678840197828596138854040232816715724924770494635384387345890963859609844538769233843208303606174771217956147258909006826119957107649814643166889815740585339547473681805614126596415649514140959696180704335291278764969247085740455376435594331923686101507708493461452554148175273015313250930271980017388949549842013620502118521167513613165470630308647881837207566996924900972167851506795156003613254225870015260494419427661733891910780115624477931584972022330651881197434173961142932841452199037528936260827645178814439231378191793047287741057024421935074953096495482564561098149224940598007433717664954123288606678876517368123452756353126828612683440517323093576444581401106401333178662534525436432282466584481181573740134640637314091415786316466029833334123822591446582586450909168355999934011764223451176325701680707345751806652351910950566375298007986291668436877988783548912322719508795472234255314448666149115856118635895904154826373752871065387868580307751615868760979165429480535770837031227364185223853877770377370481075510107437454131272485531091697172783874330104584498729042206984637504655536593274283227208906026626893363431771739053568711013569391232298067881690651270745632114391815293139043467164007317264400080253494003786278114078203997005872425441375696124246544541005003960224412981969237092009766441848530232093019149215299599713193222967248741339645344207308090406249867663075288884412299748330180504276065966056646726767023303112949975324630052646483511136707107677298316828166106070558245241410250518554620588403722014788980940856366031921887624329722012450310319677289819303766262257141625299873083227808071811276276196499209984417807393709972757699117137768723555862507281906269421547267469654579630259072099489792069794322432025238573531989614469076424951358200125280134027987446664224443842692550582718695114234293694521020960413293140560389322931907028025385174468816469416438339751717737576804756338390116833474118567721081591615697582584503039746002748631936390308265296985852048248346199907395739808528888761376892924941758236969359973941420458977319896668411077412700921070015969627189175853475196646637669238910095402793076052360611759853224296544864905788422128683538018147071546984996920100827611221732755357452811542123475990878294003925097603075202759367753053892561143635614420478279393948527530749830691417070083131230304644904200331598451017658445874154002962724592360732312028696644361889225897722069614370234163046529670100142433884340736048354381799948111546406795854188572010974874915780814978002976805266805917758864382237992110246628923813470071998734284914212854439283553671029630598193657290782416248242085936436623470505360258835862067290337841544968484499286493603326637948853129845153670695329959472988021185315321181916634924998089032807738267796475166278634650752108023862153460273015963748776305956874294833451094091383842165759459960188094964673188516822631460476937300524414977972975250429769726215815231189497341987101377154455945043620970393930044009816510668205400804240588677306495290015537620000686901080971108383230122843372777872719223096870768410714854831684678369836096548658235262977224909881229781210379988426827234480542084693017562367012426862405628223357606620846024224367811938018687725842244260102586029439402036372709494850874888793627677144000944973016506406912090495920472943929830870145134302812578836932054265778339938139469046673454915997907945682025586700250193863404844262990989105148716986774524887875639434476996674689067036977709564207137930239058580159568808932677557788790973775672830199209391290986807409110707133704888720406366588671385348742847797602756283104387068120760889616760211321143728261530126897989175761390825373882411522274674390028965352795220531085895547327821628004918381022120640209990348454365982999422221429714478152692228877566975133037472749716767554929809243826514715514638538983732448341382899258154501173509740033471111089576495188424869911540088751765551375297568639474406418422790221610589925287923498013228774231570220416995840067266862806692834796785611153837531240425396931519709952079126110550034512183970209195212507970352996303456584745581751021102202664557901472060982008158110687423166074335236082879933289619021072215955545297994682945365497745025786160472566608589484342900682664998081627767978175496983435651746409073714771301343670512186141136873948763675703197680610085994254023131255261566984676757296595265006114146412562792101015516368256641256805191276654819488389274986603550495529615189874512182199622515682620932028576811628994214918207928428611083827043315493547170846118230691963090758204489822046912215896472229956281284319684259544254911106815127071581220191332544895799814518686891482071766315364398104258094128419079968924619241498846891338513609530675295663210826122660596126540015462783811943873170773925364780165972779368778542334028690283463606510541312069848048244527859681252749560395017622188353154348834299446066243960700275947179421371205459077077757489248982295204777617630257005298866507644941206225169917996833111193130321262095421575250908621405573399917024376228685714870415867056210686986528661432602018381014459493741705792386126027147045198818558403868197479415556296699955445098787349622893994664332199177891282943013192332588797060434939889530200961175044924463163527861212785705891363962364478486944606519591258836104524567734605131436357296004770867820738970586223109019058953855011529468430412872715218884247630355194848710155260438509163682519778775195405284962692488849159447189627569865732419559805667574192406184911837622601995163302038686904055920934722535864335588335058548631794816893939258504667879550980838542011546887642118619554553031034385756257470240542111481117119033937678820714583178928067346612392658410537274571974522919515612668193429946657743038424807605106548967193723737623552424180912122473140566938196789739114514174042649139582526432768502388707169618363899149283081774527155812758470749310259032891979942270893251573410746605793881438266424526613066810987896704703624678196818628304000390560461704825800593576510944904191069336796060068079710273193177004391557998775269740568728977961063674827993576086409398851415853271248317249931499883727860452687278981879042072534644801992385634770911841522332868184591374809946809619816705486522157469997270815398122951547479426506052126736104945905259986741293772562763478833548978074355544866737830040553321246254998738042797994649947912338232339201150438194172970597162682891307145349261382587668365884552556255942715764851176801161422531513927160126422444148257364215218316888717020469180458205436292499617452865135257604666606735363863661849919111156202125546504395200820715539823293923090845962273515044636283117002671469405352644496765100841232324674698516651553250065792211996823570016722227638423639581359054256580679618385779393524483271497522910173644132182202325871960296976797886773808334940289719908968687027988018874889824259487627822482653161825310606913888168286068474262742914100272512396528363234359443839804284908169495234725870257908183408321657933313052983442703559375802212724581021290178173096776675418695156981705583948373523940138876055974903000538444191626557879233860254321234197526847830317736851040588899183077797406774158362500856406332149303613637867442553829780225717430326623695759298121182770766286268203295462974729300780056709316407183977211263077065608885997989234184236387327759774342908504793600712282971786179586401604316119699369286805894594250171105807094138753747363702914050446569603114720748019603915155343621686324640065957875833219438823786709935137057888903928669454191068568347361667209157020620031946167687060726453760941722451460453801610687433161969736221366388788855662325736994271393080805514645993062920955099432649001818246078198903064707556194711581968858048951908312530976766541072629101906847989116393238670591007171856400436264522087298755215327960681123302321101525324239098155793802600748268730808177990099308388349315294321896707987237852358159249993686526089473342496157552805225138266757132556748199097847600128485509462109075369942448040265888830991541233517691657762582384134147073675377975028107325690168364313593063540800283293156195449121352719368267444392132015367691313146882768955607668739032135881795491439545079620578436296711610483173511483000187147022797982021044884952409956703189805846742399421470776338529021419084019115910255385710107812009512549530673173661443155110917644029341198587873258341973466730777454004705706034219943026367432244425171759767749627377468853382675734455536517051845972914416755179597246494257143336854608475457653282702559646619261250005007316165246052674079739255763395017646646952066971774909493779320121219454428449529537672946053937770638723655979683031904056119387090711763555826187493283207930284928214491006806296856827541279155373698385297123047447003130756233500586194163135176220393620968674572800305745179846522483005453072614555347850324647504003559857172370942043301827067122816280426208094095654933552365943687683986579944418889214815656847192525471347674003146045118589554709162183710373247856650038040512180788448700202455536980550355570368404207343369974453390191327740877069390898473223412171262768839249201668788896015700517416821824816595662675357152120330380006588977066257639621513342524008844338372173882551055039432760153713222668413318995777974418397018476169463409904708640860211826058330154384469233864622918377008241115100119214213739045721922987560373301572393516129853929624144370266808115551452009458647756838947330144455358887495438978026591802174665944178968473482987063730061149281490552568376716303837805956676525969814833317359004666323443787371608463798025888184801507202140818049014160813756876642879138229404520607240294074173549994197294334710760054794328564705916162785466211663357033375171620990160726446091070728174200961450605153055083001832351340189812815640469371150030780849703486013432303512103327012418597657812785713960525061278040857028345235339278360672562027007186920305366244332720147223124268035244008565873721304856392657118934253207510738445606528136825690888300116465586600419322302132876553953460961738820103498310413384974752699931791560600145256683024975331973125445502267628554334946936573224775951545216845301709226807322828186082951065918254573674289739564571366345116882175505579289331046840984537166503080585964075186447861848044895080932051314489506633847892736206638712553349038166039873953456564241365756768630806458500281583705445900001037554452603247125598649016559620622672354739344796337656652842793341837588984440395962825908323617833612999609205114769249175264733825328941215264094698237906126524928121273146137143938064194462044224875647267291651149015633977331458605845818151990163025373554549118697137528966185113606665106287319318428668934226143160609073404975025355571038284407747146592576443792627972783570444172009850956540983437699637373032631037218287066122311313976990210934406557981085696231733889406906576703398426472916134097617478386971679556966688920504544732498256910508186042114173874214033626086199230215358622544631150872033513573492923725118178802869531366070426263267254337838023369720725819430937995701846124403195284100636806039667994342495195792325491174636993456296599190592196338579528853424540887672380136832281068951283366900890437232056131479788030789389063181739325092615532609320466998511328095793044276860068134351398287087320583270103567494868849188310112711952767716109259632303076674756079408517654185021754907601350947473427749476889324572039474623633846321578223506227563234827005796594867640674056672954041686611652769448739861557579966039537636090930925851621940369349254997405479264920825082745550858969601461261221984547920150449906664450073719215494688977486050159633329319439912070621772658341963138067965548427751403634475297745235071080101150793863484819908848807294745274846336449724417955834598704794552151300291365514536959246606810853539027189337022819894331213525407897364919418057218088248997593641082521611563170985702484674907832995856313446026851938299143746792790952146997641018802492008476389135671970759423882152865959835841775390030956733560493720267858994555262763071151621396329059569005230787615998384659142803086177824668869350244413786188215817827066604858803227840946309300364595248353370936065838191839228443648928857683940014469123636929689904680936822551346009553789724929938066280628724622641528186344035117329086555475541252234785800062178728645444572470073196439870183498584866778765934752997767654445732606297212934121360149189599541259964891994166701396347402305797493950220676695610084060773406393581884572035812201484544525823474182858019796497371308790080158322553952793233473730569699847647612837195707905961448274136647488384399443394785179141908695011218041449591569889556080146160096055607192436197133267643417562285249576976629774117490334357963724229051315608669575875990258508846770798661660805425404627186711372742084625831295839552880911320285183296783665585850192737723075272181627045229506940030789913558600226391819371981032034706436530941251390532265839907113292861700378479015707648714829271964577372655732708830006418435757907956925865485622726352153525827737594193833133609969434635211601019868616743428444267740460804392294022446542616228114582284527488128817459247180615336197391720637467644533098294083397664753430221596907946244700192923673651169013228475052925570860739837236169332718357324593162384933050635282191144100544067671513695928477604471092752765514078217658981733484707215487444541188710980901685285076412226474413413205599340644349419781106428643337460046809911334022600827173998842115324162026095353750778756174241761874292083477378983115798258134416716696258066210544208623544395155450882821113030331700729912324726530814844172418338413492967179044246180882395959210264465194587756026204268567855165380274074779808070791391169040554741203659621143006043126170095597624707453240100191287548711578349618086227107119165956003949716361011909722410303012135151123790632964318069698760263520152535914034629912114194799753498031741091765155951307809816447357805389520942745412712581154938586160995386124885948602358161527234122767228913680512847542486201772456777812813024924832632886777013292572263657833735559107433686244041065220637734529540460284048795333839870604386994380919672676037382250281001858306042756077312905145178512040589643639872597710664061348628542905272195102270180209390556863579248474758167346632783996816989127081891114920646066059956677936054296659966245119586699609009383628784802895470927882783192184203531057048960604850794551433722030783908773712579003328848328149960532807724155737379891181454270669369094979691143311724418347782706146318361068021294215301872512126103201449745731430233723223971097978621435244139748658790481342450262983273575792298233754387004732104890983130867617026671689450736576365250356692895273247331987648090233236861229319435528869638462837300411291017403920691118049902774135231160267799780800957526091753278141967545858520939125414370943936349289587950812068160572162552903357608316161222733169267118918242986607596181001645576663771681162595232794917289868724528000963931522914958571859996765520178724947982329460172794569146472412956437398392585295715755204618384501581032476990238560027486362304514614748044401190019255866643959581640647735497942203715458831503516280477935232295926878425699515294297658757341489589403098070757011078081007657999509522036641978292054167532404435868182873387960543425989627305801754007261073461246164814521386479188778535329192105424369571033225460951508409411535652048610714517418022236796984451513393243016101268979566608151944000248734004192925626122411194696750517001072605270819607359372797611334040743968378021930848753031622359201655231542681706453151909806491532602979817114773401719624736618508617018058600568059604511086026970521023968203795228005023553617223014594114206865234756476302593135938208239565960787689095187631817504017750665977369963880816339014712050546677164766358655757291689899183281648622923523310326363469791446352749369847306804112600458297235083249233264707592280806586169031053951222979227820631521366171832616169728216969449820616865992177351094564957207754178288069354220476896122053526676731369536443520926566105697091937939091953624706255203072608151256789597729159768393761723205562663943080519143297689865124975227243617644534547476631184221754938118179757366197082390190070450574240234647609637535814450573157668393683069934069625976350039231259976291877196191791205122642752147445576035695019759216778140664900777542145186084628113984394611012043974360117323244263816934502842854330995462054862596980668112227310679738715304339888269882698091483171289078572353895547052436945454277839441486065599455530078797649576872970872175090245628624956205167184291616906471447420840799532620080380363666136718019133339398624843220683931324741061156848467868643693835687406233906184934161988398446283896615577231941965046774439089621702255442322657516041429429575586246166342889980478675686765756891353874264964884081512340662088747302279330011667172176341832817150250475669009601476935469187449013443903057929074752066671710857926784920722801077955237396064202047026889763590299770852642206893559431020686705905778945079695757907789244662336579478850706011630997216123327128633290086131740855246024713969379436275130321537168525996579525251538969700693754658550256076647720630486323244711985367785801456862809216078707990166535065328294266410668901683226683886659824380450097532617674288850987937348150531229138057952712205494708444906713803418388179998123373708724124164178681754631295814543668280347874836099979217203968733702502942195710435275623431154427967887306267556370693334938872716299940704907095245480559704007457801082557859312522871570159606298878366850307924550819942311812486730729857277023168762376330615501504797696490782370113744656550930794368787350874081991214731051003683479764872717737019414514333105026957882473961627074913195910960223816815154551576802311259339404611532466909116342602377699694958285172477849491371099528961090054913738044346750967846421870915311740651807645124624528804832849917164094929960012538477344250052198639807267601076558655305089042815342302859340617754536485184826625040584752631787124781686565481110777523873984413687543140643504142474495409429037987607455746107442733361771304199828544307204373078950676407216984040007755185930137164262406240261242968630403092765138077361984187647893784176487633230574242187176511639696986203670970168345093472487804453966610169003908864024503847338744519876196701579486320327995425252614337225089529523418560723879289117127573404009235882831254332070381696409123657458813918285353113545927938880529204927791010066167870737647623623148184578397409254261147245763313649362185683949096925915490995546799030235646300912015187463474064161143849401350347742148552764546528844843277750327320788472297670836949813767657807772496176760260285899528207779589471399092416356407291111478898212245454432693887966580334711172729970803024553252586641137510556739796260800894008537603877831319318274149874333478086586669755092898113260988002097819726421444186981398175608213639013007975892939988083114271549402579822660242367362078851156468237636411573416148908953108770295677623846920737814063777961896657155720216819902011287488064293345082942456853063752920176996029756383148995310950076237573342148131828958612014524812235083386040380711380979209201040106352091393929595083532806697222182249387287501391385889309869590792751243534911613394625923584590017972021835092708630670698456113165131795392119269881543342035026422816551235755443530945954529068850161711175433931958578423155362936662099463790065287979730256897419484062948110550402751011548024082435355815769970720501680716191666456437509147375201384024722191445300800849179149105294087029679123259276544116004984201716774775110321779548295977541242837312875461557677465072668357742924530012674677791605785572377942293925972580250016272378053281303762910312990936055653355846020319233812206223191111354725363909546951508009587360115711652338430585207287285632291023109020464637702429861191892941028485692878421833534101485755316212458590203617695007531019559420495892588402171316883605067060809412643114927758958953397086278293207704060318598653992480221838092054080351683495569829454621683596603634440180983192716294562389734545891865142373581502703716530356068936376900309288469401434313595384571234110022690305462331107647557301214360734382307599320657818247076178597596743206774749317694004027849458414796837827097370166685318004977555349842565687952237177692559271198112981503895947781924330924245485218523906654579314189595577148865602417787481198892950966047694235747945282202531364228779341067279772220534876484671076790172808584036912793170045367599050147742489170750183147490289850276464311702206706200934178051027183206218021329070900714041563204749116961340732713102912579210140451933183665166914194026871281133967618327705769561060294480269081663297587620749283713945779806669392938124622362251717413065616046040815322102214830508570505936689688867655507729597826893512134264456588010717840287596399407185546447333720060090204845885420931701641487899334368732231849040850080713997324731274266151994022362521782195134590701406033582416244091955325208382334144954080729876750643029411479302702890312381300160397228021745555606428752197450340306473450174024848170030822237539270593875715308781764868269080199386727806655213614884933472878487406259528139268142909243544848432622625394033738515959065366358658838060388001341646359337579886219948831175242454232600696533025870900752525539794500894691032148395562036897486322319326992947993379679162993325734366741509940116713456302249879395850551274097709525439708707782102601537374265601690653887463266223666274329295473956987608735263743273660804441858228695008430932852896352271377202179442101870599405864794211322309755841460201102905338134553220255295778463369347922532614306890195226047423800027359352681211934224472803077515725088621817221496633467126797907251872692163491748231359866441774797975833835436424380038817208015679170444109806715962004409750384639396000865779597572573900734188568301770556782164979242193812963409792127143852165063431128198440323903348056855126660576201546910853892363035104774876760707798673020982321965149492108067471099690583213931530854621025582077262774492009611318075574294988170135765778928005212799007324102577890122302862816429543792672183418067973232997958762747421149543872198712470634470693906446611702521972727049377594163571354125587668028341806414733383574752862524551679079209148856530126180056311600152391666184796176191675653519081961322905267626322912333278152897041957691672715787859268170313148982995919453772059628985650970504135197606309296013840025571116369437004374811832284797073603271552788531437761996250908322300191508979992569992073201298265303297762058385894221464833737292732620760309199743502878170952263497885928398712304388015618209103912709108463228552623782713855875528727430688824973835059316935826363008248994800958706220530923728112737252752837503362860010900797628119538216980878339167232671545158506021219663185993536530631898057273279177971229753042299481701465618412349760135212581855372679271673448693950593552964453115669748282874756398250579869834612463946681691180767288410769341734466311548797479848692090489717040082346369068568732267471955221782743032960211371868815500308132256495956904674268654566709508559804894184370741039550518989931129089115460316223577466465511328141690322847897021626964873873452229757536030585662855682051086686087921252635011690331180731425409444767194893949459893775797531518854447060265761622292188133761354594372547454172125605433465817376602509746146820398779197977741611104438970395317684442609892351262365836648112651014553758314421627994241484434242057800403072587666530730623459407649514784402615109140655336592280546799927789379380862410398523308026889548112067072081297267706809148641730981998488410240795010748155325003917950888969947236752233524570192700114249889667627701312295135996660546228143416161929737283208400156444119626047630491790914568459750645596116171745126967451309716628004007724129643378807437207582616377762917725002413726056967953092406306842060154931924944693086221295181413723413867164764091099212224333374442089895422544970572856579753806404922846658954555338948725580970335869153547244764128040910173763748710453500868814642834687121701595245796495041143075656941101556004548297999927585984318745977575389774342291580139951436148868545379882971982376601388120646555168305091324760433364321159018988018662823977988552480431764355002778320363305967545077638434372306268561839432350320678476975527262391860558847891185185230264940798221473823394041636926501682342703440060693528637795388812885199111142537849381385456761708843967169270919180303606847928776884452271309599991055355806303978296468972183394891799114587280500276189926361717494209944501962650567881339436331299499771826895504576312637096015009489322354868457131860389401217966261556574277284664170724151859754440151826714630753641624046663230132605316269313097957100517268545352873336422168932667447502452653243904167413985542207108539541490856780878033379635658653700422464894809183700183060242043581133941866635606436335525531186319241360829950981293565901049088837467657433925658764972191062016200037099187737711629507515781923746447551325754743127918618744444106982275973957529373299648910599083131997332995555405063312804370455235442207413577360681905006754473931880897132218254477914195889606159238471015936638913227614287988440197612671482114295235518148306871791001785064513977117048985256127214592667512932979809119641847030948327806341528969017049453316769223286985640632851257401385132072369302052445052822287669893276104018467147128537130591279317211810183636645463278216451594301912508092782521031639866717983425419063786817568580746307734249909979079532259620585587148985188527991623040358898880015356752996547047952822604218041669203901584744254031087990176539412395853316595906916881171539022167251332009602961600855589355213073669102777303994263250330002358986395393945290937893115266778901765346560987852266300775562282671361323365183227551082936675629608866202232495676853152829021462283082844095609468173811272254487060928309045937393066108123434481492411239427472298163276691797324559629422179547260110969404651952952273216389520352246661319062144350857640352443478820591135927979901718449685361609909252812137104435832264574563183253126278196131997170178678115820071857046377299235492043980541436377749501941593943153807765511708869048324201863573209213558408616973962103614156984194341529083273249200695950085491248371200299880072424767648936320092058176733720116170997698179931548507919139023113359764891230400001702124440131231954997458020417736993022865463406354348020012401261995172165348427361953610265121874580781198078592144226722583819258623706606069619321721221875127488758162681174367043279778238944636046613439490166070095731624199687994685392148444094564328413067699771257080481598213077251806457330385506893013170022974334118210149860601152020843095254060890744740414978249940482995173729940949943496879785921893839498754850086694714442426050364906721528268344269688909373907460076265249424613693110373982845016437515855574564073799592931215411336445094527838950366353027858942839869751649933587091206238813042794903961365737659146511512474807025220253875255170086126393506447395557536628953751908363653180891039957800664058714350338264819354500405672136231492661963279366497451515934826640574326172360863584618284677515086361839487632643736685527843498279483080639676637081021273248566742798723110762008865305281848135137571015699009045095482466089892942904185698140017632330206984928471859291652157257384295567324422921098290685018397795715071151879167112162267286507117319148036261103099853153051815676449157962968349742746068602894647212675707849240775752596513047328895030615148859622389551368868231242562836503252529916103135863891748107866674469283817783273781044552735951554969971277720845615272944249726288691684361865393172879398588646981830625221565117816719585301748263588151659418852057938198763542772993105347098003574138764974112009549519405944582892394710058481259340392773188487092243694102576061097468566265474293060330508478675839770558046406063612864766863151094201976201734038208703893761737928405926265395037583816609520595805215772199810061807276294130809086271689295003314890282086346825750621905467288240127278904488524274190733348079365817459533844820290007350459904713092718824226336443201432876798646648900380411102984750351635307191779665715037999153390359956315440644363049629461394926195705530802286712411813990241896516558683167001595300602008131367504286325715870430723357170925509205632975210122317127806694390641133923705357418595162183951120710760623737475945258392126885483924165960201434989876605079102416829398239227849823650089628368445517682016110983365900817808901218509856339751352890746161757130563705385512697418289370092223603064432887481174756004529745244949424820350803416639337001674165486248485530717753573366480837297346014367335596833283486041335109529880385318470217991415592414191896589016747788113725551565388789160359609507361652269211578480869136197465517258968087470000536169412218999506317935163412020894611996585973319696162329193817754559843455229750215369303009067940985764108800978220442531222586157250672400392492151795355536323113458821820867695295826612979652879230764347441920079052196629031874683771960102429734467071862389486728625759222225733774130172101697795937735257758346212739507701885196515543450178928484362335398707284673674109888839106574744127193502715121265236089815235818088951398512638206861919398197610038478170974845376181138218242541873928569469482828026444819632861125604054058322256549693543452363469536935992778379623288187169856702196898565742989360419495300226657217560119475473307876471888490556373725933261990314539093333296125777515487726016470665370422891602155575432219729750686245978749949750434325377426466505526125273146291359888102017822431645891039904438569735312341769885605209213572982798761679127700775431859663365277060793872138643481742388958915407165912338392261420629040855092050060252365059735380623338256383082997810362042572803895050599876235860867537041044966501814999969544396419997829195997629078579912516373086177065032469134645049306202700575747070785924206874835761235228162997625724652453956805224799952656035987736482254590562195640407266519572056281297111950229696421259580694253395438196572815914350166881341283705084597470258675059356358842545382830349990303394343202662324823896941742164253544871429982383108740456965267065704203016167232533694896255206721991525396833593923945388454983248703729225711398613257006431298976818962029211115715368276944534085803106851978393036107406342485183704471977882065708173257024962034580470180644240619978020160319446408673614895556942519826422864264857096787158552280777498118846906150790266899508496159877767327602574231184075530434999498292204768049859573273204247063767016046894292087211076549415566652150271383057782125974481786938820838646945904420445381811900474702325837724437419408779577960511652225498724794809005321745954319982393467228002537603607976862627965421555943363215853931003303506882254488664762415829279787988791301585494027823331405049332194515928895623062180976791143256613797670247396691550517344299356457771055509746838587099663776300800463337307990439738912527209577800990315594949641526650701078573809395677146615809608391517862488868002998767494528917016963055794580952433579128876741608835390612515434358166806111276345716701040981103024619716168596014535039202426580528636054602387509269070729378209383160941136761611723828395705933530318634040543746021476340859263473574197548897522257552734279226228333815448942975263803899720055508650483125400567437930401578327728674173838301475053851067435441245522253659268326480704480632119991058266899479892913435570101358196045971372200893506343282120951589123707208722677380749572228172422499422735782128782445635933238245633835523938861506677155149204691411953389843695573784168428584956356066226458774170485075715911916555804589717289293349950606924858453917651821521211148033801001252882632071107325652665625777825276688053961257333770671938823669061159355883614508742775281746308424596948501575326955524483238148759274124717769316412226551855299227229660368673367443993347198650056607068459918410631755762034990475470577375079956297129052544248717513970417484901669996763723693579305970944905633409342906586341718744496420508043446621539517515625136537954061668393023498435782311599091277272955509259999405305123353592549945967113552793301406554841445197802552166175143359317096172803033669812511117129574572704213491141738045728519827410478409446325169032128099876710536992771477376767876282364285996316735145721134753943133327054567656761952767709515619024144816494666632692750083916592043076331462649342646080241806897113186469557171335643304756576189697401638293020190844160141974765712119294968261132475069219007873290564561564123426699241701427383443133523485221113599848692416174996003916346233837087285977144035526917406514803692804616768806380739193257257857117378456284257898552943498934652648456368827672976905783149834390229021406429314834762227229158300473077835444875394181299956041403276251451613857797221666059448012292089148681804590013590709278517135178091411347422189060720526419488909127772089019675875957996996247258731844709506794730663997160668205113864807203896418393401593156860744059598403042334503290543242535512306351056705300994464494180732175408911637840611100430491242615169017859026401271173269862165658832384266871224426691334870151153992488238674261670906291641019083701014111376864635131015210579959589204139981115949188359317532924751467349370401881671181929303292283534053238265646883302042830359931488869709543249180178040537745722292074565333980923633733892159552844032042537701031194817512473533788054305967314897139076340946677109267942162665580688027761656718177324266678568880509502874914534716403328559337990411806669389414252353955178394954616931493964483853066516434580674548995925719942903673093696342053112278475325727077726159655451310349026758061891038817441715938787208905720301347829215854701538192101236987517512653044932336494886727430665434001605254396589496508398766458054497444111535417737124041935829110815112428345811442413520380379494931507422622275852820349456666535190061473035786089879621023305952248528394239975999534341084447311772030670715193558274363364141479653992359234209474773758290297619353976026621582813623512227795350528089141241225719327729096798016194935483375917102056275714115572899467193521022357787033149284471572562752075579796962474327693087887522670350688227188295798255568895831624408085967902168749220105956605190072651619940322040693405063382741813575755299506574126833822963090594528084533010510309286345192017922243643171555922584724848042834495192162572304689725867306200104250657719960991567670035515921469390459482165439486625361723997206147019358772443525109034655522529277806700534648568065834768567184570812163300580144274546382596003396617551105520802168134974733268042472873249366436343530038638280157901484257273945927924240286219598650190960967101698783577442871067952538020663478857097745114722361075114358166982576503809453469640635641189784860117362685186067992799027330200609038498029887835773432148626642646536969757018195616873250581116662741002378666585326145498696679554426382244693882547298162478082994107181826528243699515303150001218214044927972420949172895681113460416283165263830954594843871199615486073808127906181542120132805808556132166797316000051477426704867638996865030713310657903329695660360837571784530632687827044350184096027016288468773924292401915544648907449332175074967071672087243546317489425173681108482117785041570155709499159496219886003852348370493958058103190273345414786529558472922186926710521905136804591744156218151541270625876583070696015274896507460821317875156524169813811344532018729855335613536425286116209203898990717846500053876756015657340506470614356971092718788886882142890477360217481146598787897156580404302181415213405433496877984202170882765315919903330730282247151138543966672126704402878196463177584639463839169176587806681902924277114295741146055828541360988006720132525412587920481221810019976710848475530756984808797419009067200738225526854295446706396868850990645601716218184969313322426675867279963421024197312093263289833182955476749706485724492178314068674588675580191911489376393330290082357844748772093473426470113389755319662531379435635483308251540326667428317363711114168799219784164436684773280223383025268785794128545089730100323674473511305374675644751836250484507925768800289013202724052157784933756193654461122776061287744826704383049379416035265622050348295753371148121965414574985884346759419498677644358886629489675165338264137233893633722852688100201570721495985641364391733047334504400194922012157355161029179463919038552679465636098361316902110941405279115198512482966016744695754753082264179631454362690595505725955733056627795071762624551638182960562046924866188465169561032035436880883358566978950010830813574672252623259457206331985220403002018024227124414279915386847311295206422590749778959398536995158037653516772493239203611882192157283080080782112597019128453464706488797484847024659683805247292642725649196809550882673836978304052949102867196087958208381563041241083758391596358997193935041010172422810212676998614152960105097357518599107441084569588589464475216240597097540167022762230419122185076610112190846333463287544526592639001554311380509520174321138814106017582824176081248464339120145139342675499715679321203639136587046985862360950330501278859125427079242309184767821222586492833982085832577027037651852424257210146685423325008765166849878271179650259131338309852074136637810260217935991706095126595471275814284316444592423541032414174756219327432910966822432011751997168008141035014600171190263691399833875056838382134085178216560659019668146062120524626996227330182647917252642759141815910895928364821951757712964592227058419227367395823824368216728295725840914784499149788022173638880137542520337108976552467287023518416184532776379981956964873143890458810910752812515290833344030476162521510168640044676691477679452297088464283686602062178787075412764693820751498157938919269303012225000116072281972350622461525083440730344129251989602230309387155715631004486503017421400563738783913188999452057521412094284975550175770266007363581237329597975969492468781004774039416573122776071679229155909648996528258637132255135677403120175120813987258974530766142539923901450993153939256346616981245452891184364422608733699977726166095594631509174391079717566110671988504486930971489083186809555667976437569244660029332309994072916593291843021121375986263983926511886168406058984500602050394174203153013038246703983982738482057956083735184602756592960288062150136912841189581570914696715611617351920309248519167203582460858439386382347197798109498285211558936235731833687624740384976610600000021940409180637004687118438410263563102745761018293971164077395644959615295832954777406904176419317431896449157910030949520917243920362998217889443786717800217832169131799928452463952837247054601423340793044655069279141478798552146111376076212720660449028266857640331628231601418325223839648636995273006914019486883462521775457399169087537797553186110910955143506637472865030767177997542101917134780025994382037739980126770282480814797890612034121189120913175220249498561575704607584352687622378617259660565696709898937167767633758604762666083359769249990134987204131612899182059216716742472454279680680965934088117950742914099313199185122057510857026782190837376977643753720065340335586508389200921110100116175162855000198335979452875736167736564774747853958909693993870755308825803494821682957909775471715618560436322740607915682992079338559308363908217504881430987094205631988513571100351739141868584005515482830832712195528675362164371702390649585135392925564420679411876255643091568852727275910665648114794064547377903688770602602575339840113495229689441052210914441981544702868754468827759634521054314169656260605495335451074049300735362463518645457014952904420250012564819351267951718596904134017114826571004162504157501408680144260711561996424752606586226246855356650486622515161503453678245298095292480377764865311874296706512096032813317966876786528657992551914722804640635558004273911652579720224308206337448686266893878524904330264284061112366294430764048136528024185758644935629270284823322769353831605262700713645778427591804497404443579051889235069612432917401992714562880721591257942575178818419463103388535145520141080718242933456386189929698531564305594583598554331715462209249271103497111035888305903150735329617794621721881004033518455274892443935504613675218850472366930926587087484066425628098632533445006340037229479723159297688251682086516329660882429763893687227998377021305671534073424853385881106206630692986778350370817840819308221302543992659559572657255022744403858024610568932061356315413261295785658682993790768263473599592093246895910343643601084379696537880948015142951874690922991437521373108119586542187028389169331038608739252728999361561724750612483025800024991562545394173035492813466294957240632910533174972668201227005668238022916786726969261469343208467290523244682608447499764623255898093280325402638066047688312778542181276251253107554193876749969624999838168264381004386931614891888502254730257208686370325357234994031044500278099200589636473660022433555981212012735477845511291733607823663109409533031069384695723172467047771338047979342191472869464291691156417999403117098389046881038822426087905126633307766873682302339689196140058577457037294539442744423556866154233580591129977912942573786535140718230833240980282520406519576739508191852758085583004302747976621834577369449036540622025999203537700522132570460626540489933481022701764772545271947742495406665145522806062760343115322865116857467273852629253242539672048262353817922096433868600399994191032498076304784032645423910118702648146058151360270901416090112873807323544935981979975647496380954378638825175628917089377618838266025858853832830571065523081844295849849469387267399000578367855920905881727882009075772131478447259236777414909647146999983655453193982535703477218615199958982115866288634339383215755104525985477305431042923643466588874800236169391742258410031814296793721586469756328976088688125601277210984588313975305779422752952943284873536660654834491560145478985726761382198554337397469249827067705842813633503993813015523252840312687527147660160398250082731975447841733805667588763034859973359908817126060101716198627191194219974114228929326519393305585002396475894968023406590353846742168899861401300163748817255534321984213736298977779719122593796986241222692836767797022400042197982056544484646216051992302215962760361376820943732365520255741225316864084879242777507680201735737520891831248440881092894367899990290634697709177068497067618453057605384877024313537735617066380785306535686278230415942232266761848237361051984303723635599866354425949594467580033736735709625996179090898883605749512976507138436220635635382397927295080809553471109039242195517713220126049811365850154910627539899482134641080560070556239399472585210234340307151940354854547410679026154824767714545929269575811588899931120189525386887800773846070699502805870045017260548223569138258140959992173879733044805514506015706909308626870406855324417939221600683087428336141860585052316721877325465170656793177626484707361891678318045601142949438068382180528945399491534217948282814519052726765590277997124987195641063374187314537339524008252431094735366752526845656600396137011010914634145453926948984592588791148236212716914738574692133600360729831016189651852938797321021488600616636883839098999788573064420256152658588911489068059031111066865600319250736606632728791598539170150196980192002522594876047644136971761339720205534689097802038557746483479040788667512188832546288204469810376905890616725677752446444251167955479155992245078142502044180744995245068062267246087671229976769434100834146993100725687972281947070173838353531077177426459434204036914149258697404721216758450737311432921945645011530815053277463073511762874711219001273134469677590301869854376431423632911258110023228217385184135847570738554301239857033479043021683819938501969762172054298527800836830455462754157831851161816329159403780193211569530491737217161154214624063402241442465534757830888232891181009045452620600582876816819956122720213554292990310009433677836839575578062319802642047114009177732170949910031618572530775094175015339803655759033000220698297637088644174653647405910723817879595890250414245604146844815693043712819504658613860239717997623956097831923923772824278689459011472601526655790359308164959874969686791642289837664576034045661704467522251932118351566022426052312304002917674484628274341466930655783725096446198335545130425130220310387175050857392479427723070293670176579563669367435608075930922694482703402434448011881351279083843229115618490842617193077704857494767978816764122929145609155723085317648119136365710514272917670969925259522078557860475399211507532046294055280028632026704654537969744604501727193322102360372890319556689891728976287003770916339189725985191865683504799528340950096818396948327932738328640055857294765167268153595459881553775575089467735363525594536825217138348184680134717925306564656862874403894333081461490741916656634154651139101641970168733963094024649869761696237094495673823081250139802008930138075858316733536538909637713563022546716040936085333233938659869078567631799129242896243776384606409629962124989813202125955213033515889325895606745496340458817987455970127409861106940491159113351761176198572412454459215121545287650823186307099490725679255452005221348740011163974170219592635919925634637600672697535659181019104534400730422964712898949726967573291592272788366907791464222256291395651382414856377782495711093895269802866998955290815274005868247907101307761441073726620681948942771309722181514211985264051310803920852209078651686007041981310464865565818447468228111807297276291356646027552884451877823738449894973736943231846337586637721496229653859345679445569683886467907360652878478258627934294425007282518602430949056551791212957750252087882267238016625573942395231378520265650044567113277485178688623683654030178262398295817048219659986426513169139788228757744430720729217046385789459174887882911496872371873879341278129063311260488996846264355589999387403774596453600143636995650745949692160160324638605119516650473815478389426613000341801828879383584602248470014196239942307160640313853566306251513885740424973284724003481265242234989323800984711512808736880799422136317004534356842486384171573310872925323652192355878229582481590030190604625447571696244929168274255807971345344923299427287166773112344374697545399519561119797341198686879498485478421979228448179827583151852032106082770375588903511621221367508770415224365060825187272259757195839731060658455758521543800906548779097981705950605813905732589624513787125565994056350409198865122792382022116327358163157995119636538954040507296210984684895296643868857299615505248316633256050914535955855403025172073650262385210905384835923609370562131253714239526787017107675699525761407860784747315740763039420746986383936859384288007902756033317329400241732885592466570796808868834331588865511232922395830086132808858004122799265863875637601780585956739672853705351915344338620171891517743652484305304311720897017677417579535483603753603272242494281246485498487417361949178107081140585241904533190713235240522053750400781745505143969129131783565497877777804525121862832934113888023473297748861712387903453389080554860026501493276602433371444397855072379644225831802352615901552987013798234281349565507547393231230271659040861164701976601925343726673717483955466864291296511613940931543355090900200855666300558800278675992744403635742146307503307675329312658222796408447744392371003490926010639226295036895738504153847712177246423696603005702910862457383061675639574023459573596974205611859414585159492202230108513344927560895710211491258095856473640736278247692002084104165162402653988389724677601941046934956677141389963356319082837618999084055675651508238283414597306976738854177375657045241366365055599594134623344112732800342689094631842387378613753132014403375556014203444010697400005807547011910295669328806054404255648207010794791335742457701576340047193216380697163494974490021815507991385581040188619521859980703827570572078733268434727253496114368870436241982168122876557876194607365650512290741536445404088847711794610698613398849760191516139891864731534354981192203591833694744808396189726348210316089307334438425069043231851815538946795829597736299865150867857661770515416951201279473158683716360884335663735264349550827902960688701888747110441229981545208847142628113171644143837340866590796541694335104800737276836071858547513546354236592283705504284470086503590301404247695274822475591558785194036021057382474327913316824631442451792330991715963557692969935572033285415613905513596862604461403835856997255220292804536276377450883479844529262877094470960437340525635123764158795841638684362105189486736279190201068637811788377892498490599821137947064585365965498964819657498371185466501691872516397081666140788636855643156998597273385518008192837663160345230712439178322826006575610738236718020549687786155017302699226965945475312255984861074751650615525920438988007071803055275516165011889957746777829889184355022239804315942635962550722084272730428987399640371505437364734074887932380512757392468233132559959288349351525433735883741651768206384070833264548643321143949531340014318669280314887795589078399810442036429561463800797732213577330356810899206049516005841565206734635710975234094706748112724611502474037212870256316883310526068224205868293348465296535852824247076087758242891745031024252864271038769696177175528391683402698041982882426338133485517195237730976728276998867520477076799747454557164815576466625422937054153794961019200592435089585396192148815330989742842298811497464750645589360805147633893810276644974488132922891405377564773952009796268785236624081637646783343025752993647876808576376923273536451635616297186452949414757295669783958808236719474585125483343553658752809363470973395788998508419204956813302271939088002045517636793707683556241250689690619792607129694183949379896714150533110011047979437430021409535942635279298135775132006524989929405124267451176969912714240672702953568315195227475769043286192533580693442012227456961138651819932440665022218564948770640270934486042268894285273030161884910943519935065967515139632109521875290682258873939451217081325067992844298374552079029464749161323481046445154825816977838460535281277971392164155512335639844776975893300324434427825335030146218901251979523430890963745756148935514459718187080282404388826454128531964077520480116969104630379767475235734824066043385242509411777285760271069890184880974924823192519869609157814572905840441651732101308235872461879429605314766378203340320993414741748387048446456308485973476471148484666769543674039858534909566869098683915534009587430809958844416181805490474679239442549416702568237585000307777521223650932500747715842379496611445954796261733977191578735558445680325940433114767037363277627509283380471512348510689806552012859204950703486339871293826348924598677654304469241830059280004441519324919376452589011881202868457065974904693477566883155972621959525139078593725800438083122220072023481263332134443311037654157143419692302639361871689281587122968626510247650712830173518425387751552593146700852748252157943309671846605766688909267860892626073341031578196706989976662073678105823853568145773298955358095698502040460072987262798114565811120842055978370294102545060511231020038320092322479802342669696178683634022192078508575679519071742602345943075292840164011279225554686001158967844950052044041899134577169280571161983660101820024148076869654979108756050701404362388122858243662150817963614011141361423469593923123786030806478100556723349376740905107689116856201518409497148713741472880483153689781520971384090507005940531210845892113524170292952510968114413949332408373952828783126950608084746053790405940160627388819428742389735046678872655730146095431350871320270674994243086655381169254152991294905441854433834112125330063321751434754590521756131909702856086684130369826071919215692772488198613213224729731909895575473903171042290628962504014152485727663634148104165012378280642120247093222471537448738447479363835796075212682825111222136574393693009346880017081006426893563602666377151271380805017034720708231142235610952888016398463089895774784182234166285326196979051085675669101055282444122466016349118110276818370334869056918864488443289032219227543275665873246131315831374399629989005925012160974964554923900257267199605324214794638519205945285254353678520671524481371909293046294901023926945437615511737711337293075273828841782254523298982314140476229694414379874566865573078520366959888561226311040769617345421804643333744546133108321791422534063551906343196837350245165442548482100473286974690310872380198736230865535046336981735095089484086262553735125947563883827730264792861448406211427468439955830982631331264411638740726925027541519132263001925899950879385090486945412887973380286855267484992159155429776584477153274345973592303601509600079699406876808359121682528660502482712397376597058755857617959106242072514805418495385930635248963895834843096144853287737190113331524093809903984347694358938220015439379333798464147327551547077410314538523521678553191139965222890498826854310634925400155881898398228609193322557499047235633889203531740150395346471870723578607095172274226371117571838977068475799867913758550464032741799912460826390713742177790742595635113734835236425609856252827373318013420307492012694739481876308977360602518398991106638884944149640234559449047838181736920472818777539279059389606685742597393472539521395344113606162581741240781708699948722539507646648498905551168994781931918668041047447934142902733743600148597396608085043811531731343680705967424295267526767941863370613335567314298682886893283201565543976220440203746383717224358108762754119172203087978760548750559803659490747700253700010255712157256380175091968867475442511786351130266928478557564294237070111240702369685945200704603312792538566573030476048628925221909243104786120144697230289082002216012493909828805741978603672877933492104601373959013275462127132509829910581827683950799592345433268201550033119967149345213498948100573431579780970857028797165011319645476042391979825794327474628043922132345145468093638601960255033524954571703094898394012904045413989083005467974590057994077777986976458923252121589429070490010934547435764960727827149524410364734722723231933090280211041595703006098373629607480356143313605600156163012848352807114670188736447607721512760938968294738359578325750965340706914484806218191633960480813158151105226631517427206017428398841270893253507737104146879587995083493088240977803533317951396008731387299241660404552354017484115290917320321924473877198542068491399584880207196107515505777652928223081005013295177707811240667710434929487084439017991789666583092284940373739251503461000991349147520047242119329678337845567043309407876372460315669841361398730502974093708359202363568522359996724288349364600219005979098231584550710335251865220514951020840761653216713353504829389290465565768549628745943849641942313564755187920955703505260611740092342547410590523133817172015039302528225579557324992499935587605090092355323028162118378657203544134036295757024221796727817472142303064530292842411183966995497454802174503215091590407162684157632026974901947086225330803433947455003870044046202803684678111449037125500461530469457418797611660348349015315729318756000122133094215348352298756488195062031049405784139494591955418713212803926322754028664716078219704166191391596451777432873747465618392525631780412194227401166684949443622927200856314551271832362036032263119143353112111257774274595423059757445751628081394712937199760562920799844244602274964175041543265731011382917638553522487740241474812487623652728155096073342759873622800868303942864652433250340008787710864067894368864159066220610804745991039203571617610366993492683638797716046606230425864430906153620466330108120744005466958837779532398541644806039354609105025537047032670858921246554126723148257897078396242245009431787744489120109859966216341933666938026574778883520388600748742329433376126101001744777548084141627581214378883522955415583686291066037823135886926274967343784742019378951779962633858764083123739906844083432910928809863780680973502839925168852079237874794354869010405236916582387886537811095302833415465114845543848400940580525193693219711334557296879793241189594009448936102157473284811178283280012539505769251447181691763593157422720713465606848207191564414353953455263671675684584802539976485066279343770984402694980741906877740886445575554432128823664500841179003700403856586674176059334114582556334940584240801718763093659038193865568951409575827196591585941675076334723678347616268752691806167863895678181231592167818287115169114736672205902539523941499317032561166738945213664250543123891384859981171928066983628830730691522115386568086802014708439149188032205380325099361475307428032140550345721858567380408676213689601938452021731514487672460119998886846191327026591362582546470638084116701109086338556707354123442661562996514562030540746052642144209685361218455491322744738295989969233937266773320637418914773833267267525959442280208308177515623697234879265481023952232831893960114640784466993916243404345951513565290525540891739648840166398880057627002994999539958420239935417768232291513400648837170534128715072414378190200220212697339899991709211385513767962356848967928770180451909293649333844038921239535081933098475124817600885912415402231422959204527569606653820153782364049310151732751670204907588721375982629848976405316412105251491330840823002640748306075275395136048929714358835598222974118772927691383615725076707480567305050997469259585464818249841217727281556210667404267807719520699415607279935376310649457533381873588207788695796362223970805699504798738636957792246668523078027886726996274647678308809321447303646545152441989410590186280292746345063367818823199843057196408458986571441773116960644411861282760707466029763919527303193309276618457392328302264581563069745693943551067693598655182577813618260617495392947755181364325712157263129728937054407453318491746397356183852655361532026795030881577365124580951540251208412009916329135000304217736165624567908561017148326173200314736847073237634611061803890193527377553359318315442859145656231386340056317689561934448975390675341187891241533324062816549214874480569259039080170170451843894162661513322438036767976094665501998117505514125965069878779091324905252678267135868572682460163366132353198409155201030687977018675183971739459956183628738627565657061230928490598316988223615638168204310232877473211696212847119721899877062696665688355639767974797390089595499910801590434012035859515231692024063869528853811594313878502186719516171142342857741630682512541690570741631528242235942869485042047816811784853575772982322746188661243326659582690923596950225817542654037754202037033391007348274721164577448711128451150141848631784306133570792427761816835663205312786221707584349099410140426929988801091390546035447121098425213160565195633686969294015007513286550295194240432375978406224399370120644098657096555606863933925139626933964966617332026222543969621572234408932953335933028869971022957745149174783148129522226642091613696680347123934726730194566583255901946368892185556244643170391377238996451361093492174638965968919736680454034007275275056206795993244430926650434172712286780285380066245726173685080323514804993502450418866588269463048311738031842118556898263113334062352912255702223465198414839966796027635566675411602804157740545420575468275244095045027824571201970686509027057780659137930461401565273466902548809646818864289726405481563396479089368611325539109900047814258665098817351667984173789576342453888429748378301646452730669898037871768557221774296027108074783743331957301046522263271573391458242407078734073274333066640295806406268089943834968905024966103880744556671355780743221378424706655210524994064638609379839616211090490856655895504907550826811475414158519216483116970240535369475075888089468646521298327177139839602797601786414357741565506824661973740266995676128565337800658566578392401328004429789882307619393978656117925648954816159041305436132095853916451234009863376374362513749973140534304202391658529319207550543566476584045590088069289474141311131929856830052857936536785104529681900770670395142606790901676824924984173068648054134550892132355414378274588266973291398974260403408810595847375694190376599077506401377540293233756283979522877330590195771592660921452040047621802600845110478988944091680744155952030455343927205031351681564593230732271354364298929177840294048625931554388695840789677389023263946000634530503005114614940469529767621847332750766737807853963172523881854240679184060206013665330076590362017994496143139952337382189852270377437138262719851377445720863699540007296159854487273834234145635033118617463030297373374459071468255096347407868330083051120627622350381375851535814257676577765213237779273301792984495334056481764542977170300025048019256870209443804585693452450312932820528498168191494190942465408911770894570743226982741215262922822027658811081219021469276106421643245747601095448352864988166245958172035545460414620408582370322224584289259160576483333727579873278481870924665472916274295401470458268171175695330975022975079547425968379509379317662189277745568428738558122870013788993330464142137240287507058480980099827150374768872370202610214854121609020769528467058190963178608397931647388662425238036386560439020399488793817419784020548144278894887057080274111668274281118508338253364926000549886786615326392909882529248933996459829007259121649290488377121403815828515327935618467631590615190588770353297780908804195462050435143009292742067476297380041366099694896561062254363331292640429207926510340357345404662351699872616028730140184461769993761059170671219450581066522648415568467036585394976992528898169117097188557394740767803045650663140463828379715474848154478810718983122263143532677951174380323585001855845979818010477153206484554326247891690234368207961916406232710227206606449233966715033165707137964431169105574562130498300828631511749996743651557401684676490037340038012092224097967746426388755067177786008456501225195690083998754110142488499020492023432280144476894274517119376343224465371410028319007234363371360278206392326336055798775151530737211265006943550900239193438089301837934497484520088588201927411229570421774905286153935928135454153251692236511248303939843152081408761423520072562109874528557344508022008412024963726718207523111342761875413635906949322776126207308134715865846015909105835456504071909606259594253144328925559374534625213648853972967683059186838963262292607926013891379346040183115765120811659977271103355383172117166127721969387665573215096610016534516247062845576991296644465051399628863126421560248552215432456077847037722638648773663787823348667850561974333559917861718797125955866976115110197220386333253860771294070216555381768823120002323033996271168422432675070746169022762738877444160649484577679927764457252179306369878791649252036205892939149176532874728327001606876123405906855445827215020131776287553734941742965059412641204680513226172839928777597098141222034415056761361716844671626838058875841480045058033371470771286293285747979970161570688016352240955905290247944980185332046411220602303524466167518985224465738727800814630858075316048071652337518197108423134840319838581772344878248732215413155793647814350844818242885272956687418400833082023022854676902975158779218748722398853405391936134448650850943959444048827724421827238578866718348344704670909680269324776325443619408898157479506740573286122532961065712564032765366692852839494935616779592344320801695884961204101636145499980368400779926206984316247806708974550672759077543617780063090757695778738775653280894412963031560995568592875943431596143390055636727525554187840290506831259648541321226350376658999068039882587629307816494154318448920953204657672318467695212655243558760122095415849705191008417918661822030035046290111013645994304317254252807454651397848748258916638982143118996089092466992668882001987157366867561386543742262879594223398790655635430316453397614230954149259564582084950598014007984578699066875179078755908999181274826379587771257717976648492091831159457557324830020630491935733437899068388956112926290442176634277085586141237798492920404046120052815436901121176406411264683823931861963363850779967506678821796393166519614096115621513622788734766455000054390516540446945872988796166682708043254858077681208414653846817889325628050463602269436674988559850137304650259290021128859551723622793188249418501667689929925352230654996110083981301761540781183851841383391745821067620186383748024248310499116984447801507724680584496263737245003183481466226004583592143048194071567924621737776242213609593291693671536351052309623260395264754252496061694014962258077606431946341319753246452277193886836136627888342184341049113207264844311039649685015904461065085174118879171777930991279611596561565976585705126188089864982635389052102625227579008786566676380468221969479422087424111038129885998554740131786211908456348960864616497295338526567367250243646129559387512081478798962013412668048665307514083310175904694725144962562880227661826195837853470645279159994742008274366525046257685789501166342473720704991765213697254458816850265565087105549156988855086127053646117602809126918371769747791340349982273870153588542860141505349935564392725064440305661336229561947640076524354676740113290918827107998218992522406128290337659186302638161863550554709954650805952038255616741960012918450116049958722764075575374956887288123520089682780479181382204267899938370547775716490129744964512921598257789713989161588560261698527768512365098785910813141432841518508264890145707877908869573917170711890984633777200654269638602875356007985641253258033560423211286149757229389676923685006378599578464628897172510625350571829374572491263414330749922263845917914742421605974816634215825709609217759151933513395458848785867932435934512659153776371773582683867392024613133367876871614064518674194025217609662275128101512649033384723764831979799734986965144852488841667202956493956820341256695242645977567438420048199411579470706079333732910987760416423852035768096719523411817451466841124920133226032309114560427450317674146285705899565032668467656614433558752253033002299111793317913627726223238433980827688318157305435577744091375909959212238462277576124251164771219224577842155856584371970862122403529694508104071344343255173674949695763505181619325366718275035799789130002971832790857472463337999986342997482278388275996767870605727519608207468834402279666163400380521191889013197801120846873424155971519144639869651665957754784346697914024401411371811306738563843983365034281455860251699369056390326471370854829872455087445932932097405099565066384358540828689771701556318342544530683404725152533763082998361399734327156232089020771185528333690378080993848063744457678452876086339676386342564473920139276664418811321958595421506857734367466194766236711999828767612414662297436237634711571852830646193088450990205921403779576687432233228612109459747916008905870960476792767796936078097841905120435910001684217172917100739612279109714088592271098504681861254487743841366868002877623224428655332222562393425308885756737749701654116544256550763185901625650644714137301903011983777676079134912827498465116715385399633897564488802134347850873301159247307330115761699319426495450002996863380697482471401483896463004988713490131879417674009951466684153035645229737510373774576103258795193893374958193648258245485795979676622866003552429896008419856422637378464469577363650460675242593855096077759127049483636504756649447566625022112612335401434667487525122752253667059516574684247981657087992196650768110855804032341810020663788985656427065456003987853963687438432331824141623499075743143781394414628253412218296840360680192865963239642527913141377937956767144751870713777474235408717238921904973844424821780638818673393488457219637541546373925443415073362797093789046342302096474035352218060231603023987259297902424758379478857523711071205533065170675584176693637530798514225854563093168583345473428820778909887872484266500733372467314107415267546970750919431902977452271731589132420193978903504582332744320603863993490740158970511690214091915012840797319392331803356549266616506314327385256539966678996619505607280033604404151378261412126561981252838901491688737813735470744919483335162707002587226582034513074477706849225924049989225625143979207334433119258845555448480670837569598679591776006669122243972906788136576361078076412876958103228783721545899187742959192485480141837890105033375527379005700057933304800197948206189688185207974551076756223100853855237687413841242640247444211846170004812013543756105707684962146573745576022925203835050300775246578090388745072987631952391579516985391031552493216110390641628539018316268981255234119483492497680430250159189748576360203936645784927034507959046282599594652509786692240782151125806549046601430107254954395578458499663470062959879151932938672288516639957563302068195217701829540636577067740465333293998815977107934327073840943619398490207954100238355622378377884903913143811125499824327762069968951503932327579927772819417388259536414702108808130541478725280126394565727604082680438505235243731220525899929636183183990991483648673796769182682329805784403591727819474532121513036044835133235795259046643991335781593325321318986598233990789853471207217957199652870262152326078090562506917429198373671147013406802507552260386590543138638781033104425163587380490716810774038569113428088708645095682923852173792030945397203722392814569390819571371031772866956418208940220381528169370560170679580414615795693236201882071596605177530576512814978262434100356082875012659626066095056111106931665016767540458975748975090851934335968920922506168092341585732239313904468986585425962831035019263742913316096554493371361778483186577953381802878485207050374734982307034656723761545537930339846338217499123462830720688103358506104304482039243097419896621527663234208572356595600258361227268196578849181893747960765768744650949649551030377553923646102377523584399968759528136010996187981268603818236601190732978970182584252020840396422653524332028128110078104145773964492372488666435673862079887426342322299112711534913275211433754438224633394908874925267057909396552343896027416803705594593228606976388405851216986746587149698792628482373687283901426431846351181400966776536539272581265841020744835723023068826912378299392517061488389883406401015903044348092869668551947257038596009179155642704063664952508259766174232588066295120083269834185964347775186368874114633775889286734717415939951921644014530746552240835819172156106429203172847043098786326244602402223309298077544068085943070021704874094033783829540887418044466770274670968820181372684779579526034925446831355458230005239298467793630161902763635693531043695052473550617746337490891259456463268837120516440792829814684980413921407294846831903774214170993486191074888332920135959611796924918210003020195883584228443855436670038794922321019123744725195716490278882240617282085724168164149252458050143956876179250297571124702568442552035453598435603030283754158286795287523373993725767882266390138355024565352010491163278325284326181450365863317817013104452846985277968579473627723328672382871758446594358158967235760428844061651110862445244887414263885669919562776973775950215585703332770050003225444044366137475862123931218021810581279753621366043726605520040268288908556645550165906649877950139987157176444703610553822649192140709490936187313391117851522623067979340437129149318105464612878764550911906267223288736196984252587227406070356276930694175499750403264467291493486007902451082554578926301907123016806094798457815757452492423628719418074169603493476208729433722960092762149959089707783363564828334458897041488247083075496139565616022088439390393293081938953020410786285625320396501413079258789979274234804679697989042884943841313001799906030353142231248429641816100266951054355515206915150988148221744437620528988552603803039161305836163147230819565773278140844661386683343969784466829980333850103255796393288347067748280763112537546941937062775586509827380035951738762677715196884322545845575901787598589451559689020798932419923429811741416719633169048737146150843160299150829843945907681333733989894123497181474375153335346456564571051484112073105615181223079712973862103439001330775846081437199730713112727467819732806194020880066616994337865476387931839311369489327823665511585044476768801832975252741406813416465468866742966595537127328462376628365879394048361393062742001058170831059276354479096809522605101624436704818495843910597338854444503551514304347907262281932326901857697016686150501183146776636989683362518095391509348782067313629435960702413154740911603777770285791989055617017129964098914790049773258524845980701555479449755840877179454966494431916718585992164007623480062178684013714537261105394785004310177139587468648602779182280860850910479214505708611717392458845553617085788475634509502396145832227661313455308915059309186423179095771625392876651360731903438221842049377300054328447338623837170445759527843639469694031120499420078703611517230693600469650121497791534104949206505017971290407353387011979694966626798714678237108427976349035788031853040506297741160377313207062736961165371860412792780994550849568849638068308992121225918338802488247907911437510503058704126441227489676697214087763962337154418163391077090182605750217872634942249771867299066203110380269309799801313416407656050890094489690115884124863610772064158591608364351507073536855940566859336103651328385917208843009852944243784465828783847196818204879087498605365380408981107582193101788371913260324856588694835163357234652576671278957864201935858028062956508813402708463121352733607743629039643292499651443248055729201305173032600933197291661206493430143685156308359093987457304834346305253428953377436616127020119654049338218812196484870663408949075781705509068934858730881508361492057122734563297146142689514861366043611589600195821225529985130675870094044735443951910347661047955654606428663345320890637567343037136100136327978890397320378919867297937431553216036761130065967425819136263965348884864458022056544891155570775594389590358971545398473074371749457277195977598943868003461252291226862931138197750878642818123189104448125904144035795408625172461420630612278389703895307954147912035284744321809164601321200962023426613774399761870888523112825833369247196122980789409859826696301303956813927183397539104765513562667752541228629768305211399764614382882398541629050274580993747806990218098052713284799137007878028331513119296074987052214965425417158641941488647975568399592130525641716313567159598954541416331472896881545200837176521084455369103701329447164818099191097330051235584017144562982827834787469062486094905896626635790439943536256072279403011285472006148935327652044024562437118555471722823510702825778580454589093998807246580119894254504447470854994425935311764033298111579330939416147964294792901469608449600424681057884120881145973576387652557556629886201161993281634615453436256082678623309002486049181194386526008434770586936861432807236450803055750900833086753017886670860010345122425847959504427039820454067491236261326211553363220167021236671388077774169153713532329167607974369608435823644051531431171041152085310385017019246054951606170265807257114938010979199219692114326267213998044973656120528549557377539469009913908198282116580499497715302155230797147113285596353934796706231010883903092795185499474417833958728870338805847982585983098781272443859208428633483771156655751068282428096575267098956223881627536994164661203266336075971350373433645689198149990498669012353768456795123006849875716125538021103184105988106772473380200604864834357929440689798822476593295364277578373448433056374285043444258164416880265963367992840863314905461545197855129177320708766180592242926993108169802336847363464490918017588307868320477102448851806763378652526308627367163512691351752229483983281276481736117311071835874565206187040113911015854686717570814251296651030290695655258357530957539105916201333036406799566398696011567262041974167624787975179959988896137343914001641948049529699119729790970900822146395207828493119102462031024112034750992299181286537120389182896592251765193650746829430366081559022132870685858373302073470105104450399017478000369404954235345239142252151490600697392491528353612058380540221860420599806750111858425517425580891573349830742255313373055242941135055593870028259817818272712378502075688264990846032388847437658018551896353008639032796794205279079959235078828667936938964577461893311362318781227479644503696976024919951739246575336644342885510749118448879791209564917614782735387772792300936450749696143666824304329400369905717848104910755278596216121140148264762958172427320367886638033048224847357875308432212632014640751498349807170749029906955354425803223523096402320039596087741277029882834723348818964175627078449541383392480499894462576910968040354948859391767113831032849555954512091845491495403557673270421016936011659651714765532422456460303951727111261917035997608568913584871580552676532606702538826138208906410009491108625445193772457498344171370757013694469922202334980428201029208256964577153398226656522676885109881385155493524926385113230112298898330324103218544708185148180691529285269178382109079424337824150968986576454078591347108315065811999739346774016604039368599583357784225548688863096238675657393020308383296107236520666621878238864210589752750934858281667262184109290986036976518075846751279900565534611620433478903658218553446423195508649233126684389533682660574448523879492323768152328967850460190832748554522298201978057692479704305522391881454136464204278627002137517747426741218362845378728376964430255433989025121835933064140692488117005849683539992816214111583465595169304900736491807590745628321830449110134890192084452637968409616886844324485280545938824530968174823117624156772551993288164153955148874927175163218966444355981907395238708357595011806815613848172368530165769080340180695354202089651632942973028898948295830213395814787908500246011561934462507736320297995901995549181573144072586655712485089635227164826480135244581016359787292107718237232774567314627675761986492315362560342960615782751021828900928085887845493124727900567410765175773222230112251650324462048972005270790172333751346863508547252808364852014704554074481953690228231342099068036312778254932341558280941167588122556118237592278830787464973853136663286778694916586528099838589492987517047926436372202134283753126242126381027976686697436617659800671801501872216539498784436997969707199284874054319582624984342073773527371368445992260359677722046865526393653061982260462693240447792490953942341750922923023926351423070954282591987614255890656494224959439485202259508607765095553481952862806505192953506511724158652834209175437988620853269710743281416427066765802296705177000549497855389729471375972922458144054221583939315289359561883077853886871415079545532425718714064167019704046996142764311794596200133955472796950803212049020248416944897248125157358580987609164344213046460853871312160429940230736026437739610119264866456310991841248793163295459160569319944199415695651910300197279665687433075023905849290567177304976761590226340899719029903255704633941354052216421448018809036764670994182798966709438936377832312228805844684216999179092489217549493578706493022927223274409123706904805737011556476863350134667058765932222614724014119122729704391008287062744239279324573280200743029836925259432074921822166045523752819370931491915762472606107305214032880029675002100209258344141487746551091355867528422475914202088135283948216454980107263955710694904417838125350576234142830142229552096900109290598292845950718947537561581969922620152357292006309961879218380843631295309190594088900123015045909446842668820662387412625747288644782882463585671702624898890875025879486961054427121091833818806165339644578272161078607155922058288959687680682566103850656556667812392976588862183080847942879180001237262059535271937781631570532872797866705076970968729078587453813814787029191211410579022967765277213468403211799559552963164664526340069972785547469631113621343117549557924170675588607537905214513641824650296721054996413969755013032642804088169520633718034957061011276678092662303458471966182241591225165701857159255279232943147639966766299718707760917885126323735553378602358399831382857868189871762196729156019102182946333319298381680108263092318040815669881831471839159082153895043624640079207518706907277411117299657575968208029062646862137104395523905917671645066367119614214139592213607028140389404657112149667820821352367171381018550685486511148523457091873275372763656462023216232717501476783954455410520552979966799006463563546383159439025949820950962505940390286066933373463008610610329813460075483455884877722534753705335829057090840415507498767498103222015959986816086604149655848772057714421321785136605735705143652958499684130105537588124897454928798381049116330921970310003614477226258264156763436896468748088333784702251710967044513098870384981933315611730805764218719446811592875940143010609103939172209535370335654885909870008790608321524787839697794073541254301597454706222709895465170949759303566696172640295548917231824170028056017218035255333593197447075293361560789538523239727451359307630816155233251165000502324054995177242373158774355613986271474378562940117653398730943864862418756472974112223122274184828056066524201971744153451233388939462479668189523324687220654161462704982525516236775513034188945395395520939060494703130855467879087634874391102471299367187317852496929045113692195120130641311636045582724438793473408088658849856004975938783685873647079898055589244480034014806805519127018429340811733993378815105716083639542937039435470044067247374001340328800754678493573318715020751513738799265168327703969576063016352001591018772558172390565637641462950637504305957762828784788941309179000471788970721704818089948326773824730456184271267062935754090375526261817542328447905587844001048375880012078640870250957444247054932083809167445174195294257924883170969683724107299959114578391989160154354492298368850066343866655127236259517416700998448736549849648905490131016881664485244668578675187100422174007430538563008286856108663072224846020095464528464702244977737930102510089018213460052001123277270178543717245724710896404025703315765455056036025500698533946521596234497708014291278708141581911518720653332550914611649015551849667842716572659373839224545151838754539868713198105384512831912361411578330682376572405359831440103491419605000642242486847635621844120997161890165113470601610271241391617406844988133128621680327809686496789694256287199682137418175681796805397908382632293099084199687906634754646601205545963454971794463559929117450075091662274228229490157319522503813084996329382621736004955617448221507426294424161687647016484605502948334510114692170977165814890801083204641192534565776796063167799640730742139327653677312531523029399380683479081124746141834379002845115846499919170144275291551523423150746076566144089115730959216724929278703118321194953809878225190493590476302797016234737212231069945734844418086286634878977123944339015820623383265763898295960163344357805922724114769913289492672192876285142796796784253321864157124231375871644370728935077838525117872800918629746663474868871067632380275157152190551777885048785865429927811230980369079859253190001865284016507350801232520270414130996050408208088663936429419011602143047728345836670997586796416050822408672481795442487085690210254590615352848577246393099559872563108100327234781894778608472570153301110988116372495084609602337240139356304336106772130058860733272460883750859776929700093883161781529763310916057734910005734300827250276439916448459993925404284339735703419109108237492166691887543816373137791293357175296883501854375296232405645533378417711123138792584317887460242764559324134370713583909166048138812227396934163251857347590629956729870203211333124141086573089739710577843579743997351438463021838110353024902590704433619389131055497448669837105580955434754038415980939026069535294710911904156787824723204878349823166058976988642673230941267266297078668823552696004391746592611813927942818982143146011985533722761910455950967917778515501959663722637557178971761275035688078662086709270104001732507316156407696349944802675831291747367202148751379281526871440584711931069770524463238239324872191831682607522010339468900373678090792046121926787921962330310964540512657072304493844024291474163398530222980152056161863342097733119710390077957821124528655505731377950764912200675391330913522694825650700954200967026694354317246023119613370054315088215822580267453700918984867092970794546474604595458848734562053251411925989277526272254150436843473244498162998863002980781561625836626547482281282290984680848184419047173526719916879552720996435404421162852897829431028376652004440833118903358146972684144707708989890549372584056179309997903410316731902263860207109310105451910345164758393071220339426815764256724141941561514083811359270222592511520736623729070087162898901172191911037667822754952707219706584196978405138010352767799100309019751029147690741379611456372949777171740319066675198512103275721934650272525647546344787691313263660468778781234957594630146322305088954617429968420337969618550855028804841635499226378818497856668374645204106747116303298215913779450495460317985031389899365307696343759570646945582476143211269147157107040265339131350762920945729393797970746048404055511011207514880957589721835445720187723094747182050516735463379918084376786365503477597996496437197180283215129334280272729782851541941884990292668882650526352446440855611733980267756459335550977484688045996429779118228090745366413813938162312565873154160530523705542369020073113485181116364352032604916899232750119646958144988510399345809529559003293417396922445041577178382383412249311050425830183129055051831425675872006873151209170609560893870472574832894910940183310854842600096405127886469293134868050597330036650105534088466302356816281237909452411003362537058166634884145791083450114599164829997809254632932575568504269154167722736316968347024577585495150956754673394501170049616584707534123445291659600318427356586532030019337817618823721794108285380557089604742268893645216719270880891669915086850390959468439567453222362994928963033152323940534395766266143091172077537821288121954198943839124238693577898585747025826824223230294700205348319041985805198994129517440997962602609264189863309195859875982481265642849793300724101573524551218877083249654939503759647710864100538547206357602678342887303995375813143379413501375759113307435450151543809327883223200983356015338305306020880464218413412436548782566918806242786232946081231017372686660549629698486959877461957620317873934500190308357632392720834564026662416940524475867459988274448104909962566884272908874557901570240993167046815709403029402969339836977259683514799412656375437650435128828060974388594747915996006208368604461821681619292918193646283269165622404861557056867472627382156447188080183439461399339983848313619186438159602623059338566589698360104991814118916759779432843843511969017774232772266830943277152563780418091911228801109772019995283874084979132007319712978395075580918125938444960101719801595900921823813241779106396395873068155379878272625665413640832646881503468436675427856425855716949719074649714971411435659092796796941245855522256994087755532989585031249730496102433284357156672989210402774283476272467917988453766287439894800469039767407487944606659018512025925747534558888785312695974471392336213781724162228833485522488820850718060012032042013840167021277988171793559158061848678327937626770283215954737157670049890667547086842467010157502070153814293199764878380758469430804198903732421273750705496844057417975238319899181527948753767167108148809826516892304158927849900287278750903166709106249391705317030453578236673891609785947275820984793421187107980048858099420168533418252427641490956739638277771642955284989434173630806391496415648485988571369187821664895598953394885894231761787137651237433152541372205894124613169036894560368120806649184899836728066501685084248699907631601642728938521946448360150392779150392515992525922080540385053023992695397485959854102739428916390593134482965675542698120901865647388624487502175736077786103410751215237670536426345004474927225544734382706686471598384919588361713920182548852075441360986910733130143960229924317768238761147520176431959686990583406137351791446411671474653212917631681534129215291013602017884135875872017267373463896077570573671086240289420625303731283874519350642758943056388874543589843535449682434435591831659588878491068038372336886946992375793533633345958715654697032984925652801004071536814849871967585633287903077123159444480446337489382422099516303285935231187102800428878686751735903894196020975222179556742530736852074932853336648328482352748388478207644427545988280248265411011136605740743644444250483196016825560100608134253629280367389502366299735651379441721177970298711670589091371102204817200164207833057481359545652823168328290777865279398674494277491603278588074822360696934852246134042090316849215239227596500679125320992182153632628499981809805732655963804189503838144597060804089796315856867318208458751441700722198017202728873064097930798320414635110796108899229057973954139980943275845467726302233262417489598452861324505145943225988213325362533451451145019966974097150363364750001122653448794630235301727528325753258115130291999872411843178276718160545513388927420836990793830089569172222501733966920495739023771327494610272926590080568381039502283998632544143290301339132706752579482311727416120171751226518854650110696579451031932239050346933033475376548659502290848123523323503759127400936769265583228556092287801502951566370935730516058114373406494430760472579317209773337461334936215419508072711065445281470132085853962082318405283160109654861548947534863923173984308921054860494171716837236850559466634367561382456304237094183530012793109288061288833882806074986765124250231146591486778995032068858159779608392285460245429434107375159211605069809736123840958271225352555232313112653411221498719413375342463686242569064143797301977511592045301783494263505878486418652153624396484012034614076072847976843074456822228748961468186768929091114250055246126625544874005517872707669327796906920380113226734169797082544380723226368699012340772275892696493828241032992818540301754924659804903113306896057412299072671689280075749983570185588697993234605576290054638910365068146077735150795690014010223867000622466404938899312763185636268433967408852507456605622986459909669881851632583284415744835365638009092354850936910287132152664467313115847844549663860363246406588740450507070314092517893257519825729939520059480486302669091820443777936079630127775213882306628986906371469023385143236147118153011523216330586365029798833192886638036070688154072244453873544540230005069479945863538584035187752404460901848219716784689600849166449053327042085063987619672686803369598705589105557070865579268646891959965241244498600379783111285772603058094789513404494090492730130413765928978463109494220234191100755628004144999406779500684507117935784870021183945004027694512332393227767225923816073754244135763668017505185111117727741353248483376759810110266126077868748111253823200537530643624328086179198343424787812089409968025501539567980765068089821010625708087745434672858871024696559165053192784189642787966290704787019928732194807911797654082262105864837104679173329358287488392257570626798201577876758208605751384455791611549470202639212987663879534228695294193259352581840516402620371195867384316527786079607936786556657793654046188746121875690846333222775014961601432360911100275243473779356960266101408057350344838594849506130552878664512935209977953525766037392688734582064877093996546683915003383783022821167656226649554920415281989498192960849666758540374840658846216278277762176323839388029899581840025814697876840008918809956530836456379452231933004683469856617359231898570213726251802663515891922675260729295299501216046152196402048331475765098701708150414567231552020566334205159706361962519012744383952293152347614553416282475325134694654370598919493090276771217900887330653241164663294185274721352959327642098657034731209149209519919612117182719155422944859733317563606211955259486506720719417075423343952401625161718151228107396569479307741704409123295304159610879584102410503439952205947295687468708086656068629349811721785884685047721273950529896005750733868142956993446635198582273992697105426679389648693079761152462084166648381150610538511309366871491065491216675765293208571001821638105941383638891989531328075391418296922752385265202481069867153186908707851002068190497454640734771698001693746209104265701482377377982063031504676369713663854442096430645456405048705481460275605560618494263729044267733394424559150936652434931170227213499478673368502790247649392702899167871223000581611870518729370898190551708595112709129282555236543323453979461044758694534084136684257417799198581663744936844994592330815654367827066138265687974485456381232415994292640671344175119730817033159471392928186827686852348084926010849830704087101402534785829657901861258554477178639351150134973123125238588327687909391246100505287733221300742169080415504626124936152428061223547401298315819705610822991380483544920278798173264551209419464306155914983376828229570230987389048527154617615662050573975463206476016909614753017640436108970890436443760947548622727661355418944476629522473220630697222513383004242413301794691819666398000887007983453196140550714481209578337774203325792403792431634976910572004135674619131432803598883150686672113263339997643662378395207512539144411539490593533496792501207774067240704642494030224272731348350523546907903612910142447081370920319501232453348213035270794541346710129333926831627599201412744525109134190991862603492937419509545838162314282159098610693137038337341202545794919206503217221802902741227965620454535895480353603459262857268312430649819333851624904999146755736879027236366688929876293840406640566799338087672961670524724646641429161006782972381053521915746962449249495798257950894725396211625360186653656288650830234530328585693894455227500482798231560888422774629866710971385994628225708690766015403775075533256963293404139606170405206044765302915422081855370975445339648606298034381806561950369883761652432606162487619196376467394088992793740635974558994765895636207777145441995308564268767725769326594298598600529083758880375281387388871639218669434018139711144769357675383695258668439520847508283184625147590508288992829965725900732650702993368593098959831064694088984884873062164499767561838308931237685709036425579590678450093799155626064065267721150278499775066994299694018962807085074398250211773999013750531760197913907434987855908787092946924394520799113811290311518292650086243035862855957440638436759974369554347954788582487584864069317634181398155230479870714528844265625067638084925046164385187176513514545636275313697963924239699390569613046582535756449940004938997012902583071450080954555600945864118506502985442735246828615912335783459949459520276320302754858142692774180739586391469932531329626753065653438643650526776113290685695603150306637400491202742752311232443524348508146144420253678125943566134867070258996376441437015357951815781758215344141033527231907215045406038332342533370822481918024752928459827232650638066011552320750921267168164151240338053081014523114091234855001419099113231770776551877779085599557242041335465554130257623201639482062822959323106495602591467469554931077318842784849211767925113012792042945589418984151404185510115520481908643447790303803797650606490509351942583920543102642171316947814434356854573164983888164385838431277138151702653739649987953008209790406941397050093640839543361264200625157852738412052328344587537444379589110581577214823601209411807689890351462601488702048407266000569972657532320026006156645933155220798087450680469364767001402376510855199520066269219434831996736093578331206608297677660060007578555177111024532319825101643783009550212307806081927453545933872874987331059053827847208966068814676872537782676469424986994744552780487633343028012904038151982028906905553991555282433497095024088306034196857103034272201298040739329397866383219090154674349174465444486597027411921590647526728125923355650088701283701519911838778319870746154942523402632747671489561904165433686301193604787575514474106849546988031360365391739051893689089634492174584919510373658925126225311039556588618703615259923269775051016368298954543368907818977240165634863321447611094308869132303488480616496236376625105878976274773528598774920363442683698415262754986960420565169747508327319911150063651081218475649028552496461768046345824345072932251738322236567960580975608056767553631445607899233608258615739610441252048339081263983287516494723432038675164787112715141867412526249172347651996096505934091833659290588326599625323988610667395702776669052171847267109226703023448084601750035554786192804667992090188904033158138502908546818996889268954105327702892648347260519626522762676727953747919039180667376838262367776700746165269462672991314772869799189644319040035310415023307221445442865027016609725402784924860835431123679289841463200427935091541058116219266317172731193132596354326163875681527017715718185963231230800352330501649611718673300613668042394738203808181647399102786681182709061826650957425687950715256654554264291491741246313233692516632879753391816238525362426218359458261149665064417234726770554567550520685749961126847004262057958412460653999915509402268856450080916410449449631625955979397547040455865966251556691551931750609523374373584743886273460470823121433226762389676202894194226572322061610380712661679752880305173130341337468498886469051889562815248028022806794987733043920275419149965407601401241209106648335489510100341602209050067049041131817743893845907173402532876532137759555263287124433206584488997625700122665385042817792357413114775596167637559173167970660885121402262487227574966263182463979014954370557275505589851769209599986866229604546438823920688911043253673161845151054971028015105675833222662352612161140377088180670375346630166547322307423449877545064347554424409391377928170186471737418586421814126784154027900922941439476301449852750646880472387301499675268043214888446312374618987093487614527273982321333708908231628834637882088359676281890625013957085597257914328986192782455734232048614071423063545835823629370713384759802027636590612876450952697545056277833221098436542697480488880521900172753460236840023242766561346346608120721531340935334679468477724556128101017661486548396237449207903375861855995573057308190935901066960997121611958728602863242208634446468379000210634060085394471436185858749274995680093049379378472570152504214497867046715441323823293207243198149233871533303490336215663608603294168802124444059702935674105062023812027216545952466757865096866052363808627512500708865626081147243267522142471906982665540754331408946844695317750275833146070983557769998771536282390266699554580764914405050386553710058214392760232439587869044368871210759386636917024101694294819456554931331143741028507505081086004303867244549370297474690508856159671023913441460769261546670671820893990011853440369068720254139874701810899678944976981201291454359641950565460028940251515741385153287348094839566980058577224062020262505858932009496676636088333239780815874971970606381963067775064178818038851433525894062194367709127806817327050172532892436036225366422004499143452406011490358697655921025435394197228151993499803827248303977761191444426832079312821775355904483218930784416482671150678522043672914834370266925785842178164516269528875271960180588376542018083750785919904296052193840361049816563149321535420995264771262751612188065159027017734118115700066220594728147058122057046945641172349761374292027084768264349194586928451123708946080712462891414036432416882656325338254343424571181620705304999399152809987595812670472097386288430910406194644092819325403283506537059600743345250070438535070849473396955436633047217625792461787359575585658429266917597972707031639031863598462112088303127121652664878408461825723162332923081001850762539679145016991739295318336912927403020367396743166670682649612923299404744576381247451908361347695757522912403624526441219686643147540785966982941277975925588131038662607845708954870113435080895704692144215220533396564984314355419820623135948451995566854984741436800700065506873857779226101251506660868019838762757935941508984232222486899622275219755916970935610924612708055383693443716723011226858116806467960430305677160592020146631026421515488689929465278369471365578052506414507005671002863813367094276117724738120734170624535140640618797487189341255912257450883159875359132964427693588297846183858768392416192334730936378456959414017148615181381855804826337016900109062563183291568879021327378681208859858744137117220829598449356721561821158623241727430188931065778780766698504663687216209562880810252461687943987797733551291250917951556378937191009466064930450727597363995540775892220644647113621457626674382065596328054058491150796580339415945925044189827366218695098431787723619364526790071107492571436418686354180743488353894856271361015469877609527244765147356405366450002956191755843264789752621997094196463176860277997498207678811769724241351129150286180295878722245997757039849129146980425187259820661054464213584421667531948370987532710926021263101657901082540030150715359048135513244283399895398855668841508092279276855485329116801674411349041973360519851515035100199527565786126689898587158364966228342149749572985672575633412692394544040353757943431509918281925248229149236266397528491432242759801332420092501488664815731199021040100662803692675674967295809009299451425067982770421749207831977559961829262385205618675811217580765701037038353798468429597859623081009969038693940269727195468245238906891920145430188159093817019189214877742281937591412084725678043149714966606230984213193800314510114492007686858382848786460799162324996094516286548579375796555152800695634500569365343843503266015467181107675709503262575704132359738391334021892054990004304918167097802165119444822065998167194466882228651380352580542176757180314608469362541029816661590562534883533671498274659557808215736141124887803619995269983353616263923486523329527411724882514953787324499204281646678633686500579720315874704681971486503536414101951687139549266587006673279175267111783035835887102212659139701084181149630200483066517636918328845431434332153001760514005604118871237112462715043128325460204014369970415784561941595262351458171367508103074102729529742708180435307484772789568347549654550638645462789363252399276847125468713853303097782982979240523240897045127593124722988603499215652294961526255493032054846516855231882047293199846436094257152777111264904154631507120874426267410771098591420953958332695323075777512124116868029683895878015263138518930657228603750816533469646255271309124100617398641121144249930390346915128438212548854148056954484362156531346788102636261582180723207133448201663975481681725448568078153654107995943922318848436171502415396161921286539489621893438267648337937156485041440172845507581903852072787496740941182784384046461494844296193687299881077810955290211097279587968849361691975324072878789778770771570852623398610765539750321403300917918104832702215269532616113560280698545430529216734634120676295179355411896900103216329307942602371186095471707947474671369138882405837054609393157278509305924016358508810607337904307880824528643227279091278968064733247648658690363373530433617231406711632454386123405880716622496568782459703044129629865753319254427446825786175816259316769951408561807722927028138203795236905575729183409100189182847921524497342016142722459706759324713972236877849334841253335037688107572993832177309361049359446962291954947666253260863656438308293307729203648047897997867032222566216763142823773269261567487280608364838963013970353814940968502139442507312819750378273780758221365391098565274898054098909844455483680335351123293675380748382140045556750989827529049971847531334229190276196983495881015332281871745736052179574442069339293491305849327990311440410267603217229884718486479559956825328016117814697933441613454174500190219051753636218434093995613307963156933424559850341411912526691299091990146540961912520988452228344535934765758209789497190040523439672698935641538779897343893661096083185823174225916678609607539042500427209290456575706740278929748190417939379725695526691404643829871950431050602930257631012515089292911843191817055731059273980670499680509450918416770038949292006260756757945828654492202052665269035092977913471698582353550837749104936439357334932716301033596553002123083980495105861590140725520576874985864326957615614735829169622741613450090149114458009463692797536115512692034339922685643822136096005171042264243178454337478519130556307203655277561982041166292165081116917275489936183628554148160409453694892586865113766082268208937699434095657878614000278487861026879224138207678821444059236625352967924245651143527291917368782883613309675920583153489429634408222594734968623564714888240294502109672307016212610357484395999853559487421644777252537940530945170987057643209996119590743657283052773974743562159842781867317426837382450535284466501473178745498641823039498303844562366991966716648620907677836611848983661946146567939499802935417939928303544642074677252350820356518958067522264523974394496751891108956898375092356758763429006449093120919945087044657331514672372865232255613466105850609922221753294470180838890215368152559788402758931421907484028787478595034146354710721714182245288323615303586377765333131598550797413194821185299367365117348409057301403111514851241020158323900286487404894087636697579097018413400285151463658041077385148251370979348735023024615594075928146220065507761964055923947690768628648242279776276804255837056494919978701143917857891225207921270566355367097241422652648159692257252244781382612193719591947798861383926305388980428068006478633758721196583219064697940540283269957737079582054848676399367196887557870977454622187448670263081466341628972311400639532899065606792702959217443112488428550990455512690016782717150934900607650636416329189068154486871961304632975890637223779190282457363105936241371971979371956389277570454733191289013406141402658457538648045725107249909731225682603226833922129030148895241437702483988621816577744600557892731142924949638280782895963646490038054740752376574137122683107408082064276869007931734830461209854812032415643380062115716120178387374852437482549167316327327128667211011673558111192024733239569680310353603595297606313183526782831989868165094042355478250365864449616802715681731287030999595586727214930732569194786288755069601923555192318204795101665022643858958736292508491515554341109286226514235598893295718102748836268057772554223692530405175224947791425640838259083396112698444970118629931769174928968932389886642268563765908332098377235837156502557326294340364510403231714969232372301354576062564676610442608191092388910856460159082655000810171712342654072312912657125539701736347427044555607217696054874430672000889776002058204096062999714298297953068721369852218443901346465444436029719584377062072205750445262468689527516573967797691335301954760240357154400886119649570498739110950480246242066372536711898255289854078547410511373233890911061385639365551918856460352631041368226286041075421045137471075351165050101929456725076915496635040427135755698032342463777611143540898459436573567116065106852839111369239535968096175129340486136382791627157506193418511381314989963339718157123337211120691537547434318489248067194139507439190806500789385566623170867856975149967162707835110403534687086906023968657361777832812746173219790524765482145747515177464460416366705347802314922630470059557024034784837071764170173162830192114233890567940805253381798106942261700542736824193564879277231315000330033003846471857827297369111003726035533342155330600107811250316010174115456325686964926450316098480788873855811532678981312082071019701816079735380895086119620932824398104754070452256739463313242861254035436030087832273618928759482263700761311564338087276125319438930605194972109778196029660903129899326296714312786378253582410019914845827730941891196753239465671506936227784718845372573511624709306971837776158443896414428253904579721354947197627985315145154314754076480986183556621481170385664568871949087593588818949580663934178216636430787069081247219385483921224436898971938663278352808300954229291914734784666006010243141766590547632389815591062021079947063664657712700213456463082800905827673538712614695582647790215777717526268938072053204557677691696562387189497709222176231123266240247435034963041390519589275672478575153186973505602025180142196926280423741645032296706617169701238130647645809620029112406845555281172547912831521487068261936409015380994433191123217865020112116248962801300651073220922052617286525307598552534760057918364640991672976367611077728494851545134486738328366534594523667189185220012710702868459186036348850221320031591016893879043187691307719052711062032350150938324377421499746503054418374013793585119723170000130431261548677665335590940145356599945701233983365019211532659531486412996547101422079844956713659994063767698395735329037288514239870769418752723626654248090990181384258727446925364637334926748436958773595047177682508815690124169687028323683471909606955999326693228843437472784880313878797354207491676224701397240049920458814601046586409679794906221711589722988320462678191608668391359527587670028816951508506782587243810679290341580442254663969255628053515376237146441493354538007772502944625555353853178293607081065795243997147438165851675904225524481900184196592024690028097072267662800790997546703859919755669191766239359215552603669513667838100886176441536097122607524693324052525461970083624268157375922455832932206959953862409188955440157650900030173688665498351762554957548808763353774000038792245262496475583287507104223925908371751241513656805364431297764439476694821830356704528966858781498837311202385971337190409672751330691221455026914619834499126913470788401673563537535531332970903284860363087343645310453848856893179097345384767480504009925530427226947765979692028753585123210974086500870441098134941335758896447634025863665742726503327121620085536368864686101785820816692340354844329513224556325211747243957447531904941202582557022556311247151831443457611947380150227134507682258184245684657764227786749601781449208788177116952728172650779387624796519207784652252466947424288790715187351526228918325551299295814629379421466234670846089710542287347617591872399755423952894562423780405788044338967283850098007701245561793518218119273403027266294661992686486601292906297163323044273190158586661528673135493705901317910294727862890752274321147907750745511021493326133427084052449890453277069487937061246159861393722652151608722647327329657116112630447698033380955900970695709134409972960864421461674826210844484808311415681739839062775921804972212450334577147407604521444695773017004526657586098666055028436233163038734768628542204904522776204857496173860888581775862532243359467046781229917223238480783335208971046151628781199835635746126793170816405765419494370973797144254866930632870146119661238090804482712095542815151825857477229200350313267975176478664189072265345028463342016490419409683007627724023242202543971824299878603427467388364687785309267442607919962014393445632032046100960590845086622322387279439805456187162792284553560403834756677611050141068921093249208622616566382808494027090464396200955471487979430217471990186872577771875536609537762785320813403528936617333112717042882379443087719323972350940401149583940688380194384106055649126466798025748607955780979414096752073530156837083260255856232023254911104200962808998681141929496717009630166281095465375401556722450939245007714514168857262428604860103174259069641084132861221579380352391497487842052703904586574442110098008446731760227416303205955911168474793334081318332556754797824512589035413981171304627555373827176115082956508475080104333292367536321109138791914540072998686587022390354226696095593108043700460538117355898292718930589011011039232858253296639628263801645705234888356820572370554235104002141468895333953463495669974497058610952874136365252003287504748010438588858243627531831998961681563217311526045423682334814719454634389843021085188166589878318669291266512997869224787151878142047351975809031477490776760931210290448976119560932687912451429409988483955570874880718858295344951468849492159069100030200451079360746347093278196322230620402021014413076769353780453387463440122970012103654682704903840618368812635869005756381099241341900341826314710070745513790746242878442827424296643311692073662801484861322862859073297011881419710524746918367912988732909696454588986198089236366683971095828275407624693356629522649508147024513300431252873189676951794409334793700741569453041008288159107811391671783801670843211865074517575813737487130816186109016292751053656602531459715164451048254713363898716449387454536144926100835738137777875708110409909425917208301666836538844429063382488096849579023716192174767914343934012943528021559017428196462456379738531939990308300149393691989028919265399238288024502151728032379637245331393912624069806313752485452146065534029738643459228300365109900941526770528133153695015282493715780462100125178807140511089739864579510971910074813046680374427916703491508785375446087401925979585182233629515094601568277182597898560763610356118830484292494360860317955080601929305275314145856948944156819459367818677097041238093179490745239409332238284059257133160424671731149901992545179909623002994803364139002136887760328152543908595382611795798554022853472126864740911707259973273404915569516427308452998945903563230212975361131338510214856503900653264458991948915372483983024711936758951532552275308780460882374751561118305909574216636633692603802867526410029172494403838915504523600803094425573594319316870345057630698638352214258798585673953977856992140536537309537649284992594869446377943784296802672989884175970461409161377946191941314815971180411566119346853382191056602710868082202818331091726876825049150313684546857460204276671865613149716830017730734542187413555784114072217467712536411560115491162825203919642223458770933944184172940768911413053896290383327861198658770627396962503492299659227542497860988740183492026741889166654873157624198708326571686556473451305107138830257336003198527600577150079829633456282157617042916614010223014343182030016094045670088743152189530843918683149632382368699067743519393138887096370266817497251725166891816037185360161341296178381329862449390931327347574884823161724821789458443405321867665751385167464851607915451900595528648108894250135362877859162971519002255427267290016885046452721750366685871031260722035876821966255284919324423028737783335926790283182902999722314750770508128462794491005833744202521315616885991960416920753949341863098028824463595457963353026765011264560685641026372769518515656845925045834108738410163718133060447679744159493390526340802497623605293324714718610309223066986099376298532051354043495144758105996528362413310709718816850306571013869454110081081895082618297897582873996043372279196755774537466150620809208486373066224119881345728528515102540896994247286055358362910033922854567582421937554742251416251348102502684272968494699525702524785262980756717518579811090313006879467298395315190647098881970365505492126107878752418682086445290000119507272994900471719869381828198842215602943692448980442449957374925573142726926830275439996407841897881427498313072121230703312358488502075295585014862154689170471818103602820161710000670427960856119617953857190095134291712958170631073362307941149035206373748226712783800334837200834081967910657342313078613195353972502051539494810399141497957583216624909206263439666331402906541899905540545022281395399153451041923373144462062915915370105869884847889915891439925689919135269813708962403918079698900925389396650431825019510694366155371708627207202337453814695845977121551339181945090081268965888980134007990776964311415864483032790853845640812271620633985863722340398153322090589825282183075787358660397816653778934007213522416733567771764266968144722870059341819763868708374221790497620043003562318728202254182191769345376915404112477294895091612260536675445444846082310303394695468785322000458288595500401863317639582490905183523084751041756703513986562277692527611518749898871417336610204992067282764307581530257238494955570749611296361991144933439596292999563594154142020702928372431948472580447041186855423844437992622432310047484244417407025627285337269266023054121546701176326424138163499959319126869745455991599064142459270184159177755365165540489280728422482550181904279203273401753584022868951416320395419414924640517552707014911020430075988136025694182721921287162398157086331631954725958548825098618221446032607387020341333888960639869175006434756920507558358336634551346576536882424116345395441218204403743877420621617540475406138716816205047894811082904962856593591387304179918506550756789944359238591218960966415764338979499075292406917980249951986826478388324667516625403139484234529028750120782608775212432555172677884817992424670205340513690118707575834442850777768081295438053491746411071891788257535117506812641507408335929485025512423628727785488479344667401325985004729875787918164298281332274730128715847345081870228102821590358410571270769954714088382741138777517405748792669663676870780452930668500720686088986590421539538364121949792833422403150814105710235318131050095297857501214040737264007804709994194757778875579309213489942015911116791125445697531826128010774929812215436955905428684071335832062451420161743803977968902849912404612217261283780346753791171187393538974441111994845377631843523159836045211356388271401990303029063896569660255028914054624564951768832119786688622155931063755819934982126583863031733034484770054509179381539420328237204592382826378981569022017798013762528381492296753135685281469526053871711646718211324588400882588230880261315375227012532475768471646356499699038789921605036188646608537828360491400496684742721746183696683855099871335621429008054006660118989663471061040597978667163149244390771595971567904696868374703953154036980908282138376985062105927040186796244112301028007536076341685889871680595585886751435999657269947898750307680338475830299199616885813853724959849589030006268482886630401010871959662380809339180456706068467315653424806867575644854399381927951615902332351286007869679624631508394893404052655963407712647399449679650927920769651486959814467069246541764156060142083538448500989950042799567819890903263618882668127727585972370075290266457243367353715555475382647860065918538189283350211824489811811896196256221413631110015829333205461715274153055832071422357791416340753739241180063524529260659247256872130975941765836291323531857820174295095100950571869619018069909385039750489866478117537762418988864881844831455196225042670585194605292315758707438810506595344394996689034422223120193224560672273110767959067472152199129557677083322299531623830216552463202265536819662932105363942202843064573292209335510473043275998368573080125253988126858670276215341111264635473225641626890792242435011188594660242114388580967086221653680512166082263198999292868906275864608331454036680553220777838672239555716171336789004473157238226766327435523667985100787042616819346088972004506054857473137302670236177744898326775240939535803400144926571575379537401639242659208424627349854324974988784568085034654899678903945361966409500124137340881090965784218628867265217174461349865792222594330613061333919744487697725770044026460767244549364618529864554824335807165903151840674489018871524221571483857555212289645182592283079455782643450730453246722205690416575566548145365598131398338234788617899494687610171913476377099026195322342634473664457690895767336095054273965515384449966375665361096669667492510226226087850308586941750805929043791451607382612595313410149701808556621444912197745764683368892875382060038496963614824985797780163962996603925845145919433438538151465850981579600914683211888831092258048851733030505321906970324573705667639624298196186090187141711272278156538712748032315681874442432358924573751089957740574880654867145197681338864597368915455914588564967256188367595895314269275486750869179856493259105743537512432977480124265961736731910585607079798343776045002612123169662290208757274162545081421555069408879457937140823219615949743379866406035131128880888748104283571321218280221522976428350555705254987635921936511977620337090981177912677887611998078632398744584348184790337844566791299922686112838720240299921674632695907305122067922045463688242438799552964313545973610161627648101637287833299698750231131314523639671386197096144807616473034587759010677676094204882555909723568217775004553746659439114080979912302546579808901579324241628925939579201160968709758183183351522024618677554531138307481965456087873873647319223201238479681811076880122301057235870807461296226777389211479444623223415233386917144928863849050508594094301498197109248647290409143568728445534892960446791087008533741151301597929231421302000159521324359522826326140676148460617816750754597221097180815533542635454280918746940399516254188844277540844625005322232426533491485690115673872593693064493623957376568085570860633010230826555209012277893699196466661548643643473138850951179524968991248444757030525694310562977953406158907205743086262646499345816888283756372308925655598681366966263377706015267540122381307264461129546888019880197432722692968605472356920336687154131520625177068098655075161431242683136172467718153321124281512162557282901539637053231188950478069645062184972563583229778653662929974204526824244206528214136791808123036199462896161399461166092276741931514975300887102620893949102053744035464125985701783274524979574018321551421240935646019872795582990167064659973703662145293194223497731834254175389997204626174751958987690230681576598139534640659746323118237441616043497008316569744862573472873005881563409656619436861696465462945316266378897601776382162870235558328853704154167576992101684781790761554855169748654909219460923512364558954710623678793098881419432459633321900188670488709967790104722148396153879189800254007385924407014340810042599046763156069590775229511273723757023661118860064749716961679993716218259075812747562957653417818865010408280872271596922141207436879904760415353294317326950925744638318908554954596146467226373731588228171207973919519200322727759476194700291590964986104514603420251593820550450784071357016652204596530614081011412556397998475166829921399071037246574129348990532866480484217709729674029625713471657220290457055620150480543347338573790524181629788376025304744156437929691126312920813086129909497186761742582228961861013050397280495901823454192030612422561883632115873948114558433456310522212566181373351202800656120591170962898062363453486155367178135846499459847460176371383889652150305660546354343899343188228123666991549038949235894761234162914869730916437507948621268485725733409536351456854838070058704305938571265417905429994567043531603216913179692121138773397818751956702572222147712518957542865816701999047778521385006958791350780533587048850693910628812786691762990474193205875181320945866768948193847034709208631437190092328920964008018773205838370887637431061236081506963731400292220287414167374601221248856051507587695442537026404689497772981816673921224194546388361516739075608485508366833580291864296520942742417040249374026805381751834378866292990693163349442013350383393000054302712603814039398124336682120603733200505471979003020657085423231244783683531682564494626099899921760923573157951720242793214083205815423034370219519111900405048054324304014088342606279713076783850903532597175102960398894091868669320285970768568171639684661454413667382912571739904080999758216784373652013247495455885382137649686209080269181738878685316515394813298294908465146250984153874525952382147827643631716492494385435736972462980039160222145397725525149678538692891781260195206703446298161052295804050529305351800089839745558295877583581094716682835880726252998150589595848379049917641472681476204490295166064257237133360088778383946560346124322835936726285645614716101069472536542497323837005336559815785553142716108578242879949472784777979535991343326153993943129311745412380624982812251157544910522806545748020983339885655367317652743767331237042973194778194028519657324966881050256423996116194586782376088791489012543389717540801148355240999542299390583071612558683052092872038968415643853975979818963831332610882285060474886940292288243585133915790172300180464920968207950640958011405479733812730596995698142526458732882608847976838537656056224572373764301470967370903307008937761576837357528350297885634237619532567755799265720022317491348479389470020125703925581441739655687659237701602805131345017112726836873975172131581936801707600949028679542274139904973501747602449078351299624778350228825004794877395193026411732025236561569868141155426778515535338574392778819313094337066414812208620012922906287945157568147541805759159645894628080752963083505554806220855712429854668857687500683437180662513295496089365637454857276899346423209446368947085525840525975990321911883627777056308929903725603912853799183918297832455429097065421249019501495995396318165063696439751887840701323727538925162857271532707361622016828564575080778835438848724467664198912858043212595804577897781569820919714833925234748073506563486295240480329180682519908003662729550222812200027063933104232904101367743188642647238937442572833541010285643500222742973257263423557624998956526870380551468061730587377271203603471839615768595383733727892671542540619355063871505393552221795840384081973806777679791028009276147760050353566660607954205891345855952434253897389137988922105103862163272778565449662410877941017382861101628581893881636004446855498671216861266852544031259218421914835775009730974978434737017160279839934460701608508911997689694769413231598043528028608526626402964707935607026980539704257635453204496417658973389763415648432993262030462826632904867258157088290132974778676345787103600282356210628860775786313974071760343155096637156558817649037518964811894119082100134793414852868384343976122596312308702203729193741251838979201181052251225354202358442292555929067990606783250601077940671632523054714961943415079347406876533085560988324782355089375957409250262895597944771065556181507736424932660285710318141158935087454442382086062055574658624883369226266640547645098049165120328266571521888952770562905700143927501666965664325197830104562001118934720992335596099589568271885815551614347783445372297147806467415972642307785775550805952052380779208564655666980333647993954138496937638932708600907085416563729805778399720987345753343871259077906803604690317188646207345752946061039107380350841553372049813573831108909735538813176261107809891573796301178037660189245671878773991667017497659097783894483775564609306190435057364633779445481073168450025813445873826949130614527792306810889637196823264654522486141511917553793732417671427905241059945937502769539729898544044406235576241212319275788947930184071474762745503979607763118601699298052545058678286408194016885534188384511775114350312282666025661885796069632507798653410320628887458722980522014949714800297943290382751554543873183708269560630267117831914040504096551260062486452361164427862490469116870148274862931253115477488610800800138379931798958786280950497623701121207992631327202819246025532241811292856787939968539482430857528232752052779732559769865619077008908695831514800366608006605694442357458018339055786939455082423725903054818840711140637132100526078227782467952721966847211858515206201903700895300127382447842050402191705436515607432271962924907484171990121215492091855349647285696386262343351712649263026399974281825315703298730588382347632507370813297757159914000878924686492250894626459669451644696431859666927798270512686789037409437859833221870341702159995850593320553379901339759064039629566902432159379884203226381548796767423593143487969173366411454010278519362948673515924500735024847096547407651191954626012088404345446673975567012504598577570802200672720597909725864112693127695426066402428912137998470139362077118443121631329202191245610658429213062385847560443691092812787678158987766070003303380646651863775026790273028935400110220549732550472041802119949026480231203949740156991405331864046006570196042381666139931565704634856502342825153356454130210147719499894130514371255563255261654090799254534140902755355724427726221891618949265945912311121678560895930089016636315557899349766404338360940289912502436899133517290829777055511368574644170986002400870628347577550932136567870825556237324503209799473389708062166143820841586032097695438042036283469705571571118540887723103115397214164004793419711825360078349361913694161109363037203414171554473400001496024629035085489192347997586246934052057059920753694075959543130964368744136586239057971811456608111057977195856759508132330186974630104341780996069624150309372168575663858776901717814924517976910587424784687225413475438896246321887731375657377393207244204367421138756150843304209849860246063973890471004335747710186556535387613502438185051764745280371565685180439605413220099224208351063949155048319125162547485644841952121165850372806135787353726220900363619451301784029130474989986380705612421137324488290119780082360537561807703530756989142405794599963105884598723437803087295245280438858967112146996160579690070161902860624646651682733478929019404305498139888943481301635744959088186745536240773285583820821990355654934050049947468049980442652831617520262555241832857693601626870844134649201982651962470425783476707389877324297441790960925464549553204649004303988898814220959234340863520817818215492078364859838968686151531254818959267623372758792508441044098651399161369192727630641127952255265192048997676980504413443026365397950879730538125425192171577203347119213135044376374659660565202703668868202143050018918078542695305805460718919469943749374102290535543056083509900797526177652726359462961871529152390527807439354328374089628106737163827392097523913749216190959864304285304528684520085780262144916857883551521247311001079168354690788252165682871979163827859940204002909719439873278520326457632886197942680069542928041950317481749988349625451401931029418104698036540309632834686347316533876673993180013372137298623782062355446278891022493725156982217195093542315143755737965434914921951815562571831474650911073328678315519611376940317786237674778929094935692755973882688172805541879510551794833808065207687976477147712260062391873617416878206195304576149384290868280069088763627267058104258737465349632557341898143673473064183222154058522620201342355360075403961815277622423600601535634518223123614130250111625729779553218897042990874235104285589971744901201476123926171188573626784533083789224472029913108883567777075647734375091731716896226763530477902730971097464338004199802841633942942528880686990428586802222559270643616323229942075254358324205047149255824521220179729981674428186872478342829236018371791541055727285451752585808298567390245586784948290428950269912260651139139499595255197278203527219816602141220246835961361551358153481155315586156612451362758728301149815343178729306666716001712287531638079989417274871710732585764394845510133003013776565390960423433678221042791295619246077748476725179755071514587971835525243933953772670524791848403613400064545986640149628886882317262310103525564188856872683552851648514347095886855065848552236511531149373114643233737809196521125657782604110910121043656523148707569452135803906222713031787692782512138795492405725386073454437874876563606462555587070778589996770278710538977105861582811405710550397481642158696062105080714458589139736020116375922325740910396385215047047891434884470241347660581951882713690574612959494119408245700469300533816655844322996209752314064657929374012581940679685498396145521882253188973812785288268827476538035547950236640589379769041530921293864429832861854579754985525648801925271749574199738799318499138546700250960016465947684269939432023478201347342391283230102952879521162516336747657704532087412248981509926973899359774330315092822586121290993882114257031698107677773558190387231447652113849677209570712147494638911189934540403283166835130442179801328756965948206853166638357523949814210432291092985790262320910289415315429556013214011059206034963135701248420715769071648742260804354340158675571413975731448711422271692230411707890123003914060317146283230900416931665430598661891677498049082867840209041609732780835156947876136339075804523994748386586240153682987646578779189324500569857128068026440671279499089151946528246043974686953606320505591656072893582637763789619591129846848777303592290751615204141262557510101697547022733731080598156248865226640901414127360647794335552181362722461012781838374772212101172037974274681023511386424524809299962984546809819656884920250937495723013068982736375910443153181483130057690050001576608041680384977477227763825620577958629048817341247270580843674302536291226262599281114990796598835313351816501701386129444867560081787663548235211162618589541928335963384897132517873157569789445868286440755328331611475829622549028064830749229461530137363515512356191323142250890754562806237584861219068381188648310791627596318773094277951873498533902878716492530372322107176933285807195952939982553624530901420950135193394436778279407792056253549798330375464980120110592484556147513705188824985794626751656981098832955016112657788009646296959647969385604283020146252557454659922810104395660375527523046275412460768792355199417533306405670144685316270882453905718094587934509481883172137108614013621714933451327375583309768653145342937869332404185980860325610665179585228539310042521385869158096138946941943123459492891103295575840186817063450922323844655552251402103672004649026838864481208609959344560708450771262321145738181254531489665922102276343657484869920642156103946087824646058642608155825261457414422527710516861685664360367838131596883614497556204092220400409375433558753849900894020377762341768039494840302172996009495997907685559796995818200259173921791110077195527151884336121807086563310131923695146371376518830536731265795696208621642117290731261491498170243505779178693685400389792972741886674083878329297487851029222540488122408986972139757964516399150853713924535694524408808268262745609580914255927486010670868313493115791931790177174824368682675147185615034544172700952059997935314676333093733267092640306837552883519433739584874129470219656388920397796170034897788831440396884429237658576382387965609672847486215998882638376919762824246285084308064988109968844531643785061938885741974707532148795651339140935218257413126823842116845346402928325637982132403018880972479504351386253160749235016387111947045250234944724091857186906077963774665279606659777416169825673252196339516800176991473124446537401286209942734597165096240866175351486188700751086471447358561048160967850276696327289241295995408519112328352774535647455784642835432839990442107157310554677722305084388875431528268305856427240378184108329337286706125436100881523758726220283329984712407626600314438909217159966362035138272328402860190241375605813028961253110905187011938376342208577880060325854579500716895329999877709091994651651901694945450409171153068413867862246561292228821835415002103790601879378941854761400745002789330452928496111145489491621024756408652821980900577513282175725781034458702402084364167475878254250353472144876343587987701527824582492750955637954090208653121099898023446544829082985899864634784380205592593560555928577591768980526627585763473772236282627810508555504128081905553722738809890922893326125073161148951778129788318754497394863091170189096401510709432347714504626088411128268129706499319182616408478245533647784701646483482971594267109089740518805499410183990173233791959050464914478352581769411252401365288578988127465913826761044511434809753327501835895672890383600918538820443068819419124111760656115393411241657423599547948109648449638661607341653919288843362787448356403722700176299438499846931854830320451874042599335980664673737238326045038041259661634967628512285301841539267390561224406299681722990244183124034240895862125109431500611547260831746722520235255771176433635356679418547227303735916529428775180915220288166058330764109883275569246982791174756404881616137887497250557173337318540607190735449461289028426340649622997918162995381965437381175343040036961056890929998512134520155444540416619857393335864808723510170263905321608642839196815457771590122277013613521146506525211003412359273636421396960839147208915264207384519306016907321258257666853775154910399146353938973103850828815458252338546855199839236879809741084595036048202743374907034950391192071497037236278695324298076479056286336233279619516199196074546923711097724330538779414836863511276084124399568183246757167990574370728501576540068620593037335230872994689246925859936285068843710687187306349892261188767139732883433414990046770156890394956990948630319890548648129462902490178100980758476365470974478753970247706239000686385902627792858309667234437566227293902923825400766811450159758392460366414376003201189003857601244278244889895049863529800369999951051694880888788922061404942852657343977390269886802817308010351812162316286914237549723507775211415285789551297079472076244229476990382919288630824659794405764762960281444130901994509503805031163140700133134342432529549568203967148861322061357310872344123385986802602334611446923046276990619042616268959348761417600107730720158384179417469896871841178196501695192507182415794377061216580855580016574295094165539921337295835703222451125828059670303429366543955114729455460303385406991020959620781623293531613352995209847436705062021198569651526560952540413195416603529406854338915529608644035777006310437742457370844767335859325292618784086389461050562166960020354306872268984240764680367786983799001598672839162676527201596041408889220331716901740808489133833221667418153214777399873911117612116164433978130502904688954157886805653514158778001643856216188156852561191707167998259023850338219074517977009013018047500513052527025911250711133925672873757225519327848322726945205985162820837786897121116089048461516853805041737128959144589165829768765101465707647300067613249299414957824012475300194227987782250698934300296527794968122841464330255206948710110351906598802993243061984249642104661030397063185184588964978286410998260910956469272094688804822340914561207566600403906550814343698602416721764885323207589717482609509430668828055425007066273542063258076398981680972630059733159719411077665892562269039642923778317203487210096657064018410325150536537204411462030530155529830832567512124007284835699238157593026219178798376671845221620534521823453098842391967335956337635753910039160184161193684012287380862122300273137149842188777391669788982400105009673348929446594829721406803409661912241000585755722372898353101908730111724914846076866502527427208497315046461292393769950182302511981434980358576363730079979676462233465083765121779547766145052919508598427523940808199577876824747004907323794671727619490020133722890955472099779298132473160201647244484602278508861525659340015160347187480549920180514463623754555033255763831044267600908316800163427514268880072933749513760073796524678851491026614036083530444802966733959872112543702202523690730102690720363607692683814939046689891055815523600045438005158870088001697629736496679708691546145444474120088253788299617783313546226472782740254481262402491841192618671115159065010625005435833476252007174888323086285164075586917349943544919430209094444643068358810124803618265929592324903846630983375938590186110333127524319339975831733931855502674272698173284259829786750663708019234954260501106530791402698368427272275583358456411026424455608772165180749223037776717215509836793518858615582992962646461217504379137048028232060481018958802412104039553948440073063739085809614153750945668184619356224319818456113790222296444912933811943492879770993986485236106702818081960158558766719596926849127311580647731386041810497321010954696931970285180472409168618507508408966837839385797881462408804920297904301801625433614624354883109525744458563447301836716430936834918519375552278402189905813842804835005243440543419815994342579258747125059525056466013572787712159655366002902097397470399054334199667854768191653602487340044113827196114014465702198536537334072233486701908051960832063008152815726456735371000524328401966104532063836529337931051898110421112496960373087078201165511311039604901855942102934064040998577012370217651185707428811862909204581912533652019241276341503000455539462855586839471672272256217201689947698058276112261377885483347992346572966967894864982534367373242343530588281245765823716535597637527480580480025855111421370275837032281818384845360851471162055334615682313119178951065287971092378528415728632452052710612425670831391967822981120692795255203126846736230619234861036908594754171461579702578273039959687659093256851496071919436607359858723304732166984567968790077077078013943758199901484254686872619943169144323717778850161442867238089090871447859169258790942164024582262397384914744742208920224098888064580651791221541441416631293377703458411782594958237886546806642237851717648378710947076090834955511291683406561793132524681962607034138832399568952339985950883070853813531251139590192734892376166282262480926125000601624576996100508097994704694149866430095613675451615514803144401893230314785911604127928531343663293438431194744687971079857102722271041145845566961384749151069522819324501908629868394487880892402245772145701908902698787892545861681348468832098336008357444974527523020885183879880548530845843361627204483727406550423438481846563109017434667374435962575509598021781348584782318098936531009648111009838804084392794408689187798461322531999750674096663221132550003926948077915784998568396484051100095863026338521629605785923713625437547581331713461452134133211842175377748056951435376183679007194242035184142304312327780227949773892313389522815619406075498201292132432816991140731695196397258151011291045117107221859900144465719788935197808779118853418803764989244196472836155451756168280215300768814004373680065067222021496111010898388369593868443328285090779153495746884472015611651979002738360715706758661271271260178971099164466699175368857742588574369770439435641334599125066330035854788911139678821324878930766340528246294639323077661868383729726533392187032622168788342393200497594893865447175972154628225864970623240726417305116835071323204181489917268458650937721835297844731983765687294220836984518649466702908128315424295671255845933771710263793284986267863636254453442952744062137608598526553797296068557864447901849573351557628057938110261860186163580955917189180571699896103167825878130410152866040265179699614446056452559363376448413549500874368031185971838020049225352343863998688489999592202353272548769776940352747062883356092390703677266822217113168130233711284649944621382568467793488315477096810025650015040383015821928459514673424884820133729503997611435312409935934920927815792120309721243005616916078817020947117461894184944783804282114597041387376722566055535564030555949443355623144473865896287705166122031620428355957791079393634896974756538024235209008103670619170130395719459668027526293032119937732591082613491862020696355020204003880725578985004283840415699728938456140088798769345045460887265705379199709759462471375177584250331865236731109193055645860983398551278697600002553292781243129059824342860690081368646065329434416939151329444292328922169263523817805932248193087681428651198984918485650753420944295467514736930327323921146730334254958592691583245721179840480271263388287957555245769328869019341181315128894833747011888448796753013097080518791001230422307714246439441239467301874227551393749947077248703377386096127243630848207933194418301612066191480504855320455405080708384438865066480368631664314014808282729574806113771902629892535985973803082670410923216599576972676192385957848171978994500975746794745074166158008043835783652875614333623781531268321011740721090634418151315827019659629633899930930382977832054844974811505813262879849354668646774814473749613945424690546617623472056564086226195634349869520104059845490012948145264880131502362958429104482953770300400657139719413702313273111229126006377740689917765935111308764375410195200528775643595463936429568864029635168857989990676774099026628105116654999951228347480395973770780890341153940690053925551345069813810699822251816168978673457030010483856603672853629966662553166070987080472637371165124291399243341045197990012875857057400637376490451575497738348457045157533275486239107344442567556246284091312874127442165059270492747110885036095798331759945023422352156251053129011077788354405966460471959067921132037259809488763286703502110819553542991864502966604206626442430040310341663819480071330429348137724071223579420160859940458770594157600588950311589151139896932922803827449435745617965651336857635064007673700743250134875826787910084481662859471819830996415534784762397703702786067025788430022071853327359039187586125875468873089080872976585060680470406466444719994387975783039592080311840854681613440135641155371273267044161617432964342927358737952196460276054272668143253194024746124752858964587780899563295365258261507010017577800906732502224121112808916947046641194232065324932189022969932185358025902647303844139589690540785350572125041916850908891689541675004609770963460805523602089023939296888170763405710575062448217838872308791614491334509977642985410644130592212553631793187256373072606144084258367638231540594424811392350671097806520695492789482109753848477227740767847334180936140707018487121383427854355798644453262537642688601622959842576134569024066985591349076974318668131040976750918339073315382140868851963535580229822390878983082772969567356052384859665912943409405397062573015252010281301945089020564848897387567763726756122166268624939267015844874340832537847918667174431078671785930910274738546182706042887005612435316579719189088105741194220096024788772016395791572802717294830737251048936204274226948011397891144042190001138985528109015078448188791044769937062158235117009208513410636624898122953507867515552945921837285765614142110205752360926495709225060654216954176406439075770243577358450054183951820300460708443448608487636392591114092538452311276694746154827483240367403497087406048801273345089875943087740783071395196907220490453379799223029012120743741853740670829572704334919378324825209791318712471827073648031187345971605313420875313230492989411617442441770635244656730303195750811729155926573050626587121477671715477310777768014619127224117483823870427022180776733293762967769489776016423462844381854918302213679685534171875567997144697809054944055010940738526578911180169629697967853721898852379403763949245856406887229931792963442532519322160332420265211470396918998704103475069589943408165949532886147434546332538093778160088125625154238329828388868407180448294867661766415067968115762192222548518827225006130731104616348476242228870439654780831177633833916382090146018052455792607437488465180472832978329330236865854986725284311781483949452315967016708824620654815211506583182583584713853893042669251030695036034081746699474656755594791828186635196169034668046558195705078241277766716307501031322723772631285193816564097665843970110220815643041647905527878533510403725799544935013732297878013473945410626486591442797791405081603004052547350757383817353921268573666506752802739102184027866682574462901987684500440677371647288087104529029329604225975354981668240845702420529084861117828269146733086011495037460444811317457887720479690713021579216544935718027364443917152576835668761286239757924161254430839031398727651047670874278475537272475933046617051886260135564689556548025154808110183259585795234377850615462143050461804866786410940031276739807243738715464970994743071156849752504314272796811611591333799496861346187512593918022492583768215813952913432973081674370336716929228582314186873686808773493480715609421734562032459446983334691568568003277874286306229648951062641827802582797712624991162884816816743973546990920515605732569506086766116514743566850375348680336760028786267131792467777212142883033743503302028238129380375001089519458915764497091366804856860825787750666887375831127529858492781098587074218344793976781097857491486756921940765455724493239790136365438575284054962954706296785841173017770105397332928680990277958453258950786320257985509522062623551579589332595202923625630990736537663472795984334577843005744231767668712661949272502390377115040348562492783181666430827590429966486156910865079455968612512803084768217212196281717281820295561403908432039229274806839471235788388438717504461443211265840206333032882521950943947831706900943777037058159626181954127060431392070705706392867199207202633692350554558896349572885575211050033124718038309034904590633991225322914279631250468543552020248620185021100706435922504306532996276243796589206351608422904618319947006434731800417205008446031447807554923188763624399964820229855645435170026717537071618069349707502761234499911616992783471722263895855839658139603785978088556337884477320182371655683813106341653796889554536043791893257764984676154127971619811681112255634851437585336413353053118456118244593433952557603908329204910426871764636317300686647049842020212744534993809813775488007899861525018222820991693022783845490419740681061096673748326634775307570852155129969271045481492556316521859529722438776460737907970966165571347505918623121363474068206544821175606055353308377208401192796700423664365826437044301185750009128501867499266757724333290834212135866571592037438455834020308775068603674591504277200146254413429766977109159995718951795368090687627369358067740006273207531059275273208087214212765642892342000558959516733426441161919192127304343566505878593767484892280462603017203118036808491916512184790578428951560170716823793843776452069849230584608398434378248217325836387588826539746827082820686642709572028622332783150968581097708367235370068564826608331540570111067632736847280174314849952017700371493072148019734366234452572097691056863696549558508779786753952356287507057791477137410489875837242545393755974790543848489091074200704194753577779266333510346951847895488597508972896563158605051192787509739543165251155818076557431618836888193934906119692122829781744422936304746473515692612803855366383595842891361318768641502533599887346953643129191268715215573073680297448298572198196185823799358835378153512763837314912597244026639972242884232822963267127729192898657731937469333895671360287722995530206639114170691847522062863261781784709552293021934074508596934202090340351037496044477288954816173593405794486041663706140162791111509288887094516093090701012292077281543409567170966388355311335172891860748742969740364860218265671798631815634676209262287541062849341235644997493125257160210271324237821887863092657214175206399658934171999944656253093026378147433254651593470235880644510696385259695351678784581729456456440454060278593658524218130161946301858273271570703820221647600784660612674811605259486638835886681794570760609091946838477535244504951717214825863973293544002971932491220780972859500287545471300442913039388049372095533486918610634663875510724694332052689522645608809405151505104829048486644443779846844907681635016340034798307222305507065049341278964178751758752032444798481049630312912981847749426853526297066377819948277392358523010269507095297758833929425947122105193193968157478671243383552509702384374508561271992804339307317650805621643351974093668586534159097389246498217986041795868597395116161902961189472728001864639314812588525294571565429404318622561955312261200256932616871999107057025326872799556382164318036672043880314331227784066162261459429488452845121485037948333812784118594128288956800639733277779629878048670495166345655546505117635453348668344858198839566542160013031247611779814878812891631403458371837281187253334627797429146585193877960745480633798191684915540411297564079403327540850837337538680329436049482653017596052577770138138432916319060241626393315091511169512842924062828873796382535910184047632031270196344955064093491316385101081464892980835123931545201684430185031073641274564078546021086185006602192597053942297782465863459249318000843942077918874844804136951631167341162744752160021152900761453640065420291380981608818903559145162401723598200652348004712923216430499888783313307701307857432835351639113858436124557425479467891866620278972509837519975845645205485304074834700265726607769040596644495978370998382039587039981147142065038797080909204159127053319858069172859158750764230046105756755193804910781732268610777263453840813762382703354807880527960147660109403308165581171700754319096996844522240967992165305198725883117373464040972412935801865224474440680642407323649776821783821212471059338704247153717847656464551340335922064567066704917751510007866789029013681533867319863362614537482549633863736418533860475961235679942353836077725337797497206180623196126630611429452891791395487180232327270054677764578370878953492017803585294041878937096276619974866783102457409182395047443025997973769216477188518925046820809136952674775533349828933534294913531182435534550419658432579564614768915255262959077336425842689044325952347046248482782942354781578379089006967342346054259941915931752261972019169460211666646778861191148806223014153989840782723955578582360107184716427544153739857615008478334088370204881438328305530701215627207983689615160015016035770577591510805742867831048386410136294557781347090174370965204953471949959959764499438630663892884360734624048580447096354109571480321096375931506979964150646262161162279030503521091989109572333789821547794239808853160568529624823963899753722564779791732132017063269027431817909191309181699674243764969465842598635540318238515898129562826808030705602445488817047668061995881011460320799588959365508732408452900060107178599279289965020242129895405500901914454633651529786097801270278287898904161994737958921014068419062134396532017274494922085684452037848778522659256969359848585186999652364105244188256512795448248429943382919691442444278703166811064909171163904516083303081554094380242651779533175010181295465817733301999161470525691518141611514395433833759243736653036415200843673583346464087533540185310410215242480103903032278154747936751206066780305994996281187673499163282735718457781199488936117945779857673745886652889865825742019465545306309209498388105154640001198622979863698709608134788609472662070449747168921596256814954523788389608191903215326467771178825085051255903553564355906990865041362789540729918402277339857221894743202627527813738608746463000009029175353115210924170603748082176691243715866945995429104742174951233350279745734437139846211155787155695656782589154388461448257415035322874343012363460430319703101518235787470725114338598287116721400819162141503710637507241051970854064056425110609627815388143734662504077152616101558460491579814259996980520444615548002549084345918866701606480649067670754204783852839523796183651143557016306889630357159033114154120393908991695651513354269665459862310290198101383540938116044644632882404446580980406516149656698808081513830424383249129854210581861177338876875680626205620483140338386564914118811168728167204437903690090816869811561593460310708205703695689495132942562295483139052411659153807242087896743181682431528421760550857122327824145917305004995225324150516861658522003800111075666027894665412277670233493812862187612215604397540266825370458164802174834318359462059469536156750034912896573422341338724109163020056316522062551934462248213825674696122615896688059777087708720445524288840496896179595754502208832939464453315539052697997595596897957437815360826597906533815660530630654962286185127654438498052456359744009977400183110688420017535772146954721388917435154363206250905556103752347766743750082597375381310411906247218775007468280683690242775956970675868463785258763450012365742200796173769949023174068664401375074220707361895618320029835708660272726447388131730688779835076806263343215720798451867587687969033775718218185184216442549384758469301111573048701530379617373377061820370692817299052381871612586266354333703641911707313110897977876555143866888218547351420757855136934949285133327162955702095514345389016137596586766826611926844634374135436866151048044098352948521146926151237675887166533149368069109440736420751359737369110309260531719416207828784731847271132781692833474612778843066358494382772554205795838719054642764552587378281285521902358255104627939791538171841273193232400230903466623335964229064163358102147094731878226046986153654282298480983393063891924229348368664201650325455530689858523687685384898604137830640363178480485714992923530523766026893807188116672898248846821850510693882542142910792830271985272416195899762991617207502398140152801956377899503380555667113928868000366725219062276153131809817946144766799937620852283507384151470464683852109535939542795417091414971912374339496682591730201644545143827993061825808617688212211217866728348937731888170028268154121934080365783518320671542683579929445638370588320816294955670028208763192085400579591331715505230821951871724129612846652774533538590051966157162634738772993754217471168292403429144647663142764789285825784753287796872937156722162450881865607705110951646343199697634175314074586128839492852747768175080661200636885943621430403860857322062199263028330442044695346771913099564382000175559904451770523667200163501267850926569013467669011929304568448718436640432095315191436540723420106508421991250514801881397266493066984901853531910094218163963260601308566132106692536451562159166072823295104528042883939594524192170724500667720992196999467095215697922633746725737470112882232858584866149948903910278152818638695084424092641205206612169317998359581425549948412913775576076307469700652836587189268192850712838810479295379486722100116352895770133585669434592576448954660176168172302938708982300460178878560685782118905172150279550417038126697388162170982067223092017924257807678057834911091333029044467135428574068195738587088142064432923142917880544704671280759260304334584961511320535298134040855117180358825370299415169432733598758456064892335756492967052470565804369088443249290184498058331901851138389753583607012795320538366075451725702411884186171678438429753824815469867226139199618802977624993566255947419433118254055328978540400852429108163551825467466161599001758420918219100181587991596959008224566575182217383335313169027352791884928687432087412509643950147423992739196050687545023543326902344013579234084337953801381688554157299057138404165601932689287215414427983496173696263476863718721248722415181178417684381478529124824044530762587478614563832101969849007971334112344555795270654000404364404755452178217049963351463783610699831102093092980424458693099357750712070928307259081244423867118266447175961750138428811693739935492252011379263736938142708661321619627858006510875767075934045556400317072003271425119311426139479437977854809767110738332658129647018296974799000768571055614814192494730400358529308406807009191990501910989989802235497633070484923533653703477018338513374541838047881553115564059358507100556930165736006192051219478400636950692172674408508700786491129512478919619161357075427504276203277725325672396480224594097379610682947393996060508388415928932904980679788173187643775989821304961577884104476535313722974596966720756566211199049227192782403664850976816838619080762569397049412396834710021823837640301149648533533047911799692975071746961120526474842788979407647940475943109759683040933702658487999392027509754999944800828222270545411213400924441519224763239566861606042844901340456257320442764607494227506707835084461400605132884544948683364761129748051543475007937352711253176432232401423118595169436476637017207162755913659192621986435401225579097389453204447417895740865930452372083664162196841897775279315466496703007838328763819562489701159851656951801373591795272729120192510630382446557472636348674011742015390197753652895538867130568039450742324490128641112303597896167419090439765438239738662397936035854031752721280116756299711352536641906465861173265397854474242410211691376267632559844735904035956029644788389542110440570693453101017324265234425880216973006839238516165288306115366502289390249450878962580642636218100993557610128554699010020731674483412793535507982699345957918965765548458652142799082617283614590981725072398624489604550662419123586204119310232993863922109631216188488541371549392154406630187903912060286171436504099730151832776429139110637634511238764440765847435570600782946927369881755053064284474059775735915066290195067905058098786316040606177320567922144607387344243855301542109875165583374480705254641932149947624626420040691197659215196072064560818884596154035586658723470302591063721440047067596813373239997855013566662505788846420952095842423923840876821677988679415452664067340500288620004757231222066075949461455218716952595886918936442805011893688690022173054743034446751013907209892529544807519385636055124065958425285539483149072456727892229618497633234422290105386047762783972574928100665232492572136707840009783787211074287012455137814451392583896153594606251294469538565756539912556486391141402095018368366436009773122173404505779407587333869945330126357206151746087129368057322316745657616426504428452600752787605938603885713300390117400173451715038946609158562029074408549951558466586252604865868043306417897459108964225594569462469963782432957558083324419215664803763732700373452143928608492497062060777123567075963112394473269982699817673367575108731739993059873610100213049851285523559755066520375516686331352962944452858145574692584045438193190254403562606004571361651412662316921314688355411375499216099193473855058359680885671515501090210552349407100957616347048660885124347777534004010128510637262556536836146857723369826646159150201391369086014205728424346723110696796343331871032706517923826527898329813912477050616635488320150632372750335356919793746099695471861840945281588874949252706171472021937650356945486568047336265073868632352978317486698191171568547418599507282314625671065454873920101671149990175531702926518103723641127223680361581854510185690382750424299630564648349755958859376765217799203899900332652759043266561880994634701689763633043194338224614404265433087860057875999177571053145307450251374895233764148226121430799254976566654816431811106146461929093264693296937135543446120540880486456846263722810719066203587034559996834513955782657315479799176354459267785393205520289388961151107779208118791199588979507745577325434710064193710477406894392841452629956925668945376022372147523760386984673869383004218360433814785290405551979843040641536757256716209057991236481565866295896705578935020344398070847907815724534746572567086764225699985833813787272951664809903589162094489795442928458915427565488925821662288700623677603448812772988331475434578855100492952682228077145220745705437208535940908049920150488322758301813143407738035171706171030565223261997095367563235214582466972554078848788264500758322864564728640143869392757121806733760769408983790449717300228678594911601767096411876090429626858836828365868721918301963531359607339466570033849644622691451514458444599795355887885720618385982488356890428577233858408896347149949139891075574417885044329032375437657358650537311293916232709062214861242075764484910729903475935269893088479564630070636247909611551205480147605359730099764104584945647428663148163236042638245719291555199159817169216404129050536959167665105616681339201831425931689886908205052402381327500936775642862968974160673895385211760539294404129686518397221704520098716243457042052107897567893004002968351784010250128706384362862180787412109462000373716160961489804849972458674155020501091591647890806543844259035863854151683579911792863314728270845215624885171188246785734469222772375374810664077544633843757896761282002790774045780213573103385431571667702529886325364169847148917305029500661205722414585246262437313334890220872459391838241125414385742395189187755930884700058352034238219019667615574380295362690623303276133715820514076447568664458532435171227088639552510171714125661743826185424933676428978998414681393892686727022080394109115169808521515831008540085265884056808082813141225640056748784563037257047871576612929586769545680535695905874269631293408935067419726836307604467700315626602617735672054597079601942585990551036419858112517250385308186490548838390652026380369601074150354106841757729020302112102084106160521246559491804173170968878043173723073797402639390517744697471438738130210331156300572422487017328616917916560362593275418887290392842224859837353012568386834503515852702628407705124567536329271533005607206608678987374056431607641099377540866013179527377193527969612043041109752697011647387183543159488229769346125840175284470512513018441281228459441377741635579982654049765519710130398713365129758211750785572923003098069713020383131121293900548661550523486508508062118275007556827741589527342239970044487716615624690136160032154345907778424163018095404436208469621862534310334717273502470111013753130543760600843439297465355462916694073109661950321634539634627024462453796472438667144706305651877286081395868720703932853391844798117608763498186957046215591077981981998114830602389739674778818640653742133028297781185224152538262927037535093818459245998759470982946981042407250790472877337885038885814823454392765324621339322508889500719132169659524894802231190104107667183749942977204219275448588399766031203128916950978452429103329306764377940122107280959734129020956153469909617846385256713062899940222977148280261381194959887394663574146828533359486573990780456586525210700802883932994773917918468567766200560977174964360314035124125209880216551146965822153098000782806222839827377344024820407663664928300583679625410312237155912268545983189020241259120220780605813351135472477875799677134821238881258463994067944849105050727243816530040195376303237809933413797943591213705882311404213618073863563063553853714778107583864094217447466744818092851051164062493827563849617181014567253868267590395178454739056944889542067991068881368642229456524590890710592149510206134852325300426498103192786025092456350833912419017545119333392223096295849308669381976937835325253248295333812025931058657395547616622695664559232793796219450770729471580721608104062292793211692850129466493511597860593465007615979314697496145741717376765788284873715270052107657259997399774702782400108693569373247950269190639066055751674128756661908137840587705268978270997247491769711925054455031738849142943577427830203096493566736746482350202705131847124656605064265960962222680618673979337122577380799800401496754591242115482775142752760158708342729524358941190896035270692499138360468308578046255527315370598086808706618153537182806221180344529388772380942683295062975993936662397861059863631425322752929118649830450128620578694065530563113547291511403065151700308345857282986937281898666439349205833495017627548960709998394696243411731183294321503007126013424442824088455039663173899049555085537735282149652138886918077783996403508724366449851340207227514063023113842672021053835040432722326687104259426578639711877633097965709939767040799272383727328113717182091805932970475369682051363076664514562479783235836149879629793362256739586451232697104935262065648813914686375394357784704742554130219690490229708442030343404168651849082574031536966207993199308379523594710715585157344817740701139633830243947471011020795613097239500521351390671263657399637127938840522446993757155834719254177008588520406114960036126009641424455589070670678269477443817395525204668755484833345055159365841281148682283462004165192346173887256947543578712359983276517556911916867842446716134799020854828089822419558727637553995199655796599692814702327913599605636683085832560194052210229261283556573463478604224232765131383473524352854739514658337184454079318438296113981030199956898204784992500855763799535043214766588462532107086060498845679746504296253022177414464423805494011330718016180451412124852591608693601529957487761982198141662404029865077170948376576071703632844062444756632928035105937288463682777366121577960675096476917712843998346788074493639011583015257106637086313538764969738474664604060874169721818342031453531255597687721798416885449536365144081153479467963804743259895882478020759034096531615450055031859569522650147053520202536445877042645638930309477773649374985874110185418823946173579594429960004582365014920306950543949088063127094131762377061724269177074116119074027445178618616828818247021218293584932081082030520579468164444985527554506803840465088875720862015057378455339243951568923223532907867774645491219270603600130642801530550490512946271574101894235062229041126651741487953396056693338839759430640420596152202002103181273518075331358717579348065949284578120605645274628713835872458945868935778539931999986177005062946301926647505496059827780894432678862781895634896119486127287479231695846067910269749892827111101514539174669952936927190993955112774702230274255448815796111182089484892541161525299732543860882755121219265057999426297063338122710637051407535901492961016519768895788943197653239612263292575217316750320672024355168454874002934827755665723304127812621042079948049459613560564028838884859804092183723133214584016744072229181765423928272556369541417946852695110154412958457697376770583457685514750582873069047833432136879739821545765579757495563024198557741482078566107378106357763914020060930364292400697175116881729469743611310280711221091559776536815526435034402383369172966377961430833253349341209144803888184315097893914916754560513425721399979116594263810003817577229359819264817784891365023889479598938640281112337532200297041446606906151256742411903621725028578439075873775010207372142670451544744172599239382114110425475627392034053027147451365154865679885853082393086381472750068413703238291421113525857005135467763893744175460991969072770511670737399690847320440958240369519773940125243256748323639594806063394494342024142730482047414365430630161041032657871655995571252152555510958773103147849792085702666463100760917376885863924123983804942840689882412319633205280326477086628354726247133893942952856273010622752887473901420991193808746071394960113083777044455320207430671260572064305098309976374207729622530861413191737221835925681896858555246807838856212482956985799803629475856830726761894760800914666329252314011772059497043971043018682506886871898188140991919373019461877103369950465117953153904786818596285151115248180039950053096453631248441347838012487440482362896308363145521734119073740461067893586555325257823032824801432282912502300943850263747664337957163602149407668457916411740049114959521895752193532991684601998402345828309857800662039234861852782819858280070046626557934874346879548247689859487273540168681418915401777688464310158626785008614892371083139011686111639631575379455719678796609738158387735366427582328735492615207860269318281903760743696105293648567814917218083974347328191082425475217104279443197895888523959837888330479798006870257253921252584716070682198520368663407121810378166965431105313163938011800273112418500014860344489224806334586720329976722468802270974589931757274162790492654802557575181210562686772362348715089631605468333417622522154496311027888508118254385952413001201377050424896977401844683544551867521535497810517965858487143273713804225412535986411480503727903182458938474595276818197456129131690425987959151162952044488371244373361469943646851546168226327576543208009023848507647430069732633218064489336258450901022601955810162167183754273155593366844227830633760467502364186027596333294260473449501192785605494036635288850018544394226913267830372380946834322591218313093244269260205274625587940267941561155394559350191885159691922262289669926669893676745876054491441242196302634461339886633746315778012051913203461329377797347853481518437897137821836358022703908973903488214904094033773933630485706204680133891334399581156442215267770622132122435348885666570564085283775188847567868570637303415869487263616552154063448527209506081700707597353427049985481121062043315560899157503696967348584041142931322575966162821918179509125913902037740943571437479336371217466643234088432948569899089078146261974863764839452760862117285976776927707528370464643851050959328233593484157041516377264777164034820211074566635291035701112376598129015736735102820434998564884603081851406335137268363699711167707792557478627249884908346359243680562852187167599238055728638529817617235213237978981407271312165313191119972453910392449388824645618146457783730097557344279031063362984992524809542454489514126503125712525741356302445880596856897856572938803619661056845762411066662743131849018177659898359805855504603053421694716170510774230503689429947416341403004163376993446773813741509167675188135462069675164325129189076394978602519006674907903143433802385218087412962515545603381015020271611647167130076951552055997981885262147106933202562926327371331810745569407554966520988811608704293935885785922048388100521713446424493233026561101924775012764750695496628325714102219519915432615438115688446664700002966135871777266624034744739951959197304800051161693667579818198304525583338020610412179133292689112194649505004088138721244907880722178994633414460711238123136241669885343839613789114927119544179198076036662824314782965329584699557296313995015582065041895426159615601235738843295661973375009489383854421185290937038153123368209942024075616121022343511749621670980481352687777878625818518873816077029220964344649594847348150853243654114787484733676809320423272722895924900313291504340182108960739309319577346941032914231299505453418612825498242778571256532360076376858894352695975010257323166987857391689835721968914155252981470162442750152106401234386543616235108093952718039551074759608482360202349627193428742885637754094782631298312207677300503690629752489677027031111907429992317872613194115877572086102812625605223632318202641175852913185819731469498742734379442477735214855952013659291845201692951651061962756700235351851662472854454170637356835927287668770318238633397657458510449274723010181335316533574624905499916156709106653482757552843674994208987986842893380957919504705212512208354164905520678145855866259064781435244858238841945148803588972738396680965266801522263627660743958464332931089345029645640276892675156225827488625709818305697848434404685554410188928541254923458408009855456833607457491070889804761737367788432707408438612176203516380136064529743949992498848593088115721174024530941864345941289772204430647719656936292445737334084645618042713100888905678882601356031257223526140967204717444715878602135982705182230770335175523903688388671792830689763940713877125475297996749419807239744338735105589701754465258188020761701126252886397861668677871167518114288202497719610964307250983941520410012562222260512504898467915962790954708490896525594542842845761468207840838626334228255172457194773013577071484234013488632155882209299227220908495628057640061916700644269409405234662790599388647913327820186246467617671431594639609344839407974567555022813817115949160352890457653869801887469259865877484459123886114190671438342573547757128159236585327620374957727401399108022627539759767123421228418373948665835546321406001202906945521236056652527413549183488538302152328109082687561267859250473721858268989335509343437087662704695323542347837758573738585193323337379826212604601855701133947823658169028570685078487493604726211093408531206154445971056714347840427728469204027705568255993963504540082833232382206972590391646022945855263770158096648292502728735225523005839652484558537161480216123430226661480086610535182345577755112487189384251256776974346916966477859819526932182978706323142605103035364321695748641227505525939904266475256194144570859646229888930051526092535545377246262781481569432228963243405409518339715881467859446109516447779036413836805173638848784386365591154501368401770895645091859724342328874823796603908821601442417696932317932409302267295475671000942119275311667822189640483390307817176296887940816646333833816757575062853469421624604716910074287250367983410376538035598439643358909615215959102294145382376942884550711701909548673224430576425776742615815079618110524898110364051662895559102810297981771945925649435100459432294961260372773061750864334759625496244407339364855798037808010598780522765781410281630313747806525739979422547290969027862601618526359324783092202515568216497859316464860766900785538574386907340751238473605253465483785397876434102334717493762830331407171120545431003170173414303308806806866892916138068487112892204616475325914555260983620652267798389170051124288198754780992578999916992387849099579677533974470320333691997086315814189735819565948296615263384106834647037900495636222939093192672074654209284889182991722795919114271026585314825525244295595524219794688655974621210816379664168717394393570616707517636476839155317763138656291399793238636727778815764552714163865902136423649340704827220350629325538729717104792414008150774402839907420656399225767325179443893788613026682694355610067701855799097246411932566769444155185460066116964675932100970081331879736416848041460207902430097035648982285315660984998156596573583324201337194311305736276574847148419224293815184860768045669888123796289481677822260750513444024643560382547245878042271590683575100098582012445348260887743414873760058864712761848903316865630387505369739611392619653159065492625135403860793058636663980461195123457880344682805471366181131144755075798753039733048396793969429862629767023576008880587180242187517286455646540836243785717018624896662500276147846664726731784670184876575765376573549514608708659606346129543548708705037824549830312526295931137855411742148533318631658514253207391179204213913633374933222244949171202782914435487701273406365834090373270497899275859805560636180830919465789632714343422722385363771015161598269275759458992977179615608918900311082539241216389298299735598279797863879110715204434429901249469520889263586402020973806822122053505262181195700691858589497269138446250794825920977099654417206706755850810936399907313076013770907782381628784238625536289513520284444183759938675263753226234758736694814551272010865048943410220637045767399567427489846318078724456554015800204152614457659739418773945799842642389222001882019107559331754995697921488339571786792830135111926347388458807853805463263745040961436005804953361576942733077554755101597577673834463753216703604910565568221476541508330749071299876499503908132096146315416614953032701957681136698119121653466786814629460201325076463394805582177819756943163977502764890375554246881027851129028754054812151866291149023574513498532264051053423004196842883255902631183362583543932549318725860826747676173897529049570098598402288363251286637495714181910997994882406713281881554822272116133706104575520970658098048297614465079878651855885236676039107524255699873976946254234333598778609327305601859566463284670278455515721970502182534452854970847111302638401771311711613692392348639401114628937910225499663082375452061934334110720027966295560132958954666274901551299504629932215355329325277502140436690285889513499605549207722594622260947160469011658354028344036010673561514706112429679319624018759724028914041047511333347843265023551031743807812272778914177973295782785700633609296629445062818706702358486501996387996885387682238372025837259232207139712659779840988444425400262369550699100697917129794269387300827064814241059840077465287495464103591475505236011789122586139694588768544418999711648003305806263322138546923880158580351354409844903645414626871505770679522070122482022727480135833089852918640543568381179922426412427844842112494627811081394614737365156571128400671786473406886510000923500444101133402475482900730957940165219674478912106077254375200517585364627659852531914270610003670665998924358276643822414511769288422538422352493234122682486802548350711666931329501000199560268291840884594829460846493291863206286835968041884279301126142481239900405092242676764234018320468739920068661889222514824984892997247977472532971209176221053935094368301921646631399322071056318823635732825338329955621409952919673470884244381355898407087382510308232197995730705722503473915969268978941650167801905894543737252613119735632265118122817526173916814538342615691107705753054079280016429933836207675697370253319705515549522579609897711736700813128847017660440428577157607653027905404165328431354987102047291446466777892678993414137264182166294238626074816033851948037513507981187624060723334576136542956282414488171198378851758162053086629892117301860451389447527136549128462612758522461626464936540902844330176454707267455285497967447314742860306269064894010834401165712000593839543547363362284255442106549546058722168623749663425292618977775273710173107386442981163768677911515897632992272068416593092052497909610792032739559082838278555922258890202253833115525637980415009028738614454587792410286134637456808911545221961914584247752232252893385459157310238340441878049762913118915531069082011886270728603610802068056337253396200410024288860948998721429818655080656092290763767753914883426216909450056428994992443752017611938598991705437735734977235617307367368067318731703282156235220030820907539621885174318652300616199151388714070874473616044451098078344311064576944638136243494093847179449254901686980333059822946521267305177824492665214137952811150475409663785664048766160352818507612743738531387229654119106058614895901965155717020758453424508061005293895250750111088886508415297988965825550902011795220601105360084965840527267629503686690200646913753678704546034242853442281430252334122849769696502952550510788388676714024085263045125495967450920917373080970430646059363860072527947783462909169907629142685376435875570381180600007649703317480136111205350936627740898252484762496647481154932406410508469567616385703253724436281038054120724274376348325993766918755815015553283123264514096850307805319974751294489729709580735467873396960357163301053549377098607012235529647439002750302125028676362188869286468500501494363898697989718168118299950953238862034280259672871588268986789755316802574855244290484158208945171902592169141835369288521178302366635700855888028383314430976008695118737772180037640813506245449389294418570275641510292016563395590979494556748452058730474164545110471259180882145892702342987695931814112607405488935181467863891496769635514402826208781841318594076318213468224435703079838593568369693162451791279985962030822607369616515184499641916828604502947062501556934293002227033202648891454508675803619559348505521070838344319630020913899925390773239005597945928263135285416492330163531858676335233940959832334219198208838689685051025404520588188005578416880213078211918807705142864750389779794298962099140815195683944073358092037961539101932100857492614764251128758094032182496962773608299152970282223080834746264571774741087707722723310808678635646056533133798141403220867792216657221697929566551486422048984261004624819626646463560835201482440646055691528962459227560603392615192514571188491911701861262187169476421054750153882473812066100469170869711201855951945146666410110064233086657465039301453771069129452475164729359990102681988779562626713461072693617103283800907755303057293940601204049962873261156226788410040664885467906714255624801167663542970306679203439613767843425577615120587546593727668290213842015739036890206825289501816255120986763621919678271914334438981316142504573010276852502602601226842431956394003592334624369717508660134612525775203100520997856423688830837189766908252373544953495377206515022806694209741714556834535577712071894350653480383721075533397455824971928314908830132789590681651779232290984466365268930080584283290202694272022611377512540374430031102822055380393019694185709098653079104232339370570818911259113847454708881043786804647558033958873326298111831768925840188750872420970185266084900141003550228133369567540801116081127232922821364478014752136101037906746279562444223463254693758791143479327252714335288697793185565370379506722629563615232821614643464043534572015502732821962536702649023888880884254358084867411344728664201716073415573462450883832828268867873812456309605128394297490397517042878587064437750032411969820715931141449894239721812667055940680412593096334890224858794183384915634708918805954962288707794379373196530473925691068146227596014161866013012089268602815892495188988014996952643526819333608975375051492291815466848717139378308498584505170485023049841755748642164774365523481311236116667415485992580087423975038429970522395219623065350063223790040845537128621165253612710416791586654699416283726770545832024093404079097503698345456531388830496451970180891847180919709897723259740365590199514761981099544182517338738865706882221767855439609318314422023089045105918954321568073792156390543537383526521337198668392996392807337276751382176478355144912118636749502185828811172421829957140425464446368414562846940404358295476508493367646346082399992048841235469259715969186125426893512549911861716735541145037359198842570519462676946493099004225286054180771626349834758070534897175060796181273881245051104707545672139726944635712843135292053859839568931409379923966159071486758888132610242407560935090021437371582443723834928162574051035383862464984576454822643359199251362152312811244397075655806981038820295277721473517136599595906440020205489092205944680988554163522922851780508094428303005537323511453182008745365651555311715525581645907269367056364090788118878395910051608932377961392446865467048392001808072037146014192605820682341638396320339041773626445930370284069230672108033516000019282084742930534998761650386971469329731970418540283114330733423600924539895205776300195401140244846755063716619199786398581605296839893461112650323497707050533233666965096170375598462161773766902149644469749854297359218439104033669330006340926260530576163409318874493180999611659434212482911785998274506407007876536598673849371598899045340289554636827588049396018426857620376216601756052524075839271132268039249201137612404164599904005711210474716554961393156473063060973773324240067144235264510905731771272916816790949617505115786560774850798580349908923813630043193503192753425516288263413862181487286279247746143235646077520437811622803799946630740553665074523338919802485656320931492177582434392451627286035264635159291599798757843545225424963088247344787715960008267840961729659529995003109338844924707666241297168470262700199145551990750422911636024003166552706024708106704090327917046476618151034958023756218417857488295604673342989678601523269734923077372220692780466892616229397555948185121919608504644260018754730227819243161802695436498254431217879267815530738167160166678400423944173393513911649773680466370545042894945188678976870789720516955447538646037143906258765169207500363619432039305002628209328800736684626327205962729692810825737179653688426929624440823471454132855582905876148024670581252731888434339304522488757001261759212851906834379831305784271586165434349535196161462118960586598114384028973953837793469560674080826657534495752430314625144016903313767972532488731251722836398518650995893491003783877911127200863733949370358605323671124614090192245865675623608132239147434283918379920991875064082496385205895276122814539797352666959503617970647571181811289437284010453051682118777920637727664069779288750146476817373621536613746813470581976242908767509577937300670320386333296671406749688809422832334687749464529545870518776287047004141609539617052784722093382431874729447692768457363437713160953243691138260416770837562248636421117014271241637082559296317799165020566336730515561014009925370291871737259674000819110219015182031012671768735509186876354364927576378978098565218476327490713553135430318150621837854964720984786545674403935013956051047294551890199475211504868291190430336104386135258868933773952884770627476240336534599703906365658090347805622154846442333029928873808027394398763223051911527242608756442431333204917658503690349527078854063382341752278925251275327189124424306428336305651842224175707924790910921079285031327191290514150280308637096624590511159132048163165921989711368849850760593065999029068957417869650758629918813890935377259891127738656070404488969676818477773082131435407648466981732998170161458959906062878057786282854052028432350439746444531553856279547493492857300464254724866882692164142362139176169671778647462941215066105647475899777396892964974240557989183170739160113055878092646213257100827195168238603567070503160053578709533257764452460019189111471161442057079120035248426710486466414304669049153788068401309835553618884867956564824935221369077638380926273440236561592957554780563956116288782173573959060411110423944050407998612679531409953299089697417585242809790519770538304221129290624784232719417702492202602431746836797992665660902512757722431756528163894100378011966135094297884774402296620814374489321620610751187824847860660091207750834499423174353448587709489345394336831138340580284180177808393682374269624645662685084845212365416036732213732474735919919643606389401274003607716192100103622979152998355936438200756446592217069657049876615722048779253996633843314030016940966144477594106537857501576109027040336466121886491797564293772191661104759961662552090539242510769290637411627824572714183614703226954609794317762067487893230269777598014806868647786566847928473494275878900043032723559792040131129335150580676299479781874126363801009786587866043734736340927496010171779209554436272108812494240864819330946839104456509520573556393701864379636943744383178687233627162322345548932719355131874080366237547030185945889371421908202051340874321377093930900115370096878155246141653888766700510646320915168925166069171729444733670292911733517588081435663957624541152695851831766106781306907451842106478142738960985199129672960197929788830087339640165001342953258785953663293512528120290277090142980985784865143790491099805801732372853531228350099431978306826721651943974436382092336481209984608373428024757598545451323279751312718714193781354873042070868315840207955070936179254080158561113163563706943103130182499389977670635601051052047449025923351505715165818956597821778463100394688381536225343482972803370264690734755158603235997804774368598236371811999255864097093815752425319317000436209400646590755294783172611740162846882236587444726674445861066665629882945561429286294406963966780404414090825213967995494623242723198462586085618047480745536156156244914719335246854811526327826305732454402633509638411957426480441540947908407494867968429132487560241208063289550358011013726141487720152700986857615977873056427300854907157935716221073512154222346535640613645915957070603369213477687442713172154513842610370938294680268725206382747180206899123881495539583623458842145415899593021279876514472536294580639205945690405276599477347388108336296193774787435280134932296565230184203103438707621846421513277705843396923741034689960281519898811524505372566373972897516053062361158815710715265424345200537302734979475276314705844505272353491753351142568700187598231397919338627220375031953857366807483951898458221823436989042768049440683883605246028711848072444122589322617868106345214628117516071423959948913802205240589603294976286710223900350301149754256744435031772444737342107451401360838489122086581552954170458073328366646741832822241457276096098685609288264168063840034850203093003915038256300371411096596451280552438748281282601584480112943026229295558365588537753145236599941397818201525664170669674629603637735087206183875504803567161683431835407722795392169410311881183971946652043299653958142965663926702040573736623168181784625497165602108480752064119814010934267182257515491074859899882066265943860356113623245971644255676836687060259552742984164213072312141119491095105061550343302252176205216478910113618191214792721005582307495309314050438225728499013858293679945727548430731349613272380106294453954375245425558471757354901252752491658394545525981948097380418287271946052968796326081422940916355044350651057116235765669054874765999541901511700181734446980153513727700994465484294376860448393584448377281575418151073085745413528205327470092005274574660395548882468532428215971463946866952224790029816781458259564057547929121412534057830964033098077963964401319325723410072937158597613058648437423555147525373723266913300490853819196797956158930927740039421480879394290252427479851457559222520325692717091010873134139336189750748601302731988809994827270109458108778016683786358200496276406538788363722487651708052452656754846275719249023256519372312748469568812334488813055072738923978806636518194405596582890354339035618359583248054076465936463693202590298396430332689307722737409795861155620651227972540604532944073557853529802162234997740110756326675723576740491934249237529785812280097786481983509594817682998470297806256593549648796865524345333582299562412265485868205350614549727248420664018070251698631046756559328345416635669359644978962358225778860085795141807734650789069192857289129628249887668309072777802474979687768429002426453355689003957669220136898804524917441286363563328431664435736918564551317762227304124101541265252765223957580900234693107176675492297481871592166820190455735078840964604363374978402686824267808460031136206094201862528709523485596733146172026606940749641641171591765319885105794069948236922718317614537371309677986336036997301256522874107336009167319749643836707072585112737810096099440908330051659148820225345037505227996905284993740830147034963639428649105459236542293707567865175688493769109481599354116927042851282136062306790175683349544226196162946470178859746947918076262046675455675760222374349910942613864396718390966527308812097558275908205301816705673205879703163675693675119833551817714240386580674274405196060682249423685009561842153889233970347848366414667608106823038200332326989011027546691036795240626926010613083666699375574611666915352003138470295787029223311391494498766820050658405343337057240120786819035445029935504772510440567950011971341544528384680538204681778051219888358648586736290141829452955208430293914328815527450250882698686609475997929429487454871839933947508925235934246653847366574647756389840670682536347317173193418583498180279029862990513199686303931151531350697661275448965727530752417073931095217062113796753894810714420361647548805153262704124569514099818483048240860621606931828215906315218690359665487898989179095134413644377511309039063632519959407152846120166686170415517915605799390151630799061393833651547563216450956736887102915452843845809051327549650653302177905966047663715928896999750785128725019155676542625312533843667657885892884636927091514389594774146288756298641485943370052654869331796675166433558481057173899006475210787049809173640645717224154556586833225317025813078855540645788659267680214082333495957947010639530857659171472801362275392951679270766186156829725051231888370544493971905380973946896556776355034875981028226151380439603531457089104958121961652552168165640335781778045105849654618250979232486348839415658954517731769650667635592485369970866521584007679124152071506536738499778534708144083773421468801307124251602635727150949703935989398995288930306161946311855163334969956478729751539452073155287787871174784883965381701788775173822109023879330158497172916872840239013321896964731115228480731172777347051024671845127444437361839819405987141594327624939859707399937011575696798012887434213738886718942717576975170527934753393499466653582824522092010145244460172626911187196902362994088982871510298286892955747501500014018955743198029623348722302080295019265611447179033338168771124215052658358153338135972469811725629845112722962785139840943361728003476701222902025526725676418828733472641412432587631880972618430185406414288871173703113034111708745356866355751032013723086306567416003472807167178204356063380148300105941310765423656268827172204764020523460646323438910527957615059454582184310428062599321789292103151761103812631132167049441257101552135011461750930253565681514787388974167129122590277725019740113032315902265232833913600109228441898133944171035552973448226295852932199972442722451265361450643611889796453053677322910440402806902373133229792315452483146352378712053750967452389456735035112452025888187120185778175436977485956614598209609839484992862989044755160208034325467578310227362581235968630772536246583863050939747571056484097452741676622966682730680253493946777067104188961766968571974833870527696157677101623901458675877673958483355781953210796426038228886459423980907544646040991884517169777391617367917265374616025995472472720792762520959672197677482707378136266144986198646532743298011308223711464108237847927302649500778867117757148790107597988654337155968821854820587907979723152023224623557833223432379550315721746680475405893290838403774070357517046312524647329273634009333515883749279791540024596039703702891874101461336198381824142911373104730898308996241801342837376358399478939948123909272671495300925476460307039310675056717629126403239187555155483545799813964201219928625999982381389040802283486954865498678242943842193313797573951445319291945662315277943779925091318353881044510809331052231070450365141858035385312319514333048148270207497560647542895551601081108427829741636228893737494414913542414714642978730728627171394175272412762318875314669261193955060286615103763411370992504826674063901240649690858113625831387887078049764264821434333049923560806238758164777414699277830919148825796171376480875867684831947630013468059161821231545561146697887354017442136157263543541945215750809739658645851065217274621112044992096361093983643120317354140028121831867765324752764044848542971014371958727749116052450983491845243039539982070599504838271560096652615134000859263214127795591539815431228944697723583741882583508888114920719480933301113129495191169323898809424588011120990585196286304461652534355896975791024467833781504761012637951854459843745921174006011868978751525649117124716450463570661766667338309675076767970392826216831373247438902553229237506617492604633384884010768026122696196110855156608225458470616336909053695995150205815871510490176629037475990422708716206953783254563051788228847559844698524374662507828423389648877858049916450845157027219807921274496972882725702722540085955605123836729008587164328696966848518662268820293387573537220225801070858028693436130140407409011429780229213270506515512970524635258410969253991488827586226030146551992620162883607088374375243821581375036752537741966839168466905588247042470231626918613949146887051570017518063709708861969151117426513644820638275479645965059182112447686542214976655090898382268940974455746536962749412968252108529150573930477231819619951467108882758306255458854947503642909527092198131225712145763943567824356667844384269462900696393688341220338095838612787890015892871676994203225015611322829570333140161178311227689697005225922002682599116746168610366405705800194610120703813795175743368325871731614396371472098740373378701825203514431542207555374335523764654436779765957695228362662393374994258837787539387678266461248954484234871505865918875358205420433846094562867658890894011653985713393555764145692676334528306866169733557880160630894902225434992180489560338109140495447532664736236276922464403509994217341914649161036576035506609552157936692250754987429464473620487403925227293674767244678106594715892309792209829110047253855313493918105665180643623239810006116458713338115017551650642985469098270496151818466064688568047868690638211622387305465270273312974692707716276055781918237417503316510515052600617755207271664130033617513024285411509587832646665634472719659115284706397282003219493330390470182961295111501137053931441017859203765459870732963240507912953386918338964876904471784360076924354997382953211717027379959567034257935327467792101725183711868951673515538864256445515966667914124733632555909415503957520472313604857310313430494170278399520196550301796964570023974487905315953187027668463130679544685381466391441347734565464088039984425251327850819966226195258242048029039012058026492607065670110239417911680038725364742612428471482925423794051392319396611900577687945684059727446419047841233464275203384325444139394858143703785302649520302823156107106217097842084467214006081345802239729979006389172342922956712932996215367428373875975294932961484268022513960816893281351037103027442975462428000992814988115974796075113177447043851658088219225266103128460116950622987338891317595840938006143097463004292295740188872546562105430271074205452792825385822449377440392372529264026203764376387520731646201758425981298520319109346027281771532656922598914289315358118738578320052226755236409682992429161173477244891959322821878985473578434737373912085800957384857433810563259109886106386296905879403474665395770272926649316585594682645435770570018657969757380074789208231544494519982879907282727340667824434519378620102846848422306149314152422485777081360971676123955213768805828204136705193724712113730368922238342757807678576402890989532892312943002774693891630243777908858088222032435003215946224865775446683457015181940964385655988577680807512857786440624583548135826897818098303161731661611961770444034641827055277183668527261584707069751275382870890764151164907855466686211394923903697372309330674094009255360436201737215647847694622265176050327360740137875397836428708997524719085435830994607943865551863158307040000856713380972504101471647950754428073822713351932310555160813982004538401849047169064596924611988555016715949269710026759203223028649300696333508813084463633534530282799392523291005559129338964800317417732946242830036939426189832778401176344937107919248456167323670135893494308473816366604241321719002512709395899014351936856623438982556884466422510668835597534699578441374367826175468121824803351582952704126810500815260400499104058011350220002480235224492552235471815818650891950845394133344069317630393590319221410152686195064086458739279811880972195143379691160271071320071894362170229628267708937070523367238579710421845265130025627859044209068931691714838072884466555649748592994919549328772835791569542428920573642577094418190446882110275429103052896361917238618942921715819370717991648003524901850840850405646090807876283154686179917683514792827311890602861847629362139314865617373257771345983678584629924726351641314638759743906754125554155765457235741779019525541067483171249382227336667227603274155992627350839018758703830883884091691945197744471140188245785394050777392177547620341910115816928810468990869698770631035801624632617163703229794057130026749547813453043628763267107135872173212543992200893808731586625068469308626063613609946848009387272698754391565323795321778854332044104184602029989408981609702795652449529402016004896413426822797129953467539568290592485522467378629864108296435080088804602349157564901543893078627112897045450112323988342718245545491254425288779549670274305271774277640016768674390985316147093169432859361234310318728404492647412497851021224085568818184911972994591199326573550010776777995055039940099654217077375015630832889043347778115406942177606053933869994215853142632813421148664724601772345080139298845120402798033550071171678225020086725444452768208200992921757961149148161953866203402370567411739606430125161550518402344644108396724108986757715351530837869665810442646098769506156860466228178747912618587319461353550869000428719014562662685256527213716285998560593814107707218268768003770517136203827846843183633573699096321590090217104804723296933487274660898111604091621171826755957116334973227761615982815197621126332922524324455171927802128654627164879219552201765863746341614791756390802254299615397688540156223130517695354561337407639932932139876331369529507897512222017827327537784429681454248697342261009397868631725988775571977348479405574672133334926597154756491978097226333458634542117871075916482917495844012215526096919048740258095086588647912150117651403036292475487596141452458646356636147184673362576834219944973274085346062143078453900900367102171239753903283346088595811372161736047417209097983216360617130148052847824376784752546844320999183972715859978070443553558065606900951298824405346705624392460660544829989523074665738128525119834598101510089441374040668590244553518393106017983220027477668725733540636751473911058773914559870122057244178549596717902551790755896040760524446531980041445762574806520709441331076287314095928466655347090295578745293742193323089163487559448477467147205296074719736893493010951971493992508231430514601755786363183548404773850425052921057281228746532702103262304693159009183001385493398746804950957235342749313741016109822645420331028202423823963053891248206634121367551452189258125010482707451043075248578265446092250933721670767456206114766687683098159258428205248534590927831707501445364638649966835614919342677464242465626274538968227245868402598485790424220408493132801592060179473323215394847975782915621794770643812587933984057390333605379780642013188695024020632448687098570209109081867376477831336493715676408578786815397269782968019627899800342505429437798116814371024542038526431207681504748181903043012869579199381602377643592306914676146259651022095673238348095876641790840594741372814123976011986413840680702386653039422306940525603611784118682082052150449650224708773478032966585240135654816951469125976529484085724228199904124637867804553003671870311810378813938620895372344131220265214621887500411639175725667522113201703673558003350598489765237611280011215301135099043293117811175070134498934535537949077916150771403246045351046645216639393177213657904380008998993831635449547986731549484953538315506211319311308216270863249674406569985033609406105519554752195119245431425560422497107926817713430873354464575234404654152734139841920251971007541865688401363409035838608763750115127690289791017210569009602165918714615552673314417990948959733080204895030138157965042850434132934191786402439931477746166201805134765555143732418502583661330011931348672038517988678809540916285705400851248631299636609154699635929641083273784150720086621232870994926631972762512124157100920059656461449312280991159512611921068355465462847804175901805946909201415377082378998633399344794636011636286231243524607983493000174403351661374778332052316946898448785447053557446571284905807314621503144358879840838811690249492707548950160464069981419592665445565723039419418420796697814777717507039597829215885185718902502111397385982670169110043795869153939623145955190568841473557406490533014708394316584950480477577495564072492717345875174743441466309825522308085062889916458058441929798893861760907518794202372989276168222536838172814939248518516970233817328505064720410785523873290548730776303951160359703137167446633585027446344566806894747135828320018067545680898598917046778425131410715342366395585875652811250328643048258134930132382110025533970924869772500194096347823584115103865035745254737509968271338310628468776141283233315003003227190797613200539832719117194030979906810895210595059347025636168730256322212370191637067585739786489783813257338304971619681164397304638529706427081217883832178624528562739864360935303442754887674083312848703936626062171503333273317245084084946702691830988798079457269873923387358640359666252863951514862567188710225215277054128030562335057732484578225227951332695101016795216750789578856096287286008100500216483934669432005768433630827954674230508978918763059762353753113437948940715787580794156063709016420988452861200102408975340244407877400646263517513548389711602252770844267261726478346791531358677821463961071476491061211287317908521761322861615393054506730049286549230092004973261456135745838521678597577688513663491604607159743398802142086487784774652017019686340132347486004334377227588777471633955254058608919808861060728081881243934231470181210858634801068044628906687102550337421726700655804600373787007161176437203109637280381875766170965568513764227498969372442978096900503611861732192873786555077742212701179669951588215116213152983873317572314391466857201759930192641568876051211045551078627858368893896208219884714388655864158199474873051977274401667325788641991404432289966061179468560777172242556285723155053981246369377751235675437308046445798526744539053521141755381638887785796607766665383079140436134082766619967235271394905475935314864242396339426698327335000633231191459386756694899140059438963631657578419096169344105206620548488239350781320831486824088224496828072114617456004979988623918204059928998773518306413122455231502246478226698482606300567942056683716551060023664895234117490535265998122129770131390059957187697290053714618971288791969846923310538862352966811675785558930878101171023693415046878168222967123429109023673766368805832459244200809655857536672702735652276720483815505405119974211070707468714385190014962677635299269788760096264122276663670240889983489763644103695595696414457877623363070014856326235085279017825329008671853428559434070058857284738779579005993492594220671747562512370720936277240171199335825015471130140241576767925557460760752378223845716682564614256524392728600867525776465684753123642988060504029762619708778370281679185916270813411877758169837688226052428743950368307337468805011001424986732277669980250459790687405756899158517665647188182411164033602994667804729511280094057169525594296636022034214773383647277203555092219752835872940247002737919350266066839583217840864840326698338893188858642985428208003163572062478315390599632791233940815251540805422286633536878187464496937509330101303261572747614204382407211274346165375567074300925540818575043937183053298719575216650933702640284214296696259000645307071118404303949012447068480080789643019413769170433763567668882203695684316635780794554241802961568053553884707412231667879471619692264592290410921627837107867391278041080826967847459815235727179751800658766332214294036853467202277927049498480344673107814643028639564783940149585273382214975260554495422113853738447411688499636262421401394710127731110154016366239249480225610779212629156225155438887491314812917988866744072486156878489123220255756319843141074634252227488805297744863198120875961340022717892084603434166935140728719839012475179114808364680012830085836715565803447292872499646083433117778869354923347140360995136854394477010866201477621234678689815594035707424352612385925696550692030446894397721324465523924541228119619282809099572130903335533208448002538290429625504542491312615710894805826194388399875089838646085478128680284607188213201846310421199591952726912206149607592057044332828702604198087008578928628336196837167542278217879120241224298472380675924424234141453777091408186199950238878548294905738959579005829978026726257714686343231130766288119015424982467901805103738639119999418142725635354014932725748016288762389839513160918621467380669233661696770187423174858015602210113329887082715680904219640162457645737789660357119528578306694648707490436942265013074199831101979767130931485217954413351219484879576632473829397771063800727966737197806459473111780992048551539288903316066550775569208560159106858507904994870793017945467163045139542850137759259359471967911233044623096631964433641716043412698339268399411057218247867894699548430130803794102159605496102577758109608605547117456903388389199096357574320033022128800952177438975347277150646598741843840791378556750570259675085732356065693137888321050868435430314189585130290686958707632806242124053595831376174499657343969661862414045969985428227188700079319687391115194994264436368324941263962189857701399028636954160507641579134249834102342539779971675341954647492509308556395000662304895369258787091093483356038740513269891015066369541974603264852338050070157594557275123597763029113851371919739794241471904181165484532393405695812130406359332715161763885231320846891739183732970407871509238299071191481493145118336519301587208667419065243944608744739920878746525333645668575370052335537280869573267217747967668649455458863698826086735794419752154613875517405044186348238069473084034815168953812066463368108610150822629218883091847537513249433071337683441499275998694925818751645983946177783939769493417752416913123845460452518538138112853468118399170563741095574174455684998415827538832653839660561404917783502415927670553424636710842747675913672532848242310844627506016883808584652102198558590444665941983750269908042411865207436563636980236574680422332400067797311505969437150328613738326298345773497547033924757930847611807562202910931326370762620390213672247398585633159314500773663702665943146841604325348300133818580297819926400030896628129605603167826862153051184518006870359791836390050555955070075410315812702270939728845112132142362232801225680326587434587968946393919370685032976749914436592088474786111548952821627691956753257417611144825311306112761376666037824364104382561785769355831105884259021222431988260227219830849988334113443414646216766899567560190136150895167278385447423715854594429211057018561493088751833450265200097792741801091727564560756340150977524106828182851856980789982250426864160837948827651142150540956273190898544970433579809827796423345175331563993120630703720583569360747855180248902516532284027950435718252586968730641397922459262808363549891428561056525301061988546730118920462101780145931315614517556273080254835056736930001003389283494035773815085667080337810250791903689175696124294030535637207830484783364816180476296094322156271934289425700654712134584496052197108953706405690064969915006701498586683958428355439026384338845699796524921197340862982338593292465453458380577135599118448341201925763518428086924852200995770865107112778993701832267020443341508874196076435908313716719940534046180422891323419141643555455610753934801978221533012540919228154519114433451604432546065008159503656271420978105517445389424183472476729382998412938074385214223167710081126256963401552853576966722324434082025680605849124841730101164035536099800915820693382668063841153458510106926396974270716212988015478371073721654106995976642716490889095688667515807624501329739174036728589962207255037620222653670158455825025877133670785506587901643080278453202981423396072127716123995436007263662370668085420685345874523393934348103039143572641018591204391878141844476206644977738806965399627509011537727461090864059123469123507383788530177505673730536551689720505024293742063769547779780001346370930553640475293254550276667147721347702470367490110834532432802073272562523664378379252746199420486495018779099767358648992232430810846288245722100110809157927594569273789266604761378285061875788075487856706306031618225153203519436512105998271500966311390182304478553696070805005521872970960744922397171677264513477031750342233004037496435954545705120705071901046737898426454100084072383861722398110803469299544243975187179265504847993942709002597547325754828489229196278905170730546454380042746008149621840740101494544039258607373824981383859368452293302763719830849973191739712325930587234773696338333922046252395216921865091107321539434018346479733434426039377339955073523322572689272717696911154549602963707789980821396614411700662853120871027823830673305282397686765314242394654979032389525746624635769193452354981719910951590963427098737285133949252664918265268004370011561668587830832758569174574525854112007579713599818146114302158157135835655483222914665123795266354872950451491423028120783244250972107888349325963953285507355435368674736106620380993982967328972372939439124117740130325737479111018929431551431641647252229632320800755385258052723706852522511015720698508521809768811283657971387488930427852143408432479212325049813445700405065493355861933250418090613455018849364165217752916867877321442147245823198318318211934261700044057743135665046854254762094251782425822087063753169628470479352162279237121384605036662573856626358961535017740929116075227887308503331230134539134476527092343003117706678338706184420751094249143036598201836164686709928480396034453252872743968463255732458766155275370548264412850253184312002255781557328148347465158460926859326989451671368423468119715220522412501311773158032844846134048117505430220926342191487189349759692144205522094499761698224495496885155196083090875026116294639155491001430504536331874995168065079700454524931239417560556834679389360784473097408228471806654305658379959339868914975741713621408264774176597452265598534217210524075424945541229776337360585729121196070188529742030526432338464548385653569506043265609002767859490996127344315558839457715112757459897899056543640095805966471356140086062190981782948402140780698074891467355871677662177739854884617003869722204855911972888936872715287897754899296801361653047731045021574649191945901105442533147090940997599333636999160408603296391828224844661219008241453922048776490580609130433246282801532503743007911824916568667700594411270088440071920837430518084306314136566504214653763756656604139119005437440160916448230900246483671615303810864941949283870025145224936883577982783738722121588680393780561582246952560129204954032816439745857953685306846533052889068768946093121960607364172129374226586611980893866664035257297674469475733011826728438654219073653230780243332576226265634089045826363742901199676031325155937149033429038464281151555581838636700109505533057536725185459089348002599800985892861255710741556116970544344202106055772909747444873822572212154988843828892585694450333186333983515695639646994805606514748195948546903414730121416207154578728856186472824497187949444134006255653194570389672487564956727163457708411719800548029175458624648423822997868001796744893125214306108566513197648324156278301966767255032617073605730793263938955841186884339302199703667503506876147704148672866204496959232456584516530478933788224966712914380432988102165700529174393287838246511298520140734949821352528996190233650944580513675440544402467766569122070941235470933329885423563144493085012917594452993820516363545802862758126181460981812768529934619634103443474694078444307185694208336922577587507224274947999937274904517673783382120974556923543947678550923011426575763240187591924558161372523794283044936564089769095959617599824847595128632150877120193511840421530292785413667338315662944390820478715778229097867621362217024098403515051270043775453014882740388252208071227988632592423336245686479184691090130843492403576043609795380319498763018357805804795148855545532287146605884730303016949309109552065728244869542921912730503670361210924259413783300878634869983375255847272493368067242925977651958807697924775458413576334168564744488328227325086878731166960182297890130245153274577082043750088963634823364519480570205401546614041220350119359749062966171204256165836609120121652903480404531904215871573492453483778402522386933638064294186394615167108529757443425316544693958952767593861718954738349310414059513884696829777560776522855625718976577590240803691800876655622510244196052011504047249968650310607878491621269470782961435333520744664583668292857845104193109110443199586413589118007368431100504384322348564842251509241643948589890887657568146280119127875807567995592737461352218621808352833470016585083319296548872961686306541298299032495479294799036886031566700446745758228760188267373132006983127187306627305310117266763683640538644124313201196835624443010266680327555104871732380056785516123391669100193531675629032777184179138287798800360911650259814850208804656074045122968271815125826794986558600172223065640606699382091535972173291116405675382654382161930941150190722306483530955668179792259100213967976700987959753987676797610318581738969052694075097556554643363226437899264339821318640669809748750951853254034544278236013759686078473266098891801541418177390025090532628529954822342249215338537562997036669928294116900301536996322835556175195425733567953540696097826626155382168166905610840669936342392987087345827450106253841294957199016358226118459448189777693025375976117464966141962940945613708335035963598247311676787052404160548240908158633774340746239449296132628938639198718186442175116214449762765837714939721488366945937096322515462033620565529282517599476021362900416120676800405304745989075002361912413630203208601971555874280003395655601960601425593599821783209846084773961357947127351005716102122086047372928533479850829009725157111288660759514564789494588707804782401131660418687544959609244498228604342041344128845460673495144585967308541565271383060614762804219920015091249191592008305559578916683901293442073489858962884549320952833583448085092138614542898709427232491670022881921758622623439934464217648912435655316166273112408652951299922551217247362380039221202555518550491099701813517464427614618889869716080436091742592376780421811518724130994599795017235912890704386991405969913586712567655931235282222426367928329319231125428351437217077571082286856797083585447825085186200530156007528302269886528250505998063227061986121523918670118007284010231820982173177749898112177460227732203623723363414149841205580675904869763263826891302651796497776389389433297421849382616497174554757555054563992870925043566093743145499466280867889007429084659966569805578716695764607144301582111487792006108099327790698133971435330129206353285936307322060840558006920085650283347557638304008963720517342544897664456973408788073480911887171755516330733797714612461863435209323922285678309731300595597851358549618887038213436439207600545279560509894627790660489985846166674456666228937663779309524799526255887415453687294626260596021443120830584549346908356019991384329970395206815893285350596598031717098568891823039708080948086796187400000022001169297149883624042499300219997226799674665937514956374256609688446032429752530278495989734604303610837841662628089161848327485264293051016923622849734511313098783202943122793981607708714731434154230281485683417603839003148875466977278097118407534902215973469599070381243773826549801306680289463140895096930081730740627989031837520276403756667165238983630626281060054835692257584275734783714066013073051807287304985283389025422574183813455250210050265205070825026235379956838567597659941300075004744339545927342140842030420499098233549631983511503324165952921998998675562925332789432437508113856886934375570793753845872400437926038670452571007578127712046053327087398398308101588296795586908497458555102458128936327631320930860613308010381927454223117525524566514337213140670338768899863574982627704809610534361585188348027513912322443628799725131740732748742575497679876667774913612269483645108281788566120637988332794459317822512980152129217138294593527580459504895412705643186516569638815883512494802496435140137444548720131560225113178946430945958416927268843508447605841246254626290605729425133025627096364827113994400601446025736236501087423520279182434534348817004399296586412174083157586083795150631049139735444208880588216101107249158251980098681343508695149157438401341107849091118912568863086371537608167747335922116734660026492768576434123767942289352808138042690730570755011773562988418626052718837883684594013397846754372147624204607626334156709462849173719688176688416924545206524355250016394448588265486457437414144831206813499978112333023713558427567368739025322163017374526416552528722275868907898340783158267737553453292228664600228105835584785241725869085676909889729362972166053602959862341014185228640025081978257126422138202561262969148786041154394732331016875750378362568066506770090560585460936332470786578338057852135287147949363858373599171865245114795801877909967095560409563337638313571432844423676234519233754524248092813268886577826568306128983402545499869459367474393545922723467957118672613939161047662363214986348981715438909788646368979147015502768848048304099961352615727396463391735844494344110786611867764246065591817743279945644014879138162273337735719118585955139151525530416034482303791765608059421063676969767953133567510805953672648460925045173730739791628855157955284616375020863780197522863023324349858538938098217781502689294751075284750453204504106439616519414673844618659691918843992962753322424022639658037966695129271981661548270355979184825259083789007955941466584497541685404850397756078215034205316352208175781573786458799654658804782976691992745641734701703811376536502191888002700413871710952635674012084910592079445930907051318351587001382292630318451285957813795764861434575850828288310137320618400556528320755150932254478416822393804774066349832401779464841786022158341685317874474404724555511925232479387637483249936877350908461587885748763767466274476516793703831580989842206279464200621913128119005071472957932960639994179693176578048736091272550327172273882027423329951632858678484763837855281645875653057124165526117186440846405403675423441999881843156068868162539277540475247150331126693018112117417518792861756389292031243887497072856401085525711389025207353972874669363675898170228037280235498833722170982629267138116189669445609932344883406872733635530102846704502583182118980075881113657841599659938284556824742889229981533947347858804611469875997302200685861858126075392704308197043283938634483378290125419936296314874716647476765570836994605230771610710543426503125756083815936677986853814807504723540163078520972473011978797991286893805651135626414342001480695852695361871959237223999675333110751314931186500394378894580456228334430924373677332607106119010409873390100689303670084561611432970672999039218130000534845488742746680033226644669250056335942909942007335784517455477986192839830174808234773844088866892666392685185596441892999648021132451622566579373345293193055643174510565935750045286133706620351284983237923254403208360849184924213016553635181933572270686458661284174768078088003283869612919508443139219888930915401543640744162764376430909443079489390835021570392764940039698754397807651913393870894488305301356787913707326161062338211964051365824058867425069296223187462353300017049057178179232898590509062962681831285656490243596297705977808470610205542400920553398819623807768999667428033429010566144883556086867060356336192026910851917472652767339255828261237153559475226846157348725404387998360517002681349889813866693796098426007947444683959548338908056130100422381139215441792582202800532100791820107611872279406059464207662460872281554147593417312456785774744494613862518821600933572094961140729694084257955464517272040235613168081623304296159287852872352950287707727818296779529436612136020423714724143571048452556926383744141057682090573913685254636477144244934355318167121907634881445399335575444108561213527949390124571870226663737698227797072964088712165359194770616276943519171004454990906877674611216297946648392619515528764335128784492238023226415731064643305011984251871613996022706340388771664429239360725237251061780744562620318119916974081423461480649518534007021749510187231403092691669275794542922942141301978863112995094530847595245799794865928537966577350043081057978850407830918593192226214705854947023327447346336662296592999115896908478083717759988510848978136196421669626645864260943421323402952339397110209926413662815395925511115750586241115504636078845362016664887842364799376216385182875506233623050790689399972395583718643073798011983872133745990278231503963041716137484506679974037726471718911984299361996714601285781113185813084399645835978323737052472856483253202146434470628778676781465937588986006496871708412080139855063134826146497531646529636916574855121213454029853117380395001198265395647319757341779292181740833684951746287813088184800527505322901034540906343686710004402743936114177746773822313096961931944420768462962960016603479844070453408914689275019356334315417959981057984118394032175857416525053019608697718137022722556592826286265870696949847644848035081178777630841253577069253213272174126433635584652330429942961924962360947637712441047197443853947429718622112790148185406133692010342065825038882804948165686967745615204653672312246720450643663470349161436778708662446727176733112533021933834052052463347664780964826272198913480547256263689973770136205281679468667474484020644256466460856498293688248995452521167393360063729435066458100614700841569262534459768311528697834864177096453689184106995859467501743793650376376976375730217100671133029221302005545114963071542629240402944094153510266388276696266048831642066411381264601254997278239326584732554802585620013012364657770854088652572102023809584198513529457388132407406137444555777582803819239301969947811301606688874225685404962907718426343122453904192863166959780206997928150544663287997894601513348643965351483195000939707714089528021101921542484892678648041560904586642113523215138733097135938354724560782202630590515179750089745502508338161784839287093300570966562519934221382327528853809433756801867779719894077980393177162632551504431531001427809892256888203699972654366277976119554850277175930525225118263699450935141230328168968873529796500257878256357128055126678228301614398537095235100434426634466225784653582250289118112787984913326801828276398265982256132212227323213957268212197530279742485321491644416890913460054757170699473223262359947210553784383302162125987243876444868827473487828569931148821113281311588514258838716034636282361494927928998820841590721940962034416659668674025190955634856973640999621026586196301500482063384322470213618567738436466507651200038085416646297095872445596258594871328897333489732116341841686141986451798604948249547016026873368998313060224420724800191135025938215142585500836305778523875046371844098067044712235377820012539217495339031561804132045310240953150481019464618465552514014550942085492584403042309138777864191867414884337927762351815915056256801246177251140501409446245663900508305407064145517733572289431311149492566165438308680493909648696236397644805745465871885285612028566124113299794695639962520444613157843563096163652730202205045883621289547683937426243436417677241449277462229084662608649511017943921562352652956685419822481440189675953998787756788534267665636607228370068236986375067097011107010071875706647247335484174510212781447118932437033694841284661571860959899360861049499174963497429895373266947092173704284410080034096790460508884292305310741700240642726565412573476940081246427793831198137158520295586647590449714595948514966582427697570290843690940175322774356305223557459795109460888830195691866883526892836457048157722575551320313143136263956202302871420630998181096461153235063356532815656361005713752319623935703931960879993921295536939704042228992282774356244840813889594443930342133465312120000807759353278363476976525296632432146639261693999830255301387614494831640754686111715007164721510640142891256175107079495850351711623871767792687854947985780238180329868071328212150310832543314472380493343097856617042143236226130905063868235685032618731869442490672524191565967151093707184119792020819136335620834192697200439051575183657151868122327137499849210390121947475428874318214568958795978745743608642142433216999510930330967232428215625189542986022265379225144592402102783583632892795483177964343225018963518960843139261196276449371743486562786130793454024058283710211964283742403914529292838227634473786845407970190562364442547805160744623476415849717370410725563513946902512677698789488098187686645697472495763117899574353470836533750663569012565348655350854217610150132360922390483953711057820733483029267452905915036480073681770878182910508752641917047342450880166798255688345519255295910216846605680044650371175976806519454237981717582920359931673878836299524005734472353101719284882819420666113038661454216097219111793756118606427659299877581775918627738824672210611813510265491229143847200131260888494380976253215031434010839003872731896515535017713353900396748276507507878261334418339089498119113097367406966704240944542461166882154602763209639235025083457098115545408241014901384962832785956744267415403022381705147906648784643265387481813955049584005557873826259465308304644098887564680060055918602471008009437883784126963032368319350680643563509259643000087253048949974180208560343620187639943441627315358013458339454037692247616308833245423428886221308473767930807413530570571336886845439191132693331160541700375097701063330324366406273342473727135475802611196206669149994260667391796608003592747056559088986339173427853605223239287250777832738620990151481043530697768494718620808085111748548721510991676688989251396185492583918152902256143393602043133503263117735477830375345981816137385728484394463918412097172615420708497243810633069020484065512415643914724118120677169480897574924098223292894170635779431883219749973659292454468241526168197665553499603744100030177948891176489221464509587543756960564938848988990609980861261044451745020075835821146183111844215490818762681819276952337438459135389235184063702064509983150935690067838369249984593932350261868006065584410837077971266802620180702892723679030070708964657834685996825126608465331752817976098248029079769043689153626386336580478500627851263733858993352236259229405143234936952569550243184230486902954504264129166146510797369760605077086955586325746400326487655877657929576053476708511379381046933543861642457446505162721659093581697541694292898739308456370474084057372183271401865238942273358267602358445383506584727363410350115203098602887250965555849510698696076012054323601923697635377162352452781050927169670393248430340507808129539456115726725276796357636452054043207537033729475598170811093258120995200767992186560702350527800266997775757151479467712474574029424614214794384241269564154366582159358561913955840183523187183543296492315954298617492747903417458122654763359823859687982399680690249607193856041714648233632490947015916304265063679175807832446680040891173307553418415498125472236805093952623411446223293525690491676879418663234773432523527172320853316033143485757231230368800032896208298978834754253494446749182117229398356113906720149754575015893347364746959741013699724999285123462589993942902172143921480390454801402349016073684265837194163519443200295266274930359910439942625289142901558074231163619312253718024457080274960029031694972564565130497143262480005182412399235359532867899606845541683267815292595080016371727322957606884228964386338630131571362969229013167967516848789912627465743594920478895924633372527520968780268677676358695424987611148833394765746474395206524265483333911349491844474524465163991972139000034123203587886145575763571662409544378272297320433437168549974180384190504355321088803064718068319698857667775235729256743254475291695445975524727187676506155486730291283168126600370875393082890155179048505716819349778150082945653334171678597196277952126555661373214767813662088954910022551570797611533036875907974339742769287109774197773134215404196386691384606988168413412209350246212652258583312877516765756684328473220545281324617407895289629115512452890197631339757764018855264412815760523632811042696766500353406089749310194559525228080335991637788304504943728265948756688290473149798283204322488263596914843927067926644435400100754328604236127977139749723070702016503381380944672915796436327286096079230578567846775120108334538751226158472081939785225795100704676612851717325207684981176094258710220030906878095339379801981656077905653488852502972651418973884266507612175970525894648594338188626900364431536606110402731750593977246814013407274939894773627174645821939805163649950943955306860279830788976732049197861972451095128358109289546498346652945271022773303130685037675497836272289815448300523209942133596517930909451762732496404993097884794425344605088748872547200871984206612966690863819297392692553879162725918459817270086026873935132915103960713989001928741724906898285410025795212332119874012699978246116601423243766061722835741760456429380888459464855351622577088696104825886604452838603829829061773886962614462526604378771871513842507753515958023832410035229608787194616101205603835602525752752288926028729192125112170155598909138523952767558201757032262231852058497097486164769860885645476857569223429566650035569381002690152204879300758463688941554617983483522535855442181034788865156762270311837417970623078365198278880701197276778207960374219022567762441083474736104997880028737100387035723685959285270592764989338622653297493581503568954894333372937428164833498232577576433674884612840660740796817752137756819979522998891692353114756188715451909809147178245413078826481179879942323327941159306276032838746216065579291793845048801343301812187758284212933021422885177089601097041237755353753829278631758190063293865379611186532569523294202871157781204697073519932397040684537733481024176173632859453963400148828472935290378118316563137751935837427721283949862467472997657021870281415623089977706073357180846604677595455855138952038841332742094038828774676728648467827804182021446545803120115021947741486284990617082148225502476222271740993743897864521966933668389762689131820288426171576076886242441030461631634684123555856751136462985698915659789549787521084923000471753580563349327721154099882346973381867368690302338492582155214990567757375675248970034289830715727891278587345414236284204081248910133790723182728144064226566980690190560881911824922813051086503209254585882099953688266787924190528471203650656195294207739596771515081242213811484703372120680346777207320085392140399376493454539764451559326421143638956801967334600133738124950214442010416515906916929901848124352080546619142678948212639401030818248080771435819139898650960172688070265269053336823631440268512578608705073608480497475944190650495529939345957783563060899442935012176077728262996943953425239046363019039130493275923824656347497255268334097159148834921755260037790975498011987697234088347123604430117982937267477552805885733064859557030173727289796766228828507262827747624001918641971075394146307688148739815305088085447076250822159181432351249812598013281081774958506374461601179090352108313037388809961166733690410276459162670050858110541537588332716907712266622867161673216340387660699886142116904376711971042652757395785574613560667772180714648673464328813159887168780616417712145788683953626061521295863203035026396840647379992316897609144877348166827671531740967516529615532679133604260553287279221001711556134399536023022466747588061305565559179527312700267740673807729820066406133806242535564490627061346105613841513896758305927973554068196236642724467165355711637468267192671871402853269029796591713311413867947515261297407040547430802788934727167136498401034707125478994229381643372233158215158429840601238041544025506121101288455853718770048822232235618442329898204442017199337428829723398591974737239336544148294681246692136614535167414536034097864153363855484398945502843471620482828053802336733147438772105418062781600971652985983683339434965218204161174828612991800938738121003108627686652863970016336073937609985246360027436377105749920946178603839888959223258442134569931643353213036002443063990939096678994375866721426655785779690436262539259928668101719138691393133538098150145988713188328572166012851112021795878921644323987172902527389522369165401864572014583356514089493480275512712002696461588136262722744247033211811000014179029546272453113668028056011685611364838904582528136289032442681716619813772463542461451342447561621474058378531268643004850929371508981903001893210894475223827360866490490862395087857033844468811248198870741819007979209700811810188505602736373463806487605787393799403518293106867592124201525369751115854159554726647838613115144392725718560574937263869981554072983532628755991195742658922978648855259682512296437100957041433375126297023869716898439427103647907868294418897572357494768191233333952502794578049333236140390044309812276199802933630933528896423838344622002836422569790316947777240068774085839036115383316381117688009955841106638855102158443872206502594344996928807368683709761131243120337285032178945505967505116080541907948428677868724925844550109902894152371445313064741921913729422090090119793089006903505137468025740270731270503927574114185112666370487049158064672866623853001260766254697472621959620414387743508110728530051098014800818881704940869246390687196579578382658277155934562785803220188057000356705604920314457530066216048732368844975888045424495784315113071845736019641589800449730886410948518389767327352900421727315358596456654444972614897902658396750760241840973220292945968184162746394097036859757426986661737521869291109043375030895537132294099213756823081199415494854667617788357112403980680611353510841434956449838737945964713886455245344088973070449385543588119380465394451126930069856070528188976055298453390306874927838221337910455343443427922865766012934428679658545858528480046607530616248286897737084813412036364597440720472776369561712100604981257223143218402056447540814576805691328420849302144890327096975417094670109337068582408054115843196702094433028634611550178866180511299136036552410358661382993217925564048773360795227676993267292320458369576898448833468761179416002209942799803488879773247876375351730467939330183014327844739779637618913285419171565563008975613461763518706010585366544570800750677067165403491541644264956015326020049994848695217572146255589818320001815576918388110798339238721512882961835864480685380539538701891646557004068407578097278927424044041350971512473545119434636412963825842255387746770430304757694039790217606527513717656186695031851146111136623900203497765844262375577891393363536547788243373929402850971899519458759381328978794560461531778285924351378937701604383185733687285635779429485415299504775496161346975740822122748479468591593235650389233567722013362978642038223159969776037852245478286462902398987684919442214099341763301136130108130901596019193975413549784098201780258728536090869820270528860885367674319834142042301847380188308579679566062575970835298753892454787133349601137284911171245128221898614679047731812598013199127662300454842803205339848334391086687407479202677869931998385317704696206492377056722725760710748694796481851685205086529263845113696231598814467202287831304954641433110508455467170951554735332269450072204618398295979237931279510604021245636548397517285878581981185322496806968928878627541866904691701297106449495128047583952026999148456117829696125919451649362776600020811383245435143987148360633985558200393828876120366091171329787116640628045764401762152761628511593727410163951447457437370132948119512806943524763019152871336011933412277045681022823050394721129089857466309445445708519257913094002092557740648050959540137025179244449538838377760132459229626751598314989868431574529761824014688838228683403552782747945064004590164849000161024790311992346092797115551810110523771165621108214220938026351278427696319228269451400940777177006376031723177577089076676304488031971834698707224506982122394481941200936334846466377894506908706393572821921193332801708385819410601476217483277294733785549103853093014974485441601271640722371435624675276782898054999258892258519221236851976792667788633073108368388166004155193946534867803733148387924656571283744315336278924877307613734403135442891506396951127721569697281711899299172861279415294290234441887019874682099003014280050757444098688873358412520714712945739240707428162341823712555904473255701662755941853055079197610883806584208610265983558093530689396748367753347934821758377945889933060348809347071272688338246107980236397371591267938421555538283705747058557499794673094374344536321639452700828095375316504238884728638716556216354254910708101874422935225484490326573799691479411922166539635052227811729965067675887611947599235456927388379630889718777945362024021737337117937576841806240273504741328868310305208900324246949951013512012510011800743863988829430702293177713049449459611200155275682184438685786810980654702183055984468656637989302727845270280367582529323546953040576087304341551165368007060639780814927087816433304394329261293058862916843767198051414754431682204233214757358915028792319200304538955827301829974377783562015672198272985216773620923774653771766219650452032768544870776106101266245904008307555852671993031984879160264472108403023028211499061139969963400678635213299912919817706676961495526456321750928851283752552338282522498735266664338388497543002364934744569348548341952564847223842199139646295685886652988242288540912903017639307944391124405585153815998869724794991902516131241416904455974380510648924445831265946920823909769743698796664224034549509428790712093132853918718970341999608492700223462154128549233806865194830746756660027250247090169827305603247378629132909020785151622649002216048176237486661326959720990760516950185292558901552107906114078003041512751936010247332130254557067621442358304960379334528250351122068747896872090566469186075428184438072490649496140735473243611600896565306469481032902162780206132622669469050513802352308379308613696718080710920886610726650316614792897379769897483949476042229773909147920206282365916303382888298672041293447075195255234421157036314305770682907216704240879758966975484327152704794914575962961482556609106113377173534925477498860972382222393487445297091397018543082385638575232849647115865703560348518633691371645516493652341414219509707564976289453268622387628619015519972842789444649009548137091599924136288010670566038734965294241929122292392679369704742575535128744442903499897510513150570482112250181262184004246768524272919027683705991703485307663427269901739754844819960183603707734267710037379459198547559564511402659456971296597473371720166077307529093784511301964458389780796621490181581288907846707979433225308163155870812152482577610137440688937095851989542392208522703754737183811348256052012041032368591510948845177540043867201526763294678945043837634059921949556786361095947546143597306597615616548245627261711768781501740084569137433067721218646913186188571181900936858290202779762940852140542145621159025108937310034621888145603094717224897729078912993903071490912044303752926706431406812745088403351043439478600403167870092750776311651299320307094186112915270909470734740413231006587463515680000250223603728441715290291923969747488579171277025786689020742914049557140406433435738466860615357028608971031551840010302885266540982944518804787988871278358556805089852790105076605382651939387507599583364390250777716115723324523493812716430814405763867083275651072519817416691120075797210778585840675772084240176230684121934577424486877399191813063115463684596924370253066382530562404425395264286695031131919486931731811118500079809835728610977773600005688071592646438744684247668858025483765067943444165212152500628390989426373158230704507650227830474747637234960230785646609989373610662397740782421654407599970735534828059681320437344544952129772104779202177808970063463577384108778754970161640930345387406732816155490051746418100417033576412930807131284850470321117561130924187731751298185722393477715593918798499863613413520033913069101377889934271472019905307367061711251038409862734007702293994135719764008711480495399003257980515671302260653081328672253382800807496820385049033007074960567015546675972126383086779944374670149997368008183464662921953776866920809635407350285482745722989048946269200911167255993860051336869360335352463179674852595795610402238504467438027841658451781913499507352851467854428207369620264636945881764496521535924211049774348471545577099529985917993418214747233213933875049994129101953241307782781445513343219612396029703960009783626615332597388212561978538389483372193675820069003085581470230183285617479712513072994739492877265628871299432197767348067481112210414037500929268123594470218472434256997696152475777816614041257787350549403899012904623243450402046499860862174180383573553891046075828675676499188404594216229836555305188051342728302811951927514782416341964743925631715653705137800834490170079636357672356723393620022368493757596550126671810883613283384781418569582663174152486202352309735069129388853030298618924852484132684615126776908663276356132196694145425331441195758126360297729429740562666142827197981819100793370307709647011457755631546724358176283604874743908141087015340109204351266208005923557146264679246205836397033182576134361681061227869849281453939942498682069440663268457841721093199937393292370821680174497393537805016601303683469163517167934808457508090673432605739210863545405184014056355245851382792421630594837838553976857415648923240406448269084734974327524342879561479827805348500821930219828013672824187572163031719613385295828610814328873276121535667767748802287237130619952336067819783322758750240637121338966975559251956012925174914402321595313355803108408324627136420625470036953629841134990317148228219530378907258948493811782927578435483498045568820443556685931619002818787388781862348853125113487893605541745609651261471450420888830063321948155643582334898078210818310324211963822358233186374582237870532261701311964817183791671979055584698585692563619857874295830184954519682263521680118407892325448769272950705352232279628611435971161005874500346109497085277808687266263915927717094682612067130122065822834703982560618667574650909235061207689405233860551267652314414468490646180983397917620039562921272547365136285485180621283259048634270402721944014816805176994658279132522669713700884198624621808607265426563042695790916376600876023504401357676734956214669968442929754790747676441356499313672495275463131584420532886763856212974572778763485638163867278052309220970989530302972164339227982128338547800120796928257550466394538734753014850355652525836201632324895045265562334047450446191121683764775136653600852446384737058545544235142851219484483705483233575325358221243966859265467225050487617156322997875700678446666526067116825833193553791571886088673049418680143015889181554267388531584507794068189234755317922665740591302317911229878936987085472013121690768658083847129833608010122654976843628032211890333209206903861368714687167034926938064031533701199574657327565537710277565146789750613413884101780543452453765402416320708708092691641165894263450477404620225126861306596630652226064121647507959123209831005849434267304305700614489996415218187227906477737097933816946721486881062383891396447256468988892852601007603068824785651649396338387992121328484155780909184733366981199629739431698202514819082008120882719904412134543336815338574790161121229495016449677183304634958493629363841004207449870408481433601354603394175660368005894577923565419036242580258849797833434259823078593866722739074783215209892518860046844170755235679277701192384625218656555534211808845900382799585306715793736578720203065574476379526010755457817759016736175070885173253036690315264895678097116653368304366448267675125925358535484455733162957196887179618389268050909198165975099496098524580840524709017025948157599701184388249188358955796818642815443130726757818074909914851760492211674994355354177050389988712956901222741972086757535401246534969243455102925878312735934503992593615392316453342847727938746170789321735991092423903317238738705793314553280901040604398043871044960053456242731950063062098251371313706814801371648830373495068455201047962467851149024419979401055601162826315930607614479234750452830602392054232282737537893093009650157176818428392529187809449118371439217419861060759568259129554395375269935081578218746221906854882688530611444974985309649886364501079561904660370567677249131383615656026314041923325415899195912312341733522901425192037284940981903660769440728157575611989362509524049840677660376568143537199635794560377807144714370099424846188101919331378527855308469755782653657834406178831856949454542023071756659510848549472370083997831366030046645512089679309059225089091201925850870682418953969531092178530251910586196698630629991623607480639614749076801899892840940326639007726493280343164601580151422811773265760821751193421799744021739658414911403076532174897708095592496146713724235029253110195913543536099974929216652667031727274398632481441448486359346783758140605802466637999700581393090183675189349914537366779363272807168067981314315749868536187037143223274517665897615240515004287797475822992107557495921267174440491508621509521610918667641611461252333884849232100998666900815918661344760097891764274058719609813186102497680854214017059137592464045948326344882716403162678448658144901143790457433624224612455296869567880375976226429845114482234826347257376799002590697154355276571982716558317407072215071820575079922611430272401995622456847604283561331197545960137379990583589028146883119989051760155048567466727249577295107075798257228960966880212433356770955173228731569909180960985347220175017874252716760803595975290888319916045706903164647211160811578732262158233876048464266204282202960633956809478760542856688034563585307384391044969681484703847238473540573167082878306413383192071685920516894841130352419623088054703095066795596063430493925923748572030690333459621065074371291265292881110969038799140875791380137018601126892935059738684223870135150071209757360384944614094230399195319360783982782440885292369672704530708755855152096570743480392612455427031663164481764223962191437626976884616950996766819713967339033967358610854959725445474871081172658468888117475288326402992734312906845180154419816332978348935958726762850385936853672882433998544245033393966352163573103326282969444730760974241295918352468683377582575492340513742713640458162078637867858955068315555948175984500739373918472138306833910327243879243813122949208636659049620044727635497922523564499783877965975776003779390382853578458229343619879799690971264481590557223240397099102963945867870938250695547768461806635562943339055246372599130122392736763451824462563974070325868359118565320115213378514848479244387837610823805679385913536796413668678416801815880517426471865544922196560133266509488906650695422415360149276401761448237131032541883106380862624664293935715465536162344793380246681750332463982864389480598988666045435417558982117995909723159840516009799970919127051021686723469830162129164753748036769757753388720234031547838751373766993502854428996021685015110926137203852529063650968648632301157502564038402497556605862429732370112637953994735350904565520092333901478234494166926444315544956798946820574528283073045056818671043872594365494309819984206203502950496210526104407132355685334169119145351997916441679846817224256516967656230265036530484040423903417005777928199036030843256639767799950296103540313786089967228641315507019118727787935721407216065727810978988341301830969175970118685575904662048330126347391597118448251136457310545621513702267646116288411498014964548716328905467868068721350792503216812461454425565949075827945810015597161866203607398392199668480403266494473126063777439486683715849196540918239489976967462827183788751939089469989941974718443680081937136359748835662277171196576597208355315589736141474474363650388943508434470642443311858555471241580710800915835694886117926282354098166292430568959888538960020833722407735656692590477848313174531426923262904860190347109941633871003993823669225613595359770095558759971064353880190781808509578611134862459079950464463392982691760898955269091030366270238683435476004054851723041724622519924158562119777953894168172532709978237059149511569172228011542334214991292792923247419461464812540484079235617597024121674559323162995368876303852580007902955610968498134599548710703121718657182070012611483503394809517547470513480297104034178930526211827338731579473902772736472849602258834859057052258471835710668994834956900555548980573954594755112384611121739042631515957130400567685331178147083438439004837134885259724402160672599376756558519656074016368232882472140138751696914465838795501590072293768875307941396759870266729210393240840804601845255387325375419721258568385299384213633791573961002853053333428606491460613638916968240090743068696517809151274875954069121770885847364312013797516743511067747368394182375984354431484423725747439576625126483514240758087056913316942937170063443038280918376072830168498958742135062692809210504315474983710187091868633767987475517499183302398425782102755637467212913132974578603921693649241409777152296995104984527392007981251829222198795275428400433823945679327510324654771077047496562927488080499100191783552755575621624289744817162112942313445981351986271572341119758859612394412091478167695772677366874086366224681312049898106836330430255609331304215992220324594061211893196147031124952252974628315471185801285718466361556652113152168283632820309852386226881089937095645555885161605491174575906544173327505622603992620107850897885377241062414403839794951996503156991244807914093629817370811510833756933134964049028179491447961273678934565027423386541438460512993934785260825759522891242649409855128070677971303558785688914365379683884983971631113567907595889732715244101759541072882474168505714781113372929852740564399608507013477259920513527782315346876074192501534221400018126889226485045463038654662307229813640598783901690876616536103615646583936291200311865475133022458499233329015500125753303913374805458941701635851229931132422803780393463095073424082261685605519337619710475965340936740461898613135449519060428617455594246269410156624877361479011806780840381889119984682449081095946968250176862841557201800621671312960201552638393580135261942152907310480420015076460727371273318732416823749874623805398962683378425301299978331702197753684809839528598299266296906639422672119703464302240257042124672666328260397033760187077134938694105555569868282077123878854926150951867691183265341196200080535991986969314725076939675474115124666457758182049778648624723336474532694652285388504072837195765931365158458662222232970063623180970109491356848051145995454296011442771319690770358021959243850599713373659090589663739045035465410620591526661453352539021560240710561879344579630898286369196704121663326636789072743217435509734509211492069715429242163773349383258906568183318168087660021556792717132290422171723096931059464100694487415960100792997324885876451161639555576262960740951800598162869390059555272193452040378791629845819662253704338029431731468971672646818380236112220179349615496643587100125519913176184298868444952586053419993428385745858020585167207806183174470540268994629128393070683677014469550329492916875904737060519405070405098071300198482187227662029427636419420545019421407722404120323221716405076596247030776151895996144373138549102692879722090212486488092094946690815848893478036572877891216525824458214289232273185195194574939346603867331665567104783132368012043865231251696573859089942160783540483974125164589184010444414923959103645107132894295596232390476159092460074869089558912416494175001383023962786663895818366205989315392722285675040169897913755347275128832353700124893863910413412084668078536385278267064018118060614694014093559532534997201205339062987529913736322086872116041885180172101964849128213040215622425610052149147028946466675108724664514780485547839505983772707178432836670655987915316939470840713540706994850591258752753452531371910898017717622459407764312664502427160911705887171405902622767875320030112809343128129662522580348443785307318600900421082856522122542564542603209779135234525691042544201402655373477963740317035409333615886149832405291494319410718970114768116575255941000364651436503014348751718235004207984031101124729423940505418332164393756710006934865539751958474243386092464028988334894927501849729679554071356453808408055515325851736658256996499721766238464095460718528934468273912803933416633737134100557726014716139841414619550879953900372013267174355162743207832101871192631584167799035167157958235764673695472691392509064622885546008082943915833756661381690808886916011648336185637880064912327720949094084613813200176949514957277410930239503152929962600497279069327836611313765601073578175119411530497132789835203977830133191270597509970043600879361785421386323610931118681548349859117558062228853670234589524296902533011915369399127810603905507842458287121927795316331913500081909332525975739778978868059877395842762984158616445201860255328093153733532715699383824876008715318578665320969117391077017261311320622331622257013979264510699193696784902570400008213443031763752022801380203673589302981971832177108684561596754980109722985506129239285490308996991603090739238014386675754646152337160991236483995025362465665622054105203147585651202135266532626435841993923313183885212288817661887542328723034773173143950859843316458797729423347046345617376968232809553302396240074855642606798435748257755931401130729277948742639099080535555041112549792034055087614361447628565690908076981460076511186767712273946811965864707887359120592689189833668579254611226378371179886360107289684478925780600239688068065348979061950377856391291756494325668152498605797381082008322324363366816634381383230712693391310773414956564118708158612718853002008498740028060407102245165668209300197559350596605005903073718590420378587569139990841201236219049273093942877159226099745882675132318357208313731909090464059504444741089922116267970270489592504006651447158695830623130653160706161270459464299243881773878132853602333118870022490264613529010917465465801248307396217248621175217560511261559751117947314009240440432820753226945160485354030327407270008319832332329080270031360932834426380479202721182742790552308430171969338502341942770588942275203819078960956486382134515497426328880593232233644120211452961062123350548465451492278913437491629041551439422524182804314143524295986437676263479955700208599817463144740161422434896871264002279260070306315483088503899742136423379781521756055052672856312396376659069574725937596425366595623816976054839481548206260167148636374904009878888925594556108181223317047757476172610561923720834217552104850332595394934901338258288158362999883378367470783756893546350044720643651526005594048258832781627367907420323712810261105984150865530849472800016189088624402609995764036809897426905458588573908905009854733499216254882240716273419141998819904324512480321464014024074253452911849795427449290071773986547560857912668891478799529931477109050322769244097961841613871014038289944671375390608010759782558238490888764669342021535562540195537410015624163110204394459497432749733749461711731729790444511089830060653513149360605813362147300782786573489494256582622405601854144316173339344182884568196433861795043101155116494828044944982893805773977416285257427933872686342418130883119200249266354639989375174370001642498726112662583127328032196987385025914372384408911302265879403029080766000200539750800381885376432264249508023296804783145099917704855719577341182149809781781541740393598612109419772853127792606194141373366856535085299729889443927195590892264792900431339015229290424295691276088863861541929796083472679224072225928957179486129978981925238125895156621590396032379842389346782852035797490194902263713569048402638485325952168273283278818074514940871252208470727130312747886038275194253781212906690980386363120500591127054867177802517543034667656404076000168151318313242535451583016259719850536108600429422644670551044583670831726192428427527131503494619775482679830481788770502008073484634790117653918497377112980931101687743933136409115619725327604801162732424704074515982198836254477370273414436829686096412105838643625803364860957802980369116843801450703524742937648923872228039313756695644541380389284682567900121164967005644010387061806880898006148526889157293961343382101974637335155272495901623087909602954930488602083640607933762605564357230197112299963967812735657552611655240974876809879886630972517386055332979930590623757260349821888483184486710021401890730817398577278546105302917230608196104004324852048924388200020424137684131295550244582436997890507061265300139909957717966268443229268507251113104172637731683018632998075457905471831953940279850090944585685976431077973838917939881381378471181189547031291348055964761269708687366671064681033965857316372688460231399355167416653403361531991941412677647609727758163149713062088775891501434342009369448208782061961798350955942182987300388680261660761470195821189278535032464137110404598070737610355783115816923519047896203998422150359446797689358575552890128206420030621651812544623298595078791648544256711977802105697454840850444939288089665280310684249437502464393225478624085025609716038386344754533458831989726558072441467370983656828143911386255723320840104427457608951976278617210585671543562101153096257279716955055382061695887062609550238527136992611981111478935599145029819368192929452537493679860673361502175363677983480287924668977486959760432046255724846049016861159156478985768521465259875026481712319574680278497606121082851348110945501425619712908240469082300340412988441445616556048825696308661395583687156588858990549865208405127832886836056337548815351362227080820950428513806928231959767969366806771699808620018984492435527915198011381984844325948538063027010484537219869686650660963156120098327541362636705918542554423626742970466705104957197781597293368391127105716314042124783495753354524328215970003738927751014251467016360682789811270649414151906959485242648375181105490025256672574319296565072636339357959555849174853948445946521094111754989748761091982029406960321295662991866694385406197100151092339344641491080707050310075014170008177541932697834911146042773853758322578741450554006729702176977108052518763491852063579802604244075018306223122427186191539338587733065656958751923187453941709992403496167607246771337799907331829730169524023868309114129035606413504300923796398350259255850137594393676604266762115051558460920378647993739638406597592927203933518006121954567849229222066687705049866776549263545093738658626769903040062974331675856282907316786945859497864474711118327560549468796484198729650132236471642496255001815890902807020478385512938310383827777851023943079723229816521736184533740423639668984905304875407365340807163167994761171680825554619759581392320480609751718265005018369756699857488019445107681601935546098263272499745004994834011507336635654760066488810360811445155830871912533435459344561978945044309586453356412115392259484946978755000639214718523385896886228316713163621719172952856782681212341331920121980681310651503066232737529098944735019141535955416673850626145621270800253906596434716734527058268671419455818851239929208560029267793587080574645197528464412230398140301740830313043861352005864894501662325430420725357197440048651506777868020116474966733107016555118633953922257068373215807934679062629492467574385691597143125820128972565876425160501024451613983954484277787835781704129621969872270914347363408690744707525424914288760747480141718174768430287831573472808846252929306636853553910509294227865346052516033559198285632812377507974810332938764225603405146228749446591109463554709221855119946818129200267379958251019354426873848482277226305586385777413851093172101846337614460210383614020813721474618584740723191910570974081673140302162528937407938971091529576718243115727860523963130541112927617963463452051826029503785604055351021949462365015266707873477878208824702220690843217976579838786306150984938475455489649422319131236322922050266871524610897843100589261182349746450741202183948072283023349658164986889514096269808808287995807403213224935290733543172571804525588924025548665119674459054652895478322310091094092037955503633470849333097835017585831372007338650385112996853503501432173808349862795610443850540146055100912348308678566101057496157945027810765922381348290514371639408210655062625159081018841088251591410576537480483986331264442746183542239465353016970465898767231269724894685275280679144296792647566248456190051598731319277927380438306538705797186061270095169452101169362573449999542791168591154713476772724237258305701834144670636059539438255715075152942244295975927591594034598674407274986774908417665662154228757024346477511601838519797304481437252164260564816537901429605315837774146255871904208415982997044235246993966474076174102708203568175607796151642763532264285095426452289371697787153541019541054182481332818811691640425007092219867372046813916345104974122578502484731322869545658656211931171647654558264264019614532412561007016728516914619317680118591414932327629748949747298677531401980898998185867918328071899432720307821542894162360587340584324238002567438803365311959668303545211192514742070822552849900512770637391905264698639643704360631799224319670464617994424913074563088068463342742308116749262207656432478585222028860452558854910745362399453705740055561799336942262979690465271646539123938036274954914394937271388796836658014812864790722678943794359611437890030730778651270523740482648059462188008353523140607254606039008394438355897848694117032529531793955898231760725165977645304839499952444485985328448828463865913090215752126313202628558076964053059502634446931837184314712363660207217785590613813623431516760628401115041238884696338015075144970907685445023926051603877517891194800480428070255816449079718084273257896946414046187233157268614131205150414189252921041964429004464204372458648090476543188264919417718089259059081164252062970684999773022974467030709779902852066047758435968252778319729922721140262128703613628205488187216368177849527271897288223159651782771258305361200678163724842426989602957266947592733327368133666206371360183218766383710087330043533510803908718733585932870450290836964262077312110715162633813531898503222974624200994897741974632945370356794782515491779051709262083150413904739641459652291148152888807508363455249862592445035419536142963567494866793922197483090632248691463063325373751112146942084636482419864903075341124445822340456880816595375993859757258112861382997684102281594743955031541731848057536266279371005963183549205021303497119928177348638839164723862976280014354402303083252838455701306787265244868931774237063845183548255546641390582056461068148275035897620225747976258940955243707367846864995920024382977329697318678089642863515255555473371763601177789607694905162405699278905635483691564466709722335492441243162326702592922795521871898188871711496987860937992342353727686636742347738099303837649262435202816181300881718242534054208699892949255790147618072706310919969760119851818405159625095033146447046525072818504343914636062244784563645662272646709114180028653440781028727480104710265886624544312788876726384158805357941491365621817843528752066701497673480673684263727314681354034705041105012041918330428076447271547194747175716898692996288076992092656503916908941421603020279747980348322299171131566962299452614624613763276902098320909982271812154541881320049135960359561976878096895180507881605838194177600669139074824958937473465674502684402150396399329081107939882216573952769598490135924461134170325215597673691201526672240517161109662396974596855286615931113259836517438273957202020008873494883273488507217719572569692573093272582297824921636807319587466820366873931116341653931112385224473795263745290156342773981190340217470379195854656461622641267456739983741393464297017532510565059665926858825406582072030392909586332066187952977425543864920166658630058275078864421146891362194543099804916627675201527998920162582168182230127354307482677420655680646902805602931800189918278353392806310167669308586160368650964109247255623606759517876916022234415891905869349536029422158399199194764880061652033258198003779290473802385685046602517044553641923559071027307824525002886891927035285450143221666169563943083054625171187952504290061621929567231577040021892720959115956671643927074896546853813156206615473341868464058358563764484386171586209911687284625201925652636967445341743407308575167546074754654184974210249111940074483349556100890596088794459220142031314734921270419544589415000757164852936894632905873861774558899166159497113661660376043488043275553726034372094806504871332721804431985678018795820065726487724745588850096547330496413433286636934307408678466998989852831758658664141146723465947731713116397661823142487134122913778936581315316436965308851458759820642798980258834403367305667953339395989810191990768583823547676234446420656943766100582330575569984355744881309844883042812724884886816555554082503688827417514022650193771649581300951789214604886790658525026100414176871287846809913232531671112342511892953466948144631323685831362170922483259277705099327915444678954061580058968305754295711760992454829851277126141753710205084006397822742963555873589707846117124198652008298851307531830561441847563125556920045494066615459574846688293247132368400929540431141723000295486589467571000118761286583490985485811234727330399309473415100434780978940971427963546887537930770154194457535691732669034948374254170937481745206580477230052782909949633157250397151999086609537614905111707997080943071769917565973301551209193534633378226382279637199192052054362710909260620794092986704598345502039156206928779877538792690920664734888614172334921739878611471792143627092522078338240169009424008495444105157378681343193817885526197653036506440545575680832441308557517120477848470175041188690344718007308760730598977100998937482674592185700609941219200570774214457788315141719335282418578927640823625666536857694877053277029914786462915232985417255331347962534274958777445100410608898787715711441515454849475299216506030392128885054569932776143089451236426817604060403371494360523255788968081166522027259522517001523439664487050726053345211544910145541304077004573993137915990660371871781640490142122084637354582733194876106357636685356818342221631251433874048327936466983690806348624138403950601689386825923929476336275136262047530752165901574000970471804547775937052028810614875584294208038460623202391089627882483749072686046206434220661027317121763630708829417268810393332356466516397072729984565369425640274563797291744804182429096639914197496193012135310151899236843382697687091244988663663774213010867693123123610638199355750002416432469954374460377111241467460696374525546411615815253598059344540722358516774798453305272237884115806775182212122815540004737411440924496176154831735956544334284104954559188640390864810013080611534704628561106625646693328314363092775454578577706846420092169201987535573922758763395623789701846825605702757127628952136785079195917303916614960065800658317404318759641251071387793286255365787361641621395038329041685244339135199989550685213113878341549549074845310559736646217274902649060906766892531879929484623172234727813543051017921453581644224310580832703890467325200619703044116525741012518316811680468844189491878281165913721696372385309480846823323023003142959825865139587710741044588852286007062131775736127842397591004000388564807326313257052545192892924328645666032295441128636081812344845852660983457974783343017023706094940904165247818394868052168228101162801685914763115743728652580721911244473901748832884898098916568809816063386460429807316139379041045248390530003105406297689636424763843014016177606011831792791111263774611204111529596245470718522541226559151836000724389779687247767237027283321655822458998565236435750563021937811521023420161810240182418526157411560400341370788428183633456848782372907185134156631646630890871803891253426435746027560890377659125404873656613214558028462838235719540417579759822718943214569959158818510389555770435188867244031574044680824412897358485796596619375568585940020831152026249597271100605929948993778084375221130185831678826748012247779626453028478940435019998485909573779527608982569451426119063212115147149939130534349452132461684339906333908376792384054956704537311833785488219020041800176727441308092717320636109667136983748243335936286684336450386168578244375309114205280091895062931744216958218313424791627079247656666805945997790077747813028261395997399617692538229250278047661725014016414323105520619162868538666835853086952280307546621759853617095273282996312869273017224338273525132936759523391882964203852340934236510062744481389108756950969012350116590868734893570003129312298609430141782529703384898368048890546088433101099773162052765597856750521665931153010619912445157624530763892941205996829826923570922768920597183526218479241656603481342491035848514383303985857552523972687550547014885707983409328098530987109530733507229701519779191987710355827619214615206640301913108195280936284792671745538186082222247428879949239111651662244492935387322589492043830463451831334877933865508972957852463270362296767681988894403726066436748072958839293324966844030182769385955522658034329627246509317547588499209855380255398269958008358763893424627573861857207425288517492295857425148366954929867891919498114615814426933869197513110190242223768418911927808481219434256990791235273102156758088383292277672265833355987647618306191941085782690961907456593139630200148964980223324133002838719364377718065837075899808032280511120751063780379013647156381261263461012765101492841476341471667499737914670971392700956561660398402402592120690566885686582622477306973509983384694841955255448384172336712703714952689819731402956975171822876321853541296384593643307089989588244200980717818536195926565942572652514154890133855567405521795757299857050623898982717541049279496002695717473054947088200926797458028925808185299413642262207399758097638089510462749376754975436121475715511663345840610583765527259955871992141429739285647971190073481388009810832603266840867546198887274944746014113550290015761503111290565387423609085628956525482600597194238591933472174958480221335177648799129359125622167696935659683449072109950716946334007767767799307342656727565193817200849495404706392282109319351263475432337258437004559602309237144683142068290267080341851331734940473879435710066263956272936799515878734143105606180181484457369694947876439729626550867298224102178508379224367599983356873542944509882075753103868716625693173651114479073625861538773760245833934717238462654187264087543489570773645935901285147846072714913283771075429772427202261924369244468127352976517426749846189097057131209928579715979857143144429551697680721298179231052350263016004480170219912632237550644605955087373674050607080473024863294757903155711752099509373015694468347094873020806695078780969254056320475784774578145398252971765586746475685872183180940448091934031250298871016573344912441616959718981215046868830055022759041252698259071161091041274798360444079057342808268370704747653431052950458288401578841821737687813172818467787946644132041140508224062903337113861290725268341684595718829928950076983108695330403772253365721886005054543318548554194279849999929933883643680560149336251245055509878178398680614759689847668429216477306318259713564386393191047915119071957677047137762413297497230646654216731159202425428511941999620667895823881417377315776134950164654499470986645586785462079084277745391259202129065543537088529842865786695569265931286324388369637373298150354969346251068695799700705118681855176818784437226386220186932899998153854700823139071509962379444297312806741880841178866146453981893459915028497817018154822084209299594974835688435869705208400216936640242212918037076780379062568089683725362782026269215085818186000251577222600575403038920590608601256327207513104251720134282788241222459645488995254424828634210982633361773487844212433680809180084556158287568476106990210696676726000517023567566838604516062085353378477440284751783598401884549147892376328950591479172026489498242998336548626739855037665247439282835127817891699700755900623459182096027453225975043363461823902230717141668771366260790518685217452063432701026625445285966989197306742181040085225799346004652511910862197112889010219129543897677775226757915804484967268010844877957544312968659723967724950888675957857710202207898628273294713281497316445549172434703141588658478470914063958129821952041398232613215452519812633533336467706398375211251505435756836225170842476251885357861421576406002044420010853891224063467951695599020717446795070957834390801737969799175352227574269304557590105198874751853095137122326724332794598232839322233948239658659524363500983156928282258517347943819369920384991665177806022914119752279893909119420041851434201368373498060558524475384158192358123100102358957310653236804329830553735345750979660242929842946785198325246826128427461504321342753747562443494474738357091395761540759548093912933833181928793397309458522886198623932628848444786246561108192904922307007118472828600819053204112994885803023381906960810882132779337849885785370478354072431788786613392907848066414072828311377475732427400928028444018084784743281153436008321849315469364960885294761435703204817718033260749527222751029351950031558223218537585353631409749600538794601214310866642875325727249947012500838811716382735414900384363181098248179313099149787125023402698928636867987203228803237540461578832662586286359697542984366127129109540869785045126819608681971291393954363450835483941302489383019379740808171692168970165592514120955958190190089940832809235631540273426561301215940315086070139641427781898477116921457696084435867221740804537980522135718868975362692674699584817014933996398585964748294254676521020861340469891272028848193479205798924888972859465316580654580280049491735270618522715523430514474601632745773652037402295506231278138322619921623140067771901912605855120671002422191705282782008606079825438223900012430158322535820566117887485517043647416966256342299254495989801582477097511381255875632545481226763836971869941000983756178788962036413392598395062125620159779512816323383626699755624916978533322269035371478656284713763212367573862097484141142330339119748144189715060963595663802767470150480207008493641668459849893123593240374638858205736539237311048549648992187616737761253821050946720815429775704809931530771006250659276336221504696834164650057787791562236564610148733622694239264155970243913437415348386771037975519968393157390124434290053648523395262625338683957914842978048211578398971943241775927225905256610859448934868040042894661903292587903370885613395549309538487267234035321312002852176038197531731677614028242798047904248109347027133163182626616516111926472119196840274744804586110144136013818212776978340764497652708983475255671976394353526571439877116823563197518657719863157909590314218838034894360982711036851054907522333549563466573336573762054828866441231243327868285755553567589842852055172834608924643102286992756191456123836271196208140116954141636189090615356785369484809839122795056112280431569131055692515761794528796186395919951071089541810875122065674536972558888126436064030383371583880958798530859507604718981402553640264393797640650723000086289741232046828978057935303409964198907924590419044124089714815570070122362757180244290606604996355549927137062325080195030165218293386531868219095168023862737992093714863431130484169802688748827142433293320034955349861298305572061591706751209241438374519284559825989099486646049341099775029012732167548631335672866476455221442135726451802173831964146641637183529465122586648714453685810901091881763484408664510971066745740444889306850322922997289027193877790362869024515918808362660277333590312638069759368187629430696390135505292044369429541313774565984546522010251179889475357066675909969268621910454856340586090145844554883306344590556521979360668383590957792019589916562139391524333379473215311198828890029119838743724012794279385274694524005138482039473658536224478151345797401096505398106775019368923547132858525397255588516925218639153163164942514857196099196650438071719141523976180802408442072090767828993139004690326244834987545005613834756539512258632236191521073516628883272053021335247655366995672283378158909204869678019111114761346190543678761836043193593361563388900136218650075322119910891213071926556006703560096494477217304350255842854603266193409326068013881825810441466636176658106517144250371361654483454162010403593654331763435188750145453558393782127098791427699905858015607046681197167603610951459072309802734135470433439864761185762623339324341683233691218852011739938919666876578577791301341820344927121938178996638889551755437390471265293474987946085955900295276118415088544893322680054897741981592417876008550840629515390603693440450108656393787891970656922693727293889814993353681779615882852568006355749467324983212401895086988401636606649416613039287796590637801140034622280598312653261162073881665084707267697993234661961992259178807374976385831019124347144475652062133488466979418299898955325765868683288935025506498076790193196256754637936414055225197295049686749634778759443492502902753198580945362100710765091553312546292482862282398928491031717432363491280936485023923479457043474478624967053029071063392371795732218976277825704117811983927085769214949606202720971880802287406799581573914870858352517843200166555857067905597054944178255252077363049293709858714067980187678678431376247278363426114994185044468562563428580970108240597046686911985527318548054144174798975567803893339531983294239274076117614169204603146426526954688585825002844307454863916295558187980864927227504158906435839466241647485908859996778954801638576004525869728082776643997459734068770507619237331326828446976470442183003698098455322535783891543536062520103897887448603423783658706927721365094433340595341605527263638807577331443595581513404175846001958441912099379360979178017797385181288910369170040377432695090910543684499111463659644052681729634306309520338530369225867664882340501086145696889112031712203730047528392709807375385638891966069038583340734747465785833110644807095053635152622714685481206847813386558756417738736987380318334935436657263421872778735884401470605831542368107251975694095490194531185211087637091297034584138752726066983175815277055476341841891367480722885287802390032756205583740260329859429363872464557047846345523522210347694846272890797942092712369211752643997370855779402471698620765570748940985668851799494890944866313331794666997749289415064776218280948209442064450808313483080064459383002673704719606864212210512395156187928446443801097448344751378967815418781636562749259584966806634311025284208165290258276567983489423527476516082638410578935161756859709305679307540088968267328669412769424804610571895591386413366442222870291469126068314260445289789010541130994158474260144115434300189835444149141605993961497659203731767441831374422836898639040546881913863035550338708325824027333409811534159715886771435788271212753622135548521853494452310782088932426972036541762725083513883388925175320642469875709446304305040770785515591742777024615301532340016818689151270593753596239530872946961880273102401956693524573926693761390535222048077555094981854435759976519190350958623907247549770427144501265002034778581561099693770494856784069286275055207599254047323484249941393151979704941872851833014082878917157738601196573403066616267706712721877722578327548449270202862234988799890368056992184583714296203399697391716790578626917042135172125537098474919239787394507462325161415134201480532878621225869145244765562812823255180409108006418299487914572822001798778052766486701939159203607179547835827477687902811197008744577011005805413995167299533858684102605589866725157940047709101898538868432283224361760660486353294090391252485173335396532510614166707270307135158565136058416215291565920612624387581482426227316033412466804970092053889140989456670364908271728853514377614438606270759965849024680379448788873495859920765774018906125487588268912094082273284593457702825460288004385438236832516031519974773833980043368309182317721917095900587549277404294775086929774526129622654153721942981224309690604061121221356333776342523666183638073978930025980426014301888838163786253429161894060312223010183863962080073956141624854384152815804057885344956116584997944159890381466710686324252650187217921176399759371164617731878943567906496925339140439855872939549967067710585882490198975027526151431430776152146406114825549371612512196163092498190998161341379884280066643287747216179924926111571637516929500981966359006815029531188455419185535626923373685909720699141576679777323143553879434466933127445330434930802095613475021081661390919209015989445178865578391260063227749413465220705826372972164828124089049252183200156462402984340614472712003793956500262572843243527894618102344215182578306907074038565644609792570759351337028550443894559373734942875591419160424610348036298982360871453337509817989160399934474393491169851438368354404588447146185289840624312432893693517856825737971147300657466204734851387597718556854757613806403015852943953584131571402572378457211033330538469167941131345648416387432253352501905905068903516070949896641010792761246603341010557220659391342809064701120901269035983959421559030472110454197574608690789611591029404533260518044480959579802209056315188494743272054908909189885999282478944180060953951834641969820042501557246182562745930923640530109526770780667065674164680133152800691229903055457913119542282491348747964432922687347004284381469425704873927999819850536888656815663868349798023322877274799177058809234980797698446170065941033309852901154062953789626230376312436277968320208170037648819471491036296159405943911633726047124518698079353461109563535520834463377759418108277313586134662292121506528401504736267525047229145591821599549487067425784409716259256366189785283937304958795151143525678965487714836301019602767699656004908674818198178941183209368125897788173741929613587456442981935956161309801789099988043039495804467484307782224548341906298330534225659697960784484137548097236949727175128023850333188746342379074886660211571336081791694897555460330995599948755171863611637634148776023732509720774386790434388609857296862213977136067199944569177523107534388371107983684054311293832970145265420324709062537613041705923216409128897807957373343537402430574518597794263927408623731208620810724951875804163339169424577129182792584672397074550904755078431136351736175828283501878095523489791205583406630046190729535425750444716094683068221208904057540010090757425997447131217313599599777609258199449689896442742613637728595372342109050835786622114328161432286432124436081528689675266408189215081114266755021630304001614304370062232731540368016029526182619422712829554000631278365508612508186335333553241372099791442833621592300028563150171184127952118577529130654452026709025692838412566277783724525258655943475224762340906666961540767129059753916448633725196189281130826126095484367204568331933523014777928100138009985776889348774230163693116500101474662948225399101034702105043666313196864648290816837258452639482653720653268566083680448020283458429220193383055447549888761414266462705358924365235784737538658984515592120184053481091271422048348547345531561558963502886133725311410058092710013350716243463617330250981916795367464290831543085429623650613340821703464601622238804095409531851159380290497231267951031252445426568388741864192733072831587107320059069696799827187214163366611584470436497518308316283874710718381537402263197927949840397966349565670301618179600738320299840083721984281530544031978886831505419921174644399111807195059899475332462838265785119750867485974048199711088665003179997121708444591917168104856884746349022745221046680345079121253656238686345294782801881475118508093844416704309656551839170610854843145567492456805702603569048433018696005353179200830180701744197431643475090892687915521605179355895374125783196206410922960358811642895932737534962922995336979100869129770747921865967742234481277553927624259557073634255881672275069578310294999560063757274601244654269891066049834995798841709762499826699808868028237303809967931525015353946681343284123647293835769184771699662966623374336157746239710921910821328552463391357308357985399137378104688295260717098986436889167430060652835766578164648598743106108252723218431307430103383543024752023030349749539244254429676970295324193404715080316587875590970897934561191549539051678844600816728151352643868476639056239607377514518056546182593592001545008168279205257255570794731427434114127307436409226912420710157600504750047954194472773336923236735977900082070789636717152788896416285289881055507817946953717178997293750498846758152945728670606715263074520240730406940124444055037219863878143018182703541056978845467828377026761182577078976750537315037393516509510032706003501308917591354113299922053707323959776891488779697022188756896223622333441564440212681924297717221936626420528761190794452801857298336227455061442717467299801080190112982841963456353002304659577227011518655327203235099745783206778610584491118052547651658453975133042549225658155943226426638194296808843583167351218384611677920252843362783694106845924501464256605021399910028429573084847709147499451045213070386211028194642489330584644191390387665171899007358161909514033755569572963639701542481948392621526502525040664538826777506559811090038208443612409921987735546347864232341074682838857230400074263875214850061703363815333663155418322952688811042879583652122343470093777116214863346658030027502818800454899283805943068304785394923128613401736024155324562585699583263187414369782895630293681413526896183287180052514203223376850222759604114963902080378887590159980042953146075539361271952395338827834193692266780203033608983408376517033834829910085844878525961324849551577896421187600153946209022501875996488782652096220115239620636599240535932265475845405271775411799238463269419842476654988905692643403881092562085538703708899933593804228104931766647497642417515615320139477242402126424423485238758355339363965848652325524999934858117145965805246224323407893866645794964377508003422569637910748435667882919037304281027207635518565466214846443338783183472695929639198792996952346240756460348589608273651115850361766586367385276587424512048195551191427520949521563492411809963068007276045263351531366465531154401113628913795343712049507815687299289153089915126620596871627715123869484381835561512262988224129641547102951127783710902530519428736990724220351563183864417601988918767301543107377251383552530707571181111167867877078475020081238751145307350599574234814493156141064575086408107517164779713456689125072542744196379774666283909726222307999077282319056811093254720900952636508169942476985312144768764764759811820252826251823611648128761977761660853710914466778570648488309949074526746133574034884668014067947712599200526773532434918502693239865861039574140588848134086697076231411697159097986674150056144345421065458753929695118244775748727152531200366641129540896877244295360923445986412216170088791419862884554608135906193314080520694942584081261215063449185214364235236784348229186783390402054281753854944931545147564863680712986741154121135916067463991799204366128825161065507273710697569322083561024696885156339778104851842552255928365712769311071966246046237346414998395474123696381792799832347162814219054981749390007889936623206349496293894258732292851569650147320408567877227500075098682519292507788822559264592713934598842114171283295050845994202980621949462428749570825946826831918645546274109559028530898353990515022291955128052748711883581171730839260073001630976419215361738696743981889455271254969638303473204512227362079104649318537694179401125124141283727513555035432143140514873774593113542624219955464890474494838513455533931278546473835998248849424319607612827457518934451641494820939558554636608587678071016537553137327878570334376753264735935209532477016469981822895015420728750474573259949808659266407927870102649137921083918546684407749838939459208957792486587186695588296580621599148816721208995670452678973846560071337085193067775704120335902081296335111234336274119886274528732652482136363646762962160710068899525253205540972575174772869848743986666535536743399650002979716978080513424249229483238651297269161974686507104008571398909305447224974385755501295806486914633374959783677507246119610215423917455850754385103774971419948028356278706812561972182681335563954324762953194417923170455077759422497800930900215223171483028823562341253362150672816450837076776221323052082972634492006340104839977697645710107750988272633646796624915536048410393641324747763813853116243395301699823863000967363106505478960775605538449522716026747790268251441643410103299468361785066481319242394099694726431735128617318659245270645589711363015149744205146698488551818340739719255764663599379181005868467729993429055826284281749089155656380708136587613179144967115301872340671175308160791086753429070460328277675698801876711038663114060413929906004867278646061426112323443657657891193322474020750761923885570668840000819277316882953161287442449554305589776472040640006209488310386797995152096754006592272407599345639190409272332953590349175889237387957725996715569084014018482681209323042598402805969146538328767764177024502476584364792558991440033756163206046413901037673488187485807249635333801602211766229702004518095968812732540490431003669125584386333873173601127368787465990160274420720170785993342024518693945418617382885123000173045627479417990540344258662148409308270424737022533210014257376083469857984126514662645003269841842219914587237526614564207515708895385117661895482717254769938100888201165794636739462219024764102349625096324238965908677007206388809448547578689960694941904465581285018760193075447243557341223672071047867359508599661756281548388274528614794318702543329132028068670700431249621292002628378796926764509988297093369475981261549398704193014082197955037541793710750616887104659401149846768822237546205647519644991969030617080735035761433172277081715792258788294578232966192474245359067728014974009543728610690394992370010942925543758065611227874624181960850445876870426523385726925044663722829757266292808831369829747764200092238919847389692270827724393881961869366320442701724409378240645192399321890593381105573192431024826356802018481231501179651386193524451828315960069201457563612934094000206084207974558834663027840166498603297101721357151941110899093891605104468731222307476126167999245532950904282566521936546712804655568147357230528203652477758984187260642653689333512034535376790336374128021789551971557984073412555760568504820749042098667575928775999362620492774828858630314048068141825823867963761699535342518427472102762795380879138029587747289890528216067681302360744089781773534573541092997706088466654436984196311531864913695009011600513557157848637125742292266926189318256051735211439996102814373851716958189241597438325371379661202218866467654929160925886292026411635388295303188333023712173333733848254322511417965776683595365306199650857668156560210791151498034773724789512877694201522265464391383414788982738392062346451002303031095661456342043883804801378776668471240020271554796598418991165101667734979917313529544290558599561098879048245920948032794807984859033553941088941134652250109408942536134590988867872190568438979704307246689723143707003452164970159201134881569712114077748428278427924137126860621425715125160934288660492775216124032160492107654844133748532082301795785371728531153110305215865343884380096827501828255527192809640742525038205007751138037088867943895444245504220277303495254982465439489903679348949762295929086994391540942162503253042230195947330105710973779614231677407022894989416626310829953950731146559386679176723035899274485668407556178467571711151012933600624765471902150930836399725459974510378020563486934433126142749956812858985295586089411632131239327342667515972149299010816219043332432131068934481563798610094405943883863590562672878445768695994886239573625595806337104656440618368149048466737034846786408984656871345072706868015738611533983804433210935586158711211971597951677934664201280793196130120596394509123945700438978727963606272785572529374018119635787723571528956099282609419455936428106235806265383973516055326912599418556661562129144498796836309815561484332802925509124816050478345484670219992400010354073234726526427287384352930437377334024560133370118415823755322271771125570098726063764741437125030921243376402546857307308913555709872207705852729887246673712844857053942083093499944560751861804623517402787212251692289106949987181347665861592111406184591484278052695130997257231833081001294700195845838463704746804780571808198431229890753001999804217457828884024989192105338515676606628421599804139669217055711156511606168292863344921998031171684565787253091900614753818691499827537999256289980061204645942271512698648015727193542240649629584296142612643379984247005191354678156147434946600119031577472714891212253760343816996417952837204969644763762035066868083098484495934663724592758524883993563585602865173285926922152555455775673197505464818413506732417022941501891758197990729192876099300634090000904011713457490277927496378475053811940307278332743401161017030586698333745354897170040526921571556107175126186011205069735080125668622224286193128407476159960637533958592820488667900829771140041464484672987169310461970844248369367445622304314968555923593519932667208056210697673784684689574256433026030263146031388229120421304518458054729885031323515676900606407968865603120588873563104151936682599612132997068412266569781511207442725248033508092441968106258661942674508262931633923675412248339904934796629825960346450025095194992505065799304562897774237983843955460269707295254490191038065169215604959763830971534708832617847993913331354795296127172230878018071683379639308699814500027211141294544604887746963441799795201247278350939552377549652980128550767728755216537213815543008831259417109365900976612077321756290912419037805470842648248783550655482202751743806729538220018488415651967425201360780109331198313970867026269550360468963207393296665370225359999774638582799815217854262068158104236924031874691480392763993323073623971847323608204655667215469515356898420194712949302619488162921213562473043331369431229730516571657940510844867088402402209898746139313535976233048640566431510177048894858718926711994832505689605363144526544945784105302872611051223453652854924988810562814924200697012330786679464232988164807956322137835250820756067685218620106533870464167709260899626266574819476012647961188807670739773332408305818748290538447531621949136184104788665301305063819287200143325891770537514874711578722157680664052164757765241266530371842633715711958385006184700120097043738923747085894854618300270496128478112170463788753708339073667434800029016250578158711251284018422556250263235596864992153468227816126901540202255011804843479633752814441135632894033799945465615862956241833488940452157257492095582183378974544962971784905678779892416775253857285272239530501227029026561858778639306328583016433268171915265987245848447506747005383140309563187027537936102777260589199342249759229919332286538418570153565975409861930933298725536958517660550925748844268346942907226677808254797869063069697142295463538514527415656749732225428382724850704532437273423286281252671613602634742935097932127733796677092535906352865541908802944292889626742342504749500377774548406464996987975314735865302720453201987385084570600364569666526915961374573866460294780962801532406293592956387169941886393212743685000615367923978926613710924785937438686460989746329348693373489167249328180318078503168445496244182082050546069014990284344068044106031199164372805817370057827257135739429381107300180941677975732093063510009142617378402936041136625289042575700904696641935013607113993591239419433267165371163271574047997049121692776005625243896386933545648907456834763426521127738589362341914905075455708035665078662816150423665042126634381306523456169238633653469740897993850824135464594821709757999399382579812091767485906502047133040031109545495556640798821514382886027359527733726936041208413874830166580855454666203321316199996566325724186032043819704136682493206929401275581815847219143612429840163264297848273638855182881124615762615471115976364363108169384063910092360012198029628924029817184099968073247336936123227486779010289231464285819051250210116985293811768675430570714984188443269469858543634802250037775547692183137887339594685916520918293759810124900178907289981884712284752405356746406569840710788122178506991321561445966237670548106935579631082674095095258165581351670265964452696859955928324485241151227887081501876476274367367076607837324954483818985514657413573009268160172695365361572669689949168172024950051121468523880143145836856264551557299922720878885927157605735199749799079965323536147501087623805179373179409891974243119538029820571513911434064986032630290125661502018261792710487096787816704876807227494151151054736759324809663600160796154511163616328116085659542495788091102161983665527369840760900794292948135282660134351905889893767918885601949023309010988609557255580960619215868958003514188148487451575514917489393111229810889024364799577680061585354746978631928991866992578012848184728506869870018287501395295909101239345808414949469041042753142863250236642500305848589657401400036080992418880774533285514655464974215905102778873267620095797852065126802791513652117592826804453228852697857260536582549925309804866751067841019720158583983163609579949931893584544867733771530857197451738939782388105209032093260482839765461374683632613506170867648312811753030865048144209436384925953743150234692979172897593079421516938974279057085350849878653090744759002848384939977557896686248471571991434359397090136906548313471590747777025655913755149626935607349101686568857251628100063934268257436353718939250447205373904992898080322889059338373348895631125730035592609357162495636355641369244701130794897131966907504356135158882282903395715867332936132262167195400365489330614496130278800143777106731147587273991436260083447194670892241667708879782057869421905757359973028863565162222637049898432802491606762151466989898028273863534710886007796530308518221915069090838819062106841789006087636831326418258213188382683810990559178221630549331286421916657213891250869096791935083269374798157813885304441952578564498784812278412772720192381943742256046143773459011382989678142251170309291685555028372007701196025555705311884058443598655280750758766310136135801076412816028533468764140763588990564108258384887516636424759145467957738210514706840723712487507831997734665659871460442551947432680371043038439707534496532709514520716763630498870474176315946092815602270158533893879880180337707757135537197786205245379533727854682950047802943188903384275944159294395848888072910223988286098965974471479927037989255054271117414824827743987135040122345090961197238198611120482914242907893515377693265341513799829179055703065104954613214285830455102252842776627708119375013293618312751020686622264871592825449694832809436463745111893889556973550845326474880028467512152458260989676016167083143055264984586806333840497500976827261407839803668146583115666483233971075146952136236798704595609531523828566534043999754747575380974779949746319388575053664937654934407729422088022708527534238746185579490215624020270913648191475522866681599621556675164689993144598955618990078797949224310276859681593757025591994799508227060894664831223635329327627492819524120340488013140388311175190885872312383773118086416496316200755200426679498221639155798882330510603800258708970679883823236976023523211567202134428756154028211356405428140132764270105252063107034481813377935370689840695499989082672228319792971245383784901472313139389057931290067119067598134993399084601070264813893168567070845909460923702668852820717585252205999858209213194752302121337656314346439964601594502494806906743744270339794217565383646179190690789137792569647482507823166001920106554765787665822768709885416065375911269951191587119090348474770044519781005793811614928043268822566893265226579656722794625465596304767478433666173001750944112490837466641791079971023978399065256413195825033283335726154494988974128597860167046048445780870684144613047311580386600248278499257496940860510842374758413917447763832186497234500950227410427543634838901357376628305616481382592071494527135317969573310338315668995539785911311353949907598359129737465625434537715434266391965099540763056108166014719698835965981912024623047314053693788941866768135080205050853695308709922209903796205175351026979014787238508620210519525323590231968357578892216237805774280854168764890072216229137217317333338542028897846276112755613007710274520585450154661952289675542339656230981222053898179796331624314591363819355434461814525047504160220548885023470027407547993043064069837133921980634818901635878455937274172354221390116367081177777487618060515154300343328405605679054687726154209116990400032530277367830445508503460711633786067399647535548426511097295092485292855658153853593850708402226999402095753436333764025586405956163321391579501789847774309418745130868137028592950030227523303875637249628453896699528759592751300119208511558634191693400582001712682723949348558397936053704207664488999089577380887498656936854850407774762660090836234414219347295126102301134727051002694158776428664329599676142713808853725626333342991488144283406417944298386478311947665296071246102061048462373502256216516935132091789380009965851310909517159513531019738454309833812957206616258542414412838150656970830371952160342002981325389102038654226995788798904039965422408275985419963646892335168631004082383159817644082868614793562549234669139883111420106756753057299219481597520906621422760674003837381806086811166455378148386250203579879640994506610540134179625366063152108284825646896017115684259610410845266928663891750161710358963785596761785094984559194970612898142050702186377379883621513161842744113431113641079754454922609666303591066077468507951122439476504015990209091767853671653853614020811363900032529154504760829026445782665626646899984326428660265397982770064326290192899034975965610524566137361598699856943518447138609478930059480808976444522812982298439966971268389066371786881952215321241354650539297499984318964262576187760571616702113439300649441188737304137233971455590462291342238692531563936804846550546472870648479510934758166899142365988712100947225072793606860916587587631016543312363001398968651374618277222486085684283317693181277669323547540038919387504792526115976875842456362119255620810045356725694587198704157883992735059249297369075674773152412746551491063614544254161281962263442252911792103195409594680805258314918275765557833952662344225418646554289103037205724411772942139330410417034383687930765734390661452672329205592411225018136330900672049975924414820591232171907066867671255947919292424980254474085309146585113427267675132640372315758613916903654073071065002293201291116720201638904603381085048226574939290763753302911982022608899078391966165430483601257182557901252700648000070565477982134420105931525928051554959537990127663085303108207163677598877366480494579015591917145887565071006614740544282266260643951147767524837371542294032357225856578810372526538037150740584256857398482821871938204961384370040390422910098364188763699808850839750501703656599378415124380486275244421890914878167238095313967346822789589239940587132772804005927360711938886984213023248145122473288796375533326921189171266916346484537673015203129828287952925580695751278066659304121552182876729075398561437987701876717308983317844725547771625836251145803636657893466798129755127799390111076802022986430131246753741737489786434120195762175535837999928812404961657118213414406522086368745542377601375751721796395757412994822938122651873542152812946920471411231258797639614578374180851544917183491946550634006689463159589660005132744358215516243576069551437645766310984928434934063664139036154122148312826150195083951944825236853458272281196799857898833274906146500034042871488349590171853295559549831022569108849515356411055476924427313154131784727506259778895444040243200200123441254815422507582180614073770652285628060890654310689542521683401548536006119911993681251426024261810418488133634498507312820268341071410009590733962987229743157602958381336714720014259645396612465697600960570485880673914754080965642640879262109648369644410796724491247127758198865242720472891018024219922564324521828378579011781293076894350460375735931251323822018073884229395621258931266602258724759195509652358613017395665624354533031500150194042734479203143255972008831659656262713824524998578989778655301903141123656978762544520339840881323643029769866491296216377184365227352856510070158798592570823053091084815465022675885330188050208781444262232302976026819437760475718540180144847244414017666485414876669270757038590077284464146894485044764900983048246459798872472708787297972871871444968136542521675077705526589673544062600288113310559170539588411480088501289398468732742436688046229985936701326316136624914871159573964219472428584748342004878933919545082891503411910289591949167592852712622382341144097620056987156217924493008351954239545924525659056004458637482508788312935369701911337764210994660830626741229039207271867045986301760898356434864870334936100209566984959120380090141534005789416496068627970792539729525805988554698693077730572283423790050935942958022707771251842214458292907909174253021337286701598754458452290067770818694673266842590685026771554435384637035433289805464708689452938732622572097131689398992760604694378013148121734965435480042880256220037966294447470865386763538639331087319433835497733147848672017705165514620191005064974270713575084954947867540975089483905331529159352729682079186818488907155197317219902429290281922283975828420241684180117553761849383355971016758097625010034129851879481523059141946835643699282385458181766321622729457987198005944293569762797492710457422400202143460674147132667963468068013376717035172090506674599720004196220413314425374811806426497543287291973133631105666599489423284663116450374062966184242438073840540083837793279246992654765947448474943484230152909599673062415247796310817734140972924022816619379732567382509540219630134778412768960164588449192577003307497460590750753378072717537126846610351341924597896322048553524887307226318442433176213469608859752482699399879858408495626605655710742294288338436776192535096441868334766803008428809193010748584769496260389253853749740449367607702541302261623666130697566822301955649682882968541416259396294359106473590698140853114946025341300650434054916057015686710495334797516367051370356039353917455039673227778180848993252093673661625237725498242099238351656152562527845136500062599878135404594685148697595978471711853176410880874990585707298374671548057672141834872184251297550031088604180910407030522037953326163632955173112213740761686111496144510394081170836256793432973865272559441865657916365487933177614601160869856895628369259503379579630974234960153956227582844692939286303567149352278027974983939480422673625461762609631896447916535065628532281380672233080744375548978465274130066942162241809996092184846059735696435086475457457083217464609314995008582058227904635672438237695399314261326818437854892656571959999573442208683673091250686166639522018716894720823070809793318547166298517963609291231226634286953815729683179100394971369744008196246481093695865285177410066285500854098985724657891305481977872651739050938680319133119659945453298227226844411045763228842986447316461122497365573508542576041253138229159807657970713954029401190672467359465222269695620560635500778264997076241299021960249902982140543398438897423816111483415057184296690164688885900606679718619139099997118006610184975364742466152515180769977634596058652587662351634802554570670774794127002388109372363048042851467534209239145434860585061839051973577753485138313854455450909019512233548259944053310648658597362175404033081579940226577001838750336308939806574752518487556605746101180525285100955949787515161872213355703955294810442348543079484531415920681543767415793557617347118149756070501210333004579108993752307265435228829453329258952774134307543831743132413058061233802880771144915592436128304037674920053243809451718970346390408907806564278260449987908514512435936406665097391940614986912821033039367733354457921918231715300869017032039383177387786193979333772900807788589516365462872921557169553180508225531449586574629052620479431983759584479046172543638702353244368878384215192358749538312433985269098244678427904277281757320996696066989862591278467340806207230890534156153278151601615051671796640866109669391354623186950495514297243972907209017540818176887927863704815335404833084746420409196740058300054868337190196394527960090468463599884178151335975769238819192719738547481923825203867219335203072126128261452125114123193631923537414022265850566192386441510725133601314303332698621249019232563334813133023246711611992162122616548842405232015330161579094009406653973591621981774564136923399813736765135056749131941934529243137703478249025770469473559913887219195950124569318896778207299500743150664347821071379876083378610322820584242582634481861784081935702485688273889415193515636479038090716770729067565555976310342836131727560063490792414633218664561461353516324738228817973863811287311108194185819438812517693275492539409693897771856171895644591920725690584924003926936452675597092833027754284376352446412575548341954550363622374857365367545185743941441277795748166589214159615668489791399794558898259720264094048618770995780687056082457656427642080489374899650385088753406095159198552498867980801653118364320653586009761021817303819767695907682754827063141354373950297913603225694259752887383459886304703376832844316843583765666202765057815946118379783998230291256065176335282405023099649781694863085202504664322217141288115845844654491757755505547832514414983234782815332836518646451920307611929850966970562623443388127151491090479294943461334394107652177907615813503974763308069035688594876585638421969964790621352044055560055671511298547578445829965953183444650673477761407341626334256854361739217235684220687415456104444712667430802958410166632546478583295144717436428116855632595390949421609199050960765455184770269693490500940851609955265041417979348501082806402272191645262521007449981137097090375013612137804801979419534134230393056312482950733232880275389566769011071577680707271726594979408830695610440171751737404346971202764207524141753449958847108592270579939957696952794287118400142863105925267320484018868154988986132726251869270439817844119389652209090698670954185216241101703696392893458766622750513352555129620777344539351015497372737925052238594728490416995491888005571796089968129799778896502096060840986083068918104895864320641604522666061325738626619619141247687863772502969790418344000225259416008400344603494096041049309281266478145160007374156581150075455938584933875956429951386461014764434634797301866284722078824098959911199109419631740403267079847742668955533473606314970728577499188481455571861312554038568697360390212074684091692066001339579860948888652408669787688820556992893530486007874439252390815092363447730158953380598083004667709697481172151813458732913960739113689053549177539003184872980519492579020135608361166770947794465595705065283453456916471988745319155052712985060806606265024245973374831547204875362424002678828794747132905096846923656838960766222320428520771332674447556631745285354737422970259128974257982675692903482847047328716516600079404190429309199600885180629685755684787416762830197445372345150291761335743192650564639833216586556827944381834392870993832153481048317686645009205625770755842442648663658529448677253832125519247027343013933975063340400337360092186873204277681342999856351088240897646932952234461241527817082284414258703046199979731318864084000198866131519708401324051241211976081474652720806767062622289020517622550516615694587419087424483074542780685852041119216066337943409116137985360239143661681642138222733068095290464754005937831345245573540520207230531836238762153385870718808259177321362605290716356224334370515414508549255961332638956312646827360300452061270627287748930744725838602491921221613205414355559528796364993121639688968709176421457229625611891216491575925164206876082918611257987701548144334390559616082058383200656765118015970810665925400749656984208707676325664523596480239233515978921750484414600840461664969992089783100404684929665503192239978642496558607727506309738195936026404244785117477191302578011910099231396510770965103505069935984777928931107938743913895307783491838848284291583839240188128065479770154089939791938515776749983883054307385918093009935593803061467200744722018028754552977435830815392354994590328243898819551372233803890937038712451462414705044369092425821499648320128321082755719994559909186261592098518573487495795236096219740105180850164102159966426192523012937497715726524010695243000783756547883264791383790592232735112650619929235419690511383677148008399028769632447128047176858392360093462508080256560219398709616766741507599748451390288937331178976985992283415898088911196738390728284767172681589649343335945643008346633516676695055541539455635952910988783042839936219270635174307235866056509326248189237742408049784094781958632693305903555415677291111433126377475804144541358444963880300305840220060588349236634734291405916908213594745597344061317395818629965071245468035534766100504477988853557970823159413790168197494738271306882390723466397969327647456081895764762854053689789581579859494305694688815083940234751817800811874067456219493879082297750511226486393911953979978852457025425048055071712037742005745663626140733644749445766772661283816245821460050352370955328883216302806065828118395067817825562092087023531918902848441890686405467976665228515454803997152395564290753501840539624669300411316143217358124118234244563722351138186608215053837172501094224212934989698207059811186486831868253026766985429649080278239868953687287971820799335154906060516179119636578090878853085912295389875723688614393573330752795820680720883606523822254672503921378030258031345628086674824792098977904472583043109142857689718601175789019201537878597630281401545785972287637864036246982612742168680691627894550302033601832717901135011121121394486599548060064955086226931073967701914977810957064331510201230090234720874123916945711915228059269185868187188002912155518298532862896293530081531896183670408349987620518474385148108734019447289139485464702439287703214147134464049634831565035605180678902624638033797511592754703386934893522015629161323892753769340617569627971484289438368660991420031656921017896469985861631814905812254491776550813927099709884224638911823373757519524524581711042236066129412828904455579844093327512535299317134429747147155271905072014650557793245796946270198890624687518752953179371542760081356624994817711854348578179551330739225676626460464415427872483538319959932207462863964555423135560751748264051319752529928820559057083261624273945001032941937106989822325970361650293323548406604216677607668506432479059454311345768001710508631384465568041558402498743530914911798010615612221109348679317943246965236247542016401805981702106583008959683629333211799843050293931899249280095247290956960229462962808275960218415122009641121691988644871628526717568437729135718851157831199311900811403989616121817450645791192204587198282638209163042366811629645561962298201529338520063084623713731218600018239311297528457367452384527574949790746187820128934428388445706283233039198222524289343525407045674947883152191337048625291515252807776813081450905822990045276097238641358850569740969198986875763679095647879962053507512757396648317487566962079420793492958420329055929287706168700787946457243450498444938658247410717177626096885737479848247532781226061764420020276253738094304281923994461728140669915422732362242247199686569162162619980284700099074505741778790998442387424671485767884228268704161704840924678725177529984172522318128375599634242943308019463049394736511170850082105849460040493992242438202180496500829349627890969558452012658432296007427157411330358598640140296094948897833001221713688068990916272574794102840920692385120949067658583034725666338066226599557706514728556186125877710429639827055124653447458723895825815166009008151758015386952233212034948413635024158754479341800679676690378752669661417659904656608641419970394704163134198244723311266027649965803788995773647104176463412771150339120435656730866142195466732854889844342729112920536699340502369512462388839270826453580157099284648641057836755409177658609327767308513153236182625540840217141592208717179678574721955849268769629174191133064722427303287516319849320360359108525425804517902787213749159926199556625472954003893039648375739091500150285215837620397084644357226367077338423125928673401814008514791056446001784023326074574234149294876967052849006674946550759295923952595685303254331291483386668293790370141285578668461316586709842071805287666534035477060817957582772733234555898542887947433870789996436146143376820754489343433866241624286175551640480778288329900493295327182943470184244525461730795750752094557627513494589162503729863040366162308382780461354049730869688988857684408464206671770262218311974899564951016604191724923533164203320344868573049504237193401158391780831298556304454905268766132207514820100806709887930732112477284773982681630626166045099975412579362553598986300105953831534267285052433805720071920215478004745712379440481533592940402116027684174199332352501137494250776307407491067142181716669227877414362465409807611536048923887415016909467749920183506290997550797938053006790228822548349385812728516967442949211020968186788269736569056816889945581377021836530227508492492069640354034891281566741079372383711770365764649128480680293759947370746920594186929949735049775301575032441585619252104705344946405628368113984464774485960313329881658174092488535076582068412567478140103881477971527273835557766884006119096608560366001066292662287063645929734928445853109420048667577396317421105005584736981687797232737808108611667749552331861836138592500310424270347829870479899907563427807437131541674672532917660980721532333466176248899009544119972317261524549764851063749416236417157947166102048057704376275736629811164606125699802172290286546813240599542220535157472776265755095109388762228870021799955725372388441889822469800476343943454530521247968387267205243325219550224873784054620881022046425839037041211060704886609824609635576482238156018170522203577090768499645972017337833241330743318619753031873998554040546307807827207946055904751543502001633882595891826532994019425198736017906020779728896102226021645360178712966496491172432057310614503177402023156700971578697196342944447032990374782217330142797238273261757931008230902871145578335400913037046663406453131815818758401683976103763475878826972963898112576069351181066941806865975518504485647876718867498721296281923478355317656470401728044234120754639068917275637273972507925876942080381963668239036127248879028075967311839642405454048212943738589384545137267249031207546709416288312214424128755520122374349686082735500597002567971694841156078994030662367524888617763590382650808836708582819626631220311045839947519116572770261592441472440960419954331972458664158550207137746627345646044322098732089880618391448248825060059670859562010498131558973798329169093465535130058633834873171483736444307697023459199059741361852414073094788487719626624543172236892605880153146064687711669023816914964405365278092531174899187628158236276912935633236931460927167745053591737470335256366103310455937551794605942203491069830438656696729406428618310265064011616156603196783889676205822303784317121311511103591125588853066750447230755402379170222843446991561013310739946711969650288833937689868452583124053986171088852156432610118060058453420267932687627300661336742520799370517602813923734475772880499319233560617457517077568821220166615747785229873440175861902813718000433905879277146385059830787940622277526126606263080413573648955813873395245621975833700253076856859646826470746328398740217341593526121947631912455101742352567173611213668736290742698458421094992201966294333368161712529782654479381253033564612090749451301825253753782873399749636833368517708198210955602779598664650318649300315061564297389770999086703337301185609747424593576821878371907423491328225444672344154350428529352149186499987184621986492916739543283524894934034504123572586332096494819336351752464653579175450577182848582876858865748996208769116983858168174746635904138045624365898986373450268508350199244996395039160009324212322288030596450404243920530660404236986683444778157423708840623796989484856856734464552803168100806143487206801962087817447167827055333533900822292669658185993255428746975029159421954911835493045138473981050655942118993957788830710709341864386419155484942788976421206831059687616327104975685875499667209818356995785086841498011573601004891389340096741414242970742240225762546990948213552425673057369390939495682482426077112422512230609275389458938810528864630376208387836213655387125047457569497468531173675417973129566964752794977755536984282598828286805141991208338284728276624266630231586723754560080205914289220080058321617299429845225963987615295385381542373119303141557159894067429960721194696437487466234149326171899690588758973080254725313004709194612237520057220106105664852798520364498229264508960655946571033124974801678309775964562189207420076516622514128508649237380856318240065379906758368340953972093695882126073054930179691401928697357808550167845437677494977746898442133541673597089596035755430856839814040903925777005611917937391942121275486853512997935220904719315452175673503242647151359199169959734249832072082366110407465609987429311986624948897763627004783756336028845985090806023999588899804509140557026363742551307399219117601574787256634175627681161347156358813416212141755139103534814352174089973797868190393798941846414116113149047307419051490344433130519843206835425484948677734978506098306350842721134678882972675662650981238116774146651571460143748131504007279724595673306447310336596909568199352006392264357665240238438309521681981159119566986031223519671780792402733053956695347844424129365771001321203606592272796815544968136092638229580287702723338916758872568471412386116190770109429151419219923849797457216465793709596564943579368158690878337549548407247382126273560329291973399100313329985500567130021940970752984372129373667916552554877186358024253430119500014497854993215285996036463230387805010953579674750902564344517063143851934738497167880012715051543936220292426190720126537504466921439179938797424585382837606905205778674011719133874628090327710062456157898889342594456228586184196237146157643327795915636847920939969672169644676130618186166659543177369177142153324277044472021910723495281258473170520704307474275904527746006648550161071096600689901828732245211460296234260555064150529260052953231866598466393633795247126350399472850000736664278977462380790879495246970185189983700372507923850383454836033756216764867238112176640091503931794181699782384969177565829781975142942337864390356605571801616467128043521436419691981301114330841681489200600889469391574600882322407113123682635178491312406772111106123526033330347038502343504661380872428941550827249138702457969118510785483064966021586430365616169533969026205605085085653740524596842809260248803824162615036671921105742722402761751170569591961547026007206309031241478358728974587325990407760721907963786463100292229548739426745782980249069556563338001928137639183929969041164543892329758087173569883605629499775596591741153790772973427435352844286916109748026627388162930803940655853778082764272095324632121728161881663654378414522989505485369776298603257042514617472918815179876288753573576425873191173578872992133019863118063655579943198400235181399319276255240104806982058450603010390438718940031395795336307670680237270018738404195850873765888361794841732104752008191863208414397250415316151351150208516062660584719730671124689587084110974611580931922405648847905249925264645464862446583468041653835728612630615525011753861238185570150684529449020165315318346662457565225197349295183291951164627369174734967064423201618685832964115166864011965291758483423406629763608070599937378396466843546832544081017496054838220137202685441740328125508637735095995369053926998894143783817820968506170892282665045277924802811367979539223897141842472802107055838831168650178000752720896821293234153935298009967553385883441763022134873280278748771366545624817767554345830353866152506889209191967075366040036524455228851133123340524932869571905446867665667189220923061119711800027570448481163877579623653043485900289803578408309562019391559119906153883910416077741679778528851018012963495001741684026279409385307264953411866913715939881414206269908290124278434459039699180203770108425855023808541993772106634804523419248657966640902088329350413587892529268177349185688185795005519913127962635895911035705680522594621718603841512717393092807684868839208451433570758693807759312890495281747602629553772945559587736390083931179325217637899912169307333991284184211748848931682257234338418408996980835391605127524140925158899192872736596172975447717981537241872220346557742834169763016308929394608043055850109218515717853222428510350806889924159937137014370839600810783820748006762819361249785547392626459570389967285965091290869938136798958459340231558876760545028354951925639243976275114070514162388947356459649722836619834936319897284113085460550756741761955546362406193092532887323851343966460080295673477784052033510656563126963647918633704005722815100791022570987963108292561179397772787684622412178055936404551613530709120311851501731509786726647848256326237178125216342896675814786890157113287630304382398051420670192972753371649887912654724842691413714230936830327427705788882387160331370240950495643022894957131319887307215109753480123821359031011065345493176007340719070242379833891468922455662968816737858287916200171199871995670446914683898245289503428547620285187190329085833900287521148953128408897096854572819471786694016844728607451455865439344937675766524450456754402466115588296011354602203307194064123869975312638129309135769717639845215618128868650485480944098642987163070506882399759207449044439914628787301014782639664539252089335904180491645214259802842092154783889739851388812780058256416029767124738972352355671094639811283604790127259273623973806338192496574683426934427653698707103232517497999865633604422711598053305798534166794849717149325307793650922118881556349761326857752544922870305685122087021721070501936375952250057809470597090304331519942352659054253065299581076603744343204107217243052033051515284717176412239367582442607254514016485439891703834834861837458927759300308782661409806825152969858436878240338801996716534892792587056827965435165665102968993487155075594767791801433086950515115341629585345300829548663198754732245284439789801070926631222051675639744860735109489031550683224105935706073481581478403331416766325065886994085817997650435988865836546880949506289053549598987993305322853877573846423562853478820485082811286008059136981488961618232534521325839565803686616560425828224368781909577236408816162947816340735802576788570451393167010052301516909331439133456230297523661528577350124587731795802281840514155945158386232949107411500150455314761868491279188270596640050253976472620919027587057925311945598743019348441835832562210116840453686957753242097723771368333742368480488223152817126977820856147510866304317792812578637575490373344613515534124759907720456631127856758110264794056252440287433740972810266676242014197603913782740344267979262165204936445247251059568090995099953353516570289746923356323088088203785520926245738944720625565101345383857940923855451462878238170197651894880966195451877220860778533852487084992820680595250718977225765626654484230654757900412304925981350626246916619403156734213642891973857474116424691876804497631285438295059674180307257038430692084202118336891681276098109264370882219390335313997433976864588307277932808118627724727827196862582960699813983344059611583365104188155224528771109744607699118837164623144307424162277601048381823802762908091455892888302805822986627469043305305594542373265372526186972156620354246797052087952715824242163153949560970199156827041691515285179222137307449778694428340061791418647353095545557659483992681152090123458475084515348238910073254598721004874477566169278072730291633753481630600162721047152390717564626164336710558559120234354940194170927241288758931850468080193477383519169597889104257640943914396566559695118590073224349823463205247932889435511191074917263725438292394369400724325772461676857491838560064952257530696361477583742895680917116659171650647579392597686620743745838890345115552854550742761094358202710264981336640084596068493102002535557621375558243036128030674331226219375562024826659347318112303471726641097702505152376607980996461675999759770619518872684209993401695867049175046154995280498212607669482292676100579805944577285921793302018961313629663918561005073411093043333533093106766054264466905642096191896981008956250797253621253310272343534614101581303710482316121448609392440104948383258047776081246256110153539476922100194617934148650689013872402801753121560255153571238742180764666056969117413098547379013279678819079339498807465421945617038500186625058105743263803278851336856871954891807053888868428549848435166994848900134078281844631967633988506898927401097859553289576658535639906984608132895599696852744959959079888609971118771448994495673121687844031314018611915355267923323916008576445154465730218205685650324624654243431528472365716264993611089447326759219124265041184175678600526603904480919675565463126028584532120854673081815813583387536561509029754541906233683998336334576507317323007777897223712219251259511068315082734870271263656521734467384835623866717770771684601627086245245872617104753897963756044698183014160554851081074261962354244515740502542725928324467626767535642828550956349809137568949953845272146656143782593652989346447189684622339541476462773100754926902488657085768829357916865349004239426036565016187583340895607181635894376904232655781365248739326763105634651115660086742373010502404337121682254625610346381993269867772793923938793735611084322448756396058872844537314976708266134245389361513477965038385813547089495473793268646735263933083970918079600592655579768891034106819143494573102186601225335014610421756779930328561150640518667248176790371072857580632002868955561621738337393235477051236820358354175784635129857853073790357067442971720432198463628931577653229887239764831911265649003506681584609174029468140856645463190705072856726746295301848972229426005626909209739523308917192159118242054954589456600315534241979163052051076324568718371057366037660035447225609148320805528023791773141411367544845919373654432814487280796937804817931571159652600954067593898593594704840286137317788151617829449522797003951292573168852077413651792698412561915109113425661696337023049517429736682198434408156688077471012536513074313259573391134838092262000994669497714231854119557064934655325217969107157884235233765254752622823455194141934459843071669108818180964256278413383944961797395094309976801435010830732452282269866720561875942703518727036854330348994911259311193925697078150971894941883421761045820457065780828506340392585540633303237186733332167390185287103807898319458537655881407270137644170788099189234873182941504581947863999857324759218709201223045246464493154090577503515474569932985842667747615977671482111580012683169877895002784192906360337756594289589057321171253619319905456907083915978746499543346925882382648759531066530490259208752463590757748713232236644716984440757631700018379272853729747081519282657023963933644678752626661750386089499308430685399632577756979502523959401026569466570493783953977133824225514427652278229223347738503148874175383272947940759291117180790139657532948802266416132420653522285932981549097436833079127280838675780613745400990817746442169492579036940080704041340985351572788988168532544950829465344095712938161941466373962473703022823571103571308705111825377454266185469280065061870612131886570792485591472137553692625828808005895084915513711420067887704755406685336164031483035489692998585324096722770754975059320385414298461454238227596587427453905286239015480459044468889114582096500790150139816697832909076715509681688299011293877546435342387038388056790660697030058430568164262719156653105231393807510583573676250636959835838861440530576379165855486785655534892350248119479950185022095894831847253820690541535493492029195463452329971809405609439393593399789583033889384789276025115165925046756620892628633377977317964538138901331055041579094425084938956161409978361113304384456988602842795043099107257877230561548466006914645817181431002876062871467479792551219980977806431245033971306937298846058102900018021467143636622994055436849288395814457384533253186655330000088636467538074256423433929791219158984858251864393665886687118608419204216554413525046877067252059181080050632249604071096269292893944861678569232870828995492223243939075891738768444441292401358181993838624732087076666907680880740590826326659616371661404429316071932880551044753264381234278257457529548969932576380217558397802438535199299450994697088647082362025977303595229413626343753801317412796732452223968132258580902688275561119270048567685717208909467324149634980890508629171439346399165852851805548396578222159380228722760153320681368332274510179921491255072342554872126633884528545916292211168296722743261283103216188599237039394814343992949884441445783369831600420868513769577268960055160485221491296846426332817780691655790055988620349459599329023426200855133197311687687189345276987489266056101695180646592715298999264290892410299496697011958334498497671861271552094228452654140950605009427881865090146564084662323326977120768401931676718856394262854497680498353779912164195623356777495560787969058920418865942871000180274805648102788294351337684951297572509636370890362674110581227343799671057150224208702601207579437176194223174468699842855831168530069389603046211099911026570679040003560372401454553786838845141459697323286374940513341126617438735888984366259369466108465706212066328300687925826387138292746353616263959192242948973972074916617378573897892172634159546728069474535337196148115033900078296021257592403717769689788830423609441785709848647931929974720411733402493082351357166832040136302572490824990839184202600285637760307272835085114478340740264182579810492850805693638982341098472717598850948809553034753698371790910620312601607340592762491227803672957762184513577982856441117463657809137107633645100802084708442582235367913077666868066385390563858048516337275806882027069909570359110311034491430970468521320576999042286298338530201700139776751026023771756719635141418259825087760142794278193378168304394782619010673257386678928525679486485267666517764460353514890854192346964970722595663711346996972313018254467212399464308614407528738504851941538991982070102070129348335085624333749879026977626315308592639972375668119004245433852980940118086451382648788992092609901378100874655422230946833607173400748933677378434671791658309912859682184330433959546795742935881914609350701497698971898173679350998461177691989518371628148657675309207337230039747520959626551237094787688079915281270354438717549301806287940085114544721915962449873048640896703618721501341262589411038485436077667585634111807684641602076380145088618511766223085589523056959664733339052607822278672786921264403024120528766807064953549131412753948504670690292217414204086060193732655947935379407035260375947254726571205162504466986566385377006129831299862780605147322826549291475681648859180286519056795948800873099293197533301375404175628320201916388596388278782208393669134783348813893591862500748333442122190120908492258370427168850805415053433200718028129448988904077573210516090545484008564044188754808732498874162939417520170137500629125255288211739169860034157661437228699363116619310666719945043119981819462758349553667240421752682582024963872344824466023262539900980154652998974704681496867216834452089061265200789983632574823843630785253351346935932126948057651662538897039472828155482974474364047255239385609995905356614308132528091945933362385689410573347941005426731105884427985127080051730152510475841590481948777363755468316388096986096618442341862228282866553654016998622188377292224936289067697357561287520228981004945298366132448030836530320486757982697784452374919255291798100905914546449357692179294314080483211833911286817223945931414837020387546006898346953342269205754328976185343457670870509458925782583881280434452629957558353557468809189338061464050769333973247149991772156936991222080579864983397998621738289115457024892699383757447021132591151352035720502716521837641277341206734801862919020105414739897255193525827185801011990259784426530923547256004456667111999815096774425883572471285070585744527854191820062816502425858320902053712176820906688607196577192342671010523135479830241339308934485022152739108937292931914968196047900315593069961170725777322476303214220774137106598780615434650024402869718585776768745264730204244265832416346377386979854870159811501654929807546257291277799174969288849177525536690358605522246120288770923389532116936683540053832705609984980671698916724937206419958519654782801445341633878882836491868951406802769265040185446027585956825191273650714596663172494730612431937032333004827449613417362126581089293117621610637692292182477222214179176091900028844853674892489149248707667626729730292615534793466263935213551878091808391686104037762018040190237406099703802460212253409370376626682318788729642859197563632586219686780614677312113246254801598294943574561598150149639891237655223738605238601498874757517964500359521880319148722200328667541143253536746844117377192230285677179065774787944789886180450139213453347496698843604984154919479985897796920620350981904036828344150628438801623909844582107209197340534007069161400754988011920244110544728246999924116171009426723263024402024773601731717045674637665788666457916547972800287802306224165200649193169339047502350653930809889568551383645328601556247114518209166960080415642860032471268654198133240768208774515917259803952746019274478721624696288434527102414996523765741171187925618968072685209253854890614363103925403864489781508051302169991743218331794484499130856799864027930787962577924754072795753999756933753230506206118631777706926249415793567333928250794355276494275444421118697820316652334993270332015022913062064390516431139095493648434302703680837204740546420977611574860457895334828815348353674531047972353150181018469733256017741315215012882705543656474471741445402754516481024138858809450729867567178836802764608385599735733391370160351056673483050921469504606140865760404929186826313756789045279378519997637911159131178277973130596353465329027801694387367126976245749736318070410482584026581187580279134313649911149133491718063060812935259046528604112982657958020657473222256250985138565060899157819048906269972181486433134375178535004428319520319389780177059091535930701513994452540481737354272133879613328444941029685193442965444760937622642202173264885455090372095546704370259301108408555789017177178237753670142842206598113402367787541913721059179787695168871149654315849377454649611724547336317666827960271641219169280215756023131093362777417794888287088000148669790265094963582212231000887824203281470224245985485451587524000356709867993783930622033392459649661445617522088266643172648405816622855946778446678859874003310269522710890280696431003965509652970980804851280190289572220090649929780634749615805153735134980611317918990047352700032270580495790886409340705559482678033725544790062373830011200444825030552275797585321652129198746422649974166396214292248143179983503072650026228911843954663707645323463894006932389128209643775497422693007293406376910511445732917412289683730680601479293968286081518561813788061686244347651237068326919727771074509737835356040672428806301758571906366485720336501032291478582314087331725446356667847032529363483667898643047907214315418389446302155215548841531108522547588389503752167102239999140678184276202662051732766179923720048153585645650198622141727325341481697067622275187882410384356074436253824909124854673083415465477790444853428387218523273861206454053849918713402660905966659523381282320355562575613017766296723407280721740302701276082263787454383683761235157678847134564543072196114108832167863993563348628319436460752792910365472399493038887830519707088997787802521788968105355401823647322056553987408826063722327684158182133808613530361035363046307032419968425050880220872151886102068550615526541842334658692192801708035726172665501322463900548857149010121484061777073338218113509575103578865203396499350165028706240741521592345531331736760085940066674799768904436043341826943918757307773812072231569830524862087758093532074113028853645540019934564111836482780737480112992182141306122639482928599270839157595443363425773608889136113903129632931032571684849319359306695545213752698117378899489515521984649890474752583577262006528172083301938210298062691185350062958098732194991404327141178840856312568837133949356715072230930804565324218982716239979721612669195898116110776688911617381813511845767780377248931100797882169386063233581766902081817140551140079907876375414519081783157326265545289643339928552646885478370852285823418793816772656752426989079968217119798971923621260837670274592495094885573233914216602922585899672521745741660551135462801290519415369237376324940399828510100785420088146494725351156920794945943744319727406300646082966243710839765449107945426009657701357755814314916267852356015821397695750808941908113120993752701782785761074690367393469746038748732785475332495882931434625611698597714704473716461628023423927364000280704086781478332044000991375021274289438394468224780958207238941909331058796411065372211341148324298092885517700385100385302848392323302625536980241419731438178797126600055726658110181004820264709470400902010070632060780127632408007908865198660357369442940273745496202578901602450520602215740485466073258469275287194015357507206982676432792902669978728060844059137564591982881116522306223988609741194412474266868034745264869621474548084695258324143735686457661803343138167080477142118203036145976222002565559497401139541936529075226775896435312164421469125810784730728633284286280674258197271586874868592273369234299080974078553130411007611671944505304886809038909174504221336073435553162330009192194051259866649184354894014474708015752817224186441278128839553669987326420773308247260296581001155487991564317031453489319657748892674313966042781523118758432611714478789401179645299935818550863622724923796764169779062079244155595373421931918510149802308562095641318322789597217275522418040885724511933230427237996974121022544013934848131292230516198412282200378876663668917885746660452519527433307204224534184404936205351302284028281864955820061796739620957810880384045622601231634287929912527093252278584131348743645598121126354970120229760077995485130955646135086640962640287977508026555007256007141825377448428061665820213683369718210966893171315173446213022747436001562168372122241363730440216715656814873132310561805620857538227289446485328118463306692191488947099570824878082981103740584652977749559241908582102626571146692548268944189565966143175408747813255018678915748843420032318041504037918509119060650747992121362945505041482583500082891842424260024737839652842167731461188042818750746476137744174619841220313275227029778418214113648348162880665008043879902142888060324217279021438168458824322538085499221710279048503250951880538633327122107175985754882610794437304340414882176127080104917812984619273469580550678536264717433950594753206563990407459981322827216217870606934747065606116118486254339317061840270355799570353460263820345527347148988839345182944464085633612479115667978721165679059064305116877648623081207930600484439283824029221739833735455290602228591325265622681344088385295512440037480130046804513040655075839651776129112953441365525379456193663610871222685552093340323408025564300981723073112245133000079830008255749061980249554174976153709077785176064328764606526374438693159424214478739657029368914770079294982914437000310089569670516774031434092479912616327210812094391073267792225343027256969830939227696287256298319900255754941803504274910528520307789274528046361234510071996225921826799604559107249470116172038709381902939300063025523379340086527850645420238881400019895003449987638753425835952955070532971975435393420975122324690438913214211166208077359802696008373774231339015306548762564928284691991765349435858073626987187380660535358248405229133090546000648785682072181149050794141679528101669435905964577561766530716837643087980120005737950955068682295442547988577788633180167766480129651123221013940646198881457720486548231361134164371379965661666757624498641625942246694252032901738983168187275568433415023384847098204289368528498258532181185301357636320859878056701373115740458249926449676045312927498801104318651780983175920049671599131483823896268103100401316967253324825655844169919554666701228568785112228106061864916729605160892424671976816096411160148674020565851538423324970044393301035147083746918382759476920456981379208605238805340419808888660032437813853553109436433845395085196851881495814227805364281486435250213294538940302514378529471885791961670884687414846316611145952092658943555270688877313824913605336621598316140390093734088816397779699570198423184786356654494818786115431814438572389709142780532595899820224572075347729343939925737244595296787779259929688145629136178108220483340226390319971219075314442618875529390544649853576360586471247572099441157774204921295865207148829161235332731374606598391388468076455058515599780389726542150192498681860571279541103896642897485996279222050743444954930866775134767185207142134011933516278472704388504245902455340003123208756912563564192621644625012333776736108679230314285363471823666804190001018020559921866387403808575312810365716689958766715030117328219198029582463821823337699665594644889803773447457705407746056745469302875413118013383637727745322301156583573782792745624299598110896777880607301369798957048728667261238777806715925691418697185216923607139557298605627802504651906782898879502457373103567237757305077492789381934054088643516977061416120464711055354005982743728501321752716421110667588769348696642456800424551218744948043954638248070167288368152584613649297373455933541805352183742662778420346335228254891417073702147562107244594810009547795224006858791180348543043551082799897602032036333374680540817152037263593331930572334494465599242149010164744564962052177888642221534168235206399535318271196940789005813790609609483846835662396565602813863183028681382780576857496583655485150644774740579193362212417917693201331626153740153402290937275776095524959801084544539293197313220962251974092970010578283507839722512755680433792223872659670541318545797636527405027633211171590376741510954265921002716287687420788259096049558895579887057681869144210289623680073436173784431230555239336801081112900572784067991130419261695287981174067890247262658096427958827250646855301837303974873363764096375715444672429549658025527602171459754597327077854796799962969069047003980366414541271581506491412049052040775156936766647041120945799247807856008002397491767531407928807310915574635938163076362629120616432002073413532462022623400736305634204263380287610225393700780580220913655009958944700583933712124863994342499590253801134288064762168543115208397438428537558736747932493453295474134612615480074152962728640988103107285873690496740209362591011983127916846386380179109507337293710869338963765964286297561584248416622125154863360074044838740651331340926588034161867863067443224834958250093025344880491792655647900192805844738148951959192780284541244472541582639873024853615087092013194859562931704617478482582495833474776450610882918674437827471089268995271707848950231684343070701311991954157258950784307296133840808575192023368079589974772982448242765955354098667532165959360150409603368857762860635141652622081684220391336787440453688337281289448131615441160437964064149543471108597436591127872812239533666512141998303348347262686423503368822101110893864137898771902218458948668028431338243328186987528633543814839879707484553326574400274656595311771588340673398512770831045459047942470347957122919028279823748909443898615267243992139043506935707332187649818506209351311315789687089540348489320419369427219658659054320039490106106168131859336730161010870327767415473542962116629198745132247553469025175240545451922088699269606831890603599081710014095873792098621277299348309405368617957770838346323951747045116720598531306515112664003525268061115839923938928056988373547546245712238980227301974597504086453099648852284976898774835156328226668352666338707847145971961318053344466261264113615884725118489100612537843105706758691828666159077449477644044100754904048291789751253616597405484262824817110966527273738073724596472002052422061248612100440186804616986960881029409752578692068549149328284199864182292842503350255873437421245984980325178811914898208649830138300955437785065878343413790968567870830339222004902017235443718581457314537263592227109478239165027126534521809811506646164154394943525643701277058393330523286645021287069676916415602722082933124026882445408520107623705777046033717394765050847304219107362086299394257276789528633334554427066404457443393962250137138391914980749351674715483173611103630539262222704725986451416750111445424793605770480082198845060499365104352795430245129288352389739717098564554325036716039808042258345479409021961687916357889733840036192447836107382825240591601877530440128704703781922284612561096988455155935875261515798930150722466345663565288018658001569116135796246944779772694543104975044259335501883356327450823161037428271109294100328165473461604472975940205194746100642639217825681864742779918137794009982559574943157618530753681695717235064663453047834132913568241713951258397449303633615706747940942315586557553791687762998483052289071353543301011736063794493123137464253309636182884721649384047277914070226613465860110942092158060878246916545062312281536536571847921901236598402572405556810104325578007719516611781677871685289830769546342022133124876507539860660821693478578079557767221106096151205019447324981532307574582179641561178729609218917851547462738794380240801094066251387210408240323204637621666537591029724788591839422645400728935485623593731319342336135366586317299078600888790785204332161311020427983192212984949859434809305859873803372906526120987364516828117794445946995804374959897312826976412960838265068754604711224165884114679845114398824234527453027495438247520481001615248016412513222824301743728811750726713504777494368817357678568080584604906407001644066877875164243827473471072447452089708567404501366981279906859259046385960457091309941075897109434786758203823571779337354756092666451671819633245374222426968900137321897348213731571332920068492406638219266998218848242676641275327150902182688195346646978809493199939935918760808366667753297071479795280667704518362476689201672459718143452371090195228126433347040879167740066780369322175613713329764304582729579637361260777784812060299925911438960845226497337571562180786189214357020989502739697338591003717895388125597694682690982648951321135336802919206886474782518668414868758155717781110159101509374961179714912085036151057191869066858075923303256504825085117428988243846790667087842661589502585245028300976843234587577160435887637022476558359098157201405188255991963102603747068295134806599072190401080560938419496894653079326363896762162407916079007216954169024076939981516338856759617143717118118893163964414781507737472823905404049384615765879020989418247723119931137852893439487641741873768507860576692239054641217819605940914876269787382476487035794815310128652195154961809128582947234930082683252932484194816248604411645202765817142493010543169579077875763126453166971843018146780689361031791873719317617703472787893074095117372994944767915624288968009442625837686775870205481234095376965345405599384413495250505192919745841309950451627905197123170047326435777834857705367386459370496121052901911185571457805347386835593401906390795907217565258798834506574214437886039497106049364794099462881525698368799992701348123383852039447323287161823763945798097466239237898255329646023558921499758491169593589402069476658994256578707151583132707937409413232981120066566064281716771902184059117427322632143550658413193609203279149107467173352116950612613775491189896904554165484723174526986540999868300136348476017840370877739585529762341529487184159349662374712237810596636938096811330426202333014797607323956713113240725568124391014563821209347029635944422854471027176623421277150878364145008585983452635579847110214040816720236357590653398278465322966430012004836119615750424520478555402281622616647857370395418846702326539641892813938192406947630133135971557849390689084315248288292925582101730939322514302782870115385691470529714941038304062391088219030530588116504776858247248671395603139572807861267137718292213391466518142210087615363088483591473374811606074319652321388156758008829131716825335623179313241027083381588276716652602430889100558262012413142148557132768600341518245569731793054956553174378393662446745792061012866437241163641603534851897525498656652210869452950158925092510844317791537476654781157950844717770118387793544984407428550734594500460056700041678091200200881877781050618603038985487122768406674484495974966084854553955634347577368030633092872530127392571381234281618413794496101052297867445961751307376758897008407595651866871003776186853115993913836449161437826814778772645914526741839976998669288341322870840433277347001915249570404083599425738071026125315465177490173520061515072446735030935522995049609923993983580090699003457001066442732178842463490462504216054213452897476511741887795688954320455323533708432987566605465281124699881400779884591361817210767884274903235828943989344273090363809960244537023141949672476609843560393945932489379816894561349991944708551296874595698987020137220271900591832011571242930025831426612998198261024035483674437630212174975730672119468085057126173911247832819742921204218993170471039968817326592788710079320043227966234493556812891559773261460390203970282319193940174637007177399664886397541484942986729971328477658420727370581507238280054376395359896579045503531328774416404919224838587154209957914688507279713236960573087530769872541839754421504866640389214671227294350262795299601129040782993898845571392408180401174705516745707337811941439654830812018493820802587355282454450982165726685779445518495255135325507148664323106070496056552150725851384302346204352936996195485465874267269651184361156931439651380621928883015352095407858156544771811049752835696168593636362831852463669417336598132471162720433378679858552270702974170082825462674221497865833929126892196371691616010606793587462149415296701419374868643915194588022261191845181051430767437752200983375896875467314323915372703868969412058188415047234183218171814919952142915457452589247362641681343157810046206970002281658430634714727021748820313640032408592121881652943426326086154693921594797714185087703633630390231762716569712406927996877693051173199877048098681670057490902431396969689005981789329105873360462463947006273492489575972361544415981248313296848686965536473399380205594500378360872519337402618544940513285425794700127414671399070334749653250283811656122940078841315687068752660458756534807165093245050396587783749649261601064013937583810179438372110013060786395567058915848799256524139392402350323861211018177478184502339310595093522653155395744179168961267413145858108561853665898213690788145512356716456770828692440072638031674209697695400154331184924378397872954865167949067210073770549137167344712450676294727510272707993853205232733443706441998818337153438858575192438186371533032055138527830192296666629697492085676755391240495632963024600328565825581365413724060954498485506454574780574073430561878667012101131434193576833683855074377496648469411407976792603952855701277626043965081684707902953363227105608232603502748383117780146589592164872915182878816825038241544086248770637332596763370875836497611444903890691641603456383375812423913830265529829840836095672313841666649746517798338109908516766318010886813319576259894633142456356727779992819760042992584163844406179198582792994190642293100086776064859872264567237067255813121720485647157006155246773965594358051233715202888307290234421421879489616483191380764944484245572312653756653978953803700817970015385689200700402439450176673967950141044016197742340646331542445588174755208750897716283195361242819732719858103030691033131248471614735425463309663752236215401171676331740186499127926900186412783892977259142814847882602999385849310046850582769877118846446733743939680139715621958214588086475521218490272925444254170510788157662169456468236911061081633203912320517209845679732531341828053012248152792096245751723453002780930277285003153462036863745537406360119770626046060552768982253459673070030759305668595434207126058653213045880705920790413020378036359258469704902006311133994573352879041856176024091055148079536877662522687171221210216885289956477778783195465884351223657088970863463241748905334176732936156229294069789019578007686566239286366490999632484518256039350853921093324581697049239824688872327668358843513814852544779829503931938718086946359753644753053933444321933491148405566066536045312533533832826127968727030184064014672668096868789878378027803919733557151466707504198021391506171418598269435084974347387574683794722081135838974865810452327841900883094117538119334314030103031298688513398426000056996022453059587076828479347389590116741885699148021108132685229546344697457326180316660625128947620653111581210450936533438049178439677904841023970886276121968345309841891154920984481929420521451309133442654708835513968168394327481543185515726875790910851735109498220918211941526682260068136580986863895132693558676966118646647077380719201553385678517873924370831637998999036029888216586684761473333551578704526637176985096265142475365172632850922486144041552491609039527990120231979325957204942813204387098182244731001393849195392707813922304662729363054166748960628765108652041017175689953874905869623574971367952934126894032614321119979364373981291741080276965236969158618968897856999700898306948350735072271171903492315314115747839967171585065133244216882410594808446543734172145948079952007263440698143824996803301259126053805597907757220290653039459036506405422606825653447247701178327179188114940856588656839083347485639164618491798555268150763780597687612555177791192570411168229662689577531145475023047093296924565490418770741940096519472326436820863631424328734022962468676318905029651449768458263447952396851425208745549220942330754459720418346779360122716757822501969100518181879974414324894067206816504835226509727710345870794843178743299216235672442000696698739849543691356324251783596211926551441101431381734619402565006114595976680288225785091007805812129236478832288733976066199532829543017878666456682495498814246535654355470196229976588263785056414350249186967245211796311707874238523945385561424509214112752372789849047426270132410986467484106511664558657874091982526470074347844516441240848759484340224262444655759558140761383420807766844680006868194867308510760062677621140665838466385083321617667781680155374325130649842238611483449155392107757852781780039292319526526326742290236813453142549822665914863694300608281258190983005102010407151866133646584449330032063345567578498500086102595009556031948539560997297524627308626999347593286587345516425385249077975273756836288472359676130766693642085068082112221297487280846397769661052136566704637875290908420157927994115837985578575895075812416542514668346979112399033913410016347679174002825167510646076352431284404908802446537148958107224595892546510458291935485719272062674768246445739966064083146278033625072656495240010408122130349337134423473132672906231594843904018163606629089175030984903471062280156561327741517132082407458726008445998001526596678327614436090982770747451918357784977194276140659125347737479514672683190055932094153023759104866637855177959478754578902582115368705343977774763649549174517439405950608517795388107974484606369611947094661586666367062756633182126711946955021115553465721329198589330863306074775946573617930796066106401499470324004160327939722798179187570869938213404182249709696261558982467266364008716874297647615669580905118081679881245675023626953471171530026565270510043603388082677985563863329390798151669372564346171769837636587800869221826437235198213005484265275172043309130001759340543977860423091800417222027193422136823630444904373921452697964031821004238138620002630753683240545166269215182031139464239655168912973737920193287054907327057211151711941669007382696686963291084274689968853915042413348901213561840320179897661147727392623747373620100938903525119727744935688255155416497282464527329169051277130697686721425009263025194366227044578749670830280664525245187235585982316396461104610174759912468118178068086322938765508171447540437811520532361993355911201382972060727763142449300815863454620742960094335687483074609337765749837502110334036724638462117852784218751063619617365954597415420314878997491944049766365829194373234933523919555856888607400810211070169354737958148324328534289849595335486979898459344469517289012530616053765489489014560841681405313009018867853458073825416748274307715833718893444635132094927172170197815532806002074149484178009653875841540036724862339071346142383948782494538792065173739738124536163463757121968056142011704841666244273093171029266764528525875199882066784153583711215493672332337307239474121039892171381792476884809050824031481582975626710440211917851479677179551886046589916708808051000496596228923660659350905823929659161396869181976712089257437621006545817269925665201830202351513852819314098017167160165274225179143259773795128031632707995322843731946129529786052678348350831217659234233785793800645451091012868146087838303950361715983635473969904917874910937299264579138193624163251562472877805905081623556966651213216423358557623323245595628607831892584933354464753667138218850780081529560720944940179503678448786414581778146723030778384194924669176935938835265203949621962210040553278940051446211158157369977800537550093536226056369276278283916843724913637621986070822277589226525111306790284406492170771634076011787212709302573310869882820930165810071373178147705742279494564284042012428861839409983892085017034089828053956005424310492392765186149277562030192578068799540296121700335614047542173354848069023432624846518548687044688619252382220415157135548948833109458340721370589014259726423726034849867991623174149217186944380932541301192062891787127409057870696564661277877720238652109590584088699036391251124954784605214842698174940849319201801356654111974058485585402260653806015371429230808583174500767888173086349999091355412889656257832526162778655298696528122163924902260749827006495718915419700694113204669753682387191310383034590638147461977908004372883792754548169218919751617485609252157763484603108407195448783895507769106895931529076926686957858765427893245130243055020875672845645186426556198869519549039725418666693602605435632010572462218183164033347335291296469041009054138393500303895886056239744683053431421356384320300667878101389613510916653274837630717581000363118088044488273943182608152567866820063148699136061167846211143087736599448333414164017617813370171597362592983131185021297871936132399022929984419722800092367165164346013830499482857458511928522331999373694529476376897684795966156888196751727563952878975103937460681773139886564777189669279709168112510183958216307524784108074323861853392965492300057828833402648361003690937509651595538416067262817989905188908786312689844009553426390003734600419664057765776107639463397518753515856445517611547631115505040610263213474451909376321920975168757483495218916769819721510750673743478305044858145989413856641077266753170218955918069764635736316865842252396601132955603587003396176346978993602752797214886974570085867338655389106023383299611149104828943571755116224032884230316014778410424603743500900453733052066929420527512161864082132527941187605585729325267882237595100276788489309952987681954691499977318664995214158066909522512446971321362921259120722743973365874393509776444809565460673113172752384695136223676740100570546996806324263443713098666747169523218159594721571070842506487642076827632150177453144249581360494995981093248969930195716470374497703499800277717097041560779880349730877188100187126770054667671777373615092393199611781747215511004585184813301931089284730873212216804136176064061853141064792260999064192105442156113407965166350418634222372468765358072194643639560026749258628608616762380132987860311606454404350207118511395954852377998451560394652733455226111806697916644899707328507637632913593842363989312007612677197707995694998875959307335660446753262878307976881965864719803066264582015048262996868385506808954810990589925390809382752677614782669341776290137034797393158507178421941561735702545735626454197669614749983318484720212675753412853345437003788113522016583734381113192814996043532814809929329917057834748811231422264615874911114200525620072732108112075306094707691994450479236656437987665366689499083941341009178381633766746332729054145997524294982458164963945809959106324833937314437519775579442704651800563642685715642387009257089517124425589203360420927280395057582047387316031487374326094043921577326000278041177945890068082737268282836316735521538754777943981795716023204720810264806972343181751622514722238948643454095126820431786275925614966563462239674714037582986185482592426886558608072466996315068381766892567961174282397292473867770717547057188393193741000606272168848186158795136973574825282740454990146163477812246546777387018102235352194580207728155524376648695734705638141573920809786513744283478055168951832274797293059128795322347539219050027442777752753557162710570125300741769838689403659564065888712208440738581687389564759831234827168048647387105390135209586499098839524290411210443906893968530965619413000149549770622447554115868381634494695822466004050932883362796167281733386083454251687406660598740653387731340605706552179248294495702239577025150458252737909760866050843352359307274065608143570799404671844999431231054077492585874279563101506850898896302746136927158678469752136436451106832418641129854326050390989913054226425984824012961984483644506040509252904825630819534383011997885609284640849171273236099503049069136482500854909503142519139463671240100722114181335038769015569552170149857193207900004851089388810514371553867056739651629844001131417517261246177184007840832243087980876974562593839087948031578115043652012381863235070700445223604353474952721633797066996069555540087259713264741314572902935321618365520521084994595627857108164826555030754171435521666911526830979102563509176169844595898513119026020216681253928455520273246188994446522237864275055770792160120556699337957319977893776227526224961983590232055317223021435029298812167925456399943409345830712141145797469994640375296674835837417401046919635981238856036504078208947013295344022466605431846432520952050557688622929492771843085675725149918152234597177554130393098879720553927219928574603628177284599146594198354649548922626231437414714278135572034165295790423087168072490443010338675973408690737532105163601271089524368825541225790722131352111868383015030881226914668987295719380144851135466020867995777576532523482089703897267701432624112469436716106532037516976529753742486660641194490208247045384083244641992160579946176838426690527320196311141069026913969669012102777511051177701514500952446950524443767562678349919251935724879781148670822659630982830614274305480477253194117355063170371393566755213057611922721654869376893386129236830074021089420928596898691530601683850380710429825415553645330068266302648849107068474705957913116779662576990454345460844368212315176228135611376097640677196966461823093518327708506717751394460534303795911123030239158611663385317508500081452060978477330576811250919056512785859993903469520030765544043424290781135313616270777804379152544109893927669521042573114383262654556047844360403075103166208954468986657759462772964727136630915525359825929417235639244529741393356221353369365953773939297877066101111029830565714649137339225281204505493755409617941112278260016943175221577060399252574139038753023407499452008296695746321179204570119801542556822884394015844745183193057944110757028645968809986289494469581871092431524069322823877418339738365544337562187541094813037979543696446402316253188377881468927480700131965646730943472384891398468471266770679652098979737663045037899715611930880314892852174574508068726757951583513740142059994087665320134718938649984479369180089978571578919501053991269156082346291716220223292692488277418681359807211368263167884040768064428458708574180205583350697169460471762961236387644211464975068529438668401742108626355439850119191924796345084043812773579315618075363714009972849468366235795033705743453128520191580137730220399250117382340172338243681808528524414456303263572550504283722685819498420085618156610614811529750098134939032145176379099181452396625651998223402281346767446649779139663406202101663233996593061233910902455034857596047793175588226257720229895863797000977190786967566076298706263178985378244975939964161561069299524600077843663384406139433303894510890741453235049686699649493683302653101577360140767489586208829127384604383082665063840943992135890951839870708703262499161289371329547178543395323947158041285439749191082401168090118546381833970677811796590466947940194299891429498080574174040887578089293057390634643933534877608216072077965451671354833240073834735786080067677755893560589046254905129984351545137660496717399234895092849040141401893039963139997512966269203292627494411305308027036503256913078997160262280853207005771489295778771763973061033737900618300435326743589431409354356343212281229733685631159558976413770769733360878598359596043739944160288889339676216697659477703921782121983546086786689881284788269022105211883618106567675598596683807283512836358682662311742539383834635898603125606545399191189993720215467061633018593097349816586650001829793746061737538914878339147874338040390244842321912246900876782020200877463765631148267933094117490284766584786691435328115778955437432860252946548136426837366461669162031350948061276061533888791391731451689154102086406574354291562488990844883040385871771230985546625503020070648235482204424600272670642817460663403949321744253078960491130557989617798992043393961265065639867366126025776555667256569177425738303009030072045428779206584446939419894684300599767041715609997052962665286846816371010406932162009449656128194563986323410234603661128132023540994937004099138091653043092019041921256350450702990619840664199101392227131868510383137403910942359687209910895230088173865027691399787718950718029196406100207310956588742648963308701853583152398363482747367407341272516044922494424566269044881725900418878693779432727178573462807946977008674347597780952653934234354010960833295487260277219398445443938574652579062935957816891280617289073781779634246475561117172859947715733281932032895711107289435060817773388841899030505246827695034884106962815242679864565192191055497270362841202141774717097303655538423175532981464228041018416569000883530361001358933299038209647640393469940901644080042307510215626968291504833976827995493965566157423044398579046940120514512404299968892220081015706087904311371196548972908518780810877586043674473979654592922434148113426762234269855095787122201776789877784561324059487454828101677235908630105714132513428505221270850413060142447009325091348992166183587116766041515404529044682904097715259371074293501866275941840762417478925557093774936099517329097160372717417255148123553693654782445713072028887492658157298129919896872129708915415721996055102268560772137575674770021415098815760887671836140245907756247335214054103377281653534874729543168390093231006513311790521412332952439274964901282956148361016746189741175501057414969151070944277561665688101010246816940227476155051708186843659624842045687417526249745044505128034842395390517105277870842566165112325314204694527259054837248096457621718296433129252507545553136593592061787700455607321220208852885666093239235136501401262863646361497141437927527786622560763716259886214097502164614531848679811146237591692720434280988924905947544337578311131441673575058617257843651690044497902212523311064147648250166815809384920325059641541239092023340202724172247240272278365084117665741142795270605142354225242253040873707625888709911036494329584635995059619997362208703481086395959421934875255752275926474412135260496000745506266835270625577583687849069168733136643910605927300408678905502950750413894647940508015375501871671664857946929070405175108670325355195798440774622636537775010699293648190166306571212621451038426388481246438102542205632027074958559477578487901057077844883226366184201402746986432867830000342571646278313231526521647193751395213596071446932278449030126233791950421866916503986513991584390350659360150440566743710233244751188221540131165832101791654432674121513882419908252111100111631454214240761848407496517247069178717916827358249837964532573188724050193244233332321345442888580352796985514121380312371978516998857778854224551865404394665304248075255977887169106176659017460866125430615508818742834509493621550002268009187500264276141662632225361837814432741312235802327274168120175095717067951722850469990071549390448071148561177984223636506971793302587940988005361076160525054645722690298400562214986215249617530663405517256639787818406663612888615812068774113798278705332504454627556734369099091659603360242758186513381384199465633021771122218496552098378779888133752184600066154184443426181081528180856805198100233723611242572766955556679794374514389730908681473666992018103870601746692457177887680503791613671927349519223817665441264545430693210658262059684915008006345318991892247416657831518351674662582705185163966985526371062019786303762075104234748928569206954052072396626007508264878499178111262053486990349995012538543103517956193904242182308584064855384285252286919391934431858076564112726246578178035713053570918820421422571417435946225428027816292663049492603139321782673647578721249985256943813147901305610420974111103725737730188756505827217062429260163558360232584323489645067709272309109359085080864571678747871198550478393533844311743539535547058522657763272624870509270076444227460850914431319866935826538254094682404211093140235001584609876092747114273959037352162730383072745665427634661977611620143647487044947724474359110406714445704325467979204551631585339212698663490963115024002748599786641835922113117745846134390495283229776977375848658810441262423457296144320134261190616870144965073573143940989227931360257881784376225208570387456552633299610852271722532511244243236673699088349277483965305260356689579501186434571335602934236879391210727966588101438222519694546044758866636547703390789371919975752295736329044192285946340865826256442231661330099649629716381583308915434426249600125808099659685104094548905288418009809237648138313019998344090362782679984814285224150210792743537585878817171560348418908005607988393218956981170651686555455281286809740443717385276330774992109369687800686211263307365991424580660392730770123675441857296377411216730931090616749312360730819211057719422903954146999285267878933531861572698183686345721546641193673179428004459079962185833424469316666728139250376181749648233749903489502803698601010104997160979990790219723623701249050410986689988510709546544661203786106216492487231271350012487545968576736458456838784060918883394151122455414496132619833689393756614732381999461444003096556094842784031900327224207536491731504895011660483082303166020406922680675658382011613169394505807740394481349941894493894078070450966057832585488887241309874470729738997323041563294703179160102396249784909924923117779898935086431666454938992099523246489377275374517480279798013251363191064118662121624579344014831749247643890995740257044554517938564621284775205011789588825822649333182287825002283772785477090629059981857279494987196258961765623699502550991660613606648638058610529937460813465469835653779831223286805042816657106255878772130411601802487615568300869715169322590867723858784651234053112530630913856705635132103638727743910570185079882342760747059183159784689150135088141483628006229336173188265454457860379436586054277796852848934410608047278762225626797055267689751778685245655590143105784046985074024467146847377861084212000716030701654409854432572648485028600401865737262654231051465714155573456215391765528408156057418217776129079294812767425167378865223898088865780661244727913764205000194086704066388619776681193887234845767535537638883907922262030554056699135546952130356591854841144160116856750094718410781133614564949232400781462155395419422795669259682333213018369700144689314138015511908362109552667928549243481921276567888311300973043899710354909974285274222804734024812669892915803989109479350452205798486042612129134845012799568853127082471022631170918971142895862056262820925681679204679940176728313321533951108604581713585067001563914108730929793873004009853419376962577488733724347029883818899784246880399456821875919116265092792335974102857321009612034311441127283806672405617668053492145057314166521878811108752636008935958511211295906979081689740335552538002970495825272619843165736656773827203351381344320273738898673548350366724454191923950862412147289735036116518350365891378582209042274117172072072115842217781252193959798821572697155696824100398609815416727929859787550930787467710618781878884394742958665723769302986605142452985043754118996809799613958990554902946708996701191569133981827527489202642292536852462686650798165405186472518894579933659933282095308243327638698353308495570976558847657923934812225854939063683870516767220543384846957798117794220900772617150109053506449872208260281080703281600191066327834911646634765528674874717445583844527134267423209027754533275750937375006437664603624845796329484180606230834331992292136154284026088009883135624241730307880107345626095897718309330061643683417791363463149458033137991801970421094853468037417844603667181446477071458879630036959023632324864272081751015700660835614742651242698412332058308463467456386901798278500813595223252925915406271608201542534139333898645778951544816471303439223586447209220699635536761271987119193457978943625864681441716938762862683034975902429786199223440285620892111148443333995047291685432897655943133245328226298033599872463245460677921248583273529068503499647817945163227653387626320798981722819855070185266076805216199980940594902588434919424627413134803546433340528980121161452889347007386241755545055329880382252166068578389356403316702639074728417466605284311042987411634643053999770992229114764180149921034186200944794445471324244526440097140174555508443124346125032867197216924431004711051069381342461103169325725528145299149189897474422694729072490553045638007850424903026506146317668461957094028733155671172885410463197467727281671794862996330036264967592498844978603309366653681403691289406646625999996797399311916811226845308294001937916433520072379986253501657485002496673879564391319006537036376027152028011113270414873912011904976901590715259638056747876301829791581673957654684239907516508123784496916963500541845334613045634618583609258461486335897302464990816362672171663400223628191444136027986511907053687220891402346623507586180988630931703410056740691506979166866052793302835431540017652855892702269896329496359915136979896916440421449349825767219438046656064177644953259809597170910018422847572996145547471620669505614977616565192739936922839885504955862692147965992894693142190608086129899555343836771466647971157543100261354710911583819585891303492995943562910742730050618134554931271403780998084462618916080156443449375772458728349981032054705398300537665452841653632422394651549542964605372191345155309683578176996409557504106465527475446005120777126366125105456871648576978330025102792847618189689924469723237515720774855487872373693278826782171192744208078220990207077236734528717571186604372403706326672560367046746708797071104492830321337020911062784078683756583680900468279583932062930864672379480158825399693176675537267466633432266983232241483985350715322990294110843339154846876194403455121264527765146176183039678148085700208878360875755258504266744303702529730850868057840949902165648791741076785202103192083137291262362525063809850943081389090771008919195917460359044342461512484532616449930322590349282892283642531059671967005193971863823817827917617729703939122301290430385943884073240423298899722835422118341850457505203295578264494914790503907844946130798550913567258064385216068623040858043844681517905512913610722887528705036650899172424005480304026915390804532596671706981193102069336244145615156355129716303319472890978481143159350565487592846605000227376462026638610026572622534780780105359887103945952631007093257654515664215800822064897265994232886194849493869941897097709429392061668574815430156709708322653668874209468860744567869248464451391048778466160978779169853209704889524761562792563640329690871071867197896307919066106886660753232331969727147222932857453655836467858635404515903542232423045270874184925393300474956656843079010440199972493955244795646368404721020280300380114386442571598179830418863029649694885401080964097081836665651115419856672499545823581797627415990366331312520452271386184899691207734987807377043199528347224617940683208621763513893690971287811127444374174997174098424296197276879620856204590287882725464234670450623467626700432897605172722831515400833548817023611399337996302833806540734109061714345441695991121124212606737848990960704843542436036801983901804147551631399671992934534454440842177712758688143561368483841974689195851886550941083859179348461890911375170418476001114485202211125875320323909113854412293444789150099324258836041310818310743616762238990672722940831188372867590826543400432011721221893403751765891370358367173710361480555642564402087869649366075389837037691533672622737067081349731102767555585899099989004164724904397963932481561898467592220297348846919332350820802894102458164919986994383794592768336758810539656529501759628538614993813498590700657718338620184206850793656581170632669882378737050337014443655155279836014048989726988461959012097202983596611784611481081682084088591683350424351434579561196789596103643178264976075336386637072034265694982679037337893489024955079467501038823150589497967984985678547543348361879849173598190980638133446520405760961764281201449310283932146911503697212063591140764305575362707688458991583273063110708244826924131878886389412895445345901336130914401056854528932038698562826304904322345171673231881146321918671665942237281702981378501800278547139028401327250449992301788239779155219209082887361211236185951455908339703848716553904292769849039327395039433713677892934061940960328672538241079551844817430739040446775876871412168788216304221636340632170900861783088560024395543780485718768833339915102021456592684323094261492419659532293434712162315483342664559835329318478108949311035097796872146887333078808951317874469023817592647853384964604114815009680389178532835790195305487078498983220497753012846621474915107398300933041380082458775972779947619723850007952601059925456892785810678265296995983520825592998203824176224880477720316213396983807241851388508924238325013277282401520902674068311905035017686681573787469114768774511606224202573177036988725450628176518336872074504540857167089466336488717914550800253742499922235680517413146589017658377192816457096665429900565788077173799076822981113280743462995118861003032234548033892479571158311768347841541464763126628753805997307121996396502704237551609514478109669860753206741169559195025786552347166551433067417213693844037035324247859925351369297783860673164812673428223186566428558953891436374757265376193760549533592156276427065982539811130260744716385706922832761609189240881013805764462354636467176461120173012708327947236034417521847000611215449085881920821089701437711351832499715497410185927317623634868990188638731486027546445402988053217468803749357566844165040787099494734068639632633791226055066672958002595498291957512911088158910336249666647821912942993044936722547730155112084686662071880936994370770091325833932056676010004346125890012924852724690167847537630635621184134191201118285132035684894534391388002766466185091848322426551538158523536020206614302060447187379349193287789516812475043439970671156404537481548972462322211339776819760960886147018053932078693683009419077534053604804453660663587128017216026800628274042489617673546261445114950103869662916242765457923916315244975568168736604936306999872998382213513097504921941826321097694940971087988226121235807039603735787305532533731191461294324599194634692299584640344141022836674159474296532634035267674142652032669113737184228690966718787440257096488393927127832782213808948362689551619869235867028828132767213446473033849828857253396811241359085609523273935818127613493989292214303750088157121204776398643784183503415217677140386099253894446354141182152211220499968034863431552239493568993333863538452177530703557910865503286471869810823224803203557086434312472160624550208101460213880528767499467856828523214606250967860875698123405314362481849152009678306777112710402931890893338130750101631099406841617479833631143296394533737316206415756170496997962223172627425200280840779403592606039730512057437570806691294292126491484358368281096213313905332987795884263918706106795503175730885093447745512636223019705762947990146392747807017720713637168596249055169951127249157732564531555297436595828950670125241615764771480585557838013698526580875142860733660066752239486671607870957583642838861326692714187495042719517954967671691727829928529956548110978351519662293408693441703502367938092181110713699525938353188985252021232175280332240844941819421704503308304747012224315081795546793910012951283292801714099516193030250013697111800835154461861633241501675728438428156660358899619933553531958784589908313661964511635829458068180685472342073443481583321913673501948921807109030069290802622337909242929182711283596339260366623471583037494797333443625193614965315197110313313180290959992748916591435612843897859303171028203277028788747345968472266070470559140199714315458446473437564238267791185401973270369291100576742520068029353890625678627512554670977875998656570516257344481669693496949692043974766057038793185987875470571150420520790966731215881775638809962668676640843653062723566421447733782451617384092730915503577554566009194038977681906582930132411228208321740665261300352980556754389122927124646133808087476052724664599085995348563909888219334408989844287652121025342745602687916267506275890879443492429881196940849484101817570763754619446772899996574692787828228849029002443547861119870987144586410653987161777153286175724167772572870977198515818867471250444168465257826184147041437004157043081885446262205460721169236183767551660432868094897356925816050133042166545387255666005058828825323172734744870201521209284973336419131373288084297979323255786809845507255650242692993250844871966963649375597296281177821413993831532272832614086537084766957271227650782208777734000160692808923020698925249321445882316844929889358029540853220298714784952908434815735900157937780097838316125275871377001996840214076745688422861054314680063007188462861244173383387006265477066315144725954112371436980003516443034337822219465782977635664394727230050489176890299094966922868896040057861144809054471606691736511604308933941615777532846270791021474513353297221389244471372743013840873907624383926469561088824202577926349697845777713959732649184657989988310367419122962235119334652909065777406883450445178343196955775473141004674715547484669513399409747523342929152993804340954341555610219423183370401018467144872105977523460582813851159371576443128949557823887388654582008007583204222881894429917879420053744583180021858386600629584235761368626818717635830125887086692801794960221475205213929747110938272369000707543168819222210461946903118202320182061546803597144753626577310925532063686583940773101995334360689940369290392415992113598596810537453836144969324993340676110518668491492341537478960511879154019274934604158373380149120242233578335821193339248029876662999207931367625144031541714765381112478846455876103578008351389187758516031793965176675614300284649920244025269082820321842236439490851025218033869780060165879258809369296188753448970601002778928955044719387321405671352048246394609955841553868419213738075494291345116473974065444770860808289327414430062979018515996381213451003813446090619618684712236695321108197650317529080779337422022278849667370649228610059299945972223877703568307896545826171527371856935225840131987427352923386236217266268189287854420595565690841627287048792082245895103021062403156772947768168916895577500359736219508555530319335328035883258605144287079985433779769879642626065550710870758076214595402818942301128797886838568297441255329730110604214316567281910366279097501311864238441564926122553924130658985225941438919406607074843272733377760288727813289687284193818393391408488783328498913328376226306795675285078766894325062751075812822924560974790757151780857670992200224632888163192049191922843174002251164325907083355178503906670168571191789877800690476967756009622338386958025988360277726290774289487498123899889323591664918686179540246392282417828303867633562019616716639565248466339843891460381335424023303109402841936411644436740477622534846577328218723133913513191760716744987231839732830844037717996732929002681783762968870985263675693196459977482839250026676103255074286133689283639681810757236100033890102342952428744670230322753540994577147846633724018906063303600360950937024331230535595048854263570801670327433531118943828314009044764341093574408733433610667920402803027813673088647787839487770775511505923654937817911674697837475853445570539488347678216735707321052887543528488584862566033388332389314746534591405243400554753095342536978472209040470351452937959048688861795805159442881337998367425680296840435442357691641108392609990694293058341517788681349322528161397242196939431812972176138691906502145886269676211754297274983770610125171618942067737364831746155212963793383892631988325075857292854518227869784638676695423683745229311222700909000020732048421482225153291809534456934111486487284203938235783636125555684346992378234366242704648623325261180534830311679344140065203851219701077547482505868746524460323404855342262380129899820349432116624010954621174236361667617417373319558393457474945217132047804716095928621610595644456687673326941136986935560917304704125784727873665758273236898593819056979128691203892972394327821044458510823688975471531761255906621202784846868665342767817583804992989629566267141409120575559382064593453321709905119777248926690285808224062599323846669381460224261863585449772922278494941459404330711807909199802256386725178962791836914699810406230636960000106860296071732903275946666421692275662830191130080573857172346534705973599865626655232901764293671790438765443272084364169190459038473065167940625175788664800532401289230348726171512222320407636693894237037623010104289156337711445002146643626259944706217558917124360654385530299309450311647418810281331074516305341030858825378664622559364474180472041661602064248364565451209945989305198549351383992893017941204750193965108298044582775170556365316622270502511483124919935570285006526423407032603280876529872841096012187055950898059641911002773104423104644692657829308585389928146880911658135050985334672930379283825327716423190367653070088791938768449500063973293892157976782780963493237563068975259434560429562194490623738300303433742840098296184236564966849246874293216218702766887461493970529622819072218856500143045363927052303739721807504535867109204391071811014732913963204227111470962359834417131810021932584659481816015630411285519551526037039497783748637497743131063645393188220527659036850682933728315729984561169743976516412558192138037350783994821354852188917875706095559290960683992374712962922656747903033925170552738815939241927028609690682788870120425816546568066415147436567190328943158213182633341904688796506545376726816993192015254519491904299317973727395569686042933729693426429211497111245010946482572960339278168789844508642663822530362109144601255617326876113675231935575653034093224799648231944508231140792219173245210669251688300219010751931053933562612425839377153599655412976408845123873750694661551582783867180680776539118352124541740407933559229505532463237738857171707404579473764374789009930382557000423143988209565997843265905648127566833887065490755004462730552204007495621463891642523919897707361456163689322100357337306577059055947350313395656254422861303274736101707517797426210937897030674369195099828986095534248511337769126156460257896809434475532638367333543573197013631168042250512490397772317367545597645763574092724904203069245827795824495667311996347502616055256065687167353284069102775824108045096376562970602817231183891041577098173915168117981845870232926606840734338980542828312398139366393814067412904764878385399061758727056865126389435894174517653450544858656816237794300872993041252682985712696605888199689986641238413074209488221549583215752699769964805363851792111004333551795789518766609247491553784103472379799240375242760541028763870628354121436569456526429523828429225433668533527416158916193309995218810648494398371050270635028182644895522442850677686953321044714953974432563750167181044984748483834067665701089947863475055674561478777683214763503961163913888368820887309553823880724965135544633682203739122192400142942842397514191229506312114802632417630158337158263635521278534482932036463726713075189110159817640144707868119893392690564310708067393969447633314400150975203990752054682743754481935452330485237140795210864118497001363340829059860238864084100912669560139979917998990963512607837144909288205651048634876880269926406488741179503394419880289089486361909787284067992729572857786688771159701299837954869119579067571963325302866932582468224867138026090459905577318881641838077979494010092839104360794934022434852137160602705728480595699992019647488689957856919719586956913669041152293175825360516499578397481831753378209844125624853059223607590515293414377593760088248346321600994842796014550349590801645785743692465887435561040008140012595020752959176086196810926528188322856262125868650421496889833302586475166751627474764316229675528433668796043014349165500055291153496771136792599230909634700907066542871883009925082555391646210997383786171569654813962670825079562824313751781602256186074608947981283970894326216902399425503302734845655615218220806223603338309734042614533274994774344311566773837786074990477627965301651716897327196523350832624650540326119534296756437915331412563890425185861337447292350242440935795353069444399916555600019603348065522061282156140164573593792048233523252954830716079916898266649246732055595598385734013371024337364220029858302980110031601584472080398836954521117645488026733045268479948938423752090332512244189640689307370366734998226929467701853189099381285710217739129723070638619334730222921343625031088866823860389280026607781784245046533838792506016758443858531668001434973363140548502022763222022694003900675726246816783032965031101869760780955936859374449428236743779099359390984185840195329449789676515134293549084271958952102643485284797583116593319656576469751132066756359831674200170561419939420283037188741820964958995839226347090064517295416112498764009372025554161906518357404984993760324063048463305753068017490792984109074143570860241052803874137435919948176864126546209052921800187880287971125296558591877227887512040697995706736056567184951712713844617304824506777378308702934663844011535272340739795050365343512456605409548057637396970360809009464371464772753142789240237792113817552399567215709992528285012247957694056865647391430441703718622366386956824503795476959740835621508091982376224628293198543267761829916852663053416924962914093092922956893437333176596731427430885393547933132216101879826063094050753278076157628737059965995973863319305638363129050763759063236543822329015360386329936398604359683457188941925918811165908027733216546222255835024691983446369432651147730315850361160526501320069922793212040044605985919072014682494448378128142462217222453399136990731152956431201424837348251021462586309831732896287421633814019611912547348270236103373137946925011799572166534389346008682901937753552595716366823394167838851306293555456230938396603859941496509051435008176578205949881233769921853491387526068625908254294377990116442435384283553901164060603500445967180443417970424328346500162167655918024146902819977503460778491211997233368004807200807159118666741330719935251374726056038223143875897967094139818254900770875462164993739828579724455083754886913978270919067687448187625447006486269527272397227572836763689751059309252351173588114151176454929197466583306844473287958053545808540760009420702935939577024947559091006994186219417134647912219277504093223726937655159164670963819293587607978562547020946186011962890075695254317873163302438712713217656869240105007336803876542166148571279641083215336867592178000580028088358932387794492008191189692499020762531172083906669479263287302917515904829454653223439103240313624403052294865498093452247350083140593681667753542066243175221714263560354088879099553392566871179660217116594292884585231750386544152005836370951438746317227031522206893750816068703918294175109841573105691237366446341406994497032080352139982489674826894681054933086540614692988373167464274929811664113124771618532565013129441155842378497927507782024714855041647933179751172107947325470218437354634119685728694457070617861402858897295220427781201509237468266765541859631088292335845576671713568846490823153939806477835338194954159637416857089415320164442607077637862023171788739619446368752088995793497678439886558731390086198419157870327499226590770644412092972957315862962927987761463803334212780032216636878013865563043866932784188609323435778890784226616562142908020006980439290260685423776697389597045873337202110832024072026304324262780516265556943242538857696837469008483601072495578603219946177283755191141800662206487934519561386958077999272332907349501056975404590614492646863775837300829961814564316076677350998520392863671281046696211331183878323045305308652859643963260606667204009927172851039997215526831361905536233112818984144227681887452045231061045870134075698997306598777253996752222281499096976995883045280772042209688108334380486052295891110742365711919484693330671141008246967151286177653165554674677175717762198219871630511875282580697963023574711968063328141216700325963229363943046162407543067940909595554320851956306480813277786353476813009704389784923615903720607412462370867240898610567143273788075998941678522032763511791147459808481127731812306051726253795661185702100370215721565236560171806243597062168214701019003551335810401018572526607609511592536316799350019175754919233766510564111810846560924888923766102005076831970091435909683003325328302413099200092101094498796529024214759915909256175469699980661631943366455929428546913496016054633502876790689330338446555857001627343707822924773445629315178768218776772936411005307528993409179534393397569462450017863600931825397171088272270356718685505334517523486082176649173277690728188161845756565805198402852225551287875478418280788485028503319753857041463788118080122719735192931372394327916084754521597096424017130591193040135520030512052806187313094438681595660048396700166618592039969475623348008146916283819599156867716866903977005542246378274309644976252276624195377743452728833236728213357781964399779748252017120757187808693322580323548706269916011012493385391748183839266192702210620993092004632198749534682892458390566232745154022955016812095211710336898832389155027953967068035998936946833658881469594514873072378804378395808454767135554761547760862489058086751446263635518361730056743908361957233117884899602840545095793424128725170444682941743785072162651334274681491418578505666818978163585732383921405287524880000650936828756275325878623213978520310524231736632021927403059402585746565628707337826090300171027810386089647239054233813035505894744607622770260593846754067267274323387697826230177441319603803967910783966157802228982535859209492089240472266578186297127468290453827278967055534844908430330510103785345161147669595483867268459303229438032246864709010496781800545415263542580503489929446340442606868954575440862402156745110582474273251906049878590821037832421657763954129694341232111554064349909319108853346260777470948159798322161124891984986794957770305589670877614404741829275628098042961766705724251564958063342641852517023127497901173575555505025791371309012139847029085118884746630188639504301126448600346498038633976970955629946578763572726918212414322891116052536406672917116027605370108915587622297457786903012373877554060796357003473640084011234567097738245026515759345947906823789864297849333249996868181395707182527528563131550993705960820883647761963907872269731956086737485508080589764800911557185228929106363881015002342117838405978999853154555691300889685558661397667049758190805456294545258837355778897672081534244894971854489310458986568781400928460886493247536049053532992784054470246685901167847037583522154509400041677735374952347254940490022327007649011954334473190266980496946186698605229135952759608463042768280547682763364208248057657075966139521960657434675498920110025348074856914390226509070477899570655596671046260218999677467330896421618642668276623062381478828563109865423224116080730629416036839978069051305266095044999423653114143995673441788552308203269800467561775748122103192037623309968895051565434246281032682941870409174671084084065300244254729663811520902947239981209836095435564882572934073963493793987541514405039720986545769091916287603830080532683323535931443826097075799215282229795519268648492476416343031474740283017074483308042352737052392241729705756141246190042793655018062077137548986314542371738071178432120807401691408178959160674018998644909494200617875132559794597073693445255105279902403585438056686299107510513162883618458872985134273692812204283705217631353805735498691101220082928531623493178727079932999835195363848724249449949095171676130276921285989261123251296315649120579484682528698565290093351829081930007753204245781988597440097234777077492435299180405140254135148170364678028980453674394763818641821616776689732078466090674718018165129410138224227925047903050874516589292897021309281424684215983136066551804816760018127585476146024392166560992614820445893131197189753473387185488907949849168203083971505758313457841099246543739591260840664965883859433988802680310155309430134684468877653803928675300961145740055908490935621716461421959230035744122570957647587952015710282821778422271781921272679125570573685783982909509021187046739638258526831652003215902751293349379512361328285644292520986849211710124823145361658786517654472602466238222039661678124596340732344242854197273461258446196986148290252575137412207361119345005315357191044719808021530783997149399538587987225142036437262905469513653514533073938923259718240288466140003840716086788463256747255680442959728598647895387127673060838902412360995356428871003369451316119718572005030652910596800005247320203325544705824037759724576060423605509225720116060818359249052854962081885044715829276367240732980463821685105522617862404696806825845903635157395903575721688060798713688669403540000174645642629222632925792367681652160639682283084866207281530348886156412380446509634566997069385651002447950853741527832882223600429230063903367204357903318197455791873284336427052000498073841145623124223776098568692622282328295622422941606397356033580831451729031235379212904916358621969392672179255367008373158576838475468036787365279978785048847621056538187250550871870053908844872277038850824250461241047662125555328550502932383608017484514495158539380251524332071141954300438068348605944076300145280960373290957544925935514485694835837738594893625379961122112771645646564432788831472765913011135887578856064081015920743017929582416559720793168854220145918240904443606853732710315474553934989377241201076099995260970444074700128332285900373143319789112397998160532659317197857270024636073146668817865785907209527527358837436947470875918342321618795741405831240044501360008582097020801170830855970590520261215440281094287473156007000346600582196146175883948859775945642369680939394639745618030573012177121192708682084977854492377901414190042181520100031111719119434334957541667833799720696542477034120394843795729038604406942393986531398677022517550742246262226305869892559862625514253635037833689093091807105101451012647707466470478209079039487231739624846336753107987436364945382646899419534626948953221277791645976438405153666947677683537223098017793679784480485237742346924516025232648039350603176590087206880399459420411546935570868408209329001305984960137346368070350567984913567801840766747756958967895160270822613500306421148895976887154288327298933158660535045949145297926019641802246472402585871446961668808511757106539516946089992268660397826142968097437782996892298938103243209032930729319889271136368639592856537771704469921511988270668966605266298300892542440220092225922730900582030064732291930979559101932904799873376422813471207127866883082289130228860041271608663459706597795356460919421045988262613381351300476608463084938732476545275251360067322608156720935184630225079650042571797030142133043742255764589696475178993844882133173809759500649767477566178143745868349094311022848835473572193557607343033049361095613919131112172766619858787503597497775476576771256668422862172968455468595720176551960595449050515712259916031694552910320159744550745194809812883960067528080896195681696041688721121158321472151435125184729791971937444373330686978735258563464385950517258480457033331248335220467454799328961602364365944630536914615578716727636700906482638301829631664014049693700280006073073890266872054831202063604572821756397395675926733171147349575823849227004675709424467742988914478877322990968500430405434521207630744370112296950243593914572312985685353579050086869609562548343733027280425653735972693639274878915714275518382053428001283344217952825235283546953642772965131697852023832570127739637135215055320070615436042450713380000389084992146143221292818463265623823796247846140431458303608227326102866864967408036950808592494200819748085594476419326880071534582189693877996162343984605234431033177163012169888075652410918095526513152466206965635513540847009280270393755214801684416135336387219334030445879624579334038940132525813730027035254063529564850170094922398020685689323613692603057692715583466069310810616220189934556640965784218445455646237586700080910671981082641176506458847587254048226943192683299838504470748295384295340896042745275981046693515315022958937922234426030565817860212026390086068274135491755707238502397317953598471883466333220553109652293730846319217105188707415555905991076644929872078040544038154045880012416574949265135573713141880444721969253146751612184535768113179310428930594141540275340207283413270332331670657315891775512019162007605189069757023068734124063322483292521059815084342010586976578963655322604331594925273225940046795884655063684121524640057296052278484047757268048951409837740798794731333847935017178102653922385972193759074772663752822311445509498970149105578287078178247518785553496433857523790792553292422811375319018443211301583951687167269770239283189911393630539059820419977079302396171723411415172619015500413045596319320553824349095169758016417644815432267701436476842178570111569158949161117038286933624803852117258279137333722454556364948984722351282386638555262752254887938481462609923928868379608002590296539874047711353046944068444326529986689139031782853708090711050769989122794785883630693526722771346189060108257169075547689056618222564770912259979695875637299891906810883892875072449929030704546054438563820188314165589772868539319245350719699403859344584381162414999723040797931562286324992457472243759648669020085207754757661396978028562016405183577017110932163746736752803779856519839624146244647997142208860429043280886517792607078266406312348923877484322907700811492351285586734247061280149926087361192016710392086803794630021457245276662620247186245660611103363523032961728756666408060996833017337878209512692955621819003804355041310450447225671036448532472694962571682632126983617867973506674934046361431388675880352472834578335688708468127036614886370768644700280826305615706759670648241948489160275386441992615384189877012694958772032663915584648784758973642761116413240783784862547937453661793285537262700279130502987374812804567517551881102183574497786143158539001227679634450819111670729861870907932419587694871173842137281331653156013156496745796502244630477164210217445664686033798911978506918731688020637969802061374883977444087147306747691206323275806805642520850681651213028460229611637251007143658860518336302099436675725912535219738903510933833092246798119495783829460837465368889909361250510954110886738635661566708913876911116234798238008545207785089651325220865417815820182892336785153540768035626871615998213867842102733642304775088448203429816364736044623421536163322750346198999243850521867210543023039138012005077662704488263679887610327263598279047628873094182995724629642381395658195098555039158529100136757741281494261162858347097875021767475632214752457033219984381753838426097112183062320607263806521204558861678574730115639036325149772108972681779350315881603128521220595145786184008652565736959721469531185842747613161143201680494992091182256847548299898360770588679888399966447112762344498418198337133550769652817001381294204779504993527707339427879793818767335897571019634285744547933957984629244334376058865068357226234353615719806554554865749003778608477439974705257861282633394205736714386913668825304301736627859587271560354747152285358919319465109889186937770599787993262460541312747911965933919571989842655519038536092323923307698840666916348200327678322891784384845368952835448113330516369100653086619878991119679880325048051142698796883411500938769510750358319532764455557876688170038562719556341742177401199167648600523046532344735970071446632670642473488855635150301187910251995748905714052234157795591136788842822203465093448107760174701038839297597534568338072185894743850394820658936635144334192697639389710675920329644426024952394499588413961113216067252200271249454369811952166006172886790266856053760798138026664178412504375551073035764629065216150847348218409480062466147292069428665516643687531031171274754868643034788247953149891201007411921457521370598840528547297167212808515475417562229949436555655768084866650129279363790894181516281002562691376337104026261143739020567738596578459674792170848251783578614741132858652385061853137498999636651457859899552282880666308723414578588526263082680745225898583471184913470186016191357197616050494275370939676483906930750253550110653541438829228760776649516775871004385237488240500573172726286687417884346105967195390049779471681495771350410294084643958361733151153999975525138127831712857273996717164652635421346303148444088008244217616136793217586958641242777624607603644632501919837073599991960455091419165213169209884681289276091953525754703736180147720153544467235420867491003997424786181741456241514826252608049117676843106359868534555279319735375662069411051430535334856544254735915562327455893146219788213153744551352696393918105829242129858359446304079791375083289007821609240931648186607983231664211959820976149411603440085231093825181256576293417670759250675386745067709831477903316539187270121651039544654376484817419793559859286671970385483161161069237942384421166841324254925499218455451159054089048769047682003730974820115476006511753792760865102050521042829156416476174786697269095615480162118351323649004422076700975259115979904669809365722339665290933032989494457963492407275634027741782855201902922150666904756220515058926171154391895402884409826535362476179312367495968677077358266874341727729114070296696795758877631257577380847491956292671020566943172894315350039774528316984066122228450482047751989467686722774998096593133051693154386157669858904526879769331713022206752290499891892867617604955308220764187753012991359595072064244183648538585310967012370018156714219908548376488376648301240236597768507930465160345054901110143165490673590120678678931527903168320100727243709089653364755906852122309339719055280518888282500464215878714508867189932780219778921730664322401913231328658665998830868146325609391036932882823888184246595693712507418261115977655903811203616509454549118476172744800654560054288358753601570183983685993015582579618855544104194079784804048087653805586182962810357421384406416975366458496567351096672347141523221991654567680766056490907703458505785638490794441647380184926594368749767759016387199690417096294514291872439551336557744099227026223351284473013958680088385770135602850064433447935180224218385309187021583495255832542824345839612331585624091614146995429460776655061262538527450623626720653776566015137460498675592619427516580260398015250253036914747504260932104667003386296031735687274945350946323107199346427110175087182886422374980698055201260371675083571583094466599265382047476694525896227994569486408919729557194313217950402399676514553099305707323712940048318555460921549824323529380016724036834501563216921662009622438469601024555080818082294974094965827167177283626274223408075016511699013955998087283314421085364726293669458660596856057749068774506741027784661502394209789123807207163122617162117621654737570746995314037076770071698299224962169452619556274383984580597246237608750299631878774118388043329179356842085214369957217968051299869634185780997260083217677101540468483161851390191946584323636043296218886297920896314081894632273219652460513346433760191886553842062508846185530098049816724580119001346367942939332063421739094835913309523259753928337367899518998777966672491778109572407399878307651408643424862523333520061670122121862521094914301578925119565659125347336451847938848980082985787867212604227339532387130942109413897358195047456521429809966048456757397995720915938589321308141757762658878648421577258824733346197470945886583231002380930868529235146167543710840922065070578307743650541364498652313779383657634664878209167513754006257958497945285642236327529359690065725744257445332220148534483938252383279053500681253632055125145961759769736234633930306481589392925741603726320752765531479274537363265793232734285684253333367113973675536763366661476019852233468699382538468486072993161742235168448548614719751741937414885392022782524955515401072011398807600764753235315031934821355117280994766888886379376962317413975305878522819939846282976901724510813906509766900014795211867683659689866347086509821926569746428116472602528715227685325010808807035337565645324367779992278683633532811250989660724702037115249245107259186423914619419291263480155917986558264260756149897620312518821214802034270235683145828122095218262232675550049825485772206481279818347031080638723704345292272926725816441394838344284394804778587445719816100588777180395904550529559937010595062794824175964515994394378118242500629228869686520955871683779472992078176990871067997867693738942966168071396158731452362344625837428052615991791680057446495482921175391949389300797822286655585314164269086598134423343858661218007060175714627802281193971977669515054484371576857432930047699294032389834747835569778711219909544643810850207264684171786890944211599438762881426661098577077316982520155628885070909035760030263018720594724752633890708732487462455223238331583633502002618086009879571698649092542785764919153281917487702297328445746026059628823130894515523125462509103084964499345225966804701712376104401644478571488095496132395962481714499032724608993981334472060740508681825006643867414348771454365313761430351653608933029939458042938413197038327727213119280670436179268830669494026273831511318388697082854392470455302139983572493457580161953472350591097246511452428620855672784959484636407747385354875179909594679770793398979759171022950614891067812193461347150356415567807977173122790447916954912875068309641903347720290613215790364566046321863959519115645273070278787223829647387580310660644787654648324423922089563054865368444336482771384346193569909844071398456385568040936120316426400831933620798460586773459716465800989172566592899330833142910719476022881534246065246221275187756003965428183864492493482216435549066818968361300241784978684295530070459100786774518407000479663843844319171842525040526271276160812710311144014631141993997527762853140253015789511310580957293665931568713020294115995866438902230076581263639837148041219476089592793401474319287659572398444873227617799352297880480844338532111421126305672839473843545542404761034789465520417275807771086474852478335272497166046920719465370587184750683745738726679008328610532219840339500461342359749317946197409586092073583834148295566168139117655087907667338716161546746807561043876896850258913775279498772803681920810199497141564962578415515038982302501218987995120612580113504494498087598081606594741270753688711960620263563422798744142969663021621506214533071909712730895763799548218800559653517314442657082439703716195076573943929217410679464282976005551213527257414904279830851160900181661120002692500108383695974026102764822762623306490103296844734708962264019168999424266659151257934538136848554300362912218372983957723153769690847166831014492555759804748618743925516907795582188299767815878000006666269829276732110373262443875278069698009388303053809661041160502887339401206315970786007823313958483721159361941338323748275903246550619698671789026510034347718751157385166443080049874820426324651193701927214459624779982513938631136968309021426195047008386580833852729500816122426220111363667775344269016051801545289074235740566683926019117000487636868679347614172869527084169493084372693678485829160852628234676550662914965185591929890232364320155883191483150299654206804891871040207284970403720371125295591113396558882138800501770372499804809167254211552039272419016278364493692987053713797922503982653321700777289777333888258316339276491661581556135331412432317480075324871346001614233912881314254689235899528657592095194826195742070745968000380273429867767601268757646209780911976600137720649992887341510545828963440628048235989779509046881413234459116561365812123528069841906209966733222640774371288235455201916657297227059849109504868867105513708523445651824509661273580561086847617876318603282594161574177778575409472728822978188779265854007102597567633057370095638867223957373921395062009577132610031752522931602981734532613887569295677875411052714373953181485431414223561480593164082500139578537207091895939881385177727719440365417607889973145167666776266207106712061486291348366931732898048339521695224480969597413860741046388318919392103608856763833077190525182330504148117706239693405326936871586765130449127150563322046463716678523819188377990917709461921395201655001175979290658408087044040619285545248828773297430186855809764536620008112150465018161678259578370423665943179963078966065700358833175887310414891653058466429169871720675385728090827330160461791557605130428801880134973539525903100812879325550476095874625613542470629860693929899788827173052083320244968068488865445036710503782359832094447975220782959435262793288328002081504041352808933451781879048188749924143737159769349536658031572250718924662909204096357869241734808699215581906972856057788849920073813472271921050114237405013331604974258328079434891611462422090585013193905448957941585639695268700934334627180535813122605434462362714484728928189082756202315652993328045750521319761806384504094430038141171644505833929660017945466546109001742004932790064270503356507175299890986044339103589922627944117455376758552401451308377430353759867301823189606522107345175342791480629583535037836883528488004306307344167570580336385881574285133544471350580312202136989393417083872407308240945700284539449787496505302197273982732957367979506901470487615058168858265829351956820561957706434616443735213779539710655070497916170587060754609527164572208960198497732549095955714803668641341943185511775041640758848857165830311005146821756755460839643377077144064965651858526726208267550965583588412388391679583752035089649478749388117128910970380838548187249821834375895188129320904977898664878329793914219562816696883074854957094344720067084381062486607919074815705582249110951971756668277674426333532848859356778512640896285904187617975550381773119422217857529094444154444635213968836094302091457128315753845893603268320072254748481313905251881303851052183139497381304962833397895584251514922668480524541290574734032388258234130939097593654640557427308839300021560428268021439175785474249302674008697583771817490432108952398149056183344068868640884538905210865338556789401793702219311042268565157579490168393825641983590485104142814508170156883158229691970080688325135077281028075902649511455786765673061844006047631165239945425760831425529916569298455898138898842925273957038116633256388761582982330543109299401010976831788842562550113576150141476804697532789651612734697914384056414347184261271184985043666416969484603612383963603166242727045971103584156922277069108744981498929659221594709100786263082039383169163705808332383178085562301273125905273955506186289885868503268940986079819864287037853753530870623094815982313439397066827545874750425966390712198283236332771469553919087216297928999158657848673559155830029710161290559380918324000101222736159461885448600334331099090283441594236605603192493797209026526944976140304230590725832456508968798184476826300496827009834675766692020116695982849491355749718762473980163387449142119474214740345083775809338116632623399328529189910484094912919279644499261077843319276922617326494975464743511479220757488054890460982207758457580700505201302020477402243340973007149030449228120370333650168107701844183867994387171805170070192409657308363398395935163209316175745923018108249855411589493447743331579599619048921070427814364626746922107337260912543983232573009977204880830997120544575782145389006766659737880569822920722048445745437046724916162596478861564207452787987439993025297897277258493391057345129153160126489907962935635739373076729384595966824165037100623774489340088943018363645176135551379411547757257014539112353716806977614661711443194021114323671293543121188068487776100358091762774993988605187076319735517230854500776843950887959458732793499977727199960053035109308556305019728142195869025020094449585160045672022739178919113545726898737599873565685135401010535002022379255053420749262072712883891318051069843806859682730947231409054972104116378243842000358312190879029640104704135033299817862383172913875002994113831114789415794250143798936720791919390495903344118161510059802895596799269101158107000639673574521079180619642736211268983433662484563240410707734180320004235080020989397509811128163139835235038230681125209026542001221098538732156953544269588486145659996253824654921298813912696476474529691104279639348852364403073500315195217629303227609309429705553016813175178587093776639958123344503165937103247565486417744746952335357368379386596740552064530006643947679880025491002441646637447697909498199086079152735759403163661688877106776503835810574716448048630217798089382881653497741121318090363559331067130676101059152930970929415350814657534858185606494659025119396540437494490336221669073334426779208887943763685576484132314966235779281732771149819042587631193857001641935446250786196895401697392412960091025546515613250436548118736378763590037020409390001805780463818626198362483960485209879193353451391798942703137001532278831458228343854104111025763118394337920670184061046876124178956218628455529055606898026369074962835941682254785392194159413014527012943083701600108437750237871946869058357813094714889767606939597940982489785299812249991258072655340682869768915470455999060450968242939153656180555300914326375356747712483695788101970453740647278500187801966609692947768052956519192993691349809579795147972637122193858241594345609554508781753994551939536777026132343274471396028488207179822675695577757870423412570875680988116852620826217158603229829155629583760445292342219690411445952931441863689719015719142326843149521747098315000637229188670987755002830468990214324428576961454713427002706356284179831709100035598137853575017041952666515539875961256142651348325269424051076945129648719575408399313630665212056542565141105407420422835179870600643551444996718840314673463985769000621249014307071328561219329439193927073866952824920383677222022580063427986422047750795714210782199493614143731280659369572659424156174164841435136986768718490090788570418118572081290556843351054554667258746601829154403786032992559690848485700497433502149896234791851520149591194455975718383030805355478521410728438483189490766649228812895459069679625330900602246611541370403116489564414142116776547789161742964056623957164960862372587335573500550170669234290888434505014093773147155557071145635367541891203368414378615382146310440440178151100846165622200633439026780196753956256825373290858254122989759955630967257779386154226575990626528311257800846930010221278572511161433180023184956837487487032925832159090997201631617235741017222843431339592906039396524076107456137383508996999016673277958339553310924716706792910309843711740641625849818511014046400128479461551962580499777924022682030107189514961084343432961314239834334206713699575559898750760988655375620961130353247693270185656869170001750756754831671154343245127225603230655079267626064880104267444465323926448348615344189074281791216615944920807204438200234693136245302958284663158696439231293625869833420899894876749536191070118899288508178968570697046847971835081083967501685657163370096648573813975972267443011151885118202107728426257646465520329149345739839541881091097190202421115475492565636812464175853996721727790807784525419884399726084070144659609236371410615422087593789966690584952120497036083541632060358441180443408746636317691594981721846278084727629538720862328541028857937331345698177883196601608438004411658377584303453925475268877028899537732201803054484677497723809444318927991754566000602603530816815011653681213932874090960611314708326585851995716648438758592499441468388602571404642099590720862392297183580554020999850479466802995362967439384573845735098355843713295548301891612765668799579643302623572907053173838205663193137070113953680151699030970618096858757042901452425372911212103708319306395682383591449722890034156417256289551221775512811355883963326155939234565892000225757650043992291805506847892065315874306290306060170689586536261350496210243904241643960789594276793792334630201541344164511210059085922881034664600463760910910575483225963336239331935222976584139484595364501677852236660763749022277769306047826631294398218110095860952120275323515633532126265545855722245053242750396852713040952700318017610903468455013209702759669655579037119538239828350849482643415293993712048531349439925119433025481933258532646812406876781649745884444714379957187408143923702648178731308849829902789017369206850826012313822230365124798955035969113786328236026909077824997874551633810277401199709544426254882443157671565788311161022337646089994755752536657348919405427933780009392252731794341426715488164099876624817046503455098935953422707005952020755509428626284029798172778685575344494919095994173071527956062460710138012336787998808393866500303089114900143971787889988598157918980776374444656005021974053622487653004186079262846541210634350015536194806427846077903836419259962624443930029535107141282531881681086906215524153965281407583773742631913606894154450607559297794432988294136876077178373108313407392803700259315723600514398102469458609042886206366813371813095177323027919445683763116383436028332274112129269436346015049265451869503734146391500095074171974286248715978355949101510205034026836907284269651271249357005255708553432880237690636821833708199832074348060882009445504288661702558500479776099353194928553304580347311092112063346276813391790434812896248718005905084605211654650202329667291674318963869441934855906712195633806788945193440438600166940062769175502994494309832384064904522464372348111830343962584753265700886752337846590837377175815878997268288107276450474184620365582832417381948434490012855943429107969447981598948651817220031648709359526526302884726380283055616884671845513988406755742014162889076459216872931075519479765945365632750488907802424020178479104646040303272314065925730228775545550213034504995308635744697873458513122207797850603027538310009755969172034261386941939081864193725668458136399388416987908021381401071139807350281722828607546256325150200751740834362085068526559632262014528525638508717792543278274509042659389044298426090706899469436220158272969927130251617883480052664774012296500679759842582275863197498360219695106510167875521697740121089518131011839577727189130742232424624926379810455333176806945626910033105420966404168903542486472845871793069191935793361071128553143750627493597310096503472994966709793999372523200894485759855970652447301942779976388952820861935215523819111171952668343279408723267535662458067959512352026378011922920923014571284691891805169458243317123340770523196673968035524909361532917898005424242955531211692987530111998804487873509855587521435106217967528135038013918411004414478152866901237364082827414787731178615326004960629280961624117636487043250386937151666944820245366542656442463887922787563812444498950341552813600076739265589280516252392622526608105128241235802805199680715591056957971970113570064362698762940885732093823779312866950392685101544677476464691740967759022265884050583013027261878814245510161870325967266549730114046136444429624470899174638777841289200726322956725239223816306002938803314836191028513654811564622759283904677933643027347667215119054003722084615616976094284315289955696090741559563494478191539089964838551884915062048243028218456563701201493869012185109498508308642022529036629361229831509711836937069728293264116206027674104987500609963119634839177183644685805561022453942988036167873545114822927703225974294163639606841952225577927708750037735587341182361432510797180361020199001668161507926748417033113425246716724305155400466388949294669997720724367607711720593160175437994929193448795707290574370111238120245178950962745879757071986174357488088689494452172649125551493529230463131551921165364823487061507503223125956466526520406251625967470096384973771221804654844269795971427381755933966491282834166936060954754774704088452111660968632904199937281672308851614998851413651199850348509069085430943678041938912549897118810894231170365825304071099042655863435651899949436641242715928262975089035000728507484531224506706370770516347668167492788464619603639033444267240740391898641980301314360421624217100318856638434280403264237262680485468420109693538496491557112359967885529033732096317408363461727922478614133678134794291336169128649739930867402237196657987010491497604049722194454626276051801778761363256308482914919589871895266806366805123303700401341278382900680977785708788136768067452540286919594959644860122491113202034030955308652253248609204115968965391526610316887411445815276683153990436931530382991529714266349719935047034337966957221310554834897449446874126931373348173768993661000362950069419935826256173181695109071988157132558245215005735462239456886556702449324873870787934774758088505848717536619960737004217430489476922215583532498687017364004506458247285155281295104022715201612945385440505458298675591305150769239650705112044836812574880394507331603959454338683752697545523764911703495653488983796890229812807785093723599883012640129865649379984820524139086756684110370887997707762275336764743377148629607048556854627761584589882221651395166371021947569919751352677565545243106484560678657497180456131650218630325595333419086927810833808291836944850564654924974315365648475716854115191613705675556698561583103393886490745629653192512325198839168287325243541523197730691142407757564558360899627807975332365820368891447522082608842281815942281362709187768549142414091993250054559288889385009191376364135204560850008892922646701524340812297092563929594225132760847326885436978965968660722825622398472227690636124624062996411504571582927123369356136939593401788925723464050824756281811562484544272012297929315585497990910502704680223855643322298847658257885871556374728345968223183610921283446781539729602500805847581502241088480101220530133496993331489313072954551835086029620457380288763188510477774708780345034150871238164510177747489367780008253490388839393889923233940423259168131041715754523483839981229610373910918715997394121736189511929235321096712103525992031081902426454931361756613848847632117137736327690933841208457268765120213194388395608605290596098158601831791175294653400875532680731473953734285908133097621541913000549219619810183429540807924108797084272025481573784313953656786499514490853791013803156071450168448003060591531753308041147769191386818314043909140797369509716997986886118758681404367030964206543811261706094069942588488722260198010310996528611563833818471236579795485450896256209402031582241930771906148301684602877540700016338532090811615687639021313223347227276879974672598259563809882194003241768398383085418231222834832268601478965940035079088596869925120560226057677025725939817502947134372621990991060235122904575465705749625476637467734283062734182264097493497800170008831290487264180686987328080492570883902114133248857073576217347637651225682394684923033958569649376665072588667203862201072262963960553962578890556015711010277202183878762558808443336442382032967876504914114850745597007768349011001733832558040893082012106553058797701270404608886133267217376256194964830400856545698172149074005281568910774612425908909399469016507030550575936490066634031644290718893503059949438617800253080472478908563277891534388478704005915137890184386919528268850512554481755575322639923827042900965782432382564214340965899855313783194317858688049486642688827141800732264982373691307310977171213937363672915171276276999786182373819056050316976954598557771870887907481767071441339682258068807903683501913459333887899448894526916750320700617975121459451784314344633523426701431328751021168305269226952311912418388685460678558770848669563699393873179862153590994874642611404254241374803689289171587491202521373245162486589005280941060688600656238474578874484560177307651982586450637309828752390891879702056483654117919204379900193136717459864914809680203601899106736572313543589830127004211219502299510644103994774624845580904597574531938065688979840454548573351204946496844642479559481022308774654244132348841235379682678925772485580999366640977615716860200952869941361668856158121654884112508472836947041653728046716708379789737490557646238411715281330009831262301463262628032593269415902021572425789772236405462988370434078717243775445146701734737842027271287648133697871991210501213717994478076623358807882221114564540758241707127120326600233417969228363504104638128279811918101568605658304752897330737876296357714711786624661037051171167235599320840530790454462430511963258890951456332182223864467032762661870615165055091579977851622693898116604386871756868785230033112573217883251592934317232558354024912104689249354082495564427320818280770537462547638976275852885798279006021120606861162051858183714931879593651176609576025948697773628302724442804570136693178383801806312495369743934168875524643497322990692723248953442182816099444697226190310108800010566571143019157542785033177960376554171643421712633590380860732992127770563718002352339767653712229480624660527108877989199857156704316743231200565155913610463183641035905620802341268910986541575107163337775051515448802125870055633564803687108756433103657731104869659792456821504097170016991811217080533962130390842393815254990376787139512966680577379442752256488223084390623358044056566443192009410816034681234466854651861464067702899749635327771630942768205750137839124974487712423503987427354773847229599490627509114566409458739270638347281285095845791687293672049656893492037680183104217337110541101035830631665586692228057448298916283422292354103162293692973954301498951474036395600753702738410878150551955573178016156331349683673215899044124324394489915502432054912506547160937030684255591568778059291253239916992844573010554221406802733253292586575516785884067311345999708344389162819343734453116016422173714959299176262368141656495638260674099279865709032798349781252831340891660525398449072060137507422454270755054573813098071493883569924578294425456843456825181435004601934065595856064008563180260300671996386591065701820058409618266451907939591012000437885235637607774398513568520991616962998969118922780726996538203014138305458086918563546032081424362348394107680857727490121704186777919587581059224961998536073437685733635075937138808645485679419585906517878615348635579346793176900738651490317970557585264551776030038171550882738981880993743112398613358980687567914642832142150809646920812539239502382593969696991521045525605380702517736848436966469197198433122539548004685117294848255168476032173742421925851030379174748399636817011420259699560505983819371614327847534037151296750537719434796440446163680969538701313709261886637788792643951649826526684046706135036743694140656330122189774493342389711598816843953600449821955120206437607224278651593512715105653965601197158518048768015744972423898439500744603910894555599229140215198849707898952102059972550831789484641635458082077762400544455343886494993032509089428867531518954829059680296950766385797185929696048202947509400170869015813566103945063037420969149765986632682862064157444169441354010311009082706492940431094829429613574363497299994896674579559070533058849323378142939946220156128283498736442660702621131481375359813551402921844430562033962112004455704718678161384287446699420070591047550377357680335693587167881353950874619061072490611225739657632135188811390069622865673348661198635994588590002752055174133676554845072759909366990644917430997731289398452152773624297245043038581930668378950150656272342264043745319332362000036189011342930485874284232834535689496056350427557899535428179171801670104739519179007248807330567872462570556714999485341817523105008181214444946822095674175361893513806555948742765766118544356998648763072923036905558474437353716574573360145147815389218554536956192231525623975218821957651889052897631475201524487054677226069271769397004389542082443483909083632370623448162542624471159191773930295108045459525309570525439527027610851938936990702038929692761860051675585948477369889191177027182404093453275254223881264185066694396454080867222638363077301626258632153274585830979481360471854787837121170211435072632722955029526122711621212862847204725459875533419740442582337554756187684781139269787885834337000399588271443238532299244437987020448269665631734679575653136113570622874674027072588124140310481289095782777191826532876280157550153314922444588783943189642315562924416464271668214952923611041945835992435666758603495816778538959788335643573266365962352995890795289591213214402604605705942232679261840147916851710516057251796249770300121830403447517639185515704351238881327230506719302935301317618600535363284751281560452481932719627955773166676813685150412248400721866836815651646230928767116181563378748505861353588098957342448159309260909125012978044851904571544097579455184142564430051914475790053015577951736401994619431945737838382857100515976007506982923457055163716624461963218479418729010995689165854448762934954262815808754123463923796913800126823348065541561240406085067398195841781823593753025253911421818268743476737809956081477574683992244604603864096766117664203367431862255464463689774474434549986262715965845336503570389526570239907655632116019193798844606960845710602406852735857386625859430352759644370716118617348760995351031996784100796209034435885637350233631414958026180436047652083217227759031534718192515091227054255798721530990771426433131521040443492963184748460639092644333351260513416141915119539083821153038385836254039976651043746602096788149271788144241738683324568951300176405300939703673038050607031427289910306707296991866262982835574187069782892941638768446608328910594370908429360268690296845816683268251670201404287459265599120466685861550455730577118624947728218111647133417903699558462404193530021122669705973462415799134275269662959430939413136222984222317396989278500480937527683402386128590087213418416000369436178307699350358280096978779405227368371008717515454134958797423264817779765459241039786285498542162134692067191390607264067178822068972190070952860840667245418875487114395317278721712597528793582851264939026417139554151837501078320827655451492978470587743088893667704352782048634078873140022066344394790463519809909568399890309246375225799588367694355623775266161764333818442890318054347082249508193921084806285486291775065096836673880717554599079632448379527289419351585306778818378721743025581184354389134091887952396725199053334187526215316234887194457697705374896563651184324953466112730044889096032239467318700858379881153330344536214963516936843114872763215661119349211179545856375444032495107713459939540197863770954815073647569466600454898220277652724239107552490380158134199680836290112243238059358341031253509463487315629484909016233226119109628998014924020993539836563632457176829437216049026171551101127736639700212265949242729914667560050484630439940976213211942732065415532937261258969308171616922460883618224251869694115536636341290938084131081033082850508640797319444500084145640729002021326565864043624044195394315070207330634298021627666323917306118583263446680354016251662977457327959934287103826496942663774282681127833724882788273016704229651146513400641805573131149455264593749269306743941633198916950901345516236340518419986227124064441554886206163001879976154303384826404238321167911582198461362622037119132404240734379588371558676523422308755744282206211783647105183840905862644357769307590992977660996092980818584735521876868948685266409097876420894048106957189325659653895079899712388277184766108216554411262730327347857993608918187080114215851373803409127072646900718359149528297971881712102563948541597699822754071640763239427302391165293610802968000610858435536096063129401159239398212759474345990665443985300211977765657292634119286360572744286404948044423655361440617969839900759568315243672623313871003157029396537490143039091228587310410412475985717874002212474122920590496511270339101384577127697623422778281829605564962881905834906686854673166800980349761521424395221668886749092705020904555268213976847419329295796017723350667418436332964129202707183107766724967451761697542798574247033564701571576196791099021555140663163824148493263197200092520067938619342284450709526060254141549344264512066316495496601080432158456189294947067781130458797744584776494762116674147017612623891742151395948322217681688491347255398070816695619719554983462199844283902491398831533596045511412926458222120493224033865595675747749405244549054531627358397881013332638867559149591307345206682800409982613222500044301197233719382458820182116442077123594136268537318882716411095738322051417653990829150223187049500236847437871580123258322996017021009721202198240787539604466241020690791431806402861299633093032843704207027983566481429002112477027942687402562522881464543537220946372171375924968192257031460165084243768274734985575675349502256495394619488182332595231611837023659672317994731337720231248838864642058330004086163439437039865506403477261595051038688406915413858407461193842170939721050628680998238208405544205350422122315195485115692752729205797129294617605376505625842080999222747295115385739691504091822219447827654574527852150874959274996104920283110360466428338332462899470956201195577154535195703454112768127807502430571350245456568608819733994216952689916607791147250441831433854994157503093837391930029216699091924841363101954442314475018897292935297895624551463030215205786157790988520693786244698945719014870315898443079140081061362925874928996357923670053406354372523722392777455932653050273984933670169181621285025386177282155035833250298762209024665124699797232729376743363163337698740403509846299589175173074915859011906768647520402234570314992576846036308196846405090631296445594186199829809793915618790429717109831886532855075029209946672917280655312682861880861543946565930863537066927875296040490676752843841149710346507242803282660045233337208767404786979025063139449781598055347597631330551996641594145926143922814081279813659736075789660892659207775071415139670379742406669833517832024074696509336484803406705614573021640457865725710660235693348910148875645695814729817675234214048092162699082008907158659572402863748816757116496909209247686143193875384788766081953358344193900145841544216202162571877905638669317137324059380871794210102469615761564786643052429522325422268594916871392426636796589159537299785048546010345499523509266661382752315151233670552829068323257101039767999079206927366779889342011056104804037275728995925082031164186509285808849130293193666679642393949861739401911017788265337192319810356322451799202794379142037856816105055414041891268967704943075695746113493863955188623188271892680251393845653778572597536577225011533224810447012539307041450556386821893949744261483698935002057731428159595340144561205278918523316387117574348741975207993946608483844081444221108435190227566501851838408972891466650301801395111761456130277228851647419866462341528404387095397616031163335413986214877237850139519499705372803657864858472823236344912147075449670041775896118569446276443602513785105709612365938421525840785329192484430355667811864710113211604816215413959440216099686518282151229230820138399594319747146557905921738135562964244740094414611379017627054002291401016717435349587049535212515732997078737734659780059657465030653430438104174565193914044944551906769101540070504400749956139090680520002265436462324496293255122018672683397827401107901686433154504602518899023647048911389800430894614055278309649170096990293810295367691155642984961570733056264447690739732872641233816837297422921168898622226692264309616265265992211719805785039438768008407216158412034425425347399832870582607560219174076488436754544238458730250924812504602779187455552888031371260918066586655571368811606370226903813677723406582163338127564591203760322476702090401150630692123243447438807865550209369393867311372258170878430501972203272382661799913626093852285504191078627687411911746448616146382405432539319933629507970992830069811302237535303679825176409106702701338130957523678432426286830767083832198568693232480231743227795848189921274491703759826287853509506386317227222194408726542945217147723504079319951964590830429079905416535053307718647328099879098024586470159704040131329459402905937406885435992161749052942400988976210246408644224641489196985462588992556648542844651593883852739947669369921262359684835370192577961046106005920709447311528372383874101690994375755684094381728782548744406650289071128474528289601830032698221989613504134023407693438595137206416422583961112671702289833022947230598932243401718678333835699213223727997875938114465679384961508947389688603458180615226326400068583252815794031578963410111541974401811279280140569056587272333433176911036267508144542711257987885688739449789893688350690885080508285773434495531422090978023952259036404652321932343167161930142656596800921180350661969646645805803404122629458738569127535581072562770243456087220662727928101115306785438466840366464417300556121423013177845848297755115610746341219108067972167327093718567752207133236197503217796966255415152881966314314854541619223878879622646432536631622531489725199684367957350835515910462902371810274532314031705663383420320696888828887952452684205253310797391865766656656854497653409467403686778889136386972508279741885497170440037452003892816152026925625117598627803316540675253379894488939227860922939463787325495033901164821657679005024957038436231769633562940834517293013029539600996667507919124802523991690949946228920474337794734607192448328965039977132893100141056094792936356679605650813278558747271645145253328315212722895433215650083760414362324316341942450526500853572788565650917244874981222522856889780643530476510351216163277088497440690728769459314824228189898793046615852099464557576819607749506502781691141888080992945189092898321200473020649475819430330232606468172303564333609154552343051077734285445944871789672341877296325271174633113804147609160183489405574388048664459406278991146912205296493034541361165175287854991607126775793054850105455314978883989050505996200384711688798360871880377684717714336684999109702329316260552845661987953367098242012883850795395070393339729993392042883905054815817747434266383409351787593263523176468066409602363978074060609578390536779266869449382502530469145627272131293069129278127689919021282544235041914723856473541489898818184790238201021233240485290039729906293762917191384451404932048019028945021466323315581832057161807913796786620311554968238822462226108492650665182737875892396767993616291358735598025225208324191257584876100448953337570633165522892589428188153487003580759008855392408580775309704896975918852182243302255721187857890952195664398944649949837763954664875066699548184982249469387283659642777518532796761696024679228441857375530482152214271592455889821284938607067739098020092087195530686824315569269256035369933345945321433751780877403996498393003862856255646628549737736032330196931220390764520883764817018474882812191995411051491247803163781079709241840106340668671267480792121680881208796738424239324411655472858857264029831243395343029158642133821692476387142249043319639257991921163864860100655227631220361091446815416055321807313458609256062043611835824958963042427203280734987450954776531598474947410078267703360480494382910675232291858029192101449916239535766629703878056786646826909377931282374555240740582219098302685041903844788139299211297597443000026943988371218131277724235574811056595954238120435968661717410375944513973422410876251099728880576268597632086249513554565716597400483138622914985946386090691825535459782083085457153800371740440012666968338590933298196911139239924955532360791512906092857312796929487791325178679589751236080423929557766903132064642187512269071318210722810575798599707527480809145539517896547993840182481633716851810681563778578421641111877167993617277092125047359445488332658502274091645046828348694956179174628492032773541283894453828340858126546114348939324431557152738266989969301198083197565206113208266765631637031783873145196852537002340717120038368788231773511019529356043730561507436555019248771164657209871483075295999317335184054571392154689159450017315574932305749559337959754777258495556906097101010577029562447257401513116594112062331385040812354798777581205095180135911391974547731128880741483695530681103119724004813664162621706322175830248286882319645174057316283951996855256588765339669069209787010183783175380176433802951956126849853061575226399117202898012124094166035843728637854979372660084825796190123645268342089456290016597429552860193363080149340030785941198811505412119168893698878249025375291347578820257509878681248891217730958586679628020105239022334734737937523854470981412722476111166895970680625592989462002627262426529744768431138958335631759708136957585591020668318370607488610532557397597790623168558870060245383128609466426383311277192843079415487636917917792184565826868595167113348657829759125418319123431793323323644976635763262427915371086354379361723645650154100665488154948402199823892483019621710332772462311406154524109695960836882389633794391870975431705091668965109648124919786210836734035229740184784097883705130314814017505092458616456057197574670638839479686331492715876835422243930089691587778818549637252141441917598388277427347048814764239757949407232445746836078508810162571991150567271029769288535808646850562392822448053028888471825727653290454376173150923251606377879391635207526873090386755741733697021795206478544879728342080680274319429958215314756655529058441584111624540462034297007429043884464428664909853289711483812731073627144661587852789873563510948846753268895204293845604729647629410984191144622552323036047097672246336887415541260793410200168691957603034261683840529043558097534028000290326692897749832985494693753517287078031885736241428073955954087562495744693339410784809294596823844725462781348486691506859351897568461745764102044266444818260918071599241306804616238105714420132152772303358402134362620222717397660805787899617385550648287238170327837438949982030972930597135235158742420628510976266829439949613341535454256530177178103166367154143354318408347328656247180743788093810975197246830500773857469615688273276126467302283020536506694147223351012390703677473596081135545762863873581370832578764014693353935483489593383079199213013849149552442924040978702948401129476551919953155881823798888009576269943117282881679366921951416029659741012381720261029755769388107999357550016506739711232835129807591549525359978589647048510202197306703680104410400459700436709000425742116886003509258274104324302936904300849832543129668341057945215653343201671848747970931332347724611313705862159713230323055052802419515745706014918090251286088672811623601793401008149842199349085410186782664184562411377921325728176007360305520323136829926184998027520446689847064652981787028332121236035855517181345482245979800109649004569889908052444320943708763467819458942581092349280326036657488855450193086032971784919376162720541007915961421438644978901921351249251593183490982409652744433128746254552060431660748508201216256077622692393849193015926131155156724658253118539434905770665932433496721765157646724811150863425002785205703994931541268671202990221273631794761994208513643736604235449828355046088047887229258060729382806211858850185304977732527027872123424952809412568590934834558435928685976754383316190648399135285748018999687153848822576676113994510654600341722717015143748550113942682027671596247696784458713882478552190398978117405577537491773861701508866716408302209956966369784199141270501161028962018202642861242135383534799202157661809565438161335313705465639646398446959191540214011152807628454194877290363659759649335137243463821498337718444045031343455576481466493438290030613380545135402036871638299928667466432479121162546979865556499130957383528093271341333868670934719210639740108276044053496313879299914203424585803135691539949239641672162993774855149649731691509637681684665929823333717871282341518300167200279468067837531750548782337688904638814863717642844066579911610732847534946907323664503114476155642337668606097533839473798189720086871420845289090422880074374574203529170441656343238847875939842447592677733973877961544915411669757018129559510654883801278068326408836262465479488731035794064261645256840372952158166487860401872722982072844658352820710308434350264486669785529885360898539740462654599048103744731392837843937254681481829900989728120579749110952454008357270520252210053274238226119058158488638142900371907644699131833223239801384108341703846179113320635671471046916249228862432468982516553497003319422925530911262826697528198624581785024673619649791844681755860923373202889558041161365729106896080262046774983517290654395904236969245856655169152781469115481434561453724320856183634872872595786015166223134200417141940328544364686019050893999459033877321981764071408421434580475155935808707801934074129221405464906687047470231778462199136230786609031400836185717409228735776776770551781571121013495857131185385427617741230544249280610300349251828778241053235348665249788397151821304354678759259650291198223802395036537770695459273531380155466633198262751952493866770837030099749376847944801600147104398930395213571266113140646034878066976842679197859386307656667133563359115981284429490997451590502978743932555577158010750437859632277429671804343376135678523198289094074402236830458381386661549906940986795812637878110453807859672264457154110699870405052567170936444272002505759049756979705212663948335727049613502679078040590611045343873924589229894484446004980104522104807940884530390976750460302190723829981350674565626852260158140958065184607867904110209983870489435672739089956656917465686856060338589949916674381902423627547179152273821332741749199638822143012732397782763047475619781483226528757136191832599976842508241632711445442280917011456610751765827073676964980879643951391741004848228286681057835973971235627860936450919175925161349961342628889442612307020978598228787740115833521077836726712049607750884724420723150944555195726469513989901503778752799600869588691558161693545916623665570453199524717630049601979208800516857816523437918856366250958966203492011663809139178496177984063874401838199648559267816577703044379046668301959160775127603237311929719953052544996885874352674268035376914337430692603532004942039016980253633204982827707506790220695128660941197557722674655587250350588317804079286304646788185378081789784384623062612797753383601204267163079671247897955269097570441207667929726872070781507863753704435515167802438289742320471740149465406676048710685252066697112522466034446242261828569761593496804169628590215624413612780914646220695041470144942100715096591082366075006995713880802925780964908430925666138065311137869651902216159251320329906416366503434593096433572889177786807237905865925533417505872773373023341327433301736297953986875910922229016938471982663702744925263762373720937222191626440928755834867044368534257466658825312705227390766463224778819009305444725635973360987254640337404992842824022018736986577901589380156256497389527527296501578919648680482653863632127136198492660119957760548232682778646311449653082953027645107565449450201956714174247542532393518578384281403456086493324989704038873255766169643410622580574021213436449358155896395389060663957470209225448198265671209392771475367810178375422675170964967650954339233501801631494813521830334149107169251548598540393994669893440886170182469952990636385587904518590301973167629041324238176437500122938909643310474546971557120679053462646806869256527656056722855182412357851706211906642891158592764085684988060575425132636983365504954772341838406169429594227606519157885229659428137391490445958316823089592254173915543718534481816435767783307712980379143305451376379026613471361454502528295158843289130580429479429205141795222083218024048391821264993504704411823746022140246556549040116448964451124484273988631122059197437583424694690099791525261002040978410468598945143938074905028001904944382615767509338615047061370818969083098569186356747442151543427351273795878989323890832748479756846609248648823814785360047501265485112921013155316669157558136366051723224481453195005789206316351314071287648232795277547530150513005142907034439467873228282671470761220320714109060440115729358282829518210357083390956855908368717752852142278925030190297279995139871028890615964842289839330581839213291794980441192287609148043690384811271655613626671167775806780080400126490237495088744163761045840341064537188695280087186527326720862584677033934296103279851013670138373649972975949475764074884783807716672709828161451468472310684541827776174425732293916259014901261934256189105937288319748098731733215836045904052514912410692675686685747650163426237843864154061368913134577344283631489484649937555736269330242424533002486701008935362159553537900203860521792188854342404191499437935151047432690793897037995181005020849353516780611923856603380358681401306307879808542922413687696734747106031347089723548975144694877982113440176831915655424309500726556288708317209136956161106037201944409730661755542740578259767955121968693144166632312754995910377116603560914620938867574648949246657576611949934653332292594888468726417625001749419064587574518860106849442373573058682957059005652672629873276549040367540294494431969528904578606786257624687001216697588409936108412201513469326125999284193870801572200855595966178601847814415851621090587757255945059816053665975710413394117670784808791962918870069954605445862202167645853089181789734072442774725178036452727974406906717092535536330210622006902861672400662329154929958199045996233743285258555646657139935904936023524415309057526234551551293662026263509069735313307091792210345984147589957314731601260528416560370680980833193235496304854357416594091293710202928669248233556315712131257409860565425933395804583180637668645550241637084703031098100634937625183092272267788554654814434788456128436728704569857772408024982085213314521673657598422587366342535875580092401415387485973766064535135403924179251425152365536886639361925681329371657703364928027162512578489252489099012877732040590811446272916869669576334748173558899880775889442541010416127287214823230819704306683443676966035998016791327425599939121215293059970077474635449506771326151176372961211317655597468844501266528047328662712768138324821986455328039881976488287152475673444439795346118872005168140297362384508506568652930941492529816791351480917958960681520575060912221262649747156093149910021340252671952309195502418833696195701919656747213440043140723976174664342392755525113983816306017835337685121000123831543884093955923678005939391874542517968612494175229697960670829840813548276318065372215169374684187893890069404700159901191488968493321242401820018958269199707773607315493326684900764386364502242179514481955527043410936953337055164929844027490217728115069214133564761290643015916414872196339875814786796406006031210819799876092247476961654182689656525342766831937193084853267364733355603153107793972132647892953827444635985822861282598181370245601528605594159950710881971400810535485406095913904592753987889088065749538588513495121490798414155194945304887510309166767388470377142614855422404223661859263524742153437239632794070929662821686078777792730857168134374385124963049454216494274854084599627164469884331056069427994315324242634659113456543954362800914566939142705374932147055545866136303204439030133514925265430277246126067996222419383536297824788206517675039991606922841065118381874290292701015096503308003826351637585441155127817131107850523223412398560876926168229875516953871403202749141152445415430909834339985802269177814549971942802521323334856506585221182708227954032606758152612040247916402424724472412038448785383069225824011432725318455595591203925356856545708073641933269600110812880608069332159444619075153473202525675943747217630189850218804387234144716797084842279121561318891729477530836280858377891501518976622243824739691687916560790568037366078701193261010579250630838568968853884813459615333983823362992614847561826207389995188777922921954895757179163973051121912165607559527297466860839995275250231793921347908378708453763053774913823708032851674182524900354634835637570794893355305894395681136599307786383689860743558012628300519817809935558318901585218861320601713689321716835896371812735131346692403613182699734048069914959105740887246133299094236970728265462159694173548810546033525915365569239860296073578899455893751717514560519298977804402569599505871148503722501099301074166447847558856362247272444485090488366751606828736523694880944355975064040870502558756950559356831430966998894842668639749927739091961428141395011167273341014158420580330954229151692341772954012634281283595638341211290966089586774292597732991736046351163297944800994197800633148410203780075899314428695732282841485711500572183336041415864974556241937321201994816055151671538454724218820179268905851117682531979964222378914912361890077511339683126997348683358117806002188765724125916889288777319947538283673003532411958747679732560427075878098369054904896269975849395275869802516504463739659451393419601961545806241187528131604509864931035700949768652845140064834900554601345971264575904741828265079247172813299694213287436216301682522897024253435338109884235378497755591352606110990363758793989586513107131674801494699467491530747286815090035360815454147815915938734910356490590075393605645849243738808938705686704632828647689433436677897117772251824300667012764542802190925285341769888697964180952292026643999380295467000258654428639319483685507860028854174353439931757109634237991852397765088345420328308828417662185028079334748878075026204581399404813587345008029200956799183420104460180764606077172540905137252408215122076960278999916043064670108701439038650520175076429128292990420079686150593428829063526094760426410400828762004660481095244926897295289099346259660373916962865282779198148727370567427250151643555666684819160130364161665984864436167226682153594556356586181185925503425503098793193006608224887633121195845653481073015142276224684443470851170642084629588150962353171194807373882242653610008241192328036653274024458925083717046356030170409417689802841593102115098963661854123522601103653138118429374204358225116350005549503717426628254000973173136479922954153368135473576320587845968164013346224299185538723547003980782469766458827748926029639067507462645922520087657343333397312389678838115201336006955016443289954322476014536426514213407935551001096856191600414597575365262286354156234838497536423241465582469640525603123679165097841612664045548487522676828197285541670479056599109544993985430104554380020656061210635312390741394455982745654050299490480038269293776284284233503906843481904622815403004736005389901864805672052259532000538643953640197311905638732587097260225634442171061233889971982362770245551193288695512664366706492037874293413787369115429172970341560770520668047592674821717721734250899599418652851474314651313452993826281512219480545842690356814930233155086087745094457035768836875653733338306155254825787780453805111708689481657932005589312439519660848427064095759371351210426549252358049634178191304298194986723237719983087940461646659380986013343022312274071910484909413747684513700812002637426824013901035135120178486968630958654574495419620869750048341513986492653570853719442861548628782263311875582474466308871991848962831883254305613190353827081873842269414108794992371164523808421589703967255743215086767519322985013755724769103598942524694647058540850148752986384887955548744809122360698726009822104871284683555220244549981082108353315436959077174564123073551943325637588810948416885522676406166142394960138474188314867638884016901632382567203626970563213669077054234033399921174938353635248078488665789209821337925786779833924437913387064330433544244068807607444613478402940508101767486600628955730479696688439589075571534163113626434250244869356357443691245670743216968079723946516438952068227208358379211427356166816925255658180611248022143966695264125805719106928702854521873104345130246311949958577472335662368535847398007942434268651863409634507054313192084726342618503138852842035228287533982502635865372625806637067361801393205720920736254647950784063598057745071525712308362832207972257564425887082024093188618398640927162258193580487935333014829911574001329667307626250599279316571730957921342063721210807567023595551927592263838483428390865282893611857262651442126363141000364541574197259470753989049648632651415940524945406770271045622501712249165776601309184970240505937601129502823699806663475674064328211901080997217688445817194695158623813981744628163378623980926557901383457609207616829873867907790867088433652775374031794888730543964510767965748880177570016315992232885542323852902973924366756549127451888497784111654692014798985408641433150340151990142545522974284590034128363665838084469896920720090787326478231624838217334326933032444050812383281111454611205501298946374585223298635810322998821470397543055738255239089679732880023610605317132781074840936203457150308987582897351105732830087757867334175610599213943303471361819559903911629865871207094118052366698223442184814349531473003893470705696337725328539870676076544245242834283943818261081074298334932046617964079707060592748976872620980657255313778482881720886615137303444034633048709162663093336921687968039641336394213213397241399332929471102812279085893606341149050020404986588371984265242937635955902228011299540698844841281807623676363093743640674388810510030277766569805139278510876873989546540059671907182770398314587265057435494955075412035445038965400333517166128926285644729920081385496360170353494323998681708753414807804500473440629530577853205465784866538818826354910273859077786757535686112098165088663596717024195930923616124518451355691288505201531463643641527433881557152843280177935942480619080284709733498331686909285489732751477439641711300536564123628043438591819312073347751828650507706731850048850274520892527131516224577807086594370705525861008024448188992300794308969075388316568273580351431962488212328258374620946429185955195198974641641742758937317712347690446164761162270077365312946220374566280980292797556687803764572006518667788544496489368882856517293480438089855424124677612636932360328249570450101734542576233172471956477065197414780682931313614288893075925443603558390630620227299974294827853423346342430253516914800007682335528735448120097249527275729042656648341022477222338806465035215873535703470753146345991070412252081095551781926033444106669615040000307146759880030558365073191684975420460488125379918181520425301041923073403764832714679770914577057144423584472966979032197043023297101528192186208009770205045729984358334643837404134288308720323923938410195377819959001067253136696131253146761738652779199529029686386301083411248974614624249664947761169349199969777683830719830797744155606498898827185460520453428267162468166434249680258830780224180683110634869040034754596400360529373874070933066405059862025692825606205718813762987945319802828076536627437499656010307472126724475451616443358443962656769862509627125409392867218712234535757055470302599385445356029393013575891693929497710938097289565077088643319461927393235807403706488847981227453094139201253015156615160410872910520685998721898414236915901503060739238075793337168222614075915880609132707504468547525106892203073124533394665603021141677605976972956563019913775119234942168898635228661169694448581111008603962571734023463964966353218561712488672549934205392734461380795094652253087015438065741207597249152163321720871997781035358185684237225274036016005129158696113048903297532572358635747615123755909401170722461423464331651571573086482654843681812122726363688907311663075773896612100168394861119748973131282836051438795163135921999707527156996572980930747331842237051456426658271427321356523976228719317619832289172941649909709465222088498899171330748952386397775862263641655316814408298908037058358148770303546595996408783746455279377082126757538394841218324091724280814884117466559718104475439604844734169812715919766190139246603809015074229010934992915532525374484323345519024528782379653965228846509007092506657019924883198673217090043591883934343134222216826008330500417098656038021604717829577213954289838854819348632318573035455906333914030315729107332044124889582408864894866286341163659584880258765373140151975784924072625729387736050515027693099131141352148188869520827782290933848108270610804022860271974045199872083187883581369700719638456015604217420674193266482134385316746653451217777964118224550273941964309874934720822157923666486736455125887240587353166644181051533147884619763373360235132732243511439029026904869228959315643269290257303874479044929909821027667729277316014608087170676307082006828118119440713554454744929971380207454451155378477427987714990509899239493522857626013976059961137058802357440684265902215310879894744810379596730708294320174152543100715682540648279602893294139400427540927452982535380917610657268614321245494189695673567907096877867554575123158007115375934186665140140065056858511371728604266488981618272895882707546812595972960474077630802600300077128047016477612829680513888205523801327858053408453194360509534218531353977584587124087119519556991918422606299493912676457811494418192928120508596283192546910072410434893837707747599189204136635080099217340315540685936363445466025711776884764244018135663767674468213545020279597360126179018646022571589799100455661836557269848210746878286732311217220082695692119571566012915582886755543657761776108699697480967062037009828288521228648611109899965093839422851503011006415359337414382865161154360190178918279681630940342229729079705980126599817753900054543907266013566178897808573410675732563779045165548854441501780377596186993573598815363539185270043583058405952572409654745234666956840923613385393566657157988583255444151876568627990749722218105628232908761880816615450177621092501197653188034130385426591354570095114782746144594165182050936706930638687869480307561176337480069828668901962194307331861887588508310802279461654791027580711624760241789720235774431037987243244851634551070450169497390074698502313760221048746816464308828031734819046330728208783676480349493330170644844762455231547376774710098921303282143095166431915688556407523092165996070096113168520545798087138746838626618636366676948637401372589409258106732615323776705833173425749843561689631394303285459525023892318261195531867024268134690324112187156697759370264000460463197460832059510183680820079479692168241636164538083017246524253962442400173164947284945117659400398817625531495651994590023977524021869961676390132659108349078082703589706590321754310336382189601156692709524053177150367869168469382692128392465731049218683367611211445223327301626224679290461039143639676752749197696642005746000878023662128494794371902216149498953631920364201821282923691332916219232394617533356567304407194688777675989148416887901540245107759621150347106495728587336907059859577420800951377454270220731007442646126168609412807795987862825807622288190117297093228065374122673689361908895462357815928720343589497464548635346939511215311591424686981888630275339027059310046356783019635863921975883318377855770372487714642547083369386498261611478330672178301713702912074704021358173570965319496933595797460082813546509914814079395318408442229572991377377511349976458231230121337761226497740339079633630987572687624378835235485752965776505842338138003585705972523177572789258723529318040685209997016680831541338140689378940967978671809127913441359598090633797180656471037687721347424957092593735698442919962796320158333353002569191729473568852990264968422895926753239987716059135862164443859597644723030277191063038039210473530027698745967066797131667178862259723910426099378405550848011326323340074903978538175892268073460324022542026344356586723348973637844328141923399111052946490958472099220987355415024482255705511898064827903008986971139426440371171020293982576273158510500315882593379289248605924780554210591080658954162677261277504114406980589709949622337502735672036808027452750141415503370092717309019663931888826471394831513589517278216297997487922222472128355532063129945377832597428301961417126343695234583461729072410568269564899123678972717800553915243379385290053156764245980386511872878687563232642854446514383425223394089440824509176597035184131030610657578231759987388886371228632490989258455726108242566141748085471271206509024957339024872988584164876539172012939925763232281068629050171959521622317483448325398317838008974384217343988873644879942366732839871088305485153469484011308299431113641338672059617086530079947636634259617018148609023263817790963439266917045353173103032663041462172634252943304519192255475881434104257152850597366365966534444673159293302034575979807118419722992231726064751755210344112060375840554000194604210624147501256043283123840329913550289077454902923598550344721834968426828098986334606524398483041180042333533772801106613086286010609199860856876826196081509060252438004455629723346437998868180720274651667241317967480962116465624913554470975156273741117530752550012006971325120172219775723111953217908046486945230017408176153775681290068477910602589238033385226925081126093692211921307457744562897995454172970325534498004744882934558990079063912331899137394101278340597508500290448935909847521257188363377270478639253651669741959802047611704227506317937642660735632699906741264269872540388933962398303969466167216925329598028264645006504536927511711382625305278131086013176870889573637034710318746193048563791637288878914454014524545347292092487216284938283955015407729576092131244515090201116911070463258569520332583063866199432689192107531376971063965638649367694834687635659565038382663252297582404791357496189498402755897583061080094723620474430975695688939805096228671253011493077474490737285929468963966679622088710503751628505507110215378827043152753633034501713976081199647016317349916677191132487302090498058903198354072648266493511583199913395916414726270793681562668322153710842764329736586704528750802410452563425485948557695428864515852200740676772105123073135108750104259418982836314870483312014797716527258528222759213408599228839581167872880696362767291309088911698549395557080516005434580729195132316905927599200803738313367520113967377761434897973748263521748366773928414974339471446868469294885352786706603838392811315772013543530121780660318739233662680719561628166965396119010317299660515615800245321059802199050436422126140430228783133261987517855124634205739902504283815820644756310051758541624648287984675432669416791193759442406431389835438399331197426637882978363912752704995356590770589900874817693876179484695312391571973398912844297016521699064156218201368394686262128768018223531539370825279345722046457628294777433200863441574598576358994872659236961983690096722008716881227594159535894926144223410474962546680006327811664051729109527169060376325623126411401977292842004325211570313194445573348079593223666884689080805565253346548162995330546302251856961812970890930224864169632490730199925929975379738366254401034815553612625160903306413169640216399903989365700744118301693081480133303457271436883878373359117027729584700031659520414031625995229166861551158817389393458841868398676172805545729827313744721928167454789088558661686099943399534018051805520298209913545356847381509783234278729332549455083000424188464019998143517872666637150063243537978024628985976924887799733444631371766148804468399734861501495425772315948545514934543735168438083571132762579616822803523132046917532591761916238350712695176247239879481476924327095208844896489055840756521625272489211764238424469411486226140411980712273401458624196969546530790868240857589388750874338077454052683306198297152312755128508428598769301120261817345965196241132988195812535381447286682437629325265005083547449757404516929131571513345015738185944604488395291885397942455210652961741844213684178259463495262692879428172420301630196090976645333593648837336883718331077278975004603113860341722343744128084816245015974524996160803789699858323781415351755494414796230115115684653905308700598873460067707724335805494910455790362063808891378572107018309585645101576889888435809656368835253127595898350443376185646433289646889905828967890843892171600098077080350119916840551942512459701099596508265313328966185609595248300585796008550705636652964114884198080230528934262072326029730212383523263681256889121183665857441596225633572502007292080972716614233936508875047066808940027001182001356632444318791737327295732010864370117001255530898140214285286281187723812902735123225798360653189471953078187104815461379387428933280190902505954104395944575770668591115142397981334117852777492951142164003173120466347163465673968622979460938158768347538910572400733251442900295579680015752507734987460504040977782308105858102740077542725198637222001664386870098729919793667602041023140987048307303135910919661898461843168000313141629222112208365353569775277395477929267643053760309826872168996722478333568039682861970379568604378196824362233018610910858543897407303815749491702276998071544056341734424710168681594685515427794419709751114959124664738871921294271843474590879690768085568775862882594848063636144925529267139586138458462928575100823602856490014542791258769295418091737440382012321584984725117572194003446643306166591510645857405005021333184707612077712317120132168332541437874353170959123801989202367263052609750429541046663072993768685044566220632678517486839565596495567734133381690064983511962941588259185117227449038220401253910728171553605962571997896466607793881729892626962016700493788311424498706522884335253035365495103777708687695604937401896655212562332979031339176815899253591675743863842659829509261663084088702329977701970049985739406048966680811446901430947702826057106281206004718508427702048556335699268714559926012711312778390121166390197338013386307372653768007290373548007037454009320565287221947792861996798678151941895199463972851520833655422419587006316392800398017302647272929119523832404434168863574530332468440685416978102841459574285222306376813509440491855635272689969904213634258764512412855594773018832539431764167709111300834768137365776005568690917037195595226435538464216927641587980605960801658421932453705378641723723517348990872925065439985995163369623202606543917680541615400579968948181642547671153852272884332998125814855501769109769723988937525391709037838903042524730864455898839390883260313181418337201064274714680856906347281352555770817636008526041760463146413771080588928141165135132488515035322094124656173162216424531169706215000374019863810791658532156639761021714953378641378803911050747740687306440110138279143691094084158662812638331225689840789459124766218273036808787550442260199547449036056399062552702731570085523261766044599019978072334469102505044300956228375839401536228057189073533456610595720062063854284258593700794092202763484710165568821060888659057838083144733142120263022411727181610219645945183492941216400927498918142157496422559244725231952386512230786565158519165961768102234103401023952050964598120648340494312841324211744696877504644797160424051832665059766483976961947643391200426681940627931213338658207056478529585006106100518190342446740052825352956438927343673180434655705204933832097608553217913927189974240929957269147953547255673731392031412959995797509730137043672414028203050747293799122254528110686428041835534877663515259638823852107063408463861616664175689750050590131807091519926373944908732887486468089732457685098716132221514954700898464720442366312117801495867743218190394661858552475930102555096731518209641507350893656042570455345715096627332377162602531557535625552177925279552810342734482621231139652751445769273518242173546815309107511321811662033957078164114240975230652145255912457135278509539931662624934365163757497321358704615779051647431267544903425395704946462135252136947847882531613440285557827797592906447431848084268737325422440049301107164678659096783553191413039300775136039597373893609208419438767056102614523791929714981898678918137936108270538613938725933512831079857037097827064125737648126648104550073663228557378273761607208928308909048971504573905432321502278765853922007173954242479618253788686446069828963686899606364519034932938652478633742381756367639992628657382668115076093355485397642399164191724072721652916748789663321462977241715147937456752927415097726521087929076672018556541630556403642341659877895309298981558791864492189883223973857283607733973756993291340256589474651583090867573857285731568960687997252424352187747283511686784773211466955853849449192741600774985508596067812925782162397102447422277535620705248953616254958002256178696840718841384121387418586851972221113860830103641407793035300771946453469525599374708963448913158797758194762928526209893706849548786595333219575002470852337325851110731598939731234334109898368714622770661126972385278510347910079792517020540812142973452352787704303170554805602378618348011160111864270121678081136640872455954129841366634441347433737612876780990983400878712711297961506953099118022251831321072663216823424043048997902259632015737707399287920221190223961031493893586160201069342504007900399112900705141165923109825213763268165246143543201526076058984786887260767989859392072080377598061379994800203070618081507007862919978068217788048395166789879320324438063103775653376053923104384243399296555477687883258632512624759173783857066831421810692708699987898895172417720773806648394263723729990646924241741809597829264580347891291765187476702198871385620271012472488091568551861881166705396647528780056610907891985389400185253631547829119788569961434044022634375438813057817517333952443808276745687940574367573102921405955114922024200690925021592124675098862172683043664827274644191481581333689104270912088041584199783419832178760494326013668658575551776298888635454195741767953310081559383337260879058461115277569456328024897368548003756698346817810821014343673054176711800833239500981339659012020197924139908657688716471200778428226874488390798361266388293945913244139815531273026329959896637864274646796534969959678611448313447634183166046633510205922342347218828189437890643770042927777574792246094940268091905175976843444902619189465333605339270601921487813678669290600508484972694297306333646638328171228348173343242905470746360124616708320400273877766020141164339987304414964880120634679870452619545052076408277297859253258591212379813654050744021421298056238806038739070977431930123556529102189394081318510974857089431153768249679090343419939348174308613551151561215126417573176772511776980505197116480206901418988021281703501137809207852440284498287922552976990466293920409682303051712625328376924123080150811289312895542411943522013211224811866804343868953248869421940001991621957257049430169288224207393576894014227123642668106488501904814180245937415918424578111080484692866144295650439196643945780370179786995186480947169654383906190345455836346052174434046026256465714516057675203888597993509750846428753710461631664525963387542747524030966496764025208415902317764805744536781822205869475334098273363537881130397987170154194403179333181659545594233424917127820552961208441448555141538932169398588257938610568253152662992820078367389363534601714378362502820362677390664932437483466343003341751792147142441348196966109396758949811426869125096272169021166904613215650639469487499905207047586425125707540343225984732553696976001099368960961521037890922268173009678497492964199842474106380543336918994893872772857152039013515527040484855509951282305776932133699634758792711801551520930533121593672716307811020786651474340146603798268917313911274236413095327320965612195349493679108586540723331737756485015605542793570192950282146737740471227436255191336592138342535398646072241683293285762893530946167975808585382807588021214692179369877699472755206383567814562078006380128142092945203610451956463234505835442692571751032547246351348187922253966714533855676608430936110461197671674262536052362066426113971411107400510259727781331337126665197022464243435576864567173571616063303846393211238598533289260175144692548524059384236037345007861392212851856759266980019181217254989593289899614976631993065210443447208456345159267237707518568969752958431618878887039791325992575125142655269482154938726381371089045091919238724068688066948677274336517465852876977852691314253061321176040146054811385255923116225034799947355597953041541272140271014878916007309005751849330223646595279684332338415768596868723073069883163880494720098898171765066230699814575706972724210312515705090374796333578544659096009434639588906140622289451050503603323862119377976928441640467654108225257133089222344698416537570123935382360161848153322311530782346105218689267529917194396912789199695538542591266753776873456866849709765560033979925798238819750426290108552847704690877286077842273500493019713924010048962322009473595151457837948640807714019826535333084455417377729853068622856008505363909921067240158713624880782157030791027988004952166233923046090232687140124053950051169965250923868541788797222521884681278118290040031199276487329824797845362749543541126226634764996871883416907479539318039500131105701964501701898551278882909707075022648832654556278932935786214363319971629153537237316706849959179701836281016023787697447446641114585385596150693560476787979661326890591128146807754856313176630915331298282942333145387199865890649352073671909034402647013774818560012270740325181698024494541815978547080197956371528403930310615755028558231832331071392154365279382934411424088730073367843595193757218202764096877442343071854109967974098984351401277959240719028576633560663697685546119240790562291803569631118158052996876774541932574101873425939218248236284463709593039772942999406996689558715191558208871983643583821223831046762371251494615622110613154215921495282634284060451211240578726302439828527610784513441555294271530722614628762271780724905688800136565971619020734317825019396245798979152670632961957616519254950211976900451726793923848653394850373030018348472313823575764073633105544504893255179365622569777259747188339234638372893669859766756375472330871871314603881438000522560223553673887246872179880651844079389852430518629365219914144906177545804434705412116879136618618459470063161027685929624109689124994279969602902491706793628410571419997913242632028312977789573803243251329607221310891475540781960268138600932450800212961397140208728564418605146765867224657515893419443571866860548722098819173929818717259766272512317029310685502130299204199886303624768483268599026686553003532409328546898592718339971023343055122908773638221591392824994687842080966962439949989762825015228369828681039535033343554544635748901984016126668016820928086345649951819696539630429861086660027836425239751061468842170338060825236566145329960115209105763595709196202610826357927503360601051361415162291887518127537385531975467474682018017896943387072876334468547543800089149645331020340653408244778138181615256229461413529685353969540107096176507733052084842558493137443840923560549531844751113981035374787820358932416734550147355040298385349387893834760785399157695294531994876464667632682849669899671102821771044174516507840211259857896723740065484124425301966592668636106904715630988258813794224872784716721025724750180430131869526297404966377178641839803328785061793235754597792637301807581269832104845990007737762946919502309790186635640567378829560826926318635297424832846558024520625437825346918502065363310910898966219733751557270600487278547462369643556136169378570514643418360774046171884353669719822284719248198510635197119766686324275305435516689715510624406201160429567082159651228125058493692124607580820064527581040183972640373663404879981438415127895251022025020223091053818204595611137444860047738676335713367628713376036623301521456844276273468329552026929885098694488073225734047363509656641686946654440936726663893613201641377593429111462750540142411172030918408557363954528484953096369672481676009817209577126621048976305158658526695461585488416228049004546804681990633696398510659416047425138499771101275132369872792899743663349791236552594065486292170193579885544819147500648650332561579917413877843514949747099598848900007093582266817195110035374033934839588552202118900371638482760355538517873977330444780065116216149332098560760645315954116103445281670627278290203600747958827494464081546732047095520425079710075598877864889379641093854547854938295360860127107342206807428141226424322295834686477034850724768444546567674620386053510197176675848497586208491172458346813604568032734109441117141831449792059804534683377501107115257188543217759778260815765703236833880131512553247411240827597364536899606712919866272490982030750541407895835720333726396591310590681838951238861568506706345638564976258051064027907688297151640454881920595832909495986479049108121459766498342045953427321236832446515809459267131276056514917215062026686758960374325911342212873727065840285568770927290036307472598361390149126494180295574586772093177254225297722303607757569664968416227000759998551433850812163151895465539698777479875613602689193793782095283544336269471843470314060530655097001575368436862279255932217905075609656655467301136602522383721660511649682644962131637091532635259809572570418070710644356137313510925740997833422478564915134704453826185011017590777234027648640775698956555979807306484762024349333447756554836917316774068113249567881440310998816266713494970531859636786127546969027905069945959489960352216814531061719122338016801939533693598949464322089633952024079525237867602195159325023431792127289411746538529541509329999111752733439523304300175505549829852450823360413863859248862978250870460617140412609979797494324780579573848172407994725801449951721064110062487129431345947817546362455707092105643573178578101599378883819934101417041876470989127217947838001813580547726607695291628555883715629478797708390611583448392778528610642385650522705159348965288847067839767126325636128016987019697339503727894264188670216028000569556602202379766891175001002537279201132596701510283290558112714542270959540915169151830272203216643919657317223996674805593769370079064856699968650339791149645334410838539965277889720574192166649458837056004588361908878906748388431565167342225573700783192181075004509707775318673176039946082097658395317382317216922371546191911494355399708446532320523444571432124371414972423209748818171598728072846763950280490710525382934956914328784277464254249119819151616231451570425855867386597384960482992711118987276544320101477266378069703614710471813563623970316565498860738959806242936616951050668310808010272476941532115667805804002564782780223130332668003692991807949658620722792121153583323837806187374602250438707742528571616370807277320926235879139698347368508304642885958535970010405345887537699858773261600179330573300751652841614754551876155376392920346803403791829162693638646782227900235910879818603055018848277919382373398129568612750649297542212732952305559796196113287615525734560081006382935177222179151831244774935928044393450830922939925157845782950287759737036101816927743253930529627337819153348332104018663871514583750027525596551605487591311807199323700828702612872924524426983616879998702920555373053255101223523113911429278002693126525206850881139446198880683513067732719468166006910270498977596616472691363647622825698349675184090711677414765580198631436694519147305904942486238267961105723909767262039696073246664866661699645720119602054114149621091741016313521594593090180662064570528098707471407668160027817175747512789868466131928028252687419996102197676183280506809458131541994570084561202540303657945647167850055456525124201454405091673652531748992161628339672698923796576178737396552103583470317898036617325038132417305820589894350369021327299955770680259291565802410346506389125808887043427579684034817944382552308940938126148352722203712195511004926580575074006504619517121877716101484453796930579844789643711175916023457695806785318355383904820141269530886402469781178483992588482848787896014620508944419970860130799967297581833352481236226075263194298257884241105618466556445998699211486726463192054463778786978882140088681454940561787093392035435521760847339443606400398455055370308437407646895682863463774405274089969982827327362282771136915291789645474621598781546436210010115040819055194657107504813631133503501105554956143146752291762143850513631843223524269161412693868751086609976799568321218764773490800685744760907370415878464170577063713393657357487276400919539177756651134910174304709727346546914331339381128323502308942422564486359847979499746835924290815830145280590101134785626933810482938871191556678863277581883995907822770133052099840242896597299962339900571508088879481590985333334642952543419597954333951515885834895566552686390615782586653132630491982466198776311145167260381340668810797894296257707363770587727407831015780861442320554430719214160326710259626231605016113554836659752062803054211041414389864972475007178152205148477257794987213825306228800391047302286304191767187591874938841122940352393143923264411032676872583718874679011803771799754901960669539075920442635192279041918306615971950263434765157282390033424057511700696342432243402742300308788135480398403436632818653224987857915281343136630974263720352886182643249546461379034321642685995074858085418774768035719817230994328471179238386210003254646035188771116907354454947752898751179566212315059011181902301451476773509647090787933262541968920175268443158283262432318350814101324697150981752510412914864039252464917047668485504824875396060326394499739041934299112817172364368219936879983517660296386431142885875509278302079793034210970927825377010048089377751158600390201911531305617826722952452312622704019652425314395733131527525660381694106273008302519117034739797356669703111119554837361393315317571505490915244205210699113725530071054966573096308071206993976299388921627491531419909972893472196302521364602070845977922946310828097187678157140031593965881881013505571639705969267897772646078519659837879782902432361651247705475813145971299539988244412726521322364983961197353367897142934549324193014052684126478186555229985059382183949701998943392843354555614311319689146556461599276417103751784151054555383509008299250802586397879798655349257571495638571076882874973616984653706748811753517740107566652539657636191548356742085831809622963551539508800377210756160181976144834932533840717149419873178040046520410235228846451356756053713645862952220970102946649114795427965664941464194378518742623360295763795073467889534119269016838779311182001062122612432259822280879952746420026769597398738648704301101449116979748482182930565659304817641275437942973168012016788573011518284721744798040843794588079502002677017198178063815220275975287849849774568871646816607096530462542589097713324436958992373545295129655538046178047252832135394761148464264389255355769868680436488391922825802384666050309057751746358492210136990663367355402069806754031631340970184655656432108777166744523340382654691385835017311509920603687477405402544993634179050715207821575102362154000970391216280344726229464220344027583212977043360366538234302224959355065262738238416805203335419675084737047911484397834316676006316062140025680273904138228263317255800251367461576358756405120426711822592210426598895634960914889816518266829616746802488058766099881192798651947784616796279571563362674104738731182467999657928585064508325867902452661945052984912204255811533466388789844611055440800192081070048584723907374819289006000006270231611004475967469989528826829506367148553588842858589707162881506383383444592746532736208604528755769758509901851384796030562288594602875498751794003481271097580867087247739454200844167328312303310292382384232698567710068272696154280281689184417446672254054113904692554351202978857187777216562137547397930334957173868477786489828453207656361525067787770575223408876264046130903371203458722772098254161361094963144675875528893260658056533495945490904995489065107097750369643201538471604933541888954502773349681269008057638341780509545593058377985259160338028360914376828065908755523875375972207831227147116755201716880877050274563835468393171294154914500196352225093388408519196143889046496372690023065278187201488289016978112492309598621511274866076793651349447701051714212990841514174670164117360507652349195565801487262662556450926429138959383742619501415090053401836191719102529946811750495872889918495009175449454675191627309938485694067058115621888528414002125228270805671109488267456269664366409061143110729246328883394816582746530755830282130520469428419230550126399761060178109411697925931951530874112963408549325153109985429199631435533436152484459755536260246787166145347986438620999644806955403488804797402552212534658335662696792391200905156076633169320974665489195638691064936200190530569149588219969999794324921153631271491697461662190664842447887876130065263787067896877942420044724162248835559091045968707788199069409620208388601363991172749376963163083304994063949783698431459218943571488796740782209079852783610023587066884862638319003402749916305520532642550036447239034363489887780687298015216389227338218895943971853239018270438404977449208129686520413528354778252369593397445591693370590621649456033358013825347853925669110583055865857284424452711540128369769645534321694993855374664548626171904253482230624469345843041256526560076073081388107920435802445052034927528619799859597403381633232365253172241561208510258704887340412464906399055973568575333130765119422896333891196790190919475349435505615656020556460171468826822646770996585431112542975726213291530282344534234240701222010514884894802118945252712685013400320159716133625785974782055594967444229974669538131112366575759861184629049733905027655613948802513829887883601652773026190817751962578677728708989483189246852401947523844932479896382076517051443712523141990063267970806256456429158250422300989331647203061156468163918713674495706089254159736648360421650590109471266507742775801283767777744589798927062194345719149818184345073875521443146959677363368534798547212157154906843912112489473062017342067125662209537815825070174370444419948875584991573759946744259613287463269749378462427450831316346957166436385400745345177031109457652354949548615603671867116387039916379352696223337769456801396658549015414011451289376129339452540758412170786888293535835608121365151778186582244203690712920763400670085568920861352452616496608016835009030067665593567526476958537698308230332156987987830368290235957779812353307970139720973707832888761592296505485068975280393683372586755424154331323063620733687478829031606859010445769008438766855895726100611528413341371807829940133375997207741261119528263136760928847374977492904111147558498964135597950456249455927393478552561794479309263548298805162200027858453071737061777373812176715020709897641611262384777261051630799634227040875548738348250812062658419886703246414775750724888561439687189309410802637310482315812258891798092757550414599672602488315182671668910552866953698422811381680408318026092264750636620797402390166625225009230182003499222666498139783500890623254602500188317605646419493190141123634036389044445379038769046021718159325163137399563861424266376364215311662336787782608369572156005896903008152513896237290388890927952141613618041532200062384555342137372371282168305147075311509540707024933170483895962639174457775430955216402185483273770781683918478740554093466214290490382617913151342708164729377055176723807503577118351761065571025051514524191103784226281560487465900732848335582045810558782862619686434145915191778850889096907472035338116254325790991769243105008419732279324357587137743756759155575238707109445017651302139834411754633611559677346738036784560234836470224174297513637830033316093025042865189192319244675245219053266121005726439975018691279069971804273961606790822972861294390323076219862943936127214319133552104465551488155467297442544679981384791993906997380542453387985129460856079443163470205211729372021624808564617250885935685511405336759587407572562302706160979300816153549625068140055021170673076006385923812910734040161545866368307928172836722190847747709273951317200030899285078567007077712928648587659598503301198002796762437085534595125007894507903926809848700681805961715942341072330039000412032466723178239239601346156456847449191624164573081590145350075906771769767446249695777055117532768970182189602532975670324341079371047150317257927841452717132712950788751355981559522373956884795738201691019736864325034540099565642857928664565697240085584537757080343664682602883169421585502740124793275265234675068475532665320556684809333013983715511543942723233579944276012489640511265975589144882723789039264605886486801661344228108755059149220915243519585365459010815475133761627420606196559622731072581272842195453650500789968918053426133378360270396319474281226320564590244088420869117920635260324249687659579182209906234541978445673697126998917690086749013348349390742318981477951537046311646839708040064173435392666530954925605984649704444355252656093012212916616795070704069803484664029545500138726195036981330577117335128552025066927103307358454541628026086879615555767044000637109339357828694803691620402853423251423091029071040170978242097508489948940878305942468918427334719221201023651251865474188157685112974330973710276897434627100713757924830575937519734628735402222116550700907884383292282446829322999063727664745738600692254889595228486434990801251636489847088139149003032555785967299758936926133476462318756346806331728918558589315042386079490401755278617906497174406603396056398128818014372787943803853211766702726455582950255487034070602166683794128718253841390402237375782246121488072874049843756907774276360894744806460308262310191142705549825214771745429477053635774755482536798409310696749844989075026068040203481336666398900695183607060882143261727057739619189607072980569462513294578933700387189703199965375768852147845845251990769322345217550796226550046577919950381733267041817994296537920038574273615204091873690161424958258411759453414390642195908046731138579014204079834423292231925127493096166904525028994048082123571934125001323747246550567706902580568017850727078869302220230509074760001460294871727572575316825967660896043799651472358721346193139586479129555401861064585648224301706992925557599286653196176255826927445216392042609160032586234242582549143168977407990902823516569428228802239785862543501796256360493888415070290060584834713197787522236205363426743175802490679902832593327150282809041193170140975515986908390824471334693736112408538433132355414991923526773973362988089437678700437041494731017215824068969812396075921650259086228439048361547954003253077987554815103558715202583216527638305045828985692374112814757263157020811200516581283739731655994857997874513195377313939723648675517836807371711010204287954444256793027344989352452945986240093351490607145278347142224219654445806385607354914083957760828534602442613370684913204762778696183389169997148668464889146412851715313079666815486319533523773148804439314839980812867580991516895795307859549989445372708202780721934951251765876873344333717871070075287700633773682844963787877869371182196867956455551818754705108678381989375147699924141297331323152005101020855380409420033368995271316430682508014968978019751993019757806719507240489223432426816413432090403960665689455096923672692334313361812833149422354305725507951752118194262147597914156893502048781250416252309687601495337610409943874119831422899296908842143585825142647642994816477161005115442107692024180588117614476775824216101597132127386425779705479759122119350749249751395283981624799081701023032655216955079426961321017053907824764505876948793426905485876375710840523739107741760864724289471548751175709313361896031026734655121087562291527403553155664142464209329594151941197985746589068338093117235146344256003055107317469560649378898141131041572518589479464204248480797606290997074205770916519895435725523697276960190528703440111031679545041536310883421108992296322602683329808821748816123732204015252703518002873855792629581418433957457144865531153152663562952216699317153572756879508685467177461372573051179412470745189967735211137023229194482729735140944168034352700012129939341966128974117279081486132561158057661708202998332376437604263611658688292182722224862709617284096869642039475312930785004115368659605011201107468136006280075793626015768944972191422217453216545365790038258729674389927308513436480385735964409957483711768203064147429534291252178069513449792946299072496816686802119829670566044619227397834011992751054360561253777629650338870590994266780857233014093181222891357834024612649775527340567514402830019694216320992189199490099584278537571149695576451853328621928205758832675291591412636528156351636334135460384113317740441137526346713925185847845878212260756770499897571856823768594195381336846648826352779551257027965153243289645556816539126131725072634397687015922956842809704224072323024969088143923052299906864426775769257537557575901658389713170846617439395993822589929973122124356336284374883507568238098299774439637190525071527303407685734882294355371823723963736010823588980890718333315403880845347747279530982266543555685102572797573353291684914594363446244067912525481263051017972369121120412427239532603259203997702785476365192735458406222495265131928630297093215742645922889325191236793493982453469866168295935649305233879209454466902351658195781252709586888417048242309886679102658756243183230928897567187491585956883336685502643072174485078440799987623385929998488348357005814717568786409298129316011781540695368250194586050336570938635110193273700619833507269652500485586070271442348450091713460789554145144567366522904557533921541975908339087035228950117283570794235419399773332289178297837717656722190257479922913108034896315074858086297769826189542149708327742149875189824152451583020215594912302415202787506289003251711982279470811836821009347522939037554245587780547255560259418604737661732309570767594416155266607200762166728620035328553290179729288130695874554418385172282777084270261455774189899673812079343149785369317013877770494335172459553876757755723598985077786691465884447398892972222989697707861804460362419864085673308278442731223712060860193346408046404020979948706508071490613116625378998251657671258916403864736286476688190608230069184354736608094496785982826471020642671191077900515977027737869936602637319731986664649424246723100303162229134820868260955090698758933255538347788413335820969338307998751193529397433609126232557510940802961818247794723811312069163562058321639077596448774747338180254364806543586972095097181743059196776393759492963652445808943186595589457205947649205788925004451427171581434767057950565070888039757298897362973284921633135206430213972559309693592363699878028753709739736054766601505688003549642237375916323123528594148366334867263533386186313297141607670210282429650655292510085015961051384500128455774570762183909504965081312643929086775142791287974183177283752841369332292799497141333325279103967241688447267758725743839662413465819736346896883879260757254109852174792201716352467713455318868966766046772896310646241284507798342802071392603910583452743364621687364048761914460414492344055195249253903214179593162419762693240953344975768082450219429065530344526383490220097484462004388028488755095262437734040327746877024802402648852442335618394075461249769983080272741725405427570148317941924487923332694383870971013066770044655768010940362018470464000214569035307674317720139607127252051738638687914517913323356772360752722562050152807909884221093063050227882274931188067470658021806628417422383481724068123749215984512902323994582779851599177436661707565767147075807851243639006809069418202686128341915954238989849555616565397944478863830484390772789316847769878802672078815027059148855357899863886284012571124420379272185307586775196484267209228510514256172442113150079429063256275197278365236525281812890519258734175361904877523906830927674583581264707430679687987296266157553836503960137279356301769563864727692411100525926614263692710154696588970242269931755596532113204034669270712315941150582934356511610926504696924070157534977899801010134691738052266807516089783009703587814351081241306345023064327768014117018889690793298692670509202328274016647511554277388743679289521632836350382555245097936376468163213792061670919093459128804273144480774571855241864979033916365997826117032464133383249056024905655981249751657913768766955186568565998610603063323529328380789114535257956163813949759076199358877741306128661109909649155100980767744991215602004718885657557274542188239537948238407346990998896182109154763548655619978098724836504749127718493297161613027494159899273388747812971878167170277310154727334500189873651949324540130205265645813757321042801923148687019890418966041525745579896664497611338517660689632398540552787913299443300225442519876213868321913665644647229900213329582629772654470174666741892382491613628483414362508839747318823199480790406434262320507514915915414838017865754107160147027828651566256027114942199120820161266314427999552126424550658683324200506735419527350407267391378484081305076800005351175351383899966207305735965490207548707783465517162133289262318480541761006257462509021915639602371717369733341265056166468084844836548474695129041672602671043066732644390441800132464319222253881475322444494725082828914755263597526752774714392349485325656388171617525113283700272837907034320715775180196376211772586853778618154687725297060206450171714128527762113811020754703525322646366448543076726761369769679636701719392653768756983332538825316607311294754893330250254911229029897451587241117458971218666756768442693838473634356527492376709654477454073202161038489748795370129020802444962094835387351278545819882159988467181299256638270452787304694637847583220903199564545704969859252690784849220100582918866324788113222087878182589439838954477545405551929556747431554529900724436467880117821986389877513455827341864136689270545978018635286576268939618061195197914703020988117868225777098430933692543294884243686498839007648231769693238463696901762019367612380498584218623658091261147954205862049437344977757741013918082216763733006997236446148896942373843497301821893200213789595163676621525657604664170896953146018052766365974436465772501676377386680169446406509107654329093388100758026950741780892029081259692319042761155801005525514839807103561684369406654787306102349255134747774060477819986386023471625720143223026674586691514840087521204082751046164968089340721101522698865683753801740955926076763520287300575124965410311648547395992199115011338400025886663449623523203232156721985927220409938118875044148225002351392756922142317248626366965234873928120847374363998549755582180605325775744758082961256821915791045564402768757152514471558422271369974920626965220864776002789069613191816469506192001710694951104263424290390629153615078720923374610839595364116913343897596255921605983691118900474648044522498836623505113040008628798483072922032772358133113730600658446021016096115603850711884957895075243053630228874359086557942818709133898060188155008304710330186292518244237785904852486675971194888740061028099496544849799503216321067590551207455360635027318164816344310675725613853746970278186323102880825252505372159077859128157095975557303195225994540784621662264524363386287362157600842429397103089212114635222550840979848275912837451949457579738748012822059853518151300874227824132818647005709525522001272761787966263460751839137300548777154492429072207674212683754699775618389684240253903730231993443832237824001018017193243150800851030432133654415236779725077820280311905984460427290254342453337838494552945598986851767286685446513465163652994568861613069643768342693854919381067782658555968739471388843830477830660423397321089074689466320493661354644786202754964413157193775595301236595013487406496179588303457860433224512406979242739148554341658327409284695057272847811973862811343016989591894402815319646515951571557949096695691760446423611995753439194936148803783753773125087029323524445834796837268749087284129608559160243900132210261437016604016122758305656018940448187125923291091072578049239604073914930891378832556895761942625970281531360335424611089428493362521058891361717600540592916302000982776942908261610494350044909228462285070972141032887978266229979605329198406154855154951271286854086903153160527418018937840759252861395871473739856253252870522852236322979153258058945218927079555962185184843673906452953247961009401596860712550729240564470440376736682081067911596217985108798358710564276239069586531526878414866271720515617868555692380144844794362164897642952166944890926513207148738812201884039638264691134018408920436728465289796737498335460679590342257351374774598906773408432297981797922855510027026857672440082610229659924352113804775320170193681218503757533169269553991827752285502075753832378543488976556535217111390821695966152312249954276092782655935504598814860966534792104815577427632125187341890261570690869272239435087411041878624364779109910677403473687856721584143687859494376721772633923243550933361036620158002532423776202054690943188111223493218951263681047726654592621505209032336128221513812102418742339226902933054522479831777585259014260719291546616571476312833972308215724276185694563909827656128298633153322339606290356841976574486520341016931365216209154180726344018069774768108104300329099491773795450520739584791764489925087371234020394019343352962159631556357269351257155735782553913090421808377313893031858801489199474296958610868185646368055575061284282833573244771272623817769914561309272581772941701172756588681868952194644027228836533853122540516762729850885475363530663988699416976381822834335606483853862704482304206203840403368648781863916205214738641034979329054202053038269933562996106772327966244824521505027645594664932605741125271821857747485817664306067161207924503291808384027043794007316076699704693684350627336519737027301635110539920298032029042200708967197709238721831820260544451972326749272916036114709051622542823268586608916277253126009607172716237399525902196586367933743151766629637828755152135600213751814746553373135331989431360033550929074978615367218104915130253525564459413837519513450940141228740762446713473548111327834368751411506607646714545114282751820029096329948751802687896204574249921136500342967617928830177854545187066309596738056922579736343743612053283161658383697821965311068634552106335947369599979573910970870551911127025687280808189695014114594594699358994308700405627660078914146970101751223954038893033164444309857402050485504258076203296271847286393037902132230262900531482581524925882295439185938797487042020598360761589562188202301851886102260420204086009799557609281443217596789863542828061077886201076168560824782487942291481670371298826372433986381304272519924523400224809785607062927663250665096658560131830880552728429194644514633198697863683635334148865253252800577124719060097382060469652378496186587298694245349660427395901721984700384399394715839300172394229584221447266314612857058370847128902420486260257845149052572548210971354702610745915525885860247940237350965207520994031814860148212431150349665790949817428857481781269077669498214602797197778901559825950610027463886623599821839703978657240176056074606488433025707048585363908767910071381902848947799709688988061207886520962339391058677041060416265546107389676099262270115882471119827159397628696057834853339232025167133792682617777292594413100983136874533596578281090248758573777161176311397171963120441721637703120352710052177822547324625992274931429054475458298085098905381495890933216276840851516929145052843792266754588834166399246350092091132885528987746674994086142851844253119893377326285916907875330476579302338917506238502580187120296708594627152904989571927084410807548819942749801340171549718101129950787159991938196436787173466657271682708141946025467748699210283326693811456276035293677894254864185808208441543805518859629276233409187745126999417220831413754110930961802510098837990655783098256587664984495045461822709797002134329699718082035664541394898937454438126050735784860626116646234089801675929002715227034699068951057424414439403902928965735747507802472775079585819258597483829967795791790231142586975217359315856714760032114596236740448818578191778317568032322275331128908472448580099702855423646300608032606914636217155452233137427598850787133924620549460344888551480644621837241814242103735113477524353147326645958435723450010494758083434705202530161870349142342261330101712872044191570841324150387548374237602864125930884063030770334620159595215905176961493544392885417289104611215205987978279560792061350344407828343539907219733233890622487900836664726172496306356747515864760300760070193518771631844280570503206278419682251769536253644826968384706568537517399414530514008487356081717706371595581570833094333627974575751629990309499488783921270871757432835535369098014492318775880143402087683568144195616028591814124457242372153736586466844626017358453267764249727310360712613861015721069925736297216418024957992853032870500466551472603082367969373502662319347948601772499115434168534073594829042042272946931566845991229192836829032288623461918071590443905675543895274272142927801475488859084884147829581097554950271899573071984989952560323065201605480216399171601339442173929852939522703735334494301269374806285474038599900854016240972984884366357764436803433088132022762314653219136018660404024514273532405005443298166511420628800418029540037268826043017072368971271109751729779709761299571977699669237734713422025519280639510945736870765478759778523807854652223332496764757623151407735353196576704254818341561315324359319236373411744250022480512209467607598599811955103243584857895635102132694035349472711862637755139973747796349863922382196910958388948612769246903556861747260627802727953856699221675093678764497885247512841925802074754995902668823764036464141957921640340826284039966330392541255842070817070282753563611457638945452969788080977670021584277679165626872377650413585093178587954850163404735465559986595766521895924923384704738940091279018614486462309094362639613941316713276976580152867155470528600300377810163479512267630216708569933316081669353432400921987550389864294720430776126352983280741380725711750839277593431029723181603661739120588752657670962938226678203051339622133626526369410083209634192819004492449167147706035511260464980857467835567503455675682278247277319781887134279121876776630919463679200062870843070383955406162486163380035965962381011834819215743499064693117275848066898610425444105676822926428219212070654503172686278099577115067087270646507821798655889820418041142737788226008114207462317088792629070777336618694376835737484799728520899074589882413064901239638807717681450997869937539422464661425194315161699409498601033454594973295465173377223165772431564708813661672324035472957341464906445048020918269626333270936943529756390968189943598256895483067455766811409668883097008228650192692116346546964923108560112843868509119120543185991264908627432431158964824493367073844999444293443164096152102897855005647331232580732417420449426281458188814791839070483184534650179456912432954642418899153088589463017409078387300108525668776267420297668506234138336321034495612422731346303333763399620787496357660149107220048750247148856851547898103463126326370885303677375390104798680112748854810100606813514172161189904436117055314003973786803381588627896939230015575918471890031376168794352872940775450642585054448149515757687953450297500418227826155644143389863078802664086028035803583583871120199209081281313008482310343456839251921872711672389926370163255978297470924068120717069473695241373888603763120190114538094808612811030137247740017386158975934704626728032821457481482045822344873747977765494432847579885870967390890843278069278921297999642321183114496745848678555957640947902414579933298383366006222999765412966091265618533290451030863661422629984122112610397014820465711244875655186913084925404405680593933076092640149542354239366139778795255672076020698342340036014584466974409342851660919348103267580959287388540812474652428734788695562946708972786651301937497712915662713348843176031150380743844040944618358288520242324221179504826096580100561017134782576112936427595291816982672530809840767691025644625669447844283728080339717121534960830330908355027151233859003274147675440009763566926350496753633218337910261082871313069673073309802386552202088767415572812162442186523022621129782849664987832355241971254990735759604893433244748835501629975412087931141642654449161230076235074939985990548874911663134815475813139886150144814401389172307093047473792639321687392614866918920181338504707974184288987262198538332641228322264732892296648862342278518261505276410254733357063191999465599308100971460294179240529702449895234353587356939834938919139626466854624547489246056136868710304029094419639391866163703618980555170698526352062447397737971556315729053275820774521997381805559708075279930340656695626633480674409341214329448321295571643633379685442738933391412069017679030388533378558037092430105936318343158809970542796041443620066506849837175590726519133987363160039750375281657179912527748001948945260002387825947226802099604005196525731368486435202936571669554426067266411845399782789234379783217368176839376533064730200418081917309949625613587498017114361129342478656532490762458886537271182032150564118783202223432110610063847626194072541348964362427826766591470339838419543975374959057618793797558474412330037624069887227613527460495719581434791388678960518162862269126826381478599317976297780388927245219110655000787080248458077876971807017023416569156058925765540956224162624043191303528547975746193356909067302658071210774869264908829626121684360932928496486933837100178905198211067389458054831561218489211776829303467120322379294922839254199291585317873331994808927912004157582435329857318392012519721216171683499955727224758685539092658736490429709961087023111524607066846536234615410983362829670666951541091332408158647613625934083579317155920784476074229926878078824958430696928094389025845798800009502365976047746956398105546087693143522738796883701256269017305666231870825780409700197517489751528925293088712035725491992529819650483679846425643963402161971532368398261401827635224848843612312090418210792835790263738496786944357474809658784049089858167519677598790147968960948836220609151464747112510418288940235648387911077600980657486057995586090034430000372409819490638868525884694404097441804323760107279282009289057117475795943262728570472444687379097618891677575276559493479360813746197211483941361304169765985261792527460630250546211613078107845700710181552754969459153858780100747595526689823876360676194706305087887172223376867298553646511674375290846151886992224390534477800795729512345729711966505370884757738700435764757915347421589895106686940927389774839405850047057686992044173620999512184492421666216935287666805002898454055537553081528551268460402561885811677909709238298892884244283460320066383810839061172848916296010274237382765423555211115723518277244823886556590210973439416556292945934772991861149856775673584959387328575756983097345443879232363616595695663810711789617669715890901868414308455603760919055110076710077641425938964478897337266589912628375439301371688961808220288843815566771943592577881715068885432034048432114082508756942180507010350893915884344932408750121604168458608811151668452019701963250237576736778161800647820305508616553474790674592836369137391086560057551410208010915180453519397472364051736458730845670559609133240325629698718376173166758920686276123014381926544623964842745640957837905273477611963322799312265889201099642438052942080051788085735593657657644135263649985138563997637352131439493871185338125389687047768719046083247078186982282256705805699285871662326736084537836692847332375471401502260693773809369389572889060230131876757449908354041452735402466943647688140148500381289064577416582952361304094883342675344224816389249126162406811096424945058948568195460260682491928345223243118766890467907567718846587515448544684278256868703435674078297884574642449523312741726587840883293984739402242711022419704488200172098989526256641397400393235045736941760544474594860557724409407545057469222259648959188930518056982491783686933952244222901018400191499009809998109038940183416607170156714215729829474378338150794586417646069844426047800682764600676655163714738088747332558639251591282610188744662768582622069734814039625653543778910574319965917706153639914993979465537756857666800535075859824611527598908488489520003874365669403788036645386446003769670778896017901806575694870404496431028740609373272002134747516749723698610538762545812600602918464651558375365129436738718613270308830561295170715895993506255344984193550822178411417752109825042025744822566429044643661357852704499181755703788446720160180416033113798932904436436598565940388190127111563657976730081014628247257515952395296574106490310564074660703735722497835204311272818697244594848054270964450077530512070334668879758399115907418662923051917480440705545822767405313817947161320452505104826909401752937912958781204091241125129562598153532260620272469636125720649423326597971624016031280077603790283541422921801152229369084407534032987665986592966835282198160050455431635419882264611823722406023241014729592137693873777817636816751721290716776268949648119502874459397520664705603199091557163350047447641447771799296304007545230025364077017747175386063505613794465536544007931339395224332046869635307023338884241281507499901427974823404162968000955808014528788367118981469837470091276238570981825333487894013527151295781059929616333531314182932160216716936962679885366751483464587907059443272799806417953016952303501754625403746242332755411110108102339316644800556733945624260351526180372509733559198485989219273084400274426299505709220085787122377606849746368061295757889280924732259222163646447382499795617820741390120470355462594413401290499741297691424249023747544407349873244303798965070867262341056592689912967129904042403580296291746724762768547738182092638993235401826753735568452528302432094249442609095267309051759345298679259221388614945342992281934959423877536370049481923668787430124859537809897248422169868704077196190718372302806873192787476284383198911482336717740207909481654829300716375445198745196399525401689456670909676792079661424593065833539182535819659518433987606868638416375755770698257792091877068326255525726688852291129700068166864432955076663928767882070537314489349568400358909023269869542895300192967376110941564967423768367397984199738707574900223828883705839002643649979328812284276087927904246993153632644731041808303219013068688167954065732987207902619467724639070790050264891219803723799557037967551634336319117056980243086280443465878723979511444234577964221147230981662542988770999049115428168691248041697120999206409699099919716988079585927395644410160826089585186507236047976991162787115855842267529714455482169847966344287158303364866012930048141806820648306584674221228208022489172080937896820514977727585636351038401430310052311915785393749237033870465457297991098727379399266883257242463412222725993269914096766798290591195289099184295665482179963792232501284522153134655554637672161697170602236236034343262838384669323312507272376138001194076475050903239451653378851139342384263463105992358656496846834313888186589595100350944794971182383958501204532743961701916717715481442070767011359730181493037154987923515525054312621497127245927451880867294122701181495297974837867786874314596859952547288369517692365023738158405724226729352110464554886299321534008558570375739817874035187825596295210821968400356507210439110034037671372188719479307124582278190685849945200700815884750499141347381916629315567873679917163375387115883797456662504657413572408744033670844432972056965224700212487912835807265364399839232616309740423131581898076460492341862613227067108023612140745293601895261297063688922758901950584278070699131471497596927953645179909449651180334090125777630587917469032463434059481181648836420340357714998380249191828296813539258074933741620473127833587383221039128497430296649123082166105760335354481868396547817974242152815748400752901565301893963533442862434122379753435046591071189279249599883953960479183308973185769938050045889067890914032730240032368580890022948916922123555218314645963143469979694997475894513034728592398961752592633249182477595260196915126771588693940048927242600163196444881763269055389911162605135377595563810578575680086616424469862741916042345603065704738495803246646877140345681493949578924986978716790157778596521532458911521311696236649271401021632128018220575550253289424027458400898701348687460426682389946377662931030622805464415953747612952418384881188757155001750578028664952042853785985122614700800282888663801208584049003192253821430438522211608989841357913442420053241535815669442296643995201972143025764608114584485552864782051535914900595071784048515664188819763470204046431341773770343652909912766460554066865813193241879669846687102358121812550982206148870211327311682212981775121095725230825010735117707937516607047657250113968593611648324172986990329752611158184724661691783717693981942367832995032848064219099307099861536229534397956323149173887700688052981145705514516600452330627888243069334385248565257541252823952163164031454979422465910600112984938056591903532173650241075216630582697213028543926597706976971987105321611371409175003477475036176991733509636842195019045145841818464825843930410196466932276205943706050080936869967135229613199560618309179787029945748472014455161155239111434553289717160593189568074553989294731641785209998351064754523734494850618955298141681461257154227379712097084456546260470401110183187120973732060705588630405282934245880724007947825106383302768976598128551025316420230768851706289477850019087705373429449618207151327876577205459437685058455086798791026059335746156545341034806370791493578539869532978751923561405685066151770944888589237937740207151288696426040047285593894140371230591934159872060446109860358913199518808493413767202913313865068275058639683930040358092663593739120734261533138070891509688277172023843361728438499209682918756068315368406434183334477159687883410857905852846025514020494912708083899437750272369576956725159640417557703498934113539574052494832768789983120717548906690000771208676775494775547473917406742202241946811152058142907712934047712501223884618494021712847856325027054475749329549061491098591483598583957185086024062605220558369999944260472534175060270168442962305205070657794779629709915034963539395944432333803606802656598293100503046011208188952278931306019090295694355691440062505040183154876635212149283380432936956466422407164632560795256464849091729558473626091546281011523808282881736594299125614584384184159008283239621712093983021266284628234698154894688740143789316957863065385415130235003629859868240803925695725469391261323359622152963896303150789542700252573624493684006756249164332404792384784522826033476764402862852251794557809956155609325726390496402941491982344109799862244072458349813454546114362288383839896486365023297137954899949806118192269246753154890191693559249933889593090427877255533591647709898813523174301763240584190067748759877881771996237568487985540456247658264543185359181373469734933579616936178535379247126942660540043946668737322440288229334979610848424348057884477330019711394052518024336606269967658357898822569599411234213592784068755917970372840231412428065320301838590142158271260091337565983643680234290768963899900976821110342263478564048574082877534042790143727313149650028564546853356607178442648419617131153153465903880370140828726690519163828181115459272310057938173672924591580887087741166587305118983003817175717973410445154179571022222163881770220498288624155510271103873551998449311582332846489622496987610554144339461315318679368881828330109845050837728082194412896437637110441841181371356218991608121579954911740711605631248308568999676224236179420043252602980051270173494745513476744325607808439281923307044820178990439693059465056715037063226227000161661900172544567865704915725499043211001808753462588537229245677803626144459671657468349231622563221373813504896982570104773150416209280856227974745882125730750697293483828960670447768092692291607031979805413168027572272132585204235265607042285093904740593087711758339023498832255791351161493016331662992432553523637831327873200356482346709000637104804234620602943266259586475027084036745062109548468217256042280580206957728071209450780687528410678757601265144726688814062449806140963098332565053352153767012568044472673349658566066717574039185834515363503592490075019807662286741970968687154534963945948145931401588006162889506846511072224782646113235699637379153912991323259577492699567405674083159575118538069752521344963296264220012056254458259561048537095317970619256296349462449560111084514860322083962451382329840667442988668593854957378058898736826176130161275567013677775582867941069552455306291842892916207229124488362917904008050662560896711062635602570213405928377949587566260694811560543782088454814291596271483189448889793611940242249790915734994174014238412888869464917981050983448909857285740232126646408742542856001450588473950149767142051559479927451061138169976459993536419794139356798846470755923404689133640819418815058686420375410497741939574197745840777391442733650303659964745658637582451680711332389172293105926144015595849638713139730471028435510996339647404738250047384501894162230740180606550608837184665850343223474759754316748566160521283613075346339405480710511075650091710970593923870162589231813311271951418449825060429250265571573108019552913140200842331795898806545303072910531155597204006962332443917885625089103135800334583473771371226403175901956160119392684208676574423869347095991992946025130960758061099111188019619430985667567496398720928484082581820565547904153731489256914316328470149787120629023862724817683730908427569796627355196870506215839010188329086410737558180570903631048440450129951918341042475584500445868809190683095243513570612649454292416933441324497359718401846260839125554224470474351241324674323168026428424634090080234882629503940039170322742257533687573310035245617267593332888561440627413286533090121733241559093145900157893173926695289840586064033943057470341912538057356745505671232823381663086883953942117398085655919190460733857336228042074262813552740070335002010477216697453611996372421131747877200269485895732907588243233966497495238039557132285742440659061639042046894680081420076768570597286190419476602447595650068620997867355719554986612460090664599058769315912926502713094358134510365177904324548813438075899841850897964746663087264077216461825725749530054808905554969254846055334125801555410427005337206850100760317822447151147571680837431221049109725744715459338025810310883199909519158781507681583573732778366886718447288834526222046844328246627689879858252197814445955603708315446433210909386594844308241933226308515833986187530185290123985544949265782339794267613743851502652475625907659848741497328444040139243976148214038367018293103958499147463808871156813588271404045517212573231601543155061264453231908005743152070255038315814710802152873113928991669299753463305045783101358323240247598693442696948014013755709571958845560623294346614232302105701688876424445137181884413165184786972444567957800232104757003238006977922645300431348664949486356181677742988326759957489209348377918395148350080067996235880532183509284441798229382412709026408774032353308062018890065183182283318876226299645173850459944989661437300544361580766881499430219698002736291629527349041212483497390362334119912699771057295816864327526201132070793376961025103846776300423723182129831787688448072157868872559176719440621312261472223345643022164633053270482440407833979217976049300622686962671715700943233424655302222380466426736821607032451201910769378842165272315529713291995296576531753690602888412110722097943089198651143539334986783783099317805221625089288602259219159467417768674444211292793818852852164416397189327279926513823785157983886012269937533084197963152435716888669347303449981326030954126374771917023915429636798493266209421679280704842550108274602787141143478131454200417638921604173277824774908116741047217642642559284233197252257202040650610074894575357353968242909215026433043497454431718359714650435937688142433517793229240896774902113194367733383469430026394923788002619519706183057991466066441636141856094797857660859160743759261042567127224741107976194432025011033160447324068469522492914286226263979712142931497606357999754624999293265463516885364201136947062135337016890791795089176321737558149658703273391133691662916786923584671806081083047868042257580094226687277233906006045072830709344787242591006055375230679264083424020432883927324076162225286952284591639081495399771446112662845903041700832533149045384286583021915535621975337555837013177628945108605435807765150622620653028389863478454484950073137959452380802546623527203672383925200340096931404306588714454735345158029186334057955918515002758630730648217650159040944182348783144500975385439501833419420527394440584172453161065310370548536350119553571816016573889040782577032115587375175888644740306563662352271136321973980073940637151978965092592900634490047525817041983517366006827293895108391629610341959368602113400031993944170023197326396908019688017109920421991239545647069367731993949292952955893002901684030234199158449543795921463263068185720597631900887508376906559802659186250188748676122407666578248015962026834315841262879171354856721690907660314237181058992635731755699488419777789048084424998277975760274156319460251086435703217323588237224450699209991840658021694873686719794392291589467726145339331015164582959141654682248844176257736647537454974614349532863526615951939465627375730810205120539607537160181623371533980770409050215912964654587793693799588112575501484909448147232609348922361116353755401888357756280080207208992218507112697024645055318921462053946337236278400062362997747945638738887293352547924929818796991547124108974282933445163514803183203681070635889190120084618447809735326815274703866711141984951377159215551496421640251455771126509067723256761380347027881535260051046958649528230172108007770309156735031643163007978517748023393670785928099512720364854763746506799752158882715358992375874793318073637406511719581940107137943063207072763861906045309039286208425355592980197979498111684731406126657108798381588783270578486619655270528351281313440655042401158467969511737177323664802744398569780437164715524657783076142803806606546076546051831609152754070709719027474052604505149337339624142147029774699156919475675431369866339307448986960279291063700131700811779598911390474281285941943034304649996890512845308251910642132956644886388880211571236438592706218631084091862300766370538338396367505069359583054147638614971487461672363431025992783296122462697412049980808535036207063230871539395947566730669284626175516099426049299907145995576191420981553774749066487041560923069194671574943874316494753582156079806825692820633961002400125062736505312988351872919096260195775463395345253738405584173297931504510234747673216781347836315170405942195625797978400485661250823820785004439161213368985997236125945476668935824060009598592258396995298478523598196865009921955398468766442801121583744340795585711433646852889776940899350764387007365880296572051411327534415688929773823805234316130657185514008106605957292900615240348743901163748904428370087197953045039135009215770249537109831063177708609292187160602854446515621858441187020265285538382219648316399531378603089127800304365156574792072340237423047419443971358331542364225396665835840820936192198301062607896238982432621882120249077693514644800166962020840632536791705100635879488056988706929423680549924552837403626659398067546529984965719422984668686423719930251556569753152801533150276833336137623585920408331353121073545794806378566455705361456788406744880777220867802268422178787097619381581815088389130147664304439184579614272632003763270371213727318686282780122066297930268087300657735154113268424335224880465960711195358612900817198059674648832106457182391610308412051540491092216162905012914671826273124327755176270405687809097821737560428591436619000692984000905417266002961134011133889142690810289077136595412455014865253470214641290928355775027145178692324168128351345919904333088181096391496390973649491030781757433179551404811507254995006809762173509904204553858164236788696947149816781977303411880704942286500115458573307703250800506375180536201466413932099459388616250725389050458803251492212336220276359395531180094726885026900116920939685356177262503690294885411294559091014712320703673055236481612492918692447583429804864510672051652327744380070913798961106473317155373256609498431656462830049013036510670755120876432909029614445348406904445528301901584644632219950716130843093454248688196238653585111270379751516413768572941896527581886531768254578527261626951531694351814824574560623499116877504683071421797093704989376614512349273966892375343306125010323504027465205285455261890883495464684442948876660350283901242406139966731653712544176771853437394147402609297551781534207927306619985398139742009015002460610984683775387763854878928986193904805348145295312082055412453828268472006852255703325002526045867521492105763773600800804569908467498984867711408264716111710995345187069590137115557380604782660388043382319599664121910599939408944485105052916089100749141414175645025163129478711867716108227331400413093618429090449358328793048894316025543400556050800952420073769155477328642804747600407611106373202173231311430584624782251192411063492070263643153984862374124538619812813080112398693052913343124025184611433614669637102872160442108808718420622333475459675858864644671923876420065090882365618018016608487655553345395173131632242059690093877660792845156780874634798979899228165637898017348636051673535980030455262949261149669995502051724890356912040926793470033151129365065507742073676386281453972600073917196038128427721655901182222493523652627452591150002291232249919508234257160182829015785158415409799936823036013445442123567319388121938484733683880015822691296756341514002059824498213562454099481242384871206927763100681500864461673448160232606100289064525711429419953386984887189784935872142903955964965978638304255841524954489544286665611504944893028215299450512824016913045920932867261201786109335514241783102829661888403985387590165201125967913948082878426471237065511215207701130834667442391807544289975531393973988987417896260107046464027198538272462068765109229859523432566590489222057640790404649741972730422274264856357050373801119649751081842640928130450954403742039980653608672406728350292714439425063205847319161832198322211894462763606432652664263430222149698379273314322424344531937853613581158369100087066509537590441170019229875151546480193295135719831126658667504482121048196841603198914335562621578694305704893927832270895297900531529925600363894018684094097856631816940716109377094870180297646604809522725622951189854163885208906154344118528118168635323685479341642821924561090572830416153699901947109025480750449880191250792061653346653209883397913266218962218631131453908600846977222170509826828116914245487380602617085281069851584326343052902133332897539122495771488183343836993136425098365928151038114559301985891431448599551129355601208647116194477741879144822185051482376573966788214775275827485250909024836074605667387334585998737640508382122406771030467314527969060348677316081821884896464764911391245367050210702978372276591647748463482353925599500761135162377512205063444568498535248112539040687171598211367496435467742498355005024575904621740075657354361789553201800350446393268498868340547012225248830440103102332836031343552273381713450879181880322262789937707540294383906303031788832529447273677289067492041170485865838971856980222522634361592471483726957758748183053222379751726612328429598949040524685536977492983213944742050107028112524911160968047947605022528216748882577564444338936051152871140674267621396668961210899293335343316266409050959333321039842937019309566074030388548140913403286307995649207024113761056388919192779009910031083832820107155012326869408805110505148777220256509396793073499366482169491436307044716343168616130202896908690404536774432575619948690174532528551196806479657006765366751029120719359743805874170207008403355695088564533129076218211548825361430513757778519749621391640510203365140057480714946500745288314357339052868786818420944324356863177546712218865281435397856241419435840938861754856197476036063461674805931729755221350601408040618946809842117093849643530668219278461072184911125832809558432135389478697834643782449545327461377063031195295107177566624489021759873406522783058846452171011548149882651219410816879030307271046668635944479040871469291953841674975917622455520978539218002189546665922649910274884900038919662211557392537386294251037450803678626646213634916111382256354674559085038081442356509808026748627276783537607525063566057050159019690381419320342495645700874619424411333105181250679388655535765766240633958626352398281650491601476984348590602016419800713305783396628108033889358791459085801114334136893294079333139794233966310201795228129971574962528615577594468149771046535321596805899157494245162343489430906986111918599087540373160940368976388636361908694752746162337219131918496000010293621520099782662729378168359994742339123837941098333127049674822912906167171136737301305717925736283697387756964678671955817768119255430508970592878207287018141875530884182890582090779095895930565285679369132102591030623803367537346318927896698771210135778095778589369839612215061092094557896202745771422415378027107238580653119689367216972571257157103515446057028249958087867706979962371585161090934796563926894743698454612096551920887194881264265264796504347493307322247719305250989851658513302822857364869785541269386268841073142449660846504127003535598048353045564323902054158180728761538366654505299206521784844993205763197023241087530855288691997003095251863180033014000537841626488852382538630432282100788673842827558455580108369574834688006947984154937844366305531456388151159999752188265208942200138899091507018035097326898312190201042953019157266183930022024427943461043883731711729273440722725280910596408481820156438062609152463495132202775649605431598162615727091211556542073691387696069194064332330643884454157270216503142252248153749698499886156162278455922757017027018779506665835709638958153943002769859292013311849329086443943106358299113486272114743217947025076133947046746023528543754292740265000602915102311872781698776188148437072746913747220704186229769647414349773985709683907972214735325949442114526385151362615015234301497744249109837100399961471011063177365085304932482449335549519667522917273407187195686149798748215564947046139536236063705635944948739007852963364276772215182535967872281594744884175546632227393016757740759342645651502778700987965359352120451609526046218863236952712563642602208921526623847029081450382104099197047515008032793217916161151406326218274296916106389044133898633713973411782295669489543021416336683358518113877019040969314650218348949799489064613993541120939048805581215405898209197363220667016578456562215033333474437791223044767106718953467683450094837255128874721252223317168800445468116752779513672263729995644015761203387329277561055894658673696097830343621361002423672392786109023966990685388523810375329715974634915587093696246732998533918463309918953093259355734998894168222296496933198391703496682412581555015643220705940025138922392709661021741399792786958000046345782200332945509900814979199682613877174778583330752087271980567968422013074409736586642827283842368742017005912113981971034394251879845965165423034083013763781071912740578853449934784225470038424526538723470362264042825444219135375626454915942507252011126696038864468292220814847603852776969866340983497375096430397915540157264771762800603484681646058581839757250138740151109670379497544496944969116033311143851920636609567396757462647385368836752483178369320497274618107775423637792094471229162218298498100541070056605570442952392287605644363637257007107997906497447882716800210475828056874754333769401714203602303088349273886805008767510211067736134795353410858898957752253757489875055155601123506056433944393158660364846202468719515187316985961420897059752210630579187622658263383202180437712909701934997906774189398456309151939508157658301613548914792654463765810274455073985066509578098993651026550944783378572421342080251887536868398611544007880624849168481178044014280772835236278946784293746991185891511993938315603745671726729628280528746152142898564238709778324130416679056372475354049876196291369813453471249772731986533852567975424694733975748699423312321614610252619728743705981860430875856509343514486737231843858374668383541349340922420566783417289506584722125709202022087491667365221322335302675028703694861811825124511421324305983759661730111811059364673248932902535957595656310676729297599964755352004612876309056351054358649988881214548230950902307494718694056256431040305748841139965343074018315555543279027392340467805626377916534290951862123986105512758411232548813834368445457572847953283889548612592053622997140281610755433158581684872095447136451513526302918011228921566408738188341410267300362944121185293788229809886734249748259436794454465510739276662880133444316617975378110131282167504897230808900136083304564877783433407962135511027549261341571253271434275059557707308952869154332297203904505517508231516563549533789984962178257635598049929780809673484378504352277785910616960920270608156733281307486158897200295170868605534560292077672965792706990478940784451228747351264662733409879405285947151230062801749832934962004540166502185741517687864792050378557018419626802623464093910806552671138942306389482140074829911874470442509998498586723555760003070198446381857345880849973368425209599406613271775992574502142113521895750494687138297606593205220897452749106478933544194876191851905799730460498426844484455381678354315951295706111885684571307448024745881561549384786857448268621688974151521271569887476516884864802090082996187643335930392586644015761299950670769679138603849363232483333049547710353544557435448166149898353229508970499923130565359992074799084559699803714255921009974940942665012099461933592690802874682094267206755775259331455874254281803655964832143129017102582415368593953489028413994004827690722630725543766009629264710172944521364327133835039249506564923501941465340487225862235987751054717989220196552324744021542136666443102261580874049540571212115646679407287367668321222449311168693644785509991146735563371423539502527509477905072498826570672670374267125100112589177784467523464661435905453517624637906383357019807098492986013122175886586266705038922093572942416157264527184118230779530046941935185575504814835847117947578320119795153620429509331169283424920412716816646567437668298587494159768981193658012944200803077329189812128069421129705405295441623761161751467418462377906980151989278865161922358184956489127699824910111144619931998168015571215017945961546593415093873891099598175324091944363098901072531452295533651993805878174694758573444672838721284128901723390018954136904729095778038392230904134173245708216470047531889718523757077369412134222979825243809388231159697599815318452547737640837832848781123615022959931414927357558292915228595513559905405892051277347411886776280680034350837393645744836985014064053900705402051031069105027576067219108877339195737651892234068461098159821155294849599502448616643460624242022410944905397483584472895830647594427163461061362789415303286822131804767558340688909788548764971325378835381000521602285371563099802798360803335091239526405653202080233081087269385503584214338469083592237717260812592537752477820887723238065861080961373193091885713182339823722208065379454305389481225079735307085230220093949389034726974968102256873158477227685403379895345921185463919422587761187147549945659326087609833140222821459184081074891936930572069718971325927140884968206728908657167804155626510704373880198557037749620489958987641630714607298478297006319652293282636706970128105791788387781040933080236938005462685659508559502249106288481424609852551968981597722673896243205951299307426801900478954471075318065604254298913912992050906983056617104135167576788820134632690137527458454680173651156173312763765575836784912915761734686062852326930111114221030962960425090709715834238154856726274470508682977770535591276257579364655703276305516045994592376404217057982950033203069096215417529963392640548268627999574348289120180099084961214541858134630024378496596168731733038781568806274362214006487500082261830783706468626863252722429093679906994941944268012172688333223831071707701435988802505686128972798658565315318148609814864365535857229989024931524991233106364525994439123030929814025227783017230338778144071897017839576241933243265727513397557283333162365012155161306795854028828015491102650149075869295855348752710535217816626146798640977824030956404421303671951318199178578050655155168622835668557784493151279519653731924948737088030146003071541026943468975581568921239021353945713560463271491800566995799610692376706660197608206521900861777807083393133032086156448316351449629988576171986248379448178974763967712421457385188141814378332315662239297992338426090752378169332482067728004968767275488989325133628360403812757259755935723427176838994773560698296466494301160065876386861270373038671455142195430061976447661929295147419355552096171576685030048721445382507629443737414747346700210196771551191260175360404819153320808970153683409311763760744392093144305714715425800551653643707648594304579623521923866695480530924032752564539685687445793468075879440896462920488305372331529879738581631808765830989691668984050571300439848686462634185638586306185878379305709944237938482892482728384323186672826878057417433445420530142766173945501891876128232730453652708254636556794439370825038854677372090929004870811570162912093053271189063139823338742187990287480539738883176298743072582069440758372630439730848137677445848395035084844562665928348172156546253551607043579298437471972644985131377360016704597805697818774578047434930967441553000202332351098300227522975665272163651413744263568661028233312108702838047936402823574565372273660020009114530859589348253783460239127351820446660651952584853702767286406612961926539039131027225037338673572321949723558700515398462205966191235242304462526180428202413845526994483262438558564072623146668511308839590472613779222160821657731989606171303933097343134787055583554699525415866331098386026227522964391714653850955948150640756707452000142698690375630399953992331246284232231119584560619341204820028859875896933100936066601181275234670702311075212484119324181517951287690373461955010409132561949642933497608677792895334472065933581028782339063654394484920280594726969398269469688516636023757459272484128510856673461882999701843284709276147939624980061519766005061564562742355470900704690065719202487896684981970623349907072331763941153675081058769824742143604467915750935797596647105647528724309323979603228125089525319517778957822418841564660254815510573825196217483429351165477686890247172295246224269968627546784635662516786304063833468852819947827931000103962202554849115664044098591050156215728353354254324308001704430693737201871830441692284549679509366950718912341855177122662197363064849280856478892131405172009349461299239386036830773081320459522037034305736784227079107942972325224533401219484081602981546394886184907172830929181676594130154427593743399063684494542047190696339523817180021166695799112497076132448110361881553236946781721530282287923269339207114414606590785612814564331919120381931421324192376924249699869530452309019273375457050187561579551714991592665488167937266759546362016858127693144391820451267494834390291384899475530368779777371457640172676319375086479033283654388933776279138503412987033165891080722194179786416352206524901389318218689823720620364556218909263238360619230920020313981666340626215422050030172595293547834211587296945697130182366367011561466911828730566101379993606733892581375757435098874700187341843828215687558779792721156555674617028396013118351700875877143145864709438430635489868177921388901047373215097951996634438602359058046388908612827261587531239110765762267817553184227091528038448340922684197469376020444171711420832568061234216475133527633604598519919586922381488112479191906055993616931737127314454157854462426666130020287686150992194111996865202760119852909976133700704853203216157411018250959518489327967274903451825753273014088387642442055868644762304346371109543483789978473872203648678567427128676602493035124904490490253919010776792266124820792845916455693737497006973848086670583790349879921238209570949161300889061693278342621419495953650950322428710471665736725340389477770506778033299922609045371955828340860977397678421554242933065948522425476496603948831100211790309939642767351690652444161647401938862859458378781995778840723739685272861856621845659095128036194978491382565971742928945678924508834495636971690301465570858681394823009164084769425913107698610037019601116568157104286293402222624144821499510995060051606215729444309427535059322477298129500152234500626952355516686792068070098890893397998641683470890707840678183029801287800426271031480714142398430553650026833704028662747944719334806912308325784795762757795606706463298117082163939756252988501624023844244357791033450062763004332105912567304881774485060820703972570690342693092193935189039399299176855730187635782855750692505524096656124382770406878421561366016583245901424880667532349551734453990538834166569972979552035694477079807443831713305071364598733189099255259053565162355846505306293881922862787664122699007333151197310812851874785381991533041606479263181703897870197057136644954173186538018539726583029658164782156406481440887068270292989800852564171725840813028749518187812668895474939109382385217576622188945460773654866041431569985373660432488238548448184131017787604755761731357353190699987933597234353611022601393331520378836565524012793491073506689905596913888317283560371979142851007449748121587048321085767998180715061704755963662731933366128642504949474617395181246384055521236583545204130791537104400313532148331242932466442382470617677372495430873372931476601498564521322556835299004092991027227430226923958008153065363488606071513113435460337321007298107405541607182346831215310917417187236551862530749218174430815115455099316634824100051288285774811135008834337667834433029424888461902587769862948001770528842003568827752524231906014368194739170670010981384176022543912394586735722739062838627646828044028884596628100446481710662467913254461872463869645516141932840476180378553522095335344049033678341758567547215240648306614423677606666977740003220199833849928367596831918966836127568533636291637905007281223922590652568894195757362890954407478412996763400573972621016411692696571477619747341095681407417272239241327877682937560862559339910470778403163817191261858597422766029842852049567331732958480470036034350916507145523329335291573522664076445539018698227651776123690080661310903887807078678684144013265976118309443095884771177240073125977250417626789762136011684634440689295630175660865064636353899664958878579386960571460079763481140385898569414868772368057324805170223433918017905571529544983133269167366787346160378573959672241468448096651149001651477140665045714705584881618748561235143627189957288921080238214963886124256747816290632380899172810707631988414100322425488721836970645729320903599848356983371864362983347120954152964515369840104170777675967332690831709625358625488635625487364452309078463456558534572655454824381952046712494140101909196014823711355474944309099245569144404115959898475763513119526391936312969164654098374168485853434770519672212767804488360360377677698967758480436372722507113253479216646025679377853235015540953249582022664504334972363741708710024809535079109174528104914466172106259951240282188588670682715911267293110709698577719341891406780484184773998119294942301937941878229643044649499759278284202423947337536875828673729160492848002736606209292485408541616468050113303299980203605572563508415701653693809489035535387844642528587117030314160566835901920014709697197776537271807138114185215561426762124671369789528073628356426845100455734825782809280573950838775176232804206156223769274697437551203618257641309114157668340433515506544812781423193460667544978907000445420414918969348602121119356840279545154519902554410048816222821795793464094101312558656579830769298993178247739685661393747165067739595856069303735082242525164609837762333831030191698151643635566288980256258707124811557840538445475021492176588003801057445265689322093836932577961428504710509255799224841399699339759247242846688357589395959273484527815396319063345558462697933327261188643329992774781991283440305702689527309545431368933544165088882652933738239591894718009661908195526295016748287803372466765746489133494453677664148893215937903812527367836427293927672768426080452796469331185980619709145455166073991673159177765469258518875617955102568924673947785709890469963215979081980643749249712024259904995587908476494160653609104877869975476015036277984365432899688987430720890786848987640879895870882640923832504303609430870049911538994622737277372681817692132278718699864381766905617545861770676013456437733549559165485462021584382527198358979638210048355555678277155404134776889193849896015158058625441672807128171462409860669823752390176130869555189335205154502734666053095798980087745217829723860597880403692643137331525465047950917815081616282276616000183392023472998047649441649533701919550914541501895967576287027640754274083613993845035975374579483740651512682668102860902223986472092123618684510081044181765727416463170310680599410057064516090030952978043481497130888606396998193101270436742452450304927778110263818205529123934872603612442497080636232736568951023783471921623367494119808301373513838921563329238431919023583662989498186808286706305137004801876613373557599107810236266922121497200888314746635663865706235215658507882852460285206787770605297634308548212573381466592874098311499138325687576077026180057434160978458710885865144568979580303848304994645849141407407085987470659742079957716516485693618166275309747359285267166050166836849392016825199102859402913663813865192034400550367066597416272660847280492721256060541829163342893468950813841710657271381619785114702165504859969706990606065002964524115315025548129755476349312105155765637280518492005726013223124431006592858104963862083250110879835772803526158900092146362971014596318472109032792320551910385886871536735753965936635031990142089344690738372017040061111894764778797599650707536277907542842665942314606879130869991142628856358146855268535380889576364935885551504519616414904954026164937201249163211619840454345509444857355055183786534782224765035656107954397942588538304245005702149630111552037954804922793055247103060286079263697008999116400979393454212080628060317998112439441837521054295477046675203656499628904804042551061040305103022211509909416724567018875245256478663638065153178874652316730835929299162322735676346389388242463887258153494462702398164146939900965140274771042883027004116196896577027869473460983938713777646994821495962093442321290261285700414380908704926192726428117464333135564397543750320017132344941124353213112543887875165892990029363621657213232275170935883847009787171602703705750185183935407596761511087565651117677149940084712589642398547553212500887146163128210686078422778575474292256796001975216447852147231190173324767837261123631883781752722872388156161820560921787889845879162663826993485049613798724151446748834214288295311361661133226201424319031863379512728047529585728868161699130892395481198769298525059276122122704774026692554582132607109026016159176874508265209419952906849419419449511178277573607817831284264730425502387404456267655642654952138193508431495177280445285405515284048222882460512097912154873889076623176806754575056402139001964941658809995746229376504004139058388528496260204998826514715710850252467736473353506283448926487485666939631020482029139888735716062785613856236964471836710806996321748944568814312636410748807566936696090680911192761999380834387912621860534007438535156343065750999333011865685341289917564922889178044127851466227129202184934396251619172130381969288371076950228007086161326301117850268637648033031301479259042852920566875578813901936684493346188314856521043852401904049598746235307044267318436347788599168907080812650688265333039925207835077711054825819801127867870071560973883000053617456203043108422909131328648294599794221936275393820289367408696766608456446133606788840551087174138105509234934140411697468837204349623317988479689329653565786944356727416621557414560457506707363241769987489901622012601954353742815681714470667715368968666636632894038578162804200015082255332233417590177165975379202682061339955444131102392458574717963801397381054425512946032817983165691624776535394406041976481664316233589375190824564354341881963820277599376620908943977178027254248638685948537737595147181598660567986854781485110108445122901800226030762886173111097894898020026739008603664234563276058135437314168439598435972123074937360732582054991426112850889455320637432534331359683539081690462335294820355207654990451980167223358570542454162192482069107858235554080506591151387623340100529930771203629648817005695544884188683859648943410020552394253466386856015361469419528677939036228099448315340079974509817627803047446756256453253801867502502259636334286283630804634920253087833838946944666943944952220751456073799362714188802130423020670615016758932206474872742623426847802306924207797083917992136280190972192481797888264724616984533711266917738695440188496985282764686454490072682254833219555932515147865039172525539254687785820796930110020504727127168778203701452095354882810673858445582942285641300827382366927771329305752340807006968660973139781210799386388181499437534077817336513227642359768801429044283320044544732152113742065189158340442984757089848932492809357762019159705424937326261306303029573117107816566275084458450014670024293616744218295503112951268074848755072015767811707250914198732393030583284880182235634904369232298858352083065493663645268756769224033223523749382185420486418892175632811073382476326859986674064855961253081235632652223714418251141036266261109735093329467873657070217520798668347062620351846577131769041750539486121759381289124267592799704206831518548736824057506737952904250827088115318471855554741764670998765664315352220256418668615808889789015629241742401012601072551598029687375459932614644132240118793646310681775520184340912176884264114782149082892239682630895356488546728365886035393202433626735600061656392547914637367658762172372510473411328404504047557590860853903263730612577169596246629244543238850550276011108495491320201693505439663394718723530044940891520610080826823788275381474122626385697337651797787167676974234430040776887082443601844740739159992018680539672589549933537123260885893334039805724668165284739841933959185876316854553382048918215190260203399272913285447774679216089583762561080945003764391017375449684563407499319379327627876690786763525912591669671956301112880967394131951430193220105325122780746165431020043987509286757261796096404345660135124193303536685680624942609045949957295288785210167730015928191961646490111519441645539499304104510510004267200435766307528160656310427309370223959463299739044179160999133231098142879693472145377677141142951258890806689601376750939021193189463865239267859289593738655172544445916104257892431965449494460567584835335789705425357701581366130104954907115762382319084116814732903763703958870490703847063516423806242726056217274364569603419033893033302312794350456385166384787018340511487582436312689922671850898332336789343819745509895931723897098395473505408434800864842724088080224701787321421809168742137380968540545188327025399023233895721322921010535028885586649803555728308378846624260995024615547374332716737116819793984455236805307969976493696340510194966636100856040210175140977888215076047978730163015396820942157158559710710749463834019295997489231879486688942239051125632417718193853653431560632513633056417173666994132821456687195673320699123824215984744008231992341906603496523391155108402638664003784189114673336881896914319208571133467095508879907859536342530274417684465667325120805048554164108094485430402378001771931650346752080468698075543273425108154137294104301621506850309933618810007252823906981036376067162304731431654354496740713167111564113381678595207830523707060238229998690797066268334382231267108112996027372994760888725752022886490013644872762547638435930312833210407213807913088226565752263559994007451769314688103251954972359608188254289568971906900525953154733944023843722002543283109012044861934993668012394258848513379295852706353564428512592187218053403025284979564531094809122797185299402075291399511552201754934491357410771210684415248083954438454240863521247155513817489238926196165315615190566205521841449941077006062316857589174440796753992268196617959142941794287015077011318268045370598896357048243291842167519250156510585889401601378421077758269614975482109053601525860815687139340712198135204995249471172744372164687374829940969900739178287450552703375622567644303970482207036069311775994649762964906076022579140923983277568297214319066009911483076259425870179521698870746030597430883330327732761361056257216574325844035432198787121603128218001349362368495848620731104745048336532606814523880050804184660752324012156610550580510794923677438291863666142308108718582591385720369049294854973072620540241397992411516558570862122526591259041612584810182150456160818748597927331018912370805670131484802541556444877109825929317353482369457502526178842017395809252006462098387108590881587925769711181548969116418538046134622777800261794309499510753328868848397633652688808392788334885153217096360375700871248999354119746529069914277114616872974535691919700806508645062587906919759340245312081173388578775094443963461319415023002652101669722354112115197441487475615325448815376854773150076470013918915525843195296616089598647854417044170348436928281995406300697143741694393185430618226683893541268649395592206014490634969985690740023108891422213968760478073822600090400569626097322459342875758724309879990031009075768350776802769539056662815174045628877956425455922689106868011112880023741029612987820264406246823732977694380989497295160066256496998971375275780382794916253218250385706946030411489852363906593488461510757487851273930986498067445580844139358582735525042042184234028575817860085911136309514520794392911592796954572308853681762911436829640481698129419031382577134796347035887584004150850214475298083559638483023872037439269676260119395485835458736987645485938209377875440725387055315922716957160233351691378931673276838830244917670868884885432017325644076456033730957104908101504928382962784222151896305311413994428117402106932014221589732725923012659166041373683259247347780620876564364098322441795852179859574949398620679945071065761277975431121691861092175737362711935112345111474115423591086006988785028629712491330563617842485129492285595434279204383902491972465368501804458442737505423377756793216418385107399500626203993086963793333265905715560793149693518686923081085234171497433082423494378434793698442022053949786703986932630663672003434615321863830343926397298289974625788603327526949396136908918639813524879650062105467231778493509612736369535640983078493314399842771295547603940582809369744483869292610667215167703291032528898601623748111981787541075019029315964351792058159549606089723917679425905309334181764453892074996251785514413671455065708097343508107998982073559632252891848616462285222591867293596606817510045498243626651868845949210989767173943733530332386931514864454747658056475416036567043371900490213019840526686159234432023642982937312661849721265907167192756964214771081764256354876438135693687960859206365681350396486167141651670378158610465348340107523755437523546058924539147651037690231168382142171650143322367541840538332502776544754835579543936080517082027090269732008829570006936657944345313480737874418453673742120191208030763212967717239126632094012512855587671705952249459647199557655655899618050394077864837054734184825498658411563283196658918191924536507084574869775075538699667614015475926392083027814888645461040533460067425750724890757773874235639831372166580240496120278087934436285629124944682266737040035655758146349533248413551326700704659017028505860785650990998105476351062930407526668791953260058616447232447274971616171746896984489911983036901292861892662912588044102113896235136577920224605714838637137226443293164213600333438820084425342725136170789331437191901570451875708767037183015536307389630408255584776767694926618017549336886352127334328713232144824283102540051211030649153172202304892459238139015557292221279225617878216387705046948561701922501771623573832777763072635062813198336176359836665254540881456971705062699237480912544531036659504658943951036398573680648921280349966155068666348903450278622146678642785237406976082156972903619458123097173526367732246860446956148308187889410601312961448254505757991055257252700715159917656766780272191010963014114683061973902993309284837078055023330473442198617797746186969112145929585253042865556189487485965133382996800699073161237131608759509370363823670323304163672005332051699421069563309486908964894437075017373070495853204614855100707656800965503258796766607980517641539442114773279148518028459122952906168940830346933656263914072611930619220798032123087824951185731560104001378007713331544979131456109203122647244168819933019135071561726864143846433549222249651661578203052782931969273570501571524393778500167532770945268410293196656803747203585582907703381721924473968484850620090506515686960218905401457063317246437156238242570791966466672084319167416166379457059579548078854498754742000636273373877826315703526662514772699115399427630345184947976063533617337507577463237784395855177494767900211193146831347623911616765298901172156904538688084769417185056261661884882758744386359449677574372489555769776407114208546087512320726862194926717318861627872122572451572306504184133748179398379526289946857328628247619231444208869071127593931745746158874273005500863808339908468552254791113091666951004933658062342100138326355469760941380053783663772336430385121519705883418185519470188288354767865962248083322877493827341719708493402230901309728088375568494052874973301894687959019194063715749871310704517584815822617620421856880140537895017651340829616792054023403830617434016247940245182331489196578085603597198612048693848179077390090966125534706644982501515435193356541027793719352314961356826369217463750790630933525874045298817380690927249193979938567699248665656861424690562903425898782820494586141863229239604579908899549223478134980099119453529544220595295215610702617200623046867051174719377748302632774094532170311431356417475290699415270383614946794185240606227805294147860551014171236640079853790763040308425719429570753090034194810124734896858902781280138189920703374366656421498256357825365300496215885098642087770664065634065150693091614986683704343687169779408261835257417211870520424882523155096683740481417203541883512000554802754883298886388456778154148821293580111187277227374621118393691789700051378092173418585899938705511626816277842470850549215454604686314347174655585957150088067492720304269952637101575939104612117224183568710356602445189170924857539066527229653353905679149284552044709604827322828283342864941560394939310811667103261301626618719564232246454033508646119688918012342266238772250439575386241849366365509765289404140248284934473252969509391098248314403023994073581876285086471901313829813949805839344561294358515327006468994666917833717985022459851007501941335510679836189912102625940696107611958533330115856040151486878659539728686007342304686197419968985166396883493821683890262191743817586442987791676566395464431657189328930642702963810609395374654873546329695316061305280047138346519892175384172282451974605116315085631501866216112437047415312728773628714492681200951637895189271102334895427422371404799221115685447663672747372037731549029552623264601850779592285227736157215888284901573451717504028256648593107333998554690623300702133249601151964186056748611582181672870815179205091562234362633332815789210525753418770907305667959791255346690256803664498670380342088020081681567067838401255389859024235061127134479008719212236146033783187017137082420097517532360099630880502236022047473172946293280136968233656976557596201745910349065832631181987396675247880141153753923857030727339131757431225860383715531014834781603176871991143247335801189490899139558776949416933026413490385011660457806326548400787400282852328236991574714262735574910838355603548300506223124328747606468332638110977395351511648967014711577846474342771719721210587935556036054088320998776983733423468120719066434913518871277464509548521775013001860103013852644767883760367590469720294536343069070517922738234922864014311182546278352219900208256665753506230307330325152760871680051702007948574323894116324800434888104989916324446535424039448384186464360801773711706583628711526185729027697085953361089589400346773033821725878984513809266545082310008490728376240679244384546582039593005120410534762898379864085405502581162046084492693831525087304705494798945551458910612510477780263920244333160072664046447219840261519442260357794290957457931908556393461068781022407212533085687394178832411424156945882256716896290082619598892034770433097544156033392104355534359097433074338177388637438955583953222611046349214927658403584921430047453734176886493288947942727221667641167169489400901203923240860289354544825287924371123988713578962874960074016661583666801315452998202279923321231210687028662866051616177907494953713791512452622285477243532260413496065932561243101888188685141049691931492964851937646762640592143298915548020193341279837844592344635536550813358366751925038561602122098443635257315938560845024266355508807674457550699747459152022704322390102028716187213827413813099474511800688961964865808902000423638642372408492126632692182350727938727720032794208493798902494469451953308541099706497137409090192347903474302312334539491624772418699607515276715386651940745869423245090311368513288371655510756073238561234720977649678906338183125961766780588062907456665070193657028241141171620704072584021038842902861248081876319345154537045617101153975639935119109058724834696151653061682917658167342350673199261715243451251564205929120010451809432652776090703325710365653052170434265110887457431253479030871312791037058827574942427040909704448714978852578185315478406907800697895195762369854458711409797732483984124317268047047836263123271330932554473288706904660108784870904867480692656178374864614494651369128317606319881717163585561644853598116174349236233377296586045650540095751225344085827352283294689807894221485766605863121875489409351555170289638328758115975858122107409015221869525005061316519126319940735004549082353658497610531636861231923297784728074939619561871835209334766538161702209951591241086250412442328086371952169508479345523989678450344755222181698909149623182208685176028469282484339770946982360412766188759446413613009499060463875462438789081205773798557356916285333201694906062076746932673308758395214019533461863599175284894710316650920677674794360360630510572981168797156616829338750801996103204569416426292548343231162197120989629516905739137028123603829700253781645108539567833711860350785972454765349052628386856398104405695236871068262972602218130482220368020173096385549686221643203554231680935592772157901914978192145869638301007685638763711938740989113555301923304815183077850613199452614664871775083409840851280570119557372434273003829072460355346493834073131657275312695890425237930285343023302132629207464767699883310518847085147122984170039616871780042934332622841528865774690776683857151151806708590361277835020459660314961288643384415377959888084972283482342176739212920110747856113032414053229148881081576033328864360014041380837868151325637716701808856499231049168751562949161984806209589282678674660883283880626576315981069148021908023405996028355133549848840847944065278668245844529924612223501418327577782457849479327954436361455083105363211338958134884270117375581513499787065610116877398704767508463836686077281069231564473593000647144773857165654875820803092802338862734583350032196634271451751251878425734467532904009774385497027403480614033404170531070105879006405756835272675200093384960693245383853099810745557972153799200173634506763711604714358993692485009204535754863112298359265491680149335949564350365403480825099415693630812987717769167526442673361264908521490741660200240127716091501929621808126729401408440522482320257285170851668561718709679508460070522367416693971869510712261007315944101357802455477507634513351938490928363981031040557986620617675691621655321763244549135564363660286976676242952172079681564300782981567516281524469597003137940243803888778342973632559535229359086456246962051085980654951129077935378451796318028739304051382192043025778646748597267862240084245084959052810822266029918056791426740933692034586477756155826344580900462902860253798282277883860669550447404206833076765314522324195465477635364641232448132280482122721566511379813412681231069192745734888369189948912637109043704352144797581656248260181416415015861881812791333629622986729651263009252094234795956953660068910392873048916724909543023634576896943371396759774667939820583632352831740429113645228915863236322508437525229755721916170967434040457810275714712285460769273699325620410428133447400303742255690880689208717928191965642710290799384079779222750645808846457175214564385621650346185209042058889896974894941385348206915164883286889094902020387282677185527137404062855161360946797871172187550621266964950243233742902195799163020362025405533956645527139075483147450983481802313352677533712588142043355396075688401111801299356176590191824444988844172833236713445025823498145203560124969236044945588914432585372951658297267089162332984135696291300908323674564794306589866529829262279732033131254409497822614924569368774584987590858584939970181731346537583238097905850547151756575636674203446499590744790542750231927207989687306514229939677703506309268952360279961721285469341423702223195742400868032216188898065233651083636960125280124095674868034309060890392330404873164484473564792275755352396777549625007919960652507457354905435625311679756540201648507488024846834862997829053333097858481901898997037530531282008689605799204374144116782347432716009961796690040723238254873522519994653900387210627872116535166471912761254186718592007623830915905689600237535927270246940056189198080461460219979788605097934824121050223985451321330777292952892788657900541863426800620415044376366203045635438789793434261688036453472830424387969720670692080630453092232216197052027578884917635961548957371767977865513262623032148422039426462703675389043442804144449813810169964511192916894660287786394006505135647614509859584425049318194938923509245972775620232897489744962614373639557814341321970053398779915971273275127250134016153449785095340967044730071612784349755193127153356075729027174131917780912006934194972931561331897049232042975667534165551984692424076257025323060476166192066612485195164281440827134112636424398132153517802758909527412440607631918348124529648864994308223396960324037377006358251186269075878852070536156175163125794704545908836084510127249711199695671346701114084292082744094384213076305367642110852797537386378274853541408770570395605691878603582869667412029283581481910319085484847252831728860502314841895758259218902186379046171936559450304493531912907083058453251298331255045738175745327239935405409062478235938968679795004324441824991002803282394462128839784812093541745435827994751146596683692120010050881867861831091670613480685296949210740215895249270561025529356915396190985378807734067537595003984253445283745523205744801838546650886639027498349647443664280411472184475809387543530358251404397759394125409309578909245501014712212944474373553028308028282484552658099214564833281722899796414975408993362169391086660801634266645849598763149688899710427870882558456395337442639766510383790002573459139574455427287121323377144413343915776093015772078122414294276534491770133268325114056862637809953009480366422770596009309815215511203990157670561447716418512244873887046984790099262654702915510683874546616226600485149383322499218809194877528278813114536219154680097226279837216841714655637135733639971741859587393878925370170244074098829665226873087352301388122364602212708132417709499771883190908587812740051466162148611945369374801381366544401301839870182523642480662409983078988925883900506880839676990672549990540151557356571347051267759549769786955622500262933211308545948535382399930950660747573421698663001119517855705820287944349186979357223937518922304555070525923585477415544594707001333119787422879244080434558712209370218786211031536889446238629760622539025063754118361422196942788458926093663677484570174694835107505175788398963348978224245678891814322809555735516213289806224012452124413152396019071664987992197240096756244295365577202022459496336990537574867378801407126741242143451164173744327019290291596102854237407828485839810751494841804277698162690736300059249834398114339332664767172306645757428064685693058577578846327194246367687646275978805463528672766363731611221523391116695512120092988340510697464891367247491736208426954557857873874204173259698501929450296445062241310321628930032992234143810788029878681711905888565439674274845760824570374089915618743346726566655993342716121736595908571452842559475264505209029595333968133404021520301969621133386482421686777291541712792434919800661314570443022011179670686718386040594702386030885366216453399649111555556238846885733398065629452631390767706780310378994026597617357495575469494380086743108518669104464473274087913572975093518281939337369299120956117785879991426700934888895559938116522546176124068351865108412114422942282488942478401801992422784861765918153257492713239710094915873650309993559002814666431399942950418482905383220341291909002582959007368844357798117604393099958619313420276071917829887878897363716065303972370147825563288794841137876404498472002870013843644222333814265438637725068791075545248551881869478244125208149924672241558686896011366687049396977670220363133785234205193081674910692633429010061781676918307128550628479466450094363608635655807846618517808385657722601639636158192612809805288736539206640713188945281008558907857486744838904273698428139491919541209769943542866841101450118738018071049483290767177491041813586847899347236804109028285661957905213929640299051921907788269542051782859446555436228431203744561093961434867938801957863376675520014223099959707693613064302556662994507322807497635063019233073303179586306639116314179533274576577677864392642052155960019529916897685057181241675902944981990111075441437615023291786251759701100666881587738672590411054535674506912739395794684002530765062554459938637815443097284102861713151038353123864746073802071722741180302204649785535024234348820889942026064197353299122869186478828955109860379616255088192279128650626735224530900987185987414352450916808607268603169066739795815041076709768800004573580597272651547549186888940610502221328158532284722438385305704810224401747183881563409802369760945136901008000379830611886578671058577201187747717909786494114036185652619862054465099075356819870783078923007420178121537556249211872606156657108952684532454195203117925746080175569821748900176729972682635675424527870616844475816920386316720150050076981331793494452087073902610962094166398015025778729781453537659733687975120614298392314778292735953540471035810093891331786677292687202659233631653573158533080587687389301776532714867457579583778290030560958993245846260495239232660724535923164034352448222595135057551335438768781643547122246703804121182120574800111442408922227756083848759297939213281455552646432622383417027579876767703468072861001638580475480293767320427430006124417763356009287888089915399919395855258782598339617946001701234961031526107789928374715885486906739752845834460318128730565785208720053115105844563984397474461535271056796435629646440971605061226604079270310550285958587909031086934914896353236768542168546930299321027021989520511788272545664741899387228622788565918417291377177050969644280205145621047620562415607830263108660770432536153793596644410212281308737275422835713160256455032853564758831881643466228363401510790177189343436188523395097067431082582650279521561535139737820522810178838620544696432621284779954602222549275252251078437699933632523542843145422800933572049578878998361410950474489479901790353226170334368547896542370826393085261061582603715902257811051953649627880737401868152736279972662003577854590287908444876091083682936837896224692880558035434857317712001865844531231158272385889307118706574580312907134911229175054308062347641578501486083822785984036765834846367317438433861910821878572113725841518199964738456002193737765125454492826560295996270945528587375312822046579328709313078242840683322723543804909387034081061014536178722974303559409967787820546642042403987530070075776099198459264617149817820480799810627555223259008069820846709429414778195415321195779623298847749650452021417842876466977521305708089974485709846354872929980044512740471986787769378938398577393846343146553557689566248992968747208292520592183047083624665135918435152387307088517219779960010353455224425270708075840289111617992177235916089771236935339629933372901452312116590891361171808652095246729276200402687419240139150036408958139204020518609558170802460078484364473129585557879007202267715763997686015749793614013313603443813944911183455837980452933043811185804088024748217255829799769515073080397288443789127545592417177775671125154283146673068683785141207417008667901043201343875005536327810279004874205645620128448111541128889464579889158687307601613506342842752604677010635765150470513913230754687822016519655381812865562565921411929916131806863208398733897710960550936061163257498576202172934820528099723480218042586214979629638866352180298284400405006472547652146643560259262164320062957779289091072402164239690323391770852839303054661311252486684227712300870464480809973429542223353707457781393572196509554230466433637696193400797461342423651111937071129258411246241468182875077960885072935188889219804755841541966361531956643234810026747581002514862066533369522480430405597466295979281686716041458288063795044965218219791769660783520021486672633659854340960041795128957357579542703601050477753640869922973451091009463372599077369925141549934561829035325534008523587311803190411596195574668059180636045083515009219334781795133679519969291502849182513381588542700113275481334858019574741967399225824175359887329772785144831925002327511811807106160148565109960520875859412016576431526411697307664696085766742096304555131374605971276584903533384026042364384252735825454615510111786990091579136230410242457885860568427496608834659468157297686205868665286801958567712372526050672229057429053713276558023081642428281726678911489812085401057010191198179800015709558354380348856170893842199816529671377536665953429827831980488050212778950305892392853030392213549369690728757303583552337794130215117181653069192625259352398637746506742775250532031147986823947466690658362579866329699789373161732889113596596218383590445944872765476511112930991000902868498923551079101129112833380419696692706635781111675210888164357318117259638291039069837733799534260255432953687126290127732446940476084206387474945762556635730596394365636602666386393936028994047581319653531327176187101319638683656958303821255767066096328659306610288064808394543901632310066152509870510111890995171864212986376970576729412188843493622384874541701438825452880619431347283260556493960898271143121068062301363094540854030584785781987643443485589349190968596853750521738282315696411949298471556123713626810174949403113397613423317536891545421177785184156626929232218370435171204958043712141662888604021024081880920004679020936118171554213508591126688348240228400180104648542079176749167233314573801712018346608027073062903310623177356266485700363275613808708454931931393664617790175904334865339784608316213500376573329678153315297054198586301288367248555428834288139795535494346984969551998389396682370882309086652448496190541426373576662420271363227901040513917609828999286209998666517355070333497405573258735220774071675669791916379659990588474287276220522786282671127092971580128390595557921250214209952267421466416773678164755402106322747052287397901172594928105249468105091087104240111455707560467767834180416428137062401497718352345518074577973865024848800310003446253740433410233492947298635837535450225250036762710775572967184163790570112100309773934787357306473281386365914315653117678944014740370611571970899145507062469014582470338476966102620219672394784946490484932220763677603267785327302086752368286922600976380751647559049759595672767209620862161464332500238664331653387061033040497014138140907467927296588765242471398857777462294708196953069546439225079897448732968682387774122575829174947336753810905951563107767019189386074064093573455613850275083520046967539883755867009142874892088624890412687793958059247892970075435849474377351105286045104721568426075702158416108350056924258196676425854627531498744105215894348116682085447224989082780939916322996897694283526390349702748508405460121113231522438778211205816703945540414323080669786452780071679961235903501552391545613013004725941844879313203560209830132599608956516714499105101051189121133266061943660942862212006614961581902458060801405526135214845008722802676641756789003919918457577906938191618553743602026972050540598100242595272533671556459390282290883999902197849542295905032454776014280332524576696795309883144645391172642398106934135147253681086797050478694516676748681610380956979455518593720924222791632228650602699210721622966376558920895275074751864180519143550523506503175842496057246470718186582425574262043632782406580960388855789533352987188319618045556434935228391770672186967483871080910574031899422846114249665118639703890835117869627882202387413809764807998264905861299331310704589109655527856024721171096313770110690661221867961609198202159543768285294391013615337392317852122421831507537028498525065130966914052422725720044277086798523076387436631475642462520641927536104205232269086781819549825644578160173959452714463298731775734249882424534476936691434861652919282346187949009134631203045046226471063090581571013580168050205915023573030969169661835376415152162463390448920768200203473713395577701414958777224724194950293915734876073770009737994482039954510907475176597680539481278424304842377993707294604401190198564959234126486672810861978902411240617823106242358554750505881146646840312740133381529519678055523836320457229100655630101221635920682142874520811793041918401139515352686165599994404426549359244664981186810616848747139639303514203926862253868375523576381500889497494629648973939503003450199508351844178250059225967383004880017243006996472096489849827003171334528768884311686495978916365980822528237131836335186585900253678114186541535234313104097791437920999287013785533729501983626433656273440447743266701227642529593144451244703071006272483960679605091376583031689620420159900140980644798922196025974523036312500488417454766570028728081022227648485098828175498269369051290061049069581087679351369365768770036094677450974179028333608324129365726169588400952269769469656325035804780909394711658310508224541761935181690005018187598520120586206540891546273564947177754704796570952780881626075236850907575529137944012927860353893518866311603004462224935457147201913104501358438592750582623800957974901954250114086623072071556907883590800785420140544018354763781364836831946437636109887476683310067233084573294019999671488017594242608592772348665227528399897941504150325052000002876310174945811357548466189753438745359671056816722006681303000830690912684101590706833874291288516040226073532913608006689328069659476059390175057341540229498974877902535692671474784891258420281250580981325642993022833428958096414884513869974622316390075516936019210297531776587807984035103958797433222662216194629804080107908918864368021326981736453809731384567977245637547373180085079534475986940356403416471260178216756355965128742868799170229612130428256582673336033005396437046315446262167214731475688615710440739344031553808139205649599590146592044651271864519528175679952530251961225825454129334938006560553067552967739196041687069693269886095523570448414092300210728655027883451172827955594567421958939133457729465087993520589186713249776640540814021468300679775941881744454370990736835555688565591893801692183232670980042812187078560319574629604768536048614979523207988965668124609392929157572235330938388623145586326745943685722548311652791396730116890757294178731877366211333688579074333356694656139743135000646728890939884332181974510014625378201676358146088796560581931511630272266892382700665506205678082709807216887155904196100778888374405756394418490726327343256387685535721691831015575630304684780176883697951408186760436539688381650585276882849756178506186409695008060495734161894758120534298594349740352617314744399037058417028822479371742303465342057340683795657955324656513434453276483669410770391451610436821311858304616827529887497600129117322520200810417922708833866261018021343017571065819420986464161334709690354360663631790900478773299738109528337147756031271367086109196300895750511572676866501919999697884368880041381229635192479108728128013372658279526681709558099817933486239805731779445885863913458984923756597399254459003822245444973783341876331707159092072805285361093957720142480718392449346987983535218635574307834308924762354426166586380953240787016474911704901920397451410041236684907711670403676478853657595727863655009074639977506572162670099824819617895926954697496868396156637695566456931272624671812220126766073507935190216218056585169924326974322065313370861493125401233617853534833905297548673871347152657865876476808510930834630599592421560357484696931008342173133895281631604638891682285630683677549890323415753472728484976636272756555461352431804363946939064748163683551163930179405608395607314837195081341287208683181955764639510785993105435958527916013543524831347075110691117107097511734899627586922573442769558425812118768958745343106491708400478091717818885271494482260361208626322767514517096117259804163677018987031334731116697528918580693556165404952567179901483007175072703309950063167412160473510296704277406417302979717843624064582588010037813975041812241196963882199588589512512227905679654013446597540419224627119435747410297447935684250918830870965457669683229383889619710256440928589649403458944970789320414164755359586690949559295234587182874738905631770730076978985424061596751274365196113116321279663433931388136891315838485059348387936495241773663922485817202589465442469098797920783341590961114580988308176047843543155647040922297455515465824099828103503592032873447875004922460173092593920841299491314613350245902081355949661351576749385255944298967048893509888598480247339216901716375037361202926855240861503918706873626517828464519697972977008051800065419960286703276878840617072224173696527159817135874196557712145393080490596331476088365485189762578207975899812006673179146299567806433744322060024882840025342525890811262947323358426691326627827905016893722953555698998784187797816957992345054014914514123294439167938574324384371445909767554582401691675834593547162765767739251324678939752072593113720776202995067805398475993438835719929458219817961265683249831769812806900394357790596962182977792732861075952971338031664401699750147560881558426474518638871078928004172526229669609002508704766717515793249358623818109280566704131757627785521970867945646354451486583097522349933475298055392827198030008800938902350249639026658640644636798328162605658933026287899855647188831998130034266825008604451014643580308827678110524305161463422598322442875503657091192423308477132072380849959670898536934437761761084687803922838828998585833329125973956254157832960332055104934502934460264637508271684866748157309223412377542407274353637308022714209261830044001684272808939317210948215316637345087442375402034443506833919482644181034538365561981054893298659515367196536357663513350828512524506819367151984784676012199196492873159578070496642486938621172370876098978290685237392974197560877776536969770948934012731401141684869493552985217868931276717165007931214436023820616899858461091919533205434193890173130531958732704854209929483679283986019265812151228256282998827791356434583073699134605656905141434318689634298341418470888216809233209892897691297973223005717139721695212911179206316061589764787445499086369301297180829494839720779835047893865468101811941693076634118811290976919645300551936417135411643814335365472347892554938883229687990782838371137808687419947952249248698721311116675261356879092663727210537619159463264029166622257384184478656522255962970252197575567313861659374065145991978192696434949634591847514138623161752036712643676775841918632710416558450571510760180422733047080793135563831558999912045258045799187222422519074585917286087061767941534927806772044192537351681489922858719859773067977734804262535935124326102689930927317841672830633816474761249458525998435610533628329268332609348871314824344337778448907448352493632475676878142289304553992999605392464040378434199182128468481188993735539990505574707374057080572871245953638222874572739131947338124830022082137456980053397677312833946738775303838468810603726683873132744650939700162331755984898855933151364571580782471165991140753057636933247938394468487377510462658261723657189452637558447161011909991250388716071775225399345271639695433671470068192083650863619043048875608247845465403765383052133965976756647617080766462984601207313562669528142227851032277117061438912381373502412084030991179816793568285160635891263797375882581860471795952780333120662952812012086848301873688121065145879691731642218159346066974504655971419685912143762458093042583470114830603497559228185972917705445777430798363816743457171573179106526691019664271920273345431424728730737166831667885018148219499050675451891109339923364871587213707145241680261186564202920626599979176856941087294753438942002688699271606548717099374789304171248128254427525906837855335518568868706310683652396860916222753592192051250551728938430119389157636582815032800170031823003547123145523892774789492484548015978655219500722041171580417584295540498563268898346102508349782026902021685533466021583110348043263178870803971372854812404601818665064595457167439453508859055378790381429516227049727372369835431558198189384559130769472035769488783484957325991097192348916724532108547394510364076724741278354880076854163127699482802771040090360857656801613693049368456450478767034416287942625352738176308961929858661479180714803389169912187415567290984809668635950618857970074534481187101742081914579734025418843023774657574962786896759545646254466787756869234833833856654604123363461082140969085422843414926953819745635665073015091002100935805344250950201061815616908640268614345397268875486663708362152446975697348166705725889922663692068406794329616426311807088238649561517599553513829865497862778631450424410782800311208734074711979176560730459010240433186592313277889116131334733613991994273657765214552957112005527363192837318432459272354929380401153643733161235335986103775755126496053677386765076677655511141165197846585329212452044779529319658481177717758547116104257221592782837867449138542326658400274066530726617805915726735568039192938795135766433948671007794720836807916827262159652966069095659661255554817303135511648221506327933698992402235570351449330814714872473006847342636978988269007216939508694756274039689921867929643433795548618100202242098938522623429742151394679576992383935184929675011261161091376563129758240537521626338910116204382291422133622559499456258558762619749161095281864158659975574441152338790408767166823772846331837941330699911735848360066753771067384754234321577052998167950638829573286775024384872694262262606428503147487054043390900798880095376931036886262448404722243349158914244102788296423021409281081763495422897790385949026874485558513486115507930505314905878264515794006406703386084871748701288325971376368485629977314516233203187407218311398352547949098868327263852068960862133646890351081503674612719350354830470799506538164686831937591244658451441579966816433128440070932981829055701293304689345906538623755624439415392712482325914517961072818824077269626919376190534910081188063177512552019737169507779907189475811438238024943521426117816754321161688383265591229901845657063780840570101121147217857106581556796283292086200365224966926661486768505511206281640453763413927621589311720031392345894621353760443203990359565901771243259669062291883341207761879287871678699398860962895582305833832146455067122500328908595533800864767256616439654215664734979292906774108338277214014938487795610368087303183244873338705954740855853166225694563725895223710937320867058444205313266601813493143902177165799354522069115054556290554264646073793422514591994133945613373794907669082718692811216307046256445040593410944922553465465366711238186719948476939715657118658787440602789342766247631316806306401075324437326218703767308232865274339084119984161722649824802052520242855946233032418677150645442947657018017175781566057732786835214867299886650888301040463120962085530411498155412395078826832406574971516206398458847390785770220850689782933438865590183540261538859079924707879976030631335460145823307776251061611152952480409136228005411094588766289815996578606642034138945415365581990890025189619638688319309046144650832928479250863718777709883918126069023798225130048284080030263122306986906728087007385551232756845391765466330538887998909800838936178117166183260832075246724170038860034867863606677857957950627045122499463987835816235672150260514687916578687902148010133414914628383205700577192545051549031144478663866215189990972858287583784335046029941149808586717006401300624655390565559731822907398644395279203382248815787185925027611276933735197442151137392455161462180980237948477630518551492171328308049734347879778083733755603302812279669915298023764625888263239107971499385948812248621210684957256130282839059029644940946869804057677520198103150672883078444233394610245073853661082184548670022808474798425027032945670761496000053050371396849268527988123318736090240266620357279915145034595541355708162535361124501055599366975503391543498723809333434054998787084003594159462194608233482226997401499138988029452361382814243768531156792417176304759589029702921007426567108769939219834946902938433472237663147773108065402238801422997295383681621114663222071171705015463005261983705251581477028206923688914093758649560919053364492440906929719363835999700087868928634107982329159138451957292781455048518566235292741058171024586363856118177615536769433556656202146584834651271531320980473539983669952999339859945192360930330363323115124422852257888851886296008334906058379150127461102383369212138661703588221704087066771022380385535204084341410846428916559761933754190549160952256936330525195422177555188310576965060790359433732122047973476176809174250617755311728711138444371216736727749279014600137958359913131046187413465753269382860911815566853129657172779251301063483431879077565633582085937476380314425859895815461848119387082761619386150860149372693964289363031078283607132806358062643809885417194363864302984772319369149491653139941801724692038030349921020872573172997632663400191565159079869793050555116612643148654555664388837504170039102522729577357751560935666225490544564212237892721337732975817533881969412213680730888080668187687523273583345865633826682498049787317791611617305020317494788784284760314305567174090089687549946581918957549405041464803631361970846789602173978984798906685716932768855118986363484517489412868149775825118682883762749652700026869071931847221789466064310215638143559280864359238115183656398806792889184507953965331174440675814556712302555151750502801896165703937618593144112912976093978560454472246452937427699837525942153031536131845684798351873851655016633058937067068839003287508966139344915383432641836989596905359210772030118432263821895468747024803961061388240694109661273470852119510848430249763803287353634289439811476810518466796094876179688821073583192181586790900322557789895346134391277019976964184948599245368233266444733790231185058188920004886963738940790003431096025924249878037477593336040129507677533561916766101332253280081168147787128937977557408147109872765178430076652464683255945283534807277387099394536065076966278100998224166466557705983226843523086531712396139356972737846075165881106169477149058657431939409312095701325464839593871524137799233821814950418767915913005572634243783969663208123384422010735372803134111963683253244142138980048254053975692930965916694055516871164736913035267153015662288816418619771465633840108815052740371166281134677323338189313303123199949916440055073951550623421139066399373580049074614240329530783859615070920900584162641635259687030226672392423184383041675075994942445833556993208022754614601654723930316819786541422765922647056741463587589739712704257941290232091964467472669057885817183574291556763275261561457710069096317603841560644806254991823408039540546054054241865853301210012376452683147944913308033868838833013875657481964582156601815943556229500914593968452491686362850409676437509988835515061361036182739704716466051230368708704808767020145512538740547597194570302045090933702202300764088299651156494074149544325272640425344599865103467125171263659459602436011860494402791769276849684999755596429897342965551035441595771512251395392086561193288713991704561137702965218916348959706334567404369518112511036242255220152763885020392010256033933048653474074083848050583803815664567872029109693195754612497544152248722797836751905211659457155559838418175925908814163267343424470401807910290571188864545189444190895787381541954918379857886368011917398503770682099245224990603480816061392032324996997343621347925598736259945629064945424211718301583342881950130805820441057584756242219388688012441989946665630691265263913781490382507904594158985516968500773836512501060913743419421338094694608601961371007338142075092632136997266532557105442012621416300061516114135214260147761889352408064100653089050304454663451592352834405780762566757748961124930079738445068651222568134202321615004754269549256872003312599399862008379648566360877482597545086562989018680898954743960182077744997017004274874915896914760087716043273175106508168493553916940842657564428549873097223325133508858959076564705135408418576405788400100719520094739934000977623815007140057790554673733060793778136619960527604909149782312598921963477060499620570634655263553046724869814486455602393779286036445354252424151998392585070786561998561741445876566883681177385153730278888855673699497388307534482049034241222915284966379326214388884185656153218716534786627015298418868837012573042316383508821134635986650338585683947117436959468756723071742563845289419662054873165079679856539064835370484716857841783946405603790324025475872296121391005712182525910876050884949383721687412377783432273423831214508764246545476650393811468485909195788613871032400354227494587418535685050436980833995415313576410004973111271014228053086762823675903573787351811465677037552005379232720188967896414495084774893272898033964958946768328469083404642523912115955444319029566866251549563795915905791126282669293452725093567758221398680680948492114404797948738600849458498257390166731034986730557585395744316867138349112894629597167087525220109476033374772959236297135570204852736082272260388046019858055818504295062488137400681554089713153775622426917222112949337372860056816963311610142169884913971812257964193747294047263916774780802783344563034767786085516428373609395284116128873362081785558548930660937027750895579154799466709533361462008975419887993188400493036345012195137129487755431240996283382311905771931715654135308352518548341446838071794074452919515593910577618238633529604326098083296003764681154554154425613605813202190947229158298747205111180958846839452049428312939878857952507174235764595579937210100575519930488096355902776945426736070494968625863182951622191618503272587133497511342219360177263585823105442378915822651300681160043309245183636953237148352836009839714087191522577579995472062524805100356400270472112442678273562675217394184952074429764655707780196912776744202659852196293678177025053620228429187719933988110824424284322826367213692226569530595866058439854082621139994472403767603774312877349988268096411507239347774545829825885410004688105853382427426824944115925015411294298452321671027814559761667731547811352908681891928513352618303997284641540727170527088218995317420416105236588287320254888762664823794615630034807561268464454410409455707715957061594839204268631994391451117117196412372600060270049734443502373120449154873188650517644093726050696893034101164829336872706187370789843751743036831107594208648526017062860508419198039273792932463670114723487118294865529737365867066774817847960761126739037649922326315227616035807760952353056249756702632336610433571120952735596768330833798158234723022542736076827532154725259542406225876093284548034473684751249744936056485228636859024132261079360196534948250746797455984619893986782941618992329280969467641466705046117842787009698877369493598900795377450118178922186645923070376269287918826097860982534054383767815581898333383588880158513975036836845004508592981950823262548488859234855095307584926777410864707958406965575980138412485830254470303668348121221633691483617434691772962160404750292331289116790260076358473830392647753726694441187430892453784219398732237480197749641018762101946423088380251114698164010790522677825574606708417123185113277227396432594639097104669894993879438867378800379117519258213882040540973224490752745486900722890600883948601644620594903225366428736912122464379874693523659642348770383733995041997971785814627760202015110194542676074640109741692185360595514658553747606722514279204106072144661356374252144393401018849310743073823474359260220169527692560510009850174365345675495483595911717970128254852750270443984386570118908986309844912857514037951887186838124302041021534834559284439991145358683441735144601596403491997274593903741334471394977500066030551828319048518219241381617276938230987314856165010983245266794484440831952792209745133082798414845025662894449654435156648581122703000101042643400086313308751292827044150191589070046015852346748283698344909744517134663916835924458311752328452399479464353779420504657705859869644618648024412850071986123222067374294361031307412881779237931028060866651134435710314460623171864512996256771053132286204666602671728301488250445776100470957445548986470878603622725824013261593382412233289187191475859760979557649938473039671913374300826313618178411817648800920843628281841407790504479335822056982278677665836720644022576505710062658846109303787250359381300705105964463254860033243462820894895579952346828877866181163625550023817745565218352327054244632149112278222254120728678365159990976097722220809437450232439201082945745200015371501318645355945131225735148259306716122628240036588157956065992983447211510252283708835390896583326607333257075291570646723252480405194963503031287675505621036618311220818453945307393134179232065006600477035317586594456944878042309893895404391362855498809516204550451561227962044780921374283175092239246966743745723614605666756141876971004719102424537584959293337838914256072338593682908257668230536617553874053474190599998569955525267014454976817380038078724861893195370028990007597595357313078959625281970697563426486394716183982142306979047390971408085573905342409515264496270773317436414154590141295502051144793731360125585619190161911844762641959023264023401349827230275252607247245403419219425167358568834115298805079202039394657172125634708414357950525941352811190533422271044484912113549199678302053344071501368595207521506976482727783063060374489177639389797929981991390774970011944385760842673224276911088908741910492926118854571728233358458350756766129022096787984486282167224798236245691346281326672611883054202884453905209626694418143096959284708285476071148028906938684777547231350816992511715628972925425324322759818944846718517081338945137385632096189334905032780787636064576446267304349640968879737502035936292719728330401446985152626058279631672565566800066155873710272623933636616271017172245805160175483712862494921746320714788226821243504826881978258230373612427307502874406425443854360045448681585289220189291426315296873935012659012242809886772565235627403523129683190601756263939846789912003278758875405213081665565792214819411665757294040130234963713176514897693552695034418012196103960808211861392786659121912559755242040155335224675532645304597844526940218694994629524905165522149267924521345895976544586369846217192319879377168279361164212369666560685673816394457096148196097214056231947859578933460248083897387632350237073088426452688170041916772904269057484894294599862824175638651441810473577078926270357372406748106735520760893822944776412065757034365857247880109311921950435881324760966933520944670073554813962516316022753355687638239032117625988703056780873827865526818883900206294233551834164896914140276894976003951189480663143778657658225623254190605122163085611160813457957158910530145620419630158230737685939577662814253155051939137751375960247984625079156164660725906737334084527924848965024348571407888042006562968111725648861740441296039356849174388474160493919963268439027427767065317860787429756116286697122753452261329792531544698245303414267553510759121807562525950947998426642065986429417568160550242674650325940717633262905573986002550174586075524376407217456332768144230562134204868319283957936431989734046838745868874183822684930931771849594091104844873349198591710713514575315048234684078302059588627630241382195800626794759629790500016289473735959466780286553443222289721539273705926720975928217174486834482498021337654092400272159078203958580753756700106564191731833355992829715345379544714480283555768365135544204280386970130081263625393677343005830174038749025815124151346967249360796445042741655737967601791661317626889785877333410565161464806649291850916245604480907119885614983277938953838380783725375292902529193541118790810097570026087591421392211860150737670491076093322118711061596536173998162048719409812152022753302548130950806576857749135732762232235516776003356427145825347539009958926040355797240109946909410540348810834929126804498410992867600964271072963340395386851174699859114168143471080699506046455998682357549285729556082645648425272056625671791239265626990690433550230905481423326610422424649040383112482979139986670453051163162537089386708998897018135492229607280246733733909552154934808448993979435024405929079515734827591317957742165504584733139834652877031935811069049207630179581839978276792149997265705025529666203287532754348443258464237203720083669752764940801475295758299308619087525392324859278122547834823162274454787078421338262502329423498955832291385127181199741825272258624900763997194706728745326223536426857638377461538276722810375135407789476031889062636718965902990522493389346920639672841200549495542082545484098453017407137627736845792144796467648333818734096581723466739803623348748704337723610358679070954918370481829047700694452756388081323975911361134884068917801458766182511772080464765181239683296314901900121524016453341161261244850361936130280735543281933724992180676047345904126893564440775896564179977984722510303940745871678963389835351731592716480512807116616207550947818139116654390283922754471475863759444531479475377560506602390009617537636559379089426324463138093599077312982016561232143478765209960169345089483147405527585814932466011713482863792741051175391963630764195185617532372076676766779610028101250129749818954450329852302433786055919471252893146228531061768783477547416822757138976690976555561299815656813076056429793797599950607866597691244231190469086391869786637247911226854365406020173385230160991663531079332899433847433307450398123334421822490294421650726863225158749799612163778400176087062160554158820416848847749944052734804619332098453878851910422636108751373261693616036722268885884667351398385322101688203180833303888265159204989077276945061676493311359418458296887302946035064039502085393074169457107059528766682508545467110524438210555670321110627588554170304271448239905353576035057318863765597452682229696883919075423991329124814374247851798895624552874015369415755271840862885526159137489638489165246814037593362988878397517407075870462273803211371626171523463838882113306048870458990429567811450464114610732497852332812757477444470794180547004416729827129541653986852837789145498760473607155789587270973250901272218692258447713900474221913158119475768685960838944275255311693215909249554692654079724781282170213971186197983589799177920212334553013562466350878974638507382638711342704841235786985554052526516666199532541093151257696680698913129512312416333386292323739010694072880743786741049094855933692598293476780315673565491648517621569360004272459600322557175742756508720786768562653193431260556949402968995937746032840578625843364053327242980596960583454814919780597320749593064217719695612718944139304101627173223808441503513729178994159258025777137237247249454388360254072866388888516526262177568210567770322252541353231659830509504589479376013105250961908446738611162331863348025329031137195110182647327361523806624534822084346968388374593216532644442047728896542121956213669284828291346859637699854492184167956386685057722443929769682495007518935950501342127379448607140578152945576101792668364341422032881022589552968937163650353532890236986310962254386534150055915762596329157716233987078487092645411309931369892638681783294176838911184826425404381500938410141904608396042465460466224491205637508125726953580264272072349711461635523645809196476000149063031381254964310798498865164676801782504554522767358914807771945692628133149846886643342662345508924009882515838173396015256239035746585956792547535695994176385410742894410765066283563071352408200576584965193383800042598300116037415766117163410377292616250333338395593990634058662529462463488136653796032043397292861577757536566340976437079232387031998623273697247595591480218337457356866523596931536970713116926310200658433378832614212063384928456584287403844092557294468771391127088668754927882499892763308604445007291511339199540373129099237840702909284336645440863229217772898686757525169957709516155612743814248722730295610840847534493300120621612926704377719537545896067554681894130704785281014603657912195288508960527301950491587639216177106588021621549087418153371388097981494841611249365168867589086915594311691425817990124676613978616008199012074196187130831567943025128767598998319867470942884945565564509960795598955469641246283932976452572792760171631350575851480518418192407530215631904524230460505925913258242959097988256476126319279654258518660748039360939341679292930663594120814084249356745827460647167622350596535321060832294924882944788023060710043906467500679289278476117604417563657403903835365047430190461798315485081936904400093617513733671570476169646823904349224842276926838670936214928258703040487111843822344848390504850713064636020058572889760624985855052102508199022122176919245956394920721230813998542937579224503221466947698190239788660882380489428175475747961867031500962821190859373379791970245937258034086683314683983133408623641736273202631868849982859392448811773017556543956784921623540739426932959247330996499939264621996620163237919413737608468601143499317805768351656720016228797702739202059951555603759793119944586540163295316601332226766713834215425891193806481873828783415197160008540897527096508875609544215331011093913416124727749536567275130343748689020651630178153205200024464574248361285494639144486819556103056189319013459185017353699921545159330461688394223577479722511652742841182969283478561458438307036129106286981429240808635479953696262309065139232987816063937840747438960369679640311891393942912683899002732361011113241008215637382640666769272847558544392609480113197043099858223739912066042726186688691486872225151016495055394400118157027508939270142469133212028520882446817624780869655785904390701461594855171332243469949427001277298120784721969185740086196362832531910165544315435543055448035974144589550184811647730481545140907702583263729154016186564120196742701924756978746006563618859665800966991993106837528085414761081921322546393979486384918146745661506083636460770837830667605232006607523372583902772646741633029658603231285980590679112875641451543011178961209492828728252297813546222596060547716215363902325292151936412391423843794254616695003525653792662375073364325710533025904981558439385864620954454847618951024469362532280758321254898215616840242012968417719108896330879773943474919223029365744392175397712452704147825138424179163338144314290506546965219549769126985482545163778218814122775904664966676146712544364868053487796798856378854222477483576986005610786474595639233278910231132041135936322078992040115114825230505289621311420444524389954687447276204721038379361368472263065160381778340375758203386049507354081305804728382810963312120763888560094135555141063246049255155474265934659496242027191026126281975595053798236886674959770930776991415299587992117526932315216687642628870802059056762465579327042737947572908201439377785696471512111376310214364784922001474584277989218511968989902428719879570771830009192874959209627306675650172978925949388589834594002620425785140543010441580510903669806206640138057003678980167385415346199353372181918077617072037476705174357588227985299144970441031189555831379584405445986114456157502369942727521072973038120410768953017665163483842669873337147863558710932137441492215877958846365897725936002383066097586782700282079875996654624598152745291356185098517913947308549224388352955620928634100264364972794520443665861832124372317458101375958211674007233547331636744670774958550961208317090968845317275257915704804249077368208657877857490659760829573944585599035556562746036466421473806617293135337414656832361749829951301083748463812407278671784298728342182155651883385243193868363516711438951765430467245310179097357725312493782972557664114746133236047273834172046852663583016886449197328603900987169063280908066870918760360558927768753449703017387846466286803819057373099770775507427116225403423589280270834555655730654375461928279170779899934691483900369507766016125787147675651837836115901676190397579139756112558383842130772405004283969701408132959491636582399677024265114581249419791131206844762954465899726090070111176718145238253898738452637407323554466765530272588945802629809292830577030945332013011323807578165983949208161094801261141472081304253263336448477994671168336701776356361017140717580467080199608936348804655031606848658235083622467182972582065322256444485544459466335521771853307911200169896114127501607404834580275548406107882532576465370403762352188611068514288802466447630400924832893259102619281508076156530200824674039827603356294249307563409442928615166279958192181209135569144183887106244133439038319109000231920521485805947806919007193147563332027291164286564009830678468705215257033956756381631264211407639206196385812314448094639101002249125281299205109204771491908594441430496409238435800679624757167212789681088453679293529790337323045952937376405895979836235951303568779700300852211347221604546722524134116303729369757826355648761764254098090638000941735401652035441023499102677919856160259919974166768454046667208412647029369887371840971516687985320201565188008513080992481425769554040300958095714852334244736441903515311830906287614517300444829216370517194652468941165433509377388124046069574245946949900693393266470575351759731379838926066071686925824805281911741704552770157989475821754900339868826974890713339248206548046309946582407674625534564281888351619027976719967397174943048948716476130043207062735675806583049858094898517253435867435560545509600327350599110492064781203233238783246393146156698095913950660495072179444566069431859410493403390539389000031348066727179236141490094222837593579989929794474275984713450867924294143146703293676671043430688345836573573140290475761322130753529560672123274861049579571727869206394679072308314852598043670989568196308644211432100638225411770744777982674481079415099838679994009765721959953247130597389498415305387330994767513834944689872512577692022055737925690306543862494997349735215973474347783724106235557854481770453386792669899015984867439761957676110978775875001299905062154238217137743789841461697050663583412342867973039514169456713630535455382237550824557642720410829655348255767429130187929727652905394177539719597352000472381257183793403665676318863988692933581664695612312700127678780615107756355210828572212359147027814627773797796228992640357776203343922555735999308582692243333798652981856025242844794471489032307635384532052706541970998798019661891091678179704588871443675183696722979484863383692073771718985144734978049155072359101967175462935853186415352656158547398084589085348649915136587901060528840826872763336963224689587143155306491533008331211427652037823325136775111057734140090159734922433380440661569175743026618279607490104958589341200332209324101396044156438678988675150545060172638500267883120740726456332780715971282605141688508455695724827265991519688448709306219055291827321739839464567771932813737761651516057221241079722725121294758273967796280989025502130103929752459231170417423749725246000965817155352280055298666843469434536459348071362943612809280589820183660895764483792209849456240752900675327475935281939602900136997547810151515733910969523496727540340840435353141550303394277036766678952894391327954170292711862513639786290371623896070453378538192123998257782448588152612551332417322646626754793490035264900008457956804622934551248785211783920865490531433616040789946041921989234575543881146315452851879587133505514450143242053263438993516718851091536042643239126381668112610838192641438268670948426816593252480314491572546534283262006422713763479293439463558563180689134613748060731065654001647955379793719062950459154128197552114628646635031986297867377987413998645457209347630806803503473478647880940096850347434566666182325798603280192822385096439782597575284512615130302081203992967167083605559086773425350474747194744082835814176910428880338006435063260471696445668226865799509720376576400656221580166503364933119903940959796445490129723269845973641606828742352411234761651174496036201927993376279203282059464589890304453968827736595222673997243355950600064069012528028140994069017012460902674197304885887752956675823413246693691584750458823662902081985799393625526687174705326252790046847646371857982140925639808784328033135011420170088815549915801618822950473387574798203488823564124939736201304673585736140251719753775362628918314547328330418445407442599756165953000812666830876718009656472995861868357560936955228418397202937282581034589955994258825723120702510691222850631383433556152392716888312345109733397204080099966691062408902287000235021168179928067642083212845554237709671134967452377573548881021510594340354539901332329673505785220777176687438970087595807189484128649950298621393272540785072662960346718930466787980078803352611465969926624358864005044071206298360927070048846909812223105629769693345527404288087965899188554304969622141396923111572030377909140875443013715242067433216885785273350355783695156739853654262005033491894847207467404315703046879887447846808910222009097189924664648639909143451981309188064775191270740665707555716905719923354577028472136605886195090639030049089949199005633370411145437913745071354174076153380124183189880065641249731041011323312082788863996218126239541997561103568788870495158087824742688706215888259363308324929399672489963421533265874017699178147744531280733159337911192394558789065493520661579156915620461532279400925020934176656303658737084688441002477743444965451190511959658871249164540134074709543381391780810042343825823286578789436834790199238415982979952873103249179144157679034089345008810895946398993653408701716376815969930159316393682679290014420625944716250074630778784330883991057501788787532663698172902464687916971123931744033717633259315682371151565484763816901897491232194519545092890213411233335472427022081322530944694076241016717241376501832787582713927442462246794885627112165057094011643118326732118259328303421297736828179891763774508191207724988719091285640547690802141237247795348230180735229013330455163564275952660339567936490522108600902178872783668347213670082947235583778169437585312646043165032864834327600017670154043885605538835746822036619674093502144711161425079312121025440215526486797587574711399367130441871974912141222483055957650286763713258759966422347467112279718501266576059852562467332893353276775512851324086971978917274232595914235860644650507989133079801603668565851552809561941946393466279384426117628774689226437940203366980553606254495516805143340058660537201513018144752988712468285137979326110169928750627541632346188961770285271524949896998452315071806931390071171358324305503935335948933491893068007078878939126176926408819772831385616117214144440209711627492933057282471098651915356857872845556496652371930938295033766410860565918299319103639321221432000781508230996970580015103295998154275896261817044109526768871410254949721750117222594185740870640088376675253731523896528558219026498170865020329059181700239619085541035578277348931151035132739128654060402566343802540963197838026060862677635031623112138065273119849842052323166656507423397298710303465162969212230099970424876661963636654685234790856453231344029289679758400085612195582792408512816244265927876668390860562221717078446567755646561543612539305359802553496755864599914933696966602144569039115211652711586389592694335846114319052655812092379768002524159599347264668681535532290904638207803679886130479772680288956681306146816553226197498773310666883334462124844128598416252333426740178335780891699099425374833833229853263629216572182583673521299329204922977360234222770367641638806077224703856213996046814537796532849408651562630069163577460544423689343888465899939873268797017660509869078877831166945066194342360951726408399618718778681808830702280638885641146333012810594210160231419953027833115814228703921849631097900332369553924546586629492682191532020484646794340559609693515985969570964754278116657231130749238842232862469897235587826588428660028294604539586121453822033772423341861987064776909033053093589181661654130624980352477731560471187358964363633365496536335696896344329027851436101241751770648919188144723810913182698686784731924935595212913923530743872181688708295044865357794725087324785231386118678375110439560374526999803915595667726442222178124555312877419592160150900470256368138211644507369409101930493889927621231588248700359388330673435663143148279686541683626207904241232486029210526029871327490658579605863404272253207814714261719572932401232985489380490757717701753061428407545402697583681563975347783920631371006028376897967500855721696257572808738087376533460401507360514174901902510804954077349062103848887029057264151419045739665484200772680282958498193758558616602249370480143149372546964244353967578306000087058883303777667994663224536266221070856633285695587050002881450775911772271266914466450449917841428476802690780622231699884193258992808310687136279821392462453439943418394845460340572686042759088374895110678082416888153587277689143220998478311295877650197918903576434873390563052876966274312246401136660454113672313237566997714659545003348818798580867365669140453818251633412731641706455762143477519701511520648528760414569419411161321630169746665800142117559964589449532394000483295179561645433032306971818073429775134388795512338478497034958052609894703235995286824490571613950730617108681489745412052131562016221649107613378306703358883071920564663800567018110121054981699327161801344553045821299159872314939240205180802513953905061583650047659058689610836300978485542184473066975301519835559609304917902438524083764721769635146978816407057057413998256392489566434214424808888686400547343735507244939819137983132333888377223144257085308457814666401108345151802150406194536087756540755203873763504027438849294907427984195019174768916187734645696563702263921059719214483288916301707955641664543050102831036350220385192346740810682883167117253738219753149434059066667827221371364609161598916229876771964387116804475408419874334096072290539008525849358312927660672988054097480510836252175809348521180846251399095246204277210161728956394750244364023069438079160338176955365512703606463732260800839008679160534543432942783935001557876871057343539635134159695012077819664917376436620794827359329066289314876885143651326304034870339120231933393716937688174919900635975651455883756131545851757787568584946318654659773461836308701060130417434828377266197992681892467728230861289450115339266091330477092328574252852036925434361952490398883405926817616979449402503491909476782832504215157487285900791110058082017278334369813392555890842794883327408354586785712200837599324122279892798343732046822070279435915992702318708749030226742260819705571741566881046733808853639090008978784103638082091600793922711324937101686878935105303549558689452887182402904646190986906179207208467917562502469583161120927290620041735122891686048065908854883058927111818396949889706638814483626891710350264583255284689475369821556423108147581324120626769509702704649628158035188313572105778883325288716641383041018657696882794847233297128560493652893249671127511368148575536057442053954825427059823972307994941395761823513708912926447734547232887131843763389279545475094941032734714714943375680484363165935733916189995672294330283192950789673239862966574328537122515802778286063639863462543177416404234337817008630965216499157529963959980350066753156354790012972362879094661044810971564428208162469461950136499262627843913695954704968966932465816617903961812277583306926732921950996191252979897805934191436671306566985801616467314060754485264662476783158470224756852813501762985344816411316191642532722470813109318058416776061978029072829672631448227266702795027699765484035803418297600791217937413204480270617521468108764820374368454097942864656343266694251938269455550604475067111674553672361834742120400978069128669604612633369407089332600101279253480076184864556336763371162466497918053301809249620590158883461461785421724733870356657880201455219686942334096365138839793753135826934323938793589990923018852286493275367099742874044106574554133674258496620124132020272021646606562363040175713691073768467485585494770021832470442597062557093150169339769257007943065199600583734819131140451437825275042596441612820223389505327235803765769268043413436786256564556643940858668600431252336212501942988526388845511992645922880102452311670959111858856443047497692236431457790893481002308781436879051330925096737618469366788346865007891256288097629297500989647675093446838501350791729271817246403148864608336174659099991038659383288249629127038492092714587727284917753139363075968688642198763035532942051022197937907475336577545124932053500415753876981365420867595455107329340592797278596841854129294352165725195549429613766628945014158553594122773070706166396050473514944254476735825609100700221844793684341660891443050369600538873290781327313472174965024748191357133881127993918894688086733470209169112953973659787871270513206559094005826643480808542269552352285875370337272129722230241634481132409531980635189226186571436303551555424024953130802527006862089617143348015931115705250791995660764441031064176462696441921100769529622048782656205144875740055202377428843719589610942769100222819565741710513505235258470886423617116282777465802107058457941208853692724959796506730275793677978415832729145997976640123631081588560031826570033122607831521585804296896256564355612415170749192824831225364775359280642006740495145411879221273757443552248468414052846511758858493318845061262860162709215592650205535767060232995577947640308289527193475748603276627094437781226114121531149901258234035380633578564692192776783157208512814762844084528873527085939744215408413089969725354795205126682305855866635962683335170299297179824394092470638131713223714723113037118232717397790243650474626576618988206745716759718308605431449885761363640230636693670666385198186843281764583761672917766899337321318064300366689467025842254654510375185187583159017378134603103249177727097859918448152039768786580342257693486361050791575674612882156495762743235095625913880296018787166849178165706585067823247471417409123857822737416264907117485509558496898643151342375660634569459733552229100390746359794288289077031628959350977744305008403656129977564646832403242225430542904622063365329118528198459398095107627054631180970162248644274938423506821328850306841310578645384290363842700783463186809948680446519903811943854418988042453815615758559871621883996947937691112973616724621217900374589245143270121992828051832263026994977967483415936972410873433481359949995308183796814864095209423389697758809025853186000299912738294221823334249003574252399291842591548845566782814069822113087697184752427702808023936396926041303445911587936416874815496681331887108070489136789514718516559823786864295304311826330047591912891602629121402705096757573599190796053461896922699365902246497552876542416314698812377458342764697733405120278876096808352484706147861623075312165071132860879104008703579803849061049434811868073244878476192333330843285100709403243344063350590622135767024845014347271307115395886172552025934449776318926948842957262732801592972066890478973562255172998537435562917330168600640884026342963316119882792039864848490682255774606180041472452175396831664442769013635416893405262196954063003820699148160940288712570211410291968897329299880458958827503116577988879837101942534987775369375301374544903688297441328086182755257894951630955704225770890121469867754377074049419406846839788861646710235280362740407904902504609276980714408715095414290513188447385286379727147646663870144057055976947574463100774503275642672327219402125815882734606881781249598401043865108932438558105151660276527020676824695577082251793675879643902283988911132486776414229799563688601040510602858750429266580990063047869811416549626613405407833148019045489103652830982297209200908455235671259443096909231731916059814768500719110264022355023155916036240093716173196698295358812574396598876286361702093708917578072880725937024101002985321523024185200975315761741729360022881664618970542939765332080705031680316682486926006995869614354986902456234937470719460342569312234933095002903760417413559492316815944621335325956048940620070018088878745276269539456489030917606560328971523952290949229769793318090684192591704368315435264263521025249575274384996266175931017771536213650259844893552836198098538723341900605749926039110705698318682630425834076520278166740745219722632770841948906015703300198230026918141339149454499355227560060374908640171787371707633686494118379155195128420948423336176585964184759013146438698635195386094157403493302158430605632194842669531094130979796056736873047108792416425378239277392533423019429765528740205359711331544054947473359366687138615914383838621154092162731080391483898816384170716489977448151720553417732208977178141735119075386086607241767611481909311300456861631055605631032443576139449657167118648195719565792477843160691887779255787509699483459798844488761362221044790019279830206916357514277690149432983053744328906564062108215066545741660795094435900769120043479700380240902204404743990101744065353949367471870136972281778695574514912805404358149625575864836586513328323216019586433181377333817564266656493943015548854535839701460563672949592379778849948843449259988127362796617275512837402542451827890397878086195243401725457926934403734031853146008740755859864471100074891291911483162364838035721711616669645349560389004794606720398739887776797801084781210379640143939777695987504789118563970634903646866458005051332050924052824439636799172459963293415475099304227831722801380930516796788303622625313751364445076033745234223926439320500261590939688878363693871625960850085177201759882880635836623440747187393897614245964235960877171536437517698074698289345529051124299036663764663532329636375837501360800242164914864974399018977714475060654998757775552277766242940921753657335852861419631006732286798038399898767052703880601314908844001775365022472925829740962093033975921856174568988367394928636786202326469281018101531780144348020731756977307513933498425728084746934108568867413780636213328859116104691202384871037456893023856860668851792286454726085504995358894704869447651508190342752472875515864901950189136604766233265999573387366185924761991742696945190631162903990425123109690100135776642929161605342576880724621784452735249063807045356353063960574495547403368055940125138005601257666093154874767920845820004682724366194521743271307986935610678860975097685530678743724890476680917123658890258958417220123473313614324465298861950881792308882298490209072781774825217644908594652780318118322590653291858731036582921273820201255930471335544127697182171278316008536634914190373149486928302235754600133979295931962380024174435714058890595215071232377814551437882883821205686516101260226246277478142530166645203433352007945325433141951822918960464368761531962534002930845169172412191442599271248640093212908618816820495815738189725765135910427281470498521663542186867764146103535840388324224521042071497881531927580507335211264564599496513254197807347323769985630525212792762175867669218448682830564371405425028063555645080963153998382423221841176854045663374466891581749976432832917442046111128937860494174652444432142783541521310348545878335598712473711663208866844097611628656199618553832521511307390837399968176293262834912877620926195838747750020141869365091533650430786827971870682260120660252666714482367400499684347657324827587102801697506037436342347791638050961017535403308556827894224817499784976442854983670983124681020571493489518376771360720430312801382203426805902608884168999862124826614146356820899451215456863607169518555531038498255747138154156787677650050589980702292258993264716200913436032790931069298719990060027076085435788446569898333558797555284169559938506503093078030853714948567607428510667913094585207386145472342014759077611520000179339854641336242896276163566094062886833238003412715550961924076340680868343025850445198054568528987308929153196003829635537496480212971968029608683934869679136234847030934997704457633139072506577043432709590298147944069683309775731979519432717159150966757594756600039018651022863156466749111107415097417351892484092515242897993489638238239763134337347901545219207878435387980172024232422598083489157275189172498749310073474495609807462934493111641019460319299419887502751080415164031319670170374068970454483688965858388094247284216976116818507701205364389414486882408610836420152473967459397006209490107939048431022245402584672499303143245415615180119270250751382461088471534408428409460553578693024527717770885338134397085236457336915258319142356224950102607609761925032831306117818465025344512232057865570204374041992342561397547536677726804525923470252768863894429305819794415132134852326556126314952157673005099963392088626032324308897599366049160987753229796411744956955208735890758029532583898045599111439369865945377830784068742800759542082475201895831463988522469083032789944483483975695606728809684752878512668752369539301848634658997909304487251005346041180719522890420977607328152974585561782295258692132388472801972358159477203116188530935928785091361892055075620199633597281800827602538967099934511600093798489724893905636597391199420890613505409776971161274806423400697630985131600647869013468871978853713496369373943380128086240842772993571956245540304914457743763674596911504225484188999558432024436416658762587246530179753926681777796424660591601264540517812693084131762484113933548179021588231874885147624004006807967735791193658886988466574278363027759261691760208439595647865488268870704260792837313796939877130081768383763256820346712383339139229709021999399511727318678428075080944951486059703208590442591258509001658304453725158388698997885791064471384331321232229992152473894942022028303511568034969496630245863984738797326086160797606689991185945763340194428854900084539372671090759307434735081376001667992185152920356490960677156635478989591625694324452627129457439917108906928247180052057159599585349952409044799796543968806339006632431795741093086393160109885639430783120020676095851238752119036789826909090223672618570358201232903615335962697072611053723500672486484143785772414524552789083682716810904427291368271921766260427806369475204032293451443559776910395458578247617183939011171606085159618272691093120248748253295907247848821163768230877298457967174139374286879089994393768895725553255258777479243184796129207721344845430994697841458265056945806801676041829966320338163703469234135193547208256462944454140066461446114439394127209643236347798057860823178180486519685604135525621376940602377094028625991068996019461123284912701867585609654540880654345585283321962900356879021581575581135774311949995313972940630379796335891532529824225760677218385542463843402943237376948217403395366578886388721618034138518147269280337400634359994035091702834156259462282528038133415655407826149883553121670150380549968958461243589512080610106541364969494577764361365665459875518685960276071001908812026906518937549548868194230479347507607002562466015087514297699518664779536551140329970572063731031931596002007870188748415344511285949322090444833552938327673895455606469601132082763531689108289650989473547682404993814770625820924855476870975725613102067355181952786764103107529949057051130742517091876988865176100424169330445280325004969959535100086468355835140965504884533542310412122352687516808496343530328939717556296326512102210225412412042603635096796905844848949556198555878297097010718044663793908648395789455539464168086727544760348317767121594139230384699635268634249582372151033639545985271450412698962236019011600576150621992000138172060431701501813326835212311843245137630951533818849215277557457763886000634019254255489003935760146500480118203399163188776065339559525204415022512932828441837751899165581293476132685288037038764747075825978687159485597844323775034946434762742438796907255340888817058365300275518653058792193446968494657244561070659850415448825290275898339219407067909544935715255629749452494278356401624765108728036250466768113078214973185676996813088502206704168623847673282451523791490538008153721928332171059158334921028518056519729464726900949781276513842693346797276284804152266251747349301694318515338941594821688728212051614315457853445698887493209550120547300178233429804141816540265062166103683113975035724387528771575501667857129559884152494698256999720020515474529932904077144033095199882038702540694568418880685353661209145675950162626763094244687310602378493743659903223577506104849077599315783528870364480233892231716208211745505085380869547025942410625126032411838763119960726032436466678770258881694911894520898081698483391249814423932354568874571688903073949523213338192656738641456282906669990954238803024739753936761579412920895019683766689377651753390086620146393042541154103523892814085786345470587196469764791164752489293103445864164735677645000901043090348955611043679636805880370031870603056086405687614694662677226528164294400584643390908257473221940972321036776317718807525464997549285438354370286683968933254644132201665448231567424668128043307252904587995664339444102944892382777301269724873868656896986932128011850176482633163472598182966755045415913478831560200881790634558936367816650756335115835971842620918863156842616161346139963909609653385159664463365961604049075194521586902792183695727725704569455961659391038660558432024123297088001488029417982132266891962302009240561394395479296353840980458604011616590124909016070759572502350742335324439093014909017506797440070808055292439841212285107521423497407455725993041527028709626594587357442423717393226743149065853198803684506180224180145124976811285966625856578828269433801222330753472542394297341745253749264419517467887794644159636783098052366527727218044944826084610686285797528773491253106807074536268578289227878715198205157004533514556361545071420657683193681872102584287463484710315966879523797971146084272367755699053424039289231639791026687280140264994673191677963842983202874433411561626820471905701984882537607034688855914776417566354956995610205132728334922728537678002940059891468751197830905753367377084096423397987359575600698360978195051087437853213464353201767042270872649883667705430057377985665922283537766422384217899416330346871340453708612437647905042983623622808730248885491530785465875494684148970104094383207047018451705069461307851315880027343717569426508845506239113773227908474381344956466525389323329564309133134257490063264496339028598745608426044982585342259505203468686593814687580292270551445609590458989627976428405502143465758526703373343087109529897438385456704744317237758169142400917465700378472187869830783495337160462124891791695076285882610736983757904454649009483214313388968248308205229853169095242014895351386093998293332646183351857051035906799200942679239111636848025137696003111767442013288764873352157216864007873447347188686051779910320299693565372653149013897507369894354980439402478965017909517428902932179375674867482029332713801544757148988622772958049205245268073706153302274692505091077424325862212339529018078370990591458999319173619095421517518377246260672886136522633093642307079112368563673707299352560676162381822218561244005845759891374141443177906278027069902091229954983447766134590026037248111791766936156715261048532898469052442945750325596747749122693361723523340518238346859422611962485303261172743395722761947342361569007489478883574558756063972154346297939293454809478411100964699999952035053387407280146425934382587484252377491714820946493340290260193504180155260215719494958894188492374377343215030006232237602869307097303575154094934097294855686938238742529728273296643130927881939662007524204093828889094883673007694694961189178426807930892623428649518020315862402083087241554733596900621889454155022974634115285833312497985643715521356170279212152188744267614479366902755885914604824238028083231053500824870566703912972822278008528105970058300263904982118341041976269479054646026220236215905100887218256850366869939664262945404526062820458988295388511097748948716278120834878597599390127655255926495332591985825394821316042822438561322824479010778960771954792978263608433821577080768561747147192207578470471186395229603757537132242424286588272452699562767027001458739713503608788072788874497110779292843735452111195459295612526403981398645908323963826495738704648258662997798566043319992398446850447926133093374959554321099262292949582452879684737938603514789225192769412350280858162679256264024376375925184942863752624315552179281318544650708987938336963378261787526154299240105117242997142789057279540534125711840211082796791921792601648114857418408639531151568894565937450587928865679603521512746064961970283084216891605871640851228790016704626174986198468648029665356551008723939039129760395371380608954436854593874586736297119834543638384819552025149857490056141736968427793611099894894267693491432175634168913572527992707666309442988138849283172986831360592824548841214457187206553932993956702591037885530714229557580311019644646561987939317742742422740805048773536657982606434000829297740175606019584458453000791711642027171809446813286798643282783636468487041464590824913503611212361736188329533333501869508934773391817114410694728477088346103115788264516846529203986327826131770932212294863601042160584385638999901934478855607307145455874182395419435364931872712507463970156749643217447954670801979831615481095690259307154436766185823765448509096135431466029753425046395797391450887920238732218006436550646858007995944397873988465512732540621770458624993576098167316820818470044178132972201223852334335957253056003309294797134873634875555505548503985061679560020296264802315738273160014055246373552847221884724946291337993047158846616179476460129313162711370330338554895682662644019585700749263121864147905541480926454739977184720614203425207918888468738032150504534701125019168557045884301040013674500361312216694540981207923359458414403811902263827069089143818405047567988692662792129052422276288043069900348925133019208325060790660710930473018344357697769877321232602416695232602944916666352694970753997383779059528737697691751987876988466743949839761028901529953108975853575999629882871820117479678356302436297963199536281271193299834124119419483024777078843482368356593683898482482186165663433423709265104919174861771190158159128241473324490592894267371933363652748516309349044143627560862337671191195395404942322352033049385909866696349005783262062570243897629765039318167112532450520417391873781901329375077455655084797595391576168975048151579432577180557503286992317873558765581906899461861015687342728326917687866775311664746335758789163424947505560356691391133251272847726563879991623650242894685906195133551940069851866057909376206585366835337885032660431471477076777096392555779660898247404482714559521282443810292565177426784542596862957314015633471648740832247902135116419944532864075986649505150510385861869570208678943081228091749933416480535930156586859610548672383794265660089506539801629136333500204866511556921417230979582131221328123884186190718384673364650079781385040552298880358398241357985627920314055440240661182402234977725224418271978639153726368698970144692615181662104169603708645161841653339706206826490701720023654624737556920341770616384900978614404344932384371980963300273206753649395726256924007979078671079786727387652957207106854318540798900745985520248545799603502646543564543907347026013410854481283787832761836190437797112141912075162778689770805960318719896471902184904848805986816125096752015788043886076777574237697864479760329716277507918252043112102693169167386695803545456303561282564076978366251288727211729462017339160153579476386583616426213987506977975670573753581604187817243418297000619394534951272460357858786395673076434217460982891383736903554673805196841667383209391957182028196475998155675809564028600580520388446569254739635134408848132350404710797135151885145668753316822235024470749759019084019359955943099271100359007709728983593757871810125629232770278462433544302906734892794468692045389283124914491687424904309398898076764473942549228066193870760998598675797598102981548993411156972526677956906259875704221604727684396235556806413164758215273252236939327249591535590896425046067690257164481170079948904813829305796422117211846203474126085528571160021790120813983576028200226020297594138621202544093127225419312015584529967467324915276073578113808229393519609830287562216612170752298251983336228735455000915098970755018122731642260283824866239178965249411810951698287917672619340530497410219876728614520951805548608967639871908605588612901254474828797317468025767191592504650056806565688885746095009979930163500550015107903506491107890217170495046126749545279252707066388474675054501635595210194498677247568076974434032261324830948853076182157380615168355655817719413809659643509811073461048760883825223873097143939813997229514175663018091990412352999246648962410949530944859065204245021363325262863478023038696108831015045696326942494339259943899448070278762582325740566354748509757349902117217754893237990722383529949424577733722116160387692954689824388607806521230030226858301681211183766375247276914764333102455853674728410984715923956321478665823648556212204996600100807353096849059283835519814768795169147344335865452862187512355044826455905988013103513131375479910762628476613994910201108157421367707222490007787469376452277536090838822177175270906001914434307512555640103347151846866881124427474096128636156202852645307981695140413597496476592721746355699155846997420223699744957123170887985127515642315581704580611519221161712868324417661494911009598696423921849445235037250160719710334406114272236148153423211886577644737859435099318640817443094714537861755993417602103230949013742700159650937131332194133569179883027193606096508320999460201505141177926265248035968785255530093120160222805730599314466332959253704791492720881203339067075272851395851467244995920315237520046035502637949260566967504082651438058628363752811983877869731018344271796405058127150271856395380656391936114214480494735788802506187989475802390257392408809925072511729731364586383166001166432529577922215599316197868534163291498161574576344299819566330362338745372445047566492655764891884175559693165053477799557209033837815649517031666194372300291067788479420356557696926101311623292448319110298672286990312864062092554691521796730408196671221264610721568384295309827687013177781046973315824395231709817916754682292800392597910759770283017540189057512542106290773957603562578495845951852668274315261455858815629454116481664984048358849324073379575180172469764585062637573884230932604233439151304720449597920056603452804370762752153859618030214710391554890501504535836618612386653899737974835927248568643282415654859395306047546258213167179110202364671610552085287981581471448119999130056184906555933341717766779142133631693582483968990452459059662530461409844384576458707135234403127140696225797056536719402594194540470844332665390629050327246586453657143954979940115749197624392756094620046899585700748462380029249180594373770320301970651086147781230624334822236635193244845958769174756334221940577706355226578801123989219226283293116213511191894739280757260266455453293759056741569806177448278246714481278725371514532183415959572291840250366745718668788911147675376702886860907172232924750689768694202827217830428109931637334532182663334216582503985494745394709357470999472459664496881917060895739541179687261700773675912291471160344874063131342673519820006794770590379954857699561576713855521136554553649443882566054265257194696593573712341396491849943976080638814541844829424696784595293883650213144113653881530566588970588512054411356888890233789438401387984170606372471685831379184644047156055134874543200914941558889896726317808991715014215640201483006605213730915836302042477725887504717974325017227885098676877322601879671093347291424002821693385005890149236747771555945229185122473780615118854552367617053144210996058615250448146386244222657965951041758542691634300199952741995690346862808941501322299137601222958697070682141148776018720087176349319560647699571031053794347926130543116786046437812254061655583206566975601899805348644680150236663651596524600057225532685273522375651922141314162025753956427384086845775018475542711908594606864343823354287094622812228151807857723313591044334385084513717706513148927905452403691996451369618150341556662023474279746599390291296804165699983498730314011439245938067725487027142591465893855758260548211559442849083656022480417934009720881115536852360751605181380339960086274414735653332285444930860329134585331712312906062575048828624700163957746024945486956947842580231845717914462259227631327832850007930044417219392227241938907510122378085554922156593425750394354431929355892114385161142188996487573960796068448551601406490997280936972369707439933702399816983146099696137746952633319272529707196734772954043222347104789794848461350245429716869061008654010318346576970327960329158374433987951572209287252615874692319351212523797112807060268920375087401660773759943942110361849767344029183944023075735805045178210823516789484198850391953385715336779717087807263657372034905951522062875656511163700353330302099000745350164528365361120351341964081437293221448931033733955981182306454733569909673166055743919234547024154161516399941489688362468052952294310760041063830886085151752430994779555002218439909963540841523295380343442840697872615749043609169934276264588553224961823637578577504394435269109966996608553217901767215530090620235103264849776736710348511699985069565344099899227940068953420793985375812095517703210096610348993055076265340566908113930359689457289497575650277997443173246565029040571255505824186872090592008253770722623441980418540292560594455972580242593236973229479527615617851731365241237821205831512882527684240414598218560025138637407626329262042947791243149257903719394001904553937501547269007088427649184320650052734205164207576175099402144032121087724116530861686761520160601334395742149287581373026316320025376327729730589939191365589949063868779746139795337745171527168515819412960059485765127796288896943746525268488666706437549308352621106734833592966440435720266644181830140299301505371798806142514533599422345589386893167137574758921694484049251790599812962878281622034765365782064124887452138344283506713436620680235078102938582847896607140797712257494622171563142850908504589100900197910301150987266757397896999579102156107738250159899500101538967405901317476906945907942324000543748322416770203114065465009796835244878227005801633940481646358933111401072206956667391617531066269141529427659143164963490333719385531200415032625477048522420855379508837228513160676590935347606759847166188735517464480260662266465096597386531634445070438981565443250477510074623813458552267247189587997485726350131834505181696877045542665088870960048707957371966082585865965908591471047755318343198124210194568102791274838836402792653234935156886087530038407997486283061309124717508513776778122409032069210840121698976841726567041670925661940157402231377269771567571810663189206270021625344875352390469105114208973970312250232789294572686114894616736710643558780778213863756338928449153478513175822122321922408156034939471363893942197240031714719853650953631167260939944398538277955766789050771122855872859304614191750737489014419675290127571111580409397031627578477456228964622001095753886181093530751950248384513596497850615080318941696894581363540181315350755522399599364108544721034769699993989684898903547782420059773371818825491071202463953069728299257843809292975846513788780270551058075954726610860357663816467581416853465148802295878301111294988075789080811855057914827466156499685901488130843834865827373327485751748835894539224112879969380303085583892553952160920414885764934258223448022486354608298541581541436231764927681628766666836380447547520912375241951378942427762921984143738626977531307758169382586393042937878303172604955102768006097136265778590158190647098455089625689714761947004594073438567969860180816755752631646926375928165997661135404568164014237485929998496995850515192974421545281917732741191717675433577621830658132630767800361770520743821876865624684156118473224065629524849330523421635730736829891310162516868180775268328541179348116084363364556981789420446183170689285337312144620678612383372071502350612565353405251314301685911177692972935766334397839178973030456400318672680256565239420796158873611154650371697245852149874206752513574071149153507849184809443585044993101270591838253691438968071410312576239834032018706606004999002667814846611832357139876017324482566755237732524533830215133814030313362648277001650742998518974055555447049274963165264452590414025753556947036172149814111106072678164713361104592016793501044965865775415462812688841721824091218501442805346810826705370715540849744490982456286943517455824878440988192146787162155589966213673431475503500858057793855430949559111612534614454672871265320237383889229643986668828895005220339951677115703354073001554775887943478596609896595190309959298356715327434673322755238014001494366219916428734485861521426179706305210835685683008583910597510795261010305030088153785674500176330791430988166679025870302360652216884423339649086107133920622818448311823439031037899478807273377273865840943991748048350204297824689917246228035695636641029841160905064241356312376140034442612330621640453689850863450173500815944335107866313055501369143683489199448106937387548428898539799868623003636759880818284676778839543857722084233302708315105407371604498686846512476421738809214217775047848970551572348287027761166260892579238148469909911866854490805259139639163584743680688467285556534937285526743995264812664862243107265376711576045661179219860494496223978430181868795366449939031493696306701406587959494685214072063196680787956590746622267076019255262889581622573617167978848183621266803578206483023431678240783459379510019848767516634321418027997201513869865742152305306923511513052736699790115063197308321343776069468800110054225040337133349142577743604699903303279261541701380876331292487299803711283344124802713784159116207189103992152168705792032076009658565423548151299140630683957125880016978785426884967359679633098179123811845525537259965720865529578619350038187850579065733539966291880587516555028751228358483965504324117891744694069896051759918918452719335671998707028675783301898692551812725432263419522310695535193499217566190381602418541221043916565888045900062556194973793637845230369342929341302848840306259529676253195922268207198992246839317198791448595997657858367380467356882352573586819185996484886661876304123743227016023514342553269395410665919128022479203870115435367076379395706024609607618838139422158723061180517481572828006716683607410390925495245386263130261324027381210909587836501648640547585972942564439276489393827173498500382309016631660002441106134123978203586661248201342038063740427198131161921274734781003261404646794711970919779004854482997477695055570424325885405802703172476345348872378733411653301416002463368819335249454683585758143295153400288821025049925871386068845964555876987783751440828626539411826122377177808672050339352312669748907660264348037226939596201654206723557805315379703751341663190455746911207819436647489055536882995825246734251836175300817166786530203705017991132883011326374623929086029418607341087983026377368213322241524531782461002546041785084985064964210231996295903429910529253749708546204364936980832004448467538677312279293128870985461121275481862129682516683212662553386752309473510386198045555269720552774648335847472408549913587865050184419772530522409619030872076660109507643654444911298119567772274891090190115975876564291249948610903363621952426310235766170468710292459674895706125291057877487573767438579105022672006891527425358614489144879597389750530673399906117757211105034642258747803482642730185976721923996913486764721823045263474959789742763779429530963504346493399450446849298340220977671052560260021682777502861149973878576228043307916292230783629194709079578274574010606775884522563989514374737668045226544852530673062374365109400584136760880655923403352381685406827533766175920001795974319654825097834102627821314961468437501757931071704885437353566826449163426720102863490966296741697484319087016326527384999804815842257600457501542796790360083046734136872634283945469827087941519216450917088836869986485359025696115864327453865583638282069053686821660286534393762253023046086607916336995014448749593199504815741575235810986473261888746193701893957952421003579604917327171410356640717150094535007352417309129112057374473670153304424487530699685977990407025534916568336203172937700641414491823515704941641042922615115503650398822308618962693667109923519163926650194399317664206007052133118566089527647050899930740639607058285717264935921748354346761459919791870565567003782373909155314303260079524319026597772711500779067266122666531868882324004920482363903427938738451828174783211190565425546245304289805499772126997952260398231651154562714964279115830818606775996349496930860232946189357135622974677244273140504802369885787238376846385775747669894769050715361486061713492806236912754876180012534709574365051508232681413424044757264188142098420155157094123984269027514731004678441497531805893134817780723675249445404679846577381944972035791323352959291665902984128453009142376460840391820437142102526562767052679861013913374311561180998239493527024137228964125811543256683523755339754898481725155881189963827614278358598970077986454710653033079637774040954082506651144199458965624984329327510651260951361608171763078107430769473387491695928954517602580023645893078256473747922514484050717759787208720470690046521173905946975866047275497523312676996874267409425069205449641682199415312562321667826827351133461516648256586740955538372118154284984395576103932540895648652439413489765406751645971267326058326353078174071084523574408717238775631554051253560358324389998503684293348728162083189154391394048992220023714366694044900601389891044015068815334203105970834272082890951062098843062036634891302347380257056863934636588814679061457333842493102638706726690843482377389855569077992483194396639272932520932558334830910611642158284582928212682415770985976645292399760456823910404442124933708910368283840592921266442582805766740759538401714900954185905687255822879836113227916044512807200596936441016514352359322696513640481280826827559602390893912974176385514293975213467048296436034377396709126652614486347829973114284334291941446557862413620954289572853324971349399167325984947134882692024316435653829240847271544485597519891207844618357062141428058386388397076899684006737015311662120759905568133291942429571992001922519050476109527134952925417068240751941312648245418924166882011088697893881408150107266770046910447628460140822879899708528004398042712083413949989383927689328029966368601611272818944606865919619809198271830870509233359637765960382422087804018585991181361233118885778508749578040927119304866688687349523804759287477529868378544019861185432247256603615482975984522107883227996892128723701826217275357417451898856463171848290985041617538177487524396540684613003072016293477882581391761822581454141423410632443776755516495167584505380903017594813050589133462364465332780006214384252720072344196868131933902334359574152264752816716585023365499708770765225480247267725346717230506852175176559356526087105112849891443898209808885166400831871654948543695748112623885911557539678533179461094229245090922604110155137018150368189536914364717686455983936939418135788218396970491380619668278905615020786946538904263611907047012914710921419832167976058858516616775338876350694514294687558944868798363843419612284286075414764747563477008641727220243840768792965613175126907356476060190684285089252625154776200325591204836434296662355494977593874169169325964846089188340188513016621453270519739951503612699070188338368936805278332902312465165440270511712478394811190830013641372018853484949062399414077282714186747531538771120500945977083248039559335969404125099891518067952022894095066571191290877429641219144163412564948770985183474499265198787550393698841178199309574490041328081101302317397363871298045925876671284635361685384811464700007729390500644548588996862796767427415965154456090413969085195386513915512574720154626962365291731080137499787943279434827996620096973074334071089208377876618379075139055647888890448803373763926003691744320554664275529395157776882198795479271689019631473128786894381148424319973190591571005313915527383225692673342129007562748498318140245863064189660850910353707173815930715843911161506077859827526242681392533293789477124119522467245412496854325888221613914897066767085195519578795676838603851175188737826683445318472410957063452419326289553633357433281273730178625969557695200284052044162551357234053840501179795569563105161814878060759203054643089580220539076716573621174745693748094904845562362057380846734755124126368407664980961954271337734003135889160829242872933053351549487854085774182933983984620275584034217931411866607471277010926758720863828730119693451262670436453902672623942814939435437024318447670860638121472731652756872082078425027916371291898276951064939745461553053956478294857356105820350582933749666707735242150560524060637580452336301717451991701042110432414043296409287392491591279232532119403769657162372088761680784775626890964908689699248714753905780765333450725954253452053729770330543755497842933439798157248437449449558654604151434899631801511916018290264883189045468211210869937437672577090795061324575816892246478693150622797409687650506201550864648490043641520648470257155285233352498399072747704326278929357731322479917578338716983744975760672373642103933314726672610080688799723854653405903271458453467461672968175530648517278272458344863704298920589236172130668383279875144873560100701742071065755764701906200562726394734016579909621888492276617279297617648152800231522855493352637710278286896606232117468115916824544167940608679194216488478689784910234178882799307191616056081674559035079317322542371685158228975660834270972053859142622414172202711867413428543081426190827490237670397629653533462851114560524223679261025312712473097137651614375911412727359816359314325034760409166138755032312437507722170007486574820340602785692260658520998125873600580408897588131916730270245354461007802708342355520842616936190080185898990000559050410729608781747704932368696344209282630592501159533158687834016616964623001738558257338451721776451391617426855676272900308403310125036637044278415753386942076821763185439222369130035958133788392740538732490256034903884784224105522709911502838189834582976318945626711227204085459444885129015075492824066170863639147066817493834573551690910908119084915847247356354579777377719393087496635043443890090004987925583304853652519952282760649674817397817361271549126049031642568937182133852766200434843171771416541140259622079113163517273733321543585040532613460840575273033598992345643913998807961986574266724991205397196957379303917477088526542372292967452668680331787541501370156932871064245384014260862877032459918850202300086070544208117028257914891121697278973586878751370975791458682094116070537829065189592273531308381831729672698701522880880642781642084409244485549113856043138288722641680019266350518210319229367216961497057055783638814138952893358346636402419589925050680988227198606646285151606055263776302232048924981230149194933757236590839814316304556070646070114598910119828999726475181791815424948079819150461911409378664503271999865902000286667046183102857318173717392271100408715355375867467650072661470591858418655656054350812170411990982767503751132676166339367954174261706396306219750003994342445973958268866067725532946084599365285943471345968925631763245750150813951789165430674458071776063460406499860814396004022251031638201389561324070321030024252301261408162535968391427542678318252316890758889920241102901488248084929423092966336945088435197176121015302559389282981151999797396006424449535581400277871603484391666037561582136166126918137018032954593901918511130592635131486828727158004633066770207963890342864568642417889302908686762399850647408342083579379408366410458913179156935571011998195966983235340253467625764111524049075272847181315778527391008134486468741465513236140401932430831657895423278548285823156127555336937572116197309150640388560453996145730775506221253252178514444174306956866232921854971567350755255116816707323024627334497760618824455026571040575457307556305544489432332976527881764631817438019221886845610646020367800478918803293851540859480663847251422937498537163010744273690256612300764806978792874633156346644698124836858953730908110837174040363223097116119789277204502975484061392012867456705382159494411165023350250514941766744745239603133729996036340140206676469180379447841520737369088367013792251445515868724295489034864970872088895295982635971007517380064912317345990043375146445932979700970105931463716377340032697902743941638605919442942916079578833364805314111168517568926397668378374927789158352845456280573896366043227769336458612810497588915744916641239123233547111107698426524267184411919093320876696138956264649683093229208986999579588068354515980842675489510737722358197375273384737785717592243776142891620523785950094447977304739198888463345289841937452297588969062993600144422750160307292515235222103423950780939616694832491257370986209952675507860639740074001064509073265225711487037902969396382618268220108290025810735533793987322617458281382363790324131874557642905547764664579447068113542626353446716273601295181686625739077062867684626144082609584207393612259162051292492495980307276129544335783915243287066167217991191569799561908928933336599851348675807854078462225938201857405636566737279031102180908727311013669811519952133593269246795647263556881181958368447723569922721852600817579371366334224762746107583263732217907095881523334255740409081882938437473453248008634487205771014446659547706850282817084411266602542823682959946932329156385912058716216927252540982270933366238572298177650382116832418477596259482190193516990679804329774888952217626711716958254520756992106239317121865386653526166401119411180117652366205034129961137811804054462214937933110228467786145325486359846084181606997596133532874263896465517261589357481110581488349728800677408000944971998298068901232694848877903396688678204761441133304036479749259887482765049598768749843410977405879633714425672606426346131773275722741473993867892092835137725493993447599124401543658907685753853555747734004429677482230404393366097590570473707098001892238020071918993458688459287499735263892549604805183469078253860953658623518895398805347554123941631660296839455733247047669978387414616098658908091600182393501366257598848531339697568707385781038158125004029736415581765667328374767479440261674337037619522358075665635205388541031244402841883211021312548271935590485544383281449757611260308644416617333839292839293940921963088397795069195376865065297465067638441557223885134580226584796409549532491791115188047784869498967189526947923106133626757018236568909751250382710955131004528778861801226304045851958501526753165413393185028738522245005900002538959107492656041713344265389092000245609748662823855053757189717325070320119348423704929610074429546395106625214840478181785245379602267175355753274834309961075677847973038672877793298354144932899526116952703324070056844951825300409108123748627032402871589243612100309398461707961176910373843540716151940891780227686123399592016093886008271839771566813760061326606736241907279362328027260446351236537055076509282184656793665195957643525854529446207281470278786194362549029452263769276850176125512604254027216214361696608791696222120832581228018572891455976931591085745343681916317756683058110855806869883622639967528283403631158876249558095691424892565362665724339056510071137144218234669834711149883988278596142834728199030700259274803135409321487223740911233429371118550145405907251554495511530999513819419342581231481606944562213392981320428389166849886398288420120695539097565595035537738988113931547752200189526751484254199590762318733461380317857114171492076868184188457888671534677890335136430815673387900450350168294898901867466011618760874775777503095182440427239350151166458140626096473905683502966225961750647806625034680169531114620017699219133439959551991205550945212825746992051484128236285068493632509537652058197807675612200908981442041301384333274888750473756589740556214231670358234307022989763269920341719339923711327834804653810435609880352459640816032730027664359082751930071567774521614117288016859951427260161494373708445710171374279142745706912490731254676098732016724958772344812129734538402819330734005041773787235975028769126423291629369803522214366386275626938765596996666685744880827471338997057679198671394960748561123190627053641963359835838018693592205925910404638133149848094394527267548824272507528745640907833972726615375368416216353142051904217800126558476393406449931176897643294670706004637768456728691387199901568279114978703193260324888144805102124947416681612374603807880187833298368878971492146198653041272100309306091150584317106541162036168573997684651317586614405249453758699772856350585099933929063483832602531031350133676468669250588691345246555881924334281004896151603228009557136457714063434826578065831644132794424896566109620633915609847842812493054039563706504857408929185705211990695646489165304618412956086017856243373181093707220264058574281481090589970067612688667495016955355419111955377398969904829805118559352463050961727211531616874759543908368849225749982937622429563736063915884132286293959146632861540422937052448039562541580136254587608147457135062715801494834080701177710731222208330496772678626389579281206828593884532844187439139597165787960281734315968172809045439216271611588327856834796388462959139858899880382074493735157135951489693545428666280735367242473558103507841001832553664662204579942329273747850387080424414961099432705290166736198897528386681483341663251091965570883842231776217815741075154076116521718202206777146524257158897652662431971890130656111897791221120120472520137277720738146040686782664513810454902248797782926836321503869854519733989207566965232683620392925785022190409247357163804276655449626939865658580826821766022399241849593570970154400867510064186849187533878197555166949737609018193619373578566799123160879773180940880856656484527718487444664652948405802903756796228941625996011955894558302730706175756926195277352346299471945223885640083639659314672765962017416700109416295073001921120858139201956291231321623944770752616273155837855474547197022755809630272699735254259496089458231353838912994033404303744160734849656067730698171134846170944848814989855301423747256161297864800564951630170310140793472248365888155729026673661938432523580417666338357105547717260780950967352254886383336244819845821821756342940432804297547361630198891844124521017416048416384948582609579816222436384476706715537008343315699591826616093989669606289878086655309522658103999751580484077738084697539194821239806244692918001311287750634783501868384071443732742785459087779853530483953932128427142224825609676768001577781223664387231296368623837989357013608134937359197408003746847069316784327863681195375895314678717231033427545945699840312436958622907050216013634509124891613917405488053184833662403518847316734265016585228240677815495251551668302375834057801930881756800532410460182814282033869779665359940763516173902216615927851291269550925623096220032031718520458259671023910232595654526471258426908845091740391566426274401267041934123688268288546967538627238532249867478994670876667221075244848912509965065484978046963202353159704701509308856828617359885146061792399248754887140854472850193782838362329427625486064779508983553108487786124963194733300483236899917485598065656831874828834593100148810626441631885818834493601020322128340445807994953301918041205071331712488978654514570346384798019243759233535131121488083829841878633871103156652288409965026559891806859529142253448586859003837265815962783629581825902530227237861737177997449137897092789468407339083216021094201659294705371405183371169630612736795008089841769305212854243762402289485453243282373012888778643106925339133558569098926203922211754470801511432415245784977046295575282043613202076359390607381224989751553431280416904228540593832901654327997572890449802916845718869993091668714346847683833794572088370593782844464820269775793412397189547296884520964646717694069905751136229234536060803938541780081964440332514493542385512472603660038997550842842817489674538767142128394032118711166534642831468799932301296628912707930435831982244506531725501558183654997202150196253554224217908301068200911637642089047980661084620703368007621003778409168044115491613803374729228095544840800152868795749046795906180605167778718686332431884128489233751052539063231776870257049277185934332633623845982740338782174846627095933181899879763963616842994134563931382709946506327752065641016875666724539929710740659194082361395270864052916354971988325496972558419051847171935707952146181779888438491470108326457686638907054370326380013020305280423652967995107530139818817068303006835331965487644604321223033408770671027228207306722957387573126323227850559423392495260939219294740510280496407522732217158308314517420725232770584117061805215758201911329123542742422732051954087093656801896535773437227667220650035338428994419197474001534508794415092451368114837373096616890900074964196003866071559326729206887026160386099843325816769293748273581251632390092220051131878176836697521261928516571942520308153720787412684061107750457513687060486186127260507857406130231547403396004039472981639589602640634012245907101506396967516601937153775767527357128130781559698964178544657939725793857800520136884928890403539700176661480642105300281507500253884871815360692169880845360641530042651450553206515774592492940549225811708055777236509814292219584503495195324450113386450468437116876619334737797101423491298964506034399270139752369338337641120928438874044311374131097255958549078593691513960854352674535852352316649213655174375809249132884441700252620396795140718231220875134119895479550601390947428556163582272288192730338355359241146169653519918668252982578679625753397070654005342895647569803196363402614937819835157045958178498814214059516029484516390602654637520916091361098411289325299181223241848532320378313353626978677430079789981165425880946938670714856186695495103388348335780703182214568555064873461042506014279115724846058837775558127452566315707395515626457774090838717815703143578969316790476459674064905645066229777390315953782684820062034445611243463252978206780718737688628976107515200035459177643563208042840152901660558041516921313303497290188835902573955842705922084011813037805348841896134414241118832368024873576669782638588948395543101369254728711642983658001011547102113389806496377294882722931597955503467456598869785584476818095190156223333820499966310127904270809866418015095975047414610954974256011473915677657452255845687527781420491961398681745104688012814525463730779637416798473086499120896535647781875207895069023989936673239240782703259816792931324287017843867708108183316861034925982890813388922203081332503757245945672723982322287251689852021829435613380782276740014527317031210627134354280373638012237492270236275281710439058183358335771831067292449564205656444310726337414402048993246256058378045089631553222159919936148460673683479211157817707215351149719711458858581772967170147450073936935581146643450575843625922577883210034692679183641133857154246398271998790232325073560249149612169087085079971727824360957954359226734790289994770709202683183635299986035979864883221781966204565465540744692248436655556458026064919728148726752633372672787875937731423442650101797491783625380143269110094849668646685984760746874834297446080567234921449287325474461530458519106824177726351207435484911976304411354614231712239888856865503947494410125115923513451289126433260357667464208046950391608405489389460362133941926550798075258136926658233255493672192992933142822119652752576811869578200468261648429076499730827341167430921442366694481913470672897461449081645715101636740780579709971507103218080183954905023164030624780364258034582572404313183814967502644231306148583881221018133464374565888115937099772983474281513797313256557650869192357625670229803751423279382952305972191982853748680430646358464829629427374191733351894028775269072260555320670316096885446390164459571693901198910482169293452200182470255538078403413326531792642688551902255529567819666584517884728201089595200187638546341742492831470114336452725600897659791098232685185731483424109910775283634373419324331084217050820423456862948949086063835357935918370421603622945930177867257089768137400036703812844586105027424609277103236371683985747920838101152189458323480058730555657664773825492049289720429205024662747672040067965085597232801360961017722002912050458104920944506965580307062733305423781224254866927812778686536706511151495584148594469497158408462933347718188012078831443793000288212887054498207190580126165635210034803229502598937909581777920643796800869917150774036977186052001677629141720391466266912562366062246259677405189288833787848449857456770876794496676250256003339015183689308409007677726489193799241629816438819227296278031542512271806741805855712503031138316571241600328101989115729260498188470543930709925392068834570636580604538229850108031988936354250215429139682474124689147704553950089589604092716763108403058722543284382380682593968924168461237141039013870886001263090840747140011383770256372540237428804730771347372293989299684470443348244761516996246254096818012649598890828468637837082140873964557404761248347991444683953684538667394957511741955610170708152442036722452034691608445099199912932211135594845344018113955323021066880843869221444595869751754505443979694464625182251201181453281086984733111547598967169046606529561942534350569135004317592616570492647576290009350554196195413761361291793939407045830303081643076988712233648763113173907840387171949160409612554740415187973370684601466132336201927172008963762734552468262117522132002288480017774237246311285520143857438445249540929715434768786775379292286555423598723149308506217399422372334881927877412282942737415076316970965282859251391148249138238061047577389837676714023245040088354540065552021129142636326869042819773734013720321019543030845310066413183725066560619022379132536891247345738838692181283329950601243557368593229535898433449322293218245906907559519613373782070972516413745172128363771962908835054925916004204520831006904841809216746351990555506452296967167267314961313840719786334223327663951169507739013724103411273335663772758530820490182512417813204911872576593476712007514899238907620262196550862278676497856612049696869775895564539526614921856884481322223674253242014779381419746113300035083680830881227286610825549999078076001220130869961139998240167934433062142779833696191969710945640739867171357436559819895338980789737435735269834291973781425654228442608512884859379320034374400731402059627784225793141300390769521002495636444903709499958367564770668637609485674997276426641900145039908158859114748879767176911231329164970631185943927838675512113624946511501560252439522063278787336024983043229904986241841707461082179466798231045636803074540169608932670030343300666499051406372022087800624435605393797665204161554133511104256868961495245322075072486023297517483567604832649179195536678426421240783826229984786953987062178831332631816480184972822157032725332581237337940893078435958458363656428955765211488253553599590858339006575776654562985006965931783438282673090154821712325373436333719064366116577185608812684494517848653971638473254373861629289919391018786492548956541213753283912393880943761205522832169958456124192306760660328833856121659208644309269301278752125124624902780628138356468659853754888591720291970255471089064325843955339020687747176068641945375101532360985517621032445493016172613268785667229867559127794255480022869266090871799486389915124903417102824151355891386680887665327273713464748593747656617891415558097306469246461198992801288581022071252730629687829169821676202901060316528110697604006162319369321133480080526983329952177811905791715413338189381249089616451152066278800268874045965283650128216077950423728012590965131939100966215065452131213609916553224840670387622440740127021929391738630195187147037936056245017086072748616136892141867793360598924104355715870377591213624539602867297059429781581099692391183801098308536474000979054098787324455218764766625396666951644719737540722375938635914078934883850051590786504002723552870605133424283769947105294635257808206827224568394539808381102977120353910384375397941612200578202633162529682131418656578915781671374185819575811002687962586008653774126356695366689339555532834648063272118952982160826184217340295425613391088371711995213841951186198822663610668359262405837132451002652966595224066178567877676526535855067842723613984401105346820949679202468312643114348220074041927046086125831739129563420708654283873583232902571250047437625226662454773058875788055174732944627328896829550997945080202995830034189023537904329668045245433877270591549622137408355948065624000150470736570337889172607926035752541869179147312482531184593942873767911520262321103783100263514895972723384285214799490684323204496161467609652140845729769161121274524050724495912749707847388244858988898520709758762156878962466925621561426520812050125862408171212728883905003068930809291072955816912280183686115210929570273407031790971648432324845940385265202005557931715982708500748938269811199149017002469892372143617126936203991355261790542860935532482058223273452023189413874072048847449608935922498462214967383877624147317099718904376358690442208273940768438132948639658079592143893699773707907221662400480360717602564895661616858537207762773219895148360289734546667364167124908339552000921096874492056993791868744653475854844685929538871384719492326347280641726342196946592618632031274288154146994072911614882492526083452278875092955871818616203333092036429419512939122420367664362343549380620342666441200681850350573963726195438051631543011074077855130593130665068146004542801177817151374464548191064299267290184285207838047666436137619266558179864112950602162588018496798400617629046662058815369219261115850278160748370374101953456470078354392576339993265138805263194067866580046701951289231961843637821404107487139466959965324690661743991179433483668654461287591117204769554226399899347552772680118506632253250441083075236262245037488517267617805352514582498765693892658038838292787562879121207033006992865414341735463941446154389975754879266683691904750780319048697140177647386867633526210268113661030737651177930110684563621176481886149554776000196079317898024157900557353366601831067723960818568184184444079714677267975772044672643526596711955488455173301364898794993292719552417050790202308287072859317565124318451380694911269754855956733625109783970250236266790283884275835218977778443167524359222816360791771613664551718428371379402248061352595647573192704772520993793388717457658066222510952398336003850330650631914962072594700695484604076581148812254988193374035117646625437872323153269866443205193193585136285958711737539086893286117322744682338918116522482724671522321586198695094233691326115689307647960881177530255002959904900674194481655098923270758005229508583231243456909992603022046222743191399158914969411532299296332028306299730995835411747756299670761662477165193533991962534397648092413670338325844391065400802191839349223845340618988452056493533194338529697472444501244257641048954742225149416126410531251869963385136762650736223367575942916042456662727194618380021507573872661990996033498011714048542218882735570852306585606690584301672867375741159957248996817340758027767820666117268649019875897182646027726538788664746592279218481861487892025173205322401962171735485579791008571925167398155453102403635714450930264391437003923208697821461271176240148225867811433386913552334350614538504984774546169284020333135239442087736206416601313268105828016648894139125435520250582333948758461064725605911874156356950014945996799611741576506662970026896369355264453490820224103236472707482070696999830007154585852901941913939695922896384534863960104637929895499217944175537461576128936455444398355854671650704627543651661912578128915907226956658144176639634892491472503455815284276180570312504896638751699681732038442222524506431235335260179121425806486402812609729524418585010749454565368171904543640833706376927266805017992328964228294033208314235061697100071086007681788396952105756896528702008756464849350586790828857562443156023517159582284825837302677411903582854734667557186144303625884369557597721501109319278597095697639343276519312462231749037429576298530536441940797420305706662438163388730857629657370809147148112610720265700051060207036370577470183178276129025574280031336306974198445444209990672496022336065666060599263323822174308216809022256978007313086460804917400010705137264979843608138728389599202752439843357058485889642619374890036472889818478573804642594296258523110212077610156525479912232022088508791445979918453550165575351958003362229195583102619486609225200487353889355289175539737919856991429736143883505639369470293511839343258185713088049491405065450357914640878106816372086776201627148803134084817018323912923140716067805702174008301921212544349184544121914403762362288849230906532534982205287365668163595178325434681017986321962178417985068755517286661274301142329856314877597252929273265093943303044507720898396125665746277450284328747134995185526753894813942853328559466164716950327887702843614410411828429187431792160973380394266410614302117588827612160394106973674549124850353902798165830778047626130535471684475485188804145573249307476247707936837773203349704152133456103391950987382123092462927922795498221359327648647355541182211039026584418836131259591309997152612908884564234458455866612230397266162964858138009746861524124389371762748399050929237472573576635601419644992983185341874830701150607290778839101360450010050847381814924488767094003066608665892686396486803085809046202776753491262113706744315513154510491726813051571139113399833756057981284875698986257110527486136799699954375706375649608070159921633996149578394848433231421406506945395742245343904515227667365973141817295035530105987605284274822098050898100674867844147684997841296087611378269760365161263856573871498844295616590337389816777865730046787389359383658344788995567923372731659783303668259042039411021672483485119209295596266995663893063885366810228915294980164376963136016682848653939284166192076601619647325902694647910649460360594703554570452520670734537038365003711971489876846310152725881669627414434459700512369240937474624257743475013213585096074881962332674167638535896857812482541750890558926300248978449213665942383616751996580086559522878773466441969823423577987287107394590226136859478866058671435026169222084121543646754860383982937642987023707466749725675839397063137406726937864083600178109832409534229973433398156998500742312913443792708259419664807783519637847169555546515095231128226836030299468651267321036816434942897524070433800899185625928859219570686567509760871992797583272238868697709855672101606647342834387722102391559798243479088678114941470414814594230896941799722740362092431258806701264182524930685219767275254663342394079810485613243642185090462287593176953720508275926828628635765708206116322541598211658909322300022394270444385581457712536533101770901754379600580374669898826256018408470776922434807459263789566047446428459959875695213224384869773602395349314201496369179695580205011021109221248444491340044497289717265576466189428714153121637910173326935703919536440576150691616916063104226523848822834707592998339863824343660435807100247565880765302920783513519205769669275403966985427363333175453046224234334662482656180756263067203220190137761941540865366150805184373991598739206187926764985218103158747646118139681760953025619415150259415096076412490183672640915337757554801267533728474558366230786358268329659565778816381859349591538963156001176354392871942160581396984627212697717552322396734102152665456375525944655331700845984457634197269747812031348865315337668384874231963899059688895761595887751500366188256715328611705390848690573396411971908138382345118937219163553532872947148685881131076400587245391768922404544687926277859207258506202167753342007894134499887103066274659921973993922212153366794680271415223999164077831376034440554696941447769518231659801014649440984165884631394027309793924761946782120595398560135944783062839124760679723371594583783533681607170635847973126235803092213314606355788894670881191443741812606300018704027303136428293031343759308395740384974683807291510710984232402134775027401773221012784217435021070554389393012532106457411775635667654078460999877116140478858860922973255450543386061652596294664489833124727983588322504096238580413916318413956914016469937267518100750331911252091751919945469875594168603299013234836356995615640013584210099855194828215252409644906554356902067403841471835392440033525278796472732986159457169337916531505783289431754096971834252284749511311600680477021943925299618912603001357937361649580341497326613094463156722817649541928807072051315163006185414569085686930080012488387954144798161344366933014638635431131406534902860864091212556153523170563161077297559760225048504323554683475443244990588254008674514467948870559254378868832027648555479599228402472954389686856769980367827515898478167918202948667022475391121296802843775171275021674620160770187157070325666919227715566831342462136537293762225051639896661618694757606300860231846294362681410754071751704666522287764166158897176153732504556490315574463084712873752484434210033485121443325654744960862735492805586345269646627661661183538981856655745249537862916092513576687908800978471898127215874480851640157594075918697980413793485729411090392677736401359382642168529636963354189896547984845912054095493301082929437786016349959267965247213069725209834465575661603326616772085467770385264020503127847793408832767702673993991070675357301971960683536269803386720770470291868467756168343385395214557997549698362718280639568679831792427691335837351896810639695170514283349390743400298593463955247848195440705276718449015718449768257764353044952461825692765734920946244643089333172265875017916946811380565592426910008840028220608752090029119059041755032946295762157959593240247355387318486436055896046022411938924963480535708316217818780047205143680654202615250997227777029183767808333634265642436132081281253171913886953886787534190691303548684342442168157625044257275782335272276185261484602910713564258043065513024519653281112735353977441957058807576795587709532220382753694527541450118360452577127795002525869981884865138932213106802115158490059642627683832220514636855955634235124628081934346516902281211182041826756199881758928632560050163005177847374157349180745277439088211360515090086154314957346464778289642275009403078193557528027941626403843623856842659584596719650182599393739733194081667741520989864276158910570695305864448083650918989502441859201350749302159296028797941058964239880255009188515665070347692876959939355139727733189964562125481580284976135192578525558610873526890613806725467113319992492416506743005586012880801144498411042858425048962972792461603482198459870476105140474786251161093186538800303340206444973636516050288178567662167180483342573692952563094981651288096745044315734133014237508946475807474018607572169763747956047812764270716838734397000722765650052732522394324698652303189581206696836614967573897254398099283838706389278604724776381048059036420465146081965021352086525994485967922865102458041678409349629590485685481714739084852484784828993311330108038301074323008046470645740736783611119703450607204206731666606114792753408559286285311889428170759062027294184918917740333180567464412223674449409927756607015347884282647781620317078881692779588268850530958599394682493186876629451798808013452741934780431614280665260959685870881185847212394275570517809355438722430743179117671419420713887683355647980764741399504938096827566598347610363540464432071226109585665243551645426208189210736210195993260519908808644169232378670627623597275434982706333017255128866901541284367194973323886072749811798293585574970431311522031840672668230645719808865628101451837573499936034404829732667778636807035554433164364264143979068665821214372260553660486473616186032086913112795040293286777095140988077285378269880720773714418717842244812453688547334957311410060536266086522624451944827970596408846395876719232346685768653132067840167434213225778288583225247762006150088632520093524986963172968130676568980985134318976433623783988670117296276511651082833772212949897030384355192012352342290198155337932420559296800210826272365116921733200338203780195035799239284099363599014946581570152356392661379332060380185245189600517464835407170895611254836361832869611914155723236074135331264685389155901548670819118464552319198274315734908685933941554775479771850755292988003221099313681873370431694732613718184412243678723835390920040447025519862581074872243132952109836963163130968957996440279446289473218093475964469237379013843826346313371723735992153307580602883976217626101601332867442613638575017420967671913831412984199593669102684782530987250254918764745270619822995295920681232073935369368585628747593888030814862119730686342173342017878028145267047694151192660464458642679807404970101707006954609863902442627684044498839424608845377976508940670052605862557876358709969664919637907089455436654816770048668422977581365407400425001163042766961420674726420102887128603400179822766980329985221209926466744871657918478120063745852190482626750790762813451718657155379964491729305432548666864015581449629313278146893707517025242007522139096789597391907645526022160535294911570954666433132864723444295963639520152250657567370463945096072228478198766118746558596036283754783574524200916231133862368348953443007063132358376633676264847527609696748661438058936598026025598249946217359001123351554773971437614823230813605913061423791074751420654595590123467021623902240600902486873901801096798478896490711898392178031919564055647102222567216391100722341383648244386927770220610152127357445145371589754738679448333761966520865948800987307972035266623925387581350568873391168639011483434591749859759800046412537137312742154508263071405256537026703707430908766063994965881798844823691416677564802148432235047571385424591118859946170162571886281350885841554695445355488386520734941850173783879244980604175506838932821086326089419188824316003593467255818408949455974491322773255496782270413053821972839200577980050868302431828976941512377623854399959466656108134025157604419437393073778811077981584215048575586208742512314722721905662984275831260916053686901304348897514974570494263528454534597160926291105052239534395927430473565113229567210052641721658372646360598898662543609348062652814069640047786695224928699663051747140026753103437823781931700777414429078299717839643959671228329469840018301387788702299838295163434655553577659683704526697885516842234366826666114908983611956006752396433489788131208935921225014186093291617215611158284549502836360221349725300402835083359289222966016146967218767856777328660347159692873479694455308633198577544961278484367859832561625986700286925937451882189928372188348571115010018756490886966161387473696352955813897254850971025963884673928069316485489189119939841415166988163139208944475429596812916939370070237542380843525551787326784138771527430176728532266609615046715953537652566243608744265635357617890521253574230943682565590201102694323286725415697390097131517339751694103556917434424274180290896244636775541371570522814415525827524982501269574058899849537425674690106120794956121606798287983057944896494052091529922566129957981647101065276461684442436928919354246950680462869801309180161583985065705592137548265093031072420233939391188831771116810318778671974599983751693448308350678341718071650888235995557778941741986593959247138954181858181851663185023299545799711874228982827395710403298299291504371535660159458315807781662140200736181649701641478818989436155841068554954638548275963672881837511668597717230312788608195527401250149410737450109952018096649270427779996792557714628784855104798396276316240310123420175190807090813288926339451454057394156973873456952742604141738785887983077050849865955187814408921727933672894232774337078533291555321772988391775631030033810829862303789046745275335376543329860234928568066659226879352416069672870556616387921904390699900796238223353053137858197799500864630741734757232454975988264307133238382532323531363441366548036550838495683283667197233282601917686072931545315531284085572359877381994985364696120735636080294040418930992324191998573350527125425917213063883058623525028596311962891752082213412778904921590118958684001966735707121501992669579274429691634552417002188434620093076768289933378120709779822595777385709195114312251456530174950212944390127214190441237201680784338858693581763028768572528193914672777127894559560312215945129104977682288386467632975296839959738338561383865787026050884885261707155677226744611364571436319517407831808685544998353798934461165741578112219607254949412404388582927843910725977849463915209634155332530051010422215064358748308040861687314241384205149521119813508217931074347042091439515236152347698796900081093665021287377191843707330849010403060625296583648761655038104432042042467848372152823137727302774911440846087902754582443762733729766106069367041768937828328167078229053486896095026397565585320480864288185841373231446261242903577031473604353116405110824690234285458227931337917173566650632006028919064336305678138520633133722342355306389510387044085123535512391321380312577085257371752376704872155508559236627622662223867894325414137742625709083305105586907748641597338863066658439929672632117947789488245337940149549764220292802839501713546035901073416672155872799090888438557941965034569161730397366480166107669962380708926114869294850880055297927706900760582433587231182930950850639133194969278532963116484955212761324238377840676852590016415606141131015803072085679824656241405203772420280500256989292108535137271618437642992344097091923093702132719567053754012642485234183403122310028294906817990812419841935514560609557090877975542827712845414792238982483704917611533876328825832391873512041037309804515360867133574359769579848985745103112800143099028044599114758106840335100484645778310425753643875286057262994494292106520316365302827360148566124057150886947097912003213970584608282783579775490703273892557675612481795924190543449495947979145592877610530730634578141994070102901309910434125573908018788924501917703520225503796112333550105267529017483407407326153810846433680851770142671485358551221843805196824444697609388234899335015960245621847532528610144286450946839948121812554479212119024366526368538544904028820513842805002066726688050964119889913816411830767431355697798284340046536924151117191938379625909767938611897267184884404167808337534151076898386279408034338315116579431304252044025602329166449332929155463320865080174744523340066132358132078559189617559522250604544425738153826907964205577234806312436029103742784588960148919770809655004745413526232405354190059439664930955580080078138207944359764416087250080075888190721672811406706420913449365100321015398391747136028036019309990038324483956562507125059970172302281442346324792025174707547450403142055228967328309690354540868928197735699062923476456306625938543881717751475482001582491176286822760104431998854712392941355816001266775359289376200242823266923598294473894071769674254488297154376550626234669588179516082778517770903104369571923791291140370966077620612869060856029540237055158852003071747563889447799760410774096204507178570806776424835564821660260139594027545304684124165262242603218745159102559725061806948002868758565178747597731929273871888600475809266636667527956232850665680884179880143594675245093363697759354114763385137756516139417212180555074119389291548103929526794541710162000424698975837984477557402641569941978740650237276041728665114375346355769869084299352442332023860823403878939786004827729495779004394316506659706499841212843013930292745214197765863166149248082713686858433882063281176679777468496944429191639618986286663654819174028795873062351769561433548667748049370476970975794191434005951930649146253426727487342061525825308928987468403924623909463229984645571477409611284182227205738983508378887049199369716216183544944935927604558309826931223211031071903048891689964889117175258110898461780512495915655338675755090601216939032341036253297979463927834639821886706280934934291884231850927110039380581664307863202481802486968004971375369158534292682163513756086120198237158940564958306682357268924141614030862410120968335721890941455435260854566809025342256113434153703129698167455566289629358098447779705336308035200910683189661581774400921892556298924375687317077459969078922206007929330863732431937966243484040074643412717022190450466496653363009492691294893554597248628716095709118313223939341116205380338493171871266622486052134008385223105055079936204476537266632927632415853491602634677456338298100680964740171269288611584871092797436008235718901902776259616031476240879745259836421827747131950311067545567966090612346838072825279408796147479815460800525615494266776782973134113707990284716035548065605677375167528700504257822068290657287471854361934412318775173996600298441527422311962812735913789539223655237538452091444846142947910836434591851680260344521156799395192194333149033020243736432326130748599797943727219411937205238626791936521301725768873077961658447483141437596101064099941898175587238251703136689763322662423807114374296361897417504833949549481601405568890672367186509359350509130353679846205971951107552881307292671605629939195410412777568694097744109404860698216326261834574442761318030725680197326715214377823954692421685369137455916432440307022180013353077689754455376707323446125264622098702404245329995166910188808627818736830171179113616167234871463982388200603875613835126129353269429157236812539041741849755274187248235070954421280383219059783794716981094758342563755648695077289332515355559634177749600833142566170495130055184507657199162730534798691261565659756989404953902924519016155476516409798521497612433483544106014092620050814883465994129432125841314003583809629495545671192974736681309294462200473368424057658258882112016923921952655658360025072886534059375347995849175842148282964528724645552344567355777686745644267797102490105414320714112854018411872979317408006702951308048015582038651651760857238295035917105034780150984842936116471712075680891010702829226710064793717941469298317306211965583102930055950883357133043839509981771223122541756749038150052001266291929236564344515057886986690400725782175999289098317886394973068337513302186436982107677573757665838113369688194383328059001030482287869354430555808940144563228079016929326624449866090902391907312272663614486776007933105827344951098440100289712316982809681270680016708478403686647375688906611997802041509177884535679326953406914245684032763013933802186905099147501597604741148581728781480869427487241735767876540213703193732728558634294917709174821544349912884745720667536545250465238453842534793543420613208767158140090565001094300665272659103713696978138490803721584562466555092912083418750183826270187814496261522053219038728237149945890540205240260091584205859182160278278533326886847060222126415640868172812791539847429313876692274937764792573864513103067495708234843546461301882060300074460225797762348342114338826743604966452333886885362751897443283476938301969831506540292963839667545919361282887249799755588144646940461463831531215985060268501866242588937809480627203075618672568851774583756716075602391407008558916335395881219823111683372801886643779926008385860471276008193885037206299728499521018282182574933794649749292386588481996277593294815949402601273705659507508081330601288376852542421114933734271773047685057001454766229459165523165366203262970464982381123013908037333037262942757321325914943298739382747538530628232889997171757110131982093295890119245002075396581986330668407704145895397204692394585581553983788339872628489023279322551830953436197401201423748141509922298856554713943919888291793073471962037168948429254266277430626568808998696712559136080884909513317915120409188706647541521688851114725743834237619789145849135822631487115538059636531023908063424295914341406827765259301082730421361892325020919553569934668819294234197590348176556669690907730351267244527291329997686551053858319406602742327016978298724095295114397303511122636591197925537825744105213382754772686568102223057789420952178078298338600721643422338186303351068834314845860654034514296437812728650424917761706274058623272673604930646638661723069706653988678334590889031020714251100730005045715502234228891086530359269405223400655870471941332470371548385612074734214181968256719529696382402755023511164312051397647226524529157089173244723952344442487154252900809457128513302414834790821819881178090461516138528348284792088416642046316292791691650526742447168149882531682997219214176105959444651330401861577251682964431605242592919508247995079803468190203216036049022355049929663782527985632908628546729267629582180480709437012182663291504678355033076176890404787713517854792774144084995899126925463745488252466364751419353592057351326273739585824603482954211415083083181966388380714128589630091942913795947345172295107088732230210519226324105580278689271379000347616190460366000833003301843904376233633134880399659286519175089903629676814871890652653230345694171890962420285389779323962439864404585607353314349128053421540236559281972148109159097044645687639778309172336704198234924908933183830335735909256228860521713640728044692642780630384679853399635724268849288960627973054033884790571633204478812387061362617062786775342879677681754800179588402735789967010149843077272690593279845241984386656309542268852748313389301620058087928212978015423324764551186035891755386556614478147998659208212274153909080714738345854553289519359420282788489868381816788134807396760466772835428744233680259215381846211937509074225396123737909937751710074526436704854432808299217243995318424010246002130404841883933357027333865994152247738692377128672538461449994799564926106018684588720896975770278679938300666250895174656911260036371454052911536829170998697532491475669207425212891106649263758007203888824301595888724124886210670417279818389429383304694707321351680465017376299374780819832422554943384363953552804869392469435322249043979614509272812956019420831332392912467612042312801542321002520644626936373127533694065595981985649603629987229357308608108903417822538610714285515182506052139876167532370127166837363119499265932070230258566904559632779537472108551945561292242508536756714787968677200968291489115478719028512202486734571220565771000229572720864048627597172287330705284833262017755268964397886914631502802898500147786783477011358904894007199086690702790702799309502033891399159147073368925235583328898313257307024800298756742334248490104091841511885337449125051066258572637437257466812522370014421945650104713088832304599723812060641188448746248541830395130754384713512924815411701530900485158057943291107654025047079889000522733264327706682849157073603550729320185902593146983553339308266759714642150503631880726019670248917939019064114262657688112275584582365138043484741377311651959050947401067311696910639402241571726790770371500992421027023923834868435665572457735294129537797812523903953732550048334065781915384199048331535238286389394235290049919148590004109542001697499266876470643672813256248744971730735774164852737693760591872464586935263635289249773279956094119981471560390514063814879815818876157161436269718196688144521027209808641883222526825131813825847000588518571400287352157661682024674763148573985409072325366434018877443798195552657049177505520975919524091141284798431002158659149129326690524907986048999930244840763304742490238554146260481969183375664662695341615422043151057298514528401734312611204668137835384099463630979976021368140967129324785696771245840984288935255990414171021912761547711048250842570102514642252357828848334073166933464342902424023403676608272742122342224327439468773882100370964644298450614681934215101973146697964372168544851097732002827928847601875606815014109801992324431601593670779320840329166961104907362567482298846730082260717005646885656682330712078482002666923574797412225722671362976423048522651009974947688477702765337884525746910951837521052932709398434917151172166184863898917469711717581544177302807863545135029762983903471478434596682055655028683347556976152338886732393677001382265013758561650916932243017107342510682440844570515965515497662203915862960537492246427612990033319763160499006587481855458706102245262569449624634949040068617306872036865539149767376146562970361818934471605637133146128270209839975405372992355805146083595685927224469052398687839553682869966820492565384901637463802773410036155539458637182913921280800423111374873295246021053959847781606973017926453082000055165772305375843620771424758754094062781137511977128272351786423236649064617940423618541382921084028419077312946057067937489370114985618040786529913998444205943713914893561430486813766215378417492459445785409873064912639127048585254002382680421406581992090565538398600846185725078868166367561111654556917484329321466808455122349952579423515334228891073311362863544013793442098779119551411109910207003924362802588461645516007926325046206972516094102006252189117945900482992929820472491074987179384475645277137131029748625658447313218037201776116373527403435172864938639741128105331333919035758851847975250280533570832088717096793617719030513657878005596419482309031174728372536842450451203259648728730608096147384881273370662723663362875264003577746644661913406855412146732970569486034305277418182611251962541160380503275716288968305116536423945716571005440261928346390282980640717148520354858866880797378148153039478380701096675742463867161921999428971742059624888838585137301759198976862485234334387388194265642415029540900195847368637044311154253065209049914037757042958131931704921981100385549440546839628247676310711248135983013744090538959716887769849926102068721937552036341228572004826820563787146842830261318682448678535867392154141874140404573669199024696698301599402978262803217325445409384258330335293624242873682566179135456991130479660995228808057949671258153474364239578406226305758716035449877168350643242645613497571639903743659307842080919393958495498671793937579196515616886523303332178232323365752846480926781877381018079982966917748431399060531124822868303008347228856912680904256342996366369889489269148720602348463278029939273005665134785791077909294076536235012821057709055979413938485748952891798158507024670305760113794921427550782189937272819706789094767056793002290171676394020382178081097690733087740625311515585351945403392216634616145366373844874889955009858499383549395212366118151831311833062346847177506084478052427575540557985449667554519420901960173280606989610797295171764665967907321703565819594982849263044162726247649188062399296357318838480477524425075747342740594512872464694625136383659850556520336410651342338198549942309871351375481318203053318068052947360904051596899132280627969251199378702571132164741894390199157834217488213448124527145013351238376597420676411314815969729981241992811385865352685822726111185816584815192257866131019687637668750982505828413090800570036186122590698018304386155257802842866484665615501566328537577370725134734088319442509533819462828068108444741246123175637586199348187904652430358362383785944237105176768503192301635293328584629878182355345310614378187349929417911785843483398536081069316914215568474978334930588167190740368655998745462614926550980036695057572870127785992422098500729292243170598509868913870459384190932713101579469372950855217019014961337019639344155292408857278464351798652698586685777330485354964027048076012801827931213039217559563446875422894394304906436730063737211101577414034662010721595774747410315533442581896023336785018145198315746262934783143092840187375546075282478028611806442654369752376137891231587655103980273623365443208984651915471039387087082699870812277169658838223324675858790858376814873433985186499679202152706044535270128561403197934737062763461025684290292752029687256310446889948048867241754800233075408120070312276097673285426700200027368670341937639811808774356598519810760294023198060008498439711548957732043311670480505484342895694901839784183256116859219512375223649104980734437558334256748312225836381451940743873589373757082249189123297352326856833929412505560440656474652551497805212123324832325285351509933924897772947809405605332492160278915455597122777162765961589343382660273216755146740973766079833147623606524391261319057133016947075369633885424524996918134267914375030113447480677305365639055705991192771409474196145635542768324754577904207223844888396904281382955710726074624427590382784703424841218124074601309706658250432908895150334672299857861480402306864820888160914028377435491420401209533264538191733595391684817639919067306367690071823062095181835692472551354520626558094252239029251329148757043053859421463705081115127127999115971598094078968561159194134195895285197339589111433396004736339974430024791343683018427303509975520322190809075123647139799690503356126212644785253288966301358963554704317374087952115641662437042298922355961225639027931377772400768716909598178549019547387033635567302558117260389832601697973300366091015606828299641888039459299084652591001133590261593841044722060116521834616753537505080442328711264018643068078559237600262906304651182131303476498560645281750241378920812371466276131824521808997184832321985084744136346683630182048990852831587013408806796028065275815410117386916167312088425747544535742847852335179739641976812529433176203049233959426901192138354249640585344459601692885928064210376722748956116529946707051205036504072831773470774499440766968743822292702354747100905612985128029513832366697944523361516181798244868161439380723597143537604292848355342460783875534433080853508399089026554540493428874879470912918849184131423445469322363325311322574007752805471473500998792329116165221558949122094285322304662568147421964399855251346585978763305537008044383892221319232562274913422364006593434063553249361173127991244375879608883139967674205186792273414552890027452052894815847751505506657457197711520572664173313148348475777676914819909568522382967405305375746661885989265051712474932596715229387321309111154259420566210034812017469678082142545453587512221177762779309677205781757763830879042508599110337814181959773407379203289478599254234105577404430300520173653506478102245581386873614003708917391131843646047784776137406870143802315914484085997414778095370485721591713257916212738044830659553620846413626702148604176402176064697168888745209632554362757348274237986787655159438494062781181176844547706237807643148925060279523636719320037854955280849199825257009830155032623862849640060568037202382441861154321015781348914399771465323995381557062503261931018003324455253385953187830820890806616965213177832228259418393842622653896155648423295518271222494636362912873265476395499301600638236749773549097890292294010358340251023833359854086265102473415800104165168593266734682698083016710918758216706010748931636719813097979613173327867897618642894777364592917715021110905621800658196807745949232751653701440737566839035634281928441865610662848454092620967774550584178644110800014262752278558776662896533545260646560342504226319641624624033846564203822103163100159356241569987675232575148225906915795464272975891588151632659360503502384202851973913392434049771387119022738812905365342375809755563457610420257377205708407365969252353160478259173142015883893301908240996380647252727549168648845516375174648271312444667055550133553326633178605808907967354537416212754465165667307832141770774298960360161103153828252294735635692249025806915870493833146495019309311182391624240421669043547086372971019504486210842672089761642608588676676977834949096103565454155671860350974512861184588930402556675323686871156440093685811062758654649721551198805425289088127994800419698437607576549599104065003472426345703015662973154290617051787493269597261487101979951631356521271303514374944015858672915794265323194722956104890102563504087358610587118660270180460486351836955186258829820937813018845862515618583566227673987832124233348058040487236202806769450734987494638501261675738385501240752101542385649025873496236233270837909484810458056844279837272465550901297934885764355272023532222292615394104282261199614595736181301382845632074899183599186222645547219871801077628645474884733020836720601261925580319188747545330924827372804649948566529449794710927182451856983104262227677705225503143206422152760651990525944006214223878335472030821357641390927742477149048747416084583290873154834308912882542112545043654797414581549764279031005751598580489765398097995647143282526981483431305134079393415121074784280927965567774468034533336301072092534467887443893264665218399136590070670638412469791846427589887722786964114761094619052337673039368699391662670701329818198656397852402614588931847044077034483683712129249277771801655305566865271162163710043797312182289406829199741082946298507461743817114778590328598799912979003089451227907588908330808129970401764739001239680701940652691338922716684951201494337480272091469712061914088812879062212810778554316990635248067426653202318412669406090396033499034796952604113809044866632443814010710649019985862348665264859293142499666354329892538636631350479729180468736463660657592956525743549487496709603807852166858269548222303238215900414431750522659968318404327031965726492823205056524795704684184233069086214250438476395278107662417117021263477093658694971105398776106225393226062170783711029653757886722780054008640695206730752493832247834096583805221293602194396643505128562747511177922886763315571627817432603156138084230027151124822522277365202337536589087926661178862683854999199068719116216920062893961023245723296512583879193059561940245232893233438196628693786980383137083184796816502440991658379995331006330823749142389770419677246604875476817022551639301351741514642886474037269263455453165119134697171399089670505754558046021705244788441214502762213321845373648182702443596270105413108206439478506839760486259481923637227752766049880791694875295956901366177357934172703527178746009676662475331368314069736971395941888183440802813759177760021571342294605304979519856317700280498421078027524569485076851031080691291361751321788526313546869309386124429884139499273889973084589229601649896941583749359619271534942832930848514772478138093250853350405765296522918130142151794470995255111228667072254638372590636403451884363160866764911715489664887789766011430065759303113514056603294943677369614699400461745420105599183646396841578998473865519627235300915410862987280053745111405488900047849469102268304247940039917549939735171087919227019040158260067536726291216741986499529565792750070309549895035284349688869147205454038819935566014435099106324311058481667923199442965855395702333814805386124712310635855045249141407248739458620602249565132414539155323256828467564010856995543509425428140768549676660777725757764495519220896854579774801780372788994630573231406827949174906053313318251344004169541821109605884359293884481559003409296401804153891237880036136070809357438085302160795599488899499141173377479842007312951625330156438560024555751786320929330233175510507024784273701670188864171579903838490198296289944656690156253124721268417460398630724924990423123996520396160150753569645403601511579017331108753048495063785202397692832645582152020622308087955883695964046800800493194899214120116172882206744524304614096683147496670790487793209737890198154485851625240254051359192725013715965830633176842770748850813817854596020590040966452417135296523355248367723037765571685572362087654847140850855879816792648884356264730470515891211425850519199285574222148910358149269882892138315765454177858359793203609472272346821151198945448759409826194173763006852236694778378506609599090288286446223586819066673336651850940346050557998062967866233359065652567213571917845254687531231881857512609530869939865165317135758084627668738580819819942741377477654749827726461616778962315413154800332937359948240846495881912096928715072108389969166031675088164351708783052742001074225658552412596832957897932643594452098019942470439840906580719872881865910623289775498649918945623924475242049051330475379752611788316138090995704924658968672498925592653650051888254246515468150728496443282212811021733075944284485972605045450985956126518135124935906873531505124103367753026595395518431166885782427033883972478113300740763084593363187102650570229667013212768262722930016784311712361433602384044356819503420086726068939104688068805085699740860675125435353923214201406991700191193221924200710418448267420437281644763930500512503825881293729652765145121690902272482344237785801999290892664983184395429135499100309049714632735711962221115732631125610571204371428944822677788454516744539594571512805422976070919564285437327474142652414957534068189491882080864603503804212968532018715897929017817661233469330982146440428814657587285394132253975108186786597372430495774297368038055183478171586334918156606526651020020570490447435125356077171672457914437915736639758325120643552589618618757850773701175563689455461761771518985164895470337804586132459040862771912971886965688869228801121068690412003346517171838652810450571041928538471412035597263127675451954450517853269054473325030054321593155953842924198720688058268478951723588008807529142136212348353398007693646256131019079149577653327854312565723988826304228862471386271491985738892595838812780855725871049093851676308416866344068370899049716104180172248615801533672977799538668042756927804607059015194497237260759860618758735602939930314838688509481722099675963936545300226910601617440581653748734656506547292977348308071370003631381922689362450020003054383370445515308856516820249467757384343642816241579164146405220131823751822803423443589009058678984420041411916815486911771405660001480966930327070675948780299231256688545372619814412199185811383445954144603707775354125835814295196501626916164894332590984163253709056740388007381947843265129358693013260310473653087573352207093242798092098469495207009640722233086682219586268614851596187482070775662130308559526998431078829854229953347323355637205393539636787740381324842087271898149756091819031372485664774385043624398195373970094456127413346255707374524466123983029266707268462660387957125758152078572294639756617061165865461199267673734616857788661734718036262185253582995015502128848811327051804525550846977370524949789784287711313101281451672981226051692619159742047487770150012527497477376624832180096688049105799425783519062407321694491932140581775488809120860507258867914870046667180914077749125111126277879424802515694434044658437981886306765907185377584116599670485659285208140949392521094017960900466379423877346335868856533357385250361048204789987115497589800044726242826494307504131889309693074537483889428876427536664285028113350869460792671774896783974886352031121163313787814619346977136207650932324971030003307838646474691454074717332133539517198231687598533783423786709895941643247623255020574024389784209450243248959584836320887378840559674631114513003038369848131153917431146540969273394221663021648827657197648798102068486958605511019734991005165580345998892199832076139578611333424072725520966643086810790930566510128999241013723089966298234532100107910391332700015506683320902956365055109096669039521612887524916317388083367224686832954544138294846173663764680620835296602743952870416832674688783161771204307473537726739791333153262276677429460856299634942226158690524461048012772946233087417709260646766588824354503312336539362101057229459697213296299498194347997601225305233125889227810353845170896838736365329234737582548275026649378240291075834423488812761146498182762459094948248440964399513925058688286710754952584935111473999014697328288406790048909068389947538436719369751693387423223062383559803292940407932673091108164499521999291847056270201078802802512140643457724549659663475419840848320131646292553365512921959798048583589028130184401442668059189021824456098976679934665072801548984607864524504519954877277690241362004829311799287907901255567005668974014766118255648946699115806833277717512122589892271912283581310850592993353700698788788690081563533220237075120277086647768013918138418942242733407606794738361977867059580905076640851801830169168972762356504070190194567079560767802481178139752010629551401589820098891448559603426583601273692024001046704917691807280083269917272556191684599872368851914494492426916038101183495846336042952752868689012350541914435820804712937932140686466427205329335713559993843041943326217073837265978526982366112255731591952296164420291882598573833101913256826650000191486710543690529840758085185557255489448748115657198046887229392381221441040337751173882504327001245490842036384706767694726931002161618014485463359227003058616560298537641264412076648788266542949594898695455181721146731767803747542019582744895492241058051090221359424107408163442675262238820026271135717830918410574022097780570157756633780000516711446230033975866546817266121223172903853189574417277924750367618871928846298246694145714399723135369308525580845446784784324927546603398461060531733797841509283988493175451076550328378273229583123845510364560383248686345732444809526969202904155990653825327890277828073695771141903308093535461411088110095556921501972763295319975787079539523968667054479084948013935229374743004538449499776267399898580816097059592868392928925681471324906053149445938360460091469975133825978069296830239889635135617158365907075153235282290234376691746004696826045244551288307017886466986523555852650800537590365942996150773645501094007592364400295744812988566403382835641561376179725586424938005937609546752202501410592404377707784949211189596374559014649854319815855359960082998297310512987441749828743510950392522782489237620662289473420774964082115677726247534814645383326603852417095662102133470430657671425855721883437023089157712722599765053548145227218286208640175303558588461718260040271481214739554632422587249398979189918130397434533026950760862737442120460366010416147816579340942892269156673917248768597686874434529008851763160908926409172091096751462117463309241624119465528347042272690129679278392556937587067112112891286655886423619520959397648106121134271966257763528024780971548236879002451183423589589598693500439873325511764889093452816840704691502272481608831205481555154078685972951255984681089979137845098186852830047542808121214397763104100242781454141172935272988442667603404940988102586803495621980261535981236129954528616790087758349301856341324754205666205812510214373771103271867607430295595901964096082393732897816235579717487295732110591313716615532392905391610942223374800808843408360491284522212338665053395758137500498822721869520057874766088870620755423130174610623416872953158840755435106101668589157491230674417793104195369550496767767050214987623873862272931880991382467174642031328094926272244892641007825682994626000630943902671320602276572856774951591629292521502265929261954377278097099919912565276598671542795422715691112492596772953571076145812445533998900774891381355568849099432443134556346522562120919841287332360540752795087007654973880447747621993916547223819464296676237570919135339209206189557086451573565824907557602384736863077840496496853217622564194389132185903859299938164954525321498835449627798191013435107254573631703194905745430627816722184537486312916570779810526472014808770148957848314784427368849540404893860644228878183222870994257828022908090767686000450640130578492689200808814141563293163122775427726897875205778141670868361955738092157476729857295651865574071580225242024306584214407470887637448285093110350866468528270716408108494398470695623009569624303619191557230082860848065131699688010308147320634046261050427062630574082326927941902281781147004296495439714729109597935849156618237459358006823819260393522051586475520503076452753600656526334450772637530995786125692324088312706193002071753174198759802946052204739112107395742685657080225834536438705588553767092008469205012327784012642954391021610357463312663002688444859493735607129354147076357778325390026258835000265038224726905220510737369431060433348900464735197962783093157217701006660801189420271729759041307105642569212186321045363907203574788288046426721845969237191610553022758644135593016038448202461773841103520445096927086161995266588253200318622369914884419552198701865356903208596154801438369676190560778538039200689647433702883585943329191362176884978590070212350769486604880900354160407829192086924191761562520435833293157283309875691081639490704694342704003187172923746576963226643943151993501273484892231738951666714696324741484823376799389278716788104159480662761391632114312001278900745397872759629717517766292979321696426316252390321224509255179383675486971044490215256953793027065677284213623653289188842291788056440948484967938625464129628366030169369574836478096053098609991186300359193213935643000795070363145911683227340417070188156294816220799527793008078304580957991553699539391543715484063202158674531782625291019792361416104989501357673477141429489200252976953252321242372485367192793174011588238791954011421443177274709813635960673304960774767348557379781746759079408936879500157073039186787332384681999790464026157175253068153991905550449419954076247583601568894960719240832664009765371078480125189356011785511268014744371191315584989576885324722408307622338861431090850678638650553569621591614102833999172638438661366493498653306290257866032212886727143182255746817094907753126171017735466927477294833299619636483241255940394697703209511813281740323085068638697826624281866406720650401450340266405052804195961146095958344151309507021093026518549741373054392191678199324593563875371181496367087876425677937089193884929318293914014849691128716891715906354116165553212053528195460586378989858291403515223275058634816243502083014193999296549727616511153370834433407572967344580918857630865725454246166496877426056183348414068868790611187273931672337254960158291679978455869064693876006143135509861108576248571169641395590999184181005607992054453937559553717049121717514481090953577762324628708802277721110632013426072281987548724341668015708767886597311321051983350731515663228510489710227269972562207493845034428417914050087267383890918776574954473103653152344104732665182542537683770904623752802638417793635240160562801337036100315769563780445757197498408830157033543602484540471683944903747576596579879390176040381605848420909132062855457070799170793516370719560945230240096428400577391104728220408027221091234372163900137608978340968251572079531180989157460243564282333353819938709028843318502667261093367178471550678318766994632622838126435006056463026694926898129768972533128715208489178623827938422600803960529652770801997750988807398308601427650206335691781196968474215966960586677969269814054780253052834739975299061333770783752366087417328570610765936926886511282999625720805734325285282701481386649561155084943869273211465862544438824838303254560386937916713837967110250642027553287610712332542763086791705218033203196892600716010107671266574340529006466048979057552417306384914427708364599781365544202610689354116734077563075025918939343180429465964314873491083319797344546962014858481469117215839089874354794934597024549456120448771317282217626422940113923245767735708552587038423939612318256122835345201530775570056336037732389717472000328041544391311053802223102813883899332384660291548195983194896437143299753147166360202700711872243149416626930218575240088676974848902713955376917778959602954623304824620494345497154688489724493680168902208341325561411406027194611108854432587708461944314158100854208114919309233494094555388460766871931269783587456259077870948820838994891148760127736192454871558533697001004916313346664678182668059527738192429085065733622323353004254103069618419404708634678129885102584437336024271141959208232942150866380580291327335493259551278406870497615261268631375074854099820775808483964723504162140512522276499341533692207497195904700321479584592821796987825909228680459961678827470213051540692797892044813673284606096234083272944462952621477538356056012548014100329246950649310039729937315691881439777646981934522940284902234044880537971506216543056617542390196160146274212772843851421942991380044101478497381716433419352958311013707914036517681232501009561864969457591181216282494492689912667486734380218798760093808523363047400497920243345435181072161129396493989003082982617853910577396560493200037474076306944847231803766665576943871615737099767640074208774525018462788110148763602625325876417638316396052925792106411222596008858811256474198141426447567967058638470172790124862766777335052159873381646279770282718486411955526635997042180568370830713165917860832174304458530999659575505593700696066644593574814258459119740213164049483300051559690848161103944585053783620585952077807106608540173964439065518636885967957156500864665574967828932073036979501453770134928603107645532926117331477901090105669437776396197429071651255876747646208031720062205467551202949828213747105685208932968044169354968376704393817445327928637228025278989547007893047692631809729608891086871647186548385664842063599026684237185485977196485376369493414095076327317850210635855196509734223809834570043359679650025846278921457650825967680661139160873332963451465056093456714387130099165364360300431327635834321240644170754329309140075646521058130703320423752268011080439291201124782912349097114351342730207911725461134854644638245400337832347605843067740806922830379438821114521124741326477923975041012932573127960306240771612030414132230081671730237669921187188926785027025519643593097883884367546729527903860962305727799839956753970299757328273051197086075893731534641987988291579775632818945045981175781339892776623449915853213838432447831607885269087363072545762110639603249277816845336248570291370087615978996178328170503039575804069707383419105777274083476876353256334784347921683178522190643220306778538155787921886670724918955987730982430332343389225060144327209204586151468407367874151467110213684626115658780545885028337091437865291423330376237831247891116527542614385344975090358623520602981819261584440192422921978656308978058272138797738646864052343391545700755811805474648233477370924013106960726995083231319338608146425830264800625833510131133624030028899612103053511093594620856140045747525002423310873448736758595866177467013346154288086888737642920704856285510790198234842582557792243312826840661923533237505998038905703273838533934718405790094308994970021754297422106123348245869879295218998908644179205464861937917088024838428897436400890959450451244350906164287958376055395062829220679580270011070020159446750451621227070561997278973476847997663248000100110094392169408539371633262124082945685709426802020756389894866450805328852104734500404850083761520348123300687974170695292733885118295062812225141991349261303481254946115367371348886000840370440519445586243981658509638272625676734857883436555005372643966588822901434308670284875828475626659121162587972036172802828641044185853143614363339748381139189797118137406191423552873446627899083813304783632462478514426983113499304231474174648306482498900060979615774888150417363134014018547965908526591933780151678574680026540629272053606295968634188351717584360734230157300731008333990823781008097235016305873883608912638099540029578471636541004108874248046446464160361260432945571070634988690256878325061089808308259811921155581580069340017098835340560130869589030103071818477026635303706375559509508631242337817275068718093892348240988055286310933880727935697621050207328226829113367178687627670614115738029504556270409955704047113398711077389848515793231472997504376120747732522022399510355644140314908443555553767103945451396283745475393248427662523336443808530983719159612036989970528338351950384084005943169223987301311657463401264393441709069025129453380134695786528974545448275532666514487862099029599812744534042781677106761665183320886083049088245946441321529500573336914615655106903263979399881815380275592932707082256369080431480123779009367458211424659023286907343618446167066209560485976729492221945231921785476783947466434170491631060533324552714362460414470043910845924110787114980131237183271289051305352160386774512467573744098707020763653258959144679103433912803408847184301931745763854529044178759930199630996479691286795687338968880302904052956320282578037945456763796272186022227019248192302694872587917059932736580389169100213935471465206624831863681979731867965816748782108441330799261290537650707225471690992337188142546444229086546182008799492499099766345989132747553981629659689688061803903846856902645763736733744313850062680341336214585817542812364158266472236592788048602434739660352789375105601830181993902741583460924801599272339983523075249438075486668434040034003034655899731334172804331698677170103804707499241799971965290787655203514689321926953786285667423303084440765138257316687431231519243302175820927539170483482687979870969424407141415245607331419108430130899257838897535803714619191394998834757788142795097383305953531761432834599120423788667310728121057045948651839236409260708282601428106773136722893559608993151684355736829810530180475350797573933661699045087414323345629535268042414191011403597554432897346058827889050613126394282503310609887548379182944426778060573372944158624008860067810065126750665434108840229119259229302711555740266734087741457301503560639901060474728225862541933596873092228015826186436782144560362454588316911148970653983522671733392673606070594234288021958437662233627845031065955238677863962281856668076618197571918093707544253295680226076057527847194745013143267060207403322615194810393849090143036323996702458702732337965181379749497730446374707645302222232532827055774672252242538502991866394385010332873921137267926824554523525466785554366177015876475345541859113733878020630551492437624931397663665309688085350098473107308558684892541579563855015040488579364931860690389150808395173613714110694312370074616766763978551903902650003090942521139731985709059743587005224847200869912168356593207530324352561541854825748047868287165792623517673984459513249196763012714239061557053251778967793412256367331325928703430744432896627065736565365522951704879424244523786861823110424608287602860128697703301761123463490223125557627732129318616793208330945577083615278961063658693946982146803094755935054368306642307945762328863255943990590321941378509956580238645828871685892184512047791666324112602941346577484439220071703049525885627732251849779490662777116685910822572534523132066554967068865761772640528605657329573788298045739856948577299019140625388544142570913262998966566858949609254053102482341723454975292556418850238370037000622598728283718789986053825736663179200948886509071128402990969942155402949915422325024181718431984958703351124131831426407091998002185876064523901299317394692583720827473131959684464245471029780191949987995656948768229383858811088085103283489707209047052614323088786022662912263344130533679207677762689914052118742885914539834205730434440757702052148715688844173368271877293039296348754642011017137355272557431150981360670453628973199439122369883040700233600092021167728595914063156060070905243381875776395247918847966498856509212778179000142617121683667634948230290169132265517378755729064177678828458077914136800543830659418164348351093806598179992214234120920700416560333590051885826999547864734269106243005934952375239426255344760759310664927370412351372116079235565182748203963483457408708064771371055387325935761748704469514678579322945327472929154188983711709959251698894195403055557918821302352725716453451039460842404068197814000279132414949727093607643000434350742695141176351529515713182239907186806546255166135447756593350987504129475555704427744276622067749618775246298551267240809131691046178322949889032263085911400456958679332804931316008600692856118213911187071124729440680720977455043401622362709446354325502904420023822206175054542948629679806445510886069572829074276620851802873926784924672084546063039994881595578506606150957022669927727820807753707460118240503276926303203096784948810689123198122786220513837692736005852731898530822229536005872132225191513983852446841496338709999768350433435434958122112071086511272792511407954454025006480174744792132428469308195234025855674879875094489959797283512368248505890273460989652228809440365903327474234628761572890802675590022098445352213685211651620233827951688086098702498334531417315576104536060715560839273343149730037254197972258135411285844014636039540011642076869119824998565824905451510890888743166526464375274700078620532930589796349082867041310459799052272028473724036628762463473736871114290989049546552260284361710099673203552150057586590336790908937846261877660762031810548106771223577344688102265670028341562143518879418501692753859030977433011508234835572326641379570419904082716612085732467799937539381215386684423798299619995899267728058499414770258952438664666213756207514227554293338684590553594769638946812437329208098971641403883571188962784706613517558390908201103436160996618876572769634947164919785987925183264602222050723088818107156520973931427788672745947152071937531942211053371220030797280796110332841403642500151572090340374079212836313862221046718019155613153072342187171402971135108604534824605794168126750994276934512663492301018549765735645614328709604929887659759936960753286196393756003914222027430845980052699130108235442972559764154621965231623470446672901534750918211836504970662341500201453140300533798509093619693359485595080851008542444215141733383892031857172584222150693959019473908192813789630224135278357672427523641353787340290922185171086468965313614629532108909249104181239125291929417950340259922013063560908756791527547592976715529095101399731791419985430359395297873614468410326183127103319047187732445818322346657403840058081030390258672216373623532069881823504363694707725060332851322586665739634901854678447576375044605387449107300975190562661142213276325186114809344365723227329127809694821629410199064476325207246161905186669019783284782450932151128467695681707412840596687069140657299356290857664024917749186273722481191500985617346250803495268130372539947692482465245278173005123831012636112966272625808051161824400377095833028498325703712296863309845038804632736024177939642667281654761020795722260658305332234077023851181784569557177132444903006970276709685397563255743376988502083038659884632490691165892627832420192009886194177230300232692995320064567090846576871299791395905268227217616712239586316284696370925517306960977605961079388256934922802899080484317195772106194234038520961611217322685466411202994321144653443056852995010541502306368760800661621456255553221657342847813348517104470988284445651520301941907447466882676206374954167297218571786748535931475497336282618644471046805017171580234603636393475201568483435275784698895367056342729097933428164411098599232663655560482681070387423457370049077232846190339860386246327475219894118921325990811538119660546291140139922707798021314769807712182920215492983936742389101010041325853495924553423121638492183644716018743725581851273549764886438074972788415971222708275878045507097508849765546337661069333474582647841423002507785265195385499220721394347771969909949405849576571766142362891513345243025668363739219651101920768643163686322604458198205603492467529566215342548569972111665944377926161119542555300016857721662623009419929036836044585995781903319320113644653117295366964304233286930948768039013577006104137511402416989596052471015115063377992642491792828387412805605688165597213764183830594211829976466886009250135536908006945891791850147469090927411728726717758393893614091679465014718306968367486101110035734207180702238872061439278069843807550595057580975644082162372324244200786808954104545262397507699584995077292499249778773154692528728803056757901843382256631829081570889548938346730252559608015272736395046483963569239500368559107503380918144014917558916408091355527306845129778769647563712965682570511671992115316752783207012891379799858074588000052936701767566174365800301426958008813914768388550168552624442914613040233256485973879100523165960243811497075026577845110291605937231041393299571068723880005430033873344804071643783193291919120046879812581154268366584279276973370039767745004112445653889325119546514431133358396670394357607936932280621813632518710597612070193188560104527210597084019933950652120364386147959783689019579344869436154451519802379165497899620870172188606493173738283774647549754225822700253875875660406616758153730897798920197436003549579011577502169746470531368621183715854088598319404514093071632359872168446136144289471540140793400647126374021962136533033039657475497955878976424668883866993567434357340731302496421823778308193896088725367985242688599869028352874773988688769674943486027978781175633223508401284756185369614954118206499877932931447204084256445220311340261399180293078796723477975517493276182856543532922305440027698780805270213320815112726251248735154647683363082654119013906430673169004147466185422313347815800755852901571009924041784987088175362948632062796492221069137011894770297310697844185850443824650663948510597726308932753647576283866224859212880383089353382393001013115930747223904742039317893044736934176025058997219098032719431553420954279374888719711864922384241330955253540006216663043031663494772474153102419142382147737606960961963641644427466550157132737195759878251017150894213622356353742855749570702084524244401519727087979961779309278738196991207177535432136211125443624851456313315940216295217042868982942287821884917841420055922385726346400984440551716925300236838968307438345775275193665413123823373612022206923755639660599698920527713122407403628778541500501472018311882858904380528679128551162347284888086582999300623335629005869264564575268233142057612971684950929448512609228573445151874378095124888327489936232052294517202741528747457882173941200506339239251876052949693119603106443007685074977419963857350049085489362922826995367843955018800629973646943663762835609481222110218477366961510785254914403559684145086890706058820397153605049711488155350083775899614122416502335877990382417000316608341447242094382753461322822561767887521541694754314740216970387664446114038773421571946389021332068086830175998967875939682474430764262161934393068072888206350622968053024916603384754093371925819109098381939244277789029949593822228992688367515066345548737326152906606093696641984216324809881753648112458323583142959915815112885122928418910800754585346715321197473637396748739673008101955011563853126470586308074097137680105423780456212246845579138866033535321999091258529862192566360760178645401598704438635538867139917444119306609426000560158040215384317169720371089356869699071631137811776596775111340134163529891944351448348591267693796973180298093548371379816208217670575862346613445103269776238731736099655782399478568020758142384629049464123538776855420940742989291228520424150012720951832855432157811573953079381737851136258726177982354319507603415144122672555499321254892810113878949584722985614418263643386522666410836968047128178877872439056867922762079452576800838508197874263713078416139912550161835604399697842967724835693863299342005760047548927240127069222942315145645739430093590196009132207011633538225011962411595372030446720954250188667489290779591714152421940588012451666568939966267668798552962037390109489858343441919785579367217658246397090365599425096956867287823830720481508413931883148287671516728215446921869641672857891915376864815964505645297248946703925481935651338492136454732114143021306510596839245314576626122445450191878081823636528906220285889963075043724737095126138760670039737885407240797851486222099564750737553686776783401885846810378332350366922332407710682875768885090906956828630461985974792108286031789932102810441158402400054591838566417503931574080328417065481680066698752740868210117648484554372175613151668964816548013728857061672520335856853208961946425012502388083304766516401218678782165104817106436629953430670031950412065791367630752036528584223950173467112565210581910440399775362021893068053837279277094177760593606522119250726903667418631895141999942820872449117419687756417703744639766543699729500496139353995261183000332925343913894051321482860282997498065958244292733087114307103495497544653977902673071911033202513601880559083180853412889817543570735128906957308052504886671450202448601756433519767697318849155735197910189339776469587403544578862406184391523916106861237642788437880386498125730372743424545658179801908709718853582433253884049952350563973688033021452855465280239106601511640965108670748522442641902105964870528406042427941338100367764440630388882458064999586679192136414882426583785163706532515408430190681973619320193012170021249830793777702853474671835930017608121249286594165342229143802437427311686794430861694898944352790920865078487459468070633975575940318094381093466172314600155539082708266146075864762741242181505336184646388771652425867557790154109717377267939269387181146168197821923119310024895204059120160289290134571800496145043689406550697706650807757167859250961541868194513339519053625668678589641743772006117842051074458647621929993020472569630806496074258030912250849052721168840252458305409369458586445243865989315015207117026275449000039717375347430391022694118256006554480721873434118406555278033569693647998470157314577218773029341520341536553279449730414618785211905281593272609382854847819379735370689704542032570727232539957040047606842285028638062317981776010041668887081657737493272580394752546179106290523645876044495732245468157082653097792395205408208559317361355276870903400643118159072725746333664844886489897444775976050529442105083122332978334841326755959522583956496345711817101475915901720496649951832760794093092814395131982859676090093631684749689065831479375877934845110700216649560247484949108163129149515306952743954209941857528457332260061170009177381298983011838908142888881104680554957639974482188187239465161527126972335357909914063253823484974026848729878988369922999405676986404451277150194035361287573881988159725605468207216426362531212723224156963361946689146971427325914175329810558500793884180953844622562105523478736191664413288201315247524118964334945357833158350103787248467141929508020715487114969869453131676440667347429236796040113851331187600267662785886991805737521529057114363978614805441653955636577002951570034868336831978522066435766689140759279179770252170085223594745116437956474847805365764801724668018952641463479292799612491228545184835632077383518171654149195389014004277107804515810929790495773653620085340773210751091858894863499510597944152753148123271906444232710287243195612763535074277585293771515102178120503843239938101769573617768899617134957408069008920918792578088955141724419183428504940100622536010532790161925200899737486631729608748931501371291526878423001562763130200718252923229671628895240551518168015405716326345442904785247551590674851037459275820626403752136218081970907723487681621581799846200780012641417207758506719637771104683525805009478415875854284921714487079863827798762794635243600049135741703555229947784099357092017278122151520837162688173646208377942775744801624048968633148724300715982015279092811746060912075066836875472538558571991283194979281078937813094473858876301647310059451093625485190625309881373028633448148498327795083197087971798333183673498022561160764695208189338241347295310342637600540674149883654352805038862313865378642664224508992497087744749068584977204872775145154022297428346135784049640587390184457008134104103031136605625083868795313415686724196462695797029576222745618150282234150801495704748421303849257371721391114464094521959171434052830945822938361158183717464146410513096162232924129459258738245416437206055456148476687025781983892797234132170984624058279121545943959491327126979868303817852756004346516184501269776749437446177999455169447898203203279945002291349567599960440030036170083862949253671859153193371096412467777242498330115780066680234523465554150293821588479721042958233586623452941750656851931045195929380200423391495359704101063390615148726046592450295983556477648673276775477239501033818176779658139975100008596052892620965062809825588851138817037848356984850945209008255857693108469400019522722440814703824137620381421170362004145255055325509959798807314794788022142086492930816631016892376568630108492176352718529705757365483003097685596772745965905653283419096405591921899933342414126511534060472815442537813483064433886687950807988539169269100862609428602450693598776547951827644779401806907538890088077714002183452397677369428559143052890998909714344195781200852965560039241427988431293132237626638608919920370163389818948519884842463779091777249357178976209278204304689314730752997731123996643707702435128621888540109336617299261607590187884384078053585095551717614748957632374279360698009904003682234683151487657486886313132283339275182352194599095875019818632758220742461113119687628404335260874518835446668458710515240404782834133490800020920445962830433407915209587934853050378026743134050125231564789582032004444348271122143408168429146956526499163137181038749626880544994159787755178924920049179083289689004188599814890983773289439913293690173229751852454198197913472004897745189944168752288464954510113890085524086206195854566280965865291494539974306016692728433523535880019022480762052268124881730941149113850306579685250268039565141208950415634145945425463776894306889065216022187548231746349966388062217491318508130985053022362420316577457413706489051396362473790853263080320601446702070709313206067734623711396590996692382230977974824054685930296915854544905794649327375159086148360814899266591126830969735495188590547708053410642224444287233332904224490765971860889814236641505630140869212946356941454035888780347260119656208316449570419580419081394938186583590144000617041451219612845592756520911063577533526368212979864824449023055494645786639517614568056147789764669599969031104253568943712880241260903308614739707798871676494777396756390519665281830722783757453776739074994005335811967078943646984550773406362479855887890778537823315369340484035160341638768616671572647590596567080610647168723088026682764113093830826783392179992066851821759729965510611522467146203735197803203361974477994912962879630494578754191549940909872151472896062644465720518483663893865946886121631651404407725071166774590546260064098738776616034801416637685479217825920418085754719559123691254828081567999437247564325532306899750864743611347587449413609758214328904375475533788282745736838232977034379878584485915786404390998134124151160247913530476142935853061622870739253675448739604532784609925126219639812523319340980956114410865527170038598300715108108183592116491937787393536358115501995351366380503766177874234468662764221566659196174380988542429868289345282383269061106699274155470045636765500337891728335419078575248675065105204881466930390135333405292476663429666955041425538021386738135246921721584337119253256814639161231831004229519285362801095051363000790728740067264579535621906297532360303648917930204942057246678684516462217118431865944004992437568726835652233205813152537832222452216663584074348400423294296779912271692652767619890784802954511043622363711662483294417479312318784697450896279531831282505230799753015824388176045196697088573680030355691194387306620586348303230198616403463274472558658556855117657565192057546672792646036738226646915346949958295445343419228834662308771313147398429509117792065935318889924227880806565454821323200515621666952855302464532205804204890386743467542719773875729777373031221604461272120660861823508918529776029069127746701090691300547253694264489906856778609643453743691086774749750447389233907173069547695676419401487887234620854929588114105848122967755554260070465036268486671551162695596723851535682991553380591568484463317574723225908917856200456479858593319251788280458830044339330883813581902387924618829850660866164605496398512692923047614024113210737521370737127038175598817269532731658004727747403213305119849065291858426131189906890202086214816005635066690321891261590123343382363497712254511146641429666148599658796484650216133022291781672174973712051939099699079132632198028516654729386601814288431344956570606293954645955125472781978999999508490595532917471082986847722609079892577490991212471510517910169773517612688232198326953499304665292679941923718811761834946444166000176140189530083994677784389866201097641721081289809599254352116674409780387288208514274074885310611129913209813568714008883040493556974258300109408669649742920495843691252325866432324240841136103243068896541091595024047442093781190895362246236346085041013374905307124131552216398452508333742175358351295271336020192132648223594673076770242108328922902032909159211398493222879881903246265948736190648683756647351808282245572705640397942428720243710919265557743544320513321093721218305391177694180956503155763133203480675008818415870391636016047144476760056211309642677519684945417872208752346479443966053936088753863328064481713611719051798642465553290394212217127784150605990424133261108404919942651657592568994808483188448775843724964561543998873671458821777116945864812418133115293782540152021874394886104223425507490892778737722584070389198797910105058773478002172853543633413503682262322836663157699322467580643159720771671900441322254634581299037286038324910665190554406909891421945660734229715572927083344079897282599017878790777246991040776118191689510758011688088926617410434725817065579588468446870712160903571346979418584660998726298340082568766706136222839889341613969866542929867354039658004874851852900075956694397908851103501367791374402903493975420456805368280555344207755210301129382141486471314592853362942798392069059253700804748772121772136850273009745917074847833751732296868257853091990063824291231914377639694907807155084778524276904562643307450130577866114412048704390563116430590610316635064994549670277081475242729258302761993248481112145033779349297121394253002720471497248510515585283580319699369146057246184689849907194042423851376727168244425332876236482612708894953029677333235478596289790403121733398088696977191360681301159976776754663950966707514946299074791776255047250281308619135506822008958392765526959398380816214134575255549726586799637510397746585859698225336889997554839157144151147622606087495922177608390720319497505436378714959954825425088730188776126993011968371656210826885897183698705110117983974535785260030987772578742174580559304476354034869571788852547443761008479888732782419477100980399293002070887738992204029068141645127318246262000735632736835694188254299181898323846773156111803474671573583424920403417177204308144059564145811874077226362178117991271770919108803738084104631955076794328258617993163099841485972492051072409643654505251586449183935642590975814111879981740744701826299891480510490362631076308924481107132131201440782428231644155191932156747786822206288283202832873981546665513016453199242886294012171886250768466423305582739148592574159347823741397897965070817708273284511274882850215611378564396828040286722930178642560518108439658731365392745604046533940058035145535678097187557433457854853425424169789720270976136718255099245876878480882303212701025900332466507669746592691689580831105629881311978018555687136407351762559815503030311006235253500762066030681647875843014253184843083030495330785231567170233049785487064989747114664948479108193905690269672076814110676537546480866050771702021928979444452065872819639859565364266173700118761939013686531855664176939366515185138917575002115701736700287601189221882737036114282698396104821978986140074615578423396828067340070084442236649539192070441213990776570693164985633623314733478084229483298852032630570258627540324691739580958341329409247749370154866842593016390124796985400315656826772970628934737222042451364254422445828128647377706473083009790715112670800418498514822578147252102467286359053613198529565361833884538673955051951304017305662499882707754787888662116813272573054799585800443658720612052039187089073155423590977678877360610959766221234022310515234415347785395185025600801195966740017308637643887938099125613038965445443167365038597581977364460785230838211989751565276713550501319779681802739639034139974573888071004791063123391521521578915766882361742844775888330893019605884778844699991382666809893953163547507399820830868299993251422721356461268161881819721389027675808156912698429644983785468721728063937144809460770837788888592090738032624768807366027572005984182516774898375004330087079041615522109319727042613614782138072141916743398734789765670929415837856923717525276094746133608511686086970711511196293584855819677325423212857745948158175213877782232696570421796747528842085516499383476352035756074016120480610442643424139555404316006039505690414514460836918184159210850102842015660438687665042536690538943207363549495566677697643182371883345538137937477766725569494339062996923593679860602871717065702240701083019220744826693170962017591600396612829489332146218996841818404182742817639328501629411228894048651619873455375550074015960951336991130582642439309975975879333257363484739707064669689613710684037249830274019409873384516272219772670166515008708571152520598505887612459991067833065417234180377619674185938254916236110499022285605527219992487809911510994068876855257501379834645309614151182609422740301075297090081766443906907161159160125386116374630278644004451139168235779388725153561246484202585284424006797529604702171613324458075130789183659630261726248233363035491007267702119852173413226424575164043219433760155960134885508597777288394739721614019363882882387065098789274014712373845828445651564856163941361831197716045388498983374130145059598184588672247795753464586879863376587734136605752775731266015600830645588917207218329757805185161569555401294368034778386320007130082513935307107478895290878083792113159528938061364618142529508666150340967793396390916933905695955895141020525885408545122492781862162645342740819323446154669324981860273626873653797217914738202021458267475719308475995831743376457365013489371082264709011246371015511715357109717718842594907364715838352283200446884028677694912525614200413473007423730312085013078069945008497967900024796798853323651054610930877972511493384766723213241181242291417114000302859519149569088548740574478938026523385096391142577402458623253586216036609187707226007426327676731214778284264141438946834383117217172984171016733446240759055319634368123260584667958910718752607929919534218867988975504562083876150664661173505971737237936381251319598431345836292425998054180443094593754840703408920086158739876317532868636917366913272732653230042931832616716223421437164515062002225381003264118438213885602339023999184041801826741659818747430584563057787167697751975608414316627069049576152779100012317431057602756080994700578784613138216399018059407171395074733602568900202649506379000891696925301430844234417785965767791149246437967564809055780719355319323168329325123657724834973329478852484821775694984277667053858317246611514275227073570521656078792117475417876831172827628929808291964128551691793084110139102271074560251789419827949280473391498033181870562422176953995013016719703641409818075519669314549274138667435907938142958204811805276429915260617872314796529977613379037333190707613993295036991510370152492759775619493472128053510134944640201105344568836441648538918538323103080044810321155639227549973776036165283537387963358406952888071749336621603901093299489389433569431313352718594721719232240582084678447217641341026080290293425269285031294936160407123599535201105699964778228990168914740319479428169175651090030031780523415956975405771312623984221946663927810139899974007819053679305407984035870499458999473717531369369831311512434054949121646386827720502573628697407446304594456164462425803260804557291706794319819779417260349866133544061064045790793560912280342362587550573878523998056480446129557807474958116746027316337318006415394029973897831239623634114933107323213111756154532333898603279764892425014042754622407192987202401700455622577018254749375121574725383413618163156882784247341078053853139637898183546089100570409565529116979807325538546432642700111804627654981070085747377696852320401041669793401815931572111944001763954154349241790659053274806905497629764641480711575935532602678415200548978084789995370696914919866236716645774523053390173310712093718985327240840560860039119536503010298675868215177200597949247524635712280914471383108394413881408185007509677456284207649998963324887637175198592033306422417177623206633996857348655386017196403780043778952646197520257500954427397136477123833257120880980493886827897679797238256781000269296861248781368502514406469834841502042507399801488988675206034104541398848742526528304786249731697291836131409680601209150268481416072634820932706740183786135617727329082770456253961175953320000557464322632567653074636612992680050130430581969269881525102764716133840740870417479798595829578329969086455774338822381819287123993020912599865083392021194801486527638292263218834194159287321530784133313472248641589475980307646492534509482402339700685389919975084140640486882480553697603050673497128833603916508356317592109925988817547937290549199531655721234267412655399267004983458207640266627340146952379260514529078838017412443427845508851267326529933552932783358753498767719468389694401872875365694611136226330461234200104826203390258981065412623857298993931567992619747422084436031786482169153410286125694224228170899744419711326134272103109030775457695412555613164822756319025512145791705381557552516580226471140425750103085300279618355222901405835740766959374514670963168701121583986113777191104460633359073476615566147775998112938466042613896482042906832850241616204312189709156158929603735394109161070035313693275609188199126145269529420327546214157287812816944493572000021153117877094181179393378032759885109622198043516888232595063582029142020314417755567119012041007065314961201125762302971557761363865784431357177115032682869136084318590760236662314593815805866772537595225492735270514463431025831791805144873116628698327790391317099644641570946858611507271759914431846035921410928385625507270992722390406858170505400516255791727812193176961871298315885459761561973961366534440458492118340196731803133133008027970134355889112213142879228133618196416742229295665795831478784187206054169892861288991559317500077646422047114615083149418778884445701591886048594627685720669765003316941397569686666997095219096419487882728828640821519472916374361498211559304467944754231144356849029352310448740015535725299505870625249911390247661170933885224800686318758353704835302179815936633585086431729921599733284062127460499081241415139495288644019135645280771263876423316835357285418609572454892710659761416702395129058641302426387499334425862546918976237006151138368777478518762106369640136019365431476820310992167509044955558414162581728045385190768072540865369111442291656059140771368828744273737615504465027614357037971492615763453324822165018981499330264257850159424065255134164659764285719429572363260681094045036833414998488717204352360359888540618063650069049226706994270953051045378726724818979261684367323897660904425584584226665255397175111334656485485765813276736070211492805464552997409640931809206860638740755514609740326231940250582476395410541757571962328034730982332077383332732570650648632430516085671728036312435505536117606870413400179153731871020727474626152077198157701003899690429145988448224864274974423553195590854708983832108993826549727024233635058172635943027287224487606880347326160851495401546621614072819914489375470103315924350209677729866368516111625860871551347731849487326051018255413578511981870587124863071074079651192687702510266155312469321672872803062034254363626763984590633968488081051480865293308949776537193562547943142137524914290244551179110097048949278230509556623840139397445009475336762776933653455132544091554019466449912494781955178343233343373650354449601654435350040769330716761172855962793220661570933394476611909373835053591286404014135083543005368543346573533280230784158400837351324098179531165758027842653204475516245467080032017131142017060397982374910130320409560613840347089060735010645050960993476286805496410746136929250546672796455131674946715255067045112887522480001648669087973168988434534152438894068307987237031076410712573136413445430941073451614097974161111100667464255058796940257042451831506308374879771724400172761874751279409624414198081694667260801745038626008029984239501177600333861218726587598978968764204115008187134802444137474172732189515192844750657395257756185379748498052185847623607693323170237084565132979311928582989198211244865111721307301932061928624127715971699123002008414979594618004488814953538076478454425616658340268633066989222744180005551440630939758999048516912360793901769961944683662428640362537026988684061825496283473536096684800006714693790582614561540663812828833091850140038213024552123370393839620222973201783929941371358579097348112250438078434207893673100933987174245389512974476724323071671779052903127518267509001818283378148526939778662612633317565791159431133190624157103427762403962052457754071410940169796819367859987875517914116958403578328180590981848699752522926159317248078393663906459036652331402743553171180587595354798695584013404381901803696881313346553383079764170332297648183418451939775216507660991415000781820970573136420482957693252222906961535416159113938874653082755234691007982873994657688500138788536704793508895025738965467443439994074379521824725517256038617434984097205116141922146064509832116369683083892352900173728139805415519033150027840799626438381399026854337370225579946964324247460904230146195834350955104028494061348733194887842526332580047490384711996989561258896499997828228581635122444872039366167463473248220035328656464911126912637249716668270940116205598751799327048552937166206774820629027693834758725120273744158719742422367458160462431600688573201817870486277556478482299878217343516604542019856398642509825650156317778229668406545016321001288305903677903027750975458060167631311769661863570971156143553564415323458371810713039037696135895330465363549464118071631617312815810280422610522066049402123935871065922442381229667181127408567040357749868160065293060112945014698768145905088290793306173543133638043226411532705334955246644159847019193456908428843670839906295338209133047567785525861539853408472173688385815131314065333786741282372303843487769084294134521465047583481449128498710181148828080865409201137420605255157810985199702963579216874617986616639903017120664137895978513333945366820594162210601461732656887834419430544913387842590135421972392787323236971673075518231154632517287034368375263341078314603933934213520054847817886780818924008910375002504963972117938596438867120170471613091542494743622333338026871797208847684710554424647266228932767805239691573813458403890675552797947984931091700489802241837515106597756588909862857741965430509820330480434785276723415920535818445335919965341785518366138453371730464368693751527610165319993204746469848357975009883769619398549223362530510349964124405710613616902846381035188419363768439832740307122895173452569922204895372702958169223151309425417743273537301563192400809999226305406422661568203500703641258948158408481618497900795170497359859667549865218075602171877183049651583596303021227986899059299990689705112482778138447188103597352909350064177834309214382620332594876972851918168103220968969526612550647085186793239062086950751547550025759863801276295264083396989888055880576873862760063977275776700469956596033495350186768433241391488110553923129803428095325166352542433150201890185772074340031530783591764911924112323615120740297553612701556011212155582731034175490731419613976009429063066738207744206234102447997230589600040103623586355662693895088963034969490036116450760970218996839589818085202069729871839439134189398497080621047884546704624967616768346002357410430834795076143478307442521219994768438355487804894460403780803483545502830453357427573581570478773513881016152331557546633615280940041126403937790313352223864705266172892789772307235621144384405689323391821265666778619906887803635002339946543897256699819971677173170094335172451169747467983414793988933083045111835957705043388566907425019634791702886962887509777248469170772338569228896153521168647826427345191462361144650167767915990877675901318421059585702883594167794504568030330670069540088089728950682011924851075627725613918976842526817858333628522063190400433824350647180901717987041810951567589321841588388731569957590214459025542560470546531513503614606217772659009446330040076051004630430354954138293618831336618909379425820482998130661623667911390540256642173402572992670478100055253571391771790917626467285223484627641510555441533684602787730135684091565696294214454280919248878625003972163638489377892792304978118728393099903188592800443775822158629462240090240810413680229233757823925825191288293626471443981343604412941923885914256848991129188158263886796685441963894952283058682872702840441967524721214075122052141537588417530391162281610560746767156974232063846645540500064703287748822119383834547790682164043687309393239051922186982406567533624690669887702678495018575400046457101007207552943098162254012468629092848682909855563241311801356840111159982377437333685313358500554243986345157357358133305087214140788674364212238195872208080676929738253685131763935040431654645869534993144720105283710244593604312250253207342207632052101933953364108114560203730394235283239195136182709496008125990030499702668453355750842380577373629228966443484166688118117684498594598381898391115219971519548377511900751052808820067448634437082018960650502500411263643662690095690715994556503117046526072568037146819116406483212636131899474751756096645860322991868706705019719155318009985101712477241769851676646607860059940441522343745509981797242521494269949055760602006493012283647411655462898992016303346084598206112735211563101382536632821586416630537912818318303020459506775629179324883613376051124280824457581947401189349218873447834908274445153615716049357069487743522457693164550983438101571894513866191240974012190033693864675222159863311800135709717267259093798507805137703438293527020148146519983374766908235399139822995172951108857094759940921104038841912302996417958100439925325255924796053001849538416434334932545274770839459343733537095048613798013989673984762140498147744376341532012309552545558374844191281534494447233162221131336859070697137606018750277150462467073912647474056992416982227859925177891274578394963179018024919536959860933415553301625715619408656250932166294121401690485893587373654046528237234398350041183601051450030543281939497062534600579419350185153922583773677730590708308394114601396414785038695342859360013811584781709393546589889132157209579983740533752132346631448320552489741048280153126636798480441807124927806090860286524762928229534689137237977701011873674581468536496070610071234596666522200322566172263130254297798876918077208199331908597852876310782788342086744663819353724976847000396872602143949254710937368603277139914102724702580656428962952121663842120980756457959324359442577748591471384607512428882785714037921463280022868458772386956004678982408384904034717621046702493865282157293859536682851091911657720490074019136345688904966637784815074186939869374090382726611869128751550635298994747154421383450967913061431315293986429796182486740273510032864740303148313487441689100360357861541353479620850005694490338381279594216753177988514608726038649904707947546507013601602896672377631146223740738571688739366602399420581371438271264214473907857725529577730675493652383486958543853602359568008864955456605554363848791297817867221536653626275578068968740726828456291899135475560260405317811381517615775573472837230582875258888397229447500360544618516162686102638522159440348462849979912169938460181025233829837255708897964786910777817036026204685979042328109965475801158136294200337486292148678088019392864251922174596049948021409510137313580995778191950205192164011714080460190002891134638970530989898876080286617775712258198587965773789600249089200174799180735715509783497995409590188522255114583032068965929820793294556024630500782295235775082011556622665913448396029446846560458384712988925942739629227512497727137150159793768527971151989096486645043563463255499097927062941979995406101419809168377045429530132477075515883810917749528089033187086629082369707800617633446430471859925183481166401417890461774006483634579079384137062032713011090701296876074194872489427390585196723147922433719666143785268905463632083833351640393809025913996865859853659220578393283487791988838713968600182229259679183198110545895009627486975546763224445601254966740246930030057141619155444146805038056310799461719779066793989158431473157822228024188612511570607302929898346394115486134115341092695132646891594298897018180035377198474483012288957621118759854485875691610617711146860554139336436320620357326143250265371510384791672122311476674242463328094141006686640243090012818278781996927080030521507043089129047649294495503512262543712816750196724717693218248027707935884184019646217223563545089521696358936388684379255644583384851294913469770815801463216323327821533634047566773190040773823459773457347883496730976346253377841472614575625086643025528006027081571649212679617822793185284296283573859327486615441106595277642194756069761327185845949734380774895633775608197404319649827633667639175900606682325942629177510989345320941396875786094529803021214964399734574532918417648426106472087273585379625504128226621695425685766563636911800728519246933411214809257289803770076154132048018428205287462577511654468330055491830653752381132733239275283791866170308239757462491544591800298356921420183067770882696852757230925819215382194876205717139964070411044032546412289050570388690333617871204040255307126259541114165876197291249531939392948729379709886909253925777549358430870205426991484128654355260915138511750326517305023506201523405695506975540593781553551887582746823805162770078749147389306818939985798582843489859308252461601958384688450894275116777828358774477173309898987490154724601930464822264096921886293959783517524937998212981027162370381489970683539532225830490204852671700511472915528645873579809050117282485834708721472834836798231878248952744072812344336017972104535564031447931300814440615254736830405973789387473567225206217147942690165718752933077067307684646845547585159598276717359868288218026111093628015553786918240828997807137407222758557564221645702148003509644116808079038686275340805808302340950121903669169088265866046687808823093809705564433353334397882266273049624632051067401370557342029453020030468468207953476119155761690949455358749317266104950344099126882323190631323293794703526282886090640889923011710595471419644898645302453813677146682399606381486576487571615784326344539842390950549695003223328846870765440664594368584365743622830148862182099881496458936090620078420910148314184005585353897982422695838599602688643303056695862783734554405810347407149421430340689792375799514203117579384880777721781579856358640131882731583587736238137414271898709823947080338175954188106103766452551565155281160249454614957425803457687976739321081530573488143365604198344579208576643923257684815008099169826127089639522511138710892573639020537020290825626461823053014852764034976069398325051008946617693147975928913224580476139956237148009304711558114600401678035259482765855699415740980208050395977109273706845761627814004862698360890564621216385249854344239347733239976566184335656314718800331535120676233894998052035846109168046928479903770347047171348160037470775546982090336916900252072231958050433163391653589809167581986504680255167443857076224683307152770440611000757927240472256674502785424718147857861994398222650206028445634322534805033201333572411140377244787442394555135387986368540493695760145758019044038904832123448276194936560962202092699868351011274757052437470241480175505382824344571664266334862626024586976207956571572819876877262276972435731129645972742335628858624158762822259233838133145337493958770445421173773334121113279783821837924041228642572162578240485688807787699425299431142787544300961455389586768203153160550336309800038823125287980980909654883480159318018815373970806821741964666454022811718008963723714912645197104110210543758094564298867366509902811647045508738431930930281430112936416277400264947967599238015552198704962250850496495923639653175615076859017618448187302205822053854149012622508669566000838116343662691489799339273345885902021206973577503437300573196659372784706574369281281969683485236582789570621420104688224703762799325326913229536341236823412994593030533284850519177788398019559058656072604793438835420052822176567329566921984596782889830061320838513808067290943198429338520517836792610045976770906076917800688712602090221581561022854301988641398922818988938525274229086549638458059017105125812536153400786037240664382152331869630529800701817075799192137055333834613006802491568005288863904102883986143561072561461530105392495276485603866535780305067935066651361225699928802589304119757983850893296889737008331084023445906174194079653745380292906659422172020520733958483451251965737193663853293389464312918053276365597413241086316540744172034133242339059286922548199633902729480551337131387072030641140109348339131235151258733709210609603788015558489816690465728709004821796584764038946866004744533742527178584971449404168571191055606070828512778421033399469331749960964418339587809272164191065156136216005385889349760487089320234585150790487825785894983596970861661393064662997048206399990273663294922791263220179619408673483847632597525048298371806729964068183020598228217708540892783778967197517041647515980972917605248568301914017514543194530609120377299213645521525491673869567345996861742659383388765274782216377514595311279387040892035011676812035368693353869781555940966176498777745679732638148982229863283221415134628292187585050073031481349943544340076564356061484396227034720292859405063530111330913897773516628627882468946123411616167239380542078357561636391560440265137594490723592675587220041204150375191683931317432838485552965051038356521961791914889342484124802182198742548320278932175025548114689778576813814044889795299564030579501602014408248685733534546297889390411709018607228801299784731183197244096765086902046735355931781826891713322957614850529523086515026038335098088422109936609099230696666401489298555626015526984106455256907521981614786380619594897130815032325078235376565689175635475833298616143869775211972328802552625586317784890451317204352147431345276404611942837450443385835287186886967331886337065981372996829631882853257096907065925738133546566617048858787526450276017167818623605055458871989508306281566971947859781200519345194733370381048757195053106151064658281653460902012609033152589163259625160611671840978742320334147749608077618807707142028221505212892396084401817206961975902825635337703560109203412958340121443872620089207979450075632756916873219931225398948111179200529996448196344958332948587504617193279956955661944937122809461755897384215591451864072194965751513556271306983897163646615680376964440253644687378035496431326412756573639969878724328866342477356407506319688889818963003192968418908543663175082883116447193322490982251945648243588227771372992726692989612765458372921308370567224430814213170784602835823093576544053561924395449073820558683836604905079926388948495947757581202130813746777475613866208533204609167286253413647993586784392615384540142215339080883463479023444380364258036333988457889266277751498396288500479989635992921556159273788482966892536169599949099953643000188809456908864799346711245686591914800846527209205848550988691165077420243727506326166115662096835999816887235501517156467841708655579579633867656817987868022525411065800954496838198843955586489256429511144659945582754769510353429411747793938940670822537212646286548287745622460484050493908587117872632122210019497408645125043153954580630083275684272566448331558257570877006820712106829414399597825916466274779458849558610282031066628062915053816067281541433698811390191949242625391385540196707581817711433925101546080160327413846545904916010406905242741386583140607376968251524722225689542356415591833437455612882233684686420833042980624276483406589268896988789479388292393297259154288059042035992895246652974252554007501410058485726906279241430502303866911613986440998497305272388653572731413155550693544662716304482613850695001519193753009836218237131969338257705798730005468413946572227227690557155208809300235961117545380768257380058027515157424374695093148763920943662575837733044211401575193938900908768962825467869920355567134900230958193760863397997439217471432463597870594528030074685099966356962147694741221740976435171982290209944660124897026818650238168943489586283467333823735237796101686967752620859651050107914636543405301601264610648456709819509888233267103742587795210408805480240480671209933761276168165955694143271985634725749165625372738213375529274415337426785648155471893877422732651332443310744533889611309607170200181272286282530447856861742946756807436580870149524142136259005848252102812367470874797587138932674226573667838051063608256764553467196058063096891420253384248519835617485507738049157448467038282397183634117908320354419020601044211686011873831493580835898795601572105767403393123377541326662327420551090886724187009372704866628995468196691181208594235690945998291987367548964160458338905107972080248201307540837245738203229410852196172764449500488365469827344746381572220213977230368234266313454818604147599435949796529825837283382423605277410480271751075684969207256884897816406500908345946328857952913083736248489664953045668032531074330959034042989993970386701381881116905305959095535995130403020507237842443604018901310776890124494769119223213504279103377707122707450310914896823250341601907696376661909127717713990236728423294068807959571375541436236650488161791210228310635354807006015047129015053534535676520171020322866850839652500177363486085830111692315179667016371834196027760906193361213139858235041532704262575294904220289438491150228215272208377119069365060428361705059167472190025437907545059282658668262018637803015184775664228636595494975453921238293199536498639289041003248661967034885984382590784993157137434322600390090428654550196227085388850360293766359793776135981559654012282665381256211506581823908168714750775977439938509137948820979329648513100247717656065203160314263210245441644822843297738983301962088145561556583163821646616419690361168171995043861739005977623679241261646022318395289801175659859441563137442622238134927818181888452991550698160431293995797091039435319913573061478655397254898685032824997099016705457645133725895228859998992536615217115402993414600946053380333791785666986918410219449520433951790933400458166785689991626728386039760342989743673674864770294665760773738715691973922314419213210052045096037381057193425039794757090425425880728071351964950086135178043307268994959769156872437634183048223525716644507645534312146763293639858544127808486232387975617982008724754896598947407545729134419700864152861703088968810580690206567037181121496430777084963214411381678087033774485063458081390486706264909276642752438784048804123391462582563363948976192858095729802027919247505446818421278496110788946584042309941967152580861137506919213312366819808370649858372767687202675443731476253345891619197260765357636374313784700761214241091950268107856926014529572021026759039644516823486649582736604869808659370728463943033770991731897371681906218755807152133425967559310504970095325084412307546247938125493653004726067849779976673529525551412495735264849221651445409575969730495551325251490481348161656641931013298352735746806308271404461470193544359766492873665111203612636612126870221087549517967051620861630945813004851531718379662059431465413972853936968712591161855250332824910207109661046064895178417862463982966853793136101774877531164869184224956049109818388405879091357622874619671773244790254761561678953641755539103183723331882097894527791695766273766308809947521093264411624729821923532383542254421468718993639554404200217121750076265659714031056106882409536800034176581896385076875837739699564417002610614267019983574663028497511408330344003721770474789564184215135662409541326942115509371422663168791419656929710646168459471792447018669915160944063340613829454448627447963034326941921932972119477516532908707268596948402710340791245200131453981822808973872867136340774552499615339903230202531738146412170936964912052062189285630511877484724749011020602687476091008833509993451726379774051981597058941192074703607977970221394562717324561337221052526879173998489152991435328787153294968013620090527896125893272926505306838907338736865908773953377797319102885839287952105546487883068540892585851407409916679542107817693692832548385943405741084172606134814750884861664819380677482553923684845709773650970155410202662306640462451915502360402827358244922944667501694260824680947810879802882733676480832775935501020098142019684722403359191814191585507750358982120286668248264388884150486694640908089639587045823964919732080320838403736854959279732971403451558702307234897474439089134563744004964109397559103598346777932832427825708742645277597031530611954772785289261953951945766187246939606689496760889323205614290142441343337419788004102514487645876042148396414728487197829156055571578683155340569176108054391897804358072265797474316623281922465669265135920513011842051078255281117313195291175466344567223544618754114575155219636472543735375937324493159943094365112584253428980233801477615732450702067426754210667080148314216725832386843737997237743340551692474995808787002398768858645239770059191662827939867944768746952400211280178124644765056829770105251333048855332425907733229161495722612054065476552672738335095764050645990393962607882346422484720703280416652501848929426622028500565603138967307508424942333545744466893231115758303109610654511616230454804756542106362156755533863562887999658913902282948947862421198121451762718981580135839900474178364148638484046366424487512233799198507920604624544655451703761360056182076863692933465305864848096585046055209801063447244431236860791793892357001102580178138314850247665832699426840992918622160941759767934691973368994313650149895349880720031084294347034966254122245808214542806274291229437806698849931828262127158576211419968475150396144854369107408964244453513554918047441527138749309721608020576647562376191607409178357037410523088422890163048065959648935282105302148403647067648497712693672747231409620758599248043982940404657813618687857359259576656299066567526683496306796341083838986596840010366558775349488389157192884814160655909647074102948132278825626068935282854538240107644398936082770415662115059999631383402519519874445337057620078550164042824437889540305969756536328252561635062052541431998649237891423042418479617422826453652639636999286516495496913767956456993437008499683427388139521033891801016543307589908612657393150219325826941435259235331800337416696501361016229728436409815358591458033578053069532413405314683510838497422481639013786890319829904943821308947058599882036784934911136348790985225069196185879107041102426513481788332814804032772796336632111838848050269373402504801062605656906731511090793007143074249139459520592815925999089299959101857297439769812810102876206299242824877050398443196507036583226725462449512995460808128724273035077508635750224009344891496339830397968632338182731563388559179044047343454070732640511150705613823609027231445832441430069290566264434950858774774475134950282731067465868397648105421656333241999952490106284735598928558741641631385900593092679799649194918789980343021356249814641840218448466571491454241687057421966198657291832128546091556282190843593460596442440013777808045909085221947475800457566340498780991183782616738458327885320513406214880227160719871213869968399387580501462997943404501787194391016011590394700889471493456673986360281058380821483267112534971823483954762551187891019631637328859179390200413060878053589209512449635304010774209467053520414420252799128441309446561173321770071844888971612823828115096630234428200063736362873915087697043582780804601604798450191005316448092765213459349716714145489691793301347056819215473815667517796585043429433502454233138547790681245618230743715379583209203901508357506453645474063051915465665068832914151359535459409248523820527829886154616238862766568137017056546264135648107999643682157575596066256935948055165809145216263396241865114586489773770166705777672868847566970701929233095611202369439023610535517424659504488258178312161125631635388866841425399125788021369900962577130862084705980884614509895956690232334262856750007562092599485740283430829190740387780153500294730121805621563370848081089785402767689657826975693901395260790407533129286166430035796746690436144143346662782067359899816193565637999892583065920277958348071721471615447888397563572278736329248124881895834189465662249095887875577768517628322006489093365353212563786594660880077684420646696254728884811901572302108025229208597828428316959670770671058338560502860062366906062004629997923782680939347063567412096314322159002714517550541566597029867092856495301958247674548216364772890288397964856400691903707693555913002195000058640757196359991992617672712742134919007625670719811444216363337360340041291983625791107248690709977437917761638384484869394708779748418351762230942895480838959159495625895136593085294784665551538740470435503298018879782292800816129298979383368993120181564389535755395163784932867580105588571015161912995535710504170808130214047457734705462876173467675392244492318997053267742633152986255264168770096000176623664301690516504438267437160218640908611539739470450955763695058927848425926845498195982103603064923306588773223690031650249551303101405663313132190134243464860019756346034906747054511175234927692352755518461685883858662885200583224919686213376643506765770354162870663140094073452561737455023833810995259937666300364700182880393498936082728880252104411130185221843615123817303877855657812484670856786166187067116742913524899618064505144397850827432594278366795782866014791714042315632400204764742985575491326217188948270679515014815693482032790739904460246730735565758596541584710539101210613233020569481610307166702342439424161367039603843609598644517272935624881429426390523775886760147949714906679570296734758737473520519105833578237487387057271186327158559477200024160970871302444811148903816090511626990613873989086357331459032648533704035927598562260681171515688027933185249249941023378081337215984069374682595567341673704460472705227152030175012398806777974924590681877369029969733925404463441726687422541126417357878323990979927703302965858305826352967562081085872144926048200479340221474449600844355442110569023088964415219491689840870862714237721852763130970384983773109564086255800398909055131223315115936707385816801662219466270302718857375698714752548238340841138471033575219229759215453207001853161814451928809234266753030153724025070972588731730538008231897047524625088116491086023944053863597207441816689020519964337660962913500252150994320336499401984139381673714807655549520294330160008074971168518263844244127339301920372461942531446857622768675747996813070279685169174088483053538352136739578011456152628839012079009148417440722249578664056168026128968406382858875339436885124317815150921755357677204889157884638827154631644176175806437623255101778917946123174886708859558434065880875100443708107414080707196670553315087532795737853018057109565289499808901865661145631976656192762549353558999259056951575085534828855421210444456477750166187469725207830812370972376442775602618845153920088560320041369913731034391870436505401450271455879867762998468959114371216694643505896936031713576301752809041770479856927553003215867071674820271554950265097304948967997330542764637437326484755272940596868741568678628461033905740718062371047336757535015837488297600681736195503700006509784282635817264467927944474671051092461781067892989568748615696124551958446764861751956515120002679508153387181250371372257973087573136182924656678253810401068642285632128930179085480189183096855915518278933753054693932689992327353485324751741606321495004681963668974307976976448919270374115939729854697321367286966052309440421053058931265045644604617118815945741014681481738510410483815528272906671140223438083523814236905601807684509123357368617953483365833597125994586098814695108498825591242849979335716542088488139287256153518877567571128258543799578896886087210900546488642373410790081261146456060297826845908134622024994040232402200727223302651282649068843322499999026124744566686621409298533919001975249035318576887193744723627376414976846443834836065901171675928034046100586093373825657516438060511616228146524742523978430806502724059963689381801425807267268333668905725668958686545069497978295290313779558818785630501393009885571133170195312551350650710350772645064210796804513515386340399460556531233480041519944845261218453703594610315168528005988481647085314463544837855982455641065251523455365146440227441612716813758262966085445600151619598765642444092332828378020646106230314397430739382777001601297898882349131924124060026251649618200337826266095853411816700245395248633918225147571870518278453285391825920123739331131110113116872475119489057534832995798435331096265604236219322350588788337108520523187998424640378358966173384273842265812042608303918417418968820243410059704692053393481564438767154430225294908379728966381955563603081720270822446707435234202752324331217880777397737388616943224295604861744666450485550104916586600101188368979315578632572779593367424253176233133694112298799833194239049204813052138261417004160082668168642159234660124651963957256820134068939966694822119022509681734048975718325018355931838410094879272072020876671088073952778070067061948107839483394011170831356681667027690486930989504775968956167856028216047245127018132929675373257963854804583659365850520519138873800626398893473722330121635461679822908946854240024872809955268456897496642594135589301192964654317706798166649721607114920427268764674979330311303030567765268267617804785220491214213216638461049361132830621450042972086525463773314244848000973901322435909636426692469755920942486361809590869640712953207280121910404998774613949818675444419561051907251149453030612821312787098351423267891322924032470423230592653011986189937319610406768224884553204726379212983537862165024599947336226883889072795201963027577037679020012121322115990438750551597976286327941353152496072312378342953347008391540654782439095329756211927499642444368372788182433444494791618958209267078863406442736876786362991878316654140670642744357176346795986046297909598216551620340339994693153732370868686688903943808563806166593368055229509496758950331782332170610668477565011601071426664814924643302929915917671617202987420408768756975951141742232219761351750363121450164321040412012172239725414161746362742338127566579517291912640127224121289842750266357984585887080566135264080651556216622153791147085901944274985981826336991716273878811295003966193316351692951646122646043196191029817010697462957944766366794269065336123916482281131595612837446329236557692210896993137707253220357368648351946640176592784676391167274221567540368125782465544806641467545026564590701599531590627702603438826046099349683680360745141573403458244619449830605001313804109070731844810874174432820933089111088646929395035597703147822241873886503597942320867441788439893515570849786841963097805181112759333216153771388762448568920612591383235646910820735147276411565756182387293795640475985491913089211150874502780827341633293275812572675281689962085273327685860402131685362103513219478449279112616675507938222645857433125025490801241316636235153370339975876316787318121307590831230569454969828850180130215344662961095617720826689757166816163754127627019754632770441225640015424878217703374416412475048459957968195836701887157530202215719666848806162700611042642836429700211907637799592164230061220989765410970377517778749235907011286044109442480055286686321741025503227260895993093768868018156289472349246317357760693607375984839036754654612961840869679051365051675102865381290626308275668835140376072982857524699595877035675201771525411418941426867694753884366678197993689296061755712619929617371752962429837569693432214001525659987454074505955693580778501222035665270479617993391269465880319941728673925239541577411087252812028479784655615389767924135560679332412832916732569764304473554950023474573860438664027724280292602710824779462613262222789916474788595704390640953453537175816857936967701728839702934398953632499538097596350611112589669074883758906714975536247206500125038612347254040933999599228179660758371688992753401787666734911652881946030905780881469884845590174335413878877533680276759658270013233962068543527543916739237529422787450102080849622918341502313315189754423204700476946779156848018366902556114274480671514550640329331023166729364836751814968625698614421014259002594168268478873772776843791142679670787789325336024623630248232216821790406218402192616189492995407417815633435054513222365830257792561833867711464535307003140258013573316977541140696870093731871425167773871171058133185114925816972778274657110051515801538733923980690318385285473135680885370396696259061416154138155193635791026310569683229718787463763085700285488252909447131467080673277832982720792609964854410598560103842983590154150369228319569817696496439841639458298464274074215062596569180211122005320135670477899913250918417878463966961369922071209809404293630997953657132894290110285375113774728610781518660359542017372900176103511335319893355855512639171808953461501890843756761871460502126020933188835068736227656494072146472546193385059410650791493080910056885980439967946232912941637714310580237036386385527699402787144687207162041341289875984985479363669174509683978085301436812040547861115884218492886160180625388503165762830752014532935881353450169735444427366265022295525794423649397837469787903073248815472942779514134989096351977979112234977396367997461470440826659739978342173543036654318210349013241447006278048786504592457541151282606074712008410338054681798621169612653322757762301409814278780124160667788596430519194864013657008341288300217476772157433999442000750886580413784836913931489626233791746796228180926708183707661586926636693776369112537116897649932570163230627529568252753982930478475517808557461729025133437793607500744603035936417255421930412644985808396110918309926848192549065160950361200991600560509933263228978250838984604165939872265520148474739019321164430525198330704447073147980085822715629457690754706579373083655335259394544797457042411045127243685982667369987445823929078440289330591653510930077974398084990207379890232779708813991999022399200565725519121461614782125142558740022794191879826878138704537769480579984528536716672877976845533895743597658533737832286003952164073165394459315853256325337822278368764061984376662059184388059276743231828568558230771104544460038043807022407797856257047576701924119152337561462321585874405751031246121781571891103409329660703531016129595557639789996958597949620015996111496546004995029114296235038600834717374563558421360139761516425614909492369565429548014837198397229000502472543264703852225554598113291816958595762838146333566078354493813148179904703247564502077941664049965364939545489471720335711984224472381265792816611958443275332334978840472172583904306486463980773597219735411687449244448799462290447688431899189513746544389798880340882433406507632909481530882360852382848715181281312693603449651804000225871471585770187843978283994116825964272181883656298258633042101876675408879709025956272828652261482898275425915887125037053168030539302408414410597110730157114155447427554834881892622213870138694714464340096218390373438218279810878046712021944964363100767488855159885126901509893877070318201205999048843611512269289164068704913835487642913889355600494886205233784453616469919298098304344177963988732420121199447014909985144639524412684038272480712723672547142411710265043643688289862951213535958391972498460621431608226178452882181711311032242820349821479754088194538397278885874193695970049033923946060286382579278949268387394779184716853352624902629243063830296926714217935960420478143495032660952873123270573087444509063645779842941920204531536975507447181239100125271156260782655448066763392080928613435740738744115909537817971366002584592758162998232101028529646118308492022152294254202566279597730876878847947407205853794277284301620855302814084445704108142693457808806480768788931037378238245419054502869967583920136735637135360775102429469983041478751551866609440385222381704509420491681528445543492116656390244193359041382998775491899295241360068141769677776887465299035761838908584906049212808799248129238637842900075990961421763223147472125799130807598782838869289903905609652895681861670469738843576806009487438350009392387974880812744106058468815949359098034738942410012002402084923289366092907293089377213820653696802578390569216690903017730819228411865403944128754194716038512738297305248429682270251837617697621354823640802677490517579398453139221114595419744277036693850754204968290392885544655502580079847876039274550341678733561749879745797686942156072191773219816411354944003469505952885276441265445043541956238204706945445525227245085538362534649565693528670275347862690816912254260466196955124420041702756888330331910049017269467698849289180951601595844534531750657796012578989738221656053996834601729590702954114889620550300985401305350222234719813699854388357206981209404582796463083909021803178333186519303813701383148155377166718254643961859245949744535025115946627472826449866370496750893363685001013089185258227322914481041358947047205843462948280955022698505141999140435285085056285780501830391591015431939481952665737415964425044562504669206596799489458443096777600268553788957566542875435985559877630995000355150560377788648963350045792231691561726081113574788120475611328168577618933392066019084021059027831405844172031154726521714806480683270751182977392816971206137787286868257850607890191464686412338513819227813760933488459623689608555674789914000719728601031804821352847234065016421622620207392495708281114207349278596933964123861138458318121431591104460957827154249675706048490478957881428101724254590998462809494969929874780888241398841442416253209767950490243678231438935611959014946395192094753903085839237161382389247869981605627514843746259325351216225856901859094497296074793891189878484494163376061575789726048403200981358460903794149120539526040193324208808661383560691079244032547942433102986272860237190568304225567643808089932908728653485957091280472223724955987195018433902899783542349600847767207426082334785784233605944792270302561361822268067160642088271123227575425413435546865937960682790599995210755920299859023682150863354089751654834161363407377904788702460966354511941559582652569527579834456545238029992602715259581156573608225361500877025075913305660957389633315731049884463868077921329129269599389002469543511310257230969915007698401769357626030344181155662582741928916695025324787776429479709137337355858075259921767049995969584352065369942588725725476166065937577960779084141810106624683311857487153665768490338999043835526139834373088587590893503678443106613131043673647283186989834274618198882961413249391052330706855389026036903693076136757676197041594149282128233525943463233424668648091071881391971938801291460224113211602127861715728391380325150073128547606119702836319124866018999208358339066488427430534485271629084910928061567723399018629004405092426163441769696660746072402527755792277172016000116181744688855559551440929550867913459770981322725582752476645782678698709901893167884275801810614992919215351363450310307883320281392312374576780791558549147831842422809169402085215422454150376215963198792192316440314737482742698575671088277346518141378656150206969058188258482168978553356312133307056640090116203977863346807026820349693400533053231123134497577468200977585097491563149501255153728438705532699682416988513904253131605102854171533972305547972678507884564028020542572374675147142608626538580852787183136087916486591442528225144192879172641731386832391599890440533832444875410121000498322402352761172072054091076271934693792971288482885002552662937784037481623339345951108692499680460360220435300980699655003602673311341837816586269125210031544527514170172541302309564547748250321244755327072716503379182067660320051219158478756902478263747404088390121513669990467301289729194502816874506367675434954962304354130833360492433265017224789652418459213708130347802387934933464707906896981381564286034950318163442395657516039088071079538689443349277459748525351555752247039028694089157856389363289309300202851048337398537610476321243044243363477752869430948104489045093408979896723297499781380381666380901758961725942854741276208878360820385364217129022260699596902570821103785889370373005027028103696226889646058357050901150247707050474455985034201090088258201371992355750628552245287616159861467339493296784336947336393500912917627348385660516079551402529945375693627728846210582849952381220855149878249221661261961480610933307953508869407652061185177537285577029148312955599072009512863082860987128679361980019767555688196863294512206454263156581030205041072905825653513441809375612698008772901237484979762893708143685901402409415670392218973556763270520447777676405819089268404154974662018706348086011323029818623715264681406497813384158973941298019437657343964513992441530234229240288438320916607958280079524964482614646869184896379200056082480066681210288653605803698139810963744503340443209635158703459511661609256628136717284262400937449532530197385101900058699346727057159700897120512122400652048413293560431615733026184485718021116973401830460147455857997247609714923177618211104361745768038299481246954999373700701743803956944267882340848078743202462585435585381426225411363781391528965145975165431921733231856900276305387960454071059187847331789513436993918660307738832862493310947679019812280510153966912287496397963886331677223021715549463519650183157421523243011677285051202597448968326035867018874645628670159003191348748561708073533983413323958671935804324509052496452048578879628897410408908724591882459537771059179696239320632547714131022087290888524095166102917494268776170217484808757839785028772650070756514515395360222692501068553588234296314985869661150778002630982419303325428054528748531672482663202226792123307190253404099771034456141173838551455887874842598912952110952016283722366092373504074525350157249872731886430106643920009669354336694447803257136697888357403584731604043324847507189470106745967738147678124958898749828078666430054072434190292357570697692265583905652867239405184932855789051475841132330608847839705551684795366531847140183819881742465238089252537964630353459079302676528134246216639110299489545524515955805318746960687449340171926940304297622790503026495185920802949896790904314494003791544391304861406495466800923231514323057693456025444642335612800145978839586837952068125709098816486084526894251799713424185019438765585784201070662556336555033940121591068586166578156513637972947554321972967015266739443922416672183684126173982377237428770335089971427966543013773381546430158087361330322424707569583187874709997626989705741152154829920537947722012003290185512959325870282149068130450760983192319522339446561599964828002057646888743634448443237634879517375520788604602487633344637659394927341782932595186225798264022916427440305775192003037885084060628009066013444768964000476243693270770804170175393547431981338223736468541574498287946555792397020451833306382056608261885483331624167378076041758504523490041169629740498504350798981058904175401116743114859261962211792764310618615786086048907499088890236169617886241289880978455332269341148826281349225989066333902090717025248504738763551940250462570307734212142644616360518986963961476023401539291404824535795957262920667275247014591817447750588845864401262315245929968348070205468374850965907494144276429533103360512746563162680415471123836176672178929531752161277230371954830152440629080961098193018898112573066688322513280733627467418589740611129275456862160677816300284031017295805832703579997334300758002456637888942956480978091068592368240794168142448006257301221077750144745047900428591688537436173105688020772980138979988494544315371896729740671622325617773559002913184327772868679573788255630353768430318386843767746049120653586025089692172957072296594589302021598285752580558547851029678415133825866896095723138206030001081871649837015566912115452088536536132904601963828871880213222134646002821262753229866921247850273066111658668547975597266716219612877334532859018376196082153287005236115112506060361275887941450354148397324597882184154383949114333015580011990357161076885278992111767463283764690938612400352152388686994357717544426623733320126006932300915453444145944328539508627382182101424008586451621119490360762733913032303886571081368515924267924557520351461681363281261177184989810910827183780191784767797145175945818759103011506526199875352643240164370218911147902823415689616986041824335008737025882708757706591902489560216651973640073510497228219796224766382986296417092264852577388350343810839942303972002966167817216256031725032680606595190925952650552051436550789678228352415441083452144620624552214534433357261970666651866640341993034557600778927902762490436313475343692194090564858936623804732284534491432949378942726151208719584959978530646404947634762420061634730990387143392116970165770765072251864554633382316677380407726731854226908786400966969985851340183038942063518170703203201423950677698971486480630519105214678646362972821329413356411872168836744438057394353148087599230105157065260677462591173937840726806523177508006008521198002854016915167755180458834249361638762311823565702187400820188789529052143023970972894583688738481538452419344271348318632533350791423733410165499768790851463614522555105672722667290728440083246457128163052376626172089653554880081877237534094099704698452270857530725203836856129432058117127615228952399342457618525429787491844709843104253224215570082528517343278241919327176407879579265061768647308443598980639777783805202120672885922720993182348359372843805803230572208005554869967436310599129881947569011217575310986324698464733131533807650257630250337683977702365463090796272931124886523350703736820405941328657029361145223502979611444800017336744597150821489643807189455312290382132260982128915929823773030634012768328842791571713405611268962622330870773610641780498319044169749870914559883146123876690622923973305734170322644081118721748060783819409053246568526540693028707247836240207753318048442606210266092797294315706667530354944664341187731207787205703929607420774904688254883792480182760516432984807308374335064185421952502960461714049273449322166878546424813348396678255316777699042572292684259497566027779858095022964617668307375360588134220545015910577349790193937482263390455068230276009710352984584453610981853612928276144563175333568367725742680541599721623726151870996743545300759380987620877932522767865507935158935381839516305111040987606693280156825020117026466988274237928510493625122703122291240570077556153946772575927408745882293977707931789739870509695729729346155646157555514573069214504343544979421496310182737285599293924148210734440523867751365234822744559907073860812265882697572838341566943607357816112364925503858000109549822217671119046028922863609449184352642048664689563758854081285252903253184235805752111985545080413690447539007497282848595965340369807287734212019061240541804853353677347207020003177840291959246027375108518050692359257040528511044452126477159094472121310820069361896646843343945065008420491977452908509333776828272223001416883508549701909194500543931944698495667044343084005038841323016520172173184884332097595763323223831712278976947566457844160760912257661027293349463947387280190471888645664223020442793885698188783157696618463689890572070715092940480600060546318385627042240315551901610339805564717977362021925959386257947346534859466230516650742252323576635059324102171874894815581714633602656663365938055302601093901559086210434110554875239430761096551304114746953731139654528370197294596175852793737169178003044828245145590207687091824361052347656940105014581043450973628937517501812962560554127722756497759829756918846037957580371017508786569736322777888966819418829377475826248219362657949616665404019693372875755067460345876263595540670452347373678670335784896523594060604545146599120732314720457019964696069845964709105674742282276870042031661113906293528832047334692606587228906341902910879862167718515674753464689480862955797276793736778722825968747725495884876369476084028874594728298007402512506569520747662515576447082611891159453000897214443706945660701259568520998283367320948103270549189992846582810845568771158362450146543787605649663662709248885226511235491489237854636482864495829036301617641730446706700482180747801275374506143759260169164887356244744913977928742872146303858223872781492714930271875975528700743544698294982286793707126854085820955107002456589820943320337697906949249265539863698218095194796795660952708702756745447546041519308764716940705654868484935100085221481900065806128929737795577822060163313034895742182352287840424011368335247250822053712014902504578299755077158240045975820235395095834332969567428717691040276920116871817400675239266513820058046877439763415262891233017604819560697362470092631558851505747861718482493606924007169125984082627658041515177103487425736289561264705043082217168353788188988603482140594520124372906980866251102218756102226016483101364875678002087547118556421086697484889748909794431907639407431698438118291727234507566466051621457748342196463479099212013292278046497042296919122810656376253069529898041631114381601865356406535356299357314012926587457299319553529649155911296242852008976049161809080420485956555625618273679798829182363004376531325929528383729724954777816996226826879467577175640104886558577662099162734534867937355486218380290475693148382933540127030156641134506688023265496695044668461888560513011860646528533813993031201879321449254588302483892829053567948449272643844534745749800787362239642941744978453061619130593107205611072587838658249452749475250639640657308677742998718073058045573343507622354043994547417727214947165889105694691131648208058500734111003466368564830554638053036972327818161031101802097426019441570842258421426305161671988501220804266261354961875219451747896436187894085911384202839688263666585473873150675214670645185358540184350698013286391356358415849193389775876156323332865755332594428740339226992176395266598203361699233119880741689901357279445148416476510049298919382486620793208008699464789854892148659670965115466077005180198756224043354028468470666128296922618575570779176535305187354995377710091828397233018165311420527162580343264987577704368072054825712078950868538593644016417841940307915143190717261986808997727414223503243645070219190270102252199210913308455417547795650337355775897136165238404251650690705409414854013294840807087263300173868676034701528218665526018639994222274092956153171688265636924873990310303109560728152534490493710806179182912472718103697865375684550050305850472616377427959267168086626439730222367573964323767378073047267429833664056238371614106169635020236430519510547155497144863726742048855817792481115851625721539732140542386312181031318471407308535530193815991854455043541683927955648824583474626812074897530350296683084754424514046564499650545353515080944069766757071483993336798009715807426441869517112866760400187559153563360777850170607796615795502301251085967446776194162387970875964800315568362842966069374140778634005388240526444405616334149885174961670258252560446056799927801868012975998942431652662804543284608265520206190886366960802033966308202981052351605512833977250764654426486267790619000114853777837896372962681040877637999172997837984386773538344891226731032998118314589255165234632385207520514319923053727461365921664456761993499059274243021155077235142671279166397284299071203177994172366647646027666415099580464850848423456502654533393386838592826984891053238269508909617707379603714120827032352644791150925136003324711553803567694333729862002874977667296766061638467250875561415293176807963312888236125792107631646095361047987317228141135507308935410438163504463617923050624618573422706559727797687769601185865314708004339045100174351926001879047935039215290762832885580572360454283939719758437620545799986539330430810435271975683331042425244756661865906647969512311170005857469474648518981376051279462214787643083962969365028228824160141782441517128916877105896676229848979926473314466490888557563991516469675387631213604986148080469702112488401712401645728077119836768680489352468746279110497713753703264685211611414201822528306000425524131726910409390801365812166475285404536422856240359690122527328647956045257190891205869597849416755951506780736318744483591031260361958573201589805654350634776954228564491837759567778003262879468249684323592155352986283950622305942887658239641480306849944994331121622256214611915283400883762044802462103182120973736235816512428327875474683150399880089369724950876935264455816312728735410300140495856799670197139363334144540218966117848071335904434286861016968829532348807724973963220643441176881264605301051040310117679533597058338921439297528140139051668755273577907048675355050378977174438422415118656423658516791607769702529903718805510562867418072567119192330428805846825408442029864377009609484301193391853008223584590748781935055939804382379089388860040786314027359514244037624551974784648225637412735834543552066325949797297112982237427619097721862636460855051981330523519960411354808973360712081957116064536156680789737803815732472366324650902709745094493885233068988500563758163578271522839590219552268077587382168722287290054137005431530044800009010245808083444963407108768693843880994818647290780573778457406322157872124677074178050062846436219613585391738667405736255368405174545685283654354314692876913053122511576826557933886025409721417747567098765637784560825440827780311228016139809678635807086441642845878624959973000289873461270914061912878259776101118711890806127048566629802843600015291254708610192907273608054522776512104917614800968480905862654888699574304188665903905115736692507114353128002493274870517938206213146174359350331122467978886226998038773194254897531630102533209883618257533226871064393247268146383945550639414021803965560079954162689906041039954160355989824652149436102177578112117861338372542378528096249993225968909486697401484963167488221317545118630206283095167531698439060918393745741179481588799609518353326065189740158807339782037325306688888554996262885575478410932775455430058030269383106975174224367283312420290816340789830534642940755894670213203919663564927104600924920824000576688116579490903452892840648060189637687589074173086566481140135249779193990517373770041519293323360361101231489792012452379576603086387303147588496216626879321165741374269908113057467612991819266812802079494366591521356960641733303496610153749555705431805092724181481369205061827493287699711088303106022947241843918410825858688862143051564351717477626527734206291097075912311337071658937490019059590266745053468196704717701644579706135369764212858149761333942082396690977848931616767555542304050334305925164707481223462760632350112786549147982970519774708655437882868344677157810902009742733861635772587138004467115722496545507660594360206799073114376962397637750120130524762460670778417927951688316163014437940296974966825902752539732917417900194953171646281772708245617244567549076078116025006677801776969226089792906057191543376673991624713541998173163513991010185498897158609129585119871574467952705999501489315383778829560415658316438684296978857902142705382807458727928585716572997705220025454867851085941573408009849637335197319345319973706664296883768635424201535665759529903108550912004818433548363672032127729910406009156543473099293353616149336178134799967562661622836269037997693503218450425120879018639404923941490066460244291600277515074774227247943842940358853926084082658391196476911367030291928946884261449033346343600801059035969542665472986732067977631865046682521456696660552685756411525816595417551918766432471635094458726801321962870852353778533400841541533078072804595687238585150245282345625534608303753198486012228914470904363143380750354201112702108567735763145803832310819838951593066597716472377962853803943525816756544543600099394512108673148641016557809758334088992599312922007137663173034989003874241265938797482139990723146722607164442863090409680087624689166002037866348554585518474284509456325859892050795435556447236941532947297939334332715940734177436668428208792311889188195092023010413361960851140244866394871448083525394558747312618822688727684349473643748324239226404677582641978033625252195917794355662564016085552496853591042626270526810934584877285465145130172693753699768722999654285951572935914497195780489927644249489649799461007378843778184455992910911301220540759175112292805648916438819632598718226599897736005593408417269459855033916049127429127403883855994510830687141700148995338642087056791478955317505061863966858419330346473624023758598526944334382201198374264395373177903086922341598855593317618898523821733680394071946463971375286682946723384792313102372554948630767223031870905771559052818719914211760272453392478144435588279781838983211976922637801493980586606095758818944688465586469779136435385770288637098597201708249952368931539392805130881819003938432550696712688825757622461725792899097515419635104164833941877168041899633664559788901265012838402876433934354265101103574866391541423035109939268154003894934750440762661045596190864339439444026778496527254211939218660125911946890593244610087044499758855729268236702811432524715692126667987012667462260770282966937089666989563214041794838328042279212140790636516416414692360829508281338157522353465481957240105141472059748743426967333385820231698761349935138388318480057238424899895981680306639597136110085291533298198605795049407526682478301503701409281189469613961446465703321002323697022619062888666643941907441357709770283071378308550543655019869813828994131722965191701734692497998708230475021494751153219142955541366440428838717944714671354508743311487664501769384727523900575372009864932082546727584565768611647154361456422051655757390788697529341761475100472512783362593815532093794797096483508808006448933907972469173906244257100840841381442507879073557787003114870793393375238017827610281603393805158060028884109948354242586761728258032807189045841161024075167243514220071703714776745407470171472862134009651155639027063445227155993878037920652909315960315486113424687254944230629582533185831685238139093152828933545099714978242226557599944695086102559879854021777778849052394251519391565932443214762296015836400519468672326277366697646742271890316589985319833257907627637013269950621873698521383391641239647614105361680132427638536396944511434009772799720602733104842335042690407706576852275395707754075470719038281213461764736546284484777119567845880106618021398007555036992462118416910519574804273829919196980617898924018881017640343184132485330562414159485782089265323345789108223804288893021027106008429659651872557059868072629543337596922850543991017374408690521952152719083252154647376173719653480384126671636708711176419248137986213721896303430181354964968966890995904475668190131940995949243707571505730002234058062934653355964296053042276541277085537341279086578268063513302206253661506826496019773346694829205175152190034170066007476657042872364497392489293389762341968947652449831240454688617864756782290592610991860970919652586077936479916315181016189487391373132816565094073038877341305144002778026117726471161416091869407052584755607366854633107960785528740443645155715393522907061303883781349418727563383159774081082750365123592322855002566988970181137240299492479644082272280144734446488219867545238021918379672212058773930116232176902966961883295994672864919740271195351998646485722928663030252367140151359830947290850583254273352574689822487774382342127148880959311301485353783059620838585936056656832524784705842750357075416585840372288592752910972591773420386225851238551007281965772444143535848287170488009927641391285162936732692882609288602436645168694209389545193969874891482485344553971389849894725114529006600979566930989984304066864301799164353454456763909853515822214129299911397696949189146708554895358869069564082511256610885772740251496233384860115315176452867934838531215409394048600274014263986406315334186597140296350855710397448038572088826938454537991237299319159718322900613745263193374126526520571987720022821145765372366137250995520810314451798622836598208949027149543114690344012022560446371970391143537442467570683831178187263019570536767432088865794109273930697510134973572122811086059291355338668160166271104569257853235933669025392466571022970826292262929552933504812547361054515592941124043517576798456264755804497877843446282295668263723765901294682769470458578345677603845181107637724670931297746273731423222527079034347400737336427634027110427113266043403145595329899802968285739078437678942469787584621796908500910113376943729170119458344299003897188016688365322188855687379285385309767576136310607667144408947463286297802482252005113396219317670990868958919662962203816635650667175823221779302351697618778533149629224883901856791870157969239384974099932647985483955770668801180398315954453281161252357007138638033061910823276987454233149249518636952121202095570340963079919142615755269402551365770846947033228431612716572275857234948471637579032049708976834874629513091475462353711729288930549598612969156069442441796966296689150931311272667801616378049436516302223805423401113509518503838393090406374648017682665038560354229294630150188326849342286765493047402107640235759135311100548927830045532452615985061379119122973117555269894315053109259606891707700475550123039023884966683836304021806764576968804107533567798033278220728024670769289058933358101993111863727917349902794492757648347357332938106427766805458201129045872693971850391860944135211671608532878549531727758972657560555514267429637288524659045213384707463803257533711015777689853712399887390819311619951638835140632043184007188972963209550833369703743735705053220236684301453133541533111020527027517043330754658341868880918547468006961348276716882857607505641186732317849634121435515503436966426071941554481543407162552691325157706952915391377917578822034058585862393913603361569185529645492826036245604800274238836208466205423354082068622433225985129065978538300603596756740003472599530852720696107653560944328091011612834389865861454181532572452579848366315535943908027759868710950301799459772029902527645427422225151442020919638774568134562366114822204116803488007826297159588612004862639558593705151802772024465213102875139230053332162550802646555657731390196207157287943692082474076320537209894018574004013385120173725226273331124306960832804098965031390087373819601022132476878967709391165762905659974981303383357251989518164956344901830847942617599600981783048905219947002015943378465151777243822756432740930233498945899864913654734808935439868422315943323854029599826646269751060087913867249573961299983175762921274810570944959620227435747650906943043639561525630267521387721028276949983063075179461194671701028488851587816021316217867911806824894321655916707481875905100965087781009811104102262283571632065966126992267731796178636647046492355172640777296609157626928078365512920849016244565061591639493472321773685577482214090800610463396178392698837171326609095942232103775516727618107345143736933666502233079610292490082102293177393688482780267702949675838330791093658017168295915123756429665748491338714556020142665120345266964288236781127531234377667780591834737407737959067753505174923229306304709576923435283207419608275718359910747241342732273933017447074724143501859058893536019029201529371749409997421145752544387834256664948929336953815397132255797212168567567744067474550919455861289208111702035310602979700746519220041187287059013556458522152967523296521855008314086781497039228547544435421612028186361102559023751093374496766138589027571442316575132949803229775246957590953470881968882965378587413217543366063128610532541040086528398793763998489532860593759130208349171157783832487052065948846194525621199659029077354086111812821979461788171265803107363843157003666841419804668124739648570655691136664989386502656390009805783304140747926889472420100104027054607949230572270886093960210198260879634186176032248039543863533545311162370900909902914531219261082141212975324026900983994147595935009213937057564012198618571268617358373821118036244266980394543768269045478801544550904621849747268405228920900965529977586072511567953821423871318417695491246397179958847318136644862147653519649133055822495373407099579442211188038921489857256738524077995251422830536224508610305224615453058419582691482896160591789525963702289077644624065610802677471243543048365495094034643199646664452169204473314620361713680336297666646129530263592868350739016717551625787653401657885066401994907555575037286446420273207873078859408898052124443383578879739451916662554338779579564123992467782313644843697674249147482405016105398769020123073141143821152297695974003390548157584507340493188919697090688683128110917631483524009411661069258442739640279279666407756323381085102841665198186205887824930488540114029259919356643103950780714775918074562558501188233815104267300185751143043223756407045443615339176032561408759292492071507707129042634316832501771039378171287711626365600993464064966348752115406222972512916953211678647102475514128655979088356935895844107465092732292728156559157921747059465781207873879502659135492612786760888528434960604538802732825765789619853310840010718331937718206463465725918859870476042247676880526214476831997580967830325078698534720642891477719284142041065550596976239669687005092842213007907372999916227258465392938303601743876412009778358074491420509148305147355874481551142190295513602242656751619077915776996242019328398807807168967967403842465723155963275435328882750698665715115428892978128849699276741152247055114595539797944388096011574173325699702120561057597173270860870554022596913789253355703200296968922419046302466793728707243358236491336867203852048130280728581941462278310127061436647804798936325130283428551988646618639929867475367172264109707017853710595354625088659291712318226912982676850530303665665150894796461304229802095276435109941088946872418424802253267427662661256229725391062754647876628842329273711661430236934501982978693771949007031699991393123602337376790761016764347684896330421755081677433296082472099915004469763618469020997756588701899337785613189083600059588512592825669243589807752031614651988492249521621904952802819318201112680866879359378343320366494137651038481893589254182652791705957166571997906837319890660892407498087211371992582766964880011793292378995334063086748106950115597022391627093748732106488098506875062053016774815547026726530566202971619935543912520155769633749968051180276018523942975163217078454818895708806998009562753522485095498069743424768992642602579353227731039415634057220542681656818695584660780740888763705667343519731444585306406868624406897393406571187323846567850041334646576800674795598349375742557758548025478017872984766883629526894029351285033155778631526217437305768788182063902467018086638190703472021562975078692889298574766498285242438260500309000178514829977483730369516333025500088162594809064073944699640707888280705299671275814581770376916933595934919388517270859877382197572084682883837293137683405882045923046470186602423977265610940076105957188984576378351622806933333892882559964730924312131697822760796890047783585383740845476499196353004347075555825397000101984411755684620913060784893573516366927089058773188230683256988482138388506553314244446229688321562517060658706317197876893468275069135687411716130529030443739560765101131364324564081663966759558449773980790703050676124913615280595683895695931187702643344205732133733541937710650821397310892552551761980942100145077803667363108439804240067193613513894409371338393212093189678219335315324045171804346322287093909410903454909539210272718359505632896945955945736466494818314648726467881280868449878823516002529919763373503344613623074634008582240726278841661715726363330583696034537908913796871674955507992867290636767591687961901169031591332964544172327303210135000390741731504484851004505825598828978043134174853990655919119530353170576863997206929059017497725965569025468103893046818548540197324218312722170412381371828545554797595582134804935866725400129239782678362371757827727272091105362048893761550134079065165155103736127957570093751436892881114256430625099122154514435059534141689499508707860460676789825980936349320648969393088909813317151779981322926601838546240237613018383268294702278504980832579748260576263190999787466311630006784840943541542154601696574609328373492268626922802975500495993643954164041651595112650527395023339982011051545006068136614822399781647876147157019463676932977955857332301360828243660506903236035956834711369075776000779402053768250570648880335173912377045020144745617696625058371370854284941122324693127770586250711846331152308191480705548074525593197955793028626017020964402925903871056433399536462267376153165164424419361593836127312368901055272674192290245756569987472830762445042108529315188382056757102275152760222194698717308214497155932285288643821905189398403877338818792275296444525441273123240712114451348442844283885454870844023896221096270603942042962244390019866009827146929650581501528357491964184258469222670405867302648202794338773250806158612820732852027917914208262178601049135010101240822808615897915361747277149412951384792918250782483384012071187922838922984684806414975529964660282881544594244453600530700855023673183193668222141646626280343441424797311214457483641961349164512369824489388655771445456949554020261550816653996979842393572905184634066897858268902602914837027755900610424232828426777094494724531102890286046426244774744195146416526776069316947421106909138846585531904117850890316538828121253083611012958291930512455159546329994608025398303954368793555128517150883402372221842314756842618188002691020554458782182660334304160509306806222406690441620352260403500491878936250920981446692031509274959962100899740177732299399897997098686870211057237658715413088256152123333257312637945191481836063098782390786007674321134754139927264283722248172429901391635819237253860028594815039877796229127483986258897625402882387089451894020836642032569859115019315531466721592860505777951427417331403487234634917018873182179914400586271065152538082286310123360533896013640315772812640127033060804191445679323430579724843440442070370518090837552421949382021791344094028976001433772539060090093503350681571379334787919286221052147575651576997584507632783087987175397686029470057902135451614047432101324728634092773702880126999211127788079939028482881319556098276077835481497709325900331964810277127555001715162990675143958331608312515813389960370712136048671573885954873317122899435485242694190651033345346701944158911592310875709621368167046117150549830724488460624242098812851734118602237716924418513641267967708497933869363760935621892548695361456492397037169210716770321823646734647071231560901603079259287931680300847496018041120847704889865357879120718999758942528854563491815610935784892436691993341088012123751522415449383762573180358518752481661112593733053267155637415980761210634703886198300339046454688118160189985558009213945548357309458685488321659634985700008006761096554722406021615432868395238247855235658157543838127411105249843003386711825343346517138731778097774863052329978741874029804767634885501992071913866172003954145236002001008783288853878654213679185235849155195437122410691144722351828056134544415099872508116105891087266671164157931884585617328956884787943096164874590290352518217782911898289503727757854462255825412209246335557488426266009793135101771620774719923759169224777095779271195198599498258762018479084357136345035821525038354316079014966926692886797894357274487070451106400462342452862508927312388427942468594230390237366157745504516413860603635476926146361202300110007754200080123624438413309455824976798372781254797479749929984377582284739767326862887257286481630204274869143490545120792239360876922082675338125169633546646527367470207774388163502411205527642370380118768017924052656736557321137529229001851600270008243063926838825306291783878576864808217520383916064161262524968247592407868683271679361799885102877622618374619921383068946626598944583937354697556332713721702336536212157470185661532700301520182528079878342661305402735353197734951337235829122355001259012703070452019122807425163334525293873794546568189006581892474865364202400322344842626922278369800134903143959711710802460250299668860499711656840219446579465263320125358918863290715518373344382400353193877300386992113238074004017129241503808774558945620772438019539502197285563868177014133043029083898030396227755258970514894777389008491946996503491220292343960481460741785201581722203190113821448318123719855065636674325492019185903262461404596788265292998606355359967712488945673580659085950609845716164708354916055881317316655282902084086802099549830099569029682247488218030142942026392101190747202963142819567242115537118177165586976859760093873397684073458962383790175067486734980483876008193181432317518839778830710061562971122673158227194709850853118502307496000370550369404947662665818594931773793404733568018670429364156569892012892089796456241594211199735773985159184974981937490162469406589772514941173737827450060181805783783868146060915036411959679535498057701606873072907683743323983293021486031094077592529570163209435257042110160550957075588319605416116311313188578066316717913948523432673687670783152947335236553750900289066989196426250916089691566747442092267633018189491040617032299093076853145864669106561660174885896990157011258275458450797655869989999000359295476935933920311438651249097366915825571422453456923847483574546126230147228826628693302049694301056880545443615876287660936124178844942945462328727584536603882099044799171310427904189196971101839096755993769368555682890588541758406908508014527719652789707299574701901207969388804589773341362283238505395297861632095669177132272133116211577542154617549753277433541024539910149582178438359779392813557193163540880713322773267598430898305071906348986921049779289271140800545019866067353474221519444352786758639030302990363384702071774570519049817404548200610964835455310812596069647522475489884073523407798460195563746018384978035112754512463835796796337292911279342196721385288231287400252542831486793876514719822485826081621108517109306150832020123128787553516027949035749909911221073611347607417678653189198322216623150749042428119256224987701809635505626233684095243550151594233686342837464799528777030093704519116694796738897039246375882541753532213624056144802091341218120461168679017306821632648380079557624572612553260970614570504529023933507345712070761622265581690272064709718368034368636981755683211745146812654954524510247201118305402224145068286664548331265167373592084793648407552181141423340550779349211012428653575141137718768016353040300326914731768429091414166966074676341293505593269864446136591273781254985360931471465753036886014661556094313355409950943414951444276945845017627829303962895403970738907923021166809768404743842544693665005996545394645150053083136123647112104191888336558797448461646736676551425435666992563595237386697537203003094481043518892486941949752217689521577672055920098749125004865501842249596080109192386993300497642151703902526557941844342271346384312804607860201325339398435231640108542037831889914264535583682169230990942363294350701765762584531884391059257446324468088031834761344067706515004758960576154900307318631050007749518999047310975655667837757852590331231204965975032966469443533723530235741442033337509482320131093816320974470031964636625541725548890369765579889888333192553755085833508082420989489388667523093314851597885901825680482424448362114902799841073370819427260579378747990560317013226359124948829778865317399664960784493941416681033631955176141284657929463207569218242955341338245574593785596646131483790034672570027943393702333855951408097500547941090199514810228748558755953872414667633434244538661510212760907762489362267630072409235465386209544632479082657448933656850954111442202312354744955997391170266427406579009225968703661589053604401573391521073969084533802828781367190795929210323683016937318486841070264706537098458933888575837827005919136677171175236857006989115210979415973583610365715779493402229361135505112451190459992559873663150067717932084768979904387344414136936362759762374616949163842813009929374179884996452750176066809470167950794134221651037689631985367811076104495529881665237071321040178179578205585339405188175658695264612779165529826627894522121758710719184040856929064808091705884404126169850708207090491372097063373127600380966338366770724874622813965236969437035423415200008038856439353409110689853761713611490205039687968424125846086567716131364141605576462370345794433511671987317054730707838428590954877508389025060933062847307339934889139558015638517528088721112511314558357994541588697515931896424038339192141935359172503089250432460216953240110264654108115394765341528574900478980264980616532945418545749718418415510467929259199569936764893624809241195638924815219687632529359582201690701530103899407436026741262893270659925528789311176647160989122018467545864817296148598062583691510440600883863304191841616843353677789288642307391706707042704055437006522281436832369421193577966817917886939528585296004607504846286048037011816441137560358645045706589945753897995000371598355367607559030729168272976231785979676811873201782868430885476852789432002838057935490104544145951551201708893206568634189142208692913494733396528638945805147180883622749863641949479285748348399323944007878093520725607998029295767167370189253807511801488760607611082380810661205667205867814321313276996555057016815746552312379488009317939588366586865031696797115185588054993568456405869239087841876226893297910890716194199605852025585082984964507315727382773260992917059263541099500602106533263034925407020654872368204077314942439337256353191564556414843434802300458533547290686492736459390329822174817763295100379931270525454277057030004300940599793142561784138682206122156281110658673694930809347910690816668273920448988816435780911289913062188148808927888295563501582542989186224584414004443195309936286816505999475582157274113483898387462819802585367296218289218038817414457371799131938997480163252011831964271107057387908776695732768237772062461259054005422527438381772320296099655279177907606334645510305416605777749001413098435344678177187289987956285180382759641581594070485212049997063018612488836233161001468891957287009119129006041881083814074560984026030318673153298363232126568080260785201879098814757469741762605484408612351219978099598923549491600383817836451244168164034802641942271831825413444081677078096699941851470689023130087411773498250891652151498591188371417704714654681522936374565371153301396710856352824300196722898183390307957469564286637368401767044877423013038669105979282127281881206621680454534003324795344132277085704471481299384080139588820441263775046333844262108418146629476548926680859062863690633170677235239692927482142573843355966081335967319438424241169042685956803929209985342642441008628909674320137090801435050955446572633166274263320340771305928498435158980845784160280913298101082834536063911698847509277880583916543330441041697366023114129723267020172018870025797163162665196489506704209620738535937111292914476507015250498123249779047668471373367488192659414161269478141068168470560507012657121568332395610350725601312969199268229596908098713870259985223079976797068321027431090862490134697294054491659665958802300018330179497468389446417008751037536581675979321442310881486532990823859242486749123753214845828434822324505563639051812699402604041627874067098765826355160332569541776652222438853215005520046701688755254931088976584670320110669694791474116054442215809338457705953534678265604894899741399118748887194765670058442599301985980072987115947131489079067284490681616979555867359044455795149895813708034279795514157255098638928398862382003798028353322928009027233774002289472736502331777284941064892887039194745828736689045012145204709309299921304864366532288848322174862786494422297295349258224068975860214408417919306374351498881661722555128208245353849995911090799831640308590222064700979013005072177177769795551986227668609430428143177700303335780089881697664883699973897047424221925206030969720768458577281205499062504527638292353631956759133785845361820420348198682861525968463114710018247850204553394241808653522013111366471186827042395527193318138529565168454120930735768681892833443668467146040251344154277826881324603963915628369870115018113573772637588700186474979958533516569376567373382265464671792119284319593870313564338594893450999203711331056616000253041436323653892569412474701791475790808259819416195587157854513620236820798641892927630208938132201858075271469647180164695731187077570724697730063847131807343601408144470887393380344603075325329512709912829827153718980165476372733255723056906519872384692655428041494026840982912204926552616336529218937665448474952499744073196353848818677223523540747916146770797841266311747003064184461364635187827035780411149692318765306334188001259776014817675112813761459963168025575890674340920186345190965961590829355614047737263226749535484370497721337055891136486729585024867484893348037640324462406185506900413883923571237812282766950559881755239556448488220207562365576652545113156311755905333447414001954404135684275536569301804643166245591865540867674080676164997778907540041984428325244761389456360019647474221514528020830818302663910582676976775554850701893044725222695317149228200030194067902239406256348818764739092114636802560496696778850060388053314136334062986871946002452402845410469590036213969367561531016117647154245222034090477862993195292587679503600761975563832006485464265575134580705258332472292605172033991682846953549293115574765775023527496419223168228257180585244612497268591426866909219148803609270685693570976388037453066759092540572358743374133451988020491283439604941344951751496965877342820050809448006604874757828501107196450187990491499258514602717722824768526557355897053226714285399217227528133480905964419652366403247108612779905346158134328942009625027206965323872853719605250704623959510836168974061331873150558369679235291740839860124635194222147093909591154601051163760631747652094579738083483579841413088325951160564109039535793809990724117470260825250365212380813745187486699406857775102036238545408549358896145745480665605341070746315574991196191648816474358334943701493490630275052434595389515369385053543305539329928905757151830491565636831012402380276126772721130959558325716600101567209874062745581812091040877087044402664775740926723839698422817984284348822348536290697434106121110551156473662205454810406442673606398741697252117383885026110547736835075966306225188504638216563747678259460863396572659021432926513307220128468474433711841329055609696997782126221859074141120631187748213061563439374483437927908948745044262070519769109046297714091202989654998930701562743637963316038493376450283346741686312687068828450660032969996283484592577141027437456478536313429570239953823684685891141527514066823791961506044264085497165234066575558144551652994178385634088735823891742034589445659630049061164614191276552609684529368418419073155011381152212380831163865860591361911176151690550143232145698866195222481288707739689561271405577012041544992955818671770204375162105832049374808858397600259998675933027134977405715307922563887916666302482677121267564840747628438263150862858120423611161337742673879513474846348399886444168792211409003756384706607422997058756025503069831073354998719076420826359559854429991690360649441125150158374627289962457948467840119296056431590152313583295776003472910182603147919068860159826525133441820228366509765620938032308404604420043853823549039915553635839182379862147381082540148429769988091714020731077554550194202082713731811514605813195832153374774305167476143259304946692952074185948380328114612945008282598614434640990186952267349416198539958480511237305939655164241511891833646315468609776191263947552523117831835978388272949329880518505428464380234119498020348458342881836297846706544648025137006243083815880087290099318302876492369001382522992035657584331656713482365640493789998004850350264608736525215282853216723611244103111723980341597246983212245293861161435060062425287676592582012432862418897099498789766282079360156060720093062552193073501062654843568561631977103593602642739214524650524072600005771365012752197242807113723645614777478632498965368274821889782342871728924677925474542564032166045030657897045212151474838641032060342247772047604673779784955227922480548083116139824496716944113154564663613035538207101722732179929985861392586416596526451629281221559484119621946653853905952605869388143166177267456115980747619693482570835773803032498629226687993269982138638522511510724220158934350994504253940244397236570105376055311366778391887056184746186501422669505932559284748414642164418623946367453590073250787212885274146453887191319346734631782652695995652368761026438617896773934820850765318751264756264122006330881884249275564954840367033698766787840090629771798373097308251512115336590589264198812464439490219364693622737990947016878763778815196275230993037343748657179834194408047019918140393009215050439010622088861675255746171277618472430448673650514397957333836963387051493763327924318295390107414033930082506742198434571905856604292157920294556170948055394220741253701845481192489909602525199990535317844966128218141634938111657302147442617871399759502339052498431714319088161862642820551116517488933164697757763289436980182890374648802952958504908795498853238158285011541611367654929902077922419769232411509272495203524379434009806433811454571289962479429842456575915152693225789298073390977292548519100542306820901043577826693916431611877724779390604430154692494869251992058231743067355258076205427641254658136917605832025578975722602236208517410163054662537304834578157982916249715447311096374491061685084906194418978444547441719217803021413280211158259287660450724659149991252574666535365267160746450651214052873852480108609270325722625859369377826567205357115871488779806568017914393176983688165061164692999041337524016536524821635628578531254903218606684796139146357708269065334771411498172173489813632500377798367951371693189351175921723428401183199338027398532654778550992020657721234374820067639565871473108132229671124510251590167859118403485713152646782511191248571445766522591540815107469777159958853966823777579816000260618831878783355692949225004971681351023210798873780962458777933278844272496510309445815114045136910492560906001713910103666193148625254390664459541970007633441278301122555702377850844301600010440802546801549250211938308116401603784445142537353879145295058354477950060110188110667568996757154198421017007474106608148754339860991880244855370200124450138296404298991976915716284009886294110110380032968386581702887218592752355504424596857179563855817526071489756097885966536297593631701940602645190761546438485222053582872884713691770731969396043394599810673210917178818043617361364811998511425022805859898768310507766929484859276538031893744704376880665068890255720981414139023698886657519809683797950434528536587928928299425615143228442156482376078728258187408149220720532916344834612203347679765674714575172227915060161140852976505681469174476732613133508840059055149455171526764653043694160070464595974245053119483934556859208698908729108020740873754756329091129085359004381272519841309489427632682563361496042163758014805204757279008149589827820851341690036950668794871584043808064480380714372054925700865910299608423099399714261043541777633553861750800065627909308251194510762892322965804988315121322709223046703883591081195084881368061972874122870673084911604440695976456340393655907921929723878965309441860444885309084678507717060455486579177098494308943080458279885056019003077307591629299011640556320014145255831545012243584812909371620117634798374903286327044357861695613762982866557770461975996469203460308185873093844739880029717966724886424230765210125429159557429264953064465785009550293563568355934734174302633297854499830289255078352000635298928315934177263539886101622681745262091315711927997648531052222540978322380664057483190177920891330792757340583495016113375797766912012132662925516187558365254788968733965192561312477013296667079313965594233736830575089340410207495881046248509599516139994510735924325931445311795725306661698545089843806097122729824835837808565361732409606320635659898482711639310378033012025718545581029472079837587683634017815117287765047092600404900569492692409146216255965903134124835736067137708840040128240456741888494631470950465985868040038258276035328238974149524302325271987801309213352697525272703087521966770240387431253461906357493980084585523829815283391143682146756761225700662520526659432233105408972729446422567108941513119611047425488960643839731859838859841846007930280938483243369711007744340503521597784368519374787973285760498606299837189079164624630706591906913482894885666053810373507308607275666723810059590779472230079233406963078122810686139398563396264183393427317720769702888285678599670756821151650936390647500176786103095272945745399244799404112061249687576424031224931910132054327045590239036173867907606704638868947711378628083691022980508587615761375105607188299255022741705675796475079314111124582125763658114259681189361145931931191040685102278934032464016574870355726287673519838706203089985140722001772735098962973606781452430327224092233623722713040645825733008640580835890296747869589053225133299555805860333690378792721781846345396467133953112056224661947057900812378517644578909510546273826109215345022598085814408920212120587165545912996669293104086771858839538398459861107872916177705029049528729221300882834625014080960868771499514463444119206135052959612670383203893962759535675471055198608123496858610242280628951938195488619906846423250699657597320742003771338168395589358551306996731772624621668126580074198851166833660006581848963546367668041715512222477111025265391633069590449275711092587026742871198361862734686329668615814084046993617402084480545387102528707742514030194472272298299757373344303651066210530695061134964432838959233953275770608769110266804976370503025976763356081472363762246905738376492629736146031797251463019688097599394535614517524654184110379802324597676453166396114148755863934883113958942427946767220441510560731568293979652108737654600517837172700799527414058306942572145818923392683382806261839546253206187847611854467851688130878536678461630797718077128669933476062556999236427685156345404184757105737526073698398298673606966108083453270315893902940183376848912116859068091926474192139088791621535663455884168170796331897003292994594080912862833631293453816364121938777443503588878163148258374054817652347679059019643444300142184470187045506986217851256785272227418930297546677182722175067530041804614835306647931706550109554261568179091805395691941210826937826358861640975490486040918035564353580022793253979495662292356848421957273572213667741817367682242629031008011856407000901894023263320331319653983481350045344183423591971763843845833994144290936414998075550858995084624524115600114517445996080807796350228462195488353166410730901851964535757648846031442293524806512234326614529621160941286571261927663720532680248754614060204224781702080922981484211341524107912819102054162562123798099379543004693231797514000904394366053414600490341978039764304587720904681603504544042995870589283225885148640938410451786341125250841942337243556178046329560813706810225891557245333499882366546391073425792073037018215897225173630488955034363841755072857869984900088515115979468718651617494805701135488736579188518889150826475503862488540231299910904687340543746829217590013595912150699609205109212904051160610780500233427752372485159367844009966498241028243689579050537526362982863043482492402272333334151537969659690363768628982806692955914287450536882639645837312990259364480430137905727270548276570003302920382645216472975310008086893911998338846306172687118901867102077758363933381398632765524719200486622646375753084364158142969220431846166685487323627230114235201755539141172867366441564311801011677347961580852308419727158034599975001825190260723803887264425976252836572361652711616555208683085506073301136210444146442442348178804808477117091900730009000508501735634363727423764854658994681586478013696840226316334263075606106285901822501813878114640431813019354599079146819320420686738983696707540455856301548615553498402063272272019329052871472867688331219595450126961464836881639697582329428053947497980878009978395941557837699239104519415750880832404600479885664378321696062436468618016154474314659246497901744346016017227446167975487523097794545335150100616562710613901698328689243317471558267535293124902685678659453634328715845763748078163896924660188896697566253833059079903852235893103674146357144488247445949859774951704181851839385395143104067524402111416007289238688532543147447849775735205641080012374193727744583459500841043250967813863330757480786037951346426842951212806587494912533702178028504585921437289473727483500636464063395510437441412450688099866598327049229391850003969627151586965863072322510929161694138143044192823575649453620808129483542532948418031107007906404470928024726975538326357518355943447274110978124908871964897786600497338575332299905467429820531423038298374021408249768026125171688228480026038491020718280745628397111285672018871141321127805685723449363081753173311797867788133156782317569406991472857258627280479656973752067655406525861560255446008494200888104270326833021151797333844677674786047672728502792740877228362083193810870289890020585388151415041297430867032447099149993930585884244882995561880967682187489173575837163511063770306105936551793684440055533276358493622723051099036677226455013306845034714520570934231155835561369130360074280566091348274815981767672876167961701176808027277723397404547861069782521224447341222308046170748817300652913177393544149293212307095172660868274622118601114283429227808395744871780640575489871054951258148929164236652398250743064336436459499074524841952209612732476820875204807876634600663138492356236379350573397761543770825136350461527064977213609731730530100187194474109491564763264653759946770925114211425046716639904825164243937609750597642440042678643944115735211196505565943741887984881611488507073735156733070334225990972567844451702350317307197654577361725862315238690061778454861526281605736507884621497371913616238783179217613121317535414950938515761461074081120597953427414147733335777139515228712991279765225735665979825586189039208031576696710840667865867366810619180985538696632647988932754750856314799580073821269915773591030294196814686755997314560076489809624795804240995080737481820898031781109948325761273439119120412500918074407545819582167253874466400040877502867207724989682819578283453827434940315437710191624900458411285112579357090078903467246992995986100500169159533707089684228928041010035592281007436909568625309518592599053767263403426608952105517943480966023442670034502597592156159723512602538577791164935776669238954882028578319961124016980895715805361400959922806138961404079996218641482422574112914141238792239263626694136929111728637183861955173999225429381142497965205749700654892905591952249556195119681110306983280594489760939815577458092495905711327280099716435982993260413757169328674368669736729804705899825313520837400839814223196543331903578144604728817745007903213890867939947293277891242635854244482796959130752367932472063138100253859360109150319750237256969872931271183337573813671965853736184468010276994628329500090815830771117203271764696830664251734246370186513777287368948832215577203386216447289353672282748743748987955588681106620494150215616140978073557410706343385143751927606548333795821855803413367757228435783664301444433451565465446523388193116088448722959280318552212298480090951046455991410003329733498999370100662574687156591485812193207481265350861206398035307456513150739812528833539895948157142482204881603504836155770990803619332468806037397567018474183174595172426305526563656040090920668036952738473390428059200464518532114550386482258882655859429484923107093154097864299911657964168996204443939400858433992448143899652541054502937322867688556610109966967709642227904123766481282720450258895725353097638812888749225585873915159234984672917180318478252688249023183837186763321937988436846054711602455957735522616291850571031554451976283157867206690429687332810889736864267444763298280067360438141135868438515041421444339716140760652826824154430782491167213464194106038375241167556541928842015370878454350972572936564814043927742032523134417352141948904958400144941634764595126360504879699853995144034309653195261308116344748240919738086120715129717446689160874625439079992242185503127909044542113416924525110196194790703702750867170497608154133570229820244931156735896880339846157227059484495333403020929319684065158988422296264544372016271865996227934003488973289359294969492542472121619095814335954820912557348131389681543884680323595116012555688373944299359260385737766067088993933865834617294861424572284175910998353211922141413751071974447371682544095164078826063070160763208744867694302289640903986012811159144044244619860597814010168617400138726952555866126835810950800166274189929740696440621267462631056321914091401208501211124395808452722691398033278701644859514934831893038180290943322161104426770495669324685765737821559523632921262426969866155299745125947541871055811673835158987949658232926798222744854784380022661976575697839886586217191062620866101737742264458231783642807218695766081986132684322352418395512941936530772307811582620008967147923870021752857513343378210564044706988314727423843834000375721376783084902962321444738308564096702961314849711933439540504433022929976252821797810361685133124672054965066450484181046750305056674603567312971150548912609133887361478333325514272962220889580461614636771290595550656579898038163269046679753826322711419522440583203935597415035513915249832568680962734628941916560652215300427113883522503803462408388421408425589300498781297171997419758817438626160524352339528142909715241167914629102072466432085413046569582602012559093344028605459710912021805235386357780292454401284532214405134222405419352278596687651407423047379045841954562048964594657119951065207810993008973068319704301478857556849379271045329259215471252780680939302711801910100657636161151440120876722746041839304665410867385767735662269418254155479673386418326149626943332863091783611042569152586123345844910068372795313155006455330934671612809957067756684620439853507454873770257627711455482870903631809726388894279130908937106836046389497574980742647134746938960168923633396497942835309973357451168070023689241810559761169591065048770500854488340532310696476957626528085715600291800451700232346138312259749211832485855266622302834887744798807223802618628131358629970644623216019415263801104865876022976391564810205015537537016466426030513804542239299344134176482305816933567074038622758051841699947430391911634237310861272117214410836567171973085148881825183851410079669498792907755731135542445124814293707834701419651004730608234769124947354972113487894563408705137927031881344848751923797614373389294315119861106926722525257546170162502117124498916497561141074969464789128164460242611052692969966002364221658340551941065680474108012221160976679247856993354119571350569633303739237773646588916093886208206441254088728652840910901772129812345911110725629156928652491927482004295372572053152987565358624060513792427479766121063679520179912307442456864576622136165607630159488691257931555625116688723650084023167998458647254065608783303302499847249145922861133514548518115279995388018878786621395950387345874748552361557000744457999416831091641354385419486904977489126341942891955647445611576442272581159630132610654283718021548901800184330198060161435156244198223541011998348764396706772883002801726490745302160970546718757284035084923243022198786157566677017557696270956563786557207220852792253576912758548380626400127558897417073031960568589195905649300074882038042693186285060479075116996498023686052781436887790103893169022002377103024168106645715026431656515270143691157485488115756471531589045071785865828670969583535662616235245714290021424108395864101294907817387803180680638356831928137774592932314743258734360395544673414332223572803853652548886159787134108011163920758991700028303091451793875486586882980893592615189307094485736608553798714536619978498449390143205038651846236374418683772217225463517968348835160348758559390634771928748556755948636396917568072751910064375640883556387775766253968978916902274923186927507716078162384103354199044006871092435033461041924152234983521995858923128925741619537816954259450060360053716341790050971244453647454669691922796674783758918767384254606964386963486778899004478438804917920165242855182075436298859862651500945748229057493862737273613603313401667657637032066514143308811057639477165343816150454620717966483223466933581302630614016813087009327238863547389108864304616344182551065745609028094837078233805199035426825894655225170102449827999721255163245391338718676839338673639822281485296150917487942500681523713516783602977458004621825239086838950726261596431182657952565901988316542020332455394540436149368710460118748242169848798369167093705505736493530812729644008800646613128485006524735304646102428618135841791916347955551065295282059102781697876826987746615728332300649519758749428298652615958463048620167967191632656355445736826947992219426035531499805334875579888683516251009337528147915934634638455690869776198380786188643682006267989939348276252506567869154667173507692976042155019548506033768846713110412461297000191669707579618691017420636497370649336471482526782707369519210606456011275658253255683773737318209924690402210964791535051016980075278283221191625416917512375102340575371400048131557467778773196243861996196266296565203987247735549280300237762841184648780841080514860767707560255431119494315081583738883151512427598529461818287536666427400413017503540045736749419502333102208769295990178638532005732722419154052993567270522578119387804568522719499831552214161324834693721622679909285819755343717977097855691573347406127757808930061633378968494828818659363386288629791823232760236956296001443066313682254256706837316744527471076791459630538997109385784025454378143043262003903199590110736194820681122514193220364096032641831161594997586339842924745396633694077481188689049838736519354167776854251485901459832096749710938152063307963566639830664189957642338471826917213280786013335744321271521565976580006650104306796713567743872556895712369975557438902255187196268160686421540448223578358591713933861136083129157853716691974652198215363772819793329032593828003432834452428170556639828141368077348332908260250424703670442970360304057929069807778137991993866101321541729469571348358729740940957907948202189084408430983309731068175769767044995027690723057715473693023714751183783968368436419715624342178568087477253179138489070733195183305371049997048338983240216965322657758372444297513074956246995069189026454720996051130709679591457046232109359455856604114018232329834232881508142054926457180989212966703052707646535067570482450433948216884691808492075099240491338787044404108091734075573351011378412676678118040826568029179185096398058266267422463583566671249268112861447613045629342367842468446048422309714508404245115868804808990962896272396635203312657134691130346990369401244211733253017338466303224846332306528617504461941140117430362962877282391694399149662223978964722292383236247484303010900491746323816733102106564930367580477791945720143557172827376121552058084801808509217634904580262870091009161359257148254257022610021153376813332458576371706287665258763476050108848791472447976352000748984123668793924287726169512157868728660978188010803240609028485821831577166098867401140951810313839093358443204745181543264472739994189111341025099575862389029444400243200939684779264365284295370002904770592084396224284521638332976842109458701896626307715982327995587635913379475649480199245738191313659459862925297624197541446560337481035628735361598406085459485787529285976553965121219827453568367039628097736528143056847311802383406756819203838752053147292811895960830463530711470310548942659046546688158226850871736195725393930766836560218119732861628477231234540682351605313442467323956654243809614768110800517087874258790454006696975308021244714459588577615471173609164092097344758364558782740409245396886195613686021726415806747767099636946978284653847056837737870257890307641748964255148587737619788770803606763672595238214278464210903418057314988665165426029240187366424301622621259952539217959709924370632669874943259069391189145580037228668042327247020234373637435129176657756464619123998962693882144613036388019917973626535299267612411749257232059561190505403451307289698741634740513969710963779436047477780337523576306629638472514253365806587318694648213716597603074184814302695852417638306842028201907281006292421631054878166736200232632163498111191333262591777699055095356871659510319820842924830451599905377986772570479391410784775562987801731914022723867227441242652345924756400682925902531100982531570548194470106139388977071820456495924735286864013609995264941697122349901152526223554561198792868024429875902081926531001419997980104952632691798309779338497005642021050994887949185656899867537299476113544118377345423652080921710358971897422476821379213105138666336708520131589213027700844312137831109457686810466248237268248060264930309475039023909519826324639030511097734832897730784384874024128340445874167829564295547493527078954929861660683986977434732786056898448832956572663076796204765701079297967631384455635914477060383039278689777040809402645032977443750136599936195172553493453033782356893401214713928029112111187928765265411479832435220205859433097013996894805208379795045728651480359854882110964500714672125004846410323279812402128764855589223197915414968756430765710315705996498305385422985543081959725726926381034758345879430875901194448395546337586092239066684992127719520692104122339061157052335197046115643170111765185329620081137707358113144163165831776272267531882907780131063101408646395744437291885857820462423166555340130238998243482904838307831082682293181784525163950232546201303366872270584051321391836159627564152734571127623385512392069438409921595285260584640982825553288661465991968624333287591921082273658418080099596042009456148136212041603530062972056745701569169889750527897008033560132656794093015997002240214534636905981106747461406611884330621176061534259774361795777700057330734930728371903780062280008086428458579485099787823744607007492438806146814514531442732009604873298442915942200447976868880709686416975840643659771523779904840814444183569455406995126439980895182111210112748747746474182700207555222060389622256138939666854080633349582692427432412693190646117396882416887908335937189359965665741627614012468660755563624054988111645786756711723854846583293637097898091844040605182120564049576030542621635934921870968442334823556770454577555985341433571992385895876475983805642601102547563330523395075926661069427059164836006847989222695640001770045589355363190141856232079210744556745019490540316909367539374502396524559910464138763034579051922132316724599473441577765330803366518729250839972190029771801942638738816410281576301483362853300444958490912460576823466933413984630531605280851790059929351024815296870082233872070942991700938856140558316019093641123389218255061698268729816003068748165028688569542876935484178586984968966808166389345818740915974927917910524527755010305223822286247180105208712267026616469732052136609710292130739138334651427247532597101758555237618988939839750866589998979541087963179629814797055651065611085214095686099033999961722122370278054339832518089370965783438930534214035113226467064200832092360296981442478670295078053494666633288999930673297062478947851373730214288049291980187377361823975232436566318152290545608543437480723972790586561002132343639480604640331162925480311121541084286226612368958397005133146134744212085177204752224325797309695701640823186139922467719420366811880021342172623444591618794836196462628100799989466267188964111082908901051381040247554422368164974028104968822795233338723074016056065809147930918847814398858504384425374987693208734009446838002918428244230594280915356494863348249465235154183077972429258859710684094272746598374757459416599442583776468337933138051795838262185492566274891405695014176732375006304453422241809082092479160610523249754519422606650507182732941674705984637927319381411040588428664341854737088833071904971879818985590181789554970164712693795107472605389619604140864356410463902401107270114183503293385749843906988800500245959771874392384284439799073823792570309040945529555724207943863030387870521669678900003154559431540988259837039779211572941154719794970294179604680807798382377121035157466435106297730835826245499010289673138784149071873264503819379728758264187382677865650044117828829804049327369777930823451606741072103673057121586186486371513393561424544258218562540942537346592475521351242166190457068681953022953667434219978064802773369537783204931561298975758207240506606678440207598617839272246115300938286072208122798258078142719085753825488679629813531090815513288914428375911689966419053037049763184075443727934430157983764249945971321224895352876231228937367412957109839259717784202996938276887966601960161133084043182170296511899843542659612349451580481053654565782599224380533205976209079734010972402281824276150706646497328254242444088973642245469421471382257117891333728263776686750567999634378801670459700129819346332047888304696133292592304806308099048656057796373672702250096455466867270249983644796055397741182248284868059334169108129449723482666201825958388367653756776696895345735934933555231022701340823756590599272313049156402681409423999132337111257323208527067622222048156161077622740743598857300039073716892547406679335144061612256568827739742395396263411305328490975306628264909408612027197251400907542273584744890047497129644879032456543348855202359801658864772980155950830311641218276191389614026992550401420567443400922842559536056089226354727424200458420092426382203178291004386258830652065062275446992408286386035542957152770124344687392800629226602584503035806647242902620483873911693943525546417451279852694260350463210356931548383401715852907628511630686795811412874637186467428612159827813575339846781536158735995543147025414324610942298143116754110221870167140639656169818058267880006979185924283302724246878704994650325915288460377858748342574099524600182401186086844642622810092751816575560318765992994441934875216719862856157728303047245031775021174948834928640338486432186047338806961617432927171988738509944854328946719306809343648432877863619339515465719586893344418449008987760037775729310286135342236095210943092537908238254918959300064201596686289397060254501094384870844517774640525983393707091087796086199956510461813756684347053173778421207482848543756180588362191218124327394334586871470711292551307320398291016151473355324106573322842927385708821761425434128478219255378481710001163776511544566600725104128215046679534082536929271521006596300860506509051939729749215344192364968328307782264816074736432479109176536106882515044902806921836839975025517737921755605399505145253414337198720971832877283217216624974520247773858465048686388838603460879120396796306295047108187255265667971170373085416177553684911573878885204234060482386885821663570087603534945249825024408020923338441631805582489701957375257728515863355445412760154818933361417123713847891945212541889842767740789319304569943377233998370783766269524324516296591404538789391769605670883170222169311323572703843949100677932500667464028417360405172358864452483488624867211510644627525224751253340621771544876440025316259000412884279465405427794146813563003812751797329879090403564790339712670545826800987232623736655499492983565828259240777072689224958942026147449106531496351786691408311375132471348604215215344368734225887962121310136564777497017926915820833796023740240893237345456133778642677566138486722519239009591022753902802080841083837273173997900643558241009647078661936080896890334732302598809903886015739501092420325856889293218105504294081772611390997111242330339481625620337510931005678114540393206318161291652786946375912873556968681024306069010920038342972529959072015578753487169511488377871301287151824178403312273821922773259952228791583085019344853195985239114518007165117179888622745396425032141119530614560709046517334018202540717032493262391447148209472416200658420050218071952062967675367086137762908429156973950278139839403202673671105706246703934670354036489889247512265295888793293397975075364433743721358063306409970950532231025998693288415664635757492266923802613750713210281219240824677859466116370110424382885765521846272845902940589005716919631951023056873990766373114475256180453290229381060362091255408482223449877045265836269122593235023642142490515274449587982856053293416640261214066178315743504487692832325780623384559659353245836388561701092997669514701955758341650177397740961559870516902633943418201410011324667236341142139943319976198638551083565820194081078251695345626744358967764962578862056195409685532527054726386788148335494975250546228115266884661049105001155740907133584460544079198214106789882396413812000334719323459995889477677965490680237721306995543920388799041427674717556029212076372671971625388056193224677500827019268911155114517454547144464165422168917653755686410377052624772493861533793291012568245771149127628607857710828974300959459665278802869844281805158712200749368975494252403726415432165189498969530432014549325903055278575551842585163727383346293702995285538770827099941970555535371734410959542422921701213337451857547184976967787149709628120323538845067717801511401825405151793100929646496541523042834342092495773540455013566970539017444855160012018127355812966943303497356728429546154333033255102726787921417632738120999743321673518826302566653792973130457395521360979711465768692389532415083949600666265763418903546395034183598273879114718296628921817889935968504910416362931009111462901844447361034645697973841310070478314494171294800350961857115242522739355838359968570302682350413875373567016067435835141192114344807734201522450826292228694854056099985570176671118700603771054624661832769788913297536448561074976657100263891131190014864320994303172028084045324924576209408234462720052548189558216956898701001853787272980532020012771497247587770813764924393584191669426371919820260133283081161883373479120487554579854333116872831849652042885477176788572778880638228105774033825270500703930745513546492792675516850756833436698957907037012211777157574095718091880584325047335106720283406766562110773773112856601163015094138105915858919292266725109370252595572161555881260906210453631844101475945234880198071550507769497692824209371028184838177417435324724307795949908595534941358316914068969753561059399355906262647627578896691752551119113686841506087899021333289650263467983053360185755323814533450294971477673278127879644945521275507216887445322939869804676261946518888681073296251183589664064169951988194046600815737924552352449757476783244613298203318082634578933090991324893395799113151685957910078209851123282896631589109303798460567287767670016624928933994352081984917339374345664339780605757770735398133649661698558278419058094687933700675825343141341990799362118186259618805179597168758209157035292544826838619327537286345419350808844387040633357974927400239512136669178014727810649465940760014085408561111555530991481285279226941295825912643544278688005730880282814723778692995549592392847147004801495482668808961996219558404015196257746572882986493171869161045980615052134155430646978789253890750077012166364602209336807966847129813257323706743747536745313033234197892818611349757366929778179944464633027806387493370166908376605717932255701050539642564966930842845307238276358773129627909821753673514790221056084411670531860210458883037582782772401237074727569675756243999400029342478813810258332133901691107609027705926476220738334642187345996643631699320150133081287481731202311855286646800574937043631627443188186273867948857243798891530251653765138213300425649473272130267124312238666787296524631875138572210786003336013155375408166932842390841140968891890733652394586825725110253020661712876026336650927645369453817682552687851968500956997167369206039300415555682142079290209443056348343551231820685488375407177343852945738778615291782178752465695751828893330194121373399410886443985196935580457342872890846448862771802737048072955832793638276641193119430161428052851709799719312981158678683823549735708029840467605135761628993098065142149969493280855299575174711601008545420212037209782769916551289180412037507262509519540514432832826791407587552388061556650422203045968904136203017547779421483865171598551121651878132776186517175101565611360472581664626360696623090821776811199636653182248893687751885617813149097931967891606675007698919231730090252297864234541625964588921222809079564170362199698645073044236980817663337521963220244156564825528361854875617326860079119042498247709309072276441368192935024229744796249742600718709568911148141343798356611617863543394106782564919295170956228580933406919804870392576934932252507215907123157388123622015154596917555068779331544981192920739551963327444425756007735959157474105426329856741215408973900991884430940640318303314177102349526725592407361796274438233715068293411787023710676039381601513239032870199945944565361489225519638132850171726580779298886288571601997520745207859220921916120792140633089992685586512290455781087898087070948320293707251819250667930273455606059016334168598051113797036187150245003907967589472036547798905283838160223469466805466537545683176365352739924281257463077821937468125780247454321382423830451624892413241003494939395228207956344527695702922552905359958046472541459529617394884242942730676335830123397288999682178461490898660673047137949122440094382078444897826890347488901121682450599534005901432633783083603094580023709758570752737787061455714705256948507911346074440805159991324900556846604269762620478046134412102103489503672918115468082587922282388433744701861858591575624105599905136259347158855808917233004044841985063538187814272654312430284703015302873432492695509643129176758633280769268115033359366625004478874281887173758955033793470537388721239534968424059750434020062074599100281262896025662610203826840204281012795586891350701310949354788982303921799850489187628609143200406635380476518612658160573767586268840960578186253783097614840851208327861730042535351794836902210131278631975394762017982992494591324620301535631578756180259440185312069117041150614303796831156783214777992142482619176318529344015498994370132362390620749469515640295304492108528473736925943339154712044198320473680880636265454004008715955597992981178609045786822544214953076345748896641195489558074358835956496594765897725427785409031328619174376392781369672070201446041729845490027416306742936661431325994862249608553216575503755729942840907918383662918924994498035339638398812041281012401973105193524815376348157580052961995562051580496731531889234734848697667062600179920608672031297732293538345309522504527194879807501352372866674680365953809047913310708502123151256921942378018421261194102364125528361740022148660267035787732617294988954737628028462003253778243170809861933682121389721464573470664221351938427313989096253266873285410275880567563959661185535822316864161626341348602888947918125167538671236043604164413025993622300266753495427963023744741772095866109002454398132247222730009008385280635467919387814781543895450462807832976266855378253488306549557449214146998626022920770035251935298896969363276237467272386520693813530943082749050877736829241822536651796647118824214848836940387252973076286452391704672942333754912034343501321766010099050666230886523141343026019565062293560148895482609369356086941112541944088936533772299979671468839714648720555461184042105808406249534635455858830695125082583493747594518692368821933201025788509115197683368492444264401804609000148711270646789817488021396292439317266949519723350094281058185586312133095038641568679722786995636138366177120567407997827009273965216924205972096563040120699335026517637710217367318701741973841848057919616028511173512659802529502482323355914874531388337475378108962374567695319251750702232469485525294426212669188803454841669515475360222264792684555602841396491229909948268276441451388653559450841853865256277978652411562740583389421843991930150857639847765886567663901685078127098696722460349964437940133527008226973216921081642991602923698261984585165617300440961248744882922081835344428734801903740337534443676966700534031900924099608670889869170135121550199102159605529553413763706224988279624418726812084338888350164973950957373434003990403537131576169275254789149682498895278759632557413028192973281661479872806620934068969333916234028187629545509508918828321591225676213964224357088067434436684287263940680217298177763676102985505784853572889046751314398801867356068843908486187801820148944142915868456635228948409419498368266869204736719510117182676522138536167861273956944670371097869084408843743712736658938285913239529113638966058333383941690789771468039300538024051058532000174575032227884134080531025049721658512273735782769847440096466824961983361104230355020341763478099280585829877117014326715327585901198478008303200193465237898742461401896829067786140805948868367937284347968133015683425426199102840278751774241732407755933997550215458207615128303013597543191397572725051107856689481402448317179025823544137764629740366196025631859670503659032538253764669233079063588060111370668054089524364559393629606910217437812934023933545335898161636438519090405835117652874001791408183734330337432612828928947535837004404918954510662607312067040396860456782939276665408657907347023364794514970692472534368113341830190581220709723784912874520580983903693211517979858686441830613405820750168403310912780030670310291367233262399501094761975500600846758293516697842373412772196161433692282432573334845326762364602799987648298234990521509578573312636252497793831833741745124423897515563452759060908960291593212472569087476490877255304159272535589073413634009835058416770631158818670854619962053251674198950785612727259915239630895653528896211375898988804315716441150997890637719726931619399443634015744162239624440782604822700577739928974898690644528525877304706083751330531260427114102198578950154239402151635798164717688548838657364607689060918280048470372978749372042800728880746051121268178212042603914090239982978692253145448958770542448384547058652482128260662603831287220912604083600452243690289267625662384765618748531251934471754818560636608496861884507679556439840531085097353949588586374914583343975765498782172230014663794842355432585954720977234013453427796495352492315366592581363408132098754537313682343284637281714069885377950741715169000653587573779689488046222342494565289028147710641394658344295532062134433463917105419289876189021421661012784601857129537098575214326526249720575179610817272868568941355656272575530998742410506908507014523818866798579105674819423557448611819846709639018944279712715014873987702439192153428959393085214284978978544168777390549246372376269515115027416394927245610567431347929402673482056914398281634467382471227927285261875476277241192706381831765337101757725347104826314589100067571466140371932126015398612241231201821634299313582086369564800127737284244880065167548294267283412723419407189626124415280948673278291125754927449060241112077053308877165715354129647364113873569950404621613403615777073681625168181806554357687974739310096736644929552746674411908676653423439482854710692528004326706196877768940225294563429610626395081796975097460119134427772659488848414194216635709672612598007375810557688590919135534693211642155453048325609863341080695914981358953572913714388123135390112291330807829537880882386977457276782764393170527342257631013047273634165823092435735035779162992429321179053305593134558581492115545891017073542792860718350976526454641532246054122526845435714209182520832841049881821499549193802014046800689363830312768156229806099511865612477579159476451192265531145039538912253961185826059372520384012634475823124782786905171127342954173145679218782436443947644946171080088982964196799364561999699039758424560642676403377449285531779114307817585579128536348789200707784335193389506838697112901103260317404534665594928708874412243881768371483363521880687162150226006336068291939875803867390419542461213687472316516250570080411968048854539665066644684865734270288745843510598414481006519773454668316157320390383045059768277387623816342436905994430042733642927984047405655277390923961885670260775873409439252831941916104160004768686822792330335843619273601520610254556920666800329445135961973267706574929516890672423122353362849345545764387065907231336581107165867992834663454129464803257289935490205711163424456924030883107800110943209183105660216783705702361400706353904991392708562379485909916538714589296430447919823226779856500186054653116033698968756185664419936267505959515900952617239814373437845228131686150743879688263488904606202480321420091898834669800384059255882288506189245794421513974388213573979602897117261231852494081177503516578793585429244318449699979125157185602301109143771535626864402237890825524272896138647448913358843805738920590358507623896423331850325551779535759875115322409681868199338093848950946729809709299483943563528383758751767777451848562201432946909366721265692302905925335644394386678938689958160331202276573838836576496541773050265061911734411899018853722258464529426884307813490657293275162537910029059987059325209331155588940789670708069060403573542569400343425623995035859423231870113877287347788109655291929197216127579502309994455498735969193316163253399687366679746978979107582902022326334893956319857982250887527331465929108749300170338082243125015927062908187790270691967735912435780855858058924689624736737448021930753814701774513594219961510938113764462542475388062289303076005603031945670263976547285393266965419578115744090438900555107940931267713893228420715941406401821455447233203208348158713006291979214708324665304010419426606593549183668284562506406610174695393919947222595460253589701936259365384136277632613321743950786858655293707599798866141154690224849520328607015918017669502302082253124717970257585869981000628785020359424764459708574931648640834232259440169578800200254638638588094760933236355864988295018310552771006280834612790515472278965683877392425770939764521200335325735600340002438950038319192358663396970616607017706880968177744167174155568142888247898292148280502353657356546051772468107451915117369262970317022090450467143616958271359218664490467054663672830879127817771329478058371948916850536437103584602519125149853575441672025120639073910234897385038221761068149858751588938721781433072993478470454710800438559443547306149446086663907233400763222016789639830118482089052288720725847648487932917877092527365547575207768767827426980485909921147015951444904875271442742057014950534556104184183090301141909319562698285509315271289955334361712467867067192541546929111128510973172977336651697789379383171858277360933377037864380477851999096869633094707108983915848599751393618039311862152196779147871551080813550682662841265944079691151228084222211015384872857441447185389059095118115403260862416454743615844732892922318849008305804496072785532041950255075135026496848329770148539694154669849924344971291899616855518197557750024056750858490647398183144708298431834038822419825653934749958221991658886818316538806865837993829480619166159035727551946640746840681115925098517954783732405706421518483354921864471729782871193661934122796896297817015175061453869488108766640251328033208988635383065354212689965746192883356902708566407927520101762320083841966919549492320037907016548352176731851050625906797858906736389319910803278579514246196346290918482778198231177339680985150105985183250223330598694728315442274777372852955620668263991704001850762744563856484724621457570845150046709542208828296088432624036105623826003018470727687813351387973168226527120339454076490923263330060318457864610042649922527722576037362274612329773845575373424229900417399292225256291791885219824782701906866877294422054101968277806914591030604475347048456271842946783924579133680704283768199218078552368654825105420851059908551338155127830752557172441888065991404423285235601333966027309618470564413096352021192249921630766435266958022715307710128857303131481537747157172194071213343970355880595420000904388429776110976064033564614916951714877127224911121470057829838887868411128712985472189689624467226959702185481621483910960389915884590245289599460543374819415989188446686860081317982671285418176187919942445716940929118241579904825037998805097151595795079208552356046008366683361506807350205369638528590968925011180147834965844423755579991809444049551965522827054125407687666644343414927403172902012853739622836528580906485463396700879637514756361628179966584720824077969920805421855381417649128249745396141575214385621245325850774525802285822162994542643570504751187809562349624626065399439836734139442524538841774925682195676534787460963940195605071442651705827022840291273766713994872121242578746419379558585895603726324918970478043380724459846571205439314848663288803566750792608673862375121687570470440134871530159368616328403651482020065360217447398331566256497002370477745526743576466436253992324113849961243465651355954887821223856929010971895048848931289218265368983140070236929611147761735331560733109316310864166962504982287881408405229815575413796896367565649451812987740208367417441458278531390136167097315555195974360989226029255804161842723612653925436446445404660813698194277817796126319605115925442547705334396883402344531166879097935083163705023120347702217177505100555455613569061056800011063375077534743211256333647412766558761043961067690825687734052600643459894920952018177975967647609080076485690885144535526560117906034466255146797978104476644740392210680188116605497039767249353227317400267667910036461453285016235268919425461609493511871638995480928376841650851985042534291166941558025020108385764634194273753181115297140085648065488825040095606632068708636820518978544647671934674467165232514138532112701207757627576058654744534024900970850799554815740483348430458711489744761806653813290854735093426236139020891863244498243192723132396483747131149116470226492776904326436486860188322253809427865895454530960522606678706148010539580601134635715991191328599795463398110958429505501246997358122599178215485363817765922833790251128382845955551453116737722989207719444095454723413388382606234259352002009294478622814274025537555876546635886604433120848513045915668726174041393080771888434345132395388806922813560495407913614053696295957349767185965005650769615030275342046014372581233438733959275987123967272723941786634247787259257321421422809463648924403175910563625400097948234490640430166067921126034953466448695795190164714746786285785005723744344404774169462856825885853435188694250406079637631113079269935358899220164719976584653019821816253683042580612957460122101976756186112370781238179910464551975949952899376114764539358172853085794233545189359823545341352855213577989609687913615830051257229813581116360742543559713807806515627311356719203373955076414470737987875593424213977136374230023495485433793649665404349813525294947898593277870473112064957267847688407222464521133707550373067799692694680901233185609352218802906957416871686804507877231873971052492292912650010566381543919580570133771413258580029269025059128271813546735578955057002782468389358487048093697852746006809905450324873084604264082290108045723109793679001175287147719651496609544256808860977746757468928265962923154853702438894908114740544320062431896945910258559951161371578839674369243507324909761809378416407124369204798020297983671066464783259856641753780028765495265684773968674993036328636530942802740990303238352313664729226602127235916496749972493751757153518111399387307660095348837353379197409626400069748119809124458742768763439560494955269040468943712390070074329522745925573973594144634315770741922257317652357959774135686926987188583345334822525736643656566767033710733729838013759174280063623187702027978174704960831006523648966416519840805536693753919644782261237659701211733101596542332255182660859721138719685128890436858904540940464728970997354054144638490294468274100856349006505271820887758408638400476159557379640953803121125949031853416472671822801504178120692003949562175368751716058578314214488404934788593498109964765067941560195810223715231062887110181132823792115109139068853832975801453650733286042684389896892239858854522280110041961859475187311710169903331187435072666639553773562861172072092400825873729472925947563157705771395771562378742893005695129597092769805292910934078444843511486745952351606449733146867359187840723225328213335169835125612275662614427044330498151152600628238692620513320798733004264633098368751033000604985843364082908440309033299979817232226662694364220779049524393296899099126223145217556303489050201145602186403820504442871075493612653297375172098316727233289119555986871648048790213292493169497862036170257570993059995700216151040452048911381907886023533349548374640011582634029504117608942098830359142097124470060350917886510649324040754248437384213193477211364437451699816547713400184747077562175799751446780467164337483930748190158523984631597085281239069440913392524331057861911435004923650711720336820167259078384904431200745905581713652884688976419384628808436949597923867577391666546156400636533548574947081172669498796447079930593946554558879387438743482215068817805224657249696813151346136946648957331219540937036467572627091218218959426523065144709938124899221404337351007741152346487879160298211591812364850389283588951049417862963577505593757163967159148245414078041330851316750879299473689354246227214186103035085954364929644119096260104080836888665415174300245340140962629746121812990106607655605338363261679629857289298459122166478781610634972039686551479267315277116552167729191132578545677979173365043604460653187771033430379098967550904933368194560140512646455303608678636028347958361820863204941440225379738502000158788932198673106437899101139953141141119328356374016675993676721158853632292305721380450858934301996695337549655826675684646127236253149340649382915691723028495277102497448332715289702724801300621133698698481477488405868049647976521917269864340268500441096941870493065473211939396493313027574443793706749233410344743304049421612125645136569035084486414300822169244784401056047711237171321037223835940835659550408368245661615928227993131634838366142509130119871686786732886319146557141906896175997546063882124784562832271697852509978578905999448674303954391394063315797478358839669600331309570303549958239183166391421395142845223574734541735949866249535197617103503132106530944193475415053868492525029303006067056648667437106789715065312019919928970814653283766875418409164122073525825102148812839063084345010624209790210508621186538150986633150885107862655455947338294340907958088544418961964610477747143429659212915816226628872452920361988349558891118917441170193805731439409024815397712391694658734057608579012290947386585616969821587909925624611898799973395066318329684265541330935717379171895184407981470261651164868865971013167767256144802143364168188786052113616039517694555316821517855361745109447937595921446077705771076521693047614045114975243816264583566137338633858742501451548843841211030614466842484232591501408207579738830014713660869758248561109396153776734946205829410080867578188479745469148152359252294766524307269491553008424205271715723243684503630589718275929528239150487995206523234885558712742942055478684431674648114052267357117229592151653270483021726578418836358907849452138641713226402998773487421638976532507325902104921554203361539982211179429425792807621901638475236301431439943538344330115926135704163025378659038674896071615599026266117125549961629363150085462518017204124951877509218548715569186336295407889461399262688485742466909842235120823377746919407388096940710344491657277834641246718214997164693054820826117689781574253571216028973106287550392587500170243470220762380641336902681610596172113104971702579231479020155380846485780047526132615604420154488332342339036370436743321514187232126894773014375348268457111036377919321850556192355678515935534442673138015286145129115490963611669617546101853074322353829993508455451768595435847112196185661732491942356888582442964408688284260811833872982174752878114450615905757339623228278720234780771879752916513582873736473825442876849216683129762924331079210967956379384268095217020350129920563478327468621102864458615784203563908274549038048155656134459919097065127880182081917614725543190790383123035372975596787716861093596137472661577718317402091058982865441761611774813907905266928049118006352288485706159854783566137395412297997509327547250580426203026444704575259807639855499457869216390972080414705073658928865428162545703589311250582458155709089705024779815301333791643382692675607983923614530527311431625379534375888922671376446352531262190505260538679069746477699231386979651981306086784521294414016033348798142400995090571360324103916191446678973694923331427372445791378736351157836857236879568283269965146947258048684498689799181268985915915784241436453128438673121824535207081748702236944712383233029934049065130998265980538298000753800697860754629158322203510412519997951932425795091989653724186327293322128867426504181904026791293241687338004924475410318455488949659761130854104796840204259282757871704409913997120411905036303414885712577225631070381340164994307883422497298301024510922349014571261520915320522876920941392931124000282731739121601628962702189037751669544243171857179895469879249019319332576822686431098770281083721368212981027350236161453653146322343055307096399342360854514826192333051521760582175391012328224020975740102985696186808171546030847013665076349895636125674202043576117530997880122209186045155955575582338215327981169431762467307449503248425829210746003849286046122328312129578506327509800072863665127225240216616686307628165592171802934552998874347789235390027630993917597005729318411449312113600733969617968593568558149472104312715775801194574765138232369658154600587030449600286043884367343182753375882837918731092836390325282813612023176287471641378464261182572853739197152791534779418680679407122910700356455342290862930788057333382111088672830702982168725683457578847557746831892566221212384901125520372364422549125461038532937450866325518868156439222938314993045307970397330765658770377105740019181365629022925703580454210032278309686922801616946486867304323631423134536883639823522364375050036757484991501579326474354590995918423123598454005717962818827274439891728085586084591492042830845414179564310862223925617191257568595864943699921018436454480748478487042442255979036644564119610811002902200531678404735779632765088289581123546505540140180304124867196315613485299285989010363590078233928896286000367248514311270671591536035948346364610372558587942910219520888741832235994524126764228133318544899331566771239739595405012751684561694814829810532750908178955590007265752006148098854592025978181517380618420373411149094588584154001697652922529693507344309602639624986713143327632475098750697376547210266758019702555314525336646434204340924846410130912823909632961321344225208273335825487118642402075589369505846099591945118316297286851985299228661289207370357878496551895250020208689840429076445412404332535530231579802109582082427508733705846650146865300057510808093668840712258997431172026118843287773950148682884083688975781570201305583290159177879631747519128091252887544261065889636912099129237583919138966331572052209535120084216006391411257038317246960083612839820932022148252606057039518386338951113773802073853169686938145802419237278952601158649207054065976452309123539361773775758330439288627558584207269302911304180268799903965319587756555927765190240519961226440650211275119094810854208519757411942481328135218027495679377196903081293003136351255609486626739629560452738373629683914309162137217417392662705025092029007337014244001343274744875464863109569869723179422015168724891250595682095323719020476274265590581021034463378820745222708187395575770628692943071713395306432747306654091542295916966517094562684580523631326989837960974181756564348587638036768043218708302777828072709515160894720922178143487573185452586214011290036796929255391643133865586949485931477736147460958946204792120756569896796452483469181368914577694354407233275073359386288139864717319022997971274616012223420901464744071143928545431434461238688208251441644621240446819784816690814329501848462829453257191325537024677249284844954153016614581687827373819205372370382008861585315401630527543041208328964852511958911936664766079480700852079712198778975771346996145703653211294878151990757471987296164503853476853436670842528164502095510110302475938257851040199751187278514366117026441473007769608322268714411892744340390681311069284304626435714968443415923697321184086920453475309710103567207142583648332746713710944937666955217892796064047904133887861700266772481294028443327566287162189443451869823689653901383424151995463346179416158512878872524119177566341009122899924326197236681147596203652039962248877261272251620245861586474686485266720175152279726195560288839268020252507096040512270292540023837178797403346579362092922175899380308446886921604686284570715533139879403765409601125252322166415925565761049705497077134362663359041588914198889133699656276624195415388400912770913262609742678300764453472920926449937674687538202899155559555909982863815897330808591032055272865296621496978408597002999999382371492725359813529281426413930441689571501759185304535581037325170302268115927553447750865186563515686936351050728462961916424819672756248320698404289298876876539068685545266675156967247006068636790506718423817860786282894454375441987277540437398162520385462144902913161621982158001582809677778693386488076820411326189586547895943494917741810900213810888578749149392467331091556458609625377062329595519154228717627100377899145619000139586505510863479440255817532650355872421339931816766515878056624151668519384144530356668868041785646301338120978115482516682521260378982731277049352913372325548489521361341884191821730235154575027036210583539259609037351297190355562111866323586004684913415393134391384048873469910216288126930056681121272153355566356537500398512961687245716140589380496603212550507941068420978296978388871861737238250420382434040000349274240273548224132796596769461262168968000344401136203976376683142191053126535699632068197061337902587079429984460184395061318461074599402933269253664545876132775283297176445538242837912284213711237772987323482089922612721184380763295888332219218452746276535211116828395238008539625261687465646293658855542661337845794536392871391855184253227771216260957765778016743171951025500045060680759158494086039365266719135715784435751189354916780937508737633280094980375883711042254513956000820197804619614351370687224344382024437893236673155359137287510920900683018286440690951664567156524760665853178039252637175423365196713997313048217330961918536610391121521864353825515484923307685738815164826046462179909468256926868441208556292452197473736506967933817490912809754308044540679704507387474113809975458015530240291729786000600892736321665857479012928652543128089767467426987224726170628408870735690849617443417237222979526134164921899050065234786324300800906428408390727832105974529112283141350071054323711930015602704297885798738121934431613900541142869698400396410321077728611170234100315319394207610933465595938707995231791866001609248387780793979745376597626720165876583661249059071524144723508049115414415662735941255266975209785727700388855919816426495012188834315690172635592556511180352116959485804233585257277173817357388557677284184252024645426714604645976321478831162323525545580140970291462179300017479904964224733187300399061538631848102891345206225536965778497224602089838416916142914869591050955236988451337434822452467392930328094179699376448005487582180628444691659198983392585191343011733130709499550416845957213413701832404370793344866405032598484060316997328696075418727069782645167032054371636225308193853908897642582821601488728673292132462997965728769639422396284050657673707330837238793275508023648402477528337788038040946585490237145673704229250683423764156082217945245114572028359059859468457518963172545020611588513449611753649409374331400260330696206007852572550145708695731839418073866268784046273093680978046602140520862494587354011913301898754514363761046365231935553175909323414480107545809935115033773808177385503362701257625294454533478185138342272917760577583622424922773338647598207440815264557780273620970417384389814412083296588682152683412134570482566455534443626568248731494212526053341716954107666582103630646380967278573727614716796505416721491970818143517352758954218174583771426441609141242950312246149900410089141277436019928925332066092754609331961240017217212042699280423403386320828641891405355491597412745591270080777946492769698323833168794119714428779976737159100992885137455118081794201406082541952987724185791169060386665892970159560382838651945444372141049872178395060415411004501963447811851905884956271295375815277173629691969402150549825326913086375656361257414705193221902696926266161204446490420803770631799311128338250994208779262427795507401963605840326915050653392044680920420608576122970162097270773218954687571347488382656505746939104011748797393378338570077743107558135858257352921330262809749471785964854157928295291672741474146852247070575411801794051402435989470434804827650732529085094198454084000268785071980400116942709282409191336306513279189501217180119214207938685623396438308628976104155620459241752742003347742495332909469751114589308732550591261120333917300725175973309519109600951087379479917709199289862434397412984574130822713299640074448409220631244167673394092251973181010526757054967921810473156665285983818804996969796629881918130297508208998361418946708685187547528961554148911801707135760819649084541837156301702726255684213283146606665488417110647951373845433918487942987707971743861068245390942703992243985165340574938915337396622470215994608248018757623734996868551020377612183148961262427593283147089378209949168818901025663091872452958282050340733917926887594159033556942927040548284047858198585126955792051433748261230102264251978247088472835946881459152846017822638840216017577910721360504812593423798767069720263347882836386587736708598896666285676274408147836957562394886760402703621809197211104447812613137593476945839589473849555708803259996470394512704432486338421922045452875490300189997612538656311033575540289670032886804311875245826733160693415775698444918704464971951932664822672134263380917159397012574701144506105001026944768425061715130751407697601606291739871908166477972213602570699713382024444841421758077005980120982897916413553176969288829950957173677802851174296211526975394024887816393332911690549381779624425840768038218864235338225304948347724179786756034077207338888405795410773878795656472536700108522561491352543495381289979964416445205670919790295467630455204009315798208576057846868695502328787182699537058039180948683486395219080223446540202445507550565659275874354915941928496002495541950302244178418219324353783312909046370969568496947857807983970724044808114138519414549058849782158720309255734038793068034169398837975597660469678070378012903069437680619142182551882032135731685595020760542521295540186143330823798208410443816606168623270308790980000055903838370326661949522318769142876215257872181515782528425513897687325024107203811081221434204213224276853107375916081826360614541998959621811003303038272019188991716712794848886827998734585944519944782428997833230493229359441635090125661606100788256350881014053725836898162437255319422030669665628090034252481948311170660166525358543749662331130079315596688935374085776850339522835155549984431346065903033402874566553302632481618358384130877248831337753366040730568209800755220470577879285880413815455981304963144534541759869311306142963827412857018014985053385654644385679502121632164841428156089774615974558897519954973635044297810603851483771382479358614235173280140771362185128338335342189012779687187154815004657641717693144511689423377424453834545610365141207948596771237748974935579629520489006110545218562846706600508893448596160859155343632673438449724499526263729729331540119477031915398363952822628342274653598642491402451480744483953748357163485430237614735750389603123857244846231337324277995928924146736836076565616180826731387870095859289759314752822705814906083540571211079585236532768945073665711587827522078534810890443457542164432187756119420146889380682970045211434734504152094436646902342824328301092328988866158660551553845965562404129549626901814515678257700168777508234680982660225814359252523985666420646559699591032723741568863365601109400369883819835880677334673899088132208987930985565929447415511778699995411328317444278829916485241172697727376299289471607196206892350891854198795230071781673594607462577974846665731749219419631307608950753471521990557574818022632262282203551924277914378890634473110197916400745488847210133308920496634994614263897222892259007709751179249790481320286599709089878395590859117365318531950984328239230571882754094693391537639605890582478543833257578073274029370123334159099940988411937822638539371569880331035449041633942660858287260251152560750201525812125375088231344143691289687056055705465290735417774523931343497889128573266834788450354840296277450147429260208588618615018866843298392479575042016953704568626156254497383608279264546107760515265941110192706546677507046669387086052159652612261297505082655166365322417899108231805457396209929583006721090190555021884609044876019087382988450181377207490148444211123003547710254331461871742996276726227227548058010993996252914513678971794387970919070334181732309684503424048395547430992200644558799149116092782244510451327628771587684488724215440742452932265568191013404023442733959784916006263815922342396141406093716373143382839823326931390550817297358084894512357262744509861820685826454809480308075707430128396276831344351197741137216487353696302013588445571132885644616592551779768945594052743902631680049076445327703396125340623726780048845725148398465918978483396949025831580707737383360177485899993893338454158918985583464147261615177774559521417745420416104060674699363208875904720872332539948841140298933088211731171635389922359050148381393015799246100547780816668165666111683316512437164565908134319017804984017077065874817828287491207315113210053594284228871034449882965357545241334387192802576863073371571676115770903804646076122527802327897542734760372875607238940022949740716426787873995322543184418058859554341440731906654732163179041858806493117045063733874098304600521074956248294806334904368072338263013134950580601380906828101689173750930215897946685093505861882594705849906827951551134047047414531141874392400408073391883652202195402230664840251575688432377927720040144154066166216117364743992777048605058000084253098208986033493519744909503254343323800117533097234890961298560849374029203720840142356996974145338751019008989923493595437127493655397401128049006203939039166090573192917175555874718760666366244312068890924970177930484425203106749436091154137124808880905105734318106054743657899090101172311211845948163347882582971715428158573783755558609195404228384574540198112951375892506457122295273855677000783567087978720963650047575772369269001733411459858866341818056883899857037752939022401809784633180204322016337754843189309862577001893159614534984597700193918855814954629101670764438907507592678822506430841198451089800714623461253370768306043616627830000493168213606610860430149350026371781406777996733912722469363950983100822062812912656794223246665635553484394152791886500698373305961612860271732125364011010149900049597383046704157963002636471138707803174125722369262535987902418248139870423989085029278881084113087687619202395369110553896286964137746957325124980321512781452669211742484679924695227698881026917827541324828392634960423921051587178071485329908929148634344211330649844509288778375062570616451335476437260840319575936544756838242173445288896503857051043492215094267822009939628135304021474425705764342371615869881945688086829193925344351277238987198184585467490365196202860289868576762627011369866848940161930534894378622242709727272474146077325684014675658283557479581593068154168427315206974606662570849673282795104611008814305792439855898932781154140231128691607868436995479832810560835321439854977880270327591891240181107465309177299299052524014984249235483036556849541479242645773786362384139680232492570032954319895620648089124229129944158566006219201738934091461135720578659451553321144594816237277205805553984159934360955725288679545974776320053167702166993356997136740313793247100989357473951569671302019965724046056403133324845386005359981256355045760956505153535768817128790319434977201473516634976590359715300155996005342824899800979171830000025101470564346035504039795285127751811788569245057513811118413954207853977278033310331529049481871672907213258674833310949645019311271565869489482120600456213871482520633773452573046916706372353495713818358429312667561781269591086140808749849463814965566052383086662626406756975184208689433630359251900849820106180988664855008111971605791675186407982764603507559433160389326820471500009985045319063083385384018453116665137324832126918367089472732551739944902183507994141446181606999914557095492934718456667074465726184707782159180987553159752123524040975023036280711832459650540540324826438212469010310261716799777557067695524320044109712804331999485837731776320056342374950478877985809612181990676698787062523523336116370867945422086094887657047680782555456742183732507242754633611989659973690455937696999525486706841043296333338638762186916586241325869400832932541380057592385211910959036864390172867886505882659260022941123023512089730728649963348192938863492399797717343180143781983038718669778221751918505583303529399840704247691363778860076953135644652496711006953716544644087843568797686454694067206731549828925569284868604649909910843977804224950363163067470187455283235512074446463052457486017038185777622512750706675701171761063072556285972157345767821508043380844510730386268611564729714697686606755683793568186923394543922896050296576198661192574344331793955965810360119055848209953714951592558071929561061490809055056468395144850216777931725503772338583171082445444874835360430718690360016435777312167558690224843321369477831994686519127161118320777405338774940249209699891741676335611187777002058648818186405358819359989411114460286801774835670466749893718568040539362465043594149625518900060050120458917792345337157045400651060430220326990590907439321828520153910558187182576601446262473474996166093238012302850228555829805452211086751043137412607790480295833269564699523590196150147898223160160138304785420626081893949641341882446710188223432762631697446907803670906921153745493308587381367021858842446695439555068122568973928085092708336347448946417644610360472379825202706095338615195056876446873830724407561781344705548185744239914715889100517049012246171373385168702147414118724223225689617951886413609512772399630979537008897815471341739833329737745377329780934691314469861266995150915091440337726540751515881401841180895009160758171769385727384237852466007890185301819409725620516490524429825861245908673459685446407853393271052199574853735930388753087603289959700706108505124094860823551966629288094037949613519260601946874471517256477783895748122698204778359275049649405043390330171326111355447546772287581171100733883368167450994052465725161835192177945967035001543834658541883077153974564731746810306630422022524489453613826339023619363948283371571002529967811242310821295657655911620986104887556064308538279233705589596243506641917138112837983872871069176497458686087878493437974284573269972799775017996064366802390539852628887114883397357204265678945930732615940600593150376855178805659434860235629715477105489643373328988745636139378902825842969304134645299283390982461326131519887529191205344185435122462309398920955886822195434950223345437085298627681769398282692653656900659103097361877922724469747930444374134795347189003198729558199956279656039494661880842715926737223852544180052292827315366113237437688694315437079364879977967601344626723513938691756343598610048665844843749920460675588539187978012721644361446232493388936653456732309820636147220387216648596699259430942453580290096725740000238095311275554983759187893942067902136099990441881876453062139217513088333724316316017938508497874981127987208777701250008218753844409906782335582452116738853699518868746769440913933989666910392294339549965933981974747741033472119539216240136322034130607315416533427232702454082454879853492256366039018039445890523662380800783647326455438979957894118135286681113160673848088496720069849705870216060106802077959291291473199431683362308897763202393936390493773288297619152993797195159919534430275440204659711992207165448505538938890130653564090359317370238483711928791684022331088893999484772470643946063155849396474256327299017772612471885915582354539547857182271450903497752338680391370337904395672131341460728803140693843976376112697520082617648649803806249545966278950262981547261754605373169195031393194573863622657597903185442260675931615258071075861600576763752791505371474961714552651137557822974850622508688423161171276205922385345052123291016656869188690150280788179500195446097562632370051757548782106982915743872661173287470561217029705580773610039955071679163227720108512845659882729811693292941757689568830279530820854849317966463006449598412832604564711469682200250506783614836149806994900303751763614843845466230705738934637039374702439994498780785270371792050542678867381519816386177188476280853103213547461320912243443052537050143532209936430220608070404784702750092467445787294958170899733876154979022560945276289191780400261879538670422246448792479540412327154639195534302492684426156377304584131549985089814438196959665185141314145847378618444159458274953285004859231156489578367819830291818589388925679228882680581565513251466059264811754593558008159558508139416436282365062401623775195677427629215984774257506891217234920035464964572414159006266488331169533368565828464578863538646337236809520982817547489897922179647172708499117600012858088610651392996131679937712780386188970816899564338004820951942677334336271722595073647639658113148670099562616759171502820797365010474963574013686837753019690642198588596938134369850494761173106310113598126784413385272702449506284787283129225827957762949122202119126477465429609273559438915805392769878614932239110192488842421269301511049086327283822055786399749483971906180908556138290808967562035717673780114009045926802882280587287894385404569016549549288131870163002267312231186560986280331115893241214663996907431377458457479880545430321641803269742418352434171559690556652968135390657105158897004966175064312905138292673153644995076966865149842146844864370248171867276719601521909552002255693413116863755543935583727717735071862472575355917339037976500213760889579392914588281235739842862330651008650546791341673384296976367896035117925383140598349440608908649381782217399661531634901550379684651231349586979476179413912132230833108505340877415820235814833321151705500082312375924265615890659821618041834887146880604165632010167334173189054570256627662402241265629177105585346841482626203296439866691926637165791696891532610203004926101481923468152025209313778026017920785531368800122876187892581521177492087348892052653455757429146439491203219201608189063467607795293331052248095772925078935896318989642582943127081659748411210143563262447525557978828149198606133721009270833380026674342142900891785093623940242859438526952990987244394720760184856096355674565437693048186952681690470325049292627267311018428996457724341862281465516739481053383931759724049684530328995013467789524404987145067879393307462564067856429130044779433510612335800193202846154330018314869338751709260020502187918893121171782693310710761938471298027543892721779662741518337620781787021879413737736566355270935074059004894257541850349112171726176207062068694006831032630951528965721207779767232989883741143906357140485359451004224089677662507348508534793689573793844965256937688966774350168269459815158706934017368303381273870290932983438733313024041850005281061294142307425346837365785432622313815125156725327730740508469315622519220232550870420710246706905629456755930570213780407671642308673418816206530971033292119878644297475852827029622595019152713751012112952818211632142415290454131373498593661826395114118583500187498284307704360664440342971494529519853780375177405525710379428838347586444837756840137784351703023343105855930332838226456424194777624869774890530010197325967700528151515750973809259940269840976832662232837906584403757523438642222046449502956203336856743470612013759665344657542060019079298665440233968903421944010107670998895654836450799343814777503570779890617844177748177215313434830297563594575731880993103736353409912777462166353292415201635922932932006761363789168654463703043669315041625750154905915858661401039801248591894456311460285755603449551045917884960450278509386900642944503121399264611568985518628397726490433424661576144478061206157445812001093325022334322580497657486210306357441698024452709931647943018112780678780599860587181547680385369799924911536203354546822682050328894619038941877295293559762191651210644026099413723224787382723741238041774361513287891361629370944429434542605254578004269912959251694210335705338177493787295074546254020579742444522281229478135796635642637428235894960901618218668251995425293355006227738155198366670944712810065884617164633366771745160674334948242109482803617631291028660369753809357114766454702505192304231164339986310464910860391835594079882861966493209019946535632363460741295634411389469256816827581831580592711348967554086325779055713185269052891021097354512641263386229106583845411318458669193743972257245821569443346270936488536527522543410334314365743832585956502926077131181729870667117668094673064844261866385377730067265432848511070170682870254659353396075893344376645664307455069090466151689742940330475990470322114272045282036057938007645472310770203149405740492148645824551830688901278280731099599495946355811785188007237887581202396786179442989199433129269145864848146269017674638427125774990620477676806046497098132166182916535559478299820484479730536094473861987688672707969584551472905220375479429698522395840429192008114568054859720584872015414876122663110472220101616511512458827447185379837346268282325676001423875826154773847818831661898158561271888357588036807427822267436914849920205882158019790017004950770234072932038706589696726272987105629215223251874117938309420347090254438377560271573028584760488069357166641890376431955578230913074376350946738507656614016603764742346537499149962133966950654678362041693381983250570229268654074117671556094853046269611867086216202567647633797960941663457408226412505153247869399394173445882161739595535299202560049983575441674433536488171473255653500181933874344860338056197351254245127890004961040253123903121971309311267936182666774375815055527011911121840208637072138382306546639380368917795558382034507996379927859956232125200267572030179993210967514531660183200297112651463249766350353197139741981263962479340540340033307791594898293348585859080413360416489978575152283593741849781256679520886026778626670558521588761677461324142512905839677540566788896146960715552154132736689096391591922506721129924383506243246227333032558756410816582009351592753781617007699881744141681268076178295302786435854076603011907116776887013884752664011826514097132520884301132246700846136589851681724357653034483037542890750469301551866279580209859509468245869788053230304124474108105203928862386687808882072169790089107416954754147003478342835836656516262272883522387738841274193135014476237282747398963337659903447875441508380731306382495853955162723345696452913451865495366262842391730935376873758529077455030710738394650096715659125774475573119359356825416785313781659647509507105561493014996997623485736031125565525271035737210738025303394645880471970841510735739165339217479106888983387307784355045899865500138200795965246588161560988448328027779801763293560669942905334870888339287048575574198611835877553065063094476830122421901515940799755605085756602757587599970465932929999148744899639284902880862086229118885119065766744011311492515145232944770319751493097934429254858358189595118990172806804374081366998312018143616555265687170956045871437246153814979662841841362594666173565637433385709097501369255883157740447704235929760272652421371619779921558461297735641174280721845529980989558219658498156230326198986730102670247545583360989305394460247213893732469652322731235695772479365416575063348081476825287080917286184127757192314046391507733240672415936395856561998008260310495046775280118263564330438290028850552046469074236197852071964586655887208773372671117373030438787248821506931134385590599432739004751549634497476910272429636762280249317777709067029030666488633794272480987249997170262220046997172116565612342620368465776355171625913607484921996143775413952706239043365370105024237445204829820931169883626989750927631880044060216144144210784033092778807717238766049051361486624291126131158529413747315718954796026636865423885986779016735075226143650597177644219815988020186848926221730793893985172657672444817125810084981039460997663290135194983858139694487100421527116890159172843243002254282598207532504920017048241983650921607300506452515165624196775490345763040332850587751320319614449483414370586767070803747442587075982376833115681330114832065509666257928158106545828406127115758517889146846099337490679084112064497798167082766660909829357429477968550145764606537127229001603249024631219565225807369812602614121240528853413711302520433566971133256747151944875313952614415373357690160575618378671814435040664892015858071724153654963028158683895210790632568853013358852872985052491450625462980117555952134985628097487773416430981365958957669359006265009208735743369808956407739541671680027658996657508213797336722867887332857178826343635164070135551101611272102332497225528343631594657585235925916201088067491025993359136553133070519391354333198816257167448854729709573346450928926696262393310540715569374635890092130843969887194453342528878936807031986991170345097866547931894668088102154915269688631059561783652451884133301069296515253142037352831940659781371535068449230570791025891023400006966083147704328072491507492969578866350824026090380481791856008014520804300329559563291973582111157676717660632928433000972051434071288530319097791817170512369647691765710583664562677465545284899867453423835127843984473894417401074677938565609315899404645569317203290399766143113441146293363495122443057077144287588076564469821522458348107860758309672748142624588679130331982003103820760091039492340721140418699742769223415497234468212483587870932320197134993902110233742050052182754765608033867367442434876939641388619474378259760322419821231831410790879820903867024280459291583265206123021010109750153469253492000512192309327125394035104261476373569554510348175898171386055684868898899907758586297932511787828620725122990601100850065172524438028551692729191695626903265251594997976573837700338946842728686651126765611383714223539751086197671116965826344941171929927574450002448603080197595023961392214875904136317949519529241494129472968518560616333640504840947385598490195683471937316885001168761278602011853147425061987793262580827193659446931638834784960543933151340059402441550269217913974855349993991602949834966913980572910123351378022537575798672715019556930655415378902847748054160380508958102496500983686290038899210526050272353269309507625816253767101305530896067638203435056435542247809160422590413009359697834302267054964267999886930396553387888727415808826460530607904063380834681038978679435288609098428950114309249053236450832959602881877062777863330378047861347971891830652646285664368478212841330555073589014081949395496096448598975578399403272129035464401776275977621810947869273600565638393278829137766832126058558121435350440667272733782045910740010718294684105174520443265591427592045440822282295804318850697364158034758842289961389669274147081775215962909482392600688687455960686773543981825907807298984099071412790798174403848490123847950222400459544706954647947162249654762497505648425058061465057817765353047249723902971413900444736607333564882438377062802338162859051486625314950082666294242024574248055687873791535462299979073296832319325134851544808235894595345573470453490851827925643600057722300524003956791448984939286259618726275082826568904264635647824480016756750391191691358606825906934241003060261207754282914943901464001359185958570916948545123960783520609589627686498836711361180711366476503997274063930012680321810500661854577522764179048146220455884186622063046830591131515492917575018176064548924851007424561627593897815549455929361025635099848375278240929512695586298497409061382281622186926413500342621843286236575714131835394480015058535501157238784690869608538495505608462693060419569667371620031889324337354422250244442530471280190735488703042825952181209690105885186637902593407700876563301529266593433184382437102003609547488830110601489106589961577613744005981480032502559163499118554412480412398618670839863815985843954504833894160947086087345392518432994929895317929154816730204142194776462939471749027156250661784359974789090539101441307810496941185100093061911458385292756091807812861357174033059338570374650724914264574755952062729941112314384924316769755034065418289060972681984430683995339581307262557475892589737992500699045380907818376300200828398592573523200541494768184539275802375881557818163230333631688916742370332384740884918055775581093462343925369797087223889165998112237005575336554783841794864016833165329641165960755932964385938213098704954588497456762909475121962531547152385611952144107694532860240460483862893968713790084829647903032423092126432907772465823000519317647065259506720658559055631695332354780590950861483847825752194241966479501085249499956273432891544765830108251475642296656149660751094142231237345675361626139755656254372155211160417695114404615011972508968864571296810837601222105617000723919331573080656660151302036980606976702732323552786545527046419907063621516380705228200016036035702506503369468511611066812644105433219025074265853843517815903978914026862804412848129226615464279746136700191172775511888595308486686198322734897308521355858775500945061157128029788938635645213638028438267996315169907839924303404449197763465698844289191540701003310644362617347652455738435056765161163960911099438291474267352867463104336493931896273262931990690109442523782983484757226362912468269557455570593998251515698373982286447081590337872280392173598054367422420865042547182706882574064381538948978422011814725659956572746003444036605871136331168092731073524877121309795988656666817971926808686750368115339506489139993813862858243191093790676513654624217675495420070863667871901198842838281435327191169238659995875493324368168747782980581670090938239804774255575502364280671491177954891468001978960983146226213955965038079155167265423916927353621291370605293002247705300938180715600831022100917832682536251362099437470906959623212265942885041157207769200079729215117010358546359171788933395413825667684813232914430254256111736111894825529410420063739249731607522805778554912139294354065630913652861732882854965806313300682234121988131532128835239219430722890155536096477162832012917378028349339729192844375485221747076233238946596167709471704004311895511646489367242281345142714827910620423778455220609557654211200598973483820251109797203659417788475562445012887552879380224780150356237648614624194325723939649440908969935812689701597074803841022085265760421631491488124420820116260615743159104489695145496981358451773918473173475597116729070246794347620614106245545642873632336871194597595474515030344372437293874223699787434782310007288141243495008537006376664101711144782996770198587433051587805072709718125449022403209499544484379915283357097808386967397887704938951991245462232870735451704645273495236237159297107771537249714622943905118815988323425922972624801426071493912479087549076745670268061026820946732709742604754777124285249955832006216882188333893679449520215115369465269144959838652292240106803463702382365195957791427784624689837527127350925872578090475672444545761948923662035023980582118666212804516849691358516598153474965961260859229127201408996137869547190451980708519511573821123906056039510839785542946779637424618598614319710036044665879359194110892163566376174198831240819112268649144029368387983910165368967209826274049676277848691091963669507894669188125216322082057843261521693798264978713412207477435598942581583067404734140034950933019763142073519814064256310256294161052518461180379951405727702691065137745987720384382160768134732759542485721376825659025650488578326638700433460464621074063580860098145561807106603733493219713493090714734008443381828537095099620038274608039081851184431682465576226957530276638857965178765245574714313914111395277159771114511193307765618209728382671167037473667937372780647512706538869082433741938915249926018435479455436453537684243697431430507244627785110621358946442659468463730106426506239191035329742544506879612733124743653488894427173294269250851069443955943951694597000344494967444175805058451804246659912023262894592448653000123979043984835937303995084085965618366763426211285606230612421923126262085560888867665511481459363935686217058630441027779987241609067614264532389261818575709752909600921399627566556833833628824168899538829140358775067245821182294732306144841854012637921707108229060359878385921560353817507353485045346178160844440466820491514309531920118367751970931129791305326380533480501071620866548236582276072154236308630496346644285671341154753496578480992258564869126369261013268478354664909026565416068691949013863448253712706421985228324467039427230132779038006482415741372574305912231574712685458798486506327026688533083542105998135092316711458545144245518122384105303845683690300355553883401674627261556765509618411205545346339077551020962411599612332935353914307740728317003345640675876329219674147162037832694171263237229584427220083076709850542417757789971704250793324679139914869946684595798114432942605882285915223705761173102051759544630410281901656402638493726755671546251653788913885474698414756116668192471567465149941933072634013160874574677202286461465132150014935037472610186026497827577684232186564253634013061400765388783819224379628984698295346100781996768083286871992010682557369005423769099570045834438633799166585146383785699257832383860835155222912984038509869016053604620123412255928367144984150249690328389793399318624729703334489479769303851698611546725147820385813350981797237172741921838760376965661874151180457389625301226283773169251477290402823463618034240177387604543200326384559099445248612076743090313719479783175169011591291268397143443627684057430570504230042248483981422875543558528846151702616461840155667541618937513041219398889242344453113940841197538075119653751368182656820291014713453904532939021503618768492854939852865970374170378027980441540084069691721191898439769600161180530893238032022050077670366787049438443427229270831096103812959347795871617676533901375279473925061787365001443227402662698458652024538495407120285308312657820484344934696455259268162093274662530739883281600935670772554345390896449241768595812106801872906684552054062988994671573675360900584144163371128464307523406510731471304957285884299687276772881454807570865929377384739271658122275809613524143439167869540412509174556664134742110605593933736541689232539588918754839158865939045708327052854090161720069126899289134058655629110619434022093940292775523810472863228288454575514606515208859203182406460379614894988576399007836064644117387664814744821959608906840942959138050868091472552572254221270178718766660851000726499749735479844809036908533952266250970860605704940906245788010692156517482827985943518704906643990002917649575672094569982325283017309202021811085465310504232520053474406293382453172240008716121582093020772408277443190992829314283276726256615254103612361223892064556205172693471711642667750399991133253692800194460350309292670851365839036488280264162528952888858256635199913043519722385741211516830286298409001319984525530638176037224966350842440165881216910176000701164342146609520393067688167075516551468330920597681988378640023972190655147727170159132730832861758318175471187779686132880576772411083935800351576071688175731274481483439439503379770965257167433602158442746232028981078817494684270107283694814885070063202184094114994077642314166704275051039054861513648490800585326026842953116051079088088859525749165612522235777223607151706831361325230424448662687666374794016202823835267327037072721592124151540476549002919440531501690630835740209425645910622632140155813544596200620444779448621172627935061938259266251985972842196014273550702407991412799756792166791500691524524302243394746103691425817602007292011427881497921426092251652883662157429435278365784313372904434259759157370446528935229946138868011932522725883637746632105638103743926124306432769234104103964190583711178286727248945462399947336240223256116801399941488730286648016802256433945281747903889659168374531572465756729916379790782165318968853450178442141679419830868487109038021865378940382896370425114739732098971365342563968881200108268816917546667914546181547491757209113926156670278303595819735328941821831920763905090776760990432850703307123690906447852580637447473085716208361388525601860092032173076795455754757279228151168814208246414369970115428236190941553468576736830656530343879002018151330831843787134497570642896130986238537502542791627887912254723165369998656691684416236953419031702689178113049189235724233941681239012228488218947094110279936300108501562689490186038671492339735857471403227483570895286367049370414345791715077897376316724505078836344430606752472183517814716356627247792161045454102898972188696542089846302873214275995990203182724484838714800065515678586106118226493580728960985804567380447765758303780374291845898526991024095791188421873532039380316514096640127194255452359049297501090649679272412407504550428109520593005308493542012758180281762881412311318135498893195026700330729728012519507308790029836283652068608041356909701873175920293888864840690968379462514749125077417877849318817150878876074470822321504306429434828720338772465445587860304539062784242251580586091884667772396263310775772309221932029476955678310434527397425379956383264905537110493227307823585186335502101007154581003554280461575495381997961657800739604661531772856416757995364838382439748968912627314974152120619039381653417320446530314541213984599379778534655342068686159335064549293057537669459326139939856716051468274586593813517139548196763019575897426584604575409163174185352662655735105788410263013456753376335542838285630832319928325622893704318579263219756955752792912074798886891870678908225530359792271532308287348914434486919967685529441303549755893349296172708458138229879425989957849014323868472623833398478729215451710141296729882539151173387299772310639294408273375842216384183603379115418325842609899241930294763855758003810786528764669959816875757740145760479668111026264138304202485976147655566339691218606888722299766558651379477182163864920800137838795931540476501992833998710513400510033160319765391420904908852909517081721894211154605024593824233756056231510709882149749943446781945385991127328006848326627145775580520775131456024741025920751598612205257067775402318109987570847332357198904363597581908660980827230791122576328540135162414138680575809379783961865547044615535555721275022689846136584868089848102206165090387083583741978083730375658429019004769956512896408129204197524045932094342886926453097781303303384348774489471238132593009481741202663327623780737514347824698391666604862950981280120435970188023033511932339359661574326704078829619219886664841218916555429260313281291670288617521448947786608402526155254399602161657912529589069646653551294318247216666590578545268921637226283554823046234489652641969086345659700788600710572840293727438317782196990834025580655517319245070610058740815556998900319649744233700262677796522400357006652734289943101108782522325151038528282993994083470223807956440370227124226151414006122890478971794521155161774913396582960220712227113529299837198992433575095022904559628871119842673487013644426293702969179688026214398543406393268389849339733778303710702567120535523439531606035500208230289213633808676588879963835014734337337975760065163132027821754701183690173606806503896284588946797921580160673323082485915298482678754208916806885599272867167418094443928786729979826468742447823156081272579537097239763855488064173070163346736744907532655903824350888672564453104060137138834486167881252685802686659114132184131768019738534469832798118973544915540093939219604422150611950518107130213254769418271823223938580931890253692704078064748626253647917579517428959885387557101722731201824412101480295240412424737839306949191448298517308956328303273517398200847429405383695513875308147732191003184646512914636993864956165862400626942644404490835593864762581079026499623862508736867816336726924598553143215687979835537740404950930308769281566299035550471900691964063806186977661604110307597725914922751631809706118050019772173708748034874687121007739070015268436899612019067590070975020938023250131418853582797138166186880184037922361459488298251480398082539136711857633020492646960313343296169068440347123153365486614069337455482864234586317541036049244333431850380420564381644442055413367447082106404786470201450682738745740261815701963217469025300815057226933299227500422686342028386081086902834227524225807230749803286204112873513713495978074270876709225642467419101164681745875229742530856227470292940270898138353290416266328732550927314485739087128664404803206954220378542206944888750011176043232059629804115213445615780436463513710923780267138709860513458778763138136263688792830802258126122461738272126810255968097884926021433695524337224504716281599763228991171475295551798394621912146248790720122546007571481007320411233054397569621355405246369904352119553277486452712454819683029621795953250682587752252992813211395681772553310800570858118390228860684353849476494525892293219149466893667688953396826739794167978345773785227167684972982202819618186189916866174050154980641365718171408662444237041993492587448557493576776419375924725765585450369590103608804655062543836932071413683842491928688551061028347251031932547407809557314245388496033004766815220409836027661400016623987415956074584962676675264959628208041028458065010493102083722944222340185695055276835399399679918352105594977936911844885663355677340191402851311374312425139296278599547240271413404864022936966175909220931123711778330073158861616116427167680851813149386502780888898145209334732374348768693478198196255191547504215894477715348604217096193417227936595631679954833384736246101200739712360791764263864253471421963168467166470659601834931249420683445511835449362794345625492905851391955600665317747842846062570228516237329768146018649060105842649664322318643264162495355032077692155787315694422638847605477890842865077169686335282648172651919502973520669997760597109110922365271962628319864635694702847421891374484027648224164282596343420632525439753059962452077100614372204648567675887176483076149426158105627880183251758204733753407495761341040196965824862457149330785624638831723570828262493757809280405672880394498060392390832807682928107671002824710642278653369354146757051323431002226149423028307797628161517167875141380483745749197126685633198935252489446016692974381670107325871036430816181166873169872863520762169540038120110504903282563753003491274194432974235981683595579675729215714907305944486257204828446092769487152914034770501749258129612609013304152267918398299505777526018524031914690963044947966267686881356615861328818854236312873542558255807435842735708002099774385303590450893417783932203800793559033684517145912893354659800911019122357128669744555557827854726735011777164257366745724037094568995988980976207408781695523497187829554612207531087649088069302011508145326751764944257437108526148298894566172479699232091518183547736796412145926020776357063149765949430189027711990218714849382574024200889680767876395328710867094128415196287586535523247767023008048665834066857516609349169977392242935333102310529583946857393572011895968480193756863384310258806300694378382602455886377381250794589105033792069281849418176030079601212147266951499608742206124335168829997176526983975535558817231708382908599886292593455795673238192367104165929059781039029148583401785036996233978806998054042358392939353026213451223476772854020296450516413938482449223072144232633644918385167930991193151850231019367466067148574378638326849812694879308999775931819046904180789343414814934222678639060474976885066107322673186395277849259021159224080400777343051685231369617901802296230593465968682831353386815139249401769180554369006497524003568633354670198702168813812458963042168584921287310897913457440638203936070824094464192228640254177049142580089845830003535131425474784977681557753551715805641832713700855677062339832813124214746465934190657213281968232365123758462202402604124101225622937469438040484118629283960925545323458179496099741498397372396721941647618271096997380359453758955919420821388785879011259746595485549745252478152116627208674492580824882257296747572631907004391773135496984824854043864715366497497049229252148841527077255070917091743118345564821105790563334033940395589769579859548171028559543927652839917204961096397213802792400323741198026111536573396159363345413155441634432215130192216361452034871945526704725393324478999691550665021755013018604638231483645182823753245881549694161310221985914565290710050279010764481574981868396788965216087127055391132205250615375292036682211333930721440253372223828435316962243390969902175658703263815599595788398214509209618716427017074863693583597585063783819423833630862128682208875103416038664215845370483357610563262548373531941897564084302251510486280610424494772804466510725520130767060591372784557274108464877276296528868644767177292149482004959145684852267670063108868945703206939858936473014286316597509214383139974227441005853056673434608394694788494356894682034399753389120043698237330312320330411054500997538891040970010851530875957436281452139129630120799490453866370447890705145570748728209145075065809584499275937012606500023428096834642719484065273564861677636322213643043453711326027057047124916468655520419576793465474668674813865872995050911821282108517853027843508002880920145566340411221453677541315427044665794429860795886023634024917766911706129469168219734106859630956923739746479400501834748674282158489752613556616676187523519374420906236162040955786392534360198482257222915133980847827187798869830825509835108194524855296122718617432413545196944635747777088168388169397364353729278544602419928410497058102328969140049975075407280903283059112871771232461955251565850442013593442293438793775196306835419365297722390496088205581908172732147977666286714771384620513750836599032763999970223279739186984872991220118552712993864210708216662559258168660348136061689974205500779458891592378379086570582462289728658022152811790991288652522460059144584535365521988512413180347771489263715847602855986272927848099515099276403623852170211078914417759811792122716196167084103077224637568356808182020832127997809797492614287573887865455314749493875442662397588387813912845950104253236619165555880661018215567506601002734339554257165732982369362083993969680031318749866559904728357629626001006091172592606672691534610471062540226557501602083217067130752109512557133091145188029101456798596604233090700246029800636951205153502294655350749910673587252393931639036300837748329547374899972446640223089271446166877302354950601372816846813371773519193545729981149092990993036299762051178480713306270709918179389841051414268390835076242352586149090480245651796857851170635144508292399027658303205820935256096941944517635700763014723836701125558713402640977906790390866386372021938389486883154300687285605729997010274295602174460364778112783125559261125493577467072454580793198505971485842014149112820126963864735299355710138065705828458258708738429960427187823540901771369126412859242384710378377785498628335276212567441278009365830260527099558143172473888789370470325670685962124734816495158897364868279277960038196962187661598740761084190628349045539436157878601383420138480982160603261805098586339609095044058617903997903824665033201677823859217373410639143276559210063111055497570915468423994782917273599152555673828314686583942035516297572385742028877467764175440381396932928193727389784585246992880973301407217731249322013451322658101291739438007335194476387510603007281533890583014926602853485409515442827016442751865365913033235107399322456033510014400979861531837047953460556593827932928630070345527957115349691235638473738770408043635932659210593667805801789054599541587963992985386784014806627918058463613775612448531115501070531633577922471361968032844247589714976380645933063460137657075823187426496698121723692255503045960702562880005717405387553052823298287590543935312520162452349151048767065748999654943996444529333634053139862284055084286929958618036893822656536581043795818176689136589565555052207933126906431273049890654930597543795512301764223372377482052038473993048277114849929295117853220384827361684314982991892496795329083780595793738901046097098033440495012266777884926142000055672676112011949892257325935231660486469800135055030328600649906796799403118093616511459887758295839213205821681674469078267450484124903764467217643436217285809505045856393967841765856022994189881035702637839612964182586199614142410908641339583918305948751723343681093426301484684888835559747236073378791376130789097075303556812125761939535757674289750083671047361488845614852472406873774559313632701195326955684366875959639996788571317243088444211032735470160746695938305918875979920717402901222129798658882600097932714639872934302777433250115276430202020326987776570876004121374217451275122361104909489311361704444466911742226211039570555258099758705170837746315769636622786305892786021615208796513481365269692946763070451723931868841307155555548579997098997429559004069667863400953488358896651518053259846350407348800524093013401348114307780225069930947538665224648781417279676025000860070169834091266491423983360087044513822718320482098643844604225934259536076727490813115076776488358858187257455839729086444029801374251667970523714219848152027768884534536166792412726894309441726060346177583477392923528770634137076838077519599722526548524962621623523266452982486750443544325652998911461043925001724850040734413445875208910303911394877746172796100314866579244288945172823864605893749963323653170402279896914547510180796453209935903357433965170194111595695868107044527449984075994636246054058790389583460917255508099176545849384625981432244204388176585231859235760535611316626728572732094715100175346693879626460233258041666675132037978443173733087408296471477754454161193904742505824517762150557558505570891021264549680038336250639454035404395000041537375051996449784581111229460332508136054094276270974463302871748367828919595819509574049828001860101279536208932354298052486024075764599476366542968908026697979845768389674027312500269653430869940756338491492809613063227651301950571159122587021012524530139395040192317733990850100861232202623584313112924116365869268091749317795855400455822549607104304397745780651211805879297611723040174775458437817645164913359412567799156759900978146099433789492792937269457980761280417233808031691992469821506513660255333105861823804502753530271506670634225090005608191802725222794834978359783977471594077959641775902351209663650645008765946088295713064368045770883928583307407410819434793134195929598842715391984138847890050190304925275217963996168258015628835028682866351852585728851202528179660045856374029276861897851297199756890839321945040574321628678278776690933413247951849532126138159749503832161885629943415528443600064335705921630920277168264158212361242762623769173709925640708037373886126309998254205245824556938801096678249835846092593048501098853900897971144394171038285143724828435251491085434165781353440480004105060465639459106359375926115323954281304919771793190672135049941789246461363577469638273433936005616439500869184412849941986950722853279861747356941881558350020012649191638463771713675234730407613549133957223187258066198124940536876222747441335477462798379937927112602644883947329601924855712281615300457833386594988940346887277215831488881081043300884700072232576484146212910881429090015267869098832047104087738539482325219257135724331860113551042852809722428247261553375317514327438330731538762315974426153131356132732196216515754487177372298311281205704340393806505529172235365957183015688040091035506912068037184587295574758550224358156943293569483138202894609062722598441395530571500809469759282532432041135553691469467678431305668202321785077408679923054961432813951868253840549857051903618284169552747439467033361390252952610218777966147242295315237363276131474367087430464541407047389481879880329733603697614807694883967406198101507833965493650872870566879567368242514098811914115865875753697544294423756358404928263915382460816875747860881226323781798865309116130577408077086922401250956497980478507402913109338446898300273848482510748705135838356817338389442551401076220646540773810268493037892755079579328914041337468037712599488557392486776428987752181311007418150662702119748599584175150247342310767418726687062711250114842001239779435719209648801561209437829225517964317860387457603040086825776922756034312923609913369949384565800759077483946854159785627978860498442200646810189514177874099365532766763480167693173139432013811896138566366604630846483665801613991011938584932593695297404238857557762939121209759293796922444358026466638796152393544909637529751036926047095660747435246213572675853302046133395726139279485439706592444980488011583038537806627254116729846557040593736847041856873049495638760813710439757297024723938716914490329603109645930201905108824837634490791646550793336689891755569346982628514856798531644375435284374384769718265463956014519525166283089676146145842820614948666170520212790416055920301606730770302998150362655895691327332296703643515830103079247261533821228662818881391969103000465348221177702407212373487860428167713941887777294954875865550114127255165373006794333052641330042956897031874392514539098623925884687232929704493448783328080837002493168279085651546376781468930984637992809153353882839934399689698047566246584671635914352271035602610685269246026687650470576734499608887971528998970469415064006904862049507618735406169090151595923707675130979634774623279078908565087120871466045499038040412486370174346606379501067971379619347533109102167537557607804181344382943714176964236718759086599008508881393598320915700250739805291294799323977222498371103412971587755948278752000032574324635287721774510251461539491551803170116235791453149078587047397834995091393903047456988739889328446794474027128487054705936482893635973337096480913889123358144390049958133220423559636456225806002184482981370112156751938808981784951996692373759151733207105607386874055957876730445137457855544229810937705823940242676066614103378321238656201032885179697798099851979644088439664537196069754315576881685746655554672303372465374518311498664575858520985550681851845721240781049991390439607608784951764617173714056039709748188235811026732788724549527980299697425789143628066114820160519646261890817295869927455802093395062075781538259114899821413815934885969515744879556201056663972018855211863779017396405151184636001092525027691491941308725956605886607491827684208895191019153731813757080519440864311793833674170329017475865827071874150515672562071766639446496362940510281166330903536066572770241071678391813745274610463046200370558496068482234724075143031671505585818874746766359525145234307109792925305963881148342660649610123748396363439494319844893821272242314014416835055105483345026421315888717277718402284036378429429353274985209231980654245634460384358134903200841385254090688412695746979675584687803068708529242202750179432286292117514297522751752407892894137249562811900198751740746635568038999932292838607427704409831915476404187313224234879802931128696688116668632995200907466808886844418121289025435947418991777564816641883271135493285649877777738266611349523312075655031652264517691042804980470540884990931866453672698579797800339859131134049921449346066063542795462223158958292480627369656859085703845669520026146743633932384612328895106550759377503565749101498513603991818150090130065671204237231340023551645405669502411852476075950921378232473726830831596649264016885987409089910292562372600609084575190532412861814383282347736997164368061902119691753049110390104341561901458858249630785889157131602791995178795899449593807702114346446845114071869981103525638600277195538063326270332237032792346072398287851728050735862260965587959231016981936147384537066685829272615216241235470940040314178573179336925328631345456792839024874160517358331676810959064423889803451870667409300821083067314677664599349895678757749601650464773977606047165256732302190675271136653619804769726913442489036607289830086302488050125901301337451094612558053681833951159381562617598955986498428641319879202088022824272810565238708769433648279090112296304588911983081053021592360665951623856280142519600109225041318363535331506561259696060268684476772515628664219604307008136283538467219950181319215148756728283591589810368853333669008670338932027831860792514180428904443934119466613976630435016943318178783334251095972995889794601300626044204821254199228039771114240347800574865177579655185253468943932053513945500018020542709423072962608936661369851648462120545778565842532166383657552957050921683833822009904213297258604111255344536544640292698217810242800420739878417075969792903467775796423589967488617019377434048478291685131817168338837036332333844112400875845308348730446266468116505834977167142203435217262279848254897920673593997456261872918967501912955950176357318148314685249712465505028354900580544910525016800136664161519740207926725895703330486003284886450963770277068659818490577247775759323664761153161476063617269309611614078610039719813328908113329172194749653888998276494727560855643407999573269974106497408920619998954509943564826931898323808221792983190482114232770228678505054118362442447457838036124687715979682923179915836167635240296656908799715483498207828214465927488928895667791852442913270120930209397548047396556134415600386614490299751350688273990964743416077528820810217315059347541546569631959836103244599334520617030604019917949160409973963255259253192959768256307986149233945552249150196004633174706614213630611424105839303994494390153728600025690351761045101398090019068373992709697165164195803924286965073923565742756172187960954028624439311981690682074633641492019576273722545314872695019550870576339667920614172927118700704573910560271852317096100050173015822529033757807039778039584691283410839031042410468986143440507705106733134646870579914451712570636483317750951759450116593863171763318516207293446207126298189626104361507996909501446299079187774223756994420712554310104409683965797685951035625443976499365001649633535356819431225298470320388645597184336262224024274455321921643733426424441641617828676171213558363413551926129161620647057807797624008679800484203631672190173587921529605051328187901560798260628194637140912666975225693418508421940473249664402845461875999792029712334649412564706565481395017549956112057168714501342357422242327588463578072052094735099643095626370666386471983793582977630452281567436339162543948990929978886252036633776431891708929283887729703521970782546533730574443717365919240351057409694565453185544537327465382493450048112768623190128431981179408069617098021789804605695860036170361806920764629012716776861517051606172321725824058390561912316236708433677787659719674600310801821689011203204784042902658115009903708029849614318470791154785129347814171938018420278750906701222494766598105250406218417550359907446776659954467709878519205487196261968538873716402877897672949888303439100872859194534538611688784324944267538584744395567197258743036724407653795129583915459235538769489182766363668635842000071050653599864003307320753563837749356803505225815501404042614649299900558808447504746761297518265592296719440666938771801956917125825559163987310159477056764800203190483504942545196071710772539448441797919236119745134879715770252919459649584423868382638486804484082709962192497260192559248400860870540281667237317099956913927807836935819150643345637456620157183450902406475881109958774320085066585892467281124573644116540521509847585138904883452527310816628566888905882685775132468036410409171568054770019601788868164792043527851861710823935322546598546362314053760868488500652432134270920293213229523777195704843295115893144083485618641513975396978577904633409860126256879817762113193430141872443509096730714951525808315924273988709456822828398564746956169524988767340698777501513711206787215562428660187399153450423973115091600067654157420811631585088476819247807042327413474014067341341140816650702311658009703351897287529227003092755011236285181121849896427135440545105745589537798356911895331453674763444457930330100952022131909182652237363654230891838984713148846693463300542116923652777611059024203109065118223245324607518210149052103292611973344164081785203247406067055338285252530673962810315764500920672295677961960050877680620028636678011237027725179092465838585371692485751554918286994382363705696718981822008322428366824986611198772260240326436439208095372940860111894596054448161545399712435733198551758906369200577683951952813195165732358915423767943306375690299079630387896578450419875865375416086335518318503993417931186731244910358844521514416576055196141423249925018079138790408299765526687242491195014698878505332599880863486163908051218908455477692376986161533825210661025046041165115346311750901376789791389701085564517927152835953622317946042935051849744398334519937623064254233157805304862174334944218474805269013422923700483838191644407975038953611106644690000354017785697441628469706846139130428226670116205063387469469192183206144101887504029287483946688398333266904382255132976387065677526555179179609448531884724742154259219888928723901097251744762551409192285714060517533756615093104603036687804862834355970226877713310926692673974218314251098693786465701570555302262745973627377233941325125744097538068462734368507475042119667371062502819786272185198693391901688301330338450846365605178608606408758566702226808802208080737561110986641106203286868551235968740866152400521325498130209920996915761261053308908971163230492807407555802812777787451554511276623232930594907320155263321750338066576910944306956429722300617369921086243619680987628266921555363083968555847318408203766606688766477269547872327043168083718328764931800855417961926157392776271761101621123088902843277100467051733359300734357154149994807423429909359989635809141515947356851920390180181078933031208272874176587982436798923022346797904850795424580689567639530574729313166489036255800573260093020713973436188386022704300669114048708349886460066514575252993519702497338827555917694632147872310586054127176062697146360571258922690515757082635893739613001362665873773387068740226851446830670936250698393646691679957707789509832377788583251625407212722444193894897865895238839964457422821328135441202128977658281594961469024436056923092258909448592137345993120109539593999717975380322131240970843630101215780176366314564792357060228071927714796418169170211134789528404339486876751144274852462772895050079825378301538426212140808965677441515417775524361837876774083999232132016397295001177158836192949148521502939723961432995886982260440078381105802230217650160249735278227964496617135667419256304985282823096439644005375321992501324522521430975888197784640717408964284438282606783545994524599156922852795775121698721732667570725081906813473465200346101610577892642479374840029361979619167100856545664450023940261794860999132969416157021129958279534479056588068235812556927169766344219896115293554411971242740959276270879023238608500727066881146982930400648527940589531715771136828881337779505255136109355980088819999803420666785868128485473571488036618095217040356658147317685280677581640907915683850439489411528518013170315201282889969169787684730663841154098634065292038514552102408449283440485037564810823079996620710514148969545609484595757089397467403941572390360605860510350348241899619253704356770871552727480016368528241079987619463201704255344864712608228608114597124261626220749176745227810864592789226762366779104774830693401879272652481604058944606752883044346971557835896913235826639710187430649716314578710354401187395053897099673875175412758598267351931171317204187930326880110840700573110860287184526190487859654567838964679657593168090119559166316912070552639287435766093339777716997794902304638219626951980040126035012550647277038585162832345108986893664183258427065004238069075074642017676560391294435795583229716784645373402718493738710311031673769927279650670823191124532883957475199654198957373381969427712807729314973171841844815160134838767819883913112788493590333496613907288929265596839871818544995921921935698765936681953473923576619464668083818206326630045498489876444292554773233244209178918071052248321204478580916106755581554607968144498705606514086313193489655966082512732145082098262166935133925696163672900954877788662688302964371649453406987878928882572559525790952209899398708867778761934831132084619089640446866060157822033617355646422069459808797775160855478734576207260620442507210002607936007049969550207348171745354654919730523843418600501289636156639126736756993362841256673436272354911358901795122028906399033958943990604114255124174718163904557477678733985074717124298601723592379940337628091589045760286137405218859794516957711669500393307258515743022169446488608673702869759656889225097895610272163735000008349680215124755933088813471655836843926552671811874793609494646121256912964359828922717828282264036836378604180886384159083746663586350600161535480206766852739380567275047240230268936725593152313908230761090303930509394747227764867067744818768809931508726542560540060594878976828538209070823852263755654426948205186625583413225399390941136094649621149416458420389104223009569463099808801568370830898645207412019205206620591123531390769221715292145779302131987847011804986434829097250252155183160317295126082616381875880950850814501792908913611261829226438794243803144580519080199461519868276610103945215561199196943411972441969985310289123070800179585813181095279035433229847383173451031316642228760563603409948399820871120720357515481641273982583860194954364710901413449241298471992225709336299804611266972909071704283922728238625328454521921941437604586021829196510286882808857196369339592970841162359244130958295824942130494238475005024730580824471765639287624658112435045704431623860548115176054938142336503442880760536992350295323190806360996423004844057345392585237857086949372094611047610536612915899507037539656120475903236479491755979682179951959659813702491545074445646900646400203147055007524512931280824220156438533957357136065216182305352842565034826456705155812115176104649867484870921886816583020751236527436116974300848074118944088944631825940580928824576867227185849029402952760878841674156894302533217831049176727229121101736635481814129107655755705924506378570094593854791598957860479164849482959026591235942951636584949440861417709861972012749000045424965604272998493718327829427110906025966819111229985438909567155279884533446751921900577725620862630636773003806064941431243974729016081982549832180094296359073975834852582539270318447570288900944590054932502216532248993427445007280019177678376241891973281184514576190967211171406112614904358496679530384593446212961929214437612285873382828478275619418835740877989713426533581205625518598784915754771374618151074419763249779147818852209326833424347217291353850430692356951725093689675186010858491958906708456630053024751388765489800876825484231084846024708414364779378074418505578042838349673971523864439219925238599417314232330506651292248650981992862339826386672268354319216367338474798026603246112898616631692513272013845943121708625716731472152073389087156935264825484681349273123577985636888731729866675052286836221498672620558592516594586691815868957387372357664306341396556577081376344494536558327205188360688588336764055175963706483128258888361153589132053073699160501913848988537089805655927690138562990559819747977831893822199350557848105659968014431199093653738257163981293205725771817802899276299295713491557036109435019031447650033087642707821192387341162523213670690059265086729703484356961769999968150967586578388824966519643362199051668878894988570289785494939249916937647340805617759718672605855055493438996001082808821930135175321837405835900512692176627019672343149057619674603628977763529683520133961060197713580401393288011224096717660520777317471596271421324567262251262475004192958931193980757506047837933811601443825241033420356162404389542406275104606762865906644948554814285200963681853870847763374855857944396492983642021292121993079335584308828273525107653318646274869551647383702627919598403618569691031825897373399060872129934251446881753156728701709058551513038208031529363702176532341056197954912011435183332083393044052370404146784741211243682783452492574617079104744611521699852288429641616903867411039278439875163378372894739006802006910798102910182304942537561376290880864888436044926882390735785906749813905733864720589014099277629177377149671387950487987376188156011257489455649341314429897968059193239661870035623235224967201766907252543101104107335387187270598023947506533237509734895992025002198044993995268191979342778290384527464359697257417181895060392870103488717425387224339469300908529187861041369090693097745977171538006067931192114606164191162931858003069515500322696489466567413245875575584218855974000488789021886150581286531954769804116906103773292004127546133425088705331985547411950154857699226025586492585057706938247067198751091143502784346261902244168845063404730793507968992067374060766727243224194653854183047726191004880799693584041449613391951364482334670641796341192724677218726823435826185357807396775330992880886051308481189410842172158860065776612475432191525584956241628795995470129357277393202901730965868106786225938575452440607639913676037329967419116055802866828850306240043374592634401554625988589369172419434832655626524332338375407962355264835178916911705027037053383865112278098976520427133609232507316822786532246795041035923777919443746540244917915385536897449680687249342666706962819087371443543945240802387562805922930234004122422937961691056603029522655324724604963338658777617356684378456038675697922286301040803296631106894042325264178668730515825494668887517665954111228732136972514423996861273430079834588306253939625711124152591107974012919769802507666303402221550107844947693881893765319209292069512101533496805980684144926159970628068346516691811550445590877739177153820628822155672590678834209138734859750865996023779410319618559352005234952689106957550724379417599980610451793843329939043160500356943111710021419068651584739087797050248470519049572996443477163348687869845446212042612987758146682681792703377000605581679083409241626932725450452029756828867709018599822882036772520216584367252801706627019869950810113453123390848106503770953163734715651256459031438954881877061967691933460781404322014790241587618077832336755993286928261409583085946570715223530934658272259314915308875638178340278900091896327087963180970984712506315979101044214000379798041281242615080843681171009980207994392345395986778026829084422110190890433751743751547244329660794365731043395044943642961469300288531397394718923599476714857277935456456428703277711315880730645110417314794138119072346954398282378674732945706442530328097871179059322812059849005286381972550436756263395126417683973855588098876566295318553123739423019982880734600668649681501571827781462152756758819237112719667827867924525095153166308589248292315802174252772919714418119898526211216238312232092415946782953501039931990280049610457491867343328790951701530093504493743780245683888182521728712410360072572695325917774852557467962174601204027419673938254317351622387689065321492628543359822761364210759229695318592090653995421270940589914246173975634107505788643163543074265681293124451148176562547966008714323491810225502494633790072033179610461561662307965885859250992738153154709081077046360640029476335858600273149888066777083298112578723985469428707859097441155005991178728522285684343600757737108759533045879712885913563940788847801522759341006054535922653904390905010387572569345607866408734382325171715029758178597426727389795990380787189034447590296896978443018657489406649406665625289882054136944775224125026508405812830272844438527923828120759964231299978383392129562580107934537414142510486840965170088714716198531644237985811103784180803889607856450190475229716705142724301032912812676136631184333917170218153532003738548699782016521946645317448843092094555052280786887589524632044006877326959852973857339860340921100479861861638426857645462013817275516716297657723409839549167909492358966578365543000571520979416273065870907316200595624099572999039224143583907250326673454087930286013060035354537753911370953992331382512656035349570029990932914934227026038425407519337971885298282382387526307868367727061059602195259825586981620750630188021669155937100629586659245332516389023782111817506598282438551945052095053148331227933040651411037281042409964776820161323711943769625091129758154775014646959407152286268077533524973817503039146885069726795811341722312464038065463055543058960032111415293850593751197641027892936683949674498532973933853074244319609092646550310461862943580300948978606424711320136900464696616933982949730841056156547535160742294792969010059655954342823179730437456031138485644807377552456506710437252199336796606997283916656756864593834674916298148082702423050852207036270613484465382126899431431321985776922661715664304732443766695033562786840498394260479024377901058071545769823557917281202761467707408067949196327835437217117521349306795969778706605490510625149496505408390655158287860300193001543441179037526847149152374213331573911806153053534812466134074880197094051985636452733670208625643571117461921280975968350078396505026713426938274679228353807114230774080212521153883518243844883546733457447757868933179308178564336733646233535178580706477911902263143497715819311182422204258660928233095256890640602594089038250079664267204830124432836685584259909925170748087805305184907789666779537860970950218829418482478851471698684968586971787019372534027298528713808255370096508208545044625258558271356755810636402366841459265645582044596312336747216502526829877013467815768135461853226161648087221145534860191647239637887685554739707176139748278808750056429495410243850477419417362765911539225932179691101490577668879979684108718930672529520345213023293376595471962136904368484687390183734338625161439971188348566415772983355454739336713938477772153568911868659603961761655268126372887721275477588020370161665619464482371858175682687270638530393477376329052262777743071418321795721186974027884340301479675348419735018172971776919701734799167155497025236338651664517238069093271889819223242915446050971272811593059337863347683669782873179054925208431468273043686112347662225479082713624087918592702741304653785727755658780002499724691198416804183258020472241690746791571670392774506724814183326984453109740160622917258909937083755100138894402338515513984534933147450765902456415967404881995646871970657003719639257274554402574238128162858447252644469886696942648231358277316508376179329338617681346851153903145220202462414032934904707478159714145265035235590181941950752918002884606163554233021021768514860490538823790818489728406300797900529628326881822478093409650982571802812161085241874705832804073762427958604120423634311216942722219021716094407142227358847928696660646537135301902511685068737381807248646535933886512534928139266954449614465109100762504206256137143959931497644460923460229413584458294919040534470209173343262232928991825664315545967599879263382715515848471301450911395676168435773997888138587706544127592255608595865057672354571167316269305566839314252404431794343727003132177103018838035249442284051486146755724923753768887016633935659061451878256321469600931409123245538294205193684264446885790718195812343895985630135910425701410506021055239463420923299406094998635036967685007211665535536657960767824162461233979458278773644664690255874600036065739215209533723390264999579961328473407613823687456851630167492158407940467344420247901226659101609352726905430120425292500636835338650791576446645902051787864532872363013233049387449230723966595482047516062404876053688709170098376525912256785815583841680634068427306055381056595952134480360648508000833186833864304420860825076201177997463517201103042082107047554347325432087458865418743313032110315361529712073703806982285535501465505009492099546256159246902286334874895003888656451839755779181537205533948125005782137872060151565474343276155877268760337628204251737771411456806362946244109472465167483820635172725689715123512127850688788729433269927434008932479747866498487563203500660131094670249192828604430636901826024559907052950816838028141569091697672305836894483503955952884256153336336226375774248671483197817223438718613472847346967451270710250158994262303088976183255065609795623715945115135801857371659434694761707012477686341406422566230850181215079112900884303806997194006312702117624679561385545386727189020175623091888305350463285415739404237829564258532192355359029268550586335802790227322651385925100887960354638990390060141710851610783407671245865014985546613077083182030726104060923887894161741019481207772664104648073497878399807057374365986916109803046779463836922329895331955188346950751507616741635658126843300183045471231068797902850442397226341589712092344501022334315311113106557644848402311999411726979777240231166834308855250987404909331414471245199862374620021427397736747826001491776805002778883598773290562694565867850386808164461306911706143513104977422665248922029627482352399184818966304219736997614876260725271297309407260929316576329013239147350202616528883305726008758495355162719176135452641802006855345880828219087897116980445829340330465832728915623969348950248432848078608533353260097630124109506688281598464585605097017566946241351105168028085616310193630338579487534006277637665021346293424051241349442116151163761930928307947324713624747962666142610972069012863770676616028657858383064342736010448934092236118591207872529725260427218998580994316251699604280540162830422118382438356616718576247920244966415704474010303704516757098955347999373177439444363300820242132389014867309068900144873281344781701499769360460048045896960397706923022541461156845026175055409433205142037278251550347782238821605097946163427495532112481667009002651584354022975093205586727858257359684539832489732740051258494309242087255993133268059427399126118244690920555618334480774481321778729625566157864457183664864412315604994763236441162081111807662104052221100469814389969541332485012391334635107141923087501884388121378581005593846695790735644974450078121280202308704076432703560144943546268720590193054025043073516058058968740807658397818329650850367362749716422291104720799115829209166512425546710541989645309087836158605286459833888601730545776621716393907623401730353567718879260679996755777203127094358262030707829003924410417655422327207660301210710762877147708047002549614171672829290740426979889636008411394707318021006357461661514301616368832057779380678898122510571210358796476597971531557155793153928793472151878304760044361883700834447111126049104931496426313072610636581552241895835317965387228238090577814258527606507666477394060018245162626993615664205226355932953539021149425764591183146967601895341232105175091380153311814763865156859634833975685391594618259202185248058103487644680450666295533717766493242956548999460461603818187695873040755744475340865675041247154511518005801245372414697836661318679067197153784217698710546389477163591416649681475157213529217983553472813846289496879119218842398111034541336632569358819309239016206040910633134833147011085841795417374240969394826406664682859686852403478948975104331772690763625820883536894349337489968335872466576020729043130889428400699519717998664822329265684359110342635520754301089249815601660848034896267616353331222100271194499791891266878380164436634393332562012618363422636722745822385061013474500705079622696935571559709014675154758571829171227830849610153694660462961260340681342879644840652429407104345186746863449881169264887421152196216863480477760475019246794904132098547917785479346436452346413400135998740775733892611362926423230965276869308122309420667609986613542552930788657231962439525633663033989363079558441960899321395206659676241250501936347871106607308136823862751498205614455361461877922571883834025203360879360059081655060799667063023623473781468075812188101170622402875268578525176564872536306164928244985047726842418766467908478724631917401913804284688297881617648083440547529773415073396588358113003670057922285374461615292871184577308841607971738531197207183080788601496712200262800339214677726240346331215186606593785928135237359976686704071043127265589093952845790150913896807689312746122191126142096384837609080308562353337598596907043111740429030611449221241521803086844451643343430257948836396337058325027066557594143222614111739801905858978275572839876700728794997801672914006941637990952882958031311740231532503432062052022080547909192988642445827614244197683165656535565043315282746157080386093558170919554269123889633931459613236485447663632561501525036237817112978372537877493056446645532913907066675853722708802840827830517542614295266488018285292357851742822739777227305370873756137555112025950489569637000437993633008010185135858855911296550706054834923993440967133577331072851053151142121463102075566736232516859593090847264989271758463957412487449056538466006485583721014377257711914630268055218128064744753410667413744474321132084132602887715836335975576719153310409005139412338440883591914439809531854650921190721497185931941198030582470521144199784526197378292211220267723187813104337525941650918706936542977061009138562212649881342349216733996247802443513397222732474531661701598091154880799002116871660514601368475553404876133864908565958448102761313970627915817313558851631185472708467956136824118646030771387087850977131788376996310248633062958000904247706706205745995844710358633875355090760121322603769164362916814832554380595358355294057401091612209238503153814175206253726935237266828226703743873780556140883695918445182908289742513168476720716777812403684648290561617998852718275167335636166569575663984250397993651334825356240865572064573180585924693159079852486582883495597527583133592677054856866745476186330884203236619575114410766681181352868375240312116580198976984741954184306342310517687668210277290789309510212740956067559946492320135749894675833377063182841738774204410223498389814491329382404589888641301626873357409904785436403286696648265487368869516274060404470530601882442043816996782363183304202177125869484470278948092535749619716426475286220895857934926455152136892504625071041826620412019277632954069066192091219270489402733365184800523304192457027627560769794664563682299116683515101467935875130542639197333611918876161572521204437090960118958198601394443330594463812759279956513068645605477126328216936130620206794268358905782014703828307449951721769443081273986140661174826123103570611696953007254941063415983928275112123727048557659874052153180040962846816939344808198015658337799021835882638926905833245918668409413131673844643792008094795155601342362526882021290551098718374199993802575607496493981781198124797351444385281392690642019250650714114126719972423867376454799371038537401449448327800995725601857907989741084226265178962377077053495662804203090002747528327599876977322019514910183085022120182093065315760874622110124048138492041761335288385997171562132411100137612958523606154301575761476051691099835258326080046142827436645228131898317284335412935593660646243292841665717970766088920528035598821325617926033416569215404722478154600058436809052518278784750493384410669832965946822945442695197382845236547910895303162225950041861776916015395459669737329081869746949815749004314206153064660803764280207324484212328083240990207547486167772000749949559302076215157315234399832466144766516419565343332877173638914308999802433407427212527774507475033846950240938870011731080058776898163751747066462336705587189133573909490726983861996017850904806401626904922756215441552959712614914422161064807498445152014926614058808679410966610856209706820755889995545630594364184715456685546303274636036034825178962164735908301973406279182427552011126124354734665726655876221775970496228068859338517047882888282551506278701660537591966192817990118373514255302344411373346563397166256803344351370656118480797716570386011097153638805205723350488174979553723328193450079415240371037204430412703636105690585519516548478539403360944982380580494714119192804049966135197332990785619301603363460754471057554261455775521532570776357494568911151380881004037320680999726785851485263479025937543400334907953441447822080421263747388016201602934218693351436065758647953365403296112947297896193594765257804725459018786824086713156853846856437602582525479552539539360456776777536314177052873422567058627613177154868158264117364551199664420397871685887710823636262973438891615031937866704114750888124988223081458882184813587259525477148480356170806788209434857800205341371088334910518788670216470618871669011397276335834241366068827841394683331473843258411644494159987101386345145684559137162934228033379469195645273077796922691711614905244615207397263129013095015476694552761669613247131739571015893593416895813962009460776836831906705115601285525207917190002183646057132137497416609756621696939631909062609997215918261900234120868466589623800807184914245375191333054975179243531159154222184678200609743682548505506472545477940814627941964063029646261186247894194032939487466710662997820920633353867187317756867599731612804845858827583929860593671552618098257757447811739485198807716650882086953976005225509628099392241299826332828818661516491333781430100914255219983126453391934039993102476644062815282939651459701974381543862286734109624129539955789895333164425613960836999835794209330105712170207272551113719742081076286081915636171943865814189945323055459791168302411548827734334875348301984523473145370918204675813171743819909688471710687634484868447395797620237336124827588343605517502759506897894124439459184347466441663348837727992851104995825098372118899179321052346815969818121084679088019072473659339442193407521547736533042653165053694719831377104414328745818834064702367176723827595099170796503967989633731979632160363748072154905521401911418016624618203277009950936729251452636605967026925866899572928078216900865738986215888523436983313105873613435918983287469787253401350836304107562815893366338489421540005688161416508858768561557133025119966376102139644686147731186991497573959458161055593154028515464849657279524799053922631592820097746936315059083510819047841413415108288394709664773602727405962773007280123568011892971684497446112847144120933791254766849652044121399565961720292563519778583598063564827168654167835265924895761779244987547545375839703873332522428001273233373256416231763103296005914427050124089758571660301379226902350386263879052961370484431697568422145415483761538991100745066142819128237565342773580631252582714683744576510350641215322149402907779757401624613323917837131105277874663762230951713101637744887458727109730553583370408849139214527591441069627493294430259179226085496948625921672383738473823341484044100109075593202562376441254799119732046779850044085550268505546121885830323921926704031660285775105317631672924782256943991318788607972936014908119934232052901031102313142462415484015068033263527044466326224010158736097087832349436896930770133871932388073640394497576950249378969786648497743291738139604172783011677366440427076856208767575859842321385358387510203160667989836354270816690147849024085351049601658768427674265675987645788659233259272520778066044923984948543617377889770340070149147859367410449604961382709857474864194889250166887788945585393532319845385349305937553035972745104734937285367942676202627546596877645885692924401087407340285368060963402436698506082373733782352437350187572993820490915104955830599310540317171345108204965671860598512980285145241003613643000623053318786060402446812614451890367973994755866672829623989819524208271170273463711238275718539404003747035474542759938417516917940986419464619761915130528670644808089622689433410187809084668615882473589685583203803005713568189333132228587549984301462739200840168184606288198875749684252928410682155390967144392778303169142949458414689893717273919629471673410333704247012625447687392998004313473721709837630117489197883151044895842364237179405482073356212826664467371343271525863110597920398262525360166264870314374950702253713372820524095464539733730013164971385325451070752242313709928333425527277388735169439849133019052681250502933635714208652998434174046542390046180811764837170234329432703847850543904604965011764755082747123608732372048612191097957019633865739752654263424325062158668958903452008270662154499925551333576411601962322361433869384715647087222310431359552149159190710234333277382784202494597580368796038699749490081054679534119157631417254817136317478145320902815605348135069631142478654512000857993985160674503128695996819787683289713948914101738922193824527237648553865132836941711524514267006126954479411815200452462984778959982201862668670048798094198912744461442635983334534823741124304718332536618445786866784887628880822622523387576119131870915333626446573967869368032213504587091333860094752432468532257074515748700956523236681188854075322223870973839030326667769758136610495353350005289217053651570072417423127645391477643477252780109547091045164311820999588993737800937770716488608130870389076013314516759425241669536299207669903343262279390118476076660393882789330922706945923395506901850965995198466987760672742879218990055026085722531561495210379446960511790186006088828557445888093949127341913690384395058457323242576303701778522408265973327740753686073151386316063315668623434329648587829702826981977095528587075473305273169914613001844079211751346226690945667958902016583773298454286369138888688266913277874059064858297793315613282439920394560631452708037906411055440212404485664328507185107047567362374434699269247918400233062055823752953592446262246667308964471325833117365447134312401027197055772171830195862461666576852829767265839071313676311891045589297062780156907333431971261839617626789169143051503071910019857890913857919544954614068175554424337612877290220657118534128505159763464815401483036143421641233196569851070831281645532924079748083154105341067016460926800811944680580683178350143886674164467966285397028394008568925231126065739965305856318553644624662436943024845519402135668463715109116591980325859409990655445563757394023720236300923703863798041880898451939787713511419457942635036291832137765382886034559764711069157232560186317683728486058818422901297907922858124131541193978466465308012933197687635239112657215992093575955518395616241977709887001160960136436054355037411342667736235157200432169500768109195006570961858089882047450094881896110704105024890603390362491068871202416567809552413550117960474100563958733596941259404013689668475460730340090493989237388755479935348360314616982516436360949606482616900102026471724514779120064839280864191989413625439694023261859683293247619661833902740964146056890198384187213424417162719918300410033286047989833445622860478993260514662354400775169265432185718437959725295133819641699654544782967710454841899040484618578243039750316573141779313553406117451980942624455706804797795060001079114510564169632204340759040160700658079011685327742003355334993551563392715865427227544348498695749352961046058730577904943467468313373241332249442001101793356017912304107330542429492454931061165832297018792567276472141584509472975569450013611722987958502181431584777458790504171440419436516116351986005637957086467899097115523718236386789533777036199251174110106213432308196617893354163943427099774786278346110768143683561322664901864798856391876294420354265700736870606469056886525514988735651957162141497274612517155140173361675227550396162375761587990391486731619728024722306881402581644089068662468005607134107372362321132546772433980377850893233081771890591950388411943298837161208103115402146302140421608503546854118895751814870179025949951793149193657618567112318227843622139797623884544856526467633348692985788614445886271247962148933567123167152684675924640361594907283577800024635630896207974699243586045302356243864467300811173975244671345297366192565748428164695624769766700892586453313726961832812336850082105697905627017091982286118929517350430984539713409013847616964210095541262803900075057517958091695458309445160683099233501094496995110858779026201192609662847657947056435943885531617697249403846205627918975882687352979575595114347753585105279082285827150486472671241417074764324774006631296127073914194384737723466648197726618126272009495772281855370751781393093507736783120873107381108802158862421705049010289711400371807501147952626702111995513117184972856291385356748599157983710313874849154628501021518714907863565127419373166328690550784335055801960578738364265808065543877209032440831674076707654599672344174097812429429045835021758100283545790672772116996349526861061135098457241023818265887912825747877847572901792960105911971361247140267941337646189472713090186407130123226159865945049709988866924808946965843593190794772899189413355746877536538953406103094392956917812197137512035295706718149211426516037980232728280883539534908356859023684889435487704633323764338748095226057550507043272368313334095953426251467367895728890018622239542387728150343235168832815243562677395757062313793537148535366165146117217741410267264671748134228365874895030631492246164248256669499202724806803517025168957074189222078437231681724590975652512946583955512361331883213234678031634934006604306968795996942689207440105456471578557844395819124372977064454726114341457176143193549421589719930272853738187177797577550964878583311504167091259241893590549306235286454562381952216153617426720075293077447258838239754019760333831163604211549937270837270435537624151441076263815107016577949099574607042965214305661429894634689630539276452496530901610746499549103326996573984297157645158095481792863015593923755624477882780571416161007583875933605097082877274465221093186231149727765629508826276959378855685449751074315653186792836326433056246024579693237478375684191905448900357154015015397139910116981593863041658971262802718909068893260168017023110014704048142062940368955173619535764511625599468445702682583223239434978912483530660432603541339356255902955792434098191117415002645474469801742524821666112180835616489497975195321256878780989923888415268581730361568407673727232654143962774684174853942794827288537780465066695286389085531154012972732203651700280772381009509874635652279732523732246343717519108057946403120354200480990820142664570664282234952710823330270579535704053522357124834191655015998001903785999957242657792413380017764923770632709218849773379583480475696713012434330775592750209050062479374183781719316865116174771922469653091021769627061676466333390126807877574288986153060386079438772336309394651269880232855638621599748590016003761521207088815982483744093766956738847925860866650032543312615132383068732407401031878057174981072105227741350199956111582121395857703946362578875464093447480676513700803253563763196510349643311361518712786796325466265295825959255937200327094664661823173173701753716169727503721191092502968048017189525935443158533439401689578901233350405367201228005326114255875947713349094159955796497140752012048714246910624238007777115016455191497660812572779046023188062720469071909556244494101347989580626838580192629596096020250677905768813247763709682557169132623863230636702987988139892487903699370866801274488321943035621372655420119907849333402523898238035826817724637017083577280649525762105113816124660933481921834460768597043372135662917607540800825700001302903663848826278569598927282262968073594341023385935346570887948385334438308274303069528458762729541942100885558058524792425017615184584353334095867479722674249264613401170886976676327631577698104369125099488371132411824056939705076535826622566129620963130622429526876919168391149814181301688584127602400765716549124515118928030228061334218470687303040620861047406018245379297097366226978888931248638465425817848314666581513433782177710374898058344342211298463305309514842251972640365044861102339913538785114247401484737173967846157081693297750818489849973749013414914830299960835414389509763357335354983827869172661013003457683883554510107571650989408700746267182370675573811423650442778407563175329757123244397948156934080743929177502883932816334428876035724094205716720755352875987959097489648560977034218683332741789138581270083246590827174028232987577329668728469517322130675667161515343076395865435457745825230312645332917932276414566868253841502846749032957839813141141533356902207866840718275595801463604274869115201525524064960409217848206247867744326529529403509641480616257577204539876805470973857874708258706971334416420032838460484185773923803258171205749009970787622379245822585136669852562660585017097568662433086572322278396595848118856731772973402158872721370358973667980186667049471463590229809824724767218910307078987472767576456236125655894047303669882503122669978195724156932431081956850789732975821522108471948236682626871785139114570870875065944367518256180145009821008033770599608473262969066332500966284454969736509733014668848041237105074085745070614599786478549734768145413977652888010163259729672564788780751208042489723472715052650890510548146428101434991984672785339104167849491309473223814213094598939665834052290671546942756911034647946867374147806185997060022177718441911568635359688012976290705427724191721900353692958083616793577843495003699001486536699400148845831482985423433973271827600883471299440876331181665267394875562020987491389481865185166458562806851944927903104710007383537396757797593532149145704533104650670706082578006029485548704207110878303482367087217146326301609207352161042515962311494648595478087131948962986006291190923340293081422791256206213264346802323573084312276375193762967352097247288491590890470548983960360817129690321707954391190431227254639134458115037776157632101130951045751705987492279580841038348286073638174623333611916126863402253811169306460393727006104035977852753903706599722512117998852819400448987936492329044812665892938350903715091292763892290563373142897945755879942936206057101614256998046318455087382774947542892839654859081232485982743083872775932046834081857267988162951997754582980464168909883145172057110725851258810254490626706564169551528250029307034928496337048272396323110662958426234752804438531401276580280086349928647502038246766822285095440171447272164722376290148183378230747213146682587429019584782099613632448171152417077848200723826946322533187101075519644003135147400042018056571977440184587366549488958858355182518584685415831823319071106708714339853498872853807496508830766649624889060082589005880825996234742527666645599340062737178555031089354552616371137878938251078180832818421957701657115467490959488898100144948014667419230028581144746070856756045025005690905946224502412801758785420581896981019205505335388650363843191236205073555630606239814988341631434632265976560003247178672289571907002759686696925131446280651893151135669880100634979873297326203781991182628033844084985563003990075624368426299630542953258014044912673676856341209714038668092855187842379579890996959484097333236786647254614709488491325161936817037818847187923538886176953929656989189891180608533612157812782204861348372510975569273377542921878806574227396161380624426880118364553495453017710099926866301175458625333269801017253724431138625799845351929645274451168249009849239507919156445673283371752675759173843261115573695336840344530848800892316440434098003706770943315163449803017810659063204089580651842040219949903675965335821102935577146024509780591801734748605086279727457603759752510540372793126368909538665384790877418872709771281014439786792402086767156250140941118091248913869809301384572441972535656355791616330827506253457062936682299279193614760381912309495212331036657967050545084834837363929701718353628469471658371334233229276130135968377896743911687205111188048622119287960555351903551883097307457351610877465334433867555392454657425793090544256149964537195384797084161947038619414183573905303341102383637556698622519057022595931979123621632405074297444335357471914943624726839076538397993363902492151321668638129676139421548891438926270973249076216983255004948679389379099703461705072440686924477226934370231500975151027734481634567783250124172615930365900233454209406840433401152058529022946470336569476752039373151072277007581897390839833005773562919044854462388484466312649636099830473261225151386891538004430551265913461232999284957287374141166026431583187865595774519721175916003614041192288300355760318433881807705658524046901854355561666829652354863014220845645575455104385408075954277624182810198866518070252332244077017677624443853185236688029756770745010802970537342749922355467845148664043989712019402148779096099697723205047389785400056695474355005011775446070708123105702895433815397351565330940587304665893538037828359999926848488071187764049005300359499910285822893881577911858160875731796083537011809775572050662088825435054213078940537391470861727466346993550822574709939227499677261064045597273240474234373145536339634477842588792813762536557634989414174246723355994049752043615402121385173950415524649058311309870295590717411820801350206566363684365779834958289461749151960521283409328012132623122966197562224215432095766729718287442330621425229015339000324574004745881578708251984944658593991762049476481252723306243682429890775569148941084255371679322783293439638884077986659672280811875801276190508577368598420175362938575234205325773472481154768381289245999863264339760448137655684822448432517090741563196121608894406682763899044145159147019929576341595885189459276135678093107015896692758340410955969035310948593862533018233981616600670681811618480001841531319651428054816373756870601829103997069922370375434623447117067662988880334952192806790672900649334947528025945471724438824077032741723777965080052819565131470392000822726400724417833226182497713798700789330976101194402011994794768057496664658613592601524170153985515453620549363635307075242740963773089320163795302811847372901686806426944878463146125676858653076056424731529930782501471152110255821726806306760605045581432585934466508466630096202828661122509046810614079313755398216205709167803986457153364469814500444582679663385601758997480989610625674605434206126672646678725141562383681819204092993037596795062518690452577122246707350446946272529901573795196878834893111376681295334715256724869366428049260149405012608779035006960119780488226796047618358798771196074586971811108347909614820825566436293734681532052940590705191147316976101980751605826403153273862368869555370448479214922493145836930206753357310557676635433912492494612111379213674387803228206584383183694619098303299437730077626377205392114437657335737390987332733854880163785655954451672178562430416887307238746445213731730989404493152436250734807553868417113969100377895309331592978832465987769409461526321594852027204858540680470990704964048245612134159481221174710371193586239488387655788013650623405901060105263061723710299049268577329976296507500195463073815660617661917900503018761487136463096428635277969426952480739619107376298029806517074717895681324230102093641078841984229222660663733204474277554518766375481525860757427501891992532119635242890172801903557123772116149958246627578304222625300325792436010095852327461477077410181040781119381874965795627988030601039307374464877563085999249816725879800063059759852985308123636499506706794726677276070722129135531300906597715607196044572771878372453398846336820936682571475921900969442498904670638960159664842979099850443180263264001757673810817326645418667509678291314987653633725757897686203433973474976380349564011404436657517430229348743693618484362279256884593092935993740783244558436088257137751827766260066732265192067547846756022315889133583061944383082515533988119371540872382679160291229548620848870542948517691267283924750103982441934670851785033644383703519423057891923010258858497003191345462963386053554256491843733361691150540710353947620119761736520948740197589215032550186952534406315097001418620286082391398668212340668015866375450028347663321468296109763602217039936059448906156963105092991447406482823716982367307675775775005152479810548780935869693600816308793659381966379979566348031871994108265008267314743908435282562378699608645093026962624436535845416851659002374611593963180962632239657919804209007688442552234103270789995340578328308443535850911540670273585554388032006178169789495714766981684700396910826305489750211140139230231070186940155533403630656244326967757895017231791994386972457789121833322845482852381640333902714839138227674885904345635005641593901334622009170638003876937833404504663052819258869946953908401362174696937746966164106007531976655148627579096614338693023493565047976326979628354951064124296845648024888896476130929097531993471250528348829712288310703550411029954560421971836283019412058798560362724693363834448191267864465621351537023606832903127561904102572404838531932481811765224457817025913346241813189601890297494786908418257366655182958611442765754404428362190953669377618284787405232292847740217878574225551342546613184996061082205562628982582274050177636541559133728732049732428535807454155828200349884208966462694968344687042563364615520471580129025694253999620607967318490256979950904256361270695596804488255480785144566216891346741046626596912209465157752566939017648634605169921102280343337940326056077097360211363994697789941123739733471605227833642104891207587746984070119338994890564019768207795839262976304241862570950335942728295110799459083209519492501927258052535139345713955264741584485866866435835507963311817279528627555740519687136047699009197633936613899756407285187102495352699772418126525363432308678549912081062303748184543307873222324883351761904461555717180625714137538791944983486695289830818731374571845553030272018788421366238850291952346250328498946586396758447056409918167608065495026929516546741289425789061700505635850098740844739680908087619263853779387497550686193820332485417080139671449101864877093259562955408020080853705568496232833128761184247557941782678900012522528500937983290988183902424775118630564700597901497747637221980487171356568345070322228158343834241610784298519289422612809448002800906371478518012784291811594899645089473657523234917261575011960705115740213528739990087025636759832583641459316943803789499600167914395010826088049192320111222074490911956247617661042301277282539300495830856680143169954723543192981266345894441480267866842421320003262549148956253960593696319210964462172071687272694423501456503802148093098745278972486344221483843304031985349088709629314666965532912281355108218387971137529623117481194557881225711118932350462750361112688825389142101916328360381286350566906972581222355477207719238256203861374091599478274538864528745085063132691510259195868632732930864756486175897952500005199200609277162397725681549856361804415800837102888651993533314202558658266053121260226836624305657934174293777923484040961028895261056148161495063973552873129503638073467261259544842335182200410488041064261737327858638577298342145897540120767469397418000100213807176235999574174434449382238648843528835366442884743273911868068027680765956370902708924559509764142344095419761888149121728234353984527738617921333650500952242004278726989527716733342905541324674026492557937920738629479102561940066045419411117745962869531013713652205104531705461523810299915646020346449099465028794880237447161816731336542610436622002785443307535627927914731975688994409930196612248049309283382973662147075835347547292081464214250748800210183990253271747868103569200533716076957287983834550246143443656870228018538600449875531159113623426812910154702307762031618528454567530095341955541324026286586315090231744662379072862118697878741585343547479512159701649159182641858387909628971054621880816706262413982091321289182930762156757105494464140284301363605604924501119961725479012479903658724355966688982728702807930864719200491684833302155706648330782613973639396420217415174250313500390292639270172925453565859767810988095321568421701631927007302637270260166907813181941397974246251944440966223491764724557658108093523957849466772877453351429447440211764467853874033980554496072970521476969903441825734093760092364538157666375283507076078888949492124828157843324431699868309930429549046733100261708167670030948188561922427143630181883295359139911575253074695958104982211405128894115502408366375197617785992621301976252879215009941223254688971725242912830896670594688342019152862059300786121718831202997626383907982920073586385801292920041328521615299803810900813178815032724193343018114021742289557071784682775199731521521403979860881081891322891666469251707736149567733231249532424720781908719921536729199126072546701699153437347728866734418446652487072321396480567390450289761627414419216378816197598661889141486091761609811706133488718176416540794134140986674952747318758574083854505505860813396791234573029381422183323011970884926149933674333005835097745574031890693726698359771547526388325001241739969712009656573996780765102933921025928577622255564439405190881128902445344793555586016248678208206266665491752668716875374541364921767673950362660167365650474209368757282564925972072183958177558291657860586994947204695118198043054070034409553283727316460768396221276298825982396853278916959160838712462798563993690171610336370217229551917502204720890293683602229822032730289550538151761557099824495368217186728694615508143621906702960059401437041079561945232319268469713266942504668255410987014592515731179516639730170199096267305448137664047296669690063182152437087450896869204862796971738948316906365830191086510102825815015088371721677938553476735240618595740017885497245507484834749830863789083488596478060832956545759842335430032138832304744417715099796544390032458748731547405666634282259728229509816757848453502335782147931191473604695542164183394570105808755340347548942138119365290353667230263728986608608954382213207038197198336965657375699740705420430353006641635799531491355110874319588792303905499290980695137450378612785269901295664487416420728535800805876247872695760682534364378577773803959947039877862821672727811738606215020143499193919264722586965413653311194676711125028147255923146300883394962080501449790658433698539867024169811231932901253925050094707533677038679803381040773953056803442803300408171272430316214941630664198104990800395162523230790142347652385624217213306368738623058072768433061537828714596960959166093868249366047288799198448816980358785134633771062075533344899402433271710452567939549277106249011493217057262450909343194498770600332240943643640266696548758656481678979298000538852711503341834990565229461790560558140538124660786179743281441433614288555890734031915628051221936233224982474789125967033649650275575842283315150717457548739853322887587864744076847872137008567263986735467724537740425527782451326955973115180686956558340935502113968563109492206593848988844682441424688625347877209820775122241853004652046517195124807968557864443039374388836608143019349396352626764671027452978984781666932498901542626913373666709102317331060821272101909229168788566566485539013601676509127779724418477025164495138053389458248377184038999718505663728809889039106974052986275681092949028842309232179465829607676039121240524259686854038086400608309526631952366872186845192392594332187362474201905834891767487956118519462387772610609250304923645934841428453694226173954858637733655754088218143165581361665368898209505711340220596469049285276764103524637055183244617424868256111983922634136727227323619972835551940792574178178042981558650034620567923544380550744829332457677201212423222830825701961556198740877854356482443302145479626341723919070953635410588542660009908754341294424000567059919534151064590049928852340924482054216929491009323235841514596066904007566220624925934029904534625824414053964591568818809698728603992002661108866653930991326726599294383169084585529603350693909752724112058204111776595431340945302119473266912876132074769929232234559970633028681933571583480883740805706300104411891108792372244608057243308290689357815619879577188307477632004670645348579368069056834013655996442219253874791244165022180415227328984432919115416570717378896478345511263448430759541210098126986970563929827337209976867588362087161090992322419137154914575647353352578955383124052549965652957475268238250386365465436439158828218444189079098978942629083995177303938748795043092287044341187371196501477252397403238345956199751392573590650848937156073543564552330089923267097460297905612077893675280115044548143421704127323542721486942908607205524643596934380461449955638320355906334014619791849545211873342022775820444404528261664723077297980017633407687953406172013014986583209776860447566344464235089752993279066766694129326020589839869113484481223058456728475717781367734096587698098119937523252887668124362384199057477118785556093751759589479120162946040830748523950429474543511536373638994275859436522057654038782017134602896432201497218673817750136044692480241254826974513652604289843555947327712911840880213090041505285769271767472676557253980204642627163176971462581901066845861141093068787298123220954354130973137585015582846815179420405498399985150506841531451236782171397418083843455235625321316184436862262322787483821478037271751432806778013974182677541762810820893210896062693357174464726412303058585268000025427894311692794151053073479475823698956645174352224321443431113256351548395626117044146277274301030000307134270335433635569824343600944824348093551913369496692475237171359238507732788234624782693606365189495938955953124151579633225124657736465866152900521299856929578885330626658233167389207445528240261157009420776520379354102258539244141742823275635433064456975498948981561547736067915539344522066789198620564017672679373374321238353960765443773610609585943871458040827732239725773997379114418006607666542507139526972936798823821298579426528869057635260386591478851825077245197983457167818874168629316375450485082376384489819670504910235321115829542405653244000127734932153163754978290166711338594074683245814459874721395367882391685540367634984460815677364136555246706798278694913241350666878255751467531648223088146220780345403453474962467676287260576500525741624626683883991558477447478838005688376550710114984618416068649770608659993403529235468109118045468203563762618984956945938210188225898885272985884881409138077725737884104349668888253301404920698409798819261418682074636305445116587551313786581869112339846316947868563648269202771552154376703203141459916185273699425075980663415905955415722260671338768824281505400310761769230022442266004305548300964239179789482164234204937402530502667153759649475792259465792430084499531135951317721307073768781107413139718284967708579816119640835336779369933829725990397197442702914863808200735231397437329779821751069808227818049266738415323889420271195134166897969519057108266964271811806170637819529457051943835815419207230505910645316298700498940228276685919847531777180026520433174979276683004260600396720084608751240715887752498470251813212319052285087527763735311830176386746052444456224089271955352250939142239697482329234564904855627027583785915195593628258221270324121004658773626224167670589331145584452669117931299992802020380274310247927156279618766822038751624914794355190740536337232385296595755788885927085993466376250682859530098697655930203126729173510786198380128921042391107259206915498852602021703001060590180026846407254255674659106590133111430435305752994568038865777300141477004723349422102082022310503636107096771153548416202744715997883515144220468703794148656263731564345140140124283979946929030300377538227664276646054025626799207814047593622461737012804634315130406062612278039116080503024550200088280122503664329690631524454136065226399650149864119708510892100754504070974931304951041158501644153821070594766528311742772711384187449826980853527489962962659231437402087171392324824643395800492462273252070836598097393208654507064771031991181758317822834008808188955915778769853760950496264063396215818399540935271116047096971673972635566456494331540740167605014850642685608363214669457344015387710802814362339500032034419970283867802488236205561132785861583884121350584658705592322027722960459513494546474548518723036211784024026597985117100723107672141273701455012968705893461210277215177327253163129384916443709877420924243979107209569828017810205485749671385854406779867839135372931972805098890525332206581033358755690021400022473154016015502902503366633074699975223167422912877879707085256028067570755410534619595633020861399974313701576999006758361672095374122553962736399945884255859555673471976463544756446302304642913605399550674012840389507381884275901298035167987380567079396501919595391129363223925207508085095801441066235867306787006116477694685486918703291605882039215950542398235906021408892770157628243013186270627721591661692371365611247451433207781756396866851082133732617636597636126694812447931650252967639768503993165136712026439854553118984583266331819357710753424225223263106864611692311380109277779015571918040702219077544732740566474305771620115011558262396127600979361753934270935993035089285141679078722679247817642909965400293436303462263877241308285324220035533161446990124499939263647695132776575683983561860059744128404438224282778394991250867706947286391755611269834749926302470234753280240600341995298902630607419844497800115910115115854703514309528497727778725351937226642625573268856818006960283260372539145387585177750147335177676752100872661755741568655540582428976594602679449180103686379972686378689348303034478050171679737039588561775903031468915593804166082156128364360620261582838257363538429411353539134862938821678517101780331754846857046143598076609001908495009094890879162627856592950894616993540236811141434777970040475756107210282415299053254644744421253718759666730317140753624651551564385318396750234638836116424101044743321539609595942998307984715354171788700295729543402552786466845637920315546393271413744777559321572787570623056817198064339622386858603304119779893989749451660059640574101576864966794849401799966894783823395491324746842352759686223782306929013100234946575108877960640667967372834561213477539341846418901179853221311743904268841513576840801187647843844456979740128365741047353237681644883751689594079568614763009669769071377794160560435685675751654170922537604810052594331824154281154157196034218763864814211987373980963715835193245795061058570467527563047548164839024683795400015854700895279081129591190786982174648490437133322998773437798801180580351390545019821914196981263466022230375507127701356663793757083095719342223702359251784290383172780665406595515765157242123439200550205337935611315888835745900472947951850857925903091611819186796762278144186059264967042288387755719718027960314260244402625625867462218767324367253424785672753543006932130649128837927955262278328380819197861683715391334162859446452922417726945646142734545203699670232719836078426082558549216102480033632343486312128315543626088781869501000348185333042452656732366321508066712074486107875105729622676466806698635353001854826852532881515128586025214055513372704728880610970644821118649881156170755844452631522449857692532684124755792395056288069660373306533995860397111896746965142658042334888837866590937186708574175761100751577915968752799846546941929877375106832864045499616478383562516294871789377750495091640123245419530511585754133322195259803377613322652637449197495576680331171122928357342461768665505882810586423303533809648157922901449915470705734102981287709682858857139379674664883782642649768526346391643226542931132406822609856062098078739215523997892152341089395066395527671034718319509868149236199554285968397531986781552044097719094145332011815942605294322887974157237223646613495462318500228704602655087579774818160141791794950903814282972522141018812409968826141665189293258884511452590914334194943432043204921279488058144036467778574691336823343082048246778051080128958043429769996498272441975483824069962220152582900011363513865433396518322129806820988895034312977380027251017655798388634815793977920701940134285643591619013889289614901245061934830160638277923755489705280008764480453569241212865720004710870691260290801531571498904138796409171549802568561142908198535523439095508702620850178582942014426134779111724246461833380044740792628075255414793017497406653541743757077498429954486223673723732660304149606425379079900223685081947855337075685371168451374723580605189133297158581327343367696084023433848874816512161213324901681101152163128401697686216184654488984816042574537886018728044788868874477082862212855010009847920233621784170771515004685193147538157757542296028919621926358518070455067625522608830302185369540520448371581113798659422816933138973241578651004528120528862263389277391300225976505327999080672829180770871037789042434602753466798938302513285758449852308546598365717725418109229465336970741685227213471650202834015485961948860499466781015790256759731294212127068849866565994545033389848127377762652192931662923836438451252122658592528849100840308848925708631470213538363686288674954895291997822112182161830231900629553640592601596490352755662785769234384701045695525004200787642337089454865259071857801128086336407727222140633508108013124684615856726131224079099540248555467539826205580621777969455243158560573728767153271375351075216096790670457106911485771745606800322603220823011968226004003095966455842744287880346684007683680284074845106645812634642718568306553070032333485639071308846695818319354077720616682409095832945258729837770203074959330605170576694503557917895219291305576615245896933682922434838616767707548528445747566870563482913145850732609904557929821087422843201231532869247704038541022352447383264305066926572086385332448126365067900444759584268063718983993508618800436894359938413676635168160329236339000858854047488501584357269845170982722589126488784980548283666565245275304104016342824938297534918514540186948121976071009859961607292237152549614243667804840474993141397637232949213067673533381840473408848949241888147528944089148730699761378285289092895123859836607372959245376020005007888186727944798573890482475622859220621255362932359183570376879791712888318983917125294434437690987151227152732179515753664364019490565336851981164149947185421354802547028324488525592096888333836955406045488561077404557154966949940823480169175174072577409394377428658876286216676327906786727362443579376457118025838632415398994734876185619502047913197235150359671329906867224056658250770007557117603452718080755609256818670012342123120903748582083237307589414721998361240805183854335026783627275713842914903404038232045742418202976643540317329858794086587897447264508766132037410683595154566683824117220710372489988564432146590686910805146874193779409151793793250455890478680528758031696036686704674624417341932998073483177151154459961987655838826014717732771994834825877874858579782811105455872022093692196642654608140199556628778632251857088054632904620788553809497834265848369812133487522532676162850899363888861881648874159865489252203871230213144515562210856302465863062137099406242609071887214648367633170207099684985683109323696592159329518064228849343588139948689614204308765644383386078130777974729882145821576995111606870972022317517598731044823139440157443273452930383136996725465756847232738354475485884516715026141615102142400545374112291004017261150967823999778660013888701892048422259958653807539021226736680507161035237096919435379885254222300339055664560039798180947487201892248627209536314216381852661786067812367301766806747050084458126399034732013183538967491368313535886702773785017800813027758842360996469824626058334749353145392005431345733848837188618534717266050226742752704577016721745235908611422433101628822460573066153733517749369865055985261210669013787263450515690108878430443546397583872841649968728337231831256036987756668328395779144122845160337254586668306098737372415451152772860848192720667319584428980607268140521900093914056917563230524291464879623743803122727836126081401172839625057056200891016883179679598973002428541011679072403681172929250520643570092149168668969893216607582208352188725963123237896178800562730891368082894445425707645176516181410316744643704819268710226400054353298849918821298335102759042987705604886226428148661123431112824328796352447388596394807722312522843812534237916653925619728465544669464599688382776890307277649449532125791501274353239064796515276951679668800463147888430528539400906137325476594069642811819112212825799494086011439336276303465903729249015609515496873678237416409534616765910138288231290107439164244923973614923155744075156082662881315604978368657242551509396570976578296011100269919710924785032517016475571751792939291595438093845147236862317619920360135346407808577297482826230653048673879013323597240505730736460132091765501405913275441803129148053659470073180928668520031644048112622501585737016191843050901600791409929457678652150209300029154642602686837268811290445498047436561891081001480403992440593978736175439782835523687229485468778886508151273903239128282060111169889665035100268094731991902180168851876731464939941069033332171194045463195226008571717030745227205784096160295031006095406907227385362657114870251941848698753372279784491054450166755945180801294906377590184459072360787346545730850409529764742380413608509884245429176562466452358481150753466671782783782170624204772084925126850185797720693922835523750484303498836687788552602857330987415828530314282447078274814470458234156963371728921182403215445854716355793387269181837411170131718758764558110735022583899301575080535857408036525425720236835334224749572305780154268091830569696382607137060733275416537256851325903292223528795133292283933710863566393481977364688480592072515178216835057775755348391313973122195553674472643173170611737416746167790591033393878897487818776234254372757332971006320901203290957036977074208419699963415385543611009977029746035972754556760894418378687278878757588364566338592051972526555676692278986850294225906823095445326190305342527200678697958266329288094617633917477335573576243984081191408418317328107867652325991085181825161922734626670839968170249542852732512890360582522380322398523701789716370204479454510200965259987401145988659892240794486411870905780274783394714790334533941318849485338740542523818425209853342010128183413004070795726635373199356505805105790362323062171755038997727745062682201253701657484484305730207294178272507846993736317909135577137630058912490311325969926240373544293478933874150695516784335684756889415768878918392437033451148930138736424222171135655739412484009346321685132337293247968765578138491815303701925750153318026990898872888096174414791282218089819600910459561497465597731364400746349250212539257669129200895342950671342670571431755159231294115322618864661198089179069018221503639562728107639055180291555083539886619592622106951129690291450484573480805392780833998541790339184922736351421236356681548874652800991053473788525008577246085339638431598801004704789149678657088454839468798287800463505668832910093398611802622556720634237348599492430766068324386580268537271740631492027711161178075240780756629783123361143425748151980647374878946780960088280701998974308913389956581397793989579235787021995753121345137974317216260560109414624192383733826943693517708328138266902971549620938285022832906382610826170065470195682890738896676072281379340776303069498615130715100162244749540585065642960741115166456964782205320528528245047238757003308920051362723440239523100641534734301780348088362430823613752177650783382016431399214969655781353262906817124721227412728420772037056401601004540447909133142163866821118478774355893393152374951309134080046120814140246518570078821489792773145794604243324738142257943205181228638630038454967079907359836673537278399107964112466817587374802217531249364220924074443453729268179957113711489745905157138917927808246576009808925294972518871574152424783373485917519820485956986993921468386583372795300299722114616288724816267674794151966915777998133644419490355768367266076447801376904998276412652583406993869030370437322059578654166994459484441555419995197151931926445898675100158153189838436887598041159088745225165541760319747654263227418683670245972066812136247769756815644500193069439441444963115653226044519231926436740990156665072466172162670306517559359287297308211012064532036713960725917341416187333721123514325429643715388873252690251323943811506498746492612771280959302737313773130681344893867049221221245075325877114573197428131930118482923221768655110938180207355662871238133910809378792843571394076272774693504529356831857909185484679176018112854385546842866984489663547373473453224246680545180063392301102323993049418918903900927070570472119080358595883043382150995231693693917460180419231174014651359361002068667443334633373291872069466093802500679995456270514068566213381444946372608482957199423688928356677226708581535044557143651026068938347333764383031697189629641666966408627385595947383268923107691400854296907231052435283257627581685186843631946732600171607172527955081856100077891390072891656149591595079446990908425864436693581423922699430853121881242927803830622897468085727432541568343728483500827967948185732744008520444525767858522101622104079674348730823054431079782785458856037208412519630483123481272415183432045668890348246835677830667764895767649587952442940531395076531727658451155936331008058135657856428359521658363150238007940333635100669259563232474279572472140060513131296091597439677190446233064631428524130213676260048288314505742356132325057950089420645560742144787262421200421103904790243302372580433424595336789708018493831878512387932081775780588963243339892985002329702178668544261483589758429692088433654097205019352747596063649725327791009246089011338355469221043839380191861440180936931367397421258547551916748779329834038472701463815350026033105240775085750571571750883313615915363266401662500959293467935233110544756370494482431754947979935370716773924210252610142588701641557731076106076364673267812610879628203485073307055251543744913009449764863916088890607978007851666584283756437084404701030554011161032769192277232716304142029160018611612178719690274318798044097748867606616081882482810514545094886780920867841316808146477948059571209001650327717515505945830794962592939165825001898724935036838374173785123178294641106668200598935381253571936619706521681417539194487000645871158510791109631033190185096555678454133873960596935713913815167559745582501762625299008062887435141735082641696179304393777580661386104382409297241545179869100850649103516484802017054829940939678766741306275745244534100511852603838601543889939312366667120670350557774896827964311951654782786105642201529064413945177568898931724478108640701466678005765492636693595313049307733548101044535064820270737134021381197965190453297385195916078246741470851948199231629904995405557750053158782159176054415317166482861639869235502055562510535585628731637464990164509067260465846625732970240704378637898323100405458619386441739070956746843882698870498864812809995286411989936030243139632432947253428132921906778421054881473833356650124617139637102995613346799634548947628537197417625353618116204204290842490055857270971111245466816069898017156688172872561907604205871607471811943476225411002429031954120686571297599317542767755910652761886842320374404771156288630727131174361242403836738584884897738468714884838251786466903458464092330912280975232836329141628377131867106973160839093040461927078554919635434100052157202356148213909813356542079038323573535710222235727599634793983877580303731132757434816544131086162813316341202614242297439863857778773949365379317590882040464669060469914415890721843772068808611650055526116556524417497796700221219193836759925472082078876185783058977234579506526620010107121418595456281240036996656064484106436302776438345812760082357627212474064123889334413244976245154031346433391424784340296398159067660136150844554435334030637921616407975509748357575490872538389854885211602697955959771816914335909287129951085108362697755342859414087984077999996489426372878967961391696102228270018233245374963446745850518377462491754001788419175046350066508829282241399978020017474317002845528168014172681451102569135525428789108074973168323298921410953099203208021766019678474622158036982103316866475708413041215483890740652361305148769654018145992170862001390795510829934759912347800713205453948430366034949781658680354138826536040135607618307114008067952491789842840545570831265607540460869930453054792842576491481723022487513825895437864621998768059627659002190687521358944828728890783044940400001977115694316503603162380475853912824864939206074871158008726917589702402124800889339081654892319715428970093076835658244624588727646400605095347132082433629960342763398972903198213179880302481807001150032051083610786089885610360455915786827108579711927389696041646552401893659301736723715059608246355326626931270870233156271740456101768527915973242311874584927698403388364526749140262768601323603921804239350310303246934067061190406001685637370939588309105715954339956504650213412471836796753022138366019583094248263236038419627240033583963006622813648931515779725251221539429001447786970023916704208288679549487385797117048076184655663813814554329624308123859659543043897094410297931075080491008435509276706406437242948693624956108152075297553443740244252720794667725720720330114056534483201878055609662910220121219991947335631007683530279907157538012726400617960897315304899670127264060345197178711243272459751347158666675026131183606802303303369353265696670120944068716849353117139722844074431174878151683778783343370969394256490686035264768687259647848070801663015197512435894752372685480633990647288591978157266465063903395621596114885538280842864314726013500546833695702568866114889688802452670544935009633013884762355986632843814954789984493117479024890495772458164987032508664786246943899959563905238891725359201714691232387265385000192303704984239635770446637258889209863570795004021064817359737548903836462484341282233396201504432707345722130318944726536089832059140135869665979283527577381618947976151328918978263191730475847592362349134507587582069272588301907822354756344491136311065041313413613517306442126414502523520779086636464246019744647526083929193796241257819505949544865722518821886334893203406947174859648645820956175273413777672422644774712835240981857406080532364991286719149175046905290890210970831185073252409975415296889081137350400923298540144035737538798962468018217385876131118124384064735672337056056000542027908544575963201856799148842730281080276033407343790532755317292692516158797265866252885084654195266398043938472546603898566187074749804442436817557195429443776752875839552540511590718867056797968515346555824640992667645410779574945230244261239625502840365975837895069036162331408897003934138572512233578419617973774276043193475949655068167033153610319632805972454954125456009152063260864312811286022858012106073810000440637077853153416870436345545722971932213103557814256449710984537129867549826296069577551298853581138659362541727419712906997244250712820191071053898240312284824939942477938261557477098977393023082255022643723937565152280753574939485433340760520960392607418719821951976869035041547570364289015417567866623140403886805607421130814423847381970528977611670637669058427806396706389572146603051369389820470640728120409967216256348876054514738180104519193606657471397936428360963547858368922182826567950184549708085961674266192243383162168522333556228032008643600994639960023149229274417859653621709656191198891671727818907117907905896047612627137856337945914095700914365523565916804212810585111137827022098769786702293388306218637963353099440976265456203277906415416038856287090733368113935256249311436571159009165107468414058235884160154568466790519383327503620809968865835107401134789981966996685697608834122980048786966922421594687913657685970881352614377974067034788067588972049856298017772882014154172343918526786220084259601907708389182685500775907400419777643773852505860477708583703096021968453238705326943210860825473151041659955282445344346752538357259785538125760808995676185665417562858519651834834254358941948500642981222298060467308032453588563301411843942363697702759980789342426090077271861733515253900633727486862960988727857874518294740715597961121111349027253132982922546033121073896815382563726553675097073906664658858254961820498879327960104233662249325597960533571775511887513113196689427724381487788230435345643546849506901136427437032717452780819383566501028233652174448476438626021504544157753113314772208733950964782137316534576626732187633833182258007435200922032451560193088043432889393002136269252302498238907526409261834057084257335303458218393739131539131604493454521995655032244642871245556695033321447209556009894370081015094125175379248720245904685702879877120299862643524260618526738308951005936743567698769445825899747010455701501750120616139877838759815737653016693420827370320485725792520625183584648836631310843497011313410263567163050095726394983259626233549321000654911653163280936512905978673501514983613963408482699334990903013448183719652198846293123432317817576668196863950571839086553347239950935511956374778100330943104118790804531025281455708627469990321180091281241024522434685800569250719897216413643440756354055240639222226944978479645031509924843825009795545579516114952670853954414295539836559077604901147605995994071439643722054177307154940164699759143218501722900819580656787412389218681088357874821463055700694958689293889229044456238710883738484405413962616136347446471209398096503478236503166406173563974739537660792389585906513339783622615240015419078190469365495161224967168408501464803546382274840575160570026444059623457516357002166573243013141492732131038526104581386840701288953323064021789892595749171749947264930766577351977666513450830419689974718545443938964322849170639855322921299900867033771529635628776000892917606035745714066587294971967324712285149742339475087610542707952679651190524362898413243229216092840518744226213523721922512685080867074433935948282629712027156677703183347332630236276760510247128767554920448519214586170835668361525564317096784754875954820072233309045543313342235389261621966878068255522988019863463910418606226362913722284308767411672543209520935053881005303889946574489510291723258509889159796235767867749430978098611946867977595181457821896557371699566290005531015659576111236592066900695585975914811210476826591764216972922094571001023340511318185915410887860410611425954063840190812814619538136615140505479154569873736323033544565632281309631788737049740224246343907989480787896964972426735252123830086661409863259071402392124208730543430976172668034776184393321287716923752106322242419862345138283879979142747529255985581124054872157237612101362461124813078493992220556130662275811561973524051325666205425744960523528664690132226590116360415729809893484980451121194591736704720116139737524556260953308684163317728293375222020345958947623716310748085739605585210727563416233928106485007635358982564781582485725057037109163304356653457667356159872821948050838275605250150137526637233522697595164287178945100989503819687698844901378246447780232803616221080232738760997286990675888198795134018255483407683051662521666449963052659859461437063704143454406898440107915514164559229841654167676826428500347538988241840462378603960238409623893921398305700150631944086890295928943356062631732988739885091653025402407292218587860653756999082727873579539320641181347874184920543790572371678075383608957442273655432541774066864041311541929045769912864032144501701537519546502882271554280284546326742015338844546899120625500794080839379712987655084177980889444165828872651938371403031078849904728214986787452355369206479051338061679315994945262182672782474711101852323794742146133692132051885388760604509348554836037697974521582751020326560631271254085730211528628511012542788865945688820361049650063227238256564141828288255217345777258233327332947030037958178566043250068305161085339986292609407613973158231442523482269700521997080453411423809425442428304939634406167981929182381039248357585841372172522042484314252732576847016044304242508649349164432893255908227958534846145750709678866491807178413217040816905252846244482427175226615361895330225543992250589266833999925077188853629595976223280657954346722379194588860183641765884290213024621979306505743087844689710505361062860861994237582161034377067104490735998545077733188776781226034580557582728250192417751256310999963473893269870002003042689202604001847815969856765707428561172016144435664391715890355616923662719183221235530485304196334208210160543112050996925962963458616745625078418120337102240156977796900922397914300734102297601743241670469879265813140471036455116783803479399403914576808304263224446627909496211117820530037976893433101539579788701711164340231355512767352215594507153439374559951481530037415450455784249290247991837519907936163721837551870706426490236300711091213489601489178329678491781445338335564461723421912531598178589512534237446296528526534644503220226422801736650826863561004033768980668755916774913575759781753243221953579827765945693964879896521367572979935006386572112665399680138120195760427947627681238552040221613249722746755619290406358477514792498430071706036283043848227051692694110132249157549984615626322417953798879100474156961221507020900364465918542423558727074498241311187285715550775352168873920231955716776764384215434584745615309761004111782678528072025899334231419490892263574881597624016207440303303621183938510725482486696500710788005849018068083137959302693744076579890841142577822808200655220500086531278497674426725018035520441837681585633277714972024581467227140626490970698076249921164552907489326822919798015210883670368393216751879365434066612136614411867254898501354632075769792710949323736926007142216824941670760957674716818439762256448383850347117857797065158186683362364979940666638272142311458524927396702619746491780877527871675945304142615683785243981616823495463601716781122885273572738285864337961308948184249275161470848897274725032541767339945350047925556779574468830218589573311025472498854903335627107216731355102842545829519042467321190509335951525850728126970612945954868173983836107881624145712823756524278943215824144019393798347479723477290810768522208894667522297133828830533724813812817425596224106608939767188379481737589814018234736972668529796995285701343869946933041187848403866408499219611314224411830517783883646948289008222015966441632967539749410322774452282228882733408655612121037781212209704647775302650437283324859406508948659201447609906827583785293548164671955368538380016320661542026130813172438084184715375059726856470474045566146919682670071971065728216658126697468036318611632023393252870320727827397095939769577458293050428870278609275345794616260391764428928672161672161684827360681134517636331674304223285911063485787174661995533801363413778479708304483310979075220031526338714020887334227005313754746412994360672746038478827193845565332677887223160639555132121609456678016686425191282688085598419961904157239742611195581046595505698669676385306536414212712531693677644369779291281765320664975090184673502173152976075916681800711024834847631222846703226884575934538886029806789820532835106285075265840902736995592634949172406907265474689886004784525152418022251835157025359002654109873242650394944133897042561196250842005151518413675290726908350125394095054145687994610870555839959291184739065969137800820887373645236996694411835885950937991102842050418631788601839662078807573867280407958194139835250115474828395725766865484277158124357315482631319106839164387968160099151237582356858423574580878686421074755831497238498773131566609915200626462590022728190156806126468106689798519558293395461225930464086004521347742544746357086329809367552841602787594614397601666138248562742818466089186788324735887450381573839655956209686507830202794611519300568759284041404307786180343836161209021561565951422156002926562346788652946735313304236350836988738718813471731169608924591615349002897473477765768132938688182886831507836680576964709469969798884586994173351524064326741954434753532386944743131717247598672176873713672856071342465445864460780298257237712693818775744557095245879255075423243664505268534762698967426801654826883694579512554118323181956652961195196198996298248779450346489848355135198986186223440975345010300563686139179013931251083829512243909071896294924818048695110538064587540669186446370848804864865708236460898937374485867443076261981121711802631869584217367399360217254421103397188212558485829186196624432853251412612599935760007648878578785798686772655843264908565984027396128025307244995295462545229934839373829809084144140457992886434032032843974803754562012962817237928509117131319620742137144185672259948678853126330564038795754305832859385931381949454903973717542442348568715605417987592359041472006805989293669798429401772248459114658386851641580839048837921577322364032884467807136945959213194007156343818862438596092974432350184043577943157665917455973978534794811670031858021068586135946189400470310734677701818823673130389829523141115685064153217947621969985978131757896040139760752861077602879299652566085690129359655859410488107933288200580578957765384989223347698329702736867837801480023740540886388829711619266114755800745927828754376450275019236233554741048695642231319479746483030533267060534548522692754945888381871197074330833468062702018199239139107765744048341321919758933195019926819902168916042665948689255760453989528740981330022460532186104667062911332159971689625139363800247651401604876070331809644177506927553044120860755194065848962193783664577183705091168719474308067766968227022838710253715706476125140210414592639784293489713266370090855787162826015728492298568912381293547107967715470522060437393875928781866971198478957691876283801207760522448548591942899100508599575679770918808559094475711340625125476676353387684033030257347361439361318053082081923707076326076829559045213359033221579426196108645526363127275230529664609159664080923648637808635328705225655983007545862868222125324843045307215705029356189765482237894720801983906458134363620719756864712482983685197725090365391519116290969737569331437960879964395878268396472104024185460667894874783501507937715969185242859498119373510085989093993188346698080610648769417682397936431853487512750261627844310166976396943542227930757296609188691568714011933746016131515718174821936286990212108388079437019133185699571211793064719927914568690779121769998229094413385496861734500906807345627277150068373977682354657497293074458816600525204148662553916279544011577584097619836027510965008587964252682291888258778571367758593805884335117344524850569454701809955790793301620533672620197858858921320776575442907841319206098969438847084577216529183964179184535850317772313791690342566337598167607868214805553691382263529687350184387069840835032166329265001838531616245437194060559460105143355370725513313776308182650143570171342377337054795577298097060824154740936621007144931699989571415343656734456134360684564234687175927170667708596591698819274781270443868339693503279207382960221866546289760474697139041906497322469035507357726825389112129713843046784448457467587979757206929980983320821408501650823029671259701424764047856034840006125234610211699573026919218836972091049566262725054436341208699923753942198326565315373981893395188312609952672238237639459818325733967363604054802524622812441861695209831557064657525075440237945236958438914717933899969836901731317379844848799467241319426047818006733642826427293650445293124007640895083824858419863056791292165490636262591031281892947862196406024532154641261883570792171662591542373641805106188673820391301929076790454922045273331736236038421143466126105288212840133250880885259475248712130144017890557440219056134417069097141524060317282314950228426435974921030666988424579919518914593203011850175376626676272245408136104929269820423174714724181540522813781320926164226931043627092077238348386771035750925670922993668376143975119117117972819627600783466418303501305294105976324036265598188419424655335118787432284874151496830204612925000036756294526686298760085294333354850154138628301567768083254145108035168100721706445381524382137515436369825757676578642623212121582850981032110869271536461911513933076505032415799391902012624095902036128838157641871937979482221943608463212822032049179535130411701684114023129112966506220949337347725117132606806986246137994038453465274694673714966271482982678548302582896629296247718665894162900103505154275770610328735497937954117404741875349140187372000490577369056095164273014009510903311675433085331762034852854987016320003815353797977004841101140204173077504031286895161941770547958565989931185872791287085383389868199387215929756577376603502311523486916572345378357435247109481074769172191339643556432549804354343664539457609757670882608136305065252706472396552472122113941084852495222640796032575272734253078051941891101535834411647317649484076649215613380080528190544969871085787193433987940675845534941935046283954953052238009957468429742856133772072675533917093592314294754636382999476327956008423291551192992688045602432441156060597449962557641577054884711855923975168895280323515576320613811461150530289908993257478413190682427355561825015544791402964719170545066348211953837207636326228162376545086587653727493841568667786896675770751119483680686505278388912423833280720610276149206383101165663076767079250633498291943603785411288326534322438179825564710503883769217349310872585539675573597227147111319231389611059649431850365594529141944712392904489898671717318791751022924006108710647633664216142101782206165631774102017899419553093419987079271480161522218370080701789072319228847122456105413317022123790188228115278042664149500832507451942892222452833324754969624633625056048639509611111105310767101428079133697980743507350557925064304303579623612689651079471168203295217888032055081183565388556285969935217129088472357538676545262029357975073309129330730030463368062298496519410157380858520436664079995556120808819594561464890271030035578075839558316593743429039150909714917138893330894131034122339409538072505578102453030140358831594574839446672099528795508259640769380693940910818414163576915584009360478048788485198400357305976618378531216247619584565621194442791177392953329054503359313021096548099118705588854239211418915924373664203058901669814901915127142525664266035021314078550685932885107742390339946894328176613089959684027293611275889225705716067074235593941848253992513645672812586848559819175426939777781279991811887108591441162784779456264936580606226803329177410162617825178568898703299103817836674531737463337192266189069557406019966790936187602495239253002639173851147500362389472123990368975274071845188087376638277267051013786856939933865275037129145090279356148116171947956616065214156372052428281628825213053604100369851144626132067307265881539903426809926873404545322143016038129539721257466379717124272134719471724099835311720740529156507657576751925330700904361575060894768377831313936004072500994872436739060361616548122841847402083122416657908950837042844062191720972101116030906478639582203666263628225707033964415006532479207198108893925306782565447987720396892220296025725125958009161777509665504688190228509314509153212620636886660849639752293275226057280334792947147237605772725413647027457332337374697328541804902560829638488403608388469396955373469028397930448574898475979098125224381154662716548762295284867911807365019742256011435570297666813574128197941332462041567507326627704536886481131837038422027603027545947676679292665828002941344671275084800304283923096790743723832530966816049267182437947558465733551459911217797552767810330352589820969618335075331706190711168890032914749284273075471559810772045782630795004475124607126007560389418207522152324070200980637743636152351633274833238686217575397288030296019307490923314302317084845747887958042251929715609757328506845168187107135218337585530967241906839734675966346540514463006553353738765659641650810558984816291096776795314604197062247041989314877748947609685043163536067460405902759964742752901722269378956100889372152555125619383165363216056075358666775538937849315013229439249103997549803954958240203269970215532583367698831482645073117429905574553971684051180167504452732579443706203880087962582469956454595122865713991483768830327887111384406923810100796891887561164678728337691861852023419450534948897217576862257423705061089902636781246613644760193329461968652530179102948383252546138755854202270182836825023376238383312183489460710674316657324000327386462417850376447830372989216537335107406407849852400819672847611879423988670676894904412727786165611551373417765563963941820531496434838127866911470179822866567552123455188681295346728652611537575109913801255759729428648391580643371130505205784954652146799580989017992261053557992832443169585192280319638677994180005490999608882032423082174063288353714926529574635836775675672329906565560729137996442165806755102459796817846582991336217896856064864342645994056992810199064320323019541354298655949544179004167823598164565823812268767535294081551992977932079554910301074275362999276880547878224423083155686248652284378150534545808028286227828576333745370925404660991590257987232411760748745647166922528241198171870404474450268375745066723970796411992815587257811548617843794135995846856775313581332980190173486016456264514362377575799136655820959243790742947480856690169957954130007708761380487322683052615877044146038659283084641211360383929146619889556099724462268494016477526327703327551247679631750279091044522311256794605833296595041627964171217953996760516369436068052870322647238427942380876172233654348378645735374981745888501885203933579841970680062101317422981721570272876736898061574052839232493561108073209289273484124120120080222065967302748331312121262293332147412593486589745140584196763895100736721056242648056203853011995097189280542946427711852012994656985472349724578363211829260952485558310009171858249829843584862100030628746603997802735136149185151996791081410852361693599988632439795222490657650126823608016825404571470578067282556336664394734419819506087538139176642409416642206624971170905874095758299136241800294643154170290006268566600630878502211050563075163347209918420344030759195719255659531511456611933276875043285478394071630178266367244077487778217505159580566669036682052469132425254025824951459863673275384090228467583247126279810551765518180846636684304397073204276568194118428303013006312180110488576704542554942476279875842251438519415911700384473753711611121156371273657231787181664174477259822409396520584092597384711460402986694821411400815646493065554590618510534017396393839071567713557182898282113464162729199000532332355955822399945089571130647404273877791250279066793866314352996461822882974668518665332382268271834817877354431137869213699724466301011410598026664477363883114552130846862825733744248332220587561031854227785013555415802445422503711263132455234801325174809965886154594404709376742469106835492677733928275042574249970341366733862017912532496060348793261041211517920154753661141264707135106389949551582649810136708519781125423150293925420839121029493977518875567300768535865938635251340749181326869510374862965046710607919747560277000045409162521216227280286515167385729670177092129305326641444038856666508255418443130711839560308273204456206370619986498490490970441435808331372487660522800743174508508764674204681598004775468279925912699992311932161729070762956080669436337124606468232633746579472010126562907485013418141628030525755073859869339964348257270353318575637262450567877386725833430059766089968466795636387185331207372749061906511115262022568672010757857592804601386146158106085641229383619864898582591591295342155712855403337012280462528375706278104865451191791304939273042334350159415468592963071574983787279228246002944706084036295123472117491391464864629386386900136181180711023504716222919420904593094746161666346935047359725918929221763169118669370340446128587638479331777594569810452985165417553125206326826492624849185770895957764742897833582598992284126019431678531231116358829997081522291446924680629641286304418331666202506124846771289754922762028493828555443300247100912499882499835323001817541124525241656239439446657738292463719305567375823219966235647838942849879592155450213188378985176941234766427383508362919874989241422367376949877167642150275983549165464751771857623305810917434884759006818196444719162246343224590664316400435078059560383003930157133922419243841120477673696836146595436303012198816137718873023749865972926634695954494425037822162546717782075294291897904343384354506259432099435224716502070796534089019514838216657958855387144722555117507790340025834331732730818842863736062456460936276052792706003472056533804052771349986545035802249064559164426179328715167572816353784429091432131786737884686248160183904256325368830116865715511166523613679222511682875975133335467489564290025350846792887273633556670375647735729701202688155035714499713557938104316472432907595844773934531088689989147719102089125203957623223514540541777988672707191223445758239405590037865931551695749298123144607738298890442575546365331892624428002488985808311732635906914705244185108831335200421887062328263662677604996584412491816529116226379813075008045703554802143466356263974766745633043504226939869105203542975030555259454893001905461229391225083526232193404008619399711871201238389446395183084614065051552129819391119274580337875858310548845443901068759533521203908428542417024314230458299361424465390443899213360874651258125829423517504424193527801034030357606556403672763930758456417868169044608771244646029272484825712522647751064399532145425914448430496627047593166426251700767616177916856986321799755632648688229012561101725511937400828529398508222717595903143560142542192521065224595418774801630155268027266718608265334266204925549412900141014889286052525645029259818066472012189259258821062117520597947815267688867226747283324762422277817982930711791321330117654464300363207253158638582365123903083007736879229786221299465316516710020923485304052357278039556640023676385107678200503930126416401437381371589911698459039081644010972693881808117322991198713207541654924630845668600419422896572656562428927845325984291716922175083432265511701147766112171672926056497408708999553878510136756425994097883562382013666017945548149226613130317769532266363679107080025428562236596618932316098700688861018797720644616390343877287907169507676080970800701122245138542274504933900345505064638699871946645619559676629549555262910346518237541506853761246738743421589012146807926785702572885004201610659169904402289181337044900550797463741210307426998388625775422343652094626479347287532685754858778192101189506829326272929243504375368708291709790602610594243566507458113555082063966357876323616045156125192263300828454069174777010504500128559576700897750517276963905589141828491118580624561821168692891305660328115869547646715526552398839706730608882772589603061505885195196527888509824840664369257582217643987992088194647141819442793485945996209739919165336745808560178518725169798721813237562702700051429695941865841955005275971126657967765589784042764171600250241669256951371567382374132577770852006470303738479327444638397251851600923879522136244489973743257566141627069209589471587036501988863767583379071746914034121351306102873335644252612713325734857284110458002454146897959210398891638189431598242540986569419072433141430490884848014891776168856423814640451938909200200856157395319287057087384954735250009401814503350641601349900541541743405741341582281617513485069813232808016635521745738641238560886022202978096879487985644759498610642139603766526384740059436578735723386407266004240948436643251736061966298579364193851098892561702559874184892286338027599964452650674162923554180758795191600276829188886010353656324245255615502479033521879038201913885142159125197897361243588056819740900469394828681266530384944713874693321330271902129612640506450273821305767946886409447560295208743289286709182941679949873149830066269587359815582073067664537055129502906154817356994855952021031389439476277989831995244163167507925373713387416852145544923242465358584374888368680319576463745118826911224597997106006946967486094791614318887418372268627096798549853539662423390217370689677916635354701860169431177371329064662611567647773866394795976411115019397154627467484316537107544361157346117392916349799221826270343676785166123343973469090725496990487169613672170094767544468646362863135840867172905569515062331393125032428567661020980015872857250071798470630319629599220826731980258280495152879930405651195207371870835803388195651159337479141458589326582709329142222525886007780072199120958048036688633889121339502127421204087475868653478968224708306301116792899829033031193415231638460757323714031579766877187675814868834712749618499806635609780566526403066677118208263623677710654715625084512036758809028566368508205225375519892592099380682712922347310404540027127378015150850906065607507109966813472253705153845007149819054269146951954026073933177139537784544354704374516353083086291485935589984288214322563036745717631566005074553208394682085260693839316281630230681221811698117001300535121035820874280537201337127379056321926095188488796204493611219824018808612446392091701999015720878802953809354157889926920628374449490609481929423208642834938654946782164006496988972040488840504955723115467100182001469164979259011070173315638580352751020906334034729521549482551184759936856737812494176910897087111765453361867574583373593229275836159213581244882680189188113146586952760102134430387549032765265213621582360226706080284890641331540208038658773637313810922830211094566942463302930509634040357526114640120074565535909626101937514170211089543754026806002879101429698620706111240626663159643645873191369059941799109846316181751249825551362442456872051430490055012396897930579460503467372730647509817163173265679731275304974272344277161757203687732914414001438648715786592809162356223659877623482268070395486167957628496627909466160521928768142277366027565544805274767206896455138441903302846612547697547071268675849571144656633538516841306584291249778105484987689860626883016734178676023133133793213339961933634356153581598301818810658073824399142664306944236562110927817106584408789925441136430719148938009678615178799518108500167765036942860660349317858842900363108827404406769953013342191383134583436221725139399736898018815378703605578664803584485763412063931442316275694363906066971965852769782300476055337797220731220411094845545060244925881847920398093608710170622751581094936704470280401171218424112846868135456055413349669785859649959816203446357879678132319789695176108406123053242735778157774881308608105317517911888285834288221292573871037444592378993298491255796990436433199403526352001580852795142291960292011023371782673308090204798904748608898515555988407713450718536940687040346286739779983882964863797950586922133112047431099479949696147912114262234183472846357663056660212415405698328095656351700988896648766981825723655928615500228503245977342059167204682241326926299689387172017642594381174396565992935198328829345317991571182295841528851850440612505314876484110488483006524433321158883867846157665458643099745015578127783814932897380621806057809363551167360061436409372304638459317878653834306428681586601117733890584268759311906444398053321880246244003942516004237214262477528266964926870250123351953819881367380902718425086972863871630709559737524448869688524332297751465752042090038560266426872966269125751283909288784980479167485098408126920557317185978728353793631873592386819539436938429391308548122587884492348539403923892637997620012569820501789810476275613533391493161358852010880122821862292245135795462811897471194980315078495653599692322116263945641485223442778397133690861189378486566547466320905888082577419686548378363978635008685943335504151696338825764333344878498447547512154499998352065391116215538137533771647488757733270279726260623076786942871645420514502009780624255826617533039601115506935075299074081442260042934841839038426446100047682664195006173304546918395955720671199036029788108422157515514700310132243970075838832335469316237822708084770323852525841381593411945411305409273932662974564532483800409541100499613177254079200097356756856075284512176172816228646128116214357457348917678363236942135613244239047639848113026709754909720080369257846746751471517991231681640184014613548063832829744120599092813917363287625562936058308924033809235597652539344980396331451114722572073031382929816206794124912174872746483959033380825738877300415371266072730712353841051271459916660683997046376846553675800063917024203557346903305232979729301036409086097648212733404995806216268102713307647165924513170293432246466977281425733187598904541851800475634762755477041507076776864171327851341032828138763978508778858940825906756242025371469583306260951494789790553154132754433478495005465171194735686890167800618368982054973600764331412175068212631857142328251107176639104859861222475424518176499195099677987031283422549237989153909728684331074258987303818585798218477013002800812263962848766890428359498820030642562289602892300790870163955808058276553046903233778408840443152303333665315975634881794987279530616962557872118977209765760329492042667105138261721078973706025711366058741498025346123773038534153676304318772444346505665408394667271037766051419260950840149564286206102698495290985499433305901678931593914329319749435380654548132666345915392083426797910538566963820645717142956912536323419512254022820788242961408314558698527503274942169226393452554583304369462693299090602921758567772858207680872824298927145414205829974061084162649366741268279361708494783801274514008340664421681476615687930416582034917088430264416268118371441805308039357653859599962973251332953748005540053358060747809774943818411680245547798990362211359719708779405022882318267723750135465690680449313503131404195962080081814307717535821071479189399143957700817203360653655858181026683774914264380368795298240885871750952746293290047024570876273382507549582043085792647749917168724077668919934396268773747499194855336174021052239784078109291172366106205752757177406460739649342500882622812403837676607199589065309476536035927155870549921889236400540493234003260850666935330323603567081234339365034185298260925771935407676154158995114655104225178106968708228450997084697383532579922147747914988758075487670265632380014171257279022247405331358537971179631592099722375459302693820970391934862715471229320596772893110321473577785196288535179885848250481299013381260745205500045908986766461362687345888559683539134849887300302927145466804493144969167947118580776804005362224526002805484258337197970437414998118851427481179708282939529796271797359500513463494945722438574308937073006909795758966693251920576936602168194785872283139224111395492343696179476181872607908243751318945529075281900858585430949917246330537930415240358111604217223131153013930074905726994507902140572133079811234562929765234629341736319678815334873203980605539413028948054951377552850083172013574779764764249141045945069498755651402841900594851598539390705808896149821583381513662299686835267796868462215507569963473698206802398955837443408120795005159061250492625146931836236356377286895514914074062636925435589926711531773536670797652177321197642620221196584293488744235176393718472159735353767704433272032595797023192234222111405903421186266378445500793249941329106779753483390677652028225784636598685971791421608234771908118555323863469461259377409269905597356683583154993038028907884550317410415733928796618271959912376230614321743858977282008000105579873887491450934730193675465392590884354927840541078938055087801208817678387183014254161383822701348056279284694286151567146746768073638699331717617657639979728563092151001058759152208201937241250427229411037887462955369014348084769941737197282024250253533159397466557693549548167814031102907304008162436708543551511698047904923539020527562219300131333356596314354657615233296244677054116367527175257130402071255904311428441316303864659815299867737133829765945377009625466943036785498578004535754233198097549222020762064924935537541729714382580067180451411450384231887284049188717598622601218049584553880917805762296590735489024714235241615098902161975302620398972866925498027066234526010938583793297194794017215374076731883262016991665028725573423599055117816579141757449808361245575074917130766893199014957277725926169557613814013825485127484537880494890894815660209603067518357015386100435369565739257079025732983174573536230192890291069585480488207881590031309434744797047001120298266552574247850477547823550277633553178087502752847192520925270479525419662340367275452023568582917519909871049988834700200501487871281110402406665406799582234124210251741480235747240469606748301365342124263491390561862030264296794179360445110596927937969404091344007094588464726139932270494980899718755250698593016205891429552560737543834900844751204720346308572357478962356600187213136044322294162949877253368373172541972144550722290736005673075441095349580373466395262131681972834476747966865117595976043586173118884056767473906200761937016132613215392996688220215247948625791929896834103067715345029549279692736750606718791082261239437278505200286267086444190231502015304617804220821176437081672766884406007408337404250519145525035192735161339627199237506507901693500148084538418897155939087475929863631087959821988458516872726060404617997625624439852730908162131914907016704843212392412897951272027950234530524530809720636748966142377461958030065678165995949411245259675729826637530742080811033969719350420111769692335124380554273444130166877075432940588651052876019664145948543925072321790371002740568677032159862504202021657602338940715538454238885277118040822708546085142793790765740475193893770108145109490678403021409449300569719282542151506634339306595713957072552933503677750175599938517840120594974863872671564465948452907826831996495648081039958930680483989763646476385358371602574141533360001746312367626353120996922952230104466715152776113739941690973618675326417854157002663818722515390561331342115264699460039947858740353121568271468857890785653724581423214477374348027613068838208625355998398581877057623000811206401605118945367045281081259164590348783022883554783065789968549543860806262153697448074096211407693477990538467561283465159383060187102755841140046024676923428909338456311882392876074760441667213072318115031826834199683185298687980561250631148558354168205106909609571674748237748544571641459986029754785929199984093221767427653713738789096824032041591144976330073520986093371364428397553968680287366511586009029532700675399078066833623833249210585025514486394476922473855692774465277497834028588502337217254801809891170892944291516500028510730147196872721322064334136938612194659834410384410223337026463733868817974496651093325296050694724969499240781542835799991025838404833114988494344456859546065082179324091796885414283109169793215494176714039293454473032986428555655767827967338362337713536056720684740474443129785855340836398304087392658069046150780440891406302737385040281810695310628408768264663556243158101364969057236595501908529901526717447141098932697660645867717099058128266042520546457680092438433048612258982243403142569255853578714305505367210953819469655052770155850887202196902259934571946775485053177800985680622267962657099038592972899124096045351138534142149664561645695830775169697014753465767253559894708124846499572599740436713571020912412102327763425575768385202959215456363532803817131851316973563533404736307741547141250698381338127157143660688770460136852964357323582302339773307294487538455589466035848845374588730778359685322748468768621200958970161443420032675004926534206967607313193606781731667701709349909809128532057629652163490983475477862143062715553131939049539039198440080581404960810358355667149109287171954156004454910738505164563816380844023884698829844940108029091679863878214969686761318272721890426690247449765191782798517504986223077450090774406007896445157312003871234554357449684478685698582625473608728235296445246305507121031249549964139147308922176683804633094763131376804820740931894205683128170028962344639004699316916583350658236035678115373668308065170735138414278649327733961246085815951698348016650430190027286854203614148756518214405556591859538357053427535550494190082345334392580062002826058557336404999608205245794167451401187382994083753031392685867336885510249105792846372353003628638618728479722663430117723490628480893379827811825269896136533442822758054277975194555072475633238251958299732482805298438788902014281951502698948804454620833910163055039494706392598767333776049758208107923146186879511269879536534774517973975777658318324146352702039198151119081642728887161387843599555266003275976312057018365625908801556763809030658484475566308176651502725498467130732353259072570301582602456154874909852565583908989873519405521569987035874767806687324319342715911902301744050699194084818112033610783169694663107071249168996409461249147902740579080080352376943862501117096799069681741863890236821635323766013426376845688643958091329319240758761721433960695218997676221337127115694603087899445827482463722909666635337979864283745864824894479034343003471287952642929399178202249291754902104176608470382090002310363769201134750221965860134411412203534770034174161145958943799156690279176531463015506851872582064520727253609103589110783674344598750309061297292413291058131917644412254702076886447876014998041007728652006235810886595527779140782068797926377640400790768994757342705330669901337942016880280444964749717030516141289331404651447680663554482059931006693601580122233427524722917227627835389540843078416789660419857633796753869447469553180049102156338493078304041962765058620741951606985864356913345794424760953705133218248386080312620414732592357689112240698624680642288900361960337314168939937343136268120726986900077395802824437710343397482876162172552131055604894402754473515836303037845457924446977429234412830291422702125234763249666777909474908466033275414134981321581268643467408493116815751306066271340885305418948627179538634690816466369874180064218108095383942995991623083537630920771635114375079350977225640953887647718025458181614180890958631198115399811194451983349535527753804766138728383907220410320540081583349666229330900651901023898574725804182245849257078023001221748632274136208615349196490954628666088269080621884881948827252970217221674742624332445436440933400295299378598784783329601265997930525398541560526834825500318822275559948093117040485882303306417303490588979843305246468990379775047982643908619400406929929484286470084536989239995660751887695388580389505511755091956343774887912625189874363052607064451985562423300577403433366921611805897752273003105235518160330191688223882150649404135162184138716964482311122689519256094264408085010784777611220159264935028945740880746624943425324600286529107000409272662332747306644458498711402050049158610437610106944570632602513949086561515315129823292377584061529177627441193452780481068483412073656356770818387982465675683433246270358893238952733519199079063250435368226379080554190480846931439301517346625948091616954454234930680941081130721408516838844706310812872594538786835466135660333117909010839843494459816129469219157952735180052649310789934631677649265783858702096019502416395555204607407454978446084670680671411474628878800859852060203659530084825766986676232555572939231089258530525669991105837354659333111895793983513674871080319873039001379978801554100003277841690728227904794213094174463736439752256340758470892476500697174293253143284792111133696200897827385158588450682802690362068001942522078526479013208747809934582111952292512576637527591199841447026654583072646323755710629236605953308472900029943409281175390191841297116768786908673008039958809591269206056807369408129412578519166742485588055062537980860309808306805926162377125709794568033502551198920691548819483667740418547921279159296715377936709619515297779851920069603912248612122169489965509573728604648074334402570449103288646188061920096018105896508443270576352330501578487934267423865431010775229977681335966768281276528564791379963468663708461817097671713444159827533121304011306111197858891916798545961807348605634697602657746452934542154067807811643635595627437558475510065738893407187923697743194360546534067673564070919652877129723230512154931715818101358263202183726042434243062082464275440161497692142447637781787528845064294316865834845468615340592338754735185288600732470454016695415470365906100545205880358449202863022856144964873842957414263347036424196836189257297490810097206661444081660789773612842432995257031886831651210577876358620279171364942850044269550479941580198206891775074957181458867799755098337448881666543650900213974690120495115022133582988197087766362863825305838876128923501187846547797691644058871516362894260427756243324688872986467744003547639880065845763953319103812659781859123868465557408338456658355431654998145645625631528978943230195439980221837164398701159630486192947925144221017351005796941823390115699324259600073877485889926525907323146157066087541041463993647923608541314307436728461358249864417208708461614872838630870938394715801929519375842012689348669151004337969389062848330319349099985022597658071951844577010571974621424239173092054690607304438601456791748171678675008463121978528739143342082587250613640467712810108464425496808083193832221836226159994711482973589376713367066432265164332438635046642934908385712950344840704456754804901068285792809672582985851304393136124213288327812518212318066532517291290329883608175683009795690592292067111539550849965522873961047804108343846259947096049327157264088456303514710203070590313003702293940585445494736431289456661690660909245816715674825571738326518239312853675497298244545519332009736722067775341448996124571334335542760597468981790483019132315380845363234810604319512777832459498174725866865578223506924558756838878603859144416788140999695790147390208414777106114140297598688395035799247390495948686315286176525196095227730337212150269594502398553312712259059865468444263998893925839838629268351567164804071143600064384563137270930140968677503486655973575829644253362936271622079646737060884380766070471553141212028313945090181317109341235315284410829610865219888390466327358502177594867313658358791372174611249869356375492360584843425782243178399886938132251773672585461569204485775338659774868221548799214265709872086634053770572595368775545879940065582624709727615419815925705568099503873904925038962706607012683800336394542546794151167066293537742545904100912541821132116133759603465115753055055625120643210209448480202013657051352204292407867787726609460155171369158196031343446568783340250228081650058611340715557771609392639148434967343763509884743959508997102262064302687007925785074098728281038176909681298653411398200330419715896303492519738344498562866325566136187186140967692757515410905826164270014185358258174046792791116296618736473733745159300956452417623485198240121434195162524836280886482816079204793308698521291575526570534759114799060360569718524743995433447387773350561991158665014779487286553899970975668992728892827953467734685081191820796166722156320954860187324963691661550893489784722664548769928346743077606394437940471074986703637177829387338782006396063100691732892086454297380439707174890706210371728436592025234942389291863239818995383283365509738076722972572047562425290652244134976863422494586705442272541896363251009163180709097485330822188599801059738453063983576573228911448083127454292698930904455106913877809914851804401686338330817797695794455291333245266947087663813553825111625144027182643841955395989424297213378477429025919746600812739725231808479170975059398948680590478723429030870972659722651875043630241479441379383304577439581387955239101972791909998105161383555575198709859539194896682593519816801242600560903556600306860393255839366906698693625541602418892733671955245399145168457585593730446124931877362470820740789260250903449694867174917613930691447338840797314147015140528543434537948925467044832442340121196125640428356888319728119042900504035965888159053265313122029598484761763013817134072129004946073578162438245950344452459999006446427278849970327709709899197696755789546551588940047835987646459832929039775924472366679839177056640696083523308199263651001937880436493138014082084854357782199554410161455181226481260405080952034463036024091972428807335252419676893087604269846054937894001857865214323076166346388834177751985329994441831385920926081949281843434240229090116701687676070322810576052257031656437515798711113093239521753886801747042818625056464566190646887380807515511544384905631019082699715062496407449559666186270812039489742438265353873457972660015916671214035179955619432559584802346997453387395059740966288449520686251591612656968874019331836495587011369005209657092434735575642032024446434552055049803669985542504543263974000023760167979182558261789789384155059871680217141718274308969465204275515385651318045554363110819535673709389635543614088854106878772175222711086878312125655257084942066434555415927102885726866975533823260282994341881332136805436460261189993164652695909533346736920270639584781667529359492872261567192348772135722494084581283786685310786035226598651485901369666312077536950895201675710866553353288110289423492020050294684252196365892895630105945241806498806845592139316660441188880633047694280744484211453108795386027663887161796260470780796611773874731499515217709927372230563071807038888915369833738131173351809239593762641881631973794502373724872753135568027224846793047971960529040882255495404141048228326957901833600558999361837479235561809837039051927821173310323855826518324700381240463159999613682506238121138131762579274648382669848277946060420870645631219869368752037038567763749762136526880297155162911861141235114876668499063263676347350531418919978733848779121204769949946802269548395102745672449625044128569408869121462116497984139024590328369156785094014825253080246533110123414006319746509181204397925916016701263598501929878375500918102129697804755675226461688314042692412230164653197639071805326930534465422278079553473861969138859644669361627514295730588714951986842916948387453901843750142972260459146733644304569899500081943346579410642248898190903152894482531572174613207089265944821955028286060304814969546949347737144998458753892059371142492847989883586638774421989920241107271095200004065689220691089609652561102099516112908454404594151074090130337934055909128125251362471760505182687134989586503155853187762487569253644596048721175459640356571420541088493618947475845858398372341532345410586470837312044905952452526714968210601376631949555683928859151162352370867933799921835610290686167444995220445030012678952196657601131388248115010003251506158875154783181354883178934453033147064331988292628856015184234461610289354392221052001635494288722852458299389274671596328808109709729238163121576654306154758687212151317889758906389390050130643761516630855303989146211285284700317348677681524437830441471191300930222272031731927211741408977068092021785841079154673918390271765375745002852591812614970760093206284969593241065427017064752356638288629429834011523557090686332439759109686609215821406170768846147712430672438583586080992934906401190876079255973751975824449229714545495291470272737412082864863003358177827406339029119406787891971990438437825682155770006615031014245133077255473734000178662697193082229364253601424533634545481006787990176466580525302825414661424221038774966573496990348723709772674678802382686797635210651576276777191794756016298382008709503669113401177104574650897596690891029158362277971411888394721705919654071528440968310278758635682705833450562908795598463421390732765622868003425424963686625991409300830331684353925258574209114112733825793397040154332426605311685576005929259734560550749906107359741317767414185222521893849189433032639132588601338887148993203801100837279015846424208378871825541458265626608115226977044850881216414387675397364782228240927627543309293930395933061817658766217903089405271877013431218640172916818196037640058054612197123025791441556258191789185423449820667904810119616202641867039866736044884743231031679932660831380534426572272280902692584948637409624555288847823481711741662244719939749128901132274397743260368913605525973843278200752806007972219621618850973075550074331841895340098298207837283070551641915517596491269207379289733060151606710989344066249618146784328675858776137137398772830768429522412766362957533262468378621204412276274530897656944983169827001650410624491177171016672248524809578902810517236867754709143752472654227671328762169410372942973587938071126923046711460064223704107484420181320789912671189892022300292024793312870765485628304519476407029314840059595005375374963671890175886617980807245872710338873844395571479784202532084346928790580930817131532023354993979169836554393099278655546197368151848167859022693266268436755099432156330764405353956411850102174962172645471947186603354329669556385979860166682460077148234678895932632649988962700045695764491020544045887802964397564158776903104114858782649322198783256524840964326576062714192343789739375619128052423313516449663172240449786214043375798145609235261740518490139873104712891828379324381727079015723682918272385602922369237784241104486700070733110781925098791023302602895006463024134623236173183208882246133999747437048268649570451276251134526026074116543459181314750039346638788930758295305270256027732042724018392198135368971150977249345739333820904998721103941917625979862962993516981505642467494868633413554614152634668369408790614179855120826513426745321002255429967258693448353371634632411891322126370325634546344427798949160374158563346856007591594360081231840269846223165370586189678586452695812188057015013336350681062326703916046688583172770194711081479168001224743739967671635459387598055565842123772109938505375776793963332109515831928168576539156372974967678577994597484012789383400486923696039396199553194636471959939317708608736365584154052496968315732403180609183702158200365159514071964730616578658998149388100928721756005875454334705547383800219157378039234597285614660618367098689418139668330029685759657798762423651555759093389657215722232335081357391619200131465069168713170429947458667817452941108305344937331963197551802209689386475267504395896797448145640721244288279679284541028254888509173487189631760639823337024907170130183744780214983051710697175310328585569265777014870091057103568183747561568359198335747803716980538823309483640186662532608238496487928782341215477649321736519895686650651631714821740141968314712428725019471548004237849247150132973262306323256390597207268237126532940965521812744641987206798177639995078765631221957245301860676368226385155033721974819430403920891212171022089464202787238392622907035593663065790427736696499645809575954120341291659512003335856022178029051012867736423995461565815813798478031254351158012349677674479034821538241467707629351132683898549823870653480814582146249801270100576986902470338609608072025055890658334021930253362534557436889036318107363817113310038705508888220317808867161982132008312222112164750742118915281111213783267479155289563297692919134837807694182928252917191100356968499112714553244732165974288700281211024233803654892799116230768301190960751659914220545754258620967592458804525960208589685782379913779011230145232010113400238355639264149722319871459535949463406827459164010728969133914219352257782213787102400910782042718339426476509861431132500934764497425245376268461083497556113339952340593482875642227857890998747288002052896672602674604753282774997005940882292621526591542850860123032918577892351133703490170684450546920359304280515024370428739400595866823769470457406373109901357686877037239413337922856246967292123804896636578612950633204309056087730645153505442242239914702397591567040735455797761300114695196751480370874063250063741132644145976676687726499903081517463217464772475629581847708811727041091255164630767614587020634895978614224340937843545848811722612672853280132076442233406492219688485094282957404923260476556408952971751473255191216253380146308136818884061866231151497143906342713937733283611881613878293926795705994730837800856141470013230508766449682123232217512457407254065555313904188037258998855679517732162316757074412857516191303432022112365091454168272374429295445752819207208106579972527440926813534127223165809900271296550830798094608904120670016598199621199611775151885414524971077054074616195612952019449672092162703408343242160757013197598680868179212214513026542744561304192976098254605204844692868884068779072688998971677366740196076374307492821653270711700989863441813808460494432159658689385345728078519829036548345632946681896109015659652813961812096561679158892145569116420110859607751725136748376446811407437399273102083681219330032906045242879117803862102121302832634421576031716573040030019938299162499809441972907005408531436654500686263751953709663375262577145765398826339046834472902870408445228580317667895993722686220899547131402123200695165387552552915312407973982964304530591175447989288159568629445697597266437209914708977421312800635499207265211458272415273809189554401511313636723929700769546253420655377324044594300669640995183007433094469394094871379613352465936018371854670229747839059095463451591242940247687972453598655262412311700285840088784271304614941079443481515565563117517692958575450397568769212065190484311254871763156388643960817167915041150601908040556443879623929978371262741708563235216164667509122509826448848380678316255912489590094703152007248905657822127618423666873838033737904713910545799625248840802088939263635960185389214120768979900926149436206708405648450102088022190171392541994761151462116389454846113094478861866428591517663868970766725054303260354479611520426698143319865990574721684821919544326778059605345460218200595286220381802947371963101146103100806290896179862984182882888397717999310764888284808331496042329397799189801686917944599750385163122895382726860710470341910034725643535309837738014383476040746240470944272114855877816629201670203555387892193858148634904842079709667842854122978327531176396374781091540328364617601411845302545431684676175461138346366815933863061839921491099082078924471614348359263188918507900730670821918810250795292975320522701089121434762480910086887015342174619115280407096800176518257066995342325867358871939683844610227637845776728593223777497834538365767281885926683800937688650520486925272537049410382555658907834790669977929054521028048267023838315118447712177349471471427427388582118840057291002424818959149920962459661999285341749072038115211901341848400953568143253218742039740292656086741394332699167679454342368966986228673243928915624844915616285814471834563447741758894531755062399832012795363799691135123004316693390348048682103560667258167709703024826727370382043279238355557618418223297686221803723172265642075542151225068859521210139865490290593031248574359109008500380781063718062082692896580526833299741807785482794579921247114836950020180105361931198275352032334561784720752177431100508744345488883191615625366822006750204743576971232788851761851168046823261365362306193500628660651381223416071780786818016439442137876764811455851827742017986905376438896695298661994301713372041176995460523776399315328393745076292141585022121803606189080099027846891296562210674517436512000767129837120991611903730356820518470671178394157900043092476387763260716190512753341961701436623321781461037887354284121085214172979069977200533906825914709567924598386970893527328598698044886773409817052943132078817195689807865179965909467212386317059206381153473933653680129974700151601381961553409091417026602922379782418534374665814416914005033151231120185538679653535351222346890494738684525997775032659246159260521495145499016423276485752973411758589737974315857025221178799242721969123088519185359231663633814456380044649431011787954895955532478053692767142135312576120433758768256069877491726413450598217688492977772345893880873157578069934325085611260910401068237304492262710515228459523716679457386897822038376142568678297952145743578310021420146444797382331866072687227162222979203957201093427279817879116221459396696798371070462408114942481632416628071663368970090793607363384170831298408135648742904206400592026010492308602616582925435576180656155557954834841413748627597076541969503752964328260943824709038277065495396856213118428554998159643522762999967372318967859653901569324381012304994557825864035618263763947016838859208191867971644718387455723301773715444483368438126514462709949384630514218195809625173315059538624534769575322534913268294374068407723131882116390725497446235595403514416582621760637232494894622666702578089860182623161426967446407158431845841404056665166672538340154253374621336487962481481918980911957303603668174391742952865039908559646283732215608740699059071114486845309003713592662155046014425730410909905359376344076709360371004400675725088514405356716224514046952202073559563297100091366091841058936730611022879051256723486593912777656523875056230979745994674593144233709026510882027245067457675923360241784208144132061742583274500811831630402238005793772765457397292713496987357493921946335759039824542429375436974075399886197897230951585538162322657001246537727888407755687839009182931964351858984202719100992116354774652976454843482066892916178379186772067783390029987112445425787871059788090171741072801408650892007662014799278407838170606264930801545679885040310028551090972492939497382982518851501705748226444804143666006310399557708285799779864992025951786166734298555583894743180447325819591773374605372277231008169119413617847637224182387716970638730821437293129673323281534146395536637559130230227966893023736573338782672654876913830201400111579995041884806839144354749553783019042506139370380312018642006425754203137665696053527226024730061013726680601318051767333969103277479636303683135013284837263271071874107304053250655557554499662131000990906224483632258026673746820386495774035995752996192452792441470263346089016450574837281495208052165806846632778887689747051975726203156625847797080939775419551562977500867098025618192020487623673303668947201837429146580586324485503349071754959233312503156853815385507426093263883661238507631500940173665800217298457182734930325962085613637063174061602252103894625398517762765496272161686637159821692018243607074658715923816909630615943993938255605844156142221501908562931313447015881265248744874655859447665770059301186431106340138594352486941729565134611743522795717327550802714142811178527526701883013917318870204428324744825881600905161234579127156220830757319416138438532041484745311803194388869746420655034125275648661413864236944538273972013988474693252445998726998356680385215413904844524364147862254937175619888830562930177378273418798111262446280334813877000263668548417114700201161006459349681341038227214337270296437446124957331242504208672763391083632536097297785546825773124918425297917239391954772860411308601247664705437370271118271707145314141757076107112459452264326956809256288511928693328603298040614500665703966283167106557713264905136138636160487413552770126838714507788061051708519863331898937513173395020803213230248075311246721662127355214759680275157613813316957503501658090753396455948788536886729248770619931775108199891135482272695829031862518389310596055261138491967220602292379323641377655379489402925159925039311388271657996812244453562953584152037870992481841567903985817741042064697346102514336171432336734205378952879921429208344857051758066796039040830407707720496286122670646921800336412250646716097473538401436728676582951434709566727102890593149673250936794479000497322205899664030821968580665840208987451505301524450429478848484035396872363829247033187035134127290196998477823169316747824131898743837902310092243863566981362679600996219790593060526385995663453241820910676800456992645561977259228659672548343586453755685020223458080459453771254233319882884941902899926770600823252812110559825463031316790859992801016760828150238180403125192065643863588958136028657885751538016325510770695748252342740834136966943538145604416932538340083873957605765892009050077033283481383268257824711019695750474870559742256926894925164646487920956996675526458845878802759425504216323492686978703419906684487129495747593611191420302351375991052984336772354220528618009631954529954685138740541406462478363356923505672065827989152151076712155836024887556635476365899462981533989980314261861604759867940639998799067130898010465706926387621528610294356581603019982765522968224114704313266865634086455449683136982208105969229929149762700132924503432461851142906043272856770244566313163341457089477899450092284947132542965654831961881337307665205240040470288030573137644541306377323583461130601935064539492737289470487846981261392761974772440036230009112861982700928174327108918916210709655328641856242086775554709081988775009149526984037971760931372029322040625032643727317920823010606951885046771524035432390004558448881899737298617520443155683504882166063705421100628148189431370597445642459900011445871847944551147786117354691027234041485652561072721034130996128446667108256152101702105763339726470519941213081985592944308318997433349917164525891393223825691175527363827018530889453863281026711510928112814898003065406353042395223911583684417593256870312297489408564861163495043670208899363206758468323058573930668596252566609340960357663115650079678558282932048407100259179565003219595763481117477368856496509419061498761491298028551607695530774192989185701860735299002243238084641725191797192394910154668380661216406307618415136847959717674360644354133744114404024788070989968914656606348858942332222412984749940249373960931191290986353800773709849437919582377455776523093245172335222757554941405913423803549677932857396282795586803841465329104296055319606813237147250840116581478302816376543149002755688805227096723860271238254066989216408428223898466119627938989607821990124093757093215556684590246546047791006732536041408266135806333398279937377939987647504493736803110412592825730678219204469582292087192083228594185240312952372341617635469026476392682209424159885690700482188337593595298755631111069173613765540600409601132356536789109108687500739125710781284831396422875423194319724014068725462086102411669484632343892536046698093189738914148589622788216173263275469864705260579443000799818936304700957363682441915572996376189673340425451868914519920218834727209536225298135833823704077908362938206777518308754270826488107909735319509119420369566909414395182602991209059780777642334176480002175663684036244806677430991265666988536412905676947947134594252990138226786030345448202181326077943437192805138431719865635369177649073835528647916981811791215712794720915137481909647162646204370942965529561006530899442114875320174899986108478244685610989362697157795683602248560631682948542485716009883436692589596285028614572695544398032047549756011280459972756938075429067429859788996023281755040838502352237880412520270186953526814965218133867918877881777958094985772006606795174186672070281883996654409866739181943162089102078064539741508828497075204351605297416248872929341769151635805429302903417565905908357620936511627134668269416489763144992503255660509753370148316500870411768803113278346570476276099485084831301698510328569783239976996495666992179892122255885935430323482394706330417980300036218304075831713774029697396312963430126469131117629462050537877920843800009933788926215282136901138980230787278490856266867586355842010235719909456748080670296044073097016695177361463324747402068918164372133867594191898198011926739299428504025996808625412878907163993255996756718366533707537350524600496636220105200136413077323239639852079944165944768990731583287230650169370447623864631342254496409139076133314964417335407284268962896858164570619090749378789718018586975111830091676749763023696862516334929629805222361074985710507465731718666691031784103165257285739945124023398474606564138094136871307127991992472717646618885069868721814002288924979559760871408778727508046657417379527567390505495289343218569229352624582533300418347921932973688907108717024466734983754822823084568449123231376850794108297930844668594084946177425827436550082405101721397914523901207546171870063432469503540715811763257803278608749640976391098869947780495570692314751850306867747041820756095922909438304568783046767439952557904092750783935224577793217642640671417682855938544784875497668902120774732037054666296346644576984906222141080144120788210672398416225983309353960945121050850522788154293902038889770173640373790945146340623736467653607301365525392000727058945466775540192153033031019000405825196378235273211970223082641318562762781372740820572151419988316948057077221502662422515568113585727801166436669581310906443444806272044839198227319463206681360444881958157810229457273396129649349159650955077646096964809903064957056673388165756813969670352578982534879769971885000312815541138952747497310614574527717904346410943458207537528394018553122488345144621763119968126024180388301438471764763372242316078813359663428328560449247887734457012785276912147611602691132015503746796591180544328118529365349695271960450399115596258093214387424931114231994794133786186572728512457443943356493727450042083253268251467092222352202018915717365794945048122405826097885732610462511755092415979787706084523794695461736025784387735924171494264273200853621192256410894494519669734394372402792572678011496881115275152201944581006178439138166921827767739220876285713690917613555376414235947479696658609094643995566643946971929299461121151063963220324133848882089774352537654818313724587627941545443684645174033998939200532259966458636074470335092900512625970921456776606727161546465617925835596625569699010145088532229798253436254545194963363160565162305216723580082613292299170322117088175188493912481288725926859175233833339211831556746569828909619942173742037546094468005746325960212284938370781310352203370527697309464288278985373166570547496860096699047558336574755720552482383370002395556525709409487390786485788310660077658163064358609777747583282754561720879984298640535628060383509885812989227680711082684442335032896194617650587969204560796262984968747137604282045718132898809020706416839149927200518285748979386436359607233831806142466925753481289573140789797909050273724151192947048711890463274782225851599759593224022707927005637169027553432207272480947971149569429250082815157615930699337337615911318953199053270416339187846752635022855294213625264894767518256742132690382059853877504256624856688096943496120760219143148192794834784177043249058201604264437944513983537137839652570681043741121536664666526030808673208817912532089474553257919336075123289101610080346049372495123649178264246220561992292673429042144697809694712896370142516253570503870229866629441666312332331094069541177982353523838712141898781535750979614058179692715312540763650153786617957576310764389651321933673192139829517766542565364595427018796235087647258305986691894406845887289461782869417610616193519063472025921101862761099502429182900343003310083380212560665552339932126380302247992382798265960760479011442184359402823612922527523398424023220112468280694528310008622348321083077270306618715655767627261175351625186768030620517690079255339143756776907488714786240207561235349359139714827660383057127764641771618905028255153478587938220487273076867537765554434565164406624579420320692365511413529457561651817384106675552134635642147113484221609038720056102431866693093097763093674706166939264509646441993532565159835884101308164495083944928315416821450360109905560926140240716061522482429123295615884074326207992347262049473773185909817047322753823273512953862604506518804038423966500689061283287436598751770836218514905812220642529575166412603170914156406407326016748207110578094601642403169908791432302366015018734432078818083784521690298596430590003437881456661210186877773457842570888725361333140120445421910541199518383499660702759742110172475428084269849938977059338662430867971279631168594746112200115679921162408716389145579040595646350886530997200694559622124096269825379673231828692523320895282943514397435022370284348866637076051681877544235567731696218413064186332658683751319102876512006249670935302078797900474457450297303448563970928982735447855271222460748557753276857321564299628964285790522923725865266569225885751343786873754073160986162587356764176230759619814017117734578334628021635021224124306945271547523762511151529523823031910464077637711500871977444258605049327928944230024362361200582288980451854234958951349656965202630744431789734953524348939120154688143096738875786316612970700401920678060121496132039421329258550584231092549197254202648132997892136329974432788330398694231493113122452894875808340888195740136907631808916693969112489167083272591790650488042894387564509818159379405101270047233296532268761145036736657267488283336924266632200692824752743208924374753709301438841070000936837281167220710709409456050285224591385160145290718127089535319111024390752428892131637786079668840596619488956659398339121866839974575894358409535205607203462535369852996958355408409566629150070141577748453247227037950869384097807478846475998871811552561597911401796338725915746106561096993124751230815341178945095129031737321558003846080528165652605558054565849345055461188888849853015645811928854249112724539906938413663396800833155301719735241255666162561697069559221112117910280670450195281411332645087754968438899378119548676462872972631795711465944297151810888607654118272123795104600290397738474497360492612522781674706697326584679671200849339855504845572615530195726741360825673171910785788223065967065703915507452353135675398519696796839756249664751092175523626053430549359547113399026108806841613248370398526469232450656046271970434921154114320580211677888364354068557330208723777699004746922140207516818785313093448273254309752587667806939978654399910237562603504443462932480151428810765129934810415336786948114905266451296824863650028946773926240650340733773582656713947327764748006871195230110317699932599125714770608862588399459111559554397007316584773155298082986672577691796084934135665928002399626384350237286640205604166495492242976777514804182466760425962267255889426957998988582398696736404516971844280833521213981211696987785538498785600089886930010968213854875450970000026398099064799299078699423976559478145360811168270398623904999997080759422791991433895322563965851378469932609971196635260649538855887458745678646493233258211964540897106822616008981457882021955151305266106957249278198921287224262442813670252334853027003841131847818190455839327165711283563695828783984409799716584782892255810901119021645240946307759563688934205513937107897346096905920714604073346970538759922425667863118379738484525274151141970124142844100478209209839654760073685182092651606024167222851959027799461224118902685813245569652481570025132776293667873935111257338073736268427273513878968122031948009744219094591947991608271832103553428702001096145712739498221232843963421048689601915713055190198707749297532359110403221993487184081064761907713360247156478585228154434936730404789148917951605790542642974308710972660680211472384874610926025667992047025372877445877322876269595001781124362974080479682335810166784445862193925856013336022992860147068268059527941740230337432142442557680896918642879350981723490259635459846146728302755381029332263027215705384593765085674481049858791761426498373085211034897254119125478234618780484307747342681518955142004378244420384604662744183524276394859718734895559027434692124951279405152456881484089606390437080947581968264507043751641751409424991791745845125537734198509191566426166834363352925752726801225979026451432718658519017315049124113790353994277505434765960939255744028774038792643818010039255124816685292938366655253456221190860733272844322783930137763736132055032847339338125117033730361231770846139346569806717613408527659196013392942827975401115072779593385338936098029987774004773942462654288262512500311612368582186775263993417820587389827267137662358337504172388249700082918453063203601257103594318908952176586155446264767197473654655558894886064858007462644027194926990139921285562007760869037408842242694660460882359335433477004213041192281150157579521317071523118232199633368997167198686580333077726808707251980568320742633999033089666601987700320364597388381485704059874801413766434629476928870741896278789075120141847378512243107076152079710108884143076038484027654793456373432919416728047687487662802338065016307435923631740772391791232940308320334162959187654937649272093872475357909849625989039939536212680819846617786523243775408328532910651564838449575840738057395388588384989843022001366212541238239616731388007809916856727005860106737856220548116598879422132985324999171664806232187479077901614349662929948805654380477415315836902343726244241069659084075468443587324738167395861832206476072164722350634842582632769030468877698498592729585765507347476381532490873145381775020906540120805449070164967933207933179463771956429184722416766000922001081191851886515642912548235437978551578212806279960659600606854936768564627861760917015894495867717252685695826940887184981973542969008254515578980934069635116218542810252279451153456376952303803780894606777398693560987725672324028989279273431673028577764336251103098742828466904974818333776959161181826812288598539441055234763795562949734114782085531276066012060611451895217554026534470898606774162822961862904697560893333349835339447534263594699585532068075394449578295965415325959645964087819711469541434751469230817908868485755822901649769440705922395793187641878774552072434461605812954977648467650739295402800976969487944714485399217002400684600812371091313820536188215522920099878110029830222219758949550995351562583023409346186097690458186256275452189393300887937968799877296942113196971801748651778900281940314218630613288915836804228150545853058842223053216515793710033481710417719007549097076184552428776095284717839855987633770762014595452342330076758752078188860046807388400311504638053599429318689584949553047421394522798781366935679526285805063761991268344568250579320827200937823321474499889943554374072729348227640538744928199435075297347760842348526065533489320612393119117142066425634190007939305076674554190491250125807744867669123875821612420482402452662876230423241525369029137527154873744449100961192248373352579646978670653124279323565497372204119386660596597761158833404279576359521435230705195004468266100093123569816371029379982912884098491853154156887477506950811381816312475207298295395004953211661433800619578372420404260264431777127984227727534761234830793614157334195410194438989854290853178285165565786769008249541886480428720889279646604698956480364319003339569473548361338307136988222829204206059263890366918337140384294969879134270022674326851351556366200267652010280562776823774121598877347108937450033099166668172799192173280365431082274737578474627633321211323368801535438760253917174141658129399667348071491549603419050999116276879646195236213239850121271294618506128077396551618209225185524541699583904890325345786722186403350600959305965746826004373635257741889955930488100189698309975972189672814491032275721083345281982232555510775062071675588455222570981061624263521909420674453571879822503790250908033946351347338576049064878435928723204123619310696237215222511264778151395399758489282478843481077990305878396271428197092268789897633543975885612126144942240148475757127342757190181070480006901981331022127773344023511014887704523324678769429604005918300738166628100146703865885649901410537517626981416548268541750049048410464459434633441766462082584118328964203977804845960698254786122329161096311204750940911630729647137336596757687357716873224590944195227709192564575086845712513597259285910857528650568543087251968855880274681041762968525877273707688821768089086214298149769719815629736248686281259831984304984373318395572504573901903147168297813229312343494628953237169507473774917570214807266532203844329368312961971601632182184370348171372344267384411429743131629501420881669827126963935160520630142696047608233832839826247295939176540065544506542033310816443002811099202489272809060038032945062108663326779211320564497176136091879056395999358060400164766652529330521702060233086873040854345649903124803281579240178803847553217772532758364929610960967208336967805391204640955732296873581079680898965127622032071026091862168590259122589525046920600578000008591414143386322321550563620795153986897542185419837600583873474807596377497488165032684704023823361093480419028429411597525923559031244248242412629785819723510157968777415499410110054637041782865618906806317750330571535546243728515225837890944406742345464728376183850641381236832918811581535544044319094927430908491468251079249470010494955742600505817007736435131136358288792790866196530135047217331067563527379480037116046830261023654518713718482451088617170097122576048639979508350193197749548632618314628289763543593954135398019523018122841609556457356592223853652596906577722586468832664074540757291598457668017202626219069934978527603595502821122758184383936531302892259863303733203330373567231218178168282032998633266913585371037290125334207385548998414318197208676189247360021373678204535415488334875581186107005947025842114548705858291842871543082818124244343312169654974790470377122819246168861926748628444807468737215422524978729047300119006644360817286153110753318185663164654303934644345982389575545775870834902462584161613099860351137697844840443886342281229098095134679606874564250984570052439843504010421669959472569745709991222559823463467058218836524016099302703673432190517276892387511708972554966971716679139627363182359309257185633586629598507091295203854358661780691209392202965804558800908929884581179479513343004068768148181187139752477653779074528610449944616668758808535002186289049992268851119483297776708623268741317511287856684496475240352127066802487561266082546865032400450543478631335271714127897393463126852521906208020441990137805783613208186138499044211211503049737619491121581932782269286415868847078766590002131254042026116020279930771314497012340673327961096056349843633184176006284494732003278020523335843726943059550056295010546408490261269736850469793539420423663650060777584116269783126860347217234938569404613195669860221588757008209178721848814275481490219237625832150455700733331410961313451914246018069607912469330116959858351340041277256017275414419566087468960562929946897678934819060310493622224211692950749532260145343903598307313069843010327941600616849113630394752031015747395303644783960646260131722602927290390393792461187472718456074423623176271799689853642689653354491479030749963303401560766206034713358211543298681868358783449980835840544205109021705867652345723682422178161326600497859289017165261555324308629212147425498685760232588443915219255334353151804158928616589836371345334430820023957114114772492714451013825295440396875547406584001405020298873524703492341672257001621526811114227756728475719454544981587710960852036886270710955568091354665849601505898182680025037502112967153519733403458768594716491356125991687185046807868270104602680583421754291842800945400157069598688325122868238180119281842022495077066821695727838345603362040683941687097225615013416276663794958917793843091010301190779868485131876351139016346257058929759003774727310180180650367446366139290722208579383300231344544139733297637909714781426207962407906447917436337009900311477799689112465693359497033127332712581503706480658057664857540919134951421799442884124118270076419242175772002040421055286358572304988113051803938231885977340504844556150423695538596375574067093672846798757290354237189294566915909067676253748693533613584640151560511101540397243692732405726396311713926850930285882654687202998626368530535537953696501134777021423213327288891569818958919310032312012319954074107497085174977435749484574764262985295806537432349145199732714770061092446129923057741840442048691912270725504400070753209291771437535330135760829144029321996101397214336109806800930877989278563052237756883303283818364993212113434345628381543099085726346058336344469983639105267444278484520927248933540561652041489797674710796212070800548664689037688242980123072489736854014318983112928611831157331785525742716360442665337340107219118106240270790263605375920313984250866582068194290507931161505203850517479732402335537883976037455628256961905875739925584382167479590107402808634753527868622547781271910457684260280795969084358381611259457979280550913692798012601096423169433385976455784836488069858070809039312032805774588509327165962590471110990505471601828704803272281667913908748532780169780419025418389641774581302524546747013892641083776587251513179905580999009395676096943376670593923861031380768246424640694216180276535935514954290156289420775872242043683309648734135850399363824065876799232602368987582313220695911038363339896249335828753067790506729962339830453833851720424895876344057875088687950895654440762046383457887541821895644444370227138075208866549132601529013598254564662519229986082838328540226944316608951846066974699644461118266780454549388635239803513402491253337431230289970241000380553028805096972245108346882411866104981541459307309557481392676645736786211501081903894013512900395143368538201277064877343584031568255384486240487657319750542527702312701498219146118428283726262639951659059274236974978104878679905919510247862621649927767611952049829878139375779611562771887209939280795999168337096664333459154122384134106203860817558466345179513399936978356460887638673277395087065240849751242013421969822318980640647385156475145135731882534155362206473544300804069884094211485045437484646670076312392139625269008055934850718523026882958374811228301996694590550549600008232344310250969557176472155678430670010274565121550071911699343111325106916677947389881800421891649214986773042725150590511080616984749411431847443725482699090894870025415721575525709868992078013980871354129091270598646829448388273741844044908768552449750611377358212511649173928071561562010015228231268497876115101398265759653602611802693401825042605883082338939237653348120936435006445585272459678703491555546569184470808287835012298705288103342225094112559968004283354815606687769329437786248572807531653181117721533058737315635581173608507250198898022985789027843991846075225292211521885818324056543153903345321640213311591888883721975741471324644643019971624855140006120178287905148187082455084668928507341871138117315137069454315320758353022266361916510272724758564249309905333080640057817434399015732966619503351485883297978992450172825678403552056418036560999548815354743156015896009692747775318050841639924471320265494519142320278128628285706832080824452568519170725537370112030395687175694488160512819204650339628897716850800837958119196486476188139785301957731911908829722210907018323454762556325508690284545022896872818466154053073113562957133784129138943230704750152776855281188318420187496137266634390517096708196073122538666723236412736124716269913764775056481510521747268198241105232515007355100353655032435853138995794506574332203403520713168443946312247580437459290418812904712820228885047852929130764071177857416019709588446969732033354465416220668871976985676084880242782874402495868468673152676934095829644426854282096303268443356355507157742691736989625752689963089350304440423262933972476882767397801161288004173029024052532341842102459466819317530818311953522907863426015468221571311176095710789499720061095337647202124730494307410869948565756060386582932655259298107952477971428028712490936196214244184729775490966960831009643921632161101339974731354342029681185852689692316725722792835195647986471866809440893006591124398336630909717558601283897083721957531068119450998734356908343292054037686721434949329652451091212817874941818522069753176703199831726606108498050577863586749715612780731273689436267024265499385559742078559785948030462522818680684319756058444697769589763293158192171823394043069562449722731966072124818414817809865767821291665939437735963044326233809752741650160643753198066937046040647731882910689159571997900464998819058258265211500140435818874960597743979728429673229590322175016860529748252506407530871088194234305783457161409056137777051431396309682805964606493993320470483913987411821356944621895568463119250880452637456882360101120218551693626191969744656700738388996637743622687059187088941921324417820404551546566792100582790348456790414395527644404855427903765888331833656847419965746813702015990537796607048606315265681468368697793643181136064488415335270557462286354337653304169021405942201583002515351181010186194636670476664220161458927469098241668330932991100793317805456875492691625026883344518221188195021754989493584676871713525411247251546167973614927572255419865883968107269036546433358236406965784406929752094724014861735150532336137373094502798539729450355295777082612051181236708860785229593919794664196730645200729043458670860564903330777352940286999525587324676900210172522206127768998961928474762843720225839039595324795455382367507710396442707184476558950660281966335989172523397829798454556934719956590998041998003072088162118244819577719791188753597734868850541493358943153242706112840963139569962214137476120732815462104626709158745619897250183411215826937722899931681843090841261414938287943991684132554478458110878775974790459993450264960794120251185168579806555638882823397456503090311053579328377148197649330499452101798004356386555236175638748225734366689555786199145974925081825812606186945317462387842337725079119696749023084295390879677639785401808774199404986356146788446834579789131746866871598223165535341047754313721169059092242376033371594208634137163789981745679883578146217866971228400102544315848232467769634880003964623343223086162319330615239816029937881459361805863376682431786503424856298737208584467213048037300151308851979500045288083931781650454438524925150656873664817339398614666643147099048207666275115172000863437068971940080325157795970358862012094712160106032054221041667125981916918739083728660032407126473212882247012063974391312262933115002897576549382289184244239420798267126260823997653286543549925852430305449560449944948400154803245521000427684263914352466701120933883374936732765513408169654348180998600579450703642645055671619528402930903980982942607912169806271871694838434161595564836920426099094475357425588964427713466684214318800389586100686162266644519650917828319628766025912656273677235017339847206205119752081909467633450814871246622810968333112361019023552965109865936604174814959084298307458333384248027461044281141190646344012307459332179096424682955593229469076911797462182036344976541928044146907230120874788059216936859433552987424952069676851033485268382377583422309762390164008800719151736837888834982918269522721490352957344015073269486759715265613896544847398587532886851393563105453998946400833512067441418347510956512796342266294693609300026347307558805246897448419703145234594596863078292071262712469484727177178047699270070633269080292828534790154699121733151341592535246441146195772209239785336863074548236372162083591510686078681296631750431573857430237146543039174338162854710224246517675148089892564300770174904418093437606425788477886389134520096275082821887755682239334599896487391780890942559346886641257358422543816131033056311531385166354067487403724516701157662573198785429730641338545714799667970759257899896094656388866400668371939606031047082143972805111810849578643429398090149166471812219174335299048527665433838997071785880373672395048120574043151212929787678647317404171087384577986904355863092636906256724946917224395765048604735156572947906636850924060276914435713145926457379546507108012779162004448613812175975355296439162346100575677687010422154381555952927722687604476120249761091908002476092940195325175265807211058712286710097655591666910326443768182721328264963013861324848476899318056279593807559348913302211458082831127407581815121632594624077702983012014098389706901435172373059128821322217796060057132078004246756599849583039048180232153213681396980558604336205746090240274083497423226040221338781393028191731955579457553052837653714900310094205230104886489456458338764907697197583055950723731748909256540024286595201368507077515661915564462358361590133123147031214568365071847709660521891887566701358518832959986562813860525419635864129282560279735065079155727557934228412962002596922672408914740386199472386549290754163025679676987731138387703189047243448567976569455123328449213925286426056185504371037523360355051215393861921710515706076494928201674930284867746488823578011905818312910422760376380616836253531005394703496504616757720291176945820807129464460056009280374922203140703840459158197654016452216306554289844591009574560835984493544036649023202116936651983775800011895485004768957195195719750611770406003367709247082898869389259547939418798367292415967056475480572275490286539400097461860506493735837348255009932642292738071382868469540232030819873376446965499414438885903805256794317709148840387990007149201178240487819023633786452052810112391184435832204431066049077054143534218616035735486180260210646679367869184325793069299227086037248274146666362384794343781023666814630026553159763535533194080645640915082812204699348768289274467565816404507698992733770008027838951950860263174616403748463918504514309337272413546255050658762705582196650975225107621497155147432078372535653239583484387944476453342247585645608306212045177934123761428336912558565744843379326397013337406113540100399793212912342073124136740706745570219248786316672380868896886836356022185875956668964542216978658595714082809383742886804282668329755097549916166982933913330560227147213464187866678980660956635246299581028925154026297962544767704687387054251689321744711952281542218446161989855173722781709471905735117985648494693158346495109313111361197888416454249760960085694659552237656765439450737343545403077795390393805292728488225438432260304822776126139564012160829012774549268320613550053149262404135289337982320130323798473647277409251227247439495715615349088443763262710319825417235721107691586324484634520822801356672944486740269963852380715521850430409475297875185927727695444915602488576926546982477156431738574353067144748030717820444530531979083577982111471705158173618022887168726588609986123945446429430263542704728126901530036398509136994218261319146258059448788664799079804115422959992219338112575348260193288269289315499486277739819570788385546040854867115556666038071122089131832172599650119252409238949591610687198055780926003630632860919065597156129524335387973036245207229409360001612474153374305438656908894855684808524439675637430093950596181416608617082166862990197612872438130478675776454708493664556607517650203353916321575951792531763715820608341781589807975946035868096161384005221443102674669657195013281859881267684471925298903069331204758277479440846397646634284660322502441490470371973186072871039043931068608102976878936090331680116588279478962754584707778790148375479836577137780320566563767528733027773911957946637287383307805269171046118728328698981459218728819335963082116176760620660989139218496977233752727591727099072739141609695652580639022990612611070554782099052681597232999500222555060885052679599165740288389096756763658862428319381620241844505760057585359740507587212005687402581175750937463409811375092367890025429272090831921337965239372680305088430432178164031964751872836582066662826494131744872251490866756053011225620917975790225680907976539440180762976658370293694904108131846926049295700423598659524634124156843124828143031441209088878450055114920387278047045548502155457843210283515670184774834134248199483528802265398948167058500966904671022106390944512556753957018953162758560452366244458257430511770360563125109554641062933163614438554895651040443798302588578863849988972212548870293527093302921717416499118130395725084451376921083057871197719152997339796077509625713156063120354423287940631968639894169064167589776825765064894197195922227537120779768086090798869673906315095097760686750782485851359649597703086072857092923074633934987290799667280198047245495506092685694823587774756980031195644218353784609706984806315654988886515912578827806919042833417905164100123763999247910068150830827765599255225431314762424622334505248809460925370359123200437493537234315338333660113484155169817936705079920446745487906214684748548264603705292467770534806466896808698453639816653258365331980455448854989799749818481880586033927039798924433408512511459870355273665540092972994941612974579689195290692362050819378849744840279463241925123645468372577633516386316400370254592744336654213290476309624945136397047171978467111547184636540916512628174186128531080144818464044076649804091393561981951136382830375799491428192344027750416160991991369566977404267297271740856808146232770371748267866008061932486058882253060284184136288079442267264386734303982692126265871609823836500021475522596277390838318204816880870150796495046724980961853396209360033385429387637779954965783759237659405464642861789712185669793821873190839915758743891229912137287354880646649761501442433209925875852858639522244107616741944519443285876913810586340745904678146648725699892240611506972810177560345319955173596354012171774288187720060326968881146871772419232054821977113782935316640124859679977582249227814336732433208943819266019874291084553958668223610653868638261570320528968917195700852876031814735332134026573207177678061648153666811850653258682529134371540798572953036999408493751135035978866255901953352502207789057665198360411013012055997530853501254355469841842296835733488350532633508053279130843288338696024197148438816937874096071799426766409928614749635670508166039035221981791895219780230649043076202690653353976857354662823298389685822071873445215617089548141301498445756427656059442879511311543048388924649114155828045511258661676948650357284063663932322454178525700635013818387480781282945343333433919911767606647471913225768110379491291557280392803891475813195248900989125651385313497196877668591204124510893438742870477922145027619963817411618130745532709186967779054428759556445113370107367378698392821033047752497558230153428290500173747634301744869212895598750813152585530980711826233387016080883949428465124155554586440990224074589983192441996277972284677034143255207501137994784810924722729935912130908047707179619329653332343556186882703957204855459866440389710084009483083404000887440589993344533990933779750341450840145544424221343460122760933767357877255301868309389153192466996689330104121094988514642042969852291213467740297102012943079706092544513664996151269784087964184678317910660838383764953934433373029950782286869058161120603023607243002462656339912888354567661524296150442036789572219591625600133787084882552889199358389501766630744775138949842135582365488816149694086826112179941759367033641030858854796322284333168136665624456412963638952494538406299472039012180979797549597984828832530114354579069360544830054669863199231661578230355882087135743706583953964436523645838450589010660741197275229314339916590452173532232235712685542940521552719514185500594929447338786466379129588673669482055314058575529555337525961092502386941698594829655162707525551278604689031530412967053280172511011405089027922101735813573531541432234247582407255941694711946890191693172521165273920887549731988357937706963926264055674208370895749017822498311594671774122836927110209631651633538414334861305346351661837729070600014754879087939052163709512540631334582498709891529987772743461947470789636137555489790236372092452401253887515449898180008197910112197947382638098920255799862544262575502537475074743279725204879238597718369949840412187755997038696830694258713545090927695483169432493421235133384389525944581462698475732180016148830699142421419514947077973628729297980344835661871193273220468228375154672351456630320878765031485258101290292236636044902777904046329280881463711463367256538120213248400569667906040377169349761465118532043249600880245424224895587328669792761929791388599613953891857404167626593453730834764792602565862026493177731478871102413936519861473167478653896506553002468054300319935119511765254128837489669715198190097826110696141029299225429212821620661559594050626995941476391550914717966429056659268048073083827667759555996087399318703757825399803080555081607997434755607409896605190603556450793246865801177520781375918392404024544648221019599586062478260879914576367179725854503014741050246768379397697393837630482572395743370698931372188962345437757325616366481422834806211504059700915452183949939054752521716994018929410385484680908945894195604516643000062503588123129839437016585437013477321989167642469950126470229568139702402533168813042105945547762681652700564929852400217878925445552752246801303537518972781935924001903915101433849163634302493942595089467275634634137022215093806507036432392784620168633723159082524395231904497197988042080866229547207275355329048344751965461032198783284159388537478881001077664385512010852250890411884362639992177179863578632739071880900308868315497253409880778219221920496084017949651056198274691558842361730475980750902321849381257589996434724024304887094569181372682657311094799793841180062085798889388675469604328482699631445005305132160199530978424125853103485399284182873631454606642557170798357998805728844200893849860310439810264566068347046262530854795441417510979549665889239526122278491909224432723040532481356570534957934387449873755341620355047032405469508256555771032412404324888179963924240989603947076881933928995360541598172509303850802225800505559452515423447045341945336785567202545914325769735299962600714846741396587717798212188264870823983326059120538428747883172332551459618027874373031309353194375416478225468231562941283429003727952028668356781358854351933243828833255071192694420290882262133753157532730844482288895006910375842800126783091292804468462109593867541813867568514201102549873157643473476005589168698223837929579827715042763369575923636617078766540423455040169283976710479676960080000325257930855013348683690442337750598343375818839800609587225188057236576584945188801669771590435608800154506872899683065118126654388037648233965136282759777157150711107566484832691061848528467709842103904371529364858044558848388759271607303283000505717077658356811590774086293203960784009313240020636369455345516669706740165208307774896109416434324655418121591773271512089403649153062141488442689506412312691534590282803663912128973181404766698880669457662734848372802970873376532379117676276927130380228590888631155940396393480721465505731292460665911098444662795356010020924805186501612004641881193052431969559851476512111271781697369544788150378360275307344770025570192095624547201655971943639466484867923049002917103448248849789203908201440001872170523608133020619898142076441216311719445673019118514073186120852721917376881697215852883490832141591066053606851611608485801676679597493755347906228331187027259169640988247423022023203449626717595427262788741668104699824389048695236192780101048443451623311500511599212687252284487365179258609462776933594305578604605615834349459479486419733822419325713555898647725945661264093551127854012288876837035598419841345272309543594478851581244950240244989363374371725391118307584996812558565287203683338492280096481608063633504871479986119142905801036326796931440734840881391754285154655829489349651852495541486111635514773438473760244627722044386277743000689797479920074678582958928288372077360901696204359593080356041921071208191713036392264570606932481952815170067741352926618897845627006687850703310418269214711414816984004136872566281377535235716230540685548736484294869496185355792633537275583408916924684311344500733683397914290334429741808262003616368674189212164942945762380594837715101168529377013012406549232879001437101513131784447766514608261997772566121315458544348563929414451167692947389623621397919000593973123001997379831426800503448892823018925371416191997574585837376061596849161845175226605643793232966306432756641124290478984041199716473582141877005936123758260073672504182282802539756422947184258530479890667683496409666405392671806158417809228369270090787587635441845333937299269821705327418374343246139783621822493375932233953612517285251683904649276335604304732182690289956837364381590529103343354751021817946336495811248598927544295105083161843356807424779342187410855289239519163819173174854210358249188828246168461706696602684021855336861020979828747986682435935608241512043273604844071141596740058712711534406850560904282474089543513538712279644776127426379502732533023384856492049503671688617847075209007233628779196033425052230396370967280045633676791010516910540525551038360381158460095680579699884803537446102711277992535282789988853914217448348968818200552588087387915454867115101021512761336405513625016890229515201036330757629788327806863406113645352051516136276960099711116544847659038660819932252363658717485403121992614510113602243750804896950372450528260403146348707970370652124000847322718059498827047252192849532129559491572935438613297509371129962258614984157847977138523073134557895244966940814631346750894155290704556940924337907052881908698987988892911152288795006118438206187372072527237296123835497331572961466534846501418874568790706982145614470791730514970873081683641146483062898118468901755745169126653667342775628709632019466119899925842473092798673593153524395623405705784532413807450856010058689910268375765170548308715007671900686193250113576432994175722693685327333613377130208829099307069834856262546771100924463700074029437125178108583305501321822315997768321199823640150992022255404889861428556886149100555885683326946807000883838839735613361695830173508667878439029834276729779782907533113021027862260769116683915433664923507762067625082604954501190025770002496331933994774719371948889820325516192921000639110993795079273076105391879482076685565423893344525020838810150623372197028863790564549518864997092360723120234183755135612923644438864322112282699675839753083446717633114954217121107599135895909328415381369210546578787720289983002235553541318849749275919077065640014213977795148436885507829269650426463846531388152071255673918380025232110378460649529524664222037372323856884490226660735714931916132500264396991336731575944569061277174810664239476433707705969699284304804282181863990974507042758619032242443193933352290092779107889102022718085623172498151622289094839904975910421850751992734118728063630234062961343353865602912877041369824632265810065216602774349066189027031093882269383375677784626613103512475903561639524077608334772515005418635102449242876991511921264367817570939355853040326110461041865765532469722386807388835492359333599701476240506755166881924733740214009832405229563897973439831753254665367550417243520804142287335199589614921163671158225440565843855317223588060572065093056280268994347818084175183846603077357560366586101238524711788554879886754553279148439208115970429877539080229025988925753491564338214952028902620203423288777648179601900991891714136003917097930823303557801452932923958977194774766425575005849898612091657792783458331919593569090627655466601727033486009448731480125227173322965258950597495676495910370713064795243527132628787802537971892062560119489547588963815702718403093644241385791658932399499302984700896079706525385808554907539167115642203864036952605563167123379501048561490322574862839160945777255654569248210720263901915573537495927411702466382002826206425126782343169299731115863357782497697350181269445478614604782701918871611218892490614659161874490032811287304972853059595851594618849970891911015393187327124529692110837983629651957367921884136284453791465945917808791164810051342474987372436411131338799091267804542801063972709754668706963396484931732743755557329241863396449785741647927295997993528048183741310835900357416351776367022165695054523979256087898257597838757087485611549902930823698395786617685476919987194812726399650190412641429919207825015737104144723897576452096501427002962754551357913672083062947080609187693311871562135561726704056817621609626375879928810968501173425910331881297326087697192334149192850270484255208902974311319895343725368925624487724270030648386046728009065795060228306440219426249426644910059516943648961040868365189206922495184702031264384565226887780750919196940998590512492480964875741888437680304009172056447490355482896332620143506202094182477314482472498708458243571466890324439013385841597646037070417512516013249293408869180583983469295581554627665114914536704258805679805295029541783685175790420065857214426930867030258283142932738842364971204779112204078072622451905928485576493074380281537793289493129884796211269797543589115650305177761224699404856873206577679665709877614818049659275752438836727759835741118502718863055483351902175437079643551794630379891851461134510901433018176874720946178538938926164450618407213983117727958489324367489622205369767855333246749804812589133546196562540932470186206217473516514998378091516670538348198693039119659543006403975471437103163569251807972595158038644063262862975142434204691038147787494141124496622898351084193312981027459785489101748131476740683996996562667226523806561283273253739398154298482264562517046483803845749863867507949931141175646888723776223787814647618749406003210896818068689549583702413523447067127206451594718889096207267002152818030327881520486572391614235565944517985466283340016277733133608803209981760289852559295787555627917303928004083619152300687607270444651567229418447934063722731507293872393654749577338898710431851968414317722680545581406225387911197975165776735246640515061431755659502413554961263945501262084070004601948400173411022779886766936410070255374756042802040471367000179742061941126644010180087721116639476762500546580712418795177786454089438315512051157344280114336822075372986833820738387124640911302789145083862815490737395488282412188276967270813675338880909087755593324768701990120760199725683062575156622836056772079404238420420334581148253321885794169624483070215735787890509006309543652666672697627712642009369487649858197223342534740308672418093954217998947534456736871589533877054199651758836680192730797143194295391968470919634823049783630488271543420945111483631926704903125731741575445407581591563491044305852695014955872992145634719655550175037970327700179796945722577185207608693174658912046251922926091332238950498628363067478196950968053300079707985315725960879668862015906171060288641723882645053840457387810075733888237179006675088844532004880371644520126646665197189681817023286924950497585510572577830389595961457430606844510677375526699057306207041294086263948160678931712875942380431085816876223956471867045299211046952583556787758891304083930487063853538243451015082436559013812651493820404231155298190462558692710485999210523470713144153822657174646006905159452987935887273495909183453755866887849102365807778272131316885870591663080901758737942855916442440031573975752139934275565564759522804563333218733512019536096330284226194789940590943437793200251054650016491697506895793814667762882790582049026457179951613272455346821031462188920612296446331904699083632311880693179988515492395804228242350557426433433605818217468198440095674476676404284670304301735749373588314774629167729450483012915144379863401283280322973725224729917569875144548282832856140977341367285147588715428875997049731695842311242375115257772709920054658185725976992259094712529404875271140489356200949263108752408002304224322861369521856965972206472190137655384247934786943509680541503878467074103702170334043738316294760957794555013826830950160017611547534921082356479732036600079965564481265706575707084264133065847672769272879146432439276080968562859206455673727932568183040482576315179924199921106406570302002997678050177900669112436431890377066589198560952933751107601132378132262187629614113680842004783710168567475183858927734264406447685870094642581407712008678338095677656618200044281206889731822045077661330806642925265362924925492441374588788461639732411448669035394970999563166867191610093079972662386792411699773962965854638986306478134840901632031566095482339396375838513016650781109861675839391959722978968322962636997240155749294814699275191176215227401254067790268713965042431350241443438642908394075353938110434558437120472922521130148574573136252173637475199745329871002759355497229721436734933817321836170980240582591884100085637421173441903061201807778314999136626558685403935237828632694679058710171678210517551354519978420825257175685975830336796129704214936826512502230152548440848393086494669765001371046874843605707631634095670788839176595712823730191679398641751272567404823062946024161322745728654246523199789816479145103301594652944800953464556696829400452119484860287279213146490520815925466483082580453597448129056688537189570569230999792812163102950542060215892011126447742155245464351311192337387346014230823490158563596626788802555479664879193191108080266348175596520116007917223773776228574418354037669115534229360311984716588132481393771173364587111816642334857518391530269157927633050516239856353103285278272135923740805336325683335812363648509980316910083217749981591356088410482354485573806834804078045859143995512241883799371455902304345457848026592823393247986116320303390993856993127436676923888647698815219655803769875466797645156454981643222483831229876908419250968503107086800616280488247079081702651718356884541660203702054913759854281152354323592088940703797439538858303706617269634586512077484160760183279618701173478772378215589577954852167692752457765232626990743058623763370271594582644672713313984476579113584765617566534125108471689464541353741270409787256553472633556762959806687598104947558210868540136905703586458934044030642210861952557249950491864179893777865663410418940869855359753310771503894749284865213339815717294400029802183978449189120710745499389056333262168730320404443465095485912801461855919806315347669153882408369725568681990997567714673865383195126420365844152004567683885950510384958956932458607214052271706383482835446288543249849033389919549050587700779920057495507715924556145396364999051977103019891720508301619739822938607871176292547700471759935814345494665718681216916772439732187864727180705389247357178286677155670948942198611406524019641054905877772051548066731858334394550133818671372879391573291294335972385817417388712990730728087497023052581688722279864241173230620675113602198510505575995728276515642487486298172162129101301602268231940857789610439449585547067263352734506850406553951733608631565716695076558802120714293340798528439937582130241298630076882897105575057913866661984316449924355125288673374596184062074624080357204211275750326941804301875805301623700602271891465654503123870600400931184741866257954361001520142405530532410114869168322576339993772072636176695232458337998751361560562867710321830396342417789974357439044495707983963168632268541387031422576427780435477477486143265377176262722733867003298654823160694552234424560391721373186230413558405281875777666015171003959753008108911520099930977179026778393399343787787150380781235028938798506467552161854170049519897955238259881332368515555087585001907755374778285978275212590182864506872687845308614367891156659933534001226745201999172590501244818429846611334487793804225119514782551458005968846817831855933438429339674760854015851830724636523813647319701930480025937586102698736329696467854783165213934011623266963216012208196884757277082144973795236714775812688823386298564576043405213686458589673930785660488827094816652969850353115062547410412791520639210542191649289295385870221641272415551473229462095547184375791601905263303601142721824788074992962483680422318720755365222497200637864300384061974318010238465855533001642926693207176766264394443061975540839129654767421926829753700067353337981003122101508640818019604040885863790959249844823910221218166555529973251719919339441817406974981270629926890644512621209834057179122326757264537076788610733435278683695716785483160288099109709926933507686479102044459320772947876112468476476205075790262386725951513776600164724417134513722932542200093860299718973634653257333004916574860718125214217408415016723766926588127254450607283693637554760230480693380604310562608049594389046798567243146249670722811631942412718774786637654667197821079206479516421980703750163781323983529443626851404998089026617166315945694499299061584308858817251142390342161345637103253368032310382604030101592137859032257839557219878297512130707256198654240526020077500383381408959514922198542320698721839148921514043424155931533752642065295964473163118244603772325513020981127924332193037664598971959168720887425723515284719809808326150685998269617348375215961165919673513539780450432933791304842468559137535351711708737675038034895851903371620483885943900609543060492978807758533960919327986714343882359102348813605830854290866344588019682864024721021950034593265314345250502625217555392486602511836083104552967183270648252752448248148651074678010392424788206421541460824500171129249942828919222632943804228371520278004906069314644819629587806990365090173199951961748823749385013567348193920492281624741671840363713211576895731618231485141048437739252275500752673038753991593807946204550300656605682149869827422889290846967026749542734444429917487376910341204152392675359500262440582325911493744925134826485665151154265553832738804360864421390730157095438434732163284916334151935169110373426861627386178843232106613924934451294422863757138386652086363501588541546138284988674468092492141543170832488342333967692482819562070708167503617896467836192084524097059930416439631652863444060678929274416106365561478294092686739571875591043309180483155207867864846506464349212676208019288916372476610863479740842146079586952706316291491324754307277211065225061708893346978515469445450935632624672121408626177166255208736299894566979185007189720104013388974238390225012972696843110571607127841212467255087586734560341601762457280757905730939867581599869173754289542279761945915738726159703035759240257908152308850209766123615915673521899961911191867711193410754803888796970233670432899977053784630251045047930369386690511067583035017377188711595408177772176141620205704883155846024845790004592126378773512397781715177640904899631270129847830383615432771290752839161879413337125829692400075048036167000202446871156404709061607365582428465655887543141448564009684789056857358012394256689457297999473290235408376148685146578594841867285333256625771927208412576276880872563060615008233886554345374534274541420586287531636930419996838856271105524645885972481063660515855890117000444047715037616956974014862443109891791095600567762926307936126655498097952583121658409244990166927699797924665116678814945704417463981756232614459220526202802036271123375034828106196745588944462836743698728060877844068260017001279922573584504510163425782350255062480273839073549072746438760444057668045685090404578823162895399939195739762261083405005453235852663478720481503117885775686784829073390167251915952507739478530912532797501832639141514960764661573750338151635453376456862543217783741628284445791531067290384161452345997689301665956528055066667317366670274789158450762553263672985956204821974546858940805053754360020350782582027934525070849255026008561092874226670900146717871039463563647532810099697629548912666156495442169855447400934991967307536229656319366692344883487799373670110072354188834397852508961058341805434861278078794263330680898565024362782686594688137818613920738403285827279781296498159883703260983316252949635159260603660821602544068478333602108884277931966663814981759890597591728249783500309719366710691955024377943433381713927924323068395203737746898272311414569802046003292852991744623632925911202590871313594657471069978335626503834695158390328476878233218547631926948457179426529980534555468999671167683121354935912242569761423301720224964430107555295810306543015395794448765966074637735226687054408942776816735957081317515384283453353654658986964229728226216505698415579654217477359543882423556079469778762017022496635762660701491403398206047989585838737978760502837868805471229239696866152320986467811278134914478778393800535227789632583150551896243153227634108755145225489548408666225800819518621443979023515957924819861611959347149113009772356802590182565753433947351078756221256682881353563661842258281418453363663209702734406806022425690366483726553044767616006288319677550791393778213196325550498130997146376214079638056421509508129414769490192417978565774081397857483928215759630749679755482344609674481038305523718672459947029924874803470262049137669539458365432588803773691723204303960721758745285097930851740744244975468638211967682546011184512752495239908752082461060963458211326422539859705670094287254961976066604353793312552124117074854930721511592223978442074970814934061234314609577914072210772288905529377712268316331436225468511147885620171827859032402078882297194243897688266511111387097937686078741055175611436107117537413796073872317989152159181408288145222088108675727870552918034998248626009765342793810789182056739041990633299147211447005855847673742650659087401825782069227003532009282806014278031618708491123803668568150999448568174033314089644357209537475525840831232770831871429945680406986836029379101617169691900607030184589013123609985188081041153448704911516006792624367597540121607859645628916584529088457883447933773995988824208955851362972131317673857602831474896147794342435310460791998754972080003602937012702834372902907247670987796608476851598077858828665942535896702826078569724336781277252498459947429762678316271921351987782153695271045630752207891064185996138246050702081028952602344784053363613420898846850376539677655497722357468639958522863689678855222436282536406319254432224933592780106957340248200755004304426237600026114226621381666435394600172952532374737331929517674574780081530427771883444798013021600055128953539007857858251819859891603087499007031442853842368531903122691066372266741260078555407624966827406603605676652777488405858257004854486872073101388019307835207067324868717697939424259840975769591417101136666543099424311696335960641420074037393821983827766824452721526598224770685055321173968487229535240742292356650565214038275928305929720004618345594408447877938191119821679860056212273949367333486409313852360632614020275003218810603430517755498088043375111034881885209186805024894178310205979501011079404479021614769735696603039309698804891878726315338682723278606703055969638993707268079573569886150315589374504090659630928834618679281637647164087178525020595358307441837119802746820748482613651868953008200722244023423873016223111614966675390472272665838113288996138696637073529674809025380215023391880543001635434583480203474751614749635090846338324082715522561188072672394758007315278317853663464715540324057832131283755117432448420934842474257702571443801547647448574258771889836553148882265108239388165579738744824763550004629255878168195328147096062544462311744606437460001143311851458887177332718589784037155670117234239878771621740368862978072659261503046752645459754710576976092628382396696075653761998794979399924333132568915995705207150751305864345095520695528166214938032772703332578752302921612052375637439813672175231404891998566564407591362144107378027570152494066685965624706386113467199994241345623353079477023490451876938486307664083239842866043561663760904304358603765754280390834509360475743915077290437317186138830444939345833478606307378516337090510256705022316962694934644094416433323793128529720251655999822946213687277844671303518719830602643887496257361927302787374554242236306406809149354359156997855481587677351163150650026991184115880508970437302190940972636709960632667052211297319667465266597143832186292598936774702950171719678455738238899798797613456908059066415611223562590148579429853603445063321800843356968902533199391964192056628257607676725817816461396212996451474997724019030677589507823695241702723409503030807138947377055387914475155167931469893889544854495739853881933939436962189732486234304467616350552183482824391517722294144243398955048282072856867384579875107501999472197642909403807527435142689293616634473538821043052621450863632154743468674419343506157277332721870875420604863644844121269286580651074340636996194609696788609118656094733751374554791117974806639205739493630969445073306552858064405019403967343831361159125699174455308178729050463821449451150934181154404815469229633881963610682399789187734307024396418337105452270057049673033032343667834020641637235779964668629772387266579716257606044083824526174342022743694823469422514955001453388852880863704817291233708223266939808841963824849385592716459866519304037547893592868605159297716847896844587498888770317957230128621765971345414398906809759529224148072970454501038876069756736018843821959997687379654205918737178734583654377732823705855094171015944679667647300141754869022120890916477444982176146311407512262067190093270239360701460105050019187230645063556498828024374706454381832894561862056426119659841461360402024283580171117229723098849088921216088625487649485190267981120904194319076711003521688086383944281888546539334432489464184202630434892059107057984658110088286897300209438963087525693576444238887984881629295994988336733798840201451634731602302796680178659868637637905873256251117194108776812870183029846780162765373396701099014646623794125341714706926746342420448134568654054799413994408460872609695013644263650616894637295359793974047430788124864638921749157716786316206391091308288286063777325413833940932699360182076822182446396450404667702226412999429579336318592428119870705073617597777181768728913699084609735433609111558726627974882870978114486033477464611199685241506452059811966080750761658041772390212403913088560144193144274439154407884832838902835244168486696093866681846590016822378314340060862066702101379854860257037730197871884899664618861316720297077473783735881437435013710701004452115390168461413455553031865582187610203641972250076634395273019637724220009736751466523807276919423325758982719790071653879990233242197270691555954811748301503771598896109926086722127948940551353729597887135552360055362079858355259286043466777489904729911606564885085858719670633068991905757831213407766560289256522318646384321256121941539687123894775500705601851126729367654851253869843167421740768509229660151607324875132393841662084802093033530851902421581069940463330089756241729813752130471323758094651368158506712709821187452064139445206551999063869347828345257816703014192879206015143021509868615379190175087108794172258537352567645813522494449418929723113051287088477780290300779793220779322000293603963249082356772754663585599643418957271617789125511266620416689435842863999556544136129893504818349934225110929746287301597383846523327562088378185987910840183735760986842748055268204635656441698792675858661972697803206591015650227557104290174425552670430775421246371693322054616581411599646550508819763481582135548937740486749594711831153537429536490663700667627915338772104213679094175197131732996632033991307503268788423673275619482807084981711897144527584503932866037086782794091681423191243055174953213876408311134306075622124374333525435865907642648648570944688287994837190990951035501121756924348859301727289873303956627277304373095095825239489460923215239941632365181590145677295904586594908356035413789798530156495244540685665745926722990512943077930974977111444330129191819949580143284412833549555105710902035501290045512674589346502094492172068362457742250449360700284933814729136417026688169330194413399201769086550192820703239063052916633705995403115181012026903442052940526284622835779826465425882904193995471484783539337710297440540030440212884601708319489078636261994022624347180446053823574841296617607055666108544000525098812216710679207776294297714989477544680948849879268113718582595081028167795552417071792871665827837855037232578835542507017072002552696588864420004233617080883563270800521249003803354043367027169489479316748270473407169729486038392108827651151616469141234247257766285894927736096394739185797651162270447852096103200560162016560503139904581491522358571642775282779703663514078623832069303799395065564602026265744394903044288506549523592390199027790287190640277525721254601255992227764770440218926649918290402273733449181917650284070339447978767066861954420322952705695331664635759685463181006442319173852653325400848316002784510554062548893760862178761904742384756668099902848767600086821824105105917795696281760529727145679064620355918889475217854810231045188850170485182693415895587098234190493446185686452758810022602729958999368700628984797745230303607423405930977387319926651769499828469306212364114476501031273240782880724329800224708061880624632393356348861020469582342210657688379447229960326423162428872326476440750015037050276784023508224013829377554412388706639853558489365953979810931389070552153093899576244610538441505853323864927902276129607379956738116694838993811537971959419170739179471557151466315769382502679029654388205747496989589437860076208419447969370083926804394531426870272889126163779161915868714936039035590505248472429804901645398534261596128037053404695303886499615419087286474511062271095868901657998052103062397233998138292199026686691892918411095139042417016454404901179054672266439614920855613855175230235249307352502015669169197685999369033256804000719475190051069212675331109259395548104442963765558720312122937748352733368203038009493927030083263974343742387602664820685501827288208432063035871512771420545955004272531690968586089259643653091905361643096693211410014633068424703589651843570867139822861104818402148924272328202112002615821924169341463843709643381147054179422040240215508688801565856926608575433749782032293305730319895779140599962847587795426133503751953179871399566786946149120336467822520908644594209736035182208118451597673386950893834185088957114487279905726723435344086785315958142189409975368132195905958709125247563842011855981039148436928912332462459064801698135574132964553229654736646037030004060882963062208031498747199830034790341127244032040756021670690243428733050156813381971885655452641973895287376490588130661104754247857364928968487187647691324264638554871132606328115262108660293700648447121696979172271654923606274771334296456614327448635673200247889318142072400963562213567418710482619482332599130834176196029459806859705000553672530602165418505696503636495821978455027827413398571263510342150538305233251673652991422263738161261359347940278347193939513776728116273274740979733407616041932135342340206343855544031377074432763413464475590723305553973815044601537235284204237424924205833565669632677030401882663571618520219569467708579990110488383380292395875272009039925650118573440475795326794904267886399713839741164592271752069215552100859339617758802940936665063525414431698207595759871265618609047129644655388510376066690833184290813850719743639454906988825788180827213190642869277498082890297407040523646947850381160512551634338151069737103244473097392191173022827227982810581193621764084184732581595764579022882677944651613037675737171255346987058156714214032995702540096010413453769327396369289612881463482023025368337713716525804655864346019052326856298195492370722150047294979672231918433735431077229765565903029224076231072861604426516100078621635521043394156035405238957084912397712619932123540914231803156882026955754847925035915087494044121651343631209607412475098741429006363851055466865486115338902323617166482698542185117738891187620404367120290339337232972564484931454597034903640044319860450308820966016415637686899048480009524930677067426329024142388580265892955269615457695374356547499793796711491924432021797431858606514406256233107412486517596149122748386944932481539307625634196856245617265413139982794022306614762528567219182283835431633328015676942673312010365592446828682764919282019712600518301207964844584562008806394176744203279295225774807916293592982017791708027229504443448233248645216790425419551129513348084839243347564510535009882314995985593843851772506929811192123426597517656487397669164478896041655979063616643380245133378145383105038273834066051305063768007017735713320384392974520048180149167499626386368593829564671076415158391393137112859539374299911669780443774573725336636368001898877748777685139665455908145778971531218334357316894682745903696802344258840826574543412283811838772295780051137412747040386268793250691925254840674331723209430979014997157844648285780476058469018577933674856881846341425178558887963565984652508193537456373343175330039606824699062124018495732450672247575602011100968557665114693577114345725024735249024787835461264593228143431150985224098494594540041519258850836453998380664485189129654529092358551066464819450483520014910534861368512274638464714335001543953807076886637494527887570959895255827210337866912019234692888615133140153597791987897526422842922502545817259294143985938158705625459644005298463867056945552086844640337492172691841331264684862863459246945977516336556456673337999525969407139690003808107111578707272199446449949328053242580421812373153504229245762719469602368971177897333024467615461506847634290465919086951666153728358400525415899265377871943301597041953073745197816112815562038943387174526785687865206449879046588694228812677070848227564609246632156196891355040794701578528982427262436441540987788045392728983004850712183563772739171914340139061122477756647164187149690085157149392498054206000129153758161491593178227418436018520110350921689594849670855807474644337509558400715356548283040261571646392522661479549307229851251627311141656204682187658917488528533116667620410448338720287730061057394745440249214454621125044154079377452543294658359415412329935829478805861066596187638400533647010324755799768504989607361852654942831109281595445244492595229338457287958449559270071568036336502429674740530207643179690893826391696829126414820272256582698882101568314768546056644480548749774170477649082220045283467207573544920386541669593845479776523806948189080211251072329775347697478149550161069994036138310477634279658248909200474910157639500460318433260370093885101859116578560604904026161278393246890245219817387112667765718911551331631426174064580278999301002544021888181050299926959751794346776150899451994008467913590658823096751916240197421232150148756772343238734553676668714249036041900165344006597067163431991204248285585000193101851719429485886336325104676355189288407420608918791431405344982783936973842212855585939250243991179793273968420991285561423476118833710904517710846377764393568972838660051462808047363710683210643210887072345896691805232162957096364802433870322351212424157777414511470554212323916551325126089817467883834952836464721042182421463779386003208803860880313705841466874820705488984166693552471237713257463282805152671017309900744241801828460168621857600020390931338234516906403052640412559890856890652699111577916169513214571514573312357986831371057581287784317578830703657223403637677610115174106714785489535558218966726184193139983713377659844457184562636818366656081899305340940775400058408831298884011200997206342866738266093418503643274711213645139314718445196982886450447348008330312117279902203592996828652608360806337754542068577429879216646142796248066997679812071752411992400267741661287591631632410084824279542355262815139658841319242916948099158255996182654153865291648679763478558481468208246102764541339328600127450887073816273540163865626138356058954163845249412505728276577395558599357758842139709977288470201514641480954032497296186782919363890739313833404215461906981354245905235703326407738918721819189007005015343692787349694439529185086361021071744128111726135570604811459400444191837364616821417704990334994455087567676815792737840118365624709780279487335338686529135313639498300663484263472007908641089955599944950847211026967829579329070138009377629048856965281496106102248970613376032216055051154272303965453920937537321442713706724471353368237398540282037652382705671673303940393881454698778071538540845634220887518193093065962992226067003758308726502423601512526963553742703056908406404262239464805719444842044217326052457826582212371072085761534196480455427675386706999844430277289071168103286322741863956281662777328197501865826244970426366534168955879369354575013111271782184195095785080688059338518294508252627817686335897199434727938619914044504900338384446555586139931438304374865162050024891434570283821974346268087779806158119506553409001515884128165491885577416267186807325135685039319206190791014730812671731574072942416312282456729353021395659408569348755073338949438674636923943216107108695970786935541487888444463595260358582007763342600362688019170722483657841833873518768489996425789398502225214253498663081950141368826178821024315175477369466946020842764110036312152415068195582235072826016684574384298453064199701605681706483039370272032830888537237121494612705646973201685352730833940584034694826357965017665059496729801695116378427364448512317195510174750111388399288813471651355480104957084902007443379087549132776869001879727492152774494835903275827502919498147550656340573673815702811677659390550939455907736016278392874045274873669711733955453232929741000838424165188384085719958073548515062908498336959288211346942538517299376200705253601391159818117580087264756057862377513763237560127974764526788722078356728610890856869754623084842570643858553319301568481376133085941480324894559332185549980157185677433783253128480325136636233354162339005861276795296038437587261894626038759474215563843154397632454668669937230330656982738366133018857979450885802186504459483197116348664795804552662563050142286028525923525795085783395586503073203113159204027997475422259344512164099583477246505757821681046951468628982594681164497453148373860321542788672647784973755403742605748464969480562121428011656260988502422399659224840483575086666710325840831863543751410347976837828765679238816530276241445125902654746535603228430750099670311905598127364501546940561480968575852031968776301067476676167026564827773151802260749153029786362015211321926722756780040255718450004958078156295958089308495852661443869007204108905473560496967570325158824843959529332629906648757172070538660032012082995024929826213372775834245178379858631887361702094183873008744172968369727579172987953977247026138910356473721870629963551055587354353896438298888414270118838752390010352658395429508504701504194120513329760996748121346744503033717266368819313605239245793323036748521497866504485606509688065379129147936628149082293977722333239177991065788859739216273849334687081770279009195993696449647764894881341028113146246551854010277049284495699974967340815122006237804944627648553448429584318111070521465476890364441335952939636398301875772353474227269314826462780887373008106010705230254326870036420460654382121801025387735195372000788907334494535887352217405788539802151908867350686481714994323417526937039376100765103818633975356150602332356387899740494972572120614546199518135064944069517755893324985639251062785902557564869584624816301744378826130592205257264115460737692351569999467127642452539430047023849210045010329465968824474365807466115270484433133564768668960689075206138657012398870157378665169128357797086574750172738797332026651077815138402546643460196031096538431075345684654069652080847056933332640798738249257040890327841716875800148162698100808488505028647474914521021879513644269628255146565892345270820574956247077834585995269346591454589124910940896240761809482028488977693352079486397946407430139642370621560141828044498349119062876653157562907219279974117038973327156006415821477030294304141134295174475246657691533845360031731469847737616364706649678889336850026453796907095620272499984630234065516742168648844790302055448457682362749847207945030353545067240423897970002316408627886587218132996599333114934913421366697953914461528895715957947885258461325407747182778543007723384581209795394478977415446668614526968252408465172151638095899228425742127037262665337890385797244283036334413988339646739080005745797067269252354402135586049911853391884022174067232527157743307379075781459144718042597645403763936747154608177428292813511641424406176059528644359626442008157866847587467311133492782779317798284002647224537130965910748436470391557936733131837398268288743503104592989752499713475435682065377352626838333167572842709342596165365648336109392522402361054041069958841798488450341154928287010829285167803516187647858372367434425646800204691458499897281416942504512684603663262587330848210846920518248154735923581077241896356377039857208413635555281154160758761028085846080360221546362643719083915348175987131203908545419886940371188427009547599013000509018469316210148083672727393884317521071640159136305978583520398336617264815708694025604467788645262885758145299464943755678750971168915726527590837801291881782911724102293812794150651396816818406678700676219574113765813978461615423400115117166085947330500299984272842782374061166151929577638943664491295321389458810178842277448503778155111370665099188421660349980628860433421645488845595443712877546846579877954218309615868532773552026017279529469998090687641588638220816400196591995756747352931909023745065998976994296532632743187689144353762723326169875098961527097285459995809881175544795959005316879899241797312535302406385648453264839117126840429485224404620647630952342728434069325920294657272470378407050232737333799873223655935809736561884242537121755664017259885222165041289132813667765892266217270050551009755002507246710365536039487521296621594813047993155273051426883663892377177807018605937099059326670939527725832713969843349395972942155582692414277605495414521378231106146261381056187001172594322957470504876601920742264387174895784166863945307108191031440765477671999618401129967392072597754090196649840078902062397793861683680825574269432924903033059387911290886778641269616425791679529996418592642687851068084315752474539333046904097671406851982734439769466936140349999719465553909600011305604020307582340043778928406212722332891530548756158123862137272656844730241781539951694902909173704917959500484009430664717736693459797517405789695346624382966370680013086273569632492285294519849901232108066839205764557553119637681184524314938472899172701548731319731291019823106976439541695079058639272465118297686241175599151024979082739548419352816797846934478831781724328774870562598164843684827058825250024699851267066603160806907821568706966282099390634647083549520757551576703085247406541140741487177148841629277377903588495905076995529768413545063090078746284537052036262144090647154438150660635839414171031789135106385028725060644432816181626008069803665607392735344887274389785390397178949442543157172558223625364635469500247485156944790879872059390449888021507961871094658373674565014255351067609022906240388574081129658641720787055036763086629332250731201440961587426912777419714433891089469908616160139917351678001444368480030090950238869877008263298902140806231962792543732018643896384532489493449101505814133639099212186394162117445596752782410195981138795034480101919304414102280933202209268398876162600893958113291569864935381451648922168809243617971384406761655194255519801015887078876148838033946713977542572526979133126035110446978758516596552339328634297611846311553542434384188418337843936866852411278006902906754682015950581411379598561858671040467622708024424155346181697775886825481373054089704166465201375111372796206746188112955098436717002874257605686174091498393568508810080446194710662372039988483507901037597366725313073091089967086644802568363274015956533181237758780570074105144873098205349085754565289497983657577125014866952469443793003009147314402786317517172453622030355409126108284986293688185643509418069097142399348301487498402432719806156819970864488820268665054015087100556966969740453764561498220974896760692465678016699455352239545653146006572388895928037084013253808743307021651932276818591343286204781202333618606438652325225564377505416365678259032326536896133426487235288925888538315911183038733790600594550616146584552501153856694852069227315753045448335146832158574513768218085442322249525548793442212499891410989043147670374868777490057185923527633057357948381393320881649098002340810320121018578113372054876865954404515021071376573227927800046402793183210496430041217549830809397052661030754363175322466792295176489597898297769642753969147341681387150407677376650034651887680601239366588376353534528874950464542291263830288463757484217962757271102446522085474088925454752850490718049822063747339785976169060048817831710018132062380829362677432655759009070721657513311521869239630765743216819035003506540664182283541131340475823439352594482811222384752634534646821171122212435496521783099445380424894313097981300975957110012844198400128728556980803477608958819876074714368419158787721150108367276327358361880632962718630945247308447375530002257890539150955038039362210109212273194396684540664442941273219275038867480991241148068681447174313094995108807362325742688171715748411669784128989022443467550018638942676542856693522300149497223171305505883466173125484430357033548083783789862125616552050691280795721495654376315503237448935472725739566959385410139719718776474990867635964583363280480149486803264935127678222337182116164034946404501384003379434932799444622221722269113620791822552921323529315033099828668027237388901593001797113639097218718111398433015596518970435660483207474150854658155579377224200086313721881302591394410535860248957418052981943258772498517607133427789716944329812293431079202389324849058246019989647031679541441997615373045200103540529556462400753655491976313108524472163509449241605535958514634308719483195599025300739424964216354490796851084018247600181698488192986790643957885824590147623393815702474479733873181458735930314320862272354449990353699731619555266299558928211015756350886686420078112341005150116227229944469949694384133801884870259669669401953378664881111030878858350919944754132736290485103413674619364076847344337611133756267062048801579565573983440593826880529249307528416287896825662016647030106710412060967247424759480238385974497320758673286174366786961104637999535342669734081298664729701063390946750619441027080315886808495312586819860815241592823554825471871914847945815904249899599341287264947473483653470649508987993923137543975631410899651343616221139654304549496942283256473264326915778861228712371314050186312625614605859475500695070050313367071197858587458668118060251111310059423662881101315230194308674011545150668140640334842559155043323639257086256800125189755970061720472148232198514495712270419119517615308843090961716180488902551303009181582104244532776781341600394374256337684086981037331642132008276232833546432233668968994222610133838365799542586418498322634126170434803177843173161400207542993276433112686841707134339763184740898777454673272053179035786511503701687375144839069939407365099473138258871232569053987496508421085647045679384376334809981557233223269116650952142524469092505710058331195464588463288761523968054263895485416012741868002618563309402144880624899971984491759960596302851067343558599879236145548294502999085622719183365136099263938819392009145952390788158085046970700887046642182081593737456222350885259379438846482810280125354003953425231419232356384016759001822073316266621284720168305911278839987874008804017347614970098565224137685008862034627453789463625139202111656408839889596007137714258673486624898750019828528648020246337601004036514646548660299595632553974087977609208885460617129561598417087714848148024981275206407292933964723821604358237288885834459692802833728282831804978364966506681850762306197802383717716164964777503528368045584849759553598164610445357668850279693617174004403006988758420177718065318321822190452363655259070531710478452051757446550018747164550245383449425089275303104011011556545838527475458009180015522509509443442902929375008504146255849087611847232492028826347491459606659687704234760319404278962893634622516785523663461041796754383238028295805983259721813276079899459492140693648663384438568528143491321439053418602844351320884280170738895850953878180562586863671281208592061498976533899531416156614601579233569809288686040585401861342201644514312399297862721783134962368774174338764905518998072095603549902500992440610271926543798017428253217638739127230626899252350055427611019035660045587528317850407579835686628240751634535179761416686844907961383569678762163774547605088652581717084319351318000979583444950177444639813204077367176687198401314477640195053390728601109821270596331802510420189401308637567039653155248164733940087575191945392253370934959258257458620163527437686728393352892099334306880148249487570792401979288387770317040788934245432857338640501268604909439104629314652748868154439372684778806318801503057906147749319415501688309266890836295042919129024271820657222854353184215642999744532865214595889365948023014062529294059643039247972268893088544129528326571092896733178213938057828117976718226739600615661975689991415420136244795307135877811465813401442923735818802092157923815127945783778894762780125603975846519699259400677547051771446467724456251677586833045827381870991980202057304481946550465526303069892442756282909844232811772680695280621099186647606749767685264045197127956609844681508691673130676819348061444167684378517358694937164324773797199166045226952202276906242195836931544365362523052452472295387937733952210508205164021787613844895391128004179888878634666012908581910689601460996008955017297310096227224013584628834358750837301698953918779494288183301040055513027519217907588672246605904669695657826925829880510504966273835337585678003080399788210494368332244059917285469177491854005474664890664699261395857585586639509430996880655156502049011314389038734645204625552318361772249464316460111541756385582939769073679673650013872582297291469408786986366807286877912895215534710172385995535358650332929119698652723332608371351778220192749436807271595808772987971552583503821478872267141675803162548823731626737948434256789783203804550297583872819432576845190718380489067660728505767246970503549634036570522629816811670007839175805589703783424966911289039621230667911045526792376983900336318648364128959053434150115747534214712736291795660796608842327054581196582630210660003853890675380825611734117138841614299646561764833797422335642907624391489156042843001710795963259138327885448540214956961858733496545591636356124675749312953201949846282889588433305615372452514113361228059490901132998438690985170001328630572654701970832741901041925065784128743544976335574940449655056992460888791682205780507578298960833691088351108084696014731992618134046731878352278639016035119212862635592219818191583057696138023328327616801278777421786057510435387856394934410039225031064763274964260628344115769618491604658390392812354180771736259610392836230046271265108120340235104007736204921246619222891366401128742326692532583279168996540595968271227918464524540697043737058690142931544491032220630203962838939845637492339742284709619061578145399212727563903554315854656112406635994398553136961228498703076863118875524595105203307637225586964297322826518171312835250489930394739784689888565258189264120977726980761863827750188590605972639592585013189946379764157765463895109657698837485543212402276457958005499906122874072360315735751643933775315267204221318855153239360047489437057058743153809561527591735076831323223757795164861813553591557115375830052917576968706621893134224403827196343288497206408389273237414168519108211422213554935630045154528497809489469230416989940149999530374798298672857831412580533026158996368400342620803581836568369465831589625479925466920757851248870276143359127406666616985108459345751624322406034132169345739867197794497132873203567242968180036937278487570369834234645728099177263417868198719245596704419631778392738049231445328907039821987483290350267684479258702455816473455611067700012344746417269747142963949020037433002695895574804949552893790287873274201606377167841198232076882977065509194405743202241081794179832440173494976054675607753421438231984097079781636635382647193962129838526596568626087838815232132654193343415889475385881189418232077122731395787399936126361040492118633541028389918265463830219560771570840848559109625660912772098158106336867352715755370142919771273334957449342258569549968038643289153620125317405903118282709013308703051054055216687088229210375583635314823366356245127493570441981773351640608176109526901642994558332485815653463146152021785653255422550608365596074149209133974009206936755441318930444472467650365501469386866039759426277627853207194099300041959256011187226951360127970936590121182244311337682360216544189916084997862033124486231747532429037813896552580149099503669506097490337140995991612269632374974628080375066060976604139163107557094422088897588288581653140294063561379850955753217113406602241666293733143937166730303730460477184026244963626405891308696324681455845658221149727896466880064758437634398620988745176563060829718424654809583682848940292968224011058832003073990338614428066283873035565100478728074465284801063063169553519669021538370263112341168935692377439188985541640059021638873309660582241665899561050259094204325310249854239347507613037518206578997623978777301188927319830875415547662481743718140476474276346695052284582651806766203670116040753449864830526428802001121600474306761994434617117528119678239885670136920423620077928523028638561069200112796194099763333647594072972714143574372814031083726858976190467067096832344358242105731756950562183848388884928315672178301215592392405157491444651953242860107268294772636491900899430461985018015297861651661441337832108012506386140704335391668963010351339353683094356956980960942643110752652305459410206594467896669841080322391487650112826283705304446436396212676459874270660103623072985099151220191925443747583437906100891783966494500891786128000211887078732403464407082988482975175710175735756125908241976240637998284898726520827459103200485287957329815553423187255603181312504912553456046505639713219308369612732901193884914980318157905660534885871435319600799508267040134754520251162526379917039452693332052153906785767737490875185996738491730773640762866502627502141417510028506607757522037210927070766154173763199249987289563039409225907986151072085433527610278163357667378170649146918919835576137577427271175734605634934280086261039055525804040865537666398921819475336191838128481780410455056242972528342087595248081368718610777067826729859621458774990052828592437438360954808826614054474562418684216526818728187019197065306294464263084528822641283449175051466661947536525680856092097540767091853384738607427508247056179251276025549746189573236411933517137823487112029847995711610507753970304158975412082951108102716522900850001800645191775220680548505540236238372902990634015456424466168402176387908104110580861406194881180281380696269511199924929189574229292522543849870736154006821892794250562508667218974131113156385067800762639241339441426926164731904249037980089636285376252388386992327076232953114350768980128273920966815062361505917920197775541099349059021120497494771119946620969657703490718393647284629992519235650315514739193241801678219496139062546772186539718985356552836426874348830503782682733105844874414750520912521784378684398440346833139201972853033726884223147760632523783759979451476356337236001740568408011000689749746998923368250210106229853165569719632560720905273707915522976079808011413810885365790317050891336324398774857433192324150573976826848204713790700881377630259368051391644292236957278029959861112491293522019197579375909621467577172010472201998500485076451795183957458771246761143930388761696782442550955383704672385906793683406265405643545519738470268157197750203253031821238447911703224196330051037528224628290079626207011939460467640626276632564719551931863626691924193070095694118286661702179942247009703560366857130466795697800731295441082895228377227834028928853360150760846988196330697606220587012812820529066939176014948273255609984175841732993418492559545275614123106399250412201855817588915566355906219630940835741336562678991960301186566741807796754007444971366504515459642146729509829667049039278630366619124258558467620137602103619412105252678716177526781424848635823507578727108308995020871831493849361290605553955129918163289398480681262082050909815224491252086657430707414191211941036259218977328531713187411698445377261759751105390363269636262307385006893601839680336881686478921629910975894400788923775058960135747043906663781080977568540554724565676516376870924597942641706806804088779090159999932817564076957644164732798089001755393593337423827866444125503049966806640577267670055677054261062403391077945757957252922301004345502200736475410581942932944201962885106764454120617884594041309756793650787839983248819562473011612725856654447393973109294378337227501176455922542871988663814620292989546296882840812795428593991919803862962524024520415694418427040540880310561771046768968738395967178702396641935986648709001641287520562010499332442420796231320771001508541495525503222582045729869962086757237033763133278140855447342892372764418613840619357867122202680365103435128420991681820609733189328957872468769143703185925577430391872241880232616023441788207965387115318191718140809818644687768597290799050692997630353946466958618497219510589259811999049741246661262674990077927729085592791905458444236548599125961479868854917207864548516226465995983351259627450081680557004468190151127399620996578837485202615986992159606840832038275332045042592794893368806173321304465660428714424907459259351101336179498196234595753000073684626745546191343891146349743295719917105414781887050505500415772568121385595103052042749591639737891495178472831562426660895554004012389363733909647056300357730820740721823431310579651024987837483672190318412444347795294453726434233864730798629066228663049204075747168328109472562199869937264224660358534796315367934323201221319070971454459788939074231420940404194078336121610634306215421848707673574343075979502552110402978401276685961311835747349979538577874360796406877353301037495343331961207308307413313056700305513579866324243852326684608073982134040016441399658380475716099437297550777451238019601040428086676064955157047108875792839478597071920394177993324951236238457033636655310643227957013068516002498813989532193018814115257597686215152394636639532705291150034971290828103088731698515187987811321306543499431846042432924931410724948162515748238629043416882914114174405676433203517075485396909311424958436712701004152672080547373646486514177387468491524065141073806674106420201671270575743042019499381658701331180485845217322639118452082047252576676940075381018045545001436248157041352026361528488619894166638199948517208573846283202266641847017339941921326535131992514738514028459822109505337998706269541906703392068067364373628401499113168816475752053277316053908860389782879135193325045099418724965629924420140950083270344137686351821294946538193619060688045518615333723373044483634750662221848598681632072465153648490114581910463403562087915519328762796380804006381093195437175514099859604545792201413184873434438478830813223666168411169124662570302009849047004680814422714503208169928758253775274555056672677029451811052513317096938466449174258650042049461214001948458690694803469501265470311267997852650983658821805810215047336224590532774895493990878094111464931156211968854911557527514018637565130302744083803557900365576927338236377942107678873040431372388597740185879284268040110641322105324862071786802391713613546631482102615370184186549523605054369208709136916827787511792336107490023510366881568787464195221401900564940834613667467812052094842322162730134950640013876033996228870162738167962873298628375096807262735775648583039284277148317134408674876043568477162029952876108812035970538451878889474561841110131593427368056590252113408307435425339916613437249409906001128536072361764695846127575286013947637957523925841533785677954008808987637903254200235681323858402146480038436473350846021319083306244681471291278128324549720960364424107085245692803224558192413821154207875205733392589959878255393336664669265198584952518644690087200105887731909247775981954010825153685818234597344727742431502717073841628591256420832071108515887892684282063672870207004119371707159353473430014099381546460128175140904300511016468493076547655706085370535886958926505065088380522640546907363708010019736741349107196585790644206154207386309185680399942328423987978247967417261747380064213973085489439488877854439671090845107517344358605411983920864969304411052512398852844200914384783518232160210410939079030823133733287419034934949065047896004157273863920976833658907755347454044883641357060912467834333606350059597750507876941796792077328227515158823757668446796464992930827300627166140137155888655796129651466643786686609508204513018790221152624168484709806581833572948350438182503893963217576587656461479108314441700274629480353370479001900244932188217147555124656528039574441212125434144154866920826676258912619618546183698484194815024279622559753750251321217790535378267285094243519382607042824159414988631235768765228100014470405806901170502571329909967916322600233362655036939009534950015676763274228831018408910988404249611750202212640714861638684475386014099237946755000167489968239694740816853915724309256259542453912712344104273362594744960286607809971088050369172102849202793481507312391225358084997333899103389494842974375396775672657749903331527921643128856972935799793737015902529215245054247960245998121028591553677419595882725333818636777281997111258212216131088694570042990789781375531564300140068712400999287560936945899804092717319388966663728568200665280242741654218897731262744900627364978657462504649101019891271957807551286525668875323600579120583931232894307420480224429344383472550684422655612151759201066966191825502489795932901644821199180379258806066733469720645925777545119380624966794425463854719868318409695262914776609988137376705871953558261103219885533798048166284654467110930406842007110356906728314559528905735646988510727344831963526032371766177460317810471434372728449613039916856946898972848941845760596709640297630023349657345255818566044272657029325262591272686913329273426989329465795099662804961685266584680123424538118377820226187628616194075779262914410557216929154234263635375155413314657954553700261075483027894482518922667001175382375158770529095314710819069366594225511290545761362020645894481275566876570153642648924418080285646417646901879503708767811404076570034181065825569101217609557295058279377119311538524515693826552976896831020698655412702286304314610161152373440334363220369234272205860010729009530199058733092256109427806348353253757171377980579723939257170476827104889393488054586499474817439649440648091692914146944656167490897164658644999265018999865681982239128453329850214663919585244687109567990969364287003096840755743119527840002923910879204915467033670540887326057119420976499711854657252714531664366032930347388912801440308659862727166268118718735722881656721836084767617057492784561258091426546325469684924192924635318521815926895319159943913293526732540884865217439119407821609781608271643864393148494729539097271017729757003057474437243611531309757999185123340112070792325938626187936757104975703493818172257607886340880859544774641281013806355075110368937517635202504534424503404121073109389077831882863047778242854219327469991860352692496705989350648251694527321710674131989358911938954657704488881955992111666239004739553967115222846734847062114062753427966003673821644613730559377464584501075397564387692087440664501564713902275645027053231513869448477003560999334521906019716766118725661214729645075758565274217577579921247817606008690195916782732637673376945906451288059609632142078753510227592918383841160913767473991424887220268302246268194848382401776235736022919184969265837757424758446831418662148226025326581852583886358800373592475500722802439858339710524557992211200984668958409082597626924496263177216221323025320105657683630793344815975436324261129351813279263502228982474263399538018813931161105778388724960831245950956010332221841451700362991328759191000310453514555219939522055374372124850148293323877293086509088592725138357081609313441931062496849823891425576869183449134000770335305738528767025010644508805703037012347438816323562399217382303662435279539339028281321954085982289109381989439428723350870383699423093544425993214547706286445256377673450683595932548332293019609567698454344253415064252312056843766375800593859030266866481439221755638219750509411423537064839370779976564111602656642505746949474787756980639616414234524618051659908384428477742867150896918438909322666849013715240630213140967077867835175746598343920518157166785027818608151229149865092601612087699759610813358471523417872560660620853367882351516488240185918389738498533566575301264418018414898390903602164305511211519655120263355252396481745966041742392608283432998343182226606276632698270368314395485007277584841537369113931173093266967691704610351179452126857884584709245203755516493401957722565516263248406008954581232227462168675043352153726415550752328231805871867218604282174442466147937616092000367547037461600389971513731021870123134741282859841127085761989308169018112819150002421045776820794051097062264891043162467737869413105001386791874751106857577235848794658989492961123602975974316393970870678126777431854017412852846714205598489846618683827975130616691132948358414014048204660358145999042006056096710892240305593698575566913642497885593717501799367009101679401946787933377708140924142705956474487168738671455624994612269014498327434883944296837859804200236385105925394601967400710605355389304613470974390516775493342031272756972384288551496853992248102071640941056574716659090539954544967334713136677743471981903558836429642954619304308782527290986884641164342486598194239937711665334537243799422426755288186399286404798082261303835217890171220685610784316687224889051931345905093418309773332266576170312301877398053100983661452679888204439351580861026934083336656991174253625829432825430962157233242779379107361957061079910482742898140970447911686436449295933790067812293660200260999844047295528311309602991187564450345921867133014104419063529845774405456682891723892939762627465437107727504333382537703445696341612326188816885078956563359614806864511787791596929913122163155959923064778038080181434967809496825794394384336390691047274718283941643896975938303578724124702438362484102235446657227538819198495234404825721563638982595618372956274216194177211485987435384761012067848174660235053409298798111256434239718373627055325133334147435556090511371026140098372344009424137031245160481283564042095156205652167025363924193912720862240252222646299749940907187059772754267399611167052940885013303099222445764867558871556128619996676910686541584464257582579040685966381252248856674931478310090562628060126838667990915720591231950223297326443738920707875964070612593391269625667922710369263388002360963735456760824846784978584950722747776646970128021016820628865187080753190303138461909442273498190651786459107926901350073741300199832361887917809009101285138627716205955937634415023284877562445662498911694720630453198749610652044482496680745618328424404250984006270780207501487018193555979657247493996327906170372904094341979785780963685167203448591040491446064756424863303226633298122615471281572591189028433647949422155374484374178778258608985529038195202655229349557252826937757071412317848284903912607280075866232614386250686792728724592376226470878406044474404971235247153039497697331490059073172584544824376474529145491154517916158865114717489536812054777929161826175675285418551224976321786117023085712664059930677350771671674033259930014530689836120221427314508582646891842947476789853811969699138320826005621026862555478197542093481201369929639185521365533946307947965700238402012040638228977674027668747951809351524355474282355760840757926654006370751416079145282277018720943327515773426217110624600858976349558222702896661868584727244787304802853306454479049927278568959301021519960839105610440921644312985228880390852808396086939543930479800318335018622338794602990477290054666827591821724107675392115361957281913393992477632918225405523637241417902271251661751254308757288511413871355669975027965242552564708126985854042156777375579623800011582251557757105412687052797767701121586021832278756764112092298111420275360905206259467153618045759443868537664952204845660676644931873526397824035243068942073515262608689745570538625063520116286350241595636420781138513594109303137002273443252839966798774155158731665071174183968320615552825914848085989735525242800657075044362244415208357567567465571932438717756765009143183959636924591804345293740893608438023785836225708809849351574645339648203694277798590630143258486820741022532555733609401482845743491745913836951596367621506782847863648558589496606238332199189615850686946330809408371716244445535150192989359617780132659179929394162645660797889361627349298344459814564342585174856002123150739567317011147510928673917505368765763405762969303868363032134334226721236080245275032449342517467763849191570558946714823915812593760452034366433084651835920280102461503399908779793908932050930691593801843108340488317251696708407511565285587679834439233793292192085091295770045073094991752170229959880039522737383879631523969128226219628731121896907426986673188860514012124368248564388914981056797311343972519796012657656636360295660588405609698603577237098460507566528571072128365093720806773810398551388723521679169908503569508647384737126631629572048666483344282942248130661885648572988809058859741680160854165190153071012191509853494135950368440359703350909881310086571917291204869162181563811739389141306172980368206792786671187097972626710653410521201815619383583595534105106799906310205312697629736341874864264948552782564045650640596016907682126284608352832089731639964895655625190180196080530796861218832154250612771970462858848067740013850729957050696187824578008904355708874131371635840644898572791967097590578093220050876133855459999571738320594471444756034793608234542575920169491644369962304636671981943790967380126548653251993414585607333789978269109831758064503533604378106513054690273775070201831966171692494814967562537474402840970219785787774010431460451376599917655319565780519910426089852746635924714566156581547763049288631198852995086237298719946904628058325801239833880937855273378558390947948775627564836207491847219261286990458985348020469272494020317180710263458192052948376413049452751305732672064953150497687287942164868946012382939488356993699538606865498771135975505921115266226503857646152649772211198568906362200765403636858759927161832846647371014211537705781055833930937756741154038974468092653761529889955701782893538641985344238989311325277729742622614910276951705291248496969075574214839767479446020652803545340063071275254886663124768823300175040314907525862411884940032749611844820628787960861067978790473919514579952528326682502317420361615871897779305790393089662485977534813299008210550986391672340691149889176448115120177203012915416314208876698835178259771502392027112826578840776174988706246014565197202292378076618868529776826190228476506167050301397053857727017185685903271809836858264083121423215214158731938323093405858787244387986337329501725044004191209560146911002135588659473026576788152020343575966382809590247437086739165759117499886247940092305295219629033263606264660135946985724575274750435273999770056511443046906636067019914340805306965392758152125031613712361225590866582558564460551733776585174891461052801255615761257421701877675371135099374959600718693951379592319537970368519876801277646412955849142340817690343324567831308563074335489394969487966090838419845189378859376868668424849765904829435107321077211903120890318999323309086471099994745961147624393171137643791735595523344583201319448847872342937544304921464779001392218882196844126682915268016170592463302793907110483048226211068621248378697280801530480946628062712201183516475923903449714948085130430445640701774288052605561157251449645419281951955759264605886313970232926812336453354535810244440445806288395060994426142694641105737131945786683739032074868075865210271549880166052918713279352433644205833253943186880795355194033387465389231569723869904038211017141891530850963408846018848233518423844143515849207595569317215632607219607023460688416768894861695072679632103569753760609357510316235561572030560038980107351835787482999938324178014385503117105802914604696678351810179805744161094497771416920254278392251243967051901191901468099124546133649151225540556840188363342367486180026789794024850564416246171846165768242740308807147576206666879698657492683268446484931026163007067699121722610444199743470789728519902096963098145233540166677409583760232328350825778841341533886258358182888351906578278559365177461514761855321566026688511073573276722374289603535445434581662112213270920013313002406505601728471339044024489709284052943761743812320058432065662131290074090618520655170404012638763586336717063078289019770853293029393515129961938056496171722148282395670471745160075204797077658556791341535973837944988867153586953109671833295696218485507178555694252036845119676620510270157387246854526487463735450335630437821700160697278165483430799456506995661285213724780377873150644826436676362533243539031082530512267480004211913966767811924250152893430483385088033787587414174259153766633736657023830507754240127755945681568287574023276810884915151293225037760745700646993646928387130437611930125158402737869136168744575063009654840184666335733085950456272624177742181557312647602422129805288789039211123927439926565043926374200094600249340008353586684156425459580072491005842894498192186886308037065921022524193862090530003379356119005761524426819110768252686721671858073841193264551318887414945878278243122523464439858699579102645570730833124390258040426754099191186063459496699188049388130537823915015319260552215790800139804318305846438922620491448217621636631442631913699885667677784651995114389518414932533130835176776188107339635907961164727660403251636552210102731833346078626344002786716333386661422211071808294336882426757411446797635691634928050061725068704535573244678279400677596187506874370031071797719944016246929075448001479417172773270828295758827895810820740134938693139153028173523582212043187901415048774471072394825957490845005679107528661159369953713848010197810124368145666576367406431714858474051674470498122584333624673424313532221142349190938969718921682258747079613235685260475596720355652377611299546900909202133081093054003825473391253958688551775762353040932177751296767886432970034522903944296891377070428548992861669302559125796133547704455772017831632516560934951063957998399999851571309890263411423710502735303593655428892186309940069295411695188998203369357142936156908905056879699664309784661642261535047546746704440824431263028421835397801553463867223532954892850157040093310811658063087069920000106135184602656657078370570890551800830565536320284188250218751074346215290234100370092917928322166635771748537417634412826929355321602207422504002023793160096939544746297558302657267694204972690914580682807437184448368679698592834523180581610191567846809524241142435964392395991394286206351174440943015048836016327523163444356762096446873714692095635033787710115146677605085563324604255693535071821373984481123085741555215060251054453770281146743339468467187580432814761617521347412500639212658382690909907783344856729590609945403490920174492364888961609631719719570972206378092493859216439616372080221687007979380175106484754443295965283197524305386914455077654497906889078659060551021192634263668074758497170901427583515423492916521105450894171793340066460948825736358616910831784899131558482248466484685032138043143843004593105864771168432684697732294840032980127937372528407814014612368891307288340153262810971479365777094156516473152241417030388641174544929486111987984868619098629339329923405648784581505323786032074785144377513742586301702645438221236075155572620275311008959790344234679919229555359708765903643881813782059262992608520073447889780842785607513772740888071396206818893599077879301089291968577509484006488653533676420838170860122925919121438468828440566251445355952713662395244452468077500616727374554147366103705554774613118378332721752188021899010761190102485478007604503115990637727759604653409031344539459491222469645322173516768667172237049654046661001534260105155256796098687804103474963705608398065681111316350391375584079772175064564814432280178754735627132404717052515122190003192205382723917257082802110832614086968017435869181357141380633331657670342400242203308953472859007197358176749163843733907854022709559199029749370773765392107107749897232218492801599001163388113335573111572790261913405880851239529358845544508436216125316521148870412853333829185152030420664079395863476331585509019768587572945450263442096686498591878477862413193760263998142608465270297378739065993091163772074397881530532238732326697458658583629111321712389282401895037464001429126322842131741333814726955327726103587774666027695618397067819613563915421797500819950984021822791099734892080778355176134273019632830680113725120009531820937741216088668474077002691745772147082654431174186424904834335923507823347570217174414989987173614578618005146100725729375959287113139450784075794037755538016020584223310582948032801860789372258566164602435452769811709119456892499036032486631085617402383280151237136719358785965323921091092938836332272398347257803601181431338667719668308593988530878441973781298798487046129525720016647208254666722906462041961308418338975987220486854642256723888140109308315992924641352575696674189483355101674204855161556932010857937058674151329850353104771711253164549460469719898468717667897618792518555423999071984024229862172426386171667199435787857787010129467428430980487377499592874804246532482775845981004834067297957927076702147560107521931034785734019405232605617852003053461312648797798107833165876235143176676971249810923749120523276387315701327685414316453414926996534870969095849269821910027050443055934617989686233532823526176637148712193481750843778253498042019155280106820674521452186968585489367237715305726024237365466797379211103794604528122644187937985920456488199041871073670379540187474895489642854396928615397265308575643637040243359225431252101939941832474939736555310983885410069984522843643708502650981736538157352283589304656293344891248895237877964205764969415202613031098624191539594575476418470129724637523663946004856297165196435008094324585363093094602218930001405453147041048679037044648833642556500750965477288544084052671550560568333624306252626631518131839043078118448038314616515156690827877435238273215588363827552858487841718069340172269814794950404676354836188847177584474325129837752440039436882175636503717961722366868856699237046099277155547267979166786261917375546520623994571914241503131868212327071652418720241769043808510042196981946435591747630449895602686085089472317197275043080722986917407455058466614207827379565412823207072356130028337410798937624164745763734498964440520570853943238469894821036170663155136009213378057844020878747711684749690356918565026055112365712171097534662607271435428107321466807485995925008814071306787719355794641219491293730675280815970114852584754408674851539052667518053083102269983266277152965027846466524183414695574457534382348614495607769197021756367713710279272880717995272860621097985459127082778868849748546664899831446261328957415381799458565786457380187081286772210263008756360109212393293133933713861760503246060840609002441287816528634051739924090354512290000393153518345561384782145515849596374427236428959282280851798919569724818785611846367725059434815178143958030749885628562981569738010667385122050022950218781028096938736862091390734306211797298365342733055355131250066094212315692155748846987156175084629723128215565803238075926907119804074584766457936189079858936798642256870824569227316232895423936511348712608524355070230120353542799966037059513723482723244171044940650179259502856099191402039762967045957696062344809290244760145717366022882536317472298598839054035409213409704727439760231476860221096555170891431252434901960618141169903507544236777610146399587334079959790754706708553569296034359667152460530234825258809824931536152555213817851372289686994861022612919343118433410723206913895746871869567221001172039534191007014146688780803714544875555288258938257763738767098838866686685489445655359866677302948364299795340995786744821608985480826810459350742714730575177267583952531719174150498627243968778547409283952412130861914294228981827582916902794246266708943430152350005998257452660705651966969531715522420685964865362346806101818698940933534697200410202846501536571166302143249978381820999922370051442756906115966067880660985742019030477705380192654167373360722482998074890520553444882978347159409461328228658113438931401963557236457269096176056585938298770836516865604393809002555007248119466606318702570070495008390868483183538057870455565461157196662443551361208274876405706362973403594219803008087083491387834853768206344549180777324587542562263681479436108305000122280474076867999033299748497309256518424310698785118578829396473001607141845062853582871510204779997364694634792830445674584698598015661597450071775901735262671990253179026723532265553630961658557816861770513025193620743902601147575233382227064219680394796491243635100598904897902265062281475885553837972072260940382524934819261648731714845417412188679238319512390051167391419764563987968237042837879851211837730556000580509017795720812349947508690293524624188818826837401076337824607834336429408214961384712133929491666261482591451619093006026987412043970431551419853619448489838262655792806203461799596242300616094918268742750888751829078865433001162854466903813810543845616087989709876014907686017856264754594770691848009757291583841446839755118885592041542273407576927328667517854969210323059122748772089746612412654904314877515246781142665586560005039439798974760543779305016642584419876641923924087631138047662967007815571172896136041206524526280399740341366399836868881169965533364686316742563256705286026527271227540866468919339554796261223133147664584987587200804126804324016526851681221501412607561820547707086023854268103276181878454185567600982503799657764784921193143426374183545337695386759838298210224685366055047750563694719281299969421143100153355241638964284781488154960848185130491013225707673118023790887698039513078802706800434539232317145316243809352517813325022880986381301663867522799557474209551713303902747847037429688748309524966413640335829753612305428347456488181492592955431390507679667713962182428165069478064937450424891361948748061013274992300361088046681748982919154223019049484270656837024696813165168478050703479399857603523019445542150680944447171421662401927328086380426086196377400500396548473652535343772593036303528691215157087493508174274396078096846660537355963276156643408611306641167562451809901557923235328236492502299242761435441639488554943580317606703712566762983300523378743782957872621469642898037747628295272429590188519258269070477366151626421319414606207211031431772243980215762858872432067871342121337815227062322222515030314784223453442828917525372765930466731594334870484716135429674578541438559551886119352941339059762274043853135946627391332996293703260071459200622670032493843034337239676532633161877870734476556624273990624139490227423219096651891415021880556676475252547596259602872627660805794235895442415986630145317362447990866504490951534102570401415959105591165504108571882970104819616931148146578400874380945152928534031764839116741381818643318990031923108879103616878520492960940381086716917196838108276336532713974153705456807615927798746383783078670367006776305642988140994470874639013815258160975213041898835604994754699286743601188568390923460874720620429462075310375571055295733103079821072693517311110764675547498030933302767843099936504455620802493767104573977962154028014086801782614626313880904214477824845367995591158309666539909596061942503860737811382306171307789832656416748021439237551420214888711668691002699222061299793442344142928647066595292828249705826646677022536679560317083228078662501421295256860543315670649363279148798389687106972782306906578445343824737304587376045266196196003620111278940187948839844543874252922450760565300376130571994181013389079381045085171596590121310820684527390282843777266944674072288033003565931394725491808887012586035105166584717602595030972732814026005037791301992166143474561365192168607592191613368098412858173637582740344909847906732107410347326998627657961390510577057103418562529869339669380333526175171243961333138466153717867910830566998606443446122997246993452881877779327317849576496523276889726261096771063718978662267588037271138744291747257726389170289968236471227224687719969425800696993457673504075513875791111421506750772073250396682991131026664428613039187733250446921657705922850488573857066418091235044204180749187956820693190345662759516051434865139643089253205448139207839642512637787156273774008637830898567740824606143302908558589687000086980053357920585087057382902221190894628820530629802564060926424585009697263724156916099008120445006986546213683650800392308341911749712440610773335022710402941093525439111011540207614987654938432814360800159977874773849957634450319555734275424081199919606444702848751383784252114286623493957706057856978596261664036662203999232425941921072823549709056638579451492936589114017265230433742794186346500406584427422669708431479436881781468818635093146648189598507324104169539908595370222833209634759823760535955900161230924428278281947552705619481122620903247090259472603523124365066894032323678893923108884482240530177716675681506458295322736432496093262108594873325003636328346179793892657588298265636411379998985685229660656289617423039169001374871900469057359533426045738248451049721027909013158545989489548409779001356897363709783180575130359377962787728910890700835099080025090898611276098254787515536451758063057226824704413141353191671538814168090515217320389297710814201752920033464485223485120648658207439140575129557930927131151489592515180997004733757557799030890375825261493793912940389226573063603339005731553034332903763715183814136020854456132295395706947339011352201570405228636789530441196414381427212404135420836201265547763071025220126566997733330384259399323190399421947322148704040054226467542737976525980195174555652054845443585092647467391920359863652379558358521858019886694892704599461211234621022918681783985575278111521556416382785364664358584108479923505936720656632410255636205621888810156327462327883903745775929825972171935897085716926181793199331099024701561469044447183859409550393459854062236782886793540680245137327351194333967233061521415006232626437286968471620553569557783764785393775356199712632115398279433376387261211330846041258976193144222148506917628453809946392904470588572425479293952676948704347804447720316898185625259710964763547369550314663052649492281590227805447968496089556583351643668599390036479825024150737136496839711026079092229935146338378657917986993660289206489792827328217554265904447296902578055927979083052975798709760918939617290493885313050841337722474029653848348684101788829843503581707321083275890030254285990499897692966868292768983787899272067098936257522216849561678132146789272488328300288092276499718523749566308502129565726006124274831429176777147385807630395687375619892319386205852463856882852879934289842588240584286948683061970961401035984744401022096913494358540611630898331587749382996283112110267368107631670051511900719089427163291314896742624771183480079376309084250907441094730457711285588736920000462786498069662477063371191019307241391353756526915794568100177743049272106507233268918697998491001244786616675209469827591407341264343242027919557156895396513948358106077084385219118799763984725886871087685074900860514058059872698878816472506254931407444058340653328727263719901948167558863276108769099442023604707333896318528838154047916292168308291850763020694192067631276243006316599804389520264438381018382991764735280311478217445530856551209256658755959360560828369573705351482660809914711011784555190342317667197439003841927740674163368495324972936499261296310044502017196699390723531512939161900887933263523214065052314376239278915096628536156605591143104412684995937387992408651607309181675340645459228840243912713075981508427531763774094435577564904279953629464605896967366863496254255170065843079177916798920939147563300117846227968953963655385575807663628016591924107977617651608261840395614347613416475188968309784515709282366237108716764228210007776293663045493108339650281283863546393034432778488078834057759395586756737339186665328187280098454779736755411992404970108785500226782129950816870015288929292091668780760214535163932095117326126907629236206051406753816874450158743671660417123382558681897775642505970188255411068153661270101115111723452716641184371699874887756720949225473544157564740496366083240051557981831649527866134131268049489528008292399877973875273249430352163286624257263999970201244893995444810402009180965494622494134304880735958173175313720621236684849562314682972290268347304248476931982666690711232851411053325561132768012736442787769384399269595640240578473457700322697521142610690785399952821212912956902608227904320214475481332960901209373047211671015142791265718890344483684022691659641077466705815241637545372626752438452970323658649284979984504709194580235561034905340012063746390419060705563922119475129384963669333107733067755366314771557785535629125819319151716297469987638170795886325799021867500848334007716931288674080990340260258899643656552583213106838767646868935368948637341323890726956284230176463931849053129573226041040814469915380471628640112767501414628809908250246397091573122878020878743943392573537805375171801021968219566709413686803932852099251458943362515542474735420567661799826418209521431663662766513637119884673756845968736939818485424834881174229063866840028674368890931367199615393824500762003145025140819917950904190741361086497664191654048928036525140973513426642749678944469126750555076667130831823630580566679433590177789168915219341218916349799319444004021051056235664366098271846961428992600173424247871607724014448766982776859971947010036238068848178456727510030867511360886406018810868682028488569607744588329297938612815577222908097851488191688223356116534487976860323186178514716922882668612494618174658011001566255117634057875095493194150056816099370218254108351188086834861830777975733010857062288553907264781371001242777329589434048816788759110426292365659315999939400505913441382140661457793257624335028992357460417050783906721851777033333303825376700054227673935014670784469910231232345392741038141679840280133169389604814353068723629127852635256480550062644181708435960387450778624264209839025839216385210734733224350426093481224715765272342335807951109345586858014814873053933212040300682039451111296613466460662147283938297985129776243301885535669792148044593067664344585845074575105675206678319859762113862320827122015562186308803313749573090258693235444237078529714128950642094967405589429497537594546529043301740841761926991545422249668518020163165199714033727185020128089297906596750253640424211906669944670103745043973837302600781274153861181925395588382725491128460599114018597851391010898837293177031979772000897774334105979862211286181015615129428933996027075780821307370004611157063878928867270175821553202100453952317960353490303860606600777125154239572930973497748932420082222726708534358568019762980319856623154448224606432044049125435431739281610587262015877627396554857835249469290355546085095211896642287817409189858154519655475677786720470747395449407100974963050205620553841770045772805791820944763975671083317764816742691208465914990367284887532958823373048690059837288345399984403697718581960445501101049762037446264164343814885292123888811622117268652714309424344164767092703221298287578240143613490683391303489077782445510612061972433967029661548916708872525650903557667142646296081629699888750345916230905010292748373644672506694538829196312934862951448392133921568075829924232848961691422666522274810497105455116283954291516606832381835415500383216713474790772724129892598416841115746088560679024257578285540196084381767447529099518575838076056831378144293116574261248829188470851310655273882107088497632226413318950344703844271004870543182391006119484492275176288221824865008609835965926123299781662418162559256248220130883935071816517225377984474081027937398239242731607224537903443310729760273192941972303740297349818689938112465028617123719732445466111674643500285174498992757727684391439122711814398363888812300181870019643734785283769022110662172230142920733131915415307059908532319014010362673316293436483510754423052487585142031659837867872068869577163695284845102841283055226867037660316492089789277222765968532452187360503455369318254780750138352478662658356132374557249956060717161249151369163999205975827599732531451046320184967628075459103841568136216332146122654789977848519517064849253696855624709265034972058000842302096517261640913013227691472861558809943161766405540631113415198160731926356539748467428778920297304368206080757427562206460641346502112664369916653651671505071123512536885223520843986730380553184108704768773421416301006302205198081130633949962919286154550486021028867000016444246838493567021499840190429825067987689103165323841053774065810317883029375872947570020130454311321947968927172661934612267506005921684836751222832136337404379970422698805625628874714691478231822042969640949421759568112796195280568339977615157287344777101090132423587200222654658908109855818404114984131945930749519758663565112282858507352420896107787985531062016733883595687161477762978276492853678270854367128985134794625598690404342716667823061510811389123494982529289770804007185001923337357169720428361546712436549089314871099374677821236709540618445293849724449104366645735005025290565892021257229255362561998605510431137308802683487554404399947614511448997068154156171490874197971401647763126067005308608136882987482184007015036774092313978794478530996249319348520505405772922794103109768715655965946632191583639092719584447851965420321744113177109142279991555354364104849137112578390435432868461916362977484684558162652180999319226823224668302726470629101473029219124871501674763986880222490716393126358229855538378332949123403069964730326791857719278203209612802504600766421644750669143940450585876866685346695960324356973392647305377509481697049803098074039017973150927892199770993178266248898754280593470678795890239849663250666901766804357158435903089010730714571048984557798274278643895348079659304952283548615729181866541712426903336631385364059596983929045103781740859819675485658190616936786237107789225677357941116833110137662970687299006713524208674452900118183827097579524325699382829178766769783832464315243413556481790337948073560442739839590579213242240536723080752156076084665875900487950321203652978683797880145472876648358060303585625638074036078453882404906679095068012152111991627812456469327220093663032950460531325885910043653910747425413942859062955417396214181733699306379799382339594912682389447396064034688491670324068742738931175975258764214727606468430427260861816810303999561598525217247908387393325384988863702493173398791836079878106906844436392830929140536427672015601724258412804910672294766089164411867264248825776073837758379635392629732579341301579792105767170723730859367075474229063292528229319287071705381829119481366070284918988719978263466138334193084114592962844117674187007372467546281187805263072765587792432983413835000347637877109861101673092307346056630641606177863354324921048576784410024988276981449086876680744228910723239167655091992957968626961627123431669796951733261493662959149246210650966095406480380768916722657197366089018676581521194235852377460118187180513787138024740712036069211528394758113354533470380610565896237281675044461967595583122711779854477603907787560405762580138363074980298336444591140613690630913259936140083498387703860068553686887476910485491770889728259923722750890893391180739948705232874590205477576661627977686890971495248762714957988076202912382594829686238064549181491159500014611855211246665297807578439046408566922628830456410127223085555407633173352461192414518511616787811119426595653171561362125000138761065357951263248106162293332366857794777580313695714206550728633127287162927481512644993792668017634998468489355744191312704208616742438522498020012708516220948335310048493789633485327787565831798094438225616546864875908713852965611586818650517515564233616000506960189581902420264457205002466966995974925985349102036263493652961609900605515295527740097657225954729344920702917281086141144915471815792918104114988847543382995772523956383455734271662025899203905998992607441903772736049297579390602272922635011847354087051587818935408237076802417248838331960267747277375589007997960848491972456601597972889171235321534504075674099121796981539836887307430953468281928634961701319986043365438390790425262114372234025812451254006564050094845585722623176784525551300626943474554784064896554629795103282830901635237521258200924578130950656864284358879465913222369999118736209664110059048258850722373338889000742919663744401812449416351238020538206020957102614880914414838152456113994399330279898064101413664299365054347068163885013689036251934612298801343959785824413225141933424996982024224170083892454656113364710667797957844083228925087417617327340646488865538527931315593994245841911652481309686288462960294519465714683033501261027949814872062210987912509610944037965555643041716662182982507859043738064260324687064373192403865539896482902808982175864493842549182311971487476175798568141247914085106675937947865806080853727240117626506128776559718417287354729952023836844319387116820130334468242807314412627376847176071816076591530602388478307894559865677271303126148914372670531104217217390018413603839755671957664886545221867042933910239623291836360719825398462828398479459930012761077200784233793647364940355590780615560449820401529902450728349225895036899169176271343581603736934598337680524182618928588741082908349489132226207837915140382166619927337607181897056092103832955507984540148192181609083900036143208855120319783075704389993026578236135760558361441626105632083663950563606594339003777629463533802968970521731599703314921212412598087522221003076006183457284778173874759920815988724046587860039243726891070196304563284467773139396090916423845520247168744262919871122271084459343582578107559228427716921469084116768677157799657851282569117565622351877811439670481538875605585506197785540160819657274906784708720621374713596866716610427538886112192809455243550305862865984778849080977432665247400983243910116027058656427175528715371122942871589781453948263080092339729017415305620410190907771354266837537258992106947752241259665445011030609995503760196174835646800895219350077985369145395392345915520008510291133212888840020925174622815913769017772284320455689350398739317784323257439907831291560430213193707008300285304554279811348559878902132667421353592772680891490326061426049527386990722416806628976729709682129791827246651577001430150602772618536170652762973918538863525083188670584571898761456736062595675747479458886369581309347952325413727684425707615377404808498468464943244295908790971480070295222600815572287111538030487353277088916526796072310170657296142387928691137765814445833669694977415044223478322445068003727276898122696830257557813415096722224032458522815117484394248029456364179263190449251864976732294953717070060617729854883221777619616252100093648769648802776101521596478739907754033963134534605042028439885503027920010013611044048831164962192891569517614690522144898905202372199106660239677824777469301799577144785658509795281200934264196793753952360892390567930733614749726999405422158275724878830684548316042942594815610102788485906659028963887725624285326797083118584868946947704836663587590734036549900642005075367877488611229523146470067128032869427863090744456984298512115878895931315320870986537966110211061084235847775835087718929962635191409388216132340523831344286931688325907578835747760405216218193835720376962108857550770878659733154279254130753788448647215710252680919669276850086269515917901146479152651069854153742548603554573285470094141662717918647126954473469543232797674285953396999634326684069034714545270971333607248372514532734308317392549934413252536296236770305192942776864637499844573396926735969428699318077534522323279198262117460594875989034365341676754568654650783754193676712442232861896491577762872430627638217749534690402928442839997053488992810389238291700775466582400956516988328502498652863950566156708524755688289373245934761751718583913800415520462654471824024307076929032236644906400369244526489521093654322605035284976687457741590403378616827838475859179866685054128936515913404694082539634247802495436775618467644089390516474869506293319293921680653399461437167164696280086404320371913438490434387352388373517842835611779508361646701932934853423321896503977745085967824292152799803553639261864612294760406825069792268352593084655456136291526194928679098670780716857500480681197551543366414104243775682188562030252804053113407431361554857883900626450776480945991396575446441837444608080462369786121465946393315948522868711808114939059107209083761685955836635907040728933348472754160547875290924267053647014133102528838008175720803802521034943608369587218764492769024531569630776511039071627938422148049798650561597644772621003328843589923681812908432520833804513942999944537794689684853456223236447770619017742210812929444762662221477802473438067268109795675257502624893977914029366913112128537292085968549812349188792250477747479090823414855496272849190647356840236705916984197385073504720086457888849011379761673239245626271348976636060820990094483498277185107133665740282629407915545524680949671374588790045418751925823772069458698001690830234886830770214774307510809763528946328476563335081203458938623466506598589721720352206997632620016702889386064830552547636547796133360289445040674650776486191753973442777641197302869752773087155560422694033258390745377820614495448108998766103475977066037140675180409409937284434138618099027142732601397679198420706432048868216013120643050067022557402921907315689472032229512624755933918747499048461420565875348487403622273824177802034818094898018003284409399212335062331636334775663665049589289664753087006485057375413971993331641651976900457509646683841011980569991314568904678536216120107962491763116411787541158892279573524081330705360726267679917464543114660875043231795077908855690578264453009233334620106640111702729094307261256203419851550770130210955024494437201236979523528884468724196088263220799281675800373325087817963282465530004600618516831665692370200139431090431156033799516844800308135347620567164806315180805629769819190508929938629818525576979039872850637055925039026538834028839162401246371653491302979126953607102847904106701256692604403552834937939271517433537746074215588566422311952913157369939242585902342983980293093750192375410514262296527912584159467504688687430238312897807708601282346926868901313137128993820607123933060612673624639368298543997587208286123445007890911224091656779496565293294104863800053194726161945161998558246750318765734937970907526996545086410868877175854524504375303098934168580006759765196353742823228525411811033638959584099292994987292328821539177025391515817617165101277042891164818955972833719399780040619157711739882193801417688601357436358340604983711769224537821241638440377583946412422460816596803837392421713555229240549245694253478230133072904536745381872358020429885742943471537471344860446401232374924190275538683434460180096325615914380811237541531959112154914229757773988905380736819689515503773195669608352900371393457519524920958010723979625272086661748512954856906968266014749144366733359528663825203984975130080480480005713560387821987527938633725159158230875542276496762288031987972021798848415943377426630380374841860643681058688272339535185572919004030485554445075736460755666637706471848291379310266142281885180916980982914239660216813922475802101730164949912015186944025492058946442708784346728379011793800577264823203908799408367612058235762941219145549286878283609057202418786419700421415276733857616171628236696680948627868115403223424792272779729698682484966477856994252627876562394415317057215248151970259043750183845207391300029086365466416808579949472368366792815584727085243804964730740064484506502651360951913246976646446782771669251175926198380593828815843806729105328895900913191773251689555522060675642518678253073322942381925078286015099734611353334375426893290336028827026845133286394154007491051167631728898945099758973370096106873047799417236890404269889893333758215909924301390995399125712599859338624431687568527163349773996898308689261332075335689857035210397816008863970783752370661489810968216871894727581646507083329260534768587339712489437896740106366467333298466428217840728989097475180111310128557450103321493318706977397999939275747809119397191353520124442988890712188240952421046348399231412809223864182449803805041453524673046719813938528932499382335951163574042803885406362431336350831751340842998492704468434477237823985610952654960487289081706313262486782869274245148325435288511339821074851707877591458320089480189445705650321175668679233869231158704848649112919590011469391638021482909568621224369639896298392363904803459989477022623130041488826522512940088507631089749655632353127888094270149311410629372695127284044878693599263839363926978356786887650427491132618074479331128005972086438932446613020275443934956812915002679212240566579227332716605403612368901164721592119075681478124384972762171849185623609940176488269287805813112779049205812070223803916214988481936511932934916718736374058790892929612091630997224297441766412730408353116568593370462145246166891353536318132893190891976888190767180243187555642269606492252428631298787695281572082577975650636006923394862692981388266645595225581221201332239252815459541626718853064810307823905725042417893623989462140753108584148459625850126783425836259290178986580254129348559125599208341251205572453416434247150614251256689482356989568807744787495168394073465638397429103516039903958150961367106961089544505713130705981136138149716750397634641263669135384460929977167784793895167552406048912233104742622009068825104471737383034996955837387073170285572806757546150200252920742476621991175725474305819434184983177592860758569542371130241836621973001798096160755814444724846065608563291159022886463115607002246315853421418722308268017881653854004774072585461543809612084073122403084498407537975318230353306027195502426008289891611344933762607585615473943284752858375797868343017935134655596746609001489208743448722469486716816718215544346827574576572294061911114965013345457380058803886401736552981752095340698551206539042181690451262540896255856858493021023275995297170246322786844846244245463786062484606938249435296727541251805827993897996264758500598193242947233559467813971095114016951071921540341858042460651636137174518828975036484327703480298209092965400447786975811451609194449206645730114459948213869676575238284022871997652413983265843986242867795434764603094337055388053758788228020049692084903698505025804865857094494871744765882273238769584134852549387027638199040057522282846691104880858497845352642355897290910639330255789052528489548703129815399381653156788762289165876710885570309597500926543285586665468053888553592914993166826506657679835313568999888003657527390531849094917838697740742617086675487972300412379674690465704068456540799470393037092126643674715519728233117274623977509907592281052406586536506675347949904375651083728729844124047620053092598733847414374768681954057235484257680032823764680887801076406938124299006477664764688484908573582262912845834476640737621925470066549075737004479030961117921582051922222826744455863924876339165587781395682393949485132158676644127527614370578364493915072697985181116908296052501198227923041068185885871409260808499399632998858157412914098136168725111204944055523429139771853860143841407116599831390183232987678456622679600079242844027018977809805520915793525221896616796904153507444445666419034656644071413100100671729790734541997903612340213518927404194757292805043752570496442687250968745987044204798266812939351011562548394737955357541134387090478644853705795289678626216286114741541290586870461944202391731583559760330792145456568275520554352721769372417674711199973264013076814440350265335415855000683453996321210895409005623773474660194647910870901538867637746380836427000510270522851324650809458083318343650285257715896358871351146261362252150863397691986121438440217966895313112551952515500405090133213290904478506974795119221458049553001127844605383699314864459699689685605339623067533629045680336244857716429553641587341048197827004857884108055888584934650258778522094525695077353276486619967888403818265285638127010544506077159328343272774931567553980317133943602465846091778318880350699987164642113884184706353373844131941376228554220911809273335999342822192517942356409717043271141288216117092087298577192471390087377980146717217212785205218673067905176379384049256258409428457399469286153101550071694544230880879369646034908134151323289145083743545188112011051143407747527014164635092809256136076456583729983496961570529274864179628719034850536020719846048990350203660806011841038738132101730703381872693844773793047078919201246441786068402840845705932450016384613454499140879509610268445284393522963214130980857857048688014906156272461462266049602886747693046949777790442969740751506564453836391414685547275663227933686615071470294908108301203175808979475149508741226890620874978590389664484292791190772481012993125198822573440498517071294545715481120777293992535370022972931753430528311855384899826691489549569611795022242674830846145937855669407635845348389542338313716033305646209581913151461302473477898019839866857398525755651453085061495259509529990388346722346988869197440390560593350361393003376708368198511779411259039910945251598110955088741543763870304413566990583430924878982217643186870009447680774483468225861215524048489542804374091834714587916303190530314227163675666660273149762046402135541922691084668361880504513146804692346777160592224381382544449342680209894054834637713879353875356997359440751754395135854052482560997924328424179249398586576381603147674457093702787720992383378953688206038733287122943876225209113717691136531025013031409808333133014601407761635479692598513727530609715790874025446496622649663656247240382470407851867135656973330658881996754499398103617236701802824900411319530069591316566774207988856235662036361708499595954465452014557769616836512720699960155482931490967094697979704781573843633772121816074819534401196793675256557085466591438571047644648583493682436535004859765785583839484134219102186800223736519444322294137712181535788443726235850027745403945680848336124796614467039793385265132977701204140725078761006216276920171243898226258132666032917888996838814899504107338441290040729936878526080324321471028347031426282720676637655967944408838119911745901401965540594008179062438935015830773302997960656870989353327660134654399543610321524637618584926061153909818011564863987954480172042208897026510343595940635700901392260862627957289638049633417886375562899534987906040541033550327270344660382477854503258928544877929836902905496647777622228942054062121507606965065934825576002101959900651035467558046857151229814631856916876730389299887644556912218761622458356529430098008547430443292216788288259668920648519686823006282136777818784862721682569657022695933223338582999987656044833285384946281123105954977925376540823531353808701864659591403044098905896831580628311549644452778959822878973663153977441072855585646999663270759947843068976954707440083385509693783357077172936806011737025256478159970090827236492187823363333109402332430805324687989616056504335276267762409046044756920054922925050829550115190703291187753812605723580328838323963040964196237136327372453153289500325898287938883576868077755070756923880262528149446577363276697667864382815847164396436946331177719763464925265569903574206909082589520852884331606783390168111126387959499009992518489761730184539139625220892718940121937819666250931861445839551363743018957967360940302705078293398365278575897387073579151410684247807853718367999396430437706501380722716727365920465659366008927651113773115592388326279999532144598967069404565876803243425779663890144257046746990551212874591267790552530552863953450709360140747511029316568600907163229237363429702732008154854562519186266137943415579063842606988620036812818374839727733504839029384936393688567857152181556429484758859872900080465491575639699818357396995754582754120878901746551621040399904031643088058216991040057148809066718593269721106231758001755089030924280446659617734211657590367009077217322240672524090980436915847491387221279534221211143574414025599537049879445069565064905393855068044116390432287104839920096257974130574419779507154004656973655346860619745916317917683543448107125340245622673904783869149416328779667747610549611360981087245049667638140052105542253850449900041133414093036123184996141706560298822565985628079052785142045124625923035721509678311748470055321364632662089386579684702927709660572291464546626769049505021735595783107925157001443586905932582476393166968581847896155504563653506914651314103121833853540098684252259549012656375601807327123401067075487566145796978959513982274856124293360055092665014879916148371399668741573002086325094982152587407015887436217667644186254755742412994027374111926757256622225165291581170441751589577250074827059058847495761358790831127857084610659976830670701378317894742876693040687339829240923248438131609045040777762926368458360847223887470931526544950570778417494152195054356753214080133755291516565647434730036273068425671592511871948533881894560316089579464399333620350485677755124848378647629071202638974252377825393126668118942353945353071527757613492501796462752962245074775475607282304774903621726389792139852530340612999370061840854547073971534639499712167952586897222991201335000344922627241772086294962955855855042372274266677519374806444181975550292087293835468615484526330826946801451150884261552263992936883599331209104830608264600354584240293283912567898346640715854888054519066077062889797469693301868156887569453746463268447413103312650562352640235363912293982967756825166094590288429233257028817337661966937141846047124786405092399671592376228440863080443928747783243798859876798547365709105393687962869032162168820121146179259755085449390878658931043370866009416421128250990605866649010418885607478809827871064294389747393330146250915347544376285842053938343406320583419233613459411252775740482862631982137994589142123975527425694187525985032470382895941469377902129891808262383964236912686235841589731302378015458170062571691912219708476944550282361476517076958044718873566382997726053716433615567843146124249209859864656200898016081152242280905431763575454515081336654198080988979589958763809742846893579661401280363134728422656343029342379627995554477985397779317356948988082711938797244922289427058793199256585678214220509174876195826745913659060082448656303993952901268784093059733213871939684016871506082689501148508597888625119116605449566189674063819004574362323221454366701975733452789577518006782219189603327648054648776295243758387800731954575223247673783682854599087254712569629513287501596095552685348587756895424130260335234454263711794554674948838586517055866596790459573272713635610776462648655008901187658551894776294171892550240470647022602039928556552582741894325504878920141583685248700780984371448308873381088668139372345014358747794753112174952831851223079113983904248831044027768915108740131896759580992932540013360260137123458679186788330606926112235176640766574046355527005702342590360755463519219952954128968875682101403890569757963322778346886303256377640116231190110210304890190751052976540129120641702886560024892821858896067860802549152326236448966511611535141991921363942609604906744110592461160741841793340169818575534612008497245750947264122663319921475492067403859682609161270096765328157712144833874839336720934000051335923832501059205791539808874040143597603904451078786328774290514526183693470126381800684210454899501032004837731348706855963927960033328311581575817529343763938693994224700903485331633780283203418535675045401311610990618199571349250292299360071763985113979589690157639058197137304334600541393441394864008248195727455657561208500060382986562778252657844959779896231815967774383249327650289031671056680640507997097358275589602306307017754065375360098197836090385917724588235232787501849194549727137720691369145652628765412695202756318022920113801267931928541843290107400670564703470100048291458400162694988911559172507875534160009427403781129372550809486995903088527340188649123458174733910743280057804715079563746505721356999965145351495516987907747088957792640646769042123036938377484468456121911598774103838150801769122015085154458187287430854218574811827485451293458225814717762727534214036426189526727802103443423980132400077218433658525279415773496988083728450789436839921356319939714049187780880184684601496897349607422224613439190832126047313923958275490963474964027517153828155732522852015894559804527389043792587856298900097114375795975990900281385189914742915619220509380869713260764691731384154055202614257711513643952280138061680791740778789452738738233486651056855388709663052769904311280986140112872043663535882642854139784380667106461806154070961758379516360152672308602416953341676787892707864781680740753094488644354381425473709329106145689422376068113561856293970623218707895353469302803077033203176771294380779602782177007334137194759428241893253915372265380979410649249163085539109978968599722577684990876406436903739409441281273484459047532489539049590958356713866862479711482792610407399698823281850791313004088038586291724956561181267347190591932378884426237116497595379963170701892829018577629755038745109213803997491831143161114112372976548884023174159939899391947558092645553095365617142991892737445294972918219128853882153506502731569860679342249980796330795870802826083750236764394788136251770277423055950030387958314557763169212455912555721887077168947436361484231054054153234157339356828386772332877233813576002569250619113209825083425027488469225440443934303591417088791054647237129294094494460528227150249731990117384822849724683337836019899661852765075898982449697749078894626054982547339560710507052475429894945951053657489050511954503261845432412653437111623194744628895395491237504152344916611674479794702821863161982255959932074134737107337027742251975032180607577586323761113881120238863150721471802861111056283906920825204980615453789953012376168480380873019663139955582909544220174389927898124690715035273601651745219294653979362027729761982498328728448413145930559716952276283444986031019262692022445222718417046131681973635994241942181596122656990812508027522195489746118233699751606548614494060902894502001049205753350239155877476342046396340721528302964063633680019949972600170024078423585914692032065200010391670297021679083667838786147472769027062788165832428772158025304886457649569780026653429177075046897543328069359124236317726818474438665702821112237993194503586501793916257375944237637391120292121003286646400686325381648600598752881038101400507433931338359371451044369097423271785317533223681539177274517545053208683395512197172745508156484688201107979618260554998809378799196597037684790401518317586651834708364995940511907202866041168029011914506457314220621005261574913283296505963245417409470217894549801705170014299202064169441767035053753492090176535641085847289735273033199190779439228490551505960428771333980110422350839044664550662237518304501684148524315730326553814281856683959979886719463509354749033060990392516872510948711473473011292765042951275275468323052242335354937381635333059067690127681333419276860217023428291105252621464428160456730013815387215960823721153223982659945410806869298933338870401676373797696440803250345538239257796779684681390816069776476126174269830943996436632052301365195389964362670841324110362450184772843415954161298477621831036878630889929131418428592295356223618599285224445604258314451349809670339891863824981812018100236150484064025143335253053979705073427765565029290123568906592359352684329596302943935267536828413151133807165773678222937018646444725072165026359063131969538700809058037443000485032786430964003707409490027150495418292380553265841764833898849154906576617014573841725740370062677876511225249186166501886462568026052521050470251416127210739837197016771936057969571810233300765621358732232530095709439076888302504323916300222992869739026158504662939364524666424462154480399848030587623657047840231826704461679990065362859059472067088276935153744051114339417520960874515562583980275978432269895227413483072832255341931764549631497133126758352378147295595551244889303069925638374373623418127974182212448220826720153070388859546000066969536263179661171456275206942211911059605316561311576294880433798245247580299458191695097609405318560031408297031501675854540679544233428756905372060969459488419092360014131575623252620895504433548248132432328733815980937882862268793607198066550453519280494884749135988080569943778548810456004666881684780098922330476140408218048089687943315087808903446679955686599478839544244289991507576209677188944299457527851869042287598670865550121111175191354657708228242781638163139156827019112388925524483422030158941408806718631641620902116786763167538371344455236822433336909840249763587203129932049727382584923956802995029295100517338889616155828769327595680638592093063294053675601629702098370011865175772166923231300330488470333084894743186928996014672117185476204026994560483263217854593140533071190908780400248510935354831856902193523906703423956132138036550624847652257200606665995228142487522645222888054686484351574121456423921452060814514339441817072981700475770782122020521066985728721598987272405551698536194707064739872648217394775367091021476936749663890592099156382610391969861460764052618145049901600960051449761626740592645645363193701353910626737449684728987119937178896489437493539851442900628449932424207916231210947475324683349913881820811614517218545931776798833540138660706542656096402832980271202609886236422814613568574902609319279174762923389794886750203663773525560960004587789674553184005843058420146104642566704331785067686923516782187810836730880411638855882615030404139092970996953777433507790835410238654167179130292724592124950449834821620661778137187131723702382270298635012074571752349660502565065156439923864169625291969573841445840175464148996471558385943922872238096150882892744664802159064843410017970343587588259076824885316683165902616059310198478886256980782823029547217014735683617706567166050657882328974588533682931914980660044093299726291158919966573030397864253754954979076385719398370103435615663307659933249870327285356909140926986130385096168785151685415207638261634618556358680526716514108727567886054768008675388442912497857824596907943465097622019120279680099688671750932046525128452368944282372105985232231074063299155092520192461724869452146590126545255540480485196425663625640160680548328754813580061736793223752417744089766931246795837884173758105739294432127740890093358026186420517497040588138694424598258372112385323350721526084502093812408840586296707432524011999729069911473021270077679635527976887379877498615658746824876649022853266734488272762638315937266846541664581725233727998396747756934898420553597932259292601640275164413387429130927477593384089225627450487395586601746694787054824482426732087917455194971255177073185164993320581070409322785973347202411983326237061916957178435485797210277208897389561198126841425897808276813275991024677134467558002735596390077861850410632122113139631945327648950408390824918260598122613578471023988599134698743913440504755844506870362016060618535571583219467501202844723971933013018888836519325220413636106010092990355638450544859677317345274316331748258972070685022501516113018827512541519426393010279299069861462053773694955515490303337014428360934973260953369471302181173840155831038123536321453416401609266860824502111062816335156959777943942530771318650190919031817340934685181941879054191977820958044569751780708240756076318077059670896958921269039906107328106649145819219692884286439295776261923356609187709573084594004864216822313515011125191261413351098412601467727927445207005954284267793788740781837625684269778496738630447758740375529000034526770031150410104197446317027489599161659005484980000558859639107088206263643523997268485328679660418281833203767797123135342955026196110239034384101481179812890353622159062131296936885381507737944902174741800720145897935790039696239804433409732647461057644615022347828744898202813294530385916267093145254372763843061669150089924795287215904291739806399133580886614972054644483533373374561991767190431767793896992330144624400501083928702368626408793109584554527742637784078701127919980537254485230403993823785624336739106918678259193924577343940465145087399509818732643212862482261971120679625239580406120714148422002488729372385184045624236423357065423999195661207333051813585291378159563302989886599868851953818641443079877809832364099492026371264513089964275509612192622100443518295186000189316003049112951043186064877630929472529973085544290104417906996911220992054153030561514716232516625327259959444470491296011133572728054737339867853578788333648965160074377520739258954511937623366088713042774238598580243305127999382803590512416167629068947963328934450457895621202565534646225086528150811394214072706845114367524286362590993042030128367972904462536852549867931350328497750236634764755130601353207172165866857192080061648772778115417697735036736340939025954061229312035672340165650205456841270786993794489040772248415572297708326247175568161347011519251198326052917874249945850117578779351438204810101009469050491326933410563393894473266928173617008690728998758919434510021731880513523649265076183272115045171774500744512222882225981421179598978530151938389307159824831463589956918759876068096472805304365234338055431468717218203727785935196044565155764715959882580666230590488463269604220484451380469963830210218370464813947967233459600473382370033370740968644857336632958808810642797576094001333285744414371464562394645871606278403807090626212833195054136928373794749702314315163900270063470564858967044787604796560295819518312680350841340283768707889355423907007802698091834192488744992252767358713708527689694845092301492868119775242045257595830443517925315497296981994234339216603718902733536974657096087699477624341292340231903671286341879329604722655562064432075805392186848183546897743008391346067895935849081002229235020854842876356276304076613893376281735363483847808624454690785040664377592801379060748460209804900538751963006328608071801961171514845260745320142578735500345277222779446472209349874293017445479631403548913526690900155014162743401719130449995438210729966990942083550496570460238348281007181969095422182409235847951015244290563245080295016675166824165897104046007354017258706526224921550735951724422601186751521663867124842332374928063924461753290608296644443570467860319005670323754714386021308717595268474599992162090887514688475690037571979997616302383446463777266147678681590421350168229358866430949934137779658217926427275467603357979937190431207676701536969087656422389435213394462225303457611499864691435061855311194939023265785054321664963761312728008451817330998679477351189795048694749219268451923400744039430259802646613804618095696586486937223503131567290497316074918816854121929759115640935894795143825865297128368380030443126909364147286862471277243790885919327224181923645734557820576799055443874310092849972677370386350049292003171543829587955574791873122485158889911410299094492127533852640018265911349562183754546561565543877704667556750548704093334815780798931728299158829559380639946374901126491993927143088273948038473508294348943832366929607052183235169742436656845481706044052148204733352464823539610363752005978213498516266281691165112226754330032213161118203518594711317824515095405399416689260183813053778097010925964830835026199084346746065129248759727410524055456137002496356210020580480088466530759925027864650868014807204898607943463776942811842086477305074501955777725178529356335088009072888376112864190629119006819638100861958177423259408635844350158881818660879036526912312300100784802735695877214367730549968786598305804522100710164758807960365527229860154826654074541702799825448396897397222996378879911685253519091477500531416469157015080179579720215778959858553196051228020193895222331635645519034961633393172877361360753394322593686481539884001161846351702358321108237059176459511519557221927930045345144482058723619821614111255566230319122491874959469594843944600126584242252441546010154711003089413017307084240432932006392098666002613273490189841763780730477958319057115383166392362518393665449371597252022840967735732071725151256698892085283884226832309924806870438926373074857235090636328281436015016732847485929245120308857501751886627461785253736612671509007356466225186092779628585486395565850279872175034788124398147817447429933129772850300295151178589994419284579772064743217183385558254906043890184333827614772829507998554181576632523420178235042339927361227195561836110982905637140884543533813500227899123806045727482989633767060614582796779576036017848067744393692404452666599050388997806260422175990628033089811433582666813003365872967860800646719022194388900395537948377356861476336576263554156111461834094424410167361590360501764547700966318150436958974812991883009548159612759001807900821616008122200728780047793226823635839744529741074394259537589916871724039398006729269232027470912825410252311662125727363693138851645147807022376840142006660703603359723358616696973442454341611689805566779798824674463927476190197750470143127032634411011633963225480393356148464227136500406814755284573947917885976670285376225444390363347967160193777271824163300813249859731535460351001275282520856292132912754307814965431439445997764345470983712885083469273023149936540998511160895836700035920821782529976285590356207351805166031857768262204603853614225158065155966496518291694406614716888241773902797510704180985953222583936966150580402709346644605948878370418208947849586999952246282043234919153136541159448580515454692680581573885335796668151667351434578379616443478741349090408504442506712100463527296009480052015815361596874841438823885491194169358177058700942239219576570037358730224453407836455650603069343878958224809653158891761173722061467199971478647556251560579322732555696844302710272258756374225336379272359593189101883174658374402704317599819519690543640633283642966887722650100098400230625310665478679830241919336813739899371117509191058016058934598723156526183606488472083378569301385923619693727913001474798021538770148949954951368946586186186550804695530461854285474018677756646623034425877602940998648667811996078025533915721699377015353558373005299552836373316092273464300676416950198428437059202727645802198203729155069873397060834038979823372681966170568376472645201856163610163359263369521875058431907379098741420030278589107166431784137260136192791994688972862033482565833230279017073621188348432220403369707890793336873923873269466143995835899359989653087082336340318612708882989623538633551831490870273359673920606446794723707830972696504911217370701408473952183337285111074943444792378954407957057901157433771637047361008305179392540229626053771802774088063508826021768269045232461562612393377644578897401520161474048872907091459739795690070737189838532972025295917470147515482470873608414767448969776853508230218809948530220742626376549906377648211485309949897734995571747650946091609788039985595192068337424127663971872414974945305399680185917034990831414676659972814598149065163703521253920560160236172506478847979790044447983616033012975161130966268885151211905531411928737707323541951456793376426129114934539592204360382175118304488910595897882575346644265583098249058896675820742554219749396962284832035419034080358863732256757388442928343197159857266995677096143336472992417010761044427640096909960529646231224985314082532367825079067222860134085232225529232518309899485943799767046842925118549494708871340607030470206598025474273380753168267079636388627290889611734381596518826529721937052375420445270585438107302364867612245624744364671771494617999339388823168299918253435340693724256526187057080261472809122406939643850950863955933421062777544509444560971572940339091978438997620424174837456371606928518691165559381043486784458447315035648979133402578714081879571341157109974999964655315907943529667274685947868900033839339845641039650104668317406344563386346833129829109721744321146131866412723250251200473596837735781609142184732308317236397507400992014686482235972862948444593486710627877418763941475992573648467650898745021569100183741689146262891192881772677319813744820935597479426116551459312844934336797712946472485734339641969856393383530227246667781350219483216421783755560765979171422847627238401505160444577640512611215454476966347422957766855458503090052174049953734924071039047114922637038455680909595430208381621483276049523904918207675534882526501074267434346149504011580876633853286511155169625127939798990227888938939582820832583861400328923954666709615148571412393098081975788659642356682333330946088250987063356065060869828671365934955412171538535819132888239713682341371264552163681044724876230148292685742538925531205166072096530381249940766134156355939238812992214948843020212676577285277698743806376311123759594224813075228931942246123322368626013110777247368981451521271556444271732566814009810271564737653315094888518899399930540778433772173601948497941339996890429181662241621399940569619180658720186494057044462052370470695100385471943243703923092019502620136284514490623304509554863739474036355924617341788926178683112283397980565672833973182722382642239487348676431301407479238544974157549598869026813570345468439177158815938051520174668476841254980438637053550433612375305373853369169918766392898940600852829193045654695020303690009379348053447305641216010632607449782837716793703244931765936405043100652181653023664988438367219032877958244546896252170563756664395678594787726761815499067648163242167579805725725101815836679850277068668968073155955352001346932710049936215742825332561692018938184215424236764196680637781217844332288272625472704352195787825828484683114418930883667322745522791784252621438701249273524033337425033714047911373429035363433575172640302066426833759413467178625122619348691734028317116056675606172805540928966681710649225195806874993744892315924702358330819252488667792363785473677187810531031428583436368571202217088748494493483498941637729070782118017250960616984034842859828803455030295760728361022077954639304632499854948952853161495667279255405298633568227684643324889659119216634943707252566506080954024922249237586188035391080374479913223055102572486348011367623292833888895428475070459370857016573346844271535297189724381888644561687285099784492009564494971486501043285462751385641654596929663951078628153046204653502527778877196524778886053571534057442912734144560945272392165603373615576668691461360260783492768922746829248095995141645531977942737578851943459373761546203126567197119552647641893103601366457480257765549157962875621247420361046282210931358896811962712542103029377079306118254778667961359038869659244945655014023699151595707666531570841941991747503878880244272388289826589858563752425764917891628152044105731013877299412479921541307763499567641774354909191820994212330838794099088586092651612347422737198639152225373972057726076409523803213896398719901711343206842978306836848363047361639360127902054318817446123403943821367667930724576814356732663068235441205360016068689140472718837349072392972448712201295088855521115910201918124656134902304154970660227763974481050084105997728298098117373755683261171913899953971911193264030154819841481593709694651754792745999553951056811167452756752403205467210537436067176996568294618993776734353081077028801965719472801032605166652369488926090311776937382239235010411567023437830915491623957505537680093774042860569469540072680243827345498958124632128056081478312149908646897601079428842260986819878112024921835796136875478276618250757721495778899284877814729436177207888043651033750082945715008017439609616261783881463975072145321723069381224260990551206298024843033710210812794163124464041542485769740203433509754569638821410391399211535678139077168355916940451599533405983738866821297270026751392315355019074144312954995904112330885147543054124618487443513869351933814171581699637138881895661996531703092062250385032215393947590116100360311356476740941114247532910610494813967120672077658085183642045803471699095621229383128975216558246826569468197853135712400956879979583929736356996568979328893626769140577593039834297388292437543121596809273770797970713040404045790435580038286919703268741453824041612148608178718037127059417940533383643902076955241856313745264428200990279329992648368736112485126689245268550333570771184557560882040991603934646069203752826095643680626654652921956773001603248829012910889432402045226688352089312927312644998582762226555584318812092649436057042503902597188588986946082728567895338514243008436199092890055970221020745227734376864613031618299813564641766868069212084868029349517094852230876261430892929265051563360622986417098951128650223480107379267315408170536889703909312134302052692742947750013604069798157961190365833948430968998563314648005169090488317090527958424628323099923123164233145011325421535116176914565095294753597130390830680194122690510688196349223703557735793834499254636180423136880799177869516309930166804844483748093959242360588794085643232081888117561478729580584074245652501561470092926794714746261116692907734782748955896911377301193966950098104366634380266422110097744190714018846581071616458461198979954664509640598250918257749760606697832315112935104159672620376013004249997929034247022495097949398079872827265882818775199563234771293232930683707958714505983102379943423757649841595074646524963444965820635713179740899828563514694794620695548393839154202327476397008098284220210233408860722318286488105130488981218703384411617602943392575332644300082007169834972948032458995634236615289591419420371193576260409602593104219104198827389650033704984478994372548747537991816927400732709609561341457175176590633401559772100657522812946321965375927160314707783105968597666496871126893905120340059402533836723625283171386359902861016435360639398737495433634972440955559294024678110136501172347898430953307816366788219417091531904782448127487107734196848413191253830465162994891178966373726708171858816086027543180216297548042240399038270675158631630391000923917572055916638521515156132141207464707624137678028046058158199525587673814367307210422948480803745301280248108950049590999060616244477365461483594022941862607938991793819466991894191593999833054945558090002135951518962701257957567057467676009389758643589986687811939418891816585946773415251298554190574189941008553318759014306899006536136196058505518923321744581525328483833313382418777250136901209135804417424341313145237801358322447946960382836062938147852999430560312637639201334317203371275300380889263353328225302523523826861900960975358776002338436855906829999507215589051936920361721444412408737010608726933009387634597345617051349214177154317186108009849461139385564919132652904024575955546350579563535431701423743647617640113843518719118613098539977983225487357155271668567023426212011894078494454827507690306128663590475287266971712901354564608707415909823245140888829424003706922664879932482378640563632942871537364458186510364628718670783634571111807351205735852000252133004740739054420419812487706105687619184102665143694413808858821512169606117704221900221917061336300009715295528104757648865054685102269345633305944006287322545224300232415479872795763134923190929038049780382630656325840738579347295626127338371674014597548138915733907525636018526489168251225238477130085395514107201446840157181210674308511595135239997187977497494280006481054234043743147101863609863176517421930906079588928361818139705948651209958984431182327893091479156696233175071030900023039440915150538599568914627906061570217168736527618950701142862493623546936952432104614873602962304733341845673567679761191750138642381147444938532624415982054504038535300210401062904511637581114737359979320637343127543218190520953638937241671660256686745353881858066895303780128833806835051106121139593060921205111528513694506956006555480384851173318281558004896040877305746325381437491007535472494853971400662451165866542053795963970497243325675324514681061584111004390760649417249367212832660647922718147146479246660866068188689999572871170591775862727345715086378017884285208520368007393978100283122340798909266779474355780628573430303089835074627192211352113026841817961671229647151000613354544929704520180836265948951353964276373733838361364503882525975553723342093982171319097400934356532482291637727744322194859932837381141409457537844367970937215772703852899313082322669866594265200662368745559890962358180374999075587287188092649723728901988979721662504080314217798476140926235049449248005953718289344552211555943429552664972238493461613172043675306560089121296305823406604826064850447528167645729356375685631134047175426773985382277115217568581671923642515858468906356161883534560320314903206875895456357841215791706958388698716345061184419690017376717336411709142898140414905444700536735096251053065138690563652389829517647120222184670942014413324905948712604049657109740938137274184731727142621081034304163215597030627334402522870289966625913851472900138047107440322185559863035221043186851705412472900078006432254607900162762242450378697455424409397817997554651089192205927341825370080537518164474739650366826807349471842242763883968856812146000021952808151960135779337161936882211169228732482267298016404443659151786149723815050070431255582282283262313478869100866105055447013265594133056004041122224388026078466023790685293067391176804483145247471511570514156634677234451116645925080347354545052657323884574179832440721928794106670335915906288249968576322598886889894452326118128359807249946972373540461350144668113393960494155577871742929379852946409934211833012579469525718418153864209761482335505393475104983497498966988636255045277537429022941864088837699972820440450877880851739297644771575613845551022194305069161256762540460742824801550115858564854748762512985980446473579670713839722662691946126810254822673245344989476548860521291106026441823701232847128505021750478232967968023033028907234788995053682580315258046103378886250954430172032522745197262003417575603762581550144960740530058501211021351364373796099381445220245334010100906802491344866883990868925957999103819975020294894510656416199578818277402908373744376242097124453511228438912497248317868716190473669225253133695107645377024482046323186496375935780534923519550967663353438137006790006144263850406161253864402525946065299401425333313418052450931732424930568218557312817412746000734398665451686732439124260016847318333836673687063996196783352764668518974352211064709753881688756407510245410541574747489237314151938430609938157016464236819043299098374658410444279804380567519332425736172932039598361770009786099600547974855359345540955118800330924570158088886026619228589559445589255693929013171666465754470614947979277778728192732488060611502221597032853116007573605485218346376341716515990865243914393124908670031344510000282267598266363193059482768344503532450274788120369259479895273103209584913576449928106757534958064306056844098845940912746614134210663912340473244285437085574858196972782229740276953776274483903679022670442179330119218215169747737913167848650044707891997616605230673792246999022338793655633697136914778507940875372788626802070588619884910682561669041126385456537320418374946800867675351682096756444664954465518108385482338407635255240245292725428520413742290132918789847153692907415140400113295239991442376907614781190472823252637627344805134466088537035028449831217927676614961423873006558520889152428770861532207606357641358605367886556574918635738186235504983543304533570793517158218650079618228548792946523550403080489572945261921133229198977490086371219648610534939581175638959587412562219222286324742521926238672202560574452431444496495892729586610113038521196264551372649346997592335584149686751981661491640808535340139715448751243079926503718966639776651438186293607853943011953031453506614035042954143373117495356619547762978365402426477725813142809517225237450485336490470028127802081037094493191026572403032883902921263343992452249708946507260409338249756104992829631741704469598334052928327753663277285672416616958516234441333603808992370250975957654974637473381850103663206610775009083037326750335117573679512527358194813748130991677940165261642300965864706822840746860724302486322131871201539980435412721721409972636774085916853344318678821397394383422200177281244669538778502521604868378484165086346248120319003226470548517987600809689345398113468003386770144293172643059567670274452381951835402268764865471355011238659673089790292051365324531214183299555648045201843174379484579754074120142935371710948576228782083379069093444482652357592682453847538145882572062733718984294300509034008631230934508857775286347972919615948684864367971830464458033287221410804509769565573581161914821207126085851569956939403798096419168422952596151937083503013912243452335263938726945625920822158876052885717767761459140353624164667619211581164138184878097204677311752233963420040796608350595296313113093288264788970221840629896456123776352483797541871555777001609942965585970559329500635593559153339120745773475698051843861015271670500016415631859271283439413109347347920281886125061976428911250960014269559934275641527050249135688364645462361085768751270229953066683956562740584237643173072967166236602547727118116599492087820666533908472525083368474115328131993742241113093843459510500727089804441400612207787051443689108527129079204102081361214086333970451533881776714172790572715807246376324039095062760507459271326753379625282469659920704719722917160310946168697365081267191390565555961474694967858159620993571567222665096359458054780689603594499941511773622332184698764221980911221950789676157261111803867357057311817277330608651381377474696224689994661401614351378431077613980374095805905065329651362406196062979171699415743980933131820259885770634102083767349850785923134314826173593794433853035930975283848282323953052658711839296757186889807015754886108417170167620932436688706324777763821346140707219945222285359321114596798104676788599075240459496325089584406142837447260055530378657969941095271633990696022565366306353071760414732461057226728039978774942146896030217569908250379637074947833135254346775738460427418930067032799594822777549716926024655052914462374251461347748221653418221627608515719027984053998591600202643011959167824771444590745140940991833283270998105103276180124782757004470962164764791254173459295778663287843890583880065245552360588822113462639357250078606501750949303265977328935264873719113786093137489886873088109340284175160549579614026480753077876191359684371257918892623930472135812164616932627325045337446046502340711852285377233466926497747267275852308807332758826920012338839533359068196839598862308285090118330079851931770885784859653324254748702645697260446657643302316372656785800557146526624920408803723960482437139143023408679190739443617466359021932100276211647861399130808675069312434939177738722865772633343571361064950471541827116982060680367075428468341489418473158480674369384992275305980709105615554301451883724722317771889625006544559894317164700741348562896091769534566096244867373333356334866022643727542609011958262611173833554198995971291246154989327801949131903851327510608548207048440675865420969986543500279565822192160156032300711914013636550994038448120539397332540179367799199206463937260733289190599341172919513747379283453964157385610961877251947717674991656570443324831961161672795695208719727592469319579672201852517614255231252412284442175866712405162050029434019620222248443740436223879983443673150105889906116901879181229578720438666368790323790715671848502552087613157878001754853487469403747725748308474225033869316170813481100297735597117263365738978889247175767088142600401524477199998717101164982120237135993634085537661975698052626629275473755294026504226617339564461086580453139688962067344597628194118760984010929005206862898776881442756724173529064315034913197890976084537374924906566420580752431476438225642634491276212363510407367434779113647342970058094257574210784084754933465695828592045955656123891463975358301624757281401634609705696763078657397632665780030818905780736125893666938394907342245740170048997263738062288586597268516507929203844967109373563606150755818367839447031459801367808803539379942609941983547107392969009033490292026164614288991474014892777278200808074792463214450609095439613257549705550715529593877097799692643255618379807026588190116165542660496837894908756183534440217830276921715557584623758773251310231673636781294140026670953935884603510581884620883776510165670721208333983320802054136014130949018953712361112554033218565452256415351258097156071722827513880093847867562990744704019806494139956200347684993957444271170855967214608080311766938420797028767142575376110750233693402997426824335333939405747120451970004686766519623781644287687640035446567901687694008531559549943295971768936768404203729483408041279254669486288019262251199966307606645146966734663069499899147289164844669749046976178336043378083246388923395157918548887958410423430194028502367887373659524943086659293806035102392593992278083703545874140327492193596477683302326992104612613133687655956278150648308716678206782307215188442685119878990387852022838773794829086320633695836781075239046999784409069542533226398218303718170245730125593999026782508292458669206222660733338213969852799560600031165740666439369793293628405093410397052526845889339698514346596066647325549005931204539952864286952665413605249211458496671974593865383004307359551735831895189732436189251197317616302259791765370487139974353754271334045961219551320698338986689785227272838750345732349693992176565786288819892652737331111308852860104581254555203207171366309723536437609826971296669093845070870006459596369799325381694272510294039830023508419707117625155763217976837454867788666455205477792616814816396783197595554504796048785893080072377932956316368175743593367270061009468889298468986531579389951510997126015600456024314101233044415154270224142377559550934096036928923119931666751974231714420687860862493594429225128371272355441575621117321388536671510550077920035811833080625900364223741884227550050182036134172507069883637955073880183431539266935805458143229367352439236708047448739193845170818574359166370995779631767043218138952920569146580260965026630370310437295305365582467709588376455835587100663850020978110549681921591437205933711801441699911544501769657917382799270543281981057844982617557335943568938547998604796132944411906914271667432368456771167621660895070255598519526495734206833038105399181778074595363072671990549844792932336624800974891318243487048651967564920295600683149820419154995883717934166979301717720685015552390926912759783283255342011246995159920169071753386035646233843245638943039908982851190226509603483676055289905815699183503911204344520214505009880685007462314862907634472547331989168141849709093628826362347260327531382890529321117772512045095912064301979501759593212844825887197956330966659985511191817543046138047774673047823153138487985525305381067632711469039472971565339486665542567573694703841194923188968302073977281392305839311692125808161707267528199930783862673096992377059908641176488083146396814514746848844342793771948394790816493372891703293399983909493552094913058175674044825932327812778721775657576542018552890079362961838102852663864445339418712329188615445076113321731929721241544824965418384843175706037597447841538199175768600353134874233278865879900392114510015012816032691840608141446915769766531103376104186181031735884236356944306660658065109194435104069765117994931124556569377932225438359318996916972546988973756335477514507464125054007060972397388200367598270530443926400975878969745085837590407237663551467338500347103665247634295130547411305828844511941279617672411840330992129455703053938003050641715228950202420320698877304382303296720527469909066423645324707616011166985113362705219507873977677490966459965436732070042559965331346152819105991875588841883089850696731888584370907717695871304835157753496235730371780496363985067190287958606121501247216680311008597400928096425579529300855857961773951316746333971181303861346924146195953243552628768962848964727161142236507263312628010809375598039243294059886098582132933517961956670767329442638311703526468918170849023345132154166861865085748662066606476145601733227352544234305108934062503377648672662183346263821603441998863673924198749122932176970201798973679357871918863844710187208960775005043463522497701470007312288299357996071025942126766004616530066932570669872560188174347664259485511882490225605589525682657478702896648615863182313802665085250138349297227913919342374314079394542948535180113808426436626051215110047323624830145488549513644968032960454624250463230807520555475797936921396568073103949772224708244658683652472326264154346392994627404793026997764677537892533192313138004034528646529722932481532909005799561663983747838680841169960787273310781400415509144267147609833667345877817165267915418843177194851287983692957937065161525261690827219925774625233357084745263102174123975667819826436782433604770578179466491211846822990796741384497371874294236648191179846589779811669502505229214957214239084150535229886664793435929853459305435231944503008389028292800733975586050063098973725028078392105378643644537715566246523544644719382793187066455053432224379626488321612617502186946766451438447822141982547564610112127370652663941159330253610124025324573757608595177587470697128282730727312925166220107074342922804745449620541240535232766380598252563052484716946096486261559465974364303873085745201253055133859520838495453923944725618543701764630424837042050728907393253543430334309315171124374234751670917266795825467167266480287005726243628082864957403624129072872724071878942483805012596806736784718382711619097321677373941886992159642559809951612149886443093324944890208406313249184089739382829373567776758512208521999821404317516757677618341745983172459441251500948302281706226249120658749362334909542759088456768494789740050834015406587219195831455788474489532465441186941199060405245352379151820305962035276643219444487927179097049514278527946190921901268975883046965662884410035417320727568770278591310034832520655607309518987104938497539234236879968406893385200616699077931484706916992321705449202707739266331228784207373122706753205047198493273343935187777637530337977501508700178231706406573368582058054555375186273459107421649646134788424675582648025350442876988142872986233061978009239496887221083096684753950984724969243464300122843860030156319829642743611229440444161427471012061293757809257126144581974956280663567575789591916414301385431679478901776157722089579818749481776369913013599921046808934767277205985366793415032324391639222680716682737741511942632865715085209280920898173633040964938630911943832403450838224052175920558707780716832433868095416505860457657448312889828959762226037058300746100686823570782232939760301656441432684493508250774136173964761701482675423989278464927743876923248407104715417465181015933126917547693391154207917707484638135041817218152854470386284376730059101671278125267126975458228872909306570769168451986790849947685954521950998190966535097680068561482913499828775011756259195638104563054300711713252460667139643564739689498815606393199197952552216819904183467751525890500676960805619234327349237683859522356281898717116267370987287960978158795944536784815277439256825368167263824560036892054325326295874867912424888927109230865897419772712896377775535809711018955313993177148815157285956719059528401852811827341269643290386802707758633655845906898897350711115544826949781889169984247193049077840696079714062384374727073960954069573026719809111413141185792272047046524262887536499322255883991891870682345994727298105971155224813873881563036235259422699443312669989582654040802310712815100732850403799701709277060890595845560804555967094558232934719806391680669957804683808681701246742315934181584930404587231836922229633455846404597333202793159944083603876922466322311508560988709550822409797087691064193110275228469091338942113199628212550460479210995798304006731338537946224331829184192920476579240585172749183333208318086230502762814437000595678756197897879190234008061694956339694224479630004069058048935641427637374472171134469643580327222712841985507062975698070277470705957308414651100087661047062736070344422772870826450033108834370351132954419218371106189199692974885032142316717831026113398784927353369918534694200412885630801276366419481434528905695397638005576120867034401513240650514114535980498191107097243209179082033227839896665744807576261656315683833103543344792926166486587953212882663548217088462111737912873137670224662969247549584760588220470779433362730093571419198034870919265543111257253039513604410197369014828971207558827415911628396386179699299547290019169246631830150409898422442223709355934760619941739925963741513907078029227892661905060459143042338683212814640990708409963733176478905576663094410588438909195334988033930366635478681164259913804932018825736673713173682521385323075161212870375389166830258894186909834201592147811547214515746127873354819727365716979651167155861249731950250170944184266950515901188035890939393945496886223922538770455348965498055078410553166074396478914255895577902279745270943600814861691827504068142148626546019010267161279266034625327731418563674561316919041352801349299970915118879702361501275641156817880981092693503059759134747954514954648530366160179807447288046581303525657878069562459619721698035459097425671064878920546074389747518444145495223448295648398716430945248321461706534009178810512348213252739351143800770515154323836939436070075454985913874193141561281397545471690379060156382982872065624010950900052005901746992509901449762013758118778179998912400968770965879717899092746266756152471290592980865520526866393774021829397036945089814819785325726878417196373948697610777479122400439445653587348941219119108368578983063204737109385848004759772882362760586364567455569229037354795444724922378267820671231217439364321049912392385113110100074732634314129470400559135624255982321662818567724146810065683364944089029484711310227738420835565022815505181790151171493160429767557074665451792429879511764541183177515097175236977621950861876259114006678066142961833171587406807722057436999704080090311233766682539164458586902214982999065130973281815756830852861516392058264466471321813442844393818443427767395207481598967326145162924005553677011833170619330847626439030433947479908443295992035507543821885018750479434402836002613434216016539827069486304226000042379125661254124603113918840837298491992605617850112844173042409413557541564801044019873292494827718009585222238826434552928094163869752678537676915399029206714029303421679020302559363140377570405410477827032439439623073680600122589142899908066087414744480398987945685954581030816920350178437334802145480270148213622655236776845229117614812938354325918044879226137004562256379335988458235139811729823544137640229859025652214299979137423901416801958158827339601330244810355601573702375159837235066686574300681536160576463624562316374548523153029813384361102418689529697767154273737928157302753082934019762803088068352008214771741174502125139430293811195819437735802960483979888148424741619372506845579061166040570371253504635943800170124294617231946500254387667445927142292628152052704029712005629683105519185373664937359137676988603401974429701967430322445128621815254251735690345969061609774108264839127823131419065336665874045890252865879629487955299569510661397796367464747098280058587013515400330762989916219419768724304398309509816663931713372399044944046643590817441795140249584868405840305131497400332785523603163804718817373819647305543123370642493848002072633692248431181690987621632219373649147406848384416847429859817725245043698892054461786007873904801018647469352185388916232852366212264570423255201042345821087156332418929625388008315998860001324068186914221447326818683856612446858343415196374951293140580200341071258221703853810893263141456566347030296519286491263453835569682714678652063786966856238474343235888862882862524698775464164442619505657965502304613184279248959614262822146456816095908640368226666509127710131887445558491881895006813261053009054788709643673325429424440169888894831664710187246551312847896086642952567714010483849450679661658957035199807574004523917774773813727043121237378298913363908605541348968685928934589474438224889718628281917824844669540831671221206210371825662381745168604280660190269850708223154936995111717565313071416670881384475134355921434600254529102631062060226582983618744183816139129200392355351244582582259853182893685209344227671808607148318781256071722769147265574860579823045229570622795198919419366171104020630007791976484868388327168313139311197737028548808121163101815827669314365752980815368716464361176633224480506984035604296242089424710108185315618017731802445637699680766183059049251652990122192903448322314013167843538778355659296115487765525722500857420216109243739430597598670534076796443394504762742516358395826263906666558648356246646270472598250600652339037703623420272793449316521101071108875913796926862605757408368752242295094251337008597512180699568737148562337230974740408887642202127487565709346847499855490581498003010591355990659328579157694628679318384796817266334553917297271980036897629279582290556419667811301489507007890363687438572756340505449948361492119949476064509410345693907066730199018171604363605102939281368015260674525708698214753726557438711913337529216187990267413412891783185043538864560153662494201986223133337291744717614367151563589329297363215225964987120151711039717070667778028191229715947718984594297966886306322179335261383936679589524609287208601914080816977993671839232118937844968521332905278802795318873727025144215858852261752096054553276795283048834412768844227978859149425672496829775695738108100924683816446083655587529272972839706708601862734490842040441641302852517122097071486095772210898149699667258778232967409397914588148026753406541144371479720255238751252848987086626239064481097650983940617689590441076901180381347828822006630027242420769566486913038846109314077951939567859393514348636438669718059922649154081955866806034538791395400462931868476115074943254475442420407003415485472179973351580479744391228808245126864324345307840399298145888348225277611277449591564972067175708500191736242128978538913254649097646846753968947412353500518741309802702962106831829434483060436077923746957807616783610670976091299032891926702688215190057379975084309906109285123736043521130060282334227869102406977732041277018852599041675004564896799394792467721246134058761556284668126650793533517089820238438195259647233123287437108874392410861628241774361668778611410409930823669712062564954003401958236181803641165776169826949835650629042539083085600808844853667518235743453546275971872542413171619397721756283807748067925622204765626636477379355334196276559007750239645122585759036846091435956241062181013138028818213263987632136892922119661715751634018861153221090356392325099250163455743956036755573383631619328863771842834329875906411918696163917076103431396000913531546446198424112332884752764752592343139218033723138603815619557035080642192465003392408230935937973904367129283642017659290127491739862989475564138232354029966679311264546166089845087587482174430177981151830925183654076775928664801325771285010708220051834979329468171455585076899843657446286976505482067255977745402401655743340997016410983577843002968515104298981064760390604747304827222870411734699424029203540626860258770030572102476833614857639566086881531837689083330426862861419901793697600445453912167364852136326716001414753883299524661189533312641309730240743776572845161312985019880831966332287980713584909705356328590298233799176514803664481427134019405434696266496186922108411194233975525530758977754425231179214518314304158830497900059501889468830034380742556637742128342760223085524450461237108740466277147032837269583529773882530002915863788352110688604700538706217012176362648610787887466039935736952838005255555954714673808775844892424825011381045513810469013125821396288642207678338325350752672607216080772291734752646869624002913500825831311094660072244067067003781324022114156344783646238098775343871134080514598841925912356750488635773914423822877269517236388227809226357296525160565679278226815986474215614826986567228931486039433002490673857636055280053676776837453056543877545613923347717906765263961161694868762541902237959905203813013130517968313103091187318887620142409781493700868978520180629274822356568656343685718928509330388468834889316983145258419470857480977341095612042941491268420545997317871839203497996851842266830621784936441441921702697842122751098315867376142155300384729174950909006495676141678356960006326059983188145243816007215215653016520350182754731846661531249102657588292823710920222352546640068163185902756010523359332088367838548773335553168432530312145878953223727474164379764640614569080436081189365192456653598638468868818424917953053005128770128645575165394225086905099672291140232222166953143882778373537961062369321859580659975695067177465932998613590165538007007038732909050748559775749056693987234928535374509687213725458180443890988058511609185273266786670407108822591183021659801670803264527423412939687152720261707522298916009968973372919078528052464917974750024800877519592431893886021465518113220195300048735878097038180196014824280078593548102455805242477233533077156234749428451774510633283691619482224728794891005382881282945758851843760488338076066835464682701359052041325945354918881820442721736411777759906716135297973327973172193226254568411939432352619699525127357263279917715159236297341249631427823443881620327542750935739614128499984623587582572447351577072041884465515780190858961841370250118220572376745166161977294169986086655053708969575806171470712590606056199906824390359889547788900012488306267999372819036185410447364391402828963053379833847350316822956871258814134233788465805053028583137572151479145227194737820257779467727027567045971690675317535165959129850052013820607845906020547632939359063469687760505871599995606618392577928975439655242758733224306508516357623864003808874915924970592048288804605692463139245597713914774145862821726183400611306994919991865770425846532384984203708165197390826177034572914678288102533945667243169648838841117974981617615567833445632419729953232333507520429161763233846702041897166894815693099784516290190741401862197208973417885230036844573823055168692508966780026762443491572138793453860826375534673513722322091877683909555299357059821881055918435060246213706010905216935638485830041992675741507433925572805319849862531203587230708909845368192308160476298799814093971231211345839818982497133606602532164715500815394888218304450677744040085566004787200509211833049863162269864576832263756472753171930621550322006396944663297860252185657124779732450263792588137808623950735711192533163019730505445694867111670510524315825985011618688123370656067644032996337044186525693023531230421179509015532248653387230685665022007832663775640299085411347048697458744532155857075592620628979752090537031015912286908469824951427566231977101143881921013549536014159420893278630934408887175171275426641864538000428052514039945619144460373923892699956897219098981590564378483868043232542067201468249112041297573865721760045605817042270857531486154206963443766818553198969817518017857490273293241298212343414060587206050351290113911007740888568874925802751447609865189140068225143184296936515631451840124232401186655511750903310282960418990185935448480358738050830247281547132444614189229959832243498866590516905157549485995329215314353830555115206410881545977448965382692589443566788944844617228395620670700285094694394039002271630559010639182292773082318670710015047563082606754686782991779653277689133115693343016279195092173439459074889911368141411127359542361660550053759375805836379795010356340050470371176735997465501131367628520411484231440812303106673684161098473696664977156029099676020545395045548548343359053167402006995835782664866776976738558928809363799033170971671928715595182870850649122018151075846966446611843743150364183615226781522185483453616877964675334269092215390293855141879663783255815663865134340082334878861035353383846320272584667612831852636434235841414800103004262715916153792713926935339012392070361713292799935942314265915687779057839949821883548841212036758441905389378076756755231841768794697530076002322269986690053889914163899943044763577992990671673355811067367632526815719156772269099076901989727471796001899119337610364840637736286458424253298135972821002486941082698599900306732410206527880598642081713265820653941949325122784698252973474046423655333525012455607057269501841136786693138098335759908560111377286346053904933402985243428880451416219218439605264730563525527170311764296084599162145741065211530899080850131464421537766587646698345546895681173607291785796619820057508458960717529864878825778544071257254604342642731662614320465797476621757266412161445792106199033196936688936096447786428964430736158213051685164050292179876308035205496791389504600913943213234327944797541635781487130967392845885171869133039495776360468020814048943707038410831100832804666094176159844989179481001423008065579329030101357790198342600517922091781582288354003793727928742135754534870444036299237117312498093423727970092016546396144854424588617907821704436288045677657966941761213130768482327365076159983593593561421082459261697436318480800234173135354937240732195964144804664418765571007624140571904013564864946513094256119432916269067442845747845025763115703165725132712659746636104894457706620104367195864392963554880506148475981384809769783996324910887654416805228781148265898865796875448281588208119240692742647903570507469752083936296006398548474531282000602377665362303051324597681911152797099403866747035384793231198546867194406644973182611687968812213070225530763967787255131275430083308795492463623710460099552791020937935515572577218903970727408397876644460966716534482608921030987489640679769188699920331468832994851331882472367122755189101130722386437692695643981557968604002546755645114188923013305790213114150455389237868241217675667334052085322867090929748659568061950264148599500808498241239481887675940545228042762019974623522499863606296704945151469301493987250801095704252759451274359481094470305786286336025512005721358602020552339879509263783135195969496441346792465612330884293328778225585399426117400665300515241849946784877528118072521468382453681525446412236341503736677043285374402301772168626477990249839643509549253284171364851682294813291377383601799048137773679338619731062484194141365028283617644536297538358974515456039835621524984003673376549849971674151603656204837155126414339531547866335777540158495375350010701507603224904662132354887183717413165379705839195638685703884608464461801955283824720381361670933455504407185988558620226855995536296908407558597143135844550617460056039990319099470672072226754853692139826856924633742145194834234558732829158461673884708560270162245165205739546772622828385349751159991846917069514370922967925589106393327037378592577028306064369359770555704970394740736027841871682425559470239180187900588629719388306659091442727191585731581117208847677318749817770241709291464009227373705345518390144786836508349856347669104767964817069819475898367184137335930950281887952071360178404529529207213921287144557150155891850151097583164872814442761714536461139776143173140524389893441312861569007778047284524295694367351272665745932132407412627679061686427438216701182056647680843413623179312428937210566512316868070516513394907807852412472140920433585545874140113807872851033388836223791110581173002661579586193800551384275172043781074941968536284041924258774475143099394380589475959585078798635301526584801082266471321533163290229382166335985357170587126744768552537326051368519451949039519944693559666117365737570396436061486882006373018446978828799659296235452300494303861150187976620258971937799146209587208800281023167938511692260200021602133837262314028652053024734299046731575121706793358191655909168895511245375750062299180058723464518293668885625494142486253363889756481046206303671053375301995372797419604063781617763797614959403487027954947559238239156238477817879991461404118401026246831281670643087948760893666415941280122066833140087918931533416055149074038325006946285495233623307919189922106380321550115423116675647265877880065416707507943238236604413293121101354641664032106190552966231031332443217745810133869032089778013697097814728578004991814657104934719601180656574310388736723111347468936874011724989858267857385139154637871896391558199743005726625894675497168758487147499305109982337065500038669892621126615981933276770004268820630894895171889298328847616602137976672048141022764937309163223703724720607560268842060745944349399002133069058317519645326515103296730673727801362823807789500255188088841322803147824063475932586365046704500022865013085937864336682508848712407434122156493072220614769491580771688806415023672986066998580890509330266648905839806589938122047886789504596226208051650922997087612561950433353206470516657615785134224136112368299324140849551481644704025353578344110440767348344090122932360676393761187279088660080242247472931837563720079209362307726099302410611266834670741227458291596814064314839125385046281621858319404973858928319193606893481399669751078859814628625448154964409074958539830218665725353587668727467809051602686453208054825371707420110627589755393595045818486762207962420109136617391055993744059917819736339967414447764081533078032804318873311273427402534156533471511577953274371174221008849013172883216973518251823673205704148907066829047176048651749783670998933065221885828671194452764888048772109650042125088463350721582306733081247458946557354345874292215950553216204734571500903365672221621452022307192385320771181926919080009265577016414262634387284794858525596468654680697577074746009319976567413208410642175321017651431340760790723446497276005106247138734644289462543287090721841173281012213484781253808584195184024050452701101278972254777611834086689070092281087858323571187323483519498168789141946270717526489037248599455686563708540942681908936810839327553931878158158729211071255630719369332277081071814123613837784284162908448651785018012789097713751546118344341141656080345031629525713414435671771209004429612659344498020341073571296062424088947195535590366636512992080782934834372312083078690729856558663712149823611115218951804263378241458492831583426741513678464032760172023095886604811118404582456570849221929565035350339608233821974496911479249807792361892423843480649511697881003931589872079907151787147669310338668623249431283092544744512911720904588284507318915767776128223316325480710064276142332324643981116003532036453099740843056412619543081425421868730381039270822623291541870378193840723660088121765809026868513326290807533847031571122060287147631467295117056352969236916282439293014846634689563640570069786111961455531246480389656441218986589874931542860878218570458258691885084240634479597369733034864089062271192820572032236583044897219717143940581452830169991095675686599857663539105186307352385512584693782705887027480920720913196254232410069691200118538696876880322836802495796842344652936558024048047796587371414713222138641195975582591556336830100391471504521882486698334587931556099879780516986305835266777374348804961285130332367500829631492007334851238242461358962416662292652815365038031638213817165505130125349688172095701223036993080214812012532418666045707946748800205830892921644822113299332135563898512798863755121582886853730630264429690672967512082705100900316575631070579238216788413176616729544925883049358459049279717491306798318538563729735994662153742595667242657851832438391738305549215413655230213103592473437757912748633839841225723098782742073306403126959698802686311033451688299636298018506326576030745976837310491761973408696008417599054146083210995256230249180909746472972641836629680806608221616460233062388407842834451810972246048835596830596794924020450526064323485488175669991586506929250331961172054498231063505995908986898746946815799136942246668371770898110750621880158634104787992427686038021304320324914739814067027808319986663421775940806991801175199178331066817706891994495024169851515142766908705354934325145958997733314691060155635265463319612328657224420481955551616859412943313553216055270314440272810333986143264703916235494305345449147833813467153579767654275598466816545709118267675933073248841894369786443586955934015379520218123177706736035015580260653882780533702005462555381399124874408564420147079296748305494313100987959384250967499785325083893499228913487808481826818987245514540906345027278343779225302014637538688655566630784244351594149272718150909784238702343285390381664531606185650151981258941884873154196838215013259901759881811022952593869087930151750069123698112567678004307932160360397643433610865665367422444933827379896166979304055412340266223149361025868058255455859560242138352991447571495192488301608753548810181537832215387062210516545402833307411194228515502757472749089523811685834150052179246892811765833230770445353507252194837581098606760599931672061722424038360832657214872241210945936060236059756704252484318782336577878443013437601367397020461927507697527870297531699769370495691894331944185171735507564067715588200216060206397273830895546887715415194355881055340564476564042803433165144925128316672795662692442060365493208826366985405954674418020493644003374938569316817553545656751550594196990551371730951467884310172619278480445627803452930541077740745840606031439060950424932008961431718112982964185399363446408518922441086161915890054342141246228732483836214715898442292474658864753117256107403668094516333716765587808541198980056205489792649735208334493339369537309243558934658385920275152831050683829422787502584164265318129680806919083630627711120636412974039132111279167080556913593670227159808526299330949396339784595969527079206198909976292920804088373634074973273336530152379443389442182521473343013105376005165387432561029561750522275110225927495378635350806795573615931265072295968540732366578571346324104241179672011662226767304891541408953462360960616634830582333739553336237650377359387620629011657221130379831670420754048021083258064874792869224971399401081776347253689853475816591874907975594393103122169344980908514301085078280384279256680236390842916569410871897266770049696192861025653349185363744927972148641271033847333012720309411374539009691946540625500274345875117510797847083470760712174090361428922237307659493276601433057826175190625266562882179843254161820236322198647166003143788141906302128791414609515771689525138162572287622410965622107407089881455308231399660738248085800119656900709755808312955212039972973800986001933394958736539317180889988646418587763024331601912621401457176920356243308594493953348272612837231860697905933071499530987652385196080279073871225170360722912270458564843730394460884608920056113417373857451510985230329631812856728057510421228545135411321513176266946228368139116578968541629240680176338822748878801676787308371892896063727829718166034873358270373234340941763344457332620637873353386130848003687726039808416010681524533537053304981101929459937954298028530867036831996174890343571781244951195937862723675479578355932949570509364766044416284365506786464548944524510939194036161585250570961751218068946406292960661298341996138980456891243976846530544506707501125324604620681174104081009458964697372471205377037050949817439051396306832828776192800551627942169492773737915443748919151604803289146749109420200733821996983728523953988589716165073775221124169250216233386265791108072190047801589081141127490962443497368920211236213882267034504551229420611462079593550887245797130585579637549715244633987123065699776988117293604152770887242326591355866875919621958486478433197311505423144634348383936922587725522786455049566833862673648706292452084509219982743827928903485092944440854141165163203272042893224336055426344083236927264749435691940257973967448860572516347869998755427377585210896394017674362638418169072363020960966257150897865449234424759484982891812018788170959799640901248536641138943887591567697923748831072450473960233100153036106011338411211162199716340228838602806125170542710372430307170412936770508430246537551439132402559508665293299699439533780175093963720256567035965835488774463381541843636171660741106362179979317191655942235626354781311680590633613206098306432668347337335305185167821921255942020191024160919600904813137831226162447748093715442216913005317950815022092458319784643448661777945051770286783053579156330526652416430974698035259750189379668768432958732366085107510345532626162009388680150581096845784644345791296499096434336758345093460780084634463672903667095454404795653785566574275998378755164683821946736869084660250677766645427650032929265534249443788214989982179542075444082352521687146988126521252027852539276043448302990486494983738238951972536056593924096518500664278597843802680905374746275026347575187840953649516643402297365968161345833956928023343367198176255827221802339612498219802407358606894545334590535779389878439340653783038126828712536869421010763055844792893956878893613347648489177611603928727652492447094623039639893646427663602427358012634236188895429861932401668853329444007637103682602141842503078529378345379161136674728483031769689196741448422959912276270314944252734194442098155516395262651020228468560104760579378498039460884232095950374226346147614432826320094186648993243093085951599475444361561683342311608998431161130712288796384263774529354407594238443408991581653184037976099936902702310797003947568630820706853768920447075804247723674688973681508242074169650864184990799593985104207952827263908973393848572293090369320289435433559472584078013435558099878002259325595203767444488266089948203751539691291841711983274360654910759632020431721954365895515109123455883535966925987794115387409894253506912928404542530715058514543389136095408303192049123368672450504232387284407488433593692406608504715031545671320667191351296077667344866347133548857938104369551989887277890649821084423362533227012383246410812124770122631783269936368945086603612104947802199780321621511401723908148664138895081787148816630181529171308991475250072400521705846202279611297262683534029680803321996697293623802237538899374051207558725129827526805190116551800242913190443417970872475167400653721149936267969264154728260292483913696951486556494964616970357130846987300428794758641008484080074147176182766663212687615063895406067101282056353303469440720505468763919112524124107575227252537860049393966125104075011584968144069501877659731870454859294313880101908860753538714283630111756518716162300293923063897789239552590089423778705022833402210914123617419578246424371962107689630989454379830572937935596939244218268410439178260746356602316362620352288777531338775213124260454372475239121163508738369891553354834342837042775484136350432304957530221762731986736245202493476833489173370468236295763174740996317655032636079332644766609184580074720025745474192763985919412589842869502240481918694081110289588439982376815100743125814730185627174635111569285935833483765913272001547539437353751648723203465607324989281418124396525445301179412344941597388135407438115615876825164961893955518114980252563414307596433965736804215985487845937528348159814697691876825544266450105024539301027955272061231395255403034924063104905611969689384500884814725333227766190338563936889949485067952106413192637547261425736462213367822376939965456134174245027084913344876033719123229305054104896193470917869383381661064987999668001726919078685226426101982895111542181630625819893301852643548211963003540526330286700134213002395538098217076822935811261235724207059689473545745331095737807341424544692080793621278094440181815407242456037668925822355442324633351465914756004424107572676990296134721951450086776686859331758423361257613850532572600347963322551139859022948963871369466763303826011506031737295259517425203060812536856042758510655750693646317407412562479540979986069626220402818169667979602936991061042295908296500058367879556873684449081277858399443450982077247664466026403248888903131288861356858143011898321622809579261035984104788427216623234784275971605528947149641750215546703959615599442691280042906817690564214566452025816870812610354874916437409779859004493466227992457885150115650336545111433758686063198549123226879030724964284982423617342215378107739379887924984891206442598342544788828351345158979681556979667767443857543060624797079821507523769877346385609599027433394927191993869289577817922778542650015484661372536414633578812892042528409065868318602345220832928157775720033801359015188655796764673707429152492372700786438423012264183666315326461240295586051522829036868054966310040830182896811714124033578961983088245468956344664424818587733267191165088085303184401769442415195690953851152682387343218145445158825615709338841757257969759019728511423519149345076996787019791516242268772616638623349865013120264660365122123772564197022315429467973561429034158516312469546479210903854638132601577555813971191543310696353957357349334163220808644966244268390810164760971807767450079848082852563275250672349676434962767843568762473631057058413680199453647260059916772415875308389110345728591378378871360653940775870929794527341175569007280589615415120514326015650284940480626144623868031737177844809935604944093991883514307697303628150097663618479661172050254571258328420326208605139801445086153404682525717899889977130822917660037493950874359820566158028388024472789402781775321359131410271898687724169602344219926477493741186303789891516153679896465710722368860341026908859022950044097312592182669912064581027807448685976458329484837570042160674830439071475954160022982641586365562770137700397798905514189848409851700265563012512194471596842453058042698774561302262986670503587705837266885109621077169963299472206880929907163218172144800829340955248842034923446542575177944977457449620039699653993367881260880937421245087847824515786992002600097664030854877204275369548747699010913366169388462455631803090286433756459539703389771010339752209799132564226730028939312527255816181003372346147601097716489965237409357928442505232079712109721531517080133989281715826596795094392425292417523735718620267344916441993073685236187964779613105160880412319383025236307017432804778492603693352223346227106827169545850322671161913593705923998623602391066536176355658862928575406631286594983309961345980010427547491725977988321053644764714501572280580729447748920859237680950793800774000694037476401015024804132284348786070507968029141086419575206613421740769906127688798971724996791062531410119653001338014602594281474995421574705667054511193253026891107589317110543179973836962633863485755317147678039797752813227403390408158813653119504168927225797919314604330172861278122170634710304471136786850891800900946146040125900090855940707738775899383238755065415843145653477592551300859145097977436102096269961189096570643811573098687406538592323395602970439524975391402111404945027672257766993494242568837908150258298227292590509584182385981645323872200213597525483068488523913953272720231775482068179456562102750219518874491175934945861312521262849524409070734449091463337105057112060933036030639293039484557867004713784104760053371729082695923759302228775657668101497257164028748683399899876837515076745985158315908738601691018293345303272170448981324658909540972154833763536750886043953775999954187688515901724428412833735714148865460934623197766287291878083794863903534514975018849579700625214582660438677317136021436764104318617927153163365124689466785312269147789822195765535213078720610709837456949030133810020719145513766348149083241557152651579043585993742730474243073621446670936792762292647604803595432012847072960546504718581321781556893678080696455449061795085351189753799932803623511618777990368013602377780529212424111643735001011792728164248062637790408168087052191374089571397563015644561419699268734030348549832080766461703642112824722545234463983407955163640054779556781727104499801010299377723078935888308191777907561159450493884078734854952154713305602004638643024160357111523281068414292846390245652642464555121942434828399577810012570853629046604015941202681525790220877285452558053328237780213074850945639080797179462487884183414279444910340451396341018824347305013454902616558801540078904765965029347958544764322535217556865870419081928858480012330110000471122976603490507648975411855457586842204029029554547792004354026962328291890638689485661311406353985746079630988464121615959195421523564895602721708742220785626361481555413291387080057223943576746147056548954332039156902867139989821172950429058300135971363833267728214798612867111381559032109686399110138701936451194354086649024852597143198546930645593446737448354158347501012718711183553866432731865101754352907796803195488688336502761321633829869495356943091942855535437501098114612636699023578679300995667239038264762850139844504788996849229809900874152244932487036240333766577333943348114243536383860240616545183105854146949864978499812941504919473628019401678268795200694023429712143610478897691030351823445688566132754111071425252656464883185660787682769765632310028730872946459364975128011931308104842110000083887280588415757749852669154733242646313196938406274700515335011371520882901464955943889154952770250898781613643718116016026166997805252362085996556287062175823016144880215636345038283985503038872395409770307960691370353303634524188242434686320730162022544899187726367410282770742884894473395490635760427208598146556543529463316977644032050542905429551104402115969960612384148229239258850089335804965293208363074463392815313197191020612214534623325329068856799328771491475500054412304918927205434772979444906582799197443886612128046885740173836554071805086364212464515552514622262092030211026465059610770056384030229789884161755687664842203019764942559889781055373295200089200457983241601096341293558947734997055683776697670820188056685067660291158602369210830715654048625326410793449098916673743538414728192398680389583896989262081232437839456597690582452481146623910614092959377516390401293360986182075378550955168236614764101599753767170062028970567960918620948751257297977891043647059518599195182085740714141903569631842041148679956625284087975661709400277722906905616507022726312849550029389432930661452620089683280077440275819299588849632501945283769576667594811535109410741091740349865964036412552358832450860113909983271439281800851539560983065955682532747488479695871002162083469512260209711150461421407988531869373026235375724762124734907319182609945603797881022673244475598618466651123045561717449342786432917708050088991826220036222645775230520511816727829398586970285111889893087504542596847776216298797039468718435798810783001778969336865044726436594217693528986151396137667342749724379447382964186088184262524439886186203155374318050904103618723570067188793235802508327319613418397707300566231339751128811188247374177552484122373079847321257361907534773186640715652365631109754763003744765550614353317952639683173950797556815208155147181290785746070062825070641873233128215970702968172362577151874050525543108280886615833988343536748829126137237364545730451897659929168771864120095893108611058558637559397625620425884135393798216545287918798941587335282619438545222010692588099137585565634002076415545112095518934480614283425670356387967280703283529468924586359445000550378637914227962664393237007308750620254223536918190035299141104260973777186294785222539917483585859252712758675532867107900712125778171548433516595320027869091799703179244425939841072868455508479077569454992524584814936712225600119543245212209263171317738704200624584629080078435827751674569381722882689747033238228035613062811311899227376803816777913142124775281345071101819303823574802955757111887426149972492040379146008031081598631504713669688499418786956985301792273391450140176656086337216667596126265161086050433497408337773851880550250064673751803492455767035639656423410733993770896524310048848691397225553739426331878416785018461330535666085606766304093710993691223458634051640159872745745755467678288712404088674408454279277011070112064066980426883454937422696436222929138734655295621050275785854018709782654871635283393198557407273237742626818708020809978479926812108222503640385328635156021694167019192606869243415330499655227488034280030189088585646705946779746498571025334429280365492648450593986006867731836575101687466754281187913276141483557839042494877850961332687361984614775987161743769138729032495373065075619369436412610272791499031606772716014282136975416600459971881392365101629890407865256549375190305941171503842006337415165059591590867008633124266885473327283212922913708573513583604821906818280090647707049681838235788971179086776760717651776099463487785787551058523255889877324001677118166567310346157261616056894341281700086428116026693983791595613373184845704880169733982136290599278615178468197573378569665459519152183475361208588758804313703128185274961573962397666223847264611352493021738418498357666173495477310159843555131567131574871610424155731641838147618055548350763473029978167368404146081582975492193576506859008637040860983503658274212164585027607324790564288196780119791541135184670544744471648275096901977170773997199980054505107345621681691811994704195528223396764509370114146815552493169018472792891268037662036703657196442275833917053399616059027822177053293351477998817483026606074876872210464815348915114479225346389763561068822407626840181282454508272016105289351542606053405392355288184528837136873836740949820854687752282479226701222582608728486188225085966384199175043020134968289377440682440082861315116580214232654055626668513152094547782515983051028001653334533289828011083130589936361769919068202126869972100362375871992800167599285555625901405377036573541990181883794183153078934939823597828611967549767155469417078578802996490380892153297888782007303144213861896176327041699632120514331088324878348433603070037746225278183562374033304619271032800809756954624066860751353082854570898855904911860436033310804506572885002539124738664893435734434521363130543243413749466185137726383866613094239849110985081429212823069481169004224280201630674444798461951384147683512013509972056052799530594172057917471359133314046830450537347466248613892113671099923716462087573966488821418588331800177295178155956418114779050984172327132340514167942613967136472524960553142952606841422619105093675677522259044970019412934713033651135698515748057707261920424491821347772635178753850430661173503978585816577444165205546682881607242181912734786136518441410617217540152782333606067230660786394578487075487770658551347339269422454366263405392567322094781678514876433616346581600312501598532383875369724310881072652185534176228560402444374722814468599294466741115589789240083430762788970488024528195778985711071823083102232073887570738843548378163654003338772695770299700508077209186139685080307842117779882832316525576397584824610298263115026296550201902609734041549736273694759489903908937639752534192564019770844553812275534646425886116682831606488779834318058335642097823099609560021062570034153941536768742937979111930867020297960714101884704976280131922061170248768047364467229385561357962279387736746121783971440194985475624167509442261477255291077850893148552974814076113459833129289627707030945129758298560192892266584916674044276981871451541879228531287529505301839362563583595323994634024395271431254453525408921235347929153758911146427788954819841160869171159630309572474063649025945577296961972727160265541252525521213627492363156043482285182089274480137555367727061759812688876263862869538333237963066982951330443071130796799991087192823366104376681492000093466079728096150681433049805463180269946249467285537922683689140819164590739577352944162439798049780817571096663855769037040804200569721077324816613820615930904615638994992202893328635734523539858045367727458632704619181970232262025907779714121937614487113987192543837150372642266021978495715466418351305422107666945851557490539254445000482593581475504790631464215216273422585657795447230684696095641047376825494021884755564105184768425470289904154819397217821982507930591822232659136269250262834463568596667727560453860789592441875405092333955055591943158982325576809496785238487830501073772863144034084534542500427074240640108211736077526029680554339139345974008064815721625556904325569003241827201293871759791786334316438666445919489194657105904248560674060084367498904378501406626756297140199186284865988919164106415602459816258860502501830360046717857364386020629012592966645088309365823139158340371137855007633792152364989306811336186116186522771426013009884481786957990728815233455945389990619050866971283893273528892005466633498052899527188609127394320127526184007611427431524779185961451406913788183911824421873046623703456939247711313506486556240500552974620229766825400919454498996586211851159026739320041337906490080510692723727863669044357774487081290150240083389304176625855626483184054653864992684755035814193318495073124356478469674363678341433168051980660648453878355851722967372769582806410667562586408207135311516995037163791980469246241615675413349709635672008866660704934539755107148811598760917559926528496306946795014332130638556617073504093728785299631036425109887095646371762128184908322427748763737796012235315677531553509601511285392164984633131480530044073375592363429835179726879179751417028322292111086858423828532295248574913793444610352016540484332892304533770357373672163311124325449934839142747263440280179094948728421330055218793786738883097464792977079104106701778220661862128853893230690845236949285976024823316580633614355408942742776458833574057035219992943650163616046315626962079780045234179138115359984098799719755799335816685947053748034835989678016939495628145755045201932620396273169330287031902260631345437699469983346279353323827729336657281855908934037079267025350718760606735600951315253967913126676074112739451515125022234093620884078220681810500440232644161121211921967938231490686817421032023522886489937783890039801011441918122869972724733847245423044450619493474781650141468836931133368873349939385291232141945270248014543170213517779592646629853004309143086201516082217744031012050406347453197959165411053559141270754279107560857333772730245069823819171793944789088228448103692969856784338574277370071354997490568629973673203939230359244817104047139550237039077105333278071478681483916270651097874432350113641989154235263393369213754537226720458782867567988358932088735308789598962950779697665887872262117161058410152989077693529987776018788307057805576885838938522274777366168898620281489409915390281057557633570730475466698281686740008883629381603090305731527760838352123014159906002074630550299350625229335245838733186807943569618773297140449392299779219103108235240700860623261309074230095069432123884298275746504817009172089517910644302162131948323309890704630805896573975130371057587505113962832327374376803715585016423271089478570457884998512950067960985399638900344863753515391425008288362917796006651650842806451906299736125982210352967430755059277674066653115485075591482381802085371545125446351638635668690173801975361013210367043568166223130654967095285182557004061429439641706221802476180347826607524289545596211931713399435959710263037051866309906202569706435882257122635278607908630721201118766407836114900119327741771129297243454577389710195804781089489922778439303605500347098296887558606738826726007162045096104493035819885586721490376391208954603152901258967124827741848955442655271859285721083929242405290235261546720145542380788814123041721674581864997416970852065728221958034842368057034053671665320078789788377580534973041258232217213223095405403503458305188008811711294400950975269337965651962324495701483264118423140418651120033587158973094240454162885128522999350196551100251987777626775467861242804749303266967786219482093039619118700939182237334178933497031142839462961749546726745611537956716902114782120209291473937451756891795653209188696374206232525595760120141320034145255139115301378877270164005977939915692980159175619634290273541171454331875119965543219795430484039581291326423806861290387635942753690002832113555909867908264521293471000149958035559189106776353992807895141866619472183451927820808192644425384224293956134374361413910482526638867740249787274563781497550205659777091457091174388800389637298997509213602237275638966586647957158659707547941787495056614668971436220256629728319048242216855427405476945570807377937345131786717158640115420491690218254115193400578133181869445920558322973576244360640581141421787098265320694394809793576556122827334367436037943853177825384839679996772387509725132147367233704605686531038913828013921544289131351833105441553600999962873081536696135944758216026747361481662771286445334036060597993387590284368250376370844895539760571346593487881144783653476445677199278990918784258436844279659116151211366599666566730034538283969907720256700009698009884169353402491503371065897282340810095376560818447777490335012943312340850680496857938030983181036343325557811594508035365018404686914494651152837098963430519005710959580017891348507764131371853185214853699068662102676043719640395420617143575772370296517284775108080804992081809526348831455632392762187388359943043538376556758793277567374352502049945725219342689974777070716280054512164683054261113843100295928570905401948723146487948000475624492268109800667113223732032350470584800625196065647107959719217698101520883727588565703017082971922470946205645310230653826069111959899224357729715401146177574647246811776105121060211005579480975564250713703379267461316349060120269269159914140055692360751433742787556659228023965056522246774900812260084509101900767662266043019086032087606603443654600009844641260743480223147451151631054394817284189766026474879602508805595390964347641618910497607281546440085935260439456602372958045273016193004238092800556472102322244324720167472595977842997590880618954937270903373054345383270772845900187794875096543796537295334492046956254332626496757840571273623281625888390649935909539969566094392355356976763408254018597757065814668181951524533254839647125322354724544405881734484601852209854875699722877438891570565818577781905704025070812192639331815247977527407970828170795339630213145846323529956010497607634788285693796967662263309290680375263623181284911643572015592138643180365786713847030971455762950178061260876024530225721905153675576893373675336904099581597120962105850296383041336101080036156954842213233188572966579950566871917008351559218270850217849053564446133252256905046420341577266449232641000545665014569738124890842902569010396955830998649010020057570510379706879560494916856981024182020153927047830268267901284443525019295539930488543157895056021965644330132182950477737651562121295425773771932119691948663773122541388584121960303899360066516354021108289002091610669916831078011933615033747887701493596746693151392057816354447601011418880616787709475764279564499564436240725431871188995478408667937145662613077159982790454600612691401445136637499260189556704676828083330598880139844318441545824732090768440788859279055978866295990299873215105688391082279132560154633413023726497034902410602042658739903786840051212839466741380013546346516240141198145380285880662265006579633803062421072699096961897191428738859711645620149391962269981427739470921093593958454807698393844155969888125253842222364856509965804781829542088608658579463029167939028679777936126134177924826177517600872196954187431291290265524974938740572503054158537753938302117802406647479605680511331167848712645824687931644609236252702371297601104365605329685130583969255476292227908987295660103992477235429508321129726403372369679251897664589200210588351092818962562024337558480896631563423392951995543917061506285485066770552223530180781058258676659676205466650936885499629071696803744352556545430039754989206243809178663971279504793596880335449266194314000211553539342153245484046562500657539656994271249272880191516120654931029363807076515324960840487492632340768035341857115063202751147999098666732809548894479795880352022897505600044424404018484692995576575212586864312698204676120599191880992545904274404451973347592664676374807755011737502510692094854024138883643885885828308719774939959674740427424345376504541012253953915760185647348168297478546022328287820533380227594715105677892491762581170727426326135577812440793862026788608716744261726954862805418743630949213735013733281064295235021246609808947586815119792999024568823334421982527398146410697200040319921821201900374254067381148597461015411684566925151560636596068108789525621923470951728961509916662165713317139820358790716946005180962057360262418996309520414844376609787678289847824012576123498162129906841900740772895616473538214991977464747304530354656462643158504251010186123817279120489603730187400313170159956797773185157336845825119392227338146995780791034354035872471126357723900694011084792256990760102264844143586934124033540092012906369803308064537796103553173686172246011571584537001517593707197537032349454178086008316391068197089782150633621873617180657089674830311772750538025165028266993875952486707504322731626502265262952172804816959128438047864960921690752171170744146361732294614868346806820717901966078684788757006068916022927479515943524842608874109929137412419203644512827968290425248800317042147451168352182592074341548049058770222748620031540124525126067343298961107776624495509470103696937476916927986113889314045445695136102753803453369012209214071392013423102282839001700354233161341270747214852091264325845355535166069008636696742030580941746980839068792294562327838279214452560968400250389990436171378162748323379128282870777096817490035975800432913135310601485235387710264922417630428922997405739001971741962943899328602921504593562998694731647277399418230654922358998501815795297390504834112534704305017635324287705703418819177735385519952929700870113049018468240115967655902859418445299535492302019927005136380875015709129551752199884908839547640808511289365638696423341937938702918525965022002969066455228999577056901496015258363954986951539222870941748398830360359775972167461643500882976302035870558208941881293147631722506528453777592257518590681925598671999539458305669992511887093471149500026284642327583628833560101498906054014352310457995023163119727992718076476232372093577310525001643611428919586667822198898198262744829529671365791640420579339512622283858525192864589451022314295247173654312071702629309084905989421904367538272195777169422012971722083862120743823688776410242411987225943638229983860332904460312462345307621108073290141640366681985968836863742493580468995408244953187242140660461813202050746585824160595750305209608947890053078884962394800468233257981650929240824992769628024401087928307671977587919933754943951572210897508780667590186907982180782330991423655865259339489685368223410157418617443493390337947456178343487694734082209948934242910388864803440973801968487815819471042388049009121152143201228867035498791595988606288817416311203393975997539051022079162395276017724007325395482977853869764853832780308004693332292814101311868827321604855145839143002191968149852041106377446258385904542992389546959730518993499298069666089888100789121859591659574274884889138692673837244529452864770935152729777999964584164779693882853291502347531472023805191978117752893067697964419007866821718157406959851813817370947952991818748379435332028902248466466735572927564805600514672842157178108683574634637173335114408529401104399866742785124663655607670862476802975576129128455932281026500220168094256094283221705983638668560917168607533330508691070739372093067603589719925898182915000762981269258178455736572482070961472918317685739613766012366682655355320347421121487884477868641602949534398555730864602072178371728330604335647834246895980262212675886719342814355038988321132567397796342790794044556665350961321079526984045054276769664334152017093542746027915766080739302796319651719878721889678120670568801290983974290785771240694685486562187206346659914119855764608928552496227424812914003968040550619913345257672432174559195921858548600823571694189507017057004249452778902219005614842146237863775070460925248937770708893137605221254469418066725739596804222256856282229242528191133565930590399268562537393294489452146626792275911804132051810820646793265094615991984749898938397383110852415948153565878704158555475900431559170809306467189017660236515549558343608662133795870670926012033849733802385731064794572755848333391745954328251656780426802268694157274002467779526155746166005271742244067621398862893330055730837050693143459068769887356576417639184534825694426821654472730980728088249533679028491130205617981864615949079834127553888511430175286063702097959721904075920647063288554547029337147986148974694474830304266356088422196466008771479049733828292347590187910708553681072370836725318135542615865922077451837175756418366254682992221934928915309126233964014171033070850321637342795519970401465218257244534066045505109231600527736888401009185322627478801795062248175334296539413082890006161719251343380227536894038832909722074090060878113560797465188478390669853700634370781680954045468275724440641719918016121466962686084944656905418211154140698299342989512950847765124373584915649234764278866388874455482171290399328211224979362437043575204269116417345823062295273280421999742560595754423964297442211151761061461755785666708454996064052351040616614279257792774368002422808323284016134100190411042217174891805143261928761263843345502142380238931703334665765320479674824821824278217600764799089171047674010869966036497556849820031810792381405402281015886206324482112770308450167803335461480844683778402565450042368408318051218881722159049350523410197184656789355415469884805936112805292741339445425618001182192283440992641808429673308802837229201930611211092859780587990987071680753288194844039298491383616790782390746826214361417161052959365518021231883580196861998840827975579412569039855017124095278516761738165752254678296610013695234903891877910599822111281588010584549871464402348309004643411727069168217262227084771312400680711211403856207499257673217535637540480331119836785126428426591112783115068130828601035666319829021401973953128668159782013740431317667030937305890943923904128880152101445374152078755372430492709339147551544194204801354940501344561346079053959221910697741719325350161636429239980589211158305808473802837308239591365669165019508642446393024660227995839938838800925218413461365291416516050533651327980066487915269614833500344786194661877545574552006973253515001661136877930621192655474113502872186853593936497115306211458602637013594784596299767095786191293356222001777778430609049059713342665245876287570805339160650679475867894931942861143623485733002320494786957548818252622450964044088071071322328083714783482398297498468081678571793186690462417577006247678124787858938372894753596329464925453945009270470506523806375854278192258525933081627340889317173652510791631971095571166133222608260487691843486229257000099883179095942305737674771700216154574423016801780119150197090861141174221943660421107197290231313711720961087178691232946285466853620768764944694098932592884458771027077174843749348779970368198621950678919854065027734525854198452087039771916515758677456810488768118901635362148635348874539261140611715372125031533387104101249217910926809505077308069497675862601772669393474657350948924468603976035777881208517339988761499347226719066487790741699840913546129037844839616266272304474899073993953947919042676238731030017670771965327958541187583226632012918164913462409593592823214005321509390558129061503790737365493997180154486479757710449820278846106335605172535481837362909920909184162444360412052431080036284401675083420229079153393025224032795534828524932018104043120788213902491644744142240360602461359402656039794505383328650140671002720801024428582425921818949815170943806129573000728832019936150929371525099298267534636176030277463494145554754825964412337839705365180928525720200720187009700815932440594358477636499008849559396172794197745866425537449890915517510327741384186075509514965802225855399369950556093740123741291640694141327633034342372077539278708319171365535384648601350441104069539573131434362968549276034052196827914574042591008316957756295891359526215399610847433258729764566329799981100489243792860151157119275875958169400365733685159491923053663376073107055162363715341309122026461220953547074292374756099594714715213098755514817282930508509095782540639106860895669179463710110619224845148222363929352337358428637898102897275965200258127695393766932093251560827803337324875310189955459550541130255420877916165776017615641180171312978207506597125871838269812393768530381443052099091595977930462719012252757282305239571477373438265090624126613762681744033008562657077446014047429877252702619997611736077462228584301827521231386540001960337486070282940481288980159160243763662143031572232389127889796192759372866259887907969300631080412909378023524301067238469052314212892689541791084514883625447552370196593932494354174653880471945052667954546453113256574821819164205888669352081244737683771646125141754570142604116119046017131523952326102444025354068304578005185496878505916407759755034932498809833789832007264279423409449223305285443932082349323692078573777989622554448339852572159797235100706449457426210807239385666570482071264569702508148552490756294240074544382495853846872358107866831644969636799722996250030182612463994698578861424238364816628470451979866161456449138085547131311017630390350866409618808462333719248734567777596939117445930956565350089927769836888291299484320172384883050951266802356521473743074358878766734642772607997590859537002332544138458104358893072491466311599943999956886480708997067252743584746081457225114823076112823374201884996687487165088386469733716866880500479664498273981141914490820167948276869202434943061229934205858815135028469747354786242078250701758492747797540061373019547606969280243299558257864786970831814618192801192614144351871694555030270261742762525912114562416258895723696450316866085066313283221599048248531725854212936363759816011906255395599965953960307977653287852816785587250265202386509848961549994808841860501586655327680599215518030434482604537339008336773638341251335450304944442702322003398735221045426078396853802732343915687705870713048211997023739090099725738842577082918175641147951591550358636010070590847544026862955736249315381511489969752415758694731343264630963489476930835091165044519078699957345782191036970175564696891530799294658377570863925925135075358013224043011663949312293318815172442175826414780077553878728912980904342181965545110279233093702484689935449700098240491244246419963882935165843146751685018359741272287033685261403974437170731870645871885044307004763577992814455787192103254347752356125808329969896317995059538144823163796702513083656045611257016500310615208530290418277715686444062828752698829771443197178754455243180272329493286983964236744922354137464101263030067977664371975333384605152724004175535326946954317467521662682997998913300171556326429137223049886670464358502837293766059756184135733501492574444691318156909054961756788546402145059342900677917191515975337543254883867518069385400748819671840572061777640236071623358528942556809436608428538549387054922976207135923320442900500748795640468898549832788474340810414446845904605580903431228994595275727026480605515316811459639986839506504771180287747824862951518857756687626390700075428305935611038748898112395616080103507586540431423488865456039237416327148114827391546987297040115683152319952855146917999417124743875619144539032077611434624968602070220567499632376613463354537981624568324180370029014366300971664851474719372556854708575444079095140296765229173482045827907037223254793490513821898004475258637185989339889576714962656063906645694499881318038877868848371457312544192319623758072795083291344447124740335242882157190154685939936410298848499461946421742725636603019189216626990503592655744017098145232398591459389751755007209257745312697001145295980889109030831985536189997563893415536751558342493875923788093560214109574499291657818909226725317809481901552079700686020647327326254880026460187904717096186076535183654712846097790019105752004836006327749826365638539066403499714476611042195213632584782674929179119267459371047932960828344797095959259914463468048796351073357951502525012062457225161271156322984354971504844003759838482520820302258015605148105603037291273216962383757038710433022000435387732834224882888945389099616884731843509631000135810998108494648284785473534230911639476881067364063690199737833389558165044718558852030605824357719938520960807629496934111068366616185052302012306306534863421442196741538099509803552921204221522807734670400330103100600232206334331595338862334645564745100550083986413420752206776547420707600238703850150133264773751161252895783283020577065651835776978832465142281038574499783931294407168251672793043856343352949084659999364427462894750661742249541757792893616865671299660650189064437450737847191597510039547440298623748496604775719682193377683179671537538339973649596587743133877875939083957324179164579897236089383019995938819184394812116743959702383532606129963791933844039736462294568262206694979314621210530230926931304276000108467875247063830822769095555397957382637725727080672526208890411894734179620910343474282361717580847586478683976408129718857758498968097633093769249390035050110217557395826024911457932417259039364029408166112166991296800084492324934394992795582614910116342972876414526369551146802440325632089138995316409984879027849015790668583162489687967007828560471700151934972798638705531920140978332917273056627034933589682547058036129118352151044037859815464492003265996630012539886733527900174447513413017419072294432421210725335364484076516374247256647152358584459669891162405952653727589528191137028045418090005588385840874423101092299054251328620028646722015816178812568749268341506664552972701956201716319484922304725940659441020300153517544805784167344047900155222171882616785348322706024585045619623092141154697211749401915116560322316227779660498616899141285504989340280356546752412942849350948795043575786622478453132548855334749505491129548658110512298694460509050153420901334502948442090022966256248018754025234589130594593519406372434860438778309563953262328978444530782883041315209945142280562172356373671192564875840554052714631665480309124749591516904579833003951230832867495707845674839575287537553276575141521655170375330359718320100157211806771332268892819501349475414419569716928477090957712819073334555502884914861687112521100405825530175179748583911225909727816129351005531343132208531403302787439544730557400156105731022230135390738518875579645895248142249123649138794781822829538342232139901062467233537951710992356238459095418278843240173460936541190659903753456286108946890221064222965969508447411176479121750284298143330015218332576086521207111986395971489292088559146546064341993743063684718210410624657709936503243715344239128629799968776424143285792597564709510644171126830008834425781645228482119730313655728986461406978996451483723155990285816996892453079531880034083299273104995807407219613334272207811400527320001454157748223923178143713502572924473673181270326453965116149389658564484984488486605501127614084761969648357872112416717628891192727928058504606513615724033736485332889725330177744932204605014459793074893873686736947177457744610456770229709418505678291934887156295235023337687289410607003097884908888774758047619599621205698965215729754719316423817946369980611730575478005730012979910044976854853930222756884352131133543974305001754611849017072988957510671381732461605873179562254790607376416111803702299322636324226099218541187628423678666135539565140989068826178027346011136362844450821697021019592062426378680775974684427703809285411180072458433705293153412352657225533561489562035812553240653450976318851489377249520974608568024470449569733184973827434162851678647381786755774261945579167300848153162589772363097941252672649029292507045816096476452968859305722165090368160005002772341171488797768803411631572193953697868243388877797445037152260639584992941819547071584784305182695512790717203723903177248230807426956539296342169097161638426332486920271020867869748538604666589734709441863727655243927499995492337986997919850945588392390446953592707659844597740014463667420493275446765456833133455092859898495013593168274210915415441846640031212080985871192369078648553193994963631759555004331022766696299902151787750971037512963632136779063065177845712222395458613066186938547738614384263040537279362344370629242029848141763576572631794531960890768643562383934046123314397074782301697185518355548086602674594455358395903474133386507492015366055012058591244573826903354482331606314627795702057161278136089407049467458120081243126916597416629532831027087409424929114233751586884990658480950399934717405667774538435415490952246012750382739927446917621305068074614316659787036545759805303756566798093757447347804467470654877031891620232773603912933892184966974448415414416278634887442362871013739192429695316693197150875311497963623351589582870089707609120540186008470086630874655124475430299515250603453991531063791307374446635071587648361511637640011779426520232135395560396779530974047966810722198050036464770940760854036494322199263570554625363778533119822697696708596051245577966879822828324638154809012275822621460705330098341750101400180762763461873777089283606703685705446854107044444867164722679499298629968850425772126590957320398295479025189697950458259247622658389193890224982462414648748641904610725156294676852417115551465154143520014337711850191183354813384097137930920200316381298354670955299281059932138821940967954182000199922183120918890689153302943655388151385108988879430178007315176346295351428610436938993693732908821402244441419511454163098072104777403187684367667828041951658577678378292634371621052645564098644676180140854528061684350216315811547762287022234964719774130158519941034508208033096275162917009638323768565686937798549951127261242813138370785686857851324041332904608305849180151953220920078610190648345566729651532945696249654395788344852399100056704404164105870070433551349638712454897571295654813830222831308705156952966221879604818139571086846033275642782429657512247909715506865855245559125557176584893620796036253226263675981817671043572036586468927142205652305591617865577447584540323411188732647658583290898585905364020050690801364455390901134914135404039066361791166947627305420416925737146584948107367882479011455985434108397468776285962031086700076546443040603699246069685582083989491030526788216541682646423052036730752866918956542085942233601957977102392401508755852493272512151098886109539401363657929071613848375317851206343273894081082149774477393919989167128754589998935603054441110269234312207621402098599531766510706421751145323091232628476151630214100477388047449296683173952868472065491618070668211758342517311570155494367903735419444331675235044598125852573442716592333647468762287703774302688110885816850653776456079588158284119546110519809364187221889153448660281853915337601440668288914359161295358379343938718869173708532643391149972038416211582694144505492590049183042446395006987519039125768261892813031731654604984858602549354867576465821762584938113392433134342811759301608029018712133739423174476083947030937770627999432164776460599373149554685266803983913059294320305111214438047807835005049072165094127593639038958664689703830829860052125562855146795539345301466528354972427125277174018374514066619236856701728040200843990145588482071760875911015997175421181006556246343641164688796398698600291200225955950464605256770579739703511712885257893051788398850830706872603000887582525004949408306514849396726137664550199364455487287074567530895526418900233983719023262144649037255889748806945298836690298910968688457564046630098028810652267755600225983772806617370829763969060221887792220254744758372919050309242395678633409329274660734792036834976598593046121171238611628239429282632847683169866371930306336134966200252564149646139587190846563264192423115662985040494449130408473433970014121221737435784387164014133222682742293044830508822108640507473829894593581646921978942989362269531337008369961712782437078104333332554172311033395465466772678183494072119533088656714218925573774940158954777291314537863972356948800353912521542960455190623119962539702496241442972874578062796195799549838293296615654232648066240380616802185931427839443764739814769535250020512643673559461951474222900099023862133873644339359943091892450710972958890717590926283820154701942972958676012683341049578899525253320969568144881319517651527721650675813807263506573215346144158585517893957425436847372854828800697863554387547682884705710013687627524907677567491970743116689916712086236636409901184872352155213985275663393410841892633055328836512135493766366780681853528996766753992226545948705587016292372534419344597543486048549645934122040598410830267705632612652621687142314203644482723395783224080016096548397795165269112482791252166019678125069254699251663501797633550017466191164946884664593252457492462437873518091527889228141055515601038010984755516229322139414982924104766796327132724873384523256485633427429430661315735955428218489090135457113095487815444057208393762053841266668188238484405590566129191525878049043802316056420710448185160136950895058774935960208870188001519006558565694268137487208095177901443966735821562529869348823043244537224557369031724350842445330048509323653390135620538171591474300045427729323935014129870001916426581977952246114839356062569213698631946547466026010862595338163077880869323282561395239147077019808197232412852686803265214087309819702952069458157069615660896755110146571954418396160115602433223328710626966471151364253125760030477128614307651877040925897278232435691461452101055451423300908296271731438646256995544359990286132391259989383395129680180472936852902279899313046036434210429181496416890933029371737010249947851335269660524106418029927799441679632760409913842684500931862470041647170857789254327396629084024722335181437585668616680795371535178850183660820626841964601068198793655878221690630805878418406338943854005175139496285159373168960418546058507404908976835408935531440437617521205509523331186526155459738914285050175102603999383111487610274314233241006159977765143760975455598377847351073949191312459391299191706893275732628474270188276546811625255645214717262761599473473706353232605899027669725266110019639165952323261456441871254121648571937902978341798261035127695014958458025760494868382868817019886316150013270673438686490258730429588374240942211426129472917625919377814967218398250575435989119345720321861467518083683224722939445576481804051213711427719819200742068772495253374946080336577970855477616870685513269529252656477151899127841906128501226966952129872159826604260812186453310528054791299743935237383363595850365029478901252748204029105428765878878841907308682481361029296866455217411641087589355384855334568691820246697812350640455723764466090792940145674382414651116417678222781405275016400740280703542650544950131745977766992025531084044954670495932416508440274289564681677029174401792299202831426626544916176068492619690306486716568497082369191632076105367173328625401082410013695542789668122480012409149766596865062283919961330990804531046861956942193660284142042826526411824660266016757733715661003156490251181543195075024879031567357824559660472763884339231330986143068190419059864764677656424364628468127962436509566113417629969880042156766438119006031422492099125227997507267486639174115499711635474320221333761858757279234873437519815932401236238590714198662185418789296682618081307899137089497807330576912484928372319376836204058541431621893134345784602314130072797593860447039576717420575039385128080378190807637839189369443647034396733724464802823497658960308443003700548031097750401703702202313753063765527471457024154619022125036678565181423700919969177074869378666476904815856309256042277303641941706999756458506312652675369732348129164036952706765692428864752125768376597285513003929297694382468534909728000436990037113489834942885407909080219612929099258871724270652871509491051935829144870594039934874108946203985810376567412335473640965583806320682324910434496768629921695987400627528252253942002937615755448571564378524399607612477186993509000441957972980917208961487736699163053839532336783220607914864457998814339945936746768276623438459548440982278059676915333384671452241446517666801816176914347968366020305780233091726142213300507181520573159413839008371761631443477658083446122897904816216264231564269833938575884629454647234133871277609158789948808230567787995520402166476139014018013219239022591394605463040330062162155980891774834006942569968521052769166712025887952821222010619193427872252999954921668868654632449073675900650493737039029408065090729912393811775159618687777430886584158000066823022346144005743936346093880578195916242500445982304196134584024322433199390323315269258294259050847230812787821828514022469740285118625029534187770368886768086447961276221680859142836434947971498707728948458131524760559255153998010710162005845292582982156491359221716260696025884105421187668288497990818667114526804923241792992760607155529829553163137087616748586121954272882408212700020633062733335988759935524537576944513875085495373040938002774687826474521148678983123655102644969976839658989807540873007025859095883374244277305537880074129445011296823905261856531222641436401280134459271826997343436318163969625108247379251467651175224120157678084134238051522593211215135101285117442538304775506575624798624257622627957076283267386316800332122117105442606918238352782735627982259117428264615642669719117565075302648839417753953311437964813317934527105581139363263701454503494120670091991167673603695301630700601137953901777140365499481980180862537010254736382380460478422969012329899444923400627915512479486998797565093894401275927984913866970666477167485804801416768230219031050544142848647330186048298590183322657220662119690912665264374864860148577292437510422752986785489043398666555236637521021625548602232805683694769124676146434437014590164519488570870484540225060127574589201393112507535894751355049269103059591039422050100027201895138610008276173760501899075720801088736698063121539366630989557086689260288053141635689571474217256632427380667333981656265775752890584895496435261605835564752318744693261257273692741839001314686166207152494639207131489099568041814635811048591314188465525559568305538515728528828795520359427039816001474161928930880443747220325370158108604168473863715299740450803816185411249522971602383359066200723883812012432714171510300923479346116971867501446259681819294178759429071364830212835881848567690384139866960364086769220310280757174903443279889271424978517518251320724694453319977575330423762247141757526227063936337140893278084956087304523205089758041054406776325476221756853276106646095389055953126677556446179775424867278202613403645482339721133887225974577934977104818070528285835123988356407544285182999866976784916795812525677290157660386046999950565530596833049838288754282327243169509237006935575080920064726186069842223538164595125553292488789099262754950135498596517142838759374581404210930909568718327533993292880070180312215143092157623617710905107007611331806584314300296270116659274133616319480881237532518561917673474681907645521402326673323584029344658862836559691518204062163541064151830842532953719371590615447563516589543427215152092725197465504863446389508682269832209944676885677976458978419960558711459771426235124097929705585984469024936486625496714788814485581769585200142492201380307049795322252308431156260115038257132439355861538523461798004175606874011831522237790145389982205759855462131522080224807091002005786750953777584427116237569910074525399925039390892139709183857562805812530651004891059544963470209543443006141334917097053837791259150481010600988631076444501276393884256485171769938057621093091027850608301743536752043947947210296537749717039077498881260948319112619698944672958457619204663169818840294080174395787953681161354951392178996122877992840095160911232125392529568652203921972733404391098481912306503343821782133775724676175522051154691704269145004289314926602306969667868264820222059653138429987223003039697104557857375112600146064103182839404120726882542187463928128383518371838588693843387231165990202301993336454211932021805406810227583920343864385936450937237237480008229970589184136233468481170164218063276953710720190893326355384326045395513606260207319824415649472012516575058199234215519623393614086898984830465576467741969628651221107048660903277226952411132344952943925108104735480964132783415843958952135534307498759558710642338940673061114716769654675298142504495620965618838042319183727172270268573335087345426444460448048357053968414603752676860787719715219864859463570133025014081228813380044920532393697325839573753322229309574403329770018131224751137541627874921464134931375573442053724784553668670041844282086388578258774290241512773922816776766975630904526734625732092456540303451301561488962378368524006510302761773132230615903156558678308088348057971908113845590321192998105899324681373716023654788507982593753579161655502057967818707626989506247099487540034485492852581084635137522933831888220666936753579687159204152550040119347088194656607389454276804416470108853739622332871675872860546046367441488254552458908215437492398285405792916774714896408692161990818812528865321449576865198199356263497925947251905772905604568947088899765556429128563265771221388321853214409566931103637877790107229206660420422478906945588807562869297779984198600278802038581333265760867262777029043290678833332020029821361175624513480966835988606224691108176832843210000961950006793638749185767897132768477392098872005957242206317756966244073609041003556131980117253191175124163855252263754600034105132347282792304704506148068055836246700598034958901643701996787776517844957656560330366962913000780066817398700512052460514566252880213314281352402373727559122433309860019886975205247498580039845399095609271857419671108159984916377268869481563014195585411438459947794870849344436170048859929983531809552922120583002517930408776910025001638136563945256058365580962659877552709145714381584073548223236194072264477790854302502667846097508855384434134802395047811441356677152540229993715482073237902780908222796348622729894546197741921570106183248985017488908908708019088811054137027765913979037761502151266003642842219597020077678464763203476711605092648420511315006326472814682173702462952152090685691683536048125795531436874905240628653244509566193696165559345378572318600171041859612194000872873544327526691495670259666836780296418363474679526747017129791049696106879928808242816268872112208639419009703390213173261747162077343663222422373964985342059483250707113421438710587997985634445937353961226797674449632764889342827476069633459298409114538781217142629627054156912789801827460930138684268068285988414929982226536756502668242152186173837343526631230657653977382590943922502185110910225855560885382230007177680263853020419650751684135233732009102261883550273921444657579960660946014315549038339246759427404691647738754469432154266707057870856689472113168778760347472637094291858650687156127254392406297696568138193819861770733693800295423447025828441839010921969320656284284358401874870546070113911860121067454739457582415389819053634797838814059759559304048973342465119248968838123858729898211871038263368996989693122607870419267344475263858916979447068296282124902736073396393934161461325931812236347022755726109541962305542913506258991772731846398363590879817019784460557072965132284769824434275934399124548741720960246244196462002372748825544425841531734850775453780234635673898796665635016111488252955774918519290414141985068985901734825314415387688279946143213276338034371844094786511973524835081688318971225776950300516648883368720678945949219859279748312887900364415749433116808405699835400346635883990421896249544560495079245413652078839810313422422036234281277955769528509490339010501800956254839530078025385142319938349744107861095139423038791211464367687833561511712380520099676387979832494501166937077875060103078785449376002938947604822364169814858022673126428453499003622032215676857886050041533200708215000469732242734752769981688310962703845508754751430386123542150557801853900294095845289581861556774342800011175575351475739460116126120901886413485267053518192929643394583826294160929856016023451854571988127366025026936217245032721787167039431014136787540071770255354200388852702126748425443085351238567018667295451808732014493637449060705119735569211129335043272037070598835852512760461168683836177448682612401447785822388209915386871515937948495698353657231078350879785665933623683770507283290716089816455344213521871027094150174296829277624712463286182211732539709956751368147187386887093054037368503935796787283161233472067107371182110147419877571051692012207734412477092117588764986075384689212501816831548192355617677612909812246179927305189307384032109638584158727916315552750471871237759021280065571461962203660384419786928738622678307268743470332484038904122423808400198926391206201660656937929597298850998401759300384348104582590662577148470660696559852897146047782847391577974645139169943395701877944084479141597706866370140235500441029614506784296893268479374729995636189532869441982148294114425591523000494794770724073981955730733144011829287693726006936615046612043338287345831334530486060196823109027889460631782589918943612096000586654806432290682152626821486382498214427750873496721181703599839145684513389127457214894015955837623059513612857253131184053440545204704335337275178477256678896876094359580191216610815392765721800893402784089724625763241427968484829605320740512906882701153425798505087181587213608604538930863961336883090194473874359324478360154120280323039504904916860434706815480253458644416271055844194713364734403095283747450178706300517724289553238074205796135079250813774994176002855404046888593269193067103028802104518028465071812996305565187980139368875000464527800541415321530898382949114601012903428302437741757743366257053773308239175966014919362681165928899235661428668253908486419072071673663709519581871552598266916837858302767400160349102228427414412551125101963143470116320544821085214121614310655625115339350823292617329374106469531165036958522335870243103172772161023790271297992203261652887353489862915944081225273938508449129089288727287135158887679454396726486598992822696984153266801210857013599979540215425910145365271298717153222901279373099132257099938817415668500464234121735982679094949148041122730640141278763505714298925417315118503059852581728530348196339472752173369022406329952048294557079398597566549708136342063356147015506469512646130425438541081114462008112081273663852774060580366912951143812152265427118221274767431890935897970788949103685763220549723091231192353631375441639784275134427411552299763797592141975167831052299152036603624630886886311843779362009344063480344301025846571621822646189124032546265763367276595517675474845987759134443185794211332151758718252983885366579877871174046061902234981873066024547405376289605200880733932445977653107314623736909354687391189877952462945788147351697772966860145436447778096013868827185095601960246810292833072772346985026272551602679010355432795900433199711120412138224520905298888418880340157558082266440705884471891677325852892277314257994477083666162739367399784753260193701138291624381470254900565873947089328386611901552615573342898362635546936781717062480572337402265273130497662064659474646375191634337484215865066414820848998647281741939698797363775289597098292113595953231325514259045069867705490238173353788918071863947873969991965394051618970235437134364628648231512220754580708282944775690845072194400616035441065496167235395298664564632041496188383227364531357182610051414622748433775873620101182902647571920379240865268780706317963442614904024635310901795661808444164959105330904442600767918113980582698907667443923660208606046043193603446608814066224828346850121638741262023123248676654950104360117654849275200019450097705246131072497896267056817812663103240569970604392887351862270756074978540974415319607456286470789452942252181215015789506806615141517674545411817248495864334851549375588485126603633622518218740540137864697698075764871064907326212975178894169476035946755410517610549792999976305812802533004541211050152141042887899578995316885757515522977994755560539999189227550327602926245462564507595936089687067935413393800385613329201272205732346587695895603587899199912681130910219840353554902413369921954859348343522861565634169682896465739937342792400049161852408373128760325917570643144654885017220758390459669166832843956782612914598645793978861479543667100953241101721228694957061994421315795474853460540062704123280661387383324079367920355054960198828895695501203493106682937847860852280919782831295735115093494312558530242259988955547105328678599948144365641977589517493674118121706027628511718557395524203628997275895642275801703374422909838005708544346156459263456136151943382846043632197739649008414307752140098898596253649264148100096424726247133950652434695655535345959535529538609458274099278758158971011353446650595905702044821323568734867527893430652988401556787818940436956495036201665802424115324498370746240104677483888130376900356057632177225057483938532764659898673306000955715264392688857804388596021534008020158186961135255762590689722380306915354130897515914768575694033653480066200350813639902519113895657025135687440451291782298442867275610656092374074939742700870840883157641367510008496877783652054194104543638763761659135094869389227744765306509761052114107625841124800805039715059896710781792106361980345683601357861239874406967043103436132945448919193928572937718353380257036441399374357137187572115292189120461519699203222372008859124935789421172506106052843169411237989132837887951692724250206971928414812392397203278313449948668251195762564744581650831769941405516628855949110712308731574891467229986900494708452714677012128275565885360600177399290510718528638464020875447678125949413928079907442769055914457196374094865773019469642784964734579757575582980729958372147517031326773808600823909964957277846887165053704175598246778624788810229694740705987530710029672303831214277777262509221174251721758845341565500236067434869988563717892749888776820719744080181752346102258557592767567223171666381146778815706244887816602022372328788849867980946411557833401778317731050798562218493477259627428750101950615643666556308602454959761002168310892999432658556660484596696326463638712478935096247978444836737344140052531156419230251020893778708118983928873355949176244710335382472357406814340728607003714219976238410306080016923797241184781376786358155528383931004116856999252425268869778615804658470998076681213437727265311598758616707837698857919241762737518707047138530549959685987966582221464383249388690677712315609722027743979756407715814929166862313881970741123680238409187017798568296450386616039470977626991496457101671249339554426479747212567811831868511794184078450122829556230845920655024558157658267679585198975573500327970448579036355418069471818294062287424485174807553230026165422978038867190960289383252341477483220202374796406441122658264926660634581554166417991245564167038775643838393738180548361620988962444442503617654227628981419068634709995867736085928200712853050741881815218526781877889264887668949015760002131268829480001399426344701234970515489502225088491805542777445964498365440529040964582306873564693398900674844699545953475879740653182219608940684625572590967238393722522701972959548851827368592404796976004779683785701845272791781495097435464610395945398759045758009357377355361743490627950575631060222631809342473566787156468027353009825069301832747876107835233146104989524314325429414968799542540408994377272702935627754095205407779069845255809722773620624002384817866610773703849130766478498040710800162972830661132808505060293075494019215888064540460182053379026863639849528015440058008945310497433930526881565665138955484485909576794509821992614914492389089346345825974060043697932924711254981340003690274795319004059372242739246224493574161461859060048824249798757623483357925621976435291435668190739236119045571094476574590342773036105018307357120982435844508275940183480284538612810352896940895602578338668161106757979876491364986695625346858533204748423847230441564967761385099396487219821371543510739518722054892258049465503799670109977287418201495045137907631034085009048607892652233408522482502837885171527844428021420314820814867571675535395353689893527056479151438537951137721236484250164814591907263227875668283615131836603316354085903601795151642759165359813141045371595323921710452610510351666573704405642921358565058253092980577628845226017894138663649615831218746174854160851042492400589234582121146292418154471709243028129700187310572063727666442109090742349459302955612692541533987840590993235178655027668542301079485787025676872129165096715147709161712017021446386149487333596259127402236407599365825631553781356786283047154244726691102005164107558515335398467469832931524005855637755916914709849154395512750507097014421462175762071384185052358156498637561651740318683117997599016032306123864297168262029732611678089591748487968724532731931908062338051940975855147948888686407099368537448827277383385385136110928052479187420921420388037830939940190035751805712904752941789997887161347659157088982539926815872564057237568161768638872975797873553125112135636842042500934794917419244313283567589255157875074688284528157466395208601884591951933216981659683255040285138484897594196682832988878170135562340392660172550433994096814248695322684472118092660488013280439360103016710062404992332977203875304694831001996981317306186873796835612665605175968396319361875962545728528683463012081279514886990555089220949241654994516060701596154939169950737472102391512988399935010887500818900303061845989556074284069427472798559434066827744002598556793812865702104419635216275828201913430700020494567681833963109380303622345700107592215822145967007214280865322652259399640998763758498476775067447259521046603044032766943158875110608223408899147623291368827926636812015923652225155788735834110225429157510828176627008132834699132893712600393751311256560358130841488173452279786110058993896654020603376332368864415907135424686641701030900362791511391507691735551985176790662241671679545380316020622188269725455379274422389066604893093586954265771670540868562706941165957846993799562949518125052038787879987463829085495720065730877790365456982669407509003152697350174126788498259067576657588363957376692173884504656688789134618622547001748342849004361801242664893498276570351920096375819821164911623127782585604473747851808871027913632313058643973995059112443828168270637111893395035644803421789042213957413008771203410562201476779830699541914980962496759778742863069871873191386557717124981738658165853346500438202107012707653600665441777752833267976512233714251349219415045448780364005355443755710603719650630637848466758302754072943755807901636022219299866504036894688842675292165460915742623399228275700254844074790703372748882291756774840582446433032788485839287712360217914701241184894727370509360565099568334819644793699418108797704262681389555750475367794892741266297966601871843312431601186888427547214344473570334212525340196961619969107726388544979898282536586714867108940131820279155027587543152996755873711087512508942249675078816979673284848651334325670044567101235769636848598846858768006476911844768150335918383757174564727007935586352970227932696551174663842656979982554585866892358268979440797990333874276945622183749344350288626775077673967026288481569175888834911974422814929267248352639603403181683046042167916720110210260111234899594738874562044919860932941350202129448733143484215631022184516880946831720288163251020847982840334105541800832493249580006513770504134330637293303608007514839635630387630870429139681749589570245432187437549939461489637762085074474843219879584575076904684655198660636045766625066485621329130931031721767674600835013559496439133475534994138639887196462269948346622228068926426776766829000574062687045296836997854732908005818666917700710226130474247553990655700211756991335419672346234679816162937424675082943755424267764789963697236666154366835474662369027312081882535830385318682453979491993809662951828772749756845394832205533290316528392281624903582534548065614157252035951900309767582369466188664909444020476765773674391855552672548127146721838689331939621244478633047250898075286377779989088536895321314529359357860122231223878631581950858505147309952791966314611923183441854610638837095076170030701182056215550203041490101556790353647195573676145198902034392674951294361453675218761165103677407808844008043388859605525414835542392940391211682566735231598997827736229422123093578430662315771567633268963521242091110969806154079973358474858607952114765030809127735858496046842379141171119167241280229051392304657781990289015694179473915033087271873030868933088581091977023573615439999574268120062179817846533700914176793484995043526480771432975316587955316220890686752872028185183940199055584148221854937553579414061551764460697371440767979504888147797154371014495373869545126651301959609869008626210092641114740208028158323491449494784283763921436755939569956862430479003879665500483731325799100945609045936778793191305540353677947329042661439581181440036423418080042807623220947585421425127119740437324554419095709185607043637070348223803495121625957244381977257456816185505767481723312315506885079451724790244216927376601592213930754082260509377384839754596721398248784493980299954804025037245700509239783503634102752869987247861668764794100208572908430390347273363816001469299385402292253678645847813094263087333208624547926279960383927119157026915348776698723918244944322922925830130911924410941643017472294199045595159440364113314550869663643653847783394074675618398102259744388321401815875041471322350259165178535262041123309256960901856958064570616301066515349553723574172631569667198309729593963379378448473084244135377564040612425746679637332644340477195290382711945276591468087578704139739499919950294031674792547367339541433500892947658789344048749098409849212267051901389593728397624218644942141932860126084874444985238611703404921668574899826534367865130252315667559405628067598911609749974165280384680315019134233770084512641390225675901823910390588174839683247535171091303706753208080436772967125778424387598392702086603537134445882922972464912313002135385072547724724171160686690874068063291179450976588098815936389714132023328607656632724967051389677947384451349148648404177463338087123540685834578668459519056376541379064672539863936779987484998441293505315938232793777292759713155987107298357846342999978892011956205825270491810215760161959770555429338932089706130673262243657189637397443230034281210144153585003833339585250698296667419521416710038584074729087298675621240585769314412996078407287313828313234807699083306727805083649482171536832174435130454320954468325679144353659318304031087812938491168205004159686046460799426772433884531342947159702161726270471890968487918175128298078911113160943368043248831485431337888982686782913946412961819109285919215557165180833466136558417427040560075973766400480927107246568635801933150728733530293473946665502838031657154012380270887979343511983602161177879249638131494507984074303467598849466447621954488516479687605223731935327809185228814575899502580266762533951482318501517419847912910896249302363719773763600631805483305309551982658141844955888778057426569440126799447112766037609017922880612801731343539380939680333530155148302966366951877409769068417746182032819709681441222682429461951175035724258177936914329643759178191501353541920118611955430302267734393302408352692876139872944406791833894799164118084484900576811718155805648275340713745613216929295931274028239912445271285392878871200374299353060706922568213870720381335053301677576474086040550357098814781515652597066608152024786163836618513723287050758484082354324658754337750601944660748469854670574179848008369500986615194542432539214613684818174084945058352756642286381642178718562115944546624839247180767024390221616810638263838146097087076981669544354004997096342444393831777681258304962626793582613765468176091074192793033320080169929732804893201448058035864834956034422004700982842860025851490082297147794211888540528869057704021505154049631227072070934907388061531153014068314990843205759210947511324743064356134047847297055710915892540433179791886383730848671820267811527430453779284709359296895918577656283504789168232065743350770672464970946465607209605902439711653781425977934974132189677588998741159217591181587383880621652128547115622603342315449364543993400573123338547796946149585267919175852657224478414204168021346432795125420889924385277560534022249676090009193109306236901830041585728985045869599379804961765730901964746834744785580514626799935761629318954188949857950143103422517433170741719427049290540436449639921844434807356537812621103348642773915463874207950656009380736603701736815142176461169171331977024858463860823035040994013181715721182097808216698098343620429564121294895184661435574061850362165976373362637893258611222414409523893684268275051307721152707959602782006359586557530129624095878357838767723282004492839624286383568943125194662103496394106842383655799840129024950686017329583668043870405312116613111018058539906071512569712068094574545567979809066806238903815163450611605596277192113792021330892176597828681727915769622520252475233367799076477809685495693811698265660436384369022843198970307267744997407963183429186115970409469564325497539463111786376412675447793476068495717672901990682949731156547785820737694212438788380048493681434889889459994327226969316538184982334584774896582291886354273885457988446566575878286470700754970484546478645656790968407539865860158790759908870241368297102507679885545745500869517592348341318280586459198137468358830368303310210147253265479561615321395600333643069263019887874035091557991574188613657329600890703706142266106776637096905938217491923640892748353980977455007651992208302600676727159873440471699411299470893430164293602218512755647060789262682169991326685750477375753348024635851639268975946267894539109096491475724345214140713602519231023482783786926575253847981021206755606214157673756938704761242283584251956703308036971079341749430374592744786520304643614364693860172984642278544494894450394327850047767334036939421058889185665213497156986270072375210997387685194611287571316841960166410564295964578968171869224205850456481805744626529853274431364574745707183595360648074594208617474852018720992706923813587143851469698450320842430603008405475223054103337520903813338129091794997035234201880419246039645835751168539379059033252236918125009022872520260483054730927684058012054359306081859137988200159564644084246497227381076044790652768036946522550902605697483232672513703662844651270471420084985801940451027607699256189899908268736377351794303691508370235787924706561776265249115158799705437257991047987581683258412428149754753275760227046196623549554108121891531509837544233215728266649808872046620489035736166935040240802081603560810138982937519253900613615560301548814933816118489720553676481076125397223931379511119481301125382969042598703535458176906515443063922282742013051131922755064731053351481515245392546484697875957415296278160515848192018274809239819229894516617715440190257602852031369844972872590176504982783443118875758071709584324947652149399467376092897926050042858839030323815492557353587402413828447724197553686701844182761749487806165910506322960985630990257930898056544451490644021178875829387745070668493236029769685352586129190894516555810424523194570065439139102743162091226958056313605221214871921238687063082408862359328042182161292434450702654453256129820910093830127693398418348482330953565458538010495169316704148609620244692399168210324529336088852040811368840843919692561367771835073562582703320664531575786460476717007341867502389029241166543805183041347017712684407101567241169352798384612467554775282411908698420660863837110365088761808834360655214197590798546914848799208356324959155241501813971831835613221362083675013235736147943898141681951836060965225813556415965745169313979822486617670412265758891590897949658293627310052513296274376029906559444322162131823021012093202312384994763957958101405900080268302550473518420903381121075605480119037164793934482295792406412580621940531311149110539973793169467238980972750425021962640099079890480585651290476078288975113480322954056584855679727373226467173341786121365921465884974098710672186549003269918629994975866373768203162470455156437418101534085026357014836496786415934402518113925016989752890408571083150455643226231464931135036635391637447216668725029463833668371307714449448836469816078967935176011686112422126988457519015977699854562464070465560343519808270541638351958715079595840618836770317858716281234694960934544592661132329889552485207803697290776917335720907205210227926613873785907954849124002615428258599053711604802256181181943957333843484487009285578718846997757762462065844380175003873443783363464062920750446168565791651977105389163689615942704757273828950579738630686359759101317144128443388018424051829680830250784050710917571499460641374530427165423045127023259939293913224190179517355160949505763670983937703886038345313623872925149399884111577785923696795672883597852408017561409764322308276909282422747422529911769674903629825522664007553664142316032018748912995132860201183085232488299219462824428775651490009817272807033721403490461608587900569663669953697461168714261395433393947073721587708631133322573778823826732000422884066194142327864072612239370821291348987345065138732607939656308278288980232101781933485425870100412594713791459239345018958808913839335330616448297228512464808373365365188469001333723434940757797397523599188828542644220543466891007046597861871377851582024930919588505901014946764777211123663817125031154843927562339583572006679116433198162884092429300960909606485662627531378304419579780180622787338472544914283147936819405351730907562972584084875970200408226866246360142239285490791772441455897279973974405960626058471180259513189262828433329344798507019040417354899647450778800315704004972206805740458588174240596402533865136356372379283682664081982630765467213321046403242777037508347965146957897287183910411987998018500297823144187576418538064237721093513353757850034571635840816384881370798279041751879651766069350133786294308436202093080817573179090101049720833504363662861154180548973339517655736109098842283635428918904187858853461075232372197949419591732055871718559500334843349778315631864050411521532757237137320280605385704757347558974039098867536034483061705778391255586474220491799933236799964685491500200774580650818606783323710129235548609575595103845877925620757467963254501895605782162867967180171129269143786412847220332377570996523847578756604376748189137688100280145176666809012112281375385027029808708377828620770570859009596607935121925658861694555851751778388989598746019719933655668692180825626308606555691095976257329058885033670485179437737623868321851150795830928960280743418313986774612862040378007009671020116413288394383514176456666855126522619130442740849257249757849734429159781853400354371019946345574240153365629341392952728413980388671280916739583612392715170545697238583508207383441155635290603800167721945483438865001548052135720213960380765054067075522698166669155274432303848479287194875061761467566571052165514762982799266603753239810004297278810146326213601041465730794937323843107578360397249405653884356332822247034904354346086276394000379651465758879602708985749842285358687849554549515960218990238578957681102595093309418404077236271601135057093851676975686740594113727511676798577488762047193600818808449325114744854087296918348513331954061291791532542929087681951136629772566201582583587563633782544298803776584881969476976798847052730057570714375402505402350313164242211920561566010741228165983088075935242471797270899626477893755172249933233885368601903006364607311160902330557760655919943281467996177032136122575580978236623228506587257046876048438566562658505275348832480001223319252566988772392939172652026085547863183239672161670609665652719670382475339011041265798672469566890616427435269126499049965233106843514203959223960641954669960271148916416932850808158507058703138700442622677536339274663151508809569071598352467872501086874303199993958757578887247611860879573513556577856894648700437356600843062861531929406975470072781011150478240352784854396955474367105401301750106462757766359594767563949392277213931662442258528804869881072073592111035002527547688611586320755413814186775875409217327058512496350903363776299207250475905981108272794148940296696055085296874311601402461854581345851257880514529332794543458415931958230959002670977509356105826200634094455135953272538609078920096025208076840209181862991201799876165879578400681866031438348353434222137769570228172764081272191377696631486886034865110702049608315138587068530564194968146102095579549308701030515635808571163594455094921503407956797693609399231461041296547142485053447835731725991579979151236579410671928150588109173760756703276570911446145874074203548251059205488136932329160481737059595122481236980015136497052499222421134421916520725736781985020465861058021770387838621281382994276360496464974017847018288474839562970195043754841845312278507939116466962810322975369267036194768021973291379194357749447073418752190058064192651336297098899579152003207077067406394240235457907308585478619766116646355494131412085456350564761698504453719538144011346003505644359163793352651691212480652078632357112660000407581461012220868033362995769077572300439718149540419683936316726265321189531972467505152306110223727971777848129826228041442152744934303290683934888380704660393883588819065820157891500628761550264418677311994287818009225748069673079303712462517389383928931423103079660731416247985701460439407033694844092815170075417196934720283000257600237820187631271194939614854051406330490693358003195018756479691332964910158883068036019258704871804760141238177258136246812318627918780933591303143318128981340040810895300885725393696371518752946056024084439535891776741906751211907929009405223266795957434095435695916525447552885056522005043635697625725206878028245407634178587958787397349785584318226108037772936012671390106175781009595480407289681385263727725750071837150084762195829274870321165037872439620870542917633449691355331079823811424197071874610746143910645194155073862561668438907579992971071907901911980909419281397395736715268462549060692300962136427075569805734074425550206018888551734071865937011770690181078625552908321885661765174761165479639074690403842457436888272777996277919821215528867126605819791499497572632815448874347753151021844646634010189884506762056126319185807240896845138655951177770057146228480997005577738185087826078808210693521796615682304783754912518617356584862458298033595993117761013440394522610456378563618506367210277464414846148860486181208269519102677431842776137293727395868560050189054919016503033704170281997079103834117809048613911633941534048376573722960197131117992753390142677135378009737945132038248085577468631520463623655834140585939832861436385293466022306818974988623515092635672609093658926435816143455508875924229601606488337358200747913111360130339754135981717489561723063757353237489241630082568946415842088931125454951213510990678444146234546950454036677605939532543499184175612474936900778956765121740959643832109811577505392235673754287963735528870739381229872789255993197970679987146978629020942543383291752690303596549670057981801543812689167671091383131086414856809049407310206078152492594594735548802306506050544205841609949493344374538623390039872143260887963550447460334194962936555591061409336456541850741153900230539901721490705539441971015628725884954705136880992066549587735477923351588829826864445449346337898595780752747958379351102089098329560357940228184898945294521313640192280043645672441587460701489784589889349650693091951572274750841556659481340700858735847029108713293139217732779471768752547595330240688330262240270916112512363874493623238120989663335625489947416730663197821643274484295640701021850104506726617165646426451193990184411936909005078844164645927498136364811761692037223020588921072036170801772826984774521240792398954207842055736405823156063610406352018610498410982164967289085543696134018974749042016936349576655223698170975459783899251377146080362259068974254758223699262644408342622979118917423267516852324945091448152593595541496545733592106947427865748441889645531358301662699960400636129544599018444381276896980145045981119381225034033428170867302495937285591022000367458739373500329841648570677807789158975292527810748862714038117756355341581200533947634723017893490936433687539382112445078798039635425761441347182523171692392552995902897667647932767569382537918084230731768629025016884608623046229278094643587785623617634442384994131623645234937074417803637012972553770664961602811237551179887868164110841650790367953128930075143733935431977922816936181359218796148976718945113425160636701752120569353203078259929408242108338438187184002038208115329767632334381478889032091244266938681662094217837307746758783245838315978630267636438275954384350675806742009566018801840922360188589712419884059381037666800686050146265213214699629658453599156548629515714985537384330202574267273221409385231717329203534466533935043743018325822444418903323528450810571213512225674094012769734826197836982686881585120137883759958469189609891715859379059329136166571327655821950961062789813251798377187965179816762242144159529246526369123216379321225242811381951387079124024485553809932343044693462150583371670288644369159718068152229887603135354249470051727787326627136910887436229231759233934644944835527725758069191069711343718910793140459705271123485242845155773986943649396929474681716524792260599942107905845459489620170964211693838276080347368018495180991603246987952158172278182813139439613466464948109883309442093623806188377246826760041809699505021402981653049417690255135882688801431769217372963460276915088689914805927939614910199893881799398150560104457627928657379994449139329091724902686539175894007885272330954859307176018817639641970656568265398093046557172779903300398339689571799604172553980745430966976157808106400650861077897278214496239950599925302455132665015708732866724929203530687376306622109034802356799556046606966159142121987694891335640713186578568073897591332775507498793207507188826402800976760002721529170051162499341739744282536200424867480397292638938225477291336785246273975284336864576207339270307572079802203692103752318275891816556141560777977460104617619079847060430569308775713818740361472444284190703133720025042871737967587601597795034757339438812098351291873106983656130623692165498061325856081148194451030400195740007584467312507831311916772787964886599052700289932238958606396690021876570327994231749629375817370170023993140092158015607603628520765600622068389619557827140071056004189271380762561349932006316328665141465711646959272802372217017761876819370421029038368842625822433441052281094213302365330923745424853186713559675460427287091477795340313068760563953006533302457503849396478002661281391841646946861733721434276835207654794438938297795599166190671440472737813244429132873341479433756427038537075011200038798949652555524591423764174454188358841270502882965708593066900030380300506154748258590378988635235412072173241099033739786345682765543775655608025419857650434280767904227678622365923021713488332028873869282784991661738787736039034269809206189664087626742230891511849607668344928735804706528728621504292889559776089352616013187533762735955691624192659686711118336403874377960554649922886261276548007562258152618628876725481559165597824432167320882192797451963825801815001670167017273042462524455770692295800749611608539496358285350380806841491525953785818219085780336491127068276756876541629612811166221604088629133882533002804188200569576236555231359864510216189268672306576718265287359287474467404762810734809448422520929831131444259445637686179512455829069872729844767843501433014188601672950100565924914826545285824844089669021970947429721061699390515896986638661077088447157851304921438185406866487036152297974276924934617082351753123522835170997795683537527916912248761880593194984018149734823420174590186681099262884466233581765300475657406307188923711436604209628292411022871329339139194898945886781630319661385106970130235237743437457723493516283925239727321297557472957296278955954192070049620577509009059269945949745697943957975104471450775172708890390208370067084971724333792403817568848636548666971665027840935151956914304031389516445455571822217561643571178602635053342566288485795680153382171474759545468717394227614035494391967178605719209710006389853376090948183151333539039854340220788659204894397277349690562931643636077285689818421099452322812057485598288558987016317709942032402201607334026503782750345763321702561139119196910633756054370832199796197197588861612403144844373700802644178581695314715725792313880046144899987167890416655727014407359342871270475815748406295610251836775696164925655785808479875223535334927358106276960381105402241843724846855469985251818268838650593089462121713813306589948919791251031646362189275391154415894786803756537242799893221478686012003796146612546321663717624494014428836680853484336956336972025089707881595011548173698747925683416234703154763934438479619635817135050041038210028778121352254295371335320474190850496653684181520638423462478434607507329911611703980860772046888349733858031951634513316276622275377727936346792105543592310649610994737070540898304293165019855758208944902542851868552756019063514424649269523083612108747001253371079984086128262100685364493430354052895028764591326331324963885761566944805760424372485741337737075571885346621379671617305360401463937622831936977167618238164416024167471162054289706285864078770205557789416180321438750288125277903186593151305100905850660805639085569528026427775612322700447536687845631622458601491441721098650296590599850792321080506132595712305447136721755169785122378543911992972046071460248906544453194584127894983948081726228443886104327563414982535879974137772654632582444216986856854072168390525950748721313180121458019003141313489188781460055470591514025837797092778987406912596827233724532362753016264674246515632278484126790251270615757174997911945703247938514872037362099790011741576257404291102939036901008706818353645483534754058152147779297029308556659819937879461164047707391299117990860569994998291574655018298399000102313982803195588645437235708815556192852491251275249895801278261743424053392084863917247370899802648893774678901091293728142781168248921047397361092471911716650839547894856036432947556658315905822102440670194435474941436232897764462378289742956685444394579163906888417059157492340701014323751856764076292096656917748031687636362605384667675446786259243272025287446517708263334249668244027848798813736988999338309223598785817570741843355828709006401615583320614477853989383541259173415548864629414301504622212432447771549207359301569377322458079342309707980418035253603531858333849411325747390724643630964877948421537581839490540300957354751327130676305992660040842857743333918028275575521257754398232414074491477360239475621939711262909606953896284374619643454452473724123432521947354194603804591860396273083544591786445468242450431080917811692910772235694893744890009397582745884531720298206158909542022493888002319182772063398725451383457593287547142106349981240001741526512073870529636331893254864503174108307298579815188537097406344572634868559152034531698053088758242241782834296773763886662748232970816759694847274991595667551149010293400228879100155092454542659224312659502821143974555544357520721099827482423636511605818263934286745551951029399158514115641498008385362109994425826316676329635221464697795210143904727598665453097857545272511673918073180325217969895034488000615244050216372143268024355433997711135168836031659487322089636377294806357414086906498492905322644188038060070531811427961320809033911878557939122892429286578871799016367861128605073951214482619387161784359842921955894518577802817442753907560595622580907778984578763577394931294109770054829226855170575280929356336311334098628355421270262537185516971738755674177373666357636656464593852364900355347738442426336077690417880705975864249143262404419386202734682994594951798477990584903952221262913315322220028610853054962943661720570067389023293319630184002023372703154830430657983227443254527613190738410567549250898847724908414879719997995805572263242514416864815385232846822891568365893899519765632168735921791147020264545571817610022906030045172630673181585042676509549144897218285740361169453716700003605105595969349517770352402136845291597685943547821676055247582474393093496751187596094148694207161307336780183181560152910939295321063971210462725815256660531170613954253242199027864436254166549481123089922664101963654278131355863626795935019913745295324630896525200799590553770638525922416939032055577034476382781664483561437118588237719694816721839781669529882827586439805567625747174416009381233576715192378926119615556398011837674090922066175115671149540174312576692883983847600913642372470082505961473578378119455843513665012083033057158333515504527792493479835296804787034736062430807878646917320937062208220739124053339715975410385806736047239727151537899881902331191985318306372370839893024139376004689822416391871551134180897829343025267428164008052468364691998674481228849678709642737689457205607421902850244391145020404042691633933996152173228853970139219805856635411351552515230053734473435384655361904725904462190930221530070204971236213796216013143809790705696565487506277190165926876584394036029730839805948688756579627996849210614334088749439403405008752346023185896229735396407873658600528745922175591645236890558542821169516678588760496766478122046482072374906773531707718913276109476770944071878883028852955988714310864460870588509515623639239860949676787632482972984221957152407359706422821552377621197568602525550485702845021572594291711182784541868171420810453071097025456506019112054729848713601844573843619682242874185067585406678800909171987306908537985265402217228317050315745702982294449625731223134227630544178723780873668324929847374409724202394940271616442890076542531526932795072343799479114956258615750748564841404311187403414336354381043806689590088736419208586413796498401241267962988478176522072141507501793491900921686944976238692641209585532225236185607186691072738031760434561274368065829640562001079756420183904110278312116464375628344081141594757164538339744656454861950170237230919065718555851731304032265431610114181818071773451692414496698129411268250114752492991270849219750611386290334239544491472921618041302383258838702529564359719591936739954269286386716753526846002033593404315160348360951213062855588584018553665458017168795072079252203747765083526059733122860192509857569187787587575392340851299107257256493071121223027672041907598569718579757141486199853575728836114258423412253000665574013972372954162271501602821825824206282083483964144854351024365117293634116031228575506849037529956580961298271287560790105922533522790397945308072498369364213020172943293012945769502670111215654385126376633941782099200848615565451858433378741481333817829688422330661647589439085440961594217250430787217171417209326997007865927963777702607331197127581549078312779428566702764566037714711300213440283778891470864332879728974421816479416702544643939799810439512645693305972623958145106026627216681566894971745799906959571287713185626369238358155231915577130788458908905124254045373989048479189449198359456623005212893394122470669094703671485717136846485302619831584791356261541442754042545921657165245273906430924853151028956765941008507301128530801205597363682148218636968719853389426332293144082001556856791677900935544463505248871902489797349672884432127627895949545133554906709521970736785744889514119216582082037227629422245099061330550441342658494437019386417289146448890826528526959866683108556098390940306462985823120658672936386708439228145939683464615287686105766282945566477926912335349606984911842135143396237193878460785850389999184273905935856414767462147764927691982967840638630742588660850946284167047615186106930999503523743944512831643207891647972584204411228669815989864204542334938627646540305771223135370775293185706004656739155527600400137926020580389075575000400801923167979194878467310044618219227971627084343724195927138801583743335197778276455910016827791451830604622914352508605772595542011068893911469654137437587799057486818909476835695058524683410045738059057073273610258989159161538083181365145373349187878661048915565569261895576077937765223905419031350893069175851542682000459027996470152310654979159369185374496634000169002099356676240712680664347096357652975039902147256479704599716235748699703526575151701506083669317793878298697619021310467060722875202754644325973547688184659100571488787525015146567077943090865945268277689399568317477683452143245476011115944120937884888102801678629682749611742466199042708064416618600512841403819978970879060124370958965397674025750396364509591258038753594972954246910373316267441642493483477443292194957191283587525252165507596237777057318230031922856771704361776180175162952791721136437213660419035454081668848323175883495870834639562539156381466823420563864254756414532383028741757806252803330444760217973269637404823462755718378709257148220888435876609502849594909021315581980906119293635878329042845827559093623700401841976567354463352381981010799068482773164368604842476777576907338465294038480772720562568311429589182327099758221151900818878076841417445924392366325249101493173373919508227728635095425524402855426265796570191749600190505235602567852171220199025508787326353198541027198656777806696875986691502105430743531026269363542366415389553908238911366428133861192632584472349232603261656136939039836879585585550975314690290814646843850012510353347795437216842183666122174230051216092788629741300190729804417048578429068869410339651515689783031619552802838701391097428448454167053820963566947954964641025445164415371216918541075455643584688303402666076789286695095470691523212428213423748344016161204999439169920812412913157775057552167257936933049774538534250165798844130073618990421817967043441726115870317583587346271894959752880869421545971721038224345467730577289234921451762145958496724449559356037725951697366464110295507858432392792406592910507117410097777493392587374645057833372738910639545638228720589889029591845939485693390118712437534520686303550348151957261328482057177092907043648946422115701941726371088433374691994109060350424112057399056150851799506902308270624392540763030068943827428666344825202287859471464022122222982593768511535481934408479526895036238075246508034614123495170683494489826892271963479082953917852685964110694469846722771012003939461526717769516686893372972734952856886793311599238337143479549352395681566094656205801014983356285084245621470339602491165545629046396801122127165155379153525743832851126567285639834922622151700481969402119369149815444777530459836777560504625087247325733146999882750728879574419858190826492378873622967337560791713716115649020482513424368073829966662153334449930799941325479176855346703798847901575516401062301352551951840833745715610681227712024636414707903220143271266115807025839721943278382064384666695537928335128040688598743426165673704265735229792833127014095668472223639427655503410630733727736723866232646780645150588881525600719270724445039724342560674552009539633299728461351166817989868128969630279389262963070175273907265333834117387035165924758512349978250961125939422922577384658977082161301564026033484140239123202410135133714462725255160479238117264105994956900696021556647883119448312642501231483424025004081101939534704226121407226131285871012500942616117485285523110174052465523789124397967897337452816498773737577244850136212772554112506506515282311335524006897813248493006165754794577156097460150886227218515361455071375286091398617619577092515657789268557632329840090942750992539962431223212066416115232872900816450474911648178326525774455679741391178451070741382075029414690850397855722058480720196028892387955589715380618035672933346965620430297250107200362255686367210089564017302721372992778667473962255208478416630748987388045388622174338334884092522751303465682969555077178795989724479972007409048776973320741907180412882055624945655763317925239454003441545919601730719597916995355731739853894234436859136162531790616473167027314376204142791023540051629094513811792182123037438408016645430413368065929121998232259350694586263430980239485104614503983628230384016845197774132283638359625454926770583190358136152050819526812362165861433274652971760360848266919599046450615044158293741343833837750177147690368951241972304797486600144271638612174103445794116914097459600353437800409142128733970213772618442508375913581956519914969053232044866130623574872496682182204034996315010356953659126963516527773031463815612727388344896848118109242367049348032506994017024346222245145231306042683849668170982366872714760620522266702490534329703062127785597032764085223359027573710612336955671618054793754175712847325807467321487198456014463966456745065624774292400193873689399464311383400231920396294905489089289444439696251741584494206857995518671716755556657343483369693121237549605156120821496996054916642134509320544851025710924389968439656828051505075763484470989019050841990338632113967776129591769947711185268539163284628022360415188607116763003679410147967521989316645122262052981742669113712868282705529614989273093832098181515563487012308781004441053908728861343401516667596952893589274881092992894073275335053738918415894312778246265064873294379580755083985455752503352277790543955824219770727554588848704324852405081114489375174126546866517716506213619809460512389146754052240699521721046093088389235124226313271168871302682657463422790789830102861012746581217715187131702630065230708325563149980976792934146485828162925505509393146621115345091079828509387859282458468754350528623029158864549082151455486130657491623761943717932345036192992422288287425216439809576430383288703906139211219155082024883891592180944554666367495669299754231159798171808199567888409675334323092108588141335346069832013545361489501525680881608452994713056173708202657010191558596998514031665940519868055735889842135310823211468192065676129075453443256519038016770797290034544600216137868284055628661470272622037774591657797846409711158201683626388984837924244298870490148508513700418190253588840018239617145806151755192341087853751076107259967800294235754168441608046117961327750104359523280890163509593676738127993597002288571999968649814076954886608494277637909869478539236106810102154463884603672254631825631004993825585189549785795730992478460631632090196286876666954905906284485992752596586470734007088702535149875889163263354828944684090937726614128648367841693868706386304494607830017228685216876829838332114852358108050893444773335149639794899088785964161778990882791043208967014985371837183637993087223385317861262134861638280393829742716405411118821408014050444921986210119734349229537736979005204546983373563850308413806001416152992647142877551657242326042756512134208221405747130474706204520355059613806088389923753854694844729953184944541586474724335852110202017770549454778101889008358765151773074298075743152570305231167157697053328186928364933590530478542201190743773597021097276936263114820512915103508557018914188571799295164417227064601632192801900656349704761892064999683679411255646996056028422515230122699457368759222786616633133578655121242190734803199215276373623885031926528079342665490221526342145048045783654273927735763096078713316010064426678095178777132248645667327492696929340330693135753744942701717121036029513779145661644884740502846131433950763907667592883088963230739830180683305008132419444214660929274024070797807355400899651286718938806256288011438584725415253005327850314819450024249931350160579086954089337012650507017702321922911425080236642952557746797035510141159256601449131331790759305348182800550467577483950343337607540470059852233245242837885105857882389166217932518298206812985373768676998537107597322901573075882050382839881090844863230241209318442505948162734454981377750943895911760333963908119706567284443960530280409260592854802905436560344874792508885850886756718464736000045192413829713619582878606274671547265665531386512649020049981272702636416329421506987002745228844251863753071482901112948291597317222163231425908865322594824079042575710612590766331056863462043879714792537325158754557014652069751420038720141223233925825354639383687926425838927124876257632028844026622574525991428930326357121933274510717789743136178925478106487949746604074966769856420207028799178207736203562559289871473268168522496598768467845551945252850626590693517901844116541637790664092349401732252039250783727959643549485391859143900354782900649772747760103867324877838014061251949174615175539429950859961797223830213694237881356805969564687333890585692468097706947226070919913663932814963010697822989130379070313346102188809155777174396398170022614148208214829508529041853431360420484442555171622222527231394946224503459003160958935992089248227870039838277820042791113707403273031403908286554495034496796897400136694023384698598498896800688692242108301339067200706413011553552240487847431327706322140445937331769008331283014085863072207518136257044025873316380249751245396768464985027341359854464448379451345144871098489590459232741317900009195245429663066397436181440380155783420318677712899215271571813375119321349249894956244581122153762732156427560666229962331347477523462071214676865264522885833979912214174823925807948060953369646918175944131863586482336395348989332190867245911991738629901732639460625027496162831187201861529113077767775868178400462228207570442273989106770240851725140323883503341235457194229985377177213341827256741837736474230973722347464217255612125625831955989757968546656124190287247597113971806820763268190065844284249359511048572644884355362381368651600476324966398141202613677417660275639387484684116447494629804345401189171805308169947769279302153198457432673931495995819764306391942374439960752187865177699295284367193244962496425113206970670899305080544689261117741923751205481053134207809620731235295013136980416136804721112222804041272074431279377162068426013515755596777876839615551392774370274058673960214387082620043684770550149892734001172470875161725897507170867736027748619200404595110392112706411321285113704444040503096352392446472127005593642176181057730827284187861353777399194642466672057180046333120903812634356077078458713797277300810606880427612333253076264027044161740976894615794095818018346688512494628660372849340013885689593306412278145051735649398957943419766081105816283441368651618118684747360583826866463934341589377277359273394702619078244419280930495216191611356228184131626937122858465190510394749719980652141802048833147965068026964270206159367264413947397972328113975648164163709957960672787219055718273790309789070479228400723317997057917555350636673590332858637262153997651879616054365559960914430708009543496473312305251344609210135995619299012067208900886256693786268889979049093548969284370059964619710355125333111662519477199484654189649504800729175485951568697374288473590563958750519854613877289273815049300018103819398671279569873187047207484096366352777332168466104967535364210718921797122256622773048541818174347340549664412331807564234590950583829495879934702903671307644663455924555159226864881511817983681992939679960578188708107364951360291790863309037148919808969679428543831463444192427059997912483293208290370242952180868992200287568734288069696482519918111725182353560813581069568106769957394090166342735021688967978746260564157120339060315787234161937942816067096130506187324009660505392471908165627103105645068232717482242524316217260922784274239210193534566507857462320125126556691607450223287306531752390866663726362603952314666919389232166189282653240270348392131850677059485287637955693738008645350265661559678462338134072610383932306336198617325055434227027118233986050015921601821687901128921510569263851214282162408470445464953509201642286595909164957228749239833076018753543817402795913804297591056930482602738862073510002014776997012677780740001507674657392865503666564165033742312477294949072244062129890659710307340497210848933481993475105416721227398491344843074994678604305347883205815708548702510952335926161578204851064980535677666540916672704567866360657462790381813884070970970456038098364877894744165007450553147321817924528418232850012048088707950955668707588867949188091256934664463522362884330611878904021387022832222152249593800639134636053074382209717150412721883804449151527125770122231674768541568677098112384335855650239925429916986929793314638055279545885052660808116145494762295184238620187683182606749145931793470460838274352575468198660749776374226193070245339111341435740325571823705648268338078831828524001607897074047332843172537095202014549936192397462731209081792836178671128874771769262281458403918857396468745692543639935609658935200181123361385343488259357092938012771248719448427153438992521199795150574977770429633086649356618550125166923987948634202565075198707336975353150631830467835061367221397833844867043293608329951547490734548080899307466389089963318989468248220904318672954371356975492173117867753811716829102371131598445843389928520461250958647802189041968157160371173957011897977437512622599791232584118898333568935511339243872536485395561705192641421902254166053797900139590011477205342621068870630577649814601594963218831356253245246764341252580715393893870648560235611839474508154466038660007409439349473827382724742929127778063665748623158276770626463141732609556903500275853950615371140635418746937684890766620681521341860828584597909282209399441362540845562269824183918963921450691470697074199897633900452043301958767856953157626731041018156069932080811016105236316422407521592295437226249111769297869978071888177951720232020394685683649914161282887885175279035543011117165651861587064674424171733668738615515747501460378849939682752359274869856571261506435856368753469149947866230735268927988676967716690056560609245038045956333763695507886975837247600230883578853863442905033527704367578778949337529715924421630678144942132692883053303542641229951310545408938685965046219846875635612005102086961107124376521603268472667664108126062387240172384364694007840366837715737479232684146348376605924421243418779651949254519041337653344016639976169709911338979773033532538653277281590308123368516896946514373684305500797029705104194095107674142955644551735918219706659504649204157111266167853033418545289782621015880536178619848770517243837438334734798890561078647004207499744409142198177405757340198948212321999225113340757473828265514993729105574896728388408777456706334785060350711583608515516568134228099079014433337278100193079116712790674885478171992766289834147181796258602918661703979993183834500112570188468179086608880301614215451823003160377303366072963105319993648047048280996607804940288768714443739778329278787315976766110042866332847464564193643758422905517186149800429784085739209458498305624683996091594427993196545105073361492876387833674667892073249637343352808675031647540505748510560168969008354005764429108747516879026458289933739360837307232858177991083568588801862692860853035932037714022383555208112675122751866209994915206650651174847845003691847489248784807492151585686986553722135156910579272872718889710846502957069427731323827742967956472818954108879251872040022464428465403296178224236070248661790188818766632970685294037472649891129778906671679047170659046223097340374929505398819370967051434276908989984467002553222359358089524361985954160875359611608627696171502317279181268315889282864023759594958290146366960954772429497022862249400367309122338429915057367225744717685607671592061614188314732329430183297393113293267080425629017467401851458823774249597493196055662748204247747817273301859682646661187893610487148007085125153303428659113586825963980476250317443510514231732420508352095171495596302703874788994148970335323849328721984629675712414580595295316689420400621242461056260638941288935229133095201971994891654818459491509852276258810175095372948546663160292046859514777045075380172182616857662988681467900921620543860177270620030658816491891006214742414537934035444152584575347250912685893389602464173445381320053973029750261127739993779758989793656912549664393621760027108725831910711696159157394984397481387186815852509788353502681809559241240488050533489747492993782637274350282999118731286840816680756196155128659996756252565212426570494273417880771637945359110926487508629165835598419982294041808429734625767310449858093023270829232306170749007113668525628657185210957741688366067225590232247597653603065983995790444955398378015547092052229716818493451302867129478447270768410264095585540204675394075336969938200130008008026949031219153974456113802226774514896468333449111911702608136541185543706165760252584384065094688843260487022271875124014360991763528427312200780478998591536240315372280394313625094988269319546863271253911121698544964768299823734370604809988147966052407967008195641934731567223904678893936454170627630911800013352474829144544351028231709537490627372133549676236171353309448761536081726986727315268750107602203680219427686093311740861492676363136504012204031892344722861672763019949292800711108393196696432850776264500737125807424288006697927401903791317898954874097139376144915142360174426572419783191457943261557849992630726336317825418282661904931933002463238130761397940317894136090021121988024075288421783087303242219853198873001217707258100285639808261860191496941503589064074171905425833113059616368292503553851924915493385480720404507294518352295338103763903754531326836713047430148837346132457118127184450143824982336856195003344577973332613885150920723312712876780229135741915865855156455684062136163772250551953656680117972209842270176264673392700981748904385267550012260782491468199854433144791956624751080496055781933401294873481158712673736340348291309217245724996512392754140663995932025376097680036621824145579342746948773610677664162551068220032664307274604769728076524976700741260360349250147062803181316012701478148489030209096531355845137189785387039889048467684157395313430559211578521781545372311315357835110530332025919370342532387823721149035355437722234449945584571523795391050249432538547224113993285257242325789307394579032977006340194385541906634852318972788290534280296909770411149306169970684737097377946315956646977726968581746107041271231501514570146697631471920071823286181566796906014688967152974434032859658582709755299515225926825381586912084108886862569722276216571502189534181163010539615029597452232845882645478785769439274983892961310155701439056304740104238509472807894554213814453058770517107507587881180680573492631048364180154440952011766691047706822633144155498298942575157482944847942686261218271873416248852374667425280358330593877051504016765134096296441519984960040005345740585794837308153866437416016482099618307173482556739309372908618783106830756153993478838663514369361316813692066157421668564317480856342380751748322229012546551247148330578096044374330660430312114638809546373909283373791716069610103560489879326358538375315050003168381892669721438599723438880296257681096391096515598860432038050495651357116493469589423652737032075024659970755893354045039961550738726446758702608431260812960906620814889297941789587793264408513408530427184331509580773558520509587476501747172850729022113683890685667752740144369125124491292426175215688627297937567812777763034821308786404844768423912530139824570221156698244477144474723758370868724991997871249682233457774454364295194100784725387865113122822969689943463885419988820448953072342344187473120013657812600053403837398224617538916801004553504095621521911753916036672148870072459572369773032711955508801341706119849490344277979929553857756420770724007780182567001508858797281205525433153752734788231383648419827146242095754890285050213735641324241875750218915628363584034775406194560199979015139623869669820491492851181877402394761036558307304587822420917419786198803450875198184151417852256632597711531057017172631589273906718719871864905145452259951532990510911736784910491940795214373178958018547459414263950038158420546036321583268963422126390321387065320426232091624991255868452631322424073077301580878988190277343066917380952421231838051418637004660539257327866602915486398507133182191898189543826511629531710740311035514826263733294773853457990413822515908865186665954229529312020064714987616657790109036978306077498182947862352689886470306197177211437151889027049277476482238034959831354377303686889405274505792605547436519747052380033467305185088926162381729783671846857724661777048909195220263627205346787980845794910277746463806585080765610333387773978348887599277960560018155889987409967606368957345783163054803059263126450296358430227941131647876180882858900887332110415599184383754400397898645494497272682846183205379229754801723062499268859407659915046160088890748291569136529850982051830091381760048138870857895137343415135460123257833289422006824837806133135711328635254728258405349945528070872742506410893909980669437605799956615997564250057337830032474104672625262399288393755789728004012775271344685324464347969532641776150420219522140329967566561600602308788183139219572304297016125487742998008606258297395518358076432135610724250792079486544878400697037840248942190395015892910214936226955876163061605998477474581588960661271052068567802334172769119450363352780099846840671598053390198101478300751925966428261157571213293088159701290228017667158902344442111495356229480792659663806615998334874977995009725870251793816185239088574431119511713963531632156374507727375496047005684499789098087126209228940277886692591603848293991716667028001782135818851689900782187326948721304497475528571583684504627741293446280795245303387851578653595868613156813412512574504562959102978476755357974509567650515604548203107312064173407874774043847418287573024225563026613601612908605276080761666535460481396028279349626592503967699417558214993208328848932787708719745655634006900303716451647963326773603688931978176571734367720641076836207440897783446994229405464347043680101541295598567805553435583185539473330726578344537434819156538982472039063085819340748994015072522762745327402515623716909776282014457648355958437944632809110251359123564295256849527809962046489642974787864806523529179082316623151711876219989631810863271206456871904233648809999055892970439301806009754539594113794869197465515790994727932776385107273863501089196701458475595182480741253920915081600269647651675624293560471170778758541942713387408415838497749393281655417308124903394873280934319773731491089305607187500357994945576343094183473110800157381062930467818634212546210176667578985747377033948992485496652408898380530301083035226288868330147920500892568311607050490499864428035596558671987561377266968432102447699426802540962195274992722843570536694421357837826674843894785183484059922098657715657434442790588917463293907055631072093625582653611386603974356396378896636031215634188577312071906488058898540476506017653578527910130192057259378862659520518452661464856473914920252757760123583245880962311342735560201692137326023471634926757818021226830345046683314505831938613466248867448248632946044376321045922526328001359266133813899394081561068901865871018634161101396492774896898400805915697390357682584142342476024314699020269009006166969038449186109627295079914517910044901539454149329310370802856905819516120276335111058606341715013806818439945916305974346064743735391600709026211298264434366370702904145903741388958802493739617385864490670493251531662825008547648264757217432885840564545388120550104207670281133629379999257009502531840837936484776382485927529068318816206022596854829180453619112943744334712045975679837387620591396555347784981041267684504168975317929518819549336570756135619975234410530136090905041576892558267103622335758971212370566547178317422217468839623370150637445739153383438273046196498999562524287985163850469957297640574992296575076210255156552173194808226455592586073279174585360872143066840299831192769724980051701832752588065805552751570205009947900733497700320314911060412824351838259207610555470283211896528484214248887458775275738179546847718461425932845050703209229284155256372277042984028059773069033492968279617834348968780362533950800193952470321204173388702816450752193463473095551085137655142344729932720379180014100767690766714929640133103253027758782569272696017773067301887832705992496148700716942569183436215139529247345966896863502414507352777618532255294793085426302643383024092605705279326006054415024501538580985835024832394869508505041925979139008148906654027147379102366344954871249287798535598810467040660077294311086872344349299286891389569427014314858042723638353329653240183039975441772776161730266452825687332833459248428971371931376491481233303758186756282899923000267522119910900860774780302877135720086828324920690229363333013682184421033093950906407394405027890713415679866528417662482257985360461778698349242516683076875971909539052083164286160024255804317661803005586279777165779726625537824543711037932037860473245125590326107498415737541145660509450917824725211513017517769331618508525848434634276852839176492222130859508998185564813222853641873047110542706858764747420538395255247156555771859530144479013170272618419623004730239605873502995015419390340990572777555276051275141567535140743221423804180163639123124114588142775572465197257578827897684849159867748087965474613262878415453558767382568709314036839747960909183693477083252134668553564984319313505427965231232417315295660671522548780101219656911271077438309173149161454559710538432960280776369869029562691843017844433853762823723601437491790665450608315029861671460496286144680690882712197445799338144953499622627610901549981564732473637843519373719554943257500594382007077477427919193586770871196294347795529283729850745910737711339401300964547492159939078328411485669457808086337904872436728883259602781152376653752431393967230042132938126424570083173087272526603326028183016348227241943840125892113875096135647937659147906644489647187888220430387639576339885896633239923629440358345111272672351284110071089076521513121266734868683536843021745619650594151746210123465106000647689916059372328325162321458185637647493208388218584393534691256093166397547672516945518480006072148826119504135550725670556545788651214329515484349697886404053108804835064818287602825385147174644348567962604659581252578144020466823188816962005602087839850767734307043188211503539452961914463621989142439692249912067666686898579023140855857176282955103128427058876072843591551024420656182095349470481771878457569773814848256529070497702161530438506594836874199940710978398753107310670972680909201053695678977431069498042045523314246220184359487791116669181516018149340130121166160273553813114031221049907470706016786264299959642167271920183731126369799630973605305071255374047380808029272255025465539456467750235532888435294072863945314016721592634019283748311790473899457040371009308201509914601637934849920057452847448024639105838209828985425733833223180503377961287386546715276333893994104066650426765654013849961563301127023038376092671686697555662666642600727549487672167499813355962153973906810583618439155277758290182694028153407243268419088904478813603278437371339163330651922581439654821489791890496429338788335761392625369115321898888386589871932404778073320659592060834605485660636007784481785909660479956214941034394351449251105416384996228647110848855123839324486067002921434748367885836274149800011708108294509547044426621324233776819469727967428996309549854903955348650149951195753647941831620475056764618030417213795489668894172946788060064812825821787385966433963217145819574497447657052800235905019417467151311626948693687853154358932189310990105700037989820647725891160888013732813819167277820614299833858333731401394862985970713878385937007002679162156850072655063716360254516279187754492079237557057252596492636759488964446550366340896058272822221882860580407714686106196127844763271128845788656971871726306259642493966748805185618610059644271967314517397369576227057495307635319162688599654871192769117507354086251724909274772554471126271926032852930824215053679007139399751569261958484867700748961611259024239735576649357267767443738885127919013770568638868156271668516770552221384591492024872090366867834405692798108914773660835964185035662241276445420342193192656442347073086885508477305795267595326490253632374000919110174115039008829855015061565492816438518458791347258648649745773521078570040553813517283137705391112702605233055843063508373872178660334325001744707767936230693651364944049886412637241353801644909420036520598949821458193367388990505381077300563917555722362483176785037109029058661380127621238442880642533819614840300349095169493818691533360679406087344016851357769844121740005358245231672583802160290912805663369120225432342317931567882221180848590020199773835034095700105132320591083848105061781205300039167925812782206873977727858973145782873746469501727674127924549011955574948645013682098571842539744206188482054688792096913199189999495896419316606446463109465261744906679884929265315774002299529091907725887862039934084940931806518680579028619081071671358040171397159759987939612357778038378835122857041941637981835971033310345030296278918226882060679354054470484443182556926882922251307051133526447656875576891946297598523886161554229539116052701560985137567129965690191701517654313156145452482929637094309643408129658078395378605812896741901183565549953635060418858291233753648699617336077046777339432615612021090639987226633377097353528080116378129253018460544352026766415815724145992700237577920698728853110369522897030815603894768267817808120497230889420849060145156909673819714509440117010735005995436048051426446293748517780137892968898209768862003138756120302950716486804319608242580247191161439891471674468872134001287444573916423609507769614075312062859230061335113995477875058556572821102821997696128318538157991421834255424700446878570422948953857232312918546760017091713311395824141173531233472033842571192680217888523479596033416763484625495625587714843516391818569383451937014752603439648303716132241134740789266970787617866917591683527212539572716395165358452843827838537329930326414440907819271975554744079002927954453220154804734630681262909018038098676702535952125900736105060022859941356726337212469283174757913513485336891905396144987546197342212594957833156441444041162134827293274400409112557589741118031232112476033125563564971302651336198837056357338860353413515670198869584998137221888007115404825999571327339959255224905738868036848650709646838283449644705014422874169418243330080150617996410139168727474327552739560283460632807585265667631753842462678870730531108017668801418643166650513268448655841500001497465538867030124255714828686439459405584571906949410176945322078501083559633337044651547006577935456622419998829223639675621434189254185412970931340692078246668755910049571532608046110279919684793957119191285658774692035390389900447882829347286380857625297882725970343965167551178804078575240125654861831866374538207251736250750415005358004091126079803725117995698923609537223256701332700804138140489053256040795399810907786307546718299725981407382431230991504915707964261983666313489219374434710020251145781927818313374970975790697105084434481829972505027881397404602911022330775087569992102565610544333696367487994329487627151968051104753098662085528263065548639953188174147719733112423830319150899679786295584008090241547175870413526439346827910134315547055529103585706593014671190457184524797138374319337954211831217788931774815321852706744508257279043846661109867470897242110283746321147382713003952960939416264868337722882814749001457672250129084451422010705907166970173727059664901515710856186457808632873810821303175431106990685091165565222177992222406743821866816913081855546591134582106603886056161325915868923595231459000995377388231784690351681131695864465883839923242219867454927767065188425091424523355929348235921785662220664503101087161157385009579853824307437605271918424866655454312348978444936170230079705204853340178668619606922328288356384485039484602937463860799642217173065093232051417584396752332444110673725600511583342026346436563225212028075912393230261657668653777176003444692274754518765637324593186644661329719602340466003057936343777812137142873277913982630600380723591832604700947028700885281440953643781389340132228383396784763739850083171675404448136200391179304422251739534984518469561747788093763220280642473734431737472956400389921143551380288874615931070569445526388926648226205947752698933249157109623140775024143470937116820084273258916600760358357179898513654200843469567556147473068142654048804560858471078543579356907942725937724067747572119449064642563719398212758879542957087304457552100118404144691320688045486090210208234156477848091808620700580393712886416932306425041890131725027446642694314419008527742798018896801911272493389396224374321273573125376977992808384433619110359484391983411815716618675760175877316878429360726142300502634362066838648659291138176900859480190522954531904425798916975710118680395429794032692743754802478227921849589185279845434525660830394115416091078910048891063377169014441008119740514086789774834752018613894619743837599909405362223450015211352537453379486780261467285210274712048462644115952068592127063733990848916681041147202993936913433436832545316911371335929920388285375787032511443073319807675203042813819951238917511171656085635328056519759223092778889249294592185409350736646074680859682854720438052994664392020267145996766099940556792399507914222884811585102993315399045982055884293109425572025677654495186506457403670621234130168323486841722482016728445839883252900250568140843792535913358581111105953719036421251854074711583705727062278019440284691456937999952262500515656711838439995109463249958031718782862706117840854738525971937115742569704646487650942589428114231451787692008640744898808685604181622644394040111408534215522707509399696575901792346039588849066000171040120898696027966591784142476538835605608615048217061068137426290084893959997198936790828867432705903172253872692828314989680966763663908970555180196693210490767212668317207902839249073561365136983666932464335412044966896163602082185678710204142254880354102610061671139749661516613772495320738565282760844402047642638415707927011702858442524447894533297904151206194688538342475272695104350574942840268354596065117229641631970340221399775841969475843488967627964000440377377310199076409776728010099045936456688696605671423362549713325278836745125754802622124270483408499393482848352529242276382637947493978745991424477153583735831456218254978921073011137126796188411895568861399822599577698540017250287322976843332723424667245140746108324774354622926146496880238837423605117142052077293520316060067712704261354894589183811984329332830475039301867024894297741944289248867652737780212699525083786964457839897040898070352017377418515576689033131579518338533109347960503691654153908958087800720934589053295431074837707529612061565087385534765511902854362153168194762725941877548898781093814486094140049428193317720223260912835907839780073537375449076487579623060034175383585146761643016928502052252963239154673498614513219358421848734130569633369173168062627603331190814986776412948601873625463706941477157326337579134991655681556152818408884139708972209070221354855303212963884718907257709626709101687335987218408709121150949109928368027452729257942035618782939503872043122756445058260539880737341210008667520721013130073945768244793443383389531930856315712416605983143917824126971166599640494000873394312952161426230935777232692926235883799798475848524338761555079300690921323614333495084471491668281976990246372613883631897625962359208312275023552329270890038309829893450850194775150976303405576032250430209810399739028109993888883669365976616449367547632738798944283209401324650252737025060428279274748752041059414931638195118328581010005666612168181920433909881524525344908491161717613703307301760000003687265799449646436237682723867989042799435682838623322666756327633075509020221714075938887988460915677799253228707070563507625847278375568486095462059009654110535421470881206805878519719851392537395303684952286208045952846380253510080369770314000362296186170643860768174726669014383351185402411668599433039218815464148628431286073912789620991800647856203734195777533013458514870869356361831108947786489417212901343921076172203893622274163421486802486297605645287349207239629220852471463553359861126580072996107487309214243536828448713851306171009395828854682443142680125037083392014628873771440540908338349915666676501225824187578552788234897796847873055065324548891337625811149884027488700236328708039806920705132009903173549065400111392924557476107473130249630289406983575022987475676547537165735512700208772378464297066198211621151785823600070654434409935185178152201215362212721578807793590225893786461040808902478118971626554809520552355126126472469957962632645976732554566607514284818282058645385918902666787337823531706306118375398981224225114383238913181743526378336053376036168774606062129514643231379011181572896748273201797797521114911172419385306929712313014022425224983235090329484533444126854576533892705718795067263854879117911964686702040229999130206196869959440421643333866141255909927461477588559087050260947383970409886597197235518785808764361086595463778589532554957111754540134640084992761907731061034766081067585169605074956245924667646936582813279133120203071774014130096514855740323668848659544351383770516946542631053315655672360875951903537804414605461979249375838608772221365758408052476150894446015032527044096947258629569833863515297649999660376892166265322945819614086881333105223265766611356982639526367393795702565372689285745748861309946442204688158174380988243880962891519776821798960121280572939901323228283599440405245200637418742558339084590935348523430576743162993275567292850557793570269803660066038306115539811463339215242816975475644702999921901939891983551342793714971637267824924905386776284746052085726281435624014630324523827199052682923522558796874279352298850815807465486390385672444183849688597850653722809735363453995098167056419294597993550534280046707512227618244909891137655607927864665960165438844576298110325427513461402274938407431473467677842947226889427071751874544644913569335090858881387857195685322011041010218782214175277323398415126648084832622927211146590654778539574674370812290100693301313842468295991562050422613976127571895330626326224443336127306160172957663401474328999975873867671439422472358260439299660632777577558735587258909921504104482991276006194580372251171038172400517298086703101662797127036144965429538674733322239436979788623668397252599398626795830482726096046988950598938135513059306101866585589533081778697545818153088004273067672529901350221644443577587974900109426710944132891549364149140898588858881278452627080592332550770642642018094384888480227381490085953608481800199772119688973012980135901723342677052245957374099305071152982716839300510361485719863121962069531559251796892158707322677925491081514164006832699038515221394685223329399975395190036295069472033503112967457933846423428383770517311036739658260366177590368940028614779169907025093009646992130449623451721114308392876445158226028383967029251247904378728525769162613065192598943434722302126265200213735526575421258753195888156781867018876605550890697572678169571594271030599546444537377213235468043976332665465985529449888243908500967876134287720718904447683776869536805913303201693225354115588115176062692957919074771273505638907745382188416847346097822061719437153021278530030735703645644470903203104486620696916831453793940691883733001863266464871238418004705930272970795151692540625889491739549240588829114153715925600391279442988816397561118416906205314059557674879626686827845815730406723353754315671245604872911580962942810584246736395573581004297102111749107041891537793785357740526959350126766791247440694669986192835727391882510917127261764809591652894400289521012072050152073413751748477052109937726162850406474520262442275008676340467092043316747111535390594808395288380919516045070364602889269259499657153091967355599632703973966043625340562363468962898791802274233099068589642443070457457261874411853127503535467232025205650064936531743356076881870311780671270562040715666422916537455921227741909445947979515840718914257321712728652314652978260609729828805269785670012341520670914610251050271430595997845783526448391261447669523711147398636272466260028366913106830158277371847348476019417701634390064136024259193120817616427722490976512370165568109602919714285923554514310341327344513724338455955051776727920297349851093930387570524245469513749876509202713124099190726554722504641271711512992320832119150788170613359762951514207090680971769040347005127570579936351060975461535571100357762508803948920885568666269210530148044126758232093057729777536794668175961302094716235402348891353725256583328838504174421245760909569734069441313306469754910133214147140160870164315328982153148167995021398465002349556054562779366770875965831172674225116079690828996308528102654970647331432565212294823720206768871333692746427525969948273374089810620644112934042852899581936741608062911181614512158304537179330387114237384772316723083596855262395871824233967853181082015574120718384221512138064977644981399827838781094546295812718809342037704521567557048923323882238543929823460508489261123184400131554833286541049794989415370200082079047870680017077184212452165104259030365235951488373721579253487953927775769317352667548604305435824688407541828043322952068963169110238738629413513368976310245915736629293416952755763145774852415714728702311096430703566182996674942393995356214295617699036988460111321717114765402309806077026220794994374651125200115459942750164053175404033770424084012344180790578607566170147466668088542706805247339310703199764662612984947461602495858006446543657729853533087941623487807802710538889032746301333788576703769934941413476479791966093160409823916847656860402821201962998480799561167739378440597077283757074419901746248879254273550292303624736243236953121571391006532847936052050224249769455019653798354337231587288860139371712684607449931273988411212285363279595910016138742879356983378541185368591002151585821340303305638791738979943568538227045724810586263092305005771200567465999709289033494066236908533205149802404335939740138466449316663836926296359911155383874321196960626597169365288906007167044593470639592332631714499765993181796131553449962100466073574696699548466030581305165023223556444989606558038647065615064302130088118615641676006106825902227032750180460205860061327928988600343325891895553167215697724840729804744577354811244654242900438837356824700871343459622014057984549028582629871330510791611773765435356126532177364527256616408405132519731139066319902119721201310388177092864524081860437646284295450688359738351785474593789182704104746770076394225668914723689810064822182020766286568780775297747133914921968394058951544199372727510505790063869652483196716349466731272619088507629403583170091280185668058179983260916835396710230451271838203927392482344521593552344645388762593069154291072380714243776012500288642338999440202654142025134113010470930170748465019621314390500295962044086165331895593330950597682955300694077105846782704958733425635779240547912173632734827003078981221889994951434315301368878241755800812237521097475502221493463180590965603788976712819373607377633187968809168711928457963738885966260189032525098645816381431878867839288417286029172101577677075681509237005838644241567138684014235369570775554447060244314333258136983529432896036053212649840073451063059543967796067579089741020505688695128861944850616922533075051981212923049553291841085884566154623969879184251349432511314391763281974396321884401614620981597296311751888890884369059506116526525440125632853375056756209103630633453667442008787729506077016231583376104422499597675376153099626963015827336041747120259201544264506478102835672684602520329350463587034566566826329059368559822297344760110682165473428593518922139994653309286383663560814239598823910943526398785390254893075692805179887211387061824751778455055402487609482754625454265749738817259043994936580117762635009913327204732621002251143072998911163904880916633817015155942479189592570638364928676480827914598627063111980313504715642060479758324660681847738509547821193083827844612143685714249909834780161291217644110441514943699247423007458092403472818977382948244461508296326274963836951477321142350778886357595914757280220313840694119353889367936050991506208010328494072953803697617816781469044949705534844403381537770758686808679223364325801447758152197215139766489641559857488588463309077641417216233239909346087313882246586711852594071349305750567589069570087804466739845863022799071326894073203744550659570104393488178799362395607395351816674051057756331651256590896127700104741270229544438190557287380288902773802919451373903585070061023203613847601571092637777361339171508737495665025596581683759983244002390398263619631174272222098945836567783315637173781706640073998823550972217793649851846306254036088630882908088185638350533347413055840454701401035582726957270297351880204801320480005931382756711386346414408641556457657922646086949137514115600578371148519581826495111726203352452060510561100406490670534852365316212413881503575194616183603090924058252563088226416345204603222393975445340091964074870504037664114928855022103806387754473715994454298761597331240307649922461118473229794039919683384406700157977277439011867903374622799354482601680372893046789629150294273861408396024986683642570952746417379113537515718595476876453696092763274443314515825944210007569917553709547313302926538159856317340709625255605643454083634498929263807107000305294643177093387934037048229653138575800435820111411103963607756340385583438688586948019000983073975885496211586532609212023149141389908871468282307110473601479640639549704735459608438328749228623612252729421991149289050126484740566453421215408727877382961902583426374476499784965681500976856133470520335907554524876786953856916333756779728867458943602569283082699625492037991982209959070491124966317700777771005990610451045840351166755536723980552374032957273978943260268950934976314026967155443265158831581323167096433433606355280584427996101540061800930758124968163739016116127508080262774404049239369001807658372347593906157844626111623222427208744850924641048953242032205804041282924627840051418642295895405894364442172954972393321222756344108626716368992960281845126089870897802915378974073597894502735769712357837795354225779336117559158302999616345914943585270129220866517545484616845143224950553739640825246599529540399758345529058130319292110196951660309599849255803140562653553867486283815405428207949540429571416533031275135872483313918682939187144122872198667126528832185177725969838139006690371552273773703760193344389267264441492923496843648978251747114567282868128257931853645504934652193360145853018377039203465428862064257954516051509663923679300082688265100957331396433912194608137366343616959493020957609423383620658428953436531179840928927663921224966189165975699735357294155017888740279309264041509943936778865417144406005314755109224335963410024661003193570182815765977101425560665355858713083972345363951606496926845759593660380029469314237150125284493402338671254027765053707447303677720150157423964089906399610069692908989277094892754266016778464555702781147656804238194651334722946001595796435896753736052443714597394112020412682354484850762308412367321782904111141265872157679867426537802165454143962775580727966712739705207365713081906666324971877939427258743586536371922301082062152714774551005146389110824371369794673277777401188435093686333000269013663214028948894573192161944746213464282058736722137033579507216488545415286830806634916946473369158383306350170647868476740302913092305835333200349275453217693433503441345151086761684768883489018657517529586757704457365054344730681893877926168023120053685921529264334579940184549356390743025879860330560018111001076556126129199781984726568279542114900809605791544297179410288576985135556629440092630813036884944279000866674911248154130998296801933331561771433735507763837676841996445658246501810103658740067021233866972363660480734650491306066616164330571993448782837555200219070882348618556678429752580445045167144804608091476485771849249053132969459735709010014465749773086189900305118853886759376731826464382216074389306440276584807386069322808874347869819220774112169661434888197899826739271775583244057269479650108576945840423805194434470459557250286940766217248206988524455919605010559233619964169656410267895756743007169775245346284900626555693567247590111435703144708299046036080282051234787746547566707594359121604620342552833214848420483352406724658367907963953741200672022879382254532785936648282594047544219297845617152804632344509101219738449228100101336007626303786074516253902136640356108508835679271831533185621965871526191601122355745876469235700252719825928835482664026011304403311461968049034351477660775638875392833814476314575946890889894757659079569260609103555103470978109175877577176964981233651038672679734100266515720150856090896016295703694180438745135510655315346588694402018039806808752757599192769884287345672012165171888971727967962763022435575484748840333692261252489591534618724856277494909749967819763652858646258716558577892926366301760939571931549364700315811195449703294945372121456232910151779131628737585223004141219474188033026775780442888839186006510247007817929982893991611561005926975659000316367978988473455865508473891035899613266252847439732935416356842861889986044118388553986471401519743454992816769795614034578007850839548283764909509040195733808242884036209961323229778411126086800168921327277358738033405673357636137517733564750244011177842403474760108822234437366756767227840925017808995721515289555717131715221411931370631863468070239686404305212582041722948378560737171232856692059264849623557755510673528804362519125162688427066794274410311007341393904416233644697603864224128182597907270500853046369293184080186712763765687210090451586018536715718916292843513261444756422455936139730926841192105539512987125693456669793971507348954522948774065940598498259842961007362578625876760659226055206628086901225823961142215920508560641594406441935402065070551771872843335340136445738854372819320481669543621729695785919218915872806233178675521655599909802429375155413910977463007456307525623755616632424265774678819622680380205814392828823795043053447467001052445962423717068931140443099211585162977881419797490500381244827249958612970664451006564218258326789564448693037917504428302379434238101323979724947068345542768045986487297329249066779879986584619182014062961047039301721141947383820736328219873568582384544813462537025111265602366742614169397901238133985556585004613465073773756181339944426218032828658169909720915292151109594942551856472648082703275552099044354374691318751058326031317826502568344340327350501851837612273671818921029595742759915512708612975471986306250889452911063775600802531513282360087368676935898685009467055689031381070499109372652291165437703321685153805901280680843208810888915839765676008559132775601805545171615887754717480024938514524528069950886546089362371871260587686705667614626958046972388438131176866439751392774186718066947960017132968704317711517512730526988319029560748250881377026013027226448787724599714502846515609231398191877680864819414150740741357541453812716101336883846610438298828322052104910713375339295428255387676905019045317388321011983784032789405538716690449052782715385971809603297050714301180302922840200659450127942102859154341728271877181746627579356820687264495346048554244550426560670692286148115050190752002110569071768957257004113468637512242851810712149298362985721157429068130470972889485890038406173363664971143919912649390132997714979109413853914081292510622398094202994065002718872319913391681633404072597720175473468723185480495488391493037534874765875155335155142674416618830337605146903870739252842208089465615306306432053555712380389913236747485515607037637671763901693694614129776928662990858559253621057968746602315777564989195797756503675171697826391330188430356850206176752419051376152305168851653666184586808257175238840925284713854247654201200628509954174838232033305087219044712590235933515103522665971243988008313602484150930152425587628791902294622501394782862691733251678692997813885289437601827916489557474992908833195318061361434397722652322824238672902316632697762145474200443869275793870494859712988185604551220474999812876091604606522985679886940617254086282095152429329712322813699033074167479753816945669397037843145398468126688731116345679373983925023349474855988476012992806410300885271665782842577747571498659348020423061289190033992374309640711136887010936696639450214037896170037059513904944085660678411262121458451726063994127689024724336935128598782569726292620148959583737059033999438524375071129935742817610620539159806896753112054241002321833422714338441794067466055409589030143746525096277492850071463848202129582483948540172140221562744018612982222240995724050179417337368507831821672192822640177573264569366997459439419333688360283254264876298631422515302512441081018225393555456244978362275739127696456417123972779317167133025471421636372027668547056018329411559554220848727067591232836463705032964048882223175474279756403355583617305973383263625606942446106292299974795128535153290674857506883077638946465756858684858813889837896460038345135493817301328071965825106815672308529476169106595175064365272212019959816768104833814543585882134085692447256286524099495126599423680969745280992590336308355398837149875693040506464856446714650869372414855742119683049449755133383215716769293443770960329681082880987817982592145712086400280646976809969286363384910360181446641031795224485221083330814217247445548782416731358986963069890774122541055023005365458177248582835897449246408892976779051410509360613566301740014971756603524831930972851402027040070133566679286168840000557929834081864365581285910279727909684699223358606784533293940488933342324286385823273048798221036902780937778588449048421528293211341633527149638042787188730831751066523201574500157709142570256913913557100453855716320500910469838445906817337245369705588919257904749145477844473859725564783452279172143164320883214483059624505726568653103532040514360304277556196170477123382099398282297768204762241399906982314692624504742590882243350556336912677290867011920790277845328272184902260925321198607451715217666763382200979469441706349249169357240651915845474231703714129172026737665557580390205522445290233788635860826505040783549828568415716801349036252513659830996113622638668864233689217871826620666952112235127582367143922001951787683123088465106007515565962239599708370616728174062457314948492400534691799460608797709688856188258336073265397287466011257970493009165501851671586641030493858866963344311560189957575542025056704765031388887369728462509731270452868482628297371438616720212731333994798763534238519447272911738032256699104365057284635518318496322300168554241557424777645313101066217718501167047965858265473788009732457595296383276643058296473856071824191070587727900455310654680437560947865649430529727264273625890333996798825921598879003549869621025627142034368202359764342045117899651482411028055855394622936606138884569395360936849636532740890602257871674605074425824358171622339710841599614085532950896093604393334906062888438283753346430855785116060603772065024941225731027176817509021962982279983368457097244658332006563098367372637362941347019020969321572449530502844845898469616404719289321196089142857715705238529428216360425157331669267407795965715007486814937009493482007348496503927270870020811196474005454094088090138806058097238238456186964598654586573811065316921000463046520439483489615461674125233023862183142329119050907869373841198641444946815378397156085758788349231267385965791373043455117104458605002268880190181032454087827305080206071083008031007647556372395690803646605196485764612074314890680634027424932639674291228459988319456220815680510867449788823624888160960588124320061792841444837177963182601438596810489667156913589037728290826298300159426163524459265586380583552747206817457307506220787238076129579135304074918197374393953263577810641322234692974651470105863854964491581183963285561084140503154269926166026313773997763997390230965070041720035079111251775016726499148974477981484335304829431748903095828090422974624514912915592433079869710162249718225054538697897759459663602384824753455582007824520601066723291880568725958924575817867733351762042034352651070339084450624410098327761957365287248992986659544139835549698282175705926785660326758748595700916783869090274536516253989295245284285490353301023860465058252300772170331037886014313339458546325179003918906134662920681856746364922987421649715714566297536939505741193723786412403572924423219754401473483728490221314053073152366517560375609582267290230888542493863292557196922898708652058771766267150488137457748212700666833754335055646587435690489602341828962791472467335517611711187069168127817724344367629355851843822554723607231879732974659209767154330140650305305930616827353887031652844299276174805247584976783626723588298504445768728191654939478557891220003479750010601967957729606484216447290229024445811554216278339594471631355896471119945716242603507700794882548313108837947031395313736699755343075833611595001031620344492520204071053965708233987133701360735067537758491355453754772727526328428656450702793583848021488293979357106946608362716757818953669844043331470693182029721135934966208738580101164812308833479767694488536512301222293533887229113803903369935372675571551027242906966625312320932248569215464685660031787068360559609604308017029683196350776649585767212204899212636532265014960760133423151716797273132325798205615222355608451110806307088171069368963198932976897649879329905897275383274800478669979454903807162368387642772076956001412323302584439872387975939152896976719446124645204727757073009587465547295477550349584445325679790538009685359546859049040560201909384300824984715735890719012380545838108876900048799114191214275149078828171723852282849215386167053227498450966271373543210276270219374357282958641283415589913378573196523667892418101362268736356377512093092801287591057083795511766054388797882149127996843337177713190744181604068711844235742902202042035604966932536344483287723512045334836477990961021067886433267600318389402386543397763501291873252730982628223231274029058137015223738209050881124866442667120933465182497044438181057451359989463182958678855178197521198901626014747176399893992914983279450221614777327554151752127661471902813294042769062256320376941744289465473980253406595583391816054800134150996854605639547155332075292474152341132611413403882601194473952351062878098591933244300803311139877013899963549155581316727828862891699467485782155080405358068217981252840013784232427418665938111726644877682018562010995966709648747275319366107772293781469645840143948288781180720172625853867380188743075234668164484855275209881605503358990894749566562135267317890025737264385227263522675333428210060936786230153605066682448370091161289414085552855091725788172493184406344298952488166372068053926915358950094923568347104887848643949767909190736791249913611741475335792875766706603736205191309094954100220374521890497643940072113780274225387610632466575053494853484663473835514408610731374601411480356879698706357429831165886482877395129727219743680831135380941756255931614752042447337880076009203587814183166333190774771608337355926605682011760660134500690733128514326713935837747643322623694911503226076863438656623572468890736804957470035756421572811797110811321965525626938645369250018087219885274914075051581621616587019132920483057233199047455583934310380884286415843786785126394687023341214025233807483182473917368130349886200511685457153103956289555171747575951107640416969640968346869754844484491214515744638723486113121157567051884958491511093550942979900751929832345805276472473414817999453201826910083684180801493817607720522224556738454345781087128738346531570338793049567307065410940766067852642813734831885551911894895884706664448872364756295139070625920230250210900214783361374159465318877117901873449729864537046703426521512020122495488409860737770298239891312411687895474259249784990867363872345041547892280321136307660128984595641552674649161589799367462499009879852700771778105903954620119766166150353665384774763521821612768266699415615074323974650353763082353430222055414214497976148079934936577704792698112896239285391209120016270502390970136844908971487746461934241069925925563172998767300343060544975384889052248439000999367412986758927273557898490642466823594589725625593320601631746569686855099445117829727616432862658630737832877288633888050327046107107841321688904527416098117474203374446199868220738999727343797327856544271687380478136428781926797592006332315312434702861145453543194225159767515270163895292811460642673274185118922266453601528661569880017720118068233034457827496743123580970498328438537919329484011861897409060828707031635225016897321782684159663876857910462244495770642766465398065033637680467790087652585614182019778647034392557733591612791944841156136446667467251350154019712559563251065821377933850184784573679497486942808287132091734715938894662723782089531723437386087742814786840234853255908369278241927258722503379634873640426801963492912236204911936337354932946469563602669089888152399729986180435448996919368998230518712032429281062476811624097138365985466840812096861373128185230620580897335777035440500030408877880247936349857525555030449400372256046273753571770082282732890296821619892424591296498747387058372402085716985092202973784276312407020147514331808878488088256443503013559305605117065353528582062353313238819850877981841521500848348227019734376371328556454247674868447077809541430378815982802896045842043606388924452422648088277258544079616648857192567461307090090118007425426130118000786774063109062866833618554600159018298214166568813600943441920679505760555430666712116047450278973475106653231565982552819678556622434910931880832060613780636234401189676934438315667133736133057073539392262556874322837369684536474000009353567340711665719947654001140887447174829897119075201940200473118187422039285411440276633718116692284379330942629835062516074259315729567408922333574204383651353856822716426822857297470854985594444353088244040072308181606450968851325598805039793108213213382472884264458233349773081763514181225970842051321658070668532726693372603518197007141617056883711837527826655975224210806905848874114211631583301388393466468651940687910576793595217107825102447271160879681532290780425822496812166888843658270997645597281702164880694529896981269301995211309949550583807230964193402228448170340066815742822766879445632479329039842709405963745400997714714190054692155059413520201870485911748179948913952235342537304787467037408294634056053979810668766046040988557585895265147588961348841694303628283690577270206051856585877240926541853825478560596350603304372828265727871406107554843556288777772057471398378677484224490796180010743484885032454910661943072022988593789528499250413570733477344061320288129476619484842389397417526645227125015590087061776512771566913478915188531944608996638817929454074301868774004897673220069921788173235072731248843063134670100481990917098120452249215274977572195762689391330929869779341974953106448122245197834252737822275642376354452274197115367555363242164010431012210122803053225730389360640627945379271761232980838375985603166059900043265180552238682851263164420681452718143920771225338237749850972935570636266001752783565282778922048754181044568031749697014304536874114822643657538726277298676894435276646776832145905073972871027697759205183829326970884932945585214551251457590095848420841129122793148177410999795563010940629224254130481740118121870716866334411333325028269123821395968384797601779286278319964195912397084417998059480053077148058669281806935677331302876880708791749301932669590281166656290738451664917414896907693756413100485125027556684559124229918646800033115455153340736253145763894421245464133292860122189591940606650775134025150808694147169604844713552127169600101127342109215527641522068293498728269415850477644809734358373673378847641648462898820698018978898204237193640208785391428983316390759201302814139459291354264344059515205451790258151051455884933821665753781430140398303148212665143530818411654405769914140100817164016687347339252333522192345817225774698519768909968995701094489887788024635253469582409017480847690522443449386397309213052583501626639032939357525716359896517423405021887623867822436236351353912613678294139979082079274983311089240825324385430107585254472195279388974653535669284120488625351678354366863559470493743676834229396819774559361642113204243317930247718457822284063046565095014496145475025199248890671308016341185320501597903267580003333594067326111330647006736932918877891978301299858750441604497465481135506474011857175393970927772114484713171432464743440682732787154510075696785510040921848201829981382725184099959006218400442776625356077195505750860141939009480798929779469680166135799748515452584060099132376748354589662251322464337015725732979831831009730679055135531205012325646907379582567024533672986238539203061586111521941937570229390171021643576904261368138323829294988741547606722484939188834199017171349118825245919433696329909372042238910917153064316401720427806495489343573132047232159794038456429219636775867804160033303402557142361638127061307176617335538961150169954282117745876028574485886975710090584120422065397606025605656864167478209721563680911623863010830825731523119107393455155110171680304620567846942374723396366787666353357345345189446556433234039888563405392040539437662930092396236263319608649357490346304118557173309882983489675178380154586721203645944880072682030124392129327193498076999938123315477321992589934272301151880380605318828612301348525191023284941880486595374290798039044685193227653148352318354591415466843031255296546421299325706274314913526508351892352043327125506884971796437030863778130463035928333545010998283534335426523974549786267023283566691492181817028262666227013384055840561227212373468309302689018715002658192913552177847203878570635670402382126421623581157405447522120335958842037560994832926795793567130601539484049707724411752156659634352075188392526047810777055087922222772711796459458233476455529428418256342710084125857017400603617605154525238708789403867814601700186608919890644996780818587785833606390507241213010061952952899058933645439060297239805285276633139889507979633936278510587802346485152224150695582179382334153566755540586673308437707182916400802558844440706097738955822666126585576282183505565706325190333581002517903474647880433963718983106277492208108439549412177013984095329421251758195231346186514474635190389529855982571976504802053696332049778353904183762940681987068950262737129899619826269667990290560524804801947823857334667326341462678317384812019080242815127931522909329126158727672147476879889891255345062466853193078073506755798510469372993224857087206559110765922006595753051204740788058099067253819577999200455369110124736196855081067577949963371637992696907590141999014931227170611758511226940194522881725640410660882591485289528908805773193956727252697888959422819747296922887908000811290053878212391242848379128521405767410181989261646205612278903353179290029031650755499951883245435288201627459060287730009991141287401748440044850746591503052487296650593935628607990689154673977483784278971088709973743806972160860706042608361962255777446863593515932659898594348894770110809975306816823045840904462119410326094853946112606931870673683070396244870053898512865877749902753242880495898150515507032291263207802593408061623303208572956855329301004252274438613074803857645709330653036770572453439713734089040109928025103737369266248048080604205689236215956656977230646794266211175674908198072598962674987623247549866003477034012723187059645781430777169685281991117749166208581404422062984181421413444738502788850321288391425878842014001358294253374195829449740742353328538949788480530881563415761949569185488320076428502661807021330993615568928247351078464570261746988171337843152938685583049674912638553913977738364239100758593955062081583033642549762906140338429147744876112930101507504793493476975631289369636017372109278409084151339699664284886127146657903513547929001755815540568274594797966678902932875829766534868927900592400822801100390135241128770817163939325357134335433300733395305084686798683514392296660944365450430786437265252905850151546228963423008597462869353453349479152829124340869503407923010841364855284205953941093518312954488836994353859897396027752514908990974307203343918802829878477282818784811597562236188921922915060193733491543110742508561872176492088961478817662293493343014409294070808913013516189090968348691043474998078715443000758328225196510117899233321268829736925104974885030330172719844329121546895828168392520889195362600994493294268581009168724731631172314141607664370290897997741612662789370523146647759332273472828798767256751179902189914009104030856575626950247224515013649321237295739786104430015845590087654798060300733343963941876155639228597343345076384320068242824000921440828692086945349638035154766460335095880454757577491360113769141514597800879337141246845629529859854962294834628949347534646075403066930837852063828026736220103338030055614090617693968614859398792321017752048900108637150123242621348946303047971434010326715753335161672407128909733503976225295068910582100405166966681039562005269652647348350288703247328941220812050028959522714863265918066363462948509961261720613750504477585642364106336936374722132367614949419024886995601331285550302840047224406592384777410482207200472446068359499794867100360697841183547385480981518424186196506018134012055205444068098294160540022721240486849532512594957502971882247231222954448298467521258603988929603268941042559827135372969161923832611583523565334511289273425709108820666823316575738131344644345794793571507744826503387608510765260443256967183036764823947410708456936999190260884434655502522909385016491727565763943608328514851049722015674747420177144872671435325046748897264278538921664910765150079676221308273967910620846806094290018535056832176843740105655020981222836706427995967250157629507211880442857736523985961301073592054750086429100081513811575821309079732423515021590783749567134522080507685246450221368257223283857353273755030792501080534406723708741857740379966929911624758054744293439166164749872940948118301344969953629942341238749602272926928195271326930480229504285171700262888809024420823743271066561578764244574462362579420474864140467714383642590244840997163504194883961411097609850677977574937851617251273077890936716859381812652606165862703117599728787100935353371910943804140747311951245931175871563245810281851967154552447973030100520860820700045892291036601786088460972163471595149620276886990895614431152057814224984044899592182512241614460204359066226262353889474120554355995836584452702950477173430840368906896088308783914063163281757100073614433707189037916658903806358490467440397931252000052910579948016877467536572906864948554884031989968869837120712943129588959807281748920660107645824015307311259872466424872935536190706187001569211841906355864458536470187467329882668168261295137807967832265465046226920185187198233114167287459771094379618667501015416049340178292218105369753335057440091227788348367561944548009865798176753776105511404002541821014088517041874510248234004370163995717222820793444347581600092947928932907070071483288692967652994015805196362170370464809077456270640987427297304780080753743550056620263348127146479048918524646252882066565231233888301528744586737091582908450316181370310700009072447295669341569815701305635123584970801270760362108888595831472337609378315732386748324824475016675680686929155405235101674621539716732217730553658402841761351091778335754527542179341670901296931105098522394714089714913072819773285958209473285355213409845265614368497731819143314950388530211693971186465841422563207733199110588482159095609381318129945963178005999179712233894124269725132330073649328374523389228665557191330172324987483210819537939291338974702481266253260054010607400773247514603759891436864194579045008821095821597732655077873906888072244467920305547483207657667176253916766085814279436474956546269786950218104506300885298696643742661623801615267098063154097529950349127278849916430380356577543835158729161501558462066684682048397437307100319652545958429564326862943952991165431881522825836694301344446046312109188484699964415930663562516691534956823034309684301330571614246598790275918373966938570086351604368123421135883160259270925793010994277462069601970754540318652812916242152080490728223864036520142867000820115451950246471270035663704630282579214363809137118235824228915183061729363468533308266069686804742269246217981235599579533441748915182453334704164609316828837200018003927542386014833194193358406745857993932805568125196753206298651696428068197136813734543367018927460168105144357857517863147678732959288084426454316141418415467006935442256639370544583146880923179507812768576268631053005102251455088758335312369023870082083518478851654550110606657391752510546239979866296832989083061511066714282045728932365285887588747851828183331304832292909505758186367755780630406279056991657292055700331717191555197955321651135591882013947249093212963103363329936156672645231067956593397317679244341469633439573985303845285714631048863118524244907999377493658763630583244821713616421441925491798314544020740459246082553223722030876964161389601140241963903465441775271921711124123430062155992773944228829900515526448019351440240146709896655335627666068576615519339862792213933547708889687510272275550150757186055426845777230324112949394075618077086028929048057081635132221744713710083173461760671372516547486205816842737228047167277469645454346140183440144705832832920878218501340534141389885890251600667714760450391375528074215227306809977376814693131567145366330827111618489429383172929162986411058985961647682340057751238438946029162140126572453337263866768264255353442970604229924329416773391794619904620698815346915662332401808181115658242819472707034841421417038300478081703416475639367645163910690310112085766174169281879841054638643864240809778486454139304093838512513136845337878025301642588450677860079438842347940032368665823773841400399346559607081290492460815497820027742574435671975723023691337182159434917324163276247821018475692595651509868648245616852630470892052272916993778097995773554744616187251376894856074149238198586436596589977619918304211315465981111351919035984846116369165754008442345025188754079743502084323435383296528219900613734286171834039222115779421387618197303436387247338050247132444507093333241701687836741505404802508839234882194553895398144212732593709459592854303854681216480409634526369462966513584439537199341012602842980397296056094553142813651774635845510009161790636700018788872408385354575859785013752066716234953860332328950010145843594121203693833153278398491612106553417285379497936052252205898330855089006801499159276343031688364317549107874129836669681738868430116691417780486633910452177999049952594928318168399038134462880133606290994550219462717103506600371958471284732432368215260755667116597603083696474875843889223103665313285311903018861388867931308007332406062322700625761690152769530943283811751748354895643599081865129295481973195185550287137945282869742910714690399981804548881149410464759893103454975302617857199833106403075333227803665503093615989694146535888008736290456061676883672829694683831057946957826535975880692529073298511787638555037402974701889845875137463916330865672219417849953522561777148191264319812343544417423032023531082500718990118389148701674593919281105102791348236344474500238817423891106331768776699376322052178163587534729839762075573726186029405478248526439325254441744003987782595745546000388171244112939930059508918127558564380294579221251068449839193403532323927535581448548608110872377221585086960369806126273941211337401499498279673906899389259195090917904504715882373925875571034906904280475730668174962619101888958306755526653585373660031200814064279094450226896992413700181619384817049855973766110793526615938957224477761644829956294072013498083428049727793054851571097336126193134956845499115841532182545516399579903668539205231570561120310199681214552692988308660923437249155374171356280183656222561817358701096395890730994923532022130576722869710434399393111328223453266431551162548336574561638517115513853894638989165286799940802463523911281348742972884592623814653894961228142620040434671100659000787399765052724136488618742136801925178981934712110504252322846595854257374026772225785023545032888004512046235232652287156729054562933379981428025860781426543089661709952290910363689253809608426543350127539165776603032590758695753276317377447194315303665253239036380459843949893937452788129086608927357724802815600973821277611868696077450100999619456029302285501157117915700408896713920256534388608330525732118392667511997158887148032599590751767031815727725287539439835984192695534757967476290344917924178799305567372228985230553648873250128973276640602604396661287461661451349821144586482337747189828893844297428671686463947309743141237607898884207483405057523437870765749627596779876637421558710363737757361410594861698021112833626821329171164294549568934655769495686983972982866417097848327636054522627554658534179998889829534623447947466478963668632754420273112489348590192831142754173576083909756714553927426313723357697154430577623243197363819926286304253327339492520089195693035333343870390308020677983657546912179356666603256320149891274879928678716574911788386777514296008776731594670859788631046994876285086090557464267345381058579072274814753997539873828184423218278870501251242813426878715762344426603010014395193001178560945307443421407800215698684354504700310504174930686197101210949961341776996968648475603416590866028314728059531897803336638451206833093156770996944682686968376856131797914579564251896699763341028512390817973420952137414385622821595261654280736688882503131847677671844669548945985030559213402638610654285278409527928170817950409661650675642035786551433649194374446609386902650657996756209437511661858123513939409411720449815560452105138741615321674334366807568946632164248734175235821607640214320196309461928104162336226101058585171183790063834261016996501735718793638098774026810227325021487314625824443085121459679956359308919684961572646849829359480513409047070724968087280616524266952345107798767003602333909372860796627235144467250093147757062949214357030209199537065232131925662203866474751569151279230529046299688888408044820303569748820930417381356068407518257968048408803524588931980789087906028987425111094156007642545016787536345277475225620825668401488662764161767485435340963908953260373540665335265682260997696703232343423006313183057835903761110246978012603571138864627206472757778850496960752471886670173710323325865809932928190385003005321786972874631734516242170291573042700299141579619167764554075467707525155185221865328741668154456741244054570521000864454741866971008368586844686094528064905880277089225715839685203851134348483264340990109969315885259962552568551338783167495359036475033638481982076510745039020419882029907783383646110063385732831007848147820622940393874567963782515044906444427674169555313115678988666408658848773861467514040297985975101563836120749900846784838965579815331590940402815438413486137674707874507690013461221699259337743812180494719037136425695024948912901618026741559527122627450641329508906500122265364222084660321962179665820838432583711454365316594429903774645010901847766267188598750383689827601533150559750671364745306371746970959657669680333471193534648656423817508726418682515510670054300536591663979045487411119179892855716301172826022818310414295886734309273503815318855361996566731171079679492311823123325814817764595639945185151350836747695382822994978240618351258222951923090833051551045230113136098204211094224522730514361458191376003509376678940041008789970627765961906063108635885963321290241901221999094303721024086365158449796736799336330672803882507201537838584300969021245025507739663152567421671536349881292133560402188969087899796925879795485404712056976188795851466728328726030433604373744654217460101560512807731751497938246010697856738835575283963393589416515176736742208106405869468379011702655932494281267446586149753798960764810709247151639450640361258836490398412462345983192482226590800917650476021259422191222119538065349136289321997140972770574366570980212843234299133709367811857259101412464620267544940494050061190520460514512576217905762959196744021974564850387515630428136088544162556242347957205153810877866903495655892020256949702313766290803458233726792369648497131908022669510999345401288461281691400491948417223269100045347303089385484248421719725420814879895631451032582043262970688930333133778239327765286376984213139070458662512868675885164151667895084195826623422575450980916992162794878986188796330767068259212920175353940426024176174200488099324915459398999425485401272656285036349311925109010982883819264422424521629994035769566598458056848355543387882254644730340439035372920048368090808012605327094682364847316788937482400068460279462339323015612926137061656016912255665663168158459004769668299951529692538777164159708724869825985614984193194739887961589335607580573982437500734525972694719095920484795190753752745763568573545572660819468031678657888508885919939966632401804112086654098921394402027174948366966026132182574252431379830823955511308464091482472738391043368786751701759465294123161530213986862916047481497820521096392320766510484241458290440027187722155479727618391435421870659734637157124100093552122152347836197005991410528101705873167654384809662436869008500821659795881868462218993559126966143702002170444399714666303694352048261491547387503116227446736066837402523990299470395803494424466740147218858781607729981491371588780949582588849509992629853125602684091236668968945464344125568783780222069766159562156623633506471650519104479358563000469864768992404520148711647968611467469694977242770913319834152735944132820367300549650756219516052409607380143344289139015131901612038357557937646503838602205212763425199657967631883765747388668678565965280828074357257287009828026808532025257096156784707222968762582082984206279918672234367103607993798073351228315771931852287186061132124272454433030222985019207772626847496856388258009280851651267849369185832649160589341093868116418853403048385133345411856409842774753568605088358263842828636002766246249396470780511014364508070939275428005354805782840357638557874408521483721955227727794831306148567347482954765411942419976005304550060462154191934568204413084213725478063544427746125371923796229063916233877458971775103105552968787177829218910836068907512579574996605344805829385489336229352354753873896862714534247252867150724581277325460470409314601441144435316809426250976233478107234234923287620395719316445115580045290107016993272328884905120096467441220541308830148520602980821498691025434045423687763181521322842914585288349537771316127317701963218516820210409233210109422081463998745702798494725238984621167948083215018931911314168434107163702216677189415542795056888147692411701796565036231197470666896956770821875845726454038752686224701082353641402532205229472481014576979343774413066102597213086519871992601069617924309202603957428343407525436695809845331702314830057156886249896467492981603469277396518685217706544259692648973350887419786723836909174737608482026896533565087956238595577951369457959404089824853002604501672135791448692239037836042071173677216107599799745233311905549528531581498649904986351604733567919007564629381512396605888784853478718948059243524159670413595765510294864583019673480342397598097280369740255608000884587413708431457486733607314751348292849801679168675903247955153981846488568405967616228697414763350863185813714932613319530513042753822867563708280759368734027381216995223192371542030753088384777960497946431850672053200352496618098671544485044646965805611542800677067991227394843253245372342091471789297071156376885246563002200833079747050879843635495119989435851199305674786852849615257616649443018391456944369477695223133906147043408333113695338216119213127488245186409587813039984350926099442979703781942125216674541596320649517559007450592690708729421149608614869038229932744756334164978002968286658146631224957194367977045021744636027107919237781118493881230267985238022493824054559498660098458314357740158303348914909589214937411027066726329208113213124162967352561118261037302699591837405225942171816217282963481249355007029200595844284987457981304378367006139530492720712851176877091368269360404738224405791667130968474445551193053616126691720555852907768883187108002338603324165475524755845685941524644901768305057414794383180451841538991508258037440962620904635379204399299399792478151364482342147327151337879369662865172175871725398807916442296899079582435155844529704632652074222498941605693791364989459798109309151600487502322152313674986538901815632931069988655241431937610946604624234429927127269987447120634881082666355195056458724623192393618364334804114503284000257796375780516376464482770281005738706649563054738304922109034722028260696018495236650355413837770209945874920957683212180950010253421473263036138070263877927438323409440970775854663509648865118535199244982161332892395893156400120297222398931618683159436336779228485195897556915783178255748368784048982013315614411994660484196873353849584004578106033175964513536051039672140000332241336230283643722231641232202240522388191946684142558987133516275668669561258133027086294541918830859639246772907356463369196443601676264830007319496332961133158975709200835492414930630244659430588943413354406622092287306698626437103235241453098421393279706455062664034819511821561060458617258310460298157906658076774241737783262481380121735155558180719000870804538667778439663135784575992207508840742747715231420631496522109187832817253429151062583530023339882987606167062562002781918285176632698902607598553927385039369706821602748213877703990017453689349743323317407008904805856469523017927462170743283362587684234889629700109801086066211173605247392688497614536735126928982400025505184415070409217838916263237831182721650154630643880089740719111221882955746576901726223666435101147890643593830153238742665204569640717716541877093376036278592956648642545639764498938639368883368634227521377433275683847879075246655615205212161895681328589934212834367374137207008191886868173680780435490914740258116791849753680228164403458088473743682480139763207119590933135012877853683781838899623686697115031145693866078538310250529834297186097482567558741561953020319931430281294515411019279770052847497305252334713362353302011318426625165169800547927726294581355599617192543358943512872950081001473720964991442465214855335471659445309974588163905047888908465532222552777540055051119702562027717267253355459345875776791353416482936964504916137508711250218649415368358165205726198837880843008220610225672587183353527197054612583619226137959991273148331357426716538007346808437902589350642244579512013434614996924562869197388304733793438490966877376864235531954261291531356750461032783575978012916628743683831702811362006698589289142387041835122374199685387089405589557177308242258630314234664160301190609761746674876271230442973018225529533528137777977536223010053587929848709572883541933738591172657092823331947035480597740834304917370863588089765095548188175526594045240140595802686826459241059735561317700241356957494217585033351558939530358812414628966602541574955030834786425569228178108960536748342007769041455019388190775726811160444166630404320175354164028993779874165093512938586667061986479877638873482042047337659993466770103799527851332394304673782791194333775774721608458847286800358220382604963152264789942344965741767222498596098452664582059091204401368251306978239255021960729549036939968662766364251275560652702768264107859407685673386339882337668407597469079225524197891096503500982120359082897547639988933299366091646079448002761597203411405171989435261729593421180661410855004178636049988893725802124677537902123639215393538513325532792947335293225602342406927211956652876978377574146425597478798153812568790324986499892085057758755584160321009596513624079559735878882092538761757639155686559553201775479666468190680661191032926035154246693476119161736434554685142782268724291861536912824449097515142371825774445413681783867385377436700360248151204541005683648294092157629353536973664298613895867351187466473020660964806820481739172926346601376669756548619567515207159378134291401157530761853654082382802573558883320735651165166960961537910301389493151202885694438388126990875739575343802743123532811658350669178302687813498062218994801392098298390630082268423765596866216401414964567103907096808072342337111155664687164472478571989837705828710588847750464638022560624970939417668895404842939808343598160381479702782916833224528528556678589055684843560504138940958574784819713170636573174366840498251379359890712526244104582550737979239452623167886634231319624174682291860127468641153650915149301739631348486227202854507906975145232088772345122570591035835538207675815348623927745352290573639900774154798671265803854447144257642018250203957383357807503436928594821962130633558323971404555066967866961725388134442288159314575637220137163579783759566456235147449210153274003153395033954292852363948425010545626134230824914936923029782217579282450963691111233272120464944947675996458931481641567404506152308749384237347110749528097754752241010900433913532379999681780068398342071430924239356443851722052987949538537560674122093752841173934726755132777465086402826320031063942948577592385752360238915713310654200339958385827989924655006275760570355421679018792004351856763019357932388038597301856470164110041817902015679051297189197452792418708433693276430039916610785673025489888745250802207641282859838910058960082924559958442432654636736344050159157373395525024784867042279186017561771106808217692129480980333661025907740833688135565853486445051381271093700234062632306643623459481444119074517041656763786453557442549927561945910844268213812584064629703173940429557381982737103347898896264348805862219552809451988162244757683852140436025021896403318107887874748943311172326098943248289617638246639548820939946137754329851925119544949514514148210666257547758808204034281410768061497375614379631096303595768949151720042049855223773860706462904263163119237510020312889776878762019643961644704683980359089507203024777032955195461178228338151473824686887305985577995916450118147691360952296650532753033526178363297240087489349169487211143788503718429275958261017574282157883922936631708394840645283240391173897600743329799555061248114095395300923831405400854498588037052995785548126985214150148835024606304048526611717090584764053032550405942537470865837045787458296940602113258503856736451466793150998273158349310905193841174656645384455233066140153362675495612843060940413238249250798791237371590725398982040375594527439818847763248369129560696186306226483786223652454445079931202565623830217314006499394625213886962729330386338843363570256102634465429750912429424641649052490308590438652633697631343434087049405975640618223406425573290034684134744386726545552757014665098395124436068520545953603777817507332454304716855299022275734948122302604097081060744626601191802081064691314522486869895479396226853070604897137264004677970526789409218158537727401077304162084818149467845994390626309171946082544069405521345218042930520494867201898370231811617677899298920380631497097386378954194602688847367146159047432916199600551300486611776110893993598064830653987678344427006461965125717318233400541665251625911166902159661894883298401341205941387191464856329795073076425291597437023550917053273123433740394820184544650623622534538867768010717381725318786927117828340851736498460156160608603656532601776729695054624533061332446638844267220033563459510805667428366413043198185769078166436597905771581596233062950150167798565379874953346283869061445156368998990586440053200855027431403264918239635959759993202820645461264079476982499533797706783537953198101219811967905136923662591201441552405236727781426336827110489392896667716570692575102225634724185437202477042933170201744865031665088042808431800780686167492689721275267696761669587138819373385423797019691865167000253777644065341093321325379411384770833919367005417648103447166452216250674227600377352899148675734550794813825647732901979338415736672611325693524678636271311262981190576676466957962393223622249919897482239087632460399479229653393885914681990252869425095214521977813558693921273797508552922337832970065980950599264189479353217292527422916424464716974738784052003608703857775464936181464877310948269740960826519960393402055634193243606688036601850527899173006774131438537016380485825707635858261325139471603522463428180818992482755025897835262695345121171258751885350861651076087403129941960300524762884177647355001482376996037730090384733658140971575585409928119503586172224854737579045500620059947672746253305481929030467339397740968529696170254946178468534220903202935027231319297255853543752197749995583734480295310098497273713457602653453703365587386585924965841668366694847162682258522869542011630586860480751117749731920755805267517372526835897551815310502672848505856936435501594273194413452096639586590108171320647143242743718933570994242306406341104033557346123998691391256744911750386027654325825443506363025216153366851115949038922515716810622909802806367374596457955283542648688902369154499977119700806614935500997947824017082857227365826836789342984931084858972250692075073079495493600744078248418755230932260110321018847503243396686129653421083963488027007200066398833721050064535509516952555212857549761266336994780519956567373185702937514235301849662548558210613249210691383083630667388442717793353456845319575833121944302049999145602500146872935383341731607981255992906158593876478928607982578927582549489350488938894036121680618697064115830088646661901726725246529756581101204807907385278639634685319160247142660022283835038662206421696298843226106671978323125974640089396184021997976640842790691241391572678414922262689203687319539535059566258609855103896860598995511432028836812998450385957472219997114809938292224125802469001153467209367844778561288830589915689690193210847387383311556215753498309819798372584642908705325735590308662898947912559833115625021446834400738971339296251213883723041883702804340539134877778913720244889441062070679917330053781225820552157379791229338335739520020757336140138104708856474925510201125289512815820882075811977485423049421165516235446123745999894041768896518572485525646110598718920728331096687703973276474728477111489813516749558258716126563171517517837649768230561745389763232190776344045577044034084987987106004810329079114630160033301293135201285226098799671260464981752270948309768361188303802039152443460402145030532944964587093609813514481104089777685394178962551300963746056087002709235924668733076080681200840355278658992740099903006555600973044644295833971814908283006422165684962674071016188540064810972624671395268997725162389509600434697087294978597533892053227564226104589052513697665827327940454767437284319260791666402651223233777226729837903399566769528528587820918885032481858007199614029455860886862892762505419075932860392257614564895003885765757239269970201750364273092695964845843356969587367413470860981767576616575492142241943296450673715112430063266513437558533860400862492284253028747757400568548436762355539657006006062666272138953786746411391497400928480912831605766252438025391667360367182240806174186791347339912422307170181919898673573705528133991209056081957165860260546719482643945896035321292250775586109272770196786083878935811500968604141565724177387434569201769649378890586660171614887758535168834069286889352426125939171637124336919747672751053639485325958442133309451209802214262376947622359325610044225313673336102173117871546738635388683095594110882057907818974349485512143070682007703060735328256802633455513525450050329871378733935132563569289751151646168787427675199893772263417997031049895687417293347558066729299779083149638209959537504379409857339969406735034244273573622052588919493027774104531391953396420271933194233024353415761027165166995690421476828979954964086490571190784789444111376066105808588812871900259106356569427130554961560517638842390386041596579868224730301756223084980902348398324358767516444136091141947350309969254269850430636221343440687127263075876106322446582293599693891502159075497199097500445530350345958036815866657612377578864011489754923824954611923970650732288873757685228835717533728780460851489232132608623310186291098354337975636559376995439157042748511763302384760210172710253877493823519614604696522059526102852412614358460107540350278037354530360603115179302308105593267831946369055665901538598527047207478829199404796416388748468635357134364144987248085238933873121795160511965861811274948063270242621728849230621545031584527852519016276158788571871874723218274578302778817598264076308976935808968807180147401863122825176809190508195023744895707466286857328807304894290815642235005265285679188358610250356926011175277811581927910622128887253982979606984020981685646685939088163578963196936059719994975546912948733098685576788096526549079962546366496772747984038045827068014171298262367010485268462380947402540927120654197492467929898978836764175778672635736978562528543910543651092853307334913197393120256338206634064774542930271189664054588710428787692119832051058908025614910098252690731932819936843738127041007303858664380593964478821740605866956581766866655301185483349529594710656522592513114278396180078436737103394236400208430397961556613368507856539066254562417692823287685349529509225629453989688015801682535602194760482716912566805666104679685234988314678254486394852732957021951334044321699619837901418252153802559310807720659943566168468009133657576372173232854768481956747919966218700902612882015082563954739578452410202927493323871608352176954724674384362892708048211531641865480462170010490176105883513280725725740861514711663673831704669159188333404663717752804915079036760509642114927472673377870392499022618473329602440206754148508859802625788731531963152870411873038433723407795783084035610759542631332465763574666190112653831451957228970829281768923708692595159149895788454472302602083166586294066823951527057919395391319117878025790234460354553462403265069777583779282495740812918942319660530563969989029464935710391918148764918769303604772873420430362003913483903022048995918446916879315688622602595679715545504036015242413635464474493719732919363760018728477433873539376319704538267634836465673619389676450918754641939136925838179651421854914807249816212468859160237943597019331939757868449330380304938163422773337391995529134313537123378796015380599806408676155643627491020021340335554713489238680562338543347176543972294602243048138089423236010716575252569095790713797851662452599595778576510264766391128848056125679093669921046328087713105410038838280558097900616644559369072849423592499280228277221474203134215180232373601059246097000695090897665876564485580122358786838146348807850212604102407103497579436805309906631537142245590615536957907007298171727279468569680940566170070956199934623572079695498378096439079501372907018304269963997136877736505408215191348926110881291569269430989370189196124417539115130706473093794390818815697050872068895757644642089836973630812108141289432721091681499638331315714333123635544227962023801631198983753877760403224279690192428053202604650765755576251721709794001616057321413070343649943595238415120127756027727494477408083742287331085428005150714412805098387351221593041765981342728107778407392920670872149197297226341268727636938617470576699105921594568241919757571315592953670010549533321265815325046806230248673852323711575993788967582224454987094560606888577802184792151387643182414655149203107593107692309733473803315183433968238869648968585559346779454163188446706424323566671918198491902512786331792025277177234944480612838591827872332711048721675379097192669304413714325697479658495227491379158237313930932245589679829180825489175676119372708629886651598526187518565985477728876914654299329737878529854397988838835391681117362788302062243300200559761613793873929930020832170637830204829874252756355051167488546992043827223877676357351869037148898420761795265396048729452916421444736054013209621988964415121969436413324961938221625658550655450534396320625207044181783870543633918463479595561701601775046643811262873130701956456579196155145739182049863543518911178945456561850092506023694807719307656714393107272510134692550647041053704372342843798569605800767087425481566825242564555428904795007387146601013903088556477820620214320030591924463630726429344823510920302803100550013318149812858207139130922226404732298336731195240146571679366168719917537044012835231719537844006136850807549976435487598186822133991257863155063777419064391528993556283331302140864190477542692299160808468265624943836335596548838552240071343402980927216748523210014794489208445041085538091263863440949019801040241902414463937237571114567077122192676980861038671859052085504132863940985264560023377217445607144604054570562824221981393473190984552135721510897515249414892419601571241220431368412596004276573201649532377096911529910571479975705952585418136040546445245160901760864861314994414017082503779734423768421707282232218892573447824614556318921996329959991373966250021893918065257058822826608216259921080880691737602669307670450143605373730175721694161650348114084560687603119219725993795815170559647366214804925751433505394284272754576411746286778861235375060681360965359316139363768302593148982015809742554999834033963042367609610071033963913723751514000936558277699227532015054634547296209916222402723237895209561571504467834030346125515810770214365694146871665745391377930109706915219340587188371424294122877582137375710979464321930821422952983273773331767028445345184495774326047864736231325048910273700741043589926245586879588386938281881969904799598899220189294835252807069737005057542774710395513726955225851350698892286421270012698175408395204617223105034185489201174308496186656822059916603574953100428776060148960722231588270496980181804867172474113067999131656382882120414010756757565693804232115671608185358916901037879912118282643989409730260297486713463365927901993962110252484010727745736817897823701241862148508232414204809339064293703580140343452640719843544753567806307144716523891863717343463254137848755216080668033995291470010626528078717638741373506727353742033674743310784295942427453896736878811093003788051100529202411787847895335354085069637492076749943306204099325934401762756288342240709297199429908481372656833320944317861149901401102986185944626209929799502622306806490228662622878253643364465234716522628832718469081332673755130108148851867070498930188743694999179018158157215888234198285465016178539799921369920248373735965284521811499363949439742610012286283779818156181199799761658330170863191361479393917550292262612570860304399290559553715196064136611016428632012256278268254015816052409943228256959781989140121870871164051089079669340661885856579330957640866398349378359651341871866499038050319177732203661164210873966954879604701171396265247053906004304344104285458029671833760021900314502705242419614550162285848872241818515847105537803763623062677189482872232826140737165952644031575223310976796284425670527328244720059146719609945396113729006610405626589250151046545334534683758059471173819120030326386625337839887180207807255162664703465680807970966706754533369598908305628067973099237999946134715298814430400242791668530411930908362371768012150050784612921288899521841405240789237532673419783559791024801922929231444549153980847219537858781122497883386785379993617166376272572890582737428521102705249619840963008516513784397074020969783885025811758519198064326659307957690985164091828676634208868444859554939079667439343903300347198483885118967077579447138552146970947901994984907767806289695345102071093617911386856407905165815758065918975336045728643322512827123344880646872945116283463647815084499974723567720121547991375939643591131426490724989305405125082449480582396252117787662030230222775945447435896674968055532039837594678575327979874766561792292425411923275646163827553254540853323681447573416912718209748315495508439747462099148467908811998046421038798613317265910728976545958512275477902526595825464972404566199402476524526409378186750212341357185258032391508642826909305215135481290512276708837551740059418594522620460496518960796180700681021388177224001682629018691893050516556899152018291347972073546229544581765264303194972255337214725649459903260932888629963041346226208321857059930148510248711309413400639931597172598276240741323914352112601771439361084049670513312265329879975455302579185085996500880884292009505846781389053932834639521699296261261081073550440584064473103907704754402175404997357496188171515392936967030496148902218692734760043535355447881440470868561151440850444079883180408037366398111085589494992509619133332722008594450037471402010377331916207955837924499027190605114079257739656957440080031581185775662362501756448247680208208175550775283098529126406717048012947629213281846708024553394107960604644157697316125267475933245764002356358926873457784352970890441497240807483558741180862498411206635966827754975187478522292720720214448023678375306203444810662546224718814840614503216403787293083031622250777756306286287059650903715511180523024225396861327814945930667299374368694265348478052379940713357543189414126828558727869270692062313820350837428388531431176381992333692544361811097233481218289936377661432276428429735592348428718626179661559318876145776024782058077296834950639069393387205225290488111276593987324347841195984868652266724454887870678845115239750508152306987542963775615686521290266971607250042530723395642777068298751123279884796727240649477173952698671137106691390344964170842515940163341142416328971140551600935588232472252381957603377983301825112150040882534448116052960496649558658015206071004708437664373105396101553084527580916589571828576371587402532931688933275319807348204052838761214736628603184503553961724517971146591421906002155356123800638473330810640551430416464194347348775106697000793341747745961295046664600583470239737922524293159568878319938293584068582332431399949798778569988408993315904735406411341557233756133659817566418776176628951503495318075925268166604398164427087913049286404438488621175168791874649996184338051525616339098780209036933146525509320001960185354851841560019889306172851495917215278395824520402109425488469263152333985808255806891525279078367184107841980272284082741319761020735460221274778119931464473653347099070907588733186744747970579080848833124044268823754014170706456279726643174320640863031286940663423895437817152600952086556518639940696370782402749803116496542253351480076827798683799244153486820382786502587468213134569165018462446010575214425872120649847067940097451752426263684061332945155290990742823836809567234413850798259759450776400286130115205238416526094984940951776059660354606282803687385388960799498217074078994380608495993318112143105758230464017483673144774484596320485634944954958771375904928606608975090008097647266328631986316706771616735335368920461524731162950323892381654852661266031901563542167466895642784081841843040166919370959603054661410502006257363975657012485332092519546824288737017740487175715407544513946997072819751668560911068980378779789189921329526575749452073425314150124898601322706327471609525099098718447413359805325410223593121816915928399873735250975320569665824161739004157696828395247183315632699671580778840905057928107589765080466776682953392559433088392963140412521146083264251606869853923776217941263829706123138551024523021535215860331186350436867526706525717561500915143555952380135350730226153407272546309496168479418866088726908512025836971482841926639158539241859107538719886662513801917622411384509888750393147738896619570117442549457133598998650683316153813952281689001833287682852252521757211638167158607999882229410774649846635752963252790883532337205403881142035058328659689215395707363371756369763816673121408313938122799971048400520512140187793142417219930695861671649350435129766367745826531197615297411130419558155936381258997222375818531674568831639909537933048274661164232070267396492258589333100117229437655805548430042254811506035817529693876532561648834393005906050683484298855607990913417580475585939428020129735383272826176282428507452773538773719079090873690020462799166915136815399469381067707040805134619956849019312096094007887952504035405254411187663978414037094423603007725351793016963769972263577122790863750097315154907593754207927851490832223767448135313606193582465068031433857245149906974317388225678814076567901983019566966723535548138811957996488272664412321283813892560110989249834459609187911902934089207241631655510923369579317121515941060035949830153459360081514665127906534780324045363684222536521343038916621899105300784940255013863567454816362269590186239014721440932024643330898925055040154488297215212609248725903567077844597428617037686789623592971937257157424917152611687084760300388275610813987999093619790106285582428567005727418209481286801683419207357040498977923303836665366996248722415765030498288649194663368782940411533287346115667788843598401679618657665651134376573574190847683588126462631734080244885739699584726301603486274268423168846052878992770173586629705922411398827038318291936343736985081687178509068960461571927773157597387659550606500221858519351664585035287413225933922123305159232732669224592820143005886475673326393456193100502091000892432995411956573148880515194287610275391387244253220979008133900952964664485758055214270042981915000312196032951173829933908998100015702181712101821885158422429872314732242700319947607651852121553623597570928567019453495793626832471758100930849918404672666215919694729969747565697833076249232565897830161892013493268406957020158697805117399291886185758333140346051037017878834366381340522850081917787341531516663522006771345788981955298102656683448093980114834835478024945885305355173450108104055735348568118892238895425882959410923760092507826529526976537460915143477006252327574599201500932057458262195604948568200865759260897366537892374385399455445489715564728698498868860631129563698360491732452177336459959880503584178166380480206230744372039262167745036119094041017195047464334781316701564044782299775540607944944479022774463180045123482313998857976092301994445789981350450211264976986820110314023768374104829379906186739781315721275219302121392370948148926599135784372146832288548405146509824062525963699223941292837548721082854005796339296890323846564010528305257052950021708487715611333067460230601308184033714745375421059646967913382942594679060549054905620710781639911817991994754144894539445980446462090990543166123713900713914040995928164668408269848124325924516221152122650044606400190583360948041041539546340592913248121588223968904182429808728356679018054202676950918758730473061219282021689132988009552835748359618178081450684250662638518819742241155159644123707880448894922908249925648291865423250276310811668962699616876208278154689657483925235202803333262847064669628043737350440945522999812041710457586976553176581937055788627285357772984889235616265253258456117338532875299415939833380507259477397485405557828784487464810437328163543315343699103168504499506879925766587730078347998472057027601361250258890919067276405636470419501066815556822854129700950982529298158605192086480472454315323078994585887108941941402074738208150614666854198381635540558190885337783082017018880790936359632205207998303009153786974922552137632351078235376500388288860745456897436806858425232278819937395475602968834229407620336212090914514427589325186755009354375847469296026556779649523035453280786388713149313780234737460173112851445227589782289482983886814069977881451734794090343156457296384057834293738644250409938909802204412884557725811214646822610796879298893267052285055779029883277042000548869728757871345899240910276125781502469373865848239189653616822686864321846850406492983288346465375102945170505986286971611251890252460096713162584902421268665738092434285839004483110307845610465889694773544842987047070813403037345611002517495931349878416779431188156724311832461306196586767502130524969636621798271851514448845940636196365929049143358146983026962341970056446546276079826843909462496077139046650604020093296581909446439521392658310199109322781280188911437533546103647606886703553773395212575643460151377682708484774794240886492186671435082058529264905419006785415618066123897989446900552197052702377057762824646470500018980321176220873489351324857979741515820671657871408430459989207900159904486328799557032950329025125570645624662849045902397505089661667136363994674526398740810106933610708083455102214238232559981054721231134408828962566876647194442120935895308176336560013670022547385342124422452724432864035382086391295580899971259376976159743474293748338784756820560057084573767154060092360222278793448803303240584019437243593015646000644576821102187998225324220166401737058444410110801976920852395021247482342191170340216141004964934730796142806918981499282272451899218688525609071842009308884630150522327623546779665463851031057086655404754516160802261753214637658990534365075561750778104266483639269273717648729634458849438744003308276263437770190286753533914762789292361101925448157258385068752437542631223833512636862992610404733895765103820753854186174221389485288968750655745977261670486941104655132164783123832143392925396499565836421823584758728639196370828029571867297072061631994144996831913003686287149425628750207814680480723337128643465681267193420828067190619780124286247284711366965851410750771937569853163811400442392818449086438882857469053467643076036054353761389111767371542312898658574788422865965997813603545483602060127695299723872774827639448983845154940457272825215056009249374280176328780411229444861872079371087077273472771530127327918943565753988133019668800832817695607227256988546509819882719203026982539856765962450950202727925558555260335486107584792588168513951498464773055368792195101408238716582489886818975805168620242987637052435237609889795651055962916421687271869367720346493119538764978370295058157528992948944470686483032107689180767227628241977974381693962668268402549434053711479916280695394303109425077891243612771903489859032492929672700469392404178392545550048415260810355160596494159018602101496472335231102359238217435680431138135855567837438841087257928749114842451514130429133214810121205651701023272191440089833415504559424628109927607864343187601378785926127618169288830627309347893744067258469130655559946350154226039580388117748333151268980934232265233501216378476246903948359281914764252578281908814595275776720062150595628829346369424864754126149259520030300510255274327138455746481442656422794626539910548696278683554423235027715649369515559083297465586067722190349935038279328943062103605721681940340184408701664470755778251031359793642872305326068788333545224789203802740837761114415595651318490615866636910503941066106029161196523988927208877089410261765797358793535078174839207920375140780168401866425100693393086760201186335256332946464372490123288503664387892344203404068575755738532748545808045191659946209853042588820350461272121437244234573504244310379021797577219866339450789629391958617295854788515633555843659119847603856168558595852195484108354637553954181959710981930518206004474199884189084562213851918286758497619833935097558622645162345441338856084144158720490588214083578764514200206580473805356152442521441537124123272320407336361820689071158559237642363280014138512442080735838535041527596598504249295917049107312923511556487013988160115274048901000564776082833569669248192710005697629736839015475733480593476551502707134082204046066662120985942586765735936206034168142718070884452223128234722688105483881746784367796557061430563257340693373145906676853570377847771875354882331299043818801858903044736738659640672224970547180781682024524957948207001578387685345797290605126588899091565377788407492482765716062391478062546341762671378295699960143064752895188510455574368705344155721298196114151339637864665939514157110440685779801543348265623152578833582201560885167903847360617335333710640525995835495903974568650143210253729279007094210509805625653585481699960226608506810190877215762367970702374194755611875275892255688405285317410116494027385605355810990918214986549700953367430315653776641410304218449419174145718112121258426629357073185999991083973761523021102985623155610205035505711552991594719887832868575099441286011015735180574756868738053939091312872143284853249112420200897850651077036286629017711558679373154567454099897284708048255873408360289010667524033799848127482878963530494949763599332158020267825320803489914035908891468723033785456135618695477697849962378567102702868649697397011469187953845665614512624029344646673474518951942028608916323356630249003125161941124907825100893788642639952265151842361608400463397438318121129742461865081887070313287181461345622600025915849527373248868851665265013720917526121657101671035893670849970734525776063234299674138915294474955189852169643747145991840114812162162078744281409819562870628743495167873500105977944311200454916536183913231636722541119657836073892526387806352692410811805939945626804210735665696211098015962792371166051559517619146963848687957137934662701766789294949195056985534987023397580761832753096210228503927479228952725057664052189093763612674840988438240359538377586368591133250865860040383597706155860278271662304607609239761037214892014245065529081008155308832447338030989946284474301627528138735562455335081712614746315921976684260482519828978735026397590247023284842688187734251410199175168023015626370432858243195857854586778383703230694677278620634983274938272674069513506427973165161238628551720085485137542532858512454867892783517697200437207061253698053848773779496658116999780385868065276135213703601107557527023232036542195972215887794450320564207060081892433479204465725435623876244105128642821429750301348369227485997223846848526765489227402515922503394781455672670757050660699625649052179785811644826158536195530781011749888961330981086353607425681882411993826963998551157740756704353187155688086743275006921017076432650279772701454814674344540583729386237701908048488201319220186160694311760289197765055376642195320649807536007721439592714296674903664401035815781990621911676333051923787365357708104367253105749761036210401772677152562678086977337284731252743720433567526573173317009576677031553929244944457882213457032911863675805705530876737739059119116231420092322230463654005509938197693867068166644183400858070335959521848475558921551104202595499593759198141543903211406146607556761846208259562067572620992665452218222864603904062413915817683523907733213665868407487906334472659185912758666266554464614778270869888035709354781316111927129269026001877047842515616325640930575367968616030752250125617193339254379493591375930324076151796494698612322246313145177605704568106070569869488066666495404018423448646481993149174384402765146777335336345172478433530893093491217117822975966823713500003227292479606255492444528635556431361402111486446378441854315982632128284118205134039132559180245998598362913023911404251373370634862577767690119464862646518788293800117130051682849266182467006565149669618281816174698114281248154770494265964729376154694303916404795508648895391684516109754894802893050274033902486644993325915895634804780431836806055917283703287621602605993210679130941594057018566734417805924079966184702252837722160865975145807457215040175383988427650101232762741902142000586459666523116985142055008733163666697574321479075032986142751752887820915678941705037671282249592127489162622929833605975172938840821727046917510686545184112041358031011386225746074726094194388399513108590821531978411318385765116526295148960364815486020807235682424486145090973403740033945379192921550928624080602257686724938644837841198246568260389557031305899543599777489764833318690889030578140516288309248956832948918459513833282665678979628522744166700223201801971288596919215702750967079600511382367614434994484264447714423724112901168656200752008709467529461321823949791182729460859602592347841530949018357450999615819424279861417147607469022384560576077616129891305802498400997597881340577711172364754510959675204480564554842546782755264820999514919843805272634488487617556334687683328982392735020454275639440550885408837563883640289258613611063156271322266822214694688154150700413621349970389872297523424585144094750764968891653464936996906958676026343488153097104489451692497605779094832472867412923960505977532169805488839153836630489719723818205633786604314227480649969648489213170778034880355181752673625294481534043320840907191356525373256600546471674272995888979092423466266974028367690384979422848626840605733179328467222119799846680663765559959261270068418754567507660497993694292543112175207437145556642328877005522564364926020536740518640909385187229076560902103447730792177534865600836897477454253811113606581640906307144658601999502252452013581284074993139749336071158483702153707271402810278289291975165224759500718263456663800692055148355583363258823892997668489431427087274104356255391936416543587242426659881761304594706929777102954530472166379839657210569781238536007732700758453352928467368560841386136722235470392011329075738115200329319490312514223709496729023895067527721005068850722487776162101616701347581297255081797392508729235244837526776403190667146111658791305199913179108835089400583070134895573127653792962448567623324133792417608401400965707597943711505040873086397068184396323851844516043291284892890383370969029319570476940547150349563781152727082989634397699201734058033735411720613831333602345360203986207823892151341474548325471589912560595602257925123116269876431779925642717665770650954135395028373203845544868259467112558550449028703820073102523097125871418486704609994185410520744648263197711467534397332551943758294037688709787045475108861327721540919152593030038162312548560999392043569802803639544358016055397338226565214737295625251389231732823335526093517461428029430135745409192134474793201974371954370941232094759891599417042710360244716688687766072167014147798986149087588464994458959238813074402506866771116691845586700103249187145812264326775381028501621451812866902554884862831636767926289994512884885894725076828163958582436480678836029078557931316121643699570074801433358387921482933527178153694976453087659047028103573694171604114089182768671146578923176781196804527717418161233974975496308782959443757037108410285292867722992335045569527160235529059305596411089856431959518715261455628606746077508839289506136573141259631675178953408418006699647140634176157503899869605658163481820495458901135867710551838457208165042395904802175957684026919606553759778528471638955944562681760870990981630034068500058894557727536156880337759666796598560899586028503234569209307553722802553497460720802357325616615673905708194752811510783259089776504472242376131631970114054298926870092831676192041839888463515672493866283570373311251533614910275711774634624316280469111106867045194738064039795207981923756260755071075196871474719175779477267299004846962744380627148799910071946205322511916534579843402042366120254278487067684252505319801012224990444240903831868942007200590111668836689903963247818300724238047615427820150471082392159643533651663331743042650660646324299917898079436777275038353544765690578660920791310671258588822069048542622924097356192256673854980369084456071748452787813079378068668224444487597024214991579371038068487619466683530411442937240911951192345354186493494819807916076198757514307453993163840511068905402346276649900254876036386786113998104402916398591789472716163803353743274933226147655480190956717318792656793966931403526072014548524684061573847803507151107830001714293108594759603939129906438285954095154498235371967571826544457689424326600740772000640000102393735221220100058912137412977086041898230570481223812420462533248271407524485660945648064300184826674196931247864030480771790366008210767589088123635568915451151735015675154058949862734970159209496518764845560978137839851842439247713471723553145765217254733537987976028688050120430375882191985248866682080471048981659847614601749978709018374807618290531464378632146219341531932479426634118229362458024079665103217425342723369340664585145485071667835077596094911348803856567688246197492192475813985301964766932667820889905131063215385958665952338297664770711574764813778687862824747622511745476517467316028501860117097157484645828408005245958985359746913196948335869754558532468799588277887527584633912705625546515088034124837149454113160259061103112482007329691608765420289821614174456578684617645062917148342317687806590021063263264583527440678620182643212932435419188401966423295602169311567850566702959773822248829584267164615804959496982126606954441477865477232042568246096430061714561453839929675335722964010997304196004882966595561512017962524133560742061751224659273482696554663272024441972085512822000598317172689985019514237267329241348516904163445398048830275238446208768464882476533105132040120023222740889413877995757090367886436924504685221425594120093425816419085039990714446590546404310453353883960968226797385753511219452591367829944799052405017296489392464173504513017012449968256569864649699323433363095934500031934825704128642373846682495402474740966419832462544527653768090709614726895638893203241316488047485933723484947286124572927466265336446313866214476239021483033363183599137718626526165555295116799577805757076689575948212670192053792812461108618957069021863246709392825353745667216671444133911186895026445530853646831863381561135777398627151117647598909386898543916391151490741089898487575308353324036623343354759159903076312473344010289572460125728268984760163118237169479885227644651616024884753092647003789686643605236068655189851304250296016868422799800640246109767914549409989917274557951869968858931850548310089430694267900136471519675867996252622303107338131507283435418895043748588945599871448962004900932240544540965963725435746832913303116145609152703750088037963351728281403791243500586802391478841458631994621168236532121948844706670007829453320529491851388076273035585872423318232481038346196002598535241488999860571973127876821743117416298979119101511594135485029770038471987886606003291965737281852484838158720334407083827379624069662801842178124021157985784339268857733829483925422731085549748445419598306033503503324270968446301038487284546632907622316515458739082876416769353517069168745529018849921286461164992853827164759820597770422808161582289677152620425971706836503170962359997221438690645125088247829251437316531969275537582506867322621233625680438600345350839809384792106324497912752489218153324110704983816236972263377117042996932819876721312031591583732754331971880411254155742639084728066076509963933898161649167993977203923787778205383395411945078454161344530354616162563383045080109526145547291528815423480343491233100276163219005083285487636143840711475699466602683612564654924998885074900422759600945726768236019666464268775196090484005160889602156226294756150420041082179517507176327857790838773738891118538361377841362693393380433960488633556871631890893873744141552953804406366685007086957688027046431748844045950901341086395410465215670925075085513576803803060902657679733114026169360011739157067395208723183462157010385848123196617017746877850165563987130500036206645704514850435989980091268957392771547838858657439110136903048513185679958447645673417026234791307586490697767356261579337033540841264528341447259344787928174944828005247804923302747719264581330352283809187361657659362289940773443207370097343933650818570090199728320279881855691021333690695740397905885353780793443603513715625769050623174224069566499347635132814400504684516008418663466898969894817267139054664483603910736030287534000130275042407117913638594019601878073520483199507107398296839349155407477038326492731630737932062998300296351583975042355867156487964424931566993381173697897000623425201602535445180984556233673353460369106930773468529658603691119043645238500720920472716741106915050486173675075349636527992252511480945070080829273366282997282663371242162319729353424517150403607891985996340970165220631400865531172689502005306189003443946621471641476010752726656944701395485325481643512148234223417030224127424011479766976226555251724706179410419306323552460550577012572519599365512667602241218233097286646510789715818582602080147919431301889068733765481971239288041938877100784639034865730684162583449316392006868417985287218604334461325762359569742042052463701619442531315871965650906997381275413956357621022994888309214871200959903544264566694916323810392184259667927881083290645799299202213513264676474854481784416609182370012115214584843148623215673726598945441848004460137176318479502907817730121534363176213853220380680559745742982348513106607259031188119457367332868710667806028855534983972938615912393776100018144856511908844416951383892730541616069477776637333024019038142093664811569120048560783211351445758428510765085650480780911371764066460089795629331766746456553283825311260901653952546088147823333147811970796157861561194461044692360037961976903421639626704576262437503928564058537509554340706063619809817893301815808481583716956972341816549360692075450545774626440693312200370240758671631862234083378358946237623518871357014229363000359619290764732419165959657446035143147922209556999464835155652095164407850580963840554244652239314369817496266440240177325517610839944774319297523214903984261357025890342800742546098401777952726073475643939084317973245230322585916097173141333444344572565371505479737909582276733160940476828077326939189899498417569575856736095955755334881682286604954965492153686536680555455032198612088055013103882015422783991783426982157855319490585943937956162002227621947190604757571474198069761667743997708704275562046126191350817254987511478486089631917545662328580778802295629455799509522676245431906291559828255532960804402010074422905891911138876764735873634109252457130435493116095564966559741863483521949548509975734340420292754216584243490273772894198076863157410995068805743088893143914639423011965486453887338306446996422361591003506622788181867478286531523864523479020814480285840521166892692377020915466827748117232705027102194028671576219239749931773970261012794489813377825785495786614943875561691687446774950124606198866195678060049201481351717653501208300278765134823696993841192778510746413033248518358284873859560924533039082225537192390182508452237581795745165759637168605990863859674722273676007376212178311740172992768501165342346849025489798477436898371727842323000501132452785347803433530967315003086964724649731003135487555280000457265734131759732550603318230338632226463390142000544225784905539708953215851543932510595820679458821090672814076281395448217243006196918193305475484398180911800176821394302223734288467033325944686744360883841704304833690457385016442564235346905601058837327584507632011510684623962891927717247150102447904007326997644851308909076163920578173132010765123836309585368803529271672288065270454865602810745526400990003514505794522766908948894569588535721869023564541402078839936622141559008791500483240521970019016402101424744228769272502695650246006808055063122294578067753533855168824446524166941880636050862265589511082851976303519311556499663197483267625572543120651925774776983008786522891544539136273501449763999511318612055993002436858726298512606710132973762285289129213241124593877086599767069924766715895669998984454049963722996292086209000091880264160080088969301369189370237908581613227261625209835048100989740626937213891197370628586833186354061656051656364322134335757169775248547372071058119600487746312394071843775717011262932540271092325221936626051828828277161159806590150672607254936075041587261865844997791909914661886206563079526322816620406322678940466852495850456468395242282884189711984550562169809685997396993540176565799771718823010962684544451196656536766449643380882101977055900669120907353673250632765403773470725245527382270337440205567885191825547577279504451449669633707297420146833034469672648962574053487392812593179634930033095031407266278698510346297401164535968828875398563255784507216548860596270926484859779312658041423745390423209803483920495926646511452354847858349704362582365581448092763342954620715331152365507634510450737406707352290901546739938788799966645332823210836409405096260306145061751656784349817961910776999120108426743385280381284629880217942938357666780440519999828513208280445897250967377764591728335655679484430869679223095411959732842729562146141034637457198635180443937193333094901856206463648869545299722671637225879107790242590884488424342364242215072741104381114867285752597230606033863544961783594397143877862684059687794550864996670228195043949974646535100743554374298471217469108867790264731686410177715722187491378399397041514770886388673819798084423229304319314132027574863917781892106440206995325625882308493672323682371570302058696666810872504888499268322803858948450126847851668266327617081061536197612463990122735722167252744705394396104747131785788812770083928339073036597784029737367875269695410986247446584855683787659183208758933384589639650845716485874105286676125864520127334739207776647134187482839704872539861617884166629791812240620432638948123429741918747999456650058129690306175102378350507500731163885473906464658487244035232080689236694893922107887241676875746613955525562097088954492405948897770448774470467851467294496741647969229524880680411537155255642640808749941521744245137072125406027252553563261681282681143951869104386665158104250172511517553175994031511629148954636877599375038824694466521134295361864344955675441852782409115806943559368660808122036220227266266599654948541229688274719684168550796821817210446904000606950779245787821171659128411397946445362473186149916880718877991209899776726585899469299487032781200146286303601480168476105930410701273915718439225380898055049428150363146608597980697706484950225581612306024068594000733556612909902081249947410577308913013052634409855131359378634379954226932245918350183736091099109440595477766703999981865193992765801170803949384620213824025549837745108779608150216896281653176853113410348435085786907004098782288527930761975882457955599412266529178880094448844336079972621148916056129318249865939052785957440937540966992295953185933979369468673462748150314377053937221976206699793003184181817070108957384009871146021933291113057858589447507097777208784376052119676111254457553552197586924388114800155733498509985914930355607885907452258864208231326165353021514482742208689644980080381413798380731488599876796943896785842649892747806528783651689120653005542928903356471838705154972387031327636063999654461431242103389407759333679229161613238752275673860609482452111997886745175114887477469801899570757923817229636472554701579701253836475295142942050830270713946276893848911699873033342057601934346308701181879048974251723886732282652731905290228316211813976142297299215818715483721815810701833108999779517899576226174193605901936662442656982390567517914506237008352621014020339765877680264504195096686088562702076704991918115983498494949105970467061676759372454507276594198248214070748834605154440804099963099647034733369865725191503740425257094720101869331958106813289409171235531403588024796811716326459782866500989012902462037317437021950315364522741828577837607341625148594586462598850178725169126843946840887909225679994684424609114796882453673719372027196738199257628498046351622935367071412267048192256175460779170301173951314091325116116677380787198436840984134315208531761123866384332238390659746464477842069286853466271262930861418471267579959599499515409968695455280944882995970754285699030074175411435557353047142723632220197233096657646963291607714391155583235515167877149586551039248102186316306433675400467344588897535548403946756626177019436581031548142159805661754556514105580592485224104250225891005601666668125824489386739373617350722129149015762833322620882355660698291118993300230107574815908806188312594861594683725143226950289045918071696910923448013586674157409183443579459491234556533324369256369772386293202413160092245088995608912012734975479691088261963542657902702130044733082549333489556666743030565060814596765634089819383313089986540120713617048578746227135411727950510029575292807487489883772513362538885726465233966610677244374418348103727471533884210759689056202011164526191205495188468567322888088180508870595072555713776422600295166122708945131721207683655426818666718213123766041492573013721367750337051162908828488114071374641575359705981379413472323966336771325776790770790699922924557694844184702739629986124795601750176327888532298745641178590041655438585045563518732322647276319040850478954784897249875241591197114705434732566936886971614013471438772811531888017799081196939192692171543209137390854689486983893804640423766641610390892604008899649077032191229661604991635601820439668963086026159484094450852019058552343766247894860793472209964202253128232808699938626350507172282794633274465330562485746583193342572941403163015096447191893877941887211111293774084834510633576799932757566387366757283627001626661452174872647967688902420801650783494076833243536036984149668878258362643467701586787942086800091844620070479771533380790446097106671936249217368040359902030523716724201563838288144944335717562427513923990684448959097944565235061227498450937995671125996324968033327687325124186318753259934039225641132399153595993285575066468380987539313452950735075447294865528897489347120580034504152419923259852617064123407601120560886260055968791135104785555588550023010839967632548093110046713143558920962989905837434513425884431260066360168399754264291547253926159439820601978027277477551042287458764112501556363337290192728820541305588261130041164460781000310818532038114204719634925942980150815368531896300995579400715608583545599835217062336802120945233540931531220267205360028905124378514781934362448780870571217616057288740641803807757232193123865899238399077081193935639722866517087795660687791541418924401490187739029846860901381977802782056411974630494504125780955227418027208727943205577355182512493576545565988299270236289088961271777597826963140547182800693110711315406969800296069895706058867097411268496982566224172181564951023900194308984439842507114934755724449913805572533040657149862863097142288481797359853205145121417673694522318269113582007136046204731644726215364351240255701262323838539017230711764528177690001296309148329816205653198194958116268270632289203211484102756756746833837908374476016438373564929292262507536910204873748849763022786628796713201891142747979775211547191601192917284864744780634554070282377646119823623619123830106987298610470018460554637885186163573215131823958981325970488251487746374671850632811011747496523983838789757525756169925984171935612055204174222067969126398594003240852761508160454786506503036735227622406623490371552773962964408386146534085182979852185654616931992983068088755443886190126334944575296977104341650369576797885222064209039564600981294323941483814438824299110769278663122806155950747329429687352207058988225647741488384432684405438065820634894207751767842146956152180959160058140380924726054715623159873316584787289502843379285931351427799359951044431424382278813431608200860157947423157658084966424766061675256064803662627110901388430635443263139947479981877950616606114648938492923977699564613513493022825041308885364005860370688476012449458638477244872498880918216665480246395348846727675283587894979550409775094202706915655779517585447858522857847523503227464365449260497591213488977765247439871298257355594842058066713827380262613302254660938826775397410773937181775067967711329821386286016156889359765077564871441141271496686623322875365124346057046764791137237115885335186784741032972880324390633818288093435604848327536967064299419465842024027567453874525002179069353015712104819824820401549538723291437234158744023328593461196703883873948243453056618807340219758516820967086744646818934353432737063298549306044344551902417797524234874890820564314719063765473086989701977027736752430786981626459416745041600165848157554529998292258594312993635243631139598394239280352502408275603838868928712437547181989394535556483270969551975476983064700511889585840415393078773206566627323955856882876620990173335210780233482300125351800107175471810424865143288549714912541899372765763055477591467099722605741064830139105519599806653628827342376144951071016226887201501549523441616182381804704551220270004688476043305700716911533678604350619023714447216016472362481505436284325030311017979172725276856627923181238670457681178393309178747243338599271400800794638773979857802191495753529319387577821859423843410327237019126268326912277347267337312996229479984379886761604791371811747744941372674858743074053329133491001052484470442341210121080261818131173963406532370490630469339608228186016542842446092621344165782130769363111072864217609395428194346133838549009216813441011139411050451753262809903913466044122375958473041977631393026675313982566381262084016132909584154656489481084540573992935548228929323939572264056329759053714070733663059040571999942029366518004563836704288898332324489372708960393885913465024612278815560627902113265429816323998029816535566914208442265998634752415483757445523947085921562344391524165617335463606777799425788986067323033001952835955577667208111221529807513159843049144064784672236580427717044162449667414977258029172547149024490517307944657370645628431001287405844790748904146875222073922226672346556669311019317605571346589760885266401658001331953168462142817239199706645833267907272446414232335612748516989756924706244776146156076054447952977166846291821564080134952655967217433796491094008404449396960934181213793458076747224565353556945216483760852606117971022771724046683098044413653442785125420947928529736971223668995581751750126612322132859340155909218973831359589342965118107445608405868502832147346877581529994886772482192371832870893446884272325868013164145372421517839371932427713684263609691472307684589742608994562239756417070905891501080340747220449604752488431060877013355441383865210497114656490034181672490290259401521330939117878775579605254152446182771992967233694759047023214331238966639718785104511048410448416561041597172933828802319254348735085700823844141586280552344311067832337197859197063574464739093367310894035261636682548034348265279351830539587116579250588512635371354502834039703702665203944485693980471697105394105417276683355434414107724178529958720877438300753009676056520295823249449330784991389213688110080190402017959553601149453700992304877149168474577238729080702744806417023594434031180254473073268558341535016557486040839735587224595351491921500694376304831647020572969235105526931888758227401653323947764874910238434524687987474295497375025765897457041767089645812164033631189357541651688384439855157771314983189097173778429682295644153112429910577851866134202670607240133299128069430313432650093268501230519393613750914092425497361442386341751363222259916423736830669580006488140470993478736444087947863407433829505838599503898025355858898023562786956123796812722102486942031243857203974864972149690092155159434212288155272685664455277133067732974671509289284755292486427575609414806607419425752549883758824609138935985940768334104494437055268831011051246329648599480915510338652238035938558804999939951345189858435005693994185327068883437835945856744269345380399448908859660497219081630160912158855903536822309710757395232082122636440795884979257833350110807714615750174857304259728133830724284817974520493376900435354068352187544468865687734698308411155220191122298354909475244126507291143709652671838535959356634383149004421287323749626824212625714978606519296776642872992649507924900554103728446592701338833252498907161939952035177956583178976793968293203335338488307426923607738758683404125844146763238430342203763812380352541756560017700314592871848976910163515916831537158074800972074524502107999166421196536785362651282308511940229985312123441696351747481824131879642865231552536813943667108894185003422272428610653729242920641264423539887812582734298172946627679396136194988448256125979223361305779763369114911728723028252547532187246939450051079532725365541910763950047253678983368752459495668661818745393588405051543342996845049412347286323243147737774741443895919606288511241343750997027725584710012590806778338396726684550971151625972346653719771268598226794450565628014491045533632219094851255312934479432257369406250317206723835409180290203257552227145316259591275027202079222995708121852150965771904519117170322912095949486475905691769503780389814831613522507997350402154666944434510713634565375490321824964774896249603282760943138086642958130540014151669450216609844128990637057191450194316483416645051602834757415055735633312897081224529710522460059192328832694508338110694103078500601064291773752317098680662613944664882902337072666177109520913047461004881901360062295043018548392962446134974689602067166584476668881903176761091822836018649805689963122102012280615530784801546482825429642690018512388841093058818428645344548951161628774658239114792429845423367991257524717159533257033504769640139065550388101718589604653111527857680064707111625538218885838026495810079212151259941813780466760692362156933559548347588633263089816336798234165333041016815799012103712724781426997095069909242044551000590499488199997588505238318017150930467805894004991344275333794004553003780812627302183275785793091005759534371986643594638797574338245229558420031915216337141515450154324766958417124745507453356564899189077206545645015598054100572753275297394635005534217012552570163600352287882750038811226171668927298727885958032301059145577924524413690650497962689138153293676927502535952800770896435837951758753871398206323227378208671982057180647063656968464150360209004963745098263193852602059226436849549154291143387176565261191423571784018740722291692664008729180690314191315855538189036603663899857934193763079964429889890554789046613935675905670163898155250664353154100379207525887231660941912830413091298973330058503515561008947210716181495765752931260941306461890422329976879933080530179361919164111688033827230414586596636891622939014819308780510496346144887963173698975002686389583132847015221351115500427155201620139038777987643201693556836560098597849300209555819535291047013180989048477539212009451888671016073184031213097371534289319644041922832933848293598352362918132097153311289847577859308028937601145310246929891360488682239411513862475886182075467467998661646124309610110227158739024681772117319041628912209691117347776501220820125480866720014171993233476087201543992235359068509781582897371323986662666751855734353483678000605799671019919279832628465174456802499956779561790445966527274507925202946574734903009040394787728074217792078025058411783995330160908943600759887373106128718331786600549434131040082538201513956004037126302239521301321664577654851291551174260245718963739868467108646972857544596886511312293045823017537308850199893674176094399127297346424315168064513524898212639046646467657937520173358138963213339813021571507886680056185558553186285156707570249101289809135261381455357792410918017877680668275906437141019815247453137287957927600936692157739141597439601434820973700204729632876510853464438378535112766772907778689345851987520177867716856945149069845344742746230721909175573073306740375943220840436572321254992084669069470835091460722123801935200293936487274534544607720256441661855306194557452724110040770175731531498748517322573088112704901494783072129694848484996416373206288488077332888988483801589616529665358451482171354849642814321732645290793619926938570387158247388607093516748382960995592762645541286472187825890731397254135417522014499504892519499525865607891806193020602881753393462273531335048274924676452602259984503014976956032475499256834827968822688110435053498825643457992395513545804560920906905572705668610098600464955828941335169337463358116996212900268100464410471874980149439275491256496454899422199259705090464873102664362004002592450962904382400233315996451766720862650381774256041536097950183865257122840526206115917753966183429896705180578153493803096825443736179831886229972925369741816854324923267534461432374731491445601428319029371825318952377614270744213285181852171668561288170706565637306820963514794922597331308413510294658237082670377997389172627613189242658572103723297989520551525390790696025144943165110818931146714149709453732554733675104557315187682499559654074335012149427631518941464074401978616900289973190679538090873372706661935589616929384768902069242691299902243802081763206320725574063177452433541778490365530239394823146302451242248512565821117539721665851728010993056083971002533492697171042157801131213721886570388777126175560076636062967958897524917521425416259746807775613261425031729945491797896788113546290206737372151022460474905543487276402297016788287659634657146525211852146173717527855682550613061560339111042334771227947872920206018255999523463784070787166230032282424844925783687145480557353205478006296481206916795471223825550542218631956506265058285877473057574080849367244794806249905877093880765250525640450627319034528242954161542271248564415359638916691936550850637117844000795292117267082167163810818865230191820482786459706327980710230014810545662862126706530176535207001400470131637480356017788722104122079470361063036376035217390516894477532020181562320188633600981456543457530064209321123241567163316717352179869006520827727796354395827331126451096353913611515155509742483615941842565775038832696836875771812636614566795015293657745115747518123245663219076036825852184979640167215226275634618351771905490242385546132602669131220742787140651235002375192118200733175797551774341610978906480299777007936851435668975617451127106303061617097835959919826919085571447088204242168668791721749618566945045010635967965557660595558686003249968390325329356376681624808438636248917238550557353442427287334756343672532595559815723327531698814098621094518211217397653445864231493419237740703425466280944176410899042092103274235826719547006456848874329130297089108275444876602591664051074748071086947571158318221077917886004038553179689978485341125659544916697303582473314549870289449196993735619543106708655905268672216757765647041374603144721323323807530727782428239734457922481543102197570908864685123750317945709698544177945438182495851035845837937240811244092064845971799554439380581009938513056312182824330606479170819926818477364671502040666287183648128092435598097661117405433063864988618766303143602901314711658210394914664378047802655971622360072057339924777368655917372916931371754032956288211850363690221660045463502190858002378864504232173803370212441230608268840698423942035133655077084595603748829926815010917397045613238647388040766297851148158757588637122132901130100974273994550598320133650796032942769426061369824120501311684850432697705286107427025020183639433258118701479451562374158875187970478166066846736152281950730573608426212979247716746220435173058771238949123666672277316711015648227352091414676044838421193530216375505781875992224535581752768965921253227555263560664678361011954069355888466868912874719926120486792748225589582481022241090824468248885707885669745384971064335824816491353106136444402697802861049617932921341827910819987729861341358599494575907589937717513112037809243175683158849094751246614490611533543598699122779919293558513365715965440264831710893754285235727426110691246889237349200860273746628091057231325917485900522513649477650080360342755893089595417914824682209385887852749478257672885894266411214440211534850970128280357776611749573578299640742877776515084724571904283324246074055507810754718922756567200552614615457672021819387919124276697024652067158809960767622114504307622865169048135907726892507748488194284942310965840800399066521377674682964054185687811900786597144713062336011753235198453780017413327066906939181310757492104236725145785218079868748512533317287448820356465693674240486751937371470259460377065549104723952871901158043934382240010623372849920714871856502161753160753140664054658184940059457413109518887507682984151519431634392740688186036970561322745844762558106656742761510116398467676595320767528862981303937488561459274636720795206318681514980039784627051305982874235179114503110037637712019095226431674970926156353484499186115752584071301134933480452390934971639037287522602978799373512102169401276642959993642629663332409249615151085564572377281596543074550493336222534878743912124226599055665803001097356920293146046695490308512088680366177773088981482661186733053928773334451994831826101611669375564917480077718784634736773562841279467265081129107136076046179966040013122884605877324794046579231320160586404910821735548174284766357628151754321419539577428084420423020526899771139079780681272689400461245729184402159324483707275446513116046623948021169648377584144072771477720806532843514830323862431190683377875628545202396905262800893314986001980581586626676782291625430613975610083926247966875018937548428513472004675703829560757069212495700055316239531418225645442751170857488661238820848791155617491951065192513212407964307938615887573567470664488963159988568147436675069906664371377755131452651704672750889733377570410197976992390063703298150821981427268010326349189859305596721545650316174011207368013457520095857023916800920449617426579471485676626206829038172585431571576868300837658643474323713179633978069812069709903707585737573711795721563913450290737224444398794714971608690790917099401435912405736315208571288918953494529233741644403193103598436274127882279038867313032268342906210507926733484089876589831600030966444318750370790197292377554582053795892547535045757046078913659938025976379476803903969834903426633067294436877660409241632130045063606764312757138659690957864464823105674318671215930276849670620512412725705783164376155184866944374514666206704527806138659961276205914274930937003553127912534968477911619980257163300257664698345244514357113403841827515438994280288352848733430060660846216086892083348628194462201030621686591646425745979575879608424936109690496741442803435067684768786308751717105587288204153104397853743248762976679269256625077481565896227976199246195241239787632185902821826210723165101622676608419765487470488186913186077500220599286326808616719316632412981367266127412619362076356363705902139894396289833629957955045451727076573023721190795655272711400267177550105500132614683343639069912406895805696625291425548837847913873292353805662584311527235760436234583032172848042258294096840504536360057982727307102965891326419644922517624708062711128518626660659407862047967055248812729553173727702465892532233265773117604563387474066671230326281952327332521133151749315710326138511318917559592992946036915950611591911095011098881720091161078079773957142637273115895970743388097678613136072549950476234771488676611989118319401597465722301025202443820809572756817304598372427258102152155037896077553183957866704268044503597264970244809166309251917385487856453050422756494625249516245638313967964633104406118440105379542149527211221513871467543812016028459367406819922779910404663734842620311761670380649540544840775601790589006031686372347475991085834879584510132617947664821203862116883264231996920308322016042815486719452473068570864580329718083191128925273313307008099204907139921516492250802260228579053004327857138095141887151454214977246928530975812663576137324492591279037946676942126002452980773483336542296888697745898756542451529701243547938822386304140689498526550687141053355763401264591519217130271284948700693784265560336220621954147935184198013858793054564183787720798036086675155609738019924210170996444895945151216870299607195993747403781977444285743608130125524262194780468244412988719066458926387482467202594378720219568459535475188461018578694799941176197246329167690914056522911025883152260865406286432771066197732070704725611412073378435474283845808952689722562918224383497912310883751829917180633726817461105640689162812471792173045582613251996592849674656379170535983080982230156973768436372389112888663490613846578239640070227699763134516755142873414405886709007211305774335936732784760104521558629997044369884997447821754425927659076252892534809517687123570953037028246291210276048954278019512808399357044917366217749525357534201348084745040794305310573667681254800107931617730774612205029826992026852779408307113870776170160644098892787583333062822660194332834484982325170038699085904286491119142838901656355979159846284830090747993880950130346282624329595261203555939530140762344076282446044552737217268453971745036721231593263276525253073991201698301984252133085051070899692325519470195577716269702222890597582437359631872851610492788920903046636540095079324054155478813119555197945873171078221014192504768822892415375605169775364787025977642956650080028931672522187825754057912277201395945429462894286628266766092896178091782243218761282763446774143398649145140661402138641112126625029047446121124476155636030834292993364532422895205722806093549089172036222785278416123150939252943309098390338778316715420710370799118327126335403828586633165761239055551774092320312737530880713352873797556555737111342349774962009262732720984868115044016185344096151860866170699126810396733599085930120599065073279628683494987885030851432902579798679189156211038770384254585397101284524842995981277130108657070594236797480481924873528433929680182056223812496194860066574497580316874528529469625395444984984734571453358531556537830770573365900161660842456230890393723629828872444029305800014338870331805224333270948772453995137503251597030495668274255289386396041986399331047937457086301998601643756505744436346876591560891181547261354211345097386217168447368517494046123219532748168790595132023523743764072120133106167931300756204836530942374551715392863383514350394873123563139944316759576875198710599770071397812377381385346986167234836929763171448887590498056883288195642532381039140796425652801757379534642633861755154507437749816262311454604618485884451800484298195766264559355467170222066673068578151012032690776437504578298259456290849278748048797483527686142414023962065835081047318870123884647453986711778010395362220037739588176916249674318573189964374594377395927379261394291408476969696742284917696962460353991297363743200007872046910319892740695692903644556571244109644245142909695430928880311347273255780450987965820775660492622610831814379750471212675165938535062287524647127552975830616684267225181915313783413657147576385676036907296624621182904140181137248946869221675358462847551281975197256892101144181471461285589615992709421327659866699506448611038417032198106437984565300533277452714952567319588165525953582573370900441421760807137665324310018340779504927051383867190135262296723426325642267098251768743955874123851377251046848559612019277762767275173655521954808398695467024530928763366824295044296165720524590508396769282986561674381452209997925999417397625484927373240688357081148031506780260788354691336952035662050425298330719218831609565236192058350864823294647791801555991101556290300131203387960125260357539861340625266882543751589327254226352073115073421308047570014096771720886109657268772963656750885313000106086633519680239473799903770212137294965713316845839968216457047274850734186366964807694528750478148466386475647489482364701373136522797198585264951137377452859739827488734496642142214731568451287962121213714884587426583361901130487800938576642846022697342915090296184668534560731440495717383710919915447534498192471600395764026185875552050210079327634330116697063902070277568154501533120265380464212992926550773844321043771178747958148543568428825164602911776448347245188034340606442343731610543526796949255442723940987031040710274904635766979753513958893619556514369260315630858904503470797370907187268806382210859969488050000627467730058835684255647352379579473567374915568719534040915313438800348188944939009094023674473163664389219536987356362839347410491218673899168193327943523474934425415480659446941958805022561344295151963241255257980932347232774706552688282118762105896496957916084553409977050944801775965243611447505033191788753442679323463867956010535860184902899309948785356336403635015875731111580804045370578287692408822364525114593859149275774540099041491251052302254615941255312294608039435278366242005071500863783018698038277565490530187277972688234652357818801651863837594483307723068294502377727508999537799147668184800684686971426423835086212265447134202926339766167900807868008941882991911213762279591439378652484793495188730710733445260424771278879466284399132347889937245534881404153974668355533328114426485411227405937124850613159443907878749278904445920645883249353404741398465002373346707858559466472410073231155985800140776482607953841318629090925964547876727312379064847131310576468847770266621210094746012499829474532475559407956773939411413134397380099685319849565259831167565392515901510788820933353203160261265773464892540030275350707638207852584948100044086279736642065493032480445914836463393852208438567806705618369560865214632318425024181625969772990662964493439985679902296255391184223345994486984405908542387767733557732471717981416747878756617772692080620157376463965394806602873228215301539913664146091160321584180254241350024225881191128257880903036441761637506016170100255354513057685893242553374836233649006684554204101793311988492701362341733926327460238724162557251811450390751637691744839606638458958394003610608090189895738192660099849706174945372704710718281714555331822932229121009318510435585919532687559335876781818780401622616723723920812650020927401812225290716188125398318033045761533726653439377769435515451075649273776279562985102740448646741038744955518929747615601874758482364625343199217015598637192009313987475453460481940765157740519136066686912449891474086447662030869390318697564466773452331675041452942617510125998288565117676107873706184794457058369856300408692981487881532856164736770441665292447351011525667526509881590249339982797495098462210869626036944532704893720879889450776777343215978501019720151426384871350811903003866009639067179303828602905684921255373073935763092265664095176348594066216870006992862198010270045738011732338018340753548729479441845776339647879070746656819475740394683372854602466737701587974224938439681241811537801095629820485606357107550635960960265681104086105744740467275384437311358984768575943252649599494294903760279097404771332989358648750089175604086581102026814625024214468290218395889005463449317667944712657960277161398123293861326337755552793664402187633748565458131186309104526768657619275622697709450388751223576957931580316257463657320309386239490844967944010592450644466602708762350720537981525352960019695291817999565064898576030647115403863237895987872311184922168079781135702842268654408024761137394656018666238068525599600353892028530209513587149331586592001742540210174768553571588035199833819681245852886209511572371268099490495128982619144014637303175456692085700965505872956289010184288513763376865571958500488441533755770561822897946530014637363809138220320534415638741375934848541497742528173321837830617267324156564592354677616724970885130754579732316085146809764673461502136761388345941746979494313948105849656998092845590160189184630065236680821464358400141655937905845829904309024435695394770836122975903169629487258876429724259130457197099060407733301672085923333436689376076850101621462906328915496033290989028893231389152702468079408544897454369805889866457337709659913164784392771993026963496392603582113215003471843768944920620958550687007956823767184099690227673279227979776323884905848724298048262047981882849411356882925574430801682698328413503937940319078085365740934692011980903768605184894266658060537716584705952357155583942241342506708064237948386646795728346511503873059858932964028583367099125656795905222566165034153401723659929346896647038325363745118952133558469018863309775343509231462607667388125219425175099735577784005531850559880955825256486299148660650189683805792526354485300459756615099588940838919083972083776456529733641399112046755214883613935933892205258715578355693928859658526288482536226168785170370240444543126372340790071657394356079946331350129413158475184819037012827061581232017178046947711548519869476267915958198353905149770018114451713802382009792910754047475898425062706072581725452073478156472624449589843367668324467419018382864457119815539926577648028132764781952762081809222231899615054528957191037631348295420931461046448397341184981292409502890390790119824718210598139764100677013365815164331590717563378987582604364268464358029942174706296202004994380059440366162924266042326196488560972081075545213591980820743371173068779334157855422537327915272448966482495589805146776864441569251549708107158776626253810034536550487632493756938469311347486020370004676133487179705237799350697912909239013069307525225997305044312723164580685384406688474822025359036530038841465255367989670051604867926957980148265239743292193150035505228195507865045047648918861378146834588867050092614190289383534892041965601995006050710535963700273637392889405737717239453121847901482785534661153110330261325343559427099445009593987662181788121781290994989499018351844436434680763045103546582027865352229568893625971006174224865406699384242559282385355675614177235611196128139694502062784305104027563977249759198563442136193287229511187510438713014094577022940354231228119248304704077911477455255897097082270276678884627123489649859329356564536979018026845131033678175079919492055421379070747159647308740601632524955430332269007382700059025140006364436249547978807956792679905930993880687327308244555408205833458482468805183629845579133854618226113973671794223774347354806478784481847041123123517570021215544838740653338603252823616206873261796072807235610571310607671665485297525502137808110501277762957063695057293011008475434410533677453415978707857255268664627285042870526936234442612328428790208766726161877985383503889489222003887085430212239720417940348181744072147003616172048850298831133225370820309091605502598492382624506037480796975042685840033351289879961841540629031562505260407941409740899507481780714033022681581975586206546734687423925212156784459338823904490785441912147858967010379230354171225646323136031306904180500062768001154982321480640338002466688400812886514163690081853850731344881767575911809592202328555211129678991634424743653995990444286647091322735351279522553824299031622863907224707664085272413972041127972983488347671914962447636374902425567373700415825917329412517080062536917522133263391627132310186657457064190159822464379760403927138292098396831982122709550679521371544992572712476050539715362782656564856540566429802242199814772078929302462509070988297164430195901594941280749685170938946134401854063181061246430691116233643356356809467228406703473789925362030183664467598087324064986836447173542418776561796551913510723823066984925862653791851185067894182936098750201567267162897133098016614222208864373924601523294887563350851840592103782223419939034573209771139006706936472904275678389832128019986197927595060427936361669484225247922170974408602575187241987476940724916369038923934518512852284667626483360591462583748524325039503329109424369818522525751330112508152760390895343519206216839368052664586491090053775202353941428336626921844936202776287427497187714111575473953814256381623412540899411311644039579942658031066529158387297497931674110861946655030945073978068149521986157086500443715133665483381426114003620746441670096127813482742047497707689090142210295459197865629989011494505328675414324553361865914290926073625834485028687468554228682962015756744745051967031755146201691574879583315164459185917276415292257517191576757926462917530546976556814013961340364570340051057215482347634356674917852685980469188506897750181078752342827849142894422403395172527468675378437595977253009910662139037568539132380683882939312280610496938179857388695525063012172931919059218261032604534796376555428455782524281818036105925788893826510730761265611511373843399286578573028376647034398358312657284833645359619742848373588655214161456356453904360263663652136210676770404889105204805516010970689450502779133958040415687237748264414022248688800951270460001772132918763040947945049711866562600864187427407704463495223286601323496569284060153843392078872025551798435976954551093939437827607320361482777392659042592382874985738437069751098364396139638813039423763771055950610914522662477378429904118736261320182544726203663386814405053804921086331274541407795664765703178714529441906133752068655588479766594165626629570404764097400653473302132380466970217638873334407290130345141060126431488572813381930800987557449789434736007176311736407882264914767148217793463446576129292969923466165902134085228285823516336802484073619272545831362466912288599247396982015342213691897007313201762985030525422604220586417013916974662199780675878396643863665922576363266223477415638089952768548646918377289864298100730063827694854450755183158935693509224172165430051005981352139463459145350130232496388558591294490220514507102033991220298804029307450119628278661314547513890005180196100039869376946068057647493653143168295648238170747832422280979569700604293223442569480019250750996234743762223603693691369983159893360930433153179012261961690578494666190806107812706940930744959575365811689726825509534212151355340664442056939921427183541025027971374630080879930387374697613582803073042106038047423213569983644771623941789287392594790064199843370215200493484901285043999818107920622855515006323396932220121399682259788535293604384564654082490658380842578585806630981751614524725816963066799139852664135857201038181742353469591296951063927217026843045681327992176431691109388013048731541115999709270413164429253687450821737117472675974014891802276073616572285840651174209414252614423088008176254122379366890651411267845571607082773893513536529625325477545202296956861802851923890676042754053382412421565997854414193818189357862451310209681279169544107105924323202030572351197084598184736091855567061807467275898251857810655384418901374556195086098001288693591662884919579818872611480371785205158759222092128711559375563483615455958281400853339823320795052436531473649519684599783708124112673284008280078566548886212203314186742020138590923600962466203056486559500402097839062508712942221091266413041846072596999393743395582633324803320443899510864362626618219540048115387749408720582284024948982254899974550268197413214497759433773180745094744146156325472674430148610836203370443477062536338445623829934105148377719091056478314090077141177408828619175894199759293600878869655811546762165945526324656482018681704374387183580724425389600983913233775663521985148655845000903063926462444486475000900580567859007816467682665492223733288570634506803277161612870765636657428826485579247016887538981437158852811376078771886234430964406149592400117368775234066718453136415085288073369568853794191183993424416268462905232127862917572619234138742902597977955629351372868908852111785446118547718067448554805047072619701676682150082909415260235769337420605022556503167706604219785186944581954319022550895796177503123556828473184827543204248049617992408078144435089476726493607926083588655619494012548353402714446473410388833652103669137659906311263892373452726196009920530125530047783658464132437208519485174077909126901220046519820685998424808905860123597751846986613879684931503916138716144238003576374378419091213392209441411986345858079197410262796836387875748213146248772218827870293332728553986385228859129715515130447126337356752514896520088451967882489014061494059034135975951865273713283704416613974454927220270694501059633609616473655136592818641573973145704265607629376286663839864286854296368108384107254164354953770923301746114643108468750958260062603958321540125471670509947895981879365704469846104463483255760035512022528232231545843581502484235928997441430068378588139090869416929843390319557363629911187365530747055697643049723505054055863278724050419941833212638822690016430903209142265796213370094899947933491989652106678705944896717728501836247724100376292876813827285296867572035324848911122797649377591190630710847375186176359564393729073375472765749614875850895847999571280933662180582189241536272946038212694638795905045210953039627179833191017103421418833256036598751917382574490952364637070859770801049318362760184505291211567498658238209232765460507861006144007836446748723957246405376377443773720454803312868107212637805144456730081199515586925415728348081462413183749830959663615191809565310191915566567229618022524112788213476377973337305187945528843944103697833344448722862723938880117553907400233858388323001830728737632749946190513279696304876904870383142448146225316064664581561431525248120051324358343459333075809532366199418290215408865310421776221037572228392592723551921898308070273128359712933696648604998563649507609887695484011938860148290138495283415049243503241512712603641345011853675215511944341095975082698983399199268481662696844897299807767214196079506171313749119505021360124561538825510259617220485589266306568992304915582933630463831533175022794496670649748654708083750390003699349024850978681066086593158156248591559564125107469754649626932948550252728944323719662426315877942393531273833478359277156578708655454941965876294602022899986313620850969664552719294208432274476086182418171109073822734890766601428315861810641507515602075243217510583195145425613967079208759795984929517208933418357049756513491026671818544930503852608196069088608414547961755898085517168851684518249712566795965264243257383109244888145559750346243144372219851542973584377432520322649334171990116799003617936023085974992673362497508265567170319010591540841908623800651682436614263614802723697950671318442732378958695209358658540452377811325854981651061613355217775774216302204766346128854602172648441569974306393878329720243512629904332873282252355961408279186728075384661244320211843616034539659687437382299122522149704586287305600645717785960267748851608217328987840959139534548208479795758355529447414076380238711329950170628063935244905996006317398081082659342633895461192299576963081761591321808200346647100590970156726228742415693786224905936790836622631831522166146145138644619650074471493778669836149825234304676250590517793101140051728779707936159288091739864642410377085739772802599309738286246152569152872464444738701687264368295836685703629823813515283158454907273410067702400394421158863191117348362191999434083319314545656131189283783995091910553372686583125380485755448776458469875670201594438205592129897806189789410278776508640737910548515002420520597542091596254944748677092876443558373302883230077079172824426750464556375498024227284349564888657041090376553035477079282724502913320502120797044277067897123047506554851414120012936823980625850869638280635138552307084730148790051249199683909869912072199277702833259585279817759963304956152296399473033593805516733884528947097706753993198327892526715784035383761324776219303926917660891202714092993957614951938731795124734926325794232617213137549180349012859576767417814708149062872131433283248142874310785188002869452958707824321722234345362609487928206790312919781390856443474733496815927741548234308876401577023714900254526844897674139269474924297925232856046479480012662681064432217761910935946938672500881668374194584948386209186775813855346734896820300893154450419587622614621367852576694490692656300218953622206641237603955218345182706795174972216128522852527911676667440614115266873624043772739825509690044319911902153888383128693234251600477634421659320053729845109018706103818162851415944612346840547483434641631355766012714350795684117784563889441530322221027860553597569969473414758251216128949288020275245539412969375584875008769103047276866986210766663032438394813766965800011770829238584599844449787600000291267166562126555643358854093417278947695402178715752176781645210003760814671297324588716131192365961670099990610703782763124259388596142431153407429945097867367401361238828241176761840009333799461989659698328308735939508784941138030369852932478714279110926052252121862458306412727146642738781621337457525938601690435265816789079679444577190606505873364228484389004663146576751308138612820181863868729148193420773523796269537645926857091534270635942285134730546421967060284652286058825123573029752433365432383848490355608439743307482252253067870916880706049471355213465640203685171645325413724092139926329763510365938459612885383105666728040234687093639861745818103041095760135677204817120222845941096568518415060185208730954654450228405223672720674746724169849174040293527580590859886025453943738388601150410715697856865328378041881015060165129507913644356441140637236051245741394806230149070162595041230051411038560397932395366355008594998211605104079323702475039179393594399004348526365270711657600050724609173984931309457776373739880887570887215243735693176605498988323357408720647649433086869301653055449203655724916277892090937463221317187324390294706456543058085112262464792012638504592609717263781621718136855297507025684117895866202281978698564532102148483504392855457532072251021411749564614376037587539270347186499268226135641938770171384174224384779028054593354715000036450338290568368910916186490279597054578360905665436137681291294687588225319692479248672563956396737145448819613686233118202928103074027449749476205756733530037076540955021772822844640924531163834839625445500254835974046794844291498436085088986967781928808268802683087841828390072194483474376136351105534288377991683384444086345862132689890615767493122488497870167400625858629694248772201196540930064841755664830665614824204840561482602650548313483604053495496506202802361118595390206317747736065680643357403275633941016052040002721153528762737249804795594713419074569210212353815384593086568635610621489750508031594595046596091207707850534610745004437812147562775001343383915921582587550301442833231466550764030410647446448904862248346463822409378736645332187517874997273033544340774971937222009341436494597724254368724297346884662861590642357017393062837297980402662188310715352301551010176099023289084200807272646014414387477832644854662295186055500698253777170155122134991783016323892602115212522673973323397970417809110691032987436399058367786341334129838437318665237490426453361310442563283205413620350762412532212950583724648777063223162089565294464259031742595211737647623047771258848298481349994068304462098487864579144116554634040795959228481940799819415628327869395582367976814373695701728280722341550917516780697138442675908718589469832845086263229080576194311689270758953623021798503268955836634037427456269225741777139050111235641141037023034406986139649777715652468453875314317242525053548666237506628673486661566730510619844548184446953865125460118104133020292653879537150148977900801950816210850716210544501952699788256383204742148430139284991529717353563787776762651133329065186463958384842090853411822529432687883691002673342539058509200880855129749748304217852482911834474587452331434337005570194844332615948707542792431407755314621378405668152507671897060681500191310060215690461508399708606451241840724345308695956207677431051881606115215820806456386294082954671604640151785369759192410401612870718806373904179124303742398702386776101747749651724456263595228918991635397361981759937377272244498713288652192277428836336416118388183742987358823723448488419827903578979127071491437727674313369891916267471623552791029483525118581580936085499575883420518598911446797906271077150775922912182824186319682687349812647634205092908999487452418537972391961512770492320395767716051110939569453768902207786326063826986306617702509478563283285584792706492530180853587863968466738386828632192725843828519427757118958435642046080480413668789200604108150422140062732862736841193486073499303825019846943884688295883826443715487737531149981531750102710327815524816637371427685185401416036130316835843328843133356657823608032322522883354944760854083246360506475466688412091457851116991011870299669710281713396990024256838270721087386042480787832791148061454293326979125034353426877623639356614396357797392461564885317327062026644732335406087799408768130184534796085191462402754856226011288409834733522357106823838038965172275532437245936450062633944206272595554347313443631672062061213041593809079727507573500690911170745517699451938736933068601006530953403834606223457285854304461037141568077939178117665034004164935145940236089515683223161407347364100105492782452079883626070206429549182060848168190987788037544245302987831653705175744955101291222973731910415276342065660052243282752167027042395099538555178761104441098279233298654593920673526582581891723720382043973612784188067180320307156257216689476126930638795630444186659330637506396829689571673550970136814957749825661758713773422875953077703334579642033696131571248399160795386657813040320468245041603228767471564949876368116446222806472767888484745101127075015610811678531315531497489291061634992257356884786429892117135962033070065087728689008814327400808898923200876893866199309899609765998954477322414416569459656279840853195135025047176495345759718693935412857241490292380890207090550335596034520699787010011706215674044839910976440572159090485325052265678776988556237836220276683492121883314518190643897418739616499984895895718073117256133650136994529700325309369130138946799723464680161485163545355191050374427213379669837705334706652250100415817641138086393811079977890733296399797511848877638588107157689633048202586210373952614815084448720778959790783270492692575775910664556887136199645054735943727393551680337911270031686932434401769006743646729602701427008547202305575024416606469116481650704541032499900912918903140616489820280947448726007746091378328719826331737275641618362245220096165657935228417669459453656908029227478753123665190804450201288072119627179283189600655790307690123920975658980523090085949682119884957324437047718173817986400865895571576839415675799215363135633821264537048748237321933998698239460114606153106270774282472757907870176772873816716813897017858863966430565248525858225206232710887324855230371806232786454294012760695731423204976298311468140544778897187652664344947977838248322840660887764731014555553424830225055949823157116752844052622820046040876103225785423310713847821148116932081191592818866873034411958660832290421060295339395841099867146181639279194483138064723434580550677486345914935341808736100784067012743701336486433709563161428200324788024537335468422472400104944074707380130988147258368914461761424679638713650918945004641498094676886970189955456431032352455760269560075587915074971053841979759227536767121665941354713138820399388419433985688650044086860420047364416326614896904802122247612446431436121790489498516000848481170119447559967008403757491813210186462973399846739643619166581784186835527061380757328968098159942640164644854432541900425198331319880016199515973259103462348072833353652130791235213154938508315929928638253763455686296487490731413447197782359494044305511180074830809805515828310706448492100215590819457589473876844725875187258318725491995339491116867774102749457820450281626762685153880560981787247620566118958324812650284165127624649606711853827685503671697207645497843401411580578048293959538021015375367427754288763326392913208629160593919184607735181427098372949464636436320898693133334318899531352285482000397618419100157786677730155993282321822257099254908279160417828047451552704437954704673822412009735098479263547435177193916536294355694433296260679920934614371392517458526576609775270001223647845688843809054570735675632220289396574941009758520853588910125005397126934307054850036707746194006638781558566272316527458027942666957911754071089525115240922762052281897891420597774498712280698120652803164692607600439957949211798934682443414732849900449625906854469647812134520858918737853404423573453933659185911958738815338533459425757268379516623488852022437067620467983130477015617331982169767677348485564298566225925888302093393303742176958004634395906216299458203732973559704823950431521004401965867223037380555028591330869316262893643024192937044433854792517097454841582462085458271564601774901377139198682588467622043783220162460536320354360483227570588050936880123893258773355564462784224104926210539906319903916206343886759031539481944936074478235236878869024372654984258511894280330846541429579959093627412934626123606709432123089680105300060870556153721873556462101791796768800319902171181434465038025475047092461498867186608500755576969078240399056820997279645377113762534360582009831423934458543933628528418931438603931441556980843138479943987948950410780507214158259528179454344885323841606461421091241187771186750167511728460861495553420108642259584027432724285854640492951632508383923678150010401333337510498691907653861733768026158419087306341390650835489581761888426042895367221854007931809585138366155481406081554333455484973078193065584904302284137486939168526210730625531023284763327299489510081122956063357910713598174088015663128343934420346527039023203616716666108220955229777511496284971525512679571381358249095343700714354257657060299661718346953544961644863435717307920959423912885623207746679431334741710833427456927105940408297733693844133176364634093729168098020177436069579645717138249958830036295273428433327401755633812367509786779610925477055500481550176332920118008962281702812982428237452563429070770216741250734379355731239753803258337606316581299267785930715732565778128329589981471147875848425759932279651817157456173742862995269052732758126250532791614781638654468782451212359013316427978395861060768310434362454595783596736476134655695515252549239973986154831912669622236760811995293621609868093070056588306388412261048693374079305201969961473675441750219718019058503575827202787785490923090052948116439514703233783721494278421827475452434243395034997649312933306102277165849067041114352371347547958274354673532506391385868057470535526551982502417843254246251540650676710362396257052741599076780802216585078620815815225676436332376035096241890217992243849095720121794686024363303768666235430378230177862918713090198252729867448433302349766461825199827981204974143187386749106225066745802401244944564765023226834820740967680495065684917128953193694049993564236450610952144879489407882515062742148387579281219041599313129147658777999949184733061157688648542215183461180218041558754217552165456148161870154638535980518570366090405540735388920339261750854881222148081471623570799581365064306913420713573467304160708230188800607733241934863212424382270271684024404107371390256904847077912643590869456342279406374702940238640763115634352530902671336590597444896891133711539622278691170474920634252692809344536296489955001237153589571327785549626136819993146796500311872051100631990743701772646788485906020314458776230263143365047779220328486186539709603386581188149577507026911634398441960567495231391210604240046712961198690362160273382189337220209922384135446884261925515286719000165250339475473638999456648242219939310010157547787312390689906002507708526074194635677314960601450917082112630014249811426639539622830435212712833719000676646994954679303075356020080848576695932839885125419139576614647756858113954144773434641091181772277792025586331795425475135164736474384612966518840944958363953247430756936056173790614940296368107690823799251159617493499462248528324739845017356739667233724850737261402478648125479820168705409347771962673183955069261968840939061573349450988604999643179167936356888178959639057548077406022564806935566618988623555092419746062725623186651898441562929339605158072833047294874639797127089883906917251949050374124414932222097982333650760433383738550309316886019357755538027279851804822366752658342467145114162990222995625203609718630090396180914026451488461895554586540990794985838539143777266647544961633235156850089560979662718906253648067482007006025186694249958806730300987001369735368611021147957260911088013561534406735565629189285168326752156054587292600125751086167016294722978101647078255829351316784644416277711575793562595660365876110831652119006415888547482602429949053767653178183626416568719749809527995850928797378122028250297423821068271835740879238366832722718887643613407449721451224299446702937875248666382087616643767931138470164278467744655392465129513502295445292635365063113464034760824987934354850902881338963646964022403062590190933608111381821705815024587243127119346363256728811646391962629637278129131003965679774696286419487619639794564822405338172640665800295302853311399486844515639380159519917969757709901754198611524855851255646969219136308558333208089857770688047792899138103704963348835548414547882514444802736524211744479425902576005332520214780867533957105876195857926762764698003803955246272230278489513012157555483176342320984078552436696024293375811682386469709156620253527384175117835996753851185832595581705948906029449221529506571420664940356077406972823019971856141342391326542193231062389330316979405023438915144952008395087189535935390232868867855050048598583385718754183334724858652355935031364620516697368156340231407139275964719716100837683855820334791783302661310755057505862682525748071586429113461425067717492106687237193191364112807542214509337012507276210991023133286179234225923068716959194787366384306393720827907501744222444895851665998801484443410336666825251673426814345508851224902833660105561912741790780645669168153923488727528345733604744525967170703470619433609003211997121502701649298219944690068125341817937820267173369565455839703219579914014610523929360824575065924384328452405174488548315268574266920009597274634686758312563050297265926748804242386792022910836998420627704204263265826906474361404258610288695942919544323147133184636308635442694572435828466507904695604492429530840170650687551722423654582954306755469048099441611146333674853871981943253076810298096226888915154353594658566079494644764293399886638523742942224239777751632333350869186817765642400290421565527336369864057842996127949818406861495007198741484299442633524470613745564311327814696670806039957212727747521560991851792704567657300652855309892124623064271619644097479952572085058537265843936866208395397117665887324949703235489602200410072620220823901227169383909672535510351112128995189353640791238648247324006658777936171247923262183860958797353378303686096173635626693141526774965978891865618201056648585829198303379090297872052121050802849862125227619425568680876222247947031093012175178720738048152204078414698836702911297506716424210911568005240528375250767668071281098893361195332707656702480830047065923424374763522280573714576301439594431378340416235532681918684790556630781947436162760549421772755002666796164016293650773229083238806940095239925341538926594873809806892091524294851832756069190085093062476199104160602873207211462208660870281156701718132251650101842271097101135540088806467581441612552052336494077116847671634751560356845622688327775242738531192834943630952881585343686374613808400897878864567962607624172223677949420112321678734210720166125786171436709351059640712589195763641854344303171535784828444852027359025241861105332292676218264140044478972646670444816082061941826348523456271970063226458085688880160429708943256115975725997522881920952422611392759924088435537050717283912301007101921523957368818029205904789765598249147954845508547046054888745348409769622756961212510181512780297999329763079820815386225188260810444835485534709506993291126803574238558229156213834945090884718967980173862227016674217292017401170340188661063505675776996599666419238907543746619063494286231614090185822242679085333692427460354110238129087296556445921951970472524753359694716242283134982944527160969130683428674237964168689275319387555445374436126989663196622847721052855939579902334866464133006225023427911438918264230804546340968955481391631653762576080937947683575221473434293681544577701020411618958755799196713283151262869943743965099428454291754858509581422982022921717506847520822443434613569875709885364899816122121214022885594934268717321453632157326654953016681724842285054162551472288833951724771256295268845559580747313044382621151856039581008875611341777589006049845347517492397010663536436542272158726035361137198727109169620808270251313085490313674396167686186120517414168840928055092040574400250602716570300804112111520311128712014894666810226091038438720139178805854322368137438477764653171285331542116468620726256823388884311673483180009849223623685922902732863854915134955754214713563109548034510628715953946648686694268605412795159542794268171532364819999597797542816663878632961879466486789649089911931966493002575072636587297372260203416018745212552006743758448061476611555855803018671921915006406455139445310048762657423003847710174645164089851863562594248206292490919473843875343291351803250938180620719281352232953366103125903590938565209468839364858084906829208529112711076907632151315642749865912540760687820499657434259095545880912819317906665001143006791975635003852663357552687883604465275907437097957884025927496800829728493045956372433006269869445621935063998067221530128139675232637684821997718723832240666624966293316572540358770896860571340490661079431183892559801499185092095613988993370842641147219541394778109162659189611203696756288053868542923112410068527279869613947935272955439412976308006175024824378562527278669035765480550557912568654682744459229869173729854796539289723379706277836375313065543694081754018131523222765908494044661770464365872538952142436262447756155917039304420894436108335883917560302779825601081594773388396290917818991987268421139265936480916737562411436001553019319301487963888271547203300835494930139202963574117956297989760221050765483069765207722656504009016106076623885508806427418528318698677808189666624901787710179713620922885605929341911363340780113203345709226983255536295366756711801191311299744721454043865177968476107624369232492208161523102768996315034770024507646030087894289739784258340963535522107239006669953790540054653502184496668599538556866576428420477612449086705974600874428128131870346855257780604996811220834538200066713853773090792645638116676914131885491916448107249552129919857040999555677685337972928738798042148027745733748312399275541888724147517654107709756907813327372209564978934400818410523498228538073939863868770490680209456874212834349690487035441993225053529493961184858890630930143334015219101994107042998185225183640146833319192594081825615482778736647155369623211136319306297591403951664738490922388152025213576244033340510287340909564476784187949389905938661014137114489252656207465320286856598780531999763577917335377360211209238629651433787419311552547991559543221909465669230581062298721773396445413220940095902000654495309349958268688820730808639692451299319181256333371226567810232078168262532078814488181912861904134372838275813940512844857143670601342051899156566732986649187760214848096096715277874993227458623589251303232698894450091670057238937874717576255066108268645510738111087858809423552741655501995088942629529821533602311414897824441342494219121745884939303993460846076771394591951138668553049630821723278505928388865071591679912205725892771393477764470944393102424935848322850446842288928483189373457640717077060812466270838298105608206911353796883712279933289927380527904599881989435033543548325757774099171685722449389489635854887297129800311609608684788209885946726777731420079166568125155085420376528782657921191589010686845534423175063901230491938319198911659298119904999850298526993501768702005395217973600402403424654395641510649644817730053829937644373454664849784981096003860900473913999728024511028147238769476876055877920691811347400532481042520415679981524483343510525011830815198099440625417032453275050043361356045320741466219001848707800595626339260304876734061064732872518538012428492431291156496497784672741446773437613032262486887819050143095672077356118965743737310269177214079238724635516508060268278239809876556335133795492781839285018682393973647541331555453185863604103526168886365517277020472941469583473345115773998422555808033582479056725950134614493749013601766834863764910812938034455453080846421708834315492865853236333277296103716430863259714632121341607782096470279705003731222471657235125705261646949109610250042670803598321832202555991502729705878069026726539326021258115598218158702407609608063778143567509160583586555312165206078702758056863644695416605426661571485412801216219096834716591549190671128028228892444479428095867328221840118094544463789504292984779175640181329921023497599223218589082176413000704256544670262475855295513771258248685475437415405275834847698778664402536791212028933593818437860516814943298813381073428099086943231999354906364293612608675542027542771116285679774856358596419813003455720689012766661450929253817785283850234949418737569911339364818957358754351613318427129302740560334201583486579252097852580931490091985784467972120246658144015649922174474207612176677372082234020616828049959150963147063483631728693268260281817223545840048832204829173744447002827552093566187974523403138022063960819410997043850830403354505135340794054665879800056379962210100313397533238571521519926784011278928445529274664989539547587276641435450629827866792885351628394557600699854205447498403078487115072646968630231152672215125358523498565756322195823924462879883843886623812951988157315688545957397278375992327378115844357620896893414515842186024442837583832543551650209862767993886521590467537723524500215322920162025013649792077398911773336631000815123467574752009273097062304190304883191962842726303434426831229723319420211034061687930892395473219971402748132816348360489739297730413602700194137406725464880982825141964412508046402322101495662577016590262448684485184125743207058012649416834067289495263238889821350457228746637765421402463916153211594532942546672651179712657041709751978747363318195240877560101667988536277667748264387651680253857780744639154277776106016687328497837346470220759390891288069762867112377200091270818134741579172962742516119623443702852387313125798233299974441949644515659628853850515875028315592872445027259885174367710530205378991888625629974537628521856476290768220611128962363792502815729194152153118462944359354136531229489963171342308024277114717275482356356659458629992410899299032607156215226542748487658154950687284934132249440117991381456491560870470946624846120204310109133586709459680025836074857263803173524002664045016995510593312712118744653710694127636112737748876392454742354355230350666865366507772936514618724246400317893851789416300128498953348745457385183033527471154314201999656273262957818689019296000444387186819564720021893179550421694820510318568773959278357963346780870339321445516460182173541519656177471046601556558726268531164981082814767166233046457603006612426655724169971734787967840864831147284816443044638163876176228440442058274470066787757783597352369467678262136013689108200247245528579048299676543737639539895522276656316101575998065536111912683639529276460427818412012098342184757764890706143928220296548545261953121238740990280540838525183035706427951839642978922510707794815127934087778262778051045765506553021057787716963228154396960715778652132070990162133284250920362381509550163440702826441966523957758279669542539101574208196727685761862115621646007773672488862592934960793040436934447035152054805475063509381730709155497292280451767837249218882253789314783182643767662974775767366778791549623543484699858035721250760242531358733858408953953458718673475898338910127205004436138288820776223362592477928085585947720843347881844655438916734984050416986258993414285863067014128321832328983877319873551553091104591334254653418960288477773015077887228683245684746634982271985354630646828599003307003215607471223949366922717495224037354561124585809288300055737000777956118625041392252715393419430295963367907323861471737833260354605571269536519601209949951016549768689490096574369470064686847704377741080794343741639476912496661651740205750668181009006714679989943296793108982307569646668899417112684845533496710039787081136924548756314389305364577431616528931357654952928809186719286087223386648195027059482594041596819501983336869546843784506479806761521449290565605568680801539903135849043585382095829902884583477459851714442397748056571975827058786497404294042516467099209804062173638958394651674029420096990492048739554880444349888917537020205345048653918815244672517406172615985372009332983628506716807323936340565446241163794008495438563635607265802820044310564220889731652348787701876553629579141348998348316468825592494499007749905482363976020976668818915703250528609012928114380226512663455398569017540092645343963761722662356090916753063575526784207888685644384144791333474035492587018459355380306979088465985948599142319065732662715923862518141039586968907166539666209062756821286694338266487718299378742677586384439418812539490880619679242199170379847693718052397988328726283023976857077155545555249873247442858808658156331443720991492823836337924737393516660604395475236349649556203930314764570874718783807562490667734756032542654709575085082946608881765702535922248968605239934934748145103358127187553012926030482988131439936527867448472199551527822479509156443923442344430702991080011224591915026741043076368378569764122858693288523737855100608083845977839498381690812368012774706269730890035957888723665133735856983907218548687922593481228792414068052161456519424470305348969587274906213735544859996531107362370223478977621917398677446507584711690208723876577688057088176995149976658133687194134744766649681368972036006694693776651482398040083001934776053280318337814679223065720102166869092950906306513653462777210920190519914169260308638288824795562741197786723773678720939927576655488227227708515650558867732738054413019296363406067245833098694340665274552475257581073909438385816168948953934315276641298587577922693757073353042456883699993419949768289329891627659072233628293434941960551092966450530443320038363036313135574532970087517445680436631779462463552643314560712341165334496951311300799817965912287332556654010070659577162008130803115946781126223890081676539248414738479602922242691175107835309402130885531447764479691400251991694821907338773308943956233991203191116788356556606396436326476910019003382519451898959609566464100526516242762923078096845365690895309029734378825378580327406875120031386217181449136289514606890412370744183998090846137067753765458665743459446811465236820404410389155135669271034301987875956473808925607724350804237290098998923997251877012971210289378314322229652512235792489225882445391546360439758080704951713672163206260213590888741764698112947251632072497193145233205932120111857280179762155486172073175459919324553306030033823674473749757187492927703771406143958527841530915062783802097998413124620258264854995739207425351531907368230947777255434491657785056209928588890977059202927815060317076331840182076994406486835117049196349505343153454418771365856658365764516523136029300674170361152901510342553472670382112366550958252726837270431381477809063428654420773242999876641076614562201769469739091028617029470028324962400337384544489339805817085049030471271995165700602941759050068321393389366589195485770667576991140472332084488868396778524533251048482917517201595810732586280904063974949466893253386419448628693323363746237530260496182927224757588619634552307787068890499062018654885068397033974465441570073672668220272091725272289767822830388268023007724256255556285811429774317508681289579507190020591581086003167498184354076689902118394385489314621323043214337059835918874705029843087358300798213259217637928896595486862208723316726548422618823983372803464960411514995385885628580480777041591728681462414062829753622577771145892445500090783418003005720290615302025553248021886701482888564607235042430624384636805081641448061135248605070638864943493665648741572496380385835778822615860061229603794069365942890821375242840266421424483772544039067513794572709322242124725155060315339226710392635646589146218994023586076811690367907294833026403604147508910763134725107358454695110970057407034940568442205417204087568756592435060463781395249996900372802587001291042487494418293489299435369575255351153285584471629708567755047044699720475455122209377160510081259463595218775949584192175845262829706321883593273255985788358471994463961750100964036766634360957844528701357699520417719966418371811588564585642540137224505443403188748705118706802995690150772454447141377885493166338635903207426143135121073376476141714098845195229484257067709478105928978293134651376662291260227169670812315198924303212481098261981077472748472507569305695011400067230446270636947384940515392619189820764929335400514007574589951707478540254357365318560840537116788784668905167786232495414488648988213958736147468436237128820659694641036957842491273307779289814501512100932375791616370025073690285438308262457237333882572147216459665122328701356769310213321901207890908367844420021196448651068080133584494645238904201330865678427586197488928060004973786691819160280079926526487897392482554868420670107688824467775878656820093682244055699756699807122124026933291791981333953063926061386300931832242519481290864422352265984144488716312678158134462384653063208052929113627962244028131105136616362012807981397652182571098393180848534642664076587777591002680334555851072054434647598076475515555806730772564131423573367995490078132749690879819852571401879051644014684364735860678945081336904660419754178856778236025943406137765406614359801143559355422651148583853996489824970095141581512800554839358003350433237538364254088038492062588959296040962584681231850615704553074275829461562490596886311261469088202457121758344712212075887445381374576828221780896071410669560795765662559941097833478953984925252277493659770718984105587966638152277814402273810990521683144292333101761826735313077671574313905016810913978586633679349888454925684507280573543943739235504098746694906503770687804991137229348970248598490337306180686961283884307090822206948149557875700371879164613426531849602597796396545503080319334073150862106667117605617924064073274217402896215841308687482532623881144259928622849806721072433114463151017774240396369316730171354184041652953184193005694897286212071705451725508997058073172852291069997966061077132014428306974464882637202130949731194482808035541587622832444873652312040270191564719953764986603652556717329964485629734983206131265863740058807249968980426099704315220629631768563110804413971966994778480550871372842747270012712640902129566023665134251378565772364782277365313871012043035334506304361810096436653262045933425278281065830279653471616629156906641678967747231090928164467109422376828806903418860281044307388334819871295808834718182832716212096672355815648050449106536405449870281971341551647616427337672760250547027072739531251812077192885156280929991925309556955769199988222322793793108332030053682034820607159476580457140350436221775671394843153746258468855470652367849964290439596729543090007335116919472927717293993019564455535573102428481839532194546300512973207792879872227550510914736844524662872115936684192094439339541035849830794013350219845955979358866099826892635673138632015424598742981253116816770559113025420569109149676419588684061986341300936304222101345954841332305834563838773924804932513137311852965764074620974322621891464261108590758158763353880973949113145517991387639365927933765241929837857612591947464018710451117230577902002955488889802771293016896816786625403418033731314053385897156206420619317662795368598182306819910795629297510862013903324375146839056613411100929005959406857514358846759441187109601591215674484298144453968219534499663012752261425237123168900411738762388061834571181154175150117561674933157158932048820153453905291157178657912854969964280670190977600886992679945839046862295844232489314091424940861644441722262137982726574168886298211240067499469288430920302930915040884258036420853477792610544770081981085092073058090482954989540189362997397710796014562696790978209080716912740006998863414062550617083080312353661440474720510081099161564816656512025366035061223724456794389376573725545403525720211772583807990989996624914766765358784793628450990672848318955537644017616039061611912922166327199109851451016549028785144049266238710163460322381815579308927983614580325589840114305985031984973333733883491695243003364272769420708358233622145460953889062224251281832092328606588876237507083956294382133489044491916641183841633574244360950950849836539044078184587478479987367556277548414242399801833012851712642867665972303878734189389458237928155860675114049969473292854905708314753325284144186401696111474923908972062789746241361726425929996254614779666605028494933555020970189038806204333542306917266005673285628962576732251969611913041654448267476701184130418472013914112445348476859413019599678129537908676218591052400569142148654827965591275708231981376621519855681319129655718688901697208456494692805966184418730539666657592681793537483224987658338614871965176929417804988742957167110426011648381085983613543815144879865632283338950328958664766317604682351466200410353077857388349858924286605326964165317313045648441009929472362758273960434986375303591592975223225872930704389380911427038332129112270788101838802878639731007303570192015321007949712006238180559531549881819682942257509026075550928149571697919227633919075309484691846066614285945953218079346796775886619189930044639026300304229495211885173888999804127326461927142665119184376831290653711358504691484177160531487778765127378406270431209157118225128164129461884506664135439748434944729514682508089285911300485439138579507997334061726651455682206667090376369885517671413667957150865462749555519564833922315932048336106701835528155683472329472490821963222404887631275986435289240258080345866544141563901267235185115762656828399238790850493088433873920433676965843318941237310468099170154007093807676510767550010389158909784003500964959151804381616461837213461014132228744656435969682467108637393958993815940012543249324732224989243923777634243391263880966585613226665811877079210176104596037538608167164069011628066254247970694074403158866856365767420090360687394545482698190571224248517684594223761065824071874904693285816694284141325640780081643766643893539712393447247421174266504000974444094938284594911482469958007036217275449533189316896169443371326282057038389603429969860594243128899299382906557634856511946969685917190979867251814713330495603859557518539174349297085559599669964927369240047119669761593918502641685867711144011842042632276676048961949902457860238899188074339934660960819798404178015788850363862577194971653633622227577938929514885374048185427838706444256258336817411817961826022779076534687753968691221680318194846005712343869721013592792925094314964040913823058822802156604789699341044037533904217323458093482311248443033332451204317575062743862200985943917667554499724688182732735119023384014991806798149950059785538601189976983967056612467967576573170888250404028610148090019911929062319050892435082692133656222556045692337717565294742116760696769467774431409060652328115845394889937918328785495828194156489148358659719211560003545547241315737196890822466347558490561171114936731523649398495104771212915856528375294545112079774143226617435599477732775872638675948230960400031547069114585456610701178055870596304899004006584808630608026171230964189845452767060788207516323215298834304910365583266823195724750095364431696053681686510044003697175080546368907333009033468798835780515257993976042279528554619445728625281924347106424792902002477473820013093444888347919361365377922664878416957645188545560775114667247153981125638186964407188944752975094997795219251877481099155015217671950736322499658965930448268908666328237900339239808699660864069341908028000150699159529126093003123470246542513334225228056060881567685069532384463265078685719611610768112653108849235952103391541217415502499912208908411381368613759898035822565708580075890998718666782130715307584517748621079588890843062057621538205722707836057966365654829283577955725643845208368680754814191935275938361458121250614059627389226706535808612092395284988386159408703250536821224740524946725566070603249934306331411238500861828937856183516599076916507440400446756672883943948888396438489178017739308039728769779410254024541828580968910193414911590942411946509611575013714118608134850291731528886360308464629808564614611453049107887791022892728344961725651623558083567984003056892731563579967867470672283683912991079700000494235189735802510316243815564297478586640579042426906906483643621029262295502182571962407357253667517161772770243672590478778184193784962886168716371807668833552221341691441112223894485986670148435900871119805762654935420161965810684303309050863421894154298736257589794688530339621558943773680312477762268404880278467785327421417628869937838161053217124922486731851868641203113586996991889349131392303151127544100078569950169949015322690852875190708385282350756618273075933693755693491811546396718969334906861934043168436471362446190082497340932938113046011497679985292153883541232716708631643024334477925204877976013126144612509801806734454001509894500213465825069494798802423639072690151262627547318107619956598763809576581246647697925444090575531099516468919615223467180247335960080055720508808871836278749871178199922711801447177089277877196016655705773817327876375514156316050569904552673346903096688039097438181068073192657959284922646037911132157660013530040950144553399693854700407233425526775459594593261525232695903783852544860519756917491610858855760822540027660069139419441589547323265208938551606858361801176272922729452326399522081501753310680662984905836994338815623554546418278457352746621670930889299000366696640995059891077767505714243750512875725354652111711146928007052979258496962648554940272351785528649619714530361985918276022170069726581366434569996127841468117318956939268060695213833909418451603136658388627690542385881141366572651682435271232340967601603255742673460206857232482293144120179658250472555269443689391032741337893253479028746962949591042282785653190759263783148612040531628411364347734202265690749231445457061881502374371713061385199031676294673226589035056571229078147487650974532809939902648392734598894029213706304607399934445396872380222556591140589322117477610454879783507586161295391830138804817324219872052926183223909027157782395173566318608214068305423872993002353175330269661204980470166968645447876710168137695778054260916132793757527607814104323743179653086371178859431746760568307335923848943284079529736396513921365207944050828957237426627890495414334407859417202980860852155949952155812719162372620080624838622684285282619111514354452734746114856332092513448890336587117018802127447047194353884968457680497097249125769990255174552489966603743892569170854381412047515352039326825023700496023787661845549221489432062815786006851169053985932829392133612365632973906231522098595508143224122944425485126213160403751393473433480242860178988240817091672372982635613287740194302802366296050337311258732892975112765633782822290759738953692602550103733593300634998577338291970933662448794579597302908228182073992878230724378555367123452946904384274181389334132028802751119527032623372497161753200986067978158297931971882952740419633113635421572610769728003924228880543309335346037681785892141918409081318634658714602854901140557556673413569545488629733697661441643917645522768175279974420529868877845238545300102806102449042044899405953683694249944468059877326890746958182445711863929842433183395524412415896373830633965000519956729627822429452192369201493886679240070004009566420539044906570273964180623368214651071359561217186653555422245625325557474909164338821816956465064211011804793695103917244656585865031511024162811146657588435514855544716505667062828438516967055740268069482209435766079438573928873299729311519936085989566300540604849315708026984274804685168433919664050885908137202533390670318262230298166556479063317958428523104495337780918641017040638027556066826485653953005893808033126571426827480379873024152084263702749227539983837113515614656570982599287737488879001241551837977997168765488081646677255232525537222670589891823061908814655434908685896151408458527329605361936584402073727164859319577707235445224740081800056596759421405968959077397611061210133306825469601407727794174460082163631133922487632396052428076434202355347926857076637329851176658969857320256510298726341162198869105887507065430509285658441572781499852550217032740638352022089578526507513261214948258543851774724283417013486695582758407868600582654895944612444642355856665272556624104965782501169448954422103111630737415811173967365413352517932793790623368969335882133369066496299254440335039468334494759535741151804291959223140443451257986155972629224139065027707450843909236280156194793902238467256501380099442321647853734819551334597100061346183200288926090238299108933543882634315502991045176546018413878458424259046040236514865099651284120166248932196330147144433393628359130881410014494894450389921452580098292372922830182173121813460499476095073532943850760439236297616821752012635830331082104433387364425930640312027126926502601493763672701606266253119481819137079815569721360960256718565077321797365815816168563239765844875220833187173627978293683862168689244667239196454488049167055643139494597571429268277016063248045090697353745684315060413208387580995411160716278416940847865003003797168927720062269593207514800630299778081306735711171728912065507430637956116458088345448479485422696016637934100399064542021049785185179152039555990541426360058351944184433310306719809646015816974657515116243364524911094672040684911371945799178216317703861430652553725478204884840042185375042058897363431568552294747556098485044845282010400163057446476175839879295421619723629951992773414831379111618938328285805012405605069022152554899000374219806499864857160160005430406184415360688046677227581158539025154067654859043842951429344619154368275667349649295602342100282155561432679213369455787758186412353730250101135714494160401074184284069128033230110502126514719414589043555177226074196426419346726093996688179532776838669178601760977324065281847966315490261838724120134992464388382414857538904666569647873672977281920153212635046461149285367660785288185049297991320551985763982089922728981900149393994379551803461555134704368708197215831213552201201325221702076378127703340113123599791536278085255420054643416058380635667467766260904132548289667940001884161937293808036972963086637831802450479801598159259712528934217172550538814050698764896537147738330918434680112518727191635137322562495376819316094972914783371849111434718700247096581817393221449738800539509702762175626397524744574986968031228864160453616986324179025572708794689985744217459658042230096019998889727558643138922883256923458677795126085809930956447193138869818429169906878583687596753485624539899181083836385655805912219569465873478591063498585573361172827634838116783747877627970839528358578639242381724908371966106123485758526506733073351037922848318463692568166317789778945555038627111064516754737070276651295960074702853057617200792498447144873240010900268962222764476098709911535445814263600965624677047877053577152362744165019625293809491952515925588986669998815020889417442630506001250657930751742165951727545136138989638147466159279383856132161759147696003948240472056467206484720988196906041435551590147295652475258632809583997665357167486494295253709312470075790715675054380539338510205398292738649819728269384915840459733327160955989405921075762048844735689159930622737469959288827478358911464836138029828784842907562790433206270199524011893566795203291125781864944537017434531282159563297312380520924714855239289963414874407623468676622223572571445183549067629211206101045414267632700292428402731350830050713163125215921075558366868332517747696263767365014735084669163614935731312936109208476506950073781064287108863481661561650357478173075310113883220783274046900831990591281344614363262788179157866783609998720441753476024622947218098939626737433571189688919670220048852839487045889361764174335928590223823356589577186731163073726195299596496941448102952792766912366627212663598620482851317385266623858139027746374632765509637194156720656250479104599569377050070075953604033855849051393298047864416932195074558139620930331884656552381015691130967241456410079531845725461079276901768583027534695621189147596047189559066817575920843753802883823772955269452064385443327329857048249175489912397226557828123303279943682227255107488552919912397428169839251778648909589635707830785950981258798961878971727072787342453379516440346474662518006812669437298269915400768882141322550808885915323183814550718539815387224557461409226966194209544196507854173612661495463657599029022842338372614286743882976382931568633496199346128405299057231200035025609502494453260791242166025330513649970359648915132774493288759294666562104090166373464034231176378407708478488204944892378083592396380484572297217540054638014105863462451744621753218729935389527734153158046768211198000217150183614878281433587610222612974889363840303411085748325790968178398518455763746958947190694909250406091278444106769501430368761457979408707276899341390293135461178977898921125598205277312941809682923235337376179428396068453211839728823114991922913400336148289394653707964486326724957206601924715283233346380360242371098689787639099829454451776136162521023054388616221233658593401026093720205209864734402794176270910327147489182812984810301379253629394969495908806707434683035039621020981152732233919492198355333642674028758669347034234933884507816033211960358742160139658745227567998755963972827775959487803943376465880310969227963468912950963091404283953573929131543234613344412780655872533257141474265472418968565397185888481153741615894703265359506605186903812129352192960407859367058224519907996471177283793483971667962893601409115867258203921024770648291208851389559380165193243679247947599173146344227944370407218317584187498440416400659955931361120213720860887010642259910586211984706315711132622085804111535513898271950439037055033232206458574623520811414656750330165962512950614566390331009512983592250820838798973935840512908096142161702929946666215765623788542707276729125730379037815466359093424396556365255461341357917142355198771482039148560518739985775667878757765849164088683663255976611369474906886027519196025215627534050091777958970156237970928634939120034618860314299348944027796221007077995596582860272354599884611416124661455738560747870836667114996846002423822107576361008111392274189893980152664398731565834792296591288088668739857062831552624345759153357231788286066496732002182487681887742116503962106031643652785000575581557374970979928642635712453574510491332651802103565843825767496031905502431383880620537404851567369862740416655119293341262634288679931037827651970526425386776485938066022998539144461281025967589033209648073344087437283516518412181065790235230456224251903113167096364793527999503799454817926196765132467252135565241600190990252753654875060398603862639416550829223594737850985606377339106002485537274178628609634183356176655549589347467545568173680136488712133344365079102759911299399221470396248055536639900322676637197297149730377232850093723984585578451619651708461695403292353609631003737583927530789552080052448269611024699089000815491525182207378990655766353798418013626719319894975709744627435124681901138175838261876890532107172459440615669624294342160466524213639981749065892509628167738132268856190654579784927139560863859446864957215078107139860699148086878603251928170371410697329008977731061840991723997321616940715032992605747172401257128659363685023053264403241293089556386447512717182047816856697964520166810679159672303847357046363753321618356045973708581242247703653671619407557976358285576354314762945969654808611179007520349462014952373062666246935689789890337784075660729337572250203161708103844274971605891374125356156581811194840538532583226476413140393687029092264861983854887441265240752317922996189778422275490015334366187830504892773060895079361198007656446730409764851897924570198219853867772130936878450970565820831361384090213850217089346284080382286617272774833150543874495177720232906482226734093763892208745103178570910137727583877470693458976235579369832147169339970006802356339380216386116130023790468183186666365022554747612218808289430299162553134416010105199106817871359454329859877849194255813734696262671535995558140029634284624993573454797118551100498802483050516290282083597576544909089482970215544905455307912215958557998811421875190893059175479232559819532823989941371032369196325886968618402852273715272518078803361868076474768075917126862911577801732478297305845348536614475981822277340317303920430730959237599631816678567410528768722580368021450616723662079387765903634514402406436959793600547671614295241016619268136150518833100024659411602942161394732833103642360904727949964998812230307717617519086206896470362516005362523323862794088318942582467700890850005518335504553193563327875985453669740605743773009121007893516068533916725592094563755540863207005669020945985744119741010661744939476349711832782624850934460097083121370938112128469326208311666951401580135195614729991050808319240820419592315791139929655867395904915385008277061555504388251683825185241838812844954670248452742529828526583379191358642064184592526559846226969462386454280704497682667207821142415154450669498442236896355303638366908768776652259611944566913860449060510488452159786541469662066616212924551683889525989679802946588102326445503250569078531740802317093356377735867945700232371817380984256624586297663185115810438562796830657849284386027080799681029492463282203934543356157558798328185721783052304197401916416563532269819997705636107189515481332351132073619452011406778632113308375864330343685515426536578142580222527076648808057821428586017263872154819648414854873919900421034984206728174758140688185956875955665213659511542145785040664198905535672625606748088948156448542014404041851228006675945023849681955754116282685587488497596555744234415908734221890693096777108856250967696722943316919549792975888491733733079019634521124776129153029178427742009142797594930602188147997441592747179575308921698136735607685497441635764122494315420927525422283101326190865837614891124983444183591271670435091546336750639583103734319828727304363585924511046502531312132892946612922269162104862175864620730020754259307538358740721359709922196659053848849943106616759668257660944377596022255878558901567138637146419725066824064003822503519516098630519319048773035907786176706622281421302898748200127834630117281501359372330176537937128305678551033828224903442942163394342208792346542544069441398457858510934256898850496405026293927732562460060781172258093580780260080362477427429406306723699025074567627514118258486492424396561408305413622809753076883812719413546834045565834157608279470057468010591222532176066526728622801147467582007790665157072083078113990693314415111540992730929916151478421641235602343502015526634969747940328297378903745862190092133995269543995641996346314119107153236109193880386557710792384419739743449438020323366907732169662601330900851759482252343840927324056564124810813361069131990270544108485264704569937848312638671023216566993056989985749014166010078178378831079225488311320864793247123630321392195252603730157396455329560047043418299990342454307297294456221463631475840449600051930263578409825111823215145659400117766402609069080190796753417174898714073014543485639168981015450176886720531250095424305590476317298279999541682790636794289842386133870939522524188345242280333872555993132163120587443985001025697787866793085675589961903040291709534372465623227690829928631858576900866922500456403033259627201607839360615368498592073188904489591736450093446565973919661955341321387023753048660484070302592104840369183099248866954358384678292020777951408942309576157650243428686909988801797114480931740952827679290674275572404672475682385124340023626183813246376756768932631003541156719548807664052661902683225712386743536031289850023351880082176074967702185549895605995071323533895199263860515623481245537217549564126579882923151526581873159209891273606500361995250865713035329732822791714734976308543237971723899170269083765287982659847285477018892435936906731860930539653782534340158579341989440933392719402626409856087683102665110189142122014108781001945005674419326983176817795724876837455016982252851296776587242179630820544607431321350991131048023874764834441410425878594991374670965301496934177886467864461979838057794937408344618497133589834645500128995012837357282695197444537242536496856596631730113270800653850267043255745166052808286364304509298498069179057975101220538955615622197739711416044922345046629947439893826623744336518963952141338215429241417916599636094249771103461571818561508515531132044010631701478527182949205533409341193880806528137300866437153761320324982315336099954402940703702894836641408221186825914551915718999985986397487564378134045163715709897870669061103994190523855675951204769668616091641792288419759129403429492042193180571992772612673911713311696092422907694906516441988706919760208819302091055062003679804697586212290497417875090524590968927822780274932928144654778841784291443967986867276654250063119913310233875219168744855836509976404408504350119735847023662348541774002541084274118523072286373179953852627767767540708262305903044382536212854525588497742519653146246395866939742831099725277305322111295120135212620018401555029404559940795852578695301184716727339863758974424774365961660270398151226177325232589721670620053340961530396057823775659914654793686538477960615596311882996294918838599455767732000898154956168474757188020720388323571762034382102853094047961534297527890165531555426540973997614207653237129823779314524678194333212779354250912889165123715188899133968574004347955267374438485277422694143647690060858423906617693964231370298970123958312978790877108651962036539922775073747686216432948858741808665531280601856915000332426654126847378998504422390355575147861035856568075533860014643494073755701400633997893229057128724255445376632161981063121240244728580313613731099208196547602506920205688247711993274849520950194301953724542871887765441312906908484945849286853984692070057665170366634949812742022700932102884413797085175795304260969313562407025766800800496390248701501746713402904118153716367795407490046931237338975229205173706699818413778155005676552503701717730972913346289668156460079263231576225981666741294100419740987380368495313877236189891891862026152083835214249298759451775736213727639087620568513851914335581223987440693530587745376523379149262340595537606199600085263618529963959062519062740030221375406528154430299181500134275844715400430991191024117457291302464322016111214939291405626309362357394161306888618343826912092686877359491846219688839471185677859557691511620379458201074736759492546485862565323473125399170884312346055203598032708223115908813768307482601728602878942196488037617106433412530877424342613054459624533772878265119791425113606855473916398165562264073835285178943754670662253359458967932122989541257425575438251520954412806972120559220031536356467528320005854108344942292491808882876385564968694235004725153778332501961507475456042605636621018234873747362572378151372013329690956394847392539487315598283098604207616579436624957481448402735176337927380853309427063378602577461827236660028035485463443390237297501028328227241336877740486464267473233084467440053774367397777372141858476854536085946558676585251008558209810918998850775313155927546437359522246682066087275942655886827926459346399584492698736125645335697216017959907282249158637550470262343268993447141912841554078429667137647149414240122706864911181911094535381000324229966143117063465039682409509515276085147136168867465760478833586161815819271946609828420161484808806049386066041941904735721910495933075176073159273410156324835143666622290786452105425250461920471436126270548745900635353727401438764500207405404734438098528015417078474978076488859725443716914469294175594825176072998741502692689965134319642173270803062240466056960423415095144572875209274450284706060087808831483592233000464913815975828604902633692822594790666893948268763354362993255392625414331154301893257991713310253522766208159886196549735825192582918788218532020330890206647982340560157629784148789276759885828603371916666689383832581050314617235345032807676678826911021332250232524940746329191352172689933388944000678459805741812160823840294800806484117280315627796013170237955728642007844155057610840793681627013618098619774374263313351921250212690689215453221099048858080468524945919240946183515522075253805402435848936358567975710930921571310647092690367723763576649863962396935104616807391063640432123304455011630652511149318776617906963199070488068115345134214900699911279222761532199351244560261931025027980203606526360595630413121078711086635095294840584436260822714737383933826394918022187532313368539266165312851108283186151939588665385480450129881592973252258416131842803633251282536549381752780534963244263553267064687252087793144238446664139257597846435523972051082125043792065770555247553760986595909370175268641207645279493592533300520350185120057745268097946829275677697669837945164912447446909041373194168350160872553217821178113700432757537176217794029486291292896211870357589941291429994891891462050721725440919271342901445337415587655885620686389353367048826802980033616616448515117664557457450422399584842228153032754330665578393212676458972996940851039786140070294142907313205106797371066108640250251328516967898048355412607231859682210169960721673379259198852535544233076576238751529110501933011890594495238502259731584199891888300409766997867243045424806994289911668543586823372349755289392747289504664428718091357898101860281761604428037663830476615856993128795839295175939884690911895279914558531543323156763734564203277174224041178776198061545927958941487871060973934489679557653943974591863153993464534007844819441237286523358312473904600530394813980169995116172458324523803698593631672112624519228283123795222236885403980757897913085149385312838904182307564967044346237940594745067207884346033028887991139129262685718254680982041713383586693874907611130315766933838616097164281241088954321661431497895775223681547652305739027462482449797568357014255622784137023178427411668671849315965329788836011997338204829464871609407589346607727962571762022152011934829066529250570448299401807684139413198114534958526452807663600994948969939091469982939677454807765442717743972674094500106711318790144848658461667544954611617268706046656330838103256588201551154554172328933558702855458403645318198637667068681981624836884584828458533130017199387463676745243572450641538350990542564714422996494739375047114433947771699766270642254748858889805585964577914265727595804106637282421460933452743191518912219498044386690813689811969441798623552587629972231225445997818557334968194088508876323293641105781517394068479461288434872916219319251925620790997281322870162278067374735633571266228440215335561910886461329696281097002264860671475723692730006946854364625742302620618156196336493541630882829996256120836866155855630714632700398318832388341006370195357454356440206040814705774233074663448358698716051605478464765401032968042598499948435108808589470921905379895010668030983311733969291994461328483339506721633608765009460459412974191975299313779795003477178466419134384893501543634622372974569723366506621532314883557382118263737667227934478327057429412553878874685899583458517139539436262643633741326635696438961655603930151731060292168756844525624343022409200776415416766858889784983324535422105995918324863706192981634326672968780710950108970967694484095478114332017769131841765344130222805311202844635603795759803029676982159094661214151546004223588718894190790426024582796400295708233772277797203930744494470753824550648560858638376625548813178906880982242663385424480764186284937510371064575117823087439532605479159895106548863188590305414202747269974076935033480168554672961677969599049723551711131067976228048251377822285225844106167291736182503218725976845816868348745712327605984642647182707726948258575900082930359358920614936277260498466086471393035028306409640412691067387441244291353299706644270495817389443539310859223543850840472481484274260347303244812127371176593367865841574633107680460895072456737858682365310990267380991476556933280432917879322380452396843703638736015580019814099502757089115930586775671491728201007704444158685839609416726417529066556327413723268062374023784121015088097351501269435329752926576423651022116663229356398241058044627954244030558426134992298211474668491477429281238323435981066672386838239875533723053897097293263738489076175337126125933661402761299994464315370311900866666527700916938908386847824011481652769905313001728561651824712954697886286260617835695608922239821893705032312377794055175645104065910231609679571114680138633591211609842664506265725309913740395623456660752124582162601625209192994950401107327629655443170681617552049341331755145312361991478692375720235590531017597902933584822605655951290053868862117805841913481019369411397112229143643978989294704104085390913904672496532584255030809600621201410203370915123489732081887241160538783210004841480868560249986108044689072629791793313938959029946685354437092394054215243522228916872708157179952330839177876624258432573540186455615921981653411337135606040712660077753469005605253897033145003352337703250866013258352612577335448041122033264501776146659354043677395621085700719524009683769230106127176081312375388690332789326288062370095331546991932081005178026459178710360927354858798332604885784468849336597834832768946323933988478158047672060094016703275519801288268407786173281869944980918840928891365330920190198594637125783934999038757703278075760531276113952302994420771225563901671649539682575078194386349989157002055297534114141766836313158240970016811558476958674160415268251644302062588302707274070816071324472672745142426360196083169708646290706280350164801138615381397833697958602577797975091813485628356380776861945799990850516903905930198672846000379757087214368510392107647267049739313805733232975061513356079191307357102795221357359776308504179408039383090284028750445486310716528600863147474315228601326140764983363605317248555226685737713928974802453002208671422820022804934370270348150270742493192776680978726315852368722525343480950103352539175043484297171195416238321854387292459744917783465078133602390747281388837932096153970709000491679839268433321490260426782187160285386523143728065081018059828316260312260932815895245082521656597114874553527899932615472173622115979571778578227852826304325315562114561836824172471660921779627388176005247336162688085950451798958079369092631088060197481200506012135955000698067397465662688251978949451492349022999541271908497798408440848875650064665488614249723712864034677701914308526967449495240652541419829469197040609363220609597983763954040026254727989920783967741744779037320339680256510326329627299287444715523797565029366689846436435234085158876659842864391929935680135188916812959567591305901807687991912616642365654284716042822856285857217236784650003545183767099388086309077327531526057787588139762188239706722509365122880669600680710465466549605230241157151980616404486460944891297887749426930792842974998972327222970182174811722254733994403784951955398505102835221229894346130548792309532573924331077590114046777801266068632517566847619495746756199465245235995895934542903568226416667747190926258038997331962989939254785823379367158951954094902441387888249064062854147227023900823733688920773979667111988403278437455466330702111134894227789189285846600908737950152115317779576764897760475868414930807409513749960887894002981881248819942370696596071411978720496897459466266790792742665594835959802932561752610274836842210765402304316814541078335661627183627723552662199581137415464538068466655472510828826417633434216128128895751948914411330778955868047197483969752595571587417761260846091022880967578701581445176157084011144346104133505270453857836826845345934444897317277952747369151038678057723102064784958496260696905314169784273479057687855673365209215976694426833315554394201540061164552599407250658202783184147890656226521918075589891327145316838920288117493278181628267555458490154479907460470771278953275409981119587764509490329173221480683286389193528603430955648682354943512582021021240243164235387190504382551877333268824207262495368472796194480549558420054689519908326357517175599649220214308087356799370012580561316816836918512016374844944221357442893401997368949202055454157077725880606174373565010097425502674615241195295677746138118298289170011405134851073104523054372202735950041460868140899860123404939113490525461188430155220682374227806778127178497476603383442530064362713569274728918785422032272689778932268185752139099346128755915216022447474057307218632091687093484780416417099372284423807425225825201437223418355872638465211078235360206448108392768335335574052025145670332459463806990982332689209966275899865456002780704797440464458782392152109886717782833756130877826522525526411531034833388681594289815657950126307287212592793101215989616442107809246960569572274594459408572738535143348780720157409010838939073900638106678952923843030112236702434565414897980488669058096000381703059693697899737672439491875262272078682020892110571588914235131816834529018387163714555339649485673052753643743308805562862041191969014511044185516773454124769996055789809075480808746961334792250693053575423627515199593480352026933633083791937940194758293796933422603662844007740125115165563318044265810612162209259145890194761603793465744202276385264976304092090403362315671101301764927419726419707614355394138338316003902915150580220116967644986479699155620277105769161965187711372827033913443572646074348872611957064712224208739323512255446036420592100842910164746440494378209483924399050363433441674544834439521763797656444571199373208005483858373334599672942143488739399019604947055473376282900044895818343458144619053818391407720343059226982461391215094497728529450471743809494312253024390588026455713402859369452098987287623737147713737579714999840237302835676561440868506698298206057811851968170269900392807505728225761290824505741098152948125847621165013121046104795123231109145172337526750884801704280721824327759669274307137988280804842160316868451729857854349820323706779140882383145418196132144929820910991102376175944259497037942387487117301214830315267357271085757684706195489681898598168900782735964761400289187368230694385876883549505049842599132920384633359579796136197329117111081195356570939233133909204021372636327167025882780311184388391563338880054174984336282833658755498649886424501983458158982609048684414795238350377018890839693146557145595388609332320510873432283325364123491186883535871856279132181663215632249875184343493475626497058542415984392564317528936999988023646050555161210375649897382176296085631880644391174670026774103874053811539481424055057204391808166627188565540119985058985924883341609886242314226997336874503498083591474718979233432865466815113260745781808354431679020725003591635563952630062094140024009140370611120339355434847676572185484176009575399248018801371119842116794077185434406171367635431958915581717670329372853588013267192141297603834971591476245376857914184876222177471950754068641054944752536580039005539431383647879810016402466189016366595245912804741023848116830747146736802517556262624975401464913424476867579655077750567335938706594208554024573814531635435019509081678606512084869738867013056450707471697404183850623534944023440003029897112300947639908827343203414880838206481437555971543876871922434359763394104005103739264988731652520287049001887223353280460602914081031430219837840889708727026827973690964359029184383100653080311209300377365145229960848082554819256317602154377694683065286910173863065801977539186968010208002710314195316533706638803863595253042053042223121237555247111844299160916121992539603430582308203807668436168029836364016308593240750713430723659975252476232158285135610732591368960752047236169749820652364420076247307649006211458924492252198648617437988122184522898764180707466458823435228126261588056298056486150811223806954480454716335138400963346491798445542120969140491616001336886895289047236530142460474429973563937498596564797063148495273499395825951535604065520510487579881810002985576391366097648798096194972090417562634716968374269513758029230664174517210689062878128044368256754715114635699399041357291065524641587434532066696401451586985042332184885038146342258672192833668453071603291128154126162400143469028818631225093776228799828322736329190266194853373217632258812774066386417328380669496327256601065677347198903857498515490787828600351316773356269245882316373036584011129334699243250442592803397053593378261341268746849058046332617790890670695863916107462630394593380659038393690238254215751950011821519232722133751816376065635737342407106270608619155644752041318173311092418464657034217346383882338188753680827584689309108764976724756336593540597052519388335773099850327715838844417399184820370513013036779432694493287123154820366268259555003081714963153301230499764675566887270240491009032884417307198419600784327201806401816381482800681187985797241200020348951957998940224740588642352015278080787833100304284398391617956446002991005128366148338522347644828669514155204663714629753405528985506110417685280089563116369349594239777710069873555514283721740768966293303135685933486322473355066692524342776711704866653906778314087191218197484282997189404477705723293789988432112744459129081500965692824980573944790119990435933790555048457384834582374729394949053811016172703703225747294354609655094749757114030493716303890457869688571635387231683976107430447471293130982441570457241552837357175202402245691944102083582130386273416008426406568763687683875279341404263524118180182327631756852512475613628400256795015763815827054804618763438731205231932634206080828526461776653803309163909519720959652586510271592328943057073516743504937929702193484868768596997190703734106304979957954963128961478848819012384284753399620997782228129416438099948534544207374052538536926878004285184597365348543379457489699166450716130533885002040460708820525226013033878835239787545934301048559445664992842244355963352021979520210892095584716916933959988283278792356789521204488169568644758299796097630202303900991633761709840283207698914773226962586834780043902766446128269400905742050184796641449892577965831419219663612726299317200726303815534132410181143233493364913919136086594745805482021760511039401610702732692748726733566888505350399825369570543566497467453294693462982806817889389059023452301732431235629737211015199986265463519985556090117731795895429485162536472750966875583969811800598088657657410546066082176173888506390750636008154422420517871327849625560866627103249511677802035779201421501853699149358410036271282907920390828793174511894025598628972510589180131345071481766157238238825755619814142286311762826446219962614479795882803950090265181801805510650242393341000478792116497743707936705487645177385080908797717374167964125929910830736122694066600152123643167231868710316184209001724843692732790679389849190464598393705576854425174018743860788170552973442229359776684408954791724005130300523526797967599394331783042017259159729947600832442323645408329368397534063226812506403894103410637812284502148815070228574695838936639282421363393757405127857943159341403092395838199899786162649407307656207019616497954422033298380718768352583554314415014946880382051750651881863191560620089035014595715990026910630274451114513001845466741103708529903213278122937433788709604707436769299054345982259911971216410355264972868744200259846382405424199147648604519026569770993133585972845218783275523400682129454324007603650767763884604865329092364738408327560612775353668343869455776757847062755565884808399966477504238538017969172923298806011884121630085924053364578766158365560963584828964574759624474698491789265109259640744899683710029114016302348573476977562687516038507443563147459039779442895876615939023481755864640915561243582780146848564484451817887034573406994599513714628902800928225271542081023145095882572663485179847925176321475432806396169839131714073042578989483274373164209240593972310618510918228285968324327509743250172116273263761035073023754269796476170546229467394028819778050365231128597215014972195459145298181375876444597029583503303516986012397803687031186275479230770097380889258036180068250293631676383943881507944399305239541112760712964570250802851887240212899857950707099168936841970126924938355427971166881264945038320396129634412615257316567237778423543721201168423488426218502849102929741017324900319343128805128654742473035763924980252087972381937317647459668463806597895482435401249061466754021680549424120550617571492189830366947241301474646884372589187603073642184525493829813309535116869611424044404419221354902652829953811629524393924533387008527379025294722639551096346010648122107265800857892388873871063151258539562864378031918659589685244359344374326138096077644009521726977984726401343288758616201961777056425463578372838500386946678886208109631328439996993370984542198939564624142209769413092408207916930974518767992515182365454493097034647647733914145619949355945380875649616093925491895358414815116559459141020557438411368356681126737317916222622881265984613743444767202267789542082614904096969873717806678902033385351444498224192602435046301934020384777063885094701677533764858377906948725409851098283516745778079491484696042513771844328173546962095807582916742779629156034463834736058555006336507630799022157922833924009631959164885038476848101777140808216177052277751898538210101586255892419813735127185903108942770147602258536571605087480907778370407561123956884347101849090616699470795983829005324230509467911801555729088702674660227466229368570548550892082402260134916743036847172275638506002345726755940766391427404815185412285784812696748273876058498720386983133969612936616189990445201609827211488752887560914069810419735524399638941355836679679107202605643810112155074843617684412750639441167665224601867244341069058331438253356783278000512823300898981225779402815559091536561503702509699090493551047000285213763888334611348059137512911637177775460921644312850905468824438500123988648425318089416845738940707593822028388363448664663652707375983833167396964145337271330784755324827054974067015775013685868525411330748095056431968101768940971906477334323378356654888073597643965989553146559342963940098319850790481627972477721849819023074604296912847640428593633394707573833861480275832870503716079526929579477809516273084366506821614724682347491532431610477180769821112287620589929741943419675313908744534833150212316496024392805850528941845367896079329889420301598208620990970906460630788275712589311366715991172571243041836809963647409687791270359084763742774850214850453258675946282863876732102966681155618022854821713965156083522517336682609503178095339745375086325182287488408837958129332989853620342905474030598541418623991468331019834190503560635595936043029914566000704164050523416108912770846650567459393059367827197212670069003100920259829154214398203386976768550621683127708977807932415068545722697192264286994898765493725588512612311950435132064126513887259023785879340836435708553440491550010004590465818024369133202901975956215699897648979436762882241185031192375741604772551989443933477410963991048734385314827318229990753179343010582563801540033109643852427315917346019646067522328408762972631732554621045439345593935983523679590936513106282119222894015026191841719003825785763870491893329560914757893286528088575788431493931798086987245623137402385058466649835881059278992182047259700735218507272333054313618089871624263315728814763947051273982698465599024768024649690415206303631545762689493812547517827083076438665837076310420388674048373118492879709994053610553229199198015082665619008383305960380470262363389444249523017519684188059211026345972461226987909971925309305202594202166880003675152112914317331448191001226022058378746695090621569942112355972503083800864993557981872911010810041089144287638195203256971440348666609943162636756164925627059623330236667624109611359163413351213691179645319687091967437926781325770643050526242028388342602202356495548615921601582870051220717466786817381573921792853898979300523113207815753721404714885167420246040678076500807818589808555948347278181616254427886267367251389444918294785990921116315535960488247080305284204479714044950010026637343566232348546047016052330011112820184813744903820673545015134316946129831908480594911318231900957067127901781739652731852066162683396403990755495485877395353962854823934283555946292371229012474010768274091612085788169023639717351617737321130458393858863833414936435568408587865780437200474305867908818688981975409714775382993967740842651826512083455254547318384271949316257110734697991109420058982778992329766553719978207237775529033800682697294626016284152685566484508619589161019428555211770840792196629122785036641972114779182385554740107254923960907003205404923309217321979508949429630288724093853820342094857521553388905805729891012091926044834498874220257801964460155218624038942651950738429278688958828061828293964359883590728492287600228657177940355593861187430007313285919537082528525857517837822802250729213771315295601488738170006761048516638266254071041468984222842446062466922567609233668017298439646003188707513626808414318614233320204406894713535593027786953109842974101829475598245229353458752441554465861193723246892017737126560559697028938372578704908264785594065274550803999073151910200319442221054693435853476150649401819046209341022280367656217603998231899973174816255289119314266503480221152361829263091259999526223663969139700529903383397833292161586727694740141575536799133402387140654180725612605422614057643660682052848706077980188344363637910496055460467074433139703154082713756070104447641009370036209800503096861481248192841462315001571065530324614103817576728712479104584030231015917199298777385079779952504955257378922346670818994700993046073843704175948363553454332649637932632161012977295679581921614932225675240404285203059237234475209364726255025181626522705468144877478105053223613560538472416355732436366167596093108311779112210321239862391512688989717449896885840159373282993078508542907295978555923419628855698635600199548004726710845091365995212230849600409769571215761277838257512361043032396929020987781881549497256549991034603242529498828985113112320910851786583907206207787538103176408720643337403033569656462665332730653302996972712409706542306914665282219208246608976169947611985022248128521911040579236846629250029644777193022489503771623630785314800652748335280418386153431859808966620686981853184319170878615522324944860551290860800935433548655980496182501595423208759397110655274823562314123628593994668119860922676977004394972928250763409270135044775380434131319950916755782434986374490183239747151200800555391475723860088072846756320779221907403431510137798370908552724866081947112459043476529732069034982257907040265651025121175763823086528871926655967425138881062281979899165544336024292784319242297431543462171774733839321641508565163576340749452903631723400177512479701871438416420729629096373427269622005255337928304649993055168318183506658548559924101431135842181488412344673085386307148934154362926534751834617514026344015615374395899479041266283109752302341866883798064371213624434433707668407869429259543926498041743161006074804732168902875922041975992449778677850423720908085397524606149680646616905925026072604823148787328244602945698037623661692710737963771099222383824180087642016192044284155896239076231134407905397808973786551270700495358954429499925563713182674210750649448446260633389950681269318696664092002694667532688949504375597738524908132464193849613520649402324277786477261851138030149739366309405516382957662867275905048107382917555060114996056664658565005859663611980051508977315318805759236842934945199532996420232659003462251020818643165123243385428938960591844832625016332076135911362712716245219602162470776501907762761802924829181155490072097059121151953345595969346504663347524750671084466861239573946709171648951189055455022452654355016566299701256353054303020206351704408782212399950075851848843925563193365901509201907373056415425089779534531663707725475603889100073203450171905205874905976422243456481466256240682282191893588842125778679664691827057615784242531126735429506555832201792748630660615704759585535083411302614421756992330098190145263266209222268000000221411258642471410158581695218073544170433123394183801209293776297501698044079704082594687647923975972535520677865980564387882846324966288637417901108559502739116333373615889453187632458783697664017748110687503258666488575157847206923040013140493281644511841841901611177914718984517190318553720157396676949089579338957680895666989880466039287598128252769572177447271775938454833778203580157974400202642601014103438731842996924082892961801757107026748680047693071270037204805467831642102503475865821874384086221661498605847648727511889685899875504232950246042582805964901057898547607266209118444960081495432157530286048345640378645607645641306611962760947453846295946803448043735737927313332780656229236624850388716774581402569183577546862639697736169253016790308335637748197297031039738936416821181382287118754127755500915227074069042039380962139964036320112886162313912910182808066685351393065207970268890651819023733594800066112090293105482718132055352196439383156546730810436121761931180476967053275550001763390404782725426350681564196776801888827756343525768273487759347284026178573944729450915613623639652281834748736767897006455284554103213031942393935848456863810023747502977416305585493181274277992007406887619106861788141070576904842137361037140365155645957254504812569116818630640093711146276004670985915474752056524756198760801155151112776335686298230630640207338708957137665206913784330137786068297535075479980819770892220759719976459014328520766021209773171557801904048713282613064453209150175372707932086444544858763472507084409839481263537136565323555559953562842640875670250374668833831937988206904107724634268393886977383145779246956565964705851751264275706148580180993605414366198974544310477767638755345638665585102153031257491183060266552393142329704298024209153579875555607817831027196465712877414560336187256247965654412531164829289792761319127352991663344285316922492168787805017088440933972512942379982015601059128500177533174516100345089809185237168996498568124467363652736091442215138193788710946607395361504949096581961228627204255117830495592288442654914935462605762387710132861973403218128214681524636750852026181377447068308697692566888408011255114612696331690027803134473606349434412925618021433392349937131758045235981321578987095377483590273558114410494511254991984786108230473243640959405574504102055420462226827514278177422473445624013597470365349052985060183531726671841199931939582992030739157795377258368351102112803683495025293950667998687318200283683089791509317911490032022617037069571548617917454282453392112548972909742497414810672361399798585682646359374433215115760639907482342470603823996435173244658844483403294782980657410400852937259518380469541746594749840802477126097822606949622640925537973075029173917866911006222284158175413383978331702867689619507138614177477470842332484614073951009228878763154808180388796149157338575474688167810763571665888070817772752864048934024854523347759095576733919320497810778600695456820434959594737671668856851651969146204421807046513296186991834763642550182194014648080194276648418366884214427568726272284018964510619250858394760719880512253563697225540547047015740027284628216025021356583954413542578257653957812092295021635074907615301992548840380698821502637295719189405908183163465726268508555385970843986067496269731923444424710952958522185091185238725568992427219003823409075366259748028795843657460154394968307165494936534245799666688466286806221043462016329431013604448523240296012246832670358190841053677220791824244655150489492921113550705398637789720348493761470296118911559513034680686828459838956975435257949204705265822756377269941210486021685748838189184161854778697736647058992548155078534016875685624057626931041458690006809318574443392871568119198393555917141760053844382522278889321018276994262862542020213508206150637653740426743392836658851052390747913130566834151647363142536892122960258162270419682695285520072587178796156013181199896085523613348917428110377346822024009619091723123919637399251614361792583295605238067307698980935738253634547950744674866002550836186715658117291192963959825544976867326171518029735523403955147982206628252571213588781509430121090176914553391363490694504650848918175330917735786867621902692198494269246190973786800593570543428944786184615599479505104560354614611438167091814005368137066483829519673120742350699208305168090413762274198883966269063048122280273239052845859477449605273274232703775365931738557531411403110298990932793351446308860422020320832474390304534646013497777012574570623948875436478657049066150807791974243046655474603938768981810250765079195353432278508984898454092654582671515085369517926369281970730155945802797639864572411863400482573011137291905470241597887807979318211508194145471724835765363518832724616055146557043803172586924138652379708108608978821797706319717356115505141962638525990542249141720914577761999956034018831376885501124859998075222040454588275873278917832707055613462457991168318009943597179747148722586781914137277701331113298185441270780422757147422020524116286863119087890160184814582412534657834814908134854347956298582349503686532013591792868171044496343930634344833776390598591468986827828802508887314857509100161547705119786763275576618922544281381461132119104940977063597646274073206839831279934396036490922278480017723042113604298866445719800823627022589737709205296305805699661587040085822931389256813287084091783263005747697190248510355501788289505351850555446924281856260209773975028402497927485773483208956875693216573468468592249518337372916691950788044044235879018480217571649189157068045130063954438104298707119687422154481075380163180970142307479534270000386067919561643805730002549275066631757683678176655995885255944738393835710560241432889588457256931682948652766500982563471424013276864953207468448802938693382854756216206320944142716397686126011699944278865288993078537154025305763062385739684940435094320777598580237121055081621241339503696059591791229066856250144405201276161741539363011035070298475963894684051505625784274264152150985048412061872404582325222012069755269523342791306986839069625143745351370525606788248109846284954260173343567009126178939506030645558701798934369397802888115784677944649161565808091760091106354854335354342567475823442086924370624555478384819180636766028312777419251951031545701943631761448047684490114866675868345704795855307003261732859655383920109600614832482369626397732299034806695838220543693503508266072243810355683801596792128418474665980749471905412234340409555196966730870656615986959145210927967925169889232199473347144694039193829875884395399251242739135882298960092793062318797400955400042829242492390886945544601466425698445198971640664847001044835554165745339002516007915265613405584460652762808524522578808882319800844735122600960460783688338885073414183704460257291363242784669311246037963717812882300046247721843487773937943803337016559283326543029928629582911186624564081457838042798486790736454627741496960803637802505940405036165736723109658909258759542129049013442307511722851498670555892023062490598582316150730365154557486639917676019930023244334617526907621498138865230195604309214363690518632557833872279568091067181116587730887238493153265932688302480988229407154170831354175307471499563920322322293451823022830960650977760952611585219226194786721146974068548091955584539924397771334616900867189225413539443571054650075069856767039808594492755365466651679679853881338142711371095929685735262171374099836037397902472526400424543367263899108255875571500626017922056147112310160605989281518789262365421179506009077238751408320175966689311771561818977846801914943900321177004326268260751637349971515933779481565498831475577137220101562069349418787300919490834326756528691183785238933927708143199419209314920300081797451450797954389481292563221701339070225202516175362973997176012987679910777239461885969566708410620339491947634519874879524198007146572637924830597767378746850579082932887167344726073051126690516491589274239114595587476545070681552656640657518853119211497380514064060539261730589152632418723149882010976256024320336227887223764461973831599789593150722840178122151144180242192828944250344616271765555957178616149698839770941140330268374207248163861040620242331749523153941634018759217623552602050711858791997844480584714851709482495115620520548735010634485724068749772192155533424365571802292008945577304627247685599084238360080292683840894266521966608669637021744457508558375777842347522311954749879786797436533416634616235343521483410446626311852020848340996711419963062756549568042356931968421640554976163935057805009293414106958633981594342858943664027448976004000115518745177346873399028945775675664020917527168705143423374715248590940221772817987558464893799845062248317731100508666548410072120804018517030653216773566211276102963558989575591831241964092509917906499116485082984336186746433799492287577895304748667428050340667034662942124098877627071213207692763681449990572853550742530645702825323578949058082925368140397718838388915049682404131017415280172662023745842889909439574569822903934455635046359387162677154255576049140153645200409783995187859681796592637657128468679595312630725015624442526847453864249286685513390393912951306715333962961574383965817753818682650293318333270403386323602849674609026755695411936582682329246055617717252680717866277189293194942264203218013440564840268235367825303574658066645350453663806398758150697259625393395546823191546249228428869355361627481085542708540866032560597800970438503965975397022142328698582025723271550784803984163279884308795747828935751550991317915992168704807168150660039823688855625781538136523885297610596064568299623633707650221210315647539030323821214023332173593918884724589695431032701644333678790147069323742382957468194367989814134463718380400924530939831028858805853653108014392022358754878216626113898138416854737365251548024181127709199589952373075669939604899030880206950860284347573203738427170471264774358447776466320189447280070754255653977766925453462815036892976005976671979756675597722008396708578791199279707650868808168392734881014869654656218547726661011879273661710094403271256248964014243905281306675882850584032725431384279287036063771562141297603458409284538139970774083818580151467373379326290457231215364998112895494151972479245157941067291626335635375397749991637131080202426062187184289678220581550528045025179889791772855197583721866017041816537687447486820477907841069479770871459485491512022772414415688057685106993383327781404782821101402263942585012014298450227693756455916879276549836967186681063175504567394848168634037490486309130223972418201251802970966529089244980698510377601500928973457484562035553809182181883993603103803353037553009703684566343052311473017150213337587713504710451263619303788454716033775692309924405762763033125677362611163917717267982618896896998295616509285001609225707965117620439203458283477869636163048400372588074318581661330986613679130558442727171850704547760027376058523859495424021395497036977378278593366447239794108568895247088992763654180619065078899382824052781486870423888657606626828976480029484575879194159966821860908015370414601051062740217214041064926118223391888489070194815695573307443428303309849455609999755607768820806377362212832058753873817776878868860046030759174738423618087573116810640996964250845775915483166941711113420405852502794926038121639238634653506848650089976829792479597900554826943268620062585560080722696015184650986079824238494582727386119112970269802339284633602846022400229737675797705170830854813133954576556745455665758915137299468074669175283719595001943849944156625409648975178507783943857018920681187732828548513100991268058014689343389293859320188984605194203846796766112311185085958965495565666598795187895931089418660876709114300217778574258074249559913442384968140383940535282542151234879225034046842464677931518125594584200302932159818787273302469251260114271654393311594262915899103540811966578304751438613649147543567237820703776038461531678213665120815260678480313532933931821028737600533595216188348298298330021622034886548187991670475933019155688033150687999087755523168735676673453393001509526817926097355095327504878905698201610716873741292957472238175808573390546932664406388532822663420568757133224545621858039455395709422073989951682655900465247098178549808119289109565403715060509600146528515874446793776973144868089605216029019397567862266183065245587812919957077584257515633349202386077049047808391104569984209624745005875870548242998308107402963915881764359019051125466237596015271938511272979983817555343143951151150403259029084074415795911144684004668945197980015015649603746518103511621794522779745260906343139699662884596692769131735600246302413733027930959968406473233007910251657884015419213549010905640568260251659191209895880077363927525257466119355371448398353229783783223195142209632026894251103311333506926740323837030843166878814383635963255657532077821481420560339017194776898583623611180170851729498675677209762944233993799889168588730631336478000617322702253086873604694874860159456926497576533595776904820677100872619914097141738898176383331145285444992570178100924713392447022720298907059633071329266062102633035465954631648779500869005693826314758077721357317109065326237369115231791527122857392589524215961197585430852556460225292552566892483601626888894355540996451764594615763941903500868739202420859971525598849042192329698008274126459266277730085144830307611285487172188701875557644208312929584839773028303547023373326657867378037932490151985638921266112650302000132758568743887708907003985116995330257086882860790975638065432723968902444355374417224664870461230343643859705640407037241401906382466743766029856440604475252877973627899809748712965842715483113314601455688279012946850690385094211616696568515567672641329953603105527896105965141218729873194141691536254828301156913221333566903099573350482719824310117582524109998725112305149873271994494630556562175231005518892253923122588805690541241695894634156102446715315353665525002527257776782163655487796571716782738369874787910951866050475924560390577465034014291716267808029226485889152043240769799378012182612297603825398550302931009814511556311233646328379909266858139532912863926762550899791278674762206645434920730595453137015746931725854677393357554081810546619023322330221177449628997236193786634771283717896910799750495290098157240324935053339252703802175879247250712942591040478625943150723246943542668088020736298804057050227935229218196436849669822886220644669044905575636890506766197247831988024971815169966057573789562965288548838229060256830491283636423103530485382330638338129060352545371122488322377895825661626823154719250899009086452628310490684169334556250808344944313290608346641119463249139674780825491005619928417257192926411145287407408717906481577324437601197353639692743775278573334979279885267787241683685490527584708475141289150586633024304743884716353370475881706791346452769098018534615484807495731412259916617753593258205369384591425817613622306796008241191034738613510467821519467202922383766347356094341364846389647850893678001141588210222732564027059503654441456041199205347944889078883757615342424790656660226304800816833816234965632075225418226930948017303079309759149600865016006685408006987354790122867876949380567568797944873367457343004004171578723132812658695158807911087102188403933618253249760275927322844781192285220235602851415500276123918897270118081640494481922298594401400028726542297312182644368952782436157340870604585678284349391928394553470511795288821095437417588691629149278924759387978161773877764119486747870612129705534380311498945356478045873298188247246673057260447005879490427435586108750788087840816067415140306940194030343813262495349508232753038123182923283148064309524276077812497713276725848093588555518320229126021732643674220227862426646657509958561937063016227227664232177775821534923155453430104478790009142550980965261578486368929301128528873121889688173719218752083194232424794533246907893427421084189907623353537913140331280156842073167211328045794427129026806410773936146224114734049463518711347169406935888012045199725916023763186618332722965494047252838330951519894441494165366755310900450381011593118827313735986119476179866144079445762188941566745815503609427137279788062301141794952754374526178828718777875364185357150734536044262516683798295451886456641230069272803585706242774327240263411545338567274534264016515416785865199328217339560959105916822245784564102874328000671020598390207239516257153323291714795517998810296229012761615653963250498971303234988841063967805466432056922249917175775930913033017614460142379297236023655376474274388789063554963645769097786691436524062233746925006809728401156341305781497417295704987345162617708089471310252529247271249525458915789857506208497617261022599035392549735420938076569332650617293812450265658238573765554269169045724710869990526489429671139607745237187976924009308605353807519406287360865061430597309313574904990345816797934144120524391867233329562023763317755730060991006356313814154212330668388047361543214802369987763513859933930020163440395462683159854005275759660117988303380024860301595499402109332277974515536558732978711634761234605608057682267102926106987005871529206052953485348174707783513175978291153554796671159752621190167077346837881022326429483669955757587529720906992589871113053320419126222667981759104942116110561189325022930760471060722197743787073641761147065804266444896675824587798245172941925575997671170910649878721744068322370781355570176371793665247105937610535451922494471087174241966702595264758930774590761409774346872946383328279403387212178755212403257415325335578906911818004397190683352423919233721811118435903117576782130696732440096653685901650762905851564329845504438071532103533789213093789944363106213160079447601976649854373566600736136276411871931357824044731356293677406407491491219736029638113639849910044131869286499340538012488172879713723523812042812877104943216462863291373232218636025580903383074096625691824758688954628204788567943296876880851015704174514121361616238607121769127400778891098001678590196259635435912307594709418539883011565914042319226181674818934161243389013087105219622580483041235104260914235644841673002490451969286087456280717494701386770375175934104297943534105026797646941240390323950496107660050680838800029318549714353809022063986741343793444575849946452314893815524239292685941281508485873575085427116222263832261230403499867636623679396014409934848159294593984467323302887793110377634411626520736847198633108472312146986840115656508014999418185298365126292664354979736104667833696026332460727834756435269033509560868710951352145721016560121180658564998054635045842202060508786404348858606279559839536878280202379222222944254479044444148453763516983378633622263181661912709383645990821888700720916662429126491259934752517710310919426789430613391306280818430221415794090449635183746085286667033003009958629307610763527581796396930349226250579870956599820034125301864973349167567119311807688287207433813439289453046137286157153188083507977648962115051487533642523417446641519426742115797454306757084330377637516959043608355805665058460735117141249960730791796607021808363186126413625264334367162858876841059679734690004366398594497586691452819372927114060346731536426184460520587909456711021483942458114421553909786940892168317934506379890496134069975723301472849581983755610822741265307743121249419670087417185816944982553020092314941300401760831604399682696199722317995199090387093274499691226780877268242498135730203139214877739312154280053513643516042087158217109064200411303879317614084076340487195546862206603635828037217463968739149055740725010145062726810011177259217957965269719842629335702004094795297967912419061586257968333632308603042349443309421410449962682345200446243475658891963553758178254513944752470394174718391356682879561560937322165927779909173050783496561027617425417392221106420732943880733778704371587351035999810977589246429162797137919618022356739032929838985014085701438572169545458933073434745934873194818378523496350102223219142665867206854969840710288905817749021819509199840226891485382048061874650466716354404628546398090144561095330329427203482639699443250017961174878497107516362791349884685449812779437788344174412278728268527493548975544942487502803213287574166697040022089458187512852781348502002616913922514275934340199226389829227922084785134720603244524529942112653124529984544243964192368837888700216657520739618349207962206556962133892759755482844468855513242135100637642365599892008640055238063559417300842827800339712848302599484599679531941150504152726519497141268233301746568613555933098651353358527504792124312121850414622085378787324070719490599591338889415369246820669320532803907257701004592715490356145810631639210958294536785704421593095425102063992624707709291659180162251108310268041668145859671541704485181503190250574548478705626047810335352837431972862444412675401415416599750636611504460730269784818705786240310669369440220916414445338992176554135636779504428595481067394471820294631846735900723009394435780773284567762193894359382075612957197125192688927511568243150215504723754719359964659385581816061213112077932498735543749883024228313201777204659331557155871181708467515411084179530298584444117961063389602137902055910280181289056902783301867573928036743089311377276902597123557579838150651998022288428411065686153125234787082334617484989282353595063279740063661892209366961688394997208802581601381234088305446271292666839743053150068046682312229814066318207928920289525085998375378568113389189191776886460004592386774362501679878567089134079484921207676315506220038784148714694914660911573307408902300860688078816593714581280281248128541991843340426216709291475374124194635050534210551488288729120057090867719871040302786293162775115415211444965150128370093708654951552730858393456666884354475146926652108152176883584266441551888505888904633955624037343505815273116396231552186878329650941814517683435839087237671822869742973764951621130528112872725875607897971679736749670335577537709606728257703680224013827507466726134546323948874969311219530645139610879696885671681941846136608897842879367289243017057755352762433715603020459297378083738633550478326700442627166868224820881715860020233078412199674903772780381434569182895378642743011121157260831573825604029120865284220018994065902640628553692653606366726219812864081660299769232106396997597412505596369393346398543030905936951996198187276868669180310494978271250261013792034267231737482619735994590771714994267009438553824281283038322363417100825428561378637588356732649097541622342889649501831205832977002378239594694320351276147115468843057092402034579805900692997597433217364794579101703557642164432999086535545533961910116258343492877276371557692303029936203154405788781393644597822011649602729770505270400222736149329077066597615951324413339842636425884809156852479484099147687875493670141997668083451245003585605653254650169895548729970352854003021026808369264935760810090789253771889427543546482378073314216422474966019571471203801317929386429613963636892490288450537487465562150512490135591645661960121643949516041089693989909156086608748590857757493519462524861381474084921553721354500105169285764350639688052852009553275049977845074056334482983785718811254059369601074982234407330391054067747136866849409183505946134162913678897294470032819682254288305061966200110280078235594737173549504778445039156556451988094049886222968508345378964888819220190387629579651297929882461632920343629477417998150921013361867841373524771143461790740306677328989337461036471253343089836332198732828107614075233379314807510938996043286258060778557755451606340107156905748569114618239678612774223849671178030964060402937378348291353192717228088983935100125501078194542228442001239616917622539953155295303945856107041399801293502119717916169603643326395406335697004268365970659029164618315056263154688449898914722519611544047711691090875963154269738627697577890990037755050400742309163266453813101203204364445576203511959079617238375445505024651388796925496894517851497090461834148158211998253375552018487542201087498319014981727077685648405614803226108421476809548367080654430543546878105307344480866992652890251202648394351491824544116175925742755500332774505924196053165914218384034651336482151519897023694907891714930577075965180823590172712372516860599992621578943875622171632523987817653437565751189170899603750821210994104744128243462418489839223723206883416484809482172069269079755763182371135605154630988726507688500471752774373952451503731253584135191761942938505277286890417792482908076154749045305787627724276392292836965978041031931569324767343402746396203777177958877526089157726641499440115962922001813020760153657973993221034465299878505380194589130219139270586172354958435682976284365808835616352239734787981402534648278377553736446930534706582788502868080719581660121788464282698146102131123287036199067784859120440030617694440841890601709778803399744550100124795031012683308468063231921318281190971476298739009560816073130196795381632720276255252793069529640939800263460867826933769337249950842774477534093542658114431199246961013712459689935086257106416423452546765061041289397237368233347946551472951654413470011735949873663620318592827126069257278230729449536969619359571547924228433168748685204077456187128501589508835206106915595081093254768584425752648637826977467815343002846289990277922419388728897067170105411753824650632048260767106013080950014820034718108730602085465936476410281742829979342071022947980307770185566135582244272973113287589500460227102896852143816169388890031140191924899670674225772892064207716931019662071728129531556223913715657382249697806658064920086355595329046342848641787274943686725603089579335074747887496742973340967801504731780910038657895173463566314214515647098493949102264840785767214108350646992105192747487399829677655107174345631784202956609516675841369832249866262639163789196019817585748602997526518403268205165743237752067081980122670360031744771367150709948112531597393270642818506353840226124168151427831041585948382812534596413862816028568810717349436551512153852302471955853949285132646610645721258084954593687901482139802939323710236267117902270383008736876523376120325211372051356090898036509149129748000077438946029423354031092276065833660638295736295388625633886139527320514033493541506835909578652772903195312933049379744672829574982110264027496774141809879126262362752654947291746567797490216032931835144965236670841015368868784492172858233151785112101193210925477105051237816229849488937103605699013706153014262857120673014354818874534323452537291954384243083652939772807374220760615171387706439592374520646357854535478755715668934024787359251028261829240364764994103265745451412811596127623458091119819667846846939607614030371400033997307504254611302406943513023652970375879611912062497595385025830483545091735302694673335386091600653010122211449495905865409062828210760321271261389337300157357146766613463650434306994815607290167710042119070193478381853388875436663163069296432980194339844647745771928714473106963624070141495359711829605209827051435969916992145247033795516952620282519658771357629098908837786385329802942150276954342567914144480755630801497380075595697932955369454718611867551995324769898213201793964615622196670520144241256429358546273196436146953883097646433114156682932925785889058804047156405812255162963692397158078590665053250285857069782085014089133748938694168079925977918769634022641684916287623541240321379768007551962880442472652950491306821465006232183521465338540425778195082640253556269850092265074696756083865266146105021040534382471548513269387648636405938118558152085864333648389956547496411935056616472905774163104333902429576030511508355144746145223236578534409116962483310219393865739986223064241895376685483524288894930250185963580518132143264557372901610701788223219126843367145245201482502979979456079263925089305537965747881314141032586260869815454945182251178762162474726177716960842006263622217971361515661698552867338982615415021874692824832499466627676412885736727168034327972485382545530047913961307897914485401741387564625974723000386992959403809884659715096705371287111599266126150183154023539947875411845418749071919448937646415623200053089447509407140222664291863065061436374451803313598206695818444076067356078198031599019409032151169063195767584355036518342150652980836991080897940163440578029069102690367897143239346139425956975635699631605575107356473676261002013733082531940990507827953439619883805709131042722860443705965197177059110917300842723554312705091840803354645992462145750439153613973359764843506772308195437465826827572497563270691627505964898708954728989868366342644997964631217369909350771980620048338677866436785489259905224158107426113758748510679149088588147586410604898429607703264645545101615496985651991230561661485899270308627149757980605158059889845934472411913067657518724460891517487478594849305643452923302231321842690424090462015596596657814825117516559016474725366406903491303317715582575666876131109386496786402263326200724068669712760714702567451950868263846856040243510433471795741356424304733867313663211073159473004507897874174537034729375552492826647012916093635777124606529729217374764571836127861928466245217057594479295913301474689108684749230182554562926498635755672850704826399744195959708663995574959648627018802511755579332367842576214889230101337904394592631523128143888364647723814464653724686901906631560621959068977352636159237935624762424001136771414140454856070264626208807711570082566288909339939232208688816530296766162034762178793863972845331627736784760022476087687016622860309930939728234950257863697903184864514525290505539268685665532142557259450504791889826419250884314790615592248021802433277878250643175792459741079976566990668029971406329235115904969004903682056104639981767569368070241571960225826131868594142178673085099107125734291843202508016881316399215154239037124822367722086418520505345843191224022868449455395658890728960853169374521279383342414014666220730504311823530023192752390888492887121601335682745023553262184080593627834755749797410501316558721957348579863057616923799651425726474226912365217349030156598042464495743751902209428692808670751941763998584119513275481345020354862997249280235379986152982567488242820125484620257426885708797298330234839971053833804692865823251310533286351971783307741692045081889633369581993850764926580200138095361868864340932200970373192298794712232504451585492173804799982979318955698716573667700791818514081784761879400422279829450989721239790375016848557671001064503020070263329830659729903088224786790476221744591522665152867356018547282839272752402220455923238472669057484333752512294623118833758155147771156491678715990066069662376541439636014406873827572841265880791514298640059839065009106231757900121088375510612009637512018124194873279792429643739759529486146606596575765708249189111252747257111012236813304997003839165258919090080095076677404149846729597386520107861649387698076736167384387320036044149868286741528698841898465131745730388333986176691192350711222801202537455856080135775997134899829920238441558380458228939262871853107637526873656823163470613180385564403478702852787689921377636843205967616837571482535665334249137245236923024205970421983494145061067154871953304361549412001821026348312894244733444880412258182035281014581396293344512299273479468314764842928930236818489888081210416994418006093187037936022663113701367552616265669608964599596489235862592171720594817269735543154676875495769380921668936941210796031733129530468034937309967105914332390003777860534917464437791324077389918526268168202321336273394517335488292254040675752924837505628779940719927961991041214017266691545063145965933918516245473021148374991230866946290572277001604737883128100033820461971767587693344871175861667414060527214845777568020898198067111876823406623144414396936406961125531283110547458624578870523548204123798262303483600591509351888772120629312407783856163157322800136054101311085421111292842161104478452686470385610373279970300149695586320430076655098441859309241853022036346130582025716445744450001476135874824990808380693548036179184417018725079932809063729581010141153494497361583229841353562823418154766270589548718217797372104930329061787390872109261796901184716872656458352520269150320262180897864519233097479386833100247158310895665517972540689402791425810144812423337115654514797544645905745161793668851896759488334676125496335037966306326529743357841440834471947009910846055588182481521092102255182823062861538934606846298718973947586708069530891190235419844146683942805866474033832927162219574186674686886972282378024616379303409738411810789534919796065368546057174443539600594851381856373048516368233429970866745762938579762612594016618875275622820635352861754745085021853681746557455017842548738263085704811099560259936216649776187476174694990602795271433177586703028998019543303559394388859551936494144707931695487161561368906406583122781038312553591616391905024729207401465814378366809008193648419459132846742944465959962975539155234660699554963963125685732377657708608649223794516398594257099108453757822339405607665887208864991030478701213898131238118558591647370152936646837568818022998854996976923008896606454683459739061091732287826855137573290154271296644182876657139116936909820831104324378579032584583028470765521884137442224193910588899095679718485143325545955056679867237830389209590305359840805924172038045640280222277481202820966061454235510452132308190911951982289005297195356385102881832308585603886385049947819808832187359071390429672683075607326772359738140452685307205733695805614744648677604256266312416621107174380421776670047657391741096677455882883321053370274811548301769503085743295248643645398531504172491482072862472088509129080749471122317845893767147277977439203071698338922955942306111886239909389542749874901034342338659687482554150057880681605707795250632618569422486906806077677988504150590575258045941146128564991524455311815652700202859898237443340489497329731377848962539658997135875664338788179931694423749965152603321487650850818869842884039794485743701797969114584397036112425369609481455801095484965312564927116874648535301847240772973398096631141118015268825846185533377683937485186866166372728129058557208472248605795035734145860821140424840781547073421970963542922066894584346326517228995759004198347221441767169735747068787402876969916164460308799678241799434203494845628230041488011216235435758574676902146278679961614837448681787173087299467764338488625613850891224804482896827668176717462489660313977696889978775978700673202112204494498742902847479882755687838070868365999654081907461633591183812836355427383480381498488889551846415637508156945056609944543037890118564461885590982069039745077579618704037779496278890868718605513100352418556282575401702914923910931083276889643982925181108415081948024230978005035912123186912143303937061198137539401587851114978502315372326661998428974707773804748975063379050093173312320320317265089603067231026817722603085153596058213586867747676561573287795736475218072642821811296033962589639368117156360378968795631705588266812450447749937205197492452922866179906125121451045992224683070850966408137713544053125595259181044056856897498335658432192496909576325912904970669082439208860870599048853688445362139855551932814001823336127933966302047057661021690363605862654677857769409832503770215155405634269863587154317939223696291222342237944202472924586628323720593450610170175074126447782877482578418016144572074094910946721523943823843355555198534902864734063402464125272784973681895539530372317397291731279393668209664951593847241274024515219760183478996666069961967315011303748406677498562706707273066676240110722469989939488413856771700871940014032978910408737563417661738314929302891796384356360320965868928117944655158067349166695178396375671589309507206196991185069307072902257302308848714013969629538335364294600996515091899786015559254175550823215424066490242376593251282736358527287336030583125852124784931934039219236031540065701483784148643184980101739186131318480166931121281426952775293788738795687298750209898757722076968132044264490574993100827571530067825188602085499236384398742488701497895569176948826122417964764472150114534027672873170932824225221883341233072065627775908890636413041408544612111167013834918057477594765432898905591564925922183901241273607905913341621036279200679222128034654654618696928715711050659502930260584110461790401546822402560263314506350773437368378270436438408264135913601625554697449460361305861911713664940890769806073149393392592800858402337828133725662665934556063778858921162434201601087483668766200890080507492635892327140991024145323221178837328154333272727575590813757866476418430582974304955744101565797775795194798758851673551351828358749509068850046328676613614383584138871814211070572524657141283932356764675767568797689048823191959070593740646568015980581711692600109664478659336968497212551157602725016005650657268332344470624560803261056475802354306403739409324928462578187548110556667038371935953651550837932554210243367561188061380919455654294326288135979279073337524800155672290412874542734409382585521405804128175176972157485834312072919382006651754037878347850405152195296175678793223889210615992419024457950698233876008321980601628117243944045027781638556681550482893636314025602167579866841713293251362551689462801037546722865024004577360599264330636980184756336575546985242425380497329701896988596154714837249773159261768630678301344132525221381096072414083276484072037103667853634962791039193202804566440165076419460760389034606630063323407902150992645066844264863325010792784947665667812815839901622849171416668191439414151857750339687218215155493549685070911903450581429281776543043618196760240939662970917184376856574960192133291089682420777197607602715588159312882128304179753885196474982491785437846815357906593513908341131766705124289830760402875201510986042750976948189836632113089336720027235619675317062070054928345884616409903394408600512680760405413934884542432992041288968160108999947579859619012832648357919195668224248428001849228801537909666205812905422283957966226637844623220123420505685519305012920471846819660219416039887687449912950451227559461934577103969185703211799756600990647332410995944198558659332976187727295076760563120792981255053123108054626624048947337491176910365375036577871562475256519173067279670328017626707564475374672461923698626752960469510428210935534248213307310084713278321992064567715075681702263016852139504550803080471851706783188829840825830482061286171698555250854125781169341042534057788489636159972634333367022020868348285485923551668910691277039282916397531954498380500726647045243202652880523351757653369950502533529849690891392311721978664133707889952252108117251523821626643979174520209861048196337219985711476591049939097026635746527006466906827524786074272710370191170266067844368820448509235534944652051918384779644191753465771709155721699710271305459716958949198160773998394676610636596226748879917274813985983134264951892672593048579379442601791086362035238770024843523579832909158491916588392378477026190674755955015167573008707117730758816743723300537489638491862962744408665424940362607091491114404239121302732706421204144179234878020725608676014144515402888418197330030305355501898728030800786816161925121215024618697285153664987650913630311841027204220527605835197486512027956982543346902154107776819709074702029344523692451681990232882474364286831833798172677713637110062186713651781197298693525706500901712547757156588648714014736618064162534784489255683779765807227127004842775537569487859203077365237736797908253321722039678972346463799409355232801109707148275902684698770360188365449756383849542158461633019933351824744555179910234063509480890240060448317412290456189022203956372648951121603911564119474341383407032738963416849514174640487765185976350042759494548560152093178958824724729555822428438002548149156400441456896765309926469976931724647595796902000299920425049846710901229303312675299440291860907889708474431631483994856719721291732223996846191608156497883551709977814034878371389939471044143832771157113359126130200920375635096789877332643278934634415327838727823771432745339472815645822703063380000575059128383180775075219434973118894391843909374969731522616676642089503746364065737373364025283590135620105735377050833588490273589263080506791136861702463164009032089585259422974535833926168295602145109550444741883231843894273033457730861659012865265446901918825626743290730914160042855829292108630563276523050826321881122179383840123651787253022159200270042916639833956348854077545925452290292513428540321446533018114412254113078947765933803545235341218325342321068929065849529288827440603499235896738450088334511180415697308292585190582205132688069573917714995303612146941181981297815143808765770054698634057304305212068640312037478570678692906720996718311550133702518008760031581072253008828048925930575440959733317942790853243456876379229229215382339759573232156775475503797849538320673352962146233706356581049221761023295865402662737393880868770604052608591352731560802463235301783615654509257735850218607661106903626735780852795273336640955818033364050929314238173746533129156423069756952886175821328450786500475029559153227774445179109863554221791563896062517050774586306965888787575623987060026880192681127441719625635057073526628549946498032905866205474705040143235337441971333255675715147750489047362279514003631112995554498244132601627909273828248312997040133398510771069850166119519619588832653527958861614512443006280278823233719077562688385781191155248786231132704553029010828270389756634839401542157834266829199858220887754319025940882239271725502195455421589283154725341455889169839573820562868453513866044547504648602082097218087576558326021635780456458645833524772090165702294300530363997683167544628315451256199897951389522836413771111888531676996924060916854368210258332097837999263682531483939099224723697087878197707056805663573859732548844784873088233510041835644468406855255840321504030244204553584923886507718928562251279256121099031110153794144438460662600379845547449738210989925220978982945281039218901981260036412035525725752345220659641842793479454091700393461373138903602169629242430817299916104912351307169835014951933868583710542711818735613220892467777556190521338532108499170516733776626958188806220942769037907115517122923607664975746597850290100556735015638925369842192130827401679200289566694698557523230487649934225898905789126307720663428103588667767446516976133180493755911862512844371127526258152788965491686944564578704932851524222123505335627422612706077611107757600803879292123852497577941938970908054448494269054541342339382568266856192824131504943269698119249825624783232808995303384222702645751082048828350926571520625996802409394057769241307931598047596291601543830874853781149873498188461431404332284285589595336508586339643009315316666623817656955387621502655541320172789038694342143848048863423149856211390571112556837767212544668678369183257168925613704514561592456544667623433379520936548854880654093104832991218187510122435475194652618093357402892948106836426405731157764044546238372676587990381010045977670973842701528096715021770613515814814420154226417486900226438943314987170592139312883305992473897762581554080529802365071526325926121344439272592883131264942539107244219039464921800512408745487037249933862871785051779180762858590509742061160456964639988880984997092037261065888024034000692387122669302031403424278528404913854562062488318715517100241731996745024574759053908627463489737412714860927956224215923967471676993071285449356098452546420205957149625306417690595204972468165387712311552325937955883426402038725949738324826122816707937162874023334740345585970758019441282301045816547926929310243467212204422749332543200773388542655976777545045922560229639012662034514205664495698438660756627074541354044381344019795589305855531081052331253292196505209697558375426988374347562367816259006927034737001642000228172974694174330676839439902612010939170588300214648478732733018419136039369947020699445000865187754849115025747426528022634700816499800776131038085995689499663497424416208889860275665570941072256059782619915134741289434927418970859333720157956374727520322981505628478044900334438195769188539865921163427068809033473744287284234434136025874228296917986640768012533399039816073692068742841429022384734755121105736729807995735411581801754463097678409215589509769637922002184109660908346077755380512269267956662273376477928531615147181677135857599502214852178592849129022493125763414269171210245914707981630929456578095643154503711623824109375128667187345687406335626201939974415717053240501708678972340015183169201312103360090052947177576601214194358248350975762869684469959305090033760810188009927828133423925393247845029417328977628006816355919991575044412416965668075462644511555922044657133880036670884499846518065384909392634595412147636744205080229558387534386024900261922500440118499503293148968985104815625852625324311864177950463453231565629238312115210333611866384601197164950049440118356172417693534423829029427062392833211618223047800359444599698401497841172032838905819255426042593435241792561517580534546975202770875976687734196878617522017574011056133406726267372760747850692549963073322655203255883784553811017685412567939290779827401496922055554613526545183967681305357895403632761706103577110779143838131255593426045538707526634770053038715051932319037441287499199464747944033367819622036510861988067964518908887502463276016430013896006630158747323104923980385924863480672755133107910611421151059214569847203356522791182363592322846673254060579300663084292748177224326210952746021382135563344021494216155353284233322762085621387923322867701586492842436879838711832485880664332596251217866750609193665153011763768395755641706187281050394690554598629220675039350272915757901011062969175121978281630503786293380212084764221932945832343767570656504095093359180071606269072153590421506539862443554491104359323962763986342934219069702793802411772106806779153399020753803888459465114908766607017560467538356989936857741138804700631435527224631942914855137880653543737800268577242152620427884953980156538054190959929165045913497993900252342560965976291366319564237005228133582048977061291742398099906592964487916207553252678288293468907119917689401082030064264601629925541474283029418148390741569073925523733331195185992330355834909187494960088236963482634509075110061007746228940869846774602609225098546142746039021840570371649196143615276597758009290104558471527231087101129877395063735883542216864574887775171611314487089731966837980750181745360669970339763067187502758512042397648744134184057388480987723751137985954718074570099067827674251685225298597686950699323314879146415092908910787074076572332921245770462509593071529296343349218669066120511308003985830000553436258634188647366257803129453625472384020252016735728088012866616488570792594591627393383571059933050216741819432624030922432388731861398904430561888952496199806475717026457342563491301360925028818631713816572923905653898737781080722654942486459748129896986682925815891943548999240192333330805371544694788239399713695112242563752463124559367489242996238638474362227019109318474549442060471215351739858820532929065780200909907481718975235228143564962984513108731508354681897047824701230034209525530790021774214605401858318715417874353941481984156183779813730454901787779544869522149321227037148516629315981880122436713860714542921492216469915020555573361690903421347573239150168837483058481223289284917336581343380548330801180079645650426112414207261368466140628086722492871338974960609019710160878647559948837358324178627227428136414876439811057063687444638976903560710467341443832805899063990483665444102709729617627229894633081719627111080257905490481161344691188082352942780371491387967715333750352898612257460049664033497445896748197880949650501060552447482685702350016946444345746249080834090301589102321146969005921654112177331808513304653719392883136080879833347392988775716060576309070779213795311917694488899205547820067620723999178449766051767130457185660878001402335619655140021855204076388933699461569506617332847892663442725059782615056774082305698951151493161215926938344698040912988425683548664368568766510266793632493368862821954485735048073573092737137194243421193066567645319237811235397952001586337950619371487383101720805230771149824396795748857847257340144748383273967118824145528248367895869067930663477639431962318727403318547708218227384558281360552686553339429246822188489146992592275086612157580230885029987141690895807090591707272130250574897778459464437473464819517771417642089958245893082248637348089325205658760470650199920237722803289841229052389594355168766849886504144576310701793365519957136865795521562009183786026736992441729283034393224712197390288132290789914837539020377599799391065052481048230466526458958946655930666306246653562585351775537973522729176790357745683851783584083252800118176060724188132751770603825216702572064510871218437997639534843116593845471070243916093757301683620001721024497483744336236440715515564567694824516973735576509162645505024676251975176854361077490362137419667260432771416078549729865661846403756167144567675579179309506850870882865754565261358528617822581268633992591893150331525602898696377198151988234391901818635573359218159705003805931134012232996938457157301589350379217259090473458048508463431956286974460687737415599982178458344945879310375650344405058776022664552938464568054023708587697283298574812905532515036798203684741897691144421229973908063701886884254623776976953777991733323419040245139426145475650590776135232231500217977971972418973750480551284288298271872065959455940299394982958298013090412155210664572413847871862157927592830848040982392690447786749394601801603959674957330362009744097205844005440916704608363946664167552900249987987416851985618897423084541053786105875794853652862534417831804049333636220559788723217859767199466221047418691007693600918214085575016027926550643330527572573134538563715897043987166806046218943230495090483600020243855508477366857277342175988007299638369923784677036859338727298323543041025765375314060985028022644379392555389530241544549453694686242673123113622783430327619246611421284281423259042632913882004267186456518996844256826826739941367898995207698799247400320383375171400301973501450507079952140998933225761892956393823532811464227581201433004547059959755667420818076138784890836563134809005639470036418490756196104395726316924729370308145010262626765515388562971823494777209222531390347471872601678323773922461194758740351609537100798524451757685215047161354979266978354776862413203714940725647733304536812157946317140946674948884525165112075037244486202752620395456567863303992208382335271829252303035805540961993296756701300867082617360989389951568364468153805128565762681138174206437596458857540352324014469060967263796082207150790834783687586469373739486746347281877568647642906953074988241951988958620653695116449618363237961782061382474639469047571706055769075366429301165265841300046313668519259671716934938746956255477706575225438316694719071828979917733233246127123156942857536340149519999364460653575590909255590583849098588263150866915458619086362278798114012716032776555597862252488342756878369084782226120321793452112060556490051553698236722162601889730172773870710258652467793661492184657035455557327632232734864330607218709700174696606503268917327412080542648982864936445191680865547421526019336194790507762919070203415600460042350713337308653442226882310715589555774575805840706548045466260361154197610444457367848573520084836916628467155083607272865275703387303736271336323917380083026968401905210244757126116106449761051819459956332158270366085731183154782156079548593259688827139973262774768358203305443081352457315514898145022442210868423699785082301468562401956182164816854063649099900589685059064491003616025689878156508750846723636665211597580854371767464192155882421556395641647877400787709208950777051896536353188250969865038004612090040927165580125121155240548673094965082847653403199448207345666352102936259071174411635481591642970946509189659929684546625002817624262398225964547592198060273060771745989173682047113939448922743502033488822541138713398299683510114914379739723131963241434341203923251282956712758367500403060076410997496814277238958791177438333106938180514812194163336982825996569014924323378233530771530557269239489566995869805533756433613730597548674719052996740382563437120509250714055847172590395834639440507973946088747119922064282929011811772137501526814041957554423275649983811262625903129956679348429204196629665496959597341787155676125974159632317227982740512033364192176800548143577685378572978272748597655100135986930688575292604185284329814543476423765073169995690412391454315326126011087495800184043151502054894214541527241432571284685600286547125995046133656712357871228294527488664750648631723158025792790140942418808574688952453408864783056869110979607841106535889899772933564022100134049741262736680334984534296621231443441941656505961214874586023441224758768971778493547038907270372063028458849849404870942891698337426444344761279911657541905488179436161562024058648562395503111499938043777930174694388848230779480908720233130895276657433571859222922957124517009753174024223881959394668873943097109812647816394318301740308088227353942401800379553846903600507049364080398877707411347179946271533306090360629663001162806260940916919040153097383226853659258241546396909603047381788515415608413674491946630772798834917253479831637208087745965269102120513727665615692665878900496193252107206087620389118767951280554756980461599562500557070550606673636017940087713523416202263823749060784037912920389551654305430369139821660999323776054708842894437324812924847039670813290846346028727956525586107300584434930623240581697612046217895659942400931760348347815696751821969551476071339695462986003437475145828505320966497964532926135274187450709589809102171075467283844472783363704371699545045502141847799095286066231470100428028357261115717594311638493572712899265242102721355839231232721657383166316006903815147291887359364526478121053097918216491205918063867724767768886782894940708775027658827496763247675305920393219983409662320570047703655240058420293463637131141428473741286178445105117776774017569789233404920522461046138275820148460356250906570261949763982182714423603756288902762832203298819926654263763583995228794868193884627453726032612486227561645153025555552851227447209844054401383550943735696107389863723156355768339360243797402814537633125567081921326180124980855722871323806858516158869130489852933238278615831042505202779137485711013278107321771779719844834842122624533315259593924342202931552015384798825393005274254714559531614583690990815007542935155603214782930620578224305195990485712047700975357675984602376954919592151893667176497636038133819085426783403718687960130225344369689242666519777958212343665041808016937732827664476783485872553465009797880954718309373996179337160902942005689057973422968801185518075799859282237255397703529557991759814670753008525142734369606878624912262681016395638420452475402875614207163534114934803741510386851611749520210267019111929708409628916406626925295381584502604367882772351932903276935769384089096940819190241113148693956185098938092730218118618522206896828014539330800084130520500127191194321120730739916656041952935465710596138836685672248497146852270955948259507581020445276144902233613632145980372961484656333444591158139345089028673913143281518304105227058952081726002873017486139626593342550829419089584264003552222617887512269809257019017838792919829797730706065642302408517492736678850037169454249315027600712724892563496166748392228015819433930609449404753051835215330619539859215684232993398072023472205258784472348807810348113836609437389315345276371605021178998672872895917191989206619297651847038259892517419732450413553609961646435689736720553542134105867605867663934575009371667659019664059237949133068138981490669998420077137425835170210355074147488322622467549627172202205034242671920669511929646020586184859625765972315597653721525435154388168211633488894945351709140117709902612826584478369540868889238781965598648671011260866342098628827676776307328917892092563419405948959569801692551242833057234525555519111674965098776377212878747587898296426492746276069423047614385716758593029213955024061731483385653862854743167086743023042821484528505783367228911961151247978854924648244570329191458705298784322637157505345065186394977934319634535241097157788179307525701046618293637852129391472227350678527967999914274029320322000530952905316846384427443915790233158870895153776354912828364202061582164891877304043135682892061244763466056079456772341811227022689487428295806782990269359299337491416486385924377570603840369204403321446187717550061598010138929453084341366745076946914302211499081117156526991688502894301394584847174484740176059478540097413239295188851718154912072049125897824341905443978081894080599585729757868042199034534644317269859281365201707828740320948294433189345962000391184365494419379015029435584032706815012377535653600047475618222604402183263738060529281851663462223201304167429574308278150488690779469461813893937029129303196645496608631920125098194518456705102377049152601535554336932968574124121370189054166543122521856536517993052484652169047439378032279323127305753593322232243277274430078434630509902322383333602041709405996022251760328458456990576949583187015369658618557355988796954703835722647453845180133451172775239596653252156433037979278702259494334690636414717140368874045848505867360628711202611122002748513772483370512260248489401523669519683839159908046766495813817756813533111970744142104770447046943223921485781634069584846172238454560502097181225238902667001330093007780010944450793622205777895896344592472880528373373676911665996065975256998636473240505476163063031351682098053337422799197948634065904113570363054665888218752532006655849636136172410161641669039088533113251639632326120452328809852222463894598150961753809169238979804657214800924767184910342132470266482871283045893276773149277258959048259925946878866812586943831611605943442824066464516946239955216033202825580049724549211368725537257912553105094036738854601146326228530683982998095626427527870365114144008603289758172448409751109337885555889783494601651289248193096692946604247520602733998033651425562838867920453075106620269009413977824070209497798971654064295209593753025132496503921702060625066549593019538668124826946164755404088709895707201500790887441034808838430372188129871238672319990537944085648871514904891303641201063999459570344553672127851386597488625825004836823967934612794399827953268744030209887531934782192072505306448762018334500942203965719841378903984865319561162472519322693441270521180964729961300344712841813243779924322446566482741828977632592174116644751631931367018615315609808413552847816697018181977304293877773969913338449691807948302578050632557703291676616271985147323662481365995655155871492702747502351609383357690141858276352913537274911935399727504776815659380547398759280085114603556093142610167532124219488562965238012913507313874805690818154218876564043222304444139523260559997167058589228069942165826080706669827547231742152170507659589937182136798860646734564903568126256343780619432907448608797952298826309041738557553396007607978514884513772795797590009194395570286652076886012437022492459708542069504467139437605836677091083599892389459288195853773937944557694718343521956579800413975553244057145667474429097748279858695870508655415365612958951739017592748432493266295335277616776487383170216935695901474174141386672655114281568251856974334215568933456007842709488718083718067404229318850444166709998994585644733326493686381483532022937147939596926885533496193910492363875821065242750994752039707512142522334480981635018572081771970796195887912337707240039504459126849879048157475107640011717095740174238726746667631011072099826589370546096354945085273342983966350459337119905988491104308592706572972457833282761770842607222091476117326513320073281583424825515726770136949329260212927768904255576101080559616425634864965461558686546847563173957712595211565339348654770343760507938252050171395888679461962773560192526475202921449710529465323206181167648894602711007452478057346025147675170005957472337898672515065209217732899283361715335937369342833866015403290163096421444121731423788251204123621785449166300270472707067244034711941391295624052039427056618640504822258165049108737186020026435525540923346607910610663148450794081836232054937326324937616822580449754590088549764081422307069502972262114076297848030379090283720784229117643555672627567829454214638405178783212205112456822573128669470212639904549151620402424773221705848002897579505801382049950564914538052605025087672905157926173156587681310067215684343957653282239221767307419843058954956094112442456598545504661035658125300276820287439903940959018632446380490877694348395990943228924647965569754302199757348061046265393825491438647443074504746134993836230034236224344466595636610620199214947481730034941283043121616079676834057409756807889085760353435376848492979652996360961362511387650772040411470549944836924178427842566379538597857107708996456461728750854977962380919675452648621836206544682484242006439960750365168954893712488793527547890619628839568326293924966486766225941069617119100188061001547339075480176908541673621246010605748748984443361529428750023246888789794194301303175383856250014023793271518386386670195124631781280780211934096522185764223716188014054269508267630803790712647964166770445463356605660349807321350225873623988726367563337178753358086516871419117808310401526818997854642626370967474109417302816814440346593401878901372670257887320483511526479243803881397963462020988594124998078013715486007885678049717768228922360268264620070581052502112054291190442625901886560154358856817106635178945091441061890033974270618931677400953689795855889231366793209603504498976418863307483117977789111631001504925277870947741223349670427046932568464791780887760867088820958178007066307274998721820169811286807936273217843410883750680198266547816583286916149246611367102576429595393791029159592126051426200882263782008661155304405036822470283198913888867521635311529838162212665094927659169410052359993984818742660525656473246374986263909688966717891077407072065955641924769969758848075978821409816586447271608202531839798979495430349352502342246895980243564440565844851702194323328018214910249314206003716670983081765318412617446719541912784871045529004982620535384651734666549422521944105194803513176573366096009297668251283731287265493389191471185777442906032927718000124179178949954623841677179384975527146606077182595018288701777645926929556598438177073279195610975288875947357470729542309957348251177116991626339058939921418085579876787553124044413065050550373812683086940673308864385105481640834478177499249478571222066075946182282286301339830205490670572327908656293152057477613646279986386503702187461667641051346278006376334631516546299208489117820782172995502240988396403868450592526588924147395208301620390178689641516372207989596967218365961025079196452487743355807416652473447203561177181542753373430984245538824322724659134785212917094047077474743732514250881360838867867948889045178150124762628007038241325831389678144161850526223583245702654695347420290408050388949949977809014364763284495049388949737198136134745061280064013172719814057910838732404283264510626295960768363004036588626619809985012015219300539994584743222121864836090360097406185803966963263115705774289750328993236160738718862986678564205941921166898241980092361533513217724388186727168377010277433879149201472667564598545718359697176913326505127785272628068243131066801528386315469363949683360790895092595006666233045997137899033155494685042080595204372702977034847687634392916269422150866336896117779114247729817885865559545917444602015027924689774546172625269355446746999299557890958307468243817111903481619162412214619722014633582422613552239782396599164434139642017207687036422405993607215227903986956417055543736530055227839198339033473330598562844097840476542548903224593635493082827072180537735492238622672231905702814046371760954202012261504050275966673266448966046071531649721778652619462126111801790362182876982682250989813564274316346089054790658432732559074547332486162902063983926235782843495918364634490334365004911959637772790891931640694537663830765246258286684520061160451617606272222279540452019712168872364950102400803352812339546638630465483991164829769576084576028586381892914369679527793338289167890420787391339140514207762666477646307223136017688614087625246007116648981855416059602883256618298443661704457801252762161760672128888947767124903303895905432892229989366323488680129368145769573217852903259240400912638230160565259388421568766794166578345650908330313467977683928687885025668631944460418392849081854292129695256818003948326340798200607018678649206155027878811913421609897749560502297240742388590717424203103356002741915623810903475841390438572086311262593673169757372863801917931290111208852206817069098223638183972174858979869871608077233045498313258222029639780191210202005555485345857446527611333125586808547377444916795152635405762631052226727559895017629862186123061562382274601066745034243416428353885872813521577491614978318882241944702714285293074232949872522262841513243608406974019595179101523337138189777580165015433505848286687498006411460131431185528025259676102241783605259490395145212764567288824889403100085969374733328143627109290693030240746982524796247285267952548106164223129918052159955654982489847036968741746062898605126059227474744041862143203853271595238314298584651702636849588418184099526902310653026266509817877403023905551181859870825986601476774518352812175647380121021659388947680313459458175596761893144018379429183942390263566772502506705551485300080495771456939313009344405641274132993641190080848768570844143995888881478877814773473311645242717109805937251755586955057644283953118354309659270998706320269741892479865328391318384166044221791132596003259622284029492726699539054572172151902755238335827319399227946645802902088474168695708562216173701730082242573396523487474265376244382460603281178962516116505334926909627520104946681455033119648156130590144133720572928284696299007178619883483406494769854006055173892572340343615193011541849254155510158417306065645507963270051956382226313413879148762064535768852472194699012200965903571368748546039758647300606282703997650948400577987747108157996856681061280598856983231069904390335553303164797433205851289086263087684385163153975805764910006604733134836733346754935406206608632425414703635527461346086623767448292178573564738902146593414099535172351015710020776001910813948517451869648279473838571050720178173087375606406716645614858952214881829894919251474783509110644722983373752699415794665261536858718923215187419189873880076568964651999870981466444534356062029558008061991140901476402337243370113380124339635751389018869165712446832438326622923720344957130002468828465181858877430151135655250471505196426536874617571389975173030869575118791993461446530168730846405493078790358693845604366993653087880936412141076322801315923273254950963668916699284658356215492935375468219981860460957961661282909372791724607075929234914253651675665475033347338053003253600870915774157544419331513377816093250685048690459588100605483632320067835135914408765782926398969612638552288234583164001081926260207063397940991899278139009152069744055147000674050772020367602789599134264584798555419737277692058316440122586823758047220907252904512941315484273053140190990624193372992894617412572923401620267245326800528274490711821283868327596319518000227466638915347869670673358291564703324966660123837800254041306328241569907701818254818557150810947167257854399759054317638224114028104560118403716673532063089044968891453430279190991051986195272746083374993589384772108094411566174094702303061967371890730443676056177918575029175930428738851171067217056296925083850949014490120777349291944973776781791810677620379437901990264407775611246025402034013826839670519181601444269576452974019475403691366343059524552217548686310595950746734897752498240482623803178647908857480802809504894103639171743223735675296209603791441794841023446979197639992673703951042425312921741746129048425797008871771089844132998635752331670234400770010411257177546762249561936043835474504881604717294353678242169117170210692897495411816797189306907236878492223523804910673638883228883233970964306762304495500749840701053415874636836478111385293264076452948515491576773332376826396317354473712635777784295710438546444804595435764183202163709336883622780466012894931774171924551463331386897053940861381941825962515755891332678855050558056072854408087471346913103557471510555480413174476658752170468638506866296161590390320461174237269839119031223183424246234623722834531957009369087974611518270195941918129479346955697964871208605819835223166434750036614835496834416395767992472594204135065812839509066852631006882520355716450061234412757781339091317777887117576498737720338681256690764480278106152666229812446641277406082342234412260196592120840350441976413610674957765413934189600801139445347151233221311987966622383983389262046946000227733426390802289135129170114417787537398259741705977973844207422147258813195129364877127300541379229087468994681823681253253287352675866437874977523247559552353388806289260707050190673151114602664141950611825770095320814564285061047766083753465154986094499153500963221995297230601407711653350396257465704831165624192027228140917730451474083651934170749614699559372598037994322898583710608227778103502234363930553058754499900851580004575736285035545791790851129584246943265552956039251640670920135683343415590169902106250513226496757234838086367994300549693709567095314721598909970217838204792372113012922891917481572955876155145819156266558639503121370426630520592886258965018013046547452054166899275287268466274023486604056270702317066896078223733801378257497231265146438324653898861219108091786974932234415288078568362361769274376073307870851550583026762881283199228220261169209201173081122819670308730163204109524362043027483077258321694767233589809152322319191857953626132146707612627016047109320186763707580796320780167811619811595823814521872880501526459665969834311554813342150534755430757029018540778904393069017389265221901582764897682491586004312069727324581558941690289282175453841318615039841351495285016861305404428609859954514525771935888836603583511197153347089088076679623464323940308993831422672352267777669017028569504178559860493249565052195670013616688167196805666418976513962052664016913281993619177518105212749112678060098388163521249055996253703938159911657012046362593881043803104674855946188333077399994415886525140213074305978196861826873960123073686790898271501574830294318468404611128019625526510647688708207959550835984339443611357149901842913961335299921426079342663173738715640303264692440503233631113046036618113746722769987822465685863714705001985013533645502243836068341899243221769371094445257003143664406507418480686753846134707321670365395250265711945088969137022975153586208030521164272150788370961528576827150564228295813073002236191831230705511659662365067150210622892116703713757819850334893167072028264156581438609700300234621793809042232261643901467966681200116674442439758049424522219323206789335143078742088490171152779125942286576991920685709709350031621047160982967184733504832941241529984157993682400702304021502308152262346000961700080909517858545707386976005096736355857812015664982179281295343008541908039637920215205430814296701592756407536502833366519786472878129808901198244069713706344959586413263282765068367979147866672805485374796537597608810677473007770261547464056999645265616331079699868497328286809574085703209743664717238150590995564954240621537023744853728680032612140277129232434119181438629314040053899729530832455205913061242686324764414404862181529955741749533601073025600331085760233145228146023016791970663208275514949585202331100540412267286648385434300159720944938175341770212069390411940387878629370417431236229301619320166495752510165000995211779746899404054151256253830001877796309883424576813123761448734104237871563128273429774096819251030358712937047367866125488614540232248947497775168637144622456388713857477896067873053852917580304162045153845742338074353204353421899607853939861371941549692608537835746668367615873164644840771578500641981224553600692740493194758899647549781540873938491478906980913581136831925652549559574744863485109790821518746761685104745718970795310158768699678016255494636168011493110380091072517076336293518647734392647932473608952976171014978304118830356152707732087920237148423077956629902205201942865491136389885421684596509023482427560254965727897614889526288886188738187209967538999610287513630369036455071747203323562693790067242571644147142326032406494662937857298130664770065523371686237471331064607477511033923075317587160665172784472198648277826860134098636908404353145870586427301972032238208849674461835772001218246448964714508578180746651305712959448748996239753473721864837757302523640116294280699689282822371223669739430673611059569683852550473741673749547415575068941784277777733373017034602463974595046312717008832690943132664055902331449890650336547324232333266481741351846010301575851986099102600061768925425403344174216785433823360478931927696372596128486071365877329940447891428711304267838377418007060228799105567145213064444037061957218680447585248056212900141814615945433516549064906022304682402514034902384099101222703477414052427913085838643555958924917739789384614348818593284191074961866213235118914236233972413732637236939685744562488492408057160241965495951542055199406089151617012038952185590755874278239557375816522012679801256061205475546067953537014633640216236494570443574530909749886142393199329331353503963618415062356309387189229889246524055101427950953763322707326537303111625700558625028189862524485207601852101585718953236448006463780442042217740037238799733251049209640389732444847695956433815418681120811101915552648714791900703433367247546978621294756124201813944386551268387769514024546191100293883520154773329343690173747554045208730274474480171976926531836134132135309463191636850823775468448482989637851743192787111748680281623758244550451593018366671567954534077071324480917158204483581217179588946382179158004316193969681556682492022659862389463840599534382825029328050993280102747407443260885793338823540071149927336232499073943237744798631142554443822599815269340806637363270754937021819071446266549713219430012719929047789931621391434019282439577680923510201068733210457088526479734568636262649546771422321266265400508974561169943825171804350118845364840030470058580748671963946595618267524222453768824662587981612980336710442169495040010420783452370432524096066744886889462582974827689783581564404781216079009892572122162415561703926252886120804678117570044648131013377658964299583108049635142124050582283389364739828869012989808593933898676559919914467468353285080543165699066489253695753517401389107290251790008563781428945853617215413763681541975060613877711161508544236583678977813246791700764431284873781413375859573729330973850361367350108988819962645351289092082243028709446676127226568460430761700359019188520249384397989414366634251512173013224445939842405288719530695025286620317549587205249305216708331408983669492195246140599152949220287288948809593573873459913575288316212031006486788674398627390757195568585085276765907160063794230408296697213673103541641465460758138901763639616268832229742334287009457256723408575462575207731816112296275724648530802627346729085118852090203111083936866725751370869442376790012575616306342341657289511085308914414257323915158300640435714332858803607813303078651579809657672591617256064706784367130643768698631186674010033548395760876555651476062118874933779755167681048685772081405669569770033152720442106440866485320559167626699471894952738900059524351563699469603160650640470871667138176468211371209214571605787119837759172455011115374278907535698059090082347996996973302026351976574579165148040452953405580832524591567786896651925041772315128606410157555650799842576955268807934931530534993963985177268684662765600504219091572488749847718483323928629346950859758007314188882272211185005605067921864199706335734821893034239080310972873058226576614199566179593277195851561049897332667333846104652510429951103377831968047644670197843518395698314666190738419945323755753945504699561017674996394495510368858338033664722785289591110830736048535856471499021235304795508175593586938530226111315854245347714321792902055443126759952152404193840509962064110217994621405074153668445838877469780942975545294194716162747812461884722116845091435667053762068571601066907491933869078507385923181087670737239397103417186293864134587351053765745261131603616165719801928635922901125338823151704078600976384313524541508706719473153581322113328350498651440879719675370985197298751885994660059914024266211301239871458723641802400578866600562251206884232966846350115644385168616314219646748050839626889246472789330044603059204789398506802363581150683157918429571565948262075248437289284194471607894562586130130236338037167188078676869584505878612064073749616507012655419681730753063060888254642816738138819815389269566480205393148621255928810746471614724222224044289663605951347474585115361726669660491537766034394106654365639693541399947518677004329818611754493146047437127011102776174649291334343275613416307346930002010569046792130919442960178055566386865081897214983083349447286500245874129823183386716011931428236320090385867734075779684572820479280837374269084035201383572970029088892904218730856093434330718255593353184388902810576209910286088254015409576592598362560257819784295564040557831518391640135441927345254199278355663114057533567582900301818985179963639567418068071953433289307026837290295887657272814738700986600051332530333399895651179740084853520223537973844694455599653663315690187785111862213585586690328130741828787609784385217646678722856500536383496273035123832332918190268969532695974198019761839365113868869937850519972973414294482601630178669818048065219767070878922567539452443618730800950856625477691922506585421584531813786565248389180820729344591731090720593076920161537802293176857044867034198413309681042723976467165173206760885558172985825168991827393796585580080134325818482627840796876685107196518667177009634156432555847988102648795802770696268142944476603352508179227560114667982841752509506061111533201273349591315934052432915850557299806378573030099915250149589450319823929516586581578115856520712910499970021735893045276392803254924429984870312656207063321079757701228863666338607898374764556669653429111415080038670078760369074683346667935723085421773614428586843826366689417884312468281887355041031664023601800831433319297956213705372394451971728919275813787905189373409462213098401041211583262618643508710979666762616549863614726464732171480466485856339417073523814946548107609962569070807581716358511205533601040998135825024438493503338377841162991464842490951176119006966702040670649574703229112840585652264700830689402557324891446358527032305517284076341597034039131025315065761975838337473442422203561968993105238657744649940934886627468846514236037411998833367324073641044566183629415313998639692672366159716397153526894036602213049834408191619201453381272046870526933394804656944034844098201836799373399827934279145616376239289854516739575417116650259112652343680022302793291988335185062525241737286798495077546631064429219008311504909045697582966052871862706207794070192222290704442628359878817276409896575139184843766618715225429008691898033264190931471095710855611096151144918959733789990037694749740198223127768201932005776163999459591704532873286206640118867048657102022088461376034862687630474587783940481558359929877289659683322348149738267415674085541083987781455930121882217505313481564629653548832900103194046905248310400518566251502863212547518332136124076822542072329833953189452120152390142191978475555511219740064149191160912882044550193587952852353632403235099372428232940677928014441463748140628046701053128431977734193105164906455649036648323067255242562572636292222904730501877585817740421086589122397108159496367598832024601689006149908784556216619026170147731393726165286222034739848168791632853670102884894375009917439956799924932770897425236898650239901106199985453265219931615668086587480546385643242115744713409502586516536356487773950533898843172916733259723103858813255085234662936463021769190974576237800224578164345553672618653704762469159016961739880553294932533553708774203903888386913378532900321208034417007788550375628956506840429108752882557871037078053729272598026081826698861507743864046668245393867438822089854285806546895706414627863126703013453584397837666844151897511873968202031106867628751183436202048706739238196601677219043007875547280981320105450547876781832093110497892171907131779941061609198130314179825281557841571693329520787377605527928111431138167137989466684587387571034723940977707161696481868243203409478634074663341543519742356506574248017661319657296282998567226611385243176626846508891828572050677772103171766614400281852862467455649981751087362413543550459869061283092369801135233846089356734661955557363372971988047467196538644566215177531330552122108586651813361428188584553897777562854211742172535471737835547375609754902969540615257570965828809821000308278422253381844342101678692915153171808940490132093085171726544300949053599108057347748414365647330899031631319045291146712684263408633424553695420457196106341365958968927883715689799704500467809076703697695748701450147002455239218299989340635597593387952532828221940078008911706998935877895270755896358351407579280909766183483376757662250736174125441664349662848771218720380297328809105185007502291400430910201084895996706847048225006263621932889985177789709943114319580023361196756879568362564991179607759107719093563627736128551307274847488134464877861215750353705695730772482012854020106339047530363330475994024661146901007727839557235035072037596150885194971582481625749182044164636505354175351761437221959770254333868777278485266515598754318524454411325914434100440018124838452172098940428620380556136841892540217599843056758692489514290921211867634795683355846602692421774016310723474882980788931181797326515524492796239901173058452740094940312238801806490641970977726492848984992641110125626837248147555861809005696887793578461014028948348261736222071552367110615948392297645124427227927707807965301734821526323820720132283981905735827417828610025313696890821935414606237715645224848660802706780645245516562009334444525273579182657470513220237213310925023313336911142131341479241731017277929763762651490196888801124040616907252018202833298358072006174003840108497315444693213101897955206531783430692709661886702422149095329185970406286959104175732704255597095791620467734075987482948311815858466892226993398832007332440770680218108291200791682087230656176506781480421693016239966439685456837073358213921552220467200148658640438821952930006238770727611659325329948782916702168261889341242466571583223863336474171437457696703210000538556733793055270384703205294862670563683519382679967284467855124579645876287881154243665951726264339087256588889700642644891601944149430195922827659508403329791558741441639689599924831855751399726080830695177904513998704738011048440411111862048846447516918210459200202266810398471527232769044463514971973043448404892029268419160914052927738331279701616250957409135852440590004956827760212083966560538053527733728122966028438897237036910103968643968413657886661411074523230160132372684372315676062295293908695377271703250419288789659249807307646806668983300042322528628867780912726941931850858416674008295480046116871252638687455919047604113727501282485412589710525648131400507002218776102005949777032527213030222624530165132477410194230571750886156398100815418629870755385963793359450141027552546709314500198221501064196232583271887296160691613606637343846939683953099507577099850424880151061774585993737493981217568877447434265011145254761120923038121014184139015334025616490991118693856807841419856444577401222517489325892219752531006640298917828409468032204605210394371835468576060057228351827427589013431213073500570481617022902372003682957465006516970136037673113448377858596773478997547499089626613746951334144328576344933147656081403300888095577190985931962996825537002318188515849002155671637244532668131375837934611150802576309186153995559948043020596838107170553721962322729510210499234831886539269044384980922914296768044974782961264503704763483105418936944501898552963475499395771140050080152649042721653483898719380468681877283577688684640220042682160838372119353326927939537069682049911373583279067829277017433745744933697282861170654621527501659665203720792206052851769504003451026971216644699031357575534792746440912292617173883518163360273393862441559969645774513916144648731061157768691341587762734594689097322661784136908051377493682398286341357243721579164428191957429489665730705231834341593572576073443003840056008905867853237091489773360223451253160152572274069649722856526894419741590094529297121182884507204145011839819618676867481055322673678068954232897546214915437891866050297806393095759067131943420927895077040287719908636845728296835045088214495309314374879530327701137439603062789049308284616274486784920012305975141646163216864990099129583189539879780965666504015448536999369468648418784806042843570795793403663878084479703731105830298256468555891294204086189139454519528051256317717435589094306580979603709554498622185511513967523185336183409937662306569024325386865829589840845340959526864807440468316306652814491740650374433188238656981001688144578101210422962437226384796563362066761325638530605217830825113617213062295633461239732720654167012490343319220457188467850866852053597421989361978348782514764641061308024705012976353984090914081667400078664909229987508200158284563443452783693375795217923705633866589302516054464393515082079508147567474665767022544920664873446159756991747465146932979688662296105182403531609402178565286277795238251072220351991462108190957987436052993460149521974006995270859613367559214786192677433129182549973617217428280662312562985634410808926266429246943248555382342926281978464388383305514675330250504599191023337477224208939818271755203900425217623342130976102439921787938687124151974684178420847115599396383837439996773612503928724945584051569763938589098149747256430426249061208586064640320924255553995612489249843794527050001876825346792127140482914423664820739725450312051528775488607938534617220928092148014637954040949922391932906792010284949577580012685199672623061016164337366267330137595341622212517790862203225915061142326524465738563997749461216334538138340656445948209261114782763040112918982628579989341838608670851184794786095486389215509621620094462622118670416102136713035699923996955007710206520034964035564882434748437734353351546448725986387732261282860308137157692600856272282014780932290716958209888674431052415971209999445834313715693838181605100908888817184409369000732896196608036324674097634306953922025251328343225203540705858004044120081478569361872784703968050843204691133509852775844966822139118609964477280656910362204550271102764734623706061330517371322313647620362096794312678727569855977111764611699069182505778430559929446500227619355536027193877617317763281227828112083917073722267327292432161100116435841242628199152009567487166226581836663623584557905464546744084226166230135856095117666072485717658719209449459302768581408857710224909586743624788164683088248236502203798687974247098806462667866840721827049217289115733003819430611442102542920159776370251961326634598353434664813816816558694570378160718566205452921122038198225735026633100978753732590912094563288566217484361885081386419143174895965463132896743229788179704281785890668204353192161837868371852119585045223145483820326508063058360487002568591364102511827541503688166633140395838079148233365719030298414345752426866317005034335237316091407702298049112289786710382241501312424042160109342283507988890239671547370475486699377160466248845721236030251277983723613586868857013681716407435738607616375374740547467750572310194587488248859348558410662480491286051744321064669465046639039786072648095416916749488890237143485925136521703470555872442307181619198900761807565182025306748915743089685748774632923157505809474058928921952246514086260755290983042956236764508113236153050931307769689968467844678011083716007205873765874709498533485703212500860246279061789240166580583166463503517249406390220040676536770511614337086643188764319871228012790680300289528517277267379480508309897211137622353201647341446267717233055477480747924974810224010019658519163452160460191963472025148230470701683001099489644709195202661583814838416206108520681026699017764955953535943099875678370819941478284503312428579970993291777802544554373268554636974310990120459991278687244294831148919462195460954705860231710555859877276353617731350845146629633613250838590717730277126471045373111921461080930425044687552843763979909498494306582272482580685840237471329965253677157828327701232372744812521265157545774859485869580438519647421138028376997026253104023272045745707637392993549391254464365367305745274328551755865739586552305714370781733310835345568535587584042484799422349490886427092793692727648702030655553118198233196969077153059133350950462020167560336723266432965006436938157548096421456160718504914336286534621073149962805461902981996443808702889136934946325674115116779280922541283616730087510971585777349831302399970512022237985710523178620274614635420276778222488603376077986211014580933030879486880954020781180382333784296664385095164257113875953150388053745195580408696837733649994442690093311761475669191441813537652142308483458920289206284427297047206755230725179033780202386643593733267858113553213272373596131763559540928767629420273733200609851721651376505920139802008717250016401196847933775494665067502475602990551824319211353565402660445345693296325486506023826442496087432940162005743532037062613247059731610148749773508425247585810131527429646467683661580672369079549889012709244359789885620606163512818287271416363829045115274035917029797043234943487754658656292063767332851422747929677608531769211790364267345335525289770497110731350886551831462212285077260433903186140597843348928344823123948786208652201405479149953032926526994075774098769460809614273327807722432780221334625322972892759587619610614926931515640450469010325365761332545078136708320247412066781616322243133131636911295564211429312773561963564724309369519804785525090098347399942983751025834993722485574582065030906856738249207776726858475675155852610707063551188728851212799004877234893842548972727899124692566809904019887943306304818478549550342375775172784680109979584025473196546262289931469043647708183148997069830937175327254213681785492391188074898289543821470221004183313528089319990075533689303059801254490181333644772006191716115845966401945720803982286433232482242922293114916339699706527395394974175013082889769743570873469190076797915168893058428945145693480430057596144860661833217776344886518197553264768166481298338329621843175413046449101027663772612953879434560684971130137210948907592575586123617822318724738303007379283539193095623858277569834801285979252782125717515962145351371930816950467371489450871262501802872070994927816693509753739213692336633055443535009915892364493731752914242753921665519750805106178488915517960250701889303440095695241241342423410132743775338941757881928619808000737589771808317135252605758680714045684328978129231123013727763889925114209867098674505259277403381677003212397012144595328817992184426018466341273317636155789467423739095142211556850826991678655304232645439955763588095157678315974042955228777430137799795240211943219792297902146133050038463212892275245365397137639523998328391023051343455256847754214142453241673798735012216440046560379883963841996351548128054622026373623778616107148876828009722977615531029071936917706495926707344222508335186559230192109561780276532556131480821799158424879968375558973093528803818414071975604856008701726224288215946950744337546062691695321815223055905746581314765681215076016132163462288671569426060833836085870914493664495495746169427627586034846010902659429197608381188313791636107683388312525060773205368913354805247717659845857263045790576631738387515710090565050810515557122259692686577676467839100516715873069830174865727303664719363746130021525184191437588065940841947641210054177672894812748287277371249024585837956128226184747249183289349487982003624967880053709800462441197121578559760268534790387017420533523498633624830767733121313577152569199310883331721233036392521687924201207469268140143368153713341923832400979146476184423161837309906724438270243477397170515041053935090492603055059843175124335923691455912719813754059048731623838504601161358155385902754487911497900789131766919318084941033759364523994552393211494914323758119978887488714833005102466022088280454752493125475968900808115886478280126327791213103659733486588709253062094243021486251877914228367736120439731189827333577996141867275360213490590648826621474398360248420488369020611449761905705058451397699190591480341681282417885481418143906757951141959635844172930519838845407214054150188816958420684323209399074633805499445029368728126763714702464381956227562518099980484837953099871065763221905639715481584539552664680447963128702635410561067496395013317342074412369057527191048908138491767167375171035305651384710309192258380331417370180176603575822762256706420016764245921726762301027779420534279816804069682312135854147788013736574929400518249031000644870992123390098263328288050880265569078412186526163542538188281401112335047793590113470631451954588081550548396975484657323750661577560414308358148420986786877699806121176051192948797326033365160767898640732541162012035107446402651610114151362978834978057693378203698250978282336767721786986310549307095317629039344538777484460972242294910847299432382868853041706135934191597363918004823638412473369639154470568057318260322677313645252598091614476606972033464465658329142260301929906177595661204169745425570429023437294154142819642109347266077308682215832072582212750223813426901823002089018543909137149051714470333991289196156986318966815095910027274154918596501514170534896847484311156689709975199346079192845883160747884953827836702500007441504731937148023362308014688906241290957987283958946026347772924478156982694951979257290619241307378931463280617765363835461276703975574726864570144933846323152256934826880823118154996217384848792698945207868026056329567705169033490053978090702683461925197360046430143253450587897111984132625090237767066435312283116514995894416243458211631757930730063437159333730984872615734148951536208465712245506461776305608139161521266031533224542767041946118408106090888524073156844636550031077797206142562039804389159507085915938588266207783935285415673325950499917968714353408155421833214420187922486949900732913794805497235595007961692454445083025621326097400336898610270962612444199923967025354526434494382436612360191225270372541191744496542823025607842388246364142351928361561438303105076963242396657850054511034531721125470123425298240770885597936239647152258288595560599517877157974573400631115074044026045436240369749956384760135140873000776125305776210010732874699893911781222762963544519757152923586026458288755294393102383784360972942960861808392528935976064671671532532488180523297662203452104925476666742997582323318500183179420770499071116887111842656258281289602388198698620456181250111617882694565185073167382209585783251932636403169244093325696530732626606470845084814834236075608236375836654346484434624742815125059550167845336495160943741681074400097866617915171784956663531831359351502916835739037040967499060947248919464973276701783475970560616086691214601525692427057982053713569530336018542527405179889991115976660860274834341104121450334935241264282050715488350685665984065381123866071315668756005338130989213413535698258692122113945736438536514540277740666792705837170525298070915930170421729707702358792764543034269599747639141302031850643790652494222316664642143593431561672046563409500663908091697151987680626114130085960700804830096128729201202334911039519221130173294383080730000675900224904000772135286164265971889601270315844734681775691956250933364076624565981377884873978816934811663131950210745361426096936658179905762675047563645205442399289739880132060400830510706794074899996678685533420169982024423012969492934558060480673433904953471092161049794052805253965982810938396402069744366775240482940615277209064344511792810704811954885639643616226045507083561447716517702528784982746757526806030985168466999446508471340757755878541773308603587543058770902938547932359616367698143558975866992771034606022642756020587182612703431268351058788057292712453491784400538821947031041380846276575572110769914506904042972494929903335857352184501773312421190498686464050302196285285588471714640289550201845247648024235915090160751299637252147030165522567834504113056017862043802726095903438534599110121166619568881495917014586466347608528291443784293155346942787375906733350337250967819927041199928114645065110452793674169452693269845067169905496854061708609285394225489896833083417948656303144899505314608692771434925617951572055967057270385520382312740902544803720832951312599752437414447568318809464956186383158956005223911987438882789294133276752453957858452102882111504473184885621905589970994117635342410818004108122578170676914060233419494395074235155078049149383001761449738123582603712630487754698646136343318181942704605323666478302353606577705727289143380235101825222751200932936409678364463924680346394962962609277453377782648373812868172975534759418262464035239285307457524502837496983293474807261127124241099551193003905842545804363821026254794264486999856736297363098351447732516649652497654730857736588335213040634190598686416353360324590192299656713036888745088468253917639124530403692558048992295777752003525777774691893500423253310804272298557453355127291238707755749819541742860354512498710527548308739687409001544505323026545490132445232435835820683926437914853049301347286106089810349743143552439968589988002700202270269963133282776252719083958123543251058684147534239418062944252264904804544704443267885045267608454221651153147992625393345324755664874936827321424870007787919178308227736824027539585582944168739130911855319462164429442407383903693445638043823280870379379034487935695135466845948819766066475466576445336982278484098338122595777438141574758444716715892801980256240732748630682993369222371118195438000975119507580219863374808626697312380789172362310166310150748165515989607346367714605988774826860233768611620358263727849393630265358605096535728683784625845735230741372207908282544260371135364189360036517616122865350984732203414109136702995270538615132928912295904230784649421373482287011524298546258208115496337250795574550718051874170643669609669409996273930166648267036649884158596341772594369699204680493974681693906461489515101664957850486935681093489456664852086938418827578498356169784353911128516213805793549562097055602546365087215375207782903365824203354579936909827392202887916145593077625347622028824549112260338376522111123633670220020015493690087551493995122736713170258818809331158912709656377630713938818356161911799226659580964229431022191628218336752797883630232957842747110035874815867827579979338017768356291099636155419433109352004314769421596230652271996077751149400199003346662050311359333480088614449818890339653784719775933591348555355440560454953473351542238339734424718183758337864108115501232786733630998151403418328419672247423981010907460563192159335880733300285031194493542420347960787014967406182093447732677467368734621061278776352262898862743556018124055623970072142162083629620052167883919682569629268396846408344431157368714759174933526441382815889326396602996547487743045455946272415231334486022885036437548226788635825626010906818342681356505173596586312488487234509630243356695714974759250563313073759304410562526667535150903016790726034648410419647323503644077393584104206178483479331529830020055073371822366378897095154472738490901837390566217081728372911439331966593431911383160847680204988835945655381124466568998373944919912013295039700940553500257578794490731418700246834388533420893070681317924813264235565977372916995234265576645493622383641052882638879120904772436328264852757083174396647334330595142635966134192321490546736264510183227323796892793331611004900248456797115756055244307649026637418618137700038838901688405091694772880714945202287149314584287180427056520205362429141082649744656070832961909013927460736727359666335943765467959186629989127339212270763262832125295546653204467043464686569927781290075163177541895522645178749483820287641673474349921240639179183233283961196883976798626290961936364491754987892619168056749702082183486145394453776605580225308976079682841213209894736229331261245331686085733572688883151684536557464706724762949564910085695653067309776999130091657488866865880215098048065772963170067426322127993173067400059426252245784419960261426956619113610463189395371027514286575186896374647008767463781574547328842569119558778817031592280354037926931070162154580478795421005543956595090703649612033944235018218352466839772111202153001568712177215296553018849548955494038836317726385546407047654755442235689010315270463495736641569497798346770923445500021548813579226154599622049806025975126059248134593190305350866013109331251448607693663722372573786929488778575463150561734393096792333365091858764494640885577823737100587684692575487238032424134591881864897604504650475726549992336698649822572298333594539726482897793032392925093932034722064364802689917326371068671903358742807443380146357185968960819032227605632853695278416166000434710110701963139276926724571247670510874863485807331466815278474674504158193541925178126448480543985121402512032263161096237940750359377501675889147806982218505337702681045171236185330898024401448377123341760330488409621650252893725366985380013429262280215120063861426266250334158047859466358538857748598821608126709772096556733945760534707967917224314189962208599459810070076657303044208593060681882265244575858175517665387217161624346652340536669875632653694939356871132509625842339234214125003535512632113132460755959455385843530843199096629989333126071048110245248444132673076585857067500070443798644546812655605003077781385589654331489371295150116248409862467829220326667446034856127807173835056110638224591513932872363857128776471936058100967797759875443951259554834544421326662115714248392429268856583390118880389809564736626039436216542843347404853859202877775216866714633735308533531540061931819578944051162642240327539582987629135338613814540513511917092154383610810091621381657135023788431038169995090307982426064921428927620359176057938936165756245774695302688952663887018153767468383001776322031906341317334190847001870364040913042466813905365656405439768748135762721840003995267026414060785358460556272001889545037595558914952053453677830631117008090572888444181045507160325344444644067260154344191197572173917433011704021630938417923882866240000621344007547835724810152385572047416504854694218444267505469712939095695779908569658996842684412806848997759836616546423497660555695039631363378134753580965178322251956079708983687692173608813041690568053803477810533824862916979531789889463032912221498328669453795062819426604180765559577331535683766729206094451047682000883754411058479808152909144842251786158637849240364452679503788944807786906726636383431151800286113447959758976612712097130361099303519618036746710360393484968174782189785881454480573973201297465663709272287609661185998969971147564286884594718825402874035601233025614536041666889704739065273467718375737216687572437875714520337304465060816334712396326253946613090062092195754701430751896782347013206747890355180593734602048606408914368245641735986853041214435194696692192315602605024330150237014318024182730771895048117045563642937305137022562267638209072486624214563643906755335132989670026187527914725390524693338499536352883386403617621605610902000893643813516318557591636308051389259998229487324071788402061236515000697460118159090698331287784522210629753849310645991295467896327649649182522636987039644893589612884252815426121214747641738053002962715403591371860037400773429520840134131945610412616347554433054801040212616114289110326134723478767267456144984231475462011500349622762371049359199678496384893263038796003726660637448983549854514055776741522200271012980207465025002969340388314505377271153827132295900089367837103436122802314138371843150973964850686090440668514792208221993212588189765117387257737409368475346386947785238094503173181440872808830384946283190828901063723023699797316212795485052937099555405589241105324684181510289883346749085175951872922689881362928737345753985733419983858382271087435232983536712591435900323454914901002243646944068510839938479878453643153907916023010975342050081204192726209272435970828603640622516402013695128409736915347186563590008895252704221018053599795723747471465542194889331065105663198564297771668588485028972842962468978332803040621058038047882438284433767012017726070417052848773043487759237401258173621464985719835369963621285843772936646208562043293132433610502312373429368207697513965179326967478356193420303793948872148889575798485730713560708637954642669856312170615878288133564694230085574915348294730514913452446783007154965263879897241118249738049819723710953727460266357365905163794402552419229581695874557115365361950186107377597831566031025693337213940456213895668601659291769060102177418037328718492835497960767763561913306582803032129688848933490509560760104314484161698200901595007790741187309717432550679952942137025919996649252043782693474344164624882478684678733620377100848274112354114146709117877193916479511608444929413376200931541137393355850992033159555346784808911426293010257696678283817944542704303909657516498659806167326839944599340764242173887024663639414849956200014628725442769179421389460768423857876872993365691351044368211185807164932156382385256629412630810707574671557267086111093592720460238296807209173470277958593118751111303006819022752318699335748979311739834376625476352239169778976803899286003686662354826233883529463297503137762227740004945943177112499202918459355818691908711460218287123368192714515145486072167607865685463055640820977424984867776708695029668863875895846244066691632210195306580502742696186933769620428084758595063833586265988577476876306051013937303826857355099248644888313634978814352893098721744283535021834179175647486455750166199570081392563874561353717828791618575843884386533050908473787818324585257401912539232634049158488081849405691978904793001981354651180178891710219237296641738556003383639783226180866345696798943619722023882278939430218631773444331344325594265486261725173566231525206370971052283765201299701563786361774961698097962493950661446565754650368078276419680120378021736269384864013517505808373470856761515534211007576318367846184669091584680028836857234501293457306137065693732265850247906271865598142095646400504867215890382873983020132198919479050924818015670726567029745704751853300357499355354805296027823145802517431129280114733596435787955880436016580495622100383525017383162900120650390321309010792662609423914052213868910954838024896999042968889513767755717769440301775534620996330527355917992031759469198510175108118368958540899929324881507599434325073172870982692093936700560790035713085267335796511029070622040085677011890221137939340378013098451871365864442919548912335295193187990112640940339921280228528065027112208866317241055052938848948695530302647690410995909011270924836150982195624532378667257719522724006843400070357538164294765923081652201294611759377254206763299911537754117840305509106557916893662107820846562942216909310744908066234311001275563490065733986698593030522324464759017506399439058329677242803022181830536436090484102030221649107525037839918791104259593151687974437825243756371545649633704019958382715016557460733553095478213193419524450701665688355273888981418966515167384710462167679310678547582444330921745251963918526152922051139876083920648123537670698070030394730663692381995409093119855146897475188076899419506000400991012868590264632021909230752723789894023565511452987055264993967263272869726151250636586049813661846475272510011956175466394771221091758482690464896859190403473909756364160463277728863049087496136698577139754649578847756261947764790665505154430828135753576287035023474419433216212539133840840561073189743783494186811353114255706805055450909366447475737150711086715685135428219533716594557396989076335104841300692272059099031334857646212783960862167385274432458726235279469339787385703665531110176766309582718509325100658570039803023487190380746184162055509401125167427848893682567718782353142875663075063759573883942350926704475364932289536559962328191520593881865468127780195952567731442256825821399362011111992111421728051416642836017210644922952993436928927734102064719882701937865301105840690028616890751986858364336134565643583958448967223339284891467496103744307335534982356517098593568177410962754001605266731878931757533996233959459637571518661214536230000966957838895678018374296881180311310946547613893594808829825105218614414537484782033752991714744803806764677105473373699063340703885713696852434102662488960801676463089239649313547715792549703355868105742636970767314733204913785685109091066451101259901567126410525469027560723712639945696414617511535468749075969307616798937190265056242949659027428351769293796315644430021177001001546715471471685280447001708952388950028619279414760927831527720262296610489652467290227168480989542002823495627823925881918488843659596688760847428292480154986692214889553600637754968928374823513483541612969942224796535609787249854423022107554538967556427242602687253079259635988920588020810230319524077369373755188694522531050926809320147765283262280814909610544464915055361597687662425568451405769751970297900640574621049591863962269128721811766739606225044501693187555688276962334982125261173702994848915920302889688116860098604804437928343768309312193591962925205336852043076054043659078794675426490468608383354422586627652778124313460735131856323805696360300035831273960592866274731498979986707617207799806214062790725836267924990263220509238542000617109826317597651299381821673539493954448722938210246442984721146620814924205430954609516332676361158214124526362640940283418706378172550107447810291837600512605435362472604876606229413571140445501527771230441144316792959021761508225149505026646298911673369521150332034623455740396827062666300871678309946719109063856757642316981627440964957007314098437308453982581555652967522796556555424773353728986582366474700979677717952637807287306845005023489171360525994748724036293999463566030019273300062548160640840449903452033146187524889472890726291961919913104680379148351288410283232545961799795791548538296794745049870167672131145046502158922043604533977834526712086455371679633915307301031860468443185876794693409481094644244783904592245484592113250283501150035514088841177468482634333484947945476776980872009861758722674853435941758271269948090122841091792295480987045048139050958329774541745624973411952152415427021868657792281816275391442527741533129219413503652755402677446566799514699944882853048816709147272546320535679584090612114659935685858058230829554877754494020400678440872685716883012500557652342651672636797379784567137369758122753864589960178444744787082941581623547834505517659066725294538847850401445424324998687795221263598935807897362739218953192093742065476018245458039629705459504995897661089023792559941251904986964360924885629967862410636932397745105965739214850337322709985508072242336824119896197290208250869723870402687446955963888514769261744591801516023044215140677588519688871753231443087167820123431061736099996509606713078148399406920047625095004944215020408268758262024178238820289674584318108675342865237582737319940151786148416920612461196232241567604460828640288371593214523194540579351913245412564909434199107289953703028230262285909308775997371103223630870307334351825000029543606044102819319076671073496975134445523329828596171013040048562200663567877017053078052649354176797978343602715629574086365865720808073126318380159491161234533844836116085376176829041738846474243260449663801706348291923321519725772496199788946618629619463013002945498732111459693334433869559123988354894093505131030481579010814714083443509241815421743480969929107346022296479040624725467398609583985147715058214044810214512702308569287590859298254709287253082315802113061645102217383961804110625307688395183710393859353590675541200761748964054730084447707027437391794906172226874752142780272239636759001380033906728965805461100323027740554901198549268163183094331624402464580513749927504634828254360930470461084434157726565827736055100667717504799232081477136345656468946139546136137753634349296108579987916603972296578851248993499667572682376825723472514655138524895543176733228849678713004684097012747092962577644763010460339039095178507035795231641463485295849106845591257028469132741008692540287027071990137451992390134160859142943915525095637099097036907197240023690798423968980443930332132082282813710877827810691105738008878094873618071818778882664690348769866989236652612358489372221423820723475886320551600283492861015029194334791500130427689825820956651291744615596693779636499238590216160044560952972991401589896706019511289989542354435307247846345689601489914428465045701537945303002118976388646932404330577835739706022881147739713240368085393048763197091456109505291204712541679204153869381469696928202142901731756780855637837940207684942882788655691112521326339243601725788646582053289435581282924524083109779598637366741726046583759137075239915036234536877021806782218237059335839329808430980717868353617395807506287007123671501679593196047938009225872220227673416903305924842276768157406015556906590084732113966041396844775899700222247928967308432240558809424607111513621688538565309893798983414990091916212039310755283092526164936282429691251294014106225325324321870498449197954171507389133384180967514277393632515020197444253489798884970586167878789726326002304391224181653202308924117722818149609616781949430584718819145346139711204021320249759301751331814492519408785222449537802223938149085735370570244701418831136074041937372138023748393689109956107221717899292795226832724407793202400191067143276263168535428829599573829549903889391926761649852836059042756196706511274647859800327668377183715140554035588350954040016950450958630004458598155913939719109722003376174493612011885405871646191096196475563696768813805249217448107421628505612309504093430452998195149406536630467114181054495659043570257040838934667880056367174475512358422982930790538692688226407577357304702565117139945768071474676679201480918377506842860934314421778555126489711228106992939774465604032994702591100238751157913073560398517131236355375111235697463054543619228430361559597501889369015811637206770570803573771369810527665124543698474681152954378558243411747210473382142295626821480742200472390657624285029387979912025583039859223517256487614060182703499924894869852057943339894593921993548976787558112554685188401595464311952455074552259927855278018258177893610560470391613056481137236224055577042119338356590224463334687980606686872143323218654705357072088667259388469914498317506074968332411505885510320811825972106416133890677219266005795610620190219615695457137371451902548197974943358568178736533145763478712465841856291966925922252667010768914472049374312262896849428941708307078991401958133654734641635243270413937108840797250843208321497960649042765141186234984291143658728509360717935934081216042459878926492773158352521180318213671263698402274283310670511788871388938766761412061220620333082168492191192650446854863148783591692907410973039821593503796521332451498146114508158450914845397125222802630702500678975309462110175838944411778152398445216546047141555526327761281478252207989500346290051790077466076654816647834654707620468127702741769901130031726499874635501366983178547921172920889673066206368725055423299623607143190830014976344128439849353626348460678377433440186295185101070297145532427062041447665405893191175685025492372126917149473160189142715367366696287739696884689335152504278312598102045023949713102807532675711629833778577134267837054137621242887960959189225802035670431969033027658448205112872919184185260932350666973700726388376707982836846345530599968737833913709464655139248538750144085309135864866945543291812192379556930729887707866476571132867378872546847983645105106171230606001759687882015838139177735864864141905519274727107437465009771691452453788856681626091782858828243170867731270564009143759185472971871400852210936605405107623619502947885074017370698451978265215602090531054432759962922589320987526052133369764413145364289196021440406671677811852451829729716300027310385526271414576853686153983947783604072157760816335626155809314821464345034209340431329727735617513450963544832080306372701255273935570213670066522920527770890471527713981630027100034743138654489775575802736890936752003082398296482944840054147686280674335910690752280109481404403977880948064181568193416574777412886842605604866276144802663604592046941129649667429770588343100518684964435720938693510610440378056686087604139662225321188976834346218519005930965439742956586667346808064101444595096210477294064456042601286692648259401014425865356333534340618828442224746836182655653346256245147728174569963933585659193378512569431688110760183089644464720168067002524498368239235201902442549307524835594249828836994920068215338038555229990159476441473267481546905006054223969508480943394678692294343755426047519937785620599766631319717866828594211073610712669049317918865058482401816788038913968471672014348023410799566951055040713774162361764826736454772370933489234718125334123479755252550133207977502337423043434025352703006452026056295250081126510006391455660199582512676134545512348400595088640979672585611393563165192203271771958367564844687112994764975386361396985078362726061169454862880807672258394590031906977673816962870052859732439793672964883889608229444662728380374393568774027554814234936169864404864829732182902278221878810215844526863036003834587226773320074638988108356245627937057092819642231522416535316924589884452090448525344078057349759848654084101967268601707484072754019137122261256993114157159269019954324794046967704924771353915778608760940036832117883222607002908062171059591297966074647616206563878089381674798098701562768516386829748358090791840237894455348610923837310159981855900941260883180771678291519350159391066023682925216920948982959126438143072729838347716887835850511431094251764204761206918726583859449658140691698533281840509802745043949940270528015570256562523839206804619713769415619282141365342547666929012672684521476149743128528669277248378901827054429725009833384599361774665393613955975114852308228059373401561484737093044030371956165308255166123973898790028681887460274033506955188541539765046547569439830064119316851331270723919935249583521308092609186789394104642095334120989522932080588925073052230301617776429908214619586694828963618462092839610208819815377697544750432776044082578423629051972460689330941145569907453103960019951548556235945564895504257095403001539369108402342196457756870433406135405147118856192172011907377997572372027539910865318318962037835815420123956670315743073506442347376976046413608490897641408202184190369976456644584420131910911866170319180708261088932257774709907360648881631240956279570447311146400890426348287037771917210697801683230173855913576863972537954627940860620923083133927197599440271981001195958957442414506128936304861782342584460615668525094254473705067572047105438614870659440840317048842680108953457901638993513240070562192293918152633668384232224255652379857196029546323845198998399345136076696551283332785712354267475208369574632638442421716055569276014003529456304770304978370373810066421007708686753592069850793172893547512579767401728274357341488486297627737142652902463029369775222463732956463077634274941987054707718762375432644328177779108375516947867742183410148983550063136769670044540184926931899806532771806339282438375945581262860389104247809589411118938968174961437237788472049054464420750191357843924023696422935775064886325504850040603261562852563163071119573705316935654487876523127706922940386179564962985477240877495343505148639627459437375796068794836585883770934707931522598533768462784920743870572080199647996708367194258326226386482598741719019181818595259447577846385017363575447027160571751318765982963480358683485022711377049264443663648320542100485310376382670811874247726825449362924184044782202316631163018637060449849552455690133016918995385376840943751628067648645819438119901821835725370153195007775209356100103958077280771049992143815573928364796601255028032678906629850857189106919014195096252262559534216442227648033048755048167970075807349077625592630703831437828771786912549161990381049073808163054801460031097379665548722363128657453552872481500998816095890663351433502935777034500821675745983266469982808851651329990586633015934508220478507895883684246510778569807709779583989451896367692107276967399280565839916298368874736550445285547169741590936784713166386969699522519575656249861640774870800471986215883689088332399390966975012423356158086401484733286105117331639516021894882347732837568610236789967995668976996710698784899095161014183612442932508771279760583355967352430587499033954863183489082017260933883985478369107773933601298511883594028220125600722012644235486994407913116670940088527993671352531778716547465003939978974131426479722586741995255921378675074728273390791842781566214043461004213520966527983584663928640616233623185289795594238809250663219119382136677947921263064596509624415862903486825246090244082890167645734425440431885116329104975888781226796474130535075891608732184575693038910124931523989224949417716145811862310524879032523304488148654237481173179218027499464349888188623793486209221547269621509412505907652918858974603128610192237925589459398990152723557507525158250401215532795199467763112955604698011953008697870207773268507576176666996664472094462147550775339613894627827778587057144137099880031239016512191885433907340855965428393349881504500718309067660344362899358006578081044557838437112846100628064594860087712738169173787100482047297462385835144266526006976732884134096031267581153456263074118530994055446273186821782902841667248781373786734041769822860071504891250826690802830101572665920253825687042185525315585681693858626143312491687311427349545816192609731123490031086943650038268285530199406303881366462025824940713264551911686330183949790325348989239157290643649165467749583316937368866429085328155108819289262336609233803827625435151756682282835946351270469278145331604347958051693819775486431232282335066667262375180573521039794457346867660222362740931168719832778885318326494851016962912460706813107465279064503356449101981614646431084876566342264979077787578353562058480429047503582121075898258804208915283676325963275591480356237380810338835221873091933170027447737298057770613604915850564298751137440716822223242465996432542816933692924633852524238109852311551906816470998401746268249808224377159026778523602010931645969393865545089118826369990500440463740568557162452172566957176259654903848058175908994736128051864248304799214634935813164892285887125948632823341664716632396238139264748191106110273104520107580496814996823957268798660090038256700315050433925790625461546636095499043689429924400566322844446433382916981272185105318077188933911324690397365851932312199197077398935192040277278649538416295378690889792932770900603489751544188235765666451731628320274516639478921393994205654374425532090121536171860235503870519820978133449339396825731073275156027437177832426465272587892527352812480458635228529626452886320950676491190037888163542170693209434380580740851222471570312483532826851302561974412984818807460822944069043641033333201043712633040659151728530751879798332545250693441878263947365500422376124811573736048998113724804838806547674049212916068056729428270522765677636236047286386815912338054871282211973898906097563920052067874319069884129384712465156764733519306955404737048731827071949240417129519519381665464079114889747821996555240849808080741714889681470973721276169584128303969399774931998334127489518048547497230344315691516532573966583805012339916125104964685188289705530124478229549721702688887732806861502665391794549297027255093037027977122856942479720111791146229945745526299635105971543173165307174799506286320073249082798787659631244331688958974028572693679589264426146953083403760172163387862057097344763637407963101161405595416750010864612316160911078110962518820518440346508439845788451279765325084443650512152719388848774265551514813695462420153283840524091949973158202370132313438414650670713070810086743259702521046757535321364688499127589135657372054984022494314594504583059256798042116639118490135609953412760603527800135188479126166970367082465330317908378497784038947487642885850420269222780991358555975273446726954090994576584763078030635759319469269815937799138312150075708945829880299276997575548156831138637604823630289348541135935011899232758408784187822569605227870797409020224077131829657780767730356090894816566084479395020700938836856814797596121465534759208567724875429209735888124266582438174657090904379886369751231336643773088693632262125791674032785334149073359436376669003832996642408098736811791631799527353839619559474237668838641723890635487121971296723919726792663221350099616144188002831503031323506842166085304074385955399610705341622699091671383295250269055070550194357621874978009183885460181761765723452422952947927000816913679112306708434647594109331455578312116266266690120068089485586013078268234633398111200072179306618815761299626631657214055293818749710641359831547499819252423918471562849870765629005021794676206638330312698844185209158352129787340629447025318700514232639327989915952680373881066004121981088719791571027516884442788127835567798441468829869056238471013413306126709156068977390103914328354355292793271170157633449306012186250384050562474410161866486683099412625112681047162823613791710531677744033533767876575369695987497716594088714606408931111167182066210097509116527812110532657515192145442379507023622477308212623350705839110858112666396615137184133710027546676799767990147328671899589103081149345718129476133446592928605230978961725447169699732951188799469693968046845066260329396631112320513938719409565619591465647228922121738421063655098268346747962392913936330409020255372860199555440114615359811878733385478820737301096429661601106230216758966853353697698157473737591827124196907609021691091549895095075054356051916633613416025620850914677758670477005848978462396546360403256860717702482423552886779751705891526098415321992612046476109415066426827574877098620752336466502330570044871879015125931866911994332095744885889625678889460550261771865238901607380531546208451896901851763337651265586872136028954417821489029284623156757091737349950600603085997499226206018349854937167319129226845423480227476584539104740547823776179035150317900580991980247379692402122874459091798039981274939153407280329805417330638965228865594173373065346148794013074045208780364234368801416922538441256503208896425030423966959905493704029637877705550618640162503331157822555260984325914768587632419629326024384368648450366465819337374400658588360800809493175682022249998094221494872222626812840888775279146029247863833732278031292725261063579067246199511324420396065299354061662048728418669853858486842898896905867425054401339897194587176254565707187448873023106820949870976013139961916340645726185313067057741583505177133144484202192829902158800558263510683363303259343965137663757322635826828630333679086756824460002950229642322807584878287625312932160526679842748159814883041560613500449643535265206990682265445863468517167229572320949340171414524324374765249719994836133537473734983108811376692075346244144116151364458905895119482824510204602602178174421957071059090015401296339003451325269319910046799294491368631725901788022059246648833285394316373276718500894219670814605343741327785095089149265141584933008877742499783999655619075637515236180078563801099456357881458046900443921655868380793068232864235447172220338743019077603561188976646763621551486247065122938700937862893881915472962631689401667563886801667551544285934380195886474622123214883178199326382430234831903305084390451493412090432279240046581241907331593900368013803794307594835215028243048585654264975601991657508110277111204351312195227865272611906390312096930610557680212220121397720632942532841712515853241277390093894198906982910632840215866470966054589040063920795361732595115014291397320840175833256322009943174357165328026259860344715552865000764328083843165441548213044880605064671083745078218298882125397848689855412014332170127981598794422731634179524419871303139866930638502342978512106942864759378951826937459423034897666309455013763345980765009015940717590040068996472440366716089963577039285531596747904945338821082094965220036262330007715980149559517562029406529623683555582487013267666555809549065083480540934192631865669295722742654675672724904148508916521782397442627102515552236389403852868392161487854655364253614646407077847499820958125628063130780263783386905286357014047486439229132437046464729353324447657889100613480680626964863480764516610507032739041148926729242314246341967943701079864528808283161044338447815983470246713871637632716112989894979393273713984818264928662774825294133208184332463702025341901540347199744071194258691565586203748392372368974472729397091138935475505121566887948444051468270920501519533074331767278944460177687362747535213183532148693241148921450053113076001553763457536639412351947134169862185291968790999587516045774283639917815121562593271226912937657786933150174932451730650520031643670358221693862608661531933875129958820248650907221505959154364091262444029831015175765708027826254931706832101857184334450640222180899932013768542632548049738857353093062966620486558438638387967619987226335649163162356955531613453820747710327343628438774882696087553885967268009396678126918751030475579934751020894442440137926130755462052188624100767304603728979440783294773855109993754812127075376806217828437073951532040634111449497965685450764973864960313356623112085654820069689375820616383757952396573793240130940228696031293786900004163041462033715762920357949572284133584504193475647859891357213316569507089496555737066348128625236303871154276603005248843713344328256190199310454444598490640591868544005414332788929018927603067729794293477875408737019236258558505042084443497621854157620944844182934658434407170314830891051567416625573932040538211762005980348716514881837770097711103110382718000267691163407855232305677691570220361333335389880970159872133076967901044945504684617965303893313386195843253135758171734221159389421310503415381825752560864975360900030915155204189852316685411557606413392945020642307028605011093811617762793200182387648995168235310410072654541287104190481841630437621176410361737106256409259372328537662506704911346421859480227697221255236369770091842998820057121313488017282537626536728392422256841895792625088102844647638611293533561247044108102862510337511750274516706405930106270986227493129107256527842011489026459985977890543268744697025234318825613865635745980818621080497334518077753917224693882850437234862790117872409616569118194535232597245026922178074585926193803930269281769690341578252650232786608458609486715297957345371268395343106046450487660366456712739660232612368883046149079704671203059854655500107122518583943426115246842848204458506279000943330998615415472292081960634292259250804512234903097514100793684660297822470313128257557056786102818236994262460014897006609729875081606308039884389794840563425435697188288234833011921548673283972786019377004091442912174727885253118736975036003865750187895189401369795320460287069001775667691079361883027119739021234652378593794536862664858593451556383007098713657766992866125184096093190188946203853864126926756353665266248332703189606343607028892464217018949202655182185460636080443876221114039514071534418635274011981273736425515510629526105785968430296609710324469754878100068982109092785370754876324279666324537825512285719289136930785201866862929926739461217671939991112986003246612330949820506266412395025802732618007307230471488288672695677711030694668754294237562581703837529275124270042351864498210566916307775064008948154624465658302511924385312791181769819355825781684085931227745650057201129340478312983462219797455747232832817405410998708424713083075076633862877596089428637688612052541981809559556779717117541420299305984187993620519821900452868176479721746526723620134391837191997469723739575636276094259554753901497760558687641012657898262592325612813483101086584801800123632494281476400484059013442577338595197558167375520406126706359453561488999969365283814105812781325190311712675782355261168365309757347081020960510812213983557443188509397497520247240699283239868417060456591153791172717636018309622563318720630897006090182731707589182969600342128406888752877488868241782100812069628495264892460080709658146567345769105952247381360604880660447278476591856700740582723179149539381997786230533462654904712570447763026933772070385351396753673035040984140456025180394011910000086474055331739603811856832991864902017091725396107871224885695782660539156529440900939027777971451260404682927461391572011236635305806063463499871055876163449745096857576788369228974839919295046255385194115627675335401590144510333752895336871969880476476838471171014843958630945980988876369572748939641147931463130572810732306899756159614078753358594914187410708458365383244314677303889224402429065380369875960275165061181333253445100191167363485018988365939027375380862232247067609434885253298017473935739582473559878409000398063600502079133606359935275303162628423812483013477631838630205962516076891556944670832485819631124883237011426871144536181905156505896366743005471989609344604636562470165884119713899005397718665099016332661428142725739782833566667994907895896684002977475081893213112375196487577910404112526013256327105972666557857977903664201911011899553749403142495666570371065022702510257087094310341708789646257460921085013867845532120965935503036392680642086872680943850330686620520526799994788611598321509393303763243276436191684568784057657836406621209814752324377819430385800183846733783779668425126251219541898785814874432177403439602381872359141280732187110349490489695841028594748394164548464542884208973931170972284249260055990581440852798942099919482552294998803274309756592192392492567640056197446506956273213121964893376408355149396211217701623484019029247087487284362711395512338508574924698988798029824079464873235637406204726626324144538022579439743719972871369569928863126579405823833744716961081761768647315419139883675910827246185432685215723755366548742330696352583364347199665501411520387302352173342615822482759196619648308819779014783494241237050870683133235938722491280243837774190197717053247073494355688816340012145761606243935636102925241127002811477666477079408205589075156524065407433863670398040824138088757932815573473240114493157048382518897668013066213668769059942672975990138920275560348465517058018803603800813773709775319371148920444883999119228673131831563001691799890845968255179892945832376807356315279815031029292993124956666195411689890877053465132415734943601341196634683249210072093851587962815228185967506858584761283716304488054280822207331860334722417290353902762485115941987829042847420345310395763738794789190769393574546101448012441736912609640191505891089032185905738972382376180499413617016124947325573392066662072174033257844859078417207426797668476015174834216494656450693465625622593910496862909032268872375265869318675835468026078188180008247591226423202337294303255281128845334765162478086263100500921242461867285054826966274063889788524510163443630290472979496525406262418381113919431168355557392404894172504833206498802765105417759253919623160987998137706960809990886459224497801090120620752942936317554724107904761446270481074595160921550207607951958788787423289721851651396141411775058751570579933458255578450896052290481669356725209213106416075064962757518959734380464615463330244888297381520292681479841132173537593142073311122989398870270254447397291610267385221448106576344297543381997542160532294077208236768551185727185659385012729624609988758137125531960592242042984251536839651085929801922570176027771001633692589437517644315188216485077094372165614790219621222905087697210745450696981257790154913387466173330514558398402423438430361343396952032738686323365780437559542546800876617743702176265076790738589686804166407963159672815895738193396806355176682942317629467229562978100291277137624447511962031056894382702951806533529167044968740345206543511948817249931323905517649980856359744022102438329843845633112215176690501858297194441560829754101209571582446059532103125143901465165527902475766908002333211353285278826756020026576851159413409910204714022698208584898561821571200875064566043688711898438780281682597493129909975650638497427340053027197068403825793625148922510661378533550507055788474909238322995617188128991652350208580656807055736504314062107336621435383164194402144820428805066419131811553328964563889310627450858598167236886297293331505525653846745445478836401300978912639830497653128092938550335214360645352149841587888100064608734345599825502003654173911191910888135491977545143420656458181512210010457668070276953593372987033722362716908122791831358333638429714029000624474592210867361819757619873646667180098679922937158747434503730776014750579831970342619275711897061266742022181122789715568473303955217053663912741926899582100954612564836905078112961761000432566934968058891983780463544495566248645561749969152872682157420459062086232510308838225907076886036594157270211273726483035626843411897568330638693099739999861642205594353360508554641413536225341668098767373835091208016360318755961105687938077966887843519302911180608040245364991756869806770455593819728725784999742687763472875518045813282758440279515041563330904582239378501180461108510249701350081603294262669824979361632590130067563785513495802091298048208192663453977620825319323033796031613918304903380473040093932994174795977469856309600284528146499298902883826690513542696431662518692241092660074572298865434410165471573260097509729538979985259859750777117515373565225714689012959770234466861775018589102222291811180770239489258479546904764288517594498020545176298471043702664551127155286186956069631092409249920219717886194062205579778157275459815823404056797642592394070538396945923057111454986989699579483265466036376667569481855916542065268320026933730576038726311739069318971587442168693928579556655827377445049399100390314031408347321861238914221802296329043399388250011964510240993714344317871451692454924343485033925228026328317439487895838014192199785651897595269353499540831654787005078630050146863338232098112345773602580407980886639607951989730258588768786848767691066184312961188066339321429813991714971979193035075549174117700083217527556515713642168694662068810193336684283747666091594751782400930191208978118887607247623789646564030460978842606113755480607133287345238285025709981898178413626049094347366053123411121766222993188722263604340804643327045293522425059656339027536505835352629686942235883790592924648664796764942536570704011587302938508532118468790212424099560029698162848908320805331671543668412772138614356415411712187617237414961937106026940497618250257905112940147221581770220820095362322329181476138459952743167882070614865228012159415245019462040747239304510216335780973202056089602744764293497502317191072481183113744031936490844328293616489748846203130883675317977155892261048923221502231683081335709259142713367230342979455665512860528645919341627673433775467150750496175096085868811068050545998877157921145837697776267797426361970738277093845962674230122601458649203351519556151368351148855361546857514873200374305831904086829136019042049121354717036660173220334240152895289430559553485137672451343971821101237201410415387369046253067083988862245163602124973494211377336292423484446243032297971988066578150736154868523674229087232767030808497362807639389440844030580788616268570100900526501420449343774556478252617385733755962611076473785470367283999759153658843350602786100255763533173629447354406497924444289268251189191455937495478130774353980781893353062265484053500210311635206983737676750329546653917279140351749428774213517175787648838360448176919834135611184021809939895988766863971556858678695700840668574232616500072881476109498534289324355020813863291765688865384938404028937314317750802804982150485580092161727132066732376989367176160433730643587134055034437458775136682374919406371700573354358778174275463553231241830703595353925585631280518569443331073661911409808140182356501367460352113900782783769133710719412185256016455126750549722515043131220986263603603600733666989801019206748075335878263543801771694881116411384589655890674493953810330313367427701027389062120243897947966310833158803069963893415166407848730190225073743432896729706992749900399268848194684413072827487708470287505572973131041324870217221321492918445001691982186664827246719769400416718169790463105415548376469121789784274124000296316329226265298904840676819801854532970152431163227617643486981565042474188248185408775749913622633664373295336066809128027642202923131522427483095517310980645003527637982968317071121825996892978704764116859639824553084494713034539865571372694536228920026534176271314228778036902879564488527354114364749815777630378079306755517439032034912173512830279357881254268320739489374881027829897937056470811135761110025954172972493737098055248143470209900169023216165611909415515765593616405467329633923405219302233577536560989029766420417893778374816458754299370851808486736649379455758183633443910529225514436821857594135421874664209231327470404411548930913990083240800959756327070995548258765548164435805699749029678677766327825311867820124072900848125067228794666752345630754820033974262658308492909375879853241920773494377944967763143993892974111186879908715962207857850264907053144004972426928872565240334808385071882948157829438451510978685045671966362103482147744911820596659970529044859651930735192004168268108998829064993035437566814449035819884330343562427055941967581869717610866477207418070706785474616300876134475226323174250706265526792439416151014084512113761528308523085355702396894217242186730146539375737910177231340040251499194862907933692535742054101868327194889687789588826988800476378129823638490888094446469756247683890873854746536849735153559568139033496132695304127555060556932764309358623811626633987563161997032600676531342925233674198690383702855086193477718642155079065968557788082276215779803679801232788991603656099085079549626727618315385937016707339780272792091718788133579465374744739174674169754787638531961493206176940821484361855992943491862540149055450302154659238633795885520664382007703085991322613786514780256214280860728591510560428956173818032043755409997044611584150825326280505725721106913664078480512937710842772363169632727852277493737590278931526722037234504465125962020244063383209940945339659992517912935140493435643690300242564389739285668423826404461149516206293529145158378837724153661228502559835556042794267215230288321862258783834825934124504965287736366350724340836627093197930575663844851418474322478089146796716611080270227154730220308115542149493594440778771727830480164090292805062080149961128084618262207995964023616838206205655290535320191853102755122069972464950992869410823334020207667291558906460924186329103526562443025952400843634927311410229179976371540861468877426306940772176594227406922183419133517665976797178703901974846787834581635610337783485082880817173116276664285670631129461439963102738243203472375391488083877123848223583194566001718843651305610012098811902799910541821541618572939757407647282419751987986052185171917953934545541073719596261364168701345044114886197970917021414767915515443788767644282358870931129641224366573503960835533796067714347555977119530158982729357608175976561888844414138740687712550345278943970038370269202157884195687637847929930855112068989092706094569204787817053867726409743718910727407421306512704370770384672923866961309407184869277837074643468551725154944723452679395482408894874229173838240389380648630812438104262640705822729684939842247158994371265014778071787730405886314086857214835700050605353758456147703674498721151473877121653169404499232149000018452689564965341751311771125932664263542717758526366363995843921300107316968687141775074001268576409933396453621639410653063928472961715320450677980910340955489064245692696765356956606383866948644260832024643669889499868715296510592933592878525656935568802513356114578998820117893071344007764043432551157484172976278987418607465120083781474550664267263095234362338788156826448275628184685033010734018323877007402680653553674753235488390827369791583245783560382787546745963909704059594612159581975344297829913330692660990093505169536853727607067060445934880946094699260012393582460774973640583081051084603707792116582198641820820147151661725818550842153210180403915305229473629313477370785836983537367592470012526869969182962868393988157745384051243909246684616862443000048828526731160404189453897715014271797862906274850732315300259480151095717224225733728964919200912203467087726773811387266012187139177802119329363720912721713110724910905795609072217239654158547435176310842972617503132252970896957515314590263582177382248949878632157460527525291923631635976046132483434352868978137694201485462693657109005661624635573505548988353585427845668702926098673743279273261488069316333013219181327298111066479746464915898185916859373521039163186036446535779119503967291184693448175419304189193432669581461075508394982377240512314705718821487842200025462655635968464463689122636111298741947380800321898396741335539487021266276189818544947877665709344426757460858462836509532541676516605504523490216985666882938838014769838955073608870656013389234306016937891852805657984520384448047023669995710679765642569814713951177782642072813809980158522256956461915948412212781031309744236561366381390091203039345480261523287741156964407585437429124383233018309272825697267799074692730139851116644553557347537748601371996375435360498542300137243507167437728343416507595369320528920689940683311216720059629873896578135772921751376782579276085347983352595717432380857857708727218021801082104805969286712082769278749603621415263093462338402427033348990693945235339672690522063246231834263960706708162753159185160864097116223679094664538534461432304848257228083339571002687350380826164493986343306969308238541960088152744005136758118468290875784661293307700135495198228454954010134182102041071906079966749362651266487999516058853794860533381173683690886831449044368991165414252307654724772133075836995747477188724192265220747547126492370913556513227634036239163372088058032511409359004065082717446178705888601900444972931844752656722538994910542030602508388237952212860371082226025948716929980309342077381650376825094516254242585372392101732100181217321151687139429598293054830203864727220821222431730656247429036869696390834192617271687579615777739945996841634264403313766354033811670766716470688018236503914129081148637278920517210080884179760463337146742464191121014287012615610511927896893752097919113419330966175278636065063461528692376503750891083419600524220213881968193947666144953909843712698481713167764114817534903289727393525241600548386181198407549952369931091747929875313411068530470285190730302651465672657469461732506137189683673396814688297102440874979697215436051662654264416502092648483491113490121021140651247475180567463643742070431362553400190607598351110953164005522904610775140614550120306670010844380062933109173417893404389504748416357625736491388268744841426980258486884253684403038570325160878909792019603383991091343916610658672437550908297065134858730924426209254799855866002264143025390412090483260841828933344250857643147869681664235606750754303990670596248897970504948086182415965194466983656122292930338155084286886480110073671883923340430008537535811313989294724632321695900131977153736867224603383029200062390195063161328622844384723346848074725009723667915591011996502607880185979456901112969733848391978549823376273039040740143017692419230706001487496232321853257842268911453175746423081766565555887082956377460749715636846402885496186563725797566096457740201006557090816229923427727767041755565936536397663746312466621602627899034623273341901002197171087783101174723178680720914350069465378231062535501592088650300185200128575608690220485493059456450471355812683339893183812169138141378015394130632534322491752382906542399004337935238873210373053725456023548351383229442206756759162768471782747347374350923124897130093428081991494377702612683531268433883228397045484081462691331361194937309269483286339267301426702190215675138571590434368860475033694072075376096230576891035121295280614552478253715011825628963315705889969559820022592809206952920309505489929675991386781711137722605997928659648577862167474357960405982767051278839931203219537791622006166003697059891182865994904852319880366697579721633291503283652634869759320767786618926311194886374080254085460782476166872834244977735187143173352097205627912404985860288946365042881582157761727885788238854344662443697791835610363191388247020623975617296784076198827296649526964088306649548966195362289701311501267777486308362852539329824265250345638355198315027586303500442778428649583968513704703209823857885224191173179566161361502877875243860414584749354502143226531486956419383652393940937706016938524677540403906473964966145038133172140302226153733346718101592622398461327847733037477553621564185451655905351613437470079457194359539136207866196918071248189880141990902100575287006084416615493046652942211074170419214116516986702269302169196234474309795044298555443355403908734812550161623306115698255951941637086765705651618445010143965597179480705029005383220230773896796708981642900705233778891316891444051288323890162621924971760499215093405085348772318619414590639211308753327822893608887746901394638285448792301015971496521608551296273163941035348937159615299566843741952590819880330315050722003840050450160861124386206417371923820962137917238003217816174692100175096458151797899058250664930009586385020412454725737357924249715840290834471679819598925442487913611867835037337966540134115301874304421680381854851757497262133935221381300447227374725772320302104172555188885674776375856592317023672829414978972856682923210905715129783592943755569745580349443398364250741126477982225354205967502929670866558628711025863775196668681788582598733354293456794342648055814374603871912614335565212850666611406188714913222770878681994020617920490413478581197321833225742047124111148585372148796831003217156415902626017074293918053325860185317602307590867231135888465082957323452931055526173718467370547323902433330531374932380052941528233911001473320040437470238013264736197460861922729298539700484449038837727534398053794873446457543478224745251650534884165664358565549820374872699411607106310452057353437607857616141755633654419628387245731354627994546430634365142581305922363532179480506339232519520025376141260531191971544202396600797002424695677208310743777006519708611289243104916791431146368537802177134766667289340492022562550357633073317965736238869481074866829029083945711724046366224540470379880340146706123614780364188852473089625703569801124039639913614223870185272500740828534729470592184848490168444402358059557268022823633543487381649748222047976034424234863773365283976031256463423043399589401294815967723640292068669096909798714457437310752837659731930719548445483300201355142219567082426608103679386394115593042644946203751621161175920426914416500849020980769946518060427683134056237982384079518724021741569885271142658861656098079432299936110663410133498788872298754214959259731783615372352905682998104764989434868416259090781277697152050809522756841669923809016250462888383156227090624587138426118066205586245061971908959797094438906796920953801632712242769342382507696375119343918730049242831152104602506157431947417384134684836024215132641016145235199160943931952872382272611298548286874241222617862528013057341453185367728131721352386577622573205132912375514069493316063804614432356107374061428174291530875337987846416843978924940109458738805980210391026710623110131753010926281401666416673734476205130913262198365792044180147215607174223958175990438428500141511893866935054940957098190444249296462341181962795142713487748518786625313051002061069185309358771773902589019977342976973444890280300745677481257822664415913948222381937777463055770250343721742175698584122948186116026983227004007152612967611948033676546447952432242048024968932938929924355229201098539888394869832991299182535922655721408107086925051007292472817244466411581653917006548069380912799871422781120525378561664512201814128954310119474750915250432173714904640384959796530932629060591460978767468066948744194656431016435501568263392127955662486050772308668179455237937294304072141304122440345743636237915894431922629713489481250450968595490923689982889438048266811787530482809408506256734679036284220364604792438150556955021303310648945927921800550737188941085406259323395061492588829234793044145776372403568390283747519730805395142343520321967400427826485692634786317476322149918000737809079234506740076560224023732990563272355449519328176880189009600748655308181439475847715570709301490365972240740940630743660415413763739182187293089367493735367529141886548169003197207223626574500996030276470062694112625449197927799515682136322711553056995388134575838228038015386584147902743888788655075452835850350682641457658239888017365278271270945648192167153723861296785239727842612246946605606287816760699206315229593802090504168120340275032141224315813475497687528468346002626937680579061679435901442729620385854181192272019929163892062435178487909963791323110871663028025157089174194004317729155131530284253847247554406464039046869486969776169204227857884864484341293487570325637266804980803699196399228067981219484303312500326876850355462980346995637583771180639702124683348839641766888085167951570006421949547297326851742813647293660442245754899818861517375007274807697841575248943799759776658604114918666017457638990933789503863029737196783199595271008194813531627191431782443181217995740318538725016737053555954887756533014202843457666668950086777865616847761932168779986157514800713345055194400825385140846040154097425892292758299809803022594847463805970300947465676500532864423232922710595508438849653121490092109589612846249954826531770647124873214311098854360284931020955956665462191521028992051954139961877662485756284113821272951542865597023433144213812074917586539177976010146547957214340008889215977485818531361846680866310243150511592340088955152019081893505743519132134916594809186375282748728027351247925398590977724875220161892501503631319593582281101065117147128932567051854070731487369599554202944928028331816363842579897451171116856473323767927388927415033768891862525420864701972608922189758377856287154054214709870358612236864330619436120200954137089704472081103407399390675239937862350092933750516497796823500275664237855568185575310081744820116987977366367083379349688356225779003956963171276658408488952579060335393593985109334331827786316375654853728641052107961431698456642821326811527026531059533723572822823302825484483645727329236543537058678203149856678345055905112847257949514076461702752435749395434317353520482125952053566422729528197282298855884752579051808591968988397701634303601309757825424046410058267990314102423989257935764359697760982325637186788556099999629531750163410233700300598302537282538542716108802454240889221338685582589276229266317543822108610148549849552932509782358101638318678440393312141473779984100131549412161920909535057810292737609886269302471388698408459556974602587066406437997304677769302723566883742988197036931280628965815386820627428784332441928017763475251807393300624955129650296384980550828272981318817681253030415068378950452031687875239872370702590929590721544704154481365886471530105079108724471258727028104696024318919031800057194481708247956804353158625987246229232891397663879861196146130173512489168849247153978091779785216632711261274999053905130556033578926668470517038379163092813854347299421715472562872836880095890233673508654872690397608758280419868048477883470051584096181268014407358913229500457103301280989003958597229652498042209982159936442070952708245602755210444082659590415485768335789249704339467391782873851718904950297953474975419129516395508730295809713228442198169193292735672964594049916342175890157389942139212511126811691289223863976002933225657970697333960938332535109495802733626387558550804206315020932992555218500404219986947236832609377932614274691738455571592389102992841470938449443330593432092960571208058385544951073651215784465339906202050044732580699348212784323046846600663740580226089099717114880181133152139869063718479191347676600999143692370288867386818474808550295359296881019943077710680956479520716141674805017928233735623284735829826486985792967601858600433672463521797320277238250490008847446161900921146150363260694188447868466904236473057522133704785568689024747422335477384204929494173064410535507129671953579164099484722300862555837757995504256687121592014299493837579006806022617023482447984139585319637521471824042186833782725086564088023319129575251534958137307282896213789232750766035383923663993360122974116044383495387803771357670453940464288211143955185872530801522463304652035449541219646900213139723227535350696822154694655942427288429373590934515159827460359666808105810615715818333461914031794007874654612368614300683444496559276443260056801275990265634424027671187623665324168873705855376617525620922219898044291073873888857266078056266024492434504941034013706421526700237138210213723794116031866900991794248364950973990595813941044099519545079396578163068714773676205569483702629492960209806845204365860705023183414649160899997822389784861860842894638120103597821503077314798885452413136927474550946186643855450574853544238897180780422953598156038178867729246826087991748685300827476767611505209201416728897905240662984587068068984594421901400069197611638073284409590797661218948544598262233548509231167348454030315549883447434021129511909613251979722854942851072750243063948287716538326294984510615153409296035540992999341257554553729117650855778465646981870714297906713922192791104716518803985081387990086340233166039645995498860182587836744473134809937578395873308868784703755293349015418608454736458552832268109297467406910394345833286320865226445275525368816599836632339862178106066431890263754384962286254644323223681295628504468905309579980042136399339047688027229921559348970319134931811206385986463271311035060606803021613681385443387123096625689321750591105400828093510645091648200636927180424905570474167821237190134092187165896206567801510068966759257068289629637014814147561994505916854592976075137643261627971622391748971539653858836180947065655762752980085655502200333562494405752598145259486791388082023109790305990574246701939201223621222803122882998817265962596796546716769210364292300196059808916350873676280354040503620867370385923737885895267457177196927645850048833492628760339373523566366785653909531428271036568777427574011521119974524567305255714538142733312626757509867984203080412939803587844692739291101028520341950822123720456150838927537013357966704637972490729596147883247768885349750817304874080260094404846502072758189496523103767683459566703670147973833230649703764992894928872888308676967863146146086224768364170261942027513026597134232770156872431249442756450001632334390938555484335442278574868707151389008315902950202910459878674877172837477934089783314357038423568658160245587061374420230529118025031876530890257418486431540897866251284682989551863833082249312223941266443917169526779462523626758222620365774051073002944966236418981145670710784575720143127283471300723755323352364632671752858628698662719900412665165933812882544373887169583787681031181417602841109690405397094475327357891298630203044295958634848227835242572765755826299779675238741273104908216380561660527074244674734384271657857740357372053636367812351269428453134067020870149524602478046445931298301867855876975738601379025887483706426171456176243407141888743023433081499174092476063683160516316848695174189668029354461396831752455062860866242578448305791731343778772786259057624481210049397916846011815161214236489038665028537893853296652152236397290794660202205675899558992801751150541729381908097235325770116853625919532987930359631949278967402763013459634212080694875508702231545672173473146870256230919761137619743882755702144784389705439279858301455463931668709095577281895882764980664049242974149099414957955266635448511183332711590836860710803024697979611231080942409996291299186765717798312252710221112738025859676739186582485766872477593824911265476675027126380918328197879398774885491681714494150819890141073640719773036606400164851965239282902299965702492107725943207191730342956163713499108640749898994526273195377276913655622945753509145244261234360697531228469533629786140948118864065392387142770238488797401251663629194257227380984537044705307495436035100072277885320764419144228938720560295796200929097980697948289725004165228596641915963151541793059339083495690489409517932136116832054113353170197746723825486372867637839274825298527216178475063723741567347835741621073412906303278742202310165338431935879430878144811690354357952111706131294247565257084346885143711545360890614289135188575321447737358249515909490512961557794905651541116492985909909791529135980327586569316697851609763036538813501542793815970369539904810075478034022928071771816449078588867802446707820560482469160210519945137428988134699406280622702831000624219090526624847349910962141416585684382931431266816484442964342015055584076562609727408040220174261003638769298008555629447275145380597134726264836612509219177304665340939849684093338810075996606201921066453226363216309505212857779055358414673019495864818076871138993210891727764021916428198971603136118823291134227100434058514833998429561711911760405315705850448824344269877260308377014457147478509338045939590780817187826648851134347909474584549963388611182184041009495886429401851597967968088069197496969556096660548928043655285799397195320894456068178715616593077983589096714649733071916812422494989497811492603349161463967198520306510366832364730043047637897733907190707268295398798253591077448346385310152974500713643533785132842530519587889946214695957144470452560833738568779321381820006727422527682552775558861389698974269751477535442285889744541300393099273321415728818906934866094508297795074563946134371007367657109108545175561283972724054915953136058631645171480956786156567012551688681009310077433852756141958072861919824456240155969619121024915918164966734483711868212397220985436245224484652492955967450478458481138479636367334262256096657666844631023935024151938261742664208572913553635486700853429657669857057886579544955726952861895965674767556226786681505648051202865104821781610450142181431746504066064304843910017033998972987534197666791337182105808503092800964232516644053303333659591910787855822106884778226783915777921718014995897680093552189989258790544409778507297987178290812860884545764671674596794972773239995690099316420855676461726618899649377656901018712503110187357596214807422821042745395951543870947700900200880159827256873781588760278594360324851100714059520748969627371251584826105335821705890010322339929976771363660038962505494151070975897043920294693138647962515796849816538767857598976400163101782008940298834999906732837581817892084253690806443728715022877596343114216346093930954297758780082156967354248166629308117663294591475355639683429037583488508742706770903708521271540653514248643185744878676528949615275161021945441646300613470217235802753611619034844409108725435494388799708088027861398266104831188760771321379304227013955500924131061966933818857896912802070192808795110015439282442445774221638437881911235136831535714591850682682305099825923351187630330557618817989115765678137043851853614437468446899665505821077721608884939384014811590703449459360211303586548532668072593035701753517550532872577040005421748900655370418846503549619068815043977059386590358605048694678480344271147915470371186310112787308823718158111126199634294466243861776810177724456267532306283896331711987180852095286700255968254460063959457842366525650147392330765018486384088137086352956869568750487403666063386945032323337740381481910638913724446649110415984073503500743583757816786345177256346525988556943047453874023527274644320891476558952313995233119388531161412493333095214869322725238502835732439818023603730827212062815775073366262681990329245300805003940462912846859100784366923402295926180312851180983100035668720821398751674444552577746445999781778920873990736019856821466966860827044636599663566918292578545508856360509437556158706730817073516067004234613967364392726111764479175496155007689242472731814367133279407427950407469882852141280311487086102229320619470470216448042192612416179930779568430800943814207640927215228836133121257536307500113168587158835123911590898322112209236547616115434783806900268253824720218617763061863290283420639136179424458207639997838070230083743049489805767338847911510418733017976200400224360514358313465705531540868856859058421736130463569566077366560997064963156732697178341974330011573016257436813598812201315293532211369818040756541327017514421040922579158299522475435738378859436363767179334370697875541485455179933551039203795090233567604567400494649206435102167898539826165181804005871043688079574599068148382634315896126834688432548535753395720109610823806656413971871480751082628922720654800898959149298971768533591358367714882319686817470575709224367302889378655970727176153303640659409257410380319501746834091601632913616157574590058330013997521973753164412722433732126454719880628309692737394089441733079803525619869315745177512384215422891061674670408669122928308001983756595524402867857092200428605433430140680244529688354755481382274338137526272579014288716468409626185002769617192946702071746210820571984986161803828041785801016311284583754829635804036607448846449325653101760925527582127677217966120172218235087036050682179691907687635240015006593610326661371468526312812592434120859636091461514920509984768833981138687360733722452729258723537616260287781261317625415397090037486084193803367016246214299646894057241897253002476660684946564456558522926539959397209488816369808239806809602292570257828242065104210265439816632735344622017906747540146629587955848245123528323579971335986073947754488851606142411155258794588152389254020555526714300424754839298165433647732287872596203425802671620842221132433043751535247938414471201658136617867175307514029217777215973220319726049272293198812908765497638791848827630516964897983749097640772602063776240793173651435014322330121211279701597687331182107784141183324174813509123209401886176249757964517498632677969288670522963311037565774101716167322219247040914336522718350703630454902349283987915956066593559498398277382418622621254118244229911468555253036707421555654441245153141989322773248222296572833256903485180527796678035325871173111324605779026067277869453033973992637502597074308276419093795376841663814247453104217652864195355710843904223369813559271573296530296302795261735775900971541789154074194592713209893381161817942215970643358965065634253069947984426544027001512319797762675932556159901758118915705581438138654333065593210987682782865589777626559222867580375061281923066217005742120802467086445227395668546191650719423642443324038235269724049166071904402204538264034691428688469193890712223348799037971691144398697170306370517360259559534758317733274112808147462290400005737141994731748682160498789669735565663992478151940671393417330322876453278529131798924349707294372296567512592109053020834655978426478994919120519399082028739709467345417282468309082840737477163629013573018066933320655887219065505325050405368883266276433121750153406269345975685218059217906819187706381210686006093200966984352106941442409375581610069291481979083599394944678209154695868456254727579036041279524315440764427547976816098369719234044047182638800487377987078326979626831628930489865550637236360344078270169461688783939025703497097977700762092801814310229669406266741311499739189662067610515550465096335597503551089259545534224396839642833576684305420559270376868958853156891588201270764751459698860869127845294469554361360800568455670988558234776034387149899426386114904558026234837538202758386959089181137296048798521643515541406506747304164309216200929358244623861934978855061816246942556110041546363340042096840798794430608336634169621816363609113033508971804461833826937286838192977082293588854292004614811661934720981103856622114714856427179680157045334795473723537814074324663894962412174875914474043454403661970864344707240611604172602761765937186723079122502982098587489073617869901187696387147469372324711153746426841298920442314685704061368975356097246904968705582251169448525211022000643734291364893488619820705245184700465574737007514521789136985634825992978243290836279326069432679719354583908415296087151226669746023677835736041843246445011553082460492308729370184247856514232979080221589399823875733635831333881957913725008170823422276514575955997834341409461823895591859325161972513819923316805552258301246574468603267341474851449890726887844139665475335215039159341853135406106481499438250053125823557214178370369763122503096977503476829052936786441453518711393595206211565978093470918143945516947609236029523111331077202949771034723864473525802043428763704852561497850618800147826940512593183680104026874892973157527653441043162720590369656158081244555011912139860851087144629462443507481713221593689052469569064697925201430401636277992774072899636915538133498390961828792689434523891324776660141164426261129393070135271356780133435747247724569628071610510657175213075358904821359445861930269466920652347196057211558243527124549950740789423126823381916189133934142626750965960741779783195078873286064833327856047174844751788764808630165222666067299780128219908691326076880243005873211226361777715700351691114275643654678504364058571241349468868587229294860110274613425434319945981346995317834747478026403966263761809432584547725382304260234669571526117090940924922627003736021915916711213508530262854356238772877681758927617118736736042846994669365311780352773220955639667485171869263756833040534926431939447638344770742728683909198260006891723566023906732762687390244876739125291446664873265258370332230839255998107971345661490933638478442531752725458092253592148382743782471729378521119835021255946606441402161227973460871831339530285395427178151883826086039350112004642601960362675121296098402903244502117984078201301863722276459867357418237391325898272785326207614189815476478229884074526812246958246605435800779755097748461766239413702048175027741489389518701760655250875012500064842325390089086682413090573156156374496712585966039849226517465362066592525038921683536420359971905792568667513859917272385850267257579369965878767595190849843640718230653072086401237983943120664421028791475043050059180031196118887774215066368295972922399261465909756537548239727839373488204258260809947378023160303802452068554970677972115209291868020384582427243938655104050662281859968163981325866930501549764652382514870040807371911474935542886445950661438091300458500323989286388856070872936570858300172041087576509855947971303834355554459407881659093139600986274536554388813948224422546964169502288678046184448653311010845599538815603646450632303538925829083589288519861147172301865594506719865582467483951517643505432200690514089449279693737626300545038248641183129866666217767065803925597570213173936678440713509690482502294216958798928715665840666912062471247300628069588857690167089877076416434678806652442939457318018829066309379602490998926039095863144990120489386479110136469200962459182840610622051228032528920459670190142631703256493476995959193690118589425072193333632151308028457506127545363662038992589402440590958776525639389355549786716614349868916761027800021741534692601215917797478501409374808520769946333372356286511555402067747646695967068935653001344127197833205257097419275348808310831874358523292234320874760335948036306677974815097258434773146775602844073454850158489562118753618563050044980695943724998651505503307087904443175443276477539166481962016772125804029721458740269164807672605160748147226547214322885629419327956271401523592831541685257197401591348333186717217247947673701175250212973664330485273071191174912291377598203757310561437032484129042729525100599339048822665805903682040597739276765323792632262317546724955099571345887054508171759918638920265603318044791363333965960632785897112433511530467566507233355035969873192877293337747823237436853435247309964481936609941573568269042954936398393375092086855583029969068469471858309080418802865217019210460019980660636391255045995108431964413907179350323335620712032826805142226878355173092845545010305069595418566196902955481490250633229634095859189862470729960877125751763102868651535492317591642173137055533637980277940373928256828118784313521145251556643078365005374383789791783521107172180560612326375430202358611657512904798748445061817718021379518334853430051184779914169580262427757509577776715832267383271844643481947965775361356592745855618701859585380904630037813591610874656726627190363951872710335779429975934929463321901107841267414283978210920122135164014760072221119763521307679421916276471192035322326475590605741832283770551624843283580801952058665303230382543210137377224002046793244032067957661455532028529516175992873481770743063617064159578048761641586267417281851605371808865286448558690708477535876711620189041925265111870337255425112200080396035311980984359221583270497318135776844708844591114869988630002883171120287375206240169230662687879161799363074577720393945565074978862603390286870286056573732647626488003965772848558047597145116953106412896975472593590767039751083794149598027155526323301526870999523805326139435139295832801394131738224670415749640771080300785023340664014177277877708240152357909691391575477751333423278427983952031474859603754577031893576063988129903267654275072560437243330228516764386413679420098898755206318998394644735379317093695638647791728427815892701001604288633111032496220343190255808558214259893786749295640919685280923897227316287652477140607996734690804905397330546102973399043874418271434487259068409720183022852270151032444159759736204754399606275910542539670692399288559049022895338466013127496099782055150086881887407836977632634735408108254745609913864017745722359992482532218056094245735891640756131300744524454273037965659659930423436032960499526538033718614610971906432297009341634604637352778585112072500223469128780222634092587133591887300262581763623488580087052161554029624775749805683077712493970951328582646998825952700351255559119197705968374603472107500445244079944558386927925356625805713038586144185523728575395611307758429549211509620038468365473617541385366404808930862646482970626529832359293295175143366947755392887613306491888102634223075025544291518974955401854555391021153999748575593935899521938126543087872243967874151542178990392482573308721553678220017798883103376192379815190729100682624811385903816222984524199723364435873797151444879685249981052048810579754122826785876938063498002583258120953714943043364400715927768560278454799201933532164655359292230271244802174184991006863837551160304444244321986182869256281689238806081989824334473237944367796545328542687507903130830252032144927834403357096294296764719600676474047097274661126468270744182016540980162099594470432609475362038279390193137964917738528034697062573532740759382746692325263952692583007648987383881028750842200738728254302456147256843771432166286741241610886639699706680167220897014209039922870330401845626885360145703845198149671644348797684417502104001636767132666680711382948701186795041009431038444538539499429106574737007074888323120284801040930906662212120529831379051591636831651850614918008448756129579163686229322736766753369537212235472071074203655006250758849392394279746182521855487910451695697536955225287681939779945878544460653117423965637599889620623179019855488160473397650532906907518077189870281918992144867989214615546058726606083140126323368914037457416483269630085229337125719039595284148785296529167052790955627779417838453004171970593024057173254477211139300249153734413082947157244588022111924165280821442402104018016187337876739756377987657941405068722244913547158835123943949211381495773696099787132777961042889553863726076059437554607474614204321227045723984563263296562601141028605632003136628155434451574519605065463441777607207678602627363761670635882167194905089593364508568161844454004041053544587983371926404716318261466780100667277045250678060368247339627230454656201665109873051430542410764602102797703099328381263109930518964245788682292092392680852696617945609677392771221359786335632664965292397361656698425942306999816721552681422687158770298989048850161474645399862205275411738340617511566963964201772185352795709050030774283549425960441567732924594404394237417952250804764091959934199156091326373409062476090305645448192409402508270246542915477374263236849569866174974723952563006829139989649205654345448171847733073918345099761270948220243328854697211757818226015035439962759623363563482692631887996417652033109541510452587567802654436564828584325204767564197684807906174815168750026196691060729204225380394743956065184522123522670682320791376911928139896383459311256193670347582801445081734199608026520680957727458453703444790962286868948295585187452327655056026482226634388566124912386298305238758602786450573008197018728820020321926444357632067704006160194163576870043431313836833169305230056653582105717238637816096496862071799728315243594176411260759529121570078623738380244390778406794335467013483835735334339488158768217066525297328142780446911680182571305026270386999193066458798141510408886303938503861713829171520220551477036282797549978099836846677011536513167967786610361023942617838180369648674475872846190461537769553318409536780470408220290867663654839134205924669419662832420337871772436238052022095796577325214050470331740158925286600440223576400556740669581191254294613330001805292733917929754714980776797880828595707200003279582694606870514297422871862721908261746850813999391381953858302742524450816817071667604039972959988878627434855313127299557279992059235876813783912635416908345400273823115877197126451712134941615158487659468704961357978088472385620107128240882546657038193967190183638947688654204664514822589298099108030342917516502220057703123001566648392014477764428498057194431253551121496061580541112389797865761112502517781419840971496843725743500119116921480654750530487853926305324446193943299242550327932606722866581737488901101993225793924073221007837652307382318809300171964511648199809020260487208416777060394469383325701445089459203655357626979380818814406902492622074575281858293996495580011649830935752511396760713944099479483254466707296830307069297466132407828155416940428956424898771160504863900633959240089526903153757456300272059300626141986922024231254090715062359571750725867460026367298736778399390862741946770241095759013306194248520019963516433936943527217166882943798957442897491496755683642696122905180662465992897050570440748977890639823613793861465614734640219873476429443126180013948017579067767155581463802639831371228396791495119806416920196889179619540699723372024542534378069979285538600472581478210329874471782675549049841786499124244274885410469325416682756697896690914560931361943024583326391347513463090394620783840660384327752570059516629092305295952991863160657397159196376854042425869546567766526631354903545997199525964628793093687690536619254268380225604559647526773923901408826565696592720138066785527274195171127101444812756935355370065262446528077290778050283440399005516748952906598248036283618675287881397043002827639713653023430671907806917342168751232835684546612188329050316835230601299976284563143303514794480795553335351158229793839971847109673435077174763747738471892757494575377197182882035134433184302515704654034863450665885433454487886372390837191987990388165394711377280345803443732795761200148880039880786819236263249562046726802581557973237871628379088767174451175708428699619782037965929435152665237853800050205127699781370821265144496842168226986098586896682503181084550569924714937974379863674759308273482700332050957004692631758808286057848497946181507129024646129285682425376482570486354512330022283122147685312361117628363406654398365608050512194053879259349454725888478080137472266832049187267638464126693553820712934615242701469874580750220643643090124119443518643407273300346334522823059355089821595241679101557488994292759836267743076714710761882846027359169233181280681010593388549659386089481913213613778572036167595891569848670577909705877322269530632473599863583507972015988573505387111851814194274916331800453050642960967253206622242709573918193910893328330980318629460037766741381234773354933982610722738393886937672394453540290416875183528646508980434558738878513211772149951413966612824362589060548846373078081198408887303228795097007991087563404768941986244240088249607571511926399620991110632035199851992330059099131584578728273782383654626815696862314537441376738686476762391297927811606087824412379455011038694876894098515195324137356022379533138906871304671807585272263352369673856419189383883664108812106547869799572804296942862312627782816754405042956524670364105834661700998659806040846273503910138633925005367263148400940261520145724922106133617558409695684243425353820503228253209632690586783527364382738464325790305109249510984771140651992738389496306128139739533831360267770214824600508325943249872310895423862864836265763947760049750059477576115017078912004897744991004550481581346756503589684068340874783117914504500263134444785463044186752302693994443770949685364962660514306290939553677105207631641172010616321052932366100038114686199426547545189461780969499512158921716241134906616648625039222166085704679254971051665508950022510158310780035301332061430921216663732396302032693698288568543368578192700023365314067200495388332028991119811779044271180818976718414426218046645453797879577622849389907353066533301164030778097773677483922194719206726122329233233362474052371408271451311648338614851606866497151651075109490786111399661869333004433316610634719137523410403105470978053094270302672113146458199430026710272829174472364021554991276661067384930554018207068686369211520402092630992046344882022485639696671594038426122431136850829559803462200709296319534275505352695890999896573532531160590700484284765501785215507835444028838752708325776888408772520311970739639761266269303915772393588640100705183959972120832114825723567777182421508470012319575679260253156795774778810084578606284676781445528110268659701760051638517339820843008264362196930708881257307859194936784027781943412082803344734953258462679315951402207079350115117003572075336742177256592385982033599172671970497579132154618809017164506285359234181160336187490619104316842365452336402819612191146419089987823805326783830712634683760613347468183835379575941710217428078848173998767099793904594429358141486557428939111353230945623989450731882610895392690914508701065870913226729610739427413457816366503302611855953496842965961558377722998898936475452887088058129902647630831140530648465879857463046061678565651699697092348804731486866965388048765338721271412190670350008154171517464456003968715332967000949434192095581448962370678543850537456779754153134571661995851382605018103673020474132121427362777930380883909519441902997559008581211050492493542420699195979773906465281565757545910888814285712021475421583439820835067246973868655776780213206749318743101453796686822116241084713449310826394204964237326317551790991327932990476165945277404321438454657618761255745969155541682187673467992762163320790241416272849982562306058129140750823682140835762797655133552691644153905951992775572213995776008176242762357786473530512428441522799165435477076973731743280288365619861590132621443682449055780356822326583625324739824965568054574265535671327168461264608939558091366797170291330965998113023807854663303412440969857390293531807472571510593854390069896681304273481275695854134011884016850338289047296883298075335996233968924496540382230664790773220918187299491088380124474066173700459231003766665655717325576857372020685515135428763330341723508475664984730571167844912673121708368897170571464817902788681085449813817628588657964639960514281976108781617188384736381890726310045266746042684194102373051601739903900966026910335735170436807540375298362812999910838172097815851159750299329959191892917332339555887914347667832980143923594518671129243348223325779474134230766323728451838850626307654604961272070519950661819028656902178517935840901328678863314743782009762987805651014172757670755710102421058866793546659500991258160697281784756400621880266863551318115223738526682647202739239598663864479876225521249261775014887984071504435803111660387702787922359646405948964640429427537318897335566707808645535486226455986130295078295366032200762455804353410864208107534921677748754739808915238653865307497309016558135970579309994094983036352824733539798203229862973258535839500608743211131019996689845238121712240900617078728025596035880916595061630629069116021756721974199218685015287246799419924063300896736305824148480389819687408091641267525498618313787512104734220956344329654816284292475178693882230244033771367989295083638907784412716031502837027898010146165663349973624622672115100103802398656018485197613107732392110084243471110022016866318874701876260755898262227746365850610588879019233142139932578105525946927474353129511609340926619964798194562044551481882176625481853767096083345714240659186701604109220804249929597830215050700070007900827458921214720768492591043345691420609564374870023425948222905973047904224823931380664979567535106518356969686096441487347639400547742984341983864143622286958698617903650858832687375738967162302763590075703433827136339230858232245496519608479537274197298756293657356307856321459758297331628866791906867700376241981399375046391005078572076342634483587045341813947567719654073215110299395141451020259146349171190801183218170607880306879228595954733294469650215691917034073912866497958554828882811386363300782870922183139486456498792702409581486332464823012204385446296107479282735725888314635852735059939861908751111752302678065747974615989364524038289003688058543283378146476662627456353372620952989236803502727072473919082711952587271990999967007194583048364613557297122533067649489890923553639903570899676499608509636453327695127011389963742566420899053593063420093702737364078290697342794302413289026033228518750045630982833427396162966530557860321695996257488184128213809400966834968315446375955561817379443870045387243180787891268676980633804841437643585559813479734886002537425309506519284205009578982357142525992808098458889971571701145486486938522165724352190997758428642544107049991969796252196018297053875264459395558892525180775826633033495923873742466502483615257736159242341507997060659177594074316336202961766437506385463610575383951380082081707029281933342149914321523305289121384857727444363575239217403578949383208000824110668660980017220843739209610471331637249723209750597231638842136151310160657147493147717154384970502238110781487876277667327835024766614510515491617037968393734609185996525219884668545487261435772092974281225335328140951007431057269893294931742337259440182864690721395579504396457038271131519719668243519861989180855312270671490578748393457684071037682158724977813476155913569584227027918879897033458757289819645831580559731916314702720226620438326662475556078161454986211238433519778025862688066526443763781059020898965982952305168653977619712000910504094947383876097202542293273333588066811117789781313170863312347931944096799735665048015142612260397571111451205301488488056757351960905607778057267258409951875258155939869003840245432696678287337751368573459663215531599566503691914333904777472549343270399103654737005604071740897612993302438313860750203298008275030036571945229149084116600286011900016975916117698670314192189426945417336635963204753448404196740056982167050686888818932218345454934781908381758507090554949957509753887442225425673799666515839480272513552976864951581768449933212098643951961954617369904499624305373426636109076355476652586426309132471414620556884626596060854986788567558427171140610826933532126093414585791101113747238212619360448477452609455620739163149950560784539692472010304311821889710261957144301933416328386782201148693140902642350955933242876036188283018664831157012864976220157775667211179652154528132124890859016061979260988264890377988825018904755655945816228343217502538585677026125609328666901743757524131698418613751651689485778537224871021516569321028532172004821081502619921620673614393617081223348275425115606048154226497214422341327838374057223727452132607250377012026025593064755080360892732572215694264008919092569654642820593964570696136208843549725086930866659751972938874238606440610346251334305138006736059019364618225800634645693174701151694074222512069906022583192011564029909419796302404980269878145229491511252750668289405438191083573585635608856777049511940944012746905737703743611111647963100644620646884287429190584214028357610479975277251735857836189555930024311521548364491309555553444433397349573615806894296109643521369919886438506178221330746756172877130201024807541314383024450714834269593227189794727212404845942596951386665322393983136352534307659067185226976298163076729402807023132709950349512783711944845059380540550239507797993888126512201606264189976757223719277112297203986095463600876809602020378274779720720104050287744403696465066663055851224640213087465016365679083988817879232849019373389430608579796480389129249430810325010965256976512390504258027171242861913393092172749485954237357210941127660895402537191141388159134988184518116559952961596165088620008836314089876318234382741405272258894510602334403241060434919343617695261368456734680680590239222845011946250862853444137214177078605183187802968707894622415512124595224596650276089113312873317485959237806075022254255278631847957123933974215872476925019282672741650900947407627224630854622098223120000340837516944325734052388274742377841487407779377330496295561056786513482930190983436469800137072626305276946465352634514236307914844287802513826487604802049023872144369016445224996816105596647798770373253406221588072134322930781777700790962444566535033031954391458078770237950104520432918712253750477668108806290407306066510738311763473592205721158247074530106085315599329998850282346593736487328029410321908704102934348144064783453471284716417793502419555329703156928952179989156044884747732772196035006590248084323174467149111452356491612727325371293970395652916590012092888499591021810251499447242470124742908423102660378812582504296769110206992121445011514789469983659096586420299811713787626985630954374497094227044331872719450129968424630573473109352970577088795822581264823712642261419828328745985929083995354147060898381142186562441957383893180665666783353458948516787974769033134375033773140986762017862434492183955691631279835589049505831308541976117287399793062230651946602973924574396302912730187293364164835978966642169295897584846087928255134529361690361442575639396514887290737720862271690010583723928572790038877758417480233139126067313629104850394139660780987424947850893405194230398360932171459543700403794540875479248313061098255228109182194372344687687688064557478285745362005375990184038916615381852444506928292206495120543423457795261147188758096858659239065811909718241604085546399960581176778295636924719128297675019624066156256000846655298521026260674200105130827424694912977470679158026872153103009811973434493674009483995324758881914703017819670449517601197307682761333346589711333157984406233221680193712341764305798437418535323507723490281276417166074433651780815713114789069614149196609979904082127503092955366198708965405004780285126274198054532627066251715982201049651436232748485898137083845741603569615795231167503892867043337520094282602012982164949518669479320037103890566639052306218833713671340349650304095503010368303303339866227972402740548799929157826180780688458255774462235229355367060112996975989685622219303069320619476797323047977684090980426900003189870757857273835460387526819257213822180901266539812700373028187741949537671372364732342590572785785629425497075708266497977676776103266700526963507132250447979320775589697483582740719778352915132871074355634648723016765238653652461652055117142488926936414765112629589069760899045259809018582582355153377341420564825400365040523977632839307158526585683469587301183530972265400607471936436194425745087268370613081247546469832890356349151981788159986248927085217693681581033743863144994502072251407747227399987169891814629658427672306431042580399977981951815348893559467760017918853036953497737959540622629087176986956950207147606365665889709634996075412700162267549792706451382602717265225187960035145692278259170216080313492162026508758249879414718198780103200187210661458296315665714105446999898580134807204451223085107197197613160264797167705896558193220328952584886188786087771159344023902236709416201969135395993220582193030644584720605161166362939096275014867054624964076976318433342065306691970702382972324401650589378184383663993605132704774356313514882451993287538635688524615712069390070822548195822406449814381725314166167213916754878702176457925671466954323836935198023075179110820878459361614251213224778164615551961142822479937244954545897173512632639837722724786834655520808597706321435277591148963893892817111961199808791732417108083780621366724627429396460824811949730626276937694099215746267150560019669836609644666387179609499550801797879129225008010826062120607629658047130112752763993302521297173466719704104234456208018154605032671717421247764417894788342209845138966974602458048591964384565171353951425034328333715934828692383114793212637732052068113409592516393892876727770559870651106037610541440165330698052827914325967655781689732384609815087618297328701368505472929899349413985721520083640726273555691686185536900294126475043001396275418795279539460355260021706820990748373411896885109443855571256633112842408667128638802445973426055088536314904716540426021859752743227629407467920096261098956094414924779705667205637614969266208325136476796925859340544512544291134055472419201071057790662152159018843107451724112591379064658312665267349751785198475868131119629127924778310306662008228845390700593946018432752265740369948258284719387830752333854683910283773247151464425023735736304172023986395551365484117801820098696124040188784069638385706282688885433095835906185985497131912118941921180054460461122304217127541345244065473494588685455798893751737946639848515109803442059217741843149913833921840079758372286279515675278736899808577922219381454815560101656677642780829296974030610677605783419208490963757814431842873513547353394398311251144415312610871980833925105163933079719023000723398587723102984039549418099132715565447310149951302685115892024236236203653103102706284551971790829343398833575005022025051266557418809135667617609608745283897028385038022129235194126316171635132343936076572193299294024258762853567441517950939622910683089547127682816549334880343414382628028258248019913109345062656831560841451603559585490181362861598339438546338121192058772776592541603303977554164184607946759434461337801307740333749961980184601158004883932144359138861989754286326907665250103707941460260605834841922783391985644809599267449018616939905477892863554943105648632416470125894889270548210115619690863203956938044736651153364100190935026580931302979979425863800153074828256052988036512560315318961883192405133769918784514213553090705391773074419918504811578616009345687483772997179487451529251525859190665997262003078940366739778802724858264895137499029008859155683425032415572294133541200333499255729070956459396251816596127639548616081615427111630439352037464989967345236165364564160017584672646271930463374382106554432128867325978646428843181576040101409511779149651004758629532342901958967234863123527866670635283232773031590011426950531798804325084310597574698193743493871754623282378268848000947014040685400718936996865551075503628306582117481263077398957994084082001779539287592658281939876752808292608112045407423418999722232027556998425533193781408041268231106461551057040917419469166457550031157991182267142227269324024116343140798035404154639860550815112593444685600731337950327584334087564340279250525692535942004131837705380643358398908347528264113888323262605435828964461797124020943172944532949878331767421174586435719926386680728111600056161176427840740292727837873645672662227928843903563061256383296418616085508128144530242400647793364052499700911137059748947678622583654157019062494312216781247156930295215763858899584542665443185547272257991666497049842637446642803477239451977939838348711441960075789567323638181563605910349947996391443728791891857878486321798471955801112760347864221178838791779479307092428834335464491776677854585213102487726768390703713647093381504387045035363029457542446349464778508070855694890398530968280974300935432351564625185123787567452928323428123369027876366272703754095175378474864633170987580055375678320289394290152184480987507793558147411888861059607482354648403805985625467745159201798242585901373126339865653602666956698772748053857020993374419559271969809238538954024641221398671784611184091567800663512045429188143498559340180786446485124644507894110386818306657162957978039057942763074370286667200028538200161272770875192763982925792898088914127711307224280639568936965266668366534735400384735614829655912268846820732452780126353391652465492776614749016839024593224514296722890216404861067633157778238240979571436684247198429214647627910136555217584568822963299496023452576590177800151181343143774799385064372672234513972349846919183489967007274465837897578568892930494455012602054502050058898724129468636792258856079886700238986067667255287542829497578151129394276225187302076813941817776127223716661897105877811269720587729749165378590624726199979884378503761134257388274116446283628199854924017925727846133059737889431521356679723001464392410185681999481598403260020263680187225396838485145350254793290186393748892772983032008499540074442676320659367351867602294937918016433625951358237777556245796424717704769801409318210812347066300503758467113900886664497543659282649351721752496338312269930707010899685185811438186270393109675347580635229639240578885098140948493363240578313874992806805386233684305067012820703421737053679815971947249791827522070278293654931096260657846221794173526474791372001230575452859255202689170530630912525330725020102078944190458835932044111605494573974581891271888667701287108317284720471664203951206876630610911936110405872700015048514672002366216188852706616527366525753303497412342537407850061253981162592056669091966860535971192946757359536254245228044350322358457892132184198190093671629217260682260545880882450812583486646774809289603084773950323004457278575741010603685184907103088536827143130088067519054302464776172841422409489256562223637886502746909045431015390992782972209972576872791145443125839659183650887810070718711922920060534721692737502467061381989653316701256513135842998775153482532301486440163060838022250136921455033411319293084682450898686878563808537348059737033072182947009589183578605825415785930816120173954156998749501829651756758796170219184986572978826765280787379092952299872614231345434325610059216593009501755891689065285209994719817743080825041774826412619028358805743194002089129989917560376793977675901756546984224865913766284786644421412220428099112066900672343903542354247924153817965589616668584101586947750771757921972469974623778370022633602326861759678079421665947977884637001194014545024825016099933281935211777024175168610738105377606327050169085151466581003074594998797840550848505880801024931851657468162687199724613727409701063300133780705672151472536368031323494338894970430421568164487010090806347519988154039921168517175875302070868507784345095789102941914918255116150865450053963430011386668722990201049563294409436878303888588739333499796484664843557481871905588430651610214274523434214777463905503312582922880349395602102225912079123347555606521600248328575406404759268005164378627683261702540592039278374927256603177325553780945695043243464881103823519491499514366032662023447888382906263178572615966276738658417527930357634513698735952403283573234456946893593285496563980044020428046640151766934085120686129359160789215756293434819376356541552705252585704315891443046848056840856460465033774034185613664106861890924031599222819877511358549600166314593321577666131946616899124829122548003137399283418336652931332847742781445741085786562236870536487023893730677058172037915645841128238111170575296617015563687919965417357513828528563340547294912486542026330870018500299736033283616032002325050191678792915409274172258421955586476567179340403951653961106771487095889824548280916961825726973015722773652232714512148007909755198884978980618702688355135474164664485907583802568198674314352838957743339871441641571496354442500299551546917844817489965853295345362008175319552756515635272094099257021285968115801809305279441335712296897302931241267562188078503964585958076217048929830184449610736032484881116604621162786389256512088059957011161832353106203847536534734205556571689430863918031529624313241202546052516643090381030262513854887827445000144300253231421465365283188594801844572487543841198980433899209955296857195805956210902909951068967923140259727152434123622124627535015713026728411185086903625810637416322039366053348373432172518746042134059889798406382825702102556255397155264375574823304468526569472228735236382946823285585698340777353512465781325650289030143474483906805938478287245835284823471573544232477275522594574354421118534451679396736445872866694824122997832115731980065753900581531129366189412427228980124527984110120194741057549944916681236583361850587084984642237521398224088422218414681137565458591466208486703812733107139036974643870723709207172481669541254326563465685490126575007783879964030132867647802766301229817246449562222191429526219118599804006166645205655244304673722480379512710978912786658806099188682347932574323738345619523843341365016646358669194420509206694870954930023387331131141717114981591918482337139133063293588999846152049535517690689969531349250291780568794680570739076156579993777141007570404710782844335301763968391355932723288530811482515288381496230031459396346084975762400144374830757953683875499291605910154219212073998013446318730260452241625997220141259445623293485799825778717339174660587865922291051013794492804427085081769371638533785987571399133672039837152961384551369394695968192279767337799230278937415543978516688209337149510965955377892874097913894161870306161403793416071185979242022952974217014939185364090081412440188317250215662458694886221862057083508381818637318733331905581472165820566756494441306774232660821242370809221466617491403228719058421340565682741241775460746900813791151994978498951007835797094506781895279822954148837356145750419378932994083779881725686675849992965838687509940203789062856112653144805842640936466745655221614746440345671928597998861906884293031923174985600758201179480442053173622324400959592002143424810857304071756366603260413384704688921357124232901270492367218671266789437433385599787318475766834673686259363941511148690830705503884945763684578025428665001853397006861433743677775368263996198411479926599508482421315403215196901206865405941280327318213469263503517141926501220129803176125509542083908408254193252481673104932704410945849691452074745972703365311489758278555110862671458718137935818210871072572678322119521032488312553826455572980746734865682236437222999964732588627133795015550459391261527409744469862565252845903893908836737636083295593687891802403639571515757035003097995194094218169545890564840120298749027824929530595723632734555051252748940979832431112062657140738444246835464397065137407781335972943054338766359615506943505691178142748036591588797699078491997944851252316544050461266390947902085247241174141433455642862900891494655631256185901522648189133542897757197585631756094087481211158861724418629369848238514175701920333563536268231766505867375095962356764976827860748562406825022638462759949894674970125745456719526218750978592207540854787650190759641552833915493245817158219366545927120752345824235084288917659781081693681248486919946972826382254967578624144386589699535851192275025921809380580802812178294123249671951509325257667373198356565413285287278674675729089942313233502533758738877345858344709320823094933489999122102132704845722622325773847011209021264773812133101589521492364343674446125476446175554207176012363994040893938317058476169350210368944362972513759887968296906483071471165520377254103486596487998411040148235735699516157900825316666578591419296959306457445757868930577497351217245333503213410845537389362446711257066443524330176102588838691452879604576041015861082827528956779138927111340036309495218477285718342788619421534460934004335513919538714398397473276658206630362983212032068294605559723656094677652433142303056807055564202182319524132058809913545984697123257322290883889955253239911235804681723649326352344540129414704350062565594244620240029435598872246162687467229302408804401926837386250819538881666876527806800643251297207541561807842520208805746270157351523171551812980527249986279772350440348541268730934125944575974565246380811426694912099817831251146042378608922240705630757842024184617758650435009953647997671371083915786352435327374873900241960957156154406846701912447540885924168262482183378395342981284793193548354369499980267113172975588951881183791095121897531256098907895154725148979394830714915437060250360463880606564756642294495118568286805706698462535600298831907977798028174534285248723630468871200424365531668252557815100240648694401329594787563461851682321236244231301899013313058449360000220543264467159270456704659393346297687615012294293205095057377591359437521666139840099623036170658832311952390529886595498909543599892003453260036334273451148966913314817301012700930895551851824488649979850980748465616173166065544964548886496915559856549458775921079874599625543880049518059128158034946918240186968908782973895678802995432343430620197715147159793182944538295887947138175691375012390498392496319763719533652006662983064848313623402030135394566242105173122471669614689521836712230175808659525541583946577152169662040301666558453898481850645935922238990647216940358125507260086949709677240524498213995568532655967507078889585452962832983345110107876922514946022540274756313618947357231103144637020755322731026764545878866224256751231377639107481036526965304667531449575245214426962191610840149365735927876931412605914055914370828353046368548218075219220574022800575760103221923908515239392662777326182078524877337251969716110151441469307768705452494349646648144619116414210249498838025865520467949274877389406973415274634389684515655528013034756808741494630557861554006909102319932645755163380725828275266054255601806417950647039124371963475064172201889615299032163101103055344637621211755313054964690238836474189627444423272530011429050496956131610982755092199601013112031891280475105398901441670877287271066099006577054854901698339908142671044286479089361287450013893407099254393607794433842823891749079203396519278650709474630540269944283984734146900117148485659420467749540936627010152077324729324864532532196429670094287760253588241725569556241380172170962123482584970767302542996350906035890387274658162697604151586965007499393641552267706445636749928570423519283713051142099375756996200263309540734082720891937160690120351492600795085999089253555416742587056887934250123808811704163130597267721298014389931245052415334419159222364274763986936813843209447647483387622444913713070583779003975412625364571634105471212645815745678930980009433841800122702225769447527440773562179907895902975307452616369534427200925361238157237740303859391708053753549172244108859247075782398566795987806213504941163804156192480030169452445214272474711634502131302623612115435165516377636729489671791152077029910467537364078951313508494054747271461084339735142962706271076217804053319567878241201063216657465983535398596906112447308903167814902077895204842165561363987330182434855023020880377827928741470512744036259388258649380953378768526099616702165957718143867597450806757597005187890717029288786539970041995214905733361776112916472999079944904112509952006781404518373167595723242814125921867022210914912638199969153978539830013042238276730985946596463565232568484994486021767966308743370386696746402793035673258042232707540817586429746094552828234726756178393959402963214340838330820602384697851513433964200393403373373751272237499015117455720359091400247948571658931857762914154541717283384929907305611066088239985726091725959944467899773495546593490747400046124836909107668266908184285614180086915109237194494788720540159896439231766100782731202496386840141635195771611833335293231998574533955976776037953408411185957638709002379298157782805718184736840837885287377959228152728676084010454780233252156688439900910810212117098805853424146180051064710827524743820600692660777465572518341558225143223870106673207743132589933089688165512364592616298050158029755764473812756891781676416260276122614410785297815186242790308916079190424169855800018495072677815837486997051955718428395484560601620065029490411458923305496010381099646803722086800427523704772372518130966562117910806189583601778754858587874494691661619937448734790642392907722046181691426891927596390178718595556283315567423865147839553408283828650073214710612459362984116580361061962165991416589311203848742725520088724258805317265688239276897120985737962285769491872953645511449862723999579988051102583328934759085688839282076241518917583325280793786044371551861633830833102593487958759582840985688253398429569518739443935502813133247569644308388341643315398915958142773142485393902689666339208769093078191105304925281356521735465502906337919416844371858986421545540340312697570734885295980903376015602978486860078676880375801571845491749482799423700441022211087869802924158818532065705603130635876953800605773316521523214032613941608183435675527079399328810119124801709589507266293475512212563379043018359898274819735470640546015821261031974173763244014286587225233070601257702443721747106018723281018769748032273207195588984674736131809393551796951021871358707063692750850106553339573433992528646334366486898107368908977414369173901915375124819982938687759131284167834579502645848471392024728112926944906542947384909958074691932783464145338131756882534292995886077290821875622628864622197718638876626440675533488971952850107701835258934775151910853548078329909947928175750645012030341303480560850166990543770860064742398732168908873994139880442294328361793903111981780106274896151072989113002449472213249725145831822781232202744417069897641136366808116363425120979429068708500090007904542835026506099169819180865718865885980502558735092261875533488178050083085983906648190685217470327379689140076996151841604145228950313680954213982978084440130159266839690394077351952725006875102027798203810364072817191482350232696093879376365965401546945122091947010870178984488961575662365415664480740714031633221816706145639451758566202376253727422273983982997534598807017527708391068890292940755877423914940676495526795600786299029556601307611290971245302160423106941411791049940966005406204359413331189720280876797208408544117018946959268393664039678209771919344320664857301397384486829247434330921720612312036090635743643713839031961859861280344715430267470692377329378176933337626602257211321763710503983814460581591515944833223605957534344701062252753189009543165153855453739913307830661620133340254946875035613141153134303679389981445276155873163582186129380093049873511614077129494460248578122895610747850557570375578997695030635419358600243438432288981708944909393413693976787378841867145366945626096025827665184312319037069875921577558575473353343722496268630280199625494052652738190268602809931358561508904670527043046517043793710278965126503895633914266833846261238757692237625253793176964694804841817460488074704968488507377641449830774876287747145928623118615913553804611554821782639711978312743682878581691535922749785059845798357762242629281515772734049494424084695708994937837374799361383469352545264748122933465989441262142263380564723950410399447580461456403498819850764222489903354640549300206748863031393515548345059656129422806688497257838029014796095623141386128934757263015538080811014497333570925372787081257484509781677173261519896510745514413190646478158612197319840639734971460976623373477676883536398340514788249232072828936897296194348395896332996141377542428341519114505642375000769059484065177148488243955535211135141283583497919121757133195200150857775854952435254056358734829309291769260818608376871559062980003213176118958345405921342051388840779315269233994911414454331681637564753594453233213110777069705272971966332561928869087557808815511495158235963885548790625934777364586966263162567066391742196062902030876647229375115849034823126137975631056499415020322302988966301640608299678432842538401782348608614712448357181365302724393329489207146677076044550734722721824065951952829407170780229125189047757458122310683954634474662194165171200503266625565500133286461789201525503180436255717332802227968654737318952088872053527247533300687798324708384306399920889512083910687325869618642744775521806899042608855517877687597502465677056477807456280989492098453264311383838287420129850339524576617976729616542918809649312160674103810823604863827367292642740026090499237955313745937347288579661778943755264314474351973824862623238853175093943859770175675350547493560746299154765192777087496212140500895909902427458882930968672889176611529514290087441672741922959786954665060852479642123653204612749945208275398995717226405781188070611335969753990991814403558111205639055838299195849238100618261895559854428770602049382432212459774675770627220115199261353004980587757923095966362410152376313713503789082867848728391120088716171783178261447991172763185321326729127411151392522467355821184013257789466970440049295839337925277013484303422782851939996995573402210853711899364539845267155616246026567702395350993076103017781111915216389695946538481369418178153412671779380040271612883118852335674349451744980931670686044379926326801237381471761491299673787743848372900472361841425611600080032033784068921226334828037119973009726949046331927012751943732602637476550290722360721909184487304283085473555871955330962700109314693809662113579161222438900698664327436240843449333791904541798821635029783030756275200384732955517024137572670613101416501549750800817447105579350949162267541829048741414959644408055049544350462736788846311545284974518999525904579447885520077848890553957771187237293650931761288152507713595934053269645647425487857926422352798822992608070578827686796170729014765843506892730921281796326315039061578791559227030197699331958866459349187844130404784393539515000749749831630441584284862420733634422868901249119550488399271256888382605227959907052862492841019237486918350592522637118087350436012045847724771476828785252420987380542893556341548328350900489755044965922374725781206203912414302896104262221900958136165800074949781600952734029143167027580424636041836616706737279658167621137843416489993564640234747815550875240007526177960490116859421463932577586995336370385306200889805603598971944403949971081452575535422909061460468685839289309758954404382324137400939628984555713947155578861797973520581387689457750545670047989059192746077228289677127747498743976486213504767807831819161684572503920734490526674387295736617221595403089128296437646836454915917650961032211361963779790328179774291035990267589218167564749855683314698172290204263934645519378875485237488847060522463992685731295913426627868688426054810326270476878341596621631898690246447983425679048300085049323510383421559313985180036816504176937114105628155940104742427609359797569542030622985995012067491750507228833241247340587268472758025065481438266541711551350214488271392551826128690133077524443497531501282201490861057258923055098241823357611072438028487647064024827197604673655218772247619340940321262709737728890742481433409321891729639994371998927827885160888125960777893463908953762294721606122041637407427146646564795250456969215919002525045723304284874586324244567915887772845883893779218663228803548992214039126756451658228813919256441216669496100437334363791420669642134067808437311535016806698695398009408231064901470621007724421066813891945784941255664374248262986267971228292320808260646088080924658955967061037304556841470356760934387043702282205539557930676686067567867354605245230381553452433611762978629328471146561717345952808706816502437367187073678905908965278317722683141225650407085764681767982857630423906133538479972385422764785423871792600341179311227255911043793813512389119286023209437423423457728119263020977242462571521455512136312018075929579904833208037200296868678252174264972166663397518446314764502255352589770461799031108166574504923254369700777073697489367544217459979623428580520705617890523124703837039797649764384682168723372904384017963379583695950673009447264062278511294806335914433968850871604562019198107319098007182472329045621546976102530752405460044900274779719195422942490619799022895708456170062453807274416566365284118814644880197209450669914345868699888773851511576078112680873101517034457371432276545366980929852884158067193951106804177188309649271879834666912282671462426739115360174100205783101723967365456492908095448706411784494107951170532148068628268427490965518965632539364512093413657355020620999189721831478805693814631804137814315778294605326635274461263692528611615848807348185220921858700101129268771777865533615311723968369311986681035039877783525843509943735802756863093597176743082967005881541984185556616413127695325461080548084947459818516128563111347380962721348512248023315250437262477324589052828098884905347788270969003334824258449046215641020321668749171298405923340942247208980643199257388789433156531476076116437436373841979246687447572281373723578483030246329501989143148200650725784405786465046715930857191272369199242277175002517500766348343214501877687874278525675634766433561020510387197573343877866097979193188331116584073662925905834402278670044441700403369134376368941839903979619692669998906220969658819435722033690122759544246092063046130206094060706458939681968571661390418087480316942945924508829004988024661454483583333996430949463457338399576783518127802697868084392715854251443376311486722220208313159975142463090745404920475984266101192896418878780179614893807127600683915918120824716935647002388442141257331390292980307641968321724109735061594919377371550122890937291957656853033282936215859713914515439930915367334240182130982974237352134559035840337705234519517214602147403286134305028768895102431868821425565423073256167020244931342697834463284709005885262388282140539699799670061729971977307671381491287252379643761056173371972468350315148066561953823364992007474059314852353946778045421014700093429488398834699771714156542624982621911850086870559615888232435674385769268648508708145554433047278933774531953469809150072509669120857948598677507351881778763206116598054983560705025458159694893908192031317431472402437130361391631915285805838981267977147851239919858729005267109407829268372091952455235562331147830369448445480538060845322195098800054754805905120522793732476502628466517974280097073408225277483866003430818461164326629822992139815695957986536883751077260973503766170095729856540670963438984790219911615681758333382423472693318664012992079615740962417892785719208505107079354165832835719120063991063639453014948983789733272849475675480414280595114469687857107303405539921051446321066656172525222661805240734462802649702686825349861005872130783543230196556887043743953806920415232084566533637590885969531033544298849035419486211130315749319966494493573023299122271645858007025504088586176015762636800932168573818145631562011254703600173682600411899688660311972257520557305247390805844422945652789129335311002866301350283419808951200270413018020484136073884315698983992304705285115713175529755446527605952082002087634594740058680332724873652550477994025674003053054481226210140598517922939048212774685326308961402863192190387976660037992964491902515993649197852133898714092790389109014257781150723881472278376920191556951795104047121950755561409974843910457678500782939626984670350790689909034569543957073656202167354464604441585763459291541547247240552948730594909109326296832114748902071980700759655131225794586264195065172622355402902751062639560091598231330798827824918395349066795551458083637027189699981859408395383198913342433759892523774785879934814045640861976272817206072887925694943815173622066037942040138309971926157563782007099239295272199108114337025957994831689340128194032245104135595155205519180256602577095424782589902483919672339666921374022141767142856862855779873062847537396347901638278252231425662074453104347562959409320372321525889973760889535769225197439123331564474751162665632082769683282255782562716613245542121369292928423739722567517819097102060748386098873177242529401896515841764744745559647661209735080144023280284707108887583773675346307864424781234714629301208074806896487596323498867332983346675722996604587679522171048733725088292657471993606923251070160090540996420313492913496629442230790756613187241433244811664874906532249731832703810781252584353793538591316491037419097577334297537603173977378555038250107628041278864357860660764604455296632874899163599913189527159187037937414636609201124846483454669679665859749305986283848363535248092713751647556245598220102942306978702970969975176125329469677169439150258888644852741288025311529394329374705293877586970358505585928700012547596851299874061529041748574836321587492515170132386885817148798860451722390482201092824417791438601026723239293103130891729088190715501628869489669127237680655376643499410210978590027497287417360151102022795284754194758790309081399790671660922894711772913824266822117051072098635745070071885938839360044380645824857477853137391927900484563047946837858580356377338908572274397514054080268758705081003287803722813919402146238555939446703631610026052133646468627266204081002242585984275488750963241745979330946305266851605085285383279187447077612262118205356784354365293936931933005095425664457581213321712265935922665109977888922044645721972230224520266109508850330024612745818870912923633894242316949089675625704514238252912235268370582315113645457728535894192111233544098607055229976355025265372773118034437678760783167554090449921493093913894179572108110505382173483884017207495242449715588416496039072098430147577688644450801539416184991636166679813988612782336022442746439857436696755230723822040892655301283486194218366483724373934681809821424925060968234135350138570472026357051433200080574370234686052596000932489171159113548257882816646315468795764568950415641715699045974714446197245431055044781988771516788941627911668850487299482860512422957759162512136522942493309574515908953551859161207619136910319698591127594087693600491228814856760194677886577667145199208858975943209570886069993998450050945197613000474871708372999684741099615206281685906161140231928787003940087969877435469801901524082763363436374083788241808431980501570150747825018238185021078005014668792372277298144214053736902513296381211632837085688996005956081903398547588276175164970556830079374508810307728118629775848571907964589799175929956741020126709553912898982088541588654451392256121580851275187462857145713789228782770374266875283653943804092505916256043835793194266520531813407490917415581180201157968485950813057561094439495389452697517474176906937490972751461869946217944540850957528360032930792319573027595268926565348738915999527419294204831411003225098091138420443117176518084953049676380766801022545354976429657327781370392955486560126150129146872249678567207092332222023122605574025704699449705301430861519223594545237196610180313834267329655750761857662488747202625098849248952536644467037882153154692529855059880001999720295483141313095479717163416885660483488951600878630601808142814722109318474184525108370782228706034482863570234950560071771063470930003946142967539507168769489794606656915463531973953815640391693915664543584586234959511550063699639622489786844434037370591375973718501709163142860371017215177958236053262183238019026443955513962932915660128984988498400875127457864298634997183746592416170579456586250233104185401562965539782951058914022599035357645617456380503952318350546283799070321832691697840630975363766300360672673753819536816565401449493516518781359542230333142659046841334504449103030049143350103880133379112683880256000479812803973924048327476382107350776783785005988860492487575424357602742586751158989441254938802904407342128991605701612330616850498442066839530848451881382084106985212000211953399238865092083536022456156051300116062297237056724748836131069789416575795483122454807563285693441195818520740958820132692632851754355151353538348282908949406672984181791811834663470482083236575120874399977586349849360365645795123244229190446152040248806319281874015460963561524673527961789737039172716809254555676475817568449872405170773736805676839656842850774043228228472098985883745839066021106819839869989072041565270067565261484075184902408382358847912121707461543839054075679121485916511732598815575193146086876696331282824214627540025138966704583042830303445367194821151079110965369757647130688424198464406653358133699817095538338424995478248753008153048189191848576115139280932065450325314834389266335063362824291076235239669783132282959020831215821886658579624901515295536608546303989798378727905055537546336389373806475142497491504435395918865567799984812079890980772503096676694961099910779616709998842521356172355426191731789728737671232863791691666188152691369333889769320293865845472184755532326730952908431812396496528796313458224565155798847661519361043696549429728592835905032478671108563579543515770866571528324160572817216069107302672681136390994395872635998370249745306209563621667888134359069223244543759152018535351563917198202077420774465578336109563614300843295233771080206987267610408848741198070242080027154989411414780394031432353064648653980946252742674935842968056990814501349207398977061296792116950524211094776993626659913647702331461364315885980985501908684639972669993231249386666496588743836790347747475195668844491606897803927815264743779853291574906953448895661793212753907544804759007050562443737815055734266162712857253597979698524166852616076934929577461259599980331234554505098965434964727503699442593764044724734085900387940631582868628089345427894146743919493381829656004698442292036721406602604118863967504650619490118065380595608334165015331694791642378341959816386887427087447398226188729650852629110724040429845635491673182070918476073963033721129150404031393970106821418215434711273075504890834733047957803555589806838073873650714212473316097422441789025537500468141780662786810414458837038315949870820001573470080211369317187413880147167411191622543667563834764126023976795657767504071704602120219188923991149900963506099756031417004200466339012470206139699293068312236730534669771957177592609619818833698451730184116408864825376838170953555882630559952459669782661469215637755433176369523873767178213555106207109020945314443787995921429478028145836548838137504211377496657213604011512387877467882339863387265194770924006240639226013187047016713414362108510431646497554151754735649620875176533244763272304447813398228200567328340989069923566599550956857556418823046399863923225003855081486922331055861525527553332587819973962775307727445388550464258879527702204959009352863012846991993003369448540296075924720153533733733409937362391725961792286691028065663749795281120071625877833202622227776279526641288419302973944595666734099124220206945433367310837762298410383243128676608066008565419174174388140622751009325437549509660842354843450748893817546788139672784209556837961279096633775139839516274593456659936792958726559835295553070849909518159420725587426219697617387820993688162411483819151550579463666612441763642257982117799772370184555074371793139353619249252130071509100515304479639235563837967305895777157849828224818310232397491129444247146717216347419627310342110570698583522865027023928349550130410192089342196948283044476200873090176498472527297427024121628184484011575087595085133655486444151212674453284283864835801898040872495397351059016281401704903903044747251155230273153741765405941818269331085534766169684609119655234824126725321563871265235258521539468361046476240061849250947309570998652845164633476800693910902684256533507125517563555633714618466888748375378722172092329951879204034890818705165917521011735867020812213250458620095321272351546619340647642432823559117624166157973135906583517077749877274469455188996585132725353405850811254747528305660644327392661592263303416942128151694436675552070955608618265374318295301632348624410581297363162653711578020373093080601609445236156888389965356381295119037120887938705588756582729322039091177394619042862247510501923017113217253422919664304441235934692026676295721732255898175148880472887636775755877096841034262917389063344540635766276695947541670270048656735269356956132141334923412048261723382530618846084591769444783912844385005241399770761586059599594461591563326957945790696417208133927199266913486117899939921554585442823253555114929532095980439574165802682509109176168682066340568141224810001505983248114842806207727265502661057700038795228476413919303323121038285707081918647919659854778893088160304125183946999117851911487577842341484190417666802219219693600047914258899519549232325287864940566507008500770043675878585102350161936718048914102860139862268239009821394356171832974540915525203651330555967468674684808456799719801105318333903146091705028627317443600136566279601554014286160425728804248297021930575607683684441656101602503246830044083030102139983994430802053331969113581318753254375047877580464639296072299495224967223739559417586298428420212003312392653509700182141892033345505476244256973105365462691260103797420800895780880312842748928947470649915805603490443553120567864217036933476901345380257990896300714552390135359911433626269869409916360931060546253415085551969329486887447033903425852240103019253521428506216796933997700918342681348720961439259016797034815537033130887180886422689306193341011121738591826102191309239109254881951912157743698664661948040147624882923532542815010142016076078576758064296246180241692950604959259398710309131329429021655234082738798587587036860056835324575071223286292367593910706694930219395293932853009740580635385774905707998923656701481866909820791370379817806216220734430853039912812451019375649510199007622027224717986284526637179233183934558680027941665050669701079569669204025540922055019705405966113382455455886494724186785952720491409916297510950397949285705524464128167643871602245307064037247566522202524535535801011715020022670388370872170055892775477304353573449777310520645316787450528861295021658532132406016495181153596397042501410817008485840442312151748162374754687867388399845519955438841089990424541335828741829684095253250499628728050400977731334988569147711948777508338448424727190692101666594605157116472523985681621014249043134858731440494872418196189968140023428226499848884686139454970072381990691455718088395693724771352493787519349660276322575385783250040778983764247716653688363851607330402229102842662505253985800903808821937304068795730352723451702167786471132502351278776789378600239911706031132305543946128846233073092967279126429354149289900600406987428086633216238915367896749743717752579201305846814533864207403383073180706166505667622241555634196412854722348535282509230239701724103935731088461030586944566191711461574190766554735250736068923836035159737681569012718475379873076464674777120316040830660259377376411784218746120870415291561622781091367705405889096890742383667241351722660394267470638973689951778199993191524909174463530704281763163596516079246845240401181285227803979421378085999128682035993743430027394477337007862054241005770380249786093883928896784675900999593706562321683082906523988398599591657062399951303120851233400493534128270542127251138911214209543540251233213207888476866409286340903451706530721466807206438115836936661982185323029971012230730170536785239093663298712714351375599177634514665298858232621778105209463380548951732498785599364757244297814401339940541305133135652284038738484873326545853429928811003330890733886453944645184121307779500729585672895138352497173213238682317051021308095535585902729579299541973858237524491340465190802349205189064610879386392045252304044964190108228686793311922572659209794715930050153687465604505014830174408077062766038210915395141746477461240332373664931903687896104950250141381409682016496331379563040616952348021377357459602555588079978680605826901131127907969660599633192073145651078785580276392007470478697339357028544470585803287760581323346138224916182384144681455391315654199706845205770260318778574937194198958485985126615836708145349255522261145410228271205967064943867359024461679480899540613215636490128553068715740264159747793094686526554175734325647073354915812404562284753500645006202319886475859261436381322974859093811440018203865511557299058715815839467381417384027294867426865975731208669527830062209903140715090715308547264175057539107517054577357886200509719482018509980540807046515038790063128495580606766350725768650251624395684115405750108937132850454619280136411835777965749906144202780254587417720037797912329253392931594911798731380413571160854662024931373642864749949202348296898020961907205075972143780273399534584542726121987042510333798783479970338352988522213299160057776595934462763705349821285885668421470281135851910685428666723749522962424187982896947340876312573493860927347290447274056052593957949721835688452550099440507575126472992523524417444795184725577410634897849521299900073078175428755150367151096025263340184109113867978918521057615883647278679842273291215726820002579572612670567515988189413474119020517869902141960254042264650370363350958455753070695812911075508890990749282551009755759593023016070639800759139089229806749073485636419088184988041167188160686934594469409224457444367455064082662629912090781186783930661528029617830262170475311493492193329058759704912553536333798513662525601660963076916520768747581246828742778395237294814357181935489367447364179015616966628680689174342972338021081533065345780071341200198770931535692328257692220077473037278644049101152724903352581364449684682575313456314227928046961722706258086833413740114201772439969135091369538417121287195958339588432944653749676653183472119496883000938696126433269596678802291878036346277585517154699328901508946706500392853267560280619748749762133434258373337596083043321590082974889513823551388085958209004501779788492710977494043535578727212867936281947140557643887523746472564985228925073881248136115939469699161007737948913731055619209487275572193084635594690107664292064780880011993341372938864638205206713542989452450463514793294431321060965452236772932357951592329152936129705825559643987949356707788151538901331076192680804051957252873135616328570072077218365000607785545597161831572436944309458455665397841580818130753694108470620640892411543006384310262258590769945189410359746000735588381719197136212671754546142808650579684867804035504379116428720816918309763763611861920752296653573760861378167612017193770328827620852804713316718830864311548444678333014275731197850752469469614744363292795041723234607227523987998460236392857923240550778498218590414915035755273201446949227888299816481116502935408034592473558398789407607751880485528443272144052465624777981606078176842973877982394483109770275390464554264556940007189409004618656578506855469618940410081322792333391931053650597371849013101296068910861414611768418216680601979280840946786442313778525782093470310170579906746441435969946598919759521224775519849630344470172242395138137758927057951273241507722613315768337930737664838247765008539147612973821678958195891438272223650143344255670144928479217387561421857384498072494196267362999021623111561770008001380862284986450507104023992229414510563133388490490096252208244906587285206644500297601893867690066396253058543691260500995738779780429809448798815092176509980914361349280454845637632951574909010235870158565286214905604621933225535629019303023416635472712042349877142422823677591323129056303839110920244449797165228887734709856963315543540666979583062148424943096297358259142140544945703738763583512971139332057206114801365089818115593860405041122209724986323569924496429487977380188969606903626989036649335121129585606210171906124346108960527660649017463585106793833936330450717482560463343282437097937862729915874910047164209457303630387988886262112548030021438331364583280879518771104985850867873059362854251867578580671902238339784263022222542226666118117279206362527206387203623577620412334888615678835039699571555478308983176210692564180267926118560774643429136579885792705281275555409173041108280101542039544773756339669673248386734563742956167876709345902744580435732335044960966121364481989904142936994590831315067363716863642072108418164135817161611050876949044082084402906124354405925902051441785972315153186086897566407719874756180489481744272262149213536386273183404106084091542258989428183796801805524114334564038483525007703160149657482641354270882906795946208951712314857245819601187888576012646264549868722453560409132715072625448638292058129501434757495017848707579283913785259548612549175190676982903481114638811109424858634933097549380955063017730401167547708303759610238153958429469465179312289614450546872395230541819760006221447411913101004813115960217165696630160423126483877278798197065169647939298400245731482199790333206754829973584412592470032884321292145377604989966575514975481099147982973752930334232171207424402861867724307996390072078386418914860236336116310297264723684271375529458409041223119403182246927066846394608633542452962173896809211619370463754037356304983202899950258149292854939909547553928643904526540750555269580711861080089992734429119068039984717578165490017198945651343300843131774023718444177924630873286945113450461365138093339675224405295535686530074450053263692635394303145071972784389601276267694441687033376521053607682578933519699893280574274711846471916444622432335973420529578093382291309460224359162524028939125954989396926045062170251738257729701707140757273851376431170915644714875136365107665868625046513787265952389082936705709442723485735399273196931191669040299271963220134168034104461947101659275487684569669541839546120411243816787837142525133931658469400202530058288893366690799093017967288195638806384257821815802434615781062551692070318462626382612374164763290232088153051420693358147687338472451539599937294215079746671768552963597325541044720752129080174552235852277841749018719814146449559067344028053399370494848276443377450007246031370632007366933909720665577066882957790045949991399073250618484192590499709201179938456460945199009760912544135627278375735044378290690932320616876065024730341384544386997227821827840992372182413982911526831361967316452285179507513941519028804018312248295627546518835865037855008732968408558003171684763546121206201760788522164830145237343369151162446210067204372815687591485884192362691380279526162341632915450244957513106278112082681239281821606572084983206984924898960878693031345923913061850948234097369888131892660055344738837350086322749791874574014089506925028542283870251661637486679108216791465949925232094484288443647756422893850383084544659053130681262225503918202599694177028221491140120822906988097333909041486998869825561974471300818088781900831195653738819194025343681975965589484179291912628826648045281000196553871632224102805513424186270957638775636053734712058912773030026265656617910329264843644423825109809643950404634865058002804446762535524298079594389635214999291606989814406838265020742899338216435031876825633160911959323365919919229009220880096212426820689670550341487754383711271897846275854279730411703972245523726067545801560707507707001662710772099103247230885601535803101311907399301279058825569833597592326526087761142894808197112988183251043201358922112683901951798627624659572646086591949497259188541889591529998303004329809868916637994995680525156340971663800521794696011618699661828326475511599124837691570251735090705864299558249242334040709151314485249085095869430877491453652200457041138211570683980088073843943282946134150982790086049250799456814509076444458246758567051839210205662315935528216812539986970510457485877037592367536636527615197931320693555428033518803215534517839849428598010769535214867903296389760667196607035222369808721688860035185670313194000047600490437329384647812852681372357958706119756910880547095379032948742408283248419927125162128632846179534242061865329582138582349363565266993720669442937443304219948148877241967303491410906837983963484065419020279013777502169426952909488015188445083756643588509682570422174306403651147380489549598498543829855791005356038431947764831747805997847202746797308027711454886241493804605089505967296002543135153246731752479862876796090829847033540865602944795562599276599294587133171422241028061640777049535971839680783798178182917744250585447897479589587961587930682572624083849056815994101072119554475137664601343599135804804003446044768588343955767622603031861679844605578043327148645846667748939210690240005939327762349428417244321275622976062349957315501214542964197520878988926436340351045801153497354806278834701212463525981977919059130348380275817948877251556214887397321171346698206993366540101195567750039488606932244214706663582974456618960174037715861580011111539143121226095171696753025110036018658125384826883090212745774791126879384022221444275527782407949920374755461769551288779258312978437097800970597102771287056017299434780967676216397348710274365969574588628545173780190941499199229398598105531183371509951887284728464335321761352281842233848082315961488840353302585959990258149733266574058965542853521641396088383030249757902001116042351058208988046395326272140160886612206357893475160051936872186055443486716554970911761603916130588013332394522391629100390767939549706244092209165480424061008230588631633206897106471092109736059451371226677597466142861194021488821303887878642321566027976867052108962098174398500771366438591898550651205008873840657651615902453737627054230820660881562808091341020748868317381040960520241152537742053095986493603765450131441503447443552236344519401673120185708237008637728223862986257329849771018294626541302448758482624679796695780592286553697148468022061100656302735052901469562065089689452215747019252520090504286080098731263559710560974180575702250360289408054617363925711919486520990859217846401717389941794527210391964527063994670028383854329449755266225520131343578458299375611942392035931652073958084402632376704371591021915167133412121428424061297116559701533791486392004778329524508820299322763312880342712720802491451147896187636985846703670620488071925630557261738134000399225852539410499545016939544968390517595269440242963534337643384776503638005742083028779269857892297818141999649265991601586708592690932279321047449259497365361063343979001496045290217061015333928426341470035674242752145758677546604213675352242220843686771949306214438967291107662291753450991700269396948426172971140284235564265865682457817151122410657323520142541202405274038077547325200397395040868737924393395189445421806466329046095264102726380745288281811476900100310977980354167673719400785965930963836974960721888833622065343402633574325227227490465383483851022911574577044909111458765494991721055698953082927322201412324260827609972563168049801720686762169028973272058500274429841098366696307480986880753709148831225497613561663101518677271894925670872402616244983813327337599180478595128224483085715900831416735556719734370289221351229428095658359013027243105483964957127924643765889133571056440727353672541299268881687067845237743478684249015218809677009623505479283139563494668438105555294669467808776658526411957514280809216258262719066674579121359734534887890051625897341610785527190820617364066459766874767938348355923028638811214966263018912290136052109704042175589604236646556451884743356060930293070263249915538064647366763113833107361792257458548331928640578863201094367347244059066505639877438544835188452936730712805232754479741968749828814323532483406888011135181051453595477626656152279687676733406180892603511440041167651758016348333353943269349343928028388082339847618305171980741103591124150077999721559476142038133906737287503846096223714366626534887688638336508252358747398121713839374659403793603917058179787951256974111330821870510616784702823386490658051504001662568468680976917638772532345493526859598173544408990867487303341030002455981575804711740628578193724305790782310543573357083047497380809062017047714189282714687469088018201782320246483205096119715881472988868614974537725319884878617023229616356387393821464813981829077911352004945865333354220997914382435666506112617853662087507974005509401969322386080715851526163040128723274361462823124098158906190268568694631375387648417115317621857965113532057175318403224138422279941246672213814658596848053978989232195186207558597943113890437039064626389825380222133770896539151259827563500002155062561004724850037158259538738379566850071157773714515022562072532363763396146729140729446474807569345057858661417398034345859337064585986579703852463496195354681948123074371713049434796388445602502597537234928582888679626200257368281160235157196425341353403368743194652372660602188680914615293902181069630778105699927063320585822942154485949310262816685085213513454728529602566151086656853951488673628052998745652589906232633206511036363711302678293497019656346139824299175846136267405609384233396249703210219339141137813264011314778061697283419888670273194248775198231283987418737658257917541096013161037827759345298603089594311363352759634611062232541880658433404540692616800042177876507639774666956173110188283893315217868648282429755996474674355187255137071254116956511755728116467981944810873909494592310200116042782226915461743420560102028017546549923816237058133843956052464158157877110407870098819826039294569734820993551417492781458242192011100504600265775441240016109545170473389026626446343713343589733815547798262551717036250111717409719347642973138174523659354971759359281204308127197773588316105309192601568878575775069309875433511796995769088259718486900474667239553708103401307671194489769525588647453421578565568787825447338694502194454084130309185050601672041026209195860813648559513007975966652290804427578882151768905445680871739288621888420160788387179545453266041726182073070827602945074926743886931721025674435503670521712620413853901120889279123047242556776719678715028383644847336033264560554386199207098279913858341843055951461096478537057106250036290486421563775099243530379289373558608270067673196775117011726353430690289739454207127172493815577709843898332612078952682848830239961875433567889049685231346372122439736378518101947075544194758194248286466789484963084246048577136103329216474585723795205083421533048122765712593434708139611754158982496712335089085178329380710731025371052788899927557413484361565027871968935155315584740490782493285271455634086428257035789474434801735002337272967325415241399561915845509573582264603337587419339308604004977922231917684443309702687936178091530414645509002146264685728340044853381336243936856859986208234846290210354177747625951751948509165961646863242804990408217557221559900539797465937177774164798001894598333800712243242396756316198452277885593785247772699087952775485473429580575328747622019029577360993638443436516999270711439152520009615848935554802426216229069214236579356823284124965893244690123363097509473982571129213909793386716543493823281370535537704237373407665615304869016414868528232788947320924181145625355126257803310414526025072337525231077572800117776535265408606885690790228545299553443939900597031669165863967779821442580633313672525782402345839629762128383363806294584955636130975138461199020766202144034911299428197638489740698263578376651363018002942309180697018415946075461651146076397645191406045450648310524104338444400920134248210080688853229660230147335109505204892454413517041000786211648718296819617763961729087979857993518611876993696384847201684247271994922788176674864724564742456920116025266637323823227430937011232168812163884696676288044200643810582152787998178557280234598706162121970720248691602739941681155001852863706298447662398818491468988945730267277454782352426569811542261181005413443846039534700200963008272033690389690091170000582140407904543910625861385939276075734300166755135036234464727783947359691649306713607991975558882515066181718654336333419465468954597601075254560083985612893068658275180659123251642472013874743264334627507860692961063076320556543054579233844632475949868566202518165242516163941098693457431514555592023635622627048660520840471652281025801816538957614819367235422667879880323178972335995936955817215977162004743852670379984021442248807428938522138045726601146748670282486900427870330477424466024981956788511787807403750581002770514953902845848226279790290134678071021948228536405868180983581489104110299343204430374768631634714390634237367079140695063462036740646750653183445515575443901645445151674139000562090632345172727753444244125366561519045658451131906374660825421525698114607477647672507294132866037136557801566723577743354797519434580724959219380402347904524635741664722534791710781475921660156708224057957569374739935985120862089828670894454981813195138637071613541269225320440022385192900924535118225258391469793304257186249114332670068287933526529476589701027758990327321166044009981277803870245780203276422745990153627804297866819694856416542839242374926466534903850911574379200757744156650027033521774545223361650662241855020856973764412734247369156061307095074430763722128439426308430961282359176556358453492532033063914235952565331919370386421698412585190695569422776890520637498315651972988120174426275721490286576290839658528731636129183324544877988027875597160222387859137521094894177067570789547534138889288591771568816623355325458820119850203162804540739616276051111202508397319440896254084967181209211887640269010964831374020578487794573640016162345774574441985476237039550695887317159240729830313965690611971214931255119397180549919177847952960463052515370129876572863361207885211886094848125100341952940319549865529031691927253798662333444437180800338898517789744647153695792287786796313198403452728680507200915345542120620827938773359841871517411331165344791460939004407574470549542353543776497045335337902900967289603738977938019476073971077002709759165528531587291006917054457784879344801355173814062710541419086789170550665820954785934341662336666992139823754562003240407049390499122840040173224241429490067983579535858707479456601538574055002625936212750892491114933242841359318303184674619903823706901932910496632732229695931209048583441243723373886260142352695107928169814338935589660376095360607727334665330365222192048712277434778185819892782529381919969375915861272516575099754690396268860898962805404932959535844326738880915770911953322571464070194122052227051329217651327052835618265587353446250473813398040146599601709006390727383301512858939759451049976307504360330523808208544567451657942155888787229670154674155306329898770152755835048365838985695640021306917642561525489360844799568954250493254744349220569632768529328925274109273646031270026660415901205840837560633278384852001477564852520901301259344741817646037117481104014710950809049854365562467554990938695625615326935380436864152047092132739857092009368517319018292319151194819654363878339187299573062176675098635813905906193482380098784937944521814385533993298982369968189359466378725338528908819154130029429488039558413870477463216730746385571395748233078286569680207968590819831689199734349768367570324280213058909640097192488605995603168047748777888440134410538532885602927490044334745595906471395887788068668374728282836603301269760312020514497305111062495567626274830861448106332049512838087571839506074498789210711581720794476247436464649658260435225230419391746302651638703529901768258949494947441153280860879332092479849001354621987212466889149592069068201896641520445581663485444414038229425211425567681079827542793974556313234090055124252857821522105788936757254706517239060960264320161235827984234025569225646747921417897034765664688348313749806864100135125530301087493215661326292823567823881280586657820539022396660226679664740886324782694529826453486644938238282529138263660062870299844969822781441799381953712463683654350034320520049080601830998304196813360459353085509080590056123953484786884113213162763526864039805859086058180187756417273607858333342398821314791618841054320654195660296525663417158245426751805867229549451186898970423441688738373835360690423317009520591189424235229799474036128394466449970172599196555660217460041323615062794359623964209525772383590533303379624914400627659970897439160805414988690122094877402477760488994757218960498312615924518793351714970844291500523647401530379495470882381056027856750321717509691565495080907742230207785563618217653136968278521025364128884176467011031424406193560034493983805289687423076987335386528899011613081899790596181946695313315217544439551738056441627030067542560030899766297324306933915482518359353423152279180975827215156382456680814579370519855938095599874954078527197284840004155936236973817383104731933423678475253610994684538518875185583919874785485020413889802806277783060545123944705419907532228858628584320806784598607767654661858850469821442851226995763163994899518672682342425712150861055287651292915024034382119836915840136889953933813984478957897156431338239233653944321352613982760853737153586577984135002775991962420512834250564293565308424140075538733643043454651688856974471476110379231673950916134743979345091221978037666843760220562644825428738201054786078021187376015608126172936780255488779715774667477625774506013344887780867850673230985152040837423288700519754540356656188116356235272776572287003936039274191657729450598596116470219532812619454449977521094094325985042993248399675406954276957808876336992338738453890771891159495144642773856759786022450010946536722813357044996012352030705977157030188148213374138630491177543405955766898723559486618189407719153735808061321065058053101514540492801394599941295551169809996598555715098359599514193192043496874266534212665361586830631100718777477537643464437951914530937945273566657116400616909395009219623325652057867118073166307786665261807588309639421064351294494417037913544885227288185823696513618493400872112598474371155097599649160021491873585230767244023665393759126832786970050991035256432383312970224063699196084074570759445444013517226663866486379836408766725291810525595024103733632290552123914093957916791828345694604329101661632453926820719196112466116368965117125816772796051927869059835913289292179783159112110470131956243456712313827814201191204555997277898731777873627321368545758656035154121254165996433580743286581636831321681653977381098299616381955456531950766773006979067033275203378936106196071327654744324975605263901031398310731149706187019792558765943133814969353936486129591038152286295418907939597625564620807790922835190136233067986440432104617300400199229806258014110867243527245829923672033021359970884221012803218559778364901254969829297294802628536568800522941780451666614632934099521988698383358088464626252702901273545161224720982898883440504356177009871200199899035088818328116821121274927458681764792026726408656482491335233349354922520770314789961612514803612982511245000660117708916485975565020679295756344351544478595910800217688458030462760280747082765092370573556078648626443246697967033711068067579103044865107113357496227306574356157316472150711910339333479701337692209109594904655957171898000258142335363641595613454902772864303228918524033472154154147648679847311788610828457883528225224304386349488229199130272887836831038872057152442603833589241860775440981491075860637970084660190174551376775322064642680642539788243041374673118606999809737534310637362949153908528121547448236145820889552890835897618535908907804379607565147213908889235298364253661230721910950972867640675574643714236010918337246143632989114446322729217268108153756354309278266376603742421483605049200833060939057632580392498506341016606808427739869630933428914234294206401366827041129415828111691566278238500764789579681806329065502783628060868055621115044131505934945130572494032352924972222276278151228603041394344220377216428057431530037172352604045692004155967322306991713635608169573753759200183653615278878749015701163422559831664151412857035454177285175108315971884248122312199451036750952690088963360351673009864837729674577610043405946977158002332352986930812447672087270459174250729601164902224544570201583924529614799478618775873426012875814719583065846359280589453192810361119603837554542803261965723191387572773136835939073544988358801738800436104223388856398883031761118860408970698970657540311787422231405090701327466963566610562875399156627829353875821110705476713689924930471669286334402215852902545892199038533535790980953151926564624667527623398022736156104372324973736948604457089490419559417497713125019415081673080572219378147763166936634937399158953084042442737489312166132633596057914075082090616146370864119283141431467889622684702462127921776351361171574691997061680383890871525018963467609170591410552752773973462669267064673760371415230761552905350617677602572120349496728411279708414364596739376789634223157705295020865839051632763275066326851747740976579756639195914325438843164596700549123680613221347373755129347203804183450847741557515484508206514064040412357254966139418782447339547529295331557499014169551511319986856321069946881765631272940542197974716743368811105353073579679509825528585655547269083880306416259141290576825667308732712517074092028209383116132583224020166775172335996102381377152250028412761644897166239480166916906145803860941518206083660757008955066894389631085745754004649253133383690874654436552349103669017527149789738991548835899899823959096536636643345058998502372390313427992430914105980788870570413616304879650605327769496556222998912948183051228466766873072128412487754524197155418834242104428055746752187254815173956315588743096805493472748452955485696553932840090458621294134989357469853883745516907115385356392952762828402640138229012468795019858853366854366845027661824023390332088499601563267920036579086923834067266086879142769652250559421613057572942206529481765680076594470823387180903173192850932212462708192652612196418208635945631737574565533594648044928931612335914455147880545712422290851929112335060915454695646189303869923169804016404406777908150207475092349020059168589245844074591018727182472013340287377749515698639152682083637088693755083755109826292521905441939136303935880560370053402531446899394734143818043619572537477459554451211681739770009671403935748350596419514430164441056447249274070684562206085507070932092503998710064507156458974583597596325797862865351028947370080368304372939223247336743250801257533287356366284837048203166981556637272115949249003725837798051934250047443455360569190066753792438200377592205323689536918781659551064649083162646471369029936655331510537495489860315337944976516667721194003437281638416465911269187353595291562597271126571492661063312190444761996518105209962520214048944039898201892836036968081717422315922767519552039798726178731980907904886672914331580875726802135459534524688072201352644886461416044486011389213867080736011895868065801748201665601300280469542597676978456242712852710314806836465509643110190827941153733009360033578115369067935619461360935482760217415729195833859295478219644793542454903013191294212175336825560607285085503495879581430679573162554923394066656267487010263365210703228054044761537825814816079234210710414103238616063508107787122663934843158554578657986921899549287954449004723348590300082135278735133573612028845094448106391423806810422587991865190123619251734216831110033393742729090360002535053503028747525073411565700311203097042616520222759684316457732330491240633257486965987771391123004388239890753401890878678111755318006491513246490067279580549986625690872115454099753869716160684456942303436733598772047188060074303677199978878297504041919513052863919877236890964518979477256620088838273635778728657053085354071454249441441057485513557035745987657757752281690100458845345216699333640021266005340759283444759578791028317260828080869463820995240471619891660019346960738653462351351693468447499169171888022049060037883642627859710524652868622211088805735779542249236029895739958364792351377651439467949614286258837015936143616764922920594948631047664844339861481569962819887580167199010867228372252360494054263119091678349911374213949022340023440391635064300299357898663616545045418628116251663669169842648298516274100956646165433141091785508678451188747274952524474282451571702731446896692104120428837996341844576506778749857579164278104898367645289788108146697266866622184914598897093854863086440567203117308550280647591213765490849287436850911654582785833028702750165621284948849279089811208530185513829293484225529485625429717240247105354016533664153145384873049788118558589221318731013241477555209937329686667107540802818575072190116158115375883348856496240162431900774385652405316598344446689773539190489738408215021620151002332481615566446323551759815792467090056532660088063309516202867780684298008378096881453674040298174237681492509021380053364545945365882960072509343814599336425515096521476899852840772960934237138592087480594359744319316288100493585183177878616625805505209657699023635621522697238042632249940876165247835569427403599721323599999646253125416939356671014628920575259168493517587577809241628271525110856601640836496993165826531705834806021609151673723752286793380735614964662205932757912309816485485195308116673335343938107975741675787659968978887892483458297962439975482489154423839997278369623379545753944095638160133053345003599053484090994710276943962210790633590638739149101608889087792756263175502845670600860348703624088839496686126886101047971881792751150749282013130783670295828799825780018463251041526990304864910748885211989805164146193408907579750619662467582157010257086876023997690249031705246130471478747239532099956404486045024480674543427662884093940478120320118719280452586280303660058580989604364703254789976512056308087120610002970063519897748007476049735894012261863668615101383265263827340286995817567971917804842668476878046539318027332668695576407093693146727217365160532965500530722819027838551376268617748728002854331993417064409041174353171083706662666663818885819694997771541692946809221718878545604064350486094422324970985619823352566715933989928580047143570527585010307621154207782009057743095895941449203505303982912247049926062931540164259998873465707011458156150795816668826688491965634985063060050714841399104247849087770727726178562432007949177418775325080088941192844063878207177998982169203776414841587336527756030785752983983777937728919439680840091344850869776142042059375213473263568593503283515662333875381231924239825632195526271544324956527812628810556697873301984916301976386837632058344893060897481992453270943955313431243448991974272637841256183234792920891452339717618528635683898220507807693238372037399262164079490785618135162424927784762351323448416092528395611481285946056665925575109839211802263455686472216014384593131100742800370127962210514754492306202789899607706957821980110837829657138372084678019310810291674122252265135892959932618722839447516039632083823762494396015208919024897194963175002801821368723217977831229335271602729438099606730434446913534055003743839070658089541813638344896830517628445963191558673328728528787516827124025316713168690463695746717412177605121653113446934992876064639863435284850273129016421775340011129457766500801370742384626110534974209785784972365702936325594886874255855267514611147393182040726011259962194123606212744606618508843401663431278986948147740139279712888073627792448719396281080586324284214868338816985983293682990750911195479140859327950453603536743189069164649918762010633281220521327249474878024181604310318274091850264194377769087251867515399389965541694867040784909503180003348177350769145999133437436638033584919834235948099166394564722251722000693846199178758809907074212145000020777335054767311354711180749013035656758824296382922547926434968080347567744845176425379988839276115670502083241882346297442670219700011977721840173552315546275973017401724511911379688794560740611528251646046915326151944131665368763522081110895114694423280600659144809433860106741970300111841472135369828454011744808148545316612905974936044205276079034698783309572610850247619794751984716580381263739846700873850353851702630025388874594296765419509341677124640826915850174662249431933452311237359060329468072392172001991211624503627569969618858539513408666291126747173470493055060133446785525485758187591033124209683058608412198150345350760367530229885031464620708319687291255368539462121749459988864871299788692476744158619154915702925711696343972437811326133199440892205618737440907047589282940211810278162151069519514441505427476669648538525442838305838752660543799999053666674072271628855547979622153830807942402485506683369787868703963686494362545645274040450410574704114448673407420306674617682244502487784806085277394894591139997955898452262401464776877331847638560014452652213205873217024889093778755938316252952855601839112650369044501122280299855116380060260554708222099831353579004045326468663840104955251674481039264438662564123952410061717339042003727841790812964595895772671383571923942785591381028706531435612198880160570904855473401482707451089022289987380571128324917149879958968988142322495340346688006207610775058946990017932099673895907790264521339965870606326925442652882203318085157743461866390692640601844555778650048657168960264196719339543159822475567372104142027261984157929798000524262766008972777501100706615772893001043474511786826081385442257081054214519404327311892366349596548475714530898828916233188946989483865727094004316635624194816581080283253463206022886625736088016004268579801079237521388098636301153512325299686891071639317021794735126046301455605605242295701192821304181585098678601922532460415390919444461892239778739254469073547129240073457914010244201394571367397858322018834775604274952921869077316392302648311766533237418352204169530200114640235502692434843210419029431916781062205018864669342857034781059165887743386173388440547099483130876376004499243834679743850790984324900918858516352708361487214064259232530417888777622612078481581053268845652494355498917132298901595299501844741521132672934743782220660296180212017115229809487924509125617586805257351594151843380493682639714389134437732444043354246815017173725304552642086754863966295862883521061403874807840212746591423453238466151070225849516530302903103955220369811354466832213120105475730793482261661511522599564579979010603391244749272632662209833722821772181373231521897955414966272947325774260697712766934197195164225309315604742241271995398042909692262863220138149091483371803903029814562711698671726091714698278065096282834035468972044094154861435008374338744072956387211051770969770834783221892501654427465782822925741028135715739562848979831742916071918522431747095065325045633064017339875125678145348158430150676001375330720426309382994289137823264487061112633323109042609569094287210460142571720529242755581823172087540789673398586368077530844985607871191026570532037132373065308221820830935967651799785288709892497585528945850871399070296310783980752846496462919877689401972623113710608844891864855655465125209718874466018053598423171222624027149277614376313109640655146725608977167734899043647411740859157071565402682533472433045257177332314459696035743524042185660404328323259506281824086477481811672689916699203420560075332057897069977161927645806734025133546821819566045658004695423131004022815535505183070107194423460354482328913927624259478407964461395486730303998489700853875327711653618196485908964958809111762843435103166921668728263615011176633347173960425533441401441975397902118360699644985638079489753308806450257428449360604656615811478428491001121360999184025468648609354441419541448799904278964790960140197168272908778338295998400687021869876379150864041286757571309368144476049944455077748127893048395751037927834556625334777505962337412234634969137929770941572616016162451209874446622293841146421001848945801662817763030364118286841930967873267644329166593988791838372200606825418159722024103970749543795038902393980484582675223076998377437607278225732102909546424058449326491479027637977639987074767960227176565589551149150782469030823986744002046721024660406280528586726174998119634770658685901061740663238859401554251781452585476278919414162449691132917553316208326351871247798607697900031370003884332100843354074852186622808508714754153708178316861772934309009009352904985812256004891340397674697744655144525971827697312339023386581784418704253650642308276730069340884457394969837223770498554572144554475175238731168107344813409410388074848699075535025530148225489672637593477071800250840342832711829516028703017476785258944554298179694487421354315991019303420738612586511664195814446285443799611130706285125522466478729574624526144492823712749379512637956532497852120874167241014480281929545168876574335495711443265678260463904617211143963547154834358503103591973429968096783888264930449037086957222527841280650552170069514362484472398142773853526195442408109801819709310075969069181393577228148977796636261230350596389828867676321107701894568783363999305380334727234197115029857789395223535985008859470630643413800303826135465375880962859214289773760458849989525094234414644608323139890045210872693576787530970057302769775913408172218926329717922758185833746258565735694059533343418116829827050080635894220790358628280123318785853672238962391570206955460148032242353036157726845356399165146495767635197145433666609708464001009593932643699202732067599346180070796103840906042362127791246298945164595926491818297212438961617351340633578261449383455179265904277195910250192847907595310097934998291354769480395110949201024729547333421530165746983259056881045872309830378177666098235783248432320567966650791388947090361679243060559888971489630786810692198238536660993873706273351106187113271753768729203718814487295888396277129110804835726050198878969323808291590062543784749646955168688455211576307189418016979864287497488793225200496450764492634912374911566082792487593547138661903435596294903614791134198826320256329980675126407502257118867722075299587595145258106563502589784990766372260170250400022789922534501085209308798938021890157929642290555157868579386685146760493138861005693595259766078941262318216305506444856442974112615027257322808192687459455551543132026522546607137526805993739779148926396384451808803283859909340315648334620440402903099139036262354296713867399329512991081451131587888447506542213875610932334909797606028037250401745272579519748863647055384659381510818034658314574630916812780037051208973073818763032808617798486952199783299226133591682504219295191831584664356923294058058525645169271418218921668436235068365518368164251076335845389257615342621898264956997090078815125083197639688535296893947595612819343242918806803378248393948158971115356226048395290157698403517868816470401451211313861602132863591877689273452020523060565480325951476629253423702930401866166893537394305442892202472321288158471260253124797005637506819272110814253566089960555483544135198391146768144006410080494972581820136885805334924801774873119605866849744618337947335469550563048063662934475109705562307958627296890606440298260476356838658958912126653411564991495049850219259753152085340843648772057606351088961362223801256155479989652568774805982695991490753021202277338092763709581518010713797705262936464353814902272485019425745607130367373311325879737868242001078663349364275610849899394345126927493036123595944064617509377813912463250795842338680232739053823408567230767536490176445196148647826080404068040052843371780056288000173503842018252816771859039846478017328218184845570770745573333454736688079321299161529179322975167498074094720801730328838691668673988146397808827836444883962425040359283467321117936396302687691969363906334157703071027435964063723643822531656412897125978729204735602030042653768670732206726719491861642188342496472823184854570732986643119107574157427309900561460087035366190266298792606819444858970898034412412973238652403330994219062989146653972914228718865743721122514033466156843002230849710889845620655229804619070297024968226341751634545623529441285052910187888472052873220876838709923512746126856058340354651636281312626473622203187548011727639059626043589215491496931676155041603062377986774274568557656580251833879001261245456341174352665947592447557799810540094436433163964903651640609522242619355846782130533661087446612402683321011668346004167990958219808493669589899001808653477406641518213288787628800960958528982900160771631123135835582922711378115728343992240769423602079748695872209673772699769651757867868201194442587809601233622082550598379798257220935426741819531132342159388146860642588388409137415820106622852536060364720249643772740995361979427086191519721856280075722563301293730844092648966602934711752867164067433364998512939762748367205642639843786252446495770834994023272226044133523492915103002273406494126050070803058254680454133809339213391284021256997072676587629042004073232262032819603144411666018778692616525119240609522426274122421079899203246093794958744630789378519104275698818432523426320159422588698298774389182867202377673082409987851518612027254896032899561153000071063786971109608098601256102337313252722330651495729835163826007443050048418400519513169998543447031329877109018054471867783337110995011610259804349468600968904883540843434672126398163528220672222149120115619806736374332133617169725570320538569606465513266714504141416974620136496744287722367230856705918623463582046583046554540328136922213550190624015386330436472173097584902703876209454965977625435568570211854776223534443614803502991388543097334224124866700866916671147351458976976170569067210154522527069775016052530289847203705203308069509119669067914499229187624937798200840022959046156017402574886230023110440414796857600879169318666739776035071137759393904709612942750728376382737138935497401539753513574306976687929581385713212438516416307891285392009298410695034719679745319856082834057885114329743179918262809604336718823715227834181857812678661702970606256987880263716319974898214668603619720303504162259077104259474460141320341445538613138032771397910339515620862764352699829687516960803230533795112499811666459504227186204229653913244713434548511111432720460459838172670024476697484870028526456491623114834063479933718163876804755442825751444868237558872889235454240511970764251840153811998762773060977228429979295087871964175191324488011151886770188613890890888403162122716200805680024286847830664966624439687376153965361870472903117322070042987072314927715045834896523585643110982260740724633521078477009275046856959481169555459918005723173913092629582730201832569336505509642360473628998225163123054348769007122037448906575959343639817111678638246578369562236789907359621310354941555784728031767242627657725095016183786566028700253027443985983702029947331070431379316127400048517685668893867332589408873118678464527891350939021668825977039849980931770564201551005288648991534366590800018505038125461530119835099128843033029647134303322167602589035759914849561664330645886372093098245766759706403089838387265455341497009418777503063145179747042703594370330377510837187903582283478172586316370428735471244418924263371278232199126941477221334017567412714247828010678714914026201495462589076255100759883678750697895222600192000487198049474184733229343763273036400074802935777035353209982023679652712242769130753851013997225994177154466492080467731586810870373601652271346071311572512541506511047089348296720881026080553784364330414893492353719852737257498271924998305704065768971743077601660095957053631421643787173261501980781604885948090829738425756273372039626684568326768259345685843621019482177380973178473521876177198949217862158720629596409774492081971533626796280871115806368434309174568581856270039084431133205854500620200285508356489299294413782888569652988897747496552544600532720970279727815334292225519546301785056102946716564536943052105192684436937313126151525018671750234407466792319418435666619531375814272462939382913698090953837414518717517239589447676108898443026250831473660927710065138782844871991152078944242287757248395421331033469592682232422099296907903309216875188868092862857061619624354315456343997210472505862357155025199476579681950252697770975630917439346510687460729635657099762242563765831659059423442421116471616802706784590963699580625428324968869402462693178663119553749469766481704233782238897349846187282971791498544191802447648650061327031453579426396873497560355181373746796716140024814539746341096036705540297904337991514776051019157354364961883879762354481856455029967454083811049678539986652074041928418095596671752103983462268575101963748543165907989500566525714913343282858679387093270988490341244268636956621406602918301072918930009311146959846503229548188319100101850210517090124220410830912228855895857455470543502601867726039419941566838904676311500810059499294489174292533488387988116611733823670094332892735447973164321959075823806784396365479656327871042195280008602269549421749268429197146569814983037073526621747956395926036614008781134763658398356901386617571814301458603661645354320092076582019941345743810040939230008639460560909953123825260003456357930824797533298444890917534048054312965715437869364893302639055278654246522599155323368902501714233081608411606816405688726334661885522700473004002475977011456375011323744023743243014039887659991530201404163495756572153592008659507208346323585398659334194477156756039639170389348153601903905403003971306350787259449634017300386105690582025200259777348967182716167381842164699579268257319912737273457782514843118497781056279253921151985608721429683723050362326277602955734467124748876259448643108844633278533444908437551142602752043838427523011776284803988637676954312889141588871241169086029838913189133888919826077393498870892076255968212001027230727035511789942675402042203312821821704432555131046422178094612908897586937878728771892254036997347363939817288884535424891294795022840908737871505533899148318819568766043631227598663631405344413771355387508512308319636515658625450602097907999569734532191460185027834788806474566814932945826480918921286043666166546281188798938579336168021790506815527789396576308247401192359350185363719790834162223161120748666589802053188943768559583600465528769306622166374403039471609660704798923775366565533818495762899937288256875155475175394906835020184570904997605129013924839528192831119090647022310637463898820655116397601021085689177824115165959595386355550330884916702167681401039767212065757301311270926671471982159921680780617332936606345643436580626084085889018266415812344307202086223246985669447359442880982781260032800748681073008098473531543809971005535646767451056650091765974057341100309002892437413584521872928828575338397617084866824008079788878654739737818724663237908199402036492486031910004029266019632600227972135480614596716648861769217347172336192795310109900448782582534624028913068836915175829534206930281437257757649315162500690114478081013632721706032836419389811474006675423130087648571193564708706143055477574912071978729068388238405110256645572947940508971670103874066442268590586231030324616745556124731908419817838945645810559149771289810570080698538700258071345916079087963019821841427488052312932934094145439797780459553449138146348948953472386743026172193876122304969301187048236533574983031724537248210516007485573040808312035069046438727826229694445059778550721123678218093128329938288035796237348930372146595356614058773133095364199575505780481435982892281760454637843347736269750800534446456499715220510741125978047183918520123555977227689490481088813860071413612721515528652838472250912454725850882562334286577411909647909760365921690643087995878573007403747918676644081430647329471395685307097491080829974010883105678344382907020494655510205413867575621206657513399079759843734050770043752735928772295779793147357425895011853234545869355142904004391958536709413205731004480534151176931842342077633129621672249315842087430981882371689660419608392627849597715598940426081469069139067867064119837302037479014428482335367856548028610283849299624208265712924051234278122566505530306311144013016453349672201691006300959237199963032329069101696261400566947015955074686088203401297894439329950567913361615979215117405114225389439123574723103440059394177914166792999378973337707778379274173490837108789253905819176090416340559027522945668685540922891171809243590608628429032228845183851361062615022379920898543546230346747983678847307540213391237040380442277216527816910841773051746401263920570871565948294227629366064371620717905310352772458530080442756128293627186216977255583060796185781787069066496966360798359548174503218386990770825760839230830689902948249627780473571527410257449242563375607319603167527004369393695866023615228637436826502996144958582374101194407081432549891046422420462725317920262500354155550029956953502017367060690224340317256031970136053570202837743307683235977886868298186030347489647602227515473704878693678545177869982123292496595007227144334692570972482078998549030228132225209544252713446107908419489324269121115639644918746967879958705496412556129165535044817609621875749630561553849552259858888480909539671955306538159941434377988348000928114801545960220425577592012825084840042814007078049849014937815900646658565129359735686250884297351664621788566908695737462902097516399408955336035448199275807608587153153027368181183845322672194739214935677605092128926828381408135074077752897242227530823463340828343586778865239161828186563782148976958768609575712091593383184261988709805305327159882078708145144635612009303325656098519804051130560837702551213976882910798669286506837029128897133969178370913056401003542521580641117725393087169615512493075653009637955545331878987996004134171381565536338195574636840705355668341135768892098367764618490655488303247105399047726717221708704239412392920749563210111143614773504541092001653297857326502450943116691510671808861412929734297792908366765503206649168500997487813725241912931309001295090330968108390575230131163588992148208939851787405277156206318269504760818108426578240743013249984597542348413351399642513172463157510731536013575235233145997860189164421259908239053531119870562859710709439310811181222873402251363466413158242375869247134366321087173293137355153199629537398964483431792263789330367031345250862510905949381837192858119736860486425048436763513184948788654166873517866020181068692421655254591970937629414842346808871696152442892770096823136689347824153826544663621970724278813413939326038232822330790743329151957875819272532135470776742044031369382980646842630687647932384767051044489197607998768061429529709162264495423363924005302460386792930825086525560027131303469518346710074433256917786010950990401899735244310285981277108436171164635025711279060354303079886225890764054873329147681443099415733952264917574445763995593674979569205571503275543227960838305480046501148744394357167844779980905224096061054476040545775004632850483330723516764406855519629393572403444120125018840079638970380338050874097470534262459152799772772607167391496613721723581704046762549200182638684772581283682527455679984824288914239526591542181963117028409013093380080645000968652234846726507765601548357732020447882823517333705798121222539143841131201395136786253796390383036638202312737558506315386225906993583792382798141316440650363155032132514183418914448885857454312174516368642675864448854123426508414848782357126368546602653055778550394364327204276082148867242870797743265019124752676774819920888522608807955630986237584680836730881381948560494056217081196159391373651683055828491451528757093199754187754480072067855019392889897617774505325419820778709897266344182410691762793557630814954315925740100603495938345611172510419557768548810143315324786130511526989298006985386470764486916226288933103899625222649687088509563835035700039071382775207278635025306710447081201136704027936123671768152726870897988145087283071059817430897209798958602552510723472223632025701156582274297173496618618544576453390274964519734512717901966567234423643833437416803801712833720803125496262954457374154744199699689331543301119789554409393626270715894109458114924019176752888459515046647859363602669699794031069879001449032767541523870583540710566266475629435242020878048657194481550973799301094122879345066110386831030679599795467421696542410707648970015885638587633555460620417313408271354427124792389393032587802493070861572443444785787767175839663926956991096325816278401025217014264700661472954380100517897849020855651012238309871906158905377206395435961599678597402919966898953406526567596743097066698681534460275968715889426811510651395900689607795158015925296219237568636785145884293422271168630589008179876683245103785491397650045872646224425690308474861040446918507804716544834756001304744213544608927680681274537807790988113276760791685539830720744591089988996224420262855185365695005505670371444789867590112010300432209678486317444127931464257475966915493866913583644312886498393765256534465637997735282034875679081650481103139992564986552197035405883273933244955824998609869944797831960011351726944116434576482386902689817184524818214597474842938791312621606483410556546848672608208903292868004258377112923376191044245999014912495822634042589353722488473980318293535427015451415389608463577570235138496460850628599172068983496517678850854582542107000916475151679434041122686705025584551928230112015635924914485599917239863529785880529204989968360296101696418704478629732843379235658338567576157274093802305294826083974909583548079202960916867104901388601404224075858814873656939030208433746658995199223669715970066176352475414194860591193504522409814228746048524579105436361561462400804455362691266029271726119557928006772219772775279649999658990514868338344965109803464888327444426382201982531939847802882320908702735947018772590338053244378115885782787155936307414978278299893783699892795321473252200810392177397379741421789140816099382984588030225543921691620975258370611110691528036934922083392063601787856689228518336827762110498324607006464465166137990149315764757219841917220888061608992780102445118034462090827642598528018946682124663080992082415236491659468648480097386569062887784579093030994330169368816620104066162337244186238495872190400317596721232220993039645151903767873187810868631377230917756588460768328889462140119087599425765799171815123706205956459789776597282637545029275894847168666466499250183843214926644197912275994359596193480588385328072406541541533542769715657054445640618223518551209698498373351264910348178612145750428275246565947428051376199244495657301181108688002578355539123449371810392869957395975500759300641225444193940902392682311460030546549607938044590767944677705317745172555424456879418155609733011622594426357814414625675399569760767575255826502108088004429332621380713980441561549588524772604849387446638673385858296945624150703860769642500752086035675235368950085408317271075427150714485330899932451703141115384015479324958697837114865554903831419163793033626037457980060388108596144690537535994149919313137329008640301692969118750716621633939271969332584623232418541257031700701297822402882592022235954188719192329922422813082703170049253098464901587451563881557989167274525179316574384007640543549329202380901366725557290396556462893554927192470716215705629184801265053665708988950008566553356678155827593079439549824249141788886098167898105983005769324254799361771797827312584984435230954164208002999134982714542841139106533001554395275032144345144623772840208560619017660142671759977341933016923065878146911400073235908693452921000114809871110146010896358569636870227500437832559195221653480833491967412109458641289833515035030241961247989449721207107285472601629735108931799582482496114386151328037668949391063629786209039793112381390513499775710049791090764651311473679730147532782840112669095525083245741579718239546718559741986079374170185754333390176887057195572224210666307670963455958263762453325744095084138497441546134899193040984702845420693521518276681090767562158065561380674028935257724672116271253817274472366988162475574630950864832473714404107549169011680000984068087284232750112397341134539280404348660067008067517037687246529336729929464888958433617509927356271739002379448975217775940314724604218908580192058153251582791337337296355844562372497046319850216024869026338351231411176637746349399509923999976033401949225875036165319244701469708176671030510005410778990362515921586153033386030353552795000351970186866287747097552856870049490905244318715858606637946206213028564472263749027112602297431864485560534009862082669070640218926717418812606393548314391428693747760139708124960775766782780988821450686974634514557712559735220259024361160288413425262473926442325295118383649368680293807804154473086405131377859086305568431643729175405515356917774813070541852348423564297621301014134280042245242860364418484661886371864372802689999995165503634071365554786139490876626812540487029416172215141479617358179093348280249268341125941882195784392759120540018144160650534113596413310377964597316728087617055428852183061162894258172297234065028949064145760029030523036938905339936343189641561001267509692576619764160452169253306430344534684061727734945688795049446316170643907510727118664360492260090791942489935768674937072172030561780499020610198604235037322398927435089467591287628432227928951289688062442309605838020716366767064279907714091200746091535518758350608036421591871651402591702985838498999039448949058563956728102573858960296857523867012968683957915684417216674191602971172884924735562837625057797456845543324395344343663216386907203773008685496130986461104276878226643896894904037463915712379284524332612539254822896881249445796991070750563695723337800963966644839106127149365432382596715204338480764237866280218146705348729883312820100908884798947799073209208553701150880885163217929360681843715668137660544498873959704115671082481174003947900380118188460532386436890016974681158625062649361715993556004923300463635782542276813917067000914376163247840631653382694853828237632132570357979819735759206311298919917175690675951394583720399199373299348570862786562343113293914818781125290507799616742289327004903308544814521431938877125340487266994568003277662213731193616347119074691680821709331890151011351994770458675786919108916949585375577059498096251843725021259611889245620148004633036037660482593562984918151631645326390001687129760053766415774639171996709197920895732690956086518886714828244942536693064191737558628654269293163921828920754920069475923009449294037472349550540410147813227032123110810640939199907651855849522782536030522996943464009633302547394843589789855333717937985875064441658987383505034368527959791342116630177316301545889923806072755036767729069405668171507206149584564030432883567312299744760805050375438454451232656124171776873376600272571815696843243979165056315487319953626034882589149695314301903219791327653558495231573807363602008065710029370220281646198533098675223749702960688241757457693885404325165731549677568952770315490283707741244227268581826620033287416619661393293785601763611849140814134438631150527011269002514458532335388509397168298214288761855597921748285220770279876066493646112797333714383428937911177406582033063604210221546639126430783796294044936629621986407424969964864770429054525240572596519494751917991440970902985356948692216907381051428245264440906714579696289258539652474501658055302045256040612983809891706089512132200774936609753434590983966254649219994910350979312686527012140930417262981335240522841462263473607830864739266718623350144183468519329165352833093338556638820388350741136706415386000951131562431781237735242164142146194928394425282666245974011476041337962400312971211015145100483635516597832776236033467575551344908275333541477363451637667654831469875373825711945788689570803664536048815664577207093269976854895023645684112778365554415390881950433279825800199555449675980984640354236004176010715233469999517823671647346648282655507563921362861724993356404388648197826863666501004884303601763016565781619808062047390144071391374625113251027133752283363548833810867462795176526822718847645464956046788189157779893147296647267469250570011774427699484117586478635007100654491279838228211619843390042338526854423416333187634545224089364611208886649730329141060806967965542454681181875325396417134266847596809060496418101784046191568312734199522170861514449116279363255272186601322580098991828609612515895887632043640101590648626503438601417787307386727648336052538085927063839231418725388207314135064704227834970563499807831351773558011915495157459022758831003270251157866866885357577515729189971440304290980788640382451580267045102066738114400199475268322574759927941498190049044286920050469762487460072645538016168685064327479703097806599059438345835149185589899303136636826419317919790302592479601710210227773005786425464979619069181340870196213363609161984579050822642055528390522316915446576259268090068876901876543916784757262418288218972758801734210845136684782258796507887659995893616228838712120749203575031658575445623843549923981359576541528810712806197891905978066968619438974091859462669164997574290680643027851249722114939108934861830521247701531518792752163036833770740972595403754482623355783370416366016882784126245517538625132919977091161734839768186707110413433935213693945475091899604262251752835987274157992556395758159572224114151130261047762325846761419695473905545318752069973199885516073147463968611698713474322307843113847263814806871379450078762826590662933670488783449133523687648685443718816149904538045214317202628057791577435908824071792949426925485168258102814735058903655613360183383421361165080421786064063484910305623630183152882385571130499425413214124099186163825559164205594839991979338830053501860144179798061224451396394239351214590253017680327048031961713410785309614389249151404297916647922734928523797873272557036794302086014719489818421663267572019097334814709097798170341519780538016548632652363572013614330234540067456987948108810013981268137081453435057787657379280209408538214337974336832777253650784878178332889325913983484992900065036274368571484108489008240199526589116549796322728154832715948956932474894308603065896589770454517851185077816669935835570439162291367749685820504299769304678450984712599331130279744814932567421659591156902039604762095150683733733910785107575746082914212380989648808848872680113446415111955298695491908512222804522582532661174630904017795738365074219863991188414975437592959071610188407449772450056289961969299072199617709372597482716483522514846364492297237521759948551359625307102046039053142596050584238181294287174508791245851854658020984595882349753705506721760233080587934746577619952370719621869085218239487436071443579652332496313591230450454243241941288312583881029302627243616362275355075940790711964364448912562360622816521150949172013831194452596905036872035432308729797004406710969322477811510559992340193800679329005595898036402879082016062811753203206056619581455268108669700324550652630260627956515128788394021600692356889352116240803894783921595619801241973220706549061195036148865143549378170754950110084083189400898510229112105186926044399144167392394996892174833591428883901301500757943659084432261952515499682981150008049119738230625981074859492084997408708101605191154669543117109118503252449307435633737081489195935986545857013804948292903686677204064515297746244086648994853191905750600716412152636990787176579746036975923132103718411071340932492067495976729848593295932957076332475156286149707590650640744795252847908968796224619323098092563631711789112485103621019195762500533930301738158602832281206266006206381850210056572669551109852903528440894792618575079976246213882184691310729853087780442971141422193578786991561491903004209479524812943502094283290022131198976186111932908437509931503355868280885956831590603327948078650292894486191163319127938478172351722808696823586534887928299427922970208189081857943291474889850029016759235514507607103746603361986401005198084800158397755986424811870489069671114464746109805409201620038088456645458380959227656963617550594514328584552868022749253022920320976581756143196520888984031222084710980915019597052999173816648203924161967619470213531632718166870967715642471027853339968257011351120260987885685941978692881938486254863224087923666349783348006428742946618187435674423508546921554620581022804513294962334520918887341258090404890639695784322861815328003041464163024521056605386194797941634842648395441114210632042676314677510090239504108313695797173227303549687896202980674096728696935043579339288970505159313945860000681023496536288813031441878347128974330119545291157919636791105595930033821052184922384903404102437325054728525593788526996787786416609307254816701820067497936219808126548101622286123004841948181683891489318973621224054625635909340208063395954632043477973845248688213757572624293883053691069832238976746482950568071627249343256099747465585560994011484514183185381494487269019064220401434384546922567763436595402484923003074000783335378239723787807899551057247587149925637955785571626677482193786708170979378931386739938603163039673332701424363501539422237359032067666951321641124867503468881382024538217928742866601128406998175238217249060805080880917926061074215832584323517432714275098749429231792635712923953923326609584595473270775471844586115222110029229771867194098712450424738393882448889273042658153991633214866480530239974028124862840236320813092687861498777315133345762122169524744359514487123002115429697911559099487125975451857297287534608770608163983824200678657352359907485342131470339449148797087845245585840561868577904331383433036936178736311474439320432742245559720742708251182287536649677245478436933380801562028110862206798892345979391876625594853638282570914297206834587271691746691263185325467215418329042022587683373583214901012681968630948268225714880399832021555402120465828179761893537179789473025362943729553270169455531487838723471029145265497257061009897447560024481278279595183967577503301799373308991201958614226552260708416753708479691753391306054842322250915048711646591482424360034376391329978210689531386656060909522325455086068384486442640688492593526299316909281865365955845624253167113359547734689349335497946079128711637121665600618968744605925348421168971309765606105154828088934539562987569286891155288231261437996648312374031034037775918538931977928015006322790569449747913235119120614632892766874348711317482325841890511719048803718114337933730365419550419811375719050752494991641529836679636536315991528634508779844919518121127912067090222652570952549183384941202489309370542709843021108063725783633666996161930849242520654102855552050138884740514519546447896249028628584098898511525765364403299222938286459243374218989849248978445325831268966835076708390767932292978289899911937601284850530061793096695188120045788277071730616031845281638945444559918860335872824872944079206681767149213495962452608915340826560381929450122442540767626967773992075407967840154152571130570932204762090530039828557738315754054932743516524893091706471255461604487220968675375333908321859967113524123202279794694304283754743427749031665087605858891388136996396288183192455742913633212695361864951870324792460049633951485336054327797815157881496619493880831633872883507237652415896394424816014063258303357841290772827798248208979284680321712574885060783413922138669102846165619949430688253521754581992252096966772905465756147916359038050594406663749134120041791374201137831442280129602543967877882612766950011511249603296961053875942440541940724169746823999154929765097119785072402358171266149374399287045263928965012417655630396563882733305415804752935618320734402812955285423202816313501076539751602675609549740441590478280316317116977784161074050002810824673164881735937654542646223654712573219008645368461573361522910441943052000969572872927481737996281677294204405773722032084627464234483511333045472626754173971473445616808833002259755895597830944634502885823061003688071769062488136006478408925259714946756085759967129480112188363209674111487632330570240711965425764812883749863022376667420571584406740343999286505209943721328583015521165074954677865891768678849239700185015665135698137372105265723229855011785043739344640498791171232138465878289014542825413499755491612632842496012433419632884261364886662269645691177911136780324983993590184391105623425270741159355565474212297854927689311436788819066956776845253480944331353059032964312660887002751272937948990148395363824020088578282888872498095733716256316001993840795292789082144886772890510614061575416573036279625266771671527150206350937636833823782566990703392896104610137274320637556906011975143802933213675250344216664538768205457772209323169366553868913337481807062035026517999456129053637933718212983019193757618547587639660787493231118426820000724860554336466862293736103891458877602703896413257959693807930998844572339653977831983572658160322251022182476593133854409974309985598751818052315422268981705216615874536278687425499909604975725005210026670214090340601277854224301601518946311949929927040239416525170093282875447756677083809218722834542382640588861108223206081147310402968631316279274516160738674202244707483281546160165614288929872164083100605111600342124512409968877412173236136912690565302063372385907160721953417526200219768756559421720945087267937587208185326562821643100592229558178710369986192403035699479708260749204972301256037352698624523198945626668348374350233761073671358529012133985013919851693424810560929840845554429282688406123487042345200893098022967913338517615117940196730469201132313441102389459514055623831121003608043595072261264218430869495384419794181151613949207085137330482721843008167260711807799136514703716931563707227403092066349790532515382841533258274699319470348200250167317897627103788385902608831147418635304361954298848400902373921398080227330431439235491612041066373651536081576717069518244730431789458924431674579509626274507776122153562294000456139531572506825487690525711483989370406802694547450122165274100068793720818542338400549104441795766539955049219109910989342207113551176805424597400896238571388350095033171598249007151284410116037804216616837097891425611926593523479388686896499332985967976818070339546832553424333898524423067786719793650691876667862308070812160697184204146827616268052518797445322208333019857681734761613905285076479188045028675370955033426823251493211791277631190416321135627747162050739731834219019170590847071075049535176350073273165636637744657613268529404933812506480145541502465028086600699830072489682542203830699494938996978512116182799436018481043913749779362259287456255600569785694159603535483053239946938044507670769502373986136980025831476975686146920007392164313518251128339065014205667259138196766393418686178499642939281560398306798536672911512977180841791513494303927551341062683578235090416423692266753868430620349785752523687891845928213612189006868548383863588804323726089613694291724307994408026350733650461623723466009310666759669291097082101744732443462940225948096716575032539078153070934978488505989540125466864389838121968355209669105753958103806133163720871364377101253559195069691900873962814353546097920619692804751446721051103729650178093782359694651291243891578115769744151848120423401029862940677220823454003971919146746145695528839367243811544840482097288140767180112579522695735278949403261712696766784555595999836047438923543928100221916584932713969697904030866193108317053502884976026837905293378771959941733782379642150316341803994025042734693061093836257183995312800943068170314183388837310994600297434162239219937352627911858998897720010508191220371652532805663630498122908779363045033969142215848428397256953647187394969643198890257053275212650561842278569536931540348602285969963418896521234979076839406808706804552080986638952394106735856723468228465063056541507660475999938016758479319928545885051656900927354393397115806635802957682498157880418050316998526025210564679066035138521552940417996811045607108827725966654312957763647721755939378767772686363176351764037249602503910690269736304097245982273385236608193378711326572703957241341422945405425073315283399847549215601973921873035023536561053406211199207585078673702190793753062298414488163282024618532972912830090455985054573183983225673768269194949799501782378546190759246703929519215134778540031875337908533720980434446773113266684815839573612487241526553187033257741092694359712433892302769323871343532916086303030548681765632485063697624800472788803772599081210494601594484265926128567824896274327977429306845262197228710025112750053517175616174710233212743739413708242326534424283865432526093450091430580891807222063824297264574686226388880870335139620095863495027969707172250837361819082207731212252334826620254020976016998549505438540856794612165076747161703439088383807334302169362061516406855069010859174587286500172258445156731343580653668698599359639143811300219264345375317404608766571019422757625739010892110941654339896375600785129686845835174644476984705279481117127401564748716709553661938452924419777844720755064195043064356590396362577758419240476310912728907359656676590027442227109315817726124297740065338316386641571222613323145230438734820386719865321555991020667245886475013142021464074184596339509978676873745185011898849163554275357054384185345447697272924140209374303607658370343995297917924317144611280586514191890114852565319266964702701719383684401437586290992437850784772188455248744499849424749195619562617157243658837414611221923607659323980642121392308789213566718031561870995410055998989784332412732153694316499119257048262722371466534008855124253240094300624809618963185559170463598882460490779853450365943708139102001463701448817457439904687508157270394329362999349118075534334123091083400990085222748642088384507047116186250090466245466649456570889358410206440509195330492650465057133219017970971349213823657602328039176046663824961239931613637728738301386427416013735223335597596376200140122491811646359389588148226954284163781765699245567463059348177881313126512114260202650826965090337888314595118434391668534550766285416014362300240678636029117350696448381638462970412313228264583968923651799521192129562052044681027554051068799336846092239454544764191487465852931312015242077062206695686664210772862485795555729179371188808419608600695135922635158197117827638231238172145606742472289701374023091867082321380125512089962595651575693733166299846429264738301407404006166102372028732264024118280824811732549327242827605492265659689606246404308051652133837490400202930756856892858294983001186620263235315989489752914637123493423624128622702971501080618365887555850714287410564223571893436959670060976175525398546530129883460231178339451098664361195988461598102348117595481307399526445347408135141238920992151951415338234563753110785693050379153980204487649722366694511526969739824925213613960298970892840270548559808642821885182234877567481324446784286916929627271005871471987160330943890543661631707427388644030013611128691560568660936858551508476797739780321700741585129983785848199370092310107881907897824243707935863956539605139152815581664674857605073802913117633372559145581601157016737426171953208373609419513346705009555798911926942692826863209865294308067839204873761533453940805981978304204143027961749966667118386079308317985794598664460620551529959141718649364943628155276975300638038014184564952182894365787771776949512567547209920572875644829927746126499859537742487679633192013853737178595837203003722172448872201833046130560033912824457783425541833774331223523848751279284581909149452159142899371581373344149460835754129051667468251539242572698935190693711815637471507049258011565823663708824396102643120231690514089090098066326509508463576934192234624806263416292898491558611168257833454058929231656174258002536959093723177053628655311882189079559628518490724060803406553934009259380058425154792738208931449650180586781558505286415937844938382846277682211766085864974790480106348355370030780539211042873791436357357449480548364407051617302771602827188291059269643703803331957588288429984767691834147488285231162580837392861399047331539137559707710159945729793783307964527267150211108912600352373616628058344759643817149830090238015557191541689894198629376233301020225670357367919520436944819734446195734607262451450183694331340360812292030117242159497644046817477980948871085500706304948553530037251026960406561262317197915059872884390288677276517257206236753762397754390123618547296179733438033725441642507003562783891131492482452474735650894376642182445637930230296781657278751792336677449300363722912690633578435833305945711900035346782839795546592722262836862381987136537238101229286644335194463006103135781699804368930406982119359051637716170975806700887695482514279167497183409214165923011365923067587899102179951441684563014946383721030144581523107090677118008873433838698428685774761041802718261082185430016819137201687628487412872946369927130254431985133866037668397596762835035661421942112472889480642883595576191236168991433890674993956921050727203741992472414296930157024695825598457289711474708364739373162339522459393131268384939479659714381296665850865483467190714710529663787175860254328484882926023163183308034549331102564547293596384982184457842393244350464058542755622813022126632740927764129297935026804151277761282236745792557609437696033386674025863838324835758915548599650152597685494417070943208787856247508068387831346859915240746211189477590644373972924495548680559022686848423132858558669159808336638199947651070391011542818512968291865106761592511254994645059535284835590304905119868829918122888457308808647292006589813692438763618154008498297939066908965242414683812119632360038111568702335899655312186390679461138952813518872371882009338279076552220854916023056102724575493809565701059216182550276086883202979914995751123738079151080270975693390911981527734957613943217984670710432897369335396332930851042548986529807764692204716976342384030157855815461990578452094678740769413745695397568802219798474320349072380627902128864867191072483409748840871264251243399176840975853455386171310178523410084491291334946627694920210625464421291476864613831027344723483381456358397015995793370224175544590603582182928452532990096819315172302485516236023108950090211321924826269707172716275725261015889030502358224213421953588600938420805694334640345444655290695320050908613627956259478952423465673921671314261835205139321488969360013464606682448119243983729435376955319727547600577018556456852417408467718855994212882203646118537523973528062712052136326205506593211245975065522626083404641068302444281909422925177656857058469935834587135896760166062220146889776064037689517252722989559087290533082632710472970243665744475040193166479646762849674576997052648340485436071622382681451023347063679918056699943918965631043521403164028836224288146601794143981183640352964672664137894106893333155748032100058908691060650327820044807961669791236005148452969752363311397218707309101692546373594250929060628771360292950824514569022407035767453323430442260899521952921491017224410230777329869772142588730823439938435420355640522026540890024481166375188710614740071878706558716009632147041216119800864839310227814095091986539430318026208055490167427002895151224045743801952236912960803972644078525968292849801298689990216894929558974133570039039333419835559509749912610682066106562921668940583109043925291604863417028781436830996620690143260667318844351195960539850169595404909287162755786927823251849748432297103703364096794066019719359443943120822792676333378392149266996239760128147619719573648037325380001543037654802734709234783833534726649075699816713494462628303519937621274794734532327635886904104566981646119081599811406138684939724740815138370754822552272272341536166927794129312708512599419872997501602992108713864729846755557263696806994216802812301486245600488530568279513923042211542670934420887672483394490934130924173673075864772679108036628478250323761159141564097604125903711517492858152808102683748143125680663890715854405300543726922020191015487576423786189364553889944029840769133172307204943531440475062588496835013934331068132675203181435355583755761246647751735253483691992473069581658640751681474066724005093553224854652747371460074109608942446076491593576604518618170623291419094431841568022266547841339559950274683183817170034941812742555812652406737226485598014730677662872698628463013419355339519012477235153957219109636755490510611826401749507612803047195516144384158480476720965951113256901424212997652314484735515020281551761490741589011685820410452896985169864897879512765115852816534207052769644551055026883055485456607822588392175269798774519274806955173435001455525401192466061591436048568866337709655487898010208236572924641119544730762093638251793529481232817049046035254360364986429793039801225526932735524686996001356825746145141097422312532496792928555806804080984406186147357627757420726020799400389447830554812161591269329071931682954376960811490166193224198805641637921514411381917428576978518804239977552922399478399835872693866390069295540633939577631247198946131063313127934091404354547663696692138970559388343155961990736001226569478778831312997909235243357180565888463686852666850745761249696392280481092509028196897320523002512938175351201164830328322429099873705459943973312194276915528368783950269710684636990429014199040374522057343530723504500920162887374684904838736624143723743502822163053165238164232412983104904613446114588805078844201332375025156433293622102486913170687278325656605703608032181111080889127006666459702045536776273123686274102106275784829246527148458747831488094191556537499596414913268486244572749545429552061385748091612982890422970748094176926369446354208251499578392046242152234707206696081678399767238704867115740027055251528677845249430776341058369407253225379358921823407551478129400727880405507838057619760159722251725386345382139053028239475713641213807074050252743027459467209610942712929375792469558991610443478492985857313137622859831234245334153471979858830329139802560757190491442682164666340548543982908598117889711901825839759475744327107183601388651815500043693131864985996403497149704966317005819422156111578311343719405096687993207116789932202206789010641013258550092189569184401874200988117993497981714162410381142444032389628182236675831039048461710290201129821367276953556229553172492750786751584208471024778584009932387566002401882825104229938008880748944566890689453862626771850951675889151081958511219054373712566266861671517833113056054978245440318327481634651140444868209989960713036496220114024876490492178941172758381337636313706251735018492203107258375215133500199790382649465850261712359823610049374368273741428074645505317887137491382864766237734492721471684557335257369828451781599163973850615200987404215470346674982834525454494743345508947606018880287642095794938501706037672685650681423253629393457116451238139750205393593717475746172940827595277567383990232633691466062967463268564616061071524865938590482725538855196849910646707362074324565236589601260164650968877792234625713984054293319003141878206372570666798595180782715876028669987343891214259516760103344977922409070185372860395692413062153672122241139501664568537169639353480343516641202958658006913209705167998329339128221493998698157591563591239656358800300130147843301311598103163228983316888679591063202282964695910180801415409840366130872313716885100072193295653276357807210054891642005572259291287201353404728385023970492314776373885301192025339778764607256937577753783491395543720117500180909253859239602969044756430734706686838151183246417207031350497993188729403877727184411129370397488152252782318882414594266795561813458184519970210167979141734714087201301460181765914101639226299197419953518337103863690082467864889994354710602771554014845492146824417314237708303960931122147640113880842371316553076483875220711293858260786014351396917925378636509225006896031507817138933921899950088374049645582615030512749602239897127796609165462405166653703544129837066950666046184617713762818982069616098419116946543121480968513976606157778271248954301463729803919534365299894504726954356876990276225585265625015751007950327086930079964200142393427509071171524513650734896765544344141596656191835844103516860927057927414709400122430651026306824237769933277323706696027542405958945769307151661723783820376261033716285579430803965536838780523678401108940534672802917516224542008134497079180811823771203507820775273833057469238721586600759853178167796603648588807638515958136794159165693107467023740928235242630261974265614540452263207692652920788897221571420073811109663729628051335533630985956628640147749855046397759049591682579602910680012102307544729525620534878536785724651213508575010562210362383826573956981235071372726594571084717267691153133220480637072545675863423978349700565529800602069180623601393264553060021487601982264251008871811516261377638893465327854519050729168786622690594868043591727747404325549930996241595739513159068347377544488336872038772986762958590299776057205255567733401428542507751981712591234893528410896668529072873361698630894228402184749375897869542713031871257005654368228735847699334394787551088387549570195997618843668450070514544197043499804400383761129706996148742654387494804234915179694729949941558809938036682350992227473501909500667886372223947244085209048366323156771252953217521678731187467300423013153566742645615983429530164505653339798776830737591615413411043366071790703110395373152072010534513748917394883561969388577466517701563034083420260458681034232812265884778324352994412970099261927046439735783542888368960719202822947192390889992798103028278934195979452818473455837534203473995662661651930115561114000383280451608160175535206657349580828246247540493084309605347851154715297392539021782131604735781313136177752518668927230812233982668885884516177815908508197045743395781643732370560879045229203063172534124825011362185709075858068204305865327292228332226716122273613397200279372444767315089215976274651539935826439436093901962044000801068337395025965066995450742430698410828572137477904026929834334301967780206570661833437067083227447092660772915623571663254725057996632349288117072504869487913999774481760711755275267316653386376236170336152240289555022394956933202086052029507573866124074090380614474326389468111381977961850366229206991179366961092210419007664936494391618832226994803577759688119624291851039968739519604159248738906133823812730003334098358299953170222287666648066602996125799945954604102012571719945017584766194739637674921142043293129611194810792881025188124127875752574210756809171239403698572369895102367604635460260406930561431273367410958472215738675659183987270361847805326758577462371105564064465950676955171492870028403784151716128342490590794175541849140471844724988336344395087423731622633425535651060330164499309617129568361245805607433453459823332645876504548450664878082530597882253223211075307251799660510621370117958260077785684070379743666376107625864572411312486374541271825908606912040001451853293271142012921907819076578022623039251255497192066339579014016008308279969428092107950778425071676033528603708465658202621936563805217187170242920382705804784204121217236326143830908675631863536204371503077499994580417228286249840075309288511406032452805752844212649274411433437247921131064758827156811705176171653462108795631532221042033150580365452519959358461043119183842634803101941796165949721543180175318672565609185388266354007442884600245866341031101418387989535657670389615167954137379679645844230704792242512487929351601498039366699451861348336586709769935851508995398586127466537475186147216966688394999837455033570866977098536867085367936142379909776085540060922757861162196506976777174269633711282609413738444964849592323829537074199341193993847636807029582012215401733573336972588797050946821457797474342218208460058323038413137256671829791399748973821282312476409841123041767746444168844853565945615305154707215156305712357018520098063239099353712293181356206119801736719119678150936890124346962495620001258300655059940702693010818385001743851449661118538186691814465522644374092409486082370148605196082336536287052305212507882905275859111186242279253044301780911788123918519749553645985324550149399205238149080215795277321399669416968488338513166896780148198503420782601114832349189549224290991180041736572091367450602554918863097428612286265321997077178077426428595243484400814034756066412765369183790520341722743625772252472424695261756937817201867404702622302734858030623477632672119694956090565620678849014661506861477183207210200816944656854373591765727608443085296409015470481569321240024762468960824617428192455789728229994034060041744614120394146208335387025451640394915396493082696760792315775568088658026425138880531286727851574690464814975421288372703219608540349335717103512203519594098175587087777895066031931173288779412036106899010543623740240471590460044159730897147604686678531659950601164296250094481291807538108664708090266124872343994991892503277419982956543515177260345814135916806485324971952705045938747986445701226174863959883067826142019059355667920747963260156055431749379999213154208877775827998839313109943867927213342678864582655715125254775899128532757323320599458029545836849149365748847504409234461995185121833377908732789997954631840660213870279326988076952967049234882420573329786604078622524333763166790013415109024549424640719619857635501759661231340029199268758679563650331486649778318049670728684062483843185181932483149400674109189134790095789701004600881784010247261571720601841399442270318530710272203520686390148591429845719557932349902697876370055251418122680231951518201735654013817737482229661814482814462031921731631855121921276769373565417149311667799184033716172945093121575197309671658308248160658794178832761550688426247164272841160094878763673315683991769420230412223073577338524494026338106527168269877666003732290534550809623542169656303614366365880140003600181131149795864823149155683699827299536512857276151885182526339954253300615334431517295337490125139138121677645850964772986823396386798872481339235628081217126347368528825860569102547867348863609075504017989116341090015134469203369425524979016729739877784688211888829738964747286411932396593544413094345717486664637757979412904773605793582785667127127644446906048614267275254223924860161436743559773330122114707147806684341467959975073601940392711782627419759660727156225816846538763793890727311240897210695486770116370227381730503766945046562868575686764689989712632686368861165263597628615401662384458050085532112614515995650818920382448801360327701307404502896638498262900110338289670356206950450523967029792950757073976455859813813921524753746329474544869845560375908666886739434720879582879377373803445154098230923115487613336429431676280171086952232227450637928772739349637635868514505999267565866637553176782945899572325903867018588718833245366326847053581819237836782331393335803201244276964305098375030271613845256863084245083013438295059849458418166711701172762078256039667301398474663896030515520497570634164558288664588718093842385945339240452580510881862763154550565308059584156296257068587228950515681482503559379972091963265180184313258370001624627585953740368862088300876632176030022798880887851819970001244425145755531593784759779190580738202074234368501517373301816259153956981873319869824873036560429572900294834068291537629516086380787317078863577283579472348289596765009068943908854272243337825907769714404569846697288108818944675995652979810170946573131031083542568072729638553550096373293455716139686986783885862585184504568069060442968689091289555564648902978399963077579837782557504709360509064527311854038518766564014999945608101442142580730621073512559932849749813269055580196058035985817998380228539367373260129515237281165282288818926634867638636377777875519690670254630565766186799326900015940211210747349591719784078187348064653755129777359608892365462771204126000397601977045507241593607839918458753482938917673954588995002475973206201824951789590654860668362143196391004586596158274800690177230704392626796462272683761801419892048341331667727935281495609727602346351869713020552798460829978998811924857576623177194410756936846271726266482516038644039619142957049181638406315416972266337251093331363056509671879312363437154977154824750372507028094449570151928856586357685136896994842776651908773461233882515449621670044889671985350143304732791349899274128205593831484619130437014281028703922274122793935362082968760505450544174775773552633497450405800638732943630605358063646785035123301393160951352321265682793365766673706427860598446876170954807451833500454896618777009927669199328642211085877432688327052355699561514194604767815644481293444864016709322503467268233587877584240399869910863368587706275573852748844899699872720110816264375158570741522852670652248820272847878159464336931052898987061071042860700352844062003276834708636664756674660730798957636928307891622372867274362481511095430867436283614802128119596755610650802777372530477614153434927922494825190256284375607290258154379205401493369054108616567239023629218758664786059478800949752590842536038874909821742941631113941270498271811327931706019892507792409366295032347411070118462797051822969021215333697133434445455622524163520578015860303422921608065573104703308402912018254903438208889024113916732346962841328321608133059396026996330383151056697209461052256046132847498906163800768796741014578500204999915786231499113362140317260191421615757061567671246539964133339096849937108043228046870220236992283735902247898817937087344158078491800822024625415217813544242731970458866159283061215308910324103300764283985476745926312616429742101210636453858315296079861061795355154156580423473658529699759943403849889476503540486796056723144290859190740016593823964299776035316048811214890097340902452154660493632734532076119568057232505433548933699708542776956410264266928595761214601758627990802829949221908070209619125382440629422249965393677567953308895763323467095596547434114051721779446190158994286684344573830458454828738298335335373757398037580432444965034298478556246957589375510944023174943089018022598773402312324305801629661224136488948636074059690921783797067177044667074402658873891773680803418061231609364721759105855901113927935396601250151912821250280441628576575551316945257849598077629611902879932617982615603628753585153956142307817503084499119392628191159857687501527264894011333281557390623607284642034328415379433725116646287743727776652178281895975622544020499827125534645640585031652243516412482842487930290869033817575672018916705376150281202577955638534462770589799597059414234472049495887931695923752759077348509376325041769301833984547285269222411147446719996444195704202681271931121371263547525882322959421238340449969043541812005324987265166561603057080167659450391769528116703034727974102416787600729680848780944452211429130864946439498019175861535547542814997660358088588979145630782777813664745871183517439475159727249848244671755943359993044371845035718396853343860778020741360640470891224863321701428496489129601354770881088130843041956266754013669072039141914574337472186826328753484797457162583136762416454917155360818403268367328743459144079189676050469790750063249256580804959762473034080110841348662065631054087269809121593684350596126336186628010035448655581294624142894139040282862994599231310726662950460917356940067243822337340345273644426176722605088582878330996154834042442692361976779019892096460123873334880984911000060853337930457778019175135939836015103120280147309456975710002051636026740631213965202076690673892735584232481067274229190637438453595199488264276088726155060075069145497325290280975231540679625646705411887670100350970189059167314658124810236411503760894852103086178413848986654208254776493803369529665639434778312435682688254400083354628743194624655998527847662196300951066562243241607900961883883772390799182646138860431118943413707160771516351253118596249227572783396449492773761856348363917845407769052739321327220026565263360015677816575979934982269588252611094732065548521320520584535998694780977795384290816061850480299700656052351857705679662076673760193137344113114471824575306386595846673815586559347909886157149111409055244636378464416713798422871350267009680957012390633595414873007798112875865740312548536895778133280633075899494719980726466114022298628163554707100526747909350209140490836205350224843964736397954384347982076336261314440962283418796606199216826577949828915085477353156737395138931651810173141898912099947277199518663764377447376286455662074614188275834174034392059261850458424330284147108384868643982399652438245231109868392707993965135133172647822461407193181908477741231948156787126234100521672841372841264527905813362990544240657215925644741355260208015512515147569748070396396842835760117280770975212341419580752939705724281889032266863114204119652725211230935117576544748966039734967841716345882224932317820611256474921180600868554329209968423580168027291246829068217426277336885760540457480590997774066821336441197119910481770294417517646619701420357186299922169833939667692544798214413566271899432881352560873435653262696351349262428994257453927509848276576374061939749753476746785156857856953872046788128967117084836106526338657250043056867285123476806196320072640517334879435788819561566016059749084629488713413764836123474469669657554345269617745927991357110249506342149140971868733616972879435019919513856604142156937044731039525120939651371814811749569493919303072562547205082207455759673817279509676073326197857134348801771443927951724351746804624302895749866590077327337556895729246364501379663837479876208600524310494685605644645152994221603947711038373531101646539166445084882085985616665995846689339180670162431800224450817763803010279473600925814541008527941495524729573146092920069293427850102486735114066214483975262893759081756504326714205258445758817519302777768450616142546459404277101711335035681087874772456531808450545570067418179673652098031317544768080561531129936809346045781855085515120220361739196194237320941575091835073612905846957949437009088655444915622778061405379971857353609162566246250680021383695601911601589470691818608511443043296535672082463457113283894647783386431132072927341872631782645271375141849472909440654502229348734108604052806464535040532451208362511521311775313648930885824368056381756464474608797361990981968748132319652435344360580565765651634045953161825076132654512499106915605429233136030432881194476371217525563110470263961518344374909580738075976204516457265776006020499527913124125918230226168190391981928903083501441169092631314501281367325664601324439678761561889282292993504919299059117077278542498547775056506230839098104534589952238921209813778940166606498035694560812135919915915628681135751720297107383348729816432975289775835294414136189230208344872516745705308418445186031620629369796008634198459978811805223266403770957415557318999460696736259967395169264924892550109801710903052002874811845206405699428949911393336648208468069156651530711423380978331527722659315861871469707441313971740525199731081654024432228495343507741296231608194353340647580656560408141670119503922330750838438510833344964724015993768580959018424610339480927064382669189201981004205718081900156672615355577313461580313776045118177156244021050181999084264917012647293565480134503382700015461463928389759467483087121862350380410983634102361798484935105320383462823743403856136331944206689070121464855424464570950552069357353509385873253101047265627670838881761477785440720242894827457052696795528434485861699845529032700501844649338050298012395545089323597484728798335822011432785456720776587717656011507175140323159889729184517646676932720543112913590165657761034858305717066039885362420978741394780718069073472185641607001943451448339727731744575650457925346593696408277826425803832836382662038946928814049463714505753491802486854042740233523447822171346495140124294161443926855906897304236601619661702899581162431266631210308450779092042953205902157425129126729102235604907305996525678352162695833086285505838213748986322381489077416571654340407378718968928712034592432053966103717811985102692466028639124129026374184405484999239308840914069313326740154148212080992095749888823290100805338771383971760092803146167533299732899637654214355343741586367404984120290730315905797027516800973250952954648444679624639630551621707138129540667138548526507929029073867038748878619001835802987804717936067727624532042237690227223984242737293143205941114214741393665126747484360270834580218255252117943341298725048421877584256009141560293828266909771766612302680134093869172910864446061220629537688360309005925670274643981726174847264548583191653148258535676709273736824323883781653759330163857106117685979705358153541067718764067515667292193506777553677705490820659046999858432088759712196295624228607238246140920081124600713952830292047917779906250334508356486740438215028572118363757467331414096292764524089962697325298280680205364097981772713496742168532105777030950231472312878330362078338928813246687459767039355956089869951094903175100179766052383132748059517627845660744025380442105140681977779143680142846743167046596944231587175791712596105908059906847171458114695863697956331224287614755578501978888485866749123381754023157287397489507545989208679862724159887362508614628047634357813167585996969235788047783573131331502272256341491243673652847861154933417104458150310307608841817012511873164964984965345486045400940789128853098692278697308379668878014684902786193123983815755393863600582679657016765209300776174716309179821326228644797066436303593644902484343250216596512226141086782492193755230524810976427170699834480160934856455353055507198204629266649758534416761896436695269798114624014683267003543722407327457421643372819377320630010382501198753676210656491975046563150505791512592783246129860218837978268738399376610744477973847918764369013377772160080182632108002532558317991311965002023611394239628626797238145112431339672484023856468659155947452772797671650829814001502729509629747731722699352184911747386710604020200494501209014963470300595298642077881403161847117897833165857481500049046375098956432838083459764810722813848627809089291818220360727260118502043039428573058794377639789669261764219321439320059404613239410571206706704341429547282327297921214130386546985478929868925537452052727453699630183711041449362162654634140300203724045058876993018052385528649756801435453086490356711581462468334442746100831690411708910540911698094481206121652639979379574089676333001763474477985998472962487935515075725967156418866774106692870498232681210726855073053976784813794493982671273804730075284846865341617072387894985757736164026191974415177927841519846824304303433536349988826272545442961174431943635382558675143145181997747195141372048183166956959277994487648630705264904430745603846859514369870537487089388173427736510715662580618243291780100600967943146874619297160883543565881390578831749648990130938325420498212665766297985221213735483125849898793876643131982714039563795742414827664384711039780155192064287572416017863531117952915236195908418431894044331943087868600548648885924419670544742307354458421768927838762122546826297375250362677177577739512631215356191908194134205180570772029037603470467483762441976361867085618015473755824145954864499916778238974473070671533658461247500215500406498729348847376217071956520219377050936213763751937942658507591800784114728059697484075882160754011112691643661080218206245561284997232901471829412890375213752801419140728843196902584506416367830499121639463744666383653025620757546776948162788715027085607650515124934188617552703782783251239719877409255732108106831122950763738749935182817044692494337455288914143193909754402225872545367605016767926464237246323330648815791794961371861533083727981585683136073374187524380268171927691209872371939247346535472278010997993559470451538477580204691898963539246003018939130094917878364015910008678176991243492612600737354961024171870471104755608555653443049040561384053937664158751935141399451506613716591779572175172213442518219116148767657067947658491793587722340399747541736144532856666501321169053213549349945188562208646930368946756983085530963930259804075495171367847754864679844149090078536048774774114890129881653243541562894621442073122854078165506386054349804095679966436740998700277917794448102456720649429820056128751612484747092054729710006209046003695439007759563531977979117244110599736110166014829358673000020264590237080430142036696831286221755988993152799916249903766115063639747474942908967472595304660888540876575287739708422884705273102250330197995328064437677393711795473021353864293993798230857065347728728435308241570618869210746625368822516772540328274204658450756789548821785888406554825553292184174149218930091205401075203096195246527478114989964435795326261298732753776710336229395389294688543629513328356663218485126449507654956604838175161910685585610900139755232449290237237693177000109612560665126714472133607587368303694564142108995399633055763146566681715550977222033606636665027713890591248821676024175474793890016902300108636045043536418970352866187747624607910500976967986970187730266508435392238090029178296020091768085544214439623801004590022546703130145341112805750325655897012623784033426979102985695036789307399819091475078204158797603346718486073836799734688459983122281736405515086521894043445315551059252321297865532128177047265630825345174838500042230796403698939640232884566893129423110866402839265630903902936709555935942753782674534647674760181514625775273217484231805329580420008515147438934953252476528083950295522173241104660714151060614603435299989136982826395873377808922625277529872932532015527020753480186971935087992454732550597802038880536369042772727600306588370416673260290062683474442975420287374252121389973978562484563759608680294995210211756846910427517492775172449456708306744450961932415774477105214444121840300718534751381338003002595546188848729760390729595515677177553097588645337961593379969117097583911777723870877776152083046457046102940737649833882130960005158917929484326299216666972248560908966714660413730536710700973345593258911229925718595875559346993871698486477742093800489710448286607460465130413007042804845546921840003581093360434738053659388336396468632052969790505869182066011899295989116362751109284195221804155257981363864921272673757964575520484139930739088205263822610374278096334584705448369217235462807758391191839381313158268445263096244242458176896989094933355550860521573992467687120739625885493262182908218615950753020839226511536556784990461176367649147769486288251149096604772778101680666679304031850280744255474405507999018605550065318958884069700248143765496975207123257407089802833189972578001974466020948709481438601717835668809830664769247135657489648068704418151236207626526151532590373370507531442128268271187233981346681160015148690841390118281866425707098860238860684959191796099510868309564399946018560492439438490031128037800703334616587325864904053743496967683364769173104047433547265774769037748616262708535719352523019168038815688485576497146024237488956383213113188693105855172069958276245024722813991694415019351113561938636453687153397457376616637526188984114209160773109620850423059410358080185285691124549350874391677779969569605619243085213123925148411378899877040174632569784044945269336529687786035033845760213666085778884777391412031436855025337123031681665160712819385536640122428481735768066955358688106702562893600000050251441608137510026189498463213415255478420688964097683772254379392795046961948249459930420605022445811315962255693671171659473573228866290507633497501542838207764731924844421967664800630472853816599662786047975314149343124827687286238429800209747499443152805289172305181280823629238137356420540943993957990529786035473891839831069978830409419165892973034765854458451809615015299678807676508874591606670656453648446092338508942131630021001327230223174160101006002276086022672028943546646018541037286501713661548913911272886442787466735212907885650300339253022762628027907070517519981266415608081436565602055119228331154454565148917069799101960691699665340172210835716144863291906569846208245948015287857028911736604239631156581435275436473409671144814574253509685806349634118341544571608762656894634029251563910828896932867117010021488997000736094131005601539760084435568350044236820646117194511522072036249464137193148765611656732387169585701594803931525457566667125490003651607987350539195836396486322890517951094558660500146936136526759635727806892412828440694704412952865468584648967452804891174348998120244781333770298750235470276044162007092371886697656836352154504966586907839546980058138874095970735451713828627852236199712445448278107548152654494372536633531479270683524116848505542292740753415657309269121857838084358908134263909867406931404341096153834396134457251310273029663860563617197575031955668036276177254816150548529002566569743319664598600489865997975805585664470052847452970428762385279648983665057110912560696056160370081707851716539420924697211176695739283521978008726728992401962883560186898669070719808280767353618513959575364045289831596150430989616981358877251938100200818409455721826274543861459840374441315167057201516897527605908872179777239331016623186253993994602144323019925037359871318261549017543579420385698589247488856661283819026454083992217549563514074356455023490492642406921850102888169976831021381215798596202079167798825491942646906012141878449058774396700606075235704042964967206155893843141425166333171062415864726884300842314155304360546357819715844727378454455394950224357252716597858361627838123932507785704409005068510053442267523445092235507689650875033886091701593450855993066316916469380373175571894174922540103892523270433327485764396743248208193997139408458149546500748202670071476318711693882200264520569834031740615960835865106933201012556982716983605342974777217944269171373058206044388120994105414200933140360035421441549949902918476037226913529585513783832062931153313304226753857601615615139017993171477642747943682850564300593892448532929586709319567591724038749374737440565421070207986930319462489459032836758548058937619688046068471122807640295226246181748693016780616520703149018748746814628164658024356269119273581650342223283973930451027140013989930751198699526131977573579859888454881359326400148542327811383834760320843460639851442910247788560507145256280823533675634600453231288638414960303442462539649976619648285255890448475809856674552672221585308476715434390432598053173944734629589338556389856835330875258364726268486449536799980183124192686367713761603141830633746631432070165143598078821812098076278887366780795713288403525117177002252214860278629918480916764647359131626101372183960142561951174451000631402360758860250169883604590604593679587369718185191050462114166423568263102362522289770290882415373217229116325793611042265992628572436741125374161130448881838751683497349896882032632183540431560168791906267457197299628534990812989312906164964030547262487102976225827990316049102939412215895291544053371516059579379941934113996333997562952677606530730025366376549406847241488414761844712077937063171516500181232409624153494313553308365131750601665076645993391305445184955468237416004695691143154786251871244583949382417586964103292826176244786085507354822094084961726426631914341657010985381666535789390131901291442875315977784624317316810374045473684333557088589772060300112419471121093371585183258029969957510555577468045407577670471065548439375505514649748925795757600337864692908530130784314850994663083484186548481006670165095416569764649280609987226741844820288835957671644417176844499898752385153232559304014659865442643217329211043032626605598582762943572784209766216191029688850702970387836994410582559270664091261557290926894959971566439568694488399036911556923481025146671273712082341661761071223839124023878176895488107595449846676678058031001447734761673708359866179604645897206654099232675949476623087566124930325459535767522310714447322313092443440392076725937276582517868491897248641800286801298542185142685766690739040868876626983524813416298634148657677165231197814752709932204555873281886837727654986301485858498738852700855371505200330366034109229024444363291527867741846515335104453905099736023222246634860821999652305305418358109054948205741148393581946327650597415257064890239298872102885754225396456464746829904172203164427877415829403007626254182841132638197024116024034575018135071466815001869737857222431251867707290687987180970735429721630909640094150481892963181612168333048499145441128798617750374803597471102427690761807915866493418681482090042608134739774774990592078055130887551772040620773181231515031889034752818888579358495869167423392334966504809277082489700778849605674557349536718797119506506973095225447209502922735824605220355129778302266116293481074793349586573115970905792614872233867863494188713907003495202900335833272676400794059055799572282236072288299704888615740658337704753460142808870127696147124891384872078016842922257841078137223830599251717384268951846986407511211620677445442891780949773011916814761014727871553621382656270325890793122497840363452332914695098785458229547387353717132191648918591350255148113728989179348750374821447447851336581067145425011845474079002250134346037338552831787744280224203875223557875564448630823279683435423071014458027002192823289596584481795241781557871611155629008447240038321963527595722932986687909774371401473967595245673933092317148981101174773541402819708278293870913503695186008438229353865427014832467320347523736699678847383621690698776892427268386746561218892339011056189353384337169123746386295214627544945503539631847883581233495904598466563218121314263445560407783997919551763408211245808786543889477147045959697754542201408054749723090867886331375196193094844924925110236144183104116553662207303435074075954078854578026926025747465605082153735401169596250272703923619905553019220147773504014083499166567173921142467745372267715079090028324510307924803036205799410208810812435233476923403221037622097990530337518680511369252819246729468246698838273350219903798994909247324674270181113252404574690250809600107730039363661656218290170012994245003288469482847250695077403914958020309160677969726189665268288103497043624799077855281676260310816289679470666085480944662962750957514153031822334872420865078181485023716812377073728228277799667115140762079982483951583969317155964213269036326924535340959463313361653257191204601101414976631793323997781576365541348214778117478167118721308891720492833459294645572117018797185780627595150469636998857670377143356143872573651754018179689590305620933839454490263006396829639961086510568295489157892013671857330521207011671157988463705488471525139821825014231452454014610965300323226349397246737208061576058187605207224461079137440940696566340156910556977110793639591524013834518343619899727660738295644687412467807443038387438539532693541164075567609239363938978549182068888855950694179232299155664615496985109389526971651227988313124797859594270962264250698558717050991050516119293961695347640736188044066164512117888901442802898367342128864081696249142370902668567178354998529490834863203188185824389389885086531091083781475604379972135032505568690842599402424683108393796350147507679244850207322861551853814850964795525629918707303544724739389192714268703382361863836170866351195887064925772495690589012531144999407955983982705802167206233470356218665211453832850978563952694772832511190505694396872954413355458931989811946130576884954200570945174238801407739915649277876673709280352466408521270491349437063944545512789061087581937821470422584023133504984790951163253559008252023351275135008445513297284691141330960323848059181604733529242500130052871857518730048614164147851783827296573338538863606315227837267738488253926538043852147941414910960972504580114045631036895354750117975437173893732350832283250624142302218744786914064729608260945793500653145806433225860519279357205351967216907376833718499181539729982589527723917388365528650327996547002865210055832769444965518354351428735316315007892599343522567276719196015598631238303248283923810384036883019827719515494823910124887630348062034900200123727225261664609656749556250271472381693196801136613181386305416454382046236698535242245385445400283354548048079570425632991329344934631602585865709127157237243791861833894573172043595906448015263408535825386613671611070854295837341541957444906225395004526441167101966610611138528424778034473843476758193213966325214579381736970101247719355560045831370213207781758961181251637667663079989641734422912753713543217949494534533085329601705591608520458042256063227571406429249601890527018543198955280579282547825144301527289592479466406383186772851718522382948706175566077134192631952386029383121300595509695199127246412563616899886567623988849458821757030702360139637523477413346731569477780629719844601346716831635799919265145812775205470207180276687110473833197094686353333729716105977805535846691317601377781943648026741435958953596746684298703592157753361632492689564659137700946430908031970220084650758258731322310758002988156511120437081744119075334553736369211167419302405878510580801346058192962094654256165218926580096998879820752524104800297782148274472258768249507829576133033803368800860676227586803966972435290547314104861809646006506665927282069019014799277504105875038239501420348617502866544516221860043696968279952745671237291323340380546723579666291130946665850786129638940843454185313442557009308155060831637991676209912968654088030337467893810650134772073923153875254885468867513092268460426005633204022648351839599916035616037369581657225971772705994535879430089203153466526922015247459689412791051985906982513049495717429286851568416319599700219954136850366907260749100926392642567928882643489097847749000771519633526608381603290661741703834535316006981288710112760297246966207778763557336104473931597444194692360072423146497293957401960414720438532679357546750674626338405633813300464970146820979482891907257915465187452937797210644735185193074479174340294937581597999400521449289960432101522865055498219060865161559152498426832689135265625983641608155279062412911649374970425832429755816372697955975025785395424776481634157439997579779235616442838735515302338093215541397073953598806833980191174398226871386441468959458832270465408092533180521198803457105337664715100532441248433939502945727689817916287273444388489108008796514691029621287719156229071712741189671047382370262446501536293588854526572079799168822551453796772933435218791435151574271687879778323170749851270366571871975406662923505324484920079409492187332402719894526873306910621003980046637248487475140947584798039963844652371575400471299050277938668924011653903850867447152846782299557571399383291628640492108263299995810629039183023315807991814677798387190909385419959640388975955884323449304482129274808028049987213895465337960414746266394402374504778869549369402642936694971560676604894662203005504115804799430361503919122532258127403727509269246196509202756867134793924519401267659188629301685610881727253053110907694063283575035870375932252448689121690275361076342295022002889047928408285027798038435984041102027492692005488903303344326358098099383706589084898579220260089532388140542861348691407890913276169581342923360164356875979059930931024492725042632648709196407792336306322537079476482847439762970689089130143808120223184827535937745433725476576832241471243739156003550251868235671743965091669586291097107632544007217308467242253204990998369264333140720677786963351091227142198644524519679697289541263483262348724526077239844403818887624433678858640018052835619050966258523306039858598602848773662970388231142217495733255293563639717984107123906696247323715939633404217210241395944263157331162824988027745430084038701976277419414694984803376990510152305642670861824360354170816658195584526263268886978172841041722977689955127180386841073008758280365200803100254478359088988300303544884201608084230789656715722844349759786598358185815486199484280109378446014581586567957705956715467722252355128954213559896708790447844606053736685854874938640874753999955624954230809142743771011946700058724351417829695671919439480131561262972867866309402589590990165318128843508755005973219552133909468810574175970436124647982272702267444306552720178193813471160714051182022092512950043487746191968462681004543111026380039220249835908157853575716137363530201386599738520982754595423147566071352989634671830379729673373162151170426553330667322726433911624295837291959517524065722943906331337527260049783247714212192461815594104262155483738439303214642508920339233577628481379732864091249673738599829958743974584847498009447650061880842397382676161503615942258092879828752191554413256240943827639818146266846484437882070857525500544158346832675860052785471753445629578261789213636932849153864936622901551450068698017919531284494905255814900060393852055639954136858447334169034904826831433759343903458648818649310549824589871720808895583512016371855116615770827875697891132490060733570368303468617624439722151425510369222152635067081473615293112619698507519564546609885448919674644784096358047928115387532615942232087889787742884334394052860635862822771078586166685287757657536139008928006220091178410576678615910316059044006725739182497944495723876769719362409682643950289047033408952810510313881897013792452696268017674371014400739860922087193595237152542548572206745727063553336346258121377808320696481956614450410891623996323473594861417447971161720269677920237666937299219869165229970780689549962491784081037719614360422134765779343383689507500072096606853229677237211634462461125583252723760201116240101199498772120875998528314213287793837254684084185030003018987459926781348284256816441619813653877737023186176980595093371707133721202651153485138383510787210570041309975502424661911785755970191916782385367060150538324042098528922709065673548865241183686562040674079639814922150296140293089092548610284437965080884120617733720505152703231512235245330951798075055022522841193103321823251228178546463475844811013246245149021058044040126721725695852436443597993193452942679958912972338957117565972169354030546701318905279402330582852538052469433751164861107879804843900009975986474519246577463920319639436230237018384497885131180689781682079393418157917747234611103745025462019027299156707207853701645260273923061336805245593390538667330503801091061436476549198990954430051661217832847369849631222546238451395504956055936498250078301055708219090790691727029619724718002626465318739122524683553936810403094882566770014968284885614978014098030451514899025231200345603465524247359100873332831036983496407114556914965351838946974339193111636803516087021805725006162663576456021293648321228546614085250252343035914379223259386027767202969696177288919078112209094396660432355435910469874371509620723153112517183162214462095645898990416906690019224836972344590461657044870587387285766100324545382294127247766460860210155842903899047112707476301891369201859136301345115684787618421170069501098529007290198348070518772018469622869419788598281985002091255422009589437546137241832257645341891946407907933740291896737104415732434285341824098487623219454554866229355168117031760707056961833912666016022761743972257569244970177548863325546000627867554857767519444482882520316767212141782901168224396482664743454232980523989592458253463892192697833020508525576452128997316079958854730510121139683378652472858939974066775059835302937282016908226546218761481471098273570957519846327677874658729316817707370060528261212359421626033912610284562275311361976699772491213043931147613741511840842721599219948791188977594860028842852924072959656198235520841522968371029459281104382889115068837634326160079905293506876730733323117214801259414492554207080089661393415504285582033275629407307559148312433962798298230297341644461582110606992858288149905662955440602380787221543688141467559245814833072750972700048794899815400447460402771731286849969264794458037245490186361362275960291354258822917593579803784097114758498321524434176179452619269098727893336381199556367136193150985296310988278204557747512904009574605988136248861846418884769700730289367080484925398094354879090231386241253487034755298531164429694580683767806091342954333433683773265333904192373973831272206742712810901110796758102244661724399365716377267978712574496421452135223285346584061367056585385582487923282057148189083589503607283606991578023121988414384422660200750683478466264120487210007320761964808096648200079437965393073902073407175959659674945161373398842964373249048256595325795803908452908812083722232347151192145759946892819049747953593143216796158279661084470138028333683699356172743012115578268155985593268063944787608495963334757041052851434748008711471807064462135964344589283203493000171793414765300802290684402335769758369431925428130716196655078599209971679767877933250676055812634457386481250314155950906902852032097525802562434400256824790593792638788600387162049097153548074930010354402795510906839353052072719521630839546718495102324535559773818483002446289940167708945784959001785138852577357779167349488694401009280332487683470165905478249164289891565284070259543264807360419948353934318464854394829459481359656030196293213634617569597327712009750865479670094075677633155010057382806341423291188560353162957362110024174501554229258929065234099688449380278924409107106952947214982056144081248869352827508003431328091907125506576615230633579589967877936740254659136034585343194444378224643977861492831838637030808382269498319209196320533365632233528211893553267940324781634390142302212899764917712775609617445806734066988570487278637284018893328558413766462459979924527706790478506056110546472485912086834061324024297318731089716083029444231548469732308872694626174970271099413852505586977627527394512671506450553824879547251991566374210365845694311460276436865294077121963910646396693381670165359371042994519668360808321905962292016115934980806474174310452961729641493407543961580568917919037876301042977867052894468233864618366473987944967570022417092082799772137061324707485141980868950594627736295004898105029802476232808159588340093229746391575375585001248535154191412077960912145212165883304761659134484005734112860518765907123871372078075507048671950866882024682621402421289969356275623524347082796007121878363513071081740804695628875607697822179194866506689987654482206188984042978780580938788628464524184772135537447454030509253707516042734263033110377531333021995360173003347618129032739828138293987654259285445934228976727286884461861365059356426437909166404750723470844975300285446526933078734234542683485829360975641954657358725607834223967034594633856142219268503813199739335004019245745212184055604291340138541329307906547480412840179146080286479868276954149382698333440836087200455015700648892291888362993581460090059357381709997356858919033114602229404995865356306789045425202889316883475020353942575924528387640548374791348875699601402158242684640167654078101011987634322068594119115524116682488213022486591023815522096689159871810027300514635105739595645535844708160899340093462852560675007847779647114473587694892142717971142100015758548212377131149180071465946228459252549136267287178806814356230043611635205924578355367598750796949249582703397616605864681511677414782729761253391701826824654273129185283196325799870466591168227521371653812272748924440947806580995440910198630361232870146702929636586433644395348138209167372065910909450774611732862349992268458217558238877552066178437515119795916969779105918301334482150339761572680278430263004882357337779425337292582684392037298314792636000098096432603230076708145053417339589666383804281871215237593477655617979136558434120005593976372087655066168295021640881996371053784510677499978997686177538631365808497762194411885719813747546613667369849550666516031318677351777888534983519607960230133766551796363480979501803541258190849316265369863545524704574576007827084664863049086830557836145770404064705615559544900091592855558942805132364618681951259941385673302267015154149850066917465300975478319541997010286980308194552880224647107302211193207820897512070420145432551815185178883225791039456755141255227369149320732318412529660205110674835998706169795586119941169345873400313812286048798875849110159053315015512362678799042681660836482669309903094763055015872156807699502046700545904006686659765301554834289083970182934652203197873640345751597575706697897582110038701974439315135193540497058693719752282683380371595790259846943998478618770979866020924659456077156812767481080832425714637172010914254803635091745573696411850393482223462584652408154198261709348504958429789497442732790005662132505807850337354785393236629334569091305005771763103915700696202134483633535473998687023047676647775238224163558721413141309610399305198378993546393802864988500716434329837445585658747310290691155039759262668953364684412262165875189868482957140677858558527929246300861634469441902767306683507585122983931834400688837412571201241084229922197940668686717933817427269992789986286504250349852559349707644632148849609135763435048068287518170881588675332608899264263026188904575372317309637287156838787731083542129713689256652451832668226267230584347656438251416111962940423344587713088172938791893212662394987431391486744351297315657861611049050113718700770740486648137949272016867453782262310515191711507983454102350883665220454695982219833784656662933509087214144000433752900356852544401898424472209956733515825293459461037928126624882909853447789823317705698929495944209246875074603833386468883798377818639579949095265604736916101859436070755131237768816697423262984101965897565200245332853555286310347017119026536996366816372343259866795377017277459988921986765979741721623156216852109967597631018764697853405090253617378246353927238786962380297756127477337737814061741724371880232223848769009479104184379052390356372789637875475321388723725792862635317546751197667997161877068555700430917665902952044310879365297778917165910748018990626040997469110124594052447474465505004851886434166356261125268371021655161209085057913493623970927776448650535929912443626904801666053920646697267368885275946179652022770981928083506997957674414484316505454299953380272226133460621795505849764945363773020844637022160856597040220352190277557720072125388639378343441056110098090117026351813248619019635002270455647196126013639352818590596516611960485090773713884694628745472338080101838391129076258795707463338510957944675213288082605528874815134326069586037576004847134734665763489369310783867427546892085097562460139370153109888971205343780960052886871664796207423025046620300139644414859647967409239432371496217691255557866456593805659826879131377035904979910148697579066494065028017439158550447644075849677915063926234388664178883850194735830737468090072630864783148168136684070135784473082412834438005749975335551177191661370599934023785013571112422001729067446265466107864248794066138376822403037184847574551103514716524463350787090539761206541893801971855529653097725433398995573191065508370778438280477329319248350201599117282089523715474237933323264847556495142571152173176294350044524086889925336411978136506016080136294386107614745314507583213468699005980449107479619142811899992906726080410436799953308790777922504721129191671558380343928526111170283218158696419897273697813415601497030373985083484981209727703658484351567347668884528185201771442062146016021748725092120448187845161207484070974713668687110130933048609311898290736168983790725839912500368552537871157288307711884099873790044349337584230515852363505267170594733021975502032854136557880691923915150340356423280295467249681789547802192390672716999213838227869663907598467712303273067605597648295847470244398353193943000081041528579597415863353864592005439437253372941850862184659713846756018623739186737727047805196458870431143471948918540128007046763798532332660407108520499124795341789558501424471411549674354384495495317575373576067148296190764279244996000206198984279595663613273140458111080880318279374603214231709333565134213905149227639150753989928456522973240840825061814053050468101037660316064140954435599080666552107421502555393767816479770656380962399406655291475762841024577285261391007504261592637566151008481626562711868202438423443567597009292909597484193472322462938326391341927575591097454114690158225537731827588195698312490780530331303469418398209681959406347340136418349574877745799981123662910138604898700809114783247849645485175203027794852996930598144360667798661271169677130169779714187282441413664489996385607043623555940297961216393604441988892228748253712326152514647079931808690474753590127449009949617897845182633768029787306047328696465048308770894471914773106394482589820498495419196983021443831459771713440050533732453198910049907508622331032046020495224045448577292449398091797460323094589856094322093070007900567602153498898161044864067024252869532651531634773282428241221167103761395389948827732251178616321481033562961120315022770719335659620474995933486960195045511543284245067494512798987236277361524675086550584811380771058357819032099623440280243978754193516985279303158918067681038661464574547725543793483799785998104478750883103896714199845457706198322049925087333221351363309829272804393712084296248894025674165458580794119064742845423314122763842564710417801128290349336471518827363063955734078059688979462386101561412012656279206144080914984493484461839236732929870476781455994225352022411882148633852443585530109573634114626659217562773643754776153377001686940865752778732008472384702283161686987652629264839636542882869034245001396819149065101655224024062709248689453482576966899231862228854688250510424973637880464512094746936528701467668472811918329295818032013242323336761367200125359925491435358148364687403634489575584185565041748129578341989288341701762415037330624735078508081442197917032436234125662644718838700164716165800623953711222628121845155914390851602694717106417239118205871388692054341303816974693171204613896138433832607895761522968678025496696614913960809864711023857057823663678006757568178375449377445517020519025200053180921165248632285688377388129472599020732931064597174005305630477575780608947860730201384952589542852691794902489102006127010038134390590617244419271376184843742245099363513161826796793226386348026073029194492311767575373084203644341225232859529191331977160844143132475567962308793970591371684375579369984824928094678543521234710369309606534137096780048640714375623916743184016986904119054656790945888783569018521671936466685036298114602545668925519532283981036807803533218185521689910018671827069611964526036674609468305379449465872746227912174524006831992651902162656086665198844254701158494315481328781186375955899812482575334989598033530799913748323372327931661918613539189233367064911091301891608904117845097910397484973035693106655065464200362065963735805438786430477610896064409543594107998158031799581716532625675837491797724247024559021851259080745259085770540475570604765375825807918903641585756370743525600930912770759562700943026278867581198014925205194694649233038944346452427128828491036710699881313012708172755881667313359804589371724940592760991798089103934601140160695000179777113647944402012205933987513878234128494653673458939146364226396691782723179476204325328799972749178299829069491322957613617314552862221296419744641999960938297049091115487207108241118689424729732438779868927120431112378836603130043231640922504869107822946799461890838172344949912012005125531567493930598254505698526822792585260733286944913959879388081734126509068895999902048306637634229581388305382477410601657938115791189928078827431336780865814765000929437251907572871342490427551303034474674571857750633545127699862844868135238313418875151398407793767113137040979209674342220539378749948835149118918545146781433814930226747946962295775614392570774098141551948457640522336505093871826949501453042375000338327000101315429390566190792875018689519290750192428375310863199986327909385152470010689211867139917283514502021162749885691254444066856252528898482100157033638076015424384618599117151317980871270459619746391278761118180975548018013007010875750683093541733105611265447234399529019762000324999453883743533689974742046102290051387869055700110802514855512802028322965131344287509330981021986689929632524489357066168845150302965412826195963216129449241791125980375301704754708591904584907159582209892572588165907792170001569783772416949323722201444910730513862033153258398330338999193072549996523880244205046922865707722365152537234209629569804309095067283750562066341292261060731668795409023066765915058358328293318508926795793198765983278252029025046484390275958897218493586105937139049142701334156545217612702292495013814985555567380340133209778556518570557365578016373310167591870627427640537151990807795322831615121161398167976391859324713872977803009089414092293153270771711954303568182731071704808660922793907778957844124210477886900012293166614462187979492923595254986410503844082205338498050624253569980721880851710283296973690725503831686858470855365342289864230420524479589179825098448997756992514230976593371832251498790388086861777166472699961400757238287630373631648014806868019596553942791227300967571185649139547547864369513997340100110073612573624932037465457841322204671229660817603707518362081242493427792222433038629367835965822847467552823860517588970625751026085566322921821055430494403859127941608863034467123599209097564051029781892584906084374221890033275097814621871369553171473567956738857913890793379215973665127649915595339775755211705112883606849881105030169439171811343479129011731494036437893538103883902264010434131265134299728947275749184496560165207500909586146067549196357151854385685127858738088316509701992563910037789305704900412584868433741603334606272194887834514612804957761431562901156487447665113292496639844168510646846188197284298482993294121513888013359601063477700522204985802139340808414188035175467963947362892924970575336073634462467116942902563539936102392026508617247917592239112357726119032990769046957517818709754919268561130398516237448794395278161904825426122701175865705471247035314224960229178181596385637755580466651312655635153964897287297587631321907500613145400466666954120819718079067865251091501889522054556726213168256935331597404889151736873117156017865005467335524096885950206071141928767079103905742975419888975045014796499142368168292504914463362913964148527021861576834415541378500713762934142846028746486148241525217742886145499872346905506439265107198534055487302762292963551828545149679582595914866964353193790603401221706527350137844286738222173530919085621671618038258384012519643054717821226939536530241894326317031420892477751199991672768776222212163372928995082352311247175564392953066550527027212777725568300653589851728875004938588335122284626844396368409307755481164365769871503055936386412446527367206713926522068687306936882060938969523372512479770858705519078750374779092626738297404494786360883721331705650570744623030767092497158240439253567330420214740342738281077809774917913485345754453842242741916358409381641301613814626954435661277213384559662354967123748526698511030228228071487386836161174822735878951079111182799872640003926101183241935761698784705004149294342939074445971747730048004792229448417253530840143331877879016942093357672561132883023668757620269679952525212552472130882396350902784851948326875245466878833592704086736071381782481328046065423792052318904574559158568382761260167657629505176724188691640193439574400860043447877258983370993758384451736057754186282245804611105000874820644266826982415001285874521897714759937268645550929636778480775219653116384350331705697993629277803034908428659808873635467015036416744040105655953186024782748308427728236283961178112918638126244604447493023542344158174564653401791906087419104599179520137501490311132161889290279698689461909441746262856673036100208651329021311439468418468882078944279625985536287639502193786754718570800165847440371742530159805931098891345965511398487761175832785134958184757776173873106520100279008228607144721980090294704560311927253840500441878122763884661710486824735876079432873033590648656660438613218976759453079340104942653930023858050316445664636508874173224563333520449900323417790064920205523696796661604246797707064458069068190640240989408357845949691063807175365427729091246877118799687776811601711603908051145339641422836124398640126791035780195183016045977726881219462891758472067852151805882524403890322745750664713142391099262516475086954901283807386945447491534474565235109098756400287708257865015956387794961184436292322545193229584179523248979624396046369227899722580856708975297553331806568479057774472015311796285375778385375014719332289203583970178012774532476305675953841323288857868146216784828877684325848562068247483564172446414018254723582109250472401464009550883627047823000752080947050095583007275152080748290049082149885824301143732723065686453761887979064008224113531335800225443226056416643008287105990441840840344209094651482870672410788633087905650020620603225528060889801487997379900378666460362342369818187400124205501691949375071808206880676185407826066172604009028093919652653039221831246782548145865974610860330335101609041807726706260397104650268844029552263509599826363886391393746652670671348754875104767207429804624406041854983654131020973543310410331200811458267068815597307081904305677019805448986362503228136988160002779103499140217066373384046937568018860231903317463593768719640422733780733324569128595291147002418443012772664175540122015221872738998067544179074067852941559324781252157547930730917796477923156276213887088580919602129286778226859273440077291676518350503422729200992492956353590480380858172271077608974552299993056976146650571219772111199910513745498137703521360445141097804831287154651131072875133627397921503719440417272633222820659469130008532459729408597528687404906180555813744648052483277061421707470055845027151371855573805953108940161880963006882049754233632062516145229979063667650358746315704695156554073433575447047567221070169290736157965737808648612481790344740179173085540030122799502362090637495236458070790967988540933531104600445455098653854014749746652347056881852981530877067419201397692456073941962661700309601913961080498083728519735718261770464451325108747171981616355067303244436722238419567230940351197956537809482675423808100722591370108984914618565541432150494326985398615621215745977265510767684739481291827588534774030635473743547158230230489922206121515042474313071123797525809559579611839675601814777983221293889215249492895354736369672158748544683464783400839361065688122362859834417708266024662855650318774883181443662466334433808676580804572183010194861835629986460508308007699474429410153332523053256411260740635933597769963435710130418083312568283656761524074385279822259170660340652028105741751947394816288945380614739621240719480192208333138811055601119840691391122578983353463350808104156781907812729915873751320749620196322114842279729678277270405893600252633205345796582448079073005071725213588201281973711441367570781156422093891113068843322277260595572103865571482665463516353252634313155116595661215565683035835122178444269293583075903982317739661896423823976455517390703306157588493237197077156613575919210216609987069738063457361637618172503016067592773878862094444482443856082304795493572468536908061713049748904495862877407056818351878477234912000618936828947228935153973464488300338189904413702096393137752998872791993226583012116487616479514149171070620604667155246346463621853401398698652337963454291142912074830386551551213963281660684358650997473789102459888655656269749512806628447285404756046442180348427758859849965962874044362013260791041685305757440807678458307700333122095188852258287274933038119477438982590419289852477054567274464666964644573267963857261034318732063904678369309072446096945179065442457901215529252024171186811227166333281094586288131052192042096010983382620445456308468143255056229338768518048902867047840192869583609652023849376396841363179985921194223340887986815684764367724852401527957600851253562640056854325783994133789553688689550255773598340425620545026493877088675415056942964795486344089593986418925482772161396703479933332917460839852043569529313751282523640201753681415525034501419073301441673391333598010720751226229003613297219892409609200567814210664568709400231941819239071064916020520046499746402418119613855133502071865500776889094998835969051286747672114938558272036964800868952252426113515628302779152914457472749212862458058773013523871368796947604353479018048767684090101006417258750335373298943541071056472143911331810483196217499128173745229976758522214806636376094117742434676926844346647633745160429093133276455149073415045169119877268232715091876263823699082697444399730358323775323208790129756672000455285755203046904146106087355493378295335007884384539658918758859477821847850508487461708401954208586143244182068514954343294535043188212305184891570715228949363370854834701110202419395330573492521218262260957776000156217618541826479700386296662010670391196715050654262569668535398863262264077426106754381999807558375782872202829401098338085037555600160871338980699435615538632671191179166765871790614469489155243584060333655478309287846269471741648940626467683938977413006440274097403896027895961736256324620845001031762197299803915149216316859905620793955321995693881326733967988168359880742030885601937070653695615395594730513387530519245676116571350150864169055740338559387824077937086683960229709138478163195818130624729549934289309028706146575385348189494975014015851276861765908572948551948291387136891922982117877625530911117258620407015947659074427939380187359841530981701089376400845499589057522820124276012650149506590648738134512626525642520707783892103797028821466097357124163465489900194965964233923031054014648019729112867737372831200174823082611729879129555901735059992212481897884440239261933095334211867740465724527243668849423329220647117003016189744104527245068420043201071388678709991806054404973952696227560432982357243255532905914343478410723757858969265000209941916330233153868529066763357940676962985534668456460950187967505299529855042521554234958894106690393394551570867158895216295449332840053591583678574905397969099522066006777259437960624243904055380495951563884367938529097807410964375341275350561712240449775431545105263334655953836942255968349618812510779282630352591916052000585166815630924031669742323805532959299151521291342693254579945624331136228003493274333599492743906188079404759413935731108372936733896993485514148669153603349057282955949729174821987361894136190396528592005741669410416839673320215486488374230215892202785081175914744903227568823609595286746993777685293693254721280944511448359523500479678155957161320543023948460964050400573393531897115646338600663330124583804646197275920083997629528439351008242780886353431317248306928516539834835460430627020496629300020852705262523177853169879265000224170729323850594001208706668269053024984016024165967117760946780044644535235672474309978385623989379867357605279173443344844877924881725445909308802500060629687018562207574433045556644507474389272848472069986585749563152881356949123457898133483661353586940760403787374140763850858613636503938398978297204787765597973340243216838288804265769877544081417407433940071895549186972348734718249830886370970583821508473902830781482357287571542339530665082511205064684516534258304002890986705882456603755667325847930810643937746975002390440426058228914701378185995496527410081555299133421632299561297904820972659247044644493491183763410089037111771160346423061563795328986456201705879698706644649401110584792096281747145788495867218530062243104217921069506232820825531701945235907317608294675876312514057693129249828586512408487482658314505159075634652917875153832354606580922252557256970451650634531666778298315413423263446507173261151324986420084702896645213348407668040747071256946285272184778885381855002493133133677486018025762633438796759797903047841711919429346898410962364151481096695422855110196919675734284043334481304373110327414480951553669967617930497379953408612641444903298349563891054269772907821146203988707609515139984027195116664882367547241215318837131715089669470320608705795743478497828388273477225876601030342529635559916239642902472654205887897358988102160890479607595662526944115931925208578095072370699232165716246695338666410059759083602408037500980328180889400629311064582094332299464717989598630122404572095020663040484589091758058827756048870989905387403163151390542012388527216138572856348856912822714620573481806732721331457385979800122930100601864940230248574551525202026647621588963919974174745965580163942166830018847208467668820352240890463163888030430807512330752796045067817465888329682195403458700680849220235321894050758356209768935170707736955932528551618560746564891662928027587052057557636309561564094811917294550837439969933913954363979415982186947989495693611926684680951435442629609296314012332444380604617806220968229759603305491941832834720193381713184688753391731603013019513299723320984349861427242130659536204988320161727350006120960944670533218131848532944419889711700424593480651750107956569254600626307590737990191263038939415635697814765126680688985786340899549905208734480472991733664397812824541125651059441155513346453844487997464538023081223633412714778672965328400868501927993676922724964505643883711943154597994522244392090539345459441687472753190988012616061738499518151223887866973411812265243021665327787346201258292186437569440419457749621390510688827135780616498534492782785957139858337006158694102885523735730258754380490122276344310657124294799661689345734489356704026797908407112284369717539804975456807549435137182690943975581934887790888694668138536924040914861565413809486779613615569947395298928613573993611649097039994111484225797270310728231522853143749101686282652041923592410633053088116964680115721415147783174592199202491620332167743373598842122078736839675651481721301204872167585992035140350974811761593483298973561091925192078741528223077847773542215874981311124307748785981157563706629302142355725406419812800755532410417784770014070197732427237790087513480473489836540632758361296484784307324492797678991748275287143589510707017488492790065607018038866398640741028481686484053105050101808758506119676999241508829717109608280324977645976526725426666723918479564364715941568399064054123382979909014961125395165900832084630459054554392684012945317924716044424284841717795937968531775529864456516711508969541861839991511562012537927343585857856951030149986446618949939930009527966662380770290427156725971247395474855344488497013236521176257554371641132072203930981314015414913454999345860380088090301089109888728130523380982719005307791891123020903973798278641788502309568946017544495903176997308908316662776839593840280421036341549685957883016089353024287763379086825273819728454498296538512010715871311040308851464793630883701554003745558744296150434218392658545360707907324035563777666130697231265543304399662797702069852162441398457695486254640946172850629302322668233679563864731723735169344040620243959951526282705841673934730368074444147424207434974848391633083453113306167414637519648787334572249880921531755046358844826469309168922329455215410050942481748933234328789502093136086388879721222645493645736266405863559484945952164807765261852095891440778499854830393784785786957872292786901547764967108289380782094881879173931986192481138016926574365620928264555351943370187701080010666959629245757598799864947567933008405660356994243708582664356964526227171360040368674028992221612497117064587795844832981602107034553580175293085120786471408368295524543162125597374076598055750584811113915192758993212060286338174772885753749424623457624756541382781228032126327598155154717872676536798530186193873994438803924340746378328925887331819867121976448920445955014270354706260516147177878860073374885505949964820844416134515200377148814680552467816179349546607702111036113032100475719274543749974452553038626674273801826085610703165449031477030989033967275417366610792854079912183606069826533000751248752060230062921424600387395803051640350227235050059276271934864011649197036516195427419821412980872321187114009840184136967995460319743216523889779600662350576545573082553161514325298767856854945905246223335271680046591586939759990564910765376720270799315999661041571562930007605119092621265203253212680631569307140997075757583555286964000556592510381781633511763317937599475954448769839248974441389199455116662017924763434583234741427982029874200923454104439247015213306056338464152812111436512623794324779045324981155862451040964349897982938530629289422055308973428567835098316639538276017109033638607130733339664770877213685002926532676697841156483963678185381608349113940023079845570564085028004747083957137649808648044941832874400048722230583048990956628911243464252499686019029357236645279659104142345359542120896141893918126115312131825704565648971689652798861783382732932789305053470030330913407856515801059606471210700485555193814686940563157286883413115192818212698117092036186063510149768827853543205849190835383620690958659828149977043202171529250429691479075056821903695552387671587113541249323331931570023475316719181102124294135372237846289373159601087253623475269437077897726145339783364968448531721764529342619713604048232057929649072682801543643280935950073857563299148257164824333235130561785540397197724793945198188163348550858572456351301483765956789908374163806232964166896997017999022969866382689797669708321499023100099619791195652335316480966559499423780180635666686993580284880881295483104085549446412211403475544028607123287663708093412753978863613607484976579261189192205386210499870945072105109139347149729221623862582849788837679075692549235919314089879375463848524690467519001881427347252184063712818101227257350053896934724865883446617225475186131077160675093900896463977516478272892008151105318717500169031093752865114038861624871430858539256560820125280820806653607686679254251533336990976915181637218431060517976975491865067980394062950285925909596272475366845415196183933092560040437809604508930844285447985394825523993868219180298156715180269625559447709854495878358669193699716074651576422224792616813209560440390857337849383522459783101850465575613579609884831824116219016824074703177846038686067517845572259392954976391034076767037231086983911021033476793826468129164173893344820541942517205806244031195565611112090081462361399087516687200184344830028428740521007084889983930724049740495546385097901116590951279318698402540700331716261127881322209117002405420514044570336988728685001780494057219793663405656394487628862761251120433512505599805934862709991836305681814698205661634911783932988663912697296287759530064026837643152266468441409850338013825498173763959963816140140820600822861885492919346645517890634473142461748568024469443936717149014603550081308191142193216673834965107038528851321098922082682583553980882555841671246666816689858269630910881173835644221270057754646059852875708456741002413452695907285788742303430852167019110023364923732006377495266245480406152463263736545234528506089622290817597232162512714385302311451872876978035935138962065795781276015230425459254285138295233041115474898453471099882695349483384781254948172313063093856224743875083709691589378411754568979405294913094930110006336891244386049070896129068810049735159886244557972495287908991548617073131646359349050085915119949885310788776323322792812420893375150558212985649305707721502420807120949720431467624424154417421045670610939058652956216318667877961327063385909901335508400861024598554843847440356165715374635115628518426051930939206838148105212516223930310293809417750065148171849796344818493285787849722955921056375027704160711063247941086722226011182913764308467533818940500396315009396039128175261667331574309397694450897688160839917376654002861481831796185773466246515336225858677619117251733615131365875865387079767886258189355516510757339569836895975831799411313452515691249733498083083974077091063759844777746684786960462261981687382654704936413060070002113307286548970021468066992610755846813992028730347868036068148456934614666332067651698822856360363574570354922279145763555386637296726173419715838190630041862089366319387054627049459017783888689806664538184429527071637077806438467537492408374126474699617518828492641718692788099443949363665999514437108004241007751784517319023099691519298781219485925599795709664889668181374394275992494132072989663488142803057832353339298779504423046286996921255683509128790657388462542162151316368549693954936912382850221303547334708559202956939992279071533874679530906200697811199594220914904815842127308123002858159811984757930498983279809866048307933433768208833693260326698446512986489002207479618751906198860660724643358425765949697616864435824301216691561519147482334937427353273863636874205965077714564568760763439975486947772434917048369179774508989734659023694767115725695220116725756178799942377444440430387006593521723710283944103110398690507451645178388846278690408788346811835847488927926863025757279043959407876903133943490317569371215413583137564968143960515875838967255791202230466434411491234824041708423881903645518703459833676493931826717085602205374541205188202903226120219426115117775226310975593874722438885312771547371150680287780601502518459942547506334276059164001704117893575470513845713386693400049005710630002381385499526456815728416590155799988614584209999901129770774428511986893611302804251584060633993167433346586634129219373476241113368106512978634012068316878776240965162298151441761510960065470803807398694325160392294467334003962986054242679397990236993705196808725450696659634192872222527495749041065806099426893508957064117258272733194100366687254551747344891256365318088615835882931684991438871402185692515531975909519141552083879937198320919936358358939277955086517162481441794131592639808491464098807703044361634224367274380763829644083745158144445645978554448198438041930191775113055946533865964273154142861171316005381080178326392949074651340542844026581684830121117371971354289441934958369771772254759915042744288753271441230841454240322744307111167824607225715881579833007832625381510152318124971603119533953068277791028595216667556856609948931246775880618776058896522294043462996826257304186283068333922879710166451597729042670036393618024728493734478008627249774549124836540412624479883863729684824442363135227929597202826769096686744909850348272394436155771801360881775466256903015104540924253831195818254019610727105141278416415747018584241145320127571463316894427500558924393458690305740674953914937556859227115875243841141149504165854615192078056902112775269534753412108098048544962894286908666468171074150144935148854572846079633713042763158459089560693523327519575945247178178900797934330362044059709789074625079723199350457448834680388796523921818208048163065021537042340083329608458352423245313323342835138249450053455631105424875476957693559494864353378795305777946268427617145019884460179448794727935396484729174716465793954773813682556146254309518521275645254784420345242130540304644630143540223680692353376567724189260513128669406326145508240258952741797485601222996513193500524133555973680509854080125771603953555635449492547828509063483239717554391766963370387434876859860395945726920541270893438752349830262077047709965501731868873768525627416283194480410354166635354041022484083492844444223834793109286938951368811265495046986692288001014336136620952347451656452528997620569051516344502403042461889022537333560892789065270338242297853743070280440421473020131081065010338241059817869783182358425711482816105364691294444756970218250777451868810981078238040385307555133646635208826602781904499479927373332144687758426209981557119742463811837042992781583526062745748083435160556956996937354589027658741375697024727248453868698383417775255835551234952269962410646234121171251323647927320790904127923190004956276296553962005384234167616887862674861244874175293301884607765740273841074874602066792792680631229159096716740988981675945266918621282230958280549058903062201648541689286639872239886871093272067790246242313200853618352326946060322668042115966607308865842406604746705460173207848653788876229573293606574056407164028648340870741552192585307187769221561717905581652119841223198595896547914175909926447849583122802499456396652380606800380356981195260623857092581678684247070721995464615548193372153410901707405837806670862277896293990124560609822922827937168115996885403755956617766435176159795828868272729333619067122063837104170086620197402815710798090904955338298026593134386859212487156664236631262359553137416227957729272271197537490395454739990834975354719721559722495638933907556089198010905514773284314090931501467193821787222133025561149141165589248263308243321393672930990499440181446647673143392643157433265696077742370586044204301429507502136279982771598899151587425341608831902772240757654443298701222025610088381113179896368205802608814819742487341426771928653676481309544092736309548151660254570353968969631055625332793242223922304606659776083855883920595802843515889688489199698934349980349282992529210167716259438531400213696498506428862521990627357083017776598757603574816707089827146507085322156132756438046659679201386617663207112830761761007989262461554910312631113302675759220696932672152328667383989133142868574107110068095024076270716049382470246679666167886910904120983699309900669362560160856342586559176917450751262732575522773027814344278879953603214249530526432269760859587518743762257915062204109431592640525128696942541577609454128636451314960060617730215867304795548625107945872239994184872067181937448157711602477118096494774013193453605857478093947985206072693046134882722217272195108158043567528504110434500702041065583925025149021005811662513114705896814573689508243965653394006010798671629573826455053336000026399898078033854168785421501143308392418344271103855171405722958150243976920612581831024993729080396826533895377488485061482891646028485431975703509874210724968198708133111028024281211101114677869747136326239692456746296078762831643494344383681342834986990725442955486526026982681655569679631665290792857398316897200764407767336472268611196940470266274328363666588499579476990162391461091806590587235976941019193448845047393370136794847580624118871209020686168371366464796807184239566594548132293884440511748692767981546472312069413938765315387916370552003942333291977576431378678239217181134529442607712088683573019675016654942609421837364505334943795855638307102982816089381836387286562726591844948374434173178704120539474439111386986438985064311724952196062240370184839273661717238526172115704327752859922894792810266693619556678804058344401984550744128500633171196161150204988255056353773541898660591202989615173294164330036318563972002948321943407504077246380595630530068691935024750341169107324991779087766607750702639494828479178614971401873128046179215593098871566846401737668839794128614283954535573386379939984372488159436117161342276795447169130894703672597301400183268327570591552549865494465823801668705969173923650455721491325025566726127602515084792930449673793713759947762364251914052782683550734047363116434147268464173886336320852561552418286784366391467798122173208632543973713829465172241517146564123401295623945712950144700608376866314175719467675432128342644453913080631533192108375423838096480687211977099199361306695989843295860352708490708223332815746476592953319037027738402286148224009631735133151656966560649535319821234129440364080775012559108597160225772120691646468415350410523121058185986532859001940960573976963304255954378122205421135948576759863174973871767689067497803825325997073588382082634517618408835196550596259597625255950898034492822069434146697396011436808693307343660582892885277126038806891883285493218639810690751008536993547010913221068301480477344466860625732609352753793967699397686093246670731647283927127292263135777970985692002033532580950289594481780162249176309227481291770610653409808479245218298014216249238724914187409463047214467869271442125217511370737696072322187537978198468489190754430103338084576786453249279418356240445296610224766727592236504160060803859227924873972181964553050704064906766077788541145959095258613137654670887956588882299784061058709451955830933719211357367370322494128863935047980509250534607391430437129749775916656887269445009731064049791238187146450103872904968885271221159619053726549829940206749294007546345918982436216693497008210571857175244476818692064351772843160474619270513371409572479340245084271819512635395978955095464256958054464066070128391491643968422282624530694970200059145258801833353111366999039388810026504031517435987231487166338118747358272816599256452480658057739111873748315309011541565770338282758746054273315227767972355069519784645503668910080891035580451799706686319133882387444565514951658800285936025457302726204208355255094301828571162724503893401081094511311837962273836365221878733076203860094101664909423107612574346490004656302382674143103455913867980465495175381497022533158827182581720663079573147620094149663608763411024275578822305506463517422370480815891500316476034804158623483383445267062934021181102106630984319995799500356747255696217620398917059450692898404516020997803693013326957459295216270434158583020987467116663746619094093569283739666986264053773973672881881371787466583958440336958290340580538562563940995890223638050047473982599095790155707997567626807053512153700536625001915219299745318836452744395583087756555344365791021524644713856515443056805079520145278606647835419964097226592468116725750801873514818330920836085981510130431214726843129223946695683953900729065923668383196077230615273002454495572162552108201797619286711617649801789246164398806409661789928377292989388284026896945017821467844684592024583442393307731750855866249910850895166729778929346041150628530220777003355027616247837903766538331734374319515144389989425244321344246742205180675812597671493728020646750079925288593651415114793731927273652326938651820263036378833069174678360505683677272043839368144153444351350616883344048441709854176033713525185023677275864335559341359010537370758184749109539842422316290275828267048706718339696439420736214895986415402383948420632438276164126333570721000943069986781156492400222514631414765317415307978152457086000697578217416367623880996533188210451253781423440360745518898790961480085599884102245197985551101033268143581199398833180422086580456288055103126544041000012075133847402868119313316971495797249441051050810093231572914493343723942085180039701267120661593262686317962329737212327425997769774593125907910257876447705972787553890598056632392348657322467906563225719148766104475255986432248123273852586516779254034735673710730590885903299948790156486756891815366100353257853300473443554493572553865500985660300077251677423921588527801702704766725585716057865416440101592969237360003608259242756990435836316170737492129821046165627158402043745014772490594685323832948833047092165679125929438604083170344476613923125612336200774000989846835862842480821514295034176110545767755091324080162913033340760391955517666655247161668394745936251851039408887891703430075409811463893946515202307557353256675937833909085348042933805396881252367621693931928121984308738303996016619645061940000919558640468832718731618709296720188737819675423303080194762320653225111531791031370737811541567994074605786939622280174905359023523919693774631495602647567358730828702064837466130540141555434332017103040319100680189138607326135012254066074391903688677625964384920170134584136832856865979896826311284350719091827942711557912671140473353294752145175779943461895846670574474543352504201206440237423844002322349346172926082590407076093701823241725036406243970743490879272182795268129377165715656462329282343473051628029736118046627186274806327241485305307839293001956712968238672036254116776521272707459958479183348259897534028473738993955893536994056638465657403965321171640876687990232291253570733019045502007542831515557113256475860406633826937511558692791496009985672232187160271913953888193490624427726017216532288117646925969363233715441899076398710385276726045507673614493228919171645679053808212646319458289765757409933441513205225447692291233114632775560322956245977962063325314572181049052405984346215598172064343118010652662073371667346772829602309582321923925985344328760616054125901212986321905695601727417186093685536565521641189387974388424763251635676717886418285019542737653351380501368123679007868707319534025697004540094214041509028349154962233218230724844668918540471704055303573451846673169951202881207037260512895083475778128748732372858062311841074489705450909684211979689610423986269401176275987309448747725529340037394597023786322672811707029705992489387105560488311068437990119780447906175506021084140419151475031647501140122973580051089553319399435945435380582528633782771915286247595583690436194302212299422379324609589851297280745176586457310690709679756930181227846089320637865415006694851363914335976597425194057850784017005058803477205521124895933198359971064689501876453732241307618737725336158033547576166691212387246906906932835268964928313929946614197253090799191279398661000439754649674453207241155503801449430678759867968452984443001837212430769236359506798817446065353025488439710222839171587319988682970919352262368179599860585964043573516082494721206306987135341210348209629534966681262507067922747592223671068698774799729154120057957748899928712500876058267967364190073103886244685207603884420466404334475648359006018607610413260920020308661877225736918582601433675932307885378196603363022970467847948846371715672598773029785381682732651150885028324522065303044344453876092341084072957478136286004362838168282417042638183757633597008661575309439907855313190029527007194343995891132517566697544010479802078634394121990243579507748590715232728603820422007673309856329027231260697432452354999747719299449757818042057804287992273223592344037862049608485598994517039521001677617869751523441781513125038407546089590395921366939338493772801850137988724395681140886617273597811639455074218163509873192712872730771968176969171510597939791246734327097343533199333612753508770522808976339325743674949881663758555258175742416138993785911575029437086408965414201869050192038247139799866642033228608841626342729392910819085504120875260378861446944675622573022132974377042989693814705246039657295902938779439418064602356793877579015160743714862113365890641477234805387881300302848431419366380197749016720896746428719896987163692970592846906234455303650792501467425292813170069462865963028708241885203186277893944712828795786891643401003164632214214201328642174752164424833891931245626000329919260857066425340620103099827387671384072913174417344254724353458361020030454616655211805857751603296889313810743425856191149960861138732835358616216216137491685103931179364637994148584535286641987921224098893066113623008607079802951722028382694476469447791175020017376321451816905130891386959469105872773980261215079635748830010752033515936307564740089888455622863255108213579578989961735086792552932103685836793560716039601172718291859351926553245891209395939644114916653951647055216701198455942217063599414245656657929000970961348884219096279200974086274610633008057723490706788247721771490634554858730741317074525536380427496258390003652813110104328647579078565007338646306263113839483377990629083718136194544329350365310502902752752203376835595670187986194548497823014963497319734619059078057257350121742265469262450255151430875733689547482772173616565648040461645152575388443264418512220004635988859713505019798661158813674197406349204512836833709894967514715528503993969466070868471976970946572311013447701252302602063655042997153804761929978889947836208712779635075740889195060764365638520960978138527826586697989734244366272799090556289117219287787698156572254579611481663160055401056431282076344074096389325969338944572985981200912172988179636811629443886611966829586890909135989909094603867906909420619170692613912190699306885388694483584496960146803902889764549300507036529726905803747066852782679188416835836001649880260434729215805996757455383277133103437267070391270069841117653593041579674573950171256482054108929103044122843351588487626036268771430070622799800904723198821310699362404893301594210973569945810431616481111962234480139095017871436715057719303698472176998524189278799267110892205898286825805225018925356702451071075501326804811801428078472905168819400134124454840937550035620199584020931382944351321780330564669831767258402426389841431516977614153088112502855895369199885870667238748974609132159988494061632189011152251622606419653933063772138231297949816616065499449165292234198418687904527592216691640590140380801819621942694540898612321870405356304234041249168594756818526510334213935471777468987596502868733240922675910562509226049841311563027475549899809515925799176376303840143264170627243401947723599637770933334294373938534608709644995823728301096326756423306000231582139875019067514199556630595338970622785326847743611795717859199824121625364447434859262739357543283826605692147394096131277025973965367137597150865513363672718352072943931170705839062514866563050283696068599801390174434480377968043511206896843927898486020936933058189559969994554409318752128840905153536315070195218466040924455052354170546735641272403632336308214855888939757526414205581434724093568206464104542174554180929396554654664676577141869790781195897126734161589873118072380506972606595935608522114443794663584142434331769391625702075034207043000913591309826555970216112357620046470145119360321592740314783417229310481938656198501770395219042028182104337170652251032838197278676207657861469743848233518298286522529380865680090166830177077793970771809885858010664932509552899829873093854277669754763315935867436198053871210679701233380998584252774618677801653576328670967704329282188466547350562401622275441391368246723798430711390676414969908404597815836915289127784648350627948392430059253890792155469364408246682931947141800808260782553437018111578958448354703927155761289420280042254881868631760139695205969837791916377218673530044145145902116437354418420948258220423807664257250847119518042058086873115049183670600250880285942971963589255733926400905084556579169417493688851927662419690087673633564319788988192153810720714397833494344163658306911531601593845548796499553652212661733531245106279126107277424376550886749130513704854359382003009085265207536242185014704480788228037342248187402073503512581232843339235645661660819369974835308239003363861166488784012911841484184335996885974404031835768239488880817421828573163890502283275866038766609436759341232581579377156790070370149953475556886387890832785528234187189592763792036371237530513937996797938050582022079818342527380964682394338045110680501355141584310932896296757582326988797234767038085370539359970045423940663564374659046374880797748992594880798303598869526227408387032467790594860227833460954535694997308355094959011133721264425110285538853389509516933314415037228544975084060436727085650576451698572139236678445280012635976624884820581839575241783262727755358913900709250173448765997957593542330690105866798175879395548994535667618045957579039136304904772463803417880520200571796550777231089079059604394109433039307269949940689571393837662655978922558614956912453580543973751059059097130823138041178100527833126356194276716714792418996821069247083844390361109347247463302896021199887504995431406137098632588113928158515321656758559051745624572427760291929424895482172557068969409840994491181756334237992880101144051276199687500965384849336365608242397208476728459499866006241376920444512060282834885311687588838706120467412655848255172120918675881800467759045182433663078188869607211439653711649850878552113083434120325232686737598888086419389000678891090905291966488154237795203779601064839476267798260113294172429746595398969485810400883673306424373569867153638166308783318749400426541996547846095371565327688724767572993540957905884686459881141509475451391213017831687670133165687344645431776711040981754077595752113443708716001540608907591636240943849522814065195238694263577239596012975752465837318896675024472516256130328782547872412874697317431167209891510191640078634256497604929841838302695650690361155337195630727434709876984353665452704442292909551365076027693469435570935712483427179604952569303613608523812357429648142088535753814024627703090970580933117346682072967836408813162893647657387606507164383064732086054663158061629387052254387678829770114774745406972969999950008940710004015359027019039660811172334881320641672176360800646166588339542293922084837245294103864000696824780815506481908939249990886119725135980895720386527904310777529419770675629809515953903454920597592178083619280700739516179907212972542067114212988486512738519479321512727036054347176107206783070057126707041295953347573234030982660505678205811016589045527144170242612029976116660876027625156764366246328613785816545787950447876209821331863989523343893530315611843349859118189967953642457314109559008533488870142337005393457179664624445313779275228457032479359162970155507173285510068160799332126361232318867345325596444331282657154455550050985598092538711120982983718837288154270575426393332978450817747849235262136882332448800253180348303826928484127681523874576873965966861986513099955946162512302479278069208703568293277074950680081827090438809232400659144681500104357559333571492607939650580539654212727702991525336525426356556520124281311093069432329935106246336711124904367505459471084747315893660029721056485730279628249217983820001518201275910971142564592968648529121930575038070548510079833585799998792253159819549348112488317186376569747042300317977201201140494219002387932990203149919522385926689476993823354908311900180518441816007417936238198271928867188666775387825721111836657657305740619647487014941076534845229172249889542531184431199553629704098062024155092728219683401286955477969149420265322661026828728440277620610971228303766858685983103591935956338663117515324150598351076235005991856976516596303742834104831167056888220410713622442720211990707136699762944607238099693300091473046801376453455346480532155000518678059838719287126056082632066603873350754615871879593872498019285079181166078758410318007774536327887613032790893578330454027458116313103489526982993998276748878469562811729765293157494759531152705001289863281800100234934171969074370721546861781818743354406042262589386972564400906164136181595537868037845941554138081722841572354882431936181980165263688070117500386672778029751141657972317134115767268870019949063843088740919133672341897318468397021025243000870007193891509010817232118915726443313980276429914433406176200660705551855051690198668754228384456018319568747612836473746182632237147309115147760384952945475455688825698400513893208858967466018355214580929726915308101004231479630229185464748899327772705245788329176186070348939273237095778353368803208252136988148202592341364899977949463507730421623241090796161907016613892170343915382390574078931324543063183408928845146770866956191828243573513945147489841356647459012485535803988791833856933276518434270584544979870056941528890493742709941405980893128359000308764938686770150472694992212303535487318647978095027998876968700677654939266094337334516927208848843772391791390818911716777838531041077072587066704721008345778478911491014424432519353310365992831446467092489628842341229484614770241366487801421024221302517900148978345335167463506151820847530032689856997669673390340842579535172765747468437954544208298663037500059388434941264539199705912709804536880191581034095885657552288422004185680474921632872057162387521045431648468669200239481818351446882639679219343953028480010946153728266257268927463028548899775831424477939831398388253192798607150810835605772226583236294049078058156099677332070353912478178401551162251635989132806099784852933069538452438817605945030009112039097282034504783006744055443636130391286279969743935350361276016582217655630222616911326032573661458137478939135531697289033755183827056920501185401161956288534032481610041922781227557788587230465410136497991646819868685883365233874360189474301825393291115786771065975026581398386793068709922048715120618540566102323429991837016749068635671081044886629103548565353872919412257656018096934320008937328858921235588012466652143039140878189730881563572987168627559775849754231075611722514411433027689353699550662322134404412056856872753799740354482227490230285468710848057332304054978012242033368504849506963217905390578065540181009734071576319911439778352828265261785815914106365869442371286614896168228337875954011245513226749883638941649517513597334962386658296168373399573559124434191630188818804391319505760304564266215169722592133224823946027462162681747214723943336287131862865360627388389029587945309075570974263928263824819558294393808141094889759394278534370140909471779900297303511811960342294528747568671926643699854057522558392121342934314658656576548582285700147016062053802763881572636095116888452971085911246396365148744333427031102578971968463274447899006819308287735753186420867251594622578898538638182186669377174327369938628461012983796896906471727051823650435889394922708895443140565427790692854587418034379040190451445471486576627524130857969852258201999091467347979894506063001598613066019292600526839800105189307691516206282638258888092644482651737489570818700760513871646050137225681345931792241469101056210297999252276048045829571119372350148139081153509060297563683235066394626102698477275792384116837931001930371986652825403654597506946258965039873788294130083313160427269136840232747114700044056157844686783993702608927151469598135475711950350187999710929366535026692887249295146923857853682079124738630117087658086224853293872935313878202735171988333799034319289316193773365406800664778693448595991375892062659367459920791790496606019251082124697906396248416837335674398349593636220246836352634290776666662984306503403688420536483994577033462987227721936372550418492448491381244846937077671623589657496704327032382755517533060093312382134950470289725948474191022025020586625174505138043003364864871661651606570316761239745194049933624739107240576685994624209647663153730554772063358931295691506265249347229391186571432264705352402821808183758245835287272472738625363716638567239707891825605696833077080773491401491388384011950586474228056342938587323487537944286431289629245120018201891959251785490568706534314439277562352403507623166009349858267640154107541941613478229285799382610180864527535295214561396005949853431100742221253418606800719364321470188414209320266014595903921922144199517995056912851693050455701948161933159228384770985620691025180744710508211914032505059799702096434645758303824052639966279709636201125852333018694498923512360063896557180526193068279466843919397010067823353797224868455330571364686372232242933535022952233736190014875963640072349306015732069462953350852010494147873130798667257973229371466895804021438488145146410012695759898141611328588560383374401592288844502693502616878081856120708469519618061002603416934181111185657590130144328302185704000628130330720450999217177762512825961676418314496082451230581186119446816208888240310477225901683555763537615468125597509386407573779579104486238913925484877097604036208774832243757306010670322631765651071825415651844569492570346903478470340857529102591277136728988159585128202494085213820376867199024356488059218880685571044911050712972710326608613786884580704135892215228446811267171225826342795886513751387956727478641336910313496464354081893947544073270166106783756265997451135621678270881752555744145690778216732360965582895077170513888773413835359934016700603744669812206928459381157826274697232006978829621544661293117793947797898632869414369633258976324407024880137329769325535825112706445896940112485955345523150680017374845432658302146588095341876070550501047654847289473805702488946724994309825099529013986168206750060861685375141853091106214724709193507012703620830255894262078805028405125091223513085227173360031799410048067903123907982990889343403208337511830956508366956475539831187495189018658192401423085796946791934569321027200256816033742036679390315859669954283928637540377939603146603648263359111263176803900461788897587508170696632443561777552536589958683279091815493348949696554089718896653897698642600075568926847005698284529064699379350407392882365224325417792697649026033089271597807549168516572885002467578714564896053024253263624044483028172188659677669346607305365358137120589106881835175257066075155796585851363543626213264190939492931679773976294186736602649512592620600829601619253490267246232918514118664161570922755316504240672348904005881133032256956843179512849909980811126392465522095663375188720324435254978610871592126525639621849686546036356291068140829568038999471539725879090276735746555733558930798729006703732580069296393635058415668060225111842207872040976668657740745380368297645059072970146031137924947921363438142887619727895478101576282414485657470863515925689693156006305472257476933883423817419380628583615004486168960999953506822040665891598948219112264818598301996129576639481634306912414318244150490279130017778428896041930297223765505721791136307227897546730978628097627879403990239462087664884613308588109913169923254556014958511060061178207409853346346151431409213659875604518176761902229898282359226589967203652575040213004109964759206506732148620004026683921238354807308807539774180066989784133016553064083601639760776672861617414925293705137323488292257173406100891431359828401267576299067347488304346359857295553980108843181968742256524885003962529848519559610348321238824683002023252136255501835461650991599049191588710198169405470001514527337833523756892108750579376476453705590727271482913628563808593427050197970732773503193546555225105947495444431656775129430890229783309784455128571990839320000339025844860468445325381217770961877384992789314822993517563378613384305080758286754923341947928226148280705385248416329294885442589859991347012507104874160667419801588232588495224809898470917239986605159893488584267739996897796735592114803616043016437567325092413383814791627622072727368919157341531499802718443740413121518297589860681068600457239880824776704548008168338139246871279335373435704416716825144468838659522710479964177353239406705791374672689614974753265424799689437604618011394891996660413784469591874097408997970972134873654920767012016578396755048798481594456501528194510323120950195597006650680554411354380018125865021400134138283216178110042509889297028634606150811405936825580938170968943880494387612382629681149731734949817214218326419471626023976534700715249394724429899080481268412967166733323764196989313041430306929462940539318116076121959198994706476641265591027102917609082121264141653573983261063368600302721304124638670544232876572264931599331820051419613687377963959887242926128372035828610560618783366250865200167412566220064251004582837385817563190058674358556179708910804423153858732692026140835061889861435636300863337519602482651118163647282930162262121781364359014495201360128691005366504262088892672471347424535506816890258841268885248776853971402939515377865131373242549044183418818203357822019830214397199277480422872226579546596345741368531354618930358458294127614438410558982134291543386147927394100008562842863199102662373289240114435358582778148759955694862581008171345874686387543552918382180326851991944375678264052388207909501370744223701250417805848508231196962178319459265869129811161793137781602470200545939251071007414741863692996888285490595092600440690153502760132843981934981313448281567978398335593820759081749795411283106325896224139264802286645441806677763122302145928399020186445658327816464932334097562601545804367829306662806604636579391148035358234642201391413589915995747179515680400523075357547754293147360868977942849294132623033657540226421016946105170911153981616696988159342694091835318242564292410518872004754119528992911861246790877290898261181634987604930784193665156491129377376334321420454555860841551691979961446551599382511991539496124371605779106814677976850772217841778846664334338944142255673705840124126080054046791645316802631788602292622763480975609579756859647766416602623942979297700711467103660001419659628534721362014170469570511742492490182568857741680628776074299239785060363582042495032658802356739015582129703612761516382056344147101948965083336074821205598213339019610866139092402211021352615089593362565166580521905375143856363952529402170786887096591888088149580030978131468031179325111975657161378323876011511933658974680433009956929121279277214637359740186840909671149469131809497193652841056271581624595892758854468503260564526908740355047261283350161967751424256625105821548805313227532268164368572074632011346079799970413550991468168945689115475588977151460265395100345924869051872620427896125644712169880814808866165728136420592624028864704624137630180306097927950358040944603434227919753222562843480738697525264064774009114907949998454935771784417931021169357611218655946111842522427460625110458497010617357929968028055171528434652635533473147966554962653516715587486123733295689468638066069687740729428215499939593812021231219219055227535887712536121421648574050531010526407794344403724421170576051324671210559537843477468408890262691549345793907830164174656676364008222902235546157518151334420630247076939965231274780931642752423422842679597771658504365893351166101884131028738170236511432917055852185166435847416493332817112428588969641378472630063560595817659984706397002477518745300888914755492915417964069495017843610932201978595155000476718960527993093025842310781196003161823543074992029976814421067166895264573636009077963469850114992971158985565063242063119226354923212706090971794710252377985489779186154787872365076672551193808830333446288546775594158337222273060280954586219941026687153033778992924020475070874242315684032907105244452070107106616420638729983694645511153600989863199956262202744133947713247840828898106100910794664405144568673488401809783249039507802245798778308387749585213561809294673309653547349349893829426506309567397951285083630398859247855213456660970521786358638905606162929188302858563512760216570639043397608032248978113656500752830313178956460044182342655337173119319267877411594635028785106267756089207357816141459910467470461478396054062869972526222764841887802809880333672014534746976688954497748521704205854704514483291168479193999642361914004133209305725364857338158568848816387979732897764088846138732546322690476216735589095443634591899778404363123499219579647397914789828971375847569526959002476276430451255291389212416797409764790435329219015579972778855627249009645084268406260572280152339026674088580491940691104156965755166994177049300823981583493307449830162051947044063810517658519262040859862014066044636891515750999795640963453215949752762001560337361731734415450014435764929213206487446168792003465832361499878176455063715103455239973470623734684780077635539317307185149010418594961759646359548081101817234906529451019236378525514992665828722055046222693699541195953178636475481602992060123306583790806088194880689493658586446998376511162195118425359770877745850356713494305151170005928138268143966306917907120448846781663588376866007535879941615669086320136469448292558983157026987747262885327110339728367444930362055106834745786982263834489771519260733097348765933513158611152431983336584829690558342795839672244595069180329228194612538759932017022413571255827215682169981998233298054695066179843950834718817840833465606853810810934600692644113058548550444153309161215677402608299491086846345388916629288457762256254622337881080396570659437204882367121413561733989811379174034223543010524708657299824442192554688529462052408993406869015968609806143187326011093206522081107956738586557585500938147480372599483352336460908138811094911817054947501470292410634501265817199861214171299114724294411909356786141951006849813183791139702705941182045921832950668652457318683381223239274060023668226912111873783332253414784251901879665143432588370836058617806817460276402148937642619077476003426335358687350457590165008567848807606699788309549061091813730784973699079656406207496412197007073354379776737872471491128937329232802613022735921403251145647774082744720428056771369196611109071341651644938016438071331073585119335088494174561909527018663009403390823234623881507597090352434255447598509566169344535938768206535533580154199671471658367042443888271608350982083562085191603102255489658210959627372248386000385436163901039491578522511944573956884475947426456817549355609456913929605247938450910186865447947804335564816032540784429752303710676065877405831027534750013689134210513967659557055015231188812957248436284417162878352101652601444478511370621404626428401770813536615408102615655123131451462390497030669813568426307890606457198348740467346278937716277853297603398753373890873885271930492543510356381820080839914826881740137191961652593019688823865380738994840825358603880809294819360009589953115140179642702160068302144799693154505781052606607062228970788377348130616795639259643970938184168186167074437929792594636589204697394845373079850337944050323927576826433527815380672373969069684161186801049860010664280763944609508895062053128795054998607346678385563741492357552059991708553697830484538893045438716260734562520281389916963127205022787937578952355080109915535557867128422157470518865826391388896220031207010433518072626566890810160514667873076220842506217302060219274772982544895197172092638888068851415571798665091819333232265554603195941676752730332891808665035272503450244948697499242394235252118176375248765367521226558912482950802423839371003463960369791798281632093429790173873200482964907803365224085425167049756559906486704501475235187061893486347500885495425651122570777248229540499742559383259928761864307336399295719368853807471313105565143856293256712421703408938577382153840962078154396824725876025046764431570651652605442643704304118623614047290011669298471334515058621278343714736866571936751378671681238408660907274786837027298786799048401904431524899340988134038744738004847217125353387497340346748634774241784108072699497559210665727982098356541371081025255746119740605286281772381996502431485184168748691133152760657594479690146248244408652360225678932655187888751841744240702769159772799057119249624105618202320522769845277969502698751593148220276649050118233834296260925470784071480558426340470505070306568960969741520389972228789412187691633956876905322003014196963051034215240342449463372102678910675590110830534408694249748544297950328974457264814907980896986000752641154073542199363867874134940750786424308836323133868076419866055097417018506634354269411707072563464098298807161428731956300500561486611824605623364846188762630567625964531671714029308175787173936283232044031716251736359993247709968566471010594884631015566475529686529897677843317660178370298099032777083653092481254312194082198866907572112836609502371053330764825700938701448196378893096533176910823226990564696237959925686543313123786354840214187676488202393542810944259597219045497906333382639132763061306424428269159802196100273006232390279175859661269796655071713991430859549315414963911236244245092816344924281475138785351205821153077192987844734040218828072074317154447818770731150954899895050329893080803138807916077563315355776012802713689907595130862361918963813596705057573300850538830617122772015223008645473593344412169752474254639283430062221795896356635095658601638317026318480108279056964599311534573774254965765469154616490326398998199815075652160116031681843539627322375317121895283755770057639625718619541734514507809621030552194042629511140703655215762289116746903022473898711685820767538393079159355673893885109291321667013685888799965136289249864989940324827651476824949315126644986348458862383736779783663180204767389811424375556173416710842256638413903493329831236031912259876638102567467155777391658414360180169623382120780910195697547004869922920866364855694528946597756103491630742440417516562650497949358476199512839242625930471122435851835638099990509171253683341881845714162791015289228964588284371330151941628544650738130849140601990982235505521467402319423324877336132256415965926241260151711874709576487737318497346167485281926249441904479265665726924041630875647672588847540859497080249667928786083726250870090103615199749212492196215140832735377080016007581660685063911674342635845758867323431782001489698819124347922090957847447951621030458288590526859071279059582094703866912134430332240352086455474296408607214346598185267276228907258505966753460239915023539332285709363973292403999666626076343639565393548338016266576970195169725169365959158901660534866837145477685117244118692806791611857684540373530959844397148155455291897616635024226281984273396092016578985861118800011831876542870999974665953764786813012903570405632302092086819157043889927451855016293047427442691266787602293341770051789828401976008663874208526904191601016479136016696345301520747065155971977133798880278526866388807702704149387966169442053415677737821093850650385619365111084004744931098526027004945756967258673965630017015777878812359524821843870834903753535756451490104958307362689434658232436265203163919933032462777478008591060556275168203557156347510638558467402567776274057946754359808068419420609010667281646848340907540868002024862087654387674620156131251880578385887535775882703621371299528155264738517172658882183203575390016384307603071491658081646347474218454039014004691562855437862985756361343516260422774324157722861146595669158102021860980661975003551181735204626401097674814582338087002919067751090593706673464584625382799082351928936495753374386254836947747967593098737339592492930277854222300851832556932938226737559702281781210428445007474350140278193349244590095293170082766599332315945442517260374080056417173095214203602950861413722121705697400875742908249372288861344677802939173235968938917534323571799179616809861267837810194705976356847974983760425387499083286381829721478371340037674445247953784113944189701427272552542989774006928520703595989199565021899324917738468251887531776257049066553539969945656900937095915744360979308635645277827568480160121984451913114628942125542894632646571772937936897104178915443624057924758602431416153267564570019935780573572637341321530991028942519521370361703010527947478369346271525228263667855590915289554106954085649779436783067348325590447293066857782599707732001895305024349844587863879538017670374098944335843449759750875447553084110125061396812837017029910140993983355999866578097557358302215636618660858885427411169179416989493635052567737033803953875784128633491480608083201612670792040737811906787538462875323462067876541544361479279853166818034038299560933785069277113887073661410455851100091229755014649028099145694517688774188805303740098289053562200281277197057632671361033230311320516622992461469575810708175542338201197255172567447655800916451836038182600236477986957784558581202543598122559952549897740532560173081897428207946875171090312363752842684521345050591875725591590077147281853774762153031627196087886399444110026363438362097043341440404845535726631067353229844952135822906101846952062103657089914389899908873379289900005314766694668167939629252518839116780126934370240340796956112501667514001540585609023240859296720315143903802885362974352830810834332742899012991841051208276446533173500070753364626648407487800437936290239117960429996947826093515262117090224079938746822452251901072579444810186085911632484980623296865280431124555086102047009294274121760754030488806486691549679736575551053886057317445019696720457433772792026888637411660107324421802805327047677740481863829208779069601142687979029382887251218538292594731081512544305150597445510327134619248952174502529004888995822976740116402986569798948070491000529088238109396342033963126324231012928075644738228653658578761434927453711041126415862090592077981005569793425214542871027935124940563597244975187380581967316099693432861755418382123036310513239925260509733650618192598518531796839643445456558403104169022981990563119175998300989230684230886967617694935814554383134650490235614439707946389437635745054193945143123176364919048126958530228628462298368012800313010667787971879096910714300312145384720648779809096261067343992101731498331844958582375806911520809719817896423168704375959700519653077190805988141756186736642438078444616781728309975810029925928624043311517385163653019218459318908952473279281123378875213887892362915480397628504788195915180704821901013639314695444696773186759072768369466127075504710053703042298560121690410034250020530127286688122768583175822334359431386059968945137386256399592062662881572444385964020477439426147032903088398497976793140518723776001529691057937786512724199103423366555214025023212307288782068140733850019147953343742289965066208644998807900490476796569575670897833115672951899567000069993119201974123162673173219269464929810639519433325282934349605944004355089647712995455074876811455334815383463909567104856000994325560942527148029510274814682061345165377962526241725365065429922144140273613123382944667822078485772054782778543472963328360703142226357478658644332695714289342920211566440074928818313778685575489547022612455840874563548571431405805031076933693541126065990793610894642043223655350709373145682395726886662041001662513391052051615678293792302323477669101345747473029191233432773610094650404348268451978485502458701296291108967170592161659000734236654849945190124721114837097961638469407063753911898371531425696023641655478310647049594375088879264857527445362455035298412846206871169396183495144862163001724447786976132758261110483391491690767184511421469114565208641653742786299662965361612113899551443885659579657263822491369869341010429695712500140284415124795512142349487194567019094208716522696826804828979726600756501847149937043927556080302382172194831605830515899702453787268221951129261181909588814580910678168901581493347237934572586504133831291302323429723693900726918601022487465348197546510327198682507514560140765577562036051429029484431697400150347810165014031308742574559098109022537197501808835603623950085705308144058541289590826155137810869404077671493877126978056114523879158697843351414058323097017157875761519202552760715059702867591571463056357569865228339909748988444189881010158063091623809958604493834703211370170045813875134698268401828095019019418234665557367520838980191636959219305126012732886839962391499240776595149456493098490122395210937556101659332172423312194119777860118479029250283042231855867037132664592919038319506034487856472670063117433705300149662862754507888230573235187205077249577334491530492410253650406474990654550193205422949782601267544362449160343842569745197176605476826522147496279579393491025029982120931221133797080090039751032920396835637642263699121159410330941367333078288447545511986453668603048874700228864509390338707135117980987283447372433993531585639923066764657690414448564098829238711529545762475524316052523800404371682624684227696742346167253223466225258127713290040629087755647482363123027271331970414671544473215191556548744395345440388699769436092266196814257740415319653524439163551722924298768882728773148223514628266871076181167564218897278107649571531131617055252145025445638386274525887522660404012703468986957337227303660180419657497974124897312509261753610710581448138781455690685208041635852739182053164304184045118999529042623394083677494842055635623953350162751105995938344692719716209521625469216665198320658386646446665006794703358583491816844150531945931195060957104397614702176309576748240082428071843607954390757455322525280635456029712048986375911754382614212502536204194569136674720183058322486230058172219214364620527078931920297674800632082530535069650098323246060397911469405053253153767424398297670649065812710122356187474872852432437732399706571148456653386574712416374347731483113185061424411545383571442326744242800407011763260355037197239332044266620195291138013784419643034772883806427629570213501858965868456131700575313206914162401556710476386515658056678960090640194478080966442624173383945961360354158192573954295687019679111226357114529559377235903048256328886665777967734202597045226358150296587321238177695311754788036338056877651205358013759438860923324505935979497898633456722388187472480804324825473160250203562552147829998428837118216020812478560105792312168804601301200990746570261874541495221811537686759716982986548360642195176029218392962580999845847126223788955992968872727273258665031331910044776261964209065393467811463894405016048917166860280033156040447762830627397067072704421078989676144927737938303183056009760158599694245321137303699633771900562756721061678166130193619138952723831202893325986584590724901438887452589060735610255125890074283866809322149247314451861562251266289836372989659265966249148340491704730388222030685330304082219207210456230380197653244071769611172871951979798036352285288144674651930583676998566077290146206008573762697045078670639221796735587989816047617656240285468996050647848193988347371604829618725722423721846414899812634210436368861425762828215597628304881671109497838018036331499370404389093653465712328390939220431088275668208005344956872928727738933746092782407766842787093101277098542292177467229738657540868012267285955529454040307146731865843222564019853735980975698147448665001338001254648323221992637453305567609291030934730600085831362386508930229384139622438782852055515733566476833504509960984679475414523845515431321697895056835767684349874694768908079109624026859328730156138842619340932646539885811021586054955472841831780386659630635980335651362668532727517839889454145950267124247865327877638519321983125192482160257999065119904360879197306077289548511396591846502325031995779772891406129920122090117604048453347779130426112439801118293554556458470693173706760456240464273924470906958168725476291701816474137519558607115426079327379954360537513169207349160025889490194785313198994457681702507863933853446227283592933184297292631880844520730723053732516225182146584173151768517920596360658920325684053877846649777671250712596424997287651410904761201936565760924834441939433944166054035097205123065107109943217760575655708926088744800018200705065883683146565756409183394599088863403549372553701753508091348984431966733482851250062552822423608294223312287582249071286095756063153113698534792348739411836216081011215990422453819637088770309959272816321406304534978834996049488459901845756002334101502956174846097044905704668662915600834130904981058836914297346024118322358569488285290207285010012790810320315365608810780886078843722299856907956175800016944595564911662938720111089138961673002851695573421259914804212496883318020871546396081246685954014056758604391727774667977461559813358487265628489027173588463843236030702943948068911825775186458740021755306964961657761092445366367833808154912006479619364907116724194152049267319450906028360865345496672088996971008277895294193347550238209702016232133242735095127019981172611902348669818460080552815098511154109662956345220599686048141092704474844604762492678088309776077225484190618592043488940739845071570075078262816191078294606214264081900748344526059852950760152547798138171733379910192776063612555538716744834890321863055788618059194435041491027771924137401755372653672931583570852170142271589392360215278887781803617867251242517979946915566806289159048068446197532450485363285676819402809593255687445583570601355340185657495946544383945538445385593557898461155553286839822948856046426665734099150915053885277694459995280861368768012925164661130750297022074247204253117003731196079950161624757953004703908772365869495925833081302793523157023768138322695089829107948197992824946199373196345708987027912514614147877888576666202388939263179344778917696003970916179573287916695154685693667933591168227816524124867266404539636346419827395411050679052140494299227716389479488312712119004804407788507404471579884428994644236937252309055045076014092292904004372315687588736727814443709054553531864634659394933589434080894896806360661580366980928789747291738404923256517862091725302067623157758733559895494334764660599525213712224991012630191490977622666580412285424004519346576975927626391504698947779921130778031328888254531908690507527714546212310286271207116544220245986394067792252199577515840951826759869567181311860493686257243472415117350325651277831453882396473368729063436037364097157882371067198485823626064727824545904526361511197117366349360246815331998538587523901310374634500510678189519429738105609542045023353406898811068552678542347993704271541415624875117734926089076625553398337735666598516477189478566328818841618273612191197275685473600320027913854299910338363017620259759015108359139731377574186915567390239391971575175072005629669891041979175987911290371489334976281143405026728916634162715980993711050005161102985123878111437783974406802305490692010647621347886915029542202218916926397144515011323281695525548037896039039800752547533961612183216696687289399394651323702913395378043690846982394640510225691139253648789543458236395857131281957414090471638293884195847674559846626008560894825623541783944140565141511512748378357429099722277755734092876690466604991064664225629683654340211295326900275718947645264943309252399623671440159465954622434920623091028508296468833712795173219438996058665892854557193438849755273676702024024395715440784493537733856185109031274431199810609502286807951691476156191357392783394717313496865794400664749879016930431329192582399864600224880491773287892636153258366659570963033224701627331081682536700845541220107530918894656421997665406273858726835348705460359221663266299860838859883320658512430430816455238759235432321958252652065524621302970018673856305768459998684507873945532625482511407018017183315496114303105085718461092870067550776333252663610975552377614290111772680869904139113213167689298012883029443738526656061378679586210634535063255847082292482950130668381842397308354197931234952399608702134785006343772757614056395707258513896599155701349350865875054518801846874413196679106790824194024079470779308203257309627740828507885026761431026713403730691035041510827158546773248330333052288709187524518185715267537801355925004879010482347691521478546997830426091625849170560901018746971298982445525573937023106934738222238413396153887702623825039243405907500210298705102417979509292414127955890226495481544722408202083562555656835288410975445893736055518672668567189978872817497168471456084556004673264901987895665067281054944489442388855449879200786325059541089216869197200255736982004862259125721531024942151756344928403419211814454037510628980230919517276839455730906072676558702910651254798490107263941375723040485452008881991926116153072494484141478126304384037679016855581384717570316541317594832499166429601080982944373354844429374545662736774090793714025993901866649166146471258598497758988864680430285099423595866848593460094677183942518344382029059861742524254346075667057426737660514422940746973699187957718325896821489887587728922747936589614314230890545679859416063240793541216413407745645138808359615212494714919421825148273326539089889938566853373908310662281818465974781484539161405817937017854965964606077431635661583923608884309520141993123758499731952318416923760366682703567737918932871289682637419045926859637789192618820116524730011237448694589267630895230748290149303060283760551223819132250448807641594488455324077550666324009722384428746519839598054706996443284783426018641370277085960027417237805474971177066974229954057179973015399348551437445907062250367548430511570509325235618387533178931276558585619693954091440952050331757097726064158771414158022710305286489795383817591281137055963644933433769668171413722102592856759596062693189235283370426547730266397424529302241983040621386499831723535425389775252007229788878319362236957180132099814821326275772152678316020969098560744137898785223919582369734629269455543567001937949629189234106510705390664953052877796764374993385913370104031187673000640186353888426167826124522392625461014016535414471960811809443211452408808966505908533648734701604753310907258270121477670301476256322979140064157417120862797855747046232418348759243126060786824316662655498838511300317464821009427305301467288361340169432114493640778692171243724930261867563904020778385515106107192433174151589874263985563297781355591778613478485095338496753705195297732919930807653631151083746306502241670654651035862935742787807726114326953288579493865646603771858972040627919595780091686486850007657864527390296754328598331622419594681010755255504271728645092251908957649552498729358949400982884985644252666353634366787779725125013074915066057315428123600304057306791101976853729028980934927906783658531945620061042537442183347385507097795469612838739143735306821926238236685504601506672794313511857062479803959740146898220563457625177739358710535203906314248687772782844822192064112394343385624236620735825215949910722733040284151101341486529895086095825170124018759072988673612682916591977996647961785040312141627400954539968475659596783904952340068067253533287215937308521773183428614192385393877354556429472524909415105628471024185422225240211792955941603350051164619142255923741189035522051248503231619529687975925350262962405342237666854278137972591674604819837160774265327298789239458330826504219565769965967719944541734391891658360619981092860509389726991456075028273870026226578890689601418430938903939247576439853927427258156803074812677652978683787402063080699346842183055863450685116579934416326325624023463691409461662914187560281646509908004268307568406196151809261898324294773809843530241600066830300677603869892587763318914253736293041458727656495771143357454702510416452575169934576996922720160919796763062424052754495343760665905196360530165110800986045580545409517031550842488996950708370648137939780945364488740148272399001413936677889618696863984554743416744321718265935035015624383486693433905409593389673696676807608737905307771825407903416250421108133536258084362228703603337881991117635609892413194956805138646501195363244018891338674044982333798799932647780789567521291466879214063942174794335412504534817845636829145772703425311474870830865460234645296751295913937271647694205380726799877656450513980406359947268252155938654857465383066678135838337931949568288176650881640987311701105723565266416981627527158477828948118356966329694595845940754877561448259522928225699844549387711522991559928789487686710644047672754131544994800732220167401880043615652149607451057981643430156213052439529951248082924429862814340760639491207605536285809293027713278045402476002448375574207367002070721526403287828865738018375205215418055940150515083548086931025162086000782542811804970420301883226505204061271005147986252628069674508883233077317589410028791217924157956280106644339630812892178990626232917723808224726015925464420968040473085764687304662936771546416372907247378591591863030456608474681354408831285432160247724209058296338531581912609000132166323814868971780460455718607510769075146792524908554314277428688071516652247491606721368359416905172950736958350967045030882656105922430891611539034198831373151835499739175921334552304693115699629497503078246099246321436248861992999826981027142952216378311282287384728867759515866446513553559498402235524619270432902579720251595298995086943396374908631863032928276364179158671221324733422974532549007462671251324920794157512353289876027971527245001155223477622755488662054722234584066115769365732020917851294877786112986138923233184753830049534910542872855775982543396610641789888075611340768698865113823981274136542132000488717730112696398133305319987844075943230012623302216132184143169455354067775128799321003965299074511688626580084270142596753571333740529631292862214443401075100227748033007042306434451106816760311103442943681231120949519891117862627874375240449897036185919214528319998321563938861314049660504213800917078635133656201779262212402651557305150884174293696187265917237155369636242973412810699279527278974451652516570507020862167194243823677500540968985835513558632708147818867470451417587882513818439336088909584077492883166667560379366864931570413611586298182972937941588029449621484524045454269693841542235543823833260794770674591128089722120235319832096365950588646506987345553117271024281531239080854873525782073447933139423087530433011569273114135327286500869610435215542813243028803678265651378913713143297306963527110433544068457574772931812282215819137714313190396421831057857801065824236048296648245719128914166203060574056411986421422468877350236454473880166643283610622273099174241045792601696202953570929676682499099908594362166612330612522183223389199542404306336248521327841141606234156882275866857635733606006935036719421250518230654487151287671225685330270754101545653234883898578281565455628145713977347461248335306669442084340433930498941148204272997846652995369021599585003232918537933063600309762695267979815199476178805142064048769521925330503085529149330452842849171338534988870446653684682267766809112251933027020540678451589238187474607294623344339058059899745252416016995406028304822043695228847893505176404353352178637376748486774667442392830905254042165894360678789928976096322254848127651697356976805113814749303731065994904695674317234971381145718856376002987111716743961235984936977262308995681068216175576486179460530799366294886227661590735037427923014025218225425374981253981408720214404126150582832680121440247145433654320373858838722496790656208473514598594323334118755919303581803401865084007869608630291065765266343525510178251239154411662238415836176150251448744676122961720379677521906689887969746464304984435848614834497203919638324277213511196182585622483827126559742056372327309616186427118046438140044568167264522527429581589749442106566770709529936544873662263633568619127434148811263735416416928300712927532789771546653085145405247929357154664212667472519049293170664799210055321583149455501375776275371438072968842054602782504179213067409485906689914648713702967548582390440804198192294170983741877315177991735065752841638908622483929610375632319660429758506292107780387907568006437261045307560055624064191552206215322482921817787800476437994784119654794644356768824650239936837257409110335376483719509193007918176793056336461494366824055915448937342661107255652948715754568579725198853546230471590397105845910376382769715687559214015412332967242971080791896200289808807051720166021300600811869752974935192556643987293182312623199195787250175391436415512622733231680638418182794459201352084975230892153709754706902550356129778887783046832990833297530700718876785256407536716817149482910669843645840210793603169156827787460738662633155626262333948168026334679666199316024923248088828540866847377153955295643755058854633652098871038554030835510993682675084232658570266355671492010297088059659029418055616700891749982055383217003359273149483966342226078512774691033729840408581199870978326039826878292203942241066190488812690153322705401568688504174435847318371014561393427715141896421394969909097240243593728729874553553123086263014535058165095138934827801719943670124029592732791775514445865568759366663472492118486818212893260383821139889764236378010955887178924311510524957990902362931521994395760927807528996969448227470442381707329223373847081216405924353495114748083352534752612528086828825576677926790040780951505901276420356598905003488558636560699987328411406814036580113031624505778151641227066909281891544486636462385433276055248753861202041162492668309237212794958531092557485329013532961142001215414252230809499424283299400947526937456943602884546665552617350693450150062812467994258770877445829332755234062195357696938387346172408525096885715209131402965169665714073030848345548564717257904414897333864306205852983099139083065385200210405779847925632805486905841569734047646093409139001656973102951466772918422917850805992296922374442664892925865229185386671688184524276879328329926169300032312142261001368033712766266467462769957075778480841742112687408167708651816588522278751661412301464337407477036312406540203596836203996796098082624488844352236506235743239914960976130979761780777044911616256773855607949091269486327699700525961685989477903767684788235952229394631941112181986783674009086348460898908326070070087490882741886107847509353422559239917514327591718626893526407116545519835812412340127279860045876638142341435141293145061853839509424344702780964978630411882684614581922793778385099628112867041874051772722094937573381154657682339884140135864845580328746840592816606162877153020922769582579224412147709497675055245083036214098900334506350699501980737317273808982191485170896268586305153629641597522831212332478914144162419507185239307702979670708362702649506851584347095021118530178518700004346376765244102169173776085599313104770613025038120850186326032564273627722535441464047775836092072845136523970941473000984020503367308051010052952272923678501630069868212492528235365084594814822458823256641871969496297380317416380890305191486043777075823094040460319771032932482709258616033205242548754897647283532536052428765376267191180256679307794743232078527968741552509158675145439384678178127666080176383161770407769208184469248625050572812333350766046134554234359781782934795827670258758699413237710002707829237369248772793790136336456830985080924986538854297349074135096790674688374549486360748911020581629951577885428156597473019223797747248333143075263449214840896742779787039841434771099938400290074084708644819779708323814727939189961382285483892288415182558318613251009198581402638582496886965187418690645326106939971802990816250519006560766664512916253444193181732338959599733312085596353763300017368797479103237046748800032961660063413867204841937644593780874617673620803508973967699705261709823493242773773551728683914412632650430249685720191518013496602127520067895617371035394322390926868635142881006815050360661136747458843043320842836418520561217294386436428872343807814453171213927611195601779599317788589506498522321614009769351236566040649712240077768472652409512989128712160688216068526721433293790295937748895518007377751039183264819687791082467408091252662351213813615239048906321280560451865221315887609746409430834490974855729713985290601546981191140760770444977186448497529851805593179788297200236458064238114781021623198118261038703413365427013734190784261057719889320668694251292022214567617871933000831303836453192258666230748986004804779458810725456792028029824315057150721387261220783845925364614474526074009916213582845621209631444908661183516489336155793035130326598061064877364636149981606430286954471172771370218911892071732642795474234549039776370264418567914941292251169974325213058791981420251178399221429371998837910354795562091842698097903704233545524349969959516169550536511172220674523715494158931275401493073798354281975861765513945391981048024332119579764221175732183261991640886079495812698054769318009005449639831423831924200690262123705032102817627464414142304956776232405542140847879317183461892039554834711159517751992012837894015139567707816174301934664053572968456820025059290889544242039179426701583093732435269893345157271727442987463302954757194767895004205462692696014480711007593554309266370696481739852939158235978398559936138827054718655804627228986218948268633080226610347210125342705281333214746016164802677092927679142905348797675174340927177195772156262259184249901533027092970056488487068929809522281318697565377311341131453559365681537199043280671777043423718243425374347785400206440629950566810520347204228120664071705993878345153919664487342981000980520337278568785747522042458234371819698276189201998219006562199108514078353644927618443535478714260147202678301374908159259980819345659182794203749800723608918855948660355054068220964698529708237256462101790229249619335759661664216778847469034848649760088435378629231502065091861221630805186552302570655443447339587635954606435109440993897280210508504029796495589423448901422896565408853647535323139852905575338164802887599018716003577311227458833088326245915120549814823495234743219806989997442604597146450198794530663600156132392890007508954075260169038842378629664219530028418141030709389742274701270234335063693014472515043164722372623905828971542586378840088875456505365003502362101750245476029951381456019066308201922559530946543432661482905941150777786491288704534702458154671995209911570990637144798992476812518606687933464243638611900472895111865316629595837933420673943337812554875205280675240368960314979394453439774449286766380939168315793006612279653968381056551859856062414362598695655932658036986261720578996779532238219888601052467777360217953927128158180667329011772283084405257710645150196910887574859867934264500304999381119663135733923770966394663404554169938317595995684585381654348332469218887193090807562345208565520148926545068035169015574336732581629154207989193513597188312679437966643397488784433304858341020476762265780073768423582979823552083598436239480042454711275283381178867964190816506976255282753312925297760496123394431930471804304163477479623455222896009147528303249025104690415662456211805025703108765501108407342810313626843170833033425417475867968672825509306106536129340390217628638995407647787077262056936729691729336918692415725115951460995810343942553123305697916903068910843122171900323003521079615153675501213257279197774328908063530487972600674229852231634517402599972125414771165115701345123085862496132336534996100137081702831251500333421853373438361594598697835192915657181418625875467597439143832222795172752326375680772612324135246125789140214774707237593149602318218142896159642368043891746020089268273767793644103322446839687850879488543673500770344875339069531131443357479371606301909342668637526562496098045639831617136197650345681430646144402027604341106710507416066860713237769438924417695294421339334965996570782781488301875807153696945654638057000733455214739362158022387824032933993740601867872892135633518995677670733494134941484492234184873061007569112283502363248331558388017362202178742386984472491429774475631529446639842236112134126631484526470316111094065187825303597615083894061685231260641193377512694961043532360800633440084517850030671167011003102184400901472103494670792575069957245285143931277635148076840089411571990590797372243524538133801458813101083596560123841316513758519500176400945842059804930187156955003724678678341492569594072209236089645444911196192081512396522537758795970719251819572242274272819825449000242405321429616876215204997314498064437166865167212321939507419616159248743684835265361617136104203799140129637604304862234307202067757057871080125000121541652942303089622362845377241354741233069620824579871388754341205288891730265750080407818126629441153673950349576494647907665592579854984678259700384484591031586190717847948649013694067830746523682321099682614693146550012428773146774669650142187690638974166686750407555262530274003427340480492984801777682721877696408920154095108569004668625628050112696629509407531264291088126544208800232441585371971227109683222671562978259163705615507787192391790778382752757982315824737687882712553564143351806100912345060769341108388383566550797137557735101294192357344075750505633682900908562614567427381057644062339163111490132649484918130088088633702325465365000343881131812413289536986095373591722832058142562190042551096017063882954301742189972207093058811771530368574300799579529202432139092756591006240665666778722552422761692797741561316559524549067467332049427405864042603119572056637760379957695334790948925775813088978753326908268723628611176154234520419108731470329266276405697165490303419634294162139167593189363351591240117819286629222759570091676851647721107985954820884891266081766465857163321842543143480473657274140518586052503666492286259613067918734445594919226565725576459659521181234945187034756523824404257526794907093690778443091208827809993155158716860902659498432601870186211327030234482113578867853406386470255851686754101810994300181931426471233401487458299713210458760566488282699175000812766355339099805242246337691787163866931942114038499342973651005213643319367821330179935347110563236505716205850509909899214504161438205717786109921474424523513206740148654513211524412215307035538490200164673598577016945593000817514374894179156565565032133518927147235691631862237117373259982921292778573212694394280980530404135715114679565451230086862083950503854402044692193783042185102941663331220887017601821524468390224435749433929025658199898347262360949771211554118367220961445356875330339602618921888497532913841416233914547699053163610913584082169589111162065180008091868368087348589644503775607597677735574958475081698751661255540291903221575329555263960122143784793680962767399323537661368182701425905027639529237689760364503777831702413595199024404722334574056826138643656717277106177327859166684798099431516978467371957600106187486325802383340756484271512697601311266860420480187845505746243779676411080347904687079722379011937681064464979540167631598845693916779306222152255050592944335713880128702754929493373075124277357997996477136771399705091421461284560938218962186601308157280572276299704689693153804482493143943363672557114824354279127850216415528135752709365822022337888242363716860351468992091983882510095263357925894185831761762290737034633881937958302890088905328074370288482306002497964761544293779535906468472101877876843955947633363925833608052232171928341845876656393585916353796312522550091960532396199384881325774941519820364181899014487121785783812445709724914125881880812372859982215507132458479715070354750662704346266690589690126424172902101115772306989953403327632010679159387296944716536299570935260963964162778504868809933530645210507628058529200068950484021798724345309008428668750822126608718490710931773184115979799759359747009800714566434849637009287687380776159809317302770322407508543366117873796378394961635253266178969263899152662364332652069960351760851658769733795155293506834746876917510803000683405145745859482236461826625824274582371108707375351434565249387397553142841816818430519547782823915042251811279575031846443033945907099155967069978661402165483359319102662629084190718979733762718943178889157352247970477432168689543510760894086132830856529557377877525955359703468014716676151994776202481979070795630072040569037008929213089671069470289664515164630690230566829630221970111598614566402652228209463250298078462935057557819366538260136207932679547927386769547876776072474589727881685840427418953915072735846773115045386823906422544455750936035523903113025779285240615629875646994283490348038399200648524681850178302612695094856436886716627632021085557501536112401913890136834808779492945696119939633988477435981417935872327371907534632558140872373465907794556286161231842457354654866807183761750055490429486136019823627658172967560513935563376763927826206124205047410170144430837019208415088693616291386848769754839379365128696393435650214559543847577783219666241292895976178329898980253067834000380605986150032856165595454397051419435684534375166184584405783793377707452119004639384372736640382837816218944093514456177135831654393190080515103284399963412040093395495679857169662167205247859684073349176437975841281884092706039174528871562143892267540779979963457126449951931935143758411217193131691975785569324747052550064782148944006706707651610674803290301074436813360401169213323915378623392491954097384060581269453498142384210189335548044136264128995023142430409137417686417800074642077688707321615183482591405936503791246095716885273644571060470877439168561254406516888987638912164722886719185119842014597673836308084012634011247436347258305757623811676317278557606723559532174889608153054323568128370828581008791175807873519691622357056257737705193901194322054542556537658250475125504066607313590263324297458786712425993492407824827092634790627858957194246934691257276579892204709965576729734034233332683031452274920878195574384376098628531900942483305824477503793668946436731293168101416242863103458155983758304494607767866973504352772503863724451693080152772650871696144284553334468407111918285018806589305577417216457667397087241078232684090062494051138503282896320267643204105789749186584639348922238072160562731243825667923913581226642448792057368608407394919316913249947543629062688226459003911101760557048110724016136541840418072969359491152883679925005159756086930755452333472780592599686158162698247213419958379036561804297024856924195203744855351389773477589830826101293045162629420349845762207218516083093740407720903213580446028846440948346976653299346498133781862606453274791923999858147871375089364118415015656136102170567637552074926232013916067923888050599810053221736589582484717296811727979589835787504078036474652025046165526680557067119162196385655964720434875176847616203781997761110441316242149306584756863266808217666720389777784115811223309478394729140031188858983902377079945980370169548236502737396605733597911958940142619175859107322488154495522505782534754670999167313744648373861299389777958286915708314278280865785224780611937301528880622749630359987748363330601826758429761999134273889588800650786105072641549688731668465121519728423356705732163353520751083316115118921007353647535391806044932800234171688648493604782001158710599100947141648922935487591377801152351937901628176927910868850786588479500751744313902373225891413612202165258584076049209169031616270861774003611425904139455463463655840762159279315231978475316516031482335168467321233815403693970619199430948328738274433745046077464704434074491803323202080364687133277701659216739545367013803860100962058173572819369235213661302944410750043101902006610526377309112099431828536932686791982168539541327366413384197368168219920546740682870083758559695935868689317032357794239003861393484160070230476452889536125346873392023959833374641154459664485069553965581856499344538875003674668564097739200355040261236216091596844537076069353964762496549298598476347954763038365026234015713928367734381017076597550699602372466654841664372752141525240093281794101627746695230644726685983192325661040730126204598825281231055222625567302010904195023114641794436280371376336836786135422575389826149130053015685422081911343278711811675540697990103019966945345306711885962490801272330119392501642493088696236213604718923524378446592226793733654465269942757521015389629108294159060508524050712001929822178058465794549037524463707650038401660720483682312775744526038646208059048193957993171721636177958953646161747607789415712062472722158029370113722649593241830131233306593301982678950696294276730740725807565205884229954843026680231747116235384196444648811283555536171664156455630737090717856397461680764241937303697454713893278614290840377330178954562407100530975177653238407793305723823267525971850847364633031842018714433111699687441938685541730329948183891686127427572296715305503990704510538359235071100878586543936906908962611209357450503900398227003166826447856357254331190559527923359699269637284392036775929889607591530318739515498755925272662682484220803031287701693233709108495058828399926403863121490335894303402597192376338737559356991392539710289247019989840918743733651863217960851221146373557189027077055193545167740230617629069970305724663167830873836326412606880596145504817326727014894899371422666671744124361645007495649462678954126993218248474514428430590833993974915155097731836378796634788341624980201110524047495326961367019017636677568768571913561306102263566762348237643011660126917953144756616301646253650462565204939932350103023141352945489064043094577661831591120106914657803880087934863637270603388237573174163796118142157992702404285658602576349617052015333130258732123237721169775915322071980283189656104751202072721286430619844198327559225393968533276143665452841403904047740759086168491074782495619422479063655896782072847552439041576665569432088342062283542516926693801168462114602908599130132934473806964418213872822685409888605579404330365904621967556124635218936813988682020002155527333767123060066695773679909722696387627073012063043470372811807847183150138693043132622510102089395923804829104978217856843890754280095835528043977756518548097730432166221952422727386971423182995536667384207105015325274263928475798947759627965500803414574701833252285650215065028139071560045347422531723826839227048958904190192562860729664299563206438089548117114842826062102978093291892131205837612397549844301493538058818944938172470429448724455981172750236709347715115408415121780915487694502777051981626340492204861124087618795928463795878604234469192867704408899511256167403287560830696156466275759978781178776382966225846856797929926445307258102825004796030125783904791816733166396877487063484184063321453468909179065673057736780098041847384019397672818224853336264712882886435103437422529066770040181766881321887598464305681552748018626338056252008053024463811019237187612665565365197530226366506101947611691605380317329215293587812377707062470579444861724467246700035434809380539769104325354372425972940477968044822554625348451626305607573275737704764906790323003082314854894512238308319657398793758711566626714586640337298402608623300304025012926655271206338145607963182970087236119069316706575239493369279930919055924433624922655190500425376901033807351760537492019677027017134062758100817912252349497102073303599840378708850260201059562623648002997462624978076451778925252830557276194489627717475657199799087427740107074355265382895452833718737916352432228596791625351240130759729490670547495963013323135486507011665325023890581455453451826597174585719966175402415533945330430822743525760469549875395030934676427673224635419812732347399558871815356762937304373277248028614025699555279793843402479399347724527442454602594235135725022518946122179909837652653088013485483528515071095542051854884739761904271322085442574221746236980312086339997848965354001536025582681910691114437984924965723843168932311324357773007001793647678637526945700052229157672751629486552226333017361113942418927113963081090653190176629593614685733667774245386481897114633214565644743210730173268634551590728704363032460106211966662649484446986928421861496058113667591023691171967175199288557751822718916581869015389645016797809941112669512100814587507448434610266503943649990435013014649318769154132282408976766104969647902921780897016639320480248035122371177716652384531733277101249981327818496877113663980302319240749943125969737979155157356034908327486672755592903970383592087085712314148920861993868190270743908118854132558602520906153444789180461345385124641501165574993904324246637595118385577996609681104685978391494178415678789497092108855718729566924620368125454773628102385106699660534524323133256757701746813016295324719399324408124328512382715347490146984657567880610270431489419787431022736644480626076250220786795436342478055387030979097774448902635077765929380582414704541994073323079286752045873422017599647210387790721743810634235264415030558600570965683843159073791536738608903075515160470459642189467282662271635883535388467044360250025373106481107562204933216883473882605772944427931286396481102359191063777133910344653881767293903176453668163650533062535359585853271516009826098142151408462799928586290005833112502942839487923243104020493154510847798841188370339572342939991306346274659155467406039259847085944950524636629667257568370096925830333104775976925327077503263348295942666443140190723150765221657732987531271639114788498361506943279613252302634744290881520987832160176130202018126161608027217318534686717908751743813489653952896719337888999850712830340058849746389142203677295742399665805304330871876020136402064112513383785738450011325028449988095402968209404903194093188086580234899029946243210749484595102850335687794719525347438622786252627870550847831758719015972133498224079060634974974883233578311924135386131423120956671245657263631535832244680817020585024576238415525336337453773332307127734973243807858845103578533445524311039248845394477808196517186033700974897176509708088057577348105209512568801147360695988484291894594630229952001623736825643432737594862660389569348945005602011243406672380912801449793494477002538279440259253443932262767738945528610432924746280598594206832058195782127414966439983767061512840460518118731194779669153238870775896231163554068867784963858247812284377745479279723994617219857675188833109309144510119424838339351377538474798577448251659354719093840241926967673401772466174665235077880778829236120025236170952063867040501176988133449443498105011239739757593234834197252351816259240759147369955118918967980212642707602747152425635197499625988971669982605783999118199381284045347525605296008361164576198267331005964461103307689518062463444381221929372448344025825271668976347992645202812863839965538142533156900630461949417685536123617660868593931003376348188258266721388890443217215054301985201573452253318219181667798907088942370239771024124927417051506811337620388898419542144263322741843699626188183753868796617379869195091833687634492870429605081978166671607736342517955994435330813840306375478391336992423555296402422083828534761652996109742923145885652607647408602938002953442518225287385997797021318535098114473938029141356454286956227278597566316933394781294777947161003137289282910507553881781888729881177446680572112226329675756024781571062376407110275984199919386095993474505921519806481044901270544500477486094824887659423846443223367640641589186485018523991372530488266035287132591507580346409169767077028718042402634044903778949770870432167001876756524484534576349601958867631504821724161553602490217720594689594189529005686331339810095423034347270537481474435054936442394351954556648022506873196641397597812043318746541638736203127743176063259612561487113511649184782838798132064820764331529274003052912333647339083156593757726890913949324633117215996493052137459728029862960994996328046716009839970397868669823894585702459547985104878643969578569220183229855051280752655175903390066800876061043958876382046572927422960627269984238841451089203009862873112271813600941777434773823680547317428209258205112323215194482528859218123146230505586649358083579212065264492086963726403696791062901807284962420745054985574285123135907827121781501173915220955965566212449590332790493766915708294510427331421221387621204297666447000557272972826954251737485901363663787631817206410273726569634439392947957585754894612058085977407756070563237428636805078687772962903827377667863818244210918452641778712668311297542507725112867429909135248146183112701553476842927587717455588938281740859787404914498380740446594503418956124684442709610226256168294064291502128332840075642930225238191650127592901234620079133148373390391350992674202851713643014468625219316258223063304867176571463438146421802042601342000604261320344743043912470524658880657939211662578648555812868272276133577310734871709034998164077873141295084108223669200971948252867546796472692075469305941891659158150801217684406053406142612261880201627469909885998894173116315348767687901322935267117131303646386082963075910799665228883463263029262038067885368264872115102295407354080366444927655787174019270804474390756657903468616978253806153033362414395330191747382309362527139873589545126338276111553697787450302706220542800834737483133435290502515228929392972436190910986084042762494993304306468020075768530366018903437838658435731874038461333670008422351188008615023596662854146866029667887687901618769643858071037856858798756117636740646829974781977686946282645978166520641112171693427628790388354356275609650330507382340578475494721324644916852673960254445549496403174839949807566268802550722310135805599027762502064558288101015036486053400035021088253485875316549844245999602215862468477759884549946999584931919900002367134372164882060730059211941025081943462782234617572929008016734410434114908115332495860676165681026359427968920281837174760579678826554486869840119593548550814051267074558535791476857409002159270172454769292559458884799196034789718092242303001756376373886998098357674365409469824873742956188652596432030155931464412268552215640793375025420709312507472346485269235353275115867165050023813917567308038228825396264823789421751564210269012716681239771517157030890054688458154003835863435062211202456242643515299955346145353947623821620994665969400674908393791118798837056535882638969909792451765050627896391878790419240394121508700074842001198667628225326881981709912102003496731088285435057331582318450570184651428142354892903649572935739176196803391192031314202716462289599836030516342798453671667194166683636838393929746748376350346216422638313327890445707227083455831641744231563629531159013478349800538361963194032215184509748465890646912253183808014156350954041891230145778119448057133058822927986782939355581275822798323798292167303210270076589695062697322304644058481511790805685865766852665405889785339395914096052320746060387212499551194072868642251030405596126878180313365398700170726015698113991755198296592399829750808691008882208767390485184678127726820829880748730417723649159185982925977144118510935025850706426762024704048604404697425696788794115262544988603032924334526582055948377411979300025209932641175181275454329719056414824137475348373895370760104646070154137453114410287258925523864181603983377889058321237773912330090990725540578285106334589002276976738183981373322935680337444828660362956365767560673790393308637566829273866725559095634941518747871385222450269172392379715948110007286589759514754738668943878340614432015595289063924859650495620654841521464180266727408719160174561142994632288659295459901971738536248775722924363406124291897141608318363538821352698907015786062750205244072605402627309911933154681619227051646379658747456304820363019497299489260718005935312415810521760752437924629622896892916240947796798216436970424543187566260559083691813137542591457334967490847259960550477597947566979333963311297509858747936486977637436121911165495528879396953146955928474051644454193269309504150082666226527643862856111793502230237050303111190809615806285762173535386853447991803937623020592037345845596488277009347263849161048709422234710754153884503533590061048191530239793973197752626799535172829310998472771755123159913633492783009007839258647728673651831758099617145768408206906959121914529119698230145274145576852976089554994042423460405448963319672693134454343589926928428048325573516268844510421006172694077361469990348628367886820193120030822399127712493516134476316230178256080298896928232920615528108286108010779789483260555312320137876825092717184793248490671811336152448203661857689287964560079302834200984037140891082298979690651705416450640545044230926892369683902501120836892028242424421479823055837991693424748632775767347449098367839994983368488616718963578813533680597815797689487231512970989714946941769853950547502815015027487698311933185303110139880296675257625446055250989242209269285016101623729471897273011987932180280908045937280868122045020281086229599395210975584415543368512487318184062043332303042893321732745221797660244281216132745615898924237536190094366591995412545329905754615547794366463521557983462454483478543648670727773021616653834990217891254921647935505890144153396696181572865574674686379797500466441258018203373963204296610205992713195685942731301371170107273653864796818343409704094694659193556369524580958344976035106164792371618039679347365834468296002149041532707251966367671583589847785187332486930484155167728390856304828437925701755234004508948258851064063344036713766001894397232147614424888454652328660756815985574105156546385135164300426734126459806824276661957148425267984083408909120388707966540861270742270256595412397747818318978227945175868832506429062627941127145011173838306477511282686967456674079722977102223539601924468602187646185273067604278770166804101885161131643673639818120508078357432881304698293311332157455363725794421405037286266795706040811719097217515143884558130000689087618256569878768497956550810679293309459272108664593659962177335899886040587893625624043119655976921092875507250681621279284131535737967671743203043945271210041025811225360243099129142112498413263606418015150588555181946487264394604867695201417851048816444928206320620118056854118677952358991286162971023316016475056808590358981332436079833886308582251722455755647080223266485152834434471716104107706033497221301152402335561818531185499676214547807857557788629272643895671755702169396104026191163744086953930480019726950928953557241549429485161503366876493198144795623923019662925185328228597958722142536574172548383604858116338004836014198278893489387681954015751341424693435856357231794626752321098901471061034636295896929925604875373046446724931529029637359926353403079763649880157109055529781247076492365432069562712381038359310892291932935364466055564920074020746429284596392669552049731043578506236871734813741893913100687488355012793463949965382352765705972413726627546850144311504503073016516630603619468209401031978602916823029067099954502810235535007998876166290036955827000410559994044798531648829408481803954014488712546679456990371158936881769791796266459534128409101157890309960808630455952878770504036968251745181136147510131792800854279098208954530327964747476373284709883113603921369465550319830404646141607409728392476105112554109175486850608072993870724223836101473653870062971378342543988813228433681859348760292287468124956029545404820771543526923835369838779921618804554563778640349691249884432028584816254165564238688255383194858365390510543521227033677603353707504542360552577175497514605402466317069520307964540123190809238112679062306643240183889043356259603972751370170012068491898018649199942956123052792174248056943724298168390388530967457395080940418095758340797548209130872365350061707780179088429889481005837687839369256977826702394849806857223823418276032400307629986782386141461569887251710432670657799324970193540368702970592258658239674448123185374312071378549797469384631446527114365587294270434302594813843469459526475979650640444896778309127088365539379494996571481798439034302274140742931291778130211130473814629560354425071522762860513851654495244562453943100100827868478853980780201235415574554133833883753544342497465534496319144861410842049195732050000877262132048437351780011150581781507503868926031075003081418290919922161807878110809664324067737737800064681102976813620848799996886134572957266860714563285349213012061218411101947016791705759221852190786687668296957532848085493775610565568296167108683174127546480055210219474206254007473879764623290430038904012857806521322808277280228246483147768446133172126387672361577462859321216211171857927851298790949005378005414660277684128082434165203728002097439346769360993778834295057168632314128652053297833678619302910019182884840390605232672834181618398657060898648318980052096682073337356612446478841676015284362193473387089384506803933318643247966104811487316890621592127363722245020961436823770356049683703818294633457817867599909029960391877309353980584440298047132996751353206222801213100811348930617070882714078290693323396897606536906597782407682393702141996000776118080047265353415393379477537182975467664284179910494957155615277111430335375057303252958004949896274781946441544150146204418350595508005590774697590092985876371014760396134197397886698505767129496907933384923866883054504473962778144081706557228579757526536176919472332553183152107947430376052070169892888842322854808725059329584731654866310233794488766645240111189826722380368015858354060387899511874904134049817447169103401672966563351071373278703738121394232562221662608455489645797865611213756721768899055338952093549730023953830762727378714926709713533483422232619185776206756737816752446438154258427340850645305221125147586726373914698120733824350321789976011948792158238055251622685946659822229741367333855109009350236608200394079679530873601603925412897136956401945522810420313351866774024654796986587793248759700234429919478448443210074510327206959417892962097828814858637545835827664769912481206037731292232240844756354616944826378318842423583103345752589447935058177079444846461584810970145996196875195401144155570956231037402492123010999534370031140398511043641361088467658323678871347316516883232896308136051124086856639970052838909241193096534314364543427784392904126365873403675442237109118069340610225498316325587838084602090582589187084107457886190705418561808761788236432228168295302289710583384065987210000795389788029967378800207078761570820278789591954515362712246270113015749699709023761653552395933166002164677357848425228753983119523277944359100173105460910635831207707396148889440786855440912482744333347980708248545889928323625994345690780470006055394875680043188114635143549749722643445408495712810742695044532918262466289291672611374615495384363933696547113033095881641680750156966136252872268359448312203926695150653617451730679883041809274838756361154573017296425421993704859758058910155044613899550307792549044746812168226416222095281868406800538195303118335490185380556242671536048376095666881606512163972794650087083251252266042095641912631758623806500966428165349860744051764223046487691512638369885489640592598491635008920489458712485907594436942989015564162538561224553677019455771766159127107727784627147981255803657386596374538728046829872245221769917155482889001722699666789547222693325629842548151194328161733856025425857078776522567319608183848156701515523527537758573077236365716071291097082661334113030640800401731872842318243264259424766332799775920577608621430050256484000622595213537095216560213507912953694357882817784892167360787994415519358609928455363073684905798731681713901803595046989739198934951660083830246673452283407675734837434544891851084411650166020818592282654874080960367352447791442507727600215976892634064006373936317588021987528924475519691897997896015717527913117014668158975819567003180864838104658142487259040796197365252014739754763545413458482713835809312794341519916465736006858848948303081337030080589128338686124057539772550060044247559778529609391259006194402153460982427260508012929758498037279863024935084713556814931867624394338113863980215638153430977585970256094148540639380989863457855477207091569515803956185510292041887735404150482140863466811264391617492472631482260001091671545582985311775468745588587709056899232460767595182391645622273327685330948930930727973240932606634181044409167913719479855104320389561120330494271981145776746609972366018371527019228017868606881428899473749993575364265537996279015242722700055269600505023799018559975618366620937805073240145408605481468101474956041711344596821908371275173788496477737883359380462467049147512242577818052303324739259364177072351836324521899043960444032477387598833725850922642758426276998876394799403795148014947838250914903490890770711385203561043994449618039964340286323219445276292262978659333990605650319516899545311930230278981151191526778516775975651093673857741641549748869705604116481689554984591217741174002390054366338991616314792473917459469510604433862312951211374986716359226276487434079887072563062999353008975056869395001963563743467381339110563889516977234753684405615533968064901354370750776146956433255389334779793505476883830887055156166981111024615328302612475593614499013589476282616080613975283734508872803001775293645474297571559792930090691687872124038697575743763150366440384530724676443680404447395507652846823283623374023090035379208312711690839111445268291248470865098930884714399066788122793691572236554000683062899698420619712508187412298174270510209225016744366858430245887117779372427215025599763423404518395878105761866600866690508710979401057360616471923360560739962840322661157392833174152842061916252216896981602963612359718398627715922942489264607199751606431189451401331044816883252049164576182034910128866180969943117279277972929794736367790273506361073628102349912099373438230301397297456459524435036642686690959398760255716423374735830441311835440721370532555115520578141164887617451081817697732496223782656924330286278505272110624676835787720816789514231987503453827475488339144402986320145095961249583832662225760026159382704067455309455724062006240374201342889858832561420918035402344345827800594841171265128303789064711483326783658919764992861094954103957619196358716747050229588624525086792113752734462513883236703216316038222915027817622202330137589127418324675533427127299437665340009610048729105303554796456371367369963643643817224135709003253545690330978296626558839933861938388284384508230541430266889327059656792934851991822597527299534514351442210876304749812618329292870252146355598702807646732609034037935555620445673583300559419679799743799174853262155378769785441577503568507899308854198035427294366292788570180097236383283340534563085070995876196082815055824415400295463656235300835894964821350341840362264332973822335152595285327139058598156295918000222671011930141202085589258136869463157969944132761857597745209919147937688505110337188323699925534473291533976312072733010605378308243632957206476460342514037002233738597346734119707688070652851548811883641767846606194267781354518146282076788547409832826004003867392437278105697529942702724322121048027022820632208673945096125964102244323235730050367552343741823279329227851464163199166013496583332380205360957472862484855963807855918719219681397896734448151271266886858194994182168517211630735189709049143023869842802467746256712007206360194113124554128716934528003556727514185744864386443627447084827264888530031210607135844421022258095653760642329356247999620633226448307089849209248876365487863011379728261358061450255177935637569232249503395987437448550013523069247685379715111375618835047974912012721823823216550990626361891175365939747971368238597645163955374720558412327875513725017300893423529714012628263237385969500747084284948533963334334593388246364380434258594488930582261648476337780362177541788924692479980879469561552310922536052580343218149904606629174541575525233205179378607972870376899989751549138659706527846598063761146144932512267408452555112217116281731224687175281006861402118010640526340377670920890146307977837247968599705391140095413345064690846367548301843652120629993519222527531376033965834117757272250415490698104230932784893172468578319528093065027859640346637450586842426808583002028659369861818722343842136262491589632467600684285132087970972260250775463647233711355677941737027698490615289782451445184275706872130792274734154032416771042398665030178829754937460564895756996711232246064585519351680721924972298301236449707686204776138056558174324018913357714952025647614855052361247561886899876082876993552161214875466044011828267603884477445348432128859425725593171191082011956038574066854165178040309872608461802442493355404572115111561653055794905960196419260007517876303277742010981617336032064472537100603782462866794674149054904052457336746859149423014430439989855309412130838441615922145609006936368895129733044669352754789075539725009845111535767825402655269960055222145696731733528886207468164121968283177059433874897296518620309657465004711535233200731738627068383529477006038956879088103287895414321411942748389611620576903123436325366787278542795969129470109687641771461379859145652041122763422726423678146226661564397752287656201499055013432109800721487035278765423162460485518763515153281535355685581196654293830897350165353845230325790799943000473241486123749070567332624742825175763451260775304620754553791100521844613233400854446363101723843065264678200394131175124251812706657899101868021761699165413857192843879820952759982192864898397708106448197139935439926894475986292383720893659594803965320956485769151878211380842352331467043392485392700251623990433778935662675546109801880520221178206704123546296687387399421178376896265370977718983265143818412654557941197192482672374381722723015272626631752942005055922854298741317701039800086582575433051918785571038288652154474256205744631166868586594435607022453802185802296346624706583665532479784959360502711118523196208028586055793767475005952241945334304407857975960775900035152509033809490497388686928453725841071148049724824622846377225406734020210484394299757291439331069627418206353633216840667858213583775136622126592818540611323271649579241076081058254612949097327575331272098179267841882834267343483555515615968611291982491928280781857223291924510276493643415172385499537323420903988959035494427668417264392530043776370344186292466085117057404487863858948279085901952669450862667162366930755993968059818442011209149471066904724024459247947728768933077398223804627886769308167822778401045660414317783929325315969478861788631838394636061087328974737335462878781309056622677992902094630879184092329708134291844904681828191676516972778004147425772643951690023491272022365673947230463090662995550750827249752963664914099579486001558530213732474364466537016998687987477406183160522577383126801048886895135653260374839712630536387673367028431333224347765895567718532795145432167062685630464576821542282237925296139791540336828017701261505112395498958177102083877135257933009629226556466998079805221981408472621077840046180017270124094385730325766541210590001960272810194122532957004384369715635831211346115751362375211774135132648064014777972272025224155439253136075527732311583681334638477439478324546810601954497510178770199171279160517795591243675762632856490279388053332682696222575131584473687100159218377590013443439491239179623335630454297782862745830885672629838434198054608140207267616098593359145771164915048550019166267146928944650460522763293271612506761844062640141273048638609883997185671027013391380357484024185172566167399330431337732841307010610092414739260817352762354315670868849978898984705821086690371206891818552487962025990453523141095226700107529342949698186954865568441383602019863023313302607932680383153204999762468063323939803817858705872378347464029714029352456842862969882896639297857711719455737076326116653979616673247332296566050956259833446928509859209680915354583943612223094873214039734948079860801053864585657982998706360695667371802035201750188292672997593644690235668676203041280615372802801487667694075591759956465722569847177651083511412921477176166244116156073213036367540095282782242206954263481521982081361136343126761429791325165239322696833733406223774766985540722682895193526637949285485567727736905368020271706124252750012689091200546487802606680178084070579436813652287581131648460955716850597071971597936731342663531929143673287895221675090595900126101323657507239196403799155740759251126847915994399728285259381788609966658316681690622572324706987471238931838467673752600388556869377083302291066436001859812082124632474742123494545793443922065581347611165009330599291070419761233843662974478174559364443473940015330719169487263145229947947736115616025553646199121131987748595359354211677483877529948816668805738611236133304610600890936761363208408768206664148369612225544676799188529525191484904666064338170965370576858837783835704722846574119249509189872830693255845211537844845104528759117378051127393589318581866200971371565565468199159052657219942381057052660712008879071490351602834681363018989469869837540343840117505504560915200683299370749090363931416388293265353971170484388200685778692130308145001873468178703538417353554560973514472146978444637809270844890447368124121113224029349526714597044671816234026984172640699019173365745189327470058229297133826101553254858951368304391304551961491027550518879743573370472602376003905391895124127754705085383225812759344430535370699988360632930488184662873070840638349233969023700888005313144983675819997323952461733525001846035853803136739145814628454035862686284354915778294906572735127289280084180079548129165522362715394003322652255899253298625345036832687845865489023118390340175753961877472559513873612453273981739852365451944528089124719351140531911560294275996715653958212389139315684007395164284546439554929277907356009068317477383718315271833942129039003466711926825901559631755218339605763900779519842940310852047363768653560490318878871160854572275856127862774212141593371207956169504031234275265742750580199800410199278711886649249134018168578418100221538575302384044990049597625529255252823412421853349710927157121295606125176551657010509748741347026354346469732493722778213132701430560144179950394570254555947987082626461233480181128721873778128781250234028182331714121666691403037898554428382279793580036228869013228427679259256696692606968107710986232184427972315588834751992102778137312885397442217377399594366567672658206222775397031299131384574028175691132238898095105166551613874453988990746237799900610156868105374041226402205239297202759044734025854192646012419923823554123721439232280027168697897535894942277547131371398968800473112099883172572397652526890620382124017487020984554709471853394837471847794507722864456031673989403006172774041476488844093260082948214270416771386742031557717127042433469294648109683217030292143830619275677358456125306796924549104613348747369868227085776197477253890356797883924364516961275373222891360608147449700396148634042070174777865060584587387113277065764091983290576578164379681480012120083167929780789606114190548812319768364033805800977287554437035631461774077989116099739239501311746186645734811188571870835181513408817884224510332231001587287310990311020039728978587098855405726226884705971864121636453906359309823806148512006570288932275308112061712832992757819320582772164264537265129759475237195063611378638480996576637574173116730920724076754446746146352690333441587551489489510848790286345667187969147687508827317723398536821785675701238171265265703669314650787229429448972972761047320493554243612546004118285109297212367080724649818403855495756194811046788058912199256400377077249956894429033322054805712408484949427402528551014044204054327414478017648180098368541907747616221417272954429113107619921845073960360012005868157566859010774005500068608130327976333491079134604911145133383810421103783788125693363239034740417089845281301786457074516645697523201402873547932238350990767748461310370515977627901213986782593759977565633052314915721218140696638402195234765953350955586225424708114145806087039911289798952397291213958543824794924967425056178364547792498395832143842727087624421445965229210338267680059042075415562991483200340526550738187443524708786262698920539389566441340635408688953367076376597178353691598774194309161348956273039086039888067469155791619207710515940702836073914801920998610170536051859233204973284265814119482777398117432043898802412718955555853546636535114502908237339378703141943186126866346422960925672130886902636745347228324211539219001270709787849205043936853043209429893412499331138758012245713349576157688892962306062836603880428046885445935819707663408012627565454905739524561827705411318616119261084397310777197611508153437666227903677469445538937672828217217309943864848915202873801795232611860057358534366074617629331955305972342425035596627364039655852174954330712265074261144520242238344746938982824979685619835167796604244933824396458099946038399798719697991779401199148311652122144848915036815168662102724209279468814493817629392529622512955573358852319109607400233029322734427952540273374018503962376205895165511355712208062989744003963737594070091500151558557905816064374701150753159496311984530203143483117308533176768126536683479465713878628195340905847949182725707664143719791352255902643732985879760779298715386707945221162458101197782007183740152142942731131596376041803637614306588263685568324742874790903537248928275662846731684587204524391565050857245259705880236489049434040873367318947318170420350640678320527648835155044326254959485555606447335358079711019854488319301899792122830252203414266454442327987459755696307000565941696461270921700231703269037855273063819496964658692264093878745631434772796566935588671952031818960585778963157594417467258818360784866582481818118214991557788486603866046686358793629231576904684543512751857255162511630528766488361145192143475705183031687647592210724888194300566976376728635420327083144260950902327885536123526891271858900423274065092708497600713258062081801441988863611062751637489028383865530624576067402987595348576230484385691594869549344191008334233709252276117163886202409634860353837005744258694324603286881598204003995811826142344148109014747888491124633229386452583140176127440538323677673647756884910135369939822074923402930463932582684821227564732080947133537939973711753077891661811400396993284042961313410879533030923129554715452177135951545071696784134198327445669061683052914987355059762181086464444031237001398173018055995753707524942255905029895856620623329979577206132075915565204164762164149064507810962089145592473101990453929647307378520929649991242455931140545347681628781094097419944219401524339760045722021848089204819416954543778660985830807593656948231968790537433694150324884142475952547203968641767392939904467013756986623226361684759655630668183612785271266328962543366300077644180797748812908122116339242828901425354444073170802049838106377964867695203131042720011785643723649441156321620689937278720231713368715555628087692152614892922230906848764574325374122060571257330307731806954572918801172742981275486258542676108284030305826266943047439659135922392784847085538658133041412180886957753685626243225033008503715013574270579612815185793121421249875451042867312367532995017587809396068637586573405854298220710281912282248025436181821138658123268241218491890196338058929727634166454360490268514974052697339313892059235313461340529786795344872904825637710641888797117526825936445470835855168708616672554358589531469803068211944693914666215185569037247831415807240263015130192236872727774317818270264042214125433625515442437093660332755281760188641018214105114223667333275709285545358820643510183013349426685722090082731571068343140096761348841431502033200839713032428521245020847424899589789537430580799171610585157071955001405102602456584334390248926044233390717420719132573772736651156232121116443007310346033966891439645818834422717281258435596958849280423947580664988233392670493753863406035661470400239126783863345209967250321978287412001331593425427066167833614117708364801800822890252961525627472402523666530655594987713990795034190047199277132885359288661195709562293610541163187778724064118278113507399376645427889411544515331572495242940971711328553911776700182937014100295775456862491482981521669331315517531840370902066901004280716395383381365970253149779004478246348802232865583172834464699265307530921187371470570190966380658378185141347781549069891737282814601919467856268509208575197419056647550467103843438158466970630745879869915789092425401831577566947467527359505609377758230431436323908606662603353484044178457553884558737296870760560947272656335999962102048306525091112898934403238467676663641108910987526137590255393879810223330877595346250774798888581034035633148147605542056310148948496058535732400011514629235622965714786282248930912694427758689343890614861756641200528727100671069435520567917365940241397664652565993812948770986927988325054666579878461580578596858472013393364404492628914462404295921142844601419782877848523253789092820107713734366444224538126235194427864198940711950922347862938621414745093021302682029043779525550122901831437818635182083910694809385145563723098351886905685771733857410090451021742068074299234071806338038093675005894375623967424321328595998489554087171011078688183909774636268515720572735006375560432033713787507831353040245784867120076226770488780836688587948066658045993558084497068594396316923411217749465527070378111626127707517005114651059048307746126021249115692168024514914933082161612382407133540373350849526305732723357957840250344165791869451905624168692857856781736766039170239893949615441046353703879371149152362566273505085111593568167244440483043997011312704624694332042999187567708144341356858496564521960709215514591891629352377201950808507553897208742344414405130067969267839574966204754850350876713055820606306475429398250959241023513946880261208270827937264020100892338647197091777104851543575231175353726610474461003578877943554349270367063557311052363449425306766621692127083583425667755345017269205654774019755727176000042000411910357277039380364908971186917303093641311919380011204190587954481305668689763651413529788283505803278142960876519893343356682166107855630811156766200464693301151858962356540286604070093369109370813195598870469157034636171727586429395572400173564893844109051926057684696721287723859353934865060061386263385573110825538860479033893303732437683911035244892485465409920583738473777335813934615867014009105052190662725324226966381495898480188016720104749631973446544109809262106201995905202715238876508202366804388911585769626035100523802667599554867816268574852737824319606595292054076490702192104091815941110038256824095294805416492862828472158131625314504048667281677183011497276787887657988466115262858237996349773383083725678253853043731512128665976000589444012232744980761421422046184073566896510227149966825668755916253592949642797310652580831853979119692183749971943103467931277918961186488053682542015824551222107188057576286452152090480725730919543312421665002246373749970874127359310157259355296604290750230367032884459984595517678598537934136484016484876415305623349167611647368243238903409655900013294435005352167770968216213163480139324513509337181935984916302310327811439244860474106265677809090634787966697242197037921172097194154344545268350181580948543668355221888053847506972845230233562375284430527144871931864071935683408245509418351498669305624431331024229100266078002499396149654039514033457351034649613614212597663610899597347085742557976323776342284358014944539098340446746674910246640846238759496622192886727518234551541446876043140062984622481916099137133244327962112631542484200913442351804002559391473804669818609016819125715469037186914778521064940178650047618052518141428912326641580052606993333334222722648785706209203588134758020654512371206712306925895443230048955318217269413155057859955019686136746545568760531110602918985676132581904299353061386363976786823118528467325220641539618734478575456660928914511314149991753650031080037994702467689633686115680475937363577004830315092190818964872811768045145210915996880028995287359121124438186374146970860533149243165747540828433016422791388736793450188749227277562047442766855779892017193416356359122389741432933802310995403999550901480000790931769559649784682928191374334296058728071945187785802008443163167562516264923627407786265661926265397459518960359096815867619986283176239024966000002367603940906451606156540607837567932054794877026367155624838490814341120920008293592651344656210011793684474804728778276999750972539734055112080729582120256335735951794405447706434647120849334572310230618490662105904163528106865580449275001373461932853284493894753634359752167881958330604952011452140961360989058146391158578429695131418460339889541955939463604177531942880404493364565895039005393888142268235335303405083173573072871947076108955523596351296488093820630793371826913284600185475512495083219883397187406541125719152874614224530004288919842113716038984053705909698076406038739299969663142886370665234168704123189043358667907038075368901279834110106050020231954603154442318548055092653730799105283673652693219852350374822942876719655476104826028950437831047354769572068390178484241478058653561780307133461710427312165598289138216040332419471882981911136081060112616381138510562431902459315195976300519527664290618334825296930022138226261229588031161643217623463160425766138519364105070731587656009848344219132599138640228363563237519995902083249406806013805650689704633053038549114892577855441194786960670151007945330214802022197409760339836568258327491464349315480921063807708395184263382414434939076729094464265078487878320476653720440198046389953712105983933017499350802628717756482431597636389447848422936631525966719965995756306326777941301755478359591846802194455630158056749099401349914758510888916909209114627612168180731571660157623703704946687582215492251815142706893280218327663432949737256992825313232907732960927127505565901945372480330998653552249413440737410476429979789307696758989487688460173574965766731739287576049679516678288396081989837974022301614519112982086932440917768807125509228716160538373750452031407062214069977788749843859851294778745107095585523954225337839577369883084092532102157334666717588032347103583346535838550058007926101608733925765100454524906877630934641071607820115461453567744735326348425343313050307646116358750387312147518233798160413495350523333833938039108417810973668380316044090351902524005168332178589366422426406703338365388739146278213730056329577975569637478283252927819158913820066414737879419545377621578981182760745361929049969379708438204282529493641651273569324952690849900473317624443901554266376630522276644980296888959213707150244542188893069732311944924989839292981629780750953625395927114176955076439380714288667455461141233249350424526041775571066164005743578310261570825604007923520752866242808630526461147311268228787923715792431824124522914057533762313296554345987701799159269773971189723341749106447170190555359548790917778753476936997281147511088643755163626752998461178854299688516605501266113050611595142650021430100884924081197763476518993060065340031750655055479746206525439725698079250785699148574307735318519018233962249010409656505822884477308264131179512796105512867719741822066288704008892568475429259483127806126656770484071184655264673487280341465432666210151344956147098334425360251532145116229413848445774652419715220397175717834743173425360504030008458818525656998350680533966275793864853084450451622278114952413569924520012543480440298207501423036175462261238675878998536865919313001672535920556876045904184551030885481401363323742614813510250209491118128299931704305630790303008943519641966363821336384369965502737408063680645467560265587061440945156076704927590832745998843163358804584261396288932220031289713387550386372318802102660423486340332572843735812445439237167024754613169445693010671554995247377934370647701475951360645665222751340692091909068632104115731847397818393217109630509556167282491066958036894857265653581698521884620025611941385503134034711468682889022178695187229660428095266758592545421839876772832459908109335832023438556118418786584516517589063729369513019065996695411604083671872601113015621277417608676256488568861584474513869127452243580096986311037132842387822622777352331857298912866363606360887991594416390010498246699053759118059822217586628982328399384287974741745803423892962100520364891254948788330289196540294681638298701969808102510649364338905959954038700412818891124151108454935245608590819273797566467474651639934760014525526067870752311734687395606752655356080404927039604650357851683179862764097171804843785840954701182122857228527945997392491746862152533633677579202077403072755259847438106527448688536707456205071862818812112313253433566553666675155229492646279112398209427787421802722405526703557012584207216369103735766699060812729681488505332667534388468606899492785638065147477619533364115736120552596411468502337921204325730820993812930816390037350935794781633691162903451334602865278230091037602767085269759101685048404102786508704985984387177479666264843690901261560783126457623003970021812820924160718043981235710181862855759888891671014523366469022264764357285584002885784623109614278422672162559536856469811357443600508511645745720387670860438210972475340019765450993245686380075097150666575394421721014748729172350120507048731987669731322760630817018394326482747760146929421143758968187651533773153081447688504666698035551436334783865076888970741043625212044464300515616973598726639037037346348761786706582524425271030738326263729122348467259605713373197376993034262035810236483405240577112943657473761217384626567752721458303313864304635449415775546331809786715910258422066598001095795609785193043643183086224495943224760019555208427969810859104520119169434354475565745201806277883079381762247131489216660113870215684450227667342976861625439504052159872693438958005695185510472529954479867954077879456811974458720788705954595223015610263119018146582784868928003240222810401679369374022369416484720315528339942478929064664516166073582508728856584330425449636563105108614435608117259832339071200187428835684323105959424765778306371614608735568035976961602908453399730380138661256234577555874182335650429196286896147904621611755413262764695500013081062995249321493200472829066249088329161969890997504358687722054040179142617844861171758495132321124138577049139903498425059564129186862204983324303332484781312210559473451688603056893311097125487298207471103685736981232840185204914039383580559291574537769180681789823046942012132236094761174975134934700249303240124705730500657041495642635504651547383675908753237833822378663731862705083527608632829687675009787250289578492696531130613936695978737802876149486986199952375300620035574295763386836423815982785726647469109188371822842763451510707516576513818540756984401151492492514545435287365953259570266027302078030599561180681294639084945055032309788767870876395686997481194054443664545416939084531053285461326344050934652761168247189399198408210746625333198106550905964780070135133046358655179398388462131113336131889511088103027085238587555617645361106878028464364778155422438028102837291695110398881963318783851604040844171883241898917867681190225227421814708665595021053491950596012329057107541625129061779249028397612762270538912178035574135389583842830403007875394945038764470108272178118123725680539887813185977538769775869970257271293771273138924219617110217442062326848321898361912314699076335850124011948238069105251689542599711596073354907169359208277582380743825387573008883136819827123167937303433098638952157029985123089354110545899705193890865161160850862327233182966989070148328776057424221317384151899553166963542040970774324891847483295858880610019352373271442354341767472232017674328536692672592835836417347940985194410268598336261069166062236908362724904297198426115599698369611959161187456879398210159853301359715680703262223003309276926111432374372336794042365491462850541059698581425152822823700983273768432889523645067801386562754662397727720379891966126340970298256767700377645489345426945897020199017454721227447691644229210421733857622338094750348256697380380193108469791798830828858840860705400576184515947376766349047107060016909011393553076967290958472825136111911465936660286291667465652381770552142890343289074406972155831213595786596899869504913941525638489848740665855353065300931946292312670953111806468287574567569726745492103723743585599300369948660623011863398809924385496606603696005362922867197541806443798119208438290690519739948735969202647171729930068342572476324547233637596662717168295507448158023752424130541443061770272360885411743371912828628003663308763327517590797710105748197223715061582422381209727652897440739136882103549206108131403887640809510927821503682294515179796373706433907124428980010677391681810096067294209948019441090259400462037710086937747099249241530279478977337488363319193660766043257621077765713003019257632308311970401728030758808156042234345750375451712599223990415165231379478642534295077677118169333195233600379544085471365775760554380620242676613196764275193023104192436880040046506867014947424023876679609757798641381236148638906379706170734874419749208924734033346320429306947618353248096364534867523151753634071052706185522328588624184778618577344475694649596427247336498779032404530654373142946769671266771654753081150301194750499733590758044282434485413030441266109010319780482204850714302505822840376320971119033401906382104809609307426552152279693321774798073796715677645559058254649312154170823317441638063731512726207069426783335725134742506507976677183443090988086700358551024005267386052885296877867158198022718860851946590568597390927101485279047427249106343666190219945424947881907711245169551730272913457044432984756162300543823819988802366338870205360736086042684254529853764696857599840345854614314619656929002971487695458475805076732382568024692622822052443198550797578954689709195805626968582725820790964078609582038805404546641304976509598747233922573625100706020263769836511458908494266108210525462469522909844385641127127106434357165526573050413402535994480355147043201919969286015697846454558280916968058004659070750753163608863734915376808385961189618087778291801290072114664886579682932795357294195051224873821016701510995560157990746222829027590255492319276560081506660708612932283044747858796933083935699686431829080407356510075740684807082606855887877916083980206027193484539314502599468584552152093469382786130442322566178101737854419895419704173088261591230131253448593705597633880475505676339267876207290678359326594293580836500890062027050615607437771266802528145594301266424806449237214231206067097472973600195013970498358075381655190938054248232644815373553490750546673626527769894341684642773933941687367377636756429468556684537162235372634864286962243131076319484621060832112326742092862343945643939312946944994032198714482938886315376206267083575605172223594252188895118639296816918717213169323424078008249369730198412365076593571151251501921583311164829436997694558590592454216479133781059797757663866015269478191601910970038520515112008172477178931768899800850729859188356808959307849288237074645183003905035644756673055989674575992533793243925149019655988304246489367934582903577692978654818853788696419356962129355524387265116051161630906515984918742123631041449728501081233876510407554615237314977581809372322606058366802444605789712376587056542216175627224130879290658802277467866622566230561210595161508897202445469522959342916765887864656593366884351248602890763323760274601858114731273405215880645534509673732223632574808117922854309391053592661586953862891472289418458307210014101594761293657409560737979210400525646618900452074447923960354738444492916276585012994786981547926621425282722524275609365625394121521477506302617678636201035491878939756449903996212236019592816997638922249748368292950934507597082625508813270552471284439244200535381468804584627169834539708501589583323038898823362337823431067402117659422355036636639427676546961042010843075968708361424865545865073223975930738197681973420183579969480434175269455049825143120744130758604999219424105180767736229124736702732034852791802652776449006225831469252960382914502106645286204426678525807841302828358409039311482491389747009979894702016291096986821129242636404657914289463834408020637463031518936126936558508713196643529048280104281768875895565495426344798159016523421617032026667853219288219159540923193931760675732332980772485799277272977536738883723206176273601063589869425956382426986970734051629785159422393454565351152314787705911516953196740675346803137375598343911921776230111459096051825939414990668068429054821051667910782591774377734226908587104411554521792664690604037608731877769958757694986924410691409545900438429957551957878063521613960498148179131160610096638408761966487897970476147775220597434892837025627793485116126036303945622019969487423346583523516566712050737876876536019720097473725485946638501496174479408914905418995453544866174914318073869703511919744276659355525048389224106502055597261193446851629105704218416681687608290231930226610894106216821535951693549289140564378193529679044895485801406661420862708627647875431323298316584017172885680197173806086427622951932601946259411856623820286786402979132566124258789035125502787660340130007111694081171150341439078163245542114201905860068723185024729055726646830296028336296478285823554427036926945946520595003582853639114591827516935804995879852539114663813304119634291178744893156498094897770310198005824567588245331442566392844392854051300618749219482099958222481030613688963857392281484837920497602073577633937613450634715579257713335816591850753899657291538376606623402363237750560683566067110811153916723033976533278392659016713085529858844958023729297660731606431481282760747094976773933979104715553291089262246097362606876034195220790459129702160004960196569013644428908452037603865530400117745234818224762040743072176599904822959400798244232768481486262490680001429971254849725740426327169672651177879622518283250691205052426588912627682868870017825971569717885188131462622241157113769248369755378122391602949906089018659999023049849356961838033370239412178393049032976593445772537821100657200546782059662439236798317438214660147620446606945532513588741344363195172787084085349608608559055238578613200415924646255701775826956064528478160853898068476104222182561126941667259536206519809348836509254683968262314076460195546877908936533239909961906230257844953829302629677074719588603913035251754012610132803448830161014430603595823402940863581965787213799843729728537231027246609771315236294125007679786370910196345057439620207043533428148431247923027600975005008289144684591977574147039706804429730917507771086007166824778079379356328283494432915345753844427679245547055596806515442725185706797519667939680139946348893698462197979479368666418973959611347263747660453881362682938117504177659698537920022826018282922883486340096814429668729228665543555035672813577481007134535431705641189379496519251410692640359817857528199288643202985920144083289143545754133201090819800079920325570601271273803215605754799034118800257348597339018477994036884941846476549800425909434628057226746572486061413249269059048336561586635388920724980039388202566620226463956020940909189411263278140852417706153463956662642258029238870198124180541441597712436437846619253830133533502615954581462642921597235873980098978318325300703852405273555416975311992891757574358642264670708034952406777654092056133566784507685996669960281957105425174428295431248587848789026249852351984552609335294035693670816452267408981649219768179479431042855304748962758013461932537244786927966339099073966030900546055337727241857076366680515760940269038146169603556032451518514992843039606943962739815782716938197473634168791481204120147228671185172997257737495567575039471015291736231043790309581764730826671809584725601948806048202745265607362284793020169838551235329143658931730935260624026979774352786464213247501876116320068194218741234951743400063636434788157921398676627006050214479833773429723604114729462886870194095331384290945921940011964086495183618137751379287534997714746596255652853769343242026913982308388095679446428620882840212728286472659828527771352196900021691533423920117442186477273192519374715932093602360546186889126000663662047331139472881021189212862668712843179954397633999930334566954333278694981354748763956552699733308356946280878479711969954498462060266353843218950164618951499699578071368608804697140609867843784462493662982528638449542856561168231653894233060103886165943347371654052756435817609951592807434930750430513295608032827783408804279942123896747773634043054596778934568585894800813934248818721952712170520887208331224258294467308541516038382437656902994490619587776345596395932389459012196303336998672701752524582993629955876356762100923504158697412286024350293836235418082117423342020408056621522570724293921275579750751516672749354207340928317440612491776084349325149422822275318847678623554326889700528575081912407586904200622383760931202950843846510379415573261819006554944013523746327894225432519037907555912992741576298702637919333128602004373516090114285434411113296589063165938340163593798537128419175596425312398135639563566961059208609241094535512483495411828718188086928516943976302605339007321860299011230210757706955967321726267553545330988080356559491932141878140231515409016307063997170699821193779447798145236551448140425206765379743513078789881773280561756313059642453376322667852190713772216812213787825782647168153748182271088596203394956515187276709991780201593272905520672995750559501619348754566375564101091872605582983173809094956489798710799735688588060972569017562249812544998134438236644839742678397903401912230099975494775379884752875233051495507167718040666162484258212857964254931776806319618270216278388257844330681681006377712305361627398420367823601103828881714565077649423479279744378120923819533842222379422581743311586757718776536552167544953364373361502071466065707521654309285627958189704321265358211563561968752590436447412636969648565736732055529099475759788620332388237418154204790598888971315808585590117909199370663024479278091039159174678291429780425304387872852980629998952215169459200203419696759778388465871183513494868547211180268986765687099068387512681643740615430132288352138034399015342094143120173613735936197574711124084442530064986094351407324843361649332573536808824417923589753000060712907179760794692436267084250752505550173494124481493047015720884450634225719039433845777940296629010209567665301756264793368552458115406973256335519314688614610920289441907128357118567443669294139533793059772294813049762807243393385296916283930880033935677226284541406440578162077868558035469491943303509822130722374891840428994423612017932178632444545265367002340570354221598334301815665767656010329879662862928869568650999242164242618518117289738177563044516607967660484711004132696689416317697528674892156338120070281659813815851224522638128921143926544993151865652779268463037085656141765343559472676073149137707411108667376629428608225171910913902411743452642191880514693123025749619399400559552693631148416939610861486964048481592192562919530784491170838251371879197927929365070602847553508608299183667334002498248327565861449308048148112985717291242160761648060318483276069695095058100234335577028599507369824941262290831668089744063306932805621536113358382586994247977551025062034413698911455234502863164024474893980565824231460005283749170898003967911075924141235548206064999003667479836650331528375384680607719880310565047184326114847440796104480251596496231907184383447241474393539177009365059000404042873022715899181219756999719157220114660982892629063436380338249928516361205881703670359210707571402457526801545282286634417499278401250828568573470161161871357246248349736294885202319435788372421941096357331468282802994730486805346963916027204169226358981188931665142652520388866249074970294727038569668371485936859160811716961726125726026490053847960822717428353812801600018837592209494431993828798782201169306513939093016063837287212801973864394496396053425230995726060054732598955362908873330037071770821635678886463911918620993876921442513476573947021056336281906526853186281240940949685223995300699378120635296437251222205253136826562278261960285551212385984712092406120830797528014285691450792582888480830681422935967493992115059064009207273656600541549578266817906936493244652719764365127915883206071166098958915317469141898503525694817053604065585484028787627980863816977190751508706192908849136673459273789277756430806593118587988115909394417458444161297330534029252146256271352945764620718460183368487935159771695176398505636712384861547209300348545321063978649248761759627027592656916079000178565325684267926249511504965979460244752351300959773284848423756576890142927539499676934513804122416118135318107693211972819149446634326546166198226987769666697541840429773985500050011687725023000788465187711387963798056648624730761200008956039229359543927599849264616564412562765286726212834584619742663888120754051771772345835919712788154522996719768595237733238122192491586123711120513321896786756990337877751158310180714533246967120555046122514255433221856902499285738413877000515088037516863254295324284815681379083344915465610144204385111731893961306571390354081995887007235715967453156055034092804075373932405545507864191248288794811581141021336221289274258123935639968806218907323293510334644630279923482183972182889024748132667372631535369395981123777964824867267457143981779620306508443092821524380934481869435357398641154431930147417679558432192681841227405408151704155191370635771351797140367819617226102611703931708446542125586962293297080730002095101392306493634210946547429791957685674143096683458623980135905583349656414396875290323566382104909486526650258938904614804203443328631622738158245553649838796039052180199192097132482754826718534775244573593764061085229151557245009709781658831186172811986863009571583402402197878363406614838140459933929449510242632850738234236982840909562276071561367613512791870705381582863061026366289403192380788247115818295210437962181223541235676304197335591639712744842870043867132213826252518772714902862809223554306600991166425623736021949073427075791229741588675997690326009839421723810326755290705785288308799876194825768734205583752396423163198538519390134857521696232417599135980459035282528745881909416596651985523951542065378783356520673670887609523272330744986144438203570986504600449444283400860705191161415718924115708256283232741136254710421010610163661640169575752252724447657964475123496798307602436070865502594443901123493751891610950897921723321807171973252490239303955637919348153470008066799819356991930068545080570517974381774963383913403194908270259271916457785576518955725870969752231733876314941912735792976481614835730164973406845675232216375821865207725162228909884590080021341376748578940274725258684447686388745232718384485884133672334764420076277963463740432114337207252263231934897696640531586986886899356596628158419847604113016983267095464366289278208909089404154995114497396240033422598893135609619595797122618726510416408121015234347071991321673173611295655199171789242163390121369686258046242149894297360589022157010822758793476169193155506605189956884513043174124025709558275713877733971861797200886971995855024903839034443579024224832819718074154829871499053799036479143258062393782641481711558742244379500997024161848631732563081213319300895843951777691130720745484841558369408495993305627522862277431908894151634718507612311418833690032247855866125291065436777743990782995542105088163988157816257179497476778355328554374222512122331751134997414106067197919787902994270119300907292513457389476682154494837040220385241731177908826909378132469763848851112058549761864449021907307333833819272299334285386065558508311325352222996140839997632740342286655576751649452653914603067034489067634844183122613138941545333723921425420676313635966648668217992722087282544620887198980696289082108199933448766174322274097617714707932873913261936051597678230426460930118701358466481514919783987221005796177996608167798378622505549269801159096189760206327337462664079627375089647455828483569741989176774626910316086608807839750499715120638919984826867210456452252045804078260872863949817901829011801163741283096887061720637989203041394810154500017432122292243593193158421268890767881784472198481226006225942060477593141398768769044595979511054236573711931800208701532727910202981809298687135158366350096076468095682636306095432943618377877354867487385587248127539416615178915538293717306404055604805901595513771517797852462295148509832522833944897629819809071488723716123828152956314467073322884905437916631931034237270630867174815786561242420292752119870967101227183033447262030875473602543408924683943245193272587988177289292863586695497476451607849701750925634158586538318949923800986960618321330663126990758124980124200300650258183394456506642476303762914582511769832549095748099351898673284956979245188894915861429963260472236600862372162981302287697203986104663144352802922406384950933102121079670068036495743776547954480614132977390648951347578888256623707579977098083986157517356222518701978818430642171977228501649917640134593655827695984524286261838990894406786621362416753400651135605249765589294122887808621961907088911103673445772722879750985630748651538456238429042033562139836749536107613145992057464725238091935443071793742886307530193675955185451770527254693960764042658691008827443808632479556243035999706539692864132747757125186107774200068074336621873726143918707398169233675395566776313813280167319504629026694635146381957129873027898587821314847490150189252573698774047579906067807937200440589857570775755469313317584711835077206629662013242828476092748761691806808549436309200980779382390188581094231282382654044060559297778597715920039400360442437326616162288504479647343368468070960200902544072210933912865067723972266195474438021293063948183410579590214148675168347998884081747813658360509177095259263886313350727845672897788947730366907278411003297593195699279368508633944687257538687252193781452662045588744389987123212948942047820381102702894008706975580270896416856918377492704043714037710791701635312022787838763198217579043030953172949039410144436321686144439049531590012247196860974152900971711932453799941726522667167062487979510748564047402363326005132537280720995435757965525125285520794710314805172155065929977388737554994747517440117879583777224846858029520849269028590636161786304656555072974390703622876899538043515250945384235998752075202834931583213996914225254912622598278402545657771850779323787679498063601260815890138584042355041636329567655554661538400745055455609505940597981184703758419118624243099213052300408049326143232210504634647290954720135397530551891487041804972730915105455226727051249657574611440730339916635960224055578868442805911693595362252426652018068648092292894592291052859692034128210031045656691069123956618661364686262624780607851115472382574449633963943180378438686418548658654022502711372667122212270971876363697779742682474783483277249885941889275167280044066467709549769682638114845945373475687035463771913243818784517239232147852865644117814238999931678179896127118496741974790453773731940935384620861506327907573762578654001106663411468303298053763019151430817020203839043951631310152856135550383622249157917489609176093324182544189140395011610492406512995863973867518879745074403874162798717622864354753224218842150217915399846515917717124249797742399821558034181518918559391663295130954392171428430083485981191986123839344341173346712978982517554926124890594668660370160969050376211283826663685256709641316487552561748216603080723350559558082554625428889450998051746383115420848421093947345781291521119213515847656286619625894276259171378700510712530068262549713769266111384980696679891043844704935505704674902066954390261341194366053154873918569750559020430705207963876379283789715474071083576155090133084156891723231562232962751679118855655366044984973767756611495646861905221491043767066307354744610921237183429064316599155206375771125535694581996362103936628615296566115801462846223818227274034947860496131330849324418183320616729522946767058287836198670957301595848860252690843755311302845646556387524788085947071934510610533761695031016757408182631911393401747800773773333228020543594510814779084118021162155007355972136855508282005455212875958414754724525543516806460476476660561695976513333687636942611103383484085737946283488934056229770197194959205118837960189893474533576796885923280965699296351597228127655798994348690996296186439942564062358925839810801973433720779484770026552132379590647097480064086700343486419572903727040362590376507581061785440166627287164539646356143427996454676301032350208308051936504205649032417923886653444110572241668523543275956380202184864796338038064703744014743679026568305307868442980287195891842586762137845212804262453122566440903250968954221198379786418550921809972229101680879035542716928108807885422729556597587934143982932528301625535119561721767117702545937255841353500403917645044585594399858415891620782959592456592405047817823296379519513021599339676289645096085295898105727500752364191862695881688869081470744710901912712468023860354646736393000952251040605208327083531876182314387592071305544564798631292969280356230675011871658072103024733207164704863623767194223510010401554276198043322400894668802386118050019755485734678415635804742306537751278430529703717762068696689154846758190236056061563872032312608548135446245710328705002432920838482975127536683213151897330794409349353767519451579206760303386566989303016293987102827209963716052951567773111583382491428877998007459017650033097999592856412420288471225793808765714761302985608456434012283256534005525707851145626927866764556701637035921831469698740658927333095834946140973858630466064862084842033090581355055550372347895270126684293778588990628346970718168790049399512198489227163615893084283703469057817770380913737087560925779717005659887893211388262022713859979742849436722136265321561999109933943600498579726731752471435075697537025917134695092964318426515085064634719112152925127964891979091904434005610967962239433170535452575931434066273734330539870112363155977827802353921294887952075647916517532430388147965620311574704883837063484686034076998545670634434986759495678247451136828872335981329492756797164089327216463504158229157330809680493538019506228003605383598878901730805825585665639088012937961525167636590086945947136921351752595517878388997099656322969029719997711425313560033726903692300293254871959092353359275586502766898269071840418105752415680106603893733663790577639822093967518736472160989318680815262692747735792775282353762475700677198280685518178645278293336071592550851447046742469515915695933113987837149331460279891362453826514570036395965925743469463079031149133402079275400352274360057896831079571118787507883722972834035080928348793183902599533962704081989688459441193161549174161416144002842213435402054900857799493892129878113687382190430091508956035966784700212440471406110434466073518562009615545933875356878019192088098684236011269241135003413567162875468204243632672166350324259488387120520911135785446326690485652568392450351406052713699442185885775500704232096082447719491831130148110911474986843327307909739037806113626461657819128324550172933441711108082584730205688655932711662020699261193937654548143901445761717922243008297987859002045009711475565047935416422660211066267454333915375697946677677930009955596646796318505186345488669508947705816185202130621441143980170491496481756955158598533882195712342347209267495711828959448144619608091825668471288973672954032455507506980212312931959269515506425665293430837393615589001743388425112499199023228362732513665006459382225173687647853819981303521727555271885067315402508143252278605942211338109601073688675078717181390740132037264139522187829592740630446777055112665287089470549214655832790928470334733656687670824511700927834468867093385203751865007955943008807175487322449225896082788382186833677736350288703045335486525979113426666459953727418329070889668259282629978563353815157128370641771541407621686423601577967960308280559095684642057069865445781907522951920699055647582623995103767506734551978656096967546605010919730270151998422147073465787500518424563054953040045934730014828018926365231014012769338699776924951471669860687172090608581461897750631522557629318098715515215492715090408514821085144668778478530251966968818764900571585260009704026236546095284751176769599094240662681300084960422362802513172412847076168504623761073249206199125798425971782732871429985303772552344563977161697993430290584516261574167167469847178032599431129121809866820835321429251475868708537913536476770900512208827635166516205978789824997288803172503705253015152113136227647863903072721542876334428764360264032826728056525933467740308155652256763436447724754744580503765219638841679719104284643160814761663593637689343413463658010035176184495468335717058735306039952258049937442028441397975032807041207036564463243084725142837204744839071832292379386781719134014215727833972023832045586670170278041273454706546181982587481897220501776093096230980797419643407679030641424979267169471197088907124057024512368212394139456033606113844603171852210315477728047120907327801411796889990545324029909281930292695837640336520829165598888691672947845072017366488636500904419974239974790840009614868636789294291508434916417426896919089432050170184613386468431175183823067297814132745537012958598121680650813615338329447684125568276809083364636071552503992794202312191475366446462185209621427729877585428562318540022737389146396009878105347981280679169526738382391829024200501997537393288021198714723684155330668265890437051198936024388172550250309245079629254378875137429309591330950840937589661909105289532223717441249450005856759851502587596566066200686621185529035948075733296807306022734908020416449255648165213626953531817163640670397466148341271203351999703645489752704871384090029156892737677741288892707942270216521271811164736460296834233606295792816418199213320667372580904167461552612055877000316521990794571338796597062021828877845151767600147434885951900435603473517043765402677960561419954548030518273589356853289385563027817765481029472156589322735051656163143217371576883759558127104895074053016877155522807375290323278555874708483633974732260791821848253485857164675288717233929573304495433914019629417824095156626225945460474762483279230880286134626383458404007599193050844644268790030054949511093994479214626541451935029035334835471292801280817153532104993495542469159569366301898080279097864519903246923285492179359282297603230930453437902547368945689125936724385943015965003907584251435943984711077399480489014057727213908340817253180784962302481168176858032135854180348776723604656279778658352898576714473432497873480874848527171008452004049631943354189289828100090765954682621184739211714022319750793396804655720996830101667311979456298397546128614217694683566213419128162758186261722664492732098287950633786892965676796063903934596929155284658394085166924405623056624630874107017459166260119336685664547033981773756663011973602838221742113091659799060109039584186393110197768516551614736573227649541583049234396533395426425651950697671042692649311399979452592604770477694973220693489174119640710193560230561069201525176651622128869684471169003244417369768142803355092027449593400831950725351469053855994577776669016232476292432967631907086889603588741572553980790011603986576939661968175101618978985566234261013338035338813755759355387887477299623575982581084200628202506411869357643343503923732624464955338225742895886663450386462930125736550885715436436521908801089177371583620938215492858595379600910764037484628999470440444602263080429810935946569397340014381139518100131314023506883755840700814510755733681000865738922608309730577923599949965360827431080662810793591030079126041539681284026852622709786767112997572256445545482724151132643097880698480071265696599625418953441567442078299551496807967620342976193523649811366588024489425148440996784025009328189721506835229536130839494660446680745481750317799909865059879154447400715266722904232082819210410811181463106838549000192386410972022272169723843673150035444715228440624742291118884113311339762866770850147508284369875364024659438521011695744235752416568501046878334295575344687116077967054093481522420944123414691972768746291116482644105614528807308950960014954099468104839958885952401057965270777255837022462294500373652794292074595408527403042728915636181204362894359492910116778317656195572351633406097873469643100848146386205200004070566118683024203035215932577231838741641925081970929056955922865437308015048141727528096278946452596599838848673459432614706477022231015352008892518351148279084304778099451987920724440546159820420200966585935931792340045841370444298585658450663561661293206799682039645527843220817194601105502632129170457231691354412142368805775424122443501741688396096294956921629637040457383154442151042063868167413388348715907146144564749878698114976981908844579321423994162647242771851162843827263303756114987955213411672087494932138440873606338692131470049539914937683405093969637173308824704577630648185018818398369788439858062666085352129094000097016114490496025260329633403123635853786684192589135189220867255732118033987845214776837657553997817607510090218009874652628870949372797463010514405671005463786179475881401852283492279343542310680505424484720226785435467162005008774237209105485660512891627215744880609667438333356979514512049489701064724785557657415280858968684605140499595912736322106325854866806408935399067198484237912307480677555059888866028323622493224660921857035632574787268135157955883041479564556911790743177340357447648317963949846080100069716043060388048527246468686365198017913855307004134784551724115586809148120413314178998547455003452429183038111521928281479153770118063079187998745512587696972947950963823754467543266295970724945875182846074870745233084657961794484497447501181901713699537560493239161039551293703005306657637479211205688682227982549699661505479498970534858997115617938446791809893595331215260965698746718099244817420252698783039124614702137707505034810074692645086998654221422882068337075921399581609119011528657142612869722884881280110902561220217277770943961692062725894258651743880557644156848749134380107824295069531680879019461866456163357197147515720273945128042072223944140364827324962144111770030841912599374140879089501723236358061696186515108424632021681555159276576053728469250464095332027136954108306560927389242192803918600497251073305558960445579123964316993028665129321122742545580583379158271929300927614705356770822802920118208219624711818324243251403825368109981355830760788298341311233187909320604695492469966929518032524004302150805052602182249313336983152601257595866059494786341290094276167200648691165131786636530655048201670601868445880657417944728139057109631842415681191438829277590975507896501102187199500610118853413023582870553627601717473100155961571489139175654380248498044748803057305842137740857292014567496383591894718589260117629553872851316813920430387578453508444743858707481286215622002125658913798724974895295317888120214097786691689096741705083078104371563396287100047268074077932364380338286943455918727443315732825277172548659640844395586764282378836944364764453092791436908029754204982457178878788738048169608660284599934135136993980261607544450492222811363412129261929229536051779673729158179290292933343908411339475943558009239646835236705473798326138281742061459191133068077516085759110526219315340231718033594168770380858628479864568291031006017783165277947202873221181700306779837725260224356280470764643845445213533758558202317489546547921260521611067612783607745529203992612927903729404764631272403442550615581149706657885993305406539568576296728398338889365114361000690128506075327115189730754487068883038483359080861934148644391565460320310202989657534016647066880403987114124785465473233635876871351439877872284388114866772301504436375171821947040807995565643188714999622696849855247328067765403221628886462646174535181677203381861651228692102082744451209225477346423043756038235288361114091477760990951976521030898138500840151261911599672749065442521238170587757307888371186511968178328527598408534361004295789436364190064858998545138199955744708734322685101497300571785551447941434331752086951942198354659335490233942657214847651611992411047074214682432581312886884088281388337725880416379598083315044529097446339222635959155794313794349144639124856066342637134556879326233771875848023451751425979171587390235922712617466700691637625193894964724983978770295646269648907069085702230428278078469907997771386627786034382741524440868066950161440272859326265819304618103539393050137325302807247735794258269949880118491300485081596800023602312426425978565649408032950939240039859771904440006671202932585244448994255227562289212257204813965194617412964700397541664756882641060195529903797655485665228881734817363283738227733640805422230638838745386721026949963167549656950265449838410197590547761200379893616738670351932277148421381724333232844490574733656622204653421097875763604334146421681788883668957543018042236797102646743399759702487723758599508597307798834285285551406772386809688082200555924190179009576448096665000271605053931546960266974666315939234170461835463898264826729678080132586980954198034303446907055539652816304392821699369108093017103225899184563290449752569266430633959977866044611448649058732024570841274532283365464253018799302616140137919850443377793112890552758929262491433418227926926811618246389149897554436393453966357189976443760892428290348809402673749688077689443488072452560502372729651751339357572801757692998618955210207630317092041412341623575037435577357854984525418757457029783505488412024755732332234940988836521648789285039857598712777460395830498629150461084063890657465061207263890872471195635352318497691509086101045518250766009757256335581088253667992360481340984137646534357280621510813862296509689230668129196999129597615590375828693441169357633382023261154581911084432456740314509340930900605472444132630785237793003883801841439401792058625021275306130159580303007169882134901743955497081972471502438935704405542289688879092235405608863778310906848538674531103736030596011530576570077959385176557933113323865920016048332793482221545142477775181576963175870528187784544681070487474124308980472138413074327992921698424000620193897407712541227216388443303543152965236965901677631809251291346886557638670349309197298344958894285190646525658038791067052173687548654838295935785791128139072268025919302027638658754444672540471372899693937422194453199224689321703507405224061127510141970826465617757917760493321630959412447003998598606482036202500578854369767754502294504332355039570066744094711283773181145346466019633004697943726621043580657169113346832160010901362978972193414106280844089262699957938107872477845393349211093717429131344623541137215891762239153235649776074186557571955360047581605803239033604219075861291406308024148186624814029947747392998272891148938291880337730301501867505786431408217972773205004542430581880972741315453761342057571955994808526619353232982745542088145999455732798855844569615248952154415855520035363606369289051476156923734181763013594123643523339607653264273173159554001255557831824933629514927394753229485503783423945492325045632151898225252396820624795045133280970716278793658459597478875358369690743080847202786013579590349288396059915070874217029341140354279886692541093682821110294488620362637211946379840610622404822141286343415268466576613982208631598615363965010177071736834367012886147890401514983599454864451819577393639012676652294375533533197484848890880609140299535543567771688605083803895153321428532412024912565569478908677802648759568057823590875951818610255077853334509958726932685428313972736615794223518366565061171213471851952028051551237344991218113240969365497824376403124619677570089273351246564080978198516705142520977562180139949024692381674425060548526664640989416653505448463134226910084597140306080150214444267281211320604933153176296520176398546236115700781498432292663778360609826566916962881919881917841750327855739691152619210263952932653371186178428849999515757957966889108319995947880323936976077645415494507022107490436151759780107344012842112588051924742272101186199854112681523403773261167925073285274800577250922347450332591081833504912600051764372567750924214065997392054093674558647121176379467728902198241806968846340631112378522050450428999512540100982017359757791668973028758421251988570573952842225110809856094350863960310527677111639393335390519573489451633884760057742355408070933715077662295203923101916067392070727032618072278965324350514731350221586477918763410131730601981506787538238288432176222224279247971466257456241630238357052078868771581460345444700897651676050414789144179842048858061621804965557313905952951844481962358725884081287278407564384918914725612384254114045903575957522156726711091019069836414825620615327470845975791110870905458358164763031549829875852622637517927335889413720678647342764314847486351090600973147527203125759383933523643740762363870304882112732192289802429867329423413734515498699487220887002618772642706328238101377186443305893900165530742558838430558806258389524570084126977776580990857311900030183134630431861436592089099949069620403129765449701683061077715238181451170755793385423837498525634584341480989196522364481068359992539486890617039543357035263543443184888483543514720922031943909373922126319048255898202044021016602389295531190192621571678859483233720289057964261478944465894806699129691017282518439606410097718804830190835700823297450572106082587395521110995456008424496172264254093716184221181194712601734355988588587372931233948736177844576023197429781439242485597195507476399112073178322144714271086697017173509640425839305383176239695092568850948527657356781151242313809486202056178062812142487514423123410178743711716929038940150032982102127307718321503832477736966750359932445781431390889992103568960380169567194978746911312324917883677775179132434015578772469513974707501810042593822715995760805015609317481944527628077795725673033217866373079088556831436639813020944535704906983662480359597518256787666486071721361442424326477976762144357276918592291245514113580133529036415453992994189408973609199360270650206219900841716454776414192726744693566391291323518758744496000634033211345689556630503199879813545485865635107921738293461598140189421201029637734864361953593756944377625812074192442451249289626072741888134993247881338021155515438849307693005081594478627304700544202084493845759400630977181139236431297879267454907029453738737996528926408908395587877824181717778768212028800957004100166284707433044960406901764566809511782757440157999912422874940825338252200736738948002474890014412504064774953372806305576209100681312441050639911925666145060102681814498757538618293269404926513751091744979104842544879944603274292365639894658000300364062784491822381735466745487370074516249491393582563041037996010037184940615827678151278304811431981775186881490953258580709650857734234154428761446017907060731745828719569155058178723897768784187977126795143582443098978325414148551025625047430720081441777188186453099462482750340197047488265908757343119182980155433801738158927960905422243579055636693641790246134951157390334282037549436853303568626879820207238493447510625356951079684571365058900361619479249066799665219433144380548367484362431152516278091576628977286463157020055177605505104484255984905172662571220780577316202401279252485570093422140491847520404165370970456391979388397256587946339106067554607509815238590447542111101911606529254984275691923333890105456245784581953847657696812449980625678279396619022881933397567070201323177298412332522637451666894168852043678919565307357080493187688873931885408531831681447263599519225566693854654621705305016616229102253343773774711694598135632174548175390990418549276473790259522715898945965779025143649998263988653897758066553032325179477269658316382547943216365422847772884129478064098333072072193854754975617907276198419008261803739400468499744759614148841340122072657894477528255207994376464301485252308796239269714235020418490691667484003438360774895715035649964131601737585744542438781934875785754078821047671990035556858063823159959862708184111294154092651924879546309836966328850439234144055284756019314191279891744263434756601029116889567347570073404187586069539427318338868174789099437108886515124077419312286962158577570655916067736442863632421396599849966637968831949011305182040884553261779252290370441663614380816999549872043947974569114471844257287977160692696883257617651128054040055205657945477486491314425292402001651337185063417795789121176403815705812173190284644763356314334944487059106663631973938659050554902565067135300241541434217554049392304343184574164273039367385664315524674225826657036618862510667753867694354989195384317445194022103500144108878849431044844718374711245001673982213795377429604377409886197610214820900518618125604136539604715790750715395385871342589930556817529740702244010177665550490696600061284073225163219191294274167518268488570459496211612408358485529378636872118324244411285060673434465373111597175802761778899251328837876419118023446552379495498080444990940799092636419806443375371123864601700617200161704234447929795420163855838551180217667925349480308202854776958838394044344286455688766887518105224073906838234899287777200501976898837316608671868858452474578650458841530270256572251909384754278789461899081769628639180224318961041428759352795830079169654934240983359538970716120348832816820371139447869163858373024320997658619258877179368296108133583766686854414817398964321902963812533953503297525378989515007837393182695475268556985178703028482735548466485233272480505881922274082730306065019899805619084067634538217689691438997915363459425123221379675016986872462235871057163854106910825550125135380854945882790947563133892566916401864024128159317142110465087718471789281461294557238278451485563757752181120997062466416916618029897982876059017397316065924965167970089421477622232320698434928602163953255435539952018197097071874174161754139296860127873743562428937578081908175294372894755104884643019057792167623085924117048393093493643390424900887935745288298111083374439133037409538153129302242250304721487603099275746537768514404049945478922015598128581498172608648563369723529886266609012514165512503064976878948441792625658458633120958521165364103587167228804765300948575758218422130159463931024866775723344076433281263995651934551413115162645369659394334551971481175710311004460564996812099395982296848871966675032982168098184397675694360933010961333367917535253620543441006492793610196247435633087243809012192615230988832603267157252088940407665939255071759416349760572446538281842339782763352137937844587916000494274790298905056966701685097083131912998456745566373724735939658019476507970933384680147835353214385007791089994183294772208776685144302458026457726548046563357827252136094321573556230197371232746226755152155814682053994076562238933398409113595974203833362370788174644349004427060205325014653821334243810445917467092421141074663907749863375196837906461698575441519103411474590480023588458338650991200972880020275904967999611847407896003567494754965209119210904149993120853169816763041499552641837697141135545224910796547235139880129321656367174546753425290053023558720533051742764507065307707800401708164338685176452721220740954122236804004653805288583522075383585914613192303763199986768235511287416744351258624662615009882682576766294360103309174528960754416197712104617626046614194054697849722438833568299121881779524694172571971330818423540005399716672785406893165852249799108836022411133783113849261521975116614677130718117791098391805298869328896065228989547765527936870712449210056911428797863881461707965704334127657972712647380190036111798401687387493957634839938413056823117765768146068061977321051342984487027924850091367324450064190317630742187328184455669374152554309563010350159661570025732428606254403466504316186233160741504586446754912669711891712284828772764841827795303112134032161744545763735264742977461273845959918697569725148260064526980671784455636931383284323195020151576745259936848589800528486271372680040993319181192119363143556166790810558214830476912301229555519950104445876409596902407819958758916374026198920587881942640537117943134929415886039308038286350611785234742312796345986763211553883270355632251693701589906894007848534831911431255132276789039867100989299931994742797045371221361942202392130956692975962502905961684604723707753423393959591452187547438346352255836119032380582387067713879620417744898071278378260715850730853547180661370444880637629821601034053316233904296763509023923680681949990239750888159661591953512848363490928838647600098211913672801281582335581180800640934001864072780271646610978734555670938323120740382467055793032364996854020415408894236120144724829973192837636536689937489011584805060744978951937963137867949237733793976183457751847286024918926292759386029149885566575845950011527592210646956789299847617867810444934794245407536322841221658347376406771636199413045670582306942063098790239232886606118863961221414348964424762823018261234937030770225277946001440062678386696009926960497597328792023485544566814785957784762031667262329585989048983478256026470989536521891749128646143542186379601986282458711139373379695294824333809557153286890153135214205021467441276178621470534522222914829174307251349764361135793024313553160437044986694165312515700498934794313975914573242104977300413531949614228257371243757440969800198888876599084994427253261621146748158932423370967067515775985296750826736753934248508092843474724350819113635532254991436081732671394479559777330194344233889676742438448956490813281517096641176513350639979516156520545267207880167189727820550725298239069157870034542422468227863212721243535450179239141156500461945615547885280243080950509620185434100150138187082745875023389862075382008915467342423314464273431541193632645768136994618911740825123426812036283195946381085529769324501129901932824932418342549086179520077530168182099099427665168292857786462969086683097137783534140832513744019135809959120709934986793505641528917014127450296260766134558684496426290118456550300972855029495375437273161295932829731881041132874389666340860442975331304934423970292486095034880549985486650030555500210852612801038086978858788778016709577051644880603632550448453683171581041835047339655679395067650027592732751787197702289234966518546518258381581841071850898337906457657774709961405290681776970559217689117109609459698453485267896590314707205281607038265940255528555060611156116366771444276178301397097255200177691437597037191978247027504599345495570615485522750735334505569449182995153169313603176261683053863955543835971164658964583221624509528245047192788288533445725265552501273166598772656270702961278605034934435643890937482751541718289593998455511527206359244304328673627339397826702438283786209822700679154932387754392085371509675680645922985197203459051854280362185507698304296361441584361968619005646595057852324655218534068359528051783601215759373727944580827824935078981610484438399491698043348812287530528901576466463823350420712042792518762517930412631946481402738181627057914521296047653073667739806332219159222635070504503554158624008121681709965688834634663208729950748807539370336951177814454371733836919290415325943488865382538792097321537939650775308512890616409655152999549888185269952065942487820977987313569201052520540625601306313857511599776484763988414983269414644381929233749829191702890715114875800600192200699293932584102385886265442640966043906643578489128409177465452042953148332145566296963235838906106630235074828554995807348986481620877725200148044752152071712042569167933604668201808176298108331477320723516409263326719827056765658596738613282013029060100898833941005110039198277143395839169378989108429462167321881862120463613459084019954441038607382623295393294003178683873416382679307494923791662404626145547196963270119946427841529890624750627873145614862640198330215991483202161124137733392010966141170962660114875050641449256704508258876910763082397409909679270833001926494954245240641987101456061714694340741535712403475678811864057367032743176222565248169911190612720931511720256376690085515524106323376969235922970046504236596886093316035006784660150580258755980598649159296403623011787501277171005261964495835870039397429295863067863754955897015435629606881471726071878844183437309637733583215753365607918444571109350428361363948484808534396930210548045435644511070138071039855722314623607695559919313894088965066249392435425124295944605339448723481627610233060237503362462568462364947032216952597118360987778274063208192409812127479514755849090837350770723686013157378725507654282502991547533154907204658710691210360538184004607179918700654966320911018995301879187842676486894940462016784282735686768779896978848468465039225576231658279629055180544538933857949437769888528407513188054130570308315846365019853642746579457443481990094555168157276616622790593736042512341520789999895665078767024378066814789450988302560649840178244807622619424031775311380149405053966336711038847768627837507618950675271720179517196559154595657542002234692786627265738299386885508960319760847438550824343294687209525312938245477951832817601652882109834708699052053007751586162135797624447602463560452721361400103825043205071695789467439227386120037965479227436681724597603877152580076770065596295567458268781727025407112541908740294486384405238489292822501734284468807708035077833423902805438079674530260315021029619576585168885472609001186792654289270340552872253121483721812171784167659844643573762642928344615658499097809974852854385061237524726557949133573556975509241536256005907309899932525000766936723473655819323994137364735215467319585212093861916345043082899633811339962863581721943267864106936090237309136368744113415219163295300559561342118366037908973903782627070024553261373070535200360665379841520702721003610179998516567476001743136045566076028459369740590658117535112263110340322143676885593215425610567842884534545867191969528406411889847080143215504622180858739469286759557433269970259037404555939257339742477088667062903550263374525538265174550840641185557856845940888418732196970728903670777524611120038333519656379818531821650313240418158370462723131758049152582228903973146742950472957101426477491208921297736445615097020687692446413001507811044448499257469801757669910902718645295559925890155398760437889514360513992001208018495278067100190499607713646966702018104079836132834277435491569022591357070893325005219942312823968198418929635630224558622494676867668906678852860800854392071030527166324748023748736724182607734584174919393953204041764490825569701382132995728475328798319956810958022252097708054572565061372318174776190995390010792306129152107064619934455909524354063878528956860258586000522369448183909324071472423169840842403853830023075630238549808611594125393465228435553019233453252169566102688868021107034597121517664845208460111563131145557253431325293360017993603604204728212691651462215358020405298422505346151672006350239954372937858817516563561232044219459339074531333167311998373911873140379459859384928301507189077736749416889574206454496889011517241969117834875456591504875765953190408332677844971555051203893360355239225579367759068669005902260130411546085428250123758597378733681646819955628912170640735991208519393393842239238547950333115942481464608862116141176231613892470657739265533369180431846981933575998450299587225227489209771890460942061550442125203458711102680818346684733707123623746617121938891405305759703850416545572110585133965629160424528799869990283835889499566315493692271580432048100781679453413604686521812072111840424170087980114384839776193443402817444937095902626352104629369162373976342029390322264702106734739365756260717899553482620526613899240516354023289142607474961243069828001496735604595682090802917958449907522243635607421719087189617125752553045074845494305690560592901454140118071550325520711308291834293816724692151707267037274855900718374281357910779835691874325065897070475749696845021022303916160948228070268215158731195234880358373922821939654906383204496496338288577693719298594224411702718677501072109625790351632842788555576122724051920698266464700592486238903102541651738336283093138154322647801092033451205174304924668961613558281002309505541522390473875362790925840107919193884136867603061565649009011547000605667658205441827919705000775678331281451299965511026704076619552972731779714104747213306904503853686640700961416843257406787167866948125314699350996655062462397934648146061623082477066615007748767164548388481812901233078971552393695598900060931919532364510935982156857986674161192580859395207565583184275482262922357228078446931237513814304340105958896298937054984509458270523886299622125661714555672501903141108388973329816249023858769490982127315432524125919494805267894402279829512308190116381160198606488769003477595490511855832231602005061932683810460832893974167004119093175879961167563912721459474556621695127834206010748915948439663141914741088108497976610184080403322840685536025828948427577834365940754779729439795156220037801320419064014268252234043019445631674264035306646838926575752616819979987956691245313595949489889737657203945401873837947439147827202649079404272524121420526874183456112313204732960044486701047919623971755609088794021276249095741119883939230986341756151118218488318063947654746424188276987884245100593880685767600403270971707170570698451997421236893514665770005579409755062176465896164430789027202851528928934681363456665890323786328690389839753796059076395482873260087746337459578341504803028766307487396955536300143221149241262268336989221651822171415199383985549392122959907550801931773911060031482511967629702325194217905891002989174727097900045620974265097601815449394589274185834221460104830989624429864242098470756778433115835320705307423517183087440935402012240895080251357112906926851203900805600876941349664367120794616562860753227602578287067982049419698811753155885587262176207129854957281742788405936604024302521723549962182668076741225808226687705338762004819420594129261274318345148139164936851816475805545851971533548895554427393402469721183465830061802541351362976361812673075474450036277838194940898067909205230497955170194607038949888745975010715683001471164035600290940963692901744815703057760568554399020582911347593142890614201579182805560468604550208479694695621497890087780575612446438072587882132394336037164322301951379545208265162837566818326011946246231561977512269426811262713311140358645742505067302473087896267705948009411666460472825144309873462907852678665273497332154906187175524675438646098621469031554356312127506087902392410731543046084453124521279916250195286144558501961292131373545609756983505682972406974276301902142744459927382586791618412651962461144063161306532075856513827408962875453478713486409650009130858536712486970959907839079580609157861217540641633719706237384038011852150514241966727339433457381609236800963601239779643279711320196273919110176630170071944869043926957040535614235259234085950506636594657008812758447879190908693592849210719637900661076173860751976132320547588539046794359418762540566349292192936113892719327392506950188975229074196932819375642084627451941036303264630981666949582920773610756258251253819940120667794231945135754939155252774570980555592569531222956783445274898753361382775945357103615077293422221836469461216935246398902324414733857618029637490126475215852584663486861186824880545147787348774878809588378428961979292832116603849004254710845793006069881890847086537507290310266237706517769915845140894544104879956748615669391149635584934217817489730777712585672170352109485046195305082559062113272369125991055310968493270536802151024885322309885185081185352049289485752416481321729005797434455518101125984547746084716605118162813240308178873403122070735807048348775982787729713047726265401974558799246417260376010408721668464068411640093693767306803423903746244513464997981584113244982326854317297955529550657014942674682646571926492955984752391754513731606246841492641443433272750889506178625761161930616993934469292105420380821194471683683215091123152025525772687434321490968600046334072481438233896901735423141928637927250989606720600908932555566282562592934705526889791761482201248765665283819395968121111470394329843259323682766833498533998432299335245419432356037633705710237137188356664090422338710493201959865661799842398157648826566753837721120786137290274041008002504638766720083188467842791237428631431725987544364319682329904647889340106088868525406824486852353166960649089604006697848764986291468679174997256427607680158900492647002549237487791279925355695800493401615193108626069911421142188834974141945128794174244009914289505600749915344552621433072323907408399204599693596025016344651425963613964673057593972817994094914107190963122781574317357411538628238582054092441158105695482728005995003908906646702696889602953459464323309145252211523218755955253524213791394328709459310769027805555306738036811283249157989045710199571231157545267739787091185495595270597641954903644801251231794508297876667062135909787507418017001736808860485456480481998675799362609936163438993700078129491243352639078141085762518930142699534224763788680530747820454878177049318276485215274911546913592392794106219001142116544052257389705812517431661269259095465783252516604272987592598722817141800040263920326865933486754990534530894279466796349145314355230741861485209657845662802672617442279084090672862067698343056775876493279249670646061602215890748177530603691111308700642644717471406747130738968759981515830497362254256853807795022331959473877515329666642644604768031789247121155402944304244002148423207417135308639030569105506214406897376908999869691405392229022705877113759570831215680150202038723348279196283909506541619010828826636338460860676587950315096417768180720894379009329613285938568556720861990885054374259786266990864587515161103627730546027496480165183558462945577501300449500191378401643592507023701177387108599853587349319416239613926371834368983239039175216227136173533203010151671947765539141135753150944136264913761878524503216022074209216372874915177661959048422515261640703744097016621904348166972698765194527903611663170150178649431522325770138189193370544884366968462656454941950084021826283822150312011037378992417887603900688106068199984780697388268170366330157426944102546275092771902772157410581828897985136794188996182677355468899696113525055862221808562410973323974555100738509174130224001105975471556426469793791178459615145906215755408891497832792293076195548252800684415289028670755433048343421889598731086071686192944146252241947064217283086516578433496419215815156043172526008216635011099153530120274694302453913032330677145445903514520499361612390000604001147159505593025328411885639044416809325451699877819394543238361094754670336655253851391251866801467059069783886964324731166857182292598637687533993936156442177838734034989166001965945226292619859310458419560123464799353684879470542428087574598336772095562536531015571744206123617859429426575984156138070278989611245391705675530263440739352135701878707168230130532824077093879664193500515419713125867439193869000258993673392027245668269561248915511214350276429862838333199477956665501880287518467661671009696741234374190170252939249392768521349223222528686665534868638202544712408654093614451230036201774440239446835315242498556780297140397157130829933332506649143738242033355538913838283502291333010677623359823949264239516303134187729516403608330881066932112528008657494344685348066137395155111279038156788033622036746781899726263215719987812384091800380128861343234419199070279084031731301725002074230177157061910034995396893374316432935591189536152407557721617896168738181580807296172564132674030601846551157533502878870735124311159255695041790790232863812598287994657558064915519180378193099834101623092026336667673022416892534600006678889873495042081611256055819405801294244587334891846832812718021024931729184992264163275225828535457794825336774197631593371522163166513548170868634111623406267811408639873111144770808389727394315846714125287127306149179567796951087162569635438826112395007076208894760892828336182066927329407193971178980249815371693231832707727215784989098790182458302981126468416405645577948591825646841334904083817149117768886751799061438680681043896541176222033911156803350559128014708476893678150924263042842159673339736002512830498772931084899294169324521399216734398911569866292054753590342401227975454510986945042605384558780446573297088234285229375078467113892796746878525274208765562841054454937897907539496350537244616040390757365643296711020597202353428802860158947532938455085836435481447494536572656607777067667543907809230996073610996796035217598968334399724751011963954182043848194801573777038854725539048450401922696305209262405082561281230933187849735620447570311093242464316850507878863892203944988216646338467070842535195741678623637968863381144679440834542371797484226302743213359826015564287577388105987592418701505080137480974783938331550645204926693566055146832359246857371709676760561166543660047645405689936775988387394679256225165617019122173044887075196906802104715183802920066373022823290315849256797143700212411806838904320371023463558909251108341731519222688376878649085774660856620040225700914945311588043908193172281148265160985972636157330740566271837820866972934576495447262791814122200991296441618097281154806654967982069245713186108950335123644103521281181898050027638036550254609815481345059608163025639685201532633280700994584585306406635655195464655947491369442021645234198698234811944169083508938123552139455253442591535702986131024823719616249012515228691757802541787435009487215425661255780654340893543431732228412966222506945278924952963239301370627153891114812470900765462266598247192514234597641210619042222721194384940384522096291902934975634033673856439098122228209631646899094054804195739385146396128430825824794224286306374974326762419755683703580060371055423327149191683556151169286473771074214772182027799998801751372764738798651031009488046744388052986952964168361619441046818303684974557022035248379087432009436201366551733644128374071039042292945433300537033523760579446260510657435418417550133066862915866299204767585595867325540387492756752111277873591381757820309783077877377584089806838374540635403662517145337595412044275431349086973350811565044395633675712996183816326050946155123310145352315888609419075688620743686417537908452223456134740116422399193386898040417833562474188003812164607184494311457557887453004074645555942347419256857397300425708636203158570099259332243736701531815781886310915879164152236209976923855331822895018438752783056819370537576728114866120499027185534811770659697817784401999309491266219930747843796238265386682423131051823762827216048258754790537981528708160060708956785986595872527283344238995146047736763358991436552620438529825999976482828772060137925622592954316138407612308385144860037008142804346365132867480207304659956664651276041975712475963045560331526505458323552952824089975792651213248287227462525546359501296544825239278452748571922422056700094541215084189233343782553819503205989429259628255485948984310741948552555810209615953140436428591608450835250457327236545503960564125992477256724276087974084103173587035110364690332334643789188164849141387942413828860271523576029780902905522499520251657136147972682897791024105621013987069207599832927392030600000673648809054191182959117554072876439662327773902677080394114781069465597967385838038344961293228617525538758948095310982430740970838736153562127158439226795727423770277615336790592094064800348613962216336748910894227896168928698037001582161193330152498755092621700845563143673504123569360489184109307970144698744225869448516482913122888477697751689494884892282424569818230236612887352079040404545466406568610743031040443741020227944246609255616667928356750050758425094349854086970835340177453629566672676712439338996387412850186144873329943295414463197111783999805912868700869439287344845056043993461204281118962779298992067121467420300205811231587918480565560801128814499737210728837271869185800961207691003615388276600381337451457695889735090889820687471853316013054630629064638895265382000203655712362278174034019413378272055172132728691628343980804639566074714821629324795142066440664243449601344026595289453986140937455151908044678885062702660287998788161012080726766169648852641172083246278944725027500972268758853932792492615602558008609397523539983332780326231752497991543895885495679803075604453407703395132766789519881923161605546209342261039564605365823850408417557649872486354924169137722264198539165152617344251797912853221593458522790665255844053311855656965454098885408323806376832193131291259811236727925382119479213720913589437374654351199864208303574334682792998691442883053584368846015126070760896044967723282794655682476592896208210853474871559445161472105578969590077849028805254180856799026245319255226695746847522527513856149028884131475614611016217116955138409281333598202187271466381047429834653233725416203094402706853838837379502119789805924745816743038994614544549248798385773801345232382163603218570410961000681121813802249051227920151664631348580504422232757973640677818993224148906485414354231929787050726273287016467015340074071798213339366923237272339270950905937302676152162472415675552595522248315213306760063553933203627879543373531725487220650297712564705775395943663883787457629087561415255653734686275738957803369818139044676942989102422179875879264401724404380846154506425513633792486621058906252649195678750936732980535314419201542902362436904844840607476228956073146077214934101853053321418135058762767519424940695379118058837453172542123568904281334360983316567431525034387223281554013477892294310670747004538445002199913190681959122405996826249662005812314906107543946910560557287946577683066586993345847250710266799918157734708358859519587902524015686371824475712487620734331807758255131993368253051390209195620122235501578698105871090250329269105678927139173527539865334995573510586105467850781962733578214652052899745203612735196853599374620694663017430688054861890110247185910493490992718903103398290058386750458173107212036993038808546725117390892477901315726340367734305768668744591049842696080331770877016177597617526460036260453663372729005315219244138718227375552094691502754547417693355942888472096354188297856423939363590418728779152622549973976669274278497037539106176915324029121398633054121982467142219820367124520251342308078977445007285981200216750884689323354597471611574692100771446289353632897380244721274638990288264031064913896185908578854875011632060059153548996590768424148563348142177256842495294578530643716412432846156546141199253736387890525591601066339278402355137519291516070652976168662437627401132149786245261252725037231331841722837308112706210163298980931785441597209532734787485717077487635513038267081423739044885252876741511031296578297464831550445938831653917812687760743675872354449214967504524184712720329840328763673520988355876653803983049269338212397585014032956216368953762245654770382530984265762740027339133716609480785869456161417934559851321950590486164309247477752463891489989103749264610603324674992347402101029620925860890696650032492340524249893393549894156731983934390687719520308663820278652070173915920893735965695910165653333205820746871784068860784391931022914984273266298034776379772194183071091775267814017741078109644203735245218115679949430011064008711268102834371700024592190790681492213847709530956131858775890144337438278794886611951821517645887913526948675320894564771547176750721965466534683718931193716468112073402752311807873408241077828515747913172479862780536026345310310455076485700292509471357648863838689628498033001759097152366194616165502934224245269551249908702152297226877140386849630194106567817229687224318838492992698644424233474714279549635686176752787347635325648930839440784358155088964012871722608903809233098818373798887369296451321023547856606669965236946401548589006103701300283599235203449049282212492170535765430856743256891621785717167603946184548832258709785714296353476240985110702943550536374801224699727239898499218696562229011827900401698009996932893956484746688114188332594237256601861155223955955897713418854565294016275956576525367029727226881942549022338995039173991968640198628142749595563160183926642649629610974329111902272642481238703351156340026923021810226097291450272655580159125925655416952888970594551353106471746723097701115605224234161514880369982054677814309734859696262977675926647180852426703030404617064661979045828374184979143056384374101615541279375344414652446174230424434575144361135684005918930956239945574156769170740942385444972482743782978087644729577218858107071573698852488469553696006698215920131401058756602743340477049713354272367283516287564684668211068438604237403471740518068293806517730681089222098907346229229388639729479659782609147571236978070010952792756075327782175432614414859036471353251621398329391030274667813710909185706743689758513562280208463159961829565621141433818956103978129105515871768096666683232279386612598589806569070602446855261693967542626405095169083507137038517481326710845913250480146234040764677318659965442302158320785320926247068285811057034406481057749182899037236071985501984414741386711260265015510670973934732075335527148654464052898513942500815463668936872843355626869222677249135737159851119082709725728312627056762341944380284547289472925956418778026172259849255079138316267253612129780155196750827906482153236836913141421632225480589111484387356680892786391081509625253404836202947972273266146673447941009159293163429635720811322455753896284124299306661221251226202545625707923360551509773079778771152293296746330899101133898753136632452287976124413170736876771127932435098083453969095118490249912853169630064887524090133621173710516470480116837363367802910620341941316438080733213436317799909390988236443065680964488815374669257021106736754822621103198315136429755581693502897436884118072782486128739186770451961344690489470046765881257413204075441338011325623975236036046103002851917257301304115104622671994506943300733960689440243514274876395512439971260722982323804404104020367996536077535892613634522889165947505259083729643639538061376379798332819882118993528850913680328239114335765810940999564162825946554333896504772826677288785194014868112911312657972363692333050779067948453311765645830631721840167012181854941312102332275675560286435395074937897170337008436623419651269563713794109258351121416858631792836084077449249658581761023441780650798169334106613030822402515951223622141337629538292220836140167600115891202653682411636218167626873332274141541686239199771913814275232382203502885501423750914261699188257553071070749350450347897115779172915530024247195142940050967298869663050947173014436424264819019861118360557482156236085352095226969005825781999833093183360720058255972893654247920656983672331310833283989320059473306228674664093464751475519099593073347605866540519591765969258362917541667461760442029324100890757261345847133358967702407183719094267601078700606947181468652547439234799410845453111649440809006363126610662457076607434205197522414638020688679280812030765603719111503831032963886226640307529241580832788460775553636618514375008252056970742874071963271539042873411393611344218773594388012016919746702035720264984005618224137142897214989485258123484952829076576129305770346427262757056139612640615790862133331516664643987445015381549228993152260014310347238663422620225908003918677652221860908315950910593980269988965380003243093289822625508802034905791653924226019491032477807407233191199671888619686690935322010907538424049981910302133822680914416481953768155876812902911221639944592454734216697671219930798291793840507908312320755039533133356930921270754458395804705309954705408032825765733915274451267714913163657247356155013081598824276946763516413929668591806410372559217510642117880549408248014139734434818336640758694706248575429977976256717763217066070646592192332129284788229953337323366713715118194799387458340172602089445849469767862023309246444723131595521038616929392654812232318592020361081357875915011420576763039176677714334143916163949533819614660819580916980464807554463224254958624019411626102437612095023712715112643937091123867024532544192698675735789131420852356383205420663391211915384220158304808972813656742536184973793103278292140817713303867604863241862760313444538189209500337777399060294502523354170360627880616839150860317238756117017960745358430296307912439515081104847795064198434263294285264151163606023212158561836017767035644056459545171403729067939783362127703951766130661694360313681076310468231511055561837613112395869504928299912777889863609991244147950971865281260368551937740597455607458400215646950415139804549255994535769318410713031013295705516023992297408268287188362562629479169513464679712341443725774091027284667719609250436191386445370897362556223485197687524782406617493606199042720860492342038122011930065698388741572805327326431762158716999189998910361505765583026606889778872372266931219714716251509821595875179568004943627162998163430022823750075998284239632279820896459493039605676545751691562537362530583769134359997424691794208478815555930271058722490122516498180570315209262093073780496801772299749267838291275115180188570877105945055422127876467592802765130195204253436686993986890446094255427500223711273810174023775799052219531404457331533567632109518209420979418555581908209157537483434550135079306475046125862534695749611418086750735492321523735572789647989085962419376758235424087001991623419585825280254554845493193032319500538973831070265811055367882241259635179369495767349096189265376713054449415096627570369893943024181359612765972441596888142121516820496663398449029291802937228486981782216862448712573312249495634806273344508856867309643699112048954548561911595475509037362625487001502500647578857189649261232893560637477095542548653342784801577099509083687408308949509525935501002258110978877533863121687553298845636466792161290198380123854047263829962383571481399210132887530293674389665813121426783880108350817984060173759466960748381822435846754427783216600514517021848979488837853436028859811911897185753497286535455154692519371730094444610259295928024837543659358172081779372771770797631099220764760559653226620875907033997927994978449087347847174106763195682157560613756486419141249449555341551022628952874427651740120030348467750526884267180927320662890543246161908466726956248593238292172933683758164396528901930250936694712037815972217306928526904941727184674621527082836348901729381636742455022271675767774740887411897576316744590754330894110862552196635866384588841845053935962787663831207137765001559028596444350925556235336740810503859254352862166721989360821692473086663627290768184939656889720471388755428935142082212630482568636492152747078052453122255509218433912558505608836225829792977967249616428678932245402157649754906143388143623713890410982875987850725517603897418398329313102800914447969087452793772051604016528743992397482552043530972717062278952214302617695538091446100076082439822837788538500087423761843410562927063203787453093696408864828260379657770040293161413187643783508006921770835567555917216978293266751138604850860473868775474537084394343683169526029737016904954228361766594926318368120252410149061079705748559908724049239438193989128762124942681319133045352252495415006606884733968667581303538948248637376621516353864576687196332768769464707304421553566154054912053695531910955984371475949749965865488691538175174805738097696659630916597782681730658986771586001129188026615225095586941605397566834561726679623449234619837667518527644612602755276772337353844424362459883580118354641268164681369060686737816323600807864777179814249244290850740018892330319115543662065694505441888574541517082164086976073534901886380285927395100006877256519161821550709058698816742705360537289620398865380100239773887491029238860280774779110400680675987730995558674180772831772789871200293510924205926129298094564272787661719155538573489243777325000859179294995195017684621873058700732255559092304311826777155202578016277123849043061688585913336909363255944395059029953497020218000912520629877898324887054749374451030012194586586413657184366811332516155568275255043820453417951578879698849100787256471801681703895895587592599675275678936935620754686712972175107810604826955600898118028838379457719287328424748459513564447224742260130127909551263971529010255006129082379319750383413462768433725006003218263990045545677223677529943070231709666162372838008637767175835690009401497981341818372959252468470835530409569423881412429668708333635581468671905912370410263583164121344705424565969204307708830792681518920230483003027772020687563410387646360500529132044242468936747187925215260545362974966134175184917887349367919674799460161648828975274664108741194335509411363507387635343328360389950683883707250822362894622872618642991162350770053565118529340536423589838780236256796941011748955452046140816471505454841922239832399306413304266959701996319126472285006775554491360904908815995154839195192295329689628190836811998813762128764484977958174151747849654485064529123430563113347735944159256706349624553057330255297637917893324208311885900851399272982708758189532090775785354507177052498187603123171337961219247504730037693187850646522278597711371752931077079257609257280033681339692186375674831109232259485935328904365663066488262027948980969080939685915332533342068671439266879740326724658112908808876376034472499943951505160032639602777292580164506788405843978535756199394698798153853136269925129078773765837878569415979213476010350211054198144161080035008484613289549876839304296911002714970154724025024145227664103368606014400091118782887330157299274271351729944004359988578375365294290438225282229899544868386202047459817273613166378365301392656002104164830868815489937506522164231020318116081335208469509947476743747817810318891540584485785327275333598489820932388688731658282982952069417098528428004903232066580529248282080294180429829844326110571656172397929496954466919777686323483351239952382421899276785556974986239135235841667538202828266313006869860156499023593501353714249306667966035659763806583381970275042280151722207880459320353114955011182462307999087739951991934589641741200996555523028728008772061053400226852216184312375663642445360323504035679892727941768267569814933476752235010584639524453112512477644002396617850938467251427443525181527960247679446366672000584369656467911113105441399715309015159606822169720170315187270796059477670155794400748752326654789602713846200128503402487053710253266684580220605997083992053679207957739177171836846708073437707964773265528526739451080679603841343774153273125816049686570319577424620848396864148059585205172615073889034639617450096633528221188990422792871279159985645932097742607587387420021131864837565243561611204008364024491973442194926086457948473333145325965613771737677172993914641971431381696339774180383777895668336144338874472091670832092335426651358785696441280587061396330167831205457115325791446809301610773310489841177436961859511005029844035729597923934892165310105584380298083127893008228937057587362363560577882086307960055797709720484402336174737798247768844336926521084869058337624525578044050175432201876440534561121625864894172158864172722274125511515792994890053503310948038137460973071327737366798612240447819089390559384521661393811378811704048952523102186681915003568894466600811925830475834166704058473155121136550771192005798594262794215885296810050765588693961959760366338564739579164008187758006713393165609028320562052434455974128844214049108825508506132093918557561201279802989694975206266772715356645146531650328905318708947871642435205039187447071797592007361884445648032948360300276284956440649665164954128306692264610803035958652491779194694726432215805514156478519132468716467556725637769839849273690273284868758816928629157063713100535561026320271928326023706241640027846392787188318299209792889940194795965803475063148684318819807502210069250318952621951349103187594712575828985610790768161607115490144203490961633240707077373250142612766235816147187290422150350224004499172879492345003515843314338788091489652146522796195257427389411970636215978066273010821060742643452613527753906275162312149266199242680821600022110032632246470243023815484596216150028391519624571966580761756469309381942287913453727691573842970635383402570309524486459547611391926204695616554419234389805431608932246284939253338964001921489419668396394045315303863694775935710129294642916838407379113008945532798093924058455023901791330179292214226612344066238109052780840112750821629168507363728303214420396009204510974225134378160655758039579918198603401815702463383563220619324588751013582721146696034912820826651437915687765784945615668184062345635493280401741482624606348572372695862962882299121558389760846295712009418125088027395557063947170220010969132246609076150195190635136892149134272414596168473546198764402450616038285511465387038574369252539809909059471353272167354140021661597968951507408053661586438538830427841963437803251021422440474098862135895671404933983458555800431809402253081759813067107587168432147262883541370366243958819794576884006202461858983019014787347333776771290265444409720852830969926996632169719288582742282329641757211146697188213722882475158702808977488564146280421732583242290684682747218552094591359045771310565821329892917228107700786595819355700478465582583325722660487403545529486395322392468469358060344861947572651607651229846435557891576623002471730021383036515621352027761574754594882935559198003680054933256588769137906809126579604215379194148416971754441086545715805119060556856622874870857261471591962009090853025934995577033159899838135864755866290328621498638737133194390648399761809877447983995413183513205339965822336090944851643214884616959746167881010032655144256425588672656541024512294975310744606594126250407735551622442554477099599089574276137383602520771575093162683375390292046534330387414208013278398325251659731743523972966697772624677576737129328071191670232671048291668014843942801045058959836458370349403967441115764397013593292324697267673590874035555794456181080000295579996052132932540177275287729507890474564684027973756941556066586848348519178338126354232513401279997522828742907693740187460079323303882187188719913104308375730063450831950176372648986437560510587092892926514699038554648403530066940927554809792296367738913434546314290806377012781761461520943218085501227426285887876023883205359147317483242357320877450517061998014320646673127931992496696257018057258382219435276181224505810834913943793299428062707858790415338687017354724242349970835151630383797928736791030093804664557620600803902763811939567213821959356264876635024133209328625649994494782371916715874014121308594580197640322239481970111807262427944240997186193845181669304420518169379719402968347547699327476316801289894984876016860819587326980573050019553653833330930658081002077251990153925810921378500268875593956485803409556915922030328304619051843266439882132208534594956682687066284101658951905173488435036390043861672986732339116190208220319437341966184267669252972360713386321497246241691590332815132417450323523354716190779240378861791821850596606692353887980679765219961538431187411420867156556462031933206447722498097388298516171787391888029345837863981084085498523436381970631004923761505240999626888166905394955241474129797940467025105336927494227360168924756948878050828601982952408277990104191707530383704645755391526502701366389848198924473940466505826462185005968365345459092778277527138895656123922893870551628658751109923917149306426057291171439201526673055233655192170859885158918203855812427767341012286487846433124170736604705483696249809427232581647892172723843687100941414860650055913637570404577274138214445935590313628368047517118440944511996356545390033927261276914846195992162942081705492403755124632465016203662905380195497762202085980954389568145741519832721072689424802049818145568366954427331643495438367938110703323984038679573100186591551478749254462547538769791305549636949888682173762233976145339104284003045274037731111587654778293213975227679653528395565009035483471503326343362438473847008057294156104938644961399591495695103052406779657376452428162232830554045619263802265116779131617882037337120424858593544137603904515760628094583856126650227790149044747673774520966757191415969099364690013740049879550154116630644438886651231844618141935984187466865722390447921965927580421874343236861842933530745353892389676600219011362873882163516558443983296626419451188187802289342073745108447631516340420427916463976850242800987329767372429687840397303030839026398956233681298060970345566507034193155710622350329327483083919740115403832702089540486083545689437611739951246407484666949795058912801403252384544599210742858605579853647928170374842372371992974592663857500092076796281514369768835098679416843126507641030628294358379024208960586856616153309096301002025873600189114773211243250341565504770492936103736722353234310469980898321166826052711518554101332794309705153829752411678480681947914525683844031261741835411439508261938715707130890384407441330663108338754883456128696307079986676701958066587680634713456065810387590192571143874348505724421441360484888779713065804923846338627912210631745756160966813056853054056402321190399103409985952852184858213416879164251411466965308292040732005760043274317255388393544861652165687132855487456315893531554962111350775412859214062286694688110468074867998035629558914795665773166982135092391153220853738493786556191086032676750013505574811862598193313915281347251421220351730351612063432631797586946946916776383755678050057137526202273297938452171134493064747809596492822092371375417527009577264490563055834870890338915840332934876735997585565711835054356933196075013241138346946762760578474285796900217010745601639853067646278680985747186260441718065000730481046751983219794799292262730446363137814590733564252399785756566397171259584665940133917792702918887260615035577023793858625671048734642573177366569301210119637564970204360937318873824018792924677231751402417911970910039388151132916368199717344212404074858220590813507684656211880553121001852539814661069056587951325492071397668141772242953835318980290044320782034243216975465862818279826807503606623579711981063142242635577126576405964562364985949008103190732870349278402872471927387233994773407893303361049639961020047362855913708500173286315931687372035830460838868512786155218325822722978654889272561649321379127808293200562637022423116188211273837540716573627474909728981960756372041568062661567597186578614553423192306967121334252655120952938869420723452177013813367760614989752778731070840055040467150129228776823236748874776928353761660904798443334994033064769807103904339538405277644459217791922332924726940142658171106162600538208560655762433128259935030943761080175214856622563522919689421353278551055126557122165191101076690350863156198651313542519925379334996807946765788384340892532945408904687227175021801090339938426004096298333638568900724560822142760578583034800961178279730277891633206553813435404808885417622776929751007306348340006317489939226543985058508059271247553091375651101930550103249565519068967680509977917153028381122360764879461922227536553601423228845512932975392844927861790250177742712343197228667520986380438926804914626655854929358694019074224104271184981182894995063096569550427340678617301325465041069711396269778767063354877962363206991995132783834554662074098082232856925427084470543363832546906419667798753855345133900220829167785843512745652531037590957597803657612845707347047439172211796519576854220296136886687433822486245509786767769516597874919146112044998165896651750077180545511343177315841241040016769543750035819703871562621355212552279034644784304598883530968424435915803910602461955626698393345578319871419680054420976596586853934896511433159305063569804302887125334349466684606261991505995642573815081771324217591790511499066936119829705044133996415106279315889585560512364945654092470894106344756785780592026359556386254008995817187732938711290133564032679533209563404848135752038533572518940822373751015740860375752828594724849166891008895346099549497505591744557651929480615920018506953288013335954059820000243816963897731008546786038478640370132491401079320973932192884416884345643365023921648338796418292052269995060389069801300699398326908320933359990902273908758650468735845960668748955262989903930907790346268497204100617343695288834222563417905151317172201392124638469501850445327047218031602968871600199771324909766158855197115221514354441331073700269250499518614147564712001408587180710751108420287730784027378901693954828960513832356996003131868341024953648390875211007368875774616627818907027740612214964775007141439557427892816929595509268506646316094693911359500861726746952926324807392324573177656619340572744383538778436592694388049340531174284664146260402744906205087522951990967412452668045657325914753025674543665543488491025487004261696778332985968616982273008615715465881764219633008559198693623053179195369970681519432446289787446359906575276358803532711766960733607529667205676924377670347466067534948300233031756665719184439086576257468312611596080838015037177451049551736994031303730249691095910961386485360497029864585141597587180622835168874804646187327204538557881792080915541763724956383528180852963226095440463326088038009037059267536118296292885727002338144424559288691110314123781790827731587689796470208530861703899107069861344001001869762258573941736467023358929440269061657425452822630054533237642144272073103661261711419625291239537817356498723089813806889923142780492620963172755880549903983861650711300809306880893624145166348090312117592907553559180895083408745228661636797610444005470509701188914971081539569915493385888005349048756455077855464119768753000765603030804771697034159530213538900463674468851465886965296303671046913858872618020456580984647927835897584788225749563575564182026316173526312486733846219385237559008967683981568981072630564829520372918560528519203603904009193154252461648193550065618652806162527286160456922247899172203048574180323838004697512502707236784101057414404548820625882085165138750482826356354997230508928325986636421296660325184256714184002146456147401948631830730654984941925851976097751841835247569430882355580377512304756109295503404871295901544905894813463264617964252346456374453907510122261710105216359363254795329295944029929150811980946971065205711227014738048697671280907066620193600261217410557446504536077565625361170849238393515640654764548592616984065048079837819696967253838833635968943354951138607184038925143368453663303338159203546111513546474072453741414936784199311257706571746693671988041482982556512620099101544615045943440205650054524989179638628521522994674250097714979925413397320127682898875034388766212508616120369670098464786847573501106094701555375004504599217135753899236600825183351760074518362943314396429408344912845429599254663254399667823668601322307668603113624424426636818901650833005201464138788255836544017916640380840117085577912480325630739524546218222831028629717855572573477518212446138967403477273445267850279655833331352937656970671754809469610347260815885184590507288170956712525527022498119374307358041945378857221187600776162606201347346084411913283296621701743228914276550527213168373813031213812353561546827874328227031515624219994967981999861427737880857656801328577962874314822601093560270611904432592523673230369713129086327715081623631623213360962232331472251644687459571152559969247326028915628024243376184984130528312626857582392713461439850946352664910703747702182722192162558853893290098851001372518417804775145656113852419458516682718044879426470040838723768738169247122979444408589242347996973911707882943405209162112198396318128495362486678460134102295590608172307410141782185881201054727658287803463971316728071348583928606884165417670070912206511922311708200635285665869797003095068474087533137625281828054514586898422730646569983638028374143873341593106239197090737097719304874483258566094986939019098846107571370939794786870293604360583448000326009055329099652506318825722612929634420449835338672703260417535802725060398162613427965087192707834861812539943897445909124145066475784597493393200373345260762116024121689494000242112642352146046315197244456067357269738816828816623992844149994514687425107560467577017091216554477704922967639848892287112130476134295759582071873068450879943613687277215969288914841742230208786559716125073437768379080100798730021294492687158781250905813463087097381714855173156105116871685986204700284405927966406344523834666356348056185236851946328895813618341418452170032395849891508547246658386893886904066660947108114401830377129953687947860750012812376951579051891188200496843227227827829548065308932217956940639060426682976134761570715405751503319403009920235470189542856402943967117634902938692535610043635100746379593416574667367505290365327407119916735510302871330527701822114436416538241999114050683177884436883352530659385392690024416809152051647067635346126089359032578647486258605061053658497728404987805204338406244928206044827959797707180331829064460268270496968496770541031864393645991917330984884754566749877229087637212735156299577823506768083812110250473552827425262798383514696001792982104189403136751338965320665733915356120814247151890852296537693237594547388033996736591703464795286538754767036511431599945418200478076728173305779798678580576458507538152666013192499425111878712858091709779489009998936806165829297201608165185157454998046653190859663621453710215520464762685444762833745269737340160912587262968704927956883780166221286525667681978794831261557706329528298875618151817324218372986271531839442880535645798087393592163251887295463561903892552593328485194222818156359089336835538011312024723210309842451581143882616709880069766688355234112186590163812648244763687066572972972056724225819068271038868451326533770216790370226510481468240128045919119359449714137095802921670817598574083667833350852013714415840737072368287197126177200652078153333522987528406043375580636859708809311197738471276977716701354968085024133983457359723894086092145653340734554296634875724404804370444858579802298644758836092704061062609031559090067908482542036577996343284265312015014888161774553267549944126429286870426371066954168440196641510290027204844685543539289785917728809501718701525714308634960433860692944992948578922781525038576958504768464125144443526472596329816318320424719499979993346633391868910188281839698070060768873569148431618325686069892495766859485403697532828242407888029566979668937136079400008629909591009590099054904726113279540042393190601183386970300085867340258288414643532791061074831413865738232685458205072851978020144905227954265697976214928966598211011216239810443752889182628992643827672308649685465003144954539860221534627176198877105478894427083937042338089047513823189172235930869223952135491400365237827446712897112402629340038593954294481835751109417695145313942372404726846215009076691816546189361256261461072387038739225972344597643119234137481214986198128351532461585395892845660543659189700637602714322240019474560719754172423187698782882851437366592706264689586697884247022354983929497115625190218452698911373174314087591015354824330610801227873970843625456404573872440450815476510301780126649046677590623902896375363410240001623852819985211274257552073319086120798240630719670786635548319960330424107755856687956552529206597095930158472379631295442339299396751989404254009543971043898974832976636296749090564847361001424131441605770481716944758179547834747097504776795993779838355557778981848083102450732387425212215390290183261998809850526748992711922557199850644301327131396792435660508736314931527925515069163120281781264717845998492580297806614503941863615183642567301849685220592914638523992413944100823815154835989712943448269364722058247166147976123555330573814155152405118726542079859286491679773465173628382512890085503661030784335338349068206320866452313313088044026455009984888603490916003715239603388816118480483766053413326701720956110479512494255106244955899799386855778053565253720949802279739566102115697616344906234619739452207166711733471813179321870886084710674402604758029188361182641071629253857555833503906780780454203607445687529496556043846422804008268993001557609570377324343681167669018559564926819717011881594121011421420537581308086979488615864622601228651180183949128253996656266444185984994707819267304494216034609554203965214267109097802647422895190477536167556315587785550099623736955666146956919919335679749327860384735096020564361949325182309692966119976928370705110706292722009459391835066766405368674658220275608217830592471819251998517822657499709736715556301780996859844555466504639971146539144718351173360692600307053563397648867494704355680598359051910134351638435473315982317272722451614023678232684697116887204627338548351733499738589652947874074604531767836350051139078842050727299413901212577712851123050959821607340612848876381666568335630533669346115931727116901408778659554329458091060709589047713754283880728920897796846136909185316889501243340856452376535315845317581307831377241430560192428337074471255155493843708775608198523250006246105413895734818829789816991442283884737147103377155995321767275861565460222268250872775882706078651775599651797947507962506363116169649892014144863518992644124916798629708656911304168554476914076933866894295933157424567180666048769728209523126928357837624580106222449314048373221132166768537209488101441420538225943939960256200224978274807809637593823070824220965135554877204774386881723489465410900605325342689381652707906015371521097903566302321386573577006798742538285982394550531993055838824244248269078719152105782439681842573224299065793417608567070407092770391565401078430234199555081294952696591801070749073915714136189971339079446741926622637640550425326386769145870571286103172068245618275687781727087996473537923723886075358814491786435632684734999902281734763833750283652481495937438236394064550559772559942163508698600276279882766958209544939149094478833885684949168081611940801062000364696434194053546045999724303460612204830965902881461117580409124312173753024624664733162270367149422630178478496043334000662524923157854628877365098114751837768225631216439887575295385809533748781023764735590328265947141365902155793138263301873921084427281779071491652860582788534184998036156983299901389781615261881089927768994966947675543772941812361482232273467030245821414600499140524291756535256598763233742312779816924347175454704104921816657492425147910496829606582561076449926884141415997943073511552789649648857324858769742759089479461543601643115788723715171601104311818046798406608357656100116547248326934920740343605408946029519232824687693675297960739797823510001342990895765885466572658956802341706823036742835518429956588862759717921029831793774232906365671367170302373193451850532307582202974308517952796441871107713874634033756415158953861292053249812373906501978087630683077918316587688195849032065010331075937842931249289102303847017067629404382730355743133494911551911615309463773617505595831128348403898790133734499258311215007492430867697561289381235586900841510098857630121798527490524882762573806056507673540840759590431503112449079688746229835387222042176129656097178215792923182110154711596921350006626037609971500279201825166771150598182031473090688514680328660621444016834415027303081380550825489871248466197226668398878699431853916607396101330972193312785278607114539726292958136673939517887783076151627185878967626316594726174322274042644958153600527973007046618552486478007958534608216070154252165506874458448337709315704785135871224599293613003280638859487683640799342071694128731067684307469392852483455793243560953973829095918514855554348144206774972943584317044111341108965096225787302978775230288858506961701458355266390767245750079470481555957677199055269868043504194103136797033413830705935997583468745401694570187609896280761633786793482619701847524478376910212648136098448619075950381204898395909960162910133552577768198756131272142372043233700853578685122799773206579139161432870227057216779099688360504311734136910299840790894979012692223032526439433962930534743826586806295763130379482787310194685964118081884669731981587467521264479471391660234450026049515286074575628782850824616650630959861072046312569549068286553720002381315305651267200855367737341746041738213024567241922060294634516688071585103988492977686031195897313357876504946828395511315827327373465128957050281803934337145259165941199082749806652626887559342646830612167264953725298593239196301929071953285430072442252434999841683238870701972904061824147135181981183544156298083901839824069313819143588317884253861387098180812077092831557760355604769041970991443964717614101694160684366992839810901872440349588942850184995496778752757370754755415587947898467634124904416010791053029817178994698096097157636315558506325153367092258971677822057275105306224081446846359780259515615810262502334658045828006639246643430689825717403932501790332832596977306775367322786624432184374919628169545380793078683435420671858143675476986192405123248062662617197791761364802194947472755526484086077149559083926740833424304503297536040371073206274248220336671667704926936599984253898312971150828675956221528375781514113814503861266238695782615878398325163689151388656883093915890473348482432117757370207815340743398618311706534881440407324150982071242785425812676202472423001328167497595692540713069720574626935527335000412353324548649671931260088389656554958963338167569466256235858012221783797224209292404814832952867041376095870149849522260632947539213007072657174273698848336222397520799745617331103913905282950258834916876772435645007777958926469034393777257036896260628619086597644341402934197093637778268457862184488799588687901575370869318496359591158859141603977937282770926485435991086149214554765400458024090034764411805566490448716757743476409258294497305384477883882179337952933186460064260492740429392909012358668460835826656572275534378638945366705794646185349014579699931964420093685383504262353327091936118812519525532267889484106877223568277975892797902731948268470501299843844189842492594117760609184584112654970262196220376320499935925832975075229746398486163376064687835953793861169292446754731787364894789784410131516043681112936828367058653840591013171402091976429407228980683093192070990168954940098146853891921322663234350213097664454680073552552869222560755487510696022235855339585132852191463365365621126634727162797466457673591334145516290041115662092943366208421175577089345328487656225898169988816993348303524659827184090043336933684348439317663398434286668143293105162238656275048329452221982845612575363151717788887051666086899390583772562833132481620481074887102629589220105973365210344398798122455508999188794102278473499120809289564123173153653950309566768231503408358607851682033850489806595074468471619478813659874702700259379150065531100182309701828780442302992407649718904354497047945746645312648071705691892870953631971226168831233576110301415360013653379162708569312196014791176819082590341808150911583502450637627844402621069019286413021606858779338458977723331544792869870975029221673976843606342340327609825262372059497260775639069690491342561898986739274931164334537253963152325174178912548942154876753252083583901183207598057454180116442605035462840776245443957505363695673669819433869258657869908123405849998356186320929578343439488431722924119782595114876941727740980261273094495182200462945766621785510857881079092727080841131160040188893861379439209468523642961094874849479634393542639242415507503824441569037335389770006332543989878398716695814374194085504438853147722186923575811554105798041036435968586639464027390905862453979259328974467925417571456504536496935014468637983856910804729703381708277614483067836171808716420027509037620747955741783302841323353690755270522086360936982336504824537866959554430528612473365518544745096922214847366216688341361898812216147342463535671030242936992692850608908404356510468707582309157106597382379081075148799393247747260151964504338581351933745186636639381819218372513289847344894295060892127109705731176676055124985162462364161653779929674704506140744348662637028780206279741996095101216441628738120784589190012166237019325828941977596813742677642169247320654676294848204080978828983606338545744712899272124047554651048836677762714207307782255371765670723228621730187390107434158505236264709571647716643333240178243007732721296333554098853207808312740834634182428546616139910490262911316884639340700897820512611601530727109952501221987974044691196575758658097137377531921356331379171023427783592884072967529748348031366734017413727766990123558552817015996531457685003021008658757682716655005768171455240612502952074893148921711479431845205202005293823613743221965124637831197004571719011036114309239292949816789023579264399861904289601997962827483278600698728161004123957316810477829294535410877827178626225101689093258193024750529291373665392941190154050080449208963558966795338484765499465549830663332530289442219145497531368286627722002582184244143489375752070954681653465989617140530297249508880289962736462157502736257553736653467721630565254134065259025520359176339315078655915329420447546284159963808711660155466326406162206023510476189723538477029195540603954721260899529429866832993001987426257366299948119548268551143035751945733346816482575462090375527117215229759424418905824303004923865295049343119964688932533481972384683956675088998466588402752602310843080047108758883578037656615600851394947013745517648687789938535982723494765964596664905893789871139632545609951986638055353696596223886099339754747872004962897148612272399973492884267876148959201259561519246258725757877404366568099766889620496721569863211823087043350797587642139501316435041251599704083956051898532121016462426570164403981976158340248876830939275145069910214821364141405850396617138257041700826870055586503366485846678911746558518234326295934207220699492760500817871631071794634165893394437906157662488529206253447108983560039748754032998152062193531699115784220037923220420576859568654550933156693571167675746789145197717477985560254655365844541503480153800641044034878046146381348385588645394028025322867505063349921241772650018641616096352703534501030546054259280591328063338350153022855897817001344538028982022588570720703628881311998932371114200105732341540305326268522616784533081826994961630713989638353804399366906725075006478974238196358074457613236734559605055989221131893082081842183448201737860781472774299595131499141501547849641092813018264827786761011360223925967588003906025233769202392379604137860875187227653270285050525092291787028790135155320776851973363244664013711849491199985112658319830460217903503309233889471884491349851061436927112148045802156890498610203781472956170824088772955383389398748304225999307639191324349543761605172323475717399591083780259448865373896264203336685795592368250724500044514291233989610494671386141463333628111205037206700650812175895809111771707393478613836321807311949456968105567891570624489073630737990778800999397742341979415158512280284882479523545298228962676869816327154016913433631161168906100789518052777209640774644282663831887497020308636975001932120748941372222514384611126851129528403593072345098953819677258182124085690660751704166423518747220301373571088373978674311172429249583206093030944926697990035309289505339813223218746864147301056079512122608931153423735085471709971818249940269218657831505104440549205518121810104494053193346502030106146976801301253918867630104625188603341129148493944531550776418326979430509317084959557633069926291718935377957950913912703530104200894656991971933014802721546061823857443242609497934664741845497278469168430123924111266274709713601093983231111407296407934020168541644621439786782492367681254630028637368981899575732375575768221150640413741485889259799223267581431997855656194153054504257630524451525328366727597845826247075793772845025540392091196790805438448362275324025227153286485015705280786055840043968757862643093580639048155156528316368457006031898257288508854768017238161071392031949714733366563124485274121973245819303886300881607802918135094346820634354527874326618797917395220806427119078006293098525694855105746717242310642192407187707114580859453777900336893835912900107006891968866760370944930949861098520706137723443562864865035075083054142380556272802567516311542814285312754732636161964255730453070293135871428442590625516771468752542664405755279157800795297076916927361288326085883440797183732893307735386443998210639861839525712020167189472982677401809329423539179713001438120077087272056098004750024334616602409861867590033985009372195724706390910685488902638486819611247857542115592360081801575439444519269375245297716857324983198327495357268387014603097126034231727659479653777389106054086361194881776437476858156140531115824580615914919064782668096041514968065441475510591521400258403218768881149970025847935756584036428616352189010144014454753899758975769721490553946419932425360084052124471294578305053749926089391701435873569175621423455156900258601683575798123095248279777010617801226211778590783822126559118913418363628396889214710005737053632112912190451174873207307075514397957407068145549737431186297989369216082237461578482322934007549394497289932095017120366518681711164730688367461939905194738892222814729700370480395074675275843394711968881650187690134092392326408093541711886276332458479932139892379323427823331504062831906502500379430692833188785404508623805405953568085005377772925364083476951657482035093047775058637598459200119455018881282192962287496421871037971302398362868902537537767161632602573568078694478981548432198213308584898578519802117001409380102696005142741826436621494788444554452910971840298281956423281847258359339005627604783775658916075852484385454894476047631440241684865928604931160610631224140156722601477410072424216249825715755993871432693659037537571289293252265178824875403345702671399424789201890265783783677883934247636355950241013891609253096871829964095978428427150183809381643775069724147443905158839403871751946061063872162576125669927373453837734248724002134866160993325320683586121925111703511697790137788856762519309898962765008642373425076457583940993420649320030532994112277078438184829165110381970956118942046637125062793497068091807912448247018418857944708407231256238465099892085120765419731420132095982706173132767388466059130810292374262556520811332523521479200261719036387541987714019419576778682793815328084478810615567778581170902680171782915159251533290644655946165329971628887817597537288991596634672787162473279132175586933049424103519397351451636394477129345249275067622825590874081531330884742548692354610078444904895462236413381335891219359755868564427886637122100853031677780724546255437639984347684056977632417797766965499863159638047055141351458055321066681536426505107742989665287859771839580722424718448864912258098973067461918675463087242580659670357726752556828671033128346146276081638826423393179035089154149283823349608694923801104215123892299540404818842661414139947282080893101605711110066184276783004714564805240331827949528332210582344392759050415445614053361913616087356157437546471471758191551823665583587949906094550188996853733251383019658043797069841682583950075188391570734266746597398496758066976381716277684285590480911393947605543245710379926997631345967887995887560350208786837855549857711373239596807661759195796412198022966870414402348702920435601656069402419474038694702254937458247081084695963994655976851329366260639482750332342812635771727630577650379636069772263401605234325485956988338093185333926007781676494297456297913911199576246060329441446039272593319789479775277057925905759067103113505755868245497494654912674727999858402277558831530090345020959692523112606323199029795941357630591281623788594858906395202907901425314577059856756453364311725776627381261797469284676404946437776896647154802378170367410510162842764625500091521337135814912054103056787161078105169492364040167214040481759019777709290080379195917389895514474132184540352049721570527271844234638047545633152300996294903613076016143005682759640071264655935863253580601586154493650835676645577202145434112955323414275684140848049918125504195152978263066449420273194426132092436556894310250993030893896425537444960307249605924125837864879044409791449285182384190329324478841558273102218455703819964898437513481462956711400625955376600415934230634799031291556311424178603864814632043918598851982249872764511858810618880419121268098414344622529559062422170647900568597673544285093334637161837333515570238915045164084077711118707749148480069345732874917553531318339270851409040171559731358717041989887076576006825486205350616036430926351551197366794328380055266528109106854246344417287614607255624265511313776755874471999447827780888307815107377488512105807659732912790678306180673048863960342004525740787982787165179360582368280701517844201718562171039069093748913138320699297794334108623577073725316026242065152664525080138175585806469639989146462988932189384348430811466041975210912745595073910232951392094244990988689341737810115906856533237015554446620546143961368803234824420546678119180551265131869740835289342749072688630726613770525249033047882311968995287678449928288972311561502967720738997020938313781339248427647126326565645350767272657231063871958087174958040858334682317972324918939438311743026077571417247107781955708000201716425815055292373742017869202057402618999466210334855265018464712253050967462643344941959715236578576381797534842173876379612938492555622252216721283070648376852450924440282675789594485042610083241622274189272865665713341621443891709639689989508991574571727931945645479530584792306535615671064991977099662793272297744774869010482858546338787682895382833029158558136040663064170047886195648095664153673078276667788959604110288686986590318784661752809512427451899948137550602808875294309557519174287928135525959272021989853519090611841570590971121674117313095256165538021611624427350605430391393406488063811670972405248457690681023562129858331469465434687887815561657191987798664648172987730198087694999457672467673221824062077341508414910730407399073067205186499889650460682347844451122323887031100316420294078799330501753713470384868544350555909984930734122589374188108744598682847328061480025594371532308322238262967950987509774680486479712362461505791956773808287962397271781849882988500244914189928589096684498766664017618364225055127036899327930817551723175136554995458979697570450337580530563526558011274157952664446060688102007256168525324751109400936122722772941018852785722008487376440153750922451680506140166706438557429128091025210226247322289527202570544087108601359023945299697850007652581673306195105326137200466612079284969120115166935497179147456544724981232920164974644916135888783712647217448798704300035383722195652511420645130111284931092449414100989589006526221865774569161217688164074375375738804281339274882299434967798953107496390528315941848531681564895580046128859544429258995023806251848134703581210737305405046284291338283890605203923530696294974490537628821568489110848135118648174128579905463758534492751283090695566162340871380420265944241763639935893667956638439820310249571301869837398942246081790217224529938410554225239175764105889055354692243839686087361521555418720180797704928835818397887065269322260173685262377546154207142910591871655382503286971335926947681283358610540970835194479668451555955114408201795824399689101958772018169016422380729059806094577234324488407111170747552752925370472572104048612351062146973204746990238660558128514588620678484617497217571369711767192215443699885211647663046513483675485485586828898508031550047339018120592713267439915041284905096396970522437714903419335687135442195539940665546282460063063011634765528075168838077938539567712186622533808910523257592287602278337890028755121684512683053603116158705367205134019534204342075525724160518788778081398204851572388710910070993613060334889659088798149971469952679114199979938888136543929244863236542341564938136397765576953420022536671618915018994188982866628671726106330013351859635286419378946500668318195483313383335693548186279323373763039121467680665740354882931766604235933807966942548636124604227946321650080928661481776807914078417803013523307539235226076943866968103067200739239133085928104136729224436705651544033685755286909815673404976183297196406684292293294082809951374313232792762026751614828345862811607987075502638065471582611464627373698318944690698601562261264274099907805385146465567794329641037960911795504659671170578733807516940058060880934699789266594210923667301555780748788887756404682384409187016698672565430717511569594034167615215102762602873735891562384306176986467892402886149391566744445800489336604563853345116829936362103933154381071774338613525424257334370692241475179643286440782785259844596394353668956886970764023172959634406659105658000340317546352185886707600990410977096884770055520650793058728344406016680755298377415737861344363952619483268239887852639075825528649796657834120798707578655235491230687290089002537640065709624441330930237253614358872800341522950200783108374541024551846364060273379147284190732716506932934288209639505892127434909810974908297824788084236555283000323382004191409451681193895450620078159700295222782090014297218977997722808079718550454078082686696280536275445652621466889822421550999853919248068156805011239930579006877442014397379791651201561276852163932135335256353061697540254147516733076849169687460613764437311473495380048451880289563592970590555277704761463554779433481941068611022411669361727691849083264564283763170377277484764770478900971089560474223388566586001706876930012118136580186671601158971376090356601083279798986508359133542034677050606696783590965678429675104058525622402331842515702811105699695550819032693273888536094383121659482278904928150960151379580938469939512510001356431047730086767007149821163271915747654388465699954507528072026172799938972208700892209060758984984986919496922163278293145947623494977199340441805656863067862893442838354427742268264856261530070526402177036009447852142454204132866008325337416808658517796822646302356144143249820963845927166333783595729366560971813601511732592942208646206056870067272435618212718728991655828687972041300884125532619503363644644038921133076423510721426564794079866225449160854255392141609109290847958539587896148588492630455462939986571159409241961814847025198657705237615666115899447183431437082476448207645468569478143484890203082862899795672905473198494427531185137042005318111967443704637243584230382198893893057058529045319096706970351618994785802614692552024107679602365670744000146895796772302209774587331934676749918443626562621560630434161098610566813916681177514843319713260475522542416668587265988157396634608190174084821071012408701742650591682531375056562117332703158082500715543730077536722046991926400286969981304253360859900495562240765695800300798062861509388676753018262784842562282070852497416732824918544842676178584570518792615236740722317300440742576589365574087242106347165138421635014290094137414049867511871832784563766345210915503731346051594825323563579597233048850583596096329696306738900351775194179970531975544325487275128284334718825823303013590234686116769863395668146399671005379726945360220677963207060724043669716164386357462323721748283145912582954730743415522210071753365220184483249855879580125909752684693465403788922203454298135919313917146438204246068357535532209314725642242174496257763128764962803238342678701317819901318790635656517310256179218433187869404892709690952247425421837519338649412454932008662860393741307196838948847532335390549023624310416618216888353277198088980072446566101701288874894009949839163830514000698823118132912923448106879899046523674228356015328803814818532074335987121773026155606605459639577046034443385829118792735483738494684500637145881512969907818892510801613464842734034785118049155764749138729438560940194400006078069804721084890103576762233219377146266701338001444058334884513772910060876240982955386880648589506674358951449353312648577609957864162261809538394087412360193284161503652022525480433690430660454848960984697882465782760275055301967004288089470824474287214152426221633500922367809117147975153824545945209791284905812301354358881229543555026651585367127481052387676671284527792382712185144567349919438866248970838914974472282774844709289704857413311066694432180299270975135696923573830934061311195612598327383748148576199176902402412095606923954253974781653590918821829239362502307287227295537166573382037749577500278857614375043863097115471240793695395142074323003754142972163731369433809878001333760013857645063347513623821799907906981284299053395432235355494290419939790220347239263772219970670825434760546526933990530740757776352437637637648104858373723970076768382703041652351318850479098211961999880046825537871019938500169988514136270107867218336056488035206239083518383625324952750715059727119924814639186580166300895218095246822969146382574839857345449859490060632381911890063917018557494263050894194298429830746518793033314466260292201807271766592710301213687029055593469360002567655225419935142947046544561302430000787222408682540340020817880732622528028244296667105107495082996223900914431265478081827606589185024424530402123871029183927523933096508604798725459231606772017406481617738519318016945103759207104567626868208793223212697268461776228609390972331451801155847150755309831513038782177471350952400378407925610795637302896435444718290124018358534739320080979536438099765613160448306056587756345054739091914062544709472124441764538925958799603661937896091788592815156253825406048016348379791405036906027593494311187472288832096335631418508943868788223480199718878837414976243052466248965274592868154356657697882718633821749174592291267758360989284062309604615620637317511075786871352189520392553188912584291618791081431471019374236123650539832306778220794410698097060748462759978561112586480466198965135938338930650409480960708038434054048745165570081484165184251267685389951649839489481318298929055081356863183269050485003908261458104113269915777193430463906395600614512368208638788125397206974748678969223666023187810038046923310922205091081703369269832436014047740199266400730516863374537113821564562157720872854687235141004258829003007048837733857807411194343700184478956252782910588979880184433810436319464722346332715842813675097766164668093151676483975508252304300296664072758061207864257548320431744224996314532430103446369489382057919472666400810156174213370414311258601659228540088893372869167873713033325031325200696988289859425484910958613158974785420101048473634366258825179514908191620888511216201494898660964252247410410803136502087875429253450477357048953319271525089884571352565081668302769875365271805434624482966149230744041399539348366211535849881317703302857286383539666940079435186300674206337344791722792873799071416317124731689549634595957214421353004920369703482527661861032270244931309546963667726509143847172671411053956900399851445875421770027100271447640850308426842463715659442857083449847916548721299393883154931601844795913679117745903423234034508612508999470532719862258118345986087144512939857667333029949936352019846771641691745124943658979882753198153271159347140951907570471116730148818236131840520263155189012146762997044761860053417087968965638012992509748273356545780629903724072677583775495816994323246390174534916772963043914798321237148268402604304065530134550857869072008940584777073125083595277771786525912821428237634601941814062035471606557519828612044825714671393920683487875118446545250996325478973895130882667351794280345621166096342079562898069209631700560181841609044181680080656769130118852578093063898529443628223746319535955605521094727023550835046507207316965232444860060743851565513125651865003789916835847858179780815443347503589642230418575744139810535839131398690994682419472294244104165687587237102781587763289766060218339914479510644547329048147617838445491505959023156704480839159255094070422355055483395456355732068898374936478465350101733245781736855896862321841953371230548029734140385910612691320082364344807551474205004319829267252575070525650844698838133844113644998084169984992051783829359903617585313103251264999777867315448747274123550998438232429370438447904554492738447424390646163303107214145962691400641047857822705834037489982783974080209369838839437346108070081536147731211747566057792220249385902572570902584455997135220044142129937223251427080663908023247399235454405829021222821732569794796849787962268232298387622136221443908710808148944841916924050754949298433152143635588800785268408598445604535512841972741026027408578319722365997497547576548627673519367315912609629891794077511895302213937441471488890822580785769274236492412062229409340409762338885346439551026624332003190633245054681581648953513788297669585187316650526863434977093708918975588570897518125637979114295319464236573223156592801611613511207942559436006879170750225099297113952268716552003819435827428715042798221010350305744889888753052510963145136147067988647679212227883117612502343805846664839582842092302485353247216013525411882142449941826726792499375440396880796538012265763187239553375885359852715074875515907231792124621822000228117690531335638143722203271169452863757317455961800661698756729908142720315162024032874999402242541346065948146582344086605057439837785563844830740941200983380123373616761365523779276834864598612883032947494142743247615386983588107114111356112659376216802004624345662767788571278625735254386322549745160879830429833915640715083711672650038608863404237327925832245924637198079887822870476387305800357313234920492548047383302826182301494428572476807760556097236323855751043185976166675587551236789898079004351132414813731098107031798980515467022831364453656472353368680243330145215415091697577861140889428215661639799425379249406842188407223476431249558468586281462679589785437972532268961906424321561745757337496044731586458749268851396219294955946726491812435660495478246733033419194306931554822769562269588390895394408588918747510350742382123770356502264277648155891549122594675832208204418137647546396666254318163607270013817059233578641229931192688391188904200814023417275384681358420119995040671176958020335865788892782024459645744114850140550115911121242111947975303467876071541172679841746426001262372084865521632504166224934340344131553574154581342825033212671095298936507044547279173285251061004041951789704488856749016340771106870982193760809649061989475465635332646203996738321761023767342744773882976408924699433829202008242860453267083009857303647359952382687592960639198601293565372739283038967756759082619406017265860572292205567668489325533390811797331199094640365341792636777782926162290001323259067689495563460751501036895844790721797750297096869984022290024145708694881790449661576196007871051220457405575815379216813004184446075281474642980364453293804589646961865998255528380655693834291845121230986593596464512303592856134197230205734470685568967407502034258564618344145171642692054495015089547582956122868300456189205577621301738776769961669808597921806071606163778674488984226301771392954374122255296230547570986815456675723216164143597673496884827319596895167779064100201300082920005590919753129446254185548862711068100347303275369482129612093889720383427253379496528823584886344965240677124311188139315858625963390895472984680028652931999485840998244320244722566218964398521734339198997677001888887092405439315591119344246703574915360679728985557175351757951248106986508364228705288864959207438819804655879091226579577868779141651111558831315351802136780428726936713259914838205803062885225538989306958245892199876351191489052033264384558005495668683701344958903761700469417599679417203612866338926860755623976219045353285978039674884018091229354490738976670616821744780322424633157355375607626545563561187191910019440088535912719231429461093321027961667625801493512578599829219351193478130498995870058165454390648599890598489765713954630727429091700574980944783672468198914777677302996829044988905272285704394699151690923425007674423740929823817786219570845233436536880471542182354574263891491917327177077675594609104691946085580941361233310818449998024574822985378642807267969234056385389968675460673553883049052928430472016149756685483893029973132322855105899183759942113425171278051312095428774640638928792325189340331577255656457870871797918935436214275041733223129225067101044135543671034187305104950434971266341474823595214831234628858151048118887374965698605239063571570099377623169179394235551385455355261473955997468639088984983176213458602235539077172111665006807530457795864165154781426815300894633543658416002953500045629951741063455915442377110497647604021112313217969403884387869913607844756166874717519592538985929926374143938449518951745792470138463718600012594571228577558539456793625118139284018058470254960217516112204583723112294586250375273110228882093187568433746044287615068853412446946474377815036227527247298979369356197408800889430554434171913377383062427944341281800182075160375529660738683098947418595068212550494625970293516344731989823641393007082450199788453691653837580642034003351935574756055302150041196189548470560218449389776364118615423815558350882769961841119111960744905242407756928171001391866719292053250400978842245469824449587219534733566386070213764908835222975106308707364683479776642380782704519899865915653095835568219544148795769600045447006607709781120629487967095073420935890512413152659084369029645033323574913926377725773814742395252927981044290706919642378459970039123741334291138568871749225816462411131410382913237517613078444932232357462351904468138820222673621509981053913904724981448622803499616964604934644329563693952168516942632094854607372403173813203817918436742496915057834954857362501473965310312973935574758043234644975665811395179503066394319839604430468638390344023889479326713715605096785772427688770761788402423469852003134181979332942270852903048704793950305337803365016862347467722537898517579033287617407327274584437095017278902866871910417260710546476214875759919736323333457477934143008697075243320289284620282848870746386387017415571014343812026233288951265888756099133811381247433717714355450662379459137021719705160375692002754092985653018666806409360331030082995950280014238392775508316795458406887195834268440793751338877460516674107926580082002531290932175686570630461050434213168629750450084830213572736258471964981916719955649961370207084503237385208360508293981047168498256893999148610230886245222631853385244370769738026953650762689634945496977792017987840305934664826624125535055684445034712676083401467984947858202767729697882698018347633456828398575843573302812899629741048727047787610975855133725616090341435136539980835728675239225823704168738661684152761223035046613075223681050321339060333287989294168144702949142044958148945519162060388370047650780258257102661203292624886147324058182135111696581098364341038045552890316729984216450925470518112129413486136706676372439618550707490512874892786287493060083131025389273104000882940860574215320552401728068437276207335038968867765211346240615679116701764903506866406351758768515628072780659043516516867818687319877434168778715686500615714631418567787596300604991798927152910386025193238821156278747955793382504085910133742057261131571937448519569687526612189541013673684619586372458491050886407530354198696418411160428312516998850071351371243529396510780786551672717610235469421626129498432196416548696829023088294780551961516643004595991767226419646752813504768645989698325254892771415843164211027149772611331761791477102675233392977701175515762980237834374860507768449910741085576766535515755729451181130019915101681583389145879202903064729894648324473683641598010768391947318913309685692116644738387339618839347974916925161989963050962050143177505758873207062441303644625366217475107568597190609575437889733912980533203507000785548942624370342953775858240739152172249032317293661672355597552693023286185946928575583076760227041313486933510209344205531247122891457257641730643480324850727812739191527202442286505096389478561700638619998006918943619636106516530459847863634451867880401773372659452359830591110785823440485621079170800877518887626221508308352629132010961982699538145300978881163274039300421182651987414622114373975689198658122645577242888378827649878712553764831863610113189511441242202852430496198361546096291526460131362852378325858474994515335659407965318416415293787950922518882868086783395401601799970113266525680666612694511235286237582535218841231096978377923910632166436579740755789164704350362163858206754505120161127026404744606597157440601680008717918449940296312537888347890557360756376142018223195142795077242850722264125686521908744623367835314174840790732356712968292158813788660703742266958983482153875965551087900893424123610160577569123326487252893010106901653312883241865856847390095658988310357206530239172267748916544104602331524927282638280369587534300842384564829775099798144001034594686394956288457812261082001521799285426009566472193103420949628514374051756081789338673802888752893351692344350713801543536957664584683776386084340326531334574045953424572321220048624371374715284819741453192947854113500548028243493583186742512114133729452675033053980857002371265902053252681841702899316069327898856279442518739289009624813369717602202160222442775664858597469327323606756094837813517695075780393329684782056745953191550974850758465982445541518784114852209219101376972763277661960296097794784490391370957101774307352762393764986392519276805432870257281786399603447780321864642468262071950731942195450853465756054084215654789168965434400388433253194253922040826357219582083951067334488215850646488693765764817446351268356011230022418062064713102089880155775046838517102114394377103239446243430903095952084840829922248223413203336611010714406896810001633558736110515457726080261813960657746843732879354247791870898631095266178603450076583823586195679991102109348050068020353702503025144028788162866371726129688487050678970183910459836999733188291541722433258658288041569315013934134634071779770958099381612822104011895309299252292132149250426807008447099521506922074953202809410963810918221208467683830015784953241571835752727693739063167176705710438179459992057099756765634206866950151466609131294743731995099744127218293290472435089113260439483079980593467183589501955491938030135437866210167032453649274392641821609442690184458276754372752488696438255982369982423785781126746765395293348720877690403683408312898615448972310956668881560107482377712189119545218992516660070757021290428597821521398261607688445285204874615122226207112056303260118115337089695092919096595719418229933926239921747496076465469971262742977544697036414200246115419812906733362953111165718332800583713037524484501345271267233393388900492644515210925814213606456085448017063565215721332436969210378591180947968879787482975158985862662625136552624271265825364071592549910406863281453316484088981033923262980300029615271388587571591112000925543754481607827232233610472727441262107052935335731289364647469058722158371674785874620090595645033528760923463668946131726908864556930615632202733967648779904170333563021417897484432997652072542314795936092290596334320502307869743829746001241901724582596602895911901675851654239759729180669528983824313530979603196151228921807888233880361576649869404360770284522379102403940423907842779091942419250873116558985528313690275734304062180579274072262772648558430534604756790870492727231524196017360209830342596748896503795916893257164595850774028377446170828093641392371964169948684477617612776597320323121982585736487130533630415670526090917766593986420617123929667660768418000856518121133098396105282626862309744353880760938387115148861130834464190177415093736471768577476163894928688081001879230873439851764779204229905390897202538112019580437741500515709571913935682164043429286325527238817265603861840884115048986997432952527812495649029230229862964875014391282539498765680382668893048299177981412251688906865943085197158548708541878949433979743490929195510994030471349609422424262600521672928860978687932941536591978379240171026516415553123511350657967663345668774191626597728338114201665764387066966782946201287695173782325752314077047937620465045606092591004223850006632111653771443211171872831097643771953688384500899069329066372149992880617597495576552252215436542083826376111597380338913914049151421285333395789843674884635459940279621279607535198732986380170769351924234130102934718301160789606188028646167685440206763011810614073099351095940114852501275987489400149553791453597934622995932013654524394258361615364114622579158656287567159212068735068640984948271299462846312923799185551018281722640135265896432267087394317360680665168117732431018922630821045733823177033053311719246357957435904930093429140984375884799523969494427523021515518716048148394282207445280334537534369708549014206760320790252702184433870109136624138559335300633645571157554895836803280613073466218602244767030962813058464163963839582252808276005374336364070493237327892544825158309248421099996676521357209910554697099206506089298045343000647400547233406822029895609922030547610000184356503516698104426017894880860679519965576898703402700569726383851169128614233406898397094308547407949284552924427359514428982728149530266522324200871179983583333533144955906846855111592338091829094301749180434398857929604848431540074124013015576787943644788583903075683579928565718739482283328607470579439084286712251289266500416601813493391233404668585773711248164730595799244833998344956258760496520175796799196565500473893100200218485920506768448433262492411518165783086059966688153719548655496599529242281915654533888987093986441566987446558612702489135536286973966083717869591654236794114474308001058144029666025656798509507555688624573922336293066182861330146551740323927246648265231105311714029308287462041005360086213249595065748043095397764004319460773870964314617801376512481797726539173031401937098331404615939520719517335395581194555606362080544231506489465558488703784920326046644614027549105638682729533340387670051806790515711162036215336947942872399293191369607150523382832461886576060595348934950656982736087394174786770937772055010652352091668355779242989141055227493450652729092532893428484776547121198316696864650155239257291998271003728424803439897618514522946684039937792008211897255914425559127844207835127951911843076733432918342477804297721897556132837353409412281212785331849306903494509796392524749840366375305683974074638960159155359577915280761595646923822952414649785453367808929983492646535295384710361903795019891269722883653817155402587147075406187785048294357902916040243367468115228943620464982862733743543203483048173506589417445830145337074942335821787945191134413433265146612109167573849289564098179879972306211347908768720564418114070997030519832507111131304664856958090028999986009235300266944072464845730617668349247653896953710914983100054868014120445720406708479664872155536535194703226876076195017403608133052170431148430159946183524305628449866781717434628543097786124771976117994286410285846532592097976500508644276741011465162040960957034132309746826887123954922221982426698658200637462883489665117859909230032308836844940373000512549372847619620684966037181854510217742742239791191792338964811656328020119062907307544891613534385089660070222434279611939333125107097939974655227231264387954592862988827970762932161940459145904059355346401599347287149813726031047371344479177543311229338172623278555469920166607961747235152267412640844613855162374515478560569987450992789271318188921768929820914961949458201338382225921145036621882611950180380726224725897289014843069377213077846965555316878224359088582747697328070191646512609275962885507466021266864071862263619345705562439345612625462708097021495802104602596619925623466134607106406897373968719579675762871655957434121125414660659968136537311524545128234722034993631499214948635754361874221050854007948770926837258911063898705584242989604913977339787200733702556957105785759947723714378698184849620479423920519947610347497985273313305137660400516151434242738426662492766713226538993299049197942978378465827729603139939630267462147563447360233893594421179160381151101199337664453971441074519098772464570356445978632513131124202775800139366924833872141429943271984660022907401336960628762875259409101293869642647928357512153445022946906454033143023214303144600944763940323509856629837886302138235265064554727838687549828325772505669840365566068834680545664837802899151318256310296902222556201149311423585044721464185537946126136984390904323649183942898692661375486796856431544670284477792817410801926091374331529050894965234994781842510486055383962936733877380808058179496921738796439425727990698196086018869313968327515986755993526955200514903625568439663228953141028189979877882149553295366499338033222212715932635868760653123524481761985811034160107545728573463068031170609677636207054277734817136431069180644814426636911525357473633453116441858529596184164833807222532357776618131325525707430108502221615984861216248579909271907542118218898117841108803230759477530044532223736602129046746438869673474953449696957222672713251482862064731069749098563652599608683022759626392598173168775587755069880472461687913792696254280354562605650697036416787076080380416882572157668632439014893550607646041908964650471594477360979193935130878934372748846151865318154770989051500795911996767375965835338655289897775020231616679995933465198865934843284876645143237749194200314743490199702689276838325781159254827636384603592777979639753162946879477991699907287058555641894461246205230834226788129034206988675903165620086233775435457989103049242991899490283631561585145921660909061560004577028270387922274148186890197886253296490526489107661563963230072348941233518452401839166706309819758967463057619223883901781422006111290896292924253384895589293550110712952352379758801944917386959762252031372206970953590063307559926315331286391239770388687311072363065267181786635618486350621725741993421404106535067557139152560511329023224897986711334277862383319653412622203979248219168895430553362861421777104899262514510884931428343513491364510186802351525007702532190780495294249802284018504219913940435067074039423894785300784673805304437382761679110538849342003487282373332202730512685849021131171158936112630414555962095918218863668839921245339250172489075621675172401357481947925135210147619647079112078170688851320974362209483556617278944929775564491337576811176664718246704947546458551812828234663984986112935887926326324794645517065435308493569037054214856870112667730805034843580938197084919878950551895680459466965725057685285582952766864405082613741417587654249698502367852273079700248554178159453246018822173845656432317838044072936684971040620249563947259763199774431357297198062934466936345113298317296566724360720079424138224548631174151388929125101111962955838467793233162127480396483949048211277635337485032405790141554690494780314063503251302882088145351944635620530491449085799582645071110886768532098698086774685360078258048606487803942732257320554290560516167965109573864509664014896172714861951237682323375430999245185604994028099171052805205906408883968789599456581979269794009777383210632249033932389511620381685535199535298751596944572034499691110473758218518762895780462811645638518706566216216597820020917187166450835865631887403622059171550566491293341505991311119372020020691366128069150248691689369311386027167688724505177368317488223477896100014365809540670999741464085899175893605121395341872309990401909736980601586343659053725391465035319280120064699044184119244509718294864365945267097375601750655950512085862417831395367770776990250236184737203176038658984131340393592801798403149901060573640810607663804693065642467276515400650078223457022962789748996432885621432710437082451798883798326109238250565203169765588439101639336569756091123149538316397616160738725205985195452503874540118246972990019021266557092599593467554221469823266146412892423841373525107276214288650500261401554725373233279875223508748138026559834945547973429316579434047504421070533516916689174760294289178058648056247777596981737546414649661117434019440732139157989900019735233137704341019295679582966789895683634845987444653762427733155306124346232729546764785697738336900479303664802276585477710454707693264904449686933429782258133881436322848458895652864666777359359603815061553643543244700031574036036710968633333845263246480361132739410737773048041424057651152556707321991994604925028616218367327786667400077600633184639455639876990442953602506187563190244055292720575707411954463551383846904047823869193471235262878122088029315213155942362782767807639060214487348402262148957300203386340311227918335346651000945633156509610925501660529697317455948653245253845463966774104550550760594961529101692771359319643363372596349326796872538981539637474676725497795406712170969311205868960166569893882468755565918768699217310094323683658806720502932365006935214505645996119883985669058950751175917068860534384824204555426561425058941403651602616061607926208540727896024685418586773539619726283988815598788992578714136238451666425159063296848344431279988364740748718189114307726210292620890854091956526692914903290788993430886876790973441465641131121311785986672522919653571557992552372157749757223487766050320126093308472879291007573459014561102494037683182579606694216360703912642730318155388066012268520315384213854046634143056896327124826036321052790963322737359557588183368394978294272949040491607973666488816491288758047427931652575683687630668739448612530807050666344043675258502947721108831175611835870130679963459572559766977535918950909347664969983128427047059923080100782209936143921687543087117166489020475555004139249327561602858691776584872931539603486820071554569638146933435430037119287895470573724280458413895346532949325935884271433582572329545773495380708633110430042711760001878852368097110626607135690665688843662633055665383361690903942591954155941519039695952571132254927773248453769573972004826334088661898966989889962773036500105010944715878402822124697643550543120280590365169638349658186717235121379384850588038132916416641695988462260738205930433716698871774925808034883324419272914569855344935956716282912460772263801034072642460930563034347880039967808098617942413175879722850997190958954890948548666399313485643840607188741581848118869802244018380766533164381288708859792143636388474844389574172021233418036368445876236666298258404768379414733107826681428454976612980739431267826573090988577270772943624440731503041509728120537780854133469149971379131041385067444473165595450728369306928459013101471514872514061278505857822917093987600931098283985761866210273708335831141482668990908979575458351426160718075995148087091105146129388995401482606224198479735572582593331629932479893403458301555298047947064950141573109745862365785990639781469662607619974636181746584777205578401929732193775574599526695079383526634079144073800237234998116423344033763627362976421834264218137165078295011797412956732631047195203517626899350912888088684534357162041133751388334789762911082882479190638921361116480018373852485598697505495498926127583099154518554616175230498193206698369697241901061893379106562178354861213985744423427962416202173968585152386224131511553576338177740303596727542339617030537940106849978657627194341319530998431792021605182138471055026575221959685073238664950019868952723074217569047157173049182147659557675764280776607879255899425360908806299506012759855284087171291780712693242707503539165786987675137599127800598298336251156026253836167944718984534011332623248559681816024509067724852980477312155214057855902412991209394137134709478742656917860459156127065489352008067316281787496152590938178562769039855680388227398947010513344650339220233777883796330782945394641015626646714011457311902305889890353428282413152878372022752447606900828003477210394744855504213101707283651454138276752447298119968302796858802809465776779986347153821728567178473585778503458218556898974764495211657604187681485897152600529980574212339664905847491097113704717673088785477787717152790019509295203029589420227278292038170029389765238931736726432852546440835387632840737155997621882781727409792534951571928526184488129731479811434055839698378327587886797738639622385286462925441686361613430048368379661150233687495327632985817364138960405973092839519075572000680623825106177809340339092696120985341103595559206875519946229893134670290005379304753267737755250540047456266391088118115993217657602118993984291790779999984859292176330684335226342457205693122886594835850073206852831232920050378944651235174017977080345532196269658416875586596200286426709009348811889417736841520969085433005142342347645420419679868302736748288480555778263093615812569321133404267623754025637622332007875990221528888449893018064592025008751525334463041661150975502558895605513098703203028640317942742426750317333080339454162048910050900861009200219818982957570913708981092167131216080946490391701002798908321344455895910098270488377121191193861681885878829540306255885496557938355158177326689415479836920098070943825474248757248343500778762773032966365565297708876725483322160864871244614243442465953313500225658861414068776369340340988172499523276948342795758107241966849383677493971512742545988167701670912700547617257253918312967026330608783647410405027967230377165501316965482690351500781566588480813423656508563786150452308491240056854950593250169027468920672103883943101004762416200103590126339787487276331335130687896977538010997846664622345612937303336656563753340750131220055976559855835454997538719521728262722353925777870896085757282309747738945610426874024488433048683238928111043819269909486238193794615016610303019097155875964222102733532521343361439669025513695938090520381213016331381466641471445972163002557878504770754669759874123297020639891324307003457576495336372873586749992983860376885543100067381458199592556586358841034424809362629619196584854092219598780811217044520881235614896583974827108782455813580347893416720585489920536135992470183574827562007959111257522388848757461245314225667070728399850031589026966502313382744325033921012182712234470978938938265794230878215682157267249953184934313246152277726997543891706021575132468359982254180113747945848982768833536181511573202063718665238309399808169031097737704362446296441181632705033039658209682810959382217835448018696322029300730508266344952356736615642424998846003993055702777082077705426955293689971556768305831265990441657646304741406272816507437080513273841164569432538414454552248443764283507890848282701176013738733232592070364901736185158468100018456597871371352507656282532716462891039489240230282028785977509604356012336403776105095865846452538580322604857090002758022668741133182646820493211828676289659538004165414997431697568956415070683296201114067053324476431806174445574057863021018238020329927566036972759432961209111515562880036278766414617457444473226062302455697414475638568329506972934523341362057395512569138106642287479437395818860233372697409408201873967824640003589357121273253870353282970587504399459285198005483400441172917960820212301334248694702220796353951820426861477555707689455815056887260075961843803009966772644375716435988836240756370909875846131996456352686354333668437404757714423684029661890314081734044084521963542411857784585000579997513580728438457336478332510098731083913884725450744116420807050515915628656509606037659341257809006140728859107286840616985920540344660638712665491298457934942732320762227413481070505446136415750034479143173067507920855230810213755337358547210865948438804910525384349027359040669272348207121109187600132673580226002550796384215436759526441554870834687536176442438077983440197472462428444254110896260918880204938573428488150890498763621230019304333465511475011778076359942819975088632095979991261152482565612712373443853233931383990345443569196945674420360463616003648064803408410996661877063648735923596475887173283713634666444295350593378426348848750384686983200029947895338774021778519544575779684461763515556457780408604844376927927392430553427557877957033747405929159378610482841074202713535321382162369665507212508473677845404015113570457743891371079935795324172651310330878952313162953764712655551222781323607111338449794338689437618976574356417220124529237577486733302684019998341304977091425569068838580311111536484050155107209936953115789940322458197466688009346294423406507284095998555225357617902373850784612197568057459931035263245736840650894065193637580721573983948698847448781008797439542464080578734780055571094846735790190467380992280942587143015521229750967584427349935809105673928278774830947901167004663956267179265924723548205676098955988406256508020408182231911544432618157816263119727066916800588845499997415439762035527036918159061954749374746383815790302680856840199577513295954461509253910248192215114370186921600864485907425376613071617708986196594533281989403923945002741477841012042308488515423226118327588263406275864335661627661082039203047070793350573626380297823206435513150953939272542704503339269460501120473958853150995736409509536473427456190557532497464892699412302311110050398778744167524963263032061165349920296149953624998400041006473066511721418797494842630439565546825878896177536388473263593625882799735058705194651388681910810906600976772423745626379445263222432393269232685027005901513853605078929798152826943073159304103185890511702142488476165034619502571731892914285864869355800110228718899203607627409735824581164539608135659066698215804173685111853346661528034160466330422294215846868489618936045057866121779679678022269693828285986950102352234470696812331731277259441843689747408006975764178053733560558168169171244697004196030913901306875127599328343553418038449161984065099735336948524883160725394948963825784589303733872051318722036572309694053862533333390722492816453388745631155517348927019550378669263120533179871791559997274731894608308641860392410424953303224729383880342176488925512365342790835961059205691325231552808502275564104970463189097037547603541562948810230422466385600181804075405985070907680683886441610345556640662352785048666797623121440184353229340876331536423168131712599416827320644943051103001176279105861313154054298923179442426049205544314594605733072148911653666303565955070466530817584852627625922837178489758987505107713101356069749825448656621693825675432358846348823105183461584000597227442218557291803793583340342656865029538869756034861775389257543881373610704082649372512775933566365213886036814077901727940420668202494642198768461511645417286260006897066518283669589184272731587999001631752207198143901959940884750597644364400923290483722947376677015369246423377666444750543183847210983349898664753776350035152915999958451586461112190584845646257812255044904477235008723908631830072655026221888334126587839988695790856728467146404826028790389043370412358803310166753390116018112041331059830352625605117096333784755571600654872548165932347984063052455921378595708375657524150157600079404837305699530521457423286623394522685838015354690112399434989090541596184880039494322623995111420975603343381635954152322430854668510441085511314900209318661292554947907819892132913690869939979922598720795969681439311286927788454560236168989788821412740105303646037632101542094650071469534799205470668406689554413663782155520629873201388717184552263296091645716303770416431332126046300172116576757396277521063236184146282709478555537257475466711360018289740028408271406073058356174953182898303430886539111525676072389173755471085236535909605341691298016539265270945301849915269286185355276066473502450094254688213712588476390308855296084428780507318439544824800566682454302878527545051350400526757517786153480315292481722228809335039611431131832784636563864323430456096141535994446568179672018491158171112483800516377391375321782103195837693971809873637804655590007460297227464556503278154787419079185952527102483554707682135713107909857630252576554992804042925428698238493473490612242998065978159579849648145157011969192330503690269743076380937519118411287814554789948034161877303424279284373751338858159309687348016757972833397328347898784447543010889212312467585472422278477152219048771252460761368814433016661056253408434357083353049464285218110314273028779065605493271441316733245716977019127875866818704089781318791491325801047619700443472381150795072298860762684092244741668183071328618596450879269833104285763056412293471315831785672892581459172503434397441751096003333723146452915752215709978417756997432439726899729285033186823496137524116143470379465765399732500753400383538267972433004591794225045655052809303292207542350936538335026252680194624096265879192360553272026293779085955636417963212914325927559774848044582114308808935526760785895943238071753126586103327771358187879117548822689083323037848088056369634283102397638380279737014470042766828353058602620091812311936035620408137314531787115486426317036427829259623640043385776862698445006868075033658201484101139947223269915438467693809920098933761406282147304205162117959754963819720002609097888178052508550947046180267330357613723213882864307925812509073558776456009862667756745451666801087332573672302338772888778788051696545561602891612300256663386772732918189392946827654936920520317889453165640463386250275378066171466195205444390369428435471557915569258082256350183200123047909405929686401362659951815235813615074401976678611697545548818471436906683098673384662873817526829245866605391814086158433092690338614562795304399833197612855435643027473198768774908749185992187880839093289697274941711413106473316202526485867392178952866648046221168109901298791178239329302603398291871831973254916740737545024821931099413968643389707321101217665078217514649407019467136249248269882384665760347277545698189522742311028906954218263486819121311012406596685180325878203883148159822564144675295979872431241749722055309194041232752023332449325004212688187848658408783508039786317492321064129561016878984381287621645024879077843281645127985898275202963553751703933673522898230438849119711079752881427218582751526203215678747880652327759115468178760542829468604308613413656949626627599760178538231282614297639083243378775062337011217322901361347564971186968601489069171068072560671647424727289845876823583010278876573444127326508445932501094671408877683955432150930278613541761039975443580299358201221045117376888660867572008452381063359408427821778659942852967417814273338560118868198273566564505116385164897851752537816807706717415277100354917229079125392920115489818593071977145398947572841716895280643724896785368753285545595161580192250613822306360869056582653275903908550245263396990533821103840851640240551784691695733490443710893257102332493834346957530730798245531363885484554798636390562470897224242626721410326670151591143980333288302144776862078910529205964487684396473985223326178277958750189349347107114307622174380914444295600778465750941731803427708790346353416571457801589503115835348865516740804260722777020012830226373306900993311747070365791858103601584923032571209064671852396137619652149445123056955350101643144426193237882595048334208869219766682407027822816023255107885453774790184377419469082782448194197578345727273091345911999660184980829298856882619733283530935412520703613407812117789463863574937431101273210258445677989518343426991521643267810774209427442774774344354087743857741473494493391712817575574154494228169707987074257896673200235532940818190655483738165706573630892630437675298956632326474774727622307768390817936023848663432419624680736708764040161049351200258662411379391441010052668544147996352595727372646175805230928940930639152374552105148238572860585550539158561416068432947791012836641825291185139353025285858934465629723099650702861788865336023386339126824545224984383622854849463309378684835958220615768302019924453439179257798555572960354830821860464471516541812306723651653752119882208319067814301584426879943625710003527893021204485737937520474469589522252976337486720395501499998184419659495974565219820391834547690671084126758299674640601802324868534469598115571033256138401851399732337310980244489164185445072937745653856064646273562945733645010004962670284818545360061182565474460514202094680956610949086563893924204553398937486023914797362051737551588460392604207629534739676279076430930161566739609305852359656726207106366785276483691155303792240233074652311655827277133222920045035427009247473025874357347212147968004531344875767958851325679159841248285226396219372410614956721785952292876864951481140663341795244726673874658146560566428339410343613467486494749547232491906611815396116283712603346528388913358095744219708430368863149665839084650198640362957746908696607574886597178325596871268119153834918701959623180097099188920770934295366493641926275191819773363640420381126711825820536680535575159756970824597402055004499082741911476849670810716302542418340734437253211689530685925104368956320263540698520899457425320121882433209028662973284262757477502815767962529000941086515111763029468780164518381589871406755318444902539725526079095859319923580007673259810791285703245363809347144054703452175640134402485763785964405517511646328372280649232659128383083118802659425744022705893479750887538740591916591887476039873104871143830907146912211749985415181081366597100375763815080942186273217969663775146707302170114289190583077686378457274008429442444160737017245830741836287589167878557050374428151286436467995985458807464597549955318149407994272500196419064294244745822929488365493892619777865774672621303708709547006928227420084476919183175173834101864595019038678449476717052141391778870055410104145799030350059723730889837325892848713543452279505652611816493725034553692994882459043670147638953421746887077604907754612389960736827275686775601611274980816755772174520777936477727351540001849076854981357369393643820421066210288526732803415655111985028976115584471163570337655462135772063087320115758571260882098530738519676686663888741870206004733423910915170203436162842253931846111003508278797262202766319863849269258036531042915475537281514138957576596310736860218279974174767258967058292898356971084760825124730818668892522810681805516634418302340342084702198042816925962981574375067953550905954474435926491590512158852967315061208131406608118345041230686811533247239330147920277004962013232351243402369520118752754620888813752778895454966957496624877510864479098648989847144920865863108557482311150387509965421792253248650251367687422088146031023592854856442649417886632541134871912913917097533772561729359420469769054982130146518903559652056888962643484397075142437197797013090035232206827919147676536398940596373096104184224854606791868649244948373997673116803622758816974949907593005545089401157142585607484148487273264029074887585893758376050638228290992714419569634727693497186638667209489216073021383559909248212944311992691887823139240242144748208655028207763741235436630679514801655978433168695807076137847580779230653513876693556920704506094403355648956973975141111961301584154251578102049352377070101197448445277083310323968794897327508730024297365900875257210215619589934648665192125867608860748441621708004460228884899604212041665369836829767242589411807911820093615279114645327744091595029990838417182556374664497766931899808249283435604954687317012180670878030746397667571461465760655192225217470154970089822088367352015847790667667195715180954226811538561506034285357628641381504183516152382022402302950752107735482987731760179404843459234506017389456003174196107606391005540037364056367997956934928489375845182392889411847594499436619190561501466419506151853779760986410990166389370683366733765191920766233862043857777410975672247450798254588299684096870377226126376741686260214501731464503104987137237117078218927798969539684101624141169225071720928209042627022100495655247977194387438334514184192736870523521504370208170837451826890240232740034120580260947198470044295492487613916725363449666323914455462429604559781578235600559585046425245097274794173019908031330834791163623172953592712353456899189946693136560194351309638375399336503727552352408342477555126714210089507532970118850033174262371733879280549201583545135573894411932955348938206172390475551573486159965696768419442567887207136250934757000936632936812711498632184261970035710922517949639884718663357734775876430615368103323408117122745785788364890368560804522518267309082455986697854187642597400911793670736451425144076740494218971358360156006314680170063422523158915438445665781159638903482467443084600894193953726084173168613997251818096328949137020615790064703217232459761983063371581876128897428564985738281918557731079659838075790146849162025750757439523131854584717126603757258647809545362783573067704353138722503863266054584770438455245096666949164581736402556840638464899992408230766885217077184788087693524936442191566436041667428723923822975741987290976512928912316957722860510562293503272812611784224849689660326088555942691943570044742797313512203983056165702917297275113034425585878019567080220121518275930794466302715157954541198229039809391418795907516000433985558618949207855553745085276348940866557325704191698933709858918912731825908177516991025392556528467744603666385382808434286910529489392790218002001892230465197965151673086595189159703916856143756943650816496773253889424538625357034267342326562769344631202976789858707258859638732633511707139493878019019083267528463386619295011925629855835790804500024824393954088210951986215869720856107987328952072951697012691374881728425577651627721286122951958040299631875757296689367488089747515298039169716746780751441641368832680929095510362332109987683616648302909105024127746161044650271827398598030631928835322874302555125348037981990655254731288428164395636105400419434578718682835436971884378962933071900332766397707247626979963158448228958693251246725782178948506874784248714607190604332177972968170823109794115891407316930653284570251150784578786181064549725312381355445716947159091190133492159920428157355902475174463317273215490503908293614251901259685759816176309245579057941183756546242964130348248576148540535123392724423684767140306882208634330981496884959392913313190465183970062482474990808170182159248649518859328069662086235105535011410940651099926836029529015663562657581996481185856077075098114438801119270548842211953696965907825410942773511357251063390744339111510760909528039044485720134437887695325704898267414972084101513969694211321967716308805639195927641809838910847125379714043459867630787466383997896973403337220607014811571032196654528421698993173941720092381333571123793464314977545184382884719393952087181294728339402985854770145400570641795996921956409110212980286993356901046052205296554608974478660134853154726180176597348545068737670265424585025245760178087108639792990468547033014222311163746570537529461720360908935837487783440503989316309156330377756163658490554104730066161597302852519335379164608274518483637248821650805469309058647526588033634279206385773603929941002906651213478997280981633614862610561345869084059439091362805354614254597529409193804587242949726989190774427798601562153806580569815037105714142382007296149954614347260863138751398834472236801253595109725410707355706783273724030185552811513779491320786521339696045049927162660319934084415541528283550865930963630771232027868830507900600845555512421681082019153326028055426702536006333263473214065087566464451274256151975999357738817844720089482681498159052325494265533649023282084735082691490486363477135420815438214653915010206965987435743144032362877398181817511900657476158998649682675463804088485211159824722437331027051861344913053048098534619362347783948893930881600273357233685255491430529938267660684786665106118086048636253151998854656489223615576029309428146683734811769832804800775190954726843711820257644813091533319290565761936643589510255668754733919107639515977587295000399664992151624264976184554953806022253187886142529086230385557613723603799225752911831691046417382843098016390447848382907639342420896144085398729173686660559889792542756822058652228437801102036710393926530518345768421496705727104922660032593800465678995752878609964087815405928139296498922849934816520697815199024853499980294596957935266747503957558196959862198422623622421462083635316417166479004182656544869568934135098968383694603026940680262387184437093986804321071423601547630156623580584149310119744235658359382656657713223327222288183485745644665988716180139549849467177213416378713885794275643744441239859759298917653839618987359127526503109109589507681071431192831122109661815512652897835265760784503613471756629835361129672201540106765823857249425704918671289267719561551496572543424838893380263381897139994571862705099574642200447681022655001114736913789049569944800133358489270005605177065849468516258989008003382471106562869790809519197426992628291605802719819028784118810783231183394710936113671459509770680495210486366445635609011381599544198713696858127885032511456081020402692914019442130490808736082167407971783540724005687905151953723251672924572784386071021129472215433447664375285030025650960712346688019842768190810690323995223550764593302981251526522056640328912652862725701026813231871305158937359307061172486475011478118214285181936268529219698140862801279583744816980846960179339082380736128545230144258318560106253084139658744934394770012015135727234813733868077021556166408880650745384465544979425590165338599957702384829491694287059817131091543922784768535537482518565570128365865453550763719438010351941863357883492872667477987620257444460782559855941972971750993447806709549007121939557955731993741946048002713190615359841532249012805332469934867904229278685142626188514201715177603686409182497071736265351259732268394244826592631718168264904137856755766557640210714464075688348560926130789090686879843309480524929998609634570306065950508165122447938863700152954573435346567340265826587541589729295747951621687636164652742637502926276734785791881261558906369687167029586959279498775594758939763502121170645957109889973495815983063361058774686672929413689008139942904253764906722264382004888807997098208207448251157645646833964375503418211701601804425197364244593403064258874191622288174866593413598802034258423453028638829826175179130240675228435883829373801824827475122509091896594921967733700257513068071662106224735198351955551441244803725082695541318943105545395398446108642735738335215970940664871540382271436188048907386437802882846990456940794020965288160006486944940620391147440785759671685220999988288569328944439321613720701383322809011284041005371099413911076748751788636810307278606507021638204459810616303409592644401517138581115652350502798104082344495034958162167956524393720215465201204578199535488170132940286951377968553389958715106820306974940291425136471046583873471507002784974025344892565251156531398938632003207420073782519127362619573081821381926566527301140343023707748324713107875197872080034262418846229325806118531203691972807952811730442518224283117711901987136083877161070209259858629262917898963756119395382206796299572674152675071928864124562478339417892983506863246999358255655842894161845745735544543096348379155284768333162741170984366574707587099841755076697911357356931268141368081002924560585929795078917010638132158971053420128215151778501154883023540394118206801115241970121748615424657614964572659124269718094620080784203695161943798391076918049461426919688299856448781680005577625518362033800559123253121195539932895089512134435475826829728415381079736787993247423282436478739889363097395002336974784749090028715736126405858684276084970219028862079736660352174528294624644046822232117877425307141855211815655393972051278359529104513091277500874355861095839955286575221748850079098699805131941165917020576382169430851775692063053736849207593853357976809914036960148287044818194243432036344200520421141160781169062827697046861522512756143787804347871332436798021514688927279308122762178250362761311613836469251500820600372905277595926358585883206435894825925293665947609834717667161167835123525663700734424113854924276973054865247714813987427059088530376958907286297150409042325617192419206197079261574331826267488985032138114389643501795483408393163094699720043111216507509703849716400503526106020925914796938566414915689890899294623073721887251859962200753694614002668318765907926286247983051232718604184261820959964853942235508532358154972988677531282593977689105956052054143475579095019940158003432711545212437729122715281172281913093099584857516802810388963969940081371580480419025543644938450778136601885995093222020224947129482883391822841524693575808966840757371738466779620959633611185020852874945494063435161641354698819219817996072442835198057278869086999644127707941504585857958118034231085805141508300651322271874281772235527454328538938709819883081819835818694129931383319360850373181522116320512451649664778094219841676254293903902589954869179404457855401322982340266925586914021473424775337570043619685150072191451024688451111612932308451268217468069956904608220720372014797268345545254680276174361672970753217712242706663293240685560140551983741532366735183259046738695735889780259355244269833128752878892416379490017452720798723628359936003713799345143674404063456491396163918731672154523618323193978895016241795748880705847409378839536641281981060128941189794757983411628608674895146206543610217727461214322746223381280249217325597245319154035279750793606215835436925988543693574523102840619556888025583091003018140452533188149683195848531657088221444798165643248655566869908808139587696662792980657325925662628697679150665374892958835272865914525265930094255099312276880070068539335038539889987854779442799446251802646444643880551609601660567071352618562086228469455862676991499676839077659896479083692249680836510162773263267318028272573779709265011405663908042206445015979955631926647800359198093156729382116247938523839071918414756369660352290109195411192558752541864303098338916417005008757118784685245297437637150004212493189329516182243008608371696051600303494678570117727109978985622640898331061055323443565661910987176711268608882045935360989570555377109086699717869831076358533893202485690709068744534144639211314337697023205940896792374155130776784133520184815088798176527622139997638643634236325698968336293799682755447781912595078443387480840323567679826336197123061056691942804200678198935189959345394887379392691821210854548140460502888846680142752491206930965963119386166133116289887888838662123848452624062311387453436419565838532039777472358873108656726405939869106079750119378279867564055745776145561554243842456601976529610259818775866186943745817884117616062149300751440526738521384785012659136034907668586397745800827428591528795717485620852304819243115039276889544718700644374209863785082698858330971094490778889908437231734096069449305915189941521071822071546134601855293702892193930474275919200856074059233462173697876567755626352526954399864049515422335780060781806245880423381274117511959027956944536809608851469838415365138380643624595827856096334135224428808243088442147417792265134562692117320626734604364491892949199931635277811855502932105722853499177203009179900896470834387370815385180267316120175828693018968714388671051069815091232041511418619827788583809822098194965953689050900105091636663822774794576571917012136693596105293134083709001539544029072839414514951024688234321509584933087005988017386259354496525487945400085590195185621172098125102508637941450862916541396920241590467302434435869310671565361585296331717311996856857213229534765333917477503903838163159085582997002116617281621687704425003592765826663386817326811666892316714419707286268070840584650212655188109767387193339365886668029748192483078329972473648391442496379881662911274297434079239773246482549657004722726364473424093990378227521384332440441289219410717397717784244229763633023205134989471267441148836876952186470192470729873589780660713402873141661232758638069279940428665324038410043900498946455937490359364925489232974916239889806499818926977132446948928622141013326068295958298766133096085735809931317876318042091600392743666397266651739524410969966328215847888998846217957336734304041796224574307298377082164381085788705345047093111249334558732380788842592711372250397074250959231104849043919981923748587549527912140494936560294686039396501440438124159219825477160598963828986287154847438430552951703840817487288680243349107689108423501201746721718738803031682785718875308424949729036038407693550905028593665463237962672510656994265539593287300110046088198297579303707232598693343235303865682017086694065219573263238741829095428203539131069436972786553878817008238144484305868472641273910162582663575812180386962551513409992292175597454729097312223279189019897262216042382075468335339395111200746560670528353149718815146517107154348735563154284357191753086071364608459502251557113766329669924959551073307597086765296076327068476266820481792099717517250150032408783627975596510942044571114109177502332293330548543293656855615476065937501661732992977466304414240972291694060898233772501668212090336728515914582968679366696491403326985526224946810329350991012903465062310582314334360662888896001303123900947197949738595959104192137551149403412865973577183435030108827467313548436373284632170389856881243663786144715988426386378457016815514636937749895088828059521638747848712966993597177517934528319539148349113234980616760183144412373431495255219093328278080019329100400886040909223528746373485623345239751970107245163979950544527532914230018429445127819580425054167510223482119270134441883848945132412713060629935804639930840606684852583268422566478283864314671768655289375242400965355958449492227601013153779934277496868084462151106287825534271091961135208760451911881784208617877610332185080431146735502297840753296119368918241833042143226755286586154164571482109028344077090519798314626701248418363059564007072186278626249347024822575268596618126931270583516102746739220386608655571894717410523155742974351218580245378936167066482407503736417387808752147303561832896098262394926111131686998511102018542093513274407642773748079825967317765253188196731013411456097247616951340524280296559336187683581877886319812806014104600367058230486241218456247706310862129949173467084474846783175195819928760196852661101113720551799381208127029647032427872906324984957445241224486225890890742061607471699016186870203018152487391689751160307845890306000570683512162115634011193799653647387246426067428226308311054015154513134853068612189865519392955800051337471482643073478350337959969588249649289200344458507761678103232459657188330102168647808459913759271730307074170947349778469639310071070592295858402869484733878655193462829937819319293605367598173481951003440440648448031497942995325338317183193420711917929420300121159261101861990255155167178204828081456385569494497830320922205623263799408194651846720136365458677651647698610792708041199487175823104682362469506132722621535054983330102095819020504194998886084967216369285373908186453774919460572768231039482313773973399538064408740535558014060281478495240191746120115867524454545912686368991249601846147187484717256177396953756709712185983394113103947190771834724498926437252206652636601570435573519009587405492194074309988651188915576208899177103107128343132782859751703652953589376793423933488654636310892845289126758574804646389987539408873219999082670443564406347187572500903432110704262516561809054467920434749618947520052634218517594217963257320657723187569757701918976877547301099623719926143276941293781140784280925506331032939423304518176372644271878995830924273823605154794065456335461747957943548713947038407410359182292597232485360081309427510612489209911695829840704122038269603832230829003767919960079306948294345659543709326755797378940465466170218184664804426449069482080369584508536369596488456516739492790441660395007386727661228976084071750974727354991554098875349882331622039854089324502338234417508203700062479482954415112988221909826559223602240715184881652079268387152411018833709026745705319058498059215163906367890136908454589337717231278981528680766122082894382134451705259466973001734178114179710601546962942753407749568763392849043139308884477109861289246013466827119873630886121683288944355567699083764896861368311672964891779730649751635886788212059292895661463083913198878394561767709822873870437074422778033765611095007122388750849948726828044766357562168199960841668897401258447109491839723939060041700955270120629693731827450482835196624482483003024569047083014718831651127864987561202250246699043488152509401369221753666876079131498513073235708429503040037581270320801212487771939081243806740894059562751060525656378045458842736662114076371684696530030383756655750398455755243141454666424207732433483597120621663229787896808761486482894506435120584423159497350260774480941190183397450646103476129594182053436619245908660077801282078658942793291570639564640678347500457728262245605635580622801181925588474221313593181797179378362420184713365801447230829912380383502202675582329248512761105855830772865769004145006443448044341289655358613518416902971187643499264211922971278766935672013169093870004199134446092087863443969993323069288230296742035907437217190595312388895889235568070365874613511826323006757404237305462327922386174330466838333713388742620176797357132333051365594852902285798351974248196974437883416954628573024301072466081685803216061993349646166186894234513380425522538835392240065232580579750802470523415242448086459583219359047580205483535952498668099894147503218599702590635244404617907372270557882601101124943248443873062514420094207159633425462792138832474600130708708744460822403200190382053472023870315607347703064374846410585963774810464809693171367835234669309194498510807341428903549402594194285317788006881287432608830193511124107936539728306252957743807207048075046240735705470304487939242468968302047502890785260347534257193536698038090802184674055102107874846944876044531954173455985110062902988911411369239958755103721635323011030434272086428171944931734111328327354276405156487434095850082766159869518344283534996528229710836983995826363661360854963858768070913087970569392022692958067309199304850790102270491058315340272195521328654860719296445420103818761844314647376204548754171496265431641138345166191790213163336088756031480833937381146720405714542697388440200597940621857745317051345994390830079986267258629998088394231360131296620388174795593082664783457226262158821842200091249397865511478065072026621621884357292435928475100900184439818223366980969079137956083083278560807530423290620433058279392088975169630727361071686877744179948471618411487514254658614277690891658167919286997599646176233820192304751957166975299942696501948401421005371158893965236611543874955235919183480268720517402774862106078031499974850539396787925439350002736834191941341293994865337856098094277346768943854203161916644940541361585045126031383810170378372582278024055317670953574789662221718564486259009577138672683856427815954849076743396159357749057227901954862746337819345748317719662333375492624910556005915496676036810974556211152891078259955602233193972671160794315887963452622499158035495619465360507766658469524060093203833041515694837111026804276636181809174147632725333088693732081692527168713480740759265180401354072964350919919540810954780453944799076779294127624793596565561749612646379148976580405912665965490339022192668958990568503685025342105950607404329499276068473410649022795454678023222923142558885620246944601514544622958892956448169794996879505462170449914392700072878926967680570987489669198863976910728375648247163580685518934301060924459023806339968659879943623665565686576195169230098211066423165705879787152885087046514320897598741508524326564138613032619685257946089404960837643514522686588551515094539009412390648754160717792059397735365254864481711146544224424786179172109887132176597535161003782649307843399759832833885581504365520048165727579976574174633309848367798683417620788453401349380582356537576575161224962242009719958126195722030382399348502308563484926128424614650321492566799914015271582842673189024046957168212375584223344063213534259925438492640896993811296000395524245405007698328314558279508084160565843984572796782751246626622785556101898911157849500691516039286094701139366224861958337663774102904557542102967153107539392812367081890106495712941701135502299436567333113022749769833816840714015955273917820483963088053532893817908037113136363259736484931369584513868811838513257912399473847895494383680402035135651259361851650525280363656524514601122903792088509762651953085359154519700923103334382849831989919762908308760146215771642565615256794021554531668295507973381123217728232238192536432414182447073571275622422295438184555796191709244272955233429570037206918330668669389181554565359742314823822268767446231805384631309776176313353663780220396340862565800359774554175961382934155133223325013791640376783394004390389029305382500344664244047070612615096851484272457684081113107349368129220798281517709039880823562075274645483582879932091612425351382687472695003145414608857477019081235318779849458046082608232361488352814666907891608102974659137340880406260556188651786703093070576041370558051448837998116399597457357971530050426619949873424777047318137927646421934069647748941473660835617030519218777896809580240231346328942747645418164059407984089153799734703245404730430488731120732881577748591498174576912240545338128828530645663686549530115760365437715318324869087958728075712740486139460753280947131732786987642013969909021771568894958344755572209536500906834193340533234930093424830537418769094036972632395101800573311067220055254869113802315819283033589692607006694985322120047529664153998129836430771259264531023261876977371346101711530290184500857904090541338150178383613100843966569259775340699681007509861637393288161738141746706769724477600544113439716919663846652807937035071350183175790021159573944501415482781428106301074180932401519187836211645393788876585977779821461725729905373354272547055154393961612500450870419031019394817829655832884755870220059405858203235773484309644533742004708114295635226180928306160246120699101440825673494076479182432605099181790463764174819855826614140255541455230380743295792111489703960589297196133968345255482928613706783764711054972306632789340956258981471133530726862866211014921382919172030677193861712484704862706843893594497041810302920312229003191808515415466490693197639151608111796609283857271945500031573091641028081805372553810980865873120328975618915151724258239475700915443533115385747280131883642303874966658431307376875860225570654718973982560129361160454075660317896380352296471983675167344909577082592319713714315001498230352644809077137869405096413807365595447478553120414846668194907259282483306306584215310798431165865997057781215909077624919470702349465326845809621123684460167174917513009864276490186884264930970126272241434371791202007552155263624204559123837755037549909974841050588948969846833569959996681036905514071406492103512963902824024689916096833133329410891003583780946612786412307813199029968047340380782077811132297825304620725213638849474119996460565946935270326170963326466643885008811956348435010572825677055631298644705906390640152910086512505090390967845187206684175428208743761055141007484953454621760468920046933679390480471454482005314782742466477917863594641066201948349310434049953347773072014800437706556559579414980763414512122220106758640645486588425144537684956929170517010151551369396942912610495892315930775161297389281091023688152694452677756418270448763267854233262138999292206893559219389919551638271540868732218384936166497685173074585206662796439431254540332677066644538580439690992132446377204233443827056414694930973815613120075251485218018303817331734290298195018355400012611907045884618242477279989119334116416851596518853540250165527625042912863857584789793011187529398494612129332338968874939285492249162020732091247210196713287532430010832009606449971362995235303847711963864345951665040502817020473908100099414418773070600088921433275631727929727801843574416887470923466061557235237261964192356451669749927957557968695382470231890902508289369899960182242041520570325198615809085782346754962504983444310720697722173098760804144553426881443343592492567591695128858858930246635479894967374235346042026185925160195578407487055562168010590943169507514623291651997707722962467296919158689623617996635502489018899913917434156554478921377997079755807783818185951401152940334072218534280819812222212062436598140962562377560146531446059921661708152873601646665730828084747631842053079296187337269843305592459272861176860902364750064820764066008888474180860859802010738985637222531344043311642814295700417274512974640218149834737176564189583760498400615101531211022994415467354484427395964866261609183551624033292236578725919582163701396160118903467459522290315188672851028078324097343940304441404623265913078882916915557151043926893305185058153818114664475920605976744607067768269878627765465460374153215816548650200972116494712506498722693393332173215628053934590395292552494008604307626082824869270793180386480414839637759792303627514377349445988630540128972140530968842914561907361334505000347930299397685723354992315963666130904137927690946317941294251923666473646068119312388924267533242004852170751458278205239272766235322489401639187156149058479472990848550231768744474988890163341610314332691249190579758488271951509082343822168682571830912262740242398122152916909738818580109291418399708404877461893382947381268441423486777635692949882457918908942869261114425752450327941320047666862340186006198245621666841632728546627054753024856286383562252194194551080719206104044545545931139212269453100697803461626122667781468669346278849336296286462550195627256881157335346386363395711549371627151854052570391237340951484116381812877659749927712560029375801938905481054800117602768841331121872053779063517181511727186824913704563934213819821078917169209995098312937890456679301387183007519225839715201051028069591023803210653809627718861216724544467483660446169464383427731108895124496869816296389955665675268292433577918309282413217468131748059616270401178577498282165662258689831784941487845580956927037129427084726624879715450960787444843343941494695105287302406328680820145779707810450370319099182826750114171499638442746934156868901304018778182091180254332123966463865750213018714597402267282711804956398898861801876314798712245612129654284724689710470762066124529192453306839718102665284755979230407297550946315310299110208336263099813761957636837747128383930114525986809628408977308847080210127874615788028341447861235698333319187578209081748485327554574079209721964985266322366651279833701821550980547530495649706129376830415787195602695179651677527828351214638930436725728679044424726041634027569347988002562283175867984104610399166962336843510757742316015202180407130951147072887963736384499835102039926457811658000351524836762974007038906935984473104521317238206639672483899760513007327252338949547073720794923307841419655125254937856762419510716242676433919756291694633373206606069306037038998712557962005075188360756670973059959107150407826999384583997860542313184976228249571848608336568141854668037258964930296645817228541684092346628668421208107589348778178441128175686903502302954061288789222821928679107674470666678507837795667344392439367997519423663959892326970070908543540785548031577447231662652788059222409997226155839661876557254276593921015131982851966032225913240463463124801691618647670031911297500479066704261279163628127486234891414167882998357923483597802404452530020192350272031947089516576110065694236537513853021835427795937037304119814089894666240628266112343260737248527687812470067241988365430416837946257487280726428636920811259716059044524209922934088242130290855546356478671845836798693598074032953923614545259361768137350034756786136236404118336418202951291310960999533951042895287460684799587735742636691413012772231328105787297813119741940311836473154896814657474700567342500265947743247295974587987064250074519770601397072594569624098290979290917785588534338690799122725026926745675275255216991462124946025166437175089041609201453699414561228739547362677145937577985276663727223488036126038674053030592243641459301924638282203489081843267930909969281185603790320574771834023554524977376687916513658818976825894784581206704673031789422896461017338381809067421720379231509953649080181717771948751999762827473749799887733751411796086578850379538394836082683991190331554918470299921574444772714452996541088835012403220878949636810316948379143945383109120265283561809556857318248729136877727645396529681462451235765988791877404002876698697374955527176693126964744250844747158445513859584776422757621552766434121321842061030215160718529659996087158390897585153496591463844944474697828328606834430999327418457176011877065135720961300329468711403639983809546796076750005797942038636398195567102941929808212196751143047454075754823292524012196503030551350005544067578533863544491140666376961553339214424443257654407406660902915346584122467653331287576567427848692618178082053145956474934062273009081536532717395166109871827761971340821946282057480097961138841919594968680728496754903381274617183863685311387426134142276100075255670300767145398607867921298943958511083354345926429101039857321131448358574047038777514784354157743689981431259465664168708876664579129823250734749461871331364047918828389401990853731834755574638995189755977722509934290382737049837363780311817154644355231233665634127304182194723953106495640019165802899960475222724551543700181136925935470862309442122918284062243006425208112525868396716489404693901371505996211846543602822994395615380232582327157397170133437316182289142410358520722752037559275645798681809146200869976323812519425014283195224350674318322288218647155164534983889300568713244329687330094023247348092746680394561535867483993132522376981649306505816103504580785915179242623114453804894087801104321087519291262189875960185095262555293653346899336917969655019190101807779003387436799817135057838882620097903611918773831197970264337358977276421651753344127253392097860674690011166189177648109034037687030978293867979525014807092748283636507084780689464484355839442021850078653875830564138486562281128865734514776672512025770541130478875927172928956543460947694995863639627624211557081727270301883001238720416667401308526791898112270289140482804098773134679782340577409371345009717597187061448223202219933399394080793601567593165152344806610076062391675870974533622580366573358537493782617369826704724680672006286575263899142383349986964074304522340470511904988878858302627029807413526871351054102554000040766847071277497162389812856244980132210000478805610873322738201786491012893843790077967893340497791046719880510768463203793890650065592704183025596596047162650674542832603434133119216400062947742037510460399946214278018707655449397365179635722984324052333283794050043043083721337822332586812075516593315035980164076603598285681598432371602345365805437935016550407719803106819511113680095505126156851967313838518564837711873712023351862604046503241841094834621778498499915492307976976998483888658677693866888084946375307012917492713031223068909428079878980781113485130854310067668075984617150525263909010688215245403765144325019782928910093117330431658123306343603495079682600824040662322115715901276334204751169147464205578836581287430796434635351675412769953208046167384579618059140433991779407854194566626725014397716203034698400129105983594139459035255670311789404637905223129547135343298001756373921195450206864788397133606710846780434065860166678225844887928614170545873438610965821387609987437339581396180844304559289032071242831612462051749022164734623250593709069748426825346624938123014215465369932508142627232470570699569920811572762770537224520480050135662010398789912539487842032987484614052224168482927433756206577103442276825382219281208724702050663655808991336274463872763842316085039821880549418401113670111430381106480190704637267004775975385698209840088088227989788981662567218466773373290210635135554631118565889900342227767854275548328505936398448412563942864582583233546429746387771266917059448559531641597597543746610233676402204036901415420185194557506512164139063751754082864741638829872827207489539375132495482458796394151085089899843988967798130819850453171930750913365592204190743458357968530325323551235808931328009973243539588161350682106290565357908815931342916866475145512148657502353794039448108337401372191370591323279152322979042028836418109020534410379730089458616755037138021810988912802585283792483843095867846495498692415291903752248447721736675172525977607503817607775768893439099485416389330097794286593579854955468026940996234286318836939948877365681211978001750465284545619960920839978930213210243011217530228138588697728795780513908776389953825461218854938650566685449559527101312986761669060485969257159100059216058415204520373027923087013952952554132785420050647678369503275230754359881813442055796461928701684369170986465508488793178063846251489303597567453216729411962149193237003577095161653749515511127547958184715514010512220224078971369304820840416508456907834576526776874392665054117037118345336697818327650949374789612555940287175497121113240166783234839664022782888739169693123451959573813010595150447131053340356657257024102178766579341610260419237615614827423500325648909832108693494996223192995843402118555823956221497796685259307659399737158358189757422193866073653971113895095572880380825907161274225258288875565749070799122417807414770422347476915209731510214325907252365454760139873006756665189238691946421086833929868247129293697747445406878550606475098772434759672670667551473576939125932533763765782240636812480916732596273519682014037703995174870460285922453359682585984908571333361205072000322386148769703281661059953048977965719666882153501245127365200712222363289005365172505365914814441582801181908739356643102308442959083639639368926557459756730516097705920515244499731425915385485440469755004534765453068392005785225483427745946897475220159478220347370701349389583328862883224966889792614788977354081607151540594787263530094764087092539525362456539749667535064278618680044536444890932874387272295652203297116230171718591641052717528154622641910813820984361099319995018613868753812616295871552498447339246427670677846190047227125954729729922353666459243551113044034689653517496401770360918944778849306662137539629793689553577271004886015260710136514247704553039053073604132261579814997173110678990982434585739263476100425460589380158493654922644848419769293487000072100780203761054630815750937102008505462651156576488454138921265135210065425798931708054335142429564881634655147574373406279466249733871702687199933146931989200331596706194805948839787651949715521314538898597329591872686381609135142761657030915319553872593719611714622803728883042283142855872376095935301354934421104950303071986999250812952043081447047287691272656116598428006710470418462046439341508579628218083765718357564312456341134636169274187109344518778588765833819691378443612679476164659959341743660694292079052695308538968906188549668344230832651901270023603590899039513916563184544349393187475559984111604407231935171545869264142622338122637637376261334672019720635585017358505667332210846957612954633374948641221590767224111776955354033858689205372496279216251778225898599986261235844771631824725632692462872127601221949182433944043874369537557446782046782378630175450466251221907821685946753285114222511431788145803943050088709882036502537644700727211769365269158634463866281544255766174396496687275622164182819307591568662030965338778246443833240723315442301433252738774289787890855780022496146833810256346207547029941440679985975326355099545477707907709795601573286792042653574621622102832018089821602946684064258154238504957265261941821647338800803737424917676250348369078235345684558675249381974081880840500571210828441327624468705058563133843974328541371607956895575182543605618634813279250188444078213495373201179797592919811155475542072448707209641615198395017790374766564033801553556059730125892748133321049574906945997460294109340755159116943633178659976060946387206231487371901905930910614960467817318875545569526934880229055849797122584142473136502458561080501033868679419187630651516616222596887955353221557357990705388438634458205426951351543338603613473400882432095584027721018275034925221428797578915523793656515654929951700060695303055429347804118840289687946300846085277102838339225102506587581228246552760202204070705512654065253860856411840434772604762472398451188816959103458721690814649398522565615832344904604853096704109016962288926384326527959472764052908398455428700946439018068193961927609361573130847160624343590743360822451524154266633307112857200481505028512221108840632909181995231812581484911792423663007152303563794310314708123659266775591919068656281682882885645720506479620430444849606358006711735339952070507399174016684877052582917755727353336852154845740812116484733905123240537492921509689710281613450228101738517257253354650306719158489549584276296898507240138887849871961887300341791621614416968892147459079920803971084832934655179957584116653619333277474805870723336897100986682710312420002171449464064818430100068261138254945598296196754195463456526388651208248132824832575230251682899208059187929446889646255785930927799227894979074788622954931644426229862138239571049514161434514121706720681643962736282787762900799375117137206948873938682158992321075542732079151161335604993231354274097058717345214109224343970830330184484413925120683977526682578359383979972333961419920871836611595244742228389962953500079522484491602002755417515354063896217388636835602103985149014165150611043074596358382302916362514909378740690690267203492809760576751339567859463583817967401382314924174464686406019137027693206850737752389645878337418869413188288284700381614466591913888835539225005295595257829804706558752447827498595704732939795832796840649449073138032848612821707626531736432281191325301546280494995178943810886920296384417410081275992455386845164257055891228290781661768937907810520159909324202444765269009711904212190462049770929959444263391520922621222008849552563621194165585317560957235916345655489753196050633305246399136051813179610363083561673325118293938055077950020276496234691206544728033107391099725214596144728355133645745705125272813129084992352491991548742028575713514110209347639194203884325554150488292428651520581588970240662896329312873109030443834360006455193315582369167837214829320574365483071471641389981617598824317644317050140866472000440796469602761466446603167206330981572825777444009237505043168483904524714361096468636621730758578431697857853961710321690745299663529674785316709404070063500944796593316329209449441874360436679017540239236908390279563232827304262119127065588927235461946499608260625862270226630028983215778006754553253076306849225366161083401791238594650115246426995680308622792518249068358524255285896864011257199808158808294070942489633408527635389102063455076575606981859779901956919333662195991171578783803065422840295915033382046487648971589520704165178824231443348541335546504714459584564436286394086369448539136634983564505287036179315596442063949800620918915990616000757570919257944973795997774671881726576564278453938981759199828336402111803236612204578479013194398409081078642834540689943797951524118435290586854591235713839192254344254925446321662639742657054644239884238216390923521402301285385082581058471276905606483397519155199779409432577323124676417949940451629401218787087195658579004592084610877607966382110147287383908315358907397394866354835265979510826195269677775515366330955674432926024207016408812959777052133966522812815358730639942432630371819891568931668333902701067798423921464842333192456040884124478382719727984551159657777613491190882873051224207142034075846562984021321838022002555858662752922402497243527716930244128654329114823940708699771877835410249644850579192556894940460779297867319893934172364268483664314953435049489113571835410113900448438422180283967817960430373559743549177501057170940257992675780228973225706398395116052669847147288744374041846526235772587883610728678199789002008051917130500523709243016957427754719423706410374779772197877220724390933607908306501261826402546756049758105802876075233444814779099371559629325067204516155266062861677172145282696781052022557025783464593313384092516809154149737493070415069017265038171157482526727362716641725524383878149160872946747856587273087429510287579511576930363793070539038664879032503109955669764485278363851367251993307214277095318467203999409310283181507090879348787081425237902445889125506921912645586301065205479361285651324155318127547890376032300379322929803889088804837333480623081616216354293129436746550033479733712230477682499915899134097178524923636949032018872695080115194407108466815231969174201639896600597344114504068762690257277155502955604504743679251350280633263583944309564637233892218674233272294955542245900050770807862292655705979080486530031601498888076150281862161469404319882693343949856612424566750999607529461430055147183755247606906948811028883961965097311446946096319860808476257007934251636801060948813130752713407086476897199363953192496443231097308131109905349218993444368676484852132751988431442703782466517587259236812180058246337058451947330056730218828090052237819218820609326470613531487619142127265042646732437564608145458017058447318899301817667612013795149506525669279605226038255191875568003314352119165487557422105000308543615908954241703844832353608706472969024479238961431481306560094072108385591793092877726914355409764912986613051729373982503569583922851059202988494680409618201528400555244461723418725650380278735475250098196221083686790092602344892521693114661468098291567972355983123158906394909570415738496513292860575931769955494672778434638287079286263305621404049096362670877596843908689929772836746961669553929829026224475945947387389261375198245551253907847251406982854930260930370826443749572215997777213086340678766216134573856954338822480126285658573587536754476319600449634931916773895802963387214211148159884842403927139496426236915490571152582496914061287430197387602932424343870690959255529868899474069290529404430735136450425024999534406751436869929994292390374332502501511182444003155228011554823200947572242890123869781283721198039139612852643020488925409148853427297020236398029856903355061047263089727047648569053888001911583659232275060069571387094959232033750204779134520900588678827046653157157740143050048977973320443576921734060689016593413617562347858169964736704915613761388093269301378172052401918525386717777970855655391254469196847978379165982508094718558487448535172137324806854466447497555874668370511400597417277496281989642204595540510978131791246879786907157621388699814905614325191546432948979344609785061716216209828710685044837505651065846847993469552383766916080448661840963857703558266333277594512737343723263068018826399823818478504259902473772421801304489274192025262333693868205392626601650424215014532277090666053334013155387723936155886612352193398971910981997206069233157276084788587700519336694734448416832447010259154627092198333018445341713251084582743784566895921858844548982341648750087105181869279227598441226407882532199701585129382117992249415792150833327987547646111629603766316960511679459613519813826697523219746465768402694339219535250991601750603967378907450076386770134883199980289134613671159078028986573938486289270368422678552890883370364899275997153972809278558638664563514514530053610801517169916476671670547634770901211414698440556558502420921418560514930100020908244469707991482708219879376854515721369986012678799453005532960079745898867510070718337893343420549346649446793885762302113733939319502406598777687855363953461359429560253282240984160670795195597683816943365453731647854722544627564707956190303634188585325608550484579333055342058743540560111359391268942016164522502392829446596912604579928438102093786395264420987087706491012104580182600099070110831424842509039825862916682568556423391496603144053891269938148195005916963523594197047530398636594742833993542918147046271600323435084373739829999943925486707233015601691101794044575369110742982753637156496753047518346656913784300914912044725895588278547207975920883543690763271335398327275379830025588192155292802374063102174302063387736989337812063251981253124773732761109065639642672568385085725477404160809563000110384726703295428344739774124480706908171086423753538439859003748188307347294190974629824622736808508466523904490117589881035603735919139244118671143201428410448639490295059253412162923777065278101259224693904686186152262043521020878356967273451449901713668370795869534898777773833922278047297533062677303954014105440683615462241744792852009506620099622549337834983764599930816693360990882177835985447932866963526272067230206433056132630126839288467519257987379417735700949214590807296177271191303918461040003534655710871997524487319101397048458122454008146876572916139586299379666931632373898581865215507820179432839928694284791119534941671251665765115659852671085995266089618511006329419059391752111741998260386765648875720072068640437763584259040989271707543870060969788935014220189491225350102415352350871932860564421803320705379604254059058097010200690894707873709782343784749767434332945865411665008306224402507760412741720715895479185657002406256006232092946190800622262405098144153546702975694202605642148464618388493076601974546818753417436030343107507353929899460410017650857973721409549360538746774283389656127018296109078502456411372101115537027410405405274590528393021858154716637283006613995680926149179619697091423323437132577186121758552277032203192349059756815275055715481837396266743090436368837965405304615022972015344065166177031793265478616074803282280204830779094457166503996694105422142147160013375977201383568842813622875213331028396338693474342529776340266513363056220926393797520048255979740334821995915570214097220048135719346682411977709876557863816260618740334343167974499397783218759134641650444383194884129768311763413864112769320841541958216713284368589050033659303654624780844731197759187086521125683524952994643019404935181006165798810533491962467529846298154220339911387279075056126121902630358278927943319084081600584538191147203196136363116113175252369402437013754011827924425128751882285405977121547735224902131338064684270298705083081583267396639010097520772740731153158702589090326489693402412215386131827478560674356930584295463787296758408020843829692184002518683415951507084605141635334739550856442139146042948541244747996492388877994386109987732897557427579307651763977962131815016065122115070622874041103551747052632723203821261758991184408478372110074981005629031418383975214912118004669386178805302362769309334960462293654690553545789124695325577318122245040844595710955545623465144792066456545674335965440717400195409278851195790674561685154297941741559092247628144998952769297114520109455867148111029431018494705778606449006648401077343468933916163384752926829939950316976960320104245800796482709693449286964346150736181535352165414159246873742118255879055888268369177825189848481375256214600977404494355915733429547740885359485007470045105302087525187741418625058539900341205062662220572834900688480541334464229302012437539324286669525029603808881871644095704098728537278388350992981623183275071327272703103681475664197985830563428032505071867710401737291311933333227696384761673360800413112907191349260982392260212843628560155839467775338861856238005292940592348875448973802174118613576459055911686027437696569344742073873867092360634898335855089967922479890035624750268211593963309768589590976985641952093079705192096202935579640064489193174755425249121819444952182915136814687952904813619420343627481954792015096542956721874959938932131964554007165307000887051402744122854021500993450106433368815026601663978998501325444528193703174751004793042068475189540807875337422176105934467361121718808946909370291905788729977336277028222369038342172569358274106929404005424463225458241675982261018741483427771141482394198402662906997214271290632563723126723131230605015327331537261807678839375149603973825518822637229600203002177280880644821204871412609869641922145917534380098182953928670154379459121882650261200070113094495676530623280109510163459770663311390799177312490674108277294812793713488328658287295885065979797635994544153585837777354533894431918481185317703408603616673899798607304247326139157936292060910886464732650601349001202792567622238168509051943983884268072990177814646866532436998662521001274242636945490022093781225820081448198620631404304570075207021469055028711149632715203660080046389264925234996030614687927831149366730683438209750146934219482869261746464789929088178489630405135663187956109566313205788324432275463491527917197758232820811237290860973097404286788321031050664773765864107673443995287863694228091389844629329015427913995766882365396521331140518444843675374050404833523128684979260503556048375886050035387076226206724859463717720945461689596293378033292908266142664947497913360559386641075209961643575340727387821915455316050372605953005918941912695296892742146655417246131374439956055627938506030204408277174749057567765087716008676434925574784895685131965546612739101268761103576849477455665648625438045298942004363945762479562124108095267184992934241766347035657239641204112002486920145246857634666977719896649232725355165184717928420012172997031123229663510179033348024725162661535260089626749875938757894878949302860925136390356146059147398707027218251569133188113535633303438258949288084038205290074148951515146134098864949503958975152272196176933338859401277944931750716094027816294493410571186217911138627382613920415769686604026765998689730092472018943856269118862723642463291343160803993714239887117010495852685753495341292016767739126025206835960960306088553568646115292087198082412853966869167684442115185568416563937557180667922322615231147267037164090049270370097097148270327988809728019964793472095791090389743445255769645854163828953133410783326581403806419987228483886376165008402922424994809577285364067881295526297596459885203263266043628890262580872142862858728769221193553383922530029170058620394992864224383602685939871427786708766138723220078164090044286489063197692122227230751021121541485758908778347295849021619805973347377300192558823765035671953824682473178981924017471499236268236690891601426621126045336770492971987083599475724184455801460890240114595803044275074819786404076600949722203192790978698944637164623014807910155898573152582604639549656630849673361643825113223143640193036713397343292127659755041302087528720804836262719439801671912159190371139609272341020957757050371287002193358884047884307889606095374645462999903328401778911975878525057005622999783677247381242996348606034132640547122815464178423363491015494055941293241088917386490272358120343514433622912107022198199455441981893270482803891024003590984561236101291368258240125393478577218531063515311926813855329585926883427516518552113190280851089773029368343394818066663419650978144151443076734238425509472250514480784781513654830178481440754806448349275109545854539947386283755550499630526259928088829476297668521415022040728080976081874282366119632693967155830918740640472348667345462621095151516674343520326061581871777037149591970247778691019711260250803396683373628807395491317014003661607423211335355291485360252327208855410007276532009588409409442851609866388168181813679365792556585923667617610852515370389488334534315774351779339783391301425136803703330136982113825360827584808727738710861405435775267368541866045011940587468284165063431946802923153985593258891087170359703639206187357626109269545352321250312089773753554209501167818783181739090349895004598948581871431722755593193758745196699719986997020046933480634788086732150436982352899828121355444758466324633234015262484678145752852011834046483087919250691546058285189587010000263862154280908313002628824481254773375609967231396635809378441898958479525273142545037607895079441834025672611396397105711156372061199772393361050275373111882264688850459755892175741406465886755372075158262508921722985025297446415039741928144802695240386964259820397953156255260180299644003209508021951366390897250316058476094003626398477108498035917985404729458176446031513999340258773167053824850689791725797187165863165298979969999885301707633471737331540129587352971304610168895988128281028009169020969003227848925770635366671488423999136225853177119072939924325638690751396580675094965171596891182593029367871278372052254828273884085364907552066098878638629402152924626767352430688109968999409437777450124733307648350883458490536062095694352146798316084455661955484262717576692023674698736844128307980323363235272955589827468581520895713118583990831417065682781760836518735947050023695121375369737678454569843539610643795591028351200380052799219710822912925237439306504770632631849397027674070092209177422627582535539142108008117344510230770663647942765539510437975148346954355828360273362904340931452098196327378512692842045357701084597273385389060220836051460179753671057404172070715599855415954718389851689759275824263632051794288653048947636280395598589668550227910481641835158752332500120895509932762841796385459658166398217102363031126010762097822404055704196257280448419849514145200848254839084439552475425874628736932935372031368872256216090070983799722836758696376457574571381642624850459860122628663380146988262970079748021875551370914205851449993190369137167716925486152281358615868416007804370639407114896290307534719490466481260371809016805598782411015524558565096941246931053235993091370894571503629833837427396153020896590608103989265711865292185810962205928590285205346986073845813800664828860897651799286005946655797002367521097565257615681523743609743654478475855090341135302291447803166668687133671650092126980208258873339378436116751950783162163024430151405320918482661213496603012868714166707255009424597685001144706818384060369698722764585282213506520748734131139183492457929711233265026945704592561685938969772044127177163557372367080564058642628003851290892450655681942569795091075431500666106260274384793456438479875922579227007406548327523871805778897877437743964720823577143345116345230538849609953595636067422909162258363002238814365791659199180049040846845629665555836815237173325229254612459044293886576279817641572889390711090647580862979615181852945727860320759270495706618721325772938595482612033431303117867500592731048471138292238959398703817384980285421991051672978989593650345925126672110941773509518055208125234450661697701275531757339236612062511586146239546558878029815477245875110313909232286121328344088662331356264968249965691278105861891834361697466224764012284315568933350943151017000603397044370550856526846981535178664187111468910005466136600134227532206344934859223981184481857525096934617715069180427943402964374555206734938680334854359551120120014799725933434479415698529600598771481748085941271610139933721045062433007062771024464124835506440812657647027470377061340677235603156995514456324650200448091749548987111318029415989500965067177134226133888718578310493333004129179855652873566507342970770093069750064884735068658867431379542050494946864417796818593195549935302027987604791549515426804485613929759515022763015603492223641094357357397966551060871353277251094344288067536593885703313971071636875205687034028666528267396557446279388046103089868163911727964496551790416572391116554382150807655191256099821565078268947382007785735672502519657956699156504329422012073689354709430060587852613351425123207503644137752336442027976841163381822183638162624901622637898751374645163973904172068546089568212575101543737725418557579877734806094686591574440623649402263147149063168630681155031452207379771787290427143051893129343333746389766416127930339513652197616123451081374673735906351272519846960696472779094817482477202550016823820592287609651023737540011175733005880106924424369230088553815164400884566616700035389206461560400564888052916063895194113543410120726964954520619311032181981630762082956979472168596336103889737009568261032105335645958951207466518571407638494300221651236365030239932070993225946799260174994253259186020681645196029954552803363182028565995089593387033289023852785347686676198648834006606183421118139911126712309315952714495301016387330058444992302447108191296421057613363571460357840823079314884534597218983689694603508481318081286545604820003157467669197807284371667374606861958151884417368104481457143947076595320286261665219702734175258954959423134164083437661517200078471689481560135102474887202024125651444291691346016251708221872285345921634010118913228879507797794513113400070986424962051953191466966051369714100989745333834256591484582764829631360633420429235257962059850088601919479489397272724404310628663898991391591640542973253958609125136248451553081882131989466702948798662186587606412609201755816955181718517299761357529510408987216485328390255873026540001324942767019162225967578402409015868346819747277216412117768431525559324350778441835686484212099564332632862407670962399295400149829196057864588127740043279979442010073839468324869906443042220453200013522281542558394349601182765465865133146169936324286459304270150543899704772686337736647343671109026793434351462936204524636738439890130949949138036115788810892913066695256811133197791324986128398751207801529311564884388619813746017860923422442064096168052927067688850883575476975278799533786165045290238559840661907475971424049648699335812825832307912238341261620630795889044640826423255248327422232769187184565307630661896514390091996369307221112690107188380646023800365262176247642709390690738092506066528683093007794629104443361010195671909427450785078748368846205036590928360437004854603503001228158158973668249393000319993532221077293792660134435643484831768163653797235926781455617793304109203775863490985315654241244418593237963099684875405965491250324532475756637949944993031701513002104105252273251045392414140682235827186628406196046972904894765310409689782931603379324893722179329147335131865006609615483513559124488818199167150874707770310191210124442408732431760722767312520893633887374338633643788661221577480699135271055213741460508684959869574585603111783197517790218722262805518112639600682663709818376413028604215885088018842179315590904518695369691924639450144034993693088894039582039937655892873213436203263404939303901989719996684857700390059602626996296391467723431517201060196888748716828783767242588908150426867389616182623438912396640360071025253968461382832813426769872962519886960429944490486374567538944148012385856646392290413387604614444520640399381344114515651545438490511310256832410911069690224358555835686838788760588070340528845037886988278165849288246214036936114993332027162239875151044738409981503550149001982066487554761115176527261483074400778895600150328456600195695445267637714834996942968041135485442755197898810008748640285110739761711929619424420395123712990391599736913113010157179502302665961975074336086248518017706309223747812095446914339774246217456103705965777547934594388273698153442596372412084695574693250423886165191925146238248141948992346949093249085168136505434985781484450710589679525087952726340330143030894795576796468105112899492048596952373587613955352203074545258530503871985112015306647288306545193736152275792307986119332682624159264350055926789182551426193350307331396379173387305888174838005330651034985419217474651397015066096475956308192192532813858575032822468372540195534191296508286182252961206775111784021332044859202525059154799313904400143146263797228551008069174075185637945843661836862306546289154146242895100439729413959374411689242222906146715570441644689820031073700702477791997521973594698259350581713950271014311137801395555748697276067242886004312773916842942957728632143500647831526545650701278884397235053458382015520245657951078881292065270200428137217086385549388864149590310954817310316100418677804310952992077362720588044795433952538177921362370752343197282453186024484124289799940728743133689739839269489194666100142330116710822757613131902776990848885997089034917052411621051845016499723508901433084142031135618864548381734504016740293706528313413805943253669860458751711047037963522395170930098979231966440720279362976872092899294257442606748114798123471119841324617178229710025892760594834757310669825367783990263245977494962000140870647367409795620346750642293161069039232707424430147875270332437014953327053306229348582033316553854304121222019257116216239788487625770076587601799237342709166505283894483240428068091469466544705639887284969890460005654463907818087265554599580451122591939629794798305515789939786053703510084234832906941564378764707349673634637847872003362481254211144534684520794148465510656174935801185618250061267287345504772625708425090521877400511462692023118764196462301994302522193417347406890272951794628631958979809748089222850421912215190438082607846677845282036600232394204479294142294430703876931279088732174197209171428197009546348453863419331504121271402650807741208790938953377423620222095271562338679230096698201092337680918278191859956480329526543952167885689245383908410203882907346521536802554470373203391860490986353775406481546509408391296422084608901268024987100022956921702059252427959219337671395761992472984040345955091880079222038152750687390114201178617125601854719990904412475333978030350635175046496938191190508523429251812763819921557735763808130953883424234093515066395829735237444374194852022950454001771790357636740851433929160141100842759909400284435188128173517234834199802694051758517635443843740316285597677227010152963774073086614089533404181334876263221921784714879479003991875721017425766739035454210099973865102346188806425882177677863027849465117696635993668810166711714526670902693814870627882373685914608217284551472249730333190331843248429484105233821161069076058141177520328743138684299785499823919366500415194453724384609702408549424508284102391145856054665009318667247369024447195845356439159989157332163364656590612801170072973178027122225882598655305961849054256604910419624845980356568569519330217613516249829423468856212183642231787294460363424684139894279191838833711809364606482831329237176452122437230239481165255647251179589823300436654640316278505235951022384120453655633260740673700380432153637064210747876404912806632731224543610134512800158278081769136814720410484207040068783695963462119017400693755978868231165251517507517290407544128201061068240835808144859913763910810353905954751883956408305383935506105965001511724148885019903943261205047825893465918076368926387926339237900540333615230344889181607290412338497491534423332873362813640671471538074349885265476648707043433445571070522967692527163767061870925599519451057676019248308104168115194980467730364762280169544169818103941988936924631962566029136922203222885930959251527781769861334439082920421535995499626779616088713931688606861091396167226213146258916004869778662600872337611981518503332005631356759969387399958604580538629138978437138991296725771197724469474222298366299483100637318928041341812265448989861336184101259218570773290839574600550949755266836164187840192167548222517479148547046606286010628558038990640203571896420386676413049992705723438085286397373190330041085777169812040098857707522084559126939787494340275953791898988241125182087856067412971348313064680936217667722811054538865575363734313998616929605097924051189942807368788776094048409923550594030580531912667836906201718245240701357325976483244507900996763606042555014848455103373851814917555567266217542846431575059963311950694440451813509858308431365471225706863728996608148107469263320541000105476690052539192136511044108387619815843521527242848750261624105600926183855305768965239745457383824755608900464674259548804042033083604743298125540680391937979130290767175247215770632346585459975456602661911344869973444836305445637188295398169935568914677539188568787937909260399667777440764459209554761161457045611482075038927012686714714923248544293986692606066120491414718476055096634792356455196161684749496751262056346939546756044036412850901677128519521837705352792417246274188976115674583469798283409856195786907638122846560150147376822277620585485936258160064772214155785901328300879655082820183727093783059417980401017183312991289738983292113230418482523852721842126227720039191036492391718931761057671190601447196845100853682658642562522586501069157955446782663537175696534215936636372523846872965070114302860910251826424814936699973375331762194608398019167320564990805859502800532046478626681607703228799940395187060589864859112279647935661530938112099405464007145356788672348532593856618574823222061391438308453775618185883545406889811924908990461613936862197788199278015933404340682685742563669868130551016086816470658921792536015304885707491848105079021852003451144448892831286095255889072800615121163060983110559291982008174090511116961591037839538951469312753678355715094410479645846633414643232166406904340931653109910594205548009354279635118130603666053567181426866732533112698985001744672796953850401349887054628859967672539664972393861488035133702134819872007698248021333527361430785511534862284746801326533484354361601266639367428466751207236402651099081559086675459171619834990616204370514706809456511140076094984136940753606724093955823602816041168790085277234621188265388947590695769855349251297767857094693783800745027392922902364100510066419285571979791087036706315486361996760122675772348722427214209332032418767629274314649189644675322683912316265472460552919171141803936281707312165191797982441430944449836728508414716796795986652248414239026051198101335053058475471678457352084961136721853521856946902294471514982939935496293478379726764533686623568043517464351805912623183915887044941647853442025508920251959645718397558195222616009638798070248823186318109952620577008774382358854187761849518712328500105946775785511069099658878411006840182120678207559175844813387013087165362773280557554621887024108741121958038892657593034993501172922798747494002703824090722868558510363196873030251660187856630657486227767623075592478104369253476080538228742935322482515370463499662753264852001428822483077807470908292034406208069700705766075679334392634096152234877409559647679237543397302481193673333741852309238840190177469270738664811344738292129134253830643306286320584976972935495943729700401321558888137475192246264978960942928834861929705004506044095269076574678029543465385006633069132309384179684371489755127612913443980817590185523054865542626210385407640717378759470391914166223117988219089110377476834700203641571638157385828835496668196284523021890434050320634335795769230184509954049235742114075527678534218276463391461783797744725678262475764189259675412969692235907250205069705267138349288683927846622841203428936031235988631610524712086184731329000572949819647236144448184591452798839982283563307674318121422088424333418455489261750666817385106589314430696885888615221705724983339189602048874418451791382861539840706373217892236310556573774755915844007381805316173029460068248038605055705107952016209888050281801485554233104217479182726525145537710792662739375836316587198515364256829723746337430907278324591154993790699451156661840665937895484196676158043258964802341958292012338524529881162246527845465788063225946701270233819394384183831051058373657432054220633038379317073522772820581261628401334006916869784553356774260143544030975874746115708339140506594057011493978085667329603030708163263151111630876037520465636363715097793499408740772791737000176572039527187946203241545179928763326828776623973730990191576541067356009338496463473463925507948973225926883100382151492710662982404103049797966765722067992066043037584845564487434199276782316301591289255537432978809579480534416483794847688414935818274327136815374884917674608016925125207203900044860444283210397327623434296680326783543789848162871583156927383086986410633107247194633371030425025001758319263522393418626854079260894652852549762332412709030806877182358800681591850357740878311443328298426755828291641765169628408845179816361156891406651913502788257885872085873336894193065951684173085135956602419185164165403210006482707891237241975063968834576376710162450613149889546360239994868631072453869921301717900196013513398545614073071488241640230274533963969307082250994301439917144831923824751190028294413283460283611389927777792399214482283937070791949343705585465303768991042459059467104775705110571373043873372977279013460836702148595259104624079075213588786508109778521596335621240611655127626269306063524671575018766535355912055656932092320258162934134764649879748272341517714893535972676296084050804185059858954425751208733860109275591925762988139082355977316563238692296021260234033369135050359251168403094524106066028743591076438397738255802531314367090286191219997561981197936835469832271724582457308006895737684263620317620729317236351526997631820262670322938841152654803740167422314255962080018872362007480490697978269625660626158288649992879002316143710653780335924703109893866755890860160971116228682379294618597438764858043483104514910285257384487013194310114117213173445365440936890864859170562980170202633617704649522959834883923548227926625716927495653521456614024269472039363849874359207397038381073923368888009329977631787745709026304778956437765645069701200168921709292471947756051693742690144884572793581045048645546721215469237319298465917391221890660092190204051330006619739054075257722560492228585937050244624239337611966167321857817021220930308497546006455253411435757461148716177603076615833408428336606033461229513627328809488754170399520225308858780381379852637710406321376428722315079398895325398927947923834512514055421690712864138354296677155590557799903423024379329412536984316194725430746098315100024946108836723134170181199799662923863602910434240596902015613727842670214620317484539003099243000423010442618001601977846846327993558409432036341868980953356799936901216396043791247523586805803519628463008152409080564689327288173748470561960845898577052454812219480150162428939625720138421020185830767138810132401831821029677086634611011773718177163337867755575292770713699992999556537519201268816882929147368549222533314014443939516501160372663331992904126334521581674993408710694068844416896479074753772592542855641039539350187422022882308007310878206645509395455459820469787014992239952268719616507298002707390397560587473146621204412198750132062413338497332130530750057601227646113450659633109841641634623874434068592617941383670091018986188577801308585460300619886772733103056898278688758181974103687456699192032669029514864196360756599386509763175367914697106802471564344700492419842324211547402000866385398473486732665788361539032170839774620894757332222804792261197218260282187216279982393159202284491207487906738361524414383450482647032611106354897840375787949864546286567537351233674196130970310767166459989626465336067343742310083066017550431318342836993594443207461779622959442200248913167167875212934959049675075337708501749306485121283289797401057355415375843395563187904047428711962532408559951276429235245518001779315270256489141293948543789080424853324048169993642207374183103202709447727454513108407514570225217110087709965627174112933012983212744658773688917034408978365248252893067877767798607853191927166323369480989983330049290132683656381039144668724365503483606907243871968942890235254842232869378927251728237359856066886697705994960009726792795454488769499597676463151266957422612331717945911255525139474540131788970280801500203665855142316524929751879411081151467251236275908163660657576048013676530388564882231079743007330258004585047220470801298354313495486743558854879712530934870951234789996774274532204007958393167756130913049441428795204897831678539173655211706332886747140207987770046253968710245573150783346448833275724732036195566425192722748685977173528347314647711039484719178159209169893505387315048755236986921481604226988692935160560797238860469632142719097943767467708312185586886716772222092880160423714858980014193491825001478020000061365691637219369091799589233052341435057639373513098951559439437021101899150043990525975299550400909660819962685045866938281132141879640966421014249002797617738669592657200230127354598799682771720543859748643907195700053717578160599272760786846421356702480381961583768087962897844488176512546393013896850120464612473796978380118839822760070575344358923561298465171093685725904689038760896654270276212717383046722954390828833171833372173314289467066723440347717687362923578751788810243694678439227311779392192453609299648615157574774911134809499087841977689456751928169894418343583271335223623517003178169748789460575992144449541105468429133888575894502136197177047078774053017583660919208862155558233322845974558582079705881614815742588571939537788412612624682721921087851735685015000171955884857916605338974624050676653451078955866944425632499292391969391490913416008123501372885299776526993439897786589739474156986761855900780242701470900558027484595766068905671398386954006133482413664004121408997071566486316880401455574504116288322766538546858918820623816714753269034995368738486906400020808776128715700744627102531739968734345499074775138262757577315333957195846651347913018904425961753890754575090701277828437497135641733912438912192219774198805671139973502688865968559252467756190397879595717041907967432370849130103637599070193826182396275449312093456601547861314879187953474841767237122471020627998625585802161453724501832829784682246437976749995437950871352650514916184628097732266425440012297364774659093981604532108613502171089168682361792143297677031900336905619282758787658110171776752701617212072576265572687494091112895286751062040259180543296664196343860575469066589533772890000345249104609327632847244608973789015881028831194251733520827602352691118426446485797799692429017976719237081747972579247872004045901450138951936577778605858730722798766984494348816547521989045544626789146123308165257084956091204657095215887432671076586505205733764940072598606935512880879266709656547351878720049308438720797993996888310312843000528361472365165289970505811390465035869033923039034678672359054537612278955466110194369427264032748906018977330203678478520570535352312937721659463235147219527271437069856915371479438518696310865036167653153186428564408836030857783556316676548938641316419437401045689672292487531373358483555674413897877237558109323456832033890660604570709188168231413929021297151035235647036438392630516491218403917622354814032650224802840506470994522034965452406532889573455306007671722085058432761207186682432191395509516333165637881096324185776641891773267796849766884051018832877338653788405415589705540594991026846114293135015437088322158528828856328983470162820639076647559382463928345701886823098264721013265074594814978096167604915719162944838425821262807762208278837788525066686244535414124536828654507972829985700886236069693745392236968760037218415981331557452701367951551018763245186205232480986434252903502772535017573086216347423685608891062330321437284457032861150059687079627165165630958283099312193964545752829406450489794229111661851144622695809690779919813116632839634559950103187490273948674823977032428269990870590372437522621439942777866081498989584001273826112455862111393720332773225687277726108473438250977258322789490530387697545982862617704742308497953939830315820315047518533969234089432188091255481850862337931283828365240012490283351140884861711784456040281602809935882160061771223244923346771032624519309795840840774287151768530616853948842180804722866507452329212063899703936666725643833924915546430931033349266203331683894900319183335864316872293436414733439061950324953275411916172447742076614730918354931598347626206441216254828143300503671889087626653745743256324838779939555098873988523481937046479210279182259764877989240772461224094196930223283312564690386286242026338445194552475592384189780702839583976397085517616008156510226031988760217679695404367589221363396011632893656465060027476158811232044679571031011307266212933673360569119804965918880436899424684534606490937253820497212368573055523778037243033634222777464667759513763086315542012197494900287930193495755357209848162089546259179364128441853915561858264795764917362944223715159010471978952235665256392877150985273076010169422186179172767587763421805655850424809591642257417068660881402595789398987654722425937820490953521741406455354931970381617225151232548656225057326994719464863535498832016405045484010992938320881827678750225238863014191032490631907587622817624659616835939604383731284411383337769968809185049557928222424989707531655532772736587376933573567058745656954097318459348094605457557255232881374814082584871217951315604215942552363044542848141893024502459061513999206171046306053226510909332999986823336782834656683774343121663749804894527057814105933948648276551241480822725663082170333209708903223995208168400304006342739719912268892213750636038259201469647984647088726239807686909173643246016989324716784764947963076944504504696879767918708735009721387975754219903478029343015068840214309265799361879025108679396116061248932421032560126187767699824149529583311539409408928638897803550042436047664580137189228137365513693870124974605622538720411383705516565744139087448336958413271925487528479297400661794483089795603599021389047735632338775694736568953604635898106409830448194982177245477105998533250511360662004115951905547356692407342248365377133669735477145320018942730687937799158707936857712982546706332756514902679444922509450125875725617122805192657533070495147416556854763432272699914277393116663685200992312162330511900178983266514062609289736174596891634962962265649525701289017411904271353783940432845509208686937155892815844629024983368357913725176232825453396340449434094902873668464091456956369484280484154589975688479829749459962754493363921622884682477458317447864029228345995616986621288142533394559745928994264847500465085507763951179570235656927464256914828049515750162704909840021954919000579484885479754075081027978150538265086049294282444645813523131930571269736219615960652917918878636662763940475407262601078691507299333836675610675717181828640042390710934020820527737991345323598464977787202802088487420740960722265889534184392926199618298585939607862269552198738912523716455508302991374783708057617355336794768699993061078891152305202340804948039526989894468553737089105849912583255630313204580899426611888240532235388124957349947814711627219879766672344797853325782846445683111968679363192905475172475470199399787530795520412473810989191276164568530434358636548525810038625343325183136760835276825910083585802575253729395897942876351580121154229364210345880738548362662704282234625079140374443679149234107524375709351781343898645755497550941142365696694517197819619882859603152471013827931775053065994900000909027395510778391233254501119414483981101546072511241424054755288190898977588460551339371136005742516483973840411154016416595793855897032141277887736129916643300769446695139289776190894928322181099279874186163418667089562031837818873239958933798113747402731037481717520821991032901031657479615191493958096817951435335837527684874627135651346501791223286838060201916472977439606721575926926675221800894215895892772942166003332161157430772805923777810595681920254548159220446578188007824634244984767904479641841666150369323656450829160867830377116400546604466072076768419998906463501690745182964035953557323894993608169319559747277226940876871724254785913606983131817034813603357240199413988109039231063418189565913998689357723998143995694296750246052413002931992653767870025017656526560609778222583753870505033772036079122533454529452161372383220319288084013572560458559946914453958042050193163586978742881217266903585999194018484050054283833861309917745128325871435592470022777682666521420704139023703927673625066916855107945637806364653548112845369870233133166925774434669465736592198307253041359511671386740074562315689896645662961242998194657597039496060128129343517994839024470042440292572427138792006002044729734599397236908461995259857611191541338770673495383651453965649818825286722653341421212355061844149679303705805467865418095036607515960008239009699418685484944876169808185191379903603758007850461357310175337671605605392572008543653178434115969440674114429756783465377511580053486721949169374049251991327285084720454733423446203062154014259315077849592501222998854030007864987313340868228657347140633422112917284067384327720964741930270561838482697160688619735622870252170675048629582559263868582101891041486016500601789392385719316228507637051566882977812323664270264433271024890257262087520640323064175124657392238045768157895241975779427534156017279065167074105099519173972216962200751754690648104530354469241358310285938921376006104355883308631996329708182429099767742536887809508452653577430449179876106659150943361840363337169647741799155332268500040280873074149379514874020341978199443978864943161867534440920275062135507115187015594864860693017222240436179541720680298277243339455120382370164557214955168312641823313807772239290307839730781860229497296441235301759769196647779314746161023818210443444950795388972283513657385261373436049878342604388652282367807718732500803797688842344185061190662281401574426599405101456621593418888789218024998400813335987935997376588573536330623862087031507942190114939834553854691673731623015429137370045856106092490588381670597274764475773097700159756809078904196289824073507084944309240920950978167839698344328207021653951893518786604552741129394602458198449922904395355666295242292112001322200579916848610212507287956669173207456754030247446301255052770846950715527674170211290386864462668853306109096283932515190544881348427023333791046713067231347932716697914997440881088753030562729423431768280222233890596742581393270520122699676911110162687249320993170342217845866150555963414734250515958854105651510672658601137711712373808226005599735476585107633514225521951927162110199711691375454177866680369019342771091705444689341595762555288977570361616472865597635995750589344595143579400621992458047889270863499308357538735511804699118996784434382475430055217389659063127019739527273782329420301856332858277582917468557733513265091015348677650065869782541315608119139925938772135143942518815409520247452973545467909807255013119325328334730721790973044109628011426810862044935730023485965509333612255558594182669374731714341867313399860601978948842325395080912902328593019350134778151204102087653436646651354689879888929673630087306940019563550874233911683821561659085858835503524264821173248009121486057548392542786880844949116703713835484321517451605947121917471627186443523394294646348744416633091610530994066264111914669241822825082287603735575218244954873847213087735687030174170769390368096713805370166124973410394961750269796100375202237441580726904977308364799769300192099236565793198271784709581203451980399583544982141381657134942326657639383264918075265937045903643501176402160355187045046832887860748189244814904927270459533425912347854832886994079390732846613775749772207970630775860379477897657408757454194964179270632314365612137408353206038481353137889996133658513367699511520896822524103928186417671844328818507897645200974411780525661810184476516885520433859671848366596321717933044766417966643166847497421526670131068067937469563893270064803481199002573347448069629102422710298277592010565510992988524276238822154551412294246038327111751241228203436001392152900691714630830044744430876966590875950555762009027718901415778663151401172649632241823930654638151588510702536715838000249772572960607439880528565296708212173602282518617455439051672229907661219254958328425632345239409178271688500235758835115512267710537651525250664749938234036990387317645989707085109584954939326387327223814990794334234066237962129638146330752127237664786945988795515456554722033655298763761925298913974887570579487582908122117913965303579555022924714564024004963034968422233079519542226213601003174364049703857049490942477252308763218736393948084690722085608316380101691905497812429645150542449368966033223186441784786287101074043254408085896238190379999332573043291428753031757153936976227032546499192236170497897577358993899701326212307683869369637844536256066050936677444649480795511004785526516914365328887869334227129340637634855035174200516238656521890994092709092807816796442854226392915783071545278116724081747492697652883298352799942550314950213632034345271432138169079817785839810045434865997061430628217698633902713295512794016994524040979909624597263572905067866644882999256702689709415408962994299031020604878724200118764969971357225165348264584004576559910984775790788320164414226696233234643570523635923399218796006150763262456287547725978980648839130970201748906593828183448715857637459537513390924015703201489221632947606986978331360195034070152822434876866527754944817761571123847268133443231906663771006754125492330142641461827175877337536500078435788770921294262733638939541769335167349715167528950007834114537437389951257649466261693929483967675443559031501142151627575514997001952998601425684570459370665100256249788771300787743038734706037938387517365292159021190468633636271676667280856203234748475504622177582255854580959361400991894159134205823398988573957071551734046896889941172688503908500359679772094653484793315683614135880521999586759506145356057575090943936754179257051974786447282222893078452039635797951341268448045304647398595311359921014803976043199548844018980319295852417351926522914879860158977550647077709915624875243388937306376763670511579056612832289904187508324295095866727818335564022102420020360156964281434241705891265091523582623667051365462616107578182393616180863648057011190164187482362949520464335352805998839796857521703006454565984526834273264713991015942678833481970388615800766088185653377123429132416647594539312165422646667198518369295744239404585245268665382089256082113374854317439602366379861607735014808097446436515615326482807431307551262989318133194406790136515513773142804730325181449480448411141962009157300328595064691146756245154606598028922635361175576385209385544161323219924657249212887624285653127742131832146471648668460440971821040512807003517010712702773790291661637472263413062807280849274315440436177289716136055489006343169561632860965679112008159913730966218466839046631257895870526003102336987482731354024477630959356313837871244359072258310016006175256087150799796764726571175841831775675375360557543959536160479647879367790929467254970586761213439076462517286206068001123370288328043811430608923539575353402050687430008208554802197669047651580800397319950937727590895970971255546150888324309670649031704706223665218208798056783088371941693125821056257484897335966763876200263470127651868675188502824817712242906185268674828478772991647662529481535000475916097419393309217421692030762771671448077935089040118969930285519339432396937504973088125172825912835404124018992604422312090536910419957835734912380717872815196905395811338930912484530746561955017733034722969561258560496145766704935124882275654655232772590963577369399087497613446728664400671122775625559716941510379346824654758411636285687459098983412782029623348887652915933201390649118172982457370622515426475070526552634474245233313495825001419209800017747597193195389659283188861968359701231665887768783524045595941312165035279644356733824890696859910143612102940769627983187722614978644084212130759405769386073996119476539786660439586572437709532475392486062494365278655704060685664680474732235116155629484566235860065568284208685158926731978377368629738105778627014628880707068962358108814611915067834307635061753727754206856157974036399264387408907375904821841512075928582289594047408012772560168892110665045520493746297654223692073811600408165957538656200818624417585025897945606433504738105012888396841798106632218823581868542755265475405928637227490870790726173997037982585756292566472328259633317233672872237558994223569394886439680967513677360497356020331790387014178733987488214343596332162392969286792883079523755761131335770635051229196505179284716470462387157343748676263058579456941637079540378423469919306241778816798391155416993288520528007419805206910305944147923991917379558169455102844048009267054032587102149398850845604593268191687524757905120405999794533112109661376074630095996622640827365626705484681356164866262037734657403156293582294076858563330594282602689924841743725872301672461262220260910047868359245095754379008452042938261337818186883609486471918532771328444313080987340153821318632632830459894282204623861302184313010763931999863943574522377739307988405254383075196899652902610710392966201771777614446489856440121305451114566062806742722290399338629539557579437740482100840013711967956508056161254334890685554932766146082461911690244579237624577481627822328712921082413371018768195613743847276326279108727435962644743930744978408705575190937189252582689759661217003072039318733626836235811375428091119382391287529515617448775961266052550529081349217615553645134886160412119647778067558107262390478047940284530165509449454766723872972262168231722185035860891725706391488064546195242145943392905754858591578136229221401134129206067678208916027284829518928817412472557291035470340327211272740324077737989229666598310484670040443912358207253449489327227301595173919442394839557304063265712152646731048257531646191301709970856571015152026982540305542026911902087594354568569213403971935822216361540850221531090793267600900683332785544303102296099127130705450709418486170409365558102629265518924795878284947367525319807473225162882090486565122019556588635544436806267727210864866025247339510476068577045712605321117072874691759802455341930909221242613667170197029237910978247018293242176933758024217253336247205311013627776351721564005903798819564179264320957964843585042038430995081100700791726861200998743861468993583271227083500566070933538804374835770140005398036799545321447522565384598843308699151672687196226985329677375727361263398128224035186497634596621945152054109247329534186318518779611695195395779673243965422426585076975689390874663655523261748099492497230466479219523032146039238812631412105781438583385026945836143259999411641771255693274310563041112958135039995956180221878069450170793943131427130767100182450706877337409165933426934070928286964071393430026698923244960118081043427556596734902286560972485124149966642302491947936130809040726773032535852775266918195469881506921020696969723619613768523089467137371131827225531572039952679167192540411217996813535793110351681444979868727411513677223526831885576979998418077574141850706420518813573244480315736112306954064214366664525108538789565254468730763654369597295649648377258147558867861424659746106960084306045941593675986069384125680162649409826859899473390784383686135452792075909636699016992340470440135848622224513517250755198062341492036373169423939760613179194945227409057756630513799625381735743630920429874427944205909726026268410149988072236666951991694942079837191714057265785294976554060017765760241357263173925668654906749991118025772919601562412714632045042260703813143931824463216989355146031269604662391818757857468726022115913152663405419957697452569163746972298463268642403693501585966883840583554960350727722325177649685021045216604489616081614721051480222340052386067666662489180991085014305582248445745826363744210564042364935703416799282678377258149098628835349676143427145043591191196222503424154035471546729382924080115130689693917563835380816358131927234877846668070818364193171149218750798040213106926175745295225385417971485860615838351717090195993076848024214851479776221619063937974978117463075022600096807247332474577026058976501756357045520185677282339481873005773305842485961481711669759447985995039716139323957251745546557827492405672380570942319174434899743052060885995134260403973672141633015237759491624315641345357368024555618388154353560338292647979784168285330145311282232770107017387242872195375424986121421134131007240044551182170288724588368125585617957164829547705313872055511188361174888045341999320436673484933197886615518121100225123039969652600901844368163169536508370233834048285644975189738012168061765019723308429811256178123922242082511448757529040540658249164794784690482568147242402157259139535888093871462155348295402957861631340467126546876678057775491441617377523429000552967633919377723787402528466996685187731309119867358759451349061921623168426020350087665623297133600063734159804526337404818653060816222224134415999552176240849253966516133250234355141078553659370266101045087210608148014278238744784131005052225558670902048216679125335870370763785623646988824118129158116415469848635823458396818842793235939405437276302520007646843265904180733644237547617414966436417770419020257431800804670573832986611633063230586222686135431625077518905377936377442100562848735719201610646648257887812063214983748708214955510962905903518458875206671977950194797111428812327418664114267006501688934446740425684479351906829275251753687786731254315104938337837364250307009612381454823614268024239572142426418885826308000525869386321130746676852491256255214430026007468566745431974404587631426968453467449359302643070269479113658674583170739301065690765697869874349209555205458925680390172032483768901883206282496608126130517461132733873398954155672158065486999536549626510305990196529091471368490950546753355973133425968173581040371134534800800043754344731617279624598619335608424083696165724027367775988753668905132294621925825494598706518891349326596056263767848704679802915948499971417750690633812254589360993413253760271150176030499119166738403447985639347760982409075506688909528626391671702286422985606658100713656644107526547953302365510209353097551165476782613130228481185877356154643769662337674075255783358270616414012697467028747446448403695941616366295773486755094466538647304649919046910219064645099111217163491107208634449198892429719178899059014887427636540309549431566475211527701388330801683121718165925017034399802239579544118004373938924153979565162879879441121702100055573695132261781097308607298476585133649771555428916560980543915228580001423545916362832332055674234314187239482081310264272718885732574064604595564274361008456622109425497434659843973440043642200656265456890383073894369226327492495068504729829367107253158641479164713840184181266587912334151657947206445947013572696872250661021846488283767997709805014064645534818490942928394209382381079826135624375153127304924856892374890728946345418684057288156754222512389668283453232918198639580629438906516958317385239150763819149207996424407623463197431474742765550084898411536368035338927894524257341680380644549053710855557539669176458476470559113568544400407876719483602152308946862211620967995637615869016555465556537300081934778993864545803267445985810499699393181108645435522409303710531562023898305105037842860903016821575157456860560917388810374370026773042016241921734046746376361839945268490575003295596602541211586744443631023489571806387977149074614876495056754975152230638987947844412747300334360039623323352373361687880191605340981278417014755220656318821950391197925572844968413932905370649272967064555409405926081461288914384140269454754828111799046602769632056954274908114122462363848648845282740601922284151619943524943316206103083490817048974060052538428719475943167885704560994360300729814340975039741719703561492804709800483288318796384252613300043944986756369357964004699899456277175832688630905391611633539325241363482385626128610781291632705291348794068370016286724658258315325629431824906073061678186393344276455421335247424153909224031624047580451394765919221759929767379022220089087324700241046681837410163729527751392582009567026793230452439543862757569562291871701225352257588966392034128810468970018801441481943305242929855044274238031944197828422432230746909613511076146883514035069779707426189504966155749291468925274095377257922978935227089435253983842963023536700827651067120145714890417097708645430153882444419465168046622703918062876692269340666799475198828010844999942392842080672628223039129272898288070360285264825702815546829203115946361521601796260965648822564296206349641036352967403101393195366737739416919226265237526108034638829883507493122382421897460144733798618284745374550209950358477055592783642189768433122714360371535337448227749418325536647059239366356830383616286472936472461592908040077619488104737190378070991482195250283400513653103670946293497723937014128921212788939724927483010061417245546433314561834381209134058753532286153064673556967696673550112123596848715480141946268276906500938136656272498799408141940444655248618440383801807835642217603094072980781803600503152019235307141341452286004129403413553648566408280381433209549357268225068871145613604700739735225463220137531015651013537964457382311977772460916095219586109736100296181838065671958456237242707779210089469662797484338696797318884563263054594422020102562123801582078050162956179930225743389612212684151347716986889380097079510026573101865435046781596424170851033227015721049709620489356971832477171878460621739077934693657979510843870910982724306119859361025859199130131747681076248061541415822953319711935656486741880921988513534173650505838582303883142015793236632456311027664121692119590904136428995585496597525607083144372668720727635491287304136309925944304927869668129467343406502321472043012542991986240029861217598827282542004101415820554069371154116674539082545794904941172452088079512726786016988440187813668217292503909561271626396472163706992915062854190933453621497652504751025301909270115536388866417773851387483019758551869585421533094486128551146868562927980437575244344311311857020610690894437803745497550272418323941493621382614464816074220813485226104517067117749171242776811329627288665369665814166400673908293457443408493171021752844054881819154854376294602975969747476555192244687124021326417389052338551436441963488885079914108530819446613880389113788927903201182836535812864260643515317474790250581828905813618226500153675153693361896747961914326343258672249101631215904552484196085183068501108715606180697692004874392704068595461699795257562032764903219898712892356302641704234924656854377692117271614426288521475651678762412581564723026612794971324567767333543989326456651578246977462833396325534765910854907166581245393013555705009410036765001756496684169087678655837666330648148412531211549368831980205269105323242286372656629709186781078283400104760954213202398343941191792908071214012141649353818076556945173690934191728630884215627114608893136591308867421793626127307595215335271895309409569640267952491593750734635527378592172497290097618428761570474048850183836958010908377970919645357481343653778930008236534664868754684261436093814522492435611465989903719424508918259288829740609100437290323965736348640141403516354002984579811814473871678014729564097271037574206012237938332043639319643537464159249282851735566253590171366965439692228900999882678990831472653484845837565564205371817641857348195795791195332870867572349161679464301098787601376280549034334407908354022474074302236152194629815980458703566106276743179798310623718355801636803655011352016366729252461011453446522821722423243420201686442032438003629865189781103960092187961870991905842308651519022142682905858680680188946665079772081435592742607649766470307961502768151061104742865720002877119797604492783327500358516177287931536054466599353966571614897209922630984534304255474302565184731441055519080349261684861452371430288224808077033080475736340986004782060162324601736801943080632750325972865578112222794558715972603753367074624156864234689523014137941286519657547052745310983116699054158448178870280210268871750994880256623347983346477120155808238235860695236970957978353700270701354957508971475111628647947619501656196153104136380807861368612692403020601348507048432339144884920855352073796301228645379162122206077777427703647264690166136154602338318367307810506196224408809116679915947573611512153659478260934948239690884556416306639294190434341277502438413371706614069956048143438469446075944656602404450580189143883198366797430243808443641203184903540810133195960328029487923993007949662545320990878252658134876804120460973578397553590638713506304136347392453011718974023972603431163911857783192321763721808195131946538417077290082953081337510106665451589106665403639109328549183848741946626171119479954023398695782165284549016464751768786520868158117598921605922489104444735077804031043131493300272796233083335555813695064717724360768968933707347499837057262637524507774907394353230202010253411843688860028575612337708217452336909584523949748202200352406785011201100384215966128354448673250466609269837264580559456877248103884806693130498750742502920413402647658045466367961574207737316615558784155280992287062326216058009124931814952998847204137568590843213944221556062471897210537067544724595829580305986792684083170485457122812159382164943431307400894656669395656218849879580366482162557496819895908682584655545730242415576234082320662184243532065645047785011383180748097511055749975775483068677733642707248593608711296515434846587351839363694185531222750647369631416307696539994339819761216701541535517788137672907710254865441363544458874312898601673489413103216648527642022563908810196564616820776540584789295402378514746598587234219034110966056486272154054121957559707310386840860485754033107570654016406460541649603993099678340090147914756151713549023382963482014387720966944219360374251754077775262330323883397842942651454463941124022355459213777481262381590213589404358834072480679579644208072641179007227270567592226094854940160432600483019779988329998485205279884270430622807405298176268768561128537483929554544762957328779658643564738931725689838438066471000218352842698049734260668438415398656853710021315532055589722319371438017075423790397880457217104643035453444647913666019764614496485958848748666527733098060725001581999172756133613176846900762758507300649408019627849798156415486926392195904913635199088698664723638994386682092409553681415951862831294300854846443900299035039166077295689766601430067437941632102838277058422926620767269162465402038040676446525819974203116473469615770993042595546261413823685299871613999851230707887699055773009195748575058213052601620512410241916365378026739213871081585340030142244045338483219806170852811803543493725857902114008489782229326305445100006618228104743647141051468227019197473978565283314540542421793844933742635445971778565504605139492880155668814497383356470803698745750261052956050597243860130709912197078581666067724564544260909503738092323403066089904143553070735134841610228358763108424374989363879463791472995517285260126172160999299925389692542460012011619168256647737903708686617323793504065626877151747989229239426292850811718454326049493517459733210806412901399847288743713444339406845863463160061386623040666610191912835046877604172567901677859110205253209298303371959797598108608131817789955263598406266665826361830659664637355486611553123252458707483911940823752134529199983162479712368406185753935594161015162117657208527458352718254496198887678980595434551502444635306953681909979125599290998389608154964714508291912362281613252646990687699132494383495516995499815535261577939854991855010772521267512884445008011275627664861307617858277667973602622521181193501336344255127470398932186471803535712781185444011125628089933043667160366557675527734689831545231086228877077462423226629393417090487460558862654370738809226008595879468642727128608970100068801683330943078341749577968692364003593938483348370517218976475568344801902024911220120361444031268102452397648472903921981920803935334406886281913611197971420211462929047104707656053391591534137051514501902479325970339655432766831125538999305251934719496632491863148888063636674671246973734914143033783606384869956092903037799448046279789489569315816077842885001999451493500056738461714338611866651440511032508339139874586162892534308911496724800630829490998125465221267566529254814611303491042445023422093249602961088834941431739009598546289519390145900037674771313232777252126029543925122327118650232202036866871524829489621506837965836646058787711107821255829261174275640552996006230190707678898131328123284566450268039673736335617298470737657819641440558086604373068388040882503930778171584138143694376220673688810437363633521619988574862912256554696109655371881290620308622327593109442909503609880157993550533501662341098981977682014652026444165555708708883237698195145916621902308075220377764536229803217124193356278032317675349080068058245381965585005405777427427298293659308837856435720892140782698713422213289390171685737524590650979264681466660313144495582368665313859153635778271588744809662529268210818929556222891266894932141070267734732133554852609102010323842099489751999239234220087456208982930069357204700663770615301983186462501947356870191534186831946599164836761921092752494984997944033154520951562335690299102101468112802561342771337006657389288517300317428499619993183714237536038708350371160169948582654839651196382822946688317086507867976766191740177602042972740404044025495978871102616392176816382615633046522235543071658194487233825529860729764086957603325402949975422861229786031391998096932009488522132856525088269791598202288978809188197829811880682372336676195011923987885196553168184091912926795843732714947121798490404977668581894397004898037687938052740982563339658193120258799255093451152363113192368860939170821023569272435539647810372773962030931559360554985661361764295952265717138392054699109939392869095406570543603160361925767975192146785068941920086248534970132158108591548607074474515326329020531306507489195704058729130212481877147550927748890081787326705104399325192269396970702842558441069665748927163064274836709573788336154402060805464889051926285947433562429308403334531502561017195442962044619244351664599717715713017995101758377312270387764190321413657520808258095116507004349070780799494964934379697278607612404365680602376565341731887350997173861697737820743211476288862886112057808160348989351879422066219609694351844938300652586949637499416554377848013991769615287104875175269200104381194602104794054297164429340786404150689582836054273103520641473678130088099071545935382028196460251134501571965835898388254581441301313100305568260109150459632580338250235283650832410594770719935334428480209426479521820654753261074887029813081007260531397854760292175389359077966932902159079065578026228155360687891377836242481421754265163440253643950244109309571220269312026733944384703823166530209186090855533214192684838369350196153147518686494148358908711745913254080235338244657547707855456806415813026854707018276519090169155723501350993956523325237415687468670315995146168574622177828070357880639440358741187091251408631411066088966341492329741797608018287599139914506889042622329609083579251604227162375080882649050654883032178594928294745586174184150331345931717155906303224639373955579957376940650241391658140392202164639436518910854698145746075530779898274930203430031466483009372612184535453349990166967792928770049796282676239241516594372672001348933799605908512770497896125741868605075435697360323888007023629206921904183557943898299826582577193946081329575586806020017431780452875016341075650725862219874546008675023794098233593339357612762105601155059091067760622640315270285100373842826202553274647590051446349133165021882486190341513239088604916692470772552502476232468257962184580327529338084247703976602481333198290455722985963768634031950644485025290861017494166893705022530978819563608406648916340680638163924329570472779872645094393136203530551655030464984984784823965031557084263804448126581399292959246759100121312712428209444629340974621856113443340992822322826524456725111532615266206598996045688164414278966024570092687843886559134979317421838431959300756832280807664802616589558767660207609205683307665088068610663514584318944301720817504884323202770175516858887622121160170271850342711167978039025177624655295234181716208345074596612342550110212136105097660982206428695045986380227452969184982216107829350935285275227687946642704329528081861499731835862068365851148818250735447796340371901194372125119987276857539302802638946052580786497838659377879797243126409653809196997551615541054005688464508027764070289244974607410445096590590700009799162128730881667029117805259990591877058988780013231761921425028256199987017747786200824167559451854240441693998487650624807329467664794166525409067571876063355897142531698631959957614173095952023601052172199448096413378182871407777661434505927282265326955530233737784223520859688030359831391340520690752572202335467797398137352311042076851683334250614075020512353953709097286703592998935281959638126279917698980988172906434948552100387282917304454718234203011480576930964444800760936898221964482556038342640969380997249831457896825182391154416531367719456153298202226921732957873976773021775453704460375611888538364141864559383491703231878873241432321177698732722217213650282750864816989657384522519130786674893886552673710607705852076136054214899352488551487600925390047780916664751063121437867536032123518774704959852853881601254830646992729832903196764620288898488243853938165666777065142649714679088930471573050862964788334333783068207028163926435483434891232206820599509735145138534992285645882213279041869317625397500317572301472082671404628992076505975177553430067916205801419878470231845737631034419398501772563771468025061927802755205728590249137293619139516288769808434829393314318647794094105387969528172754305722108732312845253196003208440868305807156708421532083849207032172495493173702809630018300201686711953501044132853055603218754382642695098913329306483602388333925451522057551598318568448693258147556169510286339947684754959038639401988700223024350494782546372614920751873154975126020795105614383052444254165161249185341389059544638923207665304874209276968191752977766801588843883367880588183812218185174123801399646207416897484173115487628971401466436361548628010713400221254816789004232169335232864686245856138040679246549747726826095532631068458500583696123666934718123658550444426230139787627824193438471609755610872153028943579825919947346129655249505839520731832224317089510417992633580259610813478475441253305616673933612525774386921259609892476494370474558972848615126132557523441255842784323126189761269096251778947231272436860850091855229668468711586068781586954263658977900808187406963273918616312158948715166894296775956213169045961533575166116278755025397275813794632815562098353150930767304197738715951683646203991058924741354970300373733093766047060034314874581397513896591194483475594189785927106041536588368782389557081766860593588403988440115642211045590847695802120877895181997191466208990474031981796914337909022284939264294110648468428758437523831903608036991687586088346582227603707979441546729699273844471586748775480860451684230456682795582346632269457425471785485354494447184266335148504945765072379069252750435030581100818309142384837901115995170106971824631358234929075020558161008844444773947796157382202244417437063547028603885975207296442228422699841277405850117184614077823261720085882455830142953772161729904276901019243195553526238886020300581827920239325339790250524394268256080326961485788655712536765408916778563103390576737211255181309789799926840424529789902630046574246236377496848348395167816434212088629012148128425314054600690323944333142146947636023511911271965826831694017998232793120602049039393224419178249141824628274738870613592861629269736277050958793598355375365934208248741356375905360808366603306506283338731211735253674990123590924483148999411078026749859584765896560903691610338717074990474670633881596014892576550273557944320636385646694346387114837681329942962030923989956151171596383408485116162324785831922624975645441991286400221099437794740707371547508340699176638030940290554205647942788573072303274592992657144483819913440156816086896273518197948144738257901471539901635398542545081498886928434959207006812810243074345107347955662344130067853072232535462960613034263165508354297579458717052045409473617685286031086973370109516537602822210031883795823656160562102250417255257331918682610263656488488377014967111994594502766487014549823813310134290882038068432549176362786695072025576378392078344705275832255392396645285910200152577280040932218981774369336546069536991376967884922926865661060128105075769457881243063051730153804087552971223880114070855573465748692171788396012010274411161417687757356158119064856542324606355657157818974727965891364006982906502257321584929927002964297661663651857758287988633561495947418278352054959782099225176746755545446921548264812458375120422598136930579218856097643374278378336082217520816144015252039039328775753528170029623100790565777188993041718793152208553805688660110996104652937529797632286444091391842281274595129888749017396365612584491217300049430959038232401283026220020276418712235799360920622867754828362062356201147742595502500436374662477851895877267626583845194398765006459337077267230937397494510104107478186949874020079230823712956778361379733063209030286263411494493409913417489316500848342690361083558781107640498420452928156734400310760751891252028809329648848177580903786025125171153754264941798422135453709388629294898758825241571030049704716564284413559483176465114299789261934160516087996345156323875333537390065665980005052661926343730874558522247406593548186372010021015939355320629404223016428059332622253065822789606247298713652168815936360584294341801656777330385075704366969340188347645642936991856452880587890380273480060550489657587404786383640262749696884505905513548565624051529449746048596265753680101760154849699375908490927802385949979348896696549315200772532787560464020790128630829408059454881724647905050931723746480730898799287043607802751101576056995630661969586821982202318361887066084141528195581031279579443610830284192740706988565400925762697835241190613217186011561591173441592232207158985644221489993171583054701387479448032509086686265350935263392539218375121771881335999806733142435791959762955715139745981034311402381310125265491875672775544638966225588642699270444376660832514405978114232885819313224891774998852420854429542970384059286921478633425928841182948936612230483325139723242624466860144171962242608122374191453589226483482198765164066110511022240058990741275978908136746421006712431022539501611939512620655804192731727892541439423498768175298542789344795344289109086108791265969477202691650782262349571734342808915739280788807013636785664205012951184535702910160970924189344164476329367820622954488367215374458326046751682281495209240266004514219785804990678383315908994414636934114238764212032315334819489726150501217057025103975449366797250917993427658173180799444533674781829157180006795091966187771594636059904443735421314302146060461503757533052505752435827761429818232947652147286609149100287126631270030991658603984758172134253627618818639866230562144888004138818302312042968829063906477653622413071728868069104397863591273448871082225954768797110080579154806780357191938566794437529159769830813722356894665041876530344444637407083631684598189547671546237931751584170979360156413591432289340486507485385478873502540913847981181655177249782888765529513954633474646122591646063658931455455852950667825538586645452769721756315945825881829286987375380565379225596651293192093729049304247547679449500647529572949069725520733783638783560485214418137046456272987975961078080379410388525506134523655470333904892926645054615328883499984679727261679931262930464175465399489719558489009094705049096468380431558399688576222561653637024656027075919638649505105214221256649761849059984183694340028686829594129626845643115039765448398404901895018147712453552544056559923794067751829956110112137104701400804139325025917561687509588947316423485714079252090588735016819328014336957122726000675652398597781377750739285638032001056721670536023548918467222026763474711580164475327539755154490161857499652274914554086521046166404991437538589389077918291681569270839407840806310006454331153141275932073499602219405879797874716466329576455498426058056815182809259102109967759780167866604455860351580556004099297813783901482367999623461626621083426993069823817916526732675515775490489814470357334270785563818060919211111828130987397153688617774417126123548857600655282033545266812886466266087557325942840925654860161393423420767138665532271246453903137893341799303326647856322976581405160204689963628386781696796649082737425559265259864042309922960462243004509087728363338987093275757672196015660428984103655099049803695479206138096196426253080885807099055294548598283470169171649470224234231237109328988784358960923976356886338346943359652296757601116465632352355491697479841358706221555324073995780737187546051445048366575324423707975886341968091758832561472495908522021634807528365906868110386945511934499626628579760182573535800617104614405605206502318485837890177692817128395047178541411712983183873289650645847008679268222706743266595333707504569411334007776375929373540389359358926830744655932390225726724793940270101462098925894059063560633580043452088042373394709677906702084496845594082382060450023841224074236501880474632481746083216482865004665344712326956210895198976673630333617537274085135859578216057555519336193058125835831945149540241448913098863275691998616320894501501333394029952862367557995813092148761072894526255855081673464625643787555603997654666057261402383026892144533836246876301942001178035318837397864189235852551472378554341982710502533026806677222369265512532784359840942650296222561701923599019677271214074159950481623214951106286115938884627197685959513789788708706573062310304720429244088190709562373141924957448955649333237625275923868952777440349319203145670759822055290562500320095107189636732789554378493047575689156971030317040661040361173107970353827084568795516165758596298849836003042052005195639205495324662217461680042852284384227894469017227920643008534568863289430193134574783247823041039469921662608082841474901817714659465284548807357373810063527863141075491473358906947362118214473325821262064247776495369515366443933900161202239300096202494557311722861238878728059819928300001161724883224689242326103115540169501775957401167151712843143102892615784153426021077285895302730417606267851311990560645091642136274318194602283378081483439695600331499931523087290811225551825635187953605782750386577962491102227997582142815932813271119164591981664367474304716656691444855511078293576313331384060287335511801272562387483098658438832893366965683893266745014754336212469638731326509736348482776904963150489133348418551834373999215902232497481009656971889339277259369536148348637288114491385860429833414996186705253717194584240238808984500350343272848621529604055824751226466900166997880631246248281703760748749027453565673805305228468848361511374115196845326628669847664538687006043685616115135220908220699235827262640568694902513893528563618229555258811173814684039261379799474782189965187602015289970221220594190063108725918490660932329687729067515343999653947626571957432172932790111285327385084411297876577540006369632484394212807955413425338504548755036124708729728826494318429240877764408409568494953055611685728696161464275046870235527892607425339958243309836068765357482006312001853918774012095537434775043716751276661782040046774956816889143830210855371357563303072155995974038118486149044522790949937802398566140498715556262119289213684195962918088050444137862759194863261401290941125603814570481507125840546348495734086406068721060416529170279826048747179655985518533507594748319215995618735792625778174206761172400953767383813037282544452882545949175642997367148515722609338254898458439693542640242637020865071177487428196768156491456400436519887487686566869742610234699198605547638386545656213902385700364979159101125784528734358556903313016581546239730943822450954288978972248700225440285338268920417820718849597592334748822653475656822395794279882968236976504488572119093213185257765665055271345551374391164272320268170840085267853699937196462916202644171653849456659477567852261226360259643381928919748475319763993375087029595342095167657704371754740240371289815899215030261668996679729797621349178503236872282800200462224960552242703751763557458407997923596108636783011597073947873572922101640141253989879509577044668897174467478068780105808955275300850483350586784307611534032795678153062884628956250904485643999293934670355251322999123458171571783595461076164484451825598160530128210126856130928919053686896130536835255497660271281632681887579203906018108526433639807957559614383032394972488339253985237226623584627154475186475796105706925131674805426196651690290141055074538937817822871103863132310364426724380674113364425044159756141787009859372799460835650820730271529120509819931676095778375475664431894119895642898038798665587330908287423756552973539688326882305555984761465096166291284682226088548532577573048549193333629231224628007853004464642628886651827346192518641350553110513672284828986834096413740619580668368627837083620365905096093917065219935421471741768505688785500340926990002282058503231050056698447410869027695276089896591522721613910682406491945026175898318812727000667553843224982389186306791591051076195564996558143070405282519480346360490446532599906683477845056574712906214957966313700360247102716727019600381019682015168987384026424444452132777955434892541874591612676299000157888183419475020764680254036621679450814955480825529390026137186262211471730873204091807696326488300456787486741893272275697943309536710228802166283989693003092361456006041338125784500654220632245073040724126878703054772259223900166546047836891904804977088366324203806954729777131171321094540910912576621082965709153432532218157975408054374592341750740338989086527543687844954240883153294761757232583256370612883572734403929514848674198565327564120310146298922218888205897195012527381384274863322182072497983855838313261977572285299682211918987398691527396977722707354391426258018738938184674656124140211037567841315433923415827651286019103748341303673314393312887433326617074461529542004922087257015500605830249552875103491125193941136234953486392351225760189562846932930397663877584736510830478688530528042195627157799479676323697169173765937124857719861694042589667370128507117946333751407408231388008654371971055496451072232185361260162182241859760915895467522762915256935021459448254853867019711317866873487265341723288012214204047609101539012118155740247066278114548436554802443673881007005681304671998562787801192845086959534304981302295790023684886386988297336848825547187945391516346754061047755077848460144839393029521382603588761335665865405590996104013190522193862530915725965330930448177451438766221234588559238735867789035030638398767090276613821732738889287904333708196595686014318440090185302550188074465108651632798732697795213574225484377796743312147047209132403311017039358664540691180817951544362574251861950232948606523135991072547774005968655587631632030252311851511548286510597250515291096369588465167438069720943323556208991149205092573814221665622464294739040533258359275667164483610160787336145016155568401713765787113338302282897857713656602523963663446337619433136080020987367778521997282008436132618108998534503656530504749693995352239466640734155247687286526855140433060007655774008488911066270834563652062636443438052822384091429711435573475781524049156026740455453559429404999511130944556842475795692994876711238876845879495089318731073869151191972289619461574048383873671019776494435065120717046838106968182845981231700601940497340516530865605485482312222447316628789263933792660004159982311421463462432889795523541587782700509437980055578423706514937994488610075454731676190166809619241196954155680356559734464491285311619654115088384479909710821808592223623923346843558017004717330355479032033123593577443261335481386814329065143015879485424440584891813586937512496963571921018235572217170997168037451039025585617126947617106802836147055243016529893087031819387486527273500532544905198395038119463484963631179959210884645507802151324359877691163950442197621137303956740485293218267605297159228346911145747909310565943953757664843417990809884731902215562638001709389110015964661656601427637884429619892300379990582367413746861917614189345788608238262211088589069874265688181298776976464827232126802012404326537028329154670804284073386815593242773745929711631261801262522441231694715991876707211718720411349845674411865823374939014104655680296054787988206425865360109895591149213581238288162459526758273154518332109165247334807945858422186161976824422660760317468747650716666976278925877881110017337675750641939555793611315730599325072539764510980626301188520758344488244545468826183366780014023148611964151262150723051450707912478639854090757831862595275374760552013644030693090895132716766519536201477099547873009529132666964800943790967017758217209678757891259905819052435547983543641103868212268712860005326694698975007972128210082039804168169777985356305565608008794235933277550312562765015313580709296113615642641063773626331866811808286011225468194044079492709256472189913890684583335223451085356908629149213989140718700322957913543947779785437044131811675968466670216662521935004085340304909770694152065914494980054372983358711703745293497969227745996199996239984595219692441169276686815210645617699740609595104209745323107530234454005220315606347187432985649729760131225383222988289969095290667423984029911744049965753109802948444458959935169336067853539621387318395271397509565657203450924435576776478279972935806771554698475022429380415815686537033518842554638489565860110476884190586582731865748618926314923352164540783692713228383387384308986485596605172941391952602347912563782491255233384379672500606543106230973224864778414127070911637664988603851141691527267751147622795454147041280125899865759197602885171333901932843440697383065016203126790162717059347460943547671691222652195197300404021019172621260755248930161090617401740517848321340270813482074434447032764666149023127155383190885693338077310441715063188977388627066114629125585414742821740573071987215593284364968406883116140150831747707026990403931201801210899397696867183822958413472896106004212598672848269055529975691935107476049992896251517427252255716410158472786385296128952482237245187532954461936655222269679465965351210276319971423177430635216312227633129525469754774836230026691858665907799571382289006058339191815819775155836203881483077843542816891776361144031201750799031713868941178087625268077674158344892460171032828908435806425497275789572218077936155571276004088709958926101349889494575085181526244092885673903340127765429400668201170772953973088997679704403186401352271972740236222888512063213203655722758414342275848366726713764454766843341264582687964950892864626646078315634276074033040896387580536370508633310125629150765783459460586953135212509758893630316538801244794643958908726442219231955751032849928250975733887650524969283142719383402729448257819506922897809771922460400874709492427155426151916366070644665842109473261300403772540980893172661936701857354357194286318930000263413960645336502273069668553714723217348231250993091642121752897517861842383830865055656437670917413499462648778441398446693708194907795157804329268735420256060985436190668839313868584289175621539814109157586047837927425522502220275326437220945055854873121613649410418588840139792244375965529405226858315655078231226788999058168571348753151581439732588531867475853876451541288641743781266047132924881003624296333323090178205405419361519762895247480942589898704011008105913031900210328087561140324114385355008068802543214928243153403657390132415173724792599868150554321318756510057691366782908260505109023512933024433656719502746480508432191546766423997555757488095086237543733720379202685398894257552080686373673443717224256517715986926191089683594334115004441323914956378458028432020445928901447426721663224749133365483512146019226080334151054613844554265238751106195253230353840113471908222072619617226834112777355124992798042200436542577653747850720487896461035342505817447762576896912839058531683939274921139958592193883829745609789922075618522189417549936792929047819021687783800509940770936743344639385114968490380723433950481212504988795122692794352349202299702544296883172460984752190449027791603331324806755384116816852594719244550259884211345430158080037265930907343561041019158885323866647181805118260928259426070530312766089316172777696536824049448335458775906161311559919678510253357912995498458658618038788349688372567057554981093796148334963693809868837698466193783088584960704276926498050546546135635610579744418854800523555291652950917116182568094529218114285541524251254101650450762112073935137302949883361524622509375994088145504806161282739475717527959443839383745482870475701691390758951567793390459988650536124690951061689829080765906924912391746926593678327969720758526136921767634612160714047817626799217266346255386877399043874726458615806065561252231935935156302937799312933911040981255085138544024000306206235873637736850898113020617231013821347295639789129970645166461740227064698887614752765944825196199549027609130025332481591798125799016379709853103127234505636434295285259775181814987790233048019049474644137816340195283757837563047959541905134157632409784865715079863858537709083435132768414004212739236764273776899168006362435355942157187979332717432458018235689919444937009521344929837737575407783247439245454365276423860921648181212379408502754914375506741946379942243597682013269395376479360300444500345704648985812421972023525588666004902839613668619635302313029503866788615750830256017234197177613313361761807140120800535740787372550190081664206553889209497863931997298981133893010139613213515769030887534887040734783728851284923264808558851066780694057132724649560656554532488178637746288880636094673735266593850295091855969132755396918830736023496725276501812949543761009002368642183183838751699355397629089477178973418938265025060763567801796402545482800760053112678622114167240371431487640066021986116683738644860552694930824250666247408828079707449558955927714343362700673513587886608495110978154659371853421688449345664777110400883753132736246210229917307188790076923058628533756182250396413688576383761258341894027490545878975967236300163137493628588257302403060577298676012121673047380808716614381834171417524136411160057993365444203332320173023546355168864498969526327896180433078777844914088212799778286463312817351150872003819581196713718289286798001496553685024901353374663229463915748113121396457952192383360438967195711080847880910405191961563161862568128624232990566858738053579134852308016548285446152028817713754303516020047441365475351620636874697262642902751841157750856791339120446329558868766464933530721921133979912363099941696752209885672644823760587477158444728244554033334244701738171985334144903289284486221758254419034313431273415062278291363833313013977505488997069038445143800437290890408928951807659873810052425029682140321885931224574963655807118271477129959671040181973520508818333448257921612110524731956338237008826180947350746546941146300467522265529037854840286102128196991250504629621143053144848992458002211738167871721115023228113855397550903577131796318679923567759499176251131152469061242003401524763742815872575569018430242101826751724521451520396807156505444905306931326456717076604840919390703131442595394151058108351982795592642872293134195088519226550872668550749929647205375462161288458773841652525277143110311308444417686188548244596425291584155899058067448147927154012648167527573124040588168294278418993622045460172747171309657997024497808859441400699773423776376843882390095601462570683753376598018895736016493609664896242649112502075284779344568579796329301997927066777040336054375023197368743374022117908383350332809561492412854519226689750778678344786549152239511133106059135366535816855700023975204908091139726694076204759686150926583341229425798879090946604292747710077242811905520476972196622183317144183297949938891858556254757520547838944131127062255276607988919905162055615445736091622887570186488394538353674382261196723773847146225347019548468244232329972607371018998552039752056856870150141917519112756648736743312047468226155603330959804807909512649340533156598908022133016548178085905472328146567519034871267115391355712182645084817757641370832735524633136180206621873333722312735974777206609470272727717774456928125612518627810911373517053861326507487621022055844791583086388197648162368888516353233236316869084421246899006903500342996676072226946699417411185515797823522002759903581169700862706530723612418957133821009463971894265391415969195929066968508786183087538398827303339430775629807429124401648633093121437925137302798461138002099752200015473467802936547306465491279865588472103460812374572500925443158366355002651357745281430380939981389855526983300623628769501928268011229273837267662630954447118908182620682846671052046113412074463081807851065317485940444060308510340013638629459177542135383503824638699230967224282845062712789390919188185826960025209255104565658052694839815643399676715232137399428728320858874489278740316685978289358494487706477688823133866476005951379847728027286410294541863647661429946127155314152056529999984013720164353119040155004161545813687374654292245501269695790147523427668138706823456958369074281546773191740910488147501524355746223919002175347308481703301679476995641699274910690679128723905944793815507563246968573598605081889072435158785956964227087420476033341290800746110608918394165118946917061403356434265774805677537745792529468831540224722257729102593632135934370257847516726753929910604425507343376769241485929091636351201380050949482901176841589774340848330904635707276532112565637781380628227609061971996732287162467942813069188501940357782533685078518503900685634322557452151208664105823735930997252363094401022027196388948744509085327419921548405435933165762342892241035423639811654029269251724464714321872727633027134301459126998204025699808944287037940780575733560922654332865541965859762713400272675051604124425708803760774602908867697965445501436903105349944041924033135505735883636361953521063678545779364220189647346871417932082688419287563528827270327109395389189871207455412349232884042914550425578095205752527891372470424547287246032090690382287944636613761632395013930014076934535604534481700666054451244694370874867791207260579223557287684249395996591537852836477193932038882687435741752133041279498321781393340847655013417203829813643437653360137712758918353562967088821717191559165765453262287056913498150998470715201829494776879903855653623648142782216484049944691685662346971879290028270651141379443923719821902672589239994455507231750451065616378090263655038660761839743684999088033141265308450210404478544757344215051033307316214385260801219728274559637818070422507089226698683008063905654236541040567635521082235879184071452399959191760012114767342774851227041457204664907702906360170103967498267688639707951363055483343314169591044029087378519199560892182544245984691797768514980744468701322985419115765419504396891289943439859665380568277550342701483502915322550809731654903784003705953232231985051174139048473569303904398055217923437184958419925374416508172159831505617639173397665058112183933035126564641960721750870483638226189366609477765640633859510826320899301151152906877285977701541451149044535009805232316598292613480159271770556885040610413822706204581167334492472934432401914360439755282909808167279282432956806782554696812844471908101221426610648206822505224753641617975912862738827250804200152077524061316843186883840678053898492886839183564723093621012018610447787272531460899788164826537922515091697992532493983147963429977345643918641973035969204921241689948359775519904963089936521891262564688935299242971830800163203836823579442377788974987176219818476966656227279213507749048516230776076093256886599501202805787388829115954185251389526473687958675580414696208786859233447038732121198927233660741280621082399089501157636878049828264402644913152906392887295458119114138934300921650504572464042056110594005136352076545656560725057222788980219129132825522580779073118493373987196723078303927965636050233851958540644775951179140841114633519687838304443077343785157626490335890140106352766201358211523212036733564372904966311227482950884152288634259689095089980073228378369560065646356739364871944536128577636416448562513188796080476224467101008159066833265776602278024354581775899745479888633797346754386991048782694683035122266879670287285531606491732202528332909081886084208825599915015423191855560563317422318252047779043091642835901422164394049792247550982584557309621562883920528069520291229526918496869108850932052014691780187836798805055597725938538932576181622915919349080055685194599227323412964705112993987583122335501364798242004556653484734690746896332565206997137121812656692503369699324704581101962847595308556266764330829487476109437901544518915388815637396087654064582979957211936348298872096701663534256622398067554540310947053363931645764345379086270718150350689658298014435690554703727599805434115195448059663497437273818043969767081701147757761424031971800297988567385364236491598196709639462668593530488334764525714188554895294615612751391769377256510273057580879801518449781702506534069452423898818214700601083597634303951300596917638020174186210274951457629393750715257092535949676131996509379290957323854725653426884806562509908782092414106356544386718872773720613939896561346161565282594745898818161240927945721305513607182541473525586861705779097419393956333191906680479921443766311344364174286106132775289478904251831902050553905267252650431723086683270561533473176793551847513087970544056936495547015079286916886092396380625308966168252558100044399918203181113346583123442072868663891522925037619760850568301943165022634909089862634347579872432646862992759584080371138244768924498126781821612590176450349445823122912085675570566457324442476455203824572639989904630078525531416191722879175409882225936164547409186513450218828660295136799317898701908872458934340069035617952020033023844468628938954293909986275866501808651936130671818772576942383751243523121666220842762042414227025092469671523414950346648430548082844637796173819311491952734875717469917735172137684633194226874225573745378678862547932145300281245049940053203935619422992242145067742097616585272769671001307718737592272366060657158082089915069809449841703534645406456234536980551637506031212826367762869816894610639199708909995717501065068395761216795184556555098581879479429499165128371326914945204942996025941246822349418634825912221743373227025118295755984314579616134191380156928772666177602418679476655801949836910660371765656756682629925808969049450721471948309683453754805127226831018846845707314958127232314006514823717560366517287911952835046826683334517117702995946407460251932449807412108814793504819771963086683021779253315094433788486885600227107982285146419063115097741424064713499831997608588408887576756993674915307325446719157210506254926161249323093284115214211628114239658105434770036635698632851100282614388842711978217064494772001278028313057295636133952089794016437454042555094803384896055368830362669585248037629712191590698678622215247764448282142911752759777415314939230251854011925031772270619941437723892543960379113506226651810167732687813986286311464632219068166402292659215633890567969398640547993271656075988995920616683881056471284219691450070291134968588515820136038997248387319952523397543966576633472606101215084439372361135277113230107466524468767158029809635963942704793364542814478003437853257422978699956324510166334126063956827825068083427766803769423759984626992835998076696122036029079404807836306465200290171665985233348519867038967147350082053063107615685988634351464889017931669669346377745706283332676517560966357462881550708744778568851030421726555523575946928686108728315634781405204455204555171712418407608010216124711717801253312097157505236491821781870476780653930519644535948432862611940596094619306884894243767789143946029825199358955025321682832649259289644763453083792921367365365468179221657515088598778909953858409361572940541881743223265597788840879640748994347830349216060895167910942309516173030655685750888573274660529308767234204113446542995152500970881761266219822537964794584956202115955100254348912486902442297861403148859275430379637902286431464574649851409170690285113888323332981607146796037211653969774849961707643249824924454458457120119593440709755742794260137243557216618818285066023621078897026145949149631983702697037759358169948158922630225539902746797624014378429991929212396201787893203414937542423377426706933480855319526600121488158760350618249220477668433046551132250501285961328265191910206114711485810272664070889707041974358600443050048131705741960011541114902043093747453268289065311025069302467442257362278041019541049422059747128365098404741930601838301836614663389126380133103987773058115950073529416953450165967664125628813207208755205055581259963072587245979731519012209771873017595149637790204478144160557669896454392287711718591079595697889005015603866321680367382690165465895107319768695966807655147859191053802517695254921968539789884693232500879709808939127287019589266405298472153292126720164846592327030708964286279478269504736811241741241053613543771506401810594073965243975334417671540536895211874206930899075504012327738497910171057533166078767459049630288057247507330749024965819367258979664908034609637851840907174616380010431059077477484287791076149089270587064884255622222073396738223343698629717856264280030782732256730753257930778181205769911568461211912895464750805411204454577499602778822987090463669431887201137774497492052427120559148607478655685768767111190712563717265352107688600352180151521301751316641791103938512430637378749627670878608875959459017487148954972513814404240513833804277404616900575475775957724392983674567373577473124102949956758471532936497224964811694004425552778509938187121400245174486154129401069227516915590393424172130487006973547831364234331971094007950678194376478882373096749598914510783119526293329550931126448532241328401095006059080090446098748163932470511010269603666523373551587400396996331777872141171829786792953313143790815049681891308307951331333839709371696405403586317198375900415488123923470238398328510048515088598919143657896568858260616255205139781410378025871475437556001278220927955045044195974902431292445771236624845808668316609923006361987415918002508620374191414734749048760430323072860806640274852372532376343406725305636376251736585603348191767131391126177551472738506141067391193086206470971358969328890826640021093666893802954613285546739934055873235993303500206617077801710264111378153591107919829152537132975506060330491853261992597097617672254344422400345792894517247406337700778962391993992090031232305447139782286451334674601135653133669010511433730400338744599089025967136128267821632244059383816045789976652789006366313655490165784189495259564616235408480461305554337862234231933312143085015863089471989561586039498719140298366876984783461578433267170068705084139269536971320235456860196493816514219508300666359716284750752829903547365234532124542261735335940180445558179345579359549251065190314320312942954063172372186340975031262784825685659419179721018458117685467569472595551040250615263859290588918249572402360240278662734741778779808614232344685993028700594605431980860877441722865802422677098288726481150622329929638353905470013451316878374620704521193191896688175016201065034512550561225803567663877214937313859010403703144963558155512230172280253118022387926969864338131750928882334073140178916287898159796483002966878306877062980700085934499058730600789826909214259952843707388801635243600826838435930903024518502630821041463754845222665628024197381063910322773039330979967800430050542578876865499941817139647969811663662868409542887009362905132550673013019191283902471472687202662700101979427312786085028545687991449423987442497383160837072123424123227977743565336363636138407582457875018774864047007307745888493920695876401247731352000821664033685414203368856359601087668522526904018973717290030033463553927292445427595738096568649361988218002232822137849526654686835590240655322746841472983575109425464527436009615947436378908932510876956397288109740429454823616024801400496199131652194463192830340339187218199368786969675897320107398271522668250320637666993995866502663650236813638810636632249196290974183465494377048993848799597046739781331923546914979446478819290081488766561995740357846473387949004551456261603751508872679340750480397095532524520085345200430707945685002153557097759479225181160955966911821342472891111183179182181470134324926899525495582117495748373840527076533950133571299445526037573446045601750526734723824653529635163956271374717827207657032482424523444778406324759064227165875870610040847121760861506262605401817666536790877287208028000699955520486973261286675099183103340493931839343683165794622642286720282826886129008027783803593788965743094966415174784017087546920909311429763172442791639517740227260790286647862478188882064708490384517164194019269825530147239591236453459155719460459874928477895276369195381980893343965558530570065738735698038939903856676018393103290519323238423889504108152899777890181996776968801943489162217585389538846267161880909568457579746400018150253897580702886505315124733530126387025316216897948437261243067704884404680344997368500976130458740411367209330736510937374187397925142035443597832167965777234901242848189321095571206072047456699892484752719111236474131689830801548222850039452101375719288374242693536367122052795622580063501762486193480955230020397059090634614539830488229755697642771115726858395703018082412856285703048712073477259425290838442894577638283906935660815806246269106348037059414937041890247180182385396880438745387816237183201999793447032823196378369746006963226550207820988583969481983369282277937928311653772869606689699435018369763095320542226596626969691981383459011824814455617899663933705474650299216790605038913110317767824499909187509771132042133440062818890177177843292334491261833720774356857890438201677456735344730964262349329191143685163196226102579693463840310238915345710292620801903493086458496243069987720393720159119296631821798996223754059594516592671498822965763783644806517275700561983363351451298018081588015645133206934991324931658488300519234879439482366551305838170288061726360029909230924967772481382809836976576704452368898509552696433480826931106926669312678174663552135416772401584443071515286160789122591886737008540058385628313564649179862635679780649195002120785948942859002822946857414477421361494824728876000584228154633255357584373107110924841672121697999019920970163335621797279903086789010383520740234250138533984606800124098100368473247693348319328757024183022855532652293895783609028821947807399361991841821526008135102562709228014114989011486210293410217662335814603460621791491903324644350475939034171192664267933627331119347539063430049543999859877345190908708620362230911321825521517893464741816831126253558762057446456480966637974876981039466797770358113643482043683578511796146074239121333150144764101766762699833876282886832996766493996944710697104567252568989684364693436222882618586150160263873926067285010042701240569940936400163831549194880142884962745139564057334046215786469109244574073891677011901228347301160817956836281708840065681771918202359410386492737120241152440613596117008481544754208882600915050092555841489457549669663505761230321781341483990683702303125349489488423862346862117118133549118219564106877448521966603078475492493916610908938684904057020354225132898045168273558982000243575632033826402601443155790398389963555873636659919939702434707432520494737938629075644404434572100506586773134015665113334804565339753291796289386842403186578901762488075505923014808709178461212574994394345868080598924210532312789777133538121825832453814603399785641095406623240098070148788490852187017432709034725098650907424414985718892770114117825235742017467734572722927691785444647633097303019048369936960415419071885642210610953290171549409039567104364204413593596541118694824745284064368740434666880815071166144401913868939860380988578475914079093879292161138899103312780301699052087284279026721332587784148325835356780747426515208146702749966295985496816408467628380185984873837472600415148805849423332634731696686751586096065275731470968366051461977034704030995252186509606811214024139359266642948971527677847997335071332399136937322173292588970665727276380398229098018026045372215614590280852132206001196585182995481570102154025484049148893758663642482228140392961993867526645505451472373795083532111082603565765760489228857832248588699107747050937245444611313544903077930737151124571016144225998796343598413100007421144550679469085077669426170309407034723207130042707109896736416201410532811572082613703425944429579328797689963104804411642349769328090839897180967511560220241575260274679358156835450907901963477641023116908505032417042790881531628105787234807926533665015876984192016970263697210071991079515885093709671005574777419889612556117145494265646702961897550075399879971199700180914687294723582546514396362192364133491090195257869823004240274066225749432316389912038335135630825958011679434370967609887491039651186093750542205161692588463491142187603377002645789888628991734031900938938490591964313779399401838346820529738531501018819947592062912053899470778424894335281282391476545854146385663673384302058770589000348501855077794362711788327781754651333983021803490825822569352024724317335308533866941883463628901742120790476102664004165531525543044400197062507848428094617827759102678314033501532356897875616995403550645898599088712695331252538943977927376193505015497755394475976416030022258311540268129595737697790519787047244833979054030549013327541755364432550633215604317451464355122479428468996889713598920705092926169542960593643981448702980928108029072632205598171807826497585744591468232244258240480029582265236228547099345546471103552714190250240664226529564641987955836656454469698083484647039070121408370452081326768852888330550605997623896126299190192190071303376969854047072047416587121400752943531563013792131286593791376094834551298803039726652144295351644941287180965722329404628439153640154848135065449718127602030101169436494880618928909972472777203342824222752003000440957677435452449496953150480658730923184934958853825118415632842413027796811506953217744345554464136911470024924311170856335112371625431949576074590492824132050992615841528449699968269698718693910049031170486364127379923033977717894263244376552525670066815708563591574246345494107385799351201718251205994293724532387748394623356302171247936519266751943444547404657724870475226476000561960000486790487902282573948534125744608678690887064751010908729506181147478014087310949772012489200220053083900656894848722990065600794973638157784250469917849593678272729236931386277649051147165547399419841917580194772402597819638583939845838620279719068313667957551858339334583671306360664747408682832786135243562693847032766104461218111510347169251594962590954531787762145186563319280832529797165152728922095376708907595983833264625399916378082667702349063089623368947545228654183893525528423330837163723935638177938123801851514789489073820201550020380448312432603501179342408935489945336063792834816433605198323325444834650916404883026254103460452958951167322765926053007439324957267541149829885790517991190800680432330488856087173261993244521096262442183068959636776746108906684054844119326264230078311781399328797876949855283677340611561754500301264133371433745362789366220596146577334050618324679222655016981078442115259438409953828180081196701723571730994705890888085550950997308887303963467708715007347922061423785053966879505654982090044616600964039840726534685689580826902561826295847432640147456064436262611877220777398522058374186548260086895296035075533085906763002222812315341056902283159730276340776625312245029895847094170185603695133037983184120411164875860809217855420523622245059342866143500599879594974547518350907255738962369000751233007128481604744786746173596681211502668983226176875360362158345248624597224563506928775409748667689235580954503263084079364805793499764856829356934618706688443347329113709508085048354503382934808097137469408716624478058448349774034717003839122881710770331446502049808999993665138987770125677914812859094381222470824372001920512369429073706485675495997981790318721461207761920972107408522228826379306059387853403756686217144382434739331247787569115051070925832382262560667222390196733850471169170215870613295219778643905998582237345118128869179094627621028786836576112642177776473365171754630205168835904698398541298853158636844891558540026491765700636971305909006233696558812015715574823269412702066452398923862268082378395869790901849012890698665830290017961483109772273312039510995055384659618842359408758008575312700138370650240838327743053739439810973182840910103767756483931472413403366227582108800109824107391010605430693752980137146028088222561495113557341194660042257395323087844512321805161008195153351664725802239093274016754494527195407880279699863873327151768678086490326978984010326773568639213037530864573139533985991224053311615175849553163298702836767880720951421651089283219943255321371832257036018997122728574722084574554089399464267321675831220223280817547757815771080536004459920150714334715621728442235205650192782761138315932245401671973174879714241604055012344338355029374528936267797599609416527801963532184943869577790069582668533511466039850420002795940049518859492602053665786752561440615749262900465465769802829375980060324947047029070086784443848195884383165416135084627122334542309462240973118724737043787327613291209514019637190249140398722005981917493820704497858060684898815473856422595174999590572203513551913083700723743332116819610201451628556167150000871980231897556692894238884859147708604561237864082607745659127412076163516338908878099898625928926260045504383748018707642793433535091540943779134139403350871878863086222879154610559942827376149406030191473790049350094708629432643449623549945769972266493913136297594392262094398162734214924334623712758540108194930717551767954743237752033623248900728525169107388423481176140702341350576704924010715974723389842108070526834743197886977716601319821852151741821265494631393860219706016630791364548175646609562131075699991590778685695832887695741883898183619474719692644931981355182919329620002831948437623461224334924942378242988700881449333199527622952627867444289338789170274042689256415172428524764673624350433003009608767241877604642072913071583595269763339516014022975290211428826997476041079442940590703184665733853400931659290722870043810121192100253601990781078684946379526594661443575791988146024711011422824189539537925714092567754425578874054093725103481873552167786624732050277926039639480519225117256628702289863797462357238558369687914398901987006099169710134645814998834754475414638985620153139914282464545233324327120712195163155061358114081562596068432816467624411061274020829733910614861584020602662309669341803982193571630884474168671981997705144249656515320331656053360137183949745391784779680418053791862149211118974094193589685769299256665220979344652990345597560759084450349620039944751704081481616383825989748329636081339750454332710225802760446629768561584193506618508638779587788390337436722818263531768611427426401740801751964342449888423164405640897633897690025012938416347827798827323257646899448876569100072661226800199378425252051612541658987726219870815003902814409740210562781900581311430507546778398901140660743573898405831408481291210382853901825029384694900247926337618509040640052630455335321062045065096416984257845162158436109729459368934894637686941133932280826198978708728568212360725868872727916296002178697618351525444389403879948266257733276992037211608987072291543246813289986336476183790789307142376291908437355355609116321980070364079554040002531400277884655524706208149804590888722822223662387176208878679180886702553609317261509487475086438719762470679307521441775123408861185162345533371355693231069695110608850467053170267649720351564531672369604891903826835268817895017210154820101586068299054183988044927360236947692719171308084896083234642438314654836267800939743001802532116553128634497958942802438700412973310477693599923119914081537554281346551802759610440393944032921903066795507492828373246521765701940323476551600844088898237071611367023091404158565006891356341958522814718080052635704563414295088489066971397524319301453271960378151410173178984099303645251049542259675749295948735560614798432643884348421977405554445713280972650288131357154197042103715591759410103885519044750560996212128078157245083073648897157296659068050939999424762115894470751436192420896478889500403277216473627492705511258505480109939294866209756607472984697787831163035285278447776412809788204678220360937796653744619769670754583214577242086236103780083440628499781430336970411983098269115503971515087225118438325431619285896366874073348601827649548710230755552843843737142829566572209155425320162200734677485851073114896454936779662723853701199209496732324987437490029168945478576104047027786030229252772996388981051439881110534394803561123697127977165166634942504069943992613984926078317578164144007949644155101926750460952258941138887912421429913615664600118881973310850667061528105058684123994977657590134384714017293213778493945101014464137254653414177199786834888897666565157314943479310248338544237806121588433020316189645004035672437016862336187133691155988899041229529099378205939989177276811590977176026340540918162849521079118193147940869939572530912513075222998351873628281807622406353024251957432368272145117812335179243818200964138594691249268439339652884482520438230117198113472638143024171428494155480831191877287018624763132596151919502443945110735555648202121738534603959574723172128192419598671241636459959941091828470458599796747935358083864901424698186322782847899023866435353990019388543143331603707805767909735075383481359914256332659122210390455126115736566408829089117503406771841370624558294589712333694927477660494936350583556215251186773830855452754661880182216695414444474492461738183979072653687945994618202887983540932497930677488076891615449959422716970987107257578583507660683155878055164717117147713711936804778765210361770874368841152960823413407359295959270853638070634018091739998614632525050949981751459853892804625862004428693605965916379184615164166407332596590906140895299182102070802787772964237025371494835213575301515073920900974932888067888999292152872937235766136928119004881769604317681522301166130435011317492696249259081190582076533744817848447867326516502491685529357455594580827983459600034676830699850174321940376803948411354322063458928611487463477841739472759046799531499554089985859243767595316350063946513495305459612874191950866404667054048114347158116863337126666003132435761980389988800588258162926718389313031252849521198960064272009944785553081988851352037551887596651087235254931306000625403990656534505344036033919029342829222004008603411199222509026499027718200082374605801774397539842557111123246349910800721535036685271716505419680910404230735297418545355086122936427345266328905947817277108857197070598083370424813660131064865309299550470790705187024918458446106667673286713196554771349582924188734128213456618594642571155442766517744299480933867169384691579112991783031835494502511077848401413957250517466398390946909094800918191803721531740102329579377605785627718708048543406128800724798496977282690494859910503916218624276105758352180713122284593511062879397484406953506260206581687864700307258092818471582545643370969352422780711649388736704746086677758508688338282074760254309028230961118556148124202760687778213343431963168465871580983766515088007207038540593431286019070553482463657732381444596104386146707609039125865071113464224678916055244110253928475447659693261028814059402175929082376007423859374480326691442315482965536284912379125678536917196052456693643499131585848038164003345638256615811931908396154210685726511898168395707064020291254949744222288176994792743571068806549745280779792991721295635806054268934762585200417597069431422052930280111654609925820164072158036126117142739838840978996605096585358713713491745388476810266248483491996455828271622421581405111692806525086645128970291729701107842491298887563994714088160555177957437847423753532299431920794007104983284599560705945593694307465253035607165046243063469158007747931399438553652567737885787579796657609786862505394066541104299657198581106389153439674435783140595466683455182170826508749198742882378151836734140783642118026613369751731348763901897990702191120256158755606404090670154928328364977277365752728627052754887259138921300215085342116892008463187749889443771664670771014893945883862336358200676340059984643065450088207514856980736589597392618372784260706510683272374161835421214179382550350353658038650377579849636653096656836756534102848456104772029247479076479314241092297234429626765665106382151260739831478283855506586699416395314146281518522493009037874155193659555376996047452179840142779163859196861399573115100229672018162256141507386340141651599897823696099128507392103846686594500154836925255133532103102458778249924149567964956265499415781153713270014469719607770402086183144096107878616931116946832473041851111516605510719612089359187837282078916892932815207832402614697034051118168641355774848431796225394385571731064835670944323101374899886427758494218846273320758923810066472828849313875257381355266501177450618667384895236368417497610547649384081650720358562195346628263882737874078655395628339263143947846291467484183397453534818726606255426687473951418113878272936525347581231992763721146066323661756733334621968745381435657517692972767740506970501472305804953532829020944851363400316982370011109294196251210327854152717510414900439539186128364311448931107796080479589625239166343827312677998458887687585753395992648799806111049704348599636213870700688187791010510007751185416095754568830559066745219933747070853149865384569690904372928142588799665544004451039484811612229352320949890067653662727982287045813329985264156754310066972435677154165654064839090363877923672568511375248512982505598399558918925406778033062060728327662827652495380422257833764359867756320147533964062857362550082204341515620820743674119640755577509516631967298847254793566691199676712574782847841910810154195575302421668674676141379384710921452430670294194648646771928862085369957756942516256191614660347838017665119979695353719106881697232779066600947853363049734403777440158693004242533743157191071104040865151944816508199445060551184862456119451173452853326901648835146264787058436833739579295231975256452354867208849846031588699612124309607257811783390397119375191918898563037191095877324588341418531463616820571082270324267729074107204600211295288302475179258226066832647505766522718822518855702695344273898951514005358955841409667325652666138723544322463528547665207804331753474351992237647377591032611594487514050542481275406960769203834127533586398240900679969769071621749592002599905525526821958036760091421718091186936817141551025028939310058947041067600284571962362488185582483251847125640733645972875630025641327186525480407366897565143898322652470374461597818274316256786973201248003205923565620794285047409700667015582889313686573509766306510627757174850870447323811742319077090752504572047861626386495055614807242133401271628335436522733431631281665884486034131278747720981007635245678793516297170325266860222627089755052514411350265678701415504349458500293694378261167371189655649185067000982865190986154259227245219278775061134699897401889268146524060105964036616229120714424973972354330492710207404405387380207020981482716286501732339247204456211913988311151954900944996047978014560076394223865687060822737743918669445446170203549646368520160790175576370198945407040993235929968040945767086917651686215448092277230626690728652585494749335515251783989136824485675745140341570554660857900443758832754004050348485567027860036442678380008851308580343331911073455058604948942481266259279122546715449991112884561149145533119314248891280408829319951395905712013936708651766104816660873900974247009665988386944102750116591697719550335987675737820174774851877590257616370635014217868562603638326473858800968334507899757340416700831362756455595883205698794456858040897538895160541203367388456404381618104103774288416812393107320998521442145539866704900520851273675911243406980622335971467154159088452432080976878019912997940000998574652391917878039994370706233196724403230770938830875461226692306522939295277837115082417707637653617355577201803427863229284819752970952669591718107558950031096111667877477562579060406656157736123755613408430169049077468561676642316401673419201951327690361612235405110843278725073406017362411440916106388770968391606876060199127321539248448915478637898274492418571411541030850661289977503637048686211658402903653275653214572998596193482556575536534009609220537629036775254149726299127168937971303565351985640283403021273182546006007448154100334036159218107163850554943051735272324864219349750648834342724939461177211215039855732148838441164038950254345791786106008571099066894311367047921003484787895821923442193277755903592939023018378353651389030902797240312006868253829424157367351797006610081864023698194456608421459814954961620464090483628175924761381929389082912952383863458871664731117307033596296383837025757311669485723069970565823542739338351152933025194079107945429912415672806264787015012727371206818690065842136769757765193417317986836528753077990379321407250788132236147683348964883655667704014042410934843764341246010495081217616385291948008046624790798485039999247403942899635886040566760106941004549508548928658160734400673163731613221986834889759251502716703112066085799126755949021794138761640172044858236510668818705697489776347438425023199685111583185467659100170487447923983106143110792158225827611253572593412113866254259060633741910053319440571467493471823302780529376661835988506907482179268337742803143474245836393022883241660830882724698356082156171236533573082855578948430646366001157140418085958297498925871795628155771073969829110258147826985642201173169594969382774362791136945089380236193877583975073754768100927329685188342257775593508920168956436944913844277476651089328164064234604957443563712230509993193584656805919506823172416966816648146578012055679976137970728858918441952870076240700438947243443669621442416462562475284736487072924695899343491673136516270817549323633746394369444055135725946129526365802068050938020920685911895658649078875898937401142000235028066756211229082867174344285351457565081979417370613600672559801481198950621997591874773689341669725623660452117160270806272392141430865994748911317169728480335045926676009591723290353986011138979220244444953244765894887413118884354089989251817236279515628779240223011252357848116984672689510052800302390144471686254770143379711978582778513207818458586091719869609576194274445838984532201540026580807142121478324029646032261382517512435554777979695967947547356648663767520660982218463984087347725869502827351491142644210493512505112965372345384407081912747016332494352308847975307324167251363313753965778320562623932437907148468537773830532095109856735069336397125246399423898539455658493374847635232997836914052106108657275374536829322064163244533577666701823477841779413782711936724957610867020289914596773975631229147851886085978913095496483695375315870187539139369719697109974739717233340633758873816423059556723879825423574702528517696003088964224902662522078849895896641316698035433168286437290434190098637508275203754715488443194983836854677207437782279511721938394542850069519890277487920018458101760889029262837725176703806934661895127729420536642304070624904030064925929632853382334102784768555973631439917457275961850209712744552752929427880321382255649565108070679766386289286863000396243652947093466941360663460870215195212575242541391726623388801119742049744604823541612324514403482299053237243330083930018727842197425533467355811125403653659871089059946720000183345785471300969019915868977087558677606918784432491333273983873128296208355597003982088453848178259811872138854005167658577704839514713417329686065793897042297312569654547134208441025392796700529647593601979648881630351352836875723127548085414741110917774272013642511728902247664315021056567913404694832633484422580590486387407794077433653033458576687740745034037802750435481275751097032871420025588399268645993414912752957752142453755788266942242776697297069244714773361968407403838091139683373860697194773596305320046652681738054964053401608270580654295728002737572192500441279747445136945696571182778748814660575371388021006871425025986515384857727646325381713989509696407889432768187955751848863133520549243197122200533443126779816080087843043429387883915282119430133312501287041288215348455168252498689370508466919287290973255564422199007122230177269723478477193177911610617743823689610226666455582070444065780229345752324142565595032127138446267232385759760437760117911536540209516177941132480112777253157651480682515276861361854158598834088839119078340442902107410569579754439145252611836365110052943601320994397725671018656748280857970102336811952677076872725764593504531776752358796986528730171780978363737016055096930884909302906362170839720632450555859427152895810349463603970241041205411587233360340082522147754338312596437112296376570922965971662158825670555438374046546774461942476569818475742817123617427979883690845414324799618710149166964685285671084537915344918039282721229465848405613975337439245055872692189198812442630443464071888869835172747349651204136399467807168530240916404498709079491774373226016222761625555081016189477745779101684380484532267753405235091745992593011491503755198302825426228286325547422508291219568981499927255471307626731126622276345765057535302405342088143474795720838941038231451313654270683350834046083080334238744098393165637435644983030635394081590490997710844103152862413813704859711302350784118085966697817916210981103391327727725403632817845615614111715857138415757621116487197668418179214543607918966570564488919662831605816764036048417622015356370086556440276930647412771219792781017574928407476293384367788063305359172933502404698233264933879933550025054612784279269300704718991862394904226232499305522521392189223937290391076239041837033164251797173785170368328099732416304361913886250962522725950968810443105386347275698340826124213263131583375350478469150084574191000888812656580854820490748781460420794276905041407987479056446768365480348731521403328161338285697469420756905677957317682438131488127932509258598081825031942511790723428747286538706083035184470418140283496529599919316454953414292479678783435524478781238298776559324622324382358297434674913658794266616909729073404872926692469584036671449491233620253270973311790643925694797513688420691002685836563807101752946968042400087101191358994235286111474205633662889286587908623742589778738886868025137488761487841930667020568791336881691045189718841039677702589439654639595052386187296624686406263389407103846536394378652213591618927593217573790882405250524348362535433068562396761001694567756086470112934819780552786337744817009743747154028547170783732174544426620571966468191807651671382049482514738412682394022391039237476833531590890821025490679627347575546156527603027439480257811671357185889073499224660552559195687804699762178263145926223825153143156678216799708316099692348125838913983135808280564990402567739129942919125946168788066297112169663589829394701022229245816875830878543540336675631067517597179303347124174181729043979329341847615811578093530644023322999407431140285207011593329545795874889522477010371094767371012806031178821800005718313035812607529944966139501940160291303488940508752598596003688726278701451145098744574239665644786020858321457278113290498014830069797268599783512623119497055808761648930759333571438451602600619691460547249666906175575158080779790240955810801155942795515199875243719754245214690225976954960922554995468946142747405470355998982522114416889346448841082570934210382663051588123041112741198168017989037326707149764448338024359589127315337502136285280000152423366736418970640853089325032340745446919356945612259589616958900748923055153862268807544171628295025608901560433076698422808263481875138167290455479601354102781926756558003509058691951163963499796353272784463975623081327504568660860905273850143256486946321159055053626778503919606553550669705602173152599080634723200423724603074229735228595360953039707140721265517364991291103491563662470280695462177921102178699502158916547048353151957520761493301135278576480663533294844407741376103963949493572011146225536721541677868942906694311397593783792054793560060104900331239851877486118472204510171130606800502428617297025297456030216241997725308161970102546685596547290596329937725443226811044942002098858557210241608971356259373110832900051434412563752260165310336698171163394426341517174859318265069825393992164950931204848741315549612393541429652164221142764805640504202366453003600271849009101403201450118379977304355808663626768463011673914749125495995903438141705250996904484480925741574738074895559162986124690057553972181571112492391454333065528307612187791554938259499887137971374345865738561649198399444921757418189991878342028335793690899568040587154912931254226443196050374157031262132402913535390033406375063028620267901391859045884555759198817962660887672468141447982256241968302358526703369746944576065317988930224172615906688076644059970305340124315552928842785107985003940971389431580024406455057968001786037273496795180923363884861998746040471978875207541794660852373561450496666270596068180746490497142053594165796267822321964097691897195161167354343653526459908836386210440800801153335805918541845152306200096215050378229773416607792155884824340838581514330975677590676871761919452078912101889082257529212359505048571019393965883919473495147662050247228302724282374436834908751618381752424192000096989663698576636575581057291592253789594820106667886897698289862509087474301499497322007994200162580352114176288330366842488940245173023936704834804034774171917982024309393920571928877639310943910294529622766066497575643159083856125051175846500323002299961371066658144848248763169635945541004177885750699881387785926987172338626776912386890101830804260741521245364631629839112969985858178537466017043724720505927570768094544976015574371327692247036950775704112003057774895840559815587972768318324882621390339389180811905282359143915046536016038320083257721320876338528175545432806359537668749479577371715095978814786960879787224447619066040800584633613145948669835303408207288771237817350275132477638784884496680298645675323229183527830979126740666682487237047470499932122622719906110681867340700866687308459477820604580022344008542846249299082460420866825574014614032535156776577752916676541261059382155887961862445418608323168154290317890285616759908404860327502438327905667345239516495495371512246882076739854959278609018126008135232762299266209168355342591534888514980241273911692431570953142963149002680137901487349069952450296681452891684427832536281791836013560808276784732621347602597953808872742403870871034397672996038605907420773158337813339309967068336593677499341709397961271346424044716940189955822761680890947415838930870855377819943442971684143961556467038910964926737223614610860179536953144217221339358475325383441277583912796356204887009640302549542287884107750068167778087504666098236658596823203909555161236988432840136969137804407814077873697120064035510261331952972139289697801187401165540048253763531690659313704720578417950761862615402229321154753904818876527003168361258076078593714832452305994434276624566910960386011026636501030114717093039488683996320347232555043698123403423220940352792162143716706136950307117620639397606851719726953436671902604775334212137042343509022955188180974389745130139850114325094738364846859873837754063866219486850829918785272649389462540009999704726738860459452611456651136034908242480933648549351125930197421821166411718274758492970068404709878648216922936361236876562752291722735293197274394512433765258633884706337919164497327553807413816608752575825264163734475072771747143205755569561613029180827958495641145404978358102067265627189824553458630495249515748076646604024053458356910922845917492501124550436566473794540635323021501318179099975226011406781175176351299986956627110906243115284615154874057585642163618562046127643046487924328853357496319931903564797284559836710647064900867997962836377146969819371305164449067859379959055893232598305138229867096744328595287207796586875137521012278930799886336509216902058712598903786334466450419287137867681754272381551934751807635532973376533386868113975753975370078656382764071945619675226321792250691217925592046104871841543733548315867394583278334636247614211829139414964396369742773019000772746423183755518008689870947607510308747324693519779154914894053618895120263412173233674368286595162604263492035540657522131619078395356603686986197902355288913801120830898468510189060814152620241462909445208517867479610841479688835987554928565928796626586649214493230105080289178589789648006736574859295178338921879734499193028138900310056026935696651909015276489682181486229668753273826302207439587473541136632647329374152719343011150344046221836804620703358390806771862600792211040165027082020375997945989494934281930541315007401525834874412112465292400984890658932856600587260718230476315119921165478815109865415509197049867963869714793219369674486022165148206460578254686337838704220207823453633403740450649169082199421074220387139337406939146378922451006428639600716992895848185843215719849020327153609242227460885765405700650605753554463135795859915701166915083156669177934879854539801766323159276301425302153100414034131620504033162119614102890707386690166026099850948566052234417452727798068377392559595377783724960505956026328570561523138885955587477948931961211003130211970037813461732531426626821074546339425183848890468057209653733649197462702711297759852682386476651445127206357071735938111422032572277119386491717073791833942070895454317998763952542919287606860144464771304016406254444970816900321384047972008160654248228158484381716388068143118397592230247345781810027658702560480811007161543127304031690622441170150185339728512192506562365932322141308319029781231962455703585707996066981698096707855983424357400369190199226513659377556744361948238396249011531335237044208448402016484954728434773647734637278053619404266001505103922323832490768161512236628997614649254788701592909320193759123790114901695374119204866140599851551968057167765860434010185208129096788239468988160857963929264135294247414847575320729349038343714249113249670993185634789539358207297694284877445536454101857733949066074123208604608845737576621548510881683234769763708690569054929178177555320128009850358750815425734106846561686574840555314244708365546253380172865553354796782722158986957385161961598207945741031460830259564051286988245497946314624960429783124413336925989321631369862073204759670221909735492455101736942925981690814209963436910897052440256537832086686671631286042013475206162646070592354167050998479065681150495606656168558640039891538131445040532391773835923225568401584197790439833957407657943649240848231258663738779143371369101453212946954125652485872837031152130584883752958780198571362407297748678249619368047691254453782114292445951255028920949692716100302096204266040670532481256969937239243812218325001704509305326325905986662353080928374465394538059707239564342626178372589100699715492260576514129785591818562120552064862896839873062044860237421182417642564232829317598582072285288393893125280058728131633657687559384643573959525001901417203730077781451366702192415266615493312037201533939307865048338535367611972869427195606508742003167460985182076039041850107631815850452359360013570652959714269329922076493412470814597512203591646441616729034038859905750883344967179143104788887483996598663089265144738956727484985084457829989940058425847801363449475279148242403284024067353241530606070405486251410962253061155251259841829884459211708673391555087075347102629906372776655342938698733601135320530342732777127245639781127397259977742879084357437676358673748852280218583962927087299278179088845850502138626387423602313366431613502641621852875061199042101383377105447671190742937347400130805099056572429450808274111941913979441399555991079607367416715865240731672672831802247392191674885105037019606009524865881750655631113728667711667296417381753221483240674889592676454822759623694780921697447202171836162141937928984272667795180126024580675235629614619194301520429312113650324105400324806290600210546473549703249951918311663003892886101865091585403552524145772867431975222923494273631343578064824793618541573758050793541171421806327981477437406705562571094966753841706691991336367712996728599382550052002801824288370236479772109962113808458442757504357409013483410658258634764617915711605889719401013789786630241183144421241751189840628844292831340015964924533381857904126658716594634165355721773334366734763026396640735028501291242522631624947229915665181111569823497249078073496474712853557086768365233255863612184867377459638858043451233329724766648419044533811710931153915752098421336295320191061227435080828308392442136708304748179053024959338832607099757329444682506969833279164421290243182052221674759266197240556340602023940034514829048960389490499408544556224100663529074541864177923896393360989995650488516982591521374531680471040258241405610701470746520018441442251191723765871941691121358476131439859888975359702669160801931576828747203298246351993409445400809685162462728733329884938275511654755983340443455428857731616362293927610086063420910874435959617342158196751844178272596577870549955105438910946423865446028316164692914032306098250487269314551263767197095409447382858403421093379630034823226651368820474634900079626420700168360042976218934204554419190308823038123610382250479276387930806544668615058398227684555142279147071724115946518535576212318328403603404857931318799079770526034727728971222396082864904436640761689577308980252319793470225351989429928372624002015254677546841694799754507372190245607995885841288207581615654423338603753451533365701038006196676248798620014729780282719746494787225253068019699033036419544452122383565136707373172077975693771835665869507787869780707337408268315543473548631395063627475482796589983684176357469415647459579221646226753164429797637561884439696221697575416012057709246755987934568113355519192680964705104153693426941815454390356556143353207555742311704754844527788659523885881157824674115363035265722298738885175660849013367066019586877166148432318040794454962020196995201550677613341231537948101440371263961566845120673714073992881673286871783627866181305809024684056630219552519223994310052126980916282429113450488912967593838940960562127524447860360618684005833172127400338974244696258515827318740587404006504319285396993396670653165242503156340189503199850556560474930980742722246737817751080695938634138699812755592562657444972349478148353560267248860324607726446609747435142574825245367960836104870537607547594711288700042697032126929498436016251235885436031459222911653515655669335479303249149378550642081592979947575623339030970171329711703558898642310842662995971709823000353773270336286866234167181161264313132258710929085247399024596635103662518953077322938730597009190260376812145478032217530019015732786665171350336543976111254467861945899031134922551412155372120335948045633295659123206199754309561060572301130193916281438744761537301167369585883787072697890874189926768433424111750267139665724104602213019745406020768016593781061589148477308895536769231637152902244553815892374601543517309245219904140447033591219818642353373803949231431617889417368159795077388775070539486881502459052816279307422751768485488282096261900702827818502741108780767473459705385304142574567223497296294593213609738754842140565218437511198643131521208197518296705881602639091624906614860543740567443977446123980155555515765445588113720111382849719282775109348959322415325883077131722216326338345509071390816155647281937440130320353822694002073239784837190097750269627916093477138107521286451169427794460433803433927989588702126217989204923955104966391283035269668851642712557682507156995353626418870441405691190586378604241790396378656836353540812922131910840676117350698862220252135992467600750747080281488512047514231475873874689063325795427248073270206525270735664888822858619207747010219407088261024534666949753280989153320968639434873565528049555444406029602498346413344983137712581851070372693522288745551737878373598805747606556777762790057727732991719825327064669560726746860170022688979511647285919532207141774029201981652500754487357297694748831256278701201324968948372818240584090461204373693551704968550895798165928282053588667397458359109984559119129997914589222271870266649167687256776145112137134086233273488466497022311524211492353921899934121069158618227494719138880219812602315330770957839841512671922132969860100631557191214129210378143628424791263734160719136695282773187293733469115527672543148489224637239978467602916222578560718582667830575122367485634197585253897900996758002700639379457385348678173936789398141909988554514789644796496224379392397784686595543353718026156542340306546084245335284293954921682658434819134943802062485817375878117248007166974435761850446652419261833856157369023362284253825887172208790788735201494927588302643886740195244831402287241695316828424508522145967454425708872290483917782110408627386400204812591317558306489921784757902060457459628783383615758863165378578356940647403719615490730423355513465565903665208149153815302752425897561096369225526824972439439585618829454727694342058952058782447594743463382814449455757348760082367523387624577143234960792242599082250241947662704228252739487192993182327902241944706336154206640872576584136194366639279814438896567623839367844761560579410736716810469725018251426432436157445420115454755723471039117649723387546918988737214388541499856353282061968855894026284495349405492371384508907869919526423798717118234298584638630679066669423587932637978649989524120458939674178502914123761841825622440752143201780014338930930767215465853117257542147964067861586637338400717652671993308438569211088982508644850492385333166283696873537461063108491811189365813143720089417651177520197806233160432652453168010570883115440750023289037110184710630658232361041083894283073415799774576159478977477320330367518735216963807138042423699049208219712353357383848668752050405749735757296263758440045602539312535088780906091134456785878518307633869949070392494134973509121927386773988412774719669003146245253250309923511772097185848980085789862163536545464703318890007925758598343366387277665232791103674587420676714930122004722091179271024971858588328839607899456717794887782111456241506839418201477608655178663161711045728633485372002591493972819122008454467095408912813199332149520755488596002354932551402780598520482429333029381862827339751444941523300971384174426803352076695267545747866345923082785326073891003815753287556001028171661060394563136390849772638321753859796834520146281547819129010911798018874323771804508450203300751769602939576702813065653956163566902773914044402871369185245483254073364740122484849716108168656867834149079653542117425624807552344653204923387926408262561989584924638432168757166195110506202355544180354484390476525111130294685929651101240578365062399154997994139508909161713908999415411847301341714383747026208660831094614531950655079378610287945581808303964152225096362839634426894116231760933351631947132493198436969801340217976186823617903673179129033970103658652360345798524927056787757944128723372714974004108151771444928404933419024626937523293387088577049213413780353520906856174470683068982321150356727037910796905667264837565077966399945834768119004187363829534615768644547299266668797473601414655935649501005354472723506621902383266611889652365922383314392851293517327692247013223014762770768023963915234877727683828775358391298766548809733540847402763521709863505153661470116084687648779412179119436805515696651027555144986561656936252307675656447959328166579216305730269008151122738299926047769219338131941475735715287025992180369170687494866283942325644406747694944765264523669166170918311028451357626367524022841596761605305785202393212476392120942428587503584183003620281482330025158721446298739910412207210855294458804426852406217573358112674442350127305007107026010863828690776093912551934191709171283506161189881888008783970578012640408301445624128493806379709675383459211720694598604104134603040864325046241607749734169765243108067855290261651398593734521191301794533163991376094974113907594502743198948640954726893762113935977929187151968464705059274296542316748834025476949088962415438851924855556803987115812525302394867640048550257442484757306170313802046759589474739040970677884556348448626499889484885077286372568509614510664286184882211125199733826033238920746707209756257286515258199496054343741431237859302446243302388562347891141767436510158353847487625678884151932710480766847933868393893265200250447698338764654726802257809135350477234967053175322309423637718434404955409872994996933645372180174002020598420309757511128186208113182738967935882745674801389215268353884486292170663006266288678791650979643772540695032625375374887913159164604385400707212351384387995921064944351118704095542189599017242611842909693266648066742781811015857135567096892784326546658032820106476943541412180087155014556421399709385655896730609689232250204127706989686533938946485825389671813785149056391689827768549334445245910676709643551782525034629355053276477697368592681255997210601745262893664017215070095768766949394173100533796277194605979418638040614192264299299159519006706120368499904373678653287092991383391116248106562011684776994756904946747684266710325819647210853959024531795304327120773091964609429732422106627694651056133310171377200257764047434327319960621820856629700946483394839602876567791719536632287134969303137631420615431792197564018006660636335425061491092144844663925776498911290829031396185251282123864883148145695569109482445400965505645692641151276971449153208892569068430394093650468999265315073424262974234441209203465352971601902269520594988581666524455556268794395928121392871494810454620123087847980140570580159299294347043527965089531533751623181581749684154141202533665943811951073280011172209384914167242788495057641079584678733139060175946412085506634572416136329909521396884529544585598867123175790863375349604863591303564416535991245455312021860119957585134206151977023888003009779705254064847113164876224912052632266605352739063832159610224452508018515623486555917402531099887410395140119326230448814553419547084216001165028692507597479308202307521391701348412110783364672657062330957776336908249281833719434746968893475196316308263381882409708114801569661583990462429491269450323961527532306904970982389586817358423743433566721615611987864379318970532657681175446970040670843539367670784365320965373519626781926048272334370405904664027502477958514063788717435597557808084469541204382926679037499246241503023323042010550884866776166320679227202449269960819856112126158914929199425270025230048951231724897377138514356124174499128365763830532592879654469243567092421180134937138412177560531569419953816943191653572962104840397877301368433253663195713389634698059221923768093702904074882137618335847624728912660215141861746357580066193311760717239105026617033746933489574392211134159128438416127769040906423786153923397192704810976164698923767915139774082279723894330375680644956980454696852342732128032958331090113453436495167300123645829838324086535923460772257753872376234503834275276497918778507585116516726624084129519032708839800434131126646502634126350644616424368936990089199203222612407707554244645921863571476965268116822878820984105810797046771047905221362135542463068434022301286692331139621810299858134427295429825839967879708599975096221362586262909481861137290792643741554390583873621211983467883387675174148658150291571120578792035510906115040191291046045044254876364486161623719326294249792664047319383633779866613899282177598855323966043933607002910851640413868860945837467511785908882386401424269996090780068326631240154557510222244030414338449834201253907237042382007238021336177585350703988239251715593009907552357174633881269014610180074868486348497415721045417972835897093165104045756375642545164790572419162103322089534706859785546419877836855199966648388983606819955519812088035837485708526003973860056179701175945343861407299650431215898792762629887856969381965859468207191744052506660770269946472126268361059982487652548016143824716087324159085271019349220376902662715078126271176612804111215885671805361151336516003763976814904607438196344130858827691078042608498361561586254067700298305851776963853654739733211359438576418846051155478760451376101100037081042234438023914760895549520802843373689344019994085803490892749665310215729787626121883729742577950144806770733474257855599389920486853542280597564958322401830597674977016473233095920690242773937311733464848538570833484523776712993542573813983222450572945389298610536957220577971735811471588282534132973330859679372657552287216687749383978076337504295180897439399656617919217108488555732705949283067205856031799076971068955753318095801393812072917203860738660279996811039585014423507311932329312901324444757177580018161397289701538638967498755786292910726000152721945949611716966224860633044071505935196637688324373281056891969656029052597999384664892540310382535174236911569641662644343603050398783571766612771397809600566650125326016305022462046500221556628131077010691244758305488612285614651002131494787233059495462557299196802767691682940033008512453712616529407413548775390549518648915434597677487214597953754641224912423656180648689657244427798767462727077954619926085100955324610003932661320216399761628440962964349150838221211105717907572039253432281912523909199842359076211283983972888493622980387496544298781643753249689753601229533220847832822767152250841891109911943588175554465683580757589578598186393220768317350156890345677951041878222259428549453472366768762591713654027440283761145039175626470252756413541515451294492702016720255294313980410149619766306865409163367957449266435900206011718400901630308202705162855637327004663871820545494955504863783122462880564423981495811412496180011546860082284966120264279967014713885949569469336022848194166745868715482954844960254254725134244584745715829425714027052771395427459203178598179403467905532940949388296161886040833845872756751764025821088709932432735308578151987805150858782439532928905479153802547349814416488043748428341475786581501659458397961120561836868639649290701123519999977862162131215907892535717701743551495819120679366473456509702930700515279628408985280396246068424190962883971775403453779692507146730043074944443823127142023431310296496188452751049060328095002467873215820656743162678317584563250388043493696992969004556046590888681337146964860782268040573835716083435817469533821560888414713437379083812784194189596646451793365796088470563511754324939613741781689044591836174079167924637267292694074302805499061106551284658894877403373119435421663398760554008539783706365686001636803912846644119931031458979986370593261145551470140368171255679066774925920776978749501076179647325450015162331340900098721643760233254619206357859156250970499262300624311885830521426056670659583757059400123883660533662029345524768245585687566544883608363134810626291834710681186685331348786215049641394884794596173635445383943227953427004242054947206315453540949244882308977103838725499731984777861503060559057664399227131983402476502118915384825731630272487551799724776762737282445649840663020446785147688272081477486720804074738658799016822318624984024847067866965002438571979712360369034455878036436794802084048447489100343048496043469084826741744460981980053642452428484366073350560472305423944302155768930614237058218658449700141148648528541682656206578767977495332606869050643119020611475328310532427584120933639945610989368069652562297159344872630888466175178877921985613244681111548251976183315892530458556833919677610735645633546064659530236731834470991736489337105061733874203705545184610436977818591459142460183936882851445892290619362451448361575076966649023303805746310397610213103355735401191160440557620227994575320125446802473140365746526356928704154574394135862034536789117133402625342965998566234774793943984790654646550637092288939400815217589416317389860530454598300796301382679002951043376209862512009588866417098776034464966880080022266548865519769117966721961914519238038816492338966071914904831703808769634636610174435621702049232587932780315002719332882399431934792983358313000134344848332424650765180779262663479712321083209552792259067590413699402424443538273107018236512999823476135802168835222066374069361158889637307547637574765862632353934550015930598038965113362711974030182995104750998464482306934163001268063208183893132627676627047230041858784913150233136358020355773937438941339507894353069300743848755048070495079451563457130769104785328222184417303480742999120618228412450296952729525526582732247082762180628708631593994096494492404478260362267658295586535134689560760116780202882745603911393145308732674870009651556091182422664914866691461652718677264574553079364949392334374446139395479906869175153321465555364200841741848243114210141056526507240805074698847933496284334472348397514147543528107596576665615322506219393942198127415755853329866324513477361969816025594672902726095397053550923592077125523553629299308742343560991759651243816339549149930988577634586041892818366897150927009448924432370622486166038114016390666613775983418507158351568832056918273021780140577896803214408792639060710358787199410900812719348992252506955514010518732118091737614192947802252576625770353225856180692887464668827416607374504374521695216202111793715679582936175484055238977671356566281912608042378184967403435061658797539751518097837672719117370040145900331661562274790064786960198290052453103615808758444027712257903908515050034366620353688947657192196470176257532379765189357278107982588680935184151589981173548364962793201507336289477370459254414098442439262900436906333429682213640910936172830473231382106099842080754947615407335483097301603334221336753272569432304644277940943259887569179784012762525197798069406184262914273718718105097265529682252145709852035717044348847486113917105273120992532145519179166674552399409197370817440097804440783585413434024441534770227246672560565692402106923512073921999022839931578371731566842580948362700723521568935513552964901277796532994723059821848291531147355095215534635962584589219732151089776353219700891415734046607776302977504201001846687416465535630344645450079483271609818460842962986155107037610829799229649758167048547294688525519408570828892681094273734055681641210049502985627059315746523740879355714882576028605623399136404679867006783122894472166397439455600684842581963349679523862190998071631592177784343216548104732863047493629097613695917871536490489338267574230534808697761445332911905624473188922541898202553007757504122474247912419794413156066942002834642755945687245267772286603324668779382734826511877849408454811245301829174163966475022117464353865807149075273145706582320446495443019407618628770580504761121602010929967179729603079701904606651674845718774543384477393156545803948895571196902192419559158337931489728644982314356216577610997578270667263062623838258874156571852824928105077541497225963416337168996200163287871151507589011028057291779374387779493573177634515883086007500077838680024327945640878362656839041847156207246408815681325526435154734196776058604478400287351708261064393994709272241954255184247183807611564376241108023773298885155389712804595366917450995654768719210963487050928710009780211602329503244389182232413842382064612351915572523268514448677533017138720266196921337088367841380559534080063464957753983633319070822039346218386741435478749722449958197975182298240892035049471515768937026202249818570329380138650562668464425276553675064024820805166922308057214951037636821691616453986671465580518816358141581570193319899421001658782820937647484626328303033951082727763149750027941415937122774443344961419021427654896656672555711850528926362323343933809043476388101260720520947767437327746650969424481663778683816794904935027887897187033869535188118528211695321580856697186544306939848474173368522682535943736210832647719582101588911132796746242444703363340761864167879776066145429605125669171461636621140909241012728352656516448359869805070945422739576240046315097687768007131245052746975802503366372972338129351733843133221092462565760362532972878164886880654877256619699565074261011677532419905761700008205100904838428148683179240455288036391801836090667547969044744790818242775524019044602648072498230165981273250273190287791083546246928659741866750522425399387914421680518752329479195488428147380365903823857558810351554144631714199512787970131692732230937505278046247046172016972793861863412472276753820104456617627254690786876145266914591955659450000535843803221548849891213458049408971507317341929551244526464216281532099071054465297709303416718381042702314777920508784920962785982349140436444568767604475284199384989897359730296283075849137290524742567873344070035743892353316852161834781542077116391622084996660809148894050223692549651420959769681366798223120650837517869024454199400620238974826981233659193337370427679469721712153585520252906517917255481433405000863786659512492309762988348831542301952964340136466749000986028735636838008681427160761727117186660187893896103129935539691373711930620156144121508000262591560799843319096355441833938694697229959242261928670673137155903517706115009055863725582040906779083009524860476113461817228060383225694712658086107378292575090119745390330036593636062516320570261391354963166612847668802318229315230191613226785430132228572729742876797454985737921024970874783588191982225214517413517269767987382747820283460596733846963066863134677593235119836047157740538467730795329718408287185758945448086333792194698054735708911246885359732998872774845468307720716680446684750030794485821830010127725252049511351397049347606648691657307655291508172021459098431620560242422086536984869671917515308965587740572521057692283015895554719450545178855421098510074387614951268981336327906160641567371990249131074097952202914380394649833612868863382623423135688762052397541540617760635888413648706625839228046715049896931783353580587761170290527972820613225789609606057233213111753074540294370331542807015666401442776017461277012100163819728977439864438252024224103182462923691814667122882878992290891814855124758500690304869817648275060358008611349849113238120407354481674801562192294044905777584790767017505416914587681158965941730180501660289458912142048121002296775989424699915630218049861433772707629277878386812846178074336163713974781276765277499660927386624964233709500567169775031207215715129004999452759422680110702941141798191849287702045110032673155405169302210928506708150096635596908863521719418142187951066657935237350435851796011568525054514161792552315364166106599311659489911536313540920957390594887042830081152389069860181211240359697147898465379897677704131417618033653480912111353899476264838457948646024013517598732665557304625884219781496296048714522775139294250168791584206871440969169691409054415642489827177569860275276058096587784663097832027385603781167905406389837634609704317676724718991387288777748594672277375178433583449822515991512802769102258287267850718627669670776652493293341158027378901486158619353076340376927564712831411041590827407163020330433478157701405108912092745320844150602240859480095192216074005121083912555727547188700484190278727001377003780999695339285902733872102469416865737548540669882518394053755632092434629523401039627633831818192199308986650313392531478702610325477330213540799768014810718610115287134514644043931837846713900310520830441152199590370628636061346737765794368778530368918600975741728873221216112821637322133660498789487674595471578820477069748509703200736669581397816267184357466024160032797683082778113591483748775337535909358495854148620015667687574995939479469733075508028975170227622777933104070112239495709875921272013316032700774180513366966942258828849369687754417885291914714627277968582555938843126368328577714845739280230029915883391184805064487887364832045323310541347591903532188630751812268051813732086861078272197657838172705488647796981126549439776205796275862440986894280818788614116707887715312493415809263519648191164766745401487449799846245789410630316293864072560335054329499405467162151750794960818205378389220630171174169691578637910166155159791971078337800187820417267348162404853522182467694221792104726582942534087045841471015033391937547203743667445384610189433486398041598942107100545184151223637858272053786128365384290770733914147249217066934554129357153346703215150333571816565675319080816088327374498100088003184588366149154282686969657049500522622671178479081058278907239455266742326051836716536013133070241366430629787820545359458578002489619959629130319800041645444149299975704651990556168679493511384131292295016784164720290426228453098003095446267211193756376611125842331617353746505165683150793157470207862717484575583968742350923219569812322642832018480547096138629898319331552931926604360073913205460132221065490904986339116601669838550022335267395384328722368139764721573309385569444676826462323121770464865485661130098563744365224574345820997218619705377930914355724605619431299650156859593320711823491211762363948270910342691257003748748976977868494944126524818011753142310943781580414722039310473698012151603916967504816988328344287918405190829809970970856549439725101593090604809155413109917126571426003672406043363468338368998506084564382603754551670690447863889081182521297576407275463184867922414345370083490759868891595324889276781730033878058975080798773410589852571736887409461491053947627406894193339645974909147128435867536811512976201545524869942418315279055599945192163419498373740924835987578211577092609345209689500495315356828246048068735545168922802659355084251682185281541428456960436273083037766230541384272878708802273257587935496105223591594810856229787013975209713148602522124668780243031260952815130326935565119441868895926138957760574745553561892079188366045326153696377816344827509604535478006833738296342064708731468707179864895725534927371557680519177762261853401618900270342340846891292954063066531594704705536463648833633603030664139705797287302986796892058543761560361826234451855099659753801648062636757053243228295919792219056483863541890035283373446467610185209754903517020989343276817887087612733947286601185389546773534178171947429412016680403190562279388551463423405171939247067536408189208129555601668991397793529553395195192314858492352465973767297102671236203087736552510543175855830991109493839488785141832917069170183992317287328842071119989112576880627569278656744519117952441776607637943716028686358129188331206555863069820009926846151304701123859325742678577662954584773005583011522940320723192135684649144494887929967862406113100777994010065743805891415929911526537668548967720436373825077652678229122378645856239995787597677589622718950234011579330110332933746692097687935290548740359314359597599713704389622253375262031722103193958251961240077088014786123668396616639113866356621758253769861219502037537083737980223236664129235557049465055713506559301597257541462339758503154795478924935928360625328717512600669549398404777737145427632766994682450558448345427560701537467955333158841131487086844350457210578239150797215023731134594463995989247845613396262837700193084327191311093175404288485907648075044765674427884774080530711491269195919088105273661246480900556954651393463625725550959680589192608876925610420865274408621122745466274770645999648948504449557471414198182606501830880884737064964272115902083701947882464498090423393473868522473020907835702525355252850083959217930796737512482376996675803929008274307048633040708963522244602449195049207614932915200249233338331913985920157377236760351680333132389049673991215598008276263978740043034831201697371675959567142964225380277533395787086171568456384600789603261361098921112318512144065385857873129445401015520913135654848857173815238034850651378589770345456012772215937394149420690421792131965625340610913045893607332096819148868678815000337520059956870328987095543216541982639552399300056078009786390451422230249272281132037136145896722373266449761617333162818645915600948249513151304146301872299409708828318607614397829269388716949519629854142017016975699374321991488231443503587288938031711360971662107308578289420715663075793735885216680172570944510035688656141254783209464241680928769838997096231938639032233292455787723732746894429464177359128610260864823844813532579629670617734811058169835780926497492647519809968257092024665948738607368871230854730642365799958140312621310081351119023229171562420229590394547339085524324220379322532372447525145900218676142293901755136330240660567738044673200716821816465741548720923256643235215042362249072906903641045450683124273507559125041175415875288660370967291322902728735472793535909790862548351459454110251092914704911032336756065975079602239762619106038763827034054203163668760744727811981891972585701916761342694239055664367175877679986286235204651057190452986361079959317500497248907782211974772045485839209453503503537366615471223378150330254282487139587705073880461822516592020652001983308339864548556683243332037120193637746826074333227464870566957247619887152509229571341229099943312769971709951583749963849989618904880756806184552004076693855900962014437595157070358976010306408650120623384355530589195523939916462562867005902415810997178619370539386986866862239211341966368760984266939535275761833963909666992960466925052846394357593369149713030477585982659801541156917648057244617800201185856147434803073150827621064586062831551964820864250703730453870348845817939101113543592743727457731935659433347595963767076925765231107780707968488762149903339724034069761634032639875676802010620542791878735539450256176236321895913257033996226700257000612052128480549364971891747912379553705093783708070711416335382414472596969207139175825247528125720364977626371215802475814780513678315062451859935327093338599505081755491871180613073876447619985637187183586528392236052513256794918045426241008225529640033043924812205759073441136742562339374593601664272851006443361376109053355257663323207390492962075920506806244183126605948786278923320635197653982235143207595991229378083256684270936824916395278996770769670829574271458282777657641349083404369847986112659257055471799714296085293890477309314472931951740233834197657961879600011766555860321450615796436617058470613160315768052981927490250031516777551294698333127126124406915383485901315952261039828915709468101661021362586930598365435702511696248199250071504588928634572109011423622335246533814473035123826031592454998929320340509118932298456105316912156178016910592936736148192856581882642415370291936915286878303797372799387772504591417440024458523532913879068816622401931344327722109231150976763026875127571001537990768460178457657734406325972667943496193458433835524275363680988074828701664109986107981341836685188061076316115817808655626958254978651664632496931845795321647773043875130965018844039518068951522888259024273780390093424573632586070754751577829673476714519527365497703394832790348013336231144124928805680212400661852338284247302401133852702327688721134318690381908426286246201064262080896645357169221375696031655166616950950622836458103973537811973329293360367085065507478498106746174310260227134285036984229494876507673736189849015671244606195506035496895670825223773411433344465135970945690939380559138445969933124497639902371367139918964555508128257271078690534759345201536660075891100498230529799689225550257696554738086284779898003368180320125957932223234644094641568504877706880827877810349241627680287593192828570183120080798364088576761329131027247610419159226130678007208075296426404742029876210894984564894208740794388118622296113805485435255091677801288764159573553473470545192631374121714513501034019127947291751535736285097896524038779071394982983772033811461866618284404064550962754251596789043432863410142058991891262231852248874979979160531083648269671788592132375888420377314644499753743856766410022183062265569752208691409264393889995788246144163211091819799317769185205963892655206891949082337512675451260459530245404891020697931759095375266668980928605159683542846760903031578749105281774372142069357025649278922880684030913781976963229293265497827499555434081696318841515386168834155474648288390397090644817061638024153274326423581473031675696336928060800069582084069252969138437073506586062842758767615069159323821342471042888874500112278858583840206441966512038697887136952002582831767506879473535454407020376241750854537968633886346640827272948250750159911165914151123456771358357655667766428188262135768770231149813995956493663192134030568105153086159362224239523830996155725549284049535037982530615245667991641861764933970863156678149345255433194848306927809389530738858996702079408316023379428100988084713561508345486977945855054652813745770863125327120940815810741567831581372022780781076738896803243826756855922720094242995970702355646875407593903367141459652131043249293313245319561990509785480898212450809118719458002961166783530750821315114389563299329703828783086813074630829640823881256259210935889427054166459593549659462946894178485236198627574904475456637243646767346579854834033097823840427984793554967246313449523730962685506471094696257454174775293158436598415402556399058682923239146325406166476505090195351655845719507170782969690262360469048333673707107793800651791511079044229906833568928973099515297371754604760091684984062846083636170572873930951586910894286524126842051067274138392141815387359164391465670107743207639854561117749960267869711750474157158105033446986408865830916246385653850997920931170535814035498139445865374126884711927384690065508101262074180164426716762996816350267192624407335668089761567382675388761308371582359147855082795922361279827858836501799312228732252069011841217483098054796712586644402564760664831229988535281125258224707827102421444494649498592121590903612326776337426981725271993564098105631803363325715588503569152793680484789665187916635755195027969491374643883237935594839179905455564836893492210074880919416332611434081246362586930226274670127500613862330010045351404991105384548915713611569161453256384567391097091934308706552134401264844427274784305112928908913176784217625703939608305719700481398125409091803882221400960266232025205218540864978460607573426249466194521838913380756141290815200318907593066024990219835244973946618959961309662453233153077218099101348064654309810296375235747733630678325937404666079112516026265381897775111027273512732954320423019759544015745485943277589686275868097021167862739138569446267978644314304563549168273607567593373622326949075592724544445088826606882264163158839780787165340221724007429635642039644067547806227506104859238271624103771722551477293989417557451454862203164404301995695130844341486594082202832170942685996332416036415735597046934486604689856361683678693321864332591057673017069273090072780316972810511685005137173221238436687231240137869495168569390678804821338794176187251611856316051188339257228378106737308519639233857107295514755206777888682801517071572062840968060737777917721198561942168770072695547152540951357803368557618144352630592363556979988130560546804027614748748803323564384906740260619711441197958883492645321643624723379975311063354846339250827318778213644986200955565173428090455441362417722383508455844410959964489553359964834623325456842008343030100708701360294945367822337562560661351547671734354952921826027023369302255506847298101247779932822058723021558644588810425848593062195070507876098599571823840059587322954112665514324470685447542360098642281491475662824358100356234309529800786378233529309475030973129170219210540438847382089514706894575497645176786020172151558211165162757781672311089069841932902015032772199692205826913715192102003907405079535840124531910822365164804252470139829919673367516540107925209597899424546176354729025773841018310309222660185172073992882770303536973501250805215234101750415619468368871111818681658527596430262450020356573570229785290732577165730921723770576802197230476146632715880378990429065648724643943891936215020358149556349983284138653066326879934416867476296493934109190374136613505208741391858866527657369427435769993095736912523795601080743498382230770989471597349822098198369207413124203196452600101236569146368382927455706825904523251186896039720245578807731121394527125224031408462310664885376143552505925480548250900713623543239693849153736962391980387234073210120043179748434578926589235054865566603326435159196705703502867651054700947208336729116083097425847593181742337124550676654906889885880295366672974450934826155320782873955650024037967076314912975333418680595629088547095040503142554598676118316990366228389308262821000243521102771594494271616710432217056174514055957025386306568200381436387675360332304971437467096009925587159224495732375921038809412165600041032636760141256000356312608493137940709865159351143033793298307327099814079463642614708902726458079548574451323740110137629839701493612143079703208297319508556478270037300895450359561278981638142528151620631511120343501808049267487788904334877288737462925750355708702379347228202907272486404717260685875568782167412788062091420790283797258058136330401110383298410627226111233887260042841358726482826274956300423297579112644336916300202848874455201426243285483555230281973985292353509152322304398917833144249797681029435660476618672841130299127860736389313848982762281963286912575683375170717276934767077985053736959880229902134581831679624264980275097096034636339578237878730171365034213993947257961057214729469078185084627805377991601372786560271593557294528135172250294394182774393768795934777389641083629834006567673201214565245388036265459302275840666202814550160721199569567463152343531042499110661894554656531933282786987345319261581078899356359839459888207881225162675101064413270528174341903959710151716667306048444643116916804805385056617501538290568512537605387796213155895370633655424502628321004228337235657242736903565208934562971031225978206344747108371096829545013918856721568524498608560977107371649071454200390847441143963231036364100784206755182002967781002429556623484902147964508193574326774626964422005853213573229793932482605151116144200323997011582633930117936450520645307669468724353640514833395289809452226593412742417389569169082394397814173011515354923985835461990410045726952341664057435573144603742789539604603205980966744547808742522310419063072182976850055306863139158995881502261916190309446699879732866593634434067014504611626664017295960991354494959326994173183578996844160990761341459018937011528507800018849580486782818072646984629649893471776078423144215103586927765361625386798527963073483360633708332978343619876616798600227693960294449803745093231432432598944773792052322526029785570528075528976863514541739723000235372305013289620990066192066758663035387936948100835092402583106257850229204870834997532271279952633417392256602205498390079134876452628577187019407447029238554663761479889031794979080851374708757180938988634335057047654389946688719532759732565971086125678027603095527856411426487235746441004643416444794411207596355412764309318355465356728512668842441555197886858647476070677525778143412772296889773464114979453907242423158432001199656592714737472699318818967943776253260801387224943040145570831116585451691867445069501153201772618243255073900882682541690166496205391758773882001040327836924089557630158828438118246920130529017673504653842993985502729626515081034501675422871802583644187936628262081845167993406207798969404792018701011127188143688000887422229188399479412300232707394750650146929502861480263072446700275057914711560394304719491775545297109265811373924066183527071956928741925878403403717339517044034658184878744531536608764001421081803879156237561696381390519836851762266082288679078958666527670179374930096882262296875807428157740519817091177451869604560239464985094208891078575599923396490170620430850590420957271400721842040334817604981156450681437788821990706531528286534399073033477596528823885748726895764565810752595339759393660647676203644660122701339455342045770316123118187606103079189636041269165813889606958132056220817626778027111192053947303420730330322592259268000596985545389051705445259143567558573789864648988644931900797679232835519046645399241347654951219118804010817727490954492776010746141268654751450280568003034192138138818211529611505040309834641514972228758093707780561680576105810624549641470373663316465628539957279717660221181103838237835827457634227442195324960460051167087914257617598898660337144811269768447390266884087132226427970461597305878093433526096704801384888079845172170617342351360861531979177964595742627204045583989592239616685435774251052877356293112275815339919567640707429402551385301751079078812908038136107499216646201427187447014936983990496042739304634744137126949728902476334144341194593914834365569088493561580948211283819922201227911112272851030955568705836187094763438156107930130435024135583196338982386417642219361289581004061158528436357844287348361190632228759646801700913603100747582821122999022457353782983045037924779762992570301609557649247945835467661414348592986824265349802367979434881192734181461185648136762385963018578818292300863317125162806442307551417311177300726703946314954039216829291361795838800133361361304004827578700470878684043621846282464916721887251680319751404232782836986347694341445901068133113621587787029359613747024190749315773048076428944368108415313593013620987062331394973756237517487450333433747226505469232134301836434514139884199838293206413720067658835413878511424659300720541155131934404637298077098967696120708081226520645899782928445192165469812797731738896637635563192521450440520066127965565581867684316835163716794107891955700494476710974300491733957382643371433673274746270833881138405664115154106446502371084167018791776195217207147959089162022448128279479436661088914416694561782520956661673778980405526272280277968943553061802839136210397979628862872990447858456749090445703444393875377936362588913010525656770781555042911702009741200120084192072256022355734184102327178706121255632984161863973936382721181503535908198577135545824335933037528669792066708329666555228249873132564413803508613797082369496219026347238135007307501572322976241370401003453394884656714362822723172768452566388244367708366102874960633824072006701404370591902128525327206515980096461991100967737585261191146023311594035327806472278271161196167573985914704685647954548823837853366453483682460195155012906588352776937254049612979559849662292285503264688410204008826988588461504263914993780009725568133844955398045847341052445736169083698069073229497333358693447834141110533090840216661110211144956183566756340395442472057324993843621060662779221246597789564374758108191226231317906778972729976411672167646666540099667532037300825819139182927184530259296118980513190245258912590742236660432890753556641646361084265714095216086210675483210036484098168021401614858545125466483626076069337530330015671178356650078789326629012565739445278998576804334818710027210859018722601682764315975072485371868892708763119679365319849967659290602913610136524568034285017048029847263680510751657828399949350324913911033185469980523451206474342601069357438594088151035467003008789637306685972620477619068905342254310061264941823310925101985513877945800060461282243832928296899517782592288105233982072576957200861777969127794497855051319580791214610335907328462714996352618172444688181382138884812461656692466646830240380357936288677264325272284861631950979216050503777605162885733616456669548001942974460340528979427504401431400017985551031706253299174145698083068646817856204825980587850260650345832338733943356082548885198001999475174387863557310234274854128537406358045334556988186400302841293232205824042774213153233361581326850318750702424183871988869992447234249254544793258458801034874033913713847873172279828753566923758427247107191800272705568426306650674590361734917071287192226099074657600911400146553811975933736375224213002647364853095438756959266601804311140189973834586619614647073120526642705074050036913376948720234553757786259962147127269416185656175014000539572154028956205136440272489344472806074571989188419648463567940235855482933515006330897071469807567200164773943923030796822547004794985631229863348017222229222351927738539215270008184323511023970096056769686980221431791210645507887988621926042266013778289526570221158007462353776349109745673416805706444553749220527809258064824257799883849579208198237639575720601957549415855760548236938395909138142466247083151224196448751780244907249935436681109615170640622291156131948429553685424648126207357079472240875807629037349373159933833718265905211968448640462241674645597656411024858269759074150109153185658523815681305519727405900854321981988167894932205579325505105525386917123211593389897963311085895709120304050934339784790261475767419131286542431772724081795352503393026664804746208472552798937681009228447167592545029394911016826356936108576734616158086181489118078428830356361374055398578044324802460399803598702485905976504500181065671358683007884258352882494504457857994530891609739970194446514289645582750037866946065866119310225606656085220751837029541565911152779665208832240771010411558894091421116460108575963532928494630551579763237374504395800673319462213659975361126900113617682488237649171232883500627399369404409763334717615211650227345122272351691313160601638757130164951272425970734703639728349847813629920958211276960749391353236824925389455045646164334166810869498958589498425468455314361806408628294202859801179367222436307296482385467169877041633030575451733943745468475721735568130052592788655409928115407435024468273867892318711505520244181522451224976039699202631581833026660162284020974579144658569169119844027966342242812166716270681285605319716099480311068474083376460277909915666733079821805030618366693624909595821114217861451579227258242729778729711292724389662229139546521966146449199854311635374239029130739940348940957014190575865791110543590538207216500754924783979367373303876099628877196141559980452542515599480414056100136376913624377657110023079764843889023122521648834979558474778091903500046793672554088961906678391305884298018031432819871409828500205875299472626354621299220357010086725283923850610717066014436501567764121268202331029004445528646147909350707542746458254925705415630779697331316815412005917873898547364759239272829483279264185397562905253686667336663897135497124755986612810157295086138250461395372963618500753227594006739810862295535628307420958831649390487321391942708863121932734128905525548714364519968994148764596171591846850614450065696461656620025705380850255900459854223354026688591298994634404963402982017878861499274064399346186727259107976057855762501012473889266544026718696181709102245702121565296663726387067843973687506580229636266719615451083435876748581856406799491902636973855053285252271113787171180002056593687244890834956194314121286573287680197740190300094552785647723852186488602516814328195421468868473700895023568502267311845936975001455711446215468006860767489584236102058808326295005645165990117770975703532329221526961359436069684235358490338078487139075890476570168448313280869567622129776696785392135621112559473838806196373324969891455275369041963798699984294914757136676720982655098702370347914383256413432977468150296348982909240003895034537619250006747962189505157047374491912016708411750710094886983386029611231441255990674785448666681539049783735401011329262695510808808953372991465597719045234808153164671778664903225061851248019012039150132880286752417101322407117614781888123316753329676778599223082670340717894595508452302670251847662372555672617289899422977096057765708917144705718368927871399553774238574541244434637982007349388103014801134031277027975299827776396303421911838367901529303302243527796916805537472560074349312993039732159176686905061112588258489992682028277126750369667826304015990338400487247233577928118805954833347600322239960708052545417593131285232175472699903756847510938280094000273940420650800118506255575116341409960549085126280610534825535419327496184906757448944105896203993620373768731797816862078216231285889214732556082684208791545059016727410143984868621709580105794569965456769172733621051035937434493992226648108415654415203373445471212271462079933958605361457592476757211843015694146389864523332626075006204350672167766862073010025768382308684994059150385851046219193117469132576918163968040789886570116709494245117213305525384418023151617813319977929316603613456207391837611814937060040858041895335428596338794700142713477193336910484382591066104899846737112479013629517938995525756934977018817216481102593945995893927225245992816775452047237023445887439424083450799986170646020044999683317265966426528748598091874157634207861708057929026733554728109196899956792013524660923821344475995523942140673960161864602232341845975925578367748529095996451005253291882368342560828769205453979276883849415638261350761856296606394070310507832576699501323467974248926116497305608780698206515581527285387589540676259150950704996117479682001129748013466516428057323773590010715234442783406488815363881191565604592785043918439033337943399044753370164811214255444536828054024351073810482159215810734305860131859387440876439470084579871929769908313788732126192795221950465767219888201670604102735900074981822722854609992565711109399095720591308574439873895353097146112285414815310881659064021374313355942304758856484132503778681675931358957915009814879732417693216623297311147519105788963904303690548601762728365814161196652234798241103931239104342837154150096393969836245331546425518696051856603620021058465392762553602861064479196448932929764973895055902705779570180666195055795402039993719718921734323361621925099210773498750901715826175423530042953357670646508925264925589826264404018513512677339901480502170874396457690286187265023942158492686602519255199639775331995572816577368955435873971665989753550175897274941005640732289485792852435355533104424581014042469269046968433040461718658945157941781661332377763145594539922745604999867876893895980787863037608888568246038633842248567751053144631599293657265123528860701993524414865869695052859215109194772997383022650724583412755509264337398231148263621790558568695372193406224279822006229864377364406613899163830830479467613499674446304682015872155900820600290515871127276464385305202755366914299575381790403545607378781395466133081698128906386542099857454954520237053982671309177605610182874417519427532555088335275597500769560516324094808346917692026508207809252085066395463173561257925415888291980406779283301631619191630255945275842043769005032520810492486644853132748264289627112492733361622562895089717393383201071323954887880214658755645923420451555622593911012000074759322606704900257536418246955791494622516548277008463331673833054463955524487680444320051690835863977487039893889023592085692596593333308887200574757672628506573056347618467454906149364836478792174039310384228223324848460803641807544828656840046621921111394591549760648443991470753501969230162790337195980898315581221524051692905492604481191108623881333884394956848105080006193706082208329354701454991771050713040212030769516305134441999885224674222039475815685511342033680995165147027179802223763994745803298370648424493373100286856685480793086856530776595656368411863856717477009199404557531988343024331729853647021688928429398835670049000732795763988028703577443909507522648184316381711697225366303091535830435130012370437586605490238726108964354219429847562688826421242467491525323921437437823755107342210322499091390058333072000811987609971261080018358069669802089888363623840936720810218001386403456543503744012287268492210986768796528396950657090479471823398757720311716389875388764747497216796864259966422596198853247334328795370040806365666389463953819127271468884511879111997808973905689358993147905630172424782167402610367975008722497586148730669311397857470016277201871267877737381579304738170943177700812357729290521307322848698047094633313473312561306802390202864120717254694025259438782608521409050542812878307081132374527324517989358901330803850697519121825706413516230483715281962266381173995830883275966310290617301691729025410494514390442387758458334356727298534687219180613004791568256325271097782020060566932756673365023713551526125526295505358546358622482913181885855669057108607012180336001890675260869124024493909007934393989233213826417334097300861974027049158383513926270504083643184387526706179614798689284089011614534650959883568138809053074995596134821094222941176638383549753005098436261563096809198230164864322143848529912709177688753108844984854580424425591665659416584623438901028764333432797691314391437257185088140140940552767278571030897758887559151441637286100613112802646286746830552769292572031872628002160927332745443697064337985288495836764696472910914685122613536793899292414843401806335942722005994721899976818124959993213589702127213724856094050482921027624621511212579892060168993115525155714451153831351823198979951049856121376090936555569694566073298521295296885174780370457351803312328983690514368166652490311226783871497525689448626046895818349966422829146168701181481031787350047036546039441128199641883111121962428020124733492799862407956457794039559476223150859919356186689212920439354702432287795827369629148044706648599015368472495629000056307206478567589934399803995319371452000061671479886674634442118244168788255412098805060213563447486355837452450339664123722633613674166057524301797952671696144135953985711323058426982532499361784482053692807039856657210400653073476932110359489000202783917963984177134807952451636356243608236501930240058540738519730999661794765378308692322639098971929702161601879215194356624117019669876952121342505124367547108333961296931067339152943445760033706769639530819854167802657225394761209201322576921579395993739267218435989499969592333189754143553429445122147317440226721445664930179719980313656453102475433488574172545295301615000176455448465688307094696363385114460833598166414579832365043726667152227800674834836093196868423948730174616245658107797973574360568476776845109035924636947191052559195166347041773906302165638954582813615022675958430944678339613850385164435765182261012107268752901189117947073247577704269734562883637648818264547892339676017133278801402305369856950566870210730563498206040522282470914100864335885912664276280531645408783278951886375254694718629464411161788408479665538557748859231361975418902785175706624845270770547924527842355336821432669874185977625309560256218768475070410076573335061640089097618217615134165213520040375233128603479244226760207053510640895816811536058676379781665750496143699610878993358997128695690170055213806422987658832348696232828881696636478156487953578818687409458953677670308044115752031960228812128472149273844744558871874816948163873948942585689852170292620670863512661082545578221396814537269023816233832762148966380979683561935170391719489263887501820295346566849559554069623852388769598848936981981799903678501135591527293917369796732889332462749584395913349218069273378226700299521712270944412425024157790137701008866606649242237670303669341404379905191221092402496912976819194106655438061959746873871437578424234218500071930332304026559402634454643465980745713688965442016923354006078041796240104068695809989425834867805532660461187535853581971989062429326657849650529288925233686290053549806019159329157090306859920763203627198455913939360903335904889628733554131534742904435674150998267042922828936681450386321782196741059089518809350556671765331250435320801702648299424860426750433061961650043113660438345290941016574904228021330088485928847343223076362383994009906935399410760943528102480147967830962319914656665233997080941197304774707532815739918342975566289593434617932089027521300374209918039059405419041308678499317271638886707399220417941813629831247464561109521608285134368808612757107175145266092042527890577288640413126337899781641129233607074025141562222040120599677060688845384479233869148361393468736657191235422490725762976310593381273310353717672575793174603652325490038653786164675709600027773274691811947515006406642828879130377426086423971549296425470329787021303802400422125462616165240924719138477867135415094618715969290942634869652385448444405266385942884396811768601505226046286017350123846611269621028706509948313378021507333658117825210665676712578994410737628999819487135541619796300958874069408285284989830154793361393318742004147497277109408731769859351992439172625664586285758933250620900658365820518849076318868448847668640230589864013571682328478831213028210399358953555387943102377562009838692982607848066586844596627387783881165501064211416841801211236013955212887771797793388534668339291563595735470879684508358998216431106253161112755608523957126823390398056266194775231367904717671214182817595451529034152050509335417119590633407218352374804972228542671679186348058719370268000858850607792340784791902470907670889288651842094566772462861711881292686484455303600627561817371538807287829814303057704947210078303237383985460771269552233600920895742542502736278987395217059066841015326364552241018162396766986921238786381986780052384321637452880706427751859513290712161478058193689244457362115209569994992495689385324283300788394689285930424639263137625383838758577584207959567290537599312090853137961505963049502266251439713975488455962643170679116248973309812970838554538841520946540399414684188136720630106809394247226419151966817884521116281510772469806160371821587988616774013857141132176677501985387975950850297313612030864313375890114877357611432376732572086076583088974310112739354493652194909601027801473870010246833819461385130751513053230897783735541246732917640064576889135997218365012077355611706390368514558630512068212889539367373250960649771824629979089246886463916009650696294517426990721862053189292489499769021270099585103765898100167791862840698082405370147337767843281471830193248612516653751653072401464780039202515173634413173032512979671069606376086740183428670962785570174564248426701966328862821045125831259339004259371851073174894465303898344258554796554846084560492204186059307822941345846501901460088935343998938336718467963063690844445815671857549858167010899876353587576459377218876295747613779250425238426098025236795110230244421342057522849548880576360882017751431124376618210886604469211627391008145549598005601100866865539365056768589871847943038470590419024568072908088540532322297250946411590956370501376793566036099856651141812098081415177160973643156556498321378044474996743869298548606417400277788371376197949331415326185036304069455287070738472490222167080374101663534262283192156707903467382190132422904827563661272371516799982628205025224912405426400505744988027004823715915206878924104658696761745869573053115245066020034898643234257880667214234034410735906622497535548724979535933699468651587813161984866318860480252612719084171559188499716571949067668455068168919518657341494668826996136335776149531708122629048230754588035247958300824093881216087268442186805850096635294930789023033053946041220750600890601810912273986866324586307108595102649973597264770370123284313283604191419937352961430638352056972168488828860952758061729838653945787670625632952344747968726879310437681485057669629086206825527896979627510317902551074280113135666719478481734522527587191594734061808082137296885023041553134937477124992471046802132867445812144018935125625719406584720917268584970249547292490927670171834059371514337648029625465956349748134697588060156138809975740518933370185937237459750079755620323168883691043026989909663991745481700952205028325192166107208340731027188849197398327937357018871645048696089716355491618073896490719032038693646505567894877922083213425123362709432631214678737664561617408163194610576938326166694887805598004842491808367964850034892945811149432069229538758995319798297024354643052294289882788897198123745733285221239102892147958249098465632736123297688011450882413337788833256459172369938423913819409565802012217106187926891589102595903144375617933069515905041376807046196594149045381467113233298606271594386491891979707319111938823827709495985264920832550458563964762082080847631467034704991811622699222459433877668473850980478777486797701810052517685240737681924383406876552528835740254572307136369266867952065837009837987371381292932564954550560289785632268057239493760301338280345076859368454959140526499369561093864096159702525847770153027502100788189519583901472605081194162977615009843068944667216725633826119676447192110349144228054140579864690472236139626691124860212754025595383385814959970066695135278457295725086926925293337457797011904249349363878107124823707863441140645681344107679175743422362334442889834175489007960139645723998722195026130662029391816978962996088359579472080803439087238447660258387173700980522886319779557538156812067554049182276619311104020227666067473992113283646023876974206268671764266649785007683619497688413201066478947412872806008921801535360819998104952245529180761469768832815504664293465907169443911875999703426116788882624013367595034825842722542000704261394345292110711547067142588536222688545791871093096042753687217779616808021385920120544517294955626512740641992688989072854248340635480092949183211459120693990899661097758916974281565141690380350840737819772693260402574635812987751127311934531503388463635060335280730541550194430224953935994661078844846890161041818388714743400122396371356645389464234992996010949211192400574531962860936388887525202755099862680920960428358293674080885155302268755516463047409140489565767717985295163376884751787740802696637837572053687723145381890732267130196450788667607171532358121741845314997178136272101398790163008068482450605054485819467979197032610193697715665666704597421324895857229669613091314018752693518896483992750981234766740892408914441728929843369132781070564932886399085266253863442689942823172929209138947711004002315882770825621094395063567835104425311605107512821437487111001399653593201677086871178037210688376998208852532076213322796675293682644218629446630799713332354850210836871941101277499429323610519245261272008379125530293975023965042856205067907751096725160476674126715845123183599686599731813175404194083503030421570677411390959567497777240864492654134341782556893189803540248148516570590018495895977854883007195599743262052941277717260236973186132993409137985524650505886225732898976253139446787105030110572829074513131764198329353695184021999552540773606166575195595201062749655877151190192557804183082845116637348000997081165213197977567070183906870968066624286789121993603259993050042082646288551975641060894571642324362077841658393092159901084639087435274308423370743890723153198914726711043554249962728476074188791310883915673976868036511421757001277845603673477160655846002657741676460539870286057356282528474717575109470365289430662379895426941732768008728609705484500900819565638102110994494378630916222060378270701913324229633891042937048769369959894638909006379116707648180769425961825345541383186419154270501893697344637122984705381059015472745157740007867852135992475762013484509668572082878431870168480611388079778655085084895468915423489925445414168368569266648319054003993208481546046372688270188784264382228494540595877596414086394610918829008184334133617316539887482375254715380182163126675166925430244887072179226270332742996864734333648883764962939047731370581793341314997354005119617134803769167397736320231797549100319656683889397547371659201469820825931428895204604409303446011520605251247145479946195425668705869880167028312496361983697174045686728928899898828340335618356484967899562970034773379414254384694383776259437445937838005897045046786078685260881809404284506028493377143848343348014534228066050278801148014736266703732024565727033755486777960495915666630321465775607938955979003434855583056038144497486761562062384212574288794917537391604257689808833409947163474160611859921289190365725626261455582986879926181223144613308774435843675761874250690610012422368107823875904216488074103837301677646166395775346277231997713799981985324364134154816512602996555826360328026909988782337257947806814740449394631533563622269227417749463570612903672960264175199639445164124966575150101361036745152851768295034634557628677799953223716463787791301566372402795180812331524602683685206900925856501056321496606411985350187913027453980592918980257446187352788477072155154679997360110083081508967953228851486806337088807429136357261996169134444516638911245298299492202477960960711979725313338506379669927490011589366531067107266448954706751152897915603449509100085267677973282986647624551601183271126451417840844865889956379342787079249268439432293833861484201839936296378524324605612389383705350051469378580992052651585913346564103724162401580393579839747869544712613385354535528771367904818879481358582710038129157928753333013744291652936297613640087577041915029421911621909341518073584123512327559816632327956923433692562804896517425305853643771373586364699997855480327523554705874986859221037657703779889355843562626526885320490270479162355288137905291400003750590698718840800322482144482127152124532852582577993711106523084546316387849578345340508283234340608780962612090280910011902902790302991470497629136619760114657297328591893108630676515160453948075815077914354753815573479719948261329498594597093742459790119670865952446999805799853072293873927034874230266113449993309964033742143771675834199302997448003902539469172405644435889113841941273932238854063539417928622172860670252401737323373697667586685266583899556858325105735574777836835638993250941876740582433556910638622972756046134184639704522489370258926742279395384996270412253227399634465830024579865508183260888873601282710117607720053503119941854993279750442948901121204266195769966307185134520776453281246121920569310420235320948910020988280976592109918183309226020871096321477414062070808617648779948263502146894889185937100591444426489705048654483436052371586907628463513199530215259828753138431500436953511113107794513442102388227151343658094042198657060652898139235305546071063043728877345052784005495403164924298209891376204274241582438605025113348093179422345403563813804093428569520240172693035878888466137505827157914522715301425913882324278764780741725178601020617990489876484312196694716449715013117986474054041449925927705199350058724216288119474811502416362346283645853942098602296046701647595104572032098623266604177972428470932264698046617841518607936213092288091494047288938265478688563880198465147289431136327057621679757317590963930831702819508647379676245625257389032452813230054914378589853419699331455737331802738000079600872394224955524655512010013822594296259940857400195030998688412929579991717136830184619193738349715863653339742490517835177082656573891829996041883863215618536549633351253674099013331324673840860136738786464784470528130489825303920054986479646595949888591876484669624841661178155525093375932831519065020375610530003837658792410749882425506867239256182259574205122508031306229699744212569758310426014217169680124157068840519019874278076032406270969908521891927689267780380151524341457955584441841432124748760374511885856063535269250649299577412401563751081875265395487921937294877595043467072091040291654628512397708256310294178757981306397328944334333163752576721625419417916765672123051212948372734459457405131573591792453849625735680794307316088706794215246323930233888998637741585023502790669708828140090347014367179375601160863411927110415252606533175664530404185778603977167276003606805081966879292334723302445888206435926350906655441805905648804040368952012874889304033418105606368930384845989499513053791958762688164314751531083194022560754319164046285197504731067120985575260648060366155776395862624637529035743122431092183020925578258386453960187277129435565174896808313290026948511033387250148655497370998830645192462613409109110793873453694472325171205521778499848189639758774865479804876258808646786394766262973697656726346470540010422430355911223565591677587519968996376135752633617228960783446933610245116874576676479146135026562092432188266404271222494772055985611462617524391830892114699816821445350855423174671991288208785733674948564956601153866246353435880048599248568272074069940958014741678177768942753924366859131435834098832370409814489759864374769635165348958546628038244786700073503215247420846869614606163846360432241375996971483082402606705246169209381632653323223396390661617062745544864543172792558547608310086365017065011703138861678875578230142188399329822627680981262493103609070417449030741367081852321326882127961835634072656519751440625360522974522838445998134630368505421639842786968540960250109623812294756465138879163949268565997799231006917863240436949459105230621207619890658159802129331948326165101257383517266235114234816933596711545625234564653421484613040140079028963388594351420089643622418154940243374961935909593401008016821839026509859872654875145346110697251880386681342709987118811467766271124860058089708993033259479918207388780815277843573632176865799723367202758785854416598262953793661742325353871478725032680204961065424633761023727701844448038046841166846311377999612867904595110870157077875519268012699159456075009106327269148873386145016324145105151928841666948602243666013177705889488077697850451605320089312329596754324925252717538360421284205279296261188467515123269770908023565610237726317500462651775785386963173250087050666823691231286216156194021870760208212773410944442207018603541111302992743973733593289896525265488635959992439737151593213522703245088579065097665062638335868704217063201535756869220498401355273237656326616686563942711743754555239651136684645030415531861689309179795357858024337672901359232804717887619460623695452085933794975370676624747792430559225240037177336430945860775712524548733524851049660725327044116572594113005798054825585181069268969003179568523899827872984462054819317919125310957936530523555471588351049935155551740343329909058569220194675916067447170855285815519584485576087804176111145324238133216308309043165172686491435586436089157917748828156201037130899399220309599135037474169666871029593460548802416575022163465092838431330516105011143821390614976658947896736608246606902868193983201991186437792468334710980317160731913052727952169355865666191286474592929815078639302468687169869956467544690186256180428512489024110002845889103760226213575385073683205807947324907495742061981084526112328599503322119764604311209956459092011166814838874976738508836113419804382953809761186133061010632313909394432745297613410009882574391081572528646274186011159891529013798466740290622801185621793538663414579109948073528442169937907581208794474569594863531912768088965929780362661953611243786312455587640454031768893087063745830424333007037205023143883247448798190760396801949127815977466110814296106510741984800705369217806595975516214062913380388131263853499897987991636173265681121120207933369411995337960709673625253441785334898885748991374807780747480274966611853285895514647202517849617631255029490442530181634690827911500925619647083144062408400253525399442089823811579797156555798713245198783731198293042596790965913546643403060601378872259499344105271938021613334961164516664192911052585738024219780332813584788634009033678468945441798264069810428056461415798743393992290055125057463812497788641009984917257780485633869640965837173124546060216291653966643958019401546671154589287789235015418104031610522431627968452138385117628716693451315054016515546049295780539379903416676614798564642240973968094325953294605587758771304356934127324316321676514074747180139582767888801549386743567420826529370496494532385989700407569534016448116765959626907400788820684730351724102721291499717429775945412427446094211797844265315058782361354420384795340270212489093565675302017772455514411776295792707443128549031343043754902110140322317441777706795548815337463120363354638945270298822439527339089808982853650445543259726042519106101907586806489719605216283484854726958177037948900571254701500364215539043376859881760663095587219774118194910714364595006068911266047469716635917217571248016206745428515430112922123262493612882065537098330332213453561717762665939143618847400871157817856922345387147119522786616185993649812379432776640623652248731045857022979825783749608224626392807501503837611273839254817300382400118452860808481417115854738128432867327873233429044081362026327325604262062334341498712615418148971243866295182753129219212006655400019457314564580420713284327549542073925300621692716322846836380052380708268149750162292291145305051626062041846497299095243477682751209824826644349072792358323840578613013540409524549862905009593576547337967787475809252142298855188962789864297796979388476219135460406393569104897045140123212247309022163122693654210265860991133523344828451619491646980785296084134877477948719498537197900400501326979732211700596821627694506451858487711271048824068344066100410450909579140699668552384838573680903485690304978052185934539049630677545966258443454709234252637754271103279062665367524234124716259277010237035643877366479287621362628908324849619852621188766328391957383461092423318024668783564763484408979059445386366569367647021158123301410889591692666643694784901604557712505454344057148664654680185599510179978514076621173926094980398448401216262028853229899095599435559294790587946481224610333004618575457242001811432972273195414962266217587370713905415811026237866978748944257533211697399451939771135113113492842205463783645383200973845781212003282539741471894091215974790706250346121664876246947858142661607781184346423774194286895655461296128894349935880293239954412999621760451191879034520145286316467742036788525697712053045259878557735109352367613113499803810059494411800962122133503296466166621878640481504968982887294014534486448798614296939862688977441820190496582734249048141959597284175167109369864594336900615169038591672531923839447783334660763051637008497895740967572784674267846302300122777572332965464065951360942044500495680934701653585681629092298091523608292308408936060544782345965483424562373943821199361097931354792598035036649652755295187377520526348534243625232608819705711886262246047946564772550833323247176060375325461871331732039847575498239788458091877790839218108886855499592792840384909320491430549769148704827203012762846226816966094656308884730166935503759450322020541017332888337275393421007353886273285549787203589298622326622798211048766964380137086484468461682913844359856584932590047999706875476353667031858450557539330659664737375612209206030004074138888663946583810179701292771759322944687001923760218536941033494654660621159833202277536529592690612026127824769311070282193957225312534930366909838679476680130301514362904323472590532260779684297768235473653712324656908662546741424779205328979493111331274830027656781123260879344127192299963495445830942976757918040661662995380121613145456822970772719145854939786516618416511279256341976268771981199044898552761764099231614796316731009985706828096453229531251550148296637735679117617153898270874369486382998258919359878405163880317616487855538768905831144457120748235190782560997044316948938723724611553258298045641100161601313156088956873940833338725769078709716085899310307971588850307337472194646015193271183168272659245573567590006482193026044733325587218620204888277063333078297342054089652540067393849798639168660593873853884054815434433643755751678780531069364487573245449275157549750920169457437612957214157667742551157515777040204603251722896247444492558584001217061272544130822922871764621607594355913159568466752765465575647188228117315996384681904458301379761965407564616007602063801523918193015649483517319191509130048739499263360364141152196708939321997381294998723431394404397488233579682606705734255239298245663354617392503574938321263835503969913400693703775534023163098569396375619116959897546493297819664173557926516779850539465612022973431857600258140948406563108966863991280302367712077879159729252263857115244230368307772710201470705270224039315653411898042145227418338850388306910375191638159979632082702719225323333082308959284262227804611946982298626703133340724563913212007367513033546390967970857440137288759702982468617557939712252254953368569442198298693551308764059998360583918779984019221914737022699661175351409570930793667177078862125885536768284500797967844992684210698057540244122103346830033038523118774953886674454539116603278226384283511781533754042958096115402767505413827856847779449412349463182770179159669621701543581002980013927685522645338064870445092122299067574538317457234739933608149911261248671344457721006001141117654470918378755346760687617056834455598532342048048249362943706474724977134653309361864988376852514619965705586300335259984011882657078913560449098478040940096559941407836311684837200162570872800106419975479632563127143438340080642587928592793174699313441105694444591460748670232314353915809521590557137509081252772789436997305006353848800780463562577744598089996653317883858028477007945718511775659889862878264017827183962446426974585891702133837894880718768077686880338593210809819568437914841403904972911502831686840850011274889692683170920351355841277176586247746917259133958407362844763482228836776437176194320871401421247519033704567040821502928261114273463821893287047360945475515101535389275307202504988502909213147720960250009321556619302317270878325665812114062372899945630259851987686436956499459911889059527303057028643874435260407331062152726046615015698163028304289072629832445098445861029194500379823929684912594580880336782691069652997974851914547980214540701367349309139216124120499891555908596119828325450101785777880633027297511395779016520342841412400071047633462292250273252338493402149779723901260085639215649154046737475297762865610895491017987104735481478472225730460159610214212531420526726078314550492154403692649963116584252131836549195037494727987959695214220476390336517986909316455561940387350554427683554434788043002158754208532318818907459380745778942077950795153718672727287735309547709006478741142097957968624048976986841710853029208568780886276287331024529724778451813052745270909305415578649061193346670404274097155988299843352689231451221502308278647596220711421260124159518305037689350828152652853404969183180267279390012023270802593327882816162939924912422252255103489810430994726245568979520221513367314738633769733402992345862758841195730182200257043969462313060357907528789057347378003299778628106362799062931147097920128990485476085079926175993264837930427974813431786917871139734235834179168493086506765055055017072423827253727513347161892968105997645533935871457292868020887127739216644407666816734613411465093998057549765959830585697780004807553095851676964708616853394605615340140830984992317941985402233306604915496421875459831531062257169392944584900421679423224227596901793275267184769232058204287344800483803354607519817390444432212535659181783609559014008067567080841813181166877425246964404532334753103132067857221408586384651483161806690436369846743624108374216937619944350108676900954664390158172182305307996256480479104124615541962980496372869332257503019840002947019800355786301976662657875405897733792064632910934765941736742340704937120996959299477135848127588217444849290947265654346330616993145418060789287901823951483932081855607706256680767265394708629788345884688663475244966384882507728345542559248000830502183213383171588461303688940579636733684895128469136878667081364942811599677421042980607184721023336387191142567876686821489236414154163925911193177576181068292858140009448380349391818650418878010203515842301049519860350050150497374884259668883908995648243788620687353679675746620775665062567526706165764792425524295458497230317619828093641444527501871928096220165457401251841426596572280582771801118597767479410868159198524727252261854544085983083063690841465046089473185180827693315226385271711117929103401820975578203747367903490066747344193326525711551511747558880581314459295132513128749128725076100040247794496396794312248793088768356162152674178892554520420638663405591204949532051375131418495302335148211404087664976544723548528083624165232502684854867106159212987368283866799555906550888513099450065517309583144177512442804386711608085400368417899811772117095834442246571132255582789889826929997939234183833411255192614306648625213009623481020221164923083279178668071210712915135827261978604189036578778880762291635786244324698040537381915638634884508464662021925333993727923718732729063140900398362364031038926653205997043194534612390183866335091259942506109991941557018497423838510790698787525237051441651823369910863841167085413146443866512053557599544832408449247447265193497608428395543747745493030323961346810929834232471831930491931632215835993663737288031888650036533405918590600942555320045307597784916943831281766019802595902519439286227421805227452793559983756421849715771569528115738429102646431486426022016247183137902314926746628534806709990538246903761012405367432073687112411704627461886505756462848278793865928770571609868075117503359792631016560077055217934089626499429536391202034366789374765888594113106124682314097631907639360670003578613744215304987494159156977798007857829253192708709782826541613990225312265761721443857026294991395685830679679020498020993030973265982204796883412730713741184042097843335127698567120459219973793543614120997366963472993648962845574525318601314535135325509468157153026636129500556909013329208650784179302537119703653975285015950173114958960452622865014017314659690548442871441986641335876376538274487718493089212247729258224532440103589893440313585032200543766629751916651337209614846869899245864072685284303600217065068136187956465492591588845138867575417268405434190654508269751101752591942434863718505534706647658688452117274072348757579292450834296787004436259405995930533524439690583749292591595068248992803744179975158079088542720011636287961025881380897013563955193054360033519967837587690099183942138355762470682940134404893063262477736336694355872331949593709853314316286930093892443633920274229930732601920738771807420096884799516678141069937522481976671032244927358201339790000390099644659872528467678744706711618257781244435551166920257620133264420174134077327502056141293193648514402807737167364420576186760026851553975047934562660053994338635146891730437760521686529934389319195114353125359840658429183427240850069698289262757810232786457978031570714639674053540752344761409935325977301646653361591013703590300618743050639699185926736759913715382025284661951474195359806265449311168982799751151061591176086938113779786524065676568910212813493713780481287201200632181067644120909680172444541472376646897209345728323038458481459871052836482467509598024947753897565264248908216300429921923641657609789818232591300327261124172129573103099155718262170342311366677487252911076667338673151562467404378370126631900911027879018814416241311313482890974277724989708532564253165320779034362265342080155570917838353876322017944595798487974694114480569916099926566472402196172062310250138678877131095942840891161943750840169271702217704872723114320234358755225280245407253350356955811269398182388207447877854892282104191782780121645158938705977039094003849424663785460520802357248952038943936868830850951011465667814208029200781649471522203112951451019010603379717109745511546659496841751988724884570941432745259541557880909175517960713527689709306010951334915392442571081448800370924450630300232254811018120300861954029690669035690897011060727421152338354855868209134445375972170319903130191343830901585834391688379509691265582181218296690179743977194577519465871707830947705445842545878170847690088502878879106970116648140271065039223962261419500715010651473312495238868258476113910913350003964991848281214445692733648346424229516330857037583532711844818472228512437246504520076187087908689073666779114653683012377160450714026046205476794014886215456997262961870373047670732377059529881433212374731837463417911889181796403688259064804734067132685453064926125139852104948537611534979719568109584843558293986278412986991443737239891466171728284498424320051658503889738996351252562368994743224908002932382444275995772906372903130114199394627253337892771773354098048579174479778030772264830393112357892962813128315347561170357060013080412991437848986185864755577930749210392248464353166160573663352337541744442063841742648060810114998797958886667763041461521525826062490517456122926521592242062956195127712015319204801974881593842228691830596854446598976746673307873648654044399078224850400138570668454291034354826343020935403074723103072752378758086961517461158949094246795879321544119324227396166268938718821873425851007680640506111772622109967561878005688598912562665449095931408395200535417053105143767903693257159199569814625151527503693089422077187315878636293442393094673040436943979454579786488169974740777960524156402925316575408558399853277985554409308009703355407341902356909573913672318924435104248165631702787644149580775509414996320952030846355878854876060070230761021661595211609137787500489475309317764083566216796815979247643407588031910034530367712394811106846003715841622524240243634734544687347821929930784561563620128241810312004120264081912252324817633582573572287986214854106739978154668004580792384354698030382497388179553065052896326997928733928763292992290550970828653769557193488088446037734522376469284264463447192854367749988537995172716603411677128327934632097569182395813822133041952679374812219522117478645307555649689964325402854490150276291185371049112214899767513919914923124877851877039805526270085119400538563161375615740911881313189142060974585931693889792180215685418832806033271834000582811118176331435730710436610361467934532570587742723528977033463970407591438587500316321646955497458833610847060508745632651008164050352653571850246690177589148944414105091171531891783637894701281493103960340918603072801751842563660890468852883169202867637891677741209968949684166549264960045995348276793763643573207450134166007269033859975967537229548996153617434576151520099317473646320642426457332622457378565947914668115265670620213162586928531951520924996302679056239779307827803353335817706291094887964876314426373902038971962696347231181330135181255384174957080245138441457880665548828409490863889419223277256939782652201282859933455546770027948733738005419727304021192926916337874343695688621856108179753110094938477123771210592943333620690111418259839159570228461169089263760593125656389390513287545071016644511907718188305269510281413273547991372882568848820028586845365197581345948514253351241901158495059687524067748718496502559778848486411746988811682923798222523320087918439692444009378887049626031006860064204843777894846646755377286909055457249509826499085620522406335240228241462420998495492998982525645567462837968557870524321743877712175368446218681308199720934136307282877805359656934233942592556413611608889433793097483742628433284074346341262630839161794907787778047591317960921215361594185675556286707949546384615223856104228332244376865088304665397891142950420328621738889072616987016396343300566216647482387978991732139162040357698236864893200240867943921185450118998439859996759136785156265812079818300524884484362650223365681124677317920437603384200154898259346697154263704928648238802938641220873830675334485189747274850784532292156785661099743685292238130513824067891959162906352040108985393038826108420315801302659328770270909443886458058258639933569308674012492701432267796535011621842890297639842701180768993972486122424706787527564492329500013866745784632171963339435672012934451119373026607793019158395755876129442017074501931123194234782622431171275531033513808955907555194840331968590758306532875918723339211043498983151323260046768304238882857646818173819107616977558234532422111885086507131595578443027924151040979683870104562105902755223135139011754183644352008350807829690376762329547876497947033141004384651261636802982734260292215345661881200018584501324397637016516531340689880219328311063495634629251425340761783371610362464328323730692976289936588095023928968730636321350674743487451546058819737123516113269327565607477351264284935603841924379433440771237748986425027291342502311605528441412968061922498745963764526452647783285217135188647996492620687119248842995881867585082059499329150039923094563748846034036903277815545062597832006512659465838393099074098380543913879855116899533387808320610655049592066607942961575888952583104559315540277173051381533324499689049835148719560827099150738766644972032751047331444389141366309124372327606984688901957493972169750586007628213904892873180737210302899312628754241985807563838249084552505089952532319699092340283210708042459530146120035921202427939667434179530242038037093368050481725905087322766368126631921106145833640605972032764510409345326486997583942376044419579689992843665698129878748784555658466435993608359596534310593891101733746211664172344807405318715850750507186429184165216615294739158645420932960573205770278391002374928250827813515544976476783302250748567688765512027819824624908174459019022429956696449432119707470860511195735694640725068997921054496738455744445298715465157019829165654923005113451344804958579915940822965670356554302138175860527101127293799062024996878178872144676502276767152295654889085297603442408232227470041942881996062954867230936832576826559810504051826637899422696485066427156913804727857337676531177193082371572750204796596068536077827246657417711878063750654822357562209797870666806164174515377735780800842708873946028900590432429384898455647863949481929424412487599739841570331184974392974309353845159343748425316396429665761428559313586041355681713959159426492854322277379870779908212142218073128697383827602409238084331430418545334472020077791939295344686106720096112942151044108411765989953508958343846082685081164885745561348402650647648720152472290869357130483479724085375523383187219536282389536490946656515960559248788722364311105930846388105454390207465925746188042646440771353654388241427611969753582811670580068763058145367934210945207572220901783288345860827180596589529824308931398662276993906761851993362400289989903099686683739542583462053145352451168301733000906566709145097141462015203609244626709097739997901545171433505749642575285922610228591559060930007127441082904267349659617124894273971228506494723600765811083041682717576778320946555930088820459511120551043778402988928606906168617678662766015254654995717369409107994670367491326816086922142067925395955923747048892995498949386115431023415553894405048406617859178057467427987305457434428711425656872377218348281482219617941156570294494946161106681245028140382980183176149805933587859116019545451960330589482367774874478984918916505831187376765385099783221982588718555257876964864468289875622100567739835623370723934043220933113854289982253804888665219181626539861958491153591800376791609451950956826294727059920555410848329139809519681602271063923094625876960702626163084975906008880231133895868369936135068050958341204333571625250617080831748841564361325220169301154181941626017912026518725884787117026003855221472117625231852626206869029750881834684655349141782755349255165129110968944789024937382822354589149373452565714376951672116803123353320760530524494918639690921305558221445446146252079193424957675065503746932152137875943751468527064144519075803396552473409623692201978555604498233381961960407152349732744668368120437681573840633417406065858756941841095793625764758198882981269079688059680103861266873542442025068825846745901320878622108310223753103370500610625049453229052269684701135673449923812814891768550299184135610086579716595910218242123001427639166500805852363484977676748964100452223789071369597180721974635800931034969502609082561509142391088400280153403011519039631959908960401943677256907490423301748158592270964893793146863843277899924812802629540320476403237858551736160854765926395572592507707633107761515662969542386175662690694716951198139748926391732572883916243540403700062199785428340976932717472906022679065267740890421544771372812054801249064401587220059596295041933412431980471650529670333897226956687672608571065622936805747183305364832139237223064551954958664084314382701646864752444039929263893499952293606249990501495786182090584268981229859918451803907954180214713457344577143728103100850578372448114058374773330185608246847989198098748787458081097470339406128291181683810256403234241586241847736482754347237198269031596825310033416754752665099657415002364002347555715284244113528221768187297636075164163319461860252068091447087972001662314550043078376597284527946032511723707727304000853704071138068374083368684317677955999319346270746574792303229611607457555941124389413168828745017225117184677845436296923520282584716279761569221148386194189620701624983680370099299776360649105864249910193170854952406254711676121321557475401551659664383476719841107841025674122531516801092052851585648582532707760273674050828776521970763819549254335953658616596748344376974055857651850966630875111933045655083109673476062995775983465327033011937605397632823544556612676822946496245131631305540872214847879297925300400319498640912568126983706561718997413218496703532669004368697312286793391059989142022574644082704468731237837260394366866305769250633871745353731016652027608564847129774944926103501631073636672022078134263875367588992931589247652748223836594100261217005576954917620025399438844282999808752317538603345263832614233053248692581983690452789004393882866009348504018555497153304764760609446300512897217779093166936460826165620680211699674398067984176449014623506167023588428387358518011410672477169466772058689335988405142228925996604447188363566514823503844161605477956475923171160387237770925657385879916698781610160334590167361555733888887166942486273618443447544635331990058604562155211114873947538794742606532923794127031057892534568728118902540465177999019953809914683393415332412395841720239831371645379140745340589232178489323264555277029084314628645072759061020016572031168051727322827238833500439210185566559161292834922312550621860899090904364252131099865036042751182365956552228067008669525652876867537972620147172475038161650252684074214791819766523524447723492329252330323223942218089826791219109066247707344393962446920986740402151748398346370676561957505142078606528359669543720188970298476757834163660975551019708351544626715275246796347432788590073531125625524651927022726091897970704652233038791031280873761681005127905099310391802367574594042126521180274363699209075947338951082024263286281296806822522783158353753738641971545897173582449773724995737716185341963899841451681826374416362954267962992238394939730674319199705417201410434709723374236729217000407467322580332315070477459990028921090976710510530200503002532746894538393107894118907130310510507966809779112989844627752352016248676735029409322798745544537940599885913737460581723371922506354734656580313477817758736810949620238325334779901578614422838611902940574191744414393336326951081579039994805488695823004577781181957048556879347749775672471070019336275843211070045666083499548121951824967219111943115550008944212388765420334394302871680718534706330983479987675925484657597727937563999001434510778170417306719224237185651477086044428752718646411979933720171689559856386282861913584430656942824477444449835341576530373232784154429101670578761460027505371720385611411374881728624935850733198824233669159267737658156576471036640568315406173214780315262858304322823389602559431318336091678490551103624526136823739337332624297771958394809067404868455199568042825313937467693492360259508858064690237710368487407814389760209000753867290899514005905144940723960748394900107890501645679213527423954587588400392717764007685165181241981083797801140356244208375289613870296810711347133383487812225443825968847951635864017422537000953025094855192970939725322028072522652984009958321044124332869386497814048361174108392032781130696087441336910331701854842246654891787874143355053412650557972979940856561076536248615818678718349729937211978483144632273720552578657444442087669544532381281040760442347392192198933321498015836304187157393546706360912233272875367077409758944053803814722840795286687583799537944616686384327304250500834554496240826358304727522992283517281041995319160514891360510663921471067569530513922515369260583353507452499522643445053715621767713825111549851988425912309483409544799576800660487373308193707653728881262210759731546885184246800437516259334941745834670722845470137120807825561584133704475064203075859416454352913140623200698333532056345123334503406083255256115847385721256191116471308306612560101253194505932265398021074079640964721953236140116167252248274253479923829293944438816442947175853384361214867054264824751177767473012848185330252445403627999125185736520388045797770741138530577065704386142075380147028677031271384373742885679720151390494403652569678130982194107641302541884202070254853327246915446353460362100553421572046163703028667433806684347445390778307984573632676763320674904850243881477466003787110662041082912506088583063256474673644415927289279424358470889109622994557754005883091547013712654275114593349995424435162202870240435060295745507719508321152261686617285077579432205359183363948724344820187207650445120338114849580245331883140859265604711250076080395016254207425931920015459737948417190067572097866566043667584007712788705045001338485875422133220330223235433361747124721270452453528416558259065192809280394544982630619895088967602652451860633084648527006449782236041935754369874993285435172206673425705788905658387847775459723602006938390880381429684405493630870777137275608845822785449713016874712175227053379031867782357155077034857700916318362136966140423903530924689794637648605754526289604286579137257840551523242303643916656613224133973460454867549675196441611331920892686442190873016602951660161951076666644970746589167146882642838039224595064023879417322675166133164832448796057742832330312052202000916979138274390044446153568101023647488518068388721480227273165072359365052907378621352684696490753884153149950632187645309324297561055160194704707096412650183398132219235386436782569394189704414513236309214211449723871422694543911307343753745349160177126808807997467780537185745901695382707400733957118954674983487518310127142851288625354745648077598845792030830366037843156284105835426902223085019126428961849421262738730111536934029817310081575560382109854971460588237083813844194515290408783836280379363772132787833390763650627357171849341141123515348612015030677878123783114606047900805739419879001805061668951288389413391249295739850515921533064458172697541277896204988296123791995861709749421434839584476141072380917300406751572677451056241970721369716270308972634256853448326988363395892094782820314573542971917839476150779277787412182139353964592397550748028654077887543981380512416287414730484462578514502733944401032983376667267758273654406735603785088032871574216797455351459312838796535681628371188336715720181431187191770015416617080961849977732848560982586389513386646666125618634176189388995397537579826150767991647124998163216026967265433275187980714240746559603312954068950503066667010163080157074737472922464225324594424518488053494480571851162248476589534857495896903042648284964853051746870052065730203865229342661179875553013420734920992879118864836957505004997950201837653207456890068830730664359442807122009899889074582945563283552742650641049452357314760067040782868488588722693207260318172383519633087016141236886425428230256169154080290730250097727771197081702667106211440474685000661805993704083076997490729310392997912720905365701302177378873935004541525832064739968491185347985576864216043796243835208340032330892167011225941175678704768609069534827251344089786722603246043466686774247467319047264908588192391253757603445024957903486202107165467203641011952288918069418582467645089058428284602244814539456575791414534960456847600890246530921071919665473624167477182822926116974725680175833648158235281173807673936478149883036200679606281963992149578423580033363252883931758078574802668905445839976522597128399655319452698911524021675573379006899878787251352624546789877979230964774175011995718111312169814030412794648579835869168794832109052880454878484052755239689185880392023593612026952972484393337657164226563547245217002060941116722317744002771208790264419982556185085899466103652843406052314457734108370860403792350925903402762530505939673597399150700388340196654009799554342268640345169970850534603733070569091372557781747804141246728433990291503204508084810168184468304597710781516626337453355055528944267280761168639924068567004038685527363457311270340473933945103495437789450239115618673759423043377561905475363480951537569081777745169053186639464763017151959411022732140021084474051687060705537034636043441027399282329952439230202227958845173887180528656012790305521350408605338208168428749900178115679722785882894645748707246860375233578684305283476348481409274923935660021375708001944476658824644112470402560669662687056440909331791293505595104087142803619442737501910113109879551154689296012685402400690982263632509949020503031884535416285871926791935582542853689229633533350896703289765577736997753368313734550674654511572083424734505238951499490270307095720675652081904321479434302741458370274565072861868977175598609966599484650902716740032632947611098872681353332962253395750298979331369725212186910811771660643124020680825150722323999327091539688387834943696000782332058732445133247845395212992766363110038162705124436633157023644192217102196155727850663499846179966613708748877431697097902917999422050377382679090796185309336802060326560648237133542308839622040774336936405168019778039173119762236921993020739709133707413410286636952668226941918579354028905608320924008752990508136531564819492248081203183313511953145253812792270783165351016765163231670454173111528538051329393592343011016180315223899827177380045213429260323189715354278537118260106566507355127354852463523261512589314329512828598190961064914954097542364737240572735829452794699789249370822565132202732218984065305936581501800172783351388536999667170413783798558927585148047491537419835293898746894469550935839473403751257766623276581601781278467670360338012100995567676859667874537696758048829139519481918805693301754026544376896577074304036107801642554003109689067294270279232720609811185601682630660608979857865868790637474250702678609031240167099162756169764864135521421146620875996806170272579467880200654794282452074907951359697090873539927852214489098900536708196881519412325141561964211266089352716576174806959480431421896996611267911787312767129558345571424260130090019540174355094044664773979149797297352889761148661274690961458755739343491860997055407305354019640738961649571059370123260225773930315777707556355429520748251251317177340731681088256702741020404643643974884004318785007658400846199249078737551645880506717646686964470573506274311469146122656754419172337374774879554089243810081327141868363309937402826035245140562205189775111166320543148487781440516366209734468844645113417465511197048787349661197919012129063931035812875277420049322397350284980131193566587781223730426579651292762842761216798860799051546163595716353575381447962689935025685666884669412244087848772082714745689327289470349525130299367525668694464455390162642850890537962039868097153311115321402122304248260415272114095921677253765707647397422133110383478025887442036670567980720716392295605958660192636144553280117307650903300507104572183146005217437750917542869901406639052223806834405461539582650717334187126856256396362077179904715606157017544154583657784575446609264112462904607079452134606395955097775668307529998579530309877168023527846191990704986439266109491200852439230191205518721865529413307087286803293655173433399151386501755148649989801193934336169772885562155043404861496965095948751690599820661593922805648747229093236927911603437788347380419592277036018149458145426083756363897752998718911368203547736764144581319196894021928777992833784004833007279282748992772748152612396572949002339563265883542738873387547028656284403512187238077985470699915207029606250297575846272639883452272678451894910517273919897212337880930023715771989640523981895775899789432494271997040190214562274867988516200280794257320604064527864572589452993602589640633486646809056569757531613527109939052737102596333149778881094801192642486790914618717625016124135617438471194047568121482565198742400221061689713499369407249768734869063791575812282226922081817827445728236606471138843083483501262806696997700182575968935308356168474282542216850154813934109505454682696250423219873438852564626651386133399218672296348220846068427788812921003498005087183905219182278883904766927291622128602632193014091323319830782913413990427020015811176795647113933291405984647995929220286163459760275515212855944462825905958984797072310199320930602385549437361897629285114265876492489443081508067423728055144126195188226064529784981747852957987622458302622580923844477718710759537253590613615312131490731499286051260377412366404121331467643954072062892865806009978808217400853148010360809600801289141807863035490831419770438306228430843337036580362761063528704289129503275951038925016831013231009043549115065483016858859044081741319469974438901874312784794700470676713104407416438844105189893210527470128744636828876061158317546917276995566456376037451680479034360032576268106657060792539775001538756233748537887053906209087717396661027312938056896776954476270505534752297196733770733894784049110829889096603099181027886207639043134025036417312387363200511553588726715259074380103559420943643060004398515074235288726847585949294628210057389318645906107578794898240796420338764549314247015595216068381237704372467188982168387093382646748265863485539900170181809054073536234239396674796756458728034513259417091462718668735648811655630510273006582725430409780087848177970790053448618577086039442727668140078413756086124006543553877525659522248737045216003024616476516557039174598987603591827908220448278264542208941301013268818215274769005713164472416902241130149968174197535195633212090390723239224975477490791722579039922883763900461103026690712240700704413256377913888401127247111898718622805399053392770786388436061508606510652205889266037250393976265893017011533891082494512786276677698034290125635448197618620288507872920859597304306348516243863720787503747222682558136307531515036811765740399241918922631170554879910846733753896331008262654181776612678374837475934500969245415342345306229924145333225561855129725493418218722293434274008413180854283778916685322275067682871603160062997784064337558223906044114637651519988186743418112224484722256209190571358036829916301205169377778196177889578734507875760015514027308044458050580077772611803896229332956678130750580047270374231830313652414849838682134996786246291558665050856840774878738997656876482091305414323119083765781259759341152716588107900725729269705238595540163366154365160985442196260587656331982415479895532589471716258108266475933599456124114292333179447702949174619116943959543099839947695783266058366386203504728380458922835610803180340699932235827462697823345490205484944830795831619594909638504684575169187167530603125463400275661069411704441338540319393479365174549388793985963649865135097118255905757621677713083192876677262685267139274809043069721563979826118163260109512099992808882005217078380171533099999516646365178210567372463248108059404900677805761791024608042026445084855952772431683274407446644539118496248889674432929675546830131165147946264660597781068702986561780152118413213216969573892193997229623207207728153847184111182238656212376912897725488579764337710368152948224672814316537094147730529892679308017264059490356456891655968402092893314865687124457272797947292488050211055384244396060986460180737853795569558786527928423459238376106212891514786340508564644073628480513921398760068988693884454836005177540017772081877814612656690534331400481686898213061545564146090186183733493478435730173106865084938143954551232734317678358778759067922095552320939886178569882641783273501583323554850258411872232776910196408339734099433272479267326861084338326674241746564966204402949824252148201851212669243792833810408620777485039577675170458666599867911910350091354265678279620258365938527022975899907593593480003320839568587580618990114362839315070356965754034682404519956349967357646786548058490562568874820355406592769226587728596825717901609333331921769785700170542362757260566621847745666112765438514944555412769706084735079981925766728726052892751720142091088092986118685594006653577181549708928432296710633694721630414909454384792892061692704246936279129255462493838489891416489243624568129711138519836380267601684844434061448118567180245462871922692454575907358332107005022472186784309657178390974042699770004501272899330442801500270900220716631964293166135345959010321985283290200391662226951603224781012177190663184929570229949116475241503706087708310704659045394443863162850021062171808727581794317289975002471862760818342083695689697016880026635918859740476552346961103318370533313309033517854999135624223925094728649890797204666376570675596735577349931479058659037691802882663822649692571443230985209269644678160210139171218877289554032983454568626483510234750627583323773112235815218916072894422571614563647503867781155666161441040089548900925655502748806801530395960795218473839195120845095059724363097737617551879346165934471056082121344438546796415185779583950013034721121436068963631535142834974818397402287039702991293921506289650846094371528391967204307570546730700779803810147533096731072980856480762120679437562579869286692033342513833524468318568372970055025925250371265125581754466190393939782140904774961071855423725658895147894341085545191426865156483412567920841498659076978643322730933135529232123488814202549041198952706476476661189349243497174325676220776593348152980948961338639724755787219798165202817833094844225371613169322683614156420274169725239188389899675170627203016675751912282935743733932449003636286310517179966293508035698527541379219477931240248343929296722766244896150542205538499918975664407351674376398244856164016617316053215999570424461336902471114725931871660628480337676805667673612486272438145669150715559943807930535340052921586546175336057301917400743063364244628875968001745168580378425891974176326387575273006665569667812687472696311378495419420000390143370126510575748615149132805094578928161931701118955190313204420945035435753075982834499703291044527875063519401674889760407205269073324133764002156019323742331965744257652612302610324092773871355841583984888771394367104054181930251377208721535870890585459477220217792973819547487609083266662141867594698631384978052377019720141769837952283210138581322375701994561480884693421407633479093353106701938492668130616116028113916441549994962237906890194959544645162996290110143800398762207178985813056874861203783159967065246687826616178444166705913227152884941239483064713606709721879787408193021107098995673189719478491169577080448438791138658124513280137221134724478459607322468883006302982282846535847769193236280841984738478636503521605991370097359563917126826651706958225640412134592656559900879522297843085219789390879928540472323619431220199837854002826767142165560714751909744663652379225353767827498782372202642330469923014673909980079858103942367246730691567462603232291534982761994549534630636288710115225738412752373336096363329814239382185970093141904883206578452704023371634025887118920466136449072758962573932866461637646842706647349646413625901594764636777249768015673642098847557794959772661325869454417052528231315011750420895795635689763799099142948600165204209507336021431919919616979072337951242850938230705598277203382313308043407075312102237210345341761717719402083913420815662466521520500643714533779281062556092483663286724237813738608043097291269656468011469508476513303685867564760945811375591567591126960897265081530377920151992061318815889536538984638051351247005970280261974771759155472024324102874577005573446104220563579162011312147914285744812302409884090650544724813395933565051171503529482050778825660516212723750569538137262848029879531144227357084492423225906112721226960418030868645191117253811291406407284848097787595272273166995581891913401777393681943048003167830330869051524151025670461323269876187294015324552536530131299716669698461245353318264273196969058460299667951167375652293944945262830712083199009621505321832201481882332875597032024413777067560748083503149717016780720880647995451072811015990995398442084136387051744868507694993704757568901680309507685423006991273266243814896238845176554407771775718718595258917897476966285241182081003853554000643996645829039663609890381497921445594840079173808223456044207169210816158558749448544322937963396944738557305072667768503241862109905722204703882531985509232356788962292063354961403124342593352609700451298651512160936350113364308175228786091158754281463922955318095064583373366952414290633514817538764768559160662677515706206992849103395643690199289592958009486177472479378381416872167355140547705089078362979018515042021866290784501807090319434984665390883077894101235114264641186889837053083072459340066125504822001277741041654161008913901912591250436741295726509225485435430732217210517551166379689576290344933735987822025188171196011232903898791251015818086289801657339483550269143294740274371841590101927485081157043903239665316263790554615968822466104545399793737333550289833877117036488172152819368314403269185264495898961641151220593552752163035400707306867469831143253391206593074744643176386203419104187667402675500723350893763589482854583059379039763880070926738264783260952654736447535267895753289815125544306651761557592784669793240514874216753228560369877651239831171449123967799790975390839171624985307884601631611894636815409552514114785561872708278203859347083519845362425557836099629466752969041841092756955880601445882168711529739949396471244398008560468448984633825080992160760909597827647507275783265964687790533900235108154629475495058945751085258956027544046934068919533060650851586840594325189990821587978780122780284796079855925117810881492960684634438715499987327160190049697190342396965221895606945536637858778510969938544543559012171385451639907662655721286328583745552260983813754512814175349607743501794188119283297785494855563043543088201348241953755292636751780411197147519412567467319217839935218292165339414062155119246612845725997974234262147549540853183018767384280152869319647074165528189384555600738512537185323752980142348497111936313796173396881063506378724860467053448330157862898005129249531641813108391202543171625605673713799518111797664867126094661469359457694926700479854238553672135003915733169253446172787535992757690320478283324081243741794818650076256992895326957005564380850950457765605672535350218350282623485848934441672880124302991727558595624759751106913176946273130138115998559529536528200736363218163570676208480423652447630777518109590624815682295245156216390643118382910468162235942117699487903096157674972754248571588571387599349642242400806714905349509972350354221365172103884455992873855951520040773216138989164670330590374969356074015298476823841281921944932891544886916884273777696213675652179545812503082371103385845055724184156309162220879942905156638924011449124121458288528401259652570638388916406638239881648070200085116885981005423948839344883447382125801508331029385462868076499694915989015563048418749395256714314877183933812301702336929479554085047731958982037742367639906723881813696124042074609506285649677793675883212855025419545302441976158097208260288582394427656655990884344110020376479509860822820021435452327627720579898303727637707721055247644539403294598097526045602591186329791579051892531781943895915140588147767181552652526572584377055270917162407470504698663363870269190055216534292390586812242850196500498070334046593095699322585462573085013808638122568181102052076894539048649277174323537977442689715262370157220286487417272120101773330251126669450856681485741468920785338038816250818574769455343793721771891505825984787884978412998308740286059184020777580303240573867668713668044482411056438163593007623170421572062127638652857705394177213254219879486182431861852404733755659960632624559686888126448843722894606677233611634903220285617686903533153132408067219816432205213741247917504907327434919344357222867786622690285865201212702956976352990397146613253925572910416624682307069047302658482868997824883676891359091754397480743321350475129693790980974958941116955984731065211263736856948274408090999415267870201840630149906295090111582321916118942111259378612720761564482922652935801286207918887069801670015443379124019485065626787103917791718194149000889669581834426170933340500819370761378169022055656101971704733740659516612402652660791779966992268538210845303704672332179849984135264245706576582574349681143822001644893830731202195140768440661901567008274870831670278214301191843461373875260183696577487212278970749153530607495582298625786392603540793891444631344250911184531658755427817559268018852306569981081062817548268598315765368350364719484561318742422885102750220568886994276044534370613870597449475643124294377260480413894656761421931650977566766566614778702155488801264536665642519981340522537986460731701864822429344312354567677159471841631028423804115661183797416895619758900613015666567379950056061124095888912233101334334879768101086844522489478417456412766153746993594793843864704999004805550274684319465564095435086864966561131142027819915729053583427279128817121452250600929532022761669375735314451874813828422345239069832375446283123307461975026883852585090722045706332479132334752164731498290625044495466375314806029029136548990998348535875824442143972941320087757972119209223777121647505933839165341750083050914299937056272012344141613337575049057954882133005788992032977738905761056032651332402736023578792353272925290451196986875214949064552277670789710094277999417443179848387775017919404700137338184995396766622842578542106802915665501578836200611707800750499292443462126383275087673834854711271632718488873490116616078521748680425495719924788234092027863066310989014301391235221601745982448703833524791384752717792964603872367707204952832600994000224146794217136520271603814579995031297214417512254686171472653151082529139656431623068969523156049936384541267658400470905995738485744171957821792682013899206339769475767995251892628092970863410912916388032658666994161419157416252258929952780936274915699340444311538144998394286889211062440135833264128784189333301026585482586596879495016758279156788685060692576668503549604422854304112744307302644740929192839227025862937387632530465607209368496822214528094573111914391921149818572260535636672028408494435520819265127171940914745549651572819265298049754591787822536723982115811994796122182915717345471520209637104057884411075984032477710867241778439082731959320724890509497439422299560995309711790668878112126398496638672202383363292966870075661514018941608940954595124976658464772958378859558772486747521799758553868733014425561011788628925663275004470806495004771298740460320406771412372173592164205548011273826133421849026040128677490587631263721162243790780543629882472451671380213886150718987545104060102724157062371353324285005510341230799829204294225693981299830203730990526392726423657643569161969192827553197425027456854170438267173012757502593210838127929926891454565026011983274572020339854433214210293030772098430002667838910164518248259176576967897973669153470759134155704305037593127369808217671488428828236112261821490609490592118959393842163755718855351622675327375390972532193986890134460308925155430481050257751274804378792241981741046701534223180593172651929443563051177658181814002285760442995953973245258816291965011426912210957776584508746683990703619437550811663488992672381021026625709083166155814504184850539465333909220693389692158540018950131372724544549826329635690018387907753601236177242072648932566501866333341359199507100092583544692404985400931022099307596033967101095758295353497988968886934126149459878912007529928141631206828180790881863597879676766413407843957275782178836678335832941566366274852823877529107218211445907556776516172942886025572265091294243459592865158540046863941188190024666781883611087157683313456176053249804604671146117410792494572196337500656608138070283549766029341775957852221064068726699638310701504759774630649583605367848405538586404955289484465939747104531115889356243533556153414785040859131348819266422116699983698434699956517845934348787893995927659524040932295073545416978260611071907062455048701478439555344583843079941678341123605198828245497044015688438069075056806597727730772777864620651388128302708772667827836413203529091907616387921701585752333673914845602514915546189003135169842139703912425547065869031540171154624480876684503390350836926715562329685975542661990165386953772308133199735146918745076942130901892312330535413224517242293662752178741194316264083232934584352901043105370921910151484499519653666600998351487681236993360838267848177171233439254489598839689749195190756467581027949640694707399683309733436967720358558976754923471269238057826304301535850158232109521752191240770651066969339982267475163064626482289909494056435076818823279559424096064758126712134230535250847472408642425233992946341219584735031634405996799995403132466224042546892416546558810456564649170449856974719720455588582612866323360088234999935735874216911525618715015315221974887603756029288716007553553315902207906285163187631943655044896072932147392734076068495908356843244845002502923774378489128064836776802603186967932999686248124357365538208282482209987070839806972872320754993827887712050492166080910195525317200608753027356415480943827924516911132003308943850873935944680923887875474858381878608207862040088274043183662003457873033376241568048463905868974334578956495933087669255777096336590770847054116444540501665345289191201373461951851727290821763072990791559585313726308436483064955529034839169467107643479466177002975543079940147827171379731268296982266047705760251122464000024100261421592416532982439893373612110235181267589801276411663945565249939947480227877406552787195772477692920151574000659616544514657981672584367585924508088373481909942996743334503930132778629892171976232575785104990886889173880482816178980917693772317987001845734219059185035802696344633586905615362292013680842180812586721114056281042746976860606721636874323620588324397151235882853296945466982497857438627358354345631706375410126853276886088344572478386594042315463195054748092912177261362500123312758919200822387024821421793260279809353238864264892663504871948464159564842704322312692043433069624908892943433796908643288661596939081846582121081622094125957005455026001246745531294195852125578140039455009100321566877999052098129508165121665264432662414777160602507063621329537343289373525558890205463269319268312482872164339092589951658810056032304006353411961196151891928677462596052383787511980913525534453422293484156494983392128014590642296261357935327334000424078557066579884188571010938411265641081040847454242920001046242723705091839945198748078421237206246523664250048838837366844897962538295868397507392652249118104093689381997217496037333513506357653731193781317824741636142203618455625982879658111969536921423789132629090594570561261872398312402871707052201662013368181619140653618051368218202852262941952285062413522672578471654679980400567790668982311796267967647322727477345700612096369498134007178177859265756365565209322327418549441648754329149761644138575025381296605613990159370444621154941944013779724161575399694925651314784432577416829511455844051011943094534813557297176757029216633042960650289309393965806405525624835954658886544940310956774735564654603426119560640862206964198490208445606586471933451930723252610504996301769804378041916146498061432214692725235213016625580351179032556810993442324808013028723266647875986003101181227766246849373923795072192536549768253019710080542277770264390906441444952613576075714124365615062911891468674453407511706791462604367993222390261157078881610317645969601196026465709282877655596290302490280311847980203670318460171988724663228146018755950748381770930154389905289556762616521597061847898064711452358030615063077953784385958332495708868726164218343513485608814529310809113993528159929308345790436069206870088802593171724141885832016271957095599288044511032755083285056882480174386178820123390737706053409664637976324829468399858481692172159233599328148509602895375145585758051165096210957957679703984894737936958316715728495374664443875031466878196537877936937329438876881945166593645673893272881267768799875739998438174733901497783274923002702406908856590292474178939829426818588170681450180157865971416297859707238060452608489050492805143384042773258971141669578443573183974125045845976540034720724765381735316767837547876534229996349585496193720373862903350574880866791426010272530529625918812097246732371070927486792944402256546903761354879394475562253724520064637568725096734512247722742773927760780114324926409559207850333975753636486187598491360135083651734463097224166209154270116078488572103663146823786833738331552194841518408560158961949907936083174505462112686802799736879761615180072817894869126802496651643874953686152767602352894888063943981054077165248373814672607413081580382902720617151699187064227002115551483884688814656847921634905677505433478305946513687016416841113832225366829226187018512149907124989745823133328871259704225317128460707741009242656062707770303997598897836624414041101299764809046239771391907909148680433267222655418252082042806784845669217451787621542500719984006241285019077045144731286499109580463739139550744070914093875666709141612194454444816672811756811397978822552901910115981490051149631382264219624711269813299395852914947417603228271544899086336556107044628927430852442908553587635534597252796027212795129336056701385783583221226343520593230459618792060117459063290390923207070427511682133251811631097185459200184090227694984205126020502486112564013883169929577018761223840641859972216240380117413495173541043308401210426947452247925727655305928608300516316351914999715631782615024559913225704804639361884047788917142993373987842319993967419231001134772960365733847993775240360967251666013625055999523881306385685119068182398357344049294425677005310407687985397163890867220551750329644387042025228857072927571804518641436009107941093012324500149441217889746060797684608024291037486153264071367911095979786621325388801801988232437608934713465555042763269140875785540640741955825363807322484372349795842004277399878196077954818316125678573263047122528989281351533958468111249686978391337650141780247141826478640015642409810895077360910732037167561442270043941409064676882288538199335949489469409394541517910352443111851327681383077342476606107787789189904322581973838754231610579409715588306372326255831844205765150763025321622137478268354828663978311189989324543661143662635873632339840526292359328000035610943053295620356159775561254097246815884160768968100110933994952678790893927892235437283668509267375494589023330272438690762405594654093439382194053047103102852623626991778490333989418855193481079550808819273551324414831566429096882544548647928218039719959175744941632786661957155599198716215907738845923422030605596137718070110696855746704423088331867084361282068253275134084414828514220624291590082745000894263036482464237724808570578659359875524755791231626203874635867765350399946644328341814528050033797576737812161726874345800232911679810531272579914869168508342667669827356028165031987124376482192088285800857435289463213793225417096714302377471248732572907582698360347574174696146503480734689965766733451108775493942724463584499558348402783101868782538415308293432121329962287977806477872542260592585663660691114060745573794403261529523017715883700986698063753201113624449154393610961994533519142912277347140991494547318236393492063236810893952025308901144351257723924270111197990286166066362298498978211940877375873610714179815307528540328369337051652309853558736928270074797865728305370175220849492672721948608499712167496033831699508858100807178792051648194681365281943429813208854770062882653686706359709968241609494103605925824805732424247328302580449568466350897066050330859783180919895207447367841776078615571458668971545614601410894437668421151190316302553367755588428169572272446609204943825394386240528018425018023121180559703592164866338947139886890781669759778869941854476765174343104426321419393717146261733335538651979831088504492915844020763620153210678778088936707752832504857785773972689796748646069622270677195450984859225857026067963855803119926873673731153099571167839872632374892211769368537969755603061433531812612651444718907305823231681368443287479144545322556955590045808515016538336797042313620381836973816402954028560498429571470815071998055664819015337755115536341174648040099751476726404635079632292021548916791177568514560588271907002575911607170010410813533226803199550976244582244266367135703890043552145614781544073847024562868332560592205043011707945679520809987138308046331942552961283074904851876438401734122078386081111708687686156854299269696529475369710324538706139729754935994198857361070653725300498580080187818568694486582551104458344513754786447072775202042572101397094393116671212025807804942748965661113324448484408042385656634676714556870128186659102676321480417958517875110855494519249251322693812879159209085870185483495267479346967263185442565596098686056016892473931834953353281382234553546652966700032223394147008638753846430973805723722111099556171415885296731128578339043162105265797177557485951926563293517150318373502305201361363723866884697987554121780503172000698154156610340504992171097346142989450829477674423744400041290636300696706937064523409550573121950257048893595024779320420670604921820151293483682783404413835643121125536303802900892425014150905012759854468359319071319539793101134096634900147084414079570004953548619242814469305714456338214621064695777142683359928691528608585820865192042789362070137664539561781535075910766911529326475419812306882964916751121325473816334899774766637401266780048729806023861601126630493005341622476117396387441933221787251591488815703229209430350619743748043647525518817079500910796560355692982646918839932487840148071496689222229840227612310891098224685921459093279745210424917459883846008195251927446587281904034699387365551746192918530429190257358031459662801117785218540092834797071925938778218174901106351674177917538381780470798136939199415324153558092657879715834973977159200071231418236971005516822737237226782316019233978015330268947384522589402569139782716323017223991103041076461324916828505747532993315777128632788367200807206263567507903416812892248563341817513183217862403758095655047511659776095331544829266991248001714729224968648187466371942659953319298206394200679296984040571903409407502777756492782467223930444447055501779219032896176978602097929483087951411121810870099032569886692467614818555384487400625840134415436030015638189847047744424728601483113042720710341566899996253542501008673275764713378897863680046540378121067529035422380346804708676555437179485561539306458396624538422949856949229371454479122825074950054659682706253065892785070353481398301985205166205583892212151068784102068275489669263724551210587032903543899699505285658011027308421151852761260180195444680162054444851752548389416154759939331968725104055662589018936186344430946330220246387455765978661572067544741466074507253398018388326419977178631589998172175381809877995003365543825747118102931955488448876806233952642474766621316592671885857729563886862008377536715888165833700318621000501707549890938805681523764230724288103448672709611683783054619818889977851135438892948304693700345035763049560345242478206863017394870060330852767358104075492973888879203083254905730364199864138947422738198185348980603058439243757660135599878165292736824469763840987582478695869790864045629185606583160914587479099079802294433753763424283192715172597406385706856238593616215024267402614554941336409723570110536710147468839511573723666081863383875288615321376119890236826802022598667404429337518198613071389769682512639743264276103887233944623015995472451562854284148042624230197681486114508323577331905971048458236249389849734257249902619027794896445449287422506235577251067658945109838614492249002322780799817825291551806074601924963157933574328951069238313434887338040579681792905467121732639404563619315616606955934099794187218965549182119325221571255710044907884780175589792974198505246046894630625929494823970589913916004821550838510603190482918315372984084109412700591044799059762964159281482395785501969554784253339297055095233435621716125063856824479340129153084616794588811873025699527963171537680856971665970781189145507889142970638233405726953278888919110964039936583655827697532955741109591096060643014086794226488759170378475855772257857227723879667054079257993465336833948817491765771698472864557953947926019223143632347774913038984035079549275258923029804379059484075524446915725598983604082001345801738305224231489352400771281592097244804457467103052872258996009393715394899396913221479948864273610869452069717380763397106877492690773403599801511364351225505785774243704068622973610022076921674437362280110333413323097944565089896739522695349676599569306575224083764377877268229118876660100019125335994189245216697648682457147254786666157620370525665470740516513052669730597380800072280589198607422460794494829448032457886089552776560978684110491805051624018970141135834513154339115061579277667426505295428929725768095759093150492642657908919666170429486523870593592658467794828394244892707838852196075237818692063771847005324488272284027001575897206218435860830387528894493959452048683945275374835608078209852273105434370038029110322509082306810883570605470046930679399868000564937887111281668002373228055298022785802087385407551333170019399707814865677400432258415959066601854667765360714427124365685736837922395495132296194537707991093773898084520081803092341368381133359762134490929477999339549145626700822061363021660913270800253216019646069539707713195730678118941289739906688573369915650124469617568959844419343677007523125420612582526643233221415782429806140734098102164800647421812576830393508973065586723722418900953524521151897978112182789864001819107586578469983592534039806616028921999524042287825277012919731394331354816570401804490615203685645104551177507391422910952028448229104830907862505327632094871668380842126274319125824407012512599550650866641833294430727113208335626575526174899088908855588443580389268580292197335326635970195998688326416251543783561060574627727672625402092755820426203956584476768083508069618809520485161390474416793040033219424351016455270314217582730643067622811211114953529065579499633137502036747207990922700280967400917535288964163747850785285220608493750253924633735346411333322937944719870506655396592635263783022112199001357406102009053685500856214475196945173776838491752726539220591926828683076359453006683778095177240878880876576493592933068048620460836404790540338961367145894827632842625839704868999902056986176392950653789769519809960321345898470231305554929868843243006105003753292559164807645870585106488941977744280695722430208607152961434281370423039294853991287062181590943712601540479505266606494819156940168265363462051004290906053165438841498280462395445143230065861292388182260329259930289015338977889124362218079827368127621486889017403422788972260363598981424441900421521242693213644288519244829699589571581629485020202988768369943557944345749901610030988067996781250635626850387272916426685523990178309846089868741362919010612671112782444625955172213325155241912025440720362883371236384244600296981148393413870886228876258636145442668754514893018048354339955769327605228587555706492907757171468644930797181088108738328867840652264877618531969176378123620336113070295977397756769485481566100701282735362523201951074942717096279076085518479158790688802684700564654727903263963486265413547968542777148717199610508685330411817846128146570609578477715890508814088700882063719192088709870760584749679876210870984961042714042308641746174406338654500216268970207616909005770390351001998404628904656139984346194659739694292835083909755872874746453633541752716858844895965475854650185117337263245315168135330359472123809187824559215412649193381322126544601457581299854288021006166351187770792357906425737187367144938081840397857523296292289087121663416920873474760667985248711205463972815644723505620233509861084493870889751680582177208834839441129047336478442896251129502614281846552147075394899566236491145073505487157746958275725759588494131631277169109257334146196409130764477012672019131103362013220885381555543762516492424995112756635700938820068133088250428226426283373656230452643400516573220192278566628145811809435454420650038902004921094143041952855151389722534687234527728447623916635015918097054676490996021615995296850479439494193712058478175962796572990292289737962722825517155356948062516811227172581071918314981376273372993494296202939808720127568683635342208058200410132184933801564718710798290244457347299239454147297019261034419267246890301598208160782929044951941396615157403404858525671529912575593022034656240794959920083017784933852100927469273595906915322941238878028675132290173865469908363905955703692693792890993029705697163785082480039614341701883158866507101312659589459694620494049802641385776036955551091428392216164895070875966294244201194914623310842481891540807163673762826543420439051348836530657934320626399098170536380216395608449164860581313523128935901528330092011812642955357842546028134015850402915885209401794139434654870647087296140135998610680329532825333785507840486213003284684903608971589048665637979158922553928489274773436219071202268671287204637039146601333968379663524954774746716159616364613809910995720447621193315797790401420736143980973488262375342200262568865459133215089428695994947365698723851366589541315221822153804880450453907075150300051878072102880790306453532872727422663351146333973804795415272284004133446846751360590539100784358376396731429897093620998445100380368553659349371044547589535489354847855414118502238735169424103423133978830851563110180039269270159082149797039142160747508418050578889883377553336716729506456126209759723721577585611094316877165792573042888925159466854341500426817972396420089829136964006773820445924247812754215357464219140428664382133306502083292416683900190204718964468443900315164514042690925007302530401056655441422418442234106930990929083525193491140174405290861670952635630862502723392240344755951188176529408969151369720389859836140521122808170918812171026299895604760865892631581578955693833280423481094350886749554248938307016317593878735302594018646485223931904423717248516559289336531092122601665122954537292823826975051217324574185738780797157979094596749081716292156198013202479517367648895699322975900633308488301887635383189093291596744554083606767042797081356787708388977449467859339936225622513084817478821765938849224996433104404521286054061105316522358894916855710009869350546332398392682672811007673472925858198564164748460404814735099738132218720204035309258551843483541071509501525141747301173064891388147516745840254938111272320206923848256211233356782715191048459980793463997758525905505520752166285565545546813898479935167198371034567759708580460512327324378918838848208776647554945420681502900237338869776645887332360000646610589186811833534433391373988969052738429938895788745556734196040236564280269495013381838237440542608780727458273884703282424075718844437229032205215161665978096600279956234556284365850469441993232873391864553646937560851519501873841089768945273907530564158069726297781609881918803403523236887185298443324477266223554982414769236690426615498459489947979305032310596049949594463962692444081185317608705506120846453906457502820499001027050337331300959698139322740623628914039110950250572677509773357484403554661206021993172960735695902670404482384731741203437234483263192110998332672579678563781991731215490478940712125285062567850509233327938047197495951864041515856937317869602684121260062040300106279051339529929421933045560756098017009495608206924543651362106845086446185214387693375122474447351970923459647331595803529750297075058183026372907821037618504739766091416748525134556711533654683106971694881562456076842651608749826755084746444347311171809274655883203717158931947574471131413115725309741067566405896465082766096058573872536355215341532500258076764939781446967775997656269988020928176539982876035072767585774970420371349379486802711325470888085894784605912531001995076277538241938826130504318887756556136562391974506251445716693322213791656427017555607009476010179735503063280489270007631745004576550422890971096930326550930409346428309370664502875600996172158037372329637042440606088833304260329434324866348351226348987354391378241651399438343642475901508007225209615968246880998151204682681916452230873025249583302673517655615940165086729558508500197734508571215942962081979683755690527734977138415134173224208019624626823127919246745914483393930685277175765647088151444583432213418229263356726992620304443802476448368592675203914501703753114684989156006718750038325222653657188138987230117497481012451302478512399942692155174338255112225746460661810348298456017180057576838842763411119038898282919877256516069194939597822082068298869952042396887539193177789523975988217443018657920278974714066747115538928037573830052241909720429226204141114682385219516776332263873146553442208897214496584435388066475135494555049839313489079641189836790507973660925639701845362521179068969689087999372896256560168862006384227615511232681796692094722689664479913962199096219450875624546565977486755689846536974346966038539864591766723626997371512133858785429081801413901011927410816892230686237249717103404383589837061330597557549504051665498141530409344722400364492415650415124115714074610282481870850243329324242671383298749207637982784189065144074815807894596130573790803444825082687784151947721397501081168396109388096990889129037409480277304078618901157349834931547960633965218774701483020292593045599185504526483288480527654512386422617308458765525782405286317635489395654457399702683726338042359758533257039112198744837708719874479885872268072017429390870900331000876978309299536945241182922129366810037544193774811614290021830392262651727728177612838417729885771322536227690327886438850511095989366470449133744090893806972951385016910678079013169822095327069913920597686336806820190250939042351279612000490303168643616782910328363348402882498302895999804785932745289477004197015278814804561199516214237730365274461309613904448558194828073584461937795874739254142661066240079488156986465650078815679133216467804356901819004279577715482323350034793274930183285399727200737840861098633938613395157049133113486557213202434686745111122332017621483369615823286633698767974598583661299171902074612632559243650623738435935582755294196903042583227814907671221050845158106732761379785556183318194615708716536305067012657190573039873982270108167859107919137667697890339156638242688287074480192715911216046107125713981204013658588205621537398663551426297809746318834539173894382624620317806809621052427515274998818937842203804539941541211777396176832020119835134098293101957027828355879971104270227607562151764807617577104380902728002715972577848587823711352929537401240622416455571524443817294159133516135179564192834583228400255254954279328931671614487657711198628292364303752477874904113625679687212474562818055482087297722768359534903064348006987421862863654241129234008123376858930659465220706902094341958433959664955400283079134992845699549949671123747745478906584874209225840517433218360131887757618038025176326935176179588017993433848834226301372636045404292633371011713588663575686504367881344003215300289679901983680866721363769270123398845985596956074969412950057884384832763667683142888735992263459446812915273262959445286980511537442006237097927230639066117332709884292203456630632155897909814488458194984107130986999448334939118623790221973455467839135286600993527349228382669094850852542058723174516504357411348860374762100732120966425274315260636044423301130203657861378056720509247307826933246575470225792407987327668436646115915430267105578113432875331847504978271988390241236651576416962856851589822439735705975561203685825476917690940025069824240393664744896722390758487370463449448880667546401109791843975343180049177681247462867196474456333863404280064290839923253386068161950055164108732384076049361853832395943029818416618117838535438493983353810025156029231908715447639840243309388636159521512755089869901811678672467396456679949128675799549032230746298224832887966755918521378827938122353411072160475924646767028660426306564309718086672461846475690619058265329739608367082059808972245421684158693855168356707560432718753172110024116848005467748133512486983414830762168899090525602641559050801907060149069791825205679300989819708917137674640453530959791584499145311872505301197161419099940701355528702402639609859847584212046862802439878453255107456374373679508432342117305661407297867437402890361981636144972998375137442252349579443068493673542401277421175213695218487988562055264891485007401677897383680498828956697138292352530089931474546128001548211431354547611426929441956881146797023350803607580703308246450865248998567791475024141959272860865598132212516721563018140153085612086416619500945968298131756649906917650851499788781244427859159262684801298861130917042862760366486033921027103614350787070470206177247296349266426349483417619422081896278070008977896218301159816630144899635441868528471732453452319991191799697257119998614906403351430334287310434332605048637447077189724776000850198974470007783739838527475769770687571506933707190284613519787323174763429235688991122552831081263739268970163333890723987807264934071946367592647194517956221822467587750570420060323553639975057116566057476160502116920071026155537803407451616737271879593443848631106329541017885989595685910496045514493070699499429721707918531614124016983618668509100955629788945255367728092048036242619980091337648866834706095715848024155842241880230142950874846478521148456459922664675981495177992829237550486339167220113882150416078036347919144703616076461281838554910298951121816788838205467839491317619416070321521019587918123128978555180507469795156820731501152913221315690418407754084653170971611024625625985392321656559734048376423551679018016656872732172956503885192236123365863489309755083166003909440603209069674436934170979669052280291869362382945497164224474352109650088176102601370626831317529896444709112142437734278198585010828809463214869629011701883183071384867301251636728098551996568681780746572233918372538930678404681296532043223519947471869450946842775413860828112255305516759891243186947252274991077015643714599019005889199808300614022050954545141793550159152008285420000995173323048006278906293470506348259056043270805505386158252979075631971370996366685278016146982378042228117444057620270325478316036085657676711252641660627649657496240528574019538753509755835263489896072653889517882224589162025451290116285760990590103898665742790303053254054612184757040949108654702927177749324355978227815585571535583942508019085829413513869889803220302683880756594203953858328357862255359721523428803169609783677107288268233829257232944153839006920811210284340757242479101699531103788221206429603268765300825166584421893630477451185706032106149665141830283449939125360042715029515661855274675097706860325601494766919966802188957295054244495077800861090065420977699333766074395820474899032764972273826286145751500918717841319530207339566279096050001412690695647685936512207000683022839532076286176598181908688199383653592775669276042503780381924150750591537909980754389688988626966849268403446825016676717518696983613768173322671255894453874103792029598176363945866233611048474083470708813279835073319019815175622739605257126729601800610635557565416733837270408456813351264405620498042999688644462306341576579414516860849969842550328015528619127484261350084056350229448359766886736954601579281357041181894970927763561160508888643499146819303205695348904795118934843638016629748887937364340641488325059931744688757392349312716709099488970935926516701286330288786375311397346307839492459233279645996375187992809902821606999615584681458254389305932721744252903488192904060138232368819747147586018135092276850158509915657713334285409826519221842689053824027867526194999883950156110388910548089150660406390459210731546532540230559810588529417299682967717034946104109742412029059710345884859914935779949560904480120199357448859476272188342603771640762879481982880194942445832804623772856871740360878320638486099404597565585708351399321448689416012781303685422882103217959993507456532374501652834418035616536228886661228807707168541015111778612611376847177414298419559691407119818612040860538863383966336737381483171955242174517839528777774586777639916270689556406322026253254849331804126246192136584238266193325239121624330364096937395784744176647021151893270322672205709230248554880240154641279092109370963862996638289587332297982365281401404031417094205189618188904056549657612258603381338165433335912848771877183626344808636113967020832445669987771053886114604980334513786072614254516860118195303283991388534798951543112219026272050411163731257078634538776471317548039352277639405479644664943367364151334960789018966765776206172100286032516906384555411092785977449465237895888062489207853077209663305384585732465177396552874972177378204870595506730092654077030569158243715052138244237845057835015459317003741862627402146496360844722997350989649796232633841010584231719844499721839850596273343999675502666478105376560800720924440707870590078081335423950165872892144328547372819647963440565884028653959005464294188472565490666023242436197897693228830398407285953101058122428296405375569571971717608556811356109381124981996049646421414688506325163257227697588421964200730338776538797122071233632418652478380535290073157750437075575649424009607954659320958865697202413518886114840616676802604106598870010697365463980136269504651007542416685975225180764061299974152815311504278753826033488641842742010712848168991973785065419873796883144413510844186947101705620182354032670364132527544040436072034043136801207945645521873113493462440144698234632433874975214382499682798336484516880931021599556142681092980576364427304545406587980715716324839861038216223911399564092744964750319394662108742929583021429965496198426691329759241042064889872216929568039402154287246226020351343809959398930234730115976869290334012402942351162150490977499247451218552423143771543594853969520478502255084554089490633153776284271017791394377769738650486159964255538535155260081277699547421856418061812849760147739435286461175184221905702071831251795866054913154681326224216206616068257786658108920179525674776767195883279337901774209196583145809815893924707383405500245591297144333454011998605461940491155945306294774371988455991664669840527188053651210766507422873330174009034766169230951798469000296475545064387632858842742527563567912277630592061151542253444793020623087209402615470152979135821132415889750725669424517385166414253134778963900140339698056481189812196557799244423494555810472346824816943942310226154978503777118939270745593324223093663945340127619535353530611020807013455357883277881769409728257477595959643832313718000190668591757260723328327083298858217169603726668306975629478712125352616125882492333243655444229455164087315287405930187186093021475447758036715679615769860235485494499168460757742018686348471926285786393379906949969032724048505347465407706105467255444207994716111298123498384854536772123131019893178338229760998878578520302444901081759263615905096255141606458788799988553754310282553506286180889387288576794228602408973734534072678561809724384165860434968658231666851067149760601483289004748570427050099705472411808241992404520589577537119693479406330119568552427383831214754223928438871388082507840467251555022066607768669634850499773104424474873521145099433319204459666224149746684542698727348270892845806214494529311363278736290045524371631331695060359049024788695504857888091485515374778025382062531606896759305274069082088077093255524175271293788609233780801764931280502999293194010539076016612582941099619720493839157952025517524592404370281736367483123417630184353090036597306969944017702010954766761334954252197549330642099406873432572392123426736187745683209964572001096495811280932580241768412885752324169006744672106110572072282890945882750662228684243969900092340325061305147789695871074925391822298750112805984347123019666890353169363395469304830615242164280996210705458965777270205490986829130333486769803771308283261546822463863647369050419420544603922546633346535686033946260737507277787564424096094724700912311480927359961168338627586056544076836973454421863233810611366524564414222366320619081040271534375947011251100794422643402739451008572276300310409618758815108889113715033430735397672092260158992954650288945619030603226966456809230054274576418463636473409231249592381588141862323398159722009625336153504436693157142042838239118451486753346948125019472451526078512162183155389520564565968392116307201750166522184862757262953950388481200076357593239311532273306599373666785035848157915169400134162337207846506498086382057425162814683078668561564269610674192782383734681291907898076674417997582420490484589821713034591296761139125113132845684940525351881494250434172851271295881860746498348741267101930555652144086950847250895099909597925450370786283694238529317658935634634771653802765257051014913931808795465866987069958319077291846047003964825255268690306072526740085749241116329732232202031382142778368133842450790032725560603007324434899429017713178052803749919867559437325261018831936116230539305396338602268435729043028737851423422542668255023129187366165465653665721350414185525120864066807556696792866834690675182207804464859630428103974670625284435583464451351221795882325434406307581181919443229797109604905439942381208148093307289583722739043380215504501607675952593787175004645684016515775077551701942429497570625143116698731005480819158248314657225877310704034294133116675107066080902697407206617952079590343974467198803775600296321604162797262136331475233757014192981626183337426999339113372590183517320139941433106777976384816847721908736128130679185654523707059274240340576184485339492770311900496394259305842306470134419179441368032632967735736403533166107378845059568931661070739122134468478386285593658488678361241876360180222523770224904923309047859382570203164402812084961974566047757585127267866191114501465423537899661877673707299435973941935436593032117631457428692062915490684373010137338806072485464203873687946849430207101848982082343112316585193786646115433893481177257852465977109897540124505835984851900117490151576695395848566544715166880941156532236433401345449775714539743879585973983034682456497918484183598326412660367160161748449205684362632924080451689734985766117890426396642195408521374009209572982959257299794874679531322294206142932490594851261797144359480340011477735583555562972169182491948746924074031544714893127164989383441988536265405032865524198248375910890813875636140134804900425434487877996822399673035922680415543879213421875616426852198937124590553479468313645129230966836916387238508072608379731693641665985595965682844735892047967336499142411183983592489320766333199973215911484037432690037278384364170736334416582355558408318856787462245488346409191178773112404224851448940795115740099770298962162743227650916187351693069616647833788675527903522667801495174265102564615242266627964274426539850166099953382892918989160105978596470616365379951435337577309498859769875096417451484663871798386058408322189563651802728265982385677981114492143912014495371304635721227265441783830577529815018350332438369440380123898087705079971062506337918138382189645253968134116027390884473485045141796624605534088537634416442421817182205621729405192352715326089218707081992177425444104608176258131676316379270177258272128568855165636672494116457231914265088869789451191362151064171528721553011072206217507894485777273232814638975106753611182454269746140774796288326526803203804054994382453029916813953703565624084876328317926063597764999300200780740738551069862065530576681521367911399285305333625451462506178190431655703685424504421993699128131959479702232614933250226994596892830538905778735056932676062867169471716500828306565535808831049249445154679142663955298568469956491682615254283772653649068598761368608146966957512215045394651914743492446262145177856913091786630533271025128183194991329583923339232266105669031202576607208113419351859947086164239601117117450432799342031875883720236868942695204237233977272864953787607813986056929297455518660998180551705148466605738936069980262206254838533025898908775979242146187822768311609958131254778430342945360820718431764417699883247085128728032735411595430497664410511205167966663627491266756061802040478843437167345386756657979452396114966347640828871790983620921087805848885220686180957166458351991847643881828076108862061074380251588814026432565201125223463196182187456003695343381602980344032449547959475152191250386245281138910592574613912058448995495721976604820225298047023695664310790069396928100214465499074255474588785174680667433079506070759537273332842523009684034058249897103000671019936912174841990440974620654951832867012777701873487577115362348676496696655040443832483960899399293925443360883116287860964400672205181990628830504633594387123795301517117483266978769812874797270560021591923421541665529031264765522973667050337415020096087082717006980743783969048900571946523569162835361340370321815153443665563333120862541247171753022548936258762110518455655209970129147358657923273947638130474518316771887115693403117586909235897372987663543636840366721604362551346761750913396366616338219678010197995916432785898395033662101873027784279259140458123295624086159478844515987491613766744484175926679480526381656429721534300079789266373705601845208196340135940198959177214252777008715072825985484479926280215368423714939644553196250742277483346851006117441150747402507147487957946086616888646303264618412467879699552491480574507419968127896248803722569733738776229984670045481873819688170241464838974149800000929813756292218206525243938233446454676018039474553810186259802491597699148334728603679953522227098791011932708847443956652933690939185471906313857352436261665964767258205605037202952200525128634953032117577625980777219213600374168252180547704455459033604096208639430252857687817672431009933390970577375367968150647618448757000829254675175955708796683022664975644417934604880667138653072208737631386622604059008279143421689812930249911317155909120731085445211211332934596167692255185275147219895883804360652909795423603906813452281194196922100616405004698415601878201112190615199473110417920456482071934692538936298147419722785304196857178172392289642624306295251682949009009218297237983312292898130961841612598917891448222631285742281813008491026377205026016690448809982317190311756916861735546395977615188751799842818195639597783169371567742840630411051158862401033755213697807190312259950568465185483831102839451498480047199780608488793047239549270058666426704330489363065324625441961216725277677496468457786834416118453280207638856485685134398409509448163660483106641625488707385226599593930710883302085891239063468543400602286553478210152416886488323658283140099046299568405486444856315528965105089469997296028262553260905115429475454387590591258350320510231383656087306748190409228007857427869085935549563071859104827548368402084539694702877424024947691524120352504991130193308047452190701125200499670662766656759436102699235853388823292462851690504063004739978477722434633644103041620685220488440574699601981649196559619838148128156377627053440396663687485724398958659077965305164573887713675177017424054473922687638362402523058059350511822096110813689669445895503278528363841990445418738593738939660127283672090493268344548041153057929334946194722011900243337534727018392399203612973866411321427900509951272715334411322116940583013193827879725468693395463082755294398814509293504717121690214286014855427827686396481102185989382500453378624220474545877283469291918210686369318926598788989244874179084807226112730371162886431099290915375223056579370208753982722760051438118716359530259999755875011557914580070869966429532955351743663460240741873144804085822150238711167842513084196218244646968728211750662208628884465065659296459018876494920746220366372141337371962326382782630657984782622984318498455999964106733394541345810897767061142110378759855108865785241823530649927510371365839730198886374138348927101753101048348854316890814891508766532328880604900236297968889857983570121873833543270333304408554396500536370520346614774931964577433188392457572782212755396717479982202095604978438905200944051832901098192294919779609562937885320688947076498690193117528103319107195918767794330661668194897046562685182852680213371518666995728422221024154998170734237927041209346680278394354083489513430087299501770937093269943566410854357517010487493123912834767048025646208898892840095319283989843700207807237983392941793565925378400735762190421287411379832176301586977391672496814904256574503998129237211728658230501795962013332888601258471712676541621453365879089123600438937719655811011879067616700182203841393245210994643531891321672202637432393542100964184639371613192954703358499421849287051787237151925338283497898839845720175914858292271655247776533634171851670772978702950474089305257280446565778359007511128659713862556058678885023820725344998750411045934580093189227528128194138925168618206349473586481250521680815450118148483833645879617689686967006453206475167925838384385874987160826571770377410404365440207371858866723791158934960084221191525914161751342557977521505536941647839531502028503085014906877106294327564798354541759825690888065496465004889091205097943910144504365477079522527062225386351431697343479404289563655125846457628630023202333381056820991052644920239786589563938160177280035949664200802011420198553972686601353034002807090932142835900224068918156335816977585987863604606870423386981864347734197379907620764533243906946010772588520094210351515805015752440780042579127989164899290671088973656695445694886646076513161262085714254296617734169722329778147777963772700127486912879259149200215251172726848937969363455985549719452391824376582077216767214761017609019666425070042208714742000407593935708400066092327302620424944943566995090157710851085615809284870766192518011173271551929968903883027324104836475763137948066467630728713412675274949531416913939941270717993819234584714020938542481874915487143945178023288290962864860876878281288564967471580211155535554152040046212347330276183320771357785029413952448565085555745523242165148388442329168101632929140339267801198576619454791695975672773807437742482631801635025985419018544931916465311946337642994116324783634826769820477492906013623826092575833749926423715720359959150026557248721730322350485828767089527656798136878948293862279208452714728439352618258530339226474316221982353480136755337449899103826138171005550186510548788396458757114802865542664666292670534469402882115997415281202663727214545583539082162864108142117629357259631773726150617454824037598601965491691627052825355136525945414897118759891768164225651723360950375599777569725727919439711449176921636845474754951673503636602768420282635046395500157315896437305094677641635157017082174544673417625517667647109334959591442118700241417384354583871869009214248598066401620653995811453889468378250715890891808848885015319852306068643101363351358761803805617986395132940633503206501551718423266695678874944098742207273633344390090897992728077268987734455372794319070108870805365505123868107768330541071964769788672573507491137696947783498944573406116941895037644225773618835445071319518519045247989680394756080145433578240025923604726379668139928157719766764470945910371582663635864620752839302354879673099517870763421375483322614496893201301966062361516615973745498396983660775477686639766145686112837327212792756681431074252636070479745423823512582073427722419391441947304475683950183445857153993145395363585243712118639187835581518411194580909743831700737353024317844991839037044060003266916667246730074099883820269034221515683471921518084740724371206209813422834412792832121938141525048920653156261824269382579253002774352798167774157870525582476032107647787924707630122072291629607862097211288879917612761877533123627732693876882281241256491133623755484561260211282601984540750596093705325787803207066706069022601421005151370720228937626911285490466215662391444329861589343336129108082209915897415181366227679578104993113232224704730716150475232998568251885377559131748805019882817797276012889669788450366641388219379029985981775371133988395979735316521465274947350200045859744468631914689603752307917960669419267696236847150249356574398949123921216741886222298891418630705136253759987307535242028451650579629564068055009113885746567239791419506933693679000602005268154742358733904112722982036718319706602184612124657600971481155033094222769886285354584266799726806504107683800604127029268240620349797412289082266989565603102362833958541139221717730260873008976362405614117894834195961341916194061667629490515070760812122074582256659439523083210163609173708857407218451947208800970996412109312848553952448400751039696537035980898868448646024358650206470998517459092407576622508228769897393614912620919304436017971354908305552551052428236809992940505976668837344048110569122712177158370612455021144070184397220293993269190591521966645649700938536742664494425647556448882218095650719331313941424648943780083790178944269437086621629484699992572471772938148275750893491258174905324466705091200641345406063139360294273366872761176359226391949505992093142805219793306982319276560472297088041768798981237348121276972070820377010702739805313102257740704205085737981184839722747654208627060909150107953639086994315100590951383181444491534621586449921797885848901509644195831123975375927625401413859332505872277743191777330474154092245523299980870237167327146127650298316400018808949886360991386901357590834001936586896008422874309748183248939908706710295827930305557704705803125390536207712083401227609017181375550581790198921958656857983039561052760477254455538425968416084575428083536072209562753990762464299482812746546377452014120311755853268979303985718622740000116117225858512802957189773599149201535989365500177391569828408623531516496864155815024033174793589645337533434363766402866850178570172122066493417758558761827531325584969187625351271330748928667544312319093783456699605210360153162461577686205673616398035647143866509635198162240804107198853841106574492109531679938481060437189267021170986748383195612950694724436358825330919490716954864661090117680745491694810715710427937601165723649533922393743467043044989388295876400065992065009420671061186907885932807487835360143765249046633468800173238211643320135135450951607810742222728352096913965768159178513845284379653796329388515575735796717472467908365242817194631904481297163887314669016576360476618145675064276800539144481906225634321004227380345989944783553420718772167015540036807985911655144073753773251199359007596341241602765884531790985010824202365816241839420785607963349475973469992614061374983335925432623632794466898995809068190625531816664243504248445228517461777879150844393514684417134466553492867073590610858407725519411196420120391749449358791110661287892602034573877531198616969295194949449270549427376822289709473546236161978187969841646163215282909264580214679026032659746715494658088065297112985479859172953376365624637350928939743925493961718221340495558645158628659044583187624031612447026228944779669531922248537324919939572965513622345656536477956641983333288287529848021610480243880172020174767902557417658390926813874225883408948271764270537267384243338224049693860565733706701279949084913074664344230475831993732065531028939482314993031021780498122247332157020659224062989866057970271631730510640633978047234742837642635003345086518743331808226141439358438376762496678398128314757623185776409175410290345504008957824182873522072804462575146427547943863166000985820102564092558811786879157684893663010391860021865737999961394924556078008051826878142925303819251008213626763075053765504014875244536248808286906598449630925745282789530140162712892617346216115138962071095984008163536256926948378475407236976292688696770926886343774028064708919029277131728949160160021530554130615730595146998891597277571591785298851397351009993162145366049455301979095460519861005522876385538746411270380794776346345596643030340865422402593432008946155989791659758928735967570744014916261959600818393714959563048220855945362008862162106041674720990037964365897209490865992920931416187093899151632230128138321830173869805377176879996577451472398254233318420675533217679781332629432326609075626802758698315441624069578222077066372167487477203641715866106800076678512004816376539285423667796377577825321287987264536109765154707281369467888888190730417405047534806787818978634928182957263962644046516394576340658312352611338803150971647765650621965807536531590899625507036308328403938164770854383455441381980339107465416882111454653193966863018541992311574873073783257932754338724769592843255890966188010913098532767044759967420730312692193475497736714697671660624750239983564868269757392741638216561544005903750150229718677306181438662959339700118137428832833570524413362970332720885706031150321460923220842826180377313037776143882371763843284833791824398339987054573670762117902653538773042957219574635351327768711568173686390668797704789546872432288934643789950905960904493693530930927453334451945268415711538650125879340012958162407667702909942435967742537924082095427550570015134431309917353859113000641125107474365179172941560156663882771978499226858179593489000887846775085636649939593104514688424904930291197423605917886346877204784294069948005363904960949768396555405806737023345103612066602455261862691177316524713521370809063269099220327594144012967202095747576684083019817372031218579258430791051695501671731450665125743708593826330954118608110187454986301439731132277690187874966595733333850551916021332054139446131024274975787183956622967907134770848277745144744009777340995214811399821798491469100231883000584761663282608052043177324646825965574608988563415024228622153996049893195948021927599209105676058046350598844510640907459936122109540648165652297248917758662281153744969921956519718425075211581717504977834746495572565197435252020354577623300891421882356002429747431223009171865188625793173496850954962082030300386196926262916145617604801821460982928409051472335207128603687591273220958102474142053369020337164715729979948599450334007638295114363242661037956221590531600218080694005766919350806476269125719673620752060853683017967844719517029705637592299671321071391544683099270247712069388850636529930940798114757492452847536771168125743166421236583907163247143240201297498677620226050017689711428317355219534238005488879368225154515009757412943176898618937511447221745725684747244151785051128764390661580677940441177359703349453758245892301116293264877749426971312477021401400454588412377305083894884586994765185186508604959152759120939307548569658735971617894419998903524936117386428976669859716865462885981086493350096843502801821035653733484777733683369690359949361245128473067293940782540097618713305248299867800082553975943044274627598537112796297631702617619046306971821189130233448376652847291490307807207639905233752545804822892322827062515810747433517470791465884270879933125641874268839258535051656114095084641822200889475350357684719744967687722559254589083306211846064344167805198733272309018987661252354257590470006034783234696722465494442929202539636073954068204999618864709262885583289466055945464720926839087072725546872502473215118429971205278029495406230474458985278757530259896102953126644204087201102268339184476170116888632728317652091017348494735693482737124371047413224256983822668132115205709137315755870514277428910790919802632284238412256242602495894010399757065864366721821074940694346739183093256560207200341755079994283376924948549248833186251918175769309592629519210144094845218100967249656929213785911672001443183773330657962704537590788757369202675550262327849978514662495128007390162026410594210356845833555214501970742550371308469536123540835011882269786271015192500935364432911350772042325279088286286137198133882481046452349327097698516570577224077715604466117494687821287776769563163166230057925132768920390173615371299270056363366390741002769739454200510038810530039678903557943635433044044508713126259289628554949063100069391425241790845399621407089061084392535537452329652041453666617055077746484181057142621216720124239811937887802944153984340464991828653475736289937653953439634774571973224192531429017147130240036331552233895985744473941050565626353204675829283997149539980465640179313800531078472484391931956325117457714700397634775063713162736465289296450445970722085994636096688046808056016087276217327563379695931960056055188043509069111169366299268913532936918148027583477951877973031926773514382341560737074058707969441843914875007839143472375089842546127178329176866063356139523722133927708398940869957697016734115509893154186037833382941288048857852157121066811850913894825944486888672345037164244382139688188684167930858804896607164342853320761401956056203896889576165256781089012916684762077020755843808862470040497219718000408072279890758250960668851866546640709895835654808835385180374570206474869289555771653342906758409318864918289726210637629964625165592372818544603338004759565696106684149335362055221890634924102374718748852998795963222741931463869983018828620301977140490664624958244683875649853132446942705182213081130255670315439050450757931488169615659549023984753242281932077637354678727327578376278096614615056423563368132864633208545851307869635856554993167013229637552260186127945737529305847358515890672433742011411854105328390375739218481366647270869549003231400668752529847504555082191723651952395045565788367095215846680775005978057182468057943483616387858621262159124834353032428266510305859100017181223391809361070945238194617436125112010416789033311701990644057233654872013204756241795986477859805075676206024677201013490561090352006784744325289447686954798501415716554868867554201002617263100798460262311533443875546840571608059890650460261395797891942282071001902684907593061347390703146331007660876692180779201682342775810984412428513303991787054982158597610452392490411478548592296348300800633744962332457186059923973163845446095710748621301028503917813693809952407841282601946512197688668301638802404126930686226888351927774367718983260341985683527104373749508355205418911744235477908023802184918823904789137631673848855961984793357460573050642593542391239071229090226494098730666070601515456343097021337823690339304131277983049595315386162110210565326651043326317503048670389858158244689238054137216026704589161253562313112166641754674854482971635283704788242808502142849950102240029060961230918709269159720683123805128497905353365382327026724131642612287306422811153955655646245770589990158543339128455843690451048486533282551083815110576584393691566372306651060285318654552606527725644516871108467121145008074091468416583839521812776463855570253836284621647897763314786718459506135022550860507163976476508255241578620090910605055989713354998561678523896335706588776859113871721489732844380342530092890052281582864125215874940310021027796943530227444031356817050996384142881147642582781086403503571340778416317916082638659861118673715860728355953933402230641985234595055628819261760791313114825785953383086484938821510920894524899405489999255209008362298816665022352232126740749883064809262117058353926373924229241509182410845450269313897756848699451056964671608914310957655866640581419826646686540963237714448083395145183878006238528444711197823056559489222731611127525117159401198443642619957275327855397269999697220308609142769460654995116588278237439813436826076155804311163955695003047493679602974809024866803048075888676848574853476939363686629645486213634306077025633526925136403741992770431244535843796170749454843819198420389214056232284604158492755656388921298741230929439981666552967518349387689552096924420356768470247879312849982450393419252967958944594083368761708384736143772732972860927957479433195285097886994037025431193758646626164174122617966179073799481901486497896134610870449325131811149453184239807116413246740903054386848009101803273287192181768669634523689680568568813712815381988690202051613630515718196851237606745368105219058944527753089266519904557882639030130899760038747276777398142181461711692206960166048588522078043480217553918962730712534279907057645331879802865305753637451488118004132573323418403590121552574960917968053904816523444539532777353688999810625704717684430522042788062590019107432702495688377931372751831714055171275368616803714811210372221305519629118013863930513896231677838528278155479426718938612364596284832844073521803649495218160446060795820840712352736459850540714652179749383679685598485134110892914786566423650739167838693713388097670981174817745177457348410527307355976286381536508577807196685356103924406497225260341171968179024574526134708641887359734826410160393600276644937504909021973151695622952288639638533662971881741737643828209744896673703620614381337238854707791626075410719448074937958973131042567381135548305292140552257600115112085798538825070247095064427290368227594281989018967455035052556843444252799796994835984451540662460878353191604599608281385616006128467818893785163750896054380477894209387087605481931054688678073673300710563253886280184755667132108352035353476039998968329400379482122227842665902141217832885755367658308197642033517969591448496167399572783780220407030313514986660939609758452228892780105038509287631913966981076852023476067459093678003247029725774275065909533608995295722338030657813560573365256817141289222209722467733904430950216344698153838537031552677395328973080555783521877119205695027479282762604914086063523886303276666263748310943051388518621383206140154952892095755990982964861678131330587255712443029339663213287527542480027850548495723541900331000291758453203885191904704925179171427998107236349750405147756350473604859736657858916863496375064080871657379373613558149943252602441203142668800508528073860115203563306444611824829780136460281619148084615475941396550134746675921012721295969900479012876852636676800418938412690328626518037044824320559310704692216473507722156119896769403762131599290395849970440865610922225184161170544816919058845261869897450535755307510873491186277202872641584372698582285808945766376678257339285945951855647973637131224370023176833815562989693424958620301414756733606475080605448317695429933019389935005186493777144896388161031113990202372985785984242778126192285388208449375023090620845082904295865864158727437408314944464818303664477983368142349906059947752170356215644454847701293415916781436157262396580005254219782505824365420848701833731950161250547899979533455512472514164168897496990639837369877887221797664254470445213199423306433273340694397831141138134017818475278168274574519744714097001994631115789353815904198174995000211128698669024802798561610192361477871092892917265529599747754908258548237394738156722870935525127075049106082356295306904544989238947564494261069319170116266488530954093398688734894249545670805682328456334255521368398274542361857059365172338737159348622217568457025201599073983802485523625593727437905407147265543387813887696340786173881814890531970524018130083051030995895906171820423569803936140115916567187276103181250371156669272525944443702047927522956365180038308208977655312603525873640442266793090612029755944351078613948783836833965752071220453250727668095031264123903047356125392044028406254564621553022455276694914188003377344668210216226022046954428677118229387174781732889431187826936073378241163154250284022241146879933736901654578169013680916503825341379884626224676237101653730875589785909795544737195842244942601998859720270790055263473290361014255441382450689719905613553342101639529735804363830503503920170559562590122709755790192892259325985785207093545164180686274500165790504371279131818634927762722300261238445806296267154781033214350873806720570202864266418556112921121090438422961609360773618270201885148549475555967239513057963220390812909127123135981524855213024165308972619691551476317290417151316437357699901050511983073553873105706665127321602135051729949908282660303063383698260220964672279545375454001872163683599182630066475635226631042232486384189093846652439263205355272375247698388834806716604106077460450869798921282097362987255078868064967605781308958476678677964139185178605963997191694930439029864693038246868253142245237524482441484346908317397424987913162080059506012872163094139300439623381298515670979616346304204832452949272552328522600948411696470869956164913347757231913423592401191069741999499687790317944219309991166184176911130837152076469579295739280385088483198050841797442905749303412760843950974407666251081274001271820686755454744847648880012986549400437122782655051415540293438749766920416465042369589325928539315993395786450413848267029255197607471326935654762835485292042735868006654235298782796378249514650487208176190265867776880467079862785244969941873790461974379727785820141863590553727829163699729242048343243079811828384689115165066201472653172491661090190788044192421294277868959977704409689024855124429097292318045558428147718483177964357428118642068118355609510602047124630116474376495296543730961617992314212200792063571199998205153107304219727853431214638982479079354064795042674736769691956250492032579679883419447871822858865220879252675620902933349381681640225186518062412922276022014941289335910540036080487809574054457321248333130604834084837987733318657363046076883308137284176233381066629656084924943149193661557542232281278783453185164819745798819012753660264704095991413647195709028520243925119529336197915372563452058363976686247950024850821104541051790621365086942507698615920508749715197317838399388194261192258586863275839879025860819969358224944490198114822234462165466196721468799780695480621506753575994594278827011344234340503492018061148721091938691728188898546457118363358212509245963857683933062173728262276820287389501011630164995462511928463761949772837568963537023274139626485412867443214459150871492714884618264229871944214033407951687475590700037860082110158661288973803308911746611600729062971667340731440779651649697619481829902620630688511816145860107265673759502904913073198521660308665603318399217692314284706461087111388347599033999132905275667134426897483305309241920817162865967637426844616766414627011478538773193057524763808057809020139884794581276600943092133548410711993237009634396457251521496736182053937296105413821627089361664924757773401549265109633223839986696053407284620007468682139923581130200541040176786798484663660867109426577206551285331656168982035420450675374052902770996516319423808120990628033529130716249699258233230657256202656400884763455964581015629176615961853666659502028012836375355226669864117055183647513926492959908183691260014856617224707298655968459909231471113962766229204307309338418408420028931994994666763643964292195035147894288042477263331271287483456127344154650862278199287974881879041938520410909419921267932299414969793614615823074975861328507452512617821279851762803890066416544296052711846391172591669803907094471726531224403649923161845990067872924640657617831732197206336725659448634791929850010257605797044957652412178766350960248672136050102981492764490202772092291141854908828114493409774581955334878097936737632599110175435068715025786095502558231924535284053924892830121339649844598548378618999314491530624259289089829382464974774682464552303031231607447425609386535464289974222366480400332394368787479153192752971100854393214457399261300529198050029374485643974777333897100372428647203837507176699731637289176792848576842183658871622516448717962870954152727336043142530250798688566984701743853512580000856472140426419802744134732588778170281980937295621219613741173533280018972684004664969113203904957830415096213121773765550574423449230079768342962588076618415292161343290581076411200726024142426886496888142473136872303131993723268657847042357685169256365672979882635317694565284326182278726057544023983245525154339810524452962178479471913366488171819515155020809126648486769112507673509523267817998863110041061755856292032366128810351733147292013446097928717907891815944187586155353036996680562123435473272450122499667582072193061410116601829915475178784588537619148382218099330802243258450209290638080620351124064762015760785357746838807236430126464693970162114388414192157081851901234954341406120433156554433500786516627133836933703606209893900243052627798237826522073551225083488094352319451169560995644930247750082280342435870482038715413630261597006369350512279524991572431705853355080000781745245042194761345462697755364017329289752537665475879868123940906424563231838514554376036664806507432158202983030640714299257107053754779663723256716077304160003166042000477995520708665823152705892788232337195111216895345231085727695679651172451267519699433327129261834091845503976279599538051411411979233275412285790984894044330801255632430502487233220457350313995925308783811799591031245264111548175793177271134629128857108925939779814577927243137347175789167497896146555476802049252301571502268766255680069017255393215084837529560042645679204764194493766492733707222839899389124080622238874659779045807209981797240047484258753388993395039151331589559977090837872408856948359181026882962725075858049163011469139678666249462984030231883058853872223993491554368941027625849322788564209582917804241152071245726109376607609135172570049246234994009416647783224235331279513654927249958454462535007404898501303432685816238626374350970895022199660002400842169338423795393192927165881414096313716833536453782309617877763469996906642717389047747229403383820707425625050975638712869612686698192446454557313336137222886071672419343029495940604090854746599220059443958947004160234320749087603551015990946110651957013142667014522013385717970635725555714699438203863210934274338571254637357867758866328472038866093505078189372877961453107523650193092743052264618282274948371450372284811205828735200522753545352954291252438731350573748232927286231204578990285341015527508639945345495356513401207059513270565086895780690098827644427258357232352510660793692027738676890533342869348937126517797381856085113083773800765781377895812183866783279804881981084086950125406296928299405685849949328581756724745575207847986107874230254109218239177477769976325652483032411145096940671336315638129036509801383903588829596016630153998915710233290919163135331057918096152605341052029556713953309512717451737805759591257705299662741384026156591108202373756322536555116340809928151305749306384483242891135204621478259899905793191467814813720005554504998881477615267043459504266402071633652645046388075819719738916510288106862472680320444492787827963982126251444896705162887862668252049920652877224527218851899943110115951744270359538663445620080296777351700638672615596478993914094978119206142013677047525511485627320215850065948049065599714093620358538697439354416865438425674013525384523668201528802077732629740458814496406663507940526294777780397865312679939472685289462270751156700147125795776053521614599517595054460867836800815667760472171254601551152998859567187434473767117052531281834488615347928698328878718637617315673237572730828599980103915947668561582818572359599584599668420335707748701053666432756709216250770883946374556279853501768169591640261050171660767400633818724477470357024318311275043969410614531211562103664685852173903723258770674336565835657478306816508056464785658399795176571872406243879032376830854170962650534286841924107385446449311964327411182464539555458857919229543285543123688242048987188099300178033019022265603160625095468352093211026107246797443124859126547033800125266049286498526030040608142364882713915974499635901166319553358131235422864832964812122618768380133060980401625163609353972828762933698588914036862250807989050310192723228704554593442288267460006201485326120218455948053793937709172537146807222408271340083096986438204231032755508003239605254165847970585381317395120148894010872549579897288526612201059037010971256049837470778405260968902243494390235433526036699871749238690194104689860209611512685593159026010238654654727178165433094531582916713152261427737664712480800267171210715311519118661885625249431138667418585126174156331775224198892196322832892997076541167448285289522936923803460405397298325598962195350526585179589480661578437408593991898287038476450001203760669046789984495351504340363679980900157066521595269835689241585321935150311019375749096652138655163871547842112852581595649154477341523029022647877429528566911045682320445372870463533551284187642716751203474515041077775709194556280369465987905179109593576393039683858044170944182277766050216104334951851994142349999397505896161346811883500338625782088566581724299069053671140256575194716021936853412076097606497726074099924104043714020204392152658327658635281239551693474981933208939863986506613884271628699210465164898219100636717724184502595595333486726057450060346727977565901868054487806020432952592685386397626136899034853646176774081922363248093906828352203141034841546655144002877433323709606245862816874617939702358816662075976463288951712261600101551950465257689520213274763903333382791312578888031231601083314331330845750687185031737353675684716092271303840235398283476774361380029183756322019531730004392997542812357736498468120005314246078952450759751345532764086135586414742771627524405172600884110997759683225591389359812571653611595114835496534626925863276318202933947885593293767864640845634457974115387521039224849775858838949714231290821498757658940356623468929857103576006875571945248413254889222192359800383420128779759914310017102102211624982664787010659784611861702848515905489441364401048439628168715050386209202810840975142526534813632547194274882320812684808564324150500054670350780368833091126792074164627658442819123211803203331061422772647751397897767967079459669260533981694830436895591641919745743785169262224503338103237753341427327563563887952681537008006921792541168262897614555656236042223456513496249149751382844752695363807318894772403348005243407473128520934366288194388704644631644092042220567866459632614447090652011411141420822195733454867169940379186760946356479125592629156062289997279619710074972875565819825008883191572770970401473524505680654479899456911305310199038201896116999828617209106972585833492512745528216314606630945250993101410367918466182969330088674389763646139347997444251987066325989013777111794920771340610597498984305661834565729425626746485571775686429040753176217862303724921945511605253099949382594218803985145484767895639172354801469426719413871598387768081232338313186744859090669831564441418316857091447205560586888200236605340820907664910952479681155862955091910939692581138049739376656270635751398820677006600421238972700926351966930421733137239368665445920568951942480941382384519738696449159981747967546611602636483983234001770225311649338038244916181292615417175455868084816242477885757977131166083347877672129374744709820034790366824962274225147265800821489996577063276154571486732742969317269727699150351787510981008858070506505394344213434263854979321792925170757833052562193276483477989802856179220859448305136064618639600414921296316345822225197656695577701478315666765855836798112850735229722184087061418032806952244950307233209453782403154714168689781018834309181588238893387780363408282116865833796632763903433355354628751897655932497209627862663989111921794705957652008085329849711339520173573467152201540504032151051500495228693691261890357021566249679796885321160206018688943821709606733176401860235956585394491098253362725442951442696349344826026954269962952716352387577743436671960873455667197268850079739411093574803259387647657348390220369908370903835376780793029211577402317731261992487074497786991269395284352324496407624639528282995310431031128908298470863719814050761207495825436426815214617089042147836990542978805308674606966867429978827030954759215735254248277681355270319574763924160727416208582819777152749375626931241726861694440878528310931908718811822853070127579386447785484722575651452124666701238760756977443887977815302069437517807538847528520893106672141578106856287213154526876501820806032453073589639323759349369636121470521913670934979594186675730144599798110809996722308740406231360637669736096269648182086600372647913308491427144904988846089109194345945820151048134572030983755273639062632136628169570278964081162469862847985394421026779081943391545935419550338856390328830058072726323841841867398162362802650824739088380059235967767572479657972875012791172962379215649706964082640737233849012752001642336471156405083260063913021018455305083522466450386709972410236057088965402560699876854902911502431232280292773160855563073810483546450639337017959763171224866579314264726782701335456899060721375064226338462905942114391917541425527740698655866987055561302586588219648829168715738549953195849061714859336580506934071227506764523860871422965493727331392650871544551662099021557357995416363727952463200251174688122432866609217288763524303338902101429107252750697424174653399910108100188904311699467248611338502652559933884738716861630091947912388618628980922202414968579767683322412165053176865853302780353007647739625577664604245622685429898532769399106989801778662377923074661019510823214428581041068970464050448995834860076926538251538567545569824710459122014214768196994896688079161959392691012445632192031481875915066829605736942435447130933785946748557575836313054619456691188535001702403257362056039647623940745832441010723556591414411158265835058971362775500514620209276223249505986558648315771559589447996053336640143145713623220952786596278024362663571768177875885619678707115224933460654868984262010557676422755426548407662248217346219208252661032431881972179036111178767912862554557889230673704282399445903808273536930330743195433999816310896462632220560423113663349098923482336997694171458784876869485496153128645349377678483155295424541352379338388891243143359175330855636327990912348967006219412605017191506690319698617528743249986550744559545819267444591735332118780264166509416595975901320113711290703711518084513652070261515548815550257494813515359253758564117931491386146604188742984802952275114920396901578379521810472865919639809160015838157711266341955003546192562043126493905000475195991832510951367751245705936874927794042610657808146249817285453451637753749750304462914086874850617937680361273768624850353638246684154891584290197876173459499070969793384188428743670383155607999602598374789813847889454130044165453365801588089554311362964504440793074764785712504825138709038379667995603253490567811419635892988923954529461404054712951584493299659758263371568395664340917624626282923685171568848451979230778670002413935168048477660415245393994135278414444221066102109555201131844375963386866174179641815730950812253847208737906656595346373600852992168237762087946214118360847070871924707521027374436561060277325614014357606909266163940248386569001077436219638923605906681196900559417811024795265560696797454866484444066722405335870735760290122239938964752013313368041889106684514541771196749567292272895061508118853997122570365419280206065108701016224096826581557729095228575652743092945316316123925414972556070954760771560667609811190481706226135213624050365090126264099690726836328619507633415736113943502479088434955049364956326391419583488348382732006802991759195036890862654050409756082876649113745463350105758536678253368831288269696915761018448757403409939601703978117321984010793323462525959036248957169811674309867974844194159865235144469479466933930612643064865832551568936245090870019860128046262496494479963088446213355108352768924259378221991841163719442415212753634023084210189381261265116519062330059952409906611479388211856409619460340278624163987111221372328957899671079884692341371227359623812496735256630395357268864175359702182770101430231177006913292141793697297837619145711935675072854616192163609123939731868772273006395338004045815786007098403455998045868034022244981989795881575491390545134214191330475279157961064330809200376192256606270410889012915980373173532403895622937965830828305293379967432342576484369205116724001816188478823769169062435343114585910265196372455825400647306246763769996848875072021044929829091939565316415223120863449828630023205594063955014166629753988365372773582558351425251827913035455809663691724437720623488667544499224907364987077812949291984609552717173839840034165862503400171430861954636562390386332773872666001440085094217831276849567598975756066861858574000983526332413876832731703356855880790661207369423728571635128483230904273120292749350716396072505409010785712172798609277696618808393034096191741011021992471799682409593803482055943671690746408140362151353871396122630555823151052671375591624473478981946947882179521473537374184470613201628980621345465324627594476919334818876903726586135914834382157332777926794674841887981046707805456456413983459323630416441283015593289291503258652385566414847879616732506033222570321852768181726151821555442770871326745686712503109380683204692514297760514478284043210228633364433597893293838836011773863055666361162098962991199804684502395714003772634596192952739437246822218337774694681101053336744944047906756865850344431175374608046248605968615324573388541852412970645077319272970292484824140507859987428315369605507889386855372682483117577621463907851624484138759491178970161594033639743557303213146713175106737961014222380271456269509665862409962811926397126102629433133790114179076009404147445687450210792448778790383174910272881322743894240231546066196798053873530663586499459132894811055158038665442169816479415544320737835062629271144404806054769904222736265678464268837061731672995375503617807608062390939204830819302857516199496301855121858899982227335717335221491175340912941204351347926363320031031915999662604283131660483187739085436096727051484649303209291817639430203611305871402369859770419231967477286541268525025136545634662617324244102741504123667618108046796255666072700786753203209000792952371407516678618528465535046760199794732985470945270875261354612944386384556669850293886147287672380460751307055297296740185133952060083339221428897143260436894506829704444007094982213272463144656694977614683739893097512712442063225197625679903886456862942088719778946570041925590715584869489772931643224306708840926071940256907317415079822989272654189505658659521862621156275215994365911148973106142032861574326661287249757280481624964869256184364411156719062708784762590555759186586308127487621310265001741864349956652313890886105089484527457366188889832599970358713201199167486334062753119207934962854354421367044654226780928558332783649599594786866096020562569467614857865612133852734723301181080189993540423524884553006557572140908833386163023003053316112301898016890451200747143266632928791523922956572511101160554592678774213526506027491809267511705851243545633531792087127677486910963783758093383180316915621288208159558481974974234457436812460345643824171272272218152893973616044885691601564553524123653763374124872105011595258065286798318469139005006610371361628516005158527820494373304392379728514707931785707081185944313906559230683002546802474306111352677180819360296323559713983681752332030036202468853110283785096002075367747869466332662135438873852664686538391127342814278638285209769667751550249878642821484085305970581193831198653647550051245067971567366901439616336068835159164498020139869515157309324826152832359307805217952377470370250439719675828886571085696706239997945916267858439540387582324480536079683017546971719724849146391946354438526054181290643341235793438618882606232321962480497903910510667028015635440639223695647617859678655635515906051237281928789278911147251101944465007497787251706811214727672574383397023677102551880584089075380983151165515277427998888268501572207750245201545947222419105761789362131485992661473690119600056622481111643872841532044960029384836348187399804407720849925103878531796546545708884835328994268608143237937594505706533927247194117399361379965536287517008489233467063874309600238947163056288008419278941461773765951604101233851159792615928271795045618376006525577921967665963968228932841504547030405308128070285064300878129844583606293571417430036224389511803884529914263564745588116175955924584154524243098281263950882643709768586637093824055827451960097823494110729514620869388742940734421730771138342325120087301331562479124728631386029244345660249918974170239798238326542256259048849801929634875326656075109311838328503580913773181357661924828862636281851088144408893562621236896048574784166473763142745779930866614680436412621322394121044625318012882247415689368252788759494180592071350966131928866601424134228379324333042896375513312764938901316042438485621180720532321065860683362664556424781085432179079441560674693370052306144030053942035565409729100971621505918642579899493285236471892649103778381334040920262187469398204557086089971971396536958959355408207806550330870516543578857267958419237943691525941296433848544355321874052759632929224485844468706931402625947581454635173135455261385112872845036582552635658900786103849608655002284323640884957177949819581148750286205653343784440370124420601971778596159497614141160270715514816603705133497391296043398113519281110164932100316430277210724320515829080310285526937554086972099772035466967255412953997409903020349135972424576785431840292543667272579981535432791562847251607476569669444889739953067467998290305941681227146939516758489956128308183621804934808114580563240158904927871881291942324217257887769800330296089004269538538690240081822974045928573591640180009564406930441432464669637181879292263302438416207567051388591290138345256768587245755433282855255184094639996723093465641190258208779424356915937690381739735137401516378884402243026102718942528666320126699764191515168469737678397561659137647759180484757353392856870139303776667895976381714549703260497825866861702296051083809186842920181333245714237303552963221854223424258387522283419266142164951565087244614453678545603533881476035870094755397809818954372795341054669733584403404771902009730194627851493198577621879554334024119759567223045652290135645265377118373713727741853848569952037911744006455995165512596526142971527569743320039947985768081133455931691506539813140674645868141963094065496218972410214394574869562692794072553777871224344685197827406704114790782981612020662127998285564225341444379662375084191921291906317071813578091036848420454252868553820981639509520152311094182913194723301726183515911021973508126534052322755127812352950696571780943969014078140926104606134382687955188586800558634284891983878784372171615335392596625944063410128589497380763315795263611416001224802808237075765594510321251752691682621488229848263696634666425546717446762732317297374554269325898390191751044468041114190606453868387302201603954307280598426612545659631905527230319326687483159791100572627349561846292359161550723807698223518664304571245444850765532900970224211540023091750775280960655595815166312916614703606100104836236831308343412317170405374628934288834579399599407866855045348222491342662350894826271360040767740048754467411695456049521730884758565935977697880234751937397896450860789679458857550607433600798972887454872577861208019236178515472023636593432687968279764941057804324754729278985110039807054838497100129195682396177457278146722547408304593758604149904519308000620039961937556724642395212082250684042849854798332807124497159255167517916586901284003340078105500294631184523344815573221589391879205480315437047755510961508130393631824940734638583821900073942146332218273190967473525178304392211560846863037606930619445939790581021412866330154589721285610314824653494530882555568066824556770458407236831150998587904606594022140487946775574375366752934494613786243530174108666760282996386733256745105318347544637769927782172182761505939767814226226606468070061682168316215277201485461239241685293663061514818036456379461844137785039386117944218172472679381912266515079702024166621133521369563932223798128597360399316946024841605100534716348381915196572820559882205587734521212135550260851124220821287720904587516856031518418420377209102525977065046247495565656946076303973295269734984582350867991657983476443818769020198150837167754601009395088078561307394900481800363083718918265371989320190035675979841311808956284937734998315989788743891855943969714720881248446289539924152694540182015819458495771365910111202692207397462378412116180536936134673495483339992621532110358771602661542826270184035902385506621812423451740732587626815567295494747934489963942351864042065090925187181804930859567451912496221819164191004785369796338696374869040534280581657191032655782928543966912745455254054971490829130386005372269767361065532167846568773613106787983671935895072486178625469545743456910229850976337797028321134357243541234813651462194204365296147740232668980563210809314961641309923694979321734600609843054308342896246276906696542411387691685743724506024369587884822347612215709377658341119391771496056167910132071165746050644387366983022371730528371149259663533800637560910984694194126183259019356052233678486032598047120748055944182476121792461894585991204070009104934363535053314778029222847768304579190397554176867677966567941203953655983005579951078131718925529710904422365420648374948983411473999085403359724935915202833553818076911125651922734603164293027736634499663618363920218118427721378463003427342790316363638037792060061401486119818143575457688654300582726904044875175028157077386205885957852706556438337305278450448625514866175907075762863377541522354893238452324790061260218933747310621660062964183294613752635701600214637428851831516326657760980087786540893042031792865054583723644716911321964535338264365098772565130106475387962690105010349544989887083288511802018359769959224805512667827121621727695413761075193970553514439398570448446789226147680938951501013902431095998721860747119188597209598024445882721921086860826897922765239361341542174323463564012764679806413925600468616051274726746729442665972979533387055058975839279134550321998595815738572371363956738526382065226584698062046308917842420935581107068414872970492496826599482416657878758766919029351014312582220203090101748289192116678619994060138403884773097155380380216726508540035340250491207326296928055729216243004582122332522846490461273197953838778720629396333311037223360649230434050725559136702641063721799036228211655503996158988192756195107965276787015754424047922170092777387528665419603766324563121688763730256266744145096781458642301935931708364764506560532233425968258506504505067333482085043651745063297995158111722413491333932772651214965146743713351311509901753133110922932092024875016562349280662284844465051849242689615291621923998385531285445923311017838408957932359722133044442837032618440495086276080432799927875920545199733477934599188374277998524591004805466877357183942745013084232268392290686392857952603436018999294570092154302706677786039027632713174257030183823540368104701965907677896502378316924711020717624731845824546219703938908693127765559754152975725835370180702911849863653994555144462759090205679230265079720713257016249592905943270843666236996763280885825864500075788596880921679272053341854282488273630745211506887473459344667395197850762463111903302799584640019078760087380201305286330810345184629604615909196773272951376502855419203998339145826037862632133073619854360856792460394305699892490947123390049045909286414585836879171931693386887242862126923525707949589196958704185030121845590644078003870989885731480469606788944609254766388440562327620762466705141645926865687307255448020392017098695199911273204760601671465061550946846643213294814593645168166970922032935226744889852507350760378213751962686948178843306935074256711833093478052134531801466572291548723648576784828969879278308372244575598496332131075760058212922427248097997292742992564126693407676608505177936430930160898871962723513364320882034247232634856016252427830615689076453774517168704002835903015780222176298135608881648665814866081021429224570235607374752008027036350028221788436570893410483026344741149627623138875727685052143606286103133085010664786911613916327106733477873576463113212176029044547148352732362109496271531011078934908588344318727400434282913272617194919704638481088913296296676990873090020567217041145059171632802512894571910310973688150951769095351362456312907934270487871462975992561197791203776361139479710574972111229687275376063795263161387871706267658004691737541399948789952277038768569275401089523194442806555383056786516827525497054842616233145599536516525410722298654567047723183750816328039707603947324325339889855418829421464466038830096834021464033367876537665580617036409003522007138088015224719368315156102152357278934062262446893905979952200875211964126728471978301511833379635263677117712760489895182146336299325888288954299675892160563800920988321134310655863989979953522259221026487938410082526272367192824879012827974808983582183999510617843452102908580982525463506601648335798489848515754273040659651469393053767730740352646012606540310847693453556359246989843797646269397564619439627289796676547516206994472013388972661395036148270538853202788245043209313351785182976098663902512016195846441855770510818432940587406632869640977600568545024813668073691288616800376806250747496680263203483837483718668416146132018770881323460263090847752809747960789595051619842921247522541160810281257751587745566652001314209602527239468136116373373310215689088554071756110339400138522117720033802242560011968737484798979860121912801975219349262235227595408763079929053709454639405847381006046886313835463021828232524181683792122859868674965667110560916525113150590199576771384255455828415422701540216450312548669903364517120592487577933760700631531908658594067852920950886942047731653699539003283166460051787316010301838610492614076343246086465681133402062610296531669940217801836255391826966645075103378491991078953836131993299357550590673761931559982693528660378350918418891652640178798329684577453021555567044702854240840751801666040076937393416913724998173150899057168689296940786207945494628616564237021481277905523611002847396058994232606286767658780499398794822736877953751464174485574742281643381291869664872956187467484861344560572299134725196471073605265855181318741842094695278307606230055020195150519862710132684054245670541606325607239944962524538200892625866291319394379144765904145718396555338131098749082388383379954436043090371613241049674595096481706037318120263448317347717998445924506468847310084352879024612458312360557547105966419926161854230472788285759158562929653125866593772886266784186553739762342816201111713570126486712939469199948534646580107476385168405023215643347327624329710884352676382143140060329535785817898160832386922429847342668248452707537563114053587439733527229959547265130170941340705921596537254526601756985406176194524058666446803800446929107162856356108294483493882875728911885754455432327655755981641081422418909338561531970154923166557648973486273436950602859854069066557519294215730604903021640224840971466330331056751640492140774944993293146575999048011206256811061601986072184236843717892491421967045883031144433036648164981188990856858468963464885392229515441375907405564423186009651166765844537014739369686038458489479565220201798959227398064065524445120641702809146708799681098936497881722275483246147691773918277222000061338886456182114387404703245795010525732777199370865818213677186651090146430286464172585829368185020924453176596427318567437359722721634116104106296445303718743742756293676907302809125931700207882146967259688439056834690647029548091041963384805399388319685987203925655457213678009341365877401423163208189125029101169885891790278878867100169381619865609429757729737625780049672054934242596517915419089579431438401658107489546479477336658578899852343465801755896723182130651815950651073804752260923559315777773859190175718145419316484113265994413852863190358794461495073694041899667243683989657562142064406009594335044377623323517430531637454120353878193958189301199560130686700436525704291402827437185320792453521940462821551759733987512001306414398231182231927155786870423526837089148585557371462752433808888031945673188950399520248196782180701529349519852671726477840194771313813652036735031904006221248674724647361011727093112598856195108210096765963257572210032924823787110387376844596875073533784742370857152990266942714147001571309533424155608082629424353920214288840421258003047890743795277735119590709827440815702794251747466757297539648903000860704110509040324284801726481881755307569320334062124541660015066857820367481662967112068069169732836684647083424611502954181825091109677167572259653910418916157690781169672920887366047146934117496631389327537601841487093499524235335257086666624592291342712826662618794879998603773238008340629910382870317463669836105783942558289478030489577081340592587502491290904660032915094408544008473216729374469497755184263666906252521191430872008722392971806385329756375879771074129808609179670731432684888117421650536160263034842388020309078814394042171521891259210208812270234392748872871976657974050069150714128601283660765949775652583655742334516538859943534068311068802054382359874386190562767685625711564201397922981752669294806976333819202381823441343562000781908248841727016254365756732996175071510572791099947933225666200086801667082185504026931843666116035003705196576896748395181497702280480844177993588918959534888152810861962245404831446560574271232650995312359645760054804859415971986532338650256512611618412695698724656319288043254610674742953062343576627473035909979942157670713778115355306536335264845797486413074907201382811211746369030049219528393035722547800408679407083322391490175031007489582355050580360560485630650144943279153339684374019912884173376328079788032046929997305104779387108870409404969005367744937426297587903031636284742627089259012605019589445373091180345065912160993923866379256546131112878191379603088218007453054150958505506462034832345141559036263561946224869886824632897332979112503674007230400769434497043916823198154826629573315270085501518626287811822245512141920475846878381138377384477115623765157424297207393277085315526726940927045557863613325740042751840690128557420021360019587374908552130881761173034101557061443724252906649187932753438191043989917938411984706058509665134535414241399467760510910029309710694030700604760186925511741759863491469850211442859230236533448561589888986097245778687649679090651139392835200906408090470777045106383687690984871741300793158498812862742157314537540010952350435269232482430692927088536352102868198501840577202699053712357735728414973883341853862737157190999596517021633646643533961882007873115024267443294361987633129152797758044008764048519238449386548827051333553756808785545833921362756200885802160087479234733670395316293730494606269845772543315772663733296336504560931907312653047264996242020243764032680039386186284712725373741120548052671591666657223944302111574129735328448511720347451376700291515705300545700356884923959196154570321747242704532587372040909996750816387181435288518693393604022080419086373136859902988800099310094116507320335312078978688200338959925189705473139880038565643444214997158224433780204622422646807801557612719738921392323456652552120483629341167696936266611935548916714249343879071815092719325051017014864310260210287948582140191962286074255470821360488078690631470120040935832580954190034857122716742413409027085726604888388374382669381975246844899839294825214138672816053760866585500725856609162586911363847563906469063189859340044606073717220891507877925425793857177447950335506545128880704988822723748660038846451837927872053432102662534621950825902923659606590566809690933391080642552877582241064994493476424359401459465938692081469055563406215078953712788697454451835804004316256834677635975586210825799079298050069658894934845784621907936687386070325104065392340752147457632513768590003758850574057966084421522219536139861980947654066588220723830289956998837774510541892375456269716171020797744130772963934584223158713838816898426008334456609475452711142020250563194499038236142385971028830820464581749402520496971457493621694651968660540643795787774456481569870198098961768775938282148217504868645349938450403228731580954100193866426306734574668404442707288414108913336277063200788176077017884174824649411967509520561822333594042775651262786173161372789733320714004923986572104639742394879168673222361812332868695367545151618808351012849767671791442826457312911566439454998500323655923741334028494669677119719423557513688091773468726530030165562594520618168807898467589055111106927850199278918396350632106897433251929126339002775618068674555236797286078886114451314954082125486413428986425711817756358237211210698593795695432915219429542800613617489585066386386593495338829828480701692180476913671260227715328905184615244535810235548692645203122912781290967574989564577521880897889024501870976148433199411469920883900453365493405148253588766654013992751763513276105028212033134765156141022071685853820774799872324661339052069991359972152547841467410419035342164181308217215964788457066256549042385492930019128914908957048475455111053358968484144931380999064833550770890202568256122905040285927633721704194663505192383451496804121661633449298508172402775811647280556933783412960230736324667251898629138812079116053329441081939410468314902293873742794732416299246657458240437526408901547932785496190049959407748352472370489864622192415445623113684365982372322306471423393888130054388711588737583066440238600992208069743072841931608390351816240154689839322545508917573120310423291940465553741935819791568990950976491666636890920700991921617143620122783528307285199584272792230997587243219633740722057366750698578084961389967438024090831782638906913429834032224901351815607120075590798967349843860157891149469321727531097585917421726547885669707482867310084163662569128976881249718048240031452203769193461752408124675375673994991659148756340440273766983297055306526044897972664615462901161655619237700243421293607137917972444409985982007740114514922634258595197924854683180170149864766923376905998459687429674206609678472920550178777418660453871718817022494748663856386569482869329176444375029045156827072299331320008754279878542548671117143270631839281790260736500771559840309466083142161487163524746352523714744645495472761343977323174171221301049936081423188718379458709315984392413718504624241567258702279409461133144592085071862292241134029404381770874617837775834464162632315188812401781318679553404953733239595680388082648732814724961857273990161157204040863226022724902150685870579069880498820313233566690506227092704940839247457777385594865989689647319421233764916934133392139006373555663032285642106852633240677421643629487195051071888540614539877331072481091166906509470568594873608171630234249193592174482362065215832000925307939784149922074221186661673217687465637396911224635082572917628641664872415157580438406201225961226171498410148288249843796120335557599407506414830461777549559076994116244853951695079579543710602536416846611217516539922948633223115609132388891319937205908104224680686085088043126060112439214676881508767258991027750250625852845020105843126032581015599711904264646128372909988662250784174084965409872323908881862472739410578553959803065726406668083403814975752232151674018586888838269961863658639270358502027056929547318990846284829994100552246506765837917016955534819932807361508672972319755857538617179412423641044118756228212505808184237262971475901352877523391689746704450333301363491154256926222525250682469801989654836834566715913362864027431541513884523688884115610579923112975345212364462436397224778038189922968609934089706818281171648719063629895292884325897252379495376501748929481847438178176942586034871300714876862887361366934083936437783935684731930331278577626916654915040452876034791378229314702672823958613250034564735428027328474139010556906902267228107229767638495474050795384700148629486361469110439474941003476692127689231546729373868716583113721125626711924537604598783805529957481719853587524872627523274245165238066814090262357582915535951403133167199708984062839156850125186438967694891197909831883832031148115871204471037471196079725977501784264293615262881695966348454530212572353923287127653655454361373356152173252612118790593897061069956442866074263721939095795411122512504753462681775507797840473110098737858555605520413818289334689307067337474842708913273204508318089163383935238775150472832510014131920055453014700790451206363026042592642434349682806628973750657224494757752557375799518173262269098547222442405665901126482845662106261789331599447671720426522698889027227160794644618231554668964315543132056070135349177980245448044213848359530305972313445485920517049405144842461357065414149903770101721485944870845693440839151961223113381681653039346364414177589771618250567681470879534756843164245517995551174646327731918762234852416927338181156968379310364025738285825495382415169106008137162227089661897798056899235600273987938235284691749581247369013312804654758637725998096944752801274289460613377002304538960730729195041669179043303514035676088727668285310888526184372145595046386203658514708962931956820985532996690029615775216844690174994324359496654488434816171664542223986849436411126709656437531703492489455468522988276422127542335604210901155549767060142319309614477611197796740718930798148546537255549115819738085442717247555073618888203112466317355662485101853617429407209460843708039272737286048462093342891891753247966428629367134883023402652543536516218978536729590663878350676998409466204784881527401304904007903803981074462149235531177797608877975854723696583242146483198321847035349060732313450432646401339435847709250253162607496412534405053857009769658045473832246732232688084769709501024617001839527969845838976828047185286991423013693277072613580096111812161697218144557110564973590476644915150749694895389003428555726686635764754650925138198946125819415647273594516068249021509739305718573746021853751074205534032057835543698474554210491806330745434813580260987603130140952890953826525209320359061822209369370938728498889654115638022228417898783494151839328508952169020166752165399309983912686272512688391725498491711527298666157229142958527535490381106264352488320409743855320402874831434306990051112026845303698967814164966420580542900580193461374097312973532549172681387415024667437683160071454460567710620107152778727129537791442768231628258564170844483291759300524717482082326115987675841155923373309866488516204223990978170605285309965020134047069167954453278955211461181951465909839316526091382101290578607799368791838204586284395098707520687932697036793374086307006200479272366199719872916807109265253286879784887431384128763027544439927868415252104256440765874828198879477280585836957479730129635579037511157140715653904414171803555647819893516854624092302991727596665541607013258961600525126237082203879797577168519618544456636348307099691262156907152388346488427076510589511259164103430169356662360925958081689033251342308958152045867518062925225022929938594400575719763161477033036763049242824675907861814834476888529398393969964933834086488437516706172308095432973506860597092971649682156519758970812750895283495309980502588098911363254215434093631362091900385481391051858316511366051554638873273382943877329367060498046748374892505275568479437503393178037294170478963159344116482769445902979262223941328910142820567265412797718107358907055681317808852188473743523021488981596964605770620554563273498157840069197472221815515415975761745385363741835364944887864676495047372843408900033476146569677864142715753464296605310454239018947228859081601840259910562324708116621327848618868208442168982030481226241290055812164568341833358961589820576991817849795931185639472106823450666813154196131779575664995532701515326973384741111605536009747067028744755342013731221385029718593472038922792832968549127086282727943895676454474286761342360491920422150056545724317802020528211123581919366906509296869625679081485120567188422059470070129886562875558040147930754901906723855467555405691292604273275842902375835383742490526316592500782105426634003775309388069103169409466460957114409478596674581833311855452302159661695045160600525950798481661811463338518517215259132365500350829961057478061914572265341025477042089343437821920290537073076620132515714332458057523521269948433610714464890030969324673015984450979438762779328045142859875277228180282198815916549832905860488606996359012805389285522902311665154827882472881284313814242214540531852004837608128779740217060715143566306719027779626581840223080056360599426500205985489712973736683522519899173952611539107363094902205289246392059654198560235656521827504932857376299581189953905364416444021016426421740597799499475408665140878192535942074816361911702996469631291369350399452163606992924632440739021595009807361168414924190730971069043036805519860175251372637570250026718486140445712173255585237185481183913298989439692644120671097418172524292759806713099313506251946136162825444128627175546720471816522816595949485872490544864472989133584387802723135379723761104305213853784634081530964373783470551833780733485561295546295199221515997329145174806134132672538348572345814935601114350981972383572436610449469303603234193787994362562626910341898871161775718638361295931076699389291183679113128544065465084333575575357047777895968504970183290675895860258557870456678564269107861238558246727229446757283787523430177460419325386361999225601877349708940622792682328022318727839885634525342724556899106816059577430131576004429110490633953869002461483432805896741576250840612841155732971651139481918221341117997759781029526024578441633651226789321952498277019566135690125964041883895412206974091043321961150746332426153612780341888846804494159468308349874717880842194733880850334434734621796375080546865628907748289583364149972463963285967721949972263366003152351129228235666256995761041387934133119156514023396172314280015983427366414789875680264942533748175668878967958342198369178919930830648836516322072722796267027349507345829126389215345619751513178941221218884260439400379849701383849539449235182870186230289625873553276032899751380168162175330263317752702707118758688415741891086378264982504971858222430415022480710042488798212889479582990859257536814569116902804602532145269555058468610022637330387736330613935711180012407831159525470547302946497548323825642387040138190669372796188891860045924016631226192997868483246832228069129956281279555764357955309706149441707105151778373385373684095642459124819076256269294479714531235238084086474124561437415530101504689125092088320133959001699810614101202900651080819377834107088563893566749140874769825443995025984033419114668344274845042892202157776176645070197769330283200446788058964552817297864044225284275260302385078624835878628409576186647544149496349589573881863272512132896739679977355278067071899398952796080889615161513060013002699953453704606902271098521364448509505421887092754925899885115556638933836515643303128083850553165900533381364480422093507936195965764608913179776706088628695800905262064126975828697978026404151808600425558967733678725819083365159972941861521904998743715803564330396133326033990798763008636858739792152274709207195895428064255738920007833733251881705873523997776364203096946456387571933702851461954554155306866701875169076833887277831421845203683423964039827283805525543353707704455253934687142704047598825928243289839654231139575832500847205824812443245276922589482310521887011112805152175341765217172157579842726734910426158071335303207942475089798215823536083172666153404455246345647690434114593839349780589839474988151975395140792342978409669687401586357664326741209720359575513812385783587243882578936501374235811016703077588253945912861811613579978835118734755681095903008161753749265236678031960081017484579251164651420446701573738603974994998322038467394821323893022679006707207944165303754447367607181845140247752574527514494060221785623523526035721231560056170376688909339683126870511629540036455795918731137647716366656078798031192329076893636994279314931851304880481998539579405482571682498071924193586646721713018332819153428210637412274678440889380197774952844773844869329239764123021867610565289692667539307658308994387319695429437248296870425824910604398588417795725030090349180958294829535423735123473583471483582490861931836078964500078944262982208034145537329628923397837066417692272442742525169973677821054402518381049809723146184525610989489632853205066179846537385373209833817520471447644994400846469922883539693722494895934007305908020321115634074835817919859456048254831663233162589392724650857786881199471823357623099823513333595219600603278055516403630715170772268580234532899090049521429143222493336142958846628293536371440633232657946416410793334756713095585557329971426308269447666107530791391790595030649460548444035345698015610072422234727717456165958180847106483499548260044210433498767127600049949851830103441915087701884861984787222306455071688200265574143328556074352027994399890475139855922367889040490205109942908985755378693181111649099490123329411414795783141172541732030854627527390421256025894217250495581042611811716095013975503424188376796940025028625120485394817474757556772570178030062227458871883336118351624583821517737631389941723530383416200669015824647999474663879156644737841632669366274283742229462222069969541503219864629374893936871033286417616445320724198608339872774509443015977398967345683356627643632828038862509483953074238208027472906409868941214922373246269224583984539390222132935395560482810488552232063121029219372726741222112394825150828680407521269785608244556304241902412873642060490520769969437668264571092816302845274328004110817704919573983463253092730114965975225544648810521377910296459448733754201021207058002334038401862710941599638888391383013925957851615296911594947661066823846127890344106911058789602344074216425889755716898107127289962972603684230624863636353836008548463976992878770605354187375373290307222560293765677570822068265181853692486304576825808964311142627823957789749405929360894242701307807110728156235669679564707412199833781879877301987624855380411814403532153632419014857377946779801783192212145721321681625656681961400462839794628403916006478502418279561166001273694455814613702382671882089398720511206861909248931808884948116118154916079750745831643207095001687449938526093272647461767959779325905089674586705666408822092223439822198085219884612597725133039003826715046320204565619861518093535202261785157815690343966917086375647264565083841136432402949210710933891876626320833137060526034897609910261165444354884289367916987987549926766961633677267581763236583261085665926453558637586516419885580076742532718519602158657209561626682266271453025568530736778689792675019031158910256097261078056190830429762588015543243844750956868774309053528144537914302255649065167417217452201741427446815720400413216284465840232476507756525468829551857616786865335026029516943877424076122597555360700447714160929674781232103182864012311579685051956825612638762179986731395578321697262260305504461902178562530162650065212889732722698048755092087827682171550347782927295191060921047968928482860428911920717467799956195069899063558520489882056750782039620134218366332587178580180505336413546543732512182706947237062472056021869453877715735207866070451760850045487048613260691473085681365799074620048275357246893237464234230140912765289970192298040831018895455120120693512608850177744350809143271589654777834892861096783663856380741549253034955619644866040578342319640191374839222167397622180283723988078001510530086741943371347406418500846125749892082924844457282321528115748455448211744642271957708407961211264612369101959897757953899508279643789204235303650284047408057921341221849362773719957051344339703234975080194417011288621395118098582112669363628107055754748737973509038395092998364844626317137276344298935739478268417279619992922832246048454253629773772230705512424496267738371744604280288632494302779278502549923296573471205022023561292610327598407254538864276407884907470183275610311590308723944907504347109736288082915592134576496532093611957446387952591260840323826506546144127301320583594895672831860930949774727065147049053193038579122071721849779727299820531009998146591264022543229514971393645746261447829188124716342136016369071789435244361103486766353044311069511912550570836965388936811642302967132527391844388718387521095853240513782222613659401329157173423870854334932959123585952492498738244263333842500586750552434375787558275641804076196439870148229783966146100530282702550244540953883947417788030378453266381521799072450333277200498596209476065916820683377552103600563743688530798687034744525087060425503655934669279355933730845075135284286625970378374937480863723209147171458728045334712625267138356106876430579787040130688892630446393130221785491222499981039808203504343197456535221561353680890063660121413224298623794346215086060002541489204102876466743907410579293955376274458004959459410192045153929638577295075948126197311604839938740872486381402512698432278500231242057468954240812637726399914435184314274139784505110577289507622789778101979917226216625270747488315406215966329675013853700840205358503179543620868222187009184298591002690115431804340660339259687981551580627760721537375012343827536708496716128134623800591184211449257252778002576851117352561210216981990434218469739294814654476980977093296385036717846703467042229542598116765549981874723189526919446789720810437687586687454632663289507124487343667899903236963827986582371352565133772664403248240865812288747048286305556243907362907304250561412641525508025012272377227357064985247019496112789976972782198056505447674488309034809117696886640032170290084347435771091237351572554848502242553000262054971623649349381539787192116244099444616583231689872819147704437012369275898118256009848013483127653730123148487368619561431356953156941720284155605723703110346077363837812145537150437086853137549237475831279461717212920622718203336643365565248126672330871406418934844443605856538795958451756471225896404210573169416356175857019200577203700726330403111712067878670999292961736264864307550382930729454387492019843594992017582660541430603551461211450317573334710599958748389015895542846598143780770890002669658791544864669325208060209913494750640489818726435211082549772911781666811701442233017672096709990558485339360141096090421063173550794445208008869846678129993299731458584532717358855210583924969058144446095256494494722553364124631584587400131756733216358447419957208378676181398703220756640981983609395445072671607931396317962128992476857001162155442055363260705781193914837955856296593212663456380789842183187730708819430615336558975474041804057512683605905144406843484579342994104475852370826093625092991660118023305328710921331192205613506328722889032348622976548205364724241408260376007110737767967243479981328404827493000065601586354263005718264938493406012457851997988217667321050647075913512939648942787321994722430160769286371358235412354432303208858305949354060954018016067252266421249824545913417616042797393473936617709984823741550851227300496259345292396446274448530834285384361491739171152792618469230363360617882068978639483621801008737205309701703314154276808825366548323159187596491407318532708296626385608690681125181415841378513329763564121363440110275874271488216144883792861407498812442498107665049883263838021782273830759676542464889240693489302274495376271420955546030283662631427156871458701953086926189798909062949327794322154086180043383753794683031925423642858473185842332242010734345214309500056827464743003316333849311090483478661535822220974208980280974247758980403386636626719949285676573025558187590432375691314535589291734039924483180432697437827809964794654803683772740804678322815420754171193340780911482688661044313370216532183272716151882281069245540802313981394370448064420521358379928488082238122979782703728332669697453428389349673084558075766096615737956986747834410731811376802121984945578930043051873367545000820696280785019472887885639528609532324101253929108302890973864745728392221556023532071309802012913576676302921891650041596263953771215150528100608100521797605832898104477740826840071085409340025724651757231705772998560909269002804307905524173175574213667221866758907427476133934063399235748573033014234607533991366009255041001595171913563805325901110766389685114739949131849996650441483178172870143049258357809664489132349216626110013607690521242617607965439318887238274561085003620438609180331168177838897355386467073895751472306898405275511205523630214227910331307292206407579027562617430957420986784174538340940109903228071098611152186362370959472570235364334972364293459801643072150108880169132492304385058475461403072694048188202465444218711030023894025172443068528664040507962773450963323527856040939570521003740783879974537875164969703564252087912276389562610399198411691728337924204111621880631648878806289121454087861153905702839874706773919219093749871022111655564450335773486253491050584487808136701575956296018292694165078879712508019872823310735748683894300515376063235092740899209370692477411122733620735373115045030720355841997277213094467113285178166540061590086864762534735276704698166492960234714088548483441067964404223195647795356431562625206039631379691545006098481565227198505429147083867625842500361617603179494493644305129963617994873399075020035504734717011388719115687101232782607686220073008694820436991251260151523962145552051975678585334223896232815654575576165611519262232043807451300001306338809320022986106674242291503451937931422784231816732152433155188659627812728078926113879783404376458510770736517055700635682491370007838768056582695107020108784796193345663318834690727610683010824512196344009585807634196570910975705024630012903106482171885881295763706313403585330093304095714091510630484086963555100982329168590415415145380108876064482694987142129123815440130918482663027080971070415887262553776122645612740572322070433630045731036733360787330099962637568443605432476672641783342309876721324727823219812342490783859963498857643374712440279305574249141007495542886010286539314190684364135440948623927652100188997025412626164388091767786710202943465345455075634049454637699075380875683014333835449072561649947388668482410580061529410874459730818362720085268471617918972336701971833077783862732753841964715077097185201313979600359777824217269756217904476120526180527861791957538047300698914880076107086425847992099996059598132004726596303245919702972635819942149191111133271786829409600229952620303699796812793353896055034877932161104336462661457680889164933942153854205064355564932599053966396551896848452248788273896638703252149829624417273141890742114867149286599704043877022044371532568772489071200143054056444696051134009708372448874663678505622365021491271430224561270343472450433294622788627957519449034600267561738026519279676937875952666483193696296957868157208399241872332304413348808893704951792443543956995561762573462532657127539816535006971092828092757307439237737614732121005630263923819491914782919145628682570587698170617723280907371152787683242494080249173309055973514590971342970177756849791117384111655609011491785385546593433216481193982751445266425829036858645863292934704480092217496011628203086179436732614957175959234151419138587323660577949767523233516534584552363198234152882484831981096349560370150818048663535320143703187316238255588957620929975602344561757627402329116734835868370567041322085862083046502021273306514516736220010846535844359362282907231859892257884040916840377020569226224690661755417348277753774049803454328883051436693435513943338239393987572744319142888941963659430780046085475034826842665446578916031967630367909956390494468769431840779096116503634276108069464719271789508354856714677550580922190317372267939610843890943719016415485859047834238347377070594600493666095680640947671222203755791271702818795899997681828363486748841291480649645563345885620582081630856501725894697744035142841871376940637642785304895696445128543284019583475246224576156648331556562513712300092596271924227915220504358637768999453499890441181810919661774653396253844000956344488143765886818010479021066532180762577275578772154040636039593159085195283720173033678999547269690761605159562846707448976022446392371727612567074796591052371663478806012865642276546541005458347809086152452230475324005333707817920704307727192679578573210054797126912570969117987593762916180938441207174227678720631408626452811348957533647647698147692325310158863237904677504457388632643341743773096869513669228280479236422212984023199652633852391965937028073726112386922140724783150665026165079073724788687492877053332677783767218056704985187403569295362979106991729529459680480129939275873364228776964040389999754713775878777856750730485052660419145556261503959484746525358732409999987567857373428434296175517142898662050362870323757611472019013586383574921627648842015984838005643767816977701607181647653790063760127395547229382173991284271426621112867611243847223461690132495161624138463911864584601310638083148718012233455716198863662692907307453218037854150456460544803354831337034072601928957913845873784479806093706113865348527656784390938430212425147012740743385468768591641884615304665425081505973582517328425064259324981209546167763843906004349921286512385950110456447097083058635263040380894657443290088342107467770692459716683805917013165271228798729620576622879558241774340792281804581760846127416965887749068563314887517679979530717926417340426635598238814583948836149563312128159904258322962339680990622574505772782266550454918283027474890370256067248183988372013082078348302389622828771604709887398352114455186941585100110861415993624780524379426262363705025639428573294970297131769570076567635587273376185561371702239979303706636552134597621588201045166363176487647134723764480631807160381339826109701590742975529851453768893743864576079833646376385631508757820203699303446621339379886403310971499991507199136810862886117029030466993171122449932399367410693387802054119088269924930196876936356507956395922066496512908423851197571901378104458874868738218794289293109624018653189547298756307500933880975151519261226997016543460091925231221664461876245371793864057925288546951977058485267328449908508686801561806095610932193871683308358084097073260452185868700091286094077193729275026383055430909486519061619650437318663041464858293995707061658927337320503919072255929931085359814708708727837410493340018985032913340291996928489510154171618393406046179664618013759900118373868136547197088965556826964178844145562271518271706734448771067157976912224001765167370423765953574554319816876611057705939925824803297682818674926389988200872129914910358317046080558505639078872618318012124980178050721762519160489524453879709862579503823949293230106734816927196576244405329279149094285247665440059717352553013939401935264193137675299788596816119725837281466823064008083616247744977642777130450717732905895463146697781619451369300832449181084952055433621388444759461059006840292345395138181348726976780096555681048307321995808017091096762054255028136573449230309960407967903738602024042593451374799095505500024491781036310653329134879381880627056636619503349759609167892205919256645181024159569474260626641888785553088231996956188796034890335651218082132652997816797934994661712685387014352299927651829499074864334237349000615531890739681906488478062776643771991765106940199960104251348180806653255136628991821666681340214177146165893081853611151430344072473575085007242191816455381876827183017373538026374535559352177771843037551225431191363205576805428031643878737172275990234495316209269260552817612265404709840634364810660581762314839921444438190222396764052076567668280465791234613413493922629701215714790614023426311129395808894777887664510854229344232006592524667405000311679468433038282438137874482603080058476559162462272927536567653755248045999658843534875848620352587538628918098393983603420029886807390149814302764102110686670093129239680299659360285882262061345401916573535478574204661984838710933693312412045127786984802675519504359884862269618382822949451133973978800601943267493301142313043783680719857306980712633602356385705105096021575470073693364126432550595495178618504067422819520549264586329088884914903028492835511838242515966237857882324348468001076807614214244379572779494671683959649278991225415721153255194310598753841841168550117539916773013575958594368093334623706999807937253395848757652790372396026830651093629626200454342159724354750807813244724236166762755846926242003810927607429007955635000448376455888704099535824373493232430506700922246929649546011762828079250747218865334249217606601791360618328621567172412809968570163115508638663399837008346667230094352240026680295115839959281269700734406504681811356991963882120610167575246990496480823018095794611935821072352663035272368581681600339914482844133551050275539571593221539730491629176761764042411975401367741444180699978554245358212722391049569526343981729497225417961022253892906630231037765974749677281436742674905349029715711006225465967481026676438063257593579351556957193174682683958050939590154022980925828317419267513858943658966595131451895368259814575997039395624886042721656476558651798321667564236554286750139695330765650518022193948738460792873587339688736305908742891172352088746838550316674577708008300423623747338571970436919435313924161698647745708157954969775124235359438720493285327759523128812534756871270978831788960224528974882522036116318824136857948235727484673593569569378371287841136835335832722797491150744877684860349012836655063781354598450532703732099975485893535589169701511969832078153938925580464122956232479678490703924759157835775850838797751742379533471144617042228380329014018956063031674373090235866764396430607447659511037475786743326564889366950946505899372038343873571095920934257093776300689297513603393535380637087996155272934982375493220236380518176455174278914328060428384550568788910470216193079207661737865920000515029334195023818610870222076467551366750828926323405180755350803369991363262774863672876070054176714399894123258519979721809610717407442403475350410252869527917236555088189503099982197717159119509282985865472624115501683851194914217763246754645040549373631740641329534105506082096273509247736872680822620741198835284149764179327529882544726755216367664318239734190646162570204690272438361860163039065483819656095706379218996285418556694035995360997574655201047068982588107280271400435024387897474461579422510464588184126011175551959819147338475021741858170862372328907639502644978996774940660643006453552489341661366628192068259018095192594362733737824986032145482217240246842106768864646514657450748217870785381286952378708215079035941812971904628166174371166712897262912374862349282998369855600614211058727320652488840741094438020615798551899430816336016136296708657609674268355414129073762079728609569738876239241366349108793182183114977687444116650877883463578733366599528617092962356655563986241009066885650073827334883788334198445899152918638622137007987258649072163179995043912930188550348436945829973323989965735039357813764778647151106242243646070542210341781817400913650230431646330823766420160434226630110972576091183875708455749097848661254743222618569822247415221032363087422742101998785540086890530701489324329444537193651613639552690507720609779918647599716254767615456724609749125284447611844013408214444934267610245565959523045379112161574020930196328973955143429743660534398283366262683238533200258525294887691061239811317290900660378350230648920750080231112976677936940421880528725135157266426422637649650035261858879723316928348193691472441119973211351303643617023761084213511281126725601076445757397597725635658403912427225635330985548507155090700238701587158045839301443716303551569478508083322700393358575521200933861041035913320980207452726021463616150660913418043278302572753128215684850886606600884333582894119339875637525292638534636080668766282350244353312342823210254361265199974681675808328364983429889699586453670605696233499355544570514077829041053608681424130524816179896916827637852898953200815273531440886069740052334848217560011634851840742848676890458587114857932437302777858874282018441285843940689076012472138801053762765637841316789426918286508849820581714054512973587729721168993752134110779128429023891489677213812778549469589201452415210065257195001795397364487181120508839267105400935722363497403558384709080060096197450903129188557630268888774006217474165171937186696960420306918976423118271584732633489949906922863005645446614158304456263114058810454012422199680090937515546583298253201485908564145390446117372261870626145246828451249142450444514145754191159263391284316204091259807714672093630751285054260774424279935885177360622858349483020571953958029916023715882675687711046260016202279287324095339414061378972464227068414175407852986223947488327755068194888514099963807446773084042342688168178172327058387297958300013855718857716190988685442513090950222727901556113963287536075871177819489030191181654194371466872705891596325359650518192384221986734282910298317988063131984128187183087451114214381041736140387829891908234638603517188469353352828715528490813444964901666143179592431126772116883435585575833726866595856077900250566505295597836531272206167866303087726828148756981908834519720722074537849421240087002328069256880836280600390650829111700085250489395868739845645208405289411960929765275938644189866091444227076413762642647278040763247411161007620614853186752171751351927784546773340182710077840007663587817203825123800513028144839132608175624765974080926517832120353605574613807257165946935741508010406471758983773534877005981811136078123475229664237306878047128215578776784762411737451541061846373221124015879290906466688632380249511814999273435725345375752365772855357456498703341097259349799617885170676908926303111051236418239532349339125560776437671545440929538127722114012244011139001554553912345101539554037636159567576333287954120490330335291402970125366413553010057767163619016793126068027530507601856365433732635607769770131245726694091377909565220072776209236064534025793788138941200487408297899870244967449924618927284144574247152000708961311316168050944713527443543251483714006496718023959888161298720687453868294637624499531471211932020819935683503091535810026744382412542511515097074260471393148201916644388475145834462740001347183455703157952016963299428048219493752319644382302351529972252419785429686716492917178844652424592361771603162973322830484650075079195388895673452431090856624930840312882551094688897172587105943738884279474579412080987258785453829480791013395763988948690287602628287305441631813313667920263870593731372851152180450178306445846619060079484612867432555389428724507120660087911376595395832156236445003367063577907077422089168688015989064498649355680617735417195685627438079483904894090924200763068339232986528908957869933225476907142075070744924998893970507661138132274824666717392647195552285235493602029207282174511217967688149032889621769222662123429146981113540332026937289903183761738428024022038604945303231901246749876989184170559503760295422331873955270181372109199089287692455841070240022224565789922634607631367035979014190539914929934064038416423923510084170504480173402488517819328959344615408737983730319343693321113440357290473237461862669038809369856465927323655310919209138196089857830262564352188631724055471159744100070988298235815813416114002084594028052018982843377961681604514352954985645032352824517794569688314928331172314508374104121010676066730791325070784149544622430386103187394819223675096619455917324538073028386369926476200525725361813025537806222054897881253114815458707870125741290376837068430787461563893098910579065241515566748938823553041903839567036717234694458291312905467051817324850285227700994517171617836338314994218203063286185001388467035953088823123635960316027229271496739138039296549250169412141433025167022429439166628983407804383075040138450683517007878064307697060746496292898782303936337376067949514644895393500408055340930212763430752842324528316499187732092965628692876833160929258236482785994343626585635595568902535069585999920023359402332444455371846657597467770428176817656224206917610040384789320568415885987133756438574403518072112622359946713966003647959812908489962734807981151059050247747442001792211024981093584498502103487723717304359832519180810097014888762026358127142777497489858946698987141438776829344639502091614057737960252463846998587222755968240600120966984840950756385881456646425574208687661145208844314402885026889503990737666803989569993500984627922949773585600320900615679665861828112829046218225983699491098459718155999366318578501008406165464944666680667908937529627123692879159564945802283694127035763907517007108667796373213481301995539909678617398170796991470449922115138453773412112400775295741077246426209943982482126136399620342928824266501908590757443343286906829441935907140249743858417389768205865621636187073554288374479394693429541203613464852135124703690012554276262725972868701183628056966930783660171303274835513409417089762855452470770250994665276286115757703948680813483663940194527219790436082375268626797215387303890109866746207776509204339163617626535489372972645552985650588768879478065209061774284514647809673209587249786049177532527414940702911401921895569122146912018064083411078151495789898276984925438437544702102984909017304171411861107480790935410166791081040976321056863472902530181692809727861060800163224971881701861261639879315848335589202907184737489665486822904954849366716911950928624598573247485950811692617830932316180247062244265396435954795910837792862356285939274675598387992264179201065746543855291182730259188952193959071228707980709280200253819488746589960718652471158309464173604243157336243440315928697836590476054711687167161999037583310806736869719994187191106410692238013796050964269345063825700236582270413044609479729957790259499434005478347978213409824604283539453269077285080235356760576157940955357761778940431105592146961797050593778634385948038921396249429584206261873071927810872075051805021789135833553139527435352329050527183461414447886508883888762359708049771997397827226748131235656231993550379321283791277542152759921914600784198217068815978653682307085251496359285616219150254321313505240582175357977573868002423597045540919726819963134856972558392382067408485084793346573299683317465331505245300107003992475806107386359195162719398872339628972834025275698869032627285036863149129681433638985031903501431172669602246081464090033288716812741471983039541268193764532072338910728966803272529812454185875265246589674867990210133030846636456910290465023696329682501677170521449277320065370873997224987709116227592583365956158441643492018958055052907995093023227717630431019438236967282956991626874074898342652473014839983957791499469450917646825827712251849462455968927229434282737855045127968053923490566497020176251197927508333295136980556280646013832898367407875152559022385016834578175100980120000596787618324131715907339031891659763835081439593812292568224743931102544340366776243512525374779779971665501654632735240052100050813043686919322610843274908995338524680605942371256593575856635671952162900730280689574544660813010870629556106197145936180019250368993607457585898476609481238690530010644042067378554741647405665107626897111927333614382573969893732340230341472799190422006468326067763194696855885119954501572905026819723801747981166644612017774849744187608785577521666783041748757208718146695672208587308489792892698515366741953377130143347343981662974018473891199458654298036100907437594431237446934551074777216391296859272751138951913885754159073161761870794195777700921478087318844415667576723438973655563374553521665984698667513064672523645643014276851198539281683676468713705296933306772504809607096698485867423362552315030850806290823226011822039381873400103755620086706371712802183143450121179485393020582785038117701537544236567301832107632471126279452946292116730838027064605482875186161813120049830893312219441447498845715231373288981345480103428226049160113492412206838202339235877894281657715816931007065011664969125395748159717391089171960379659417240785050293301176874592911215912954289969966764609727224448199696602157433079989093294713841467017328741158952873283662920474108253197856023523375557462531236577019400227231479309369809333902214307398451910679106759827690860529464054602479601295386205975905854184839312065305756950989547810632938241881394703681848115626919311013226310818825469165183219502496021419712783581475388974568571556150757753053259743433805389358583142663175997353257215554334311480576735699305412528825811581200580276629671820015134276488725294506616779505233490221048945683737454212340289524933746727988889408329816651360283536034472017079768794143610706194774980992042965995204737752630918449672438647645256227624407049373744119279059992242169813684647390136513011060695427277978532991031070926516134116899934043203578303325146440947302657717047374788465086127314820841297894018425983107705104329195175003035523626563140143963047347501715653546570059337338843057933106146729950376765846773377337436347756614268074255144254916569317926937232786692772190433751522664448496601178784619724554656673411710897087074948966344793769625534588976687258660322357491696903326686472828512663150305958780435764015224693375052337379887232200171782072208441731609295642641724559882561527676547758711459750886980592626074214262227272540880218840399635116742811930795751130205796923881741590647025898226862057170328903869674462451864756216561918153814370067782632868633667037528125811296346411095438293816445098328494696252524051824551079234139568449411679356086646864856605768643431561488900586089373284166292411257763086555157095314779769157559582149861526716897955503974354203295197271377690755934591075393307275141982448494629622212897990571140958346321019227888921698729749896647968303472158655140333356707635031306702044579311342118871778771999015392230637005536693874382863111089806185398135371097119843800259408887591803965781061938550492764872392354992376394039641845044442593249226230562093222882756431963637157350411937083610653943156457711180533944749305141672006808993962140896639615104827948525013360443461846783868538541288248546992914824637431408640837639331271744709384526128606458990526226362614928775755794694733054487114999001749883138763997429730463620999940739364001200061709222125924834349320572554424871064113822735922247622779553349589101747110360669819179817022426616555398897026942013286511555773623995408059148476481014864122415555875816203158103199939227843362816290907720845837201476890979102940736646815380841257489310062411581296132882639216473409122898704342235578422139243117652296865043913341990728181426491913291234176287518731090798594033444840834984647600192587610075994703455087949710339951108184937235186985630265676538044349832044101065178864499809257708859070963011565699957168468211003363564459686000944572530853661641811780187415586739157243959951462659234304355682343976452614750855486599285053795374137766087039039962911233797493579108472586815276047323994535856080384052377606890382237833437487339838469332642571014120035272446828129686844295781107742289943608988204004075526587597227840779271967129489029557898532721749134423877459684626525337517683331429411668755880370689690200532702024216869334719906505228135541286704786103400953381490472565902333948767364274290395770621446047443191639742338220074826583802252221363475919845089994519637643075022979774846928944405141946373066536194943696706538090059333869307586009302932113016820073791046397170992676090327656870175748306258038053734013410522680620540954029757134841333507947215787436381662711322994198372298466671044421016851205152315210814796949772521741083272077104826398678424139286594100725140536460359283941911970834445288822115545840700370940191664813188848465971014562351948194277411887000916639344094555492809949270787624714554828114967873954079694049989548474094859048348972311926572185442494499983417817918300124035555702594825733051082639989219793782344285383618119268323026048184571217931081448183017290258637261986877785988818399339177623048924081626614172223607114907907829324691312931413490589220964990349101729949975456386130058395068703210271920923623160665088445338287948208218602950795519699785974537342094365173023087397098698109067907913142209920191814339806684705035332331143317314591861207613771086427545952316018165190008231159589263306533175003346484574201815116641780546198107620089800965280647052767512487813324584112409931659347791022648338975044273536772113991755712657575268899895381399364742394125844937544173631065590995447470234370651694163875050260442168285056367270194132167999376257456919198180751112596905901788011363074311389204048850416289102027538230736259246264604923571146050446671172294605934518269695086101103594419237588252595281131944057514653874899854686587227605285235698665938357993900243025250366280407053296805742334316325919535577437114118427970256675777867843244031524003691609251585506443363354185526425535414753474655244299060669323709746567291502603223813166888320532761929200550903495051658903643050410812094938396302433906490427951606524534810540864886459187453503681535239711476961635935488510814238288132279641750769115283151787272354310101631736961997486768438054637038658046931497129119766147803734935067479925548426707434844784461095762555516980836270894727233451833108489898694807403390556342357585014541655937937934717327520658626892449951601724111975008448633966502944962649316439887015316975205335622967128471547535699661835761158531828686264201927853673665602936770443324113646933446733488690712913866906789064148119140264006333684879591177541754063676025362808099862406221031452259156987766289060887274332682242416025805873745826939486867086684978136866246969091334758014146794560181953918441992122633965605576205158380340726112874750103088152481192514153188623373162730815188039877580259221013773987934205890253840444901385832326278095877128147931073688517100193354819763026593237550563573151207768056395723007188626928522784206788184130616119556302983707822172504546053856154733635367451460008342839738657527314011376371357008552294340785882620046165919770898397930135131722333051104665269042073931366223421345286055715055705642757263468516519687132706878887991816533134252534510100679881878980980124405961688004874262486098894515699001817199486017223570943648759185444970748151855415955604324401503777762174854682681534890045299115960166415204203736462927539358352672763813970053818300930920921642264139086510852600142520323420113539540524543164601450557445745038370288995364244552605055959100290703439851459313467991504833463178145123130254714289990072217932928543309195642103194736456464536011861076678422994678322752124772980444132196019890785356272798899683406642117385396218003774800265404971827085814132010511385905959079443430601292189790429744775975539848012728941801201646909749155024455431932088569453423161193645206326560988956596361539570162675329837533976214637573227043957428935517729476281833138820655940213191945524368967444633108189103563558441208490332126036684914556736130784527417022553611972727388492544463530255252572045394236226276555197994257399121651934603936378181260500832183519381687244327280425043915497825256644537883585008164484143525207660851662175165122919484494031043430337984917857604197512149304761476654208446627316140640459375867632503065307529126068611859679357351951764772056246521506436947458323528816393647197202468848598621336486070722894052680464975101320547983686942505309042394935366611433434004226064199785004939439214556343589166841248247013841467035318357003517227665281712026331287935601032859302830695678552036512444221770091219492559965154182209690401402742158118804804497141726979557609022976657977809583826158344825432188923396069941024848556363762810430014901982342768265025373175730960152538794851675168898365063347590153524946452694454244850616284988587621181173167063357793633343401021858608944619677160453668574245055754217765007901602617605598276364386757094603575729709110107232418348671365356234404108099373382279734324328989101451252666633964402347739525654395060920731594865449781428998898844171399069201238399239743866551124595878687266617124437181699812507127137967155665116492814652946867140375563105863971751036845805946674311021798710884668236097066542675192776562241957485175691176604839683016492931489378520831981939988271925045906770268857352382971817783102772406284203600262979426205459804670351033546584872916475912868837576955343450822686651066456605420812518216383404407006842815522640249139051666555298863826143920239593380832675801288361767303325415374454897820832837912546519729132528315546193935068544604037955483353348057510857162840937244311913585753797152965645805374464661938308187090440556939333533441180361213842689756290478562945973993350549336484256381546368521769253361976979148722590431878308346993829503320132876716448525938952037622230573306564748954124811694420233936648138001588093346599987446061567379019609769685756735110334942437711690322624716130802458545573762695405837910333519090538361084121459806236358310294916499486017697948674060804209557806346086316219829823656897570898657582349794850211122261299252568974577059398211577611762583500539515027045888328309154569529950270528223307377647074114703002885382329302511926808347030163049079374335116223435949419853202033966668202837329948991934685311373205366375017601651077246797237122595109190127105732146183091573692766760529604919708677159785590334684847036643888232089003459746260768104137571441144848196141315577331085175315873956766465917563918753467088888656434309462457950516568189249660655668242997274704491597777575804208041468851092944909170914544845902866819143172466487151424316520810269271129070859966462666857011098506947375287463637398602742873279012173735696253680342702694527418357228320228784914898392362525310281774815094004631958091714651289211549452681023051497426073869723986954612249683043452774251466213346063925058623425731071263068034892769530004951045378759128970929883957296708104445420860423719866369649494881144960015271973668797124137962719972165592008272847436341478973855382411832885144643736268116561885304522428289186216451405218465770550692066913323513515972099590634183590278948323935702030362454247381426708149178199323623126809515256371458767479224740405966781446462440186691906198003147633087853902665261635779743909954884528404628225687356617541249053642913890774127503792482935652271091571210409543497392359449896684523237207589982211043369003190513939555421543179245765700042197602699523206107615228993081750383098905829364154910198092325007258681939316363412289702487292007663491791082473616062155503117638179696544973676003236376901128434302936628734409018895335239553780709774935228269811197029905101377529587576266326544042731472899100935400827442082893496585412083985375934658162577581622876448072894152632521236348493085290646587457283150742462529157646418658885076115122891585476700420379777992767416469381181852810968887868261082034548612225771397805446579132682488846368711005784213710592822779547834402690656617458782386751814858848812684859453760901860380925768090167073709523946734795131563933693049314196462895859727047598479792787100512919291372643909422264313654688436368544245118946707264137300064144187824927339707994512208584194388088473337026357591129555872202890299365640093030728914223449813367910793862517365217041375088747848420286815476716091374873382249760209040084269235008434724781230153114243378077258039261069707912851907602561867050995908707945463204777701800107639754323818386983675299263463014727189753763029258991236572033011949663479789731584188620594293149504806173082463522079964867576062559399305387009858120458715688969975600682975669739043104860264439851550269283320083237680370942055150835569669325342115200005673895635509533297208676560036011004400134947395077804471884401504386570580977535751405845582716896621736583948246303877229601281597282361187182750211156890756649263554034054268852057347701456704708745668347205199962257634772037906627904043367044333526676635186246615992701850365900399200360170800218763072451364794322699637994600973423369179251412062277784004598597319325822102135684899596749940462829897587360434674986086307100074620980716464812438251389726987682760821420284453668470704337004557849879061480226160876165419254015883507648744299131167572061576694635016320349155099536270536035708151068080627240015708486220127251523154806922695952207660215901625885140379163465718986921389343622500884796915148845207862383758790217596365227357857124175919352453905301217200775449368320612116771877360452078791081975452616381127006594862379935163354287616106434707966866142160537928547243310998802474087572344954308772719346719814111264382588669865514819198389191638906104228732060053817069043721882817659088940048078446972710082893959048728248380955474450513347147537824235526796029047722633551404980737269205712126456393357477006557919319639052368205479784154260229974179562396892075020209692602588957453571682969088691766769958332365118889405044362225195855830263812120416888195857103936156244258594956830490080292402437888363244246781134005423677878362737372737802629921488399605817473506842031495054144958420719634823376137883902492963843519849307895588303294236872017906772246445400672401365540714582334774013533395106870862744306773583611274886402396223786957214949981366990689514143349799055118741888664472157634374745016713776751932709191454655631887062919065962209868277855545804923040334548400769526578295938336530924386317642782653333757212665798858444264602699454349001293424940263202482428471667867649663040348893422440469613162538707443985684332738958068329253022123480612744998084437280417469626556642645782654972922496809714156669162977441884660708653972936342244024076889197855364087096884366680331116114145941192226494589245777701028266619725675927705262920060701146351303960171769086078000224421814911260462752553577376354663830536454895515330199487172484621298190825796061987713835025177804259047368503269652302298351563710779125870171175639992966513255648220490522142388628869004765394148352422270423357452567667471398771819392262323217171411088115480986117408430254861276701069539144643597117634655362643667727782801252096791815385916990823391722554717791282068647846196474672664491042947140691323952664174777732641367586015300232703758734546662649819588745662658415330972350559041562922666656614149770997694125384742471393203099139262394305757953820883450117813448510393413498209485480295974622138251510230617832951513323732082112489420005833573742951979607462692995909160018823869371175300298177995017040552488360335296708423496239914040204620942360637344617849982310540453250192444217727953863899854441213360855539052363798483574535301311867479300213146147104239019065082742913318146035202530520399293407637801317848450254472445281414213352064140165359172640996978772199731246802147290646775763233260958251989562894597991320337211866380888478272471585772295971853662002478242039141496662468995914332276925518577725728225989818130379446080946871024521917721060942735642870896531305117360135072773610293510096219513541044753514048198638436285926656829562547324049814621965904752323707996119570114738189469780305149902663481604155904224527680217851839517929094495250621946818765543679869562528258280004894836078802504509783055001522323049184338136244917609530197115217158541374312968942075344058558399825130668572508911642352147529964378434375071656811752096590919458084135674305580920315851552177868292687172671506261059080064668920098539964862455282500797759716583710206194812719732415626900212209961001265314970036115349140014375055915440735184904478410450761900520793898864366412888415642996422521606506006184087318454842068673816365747678113599833612168773710557839816729853754752468659352136009069090632242338064854581934909293714087642709351201192774312888518396218963259333715558199739702013366276200411960949195832485376691224466089557931646657664316639375258053926132277776846328656417921432006227939479606833729142903209712673956432077509909091294682964331069450986108355357366864454613650120804416858295289463554342721640891085307895138184971942658870756620377069257757756177510757545906128561836650574357730358981898304267933596928409253092497203983196872078963539804138450196280572888569196924654625938606709264885391946469185248364784804353556662970446951916388532261690239008476536471693996577430749346089831170374990047045323959450708964403989532497727348122463267383510027313720442210179067519741736058301696358015524299919636428272889624785577223132017526638219290503600670654947074506682668623603938217212341659820146224676006871037149293303802755888032823321819643223269960386329480819811366573146163053156988404648320627217755019814408030120602778677029143009075865351731221652738698365731692355156319760713330091351286081265959744654853327685793314850173020486916257862943628253367473587867951426884024865117278788085248105928630047189215585468722757335969456054778069297651489998692661485393285599211913675068788781267210170333600356698512187687587922529170845197886010163064099700322251806574988475075770244137335530321834405958961848112487961120510417922477476505124731021445336221814023959389301915897405214725984339038614457102377861923793159079699439888443204054062315018673217940368773450287251663830672155995567056379637836222455354211812662691352218267616668903241035654030171690579496441980218267716227818810586066924752274265595969917006715214066029611739849715582237734840145314609205095959711143127832007825175604691886132159916977014687125021975387595532690797348569555501937425488026492897235779936984222767885730518696930096116476959517716821455167248530336338862498123679126935994512864217024658257284641671666231804623010338937799428241665085473956278836147818204017861304248152508588803393393789252733567981745866671500328373704282083413415988423810787225314019655532377606271639201999883268644810805107563112648946606775076553765481071398563773183142997432401953718315617725175323857088438831367046679296874735859914153990644548034467430951498554303024435953601388858572114583263126393593018016240688726563534774443173621615464544038767889684505233044317010168945744186436849215171322574078039091279410192694293613394147040876895115306162167291871976484655484990733142079614073712674651737361979587258202644593555406992877309008167195748706071848890404495596553052585837747285229958599497141769423295319955722342636188511614894680342836409191557670912644595683841388605564490233880311145939600402774843195010505837753019065294783302036608900197887494196196123027022155011567232054072254071697217506727885262107312106943500516672974252894049442187372767483036464544008164843736271916856477816489935842342373015142948592443183009054662697371757208671280660221409831327702306633488764777560585707148027953790674980261723484071070962345170874736323241763767999863958308060121407788736628580181745558075476350215798907964377767909240553080956482504634458518144382051309147629229117856736811511529307950869725212485654983657241304086168561057235900347467484444979073929117463718293120230419537922184585942229657807767515890975812635261294297678549962007934362942143545507647434828182901892499452109852418681413682797083874009516971747059312056136036509356942032494798046949788349958353031455507219227040409204284009934161131752043999304751169402904542338914089106818742912672596298066324742945290805161211782978324976139453271315307201796935890338131300830968068790405727979683547584224092555209404443909357710897749165008968996386815400412094719090754161916810095816120803870527603167892404582185075247235477582037130891813841909662231470488345736401979089702697470167763525448729424656070438266799663211550620065458219666425434451226722167646046860312865817269371951332839776481834141569858984206942283953984164298490341165849600601408776982527274462784847542272291318857445702697923783954252138344672757944124426635450276610877375721509322101048731390472525590920519599271709347779774889007614224228003002015151678871200860753185255555364964384126006051733136716332662329021257766717175824384236741190145704363760039066031524692994436050229199869862136901612154488590609712866334095023784970433913284993329439932880280602059467883832864355330845176818926019260646156175426320518101226499619974252965150879391890515716547799804884403061474158307443836464908833204111680870192784445095833966406536103447752541226701727542920199816550196633666495080008783270548839784490594563152356008513166784796914510546827404952925189687460348281665077538061970992563474213275238300628071738398059425323938594039747272451067444254525856844898240590189144511655011969550194865089081322866762353070037475304955470595507121593724231855215059764196407113126952440186604710433875492305137898726478831870629476251744085354646575162320394680349344689527686274504753489915644650340669954098385673677676495765299589803982374910727469879193343334482743294132653659167428601429919327025459402142498688391697996014730209082736478865993200679708898672857006247064765640423936802230918670770689234544495838842447815976141226517054308024590725572457966639418605149133691938694070797997707402125917968380326537702101444054974351782964684698365514999500526228992434954305054453269575251936197647070279002134566924115158635005130341352795671199759802150319649849437073122672117802698754395815978625975751116103235956738022108601091428525849283224922949343940161954520924771733548637303891387199227246112730660497223562603729154199154209143278815280612161083541004958565119908339690155686331427043532439643163748253899741453571371454430945057514541605332971583253314992967018078611193756528227747186580351736367276601749582052768809984612103413069389812856062819975582043520112591694786124117113398856396753938685650251494531466611559058944946117389475465937521804394344299800136937424139692584957801235799742846904525327944557423986863554769451706828191130801515684667751217060727667953049303193701305580994578910682135593288611253442486283772283781721486911751136704544831780580060582650256848465136633201695195790636965493982495256141286340214207986815778633618276667632910088964596313330588567696961780106176090202234333783245883770735512540407928736431768126231153695130017653164064084409039195284060301928396154247945957526845596479262791208483641375652736509672717967886290424094604214845210224674129613756200120094801235907280928876000543016688378200832259540928728866511395374699290068511721439461180910899036035474667135918261920879552154941784415084760078066260430582962423765671966179111483315831681378163895674791969884685096328824663657054209438293859368745915057619677131439012148187903691120734130907421279350840139352848863003436695759789714706246732166346568032651752230927106110010816226285926911371826180933314245688124216639801631900119509269043440304484316254779185288389585036404589889231649806388964487009962029034290216875603066124384859934114856836026478385816131888011758542989635482513422265544945469549128589157843659351046869521021938103216954231665458219204393660374871321718495367076895467441010861566158544082601890922974028949932854910550966617039625438248551944986358958476329974658019578283359973144870910024427323072884402137847964618980044751880162455775017373635783023995081001495957721340115504207661963936265020094574369486632578278673301247542785294665253644628337929266316506976174400767281183107142602280774208947277037752694500963331524783645387496615818598655822259165950081258616520153340475452298427607256742128414475424011361515770871114311972701773530823878799795003631101489529739294605730022732908447990240677655144210659747975317279594647623199054646422062043146918959456836356972022694058438870208001749680398237010052260246906119233709444951966886030550464057617076879940158507851222893069804350724528416744435812773743378065642324547849521638396907540887682549826861683044808908913225146221555548292215018495573789556457597498248148913180627862471049291846569773767023469195408032705500109380358999134152106415082801133961202971649472864395474504613849825029095508001800136260143480982897657240225737433380768218878194928474265114351069301804029243895400293144399438742687026280451835452907010120169040997042780389154546116248237267890188702927155583057294351236823195777631511294785250244486437730465448799914375354520864652337210501807549496531373918399767007201188949198349612223392859791227633511028843035589192058987280973608658599972392230140680541501485478952727248985842836613550306973827057935537643560824498614704945720058463782986819364829297131687878115825311436851766157589364371220688666339846081581757583879944846572476524291457470179427455073883854856113034413812734175216839244234736934951843407554754801993478216457821325591036800618910383266920153397777317300359911837850509718648067527584726979674562402882914891347718224530776216903257062199565933695992755566371827565807347024194316770898830673986503267441711674583969261294641695904440517749340451926739960968098659114813619440684185857067672864027999172518351902749940553952843373427245630778828313863712146094519906327455210866012936467862668022884938274872611873675681510816985123334813863500144917539120374244491795852415204594421800710425015030778448692182007251040482837555596456137444836203505327249205912442283400610770131871026836239351431114892387678486387843777351012565048396045881073674499291118521467955294666755386880250094327574028882215606087197554381964324844550598983100390268296670085043031084186778184868760666669859912365369779991542382475649960146820995123718368561838609192224729852015906243776041412036744906538348286018283782649292180187327070723428732855393762198488790664886408241510161074819738763740194180632622928832320944009503480701102416211654302666207356483093711040016544699506542877739096694220432026246434291564965958322781186318410738463606271692911024124026323299028311743912039370724139151724659765648794296448825787765504766449808230468453083016560665125415201022891530661517104160247212167450672004637649347386722047257350182752662619964804354784311085099284098562736953655557513482017967685049767852992802564457507948520184327078740259123769045209616425213011193952393806728407284152132114443415944423590582276535716495342305106806217255171138213759397559832981500895323540780501675345854501452483152070242362480759629374119652685947802819637996659304372766788927795389707855466745200755436403237488919831240132941120852832372754330217302798390201027072484007131261944473040907855208024942638029965622215630986159795475639602243542503319293736060321542481060922060990291093098407380348896419803407539300087749854102422560667147155412249668927656651946475871512956569043811723869794750488959786887813871460262733457274517698460947529042489106161620961513663245641011848870566024314988500128998967641205039678494069967357241888579104502757325426251779531854678445360970805598536468404910835270141368089924970701507942930603641000594157351792931590564530006968698652929820857767115008008169126470676950372916208730197334688068520786944610990180533281242216894774684658369819803212868959128699758002337668425995208214309987098631314741440582308457434284562919349256027453053918829546566285969018273440708419900482828432019012634419645030852946435883788811952940920723046759710673879396938391650384929022812820148749598830867654500776005458480693717227244618597246535924241941028803979349663667211759058038803974723180854058947427126462305942426023691908356827256941266064865616892798144877170647584254508410738767767569963781143782295764091012920785584405131587424943945390507191023738441698894298723955664841331054858016265966547267665610438283417648554182396067246379996051124910838138674620427088357514367015010057640596902728641913426185585444498453470358869192635493208458647576649450473225533679601547509628218608817401131851936228205586513045351252519045310416394124562586152990147673392205639006202778345510681627428875103429687909088280739318918364745407692424856112295243864683073449396944072883704039147679658300386820706346930752116911386392053511883395057509484815978904203764010365443801915796377293100721672997078033025512581238825025907319352272463617833135218714688870036361460318062155699442844128074455797105374891655926320155956431426879075604440526103338761984910987003536295961864330499638002298578074712482782279529119533239789421273211715662562080416042367905892832789924394062167729207163466339545123067289577905086978058091098460936437873196548370068741015952067773599368410009201845403005935835223250701358167829292501709303795325459254383823899846492370431768696433709513476337521965354188627717846464135011364818147700387022349931208877880039435912357658324329516615816769104984977015451071792367665104349702238634998124055540816287112579679552866116716594549981519553861426492854850623835415281072303490125274127247732813984890310043881324057607402949271471505042314957228329691266387720375159645363646791530594157101682591579522599145256441186810933619423715200175499218913168559974074513307535857749921281290317756692261033426932849458919647504425204426163139571616354623797366060437816727090360554302577450711078136855899471574208555610935710848649930949461165212256304255428954757022090068051126006834016970034619337545941568834853252297862207599195524755054274412530281070906349837327148896308455804015776926901608434233129145881636632377729801773394526604000419266616876515651242947118855906541344218223679519288703641326695798468064964017637940160588359269181994431683726476376774404747443312107811495218956199431492360320860058584699750369475557591835484473199390878398160606206026590035878480569263700556330111047029937841019249643161551365338292868893820216496427249222894194986174363128565567236879849793477202756093031542079511554853343388058671737667358003034550303935598842090271727450499054961741962767984587762761251396309119010692593431870946646387871186345324276527025310027911292229269819486701573217358629801427595231993949241571302451303310752885816037226429212986692053018623798971293705821993718232440601107418590792268658980979113589693020750459180758038112828873796342773263706972431962927456298582479417218709636398472940758798317109986202092925914331416676375700966928191036017281980432411844580791283335161133710902981542233222376857600367884106483141690643497418904240235139668544540802607510644502416239668275654364471674549023547259041946866002082839319303414171611231418447553802969956445997336645671790004172564325932298235210008491593352171787085242755056966020868327631536412568671091166887985036396970192705645994132017201827417513574761212594117009236176593727913516763797358015481074751155883707084396260429802852608586554332462807491744338627436724013304494528587570300706746208156449963881252845071985494003067207909857582679661829291831777381569721397438865983558885798594253348838554493749906653721861244501336438610838420026368832695813247855202995102743103364865843437270318241617012819935045866543569156098851699083253368678195149987513469102863116398686599669016377345832302553563779986650833411031233034156455084375470530185132379318419625365779889575210294195898282792346228563823263757323213237511141256123569252811265400930772948462243454535554115317475239344751898381619143220170805430752704287218871918281736009798671738433322044273261718622711615384256120352283875006405812175668570064379654212283650030273866596193738246328098707744830142352802377516138387254439046772201023663320850821795233166969193396682592222315677944018028589917842473927993048226404433389942211714911416944974825045190859474477084788230905102353999345246134768757073382069839487271218139515132672856167432101289193770966619264310857056723364287032287018807688668075771228699173957333631939125570402671553926961113547882802097934133372436219798685241836331182352713206494590942431987397592779959818670132898412801462940866326160783130039200995139158264299675731954876781087996735273796383942012028251673392900532217105732782883292410135351543650371580228882480029643168850941785111507992368376796312561770760997890529990360517132647080807070795811736383613028297918641533757335996693985740083586180082315000584215752885724611895157099743858427905020515943784531791131328119462734718195065963536849967986313406182472103576877977721705821419818731993026784872173909649678182604167301124818891225519572569587322659833926632545272474740653615314284972533931823239826792179808426399783078183040217880279736069123372724076694797446134748601916149403854156058730846923462060080436100056058732594159951129397306686270174807496124272022684314743547381268482082005824513341067963255421692817723981244909997773743964556113361898211954335231521980657549922488408368742499943790807410917685570873266812148351818753685982294785437331834517831125378359477476793825027670860475252398714957834440075687916653579419768077604036285337106935284157807684610159215440789198830198500282122086433877076010215668064520137668038891875199363332960047295935738078514529003826517705272065608364154886436696737290404287448979492036461932896855899425913378043245913317713049982298144372205685827545274811737203189188697473010005805151934379126282941561645767418899877964482213831066477344388127458307158635358858408638479803829150740550267121211925326175662003420226907292902528466763988204104247841548440418919545744626672305532738780044646164316299740877448910076454241115155843147426315165083574753579461925906214466013567003245193767473829869527517256489857234464074041889677454428078346761173876786096339741080593061416212460691210079832392608117716844403289155313513154982528639135610990602664413974900365648154006576770587695710857294231732065571905387019717076010658670703799249441268444779814029471586405888265211268750215775251177321712750136953431359563982099937901142127511252712427706684184902691208921370474003279132546621244535125351249762904741313721825273710032458716600769320453123269024037937354195881550105084213460345278204682671216765060372248755252819262174502079682468330043384166686531721012296303207877725420920901891212533854294791106989227282118512821443984055970181269924955165232527953808726598014150721381945370589404233538014547282083104393729808774851969605468733713244556588702237481652896810897897275587981162729221366698944112772315975108952633048130391849721158164756436092945586137354735174698047770576553340356899822493074953613553614793441896649286118283842222736767009803022537799180803460906559358777534699366633665897366607406335741576920063902275793947024626573251071984597059189729497225560947580656970108056242241531049960568539221441011201284312931890047067065217745026847765294667432925761822860490959811800066435408965069298385043198446553550466319418350947449770445383432624213473685934981976240015654526542606830968840755442457117273724028041820042011103313857040556324638119401836548180370607649559562985621242802699759336554484845149586405651316679343150260833423464270842814540440265510109322789674484461350204314833914046176367650978389310197085204673155585574810414327954169096684731503477917618206033418292726128393208255997205861941672422291159837818641243291579474088298291623160690126540187899323096157457696372335407723173102674385937332903106928690640673145030061832228367440214164819305505521852247118227123844246133852213403052256025329767403683139531466425472472934261620051655889821082031548939361465948872685529532228249310644917653181798692618552695982012176152934709818295014821121784881381817495133619584018814697265342327667631011641376280860835858034737773220899541509043431415375882166070071882637309798693095019376911924142767171949719389704824250140155736722050141082493834144878887540618297215048747834836323300198651937937060789803793399602446185423240903515975424724126710707712571491389387452300038063160574577384633318134487754173048039035281765140884888080956521831476253614318726349010884181912316250134131495352984992691493978024774588472351050889537302888243933481089632836189547575173330547177280641369014752216635137580415955905228561890740238698381648728922965362896651074054122881375062876510510190909170190518449104167924090013550119293013478283614890412818519432357906480216058388505333678932184679227844276109161384868678898533451448908973342898344030570789393077100030623291429522450330476753750958455878897845040865127051757682884480970136674989369259617799650602405697182709619713274140736699416220660816688305957466411613281111068216766440740010092261367788720357271798795838154519728269476879005330385471617287509602050762381972970222146764844578999171611782627798537838001726839274398791745410094647703929774786211627722952260037342799184368413275788514213273592268236996681814890985048328113243206643350667399019023065380957056064290173048021496322763732415040665781894274491244283911355447287189220075054364323032723288281184913587383193660745545629099593053945405320655856896140591178470242578712759880433183807246704819082386319052141927481911258501562352079240526850472433116159521954571589405148260927217530167122323172107756174156583909934608914003685302819982410096746217187496429275011172857217810991396269604564208802035548559596283268134132298976940232339904046595982498285632600251924667130750945404602705924323954799508863359678309780889520594121475146263761534791869297145586529843028983468179022262293473318940594424736338880422552383650744896164168453923951564986016386596428410397173853466555581752996672779657334890808652145460091776828700274641590117332022017390391320174110378166163065163158264991784879506832462578675534355384542039512885473840723967988210460445224888788206734307220079708267340574343501256336084275901345496568947101861465868130514171968078479060415561419006612562385572794275872329272009028946652579759381113172120993141883681002367926552917918084787959818905905742463023983927566306854549249220276350338528998595873189643863990099221331959183794946056008033875596417533560620879986493116340990496611027537103253594110950670148176178355612604710629793658983358344034449302489568890161564987717263077626176476432502052500537313172104457314205450719584747218920747453707214965039000495430436381767916940335355011833403177422847046286136506734487815963118392917438608091484495326051508230133086209468521116638294180166249568522080552149177073080232190273496699155856678097500411146440094952188528390407091236392275839257783582212772079872127332119385370546171093621658762906573762655404658877710136661892917994784048350509495187236824009994784111647565610973102317929224006162864757535240311967429616312181331429762021429778922304475048342157132221699930537066973666895154153854071401331918648285815961429683812814748097590640163789440174261391017761547093498779927471660922831702494287909516745820626505438875759720297304685785766911263517291455139709714642414857434160539980885838547531682387892201161919762537768062781542596290407347165798987600009225436346858471948538660220572989691237825375124370290596828332565507288948194023599883489234521879846236197212696013968627488416116212287106258984894060568724409163343608182214645440149598413618261394858647617357161184996078525053793993940843584197605639185049479616264051659442408583025301901474492961493337480935222056901896956761670546253145429209500610182424262696684436808517505282064927321637771606718911126854471957594164687529652901443771349409570331722154609733976967564919071423778110678903670714817705219027431036565445429479349496971675292595332453988520848590441892165209574240995389846920911275568763380843301353310426898755136078369346537480426518328009851311151966066866935845801187422051173915428560365747898664838119015813341982397431699666062061930819462710900305964475976165435173941714513407459625538527006948370123013700452762394026945906510775979775380361863645839205026263097993603262495183691049441979498053118237432411785709182997528621587034049874591911927856922284444558644103793183300137803281182783749376011681326855888273212666557362286589592068993726827025216693556559546056638273196252253457353712332075125365392930423197238358114683434470376889260041382542510421211844937140384253999390284872203456536152175502914956675261413486730805970485131382243694202791275489651731471075926261659876796955101074261907775479867148155395109965536191693018256107088453993241627715001503794773113181561164622273261360568245144390519537588881998870567339053927873490791007471055291451015392549656387488173508463259549268707626864315566366221548267707027166609693952101828752259141363045866010980947294362191713337602961277987603153065829840406259394075703255035380451327802187082369257609937486691741375857075966172263239001860662878299571352561125881598240124634956579022908450291667825247953185752174126328255000155984140876947097671105750443481878769602293158257115816484767705441667324270203443808437676710615229897262201598871930675370179170563239827802551181506101977739724534835603983054096243022176656512379740204361876714477850103045605032433778722254322151947234785480397306447116551168830130149835232886654426331450164292847941936680066001939595693432829664223489048192281778259442782709880992272713672895662757491010560462219633226591645764456367692575397100753523756070286656816945725296186240861498351612758492757784770763247742292232978725829565323065612292035191328527574366905665854077892788891694798185199660372332914755091121668342618472664220831661978796964232319149908385537035171488625080352283726207697112725260361084539817206110945654129315246812033328640800680026392066721451610272784967307184115484995246600807151243660296909503154403501547746866786330861499461929036070478382752844272938983769790948681037659638511177524179055262004609131864751096786048941528103472789662281396838146528549229155425551206194993546510004576143360012719823556389889023698305108618746284653135573092055318257309805296237574050755796578560837865326542248615164239432512370953304511447263801869684752579082165150085088358250553537405266661442591839215514410849288134138708731143428339309722860668665777055713494009172621815179955999064095361895557265232240912374964982780437792247490631602526897069096910824519394769972531522459387087755766639242164656942544001228433424581422779037573834388514884765858077723762470552235877712186948042780955355453955660525708493523397973838166697409219936973729990444157931741718942763406172889246235624767846044104934713394920825149755246177757540663815711061069665198548282519949690827354161416199935497958890297333633268876896052338968884846752416210617076008014491486569887929983810447162956039275952163703868340377731428953068300558270203637031454445976750676379633137450089041421315993205662685853763624410420875085233403698748216241590712659856590308072297064079622026439088319469631960797273275163997187786580825899422117242379887605944373925546414663051069676768356245325217618742644708225348041444469977163662149136839018112703255117688948459071488758604756917699188888037003214106644983997721884655037932835408802752973715747912717586270324827783941689631081664719532493234409224553580280254550794420418118628797327814323359267084657529564008336106226214092044179051547739404638572863221901437334329016978837732026788072821531950907958547684055417496882961885118845604433505324101315521399850166382017238976988282103301986339357883439524230821402878740092926116630308980344415727344289799094090487128958683817592041971088319597585473571223083342555114408565364381089797988138981977662163996567475201301477090461860023031472825923449026199667472767092578281492674311348152245423664814085208583109419153223191263150396098088400800705768977761979792484190756597891999004934891276619394420662593554254736394167337783490991238592109150924106499222773051766586938385076220247991314204660620878021963680561591102534231610967555743995380834748894101442337402259342023723046862786944195776568069455752060404281083383185560542080567834422576435301428210414849574840590699032050324100194568525075634278840080686159377606189960869817676396309096562441647532511688776523951623678779297876678773195234893556441570847967039816659675024936923322539978157042873920422210447817809478107064642228697961109022502207848182887273241706181634897315086168338897409754405591405190155996494791824421107824686379493317059311513722363029004311195860061714126788273086654704573313475860739084090154241339738864484654717975633047855717571166016496115970818002870232548872422941634691304469712922910396710043717607738417074767203568827727138466370580716108667897728080058729100478033977925413698023231708473153773111152375106197817161339685532587548357467893628948866194849897035026959015994744120211045784503296049060365135240037129493121496289166073668305544178863136714936387354733357921780903703058375756022587960419676429648638450240026441450980991334879241231840576071731457909909108795029432654894451198859686794081286878616792222868385286942740316834688555246865729364397545629623861991308189768155136905342349638476653325118739377716968866691220926976936295869783703284505233546871028282382745520091938898049941944998617792966290210228731739171688818622746401763183615578656740073091179899555696704589799631849192987569274423060369984030375255723019335374577768797153525464979837988972986692396832871126685464511773642097037930957666402251541087598089420247117155693311887112470818236188084041590622839758523616415281502157929520325882230384975516441821298350026047026092875091165190013982727029551873499241650861489366157386680607332094086761989830269393762435123809981687261511783861524607731335811195471767047908394189342423874290915942752599713064804726411090444337433725273377939932916770449468535206506637753741727640276573876792957681508114258550520656155870899123460964225832547268535765039791040342738093664235471606555518372414771914345468208296077066621006141718724878451856498838199591872075711270536418115940249643602758931210705392413232745290749242462422714626697907873528399466645035818006931647107542426695591877656875307883581772316020250071902548755642197505265976711272792427429674215063786801473387631429118686383768652178825258038168231756036525563791857219646934051364482846239095588320417570274393963998957370202690325016149424910824767699405015310220535350104739864664756838773169613498463902919306705130601881300563411583481446899420838969822992035671131003836083566494471478242014781322232895487576075743561926581443389206209246131552798890730894186990515158190700657117608312751032733454064722714655611084279469778566707897698224573478105857029321281474505394146754558007621270918086745594218581280593302151730863170158387251032882569564869352282628541135336049083807742198809379405131262104768824241071572125762857266925012663331843357121832894844177112035509568827250107585982617347589746529277267649081794094988849643458655231824191032661100339604077178873541543952325156773385068654764612279688040309188488275035233829559803696871791096361496898524117507340149643484006848487179621475284000034489514230747048168702207629996446617279100900257683446403971079015971874647946935277654893021586435489882785855210903702672008495248949738012040869685154087326509703003376305002472130422860647991290099298780086170139070943314725273370554483998577285977571864882142110501832963505923921583922672317220552763434854384836703371947384680776149272320619681978083432896718349149303427566205647795080579128132784185826427918970162310245070850364668962802998013303307698222053881858121670462193947765506556999383336480744982968764403546364871480980112268340362216806667838621315060684149235018474062165152736118195859113022519582970175707613976323727715657425995695308541967368004191092188591398031729312683993696226853717894833381378374648158682562025163628791654722642060354741799523441474719766722635504427140913017953476671557195263032061701905165496956071716431526686249214295832719347394524155384227506931970661059373478868352384332795697047342243073322279399014556550790256747787011649498523904349354480351377009415783316889660241226686539558695013628078005823831745956645084950951084243022158794185633948120260465019486929744104479109364177496997589087075750649755363658844157716354038830618810922048421243473051425891806390631367253502314983095006470800972496623292753019446700404918955312326777361754088426907644168616903457922452285730479618271102379868638732306662333047916427427445936267696211712833766077138457032098218041493729610717216696618694387266195413036270502753689945190861276382588985604170906843727812773810425045831464164927394314100775454806175540772333280130908754121368978983093504990655112039663429708603684955074683584818151907640127954366747157070057267956316821666759443946639496752094928156390342211745647176116872484912977027897088095357399773815212509800711080254817614979079393198952765077085408023457850374254872581328996370171176435940095398332011017785207990854973689438585529155344957054011583015076513511807330229158300725848493751621605221676437783062970731387291505574795766453910088200633798839218042802784778294539145844831785267803998028656608685955260895460364593557250391107456376510705872585994780632669393747643722710033545309007006305087381198490441652585625274069983997421259504656386910709310666815577624274710028263189750690642718299879135688976313446584649837542137859967766893393245675657579205097183533451459156605356270936855197943884327328369966618278463570238953241291240238058239485968744803239224163684217213151923865697419344027829815894307111681798341981801692955239676052565978025175243942312470384652469291674844430593668686941221652046571363229839553493510519205292419955670818887664068027490256995123056484809647354390905026858703775704615504308631628094725837565526814722998293706493619483778126698298741485105047516481032329092769128317141407849131408459860588902292592044535650038337888987427407078191768420137980157139841257028196415014547419892482126188998512579304086903228142793637526038141973972848021530074887558700827367931324973759472065737019854491217189983045860048085778471874232859595035760583637778483731229392753989216080943452537074146155902994459815355715620127970608543577962529353786855993462115448729263724094915726549208473667823852692263108625946203710288327323906281614780419417794389735227590842138724892715413426201216535731465059785991786507316674573235967229234462594943786427830216658947536188028863275598436745917465862660596643701141282495169997591838782015286528720805665886399979149354409930935499878123511448055045073847496151587265356868235437591952368992519345930024081334889343731732524404472095957271297432034566131188558846134272415531385383088066359686069610328937942993030814322288440569211490873141457618986641577155597734647264685021139111486244086867673556452637482120689203481396555356582139486713884667524647693668064271917613672759090527212787574793383793536765462134907053793298532527120100777183010277416316790012854847475508192970894443812260805818746181523401030364556540340617946579285513161944933390555383698315646383911859419682101439459194789289911219989047388732241143991558816821483353715065592865890318829252501809478174547233944209434321786559636135235398456413056769336489616013948657910257329088356824521205686940152886220548212904490293232268107513865074391823709970601772740259519976650064490437895799516073999167159050302104443348987345042263032261608059670142597027233343541397030052241979284380949127751242993675684600670427632053712749268604790825421882215405626976533167335978300597747512464719314478509870406170242133296813386853707057348195298978767858386344497218356479369321817431657894244182425122753511460157497309591876631444810936527939810016871295890936649185182466710850661009975696579973895550305324290694292089120126152534949226391061534969428464756953638938609795668373340783385110130706429725396423543539440224041012960223203413133508536216893064441824047488106559394864191274760640341212561414398912834073686519348814843653012792801582873927695058277316034473217085410506791601063003884137433053845425410201257202292546283624060218639931803514473629716678510817730899767783228555874537733984280677305655807439910435633823248644069385908449681641138007741459600889241774516643672917147752470920552566243160280316446019728355509253048921079631668432513921472481552495529778101780254598589977902055082931099802194515008392282122398134651848700131966514513861752518269886675876234501984698584312808661047978480550385339948158254506921960221879624578120753877796391784673294696439817562693631044433355115592358638882990128853714177574265704766627615119985529014338967176120692931585567384466083988834230412623518405226868254303326109349265240065625519796869395194964007330513158633109110924703099193709618177104949387834586723010934012970424457637288654838022279900575373639896968218786011205616233907457334795408302078106889794790317738804868092132739267662800916208124960055560075049076836816487423096349486194286269408142284296250074609532507991942149134841520862961969104441859424340162026846379824407434407780096655854246967548530730198833690829588165576407655987118596746481800422687956478043921858429918195613245509316033567331223975342954421293603236473230574283999168167754749147696559666995826441855899946945246643495419180745031924189508692580547763852918548643520013117287382528483834317947967501300064554764184877577958164791669875126129477899120754414727640197325085182050832235119440266065489476224437973363665322122969994296360619786000165086719026278214826126108003250341317714236774726267775930406962406886007277505488120288882813371908347317393064206602733779317713291079531765659174277732095870066202162584621206290869044168887955940228386566836403929562458992064180329031481032250843325535039680130034296075322272813251178954633570295567976062908471421660444270374983996239614553254295973497295319105813609553137508199239138209300461987291616487032970451316531107793989893244587970498501611348357579405296265790802789375909256578443568865045442749090480081099345551016053461106949312710090726904488907582517822126092707117892452144604200792753589430800112578198109475444951483943731038677514331780173625748010849396092081137019123542156907219798853823157338025324654046959953962998704880182844395798271765742116306880885079469567541443077030368606292235429175058410449545256564614083847115275541337208781698045931184438536788050525975074812697597753822722143054828849923371473514595141841311937774767232270005175945116157716412635306756076153239719441910084476725875580232398649565646843817654697207092024377880310846338260499248354375277841932386200130972772831818943539785967917439951254171576185750344108530491619267795747961167662406629554041862015768386078205722028626551338540567601285020690174697202970150808252505375099133991151280464516045011373106912714960380737506799121698090308763072106246822409684184148012350772895604942460377012990291058459865142124381626636625718880955271167616837218509232608017310984234897106884040098433049577846306698165555212175568120418874687630120617860972164533717759577936303272774794765717828983268731247854829149826426544703476348580754430043454186562024546050264412191848420031666128345065068493964660242570557837320617036939431734552790050427782338784902225037453305695233404090068525597360029969289020676291401341203663559444114011014949710152595084041245480474520100985737540861219501854563536096760652257382217085456179078995762120255591400188407973017810127130407753548290414395815286666656434606873632229855321817225163487393853276292923557878296788106865295367886228127551366734804319493124954832499579093900718799085501386696270315543793981330940060262914296253566469623744686333364928942280265633323639866956608019428305231976524533482154515539343117801197251108611484038328059846391304150607896321582641919925349880282769034599777221223311943030213911138734376568654716656485043263765323530228642584968491995439033872995109681662002681209961286749248060374706452351378542739659277853090001909304741281618306083589971793806754091585482712745537943882182700600124778906355093908674760899073853623791275975701218119105420769843982305930394038501958735915479640834190215924114599700172463513326966893880438775212629336257893121507831448381690275828071244288193307764886850639025284880970038346771313300568139631109850238193154501548845558332297701860711075207117474304505851195757654643725159618147658566920375852824177288675544742665503754621828981313255341137958999644410639418419969225576244727852248699855048698384877894999420600292901325478006175051556817581684335121817489030912265292213659725157740382024458926503990405810130430022891865250542993506053906336156193650968685329488279026179250453486741722372581057629000890197194208350311967363010130366303678409539434058684395544317321241036536574289800715739534869641378392452683588342939846098820680136752243806741903409287580722561147068912568013032391806288682810986095878499146490074750821659905245974691649773673589978287638950433446856325190692104568788589451555378217177948040718947907451362561729561138472082869132296118286649936800788484222076729517698889059499088340594305829409105613643623823246013393703768124408978209185650760210145501804880843275097309140176981352055122965757783237420151040784810610027554155256725216854417201835316232544615873168017576712533641209203963015806404822646606211648137308356473614909606394367829412361933396443057733416344404796896706416032524539216851615828461822173078709465707720683185322581311033904794413400267400535291361229554418248898998643032615101160117827876583347266772075561251153064541323341737403912589991122984308399882238133925564632832412171460237479286146284972750099315041717882147245799762916569735174488171504320314608395736480095737891891282588074157362679059245610435941913416792113489521701628746700280683269749655693329516235906850541909059178213696031427166368685289747242514132677493065782865119202506145902365386654543341431931846651958061762984752188642308136924499534379310823455342197529675769293082550867257544167218359401869140792783818128016533061691959080409886312462454099802057010291589743861049138333498783233288428061509793937682065871979378136479975060274487363480543767642937060441631025079626471850219768269132969655967117454983876944580927018732624240049469333048142831653855215228825562203210513959149836540356537731044542700947436526845548572131260691545819576983388689130731489461703276098082958449222864672338030922071278374562103907576174887268536702484286264567865004339182559545749082765109215801625070709011778472002033521472502488622223574669155074817362010294675270769902024718772036271959926891229830848242135931680317560057394457150697141940320879224336803420917134363115036232053240770608856424242841667630635085402209780221789598585732944075948396976015702468621979834396599857754078738922215854721807052813584368233836849015355591418423642812898749391567062667520968609546061950264779579676363755804264344061958091920799260485558992030539933571516298215975249585396324489279642420985202958041994408393626869873374913210517434892340668544762231314401174507956670744320219232086563270595863172814250668539792567470491641997292651540350904595240142491971625165457869263141109304405328616184069647377667766011065128288457333541212094982723655025055989329405404619108309543442061052098864340880016582096563173872288272711258636320923834875484731731349152724093126395028768836499682915730429733720998781006877640830354359438467921639524464296246376720954742975441915771374384672181148130225194945082229418003158284112016905094964520313123130912751473741791496655360993177728495965170487043593982691187582571425532064169183413557343283659820441055766632448495967532010033551661425660725661764820982132021931807734831751465052885027937837948317877419603322560563349072461725439294706835617268063345861180905445462212731183560950009348867301053066935688369209077776721105602073657500944726326378733928691731190288411145009740443516253247607517459497732445148147254771734592487026025147546204287923223230914262118594426067924363450971449431924815271772857530066261459374659294599473742690940244727196868896600519244655506156407277194727288063579181984115259743669775990017912363165569421832028637108622045583148932073733404195813960566437787521255913075384322232373416031249662198470672992967021080475893237360915280690155518732462043652928235254142080368325175102205980549728052833810120664107411388815614847385603721123223995648766697895677323820605684005472885409432896299076713957867823859663695247048659917995295772664537134766400492975358522392347869716268668250185711881179248729382374896233128931923489860731675339370543216934148714997307066907893301543044705104284338742485080278154699042897673394847440436391632952656115422569366020437541755080316735775916714710431016324064239981227069416887406378254506048340019045142389901225255354012570021334414764859502393881633568447626600158404602525584387680012863943479168873882895706505450849770669747295681168387207873767415433104142051687185935745925129451385463035469329314501489617809461734964629897643783732778087421696788461996471425518972749680227421610086228133219485303254837991000088633127123356881785876414174705778921675066514432510870371851906289786508524755138714282229268287557911168985218999492356376220163953479302874121747235303020142424768354981800277034460427737307832420071289771538838200213218000465784531130678825190569499588683236763317085222919541479970685919835322233574704475196313072798080515897276294823441592869050456560652400521396233713330888490493577862285382926929193771793975546886432394730484661764503845785051240422510615637876230218726780365354156640931785752704807357520848948007871149997635696643713297747091939374662941408828337241177147247479678521360594438039131987808724980231546504346901037980343156393905759271945288597393876943848148258301133198567089010813492413567910121202225490505066865228757835503194793276219446517705637655595791953596721227422167900925173869537109036436063277195514909499666111447055980519196579888825563790045595985702963567295721187809990211910509366445726149494911146667510276748184470776585421906177410750304297362503490739591271456867406954647988613553767463615127028470582608477741188106676234660478108696369764616513340966855685580443915389774757124913604411919453745446171994912363796146814252586657418651479470352060750029873202523283075220840096134974329577089322320211675354828161868517314523601596283944062275946493459394963588610859381244322906980531980819354834591484696889595031938940560862540234828025519997000546647812361426500388298099110624026190987295312304245330347935395216750550792896888529309714196748056947652506915880149441472048672612727871206161307224126168912760691470324198448946207433141306947701916840572327036261538092150258515416850103021460599095225058122674517666658675500589656909926837732409863233739601852696940665452335538577655800587253637360684993937428047578270798160639946345916567307401907771517577177574006845442117643254612226774826347123106978637315961600063740618714357490626716000336990052026401389406627082291245304822616976383325095019149821604660484637200782547125534617032293936307855775592900519127479736108651095967675205889698812376379725072762569654234761548989818379087959865427646372354017496951375243652351171726826773735507457124792448228385305992079425730253504658011790069693114365960473575186022050328326658736832195915580244188658939085874749467038095368368083273772686735827255452209926240425631222938954026367756872236114882987387189721864442894000470090811323544782255645642217379514411210694333409417060986677745214786832190449371512182075448607150564544725844950873491638875006059170978611873090196190067915354497648950329869156661165955736276199390569144226486933806614241373892313362292306123730899826141779739676499561268533255155723939249089406829352570662593469896598920549069114429650028847055624197586521047968124332158358544105113655581672908615542234659796913683896981838740854664843455741163750184184098220573949176629004890315661613712861200363757428353084851728220435048488650083928652696507653868109183593876344865373025351669824739686503705492923256037075681587789390039508776211041832801324145144374368390130745423075216974810590172578455001500753648361083157006783744064120380473035908630442324373078149915504815806470664624260226901329472641522891862864568146569087907760048924821339390210526981130909620368322747439798966725099473747936378303830011929004645884272585958961533165749377291980566003777672955523098130028329039566621217864076509469799239508040144441424264414689178704331809168375019951469937710096555176380165538931626599551887427841455903555003518020356628847827520950459093227533485437786159895769208040388632415118595984037448499886658817396052965025863021606851756314521021658868320594402617593340898454171007212484045741368797091610316468687086962864309366979246263024911531530004356340161057756909300597281609893828118662082724980568890813251300082475008280080990713792149043091648617617395281805581081141487874174820887838834709051807933198983183136182488175740227492900311935602073226645624749545703366632748869638098347642681355616729686058473841676368418199806638551873459293653509015138288863950106472573422242584843194403873526422694066896150495194213120417530216288536044227549213667479681815779744688655976346797376165607125239428455850370066804538800781127299178168344073416566037055444700941749809188212027025409656538908004264064452483893723469018211560123433168145660461354126542559973564010327880411411391922713048660464644367366613436265719183602238254126529954507587305292927688031299971703671379468141372234951230774478707169517499003126843763316750564852242772461575086872594662074986346926416719614531011740080757135751908926419625553997362098804484388936127740870760166676929261290203543094049973864257544199469167160695133456990269297410016818335958333700242565639653275849043267902136196609010464550106788604396363456127351369446801265739993892429485862748288769533631990344325452290925574981707741345527760995769138827389563984295404370907143306628285989562968688537483034653819402226536396141457424692020642757538196701898672716016849878946233573759805520578892779826508782740335643488701904940054189331394226267092984689769784851905930633827113060050480341845414212151826117333818850106585659986571967177335689126556056984085810400912059716578330892782052971826475847782774928927229826607965355254749905639386810880354806299973846438228146543098551563068824530165309248711313817118740986021446157198781622625658961345683099576062931627493639289741139074810718668941795012368054800209690513703019045458151587334571605369861683810721724364074005105166373904367852094610212010428000493573978309628592195939490880499386391502082942714191609922328337029509913592683522560110812127322040644368517043364742106706308458769543578801448941452681424047368986701644343872650614901490847906282112997260097895184387220902526732810462596651844498988752850710833672931809908189873529863032895591107077767471336031814195546771127696940735240401138017003288976249081927548476751211670250274914443857333221270477423289864459487704990382285776406548330824623706473220955164810400445298205725321740221700884103011998086798081113153242507276755971691294914288538861221743076547509647936040984880077417179272133518326952841491398396885780766145825089025543248235733878194545138653293519105112105272268707595377497319164018028868215231742834694428761384034492697335378121835466948196276297749296339975755165771273806642654180403566423594365107900514645908161842375032553489781213258268128074585224635980038048076326111766919565580459365818653883138791960479557797553896464724161500239122505102202296527754320130750649265801947090056209644267156081627371192114817896253795345713056869359944527370284595046542034685745268937156425187203364569575967575387078923894687125007509571922343768377841464152862869950873625441306917372405490225811433515702951475688787337734371685476447004895107978516582635327369302067981533061925201528950535024961857582575098266518611625020555806865086623048253345978172563671987658617253619480011146524798283249360893497737441951404726791934486185739677666255800670614082621079431223368660892090451593908987011477211044247280592966352263022216788248658501696544681442121067630228364795920112053214633441294802409366911452618876441124155167788420124190087499087236395934532191744193139812540955818226994663160964085344058070041949494186784845765576145424329013074007730987983622504197941311399847445995401100672882646545512963952868737567934231068922508035129799725529960387274513366350477821505098453090563975423835644546032632567728682113120595336813417306033179978694052110941302400304999200779750318202172152676139535988491716082076704065411943774627384361668530989245675376278598204430472440533670038380003105816315953073947556154804440839503754234129591935353264363869726879246036752508015763409291611817228517575619312795125803735573008040045209189786879101921338998692932631498217978477207029868198978978378721623266448641821198657022875660481914158783884178374546957752421193146174098041288211359862619186062089921546612290701614499787287410773963702453253819537592519750472304140910836128512955020483100201890464806892972973071032755846123991629936983355145601550748863938088426146928807413949091253895733022022603760639396707990475913594988229125758896694111833729159795494121063345236943847339139872351445059755487485672995061580934436007830655854775588789219422807691744447908231694145660684263669214659580702590315612588140781197199926120026054107067894567982852581639284640625242707792124802506390948471967461743347766882220046113069441570378001405613034917551552910062374307424845000398727473326584036010853400429100449924854528761770404439340988739172808342890224355056469895248499337355525157072182033363689599168236522063833236747772040248433020627300520140952078063663967525027231829397887091430420955378277054876638832924979492605576365875499511381751461843383504253570129547416795815184094613004147583596836785532460653183697672217039755109239733349644476106092147852872976011689728307540863936103119250781530336365978727847158391359530031288075248017561683466918126025531201669958674156188494048249534338840761755610204833127978009114554972367588848201778805089196190366403986434880171878477854816355512972857497446348415179461788465597779592306732132724993023294680241593146273094991544041808591757263929285123356135307183341858044409542307009573389858219289981221634928171981299699450450935162806977146230301162541605699030195635180409641679293161574566703246483214231735558287008946992177196940330355167886944214480134811833610768510916387987966401440092953442548893698919404137655171453300582092884899740021554720233734365078063430463489759213279014104174853414049827783521742906821240708386927282077598442484770415035366893453018153910513882238312993801480333023471970042115220751233843544377941851176558107848753750572550240666671581078919402846521207519590219252748519610243996548584104929677533983143323003431567651856929824088476647848551385517942044835912780483116175414650262531722704939161223598713383237499367304522688831141635658016042850500541054767667377534185321240870631700846251132741737491468927787811919068151750056658320707764812650819365302342394444380385346156307330786438810960541065864261602569900772952864409581999980289327476622410608117150108358239044869230337322260463289509896257394740000629236826129099025365746941396015424539535927635264589550719108053293718733291216594574365582867488139477392169569542948600929384734235474558096879449899739030461688811293221398093799940153261761689084955872630701990009385505016616139321656599188703983387836237550669354639154269967732014598588740728461306235092240338388808018494194330498066272495182030744730292764269227688463205884069219856810521946707624283450946604651435483964139983107774812395605812205248211037168764267550959342576043818568933758135170447912779716842881057099691429338063570361554816432115854335761955031411645909103138918118424981082104609557143462069732488733714077990592682418321512560137547266979082343288360439211351424487992739169843981217706143334319488671525283987334188473249355025325429208739480859415915191646820987339127006770388912981071019398342504016943663629957727816967351000890242857000206350786319746930420333706865323909011487320954741065958636250174450466414201186105235996233734545875782096873586016536575929541735599434034167451751257390653886431750184200574791413663573523106692920771828269103677023058220416275802174423848330513985416991302813470986878094430085495510598312502790343570502204246846358487544494101445134474332956095642252884669793723617729479071651231212159196759791798372960756661132114201750237799774133346546205116038770730278056723990089093580124755792079711049014382009529324592331826319870143969114220782825847781390135382633109071844117843306516383422826048790508723192720530135142582409095120369908111712081628773852535899854089593732525634022826040641458159325182298693573289482746852892593373158844857276025691232977193245493249307638030496304460707197271809863242622340081535986503787525276716910885634931021391206917929199804193834233125375172161446433692129491117238789463365549615288616134643071925283416880558262916936199545045203612039708716376169291556139476411439651356705413442962526923149681724422511233849685681661362057816283451480710593924405175188934629910925565872403646935739673246207022197572616540237970819191359060558578104306251037123004115161698367674224280398018797994624989726559395026123287092504449503548102255450458166140588138711499681540031074326874358605227634014013594216387370025235799951693324072432965761850059946468257691465385366272131988980055389592667820617669205843373073601037415765272900728139874728537525800205124533808323121634312098820972361358027735328903506884085707949320942134043248244458806391391923122234536495307069822072570704726413685369397297847015692656961296615022730362344211566060290276369373740365500817126971964427439950283782812643075286522919070092977952673243717686500785874281478521570060863068663671401870291594409891626026673397062115096349055150347472579270999533992697241214167022538412415472689904430315317935913468658949286069831927573730174049253642266969754991272956292712706076149519159618933122764885965925513457330014892997793837449933831251529379510353165218809838915193331219678840187500446320194334653607223271617822453975162578686700750660274100941960602975236102897761874783702810675724231058351552590428296938447318880830109473329633208996696502112606560360213039124740529809723429112481827764607772428195809132168166737373982541512258624274781942680027795990965435782115617158652928385255408323519084883362071325635796283777441170686684882906476577391583634655989584125223324017596566032618824580513384974539916018468595446424730055872599609474721127204383770853784067636724869447392390935390971884619712739061350387902557884415919558922371023200918388933395958660107268252931444736091909541486849746702658969855191882597651923698702541549927894610531468950742721935237685894588974836961777723980686177936062616005065823599547334696346333801737958689715719964871054924970147656098110787100303412878470767553955642305820964537819794033574736646506070965289474189846511447358559158002211346157507399254379094490402672653680284763947278663130517445383138417192184913651822520147920291547233812573364441198561728759294951545606994759809130126245274915641406622987530915265970965608329897813500900467030628593650362083052155218885505579777783826402476707577473976934916649283672754606502637371137208095109430087060794460790512334619359750302594907175714154356653205063084412464077204114934394532892531682459038822771563587697786878668996844131644132354112790697631443242012799460301624663975680413440899742923064801134958887520922447519019694736466938142792495378766083793676602702058317541335592705504532931849096767072424086156169320133474981834915815258149045155819451569765417971432712046794372523890296584919273175142813116277361901750697311613847796190991398622636194108579984215630533841811644936412737222222151428325317292595516367944177686313840842762390764547511475575710926211236456688545129233926333781148632695722139079630386563331083542462132339125600159415618976958075585927305307954982885566448396393843823625822906769516798335001840035219707198900560151417567407758141230395084485167733745839073206119689750966447634431095536615002038134737339292423813366108798680626650146902150026906899863768821099778084810100553458860780311331011108871162705247063071801017275673758815472749680354442511419421672632836740722100545249954277370057056489314917363058848226683942033221819623193574178857117749063812328757085155890448563638439033625831893999916007969911363194924483893719968939408333927562483013688479478267312483863432562837220110068781941778571248508619183135887987799232188558881995310227832158037074607730928338818726276424691707653446262117925023145127537659582555637207046072783740403445519478589061517335402517198124994814640096245396131741630442730196438386316700471009063749725647447598176575272535664315101735782756131002533306266940916439042958961366315648530325686787468150783882955140862128275685990520751319679439333777168880614510596582149807691795808747999924307730758009552063920369954880655565370348751436521932201046647702052212067817094635387999282377368184287276380701526625208060889492966884430281488139800312903186538989754590628062620202633274192863924650121492475062742777198018110290692680454769106007868778939285766888277286604523659874750614491792672186937673701472635777163697215884225267858331999768258210580383382891848100596245531240400956523973786291162191060020306376018728235459900710529327132775421161825122688111470951457407550009466721698657845640085463794714601149193634074896045368473247698813320759992973599739348246028123579965551654595269359978912512273127895407802103877347671720954765299571337380743645911617483971213295455194150259725766448857681894052655291421890541300995675285545051030094762726607698310925986887146689084743632616181688104614754418068260277751388599215232792294911397391602163961673435220027929780278255682058757546470118587750053457183827488412267141621583537996022682917559228624253534977678572306835235480011414291241156263664227471143236074008218525298243545786393588220947249870794455554635989114132635943032145818569457293845095017639789328204590441432514430939222030427516576334184023478428839657499564398576299059519509335835112986187787147994823462231379277012174197013018563403150090915911812082844050049321388891715316585728840803630299818811537960983830626497099193551952293981800585271197643723830143677056779550082666568165540381880660086663945284791815256493071741862936308270161026067427338703501554751143122272064800731993602542933695216638924154750901008318174999231742714385094272477916857795013700992968814956454758403810855368649913655192254318367109127948899622557585860180576576163950179212584222019246771824379362395680467962733456095042855225568106222608008289576239088399072686780309548419089687353258669717477920228141840216590836437342521551855934131203377808809051237143193348883361190141143983097587568851650053241344229929037508338517745394379116645950834167298510283217480115878121056718774301693450124067142257120126282193137127258059353499018505328783893548453287414016506576658473879716607749697629579219925902904519088761672882229083223420192896634288590283934663254891094635074893544372285240288579702842314637035433441294221219075639963747375293787340473888658938966002243160415714693475894579230438098977759352785521027348025460862946756819810071413777019154200884946967404327867705110813855728690868654672082351341610628819967736613208623531370220806218613695797157475412489355790131295287327188788482332474058493935901797709862299112099569142101219796410907988999817131824349880330885253296542140576768306183362423578942772557773504637842051284652698853399423113452545517442860489370224672404098106975029349446393088602760508726034240349758300761812124878461371068013282244875656096417478207209778483425188597710472238501030178006151729480360368314415275328806360896452764903355084743553150195240739590262395963255231787582335714789582348347218833986568697877660151106708897468053796715817969828388567134665715633369416809584132464341717074014399082299495823890723620629441195106397009046148651412954781294627325066407366256534237974940604900861033286361330760352531193541994841287840427053645667455205193994481423006999964115869626446202749995547940673541824096911032567552643211690554511854896928047953669642620431837582345396149603324692869627666656357040514430067729520460392639090438358173175439697066121506635385452221098150012759555305394148064865803524341289540813563959762605423308344650980541017336068799841760404466073414281689278585830584292859254822203803351840203233052134985114245435666218873326074720702980213196867579230462150684835701542653930009844683387567432471407986501681956700915112822938328228191462953982347565109412997618092676876657627009148015980730651046119208277396100819838279464031184636853884905383471876021545516375261429597198655411779556224402664993958669959522005028435853151753673880459764306496431831314101585473455506874626912481775723848623120014631579411939925821121616273695419004705068994335002901015250178032378905518712273019747071417208094307623015243407703685079233820773998649338749661211203475813663333397951378909039813458998202353125497040230329253168308697476061265460407124396370093353868755559416606675923660637514307904331209058505699888276952201251118174347748071880043358991859205932885566447761897071637096681236452251157101413817851989992080309277573633723362381261318035965436232536481419512679584120334361780745000391328097208952615360338017017695780120124756677305882836596633296234685945599725978562106737867704770505275866480407150546388820964540542851572530539746870473501815290179456872273451422947975264148739105068929105022930688131528272292430579897652021634497330768076757975228879920904548571508283329495891523829369034579179777474344983234565063729769326754358882912902249327740677847225178452473432431798544569922359801961138179202224531460711454074411469134357976423560038802456433439667427512551577733232449163830874647789900547749926212619445827069692374647721372839139239720071831375037814197375008646796169463892450256678042568980854122160765959866310447940066372584548041711843807766250925621378868777502364525086799154490353919911940718000971389525727813316610828810560123985141355339668676517436057531829137576424163893632899038215593695749886831492351633951366336802545622915554874133286220759597856234127915989018656830281413964774052235914427330125458088398006272060005098024271239058819427182040438993459795423905327444739722419650068854162680713306324301573490130686847651424927568274785717096430856997131364379479541565027394832637027599299713152315797651901178310088686685751249607045031732373985019710416553018858928723216658171183815001121039560058256399315631491369855320648971506008434085193268415793450685070092312535950769674567068905591563727976390028200207217913416382272378816181419715643140851986151103240346283828386382864276758982465287508398818321278558080504583494441594886298904642956707947506513939793216049947518107036381240916516125032449880962264043875880633640253753834785136712439053975129425894434492628640154350481981108564759398016933097368841924226343323542196296692092973230058762309723874086791910109628422231491183528301227299378004653601394347629989562694211891558457474306449493391945730408012156090216734089374903338957401792429381120672487214887760575157624125714162085021988270751824855798297210930023932514620997173948177634330248136193588184111814703042326890281117112398684262318091013180815253725323651211407207133165167818522551772845571703203623735307883681008863380431464988402595202595930027378036943854971339768933039625566134128548423316770240077966528616848128097974907425595640228217746861580669783101066925844041325624451113445472602069885589807110304732984617896190128806439743915877480761104897035371385459575544085500311076689893059625169537423863298452348189883908026046442811932202212422041980435227066371205892565575241161149281122936652832034296362076859618897869229787457145579020427193593645164927942751511064378282124304291733172401299643168895371413351781709401851101334362902030201386411181509987021754915612735407286327814151163210459624652158266538482852036505817609868998651944411108465358998684039420972703590073299062959004135359702750962184515207858844615733854739217734435371264505207207725343064221193673698829979259409298680133129401076954323793055204973187463917406540425373676480377156932566773228574575556080020105604127569175717039527675783247973009461307457747074301992088929428517269993508095704898835314857903586914220872247967155211486565149114915341875242386509551172112518359620670372301559388956270424109679197024621734022853933852423361135272522811124634652170255316465534104468650925552463046932831345205152447909031511185193159244701345565878892040416784264296729354412891480425779067994993407503916061195735825490945587621734215575246000626480113058911024752760696167304261627271441434620564721617499731286062734962513816123251716146948814426307954341374817203154925747671315082604635048560283634777005330851420007404959552476082039183431663637879605861574948173243832382370504426484398587213143551390130857857755947352611880281556332989810851918365290965824542970184599077878170845426708296144162338060873460394753595379203044149104700057872556318136592686564991700810789627831186956767597987440647332047504877847505830591574447714393309097895601145120526073155054513376682883032978205221188945314525325420049267224492675184095749022129955194395603752659020383652246385786840714104399013168485067757331614309758719079084528571414920185491887436569361414955273681386785312278060522093924117240386320268614807915739637630017214498591875516652275874275442000645038488838768382262848232627922856832345660673706042886535379529001628718461500364620672889786393541212039338080942252829103914082269486011958219265512143783812755062265090684768507887776484018283659522272863521578432826619710363887859312101464076053142756462188982959790638976936119019980710525992062169491859024868699366018423775308542804331126727103788563039442775430499605711725739940172812441610983829893655322688265278336613195107847005496526780379217748112896045132535649220992895952487086771798771636519593174592953411969669024062760689472188605851435471058425881374452510902905366920365504545985331047839581917374966583041584714804795953495345258318100703552370846826277571459467051834641975471029145176049159512182048677013576077038620790636160348259277718063374574765341237394767649601369432602846579698638823191069585089946393550985191165737074627581942344222403541088528898512801817735361123053938796075210279000602791498301372904429732512372088148397644255410734378746356559460410850751934531073912709938680149215435616981596509827431126697632756697071765800729514551529567123321966011283478281548954222197655134325005339952419067514243983488984724760460175094685444870832719370896711370107259232575310252747248806764914028673733815674963375116893915082507660229632912494377658573625838024568747009565171998221013762695515198153856023229434528184275898753952181990588661568197988541918133148009041527811655246173407334051699187140344735261320805487962515211418156237379501333461234230677662984425459845843830333864806757236267013436081231684803438439321378771876422192937104886318446924718051579118495529594021285538801031924606977507829537407797035716321371146873344945096407856260559285682730999093994800944815026809993137308834398031287539728482724798298042109461419605616488418743149957005361167337626965433552320618112361362827128937455540221156444657481299131120898712267288395502716793522077687623616167886871166614343566661948406519269514479500828418668577853942194572676408796384341681834846338849957656659440422077858298326005344402955632262491935098291003370626301934284779958929931328380721376486420608802325513162919191662757549957830258374607838131755752496188615395276262515133286787918664963794082179038299797063563829017321552135213385153770800543792683600591838001975756484869847459501031489914830727402890243650782979779913224885422656831027033889899658426252527291130775274340954525586684004375417461230566619667193750319942858192472878995758318730043909350725467248424587649829045262985923629247109115103174532896959845898720132951831115722267713044191012575709516264181294194476993064621471351494850148213800719760255181976245969742209002500014065293442502383121954232750761839100275667967775401897229326645411039736853602105492639538572472405694601046839895435816174845312968756476704479765597357404818010655724368910582821000255629560916039560004470465674862401182863808435973390796387886348222748762397749379791194431260624881388015579111127064347236237357138560441949057692261586239219655756293724870011782310172146212502962528594448981078244991762939702172461977247527806352706344521919516401866863869853993334504130825111002847733553021893507123925586776667501594588712354455444182107011951348184077229984691333030789530717891332129864640879574935641383348464907769500217896271107324846332960321172785291366880903595857991469079202148150017343311842831703902546287383131778836828814965299287218205697276188689150456021869646229422344839600134293267811543164795396150777863189318751236355815194418854330703836549775660818426469004790868582678244954822689377188266564698063477128795103007856178313574191963842405003217249963181925491105104181136674849365829105099866585038243775862633898637523880144734063385417525498579899756286699498176532251515346240653408768116399548133152733783998734475608160230111917512287580933647324152444634361504469863659551008208644511222991587400371626908114360649694815735540165819521357197471516146993847046587384403921041573969140637300365032695347381864037600269975472154398496775681682013335230097654225391727959361545541658742879256835622370650967129251031934290558616817166672562464367507571440677603166718822620869479423684967415368486360782241101340658449670468438469885478322172275497688980753927503944304449989859218367722387799426339481026424823438115545172293848400985517933160039547555218452499323319508199793440743395466794964591838024420887541587617133650032458966562106896463051898154446931955983782709905558979889105253434198193978082738110661029765374180235644228772702957938661308824223240062590541883945949834898315558240703415406683745755633825754700335223265277339765421461729607668862774424941841317445916147323478083392852366015235399045716600344592689659316650871090921239878948051934433375529434639417764154871939192487828912073144997714792109026937761908064352837572879597163052580197802099684666391423182624018839395584708335889237530056395447205518325755568832053366009818651314795814420608830875367550327625002331980491085778867063441730482603419687022332479437884462301697087899370660731772330135934962170977797393242045685692706765369495170453573889903263160569975020100175278566576416392127471520793331443156974144525000629326318402673613538095101625907519816235125432309647977508446951998144048324071416541507513282633982302467977048647857022128624820067681450909129995025805735176401719707971040442917039903400973638011294852487190426506542689036759816793030019074495551964872787713317469977571280047029751993005976589690641046428940519508213367372197446563240075890273146049244350945118944485849925539196647652763435127928266898704147763022701940119461573520321159813441672613657037612361557900978735392567881214002843136184073755355116508601183401393372262800790398959339461133792012543013619546714390862711326616567750020176975652311902375382482233055672601233238349260986531444326200587672178491236167770833938839427543248275874873177259816350539218092652888995312918939701444142878869876639926060965831456214865422557527440825954279925997694243994183240801342986747839171363124888800031807512834475326712193956539593183697064268257956400100935465821536570945065449540370634810836390764752407428497843506959010997565309128361397588850708201287814302176882043074353647882026479224761643808175665867120900440866574446101164512724461431522570959397119771455720518478430502778498637365344686916370007772023220126550490010982023595810660119695159762214912459449981271955691297660119926953241466862757811674742809811911819855913231441037304446458711364006643062079844355153504201451508388837689973343036515487871289328650705414510446307664104904752230144568425770173816758833507170921574322134013517749722555893392734692975989292902649707933042296161769061970537862399991206778921192045003617224115211873934063235086190780639274730125125628276952610521379010647184916609840891533110031110425211171716820768446736309129414296618255672389414165075765087601950995803417094395170804582711003343465562711594742257869853843774517636802424804108439971503465575157310361751310576922459555740935055244583028964513569919737552834171433529767302677854526514484463183063238436847609902497904178930193227611475296672071693030998056368748373696679421597860750063340455996972361629465826958536122451831309199599620518194006611965053057474111929844396732265715526375781354877046789532880569146245876909653415375123842581139547773178653989297374190851752034896025457449469348936462647572392423097211821036377218658705975043707132439440353793650587813010891117630834274184587689505974406698379166845402190500612582513836368814591526389847470268887048466228509625531497865985435138783700946997831274799158253993121255366536763661263432239271650504980341836019998899724267228922094283271796900065886572296207088278958034299550538579771339086140048845681444125736682951778803197691116240887272793239255274400289801103383935135804611991424510880786716349663070185227655248031057443897941899366392490036891053457560267191495479236401272702639940774589375275149862900365975342036850020296624442753500720963101449493352584890568740995046632775441190394997812511071862224854956902091000427971445886788168482305120223766843922558245120834379574889567283133127437592336218851560100119918236223047806563143064797195779421415079023550140346943940650470453329792067393005867767620378120776086239336318489852411740847309234517429353758948305581746762826035031742815622636914242161474757212002107501812625382620066141622427297457992821602231703314960520021028679306064112981723281233500454130096340465632742691993684054116626862999466006016443391299714379813173168126784085390907719190076369453113153412180778512590399132435211517561882203003697755490762461996061090777465817774645744249925912085221342172223721347509371690482980213970614034356795785172277796699255616630541729878981159607069253691175237679870108601196619888542239073459448783085017682332998729443068891495356652265543019878252689841140185917409772826827236675645885581333016192228551865470587755136636299196857903005765402471913531658089829370330111014990276752908146131738143461255304369181563893148607923715971929022479940443186472157341128654755129580748725053341346417466997258617525356962258736781776853643698598909623518030414628138491661968074374511714655562453825445134243744130231337879962898354797085429819298974947848833789055149236958442747610779008754360365958060847029124166750560047972303570737954326244805132966056990099274974705611906165217825678276655287635363696669291619603153319791293394443417302977292873389726252215999761858756198999782206204870609721819387312994767978368368910184730179813767005191115051547474862433029215209969045042700809750926074020199918006025991241337816581192481450858835819377784939465188692566576486174251536457709230902533132494730737064076143779513386022655083739939014556058181784300163992779556578444979367914839824825213931947909454516844799379843301299945039624819836883704468924687083600003280052887429604979236065741012933674055768092270982464402776167680303224228262464786190113557067859443556365722257237987975812342768556525502839250974786431305671961682073176528594149552747536259684189759816242715213506658715648774560432194836677203196605257043637528919699319445936144471301883577648967885449385993079362486382345878660943716638073277938103392019808332438289585025583190554588261750673826769405959788689995403184739382251400034099967142237171762848399334253270362612153499809555572925337229775186744563425292114717314708615480552153601271685010174077175955711406612384280328044451626741651110907259312391756658898247953970923427541127653510434227595042812337321421594606728010226402133899906503668976934972623797394247310946617592533566557688457678534199809822944590632245909415540723430481714757638750112220302409416013865220056433769248496800496124282757506257407999891121113180194534872987653826662187874813156616485420255612258953055963909741467184049027833242425417493660972012440732123757233114205174747704152564959956079591214998173663817206821655831575040628719806077864277742430619391058342456560741525598616554503104939178088381405553999861813635072807241811379499905101383911619109415873223718799087685497768920733811180876116514005798607434960864894323855850263874366759934613192432806264488145064557840413135227900886657110175795458994011188396367654039015019906965056146096090179254192755207748299204409846741719824058090949353479609349313608680320798552918480680469064114266866063640631576404092030538112093649879841614768309478358925352268510577754312911796197145934463766647866222380541033787439525838426015816452842027129308588096635954190775204534904946741150378799217403753023014435683728200636975482339049304761223143393548456256411875379690406772192956773298556791529990900416910212180849931624200203524998562871815747102902022466012566250938708736399855363996506254098068126654612111271508130940070744454577355382209866440674280229442620082871688806374983306532908841065763731644025727225190676341824932855974318871245134573352373699671168027556140609921853887160393375020621186971633242328159340157984418792229648350950804274215903877962173250854449854166996274390175845526971573223289918189039616462221249711397680851738243787470813336461852826590902506311919005336914898926360268291825538108605474320653783256479174687203289849650675529702579953753065332657530699907209409319239980315595235282227355684676132641628723546201203048434159361054022371160249773337847120715588242075340737665021843398878248681543223972228699437028654272501218663355342355361947781425041013155460626770325441218575788652898694430173184989341762551618047610719922023959675302286439109681535611525759448698406671300826997483575218018681533088274324738642664561249901219679467171096572879978036502935146734658276531574730538825347483382205390539799736851731444995590935543243174589883548662693133278106675281986059596065491168792632858879020455056151478489108636110330847092040854996039918653361222821883233833312148244281135352351584682796574816258398251270862657149729212951245576493651370079759406652147221518301494201994450304178615435870872429302318617648252092384426417973116689184383676872831774912930000718475039416894042915919538204944829491002766000947280941553420822618986493563881602795590644350780314128611741756741927195614421067600999933199941530806982524094792920099476192423717005226998578642142870235230905259463735826450488946198521454116770489766662181504979669246257366549125001825551886636176711894060757591177360038512084284098316983043394270489063664030865576053975563281908304683804215285372897279791916633642343719386295885599130716597556557741564753128973053374884353743073675455113162255314876013062667211427997871157057706287942861368493734786467057249186915139101196677451986578697967337579477851218805652409746147737810991228800044914128982126489660352598825244820712462464415198257970852988768410676303325491364067102413131167281824344390936440784229215653441833017863743698900125219112571921724494449007772728143731593028421268169937229137529225798975043370698585006094251006294440103580030750953284493600527489328186633993727887223483647085809149635795426870410141959073899937272417270729492950498602862452651356104998313324632540128685752947386146381888383369575611195992399628532847081745346985777702568685037249804427879549518227874895238635127119679176848227188878864956264100892345888038031660931439061750471576724673139435779537432863255354075307501834292262568460533448260499527603443657824934664626841886211388100032226020094206662130975353449903328347922545832289792803598626807684124656378998918166642281834946034446608887186721108507920587545718801117015525452997260883668251511911972133558704929040990355423733722342317104008089364071961344028542467693867379948658202498553836798293596188636167927046543955544942179613973845834669674333571566116287761422048467130585983128231954426899414627741408266375500005876429475240828805389569661938207565304492230510620419180458467577198466292789680171500363515862070611861826637596627756828150716385481625104698255566723690338497114306703446615033871905615951863581095013583934371145461897919014180242996214392444116919726249269604922206162589400918745384804194819257255203069062928653575139772005364758158962569097157293261375923978868814580089963261684954026129070951587991422346977603793355395227052309496123946506543003058299311702102148271189019269727145725066323164120695000519348620058901472552584293717041488938523359010147677790333045246304327821386869296018964132089616183283329825096203310458894460058811345345403846159498521177730732849396534870733176763946805386855909583809984346216672952662125828474643663560407550670596592037464127089017230075324137763115948610067482357260954282184468925823564791225085381675336231475416213705488396818226333772035296096564514276900383537395874843482193243615086564973360622151154223793556279960966463612537965926126980185046461577847982571117275462854632577803064603444300383486439519121160212286458506191359650450854208972978580726092052491551397924596744228430655175021897517789626766268913667410275740426029283881210167139181139296511279651244666763406510689300626308870328286124484693647422867599185762895273470045160320470463092197137902129904812082487470277184514196185308997159194157178441329441876295184047606644666036195501764325413937427644683158824928081399629218310832986720726078818551748926149385501879950477842854923682097994314673663863621567616079903660453283809108014764921373071247980083002817813683657987369504827931095899313515365233871128390354349301427389814756748283332249643699311835819573306776660033862462061579867328421883447252905265135610868506989619293173324374556931393495063670255835668010646278456362867437787054662886793166524874331547467324240613720604495626103344109127362525963251377799593320127930578971514776330284943546852204190933753639629257436113853704102855317615436161897637571378457856602399078303209801669807113581687082497903517451702834918522590186086087420805592430401016929900866199432953519917688419657559198096636230309115752938494233254947984210073233608981970882792122938165030771484882523212084450658934876393933022301767641859237534681421988508877174151545082487008214049564235659011685088745160251283419298849988983771680262617968643776563212586481570099173620294916063668159995424978438669963415776671201556099543528545058825503135558397452205625226920796964039407871994049992768313623455741386783801793408817360422690429932085044012716356438022991827203433685516347635756967093507060652346069688885991440369312698287449230456250156674630702041015581254689783084843234200008702477292970656817370349840971026437139178291998309467111828261533326447703316610592100923280126100693821431353068034180141752239756929040155151941566623860189206057817722614564517168048367620545210189138762864248098834319576079975483612668664919990567736572099064813748373220694224645621405766306958040072345698240930145501081082526003952582982470371811091550796042348550484566021695661783268981910487677293404887419764208978204383928918765093203738170072135347810041045164283547484501543906774622877582010672644913720160346383677631081664946446608864784079514330927504747950882126855461338046509948539134215436479175723060289448677691974716122390903066508197019713178476708085316631819695248607344871730094062113260446555034688849630694336018347734519040473552503126841549716541695509007495534195150061910581124421986462161324132276780040088474908274635281962191409315885651070082144372024419498226893653412718409400917584957219611819720544273976590638626887077815743599356398515090817011350707633944516291624124859931414671740112445721281540075403208384663276777121114564879045293521084746156011571543696937253858496747461698030544956102378650757463722238362369498687539628832091738436343403620027557530520664710280968178427346896167513842250942340695601012265540728590711922569865225455293673608822457184378218085798710581043157009298080564989752697073653999668051782323700198063996868110162182062543444506415574101064554121414629681055959024188883173566064519862052004629531920118848710989158079742689398277715091708203554101865281294120686270295294250978227633525899525814125564101915473129123694317737438811263505145031666357572263258646278202392866194471063595671323550889554946213576683245160748028365500246617992682059663625562568129571062094350233419937041907317951131050393933808565193474535235224752923869911963336039041051698259197534121139708378920879806623112678157245365776777240649895424184726286014753224618141243861858751955719548968034341255371305043298120734435267436512287427316724165091897849572750550531330798206576804841295341620838032175532532941524149434842994289713290341330293659321890840980360332777916077638653780006113723698480183270657232831767444707903226533259656785107633876244581705159303044931905911819938907783924212234735689706974177148963468856774016178249073366255734185319402775153534026547157940687434141307059486834591957323993617625494849224942647675936511516208395551584117295394566608959834352587529562194018318200956596941363978926516462548535045335613658863897389723228839388416737724757293593337479168725285224868550575380005005789772135148754786096909787715238038318236104872553100448244095453118271561963236679520922120765779331737222734287174048721672131649783846396115101676836315160841600417183820140774091609783030909408429071432501468723245948665132785261089022358889107991787526283365046886245655143805158161373090894668082970258511384721078220831637581470673415968905461123567590426106325512929380087572780690839491307652153848591215548200467944788679863637974846975959187750228603202994812104464016342174911964668515194903590163128244359695299234267593208017521706410066120231946659392800882506016326382401540111339228818371085022158776333417426402446154875005446444872356346254613938336040686894319541391271230989986955605210485671231866008714636090913538138282865732712694155214405412560435142346439754599471080511940665393528138475831841110118223259437761268612373215112783667635013741820467172732279833723502878960114874733554809987494826281719647424876405596022862550479223707100177722371652590884754493467785436540822407935183498878095564373192201635564097089538591636552946394298537483569970655423977295644825109933996084760767506164998010445933073893761561330661270275453239618444136631152784460233243427375045940270983738295159067223788400939936499736460717951692100724490349250078377138377917894141665347452901410973640151862236119834495540142595025273565808145971841110073331743362359992042905283356559625583865673377433423433745609247556498179208800545234017398518682309018399746322998431310023604303728750086828857877790778535904376420956264391171774531383966674462479802076441055337915499362361418430129784598421819954660969700959195054548189487220820161838344360819527848786009819576284024329686200672601872814109858137397375308693204739450405839797776495868169474554534159469260391563923980892593489722882782492229760886807871459263762429768220309643831653300945772004872745659911659851802534961716082454895180868490229438285899092005434191714335654698904819823382034712608578966862039563472297621708255999866835402525938669204507848002046147111273693269677981595928579006111565508774550150983119453769679279629465578349247438801326034165129840534208225629765205657996471523782642129733280280188511171641662601378303663624178760500075148075250559895539995314381253545405799435845523256541604569904110794412933525670469922037803659864402476912143095399634251595626167569141075815396869087773662447399396557027302018090630661039414847160593907333450986217314968870768230959901855572585477800360507437243662799997468225843910054118597870920703379892641500069980033173526610546495452867505318658688920743734784990888758328893151293943992577195238677409238767172242141532525063726835152699218637071151798173158015712155362253307476352663235487668465233799154520132964825037879524272748832793120435933849929194222087859619888675457353172010018560244484648538757442287361200421131916712758471663967434644787821755844792458015778229134967214284967104712678291437354153884842764992168932151709373792212619405839318261986314896079358847772415943845357486563555185924618118768879230828582568703221507147654963017374569003635360266642085253717276104298682799973787065500200811955675500052556510768720735698111996879519103231878348223464046987790703372271241024319038996709600757012381498097333620776965342398383783412898073555264654038908759509258316492701073597185792388121615067422398002371577578335998622902158884506465716921420656245316657728528546212170561730813986876440144997065857803738312986974281365346918687848795365740918572159400671990014921982389896551460441008643943298777714536163927700020112199607074123133110119681561384656208370646752288709935364331112615531917639838478097041663707912810378195827226470158479096353310615338382559916377935935203176267805532446558291348869626551044076545317040854160468607578916953448490709638830990397991634630061540601328019274949879296972163598969645749947175150271431541891528952876862759464257556253707309443012542307480443873407963880291877860102777427914004279771392265326985492033836766847549859053495154327145212049260450473167597454637902860503887124404562839769793131999183763030871141589151010364461034792455480186912083641753228630595158042788359569145788820371327731044932784910756207194541846465675923351304193209946895007131440459018664224343329397703988215036160113427400762746466962209519363677211656379833079805804400059855840951299786440236962396580374374807796270522324868457354411429551438901113341166857879305737069233646708556665938028096003838690736050184112916288334332014958898470157623026518712682947918732864572989565944174053784202192124512408490960837272159255393114565798996393770151898260723377268885673061650430895045150001987191489283839777594177488135579005920889241022953432321295866892297337997246627180767422732445755396871543043137028317453415456651813677731382339411991771954474516481584344242611582404467970399617160026233288959699379035102221205426591226043835351281579578172727767333821942901052701558602328925793297505649868664967697424070397980103712562517987828492634314510759143433997841917304328456184236195978850739776732808156599772870016949266583645544793034855018725743512512359662514877224230344881809028402886883583008313694876275035236392690491490833814241639258188249438515407001129833968211722978944827370368514541864673335024910522175320590561264280577280474796374377663425167461283132740154230731392035405230127733362895444106460239655750903412361341540203804757861759934679868656446623829087767260840772442460341869841709646107228535230675561403570641748110206784189008434782515222244691089314156951655604692568001757880659661069059470424974520286420128585489843863757827252010643008558966265635592423764849650107072785846439849485740909192008360752888030726356112894789990445123417934536539731955789807107072526020533294430452327157300161328809707699574569748560498724077257269141314653755560606892661023142674344157438432654297142379235525753989297175928534796653277859346946643942058426549031640021377522524500831875794073915144916464268567789863817887600126809373053963842488616758488107220368669133475052609311757160849071436862508506559115602549817840166513851707351982692436424477992409430286440802555070819677519260408688805911005246797601416839955086452591208712362730568549269845875962879689099527649121282737578630898454883546390575304981183030868158496281380502647726222473410015017676537355803324856412783364945191355526229654699223399769557892457181298603215649967716148239233250034587936150814632357683969323458621744141857328513542289284081632240775213205145734795004708727716683325318302706304890300551476864530765309280981984029870257117548084743079590428864135265872427154849770997587201018334489779605359016818155918255955263800246545910048329302698739081879368647705621937193163809984336071274715616617434973347687954102206065736743557198729850837424159281206688647709681683251085123491468647760105622389650389488306080991907939362592561240300904650574505773127543417044479923514506439644489112731908037987533488018000544330219608476980053724670793032246804988228302679271009174366434208314154833429149475753144071023323520376165803638007393648718015066498673390149602048365250590122389553639517796613213429485113656964644440969168203447650741716978278653750692442202852088102839997235703896043307457882570084152252587792449216072354046275582806706656584811883188191289775658848173948957585247283580608361840365972780687584764216791830547882876738446776158331169583928363453829281457021775044512417436007580513686661623256769781190410721508626992537730511977318476117285772357026960924053609795733470397834561130007236044140363622201998324665452010441013313382014127892426519875990234676559276725344958620557667978731590005799240634324521695523998101640783598029909449859892335629705621794761742542265174433577045119604658774134260854784503654436329843800422910860860263556779793221922363814134984832560031790270400002020314215259365471835322100297394656796310610900036591406296976699790338951826392556826105772757755792233128342729088687515709269897979242983475264219104035357964692556072557907885166493499607441182218016123893976179866955808930199750452716864708076394924570591038130806817355093119815964608287488225724196724808278939577416884579997201502256777903874230229976492181202023243673141370951809111495758053398813434214119092638102712619251717280591937429644228209717049025986812517780872502187850897837289071424749809944075493596890100091259696531894278807768463178109098991144920672815420153055173139158441866634849778904559885884060556398145926204261953494240683847343677076725231439634394805472256111711745501026197901766098541342095861342706959602913809889828132108425743549909259994753502517210920159929429346238621075760884054279951546883271465603453366529906733684472846230689371010714581721122588982394878178481671806177175287708344629625360895809037987197994763405867095439722020194255515049709498923895485057105974609778354833362107973987724118342812326718976269890181344201358831132216059014533629102277929698328075693873302257332671495745802707367503945466760878925838988591537981002669513014178747860425470395705868717108509081949747840033780917924136432896828340477112630460475137699514543231398623959073034130509747854807112315730987415277189580943128946532148295450236894855690416140111808523826267259232201146306451326828865285542884393387507737530637851907121120855514306592651360787179928053240182881472034291727785787714063971332544985081695251791810388223513103815006984868216632932117554504451090080983692910906470467304149517662135769161456386952076517692055638069548957875026587124802205056667736527169057085482882533382154838853157118939287304199778368167651225671516670862234005358099310587131346244577756180686526297409054616179139453862711794915931335506303143736330839362792028066592948350679275091272204073411935884596263479820337712509167898849632668837750103369428772277674558910822243869574865412139370592605303621432079674840869678791135337334036652074168048095969684356035816158021132626195164802107792429809996252199106516488142793498014937601228463444853096613070342572522831188231878610098063368917409877556901826090226481058898466791921964612238137826231916188907923701391476695743373989142987539662681439570144968464153957285699569672528380484473180993662302485475346370617951961924208984633265588297239128966614528399226538542355020366528757189354615744496839965984683274367631794243792132626737045027535560475590369379860141656184859501834155742727357337053631633574533280793664943170808966310549173581499838850709895954220088230103512065621636970261145230254402109191221175021704380424203019827215853740421397886194763833519312144187397753644456640358744568486490249203355727428043305104902324068258465303641912187641358116265939786643242268511640069542584890347719941887515520552799506264307762524735409151001277171602229187848271631425890393161262579100645847277061854047544270310016012890806166882643633023026486570965804426746551828062595099985167647808134809457847923838615188308972344250385030338606220863356282937289294724825789247579794035655894154875980852619299490216969688372968627434551867483889292894388672093017977667945223410503040296153765126803689251734399844654915957445691419315976778241394563392589225110508077143725794383513247473424198718618362247794254620924626691112330781990669340599271945811873423889583797340699572909159960842820289054699477530403341270622022038461903304790220598259856518104126442031263053390997962661489625638028867562018619220667130450226078554799961070457955115545159130185956687966682693064075384028383873082209275032768446602839384456629487732496183756073782036197956898311565714098820816317678842828634971147515314369695755093547058157203015512236907178948634620576166851698918644500009941113591182392260634970828147900489135667122910683132861659295209773967670342293883442266524623401069338164082331095910844479618655843584441418593878829975945416652945761821340855884626439485067696456975872170690077371597743421541672660543195478254059892333470440765231469532542636022743923691036256004871765654392346872211122776953998968093738913785522324327989092557710536677091071737801965340677417958624118646895682017558368960105400994022830159221901393928115072827683189709211764197740389898463918729800510271084738139561021249725659691690118026774454099653970704173509693242358378516878850816103490526812205720845374874269122705901492857875750610220379278152160397955964667709030593869486266640232715116325367351297196629649886005893650653604397378245139843873632851826166989941331909204820999272291814571116603819279329548431031752494417516476892743755577124686424627097238272678433189511262891734629620228540822966115167331010952843823992091138392063584472747800166318422830553454628340597168763597168545308576424626283748688685885378772254330491932070851083540193143167781568620915431549510617688973535444996106597240396952617672885794761537746117730195582555166576418145073414611081839664135426338788331139260836137282113329404527386316919567747614573167345840759104507517373739450436113507446100841958328573849220957076613152098609024148849470503840450265876445989917989958886329458915656326118018414309367536169793639951139806549603432399073592640083086528275165387611331197899400377455973808653856156427584627708450378508255528204921940434100339955863800932653711566568059141191138989260543517235497997016906022518596224680687510728595547998266295114804475181300045316288149608908989722038558270417891105349990919691394210278263319876287633051598699807570459129925889392745182357542460385112783250089268798320445220480659824336930739916056203619655809942412441306783665509601391083377132445960330202858753221955774518065320655153534208831872959799606649688077524276837093296190746087737610665705329479439898147226772417545590871720862548981377208052926115650652891006015811616872179353410487093428650531601157575677358845668117805082696197527993607231283076978575972623766798585141099534379206000997004605575572483355029590437892015028322710039239503600495765151807448917178397008660610796355117593592181686848399525107025667668754804702852609804122508851269887097033600199869959959764100968929633466193662048033957019700314246979635949913222086777523766284898472693065156544195259952643281132099416448796010719722379074291282004121375523199256504694084511445674672266265141622809285644506883871984241806299556207780773881794423576377752820505822062727731021263794165427752783505920579638179047911111646324237778743185537760938042271372925810355391242942478498108131726362733557342143426046040911456957810450121373948476492587866798966008394137317615355663050715949986467857115329068394278852359021608037931360074184690744437863208671464433841817464266782305329809344288754926536072571601144452996784102324662385118469263078378287649892477157698408654956368414533056022833294706977344921448898311003846467326833686709360000025616121766557823595938145147666076667467153982983068634563010319837514517351998822294694492459925050268097522869250059772829291647352043959139560909107474686749614565404705723499992638405033967959273544647631584373461903750491943687407240790762201241314360253465894110727630012297888237752607671709013400580848971427781866369704781940753735085173368027965390769440371411246292980757692514324684145286861630311656205414921648630935521813674207794808183855928634964679357951346873680729796095235430628503659438799536907814368981669561072790155692821473479596606303719079921793135222515876882479318016773727698071000557288102929066958664302128765315196204418039210403699995621265957605198982433352687414985999235913201768437510440828886142480600786619098602333438096121934483438107417294721391236937620640947967159813349309516776419881614391663200873559547130142448044944583574596515078037434914760578865584253213522755784929544897489315898072296638063757386905097755038760162108533488314955538995139112605152969376954873256716666871325188928659257133796581754551391912085261702144614664856381046298616247151172458749805334964922658944580473479754791510649107337499525915740189352583371684240366593114303448466815367464527090402802048963229115261717778209492342508821099207733347345546340420577253603082276692425012574721010123444688588420464348475605131691694800199627618461056813653121769141911021934346328508615703925779497297400392148601889394590605787473730701142097755611631599914765436457947031248792232590841138287141642633991457474881101385036301055646818347201904010641290551159583773745181647861993177232635403371555132167227438282644199758357804678197772460598769896286810415988234344100445327794626289123434875633345149171058725526853161592074065447541595050862644605236602881758005269682334012908836942303593389305981687310688210098327856372673141721202428147590580032608272159273494197214283540127509140884494751783518553951282688354867924497255261144700836613359744938677180014496042421657256950389965115683158574736519037056536618012381058965139282735619972151428082400270853995264308109111720306226660613504726490884984384886424398484865981403257568321653563504136408495422768339215257534166319793107688234221304152412578739105444956394341429091575877611238825087775524926208035918890377303289929087235360346280005216892687228657966971349456635145810612143832669077761099948568964411571505231351100630144520311818762730194090498612448727943220719483173881888193542142069414045743365718225953773031353888244510129018309684191458088834431155366043846022562274896365160132695109328555780297508621422372759808054267495269091154269407111761167315728876936933902918014839881411173303672101670209664451250043070894318638416666031918071965289354281525755319671855169849000282750275395913687998924203123858670955894661754382278161730550980128085560312004482078512764119248306005548395239236742925802759821043612166498393518866902478112293108690178334571594434532548852139461850211898588314159062189437944949799161722414586814685438980843351788383927882752577284928981688270277435331942325877619883120302949177144282423341353855288954271199372140679933969665587010639728168902304262613083799524963001163281684165347961884230655411548880125380935161448904562434358295411547311162943884980579369170438791884476039207257389125539170927373684157183610891824768527858013783268798846045742309761787438211423500409763284155210514281342295833091915824361085352825045774852287050178700672302352860406506728859435530944504749877222400386360829345418106554913392767989343940975436390820588211412894789765248208952448739108207126945051014651948433398383056042282064130413685200544303604032180937284459971490542510795663731330781753609296721510609851952596613692331807473170859054568415313617054627791065548285111350631439792104243539458094903442594510262732513894789470130036343384928803072221236081142306377176660574505193403144643215221450362443102105849178431172125872022368459365469635047907033527878341472154247127198457608705744228132794164809669635094072929903594473977463243189199257722251690405972730094067923849617455006175025326396038799028756599248089623430616623632864814170428444417303215828123194999336148900875712918673609590637221335664054768214468662310203291474279294813598202499260651319076673197231810714343528004752692677439460822113828974680640274859406740893558312146484424984193191360102384303329975014822992668985636110447198709422691791402614487197100765597474277046268491857758582005619038730699894877241512379591291122037561100059805061764422588556188042012908632926273576639837539283906274359165156885052231045575966537617346167865334337725987998694184183600461338587940271292333053183769761292020426517152317729465921528442970437962245283313514682201174876551347670072708582653908257262918033608423330042657718254916855548568206690736786170587392837618431049408611545427481928161916161575648110929263385215176441192590890878608791291682210082477512614593781435083416311501002925620636416054986599628918499025424652693111325345089532653318096820094368044806459146235808161936098519471883174723589140326716390505906609214893516698012471504768043934004875138312641501719618449244349646574759639832607537671340708931233896438300575119685772022478316078258919768046175331160350972254778286082512496405595542182885039380568383067770807436768758806879741229746203066398974611142592714676330855213029319477404727926003606802868468932660725249632541112764242069872755971630444850826718592131348216558999698770000493441282232750561990495767718221676136526172683976596131406580265623777827764253885383594975059330322231384211215490562365814571220620848977061159459062048546605540976461657968163202323125517276147499794233617431480053065356188194677675273060949137775097871969535942089634796609288225840692445455057746708997253512702992828684431415935795779974015077686864175942927342748025059167610779072682850298730811931308391167074679549595499291353842119252200051303181516997701216995802994767992263239721260905905159381103231614642693165858305186030935089169809283249991067123953104645870721336612166540882008685139066738044024945675752208926262882099452488093963594986976101462054859205697356508316378968493808775355079069171776068698064962481909514088250076405860319873712183954657499635210346326003315750700229972312779397412395226869095955040619462965854486204343843548893935500833814932756260489280714680283235570891507098321167876914626955906026841012085773324027336155355403430591609394699820502688127951558436698505015047433707387298391750317062431606040098171531398496398328311628389853125518777837254135512605931698300964235356291282105555375503541929976293144772428352969350761245206844994637305700322913963822839573314757277269131009418307344279381655968318210437247662357567559240295507746590463173936664123698438444743804153538502065035040145284703987418843403291151306172617243912569100441371476609863972822218421212624624784436984859441290315492506360263241974632310792274328554931688335541045728506939292284999095899852009717908259177798248599618977843060264526148683949148957701141321959920127416850697386942129776720277143576284771144199483984217217195958280214055855867625448523041829616996463543911988707490440789784757262099256364608043124461016137224361166900010764219448188874265467315511030439358226890697853525985027856025516817782284459504137877520551712078249793773276964675254097006654623007190696137101327694930721658530616389006081484631741809971521714662282719754126565582991383473758310288555657872813377507237964762131899336595593297336699633936566721254046778580100811281014748129505607596442216585788520701100303427788994713631494678340865553026841369615968767383108649540189934173064545765215069998296835765158356796586003534925235014839324313263134639878789739254494255997653590530591427156627512735759306384387143887390669536189506176678288449382082380300750568629840021583330523138183936458380219208476450002118131465716639638468331044231659623872376307844718615858880491123912311263107152808376249808119371552512452451173125406793822341506903741337011876268743705195927691349447111087973054847930801906421384454052608080872260136549635039203772809672318265590256376546103000321175975201906264673232679617954855097218819217127645369263166534732349698680858107829668259159365767295035908577440538892397917350618607661685229627456782660957926425269413139225587831443652429700581097175686440264209082336934305926381848403212550889482165197175489886263750642086880257200750026979947974083373332937204171874297573908420465398561916483492136065340877539831877408518057539854136425299687231743975379721401471336557811622792665339992372855720127831439280660051580603151875339966903621814565131449363286304662543010199992021684801077904582447361740531349488602710241535903266963131047660808489465299914127942934634450630650796494767550500849874135760110877774984715947852092840429192145919498084711474417582103275733893335093918591585728084631247030989968682071803202611623910371952311858899115456743739790661833958450304403231032351320555697632898964727114417272812793844694499771188535677530156116956060319405831212704897317927507225733226404573001072368075654322479712498734517838856502017653010225830163809803243106873578968863249641879554433201651680506940523303661381124064440058647010596415863828621454601097208416026675035084097643947221511073262898063532764771270111467657662711291115044352326670622112879373411362972766706943459386197023650615664220568893829719497407283513716020160253815826462949872224112603103605564869372055312224672596349595611291158608019331469225593035496824784644970615430941385156707988704384833687190761261813636747721940193308684747483829595459965946899886228936384477143809065761150952375152288530013462818296792637652398810201355881251825584580923692631366694893760485576981778499657248011900018796374556921620842805923699069497019077126331245650735389894366308566041144047693030034597109041464955928106508511627558909190662885656023005683483372314321655944171560460401137540459630450297764151580954031786928511853066042484388555686030793495235658076365497041472939941157744836618636352856213549329351063755300587592288560384646013222798673433045610907186294700375470836905217682152747491773940792127749670220681549908587491412387574336794026584058200260249941836788420269859732645459048613082986269986797110816289644232204015975302771439334716750958281084655752663356132567472267766272619945683192066610988865559596250807183126526229288061514260595676036139480869685094339382213239375346282078404201673102138970090473085278053208622806366614766849694883969926990362935200682793278142874592570493995466298006792462442804332393203732707564881935968908397403522822774109733483420406672165954166785035140495823337431485802038789729786067191313011489249967634429985758244785808537794785700553152616832958413834176672302749001121457022115865334516622157901454463306576479849087597874186525623668610710041204948594273919703047375356610342297268574993246998756016665121759468654674367915566963049228087621971082261256630101957863026541669196726926389869718045973457974348964598667581993947319272479307319054218404482446079923853902758332628345047053108668922239243105855733010598552394173702081957526737749984239706537899140032823409526103664853917869586403523718260916614184360259211977556703329194256491689111428073126408507373433553191673084395838957006876965383563288667973268208684344236146172430247534853349069485907713190332169981921439308775452743170035027670004729122617740385617970147816936531452717321051024148641244428846467571984100594697369878188013608610518316826857007370496455514501557233159739654916588620509804926078123751775169316932409849590999975696039088711567439435127213535295503733965654868554866056959630417767598263395715584882255613111243262727117285085394339769504612053971980335600493365657438035569897060232251474612047312857491551485225201513375554076709312507095826629286204146703291398666914675305698716062896345617036942541182195310345911643975997693528946496390208242801828137108795645540541994258616143558517088131040018871972784388038592315313016150793821851557975727229808122435619790050829328278291527685508810874196828750807635267716469920766924537530755551600827194009729093518944509215412234085134446825078144194354658915849973329283189517100298051346988976302670619953408455946564368975122776213216343942006185978235214114295663250294957302201872014320307640635876280566596955059021781937693840006036314981480452353623616332594058285547404715206680017104076879468445468697992601222749907343633336970959059461552394893232471506337044187174805868243386108796547269543045961697286102864695974657592994395889328890909292251456626274789279958157710126319131051104079934068319714459873794181407159920774124511220820858387265929400019677057667535474791247299594921749821855699364342170760864796211618468762596804542006466421313776149472646583120788808728387175337410324018395680660413631327111091072772167543889402619563478989167722971875731060498069971641304761550710102768543736624402818376766786786708097463594744139742903219260341967671242762954604055187813534311753189933463114989837406612241654058137027363158321559322778216854671159751038287617830000679473666447839112246258054689461945821924232111545624075294054169021066391511822531019765234818757865362388116578758943829647392615989453790341938093643810379919270294476680007359842346846184845134636623582143788881540966656412650322028411756315518857129367624052523573886836424918755397788862905315311793026790967444678960560718318495176373436776360902730086875975188826406755669539739505723199646329642695576175538250731922769106388569922457735454635037642692415884382407873722647714284401469382424014030609171979444608745828203505228889864553158972525030359181752429262444525096220947143525834394132426560329148806736358254750855076305885584991879042505135493402591210215888104296289018013945840635552378152344693546383236488907899931100334583979629342546131171383286935054279246487034445612601098059544190029517578023005859024582227452480362964257914960288705767167274834873220466567109724370250277355843205102102744877563649446495441354633657866702928717052538383515726269880295182821504173587871821604898680633229311084746382242532414415952842818981645701259588826925372791626959172449578351995068904018197319222146650727128445965747527403976781554460055081515001082669156883395988407368647759071567021432006123688765966500397956439189906656713754451294692409857335095043045425585799636634930558433537452690762970098730560284190873655588530964570191962188805326224626052215406786142979472120745945216981483787283946072736101783727212018099421489738010255285251410632268756674205841343023336347514616971343436341309525320413932349050144859577369619239670389166846764553149492758678147123480578404041084960734285103089362057574508578553147082849987643045285708067977768511767857956879729622189630251965100903871253685990592537925942899543439084444724204700377235972700079747299234622511819778903890064881482215142256374114418063067646617169396821445671193438118374999249107638095699628778853232626571257906850919453984724681511886714515138197256471872488490482914683923751122501636184361965871304114225483868934316583633099477677291226718354110832511797592268708620985397121143116447227212157515285604123160364632621254231229098107230797761015857772523549233877742726179802721887942726556892601136191902692463765342449279409837008086944709418094849226739642079294822130480391290321748789178571089031693938777804469640598354936150230875350177822952062106494771041710732548778470110621768056518643847804325669484023389185090580228859232832611922380229823343356015039799961446234926641947578670025813542842687408120508212735252023525884642389276493378882304885010679583466220629250128656952953443266660349347767857853427544859970331829234056957384977994957573159679030556266162623556467651897300788806247057110803664657538248526929711205600534647148929633849202363349973130739786020711499635178422418827347398723385386614952704263394008487772233412799320789247747245119029605863229248956839029595016450492975630606492337932568963190435717219312161468602595450688438794812223846250020125839452495265280923731023815926262817650033985217537365938338453316407546825660871686299603197069294946386993105008811162501641960991946279497669621686240385464911752550561067020855672792192859643773605122945748063865047553188773851368290823807568626965981444691274964689031306576558310601678141363860195146052538087739398739114241437645323386966603137218923239395149741535855606512138866259683518626081467316203292019095956261829159048274866645976051452317401438413651736797050251925623127741745080431024632018142997201225180142531103211799789914419908981427491567089338424289684972510191756940915853833650273895223230135692274234414109287221822830283295874209736457958679968405563445277921810233071123947566639667198384313228777828790964580714005347440009039058904853145645379727638447215361534048225893971780605576109076600936771127212178777163969458004058973603027977653705255294801738998214225360907836591794903239319471169597699615175696643852785900071931118219875770900413452445377238870415354964522832140556119565243682440694687758485378069238333862820058745006414674504136586345973546498644142174362239734119474034123012365548536922121280630320218623108191682702860282151825893380066717156017795382337594591236038048222199127669137962274307279184875948188652202876309590803323466062062439160377807531856565631115239134688402971551766612912684956350717462371646320168368943073539750117988818783580784491860396388001495895454077298528630665454045049022883247099491428437763327461497346929389589011886670430687686093894857346971101556822847299438282084719645187063993190201205475466458446418851135322405664060050381198301235032080961178356051718357882110615480617965117915804413746544948471252033267354428974501828803119038579748408149842541987253409471480818124227595658587000627190299679262024070811903424710113375719519496852435959947902126614196220030328846404791897862494780342968507660595408001237240879468860144845356102838205007507884589717600888322446689231531747500350742158074422798911702285032939606353237211823110353317291550541522016446746078789574029125800957979307676086139402199308410540512311068388715395135932217814828829999699702755463734138723001195809601302091505450576648065700743517971407697356722790377316637350841398715512136099738268215412065624389266398313092438865068973943556317447018954840825467466112925066340132871223148948808827827024431293236653386514665689172445352636341926784568796309321642309795240738730138035513808501796955556659284685118839615535703737740983889785744558956154944758633620292085903746341728647832806708980136413582690143229122839309490578427326266391444527845039039764238806144582168842008550517132032650449507610998296841687857447862007748332258576878720618352355567631652714497822277381423740141694382924716036531721803092626662841921178866237943688621723608093810107776353207014821126198783729151613283199541394107392866890247823956088566332799561172883130450363784016968438424929813298717660313312848438775168052662004108339426018282353404452278639388312873638210680782991460139625394201942704252170234770179296831884216361670692955055532581296769211564150311735170792595592428853566858481546837278556593542081321850982994671603521017594010629299876209243477747722941771617460468726149993131643539977995111231034392168372794858015089492490454863271131200317557172201527892843167157686293961445506641216897484517690756003169994830758328048246257907658381158265615484122892828225929343510736363375412507290779115625461167222125942427998551207829431227453303403745495407392599713057409505156014659951978448654798420322137727000958676197973882185833714651599277145406720643022752587925296269002326232098715022273716112013331646040623676787526331841135228293319510873166055308475047811886538061051697462483212411903541488817627290245659104084296283161636946289143158327070754985515847140774378326215317809499939605884371759788366286911989441318987673352021230532180964410581161898983278169271223513049802669184282085003027272819863331071278325243222584390259846857419865207805429293519628231174442280376652704057578179906941299377673568032330787219875925931050029109059287359573426308279158299038773445193243681369585122503865873597621764249499389294530877725202497685999969031153030777369160353310065632730403896983776124692162962210204417533403138178692288461808944087945140741807944714856972090371558009327100761216659490981990899946553374496789679281506630575841628653961026189747114094409007575525453418694397763113605460582065414525072746232204364514661584319289116600167636186714590136564829577065864088244061250410900859528969697287148694618655249938862287103420310240277919520869887320137171406701582546244558132923504897082852558312341833572139049201594494522899084579136305018098044883186503039721266648038695219577494494998454502521523392316038282338245939616645007470330271831676112431700534249791128533973715221784583309807340047285422349701572543700912144861806658986482831796039665444009740783480959290155694132232154865961446842299832562899940831759998133637155486641964644728955448424536221470229641572756430289619603501622135370802532483747446557190222625829323263871125980480009526094805861769091895834751952829291535621413407935974357643771977974828888657205675768483928768417610348850850911388559351762218431869242357122590620612147792233214211551647927450890694306877546494825608154526282192846823154351215705364806620211645606934226370675345597183501036041238048647645246040940203312939619605271102447424278451347456629442418932196275337841097742380573509561053296520485313383092570484884042441099209369198229975312458410904685678555914818233749806585538906190980618660026933525785722579046537318105417179637786392787734848676794879323640903760578731376537824000132089208487033820820308321016988770295353348979856460299352612509591852311948524984558765883963127594072637028425245506068253765607425588393813502313255717592878216681659047016091162228555139863913482115555368448685599797645824952969968373057114709641912354010145511327656966940694923107467240016588844243564164013812824892673756246159262413239034367072439341530438485681793308446895252016828987636225831322916250534992557147928647241366736341352837597428086347732598065239261086695619111155215267232055490754833928760181325733383848826200925684958396504079099878896556327153520005015443963332002717185505398056805082750538602490925281137438194906920379479328777642912453292164224855663871761852830958088307950644180320699007301553294415993700153290957254555466695871067278304683644164678745506305309931635492833258707015249238611045543115423245800149505177212083941455741930981458780059245862879806577907313014849406510889336419798775398485666047249773233956152224056328162360893029520204114455762733697414733379191701007315726550706232566714663291291674177979741574545713154241520740273550863263480456356432320374470354228922991813259154720052749450847501206232910648613158611345692142867695881134478211091691309749081329310007289771018435332996093976626132410532917451986864554644372787702692082411238086622586708124782901059408561996576509523568166934237301081321183775688912591114084319819316367037556148121836987296087803809371921955265812648850309310068713458420173440618749993597802268348229390666011535658316466039516068107875303050651751989072584538726638607458681891476311947776946501264398639486332168990673693396687751001871694787258093348905967981686415279665084390345541525818952047887999628242641863925566436666598894308758509440052437930357500447721942667647886414919298987011610773164831908725716835630517453913927870319230005102448039017257078108015309010006859894420419264023672467110379105900118368768327897676382346003211985005678115869967516366020010545447331335269301959177852234514198801380978820863118295203556810563480990547600919181953840046029578256628620194305077716759494409924527358142222785768394530345453920399558475064163592115723075212900807492874603174557061773848663579712152341486411444147050333363909213901385432770281450498727086222523991668942776979566844147074038456077300288922835713222356392055895632531317425081587397237265759536700608842091979389366138078837786518587522230612863932492311147983682126028581301547697154378543023244215616929586545043829515655067303155027589204754318300309382704151666096442504684130784648872956008538762777004204642582558446783107113509450552967688083139212890615255530805535059583870716716060930619109054059618882494114489377888616871075519413037978582982995750246697905323298818813092720649983169731193102644199066136079789533476472314379450839530975464373542872944980949379529039893944785351915589857462083410711211541543559198381653900990952401633004949052832427035388941836376398021697809588500734803302016229602544961296257486166049573221693559346925414101767581147209295646121550496791912034099117625151289791673112392762837800453000917848968307154280573944433723548508063769471314534893881668505719981327442872681881618575173125320343553977713643852686116182389498060129539766920832528480007764312441536595462166000536938869763619450258024609362451762581444322580611321123634021494224010879082806039970310783642457114616271322356901517344621233112558076182166493546766243572312071584260024163746479505370781178835851651989659245577434659480872394052722199231016571326012252153404671615989733819339620977796156887919154549708593642418468813063291731769507421886766372497866554365122675769621460688431916182789952998351263295224386899981418134587349190399717843111723420436540551759601477552173353493363660730695005767703442220505900149312376252283011028674915297115695730685934123736845690596786776121422103108106165237000355966988327292232221021495833856190970020496594893575733288089290786638505193178444258917199635992875620361955847457918996375096500419601694617230971721913575826927583426409015580958869693806608124296954190486715527378605651246544276724571747638887032492237201077144637132622555259189348166830692209637460375604029645271653501109417860745669392461377679338833234108830923888352659281235552437852504239811098685882525694456138577134172274960172328848822537622336812800918398137365161215384421845467220987232119246051361502749519049087273756790465239846879036688352147702041101219475353338073744045731036992640246824135380675825859995260874021831786395141077030455985491589164522260551067477238570781645676517873529066977626423861675566890759985576521609538515622779887524876209859064186721722754903907678763973283126234511270882111860462814534147508823222258584983070386124534264792664053546388574698599227447315143347496868955775489198750044769386530082973999163690703027168521376462242456590645432903280007973055751907208798792314035474204158026932620327732523811212900324554626442822415051343373014102360624785640101852371836171594375492422212811007239910887873846947420815280751531023256579643129996333455426692951182256959035252105476866565225642906931127431314254742663997523012009725605843026787221378886631233992619884323898812393450171358733971678413278474593601191195208992108185039959183362456592606783431687007550216850740559128125389848629283161925085940460295002055679814846662469592166234734958290569010268627711542056698223851628398153106078163517616601840286760823382652632270243710143359965360549450002075869206302699677875445671420764795433301326047528057649070991624051483966914626608000861970289803620414724540995111380836842905516791706461610507038478068544508984282782643770978563737990850332914731218912747647215859277399196300573438916124698935494611527125683778276195774173235394429551226739303610306387497935459153143312540211898534737902107875537562012161063443860807350044410505704370234088657216303523516923329855101015086513871249741508179089087606029045351040569154253778165174882888864645743211194481377147413576640502880042866186810173422461240936044759651476308235291673768787254576452163610453901456961732573881607031075159729213380087611563661990623334302990997587868341463427210062603996378106904417588248251244316006318512296055216956071529018677763715478484290149247075894718321669598243031587617953479538537074749279539903301457849585802991240606083769429288525352805994320636561905229793570566270203805988108694786062217161142209751685760164690416660088236423710460145760751761289127241139858952500841492486829885945803327482633261800862804070838796899266566935156540067046502345735199021194126133391294349494429461132566477164200063356538107093491211683037964822602482364105492595841556664289624309908964886177995228543760551365985448020439324589738210650484911834068696009141404094441626433727868021108863159686524758438987027891482327486072436275730134023513115088174635562872615642791561081817917826066219306368919264390480802074777514309379494060438676442441988402692599389017817626836320730832742948280226272031117426833835737876954693662563000612544974917862158882808045682255309032619343695044008246005242364197456666469763631789832600341461599292578139738143161282382228980071074815757245553205784801824459530621234267388898049768319876793839267698223363940088181460444237591377627202479877150470366335547744159408403724023822037374302408372589947223464554657384562455339008703295890225533563642325187670758133880281281168584518069391000057579583344548226093447769288945396879195593526418767171642753893129325539982787902681387767870060857747245364431282211398741831180656165298262137319940543328770352621721190212515223011051589806680919661363073485900313628847610313380026723961360350736751100462703019647857525136932125526171423475214583219380307732840676149581723806570175526383422790591538769851992115209713019980739644329750079998922844287274931066427282713503388574375263827622869164942657047554656348509657741171871469361743943197608879599702383859358388190418343715757447122859113636939499447821435424732553543422254474517051539334460644020671825349468433621072341356165336137287281836849546527525466938843696881597685439960645785026993126437803174783491763264279139018287638844540279632929971672846226756609361052794009522207119845455446549649974163452278804230863476390953857109610137421071533740124357867993047278411517127077498656432224200465336396612969559554144278971726414107843687485914421959879373518869957278512038910453267140723288517647682691131929191516772540419064244249138448044643711200311080943592993760103180359201415177716241295123553276953709856911887839670596171977335816545905636977051584628602971522547084294792585802480887712780931041766990198443078695531477314069937737479831555477699277695923976278031478077718726190961103459249267297193991629926535941720937904285941290545579160751011091933732328130107452655123122808449288909107204871526129371596404607337964941528336616710458763000053641098476281083073490509115620170976101143731186917190811346434191768571666338663578381363451418882488096410697632595244543221543338038315508096699889879348637213254521226017699884477548654290032306120848146534113584115764881275495969898498567348106157045995086354348181711854329749302087650455542680745723735258061174376424395862544539267126180738575279461360652935275865062262765321156961379369125928527340497733048461927077939116205110999687046804709671740707865545751896359230537467961246935844857049445570103355314097987658622681019990992779424639441591362069224976024642336861558624670854761818977740416550697897053193208944812130151598123171848434108933708506115974361681208209011132797347299707701706921147860670503463088187348803793603552304128263872186611187770456357360193876754054915194725450089618906377897600374719046223136156127845430522099388812280834530933379912260477661251051987091738796143150291000958281086007159317385730985139704702513101895063604806325197182612585228320096825136580852875531825340045569874871376054801878564733481271896448219245937362374275545820247837595427112899300686473040547186125686187525027806666629646977951121007547138168517068342906481364482518659281658841914963430874592469753843594859329125830324327876897286988529766996974455783762794578444920233150589084884598726244488759024872083303041793756745153121525946128500041710523226748239710196727068796896114665609721810109894500891483135374562365472762928950969456907454681431501315944020540715370297522126970240249156923795235306421752921996726214505198175956257110915325561943171838443348641908835603312291755944634289074103660247593898287565626288936027966398733248238430426386760384516247346747126943357631447871166987221904342625331271930635940960160368896061020464932509947548432454777784805347094689922977720042902433738126955669457477981202407581060216947615237852059549066721433287883528403105240495783626747559439112634624531933578248949088641129104692964377959427151399463657871496033056676274503597127182180063943418337620689813039137466410578406358363127354717677677018394371943534467347219065205300559115741253435558125377590614126456032871331138305992503564686817398784663144112160219930313321669893074115294173514088326891599222875216145010181957871422199493275679988799334712019861723596670339958954403547466488077633725972845852190367892768465423424878891158597067929815032759455034412736167908743177879787016844749140135185702453956246747308975609774087583743333515779460000756299491451714295662091808488614132353918970813442605201644169442898555287516262730777571879631936376221128528108194696569289510544646176279863499691982323831538468714301920302955990006354332399037460493750815858082266527667240908661161291194304131610903339323472386112857410378982507942925824633159332834585790887329495792381610914941643335152189816645487215050193536686069792403554068780125327500573716266374690726892272230157165802168512838861007653649582666599434816015007156378199545755276386203189187811555374374870453861257461532237285675279449013868791295529501662488888628260543380205952573839402772286996734635070399269853600239591514536347984391267346958639377748346449713792657749882502671865409229159446306122142075792354905562406438949481734566081862987583329618228028845598994729581771564099313895102670338024189606100022790990717758017469804567147829341524748476891427758995675054277078132515519187385625185897502185039090508544181551490220092312439224053647046661815158327685095221382405356396444459669022737818274836633229029407940581281587217350512687904406554998044379798356292390616105506787847074089067542727677946873144341911046477355440955085880491324705944766756024862780295454896679166828306468785508102826363162303586646305539094203930767190627613086894134028858618839529269672464905898064714892985956136922802106748191517449342452935065074978930512714904657062502571837328314800209264208687978743623918311729483269357956295118456713195820095207943755802342392652538214435317023396602064478066585819828104419084468093931834659798319494859451112865766617012587671519674480292824337024184669303450474024538809053195395963336070719064326903225412870565402885098337906480762570993593964731699918316521199239214272793235155983694693224823206811452655151612270047321459477211109574032711285755975465326314766616550068626940946591536713730318863635514519014299398062204863117719389611249906716388662201305472160382411376108072125830802615134729883306784247722621829267302542806939315079203669067096792804259214626068213674802237741362202806764153435597099247900913773236022693277119787471973207952220951792292766706479110369970187182858539293927342617655328222332109221460850923348282217426733274439365107010982558797877257025075544887550540108136500209564185151375759852663767388029839498902445987493873845196748228744244072945630576053401073509449996149739315194851604009842794938684950988656434460165336809293033552680210567377555581238768388545589021675973240612649108612465783188431759534805123396748872715182796568157839173512360962242877097608603714940442888920789397005163603673245245158051188896475717479539693214936657514804887731755725303287627003244431639280521696869004312365123337698705453754150869123955868757789153555513567237169742673222977043915686570137410228521717958462113218410726212998933590490028750835988838602236603077564294306003119696012706176717925908083443279446901518203926487785796686738250857610682675224333418265956373938112556888379014320471283903593462804607769835500340563038842609889157087315856913281422826879057156743726368681299284120091182105527391798749088535963345587686389546970093613108710961344985816060777097281267641345752600767355505160696699673923090974345670890610818296277714581201570297005828412755097670901945504938003731046375813243271966052509298522931654303591859605890303509305104494547223583497468888047608358876503052536846023355881748010684654995235729190679013574552065449465671414287934819541708761510806557622615660970231297753655252375454906662438847245634095224490395147778229700503306108357331755159060316397631768315991728478167924564637292966406149507109095234511293304169878306817522591992953586777712286620840395283229325792776256662502876452939301243951741255292310732153813326378102606244067513933873881930149895121132985145711168535061061811634978513716641864134116133840555382633174523075202335473652277552902997118158996510613492159276769266555059830544608778617918881312848530541207800004041146841967537114525566115744053036751549407362632400705997140388780523442890844685105021412141219008853415340828142754028337839464652084989078221784257019152488246417439724787374759222900110343151952238824448095444898254277602220265207979121471479232490609267949395588551033925675857075529105447440658742005953326617690066854171215725510043891943975201993886289140320822251214331991088623702355524899678833913551891652408292332335405299387884415095408475977020812764472353555200266362720014860488189267422972431908395376298115757011261719373302000105647584207026111202952403961806490803725955642639200064842216995015675845253152327001531336466583113247420741201728387650103751616119765077400171508143809208914542605922610465587025214968172735886664106483267613069249116182814530555311127340904911764396610500205364279452212970656345434661908348169193029558495851881615516191283156279585125150183058634043205215465359944886339372338145583929561528216609542480774457999022263773535607996785447128660932850379661419744808258670529258911676959153777906083493950104818150093642429501636672337425503026672843450106848183246244991685877994624439595205986211029660413030361979655604652378378240793846015598233366409731579341835937859020660143803452493568036332100978549926864458868633156306195680849240813544013539407279870118912952184113263983006862309724233441636936660842918794861102020644716445271488096072041713856423508472615966872895725262819265702546048797343866152145386292551879902645715908635759571012252904980792411771724030561612277812405054530423898839404921557907201644453352236536256830985552226557776949831029545274703759859756744296944222627428584980725046744156749191523996267498298258767454198478387641169366541567914792464060199027094831553118050372197570809486548244735046981188732867009981213762351899681854945513645688491617956781564249689094057220672199030832224232463296294524266109534821327329904444128764985223367634147757299232033350708890008962502840740710875723775475044108526398448186235940754826523588389892612703828754556200601560115608658308558289412997549546415517257626585698545822397093640382897620205551619795073929014671735944676917273062434381012131953707543667501256633785863881655688985557002390429268519335822280654555264828262611520299073971353364587699626193111537885963005523040211285016445514482814533685818220779197452740424782656294956273199949827453858848619827389942017997377429568357500072727997816402622190976556972874208292636855032461463299610891945220275199233704292230958566296467481671589730851844150162903900227189205701245955126274557374054082499186163224005278303007673502509359095780714848887590126536846240305675770826737834694932397536394119493612267731295766065649270627194117364005874770329738133046863347536946741175043837214227432994556137109389312963189993811768575330802963096321429913754881951829868032558129040163184689736247353184565762930113979520904198802302367993328245146907916208358690992967525624109986430856050135020767560880356676270708250342619056538488402117351908983181051407037744564282591624083404011131910702336645223750154836384631962394862246664320932484773676763691806734370765343190649747354765198782641855829964080679401436623652226564187913969237007020482847295344415992492026218491162850268475290892212750775920054868759104461974987492631760887976822906440570962486218002285203598971896651110048320343125199418017972245029328379802218884563321058014388409724825106867431052949762909829068789611036421530258450344703513597381433725258771711111815101548497148924882798040948021114776754700101383127574429170988274807229867171177019979166638893901587571626164587763283865982331371278846312974944243712867506630797663439075476972307188154005604823218086370513798929820904035777343791182194696025860821888703292455556754960761557362417586983562315635752457328371797346344056310337585505774455878806738460579060050010012988491023050836047630047875940955950859020039500068534079414732375805144516580447237442395413820484512490079651810053373427796099549906708825101456415896670753929898374485789044374517163852995009829313510388457121469876891960984449033613015465298711895244473021141900309248937754542691747527322510334329911310057832763212107772889900326534955134556452040930617527294978654949797771211338856250705904316387802323928456451893640007794643346390296214609993768286342890706943986856091371500800030949539989351349793508601986641965616080336028769952552244611844155492074526293010134408783424990362800239469243546247331881834868288775820970441543428929105767049465976485183620775426152507135807059618132574940023336017279430530153808976290297009646043713525918755732298861613297996678879544843767088860565591548397084381859316578243265775986256216678918184288358179711664946129614492335498012715719930155885139286450355795078529156306682236483670331583021460099602750724303846306692985134783235293684213541284712049151850998722756641840128999597568479258137764928249828316756516024550365066531703005381940417966716686729068966139077028151928010297716375835908289898089599191679404003412307137253633067488434634987450328913221732853176349335657503705047363428195527201537800429896904931691931700960464158654719548261208972543106478472831402900097450726665528712956012489026733803136458529127384701777771540906368850681037359898169362348218195755305046769433553050155836502413713756731571108980325366163923878408713753855478049339652575028261583527098438716718710436793763239256764906207852315448408419704230911940602724262328027167885013779004550528094339109549158176056827219267628765611745345682275787837814444684619669856022528517822592714691958525167835974993920646716284324736312950235504587511601039320589440232782297749351959273753709297939140529602193776844189338416046502440859786859942528319000097228508899782339434912402491543402028519773850482174281419011716308459713071120017733125809442137214968280373649038182893161208406551869398287223972516259962599933855997947337503080731957283007096070484300066780482521322098908544616497279272855906988800856908438065046928397144679393506475858559440058387621513820653434228142477738625595415717530890706478214628891016681208311557534582457852308148975328166539833831121730654999219440957069713540044927907441476811087723719353838903375630814377481834135602474130565608478107732211498991813848378391014623886450636001659761250404615689706263370161594372502708536875103140730243913810401522897675429872772611302008990404493358904723036935222759404046413459952554166124024568604400138502247352636133475134484476158836144711792587897347891052113719384080264260218762197406425246113837783369753816141974066088167720957194050441418988870132261884915049486425158497573227288266267577741799061694983152014637956286989955000367089887074619900243495494865030094378065724507643165027503407753219692007208456987965156591540781089526413688044785357392721170197392209289459557130517769380398512197477353389815549547404243028693174428633469234177249027625585613689848054591557333351006190563922363756376568298374189545160514392376739831113617373337884272664869810037049405957276732430965089578980606594952938223812735979718826416947910856363571356039032382310760515178758371701624115040771699973500634452274833312762573041055332927576067366363376131729249382336715229008466765820802934514744540920479341878722716291966469529967878850863142460223812197411478168669873318196529432989509015945236365581012664397970112390718623823695692004792464382768654925260671657899239439658497902004430758008682588234614505603137162286876649354311664887871930402412420466634421476414830644779370113840251073561700718403101744656144949704080077212436298021406221692508890235060247131124841077152555069076642529097306314392838918300838434036483302294009514980108875783118532644710528388814825758043871088376433783841495479207793524139368911365083892877925876997689590954510552183927560543885827288794866713837460573757580637905325889522824188503238276703560932267850739077496829885508743111661403915013654209966495827247895670054231435718941652290013687977310497755674202554566156536292889190860812116938234351097395823310894373288930695745330264401734016005606884927009748544429487430305942311816672694990425673553263437775529209089798185324080978462459052459040937537757675228445138957288285371520427828482246152909555724900756378042331435270989899228888427079047238271574114793593246870887053707851480495604719055530899297951964269390354450544585284879936824812527715504726014478877220249357454475177139523105408140335635503973826290461919207417969980584494972918310257060667390992093420196867641125960111084125347193237914510902774275559690606105844855169350874272023361169360026774378411469075482845620029811670252532738430846508202700403835807641917424953031193211811936279731094887801069974484891756865313347619867264116579447277229121804353806627813174036202834627862757951701082524620123519276455750173263496151344727612415356459199377266236112716108487171560940607939569740466777510988807057169864685203165087325974438034353979854796832967166199907462607612328559896469337311616430730577756803756850101782837183933288747152565067345368144495895405453977822808263373341786882831541910247772048710814905731372323934744998920260131879553179808056258071589187220898882911060520631257355224885462879025989943823149823695544569702528609911153950160385892263515401941368287553673846062253094126709489901387935418521817645304326680710555007837001047949428477326170649575236631616349233102905820222242883048479683025393627874551269918540636145939572632550070767406459617675707164799706271627561410803480768965767232893138863885744157580965798394493452330571856847722725490843213799005979708252657268525410160364371040290163812058187306089727421377611079033006937959042511783622005062866440692039563613226561134277288046430307475404707888793895817194944600031786711680304478855786448620374411962105716586625405830791169772976866865147813640855343652930649035581691750065797984975160277354780828790459724416342819803878886159561100814642159492343586310790553956990938914977492600141087599938397507075997557974197573178655322564891143588937153203633900779205461569836533794048997316030009409436692294526109775779659934314733280467028058057937484933885319877560466700561215881839672368052507076379273644974575576694420645360738486200887403131813278210415311096821244370152695386399405274726418444103359801959376942117907273141239966484885301937551872923315168640377489025334912530777467245416508127397650373202784511451328513375455657135240965068445468176385588878455883282897170240426589258111480455881027078662405332664768047187498817434394441396987495639360583050663619177488622176694048334558090633163125602430604572001903625879153923685389297741796641860242395695655986796525802383193167955007994203180296787526441755847854287493290074154205184055752007994725547557725648642915005942746181887523985890896359899812455254199042305965197498128365008123156763239131013264647894270246324600120533987309355945231570008690698797086982159071671474933502837446796599407678882143993705799742428341664899228867045524605563509251235341487695294113729564407342984809882699839891262403701794984569993231642583938706875712157580694352131719378749351459596507390558715262760315203112207174661369999205027712812745106091241428505459356269271897478867525339814673538577227931995088655646467849827761595345291992627402512270487631657376218816127826386009134853138889913209005240346651752591139973982469562708663001279208109530431832138276905722209925667351726566926188562512031278500543945071939347316043405509332330548238966967244019160053778471382296629781050231059294375313786001480076138607421651789313318152144460794119739354997009353490189646571736318262542216778383043106276620082703873362272376806680199376609876361444909938226697546429881165074997541547976916231178825436019017321393805730139053393572226431284232176010388411338118747893273096553426525765090784183955369792844219968205671440196259592288868303941858012704529528259330987194078564853046462387130746024454882846761882093908578848945720625431530770673799074330242254675094349630993532568841466949076377194842301245153331929930130451824266151094821564054796953408705356493033698324816443931812570185100080082740641467379222623127639992551912654375076271937704758230305923537658168556738054867653092034353935134374045076717284118384702950922817168796083970414629564919734787284122040457596175669461348386409573759165588720571917591732248748792384371773129956698991248350490704264666636331197910121875777695163536241576536665474897855025034445155614512062526041817490521792762790917385369755373249141254609714686415387402680365957335466095851108867674907649343032570447850299695555195307787254897991611922498580978104897098275996029512379113166624382229076962390844937236931999517841419253326208440018128532980519785363126683052785456077878324792112541912692094120632542553340116155336818724020892700908712358937703965274630701449582231172734416587633457342917269296436000754663033275476883754719136887498133067280509958306255296066332004370556876167861038568512549243452646612765379195984292772641017413973460820146078257640392122866087722187946882236883378039363714547308884329139090734715603703802266416075644623617005038611092149601049635670803607182243747365511057118059820182340579492395048674895633499685948400546253682537302846661082169515348088021177369025292180572705504836362875159079852006841726292378501564774631849761810372678609719539152410325507583651633513922083518024409514375051526577080139084125307999815930813883538485206963604025196814552436086545196958787550350046267269577338950317971277383914192959933316288988521145014497209967094896641291392612829097714082504778049519380966085151286476635324527988506813689420122118389311516534012032949247246901360500801001110285564786893720098310702317339466467903555282344225887425215975675659120883109725810540754424429654676964515368596886298257445628947159277920883167655708828623243335863420748277351612012000907451893704081254846649593324665984722882949412892853189208715939400072712730059203626443857840376094096094618876739610423648357535512769973073246908770043208225015492299904408601084676328617491065310687213485318404529851563092963366466259041642293696125896533074786253972086142273429318032774588758550945101457663565471511535155296333919279704246446461068657274418156056980547972411656943262916240798343411687362595139858926658396136242856753014385858242398150056022524295561770348887441930273303503315319519495546935164805064771642008434449304127866468753544992808116724701710321103407733461634840454385456252585381668641925129190981690906770864202737197182600733895599326403110120633783474272563140024154587009866066819018109478195380499770028635727408745546093323421751225464984043430738249828756019084619337616155624897400793891312467579342348108765831622183307959454528325121794383741676854896144924361324697666332170039692802836026964022369676374002905070177075177303528239322320335766633331557607384717906227806579813267091323523470732506464928512554595726404427177748466275800303683693297806141231238907834059864688681415177733556088595051762119510561378831620280768775466054705328788879366549454391822483284908827828493019719147964839345992566361149669842775147349162640260869885821125672798073499862221738924353359587878758564349825244423066772989838400622975606160340169518530273570580902900518988106956026503894323585868716017144953311629542871230234370023825129818722336215611094801041431047934359586776039292196354869896714856203882519202447454174352319584637654188303273403747387487449404562396554777594894011777198326350658161600564434677616434560114606160441251377137123294299329675257006523944816829053120971349195177210315834344974357629187796467063116032744264266768610695038648866610911011507432667268907566666859509714230026948556325386313453243393465364701504389441477042260914594514647871384513715490118690791982812282929493993383178132625006252236252682900959291023952795779272377592879578526595838223868920583869699874295398632998435033582823699376677338893996180028202182077347852067170828561907624586332418442100344521227086748379176612396075922365399363230011252597784043119010342753997879742564520066240351062520013522769012641161093023736635629548993988086856933389394187423814740377235495286488143627604125994401693820806322768686153077766627581810917128442169787119301900493289178955225464591085955561099380197870768350432352514598949431623757325968309926449442590297065429412024685333072211894570614330066777640566373817164222164719190734933212382311404952641864122296365864829269476477622514667555295781812069050674970019090189454281912271185324931470886017402712285496328248401745967159025907338396540044481336276679169100253938657426480884626223084706424560940245732764089510641709229752722212073572509670374799859571901673525405975078736405780746020162050658584092503972667873506442958632002338708359898890411537897030055994915770102513013224648714488369710448756437853373539164781056516510511625418405755732803487696809411063794328838022527182555555770945703769937616332721117505861804810947941221816776567734353673019995363177329528700266730202608413311052028340886006192167767357353924047316149239698803463486156351925319757160615987010360964513653377633514535590225195075649152987434059939367214249843614933249443691364450186873346535773993973783137399456191008250358285783724151279409643734793053143733899744286420145268698040291931613702923295340722439434729990672659055599220882579950875184924146029989164496374710427807219844691373470344751848758813004741739581003203836784932070248874382996339208259522203368404427258247694239688544155148513423516172791837729153828818076704336627463489110489490555037085911602649608508643127446734963621541890938128828110657661756073631694471427716853377812338262221228638518189335908517142900155154807267074823469510808998036070613377857963616156508414659260860874426819873288635270366443214057344018412007318994845529164777106299979935223957248727422507186934028100322068187671951854887437626876741822203344567064204808388767740689290073687755995382297041409618973791402266603408650389934683465292837162849589908911601032706865197460251313459582384508651418130694242603562983931707289227843721729563909748440433301122150231731380040367758834021378094230766597751152443372409837887412050647957617473888100086352503304565585891252289319603229326160826626703340323894214740033056228223882042604811755141230483031310782807140761531858758240559166545612414099834264012748753503261301529890869112576307819718276462777865434520756097797109842578269078257217477245098127498474383351408004302869176287428645832197013231647574911380955685020751704710058466196987882354328611825378342739802233690414587716673012452212366718454848913132189565880784055780502124822031000301844911175315241006581838712938507462924150605303898685549056407106034560122202460153486431107749292892228083141837414473546174509039341980184547425819683104957894507044122855902825263170056893477222638482794254297923007349134913010346740962330492583114728365381171317900993729450556408045156337649053170036882823795764520900088774072778324457039314860734550589288354787427692162229267259679164272574028917573470753276056012531920768604861380637847352621806723267576014687826471367705263074009035337514467755460536210082703291342820421412258702082949816266147280350192984583168924641018907738785218671417100700038220529646671037331151376602831963124979658623387113059353623927083628867179387142968263338081590645284608700069864335476872957766871254447150518336331483222427246340785644053332330812525376686418840633610081631445741758422485653188119469698062179936731200801618185535899954094547321626225572907522504458145849458453395620463928205934599385782826273919760244191155376710902156226088719329097788126248738670496997977195273114210869679328497903387085913135021965840005387529696043808660445899281440210610959746229122867094457601241067946684537777998018184310852731334752022020731860606231853694347882742125788120626518978564963012972327674507465420806021783188455407523878689761415999203579100123512209911472066915611887872814969371983562308445079820513460366409181862829149818405276558837873392914144095842390666736772386483608724068327488840817482814045235822871865461096595597227762886392251720784665254236499627950201811832356593230721950228828565063108633523903767514101210031669369369825050075657079498416899815077877557955641683523479341804997956003943874138575451268631579905231662823226617397501965818787656280593377743024924234946293736765561753315702734567817396158992366481912638673861179910818139119546594863996592830137967805093436212220519936113575406782871466834008388898253401576567180664609780253954095043396533032035119406933842681940828331581095197866424172838062799452627402687471054296986576164784075649243128358687051474439348710566821586764672421828745988214818427015054590452685380639991230961334563991595303796973477742548774385987011853403193452041146057346402900185467051533280951167155517117774015571944995965368831071389310170209023023008716341328726532966245943222500745819996572890140923160480350369159637487378891484143333413235821909163458364740831619506580154652394621978625284509536046954127281094252692657100567081716047220031983737229257254775713350816180117600036599896248508978562580332902660200921704105635904902071849879623166579395480963375114455784534431372133462660927151157065814890957815962101728725324375865651763597733715238581460488121574015184814026769370426762738408477754607710103965961382389150767835018445343695625998359893053907576124503924960258293473616287062363591624908209875837339984256554638001086028790581105753926276067469570245415021266862661626203673746244831016784889665334795751547234095289291950695518116523486472496216219047111146966177235041744905149907275811504656156174961125943788844701149619104476174538636317393550586398892513629865947266990086360329908743087388866026016239887635007348968055459617511975994532988517997481675285610598566761786244432717257378513417969613308797450030264941709072758010754692873675700251346138892742364449712196646344926673362839255173154493699669355221119895909528095622856576006101793419976568036248395311404267394529509499237806618730222614158169046971553657434893467834096750720985640013301818549166573830644154727305445594961579644897540094984236852802642577551304248396697821832671751140101827641236236135073368584218368251087131126345206085522854425112388923783203661689996392432994368028765967074956611163984166777284285696769703608528442945760562058393908753156789904065031019277910736085507239693854103826873159626632550143788076291744940672495597241391533947714555875767906414763637204273777989175497508400956447682033990327322680202835720669168422837148303554997349292735287706700502796586848367912990805852442552340669522739974171812754602488150414254204956666216053801263389694545912479013393130916339772793967298208284681093201731476137858548889473926502696992850168704044785708202503479094317834076233111203314698252226829077163858197409644305548835888916595713274548027193473875398449731221859094701403178142394945125725617298872243059590966566333536564173803490520915759187024189137643720717043468278501597489385210613169125384504245025389972064788311735665455931157600126207379609164397045136721500147987961552377261694877847962158079883902443227342843857938059879334478193081925122107021927295832568140468075917017687683202740050069117440370970219709383203005827423249687803574408641699249756341382121506437717035628609985957947755842897170348124694927824857290165523833492779480914682275798417864015589038955340549537946406853762741434350932647444246562604152168990828930266171135743693085066864894211007492211676828387742217626124518784767157234010045960344727084290249953365199357430397724270804002334865969246379769088971846303003445034726420793413788681911537321481324428312494524111877321034909418923014602662149508143546718026513596765483710034167018987366578273405050691821672725512205726604167887821478547705037495369251497023961499885334634497549620206515965922408891892999555986860056693674958305467849954920816451991181945028822867317010478160536878920298954481532960143214093351653294190407053211981302982058020441793062373417195447180381696712423187066801125588475689527120941924481429086427359013386519518705722133421610051405234871409167499637829891437421485233474636627111611092577819406557837492035148329431101415030914920705586646446708938771312929034070493488328323301403387715290909729248370721951599580819873268471108192723951468544297930356163864613410491063905388941425105754010058019522156685839155711865553492600428615740546735697541384153338093476241716593732603429303067604201994362382122363575265886970737428684965736785664808547386667277194426943357731942389322136660853851531186382904512532885642913800642450242233608889543966595392401765789673442048851519534245534321918688203131564993579392615481141977221819479121112099955979474233742898650291797715698375214366961236872238595856389804002800213029150238733688319472257167099734572922561316422684895944920681187070089795275944570399256986572216636199609529230289152515358304959439401518901308587044582368256569833595602045370235358477305208446192980853629652113205154175913984237309160375850415074467891127223720898748412671536265147795936061628899536076546232761034200670592215183274854054460378433521021199609918994707212083994312101618356007078240387700365816126604321366448619674046999841596699492853680515285683092088300246764481970481760388588530725035097944162068207856764125379916060587647964077586439850858083603362951389292193283776907720287135666134299979418065048733079984967877231315461293339855525175166831864195510946816627060108783785678646641189859576310152587099049616158363988573179582964398783636511089281496176142527592332287088576777175343609155993683446566322481151083331474624767623045996677732447377530272747265169436448178626406884392279289946893479569000197054292600628266898199623270173184226263669825904704373822256310704089316145459686846368477635345342704707978267417639295776246821803909908369023056814887231660277440877625443177822061216793500848845584788286053424679864744383089910315156222863500203772388607546246468832195182050148194761883613277202002567301999044685000091000777799499164284282306193003695503351602045326845089374556170942553599959693181446018828064172815934131461419212035875561096640921110281848065763855795369543178104925443439921133321066457282252099645330200699344803196110057353029761606308987788880619542447464382222979528698173382291146169213854741946815327645872842735282464949015596745207328878484996092039493412037967955358893620612696587409688853167917508065210113883105118713020199266276644317754284865445508259631919008435129910032292074130558000042622638946433124072809020423310107791530106799553917165122427557888296200098386500808803592443769432312332771243520066310220212588374297647949575930602674819613379183991671804382537890801717838984350486421111162262770760512967578568785939181531703722508278488075854115658118101144181859054747498223336883071322605346813970106741551280551565600288738398235476210330577189060032313399697228699498410478790957778339908702740260854491793941545260077835779073154855043764161741930412536257824634978903272760974509884530042687815775549912303391129479155511252766754345477481598848940097549338971007181973108602588737638599756716395563753541704587293000990427083029660479888947585996374685144532398937023218120969105270784573914861737341338389724060979090301819563637608198174432910684485053745188141294829214216974022415139914285557082100330259178023681459709400243896848286393887823299650733950191363453680462604174788254442867141173380487005632238743811138833993647403890213802530564866444445683175014400775708113480670357765081474768839931295869516104531324584892066265974426534279922446448259148345430253242798971921455772647439224812018617183173192617669983775107400069705300998019880386057960631099024533304786242230645906897926660971208857776144182673827892061010938352986009934775655016962145553715441037203816160194234417124992967696327740361025240395399946887045930028212379220702399904529528292157500427843995707733087943665986652781880669314098012351392363741116062231446988735637885313165806525788773177180513107417588622355602573996561501308287669120573835844879379394062584803712943452077517401706371551938738888235528653320441545540733505040972034522624359726380918176042980891478350540093962803053254361696799826992580301678426475218523951465934779441920276134626535298044875629576980865916103487305834308480175213838169423566684608783470497558611641328971253860922336160744581149686640726610295937564609022053220574437411271892549661543016273680483456558761989152053758702242378677026087682993636234378421010838036241432470885478490273850200077539760511179122181948831814553614182449824821971618923909363487032183887778783712659755630635336259508159985450019608279454817093933669582559830807602166963875334307006003179935465770971710216188459023614699382892382679717712873685817009187591187451844257919064883244783274654075641696057129429783335045328744544129845498950677971851891310353894947544694561859227666749001850360634304630410011805582076423107765402990740097854341940089707594304301199099699170243017042713645968609048827618225298192325305256726444402190469629394702839421877993946753967331523113411727273784036909784782489694961681832729280900816639311141264536571540244427104601899068839496057386429628497426362580916392746993889008698798331609919803775251308511159732414320789146909434900092050662705041637755473332097089036153050860407098864651925966482089951662273304003432959612975024562498258897082695648846353973952797809894020806107838219645409466780194889074340826523023428136411702568672445371817846797324313476833365509259580264867843718538493286737820330288654327556998764697948386647733763311423988184476279129570681817698293752354827984466108055426819731654780406266332932813350867066306640940491662857464234051065083681050773088021994643178065055439337583913114218149125823159651984290498373557727047903480442843902825667176391084764343552920081670917269151325873998998840986823084642687156742788722726945159344354513349485228821648439198019068442242585575567131603121023882322219602281260813312412373413854558542773096588589958037579119532405561566998533392192736002849860543968946462723628617500496713422760677786602720324050411410486017546375404365059210788573319489075822744936244862670194256531030166670736261345372878140927117816760157570121229105688395166694525642285840342250990540294537907141710382239360549791981631951101257319472140529904720609304918641053697311752912723800098046842338786574855942062048905257428337510986307550300759543923126731572091777182847880588474292569072415453096836003356831124157519581184962980460124496235844853353197223193127867796784678512281069517993690301982797781406042879578680859409045775699592434059637198045029660089714733764230203750356433557898969228045066670689639436966587731893916298157933517116240452237939433153700359676583191268604176500411306692001486899539101507346606018754805055633957380196244933011881268534497477005396350341570941290699205866342744532455486983115392626425856804383766936365145176827340910540104384345322482609007072869274986625789265091266484355128573608867343657883145766031959160580199539289544055565973016078015605874552499125868396354582550063101444994952398518421691182666468793608009014526376325342775553074207215621842350080054579141423846048332671144401198419214921754528154205498207110128894621850659588655367209652805407669259502529421909556462272313453296375338203888533591535187170055035512553321814302119949450063977407365407963491664878788795920441520273900128077123161532186784118544413712703192636690629849674451400921780141052030604489917523799857795410830018899842173927545895014783128798566838869317459324194345687898490694842894600447897236301587788010322679317398759448742824269395418886465426751987223505703484498163649303581487342597754381736032976242437805102025295057954748095018308404929887551341248316748878316245689421857064801673478928037176640435804920867420824597150278358780636615005313705295876043137080738972218530058352211236633071034335570475734753433875129962759863197030804862122175590815271922369081814495094014039478673907392380803502895727854858178414769605622135405405365648806863300174203967683742573593185104879779941185719986500683693749926457885700110279080868940574115419863265457790940471427278576538554768686054418625983343354970158838391495479301458680983752841121688089210561233460097261914787039146770911407801186115604493417298605964859192952930616024173728250324440450299296319784081571292920281260311334920117031590574838376179993654096238028710020442659345591649406793147572332206781595654376250049708993250343559113848110000495468853525892686764254711478428235997309420940948494863302731825248286419228855542212059895926461340274072942712286568037604956957041399592223643128894646319639485739258290655214269757825455254508849595718567434185791941379610559592007886293708737028774140927341608611728292297786541064565034229341414048940409862816081087132208893152928054704408468936734596158929452869449606242154413865628164187090876579890322498273439224543919841313940895607961918239317442825266760453433393583608909378800579962408061344270466829054098689961790672719467196062250754103180437819253311155501846225819753891865583259458390737995215718316410711812356534914299303942083197009600222355791640153863876738647815814374820046801959543165917351955918604330279250107830447347485160148478038547989899057520068861494636516415971408038380093588001728776053299294236087137222979312519914350693265729835236083037906364014498342248641787124237749578538994192575500936269619744270806545856764217839077630363491219647145116009390753349438893475377372413088581137144643660456532955043700413199737592419909245565400336108175868681888967800847470514339349562859284889488997520281346397993213759982570429494685378923113718695233713210127088189276349033540174288276678554702705749073892378150203019309130429387405899198152245705943501331954157391191216375425736436457993262178618926981691665055073075516341879349607435925715377335602387224214288303916917563187736050774756500571237909189566312075346898375383206612100343875854747282300144120441214787140007149341635785947104700533788990069648424240046792782604684543142656859190930093642129519205166999690628619166940304315314656685848780189449297705077204433555725450033746912127344333553774984042476828676243645860447323006211726497490149042006859163870513864692409014318270319425480090183622569243378229783289926519986481763952966303851105940768408348182812887028504684673401252820675672131953074008304255295383014845939858676986921860366114420267082542748416090122940979489329315940951052131158790434115985239314484667233344218332086360045170353029252293679673217575763507909318989591963597060400653073403348019885645100531317742221797979415718991735493987971455469448992104049387493561716935012051368405303727467551848665553045672466919763870059043836575080976001741453574482654704300448763733748473205280026836929198779457126177607848372232255059704963266859432559555352304604536609011774796048540214431582972604258399122989239389038370266943683622508438805051918735552275296068744183119122503535405815711514768369518683533667914497306958696833759449775313365506006108364979561824481880872353214906581347779296601949767819168792953557897860616069492353004965182586802326075514347477980027029599685629149951785240014111493746147648885409499357416567974187782494283717305381563882218020431201349307086507124015875277664989197089785442230445601096939500599952728120263441627296992735441513779955228440222007880911719409680024888164520356228881823845361529271557843149167264379462764890613707563544419688172622152677170502706469773524837591301468629954047245341212702982474401168020311574997232985066748791372406079610596782354162096698497012114477689732146052446290884495656434308138991105502998045273391641067463396483758736583542591931142545101616675756024371958484934026128454572569207224752055435261564573442598671639853813898799556343016917234862801038168716017423331336662407748493814713318121484924058975128938119589985255511864724697671541088362390686555369227915047394605417214326572463391497178907953100663795359496137350197930006958758691196210106922956831284837061641309580040572607216848752985219331358720524686628865798050409267964609202640770462959561207965152908540858300888364868155306305238076517370263526189846665896118909553643713808048895865650112770584144076290486672824797678335172764295305390443188856047617184468449251887919020512885438904328069178529452660890615722194045743710647281504113459329598429215977435596132444137838983275488637082556126470500574326474733417362970569081184164396300543273297310687315161544424598304153884998476741921320707148054197411794550604699763231532173087470994693775703401948007111313565427542971689943204378025358518390842401480784348934236401428637910538810197326622366045715484485976209885448003614343233547804899246488390086215475964764486296571541768442638286346783024517355203888553114288774586048737539581910154153921794219203467433605613004824100725658868243245149572040391829985448403909140340432613847947458127079306664058007281247480858925983964606986495485314187730102512471468336579116989974320510011989650628191697470611381540084652830152100657783034844659116044773623859246350776792241319985115670545211705295030454505608276995001481432286289629436241164633042713323481148750109098502678932244331087964653035909554488526389360124814230332748816634236439983080930240887086681222023831063930767537365814689516606793970395720926012225923905635769829453231124882338370551437514099449878654337159112181124149474219667210334931729072724417616689116164356913427598742858182346889035909319622424982448721142784781801368516745028764360618757796658421874848105742758978548472790686384814861560236801649703475675828511955523960116653929165700635473314618931723341043741046945918393188856633521789148459515622741048418947638439153466985618666118186051313208055218632865140981544627950721752868183364335341302038227545519346034879832105400950701449570546374160579911163214888646682058870385715745434539596909871584362651548157933041588337609316434319262428210991254709146936310904754920155342884661523252466597747479418314133017455029091198733161252724907208811192810082085844064154590741187093368618813462176025539527118373921577387911817899405382172978691936818130945410640194033309532188115541442488987910879291859074727036006148655572625285380282654115578430608579682156982516792745617668051223936581587162596455477876895878804200603029117337246162647889286054991072500014178214847757620823195319453098093925330205412866145636501322899088482311290746598415342971459262396969320585430010074158218832128376237306093051442774908128229090906839676493021746800387235776817223925735348023899378603144262258527173929626842998006727029482774949547226400316721564884956592465423164391285036776036008637619474865854072435431855438829843823530329062987017219703027830681046338516461391871250611942254031354197052838754371838094460451201441980211974853318439952577740551000143714309574819391104680942196593812047356815259169591449413539806829464213197694628812839290874323461198860311863995104773560683867224654492567134584368919560359078977865377819858414639303716904459415840888808253549070617570749286232129044322677129806638153684241787896478488734977731168135402346653283349942137582062233038514757199934657050744441040862046343913526732123921554102729154438293726711041217868119521941362660095421790793599307689926719964549066144544940082270019463872548596450459495490415974882596059231866648361063200401454837318191125045758438406514703390916445134968885616588195273805132117860859706240781790350167006968890962847449288529304386657511485210390671972233650425813352761745415143338783670590196690909911403385521839557174810144608305210333080338322567873955138725031520983639829252637942813436320140081850233047356511341313298248277204905708790183841981741836746721434482540508583342648430530129245393460024685707372905780128810336701761946726895027264245179159357080625579790697256296210761167895844395552599187345181328749474574464787578468645728921943907840231046964374367620704044571811981527801938281534111459730718274693485461891163162293315449463142636140208671754118152188456269426486091987747341017078638500461824248520910996552082243379895192039476633073784096937235002307577471288619262972044744713866939433037837959179204497619807967899934100407708135919506620063729070945463180505886101302543054444168635791988780076406570333433975101015667949075773246951376283914352607023062796791599794055945844872190447902890717829252051571829768913862690251194633526100331212716446209451331703304345590703103525696836159567539128810242539555740639049783045941981275887195080219874950768150133864030292009770919462428217600806215428035001580630680189653516564996143216874278775018850041380580438535709259114804169744903628237162088931775665950001470203248025516953675604925915935568718023631227299312852566502344641149092942466565704773186412846348330062124287020474064734608445233328427908366416381150149648267205387844014659776117730576845873918889347012281112100112047748012169939382431600825135645667084016928978929665775511483802354687782162658484592786765328738228246749702153201831010129500599945914782457728131880574732426987836202284813887858288020078195754273309161368145399472107830059225876245818388445045523313341226143772905884006108418267808565702458618776714169689111273094615097542629719446994050077661067871074447953757909894076440423872061342233710315587189768840181158110925346870195242097285923450329204444409729193079355166067038290873176426544996902677518391267911259636353976580134369620598373651779149224853598668777026479757385900242026166161179098791117562607433160671140741377441004815561631715793311818373525996648704684638436697115052363544346640520788995728409973968192484912124304036858763464351415602255069617011273522408264080114558822702777253471248865348746436894536746606651478404556180952473040022859232677985969296704292924076628470871956724083551062962383093646030440578626391907119502856889230552669014511559296512620282782608074490109903795814931724849751558297564333131401134326700539588087355594829357710401493815774543017506584403236191969192873708975758338747162114870242568710065686038155405575684695736519247172704486123452605076849907484486601410483755458820576687363029591065151280843028823631978133594755474959299546389625311146340980633932813162366677905326102994947705488033320214673680802915765244504325418963882303244452640316528844298788401400825781075843337339481537596879543282044817363471624564389450398021124710246089212828754873832131699948447518450977823656205313214551095659793362972137820734826243142801355605217825749455283788256150841946053362359813588475518616924772816979594317960731987497817745108855908187691459600636300391729818848417637331773681472419001069301340950262341099669363008229387105741725760924801043861722039977311348325842385349612580789032711861216677662446326505354589124485209921405651272201224409302862443499959198263890232821582262547824502402701266061758579162759144036348019185242406671372649190501791114305204926414755446102691231230542335410433488903597222848862382938913235397456628018836037940747471717432825328345669444054409244793186719716429231912949085364601452326452213912773011183926097797627938420578175710945949296054196625346863191820411744884884069744590896557288320351752982528697862720621139458006999116233165161063535441433412340796965195859349913341697995752598312739172144985345182057948785944848995285977883533401676410904711540132329586357867138697207136938356324167657289769281720127229200980043186767492398365070675292384196263592307462116339529331184097339590371670699546193908113897238537518481853499341999984614206818947805254373001153807390564033288408825119700777116806275369176042940195701643111999114191580857315073331450854024733536925852815510938637704770887681608870794663456087990453090328953143140780816410660463005278085802395446565387026598138771529891745528944676788297481568856205932893004831613754837049746802612581620429316498922116783424316538243835232433355742636075588262127503149854278395243508271153580626635252941378702015050631722220146844548023817573547452437602633373832301739579277588252220610815929989469922322767896221164358001130711238804827267674721713755932107876376266926641221640964922273802122383800491072810279429525637529419380159924639813809366372710476237254971436989761599027507919650596242336606364782877525840881791629607014548916769136691533483542042596769381969705719418809421616126198170385365023640974554796534046625151497183993279026891044413672877320970669787022268209919112722473993174442085948319345450677891508317879389728984615691554936892740526147731386397333631014658857223402290119864017318235366836832477740321992241352601722616619655291313659529930557691770261794778617085946863480215490137409775369304030414362586627594061131411912605098036379666841058655241604592297702146067864215024972611622993307775171323040968572364436099992712206788587101930859757647658189356618297838562455138893350251122760087451646294737914249642262497599010670611381953084835316803249747563743696917959043924909050076942576736102062358876149911821365680074374975240029562258417665836645639139700471279822792598280112425949146804128280614865862555860339701967043357400159171208089293832617684339762696632375475031691407900453377978443935326731275433888280499698987520942860735003708005051876005959874229669750122842640898103116749441297809146990567261739502613937498658868681187293418390217146142354980407425282483129127737400471083285388254699990988501405990123746018018011613030632603883147528043185657031210123054132030172671348455732164001858952439646997644374409258414026060539426233324401087479943340651294997829696197144899493717153261863718899045104119728110812173504266765761735584648894979100784309796636966201795417133152296028569370480880129585068280760301941223285065459165313920893918945817836539684675314012743712732373419914391654976284549233309625050385430921551023956967815263000627098357326853095385956398067667475866311010757553999968207741417281442030829660613987259542397182309564621362479614652726885610171679408367058362702569637502538974929628414741053784258727653094609575980171680942089328774660525096423603208885873541996169318625355196453367855190029297438934950114315420613310532986600016057775127733173243678528699715625815610510038353356621151789758631416179043774146352210422080476379535843542550079272597817257472801517372978514638845221116436376276995495625963868943921680729704764706631250817319163869538278697863791879341116979795606693077096129633833988103823406409884017389039901359757473617304893326066835818284025205917714824379871195516978169652041561718855736010707414383448067234670498829114098111289017435884565361166916657386507342348847950075704796714497206604754652710846556531618337871936895349503977804398764108308876016297261366886175472012798404010917044642811314311649913114439947150088476374693482517802404373599594046933041846437997090453739577107082084142163606366334272322962827640353268483893105829424937020059879652736284559181517301032052158090372923293677772385482326085330434734933405677600799933098725693511581243869122532055532903294508537801344740612628557762713962871792181075090238894355384445324724529753914369922477777119998466355655719108820354372412396397366639300554699587661040188966709981532084976108304601196024674209659479447980225292876241198458734565373038379799365982892178527369380975907124155395899057496602638026555546290838808675722569675766619569470995525977638484393044444352852257516766133683159977505833388474195521291583926324815666861960639198882486108030220120940456069996106063653377569641440178506005876616010442336194624083037351106446329722351067773938428723984667880464930452151785667148103997811070435121660897576259811563777157686263891448114059184600059359539672077496715831768606259003712607521153285625780494758152715642945505078303280737367802742882901428543880847138816417625849942325656587075711121598289175071318215406814512026980877805408562114360955615176328274597386565879959556923481877645350696433301121182764750129800262961898979657277849621155294162334014445956630568481071387859997190884027186693450994380993771444747178179474509374777363775050981997933827058278968945780047771090834288878922822882148897818546615746298719010923830113804469999764531518358327093379637373988184719758393325691316105240231448088648286353251631299982350289998532890391217814303602346895713996510797236768626923911434942350836163074572231177371955881836656604167271712536173895773952090131875247706832675255938265557126649402603520526796397587505298110706000581840883961752092795930299211634202615822407029998948107106652792761676898135276319544798102027043153484047077162158756288814742123066839242539698487457530095918337454216966331125110165787187110596080480269708912356636513816995017133347013924614533645145948922947973112734337661288919299558309867724493362554629001738883393894232860511495719631886966068187188259124563652679541985027731441922744151359573548541018660455554665990913389031324426860770740907744184381432162033126195572741991028269237088741830591497247660261182487430835870739420028077556669357010921272749727824831576556182177345406823570705744527811600651224699802214482976575620700167728726273500643765487828993737975643950719325233317128459227734576807788896423812689423156465448865464901852615568257263458261072953097358280759044388591575031042001809928355773547756527745547577539430491284895480772757167931483692606568044248897690476305734826795649342888885248039830587212095984322097974363551513899456629839729189844188351795586971637913072681000711401394430250940481495247550996468192513511397797557622107194428431110626944763610266713316395992411304848183582326830689296406100138827172391861241670356699320800288553517706121553896489416580963385797686189146478986025434751378938800529406147405066721235792129084625351940010786782736439599448525511889041634480290623783982777020398020016808951611728592187823454659232182668691901824175052710585094559466738615212190231722953049733372681689398022465044454600279004527068795243159721525757157873458371755982316486454426508114414515164412372884549173070540268665974839060276415831447513291655651367928203726343507706015031644572224930194767258008910583725018885637070386029037417399396481928346728445262604990520671900919923517792904021216727637903385384193282273854359672251649399758837124267109219742051847507872679231049752981259955341579276116713164459838080524587552538583222145498352834754369081653737966457895875651483813263446017630588236514118540688449931347789422059035509878990351644380730979649030085959312970038096017392826557440285436733256064400411626155425273232424947362535205010115517806894133215729663654695707718090064677721741643204505372322341972556124031318320907310541471702454073826088912972072441900705720519978192459669537637158013656778439641062861171018627774694467988908067984612398380861947594777760358200266084345771164605427565719627181980971001486179822563848341813921637133264014068296665420650892006616934870749314604918106457093069182444010363394211244243643052671586050118194959135760284261539593447721422587084561283021619202220325367769835485844524669093624170229561309340178702230137422848520912774261854555591891736544607931867798163143210256749418487623083316699861787277003100666031425201248055600685561346263461784125892568240312753706619623906014224918924755674265559885847951420880683560822003229083973317553968853754726629138892894198333701889553660559168633818294962711508209139540687934278107112133669126968154791315051027365370806974012486573244511599007512103386293237978618232090078281241337254118207029097964992939119312014672440891103550368512057871248877771332502266919956151400315017356713141407073134148582639372793591446077227548695409019408541410341436137876560486286748488468855056881107918856397601934871229223094064436570758561990369725100290585006271713900137863429193230680189980246248629588285499531101074366165108541740479541371474234414490665543375128565577119204340832744687180650623757015899883271512188495112805612296906153578289930421923274269018884354980686538549783095801712408822198622050426924996014581552748526350811457048209329226052097664651802630971951494202932556042658508017360931910837000927646919981681706853951149294523369129618204351030972457848918076918944711301278144850847069933607587801472586266053015251217955432795662426996846412456100968624572974188573860185383109345719643536023191229759837902441109494481014681922360073027643959430320487579202034447615552898919860177191280615210480583972975553216713406388773911157480002004632069457476362115152600383544080016341916136884686013469518534720974357373749615560978936464245791494921460651697431578179301303267603756883405395115732896254827849160520015286894319063803526579624397767129670409258840547553431063382641652055132666821608340111639775494400556066780677849053064570611839241871030359455210952329242428314874428738119951709572067522699857249358698360898444110111661660622177251025357955207742614880545983852139253154448226327118857479565972994668892623270592472058857915567394997030975857680717276239027105079933117339214518903826437563409011696525427432460036650756268597347354592932078129393332984536489953237673732577438762861637285971689453347261885450833765174388857372432454967988589624700945581464692179264565027872537407908956219999058424890861263242120083251555032919098989759030192575091756134161972762135017610169065557288528671114064797529815301560445013322541354924280268851139338530051828469390016896445563661155632309788788128762970585963230966447463604754006082554028808539584924955202425705297661977121370833724418430296655136333244538373067824215487842167904726058336973146063835436098468949829378467618739967317426446912179472311253648404122002916444313697821377797236520239460238892118136883479816549889267317749035563105626540257109277153195592696783991954703455628239038386173204916459570466237935058797370312350022548503334848558487141511261528571920637894704871415765771026844890990584905221008231563863063945785851221897010022417527403398344009161030520790811651265642753455410653403566257356034645274178203917521637355931626415595374944546637749112382884747285314222772836734959077603908569142375725434827402595519980027183102868570141579457888033331545386376389734984668099227168880228297187802036293541719965328934499403623529552969635341930834561357921459199999837237408704190516009904852792598896248861865157869525212767193848645086023931060744350051770342789059071669113483458702632476753919871219764930992566734060691754218973126502688337413439564794329633236369916004626514589669132051434428414200551235594225754287338578768202078488204579892284266717700038951844225209457516362256155625214290268546814553347304361859498349995758444775047486169048444647595440788048396191317898766902948104788631838164251459729841380455445178677310472132650680234694198893295519757487715963160764488141687520958759497196299990615399800366676987776596959999604690282372106086962292893556368115948823426226004906456963547076646488353150470597222651451309247900604450830595792819267111925081863427608559212899147765466554113336859728450540172532027272079809589060612007731073215913968675904638758778508467656676822265777465250570203874724490720402435738957610076898921397809603792748061961076243703505311860614040197237722236403674623320163428305588250674910802367908824144682631074789416349747290022635300462455487225972266105363547707365743906923889415014470414260975789868539294834649201077432308039771477580071390975607546420736837832378452459568549875087603591891161777029902586915283348964243307978121958631548367588805313907905440419543222064802908684750014934037443417509568088964792970180259270794003081622563134072027016100371802427104719194486487901250767494956566841409227686804128186663707485653705336701621554945466430784995157146049625799548829236334807158232805911173203965351061278335645738937884464207423091191024364612009676474324529576603774839546916969288854376131844958743175907465520671337429535232446467229519588277384197160556915470435714399792566867551454601767642851393059303387574076953542932934822971311333948184473314691735543047815649170224224533715298223860924163005237362152510926189770728996146497442886823100575868188874075838473404168362304344992938298613998557279528998455368656854044801432339184342749253201084388848579748140623447839037577909398118418841893609630651110002970059363227041102926531334520290629192409546106876636080321359738262320593878535851310339765723565680430224489821651404514124973734191006979421843124777716784735205980303128501307203494997221689875107908982082581307699497152210001222623093005931341175870586430591013472799315169568717662779709318219137024001847550200244100136115550422640977601796163092139684713874610823885920690130764579000085575569743468099471202027170741397740054522289652273582446709783652957452104645552073410903768295219127829339799983728024931296595114841171827898678428821999491469840353515089157387983541392559522839774822841176178066457418073454216448867454695047783095643120947649354850411792142658421374050106637921827538101447891130799688917932257482085103460851669005886214343058151776677722898361355580098585632370277941910036672448462814583123666566263920711540170227746370800273667369175171374285140158463540603289275597872382155317861642858633633879298268911712972927082242425122083574247248606049443668207669867664593536669173815749775417809757986397700694492213828498418527862362664649342370804228918428992679263034590558812818149414338263175464908883007440664019677689011450902713956883205077190600540021404575957004165956729774368546602891891054381617354369989990086755761895370236064984100719495068116018642267173592609066561823336425123795488507553980299283748692782820869527338944341775792014073608425843130921343191843489246793149862549472522783547544050332180158077355861920793184027280909832324903212967262500342605492330229968365057757822118169453905256008490642801618691276480300444468273951216108610361710516142219977871968628760570376070379800076556667682076153720492556456534277757487505265986922076051830444893193820663012644528334296195171172858488775553995741718255392830928591192431845416608995082360825427342402287409073592438922493860819876527677041217526742284934401987685023670258955479894218371441551915878725426395743080690196339332673175639334254822138678750056651334426696081520417675043729586963153986961570164500730378014737965985508969292453832833699540049033890485149577071636804447407197287435919580095957945204575642647093041077789021268470924036627736022377895422655888406695189904244523562797780479057434155953191348646046075783445784300365585195686152242296345359365879988370436994395872563578245551713013288870649831584555670376588216487688243216602710174067469062002604778014623116138930784398666823238567469813927763533181616587951246759830618443169081874112007852184033165712024689379370852538568284419303176767982725603949091883342989473742655755828597206751537230627309668760156265829309513401478945266044804196266010318408465776109463287165784609203473814945226727735036074592643908166907994895540023750076634060989393046390032496523006858020641003130442825345252654607046504760258021261625151123977105933306832117235318664472782301046052950284868663543862176425872821078135443045186998848907829040149617874464523922175912739277484015520989078657197974329100061818416184363308246878054396180747431114646540736090081833089922900603526249550575505650752312896006896633539285599628924195529813847741598400310542333227553728934097594988920778764147058775496074096154999288508049845404173926235662831584036508301856283076440863959105996219751061516938255531705551601578797093135315264296911216495039269087704691704144943227047065827323146847058329592046240220102212493640629245657526657372561644787173053177503584913806435612052780974997453698811894909098077857498947902775442007341904430619418415290144942336140287768991300190562852957999790827276003970776837268298720975493807175946432477013119641227007396393115807141400223011618429851555924287299022501523370038326153992764543636009530993743316670328117153373228750942594275158397710468744330750413659718328834364916544350334811331972866032946999593408608072501654615051425459926175401406359084188242677619185898324814079572297248203515515898452434658513931701145143458048963512471580372769393763991155190587211479156805217830853541674027148650608900811347880335602268679335687694806671891916805077218073265750990780374335608167369012046434272652688888638272202634760260549253397914663823022544287586167927879228774368788170538531393163996074645241735232261967003190591042319623165483168408864428017449922184346395832521607439577465563884594857573363847727157192437581727805750259358027181407364389125110126128520759878902534212997887365482649532593126371302788500379734565379078737890664519781016980401983292966577618156013284133218352493195633322050169581523307380818872884003248593410246677109861648077159670471395963014429987331868642611500147698674878753149217518091682459115894515976886951077127400741364711951561967861652369697894314628032519129967035367750055559883004196757243576341572520174721486948922612817709667896081856221417440374124848891715478279722309790423885191077472880327991530710012977924960412311817350453669992061670688089651585967411812922654740629249736160089225821746125926716470719206339661792752150380894029625535033630623560080089955988202611140199504093169016626421679798019661324940433215223144968984976385495829123688307401198744318173380347344554830836081069461024834294294522193508583938634576200687582819935640933888901654167277704374798207294436580763501924534532373402283032114775061332001476694574544800115169426941450097268560817542496071201869921654243700660569686901859628136283651995463348251617294798336108800004977874022752631206868296955713207131899101656459951517855292930583103780054473611009038544671549737998980984078220434916050282071184486367224277389616632337004245379297221962262167243411886293173143413358766936799146353648601599944936788726332486529883211692150997002299331561805453838974636971346985930415208951832829011058240323322896909592614111573376408205827593140676884310235098746858253537293716384328837188720157973662374917443900974354973795991821304711661884535869888562176178211817925048949776655077357805245107546577468430167951774855678788232481043103592798044963173012578526057029901816874227298125199388040880021162463720877659962276843589125603673067412509322658462865098173237627815275052845171478269321965249291211052534264172666597291239090492224823955289456032003186204258484206403676033863763156169894903515875036051146345969951280905626250960195747887980889945211399829959306713853620264828910211163408889965649254613938471672948482461769538802385633368964796657558002976557732702854265402405350221701752775510381399851994615399047987107768554359711766441606203328150402623604751933022872555094527378720106340081945906175415477896890687795771317172681291871899934289255518789745018446141560908754348975933307847871334874462377583836146574052435037013482831946137437152211215747029106175366230020643046652600789393180435729562214547815625338789590708681148064618539483724433810781104859178604572321986265587500548605785965879968025583029860423342064995714127250212969820864232523816989709721053687763787507126266638866125861954581515583845323572384479500561190483691831665302891046843131308382722011163002873623268002528922287405519185893792809958692762600113057322018644220854752436237409103333294431161618672544759332099477354364311237253253649415502787856272215622689719165707081276977593194055792518577242727048812171960229516475489602202095255785950388757123375109337010766907781249661719746354911846985734417251440127326642938909947587925470520631111269789837049029386705690793076871209688087428624842019103720172593876829295766974250764146453986719399065795272403548635677044428328949054055212690520344329915085033289815233184244320147055749387496445043239717894038612251647436943984225828619519242959688661759245577990245576747488969944757625684084651889551770033194549396477714734440732566029469917630899526866219001654319092838861003370145901740734898071233982915005357119244654675239492585545331688154942240320131049799553489896033296211200035860834809695348039433135419764833269738005325606782728537802541609240284246519075859080426064833088734022171020704781470144865273725074182732558764586590215960902113992169752659722589818288824735177613320609194545408324951551122079694841133652279452855220092204629187359027558384497327866647074011830601179570196385050202942106582431971234963626877687593594246503433679006441488925447531648223197122439691582351105176239266837165363143355862578195952490485317075941807516174321168976279675484099991532630323332971049379430113357776473905541426849428452083658913273811826765503152572118100467574838319708481236049010299364808943165552341489924220564748390576439312536507185622849521980680475172441321372442550906993610614879813350866857738171015729530613883494474659460123303058522818136370271266856652963695569147094020360339742361908191427364694514692508610556657744320241933809566464048060091982411484337919592011722817510636543924915242874101001236121057680775537069897161038092377601436931293645232525595566280543765902286211728508863642920025942174424803013998566597682050056989106553847862056665311165040807406560162580092828721681751494118157147439306355291069742452271620396093033734781996745604316851077269973487993349704926535258613081118953396005525620312932582564253374479089460286519569387571179551381491643686441586229936801219671616670163010262201468017917360451477981222255885471551753896360276397951961262910671274230104267047027328526858270368247811739211043858335664045077744497161142079311771341102005186178745897775430629652471640398565930617106606103019640879678387527943270445245945313305680924420197657572722721902953923350543356189097491413229739793639855366922628241994327734929599398559044613986564028808267828403510732586767658003345705237131348348119628713412388119320144474343026095607025058208331578330569880901275520783602296683318018595292655606693039674129682773460928117460291677163552878162289755823379624652191927737851740869429157143575532390416992145462729582293422506794501968458560727831374794941559345062865537666404162962589986105946528180198639532933606390134291188371088528760239860633575803024855469460059481880233478234930214128075354239598518985481756015566492927316359149583717871289467029342194736207235187851171897725741539136783037718885640356577354074723355129975761835198004560793297075991201081121439380498869776245314510111539213850642062552367385242633942608568824547729589188813769446647416414247634063779415818258944779922880567064141194471632575809062546077759732719362670641979650387427009230801377009726380964842534901437276100302842537252198482714947750707189982854021562809457623992173381629815542459528242405056649635236017335962110667603058905350592719437501603011836776134639216323654135021543966923387679195097206429853734392722920750077399367730117831674548274144881628068195459946061529771365643578483130332050805220408745894488250515136961675647205750080039712099547579772081213372985087854082718920278805326186306140819372288988074519125540540670501205201462196874272792119072581189025931788497545724941303351388280560196831659300804547789967850512214714466828803212823578823838194667616627973064344871445493904480616952071037911115184509416587147279809556457228464708736030031281020662826618688410910977521477469690928796445665380245804180010463861725535807601499278785791882888301355992517844725251586148615424385712728912237413983040271927438538998599976580654713018368017804745906435756206919271452063376812163748944974452623324837988333931377614300035676827272942486090267866383699545330791398648919198777406767706681055196287706115542823089170032596940514221997043954807654545054419707389658342001143833436919213032600005212983469437428774403798194295733358563616291133862487059125020032654676212311830597134111038150122574439693149488041610212954958727587738361612753667063080814094140601547835698824611967795306128880093977008873321260012516722960312069552877119303648614452231593751443013743900677615781858635784108768468362331110368994475146233161302818989469192638877491138401820780808075694647455537627142764999343067919092128357053747049211117544114193594763271156323442577544807312989749267977715713999991033099115035302873782219638951420436704124994921487942151092339176232837619697473005488025240621322679579471998522880617252077056574379532850019023659740153085144845969159753330020807198809391689748384466921925733129882797359165839366737472729230526320715613310807377021963597657711591440095612406264491340499671553593754168386370039310508058293135846743094109851264202709870518291162161235167942063951378780915621106840032293322765309515482534188567166173810780190911355220108100342616942609189123231994206911338645842192305723989864453472922690992183261005087218134164715012850634565742668568941371830480764896683668530681030882875109084252526960707369511396984484349563131480141579187822680840361634690590715219205727222365003563395215773235490924415977834812464234931315006862836158622323058741753665251769038720584158998918766490258453209179153268023815433918659644897352211758533380128012772236009016067940514177663407337743742382189187566813187438932347855148718378715092262988708295223290868709842481556881073822668802687458524209775228511810393655063847605652417243418016576022079247885523826841185135146727317317249258324698659872469729092012536730633901500728088214068138232275245698817274130961635352369365562184220901608474765975938356798609723583964134252905838067508458507868645841562151368816650010441186290396376488570774406829918631220750377602751125729217700504352660361925265549923823766695262652522140469364786858769550374637684056344864312779515995214105885059185933407235068097921335677746599711064196296595583483375039802570087732275802213766448180369686142392922398843144145512387923860259988481121036834218101836792350642789766626080142725209486736409077388834351121897265559546168018978100872592986308080752303746465273268329350264074910765950114965018853624070954107700223157725984083151035710228115303149905027196286923425695834642506344373997750516062882595998702752926811496492465651623994707194849707835732011670612900205161961511092613788748164659337503203691505805840878996443671945775057115799458622229751613027135899077467545014240404535985619780828324019195913677913242827863387081419852064343868391601261009839288029919594879960079997579034739774391746976515178709037612389834404665244110256540839689740088758139531591270498185054627751700253154427839910059604880927033375365665881467187715132510676380447070598278367425182763878404838081825446866102528702870755644423395605228408080220253056453864858475726774224648147604381335494996423795369458406956700290888695916555516369527543890510374105983501218255541118916433366989487542643744495432483473389732215155518340222964926103166975056763093111582503371919377137196736026688738409103152264614003562638416134639234007014388819169344997914271185920533905253798453637266126313428002664809585760313474071429611171901391635646876743533961427913971629539547309080729885732365471994970681643961480752291752936887697810328114486800995738959334286363863924592670435199339406981983507792093930964124024062340390081826080835635591140388978085622496387993151229494049921253733556604087394385541407594872372113013141728477897693412796216007008776574391645119836196349177008084501736463830997601287721608845924230911312736355720829348426476130742346232919964418660541426371397842944959964543658800492056290189169909039614503374536542478705555984496143937278799719222974096711074854819676331547559840888246485987664413356964747593716028360000296640047116199436027146545192620436981135205106296527567569072553334915287858526544000151325285610484115697515614529419064812904530067818882644298221421504605171101885980293463996029336666174413520560056616436057446169872634138110417327565554032013548820454589335184678249812316439578337667484490149483494837899075514869901413532621388836012146497794306812621614768364153733885266273418860681094180747739879495753998127431462941050234856192858113576794443082296341580959162704718428987656699310291371599008642090010210985311257666948864068904568827426968961304162998132643234580013858908976918884070807806553426779856135006829920587199090639997240207662092921059784856713637226580834227437301509849345437338962293563215376311762558358026666939328561192402454443065593871656719642101541378511772268581206594188249200218323661226408518717594378282293813768852944572123314621657907471691530337072991259594231856219332341619869242554253444818199372726937410301759362803995487597284513484135093213791847102498243422194312028857390610249965478109963872997685848320627238328797709091265051800829560457175345554647670523022816699032403872805865841980978641500597933277074186791057683815901091897175047877685340965073603285400554522171046342042968440572125585055836463582084484062256505505645912955053261330635193647537656685360641098432809454592325822386673218373487262625850132838788556557649999997116122451184602008575913625727816008507172452829537798859988691031087477511418669840147188681380337591618341965322791947553550268624231593470258397971015752407697051579284654935395960809149892550758256086123668133350010897999536433376841532466694088876161105410214334889123068931577187416128863484239049001806186286571127717789496477844917796149851824792462136609979640367096467189075150673047244286313209613716404315663257016226558642866206834885862224726757916306182010071037892811571519374902582232238887674662739732027874913873206268803702200585971323078257375626830022260824747480435147957605204840378290454551960803796582684176039070515400405868048478941402402516913094466477534753689991300954198810415160534575036453614861165455558530729708577018860570152723591886612322204446019387216355702062473899372060077535191092172364893833777151781871358257348948387372353814367822895946930060379233608353041176924756798623270557581833788206699347641676808959483938918738997221806637752216793590365561825339609206416951102645200944980901358548403080601482440456499188435877343438220923610376692242701353255844698291163347633628706359030469031181665974077351383617987989277426249210731189252408089034457741906546296636902608348428661856071369917981645451946266113628768535030897300728836752328699751917830366169886764970387915878356902773654350931222738190017352901270203380860113971503384900555952351557818023655027598779708081121003990461643432513579010756388351802968016778314351870347435906857253100912441953827044671385640162702319130505578577250097175447478184656828904862667591117864091542946231534887496968407057236134711882388366428161696030022056155623017355194957976370863417618620744668084534683240114633020527324507700767539897187328162256560551234576839558956920726968771434860683713052128770595215328018695596636821496948048713120625758597721074640773193535604948759432726597934615887170632673161894587249266523431508810533383009417870394995695489744886789164940848585575854032347426585238701627511419279122542239920168589122030708316354280393692798554649027886931180066226656824971379539223511729606501153480215850854815362907295329975361172873173021163295264741369428730774737290440647397698689515125143825038817976169057331391647845285256447001547356416283563718818859664114935380184403154914609032752717825603526092860640188457542364569784722087745688800388464189853380111814712179804158373851552669407008833308317594236470664271107249373576849082868437074014505212571458251582475209435405352816882869321903847864913788998857819597453502946907668358085834020533809322255202264613415761701792014163548051137296584929551081775677535453436782375468443147616408943452336540838847469030200974144893494837783705457342506531746519837799946232804176398644471536286468211769200002033697168966139633051683368217520512714598305320417565376167464686399135466492883236656771368491354230570015844500424191414403807538476218132601616090918817041063711355190586121681440186700122590901344052570080163746538165167956767107088501261906806722616285762479877230791761582094429254814234468588630206689954832488194636700562994504219836884319988442605031025536707863961096269910877596643780760018745450135044761263356977256886102285097039618774154182739842546461134714998054258298904863058377605167404278023409573811857760056210465824232661955436456276381498179810864657893509644081036151502270400056447502506706391801333628212993495964558310406551025751191522927969435777338322964340622866952242099691373288345141348357000530855090061484322144628833698403372316174203026060469221368592563345101768012881598786204680587101802612536327374198127780336174991078170055811804475458747207534242861545637314574506607563853535227053045496150522910802376372383279208000701647234208532282431491750648559475282412393368454598175852312267378594015414509077904593622866081866769714000783246566582332093575151962288610296755896981312797535615687579289430613831775436120974320130420866570921869040837264820111877731340106310790990868994742674445234074241549260059805119417984593384447012068965834189418820837331874610326234643415144817175525254835345583137432939707365684901888309611684798958966838844833804514907422215769191483850984013918517752047143719743326941233563223316614652953366807869213353298797110427772909216876465635843964408393917720546418240223338313170273370929579217905832151579981650206236957372303676611872964279411036049682075911301409757680793700224527465685058626038425921197759023287949734972370329333271359901470576680449988890780255914820807239812683681925205561040072053778956288883416300989082912851036180979881871042866169395501944527815027950216514319977673504281944991885385905071373466126130594205653904963237031847851794846375591735384347692623024288482062038393661591918184258263101970717144638733126798871355240047740326193147638775702870860524985322194354412050780119800967128363300931217881810617577683858443446754533387617212615950769329048459971926688542959907515174670077807705838006680681216148195754965609874744673226551895276649747550907495681634807358072722048413401912894920785582136180283592107183382840127579331176376525295802076495884627758085416393057236617940384892395908145681173024671027456461317728845897481604605869573847242457828327084399219941615950787669475852394833276303099651454025466513858624240654945265180310070642066097641930869634070587601474867104820740910361870792296764878989237418284204703600961870482676198552881664770075764473909873436320946280759436210563886352132408847369221436443859577490523752503935012567730929427840563865342256313796043680214326540699779020893480819074139395445374342003279763840236170093899107031064797791614717658197354325320262806011580439446013547270534315388590668245253468771478450733505285062603325681617329824674366484073323285365780541088149036465253830753468816899609334888401989993574307712943240561708797499671156056658420793915356117561520070023588629105399934640376045431169282074606488041224500457531073328070005175777672260835834948051025606141512212267730479232658994185234767205577277950565648260260458272800093868893310652315755771118540531011809271297107820109062651123506598249741124550801175689873870340863072969662682489689684374901842020745531976565094200859240510348083413108502621434064599954146557424150686582840221847070264056911546465380302808578461857853848491834428030582080086603258011642346555465173089498815382187652336178233052588622178681609820583918149452537794617355852562406941653233010090069578209349727934390832627712851409150134403172324160576254994275933960525342192953600235260671136376279026480062965182609835860323936669015199460798058073256622497115321323157115068459167884052107298781577173955664151093648060714208551235521910406285458167279561041485441508759685257220515393073403592969768679955612019867544228128962241915372522834084944855002581009037542119494582121920986773202846733780323896487503693743216733948059373621295913447431827970193724278925257297637453468734390040058618973694089208221447964657113747828387249840181150010513579294720903375064224927169305483159180873231065982518387693202301472972841273098885371037436152339160710004024240487065466149741049724718392845148255891451654295900228301863540940187421231180004038418279935275787903245488540426371842359013861583267259802000417583840606299697074400086949986438588180943528585239659085553796478977766050131376144941513155982969867597758481461044759555124133004124406257761031419746184330209569518546380033305565643329988700761288785574146987108618139544416989064439370005494790795432985543263086852101502574703598163924360232339258698413660570393974881733042834119789860993973630331747495340406022832306847718879975778761717822145226289567585383970113737407093521698634451397242099123497766481431120130004614975837806991502859891588649907534345329384683667599524683449525459455301573806964271957181946834085394714318913636306251485534567425263409392330146339545079218100275609906914981590307171898564320870018426499711698022281509180449143727372764506920649174467069255710552702663325957368862194847167891778433064307649604026942452648617074516940656337563107557639617280481429546164956952039331933148450978571975515742999515332303384961813138329930068284821791097761782696937950501477504525027806053445939391775415095018667560931165316847734339611018233354201406970945886566060445329736634791915590976810680828802013490674443997735551857583270706828961438173076707056477767171780778185888662440410307207893653854020664975477469131160763667938664267895806079573414170255992638944658224970262620320500364445061431883400562212833502700805616296896422519068347200340364243904437539783584891791556610297568313212461624975658984379456956267710033337196368691460152896268583645200279037809795892151932685386227309576885004634111310990654470990197378824970138349401269215206447892412469101305773707760427583810026741005504654689460824763320228631160715492439194226613850447234945015271546900671107672112892638320329588771233669776235813323045312993067669078209449662539596888492526395054844033903812916229231268385357311610380741077679387555741149164675589740709084020044550068443198205312704855443639502010749520607658142942050481129137226015605478286370808767284180163981222919873826310288666033335988934950999560971315385517229493181819185788742134440555904494099973277474545228757361087882410956776320569971522284072872598724996639740736131490756022627698908155958628060560104807308205598165721284655778304940723117483335949790992100520205267184015152743205310486702564388597437355577223496410605588766658730941968720416328882027239172768149562943806737764011104572737768765246088843667927575954582636353055276949949837324156378540715327102720836871512994289640180197944569680650168695000837112148327539076983606428561958493710552711685377503627003211968215244842794750235549429584611130391631134129939544780403639360829103513082010771969024564721984044321406271373656029802167650299984567144439791728896106068482677122113931247684103213958681300017808837589404335507019191490311860890491220592540413000047492420725486807821512876889992904310386284690423765935344676982052278619577097769996761699258468140519496614308033814994634662916158275279026809499968937297710306989726398437293347651835958908457952460374098743024521119717801169943670897433437636717219977282977722280111193805771550608225556384834222427868485831774469930937350845878341059230479327678508123677114287392669181190279822912303846839625868112968469269655711714358468216820433624453565240883426832708503325328124069347630673821232258547212851898019269502914161449443341171635091580047941917352306736746931546839749521128988679871247066804428445535787522578444156699512553408503347918660023725844707050944258576689261825088484600841307508909726129756361747937373053541076149753228267289902741503044472951757497066292361145650143488274683608273936479472493366398145868864908867783109025336500595883790685443402323566362986574583815720031996741789627668672801949513223794141664849381173215203685639819483434775552517544814457459920658336211311985568108737082003293146359053503018260450725356835420367787935670778777451661984432468914882638505099266118224834838957697340803319616823430947645285338180216731484177718559004179657718663572356074941749627863601752374664206756706472537732941908471978668565677283017873316098582975975846542461017435380497812376236569423831305278610144511019417945478278246266913344808648956641207059615695942743060863928278288500071671878257890047720444914656197336537112369207852722886537616100606727331372638769808513314416930749330961392363996525242603238670962956864051692576363719261255367399222140064417373307112687168758034377848312585772731899558506529736442375751487908677680559180734353603409224650661512144531504257443166304246250716090963872301943525157974497740010354714825321348190552135635325597481726288125461824414812765243609005125223532294797560529293765322024355548254529600339563803959585261747071188777341002020861143008232347088568257501392388396974405382135953115580995418881756699896244273250424691337324405123540780365758333453080624018181871572608046146404442016554454004998842671154002477436616388009255054270075360957991153002805701125095138111368212057149575887561190016113046062918164334629975345672866917727937131149079272111746908363217079814959920843355048428189994569844130449502539227342939495255472099190657890724445194493237719616961784736983614838620695640463144354836355554514809435511426169036994769491776649894792123114326428810127136019771284957243734799472342909603840975421740077931622935402877970856173289078191256843727849602215432105651733638302009274579837890638865995321211616164342688411729927719756444434542595031852126685057264495817881894412981591532540000139958091094681957458497761929469005355892478598889719256915372066031926956494761768741371568092129445949907755053758007162234914903073814802656356527370123990249375477178937384993738994242114660765626442591471915832599614438446026387700161341217238928555612818244476443615527960224551115611194372501940380484240997477045870375961123653542313545698220226006889619150241688713593963168142807867603138091741493685282580586060305812787127929628733846792434470677274512780724495132424421930883292970952757146230688261945602932358435544574768411448345860340970675237985112134057143499180533829248725064296334919071511297797745115442869711994810742037968483002254324929118702336981491776354277065534371775985526435166745081858046944268582060428499723612183641689118104652436682561480165564927094995725582999496871852909182509523662600933559756812099104418805185797100542304138289164009221160089150608237639059737240704562162358887671440233872248403488458641320849526356749807953244018164281571038397770157823567008031041413396442044910617343182821538308251525976115160924293552650506517842593297191638694671779647827213430060318063370081534686810358767002901501745720572838095177570404193102263126490927994451711595777185126289599277379908701289866928186666358902401275120977080301547358423076536246816366742526076804312186219406781579649476628957983646036547300000145875063978437189986720609475222829668234002495392578522048030775867387775043827026878172801930036098285358017935097459817708756707492124033026472693586174771453365004323756339785734682673935000552294071492392059953423721088823655157711488615658023305089389528217346127299453446068968371224180345348113822114099517569731000867923896202489571290510415114613817926649090978802856416831913356211560741502111258174448553099359280580100932409225580185379161063655068071120826505549346426890711438203669161409109736404805363848147441243596515776042126772247737916906872064999305738016266867493320537470696017319200626876845944102237956809485052098707251046085462269573734712412979786089910949687975961499790132687286990727495590393626365892019095116157444056076803459658521297407825971795182247545670575671731757550774317309900894245689904614912923027042709508720427420038722050437900978506367009152148760782324843337674178108357280375086358295521093873679221332163499917485608081830338842653509313492711832498899891895075309953141211255161624187338665616128734691676860433876615283035156119241651977801620344688658886238409737953854770424072380555873650324203551439712521405805845518285250111644213052632538348722166746234735058199269243041219424919822134414690649361611186136012426922139966929958801137435548162367905417396408491122092640626216493910196906277912728883782460660965337195925170476620115389555250113477620023249594094353221262607130272277917491324625410715744319053465935648889621493070935490277725010002686780957084702327214252993958961141150344158183127454230612500234812994423453620395908011390441942085987914021969406154514451622399382686861005974226525914811489720863773480855207056704164893344889036999411408891421702859682414196997129724594801415614683269747831355891926748754467338627095727034299112358119374334273562949512485963169821890873345318680522359054695081711913133389096133536154647582927276883143803900675036260230470506302273261541603452034405477540335057885736014595404362445121041216227197479094696463232295665819465894528113992392797625194349098420484652077991614552718464688804336003503991025772198636583717489688365097360389851840561493402842106270333788394907087462877466110408321691955034236769812985805226995713104734642132262063771152617528697428219423992394326314439920924625375490705143131305173345688137224541589232928275697681353040446090451062189861567371690992963890058455498519774230305899316384349618483727514371402568942592263368078720619483509568827453800370230983879697746564721416863364211186640991683224299550281243460423266817229759206290435714706095533745784843286338326678935843056858060688374963329332979388500497365327303803012271459061966167709338536422685013081250903361531363887530566118839756128178251182258856189244791721703936082114723478474897713498114848786428202399443622791774732988968538907214082985600671872560259370656857682301162734915740310252501179131617394608601172311705710531092532024134318334707335680764541437625544884006552840679760025648193876097836040659671430764289261106438365768208074469490947027212329000437741611136206628910885167711508264821630208767206574867075994940256380010047594079121182697706018818767487457970515294282513186538747102901793474485844318312931777691100494042315401297861730615070205247217117675409511755692344010610209178954218507168173984632102705882943596347262845282409052464051284120035775494693843278373794982856736514622254509611171122650756228297294605915100255585218416846329449252065080689367691648763018564673655905640479835870239129914956337102025628135561517547076166592788208946563595551836984748658821588017657309523203767864545531141944609271470724232462079325011957502215903675894759799887480266888547044708588606023619221825549903226664629813867071040171886739841153109782885695943384399133009259549554958933185792101297774159522504388144250520338909794719643097268907455721022851493392496835002083115653565173673964544135749804082174502386732573466002235563618487901161993462483630705128914895974464655177456089831652569835688307979815391294221462066578888701401360001041777111577609128749460004334089496180025772044620600781970120873395877091650913142807869135286012372011412542438476188011162826091286994399165017059119964118622674638754892019274802923888970808483363799708999441378919295057222022455084006756185286918564783427156110791198077299919432161211568738787405756937918531052635957692364200011623644989277165428308673780315931143075044295168673511660381384380911312220238669993335234822053944451222024532632768514939936955428439239646810660366755864511572654452332328478943171433456731151425498548404361284054046500760824842963345953383600349186695128799166714902312497864051373411011638586332688433400916851610120671001508339444454068458387233346624893198657266631321045878771782858059653231372843479111622827543659881884079274354729757787227580685530902803169357874309463583430164061139817812612821572593021266942584145601401644988842656684220067871310367239296334962095318182849943869923856295438407008175463090440577113849251810695802491029893664394444375556013120990258980422654605960095882980863733424303680718869834503186238676439687845417014526969392681821387555296570532017220399117652073807029269616584486346844499349049641268632212335730110842494776229906083556903932477461898515280481273173940370122743197740076146510106861910226394164152690598400083826249121027633432666967908053836566448527379429147142064291724376157424149047251413294570140025571065162727213657268160650691726764408042062865995052234978684073498535652389355137927850638133588321993027702602696914912494647552919929753713160310909010223655664876363385955776865355663839266308861832728182609430013229284212983711018608281401074346417333114517075470488514019394616063217614929051052884014094846498729175097592708310585791493555758601635106734399167186071069100632762250084798464734853123712592972245455787821033090416440019292027245811383216126274926309284749752731919005960978128513290508727179701599996157423938842826624391220745493621526461230429333053554712854795149696743806468948148702040781156404806593952205239871449238120935708920445309127769853608959578662463207056639866357195195138100096212865985998021449954776871486278099948085849490562479928294793115920452410896278989806903200303402298248641822995133912224119237024115136946615929115433452810942725780178836232909019690264003448573400987150363297200675009997452296949813523716063679789830167353039595629443501674382392215733197715412501504203458671299004425649336209788784356237041239750849954392909993066938330435055093855682528493913803149243086002051915957132969752186895996602959519916812418371878620507931511100601025377428612865696372389106966455767754931856570123302644156505091406248046383669765039991361730519536506996657211726831739834166407158360231592140237167775581171966220936717159331483548422769554409006018928095264668408030958611156694055707744151081088091539645905276553848795062043937070161854325374080495286978009889183531205603385004151230511481465450643164047337790910930238204301057304314064218479113643466877977938079204458781636846490765398258939524999511199343622787231880505367462943523077716885725352318114343746961727575406474728646680847238966147520039612883758284747617141995214773367969073592377609898304335560196073969446991310496191845463977447588626194912323899863667529804844116655178910573358854231057761799643154191549197652727685580364526003355330279641572659748003056521920462791593113546429968185410335638723180330380291572054912548601427455418595541497345201342777922909202806215630364996852531549587734764046609462450111004595797794874868470782423530260686155756855185285149366149289012535842115327845232249528164748338727993465294021826647417438637917053321915468724625982790862759276623313910817442118679938789050635390436973431134045107340065914510618525195334641154051348196890830315562081310075978348132481426745582415391336829873831057463921511641380681481747914282931443276910312692753367483360977754579451260437385403414451361497996847266693450800235401129862946934448330747486514669897827113804101204067612089345910227799629715187541743063668365766404468877341272827636655502709925000401856934613475366422947479298429479474029398259768498691966014997688993667261792746039161775907143570938663562438553847357851795720424618517196198321063669501784599408829650901972999908693169812341195545272491617543526282650775002245862687654248913689174349532252999371490970833763672482151669832821329563951346631735424636896409196007980968159684331063090258193787396289019750192383225097392105133439621874363789494895657923975100716999038718973077785761915895629188615086723505842206663663207852552620240001037082340345291992881735159418609106731573103068800146505832089300707682725051231146093324750075478744216393850785715895457883194460638033625977814056859885070149431205100535033454129791812395773601503399305463639106435880630655198143476954120787911536748598725385538071001435363225405660280949719701630406151032694932985086942247021380780139677652089833803139100506783365737671697113564500491960605083682881635219659269842514467702570976886596815578494596071047913744054056699290418358985631037598246149065125296011486687351225648874137103529168420084671911979867233310278102897836961254331641658409450246869276621501078861592781954348270868703491483203056638846103698594292305683673962804740817943377300492585217744616487122336201290798390639930720596222547522312639155414916399050570722464947369003482442634623111613501049863844713976630307022270661041223799130598990934839534205125010155834910335540649386399517125510424036279402655978173023880684843928580057235848190131111335739878119751535754006823772787974029497639028732004338757161908454639395043475658739083677175427469311801528614757402282471460707156295415563267180461216619032946254979954929254730311915946977569985468509470017247064616380867129953359556603933507890145755368368590871116400573458619200182811583102958161999195927851941088868019830624710734993295827014014076960694108626286304136981942072485903597543708461422546668446609654289728642044121233599023661608934173609797301901828910436764290435876148798313458574655373089589964124281019930065647908866380744627625413656386591828870435085687540752464670421462497519850245471870124937066685755329511184866381569416841396768987971399524843092960456285468592495552023988551084558417962990275381591952587699752267730078271130035483758033717861060557210848594540639767943178961577475504412000291459094137394004251450196573223763269582069483738670172799690155698569955652671945925029117108069144926010087276624294524920264950432550220479318807054234544934485671391102437345235425990490915257835050469239393081463080922987749345566242933003412420854812817726484860809790946945214597881813735167907740187777196078128357269558796914301762776967357788077568912322746914206829851055709196467662205523348583935672314618826405828976234453373624640965832650505184098234686944973778057388173548715441787386240503740158695822752257916034655533894269408656407051952512087030447259429991720482716663813004539967173279710591630607517063425437537098787870737175671742184318610614875254434060826686497216443110001803710218418552821694169785184031651751783745303059276722802652240538350469229961671229313745402864981991520962403330345924445045051249627312868225966666332128915026562533556811856990273054069711322589213192137484003011657522026315324716891263590995998464796612273000126091375495687779620930951315314392140331496959795958302678755198335499539765705565982586475606481715778791046133598663552858807793440796793739422030834201717995159738121568022729004290427186301557169384475257165828941570649899628020454513117605226654921300607381784803667069347175970214975343018149582874201680063739431078813124054790125695742438597696543963584144971123783633017050217911010853353009366512777442804911944957874701876702237064518125302886906627757645007623572200927535601141344131759439006108808831103861831062904748979137822375218064693561282162455772705059267196910184224763601673279803028200425278555120264489904477647951411338688343072465414237220041698471797745492302737936505095745425593597739228355903412418827712787238767606714796535134546047709896553549341696516083079729678364666344448950241571299259358495126463933839139931542027794708584496140723256469330034866064864324851763090404439233696393778376344480949077521303549167319065222703460652985743356692292218100509079604692982962372428414403127869803867629751727398802376378416183294425092193978646845437399199647943910003153134339596083864758031844033810517977276871487404939756193267639325055798528505846611728704199570912187370688782819157314705165918014521007876082321808416453310720441901442121377604816132539926992535934564386971376165068480626115834915179103779761167007104407403771281706411809327529020537454253812263820078774574883840431529087645276829082853365156259397482198139352934130452333876028935995822753274468867896648891589507440819191368137172064947109081131275787357597077646998751083315069269308098090545197083810499315839823224225556770700417188006437867336561179094629085436582119496740731618179581037093662057904917163518813774290488637767128979873828544167208594351869521976514800370654891064700721471781168285570914083118881928815327062588864525798185233581477650882447721059032694329031163473385570327469159604609005649673200360430474696635515280935163582148818470613579908082441213878538761609270715337371678259078538934580087466862906386259092425519964398235612601995574203365547500504310348343179479419472147826089720202374394591665442991889604992478768695889486293172040005146595021102470361841802694237028938210863111532934386365956185121545570458755939888858786056846353067129244311590498693400367236647042407957151885038177714369608379606281706016476300458718250412376420023856960375506983884706341867426211993238563191097659982506667117648918770215051120868766549308725961011700693663829666799544692013915493634242321225528483297681041919661718447013621846272908764741035982936990854651262012050612088756444671270514675474877220738772520068088998187289208536453957095973649487877569526130746604146571388166470619284948420465801610403942266117239670781808414283905666360219484516176928173104621551108905526592351669330833456067509787477932467716643972824493367601042388036018951943190596044657666962296422901096037336559971054118319423829322936241170495159509273609672645845088586174307225560338732225789262319391233399175532542664219169260043447362774396055136188936199832677166194939351283765628846935570321264029956866921736751634039731580894011609663731868565527335529615799689995880347746584387035048565469371527078637036213136283353242716516882540852282772670907601136426706734999464934409725752897268437856726096233426125561442076920022045883706211511632378631489725451944631140440165490910501499217357947407424259937856756023099777301544336127165006034289313772062211833794417935280489986132488968227898882229093571696227671586298504568375121470252129828937111807016734747355468197677470063040105722652421273678409958396096963187932359856191276262325061317569787817897801618863002175488184573282598005302678014372437988549566857718082612033224040063837568153330345171945076938543779131063425202915132822600969117938165723524254781039711298701619664643608111748699321040327686922725800559586582364720406531506032562433520781091250776443528893163661502936118335437791299226048706844297061413263095468591684377463898123771767662261476369587240252576331350243398073346201940822642647293657605278638812191211860301483200255998520267105507331162553698072168321395505581370915052950771362894371968490339715130019413732247334752822419639392713324375078892777800107727757632470564519075525583046641010388431394291542722760910089828933124096332194482915492528146149809088437094063584233829784903909541002705622655296538479334513745421574319673082570956719387259225854844067371238596535717051860982966972431583066268081628094240544731205919250915084608515556837820362417390231511879530873005020560174145006980603342800025402749425672134555634566329203298176437710050876459744453730124811510523923862174402275071680107667439608210995485188428085307826604583442618502476608274999254086978327294314667122000188015475335016009139599575485435349337310691138401767709834051947306599094778098296975876030110838341040648829381802845265538986897758132193931350645859255022275885602027622103339925008429265178680685709381172003022494971599521998813062678788026315041714258690962007601632658685554855269283882673158480643989389693198504838970812444449997521104735405244367212022779254789926923013857240980650433431216219942289402046294135709859552950506169857147821696573446680177657409267952544278409915329182167263130646780081475210840403932606982593271964781775689096491030138852449770409161400246502110248793580545321754355010902660164361271285296613024056641178419671600378023056327866666742920005284430440508387742177616369121798260492094135450191214800041956275639395104907526991586141350049665335256847752355775636007543122370564937223531072852554519736487961703007271727131634611336799463137059371869593144712410927239838060016511618311545002245800538219237104117911459364463003548670356123117110857611651910614937844341168670781984090877987476913100416398947541583772203489621952738983267453174824027554207272830003987303118071789771721153235655655502192897591940334764675692666176142507467813511359830613370060807592857767889094901279509273945325457633590882720457471048609073396074893385208798270703232148543344663247379983286434083854759323929147308843956082676121939109951224813138998137020583047692795706787773997208696619077408685137602907374750195848513243350449592822510621786071005573053487889448656000937149177307152297934979480860473466749171717165601140967946746477315677337600401388679725787688268025627543932486397079382174786205955573485461533634037115401208084283382621907739517483302232895301199359215818471922142323981360125532216010050759678990729576601084994361093187878078080460625013852375717919944782425027688073608493208933020977433911169681535560498985858058194663981391866236852443908491632322528214913641524489131150655744949941342174047758526264643521801087825687611157528416247241609708868613886977645890977286140723368679468722268914626805168245632803325072679442488674065176326409021416597955102537156335863009810117972034395743758858571198025766569990942510753477368634248845167417558214896931370598094502328592013548986434345223343971781817073375269052462010168341616023812985105676294589175224490610504145046739594729667840838867432432401132417929703221352779282199647103424528969336061280218446373408786625273084995463099817330392771148364564955353817076841340907153233013405815859427244767441372937849158109659652365610614167548701275117834309212137598358667361139851660951704012488975525740552087160076627502558894548565274225784711428124716435580617470490202500818684715382402879887224954097411446923709024421254976214013513996868159450686817964411307079077483498228211057041631588015774435895725937189934047751936087382237277768111808686269154913090325008485825308728732642409162575978446154090782319558195248754167553872580854938963051220240067534261683104200033506349495818985167215215212550362152100697343161549690675808208910110680975469692817815749122657352218270205990273007598782847391333144834076503109561561351187907497519353922850517760369100885723840165516756731559251869872543466836894512270404836361740401880320569162196536463069297793795448249796592249171281844136144073352231817658763029544135740237314845060866782540318251400961374287009598849672815966824855634563321251643986249172874939618099594454177376123326174895700851301728445480513959072593673624838560349037583032791616413105144819519097123526284919139167746853895728875258916960628259642350757657952450296938441077678742781216021257510769413756835589886915847439959223060358254042673040798986762011017055124342172325887947417215794821044586447500724788138794623095543647753399741927623220043260663855334251161542433971318760042044331292354713628689933202107816817003801439816473830211729650824140249025438912788126809430916156174789871582649421562494066510345412182857876887195820822695903030739887419771161598068587214593429759505667628732059870070322889137158205742332957114649113456502007974675173398268700016935664150729895292669676228491796240175070457983471634211073514504881315459141423378879810875229196609868851928944574457675761078061491607302979847937038945658734933602382850432200209835085203826168389869543722410640373696990048170511631742461604242926650195318118357214522672918321639087235052006932235549334954842341936322105618821956456160373015409912415476404939084392678570296942936263046917045708786351809636409160654968951090510411737707582851115916978717883468982159158797821628216101249340237346484838234457631983913902751468143733743401625842926197785609195353734662563747472658242655429432587696954895275325948400778945044002053212662466919980385363296339143225543846083106934405228489069588428362092199301165099888097773442489535595819436162244031857157257473264784737589418153276469151657385668942039585371563855308586916258265842769379679820095304240589242256817983580200192778876651665319196604252866568032625101754909297748528400760118377444293187208626034444942875447180010393308268480986832286555019369629373358213931966284436858693736022665255397131961954689389644900347172147888722112343011308795446654597245461408088606927918602908965596586102350636307386177210784017747793769764612505059172786066023762526038691215395872244370213932285588068669651718170506070773251425295230241533155457402786053128431251340810022668379884221413459405157572531435397264767133706434190503130959864067339770312714308672940799838499113840843793826980805021064812953815274318378401427087685029214246000288495391942509373141137296962102181146210185931019699909320533082953431895927502018119538631402645637188998600381742299883032579522129316055962889776225996394368891603044240185897563033613006808413475416335458207388713916206234827115181176102814092119506442403690226047461405351006077374900711831551618964968578854486084841543798181074143111684601541388800103809849023101058056357222565327486300915776015447322672285354412155801549543240092808688390854438630773043592584067656378976995387777503122363872197000159539936336011987971829966274365368430561310527916236581216537991333185429052654565074680762858616562774770884715119400128410534932413592300382861693637788758912231532360365390107789974896544951962312192444754375972452548768879744687146562079811534016747662354380854195212365625066094427096315199632898744861835095493361445633964506134603819591688907838950135955929697943471031432339525124609099551804174318718068592564932644241697535380848969736850128251652632969410119544686338204156027174872764319311002931855454207713604231423753672861573970723243780308017278917661442388546274531793272724122080733148632543569541562670929674321218272347111129167938562133069078323044027959349941286624041086660243980048187586988497975915552795981405394328901560975682178542002976975619860014083172901255854062735855028496530665617423713798510462938023454430068493468521179486139521220499815117110673391914476788179465740899982042604722202724153285253238764450004147421676858050076197900280838552162397857288801164727465115508460163748108409961179469966038568467758128847371227665020871831401479460859460197410726763666306287943046670146135846533744503469587237120419145028229442630003261053794737056457704808061315369243739379957616301914787850241088421782866345425074797360093805196327881634097930103494044586053603746862337697703688713745974428621584739556995183575280730335902579527253942115181619965371979003360283693136423512293865788653188970343343093128441549217733948218692539443973951162042055912231252288362636525253670903962301569834624987691993387325854554607617337328735660461663681674398232887471562058642332322113822503101402543729262391778996672959468329310573207989105822171679290998579283123066274732491791215115338762497942954258372013614666769076657397758489750441038239705155646888204550612649052416937226730160497836143858680162592053550602308825386959409262904693521499968517907340256939931313266001240516936342440194829627524015486655028582636089774820060693451556678431553660913745747399131616092000518413091231169237206993049732585040084411592826095644468036084329503248759934845327750881450072434028149669458318673887804222070781889434159032154745440695128487248568669149941646508012265568885847845290188464143845860135980303380894426826171717061975165543076950009235922273514121033376306034274731470309910964019515997961596641123505656956895317960297539901237319113106507237153521774063622630292513935780247513567615878935833890157876058829201263756868674905237752471620686603596525116389106568502964723020275608285144999787430941335816433418426932733588392002387722008251400870830394371932356593870972452540642752191656275412688641913709585223196250589547620900909694473458578755786810237221135430205953930145896256238586968691920882408750507158971487890345735155226987819137157194626161208238837634432240940227118240304564098987549819539410091128221336261293633695268741307920420559998084199034622012864277199298723050968007124065360793294681030621852387389365770345317820848154965031318098767342293722734073196278880169573123781745966968920350274894336942792989746036781280147140067371439535508976190591568663159610241177860672170438109960230165619805783594038250456751832616342856591890705170837809093611540577941020945517444408757433079806168226707056858019229913630438449925201965979304862329261790726999503597546433594039405386156017576721770059387905619294230685772599356516533857329788063076196039383267005694338023078970627112616463504953584850080157866307805404416560711404920674650687501853339674880748859706548667869420033148870381137276158254095594454215792312785899084732364925383488424023157428793693593471866815429423925513854930020422337966509220616043909138033580368339437588644505907065082341870354382722406283197183093869278782179477511268506236174826675517560898021152465208154958355026550600059913812164640796250971432350363902074825134319986822917100924766526837626956109255275764714313723554107295550596095059981914414624228066803729582453052178959406065285377243102560490315889324819277019872455333059100462137787258077921694871758069652653363719034981843072679734146710944557548024349491335371264790947356353781446162446118486802272290338938987432382542433838861099992251549506603551789813592211416588994199897583243943588781116862425598400290131416115304664819238952080757622739432830739206187324681382022984739310216483468355564220578887242027518064562250310179638295966933371556503903644722218035106245772284356795720293586666859933112664019686051140158470370506474588793522274681686887772042132661056154833116403464556435835092261243615153386388002385006729783524109709826564451815969549952796738827103599841644245336752977260090170693144893637324809556258511853648939364828751867756928818412083380916971685957125609071744573310239414913892980515817856577769169434205536135464995192240726530639682520210589181419645464802279863579032913927890728980971838245333271440793189382259482887429228531894312676345966732706552868427439345657806977481890987294209115313421259915005634887746467533776689514317872225683936313314970984814987480707564085185113573352875619989897440088722366376308421389796876184717777365771629368283595193581262012675221886851409899310678813136588368455611876029966491217782606999505352054112615908043163238286456867837899200711072629771029566031221524763649973295328521615828717446527289598000085178278027761115124647402014868551901569386381740681704242148337739480156158419918140167862054165240597249326024501212056690333354504602373147865186883824819858486196496093734214181617666713556206795034429341861404148697260169908525004529574228512477886266117078834379505329854670036374226972828270609443143488983903037384107524283607115284516619885598462022082241868271024048475890276539899456907727647148124047700667378264245743111157779031735422470320631434513023725372808877418638698819257213063071769844005996944843401213002599094772049207260110283355659666417739978361650759676725140157623050423808117888123095838015544229954638323553783006000448842115593381321451447893851207086755944578606887970931446766752917152394456757094869100591739394583582043361567812443260832519055618765963032018880359356948142042780593815026077079435911873611595406045922393369371497782757588111266801215626075835941252462474601461009299914893547593245035550252219975495887173137620931422325667225006596700242698324690962314207206180232147295743652766922241232267830156438720455859454134904222621435445710899698843996930335657905482789069474307517859129596524814124022223996471083728572002593461740504890632349278597669301638673382392953564879315476661952021271878630002900478638841774251432794365989650677954384772566367081445070938724501553103783005249583428783238570169118928577468280210692374175832849327741475732574281658122715286072381810274035225248507629616960237584711463565913588251549699813562232952536381152905245219067866295414813324352058832173231559389630900985674151376792227396838959061503892009364303262352985324490871078571846897698932271061833407719747424804573467968756596884889955467712751646091983464609025225179989256669415364768951847564579102255637840563314327762270789224591108885748415270391706475121302424268698961793224806509595256527554651817981107197376835644919367256484194189761731933788993510577077707921304047088096379403005314283316455183708617276870511976233613778524656143070092110069872906761843868591778645859602898193714070044169583519234782925985239031420251140732198583765903641305275283728924159398740252555157611712199130774155520054056058416201514774515058342370613461176872898133358903921101600989752638539059348969413717175717238351227586974415634006061162634177909063195493184851663460608265249899278490830980772604484945422572460959409918308046344212734148332653350829869655464042147933626279239043943298849990061972070441392859279346151925941478369930106316057710212687779606029742803656710040085552507798217938650337152082670673228393983693854840055204545983694892398646359581045064303404985738545203797106872865328947570130549695035444951899319360471113054401291432619876968510186360901713732490710201009341906082493451470980901869798328385035808913259182554851220385520322766218243149621262195620846886823686561185291890026914642826904362071488441039022101339477537446328569917810329375338155515801405864280216312335369727076891473143924850886318694489792377197956471675580047541324006642432730446335336678016190648762551041158930738546725683297859767440011564002898862190224647027073281698752206797556463359634297610897760897436179512892995800818274428233508426106108199466998687738691432196300331464056913085085743140230367523065013407387326315644355695886652859940304216847057192728672830618388312461723810519794923726612276912264239659997226657131129767968886778937135016009726295335401458356337890305817295882498112416055858857281205466968367042845808303363172203272179293765537985424064629492895718777135490363156833222499286369609170509599217345496239279136275132023855739453413524228269413412241831135917852677916467462341812980833996366448988312355856195390825349873072570419682027246779058249491873121199529593240212848075472323573070117152460910896521637853839055258207197930837221686225133957715390411870757652130573567008124142493803755997471287354396607306999223129126829181972834495421060439820815561911016375622760660398641772511844811110565482111528371888674662054620579731550643674467343658705374923246428425896824241642707048420210699244941676774948280057926890623341919004667890304764900420522063166722861180393004088118386174304022570848392222900595102132566347517409231077177973440534804555938537749017553692795900241133644749095190350247290833818926020887655792711820506979263187161643556460796886798819936098704824496732619987137887283783079394774948846448561248465277235522721007171260770315140039786362815743813130863838691287173015848177003927767105851234772130613536383949159481789854567863168523880738448023494071550852558695834412633230338389015674055426495509413287060463904535598910578942241464549777678457751857117127964507925352298633077489362819648251903731966921675430303282992411395328346944589966585983516344442487071237530975638058917514368403490719448213142637966672244785438684642440323268621867640292625313868834041220657041558219429519790290962114043777426526391426509818202696455978535395149193622842324384131235632585680990022993929845861332407055341692035521282062203669862395790809981411358337391265793049388594203263657699400465408121455604460536829446263217464234560216324736914599315451942893073967876182479311631669062132223617646902185857105269743954882495531476010682029642934327803301972464587838337200546588333186221464896925796120351898085548167594910019641489828761592230563122307340519120111453164130510256591227045133763779724355476135542588691415034360870572977735911086145251325407406860693594263355269834859058891347119653294941666772032283224072241787759124186957743856927500174963145665193304246517334620242783531260457899000861798322818281142797794140152472545915569543488841989972803088929433718218805290533900613740283452289499140449662014435376393449280418313764423822720443728062041653918384705834624376727908267021213200215367869477960448006682258902006567426229028563157942800466654622725094402078070627974650031871139588510156070444372426464842519979577519010769493538789153197761574537573403778136038380554695925020740450331147920613204647715517283056353955700864743623932184604876361556477056432650994479978135112618224073349006553088859081613070040558537524378893888524091646397791095497550584970696833126085724854571169605298928440097444218084995220828275323927469442523507871093301536581335643694405328690502932385598675135088053312691146311063711395127440948464531491454371148589130928049724938303173577565063617165178876738882975313850859813738900971605952782727411875029471035579165524915503649325112566300320898469250495314645256390892498352992126026825230266612690888924620310813191640735296889362733025520583386766564561761783157011132998533551073325612361342285635576138922946328262732463276094052070380997292253255547882035398244112636181794935444741449797000567770303419334039157643050020167723416048021028871359003232641645165061461764983810032766253664497102420054283418805236884563411101611429322198955500900126368270317398501588061918469122638838106582720735833123888992949014627510170394675531511818519385002596723206262986639883014414633177062137860180460961457138913472232009561545295178085830863903599531160451729221038700506174106940684717955236406012583468897094179118534936025684916399103195404253279287594119123717244786582484091072116853904812509437995845814916039418802616845185785555084423540673953558181641952945535490155817546466937053800128215414209158231011048402617905075590088894663640985160778120766228008842136728091460581372111945112603268922642430044324252963121556513879880469896559324886659926095723173278396445144295577498742232102822459187670675129223789355770536744479889632026130643993876862531579924519236930562556036462997759430210757956364109295135064908190640637085109134638935273298817162180172195183716332736029084810551540763776449806957792851711713029381321247976001310223030082841990249637002090107653506801649309820217850037690962203548253098396801149679180926240543672850476071519327621580939156981972203181479957996179271486934648732733688065851633082459599649083273167889674632466971657278220664208300368711594605095817549759441521050291432823522494274936345907024622632352447641478090696503990522886544741656917045277347380236634831307891270538724625865597226438929258606789763917258152408902761537312845838946477447772043498467878938229503859840016968864029881567782644504433126354096297801560050752078269762720893809602036255135732903190652810541895112805117110397248997662420325603312719830018957979244606117441909129107810780862326257704836994812170224731924938095774335115713882631899343721080327256668732496147918755489301322104867352126251770378406445716892502339944293755233242717641278177666195158985540250849608293292448238668438446716931522986094534537746006149052943041616297348536239549199752816299409742357116691873023842391997462543531402659852134732221550776964317090446939107010418479164190777666573029175055274084092105742495938748404160317770301869121880517316635011569523251770733283595178192949551762054560553542337962671217420628484592930229414137491531006648004740793929207175039208046170338261310414171963029765588444321025511485450837257451562769428227602045404534028341490951090428389236781204767998737075911805222395857735210927635557319786421729530189582003095526621373299309592336143575747106025973155851685241797899879405507140045951362823925537567516988107443713518019604895510345037908543030423365779539320076635257657436771531204530171263498740148285184944136873955394942117887405931863512046246705479605465701598771943117670333557702894365466454706074292693083857456772583802601630222969419063785530638241266662711252331295844103544716344206782226408582522879270991164576371374101112974998598882226171134824015368500093263208123180172653023336208356065268372767232710062867506065384373379668154484566865029762600604620249680584829909150618602478385367871853537698499532008798242230564357933754505838838127292110736952408985597513649018320064805772800568805186054350184214142893961259748518992812431702399791950639663964380044158579628743722974133785454203901486021571155282437132040504053361383713402095319575440386497944987989496786073317232242107857201967394262999874931925775651631906088557802017589471870708448823607659473282968771302784656789910111398087739732284492172537996954560273729933870774323473968566663919500015196420842495822889059487270545400695677662332032129137523144118681308174421661627881504245956723579631309136024887891883696626494016874627400161140221634603775057240111333361961364772106269068212641562442040618176526900815134440920436003187230060344592447499480654592599096094005910154769780309224871512497078010438046644737331736480110401068997459710612175995866245444882681201923487808797655356215139643884295459062175197453151405620233793059621381514402996066607568924095131751370079224432083638765417945833919255506110259674624437871817618176303478352336361130435294240339051801396330285307267111009279371047031913009871861519798476110822942447771247748120181344108582001414200279493811343428560349792895947972828280375516144756546205664883184675501794299049846230026243921363718053326246897337358647994821358218726680565386218703215124517254602620007988414703145148053851137382868847851614976703570064211257666386339291508562338373010152885446535433764193239801056917233388589184552813018633062502968391224386643038683715455117132942220473005972080957567602684642234644019816839496451736123892146465484349327855484377993141781722108137265256410695251284126016340741589111020869428563883624797132979998402399502341097760589404796594925961431719257480797779661929148655975371519138601012259100254617720478202329812529167331393982242162105813522061112415437736661825004162274458271402143095121923192993605905007442423736709384244849804503746151568910071545979713656142049139095194678403445033671099640871034684637016948426172748423082681081357632761391816640414210195606499525670632241008171781882227354508549850006762073807795575075715170231584605204244975145001524301549659769610202924119055724639458917979234210880715911854059690855586949601638921236887051456417891074958158617938555933777482703276291474195604798493149019022891482199271235612241186113321237916668689437039750542158896162118538176256429820255454873261359567430734232806806237221566921909078852717974195540679748547090369513626638911274047185251870054134260778765756223741007724932193840271301362435521708401970851665101699104818828309780618185051588832232129477702932177882723450252779493392820948961779130387667828895069799983651420168817851008178175131406571531145461729951802382010424008637281774002638414033795332897307174932328592439622824313150758477311919081466198440806192633115781583587141824339241102702739851540265508021580699291111624589824630306396934606298187735862104702168577407403328395412151000215083399885426976079474204627896875835253329057000910093343656522489544190366571380869130523557049514138361058495090466067069800724188317522487292790162793482255758457653248773912166258412951806707800239826382580016027764873179534148496589141601529776954561265180918325636218619485846658892441806730105337444289605799781761280524106566555506106509190797035661951776709751584535905452550009511628525666277833239175941500021093151041468417813570244782425384267270549261082491463444593507899523160190715461850488006169499401176317134340469186401390205743161821157805147246977377065236755863284871056351687270976576289059988903541305339641227041685849487624841821937502009539581048859801244817468558625451303223906853737143750829416537312097608626397065608315926237497794720920629284272073114694408243230395409274211067885495807588709872029232375068334304235630933979662543124971665105737854356038039798386578061761649850824624608598572748420220823298375399730786561576957238774774615051422504197364323098690063230495268176713009384851380947847162480055453095948594291124003039006252307363015401083434535015470448890256787859858017611726982487496710772114699938107812832254191515524891782113505062664127729540344631839417247274603800452474664407319769320221887039640032086261255382586617327933961287215447655501676336998887668414187224805127144288078442731139527850686165199280615341075798952148640894411141708158368374775449461426486452665241655382198554425861511164135788773759899875665252749386715889188429277423074275889403085894863464541198802945723009775079037240902599533836785875299523995941656340779886653676816100282920174770365134788314485330711003145833737984223558765630194577036514855775252465804954862198618607419940454510867293892205123340401471596761917894267393993319776860074710516253716113378301753354113030482286426750034640918418116038369782190872414345406271941547787954713535124645606567030348710726167568597623207800522135559947498536849524052517436507399324642980966894959857827285117081063871846219586341878266387738633020841849153264414966831796427788086238215167341697966930295037021289925140284915835185791038804614850998290610254589113673212094469098977355682934681857244203866553583336558550211016636314887577705738866500683672242004387417038822746218045341365690287711861807622126190438361357018052517144473654270393908881674717029037565303339889713161545611877091011241433365931639453320438070467696865799971150972489396475148822154332801825362466610672444526577968604269909726706709645144769713875574495663232960175605593541591778851159503462588433194005531472125625427062556939646520118439664963964180161532411651895709240196669117807897839310528594330789801372055230857903051728131697692763431954998537218215155773191155540493144984007393906414791850856708609891997776104862847843618486832589165699395852475367900559070846741148632186174980804871466032593136371506797544603215017961908504993234524465764401635606425447891683202570144840307438929646899118612507387663930603499539676253321400174625370054224530065797832348191233434563273233984553654427804103838953391253825520737871621712402572168482963278251774579221257496191362433826879662574613194438617279767722615919601034559053763795758909740123319199036506697423192870820130431469063019741875626808685883207491304375214334015322058152731652968765454253643736508229794175215525759210760477925862454974023857192122743753935765030341917776744044774484040132293096016395253872313536565016111712602256868289239092067726723402946675816126364011009410909174259158988469581181572624591401004182141469305729756377766434994888402247275802519159451586454329388716964819240089628183436097063138944253890118477878943620782515721678532475029920284028310563623485367362128015655368032541877431172842891700122559719065626157383257215815200358141209377571764563229649216807549363982233694883492777507253251222060508123495912299529851981687606762763057326629038827572429574846799837461741826456157329812572411886580374258696160410217408539147961110973759473375289177806623676568858307196885219412614006895969416386634630845303223168128818420247022664849606062944876133135367671578514210579817254625841043101508829005470030986305069454016334921608717072528108484907476247211538597155572741941717010065899760123928148791977101991318331711542414150281910590785835896349639309568571371533834138002420512967929913828994953324493807625606947284198344065607413903739157410363941230472011532267628861394635223364494035715564864918019842263043041899171992725700877473433201347805652488897190396422519783492951965390225587033398003999649256970608386938801808430841578258763272767220726543212150748209614237927238572564504886503777674592637046671478301206540799093031533147197627129315110119317418231520544308453016633416265071155626545768861605168628215267783248182171425838643131880091993206356774123543821498819924683513503129266252066562679019936880499010615665147273244956615110763260435063719923993150686283700272339290485841111911584035539939145829997793253056832401892481932624917364111352991160642018586353698552736432456042224785871247544771696682751713354138026517419395446768878480871460268334590769350744348643757120995469362930464463615160366104501168306804568933584854544920866595483225972871303576812017312275466180598180371753511053360947200594089974111507066000069036110345672640644910455200236816838403428925148736846745781759679708623197799950300428126409247538340472105527609283265400120132477605182304805629826117082981359177633017737677985974983793392203696425457916047532970094502951191351869790487131612846313569236625542654018258777605491888788789074459675881620414191605618900701615982404475372568933148752411883268145191241446678710578781420185557021986462918642799930518823065856939741750883282389614946670914224273076514124088910174871097171344016486284360556130506457135589830430145297599893137101832449274364440147299879769783758603597844787389984203833963299771727579584441884836535901760400455865967089566566849724050132080673969971576477047296409503275737521433589307550123775444907275252853224820799705000311521061753277238047621753700693735974967973507767265226927257708613507723818673706523627513750797718427392701299956162056799524374053082748613246825201842899886270226413571504956386214752912724400851098306635258297413014934566926929261733451652083252278538242840726134497938219006296469079314403384221143181464411565510583095040313486441154353531578756556660820030829627664916104556292323832645481075934742860887900959353045563013743921238783521966413138926066075667162012782083886560956545954502884064128560469797910802916033350199110167140063941120192532726244971196965361673967219168510619251888171072268673111487488179703122548978346985131602332441458557077477428613900677177881631501180836374353512975806444514643502818825128618440922103020419976140333184102017499886110516216470355705389933239709400211453410197459163444808313791782138147593818290276683528420930571844093505929925171405043414288413895505205807784062244692290710673634282220753662167795064881159848957994790199115367353822636118637389258871597218686163927303949775757864310741854064721156493431795968182056414205333894607609607976584975241910570243736685518476640055510589404802419211511898487714241396730014776030261545914033061300324554106791068741765930856585114347564458221023860174555791642677116174987121873040339497505943561495063048289098698042362003526957444870893563453875737519110590016037841450177960348996642195946401826930656844264713168522137297341497172263732017010885268330973327564325579669009818900621016336889858952365614297471184752550839679406007878453627817462953618629103347208396460159221522666562716219087190210204009018415023640110152807307201709608663763676678271500061224328515429514499261537060220621498750566054387793097158452729276250559311469581698313562869260227712322263382165083466370932985673167411541232428294898109068493904179519684237972625917344634465542362913389400713319775977958881598790035903237142120844652273150965473599082126751117858536875829393911334433918869320014701535442901345337986639507837969189194133746732160209777700839452448164974634883806799866481975080203051780488398497522596832348651441887062664882453379382009652293178539546794876386874729384586756180283365587817977314373222434251136848328203786726086641734734683273783280177677337560395911765668246248784317846719795073523697519114738195815349164581237110829917856870077889249032395872896733999438251755052515525787045829196321278239038432191036687528822299065118720379185609635318123352124370012570254424196902922536776412508647590172332268599254037078176266517962495875392907041319489753764743737696670644100050263019667166344323940094502865422284867677092727695121364264422331585062911558159984706874168437581731316272040843629555107608945203200559404574664769076925830431645163592541577667251988959242369415412312674867286458440330469720459002436733892450881391725498508351018161549940837410905060397208192893126116604997457572668532152003415503628580850679919579618313741531177655507271105786505771390965008542690364036635325798447111578756605298252228537789667985145006975250475445433217424981390886166027729167564688214825202555462335910449102542870738980406664968987325584189316092792252387697130059464100860175141977810451043598361986095494381147375837058535373890408111335159209528138618313310656551528100862045217722020346333999023932145960953661615033420008746260092479399241869410889837983926326114789291490105860253982067430399980419058393539465594051217770818606364283283119129684949097871910709305721433005129318881845691583995563797849586558467741139942166032724518613332319837033918539004113919851919320409659733291052940411010778742459395652343351434809442421959137704970176542322719402568191076563153953540387864218919345897148484956476259330614753315509643369883319736682393098145846515795857657581305303389616334620657976886964189690006623108147663532509408699221562503483399301491893168698894331581638044591721681746347946777268535499149710301329622540243940368411363362883894369818278713129430091925738308491108752540698045126581359461881857176306725239168065044349907447477031885028809128321371631668442444237416035929485027702782107023121687825214472974123702603372207143550766300678126163031083934592789045984895133626251325765790554243565247006758020502881091321393876798556551352900465218214313825567382356467221926025902720885778396196227276227961597402883491506821778314275388512484436036491820146679205389093449588989394042274153083560597814713241392191595049591225496558667778562569469895128034116898882300993439911929016703503807590029367309639113320492576091572450218368681350359656292869923146578530587685823371967315998826843166831870034553996291981352419368122680479713077013292555129786391123065640955384881107230079485389311036855447506097194723527710822798228617545469527153207533810335659646358978260331496862431300882082655820964499974974366999668104646333056694743249419662467935015750461903970422316612143019164822104185327579523258912300061856851548777343456142118379816177790563070808373517802543779084009412895590033752135761879771129581366900085184895309391997430919433213473204011874899442501673030450154939440900274263861144263088582667982291246754368711822054040625785964424140791206847252431838974972170529037913485430822049682590761775500211005838019866218820361891392744750326474557353920281978546419813507928195952601915148095944829942893184658808513131307986529108278124218496538478150355196127876777182085692261560836152419478072811685606453210088134866792228195913872172213812795931986606866124781262830322969165194405995615381780929554794184604537426238553706810105943564022216865039957787363042133619396880131516759287264657074500251542109165908321889030497677987911005400313678686141845011428150498908148677635791332055171204425648494439137012612410826311852219217788222923176007710750289867675545818010376593746048077856915725670235787528734004274187406062688127863307059446408793332386047914060689356023806144725985762974450624971659207759178058260063561338321385169176097994557398958141839179352114217013436806797524260623293986823843617258889783846884390703522530766179289715149703631056693156117362654495958503624460479984131983303152917107156561891485068221186670968406873791815140961447849717911905005155421298554197493595611295456746084361821159616138593931074195320045102646948089852796655849195546084781642835943352577336904267475742876040372692097755530901399074641424091579174472506975590782078918216468502331089285712441735787328452986842428548733745824494875092694564435015921233146043229156355019449164096440617140522416671496178106278598586101905837998887633375836761491760883834277263989610245081979111253852171903662498002388667418379536265130733758309896619697340761940484477543174872135298407337751995945398742137808624459302260368446067074121391248782048045971089649236536126875418756762366534174036089326961716021721180408250113813848475063596648985369425350078782170015600972919667582950875807553944117400150927765054093301759206333150021452953169231904296514856580328378299173483545577908910287907103858054738479143305180562547959158973265485373697422018084236213015720121663566609352808620771033854985695389229943948759415397851342730593995237381304720124968817873963558437587113827837278267758117367312380508694237597905911872463360060681041466239476759924321582327419319023918923256918887749591622542060135805569732637792254686905060208202913283854258505907378787341250184595088735940476210203023935767720727973658739748111891883757108881643642230802235867489171748550279828457100182847705059026024988567532920382881320391087238369535713499625443497336352283404635337739537376867749713328114362880025037451783935262574294357202209455988754881718794345938048754018619455016801891355832704702334650805726352672985705657750563976386008040376339209642865519173409635305248864063596988941221205992325315099916347000823786083798968285931775597109528555991638574794860240883754746726441161165856267993840985166834930485910725583057300321985166057483493230093302622803862147577331143169103068117789586581899791602092093283907304762949152671622548810063018888727633102691822905242948782622421858670567681973405916500813124748935754536712864869164951864471919042677055813086927480555551206606127504383351734169317487062795522527868626369321562161990494283120710094860629657231945323128060001628590351205993327322955777741899658218492177456589804347218481256136791689116064647945911511690728015244249902698097924658146092078751697069956730361980611801124585361873305720189204821741593483270428545406065087446458981631403438966472873728663995005881441174855968713190774119318978325603444885678995430315693543103775041034392177781523470983981249252560834232157996141565717874805321550782230586945883739562945576931635427708074187078938580211857625071389192583765135151181553803079437903990814884389803943642947076753549568944608170461597717219118086520660953065955429494601790685003136197568016719480650379940628631011960342128432249824548178487849710891647056437077196089985607137163397227938148437995614909681243641531590375743930280017951811627263943021999160629087106567494495547313688787434228496171220736519385701996734906000865271312579742687605422547878272247285412641428695820542008884304596422460462590897296867552442979380862203019103066151940817286487582541937740524131428037511283118209420159606220609480906571884796645010659408749802249761986607348527642711220560366698476811372614856389519833582683858319154491415950256098468869920654539941026146971273414762722162700001031319669613048649515630165934763064190503925273029233834721553383476720769989089169282711434964568405901971506070709395926481980117659026930186854987399279784767963735032233450425066536110950747863819713217061660882983481576261001102934613343382483123237646756145237295299109386726263321618002450857162465243233531302846735555587728623764454294421561002120025705563228200100735383051852825398900038782394811436510094610168362820279184112520061797097416936749767571467080427677759477194138117928964276288785323219967445896818185034571973049838401380851549652403373657558538723541734244950888015704246797145740999178259840386748329421093146833662368973693404260972272259301368803803704822989836087905071840166930693515645507863097781680947657434083489400487162944523921083090302246812924042857732010121677249391307157513746217681117522238665316116053251605449613850701684359756195564631093302614684414828433439854916291249303379853100849999725536324954412289641651790664536156263737541425608585084014586500741682021123134393251766860980174840052886398387525817828747180304658847004768134696744994103710318092258767478914504992173524137649915235393073725688977157672169202808204905035900739464462868903620892371840780594036754632826660891164742181495081281519264181294673125151919229547829222859827940413838281834790811800258440674145527033316875322903725232909900276778302195129360819772582193573821406974736131130891537457112258252270792605815800002609936617699228151996143162835008349983766213878857359225988151630536209789474631467472069728847950483625417683019625791734903407187045054110192045530637225861441061911368440000909700830849452465601728743226811538602472478714365958992914757213228596139599144749139192887908348211410652614980579260314147735092539515909358099133722079079892058897575268261592278364388354115502426196973997936374856825969966447696228100116315726215304738433741220909246097745333832289357980311201709131618269303655362277303984703155427651890323860853254732020980078773406934537432686049232786406987701812556105058260203479316135207429790601764822836796268366764500521909539293841527655616575522429948772081041438171209444469749865361812360713713495679435090953650475294960859064531829212926171805125165758804026156091183259898165922628485152001225667416679054824790696163158323271357393274617291083256687221312038996520983921541294255639565803052003228108076208537816745455562390341974683466474149828222484931221710204390704489248825601273852644956557049546463874778772106536167092565721417450747762563905182281544193959870191947782286661334350662723404725040717051478028843269843351071587591477534748597391450845170498218185703558715137178899576774295535033561515951974635205737161824658022281172718069711796178543513066517592240800480611042650794122407217096377944284463974976591916686464593932895200286844571124487839342358191867568563660619024191265625790031266212873432689925122894758249949838090346881404060155693972736380811073220882420236436457399102392621814432049251100067428594052443850379687843723864123708612275565748631016399554283467806326422143997240029050385308088677593464942829589694945226056461298491912294915884951122778461637161436667062274582559636164044369827453582163877859912855390581299009408657544766871209637918890560431712799431743628997167076348636365477631980519231190587510118342819931497576867678030620644298407864723287487430955501176077403266371669964238920311042023480833972632503684367062430509280477803461818570892178137120506273704907676028715931441990360395893937017544370738624070404518499988340644283678452180323351117846378897126482537642761416922936535078485558090196450974348387701665842509425815508915843583241876147734851510038958200288936188498904249754542621680687459146406923834659489314699512862960081904029106455333723846719188601825319491782928951670825944307683549881782144068658181181702066740592304827345754582995242574696951622778356838642119662313840865930295304783491158621255702813066929396074866057180385433245643012992870533548279001956785153605493031646715087429700074979316083206750081405280985006844398027408894612580676735965868387187569310290446473200901032693628127938152531295285251146709583998482777506231419975447860993792606465153184712746639204764588720805009988194560944683956513159272905552593042303444563013752899139461526536489145368404276750238877486572688108784301075533755897280777491085792030217175771485471240996849082698015508483801399014671974608764129101157919642080636871051978830367295575611061267279841952137277532236566627454696080507826975005250319338611019352571278909426947840405242493652297179612245657052379333987207665043662105464733966128354688024944233144867060019096758748439577563610640863139457106886398889140892847811070180103763412016062686659856658634473836268888194435637969114357732216373143569226322355859118065903310633433303826637306454361684843497684718195048569944973466236051422856979053936731243654058079016860668659138564258757978643186319700393338178247429201566863420830761511341603650818323072140084173491621550293739984162678628810885873918108871386630363481920508793262863907287646097437297191757524418001438493386704200520303892610257842538484211592673958832656797110832308359269627036256959449823828078171750171631372427331249491432617165231499456564221145825816700163318086021106146905769630838647988860689526484920968130991936925325731991921026771558907759507216570559833272909927338598917542047070589868809593390812051958223137067472700227187471608052279138447455865440277463821448182968068047092842421021842570979062689272899108692692604584336576535293331638804606581434334229528192740578560269679869444010173426793348773446282918980374402321204618279721585703257618815137750742686168951037667165685867328571398743094562438038064338282029934605749469609259941025477327786868069433042835093918090649179413893573166689709662055724746929530581179419151752537168784632252344585751771320730531536487109172120913280412885102650863875503514225442790337119031624587331413396916042888999221541473987905706982115814496948331824338184216452262374843206295404679078798630414502967682187901382134449391022073043858984935414597850339654683063356442405761699811657909883066143520715920972070950002919243668708367383594603598764582980849633812887217178837544441550143197248174260591113211373163790832122497019626989386357853836645241444823902566759638846922572772904175714688119614180042882246080363966328051616264899239223505379973520493180252050658002015708128657092742809099316048788296068925500581941969216330130269082677525677415323005489505957328429952310894871574860216559906126955010412080141247672415623446890642050022017350566725874022039376353797811963888125092381374214208890570761522414143825623552152614329621785461485153980783551445361951765313087901482850052117788767988343259278813637423261305084487870204839843042043589299943188358329428023350953983769979328170406760050286127778281934236487441788007257958078841604350688450183504525856039869041266885624473113572063236961299620048403246266876495534703107711935567933460065089499104859890797785718485376490287245714045238821005551693894323317560813557979101806133933098569016351708369245653826477109794009946489093594586706087868407144332301677857137189742574212263979017462846461781380633536760868144724121462613260882198221287788748380352936885039375849273084325758688270991621859612065632830277396270435479226504814453863757350918145496940469882995695662625968031365696699527852670215419761003807830300061832303343147617177917038138911783993802027704872025186290391287842103548341817389933257475918558213849623920075233658615507350959557149847066785342701906585413100301830077222681787148899355645907281137550324527766120186447629824235690810287515957337023841561013770913778311250312986538019760613205629885748022436697386735632023704022832806392450401933659126608843568758081497987589148702345261634713104590397346921003925800825927902382504179196350981800214395898939913557716062877660739863649380790128960597359914756746222002164479551183229396996726755330202958787600682125015824857292344048446960782714530297150739145952577414223487639845155424215324698720694417452687274759414720224147213258793802867526568806396661546715169716767197952683628124958230666916203963934449863034730798494847183070459012954138444060171192692115387155538342405019995171425326054765775738648979596684484293347465722630526557134225307717452147712070892977672735641575233774388281173704944769664711625820074609061253624323015383378469792879143953381985372658801583070825015252572616877431042112315883570230051559133230534826910340073988301984555016281622746137873611003940147792927628599880928241115662509837112264446620530399066395352694552706476908875436964192613433465639449377042882222245073603124347562797533465316202152512401504298108517979776238790515162536026613545727842437410458306963817104412852615222869123775636933742623888337437178475603851119815417223218334278090686718706971935807626247875987341339574331799248575098707115085990644856015090622120333498381606862600679065983533027442009087340523247079739061239649693779752812370458314587543462839208871758936813402907685140162255052646054746661295944129436377257098016917833887092207649406620476015946092382032254458342816066364551219899528211663196976302432045788521939757101682454959340566418563675332825219860815323828366552415346636518442321073100064903190318083396199022450738980682834458574977722264045324027511182723792463886628878086366789065944363314797092748246008428884119759375546602478326431660933696050144668236342258890801975085311710146610058498467349296182059747245038477230960321917453651095745454615505431787645396467914916717751668866547371272737349439352295332700917050606304789771434349046733664412762561193480054616416932901768809084999732578159540091106474655418514034068173213843741136837252507313885908880589708939420932515977950334379278539858359581240056472917892219850343331451188847574602149335390897104112402141745268822487879740288953689467152572675442671874467516904966842480954569308264233807702262919848930078961283799939409422718824414167768768805711938550402029122669273580524954801710733145069890939665103713204747725730530652958947651595453252748403078802214747008111875915969111491315275900998974104589446726839766166285610058097619814214445710372674289148340664538993217784148181059444046751473024361720662068258006478661073250045876879510216898275995148220738447721243275237399813566918543661457853373100771168549757462165738904915188312586204708376089803554544661475344125815275145011272308978335888409507580391890963827146938864159422014837398670750992273715216417136975422068044886501217219085073415442818872098410185343484544063930264595307688428176527025073327535826097346581699568045130740002043553176424842122508642372756736030290559906568793732709675112178087337467050385601666605860120474393232141489397605003753168776380906707242696313653721956509133574573165654742929695447563929399736889700362481983261664181960106129213406957765947638395644525589124086742398549794982167962672938408546542568590565053864914364452791532914310396844279558036909364593880692626723325560999166026660796581539971659982139897960501489823996738109210812032435071758588483674889479010962875550583923645893400273777755528016434584280486459254196811732981999454582943712031241463206952285559713931426369247605067580679040448395390855675527897657626992657277930387387489587424298203197725180729312909882478602699642117563744007325225933516962330533985318607453267616627315538690271951165127228744098335921700622345244973999018245992249850541587856201387888152185497076723088998916856497955006969937150663899357793240646375983519135132545572893827994209994794207512538675974524662798772812463673006667481696539164894856219578415910064918913206766329703921700925242782803946778473994419660444592812920242730729420488972337729716515765957111104826833554863657295611730903733901521710498886501111686131440418298165547902070502014234470946289538734535976512246616279480156003274318748510188242991296216027481699861994666502000625776702657980622401685450061035291284004176219464906537945465444279105725069918088866417064160421358348784714275396223822085297494820841800366682682319650473686112733353050512558446842766897587246274159104432730272541249916894406678870186182751276337727218191433132658542951053810419592739130853381945471024623968504125774350279234455453043311111612226121474006230189354147245084488884689779082531313805209971275216518562839303040894183880553004772651496826005853615975816333213904819133847011138986308753067771682150734605983659624879331556662713921877124107574240472398695309772892546571130576201911235727407862168116670593548672366584169721673912380019908304262475674616850838331126953964236571504160724318767585477317574298062600327539461237131449482338917206497078616600733828470575202281432580453616468260223852691145815992922687758933972140971755004448697585693787511243705231124738140634980936951617290461857542017924639376620581116458273933894976286448434489578065499460359574987605989464401035267837736603249750958563584688475082595983159195958529255171586326073185514205214814754353519171528975537402007545726947418514120165277827897580487419120530533302049661978762685914910992012914093109460056500749142115687422325448202576457743316595174653782370259837617151892574865401883336413966004362115882506142838813198102335835417378904440732817438902791236784666597660082021653803672801678828171660521690839530389830633755143498308270656516432248071479035190629253423668180260983454802803021841231574779103544659685127956317818165628023655179671724834612776292282705151445190386804668564197964258983299049957977761637538009048824445325927425054486184949213434052624181338983065782125320372891667887735375891463719468605569424010215268140113011616481368150632766577724395963643155685998832998501384609067853889040707104177819286439332627132543016167546875641247875228006283581466823927608882343439759616301212240641701445522645957992535810130784231627831128105658605294319546520384975859697577026098560621521661414797301482088457202164820741914044013110463368400704156472977017044545832327550992947787119717782578831927710070094647806756792130618018306682590385525625248839707570607787133202412671491159729748831380300161194698746551818325529484427556875974003541064722989894468387831481405817735928296163462039292434857100183865836935042448621496079083664817048637738037500974072998206249071441743743673449367084841276836623326740801460189240844903717778166487710076678482355125889728966827162755819689087361397130122183848718175022239368664706961324353543048665662736733065355609295492952430705306377881074939346496964899484289571946054432256424527327363214502607550982639883718614339953719567581311840021084383711813881197825165970713337115469413439412768097102910157849050913541058226016179394301675450075001890440039507368587731490996796959156987044048470181471503942450174808253138240094862446376839245946547717847572476633918636823912039729656690519653110649691701867980644654678756654147666942902041497650941850463081114476490477677127259463523090905109920071798521342493970602094137940165680104488866010506589290461886401425419745395880208657982965022272951833177888076522070525449982306866484758796758383896026767375220763660538925722139081558574299582229914417545208865411087382604098407711166087993308981127241975406135026594072436408360441117933225613886035840401946648231111845914863329093638877412775019756741976537939265287056760695781830564237174388630583296030610295380469220972239028156873188255758906673420865799996470886465246268215515149854098036166707531514661216955114091840192445628945603766176933578799417801942002387992692910019881368634218516460933886422496010308490389611895978227932631048303670668835574737856844105676485236706710432407371262169202486617747246138801798748255154908415160411112984351859159631961760503320968126979606163652159474755398370545997751822589318885262525106588686070353496029773980907785332786120559721710144638808255807623684163747397961286300881394217404442275763679040397784128119703777491640804553209099022438937808209913741037361447743027050358374537260014580411473422543641779129659673421236698909828676964953867241063562349644687449694373558686312600605296584652620669664728033767397911922480364744560441781475654713152171194481728059846155723577013032183959706271470693433212075550938986894686498010882879358182433863759961938537138110612607967161572128778960913041042369505847397235159769128948795949175830934029126902158984396780003743591178208101284896385039142755175657761314364485922948695408941380072019106719692728006015230196210034577032886977348166862594731625183132392829536927935068001021552834668254076923232170567964725766115791103393271381674206707034521711137825584055484416301554321088782190292411433612025016665197727424441154859374181559269062467704903955885948003122374348157737895255764202381303753875146991842631825081990383266543028531916950185801646123936890739287702543118829489685803535187701143640963571998076491338174712544498683993666368962003333368714682016045717076926607080699754287831110990726576231502067289054806686781535666930280611067476896306309689801680719125041984154813657396866188769832277787025398513192712270942454687074798091410382403461567033877229545561792821135782459598651838241391200832980985528181741573685594294293452661376972357104466227342878583397327668127468117461152892536315252953547970144172352600930262019122376347788238998055770296952147908225161804280382328752974687753523830725694917792219331787605559368528462279428945045085705417748818326517915881806073356627875998761120953549593149500498710103394650317529256317061166629843633067734705232397485699015066759091428995030862313977504458290607257980202906649205928740626968071154815625507512904926905716574664489943548593154254504483332669603070397298379256045399688130031751212166527980413756322882786582795404727423281614616013643717277845018692005841414914346205379055134622042824478038676337533920699081059896282149409590681038566705411426815835428485650587932092999129022877369848887511472178345223177333191449219463276403108413432674140310926712211525736540295871500364731947438283665116466006886972380766697070233664941343559703456329091143223607471760882736353142928290155062415784803869171198460734699298452337745666644051985953135426253917015810452500018777839457665215191197834650128644720035935333587814197240279934962568913287604585965989835818081762483269073986297049450160061579482386369387342192204292912883479954750184001907388361794769402720665026697017050271360470743617423143440709752942318323587670806138042277081389043737475666225659067688526271270911431968042259287744145569259588514892604185194270348001199619361038728084852942982996686802478891473596441674814278249159021268951542726028863991153837793585935369884291837375832422865461790799716991987953487551828912184270923366062910252546600011559195695888461210027804435684690507184573346614732115086083434878257841061665237030290171575298695426925233789360905628009151266468549817027763751156098420495175013752115694729613822784836002293446939665840845422800022810830128903228026007226906548731654944142872956065720305767635892115596293324243429391918889348085741590557708035561313648605695391545036312348226292377004880897770157060188290534203506697343466049807446224159586736612691796546700313752502874891311886078987937317725980106932698543293600431163741185958836175308914660422446369940646895790245628311017916838302955928116732518667261456461205865275455069740821161654540984102108890489756996864508264793768519039220541662839946022800820748607156518223573090393078916342401634806169909759036544458809619920534233764313169404480448545959022646593132865421174331183907257599099749239769771486774229860351285627073070440319836624969595648762286648815447206427996738056754892754496888919756323553779127667123528211321382666923708309663991222340983192295756031177328930596959776899277189555099091628928176791488335937337510122740794293227092679162110671976558592472436075322687222047276693177405988885944293626553180999658201952442484568589026981487453014056011392397094940084858642773969100297521658380439959888427452560197141249586707820578368788376752163961714947195391852836697010518007798911771162147414393261327554222400075509586359739979158830049220139398576080732018435751462917046718084139323782489868674349406072264150292161810943348009509173297016736564992304789453713434670418634209016052960536313079986388815207710422076190407780126898152452637527004251239036854692166657647032952269594252683561045149777144583749703824240827386806092363721745841992526055569057594505866169390841855009636606395145523866506376476680451298420281555345155991251843199978089646211820873137006468130573771395920514077116836519762939197009701021278954692323690218479069059512261892106267239399752456286216187120236875889107944692906244977604269206942782385792958521493825235001454126407138266662759422225808445646911716029255819916185457614989989537265320883556046062388324892949727281836699859832400441862908803272842536351253201828147393551566811250828296583026405118608984283981493526344345443032092132608656785104886671220915129382314322468569283670445901771650093429679142058089129417165665012170433512390875446394879174645232611291134644702009135864859974823237478485208567548291582609173557505844904875668569989481278326993852108254649477717054653251982895230371810767663011443134712548579557756239730254923007537857197245584567738082307583318609349998008682187277575303673055922353011268184909124570427803955454892184079021236432875733204917591826655433497902604461250834483731693089111413811998680939867715716125437581068912765773733712463156251275502523778093505742095772350324776620780208469694790018288752121101516117300464248894170654415743029933870925471339700722233386338259584556117580472848646412724213205236325351218552649556259215544484096305402085136283269329737737615405793814042769194442791477956697217083081040403613860970425665175514645216348822691884481261419342127256397183846710656322120889149476311662404491737113067811665408076151209476967023604197888647922013830932969129772562428320987439549067972154507863501581924946954360279391019968833579136393267753557716422070847707715405453151538337481538893365893363176420679081334622195004583366948763142874211787555696550659876003308770728442571543633062710484091007613277900686893190527865538027834972783063257125040557147204345965443199769289787191073824634120871481385213846213928369551378086389509381672181728148746002312700223021410988213429596208041133395967888542222704585643046205894630385985090600788968057351356703941944039386667370553724834407153966673794964682506549514575412849412614783492556322908563161016595504421737506129318722345690992767073230504871150984291310868036596856474580515684148487015710482362994714069675356231669202530894490912086847052348732283304488363014893038927877772691916952010378756790476325689665947883589850673697801291195268057808097422871154822425112981369887710650850928244528411089012973830678165301736010326937458953536163804284410646644985109577667017603048233385771560601051987654927407532399523864111358550449134324185796902188198663654849212257128728662213607602202537351742575851915604913024355167572360875962629286946246725139481533730585415086330412227031011904576542787088817846309745535575409494274398095262001513382550457735344478208639865280763790180983562620971831691074388485886178352137415889216184285258893667811023437243495019864520944437361020055739504580850213205655071612429813956545995888866015693502428070046561095769970906432602977225194716739089663281209677768394365581563659754390265216659379776230452274161188150564636391976829513584038724371387907529155171179887375998166303182273630007520473265386142390569046937883249872703182192181404149744668255456085443673389879062647928547014416283209847318741235070094815523068347592228320903665919748950060562276961585112952054004490436107025715586445234943867602025914313201000281360880468583969229458663421681325249038728306205843068720490897808876738884690862752917472064893880487538716498860006679616542359306722500411341721893927789482929438106078009178374371225456554167566096304280625313550387438971931525321941535305276287977804793780026751330436291051580671104443400174543922683352613194657844866869615908346142840479222678233737500342673621284419785132523609709668857455818610470528891609561117172120051366143019072870913177042570112457602954357061537826034613743477590356841847556574533453975361415874944078650960075873238585887206620846115410643477630009277026840012679449800999538917253935916718153590688295478921427406821280576369609894960144179349300262646481247011399200457167207686376274328443931079103408267628286876292580985799958362239173530244275709047938342374571550739026553190685737989545500367219197388967847827299478947852205705451811876496900847060569550630252516012808040644453676220069237549835958435960320166122750271873939235610752660979585482694084943767836211734974275017535747269090075804623566040527322343452813661314703987300681614672802789781229466343002827333544337317212502238487313624525694576572023683704901525873154141168710088957971643606812392849504862498199414523457960395067035906706660720169660185258942791864049541430341913223132395596660710095493871490983729877865871649347793153436663535355132130264113597819801188311742094591662501394613962846940748917820817295078821798413360690894264704519210279723140405535710595742491734670514170354853540494404290779031290496568204564711939867468566638677633207418957621273920563585835791019264082540815602834819930127351069062451569620725707288785045735775516657225864786894950149531324695264545145009111413480387842618127153621278613994749719157102600591982439425628753224370126053576280034354678630017876450636478489776600397409558404698104479485188346410199740076435670955062471510708454926719477891965777316151036410642519739250295442695858245547287044011479705965581422491356378644570870748003031842337967337457617175964609531227846801477570344795481345923122686140868224326734823769896189909187336644835212279989912611532669573190306734610051610938072419779321726885848389543782435727310921098490756891122636737870619752266645594238428083518813340321293819117934858895509978363510695994219621476714269937130509185608106230928255522549901940579947848677591846128960058229332444485167812361706328679454349491858424074549261853243836951911629619442771130500828760260353937776481241336506723980091373071607939344559901743465989128739921004983449816202201249166735503086858465410595234233235320724825827759247571841687909020406333136944855282030085060870125276239191349353556513168823111885549595588638744396617871161403438126435904990370747385243257658654554989291756317755385406261175177137196976185990630870675671562810968660086710727119693191027317437009637399944172418165768117812004498520424255219988269857526301929543082558115239578461545335533461871693399377824377980745513482916343051916566862190982572230208447521265811654260090852534902474039407634484048269345459831670762538224141097856410728002133198709415879245194723965220881271153444483444713204682707763191684016471930613997016177695022266976436498724349950582146957875843680104503274478400181847734639544734632997708052455567227047649426738177982052193033895467888378322741849819770087787388764408103787163390344700873108911116198049257839880986122950418701186113061516196265442069783451610590701505461311769104635698669987335267493285677107542784890541448535894552546300581930335109734495856403384565220444278511269525642975882998638101543354908155710196719339162764233364424660048049994499039353855439162343204941563313285609005510930715331949094192573082959781255962393001120776187684634941702408603313048477349451087507629381961803365583041299859730510449846476476852468653542887757979797588260794276785226317460156441188258078481318508441150756101316346077093834705480376892121910610970044043864243538972742691245933940287113600315898583670775228304595288600336042796852093866880829951084629212877303663213260903160076002867208064573263698675251731321461284838091176294909979282284006145079875032287319885892399954576047259562506943242728664324966536393500756631814088512071348641014213270288855342761829544251017789322181056547757526623338425178020696791229499859465931858139470651712911924218188271746158460208229451384445997946726963944212910273416844122099281425357411714223683320121761060408273200086953217259727367042610985493575969176528254038661679288540253854335833998830640295807571831679582079498374327101848327660523845122492128315771567332084712399070953991905796801295500074951335210242492055444316017160157573360391251363663775520624128867382364090899668471022129532828998845759974529079722474826299915968697534618954260142909259659696976925047192872759778452860741500558512856139613569938436079158891114147766598354311823541634785224371225163858134206682986403598387474174913792994657220694356632686722176930185783123291953086315887926288999108300473904460378888412160439161664824152804932201960591501971161532228610617543686086530139444238319741782500056442304323128619831401322404060756916821877095912754137273985121645230130206152318701130760031192211624393602496536241885345685018032139541536912010218491941360959296796739580341515044607695570397170073178512220778418020644420054616164976021750012975570314753847929594451573478826944477709139409589716977286609730702672651466503972655634236562340855619244046909867439750928736365044003647616704915475636029493142355027897739140431974597704429923388996092826762514107475358024079849075715389340071643153603813728098603295369525033320888459906788979064399920449686957892620780280646151315592368388893937687910327535587515477582798738094603315212113593525920024809489283441317777957509555475309804045836933550196574551006356291724440286773945253233867920160211403208465867500627436720301294600071550680812911442035936405465843360801023878140348681424639155987216991411003486816488444867672444113366876778874287315289218422613867182601336704395466281000500804525748876258253409819744178427567048537754156138796093449783980677431789478920109764164234953604936773162570197174003356726693843414725605145164166315442655557741588731781526347910301282875174798919923776453696698797221271576218897692546859656859419066967632435911547495839537725745751283372690219289020277520973672212367638255603579192903347711321515093226143613246436078686057011729042042422826814943809307452942265862638035231798636481317052757391886226228333892785858279049547528271126659890409621262777555580480957755690254969167796147203610403006838652051012995797179634885062318448452354140553854487638080897035785836801844423221134986943518891205370464364429142858411498584063073709883386489489210459211596561796131133723160233638717069284413690776767277208459492054063470829709712166049036672455359518072198372074479318362040627419400309749237406309727148353033509978486594667996614993465985564199190248307207589789004292314208246530484563862350932384502307198978948829491659013010558600121320080582994520469566218909583104310568780282772374920919014998186099820410023621193179760755637551096837170378616042759964319381077929287534911875173520648854180193741600974493890432597571520872925820276544705461899106397731733858253348629649624356703451384656931410048690239796187217286541084653785664201464719043806530099704061438439376912764162548260147672946995154957480602065881204710244654456299874710663490927359500707934887164283497543644965896531279533085039227550060988167064811821321253021209263132203769862203756306518844247801392425152517005435086879429911735112805516320054620252355237030414108084543838811478162454908160290928104549370431464069974897464683376482226732628814225545249341465605696123393852007000037549513736651516921031957122137728030408727206961023137069912936183569676717373434657521553572861576922362077175459783651887208128013008238117751833313774728953798316657076818336276329595784840575617998003389772910510463655983754358155324079264153044393154723264361049952449164756040273559479590360476185822467330090108823774930857635368705293220863566041408353942675970080196366558877091486156229493152162132717495117171787925171959418513811819594653167717674138598920371113291391309843453294171152551849585869913933545856098127025358552348787496706537773341287256222331756609061695539605087976777715069763358501146649891485506523917650869500446836183582238779321767210956898217217086365343250624289022349741316715524078715239063279571007968228922290588254435638907563570378310414153968119885717534791392245207988749095720541949498549376736897812237054001543229005059937719928243634717543290675967316018662841044200604227799741883776541422176622571652113242926241779774492026812286117511881887029734117062855440553605238085265050652992201781388787552390340032815400973899238987212108065696133992151864409477202227045147991174036242043122419698621763315230869792451829974366806228428188641544505974957665088083832655868368182659842652941186936698829361031613590771398477771318935992830820877768897751228819060142661603499213077322612668431764898182898135188328619294074002705988955332874044920484315111208886211132757522696073153129896951331174032197575770959786765638306213418247386056833197782334462218413390386455794463754665652845835735791567314668592866179528251071058077743520039212841647532712175431071353153819449248852018050368224397019810533116841723566059705815996675941598119440715275119865094607111581982026413411924066842621394072316732565093321851297312919983812325830145862271986253814105008412641886996864899487628572786642842942244124273605690726823849789220290044162442121424201463620577396948787195251538396382918754785581721833208417737943388798586986315014708609228072518046377398280577663711138437760897051861380295044083622554709391092240197607756343519596581886493774654845996794617645320743160613736395524129676463744215540212562709648974129799711616466979533211772453081470154244335546336003265403977790026977488308882699758751126729206974583202311129315478232910315810867615790427228750097646897526567997952677378859784050155281085859427861167043312784449531729271180281731197187043475105615933409166616693403184992348464220289328955526805460828192370218260980614799698332118469038114094962467464967844507392739827031923011926685902187181558219409436111011861886583442230589734389354692565855791190879475458969689073905375693667349779725961414176970568051588527153217268529753108288565983287950308866428083424017221526159015240338137030195647568923651238526237843714713839088832173653786811274909157747581422018829619382306591531562211614684782107606022989942873280172964840560396517629492933823633487306172918229321211827559287026493184209622694424155774620674106988261888147835652331730254375608155385034517003737082862651830743046842797608799229977734677559370950754143813789381477816886726155943406598741888377107359022907255767404587820932559009018938902536041397109440521977031991109804071365008338161402688028237758097558310335147870839885682587513107006093731438168963875795358477521551704276108550234487664872890736520667808364099656037913789617827622519364263519457634545862476061415363298528815383949129224031129990242812653534372325618640831205772576978437436510700350834385709935356218302885513507773633702049095759561215076192240977196144687352504457145458491406507599194135789178378584173092263035500081538365658342292284935976705208202212328791622433116850616505857037029419029928752494467277594837635065296426498588369085866432688975872453515694207652438275091374606114931990273836911605537018937484042135424549761557769769202518618092244266250462659029294793359580604526210228381748506210585172737132006436777662521462514667032282102390974526657581626867610409677790430314756040656016943192597761372430945240433023486807411218216327115555248957579247389055631539821045113403725082312214663190272075479492322703043386065585221697123209978889557038469424857417749986042135607394522945873950684192413273402345374350015494739363749888232828188347526930470769448048532057250554675535318654418458008744268198247340044693948490938042871658609227831867679330132900453844490973523845039924039257642474207200715731507459823949907468158601206290853245925556097651292800309875454139574849811471693351912940532544233602191810291706668131590313456987447604308331092329454583187100715856719130466960351737744169677233198173241017627269933712801564364110302943398671774241372249416238346460578168008644171050753833153489095320832829118935485981407679373007852950244775027849045281716466113424664150996141806989234759251408576975609267101138699718727825553729162550195906217253610609944174410871580328634139017581654484852429011313251929667795407207643168252680584811998407071560303855167689759664723322252691599276540035188642115220842756058646244349426583596952739641195639581839432581759882541504630421039108656343430191446637241665551771676102085624147084438106408589280697739843377584534269450024652471330796467503887769105605206361940393544108929764990227914842520542472861944955198700024381547152017576876837457542438360965684490754205924605063887594307330853148933028540791908527330146751803189545064461830344189616111108068656265127646127129784628864468515073059822874874715976186129733340619641261019999343707687519991841446359553645423642315359764372463615574623529297549751050982081252206749863532665126084485154109858668291298777462077872667445772049014982490113969488322659654187905689745590079515096685793837631245212774364007819277744547481734745756036658377609541998903225783923046464184030195039059690423639305663142993578408745663000274951706761113281026879916740447582197020491039134873131520151143238039052292230312500271251446521008562031362669832285654133402100844402357177169992094622184070070307792743262229732150519558450150397855709842945205371567687268331654281696912988399817218072800691304563760801224971948544943296289655440231395865788540435881559469203245070741033206214820733672824197141819743939516907757187396100300659717557168188824243175748705046454911381106890190163947616689168934971952788918964683559814145937886196610132682083160664539170925926890016241224741692063342710197226537078185847767873404145063602289057234308138040534320997118421617341245006062059048126735634208746418879363098368774514337171883025740071678998953573482199586571311179386734260880387730948018186471876299625725598236245529249271462930741741939174301155916828351280386751303991390941524580923950428813607657174530089812891786170367908794996097397574204469521936653509131558794976266273449083156933490641701523362821457008711888685506326948423047042455767735840340077009685930693969588604680759903240700044403287948767094471724025839277819944549989936713273449442368093421705795940211767834693693224623947708476874636063896118290625227149749168196891260933334230108782830912023371746191190532052509264224924874148038373805252864372550165677562520662803293099011941539882234086684264450380564405998248783924636303866788971716013453092915823464488300069736533944936069973703143256944762535773675941535504232950140498563935756211837404371965459367848669165717843595065950708290318221554762446694793411630243511739578538182256287639779388565102504246436799417105562542285738758121739660855379973245406807877643344049617539776848398165139223395025981679284966169396566355222215754173959537563728902876940470353911020660878823985097153905195911502361346860098061892529381090794228221943196723175156329472752989328783777621774392590466976070447617643307577593056163535355224862877471498955236013766525828200227764279262563115982168804866953623618272259295407491093766435492365785398980077364843491657833029527195949318598183570757978306328604469180253654239743422542151764418376502442496854302486104911966443684290196008487030928069732306523833792337988602400468382146376741759310471828486301265310456382223281671711395286850558468980688790120798503102998990280745568282981244424403480009400166185008246258594185759815737051646957002582869998932681204957748709235547543509759067949122360557524197498648477777252839715637483156708101021139789304638560511865780501975451944432832335214225893432451778513591318376400636559712447907458375131709459544442432798429667279424026435549681684704601183997323304931546736199607854300774783117430579079988914853509628300218770940106696309225468881767270845758235501393252347667836262701904729145377276161088754542161795243099700064095970300522995470890558842026883678322893238055992595879613185445562262748529096230513924094631467789860693475046866740079495891785180304866362075474943479485205660364480307941643232003815222967281939310110153000000804816972989140309011444320576140406112390348428405199864990862884434882586557312915206159283330554924670104663251213991861451874416353371458535202472162334225731511936750334496819211462700940241240522264815128962831566309798546686366599644239456326862667696841520986744896937144409620866560214648353415964520246001030433682754661660373499382502350692275375874923755203343408576508940186851130928430165362024142668255832789602785305264527126629692901586844667446772605041794592378552916401823610398197494536831597037911242981803895583015398856845350222834583884073468846991596443023474326255917067499797382809869340665952187076922176111082008078426681876747250817631714814388895812388861319027712130159242371296975795811356654157319223660041720382526559673263915883564158732083044830797719097303789414500272273110978053981303761044881068190683705005224938114893912183409907759020183997607281841791991487260583369497176117142368660316820222566662516984200752308623141254933195902521943694159694163816447363771574967229540049999720925508544098457277617077216895745948635024300864739348079350210572798557448988585820615527537001464616343502357573310656424760186911938804041936740273799988189348489600696955301681312521073021948052533601474352490072802831129729719282850626773614647385034443704745347659057170002468431544942892633675599355351466102951464062355471740250275580716161634621516209068277106215023524949361158912246208446514683004004814405958172113362872744678234875099111788248339106616737604920709935282720295944874135284905159286253949311940548473249599816670269574886473939002453617874867838835697751986044774495360858328993820923288328503557139488400904313099657008594016950773294378938146197285433265623692838831619461497779712829737177046999705570034538261673826549969678014637122308787693600561031769760979929469234050034740168351784487566759028332593012475671627396249871931383683924096902159037313828428984186191509365047024367763856281347335353375219793084925015415830080330695584149408323492851543183165475827477626348018201102264747999628694004873313662853779304583400300803519188610230044338037312208611074201673917329067245182113183781927018672151997033328282507423994123433597107043636935775809132727262011805426354242272263114698342568234802127491442783531070008949079590889773619544180674941108449483332826816962950944147305690317410693164266373867665049599109823976974051556167863901813429033206723654791129641620743557151317993435506653230077036343206652286620030476546302584280239485591786551371444573743725439850464635218053898895395416335086269504889862299972188373680661451664859542154583523073523820501330610122480022801147196166553770159261442606687895525101133491865239837868842325333528307131602508657194312343325005310004212625987541560442834764068021234895560991897415521973887129861744347409015638349951945169017390769214398945084767840454447189906482769641498790607577149573954188388852791110727628613664849643206196063733101434734560717501864259840820390396561055062220162859594203968058251509597003285298917738979766275925887160943912290809225789478418923462428920007703279752543545870493616835924783997460653338572157941891702146118301927728477880603475296605248974906156383510544741120939890976722927883782820251955398673329277866532714773414313663295056895594554515132792422163576839255802552939015285048932918804570442266670556958415884918345005006066814921740329023347701717131475357832407300472408839902794538644158170143042060031816639829055860746151274188599894378152953660545972822449953387251196414969704391480513468414894652724484355723774222231455871703273747655106812597344073703260165397434440327645685717592993524653173407898452541575132565135910186048196829219976977444307519169618520097007131710284178350868656195491543316264346747427889675877453140300155758545716710582998767413131903477468327402067597701776332825906600773786640417182739062331476061730197263943301564511162824091838085857206756508239174742502405048061631127078871476639692333946756635803266122333559870672393128346204926867045424966481000700248088130827538601278657885383784201988305035775013919206748524534649724615423477494860448496556375318288237307674152377095015141409535551700735698162852043827568930876721727084390109298462452571917614875168233851054092095890689717132015089817456528138413434459149171971441774632486628135565850555771084621306404119457457760604862895506574029628874435174777337911976303896403603969450676935554610044148205370786196759419812259300853968264063645431989635302458070379535019453313221724767021874732421918210382570708688013382930683189534549042071980507170716542935880791156032131304077663493391374775347565729284529695299512246696274889233567534817483784023095631395692916806398847000851034288005638372328010977967892201475712018313622138240557950039091255295950158180074528106829149208161093247300268850265254189242075389416146199018399803863838447176012248571376940738232656626564307605622628257183277816775081671810532079379133303136843124301882227738155476360626304440218434145804536362883840329731134799838898830741662055681954077527703510143226356195985320549366764784246305088385267291401566868289552345517132948340358952278146808120577634170909187948130337507722958172319734386760993875278155554011954699199209344314791200270197389371335155450503326462846027660025467035565861974599732272446999624551760883959526537665036985995492480240487790977857087462849995398260438659446332948750874943303215365458390506298214614657432177963051420192001117621995738628424562477141298015742600024392545144428527945094895304677682463958643912085169625708454519362958038248395086768506189516002545563691592647923863815513642577382233937312771173165631614304674446499069640045999173177658767404543952152650245168870594570103656736183392374934084959483846400427645075284406210622071729030780231949380114136395416234857212713021355096794963077765883209872489071084673816773500210990550665819769515179514418523943468650491721285470560283510591409651380179297161520977469477507568576943075046259317391936463529074483658681160960720960121241220099204118651985616844639871763174018553201878512286043707145854476955134511273053803704385659879426831726521511047338624869289635915977407897806165132411980799929577067681471919426765926669263225070616406500379488544347739739981393359609147212818841342850217415533050224187439002764210669032810035027062351298186879084584066739351464382507487423914055100726461297901952022212878732676592536735956425149678572081890789563153777048447252127024707901734481068332275301497469205968633466042702209828885538757628008328403091847988569131331385525492092657212533646284271432136797917683289315222082799623983608923384714998238088251916439983811317250432163105679465302949509367267612589247930159677346607659536341098702062426737619077317432275313580136562719830998184522506757219666188223000621610460226020989956960541261679919179689304669956986546213404125301803798871465831686302115094016089088918096120619999432195808126694599496825688703172564192710844412939872695319231079031456425643950666516088432474742546821666196738797745174268955724026034132197264532560515406778279580747632986302440097904763942590494699382046060729372583549462682880836398280426106774939037360199112555570206423340515737431958658284441511175548506470503504490306849073624986328276702809299452631131796898799768421453221290964727398493695750886794086850702183862691100760401422239914284259244557690250345143834298860883208732982475331050010365339982142891203995129187499321047484666173801055341255952463005088529023550109954697607857813008274379317217278058938524400046200266205636477114327358800044743721349773105261537372020032233832218545525204191666534826684758672086838882607209835779642125447671862223943807871871670206487717597044970528648859597764306308185046272696807698001638968970533358585323441855140364970288430307334685591644685257532256572999344194181808479730367275005840661328629422159933477370468668373519774318409005033872273723154458003382902730563520883982234627039520959884576396545465431211942199476589957848581315490023881095859572961486568396826771935202419533416710500462335295034214770910890955357799355729668662485441829984281087659429208325958439824125293305553612878167559080324634716563168362107984595923058642890453183537177654439312078857866349707446764598723061051235265397768708548431395116707936144430863313076866309137497396514250288119141213327146271745998944570313533489500827763122821078028779387454174959277326877204855620528242963426967584414335306153161401797278674240081076705438233661940506436903100573705014874905750172401620576696121099109950432928428217896265324949179483922672666638683802245675004318381085763522475661143264631368867930483233294753254490281428751294834515155130504454407412011525619437036130552431804634669231121626380443839735006229446765040592254676667913072781975457547418493791619429917557425665498632567939051859401885353942374588577732490249344494500403157573546480824258156031348239812786131497370509346494439020665384712607437202143735188766955597009664922066225881261419694086874625702657973761481514169541091809174227105946129222479527568127719750995180398326388366045744403754395081209451539577655746476169325687561773904297867953136111369676131796700153796334605394580003264070706139157477312861954006074269108753486852354106304569927795748731621094952452766916624033010076204961883635899107295590738664537670862504660307193760133894939115406498180802125224645548071873133211353515433162599601622824436912970439184763012311122903443908319523356553981986279503507473992107137439522822388478979754232306716703724078069371329016429688960341856252439266090075654621997930195564205685757823554148089506667521266689376554894070287554560526056681884522006686001049297443823351405520410747237319103591647137050936253132061818126612324144417639721778597745550968807357937539757858089315893268988908489458211066887906653170989780897599322943039298027340166420367421161768899429985634268102298094776172987530429909407848956777756490433386742484013393765435652584447392623466815680988116694627247797728770716968412253763439451811571254795653350552334806932149013694049511597932850772270546572751223825547895916702869957098037637844519455244056634811993925274812875741981998718900723769631606374797777109160591849285749435274791381269605654139983982642956263264879376193064431583966403539482986208663194628534543837089065653203351580914355838179406638176186055112071385364549685118102684401403408964994462371683273261611666988131748340290745643103916718009129205021627277613065924444956749379604622652031016952563310968224591119150713274670325291694978494997424469804431178815412509006927205986072398531475428955332232947224359120259143212201771946141007941499648359878670195032283829986432501634294752575235242722498750073369664287489410702677970018930319801003466633461977285197280097086826421022970249462456997306588962264469927606017675619400169632603555751055276085433181043281903793786931615182468381466817937615471350858145706839238353300629888564869665853532768394022892772297480009256616206033089527334902886723560525530151215773635186312821603904657496867491241448698321154533510501828060648495726673181934934078797495716871422982952112568859654717281143600097036787164067372359080685738575528663128119174599456998495688664635371638309137287785770347574440868739727127621955417220716388767310543257512989521023232914877245166652864927922961709596909284390731696185917340649047495266347900076980929140847167391607469043789853385164079550816424065923438917063893483577109233254752319069956312817186950861574623003150718621111423810445146201163313610334136561539014824535680447034722049460806909884860310989488410815144482004387561517103582322865685576946932411948663105183141943188502862666347865111510005544976380754037185717003983000531942802222708709550028731745756431547367964317654328748344489853138025499688978809707800971829690883742818952670098592265205992310453961685503066403473671857960653368346540047497472996582776363676298333591385685659772689612351831271340060151799932438454930561426536328279676488997011058573208801401846489647950389023667526683316850458456301611177500801912878662766711649606272283387872301483547867058716560069851069502556071038286429861153648701445087425731783222311298423461904401644942315282882998731382647585462858550991033392603135482938389726898248004554360057631349938429421143532803371531852692675091504183786699798386698484789043742810387887464089537869740473970928489501487210782327250050529713010663766074494033841856714169726428848832938655123165719553609615450709701448189261271598801940972316125471301808631377380495489358334087105252806671182432909519587277435201789274257524762248326216933922075966906718298453387105111546646998727540856870092779904605053358590211046316338689471840165313190001503478563539376900070852101313806988491135179248601226129192405432887002040127595650512676158626962199649435462597658417188968763477597058547983519006038374756535144536940758637592893658860119586784448277357011132650270219017089414473581000549052046096218843061601968427702391943659602215062781591151241441267888649367958781229298640221399694022340036293249515703468458520595483486533148648154187072817187732489141183908599615175599130363538611296565619827408200052775014413696181718110418754059380127216750022201243138915403180101984242538231498575870574567001110039097767736367576125966691780047271201510349546114414928844953588631296191784787910721198836156148577858008853415214036959624083123391538219610608924005364241482463889837108180652117615857607049573146546587752594014170577171000272695536978058401264254901789951863809390989980495071854985795284978703423973723582837361879734123620391041746262171898780797605685088756940415843550090840933387516630531398521459112648203307762271330794268119227840839944574431923693388265288006118939984089419921955559557870966028922042115917787434055580444322599099385452453496003560819722556344149980350386760147592757812380779285747341006382236790302564638738334113359497192767452469737414701223511436345247765690068554769211825243733769382485893625181104391215679298948334451875318936696616129467024030647072507213979547154411778383968228221002123134049268045028914562443612793213645158976281995050755090985938838449096975881745191397942280189736400662400127189598545100436055028521095325210588352295087709047032756128696877399778872242992318255042351079924019645892620078487111685984009443506382125935345773334463839363821584443948457463219088903388688513803539171005120494114912131727117805954077589278666483380565251215447384724055483864027466157897505406374919828651698724978012802504211722981428995914605620909915733814410439631692032728598641383951103739155045960008938443753194119261980053966844646071113987842591698250720107131365426349150131449218013619861637769663345064253729881800657652491085587133036121208096389984848640231378385687004951030331300771934957662372092089292904220665661927182636456842236132530304633226745729269229877116653327875671243580647006769198980396454199476134739139770030138046637605089628082793483492322034455037210123825248332606774770959370245641797923456334489123376850608141427512670753773497329797926452090536719921244729677528718333992750722543487018748716248416611614084037584240063988870570380883512578987237949664044350761695309463473897504849958534124757571694521226989486170750382184439273130675181709072609721534399087441876064766391378761678464358252499033872789279917906908649493399515460723976010594561975807525498789554644048197213492203811918601282577766513810339066458420660965276209531809444426811321154332491546664024790896243131352094706461526418249415176652879443424197530071511146533333976754828746936814375882466030069888258914439996592709245766584085051757974045306938436271788602184043353649796020950510072541078036654653604065627024637724248923772757440958184406637245959711241269626234136384970967218790025367034487894218357151005279392176418351962774056470391862432722410325551342436943189616914274908364065397502617072365024650940814982440044392535149368662318946419209426023725220611513704933297032113794835482371205630546975204295588261459161065306779130125922579472945013759633139572481499619092486372214129399520277051955977647650839023681882500263960522885127545920848048830472730435015878928539164069512915460302416697647906268134576522938657549306816834041574129854045213329833995256792227966511401188286042076997660293969938858409041274847148039642151823940935822068329698840373533274195994312635110061016636746043254640399378944441036982869444469017506023273827157884677817392623171665617111401662452818024077079496572688790703569001545326843737697728691594491487570125573838380661881868490611359060339758787982851867869195127045807962883667162164231615510680932213321798467145070872660891471578386948843095994106978823099209138267376842393376056803050366338008279545716781355886856498656612130438033777894270855356918486252184262799894100567181188644934154426945579102691862370488613248606871681071134554864444104042351168320184769027898154761838897010880995462111854669151567697828562076913693003140444877444947326486306263726907528732431791794628301344334570648258367997926335290539034474745934243880941425692032949804607799273745374302440318204280296543296908803379048801645013226682381586365013794709215556460061832525740791571553181809362633955305950349084097558410876431909784363038419672150099264849968777975593434862778594725403173108946989968959416994489475935997126852088102733252901132073457280954959592006197557771281902201357052069505966846157151824281306572008524051279627172585429349606993983350073004854316162902707532941394596367162772523219726763145469370313980456660596045415300510559594070050057440921240322586452719850491884356105553903216674784799987439006633146992889281477215849714689451162225592305919437847382487500971408437754195290042039120150804272134257095482049849397867987979544951879804041533680714228869428463218088643270057946874038121550398386242436103575296899296432336830736928023002532553204048210018195852066043026805354894886243672926370420631716513900860838989105832416960313586717617588778833102992020294854378248276919279784673036404648857279694955062066066902334191117737276114746305759604079027522381769563827723378334020222758585498503995222669914873524294184984046271811552332755879778108045736973508961163880903326033772208060547791490428148365695926302906048078054324849853040273490155949317638893003373962576967263959419100709531831027007452037814437529428341430864796961437541515708254537088863751877442012330937443003415849325985978285185918328976339282231971368851730279171938789608305850638746728086485872422110712650881843125586455771971914641698301371980863973917925456499532385099991913022863424824876804953037165706959467134758655112982806260849012759283257813738563966883005741734618774530990278615119995181325098919439334981935595207072063335879824875737244898902462582232036300756169475045975946490228312719269620401838953782194089474701502091695460853717790258574360823718610491059988531800847617773671294966547325260020027162075225432949585231030911750330361079227504563486982815425375575863872724673501109504980881510860730257228324646062315723774633730073521577324035766262598916018416343952473459309333950859287565235719286827161052884298908103597324201055786054663508579979562911848268610977109132690865224098796004855701594197508731825695371876396367943866187300280701464236088043612363007859873749058839034579565115820070583463187737374908309945311810830860432647993952428253824574049365134664347652422569170935376677751924064728160189105222039664209726346119633090951988656270923217932010800755390452690454316461869541562841261303209891611021571005199164054107317641890566513445017224077230858119536401223029862331225808188102805970805531743900191343854147840720451489268825780278334233182676222556170894651870085747371590931668002215453777108629169196727181841900130363614592279621692399478867032615205799357883887606699622432863732017091554011747668770170271449583034131396116332159507396116862556279271589517455295719573290018577152319308274287174200062308824669586245957689774351947957516561515735693922446804621971028966805769816804518157567872901002012858081794081031575541878405450630446458281486545039799660141789369688751138959463616943096198091389929197759437055009982120165836391092726499948896362347749242411500797812034568496992637503952862271295144484453821436571604347493687828828547468424267060108651245037914197088557055137881953807701645400752017617003467065156100629954226744688166979031763206794958028777578777388190071452792126861094734423870551432134931393383305461503762250853224464473808947052337981092688767404883179230546673059502921257432451906346973681512972693946745544701822037899554992921779236278649042387601846246227485988038204196642627656078427979450447602885582219991565378541026969516008252102233192087449499947195792523438675012581135710651879590670945080959301792209321164357308252247708037149848291752311795007679289930246441941049650207831265426936787173975775351654143142714657298204124157923540364903952059358599769553788257965594213003664257876180256498988676162587251273365955079010980188139180260397341626976640171490112106324535266855278970788800499384806279927490603316565061980821137138807010022919621469001352889358096033938902275659421698978329198574241252170502111375455685029984641174279970210527251406206759294920341750202783218649772079038108546411353140744083290365689407264452885518164541493495072823185076588618373423433163462054360624052903991110484789492582212460886140421452730098233224477088711537626467157276447111528100141599080336458942182809405621639066780629633060338168780153097895503734444322696417947848002274290943983427858859508264708194645758714279468264590632742451337176828465551339225251681490225128334543473063260132267043604837574023728623201568698581540353620568849325922993001097322212776896620657425823632221637950510165736708140225951273223028259268254506795983900933052297094097962440937744883898734346019265532264144985215509838129816722752511357063256919274089884602090579136707267868758260161772106147219215061781690832267952761479636322990579829949204703392696538611148916126973203772285589384584104462269818619726107293696953811287916620114141023707470502739927681034294204068429045500458212129080061848192090733799439586727610783302774618822355292287094500484969210151675060103875615316447389806581744501382919443049660502897698748163725672195948370908491401909012459755195644024893006730863504532380621808218791093644135894796976804918928965286694069232144579995844889654357592635065077400710302749090596416033704151988289896709806292061907360598811819763927049244025455851770547820936251069029891008814406564793908438606219113799092990320737900456239507932237261897712054307060899357231654772011667570719489631994259484204550693880210218875001368218964979818897748830923875029616647299377926384517516507580167036704473192729875202526960931811785826742028309935150703907157984267462614035571774257887145335184398903135042895328987202706265441891345294251316653194123632487601804609998793414263753793395110642968976993818945988616940072586607831647579939963209353237890628091119887558066832233849717889870416975810717752028788087917835988181958324867532592058232077314162639371121690049173960200123185928790138215126055650398102498040345920791634419487205142105037834099111620928448009948267447390891975521991329271772189400447570775840764230686814512248750197823744775059644011818325192599016328986864989882000122469739964511704212094005213117223534890180633209346533441309840732368297557983047760164276525854039334278764744213763437303733445851238053928757434064356051183822294951345881109300658131677721724765963019258576920941988151678108411942806530174955372654606191993255521759713718034721707148920740453123296540159859095284310505736596755151662374507927911335445583515858831806033229628297800300953261310145069497997526903729916475675050937298499555924373324572476508763627774995420260526394851815524454362479138206678266623245288405802044256833755539297758577665911201053952652885703919570329514213626462503418934640268607239971834642991407896649902882619344691487171943799259210321874884306429346443434205730088347341302549507753008071961022172174728109885432437453477386186178465936762769168329942334141398996283236431103137210312037761352147234026263327617358878600054576812641650492604740123108194477993062338021221801175840605225655980712937462987148931950711960845697282477375441078075160309898998961141184797399379631087999972216737925435938519757525355084458095903495153960864555491518855672708476715857385393081394928633638137208701365600869961452182847796801610813584327648197583396299382131154081488803443266611155151244732463991723838988562998933198741222088102571766255933936051147208865983738291401382657631323790510789327786531029963788664377252792591078923837970141349471481119650824787520182780708184705015251565767484314709123415802691249390554077284925884699079752227251951015203123431495729094989343673156854189308795347465092315381298818415588079379172916867109467045009221665525482795322542022905018722191651770169446940916124518089066857154321929752545472400153732167268551784042376930888865213692341381417146658571256465957162714314855120582954255055544750795608862950652378444187222017005596229721995072149677571852073933347071577697580930020690979144201163525875866556291221800879293797450859022167379066121689872724405996604748328275809804326209797025201808939088839021252006916543832899276013130345297534680629916327456845647367152983891826130315205572114297255282476018274905941033888766371497235309714499091422424193731458770725229972678644276385908194590520035904859371828311347664608207123018934009838589056435950063291950207519648739762831350418856120163364610037337343561255706746920595014671898723467870143800448176751879569175703073635180501574167395517960651682138335999737540301246875388428320863494819559932796896932777854042791212727279315871879833980292547456973250798966197176544998966139704198224995416841379968085220251687731548756881652498756357182415252429778932736038615688459087479096273747069662906004875751754501307296721503514283405113827176856854759878053779046872271743153553988683588871573405499268059874734577347631002619616262855321569747210958709481528891268676410344101687419987527614842177677877023654662921967841177977912750013376520062256129903699144041441786137831155863238116384753963215403302676710508118796797336151597498315684075396458028742617303152556362415883333269478067214318940173362083116120193699428511473765349379947067951053363889620828685660083129709639566297905313465443777797115418468400955422414188728227953100170248294484980917324937379440235908469880082647828579372797609630337157904945685761569160143070627998113768922806333154032189729438317458796899401009897602721111188181396820580855451691758662588914295700622417712061625641357073666359212642552917350621031183814965085769312385915421000393998448597173707475578746793878738711594809030951883843535103432540533949506294890537516515192397987752032172990676503121920483025382304752145081138223292828592170026418440465312048504600946922483828174284356485860910031105030905343341513498326094123308115552988470175119636238214496101686222463802895783918060880925909805389344886152319586135703416453400855339042129723729339313001662637427308079634785333241995335952311016516294841913699095870845633872563105208629580424126750628209686534338666469280028837599480680790203488312351280987090516706872854881125646715713293134220195287657877131745865336211964056175205853254676368027354757012298437317167062075588135737872254278362295850905170617552932764593849252805668604420962749723643020986022411285303994467311479271973213586377130588669126275230848536141601732594406740451339483573822102632354019241371195669225008213879400231549153734163279739705937243952441149188092267401221897533638460415261105813409135579080995095314642719414589683479042532470772883717024614324823907365657409820557067368657141368898999135156641778867412782547250994678724239571690518968964407552907561113131229878183327672517231312810599334579741455744783129164322327449224269360248952420618831871706664314345064276455748711842684218368859600038424051545950764955585397631404749218005051461636331260362544295565383182080033687499126024794628398057631812052316389480234762382035847816646527708344812320170695525700615911967414416962838791312606059137831237365356726157616347090736272510028769342385358533512693105843559832914565538589326525628187401844151091347090101511721118524583455587855283214095848465182432482163699441564867641024541557202140062416762962655462259637479125492285130796873499046360774013546279913771467757426497821014035297252405768643175352402999582428427523756145343160652594068510226812775536601475882891962796907706141381080886959816577363437403064995069858230704887191267254205552564617262220558023218434387691900017638556447386977357437330315595604466048738274584287463183135247083028049722403311739127361753586912430508315543905227276076107529936664285986737173070058014960951810622095370751969902750599959986456904429101682823753103376164247806953666670851542734147448360104839013021289235671815501218642957920871005421773130447114416363311656919010445155025226913650604114292735774435143596600510981861348884494469578919415301513197983778285129091917190977144859925378906979113789360194886085212012365588779971819514471721639432511064394006708674362510616223235227488104404168153210910974503958634419597953225651279015006233361936890631487195614439683141623507537543455794854241373404682065597654333993908550488184132033653326926134397224091958490180557694242784235751005438471947654080643085372201533374539209136784424872661915011843074805772733645478794693501895691052027568558859917745950245292654229940057682996116976231104941748981326394354642406085044004349583115580088238886403813468981279468459336502436398147353727959687929428688312639052539743294271624977829707817376231027328764132567234037943490948293392783153393940273812158179608520882213470638727317702612203735333441342919245577393728727640871752543775780109428802045148913586311654106908905603736555131609045442813636962901170914202060812328797864013217782966480378259415057957159535740784056222549384401797864801181348153636639214811827866469829657695180164246419166944505905579997669127238439809430847964687145392884305139685131447776499208001642234763690313566470729609984078095271576428349100295385810329868953626886277977983646133221041623589642623233552437058278901830792856511356862385374143006621136797340208573285086080331147387658617116930262419192811157697761308661393213657598197893331980312987361964516984587510471094127880773565150563321542523831082996878025809363095203222921836286393657251065676644661360489889674950091629247908296324272455113170089653976271178967871802445164252736498480570629119536134473670147511326628728245475565818387033199117061528596232592745541772361376330742602668703971223607990316056725195164254259223438431968833122597430853633175748329094333464586996864676967456505944060824434916270184042479592158935719753715340927492567474851659980320938626460371817609305517147882549397567932241537943948226156928245925030426782904750231993425160689146886270448397244664757875003912490579880028226143296805917917354179317519546024527734839612104543742758562626132894072890540736836962637345195029603150544627026548049376038527259326960091909914827829541099769350538556828589099819179510140412553805173679377734450290767609841051352285998173097301064997160598026075104102177315278052647251105944534539118689263439444737079124877524128604349232836959062631056928923773904815004514865945994068655500418839745435657902712929024964703951886481080283512535546070794172815408666442903435667606761986059700396349536833347529884134647290613563371073840889827437031130771127874955868239972675646093671921837024838276321153586787794711247321158042931668749229381547851802848642187918450409257859488850198923930831861150622831575037085250661639881795335048573001683636643600060321474935076088269017079272184156823219050262154306790003665920468481795414931688280848048530801288181285601826176833463516797051177132005855858503401955332500747505325199003396254038993043397089150524517438183435103439628699212894428274828317283317953708616711195115202289152287390829175884827181553165033695693541230146828413798703086887305918472168720112907982684966932471260695521944943090217208803719228964202381373229382812539566770285374930242071308638676194164936525017294818895358876686642329852653428189021422902960063105502130721416641262077524184088012445083469326085323632864605593943947572791169123074555642350357986489912084278988939465148112893881289142560645758762733034737863112285737824824483150472239532358851104607579495300248574366882214820617264053335249165154316857512372466100656691390956073517984930745480565381949926112405109908277077176221114217427959028117033057275878616529673845245058513755335635144599955121300594890536176909104437838970472797743895066050435885130879835344063030262663471293434704513805778435486369084496393291743064801100976514787956945024159384697354206095303826871195756739735256063505883169790234908451964342964793751064781730258102045323983971718901376834309550652994088256014306054011088093537771260724768208750405498007156596582861507195150851506157460565248003510069367050391846344843984555466377387911917671972509087807404322446140520172595644318647066818706019530198726326779650429903416837749985070153313305149588734737293178927209980032408368133122541394079993387869823774732038783463947539892652610742302626741438834111815043172521866795749620255180026688915961766691011036446937011848301769989506771336349866087778057593123568243986413842519851968205750730765718903716214330436789268913417087592881922164945204615988683740307676115524388152555701394555191026144495500810688485759304793892563681458832084822504671538628210918591205547038822014730409981889306807873212240460654465871809739846529188104315298992220748067435499347743652597286195835500769608689684080257036708892522401370353665486313045700551268127638205134449301494034675383201020776216358505802613571910436492710193529015349965318138975113509157533043557566666282612375759263148172925109294637199657857762203466430299641333367352812886920709164763549740933580735370432390393215979190281629901778050942013000615310845675658990165861262691274118837246136494805102927181958919878094876076894471196903782807888561978616674124763543791497697195443939868556686437592101097132451014625789768656641263647372783907887347273234548129623657195088068585270820705174205612192156032510180666525437377409666337653499736163540339915855619779473303728628676267265855556085257082133128033199750192884627121394673600548489092718501741879642317121348300054317975813228100557171236714623130814525883201685306737947086732230128885781216723756513228074772816730603256538395546229043683769744375778929710000977896645578033590604435627111914839102037685115940146453337098085867997028657594251616142801852948702197138472267447979350135079562243201552392075310449006168391833233430868589202042484194455315398075955858166289502071806686591836373603284095619798464712344687891514202154048870866067175084015772239268375688527380289053563272713592989931398278956456164906819747575744822143176198328090224322889393799976274280367014222139899995001566928621107151810477582450033445056651840461244811838586093668491691726551376695802938276611075928217768917887777950575611119828734830301970665829864831544836821222036369107042227373267680296161255994338718102401646094853370120699430390155574536669204509103588094870616829056812687332622574679290349515664578210792776683179222028009968372624674474874717285776633509585029189926043997170067416307884232840572524044858564309787786855714640692786829882217047942313930478472222512697386276985313036085618230372499960929185015204142340649683367616163040367123167475333050124141212543718012369495108208941255605881405705307754940793992493267402500413367463647543514035390960140690536671510657893687830922457119040833222806375412654097415825069615145937443695732953263208367260779495246656750194166527916736273620572093256344511871888902805103227821963429131232517544292870098405493984397104931427215562635211534292597955356708987147915775683070417469970453335855747213481421071970455011799955750169821985721824366651090832791003705669499347209446078450087740782711751221637126339782575336044351873041875831600889347956504357181165137286794121454629211507741574617015375397732996724497289208678503207053175468233145507627583316783365604834342880094721562552981134849426638737693843585430507619563875298106410808433860517911018270173519827067221492043435869068629148987977156375833521480565686957328043593771765908311799644596492974715829730958979788706248731142330429338172832985430868630709514688151281245348527646877601632045400838840249988556284311524534946105317301652489170312857766227853523163741810647055694879048041175733000779178303880798975658617555514230627622932575192657783430753851417010305214774313499039700380541606559430167391900269099671882559821192912400046170321702807742315517185352744777741067501444073755318750623695800167304839496434570986678311629661438619797246805544394931127432952578674898671132818839833742802766840834208457161937167426936212825910878807947805120427126095317097006060720130960474956996564964826740811096327370731854378548764038257239434745066219551407860528365197034185910733737834008279672763997390421992574941411784564221181322751312563859039015208668054914319197350888255813452508497733539838084739142886149247506789990775992607732141017637122594972497101168399244226323378435513187878192243092274621774665018972793211512484731896740478699378305133523524790804667124280049588380829532762850552704986344968887586519824502980148893267068708016517859591477971509094032231741748639509620804274416015779824061910355605559934308002345247369601479585196232644622183215989862294909428909543828582733085517343904462144037852527882618697170159981494322901644529530235144859381626246292795246821460713480603959001202829339011896290932077442212500362370399879857430874239806949198252537250937532602954879054732100068560509606335505848626823526430027190766719659667524162276187073612684308843854078976416889065845527025281248182331322214276569647990078162160290739188415312010404408661448991491568834883126449803588386104478008326667279439056738529744553230593946464772979099491003726501573422405319090796991152442884259975299524282903174463676968518889756240333146200216664333845097221322342030105595848487952263235088699719829115994097794138967152130703599172470277566793154315585754328291892491804979582774001112926839115634515077014433281684132737840009682573643770993170316107555157602916637894547750939672274219398900825743440331411827654062007599610092512528775703479461930731851089572873599248454410826661584733742237923866285627908258128861221628422651394373678949861625299742303044111581114010153495968221418396046030353290418553821105021695832077043346691185761029514700949327465938895348628588840935189098790869710196228032733713393111720480876024220603333249484983928756229276269920186808098579499778302246032154347532143990058903980742046201610120627212880033846033498553216718494091107027329097167012921377451827671409728186572092307845898231610052267966728023260496993893079058692304730695965064673400364220217771120726708774445517354571376767920160158397490841811231359907009447185085120287514346555312125974052474034651060940240169168229884058718160281944739453822374471336469459809505722566336816282306380714527167674163191204197077462802489167409669907990874036826939211344829913822877627126373422811730040889394621114180276717515363413625987603853467712293397988019246001119536152506679793975727276735708360286626473484078266104774140326819863000759639256937699754015382426386582555399352391511189453141931672459818909109011654811220232693829299096657255472424832255068427879920687650983772896254878757877546330424943774859126627483009875134272474462560401744647314888131182569242698906003943630905160380791115825326654298062877729492428855299862399333779917149592364688053660459074130436555759984450105506870482929058898807585612878783557567174372417540718445038248514087734363079046859665549620239055693639616623466799430301497606292363027333832630103200441323340104876491880587418760343656885231275297935974631117030018412369565160491668293603123193406475319190036316349060331565582088399452273372936023795406188260406845087202877462557797804277890674961448837256564092521823547253560524671140660963654578621921975985488120507751976075481593302620400731328915433869390363180638403672117107319112467902385193799661905062076657291902679997517818616898721648790172476988116180121191271219060307861211660467007962301617372099520733692434207479931566856096604865270091231231811955536918496590059697818685354057486432279458496380648315317863330905061605870429669815255768764379424287369716315567859507334020423837010359965152885855674275904912508681530754767218362507137365844041920873877142336181870072252652104310053774521287539964192995140963802715803096037535798720491364629505723394741559510434154336844473580688964739084014008632410118986508509511440054650515651564945320367077059316787275579523230594554047337869956402161642209848298885281624542076401862171253473705660940610186286663850783578358619825982292477952312084423501790263114429304071595713740531249939724765788577423707919773930337569550076888242997136449032760264104030886253954469257634238438545592236576594831156869063803575665813987129610970706704233379044635246168683598880947888453202323859109647930494380797555829427733682918383135502325275285093000119863936926338415876106271164469783942020838202962886182481071499625052206188245924624515114810986458168229204516750159627487549108348302085610335328621633154521727247143908570342460377537213422939308713308602871542083627238224574909580330780689822203988544214655197140258274063940478309065199798555037282225759494367656049760295319004288533888586500911599287424916577885772123395935223303278902290906493313680742879293555476493672433982699506612924291973654502227364081846151572167736065509683199528319510362993944133196486928873729608092845845653393723037011490429271024811069752143093837153780190212214652144598068819501659970859877903811472710802678025636921292659242259752057927328359815241561079696622645976031595646574568661951153213793251205245441223629192438459845020817332879522392052572026212693665896239818215612481657079363416471883110715278605481386269658900485307103866546766408567740180952484171116574559184139554941220852549812219353932815383349592973895987682821337098356892882318437640099525777090293073316211230925392357184865870319983715205736728545170731915003382124213968058666406135484131546104324130644648292233152328948931949683794929679390218417540294765586265323835126025303870602887220574581711809126619018413853740621209572135509231889819498948527568297531024765168345340865966843012303725206568524766861091342490257475059805778896408357945230139291935182647751501927446501898220874815559766865762204948570145701977020024928896914367848022883130643537175954794854568175846292746875736423353021908157500877972478148766224491964888080184304307704777849704029833619698007357560779038318874770196402827631993110789494080530766901667753469344279301042294663924321710026122417655516240636540213285943803420977305461670768495946812647740877772843305641816798656639160518078290334414722871157834379029445980219761678851207607937843954021144665703081331370598865431314099320346210707684497025918759892016298323116269770313960058024897401788901247628496767415083074737189574494619609853498661254258006751634145567177364989189277922203850647658363515591087962701975119641946663298952424861289083813571637214372899533205649402489257176910693338214226805729708779709555363911672951723279465396480450777019675779189853347300431160974674391289268206938405336743068323597087959643291096974426891315673737710140885584899626908101615842887589748711322377440015474976108937017025920401936068849904563719085827515134406653221729389822295566703327593611539650585872731691966025475576003212516785276346821999849752408994085937777307229999281123689838791528324897848119088735789220920560473031641370613788531597570299827177003912919637965099943252332283804831083311033206161773595160755678070335274353860176953520175162986571327025922765468041451737040669963249572779011962342320499760764971033015640179436845742020597418849039189645498271902853736941546741151058438284570487975823588167646534942289968995140896557005062386292456409453292030221111111718676993530723915448269270538242548213855616026233120749687460490675687259059539936879273064204363015316402057485308707362855902412286706684737196914366143434485329022142186241271532273653690369475671761926207950758331551328077954102574499732799462971308893691853851603009953325683133725166850762023725906870498628950662064745062000254361730702975332066196317089485926270972045123270381785647889929638491142851842962646400165797431692185589168228475704261317722711311602664516786268817578151338228554722691707006299484224742183626560689399153817895630775022386219575524461764178167549114708457630565387449259556567187764484244063443568414760912194367333834031856606546943534939151714350140181500557417255453622560842336919682965964587966596433009934307107381019300209951266913878410046020294975853370774681893605705607625217684519251160127227658430075207920037134578058640879314373186409854867256747710074209874890273893906079572208671771168409571781409894231894758922544651646340355562155648974376935857555588972482315418663343099560757554737036459494015717259176781295082871442662375969976154042521933404638923795955118589298060146928287766443820674619696243580098800500613231996978501403273463226492913006515748039310533363136014539088825595274976180370911822481594026625528598672346151523230650860598764421261414183781166686404558831530080450728446386276747954463915770686213646653646641051438309730665724594070330952688711602903433096252482957892851924354443760268796987502374199670228024883691979880925187704418598582108773037199477957190338203736533585604369378868774393511452476887139365491258358014849515719959364895890088657580971860045531960368256707700597461930887977860123749150737503303334790067765297404044941773937903729657393735072365709649212579874771180352727675214129258867394304879104691171520707320965026669334073828079802168691086280688713049326642995984990838259370238236665537217100160106717896170847091265742605358376557252234853010173342776373811429453087170763077301425057922950923625797732056571712580298231778745163504148434568353093743659754906854012904548538493844088233684215118383527679081854668696079559998032743349922709697298172056367314491604377363021446607027839823480607632122623999197415956296332536383570140423393391216888526334862437867280446615542507889480797971399797651092534900358259567314255698637003609572040258402898218990854057381568110804566570698513968105690394773850941098756990236446371664798687798551802619027490872193361053411722452040175030905515712576678684571828201695777282221536074798503941568775045924222876866826004250800270396776448337043037807196962427945998145100411111170915350180503956926340096074844056455526577935682717284032905173137038497643225580128867077319396249204410321831673819212537046028186624511621717864509995312093651014243705381326135166063293733062346125603628908721522516032036359116884699569199108711681076575595204746984149537860445842642816055620446067689202380379173958749750266482465582816433627676971709356667244454847714574832521628170776075216184589796559684076062506107217637284682116846039017755639788026776525672248750679579743980996829563911017521128883576954303989684480775357689859074314498213083122270215268350867814666388474609095105328786691650606061738441646510669939912513693102312429044195472648389971775862806673281114731142778748461070214099983987287468320974109514169606898445101918876592975301999434677667200939733673135502036295720247806719436404157002997240649323241752228277986908561140584287001255904842510927369893826060192411140463765810933507621973258984737123348947089123686245688172183102607566446966887542325325595675301529241010873245412961940843295943772079187862861952348225531873849230780418554350960000948657172735838465802937794940828354729891253558904074778875654627193999186867424156263240217361264725210370647635551885003994925998639987446990160617794744283826200831335109216924989874610220380631910008459640347889643814419552411411381826959815556880046080018013047900861799309814236961523167857404629026468641288265629248897559420314237120679253591183136089470278967234900811424164246165919317750363206219488291072034303422270143394578743348109424304406665580041451986356252578764632105255418136212056516755083612114228709903404513437067329606690335879203490600336025767992368338103573389159257825047618192235691435698288578031076171843620748211519428008811119166977064670855922425898918217792170746746881220873524248002635543365089576562038497737315022042662143645836787559998677709994470392529851017016268911906559620267845925107629570211486098914262224230657522943345008125968522361946010089753805185981078376187982601572589585778385915863729466320336921025247224545105466776891611468737635311367336147291309713679448162673928114011657795383211163123583838627578031994776057688548386623617006038617838383707174761372559372385770240897117697274846854380829465365893445044119812618592417894854472831340241505090327288307503597196453263407743766571953707730628991606564500691276112559883605597949429856733864307090692824689169481222636812942461143198930021097811008226741165647317692072811911802188296856914070335906401981774631100897798104105965290965416420983039825316716253773233090643057755522169338664694121676738615642573628473626735284501927440121632564092468498949772305591524920521255708897322747737038505960302905920515208602197711603835214879900762385593834200592467388358860270488102280980430836487154522173104721632128327289161580596167335485777438072529140589815365421154422364839974275063575610044127196700770901667983810466162843794173276412677685809209715475451235514106676490911981497931508778559398949440673548931924108728545679716176451770097537678295319931143693806535672923482313376485957899673033010036757540186028776011684496395940225490299123641223407244796639688764952249448737069343119575316265473913110037177428834450209656607226133667647782981779720529419181615433329056807320860547824696516312405075039233207478602034092519860532897631585432388548176491219036590335817839361669091426054715628807530114106049932527089761259368529115693843837042060726566430546664048328306205069832096901296168468338934726972454055143069827130974596159321602340441462366528672605674032202876413699699245461951227638077120416945715555385792718287375809109571063854126078564336502257266109435376171792965303597904291266859337973661475490862286279545451506695447613294232589973814133495607046345483253239016158927099432624206989460016915877417369494621580882800022964610474809767597492189169679091109700122103600004362998080631132636074994163065298729886203285098567279180974314184770895743904028070298235333456894075354947568026664656655603766156176634215068749436163282198696521453989357027523128178655631169140261476578096218597638207893386220181687503047953882159770697275586478219301635462019735072555662146864953315474796282861199448112912325126778916528374273631334455136776305669656996815399369828206603160099312019393924635874957130425177445003656334048282892505247048234823600915571066298064337253503776697269324441515697238212906682086651725966728805977816159880681296506001788264416212465884380390275934517624669822579790082170114789200108573189424394321284953262730678259365183219011237113359555134042417970915998356536781448191787725249017617351690220176369108656673829493899564421881470744479679876478298791429353705660264847968269348659946856032343057098313923874815037185930234322961226371774275520954701248411411534713329014504862922871651193523374342610209962427084574373890196131813798751276974365080838117450094086961388130539998585182958096575421381492853281343138383630783477217932730650133253386715292277915858053943485227679244900533257976026610594741450487111715376101279674396197819062738024660069125030336823775162946725176742437430522928390119789280959181048563290568401799035425718744161935244787309775449460986931583171549936490756271799329660755366193915884643259129330670715992812119428166780459912504864168763876323569615123489732769303191967154528588427975244911010699302484023328658416231534073315177684364332242457429226689861237231857461441621421992382172632689883804546299690456693392840534460400960870569849855312058778014103099254666322368134118421999670280376101403799043906476940031927042035055985281483641766525581791759549930944971382741667632601452052655973505173355002831788252605210681831761432720671269866642330634752659545455217925474164386799555779501195139205465683607455600243681666079744158282031615476581985059737311751541500297373168100461996716260848526526704675715452252921750803469883078252532811963838819868610540319097493812039491409299958160788928327943977161415196610994179966649644819997561416371318278226488071970245088245196776328037817958790608745598676772336946305813948439687639332388230701399266587977864293049492972474901543740786800257224125649414302216727300741139252690102839453007895050023052396768792171289824038910144266448211684175051573212391868601048197947076300167128374170890426498498653075017637608094314699371214926604365643034523975279095989006717488653083502532825184461662911352982518109245176990812749798208259334160693156943839683720331675199009322497784532823686306730641582166316470950788821988325361812219730819823076293524446357374553487548663376884310465060193477641622659668437229770607050333242959871802870238479977845482491100036583541495954906060538062088548844058431193609235477931614922874923013985335088360813440401059130015215482335157017232099326681965113632553743770473889824100825963390408710031304787441790215606630663472722968985139980653864262619672515907049743992114773507219001870938852296380533807860643832606750239389468244898147564029991139141446367845037330087768061624988406729227009539139252488810345568207852808664313250539306873113606609492919369394220697461800819650013370750557681844397424089314417992113784580043771620930959233302627633063145708480295111549197319397068801558391573623937892919387136649168058458037473602540267578640782263668046282065378267828326191890418331743003686584893843635879869140332899352540886084131162448349957224590361090574941654284720993930716381393812953696533126909101463520538420400465040592736169325702259982442656214397525396191560052217194149435769123321729755070592888178772067628103093499224206994062506177988322340896779561194869951094768166187578290761606312876655647812510962769343693942685101549031081243755006229904533688431891248711974187669115131946582615544735710526023770648588935391671253333857377504665449133334603918725756274292140333543414753663655750555669396805477370475619179949293417811312265394681547020015432787489550525542659283337257352688217537633655109035716090166241910473558419661100782059713077492858233634352497965532900909911433261969550573118291251240800394148337764990640152070684834591788901478118325220806806300570349570161451844000806139232059109309565236896978098608960569655556650228852190258687117066215536743292498337574441868957543060296280631977700445956062402473769525967663250644117674089814919994487206488156967161138212876726213713020573783346766406726082757438783568396650504170408926808721803374158451217975217797415664981301306929606549586612760368454666307341819332724100978321041072727956550918721297567734789256203814247015838661164137851804006670160975773289534602733489798363817644888230384743264058144586424732226267156414269298731707015641345449948065902547650430440142224549663866587418292884571257792316453466038879187604132325339262349817864525171512296464602757853761894249498294486709943940639550543808008282665690929498530839419898627439250904064594020344548982382325520659486752075086357062803760396498081107336397392296146716439536133799160823718549567480974692770776258144355596445850743635024725177758804804427780969407860678091238296170287229861599710829884502425946513093150341192123509109628665974358045711320181558656363355709317257781291707514326444005450435969711809215908445317039124987769995703806963732341085559082405063434400165185563169082372300153178840723720740162361302062419939880098285585322644853171831330553327231991110122099180032598895967738853783218199025669913905013556196552407527345281654919864660660067499550689184035085730673225026952593626051088611154538290780819312635519028362770568486436321110624618700755689349121092559379566414406247217204069031531515298713897432567232978071372490146217257104919692933005851254176471525280200335416535387752934884783888218661409954486839306623260309075554777375924504518547901290250420252596870444446262088580182353687306268719194908723044249480095222204512639748756174552133070445886549714177870012194290430667279573404790923338303680550406744268880066418221020151769081767093559898576585072439626623239817573799222244585159493461623749329035166257539095915145269165904141969066037416359694104826747721732276586625823758218954928797871961339229043413746054199219863823387411189988185959244017621548320133983168105407555487744211044069199737146162532996187048853142401679912794602295549871426200290461565639442963090333398624283700393009964509798434685822083530576642747665307927759587362296456468614978175436129242567202737077559806433054049786953877126047399540810596916922243389507220569739035180228527593793193742760267070459501204876170632319759328987285154486460663318312531646057621133282612111323090564345372335931064653850579373156221916114823170920181592718371277910870713220590152553585566421133020804584811365836877710431917885305287084754040895214760466088113898940989901668610352555925742981438298505873233580325454709909100043781450506425176812507129404027239856205256505341543606780915102366667244838563439621144585227676020789499094559856898794119263076005951485124563639903586170633765554125570431367276952679431297205201345314227641735145152998886371927329516018822858440943820594677983189135409044367040120736966896167146929897961847816063542426313856233299840467705989254923872429436828698187716691645745286844455702692127260263511663768836763072499730231813672436349091498272692129231138697146003046470429125181688656399085830328204439775100288356089977180217900517500197380859345196009049657506743664192930894622661464687513034662983206502838841969280431877915614546686709430070201262793065285867442206252926153540097891840510927491536094639129838679932838982453645676845940024865493622977516182395018372634376900155611395035091201421929357797327663959386482803876720428647970720576456120070606463829114114124051134979634313572826310779847083330921405542729870461773117623997497293363851410220022750954596223937398574362031828162620805535564006354242617450532848169405601041199817776877206620484440801966955153038679768930009311451662351624652772566823496798554128821173661484224363451330313558127641504248623919416924305770255120380987278491675816969525802014447557452122575431666329326092473155538051727527567725894891838834432473168603234739962514009601933510532136018769863826942092022494868378521826089145674137762342505873559262251815649362163434731635969904840598474534300732206857849092344184756471296633175970624375316186616729788894396220100579365710546159360373560510346408490767329762998076370772714844671094324494256063589779981879914659721467776251353435336152567269702381231407511294360735165549433765174741195625311714588904694180968872242236490730470984327998332400095312926271546672045656431741399485764000575471598674350020361304827765453468901578623168465191745134067501827312077245745833623030808386791297334289813543597783279798258342373506654284325594926643362296002378937407797681396393285648581600598548918243690094320170657215276508070460376391357228714053618071191325439110487542553274905051273473519299122465642768880691280329850387904861128472702463761174160174437749011637838390550473445277598421116515524033591333740762205961037676929484594506963188848875659701517267537810867754466356965143535390191177183434086691081839017411340470851347069508701466607456412782564673355462028549475568114958265269315511736518789893027817225215761211967370896850310451737740864680588164892118947930114495212127572195952084427731107466653986577065571076319807164363396045861631394465058274096160535184801394565202937287430933896205646059588276511973447901210662083288822375878398985503286373603344158861889519007789273503940497152877174741356862964587181464739954797903040082067336799547501985848126617149833428356592029398015620241226172671690120718962919935246404420733230519465188011505397792014902433592057849356391671161199466571829416322918609155180883311859272122893701608158123565050606703688120016156983098929753383266390657302356464107098642884527188143778133147643822442661516211042220828563217634579940947572503954534349649933492478665261857408818382224543629630758241914782756325949671754133201947720591497129619521255762675552068049373661020403299058697895499909988797787535888885490378563278056466821885146446582710989497787221627509752845121718158586795386896254337042533992353743445560590219063804370492968146556813721509690390898440520870398103241423557188486757397525980338154978034836198700404254906878638891216024558983267730237506406079822754558889565073936014557927645171493302923399360225828886100984800282196050470229922745987760303248421104055187049575631997440592970344635012740885153703772993286578621322932064424716150114488560770304229143347837244158796529057161665328078430510206771012112468426544303428953433495703557306971905270742265084797335090372504470159717298271193512647279148154592001863737640905622444571861592252076397548590329793630194177613834072008038192174355848029369370111610465192247361546547198705674738941488654237220447739016812790607171181878939868668543720927020010350369043589638546793438623784992573029081693190937839861961649953717233249784846672142878839234164627722939070915521805832949944964053338395491527981763576292051068261366925179292867968908829146895871077874770764014192665773067174238014568738912239401556216642397636494841162472081607363143760425711021872245605507446301944129619720559072775294728173266817894285420121677643735091934560710311953609657853928967303384826630388931961609112030850703309990317181856219209366677473231287951949112069031624334934214986165658214204064413401398543000509541305763801278436798636233879964220048135548140270933892035569134132273076107317811568174623823272262558743860273080072599518843261890945218008981557596038624865865860414059346229327847332285530628958570750992588835272901406372624048486192494568729328726661018438035787572665285219173122752904001794133117513222762412246775384230995508878303387201882118234626471228054467682993344917564637948476950386231123969902619077497666965784665727882155543006433737474640039786745693107640975531920447728703799940019995357188306062758370037857989865184033665978816269254961271608229662437201293889581617155675491786666337345304377562650616521879069875514205605580360204294444249096987460358031573775047856709681704194940498953570080150267003215763274583630330508667040286248498387720865006119290383403076599976940812841255928417437526198069790250150424145934830290977715814564513966554075088101011297254839175158051936308061838677850395212650979606935861606570764912702672542277025625889031366256777732079099483083074872717021422724227268719938453375108059691916270044570198505001137835299244356893464525768954980139411608046811065113995350860888115636362949911781137445495862843557582305002327881753115232615843276939549904215529012665002885168470797036325715353545037714791974759608494775078941006829950716088495890105465623165027732840174254393188219364483050184937008383331161047952001790284215840626834931738826517034906970105978463764697123770355183603807563867050875277092825286182192478740003509617418102068897621921939624181527898183713682864181400397544712894135130719766378090499544018448841874584650092478226451277916951725507759558379027387833542892340174073383953373118193122546777782767766651687201156355884370796780684924334675473727358001073240952876882081200112560223599835085862033135390759763932056315830566989524986094929188646197261209872028812769071237864665583472524477883121797903898175018868401766906853224351297899827957005825459134200797147520547233518690241935688395049834321510845367848201651920155206414525693146128485840899145446805856291352742761340550569255926681666934955425942041083400949932677854036498954639348326921462301398134258966265946244592894433784876942988911320770886507138373453754424565216691598526875038922044317965291311415109695682900548451123006945356261766545060176738233659620282434019158600838733835496151283065319687989876581281345788863024378624970852657462174398472835631436005080115833525087346619058117423050635492531317384884681103880147136244835871005714494150421308541613316636819134365375591442045707627083490534038786812217933847034978205458081509277349074280156127692024745360601289466054033282865568186669293154250560341935718621343903543915024859796470136117988491307779117805913524749274189047970742610630931756706783274323988947010727183129240871466676907695479430814105238080273853326339665971872587471088889314466510017654950451069750349364440789191319659861913253259263663568835456271670165189451795228771996506367853587337210443604754454182302554992170148862944277619091146618159048933527571200998617764434642342411878668589303648053722870854315481334590042682431527188235238284329504950712148818297475443375140223919955944925825991612737000672953813364468089305422805234824397844607124550027076470585893224476285044185375438074955654642542820311108176711186206463272972267392643122164751536848038857269496975910853111450840810984627390682385435491936059022868787977509079335168760163309820713803018140293765118465129947194697996624017576886278928397835647373888870439469127387726494665689647128601853794182919350045447173327004339391186664298897810913065989485949289799179005257965125318455959541260863531241237314417702115595677207114866091564014818403394314429471067409843544097362083433664254266710397831406556374987578065915462297261273815028857974231539829724548740212716954300851837265074273457652981522943867238054012142149910340273084895586737575994893540793304423120870779106698926711435611512998351699478894457567278173431876977156845883797273164208179740985472998073326822433416822747561137530793327067637277236878436960500850852301497784526754961640211301486544005108050478854932418536033747018267493801929479055167645598586677697013691622218232020735545168224421423068406655072762914248157031823745902747964058234847945755439759517039589870787464025785803838267540141761981756341222445514878109330102605959744070122588111263306222239844134134398800646324492181844125823104191450301688699805695151568975911252331775523286494149487132920318124618523448060159603739192075511287877574343134239700717638968756309405874442204915163967308435221535688815071180555373716058047343748296105952521742145531863725182814847335048274078626611300474477998090065725784281095231861139144025810132932068699819139837663702811244172510896560066354269026387476854825632482733847475613912885990395587250660600105001622875700996803848686625046719035084793025185695214581071326749668898982990401485120855850663137183975124961238882533405685028995899174478640562026921295043768079242416833963124856605199322397500629157716368414621714553471996326335952917107525125343783325235321991278213245264452570371378110512599542223776213509094139099692771003621949616057505025829653464685373401461950273590981204083620437511080693466607144176466122980001486539068268204803431250944042345417831193650289793034955238753375970639607017467560873476626331591439463659683076155973851196383352780822975286774196112112269266833571509053881591713001272286386322570566904270349113683849123093198254119288740545217664170894405636834670322532040028352331489161869612521774994536416716899560382874422372371257212728692041495803425074112072359226417086179876309214258553560849459758171408289294764202539456892685127312885877139976538006565317486154455467346512980609789581169706104396756994555041074232067677484946565427482514098572345139133368967224559782269731191442139419404564210557143533026274570749575784559132456456883850181371442173603194246996129276225126874142761611236327231563902189072400397494683166910064219994620548565025190175239244696925821463672340562745931129463838133622569891870276773473988687723149753623825662112434172096979154462220536206292043651296713593002529761291836263110027249565927656324804008370629488781935485379638635409076786600495410703412452866938978280155518987326400229276633380713222814765091797975654676134103171993041227525468192366553827136042820583084957741803119299834401702153232475205407130841665866257929403089504272459781517924159367754584401554860372346974853180812112997775164675396905393628918248665960746620287489794267244360913153216963172442807560879410519969442900776916145033499565594856217466812239841815904055863790293462449869029833877160038769281504525092024975064181068867717784791128256628249411711302836245856126075653693141537880998308881567304489213052588535963534014226530196253866867898128025534645531138887763566155092325423743858759552036850812537405833380369740055631898520275729370632357102872989368387150927459136439871281107545839851303456050658486271941873169348097712039208955842388424444885807329893939328053390415613741119237091967999846698331706419741438586954342345774000723421988939868831613807805380445230659734141767655430180773609994575769305571278940024720811705817309652534744646422901516659491218154935352465883980283027556908266047934658213487526277101276112614397827050262962734331760692607069805866706797929041380599088533895634136603322034466186112556114023198569990410504705801854065767706964912944275707635113713206588340055469168496200962729498502912866481232651657769281361819386685074450324305765767743141409050433820795011205789726267237804099777805306750613397872453521343518649518915111702057432782808212349119346572404529806674949581235495815950351131582633002137539297773269721794356418357548028100792669592332451952278039504653481764177543770688917096484905717229820727135402730871629632356861077486529223042672292288778158928634211451522425053813289911680327747837701898305830653674203232083156516629847895108469387444833386445104826137692174450388040896333612939378909043717350120631555825004931844514003577160744843802366125199912428973829939954397762167097474214046682932434279297728704837551713400745456058407347185689065846220347256894525096108914369225133026356690992772461060286395514564273594006376158518354236204387748388732291583691596394618951691539105507705770176897530481336109197772276841049154875212725493814365372990210583880434690011539772792375319900867994448466361552333696136986006647544072123257308348877585716190990930356807831979607075886354787923052543750995425587320501711277668721876983950959860378596579230747459403575049003497367287448352156425218755674001911840343129044064528138429885863103723317701646012501885381206642474401604342008896399574110441350152440065068304111528481321395425823153301517826119030403830289793096199767174802759449638342137141732834230529974650975161074187421380215944055715279378073073820991428388877175261808112374904704999174082397635032342587670929098535922970507603743539805807376136163137534658759754570081050108618103973396127762782239498816614552959802822636613288910680810123021149122820082635540174473766103391356830939599595879436650924443901409762058394594943409350144902067952424493035671591377825748459135789956714358832109269104865178526093749171324301299121807931323500053422658661380458116682507353584625392727261536437538085039179399814850228255627247607659713488569777039841341984868595297871902094969847110461715079455450566039903452986819483186775046356363633086240252217495896648082236377424047714285540543891478637024077813576551170046361417752766102183786418694189382622906397845689911327878627110709158416453289152722549017284730910215030159424721652267278327849986177939375835867136468827198247470999076327734609875289236562325784294159460070711727022717297014289633572164569141850096805199910806631728661680261675100151612941358881030810688628298115412427415687701566765876981703942028422756261396233960898457267212516783350933363782525829737200546349243312115063852974192657336806872845410367039103553665003639092788192086012560385492801427350793618888037520287036758056263745207801963434121529473963258762926286647465884710097466557467028036217630861809094867251030430191862636733520133378038322570669210448371792790087391651678890563190869438535540286144669947155367665447985121345318564335924969821537062298560847158694236265090301444665129609010985095058894803974410349438309557787646885212511568779743681362573020468266055911603754293368866763575053659876600860104012362032810859825862077688365086332455730216622089608246232825310358608900102929124657681755937919081334651998223588566059523653921144913549272570054255978416190935240070809059721171759563453981515894999163490830546822994003977745865530286059590322185081330777899396245949900322587399658610303446811704663168113615628319723790984738294056013268818083658219990653255392202316766068809073046005950036190254550498915840090260723145820967119287462474245893423326295705893828324937460320255276156959659813689375919291422771564370951997974720902982683792529931293607286216266495610052280913520943364623625734000675312381999093973363857625830548222501265210750087283033264279791290354260776879375429767989862043230699687743590870058202630721882119737706049627302188400864086851423289190057075593256606143538461007709402200463743987672088760266406803527641086300627298025135741969725080274521571063945506878931334380930891898611964464544194855948978011559076083911637193100028558465386645087078676864880072000283098382665223076233193641195802843169373062071331806481467581441788484815521495950582115204518492206066196263351406915283824595474615460009770875604270892683237678452836829630926598761829199650711758595624338960014409062513070404290015744791429257725159895526524843763577421934867408384716024250621032006712930188984224250646470495404300020022367809508602780329166120086597885269653657239838204610135599093419070500128209115323443129880905433865444424984992589107977216968824449407390357833494965986896755810977235266202148910418273517852919078102636898293978778553511386065211794511749871074245680739210973226502526894971220558089696226941593310985723255678806893463537979370929266684217416738159689130806426808052083677850519970390655152757673935503546041415488837940773332898713096559204225619263909446461720799060188921401553569981685371678235670527825922816396755968518389670357110737511637515040257381747525083830690729418401343449074188606825578050925456773901424395868145857319153898259393954985543459616173221914344039435686587499991225087248548334770315089723861589200808165796135343517326251350164647367387147086514833437281463547736070393128607727287274578160170643809560294416282978310661200544384548305339116436471055905666607616231671939286852841861019330254414705901867335998440812064904380809871302475455315048518849759363634161726955105626288583689553617280545091074284959043852831472995356759504849456088245224120878110843388067714668016301802351407073554219892780816995654889269784345782815343425209645770056846164412576654421179643210411271487963979493153072687369707720103863845883075409172258884932765674594239335527379993812997584676742315840781945923165403531179940035667348553115593404296123833518097350369558118312764991083723168447093119632319885355766237529553099779286473972312983146915730563186277584408712272096342242015201065644523619193980890602378175596680081783443404687876259369401116177362753400961232883524331745317948732156992535546856788362693446995357925724961476869756813049206884610825736326593474921829013299356004064318089584441139727039915175317722593243708293362568831546497977311296931535048656093381586285081336702822285645923964805529200072433713785354370998848220126980443770457351142939076407842171794817531866342494660353024403126284716811036190161699679534016426136497344100083604061374629497374695479804956019795462859479777687277733191148477909292763936873676015346853515227836055220715796590339067737386773532536566142681887611769848113344811629546322543689025441958678963496559528617360153974122848734386697016766529986330161023342306486316664892784880784127963341518652068311202392102189359458261130103159100800327399173271749744632777317822528960983177413790170810901445242629633881383079862080163993527636779839048704528498997040216699702976485049613020821008068335434996714481271290235097769364482132281512360905073048258525524402476799693004839803680573019012571771151047510167133023998337455607112379179292668634765768977114253482857687263334330711040427871088019578417851787160841407399448177763035200074330817639412451085098428755371682265529545360733526916315126425750506116691035999901124021489338312526706922489985496374191844092092728667498764556929669006250343918575777235787239694559746071210938797201074077904762160583447293974638526236725782366965818566462099305132058666665404611562423624100706654805648818982347095197645649493125075742190442029267742536434728558218473154346640778739153518617455956095254591951079760235008147130355592681210240213066827438251870256907224237509069633083451940864915692694381106688956680576574612563285424517102214964441677315915599056896615990417913671554312621647557907802058106659907159122826759676700349586227549753360117255007455646589103954215361413959866932871007196087924368900171203569620783061224834314318459903856260738187860683821689480766911930329716365299466192079315357565970094048789686648507876639577617706324018078610844846427655015999336787647433718897499765255231815770221981990111550602568841098463977676711464983832683843526207418903041884533142050575803155694965563526488023030240107756068924922639231374960401348231208393779260143359622879946208952072124274826959261802760623995269074291980710181293500444082997815910442716467144551975378177647709315413925678742459264423150715905293045622911393508147629862116099610949580957121629085814238999093646399722508118160338570683151073045499949549669935799390156153976768068856714352224299209283749011275549757757494627297434159666867624777929886286654652294465841190456564641274481247399536446148694388140678904392390609048260991018987799115802015513354397601842327786643931192913352569068613272568351315939019897491959330905995846365950516147797063761456793950862140418407670171703237094830269908424592179495479027474165816479364386689714482290087152731150531633149870351372900613747339377839374202005455169550197404855193299125620025381323931857495165435334080991575702757114816975398078166404356507333481422670667248378151975482951470800183785071261680788131942881525780698462761782426065801173307592624833846259795873502908762404941382799492032098247312474271556459289101024628022741485458951861174979089972478094842870552331190673912125793409985785153483104062246598745409550998727901302015701177085001263819483519901985733763146463758530339921595225182315342705159434498338681966181902961503728069174033171335191483085356703037405952633533932515396400163353003811029733504520038993760871466293131736991410416077490034633294456986787997026451286211574450496912845078035304772802619058959381288190019218112804604367301974178018817508380459649581512219017946899766296785814089124999004963215532031346071606179835021049250264935843821423486217371329495750025093861663906312325625406552906000159601259334986605820040920796375373238317063798951339005626066209007770159034457621119575492795599647667600308625654978938670573722946448777209803824996549346573448725191085537616203955698687133167338701494976911906745118695959688869334174754670983858750350445133149156029137361881575638705193915178498096929988683378279765647246227364911812469695929248207338380488905392694853932131891862387091525049850549961610851178630625693120584699886278009222261512179818265893560455433372209604502071842105794625635780185594920677028195971436647584336570157886246927462686252605796282908257401750029346204608076179818114887983371632171551398010470735361851886033769865180143155311004712485761728183097641393038181230284542143201040151700034438846144375710151050767493609818860052512382858818014109669770758950346013548803817485934473616160848839444044816824426884591892225419744709868912277392374356617072932624116351526383307821096596767242138774351601267409002010441297504786721127638394494877950367774067517015524717184415242244149872535938407760201971077208921547549205200389841401590005826874054466461620046858769444080472172412889861041570664012650981178272717728995929493893768421564155606178348178359201701194766256198422124132893595448651503451385306246452559336492121330899001937858270098479627489135594386007232403488233240923959007084532686563783228733753204594941348413429028016049844573971004104405794126951261559019682608976039358372660148772793321776805162987215711937363295126240260190269171883539818721378673657234741268752853029975867452480684445038873911528986064593072225626692943028096722167084600651525458067018955458420349485997191055097462685989992743946841214846105879430019397331794083306213599348183928810044889580945711426426972226501185667724072099513994892555644319786763770273171423623849786632027406914864818485551830624685011409476705271922236006475378533769463789056205670466812607329862927125035762268976738997257510375330098646543360844351712417048092955449240922909715186295156142043374943771718268038602711890577564879274313040541738780403097050024320602016486445240762683695522206417217722627569713821161592039610727416508332313192663616942956050941443609384111155277441830179803432611245370265957449712768644094041814877198995485774289359136392798297699376914340540585897002411089344790661564562818247763068817896862759221089560363053081573340754255571460106569103736120390522424626872614563751372605252266219232778381675167535912658832882633455562271438195220029170310214913848628221619406022973352877967229445552417352401028064674667549461388168639318969572157985281267055087115398153434590877140494303155583922356580342054629652718779113221198776661911307288080313644163762309080935489779367303665838774676843850178344229605115174205452651880617253840991214894133239703576790822883472404702028921101295849061126765043649284508778627137666776463325856760537734271526869355210940003966769551929463110548079068636978440857889707841725874731987954755365729839317583945489225113802457994958227255103748858378580138329918382139082718730988317924605248293738527497067860394704688609264892490181550152704904536406351026476689280747213457093463515198676239087979873873127036031926035055842577989806780986281944333923125646261924039758738894339122424641890634741486307526173881379457595971706374715594476323076045642633520121815470416724223280128002397615821981811521585220215573150169859161995978040729089337814106946558295754598639682056032208025765491448691261687157455131959250952940849412835709217494894740426838750741055082106654958074070470529864679316594950981806208564053859690044191189081295793392025166213995960998938849886721099438929863270358770606093849728193822773496850879120451713467286806504880360098674453012710228213778995262326632748037486518382333878370945427961838875260292169572553754337797260947894449704188882973651802867334041301965894951830954468261193153486983534038151223320532558458146867412307919640418277692862709988281592268302231546518164521925843947736494724131958948405109759023882292425019491461081574703666086799263548771607947316744559408467988569984024366007388012375883913512886666160199381326287300297636505482392069327417990965292880654127719281995580815327503215373967464948788268134271879872824930459738544181524581247159827170463247559307852038524766961652388573625647534097962312609724789587343947270225969727923401167410394467402273268364091619637962368304592943801975765925093896215141535776126952943480559535841649365123932055847204958069856285700898717484322591897836582484266399114048865412425464733891678786464653101368152101745166431113366222528909155065380962291819318215262282086590074376619719986845497784240071680611166037043911609937921595203379660447873060540928668358279824537043858929166182240798235362458283586225693052242054330441923550006366494354019303511174694419051603147697807253409999315496478397334131991831352372930659477105551078379888493707356704859664790739386228888194443195101028519685004445079169587336714607914814233147449602031650127637644423731002506487062263709667272089668344309662013896682805382362719887316234421625571911500173114299635411858348293121203905799944544009512206240307620045925691945577289351547186371477095556657400681663357857461025106767872041081569812647145813908458490945440188241434475580076514671512940852295123719027134668331842750214009751727088826908937020758438266481132717819944342298617116729367010367449295296734750664120525198331713448034926472047486965875698757609839679003834262138075440919370019563430340667673384351221955521371825395318767049316366793160258497275069657873359525308119653846056719354566939158873423770022144894134462177585890842802827384288686168037903693495970937528135877473063546706461156775564561098251617007888883699849237946237589774435619457523106716871842374825900490585040043310506106130816735732499184190342046247335045956966982694342245225458655127308802013863945484148719262945366073130940888464772398174241214551796490754413222334851871486665489093622047332090756272077160883384442257739006615823198761440662367533194326500190935781131092426293835646795190667851833724555346709802580497351628360459493465139719440194495231927295742401121831815056383199069140480801228392223955758473056139495199931364624755492919921483201610663441852440642361104541368717636679285628387385059430593769604383807370546116967147841815331402457308115571959634290744328541957997543462975673858632729090859131015030433013050072156301194993058665671168879868819738580980775463855886319358944177924150155929672282796254335450075592781874115386936264916843395327006668804356192846234414019667304595707109192478461495718598264902552383062726993014033287265775330948595479133766882461831528660606958965454909981853065937029865378770873901093531000938812379048986454319171680745781986682288956414323719121420563562169329393975279158294054476834903445043588857115063143453165007266204628943844554937021160532929479304962634883344237349015948890289420944685730835459832404446261483996937863123230923356280612183129448208106298603719923856627679002138334324777620536282611259408895723998648788094623213852882188703030664288368552881669031634481660667367056858527261522455795391443149312688209935903526024964741190890066681062059824130347704436890265976413014952986463384379602555601924086614056398353248367405054375418765600524668424510317174518308624094281341183537407130520263032546188181940917135929553769551289942952317116364626185086864159488976245573121459944486192498360586574950799170545475120221263326616102560742687197429738842071486134909427253203161547924944955965693225797269983875804030486009068314556396874215150479302529081385208305205933402060051930043595650675273031052522651274631236750312920149731097240036201506102130749615364943976953531242705206014456908485292667512520357178817714002681622037694567721746824141138093224563753615694304944765416313521135273137337403896557978672015860981625499450973547210957554238822393871353805798626633817314169687951112726080541103997837257671092159909283648647132621355304684803545340797440709303252264508163323120463915370551076260964155285009558561798673550985232136910134457778123946269868436988670247945454178216316535764506760119072512338254760103121568035801248391853396328787518327408032133350778863429312085332491241404776151859132862067631322219982336176868586886677037989896788928695445247987477584583633697162127200563036688176694587602603949839880714327043650876425187592443824529827152029070179789034294796530171591943734337303394044962122879474145140314780340709661871899625333598632888557897199362064167868902134217280682118927851034873383482620054480506944805331202711489368060896252334256559670971505741025271297740579116741254676615512028702419228893858555597739616844754974200268011991661445127820561790251125042376528785571984296931873062392501767653127360042256085315110040604370719712454141217943369869809009470510076834590044810541988236913936408527591177988307010391362744424344686414770473825160659750299389422425423503841146201470713783879035288204199493679161493180131682930124484433659062426531752454740920864344274096534834385083108429858142123237361050131342376026910150203763602393620455589724337206827173317069166102046179287763355443251440967421285331399553938373300441532331396654895217510467632622426022756936705891037692384745829458618363985594985721588623290059013374691616572820308463960689485501890476566265306935870330659843632774552768873824883067645947606227022025621503890857409986821666851430277539544449603544472803600106984861133252689693829458774834097828203788864936643707470058995608036860313889841869442696744071974404033307926279722089195964453805244394418287395003104506517271281212350295933216707549982783727243909511911364613031808610593270205928099555361315283390317686483212745126609509530762789495790444589803711021171207093009939613375156135252109869703083364695033109916334456318282098832270955545425742652352426891571192909445789996794631310882898335651780137152167947031256871476865128463466536068259995056378743929851952089432497564011472868920372887856250441920666984282642295602242148901332282697518517821992140817958016291588828073650547976851870654609018854052052038680981922526157031535559010649947714650133867717154544665414539027019680687001027602531645416673658745350702941300597700970151209357992056202870653360263565213018344705064031682492087818009633953986449947775871765998554566875378856307473252838019794566760847157392146124916275358284582331415091229742439350170833926492905831861793777869715459339215168535194064579836105342712146243461377452583002159727740509331927314403975737120886616392725155230414369038446279549131478845763062951366576543551957375538751715730763497426021021246146964003036118724883984941218274554250501199620068677270800043851516423620049610873799323241201476185779878634937964372891911329931451471940236836757078609805882972933875710590275390493815752821060111532026838867807309900156776620889617981823562562033038064430493295397713449917361885100458842626924515290659609362755293180969926185521535474429081942182756815082444430608111822143035804474609292288055332032256861214089166534900296422947569746104758844919349069212415464911276392044565368847883824611089941925804947967231945655379982646098176510099309729008010052862934396645112876897555831492484580003937112987546157152772913497796998009756030354646177096753941841367055726909390753407526761793623028820084265242387996661270022310632339682175144194555185683013845607250848539269902466637386756600099166897607355868297482220562293568278653726942874850995542721381264439453648312811168681744309784316782042973593463621181566230148404125370320672453539126911144147966339540975987344232911741431600703574544647931463338885071975677774525278567991804150355701328290025959059869877595104009187223148864630252138958099001188188713572012783391544031265978385521615026315774388462357848931865648819505342980860607967864071250737560594266073016887445408654307823636982607174745672324065272589198166429518740034549271533791880807613122224654707095080379904848703218742208240359184010270061942275764898477700253079983479689972483446731451160256965286799594698794845979244851416517078344978204705843797330891259024439131203384549484350817166432569306281847754495913802470217524693167293583077765381546830535427824548095647697731887896193725880020248413544599508729057540691975976998985199939020864902628096629114311717967430908381320754595615428648847017185725519963302349642297814709086059485837234605962762656008001568432676349380170006377100946819010527744237020573656380545638473743020693208817778047824678084914554708107852352651124615395986504210575680636826376704130776010017523153319538680273206850286676891062556696328781854452824209705138491726309698861162639668483931104927374516510026377333769372783239378882140559953908664655697984501009958642088390818394275229597740659162530848618570177377019451130575860164013388028536773091050957464398366831960038177913267517495520332198650840491121412035330866699048530031998432704894114283826626276274514721337914681933291735506580912677078224070577971342654163303795687594992536982874601845774422181195468393164566829593374634321163765513624206677935895175073364646186789373833140922589036675655006709420538223861238834686162069359007353248750386587005563967488462690380706465337870741303432115149413439037738539477491023606763840794748518773848740837708885509527447026489963396246612997486800631221800173288573431317159313759450539932388812708043364596256988999577231781711449997534720442327936088273878821759481968489710253415782858686362544180866572702608406506119757739233280087393691191618503365796667690056731203798315942601450042793913435208912363381309190459432084208767213435878228283199641712158199517890005805305564640233497910526388070603617982463217258084569502244352204839061228817888890590435059423062602011769957416467293094239985143405867141482581059156490211895646932666076673005361996766430072684091367717399755744762819065930447260739438354390889973362116343472307929195537493578296013996491304793224906833639263404382792729098737691799902512242312309272864276655055643801206055403619688836105040869980583091268731531161027887263260058470387705239049357440630954462505673818006716269987637369720967247356923420998601913631936801467466407603822580532387358278169454389747901125427473899497314387139174354786969958180897522452711368761989186636317671431861718924915850113125832667392668975058190471251100021457935793980532871192110049182308287497117152255450430205419599135170279994860672427143940724437348774333193152050596272121720617928745818443876200176261880220031940158901877874353784053362315787657748844073070284782276429349225469576536754390996041277026546594473674637873514453424219696236356597373206564889172328319100580706021099022293329752297401782831016039912243186183397835264885138021942494380682574375965811438534000905835795808044533154110048515520736039668153722663811271131350960436449944864516429980858441254878480843128808906724246704401548107639682628155912810167454069546076454478939393232467195907545103590325969867741698867643523006421702588266020669752364891866077228983447803945157089956571836470480661071756633957078552808559180142123460560285401141322386881090367859079626669737019789781133201709483473003833135726149611564337502560332145627248221712999116552482175547823937583701041723720278205997848399102857612422947138157030725035934620844621071979236867553153117121835062042833307772315828856700982135609243853125384953323131031464942464786912619186544895498502894710225667670616641957438678743462902839923442011119760057965326856614313195434932053428017584503224847172617804011987482602727592936252023770261442518152194067467116963637544102332475992306811068543126247867390662235694700340648609238695906854344119729605773065463629489638473487750913901075037479745734054958391471073782048506873569659572242975170209361437225544228928580615008597007487596775047498312216221277652326908191221321257871988671529806281228618182998347236223611776893958364367942144498036576391307197287737655471327863770586122822476082479590779173467526189219246519223866264965929663892952813111591037581032597173881034479600475100136366564282122397363512237247774491363527047138965135161986871062787936985042050307005768296505792903405755292849728061959859272192679420434515563974558597005642679424139805570863973928669776814199097294784349316143168955822040115018433534642734022697036707644852816039665410786290749377728032518275758578708276925184342976315383826520621308124780197194594613351436692440888289192119634199534838969610965071854680451561895128856321848123453334759354836888587765911876655548683424671728006972001769790031714547031988645829995547942761042983500162837075627358824757431649293133049449018345121453942946648050590838690121083788711403792995600129316000731001171857612945843078966353697258280901048350299450030781525689887399412544583816995345974803950602839189173691747893354690872331731472176244743671054442134075755092098346620302624889031010443964453153633879886350870811481983587709275621003861154882576140953643202745610098824875053237210634785826855873405843950288108160778117748833572095347799439368195732261671200145123619149928525520819722792541022925133376936711515376103248885059796637396308093221331619305093324139600954669216230560324838493612850434530126097648303223825317812804361968811902891088876519185791706936777536431033011261905637244199648419441274616938891541794697599762395081698149994133282329451270270451939182833768446068796912986719237562607799253096378781625267918523632325679649397404028686399788115069076823652136346948868502057427094754717243874355983893696611518216528862758623214348647796327152990828774362706752000040410396318328958235598167285201279380094126233841757587940124293143417553541753893465508515996459297125256044346502819295278850259992892962836970876448175825043691253965454166394541594352702837390624840675009559286190615229217917883246367722533061016937024926753425731462320540790352917838339230502618369265152034616087324610776643141018924646795299856318265835014173924157596496543062023028441880146828780582701863761756263873816935491784486117441175375107399477581558777889241094669389381386737939680655815773613873701873224661231987146500268315431086453943771170877396702636963890142033985246386435707419395534795747610300655698191151974896370637153318499540430338562339351563142861178358138411554037395614151832195078347225956932626687479813940049605418848387479666088911656420343083147855001601706222211796964219353593744013123714686452578369643631978976518714415575335814635057985804213477589417108162462859515283678555994755554533505037917661430162340545782402397662232757177915076168830588491818911122517257972379802491487139719258588546257056450991426461154678018529489445649832976033068721919159960858171778227069608411905272401043749074746565968502678070074728375460983394223683796354399729694253014621634175270197915899171113352461793820577129558705886946021493465839620865498755588695482771888412186243240740632823202160517681028015835987399506795530320876612859724666451446137648315850450150654410612945027577732471673139234594105740109719212217431616856331073143545879288320321145545371216585628836169533735716263337135375895343979197874475767356413636353649671840304767720748567741800734116361816450758609675132203914286863248623660507242934978021040807155774609035053852731902379142928720051945091281467433483211004752054578258749734205547809539661236678183432294890491518258881409626300301488291762251786837901857584052850538504592081331498159931693904618421332669633309154475950876292661338130330883677789409707694743248082335467007427539984078829373145468341367605074159953065992533657959532154240725786053637968785028947188405788760930911345633966367013527487097611024032277019214285967306012567293461081946290014807186826173084547864181886848674458442778818529204471751675117188953241730997689149225037526873918748052942823911689845479287960849447451797975903329089075100108543621849347534957773851441309151705017126325881158108189660633079767968714143586315218485176225261923439090928043135377353891832359992195376961112045710989260041183656502195109630854595239097178891446600808933899689668952981024398104226848335462114103203486713784026451737931540477626295999768328860909678752596380059804986247119602022462576933926183378155623895381931841920113251539677148178218449936298608060913243360680750678035111350834377915742997392296220286650784248461228555358155613568554404151813683318563393836276351710941967007826569477772851970272400029772624918882014424617610526470664043876936720596841384964717044094015170221175700432393972246273469422290811247619939050910385246729809920758384990044293465007824733345577292904140866149258799456101355009486073788252725918322126339237605972689981211733677212138279279834239058769149191255599660093252875054174380485465419352309435513722274696761409447346738250356365610027476591226962576368615681047034682179403144105279150639597543333874169826693658681198422930360313106115717106122243722153326005969982761132879817804912448387638104838579975867091399142398348671490326167981835063909916903063886380005461349146780689602151197263931597757461536170778863257409325214458743451355933781492248643584429713783053405583921649406709302676204656229468431225395644990728052175677674636861019387232716538441827019396820848369404921527504691023239970307108962165361438706206443725923873755208774297916751698315544714494223732447115508825872130577460982287369417536240631240951054047450310096477896431368530444590820249563371502496500023590425811690258077629205893739071865062061408746344967042042338712036121403536281412010181973791027929506627249960742927961627625856054029256130284218445770351549405335427408262027832604824601765794342497482948204222204678197858561647633944263634102068378413161210648327805305474351867270383558981237567954435909063033484180450270407638346753983013424989932743303835730697964187899530881760569040960085463969037624384045338211804018451886451674710172416997605279441136457742017925076987519111124879310735676524667355187604924318610695568746597824092291669347493376217702435024214783434308570314009105849829699589761329931962966803692552465024017895751094699968127286933181951624474822864610601931212841694066062106888226401744275798295849531630497593637726915591757707079369973693383054971421032920725475729204291190963653417353320194926307940355985201065098217783153339749736462675948470450525058954798217188076263849059038966697189342680322259936156193018236434147673754775403853303007244528386500441016102961183356113113647809479889023364958254498377365234235999845701984943070873780674359246363339382557093550093671560720925189383640995979778134872894945742649561699075145089004531351547033068239981799152658801454224222191578288433414361677627396100311923855943617436286365591048393895060811272324321049588821701564064215752828555432260118910923586088372689003202227856740976414295186578219488670679298969086884541406135289753168256326179410176417561170522449995075244923729996322482981379478643330782671456297328416849287644542794162025001933084525260108605107648886794771912254789551933796818437804933647002500195509506548268147715504790768128674471775791714776307220152537899332035582555893772649942254501964593511587129139945233816883028369256655602493917159403534617222700079014405327464403354467812892228923023356377103106410413293874328042529065712383841574521892546077947861913811886480765852906805538572965781657091836571049982980729334028742252888397498859110534229365247884204506987115522579363283829924169335874662894378804849968656067814634515596849175709101356137245039735671909721723202167446902387423496360352535038660737976108306293447289353478897241317791497878725625563895653316523409433699079950448118841690336293151944217612529072784412505914574640360486219553162004196847419154617826867260003779628548172813607249404507366350002712416924152556342860867499300279388207319904024343131353952878293457859016800518836442214084344717855243796937630594648483377086632887140313335087196796025060296714684599665706924493434633972664346895287488690945591555970935157551234402772544328830228972460079166625611068807326248589521264709106730404538818911180640014316516971015829034858800202324703492599882414366848989864708227841879507028256759533474858496181369044110907940795828531062957947875652019166615630090942019581055243317093145169742744123299822325635120402384270700295336394727171845693932063926096897247297792158586249300532365072007053890504327218484242733395015811804847833673575924915406838383342895990097824144161860725542319160213731792638378002210568815872213647290181883135962835342791754675519344261996036288597908854037040333976854783432859855727295736994087293024060615421060449703668841964262581688928718365687867290993459501919658696767979614329728907031056252413137679293659324712785559750493988008747580019607138640012133393491589015186493990756773829846229584379491897016272144364031630445307287981000156231516327927131967161178860655033704841431039553066346226171000261652775491486292464099209261034805271541926791907065503703463831303468490391348826399889202157909234999398505142672090514098666056718755139473292737113618785108602042459590504564542998719300454897732878040310599477475140094322048513185077319168275640849899711948522851753304656195931918720494389685126454949348402561372908946131485781692231514536341503116483904486454668533367416059187789608727004954116042123614246997183328669172222130997635307919312384012818002095439907842739941496005447333743222385079889957235940770071513363257467570442682560397922421553663981798173671549357664719156976825756673953379745309377619093743393240493963107328400136542027731034737047004370491547958421883304408534556446157931977380552181733642750267946467762647800662110001837428147661770158636599126193109684872618137019194559749841282209063055113960701376010226402781328318928877679378954860038077203189198701112600381057806029483703016029591481246978010687381227352572452728094721660244121527981539507085525432727171750116072986689742310712815758600736830323784937032816547784412211109148377849489577722081818258819806188634763338771143495149165426236850080127164712514094950021154034394311402677677375877388034030887085422180409746457700958340959463425592827754225315982989770086560063915200949428878017640751894936479253729197550804340903711322248201102670590224814544476278700766359996707136150582264765622060802248336363492921465522860148744328785343247994379513380972336686529543588871552789849315751492063663294768128222866676843301920359084301957003320288000408116422627612596047324694679534069624915070908508366747360799703791114418797300791520275621959929282840573892558251150579444761731210538511046136604010360447719267990613179608332305754960036846666004548332186707075609999558083711420926329605407845755647444932552940074629166723336585550388988359226675440562427544909734531994995911757759708313040422379340166701113955650166895730959498487225960359379661719737299239936451817215870176221724531174142479088086487026145113032982592906562345038705479496955867575210571734100566800263933877303707328102328498274515595494070067222644879684673035751382045923837287694355386711028309458974703424918128354351394053277322938428257219408491815082490994572157627859878956880755388028229636269501513474613192018718560172007188405673733427971853347376821551548983228626595438201155868174023798880210976959276382029787638979527927191401812839435300517038298000079251692422886257222579273302227809954445739989225443777284998385882127953727760065313190077516619547755323237844213596806981973002940411780948580531455106115003412138149003913550766187351326847053753102719974428793223991769941067587882238606112656431279167162057438674521211147228946892104498645794638261687527739059672586962522455242657918229728086132777736372855553084813200700984759512365619693960267205930733777354022693224086217927758789821281386020822273264790832198968655129163139153437349791330107402368110278204876240402489244150270345948313491663417770370359234183174354753540962373456005028656443557794674071313398603895612215672357012372056663215297855120125461552809317645084051009682431312758756099456766191584469622567998175575580821109162118445514002051525647525610397648415215583641180962857800333968365298207236514762224508102425512745282523028402400045974158478177300989081756161034501542450723909240381836194079109809446864935933568401645030111718622166064753597922588917629183095501302340074790993308080581192786739761461527391535461673773312834555927926437669696390222507277328524616090004112457966368986863935014467769395529106518559322159091183746981067508698133468868111133680904872123250932967062322465703885795559625621955232210935667368629111365191814358298991917246579813781330637908430324678074665778485654783489245388399406425016925396338802688820268073624664561593204015617483861978573264820319507555951388481428540316006115339074518517697862364839349327424505357724461783951430618929168746625340774233743768420193672337876036397191686993863749698624677122164901405115856840810647679861071355430074570942575486156026856713852143980950271701346570128024467131500847014144674010509029416895768632028908188736436067419965150734392975412803290332937596069007540670450261995579125998382531766012601622908201532752974922768664623325940158057053452469454807209939121839271823245602716511197443755456795823744814752443392376421411513778326248194823314370320384459165373323902158114397140873492944896033236330902878416922495495848357230453090260853919278918697347374479763972760226402609601670897018763245888002938662119571234321230910096925274371099286984947035985351975849290405406941800312936343204220051194404284100439194894256382574082349887083287946382320637058188437313414466212301011368893487610242007922539731221538091050276018834096158083858487577888939203075552399538497224474155126912028202277351941899857775687491047158961883830481683976705795142715727043902845326762184839297403840187946810892976354545263517336614612971541974043009635897844686260989945914027986774655925081637630321471708885073814504470749372453334331510039138130926755255702281903710555521623611540589584312136672282922266020605953725297437222222075977869378502274747589676806022596730383266322953997330276479732021815403404538451406771637266066691961040264600150216250396372020930608696541099810464008268383928938267936832923503302251774369193163842646160349503561465495385851512846357859907449916877447994139543991953917503108675593618187299720986890059833158947974206739279744753247199804271564559179394154317127211457430661642052266319373311057192186523128124183046002270857498987611542917428986827354677744470938703947457282001209267683947276276022892150358125497019693243556581250596326090468295898308791835551818945832857068319539592141881213005453604620953482395250213532627881021094419308174278247978044545705905552983203520497759996510614502199029596625109222661200021074884287014782095288593725076858307004964344824634680683650212547554931781361968226845879148984208194946969091429698833642686358782352776502511429571520505920735868398509405055710789448730620110468293160518712969654979326421877316433789752666077053396762258887126356522965515834914312516125602170060843477863457751482045707104899269930792818448428779454650548264489055938881240469952909567113801657465371286818860043593109171670640940579306068777045188550151422596319053219650860184540079136254715982638174430889748634713301883412697542538714351626134832391203047439912268138311802330781310536630152375930463833882075922572369115468032366513365078841459381586109261797639305417323368511785223240431401817341709395728983470513001997812224559256207092169785116169165548790129562133533317437777538476487635958964640609465016194186552601575927134454226064623924708064707719404486907210002503835384907993880798238622013874495415993189275680546718447506226267877742083947490998491239385954999429353370200979740535353706044330451239702520119111075436776060484362852912464231668778935340959878879497351440738642492316709922344714200411407288087719035545676115001577069768721113280661596843318482837239512890300643760956805796541600815441849749303580603009957354761430830395860510218457067358715224689448508886384020291781553761365247551143687343258416553537901094779689712081414918512897486252019705749706507583097664604325597258043851254038492431201389416402556461162436297893065778946423633908511414754006352981625211488895406157397278171283648465701852052686969371521406361396631609254375553957491792581767984521224203242931267430067510661984895817568132865255066806906211366644003336890773603285373757271803890561856779235676098733146562480739787930622643546398402450002757676980588281104066179282854754993161307939771554636182320277165191229879242354808859025083104304053158774690691386457323466652357524411425270654399950956188597306726948294950428217736766122247076766084257998061960082915042562355383624121941181646852010072834360334997274027467781181036142166122484820405680342962044340038609893663516987050803158398026174363935310754790525100814592438238826449136760653438646804651778869127628910373725629999822797922838967953125287685008609279848789262395672527025172311785201266409327761941862427607450972699788037797649748614416156365570503336345965443274200614935002071315491712283599284263954435714213381181170193225928978561388170692749954971164059787033898768120213884053371292184004707562961685570477258307792650297417449642531086376081807693359599600823826962380220670795598599351798565459785548765256546590789537338963466451811407738364286395604085059142844989023956597469247417105883334309632748024733747044952996082207188604777641820290475410111715943261161000311421891400626376186447903861038006660047556432099072335387400391161720552754608001525966459809501075372710188732507630339993385879812411633732065178299815682684140136016308293424167378652468882190418541022685914175903463900807540655722314861805164858052144644848812136751246387452355262872698754269203964267066857594716817682351729581421272664207027403885143244073286847219183721254180692144268419355831479401080400452393390225966331742774508221833804040923594914142146606763582771695878554089186739269681160493153946790005611627924939971729576736491971537959451752389617406132434934890965972168666321287262840972407575732161394172496731788317018315794001007252128126955856891309095847876735833343870651275773547320000861200853415345986802667731895827879279268734676686253522918577550194761523851911481667146334210595552241418407202884634092667914215609061777706191496427262813845978313282005281307041121692078123892628642579738100670194467339488874222845451364361331215221311587636234215482994793793225835334994417664462026267750632709737518313758715937295831727807926984771161793504913957886606516962309938408211076836890877884936457151831670336325956785162556935965351821498754897165423197320549548715860576872817107861148429751930245636758002195131983883956643493146808984163341372401070425614236358337446113447152675421575204902874144672544644897661724469824184740258376623581724686030462426020470936723039750525802656337663067992611755254398888633474428988303500185446779882116544333889672656224233303611194196939216786064197366197267219928531064461227695728057053016628894623159797481467356939287402583421007338923706030547005638745626279989392304093992477435819689793154115285724347710969790006585808950353712225197838200406526969144603833770377773191451364058558062699493470508342600873045959550229202470877320348031677737248305841873466408119412839743115602767826048289057510647553963202396692026698920492504435139867408452180888958946058204579853116786648286750571389507337416380812504973944903866755601399556271475841061569519004201230234252185357282154506830403846983469976664514974535311759522789974321028669031000262300894136837793714967709949654322492268277145717299622594909744259508886449391113065181021253703979195329989777673964676794653532557821777076158373800484054124520868903500253039273204359968358764869220973243546581452415152853573987293455850023542210412071372773586350619317872098285176045069880650847682531919339843416145644249772432618998163185833213248761432543227178604664001591464806940433228636509893404969274286175203211813466578598481017087516567139851675111303354408175391520335351223192267551905075206127927139809795811450003084691271012193487732282533107820187839958239559653287686840915386182812203494368179973842779582238818795201117047237198844066765193775774334249231029642289425630462652193101635048983230280856120463781520557241928287525186230721321831879308038155614709747591480219793526395839617546904693656565852752512967689054610082191619539695601237744985453803616162520415568491292669690898024412281888124291125187536429820015907550057888840310647479571187183688218498608843669468977061790972318997601125894061762191769788960701664453184834726709066764223951379658917154669369589132218413888262757253322955726444139898170667463331359302848481651570883903935965418302165627764817103293871730821022200182951105723833421720130415907804653898378400709527739442101156645739784946589978971710900458779452213137646845052885106697209038476570551866650100912112108245295902297630072955552667514142474620032662102441717196646049067200216154932369245654780350495501055570871572006681697646071743758739784774055283282605054232632711439563998164913977980041273647173001233004270370991009112405812549531654719717776320865933428268556238778791608187284657742748633036854908472799796580556681472182250505160248533187346957617130381276226816712317030997643890489711876786832570786704246170050544336884458353582755442319113620642990718836479924033920464852923581888736410259083870114659628508548819550791608818087851850271002680640373467797079511545595466886436948832175823952466109404315708725205372892114114133264784076108035231660018132638725445419283748252643668953813788382894820993081316650171195387219003566184996741989719512909909637411993230949392395026578865921872155089808518433891323479550670525791941078826364359280334100760818270700301476658573440443531211551107216065887354275158101469293532542088249808132351848077998068522358030347528073608894125953990255764980256520277400926658354433499324275546411239837539326373595848650243719931175477118937255427303953722247886631044327554574623515219106474359900047750313609157116215141017296241156761606720298913578489196055024339541715328566722585445891995949014387019708968936097021229263470400803874069895866315501881743715105596278751093433208113473498827399063604555562085776714619055114710162382645737712314274222006769470233033807323554531097388939781617948912969662590493528615904518025245066021039106629499005649727786855787035242062359709380313395160186998059701701067484066522918650653999634689268542854170064013456657487648924774325566218966673438163730356134604506139190545150594459611992085408334040241701985261850650026656797408850183627106521825371171018405696205851614877406469462854669929821799382794700006124209098573833488280877167929110466349073100375264292327174262794975199940874012809978409402939295470788170381624792561839933108292710143095801819193736066054266235879145557717185787366508913196124310608691469133728939182229842939469255026665459134719389986974467669503672399656972151762098548191806906539884769671388314042121088132731051287813536964396066449859882754159354766901969750907983542614618571000729762397409150739209416696782306383387012588602735225770299039020681283921344059677485580970507896781689100789878180306045291646887616431857494280822946925912273661730005891086067622409737262034938799677438106031094788012311605105487763006374250704130816490436977245671060115405148092682392270720512022272131664422403044349986037122385068031199776668927407206735152709566397153848021154782634123050891018552570105815049263984786917066196005523664598235885606976518924636654823438297123999226209693447848125095263246136851199812081065307516489638626724165893369026195103057112847728098671369591454920954474025317859023345529113553109469828592742772311410029794212212071814014035857202030131550405973520792257490139869196124467592442860965244269049692262751150003805274471140715803678873901033535874736684990123130964523858583646004972878370394455664526659696209784952130337548023696229253848933250236123047665774145184026392384590899531086471948212213440599301301256955553621739283616748604312963215438056118313843845008277598354730548380620301421839631962463686861907157292719868055526259258475663609812675852453400032875547900902865075297692040939481346614196380463610010886722908381748892470005187300436600267772445639113691643043618991894687901239831950892447165960981343159406195567663990689676961718051389305576056372208436997114859266087784947692181673474362674091753694941377976597429935486383721654086490536845732353186738459909897463560443028111103672455816743926396687791915261535554107705550204480278852317724524078242050338151022534989283272690698631196036435455977337940351854298592169375469265569436918873340376273924559851985378499942220077548428601627255504657375453461622606318489506908989045449008701703664214208041959018163035167973304711097809693489013823247134198463495930186398711376094423969957537843234973154310321045172301796466730798307852942329974796800208525784095853333039285880495268012065344765069518780744279872978743551624105041947475387923939275232690614570086910988567630854884057346286251416289471704844873580826075452381088436083823453852055378669159211334178998498036991203525802385037501294300472450368553999402737761918344948579946960732544279166343820366592771477990347473443825133255756648476621022430419209595809054710698503306205429507337889032860650495249476507368558354865409445604948166687819676414104984605647548843552137118910393611346830023394649028126996983812635987060249385299411701258111727147749248834912659689702140074439040800601767142769906251767084201762225504983360619919781647840961813409899923158904656130339457436761604213262071754559566833309420287224637430695378630947617458791234771245426851640015214454414932817813446177061596460949210332201261637295556837304562252232570611615078667743297780720216714041989785429952676427641191680138775130407307052502507784068028013099561159803317524345066547913048201029634018382229575916934987149078099611801039542692015313108711789268963697517267505052187750525847947115024955460249625861713409293085617166800897841199655569534240050171820708001560863874409971568397514697007606308163900191298716473911551232791683432734013570242368794629232137847018492280804006568928451847358562870260345241928590547246094580217987257884689315962241196797774797715033556973377996358611980861384864350182036143394865988628271343772347738302713570241070020669072010948691344445030429365861475623152768143984740027838088521054357399466872749705435715250376100525368278568741623128256427407742599572925112315942158845529156443073013722663493164784039994316043067796055656934917261581905167877675254627029337644050733686118073383569254908012445534021235346043157107528804428405491019104211116321714596031548914457535950316618721726465858737172653810346609341358050661894302203519558563980154663990226832225351042154596506924590109624379084746726328784424808792028557196999024092325964705287650579825117555949413041616232421627339597391349897017652361495153358902574369104090215046845046653036632581999281553672928627851831299526886158977267136472159078454187927613112951208245681275127757140479350090871796639662387152707697299819302504956763884574830375666270360349441830506704955249385487625024461837518878632673932780808615114279181329001763224652584263720050180766673356616778441656566109361188656966644315634987914477094858138988274746807455914487058248886027137043824355140388461838749674763043798407934337468828081442613754952481204229180368169957417573660790643464983449486763596879438754632342343021322645980707532724133684173386209994394691992290518831568474350612803265122905367046635521429965011509844476695664184649881795353605732043606908247790219143014643815221653990294922320065136253247933104879467842755600941163873860688300901786835211912456070267987398155888378517507836054554818514824305716606891091832192799561213903313902925263980791071888077925438703780647304904178686099838814021337978725092408648636955842423694724185257430241997697646043129368816507098471373895758883801914859158777101040529109588346168884521102656032537630497361399262852125514043341824418080794078193856399235910418695912552576429795855974659777630539083593422543775803898944892303104516511949783941571884761553550336538937040317905309143191373202786505157521803841375227818832815972750052859950391402672803550033694158186173627875475739380542294991376753274874602292990108957137619357744168174258173627976886583646353952749800998820408513194845207780959160006099715794703408350396564947910422609646012659625040704385534955421877460854872478997859453628819024877510812820716194891143072054635171131991929423850252788379635791281346072335489245239757276467442356471914142941877648429259056563964772171569048583816833174617023404973189007845142641991797155800779196634952565950635255724252985199189800024629645951720218370064395061449284859588541078009065694299933174568666359110793565556311329268336571288895987346538023740335126565742949674854265407212481578584881234189533852265959547381160640029005199621558644972506050431061809905286798645956485460357978873229330094805003533013932185663390267197611364555640529822677172409302513340449976924621391505595570335172744546682092220852130278995492677605262970776733668680896477081073042478671310180028883122631861360518147883900183058231155496995265590812101759904925143201280338571558687364197196938803468550235829848653593347916025909212380566726139853558407980014658715911557998787584444646722048668583301789861204062988666255741538886596853360054546061896541200222973249441082515680720961646760948393490547960314502404561643523578326662961397054578226072928951597894159021762179604214102302981313394720816076001206204011438043880638090912546955225839153501901507306872802386815473932070089319947154142866497392797536629983161299614291882048839699208622108820479682479774131897031166506009912920363858710463375610919176864329391650424678496509438100257008744403342466150671762786787668918567073498527737128248749439310601306426370821462872450669157226461774438064707045371285270632112053388858745534647163608632601718763145870474315412357691079258473242242436023758222187044091822674196881396699765643130562596116057405614393958482843297494524130769171905290329001603086740074918687655954134066547844619075103887014362104845800327402156570121306786096447756557510129314477350955321194569119184592176153078362807455961162304432057451611746230339756230360233003941843675806246729695832593883395651597322017298445759578200181811369235103911277266888871202045846701723894414398605565443704037753278001276802638600055083755326027654276502963160105311412977263673925989357723400964224055118240439770725092965812012437033558673248579053121225777891027098126834921027974363541842513851985070904562810270283447609133355208947990624591057816668534847492753478120210305183746042918407479555131329707588469020965466486930462165318511844963627658131349705365876954509072793520610015569711743383868035509399243241722220895760085247402374862418268370117577029246598910949251483918814726615541005309615878599525581599142525373218188916378571629582445977222486999324223464349125829948065509525760681983089975459586232501330973300309471742964897859861594998427114884598946131344127096625920065295929944528108061377627544504284829003242578534148190137458714082443577648678768578626858141278327713852777393913571882803532467404452772255004506936565254446897543098223381216731953291720395407973850778729519348849958939155732643880373070333733092290717164036278687887326468833448902511358672344770432116980666538168570406817064389337209205721293823484212000443979047395343207788091206495856056225730835004769175910640714607102206553136577367275186191163692096656977645408489719815447435606836194421572403018213500109702462027092507250227895712862016735117207766534820677904300816972277163871179774528786607959816229147041558886505571021696030048286362275597298038504262363994316147761077366539225976333975214460880596746372524561641055941099290374044284373768341487054964059766412944718767504514984340126636100233134054377830644684836017509679777765743059151060188560159328813672184226190092533350417836330128919978203629020148778567349781669217395016752314989464234381090070237027133400904972772281757115811964547794179353190563872095809591787225232547024651955106232895738018815290589609684122098562145787764585610419198189980053709539825393234211997293742726638010363953205675333483746683604849360491818198603096928066132582393347913424480571797268434256135550061149635585653773196169592395973447867598350049874858092139402711586122812703614618958347886235118482826476188533865527641321907693091180443759007266929605421798790394703489872593407654965790989030043106127487298309192174437808693629108239283097424850423900690197350513909314720568994532619482682874023216843617847794134567012236278713674382619931609116972925815307844860273976362753401466376712976263448325431014035616724268961719882041192426038965287364962979262891695730149397945085250504238451026502864388624334659098054510325197372261306127717173096736687757090681835843875123105373817842566202746921896302802399183547197179488633615717931289377245697165810618164105804972362045334273877958025849400938958556361439421382841120466137813707133745600143544687780512649292888615325250540702258589779985620857784669839344730051263272735021141479418943054471533415344536653971954568784379727272951837225138864800700533326107988597946757482679697165557213421023544623830971759499538011072754553620206911193053626727354557249000483986700529745326745763875786506473775965693858656924073534710052577517887985367399372737820274120051571469381361388116111260428651208446447794249742318020711840845258943021038133465490658456666742294103949960554563784676272606810614786376041576594664500568616983520407794401724562708796646262095048527580447583398592386133547678791752179317480337677877150256140700481466210024772141569468429104130924913120805442426433006806425135524104385863187916997692790295254916849581325169842076904167825695371200506615618487550728033060863495703089920700342283509650530124760060545424459524463750162468437110147223749650998818571015935306150618750259352634787803716950391391510561973244613895647308879841648998904902116420922712509669171265031874118860559210134452930323627354178661538200620166492758188321851034318810589381040007132101996874951584463346617076713554250269005760704971363016356048845756581106370566163137302665400268183781620775453629771301727695404214004797224349427000045630252634146007137790319388367622024447445837559807812152638314058005567618177208811406502786586144506102974395046758425341926037381400204955207998398847782919481067018945406962698226341612821233694817529369358406342250344600080051317675388454457956957597372051024811958520668813141154862169076140379807703151752178216554908949893817094597435138587887616966902431342589902206077497948635726851470259622012311799600824278628062979493321631144589421720654512421643690399249617343341386607698870332573617447360362906812627231450576221428679040408253497137935959401193102278379235087487452739783824601033887902560746186417340969433022679641825615117199170699327571667060809754187198276062883214304102703973528927792021128081383319418282655079627226045848318440148629960404091809276220722517999337794903162198968656926268832990050298748587259233081114814487445125454673804344400294679863317672284766580274228335987668780422514881510988030485746797895601316760732670539552103633187759993668806248560083933226535514492987055030513769580998977980481997974558707344425561484940873152104199788316726145287958239750814349726619182523476791736241671635390566795051720053494163915873733034695219015097949507857837118676553362544772766556986040830514814185411592643502102336216490878727794512263270803589375801036670798148283311983109876621618160849301989683027185208681656286409442305810076393539883026771484943305206148893080755786231154980644100081474750261270578626517635550544275248750246156514731853623798970557371601876794145787701840074859149738527698636997531447441151891543466491257339842540624425199435701347987326684638683821243220853072750762416267039895241112726329318972142700373385372706182208934542585868071264854708443368959239305636652081910369918979258428304134563555530667312888054393554871509235918674614205613155278837484410518447075043820751266225746062806494691474672390745261088627135275892350325562566103132251073857396469541326391660651398771910128316830556720858400531182245351195313939856509286556806407690607417078910859018424544669947701367985140532489796285388532163953823522896304078563254343385132561590439394080248445557416941607269699327150796442198403300521621662544361193243552631485288205103684742758161223890361649985942218202786997025056548370242362492670864060296976964675353806584928084437972421192353082126476486708215284888885117306872973080830450124088135501471173313015272405646452602013922323298378191261512847538709603943622043555677342488809808873864941513782380800410416965341679783632517854360481984359707566078052206117147407578137440775528381855809093279957098574641109661693372617816425812734460570533490374405946062584181596617517692399787549968366415783085996676746259498976934102569724042326758728888694684795291510232181979725399806946007903061503297813827704643630330493204640090520603551435324641405500461466556400207295253975625803636163027336566577471664922330368028846959450671449195186826167553096080363788569452878229753476681514121400425987526645057798046560019134032845908110362592410176669834269935303219141818344119106066483221980392970924387185010858427426855811698083312492071869449601328814500545187997278411613983274802094599880978734955198891630527991855279421455173584324498590621040475230480973891757664409362027696738521344856907394277444388226316263852534019875974657780501203803060603684818460153396896571250207089666128770222987941379145480932951653014385528864675047602049785178792610982992714628768326628409841145955178932031897425755346268638514936672091024289923447658277953083659516148988064457247059637278397777647575101904164444098440096760172154596561346744751660920124998201455508510354139133199218844205364985718775090574814828180183335173356358037806714523728329602988070854889005702965769726049581854243925523177560369261364914778757087591189504975565629231764819285566237208342461848803180971052895655651702118611777303628630898336785516619595677701660109726123602663323205762278102482621203490532088484494988908609619097264274832950353642065216735775675812143928285304039746961906611098159390380091862990636610239968621385589704451372410535165973960502159550055626600052337462686269285324517469223946874652956552977950207271584681104382731664366567102554367908580606026501667334257580033604501316641239334553049881844419290239166534387699662634548726440271646375081865620614763384061471998224582128102771444447119965518176361460770480269647871138542737996618481815678599671109115327888486016047291945742410954466545120404605630130253943908138657469353984621551338453152236156548091106445887978977666935061657074330278765876581356004638591904754313491232082631135486034037172960462738951462012008280988320712783486277826197533109378710800415203043110293686054653478313014234606731442438002775309275175580092149646694288657816544234595644259865297732434847394337759793677644720015682059373811935236036710783366261241762962753198864715329598112912048215139346055499959711659528373462436464096671367574842901365808322246207107735422165967212998078228090806797749522976545575943395999090967605521910626157243017261814608046496171760772951288647285493622710324046552475171365366704614502356943788535101513814532011897610915431535690242817552356886165814855916837114932619648953288950391373119477792213869069752573748611955229860874673173142862032751582178278782894830005863738489551711110130751358350847354229951872659172694798540708858580431882259138746254979664622492012464719724423121349031633040968057488146077103739377672713832551168534936481573341950091735065654259273640416591855710233129598405998543268152326353142731082280021127109148241096636848806771158608708241986058418210169848710098200696576298649807785904872464182287766943529137306361152414967489494593516411079862090621445790754232604887143665747682380288225875537444030694804022258656301336990865604747606582275279145855442330503253899123820089911191887401319932227020623650044409070582591632458335138988360140217542263736492673842501344949776403837451331292592865290699036786621399281805155399636437556905574255492094579758938325201267932506562663127602311912638102564457729355511920452379984798322857429164138719683214895155290877667031671268273809757422560550938039836561160680079802936013237845635010362104918079242654055445111198337282078405726117282770044369343143577313948211653376019600784215171904156036779363215312408825333082370159333415726194469052055962817451318226727452165089010645797457061535732439536140521212175617903929727440803458321609281991862021878133150533146899235482998811441303930338289424813520233730274219169154967247287802935295206982471506116300852407113553979005572553692362380330835720054742293383510224239471310478217565636556804008459861696651032502461660392386181984884013623241153312404473281237052321311877440388285102478949440684905172158912165310033861849172396241312561893466984722177032087715839957060942684466321144078179430624274897662720566716011062106981031617479427893538301552231620746932108493249928944439033791756891333318928817757936127025647559549659996974072351514627339110036823593304912475531423734525682565550565835723709724977682768253583317840590613332423102272695572019936587629645325048261590289506388466608024113151190854599016942060263618923148649729997804524671051946771812921431265933298771591898201678637479548934380196961153990945516622761603905978623261048047277700351185346592204339342255649510434060451224980849484389184423365433196031680847197573552660166047720776417520508133247456027965987680832247338734493884828828825317853371707254645787804905457062368347919805399527511367154997624220034212735577138638169344315085230081193507588572524562380584014628213624486216489036870173563646004830003091084229615192813571720672610594127989588771308977142166535978947965186144258633789899696902538124594056338408404760110385511974236545495963044384377002128119487147394380234085234216079737622300371957081341790328511907858719345798371684789773211858352981392130876811110929870104959831397108348188321118547534013192686702784441324465574211694435552737673482094166422340524095352380896835902541312873112035049842862308280136490715974824828926590302638769150294963158815864440977964851812639699837111872688526054757431434097799120413624791640284899672903491090172475631728282013974332638562436192240884156439590663016964941779688355946945051974506308863375033570127582221420359101987253118011393215664984324563167508819345441542573596041505928078150400573934706564632110831983560278241013108069510629049401354535450917434238783222866035327320833564120403330321301003714680191605837174659311749508647982533315424097459294590027220449265870891636284967932639229164312462450645183542161135369413887212613008530087249914422991006154583900195238978182059810515630130611243481790291968398094020687589805362552039711443645164703800200015113727762572682554547471853378754892788221504387402115431797947469417863751083967126152588693498972364843780156468637192013391172637248550659731806396546425307154894491978471234054073986133507519749646945701091142620814351824486044445108447603721317560015105860289345236025898022485475040423944574453249932960783227541332130059558955459658384795718193107077526774631933839560383895247064085325586991378318078891554301410443517290520886141333508220219562119612041514486551515041039068345405254392736737628896226786125024051397356851288287021015964964681352807965810561386412348174193324183213716652795481116573980976872478913438922929949976779826798365303438224998064453909183626086208996747663483696147387768106753924996773180474602543561442284785717360705673834787274654735590049205496257668682818875506379998541790918433735827994559920160824234737578582506713939860826547452889863255045924192968760726290991172898064329875600870166239590371496966876655846618490121935613820042819911408649537469462326401932798893308592123671770034264317853504995048520742278329464380403719618700858063850214878899594669679546760240132509461904067903920572523401246978239929803367903790187056730853160557029365539469540155684486526539794625002048219717797265572406914914767295971647098789927373809346188666964981280594473004972335247833466079359530423634117052329783802429898249380947870486947377054500817429464337883607509688393200486786159375212594283894989849431787234420996134706243775647108646458263098410357316403974164386201905208197554756477801229212383181952168594449780778851794922307702415857103396155028152483513538782034917596291379669164022956236578047473077200265216628600289063036530232230082145313392409105959324277083044517452841967794384943284135261675707618374822838059866931098285720817453210395561536656596357818967582523102551218888241178269927452597375639657179399097700216863587314315386988011165773487746505782668192113131064458655481756441168653080501746274594440158549772299689099483690121612889618290576481284592270798279022295354722185230572928406156453185758674836178268332025257941441125576047718731083038692871861322777239530034863530586105373334391746793404192907679116390901844319478736249303022996260684812541425092249353049161683201336029812490245899712787866343072780938344090610907516380990779330901748007190789878083921062269104577849253588754098520754110859275540644844466313104412077249271406284111357672261007665330306990677431775848690146007396727482303880691320380517290806880169336876384092959811138421928427833458828262821900945230101569042298707427149285315443813515145475515149449808706590434050435043644316760037968954073203650488828265609774116958925758310015150831489470162919652875211496922032166435378789945604460120618573277881440040203158224210559202586334576875792848953292539475179159069806695584030471026353323313273788920110367527988110589630581949992105487601375628466098565828535203412836997374759149722094312009321808993358514155869513361262159640838861962534404570338167644860102164763930798454667905321641688574257504543385749895700795400755602447201605011894704890876383515403446748989842710462154231843934132442943734220585221333265181703773504846215472329709824460719907349534917024782338723933188224978641417136091099012403539591339940056945617950398732067931283005598083730811625131131316241712425820953863330318796971595051327173594146139530300364749322802795478394593568370053828088493135152981644955743997888937863373583541651800201400709487268878352341476123165359952616411265451460846177543840383193967132148207222798953338307918490481249009384313387008788534778183593710629596771292904864802636933226531338892909102904549750078656051034876848500737095004038347340504748246844833100174575054822321146093062555958474311076607493390268548947312496786509526505677678007515744561325395204343070328684365318575068884455615167418920101119281727307302472995319903222557606624343982160406116631356881179362725059226526638918406593400490952447671054857942995795371890197136764183602258275492688178609577936740435449560670082050074118726823601296403314076660284152542780527517556670857250319022548400624511842930021358231882842274611362373223718892256871428558654908319380372069904218566651716215309534794269804905360245946392211097453032571013737755402216570233284579114728403009868234482319454278947190410216484717499209453342131908607224616916743937217779455701401154770022314641299179611920732609984580380193777733711939608874752207134613719262374341386443077754312141213501184249632012530964000202949071579266031595666465894738715272045828406087543287337080487362671748356731078089654896875166054752664125692495157133088123279821152363936664887415519665323821316981959357665328211400583911631344773984393196817564804738101438180757181736936798100662220370968190733783410679050214743491476616432669888924630292238579292356952187529057415576083500672089553355264047668587746867126505866080788740672922544286836778957358843588531917200353319138686616650564606878000123367378816904853573552641951437835073451002772325373399454958562599069887577951597200747379407949510882579306143588904368929208147395154611866557369499848731066813182789465136633984640577068562395267731500823682696243110392642557464183323656155038362493529687383807378520912456770765404419517760028102591560766222306222272883638942418800819463465613583153673953545031275040290125135366797102952304525637918580858912076971876759979938863579317205792870225890185372084999521443298683598907464719349374109795923493009219209366537328059599419200663330157310009058879203816139246769049025672297759737156762192318374171252415994336505401879074943323514930405479650119780450872816286720201160459192177515269923977297799920271418171540711964327539137736870584859477999603093643155240046091007823125611569014509517108738716716780151046392731485480095341177995155389518250968984669376913326120222738594760699877904684911276258889722094750255797804401829534104927619608120550493695795684285218739965427981934488600650901961717332182420956468107258696395118422199542798216020575368017623411048474776912642147677429981869096902194738977368896218758291798342423194129796194321626417877760023852282918481566290781854602275549968778916106567743173875769884336195348653871223994402214376172881411569625531150757504944263489143886590500827069074961108244674234720445569480860239040942053005405825865782507116875060472218113940993737679355538900608493682184559763295955184876746971517580741344177464421163239554645524259671265082290394452351352169085328987033862196300233032176881834035513300327222029301066359354096871146488887868794759891788399452612079281823844413585922874573189333106832196312753265451745251344253729430358706684415683375076390671621026891776969981875108963445853127518988900223784981266267153264345803131112869637942670203394470507679259539150911946550763124477187808880955118055972865566546962906733238513336648963104925485184712297836582185026854947983301189048411514034213704671555023442599649955166876299837258168009674724782817832606273267630714358793776592080127869632395990620855265790672459721085311064351332549182558899588077581173001823520024312189859577462085531057199648424519908463801023796709190537007368738155261942794376138048994404713173063788809752705434405482210426230987741232009649828955458384810171608295568579903105522863862405531966314752577459799705819332988769864052675568972912503378761262632728707764175043947628472733854533452691451226517934307146459198613490811853736527485902372850195074737278798702414498807661486723705530517131845276692082191922795666453306914504097488119390543262553163021141989004191573457423392979477254948703106319808725673244690457701247497249794613758384909557793297892965923189747071869295178096241022517209442883949861062840579450776334533315308381911096437736890261634418897897868139483350210826479330864182403847364557221713099312246980542321879598076266270239565761328013467521649168389813303010857626023371593307456903270636568513581405468101847635826429530795939893099123625443172776361919735990253185767522488557700016640270268693373923399979263646723800805459085571655006775858168823429465558891162313567194840864191116941751778989213155876739849643686288563729045485505790318652883148571335904770674267597338445412564391651612408351169452761501976689013050168822457634266081512590362872751888160168720275067041406271242248217223149088193906115455634110082386880182066268345731819000151898467636001496891795896530308182754847400911624028499514305467147190691494404492276238216807732385405956895918838902306795084872698408205056858871678512101985315990879853278414022321771913744804576429480464472913103050350813174389397689165639970969504392532616690816238662430668578489104031182396227771463697232270279015168456921856395477489578703439787018203987969907929836465540129549514793178793662256840932548263647240057322657584732876730688649396968925354538103698451508794009629129875742434166437968263717284982713247378716060652110315892494411059738579979707736482496300496338767191040169886657166429119749136053132367918951110459449694095890289842269897906316876822443970561265272943568888033031165288141840087241218030717833220592115250420690861042286749900196944060656466524713198523200618513563039948466022938945344271319040320344324540446425008392883710909714397131117721415044184159199061930080904319653752497868910414390539940089615333413459051263966363667742478413601191454550851969525180948342802712130754398785935352692815305770702254266035901131092397201247902974524829234003022390067521186321574477831984671789242189824847535865675726226478544711991684253975765882636130374981916501615805557302187216019858960279963604987884795357143183593995259848082145865831323510275110652618888823896348759564553940073581339040508233458597059414216980387079459928955259429018986387510176453358768821879662878633486869627996243469899300634501820598678997774511646729751048920311167451817497027256075552098724816924463409306211217289283243011277606146776667997762117352519224140787998356486564362282075411087538263541567522111170357846133299032682847746363926225832124371245993457057797820958554812739356924161722274692448290228094437122160896275511113200513416112559676604625447149892034595252484218426709045479111997781937687880607035859384665430726208305180606528944686314157290636524496494479785016218111620862402714812933484877309738121455535477147679949865686692637464878954409659827537204133388408241214447485198070949294002403946509324767500496845922534177718459493795979177019103517672303048835261757833997467684049043514519050835972834660996344885478079528356558383321449666998520408338329892190142029131232470463810737909432863387922330307616250585121858238829948857399977618015271557340668091758989067301774122407062038981108628976875864792400188473806135826776415374105949825856558292808020783993685434082337669262934233322536974985398132540835095308323496801180194939066214688584187674361180420352885522218611121830032075004960822609443313943088396475165079623413594661160167590777210434191717914366792218761133452472459447032349205847417550948684949932875917598551120311677381205711723576796751181461711162949809715208203222215600126480301959957846098177864655898618242524067499554100570022660136035194700695641304567780444865537041911069118686307994462508935881341638598561624282419196735702375190747090638619704751884306417381783917660638996456568779141308622103292639294366648143818075807470180642734316260433034091696405325602054788056382661973690778593962726717157889736342406355119966647930478983241454815528983297468686493304920081607133532389067793486040922456091607239210286934518577235460722341961593544049877621516555158372163127706202068540396673672636567044628484027116488126286159130882892725429520759248168721694168623097513218720489310185251410580429296830913668223938204474911670898115405136694164148754453347219840768231400809636467219106094269968675255397606090520984964858453071534907558603092976987932031429067253869701671367384560359854003091856746995706245351840455841948034917055160614276752317974131562096602179829633320805222378418711782619705273914528561901779945571594885897887008730230969285571155415200629742458062376119877657755403586246643958340656523885433822035867143793657750610933388586669943700187743625199791003763989725150886303455494209303850122770015305945340413249475236636921387118009430690581791098394178926926002259760126112611773261086977721181989462249679778755162736889866585341620263307600159048779298767879150503512143104618073555464437804944362270357438053908175455568070373736443069186465742050930442392607011344943275200807506495550058311208655828845309053305194519363674855289778257972489895409169004216375311472744615253494456751494159894549351973835779992371064864716001970228931123637073797107870972788001707407261479303692661487947654070652880005130885864474731026972343659966115030872374688923217237870279204946017975379106888536736021340145148477675194701130866029415769043652213165379268876265737707073695255564462020426111183475344604615984536966647194492844579562022165811376094241979705914011867513141038829647204864205312981498552097009729540902558436846966898096092473227988297798038680280304528973997854823909868697989968249113990933766391387058302597278418503689930638439251305470265862507407714119157608379561497160822343810305978900808409114816594429590421793871044841892356075624388314026818392039530179909951556059597532477887782908314512388855770308141070832496933897717060899236186495361085400619503441157153524460066687200765999311541808436690616647585093206869425594991969694105474013161359750331830712243948123828433446803944555888488338157009851255189719340042891680065116245068510712084388076954128843344926631955491344994013228884132050616694185194800352779379944440069404284824346248607225433708395759518924093573452524277587437945404637626296327012429445260758660734615542710348052073400614491891975927332590860760001666823831008285613886216088198584089645832253399874537665676122340699915118991382859545010563309625492226551041063862863091500797767787571578153066966601250363392195854251019428506996026614232023949051494935485985724245026893245292808261730512999437431930929809139782343508536471104863979237646140725859135815586492198366218232684160645630953994011725410127894320789253079860739263934938470842524476380795184125094307321463893453394721850855752458748972687396204461120507921298871181861108695657524547205532773754808756819444220153075035545202345952025875429373968530693712556002173150415935400386801073844909975600609864377475709342007303226485124478350494334939447151074741386558533008203139439171319255820020483358169492920389037248657988850165457333739798837332866270783609284293343003236733920727600347080220623442934145136554804826692705444759763978447202921823044118659973582250481726184818650855043804836786982115669602578995847993245414479770352528425191044083616200651874299258129152817733787345184000681243098916141246086822936129748153305224919491893422568263964160919164533841743796614507316630685266632997827890170470395750490089684072701757207004378213435967199247969660642415486819820078639252631361105109817905712502254688737748051091607921444286303819567365427046708606366690731976327301270756456921906400490735864136734662221248977040332064693378497743543743801672471962582168647416466232587930121445825974232535583443508405392048152496571795381490235279064926418300556823839203342758515519050018969564589854501249976582040389705656982380135988932679155286961087512190312832071574049467943065837320622641169618268983903908044993316667796555270258620818006749263828733788955384949232463340928728685861446212957132714951510676196438148203551227390108613203813482242044480799651952514984649533248427836979986089123267650868719165375688151035279835729247859241653300561420212753937749060395381292922507444703871162046148636337576704513657010571515851835342815808145814510659612351260460671286387612949170039687024072060963603506337530278751576959702130254523797477861048759544421011899050781224349349915174299673065552619550499918150410096209772455602257913257287660797374321067824290234080329894566707833793205430225450459719488051829209936411661046069830656835456009548964984532602578355661840291550155988460144520643319464692601172716131841446083866650543781141556915202155465747757734779032764155935842538171601160523270749234360153891364525178258657541551608047672910376902784592015276777624018136276465690800358283701212591847431369969135417067731777735825259012825810570952128695632298171299627493601827276792881206993288774276188522225855223500392573989471911433560683181704474391721965493204080344451029061264372879283806957547259040839843780402692557845184485826126238981441058076207754137908235080762682166684060457914728828347107658317835894947653422320417117932152055380480910257136178440050860166482186003803712689334831063977269208697165179986640507031957797358922904734461173137135236858447481638998827722771342212280258929287748684045736275883191129673837896251210690494673555188030758900576989808615468356533210712430951406085017239347763841444678287467203158084389113225348112683939864327939455681079554806976402368537621132689313796065251171766742484330550037826448891182646831520134119879678573384504510026956648428421705656111901441401948873676092690562871831049181618788832097393356382904078109618390652641744360349329187609686409469130085513174071044592806993815901825385293587332261439843496116347308508760908416657471642841455776330733933308931465938804968321308585013762246889648291006886687798243420690728427844308390985207222161632847131899830277290246768859426557980823202669847511940901305587830049133278237026890039966968926518908009485779454274988505955859346938521004429021955526676640999072586443609479610723957744256760814098663827732994907624385969183920098038794936799946567036267382815212490508586114905109525019692576520348400860322285057913026348774874547833679674161824956900531497878405936656839070321975090879389311570740282918325698353959649724920340418478238279566573263961413062619820388265257298562943504392483458524429435577168058332875853611714226236542890545892621601491763592389208899246138218985282966935127269793492424628832104946452729012187030946740244123289068045434597233227477787160486816975715592088280364172885473249241064311303222510481480433541195929584005702178440951504475296396898592973152412621073945381231189447814729414240560013945412117389817117721809945802752426685268191462673018922389593630052200940749293055160119133396638500351696534263053428924206669954936934079428025348677571219095331288366170889772606454273787879417407145644482505959744488192013331305919665852785468675968285252966943425151172270657920367488860805765824553383924344405059787344978385074719881638108358791316648089591103093565348148606194456149490326346055676902562838000412552263527965900197863011056441357739989971723930252994441889122216551575168478871118298815567028427753837761081595351430518634192418019260068828842858208065535264017354946015473879776411503146429948554436474957766325596044500768157879640197677626884920405782947844151525595275273017187103620478064639148382550764615808414691573595197498805690219572833550666339409867520197583155657467388126726520529082076351388846986534128894171269351225965582922623407093576318986598293645862741317102998975328300400286897403441588801518630650468067053711942347440569373916448176882757300664308001623319653229466811619125092454085065982714242024376275405033398839104039765983326893054974109748325537785521584355514063615108146612798297549058781006498371363848169652060062974142665786305790815944513443161083108880237283682073843688720765064139048165413432053720204586390255242052175200385868968171431969298319643153908611178080370520817113653221490246368568778767197885041776534682506414161322613741233331216706387605096545604928464094990442048222231340123544896747213676478908350513391799931104869235349716787767597574206717169092254510328538248373996410842694890448201157491319139942789542634483699880887288173519377044349693375264125832616565150633390823108352823215863523147790714510335353603085143000687499413272186850122470399310142940295759520985480867773274274367571492678661089690335949522505622811199694560391661091351326756133000944755083430865330772437064472610616639072039332978625231149266962119666633133239500415778314990863002890718108801770972400093393733431023807451392342194017742922309755005484023000839398980827105669739962136065142354653809483367869972391351625340003935490404700913094927082038095824979205186414596749823231781570424791553435126408934732664124822149563776587629532551996758188779222512883421472390718834195983512505260819821410114315149212925236878095755446270398655107824290574326919941942457108968409124680940509876159018431554274315217440754059710919988388183740278692969077831625444268556124348701629097191368490071866647039081429370372213686478346944617022312741332825538799466375190493951728160773804165283403415647330871792052048637824968177451469489968692091354655565564188149178785566959711884590657139633814472196497998188819150879595381839041516242956822636242934008340956490168816386557608429524710421190647249819163960201856931946013794374962199346582903047184702883785788731551025040641144826571435514106996323445402607238506916055593911648214894186146384041807412014093987997773499431042721407669041686016817738832484091101839697521116657978148911339047941060681176573240008757618093638138009454505412182592496755598685030248606707386882634659171477848989823045704877735505243068103706442638030389210609342686817863605162071985770534392170540576477835490080196168299134083282900677875571917228192968709045032982908069810531076649035172221613554590014883118743331595061852743734261220759231691643024622838020246238429940720160366723815309591900760750353034545004852347792872186049579201113730831679713377799246380820084507034193811061149454487787430089524821851246744443752258009276899309339404205332401585683853185567627261848006413773033387172609558666272175458951924124454825566607263280269544284277898712653778582101995592828516297006261125955254805367427359382528945317720811588514297392924236300446891390615718839424930871026070523472549461953865435685034423204340905469150866793035379182656012805631261819289103865474423526021689824331285845318916669969030098080974877106810556625022198335743088515233609435733666903233403775294175963171506318707780961399215803892958274303277614228476465887762037511334239333096516158187300761661161559859250838569882736920772561532313645234134757735379828314790275650486340990597521927139223062338132190341587807803346553300603287728564928759797478870404426796865586277066614989208345842239298258107301168312095967568421225600718395747501408307076399808653999588961075435170542585702942687584964841420197976976438507784277159952080431956336560395794206351505233591128885045168181912572551743458603119445534147738033038548139116171758888690891288054714191844493767852917968936597540061415204856512750990763960455228078756639385637876944329760581280169868002539923901057942839405649138373530261572307352108666997330385110036313455330915236079003964742582990877021039250428372569398681347954190090973312263190021349687047566993814813776069178795725433953606431788029999551441214988858862471126281189567700364488173550796284978929149228094836729344792511275646242323508476682771474263652241411105689973735897479008489823704413514730986546540944111734245203525231116803670328985060772831124126108288447294523649997378444884671892264343704135457420094998423695432726377234476417984879539410321963777364107964535457279631212183716415985794834518770639649597308746683774875031095334306785573152851456216112986145707245613871300926918799310372794647871142676251071592306545624489802922614693168991297512066280408455090943408630268515704966594894125182802341238650181446325744651090651538255475001634636439412609534171039125863961208316439326893369686081920113993160805631236101250164745219619092034171082950797991863119942276587791627523855598793370858145868937811652386412324144502243868247781403066546249633809763396511574615872244116205353934343946871624255020532200907169532103539123066659511177284299137587351740436879089649820483575486701808502169371079520245399426022836463294593288327151995027865227608160179379665531311235877316049852759112403868724766817518977995880522253254943876814460993903897798771041046801325713629382881935262390571224509478168361700180011830666856930615360585967038569005919339996305042762132123941572015636275545876086864355994933252517207973431324935477765936440065499276871534630562225936831506821242178588026831014148271708440161099150817213598801646065877989893587865982409369315812970959252574649243217138907496564911644468367477385198733296562321947759258911952970406246185771398664339041305746010501471803374733756614397992105011162283047474721695361590811981912972689306929132489376584093403732980451790127986573180638668676273126233876513924775624468833883650201482670870737402467169099951608454879606436715667735985325346089150306996205535763837656623395892899907694824373712561513995612724049136238318920013460684787358494462970572661681848752164630677255931695252244281925573391863998790890410874991632538933603227551848468285577733108184586882776211322057753655258527692912591867089122919601266830012031935874009008059920900283100998241115247788978570232703916971769185068604676502817603653165942602713695490585557224289827782250359068155934624773538082945978475841642265294652322979111674335562783178920888419219534857782081102315524782418661974437327304332508799690277241013704352394590299536495860635213817759716395715214499712543308148042060056545807218712567357072589641175665982020765636848133078699836134864915154602636294492583062130595977894354512278088206951249638481194826803200734132713246890384573115829951456182380229573277005449815266540667305448432230797387730643586153060273095943121185524259920030037994127617864229369804772243824004191571027656264547491889888305171937369955372543316659116383897764573784359894416689228013074692626915849179544557499648591555812788212326556764153820105031363098373976316569258588492683912194257890911278042837134467579991364748728017978450338364899364246263585724180687829017550294088886328045168611868508328719986373179164902945096044503754868023558777992975358018311404864439636230301305787027343086103043258599831242066393733888547004345864703347277957831180390338084711640377248021970603275976422118752413127243638503405781986250130283499597218087057199118738163824692238192601490953017479472020027396489210198071193095762253145945348791083109165018083593310515173597906282173118014334473273345433559367342080117873696146487758818261529621089636133025452814570094352785680144031436857811032642108996967891946919666047804655147700243368370155031066717511853811136157381771407252400047224941131273161056843044820368764039423125498591147955051919632145570310711097570800220270573524062024470443611627439243825805862276979800825616933815725428427142072829306994816055606469024720455995631701430103578824217587523381023546326283663027432949029071398622896425365746809959520374869297539716514281923115764289545488623787594160438361015657206008824042297138383139667844563619996231827650789021588062559922396163490897187409977629197631215162274126172474489984243722549285921321205647644645633354393987798724738915030803954984719504480506096634320308765727771323121653904641973711630167745188730430877302027669507951097713006863548552060294321708028382212451891244879895048191293784161052738429290984035816413205952884764614466058388899286244235938596010155736185238086176858193210639397262134425708581861320940932427652859614078403352755364398266864847278899622086822708767417772626705990974858046733648310474574608815469446534843013303359806111064963814242637085664038886561246299425530276339765799602229801809038776958797287610850427337769952150085926587792360093930625243866933181323671937593518097317674760264755170693981402203548887811993492226811522044814784002871042875458274348933319850876872199576394000084871334897700520791764695249257703048908257825825392897908970078085492447698996690981143023475399871284785014075962157083052641932896964214336715011137337377664308710178386798892926835158868018403170248856024761740579834056247454823563420460567845250945939392296263908088716894584679898461584015860780986242679492710553408430109558595811621540573136735413846021975040851083788384042990426513388228118275099704255908657576702704297761264431368845264427739098687775286149375533118464015976819452304543701473942062521091420615871536480945880458050168925760842849421397808897053640832462902024717464588990589262632678497523951268547363942975839150462496548821563949600716394001691089233971620190640297592618046155590615019962449631856753415670085448069760525278686726673219818252316644708369356201948013716409600609869504161701682948443074521917810490059997314808993916568057862945371348425447733995030916191527719475197300670722078926743883010717813974827120915828648438216769047827022141663744702790620479543372908288682850902291557508234750684332725442382243792894345650858517382232643305364580723981646950324431445064652677948326323479825798245430203694202020092014533411072415038454443895118977716123138728266083567095297015381559316727201529706575240660535855152023664644923889165068107072683545933852738898073395058464583845307573786290096788893009607747206466850728429408282568926786804920288811865045718555618699445047845176857954356264091049391133568685836959728583139351367865308838601970745211795511905104606426857277999872923994138595179128347677012486063137340955998451538033406751973370143862188116472752719295139506988762971248609694201136227456435463979663094063483341070729117517513974109318497255508537736303431753591063144437100781281876355434601264251244977933460256663416632752615856012916268811178068988148194943892276295147718337923334230405892826293720214333456131297741891648853789578619032443123966121012879419090098972208385948141801703855683651385594157681763140095256718211356584586936357930594211994319645233848197256393904971526354531337093494937882897444214443921369782814084873761795920430680856308302371230844464396807260986892161499299404191906509297413478633144792694039191755002534460670772143699956962573220525945316927683997840811001165056978190629044463109992300870305064653073748815497511524459110313141113369649893251810985360388795475454999799295265153096392782343839690075923604107540524297580271047731485202037652568036251252040968117127702122265898711905075478872350884446546704450944421133742928808447874419175254071085428129129166616836078162360832961186604774105029893420986135769709410531770987306839267678505098547194700852897836774865974665884985403453506018852585458624051341623588295835992716070192148567848064988339980786957023420495627886216886690478035823595880939391771236785162474788031327448460850628242129427652347100540060728705824968981742822889247225523436393647949912420513125209428365925484503649808123272136058763032521485769568985978402857964169884503829937523435605075402562963639973117645720785223755181257907416736581599031093800813269325569442292195619428404015226357124991339000994077100711473833213508438776084087099030179612320227107803005927789869218462759286169314238227519673628094506884659963345653016307944700743265084922547003956130522706028720845087255841792941645003789909169718460040090359297026044278443291376160316799769859819405375471524850307702956833167397778214872257963083884044278541822239919516263081976760598801318039210035484868596546124736437399485994718961453223711615856414769579196828724688543172576188108719236842795051562591900142729341304777187971251315731155357200261976823163304439901666544083157545313625356839539740368769873622982546642682430705104861046096653531601667999390861507440651189767700801008196734334246439726345711155060842671337261498838558439008218734731892250447537273186136743542445048920637207420375255005933647973896866537679614177417754799246298280108984772717642234097145667658377573825699464704402519815125487293616925265057196142856244674333755401209585582409081826568578746126402260620960503638983056222062830143145097847184504063313564815597823715428404033573409593127668217106996157324170347814981323562018539004228410040532462151908470771147774422688112467123101890466909218803381932115465628673943104699695750729653105849941536323408886850982211290645522168342616754549310281644922118564398701719019193120097455860771763965501306720273262200060514199729855945758616342604635213446188414191204496230861471665475188550706997041893923536543672474054954090072115342650691198366564714861144727149741055285693692389926725615372937565287446253095016762177629629264929049187995081944618987143982312818973579533902686095189859478391276282501180641435598601316775309981244357971511297473429481083715925590364963355821882843336897943561823900682992006415985303198625207896175288231945178978277293519852184642282159736420554755901446168477435537317281323477259745811779517976917654785261395643936877507249905227873306760978316493212180588939062566446487497218936112930854913746048096965072523790457646714436667697645762789329379168069090474709240776072174711755733229070165150706761816777371042140768720755212493733943636273419984894874945158971634294441443509422607176570130443031868787821197657627604274736517626527274857917523378142718289794701342105381103618221917862318897367293972078773032173627467124463291508516365594079729381262462695319521286416236698981260958275485866952221553876849616278148492952633740163249453120813584199297362068165750292322812470822784920324729591665755605352834775871495392661888986302657615202389422518901948679973308607274225313592127675771295341372003457336620267906926985358102120869490699210251595643047723373251590035261147229990327438399565103429268072607656392589216547765712603312688215054807752111890128023588867074210989954820492709247611083604925129614188279914962459791327333499128545749344988434922582947389938753448824024877876481000133446226635586302267758332130460239703455713445442268103911427232212427476564696689981574367755313327755428396494394282872480712057946452889670927268058209964718543340791357828782444933145686920481721707602315657659262076021510037676751785122973677638297325521336631430101127850450675574666642529594818948518486002327526075665378110008207092657101572531670853641861038530753722498121860945073994511136118567001115147456058728853063349756988279069899581973028605809375563305520689552174315437946911765434811580092308232435020583239376866180288005496859631521828635404369116913280195263111371827225378693996765294342328478473610635677440879535537995448882442471771737885351779538945830829757297890151220044168213324586867416370456153539137061901086658083924949437993556157081197571461744122078303012658434206580088693902668585553861408209762089823048679410794207656617520125592956969651055663494864600451600091971745843103174493598846341252155810716911151109716837308864534244463771512167154138837887513466315546853882695368497090971898100906856621151358767463469660111988652008641373456004961865608819681340413848231766807625107054542662665911662652587138985731137222143103829560221704305200392179895885134243561746551910963540922507173133199001007867254571848894734592413961957297500057957609952902258113611806251866784988750066010595483166430443393420823694807070851815915304173973169220951036492696135243157205808007271215134065894081007541345081915041935862355308187060880814746500963688332472882703991786769376444373340152791314887339251727121392370025619562240695494827607915592817949289512309841553176688272793252645658394241923090539584177451600126990532340237282251714484669839292679175551752934527400118642198556403063530068326963346472801553567478504980476587149980696839902394139120808781917708358208153890053319584604786405592817787997757057459636399759759416455058670564343575834641916173636507371053855286133709669661786612469865940763125514903947481694168490159595843748430111943006165550393133486678530828868612073952533271689366772628163342790976168889969879940086240575859023352329664256840451207090864882048117452175102171736741448789746154880519249566557994752423658434009343459220579827853392478817729370684819144409810572188721719363585784602323223639133877006608666873659664464401385604841132434027320552244778620143707620766568096075692065530693805451357093704455211566205597346414012289708484295465212031327803980437593659529973723539720404328303559076840528936178071300785132255582440966676186009533617327575307156490208079563057752476989171028126401237018406237674363279102388442310436471940750855169953912324933024456021851877860672443993225913324898271963039896523297574436550276421043627140513900390701346514485528372805213250938092393875041167113552636666261035522632279580296322040440557357033623313133939804310034533564178252261690890312481998606106838344937292514048983408256972340457603590029328825753449278466669230366297021953819549633024389904691776129123715663157612541832697626469817149197882291249156189067356946542063752752257012900632753570264326650912919547327441962391821722076582750460944358140312697225380606468309442215150576954075038321671557471256870326650176297818022330871677839043105589782956900831687607675940044689347552354227796319330193414129865294888233489022254749228651911193994565216926432429869621849955629748848850110387654644668150561989016318230308535255037312031619335963856060574647491207239546955313919492293503827256818146066434648876578097250655241113156875862769899707834124965614048970779614152403593137651782624051323172426265556777791181625537662854424730916977720837041509597844067770225160700462300158001480654949930405812909272181419985906123731660485969109523449769287797108425534656074328690079889642092363358398467497124022754162457389399316463777402186690514712324005173346337658887744024376460274983607215320479298625814980962792438633330870572842025991511564396573240786328554565778683134544312971240533635837026851267958359915794363752031042404358849236467834095557868180464421037538213112280359324909117112605465812789614944926715859482483321683832351415419995338376776226736138123909531739736121625941397884242383389869807913736598035774854924301473575521734267083610395271932016847043540994284460617542499211925395882662627709124950462923676897624055121011539656848106923545086498481527225618160322306288414311825085882623334376765526158280703926202821741139229925226016910524923667940376971514623496089994235479939312002851923430319020581231587134212108859739340318682587343650618012751468540479628513817515047813315363128728335441912422753813280752359450177684945468515107822182257363876976688091330026489965202660249915245184808193588766440104136384373258667406076598361072018876776114023939158645997600294528412313718818978147346501280075328755213177355426793521706583360963357067124755707644755048932262347494525828503199456871347409699490014641377969204036785654413776114128506219439795581641134628339471779819078293552872992584040751464396039819768722395660190397158677238007868472221171151574040340793588034033447931022434122089382202220159864815670066760248007442204724974738754431579753525193257736879968650800594007258095119661117270702016302749849612997518483565542598875482393383680595584276657799829718753974505402524842605785406660201780798203107711864921095162026905543621348323194059734120388648975349287349671160514344203454007961604408142462113568670113331834307571463160592959776521832718016565628540659574121345095277464127278210687798430308799383006851233896477564811491752809109180539694742571402371320034762823595970542538925253535380939288650879881857965173519348320202040906423021595827233271549963024510218356538964535310170498860885546098115603328895931477625548694447031418699753175436490468883475819289521352295850759197948505058076798830849579022247262433071732980198164705687459133538501750143067076014205242816236580700732765250626929052369521246193495661961026167637756726534545522183043070172906232256367379847790539078474020699757804033445777507101053050879671665626611441539660132391402925558181457756503533036339563864508978508973759274439509910985306118600509992680066508322475710018663353849028897338558968581294936241090558048427084773422886366206258845506587690164317040385041454277563841924411661852350407958515336929252711112047105264911715556095005868524083808564759777875873716589815390926369107374825597662433389279689118973272314385804318949612247511919664831893213465499823381829006999511935339092756170002417559901516302805962927181966157366409188717365574438375917766217924208408784040727392006773748018191905646852776020984627486183243660151405940172857889310995695501874674741795621730202664242358848376189888288475689549313843159539382996826049275851854557647233442076172103941452994952628786151222463240417341115793796474951936499254854305021811708461747383381269583643219052372353982232669361251909072335051491572381728229385811187439120037407197618030984819971080150176303355095397051952713721940123888700710002153535245774873640899096966532308385172101835062428845703199170447023228535559952787452660576473668941985520034190430304188610681030912767171900553316101717546452675900651778186273629739999012661652640679926903176963366053522222026457855051862039742302882719420572978686794416335204100604645065612797322358258469226183752827266910867878390785100946274539044089734726077361899159280204710800182659606370503871872298164408830498452771556316808919674241440418266283106150801473800688513733632806095598325967754580616893151569492026187686245222294098624019148508237669265335271175323463024152444514543736350333684807428617310456784319903074365911760235247299186188560225147092587282842143881288169093202528439503898798771004906266956132042918917588729944052330172915732374519213553622332303181963050182566852909175794052991009907065928619380430425911081002539337769094375813897639606308536254244438199753552814498501444403081893368171629787191731280457091246498584958774904820209217519555006584559549782955400888817524809137386700596382800637379044723649939168891591481012401982175989103232921942068578110322872883764877949696309313372698001364899492425426170779970232213049123037527858796385831726199115111367589363739123347028045138060625780542031047359951250036042260529694025739818098997617551172647901930260272494899388699737606698810296100461171808597375807773790207267490561876810417109505002374681733540901516913833989332537799388165676924174195363262788417556982314244576503495972543723127032981315304655764521248177973698923002146652108327660327342168357354647177507568670919300630922347297562962048025527018206051053759790743408500062533827403055471789601074604818960742532136564350602957860437612332358265652613627779534455781098722948102453113428436658405234718215743485239179573967015496123845836007717561510908541865181709613897647721200265882078951890182220080587689142689117514673356437405846275890673379019529482955772782679120974729271612997074851015532053514772016070295162955016891518077183517146141780656484872606172567103865794918909390294005144063725805431696381826094470855125229917701668772950354608096136337358164578621420902645800811192814054211317979492819184080412133058014363730217078168832121229494867964813465018615476790084964746894694536841888760204468090740809745422121714569523324510391231025269102947329633133655488740616769646435919771508192644730677589507252885888498530487359846323504484690025780696799195977327260674444079119891539921902909562473453830207404379044685434690074665000571675772643665927669701937088838281988757168379511836700762153074227098537730343924763959300792687502936598441999375110315429907750851826844092037246465266469486443228817507829072617072612772902021641679116367596200203320241166532202151438317981849543005436308756530693429510277919070714793344024782957047852853269187710274672712297515616151531844416164097383564619569771537573498465089530328578917071006367572097024307356984652364308895219819583743470513075789298107871301725589165000466172691967045514516514988237540652538198636112199987975893140577703512671852645221447938770157066555620900147093855675220252339387607597460102084409698625540125443981164568719894950269970800144094350403617702098971203454853125224678034258613633879202326158729737692962144435581806413087510299335278593865497404959078646005629555837154836060782187553108441467470141173003669794316020269295901971151729792737566181428778761599490520277939145515181042596364704004018360771000116275821259528921890889927888015663042022460890042318606398192569319733573818115238234416768055950727462713436044098699033025040068607273315527194160445848099996559546898705969977465229722208696676837170876796499950704554586157448718413058765209702274847989174882029660252537275970807398502829936175522264538226401082970112106487530441904244689970941291724275087399632228210914213738981126597450273086674856535229500502952512474011030229894458637280265435722744134663771103941363958380478275095353749498066524580304647853959960872033712356150951132260863826696848209835331892381315999979461981742743366529679750501046559443176052203970786085560400078402595405454217422886995779915954203512037543021472658482215628423483391306946390757774891867207265219824651448979712076121512141419656961099273056743490261581145741443826661579905923260654504361354467418639926318203306655476081077823121044713094284810209810245636727538558585210990666416037316710763679548392185007815263919018602022377685002840603931168455900106388001441265638744721150538884621799486197730194942376145989590921740433689302000338154910236403061038696960451701880980211540456878223758192857704989971020790313013441851065174864606777003647545104837599648293186843652262306768325813225328855098161790498460827325507843417640272864221401320858752806656248784537253329309038561120183178704831867643023151612679866098237664846215495770199460808639861701935990401977737251532261639720723782048969928161568974191931180493075168014062005895384462847444371454423552110898285745699010970189461627597193702713069840179082993415534400522950108387668267355947198226688813117302202540720932251416108706666296903694609466907633261196747846821602831171803320457328707161489971392240707423363156700196295720657567706030368190908361157585974141743928617223006924156002917025388176360382556630092036250874235356871455558837109230221044381459113590383327491273452737896541544079225033610900402722258460213626752385490982038537958198991660280219155097633708396298822917587543693754352143415141662293595890938074420013458926453681209836461388365973758757376613178394461234943614265632882762683252844291952693923435331223500436736494096490400211784260553744342748292730999944130161314007488802903181650092535300852204124997614928657195018157575681358531204434033950089250353211848420123276491913132745904915009998566759310822855479192714196608003515661783211934538207872247436001208221387790423419930954767497667235361682979055039065566951618735707956535434304139516695581854128840808769454028661000233827605731739202959588642316483793478351339880930702422212713096004420647652608109138796485413249424666485300661025506588475799777303568303087246228981827434475954955732938266821910279992700824767540663835410124182197515535378841038651294761834215083494525458687227961096539735451716847800032889952032853265633556870370394777927063630307124551092383900657685731388311515586717907905678135481646791561463327680230026680221255152644078820698249140422254782440777146871004487959560959777121177440165735800294978385181108868597679569772188099012963345728307996729669246183455333602273668605125631511111462030060203872469740356455030242048474012322730410892586908596150952775538020145589691071373449989836344041291055241112057285301502673851038547656110633872125538843435480709252688235028301240501189671774226444008093376715279076938279687052351687320762694449858444563524339868612199394469439236203200314817927114657038823462782472317511859911018541198174301257255567617532595178411622996117792165830991118383097441916912034554397037937790034837424552354977680882412402201579880764427141562341473695669565634322198056073647176168836343089990594086488423351053973177190540184885671859999331494149696833140250357446907193335214508327147686374604799906081817384475458010394548215410060138770120662264792923268482470140733476034901612527412443919050137807843940123072771392048546851460375109430269072762762948568271330988273057014293719854041321829547697630058747901165942515748564379556630198067524679798317614167595871437538235627812813291667861336262995643749806447507213173295631638699306655944844244299043966172290588535263942245640817681397610791162208453450999670706486430961348858348022114726241638107323328562175077920559133319613924196928317223077538096957813552505685764288747504043789631961033936042878988629520058899210616909204004578469356968852808046613976436771585168579166750903918166110382946934105751954254289639673629893036361954299587611220061131885290737520507313021446445643259949614829727187187435844692979798049581580738807469133041572792138028316284425232877366213468669767854153618628301395323876014044022506004515217943361071736160148315450653703806774420198857004322483903353259344123375514727204595334715976094122078295081100708082935420852647993274152076167702082992834593352274631284747210577057625657873740819705056814192673221546483637002885124368428801094362770490347302961930429393996100811970539416505405172770227842577439861454115903916183238697990181006178981978118147287938055888984111689659868359333373417745526333693074971741272742571225948943976721144290733568768897135322036666485522267837132176635054117022674874587760624947338900618859843480766122815099348983448989512408258277986443506182383726120547074609371438489277319551900873917992109212137595158751936591549697083559568827684288234045082774168883322536425534224550471291662196808307312125636937332979927734932739759163455246352985906763846556720055129348191141322732518381776380297699093819409903757486276945260950968789971359607911682255784327735082251094421471033097375420620079463550526379772372994510839688970971892531048312233086912105832543390415911509355676118936582873595552896906810484461494138259775624510922263007618320799404538528927957011941385013868794660545242197242772781165762302160828395540966893655293013999604928317604027846059094767461582518003927528797901050075713170071957967124243672504881350047847290127938967957699098627329780269442162828818113715096747522974845167865297980385329557292843994431424139574206624887592057943209885108856983039754494462895842361294272569378319854810657057657944757867421740668045108117759761062704069914057724956808773957650354315754344390586366357583013113433261244987631886504523644164910615554273958892767713060017631109108738872158127453777818371507581469526155857109067972635320182839734756611565662302806370631770898814520309230475538816782413450324499945093804581888749212106705268356808831037566101988270864397858909844298276615986039372863100923692036778211318993576161300370140144947214534245704538659174920740780599808943629745016542020054893360832891016115890245550007627637665455707151418235722607280460021624535497314433449445718092287044651652890343490946993318090181419738744234515700855025938687223995480458154543580541983795827857630442556820834223128166905421651370048664404405455939305052691816125088210790321658999651951901046751184992861175511345685794828283086962676074465879468380956209450990207206506963205386025973081586843812408578074188364806240504933954489180227988597490421436344579432838462418158764155929917882138062726600744526761155583461702408157149739587587921840446886893620900313773855769370962106103699272483132560544830481190862055310321301147871677415942776749796108401070274515984175882761394924804952925450893202544817825872969382391411562374426810850831654910749213038997284538564611232025404741006116706163389470642288452034163372491163507656892402654818941608087957167145081503883338836504211750012161761622272861458591270706072279260584491713476749453253098559658493497054629978893607824261673012252302760364122306480191573343209051617845224780755140405735102110962255984052205437342483928634528235705826612922325944599648065944364044577495113336502528762144897924127575250361245262804691066386927741135989813226162559520458107055724608531811905497961111527050784027177039997226800227311580690090572840864253014432573520770967872914238348769026544699274832764402142754515564585085493336270013152932697614548408255306698155295508427328547203652322722844162856716719277045032966750804721025615352024979585891114296566470152341894949457970467520859792013497201195545349393846973940769033990587735028744692500412724004842268173311507906216142822207838543800661443864094619426033992034202403856395265013427096969596773107697157946564658357195555147690387682585839479108891454622967550476014482462792404851181714989604639943108434481216228313589808737863422011544516000781660595889442038349583287322577518161344309531694821471091642845754684454257072963884883004412403673079764444306439913312484239864243679359375072819311035217836671552259674210748058409309173788306351141260004628406228212165965722461079918493128252954911259767699071653031752113856399868611465666643718215308778491667393114938727589147960929926689417742661758895634152730870829522380405064129752348415416358416262225643180425668316109138771782188758750243773163366446774085395769411255518079271883726387123160792269283786603617671027395106964789592269700130174851924852207798598422272811596865959232880137064423952790642541274784622268502243062784942012754994317979459657900772497274829004325746787892935665763088234507367718959775164605761612835913169266873749509752447984761601070172805864965499829253303108765101918604512503580302001926074610602926933877708605664285985159453304359584597827936826734399147391008414684611633075815839080273103249572303956874481492769606393630127284480400175982786211112361786124667969114900637927165770429638256347213156613108914519228522253524272104616483815529958810825340025462192627158937881092893973286515715379997466696632506529574810721452059511907755530305370105619385080897962986380626863922909278013993609994197403698629757124129392882150948685092255163415847890339737112857922205989025119175311088728085133183583068316733537076189112950737976742897014075478619504867646435283204752501033241713001239256174420551050494516943028579447941380360411292686773446570962562151102518586644127602619268932036213041698814704991518018687708697372776058917914657740926855904050272184284815397264824417854455818224294003214270271370734304138066270426526765184675968972290117406327666134141899439942777397990437986305092945022624415818833429136592138088398530126304239472912031581989881975839688399281881132508058349012708530082257580202975353084885586425219515360334419200490082948657664823397414257560132705421625390233332198236050616358917105954766175316680800445283857419500918674447993255150085182373519253736394931413880735628998097546436695932825543654504196767804103977590725325782526333240781621356566578949708235346781034917601124238193584009065418270252347585974170351189215004956507566344932982052888355104533862883634223052822292677759411473686418697569587331457155215424362942015453567460655928193137633917483035968734634254342874196136212499785384756259865109074806134572447632793097762381750279912786560412065728118341789446455442945732198423325083492772535937767662315859331015704999045888100451190653079785590947456060786503511848348825794418183788201870167231898094675601163393637747351249478166578123448482441299134822494210953940659885164160116407762142568044439571679734991864220674680373553288350645027416647892909548240545198026301636262222853723774115039751847939898113727875741265916053201513109892753973750319638401846877629521421957455900594064755935853786786557971034831816529824462764446364730577427329004604373412074993990020791950664062777341710324623401013624431811069182960901907413805450980620751364720246649908249648739398391716116813397071846676700055479250642044836873497871800002225489179272425732606895660733622777834217214460409131352031086736778452016754230352274425107634115416770231133478739657084648797966430487383722714451228070280808975648343205478417512690113520726292563662544353611034831179559316353656295333186811318164241841753428388354586979996695881157646001667920071499885278689961729796532208577614595380384320817318470881612936107144866700534460703235853554443371261712544450371027663099989496406525098817871069212951856101195652967893166446484511268704278444910928812029808347411855718293373166437607960129400489069211810896123817659947084731985005465674677321094380720689453545511571021171734232023548131006078462350081865478049370862827200603548467052921033356519387012942045341756514847664568154119161435672504677940936129262932822731581101012191343660762443784781467982646132003397060060733499235480764878122732235249566095297923249160450315175188104715235487014794169332907443461229131756804019615933982397595286947617199575647817044322373854992128991690255626001137341659230980928248368053389093120087632941955821997288210395489478950339189948427345769972699263499828113735522826524782438521039691439714263884114911194477007017243993657671965809670152477320868502069623841137900430756397864972267788055666138870194745608402352452517365400467773370747186266746558029174615712822346415807564717209833402030676560618915634059729687399323185694424500111718493201032804974423951022568412855220739497354576706174815260529181980815860347585087760356159940520307152333795443533357707608571452335698072618578588822247318705955409958856076765313504207804431637483143471902674451938906180952288914409399602730570760005321635802788294478645895343468588925232873258766664325549216762749898382397111404123530674317297601602793495902295923411299776404553667242773654383647507484305559464537196987725160816634480267028163806407962915331960331360974903576661413638535679036538676066477900705942671898825510688507410775358901003665193427653647464275026118344429586801999030189228276346085665588805786240979056972230374808729616745558668642709936078801549472237308396973007180910690839266471939317050533635866238154547341228027129210663720443027895000492429370865668432926502299054798117420003565856573223591637458575929968148493369902792589941489984948807258148313272544493266762911340254330327830713264199114830963630806515740836408332952746595523491802080806232116658952673718406269168115423196336255817054897267794287593824439296348713817064352242054931751241426444622203132579518473012594820523808917371400111131404929361205424135249577894277769924496054308093916356687669480609512713985636171090972887873660510946379704540787633507006234102546306106133283305860725360207149448283671707736421326517329534425871051807149470368887417569878505444461632028266014525824734061707631461080400200398959069488746994298001652805472046171868454279532617724861021024393093282873277559453968648291131369127146471100794985262320445965174883365199697993369075588644382346165434805787268552757672853363393631736807684969087932221033625916373771446671772223356211369327723928722643939994298967074924128383543107913281113039861855381297931491513552221359018912846138717123140368495907073407480562500700433692172977371375335511307281740940016502051881209107942277068919944787477859643720421832936382693512427974012747239748811746467177476920307026150105206075906218837719701712812568715839199799454752877078650180259344650425439044499017340338080510947902484726668314241077678029810190462429975618254047242603225591490120038253712091285454080091544985673769375237342753297621832764409343049310073163728343472110748469645284610474731070687020608661489027402068008260640531097019461120480271411768329019996270422681635964472812111597810854079434971194881491411948702508933630460816373930871711294403521107280757482563695662861716527606720658794230919385974425437449707516303107067438775384440926880077146650177033313941429874840944987381490627982384485408117243183167728133564104707515196577431649982332628819176031440969608225554400644264962995141071390903310382145556746351515401539461604949436841690858296440970573606856371753057164016050167566225716880934336233885349617994128530913858867483830758677970784672002102670716451306174784663648220371941158618634642190365334140310526427937111692337810095034551715411329729323264429929667649566012672781464484835561470260189666861771588572955727235545281782531668036800672506438852536372355923681658014397984809012442030002736662387550849591522596030733788144421090504301967811657355310762640927423789433674384229715712703259379524685447633426148909338773691158769091602830603469163901068878053263054137113774730078483317387675275665259449446342677289148809348204358634455206082143289948142731409516907961403754521746935553920097956132042269742167710778167342229741460525393489927850982411205882338327282430697956433791547196525637748282635608384533533016826049866061915692860992796788745405857257915864253126066864639398385492055855034763360099795517548708188548824324144776341026007325660809347935598360442303587293110137766805495045710247745769953531463759812974764473045438430610708027337175515329405405636012582424493147334664163635665558373938765580790823643512136410209737976582890167612123370113311213972116562750941950974236196298280135305101087933866477728810797673286877455033068432551265569495374308812365882052558237835086785114165788107715621697946221122386621111231656839119407949350148010373539742676537008400414225084319549397573306261946272010081915938103485593585658709419742418551715716169640096236220842460683702872234948086003897476756499611424035237450824875988925117597660463245632281898864115473579164820694546918961600046819297325575410910001235672268294888378296276172048237187050570405155821374565900757486174401636124805617807165413325076507667316903139420388382427759257637022037875602824675211700535724379532685949655171660787629497238003011270181588926979282574999468376541307804724591008806853619401019366020000040185376391033594469676377960946669226505769352989668832583334992347335562894199071816782967754802800521991890676265156624509103799802606426077396568175065729106863617931329445225365301844382581172685052767915011353214403759285817194157275936961554368463604817259616202470206192586852046646192119297825564628882353820560172223647996108649919114398799431649032434429740930744523213727329248877609455946056290882989289971684389408777919451145298192983661957899054352591005526248389066249101181036149396750476453905946694755483589783090959255730193585908086759878828907345703863273986585109079770981475871436547908490155696801405028775098131945776535665756998078748920403513356866342322124941921139154359316596394745048891795794461198341069650225188927420146580984186954570609561631291249844771206027852913292989211319103034208768262984031436459315438277056780891844715384187010421095243460020750758192536137063713223014443106234859425441615222101139416017136569778528053604777435605179623704440426804614629437149710015069015551258706021965188606657845251314808545003779745203379857741576119289784310670195247324330136701160335598135143101346776064989847948967080638969557929462985416370477130596765573075414341602654347771690042188167895954882677658993095295637106884459229453909621817634612758411414406863444465039942475876685696619875287555324012483519457569883289800856838605222866757438335995038060735014167980519255153340235264692997950158470265612135249581999081175515516942618987042071079194164654322004428934131126072926811096421294319567924341812010667144855220390320497182640007919807190908890219980142637351177709738330720946572296091365378785806785825558941610427006416762201827651671076056784331798107589065024289335733790077112411490402663567389133055458297014118388903410501612956029149339458551629263869262007398152242030585199960051471761989708168823189461180576003265330744952459524587849032024481066415503180491882748321579179789524030558863664704400464500384790821351706379382364661377211012858185425017444472239481271624632228375818506977803304881560066165609336812073470661100942014641270951562053149644388982335178063880879089249076048136961118807599255731068147722263888924489950540344650285591696102282889108507100265500592616464039804573856206445229265790342595092304057947659387144808310773168893293920509770365878101494129095224003651167673360215135316696428430135730230590613049198520829858869129434735279387136959157360537928679762182657198571913330352195974841218604484580238110506626971041568688666864145391986328804842712302902751624213127522745208104239607562036439105313171403864122021292971394329023023498060994364224443743158863569715113966070361650953899865880546701756251785629136388757249830383389967691079978402784814835821104274548272112612260355471208227559847286314198552258024843017102259289153162902972310595845065615774910535303507597435025237894594058798560423678334753049717394685302284347429086754842795880082829142421730905896037704141469400869770939599073196585669699185010292473080627218883907068242181214457691548177873323204728810212015481148183175492633776719277167285027522583411569645683912327661428192122076412743342657084907340894891143554593601751792699776400558744615132411548277049424942162082503019728055379441774471109221467366314888483828606376039648523287217396549721234572743041837411839889902729453059500811533990868073028912854709881560326712126727050401356560350317712895411929627401155806392698883912962224058934816830465040741729778678451670909048307143258301063926643272664270802363593046035646777523103872938488256607503438413898053425507651684491590330305444534902965097522105050971992491960722450298544179039041305780428292038266316985182813878418110542718989976840102035096085585578021938239211928874668119904293598282317499205247923564469885776566529341707294702311729646599126614863434819164728929890130177247656568809364737510113435268619871625750588964044536605630477273035839981964450397959994059216130685636426442880539571237395845427228633482969078619011142281541546165308055920671936564277711702201117744249071623971050698912896769574197563816040798329850178139708137447003451789561950956682582394851299677560282692276443614127010555994502873030997369104824170163235634786817698586865528920441874733972774387155435894873299046868236451402376532221174834465924160018545923799168760382139369079521991531496919519431794458278575572539238136864657700179204603078418366556064162209365513355937936399223682605260032484854130985624577800334469799795378113358337946831054191954620303211703407395329978690615144526700375960018246370990130285708000816486706420885454221956763280442543382700949914459643450226229450591558924510575091299339486155651592027539394461353717038861000667330228713843073310463025817761523355493591028040581466134200171673752919952159071610653188540194672525134658566113905027070515154825331358477593440750232129272855501924734950315004974536143745291042470898090280665486391456855815096806036646111390832539037327888532415724679513616214583007217815153635315739763392487075037254170933717213174857620458681713420543382541308750671834591866279186969875062519024503252155450229202181081130938682574138356071323036493429632177004433047081509607218213839317882350400850077342122993979538980881207945225858434528709628509897431429358968003362350789964543257041175052634858286349361301571666474429689942858308670434384483288963396314494986656084469877863374118081008097530789330907816272059950974524888655352144039237001289392947758513187866825448883633331849066731175895061374272465877571301978280505940130861993372989405516169890295890445685803935537595284844068113758222223997252065237615004668414333618220948863351549340232062936856074590719554755505098512559752127381412201249785070601593151948691375031897808376283866242210931545456388252009231366133130691191976316590287812855826880048014626505932755772888074513987572843395658412135073641583770514525504784878623253184809951212229013879189203069082032690614867496229450598783959181994841218041300695993220241511498927597585003670232838425489214399113782217419458289444409792546460504794478856526640629539650157027342767396982286887051100142190205061184461749306360793152346631623113527160703281547465548444042305868463100820681510620989735581767411853884197492499475750468301134217101305772637122497420457439717751088029506330628795181873526143658766445831435636333070326908053601327385714484455648538336528729186599162603607932757304660944695502559608347428396201922093673400176163744411573030989297223490778044455522806219999814077446556554825876739410122993565765807569384291531098133452285532247469285883171537445899904709151399477439545456444276492228548461389297054001021113282314025448779150704748538068055365068324298930420253944975472224033862691832737541281403599426939216809292800914800717551156533139864755458489517803708895086286796051872765959044618855764218145207322919249853813930018559873549119512115115804049041168599668176664204855287286029943124930970547364377219853110510527664146392487643126287496225758894097559256692892886947456655605057419274154349462635432134003702660753818517728471055557774803850162950089014390040287778383385381697213007814675097151507365724615050517870785657536439891456452720549992276170128895866882171389656197216405819641497358636402317709005590178665827212669099691025067694207947488463050206791612774175950494091615008178099069856500317170803619798226971538406786751390083273769884246077848457438287257268523133552402508443459411072868232296163703891620718312943716207207641652626676681830313407583636905466044346589872010578356395507329158233110785328758036107538884986151916605671429458948113466374373599915347947049360064843664053520370709913459483223574408855588842019080378156776674163323768073513370675185552186478688386401813540389829594822627086968597912353180801002466394670317634442457994870276164144462692579817819314587634609101598907803192829009372550972150332596995111365547765277307669192931871633665774589467791086514707064820712135226122563852060943375593438738606276356644464433811317049142596234771783807957885230592428668332512029255682020343570163097096152780135533766289259708813499655081422442169242563965863442141596700623090185944680780183028561509831313570932826022163026563672548456553223569164066806868972855368434228390981748234647403990969563494803996723681182087549282368715682270310117885355283101619698651021396474542591101552079349093366349932104427528462740945214422719392552715006445691266487856675096961422439923164779002825598713496566989332201637538114144859864099927158552400915286918594180723881220200648139045273719576447174999646166247743375564696926100822873327411849196805110676803664616953452353905591755572486289597589370931216673583563412484910696964428701202830366235059140749435070095915336860260211110879966821627783951771989561849780874621185491148228294790043032114635054603508879812730718432839394427459423411069607136455286710977193604526327525490862414590629919151830698498298357063383463246828591955596187375864092862896866215201311262973935417292120606273675676865760609675173601769139395307534057683074143419143836919330248510593262730847489477691778381509023561290255582995051540043056581620392306298451006675882698648502100855620781934201362998726560047575961435822883815191071293840548211766318741596570106625890826246903483069815792378839897741381639913463791987777099014848626003761338475981265997415855168370014796065417401774410560232339854227032605688950431136092296725445267081489489827413443778505011032029878528223626865882752064623833522778138211084965617452186231018736459961389971613161192209156583937622132073778028175463754753931961907143637926681201642749011609713424326527552373320315348181204419565085805602374499784609311240901509073178533910406298340384259506639289698081188736477918321126712812110402637096962397645933640474582667606689257622860089074218160350066782729012878113977523871650021620612961989327214134718022355415728163269085346777986674987726542091851314551860257702570490545752324704198562812475729776554692326958952451323407339442433941260702123112815376571409422408564508256607120532894217668328137372277888216877272894846813970128535258253212875894124871106019777596471713033262699706407143625128213840593784238688833676542721668403020944975018244433610878911701387992722291194664644759223860828200879637986185607146297961272022476847074482138331409267373449331405068041333870076104991894159449508551830889271391068007908469215470910625096295768521426881035081406866971280011913670829922279010071716335409417895850867420760201072211528014697537269247333219146885285755973225338227661613060696976345628493609172446953700230283543954145426944859163744924598594776000643337205091618204448712297073244245960301642643822991437323037649650852149363434896043915133991369606487495049310051426521462152976649789986533188904545083796196985388725108349551185625205574057650693394666102221206286127204945658088298096956916949684338116079352165899829320286320889662835582432586802227539637636061088834735694314887489405764201843111821142983217397217721344540364363226445648984584948607966886976554581659734392336465910272395058282848020291833550608775453688140564682942696060665017550639628441097568164516231810162523251734277240424518850184417976554731685151646188119772347891554463238111932095979225531896961215201850642318834434678655668820174117747371617935962671983134058877103698234402393377356479441826299420615290284183251728687865708961080590702802876846917136398886968384474990114842309809414172179305076565195069318571915183530325515105854362253183968117202338950568703748280665410016705110653356394650114062923787284784355918135731320736363767489539912232384902324900808345251003692261290233554704480828145721094779157883508635104493715518912622729192139848477452664367253906274773789771541162247252387783355979654396785701719510195264877553516773887450748083555099649948725405844704120264550368629896829046003020398858145735297006895523174098873512585341044149154337734161516719819261824528428402426988372391498009162954090774244918020703665751116119510021595258155087491692486901153866761083474809153964878125922113499187141138722066366220998003906801468135059849192349507812393819784352321033706785538718063341334931466473588081308924638847392405792128878859869173022891385205694230835579493329787316022280394390818576079399419126814353124275549593089929142306704102404874658636414068271031100863481253641544927322408587776587733867732022915108484046451686954682262395245713420414618655215219888967372609007304965733191098668085659063956556091833909518699718685195575903382591483245595046284436195656546476200965009720046971554661068640080319013731495338702512925113431432367201137011345747715955525699217343913035195832868415163358799176963280569377924961128417130730680637529890260153270408306761721022298163791727826509280909164086827684217881153574229173968916630450225948563897328864131374084649950945674254507201726862761255751829647079904999747603016800663881904188405946957213915891713571453909220550377995257389505936236071625929454426878049965054673617021757430544983811042513988009006088428509094627703788538663301401957728692624258050229915705928198747751737771740994485877891900886156926421462736346779544587533145124136276236505678110597722873674096605249210376092072464370404766614391905978535159532490124944887319172963604639856237026133050794063283149450131847513651382672540641072003408838390195682087719832477552498717359332586886279760063956257145847676741414623348165785618890549089201829943753241394923789894224477950291704369669833018122821289830624730418041236007250349516778945596111517259921478052534673344838383439455101701588526766842421272667331493619076095813938235823186048738818602719227387279961285432992873543408014617811581361206482006740745298189519511939362472177460404744870088449167151230407465642556552481542260505752315300295403573579904007766547376385477417998676059301285040465651295962407385089493339846142210461184468970000471737932716508875464003455682403816674717854986988949042014964723941554856252175773527505466911889384784871526858458831493805881576928621589151473379252219878030261307422791958206557394632817753129512522953678126114626683068468527293051394028101324545881938466353306637621789723882014353188575941948962464594866929601060312866745632210784376641118972318761004128008460996263693411832993702849055884909212876571592718921981428465410017671877014716104754173915232419365752059811857484997159625086313122069250873695160994613767191286901807260860168441771502752122242776156101321499683832463736700284830629379706249966093133952297007528189916649470943073730795945065457838355157304075047811203409336687008390834072909572259428590932320730900453261262505889592827147697041101029846639216462063547381551201793829029208590599463343132794326005598388467482750096925025794762243073021257340495098944469373108423684896927233070933069570439266297298283143193492141162441766952659905383791195839948503544710119195282083316078663443698966318290392695892666760838232228250922408948407623405379544357858863042465256587243037512718240132703505395055923174174557783374105999690103399166463939154752361851303035238612539122757705304280853775993033145002923488916507399012346441952910375712690483151585235990924449931628681989431018399736471783269363152039129914932118372124786800390210388184239258726566554012517828490156254408313756794186971313027558043975771076152349028952943238552573348897373194702456318498857962428909344975787732133219288836079940068971155782513037968626380664931105317223362919224401403393529116314203322345676906927512535478709863473129616666083631022560911676929224226403855006323641943774568616411519049834624994051984903210419168928248981622539543404453635104474357319540070893095497071963178032112005029512248327504816619540796813510609048384307468558034655743204379047055172717642224370273172062788568573037831628191529419827050901784075176723589295957877527377239795284986699271489317566447754600116885945673996771794920269747743395526130078886227665083283753063367147928695737113176012050041063014368665623208801210565203448498812677213940856573000802452995711230005404110028378939403380085317902720834546965577093575858328307622979448197500441987303590417584784330914650712110237425993818309575653878708699191539464252815844816503081744558050132098678398055378849442572038316032437133294695489082208340456372187010184719834102964005578566539195405676895120007707846110851224808301543641790403079202412354865536384122639015639444693956588752516547583482262938292255455487647178432021410775272848583359554214149038753049219171372611291965998731216235322291156629515983732841019115455569686291754983296907740086444952657320424258673382150171223829192712957643420202670492907622340094393483509458170316583405371616322675060602610087253230391010230876848331650255520293248266837615556512322327191093220635247668936195332453774202216637149009355998358641779184708085122852889511453706777942133942054294599185696453755888035176046821649340572649506586176331964808660413203897640572780594321587782551697990450415763504483279693515544203272911525243458800513308315947037792632683881056394618919739777638912091998012931349846604759951826273658625883818629977764579984264214137184145993186841887091236582109439846724423906579150111322578463764323074170423790935055265064222192374692870567476096388572736186565303017928322923505955020982211668553560099234742205705742301750556272367591913727473376762711118285839308236560262204793884964712917262659994377340727010572014420140498551028099871734518634162683146651853301421471876781629762755624766863328033319075928454916129762031492800779112554553950956427062625021359707406075172655740538254391191826306739687289639122885517650820332558044553885408611744741058394574283070149820012377025629642104317534635381289295672911817967084354797043113505533347843270572003198859242309853554293934203610072892309572386979161541477012704261549623081945772059689830590734944168108327458703070150757354130645630381873625482909287039326212528116276183051890078145201365342910502201145930445691771338846551829518482826401274026958226674269398410359811508171444668721469532856835043240158071123123420571025502850822088742441328915007910458796124139581882204507649848253418112317762916543514488219245909783327511110657854420034055249510659149761954146034305018814780384010316364069277984126063874431328376637486619685942007508495570305455277122690748925419575724034757991200549520725213414864296099999506958450149472085768009456150345919253969439975383550071555790179453782085734377912193935536468628695587143637569967446739896256106882848848589131037755680173917983899798607735366959567872592505849152383649783239050905707488737263836981526338577966488415089079832603557894560792200466434357629356902479915726281644283485383320330694194750034701441507778023680555029212650267763508795349734219070120709269457306372995914291515226363281846523507106922269404702615254839055562172221249982494686649991550915011309242107986697794518249188417693470947901980105077417822273298559795756820243496864269703151153016649118717626567418530741179178056883164764298726637892780716524885432094890345146553512186874557863305641980150435006888202448300446684621485732456294410284843483251361687422862707729779946788523486601325644445948508469143828176077891862333843640585778758478485302978453384464428301976645260951870708318884374490669058198434639505007559836403442785740662127588221415891377043006127825458603282959186784319849899735104877517957119103695148293359553292710037190606318566737054358439964802066561027809928196664402463065599898886011757227131480777183573516292131986784117355523112697127296055834227047885879372010326746330309129888211608868240691874209649268592423065209051652385223383357414560720148601326364668366876731720034464711180645668109513981368099458615703903658087255515055463130798679776393751306113160581418751550135708854891560017452145615825259603054051903022940136017088555483058717707071800055799464453266042940564700030692609595889283490595957800510603242253007093790026207667518087654712446720808255839912130852960928254819392527897574661132495400166746878774823817503416635483408008077024589191685828964430885930785846207803270809786729452899651558229184417182753202579840315602908392692451944300211595009370587657924468918515707363576011060867028721189575496394522874208330334065898924944048643848315544874037200930853367805022497503898091077428627352672879934399381330265199548813754379998970004763035382008389538188146757750442724037251573535294258137307398546245450227337074435758288381215492696179556643625889936961314628669658194286388369513517215952427536677455610811895408735616819951312586717906388447304173751316298342330284583507083709562958737073264755791922065750844821038370644136747619639341810505247979579829335691242122335202979277368410463107025985038937833467979361482623379603539018518719876933479895390817056710507711560454228687122123872934467841652748811466265857175665145228336142421458928332876136527580937674311418306685076683734217093559513671594619400488709754243945746778680356552778058357908259988888522155363854510446814439565007851205100395720886034797243275422561626525846492777224967448959611532071905827584694042731496584252777479396185964321924635960705322080190659855947399113149792702060580702568120107847510284567448851260167966706019822272045739331863719916566666792646775692306299571418190943682097495499313049330098539045347160175908539062642397248550597198981148491711682286348205544448921405651457715642405951370116599352410799815483152774702352536351057925713944216929335631166676546301601107175027357492491536683870527776344386950031689237842030223828426480936364838666606600808094552693450151850274964167771649296000670484682993707673789458875291415250892368466284931427432833060558299747793082976125497709819522822763271484218993745419897418665465854357312088625344403236535877126979669291200295410992676790754444377556802423906005119983361349381120278119825117165387065260321807912045805390088662743034280308720616146098795472695327019138278930026527321883414947743649127850103027929392638375913272246714103580626513160409447537794003121357663391246728336629070744352996623486770072684068292906565326956311164618563859969659423945361275299340251968589428445504842496402732006485464505691157600105625336130963182205329105209130465612596434884617764162539513334602917390188774309677477179139086547874456635832695301349274725548105415756451907723164596461181502181782196061513963226403680433554225969808563190605728924741744105508027902782091882601295387949707429859746552904805778765739680607624595602357525026128251120775229072100600583074153884706405651694837643387007780739991467139741382588163091187363433087561783881883966340056642669093793632874001617189389250044106225801439983130116586038392607266202376554866151711870139274977268382943602693093432553325217742525756819717481567409596337245997726558187892696559544020993553959245447218487883205208608533546996247502089356039200223214862391608199156102034651618240247248182292919654724381430516188531638337761018285964064894560515087713353713862686590642841886154784978041694623032134915749058875516111164572108550468165142895500328655368749419655405155765731000820433773374692164469545861212332532457664188759238262554732602204432534153613517063973479619025832738501856289549132259514185836272249040758240373812926170091777257370463481642683762984691858603253016107355996235342830713827774402035449226335594069723605550136278916530439700536748750949382022570999478529586176076676724603897803458679696480106449498057522304099542296956032686353368469478698187726140222635970742906639963748651499806681217228170700811112136874135537148185557702434172977754242652009815860435196465722031584818104542702154253441143198370716632717397794557975383269571115155177804245886665237323865043915910144320725183249908106820900052099622143530659211914044036625917071837330146629096321002484178008398685522376157485249589529398183616903643286041439795008371381946916405491374337742398162941804165361436959815765420712639203072924345548072215763950958270823039954190037059371671463541846790857117110202200531938808199476370063406596084785422911621699831884778702037090458094524256305444326992255884687492341223340377777676919201758684061161054331086074711589651049451760443679949865175411231049953441744234000862492685167855788702815450182160477989099051775267813373429659163684987045337845938451175937844113047753190333420913657494755371937121925849285187907824513222007428639874785226205069099269345747534536477910098338803597375655536124792735316244122349698579207065623242108315049854019354619961970169681304116336974041743569937005363123267239284956769354926719011241345841638048899329155399071968718103390316433052493936184582581819274466815444582151694239146043840201664782859922493272265040174778384364651442785095564430190292298899959037712466020559661262481481829347382899905012265374879237959466753505055533146639084422510015421518018946499286105349481843186373007325033519570853157051003497661742211344938493274349641695358593718244140910519177982295217008672566318893851850451283124695716199691537512045377340818647743400113590599101621133494233213949346203524508452311047189077623022008547681208503302707236550903391056892383537428603631064100652253362360059699126330487389617019210028358942453328617682097056197870994013197731647955969088596533316216903795948672905403402061030346882414757544853807918611395510941464329996631279056289163115180613677058671268689714542928472494881552967789557041809248234733804313758075806720439866045824112886173579118819973954959422038306468714962936055906001876318210567899193822691223288126375106684004337549941967624850505202557051610217666053615495799161908455363452974303220357227710852560879450404551859007302771127747079773010875631045454088111136320326260360097281687956073858708673306148512257289516971777410251710470063742828028268020928169923666801997052438489475007948441118753557819435001296892825673815333478165685247049387093535847488708014130841662151110649923085337864988510491586663269784295110195773903451664459929307772396999456660223478203234332346395578170596875066753233919497003978372350749286966495752302424024447345322551358594895083554699325957656531338105037155309266840271487607403346171370165502701683300521103536910566818334832354541816092710283183826708679211721712225015741093851143494191906088873876142940235939462985535035092232278043487795751719837227721933367801813309306952055770115029707955503192740754464454490044867471714322888460229338024857649031310191671160805860948085864861353682456905824300428063829087288030607206801406951390548940415029105765038746691126573501320259254600466026563501513206417807984054596607685489986844965479630839921316925317445978605490531137360246108351343416749036187370675273755396835678199425982017406811625292615424763283182262176711568166187532957970240523869884687453858145726889495977073769290170378105917630877294646886077320266330798720664237380220632561054583967891661778379478863523776908210038184183027515783170231211692692264293496722510211316128704825156037698139770251318403581710812515929744730846094104768375961385618188433626459928289007158028943260294277841030980739221015361858158804347035626508438401213165084840339846672475768048358637800602581177334225224961052168361900054930580702468877419085541869161447981748946379448748733420424510205563867626131943806674682610351835044447601089916883425379736553524814462566895758970130617322308052515340508595657136500162897318234722936991620631350854347675219419599854998140358632784637058195333207788926125686668776352377874680169261806660845250828356143957854681482476533969647435132857528192429625198076063526303260198124999559028936153815834753487860299704634142596572318758027281437290332694430369529455897189069390980523350629833797819749648867117022608359356987664429288448346359178455323009937199958850990525557867553968789722120322250375493233046050152051297001082751070200851097452585510632553010310515389054270912925349806288697125708996880535522078026314739364343110266885188929324861658382000408202907400190941447803179017672412853748103897819804864282152717659254654936145042022111176071446462055441713330721651385820468900157874071113425972210190237755649112651660824454527205050464349192015222603019725682821717267443140980036511172594253132447455535585367323189809645711345030353173677742466728143870404516371095761009115981655511598046639186432088098806372123629048267587760841948488497197377920776049699783107084905890019157505590632356932262074332660497036131859313562698510684287195833453481588807691407974632852567180441650773769441625403061080275323395421904948809291994422797442204256782019797876346737289059201100037195352880218952665219623779875751299260559107000311153214190569988707592768402766418450396903897777003227748311228420960491151415065180343293607829233069909517983515131607229265348049693738842128014043876399653963836575396159701055836213138067227593136031200125033609871931198492692145485902570463336423970492070876873827854193737550197030604661485435205531500253706511895123001691903986375020812657982637627501660375321047989193066179312773631974610415230973108826566233028113779442982609838436172248994037634406247097019625266541816755017174876108042087965066604366484185990666613479128856939238441676562136566826556720292550809091428220884838525426503326209265185030464267819081950349464326199537227515552733585267644660872399675065691462260313554569142065471349515336185887935033237922914398090027914055686159260868764808889577266201827219860808987141223284352683746958287672526826150479952513646718170057152761986137709605485670304601056201325687176228950928691529953323626547917505852280945441172942169892661863159811021105822731013514858130006720259328616997222465749484436678454945596585813617046622152325592975169921950598354237562901326425693393883192024620485423923289055101969358073988857037150735946599417464993458178756122502385667372619018088651905083352794358340172073347828150856226954169977378858639412167406201271827474074744004417948334635514044728813238935333141876753557750215678473647766169781735185570512261645277862823752055323545503633342005990812386928664302864990604725706141409414517140940375234091284268452397525561163691813644332079549860184349372247062758662516517060654053307018120925677020196236279631109904926544603693509582799298646815161791201068668299637226028045986515811001774752815519551852181474678811107879575578829340142063821749718581900007939900207320094332952478135004735978438363957416801966326899816078274850539162851658827078700543190972437678757232556498637597549031765946562861448951239982003559045543828507917187600096714860552067423091757475966785192206088802690706332686604329007472665302265830685766686957511855922285900866744356333901609325460038097910814738518358490024635290088872930082799927231806742992088357299474022893144109331990232426898260159588966085167130737933512547161847016917190205225158747577681809900357324685326692077355961033358315967159264345320678957957836902615406486189261426502198616703365330869534135635218636213155838931449630394957911919206126965368473494067428750476427143378751289853308528432273314680654528732740128102718468944968705964720454831380270107465514986816064732801567824830264081714577444696408377990282778651671010758701283691898684408327008790065000951637733780096632579473365264210815638130329570994789705961085639816524013037315096668016236357916966074185948723140358450323972417031163480304018073142399481249757098912614667064176102567040670742338296132499936043936569212876419396196422639432924072993770748435668880537527484846104251157936911958789988623344191615761309521906675737163492453302643760841803231963167156214906565603040786176812664341820280668552557268940204291495120229284408585213182260773503319403110230080108929606960364101041225944127245465895907506661458111875486569062446699253692841581338902789406143712197059091380785050741128852546544775142788320819821204450320300652259447706090494872083198594392208916349585654366314566466516972679599880650877768932440975324600316695961746799539031618628546301022773500077593464247210684948139225157449301948607842474280515304363523647673162116340345143064386471270783806793651942097971329840419047967994568995788795319774305803522242063311430834675506146085077831718217113062480331024871069737940114450261160422635117314731439072426795416227585832113899933635404234859010673898757177060425387143328440460427260217869166362568306876788049615270877869117943562478446773627659219429445100741662578202954439498735725602682057158943711234706569233798552991556486946715017889268715114547519025985192616479997924418986875132676864978496640342412494847512961591466201287241678266280933076763290030366108084888292186056211328568232373443574556602448015805283545558052305286156997809441594637433907604901339927810476586564465884714407959499994047146318352327320995705347568229136022255824192534435548035808843137029825008574181789067855467899287060834287195456691913032567739846402664531394379609867369563191605707814536408340524555852684226222251432252901467553931279917066904876586866815597802745524217848691395411468034738158109015434222164156925007302628698020447883209195306531215426314822143581046605105939721523077743163824392148046707343517802854568540935359635658466677446486517841238168092196646793600783986949938178323013871730417510290291513592860640537614261398719440257333722542597629241670754275621160579010723639956273809017236093973485742743182621811773680268190328633082521733405892587990415538126600494044433010495896138562804231979691830771300159996370299451971863946966901674285758756220773692811378273991248528522325635645951117194015213572440535418252768116850451364446985753434120180970824718700847208189117899890127705957981928303626229484703365943138371071216760499845386754719158343786654693087345241522835942256358898767456271048633089618484239735505971123839907528279100767614185611553728470553223228773151808577219435081530253111451179698893646084918933647422128751697904125585823620954844462694690310814259007243867543419374341840320666182021794932552011978597943652532617836319152540805402793071028486182817470562412058051604485655169991847751473753638817056144925436737433016889520102291116111571270147696487161854615655984542792737594647913787306332309159928632744489546515696774995139887404637300182955174147361287509026114573462964484956218763577375813798808335589592367686549624015110926256632708896127664861764401934498730263275977440697382428621208165482223700778075019069976158477022157225474816611047452813963756167289625333610366646814895956657641943227370034075752963344773079580851924252341810866110678327115808673674842663362207904511139260860780442281332612718403474937938822690474520204264247601929743079973875797056015287695783616272709599367101520890859778177003471260687550847516215340695352450494032856584664938348509703324316373772662807397314982716765058899010386513364205595302143298157187166023468557897822773827624343230952564133246692935716504317950099334677049085459080599304759653772876797941187782740792517609757303649636189319859351241742065651457356161640186114115057708061464928190317498135572236027676809349350839212441340393782279725948239955867352020185741252389523867259859725255881912732345803818611320074061708224229583594925184675007229057740757965936568168697037315615824968352584271597902067904313074028989795409230001295201131530471330345250536401696070848040333453183355016802912727347391276194619919613181169907525306737830535788990710765045177328557949080732462002511087288275180224939279791532235766284271603062846348236290464157793108349366830320101208299499056522909877787762228555206780057410887468088980079286773636890665221348631258955281587596507030049225357002117116266580931303080771363079390461240365551674446541597149835346356121906828233801349407168628001396875191728469171577866974368971794782372178100189263286653287695673260296859749545200655412334010008273679597558916260224560047504703462184739804928238722430586727796984683234798451335363106464689012018394411326462836618478641393868634587885841742741361022175372251610650194088132622783366054120379728616852650625107916316330068867384269054645944403293620691929185343034800548999267027566523871133247206611164463301951523903731463427300861294962634673558065158613229126349870672658202685227215301472083001892717823193675075030153898644431167767992695117351365414146805020135842211407855267097659820809825909406421604240494684137949704068072164473804568887543927023524011596888583066878121325385016580590503075360886508382667674369889811453721958129086092183139771638707398213134919257565052049134078077694519120628358504276340756796099786813249444735151961108430038186652732588976693681769895843885077499136189382588196740523196797009436923728791341990127857258734310133875386020744656041866884530843197174923732593540889339072495194117951784870198459203295345129808462158792500636521821806580913880385511382176875910276841088444490846659134586967188185866023198615933210421929477768084835231630645406035470413881733131185372543031777712128734456746504377553658163927903018780343726087738445881733395581869735624570967688854340587421492580200658935395057449961789494624826442139952171594448139728056229929280181807945256781037555928248000046864731701060737212610234926897223825677078322790166233108472417673824605191358645711753866302130668519350717160234999356295328483373260217694462362776305455726808914073346112687232182045962280991235449367368365680502710689790121827197844857312843224569719092719639647514554123901544403085279627215980418734748189641589014490496866163935328221794526749242385385987993971640682852424520569012798923630440385250691607433930622215896827037436859380925345853537354713480218113926319276768893313056856675683683672767761038118060537729601935952744807651068388468669293336486121324687573104033851481096638099740955005484547298856795798564758012026682336484561147786845576881076612178575949077632691638160141766769906819637009027071850573664700245750133350106623042602444253281612329859394074736394313300766728753715128843148538449204739036077308159119801132894372791926984692509637250706395614917425012942336420370674219680100106005220694972110366178296261376886440736390286366731546179649892650928219530813782100299770378744875224030168527010820830125443566038088081724267944523487563718149082035364522582448300635165307808268856793289163855562946935485583100965574472934178161720866767653579176837987492447076483651023747189677400775917356705432428487991624968098926199570210072171155145585800401507246306174475103072464470902964489995970376142975815876552657851004756099426311227394346776988840823411259285688278220664411930650721308176158518970627132534968607374562483613537169749184222680678972943005743722654771026615999575101567489092879713483294527134930232896747414441388268902841189106601252972771765508077401547042830063068406543149453135976446358464377537273167076906439494659023025189302086767898527949677660667825943041463053084574948897995342686509793280402500837106589404345748000158896866609448152293770841784270686699442388603037047628620661936562768885582693044037914591592716081332813310498850883810221399110952475032824566750805792587541627388883865880282380462357198136945092386062839118773984466455628258981197298483410053016330934358700761899263641654660384838112312612143430645657185397608263264268338834784061674590580054747135221668081300614349002549814992509033408500910362105338925872394371693156685178426908208992998623404960320245399918383696422643368407173082323571550093523320033097823407241888808221191312048655120133562302936585266821522569785949191972607435681062450053883145299740705000197457655310073819247463487054107242435472664065357169627228416306393251561096552462661432829251551989206538968959051874938245556140934807150122668005346154202554046028598184333049921831802290253022442442880230458494363021404307454645051327487913516048374113630587831302764375163500631863173761507757129496776111586296036854589376255258154156945237797967373427258765805227019632994505052463796280169291901746815329095976095302641834186045331018990499395977905005139894695334386112617355083746315798770871481146815342896386151953735231663676524673311336993259692149084661843893577134178554585620282036892820711235604039171215506954503002282677428542717048832696619889941701171199021187090659854133278176366227355617991501301766830219278865766965480837419667621790605662132172575523196804526448293632269729130269253013670710843208329961343189022092909558178114532039010725310536340949952306669702319317464357243287622475611513794748417598782636813071119318340311213122115466360141008565634871074677544138058924098377108339442125771746700968161896602952446517386281081646387065120533816766532542609312810066227511509163587387653348213230672176253921565845198065872909905075647144483878534556739838614802572426809995191365683398105644010180994613091835162683105095418572093442802876195277926149067499438634935109137349654220455600584251239693867619129653380507741677069766482500428409339497926175704805491995852739045268061402673565346572404977338120070419824807787981562125726087280357507006137067641422513567097824006610829647779370906439418473349585817227808109469616658633370953955883521383913055323049679997927935374425248373799141186001716005170127016979923775300211479056408769259533467030011815979886900448240343529164782914289199527482957749318222107546313350213182768453299135121942228254795161695977074049503986421240320078185487684682600150517252905881786946157141568751152096039607175687801345244123513241792621643711884988512187299062950438121996522875621441764228723117286190232665814973093069612005355389903259168485548630008535102680199163688775351515200591218608435310846687360195963993332485741780551647063659158150643435332377664072799939062646764527251315141758380457801557659244315420058286651978840977279757394521352357705490450450119459565394831189816442945475491051574758259196925132088387172671960876431423501218238412558562391441364394944068697766038088037746363584202211239575582859701728130832198819671053450577487468225830263780515673876055678219168478797849890605879880602390067111367553396412136489688376961273171264591605686294388315615278624550977863909049214757550520056208578344579618113755208922762549583956383935019082145313963577798406933234589696285924740669627950900011302855345983589459543975434993268670174083000622135770731832439698497905637462388223342112598597693420009209889323503546729102450438738005642705463441610721102619263240812368973069563262950137415184539341484445640158456723788090883167626197386723956214322126872893325047378374392601733074143752168053059110476963545779314874776523988309352179421614846810949266286158409545706876980158114117322950312575059328736421560948934117952989701979988549120643716714571012493148252059907956831266654938273620097899853330189349244356432403782591319387745282191822506289582094265646688896333954800580843120025503864851491780260524909236510805644079161527844232861090846625385545695407112168470277012743264631463794296165782191245234444851005409968434092966294338720380487905782205217003366156483848656087864628689469392023947247646322395412014109614029462889038122560441762471092370401864557765940862236159103269343799341031522025057010347099570572033161079593158891797655053974012708857615540412381265058491838676553461302960100851607146886404921323978353964030117463074421855673465504280805958188403496295766736389985897291040070171809685671869391242091504623968722867815103873315854455360952658404944778143479604829145100895877641810383657969830624291971003730166791372206715231449419999573307530255436739992276881883759861994442328205756178726072138257498532072055083648445140048538349143304274440074791262393076724075475881002411426985145878107799766647334377436742058446313934453974539152519021748272134155391521901430908883022758748844114023915451312271502419330347253688889018941596811677008074079828170346726975321897057023570558082713142493389862239511763092203078417893891721675997332232922669444351625487914322424339369478577755367537251139207272767818568845196244017694896534098991925127793490459076704718006598916589307307804871365676288878625105337574713814712866496420053795237107261247794497401371143385222217223297096819438435856752330239221375596758125405610909794689577056805042092264880329043874370004508028657186179154919646815619394199077546994139707057472123354405312536821805057839134715192245144694605102880775932463316971754886430797601714605236522003752331082633000397911352467883579981717157276578490833605574044782295867382696773959407954933528456380124660333365899542314090848933276928339611152267272144486339406433861937501060724779796042129284915823826466427382861038337930103997736120059472467715555967208445815361299875575781652394981043320722212455147435842255766216554087722104891420088276442247767432373777753849689566527822424936300254662957234269315894226965438711604219115085202613979848299455308633779447533461901603440807004217025571786243871085223233838961929444935644452921093541738247077500210583268499672847192047402334744166764581163692205499414333235815685909213032210382012177467836226614280593397803748689923748295244764679029627582652203180384610880369872705366535151182834467263176670308991006674355107772640145772523053825778892228824066951319649615540168974088203037423352993018886504003723469336456614442118149091213260202726931850968319385636538916894342403989222336181042778813741731837817316840533569140448567400278265487330888031592106828288191546541082377218584264512699906991760861710737815723292679187780105831029693635582386551720373093306049365498573442272623982009727229123855633987903723897215552791657802584068465551664632452916529463423224700498941660460139567733555807400195128402635252577128578258551226211553400435636590214516960764818345374514768520238435169183914016191192673772415029261092165277888438707294102672255627452633106482231174355227828366486616046970549125112150945056057594368834704485823533864637683108534217844899436138140608023640441851267706448796115677193270115226136044460966132443462631848351511825122252312247543387024162045635439096771858381229709575563224343468691105322303918028181961471225109085538477928804352597521780791593478464980402371014300148594159138337304433146827558319085738115416307299666796476535101253448572200550947739440387570741922972067786530329861075700131999112666154659810237912898759025797322022117357766796852176916257415720164836565438601402297086782086215639381445036644055140257737057004620312227808050217426888060395766206650454671676382507698837860780093499103384880037542849201007842361131658805055106210622558147239940689695725923606067176176627062698552273079034546841952309004713952232337902616916596473498551337843437746840121583067811587153141468094516556313790272936210653094274499762860701952823113591029253090915816627898480123038910628348149180769316973578200827719979778765754916099273242834010482890030951612388520648384516378144841589375323195143590942757800888168440546849602641514693104936234044424328521097266950563890861036037306618632657653095057687504798843029580429422711860335044960795541507563133317344586398637808004397022055502849401580860838271635531583416246292744346800801005138768402880371436537035684275090892478528750656219619850673917986094608036150584616067083019660827673186061158915129735049572032132077331277990173407896078967546157792788645768384213429093798202973336741557751379221355169830772814567715021323542070090542589108551108218654924191240547862204291250679455782687466609215637172259616752943694906754166856677299737111997789197667308602453622012037673177585567522508187926276687525596755251180960008596359037516489438649959835867522671690782933494408637792222550750520569715482377475824282967931101365859035025857447339244120655112979418054102210097676418022197309705460244066713386805444828966934330763668022978435143458712076826304712351094040415416146964124905595968289867488954290534907993689307813008388267049537445230792837959860656647528515906379715627376164409451075393099257350904915784682245511799192442391031750261061390997630568320215954437524074814764235262508418190691038042336911561659766504086286136110530014426239391895471953352888850815545761035630204111761017737553776087259440072723817329126792546254025573836358199020975832470004865130896134594824986288015863174368304285216682487615506544989580183260979407042370073777300055335649124025987110672589930906022206978994457336583929161261364098918627346890046875174318143156155125735211362803158593052390135028848654337174228372934280599432272683830632158948018701042206936667919259055757764692582503658009539288729817978304671199718419114362714570375532725829723256782348177798020550740548323106200260023507564210805513310729220542370637626588063469957823390883510878647661067227866321560558954250424135639016520048041580770138209078513286787054590727037696532721640361265497460634683800525931267920613150267145775698876310965692253444613459310196936764755244979181602940409519359440005164709201940099260193457433111138231135317746938186468756714003881667223940992972878483140543989325551965266663152012018661165946518459620177537137953279294174222102857047042470696574552943702490298746859310482235454297325743466856850262834911908780642964387549310745312470716859584192438675102193439839954164572805254348085180729329341720824562099613226507962862137643973544534179734159028100963780003881331739496663740940787506530459357475908937761384055307720713670263319867168574145997100696995628549722520719690424468533996941290388969581933330990361633741671281083358233753154420412790510555980485191551380220821522629420902207123165795776379085332459301813618003258822506641554582107095676945111790445642722161096191261518654189178581136049195511583664254257059203199304705364167953379694342508174564391955336531813783796257300183440644896121787109361406786086414605355701507657900413953921595769414261183788772639609847323763636430205586609768706086381357052895669076559235650930188592899797794301156743183578617115972912847595586752523912040117658611224678876515323343483530631911759958542222698630969485496079051522077154151750254861938919841510729311619243848037559382807831899021845080291515266595281817197792656162407772182677897904258185407214515217179406648361924501771403697972230142125632977939410291207952858541337733447506025177417176546715987892300809827464414931050767566346758327435050577642002562594889046697591293581594944038735064033818388428356232289390132523578691134097034044307084415779953556810435903783408439489150643342470507362785294465191942805695092574308573629626466674654941937059303591067060402177542032726985920021774133131431444583086874443237725998481478759308471308104930753191197948721714432023512063158520193105217507817817990561580399723560333621064601232817067703052670567090893600891695047681719615393158534112061732246014897107480779504482700206398371867643153209608233179470835188548015447940259652755220281089093636483566672832434723928418236481420488975480567995222458176704240533823578272561874653904483682493256062647023374940116742597720254364660668975357766231435635717499965612583742530874736723725804513194183823739033766915691741796559349675951962219881335344008138948052061162212181562582461955117823565740723706012759498940024130065280828961532693328830371177993110283609013781120733948023751680375628519391726056495109261804700282064196585901558183279603038191437581364515657425885569915128331061192767147384887176532807553836147177949915605649233380094985164147632002769454476555644135463710387103182070788059551876399912261734376360253437326436864280659298247845074338384768748661542075731008493598710040110791708197023113153417632514901408582065970944486000706653903180358926895670571294668151168373119207651310237044678325615060113528067763612861919939836848819172612050155135309258292793030541307100769797350169087983390915451832076811773299078948544112551521458597862943130881928898537344745095419765912321299285006897244624975984605764782880146410581298262417148046173672884336151190057117966045601819392583416072095924767072607212216529546491613551161022342129162779115606720403515174109232551756463451965640587887559814310292855592646865512833820989784933751247410582382273769211274369285058097037192346906524354836631679159766124676418568669498131368762800082520171834264880760873962016875264319066221910165313502646401448356765149501436971710211415300213536534571737930502131093470770461146555380004832318752498492929464758813064424709732070175018419265969099616110856448554970810427030140778222984674626044311379107839456830512910630733295910842359520075062221562586938640170992047212158625667144903234361261342606751940997477173876427770072249415681085791242986143021160319257899888951765982952576810048746911567731388019716017703484262462683758512331255692721673518332425245051939462814705674719522511606797760121411141883002419459590347472081936038934040228149121753596611383944276914320991724018513629997154648958985821068772217944271440613462363386548304113057511262215833462810760250086001880863940292473233739232612619559372654948840569427187965248705007111436393889299341812001578612848199602260096083403848092634806408641384465393765102139695148125169332582523695084212108900743560460868393576438648803611660854771136183053956924667250674298612841003925661640553024135058683956053905549866137615863947308210911922291783116038104131211689751468883455490207407764666178873616064282546210664435517960759028726721405105805212264536024998712508291458627560694434732875097103872694217740366583048165234877112951913473016961728626069546922029434839888271342462226221196049644450343537720644916494974198268346049822835308674733447221089755248045843555872216988304368690144281964198779114086094693191885872119017233027629343010836720809742105465991271364760095714454751844225124773109205215252377841683045400218401408346734891318440290314141858636314754890517630881264041529219915775668737610090624133871702971464831094673000113272705627974894317976630440520170450342535805730268344671228878679452184498654293740783951377079844626548830895290356430641938120962172475519184126017341075828848125680677976636685900527126372864499296106765433534483414127146589599771109466094419543324995804230748998549257016234751938118091541989631830850625511650751205248545575942777075228468794169280330396933539442958192192195313946523358235855994421574452703860836859257486466529343029897729717454767422606855177712656395529556470119758023196209031198199696158597002648313765214806644270449692162252567855528915488878051700343590243772464112287481212347448097294861220472549006734210502545405352202703114737023373498119497931783335941456719923395709752231474520449312682024950194315953577209361434129441514079166878790372279007769707207476506725840242910156563505638192293805274226367364350824184721419562527562647837388211160056507668875908940484177193172802403660546491099827908498773606497424971183328608102403464259659103978175687188456301103483673957969336420986168522376615795419774843161164263927889980892636188897486638533002513664401244702480318836210375097005756607874274798112108893938432748523714991741051544905382989478004237916935694375776777309512486093821837411248509296893777588421906126528852406918620822229459304003425845852288783022699504840452726789542731298524610644025544158250474228881363060310780959290064503504574381241908359155645736844633241862592592472474181546310576306462805028575269590256263758551908107631772816059742792168839440795363522673302278096545976133816498059939484899480625367298076699745533823591875550722986269173456890607342414119986847120598369468923322299890920168088827373808811354361832650617045514708373210488817532534398688076332003404208544155766987551953356652034209989913875839861093828341810214268054519094196916011188570456811707945383649947486166112054954811414404797419571791777454857982000680688486802720715841627040835272448123054969770402083344507043369222511901384491267338401897754893483129301511441456459157124782850352513506340584395194611095379078578477337048367704779649708779711959931016150274606099927484995600240029838008397278021764657442605332636665973837565707380027951128235419529565166319568603948248115558093095238618162591011531964504187379189834484740295422448960206302046304138387422295528977654671704732375282715007671035189106275368363465289627302961184879765674274195407089938500715439501889476046714645042719723176587600256059258047023288838889756163731029787356563562925157753846836294720814685163046612627321618131720567110008183216568272396410735816489258713556697888671271230281342443634286486605190220234493182763276369524557308645510448007414033051620760345581043941149457122135325322335197557566115344551860395463410633908925688626635099564003941651734317760289401035606687828961376217052189725485134253855093043698702050793895137927137107218323038412434472750267964252995926094632310103634996780372628481996361746041595263471722650470685817008320550519244148745697618028402253637536155224951853741077800290494081895970783723623132455386021659368778059602931526257949400294422487294234227962737159889014565527876916527463964916937889031189158303860790109732997572967896450081761335097348908474661091899192973468975486142952180900206125621333344562805627723745757097364567075740163086489255961643841485933198305373506581996975611127401873751500367006034081568886880395401254014945603868592935105958668042504546393589838070867160726433868652102792369481006872220552026163376620867797522634827611838620141918639368787024660143121679122173791285194731728912075208921953998760238334480631034138709333151888303286040722894682051852067534159895845216849802034615819201274807989349566852072423694178825771635688557527904931602835170139977940676939754000027700418857032832388100290260765037473135009625167691812642306618029410278273279497335580869797410645656325184084992401455251734634070191721920643019351952688697936841398520242764701790758047975569795984122224132178947334260357733474622516411250026522865865717633511668513482406022807951037681440733423030919165151962031256583160007247007827267197226071907436786469219467367359666120785354898870061576516800702946249335863448532729484033294621138955723306232299195859703865304614845510970566982363763475321080604479411369315571003834865080698801100155279602490376705326404331457272277853475439216815416909554722038686152320129576894653204300883492835577892367990886709117390692060475394491348214061466201997886031353969089936514090767021953962217082730197724204075622140480426276689501268443652974072065391917569879434682570944784150625900196925176955145312043177128499618134508603438255083492930987844169828385957428967489232946143733619394091794473435939614124114574339067874119968453230107017962833331687583241269522109051770576925492119366797266654824807885645429998527369714829755858192786704170275200382429272340775957487336793658902829110514090510896400654396575764037287315326051432389245949687841869338627666778080320879609738158629796708307339704349048887650901958633668515697096410772155480695359296935435149694056035467060541329362126767841756086860915996759884275783016877939895508288460651462208336820181250190682787102900834256984541445622868417180017949195555005808117276608437185902798150749000845294198977465609893795310059962776498927650908333485445476160560142086458879100210757184034436364308396675794156026606091653484118535063872830023767766520404305709144124302418080422361050352649098189711394258443808294900219110815624396221993324362210655442369498227544100980040650938827482712272204197724311436236625959962464814747672983478297731273814444132627095435117543814496153133968159159469772624579586162426981085534871304467566744660049652165986193875081564365609734738013652816184107888366227032592527416402828549061043371347178750450562697714999393186213584041595876653135715812302086183169742065115241969891528783911906435767627547352652369941201140192700333655575979860052172449882283108887028113667536546820562399751044463660263686802439534404560349060334470112321734673526069577029143713619984421797795534923393921765609361643727747320705013461748315048522171673097290504916823754778296459007513658295838847746300796141133878415226210536963345969108070557181510106779445528647714925119930149132609646500600937820774477759715093518429905217216709835490341479994231545809809446627865143342317084203298704998771684730703807780028744685782290388055781234480009838332862029556949026560368490805142195547252054750176670674262267864236413267599335435150139511894040894975956588181024907740362173782628415545100499903972401265958665318512960722229383469742924429371178100316707247179049474897707037889583590571685108128283510965416308920867089327223429804340146581366546895111023615091602089914806762556925816704470651676025647846151421363606284205526965990401904925357263384899766259267624054675065580586845172121819765177051866332351175279767385338363335220248947190188813364861054668157680981751846199134054171720139054399015040168220565048372390212230672212983576064631303518446412517592730957258247630361940806593983350362718641588242964399543574057233841700824670643887867032316009064648551948207470122154573660869522577595995500108249609391716683322314499857775548097431113377611841223965197786091314519143392577430985162273692834648848722902809694658083586593187155914216986717069247888335018756873973202283248127192845064791844943746118170374101722397994608349640389237944804962088259349061047158217401400734234433120463388665032902612214043889668955196404160931985669278197791217349098250662644782691097088215691481222197336744700184453002487201284528579304535264522872685365564735221704043451160256624912837618074660913510604591711332972962115018420173826516660435907830937198543036840292199141384273699259526092289328003224811127680201856069538749053047709238531715419125956171112475381878321396363362994064523469201336454488425701934271791082953831218699096065704511894405143502718363126964568159883070169073407304602476120675807191994802225394703262573779731083318013809199506353447443991743141240962462332805781418879174650296248094501927812604713504094309083577783195194368921757029564030865781801292965980495011203012923594420508455122457731367970435673076949968044413708735115208714190290807527598971340130456807437275143910805102906832787938943129517516150614287756213831421695726260976917735577729532962194797983348266370785286635576322562330238708883838756952261046096702853615146184155633757158804331244829364293778730176277258304115031778134840540762281174675807853839674144146216063651754091849234034835847183682693206490773384185809906287559535059767725035270466060633251264124550493509146068607097926482460866065513932800635579328459283128565119489609458250461027915796883011118902015165356751807917512190085381201920407594656114801175249130647784841332693833792851328471600683430603002578118566734468693074907576480785587018518299678925471889723285130218325489062827267525874662679661736703223557331305593285067623412737980077539355830016064346007695112117186826323580948454347325914841549057793474730574118917312367826176098782897011752954731923802741423820633647220745544127983816564218835212264281522028078740810049502864596306149738614824935528459930976577641227941486650306731461850181228088250895025122234498199638558482825884888225589937665701185316228577351043470109929221601972879713848452295643997193780655827471678284840163514950221319025157413391284661565270448226593494326744520910855664265238351413533113085540256522659860227855862432612773149232425775882074713201841474981668738190265129650093586218438922695376267878574085011753799464895929768666215368471908941204253498212995794090675003762765678413026973563283623730730217715873625059904832520842825426139481860341566163689593044727011786085791546800857091920471892099872947334325843950746769192826610584151910593622811146045002300285665325304771187674917492690602170797076834213356399396578308538811667280857948305692626215751887798260477397696065268139202717360311325892906712282995100996583469243371362886665579700016567231154645172294637410693248533426935869730632534910340405620266578842392057157207231492453213508002950607623120153670360389512135922146145907538651558391403074491242239225952020217104580590901232954374319472179568607912123552376017771118999717170395661337627641945628277058249016330724540612768892397795107519750920822225080152349290326401445031992573123316802077122680364633576398608559670160263078686384633922013654910130917402357187466456186066049104695232353128515014519976900385551244124639091222154115569346537120642459376886402870200127025830027756905763798522109815552344960962044270632973596204319598161643050363914215582021270146094647114904307508608966050529109150884362527871267684764939378094977852474598458077391838210574840262467964181532080996486833754148319336091794366047172509968729966803647418974467887968068296155860354125417364027423674473472946503408369769692392340896744626593277116583435693917606963647294954056024426499441715164342273449050829904461391500933834727086362036451985498109067439576194339704901773223640512842270945025770715372292340234304464187595876792441386799218881013920344934491121163081849143391831487970537597672938881434439569911554103404770506791589038984423985404662683981856809593080039084676705854525432047592553430835212458894029127766868370741484649745009135009437496898734966813733141130462016113820841154206471357864749162262566054570103438521248675749229194779511583920017770822995451529615223088363410645119169248469367566418379197230428835953321578068201828119188635749370940054811156460509030815433721955454372672502450056907002860890280203926180050095276728136786152243089868243878752259209963272196801721166759572961644096472076480702501956449986484897236562342381697095825145587890929956394268195391076492719541545912484523079864406461751920417280716942458125542759438511616586586408739073324156627981191749420098209436251109679653303235524590013531612316440346648026577443738177958530424876937054983809812760999901939526946366911055822525984912608789275782513408686893099237622354159572694731759281685107267926338594395209138159130161663409820576251337690124183705439780334867811916076197453535115865537946841145024436602974438648521756387075465737097629472288279034853854674494013337937855086560437937565074749166893112930267381541216910916051976781042581450723875962718047273429768183534834282754206233019408141578233791065269870063304146282880195631266209904741393794529861595639978665588004676931687515388550327832450124289976365042331326843232001223816165318680477583193266046278417135822979692005187618766789611694329276607960438343628247078523796674606418707310455070237957480331307435626342506304107394342092089607186686290216475086051565794598829828405646884166608561955443335997599586219536439439886633107743380408120813169545605448995988832546676332925231738666157359469547557329101217922588790930482048312809773955651829000781314880355586138718437680109186854303624591335784772176449674007019252521465226309350668089566363631081874226068118126425446673123628839925577076336705149294638823957917088117717558485651575065137485019586345833105432432320999297255668628926266061724033674671899979601556002010897560757118413316964739013010873009076557501491360522468012090298990879580836610064902848274663716281422099709011013790524106861133117596167406104036802262050617071815246731000222101770925139934600793166576381851579791998373795688193177148566277361011135347752220586770584493156069451554856113405086322140675618642973233021990754838546909685788642714373255275249621751596239194547831987100444519602567520907420178304427836035061623569318864054794458114906366052398588716614737716651897787203220823617102311348174646999580263878460977641466034963696371629343192519778942673964376586356099813880920740638411129494994845880740173153748135326853049703083334858694704597262363424932972911749438266529066991169767807833988817240514913421793696261629499157656881696655300420792259600810954655489207100587835243045880911391328957902161620882582713676261648790356422514896432787719124991164458072764410453958330951812877518960866878372732455286084110085137046823162914447914774112481476367737328864508046711325292115065970646349813402773031246372611454005928756089513572086347142387784277756523138810382638421358598302758920437187166363948407673876918231838089849595324215368722790410396651084150916549187781430071627720415848056880098783198453949437785891055903623515798911063764770936395789235466075843988342118370252477275916728173199644952770687524550787110092725290296321976400422068235155942013055152050420940108791705998237510096713858424432475977147074814472514708307293717267481362004643425851454979774205090736145013814946650707677831158688890554232207016341113104400985989511080787643403443439202872322386618939073824950619313732525110435939994540039260456172631757055278170581432344224115748687229329142680283669350940410041418418820499924338306252782283331478298176691593829744841947581950179143939980274483628991159191434174175315596435095592878438831054558730150021824938919347295812819776208895205339956159832369832306276993503917300637910881941855286612102123974717733413200334785885614681116703530451155023669403183314199229764689784390007851713130353381658151421537866051338372051966221283112461686813120146210497965416363834098109088575610407419680159773915472919993524799015688234768800879889075641985592526703434774368189319739975661407863253359311100569663151683484817868541860662121838112193331565925901167811220894188403778851636809293234792895934357249049629354649151579513015034609614276020734628060523476500998452939947805968486245579304393119044550606096397605051990450844170144806677060635082759026858257687638500842552189136343902782106898500174170495078173824839423671983350902905882978691087795592755028975275174954400033522562300001923402352735323897567147618987392365011244134999878642621154595176877546296583675099712011562313244561772996053599177922547970455430288080156565300375400166825379297865064445888746400762908910448749376157569624439606857808221158930929497243203352986245915019119556704665312484198868521888668417282824455286884604928956842827899400888613516680881182644381796085209371571220800967285500324963521702186149658932071121006034517141977643569402185870983013454279161025685944178126088712159513012412109591152747565095353708497545554502423707606363154852348186640468604655700760675448313283783782261291391390498048020080299422760074668829108317614585962644884583030108319998896129565972267337286838040760335524103888427295806245483466491042560673432117576014160985396357021784745885822389518018377369504615115821533704169639843475202806358014220110782374389342157705928241767680291819062615091872344303356389299557331390788876362702090550418909300544433803143014327901937002355853407906541368639268182279590190199377185660140878927948802464562746390153653790582065362003530015216008004570349467922117991874091354838854976637963306909268555210004810422495700898302293079139336715038874941556910629773886249178218219909511405173574375147924426104554037735976824696814021537775592031477067904983448379183525102342770840190258609209970801275372980705059320183724098587633240200218551886707066233181177527938913429093527854315733540185771839373116398328996979992347047422941414017216461669661756989457030448467414176515255514230405382693047273999219121210585265684487009666984317808420279717412356232277019831817122233218244188068745698968516450123437213847377793826486579053243676450707612437357644503699028699984864792506191574930874118639489956709147401337748456263994754871397601363724217797037800166572420441542994085358181971293151953060725587549630928462103226290816827022050280843831351137879022227145668570299240596731024723542052807735928142418746678139870039326019090994088797358281978954065685012951679377177315616758210516576857158956235232195195146844042630311301254103097017045312159844601094790004986855584696192900059700686946550717841683296893019011415523612671871307818296339441688114937414434196835890735523778578750885957800533723020496812587830231808600236927250898751136854596709444232172990856582345082283743695780618603754270108543371874557432413072601750332148798214671602714562347930218684297447196261177732680781495120147834668532555669256005606172252812901168848388603206335437573419195143135633023897288801087321263793061347264105003023045283286569752529147474580915387107401795111206463838554016353040609385379122138601852392585805513050006747111700073665700070002958049333681967840890169479227634520028314901300523100222030268942749746610122465978148464196898102275273627961357789289173523623284528613418779800444170526075636756206835562663590997195827783164176494214397450335424271151169588052371389398391598340043733780588665858621904155185615974538644948817512019558165842248296332605462801434659423303224078991444692220550390713487384219503682134628106193653618574171858386292543606141331475691768145702795259187424876667206365106272250736069842037907041641117998935657054393139940426705020744013187709121784369446920799652300286565078447843249246003429357370907586719476957718883602623215955635040352260346251520318589127403909683361425236782174749877596388275102420811731262857800601575233162635209374585160062363951837365675326585000415039246519729251343815060769729002561252157109303504035387609003504473626939827783432684553897549811014161481534338457726960470474606333337333618065139224034235072120988215845091663468836566537871317641949141642753503114796469017655810819958650148726788853592714168302584009472192838356069445745809935999050697895964731716736197436819640996841768194179076884172172816465406567113161106531207785072824564083859629665531049051758784336559408152930135020886677058756561050773779036282322857327099864179784668277575423657633544579965742636373240805260132967183787063533173401749614794100705335703663726404543761340711806674527015905961820010459820149458141928243555709876694713209909023208150321412710113785784389913480809732021082639069330763601855567025099384042280061483733570995732085595544066877133492150331277985561491626943171889238243639708820459680059353565504842210063216215025267394918622137683202195833241471148370388884468957136319462066919102126534612311484254092807780752363999247453291136890634463994050456012295024042297853623194972818780386998282883832686316175857926973397651511082664614548971749876093385055025580677705005229307000747790804347445101264546008997308901436954017870862345703862292595819485175597717318632645994509464540355243682157129486431007464120298151353622674257577436455583034004301581359160385419916645328592727094826782729095736558160376467963076246357848843847751308640857624551092438058569878680741399471094139208992058589394212887189419578965970217245252554602174211435722049348230909281996855216719802792623648513438633580185926204201945077936607080311042401671665771913050133729599564825793424746452648776767871655109006564401164001256763296069234157292527510977254369506450073073147585365583922445527189420297788567241559702658600487097026581981020062374788469438033856613680920742604480086367407168376375837358973405430407652015787722347998368829075304484282510578789409558639599854523322914920272598696994709659015065948516059627356980302947391422061824512304721700877013365689720048815177231819304852790697694341694848697845347486045178117303783646594840992444822553611543787449242214702335298410055209763304606600589089937025028259461990106010310708358546875222391231808046880426071976535013372252944099453751758680861849288231195044033388780144012101397308801679507296507435103382784523688112784639394315421359181545180522449241861971062456297033199585725216904100364850172868762329238486936703061567130982623006648016740999798452101185968211539401881467770996406288112278609823977469648718470077088369180011913978175095201659647954726283444019902567242250048390689860473184871038604827972018768568407658936014116733079428645803134145946156796067480584332703386519568027773304241368832709372606756824354973375730635421995579611584152730951813312177014828936228751118873214863645933008528437436573599108637442399219337074150750227391251751620196731371698071353956304714285604087365817349573610000080748606268718954921209032181795711368956130283616033793417315581279545761483296972774329313352624160643149533806502879205751271224664857448699712147584549772253942816249816316663036060566330467075007614816209865446582511960193764109213030958196737617989166081553209802061752841236181467468138286273120370447049651797661281607618811571748413052215690877330632035011087637211829706390570848160819794962719911087701253019781599212046237396736907479888592496299126071815577496291014900843488886575038725877027495303306679397808869575834500310847404083253585359858770755326424133575468123159626639436765570055920589601707760696594911039149120033294311645352403066318960892571357027180818340533941796408425375814252782616034866614443074310132153627132046002198247368677948330332755766175517944325788627773269856525267672069642844670001996065475574210497005834628754175263986390194513553280062482544479846669980600352807032454302214172351605706013945665325189799802095833299964725049599717247195388404010830249595509631098827136672111353913793394501649332378558703634850071114136158882879616971410848224047593962167205397986533377572643137152509309674376578145303725773802726231783274068197589426999680769049847948393265230514211240275815035381472713736578186203138184930949286850392256539402518544024497995687777712305465526479813757707683810737831874428222724397353827969324411164651268144267287277648086568744384400637619079286424722307002233670291416813122141769588016342246236545031618897239341182586528531198230515820358884141601589048425344504561809055964361332624285228716742440425228466579291525410169185444964914671213529209606259953256873531356635518871606887498717623838610632863809673994304140025690451422251434306484678326636428472966378428267976924385146804168572631160372816738326670397444446937395479853659668164304694481439153470217848879070615338161110297948842004122201134815118014853512180750945804696982346189800268649702999663627157291048949030437061180882253732626360124263855103460498138164462584717978278629404518025811324926187181935134857147734589574693788381652702172323389372176502264017838659395576721070247005888466219756676350032904927773292190962211893820440689724029562321370679040795654198092012959793757807967141448578363313826850225436770470841839428301661324069149172437809911784344327028611418085363346917089712302383528060108631576959589456811667710670302448232207748472527570606401185471825326499762990915107084034599788962733070555219379451477501929412268107323223112897466439957344128087982242675467307100270756281665935651648154420997363184663966102694555211309923250725495046514827918903662636807037549485513278111076900734371655043436985230783668271528894329711716910699553029120813499834109868056004187201036842686976802374574521234826187462282190512172596569884598654612268773046002535446503879766755073520361932378212233360806353789080950549091070379274483179817266624179280423534385349849450286574871476865584513675495624568085962100782787171953167789450680743975215935485141060640021459962646111318582397107666820482054499520072374182097000148046178037778888550514022890058498383817424028151236215940911207844369481921026084668700820467605937563096214153182469273997567244498070464549563974856987184192863402209280799537691437108993005737747707213739814654935783446097393767988814653639374875664908062138826692154199476021556481021280282509290398085633902578172356695335342840917465687504199065593893854865896961872946392259497163421681591857543499212469327420737621835335523253167975539629359108422758082289446390658508095548129223915505604844503196911261778478810304129203442387516366461791280006757078553910112600025884865312195255283762015521691253699113749955765500569543122022333239513083684634382333991210914533976527172676853702112310666183539954684366059864278107488920974456509603670194022181434189828689973107890817855211379825323727278338281870416247324259462490035178069631966324003340578230181082118063495348929201861826992209410359326018445179823958148283535371062271116805086610200015204819707293159039008909720379158770152049108811895019275556069521473058852829598482647860971259980681307196037040068753890980316187375782312305356268460416180373274097254421422947020572021752603136433386730411820657417976638774771067602481667653434902403727353899730798610334690884426342593377168483137189039248720730674389141240330361628602860478319809531553342085363121304685409367967401799613344094367780023313927594101568281544790416998178437868819449018697097421162151039371802234771836716712718402877598679583309082966059045224572863538318341261752672719341687689975904854442395071882846036954739369224756016936699453411196479244160048822240926335774960265142699471248810661354403032414281891445728304013560903128156278173758866457111868872906205667557014968095717763588524181969761593468695808037888853346392749354199660200969810599696141881337518737786513373656744128515983869065630765208592074218352772745358693637172205558419285955528969092305240893870834261644080346437492308464866858459992581012051767245970018090127593483682815624422333438731593904971229567055235771495236084439247680267618192272116535392328600607728509556807820643883049341064875289116450765927971828632545247779399252622658155130958828096012307462877614436676508755021102202157360756402067919049300295334555792260121279248463108904989690689405519094052076297628341663624365038059530198235132024149095999632049836866661138216056250123905317095771754940205654860535961904908411789194909645216974059953773925562550525271347554131510232323719431570775501428398335239938694782833706957808873872232479086835302573391600033526999048117406000310318160867772918187002660357971529805609230919073323139548587907165573321147179549352984646365967645335789861469528848423384069060712827278805609870919535926777295623701656927539327594265647340878321740284637105475907745638189289480411622375872253909608393896202450214841907057653768400524470872022142568168870695659185061914265998014047624270650901710283659546751135676244026612189406027947041959454829611973450444595103198798631802451884439593175600594029746075513334736029420265805059638444766285812930296723643594817020080259036296976954381234180563797399390759788860120196808771281827002967666718172620239514992266260332559203297864636517939074435031969977297961616778464868788217078347235565711370961956136496942428506576455729829060063181774879894884873182021023238154262433594289627815193188559961204223124025161008503410171759400032453358154967972761604061453605551792149825484454818189256753022922714093593548260005098524665995627556725460605208724303579890687652829957372875072098868716176284334698676279501475417653833899462260940979076546476943282635331698377902659466579647016880864558993141051183762559590915022252278556311981504001705649351896033513744564432856659417439047857288946990224218450523950153334332143140127091418863350984259743991612727264578273253713164438045323225397857254331207105721655704981112728126520834584168298505884608308447265378434446833469023749604086768761992761999987991575206383498135654015993168571118960099036269261892516330958805403145289705992723726501108613029683171065078874757385805702370914176016597837048085308605701363619196092769222754854781674404362765903980989133875474250973678616838368807145259344716496606217316015489183099471045650081141477491998877441213905847077221255186480824931582353536783196491180229682380849694243457017867812551736468628467342089741954774859658992631797304218874261331189680633431448287183771351294574324811996407816155847455418886642614910857057693358584489460801971121929390586706067431406744479750536201371117421279316645903075574447834229007366676281584847021860745851118322810356002014804188276848035822611635135183643773062163963785502519729985819404641431471089078980271484633221988672793442379665316594616722056121121939008075882656527360544645538879888535368668194893146049251943152850788498439656519156299407241053906193507966342014866079131725109047022490359933178929784180476940415341923625660662315772111273736761796018184014772001185892124820912576743672003268804179257227807267787869800770232938602758602428113308819476237880897473089979215142630507456023220679321297668445802403344660572511641702430695910522176353159843239029025414660058122880976591555175882518365267448955349450454599401029068887485040177395268789495091926971582041462884751479141452359309162817189215864664615484041469746413968321573527659644907182443300955102597711885299491452042572702089099422594533880416925143458153473679837282155777284464840858528272305083896768519694099873727015085977367883210369738437665098479479989338180281663242708566028466608119316193393929733789724480922207492547112870661063848491602610013261417703982922484149156702526990269203788188719797414506309156018337214180577577802564280936200733402020385858149095998762246810426867755783534850449643118982624132100367793505137512248310784395039580906482832958659643190595857163743166664766710356428985169336809945006169887911784452765379817862879829409085420953543749755726401857633003098856052293897632256163778128349653764422211943141154261344169071183980336893208617189102270671308143469713899777888618179420661425488350358960565242550952962553665335841145841453069367899718246953586309306397877594092003750451521426849471612451125166331604178277329724099309918631826781761540252853736186126299434676983064875880290626241736975805692013868141295002146190800285817234147864179168198323370013294437689608856029442935167717955953741431853584934606710968758290717210146052726005682821725585095117807155185444893295002773648073454582792380422250806519813609723604030964121228077229006302455899822939267781758195235974259394644615732857924241485664926974078607090755660668047542308183329884244953497591402289276673155738697413464145883633231993209870909306938435971871496050433918698050290116913349656601293671936698204272642084090600398149145909183421435283586126992001523341575820385396477131180951010658150433511087277704653422394675589763080369565673276396134743277409329653055077527102298950129515724334828810548653459995341749178838930610009232160494953743858560805988236504283138304726269787133414902962166828140075011211193961271299152188747910986706477277060336354924092006112759229344842462021388570798075086447048668163709938861458165687464824499159185332090943876953946182560231235867084060003048799013499758230210987023600651148095188899812012218205235955868009122766951159530790842312523834415089321449768274508453570488012390587929847099645833694183818311749550748654098291347403482276803859925725566208689954823091822385149161896036383692652124823604570430420754905659821869194412460442606746531194438521089926131975156474388522744603910545127286597204432187893423525618348853182209740915199502561798937023130284533542714290226714057231469385269669289000206021770157065216182487079083424941410443998590121410242611021536767895610671158767656105358953042897603861905098030044360973403309645184953445181564940902601750693947290707548698281834713834227919955949293800315605531644571999803659047028217887502250787502644178457659082179152992839916687764502844910175124665813407673153684925964687265549350210146279058770003579982266340646415031819591064855918473940093479538390167491531067559085099569524384016225615237669232902140409841934996621715928782006846642541830914858658818753436038806528293515460178999558226475836184535740562638866104750869042662652168942927264354511646037507346213772377664042946771752584619353299767638108379186303244401650016384840158427021936977511177351147296486703597244505758647713363525339634437666676607855085600741273612642806480742128547424902435022652128162743968703353076858657073352732665154635684202047369668145402309052075635811349301899325215753704822000709578363622663391542920740815623826914228220941410693799047879191568423368191775258434325889917701027448775780089264873297535071133409002347692056569235400983755634377623135543706417016234273255902935927457841575280531475812483324101822375083780854908467264128829237256883675115816100396906034747361650063531246409950363652476661478821429386333711617812752763863249409711694775931615110404325924430128926863032271772339198061632535103003061161240316236987565212335006269545958619575431904333153992033462961632284978111806332033546195688001561871597144888935558505562608473446977551188388883095226563337774533137798869083990791664700721963046391847672026483232865952321446580049369693661754547414876281599077425891146056695342904065130077542705938767067842224453387644172153539161407086787605439613689104394715353903202667074332961047047571742064053926941901237810711183604503570072489695421271507653706541632117110808051651174940993099424698811754952501456953081109368801224356013048122342457519636142237206196229131006601146070192918153295018465021571164902272153663939398935841471053745807751213175540440670046295642131456252742966200170479753337366151864252282996265658499042774888733192660842585701928985192130797626402513647963365975459005783035941145782798035577835646177581015595126496525355474786602349551322023213484480252735803654739389079687641383433062011462579872661455162267200435963628477675202627870760211154616039647919686321326959851722692063849873239017238713877695853786744737596002520563458890289640510802095878254495617853941691111354209067996853568263664579971816329191360561420233890156888352647442035401907685429868851113861684060554900451313898059973660870199853804449795996228183341910422796187158021875721847672932408441692911714790706787640315998041468037507925175657458168919919214649448919347752333612304042914112902103505980379958651951444521853437710857984829602761719573612783708254906964157860301529938311145128868038786617064003314225680656912731022243485119185066155413041009726952686770057463402339040377596025298424627304433843760412536487199645825217492410075233340607197616869146525812586124720955581996009648309356976552610132125615015868995972961689904106229204654853601703225125567987962302291778838802968118409336288179993695448845907569701781688443137137836991826742638381879206898745366361066108926213707286646759760708265743713165583530795197092416108820631233088389848918747338823719846042009359547251871298721323800117178488477301591153593596442910977065340361454438624733002424721707356196013425864719904619342816248529928123364961413697265186064456468528522299616073918997497738247205457906632712863422214169575288278602455528699355351779185222918600086309941601077986583181905889851440543248934282847612785995747722156501488064583163938241114065970491833648842199948001377312841628333174121589604846620507093298488574918177100375756473808866086958186750217891108381741851896718542727074108838151795724799177789904927498589319815073845033950541526757728026935868822598411009975652714571587830183655453299752622819934944399683692211126156743603490242530661111129160770399840584738001479493082798514338015963298878250654190717000263536291941551378201121078443997849020448941893031602658835708571416135842741421585862022575717870596772183762210820689603549891017236430483390936886802241849468934279763435517542159219022718870517503254162561021308215341858927777837076347531756320883309182443582548871220978534005446338002589938958993618791920996776955889165282398628513554399571509797137324752073656744060767037611529929616546283762429444556401565153683962486243064182321883597032170661654157964129041057097873056438283735705337206720345716568393665428671992118040400668825676978203974918044709327751252045858572915714724063996416465188990526121950724634235097951456312772288011628635161508244812742601538945934103321885790188621722423040101564297483852352480727242606378382712350484423018132623378364593635403070383219705945157071008264178639436729975316716275148927647333610973789110330406753987419704356679351432380790039093663841745224621098507372239661003147025810664877053583750486198259821268191116168745942758718353318533228460340963750898178334952542821284446015527574589324827248530259618017644187256802610986266001635383714858522771860101736673393981456232878690316866488342136579258035026001588860747173482100590980704414087322795418898587829332845257394694509912705191468995609817750588676826653672430754909864423446232963340580769198930965546976470687943048182815422853283218207641049589079490549073374568548932160315288651073931997877901735290479409632351516722137127320256226098791305036456944621701131091153733910045724345843362746608035328145459157398385060352259181079834822895181488728195672914417256927693612166244753818703371169997535483341724821172793564284289755283200131971535065958349668897752926204717669940598167135269480814932038319027692690235656421744266817937715434502506860685034534751006214341928504149606912548224596670049966934360566297533118092168778777311336417249215073971026697731335365146474686343378766370690801155219383802577176346857106111121591957755813608669709654259775901782277737453678667771095448676508312248573664286782725076452626151734322257043561680310778979996376579118969122387027682549505842268752092537417326955433638624352689529722949133604258804404010313933753229061512215419539099573789419411264074307047919101397917655991454220433002926908883952473100386900265576869387413681061451981243250028683664349709132049689527832646820569296467424975792468346961457647490350377432378930536732237690837095739371319395396486352613591637254855043134729416418858469557089786203260388702606878794720854948568755541361569669175298621862991054907505912155995530665178220106278179496371219998942569956492091074952449305254865855711686293530198599024077473755131592936326835242298296236214314893197280920895066409008481576504618543540783161777642346895671443855979891300379169484409384519673376445885406209095006335713683571791680538737048796411588013643924573282841639389877705131952549938352956553044895211682769056115683256302095949233920511674545543005588833875920910010094353556171128746451432794968712205957834454616533265785149973756035041091384206158563052759699493028697919454102908321860135107652449606492005532269340110850968235997860519389002218305641044021013466210107952921915545981680327402357309394340104024954390887789670601813894856484228555255913702223851790861645042529967766180294705794942445838324578897942802718652853003596154058233822606964894299419358218070781908602353243354020653735112993686835707959287212896410032146436575233200024941298751125581940229351200157781435815827234104769215961436870318804931084400354709895867799583899157893730951239180011311496579370103876493106996661146347062891559145623779185336774233777751475575947211876455127089283055475529538204594415887988966745500866320948684020070962103384224670391698360758014596758712711992018253768991848191991511169517580685164952687476790893639610189589882795613692733813054001721611248294235371425512746240196255071169143684437744422428109262142175139387817748956774001838009259507913944962455008517480353223231799563348885157505644072074210930446308195602608450910010256241480071899901618842940344179051372210484490824508176639798161551735884243006942873515913370717370164032751336656787759364445683151088207891519291661484433197527506086163818823457483892803115104596425291798885342790152000940657929659997307184568798201359632710525483155927786744811711443589858335081509749477189292113682947049862025261149237682884062876424752869248561882140583179170262736284490369204578470417896901319947251896701946323142106716252890785000305525377264207071719700332930936827963776616156671371231745863422508391436815559665190398660035299762299997541063920844141621860172336540404960579138154539542683208246553624842210951156860483889445299523679781673404568910264134889338412798112546570608184803594013961974183352421504368987363525490843690404849408281395690829636073749221233289570969915014040849900370948015555731590998176027352597852035888103269791491949090991604232645338538986205664570466498807526586825839978104315231758604324398348608987126839375390431441170005822920836792459298314068280994145482192470762347907106455532248860997727787329881180128859387631748994265737102594159818296197031078449463206132915218624944525713818105144113733377318660332939912708120766001017514097757990961133243466926906214798412677678877667002003374425525839184517606671649657712472501861723641144214935419370337804219394543646301803415632970809559390223323540967845168519613703389308962282853264926412425655651364408875455339631345234626608459254280811885019671759367243092922126868672709915724239981605793486526231893935781488942319287786963864655192134032464388800507524737306122784452411932697197094732107054589717211534472360130665044282561754037234100034094293801464678572283199802510986339281359129239026878966802469182318014776406667905287621117395283780399196824002022868429180570781749491013070096234353649992636726452387730923937118725850920352541151574149346275184086490348541421886806666137531476087809057307350054650639105240783544548035064533793747410970324347633713066887403893366539995420896839617547686865926992760486532499845396660267133501065603217641161997141424818996597964642645515611594202121423006799020088700673690814478834302692946257743738534573430119980153286131726442818908154638283643707730834803665330168645301137578915267280460650625602512640091118636870248664112745515136694438362533099312173031295288182625626330919878028559028594890644833131282657380010747365252969416844740335937995902778241608532947017251021500244839709553970629767092164681778867625320781137283158671639171541077033406752639722088340043461548605605133949961372707584309171268944614274502661196466793071315697145498649667640427545619851775726139837763783731695022152569473825775064583939223246702812555023938410305566122829676447404151467972574495858954772993909976324351230702847190709268155507369600145118611674772615534507920201959920746053062439850047415340430231263055884443754201515592972197076912178701663639507645760382552645714630870661737940798916571039048172296544356664519323629817502355425158475049335000319004111832354755977385919711872266692317971734809052008617205765121349088370385231623552203777084829059226000213901951928890729246575037720808623354333275324684328701725646577777937201262148472128414698471265448658347775481201524998087652721368880063470750539467270834737988261358300130848682070374609814374845400119716314328345941518716138488002393710141018622822557732586623072501537373759523177213421593160882550555017717760163539473478462688256435824226883777232640369860358705588378740920995177602249042026828676837938391495935739083500888487033548378264544164425620316252118012051784135125351039550826753742157790336197961599017497090232437867204012221872615807042518328494414405110415491790328356846080427661097717843083642365328057155942123684552658686526251894127658379366604335766815282470363541083461161353103764064775810036766396209347165224864984046544591165715705663297221410785708551951742671814296022025521272889955225027628182785324908382807229370126843442141277866153497594957317524855499047386792099156573923110037862414332078005445155113285142646033739968201886994039015378159871345881091068925348047803584123850480533984845882092503212812176539122253387604452340296892889835088135043557938650195125926351255299823463981404502783091340532638154438451642770326795847850517719232154425753914190898533431069371380717557442007261929878092939875283475689338030421808367064071163397387716902121432694847969596598741271658193200547729074364645980424020824805976386306953758478095065636592733464298366775025041848199445480043636762671374387934230000701545302105169921270523396700890920404670030203013941392605243824041391420943791309822565487445111535871449430552741675474748009972791656284389714318903869540969673261210414477726994597418207120420836198313986359657961674365107035350489043318974189853766033467174060239635211406574543979603102227790805381527474188550744068230807427726131154934460505646190326603959078304697893103222743868661567051743321628034781980682666741330224189880802201500717716847994698979720623021646051376913566240369919086084672115602249236349545782938990568230253237780794630885785380963361121460835473526245815194221374827045388408527797043830454075892074362952026443419126255663176433740445111268592406915336909604344537410785125777990352407892490538478289653367769691688507080367015425728900207475091526751548856334006881962634169597418666628812526593457250301023720392992893894359734755961510063705661736122661349192972661548466082369774742320844811988033007812622392704706025551400315506612230614350612577599468743841505009452266103674322958754721210741435726053468234702958643288019825323595572583928683894955655431384537168261214063506679401516548102254342779815582280637598604941275562180355796141244054103939623825022526576942625714610845904638690530318922247158566380626703585387646029836448460745567371909365908615962143625223194870296451037787401076684959144182700582324264567274258209980495202176976676616208738070804945384790318585273238250626590541380220608156042511257211833828770182349201437484513045585230227934789337102606371176420305199770102412393605228614283542017430506002065974253777869429485967199466838127254197444573186999573532117119910327056811774017557711901140361760001583630062919001386538473335483112749572628278929678450000665683641602028653294189716891130064489542039187346572617007479302238945260093013322515594221792491087332355048462186888241030006607821191873503277009118611968712160307153731132047278571969298263598188687847324047805389972413011304490606734061370443070384722248677817459072462345443835265235299027288600931185859923796573284425047816309619495334008682958818560193160427409981378899124792219593293631504444498678451725718449804813768174682479021298622839389541910192831077964106241858200935041499472090230069735360289510397353969297085256099198172606027140677927866225418983879925188395145618776695951780085847794824558618905343451629756827392748669714841089188350410434881705660007391637946260227917215395857873412916532946641757205371477652120334203353840559243947311038644504690094108720455206521308976672469919222537738182529033624340772201959018369647382572999776945772860702050897662891988132522521589559860976506472809583936588031111243803673660421056635258570450509560851935935600026799726190032962892099763491300999056627973297229028634869019266469995928856365890250838469453912210952980589406480612458379015347342675521780375642860750261569741899768980659313588614101201175604412325055023162361243156923985692385729631645037122299643829574558907008434505249485945417942950864706466983801607088608665201350389395136824076245209196316810592795797862830972779268029586831894577981463363788931863285870868903756940317540520910560971005709511737801202743637587594475325703983905368917088057287245777485311347909427152123600205363245946207392216149588629326316291298543397069686135677792043127953729720543550929978656598581344539420608120032738833722616105838155550599736774828986047054557172987380975473286513229367052064889612634007105555245226035534288420382558325245892747640981620945607769771826204423071194072577398046443318757129826450300169935408870025211376461130352312483547446695399706943411952107489300150397653565641690029769004520546619567283305854756339079988299988123245505248067064237530736712859209554794316035919023297617979707331455854166626667597118125007542661999396183831292629366488231597572084409483159724925398478438191730855729951784675018662436427819409110533881966699835032785429675862841531476635727332542150981621141370407854266267393773068620987289909105032734305379663040103413220770585907893851007657595766365478895891820777929918001671996711624805114556118335317748092922089227469021831837265648876050681982542289093696699305505550551200421933221657584062229380112465970553106231146490347629607301584766672350751517195369069378179314967605451291463932299244114398792807051981873691318204324391397954072424748509070660342403441109820544497278599431370715691601728587859725549182103615880467281623689462112176931007646997369643922713140821155057166739705737922760171398126384595299137999356054935896674606697272338763301831820835304047874217771254357441669518700375563319951171242485166080595246951991602170313262017035382914971832710522071221278442228430211114096750510152014602651110124420003358719621103023510387802920192058472605316585829546320126664579751449720770875187281522217823182214592207465410812858648627132885284296527146269939896251422219989036908894167925833188691179946145324474811748270243600243490982988590180352492422956492168574876821811969839368989937703976154875672045055581161119408462796079474310094964759360362312925256048646614481785892815822693313758880591498711640157267711767391914231630952047905747531486915597427547226655525941779211924951333009451575966485381263758903000528141051375675236961158786351283342489762368197109853315180404920438420522840963257834524124572491569995967741659989697345842397644066894351984527016573355265013210651739532524994626223061340879201460727028098604216066545564297723690333802718331903658717250749838993840470974231465662155638336504805015458257078058676703663110808761829063556390969981101668990243057601369332659443546859099527547933357733436938836283221598913655907698468542946278748742803627778287556094051342182709464226031107552738120968353938163876333325766480879000053916005223782668910473319786755548191499408278370162447284542939859405030107567782276264721695348080713079634504835724502219870933717900009041779158920702022088824434972339999550350469048478040515601979065725731094366590080799997714590974263019603464363137504566466485262036441896586112051873970184044491132849304361873718816638252815282807416551989237247682364574026642726308103457951103774318864576380071523359625518627785993879204958934499090556962397264892740013293413090851921123667182912469870152871219178287560916119315790559062507256885283325153709779093329763677892951987550745089366685369754888050616487028855863302690950041661870971365964218416133099882899111669093073949987025039238933382308586040892717031889117994600634905552066464894837119558498258430317003526520818872185586105863906556191186118811646205727899044848749442273046564980474638034866544322293128963420057600828870232462856681308843612562927810326193507946050104492236885173068699274858985700188913778806579948526032666946297540050229821552047488762257174660187213871699444517913706884493497789273610614898619814740029057332164341831418221970436358774194856110185373790222725595032543037729489335693200095008955259580843196929735165713357760228118684073336255270140215645606814903917738365363418646169074739450402021094734757683008046751218905163695026581480932807347740727689926574908861212922934405561425635686831408290000069351929288505883678315898126903473709420688345663009060752951697732424705806862130737952409999252097691833433325495386145235027797174584436350178465318261641363340716932588281044353192459900646702287476701097267814610407513966664312965709167405159708627092310821372219646484846020055754982412715999535153281115693446882938274968901225158352339519616474328321528468216600074871710063504128307108505394938143805386517534653087603256059720892612073413610839888009708660330663564803026486670421163364127615752669414089671809913431848939201812681756649984207933358853713630815355349612598708463690062101711882360681180601338714509314179382177252532914991346159913232352654383402175872863179467004067812152049297817445412587237439615470794076182715297056685629323586659089121141383645078871392328025151156695258230485550998563818980906587227299126540621116212870149555776934679556511646793811572432220561311119600099043662445413563602060322978146838930984043132923117165137270103710962532434819864970835292440921103340149462937801197087043710355833950901783777769496963232140226353761453854262795788423719023403988380642568642184517014851575488606894686807768144400495306441925244013786088877896029534501819712620812730659142016612256665789954130007628323771498783500784111465985399125976903208694305891289937588126014671055483018147037379816306180846325914879805956992625265411243936773010943519139663112221537762483470099295384127819066308997218096115337861007108485342929208397132776600888918889030481771388963617267572259364221922180017780757689843969941714799722142537936165078366532029925930272125829180819114820841942204288512663094585906147000169101678015976974291838431806832003145865532229576006541526518856030070879168212758790006096434632041326590598892958870552691747779050223045933953027710112395842070611085574638532013358022409328597551887008443493328462326205442257292670344627834459365227002085435891725642428760736501005006535984415916860238490034480670296703774501606326331669471652534537586608968048334495562553908192650603045527178335007095813494442713956320932093198531795391257405974356851971451025468149647290831878644680719011378618732831944121966551400640524367770507071597859255490293611301105732532620248509555179774191321689510354375685686451218704976206580627263537835011711443955380914253939849901263324221302755085859895416899562156270447637052372637397714234264571062774844799539893849251113530220318591661768432117378019063237684403475286342175492872988035926824330033574769434102268828262146881174082111515753788011779447367274347342718807198117863605670210328210988799076362225190936392306761365268133410102992069963459088895438739703220677317829207488070880916808040980752063614353922034481095575909903963812388732933630259279082066494380389302982425674178219217812899538696127462941593891704887240411395065094106868971506862701994274887636860568865729926875609346083268448565956242983671808059341925418966457887272120167231206241725433130552807459636969184853187070523570028450274600641536678976221856436312414557115823181652641970690074974936789403227995618679659420435260193956659739788228990970512133194735362930438872776758352853353651245382889700660466020163821733722884740317242386758144052727052706079887753053913730187735838412873099839914989139807168650281547318701633686568686016743049058199750483616922618873439897777146596168703405508006243827318519325978458024132345897383619698089441310697128448813511333315055918101327717813251798152630523128014948719636039546013507248953419420952402511418777065390842397535412917847256656807083957794942984181298041864623672001031767536629394394516889709080748229349074443773851076160988926701712962355591983641188194238908358581994967327691595498125534201859774194684942041742105834688516574229270140946044651192147493506928991694351931001952348132955424891734963144436232986618868138885056841693551235569760520454794924263147061684077115372329504832933374194582885580110709740842314678031260472905582843786517869961057024164440451262839907241606313940486967217540364414011990774250416876388905581522651294791757808088681233145149474653378354599706830616690964032101859511881497812227385676413780649371881960420342150855156658931904594267359939867196586661380704210801800697109040457576515894857739891665359970479744229176542008235183984808383617684366469530810592287947858086800346978782560296480882246142214954903814448724769911067741245471362264124488318534754626425364410887229090712246739037150245757512620527363149434459158565747948545052229110520083066685239836444235201108410796794461872285878941590362230225493707345998624740910512135313882126612039098057425268948478067574084548036686843991061231718098524529781689992874562708524829268488632010759641949188256620971186636830552288240297496851925960634483518523128929526644331139031252043834366249026335976544425246909752558950234614076210118270499116180030919773329213280482109653408952060975048596191393444157638901376095365417348306499946416927718792859520628093715213002250082709806824403201366927296471459849866617268598588267339709383656569608060105289507925461360613817780548942568813492003203518473260089800111312616171105181357657700589510349788983100997711514177061050859879054977075814728462076547819589417977365102213134805064160189489258121007525731889611983074382530425017486191694605183675494810891804827853867351115435469206956594443036401571148143681070693322740775832158651645160219385387285199438142408602740734648504746547968828870367044355898024512919094252582354528358697767237809007800727639585530212377845524891617989345334310195564383756596597151494540593383072834899519937171533522824102615517736988619916997273430130022295649927454873360911490223041270718074347651740779175813325027619051874466409359893287751121995207345803665534544948748637066084220400884576831352045414024486945753285728513887393470421550029286623499062343237231774134001410492877786162880531262305171992364463771502237109463029277688778199045741462962282381795393901123122378089816109093308575261777803952445410557430388606569533815121640004945631616080374108300586403990797786186892391205259089558888988569749387539606825747476705649438620197567743589560348468632628971372810083933304665224977960246629196013194724521636469309753881384715014467783930201822078912924566168732198000637710416747454688151668870954264035833513509451468455479425666945502880358489956067793028137465002007295332950554964032356945454678591806156391620387526888212376848177953442115993651556382348990618017423816394582246920716953184354692857799003936228679794296224475961024125104544504426414125502869276702689705732253553279213720238998272484952876693834387422040423501039487718130594525907749577449600081772822878034873177575703871250785011476064412007037708592198293848495628628223019645430906913557241535752444088714354556183214215057315598759565403240628886975178076078392602516333259692607399613255397307078852505815857535379859587205709176964088224020621665263260019343345538731258353338899640266268001281013306509967080766865568997131839614515410919813738911798355149815670097175911098425755441039746310735558740887661306672359682818562622056570251752338318966245992635647927686399676470633543835449263600025629130928836523714289446767253470457975670708652443263669681590111791792681850609830463374265668448858513864164342486438519743909619422779447986294024874793715278132452270254063735904335238914461445343574736682258178981655821348939041746849792547116527330548562505800339267213710417547665926360672255533298514595478754860762199589763459309011589922731008288168632090455858274231392180542934430489067871883002833173436077046589014654756126010429587110241289502955680031093994703545026850401697021235528149977912086233729640432751172382580347995316575062431890177090710316170662937785393320389103267767008520871258638072056064690498052580840564081330751478841599031466793789809578671320064896911561557566165517012291762921241862141932389044241009473989018986324671057481497854428889407587419347357731411850790461732250545616047571679264532986665668666393249645494987269713713557730242461994980283553204940764149866185468111719748491079586273226574035765775855847795749941797483215393046657016268654297637985863681148163314058041894872677472173266112729882913965390053855280047539958901008729508612640934443863330133534190778352007725768271749164541406036463457553823354729025421359679903297568850869958635923697754181908792239509541635059338647292788139080824514057162335110482233896729645022739087792700853456369664285317316234108232280696256751708743224267752307256536650044633791980070369262347159426272490359826293542333752054094810547779133729871547295795837345004918232975904142214361912121512329803492300912751216371202409229539840639777559408755146001773768268486850132496287560942439770340586422275699845602955717396672679003863696606283928055942435755577434359626951284998355226207785398286613005728462909379114727598787305017832614922474168927128090722624283267291083434067632066794749798794312887490208544126490793779646265923527595854614401862092619601865567359749584449242191428377342981845266220275565791342916167443070679883002506952372874614885757706159253224458458045474596807178647707165705402631660286667292887735738880501570163261712088586930588477624794215936984920287273333231913902898536947155363243214207947699576340921811752267133347486994843391293116121096338438856720142549427551140333958870481519786393077279946036663293636834262001185695634701091004777312934641168724824833669700637033104323502265731512830436365249022113261199885808251200880743145044874838185827536318457370317645364625458734273406388155575011763091064434114735528730513317596762075175731985402271198271349489686948534915256041810074947144784296334078934378750782779207357741896594326814437462910793158200526979496573554938869536826974083144788992375514895552473002744150297118173069199864933232673087205998943176442589899161338672234774148100599594181262264812349359254741571526240161477276278915754539999600228840500588452971372461289704918123757269523611695658172311249675491958896193119631134032192317349434271999172078510490636211819314292797369092676433150202980870319475276724934809693561701523221108596031800768121538386120251624892967997679590167305247254641646908762962985626821072608491307464047711693227930570872218030746262780982646674178202237191990851459821930472790289855962784371037336230642995240128034542477919191580714412836268571666035923834077730067204878468483185223142580910440944919991267949727110524821097377914776730044246921526776323909231884995450953751868489611573210556602859027454697246043008061755348951405777789947737313764317103618155490695415136648149918728994659829422667270795485995258348815745005025472251269738062806745667286328558886429948233433207933049574788323327249128707942318686389564975142582218253026560187502217267066104410458889324254845811571442605242420697236858952528350502064908505309892110154303228070815513426845368176889912455469838621964781900729486055111783517813268286906652977236312432258176999298899215091538456926973446933014249612726975084394499731752778522432592087974207074397175871283936349457781239195465294905456437658608665844010175156160356368335117276503542093195966683029211088578094118811539054433468333495061289048696959551346313445220252080161388136582773574583853935626529044542551065684803637941880838227551219897169562293950936261098705497441117709722214951131826955869634848945692730541679523379687220818542187710164848680393991127911884689230384801282417624138054573358316552664885657484795780133535724310883892228527372614160872322173936026798115274217831376480367974524942307430632929630259795698480442950543438738668298652488931753815999403436043244873927818263074557230969007742348675557936075489419541932032875158320697009310354686466545529529214542813600939029108675625816914173802459642878673642074199983632505371325713739778082292864555801377057358060873744324843446151254374114271557494242615502035798991982443675716913669078161524068900737771103324941984647078655180791915450309794104111599756796945901177393610002703653882590666738761510368958095660674016460744685401686838920376508901003711804849484107847662870614168869610271587311539087067657602511046826259684841262170424130177248294280432326605425886578103015251068677071140345999351941013239964513337178024461214917044380418084009766668141935772330825372486731879402869956497598243049208531226450342516540191741825554065677791505503038656597337902043156347924761619208830252803561173762855486370640329948940470250604650863558914524778716268353042923820365422783018940188862706288387771884223533456303780673219402744099204314848865694550153367667933980229584689896443774306264063559888220070703163874536351314036486651294001738381786429259119972690144870287392205001235363000719696973919016156764883589522164210600335392039071304561936511701023434661659559745661665952534475612395523802877068353456818497877355139610551257502315261790061995121168300567599875109139335761180780566006917108374460360349981639834390563764512684113251370778691492280100161438157926712206258261242653698209090554455639184884640284250709566688103530541993830113142468410185350099519719337359527723587862384569662244116400579083928684604285639907317170123069479993562148491136356545370785783383700983767394300429722757679821955980512947719626964466902107445871724235179471991389514292409945995972440505738383534660748574259679053175114104639462195666818954010702833568308727843782146006881987341955634418918158707187150045289706793970818776922576208599913146572260536925734395449032667762035618607578754847535929971708558988635831281845830381786723013759572718045729501447255938502967788433029638112267345908562452763455523791934011768112057912331820167231630989917885500455383501729710064848854198132097317615943001312598351319363336724774853895762448764687954416752999156110132372506999166542908121791599716720919400916182090119081217516150158748161987084735971428960927600829425219654998811181087581278827081156134659711377425487966990559279475026483623941402403488586094944293453998161103319322203512693634874386556830056257513339111510435665074697038372567791722644550733273993668109041648103795978486296300051134120536936296070513035538125317386302363534694440882486478013222587645662102046804721610822454555351842219148465181620453103477341766088051863000892802105383910018794025693219277037394687678601727130805644907903140687131095925228562701211785223459708885365728214867377675837961122166957632818001596367505304204807588596524871505604843762253818294125112681417580901281922417197826247083849647015755679167188102086623747187227220097854163488174778541190352017324672937943566949198804166361717619792200142792800231669770199373743907391303354640756288506432050259025371696554057059993267016437779350085415868953652562587257535150732700790100763657357438215775056824014800571540540433832537481520475114868606081914363051597176604917687998979515147253755406588275297471303284114875826760762171982941693816854426668013449428823837624763844378533661313850559938110677486563374763926212082622252788076593646624335464003463339965581160735069544417719038060137560728626847751680879537726638454619082284154817491728058239480551204816572101368485100934096880756116634260524631105773521210327806395396482702182533384153742352154941882517298613244815334391536824940398715346073842395221822811381733084400534392058700918849475323906223580646795384827115264138056317139028390867587282708650434649630204559227948061989690696404593400319836325076316218127009490002124187669628732640515237722419689267194399928002642204033243964254780709172531255028824607206213047653064580032214611914869447470483612105355602516049949242962331602337321362171022736056857525268479690145968089378664430111410338074439379726017899915865916461330882265184667609188604305139812911887629842560382887027383747741510741310554160681580582179420037366435916009747592492000183066394476564967371196118835076816587553157048348511357855456344479625257898043988080443692122661577095915233608267667793735419300365540059493329833128893982709808458222713621360624585232950892714335538536337288675212959913195477306011452771163684817870447452212757621886228632374382053841972572461912736314723169938909477188108369024210284900028616990805015739330708652135876253305851839546020101662482738003735148929016042096008717284107051114539706128029074980028434064682575657704865797922504071450516229594229541633892778049136120562131865134618323515173530012317448090281335295786289373532602129590177639047809043833083823365461480741740916018926086723318000691256529974173145119234693314923830346161399064646902245937859546580338597080853200015698993968241299346633683566564765132065506970614833864911637700488010633155429117497519237018502687288372297297250939863297540313586855768667678742252177060840617210236264533280171459429268931040765756103430761833628958284328108953952031328348585208130183973398361140895978994149475706632460207236942264684100406257580698045460158442770687581409068839270257445294233924632371918847762008541660809106994899055675711700879874222414365669860313151757057900477417960979771651988402034308447428201583625966862132305924749159286862879644694472185360405731479875682789804636772893749114826866602859604593434487301849077586140866836387268450609303376962793969459163215848137188728034502428887828362541671271252452514580273739398003066741075422509779776127889747257781538261667497453032474821353040325974763582991267477351162396801282862092836015091837959352604518737350123223970541843715123031355018717193683123181391980975389336299392704472441881410253295645678865803080062713043524177354938518698557158383172587529415827781932627467748918558041740242440108370495322138824753701046712796635136011112582281638445571385613393843757934173169480227512844123431516373335664349957830130420101806690360901255095285966397936979777598545111292573952183935523052015032368105258492673909714195914103473431335844527689116261286636186816506162357857430457309476109696338125213853753858779227118127328093501714672463588956602406603866706013480579102335454218868647790402962311206258558397768577823401413210379599012939245242124812143985506086554852119783763465923708298163543604936861951117090101992155937667955969698652012361194373854380904456593059283824003492172156085308568479342430682736112400722384426132579936351656264087087943971743216214097233579046878813388545513589733463381226644830620657517323927525934545720333596136981303506727183787881152825274483971508060515774254310819699382708149080148346845588821710964770724845698240840661240912305557236862652484301818582810916567129701709838008604703222689739655936376708249741117793339978963679081491434908725604631983698010361761295176654787170176477483127836008753192917174421295002046495716647991993791513695633380759496836131147378711479578725124967056656530829889521220006678432357123312767741615769076587166911522378029703060266880672102804823494719363784388299787226011253831966452371432154334212430050671640767499955201517728418313452967929301428261941952193580693889559132494889069992376342489369502395323944471155283949660056966099496524075663891644496189503645958308431012035589119723392188921920706346794174011440628828819784629343455717625507769385559432140778234538128744040294786083598787950349121489585973385201190377526908390934641917824119618721340367404705816173754984361607761443300463677324863264482571739514815763954690401006331075023884681843299492562423826479093643809579261771352141056699073945458270534045011998378882713640534290300998425728207281135483362539726267962182191844627407873931653484671733753268514072193103617295154695797245387397377152703702446147677007357137074385804034109350528732321886555816333063764763643778232902615787828987800958387609794689270224230254059262776083976133398367175584853699283858179054005375549432270776459439257796146620110581498660783915524205065538045262818540017584879022833641392787984250139228377954728505670344762053620039944296526741901651517579681041024462950706602014823202345320760598520303202384919676935273555011415550354963547522163941566798540392006209322958290183745834569686837608146391256153430016579692895982313197549233075693741448477762154384646086722388531104751066658217061881685079567880117637274100879368371095428908467468646821460687368018232189348851947779647491721229162040124726058642786859889245841608526244597051689740337160074417284964698653996992974085789050451715336237893949563594782477302783606468048132341037270773784788206772748194153520397871318412201019084178096690143494678334454599778915235905551950476620039777053619161034822617655069108711722709497947560091798992476572873789924150210524315330734105240686595583000712083599229917753493558164653755055003673015097149840717621158050694731884654172954940143109497468912479096034670509999236364421783113534722866508179162924128228449930152373647329194131892443517541403074649778757790676823039462296270737303370481831390944751473366525659176226092602010646985129980410143069275415207123852278024067724887329118982637229842900500295053675132636237259618060809703574763682052147227727421506291095917023219118012916293076898181367566401033588286752218760422167158194693481989494824244573768934991634765190794359330734290142819403678420169849641084543236241397357571638017839089098263453507194032806385281024953631532503856393878092332922385203831073088910681728516496377718462309231176368376433785992682142112261242039801070196216975318416539272388860735456889019158860991337231399751332298380920058303800560056682611082077410855955382218196346906030520354104005079646375471067872615924165418536740087438036353868458395333672988433416870415703414401459806522677910990922214663885859803642392453718823312384608539441305454817858105766053336137680334823886229486680163199610980158359835662668904746938697953488730591960553108665980625294131058405047727460044361408243494445330990699256354230086872721070408995383521138912016285670402736184664257407598717188158903955952121593138807627854568664345093762285220771958073744463056142497146147517114251655953228565843030226488120456537519467993939034830699463076662496049454366410580865673899480632785794000506401039047376025131447478713819890969277835950948213955442297856026373568388361104927602739660563361956445565957203639385302363834574033092647424776799368264884936000769800583975389324948917696982223502508911824613896071460611049315027349017903832096658463132675679696470212954334004485199666864782211968964584990303046741743884033182571712812937549529498580004815438553132819124481597486877072842681121291027706247114433050290910495315745562216619549435827364923176818389718668354074814093441301089139173783329808681823013500736083026172212298785896239036508027957299969024075810659787177731806356244900536720748968460797941624431494183220503825450612432264049893833164817999628546624143600068014234897935687296072158778360983201948854704820320056416238707984477956060824679314729665537812726236252340359087053841626379718749531150443716505821496451642661390174398249629100345877331780896123660827906047982108884484762243997339257979788045567285045939106477962816729451755329663104069523701052686675529897502883476013496043564492064780298841228064045946341751219545282360932754579557144072688388804419592275200484675224487203915257452927061550716562585965470583875368672954506654461917759934605070891287457734923506184216908127712602787691165337127144784124784652544955826229657611885646139806281460048221170103081787127364760380218517821136269920745994757533556457294231629735148984201056887803195163908077331800749980659901323730327272385066201147513576042420981436656477093714241140029878031588167748197787192874198133828475167732665334461852291217066697619639071875452112678375388037708416505014858354883648978156496063250389755939579861979010069369422532469006841043140909637856856430934589438844649885211130153758545139555524691588408149484309670159005765413420646296687100771645949122834503174973855254477283496503310784258217638138357689644046149169966878422890233650098432881307618236694818145222781756627009425311546252147593777847390012012650876202057858324573030944110955197160050665078644107072437193743149029018907519084612266226921538156514884130772125871244384107826612828376878340061467060596477348808551447227830924094641409039114173358828474747341076921984978032835670870718251466085899207197164813825219169470093171352532328269741095314592600509614797413632543291941360621935212285887058527680003982670037970945893416736813251221884495464040538251552500029037084481423589872077912628707718870023144880665980735397323932520217030951995329139640190367847842318916195101558408676135047138862684855565527605992055158793206154424084512646600092689271504355741000111068404508791350988232676131777123858966208686893889274749931118347143157309028759124833908278372509838874383599502585477158868624842149014887871529058120740873975303183453971432540567349591692519698044108370380267483084270603466455093664970337166606349900689924014569396178874270186074819588495038999657675372577355747840827415902899484736578716704675305907855287549706938170016560529888513971243418699798219973926429303437942543282336001301822565903024288829011466032997431655970301893824313697053341973105207530851784995033920639421462551480921605170372236728026662528458293463373023038570883614658289693246617582161295050645716608156979976162498249411122448375243157756036958648616369961175664428337447975342535423756838450470339274672992656559365239784379180702972009515264202337845993235139215339824271523482830431151030836050474857131512056802450520538992582978113224434208246409195477918417548133507439744767364428173707945371647752774569471469885765627370935711747576100476834848287285245916924861050113766489205311592076571879149573993288219882148596110939604706362970188538905833665851132583173443021379869033960068626580066890281877811318976296780241680079912933999175084463487670243137078157203778857414656604117413004900372662716206419377829220650088170740443428315921579515840113283715574515445978927631765020041485273788379814229524541554713373941794910252589931842110481813379309095686061523838097271930496494589368743721009489969080633394848557739649824985321720374791981066877483919793472909912428435614703298162180036612545993114199894614962180104479067298070807310922473094614688955625004602377469234493525662359907123907507586265585693950216352566895075322443074574204491862014483801449885232782895251827983308663651212535357159074247803952216503612310106954093203117312284437599607744042097846268046555641049226628203677700659765392321738948403998520069594345991695468145155077788390019545018578494006302023214134695692279871703073535149352093662603732235787768464824207787541368973428943301937157433809645165385127492062581878159335518131431578892832171033379602121462265382433149894377812737604238872226263020747188050079615871154918709909452993180679879600183280074111360547654224818503011003369137552192572931813085427981599870424325340465476931889814218524174345194044930927224057772862242321131930276368639848438427622418431738983716614056298246931430780530950249735087632622670302683504930221072390736741754867512785088212396913208643032541952967596935899711351223054586000052497895023102609797829176268947018326350308751419407027812323006096516047680232743981433187329395258194216085605240691953517934310941847643901742062287504433337217601286840066458061380708448159596357658411678555387754861791803382076096887652856891745867489789763179395658522296178660303708213305100793854173168811044359707645659528388307446319109216359473827309623382491385929889811906543899116137584432622220913630371467384556379471065100615266834610109567180193454239108738630753308952715625834070636908671723948918185615022556160420102744910033142823731700772990696742938290194052434095442483112307243793686141122383091731982157044256186948222888594066909169217656813340951923163879280297769840310341554072131512581217877554194575893500136087888199771262411521568894613226800932400442389300522510348780454672381755659636909999769804924808820106733791909172840049180671942257897686849293132949261632915218863947356957016864600478622381920925964568980708636750205701807419178093478191603552521921376130687778216554264466463902446528432375354430335581381423550518336995763852199303209266292872664859005844279609427513995452170211149775704425961468332943006878603427890803860297205666071717945533153392495661230116662549099363001001093778451872297492075601166654691187466607618917075196576529353871028850302822671772310228855629499825485985040026028206647361737002588552044120073073320873827274589792435105642298774900672694437469198539320260867731803306853994611180140146634687869503157025896381438602401073411076090182817795552019263440014426575020520425885285078817431624461711769501530677368848214622156139818019187926917631489563169396597527668178495857226886169852292733817249779368766975574654034631099302677946219474255491156308503841554653580149514752418803051947067687712921104890747024117497837533880156911722715038114210673787273339869896095056092491983350227636332066655561713274655278758035462191759225284973276427371422153720874977196803483310018751566802081452698214472538912117091937602592032577574732340373720634245913179718582239675468042424519357418206524740694208313426486384210526032201069695228434538618439659266535727078586587357029524034402334448675414275472925399794536749789821349182301059119205015873974291842956007970682990852488816876410837484237117462915935936123336845354292378120351052631171664681779636378724003302362274760981628179786317312346292366446488380930848960334869034648848498171861678906983545615294443065220037708052270122393080551313747636757465251598504374736111593442592353600438033427574565645621329014560642981826531740527724989571517777838764078855479547461832984270041781910058443170732296445282417518714493260134759543579194259019279903971652903731161598249179913095071902276747405901943703759214687857964174726813230660577967613308580041270457538753577079423508243995904950555271684132570393302347570541188147385430042072392906788484378204809925094961106270907323329837769239516823130923845141103147091317473164809026973866456734342256112606769704773395285955766088335620592272124849458580444675964943625909073170625396399783447410292190288263034574495818076478864107788106822591675409727324284703324485406106900986480199420981921837426359461077635395176665583604644248900273874444283693303229346292493306995010250854543256470918645805559062489188224340899001429685012854957178329678542824927679654420670730598760510811385532654652645761864753521847614717537860381144368693764153002036102415628238492322020679415842380781691360651497015419721045587807216081105339068123959664541019742275345111884460264214786074443773052146890694265795268449595876763969957982025762548871921269913858614610576585453702650561953322567549819813525939184877884753932951958252576608706948824427942621226670506250826421813831551643011022732407211859340974096286995490609367434541297880476735758889686794487908199899393340302862970778219165012199625853745495427533288018152309172691376677077789971100606913205740348652546265297199374490594457044235073745610019895801374888482213617968089134215218463080091164092172660849005961444786707745471098244504575765700900746135652573651548031242096587061151163729642143037279061369336541473466723145740075564254336516181155076493589128151054335707787291022934417412413669999689056625455875986295603639660127945251217834542966076416456020712776012328696262463801398274834752476528373275277047382483135688340086841173142428067190460851287596651366411301471190467522035013007480879109214863646666378650719393940816871947508631992170512506626718665878692055807234422274797914266492931170368347340434435357900370079005983514997589139368616080233717353590703351992116412529595811422099659556298813396826705519561470142749888993913600097182347440469699794728171263946182088518323073087418078252641286952744695228012378589402905416413305225155529942989700724790395765938147847279481782570076582720458314903709330458913309566205216281935427542006090904886859733926415239151304837193950529555584814898583028976889142576895563885392342850925172489863009270558444595341796166908537033753409886223075183808530647114769451784271723621480482806393810358358852000854633537966723257596663219834702977060028876422603249782275960780765175365179612279766829824160073272744717205763218504619929548641660627072285148801358614675038804525401613160397776283035493843460634706954476993508719974510678678683841727650883636600377912595208914130600464294401690457149565159706031246607117680964115161256928116744198134960332452368203570145168012168780641171504254246434536062142107141017297340835023669888712361024568572596937291487660911395045487560611671341910240576001269770162090266667675041826565765170754940648247745341311239684985499780180104368047449846002305424497409784376477692833420891398234141943777183425906539052780209683553687354541376431820491226344666054520622531994108317739640168846956052440966817029211413312333598340639727744037934114583707705277713635828423613670258955639905815890003102750473217514743872114165207478551481033499179061194514176088203769262126069546381550546587588149355532995754368734049491479090301113733994155523966980529336991233528719315587706998104813373034272876576776949181087616288473767666108347523757461430050108367210824584489950498652918392551749058917141070120350156965273117522384335439651879437740557358260816447827032841507821482406436040843739882222748869079527761162279319170024957892075791673538244273890224423715101816628648549595750939321630678135748474795812344707308584141229051619417933864967618569964832142795792079488428816086031455546608328459557343771461870163430082512952459664467593389356890507132720458312358864271600526186632784716988525652999858653428767676499099811978668099268114633532069093035869186067030339538238021018742740737570572379486211071622412795028528777680171805170261291981537890638375387817592204893910334607444732863043805176345761245320408074808066734478621909018678365004629996941589113263731203118900978304490235698905689700337221450208928230788555803099520547459611155707743143865762242832891488286812824720595015506695117244846789044956133123913961133496540622429413397771314317892934087224113827777556318434227615004323630710525252839157986902648877295651761710400913237729197855554526034431427925068969094717868479698819719132761211449609002924425960682285575385794003861781201846313433442867337488079815418589551096184737831835763891645316101906506568919914464881002683598900033626313025050276471187956874817128070515709454405268355337676252348108217703525009885961120371676045118279854399672749877706422156661446043187339980550662110051790834815662503500615772605927131868784519023435269025809421717564784226429642058229178970977750194241060104095855687641995824576527282735235866285171449446576115473546049422094756199708871872329866484462732050909491925768621111159763319501778797327675677392929251312764764413136175996128304714940164401428248728511648037758652914582360103122121761793403336751162145780134319785312038667650598142424054777117897402022449226765457692274558954109241910760499068023448483279789143962692423921468624445085445257907659231241081868497779720103390262543977761142952641483963461428827330766412631392619690425005282923215973689409106276721919341149874175372881697481658132260581498230529004128506228258719320946818417168367056242779182271895164394264762477641707553178396953737354577435829029268527174104988302174266391079883368073262907186921150730595776801525391863050943187830365745785131376942035469698797982088254612077906387233770428354233848960319700257514323512459394388262938841873632352853835898038954848380222459910408647389182574675953700122581117418336475633316726220567227044097912978492221199711029862673958819082200213659069224134539268654310830868930312034543707955042617074109882730216045909626115715835092509060132199660848666832621922856556562967603979460859622341939799721321028454454632371129348206885987865583349947775667107990658635452619738826817385174277500899531338910394297435282412147569351601474068605643546367558544462101180413129603454368591061895827474739144727957625097173486256146048702570962535354147333656284374984313201801320899440474703035783317855503839113338900528333161168912051509811989473972452229216527201570986524592198559286002691689939744675412510099739279697540044017969278696300393456536650637019345228840335669341595918689181213068037320015209848251277338758492184850889690571981607146241277391829207041523620871386925585406631756107657140172771867649209545747900178347147994070983170761241416565780303683451807719099832152346677515300397029593659618483919507969470771701460315195922209258755659211063544080213188619233332885984469415205093124866419973198338410252512746036251923930864837994785633429547735480220046981539129992611104593170631215587900504678244123536726736162675467867142626660594774756804904678439385617234948394012681989239445141551167544198388003568330753332095408539842630156752698813371045280225814246358634351347786794108044758070828557715854055190405582618674718615538650884506742185552722488668114763753161157204427214656885183289438216369495242683538550998583732734104185495645033027855550341033458560676583943195235437868531844674744104898725234917898269874752444772550056661978588229690857987689215937877566338278951764420632086868719560359114859532084986371993008591572111990428554552318439322806298533376240502971873982683773115702811949168720890956004580042635615146494944891311028886873621580655263148908428844542538544507216270361432993467290032267910696785439307049795930953182886917416401303256591632244970562542389992515349497476727312128588955223498927928343327702216989250429959772542399923627847355517338589256626548223788167254423852932563208674798503960648633324117855383873745050839810003857393216382188065741054335805616873982820272556455871395092935562508290191350755802836097311686212070265597870761489441803310930000643934395100462862764509669906282017665729374423026372606489976592717557036575635772038329942822725315477607840144513383381857677306905522228918353002687639957742874184883677385215269739141772634356419749370098109231216871388966447358537207923357254477409690200459374635632186240402293675645192958994703059928623209373909274075534300522756312477245701300728369064510553463697307041109687942416871827913532609673434626196814790987382163105698899701380803067182104109821387284709334625014766188424572589580886296754620876007148677935532999193818768513905498672731498956972427537884051955369307875310754912832461990351435235099236209160679953529033138352322388542577822995113183131521681371042905963857368706502018966669118666931210936478017455830780314166108215003062445570597320078943368945321314825332303302615403786037422328523489690437222933430139620280291358439317701352131100779243995704425563003195253656492378061105577576987202223582962165892441402225462992340677479241424624336705572704723968953426177434265291288776736675538835674863440935974209698519079266229041457088238252967834357689238783917008383750912034844050077463994283753775022743121935422779017606590971927503216290483141377625684107691574130557113796750399998091326048789118750764603551100492002201129280514870682790719914929956220158850374090220532365069476499191706430458949156661659887941636717191836415247783742784622980628517549597787360335460237097975852550531034560505641267799528960152708066635874866985023182444178024912026059223401245592047965002289803667978432821439997700369553825626576022006121723135523190092598888347842991393559264938729187703911969333362409627166480521134527859764184407808157839233268846893409458229021642857840658798938734301693815226753382358161782284127355822486246418482279801668708135917726536795385105648917876899024018294480871427315554290568749375431174721230545524033033074411262063913983167682059325062002008140706824469719562895499248517117782191301048638954385467062711692044191965310755592696451778313540383856457580655677166064300598115885589052673946625214580045336334641059997451183144616007303711246926624447486658864514966032299851820524038096276849333387116892042234326098621791530947297005893655189340885315505027362550834042028811901095495545904733814508566077235057127984448685482319399664689437650223380843310827705391004373452532642172217028782443057648736491632780597232578139596092789316068107946077441498910802589045757132280777346316205465291855350204702769407669703270700358629595230934851904289601213504605866397669090473579866664222686128622232436663848792853612757574304139592490197962576361430223088424086311258625058873255764631662088396467798558627189928668150921875270729229140165973005823752266333093940649522065820127983141186393714688992522161343879276878245608738747502628252515713558353822209969336736415851558615131916853072341608595328783088198107089769169042330082555563928313979751956966044715335042564115715762091822751052979888924923945105813239160067466928729232998027700938116423921963282791054768313167153113126460118056125188479984722150512623130128517293645818879663613359840631535752037702806636188938148313198781642285692170752925171975097674531639775042017908823522824575722241500066596412764826024098280241493443898124833185297377369250264039628087511469085338129067167572451096621779214477398717082832471270790088957517095560787486517206672811878562202370792527233363349432626540650387968176771859853607789503079565603776670447505133016227148491645370935718181646319155322748550211756768098943837888713641877627856317276341851826056634593324461916771696278451262300153852709712951383310309251640105725163021001229965620281782220395413642442972533798787064321347918924621532809559624090701649320115388981808291446824629673040252838464279230520338110121628070915102369246830737244516041647593353391445752839252130199952444854837938929625574349367170882286207441535868592913849371398100001232615888432361010787701653405454078626634311234980513545334268068737399802007585744718381906433260351315072786715099854284057358878751499810762331612463915557925472462318783290894442875778012310380415350955817649253548309557441048950771669809495284438839202668781086444557280508613622520067947398308045488540997123907474073478856771878969685723058415045688960990837827579781931183871281737939541421536226691872299631359778965753055641639964529595842429164873130314232668175441241367082872792333814850080833370620237065074676158467801923022066470868196481649649890624378302724750561850995179238158315120092777976947737794593786474553985526842912489025627358246194375151740702494575553282850241342070051512601988813345261912367522248377868197675458070914118035098240184501790142301573777320854270572392504545788000798468757740837623214801792911868249598222010585496122240733872884653900750282748745729704763884203838444708445592250790682675725013290617289142731904658352019928118557756779314956257582790366895082614848756551374838682213082549368215624339819852414385121053799927824358579046313962670854290539740290551467811269463533391286984933902425285480776686106116939303244443942447751345785662953494468270103090870211601910017743473647692259381073794501976674048748936360574646652502872745687818121475970965549279173805328396953109446117227002616798989503638305088844855988290120733590351605226158604130926471912247002937088533364024213184492539969313835037171922656908389768871201222781094918065261307632069701034099057752809976827340549811592041268265017531389172444988405623445636619928611206682221260024969730775646608752955109998172915707202580941462204272398231287654819212042467050490679491232031464257664304509354247341269696287582303513338743279949234941823288222586984055375975771560696302265528079740682130333247983637580763841713478871357142754740336048219765021184066438676195527212871910330224137375543528928750866763712460192797634162806879989265513066647896174451491661002752895565222132731369100016373880090636545817455469116106460672929001680257358719605067499027762747274794527068104025844256692320120928129015193868033055090962487881371823946503558094847220697149538562364296962806489357428421715018754705984797422178839024190167416839243979504817859849519064931594417644471034945740120281109344089078654666256860657806177630336525141163445569381935643338277649695268212033055349023481180247984189647983879896652845975542952680094539701859908894813620997207928473990351177912869467182142971559786308614345000608400280847147965057453419150563275220344911381996864602334461602668933535850515563834354093238313887828702494563566178388304378832096596872961646119196056950645115781453069679667508823478150590571277342196630125795590737853421068415827182590844332241733251125036918267070410804750940882122699940287358944691490035199538588256988037900683069184050606027760572407960747877819097755177013171915016315756774109776964206116915646410314127522128304451595795851367621488396085628971649265787455379907040656243774739359645039227967605115546628075663310202130154593571429480023723361537331113032752548718240680559881637293133517869662649807429218811266907294181518688462114152603876196345944895471548857041916856746938911796503167821923032890572503823458169106525183562273433937038764349103260359030372384799709244170616527506282827726981127382876494132994473864212278890195454162794269117752032620146182264379938905255226093538344823395733225244102612168891515418117204763129245093415560355509448630125998030881591720968900033049029292264203995366805783285492211310951109872994207434317336243441379475098686444574947830259000961965186149868698679953397470620185822176090777602880759536663770296541584759577027174204230418894661001249061625480532092675121812476053369350704623041711703495662599003176436938738331942076132525487741545650261946127181792657427208969047754714282083949557262831099397334043209936016692522601625246589631515597402492997760533384556611202469062854970677817537350020591684783725436216451956205170658676892615993552433863492067048503945760578932779676906314957483744076409259821320115279221620656582710279797695573217181611537185761556336243310261866531496009990802709391513993591240908057819559499965546636384857565166267754030348791691017429482613830901698360621609384386315918329490263738266166509123564234947063295982420667650312749638777320945543329935639563428087582772308959987167216110263016824313508876868118260273102219956880767074802517033065937455337955329036704385736292226074612460703482984424301698662567554602784810396950586465423670295767994403562273665348721938144082634755672656654419716065639645849688009360473621956914190626746149450807435773194833674952796019955428628939338229606765624149670007909975621881419073967363445026111073885978486596533000303735148115132789367890515823619745603535874392939677597158892514459544103116510218452504485700916003412613950009525414034634141606819869184744423601314535610493722034611820912566993894822412143683162866808105403910458825181594970962122088161952626129734949627329168344674014433568062974873288700670262464385787229358093687048658232674885687854653414403315529194961489844374102630686410365083282590107690469109217446945577523224804536199121609810167398571044298653601336805207326667021135968269077696608189880454794643572360106821906846379400672107119692581213223372337975386048036679015676701021567378134141724251839680375627227871602264733784055675201562317883353213804616573058544566409901387769386918192220734459604513842800095181084818014254175796263513454793998737835901440114680546564104113544223361472610439435444594981847475978962699814651942293023883358764403034204734928824010311507012487976540683195020072251605239609574362645332089400940843244428044428578865445425908861777833653533146196873666725241466065068735547450223574196040922397631356535257954456752828681910485777020455535777362593379359712873591017522205663463648684701790847189285842898519512382883854754006473706086784635123064761031192545700478498227685695061571624853349607574720218269130020602488744019274711799138534631718882074474655857438569906566870197541698937414506037884851968768992928237312943228952243981946543132615062806355257252873545144290830936449554079043348027709034612261548060211988144516810439469855246756867010435098919280224306539300832204174707521128003029952947693743929499995598783138242052564906070944924628017546409812906529676424193692190070071736300258096837602931618425613092159542240243507961816952368092710553227235943022282260385367590463052138427441914835174990689218524147814673282033894932979093832910452625789588964328120933004421750684272609745074821899523558926173129879287351642498145645075323057322713350004415808853360299403147501527906043991196539667501486534941471526561428380965685035377013048192314579323378308011367661791007335736524864617337654031940814961063736108468530856890364796224049173268279440495052698412692514152670260119356090352640266946363855182771778413151477105906713818774332300058567622747621258756441652553890920833436939392353834237381752056688027292076671086554376553496906448576227923471666663701911557051895377806615652088552322626890057281856325468791188934382762637424226081933477185019234899644256249399399146625400736422703713826178427676719772162091444017907038463084623514502591614150552537611709914070541971047551009888376004036610051419965015034581985257561815993920266418253599802162676709909679815587378296386292802300173397303751851363755216901042127435343459986334134923587832589260493952041125438084802668962287237534112229072885524350821079547464874560850680036513704242640414387603896492316617886767029866664989482031460934977585517668584964360640279822853853531898640142165331742388950133753723836420902148940870830446050539526915340077167331019918476016969901599291702372098271775980005481086074150433548046690690235483848948581861642282061922599426824036794083637648269835964756935532581346185010736319060864200720535403137987292932576896931319671723714918696269232690730833407909423217985966384025477365651751361622221973565235670781535077050412790423906966713117868650906693586761970407890392666607491496316468989818384061016166958854464157766120033269812629508634495170945682914955253628652623361503462356692544238407722238446857117983233812878213139616638831954830448507701566516943142376871750698245553362923770415548823658559984827182091677291684051882329356710892151660188957551426237803950902339637687414724906757273938824279625203885609249265430447780087886238167040939772211694940513076013249125843336336332627606777703877557228096628641661276708452514980002763292586927962280058578446794518164514204196339798272149276312743987252670996777361888043025015830923573792123790040267267151061290870730582074936146292968250876707276675745019108828342490095702271319986931439927195873020041732573712964932559006967401743919700435554844873793407791516772458447622249851602517297839761881709646617738783876380059061670438586602985318943392807841989455615815124324269955451707595339192610525787957739651083042172137964243764643259501953938977557488638459317016780852336585931290748938994707204500906807090505351948470259079738288900495847203420885002307509282257978546022339886022748368756168425581304342369078186663739123708631061695241713103332117628718152546771291330076210428809489347195080998724238752498940452195720219467507702371821965211049317951423996652434715072970233537973908009465482816221534961704393518202982517831228242699346486841711788749537339438178837366167678098078413363020465937079973424843371430001409805610612103949036266329374131592786377792834770615965209163331208643640262225326297947461416188800086658592113247288397054549601079240442098115143908256807743795599277947537147784764425816530960462244469794447579032601798835894883888456842765782925097847379985520371799457580756476204879992155985114783564139415686418823635910278029489107325202623492933025422520015989033556204626833770114883368403873551117922284794613783103053275747441031203553827559252965139375757348228316942715202963564792159408415330747448616091470314474590100879780507908324782874702059840278725684684778597217957011581829417880439685910925453284415091337644009546694639033658819879792376184973142168283609839218833356080479310250030349406676890816240392274843904306598011131648938088461416191615704237539147973616423747871629289563951371808143932234150183363182856968063002573825628227398529953843622719707259846976800481264477763826457099688982399112027633221723246871322632763928225685252342891942471508544190044443488270787029609965084272385144905606054201899657748095227350738627613847266291110108577326692559792617436827115362921305553724854990579913987267242162458077967553233859129419146383184857483003724255107037625519511333075730554457454358886640444511537216790075369484007627403734180071374150862787968308021652626875051213542677224598058536236035677995126830960578498644553615499082089161953564650309039572220845286289911084551807015411695776212030306524631741649841034767485601417633796418889078516075042268378478968482522402459484025265014179046468941486536279968186107659500867203573000960227826570726064232365799264837214006704579628488483937455674213355021362958269056485442918200996292134778205120419210868738466820707080455947146345532643184883625155792805124547242165313852445908818102458445607995886463035535862067335474254862978392380460242335029611786518579761984699820535219048461930947666863495661924890714938541785157983523124407950419913094997695648367213926474644535343769905992981050420628915918173468519766787321697721583032307750255816007489192269058237002546960757709213617097441960314837379222027725551655644407551743878679362701760667711320467085358896990260834566111903712698064685276287124286666587581916194919356562917379009344873563164276192007853969994974953963306244704183337080867593466638798757165233853961292443809771348232708382501014449128702272558202367169546831845154581658817538725283823988750986734604806556738165309356279487937669811194524293310306059273900627663866695470653071106834915161083541592187426677396224764670119059223484025327184709268762814143567369206374841941886227922271695470942243675035345350297256846979597672904735242600030810907562371102636043937294775196605118311663839458499242805597576396468940663797607131566987452471593849438041599591247149698591780828652284361918106278292254325045485219220453929524364875690311258993566221560513776517161369003826281554149725507494066982474890190177800130034964651998276148951365482624752856873799162693213539931309463776125509483764396500606113652551266988036957575205498002127450262844058229926373754009878665446943962000186834183270924485710280127097783046694566006128638182301158397369643970537124192448310888505821236386896343736843213704460872777102039969704180267159081097880147986332094158395982186659683244327451925487437163326180348769812893310140909189554645000104431871788489137844800494054572381923939675992135152208268416891994274785603641843301696224806897394085853070668623003311947564915403483905365298314368794158749321791073218479151119762420901870994754791209142844352279613047840756058962994349225502695019023723430693851430865179660973823869865344084883621501449516069073705412782860319186087304298016808099027832679975998489099669218258785212687346476242081277972422378577442838023552225677467521932742233303945941348847084092652009765778932014686901295176235967572639945759689770338443169315987718341153082388001733982909098665507123819103440885381471122585232760571563258236831067738125345584026806012023390626630424889418235344398715869685575518007862700284364123566036809992886762970314252046432830054846796869693391279916626358990905853263368339710611074074336919502288218777091782351342843202094997973988242638336721755463495902541347641550411836013700349355713220630683280646905634453793946378151585600166089579438204294954684976545114507035060566277810109140083984820885492648626959239961139098385423351463939440251799640744154837020302561016919112724745708507760808143059915184235187664115553687438531587489545383079523607862617232732596439432414253330953589535000577889708607806598669539973590057857961501283988718896872378014245779408457411863865024345022383180052080741282143769597180379940548674722608274141961647888888290568610518786336320191957024464327646639597597951304812917963964485875723465215004035573003211047548949346654346485708650627013095585277342977197798383511882146104683251178478331976405945207604398725453354818385319810816719560344765924174364570786075037076322298353900962871963757931696179193777544384816777303966925082180405542761749642502454781848889596535548976213855108820732637543993262676286286906979816197459542002700142613539944150606406188600094446479209045420957823726997776896828741002308719253601060475795809973824879857613663691488707473812703246840168495011758908880729207499748084335212272690809273474669592323728563403893884303091456013113522144230671298551255323207842571060961284751855252601385873942662756788988362981077944044080548592552921312128342862918858529450810223435736037769744640015569695471143861519777881143281376845344579736961774404843828791111694468613092264569751923761942074977997495698762683094974909332261312654546112485719793505400999564754707638315512271390848791151194353136990264939594759916086068072700794909478200665994202711973268703232747188575944603800685436292931078008647502981330990553048945641579389563165904417606114202441025943231213133937911074428770033151313177358508107713921179240414400653295774649348499349538696771492999612937557475427057218605160531361600593017861044420084126620777479377518132222044834815562513740884265898690880919227634570362379273150562716228643912359692339817515970284434688885605630651946975241505046293876154901917544892165124303075328581365460369063817373868249361285729295281798635239174198297895906143007909135680883000274945992300500044449880494255951148903982723833093512116594211567496443521980187332114401301971006839951102470043857306571106379867876245444329266433437442004667912833959667016410551755428229024309229853675395425162639621382252576231255280896988655228942685652464389961849114878237720929736459692008630812137099766024314207230375350047949164080933467640027242087651224442767619369106788155299227288030684693404506750316053048844700356388314259058801738580196557258248172778974061657187561076939418586697298014485297566362695830743985443824834667820365670586208626244706826495966593362600017856446322437165748049570872020514933924461547661452454279366223674478028959760718227472367986636700558800559651330868812975437190248703626715086275601831178028767082360645980074576137879244373973253846829661134884863078018752059632354180386531614578755885056927606218480031882877959422280650645254582594074297870751216404174123037799978585654152377618787046837057375048426320506591642801557054194052610619950698606342645998404347547357609431425017967443351192040298104326110994509983825467094662069074600816191513342122803634144033969877236081540231280147038821568341447930680670246134809980996277156614436436963718578104872876740457276813872353543771238420971226247469088559003259841642907591445519812610806234128772117505340280708475892326535301046309437002230103141005822421541546802971753984874191788280831531862978192494785150010499562132569924061656869654436708919294615344647710577065987741203017879145249195813762081175270472248988304975864615313743415608305227205209107357540373910596893208040873376888726151320531045118427799531810154730680372532074339312078698198987771895960258509065307098421361376558660684924620426137556066310211060875458834502392736061651850541376537315894031090663110542438702343025163438890570914279398314059558017342042875490784774569790068599014574172173149871012318327528436838038829219765039433464754412866895390685701123226145013527190983407908212553398096562305052535539256263004487310551358341839258698645417936763306836565082672718981680816531994249605852045970868513722678502211473371433142108575292585207438531816162913237131789177136132968324141850599787625663075499563492986016629742955894690514206479243121471488853284449153503297342931175392341546975613124444924929945352826067824007737220752764447799581666051265721350063803816636597173559926851639600938464094033020986287503428806741858408901444755622357663076638671683473763998177452162707880668246532749156045487252391826416904720773703945225734335592866659639975707716651337844392406779404800058767953118915799174024590239870483077840748659752126551371251941815750509897733266664314144386519918466059479020077734161240686648387342067378183157240528988833847076546402505142541607798731014241835564242560965842702490264559543770476331241149338856749426746899323095679103596342890370125760743182962284914911733183932951483202029960876773003534307372933006761563739803639787006016865585695000355972114243971005768845657485957081102637668109910459160857415819629169835470122161547918550177752450834614629893770005273758703319243548250362053337637107839405631478117230382445437665822579102918990627831267725987726085347193734469579805193512875417132582827978363754922335346904758552920488668410505816564604258112525314930884489597362472033525390085502687298870337071240947879141305193538561648972766436790958140319922891845030126624921407895363045107462766194150559229213030228847455514162497033432718307941475594616376325577960066322451824534096770649730788564932908350381451659355928564394964760260928105732079286201897382863989055471697470098207282306906227653464527256905950334140044159050495289433032601295678190530081809871104200475599157790216301116486444520758009591302640071235216068793264517323997888814914456356842155419304294284022708264083806279513114087571264148990498781327691879201414318610192309539036618114412218858900591493602607623512815096803152057461743606622383882839817816655793533279660413638284419600624128008795653279233156142187909323174129052878202994676907180366184717663776159482135692485979342020057569969069265287013329519030397045410475748226499771416675383449927843444148953002295481089442912718422319873497995135088421224755020051993182664293099988723890644639485650342264900675337425205445034882743397464093219967766013964568884300421868350900389089419519622870242880588020162955388759552926276849918445915262906994432314373337258627491687415933650857423343659370365363483168578716893700892226212369976826691874888005417877866535890432952316716118866543386080903846508847727802331213153602296726878118201677143094920170235323513348938647524599882682291388492984527019237386786185997814694568168401627096744651481994144796750733176749457042793019269810371776347666106953421573746467256668296299147946741981187682307227228152704006157546804882635184477080546439119681678550754514709540049723592389367124830116741653480255367130914936765498514439127004934451534529693642558328039854098246391823691060893511683853505558777838557235764759182234376716568270391287706312404606324933702706708915241143620141414790839838367842969623272059835201553118090366619478371458072417804237798889257561126152153581974212525223416153604816520426654347159045613040392478809270078676533106964033844317564325389673018301585064217878045131986000389368037705986285966680857901809703381090713483479736624942662341196512550142057505525853677709628944607817960373660914368275583807535391447964336630137265981607767228766156405192961180296216668936377438252440527487732000982866209677097900809551901861184071802243227509313866023789419861684769499657763972330209041864058945179973079104293591807315626965176039240772521553207759223040192394131046576998665687024758088788899459535309432996787648346215923696435682709199762861313733355601667071942066397173317710528220701798244600767655815127110153278188564540861829293062454719160573882384861817708759667478663020598471440333963988162576598362966923849115580352464422988232702573725872867925419555056049467308237537407008057992400457219309243402458090661834508217082614460772617576660734368775937787682685010097912820840256103124292974500829894483480328000805115711413140756407849083807741187255995944557317016739515935282768299240543559537039505069580641437205120540560093201262487913497728485518581508329474268780606650112439056232909224592398155156346915813462670679070850966507879654505587906866252499516434663764697888628543200382957072958434252632296892918545992129303655930109882977227827340327855728366450280705685067164576515412636639998803392238882086126759396638872654413329087099552999789244813497954384990732040619768853094296628268548406385010731767849637870014155723055420298266909410229163924196190992177358727790269706370388749879387542171243510934601859979672605371727382005485571969099191141318856448278496537109177478971322944069120721656831695293176957365261277185044521976535898198160991527114221185354897594520150572753058069325871879675877225436301063369511004106100862070610776904472108159831160669897395783770307499206054931566363403168248178875715152231707957831400474398381649001248826236351801154074955056925697023765468840670902627960157453927905248929859750627258874459046157036970855861226854762257984522980610073159840407704291634417044149554138377850229448438290167196486046911174768460534281319693462677004436690006153899421719569075594487373587892094373157142429024232159925364701329464082062483812254344144153807399827065265813103182565074734289551132013953667877236606912233672172286775743629438580944619456142952967798139052292379449211731659185554051528082535614721586638617584004714950705332993600964197641069834970008162945271778436098790192809258909219822336412401354113576402416759992986854049529568438314143370376166631026447613987009252289475134973617673231498579384494323183403924929598073053007637072795009344095183116406937751572923129175700500928769876731549361987254351396581353929376892953065634870277322829627391498474936005473964112853007344274358143069087649153911321386351812197249348095955312318094095822843734147293965598094924190055376712487626747462380623347764733580110114655657175351020438466840591032153752034832262092454652853800005802282548327380670590020095203892668691819084437916173007692495550871319326088056879291025467402618066424012907024430997997083049256406679920574761355899568240228605468029643712902223280407628157904508930024053069616858871247962443543867170764209092208889368246891326193254460315748270008200934368182595591966005457101222620505210350764268875792812825110830479994215059146645455571408713698876451016101329589462991596123611451452873525214649439590460324317013555633060914838381666775122437428342725381813819368079941473547109114930458521464518124218027127487325033952175472724292576646071245578595671255209118263301552648299937198441222326472756301897608676463740986550374299613605240184467162506150327847197433846873772838999137567865296298010120828906449117525475552247658116155760242050319912339354940546963759335429318396177160552929190105910882928099073047108994638723309754715062435547372696535329253946322763206286977826135537794553957642926703621761698804258738649702158395111873002483345547176236674793434614912471458227856942523102966167603010955013734865268501658489651823035390805324098460253475102160976689155766970804587156673709126381024054795573815175005967862950416522983274174652648385138698354511677978977906117818873533477952004851994311682117134848438132571832409037373011364814813334040946267903239038131344695228103399253530438153504621077113700608026825789211702707272324928321826797420347894956880107502309022691921548405186279128973357471926123276594484093568803968186105770152848239463407528886701801560200520367856846236182490604776678597189516714944729109691025278521067679200426513628156610252276805526591518651919107171955301946132913986715336116581853315770519115769911512054644148156959116051381113811519235737210037195837369460477602889846202948054345342604789615819140118479719841649210038971450396373103425975264650620251752780775712966034726281270351698866815276614852275230340930388570820620493549817703512873957827351596420439758680033806351226717690892736570638182509067132446023794802946444780939518962089986963598173744463745705738347826930690279222587112972993789916405115145449722161673531755454163243234636638590290078026206114244781204694842513342232342509510925418532840051154210269061756072020342206577361243729594620723928036283753175401303291038821073609182119564424021945982219723276229042463927681047455121212232914986347641585957097649844500966469349695049110862171629671936741417869060106416630634874128943420263214217686505322178647138478157724500988870457789708141963448063563859584417986918716274391597919450826604665854037157512090285441867541060076318206251408840980791670138286531177267212159322680458625915948601073038996382440030971488116536728100590669411233641324560046973881282019662864429338257790798817827094254772576663886235640018781700272150476050830361610844779805402778073400149553546891713001572299490599140857335739943479094999799912709613169629226824019074552613321492157404706142117162435900378141708674362510212643297312025752869938090640748653852249338357912639543419740768408775837107874011967729933638229987937711810712959975575717810033175711702400664232893176958220171026076236185948323019826389613758296497204385149207163483718942669952055103122228010948091482142081319508913748225756438838586623246058387446465916265354752739861654608547291615951394837516246378968284596213620363203615990378041062402420599843376620157819772688452997603190121801435903491422835020583867899201142469797174494459563261825874899970083605635245841018448506596189319629982297922247160384789040204198424554929167949484775103466903003210776608305230487974671061591696619631544661942864694992912928195370375368494471873845793016467580008259121359068821628557137824326318175561616964507314544762660561053512248975682031652673520792081905651138000072118686721367768861315939349293666438813263270065093345642956221114460585419214595510847740508985518525057401026274416730692823965101824057092825370321241694216162676871826820872958208074515479012425843958661591268163093368687777517330711849234243201564191137422956977735267960583481395132558947976900118302235331589802898068588367334212465199089633884280870099156846193368585041023608630439226980281056608379337872570224706676324281625445531264361325118071126035152321091325456789068482826028836234560855898748925543564270763855479921116395121815381219727238439466300901536095620429527296134076334305929278162230110838023309799767759932413051771823256864636903446868357914960163088306160543487133681442316806563722749937050921348313182204223892576849572620101050142861189221815883223398106686468442496082623953153357976461142893596386359039706491296249268397362703630538012171320970219333444031922716055668592979373941976120222660140110875127999908054049862361775045349674716474615092179276769773273559659511177855509078416147981204769611489294999327212105989536643743779061503897624005649224881705745172902999343151586679157768051835032823770099933979194851025515778420393933229973093307047580496067508933752249741729053286877804598446107372819853158616596441460779511296455712720680977079309840517945626018891546180820364945330330091816864796266668734393327856615998395692884465598625900695473151317358922537695789214617769272096971788218636800753284592423852208282642869550958341640589373130512200114313603256101539223384981236021382962564956598640575640702130256824727414869084612740263463849551749405376999460967037740799704547424314701013398712738318078861523500877242655429292077484898211725785246985551674267890435061628565202509774034451078166377145578253132714807165221944495831554411931532770042529258765842798094872425024769699005851296583059208015997126951916111043476267057309409220239886342013631047633663544656600582811659113961468383253996485615592521005585334953659452456175433803287032192636981393176444411480689221636874666641923717809690857278934735530356713220940646878769124213694307936085937385033730096487495519807340112115562905608955925463640071722742924252271677968165329214316759901756267582853198536427508082518990704587866644258151750771138671221409314254885097332769780410707160438685655498505772993464426441502023194408984920154888038997693868183524775081460295751439059250430607920818847783982337612348952650524020783034115885568462182757800383248328964289064567521710181843596013993710373818574933984867199069431609171089061378378439477607342889190282894276911017790778134035777650301609725207910898389750660944222971349982784453114850242622663557459248400182148578388660588745085240284562451341245016090299609136817601825111178267318537497108859874612576176532490969677836775762608662424874274871491519513284905074085752743134413574751988737569742750401060770153993513297523307614238861867239317322993946486061798318624750453244627475198630984108296377609696445391490874709985669622819801624364451473389837643898573907935094424601136509874911119166195811017515444724752779380927277973681149328026984224596104904027877321885500534686116261709197930627147684796514063365895363491169563245217883059987437142343808877799056481857465059584252370124009482096925988303071961123440794182434077497417475533060222234509581027942459737155858208324593996461972485243428005949917772615541798093164675388773940025038680896916878108141137405768320248723244621796629962691730445549648684034615497303992990744541312067033090960584985961223186078060772287305647739641780702050958413362662018302202456694673869960755908393741453323438747257636067498212048707775905831163923877086932550937908125110113976983642103897224852025716097905772309900556149617618134109352987715402610177109547307773256193975578044307899780105867906945742808752513012794522804573322591660730511191304773162779712014894559585163252845227636422797154785494020110489456607830597656894782535887983479515943568066702320260610366850806464565014310714208861915123318363073962034007537846937009210617160900243380691786916796999076384429642852916824924831634679735481309013983767494786090741240505851795018773846552276346529427649526560791304580531950260974130994313525133637558134312297735695209226520965890753452234241786775049712994485309923193677440568600895285613660369981632290659449241830391458288806774338814345333675151655483809322956051909862090917231418135794419615308858260404082211488331182873835045239268541445988150860841194322211082578590971463167285748957610294021690829840574574641468637712427015318294855257907525134579654883267630756204461992933432440928076380994583264356842686763376103416190774122753991219801033753890794660897929845706615190756031856396448441052650506954790375999350226764501547849390841832509344278951546774265060944859557358870126740203104625239904736140823286482051291309460682368599662634169287615909954217396820547515981093632800977194695146069171545861095920392972839517861519218533601690782275005311234300193041971593449784407888115937896391276909078612022836832628555042891954144118339447336463117229807188953790828170174793791898914965702740350737273434802990864574580412763614875266407661854248702962439484316904152502567388633468855756744067937514366848188743516599409775541498297099436899357248819254242642991837652283811579431003780434531004605467306666387282226889238860462478200283159674434791303586701075607878728754280161538964125113256339669697110627044581682570055731519244692437799335966371220145095723039687892027957417382694750484626431735253728634871835950116047204216799079149978614344645922702828291803727065897837385402353399934169079381089069364554834817541752587901050596748743821071776929446892784082597422716712095548169710328068485954027235343031332569901933429208679834974017252461875867409056663956401922826805052234516834148389722216124766819970011128757638340559266381426882403673182679077348011938989271179162663084389276889084403774978821249584514435801938111740776715623232856510000551383301662806873150740156274744532801247073264885553693527095923745107623394538041962371171343877997507566203311154725607876754150123311815717174487446215017289266975051520768847708277095269879754294189908595654834771911822034316516299381152969826273073238790091417486661353173108110721476697414921655980079301895535704792739831902278665275746360462407374429580733927758095144621077698318093799882677739752032678721500596004815414220451463795690634067874650721176862789373918750182428291389284585170738188482507112742131391458790885344703099674268805870972178098614640811768421255804151671879129060666541732563108497253204383547197842000175070200793366473902998602959982576199562812832134903267247984653832344039256966689158272622488497731353889369930708023605533171343570196756622640450239359394921661708095718064505175676094673721095654242976475726068402090666966771918188268175397994951652502563617955737845234828224844564646581282077166583887710363670453687234478219846115232814343488113290543239971378366543198097096901171252887471508982077105006570451344871885257865483047531225794830733611660709318666415029148160234213916751310631740903792716098982071473878831144297080059047821921140366679741608258469611808689625702255203088077591596359037896168816699783498046487142551410927732613266387470829031252397375547351210142208923407750076771385822798635776710381229312416755283687504316779992013858282638013309895984071627654763201966739537794682452320362593129099413132325809043811032585935386424881480000133533572675227661572441032644486420333176188599840913184652236918100868355220468640632615584270527888032536021276235304184146737015324329637148791751366998363558116779010932586940659645264256862553965847695828121851314498906902180635860944461255709657928218972150764010006571146591581971278646773239554485076861019685724955531183700205840098919184850073496530500524299481757014674144586852733976233684608452384207873981927542735449866956142207280292648833474321217231921000488038989581244340954666302829723432682421808143742723278569395246494114470286326193053210921516667420672763715768709213669412263524380035341775596615539061978921810585379495399288953385823253837551417377090657504790811969929728858477849887138669152738353202298374587727301831095742405313405571545386618773873445226416850814568383986427813592141223592048040511442458808085883014097862905849864289670263768873973119177537736413727597481737581725480415291131889011053643171504450055305337905220254496422341461541949454639964160380430290542134724279191353752266018140471087071917182199423937228018555582988448499682780077024562660422703724445804184437328037900965230954856794518574095204445390585489352525277593129218451298464153811832483877534824883044784098268595950046743635338721149578481533071635149583350249794914138050855700611759685727199194302385240390334919073629975493117561115003946645061448844092340874615283448812313255912381252346003834010518957062996522707501549925309875919865226776276844314103447065760630505472021225813932076098081695123982723145244837822240102079239786245222592466407921092558006353391449745435367183168321951541755380958318203723064375028522651503460630176180165720214557485581041818507039025653470818090800934890532225070460838016631164259054539378386354886320193020119233992823026343795164535982473749962404078668161768305915865572998808213193374587005808021737024743285206428737715089546902721030498175290903442832828575199563415799599294498783924916057481840596107007335927458952797550849601005849373242611706267141152080392861885829589787554573773454808914916339686478465558317591035526821037348781615218413579536998254176765252496187208325578068620312557037987964454918384426136921427560432113578682019597901415763210515200640048095945066072299008725737192367653671698289923966556675189207970131166559505162475710084993356713748432863630555362204199030897131567993930392963054971031914473737378551213841506133139086805637343313489684260546549048718496185048395887005011601951258178036382862147090226513685051079806324832316855474580256783287822261985277760024974990019388474210102336553178504262111970307657766254709381718663612510343332019444374565783548917483376545848444887027312031062475823796189346437729547257507441339136408488527880246447849167002313464146200947458232292870306896043523466962494286104184655466601212278868574195145042284053282053620096921671559410575475357431365160322486899682936322371497211707153753996297164915016058959331267837741846521903222117580129827592301243972799605863366654452605533477443466328547304185353582421628084917331648483429201070499422790944793215212521253145576505414539790095301638386272115731437114574907738652298019322918677056486628138722931112020824041405369119653577188637139640994281709508910177016842296990871802223255978913157331679373741030086801760000924600817449137196011003042780031511127587460103065406728359777030725295621977501944249106969800532704493213151673581637533709809694911375276192259852207525952984628002601694471084606955218969103828620785584307353965140524896991498667715227535434282203774287640327883342725706277002568598683347888051035196442934608568034372022877972287415954220612451125463403939263554086075388883794566560648016954906667372537377296200412039724862104230308330324743655929716486534594101537319847763067012552134944357824485261316798748146416943086799180349216587920368052866418809319344915830173899748104195905347941897522450111606545414165256093819464029614089061089213488693769338250796853196246043865205387533198828334249284330049591312303833560925422530325116292848687100961236569164457082263824383238185064186318916090057896868073993913686748611666740006328546637548445371116272005511041661980223342263686107918914807398698580666882385179045040861812489876888030622906169383349092386374083442279185412635836080547118981940086809371914463965628478193735426177297680746116926446346775913171109311609650901018186075565304060235455967319010877818029326508052430201253657352526260431595733025933037161789807195424625666303888568272938052065682026085277540148500827094713973254135594049715276128278402266421850558364176553350547953732249016137749110114880197748623051817433498648779494421131524588221393201557752267536331828741192375099008301116257926553722760244026592665300190042312140238569407232561581690441494191914119701589106067521467834880774903564323849416607752981223295180816026910018552253997652399610097245179444342421386461288716865868513512490924697628264356816400554020937020238533471997099481741595656767501882473650084979518053763609905755915460280018301873415466987349534659583777175591086640028332145391580614106110078176707731361413922728377513937810486725648590913249869963212937804071134583896060733240160361028964838217359894473670868874082943804234852335208164528215341311519535176568325246560217353473500063414161372548093222394683937290423350738354067393283369334351738684559331270894485879406542162406939795585885278525686642729444023693066857336353919451069760536972693833362297128334852134269450814155730038203380415396349820534440101467779556656524038203797888365453458786894086310427378591514089075651199992458659064164239895813023028181150679955796043967466619073516773748708867547350399318013032195784435195695084666829347125270426520226778549725501340040337482618626011009553940585189476990283098921754756064567588263280201118354157562067223651217714496233669842171680719026635142029654535373152631327475821866710443436791520669668080757785418486270382415238892829087325729978929573906311689264969837986722567474698174144223778132301639475432385873750611802959222595960029422586387123053072471507877868609883992458067274103850618104066222638199447727935132814255638586798037260497591588306635978675667874137758233416012338278391154994497844130600139284122674638495840349977552479501648434568387459876112670593423034875697850661773524237514923655759872348929654282295318267939612809929611164773329531230677018718884835779503225680410231282796987707468843514758624642799462900216048010453137580463195410850997175535322445545656926487812513658731427383274344374669025768757380994184196003474486764209898926787670586899354802574081611713679411515909641503653256241832042936556330080746375640202891469275072796006626650009574401921735638175121081820049343426384934279892279854763777470894374028253178718913133966531137822391773583100498823008429351057600700796265195726518525703926294308785778588472291161096111942583969507851718258110619332543339623740998614832689499879653704020235430660530257113241747234317351352513827664888812006939246161249837685867598969914747837077011517226562033612298675810422637430962328283165809090756776034793651900618855233494860834151635941703303894334212013062753823466810298834223436520149894752885997067649916204646959642850411207135297293236707989672379189908863380199735082999501395671137404532063438567926981184411116694850736538258824346910029676288032871003891185269320684528542373991155414590238674522700990143536337406575171067793781752497137392621419757679831697003536464861525182641763608287166940981466000762489960066542505773990553242970501909984190191515075705575462965768417794824122772992644892143605320769719527063268891875662397526068781107636768378020626029905589496797037417353589126775550003089975056635441852647298774152933166512586002217096000062118067107776906729365401689791574148317181305362835224586634016495419788809064245426261370804475990380297533429458263733395014466120454208875928716884623797431759081180385761094361648543288135723872652851648949723723059098934105759976051709870859533352200112280954494776752823081271550928517534871933443330997488187992499758019391935721839064096152329039049892909228648189698385087286245996897006401628320127562907095485987008991298968222011170334491052059346830700235126841467485264244788606860586617118384000239004917961920566951508792176282238509059097506480296690399833893001085429371490400876052087351750040212603034197742317265804150748441022252606482585926737715747845577584367852278630648550237944186116774799597224213843222440503059096658526527879607741804151785872876093341379010141237494292262665561294631609054587891955508103501179142233400365951885221280074762121947612037632578521725022338210726622481949832348262706972715955875217449330772729656665059684638219815789405333521569309119102130852669109654652705778307917562702049925066852694980221804874942070692759534596737830397325374874715745885616238882522091819598921972296317914987318763005959892497936495299269121417361478711813429966824193564745553406145428052549385595792428000319764460590163846265364397190201137876537413378241541991074155824644069445532529288172104780391340050093981114107731656268706628348499679513977892285109967877642019067617941001626024646687785614757565612578584536064692485531995721769847038925377150208276877251672561546126918482990933186285481933130990445020513741276187478417274638545492509126145705964914499424315037304144581460749400415230000656418871036912263039058282419377852847891802995359620913244026708214332466490601492265708482101428677172130184826477727717530024093706940412240940598832828471843673166690094830286148521999652334745658807005271944714339705518349175581426333197382414935221497666184428927510072648335325283016908533596960153311025208107392789064112874396572073927607634654752667539500390022347465202054408963560923400873415970809135005828093032292014446403508357844086233744274964587110958835685132646662550240952376528529870347083045125805928266457098034929388741734836450587767539775695357099312760907108236850369802398235393903715228370650190229993847505964864583201345461582494171171795640243127389254764165468366875892526408426356218210331590716950639515917347859731067019390207924393001879941626532987370244682591696644963871159696148898077614396548001950494266274198898283304036064036627128548662189511618279927378331276753584140607639308913348494169829457007210612715333355125351498202281318552396798810593151774085874961785670135044691682173855651456021409886714811084737534052859663691239357751553393498247896571270755002540662283132650154291241083607513278912371732789196502217719389282375509582696364719395873069690974960443753691999057751648800357478696629924439857191298043486048478287088434567546045807042296427199177571963130835982942149202374836104003319665334585094189517594870271125554998701356935479942713644661644266402027433569704122739943552616037633741998202131401914437563049710423412414880410848157029847242021791890829350856381697747612406233665763383394413652701585906884960436749130612747626340329259558050062398813772977834959032886112158583481204812584765689292685949324419696810110250521842395046177168292145080918082320571273094591953360020299882997303402069689623467307246568609077877358062341877309239246838450902092263383758488216768304224940307551054377147011143182418329752158766135964186460203796831717488385648749705875994870659280776060533205945456600422829989463599586007896843759770471481792678555794898026364525877116689223727577865716447005103256169522905274414484181571182951199606353613355256326431920852203224721785184084134793050698245103281362223842387266242525108747488674787652800347880618980321362142376015676717269397068391928561242699603472113492959996781292552529698102283050363326280483712638982356571358082545492109514663905280053717897472774422343175571967464116528040379020847857352742544652135485289763979580330858850699672472556425738569390627420165703465327598843964253148745977738406787914281701472264702513025672919668343386232226089479711400644134785208904646577763113066315799575597309700471439187466030144884447298684784641099455614951680057093319928907226070311477333042380665013068649975244784004675037845056743855638758552710339209592673028989485894834784103680083641363421216314252202307645283650262704079288472576469071261543312541007640950309995805423944831589467777235128990154795488313882760089641506516954161373015869619827220828292214716130184089530000559755237031025211552461773330889358246453309622874332754857737988786011119563956465712074926109840858809295790327220574941517968594474829262395406446167828038695578925332851323801737912729340881693277715803133740590064535846930368378398205076858004417146015197855132516863713185599140671143595339028348651495642243513813460425427083516465067815203065815439546447029899384773575785742053141362706467987546081888702549508820039327512637100787836986902900470354208725579500302985388444475661198578999269931061565711493860546903796663986085542562157921173634358580583057021433611421824891582003149575433484887159169389950868916925160013326741850926527952338049210933812814246995620278217162242804362625692076964092574436734183760231329512883630456598952916288459360588083072021442630070371392092201844808526390566143997025423401669582197982021092901086397703149091139807946128300616124809109304235514114363769286332045388444869740231885406549969045407640886510693213218114079925452253649234750102471032664121790620468269775213085172974060403232967725864471146515157207948147618140927060773156497391226366151409186358627810369496858616598953366122799667129231455782024352971100462784136333850786898104602870144230713542502011037141707825274373677266425530454190811640987780181180344049779277219324301612185087234590894338449269220263315652973415836628629511360660034385293410182358795051558695192039334228221117845356590123367209964766923723310421175958363196390184347803322511047325206256100756876804832867875118648645338125212255366226658326053442143736827611947205033125983646051806508226755451110547936284958474477713276985315606092731582336758860943719643867503085215633868057298984651586920944583225123400301946555991500528141985635773565871183354147745149854638049534177334748287675479694011427548692817453248449435073494281432189776211402146842146730573177435765652623458851561825731125794814260523204412308160991849977831922702614509602773351943986418996039806025029000928221242703973160316651228951983284163265858025719428136581442593646056905063586270777584528960562953899572598611054701821753018492209135586660865067264329929191300296589490291936028452792378662286837145836305349417636784866906424799446998088738323796791865141712867994193196455051145934419179098053851118844699150296178486240420307221873630206905754054356143157887605702726121959402832438864523688274313195718799671058899688507586795888651051170017318386030555710243684256939867767499748521673203178881703160156057682393160150428803627265042683390509641224164443969937526063510170155244851164051212389415708909351817343134661545685096168475127906565844653987547218951751296507154189225173219491440186211785525360288139459094141889605918233892328351990492850851886003976638041014040580916590746401870184654713109229043538645096455380637225636192273656867176619174595955718669519070209836255284814032143307515708662697491603189937965307506441515084878077566003572978314381858447744468979504392332534149561867843720013009142312282696364608629228146532712441673243829152481836240805481922018866955514128974293118334532975622959081281534496885198588362746243034841969147099201566262500626998102989287171730868889419373604583701182506040489602552472737328992929476033662861755249649285990273791470540641821888874863351000505476802487756932162760750560347753713332247132992000154428522494992915958204503870795574435099738569680166956096345777080041580939699905744301673866014768493258316164604091970284800235772694463923834357314201474629002577114521777398503191045294536034347125865316260489819080712996784203470664038076031401901542991613336665270557493435494290436272166044116730470875599736923648988252501510096223309534134599174173429627226806618934477251229520679946790097929619493825258370214810713597614087934589749405308400432631765745600361845424504219795928187016364057904689317680546209659785765250224605713662411153181305887797706233525850432452519222339805240815964754492652901711205090571607753790237981432429310923411009647402964128853466830902079933169249946664237795114349429897853401923369733181358135917926657441667277189192558106582287071636497833738801435597762565376706151019310685316339235904832500069616146408446094604694122331325017960358276738630352178483131896821642447512837943927524900833410515225703954451264225279218476577351109017971777679632300317376751875446100994235096892082220774765222727485673952400059621660065324410104232628876214332057454157911061419974047013608144525257242578226818792750183809462147253700752935889729023999141117439567820522534426738687407313924608985476309590482437262010974723196879673052476340126423974969490275262161767559006123047310451832774213102287194747433700926070405055740976845990437425570188646737943560597668882108812957171668589944116571392588287375660945448437015983711005422297012357844827744095476802694456956704413253327838573780383605352735368990840568830416863098321461697446744343847937247077735320559843377887644537250403570892978143240692607252953663983455606520956141872088410575246026326609747663629184905722003624053029043211445812044630692769419426245003058044168887566424391801861382967702857677433134987365946835138256770980301458027359593536014586429331175850156043438945098995024091397386682618606331239489988388301377413509549898506075814862606721882717750143732857927679013802051936242753007197924196662798122615695618026745751570560445890302571056419159368975586174431305844857690403955069761513652537248459950855245993982709509061336691445349259510675453520968882372376252294823418154982375487035030331520934900358282319285368871308227887050697794751265273980281126237301105490102214273017874699089768476865521065219907842428630635879316344963304456588074951364886074743146147134863976136605110804555461315792489449902775098623043276008717634796825225694701999816674185422075474275933149880150039465152922991913124597900082889999754962218639876784977600322862631596575657961911635437407876067253939427353281310169155804103229623305933642264032261707857745464525854296505850543125125815145306884413635383728202191404595409920641480839091037651240723010572223875963145832848981753460596360345858150114745678460231487683501939357578826057472121782625975828917712071981157293784307024197914869143399121682557508574060246355313955346642815623320231013376578458454465379397488985404366231338296483599721896960027468748955346995465392044763091723397392362308175814670317152687884191945298933138312073410093313323093928431464828109222262205761286060192506951262814910862715983250117827324446805597317285365713854604861309188353012622007337167606314112265532190704759100599576376466713790563942406264029342512381116079652797125937477892814088755864059353348378334576232764806018959178316809096208429497024695558458891809221074765259188410381314992256683143154494055061418522181854739686573973967427092560459391688588723246508543196545222831206759651090176778780755049140526363273490398984398268324536810467052197482821987720396700265947223473965053637543928837669660718825969732213254351714608336131578403577553993843816579867394033984648392772447258965766648972928860656891460614632764173474834046721389478534489776005566578690846865177152125359811266019458626196786463843951628165037463336605774159243867401064453653014676582485008373366828022245307606917895272909825567159324678685245231048514619318004736498909653073396132141965762718657672894793746442772096044175854618411992685358647106764380318656725534033955992359568143011310998948634490558853880652189320622607598835846633193417528803937967938142865379738826448511715178465420135045483183235905641944180574950940929897854423527985873324332357163825669034079048101661231863111477856473402402783103612409032654417635624883640719417879953040954397873993103100071720448029076915797414464728775264172483796782898625065213836452211474069049820842742443191923843655810270017983387500825518162244034262239036058940724919588293365643370271244984388988646323976803263956708683842172775115409102391029420014339905146859727892222882452678934317259074039540691655052600459370277412718995640902347685347561552648243312788003736123137705135439226309034536898903384967693958262933579559210032497089705258798109196114379834566923633641310125646204722181807976947928338221858993209363021316143249773255462372887053256319229575743309742231123367644763401102797843444774750717119725095475378716408260547439652530836815276487022784687055147295211697926977600055624920621229958208571220458129325380234039759477365985559958787335547955094758113361925460060531983859530368917976156332485098716109371983085249699820596863672932672537836674498997381013239625739405936359992046750258707677566967434178120778792908898649297496954672440914415362578561786577740351102079382277376159186736318505803689763513189105654967790424431244286366911881447103821185967528705968733688374786200766915295025607586869850044041711989123730719217035765279191874621268529454932858248342737183907353531950506308925715431667265573158513961486175435509416342225028909385222995066884062332731475534345473448255193661105073993455322104260398461993850234180186722212486420272601861349135590522482989378738300123887538801250372674600914082475336789799434397112343248221778659039403915196732818410138530523016272830970474059654693740067118089508147892238697189009828316172462775968305842352741550510791347156042331035041425208920060035322811730049376121740493378644769367101836836925576258865206501098250456044651561230423327960605426055903478699370065633563187705161250177029766921094488416878794887354626567228699174665019643911413973368546862776657516065517643582960269812485242119443871951244222712890062264662909579432220071344840975933395268290828135333632908808826944451659245406524776057101787376493846749915445372732872769828257994566450107139491047315992258703236491578921431994926890756646604736393053232763693354520816699825915274882910022759648432496550681919657408751811334068840910831625768014790742075605718955239268754347085526908884445021194750506393869538073967049000672888803431234713731924353780563370975301343335115378874809596136337110538305428001186404877929124386798282612192629771722277713542712793043501846690333122018035942032510133145291749558450774694827717702193238306340834470845321771931571551590889081760943225137246745718098416980042184083730860339494910169177822549394435462460451878310399963368095388775436595497583948668439151372275832604279269185085493178517702976096659165080647887418303031027245687994466047808618053174333092939172301565592891352771564713830767795082843192212024203523996664390683530171022913450684415791819207849751552700453525079144432304967307264531963474506516521307706590797781277933855824857173429048191686894934544414228633310157903340117897427214752825263001248113271285562613633414797356446439981059323594448081787538264964355899946963615720524061909063629284550632587236263534365559525345458493830652272918512862266409582697498248550058191997630098490571799458824109139382319158045493380341226593762276202421672669303103945929198514930034655226103699960163723924009010253191495195374806178960143955170998609786995048189063881628777408449613292656475968713329046562500307078709914530013054945635226651307989440738752160362156522618694499139190258625274049765619178806094743473669792448749855894693168110275826811847054411477920255499311095838153000542524002960285365717302864587268839897054911493413833650693428864636266795279556202545652209061584948134817813141071592983373183841329504248563377555962783540617110609098415245767971547140578398381766061555749761255084726110544268126975858204772960704487972502219438090334165605645785713368826091357181114387247135261720156129013881254985197202239235264116520488726967883101336411915510565112017307778456754904457276091601948875170850188431943855559255644065866064224874441703018903123186372394378763247170923214570182753420518582520379365936512144796010581117796336857974563405119500357102327873595244742280750945757017873009934201430968924589736703445505580999022842626474236787070622226220412375689115880423785350493223722202052612637225520843293961118007845318585751631145792736762281321859938409538709755579164428763754657273206389017754816873840027394191240949657269794574012198598591967407560225930271821299986035041470718613911939900342793245146638274105857693231022768125025692779623467533846280427390831604582447545204991867143159632249807916806980205591201594024358970268215406367928022804237599298407244345696252161339176558512211827108136983990079122347260203939232307685431409926199192485071013839739774603061360110515901591564961453569305232457084325729080493236202703901736234849363712245733792971525251209749640646295930232670344408799673605311814051346358834926398176918725448425089636542636560008598694607694922507084104772184949766126987360834894145807699382061101773773385445226826072038425205493418174436444042606578706997265931651351656037363360872706972407286890676415314601560355289487590936954399451144527860174840256108945940030407236714865515882366648795427632813072411594684000112831164017865365720643554032796851099081366142826228577040888718953210935089683209458033547038254231860438317010825740530288340797343909526719023726891373057818433176996396039791281737447223845799234422214500537327951458773325011227404511573572382021097515479385325319194935624154163110510485119514128583391209466523648588590454764768766999438152209015212089543176916523521585962180083401444898081015107937001717387021940574238473123989059506152752534100389240071755197232616422132712799196057452914126322452785888312102725051146501840166056299230456678512864521501784544105922369653107785144596663663125599552084337501961018280172363884579567673410255810223432217215578319401376789651861531085196489332070126974953898538487206339163253913472354872637774812829701996172977731983645020507603099485058300916491343603330109032775016436956672227529108168876745930824804674286512359482966774346756102036970984834360836507187258709090903707458263590831995766277457808664171388547602106517149416455505341950708280722417873648651057614597108153710836065060292117920455314777193272873976922631002149099894768002092035656813065786703194210140043963551190457418585669434547984836215751087732931858811711029519612905707462432047895413547086369648359841242579165189088986597327576888480351395465415430671214184095782461943046572272505196316308259080958471427462620052838145613182056097967239581071534760876940608880642940893381895081334875291628405258929021559537518301550637052612330003125649314399850133413946837214153920289029372992758867116175994239433848262309666359622040126242495921371800289853210654769603304383566747033451407947761358806366406471001845216571975609287154636487302125365507252427208658108083466029818859114031313151253171417662311001125848604287363712930795683581560753696151949986593745842954404776082488765255396322837045466632801408813141174312873909344088363771646508750475169770863596483243174150346375546416738182681656939807456668780952758491523795766496144081920300502214109596425455989610198080957712057297726360726591677418394571857636550407728298979242495905000443481448459864918678835550287743324299874127379751993516797955375142524014476654183749188621756013354484576002567344490752271229532813235631946460413779124305449331504254145891596054654131375927360614668007409211486932879137393902241397507263771451193269222093192849486803602470927074530355854700610678725939793643436880932535662388856601399674633251347378311987627278339567757640211763330530687158225260049839286729826035984397662467404002253227021483546721374987209368739352240588423540639699274136530379527165162832757041122849281124354276648565392975167232210015035599736147496803758691081766774717195428769441601714350275362952954769354414144639248454476057146201566325014114424015024747474823991826819598766164880418625016094946052926885832342962322452745978840261485048293852898585817080696940553585972766762372364513392689254043892821738296637510436214036849619758161595857292472923678785247570723834607661174221284497851085425490822726904291055272995103086435775730744441685582913040102732733079768194349232948091490567677571643155482618261868949895590574408383607489024705464818394587269642802644046011675677950953182831842229698847206743795722863339746464168187432046212214965052688374707439058159813357619790837337880746582249576267503171988101949900991264918099965886792287664413612531250388206615096310304227728558217926336385934668434337293434351652393844788306284449665499443696549945440048469151755603954890939156804582760697992056649147657475370977030189163343257899011539758185817783352219402790165256488905945175136897973934013067441474433244139432959791385628526510943199524684981864422830467166596639637677227037672134598986443447665967037275099676867085582743465565741093484070316376918914438037906200231877811608796672659686373275569235010487796764403905578957557763355208443161136192325534408942002676008826061974358665676265864761551351432368130518144190938725519282244690832234541040207496954473351308046859671871608447970638703611237533523751666591077978341408207703868414071197619064779955418108894016123117724151540861544363913323598424346529664434548025192421686263396567236534986123824501287047129612611385601090039598727817947237212206764703569696924976559439317316947680533531737801224047860320293058676698969743080031954566420048049892814802624734494377802711280050454382582313495315009063629263455040784950100254711664011085333115102567035180018568301704177825878462640941363303149322748746557717915885804853730336888640378527070131606143428061789118655254731875236883955905053180891611000721237372273174638460006111794313316566115301800447984796835059476183457450409446507634879848996193328896782500341840190859823122626421026818686913275776789749603754751064482706709057476641439946111870119108741577843915514803049842588356625441094164191062761544638091401232839215988300037007447179260302007740729899435362507236692454516788003649930611044045309718272897805097371729834345410373385298016063830324900527300341109263016794671117326171008494010659218757026325707762230702749088579306522046942467120975247806221304576759749943864043225766373318631235947680131957573506852551103963102903597121658148355055811395458220388098490206532637922334340413027125901662915617374540239905326535833083452771846563789400987788505002808701295550458259319351913475389831254919890170418159483448614545902947965045678270377953167695167573151557676362587826735344966108604108437663010134813675095401932989058365504197226725192054705736025501857796299958438371471275958446496511092300286968791718198012933410026649200167829848453111613894533390458989805567250275728317552411339841158545039403128003463766778336386484141647331422842084138601027726942889832013622174321038875250341585625607228427367399154478997933700522914634641637290562498650439814730786682205930675642646418303935094073273405486256525921258370557195835722719441900022693865778332358367636242176122849790018350184781306764716667731830556316856907376573029384749578845934323289442378364966222542565777970856369185712609057435278779668047748088045054086185656863598018538839593285550472320621642839548170164170413447890291388514202622192811347871475544590758031545345685642931321422609264122487961843542226399543001943277793447760877139636407202420485253139056156254494406490987675771003939465899561905148833268096552502131853501503178414564213112833803217292058440931184493683806952978764419484110797239609707587786220049669992244030095640423316268720519569282474350790598612169162342106734717790901787345285011869498077838931693836804463309553836151600034908550330434581514906761462441608654840645385011276241007140387243718228537898122669907021702594945029857682731015755100069639932028214028069297006175363791569622740177559604916653058256510222391399664418783234875976871566794947633386152650766283004783036643184443526906384017607606844182634683812322721071254305119015503514603426107958153162697041347159648318616796338858388063851954317800419018741718485573132338339530552235049486336595701596328142130536262302511260034722071783988097100356784314546054208409012493245839593700597599238212164627939055033294397706790509320865413557621716063890342216645859229662662985873830429186360075702522893854428611068885541508350491138724843199572016181992866373659727163766987454582209135579544957039425355805326022307795711579378285875942195000684110102449774420525242949844609891097305371359112289841175645934600784406289899383631045162663419906792553038900979003933102668248538044712934217547910467105721094709290664261071364093305680919093401939590440644191684915041791462744518195263915116123684089099816928443563603403768701446771956307587397592970348394893689657880476493768692004794383456979910963187962749569514631284802907593991920597081665760988346435528868651921392022111431443427743005260784048776222967077143615266282594787184846166932197130181559099653769159943009301867706471405457022272256241357593662376645837432776799721162312105742994624596126748924402251091274018616469670353338636037045160985704001312975525621362456336600328132359680371983461217048080640250176695085926790381136108015281498423321623544137278067685043385716867553895568510455389905145339628580190765053501715106221018752146967302225140126872573827747020107570290647760045461598556273638789743436595162418099119653893114022127833249225853496424115859339986413350131873070532259320921454057106845540597468757582803997905489054279295428920057619194320376704908538204192905823591858533744759173186651617319033918158293753467740735965331987516685404673560250271555741594071041300224899724869908310477244939209653738367880084319971880841042050826458030216251185715937151229487898520585487122888625256885781057719588247537441731153353560606813946528855972561089439412091225358768326301809450524469261415363770870066766912800344961085045942892821664614699164907337743021015191701988574505980626315435597336778971687523861827239914554134768723131762705618891041243317525156042451571527461129685714561217262927629137466388954389862938293048318391254851866573515816291960341617362972600713372638716993202601538916934213393943871638066728601380044755124374818697996822630344444671344382487530314588467333271851566311373844524657143614603034682388708106710224197617862616396580969951889166764617149912877831354984063792756504530811044516119886406191023949994216588504910313368613351184140291012601100396039426480105470312971906307170421774092473681185437687331342363700693932858482190644540500289419555911720138188983059590940801344405056731279127401142032105841612803654896012824917610758984831223923563737379216678772943824566865975106630397972650741390763522073764536503840456477060688409150439664551801643308824110510417598881589815861822518644174843657779616779447515123118361367445570499406775851511367042139171792280554241727237641126112329262314376080096040161879125089402515667670098353744913984434226678349018048306924989990502133304564124245212508279366453064863529526262970090154593456576441902431202951223677350180932349965484495014543415760345576548935669353064228592382556667229596728798895205340849173995387058667252142374847577241325035498574954539010606047462995128141286419577402522193969770149810112409891249574903167295168157616216251639166343642164420813266837096319320316224862945784281792595658813056050544308340988120415049976692128939975504533318408211856604762605825707599135635709282300803449165443352138744429774498104861050478529257662327692842558535653607731832130161987677167693841100642975175572428869326347196370464315510957068780801516219151143226478258542840930326097843145679599304824629555571820906677427489105978014450115157230331897555684487871664752693671354613047837720922361793735245265067821296856222798905743827034560794280606801580345613863815167221407603865692889978953053599928231318600746975553617773310542349274377531064199681273540970007850011612412652473444645094331587097434032385585819750550064258962643680983266567208714389192265408907609268284991006821315443034597563714180082963901444900520918383988830779695602025965956381605435586934078027759919083891891177759097637606129762396977800382657661609793643441569609420907669474708094054177808296170470000661545243504169712764265366086601184477487398652774944291690288606739980524153113357714913028725509661026866018408184723121623334403976867950783807340119096411634385644929315063137976744427236680928070622266307864465816516903299494822434092323978095609534493034792305773510973253022814569753807908358667867083134598889560506899747198621378835121183635226586644961253964447279324634237624750785135579345778607238456114284506485633934582605553081397411359252358168196983252816162233154675519355263507621106518851515070314579259624927094458790982760318994750290514043833518772256582705806706392398240920860466045911610297660164163428658071421522145987708240410332480296389396142159932140944517350124002199113110723350702813799164543425195920620193018142198060828548025704822076817295670894373747609103637009586085961416573219999111597623693099791288223785742803995746783159518933857567676611458124715690484908789284403714929764172199833392077380514548225715279736465501925499439019898733227508402884597741448636279870047990685798475443984843901850118446942336587035652885900506790808870952727514090356682809480587002257772720986008026350904105959159984169432127862325350948537059943201524207863257486880502437863902890886677999029706262005236419163442533679802898202393835676349008115727861066320296023013610741153236055828778792944117727648817258231096465878416080349226110765577936245914820105328187821372765018450962964385523529989294950559926575138187916435342018313068150223340242745716239242924818280690510827565588653768118019320080349879924941485432158989449272024787974968313910435714614174852829799428278607043922764502866822335140686870798595008569469086657977213963224222139790533835984573368192634634001375070204408247448806841256883992431951912647197647905274305049664773135401368102721351433204469214521659124394305651544571906084640271525738471354089927200758543093651143280963782444710452373876870166772979703069372644410574921917742560681049899126268582903474890342119051768122026883401957751135282599757185431720413441848622533740331893000682554850950448090811977758616661407810847158047306573479903843475841379137851569607448104054439755050954637974035153280674545333034436659941701285128362981049880621055434511257095583295218095665035691773181074522429456875265552848012835349838210483055734813638143667756652996134465389079558666830989759788040917939928202290421910380981680372414706168971569816141630486056273011997200454278403942453441529858453271693359060423849849742341479153125268925169751195407838515448530108913268460915715305302004424949780985597560848657799555439880811093888425506516531255909498638234527326081073247974667749948968045347265534286055463745672084109013747379229807811017260628326610088390675020328746716781909473067819423200853060308933017764302123055384987544860124447493313593033507177929181302115174645110405259098701198308672729985557786882938669686482725476044206254341428653869800124368442932045805457355997875293096409667670043695933975380575821139744930834539345686564232564544242497526734809163400653322840667018524159473297997578015648888066969406532400447780640142519452279222307405780442127732703379913966623499799459179338252610223740082520255220626701290312312981222449755858326925215499829769920069760137877155874334480714348516920548251762819871833391370725930205521980488440597857408470191569914515753469014046905541303266593937632943362412099896911865684670482011619424264304992148065457618074800943091947440579105482701939476022205095402254418218482411868945034707770119209995771928874145630672368928571134669952352600051552257113939224973335590661946209361743936034835277912446529048009603475030666126842190539361676663294701574552383396936252911548351202830488096740059493539375479712974333874093370363447198155092807090424440491323292243720754304242110076712275528695795069621249937352787514967755786662577944151699047743761575678948168393290639173874213305115755884150318694088393477795552307619320013336851786718858366368147549080562927155654007977144931625446388710423046471509129513123329086207934424611713204651345812256007248799374391137613544728985949782754927049094459065176985894673462317482386266387029596189289664583908667410081551244266595993231204097677986163920979124739956513826028846685902041355052035095251463494127344723369423561622462557382131226912454352614451830805163948866339748764213262879360126097873367907317111337000461128935897081788293895484523857185321075351208129385706999409472698659697335941366947488222008398620267433015609271363754527366386496828384835973787160126902589202535994974524148567031253641682429174174508608869756613174209125492083884069766082958897864658085285696991831508450770647148055881441317748371091122145639171690201276917750369514356196439705614939291003489481237340687785131033810589123136658972755122487195029548654645437296592577188461981247760355733305377051483321977157183793532400417392605184431303748271565326102205395693805162898217820908582203623084062400788103615868237751789440609747818628934265087398413921644527422287536601013691042491628225194988330020462427028613986694717061976922216961490613146683414786688670427628150021790713213223331279546236210569570515494914900838686867112173968406149319178287277824178172375683513846073075701500919867407418672062023796829195679136125092600442583967786373493803588835741171523997432509471896185830483219368863210846538369501056902191554941584594533057055396872477576993419546140182356630628887538839441447141892891849965323465633961600308945214489145747489184397731548862649120165578107104794754817599410710772414413719255498320830046109468636439596122811535362052514801865213528142079437189405098704854840203320770239476303863106972005473610772155860537837901993306403382158394878788243785633167817409490148878470962150833564192115837859216478577530332805096517518886174391449171388878289223730501735681241439274866039300883935908068866328254405207034739621347234312943935006231705500840252029183315513336649390786018637242612134415111952294649582512217768456019958961972713153024223476311836068489628770383599078174751127685486669115045232143848072337302957290339491719372148325935804641199289635542613741216980275671960291662210082794830605662620442608886910581057652412244379950232567266735380825194074803911273528110611196800439722775201914844036935606231505138084794413094110948172922036906540182437383474614093832415034527764226436752260413683847042235858997312479859085388229808009141507978285887237300201831309029250539019559445239942141990409292321408185312927221494366213331144077497872778730491465277552640174896896354876344454595929933869453731810725490577522143650138372567831849829540727860478050101971053035882124410097180324334786055466228176017416851423279655800580719524812997558923108406080227383830829828275276505040321640313028821881573321685752065701178856879812659023669208600985294727155172631697541014256643480210657794041549019108029722465955828161643734271022857974205206543827407842257620227189176130897907727669361731932280431913017414557728393018931552783458301023177207277577300999834011779181491605242662233218939974323065563091988201682982177738813291067234553257099027163267058629074582466222989589300526492249436860288137254829708785836834164605309569376024237383449539699074019513732514579551167656805299959815816952251415542470316449328696770791995467641149055989259551032032162496677215647512313888038474275407948176648550966065171921138036134886410013464365944471361627577502744950383775013800926688611293386229707178420110272703037840890970225090262185100140141188940238507721305599420516995712802794438687191792338761627985771957705505287150117367406741692246534666028838996330847904779782361912613439459783457241372234276355033390895942767591367738153448477633643839248123477715502310212779575744905990001979880014696261521684904873391277797156578787278748057423238160797989594891252427325513176132517828056357225327668854889430337203783074981138616285650932167062067652998762346361456551128061333063139086065119705690288348910480311654655774585923123237007515227228565988921637806248695261009714613301697352034405407690641508255940674419633155339550129933480459993643047429361072174200091013932068633590859940249728325871729922601126340100598515096484261461048475486917068166264604858763403178880135550149693577982212031280583002463413529556365758182827893767625048460003154214166015083094085062694392387645136496500393870419041666648975570476240165612250470331499419141181052100699358847508170842736643249302240448418705992337422997770960505749678141819794581779771435360567359309776429975838655897924598027174612357919637926738583537868775722686044018278219668673426731702319633971323705260476498413390529756003580107403615709972182441536318460310727927998664017360593563292491438746665777114159995050970619359825701643028383596029665183765675587530005245016747188578902019703936832989149815637668218835370804320119226106519309252818379260073813769584674571936713870558314748224756414892425726009467448476829348125267195874959882695024741095624096888602899114619429017326986014093350712754177541778554149151461140792471419866106618834702377184115487207610000479279405023643085361683887448608489119556717781746216188733993776173813301821797916691535592102188105136404403927245257958419164535899823927909499792317706692325437827294034770847851391519022677848530679225378575451277180269545860713998285408823088800295583965318372611354898154765047171378229449128911150447105430099714756405021561840447563397984708723530012750085992403945534340285332596056021263789781226723459782683128039738134503269039933432182131818495095780889784507166528133133546552566614866787990242989815776408696335160133143519683336023276258193352162469214117685236604252429888381040422693823047253333014631334673087895655449819399574400957191143876158168644115374141770791338723232354755263289297193235438549943263876776173059912279003343332907434546077892626156058737875927606528256579228548625545797325385937652687884746170071441055459892791063434519858488998625715386338759552877523063300911944480327069239802575324135405517025320034614169819555092799407578925323177650804298747825551226759505832086665064239966859533029389968338815600886464092773234326897532275191313005846636517251221206283443547313770526730985587717074726361146012098339685246065362890510994449528295150392174307986037270593320894864791184240379189397293456933858810814193176562762861290295233965916577783945032296375486151641014153901632438695407751576441369297532075834686909767809937188442660195573202833690920395370866651294784764015542206583093725509476837094416027329640823919291498038324507365551032231053144501198202898488748232972443867383740752428563627650905208850139255215561279535168736146422294465280253019797735370143010774498648511669710767274882242127657726137118344597071837449492066023848573792381988741875227675620144905698816868330033012394821424998687329888740519578470538654010465682298327390447376808530632824361809598398510898991922687290009307995107764042079661712023436157235965746977751392225026191493332090846249259287371386935505829778003298719196607267651560282845630882883305437305957709013561418257188099097990680596360660765369362724713255256786973422579792348401426890592320745025776110800724173252808974409176272590987922630197509628699433609853379601249244971633731870157489421380255337013239443837162855660126274755208049923293617049944282343964112856508562830722875328222180531906688720591968359598468592298695194270214833314847389374058031189879823133511219029620541999631571221454917515457351607935631676771581898139685464637175804438910448775585193593909419902144250523481413605775070404953322730144389083941424256371391615838096198321305777608030168956555193936143996629151447633529448273099500650787074448499457324420358957556808568874968640553165725887738631991217919706195515678002210340270930339132724129783014899509843614404492928502481140045214270556113616863973382895419720234266052244996368484087841785569112074914622229539497941398191253623480580916770231713111596720947781539015442188099280932542563437249894959806216953308003395870970551618372368683237864552373619238325259915198248998112396612409059236744177252831318844310005961559299242462834321499790418735523580475652481862299118856394433616327357191866288794113715846041838717965604744747996005213138907852142963091238379032750216463917971815903594781364342793434896413518297656050502843442289318541489692492626088507503235571356979532250612212308707236109450263215369628131906476030058662652113879261313406358831906727471733186228449463922296903516926621208407015439030997919393389441891695041137054423393638508254161533941696770087991174270862779899141005276344625428453703044592709092142971595368979956330545607556005646486423382454008027390521268473306517657992888249819162707148987779118694783990271478597912635700971807915449671643497597386150692128948173795428416039793738430052446205029574446508518574681161800519515741979782628550237761142766841163230810366048696833733215344431039693448194740583032194264743676617176819381127941306148806115299984323012791981089244178932170543006023071028855412242945387634965180570513879732447854699819320663436501737572644835084449863158932533222976142773363941491171197404094540663980181153195811159921320989195046145276264357386890365971845719183962635722892502247534739656555353340057568088409960142698943840800946106609402155189599693839125036734210060876126458452778778613078795509600182684299082209097965698109617538751846274744888906732915521466834869718440010017255242553763223698200816779393960805688519669100694110264117259527754494447115431733670183495715016080135157998069173429258594525834149615918399312278566246794999264739216536691765707523056573425310355114004595299964095353466879298504828364228668166607843164047093808038341267605768242863889730804956940774473105350981791066017435777216417577924962242809003613084157804132575442814719853237441351727879109922611765524429336821335820990236164425707299587585572005934920719584657205942675034760455047901904108422018080766260247167387628657771680431564006367557933672725741088298100876967835218093783745436701231995916310444258651179383352579833824637373066244475668380815565201265546361061892844134049382368541091603965731975479548944829663447338614343414527214869653639379080122960448660848994790640165486491939113998098347371417230914145885891351609822629519956569986992644916490229274194003162619670546904886372296072590640801831824823001499960388330547297301022880110785353066048555301188899659519783058105939865294493010642430569531399971391929683190671928476985030544568964381552675677984740269373818710831644826882574676341701772764622312506375143984102484093940868403062959145401939676160180954489990976785718429597304383392891293694258933739530514178593558952752182125431485268784885711410873732358305873642858341925092728515458428473430250332992535377467781138917207786925374224432592806611542850712418248230663519773068042657286325076725192851024432448343145938782667344955826895593430305721607636594682125144828228559033275353731206226669881689400425605919182879788933150072529799616728033931653014590049614378363156438973749157064233267143293960507097445338244903071175467038549726196237926460396939607856021250137059310245426148067728585970507622755761246317439403365760096371937632645548010403694552264844252406103054898421240012094624315698922214089640239177671745762065387901157303247065194277512939160116228410082222044033759979106457294563814960503319330319655094327942240960578249334764644098863370559129586696989521692727619337422587193566041816555416482641594949581487683906802044546351265339091393143859954199048048700730274002850576793177972924566341828878492084048935926929898854053779300056077199335284352672272472701529022595901012465773605575013384623136048775529135195081085753355095143261096797303166571906399252536104953770035818923114720170821620197539732752217592075847529085759547584505582625829457726356073558499388934927136389650930491278272074030718343288718736233192531359145318564070770351443437644124684798972691532063458891483980347632097778340847725975392682367564610599813608978438137905446145026751505731125809429311571998529512441708914729865991122525813826827247360476393354525410397113043684672266013461495469579572536874043452984458765959150712916920810748896483647138813364984764230048069180521472122953356195963492385316321163945359674937846023198412084926128860829529465701088166350891770920543803121573887797615663313641296229216795670851475067524205785733748186299576212682611403745636550527215273739929731068695247156325713618350056000316351051913092082012687637081507030644022962009940271984767289823860779233682359477214345078696371748170654844482308197857091854219570592030861276833437492572277148447031623534690671586132065529354069042030533729983913986886673721131900395518775297916997193977170423467735992715369549928596398528603753629307576687001625063899989631964655129281208105542036021650064478777234887145807822421410610906421238811407507398989229172320298272023840115663193144284169174667950965684927040239800285096281168123906188743116921724236230311226663546540726951501979149996996449073103445005892572571129296285458322079638374920518915942187627525027477880987889490219162253188951497660423068606806705828464407995187351180414368901532872773262690491989536503241203434006677217658381161005246603128272885984355105611560894447349160571587279449970634212537519524390373871850032495123034396018485144308097027364147169326736356947390725944557445236505644922806385838123544575638184231369022861946026608197445237482795570983977074528587016251086795004284510828957215629776576901062310392367083061510808925849588860275022846753256055165608070976455455592053767512000226917614815518207000882657723959244734239830606351415515548178743902144595023894096393999774793585015818429443015973450368513295092103532508192853571648006392610470289001630703738884738646182141678376873162487075625467453693514213882783934212668065142586948850879606815656513123375716247021135602588019303526394510983151769953272073781398859242107932360396521196225933825505899375793340686736325953006465604719164822733810267488284067591326793801077088544999765586331398527841848134689915215429515390513212028291627811109362688335640127983683124726274385622834904881349245785701799144552529639810820006913247103601852767514830623197174508345372439940394574829753477928220238306778474862380988451218834973837374430600813152196586992762638567495528977422553692040522622727252086935106348353569757015868827423666909089987781776517572321390199392533121059402639025949700851973850433038328721642492068233910978865304414616266370672098482024693733509786087847563114376544392355509339252276144902068967357555678720211938763124746069190506079902520736562800405659677839880194618420856520958459345360789227375482873916694412247766766535316459074621530734126022556317720805901904442112430520290797451755716793978364515927627532785968854933666547636012925002038885065486971067959989103376858655781354609690839748809693440443518044065313100909168402314965043087629650286083753350575974316129001089557489070740397047221826030409034678541058404650868303433241875682255602581980483133774225469197967559073012578205625973540449602584688035917349755665737288387740751506477487208042512929321293439400166521634559466590378657242146585995009610706886548275511834907011184647229280150134504329364977973987027261286823189848927423918735652973272114160037535214886903099076740951126430693061848471296515019167767489534210138327821298413543955730061736752063163932406916152050854248477964364566003006946485655419776021306715882738801712085764329812989874044613216253750542497379131768851570803265038479742520465523325166549161426786635935406118252326077427726570519560743579371740829739924965286461285633891497411362157578663506461839895474081768483518595017606730811785040385233364385643833658312198441835221750916628669240402413980953529704060575065935538709549772193644339425108350329377214744217074213132924867431427814407794371948492725891322828182821167165238369337284150529727383301176691478251897492064109690558187493814584526165078905322778387753828880466847447335740904158991185333791394399817044536267720306143096496943932298310208689532008257810523173091912499323429307455621796288827106373166229030553856890690023433146896288099640487089554646104726845715085433839961495118997404807878193854551814912108313322202831985587510643223820495050207683822126272293506703403476146933413345160258769842337293910097779541898421661156578601838802673295679348896195351651056202507274379539098554380586145110288925439609848992409624169712058737416248015652949266067855934118182580726438096918422788226133276485321831348663712829678265024519591554484344559338390494302767991696261485333560672299336869862952555778096668874177688802948418812409223856806242489573056940534037217653050843561078780796809898730607274478717396228357723827419540336511913184777210114397418238081788849748939377937207869920893288147684369207745977316671015218503107562428008139320419914519696879583721850721765201198510044570220524213133982779676316732388622158744922505191842653948412428120955730642100793275921220835160783684879370684381927090053709606021688507784492052585634441726586190195862874734039685384125915780533464204915717813841601458272343617526866727745277028030065341690739682184994752119637667243568464625588273920285232771945697743726216966663122698258175492776616446173344415001058830845384743008313809156030323769980449045633800727939801449451336693285408097936664028421612646970544569019811941498038731084327883295423264610211242491639788173903123872635514863330837136999085545760945916635382324840012534376237175629752850718585468302324366646402610211482298362086558735977198876488733835789800319945823350443288219606401000856074685901197681264402998899096344914167389471102257920323250114676830814909330932017482794384449047720681641588331632286299641151765425517132258272631355477437902202527275725599439279577331883514585682888408605733288746144880162589706478187314023009650791398119138193626137311095663387181176456695933487621310711256444742015149022868205321254856884084272712516330912238216380841439454118828008967949216233329186576541038926586124633567393647271706781777169510162797905728667072818953462220173222454957942696015252834138742428184647179887954313214118482905471101984240624974047441612358970585948067173792067759710236194200950775259879315633894439288191205225197769505084667984211785907123322755493215807596586949252599414992506666833494946357189168866477438244257071321453511712950659325556841058625156395506559559403327982723560866031135608277411082324055078438011500473278461441786221929103054995991824177621838910832962334360581646399799573515996096162505627628431464573916779754156729903857274040934115552433956507228105320376984616880563909437748033969614681762974206044606840947465832858846587389653956384672400070783599368399619406940326814263708407286240691735188538741528814246882941177150877227964829200390022974379815589862272297117012893561179119095471516521115636104393051699144096722316523067062962545675752513453428832555943984117876117187980205145088326089717904399790491139313699303042871100058143003777240131245198636801621854612975955634204818718563343315905856970585282617366720375460523980918089307973975921495084776047072732693736002160331715113550664407558976890317850399194365028532929592238415891122420732349459480327770673681155774584791924957246243105696405979264087256652398023898463805278769965721713662120614627289969446814726623952984963913089501806097978019726899501727355815760003343926748193798330502261674254636354093863161258182811256172379665911923059648908571080739224817281411230913091814468489008269703237308652307949127737509897260090595219465378861066105016100555234040278292766410736534572164031145813468702412683304538062889364990530075629039527841060963372021867325386214634601748071669262960113346048876687521102763085163148097047514846888624473844367620635419132447666154246309679380943446662797658105523319708819707025644753375065030765981469642570931740823851953764646958109362184860076628227595088834734880014658807895179721051857213801426093931929951489746466249893405164390865760037821008273916497710839436105689119696112676518983312011898639652910418352400556531999619487380765989587305959970198178636960888285245724438599419363690041548168770351803024481296122299901263003099445803508287046343586961789995604873851485626277375457742223584366566376129648997804006827120239794672347203464376917029583446946540486267774835444188349750790964530697980395141767869941643053635417399235885527546272585810418224342158316288351371794676967063936668467666939904979332236967731504819524446068078144907013155508711102275348070463317020875245923945723756280507880046710644331196305337036898045335910856089257098114876348412319994313307286775686427958884245145678558116468743079987893686330632041963681916643317998340342756274884302325457499286871775701063399208042504362418704513275386351153128121741010609500368170452736174867560867957048735395676594678604730295593840891357892443007665696102341495697526183282213101013816368251994129681592721967942271315480510402812731214440500429074564213849457256279554319336953479640573958688864573113102180461152583594944300613031380188696700051734311091773828392986337367373484360708354098346324235631960099549741309052692470133537715964727475422664393505300518711372399274146056363970647722038294475545114919051380295948829579234967566766154028081724232892314050380804306871123350323184488746844307361458406498070112679853576034973453724278400708016106467066457910602763687462177184863388479011367913368193900977564281976544948571210035732132536324703500226700083025347761804602944486752058562274143620984266088095846575185443299727193616883570584777605891260718033562167535507790208999133660199313300535194994843813238636675076419127288830330216026273923809469773845017272153223359643491953603048273527292264260538743698781503753695468667251096431903124247678687258892692409704832056588864553320371139177667034246489692567333210669152883677912788387064768291463888973383369578689905790926632231665529797453813653501150025823505253326168668980407547195679836774105021124167560303644141570655191356168851133389972223414004112639075700889328250848055053043007208837542427722110869249027375959481676402798339413083430730310516704948764028353609915673074306796245859994315441123671144194675050613494184371121609940289915190524028251533949059991869570313443528426014764949483932646040236568095211496484889222397180221119275262639552777075943904252019971813792898313794033897777600025985942099279927095230796654610407875426716989604589625900945780525672484009892769748140634466435743124695217935019296016443009410284005718750808919306922962532579112753527809621520838253271151988511526739109008705641318195243618682899826381348501338244598876320541325152760445445033619741413285849174606106897717181975462232410592012214045968689302066077143689990065396193040116503037717359522426475472139698839124814381173166098173159189056723263508775459496680662835824714428770441732818708704001068833985954378596647836871261895665240030008478230636383655790991484197930449473415385850438303286305716220480788216519100357545372357031939739372867097456005292467512788102815959066398815203684420635275280431595852556364719687369900909043547738484649995486352321952552000460515523424466570305991971174737658134289512294846931084386602321675808638807198500251537983224693679469692306282447793451699944088386297567293395628438595657676054998291992259562725654755217278894604199674705080259239953452890394170995141010310126990443389674826647989861254562522842994541115635953008695861061715973923736908440868323082473179043567973775993947152399180139775637176750835084289108444883906043125500023193082105641974690832837387523198719073829652432143562952468405590721132569391441393294008451176774450415395693091630217293027345585906686590517428751838986594377916870269934785538409080814934035588698853150645446286752885051949760254432240559537650546545341135008400259778315116181922785665258120355253774153691079545001406094064655686058966787148096611244361321198785296650079639689151389447022995681014656051881178299956383179603277252495267790379224532971565404898487721960697927897352054849854905802337823375811459805423673014307527645919000260614922281243224150295840571375605801404083219427174503037556238036794528065532104867654547019039227116165552667739949305285810376294191872452413743257417133984232215684184642261035408503577638616834464925136515419936268521900305693887278301356807859984666078214113218013321835159893054314120451641649134929795043658849328934926676396043128793492825318046328933108064907765793154498517798637316665140411645750811527613397382861314150728092288859306832197433742864312064807900218053009505031077598758634010160958819383562789901782973937320418023058452440921261694459713497227188292586356934571659735863793387068040577295810245701567425912863970152691770662728039793375611522725017204837649892008940335093117024017544539500514657547709680135298050573673957635436528406428333768694367628545427209596630654160675619277788703601152008569959582331061548671515044673623066576448976051635376890452288663403011179054613480558880744581609534223074897134470134915786623324737288612907503716534432244631385376860465463065917579977593424511190628053281819633432565179392162712419952681749427839356057695253734821546315935082657295247024026956264391272282157739943211331237931206196350352740405300361886162904081243499099163189879944350993701797551064258751070230723481860451122894767562273776037497652423485584437513816363074470141539583217120346930924744691012432369486261496682900007823198714083815860209669934562252923432088570229959345918635936252517443127362926884920125364280679914172672019676625850087865856038715979781675233125793993365627102758023991952127467662959436645801565733932075220555346449800821815633934530064283723394987355465366979238155088500817927786471049657531043361391806470846567654692174124061400925276376888381639883515753091760575870755756880446077841114270701359476540994971228933621630875935722870740029606495473282805419990323894661044727990217543641713628102200152533552014879763323851406237151071862738752311887509300598724677155733396393943315235394815739195502429857540065976191246068674448692991472143928407909434212064576517988454575499291737478798556783447599697030511805488079294810441484420319455229360164859457975771387919797723167803036869017252842284974917798558325391718513081980268541120040646982685594313393847994416888302316547994354584458895659404829710620392493728364829660887447533717209226863697236909940211601251636722665787509072260776915343343206530582814168107202175447722042875345145660301159344276711782350336544360942063582034255993026640885276228622729661668128038513003128567709192097294324117460722079314834076791653068223665896716801034150187389293421790929565120802537917961623002433683420631959486626197208812371625507783837713224879225464224447873246760705707587246592487703873660648524298326095749668505015409226384997020846752841573583991472046210229412362144576682907951080310421939336721168160385431599746786975416066875008185261892024810664047838250802230142554831745101891465189710965306226634875648793591494282876377517026258300505306670622049910237484547266482639737253749802064289716061151792942208970910359204766184428973829091695482760249957581451234211519358277589688798979498446745845697591967417899508932520934096911917377339158402553137734394046573453630735561879501433495387035573184519612478480275060551937010929913340045345891255244393854265558178309102042689648592224969322664980742764362745357345161070420724267985277026421817871850591655540222958622288417496038541274756132711795831758196448872240962047776156801876993624529732488158632822215656299686328590352003638468513315029865830019342518556582448508777306773009399460665958514076879413176020574581504518137497209557495560819100946447206789136281458167153217035407285543739283242550287626779154586263774191090491545517886433201042434799594561185544108895875116454788159783720656500948511312930880138381523219051366512660447540914905867269196779535497618979397901763175141279494236229271682187240965930261946985285567448159084686682724907993019657899370360275691468596335896178787021825246006926664954226740312783941039398016012008525571834529327900868771578779501240745850522211263911373294542579655605873953728903331322937556536588941560512276827687305111771634225130922975340925385246380370728669579804520299644914490833891852289630549794903944782784900142684665273411871471678336733940938556329711546989185863995190887290633356013094984672747594051708990445627170142385133221690303536642704048931302611902686399799081191186140152861045754791271202453461543124432481431476951867631339482734797259819020626191175360776600833677804612058187772894295646788738254922950532706895228183925814944760032331550646223373843980262126970112044032698285582139621277330023646343542248936936642768420909209374546039620065820106629470152832062275006005786798592132484387322003772579025154420318774081611578424195497224214706549466106838810347430200257927452718736513648096717933824539348474688917492549602864281480564634172166334997444120959715679920690553918371918801437576242340243032572840763166070678059905691245496486240493069300990997801381215780649992792222416037371062242682748271365995404910629530764881527909213777697766313635512278254730316220117482447092978364570440382266524595098789065785788292422381717663421709006820673895984274497338963265329973266999570009844502053891070597723074366982939934837512780166285746286373323741508269560872997370760672991369690994242698801087477051179095726718162815037341864311278102009698302090121666612468124112593457715495949961488797782177524339667140646499377722967158683009516341100089054252458160220306303296660462791313053871820699730154371278098003274455789265256431752681746207331801569332956977028325789264143650007233114065156438740024766931918982201803232114739385778197251909098309293786580577839301405806358833871502026117447860440349070154526686263213515564997342058613789820979707145501252261488945049219331533267533449084102951616129156013721542783292496682799821128216512106954271439807280452522466245134626614656321077411740224326179832288452642976934793981285287217362490266213543424224552227781306474188793064838753904282273289223136731858999377494050080020706908706085626060677415249927271126687333382870418109295118383380082974035841319741434309724285884619986448466065520399152853664652155974552118172638855682122390777619706124393274772595760270087518625669799972938879415186360676610785195098398881185234600616464139997799477922850980015382842884483824160983197600307459466421602793653494683249572929005563834668352979566762565472934560557743148517050262417069238075049924085353492414936693113511844097038274366900333079164662845589668304541297253497336336462379367334984251754538091653034935789629160990067371834757680138240694033089685193860317825845552447942392964756754149848026684623036363213811226530027482023513721951713551185577512331007855764192314614210508320919623014830758405341298985044681743378708004229164152385431123958342098387811246811198468782777760172731479382184976323209541275840732088012767652207361886455071233822194344373895627760010996490151188357114895484953976701822187507138288244467630942610615278367702276764476643000991227041457399282032164397579895127821989214275092939292813225086633665916216503634236199177466234327273511905405917428202313976216451708158788920309477953904923229575036765273683967548849993308664093029645819776061967439777181560931095489999932853530698279365049893213233104408276576258802340151651022681460257136871463788098295110329105757114081162310180494393008288594444442550329503694009796186774980781304640510458387064975102284890545613651823281173983250354402193239132477139572153855442681142311455580984344223990342099074894711245307003679816835566254321996965870606189309617766020480528253448715129024329799712646448659465358317009187998153193756532909466089471164842984468528446644151976983494657356429393488837909631719916327706926514889269155825243957351528472671184111336646408342185409271531845510012931017839915317391431901416203856430918362681079188405898424696935558070985689645061481004504115516028788552201273158662745423707600670344760130576590764555110798686998249726770791474396095233881888332767776200350455717381784848250155073414256074438767564168681723976016823401370403931141502674879460186850629424661717808949359705119119942268653587046190535186705600211041183162315577513256064736362582456216296075527680051398036191073283574338542270224742498904665494232090692836543183934997292654855641804165610734192467406477610942621701711375014719059829082619456918465205827710087629433186320524352150682133719917271774296553680932662446073572681924302755340447715109918562216261797539852608416608420390140695079897356876900230372656935877644408384322086628245121658025556969748805686704481132129375023661252942298879805581413597155437814340900719601792700002942487097838837702393788343894157589670863652744359995161991777382056269781830943132629320914547126703952844075112270161748478854935232163580958486296772738678611301344117780033619648895913784482398139114374446150393021206276003641901402952810885998318097083243554745348605500300144851332521591439533971401365083740721946094005332427780467893134042966047582921938085410563297017958191988724450204617104047508739329131888896867277168020303325614672507558802100147771793058376266963224574971061573180392227783330179003607972887857309904771916975510588962308446358476728656786392473836120900746145439367347207755873269305775210724476699587899445888627220199370221536289733881073255673724260101571866010358340903986444163355774648891464423320487651468347732873744408900923823150782437241415149030029874192875543342499476724447548132051275627280986242562493663178683095072200874415135910955150281689205816025653118750617691489525784754335810214843912331422644940982063560715053505365279219561968412795142760119471770584068157909679335388364639875326688324957486142750101761879538270922707024686912830743951219547449238660606991594637050101373061269918308702148153324967244032026350332872696362702352940259782685791250262541303941301682358114853081444143610657823925206928647581858388777939309545167756721527631668412588497318860639195578074353990049070471648954882100651208308319734133398334458348272698073096476360240703288237217528068753546789817566339900990939144461419143194174091952223227373165174937187448574393847176947334370646435602746270055625759324626528441582689627154964060550310244977630870244786895919874517693360141398093881711533874211931903324318088048681711712465922099978715649240885224053083104175576780463019615558098018728733752363140875637349674346385370069361060121118417716660503256468480050025169534482427131543341271949843943619357248042416041845500592614958760057675527568137664716341424377855777321038699374675662837041919253264544041113563145712426128056157853568205652997032571731254633050633416148884542083945213053142296034732455653216951938100663030406877636384257147659737600070416824216557467868422896610556635896819644263141911056442899445673276813116095782789748383452468392408244679730124885990536310980187611836934007300409713582739028881263507278689276362807861202444457325248470849182071124801460761777509844725731274583714465810508510512724601093251727861736347867063146196873219166309815895039829651671580321217892040261426333853336445466016612537828150637548624467466828519302178253844336728167938003786220728933008004424102564908657253496080818975283449966097464580903212986912491593466610104026919294117551750956082308954948449684057665046619821204873517817450323764091925221076105499064019698052483674277291556830690034810819745589983777609266470134807698117586381545407598035063937124269326501698268094994417748005603373687551564553221613636187828103717771095908042951978312070295043463549428881634892354258837364409416355508027531656175390776015274918063432560782587447234796559582413767952558422979842989714712620411806212618268669254892440244243076151387345241335413154878477450835948836715404946416482019373477372362389447111633321119645767747372247927877408799060650761796438430734138160323529376921939545891333398265052029323620204302198442799385643952782814711523741530709781833742970233903876017715444399440303586517365249861691644036482146916640474934155943859726598613754850502834654037104622717052010012629167805728268909175077623800535778419431257590533124823499797451209870434144846322447624184002985002779309533102600119159473060142567681672832084828457063265771571403540486558913577332771301970865220107887293279181225460066045454196284180746869863492585448903928640458827921703091258308642693321807543620751967353514020039077793932220529798099175111385454509294624215296439267280327487979571238082820304733020502002009440868053688653079562047173487314116414787382038045214447038371703161732917186334915233027303944484035430547651183231806866107246372225959362102175930213563504336888215616041373338544172283690229403679010361130700227953152030581478795453775351724128136000210028000456138317628043786989851282682627315316475728272885146658160516046569130610450232475683067069290694682109625852426628198875645590844436548977873031843743579797620845637023058692054439878422925253625117442507237294595386450536518973527069748334448363995653211874873383162433556278891232566927325912186781684809576248451504620403020494555679561697583316264604168829599734342792052363813988502617377805094941784187141885707027241663757999001648628128458695142098636884607342675288217426989651880758829312968801664726414877812714342628882829765168266910028093056946864903256770443127608425014336921152128032937408153432561158815779985933091729478699307491224830927166382729500340010857591845471765799145511509943107795054640330592836639315010924174785197142986655055229838906286970991763330921165985285904843719317613792280546947276096054617247338450535483546383242191426385927032535807598599943317041182382042939094102957078166149095669288164976078912039396270187927589678306568270009698691082654164849363296834610252208076951614460516124313550010807257705625229996212864845045287144762356618704673707149680474916271683053081464225551071116803194582834420937407708317505912114160185688609341935556149289445686914955920438080046023123235867707604953146730424355409963209122806705771180337564635109862603411051450609894487897006300048920494823975585328931000665618389520679723116826380699629743937302686980273384479848322388554277345988582499234648653818829963258189348049809947350320165895731208283533585255429340262646774267045285075488118742744215777493596962821521727580907122451780077022855957318846532416236884848605270113431323175591277079711261339945102926720859226428254354875409818656757262753053315353808628601720798556341612444974485023328023931816847046355844497537105951104202646282176053836440405776669383701896520300627806431946479454565796096328874746558346731058629867860980061257380639304627074562109668317112313538203741285374410288057202574743638474814484845119359156272041116645502407267691019198968085164653503938635753812165251851412153516869298391145591195891101446186786862751477498636131445393178273009704058147149677674003782176199533238290311343121560377033341113546893889179583165546390133107100899722064481169775913534472300722799510089139364144550872918297490752980804306723624004889450243233337485638307953877272108538282235785516645327032919728236574117179878640235381345056076803436379597941033326635846113420218165642479921637384823207083097744454418914395212547934400467383997479639708035210472637180093929682880055075934849144113782195499867377589168861197673139479850404224796115833750648503949578836897505118145013633782314389924217854456545583517387946929924646567355793489903864125208687667657571307843855460853222708792960590567704844631380451945208881570323859793627403522582907142395445021477627673113651210084108712631976401208685249585002812589573358666267548610293107534440906854566127216558611595233605301171664115939714088495522200961416970737282032694929991532113897981990802409163763177887527688538920161944397713507569962517590831015317609743376002946041568654316084806695953210233583268482714260557558710620157924465691853121228173673351839598107935761471375907874482678872542232223858234610336562273929721393159784525724718123420635364939713913587694577432286880280711437491797271984585172971139818773303501053757365872361444822191737042743702213413823658829348595022677671390443247671450426274221006245741904973199157874890369025887600478578896815599825711417194775733562668203852202677371068902895326933770382620720151509574330968553565486737100983949453850650891764884338268046412250688455747097846386549636940365033047543966613367824370697119074023292317057957615396456533740856832886058538632690806386245431528844614395264366027781225038203475534359240838058891429858706891263931650936941336169652777848031906853899877770667439195269826556958879279532955490507022584524346764797220518470785067077419562410491234549619706147247326699712019871798312420867850968171883063843283706067168961085746083345522445647839791755460964558686969648749691796638611915117524024482409034501826770874761528181903375606830411668319704956402122189528899700768890019504833939390545377709550148716500256640611712663723439379388927409333698027222329676625802853371696976819801355793225142906000402266905192562454663125886269225970316826540651281681632735630411854066154803237406217996193850393200650628183683714039893153204445667029277880315719488853002850816047521316509460136264236588732622062884271142287175176075065430526691006616031759318412150658499904285980080066676223426894604503512665012370375115600623572127094042031986386787151195047519224766536796005304688770405778664489373896663705312518999111364713635917934079142134342424144830710732325316941167869857151861939202723316479512674962388524571964909778391624898478939343165722991189055324875282355579443509021493491876227876846647731158935721277821217880815976094038981184055593341516498002874627526134622978843732976106594634110287271836809880383950190782454427120528334307741287118378435018100668149708009830467948042929817858331080773629028304123666911796181487067102511034810373940190754651634053148810232068071109034375818884769369986780547872557885742491105661802928854218995802155070626682093532215408424910741756566461680254085828231003006164564185216892980424729024505735418269443395627024003871268720704175860967266661572033056089975215478429888418563556184280112724421312870921883971117692235430058126160434908224727890208646546476774207195880983154754728409392309629081713956576395906418592416257910246213170862471357312200078306240960880864759261899460686581119830957219919575219410491350941653637451055496757514842288859623303690106454291106615039134688553885258000322974556903028953230928689853640881583854459807056806015363728497932543292120566702424215401764937324695895215256811362970526471916546816004478077821595039003600087958320873794813167798274944664290575655335927024871063149384531240489211537633361968072539767682107566332791512259285112526041352404314103347792008237663467387033434631082430207836294653517431746905170436404892196154211421857439565128721024292424082464031313541647326057245637288054769304052168274010231179063692909782924566655736875152647103600438075100683111446577175388042004643116147109962186467402105389401083398934461960416083221021680718620590769723417885437829562455798717809497910061414977066654392149653050250867731012340542409709551852479658211501394679040291165007575474016666068000326805549544145080035986370774249495329457733425493639227214467788355165401891766438186900453289494710437363850534745755737491876433279682337681504526951672317298698734090715076634763940257516366896881380648879158196675291392897567928938126066053067920528034455316498463704929478372182821154979967276852165077157313828071430291191856108468106472650560958568408994445468811750745247486547773973364326744953146593858856561849769559505999257444670276924799795942832530145630888920693665893010216314005099108583517744581992884113343317696684719642925056448714237685854649409488314464726810598465903360610181749165359803499038015267853385662215612902640713929854731251231818962933856150912135881646795738720086042247597390245408561779241313554360225220621963442191372308438578839057982861914645972737776001848623702102555624656358505929274895194385323980893564570844192648625894736804451245035054878899778083194020934586783781102174302077595719150478358367450076321095228886494011840253827043456948897224530989935177773702164797492032090850123459955544772382104566701287724748957137313311880496743658301112636377474335124867331667711516993268907981998145582727038270073806656494301118168554072913901284775927099414304609840294179998806696363024944554112895430335542396621591632596868570716958998943576690569478024687749628692588351501075263222978234236804380917479156867802497910896500125983134206770229252632162807059926381777673768692396135532137952028338147216369591635875655459011301928622315359680196170836970845511120225228412846329451959783497182795777758124121245560694077877068160375101971183563227988768422036862772388254285267504773564179907282890875035547658589540777901816773072198143436538472216163050083393959979505946236558038734854387133742507082241779007460134836680689313087576946889289865606058921294598971442491990169197087275527275686918503326560879845719206746935722506863604516746492172180490179991583431544032486161026427698299005395513049860965909183314812105755782250060502234929496414556731497465232967883308732278575525510433310804464790457046470042301150572773298882343440642301742783148242405438622085368734366596153964761670652857452100743457983440810606172661773055235523462357570576500608653773943137318484211266855800048104991295952424033108579324469950770047248701428805143885650331460139148575799486586978018756857001754378629338469844078890312394723134170322862781176919874419846292820519805430886225227952512598527419926664332398353828731839922752211528907287440986320281135760474856477334585017483878696141933606518409749573877936371510708153419898460379595352465006629762228642029362398225554996614602530794340596509436570919788712647670050643085844905623904380581218217165672088892179723696448901427243927204161331379689457976738683922207337238575816186256080869986586600337189109623990462719333431491580812769954408951779500461703418773274284944843633974307706241670265743478259239883364911332795554271380247050601149194316141298832189703559771331545507805010264317485190140494987355115575234969445931090493914484607573253702650967641161248148432039765926226920758153287435810160863992705943714064429428929343691931969478467573825841917379853007575168956861144956970057730704525488382189531208602571996398204012144189543042070823265141940121324763112803207400049140555113155160103430611778959901013442435843623649647452069895996928486213619702166758433695723987661967535279356279958735783774611446111363780701849613413980876123981647082236090302580483541042484201807326448005152586321757107857471927341832693134447819820577017215977240638248379071956897375571883280941584854775273903822622422038955816770505949128208206390662234903761069533199260645509603659773732010553164187909735833478908980325767925311285219613700076425907484282049691190362423361210640307519018918363296383697127726458005285830754907774459286317476618572028096310592864904858703034072731174409881541420987904182203525979859398237268581738179246475915228311578875677476066975588567074106135822839942526330627217705623867616090704902693654191185298653948875042693683742771370942354081574744095906082630355820691513218118408580880983677453759056979231577787833451920768591771382709117126230102004989561812433897944609578808165801185302995568445098743801126597717290698943852759414905712911507205242729189848262244342635978770355914052159744698946311393341361644059337380598794424139376268881778348028675212805373164082216257304836823015526908274192636392643861971088018480933051683801043302459331648037268581530042143168813695001536211844938368460412191888971926120523855374076001767677264664792225138229229416821468291105623842722856648638975981556074922567479843142581681763924709033660566986610584198657322205700338991459655418402299567224809049792147893492071552567002379893166523504803668884840052577452002740190353169935789382759758811380875249977450648103420283206573617813310161561923712260476553913757467232593896784361313255608762094671793531218026213281618372382408079156037835181431003619300967801186310624849765103951476425962207827427153474440484655477189371129635211105124607657306627330872242868452388260480199538948059889390431444418177890614317019709878464630658460687322228717943407596938749152055653933128094194680686667194768936692276873354034682828081647166431298392367435456855769223318878244996250832993509119492695882468656223159432931068733238114723522512764420339268428708812964446393734698817679107393579032995553655373214309879390658718620617317776478271369225225343795629984621099889239358373965536524409409276330038622477109696322876442138245850874889335436465974402933302578468072161833045365666704314602630564911542381697081860958591955654280931681256882408844285131854231075344393349028906963319297249166922783726297370990666451167324321498704569245891955472209436297033683388909486599301832690730454665207052281238707756721419406711952868368969140116539758687797813903962078186183509279234804273760007213781696900078350886311553562945449203419859719191020607539716919609977507649003515246526568329937097747947693343590850371512695991986010858542066066089132357457854323463245387653247103768773119126029871273729754147799774868633813680624236646181842053671485075029061004660588087162892746318288739876631710183387195102457839861030979407328947744147679817600887629231504245021048709867883460324408078784003809380297769135763827313754738324535990009008043024166621597886511833876626013871538492164859710900572004455859957355555049395721455847712979135255837350951966896064715997685567130728220839582565967406785306466658577870588839754181960505972484365515771155114380640189275687439095403936718652401588849203477373355422707781650548304944097109712505080098331227172974242775055160599103863554189215625606968903465700105585133220063522427569720341650721369681288647703425562219066511142053303705872054776547924217257548242726384930194767947604989004935143333085898902253032688283369932519842540423085514049117617481557710508413992598054790448513291791407290057371405316144340951762178454331588983130861724243807079597050325614337272193776584912409530225037344603360132506273774417258371711534958938378894968834898671976675227733069067829214130513504933222549599782827883072232930747401035716537737515839786891793316703584773050337718564636294433471458895273983410565377010690478728089786515976565280881223670648369229279117485626476480371698987643315024191637193257869779871305769489106620049903162037420739900639938822634788458080453377687849822807951586252645241447968531742201222721703725999470957331122007518558065782044514051385861271880805693820421938514151632670889373181266491926325220412275377962897505754641173953126636493863333517659950580617968136907541130860862489994850982173843884207039005061234640882552977597414085277360265332785269777648270940249432713111093534983596205506781066584308259959102642023256331387170931491243622545544464364809018108188033162782856772203392663496958498562996713186441330282676449973408917259353741437251491056872665246055144541481920893322653416513241710840067917306024695483635502920060300346137258515639732125452935674298175301994866538046361858103681492033420867284205482609631028934768039153431656291393560736611345455872004630106674639350399571689715833753013062178383014084742490894700544429561421057047434737842376792919307231315599981465174206313038300773368707920980218315248741035621549490230165172605816318029233915132387984395317988215088526973252025462396171468975290900565610570813516003731366760077195233513183080793199761965812666246265913079298186095387251172043100803062796151707259062344350115493499066237354344535829360579206126988499314722461939713222011827621118242617235043866922089874543639066050604336264995632434301434705020060564249970238709529448745567867523588335930912815638535324857402740442787816159344823398152517200919782896400130065906511742471064313567598431923170625588630615282466945073397154850375838396668375230861588748852032525044190460200741121708740711023118002138474202262809932398077511014756345452586326211950672388307544407060278170390355501100459849758215464603223937457250142298139371937237926591572516491477149662420812888878614988971059143768312136288642479452295542994994457310070668063721716864603629966434201847126808179818028896039940596086296071763300243562226215105765179547857634304855918327861155350252576296020631425266151137392017998659628037064821917013677928148834691043713820411661437811802642146135314080840790319687384562146278660998685482770782281172525932661935838445836014709567491997370942663991261282913306262851400175766537599282972070054149672642323559780907770993030579738736281108316150029523149460374525891585302195471598917769816822471323756337418592892083066332854179079881019441146292471110637949275871136193439590503453309495588925450296436537719700220428739204224066328380932942657223050110337147686537329343827148340901530148552763953329265497776198248305526324970882064121854143481574229971569890970278094951393187274721843397617202682646787723454151024678122040018818847247482417163869086974886441388544821235460109774120306116627110092235570832183572374526652439618358669838077914457001114442239461289543089077791566818302560213359695732817729603461815873258868263261796259114597298247959522187357124228062790277466506018547633193829113859145309934210605912259393793940199100696728444203333931262947275752920850522537685131735573874253075373642407381049035212613911253642137823620569014112972626602897511110152692910981540174959247677129894686769449724480676112167167649326939511918365232647117796225958167474261535789207890783672713399107234654828338998595185925595062620973050995174265207352680529647513627343502563402027003374192788225926843531956693682241635876634185087924350611847477189829562934710694699271924569385727603501682097626069744611540994188621186251464630540851707002825046801913767553290616856968860697551743345589595979096236561513929857076640011203598762862618464632034105105966517329377318372050074344676704852656099391663503474916035961098782636839185897497468397524505749118906341217051362513385262734415290270056443605362889517886272206267360542600767133194507033533231944619496707624314031747605215911149859972863512865752161949824935730023841161952941912049262937073497250927387196012639289243914083780057468955114527726762731278961302292361966970041356271779573969186404543524619075696952025040946152584002758212978086448027995030406207894387672130718512300864637061248910885371877729660030645632006691857505616422714163754286474126642427350715445076995371266286339364627758727695295170428616702602295889935566365893780225162107707838995717020072236902811201672815859312426436591638087672168945961548348197192670210013250463062722257544982672548019014219650137811809512886013406055674763918184576896514161262312348051513488223347472301237132705025473644828848603415554888271768206117411036491568502569564858999295439925401030425329857506521579370737691701416007415548899658893913514684042167073592662239547994708604948418641908492946225005359738175376995234874326350595612370344807913017211341590274017842515222062597644748766660666374766193502304526468293890549269309084722914238437158779469070969229421189571444825750578005673938809290628082729777291112044231749947096557065045331808050269525373521020834199716763243943267740843973961268210269036182838193753632710158723406334772202515268427329944915753267869085627032069359688610835055111257088626174201387457286955862489957515574760362409314092293079137476492412929897280002345863286296494030188232718370540694368394095354382209274440147748118606095386817529664482307789756636540764671686812246440123071145968629919911302515686175264996206961583471852208823099670779413757001216219514267363532230983777167122320681696136098701678144365156143203821846240769176486656078813050362633304336513138544561297007592314897283756033998680223385886345897541024376593217206319944001449000678199951376880084622229601965408544983448058345563774451872128964823612268225714447667485059372201798560794435029518509315478270898091478219522234967596311092292048628856785553202315691952840841534913846439101771833620547380570001887049457297115378998100772505885885494411125545794625973367737926433704830556634879187654938416379016652025857398415673000876166732604320535024703788117053418223461333358492961823990096315889638155093111551695731268670904410554927426270032351962459310301959661273006280773024752055391524280482477672971939537466676329119842898675808089222615360730719449004086831231529784139724265007062188861124160425055230427984042777835438561965179833923760996759265594129664698587266632745589302571048477010752606776069496554223453390023882195072876721076759537833237550794865610436373108684688384857980761678797836713671260245559696288357741493325347054379828532442557028581594656362788082424257901113755845612758824130203248164819701607265312993643341093967020976563397440851087196179756760670463974209064335515075330190174156435829472493303464003079864127102342944135104348370268652562878059777429554724845639789963855491544717333381594868622221525001666171294953051058619176001212032687919047472062246615441783003104917739477009669750706695017085862793384008165594993282774508262706488561577122726041662891084652181625237845010786544168832853309741696205248463132817245667333018222362884419952857013458935609101861004195067496446402112269120824326232518840053651541318228681763466619101515584058125391340049621752118634609969232049729771232580852707503188252615893328291132521762047557407237960920854652643552434296976486782095684905350204521883933840295011960682863622143701175353739140869924496621292560852286004865116150441527531787834448296227166218650159890586523817117994445707450602281103890013088090594147299804295631832179186069009245097909239674164952970669804368434807345522279916142757084383202897422355497965615230480421498606533974994358256707530569202781830859366852596071800236590762854258659098205996151138078396949786505317806917382695267422507902605531676196798547272412544116509203136118915021018828037484809207157794363185266921001467381476808826370122386863602133488909450305204859789051112888742510598123882054591028713489960427220590553418743311968393618635403625651878710516918873394271873902775768840365136406067702145090649076967495982213331394528396050575340851464697860517035166622217570013437434800696714428012255397087021233124168794415643186515735374067106524945278151437957376647480461800561194747967439367680012524046523288144765331852612379353972592585644948460017669408195469684197653409189608820381851629930280497752068084703770666006872164398052756394013144874193726393405922210597748635740196095671107242427847504816229103464774755449337626000396441593480914823033939918213942779217962585164552444981485505961384198432662595100938400128135341334100725308573882768079513124302989621865521573012726899597972670317378504040618344118065394950222319805082747151095650348919733453840176083951294972275640212551691788108777170449923645008869055943590050648417219433912446747160454761463746744210205364160794393262843667572522586624943182528127361326874616566562056954633265735780294489476274053891517786615405222380019475819414167615657038733387675142564311457556841472690243993545120901816058441395420448347678195560323531778307888710980312566205697107500072814877915666289182442474532839217775308901878815728710013094931369414359223697452231690772090435226386270519942710076053078011036694551355125863631852095061361744933033982288680102016622600814585776602203388423393039015773937507961702231873798732062847851158633866979877459945477448813996027199944672053647921495085810097148513864056394349989035206297888262388006376406661658150622107778592801614287153816166975407698733083408243528150110522616535072818679240840423212626554777392675899728619005879162543089600945482175375259260550166042639366982336012320024697253496959239724462513325305721438894901679763901438018661945215484772636619839983899114301756642580735953463249841715390637302090465173421196052427381145036508248732742361205196821343043742233878010709732676696865139717088588562866346888614814428353997974137746420243570556628920204077234980551579400178254660608528352220148850709735264162463509890869508565876694684103661641944999343986204296304402308150334834790497064070119597369035028753578594437026516278150824903768310653734451584258457048825509502256205494650611152627647503317509428705668849874823470538764010393088815740371355991561692311376842693937662233943223632643847109616216045396271363645703383844893219514167275225343050573897990678291938736259286066394623924817804877850460804164719069774503185874579712581958833166289482124879021170085976502933441445022946428708567594292117751260613664282787246894244180415125273979865226037938887090449579249305905062876366356978967894229373288202706509831363384985652459500228797396433484632471286333640343664091749140454481157686800336808407556331808599676279032128701522287383330338110432479854326284758213502289744679356517052580647434152778737911755578244529414954694556014306229395496313155400911367751964026953730879549544572752732982084147673905542573738380906106569794832339326354179991098180674998417403707279870062443971306569460977306984796633553781065982916694621175776019421102424872268568646683589766447768210738651621737104737560934135815811378433238283021944799588641133239945984260915420870942011811739627841440193418163913640207351317801663068227578097154466970280027492047319799787788701595301628920449330725170718017837218494696469688469960792624077891160833934037017503499487231464539563624235001494740464130356076069928922045708058317327005421688348864615276025362339414266634924773760383170292565925628660997034925497975953878951480159034531763681935431170158391728616375211943599911382140829446865571805315950558490772837780646117333953161099835648079171814377067720895834499948045250491246208817818745982807136141053151659146486049308895554126060178557682733517336339333515729267122064915734838486191542798170077745984319096940918286856597636184456786752014693558862107820165528294551416033780887262106850574087138956253208425539059663583226784472329149370194844130077045045514541202954811497751695808945245221334651510521966969307171702634264479582786399467401663450551787746070350066143505354069287752378692528268023288391576925354011721768785526221052283472897336280670502753572494357272258731690511833558904468011731368139098877930830998002635714091650337801541050778750059015104321256570043298564100331595120919656249372733126340678886465889872804824391250859155233600630726192942440216567137742591502556290878514201380506600002254816671900868075150274780360201897485489851965661064123375527264534702026825381834488842001725670589761157599760319174854846847070898986579910635091948829444508449903059884465270030752743921911760871739519710834688840185558595315974848482044310987317503530591601289463520353861615046976942456012299644815502011677670357490680208782644696992260601285958183553038196813390457934354755249735377321311663708102294468729391523755316558390908646064036943083460620285987577685709385339794167152695942650298003934223024931689078289944732277456009344055002312458200384114264255487996403102694231590520146328994818186755966318767445617924567011621512891486496576218533305661141540332663802860552595793209533148257259002735193162273549370978482034199564917110048025285467681245752653078270931594220208133036672603730499999861923534714926459310712175121930332560952290832706838872056173704379476020868072408775516037547817581553919499674894397164852197994876008112854149262339444111670650782840955518727262219203902362985892423722967788721759180772880189495146784470294643397334499522722801783252988659837278838263420815872577692884072419607980434866732157303174896135774783140190920736440472306080010241335560243547345703485133467636376629771530647284248554546102744100344478947704805640297528023412430738189713067715329340803285283210287791416652036960667229815377126830973278018032361212421519844498895862220308231683025724971391896956080331005642224267706013909910096836369722746442043656924087203558745398908248497215797724166110679612493557261352558507162015982732469163178754948818893167910898155845490365744115550491026597966042180725714196838640972389786263572160131838020322796358600849136648018921271046427690709690997109387813852279538943720857487096053053609945411947166294147102613366960252965856251801453048998361700430000540743286120731278977868404057914850395399689920930019803451590958334460989392810777373190261722387279447414641026447908639288344012238815896924256767892007761011518171383869193819596322495566860008631223039219088787977609158867956509770961964911998250908334256844445593412021169587578454065320201756975935367991483388236817003761481358838250602904914487472785036346290426146723173822599647333950715832112802153529547549288683110556848131847327910541856567427284863052463896339181292359978407235235368939281905634946623509412719063671556794540024135867939805190272055562775152796536160667161591176248453510308264608912104949563970560863717860522387018806348740611948166000943527027133517961570436189619095280119083573598942147844195787413373099121965987065899218524242227547157003603973047726244415270075206406993314014049006314886212998789005436105552513704011033714221844448587474004903994446612180795078931320250384532620445665643412382941270037792196373763978230290217928216521760485507066574587350029941807732063028552914889116584248443341977235175714812220632724656074991868999200509653752645634633426905354989749601125399273119039259883716374765817884449129742870942759991431247154552721951389541267897617295927064952710962620561875749355180720768202761979199586307096243139908599598188514965823792028615181851286868992133858017432158730736737251507883860832356517401633331034729768979251367122352690882721311374577172294372959093554146272782071983323626712509155871696358185878849431873061288186904175434895259703016972129051786279274415793514941839806324286771311088627077959071879174726491924421461452155235360963103029606752573564146322276917777153288538801007949380681644087582999368614552260790755419092305623215684246244110040398022795402706542660563372469456960651666713084029528739853451065925247070097630963328926056021887484609196444086252411656503549761004686730562284974673901795075304851013616532058877272105823367613983826733523150925178261782673631829557354976970340903889495838413184180185079379014325960759681271719860227480517684024019756693535932516970254967701349763523908120914577954791603371996082009283615182322780310587098614077338877591884700909182169574667942938579303727008604788295127312630630199007848507180488488588510407228919292456615820468861634925980389510879857943823124268782579486722794794008782254891079156687585754021331467920524350639521444599488916716935946407546651499428760402974581468152095254855772054047552248656977572586400620477597194839680852257559061608113867714363481027466744949705033739439284060312284371007104345118539762994668638782389472102354445012622728368260752566637554358593093310811761164712743103329418165640264269096824677100683574378567992600607656441550963968491858974046964640186524435640995334384346464180961435845166895465529094045634809758712846793425254308113326863264314885885466937451975852557927248976304269616332332104242475950589011320566329101759680280134317664777168342975224942109857758650894308969533669078837660802283383057284259360841093435642244158980719010777933957149085958512161060671797466950674834679590879903143641518124298803709013792358933800677324455475799206740853538429510538210143980748431640390419999164713608140623418088230740889311087499097511647510633679906161928264979282921480257799516744554691449232598999209478713706343640933456265432908868386682343538087595053139939461153764642357027599630528467509942990006961150947659674819791682683179672867602999504563594587528029364283493077230832526186817432482818996105576427959263471742157882453078901971071028178043187677904819789573315927157204912124504577245074807220578170221885168348514752454850789833235737014982609695294706675902827175063685423026631755920652745860423015515666832071804976038461590243981701161069916685546534019745804988053404170952412323419279143440246168304905180874154306462228915475199864950995914823169309955847376307963490812505800886825477511674158715794114748215223972176358855311996215796955607866240814787709451400647517999830134540156023171703815422196159565358636530391412259155014211244039122730004138762354829524008773004621947573452841876194344614699528243083552555904550680844606753917912194865210168335357763689881392133990117332254421868298058004701781534169435158742293496782410061124249263190912081557375667734894921911004496497434136652854097464645154044539691019292770769244224586380979545361711171935917691188981141263765470279234285029547335935333015957127402213679495696377065349803019092422524357435734224500595904811980111047176502088828712044308461967740542594732509088612146682411254178057216166676465731905826523445951251458130121868877786404937485133427388553933963645322405742571279957789226641583465442261714987789476352370733081836538762731872609690771780841107223597379083393955225475041795766098832996657798784468107283017397966506171190894338044054652627029532316216921908596249452287160008613463086492536529570490579063254641041315806765688269976875967430403540990491804363478765646151686667080588902907036041318276126333012427241223533392755922227994515021551002495201443365130135239574457464189400228448868559722428308388097014493137656217682562341217397869518548927907126274091192370993379349763688975231820604914470571689342101585670207033569998095979966766994536824411200812427173093305893844011210918652078145467638806824077169789461132452631916923229682707282809049858178100372144098241099967296304446147666919994647185007689018279032143851846177802324191688156513074192722263821334729447110263960940976592228030541262194827112837431906206671858562602490020166472020386812688531964253033067598752321972987461860359674259048184320300609124514711568872638389910193044656464896920853617629954449837313516681705897129079637141409243203599472128965318509312763766284923477635462358077261361643640294729251523722296531040465468905851284591434719257501440969016454659014469391396872327605931783014921387549032999772554890103144578996813148940440287238799672141963725441443199997658013084179233985258164422978136943945875795457639637367570518987102215830781113716546384147480453697567000707231619716802823467673870986109966424963916093187114214337704295452202358517940679543569808461753302083082554686624509598116650926430583181218390267127259812502431841211257022342654503979447401511836668704315410836012927002226350650692641371682727297868011717609149734052284621454988919256039940157797730098378397779579700333248492215217634911916761873989191807048094279680523243472023809627292136021177391496781836311133244212204215033521881914649490859141875405458297745076346240580678729182218523907228883225917129509990993761824974804126060473512946754984202128468858870076041985351109806249776392621503219156127570639381226828207608239663641946984249968472270071108212574339049087781495497547969988852569487066420818760402834546064464629521208361471445573090740225502215980797435895598814957814343943632930970032282465742907170240936863837044551147726844416477071595808655178822878224183484775412931464406065056310898396046104099508430310451894326261657407350964123630107350068422823294220079449261066501009711123539844275360277090532345878891562801168622744710853749123626010780140453735977229623059314282724184618116962839744633635852893934034645293497778976089697624501726350961171598679982383216034435038668198829430470709076492437967974750826566558926526225671812060182372897396523094960735680662801009653824824479506729108604777879375113616741193069116857510323633978984432192533905156890233973558201960640063078770728138591693873855665720612514364757230249936040054080082267168988790156120206777769505120518274265877008691185127846760801885702979629302262291550481134121560385260408057614537777322109650810674278367153775706455058781203176801866041274201841228732905976199258457346762711945744783381097312757750101478065813156624601483866610113899730808175416075278980317804653522291838998785787487023645166175489687909099508384804737091655864826917890941477077799385338663265022881198758781484358123609522876604109921296641972385910444934648118101556954140218169693584092596241107915696263799380910450532566017189179516900269098910829102138798643882114810431712967329564474127392004696178738564343268184259313526119642889797934591645817353588042292833583346469202249386556355987485789074731290806616661858966775019349973688934308569727979639834659136788947106573601668587182102407670709992220737716198657087925347578285765758596569180300502706776922618264439184263257089944224747053436439918051588535280330444693001419633792081997646801649623627983529032006937154664966118746154187573350928706453577121021996550533289060156250325656869564188432431124838606635821201234616372305120232231167692521177920063953743047930287952366177704566826007227791616569760799146569124688018491374604523452910905671476138651386249424174353743060148539400169139609733974534086836402769994589066607477965237501707233630848411715433850436436421108657466063836916599042124372783331039872312096533165691824994900237332578114082475957305168344793651858048888340633285294180987643695596448409296265404943740452544434767393799193549019945475125598158319480340844245712798678487819820827656756220850245688939962970495113555780475900502000803421601370044687780678968262427041564418679419946328462138561596779815124434547849598266527790583260167728348014757667083782566469986748429867280532748536760969682585978731489138793995650106507358078591674983768841305535377977696309097021099786869191932543868745861284676454854382142757197026463504002684950570816920509183838995158884537987944551805936428957207245300530532516856139597638643882637041734261655096998086683875664666943912752183704553106216498827207071280212101757383002088428417849284760880458277405381361705240556453643897023392102118635892166686033676466428093517756471182212393096875376620341355405858554950516118800573917134019122024752344019575379653699647318462321468831898414528978618414213143221677820429001527790229841545218774290336282484251506034266585018824921391559310292901912876754004104486130691557737339374073452781499667053358140659706641290641710385641388743638804177224267788393135251712277847758290647580144917631658622222233314135839368261474896400366263783217215572701232927005524542016051004875222670391521159759247614153889139445919950998872878354571092790074264442803684962070624143747301980370351965477038214023835787788264698226290614744659368263287969368671335414034772534456114928534939842039123079325837976913247297316873868434826313571881934119672712513244130868140394798409809687744628539231389098528008864392581388702356038718519480519449708556301312617727239234753919866695648404956389942672868845225944833667434572946549551531189883360351394063001781116015075676749680364786336786913044548638529469243607838067348652450876446077865697464471018113684608527596321821441656807377207920129409390308278812265585341943365635515720700915198404392317883317947907648232157723876741591294873247498666251945235402272358539539036395693016962469252729889727504241652739494866594669739706619785158784363637665850762727824071857565746123773145634601299388570588763279272626769747179953437410211691102105407864086133747892427694990637669790102575743668687878568609326875317391937183889371002902934256092802008167218120189858644541368323203530265455351054561393079266339476235883630229491800021916909905574574182915848698717645405288726981153932130109300265657339694905178096893825478242522350202878944634592016053004349748581293183486631133535068650976833737555316599948437162729183089467538089476187320998612668215823082959734838111411857469119573063612112659007980178595628951451309256549095476064483981618166067798508136324733503294091940878900913817129956403210510951739609914726751455536281526644163205546363850912693030882489648546337277604059588782729497646486562672620401352685926600496261213779656681858140761791846952875793783381976922345153811249356086952843714707204557281903805882305871990050184053163466563374988695817438185647990582376328162311562483235984706901834930328731425963525971320082346622259510850126934625139058487232023580494864670549888985094895354499798038715783254531160023420811203531306774491862585513508548715503669949048082848713923465995925170228394177170595056367894799327132403828482877420000048997067398305401236265026428154400806195189098199543666231823416175100522194956539016887270659753025443918917603273715242892868204343963031008004269332287708364033305732326141943677948722523535641762488602800096095668449315120480718656671260345741189716540128327267237700187217725291320231639447544795525346654875932991042773384543054476671771311323062718294424127926977638760586882724005091182753359758401948385092835126551486947644115941446974507197414793240335004151209819905782823673121815862504317011338695726427584746720540555049785739618542195818678114941315072549378408619886577225266767923980939219265196677002258707850600106648390522264020632403495931705486780577161557717764126831562243439671367095791741155918874665782580163943373763658068162192839611014572620905560039217237464928591477846450481569547201228783631849215427469186917284454364396334558492789390663559924698943452461309758928798758003528736354907517185548027467553333048699390949813205991825002834670091943015460132063570283636256909332822923278169449184011705617107443262297120733806232787436134028915735202380399184975324909936106197718083024045752132021775375353195994968385873617648902304568202939737789752520417916079790686713088876379302141728767305123511192149394544720054487176231004457601331064796389690074597375384553724566305708495866755093994278054578424113990433125482504458418574467419621918446766967956708171716414199112818693140888630063117905719572087366965858983477646751004164693363473336341089163265972942007358042676607270088779941821531460339619145062160282387530896530531899895221250187019121618313868388101100347076540543289679454947464904276503686703533209542834989254304978973666977075462546943255437309324880911732900976924248891755654416472408878200041964451268743511323050467527767709518566778099813733345841368248919644689071686782724543015236810392849725108973182135328932281958602616275073880973827706376005951824391520548783369634626478606744128740288461756539598871793727633815602213705161458385675573140669701809812595059451763402780701139879442795979027134620177862195654608410434306853657177317441365426490895710659258469041951899302539660214854685525983861004867461232329348074621025175603000276730048997661566904026030120991219313185155723471265011605224912307437069890250346475418695195307241604985223105370028404945233837372179590816560689798613633199257341112785550870394191458972127334983301586061281541171370569655151608359544417832163824913335603647190866097062897360339791227314784526774330221910088725320332434463265815532715042596671093513167125607968497712639411032346449916620780189131469606576846446906401984266165783240382571582402242501034598791582450955090118752187600536978761519905623471457967298180870192197834427472443094643465383364437585035840902443559090864420892226999229423648780910196073559759104580922647237794199811460546707144492418520734659478731024129998910201628650907603277628116037555952713795579152036585470811627670129301320987389259276570953658861619063629261871781094169571897535033778326706636197927127387686525495723697929661152443635552555913738497272587880809851293880029500130789597197657403646612108522674360591346099858479969570104036924336273298867717986210255495012709892664215710915523983548027802526262752180282547379781249959375739350794643192885569059658204847371699009001698888564796443758589851171478948318852305243198011096233520536936342090634574117040229832634363244936599092195493680922307896113029124292207522946726265348664483474990175346058363974747282672563826660810089964644186684744844344829799419219651487378359014860215658529048606689837385452134285167352469822529614072501253477135897716403477781163349879279266929321207997110157537849315872515739429842826298732630197595056712566946954281181535102965611655215671973568345681694376954526106526975079233378961098172792370749934880358460016773724854621193116620051562636404885660319856297719150633301068101207690175767221929962865103072714141089257229436150705413586587464515403276737831310594855599534748922778957979802255019978501883947176736792823318596838981695814658270458123799455493587025283669778159960693432408975863163095563584163926254318019216476186149391762838924081792189473369997814341235855731694443624222773567118211812969694642707115533230174066461692904931724251996042239078002098530340317849714062134427137237677048851351325329257456181368834230764578469273697178185069380401973265641133460949191474274421023628917587483668774627601010329065264842265068310811467804874017766544910172602582036178430012701900058795592426652351002680524149099255516540535779132941896579581858822001524653808291628126944795527966323652531549926899926037395683229278491679415297957428871285319831415118728156806202912702567682350975324706262963158647580712714521101766038003660041928389357267362750177217284552470897095046243720439156432763314626895819101869185081958730354763389424414381776581659451646428109711178188851116086199863122223553287135583605568036540055231090412509282000940602625722499438239122412387915663910550065411178773619535144798394529270109681605647878904503370313262641414349727126733707538508713617078929215005972450156097905273129482727099056788514662147264911042058394081785973474684845565199914838458538566800280971965673286198852887743660713589698533310108144840431221491929387065748267132142065886832286872713166320767311789159719289294173666242746190309280022185141564140013662225611755262635433195914641581062262669254923222703433803161298909703355619314441499785497343525451491106210859250778094162643108601759983114511909735667335899353351959794687454597932836055667540369416900716311754313334305207865211436797935510791410075477665417382075554640849474020926460504732310062323386290616378534558955175954192345989042967891477946677413231374489613874442339712951842060429882435903592964546690903508820344062964031511770837369731636340117380034837156515170547418834150126454598533691236120415011390189276478942895402834450269930851541317658229317258306415444179069132155732880336963816638481428276176882648039739865713361210793795801488529061496161954913386439893868986009266667193497739269615412939801012121273525535176718427901069052451668457661014171221625766636275699627958696551032622893934607816982721594841909968707947700381606465381296131249180446112714324421403459873949791057742886032669226625884215844810136634072965508640535635707485062305657121996229185602099438584579673126042933452307637817756864588699754306713515457126980530258629360063348475881264400590777602794199318444649493383247995985416938099747322143798620923303538977521733854731090651785877367804624337679421270390530742493862968475208582040247613255264734784200812258097630744929001968032395750142950113026769218215737119020081202771696152460335170189987207075830428543766399787335666957967683887635581836485512828223372396416731501570859851882431911263039325405376650633733739140256310233082806749312955014934363583017638559849925447661007616446933223080804623677667784924143441304731566265788201918556597887083261342023294834225568009708773676560722305373491828492219012492780521318934679623313088407369407145330356232803903282155471354989339809960919322987631986331536916616697742974307375721491546801153454545757448737742678507118221243719625961708075464170905487198710283529516006696145559582963514023873083602329846813920826760519018317838786348811781029986752605934691601835839615790338862765970085446047895642963148442276850988820514284583675019823292670015773046560972672407054583221711638882874952559848695482717701502998914449046825614616035480904012414450715369200183175361128302474751356028378706967317568613653651563102271495614953199284753001763063541931185636229417597160581108796447101290428833950569827222188713064238104060791839580059581387522202814403527778002250475237895127104499893625714317991984305356375829622896590806602325107845612272546708547469190617547176439225166979832735136632505073648509255395412785947527693042642897438148864217565321544418274124461576827400320388672431226802969321671021715802158612107854637569010402209111253371694436062267204893661448951762285005677164558690423993179155105967651108525950951481542060996994839205523222382942220605374275292315184121266335045234909707435455354791105056365823003907663339108670044991157922724138107367730607688482797878928841649419303802237550672720107747248951796187345547785053455454555598595147177913512987260697882994096450765353513577947531941163372920659475033390220955741980116792914140436902780755191054525046962900009033481980935924623249896159687668803960568221637686676521350165821984392726414574095487076959823095005725838849458484352868130544133580341309164734325675864951443379961931127205697743664239807816355537814489383492373238023109450906574104202219063552212603399097383255526574187721326907827536782497853977261536583986550438597659477110048978164325622528889991663886396032503804024765692911435317588265098244301665850197792000785706735560303867033136537735735254329273319199397993049609216982123949511861208641124043064763171929640333168170639884318621269875812228676190808065332134953728231243008463849190268513084922388687197226731130149710074574351377072561726278622946644983014472950754775791984650330529291422062016662247374187726069687911043635932884572821773462989629261456719717764614645048069987763551633744819580947011320451802696248724835895304785959928048654357459222275910982459872410222231982669648600984035191896266009971046805826641966576304207887543035226115219822386494651172250330998143618623596219428391890809133299519289606315993763833324817447416359710609642338413966214287061891325986186269603937264099914278556763366345953326204147860225127621024551826545462563009269879533793654727081427967029856114350838199403872863016720013169318057112373096687479685865207396873246057756813023924810241181948533427240771397654958637302839437236195858048801058421644374412021183091745087078799701590658317798065560665415242139983904502800568353205200617019941462567257491171529264871275259390621161829933016360780607880563563741739682578864186626045299647002004665415712306841384783051535827054545387699767084566995982849697759042081473771824950686279363254301385309741990132267030517240971975796542905579111184942751841078263543061887408799023005293842405492042293372483544134596964987793622816625726663516498268344389327758504390067208023445372982538491908964766523013888018357321205866446134215551810288065355802118763943474287526713249775360102870258749529104855186880377950684033675491638127018545324181618320640985576636520445955152018045393240371167382845615045265624588112429041973358974359292505576781278556352450158433308212250728951892924060991713770628524632547414023697647600306632641200820356121394391216943263933468177845067819514403292813217441393145355248278177751665894228522155662900485066113819007654375230919422126611573656157015679875323975531757739228507276079554419880509093515645036474919571084995952609848441326996332947711584032922640967288021060343525125920522374147163912071884577812448191855561127551270729062075370990802046505448028441961927761986410261152609241334044088898017180571662679474770428974533711771782428432960215426595828420189795572982824508165262732651736631507971999460263390399606341678511610821382487413026184462541271723162335146065351117382777890586535800968801553856737137974423672237875680215895267735115656744967176918022477521465730280549163389602630582380735837249617899859094965156800241724664025838688013736208534823931785670399521013244443411340086422735188454887239213449028506673683158416504790556282241309659260138434047306498819731935380184968569382308613845476891085461135087824476175252476346916148695299728648942457546678963125484209234183564928474531891849276675372377620845535936418630855027905499630375458686522432989180649287780202134027914815336684617612153099959316558815404868448760983595760085720620843965163507521740378538165639194653831045216722715198117539847141899730851271630423352455413936226854168560241014384575691606942530686182597605027720943762563111578164918330292005982364630075929533092083456490799839982819381172461286881915651624571373893493547791911115432662171309519867297368633134376937392966065543037135569760665768258663127141707066358063831123591025980479182415580034033010774523019331743626511873732861430143798157580533219816774950099902549524277370986618549029813883451930901197429340067511322065694868037202880361284484632006363499813585087592624527538570457078667762796151646914135079609368101545280705577415110413293334087065581881148724802024926598730187592256611890796347091526142125544262415580724292684811097996820943446205847914799233032136018256769606170812460314986205189353578998604524333702825535738877555163164774365546217898635645458438133019096414630452628799417687994695988492843612577070206997100980726114566841834903894670309919243370192258258253705981830838579935005412937651502844922267217810136314511479076456248514273361508671326342387584969745050627289573800028184049887726316038438548971041683841727997067110167285905045713384058290509444846876672814356791126604534817140385883469023063738779282105410281625083165314668514775143462030689389802199280868705566568349242456591958210129454982851874433143309719714098667509251900805522145427728509029708126599918383738839152961689712351426785568333296505040537244145322995267229538654919947996442671819756848839988159712561687669769054541237210799307609069014108308394204013254220294017836810813760504728358578194127995601065294257787162589431372100454893797939901570822053799985591684555980887692319689202118185875844029311975717147535957012197136280662303738202438122937302085848242381214289129642307114004899630899748476159217389510533487440023656374990035842044455908963520995558058654446014623326053786149377921059356204677330029197695839877422458245856359055783509256863700720358060724388032408909410297515671176660743740996155076207237123088916461417402734985797235907742049836638189450633950938001357809369390479541748249205778154781901724675833957647556045353216564879525238597010639147941150177260438962535425858216636402848132199471016498850286671425945827604669275187114924339518095456545065369763787481626696746034453280638450021717176396896576061302282773297374829302596335575864977216719145218783239975632121954181209367514367693019588051408565450482699326515340576840008757092323395941091972068823032471245523801769720801930987888377556611095807015876084738683015761175851205363841183998298054579629184562797462103468678897984005853361360005588774943693121576678587108392640019770111818520656561232445319448346294397914326432683885694895036378470282201303089509199825696970634888675729942601848931843534529164223536314516926564423488602948309859806296945422867185532543644386962144344404098008541475570551223161578524245471078306303201326039364593221863951458147934506847356690358962385819602474283201057488208758229119455688004259033819845933349576307605307944898908128846218073564157525220309027003561642735126432812812658122422235867387648554371341231550082506997465872458062182109870200891390928277941205086408999838118414291793174029446016430556746285589328501241793060793139624086371209139351780244732692498123349656057334917162097698345002733831557087758768456580144644285942691967811681174269667036578621282066491650319526875381795618685268357201588556193841506591486188061223420892520187069653090111587859921544330013258338124951895157551446736824997811995469579665377623949426226434615163920964306241303292933017926384792879093955391642724412650300235695512346511030329563651697705080502260383628252034292241441629261455804742404908283330533305852713450434307016067992847496225198925713101225532655884671581676832617118933792700759270832558383538901523966123235885161160561569409613520011793100100534629966519402035214928482646592105497550089855649081458534299559497819203085488047330334086781783468018068383828505467076212973736227436934485579869765410757706382362939694769957223803735859907884016383668422377746042627149236746221306890133773804629686774928165817162294970989195844172441045803257381940336382510759247958038865316102670345899763209641332620707926332675721799960572837408170145091130247847695123967535114095648973174081947652481581410111104961820894324599452326834838132395895449868657120987026563530792671003301633248440615288951661870863965343436898897659765014696713487059191263230367906031150352985304522408941288797051081606721711834320737636989831785040253220363874972784538815226503824473830944303168329467052323340490042043520609312083283054075264286338701886223450615388964893211809219162881542788965182382879331560406012841851887842295395542239237330122246709010831114116244638381632247462962845441166988083769788911192676610632991836512822942887079544893518667324383186240282813048648110990676348658745511729336514445296598722604364460004312097542564966014954788193364970998742347049418365227409007152197690840750753290793426825960203007107539294425303052993154005039975423980272564830229436817413614901096318100240008639139494101629006638421826558767627890039620642051926643349234229067224436795836454701405667010972724808021379639328276193440749788978597597841897157859295200066466604593778902901191603611597621638731163639935765457069902605670971276220768034323824431819853689631772359770663430846115878734715524838597539364058247016068021028122699792434170814676017852186400502779374760832029178403971254831748954193345587456530808175396621010254972912854736217597774779359920943290121756857256459324318673285943684217088749106976320817899224188681430065865876681637806927192507334432269210728512191577913921475549912171408540933057996935992074147402981930179171471720720667586124935815446960662692548987266558348013301059033150961225303314347471942558516230798876419573078855023376669819025643705940126304749871275026910092768250442238105542594656275678636992881650996770089494876127759126389100110842950078354916658378900147057033154547817088160550216177812386483596729445024842237120587392733553922602172299629889876219913504995917457526939798274097168523533822448559333898735074111930106715234764981473417163386436763132075465638614948526997583602003350248720224322277972843623521760629347397188806861084711936530704651637284509683118333885835169236363958054722930118131614744099452985216574160423490143994344662189320563412038790577628345892976257277422775362132730087057788903647465098885236849465681539070016036837520749554462231119330195322766427391186876633715701105875232774417795379696461705496361976690350003524702640841605089767858563243086488812902817033307938111530165015990484620245171015581336841406585156257928356467577340873344008165732036740050740835465539372079155098590938175786527226418152748316238909441616635699880968971595706789374654569566632771944136138514467975707485100702165150624104607983368679041196176316731299016283318181679544728069366559029219735877390211477124891311825080964196871125725537368290722932602864582494767673725994096869892194326279608455407529793805342442330291108313973228251135180138780143190731609053372011725952678617976497902845476986154489771946964744924724195021353353618238627313778120196700716844891643786588817163769284019021999803097672474911083534009933860912914608715491420396888395612480685428430933663617651842539848310913622210629218088970951542526367095918883744354222095560453279689137638124066878291341659954224825082501104575573553978617897367470053591787828337000205639117181416736989899232400056688328126474748945153921082312381191126349856189846334117225594020594163565778791242901008571370196412501168073779114514855404060833141607664016146477329265837878976477796113822529190517346902643104486546182633799609234074106966935590187779504727126845831880561889656987141431454249487005601201958750564532626299910100087636401313054971112235255831772839043666024834448259397688997847876231689116894144132345412317636580433996089778528234563675466322089554382009549619839165628403601489656779733212721666047964546522433021726003434661430234702231607962102866797985877738795245498251655765665594664844828161030781576695151295554812004052566333349745139052933935937991816270156794101983211967784469233587303380006695756206649368691219807594329446791246621545287984130079307877897769225115903156149328537559009997449415189967801025612341158725718884470415006882389523788345227759109274475665571797294092623221060321484570379270211254238707817493041352449835909987243289916645103042943202522500657449976160674667899610820469248736268633117853677496073663822760513559763836351735637306330217270401043900385066964384565238999117242993510294068760937976533642281951671974786489851670200957428724285390585493416915019588917298085190483726971566446529362039592937905085060379049795482387623231610709597370965275410955460349769932338988195223886823961753646262740348216564032096228989867039738876325712752770217099536650800727272914556853886503459508781577391577254089996503139323219991378791693912794676730748683243154843223055435848028996199548297280663524497758920541582875857230944095653980103846370367010044937746289183949104490727739332765017506143609603366228766852415750857772451004894342619940864278982333844828626562659951203812687797287325257913229324737176967629065433958664765453202522205591097630694516155479232243622778574308925100835151557998974061020790835038962580828695470556346234085472876983956719264935349689400043543111225502186444368531988746405451571103113612939807053252209353921837410621215010444257653214890916472242164304668603439688479951092232434586908167400013664304616825499556751187086551162744317066687204971410795723854632174703212276328384662801836261195218139936379305559606824973113618715225032901384093091587742225028779976489012633457476566025493870502603142262668881507893835988525203842754027077711873957140530593615654925270601245431016245518638438721589582169873599847024273009208954782361543748123627083270645730978858843628539746032721877498484769087110907486059661045615496523690643253320459719315287003275165030629333056645880451722269855448401842917068948554615776929746799425882078983649483532096574926756685697859807984471604678513529536490956341124172990078342302936262341271762045603663172557953602874692474088608263857572424312394676409956541698070573882246956286767486329682398583008912903549899094269987918867366043370916074350467919484093722356114744617083468598480615826827252813540835756505454774211507001559810400818116338903597090951751940247901672044090342042511876194977567164420447265075887961244610793888940015508558402460071964153390618925191276854408193173352485410252471004084512534036494302517281521491035043212220252180931554392879541659727519801246316140091508668874829611874191230300873714608767568963263393101630625837065678681828291593874317984829821692263216069878302060335440680038349349268357036851808965893749925440293379385180109301325648423933775433981780857187181819828928650773392772234845304148032393663039976762246069062214339191263767059311940967971540127867929009874598102676354071770559939206082419776452739859300710937982911396384055073627763834167981218103407152308986180582963754056661070256425045714633423149176975071871371120598630841905330151063722080360534996694092943317541255322150544473529144604652934669934723588960151304931245600768055973432532712684093092004477525278675319837423442289357523188367561522714079923235843527938037435795713027977755803201945325757357498396664514232814252988637818412350752541628220511379287484182597783689419787354761017767276326236574984565471031978033043029437681377227678651917961193366593282974200807601790787521410843548394113611534141485163713789959927470921420058725171562175470362490209862297815937429893711135821428923865274087548952078553721596954491384259625970162763547860853900560265487204673816224547421180650779746142146056432206220859419373811168566226398947548395895484604771717750554595818930645746306910579511214617588100890063531783810493982369073810514516643729366696428517840121389835897370515014849963082944516309720566606554597321378604797196235525750790754410822263870540836868892761131811986041053166513474151981189570268651646267117969804648911154162665431644566064415726697683314367991866824054925825910414897130277742168845858403612504787095353778298278307647187241103566309351989277852680771935687306254920448973730961661192392987074722231695731008497921733947371516737300750770371183014523809927309668116221524768033279450037771172723008793724900606539511438376659300533042963099525742036199159274546600506723039504276776532362198326069969950765313379709180915439536446374282066508132569425796377750545647273584135634902885008717881576917681370383890049516800707381944528686306591694300947560219278807633011568263024239610600724111266364919658909936059795385854228463980200382346606066385836852579426485641465805935324821094557282047656775830549919780127530754234006625144820656335769765249664492503174139059061116609027467612881560355958503095011600954621381816163486581748892233015673347070313886879900503624997029049449210910550473021096099897577381681641435746192919884537386992748942882492539512637556328087941336282967008917915810988867189683017787140730931616308691322431887452450138193596719346490943654681066841327384575601183403204091132919293663848408718346686925810812578307819781771239721850144121946901497512632606307788939115079259962930950683682640387374265033054263498129023172324280311269608908845601197502964686514570153982068820796808660629033908789294191780452201396147079200599696609332415498027972418668569903427319687353743202966377278449404826881132886515041377992280328629264778450711124860971353267972426240774476351897994546109900971670562203366864666788249073324480713327341403119433915120222213941451745335757733255024648583729113571944914144692222877114335343271836449784959123370563980765284709705787903218172845755005082996180817765076940377431376191268475037957429460091712677256318513136678151159406852211731801929729844419073413717349121025857497786486042241306622628940542533185583651640514602890048860506266373092349264140441384653965035046712243382244719100532150090370408353832939483927869077622321600774759551525247440921919103230614475456872540067391875795929492663016528903068149107589069631730038810601516356632847674116330406572935158040951409424514095715282693923091592904960485716160889117627759310577207908144922621703962347802776442582059919737674297262731663562266833788206415936550499078582718791074195668533683458523923439684738516112192224460154693814874053743824674346004499323046654453918048056049246007414134995163885973031861050727463549323904015890939959026979322205537809979745116700236230273092971673600803378383256880107065182660564746487802431691129998000325706069985229456580852016241152804349238158557981434770009793314524135303401261896243525981159737250779104264764821590169809999850763112974836455816752316846647755427980291490133702125322667786687005884771503804271919228684816846744197362487593037473772356286619481994481157888356556176391453978554834886221701004735788434628073487194124265848189734203239165718114983614845604197884368095419559304410093913068920138440698392833352403113256855812646095494025687901014234206380470840475443128989944359013882479253749229035936909535302767350538104934617466169607642040289117749390929777069950788045402766280851319319736722632553808163658270418406224204306401252804336523492743828084464093767964373718848172496461780592013948339135237965853287668181045276365370231593039879533577363471506157270581202485637429043595942055567160395524622343771404644618081942655387899727032350787599956993716173993877184766101928425442229003751626302502075277644099303680710130589534705097245760080005658935280858300782530960550710698290509645845615815386097219875537112195387366871599960979620514306578848391361155772184145378333540833846085678069222891786098616973567997869433473935732800159907184449121132678830166713155280627539735641985667571549674584633107272171976470832007394988201338985630147835310062026799843552178632447856135017947726435322291191435973571118828160828876812841031577306788969694962327006797753046647590291755777743497312740320452368040817099779158633905680308897380583664010637634966720860154313296905032963633455220005461065609045134743120051527163421283635341293657977967474141370621144069815970184642752970627351309502683112219803768628257156858523541548082333013808272541210973509037950533248650751353070178829283247288171176847684874023354337734319035234347309841929711996442754136291667915984064452746892589412017160627796903387533547258528174161944529488230229229980218173793424603375339501193161066398343333814508927218469295486334355002628110269316353599301711697227123539261428469472033426680517705638174128246778403058508446688215079697456061616614186748231671367671305539104352759724846252065278645515567677487858050941182171049492188379183174215932955612194083460684403649871663773152401876478582123603787030155982864706745663453468174447169041509863590251964641459288331343973121343791682230903249508276224670818572397434445399489588388817871818568365043392271748618953557421309977732761997824128282998927020543232348638268281304294311054322202922825060652872746472113868108983391011328107873216281699111940082184678524594667294310663062918539279870437979978218272401761776236728582016580745166605659613408025679190511157231520037200387198141759125748459277698579261015776551610675734199517816828688219951934780162509514296493837319743317529562147435216479927998725606138522002733134289039505432223647007841322165247255826480236405202679620394354803298088687747443074345643375791093984437379154066715467730919324899623862983297692494634062403274361694243644682529787230119735499484069749459021645232830044897790713206667855168994429775185115753222812716209766345755956948966587250529000820257797911208587799936640162486588098790200055434982851525239198412796459590491538757830718909401751991588484060075465944497331218806078863593612899704448611420506189835329263761935360045751816896509192228324955211276943606499881711036889857572802589618337397453374799165695745594756045822702799473733676080265880776495739825822007656701225430677328464327524824626983887130073916662561125602554573240157686518903991100519574466696045187685251354284154629069340571723461997367955371952896498546419611790677075715488583943216485428607456051730104995737313768264752792070162768657196710019793227902776191096402921206020695219372426185922968458605156505086016632395949444536474303296122575958212159470260501353122003974040392493454113374236026242552611397028721182733950053980160810966006111977785252526099774371078171655711296767845765026931098684761691093986952549772574122033269834418866096001727664903401549132280579749952685447462045462495341644196204665174484083387002015697354389029504345969758865372734498994393128437543670055287647139541500193819039681599423670229896252175068411687464994895586616161306996405229966044287087424588473830701490510952981513108365570332965272951738252489207918387037967486851901968248751256995556670101046929616518355182433704821574957946789276518330608234409275898515173597512270427876573173154753506075719185338580481479170024753210681723459287986488265787668563802136611989013512879207253447450942216623018756882299111073912746507471925124304276291342953470908606268298418780538152670532226196021064961386708361333061548097817898008948055443090677374407815025447863675323408533042929832474205486814367058270524286307624035714463475001580492909968345782349070062050760560779986962484871895877759459537032049034256967503048035019574578276432223873369821628639154090996683458283728364308392796223911561644856843122944569784437054008865895976668110011879637199525570679611221602025235402565356538712804428281628488468702390918100315930559953240439350491320443843723033101044970159662333661414771466006933993161552113003426236672477564218757698672392655054543427324519212946612046972541949398110236461845826393337399934505069585095864141956757239514518518303197821146272198044303483428204759961431521233871672930895240110542297459015687521860947653184200587609717450929176408929689280064674675511246026173986442542965235780104921134852759920100245770143710090729569836618061304800365596584424645609796012488211603815731130656821753613243668694219138165630724463193169150808477406281678591432163586755151589396914685185188420938843220333632906727988249162073353891856217542812986738556928883484906099484965188847166430728053081391235644921301934723680047232387892997724771891531803355205765189949424837096704636600230916400610868802675648263788762093238989697668521444366597023591493384955535675470966879420117434635950336717292983724568539394347268608248693429585212367194651586898574360284828890787060322222311280392320591438550811761404053546156777609000737235093529767056895332641838190384671891421446000976499172245676841714243144872117991764829082823879826383964822544089348222312788120736632912368362971827076893560311194987734977390100561992682289274694103467258864482218149950249221125182260613767213697667080883290808472024175485320692211820396872750669770381933342858214789549015767012392404595933198842406157741218509177216914959539324092114411816943291341193552560974968867547683896222766364218782836945630252312694968542395480797435445319973040444604712106583385950012451369494937405020997121070659941545738047680184004296577847561715143014220230037695095008469084347629514078229677356405988141570301491709252079121201088076095734212788938179810894055226839722202738818648482390336897234124331907328919539195971739390380826854011499742900060901576788151093535847932800687005681368815873479099878345341221899249464208345208764081838505023148287794159006785473985359930703801593251695375050399946053657528398325974468468965502964968019176745216133446974170518491970110469397506841609871441290548519325805088307784579940359718385439010168356803143288002845718563049665687492867774840664865786270493564010265207900650314530740079914726194629628571389649969318111491529024543565398019262659587414976005520460941426453886569159964860197454044104623022625166936746927686024491904072602091280896274793520532884194410219603724241402171793189903473117470917886514859185122220494037689295544464239065101860668548972579294457884419168034162712887530714087502703427821114324961376083363237356761270728112986688635509319725257969121621482727439379936445412001863822204157856338063139802531736808616762932605451116571723815840681376896522570809177849365961891546593759515320377012380659037587163183350119859173535354722516892941771127931245151369580194021078371388054323407057387876876129966825181036004108085315356671306216164091231593776554863888381792937160578832827471540517938537971028508878457960125275169421420901113449238457424136506078934909144478391694124458302298838316930303598070383557341110827319654409037924567441777189616797626600053636491302912699069622661258428175500650538692549581343820112899897857393256678091108508087559286153054160375437572035147404536650869734843755410821491440144841435586102923130192411645180742035508163217235553837550814721964988576640796558613020368662870665482365118642473484095581738304122794658025439114059883714428858001915494009396848800889587968582893519898839848456197467879992546096459456207050994589558683912425616084168348634111583438286619230794473420313439438431391172342275777744675453495122780246845144969152317504902851920060116983743752496740592698367951507285763554307946069897832113285594560845932513985567876492617662112254468267368970191372309643407616483607671617000618614084033470433176390191542570674583696790164677277409274223647854692934982633683788915409991203437605152331052229032652315258992177512024496836194155108328361858011672470534953200447896935729672592486553542508179204592284976784315247138651863505292235379710098498222963790734938270990616623535775601036607397325168085839725683887512250598076178740804418740264453160680547946599692698374034494015126314054131567846078657278885620894899175133119383436196423697483861238175184717777753233666556227532259683597955154253715520135864243743160506299789899472890361573700968825605254560063597261843584277284743769166086333292515979782617790879061864251096469724042245973001122138540236195946348783324736797647304756701209072093570098631724415728685674540528363929568276511776530160383924229519403755124384023061308181835103234778190666063726246317561754862250449426112421160727715370748490629748265062358656698784681622223932433886234177582619746074506089491410110804559852288561918455032376631627373109969703808028988082244904244334868184059234695363645358287323188110523452240960507529665290563082800149001474442373293604113522090092930926284378754816022172468861019920175684802829810488014622883239319489515108548853615968760037702870949841838877230492654215806379826444559835927432071037712990522532060752570406894946197304692085039585194486021083175858446107031594266079609065201759354536958715724898892830067438611387294822761228708407228220922095472297068413172874974264240101974717652064665059554166486558022545637098841681660801954599812253989555758575831144142959607923340126541816342558858223154238565030685794780294318767929760461488577728950281336862379266200947449910763971640828493541037853637147842628438224118606242749689108311101250791007997097454517459385076984570937699150028515744114191266952632203603093715854748092373040995002718456353014144797873114209614674973840970113211515095028811271598417108658914916183272730758778274032894321072981719491798601304064065424143622989755760654952381050430504637469991411853551233421472833716914398979585173338712852571546895917793147343592288159042989623981710249748480471951921555372147992621927207184206755368864599593320710583508771730012002491674837415483229203783985685602387133346493524473044972942678513518859406085993499685144357994401441688029556130743973601197929145229394542764239652553923284912145768364682898373439563823273495274873237136248068948508918241758411547323296180461561069914812930015580734239231958140242106246746393606326389372122262673437188161611297227137117122677517315627169505785360763289377792223823942249073034961440846753949429686339689911633296913511180435549810607527046036564390328084674207402440132672909370734568701110195059788750113696329931196752222394521430275224471698141667287674967323869356601234560486572409546311569431758076417309810137508061989019421876689105677013838403474930484832957571640434681237679341280476474358077998301040184632906062483750822685276204300881114020331218057572174143766388044143966618569859262789993300465556990767472326127699439456717468140903391854199512968050693611721342257520068171357602411251443325811197025158173776549689192629380243717840847812904758736845155006810808708769774911729273737527478293227081938682649863812451201303276428906611566788387266612051869581012346176671551739901401057865932981403330547515998764230351971566889376411346639109214667741365247275110624509308421767821536831039493428876527344387688954982622573274347903242101633568634948974353170716615046022302249173695450056259968483766354383119724106871247607757706300061889979263446541047395650598735035975304344925473097403555622616018406203776804895623446080158744464734040414671309473330246818561016193792201872348076090537394187151553866477417018503904598913365275126529427722730828954608749816416677693872897013761650300525004442676663823632045633520048557107815144035426793249419882301072052614428933186001697569260556972434149789238475029187170559849734860306589093748431531477870634408390160673086664689418771954047624214120556182642085411227148245152578762665158868096717128653805299559507291368992672994010542485639047810626560985007609705864511866125217846118429978976288343403206328325538010295999357545811027417969705468607169735321974639540809352445155378606983783318847897069683274293634299398240203043050855289311913902232995089254823889072829423208023302653973992055615951167707793775685596487230526364925997727396737004289650108309074722266675285351063382018260943888571213688539593688762898384861788177803397851320082910413260207586537667503679333185774207251455853173176384743658885443263281079554773192472885264821875189023885805570504379454584765878608014103004170541593356960494671148411363711755192194317631898330946800671693712745796541439694461391797784322612638568021135765584019679039387836289512700635042251197887850956223446330327886344118582204940123764837351353496659349090479734767650003557477702721714362819886713414001857358150093769070985218779889320011816411744876953239882290613825057097412139667382285835224092496413990671499966582441568308744203302331435070338616077154109947656293023876968699062625564719632177575990375369888747325325984234364987215535819157675199672240375186251854984823629697568833249077189121512973639108948707738324038211129406200255229994437513888532409517889446985436305231681226425195437639704980405635754144353742357993805927624498517786717864323169552861047926543975355681693320979968546191156255180193770790978606849194925617870254081572327650748285538806621623063994565772748725238663840637064796461173043265386375364846573902977469748138812674173089808137322890268471380232847025946811996420410118645530079288584551852077126780508450929591382684771403262239832688562932765759968675354900182754212605418063940299008472964355101091146288096542103984380120062716721055106841150245781207356979300848361218816613281621489862814335035081367284487557192458572546696661189654455511549764629635849786191641968199378849913479661152571691648763676282086973811180257122943882869915709675656081776706983560549330391997151630233712543663776771113930841395104140855745272966704174597392087084691343798718297274338128780908980950823814400898912367689573163275891099094891225210864210630855652723884181866179609133636043593373723020837528379622229123668944291131403092211415244179915648372892588913354689055017414085824734888678177521908669004871160668953313306593262924481357164681785888778047927512464496834418126425705664630256675698907979581116891664345966657934644795456672796250316550527931262710797074552402171276318397446583698537020670899023361607643592524747638236274053282202383984194539356272055485612838766677219922850892871964705280950018466136793661676516387821818749601820846517478212452820600966774616860126403394249639843655216736919609495644448145044951333790513227283615479227229149796341763984549580441071479250008709761030708013885430978309635177851055166686464037296750846345277411318649381892115172136909084213715795262056864322270424792029697102764327943868176654327974621785599069834953783343014758260976771071966935402390406668503483855791896653455736776710217078846149290267465589672706432665982208401338545635005148493596417617417982718837689216040957390624706592208442942498622190685624062729224389177760878044176001776925796511589965793180247976590309527577918608818562528708752816045418950207506476983781848405307059281556426571537114102758000974705931282095220885804605433624740186409250591032140430805596456075384045010817320094046214753375387341246708386425615607772428984347184673801103620485338332518668871439259155462771563436431993821046625697133568546264414571009303177819164660486577180385849269741411575989189143529437187065772926613611139554154928521848985392323066224205933611331037207874178039057017319223092827533676285829119423208574607715619400263156086626169161462465041196473598595892459765121156894959539173186114301741870970906320878584956853692899605970304797808757496721435037131247195197688967821456127817316277544371700978341710236893196577175657602476689655804308397075505687794815325169557902669896197167470037923900649685800890345126638763780116536390697238177950026942994890882761300028229480622848261990305613976928937479076341293696348169384354643818256336543284109916275149215208870847226284676232771153344649021570447900308344202027643366897881410675892523479086646542120139880374601860296306680250276704518825251284086585629576229540978694934704596636636985593426183923341121046884945943189569860193661304763722251081113251721412715629494188857055083615355748936752379173167477359917985889126191646437280568898077203790896552500105648975993285874294520734210459058305052327674072860798537785143853427820505447901822297658603063016983395080462104843391813839890993189886828269350505899246817237199288848695832225034064003886960266726896898095239914242878794323439074123279764215525552390832703700583339045625411078413913127257367030171929379045271998575057624726665999448336099249292038983160988635314535357251636885563495997127131482319785998834172539152822135637032123524733541839834458927335967142527695569610375548762918983272750468952515170508445142325969517658815408011943335829064675239901603973944862354171935412412877401410804044307303255602647495447521980416781174949554099724840888024238506311967709136545907407056538658565136893550930143289472305266308449009931304599487571579054361965804380309725080598239613809210018588113259463867995181068618319873519044716747481704627332084343189292041332889622776170971952768829074579823354006716532541628728943008717639765135124360459167718393795609929902056051803701091789634844129854326325647168808850779776443882420606536685298666884755702163955110527164996049291970453263114100385528777132610375690787605342264142208998595583782692625869025331045210273463563170733003234105937953526935580701305183968969721157115372765501509449250717239812512812392467057933588159901859378912735769979735908818962487324785615691037680305858430928598739210416895341890975506998973639811495462080265796645168971278473229204760694902250133322087931243752143729296481663823602509810988985160467712247571860990216108946867329075626348826297320018172576185520154993923998110544317601294909732464473393340691660397534332074162348930970959646351722128731211406964672775462397668747760201271791731385312134044464649059295888785031071750209481229236284441542471749349970963801016422346883282822905761721505391058087660375341577000764443405969585010772575009584714959806030973940521486173574593249881054542754798886775892500174223620339174662600076505900199169015453982218654883238534804895569407079817193558438644281748422448457427933089101476347918200129003225551382982528916790047800536487329962950894993866157774323666256125238111315939030972788783651209620256077620126301405891097796947945478672738286118875819964997081641283405668858518711342989849066952833422736285811624324479679682956135050635702076352442188646231475652337265720187060586175376256358186030885718387623407951179663244858993170561270210891436546098514299089852336587513704324598981441606344208374458496894996233017566875621446692305882540967237974810518062032022339967017873108247703614389838871352490206388457995431315540472875079889722744469135740525290045240776032694242780732841559689990553594388496360825465483897884235391104115718740411894235428883352630266272712470080632775325125750324575862888664732381658659137357802686692917022021323146752615370502269499649040992524226460926402638508398892116113287822521354995443185140103431825280105572708290665009469532519653513611063540527459524573300157977572875933799496017749014755162746293888958516625126093849897111577489112930980429424577493078533747031276785521189888248989475280115276464575503466573627196667944649084048819011105506556116632468924784374140919051459933424836456863276556709019959372944972657385719201452721179910410650216529052108674712196771065520833142430105763524893710566695103994350562706404098081159046792940953780027955467864781842096698830680958915506442646063440835691968632029748850294162501314349320608760542484367470184855875076674049735440513911457380736945644013476713237666616488010406226225360790025465397630105089960614187204334353510681070996973248461319298372288113770786396514015662436894271775613420709360552218235758806887477072609158289037092842398240432420590651276368530451447478489414893829573282384670723072560031380550919728928959629796089207587889481733466368503422207597452758218793195867468982821422643392069090693677168819529460946392113901772204041913841189277876762181917808993275257033090385872469595645397537730930356107479360939882595788280551508033633165450538322744959605012937192704387808954647610082868293238941308504777642526094119442900148891204759045504484094818540219722091341519933397449678560901252126162256965481385126673802581997109476452212007348980250232440296467148734267477700721892693000429291828175444504777005597445300790825299039233620853008381003160843912747394238149050944065329718928071363147819321483824917369100886171974414492063237779942134374477927033824973870767001472649964097621580320082383996807777643291091210661302999102290202546863484994833976410172444942198980845628605110661630433771099350559383354092631785090464758267174144096829282445690974086378858867713667292274902016150974127372942567229673604322056491160788422121056055205386149159573552148636935678769347118176386123851793713045322196437018767114581891963525588132043598457472788988518078396454400176578930973022502505540925099388197675853866265592707949579917313051920479286376744372542952691090185001081112775476581643663120605316366428665034902425983320997550095762833316539568933857054409383998092403923063659989770600360825548618041212321429901264377456408774776783031269060275776477977242078535029616172045352220134915884368269709946583304336323813054572636821374516231659437827220793067862724107783426594556610097118540720566138144367420070976540011559498032543469151391343914413321238961459277790158767560916639922117760318852422305605808618376187946428316402192939926138990408070078597728933879278260134964716635365840369061195624508742793188076510397001149091702105006799922249265395163111821070192906852324443208131486328324950813945372144467387334183442525688600448737880858215773373087876412654166029956503693425093642385099777892610963527812304087424064489086915364320566452098605135959221779630028363361088610716293085425906792758273675921174544456750682017036372059548195773108409638454869512503505126675819940085142394761265815539446095377322630722592908334889839594651955701505112606028554965896741891051804188541648028767288822833141908584579015364489333524030776452936953316469221324019045496180262065701687249764018878126465871052547025476198981607313336485505277326577214605710122389059368387899297304586053954456235356749015692707772134095868557746683262511058380686765198978793334407119070058878324747802649397121031029863051356025737113211480575413918893678464481530153977658195702529494471979586366196052749498493597020309540669419853300700252617544997700166173024630528590522918097751289441477328465669717414492739965441724141126754566206173528544282283002715098582639231272385211348587583095306367387792235888504995207638013708023280426502149525728663520736519906606756182592194119416354227517841529087271397191208935259912673809207019352465642422061364975807518734536535333419636857515653665495423750927032710918502201382274956284737676508573971553186504906600716209738511458468564151483717114031769696674113191295750195463752096601129171874666117833741454374342869699078015620554724796577851551494167997015287392434517475629508232150456983790706417107671921513895495716533426212682084958361446664274547916638048164579472218534791099179374032026275281591536010151063400631175562526520752142513078153028289136359468620164705241863592593936647056194327027947996469041406464433230080673250289919615084320199003554074433514233175843685954191992392422434033608474126413435774489457233447354675314633171961369187546244620538824204343928916981244468250152266393017987077666053566230747624280316710097228339724970517586086613013867657537934646987660855472571315918937212022573274770535066657560034007426554434130415481786386889786026831004224294199672340437085750455557934340393111284105326400341746987612375149842366216257609127868143388353772927733243114292344034963448444846763053301417208931115635269943602580950022174475070839892238317529055818339746828850197245961744138868506842381509167399692976431645075701282512202971217470989252931970055103321347299498667360829886844065861438461184489555520414865073338421350258218006164158246663664754329310696309972733197293845928903717165347067713730768566499817137071037222438772259502430784487739312458076959397147032215147593142954923858084004245876162170737430061324106585914039463332379564729315285650618572302428953221753436259552501961462755955114331331896014215476839613251258525861925315807922035909341079544134741596134705006487869444082596340500774424584108639537248502637445741835021734519637902043304462500711173973270238521862934785951671425675786794647642003861250376565298330193996176150923523094455822906220839338078479929081068492772159063193759864636984467072932219144480505304463566121160552074307429512980618233002304494308205500179300442339145085504660663237899991234341935457424489834953056298936173802032731943563379319554408495237818044249989909157777554274728316506224991569314691614705366522147240860769005305551999089287894907352610561868432967358146326478560245823519170524619185110008212806440735623646933013506683370772985745078794167029091904078660728104906479670780108778437246140011690424894862667702396136148682229515347577588305483613101636760322577404911339275068237177274078610423812043255091887998755773108108980063986934287475656015895552361347249675041596429943204466744943361522844416798822486556456177596433853275650178946871243230783503607631622092423883920885914073650458264931301268553862619001370530650413430484953855900864460988943611028479563989874024503104444286331481018744545439154262400058493169611204617499881621958535080520747677740678427738249881520400939310036018782183720998053714245913256041883215427336833066272437254327621978509366448793150354736346023650415816069502266626418886218297127950094143116528829006022080009742786209541398898691822286248292006833829938500707549908045520007000481370466594633217641772067158845011417754394553374424821987814055606040926806388850736475108382772714382109489543212173328562352155402285952784976251486980521581211691794388550073886582359369007776942063330259918598937811508921103021298638632435809814419600969799109477857851549760216453187731315256638554484604611732304868268804923926625658725351183569499772179499582184581478999269681936630398664082006633874168941891956903237799096654257567661505969874059993077757149720044202063901802837291126139152482572899018997413957773477098017292493976121869278995645040591052578129808696130955525720182546318437380856168009348324486932924475599758180519167931747695788779344900870369489693156134459017541433796810530119722512252703019100185365089226822462735524284870915622364277836786999682035282963527563627274448347477804105776922406708595456636509609032925252388561877433646865148457107299451608037332627488706635111088798965835536120771219583214575241404869364510271077783886345265412330466527635996863994710776646538164119325535405289921944761149147976978889398245972869532831030761904324278952981726006098490773987191556030294509129621719642447356416466824460851454534448102929546962320145378188282698653328578442714818606445729404208007012926854890065502853444169288002804431349252322114239145119320994112354132937254151634580630985949140674201598326467478467187966219885877285899520329986303156895297478824838153961224292374622854590859668807756016763501345859100802926948861659585891306252983311228614421644308998540225387496487675342327297053486642941714362289806874832961697316773356824134884461466741968626343320622485924038959137741647650167847792519092844655256341931466561857650414486401349977087299624277831548543877873008606414812702186580570507688995264309705672485457320116958574986725108427886697251677507579765022073572820652257813355715201437357597187223683232149362155865021554914428793443302537947649074825088969367841755713365161752233445289049130701657274228852833544089370415579194019495510559721279886305342736824982999529829689720048285320526577256784885896176844156113133260908733167710363648548686873926587403591425507815498416168478587643054644038022324665124977935558418985417474701627588198065660393579673040047783421144867610966486429795420875503571959569319825959785751265846362634397845436178517737842652935439240106484227329167778393494416497785431540211244661553065654514525047773701097963021969391443882247171220021244573482053695026606532526361669912584693677771611856399904374534631465404538699564962995277468236089118895975367420707958066643320595073001071198670049569786347764515911084689958225581458128289468433704663659690587920171145157794871081040835410598749575567019274843392304071477745401573470652431518156525842241995337927190513055357131309961372725296486358890522007798865134750141186802992757918812774125436750931884384759852507421791725632822372918964146481024910887855433984875149204473869537911661556218464755530464053465952255371611960416678743850354377772597833097441743261934465245825210003171710371067996534798833020876093973156853706363544859094926017597162860401476655098090409274285154794587161853410756410180499471361891538323806922946439561444629381751616964868859320977602904821003564636124123105251596503548138906199976158641094432306863396672319904864020419797182848523197803948798690225085563280194320726713198429977209396342648877988060204263986445660447041997933662503649677764349613145856637979826806933854009498989285526730277065142756562084434258661975043309041888242150445964060199285461683496161998096944468784155087028167373469967126537423192878602250101757891223216899213270772540530597447183467140918483749712774454978289835611194521476517539213516917926710381303407834527086788938195507796198145959054201290176055775548631221693796895136367279863118122897518946527879814461742162593332269543895249259218436406482733916177226393356216698266044204584642791659122904605443670490030374827180928459640037589585962732072493462855748283906574683581109133291031134545153525419958446473289869843927762141770397445774857236249485282089295928352825178855076584807938898696287242500853674984564726111220121903768078197670837188485614655957800284157102151795220895384636575047693714509985295521819209935792104335743820531455410345996058381026374754507383131285641081912382682584335874884261743164341271473207803881422020620313775786456493242230690175353251999195564749859504937216594363256135932822639161832463120465352795668192101655608805098593119247528374042071443013476113568391929575408248384927039023239691173610900174785037796126067431593111044308848891664348715811763373938718397370454280088579822188217226219950982180030103647389026119980463688994926425652469913808545894209143983008251884503903087073193155437556007734185827303731107756574877645059674758115674669076963052496644097622103084431692289659446571072620334534924879510354688600831831884355306634827120560487986730865465767483577967204913353357184888521671397698540346213590784109439676215457411836262999558431844899946666009617591885961072666191559921014278065034969355166657864498272857466334874422007223666197910786118525518002368086811575971054726450981363202322060903959036855046998401282887088677286796216220906526596085191434596816480490213556690929429699715358542123073786296281884727175056759641670419738049556888682042641448327266082556143842763260364062881758401234717169848554776763392758657564317104952084742552733191254943503959396495008444989929328839400912870861275778752118489298379248222112027035268531213603927390236985282275543236063381229982906857470904891326818676184423036620308173354066570556797837509578066465119337963858423551858314151260073118274273110785909775914822186113712048795920025963384312971442506622396324783457601778782140891402925660933233841892317244231192151354735024263242344225689218745755525957439693686020617757853038595371590514924433319907307838839554380222765827469828074672896644678965228154810874723377824295279103015482571419710644259466778851962603225340125414772776937791547165092561686211237810804494095719738914529252755409029679918293316299385114477655881153072848132579449668359132901919815273352881732303981562129779341804401597935031001952577611099067534210889635621593695628003079673414028635051315879082345747087228010266851328521423215565301047558169111642588502618180819792620218495813317571564270585018507949877383302794306757204800665257710613981585875903658647118142931855325478597436341674807682555323245071545705921895097274984349736446625360032194498197005905325165319569241929779394752991208233360172024011983740992583591932608034730575247009341950315191120960513053401163557570299660656096039449396230838743730274545067779332031200602030934712633867476871332165844543905162350637290965460188660095922266402023953623161838345749456713853311854656933432929033876425067069956489773833791072656361201859168352249808702665007161864900379790352636822465027390708352456011071512006897353195443724154331413370453691091879939158455882226123650839215808765784250951346218103806117325084552860980764412629456900171665129378542846304928947530032197912478369610308948131285620263637767889159968977735244027017069362234988741735616154187659928726946480291071125617070390518182816302557891223880036496596371670075012432247315838799074412346488836331318334148453734714472537602597383647959474257750467242459771506943701225833861819539693728732055047782782202540514072545505801021535820161696611114858056027036551970772403318660661454637645899439593537893161852837137526472678699731088559939725412237647192563929360475499760088094571060398959376409545651099944413836503030613723659238042524853789350107158130875398667649447342227066284108218328140643303256068197304408617945158198624261115910405619455712918491965522584678047314298367105722059657222015761028944352624293829203138160873699232852493510086604043403704142619870318081386665568059490610034851802656835820629846078618644452598788677493805749348335040436854338460004593535888583335423845200458060346775565844929424544590339255929822098387596955222970256381010108497213506711673615832787806178972360464986179400320234804459164020380839018533846761420841777870117756999779239577542205831733164984722199349819475282136040039854183094612166285806648108712644254336262582875826486662605070432054666271785296257562548984175025909652764323362271286529500412131736553433780880530897889187616662137462121036597729236945242009473326553399233708331693371921352952268991741317946182130024711826638260137290285350176614491367880064826243478799819737937593597691301206237634602132147568757245318330992680386180212076965740628769462643807257044002919230688325027575284637616592992342930121367576622158368740764864447921074666788501670063208981070083982629586197090785061566615247604115486412361131316157749419257353549094240627208985941057920612215433351508464531790122552372008893618360981528372870448803834827756018123098882904268064573239714219518391247549609922802619442945364800259502179915269297203929687000180309842410207614027295880877379465646393517767501095394117409238777701255278394162209165695788894681747392553740338282351261859927266290652710810828070403953440860390931844703496224292975672974125620118097142139555473655246376424392204246243443558640461147789607700878917243542212945843819059742093209426133941436339406348412650705888977444165571776672503914389641547898194411898643224922520447113930626445757421204153897677677260145090963425074910739075943332515408616999609163258619694833360983568502252517537400447189352927655134530354167762361589195743546487634852816111936281886004683594653629896828204890916300213197106673354621966235073049938611435135888975752095023185228414513459819165627473674674553001246750770049265489266810865637660543378739957538686278862621855734984835043945523610323734516515748576412566911695760468544011761337763174785083004366432229387056221197742362474469982326899692473596538624333336115539421805534478965170631835228957855508598007255878002681306728601349857381824394863608057021542595725047568139970342592620819102623903688135629293010108886133243421676896645766524775191680773170775344848018587301182558370095928595325396290137135016189945412848789960818926219893915198468109626314294516654371245928388799935480351805065507062623502029018446377918989357122751907725929942205529122879780423505353746958257913404215223474129493153571472524861600271633624822461886215298331242933201885248139132258660053678327515717955341851528048870616312450440031067170406153295468857137063115241958042082629799672813927161634914708788242969500708354425275073354130485096805260172817099532680412238992727194432873133174157454459654746182505076021448981283202364495728218915037426092851088543251671590666512762671791984976119521977560888082651798569732456280005365435026169360839933693010986706370414035235738069154204162967040336096103399813094688668284580835913975010894875350916341062735690967493902805537522839642588715305918547724399920737548666168904900891762408028346917132303426943459563752478715021726306732960872963126085340363412352051524066322972211006876776324951952057921607756453739873523156097055537975709252842560388858935915105189046396847122656446674350316370536257889820843425979807305278164431465420447002805949958417559746255025278561614267633558448529735813006032336906937273617401069307917063614308033876806237129964096596137865141592555898284380503742317922110603209455816709466491605266213886012357316793048342609094488373692322708158142760742981331308719578618477656641050625839711619991165337883312603312611181403743008709420142030998158887737900562496229897948898761693327191868910397308889762178625197934699822499088070174645868726082152799489186884270390505470612453905771430374375003886233837087897262233115585286681523197675452629915814167655185456816294578064469468853758375711895570060664776804417757103430016992623322452300985333462258832636284437545864690914107491384128953393555097922674215296121495092139895935832167820739487124783619909422280881481232530839606996546645292147388218142814324130604159765401723652433110856259107247179838522963875724261984161716846563614817183240719323665318085361273229124578876382817633851881760707700683709089446723771283430874347947710059637021606415327204309125514941315325304521819096624724938398177044496846495589449339710187639373954353885955639601086549685675856033992887526641822118446590328622617382963255406826612053594247020782315915624440889171912209027944462150939430872449358550935851722855365410240485404744251196521132042321821143230749175373003966214231692098480703138869912702432456815138114614219235069380466204116114472048988596749145120402056405981564090225052989936172527366203303019075595627118053027860167204151254197816113226591387457892719667477011330447887927569837985386128576424361291611350009569577660241998725595510070349067150011176436219113534730048691662739070380898389682128932401337168009989039308329033352190941209538070462468736792784524770727944063283247420556691201083590524365549172593714560930888675746896144243447437376980820109859189285819418146504622053972312455014040106060031613249511778714227972796030666687479032828027550214645813190826898994032809877828499005781363437410015422297889117904622469302907488845428673905777778201155020279222824440663817963351285596693064497244072504802615228580195703712012554185200754192434653252450635296323317845400073888576167967980128645791824984157603475339566061984522651680784851887087399869778077124380518344879710390624455716387155942278108508481038951484878137798177349539042894726995104050596826453476872225749113324397689520164736428480737543438712536155595545664494792644129184109568668961165123532758682616847306529589374117013708816022970535785197751389557800203582268815296763650313845295739700079178054428192589178506207663793874029894311164990622200588454701118961746324698408428547622216573227358070299804712511696521137768324166196091616067099213785654002324902179153472655015726623268192190105956697822241847488275188494719233731457369019982500415905463203582823559224137533266158760944908901321471629711068656113126575621759460441356187482532621627324157738465349286495635101332031869077512933193122383502851659379928612739695292560596947056303673252906277007438789594236210457399909457103669615958518747515034713286600013659621896216344301606401468288985409127164053677208122745803437597767683810995491329580790595622823170854677739839478999378834340033509819108573645945886050386017432399284759428048554140664890528175520627381842382793152325213529633461035382860378891007054558199732347557295808659621544487420529187595707350228402938451619258167446643383667639345835588612435641603827547657890697367850610843877202073850851062310155340248387478275624930199185990248174873954495695751485837691392733193229882932048275268481734937843810944549361346194698312578405080802619840175953056274313875119387796988190888712069284956997259172930423213760901929855189024360007433243580788902484506370779412615215066189487460301792607552849984537008255347478641555052577647518907579372809859580744610480033628748930719575694383884938486584983813254885286113459592644806724802609936943506748080032967941080602948987356643062821667756238504842126870005679362164625930483520244654548233944249352252923000068531207532235936653452023928133125538801875986877747174391003722334843772164117433523973387276655677125099701979086566599309031276878585586431039969462461815675250185691850698395388273383521094328011151829383751804317037662914206655752725517872609683276746944697806856835696175439263923702412110524360526525306526877451619262094303078374451276201835464833732339241415206280123619250689727829094086438176675904848778554104694517700180153963055267785128390311171491337069328174023175904557979618213427876953849895299488431330542453111523585470638650593471844967355230530153888597183111271834448001914452761177486121907510794511096315723024912314379342296763220557638480798252247452042789054625447818970584391530128620756094170644491379367981187183845800576047267001829048287226513827113009100125823277352353728734587307432772942232710239800381277504408434618015158724871742681725754938175505196765682049740282126676945231928504112053729532302339262389688379875508566741458330814843716876582526072966598483875116333783027452189987583070135409115635272104695820251273980129483547660127912016744593289918516658582933086777382370556038271737353785135338036695836872061218913274253899111428997755062418675489663410255493978982507362610352728005182360330019933524123440419647894274587032051820891871848114753789529820882054814102855033298833837044351664356382797233553854344502804424887939250655517795580650214606268975963075720977569870335041754108292899922759154278285444371494905813066404571323092224265506137868067165400497609539829230162050029804221429163370772156018560787958109610307230826463738834971843084560036077127611897433754911785179851949846190496645055434641113550069320893244182498271308937824676481825923604828706402945330091902644425584806545991282026410107897629392738587566514182855554091444905426299903189232013109903736690228689095822029143513742842042496080872501046304714371218634354212281710708811570306373967643582146930453161117716472509754913833949239987091920166839841775524318874298937956513048069778327289366468271880627549508393294432700029733225248428639485170143071817122314146652371123689086244059523690017926712574272923108911021703484374564573323588060831209533620929752939360091689830938381904071170828418803108568346831401892073143201754124726089758723792931904604187071690568039447526143263690779867885690669472337640831308177693106072880086627929410231857947167883454076973707839828356887536653794056475926321269240746451532562979932035134130857266436832495258706846654473588977713333946975315905935002562456555394996799534064818987564719091557677724030364663222166356538578796222877912652496967717518426520457148925744915324561424646747369243485251240457211226151964653137570293940770692030277151147730667116963768735636359368280932232566504988955268353974974455725797405120747283234075059654900650477731458095687269047089750632543222056514152649606858668930744024137430823522483137003471250164003644331803028870241662469416937396319436153999480558876077461465810253352379215018565687443463721278066453454254030567651884366268612149829218200557348075650448359421848734073972697541293686230170387838150622151967329621970211003163312690391665058836932465998003351607526484038589562999240181582040697070976960854646469184311580708621100719161029194509238009068579170023112117660396536281655651333091273161175916963426035437997776108460121750718222859586765587040609674517491835011594801730038130093989369851197163588691000983745167797183041448312367037269824268745555751048942143215295048209111130510076664643959701240347482195821671266879887288237849294359906978036997204570865814693786979622236557092683454322856742544170230678266051289979540637443913296419834508733775057446727266038262608965364291579636916072123624655349156905838475418730033947940382302714022217315578075156079681428837964743154084931856432748355739385914743584642426701857962667195147506394464769499261715429584483411030818869334192091787956310601217159159096478371208797929291960089497414940786813596879626823515578205325892662981645551082284107265180449007153829220306817231218230981087929940587941845908757443208902241626105811115245321074948919285501206395150164381759331654326257978293740870385112140545061983630360541455939078930325179100711759639884085134690707636700513992748252270626958618495790250541826119966468696333029258980946904042014019151393191058863575762610076035185770272515828320765203965680746225409767744527986521843069734221568754964829433953695104865191624271267902187510293107498643021157815766899193580051891449915949047706624915256471011307013086487200395398231436341893027824920623493017201744425783801529243136718404825096298229837329474697056802895484725737338744078298169197189515658029796569876607937773155216500560339089771760530521826549297217057521960326434591813643485482895984852718670120328513714674724970392393216695727758742693667813123929196698654615844438338557126127321950963657038360662202872841373844863131350069368168442705939458562051800562205836870769324984850920419902878712343467536753404403157636406324833682702747017911714111384537972811598355428381952134487766333034555006730867408261829071681781585422825082859145764248475687161365503405171272951671542459002451105226304453937153613305662219821693243455936096266773548349339301429940624853527880389291211974295835198566902340020833582433978479179897800015237192098460673955935055056119976455692426648140475503073770771901285975834135443776961886238300322022372038885474626634943289132849052196234651579967889607616862058440240432954308722728675418108184800843995706430330547728844045621033506527404797825539788752983198416276595946330015527320445961891860740088520346945078371590115789525574965589546107732419700854763784757628778397222125291161828384937684753012716715196422698770648278595759115689667057076910915863893041390220310230644126003204529324175302400371755757540776001921000592914385564972544171580234845609194706684270388980099411838567816674102921377397540166478165169733009200566614606970076635327449132645892107886139030685482944385400533037487094390035995399551982029096324390657726190388778728561816401301973333968300549544165027752169225970355227982125042219441705192046539477272973358729052136446318812198005922304473351188147495512558355418968871915405687120269719973496611306699332254809448688080854874497755829417382499593167374308097412476369238128744063703213088082633526146678626216504400870323113476530888936546223305143086346334987650106034518739996759861567676699784504080681307156007449314672174848994697902042643878151757232792157214984557853929057515789331416652921206624277512428331703429812768009633647334707922454482660276478144716670185621125415613601836420636120346080676950453966229140696763267999973230304723601607525119400168219553287781855871271054098180747979773619564078264230626465048890378366611179498864318148762211347956496643595911612697391933397451530261916845976922143583463711130450168551407800655692311660689999506545773897190066753163456753364692712086724778149039056884801077910129979399829823306413793810876548883237411762833300407502175240971849073420065235464100821637864501514638029764165219347698484676350838898646153179226949400278262447969562907283838291474361987165293433627770915158964171101173743485835671692320431059479989628453239270209947187120699125241747580089376698862043787363044210620294832706475558432702335176361553673109641615753148341951315261406107018230819268854159407477846988477433765011487582262156654854539063701842972034745131958658904750148477556059555480038896170164420282067685591214472314234698295819284639959650762140180859771858196100576403504503592370827269446455633193481492977830337992331008196455310954410122124984562588904796995783593472826804355251187804226045952912640545369820520451765828322131547466467596371292144229559312022609183660009136745649100243231353422202697703510047772802561172903988187206987555096552606765849159592543692411427282005910404208476620279196778078667735187821146814055926506948391015440607695607033015905658353024781030301545297826094304288133989639749590979193907981952121190146446240877027615141635070413780432639740359175547145647864811674078859148503710104808875657430761377609795259637085485084585492601806292452135213240191798296388946381067376737078252942136097560437081243724911788879411941502311665648630521214776662620276050342320091875732786682766674967645814446313170668687527907436523345350882965266818796841914630119149651864032692851569481573345035079511664141318259776622250317867616276234019566010530123910404050762633746980516764862395669418546403323622277470383652001863787531721144825310079070321810059202790722971759797696187534276539254057106063049630347971139894346776187040648809065336940384982168172131855908384065560446658476960555237482725055240747962435199943373480820110227252199931682548784820022188577180956012671530442544446978226714119124805529270814949406349252420478222803393736087533870846496733299816337462348694224816375866365094315619834620247827359861696896412742019066444943391893668770888896490578701805965273417086748614480655943777474334100572967036636358260846592722925910115236890075240843902897480927715895932211393791588754350927750516447444192259602341107180627717354386004136337848075162133733359835612694985569712423333240004727550004061836176618781998825689020390286799545166033886494104911139991000184777339449484397576572241810689434513373862308040829206607640424760021360658187379771340162611806760046627583457925584544356664314658413763551180949970535119373985984521095672699104188018459179854490406989155473456715371514229697243310156502507562253152754550915338855857954268279498744480138226377801956233609408646738205001233917907306845685521252409394987038978334606274974467212695284766239782306016866174991660957693763871957333814410369241934982859092502958228407848676755996983952091311454138375660965047320409136382891164957694482517800118552819693506481498609360587245076645387105356394983037280039402895036588207528156237797726654127733101029945026163276523272283196945428627765146835375210479412074013385921657717334807437088235255851530123818631124764728944235071629594288262502357929532282686667197979065284670258504119034451249272600091104877346134322473710229590745064805552390817872669333922908534411252287490698262420915145938620575208724797769927458895355828343650652496228257601293730482583138430912528093264671490738848096043947488000801649145189174125894718748896691747165525085829282158403405583313058248808929875554144260959580247867918669760228458936597854475486173933615583651072259209081802531717531059085766196581258301744542984122839704618626741983554772874118362226609157780819229915925002572824741519712334792386524005331866041530646153579787474420822193148342462401525271065804916884534634239318149265996040148942443019671372164224866300852098423796493731912476104254841113167094868873109060577484728648563877344138196646214016933461635049129921322308320561410617671944391018613355595720668352498293455461391337681596608147934097591115484852906713288581679874087498362425536342720007307455940352393061272288814853777901601562635451346839416689780129534413258063178293228787756959267333002898376970779097978542314357257712974352955796316488417063216490888472656607224938146230470913726359798858771743832877787304013272556087994800898821957137389272945884882950100073481104085811632518931150303229772675142710010932511099750793072643504786505619564776604108238558133792290691761256762804458444713229872955082897679613949577362513118181416661476447134497010505545681953653437690058489322459530633379969913377899324545193659494216585406312447217620384321498757560596860196736093182529465885006866623642128147494826130321020845733785246778382894616266203540471973666119232771974234990067395544236808935105978396631917182226231164245422745365309562226565825060050535186994360970850789218921181900400232808486576005702043164461226352641464629508727165033405748046086258306188372100863011692914829498832762225247690962346048765124846099994392279519118164723303559507585231451852477926425702138206491353961849351778341087503776404577095037796509927749444010158715878757221475219920120574019934610934703299445996093627290082083320429463584300060317048577076706129132726586874768103700074612191986181920850684653821787947124115077762562978887104247487861047975594315671042169009791696760118245877726456347448369810241891555453536821156279004620290569467173600811133399925637890758874857810285287626855890405036272142815476698382012126965254074525290624784474539602457768275911183005334525371848521624463240813817192748910439126610831088663640209591004604353633472456038060423328664480982025027205514869681259567375429575121075127905275810282163013785603718722225215191027147151210956192089405639731237841458370830845304146439040156322985176101873295192834898214023849655059850770719069646476243067759823724708990015223392097115798939128868154305580416743931237382989796433908142441825301323186792072611358464558393204274995301297172854938042518948052335285363170810147080475183109545121853460867675353422782876791508530143194452695420075404624809365358317191939211466493266719204461407315744039122531502275864317184180639899692510051127858313577438822577442108244140943199839819496807485782421764450874640332582245032618513946788742824796120896643844217768839569551865420841128911753613649788559173850422510418756584605538136619113837364189256455543169907303902185196510200602106885546889969586003199050509124411176457958614972854589638849996705674363030123565272391933635113609779545051143986287605759994693207265946503218446044761205235519329602548882676013370000519090329442762029822229903182949923883198620519782283278988536688790911301255927101315339150725905336954628738458757859314227534195641064858097378784685858165513665731930379930425924683922834783779079809812834333398270693618144203897474436494503518497086733861607921350315107368086192814781449986621112296343868346771800793917891416156726491720245355848149035348571645978778920706691656357594686377712455345801377171067162672110206875593753704435663430386294118490391531583314262534283972804289673016657470211161217306198629291204677442581071712831380401032712140542456592503954512442067957763381971897187461241848902151169578603502578717552478729883675374813611275124451623650308542461908370210155319333512322627149493355256970826075237104779992259558910191420542348396929375737146487519035193770492117811476190864323759176676002868292779012819641767617392802280005198751729065807177594198745115093465730080057519710908803390015572404362232780321205164596814587884217662189445860018917893197548518931114654136822319864386726904173233834023651602131583338699472774278598950696378431681084124117264389235709653486882591760917225612586085115292593585308428820637381938966661571079321144384687516246353272076281918347532301430615576465078010159238188639529952408257828480141064945778439182170569633514859614034284224345281101869096435180716789009721650263683091350043605572995023703198240239685050385551759788195182659837916214147367269435689947974438145955896050647341858756170534280987730776833647461893634234712397864210569520953075766961458939349380078048456237754316895423884597436648904571757465295330094668700164641206517003425032048339502722265376499316669696396543754967043548036212366606572510742288488393912310226368085913613906099613370547475707247153084473760613710758061100663678729057287097516688276440289873287060535914068359803221837200522508362580891628955849807935043125844512011095562861856958712894893677030785374858973773262678070416868168402837564925326711830182146297797098444620465503562156443978834336680986254943453352805229681879649851720261163294858691226381845677275545221541378285774487790761411545773628408666176152476666220444376196972034092147585954214991924212745064214910850948835101805264521846768133265619600577476598583817884388130148704360563326126125742671407022853518400703119477111057150131086118338052950292129467351852563198605727445336722934357187481128523417925783700337725304203963864859811853341499427413435972111378000889278670878997103370798423327560708390914527589533031372336565562028639089542112317797161884342853881355372324067611653417572016786080845596103059774560283705036894942522889715641223723921487735193942223563342953774836407904455934052765060398240752711299872762365634842072069418862561182356247622783796767748808131831039089079949642038961992431357067807845732269773100026548335105786579025872843218106206780439957730799298954801320728445547862453951798446999799644648541906161890454975234207870185146322080824326001618178740086629060357718476311614546215632218745989082930050083209934076978642375878910274257955691783208371323075651618046338359961985895116175886148768884210507930069598597250412069223598833059792287378459401631985908169060107131933100007383332440118941607441048320407561621961430543103527350293903963025658414067844943384329505167952493731973987836450519389607034403945302251068016400930808583076006951861927202681048318891802835547895471290582523092137097880767868634892244988406771748781696308466583476109644340106010542870436076729178543294451817945692604875898609337660897554400659774272292285734988818426939572942588618864640045237713066422442905329465218986498377124509944453812153304272141516463396182626004687485674664133196921948969487074014739852581608675051428478803511059155552127079911958491526362420323357438517824157500602770217519494105181577843916726142245912314670018966250094223419028631759105130563721776164965259149156103404177782900161855114755089472055576244932302581414500499874090245585888740761222799447650047608011559681033325398569370253309415625858536432545655370541668500621701062582384238724171436904975369297552912193888991583047432779058326139490446119592455137867347941495823985884581915425020870916783471431450028646283916549574705837718284218407003652060818353958071713723567865223630893978584630233412198651020925883506530921614727138816924425237675937560751214928065629243815831462046396003627068848655023188945682392190175875099498173399183928538930110870261793485132080228116128159593666288035566160389906231237223788839911617815505204000651656418745629211855705178611678010684794711779590465148202066953916529101357954452920707106218988243959099864424995711799970091481659067275620650478912958207352439590924891647103015982737594505404920750321872660495105001158193887378782040594196248063298092300880740634692694192255823362352614453579269272474559637570116540161492066274195702014204049245466849265206859478102616707627940355088935535634495083916348233239670643514003845777632559563055815478165489094146615352407699871081073422201127868576478232298623268196637237248139954279527102362737683925211532776666481449438618942062393574788471526407579850216498680123360908251744195863676885164168612356309303298121032598203557611689520016522485633234410124498353502952274449721377402800348447305783686314628157477185190408612512047403482434651267865175199951049826058467113970360850083993776613634254071686008983847650756806962244814704748526079697989271291091170857531717061931342734661052022930631090153686780298820486306791359581898625203289098469593721947123635632419983125684680835376823675138293546280132275115691021802474846504443303744337025421175257891314954988978999296577322374045415164471128895593547367490416275430357071120621332123774127726723135766523568417008373290401681724189056199176645259901111565458159209072503991393239345487949007688573120319025904293867254839425655704246446135669668068951478014150584314422601126347731590206789490900403471520229746204493081076299380552430807736336120607284879520952273859657014842917817847324516649225721476664565610583948321626804653552238338705891590677723343375660912255687935949444671560182411921047041068335798227451862269979303305543800491489024817468896105683348557087877670325502832273917104249816933244103689402242835522044534182286511454265698122024176582147780578045878965538323562073041851062505679128244421972402589287430163838597037614047088107315013855045591152563888382248040352147525476273756574760061906256795466735360832754392869294311009695382693407272070583910728333524509108993066053251389092877222782236737860273439641823998730544939389181518704131979527971034638823000601728894055117819923033926411299695609863156782550409094086685912237269415237435612157036880691212259398857852800019602844999543499283217777930800941482704053415136647113330631210841943597408211871942107713125025895047434921502350822802513327830087198343538933518257538342613448866511454899636833179320560599378614555337139519109039585607466625902504474569412601620406782834534426055958495813317994596704544935140179637826847933877117082191485685539988451005148876357706372645481203214098180088198506471713306098711109424799514336428045300102629679678689001954427715653523217623600669504302814353339284500377325442118679287305823953196815067503381927375700635315677893549344200726659072613041545856412354841336044613805548084114047070750188467560736662529970458196755966059977318213473543371971918925057963265260876705988593590144797243718674932066108118520999448014318797360835964508517297493108973345187824881827420102442324469905980999508452904813914087907800995120374600671961240199121389923302112834861945228964478335646304214142799741670002390842041804281306077175082978294703045588635038941872673307394495616140536862018823871903627384482145346603571456924523659867840755229430960170473288677938876431427222552387358823696550079811934514702277642373073914070791171060848552535927596235957641272996959041055657776787364294464344561248855227046461049239227432050028647638659085121747778983693809042897667128851297345480056447134649753292914306404249705872858553231291618705985533188577590025699864829566046007388425825329481012312380863032217557306904417871402513054547896847283809153197501327141155391960659450329022846879002026930212368925213794163805046308581468555989350416448183102008441055405207772689091522895337342075683879221665586543290392847667838436798054012817554871495645858578049772630579470962908477328399720601064179646713923453229213177969770776432735595418347376123094367587088635310899844393163207615772196106936642438983938863308377630200227922916214448253138803593067601962952625606946851187762824316417645356433968104559495160041583003347344672237978236909785299271357782497486783139654639149631747528893708256527502094462271651984673578999957162839178804689940093450868176868295572174343125712049624682707291044323638704984987241275808424301207243185732118920350825328019604558960364026088843531950084689028204589515851319446309806009781824505231417316086098543601435624315898289644103986391063643965515743958195341213525148976006038185746976168710757814235089468364267001102575481096479768813395943444346447635746472368594746357017776070926653294891874739836253525565944468419032556301143482195892068938269401034447311317994305074229529367396626220610407433524500425092469418832587738439038046033208511686357998819616876646771105931898319668593539475786489484121323098628451738064746914767678103085972767970393078582360125742973410826505498027991136388133360382697799989096288489503382291832752333895409270903895232036250789742064436123654690243944751877269399479958716612272975621883385048288093866110584397222611089449754426641478303497745844276095287860185931834703683481105457789596103862341910430848472172730644228695672638848020905683305761844944075912632468916124591035659193737389667575827334315906481985761437388598248976886024399313666124453541269649509377536995550294481071447067487205397125553381148093989670091472222891008919829272740919078476066103510688063646240918582851587406792460154392063441966390774255782956211732163084110552352253741126565014134580660710296135511677223902927363099710116609820379826813572459330267207700478894710550858393318339653029668665352510852595344179980856976698276635776573645959023192614568217210116492388543274991643068448890942539070067550369685411026335788637497220339465898499852472084780842792422714923928881844852162829744733678021731897984565354942291040096790426174326772420198349584165571102253562563237755321037804933602979489059336781254963193524541749234967974440018385624952599878837800425646539792068343608075621211192073439849120524510283191953674439675919109460534382687000003418265195842011121624715861761271528821817024487297682717876603161678220023498972247682136616512522910607384004875833078742467193196367373113128205652036169192996643617373260486302150130962330649937394043637490024228503390359771643627617718572922937253657209382876615248341726669160377061089007006110028777113244751682175382932574800885178508210213090320352441694440469754460766915233083128989771950671182844818112941419494200064019522751462853376116793975260638819547356255172293644831289224829967645380997266659650088951772914125602901948863034597353460111301472804232021264407554137013115041076700103359168110161786175381581369289612487119828828287403504514334941832971669892120826619544875879215669222217581964465860729494416581551892498188439364145020109114555997450772341981571614394174713173108322078067806951288900385413961061506534314674322945281245978598398911453669973171049911070061553199164977805414107602111215570888295928954242106249032286804093457675520896067333685435619172994870246902000893901438174168697436075725281838584384706834410343943472435933381459408445457128808897910199804284700666082277333184682865571163849580499786918003173858810379990256171404129548075693594122512195407678134347409955787871636406776417020171272697849016433233282207212565841366708080566830780949818291749669784001119260564348285281470199939109280581625531907392339922039585580454954606669824545955225872822648187393697780522340668819416441598278729193043234599478611541995635001701676680395218643560817908939782137320981011428858405120929945979375980103904145134579078514086322638123609080691964991758377173843652627111438459506641692404430448636489685085670532201038817643174007339849661629343612422462335041134992070129032218955655624773257237681706435138729034933728187884340212258200499593194878225597619293636587656498618794925465418037336759458598978095988975127016924694391329938039564200852829701381942724086533776708246822060753641429856776337868915219672229799296767842857150843892845595972399345849758572267450957473953408524633975967344552156689556097467904530525083181552479756317482643288286921682504029278620887726641463609875216691075063073481451526349472073328772863921109197467694100247330571806397666376839139101363344956534040660496061725096651098121459670575955169327657915616929696874105635531602673976886577325363267691342624750027965291676814228309493329123670069446243310332514110179257137187930640401508709624429570968674191098957194893217688062486850279071630979139592422547466811466603139624152455465046664799196426193721829603807208999699628987485075978588356367009333533629850179114900812174312381170725118860509727762387095856104458446582801154624920164121815575050429260999052678725764916935169717975716942367634082171802218727929441580458041650349424782038878442731685832604675270035745648856989521624700418122163247005793367236652557960428485486924521583677006213637528551651108067702244810999142574000406629500836958996811792807774884390560747379172239989769486811326315914849531747176846207805298153760256839306082424942068765164542111839901716275439590423015069759939240610005326657106373155375982327019062075442706445977413534659512738115076138988270063474369284588571796059584201830108627969449443084659742221630269761149643886420829307135333928913180274928869712546791929041676403288859278545595653283182802449403466481474728898750310033674799079149231606865018944477796982998389533172538129674160570512382407121596475789693360380482091584566978493431787907870306408241898089116714254505220223481992232964951308048461381269790855186825956859563031165894313545022711068801434790618702514699506829210450765868801359276775764063544049374547479010611615574143441967759185520562205641768104535815599430120127903375923353822129498009027188206202813992356666487797589513987682052449369150344703177607875337306967479342468461451060897676898603422029503282249123102987337858109442663559220651056211224370846919681032683289009954087621189984239499251440342823808321690991994016628780645375727628654583954621798206985989860090462056935195765552097364777140045967318840962055708375211801848071933790840280150375877925133719511119496446503873611574523584535714374102795534083893500214913633350904122828469679241770068769900974070029927798867086716064102900747651362180604745989260335055341948064152972049638473463263180993233089123322384738869199309086448434412703123739164260693239479246506309877816578430856184639399973728932759447725201368466776973108458184805082729637684265523477033638339290799789899965630703059178880959503532264468210373926056730764682858895082029966146091653596226139173310022478869438551100346788895386636752945680623873429756556832292360732309971762028912015079602661846448662111602652493711722008626337012696824609064133060272877835684918471672941789217593474315771157743103123580723649476799005332840548666652140637078803004967172052288497673212155854069216388584692489812406098479706720873660546967656174823965199370336283397782222497495280419010456502833582871799422745029009503761479882216603251873192217717920784873103687589806799810074684219622569522457915673870914924476219621409795947426587343593614970621396312742762887277044425940826738043135724017485057670878383328805280880863828175997569159333480581615103293880234319727400203397491233615244475923381263097903254363876747120912063532236632265521131617277721336522574547670789976701255290784829899451973336984815093708996435923469808075947871043446720976937211149965414122146215929426297861856079473589671698604581359998082309158142810521120125787642954650660721161534444460103825770361769164456939425788763376046167190113655506935708310566784390159102512304387043974802700251136685479672736290065459669752209569026805768920716201890875825734445296801179569653111000813164824419017951597401815516001316370115324306713170173382782487568931905226871188209419125025753961109088406268120014525730810502256179756572099374516479074591594979704982742756128339870718514574122678365188415109789288255365295785641831394608722395357511586560059030733712717294221514890428706225159377122139550712948337736677940171095357513482872742101832456625593653196838230604584557529020719370075464277092873087653478044127105853989488132606716892433125602406196757480919947135670961598120392571885493980090903062178794107237189725914550461997403024966833546199906574788010462921528959033467017788414354423866953518647392170531031029443789719355962407511068067899125825646798603873999896367093230781171295184305820574583238600374758685542853834125706780555335959810907962474306883679384739613340911339005817073044087783426727416091349215526340542930702939095031495857659394745576978537813108914500650129284893120549959316956853854298853131477076369233255569085274626049183885229692706463168947722832897780063115202951547317451852324341819188700271938286194973986702702088038780974595024870292112769723341646250878570237751293212877196386091086385675127422788052035153127348318468258442466545141433911281607330683570899334101961115317633781409392935340733962741448018607540193518980295152867462707581292996291213005749960715225710530589535989136054753045447103196880314169345517958342591839700088556567461052623160408807614793180970794336938895833748831887502826127702730487159881448408449218747371848348136938777293138496230382173807487094151878843117540347126216785501213894633968000409069412255165301923059112990761441627510326259809249293544477137290184223657002280303168312079604542209620666575347546837702084527627058863134464167501456655811732378163311225912097717830814201401272273361903335206087527317149739871785278094842323102929020782330314365716492368838705711542735909623010523291303615951975728638057199731639344154930773323464646132238058382138469820562738449030915162838067351371157378414715954679057176145066650281000358106006930011027018911510074804417069903455926671143881206875815378088253835123559550156739595706249893552115086808820062567519196630623004976154142974135585973900358931163160894557836730134132508772632330635750422127679675827582668313694203775493246450490127857852334294565439392191181429655056252852480610736986884556219153617185040855380716018175158952080390081783589182499178981292876920740009734147808530515030674029498337881205083245915226440932525354132422504173076703086007889413617583511203478829831823746936002595318554082323410630424268068948632281270731117988345538898518685065221789676728092200356958349421365345996364498170525275444721196687799490573984807618775174775367870302651832794271433523434757664253466362175979457469831034197747862748999849708323304207658468859800435440995030556118425622297959458856092896607224450060511192597732943152655410725398184697911937504227478856008050903075204414113811601167264385112371453567297586264387142654357926099264396116492914880307286502529646516225943559457586333946515766838627790305304089336857550944459205416474008501415174949609873257972189891004650734367954241012875242277827779119418145880900835903008383301195595469862543568019268342044689787522116849720430581677896103212971977146241324913131193585912307328092942567732048226539370635907011996647065677477790202548634098866446796182534703957913653301736502252183517544376890634524782594267642385581076320235419058280252184365288370055681431724265182172408763432627661234852605998742558364983363569859867097611357929848778845380267680160086417296084467918209690880471751512916402601974816207338480971720704573748617854025914503680760931788915484181569483131189684237701916070108344593539192807205646073576376245653569739145269816086789918006965328784201492384133176828634324341675918450778033558212061172946806724326757750247199135932916034140462620395381948146027205533129173413137917252766696630085387869081556153333756522287097647847830018114190977346522598710415233432526089148927921908748393561858508356971471714652254182584186885201352444741553057396218047463259555419302301747065749334787936063303400328622934433847528422076368524589736634516743930008713265049722436298761894425142925060906552073544061214978043238458731430660654898955719937780464684016864004425157101723503305144807384015335707562495485623835170862380070890616010833384411691601687358638231493973831691684982325021735572310098895529465518944210162836663970226983295751272287144039541662243633520658066237555385150452934930741150867919683941488877510584817352584133530367976306258987930390426211405088651031950265568966877775436651676067101700914823117022996761009090843341819075454921116166436917720641360737608470384377615651468757952567117529833246880834335423520390706678061221607281824932615885648251669875421288913034045058228710038360794796150709155769296248766362275205930127120942740017130536183154418923931596225292737899486296429327152222568555761666989735825382989595326267003901763741742160092097734650176617578237549763623458881019197387965392940140785445160016908567994060608566650963433990395057781995708416624004964091903812743195528385400042039765402704653770507746536925305629703645817075491168316086422126749382882773119075688245245055976134721275626448278335905322090693660388761304862919585522333967620485248698276215208730818047457744884590694280741744338051284844712872453500507520869167413097397997818656352544899918139255022197615751967041016115457061887354819449005056475398088700512197614393741375509186057854410988297075394541217708083305845770447121513065782092136216315747914411015223511629161247857007723292838599258548507954119003048499579326916018061567255215227261564132678422642699608686063781987479649687645330303067740330829604789244187857820363882732363610531131135203821343311241453826366484288695553735388151425692201446300062334623864742017674216757502823952639935066102324928612931677851982482569622519401259092015259138352580940791872362643810997615242811087010554965360851045382171239008957156649235943993403693858258785599957249280882978500645902999800821413275522341178734483231709194567671649933046447102060693792660991385993932337261571821877414527226310386245524218501470419002801586304972857497893683694278824417234943355740651548822219386505763749341794651066905079497039032340382798893960200793195967056852042010660358314396987863837957182628786083249933769489604901615318368539179877159143768113093217897593983682745157628616732524872396429304030842554756906911489714599617499508777778226362078742919457594374732226635677287027550712217468803675423156662163685280962836765295560408264664124796112355528252656076985125612543697931384750624603370351239450657580154188847714151140749875020568306178131679038126334170368062174085281899183544721053638191826478663718229263166671285996446110192886477975942564101853791670783989768940699513758106018116134871096056260745450457930683385817676296845735756736327776173423598537052527965999529136560547068442248452679530684179880964984889069034076350165195638508827939258290338800378552413808939324462716773357169128097853250598845857253048074545961275360457618222884644614284700607326552662216348438303816206954740462872903577047174784882196202930630660051881707080465618437871552305088750616271747871434845578966756702692108764140467897065354138231273861487887936730883018804447500890466519548301907263075231820678516092776662209075291789442142172987798580772373049122176690889181369353530469605053118472308458788148334963654115215193364069889049161367292831285772738966542739736758573738299142836863630830811961419169002096969925589976804593840661603455766545651525592941882907705863199933986455778343100318541062373231295692052784941250778766458264349619176270813561343969556601698977818878285966976388221984101380187611471810046268732129152983137851474921051974744685867102064450547958637200408624465698818991336620817205623372655947212469402955039032822412690781264490916966128604768221275465480563729333585538639656099482659880945224675260939858629778019448322284328299249430627232263949332999761314770921478486437991157781067646646044209331790840205005136001393884539943207523174442968295227510813555503577097177208391930936484977758231057059960057267425848554221010924495323778700324070847911872560832231704123012917675997018004163522644706125774128739138053340369911037400683227921065570324540084730893979835863778006800539862732066452496258025500504679086946133811496215631821481667374117820703936706292606871356694834763790266153599782763087355741643417260142940309968466977440362642785560114910795280784106954086625655079560183994352345259956008427480954750373330626861662954706015879832599762641765617220484984642507608082363349468309916108485168377232973919814061214334752697201055093032416984657429721585062070452347203100949284237911960507180026738304525624875239978013145239675774550449175345164970610974181337546141512299528978865851389901113676058088517972963473720361704427290868766755263495381528834848797870443509801679269430169746204664410859866500587950418962433631732374336894100816737327682753950804272489092610779382106874169469256948663319448087444934302997003381090388480024970979584120047781020943621670753262947063661399077281412634836525380028494464855860959943161183606808980382057060887910891453692773458919185688354915509931661159924515002866293750150360585060541878429571286837906875775871954332036421210527377232589445418512348070174676105998411919439618409252904440204553673642057666143722646553390037000731943667736915324894726494782014815840125606382240080450896282613679067366216846909124861896062004399518880756335850375210057599449959007393114938907234155464255953719284405262470690305141974047566136516071515597497214553492984735710137478667810352293369075702497600621939839212679032748996873906978479639708059124848527052731577705806168160883644463332105012979047364722831033128273725774705033009860428159926075159148601913358863541870767481478274446836849470632877067179607569391587044504119733038533426486982988189748596345328705570469143418970459003444134884829419954267112479321286375151483439075218478843043656569192830377236648760221643896183829015412753546745486421466163156856382914680119125643462681121299725177063681320562717131337828562592818918316449532600292442333675445164726592337621113161058671964138300031143027445986231109092536550891268052736953276874545884935086926961835930859143117661493030917588556752725941746127033131111201278677179867891904320025909172244953167843205607886718987519287114725357271042299772733166308596382599715291068415902131738207143730581263672439437126276160935133327017422839752148306435362463680624467357750536186094683890228384679702926479900921862877991591537752826076295703593973772828192729345903145666651098988371157310829096220896879341386876612521597841245829728844542947494821948584899947649682649360403186826495162975920493728412481455124272530628020720406927317363253395908432482457771815090579305191069295157315492974214845078908253180279987662269271294562914965732385586094659480884295794021748364039906195392528472425475228094278958896370474371304721954579866556452836137768512255462981503923903500153295041488908661316882545070156171980518810174072420141898888427431677334043225368574635212978006660830326044526248138480616059369681585803280973516316922250437039234473218008151761709529809522948679409790016685832379617329906938352205037001307526148658259979537897525677146850133349304994085355507810521212387520699302143221431701930899268719360409336963801032456520477355397460755599756242859589810164634589257275659860891371719690591343119346820359119567246949650523712893750514574516357264955203976121329745478444173123013053416152381614643047868780328574586442821892405173558797189661736488951090575951321679060501342895096663563082091221666998128689953323960967610430780375307406572284302497979217358840746627639093603047452595314256505452225298125387430432256592837212573590868704707514519706403079493295002095284245601036183140783761512962513237050721877663186099828586191485787125196850959427642741177626981311699062423163568422017983029797989031612872023061779292772352661556344959008987834811707785780860032538292015259081567863259696726292950107015562112816728979712545416071444619929647561968612319935234069337844645370382572830090125254525108493188048706211830029680443456828247187273719354867638523909393667862001692943057177592045892544002793888376820171352448540238489849223459810126347181667934630777197113086681299123044728917664937198665285199272098892556891923039036426704034699327854417276941561270349913072032651365877632671550765577319539576987429021993621778303174806069991693333354191674887956005689236964898781923775333726108703878537437519704303368375426520050278225512895245571611743330323684232051451407166037851844526609585954452484393902677681310480786055296695808001643642783949052828467152233018826663753414719249964867728487968932657508007151214127477248294246535029886110250063111413427255275241717776684545174369970576890592434421378396094032999569068115529212583053266990795686226232335818051440013085158032240311528453419803597078864956160567243452040469979083162391281870930189929413849291558695033103799646704401077834823350137279065032251661158369895372847328506282937891320340343967544299376772298673879664385614979095262878016355918426408356439624503764347916213349543784832460241648275468412375929789785678524384910510993085321518512948231588244141171132801061238627311301485690150152137551862560927619202153807306385333142075696353780801653977872888187818615637591657867802158518989834014287948362324278516323842048553758313657819780810640301326788546759686533756661834186574440111441271455167450847928754806176875075915052514205159293893017930763285022804624309718858382756015434305768609443667165586561764515197206327792353629396898442718946491079398941857529451913606752387086603136966534847521874690843850717994758153030690669217705968895796128230966084282183213601860314060468805083733186040961448530187749960669799580817692903326299751034574953120684203423797388550002492142000156165233259829927106373144023191356894343928937487791152222739712410099968697834654695163232565228966141688353440592936805012673240935856689707060745229860301700593626982748434060143544925965402243777450759064384553185185828214585701565450887109210894132730808828573426911802874465081691765243718642259639214084605569101234899903296172014903817523988502135254155450304928632313891934683463522093828062918421472310837535896703239649350578473328532258363086602040930525945487648005569654562172506516669284831287814130917962617495122459688462733229028695171000715181747565519345544421498119304670095477821841718941121320749766911215752295812127810847581861101460538076551705262587680318989384948342810452719954999923763861614606009752567036344649695630664624249455723290003385575458022997811580832763851301587975732548870264746490424297907975735487017349201201536802760776061440063828834394133115449920867734825118621418573665385299722232932026440542664611553303489648457478640260841518885985345788964144880504460381641641264903762570606771003998694292227867395084434117950661217192145997514693029697426677876238163485391935799673367066523947521724339652407319639180783099189361385664583032718433466166517210040497737136950411577224202808690593702668323279024950920280846004238891138155038475479468850188253855756373922709401320533793291485850999556164972180815476916518449186561915429827109123362364511411068539726238818392588790400963242761027830812043626602346624595287473220260242448783345204456115444593475049809109778652778584358951856801239576838925568674539280789843127327752188831103884669116184713516072595334737199537244008778815256641515927790503209149481388830502032822178159588095665819322213174905027480380155632609302169868667451825519328720371291119726761723360299063637107591558534340499260591595835474616058527983304961450213246648068484491265581548718996678132756958920906555065897068549729010787280924878885842681335949945153854225009450172164810077420307838550390065996553992927481221518205749341714630962258040177193786937968078805038478858909802413064428761797763280214554134977859437659064312996463136868971336673259322543826238435901012226658324424193767476190441246354131013133568680337001023364793722683911833219319228045137824608396596098988962994229989245802644283255770117946330185857209551579038532365474071257064119808385825924442529805672974754404990914858303475856385862136956605936159019158062412422125725726667392341755856898907184237449319419275762449032010310562526018905139073827324343492154579627451120313632813862051762722095011725408546459577488223120795904169927911407345013115339316178842441046912611780218260196157960531994865150573813213879550182664254932539551452608772555114761757330893069646298817793120397504841812296041992683047152036843842676747608750325935505602257282548320438436208897364761191471395936172276210527054610342880062713627766323598099514410620291555590508758023709856326638856755770767321290271554540323193829092246789847220756050931692582635797009161510220086612260165633004223722631970590728272170775066649112584428184669508440336067050785062367542374814519977101809523849134107514266194375948480161017236984929135343391538316969097844391794235815908289949494470224041190996546020376229485823068743703859552439244677084852202249318533648173404460081628646291886260125600088015864649368102289185807197242550704739208711112148459219788653036305814957358532731963738273485814242432089351657627067492859484739002775927706275876357758312943216096466633651593282462370124077570627775602997603423074891328804482677545981134255392806207104181824181600881431268371191575939202513937498131486146204939093955802712018580809803248708482531981941967571151313030273975861686020792997252658268091696943232084996405647542068596689777067429321775918906253028818901786972947814827217687497863824358821846184902445284384085547246044725751848838164226899284512666844629203419985785607828145886486414605185547318272600480136634275990118440061680915194508224438622333034772544375142534814186525949692532055827379221906477005315323224482323056388290445805824506273891033680974426376740865096417234815859035377578673156503966866140771429258292307051422229226081539682328654381043565680565028760290922641959147007332425620193440402522912697482841417168938818921131838193386750855268425042171613454412934763003563676475819700498669777564135657142775506671025201015746112580090743007641649552752942015187018506794832011756408504123120649662418190784727173601315257303325693176461603115788375472460229386621192531618077738925842096061703121865538342316541960492235133997878471747830642071314930081971059333632501945952061748870422204273810009651984588845818963461272446038449916571188749812732508437254580935210818709289894150863506591246766074787262851108614336781066827436448146430782790166760497379525991426212037045378555410962838990545271872334046983404742369936556821758124721463983469149559848887648540589910765300799769656966743789919580111786238715098669459471756069634231974796672966632822440166427313307890208305578065375812029674284298607171942645413644104270585787062812629643835809735688075332523056855342248615959951941747011071410158861305521080156445783853473173361775301043518700558966102980876407746090075921668217852347432609855770075844204766181128299219039540187749926412545983977738768405993039707826733300736551747772107947902249119859871169993018196247506309600263675244082881010375928181795498599199048013439201133687396086632633534990491946819572810691660122382177617630322831740120618798966914593495153014679022674738926712968254875427467929500269170574301806649470986826296571677710293667303075398685587415306079038631657946248384158335280372231192013349198188914939102395218967024992321550583028527455784182332773471552845175829884656125025460522580487535423011019882518689244310670604670887021079799804650171079800874444466561839158363179875994300339572075113735874169522078400276648482587005056461884477791893310230915482003054148527938027348231154221060779751004380597437507854472930786995842839748217715469172253544449034845665051630856158678436191984128990178065818201755298350883152475598929968998725067791133142380612236284533768703780738057613845250953228669531088057715893816329199169400776621132480405337763484077844704196388484428126453210582250811944197980586036523488087898612263201003036607503372120635874621948014871057771887219662262868395596622851355780791717778009883812439647767113539725205279527139290166730402351064021716850976310118296935405301685408229243588222383056097407409629369242261843889791915724060537142355807110137045397123173607128956936401187957884848804568832668077824154974237509483668992063653223991078944017838584471908967777673976460740965793417026966802535837113463518725507676693852713549853014870839742517579123689532332742010851863678111849288252737426480205949287605639691565307836367502512207770709108128015398291802689710874691949100991029284446940959537236106236318039830149606318415185872918763681948143632826021506432393904101862529943188989206390321617975323568757246575120874966890346933362355443324140141792283501989255848666386202378438724302701048526340512082360761406100768754169161918194781750414559779479133378512805766459887924359400799009272553160092544240100861445056821661020096615977151790603633676954933269234120617471874642228310129535328459281009270682213002974695714982855235389334114822050350299829608717482082575604102681249737078858686387765419959396981501351936431977280084752164020918627306914232239561253317361276486655970743037292227718863741204872524285415505208325649911823833997666679003777290852720664094571097120992184138967736535396211186396699756272466447989595366756359408072221707597710160581853433897469613384884863792285929638780305977368461020557760250891852253139214218474594111864925996668557753665420206413544257773141933572675461792881894894157277486552529750546915476827377469272585577076991007559327685981279231271538450361827972454869523279229041322498103954600637902526590470058448106337915184114068113352466998904535388065524998690036402350148235435550607280485971979065121064456180765593471224187981361851261268728553877834910419968933299520266787736514267924080983951559090724502791433233047331809723212212059287561055582932271217997756450105276496795720225029352891453493001000593979262605695088029190179531662079492485186254849194356762884457487639409804358595575238424449768799661495771620224633670674832482083185949441527765767861352382353455106092362380812696117518209472465705595106426732428247451493986668775997634064739955722687969800697993686856638234068736970413521442231922173450684425403537446818849478271953133139921948677487926423047731738530892789030632794695367919513607858148454710598264441450074146835416105004093726652774534659730247423737535751118058212067413674555294286446898540660280092863318916134212011670803601665861128434816170932236103295789237751425726787708268133266149787095161611349052429986176106078775430341331380678132712807967956684180630924134572394269195309174872987128605799194605037749174383312927255783703975363023198560303471103478336101787453421044249416391665415842242288878142697004349348646382970914651964337796811326043305259487159733965018121479423794145436112986157394270590959939821304589973764210478453175099738851869875250473511683220784899243866062358734411909292916439348920311705869428530096658405344536086473657769202121450609796335626195946256463947801196583975804007106940688827587543959784189653876523308071133692260441948721093456786651597462270058167261220238063753115838081820169843652130188706603973053886040877493474224715588010927031797237769834468607070761051153186592975383450523354689989974457367992088789036136305502379610291832900259845431148531625376370543475902095223591684984586126050449100941511989717124282360842116357599913946720166237651491820682388778931848285329695797571243353852266720677600448943832821160688169994266033001582029634812309317822805082396905271190108994408062012482538228169666561728426823763560721535832766224704621116735899248759066652200539293047258022914098545340841451810101761121427379749437541298031747004391822317436429384804925319147248193994644120128061627839547581095165084597247877711749435681720193153139817836010121083095332683068478759779641358846381675546656040691367454766225243332865374987589425579756831372611883885546689917862917765616537125617285918639280847831405869892295756078371515822541474973989827557036365050914700687334338787170591089835072591244458266310478330582897174426624024758568748215329912940332739129039246095402924895229667561076873840399118144665576294437096717967585779629355171106803012842549963921151614614346069825574095691579898435215652527779671648744114510152396597438368034692395078598262808687057469626822630726746619175847061805676800785579961854678204567580743238101146610099275335606480905173492468195538937973818285782359982518218842437590069877687727543531474935457736341057395006847700752062534283289067599215485028117967244296964831459542767479350521543396825438871449892534132126683529888106440520629289555039757220447163562446220398144281630078047013316113217587741869620453930833091593633574789539553780764242640857481045420539836945581681070920085526910400812870459433419587004794812249677206060486273716319044136363323333916922516708136265871045426987613673917400826834857820100858561887382087629977327137123592907551627197390359707862570997619501882335684906645531152214753940402317185362160539160272701515404104584920269223735713212546948297646952891199069861398473376325846563049051638211371659868058013326716816745595775309355402014853504451256915226583740978609114469008713565762385582615755067569858097999866573653796234236647715578609751658362395702266361678918762056122582249702541809988531019899085500807778626301463169132383829774334300026381674104597715407646539164765196839440975289730524504799139981713777279788306703681177560110686924149151623999446653578411429908147998410171358732829377978765666912046933926126183163852793589143129580778301323599389118077857889044147897738116023633834555374930132717595911411267999415219353859731714461044940207074960263593253424812598297639769514161576381281551304160924950822630834989565657112205121500608562791244679274786941923212237748991625160625996599295447522446192108257566120043649835400723690684969965022634517935260586639632222408971060336521688081758857235377329230833612785177971808195712741936651016384687716281935081686065537613637851074262454019020199562199431621671559738486874955198392977082834422826462305535979845921579026032167457175378816113268379272315141312691968232293237345598844300056439108145990431189433868138757207557478019261074209603290026406643480823094068168683004782212343606957336032317926043280022597540757824044415303843947614031036416986005161693369803185973424948794407438807569377448563113901482714658518270308402186803852084651012697347557580184430256878256421736704310252158403971479925096505455704119950523720163536386838807121839015800920211506527327207241902178120470586350171316074897604255037054923798122429634701695978618998045695086664688682726465609019091483953718921082073695102566908438187183757851549289399150804561172556279911907869491025714830076159973025232274205922232384099033782317051621279654720512452844351618458059225141748656868537632988190241391147551868048290452245808512979257338133174912118933313012463694503914405357897948994626304515572473996764129778226555822039507299953475523013446420600877717473387469061148132189943319260395291086022045527962189960320834913464740555553653361150910003053354978756480565407338466309181255838226127491715816907726227214543875185567683681913196440549396017495180260498298165951649686749349060587379459122942074509452005647056550578353247710723274765034887545707125171058833562091176414142695792595935563788747908943827590756900555740708401279495599366494612431310590075484968118689201848160763827169148674109587868235267622010351618487701391320244516827578467493341922524569570120204455165314137105329207675734422755475486798586359376530364321062094205418901034311860532169024839459045015932296632297483667157901557425372599578564937645479225013495479257939965229661767634668633788125697701683107200287527189712645290505033272516457448316889359996124704931847447765681058155932599855031360881876697412156300155770723199175545502841253002811119324662022877480201574467963993170531688693544161487268452460520840413262851457677468390740745452392268370638055460632422994279252465699868163109671228553391953647396618558768897271117024600444282022654028405591338574930684039275973287572636261812506637950112851288318685502749907108942309718614377348825240109763652014916226601293027194251085101350955345671461833464219534915308384581536322132039261730996094866592995248359635280986339511695614216776849408742342682596584063558528040699889966247561350284254428142163590070280964145389800436537280517521724754435958675009545024822484802749801292094022091818435314937715456128202727596331289140827624549059332019615265983089951558108605802961830758239198154180150691763029289064589896945727269730899851060939001794391966635315113684764807506883552989977114724174912702830422750889079410381327754099996654815607272237149143575452482371042659541618818533425715899337679686477351417411602042488084264639521399349072899577678091886830190688824855812282793389217098964729390163295829486076881780228047299136423337117175370269141558506287847172235377952778396659124218546747202641090586873287994032220084610967834667730395820040560858511181031333392287490396074528580738418666245526782273227033834908845186741009079386855570264705338645973873272414538316705347375931118620932215990448002506697970948431926589344239207985843234781767271161350694043082182811924343799321619755669399372287490117842837957812179025866493580062470760672684700623741993194059977625342507530094555989032837781940790725290390444702477722839630410715030249331085365156552628097469316698518170982837009309019430879452177279919762701853198617362411047671852579937701881317446538714457320324112676162594674859839838313175792929147310584592566545872787291804179513132902660692648288055758411580897198177317943385710529132471483914766468349494309961165258344128654512519711892812058674872806072573160103994292667976827685240537997025967680646304721892646952894085942348026686278764228451390387345498101383708374761436697813004753928146245641700417912008447850690189301804516585674260075441263567030189803463549977507682719357841570651215623670454038883102005794469535661294905527290003568958654719765995744538745262464780961738492325113566127960967916847635922661999435014168501584982754723990405836996951397514460664322569680707243117675269638130981151481618602107107152115104100730111509894202003711651027171154217772716847162228237184838784309367644307999171412678439821071712002937039069134710472737254018497145607989570506057915272588536496621242458290524323117726743440367128610746868220490987268138823484326821492698670935787993691201188460066296742343597551782672072197144386314070341667007442905334825568692523079376812171912136114127652238367732652997162110622462328713207212072969210812250443741395226989215589168168041498230938364728852222165740598337709056728752716890809272848519034217433553647524682364282030321670827616339908722153582715140878161759304116170029879100579258158521580553873233338175573649678395120583013063312020869590752033050533298932479300834223474243841518311430087522296985770500956806364555358394939770511458217201010643573469740657811416584102195061393511518519265348064165064132701836194110088625819976292003712945607862308181304285776550844789655182351368086265270609599155057392545419654422150896813071312015008005216298068097596575845283116263411240345399779343807547923141724450381707568921128984593813818178220133775674348256503120472820947014361059526820153088480684899008616326487665249237748379225746647983088689632317094260119606453027341869641737544669507055109918731420051908753683710369684884619212939993523069037114229078010389151617924659087306127163919322933675230938238702787328382689958074834767399260890179876316132924219080876510754158252571138925412992942300535251108623946884328062573550576828943170975160250859374384460566205657779738519055563173861682087865528250872274555064458585925511484121854591207028595534551470408175289264067827591498098545826958240165176730830442846306958249814869003398180133003246844866188205492954489618177256638759852651550343779896517636514664642938345612916471596603238160739020774023194492224953537690080324492224279169922019657283282946792092799708682066558850699319153713637278846096474490276154503049879183894112437577476911851617208813848778386107768614218381043759467743497545185432077421756594623751409330972261710919988155368909884425050460706338392975332043064168430661397365772443892938310426022207840853477729000197889629846164896360114604907002426840880152653260189900733178216873645098448990884007825588935309009092174401289107134599697571493370456260559175542516984361493306254537362328963863031985610955688844040983212701971880235872720239792379347881085543800337445877392632258983835307671824034518502040472889349323778124362496782059084481293980968385158542047556130812613128714808640277694319518783994023737994878084933356891667351951901770487846931394596917435640042315003021397262886686988726655834461175195090903049240164973631384457359850505903464416926531566219018160305496077956030368189838653247179338825817891436015435088882329893426369637358683643650099371030660505199666191059745580903149631442606588465411472988482558231346848837063333657496359371925460438427239234448134501734866283268902623128863725847101934326268491028456279706630763515836911399111783276562373988084352410190563317777968531495771824535697981271460444208963190943196551981358191335998424502597197806781845109793814674678235249887556086983403956248566902654994571959768106379509292533372006272633374985678071285275587358651401564057476133025007041829751897094897652026283401172873062394745360802375948011969606526170206806099570344157400610764529627602815343904872814319307059924356961033783375795404095803460103581228420246346495116250921859917512386941686636974280835978698883101443967528403279673263690892640651221536778449690005385611278510099022040562888231304365688677398104134835958062018094504645936588773560704869860538751087858001063842097073426499019877885295066902253390069883698625220144060123702513553613613323437690649424505257815552295339715601819687371072598749200190715002555926332797088997304440338726413011541258374394525100112824150213912369438259778509996464763444000932978378416389362560116405256196851779631274314235593961958387726837196210173535492793293606494863683042952867277150146015922802388663501616492273917774905450472890122812554231991481659494489265665003865595757866676332323490594588355167820831863679614705599031345882869704383398045308981898094752320115836130415932159890357649113603487803174006230459427898691178387842193497306223099053059365047318690247706305961314496192894611745510328795352844710719934476564896757505129457565797622230162348054299251559036528093039826455311227719552136277624670177894722769383153390965348887396489486763918896812074392986089322149251796825961970748847197353289182090931802813682763505367302089052484790632643130718203261557162984404703718411727210729650257490978964417473654229354623603152154144589135477240941990804849805464329610042929285756508780163623848344177643671650798076273662424817149600789074811402520820738571421601952386843211209960967239235205173330896881220268612813353899721369591436506426972849861409799968694930052663290352498072028891423800543736416871748566630032018348892229808588163957688190982518835778856794235515218426389126609850596150207941601426812664926715199390016650773317048987578048487722463295930265176880370461755817532763102139560915567031166123986931678277842627074570472793258666303385817368387216159392505409053052753439463324945656387979230514383146778483884446611286926778679769746516742920524706628197886420946252579342919352698146511956364322545958771299705366199641862604188901312499443887734557506480784973932037925001957481310715144792439473132406809345849607433464640469177979267045060066131401685918751005963590774821557076205595231983270875822357725684767229693795856076637042821970363830728113219338054872137417414821834854084444196059185959102549347980302298330156140485250567140862417303874581937602728101907300391877495191966064559747502535760516277896756656050019412530623786293209168741020665816956031473896235068201338341423862479406402622790326449602494357217938353928633133659411600444860629888990447653707453075242679954164893701170531196166933871529080214938758322871378692230499590447186882756968924579761381454275537518249150079194240530435386619873081686042491630628528110941773090368477953238870959236886723832710974309232241693535185900773207551237293726112754995819939142742543396780327272301672655539823859089960578635522759493678071571409857127037178886213554807723323620752701454529274354963101093980461715867943690638350920201730745062758378267832843785103669200688426457337616461848235411381143625271613620445758620105335589067395528821344199311994060358584580555951603289321646880793387326420839047276027898204397172119125907851387645349768415684635875422783066906113205839850287096920872010191030738002780188708259627842656829730340468341747026886568943332951686082440039025718947840881730000152979578370510308881568063034237276808019859376790471781916490649793829757060271052569186863697302129414237911916270709114685147886959437842913712543498367563375284703583201290259846303161329961853702910806380650498879633497725525755595680396442358593015695373016418311766872601356876215943186585695319372114796200265071593771870031645289459323099745672715665808805645964426069318319746910275871185060531516222740965756095360287435611173716800261548929708866388053245133615027584266653214063573137450518511261053672670998192727908157231292312909539685591511602952310958501729694123132578600141343832436865022962470486607508602808992058482023979778467347926153991639794058139109294071840431080798242553703376550518959573491835150300144249688089303969488492859050397547408020671627997901156110082064025113929491120199390939944458311321016632412786389638526747151361808416393059112781867716255732817556364403022841709714132394459434738812002736922283827392024632403773442381236955207448517200078462374189310986671248370402334868970703888565061114750110711642928261146032820709045258663898865695916413023790062159597336101095323337785487525975223083348386042795537977417924112701661185962437942866604936474288805061350021163685805824885116467648973332037334321831906793368046628850800549578204816318040903465902598449387117047122589611181719083250055985119419241738118968792020081850149591183589268694594348378812499871598897604412620470933864144568719375883385284929341006354708064405173558276794635505850757598663332224585117659744512407746715696691101314057787311464405950522640704764752236080659591605228233185323940116127510308027527401444639210061789252678509096463288281942142696117393452800589695354889284999580392450600829747903125288344872165895804803696306864488441383367815172256734303632012639593080409064800037831440903692161582031098955510638164179690606983891049753563817722514413521681981294344850533562945067748535719267436114706648739277670287503884698423666141953488235229968092157614461494801739467113386100216314796782465466854406706286262226634575204410565126804237533021240592967321949049972729581869278309410797344140932600404993615627633931914392717040182039084840137451410344878077777173025857059406739076109068687729624063804382279071115522861814672011896666165992432522813312935798187511041493709899580499776873056923707237796182189032878106792320154090635381757443057944372061445697852111036005381118125842849713388177995382565420679305518640135357661111977719347472056488102966258680912445457996127130043156283373199023532174215174039700707098964825550556712703894921212851550517452581414308463662354292387112188497842088837102492269096938454360715215015003008339878863907249545677235856313007179603246137586695969447011081048316325731891075015177181098332467975982797749313425981264129623842479687596146606875011604553363878160738233896994871685573604076436711142322402955139638174658165490365537490737152060867011578832564353770870310399985666453519071678882145205862693276396271030368848289977341226482009737528817095910818013963067873001977257563478163916085618582488550116888856175981727576314080820406492643423392477804441828012958336106390908786753789501338981122082001638116841609440201513500515353274679953787264352397770868238255195558685770233814386410247691074876122204495556146118161707730226922118378144227847031758864914650087126741197902478404139901015686550067469604561382288123764137774492117660523681425081006306092370933339560119173972596744270493626677707812769439021111680810524167199345256148130300339044220348176552884293747704441959232064395886892350512181374634298839597145940896414610535822485886121464332403847154036228990648551083484919423821576096060566767644188020331221846364437941010264599554174009668818930597880152981067025996412112487010843428332371654248806175979624857716234033720135117114755004347888106894110978627577637033191421090871987967195894657419520600727798439804258925932168913978900329925163219201254312252713000715876111349270865812456890817279527139886918882465629902949803053114100656061659884866125636373723701999004654679647049498472182706630424470046446413366183109448969711160744385231672184730820158828558226376653649593633303742884532864761632974782676755738375929618641105763150007411448085393523735644194199064393585909739233614732447230055742480598643486893603967078702559202113387041719275130774076424833090538585483127965170012702154108284826456915273957466527322834014966300318638640654563117443393234706973571995528501540130840974357033320878064177588352825271963207212392714296241967416781242820084764770302315064256133650060029570195277131377564026000711943363083779126121806419337694872306535946121258220360301375787437283964708767564490383695795090882298522852731515924548157318972006421103945950921455360152773287492076066429734311750952322467742401076217049892964382094403000423255310759975964095032704433736612114320632092983054240637191721090348548157673166734843028302285413148009083999212769688130078217036573935606362017073776674691766842522998971771689972175948660125833259787864099933480831913566060310618279031013572543002344888061913666290938310334500347184643287057416122487406550754255328761953426862358580703122057850163664325114332903964386576815316183165462407888343398150850270242017361182106741427378124025283747749843647856261785907369176449335232392826573305686696027505270391310493409998027684587112301668469445203470810349245602282943180214683669189593626493796504525577246192452688317054728421781845729594685439195816720499734545594197048798373416644167736246865997074469871340749472472034788759638668790037172492640719189623539800331559476106030947056917088232150782198713105685877326663907647212588254111406918314267301770502145388498564634645878962015489450631483328035896492344964006722683615021666070363084514281301871427193875995787898552524440728892034628659221293462946153929826958029698356636488978707647108501590405908332847635590593881400803005312173194503148841288946456434118665317262108563042429022540829680401144032015771962021397393854570856767260066902664286791579062331888424762484297356241142451097884727083211687003589356961662625761367481519771930353813458212181017269856741795211255199141240563737975896161926067757566783654421755047201543212187369330297706832449785165152132773965375507061630833210990886387856276079109193419082518922531282003086664283476517487590102223310093492895372717933759350506463182200125561695930526363924698925467895435055217240588147530692862649023380664136930756437183494047516990137427249393317519768146856095463398347074253343487513567499097934487102855909833060806646902570240778241836094958551277635109052485457605435669555444951451809579270634467577082738533077305730550624931368225662997115095393134606339962125228232578220504612200946083669833328011363064713482907918878506631279154516468297181023078265070416956331019508417304487644597340981864475638664670926943583851340186291039443897164251704209571433955813556343421336375741314633226435446236183728591860135872092871297260243826496644206117247679521680162732754082982437495745561643545764002294671651269171441449722021315548161521190578032178635468354937296748775043554273638081988273315503487229191179308130688507441703371742379886539895669774645720269036722421059347435989321053018156886420159893954992145361976682388557565927006989290241452941707168219760296026215425604909088095425888373657167918715740702284943968331611831620396744457156993592202394092479743104629618637329406923452982279646173494318766944291307677199827281108001220685625941890589251459351758315945571538153913550019885736605920597629321261196982848486955917265734616007478220658321174797961018883530029062953665768331322513677491179712478842223306495046684113211288339640141470281341980766561529509317806132679690810537144509430276876470331210901867071559222918018318143930850763552617723235662165549586260614331665373671618327834276696510458671818820873795781187142908771042792990411482092071418464034131082882683967549648562076519311997137439707327814957094396927446866075926461751388799833799064370782349316213716930566223897552101549027168031753575906286648611937256858090143133182036263811697057205684321654162534174291315211548573739844227904620585721298097785959817408471028842100088647898758021188137102808185581324422991650786061815035186717257757669995063072093516855688774571473116099652719781895913957118485181626443718134661694973387609185130978063291748313886006172989366870641183432986833001366887380106008437781497488103079595473065403502239912935474967939333256376325913475537040546108147871787214065714494418969442236297169099457065287445005371414067747452696982737605278755429318361298188041405853606005298678514171907785605594402637314208020994790906865060957558705551689084107537906506821422768568506825557631005223431446583310601446837765740767601979126893346754903237535557198274631758040412575026547075805269913332612083238184652404244440149100991699315871262846397171668721631322304134329731672040166549415788566032606904153242323961519297948624197053297780323501753865884526373765739457730547609851292622089446368936894495052415675918447259652658078326026976743316801444245362196602629907941333176609211208045559822762107644633217190105033309681638962519347152809256138545395782014071590152876734377701412818036524665073598188300384064602073531972643186802720369615609516777818603636240416883145485934494037447497054848809471042573039909299352450077157233013931705634435747783246200586099509684537878955071252077391249382081527624940015483325800143412439143696751469569321264222762159309611505218589955634156076837007675748952498510035020028231100249243921888074381415926085766182753312929734685980504555714501211809608844537417712270383941277987293175042157172047175284996794897225514999089400710878888548189319852983423889068270732565805290318713480219393381555899682231138198200631801168722945924397952363862495796196779537026146569877778271887260165795393505801861899932835828994843122866275368881457382752223920467471919482579771016777888778578054990414572504177383611859111385531273219246653663511321271809433646128948073740668747288650996152714645495812114035116310623814279229579178414631708647971153586489094422475440926353600144433479054871502910288663070871372113643832069294225795696936257747711539592575653210023154637828313884807405054926107676655964954450068812808424420152999928050037784976213066518455793962377797244942723228655897131647475489925745210895680952428098288654900836214487005458749116598809902585927559689374225354340948628684075518040552522812113641897350954538932981454653667098933962922351230243958876827368866572747553655147046132647792850727968038298359890789580079544283705162337355098661279030625494982484403625809272806591191071500964662853896035285491947364330467163401906814845870306359601126839259368693062403759529580543653511724042169708073097415263197247619312351103522487995828279973892385442476881580829599549627138753617112906320869192242764045594689557109394829174809233641593870191844258645322722043706231270140590959125968458540803471567487815229315314575805176565269344708082061675347746229531584124429517704715257194578300131224121211765033560886021286537324751309161385960942709764870171352299509472520141621669528726973376247946569903049851186603240681054300272273346842283028542394835163331611085834485859748980895087703575055298243862311243512419649990151323994312629632014741939035279014471173651698127414433028502108790877454855807677367976847260518390504314428979489879482674719470956233007346316289948165766419036872518341748723145637131455847025590013495346344413734843937543291889730526556604064017176603048562339346378064556470208931673858101612594286370639608977303793339607192568640901450843218258303019148980307055849398925596085329427123939347654764272582972080508008493513648169298847800698200471260382481743386726710418201187089989744880913315837409785373692074617887433176526015996020053531305336593939166742332969745589675821147562214108066243819903939791405232283687550314146135348133200969517014203006184995103346271401729808938000059553138598887279707084446982208721536390687379892475713046284566401288091809485180325032110755063818717739311082843997047414695040031889520537635458529921040418433525058626667620281684552608185230731966567100100221569654766034788323802992499832708174968401922273438211775378623333544794657416406823379778455008908782562554762573697079796877733562872950190498432726008119410677953841253669852073186138402915043888111139437990228328664552263347953447096660309570628691401651559877685319260933456315350092460282775498921970228795775394650025182548278941201164707243140722333182142810806208212870676157506389313874405853943886166523110256039219901446737082798272003224653838765901567041455348604719067408690033354866667211792328215699447410624672007330568897111494849413329143959710677484653881450364402209833984987222382077464257942457617937231705670696275114678861583911295899555849328676162061006533280469023943841287027036913524782170243024610693671157427168339731812935251441349606790118712360738458924289537008567429783499919876767015451244418308519126492762518953870519911738315364602655457879805318895236105598061426274828858480389833849278316682420767790848740632169898336820455405179685385864513750824625282780175559376634807995966578838574250102784953783104538683661782868076965833211284323017358887483606523946815232697094570643397872606818106940039498810805174380130199063780652980364593086318248670813910095547348018444165439984440158358147419433697087915608145129010842237862041354650605725595890459652630112634388548757786744998995368772886483367956423498009012108474637978597234705446257565451982218468207101150278148865025636984074003244699198963936017436116303533112617700356407964635435728866268298001165674554827823767109158133522975522423435895145988501214799147908081264657269612039979431751254862947418366859239197633553674816842533737264538513021671107236455332456801249641470273782334582609500075112011799114274137350124747085114870542187160105087021054285147312369664543135621955357771441864726643272999579941563196955102513342459518020238961474972240311449482578853254234202135578138772698560210076001735178426788874358937449007897816590595855377132427317767279406289639170733171445792171064008041253754662083629898295120826912322792135508607706090403251160978538407069896529121904413830580982887697203658599094911202460092815721049050973639326129367748182381752502791052011298255235203305055930846135471801062157297203830846665494996401035626413787389468635397141740808302124684561693092892600300099121860380267999351486494692146348296107056964522163554427509689957258656910531346963474057240744568960072653495484793846430130009203288831463895397621300636171473974107504294247663806846541194218747909858102533750410592810982372830189854726565863989251092469195325751007091629424505969627755010502983569324827063486598320653152355634773645605627016468867365549694079622955322298282404611049811906865415229343854909074914788957222878120884152734684395175978482858269394091778963548780388785609907791588127496366003266855106958985992035885494106501107870856245525820375259321345856197164436264107042679380005552263779286067658339101178731948942530788502941862323279671442652255149825666567233661929621305230542691325787357017622065238863188502404299648624878868758223269361983643538118094943760965168875147967645081477403534063057759322465930705181328709004531770168404351527318908711019828766905810722844603918482662189166321525999404705156631817617464803832775273918435833466111901218710952863924939483130442307343723971747598086532058386450499411903913261126994479539537021067412249633883254612678621476471118147087989307773474376678435043114517257438938695740570717120051132118629207568241552406743864086625719367938432770247175382369679826106155357192567245479186861857058618896319751925719184739868918264740461108945536866779659228638729815381104182799905772124560370124888976712133066517209610083016368436460174207438274895023812502262521436442282203207323191159547774709965710054085029711623217421592310440485165001063745428629519304637738723670965152430790947000204078264239982306638806922268859205394864743947608650543651623832422060598927136045696781054074926035229530562392804852470123357107643695840572442727950551769590909412217214197448398913430640819534395748458275433806820186419915201038266624273432776510259250288596584331914847530514943055142714308731987917817687121035214719706131707401129539340845790902463794109672462696785593066584416496750770227329889378702556966917712641295477825051618127153962963965624765083450601855294877626605951919508497142458695907643724782742661998831665079355326563868731404776648585217313634923954179566545013709487221301054904219962616993415162419260629471340903480882701256629035615218736783294084035612353844939644852691131277588163521075532439644302496754455118554234417480709331030515904340357778933607277726433819134710805750180334453277521500263425058764562040959628027864003646158861321586114173536028894182880537582536751850447761544078269050119808104310737855729714188540624697590176086129862224481423747971533636890976409032046440941296286156361831526542208851344236250676103420829205513311092050662938591959194632846223934815149550350161388822796717773362503259774333794689449734473562212577188218464910190850801667539620942339991351626835220670399955168574789407105592031030685716773324108742367383745637988687834346255320741723459912178056509314880247808925725987765952017331015831824640614483849049686540034583565796438764764146176456550065408094230441719897140299049509176669984661186499383699827506613685606309031882516167738594986293885487024405938453555511360039306206194690622016981591481536597072892941247787264948651185411810386389007229375309927577490577443570638378377979961507231430638695906302026071408013442773557542845285571678146250886315580016022573904390993257128903305958816928827288690361350664922361964125025675902403657206157885256055461874524228876443384752305157088600398598771122663208715743731002285576934305674074177992108408998619884767847825960402155173375508712269282653213571201727108510835669152542588424639722144605664289785866061218113333998709983536755838657302124171578758476696557745722117328727696337389871885042270086183882378233763914140082677492687360108947712935549973048107748279895200334126724999574689434477404929767570446555189742004051152995495135670206881223129079876033239233749165037628239745003709807171484029172532777099682908583771105688222631219703746267894675607638301022654909432829077036334256814780176227768466802226091943070454013781272394572697769379500855663996440718072391729673272938356159043816702935115008020120918787161606518440767713776881880171540355496275265219184938845536258408711391093900842115750298785007308869586074787598229762645507466413330943191972688990619147480861881494084993203845204832708238187905435910018299352080195996542503939269571108095331664196663001392744511878846306870171725836124152642424378060276656584463723650603419565137919737924445599695869036960363428425157285907094313312643104670274756887611365752586640661850424009973562744422459757985468468541314549892446788061194783777525321265967249262470714230846882799069989205454277660645418373683910176210628234554622034536530234928673410687081621092490919178495186610849393579672170076531742866503495022155539412526662286224066048381012269195972506151091910329610605426268706804947418276540029751939665066246066461940811596271402750182956454321990489180754670237124000657764503644701338217550921333915806572607879666945855332981228105399861685010115630399670701216872641843823764358697244452736680637743765595498367753856160094004232616229303607902244640143764467910478626262113352927070827543640725242290409073234892729551715846427686850819140222581989026182745737156885989335903102694857435540668098881377966471752020727638943692082736134665174476775344648851930209698392437756439183170064209135102915780939768243432256313581942459539449504797667361932975103739180215498815128828674561427987273883902609798256774611569360103803694732454015793064987135948038532443041187210422644813546654186775202340816777083401892631783164849216875742697684291519170547160201638827751202499862139260357102488503577888860065912215537056952198630611403995408176855162721141143119817922037400217273876389459961895628053296008983753064906621123913306943163157060787985192621324917577838583332641478495355918967407887852602241554695463020931724867670018419382970302281342549411871268722737482251086418418737686184093702537901904139118676836090196450769586830971494025304822369922149704240626496971199398894237402228810365967601744266719989797300787330345633647158128255967047179148160230774050775299374572889161650953747570371521774360705879827392294902184243770115301327057671031918612449785421519064616114203886158317137829863787606283876139086138712078229857373751733421128981468955201802219180089236539028977845440200583149875443912596786071892900228747767844608506307054675982071260559311786047338809793467423790184264859444784841857155622209372841763579961137828541200200267970263640116378202152405652070719231844352111643465234055767925318478491085466234412668733577495816785406575906585975227941670513948919814536767515894537351156979340072389075160396972360575409968356406435506840424392077740981233378977339830783412982050648672637809558697699484664535380061393544668656615108448507558572338711579434920425216640535775769186866947597965645461911052936272852877964502075803921711122915241308041447447830639385126178644336425415550179500316307973078683396391905625874996326164362364567388292004244225566872612809170815300156072900122411000254522733586956819566751962411993922127987597025884634391649719788533118782207313637789219017923410505243851774086205161944106529022855360106901748795449019146761231893955131067386555188428663456379515929208515556458010587661618439341701964227429650820350877257778040626732044449945574809419742146243085752229043743529639206435310058930616867763459882950096454703574163450226688278597841351394028524931504595836436759853602858965258786815959367130745566058809709305712853713672669956753006261344477121092104223396256658465423269583248671708370599160939133695167664231075480207071342328372219842395926763910150545347743054129316213326731381164072816679721319451737701886961615648141048951020916730404014450941875114701400271540716873048737385347256547639122877863723843042086952793697399693165077139644941798309245285545573594986835788464003441810699507289422098899998695016469448631807283493319519873477488728675005192865381749092168362605344735109069816860605697700143852979446443512163982442084593385209119351549531406296236636306346928868306538329576559402575765202623177570210831432582660048444449709132185101536465397881789359923244722143875045857203267539719803523302786256796079987790448750766120590326765095570447873126682357594266913729572939939167040352125976191370295745081631983901397222166577522796923472056038111982038577644428898697946020070651612631475252984400207722173477480119300635074283330329776084806357394367199878778085565076565894695101785204544989582351117008095438155154779702743733109340141579907839086027023458164591226002122875826397893327208400038443939168680374863808520744463198530742726804827652945597940425365335955136927969689777533152791511242534317957934672143835826389993431700170492001482471362335270973517473907389649193180662648491382442737149239159432186364398268543393075248369863221681052294680466590916970532433652973721307680583078718777300742583559862591314345330319675594135660501908468681373594265563253810097854243672729328647388271528188108600380292392709598457326537434042661602487474609283144097161933831312786467830676157925328173275330167630527851827102964011093506062922293418784882046786241070746552108083099745776293351571779375774880313639976772197577746330873613775995722802987242295103584835553303266886565800300805451761931131108158032316435338839118206997305948879448274380830179028074857000971074065964397480986266791395073729737167571303877678430123860352138426078893754804320926387633839131039714087022730377922741574914102132494692499825175945122572845226072524387609947699100051106881644429026347859801605805099722382472766355892092801907776642942019978516954428608261787013974007157374169393832210552290056781568739736689132516945893720699577420804165230423687514352197528229190647841159738947047696141254230419475006209418768633537143257450586979526930879617683210477079148006417178906750221047695478798423816525380231399977592399128486076654996805760662244934672361072140403715888688575133680973648983282842057420183065272007194325999118046284892855769060790395135856588681692789353243694471630875809828347172042665269912515191622461206013317085624742824575634777200851569055812139869845852974850084033201452039774914368715011919305387187398134253899837871702193434085142177034155283401152201306289974648887535771981710292600182583166699617616738732407223430344400667472965554632962285316341381628553814213007322831484520015424314065397135325824811503213989135447672378645295784544805299074354055716061018015239557474459862651062767999919738280933436665704165590911732189641206855273374569218760395945741220713814072669279633023869017968349588400707801296391899291946473342554139305343591831911076237460114209879664577870517472240824049767851847263786479697639248988931811534974367286090523564565242660663865844410021338274395242299320404422690004422660510772681539385223973065631794813139859836396557345089197291860328074400026774863707809928606814425658187752622427001492535996708224104644108908369575254328131306778374234814919877621216342282687363084117848160567267749567557844508310539065075257183571646209969406130035521792374361192173122093030327207542533482599660516271818994318666168287051696666474994542546442211985486629594515127448348847934965397843222720834397430288684367740140597202509749690193588864393145098566657148913080793156091492428487435085004942542011107437338628575694374257763115142696465348741557997971716457335061511657783665885833860923434410990189915491100775833261934258079530408471093075769503936578588620823184765074678662242276028718992404153144573586825188875234536770747315973807672977248641653178342724925813310655683814145010745821841214898631266355653440864140909730697536201885550017379304151340401360715059436294801709794219988639566857903418975768563592022059126056691685691572286695742429006943607462956166119756834943920496553286466459156070561438855866023130979081767820719341310010243990709263026353774401058780175335295486912739595556045555166851353384798115665432564866806664706701360964810661747124522875804924621499970644664038373707220934665001982794610159464036196797332223104568313893505473552324861353274552999490044912439147836571118181284667483091034168342841697026431909723271287316701260596403273823602150520668541227158404745922042844603285166381119931726773938097694262610958352339349050592312510619972892208710980243261568903816500678564760935445096768781135843634163727683102578163659841293302877917693264067092515039989466566728633342428253752088260177597823000280621774640725754078343133507563092291863860612041118952222542511491196304381821464632895810879453498184155636301760394456744500325446267424217577306749670919074188692663770347411224414581556623461867740493045081819300224419708566088525232426836049754008447040804038703675512466912730593115524741868052944352710174206162406007081712335714692603532099135748404285444979124534747399448634255729091259764552971662986141211438499169597669661469090914693083045349251507309295808751011001845299309258211918782547321838302014345394923304688007416865249626534959547205902428886130230894610270560678976058009376214797518271928272844318162224579555617854638348035975033496952549563940666203347421192094036953785831360161994261252457761771213157974032665343864550979271663404479580252663033385069983663687334283256341596978461411194684582816588635980258646518173925486260029852297047223367002264637233174643711495203954269505519410892036681928566785505617458581044016938580471838290305106048637325693259574491207456279466264931423995966884749964719609883387993797026561190991280987483082190538502602036225170872818748178225357731913486980372475523547849384518628676679079635917780726683304402407051965299018658047709888183580154440725525788334997074607603720938851484278899328582137785788772966715038740694981654286744171434107011641527800508927471710779155586278866305281757463472336882811003871861178666692446662715105641499628030741780613277798606374503925465478253591861786346923038382023521025062281835276829326313959532927088524075910201325857084527683180661620705870869256562582354379099587624754807354174351780107902176507050904432153616127544450542759724155442056214839497533129149104701145508043543449767176989554659953658229608473974623570789714184717267595840505864447361839231677101065083488340539266738952446658171376907651148970802307106217421353052506885477171443597899746668108592023997402729960136962508147602172455078978054344619434038622593813920900352968606920521858841600266220913116074397014102869701820900559256285511769548256691844062922067771255861358906176927451332110502294351763385223228608129962138456881099485944387002196648513278095920530860414705813683818104952986205633228570143974667999284011640314825326280201115254698166518168808729588934639258593511063271380364451405932209197107710086673666518596724274349060947032073584229479879082893034173066108876205382391412235422090890577242532342067952353549253196065643127556194843589320867698839275079002590344772494738890082597908517059238368330190819888908581174252699033671257635857536648160972633582307216188908325100374696024128325638780068134013987145788648346651522176904156183791056783911907220792786668565187644532794591811348902998783392742907756775539545371488257795121827317876116795552230932590195206736372027153694750168947978976584473386392593351860711078679883105409944570259031721737909651929219102067131503563048874840787093555499507417167232801810992590677961261402838125235434981770465710503753065259705612918434548361805223035179600031338603375303591611745679726581374904530044731831879995261730773319301120169410580620082678480633461632028249998459431127651367236966724180951931011127957520434411020936450832034909039510471158594805775064583622828440948590348729205579230334051730364574722174376692005641434597251447658407794010916413749275423760168570227556014546312714318952036579934208167532771709274054560634066401892418757070163185758310706454437369805350000977619682987943750513492300113342475025100158252178368648148172562077568304934827662497488757240236366569845716243371008601541897980707373329770563244259310441505090882494679469053049065012681488017620859809170844280063533944915929977385324802569757315519755123532139600564449794896863494040289067709162877159074352287552692597738352163026904183689429856790287279857666747923067771796798929891888543742781807639311480066321189397901941155722757292963759321899339325927605457444965581438730785488721507401251772517413686875214944065193400234112137454108898363772831644393113480216603788581975559887454005259261477434606233080511765628498491655211483047899714421038734168228552980310925524199974916290309572201701280028511695739859923946480779754607266737118450934565458520546273939863412141179053941102008462524952347862658169870908758782758077870570368738439574172337537939808551367014085796221100584277601639971853764362159117009001711924246995824025574289288266420882798953837908035621427522660436391300936370635107999877728438906481007249763538931983465964149281583965961954342227106413800146514670676460014504809256515415168622560360440384330944137755110122781299046951114614500713998177090451645591681340644037867242056215550299546100764059676944960417590907509641514473713482355795244762336385582567492986209131256876952408860073022031666558401828132944156213614636317748616991547419013031613232566225682547010269285566946420694036663813721049884672630522752961069057554745996177586866212889892539439451237663797571627606553170084802433179399761171693988054451091138594633408984962681053248259760438823216335939574881090560934053400716190356947822232492288369928723040577822104394506237785966664365659958557084421696983581862160805223224580311197624070068180695968914731892599083491768664134683661236766600481992201851725073538564394180599272096206550968620262171363538800730361313671815531933893800360986182629307399521985009150473579450095082647179237007370276099271036848965810648678741214740705507922142108062521688439410885639376443730361220587008322746922100296309709140764247411909631762454072168961860882422174436753662902139292196289559488353629080667004624651405282413138522310826158526699621749175902188021249444442761850569996854363729059269368588639400406086270080693727095535045153980762470762526349454644245315922660581175628968051361500173859876508641785103353790321868187033136927244451762493315000135496388232140801044490315930639985373851969575958273737995875503938085439781736574444960260913377980403292047870732123865632204473167958600720625486282893988993976109881650050515603512952886569626528056372449331001289602437031676600574655342726882621483090324802398530174976565403677193060795477392908980725621930879149916328949059677175566368255721532694386196197087625989994542595235920664717012852897750029846723694426669054614166770724461043999296022065773866685276125607497561957274715064544228192286442802473074106774557803641381043589619729347599047380308135787392337769503855567211674026271612149032629423410432613957140142658102616086489749489277638427898911421668077837956947058270323129736667562059151773392679382879352949568504141740027612964996213336577583276210923399152729519410674642618161571876814783537116149318194729281364524463294504675829993815580544587903367393754842796743851839897868266511295087562314738684855211954970228822366473213813059209045275702796739341513494396140185816948831379883079221703904388990170030995835781816386755486337439229954927873006299016794413698990643675911434050857795950273025595311316819094474658960931337613442587027711731296125724117034292468560396539367745105711066082229243044812092108985184912603513357667512994526011515849250163393689611110583149737818606248665988562838083232846464115268572911460663786450874992799282484772114419426071784133005415694360916073550140563741816095164581776997581666854498869135168327985282027039300160746325169643337729576221879646322518741685940837649107526753329383316626794525438362918348177791383150535824642208913913503091175545857859970276290350887512906332039565281054445033888163707605966388874203259364683709541555980862975954067652594599576328812926198216706130042226514437381832267271055306102443429001434545381034995275722676331057332167389986645197029956149489141592932777283168708097729673814373799919651919616835604106392456339258516676088757881494922852813303217766739268816352647878027760443097004824849374432799921146683073504910978518605841801172538628021215180126888030978712073898695550890898646558661490565371742244044646060813438716808175353463961434521959403531334683935154665009969268395892632528665479481534766228882626272134748649423291946154372835789002396462821603302010328487331648800764259257282543629914062636754367439460954184100751565938647833286647325063637576786972295062735600971315765972659450303052813563788907218844237060355903414294474822684425903200548017589384167441799875025478137885822671674868266728023407770861752376481629034445715151683747200355076289346856829222942621457141921027536756366029487543036863572665179771158331876620471475960472960730179309185491559261101277219607886347488673520848893878945544167871866903435007605645907445309129098157480745299729108507827852339162278573542990459309319752690984317660083767334479003689392245908867419558818434269419823214400862707623324870859318024078072482591650465831983902287939175319392452397536973755152844915202066375278883458142045332624498623737278434759842454255099730543231649864160948263897160368152514559397781031396849449257646898863223625512573710482179447705956778929813452831197342719148075450648275590204429419074761956362520043313719926227105856856442322674325673521980807517088577289560799951197326974030742154513263739344688453151772737483317597947629321674779393513339915075451372701116285698419206218729289551148725761711140009540498806806999402640733142594739448321742511232143985090201356541494769241990593935370781773577345709295756694044601091891274947440022915121188459566347824417558171580378519355386013614780511187342403718335150470483509529336915669643908526139670745025554605748228488808361597550701230821280283378465973602030827419888792719349666328944727848208286395291636556474249981107056603493449054476966327964904708909051200965990640862640217846780006647086993199825095432134665029006201310267815842827680002678142768623792039375371563826503599396355771523566530046255194559614865420414699195952570099103526327355866855083574719857306106820213759095414445999847116773993351756473870698582976542432393034850835170925180557450506575840896488916499456990862857771240358721004402670141924069020524759479643761007635476474669767481166263650097103246662534072933003217960818478668505632567155435675239099789939142652119044504494546737188537578888825951142077989965143715858077940162272932642841555074751773578443639195380889856471461598441545438543236124816489617104663549121075641294920511108617648780362174050234349068875192174389276828661290717170590574326691617378649862163665961966974579142940107098612556985689579186188979498027161234461164740210972627632153992831857708429964285283524528137007497882656297609323543716035820679250521176208176967562164119557117587377336144904266629902112356887839986968909980766628544131450676900132716517976270462258562674225611931561553764207059491260349766871197300450155220018863320814838880271418790215202470676166121747724690938882789410567019759461993736153137441931945607315997447755029048802364596055094575996765070058836349891719049677092866377093104415101828672670059884998635143130507819501683970375378631626825337268046887480572906632263194636523528028973273387702961721482882620156564501854041216587278062168868918429598069746072642312907192219526214655662572319722552793748401521759856781016570663806868761080349878814681763757056627578005788442881461487748938356973622017625432747160297861860120050892677276828868197564886671159453477846307597548525736312048994980844380601105797582235664536180442975732995010924329770492368105866158886968720427919725736135159633469405854516850391114685433191947309807630516823445385682432732298028916427557170390875241549205553773719090837442991281486407429400947641443805239419168391981955236638570519842935810900138563366228994350109264729812397310346010498216344957216109459733440497810040637773336191507382910338444157000665915314389298704440491292561697890793218109768870124945671293061998316259900143328317522448680450596830251510938538204271336570168634336797621421287645025444423090293979595294980664992843646485413215366454394103354487440053306176921957864877578247949831744119836696020271029650306538320048353052487604880620483522112331416811278974158148487578050001610306525659876005482824406369073025149611550470302327628737090561331494409405657779547498124498607713600986636832798501277876243167437532902963997817293871560560011637897798620854225957492743424155911682625896426745139339056194081784760216983693131063529829548861146241640703379620286609318457517808616900046606312121398483688341461253199934503320825803394321487975617926518097374464317877422872506670375372962202485702693841918585561542817545486833162626534827591651218519524602166521935730131891433362023591018376198805593379647550787094143340218785966413229184310072378863390848552166171994797834305821433248614383525856895013547186563664743368746632869440291452108059205115412107127440417703206791914137928685644693463257190693878473850043073443087906217267570954909299303379992921559683259585471840731691769801617730540226072640220611805493400567846697757771921746006057858543955236832051818405336719282273727448499784917476532368728385777697423177767307223941022925143842579414434045572003225465365051129709039387393235043929907437281120921352320887436642628483771429529973313080991004775350823469366695191968960992392261479924931093525365743935543130206126508634239578985084231160090944200196552847177863631660786482512434983147848597060844204618165998799050172822894780711855463349651350178324759334711175804326565854267579763026190497323879474597696177768915330295667695425505197510044148964223009845393714435427233220498905013171361294293145861656878633721388791299954585919128307511663650525647116247642973462824522581967685726922188290599226592126339309739659783420141854781265428287281329965575513810351891209387671703332001352404474158714512363631539585099638405083821181978786485454480461526439827511463889507955128134198320267948887618820633385249804489383361962097757119476969472324009956203989570997052731152771697465794913573114502177673577321356865843200630141113016463671228728580660090180739887604529248314484658283967755029380979839997262039601135534439726534484850186534640955599969184874347381509934646317136508063733759320802668377402280690187001456745525545599408710012119911743359475374840735738327481480559982760496576984474198081173280888313380421836509784497132572322646385333898299845337294435825633723714180548979283324582375029886298100117219363294269378541553595502946825907807630495716195648374408393253279973539879652903201503879681250659237274723028905688364401000365397796672969707469625466622687533595690322136526969379639813495225324819673476060802579398864886655974818106479246643485530017872315852202398491979884946794407832464102068314880480730251954810515879983992786682676136600872315630714599251449466246114933110870450695555842656428871723553620665662719157611971763523813159498413426584164532043849288279715672613165996876415806327068708574118667200360866002668241683945044444431594546407581709624189798378429498546440541988080529308212648794518237666248519558667577450507022563788308747069246003181464287898247595837333164194944823745771608515351306288086216776832356479304066597624488514148018139468749027136076164521033932012153514252249519022245760259569835954723315423456959132002993188699289290610045441005410250548523828922390435571431405385367463194154593352836359482091992073916290502158398636905852929538517904185456259677112861114174106898770905630068689351280154982288719969613988924007386492359540992055327557005969640226404672196024151867835270236537286031980315181760981963278236568851085328161557074349011932797470136329395314636753414012331454425940436280124695274097747939931853281759149929757283209316438542466581078704436377299228012979355561164188947615203398489856848812603011520033731786459977108863185044697269457207861911502901952090754996109266042724160979027918105318912046021630018199685697163109913872204030564664744826481561467323393375679194276029963053708720063289053460443791050664822037924806216087373107036325520448509223367581441455907720310743486169413575109998279830571713832409095124934001668565047930670985295570394977507176440172636811943831226179626358064523799427579541055735066736698829294471374035637544350116119435696273295561038248079200139408583514054381568696620929499582242382947534731704694240062068725591683340775291867853665144251016884763977637882943451347786647351269168736856691208473800103399803949083925365389556395339847981201224974981438287547211515059364111624193189322545190686002530514703729808546539862825103355034377969835117640991891509920754807185750157303401505489741560996888142982206368252607958656613231495646628827096889477384972743790283203353749444881811543109902713670638287184804110308091567501405113094041779633757579615157607052935228342771864884191552672623362068948952496679699548000163387295311316689667191090664439828808692351906087142804179835592924165683427858824062405201486240065706202080652601137255060244456210683787295254147317772658153187813143835725153349483209891083099163208537594186366062484595471291842665035248122885523330815585918840822412593839863827340921687954176663675518398744154492388973452769810470278831553607659129773128295860897960395797885641258038693089803913746983776594424014222788078634833580613579807868319537582233818906440500899947008986691906972385875294062356660779199338214453947273335044545253823151585325372331467171451146171658549966837093591563191170144034194314543006014195127811361877859891800739936558203033077328408715520519828223987485921064018228885172276967901178385357449501628586286100132800417978875780596312364751087457475164011488896047175206163064101875610341784431033939499800069335540456788822147605422513975553688442416038180720153770260305443816062628048821776421254802963306280373940560564821800742413708181933254333532525607040352285384260610950915894799282924309770226611932297208692728054137041777650659303385566040737608498658070229193443341856618609695918986428187094363560090424990731593368604992676339370375180266347774021726616121149013722981064112121462651841573757849986543763590359302778956893470332865881808300719290267139927335614753435985474340318142975403492845873537975694342510730296743613218438907293300968594256388398172202867846160751161069424679734007385078985338608121570109765064538971959219226215002441585615455586632642187677755154347308951725583127639240258884994294340367706850690560850954598984257658272560462610966982025323472139036129573057339306015034109426925052157798411941348785737961612914642084604722259998429577348382453095190339822584223293102419216456079141033998923374483724281198405685681477281406387905677739129843567800510130246939881970355852423164143460430205940183465344779132713118394301066788834809187636787909558354290396869330247577764119306112509088188872093193168094132655580455950314468750836018151590147280716128701121604980306551394752068186966832671241739835167345784715218316062096717107722334853988564638378818119792168805257360378732150756853460462756992572808217834276229484952090714291363583963250803735992824615926718179230295660842763452301753323312967405156240726215793306218545571593088437311856263396767421081448338244161953415156460433865629396540742867889163521395675987336200365151654016518939060174611144309555317473929850884125817150295057620086488659787800502382706885016957519652657600937597447614409238854946719288699059352629362974123256805662374609942176998906793891514668737756845812820680738937170528672406978723511212299193572067593008246119116466578812427097595172976128681116351274683100413879749778146173121937442838961213211173942969592092188445708207393192555108961386543211425283338110468629019135398325129503758316228619839764125241682256773401205005716093703176059575149747579382918927030847229178771140916404307040838790235635337034434045688780705393112417633955598369504022745919809996596248660867511756929962203247995568662365485710772308459687988395901379283026536157761028486122303654184004762096983691634026254735496803143707138676799505237715906565759427489788246721562013506479675931664898590425900174265910203978256331270217943394374228636722815891054139158601854309149928140125168061563417740859799532963261438883038982533440724000792283903986001483196088038897877714530953518564445616346587702671455301889374258212651714407960467883994020662607105876827350822338358697996447280436549550870334730692361549809711924040579554799813570415709371087236233987170008777229321096857419408481229254450472627285005002225786433834940663422910808562658244973286418490535331227217474680869592993701715728860969972451871043988730961907674138011833521592266853909387128217361900336700769595358508897814582454448822185275724018504264350593141777300278527971184486193011841004784361046113232888616541282889797753298879018471626097422434620930635098996410287284959221726249070779109904006454744537783231686737998605645929009282547403766820568107385514642855894304490702597301586774206940533567985451263861610924756070225174428469411652793668930760175285464246998157203253955752266333361633197168415642720503118311808817427418054482389615913744653903804949822666536821978711322476821483276981765431190485222019712548612295242505084898951535567164056251133484526101225373099995445802736571755562766998103228809910747360562372598767958101211116486736455888300460183935931824646090533426145051842526648199786403775095516977750123777089162152944348048306456654920988609955492042303456978744996676586934516075715904888807184591637652715108708284534546424128231070141719995692927591247104191937273807269661576117313830540794448115456099820858934228146600838616544912622345202811770065464579037235532864977127366999492183028685818124100195699655090622371465919475419558114863218505283113800737989558058390347011620863893360715580436208338484601309463848085795936184952440447673089465256562722244107801086663150415436592775680177362401156972445610094354287370473386450755951743642069619037336504767840393328000027280101361010570679127399811480563184097456586608547011183333859182142449013794176755821907504950791252115462465441620672994726635505234443535313435098978657210142550912022879741487458005783941931783219769815078927575937473942320285054921699429116359135671255348809584950839265207364104697371501592112397674849050813029679102944293171311994234852589740313670914430955097785553198876713945209802887257144223410270847466635588838899475269373563375088658888556249300915517470092309851297669953384390218135174581755509370646899599857640046246569480858998337286819699992178767920490588549829951362253951676563113341902018841137299020482236203281065286975816060762876672922128400598295663413755075613438171651424897076675289439174940892747137267470316449974867482449056361077986740244086778423643376233789542771258951940013518965007187455621024225650202919730101406412289629753871405441920426670912255412429993098850278448344546338335964085367884978425632297595720745455089771542922118035695160118454289794911608831872846182226852565965738384407861895238414026419726777408557825496233849001079209975491739314778033337809669950643726717466102583851965335204359928063927501306236522231532221708017967083258354356978526614531367700291134070809842949668825057446254695772025235893810791463607107428914661601286948437905855344677634349608594011186677179685485900441475805994533415676754258078102313799268371836726725845694998470565936713608533033445321448282430773232174809967562131880160608163014337972299160645377617576888924516212698114136183361842468726230677102431327941110452628424913659893862200635098988699449483861610230088214038995990871510963961480917125111715172174814013821801453223973204874609411736915065049060140087580030862123589210296432435145152319753254250827578716097943526762098534444529333054405526882569882412322566839285899284400173566556680357542838161169916681904188755146434896695457913136443392750870311678864302211940153188283852429614838823007568043355225429721848046759721320194450189386022866434508807183469834884950174811136784805000058316570464888524442072988627490581374430621815328645512303461062062885309554976877390412190836371685771885925469641865895779904841395966190117624316352642051266376632284146292188330632352323072821471838931435488890156623953371353485733867538768271099077958814658157555965467999627207861035877997290321869340604283863537920525492771532339525627884141453838817851137763605102377949806999335691890965617841298527003380653661958356438957150745000356364752176932329077649377476289087148425025651915092966605624948179155397361090141040623366329099203235395205377798999465051400697923522362300898889403094946296475750166038501365918435531677052886120456126491841251484911854495639286764009094030832644211864959405736517082202085576602444082925889838583514419325344793296695683107575744636353882837541487710790650996018014255960898888346440443172184936426044531004107736471785404598368015017045877859356271253868860895706530481681829400907334385416847379366634837982593142187574699516600808779602654257223942904821436441654193130505772402477606364764715253843978856165274635459522743731901872993587105225158687587125308358648239143610835111767514282552881291509122629321692737852104486122244835460917817619530694368357950993335222962072823839783750684914207247349465535608444467425725241781574235282578604608021683761743802002823752648283108041780223852790108067858072782744066999844777096987161085630337541740467758880005154641712189872717366072016561945425894777515537652252575046612788424011004053362309991383897422251414628305876113062015618897489148762277262790425029462052016718003167598591177861020323259319897059562663078525733812393430935073329320694652093557900017264350742012225585445086224197572977400045151467023834541950945988380641427663986903740546704641497879418197279709626513362748653469445677697858919264086106922255399044539289363695111243124988519060107700103106291829665444023359816388184531027547890135033526749074664874350633312365257376509713709735829775883644903791686192874045071739340668894897969086454844492715890506074012619317533996669261663861570871803579103902126481200018986314842386908812517472468849856470402967111898865064950303431234435931622911634678799177431016629151748489606356341868733900142584539564363400476394350808371985312492443986841442240638459055559256981788482460185868513010974368770480122079446554979232980461318049152907458760699710539887527142900631537734454746255858391314576634609011919372786178404029917762371459390090038825423364198894348430483218733316324550613479191060489238902193725780995040535540771604025373023214951728316858966980662613500614326030729440457418156590142818890777833063398801047184529199795400787258554624576506546289439110167214216909259741876065694931771058915292262506460447250953941852791680175558405341694050872260027584476403308590675633625584931053317402649260025299261962042069216802395782629442905827923323966058944092257056827320181854106275212490279473898236907069694066889675815439294998333500081405102652272730723369617911406928885302073595713289592489183523676479263070944713283473329106593462599992889436598433659153990036027000093404988512241921549967848687538625947843327990810761364034299562944280210911783240970440655793754587623486680309753282893613729028768114349551479156593888077292840719139734243325727230225823951920844209307267490854120929263936161645919152313589240052032525081475192338614169316716933928608838058769739179158935983301897238388334158395246752662186202069117149449666783803930788554651623013197849938380723872311165922358975835684698710558156072815047807786990338315982112229918176012915968398147316684078473445025630546881646374277012109807304404004559237718062614116742902113133166911145641232987537642927035954161138539741041692632539059056540967507327281980684249860411961721659347048541620948864400029902828686584175828788965006657091197801701083638465705001771256683424096870016047053745139811963618262235832284617065662018173387557515317619962808387726813390210570586451609904676079098174922149421075523099101889890706132017749655756989280778448842930797274796231068184979077600789820542992793851720431754175418495236630416103762083505775655520722957771377925491807970940015019109659484099386842684881432046357728922629629633600778965771121818844828818080987208891541259706077545801794501342740153662800451773189889287842658345268893281136801644826991255926739062887976052607528878031335966162953131998991161019482890028860038380728072130313130261255765587028456375626919563360652739049997590288216853341049093655902159800993803850579507313900317147858876382592953157369677899344236277731279043273092554330877750871919126853433491709170992692863624015954371745584304522623763971619915065609139282810474639941035199013073657613096862690910434342295714347218952953317032118008459786456392771620509402550636304788378037955309753645141223280093313377428248271751460443889080114895358500738027530587547949562231999632414205482367292923151869782636800805059679016178757696635318180737138958845005754250805567546055679365104812326059081149504838518350267233101563946663461922415214316608691925412924736721407613327436315263578341300525531213845522657112968981644112947724418650210838770077787673438530996691771948636662966463933862878416018932984895168110869227369285327618643590662672619621420996572831815516962404105981747410644077150305634951193996532983660095937191721204641777947024468783285365081311386905034176292422970561023228819777453855305455049767521891416638882428944387654445748202786283741637606197159360165693649274891925952419565113875407065406484012870998303051921697558424061164062171237080333744207923535950809478713274459676058636869446054305094707428422508574856955764347658522473200006438750375714939057830614850351791105583033053565852468666048043379442221268607786902067459137445255775310479430162171661466112950265653877288885070306492293492230306358577987810669317019293727781320011310445258095744265607308493799944788784566393480467949528836922021886568534956392152413772499462253520078231756037388394426476743762430425254342472533308668058010044295311472632311856863256682419255465240474459936449240666251434260640461945225001459016745914650232660965313636565480666850435162677127731534382075293329264724073393199017745838853440808065443917169006688287730942069805771593600544248269490298718409972231559765492089251994333773542513107671095434654877625289175387701393287217878835777928471870094443989836194658850876825820531515167432543860669055427365041209488822317122634160803657922674848105874025662050607886219081926362834481174837488124479043487631209635464373082524667527979294084342560658249637002162830312442629837981273753465575186664332680733410722222776209445756881906771283125884210786084121065698074677582025703846134659032105608950467133966133921859358516195952341515380093825914281764408614489212726463424363856745255236399073219045149579732371834436989365575551844650358118503360514627343680895270383893594066010127193867727695573211597725344226498612184949390981429245957202499519298900622770183444806404610914925280462898258718142678206451866293249499256329011626839805718057202909871124922094650848477593060481466839830753497447788594776326714573172976978423279218651195692432476806524653688980562870599213664177494151756357693066104002026093823314597809487422444472371732374438930112646397057697773861780630730344115050096883867267646019219584131395402405938049532168628840428439453037812379428443695510219698826400600814323331744910016910102946316103961419079879128502965929996533887324153275065123982210979617913756324457158939648515917472918859830450260781915932054498225442091274734514954015701442154961234774209709873708982402484612382694049295692287035903737110164840212663048712924815095118047192282334351707707607519390710458704324775641149358640963076044558236955030722430597740617538641933348064964072279833971741727022742646911717961846425827493283951528803881714112925818205909392106433946528268486653839341870636790039579079616516292614717344194011835746431940032995824369384448956400145983166498296263925671085382470132598551112549600173615538461108019103193758412252717011238604554902741959811890742928725109769936654819445685750092796326262981532070473468409327978167625143853200565840881324056796159236905261168383120584284204202114761210382049799556978833081018554543844971448788769392597288182888062893758594511713310811772904008945094643775234226747212072783251302766244857718996176834559165944765202077289857796718613050633435251145551142898346564150548032559279460153210686367303154344133666536036530833460685995838914743028528353464348650026679448601670833311236294760902786775064783580906505967000501832855957296194194096945276953837368095879037651442850729437533332816559958981804006272579026831097261831667058612892649246157342172797041017876494792314255293400598039706312148766978762777063473633390738368852981319513059315438644578149143742462141195478711011260428756379447026024860576176447262936711730531634005277912204595629657666366922199396034991957138709724841302622218529116166436456679782872721740973031351614959316854151965024922687754413422209572463426760777230394519276480312647966807848618762498587197324888408413879738774579431712896272147689744691091243127720751393534084914905966890901934351033621781838320236187205445888237233155849071933664314255446933731429694903426469870354627821842799789401984503395213859296945823308073917291702012576335633650080024970830286262558830465797762311459114523270649188511204315625541397568109329357228091278198725109413599119082004328360582512225507641347482347125212367671129616442931777848137926916236641840352055476373317749102257400377828365884006418391906081341009486676968239614878222814277661621326439060272520975655007151402775197634851631768693872783153603087946198623373661741733957779442301427917435906836713483834803168044293926698280287353238751809241770272308955110901363642530752636987254341036041311073568301923664936633580712739591628558900001081533586219106469293564126871917674224123675929539874641791726267785542924028394512130825032612337981726492828373261256358097272255195262658354586485311470982910938260025957696580900746594182475753401815441499487818325239423585682666558463382890737718752725688566527615504064720981133240567614939215278580073508065333537775619300952904970186926061107951622353487161157878170742299784107704733599672595246764092109605147823556883778363953703305303709594359614873153614953222998146932454865111261159109414350285736799986563000069217192108596993703177012764089641342313869799236551696743857201816060256705801467447982377327201273070679225519513365535274238203803273467956133745226355324901897362504727668977786988174540766458989651305609661423506486594768460674777845501202687186831796047384853731616782167778135397801189133249375968101610962848070956687957872372756036097328016447559871354774751084701574201707794891613897822411341532559215211492655409714139965020351535205933962501255731046472130142697047943127831010956921848165532410874478842001959348004825654383777287524415792062584009127087599790555813948862448933372460020396364914491271007559578723853676308321362753008373003683113963966957597728704885805378616874634097776494903717435789196920822752806287876521951120957404499237712964771410775828077287100000215578769883917857336274099876222298251113873750631827911860889273294211262113755292548720768094528002650855442493854425788368900881117259402281225337969263018481555520009053171102443834465270955334097960188383726561960671890995891909446652772126938014876370314280764192799829482059926663077757218502990437651330792801857456739253313882544455317952068277086425839854554566914745705518301682353421549413439233227984686792117899604813483553290052488127250436605133314875951445762303567922144594309676589690319010397841311955765250917218425549838918332682703134474237026877604414862448645168058811482468012830152992246668296477030933480405259176333153158866069082667067207268439366452497290178199501878072354381674104636893263736497848153888963470002749545531659420790741244577514057283553586304740096740366402541651027567144313240044895002049558136496658512945909316608769617864957485417941332226289982925451118402493162948347562132218520798176803504064563428422050452366401560624245272278825952221033700548403317790944472330433947505674900082532821832809777602722170985994817887109240116139527955991701643240819506737735568144862990111225600505461369844295064746239819385811087758951231019830238258373139213626316076911571266754354446827834852345309562747187845326957480264874051756013869758377255718902272512897097889161669845618088709394200039712880109970612298413541187406321084337364490045720848895746186027686939325299863989894017133557392356421311241144955645653272241881014836974434967165167025864266202749904394517175164739700560574630967441154362527607468248301462082447910005121475432869513164504465224352344650025715518252332961146575627083849891631473386202055125049306432102027610013316633810971426653965043334878832284405930418854365292621002618684184627058387444486945254512267794752618125565646059339244976882842176419948828359902366216254359867626203545620455338265744150762659474165119877916247491061461836588143668908264973046213098566607101993624489635355896905090403062362500445176770580348467044201663824755497705964397287247462948538491912943176393662444489741263740623669515765760318537255325708278859279563475973267206414168048038222820821975637016254058903592469542627099907487646440584397616605530808254490729024562218104351515645774303987727076563265346290870671561641122203046145908408589444006684006231364477808002815079385362460603506128624025488329301306692038116275517029037813949334857949235284047423226820096284186098481398045382016217707339962683688065757617262457641968570993532618905617613304223280324567314758257747112304611951833745700558054053171729879957310514092703489323986538079577584010099970274645468870441802281940700448799897890846346500948899162095546028849755101108704549617267151680538767653781228051646272454789833724439118972573121871881841104097225364515484062133887135235217588797602453013754769695971798335871887837876529838521145224323533251789764293718212020554966461417383066835338487999814654208427475635724039157984140410249684455092596599694976490669163728670203580718198730404087378564903851208202790858186983999311424988501356897317157666140920965857335117594399355114305932588212456822174038651804675492434052325394833381184331435198468543654202105935372987435952430081335809814826830146936001903912836873485205570258584940385124581673844646023314838634639812295051460613701297998177996268994385921524039560926275902496496574822960613312996216136962626921897684455705914643640580308935409010043085406448534328229253359083731991190739281652407356616675903155922931328642662220084181741139817964504697578106395640723823747162015929572814394515487822831521747985517337620096659158002752286201829218783664205856534651257134521132112307094282976808285389799185072972442418805734341327830245267950511945408517685635875314270652362746660771179098755587673236055808241273046949491943117216598893360255521038684201284008446893902987978385875389979681137991009168016803719296908974015993123342893669694818734660146668874944118022496660648535267883354209853460835787828801191620202677794590966612108511312328583253931619856427894740138547704962482501570050127658838548696044242134352716501460438022894149339154795898723452683268477236132908976570165008928281436431827399151974117875963913162394044366041966013881571241158466417581216586832011406702815393984040598153088013720591105158503856517489885490725334899872183970918376481847165553515861408825417946741722530601419861187969292224275158254791425789979598081782298324409217806165288324484842172681073497469053753035634328628422740385624393977874356527747666727854023729198079306672435081142994182967934134118259899971978843537524737921935357598068493900053719571932343008135614019537771215672434066672119626859340930467472269391166914125894030366280327501838925551008597945112378014388235171735762686316474948995850130659588822164396523225501503688856791824901548324463538753917979987560408595455732893884568096126810998159365824881403411993123749636376780848256502394632953204092441934062839587424463430251810095338292703309543818739915737712302080572373092170060041478790676307288218663135027291675459602930531007148692165861236093093901895561799552153807797332663537559803803829149913749865435295650480398978488308120458235530727229913261716628652501408668843932188527373639644080803245257268602293413226798357942099292742152317790664175314249228510395692637279265401939478762668656909463142311539131445194606852393725740864863352572846731212853960871507606075281036767844836533550602412042007298110396392464089975861325314070199623910511072791055866388124829064098113694605185222561251744628752631599445381868250783790568794546180452318642340841308939594901070028177446256325300343226739562008181570669894239602452770632027420581475618080552699666027277471721195706152007055146131949592843162688079478773513395329259784911538725312890623273165804396468133426019635464500181693338372124703326042887956407201434972598137061721829160946419933366717984272047099642149048686902953229789861138501262491239801426548796041850010899025545221193335521222910154724071411810667002423428940061742402456555751703934502882977499659378361880201055991251496287630205251544834894018801315260853107197666083180540922394714330162604564386366783626274657663180218519365807794155199484627107661629825347970318991518004276116646804755351855063579899420202362982928387027928454691100878958720981026747364643492758527854637746819615398852720415798590042620653143988977414781814763259986206326875064345923928191160041596754828496119255498151487275356051621910667087209040171721142969964846492177858166490233642848771542393275807917964368572364446815374566385143608542178621279313274313673002570672991829399971814151465859644667890834406657513391467837420147157184949465074765799023361173300918967184213603443763763123840853191562174094893968905217627877598988439342637984508535687667359329942162373651259590101131528519046822448292869209458977723264742888696316244028590293885687310440704658431577604402343668263316504756929926951502846179048256100342292264898946471595702214218087238705183293706212744279420582110330205519685005504832876533277078966186892524120490608355462160750653109841539275508198723246895396013855458896547101550892310596796607942692672013985075168500423826361914590939399929344658997947527590549397485416475364377963945679078493902689555516924457973813099153174529844861165475825882024452869710774771404280570322594971768990284742016388930568818405945699524574059776356664734155300627187328760140543581536493857059608624693248897330079111776601515050583198361528138209949646124286467415030833504032886337275153560175016824573889742823750296764118647416343939395831789007275648100175029416610453805227145063570206866250907899389840364115767345551410260792470515559003665426566894385429853537332657797787577459051270433440494831506357593786119827953703448048413551060641645671745836467420011915772465713089575512321890027815041251400898031364512737063571776374521025024677978222026464790738781118215427052024848986613421730320658572220942533636865314796900429797203303568735789999897712524203771747998502929736739673819152554292342005540360321538486968145174407097193224715287860028123118295904726816892389917205261458274800317767528971701108940247536770698501678605873539531278636452170088216923194042638011242819833485539593332094384218884307746448933602231142148427732130267881694578156832690328455451500124098775901326268976179980367514528183590428664087476790279926147087434842459922142540727404174194239923943680758744530841015536198712131887553560110212778488247492355643455107575766019223684244918571094452883876423902677573620847979508768375660532168732696291533005068651320149938655699519627056254489700755730560821680497471860213263231084030700850013044616658705747367605776650267750732082087115171623785220957075312062945482293576554037543915387177000176139900815866143801897731419821915973583122544983471627764423066408989376041441014824560041633910472324737989351173158836917399411357042264853128467648181570328815654435204729706794538538280566453672250936478447895948585881487464902905826582525879352274462442449028010517090936636123878192237684394336086114983211050361115155161440190433007450233037781070582752570556222392076912072185135584325592696743868273993845912108319878981957573711224741580708415045182593847064988987629466184773398180390942124927226018760438271136117052384174610802918146320357311720932362416260398796046708802706114276812186633279479283647637161962236068600730805526703667073309126345459048681139869832879616681507599751190645558569406679087514138059729112423756058816900668782415275612782548539869721451253603694042568456556757483036243422687049499792022569474092312870048641110737453170181464384403150959711232026259598764373678483708910132216912199552374148517083361795914374879607350396223689447362164619466207483863703643197083508503739146170856483579344314012113610894102849361328181488906489781931801055365139784770262476630198939345484791838697091140837441489252175516230748991594732208481141721525076145605572786806855585088450019343011782992194293952520625438510541942829111206847949992847465840258527586506108021595358365832440218489325753074737057515744387525567516127721306288862020470769885386827897650654888091342734263872231024464261337465194238577722817594327618907756766603269446463637107237255567062577383397412840982405044602056073919122425959061545899220755644699014627863637306008058694342326495364769624251290162241897445576416015900229817327307651828320925963615852176485412963485520721487649818437345812979846685042332923436249638086575630027615429646646011805918307027234003522457345190651426908521158470828351507488291753264322163573844927771726341833177217625062256617486698350851480853528556965405352227688068423293353138046216984627395038165540220130841924065133816751905236572893234539769534645002037338408708034707231100636706670447230687269212844717378551791807602013788885453533080927043727360753812724906831244311369118151111035655854937437427914497609977804621483233455810574884024514122444264431491946322243627260602093160550118161027336355220827417038001805685742738384064689587971295967268173136435459235625280546225132891203913045304519952310439486581956272017498448170970248443141462285573557053859543377481840362651840236248547127279836689713079215219822982036287689575028969451696087899183357914599055405515787445649806093412757165314265620411353445129139214211022070639819846284915794177628383668583801976237447821573867351246995685662947505205656391704720040012389479607645771436215333218032646959731886436099846309368482362760333089688880792185395859612213496811759912243059005430413154285442732407503785580407561439512148464853333658321776371171535276518589437671094121456117014574741599674524088645128618647755041201405242803678760512606017290928425670181584299700095840372241819174446314538811840100669597615761659192532608086103198821788777400139183305595502137942894456854301484829408602790034573112909505589660509822534462960865751072421157570693208301984113212018661495978583247085719453830768672990309960926934309824077820371062225742320312511271814295601556388068301350254975590107454097825185334116982385493204371098143272923515044356343522683374164497386541682925410975853597883988907265730080324243318902927987605943860481191481196339545593406215101942138648344846455637147249345693913312238445062698606785232912671324472048682049185676200685059797966399724518561097971553477215690514175029129556516514312854092605293770407655304912730296941225594240437929327583110100892090551373393061364712771540716527093902117137894710779291790414012579109376998168415026368085359778626247233226737444117141957100665103558064322443403738005208186680546370808590589245780985405215287502279144786886772087016962509615996561010670595617833498001837252353532574268560492833414055251091060227470759693432859322951948873072920209418934887770109351504483407331522774711756551342246713793566370955344255286640257988444511950989662969265225290823243016852516000863305922612524722220077194399173469479607825666404249814088469591603730935982834417187247670080442076608229568182628676405953388866175938662719814552576343031038945490779663769559072369191349320881627177078552037738967663122170495583381191371706817364976035844528515809949182719845128446263834477574737703601169937996123327399158150055792434921428341043914409006083455493438780968762159011496562032216843477431485956487053447716174783178032659641694940359395026268723509550036919163388894321549055669283965533805521064707705043507801293854896703490191802494546381094527227363218467489746352472320341764448147876416709234356994366754060480134696236848929964084338011258514913040565913225809997955676141632704088492132969920249712430783118636526984261268848621683793032484381208654718495418671868188058908921530747904725119370582845666322670312594807107184983267581045621200438932143120021716332843376991020712156261612436999127978417570131858220450537331309913305046279655158597114207954646487740263530452394361102665555782028807925522014218334127623938574799044730884410170865536097324159296334315559190257616841483493290499651469305481240052412474540692867709593494286224019612493358122568483861918416415311350964397041591161626669846735359465313476776705842329972662602141351806561422506990260018303211068505966611416504205750747823341359555857867032921031891805535341851517787267612789174669221942089292201781697681688702838107249348120360413464390026292751697476468161572917440032338503461523878156696343065574520333784240290121628269841590292871521294838773880682130305389767171270843803794397334862698460638584394416412812688016672680457063175067204975707460814874768222323313047908463327419650211271361618958008467740046035965975129800672170585882540811238175041804549170163842788378210700928902137507558265882892435693794829639623823408480199519436564833378804303655229787400359305770735214375164900889742977055791291571569540550621333367164767072687294575365486015287531693516434042874509823425651556058055341499001518748853346950652822744089285320658411257566482084161385940740198833900801238152333457008253367732132355808003707987364166608954694760814828888964354691818191021642053762668461581142054322297204612209407355443641211894884602244140773845011309459437989607262535557942775671374906989006468153251358501841932022993388777124951632234957024371338351621989202221919792236497943609176792020567163613256325299603032317949482362099947320116565164473780026624432204354098815592964073548292593155047960074360425722124637891063409341946206532515078078243088673340946915128360048217878550132833024287153295732002429807779103981949049317328989940888010404484604766810517800020194357548776024126534064982772111948016175651939195650946996160686219562594549451266138471074818788904514974746576099768893259932328999788193004015995251598210440408895578060146826429219575701166021799060808028135665107973289502164943459941343202233398519452003716163463611313370604472415587175239208607813159915304505287326974711571408806534498189834522339375980622401220950428387933448354297710402911568260087838913860259582601982358518241405140050939932307084742498639931201390142783198136974624533358969742461868533228098620246890691100147593250323131325342422975456358752517928526839834253160678659377952304441941720848405811982437031258198211119542465204523238115698630076440281569400078619616820731511543163205535778555729670309601724189293710678517800702031710585625095140464342412415707472091434340325150920432282786977433634736547268802396159782242665940858569775114979420920873550067263619119563183014115934370721651548723256602711213577512249422705452964997538900243603451583098589337659963478601895420932453928598794201118891585606899966880639779030569131996424557121898060836596181203979453244123251555895861077979219017157135047995898184372831071390345994945688115773568600376468177828939180751533124515736444210144195505625448445378745327485511934467104391628344698961994871247727132882596242135519756947750209265570473777747960789655174861292469972595440506474903315946695983301503698550089430203135585502896163606496661377831892320771396128933738016729457121500387280141651170477714794565839509784257049971131049052127138021466347137297096027737872301745103385462599987722983067800208215497062274114685884810676692011306406101809018750084317102752856607792878313210811520704907928133945760196648556950260989815618549509371260560303941424173733158517210322574562009695372541126569641880533968503569159081636793470678412403573370323896709239640303199619085629222238215856833961603645908950107669453560546765964280743928343046687759876026057633790322332876027673802098660390908100218792072056115852803849267870827757483391299632311286796131922245410371012736766632146218493545373826487475029349827563156710482578957528961723464161360604245188575728508161906906523029619501160493285078132023624323908615086527593208382613927260189076026135680715527550942772951223791122794124768353212109435949256211168911383052917164566861332219414831235878765371712449528452942038214216082813752719169003980439044457611357037573048118857339376837133021941829012959837585498990535206085379251874257649973422774073900571858605307644854510949931128704472984888600254704755290059514474575323859397060836642428159246226026810344104498008069199513044794262851144391634245020333020357813530289606255100426915254440669309617253066255134366351221486121968793957899954905206013451338082854520872047470069224034064284956196194860054776348432930297084485971406186658458156297551425307505944065161708683169214999445257795438941442003772515100736242752634982250002172263437230699765312090936530242548465582249530675176153539872956059624468621490108478140009341322074821787148670212564135602579744313416068596218257649440816554058804468093632683923809066494445208326339612835435680833948805310304949574982279865565300938919255431127231218757543507096199025935322267623515365892437507171934138977186732341733198943545348270888938222466336680042800107488098014561562148088346536968991443777532400988644534857142331346839098188323170324044958865077606867128430162359430754560687212227515506077677482782935380090910591778856445617262450828019638175638064694752172687166662444740855152437529286450785158604837057609017964321638547438490859164303081086078424608894576929039358749701133982658901091445914974750445520633397785508485543498228379783509816454508309576724616610983562917867807645131439613248027061554966973473089438507778423700323334589417152967916332693185009960933566035169373324425936476089554145514257563410830270573099537671825935788553088706330000822254837948198330665058106894524964139477890932586695504416093663794576241282561970308814024385392115725683755340364405974295242169418582060208946226615645128566863560235282593440065131690569697729447535690752534658600304380069890320442689855640063008527543265398685787096510989893314519036299071285750733509185539791341107667089277867342967204421889392345554658638072307783075527523676450115100115027734445244211759164696042268595389719539109752762924839778051723562450871258181399773435443184033091674159272829504039289890439129287745215865449567713295971922544816213808074744489940574440524649016976841847084207092905137526267081746042369199080663758554032398289578376942650716845011304025249419288869069684245416748335678890534218750044828977745361526856562643970150446660556199776983658568103894844798662091465205173267833273879624461649457161771945636130385402824287887455356911649451363801874656517118251717681883303237291516014380917491194207567375461292410232131128233155930595763533715458362907829300523038764065657975050507822223871909279258650920167771793632413532359275154750155787319858176994903921594074722367130993180571159419916577746667700300083108966404733296691956684630979163378572611563537146549619981158552482728273009277019219807266961911860273084871179575861864963056511944266704779192590267827260977336269671195411388737601684509137974721461593559383252951398562723178299055980154481453689313566071346257264139332365195549087568388591700082328805721239367127908801664782034355911090217334086481606617267933424564439559559090945061480791440238943640946469790798431701377706054961751867138521712746497062325464988346508060988354369083034969937221712432514718413119386963792451958209142241716960482696580301634674155707843942485212643101648579462382925713977395711370599834163267420835712516768798614465133764138994218685234450174703546527008502563857710108714558682890219852264893370134897986723241952117603943878006892301558380825894832421581265734646498068219672864570373597442134748167512386814440154170997179655682443072777813322097323781114916246159389484059355056865493824872272705055091576136012328662570404656799893573152090685765325895045769389352272763545746013764235034852427912223113353967943624097633632314074141126024647408717522180018959411418251319263991130388758368614574674271861951335590147866865073118219140284479565695621047569297959551210501224753163738549327575125374433558145125418116685459707027258864995936066047309347715718233663617507184753490714379954814322406658941828420280370350763039250073763055080229678793354664866533056817720486134436783631732467149670954522096659859414762057901747870434312969145310042942791275865700412128953266108727828283341660647123354322134375285312970865563530878724252189702194203666710505133510878526024396796724124348836508296106135345228980099584076357426219155054930267463163161640414540317972428412570845960213824715928726816781377689586557567021127614338231041669212815069792804860420662064964303564946053374508759003129141659927072343425756671517530009800902853543557808901984802958926121957379314224280146358561497588400276402331798890161196319478004113356711062288316678349077141527342878715844537179764388496672263295195045221060686181413863523917059247856854671687592781725242480287206192522384553674982672650621167961970821823090715581257120103391935201984377555156183057309250997658351170733492053962708159101851378898001160254915474696320491463258844435801083888360104843331561217719067798725445991028155887853010410741046644813725935219083968580145807336549147816088540884264499904954660558939115873674926288245358316899037022895599452902372328844729931881353779323775080628938020093781257309472448108337096172095101730099286704123292632970670848987804491124774413161034362283599337775930218755878791973460256121427726846538043816614862244270732351065418913263508511591328761950757615616394540491754447370835229701870567277502045780344748519935944516093976070967765187796835522518397886916910299991200314291324150440771550872043870751683487665165852981919185599522625483476607132706301155665441328620468951675430411052785426183429707233150079153479599955024433264975300395254921415393281606613495899989267548222027143454016684486696044090842398694528543671056937220306816115638406018093178154440195259685042799180216254234818620652252502932586690596484216671592249735445493864242947592225323931994625697746087676009784585638704014060530233908917140236224160275918858904979534245380802461917501213749187508358518893859685245289511164268675691060444683756413464093177803331483179581671797247130224214644784983545261633981141340401912669588906299916099421676841338739206410924591249091820442027370100082376813025494182427282199502426988027726872715271247614449803298702302741136651880688577128589345517183638918507956063375179103540077451642573710734534922796935849450344399252102374694165923184719303392350868910490991501291808925873634500478683458751731942629862837455595120919881569495560537263534760540009637818949781513151882099438453487053424120680844872947443307509553677809123824237699254238949132253191912855138176550130341073081705214456335400603060212375621917848539169475544363129277107390202714719520889661364079805510246089114547427170313444663815389120947114868612944417972377530967298852328411795976443610018572957060864716240397971614670895297941009377135974449810946187294945815081988676194674096107110434058144884170223164995146890908674991836971880316198727500438245383313573159603455431061100453224463744638900572573330344931651341805130096303064168319894366036462525891652496069081210857560076343256025443590510386450465735162577339874924519751923188731898655919190710975876372215482226781437363379325193488299246698241981860633322732889942507010180385723208405445127513109711943297587278209352175659070619870817003119967116103865527375614181057803185100739802392453094468764528929148288045943369494108309352334978204852753033116603798080248632290981457497540391256843342581938753434782554350070470902643246554137290077428111057806742217791677296667783136533498564691863029541853506888407742847719979066572252266089469496643453749351579532236720340460563913097816842334577945063257296671004976569196646457064339418755013490988687497401411215870765756558661532247305361684491343504326305868488324509325685911126492755055405792663565512396748246068814577392232938524384940737254099006800436292008675625505887697000969925123413015838761524506894662270358561532333488648925839317423585521854611540831822871971934544802330513923442033667442191168415081694292346994281967104015810218603063323999862006535531461249663427580872318188423950095663083287067101288889427504246835299550685667651332729324246499128755712609626927684457291937730896071107018339410686686065309713256028304905106689730967818690072873565513021457953012480909151071327708699348980621908457573889847968322983424548986900504319206904167371966692955557525584479525846134178304675954612144280508161695059950493203930378457001811797816499817832866903836259662311916504410315830056289148708208394723039319570272822433090662547632513777762430850504343114346750590848768458915579333387154895031700232393755319946448879281573647851564906212132821030327256755763357616895403908906149054739429876285635767409847571192072274091811618971401238370969875894906026712492801302647001969643069042581357774199227163772034740857752640321377688441718045788841123640169700327083316641074026501540926301326152628510818855774798625142701373922016644406550250394859872317276977497503533267531430816105196855524954520532318563822904992850373243361181967955938570497245140484832188918105395409474133822998900511755585584985588393313321085683140972711566578456215249117921894586508447768624774979779642443987710960966141722090770235549150394616319159859308245425710681119780553609279485693764959576046098612217284912345488096421760591704840306786849571440792110177785604849639766726378997666791242351078085588702045697988457550489518443441638955976494787309051706911481839991525110978178256648387655559360654190847813753676910462374796834451539371048827570579583341776597248244691367638460027896570950503686060232924883394989545045719317577698073761600906669893288594988476079808946023663220254204622324663305893639555818205064630967623920286803953143431983985733147685792728176157855644604880886934220988107975554433408676799185639881628333867098955632198513221814642781811755955918759806428417927642789267149497357811676989734769214286352840005957499019729338846431088620582976510387049515624727041827632533911560533291613578587081903309839090389449219933374560203868820983853215537873983531920084674132678048346166595354556080959510786432973988696271187600553226319839489659666052914992710503225928539161787912956262507718318909825530656522226916240181656473292874513719069727118345826230610807924751031353014521978947868856288274138690362985904367713705281883080361000607587844677760515777057598906928368703267460225156080658846772116897515985597584190280583505400747874565705536758866520448003116927281927230027040160964721139541346877844976801827252060346278654402654126326205956831796330319993772009587565246988431569934605582536430562616052337475372295306915014924566529228340233371350269074428401304370690864637269213295791498393742010475080848883580407365896654474146435067262440541411667681425960706103529763178622729986384440144162891054855901300148063897981332323558210862498631496068643360937879099163927416590296616619492237185363463796337574463893622980997732487083947480422060442743315389179213724469352180483071304181953952220841680953728048822264185464582795186483126922255968875312857000167705925375953170786377505417069529529559257852312876705133264047902245239362766175774240928673241903210249080163718299964544088380875715923308665778924638362172411893482107833277701906291507901039357797712950227298063208428936611804904925191970117557398989264023072748112693972574251401695389197560359072618004293248582016759866073777825164377529250276612501491867670842805029274379017335079345182667143462780009155387667838975681635008924361432706324292028258152477394008545087681005644300734124190164392329585779779265307471252341836535615992541768259181463636268767104217196449581566521202895372495664531185149680421004508232642573085611246318617192939926447473972224844367216842582649738834813296460742314659283763733037581231661060232851016204741737415902969952058744924327185876815633922972856948352275483981886447093268313840174808627807756523538777707504649540310912894843564820806931993782470932093222115215323949854899504570644690626315972928999365111173041204918266226529929011117447546816512863349392770864274470140520176612332854561710496746762088816103150328057261101804460142725192302787440734563135642646179239162950764128431085191096249626246463164944223411003633035807064840178782082254134279338316523659625307235167789696156527653115658883917842959749532049726500512297272333503400135351449037685166354967864343382232014826544632531672398210766736598002837445800720499234208964828284652809988745302380931207118679735502090917173587025370658271040877732014603796405280439928059091796996911013621488107484722006337553788523156127040392021822395656122057333077649307424029604151259783285371286612405956491167045836902495048451989940095135375229519148850366051564266378318436533307316246448504098465211057085750885548988160138943040443687108089352232635262400812409917154144713206296743488228480067205138574748294366554226347409962739806808157741337886457918315282846700846074643000946226761600179186971394660501853064573928666551793795035092010268657559764343559911765157013783113227891307624796789351384272636172826509756130808027989328282473224078802251402800682889353488452465680839059510600880171228357492124026220727609461583626242739634317201397146052252686081164461289375663103041693591712909948794672781681623552584082958061287307341661653898229545672853206238319569158149186326609969234887614729126974709428890134038405256973206690894482318107593952327641860511459238532043321853396836034437067808322484190667211420953719822277211713143455174865048505271599826508214815003250521458434590936226526787688087683486075096370861882270799843148969112321218888310869225504729162633646958066791493578155676946067131036299080963781937966692028345624982443671922628445227351464286301232372330678778665555773859016421686679157288222112754342785861147920419362258978801026146500434226240638414689311990765641858011406509706922958265682122748689192620749803844209580933080254017473150875514670127390394996273820000114396356795666760493723288565122599047453761066172322246638772465330815307276037839624221508077812385900383291429633994256626477142142547749348487727931767463138175908799740982044384254806195475689359644412146194530789238183795269881355096565112644459339239113463486403623273247681213908031160968677149480109147838259897492246291854002012653224295784268146492420151182522791739551542075739092206378117875424441143482121757130242467442167660556667605932938977609099422317302505997762029663276543123235811530667653880900457194768132381086868938223192545309939699486652430577608378023272915591478347670395070355468953059723886703017693347199116739120562995046213974661141285666421067803407202108571525832711585341912510295023821085193424257043370947775205672339014264501434455147511239205627253699503095409375377367537426521260893612922536404450324092298249831167851052317182698482344250326915060042247335001960879098464704533916595019709541440667596319599010863738533343680638838172094479407477052127937602673233682119175811773213077604961892746583633983443879884447939202689790465383915867877659855976228783765378490886739139644386423856272139969201177567783384251307768134730335014250151598079066103265542970849146584289005400180053338506314801446903196917766143454200901414757568377864496935764269706051080376881068465216285071024584708688979058545984213085595353953739200012888848965412857619297604807277447743535942452114014189129317386952939739773784445345307675178042104174822705576730691986817380547006454153698430959548539690042237122585065437914769955013752424379811173453066930163924325936811410582591438491636246036416789127671988708100703877345907673048442843701548429094230384440710493742488361006091814176777078816540988846895609836207332124498948688428402162757922498605270840535468140137388949410985355870571719494536776509525420953384069163765052760232689926816637853791690671525384375593923619651107998293294975282135957880358963805011005269455322756853250962868071770239467154167951965108626260503711468530745573244283557354454397092997426624728806172749239218145417253815198973728965904371317157010730438232543860613343741131140720259505322627030014780265165400614931911245748169138084375917588831611120657420041131398181362415689899328814107602450619513504895619902063711558935468446950525520209436583184346094372109948747703652523442432255922321504259473586822855879178269406032038236302878260247900614282654360102950638899425246618970426792932904430201893609552913930811274230331872406605440629986352457153053889664727567743355741098635204792547523116711605995367098841913898030246329601314083918719194811744120814762530176077269452209900549177636865433439676550897063817534424443034544231448320252431280854134459623148614675959156702420221627900796253972200379205295712791619709578364610193468461213983046545220277239385053989838322932445695952424495799455688157479794214778293775224061421980283760360325946424128606157724344931914244097387395873462799788334371023681695292042824486966749430779887748427082598731595364543309565284684750177844347133799021305798071549023042811407991288960775286421161732319622554575532887428058853953094118490337894022160949696146128164603528033342398745523289226622623765511585806591844371505713472795642325609631963672552808802998474646883525542908151796178535717414140432244585898310258189773156491885803630385228611916762417170268467003179338649879821373257362499251925536518097800894750718215422060262595555623556624799397777962733781429418853861165736422195472326259241422664001852111380514078458819883708413988702955563445075749017415930924187341315405722660377555107675966946122543123137742510380819048767209112935549151241423949046915361481586958421899280966140068658384616014449004678178558295541911489286776213151835061358629670111591555968241201191216652542247780408791817120309455326033005136448502853195632492975721530983299040980639297986755871975762636034490519890915863620602923163766112698198128420490978578575477696225705453595477983316121963322007494795932170409765222181869049801084709290552877084516900259776674717136310697432238254918878448374430455007255974400910157398171099738984435223357572437242525008683378715002233791282715159797149815179946415675524785330799526878660238357002939142202240175173750324017316488598556018288050194354595684819254761330592523429464643324366684380388731962980663056318096519565753155137107218639426272357209512076713672722188563254359217060396106493130398219382715561436856053395179388697414366889814449469758425180838319570055268757290654317612389212704199084038894983104078245751091126073317897928036582899891108669723562603820915184102351332927680321825490677230548087807003487090364611052292150822072934290066875449831851715065006673578887201775421076826390408753284200139765371766186546212407936541943894631515024186985966638310070248496403716714861971827098614471487693213755835734715357897289747367624066759005420754362122228710494088559699584930043615023539052671596744916927857341997817473406200180930621127666693161507554469113940314680459650675238395267885159952914278686118788039106637974522274053670999361099411956283278805374696888790434989982325119772761089284514864655320187437691916359157841063895757203160665682589057129197876124495601381365064649480143370637998935313363447735022255851674348887818807725375271553551861867889645134542926077501261991324818587620250147458342508361085255616155841475148519566949305585700260901852839263308826306985974390854662920055347897580033345351097487377065884880171300320401764768026885734576844258631082826073551860046142396409224764254251837691727436074278256707074825489499429088360244261225147901097615981991404013905853909799313527793660014826817786325436361876071210878965412511498721037973752159054606470938759334001565018826857279487534468035384710318571483256963853961250407680503508810058211416950739483400593679769345420583431901709769720957074472684226259477991906779928829617735368470779949220909063302642884275676189423464210306096965635512221245830279156881022143085421380336643123056882623067465734562124828613151774668006408188779739145473270715766421544254306772695837991172075756624430856939329227823756649778121975701721256844920054651249254171190923957681452161222858419064780105524956793826131724769444196877345109677813179220065762033266249242875425310841848041511589864890184101978342323253709956880771899527220580514777629720190493976922118797175232699662310133925152903986266243781283045155691811355676641252462704439413410012295900417716960996625566840688356413282168465778741557294126998746126420372038063952248648522059579785522339887554250810167076852595263486093920208950827527189468334957467491547082644794350886247043795645240792420675387803289991922425925027087450642385629643849265366222027015112197654169979926131462848787634630189475639073468206115584298224948071212658427610236971959805957625268220602173453273977043987434144654206997005300289965463314949457053188158095107013008948157770068179069000809886900283267956963431664168374409076903651665641228915023807156800214634064283570176057465842361484090462666133350399489869676314017157081297110533543518240598147170266908339089511242769150369125554305179897518163146921943874052689736756242586457764998456835856961322523404189273671417566822873789369826856778075942866727243248681146937750549039938145494778289784180072202683998267409415865776939503856839356439433207570400405204377011478506802057818412560907408412526607857140688674180548919498221851875691973990200798994850109985231724795843028775782952467547610288656405496683875567622868332570430177256358119398634134286176294293866757319951840968846648794366978096901175710247095166334841631358055416317731535919123573985994444724201656050834079971637786528455740544485308828014075503031722359209798381352629950329024556272693747592097262482491787168442639280329336116934404661334529367585855594827452515003524524255438003883686964666487685300086098787110149030590780792919261029910145069449707787264988575295732489191127281392009471603881464074607239050909563584219729645101190531810986378743171519736982869275705987464248704933604633366682756400715815758940681721888905453958950364734346132206946779297761447011246460401629236776165987913107338682904851534499247063975451595754849376801382726275018047135926598998049680599495304388724279600702868626219176481809067091626547143112749186487479165345391945309014659703821184320375498622568825406467565765135169418137165806713319790119182876402292036897293824769589557669266415407849591095053867522678806094291895309326725698144895005002737229776802068244665328576573448190815061693118127399577663100633702022091100410872408668872081804657430565694208215723769605471959740503883360405907238871076361746863998659390114561840764512435519668254457535606371957030385787965494535333880448441670188051596653614077649149077017566152651028143918664400015157539742489873514250264330977812273382636596443841327414929571296301126794863302185644049802946786767833640753387559938108607156002454902715832490152072029782886775276216012796523939505011931325927662110998368849556809914743297982530521739629952575059168739195409572781642790460914681048198825247310084027902880608340884078426559935908100625380790219729210822724247688390925803184748525789593583098033103278075305211335683983801270036752678462211454227460647473628025391341859700832943368104855798219979564057348820124610321754110377819026886331860504274044681800059052099398174855274837943033833625166047147305986834575416287384534924998897672959121854532524411700489255311290576086158789002089075147116103901826985966635995229685067966960414389993783121710686705897737557283006918785132399240277577243387252344552304571654673070634363623711770694561886875254253840882112872350109111494801602546405172006506653012660156717183642396842736956180818931013584315252355471084163807114140800676390663035059153430433053888495864557027410716794869581881503638898727223597603530069119787424834245372490173828104271284293519246680677955165585605553436489414435432426821751793177693890734182883303689588505216929849172206696923985171065395307108747009934223271571792675778157056491941332362796411821449649489948905556987686028417244384507505571075714137184247167986999457940438530520281335535268041519346129493653426418264557314913756697941563573640635449561208728739155318472900527404702628745555633696217571186195295218233018071364639363660960930747567082877070747587326444529406035972180021906679285985266892849474773104405624677460735114640879439292947733013087855943044218874810262929619688265410420065173504348150772975103775305322686740744688717622916708951284895102215065227846730789479190418723897390114997627969582473191863859634893537779944161382838772754637835296088720380947825674162416815711120842272101185676983294608828682964734612835276541406183627338659144264208758457580915034239845245707162534167987643479299586154238245669742815172006619613837556321543869793161771175784787942291210787053584919978616274549174777485070293747798588022857302826362970945721739778502508342725918233584877786974738349224304475920039907875130674581218976313560784889774195452495364602234571569292069821729766585479084396567421150468578918870029333606677002565372733119762613626412717617487999901797542818802031618722169699763127669756201650450817249641916023860962403549012957758417793853063899433504784711774153134506306437791717087310387533722628042808586233924437635498016426031588815404754911092087100018966039531267176523637652212211908675417412971115724219486556202471161460285362160202480467814803146762482308915934771352333930410417009915908373611112088524718556422989757542458318273874623291735672888859249777744514048427540566484704941302086033465852454197657797048630058046936305191228925565048882842468265560489200890450386999168000295791859827292129578681468847254021002443005288505848630304879388880647820476896830086161094616922996195299438041809084427770796731136043805425668216570203621573879503000158612765133102396896814660829313768433863369178789223909795376820204378979181001406796193693963600309405240520717068733117649964755541844693166159993569623813081705937557587147370255894175339150567345364502036640480210610473755046525075742121865219495259624662928228554411807346245228754366233529540583160800429404449520800193500187977505903740400535698819754272720516751353384849861262337539026106324113701493921233804918702575487625322978583226942582894679337149750281327110222901219780330937354621323881865855653818086826601934100665001227134441906741091285467877122189890191325235983252948455825689201676913954209540937034350341066437624208801538780515645848950193814664722096261697704625013258597597324023403754581919268214661397265984196646490133105152623338474557762354923069252831336300107322036189980229198412362293658583720675057496976073837435177807668464379222447502937707553828681486181509292978535781558947886569558335623478369454611810611699984707810248811204872073885842494612452621630939487139564007848672407935252344008754452715782281372366804662788043323683314705208315357916994715461159176541404704737383811870614842714019482349411357732309993496230234228596181790298494041892080194795600689086723934227216813449454749136794580779234199585357479170828402461443157578348033703480828424552493266816164943038395073367015856233891704939005297026515469334413126777335008838548945734903962074516904989431041629353960750410882392144253861534162050036879778250905502646368439601272848529208965677877483599414566742273114589125704186670031492664507671643902079231996967200110203742517847530059952824748978883861058474235754247203791767525839325736719390763646333210504306426759107057369146817786522695262172958295792516323877470729086044339472719187700706908098657967612555939864791938394102631784269819211189754599443616617623087020701959641584837013809803429016574248664939077712123909791608570673474957262957253490582421415486196532964595218195642979026029461500543633754274790767796483399071498387943634880826974733413842881277555120893820056852695648584515574792740067664415369028083818795798210292247948060590530348300460873760234505065060312900087047291894226785594580574642781995446588717346472150563777996288428924300826387362737218736026647728818105927031827122696683119072729216585669423188181260196356854171338571070838856283493724573078213525135653978902792074888674832477078948549977153222529859259070063614320832532398159794840251237279299502504219997638038284456622728974778504768922375058006760050749466769203478166940851408963765485095438617380095829491794160658275744204404508443949069775672716472031690368113802692225549176701274466266619226087575572372228753094737357296308974546643619672088280555474102868070696399184630639110988643724046981211473948798715994875298397540743761937613502744556433779616693414543992225867024925569248544032334784796477670397277137358952752413402317089832344973711224017723194818700172713089580062105877155815506116933512643414789381604226983391270905248065251433787218993291010412273562487735138340127817887294484444352359025946644019091657170399059689548958431305718455133412354690456950309949643492408379629366316699415675545449681860541558628880269433431732531479708803467628765468311918147325942955573583644871033180045290872192952868430779686073697315526580091829595405988320804896912578578753175032913279581858328846231535783759126393245934118318278171482741569387940639404235656825921100531710305914310271835687591987905029514211754099778860085933065523680099778502624695798123229997724925336785068786950314335528819223195488854411349478614555909479216414899076958838568782429287560375411644150198380356602412093914265739994758067175059011577296936370792512920339863349407443754092005747322731679456252639367713181181794614101979349170231989232560828489335915049808393584552453370656306006320955457574872302880318777759879230185735337045160961242826899529846822669134103028316357282637554359791093468151580570604005586069580883639295685004714825525035862991834648632729235694179087724282941106692051271130972298458109234591094198849489066799839598603149981908236102409219749115783600209753888109544665226016212439914022291714686064617833036943854621694066407870918612699456908136952632929701034064420890411075126523111146502700235128782489373038181486363691094126508604164835405488449703651409110396379062980515498325861116327377287260005317068973936478865854198462700548591966383070909762814724658744312183978936823566571414527510037705731976499857821741582722729204081985739547689603742278149119597487710490661682546720429668397381268168570250625050724133539762569753080316692291625570670789882942308789093004178296429996408774596114924268375833762697752331380054817285951709241137991299011528956926016823915963602933140503913702729278077625762215787270690475268570480123948078718379339961585416386581878189008483069445612633665659501960867500952127311708815945472583458777090389493500276674984113196376985822969021293003183848182787187655509091656442146496139778416392112539005472599349342033650956907001196245056664724093044860328774407686334491151240987822073365454473343467229426907450670747925898981892913107930046670279179405921639639918968071187027932773935675476675642549058917209261729823976446288224504406041098127967932766292684072572592187503673858416574266073737670615821190638159133961790307339622862155697210959491079364528836256248880188656298398257388961169485190440093757094568240263790007143099810295909655179219034134165004063826708510763129323036382075940095919153894775353955659870215176212447596091656723719599607992615131152937572850250140649208576084973917521794414728766123650541272234707243354758414325830182748462831816287127482342925331366407559814622524537138761786295038344577694220240301353601007972796021939662497657225127380821205654263220028376985187940088462879759128651038104720010161963847885360252546992067467014526947950983589501983029930481515693301481025501728447093799612708810605836239512314715997632436645522790187172050630110545135366170395249062674022127039815975378191583016917900886638080525050609908732146905851051733104574669974745375674542648847125562948237414658302707661049103492441751158876317817638749681509900314280033645773033750046589122477892473938508968243426687207137744359924555956137354273778643781211520356976206229334005999220386213751392189237141997548052789010415822925017564541418320064327650467165418536622671960228116008687620278670415364766079309854988829298859055534674481244296202596390746577578182422347953229033834396415122703429044389980594011024994109376725657239467439255315293916714392281139370782249254391137896773199771280721276371178841581186384655003738724363018148321494629369033545893616352419706372375896972327777970199377293857447867446489335699008236050721224642861219930583101774351865606287742871954975896219328635909737856432171334098528862682135151311964750952602143306052857413597733580602127939479966940489540237081800911215692955321488169031601427834100582399500661225776213544689285805835148753695523078939095564079297662106603859698872211732656700197081606599770252233141462555279598353463111677027739839644102026690416288545921286495077324329681443214115658163131630027414631995997777222945590442380234234787915071780365634096806431042186594892324616774873506335861493259550115774207171703811853252258667700644025382918341716041339510826522642629237506907158173162443433925199176276374041239693650313358994412495488335379449203913659311011145730038619135372712572829986795792541016593102033646134804858114612067561824111418478293307212958835542403316517128428059105936626849471770484433690720256596634733813640964249052802070874555351267457752543140304026506422850719475675758268597996242999734028206276250703396627995769148091940153190059854063039636456042484925584039393212453632824638061009213685123602461737625298980757489462749104958326972656563665491502888696290653418439446835565184726700094275806933127982759204001752477333147364153843866202121700669870502873294905383219977792793789410695798942611631007290103634129420115087848583702092828708982037228053667347461259258929318442777026338245427533485521074034152308733023828091493843645561465920977139776978631430779923737307791333855080535183253364765590673089874322921969049981494217568761039289939996147770090243898780420142858085897065717403879812563048470615178047090673405447228346845239087087198151168138848809807559254256477266509454878770925304510358921783678209240561695394474151972361757351400684453246598336631119110020426349137589923249262208732790140368725915428760981532663573669436735574760587283289392080128177123494528478016866317474567450333026889229504022814397374529894652448804754328854661076204984296596567952793761351878263507229348194277767246068608920326373503415924254208843503799523294728493125448645480695237408044951103529990702384350103841032707581791599573147706810708574143480853858877374504474972229418797988725097595870673648476575671977583843355914291139751419569738767811852068331583234369045188383516288836481539758089832147754685718897609497045695473798456071731260849783157492571251242079766517330790571946055717399800945876488982415823351437084016005507006555216641185957649806373160923185164951746343195300394593856423108625309585105384677974544544292608455940952770113686442370338838052007379806754637194905828975729754930490234253398454248978347472521802794225026787391736165218191103822350751416121653236756009307155317701446367780705927479624644114741043831410980451502990098791576342767415141225910486925813365998583067451004329167228268351965163540367417184919160528350487174551498554005374027064179289516552770927457318656685461318360037879518240968275040587331267061012934789291680854889530883666703077976867931674156925006276491098979290842628612859224926820905345715664805530976475451235195257126143096714945057915262215564269971450081625808526768158695210425804073261474241517321715219727035084476755825098623972602586917640161518320957592402347050574561405558225804304766336579663400128797236130577652525648526386223228214629855649073049714924135536704529299062105249574571700346134869913395248867720017409157238643245923540305650335669047396651720869311597184719589846293837993976710364634413553699824661272739972477292222708565047140160153422735986427153715062506867140478783249268844488016517635649221602767672281667525269378571176856749093207386566370538097531191234314008050181248418679641244540192679434507610497111647162801336261028577045742324043073167222929184686547705987849003336596494236791952181945277915766085562353123632265646573358560977222805903809787196268332127850271388760207695986729267032248840962413585454559659004667299762719503897304305785360038238379463862016902827333669193020250229763156805082515041835992185418014091435701012086171166036467690205946776857805051518370834701667658550822956321582073229609612735411864286983995615381961866442379447130135346567129801122068027495897675800119362876948204948584076360312954313330801695077712481815962810964722492107359932300021561511121203391109880598007847285002844528513942221693498935858687292834944311001624033184296683832114285821216081954007084115043747214221546576155146104359794010202857317628778387693735747589714943500791146827527790107342786235983142443521523920521303270997305128626814091765414830653309371309447159831427408494585723001499218715665493947099092993693583149684419850365152117165871993537715207294550987712076757581771051801271178837744937512246579678461624223160637811089946877247981634922826791927109578971484597804201287937087495642786584717256451539942724772350332215359713211631627400847087510447866901585333308050534976168248121688021154608973875502879160106142900001956680110547172664573660187317780311783002187332316704898602817306136915209673227320001870027552008098641494634215049114051475661008540074444064194816702259889575134710644895085718721358181225211757538066944225708084786148572712726795476513413714667407363125463230672053881840284204966402976652872114204033623790045964340535611469057046618521051577175254155198257100390715147795023285150866511185098708166430459785030390327730404431033237205707781148048937250450788757572895958227658355656620658044823452306982368056688912648911471669940386605363368688534267392586881150647964422533727077661164828292962469342503138419419753894138221686500267659687356961296267344272784067802494090361868548828076882706280089077492604098711416670379695109356390549817088548826245347487092773319813135554443329082945337920384670633997751733917292914624000555498533839681959018466569625650179735213520617190950578785676550089719711840485891949548987282752411744767806539328931095943806040978336426578033263009152996979223707401791626688553866330315056035007535384081821781812479942955227477621995438611399367563738538162593695290778717021217537469072981685562126377033244892289700958458512758804243314615120402423305732068254565360203295724895270720266922184453089247613156256946470375387241495873154567759760698151365775542866267607349245977972205784395477181879912408026379291159968535052471685764645272285635260575879631905437739639237147845275093816327140152895966630037320264060521371089142627718402645595244894788624240644101925053790983601763793350737447089916922649984000807217801151698982472884935706885951078411288737890848226043564426643974083174741932507900006056080016962327047549289721180904200006450465328940075116007609418867586360875577371148015917718502549818787915805152380924145651968713528588521797251476910902750816767374190510839739957130425358972553092464948492874203945826224477957006121589947362153418847634332021602711656616015574957324156950028577732422117843375465185859796896786374750076099411618540368696888881895247268765810166043360496670343551413308425742792879501191785311288509386649222023109374545941923403541736054915765345970863319113848334317101334856190335704167849342271774063112803844310705210392515806347911399214316657038881255293918541642362620964786246304923636070318099031596583592077240018194942343600732904267039725661345669150636079855980527977371994605305219099395457462772503696761752782794571491163483702683534627991423537896547432456963250685714802904343800264000402697623826589679065682584484128807417181523706813278549603347146902539048417565928192094863992255654634213847398987132016643761833682168156760676231787274229918382636900096810800084565783853656924950227175108585425430985143588870354539409977164886067274480077148731836703579117761979125786897505899718181749541717595823086705091386768967488381270095697875698219408192036986882881658285908589322887625951038805815152567080051530801162563309855999908348414449771857071423171829203602029189053624706624250675210114318998030818372406225633306857946554845181284673110337339259338123717109741207283359606704519819243509477428509465696689561200497585412158120430538222660238938031547518361208546435512887478058567860524507320403812047243449650052398432023878180380245959845350332186048786893290158360023074151617112991481190822352822874788954929244658322729893821325133491200013585087363306870721016255721822277207982269176105390262875978535441870988551483508788938737038166193926667120064470203987436964892810408651533604695871128126095037955635949079699322618628467520813814413383010905514415120899894451641685457065967083276600275814382800045817538821338604425324188079642230101831468660486599663189135793210451816214972324918347635683033372963006866634637214771549346438599411539570435356117478554164909058252657241318879201786430892812158505712332033929360738463305217570946986522030335378112647304841612814190583918365887546895460663592449886628842743325862314368544397161702187314464774107475889099961292389559076303981083438828101707447569642537494698353895492989255493609353347814544602280849991513984548476466442115830371010441736385308239820551296842723333612156604325748357331275857558380992303004511933891535460666802732647635880047219918112046962403230406603417322966659940374679823933890454401030074745019363431956920980338398905425511603071423924668502034545223678687682267694242706523454394414767217704559086867219862134768737961432891783851064674150079644860034301974910963413699010066424442138719808518953520940348726483805408737023960473671415962750033443677890611051086173823566991788732210129251102684769828790922926722804463706650200063248610802798096499597420458782623540200380565280112429946324433661142586849373125390344068192966280899075359054949187080805695694254205751014855843029190765272150178110474839844513283015310734444904080688191871578416866697248111283412616504033599211903311991759872181877964345686666320023284787683668308188258485066417743291583581026631834653279154498558941267037404651776290788011131592425029591795317111635359895220004822528336914213740296764297347839773577013768546603666534808090927042743603592978373559876695457934008112731603312465591181807413324121331708222833743763745915428883790702743939184236763627729298725264880437754324733141801332573984761339749191667833050501235689033331226091545139719523265342165439155916219963925063510476132463799494221366664252084275382444993189652036472198801520120119048856205309335781309297829879935410353710336335909754516437732377374639468891632075352023335135804377258528771972793140456443126260129383569777222599076315042441942941732893054219491860763979018301132572399394676045390227687227391412362250609035723134753210766457826324845962238701884848971231822986465870960085963441535206528442413633388744296057561627364697748023924098673609037481513841898330142288691210863515492634983623054658401205979732849394288940129804389883261658045135336744174501084235476610246856007615245603889667191701814458161932701637187684613544260148172233355162201327211749164822243743880760951318049497803699514422506787478669706216992864499422467138524468198839808371953654958280896317638288445998997401349422159916437889152912417617507214629546186294294005693207009784798054884125115846764645311124528103562268208487104089431841785854741867803790498292528979421457104003606877864775018345552646633131935166671108105682668975678078291258464188888376096140889855235171670819124079324778817947586310539263191823908526217834166167456537117486787784185841039989242748525436399720783840243737677455775254178648621557699713854450046123989770856166705203795038295644418304213949160416094952657127120077474720247360746291158592024764653792670149591140498859918403664226292718300107726127006873444422757294318855868123465534504022442768485381663587557245740269094989999488616272195511207089920067571008589817492125833319595376662450285966188770570699792533569918437458013049188580903860118361406365848626042086749732107175625378519180488918125046664478671829121144471060815075527035422341782288808548549153044996373258180538081961744081722514771835917150423965639137835047650393106131865402133357203554167270777341652889908764421556511572031670336012593231511237886003222566994652765950894413981658634634113377952245718360979526311699770485568363571946669258471400339719472868293798915558386104504171074065781870706862676186523049231721907578880516853966121909907985313323701694935717194508513264466199438523098769615002107272271738838887020157599274630925145938835605449853064918357292033598118051904849519208453719643907015129742277729955871323892563900848450900109589327499369851237651539734221771134897266999430033252086178524057578695010304077250547803398737773611919528818367832379274272591533452757360753923826566950590513806287304142189207268993626443929588122613982539054396266115037304737688074246458407103626307187035502658534751876841834900931156402576456368304050020170296060496723112047427711140233403918434970192374149358308074793441326132889608287400557075075237565480949567727292013266883613013795627003296883468943661461597777268157514394418714562334722058053839165432695909061608069091870130745231038784188565843662741966232306550398901437835186103075659332499506392492518707786681289038684800678432373391927606760492776094036806737905562145625895231816150236933819608465368471401797142778138074995956420947340186014728634876290935742432445000508244251706180879815129629154431006143576848466192938657856429770192944024309864390097730172515147733206942584066387995238843150190903141221625038843345361264338579391787076395573353438950397155797929076162816265171905802538878390953546199409796681762594556895918532302064110458517795696842614171644040985671413956655738414143384519497473839497005945071455327160229623695814286426042022250663623941855440548729216846065325110250259179145077407331503248517741806937415314263846784374799672440628253202452913764455256276754273817256201683667734516305279634965501344575576171647434821334159779305097282260780947115421158734159345970506104820729205596142866928092094499640191124740660805195785220764352911925807703650214142240650923555393547537775612755704899308711673378957528219952837526129051475184807697711358268677942789276724278914214395942806298795452074189861271067247250608086851631352729027353346620346269704683607925350870142983570960819170471514436148413428798190797653296999769451470402002993572512857677684947514762186417521086568190908571440164467863444730967468381171763341536561579917354139900525255159900176415162032274932808327522743912405774170371472132205307828789068078036714358620888003998053761783883250511316945692782198335721380940268616383966064917555255137737029860478973936933553413810405961291416909794994659009145884966706039090565027889294704389188316562299803327852631964774283593850979395412392103349892606773732144748994915930171431491046433539411820747701488309674695482220462750627407229487933229918429609259696441080623429375316851769075667038078688057119027872066977041615616152159435454442984816612000833718200571193493120870828780989560605296663901049471489149146122058833265691581709520031012734200767845698658408137887663318385080364642893833792866143478359163018188785950697108898739334169874456816325592138078246234146993959516924110163358204257750059098363924640326088598229320439006990171614043336816869460537961655563821083021494142030138779170880479427709218265324629208602884082027142016107946024420987625159819045609485518376986811333388553056777248119471275021823164290748731354813673571454824126408843922292069828008120327127100572933966657011972458041986278479606096642753421831439797504977750613512945103435847662196119881599667567422998655778740415447187887521868057508875948388120351997346955265683675086690031611470979980662449998853189984657925277936248370650641377355875672146460244794118257159271262607546326689100814428788874342466893191814487786073515351318698200816818956580291027279084640465588895216254566492679546923770012647681808087403802034174666044823803616101929368598415090887156224443506252644919394339346200476184551987446705380341987345839653304888540416619042350848241461918324269707375562894776619381381006852998928739904258041134009649608789350846768264849127265010167137519015286388086819479241607034800776738115045043940412518535427143318014736297159326258450141640675983188569039234960622434121148702067331638922486433962857445710390762928808206900557181708810738534181192876190686208085012290393166886642076979829181979653097872742847309811283216223953807592602467205306791797792364602890821442130171986105265871111486062728799879888863698360907775606914485088772056488739292699483023183220566014091263459129953298810145398516443324548086666908519581569543542769978152003550274811773805942265323073476526579218803818854933870761973365374449505908770052162717951590977596521734739138173951119123467048750533638546911006643660242140508111588421289918352020334937363851202067683474771747217374873951940380710617956163717092023582010806001636047088924138860478020560388424335144187765850974610857536355060407501026022987049755930801172472362427152443903519628534465557586860042554245300103082170279535096414028068433883582688213973247339731821602150907209775961944812394179558816223786975865508335962902065293891142794688018774610621414326263772109016111692005894769715610144574567946692400750883799225220255914572224527806789296203979357747412126195473650948887397866861578119369336518305750798913062347881217451220715937461727197658157255189909925583336595180958011850347897168185145566109698497720513116963013534413687181148880317167571709568696015861825076036846131204745337713820541366178229450649092379092361965573372399990943464792823153192388109608651112873857907637063576325443080821009490525619967269877391643757512388936059974457500885222441956534469765217150114130755519968406658295841862326847166170155056631888453958130420582550533012080052235399778368386228501657525090076241792173325421258735469919097936080717365480679976635290821226055855932583936074107639655677924463127869763729466678384989136378396965697346422586964509749277731828529798192164999190245111796263076209706784636673662593765731738268228961176438264187530879698346429142738461359907312415072343886305268103008578141610066443272975747622114483159667497093963903015711324951367519044476787112654021709122793467614938469680634390230712554958843342742741655087007535351067854746599372374817190229458093708607398780695324187633951856684574839182485730211392154175599859017105663230361041901694019956819178735618099255337278944917018018309384686871876911289073649362783689567373805690814701914091125021810698698871973821543236898817395345953922556805378049923774084183682920075796343646100989451682744547921773216039983185941258052596962388444559628384487698740231487539120768618156718147905260825653105359215330376155203414069786263787097586514250512837654826799107183087335298811367821122541640489243936131751334174722501084562252861635031714618059374865768121837361018720664202079823486013081664316674283954526484099830312748172128594603147875049940962658018642677569226854426392139815002554566937550727260470812684859394943643758254788710792888332580615091164272246668681732573420117365082167160304177950958418222699822495464201457097399785900380270666510630010123521038025146530091366283912047656034557462371959464051886604404293776377066677311616392454350135484466314070532186576375394811949896171279201261678853957796517847828293137836799989454512244818400280632731846615937528595567845982545254766505320311101068323198793616752880679996369943262798083075613166689598938968198908538518071108986181198970653046551918935403758799190494818194229379927485221303056304704034115265879654140314229762020886089915084675836713226589169032380242247583881535049461661166015813110057057675328522823697734763966066990897489338883519223050287214239002463196741454916670417410632826442528190833070577879442324875785100627398511197481047095317338823479795512537732558645606244930448819687467144271825887048016349769967282168919306111025702781340961846289792533442670708177490050882137043083015192462565246855064210750289298054850881166068236924922163991668458447844054074936635057329914308348215891292229663681021429072069351014827377275544354973979145454406666835992759448819247637119121589897356044677225105698350964643718589670540472728034884250434988823393887471067750964996212873050908850686197767646379647405896639344702639915619135749984172061430808844748380776093630970499529993528241282912844568410764582156132236416412114923172476841484762367617073322450823224344657313886315505768747072507309134772293651488594559270946449860490671083001003183558955073089250715307927364853645196467607842581245799342161637536345054380757971694725353799721209561612259984018764969376918151161303433243982747411771365592829819198362630463658790784870277573558823745052560102065451355383372764969588773298052175627621395485277822207387639801118207968149021649181780375639967121740735383494114956179485864208434461114075309913006431412730834913038741741940975346021103985610330742171365766490189858229926283392023974785620467605804505042169645069333236714187545575054952983520428552023513049051849039720316124757027305385580893786020834085818506221462759353182100607167014375542394644288828754102213955971222730001144866961514053183044280051443944300177278046726133155997969667359511787533840314794736941883429232216088222324999020526981285594917435390473727105142627987258156977551107004360246554982534737855473783756732039740290879579763397646785952723310800705085261426136935084357378704366977680290019165302503006843488577488458712440620829778747638327114378964387254046692470997152757357644805383827901127154792706014057116684046115457185398193334088130510789254996960113288895738091270245189601991628331308512008362671676683131711414820803177672340440298877093888874304334547141462426471393310228035489145285850943912773894935895010907861510923203629485301449226158443191527198409811415157658556592559469241851247185661897771341454737620420618500588252576487857558759273766060201449137903077591154428017831704008583001947292496258652641250081998908090206624630796383915086775243230326007862470339226338005853918568424989743348817779203514967506126002509508170286272010035129963992974294232476398807300652089478541155794987923286279243140684482472740248945576737608293192524324105765387349581307883945459877815355433985044977547006411799003670376250304535322720049038993273859475952153552084431446868475151673892765044513805250089351697842930366594350934748684685958545313937472972118385163063512422711635405097544078459564442820888769425697286040660297895720093613116745616739839485278035464942105736892753912858824920369866482068852718431510037465912219951927149785129713425286816662161517359070247189094930118807900129922330309339339908320531300586275629468628909595794682311659728191754352787545297013123389510978006252550194063451333059412821476571500669387203474951578853015212993039182371150238623429423781695408425630952423454526701661050956488094724309719409316403062837563304766102555012072719294867726602743082442731611973191604316326498818501308965020176670681766946984811173269205552185114760958423480104688408639769002519694722041602212533976472154621475329131925020165201941869900046715331408237468844401051084044275182338257618649899000651768224453735002334763458225311374327479656089651657987695259294871268083187676508525784664529108459646429307193371350029328737160097577363405005971503664801259602198471255148927712767059765932955492681541306806740882365938094416698447359449612716913506208712384480530969983978500489297003180301630377533507867088434493991370900061860455306332258354599141954936660616226762750657695815067966834164748417311843552638255016171519688822159866500353473817416310114589851438701134563650143631933206907660714738999346724647185765914547032038969520290147192096197866063310529434954121978821848128783068156389905558005954573436726655775801616493393487553300159693257985674423731904490900396415654510600726444812241925917711113126898858978143935952012801490489403693837941847803571146921805397543372023257983317984537808489220546368672268824397013229681344696740039277478639029701074444900941170311735414647241356154469401885014945021307179057404137804830164732166955718789658683130450344542779858460225248025361746979828005227528151729868662003922471746465926848036939199441755392630812059539183584648414625890534448737873606069350059767364526009281098607219398551281267340832567666624809293766016154119429594684624951460087681870477325836443385990853576548242891250012543080756881525402704008224167410595069955076358926363177098332073903367964570871352305121310497295240476718469942661535195080372116941089873854020371578423414092709778731821064569988208363809057830616824340175180994758616711451740896700326854622558924979340527778588002027765593994256001706488780093004962652745400853495630762708693716199251815948852766162529263629274724618150984587502964959629388981991977957499299204493133199709867701792394511977034324033365157921605707095934708386848196643210537423456127763127696598708598198810021619243788227858465762996289261631395063790739529846649980720781042551398004615286258406158712933750095960830422344900807482631448574287510806938461688694502209041732324557950366366800443921932660352105913915391284495773840428522420381580080802547496848178752526082032161832279909140580671619076432253715020596623646825657441487221973710567519974701676820887007974673570518761385318576819121341555893149475880326126642418301933188369634475756529868477558039450190575067560651681760884113571952169982496924688738360570598810528466510557762815016832979499764881838302857589128054524842669084360311758978704417058380083353595858600240976466815561411338460472981046909653871082731979785023710268195449772591488862940412832433800981487534637686225470527145601438224999482707742083338652309360905709059585050715188623186763318087743286866005885026389999477034287629679511594836997379859556756659840929226029148947283856376799404591312237301900821501283372862425209916858768900444372766760294328157157342641133053026027749444614848482735100043197013205343202591985911567199729588997373459712721918021413825998998201702411498003265806226233058236603673861484897703548128115227251203441210550825010568406605649155564659895102334617863689971064916495218944992177642072774012663553801248205844153662465121637641170504519927115534662899783014165556311774290023107860738263310544143805024397379069651788029753818785234774815727357538452364290950239236202137214705290920145893006306161876828429349627659487522216661456711917924055201901708743856055491171183795492607748022337755892420334620758255818591761289080955060355928231716689023881248915377109601757531206563840529604912436835592395160620851420493394508463563780969265887712245097929990834288295646052547582632006647137125077118157224679422015199421167630773971659032482936023814707317919614976155610277484567771725122734355616874395430245277878283489369558202612547737184520384042479437255953430418969726949517628101339021811770094403375793282519949438544310500714532206092248641782297075650571708901098039469874995920267426798501590281004040233297550519471284551401930636522243442608656502872186113457611906899433564695068717163265305431790404849328157942979332650778668991743574549711877751583426824664606345803818073013566409252786279180879647448198807481205298787925276807330723222184945372035349398783960826301082500728626515141841176554968795950835218163479675590621295941710928375917350959106906560376272626048972465722150732519033169793152704278711008968776710331554374119282682656001083872607683345250482835285402361891556663942371298726906836171604304365534842249150613807019788656977535909225763081158636771948798486834498611504461314014758458792734160360976069029508306515946961397299628538009559594096729613777478027194837927635578915853453278735790937605946627971476000302683943027090642910672838536480729022296951818455845526866078481044716061182084409089011422475611160251654082263761475446899172376918869159695553785612466767252724111679471452133676852143166299033213021723969458367892666370606002727343123702455229037500660109852335668049773365962125239625223904781042309195619608180531444878181607651641596011410537428005713873174608819780887755562061124164770923732517532529697346552785157161478060344720680331465461146452438034256391543118453953409959612681798073729560654159368216686071007512616329594744201084489141051715611305940356472502030821498310009860582105499786443581202808412174320377400311130371661510600530407826111875978428446184189371419491294768566309368951280845529475406927720135385375398788804108417954359132484158084530474091596178496797555885432425284345064794142137838267288675837353835625574593435445325398183278165101545630814565032485346904066749193520164464069217052038248391597919298027227556140418420510532077913078011755593687681096852866031149534889040256309627658360851312835157684635878509255176200981348993694023450978797132546573313027456394776240629147244398705505477849453975859991094519877016134113363755170483037850582679979227892950158374410553440956749859289695368009447882261177448939446278813155904329901284313617685952056599242671539758033470503058116718749803843188574405560859725903262090559355409513257071654787066014091460269803220003470698713276399857958416248723146519242079730366017555344976376857804201466581438355778531065927143821049519918021983308937054635525147043386674825937556203016600012940763860052644268512735367135602855965335169906848763654619831229758503614320604470277464355247264770637881021113618795933965497825939952079589315319292911920244570787688488728570756733866982136313298719398373237748670003033119735195720967228611100613497984255458341240140378210827409798181417174532289922018272202949618303560592440496815478880837845960426543663931859067015250616268010922446550734751472083142346040815868396028986737369033629122582804860517063093723020300683770734378942727792842158679954576444171656569747023793826748217237708427180555727902130028258856735897159630791418335582842206679767855529815134064218279135636291167290319258352301157760151253556054907069524904099424084840751722213745897518224754540459723706877971675801215440162575803965793875865307938171978238687045638088479548852488461785734490382234714618640672098675602915221224939872392914327488583326705534224657335601189798379804749151180774997371648810765977860542037958160983525618655553870971539904050334253505111463370797786820055044895638866505981278182298923456550457613517566323532260086713501066152168758397561821109813370564904650591455500386520598915220300963692837967475244774724197199380007963999475294194573867068521220448173069498705793524634357363557660343057905214354823920472146285414144575324546381628228415735551493536600445217117528692371104602462364864257027058949017803716363972601562001115170980895516282871563324620322326142250234095307637145328333384647629215687506087965684016450560323711940896784461540486275687348705296691044062182839326545187062363135460054897984294377239858795788674276768511997537334726179152831701477880050945822420212799143690854405776482684618189716682117340540583518369746219526369804876310415754872475305108494657250288052940264438000527597129678075314426741276805720065651261933198615892089907777856486198253221807413530178648810732563252531206061228525554554912823245455185612556317789013424084361646449408335968494020630055508641382447574483558256922670379938413736094884349572333958369945957189355201564369783943552037380425269045663451211920667516584274939081738098526692616395947080916875741109302261989901790602284884733756762654146181931861478639661008063166634464783184732803515682255275323950386178732554104039629810267278981460910637169574056836451489553855247446608480211185455362560580627691408117041353871128264025404039092754207358130300829017367206994459140616895801306049304443866292871322941981447401979975844893571275676916098451003823478557635942578813259186296077938064085917248326951550205453214776513176580649846030000908168897348144875588137853839565514164585698737477539244965157419919006729756303314280823153401840421655999752640116003322626657336146800134960059518647674362643996565940724723393041827970689020752272353426009890511251658830774256576225037074395026619768219767194001376051808371184821919284223701040032420236500484706877924827413554671926032047464955968506882585610535033046761542417272044757768041829765762692675223149415271582457542834154028307890639065131063110633431253994947885192495772649879369692029988913291500066918713687396033758095267924890372598948622680055341234735427066286727440078215305904620546073571602028324297047508768650103063181847509028404746443466171158903530225370854584486972666212105665191031095474806561993450613970519160954562912950056527998566901093216857851259431648086225972177688254575690380133451870919082033059179576642934270525371919155006214485703880774261389177228215362875590010467557375791779350187831887490238857767806690150181008752175730796911062935513861291782759218867035071506653498085321088281185648659548618218559675849862200105209033366418726653683811933422077259395986972477611194139018545814136531742485545667130550246388532000688209580617908994919671901733689259693813339059315204714084072497212466432774859198618030104077255310004394344517357215886937728115363980298922908408041436183670888021431016181278285451625646521055289685685270397728459925352751845588586466072216787017493719727187063882856502394839607485052879873466214743362976713939899528124090288760719800273843957747894352015587575983262100920333068577971574833438136385507040614293610419818570267227766904933195420966235295575212599833215363069421544038880465244121079318977246000008939240414479986868263743518006424990570932647511843498294505856924091931015464911945191377001325003414837481601527054389845716587981619031653174136964249342989274861847172165168319954583450389316016178265980118026618593365020495895402652685429458101599300110943057087865081508982888624995343934590727566704154124505077295586359521451876367855143510196795079487262711421216313744528422013913519886981527730682842726261563521940763845867958645263690082358582567743489460742542762686663371238685198595032246218190980847796593534286807275535639019917293150725142118837809540508096181715457023478198999916674444391988000962998781686751007523570123843478762366893740491590234247945890714472519201356933657278946479876040898517438931026091382472924174796711224460483280860686430346671412164787419586824429391361962134043180827957543961188005361197814718573870944497316662767520817206487027078782267852478190322712848106483146676337233435928461829642373920510015219992590288130768556990757602647060915272936659021483783045272682138249498268230844584247866593199373544118108638834312620643990041855220989657914338058437455133853656089642450307001644509910711353107831788639404677845875492165274354286198320640170743206901610919153164309106190625682794351498506708369462733201746774206439768267564418241082444656478056851483214509416612343129762329849849153628666711986954559597358229129516920935390957224168910157719143764975881610410412539812784511161225744229316131097936524870145211236979644602893232226980621393901306492105519315846327567730181847510918760226308726518146842365792052711865001262092822614190095375085438598797766650576421332669501151276463961336431579214020583158031163083673690722832422996485017543849501005240046695540583236886049033918325097639304730313092054284326934655999232822733669563604654685418094760989321353141306271189511078943697946082001253869356221617342654986222806617706756181038192873665737361977290569083769655517263816944860470532277483529502557767127149588810286738122333896595902653831413436470926637053519477490131735614055652826469235686207996809105518410607334328698149557066887824818889038437512638592614524787188835395214785408880542196501715327054378132041259877573122144931310340004580923953741925034367254667197048871291186364657539521930514119759733439902191737850413278837270253126105866182385809341745051680827291614597541557508234600936478336023569921169949637161446854783870363372160078262950666915282180932157803159764190422312162277058009844987110355581048916556597467561649992738950486880701299746261330341139869973782917169202487318984142880314332112507361687066943798198845855707716904102525139672180272170441640534927532342500428512106642200697226586722283324563059484437313221636560148670829333613044455152372373182336477436389101324933147518220917343261236302822531987524733473015721546845399344073816365029677758450103578657510676560447121748178978689180173098720334730620603225812842163777615033195830565305754176934349221831221706540724580873956397124545394037256332065588603162241529758396679392236687684754814062160488983023763857122824664202538240168647461081370639881776054174038930033626685955221693534899535527621628493862754070994908152371885705251710477157877359053081283693858549343344977931504411807208346104240958898107515320868624823648875495109732633557893280510072540818669987886962643518777109839756514476053249221265404879030463382825866711326512509743509318504992782931045560091157166642979908175191009920762908813019496749327981367185789540803164466788230867063080262618739466331963435170055140289783096835520633092065306158870432241477680917731009466224214346345073998676290674187961083395545095982810300971995969125086687314242028592755230727305438802239321458051019110119162380382592619025087427388068624555150624726077509798468503597972155008720732059676265832674091818046931153170991579804907423768421342726370582607183872235367418939599655238268453008808175050191313916485877481892614526914155516081074522951003146268249707319456383513892938947146951118212546664962796106053849337197039458957190358002016982356938051114604735397950390075663536697276672907803325904264473284784704223055880670232544640075923736262516626896983934468940734379365170556974046010884166502701922450642386907029502516415887193679906561246642815106770281326396408703690540669879799273008741779086795685128796878332087215696132044038716087744966114422903762820079252798276636045859996181713069970096354827180262304451567528768111106203189083155273379900792959291307153500174643078447552720915859386285080930166177532045190079581375173980603530805918931560915039966876054335842107716377487294317164598578423791305996495696122031196567590156591089942882706558987306847294819356307386530242032920229232094433471189655714172587395259161337719627610516245704307885334366737535695124202228193565516359609151780427928339808950558574215458230862598992487314233787316516889644141457540117210064292343741906676948424502584821305897160644627757238337749680393063196550993661567406590258802125436735930529201495517581307059805805848584489091647437174596753852416849539990777309432043322127304754449799380171535976233523480735657374290757361973068478779086940320026223772671512211194504817600337540955594828926351782259171914572105968883974034675624341802442756286822388906636498861087866987579785077391181332012428840036196609062820717601078561531876424283900325125693024161821257974984603436869833507163757243560104328517070973490947420327722305218738775791140784111152259343092192427268811097561610909950502056855804795393370744354245681144806943952120998768352866521897128163666142608438159142959784887871996725241031664515858507873265236543444693174131120867624585416147567877932985498942451973460181019896111894535394080734248602969502279145832172762056519180352008782132882321240020423018465829478029306049276640481502300511584752432132477830048039998730821887490497409093053432077827951155519836137398096369012421295480317471569697645125087015450968622650229439310167023048345007611064621861335672546794455951980446193509767712416661472687163204811073940269520090134236436269057707322179701546827369454853086167182066359117224680019928948770568087851092232081231769156820697982959811596210515061331060243689305884196910838314760350454014048894785090224542190537991372954184820444959209790116160357604618673017191376368483278176770374720418795588651475187117264534779072624151804259086718213988151158355639639120394618833357890805201697989125408161827979139613389458949289092217197776435387451593515262929983765361283780570769223315469730758860678992463948808632048181198644907153267859858696907811833380837118788921898834920753105198532144816384220133411572522481186318465525439194968046787843111802290928160721314409306417295347673061672195040038985945174602611466989961461050072629386620401065088600918704299000630781410361706773240252187624206929092103392237141959467023068903301780902351795714693378481342249483360372451220696625939040868862694051632952357041911507329908951836674838586779529099351895191385478553693769639259575923226453807697520409436251549489125975311677305597789961590908473464906723195676338822871223231415071128490327147247580718944496275357928935741109628039384799714451341152705445799760647522449045606671202705778108484266391985540045587361739051454227818871159945424835348589172690355204644658193081945110588638503810024423353254293907686661062945079495043349266474237819899401629439583096653021239589705638075160102283961253476001383399243607827200623248583735006953887071630077137263830531238383653712444779796606369836533064981393632822711008894737348938639891142895511503730049655297937022470960387729635268120201174487277035115334476116749313264320663043725758533820035369118517393262941835687144702659381148307253687828817864029756047152062444604215383633241175554792268318669273497727350315846593084341850019594931220529259628204902647797120940680710581494398870940812732506896630834871841502269459283241774170186352418960199107636183910157389772885454874442212337816389561698498850551589484475485677158949814006662589731812405508009909438320300123904805406810218884475776683316758786980654736863699431844850820425550759884978287980114818811657783635052467288943105072584635763585959316995741041779999902796483761830129657187706849472691181707478553109787524527814261340447097491893534305956345955683001742699256722269724586528758838661292754854063857392974143418548436488215410279256648984323871919276013934095804061425076193053303097459959192727637383772968691454874629858231806366178304453682282278532646698529990638223209703773388828130556969347490413695593391134237191642797121960318182631783239978462869136495934167280544158132004751744089877072975150985838893119755037900477565708754626989094046117562700940838201814627074953028168909831054507132264734003017217752501121215134816750323972766055276586296886473242446142192646032563512821481901185435547272508205381296778306961739172948838497535109068076340147029872421811184002665015684684171574843432372418087570150342230387490026233175025818916479434961635444673927885093953431339885945090955290291758192969170448137258122877624147869339735586540821252887578590691116796026241955120332854561744484907306392963196603733703024647605550409442020958694240997487489704751137355236265675745725774122197156739238984770834911763674981381205799017519976377348104767556083949851126492961869237921357761263114457967175511591396066053955902488727101097027178811562649449813939598335160737526633826974147466645239582932594563918129992381963243463464365577487905083256532501842870294331948659514374914833377767438311106151646410580824594157207999299866617097774704244189968980500377201400713144033083705254977800873011193912368125987229718748926484337477136429102587003482614229143014732179093727166490917346170070151278273662730158116266522451018136776285201953314996335031604715457158409169948251345437096415254083899213762956340426943977041885439902998030500568491358905817419198703628614362863846043162365523146422739732761454067105821980045977986432212076928305617049770719309514334569481424142231947455484955255959127453584685358034366127373132390489446622456684381731390956833282377891571692534059003413563733049548286690500205941812873212680183018941992442241332131756626022954694722203790078700708634842954342275849680950725141060368743318538771650351302168840210268852641463570854648825603629161266163884545657590018121949461668289601664964410688359875770571995179712966734444967910450637492226700745001452041203837186224729820561728399939638955655101971057611210908490813957773996250837886868658062952254974160951958137625559509128139082320011294962100857723667340219295491913136972593078779526075686945639231146602663822580678098632946637927989462268454113552424804766231704390847805682832697192236959747574856349753136619583708664875568112547560029657077067366865025499683589681432853192334594644831124514374555989935026017415587853672788289781864369857572343794579081863368749056317966373258829512614785704804357380642445212289158583140664724331225504020575777545100104271390217456574705709664880683378752859311016525729231872939694001627451606801116054740619544788696220581867405106439851940959849877513245670953123391693730511979534059008435945649409428873180854568871537510265295913279881833168997026063792760901608364523971593737061938105450117990374820432087838398038013082213960158953656369992062046179829770569148356936115902904059547067398084486286860972972297337425307177371512167272529357842740736357489695027400371625252705691092686506664083849208677751150049686677063085027035732167743449175977301706161740889781645487324546997558166095229721909792804592663512458909356216038622853515710696857314345765251849741290959775866599570967419057963438652395283934099213709780117991067371533202844813534634619095886191094427610639660278665045330452777048331736369028235968316181706145449375291645129709892979656427836746495860871404439020034103195901095530842832170352328928473027815323753272117075429666806984275253494665802995259148981476722107687900368166170562321859786267990944915882518089450103493139721982037468440623603438512045119724893315517859288549485414172504322136185434660612739353238245498036244049709205394676905044630777236142258221177932518888438594854819245766152572742694839708086212529470324777399637718804895843814779883234301504671209992041204084669684664506400318392320137413304894572917615570719383850611619315722146961522506980174043809407212745649364951943277870329039308123377641592680349944067141321992156016891902501917357194590821743174659026992323495312145653507270691018666111197426283181085768069781662363367578916952106029817160340783669425113386391833074177260817721786318973559488973993041891264608045464495578561417599704602779399564372123911248347603860335935799804981252126141356271854474008822448805009820155133470349058892835602444611298068454762976346373523338919188873886413226937067083012536158837825252983898911324123611379694093071650481739535924310720215074490687821109801414293082029972706508541524549435109669761365830614090439064300797832915088168247822029530230775197699907302090451604341282081490902062396910904622459742465040416176678895567315706171330988115146971594030086431120275490909020383755843686442081889656797899608995840500517684629771806082350199959514247414448309373894116335706061411418718387178774962463041910781122818847991562474895388841721678620063950901244991221953003545854869744334863752683597914268823270811949573250022567939486055545167000651475440384535614872217429933530876854945128221825855175643542858273910172592251310004361567121150865903743560339346582579977473846098103075917444613001826768843434394883996768090101223613410403305543175246024207585553867918960912467071369783955579763544897563950903438786397281637603718812803288826848273499806282413237390334627008036605050164552198795311107681116046179366078508204366015807856951999080604740575666266712458782759739318925644806457159458696144475447495726589408120129098241961645178007555393254653823126475838892475448582734467859001819299506416943431829674834036696887324361151674164147872368284625203745752668118641875224614379890528364385327125328041977015544707258973357430740471488335599452343606297904291982357168536363962101686795255303183879368453190470542512749260013801891088614438013235391376430349916911737497279503287845608732116647458485173113686232520312306084818817410065776786992048272164238721885811453339939547445418390513852212547667729322012936880726749205820803857148475014725708810231336586130998949867774425663860121812069445429372011148663653112365212516675311822832684516336775371767769343815890728065969894750092962671610242246573243065087145751179216690895167905615587477358895817677635111165137728767874286937470518530030448977423004582981655568928109530327084352241647850149177147719827599278769888962653766088421756588480330335072230896938989185456772831149475881838681262653563205954129611084487121298809855479869164656856230556013404315104044262242030498911379745182492395186158517833595012552038534338043970527817918716749982160979358702745346331925752299086984643457712963310271634924612505161399106198529398955029773303110004697497784466608423382999812948880111667606137822210699847208843357142043892618259062799998176054255886123293342871366004715399363162521053018206691218065547535900709833758665872258080436985753047204957173421151714518083367346023103539868353792205354263029736312809046626327970073722254909516418145992739474694370614314715196407952125120492898954647510010308878932552348978654817477375178471691587708801067450105975846033055862308293544518608198456166631277169462641609437688829446809284744970503857175110060311459069388023901867056975502880699404878837334675408471369764112700263851384278798164860880125273556384320276068339907323529756825708032238857196256207042263515508517085539505471496351263269693463777314353115715307683159705481114202639959609441301884382110165927824719632202723808915469601734290636908535630329366086020884251039057626246467510580928367535354183297715292238952203736733893787213719367444507660816413643037841819826300796716442777895928622750979197670803104467696473757362586351742182875248949174764004759559080159065480528668148263849550611143280884555085767313800266678774975747089443703635503118080666380818100441779474410778289860773865468007327736241263133747486013430045125055381340037593623333569228903119480842004446816112777175550449184265491373792994510158445561670047972473969276144321863474652954967050123224433419584438955307083207753353283871923399415677881654450332569557521514522599661165026369701463839831947436860106621176002938907656754415910111494146605113011961019147625546210577181356515308240621980109998407594117303443070837019256100495862592905579503244545495867578342450926283832350396235976220974076018392809853456037534939667973997515346210541970954990792298866175479908023928943342662345619141388060653239875350878939610519866608099675408000009318810575284953022900486945431892144786142461834607854222886551807215227238428392263751148812892366079395683101252042701170480248324536204811457423368444570012541066771457692659474558037349411374851175778848143829110386377532774373425882276816870515782787089894099684275852219546576216184911065667315859067830530950676028405093058673622097164078008715207305349521566974510993393597901445164149572971892300846536910834191427176418519029014150409454397560769181365703874378746012966467887918564137414907114028318119645228700916541508489730502827177757333795287941895680519210781355490654723705630679770332413900127201878942323092668358501515874893822060918673765485120957533109454849193024765155969159206352928454938436091137417179457538293132520354339389951946394932246255942607316537289343521335520894669873432500493944502538294859152065367994314549776595166022824473333253914620489950188375040015443922040159893581745314748947083478498387076886107257323230952568549182812791435499153338583613323533593563827371433893893523172673159129917002192721469217025844049033384624259197676028889328570142629563739615749602059607027039773419975528450233006673498015777344489726607818156349051424050548029786919832106850567127445191481112717404050480524045187473398160479658210208744495886781955669539478656917138066430157625586786664172527498201865298445597796234544045263841765028349098228001032962059291650872472294310493849048885797143321353205631717525349278368473031750851422162593008811669776953886688191112059083336263681609752875641935803398713979220294637114003983486726350980080880483270472101219235145810876090223713988733360812958014485250982320828179714294463291557567231819792144139411715989450123901587212126591381557315574998387044098594107777797493316210090273008804533512943852098917472996510719768383273737983647616120879650990082059292416572006254830011184838924353991153620095945837586099336242879759617945901848354400183470169183737615456067770810103241257469172928120532841772260906238675803002733719063124505119889363153595240258452755988289929736842604556622273329419992234972836746462454367716904315476918987492731415659891197969734029347074407009559777862591975325786262070022286795632173669619403540512271072960129097206969792001558487069586898046667910578742543539892874316721830376776693576683385577665938965749294692173673770505357589698292501855944840619055744386685788775266305541977246507133121766916768325108997979005535613435354016169487203751523880062801041990633453178041726376986126574796830798247690910649075721285102342866076982848562045396655244081983446367649202998313618975813796990044906662625064934833522532809669026015007790681319867831315205620308604469000039645743593324098145827111548003995899079518199613897227887467292792427102025182982763621242026821649572465119112971911565837297128936766370667660283950769007182124668515181949258796678816807889965214832419069627828408508529775672526674579086633144266688362132834840131508857004949513372861972119781615633263902652262005556015605912987916604255458523530944417357693509400234599274607652897252462424395979347737752780779567687266142331593821216871067377255613696521667733133363176300905298319176589852501872661217359880995040187889680734271522772166517406758325596455839426901621227903553263637744140966692248654457809468961865708137858563199536670200262530086780259866195010667129167721059002833146084326258462591829888272584979091874753809783437746046864347745985673403658093944369472403036105371786195654449831753663622727184626144567716650824220764344602069796869578052364578176827894048383852992892378153586011110526523505098978103772000294410626474164915987474864751086743293810036296726118807798223791832688717105612602544624526737366324540930880738929921484559112689504579432685909987077693282089799187282739193505134769843650384348631018622464902177755857838990720866535606133760779991357990054924902982957551037061357535939483341149836488322555460285720877144237997835796153054599241196859039791122059806132152349545558760909697021596111339895671578337887281022776414963676944167869666867881027429206613719710930591934524758813043892430545413019990453759597520774131900001902285376769504425202567276398202784062512483438251075224660820212137789234753031354254044101023052153142756500419135755043072144881184725295400716163594869170316432670351917662615617360188713183475553530180880910934705864967399588596107988346821525816441273678779091158598215578287344013639105750191825545820576677907620357886192743954462893949420058765049985461670402403886312768660268645898480996332821090767023779077786126887772454868404331011147817650952376013542544632389069058416546149213602035209224542109916174746535564158843847143228673358593692330436483864672606252039633390498948883819821188135804769317432818857352287045914022879406923680227250268058097616390082699174428650104189189412692593905466421964905768983032864398596947406861305966584395060102161685160668953018606057648296916996420902390681750725266818278589331707201527713176078735174058170202025790859897731702143760472128349733914112064650614668945953320959374083138041292849606959935442979034996491908142567187400460401163355923341662716698268054470132372973614130203856694019639401091370095306855336587567365085035694203894708745000482479955289945559864141694254220171784469922907434546859266171687524355032190095640554307138496394044722813850370233848875032043439330600883778662932316962894587786832252046388555979454436839601777921515082168594036661467429671638909155503218990002813411834746306709008081357405190500771586924922342136538998796154179545997017270270748940545729612524576771343545358534196334684335731562742833674153419157123798517268151980014390221853932212848066752235932382501368019881851136543738485921314428010912838659849496855356725201569020254022263632157341879731365651501760775885553813748340262087510219950809536864560076507532024852582853223144075691833413396557802750383731266199474842951930855706080360359170927781378561306063244299625957079179829142051539354962350454854393672956116333058929065760687329673753715154004607153786718412346217053546433948590307229644381181120069596225769389427839488158470998821671222618618777070467956306027101841559290412913473051125400143982050863502521437674549126814597108157652412666476821807610203525897560745022181551497289818686709508141046738337551115156554137921439953514698650103076171016807903673129975109567624756894572038424778625242633659149573427109134512460140559971316684726941224426407116811966776684761575218371591051801117840769323661249099274488737194731437458880468840452257018735939625019242214419511499087831382066449580360613968817688640584694825551845079137632781312715171784305317026597606391183837303597578821666150375536935489173875174207458308902515117445184274955575924106170445283622546605218142456237171259127466529593522009437069732752872245093169743556215441304837797189658231488528701879762971292979144036462588621953371657684089293298454978952655148082427349662947812584626435891944323788585042606882341011288589741660371290160442732025551926321084540770446076173062056846003348211385752157491424373711882294258347469340587040619342877698625798957194300482425910988990878672871346517961155838303182240918197999765158630850880099809071873651111576576839852815135435358756632995797043386489660630106960507197336812535630472091776684177693447989751618894936190796557858665497181071276336276165916171710490713261660829951835993474414742278808439203563368200033683970862118527292540235881211968951801758312261234947388514863258963030117197174756753030042973903587333889810057163952895438026211399718582149205649583019183058779606989968103458815511261092488205114629811444737504969322949904337788481438359932561772844356688189222322897127063539316072863725657126836704012676000996659594773410720186746635577420502675685425129774280986597349744319769464707655911727815263953224469351714562505857769073064824676813937670784044317316646123652421748915797877344736871898681303703042937041009959536956858681313200028144291097943980833181024311426318181853353364671657848830709437093075807336222868165555496378612256338917523269915386618268095858915096793245169455043683528887953334950318409911850835209569972192715792889290489717974010511710588992946663423428470833402977404018471584865501304003160431989923424310101326238710911276666175227491859104839677714213538366477164598884309726130965498822157583262800626687626371925213396507155421224003924375949063619900677701933481322351693957845813635054278037669080497512666806366993646498064633669031525219907256870233593415512815950962283287376000254598171025541549322252303327031495433344132771028689524958353634960917035963333620405316116189661387017719805021132931922517819268443944679106787111166706341690665327164712292922246698001278638857622651739597617819379381820544553904397334808025999872470489925587526227961371964835420158324010050493914254705070084288965151627970804101108856521944964876480272255215342671492882868352327829513683929947715969824577388504838522518127882298758088517873416934107625578326699227003586144241953785041826606570083407691003063542844045664175878545177937903600400614098616068558444806831085358223458464626266522741655767351527397986161338546517797764588234483730827022989669712367484722825978675149535426890556792708183238179240057081474286145648714244378803715173978576227151512237422905456397831029662943403444410548880171230950129093234104549476847091299332966422889168842829935238311910574776999481795562690500027802366681865994660820604715174725314737201121477068716501343212741320607938518021297769450412455170348753880352634360584338543595105494510082747769018568295060752236850633031605469915280588613101444165398522462031464518119301241724921404185024731128667849645279814544363552570067295901821825266459695990992109955064536335917898632201775980365622474835688635687499511215598706492128832844685287076256260227713440192340574320000822794523962307292269918525939597282836853126539697448134503328413218961792496327961126712058277325667695147636214367061221250033379487846968956072607148195998079543052362170650317866491595942292045759576237104266687235764737278215591273954174327687574090921369902123311332154487834783407632738299377488171008722156551618151461932789994843952441060527418295596519816810138907016941587430399649676317093854899747882205146298693993214226286594616408373898953193619950724339496970519111006565504688698897338054946933418087025519110099892111644498926888545838872841327684766837218697003975197489366619378530874487209440680694940775028852565856281299511175401671279801697112408533109315680970963672738959652702164049638025934748508055460026392638507931313534205190545410183347602524133764160705182448977787519118017893023089761056452645323295064631553769984126413889018025992483669820582177234338800644354503846389809777533541678565395460630005595440519377788667454796657764549863326532683990300810111378796736915164703539307613914398003526849380075259311031141327226870133061251928569630209085045003190358094278398988459868012070839354717087189042070556115916637868548528470877478899793382058940211369033707606358649998181984012922884814536374699033151615638514860195048680099152646478359185715506643171921019469405565254043516632966481697488234641600407310757593804207673177924596120027620927496603973293490371069897444728548535282191248090773514657085265051841341902053196475524406567003095158081128076307936917381877062456788747792241546337382862478013139192611905463133995390807969488306046095146859018715936669270217546769692660352164029533076974596542628719003932560045320814767224265333180465022322685339225471951976400936571844532143545044571993348959434442169438739391537065477990865015717756871432396816450921257712499147292763979329143914330563688826606144618625834769195951230797693299069826849149582785593281912454367599174063195611097630694658830338073227044491517579905306590355223401447720997701891839836687448120489944175470683793068973311518066131445829080965377889189016414241512977377633487774650089511529090739992709997965177906557619504705056115453463481416453533099776239082921196087145434200718544541273236003954923806798155032453135782674618034433229823148167384272524215036456641331136223124932599181565336201931888478669823013898651595004457204044048702256369032823059841487950256602819116845303628311180800662773733921002178867003651145832642693064619798823744783318180446941498685929175355778890364788429461975720736388971787187774471686011669095356752322576224576194040274900736623700648922033907828600420678847186237690692537978104844583955029363927948174766634090397798972012289090081345470901115748626170375585795182179243337005904425215565305108018385647739229593438305459707963591828077410614592311738029523534941606486628341022644953506639635612576119359903431726984770080389138806873495235930661008609781360061546552841619426831959157807099372412985391361724762108384924091521609068515484296982985067294167092869316033327785997031241353026744286117571010148332532182274114921809303576050621217393871661919922851799250512516152278530607208082077257987834616414812883576267665598215961015235873462855251995197542038668230366428442631627937839743645222663571521914576195815675991330068101297383597187884839126928345110159461313765861779940730185388582365746909038144179284730164012640996327998906319557494525846608212962464113484952809593471481602735449855534741084990606429132517421723305575460927573275892868323057452714647007070852978653381119810509302840982810297295515844679288548141463078834871291573630290675199193581874069858706974503163093782425614560728982655752395247728667530148988051547676033775660408068789491418189793089412239352010099897931506325810659745743746568850910090814090712579004498136218314973140634850810165056106186358702624608821119355134626550522636274951062356463676735258330156533671782898544745350278517399215632333980010533132124488247106510698868223154801011305739495277255504535943295576766812824527604779045837133190790959863791955708187385145626555987093548811828599507718101729290112592089768372447832061996903449643974091405442804269877871671188424250877046752468467097703444452043468750319495592906070843631156744117993067897749612312052480849380954115574363971772717108488877902819222149727431482212437140062733363662222234410895729498130660261055139798907493361762869508175531535464124066723046645104674962871053417224533471245706098428392728127960233491313738415581896054687505547275673835623485944361298591245888682250288548605392423116043619578227947961609401652472241573187251993932130014856313081206970339540547473915672306985829671483823292992675170773848697606615815986026462075066511992614798242603733579310190639255536487965682723055073753110322085739765099528678651041676299741655498342172329277393001938050959704240445279662709102549334445533466420432050791203410608335030974738756460804178281922126210336748022278242479065918466581791549033061688776426437804106222772576172672579803259335296346965867955241278746210601635995352928448353131374496356687804520615088516901289008941799247198291408988059001580094554613457448180460174309545016319950498318612185653545088926701286860409675607603380824813833038755767893081207010588814885369986455230508226947341890968802592105328968049462204742061759896639379570967891711080947179042104097821708925386882131112305466169470741813144390090344126418020780550437212256306062590075990902758360836933972066158094000292605856025824620842286032343999412552285155548484145897031500026756102296362474150156794349551093774704726664099512679337204580928784248685578240918640072731037688060431944883485663172749602713127124135245844031604357614885224132283677114045898780716775626757469417344428331604511757815116333588425823035468733438065758039600396487929623072473461402128744975375899879064119324131365042158364397244879511254596998231063685475581440696245886936169233951878416991200329133451311881776913875158447834175165971154252165605753305665490833589101392710475253040740557477999334074274133995860936714815319341757950462737668528706024886608257535684014060646733687365464330802474619131562042281297344405601430661273854083474920999621917425214733419058749362611412183986242670499043822853483168158591071495018044234017702639887184683369242365639669326764850564709756566610428839192857560274615188923158865457484875566029801194372939139594547281914853009523986834590941261199048031154727416851312720897422178964799004626373863713543660903993041744511363541502825551361469238943772863775504789122961997503809345650154590052649033357453153024613783699893501754668030361035974728526057479198266089413013525996364481758670434900103026801258183183492340873609680209025550283546202110636823039268465231795128387348790142908408849263731201758301430868642817505079551402234461671570694780982817448519183923954973072548749610044879733857770449421491898141505401071461126574599593044026762312162608020661934138066874431153904583651459914008419864618025403344496367983677316642124273163184938939026779440879792921923378079275199058967361480739789332528415711449870093819998953194176126603538872015495072881382519893324528905228687781002657299987098682231290895131495052272776683654335594196537109746157802260258146751420198524252034301820786863808430323146499797192442391680648314975768441449535284427235793274580620742298617698180911045630665857620884106758313828503103305271374335733625872175463086384383825865443841841099650069330039402504252741566066026636779469343103153557423793336269455143151031346041817116756537590353485901077783333098425598502628077925231214715099348877573488091632603672176422954343393595520289243781316110060965737880687083956413780675586228811394662075480219532478387088403102612387581519009897520919654850540177591042373904465298862359266242784518236242752995807772228112923583280558767578136163844634808203959792185965859187721042809594092603620303828353992512875150810146503591838762875868352061559347327027473414680095933414161226737402463481060352535759303088918269016231699914934787047306890900258760111931980788979562055689465333348414962182356780056261410828400398299826539645600289661273520680474040245408478443241451756473158457388295586989084522863521289668342243405088097541829833736356236396907737951305367223284791911648593654378941444957778037367997145749677158371217668005444055377004709731651621543905032962955563577410901977492828469007299678329633378297135459641000222647248920486227421759777043453187734544069659954029992389778470143617908055655272816001116689524299259559214509543833353792890992615180484262205540667372743481691663480804664158747377268562572084876661218116264887075045934835895753928520484910893480219435564711171945032265483329443019974093954412688355524851825507972275732018241148455473398000241292989201955687160996258059560792419912542658094775506823295794118169887992362933479298234963440910350535776031163297368328196174353649870455786451838240459803321763825425496209263306952697865723717613144385295800208896077709148239937114318630356699315081587025644542885638350001398729842657188869538751177971293390625777447119329283167013436497566865299967897547850701254549593387611994659440658490090429922827430703972564788278786374624280371420255980839182804481119107018143510337040717505938073081192628297968196888286153628935314783076739385494864078822003925180616440208228451482415511356456604619400366316771859477933997434867243586124494227049343610091029129890927865442192793325631995201048516197679241169489576790686619832334853828745085994364882162474093292086390721764544036820079528157179546085554108817337339455251718717048688485915878158730438162038233931516861177810341021855248129135032395984237147733632979011556901526900360667456557573783922765680419550690489289854394115181771576632571853018165740681681444468174283473934771487869585927033529074060840353894050120045590204656321648864750188923757032655391515021371673347153103248048253371178272343042153964458690599626690365794904647345373789067708185372201499113553863727163231756317262446557396458803964895255751864031716632617720378436085234410419450821125992863835340144838226037095547343172760892948942044666480688388540463084504295198205811220035998687189699119525494070307832962283638388028221103164155501670389820566026424760115545926877689242370099725625262302341281283654032187150956000300721459236395284302005361520173147263108305940698914438573396663061738266906771196458540972687975071007179511703893366610126917655265864562391473336065318628022497405914510979358352271319186966387296601347270063475578151036454983791963865117380782248745071621912460252010667355734190295741056908828348359156376086733976459542150654998068930194272107090969302918195534814729339599611156723028854942956912863012859333373760068737044189490547627889917316040484454860844983894249624122255729521413026196267642220896723733941701793587893292487573230902653034705181239132697384309427352523967955006585455715625201543841918388200256220541896041314330918587195648367524279342982017839789468801081279181773160224298633747550630195007531041616945346285372991260523805690010734369964012830829054710555611931706968598099726676052673200612201598689136901276752923730483299341220601979257365529282277248029906413984818836421003095745850920554084257287908357745200189818668178893383273148393756567602885183509701179065919995106717358624687751864007796933654374204204903733809420767159583847947836252606827052678039565891126636511454831310047085091621345176866707238567549676563984975233789275454850169795116594442644918667727984344464417426599356453401680012912385838966223414363625754460855604926524714440041305805498107539319172448824062808883978024051482155029388081724244099993385000647760038618340378523540651921097131336462295935703770507456840644189263418938829305781284143540389536462884910958360190111602538317757383437841587376723967251197706208963871437288325383383480499413822463516573121572231860615171298985652847646587042538261776467203968384328040806397260879732972228152068047575189775653878481984135512085193519810018896148318099385878286235891829874294476996690799087811133928929592720994354941751591720240011130651200487706421870879572183482016814341355443566626122550516900055526784555856841913125012488528395165918249385071792113969735883390229208471878713140433471660040586578085337728657455823795072509593130223658564252266482832164237072520857474063203024229178030562822005745162630393038669048373850663360565984471832832190554203196626849417737151788271294831477066429168302413392416480465256508462832649985777228582521535091776377883647363850288135087310597050140834379671478888506394675438331484842460605268464579045577430533574646749086738889014417635097280047280862352057953279410491369781379264156600790281972536746301088697359659454137919750236892015177876954344569966402347671881777049225633236836273434054418525704214993586046841228210571231883856541688525273395726210919615533096245138488650406248051540632370280326363393927198811261733746696152680766885406079869486828711309365929295056366654644199326904158540344791080162714827382460432226604727098118850928313211094959613049851051997158670207902079588338617674952970531831245407874833639799128863667651071428707883032218934864872173798443021221612162727336632815684921722994141386146469393062644203425504164276382485641813616977962280783406933123127351321320036216230293346258597059103346929000872511018933321922805432391713054886030519068914319538219752277653909691990672798913471611694311357879463824712835815956498595416689787049096798943453772759291015588045060609331103268514800142014714272471974538033910234275363834570233817194027092786763779252424925793975541875362324029465780155175403753429708802932285494759960126836677336426013824394167351299686107962231956659329278549130180810592743460996147138339516973381905757915721144320227487240646777546911617258717100284116939021370083866013518709117225529078278222171136576939501825471909142056110202039110142514950161689059991071442509447474490471039605621428123198538799618668071020021262877371869181019549472715289015450003203258988975972464405025697106795717659906622781875585783462219961771051185326956348791300784025086454814969347276114391776365186652205991735245500467891708228701253351844869522758651812560549192760061570694471116013053069624774590089401683723699341238120487861016117987092903622056041010134303104690314287897075720814825911506047888700532815550792061727073998739752140208962969226373331493117746751977647312931960837445790668474477295889215169338175697871679834660266696253440529113231485853410679303525428613957005033279387629728397689468525518301606173313339268476600756948114146686461010316246570348004874801374062007208305227246596074066533572849526862606853405791912809730933692549320664447132579315328477617433417357097585850008050536495970677470414519606989884039702718226517755119504643879308003192123007113655843659086849273760040031055535559141965078722057776807868895472424370019596580788747549035989801891548465718783213497376114710175723069224617033963990021125631291271004325059098754126474326095777155738574894720739816242682653163252487060550538224830602939760976714087662582514492771637849324784357663535427256655692698615479856030801855993861346209302935391927072376923965359367010985639779135357212318867178830780834748527754269056794718582697270574698733421779195638092875785021535779661201517822775435740090702729893394588169027515373123460213154692199455365136336928249450671358499173203539348621515500195723062667408219131652737137072226940413698010290924086595260325600393781526713744962773959815033786575778215600129927844071387728378647591019180044158424658057132941485522512305091732642800339019641624012563930526384618179173508328294529997331391187881688071870712120182492652679363402259147228130178257419455343456078278166022556556690736923218054571478737997889937002146773708647164153202779809847616798082694166194094913951795977003667505991384839034452477335035162655738757926985786389057702943244153608951098417679014396087456083177028099376079225383208062638897109040811968491431686461026685633032319428151111466851068048711638279494271030920643493017798759296060694406045133226960967060293503107613081416621618052870120180247824623292362584043492029306442875734411856617342326351502721167080006248756283241694367140089931850588619144681591766697339371230239127718766000558692112199476798175368422028683905309194913919304688365326281784213844480801744129523467675969806487546674429376580148039483968683499144401023356073994491989716965419074830826636910953489749603666424518031959864960851131017496613130121933734361065220357573678151119291248241175175101172466090079651017126626150862222171980070458317309202457860086768522760009152242703632662554023945141180947619391452540729271684335432194394215537092409989572701789995820004731927818802267549805857823845203918307477251235286883997905831309078150351216589031965474273205485546435247325221965315745529038191002159445870979808432624010780343236856318906010231816425250077227932056771776062923899901376276029513260244339916102659241054037531578282328726421953759114481352563430387268743636320852031780084860676152496043836999441449901818723227149090857392534700627569390041799584468509112830664682877215000243898334965136282533095465244277881559163661497962600194127406566891072331940482489026133005864024836160587033004634112340251963289256184579671851044896851325101821592132668400038671265616263548633307676830700244767936109943221254612117291002717130622394221147057366184814373549815542843633888392039417646474590058525326473327007206971457817265710850590615881476915994788481346050749739954423767431759180096910286324669506156221225043573924609582530708397882065332097526389097255893137944527773906710454655170357001413991051694996435181336240632176056332062875532690037469562510158637718755200295499341021806722445049984679021624968625369684259329151218087390389641609750221778700114363938777047903659632401332245883008049995546046844050741159651832818033896690435057712276299897302183233279462110213986083253746232656340338156998141740174247316050224676835717555832898658126837589551311050803037215167809046985793855652793133576697210522558032112932420168405035398192805135182431177788877257253469028968926623077602980512506367213204782737688926871470943717642694112546668703313988948149235994193163524410409643937341956377345428270956508478114384397388233084551047972007147417588038068548143542895348991166954245997788434612281928779432393430921261190790396924457727029496282760901986827552522163919572582217447558891255025705079530756634841494456310629013100219767255920262204719967068151678926549105971994551842859166106177713615850555832742979292704917170833998375140623385146834301260459801204638436214451505336866357268977379481900440497257167233339901431597916941885456351630702370738967234850138542455675771336803202584553991460432024595057851781753753709965823968847120532181486549794926879654163616246428555328646464742595428327996578879304624923544287737044673752149356403967612398047349483564985234029530765672720752467184856358393542967990819322033254755431185673453014117755952314748885870810050955500584498767294384926112221705743280757481489341168345422364079604657227873860571933531299809443669116254731064507963533842519896746878724637597771475757008445709082151137439524985276905201434999739721520153704274141129978855784634164120697992232006568276725380248062368668925653734265106486066419007558861106061547472369596269727180941774726749765325389809184687459909876977198420820835824815326797156519235923530667256275119644183260226404836329742511620138236075175392193496178306900277830230965922488557728874905582461224222834899679925729810332944519413822531726867786233979160204664610062496521539403548346017194093945947170440768480344556025535605447639458068358487321258558577378557798068943874188528859971755717329177851101822613311433442368027122998895505858076863002524665032320735567805137167916721774743833231221560514010926412703800376585142200899415864164719112848437036667737668455016814145966853049914942476807323720899462585423522515577839943097936015363661811299815259212823760697428513582460692090876466897662148270954749310071222454412974706374819976868900963930349443354341281648393345254279573224482087494492898260376115083054781787924557490248536387521056801616921588254944016423511232390675081540337659623868046387133005764578707908064304375905180393144575236614906593412892834075549194330679641680661395700811613828416316047421294229193695288962133869043807097918926852481875187548509275595877595941763586685031865505514952389045446169903939891444380998434329643017076079767807240442948052746811113627995856664491251635764025617044774251436659817181588212311893376140758122984894325408656388718089592141680674028534753050813921638246387180857473909087882973861216191234334414854687319159397730721724632684317551013386517161907306387221132797804747507048116196664654313488078097271342660760325714695854075370110006771913811660447324604224869237127569301249126334546222985391572058203169039358316140587529210224000709786551641967648866984200465628499284906469221696515914467342156400930806466248870182670994711925460708585380312103960159804688681898042509067436304198423928784121383747925607726074627028764251914035557841261239110818617728929168604329322680492555086219751801223537152399324538649866109633552912196418996508634442208428080836864008082530982154969170323177911582292513299020527177507690151968106706627877932843845300338958935963461056779825084825012130420158908274077223924004098747104855105129408355820219527657883750046357486853808402226596020411776326375058872030664836009168068043716546840914509318530384373485624050092187214040789854632795859020321441288137604073685146145912950578887283955393849003557706927986469713839082679837010990788752047266174564310388576931427464702818721876310586582487946525284952469674268487358817681136982453660558806893883409387171986713543989387551141959839715472275308838209132412638716206841972977421861198254035061866658592016016384534004126132360552712741308826297701762911527664737502306693064890987332817463686701178566763860018920009305077003013050358826973865194118712672525620177549743376176857871557208061550284845136768284930307523136472921210247657801020974043373437499203696923290280543351889161377202702762543166203169847224010451999088374483549829168594671726594426088112960688180105392501761878936331906396424721394337348682732513670704556340350826277060510013399213959159993545895056919826237932623727166738954100499160461190826209501817780034397076786071385631387074839054523388553845610473901200645588299707790086399066408275302328596911611550195378893427464589550915532531227866739681543890140761417339457676401680410982492753854407073081797605223096371612995972827986651807614483213670961638705836535757687169568107811193377073233337025059231253838896844757362180626335043147589012405631872647844102319557108984380119553310117572466767406042642758624940218677374073041899120733634440504463416340631577071306430887315790227823531440541001805663971328441197405379728751755378669259404934399514218995335490103855767486310414868363587833417824681618018509033305787632118021363440530692901960675888651656127224385674994427489942831693062243332369706860873343018298655335670546655298099826713657749081279174202321826077074100770729251650289177674346599143085199812749176593846309700642806549290797216534598737282903297850851125905144662224967549968339925489294037213739416418156185334078286498483407058628076119524350436620113691630950987551204355227447907300521972347482698913911289218094468702126837400158659541937722622723530352978050896170908279184677757607277951574923507503018649630937554477567843875544082900216777158230263231776377258648905450477707669134905079694801859039932170400209296569744284844157448135068671037594128144818684154658451157320794937919624923590191516919397173689351674036528467696674426066339632464949149939121442260137185736830435868903967724663930250595624234103799543227762319856018977065339842406440227397562156845030966768994724254470286049040959521827943027167770960817333653858895880345336460700729904590926074367033129880517625734644164859508274809556296754134353869859130792928914193175788262522078280186736622743625533824810623739551870823848793355551064971593991449135891513026577478447738205724284242039786671544828455478040956708771047908167617329702494821138650480471221470709573837593962225050178670286774452211624492295374201299273878300906474108764282327103200476832529950618295181279465909663242606698348402221379727415537161147987516189791175393057040220677103422003992818450802239891844868550933116629396597325329052517485933432511724630681487817896758102870092541452313252964788448357729101646913831819165568779342648473607978108526082289070508058262955181940149440063853522141269486339716342411786269013356607485639252936273567219495922321308959842598187936491476652176514022366659335733373783621244394941791743686962201892879301008490369136707117318059152897986228547985846903763795254531520543582986132623168959948869533574078214752820823305141165581509062594810747570182844772921464472445062122531831205235936606948128724454849837302112000538380285236371927098579332967165608025386554502719875045917866164644471347604648420980026463666534928832915563109170382901234118554334924844540200887727096088693832711447714388253570433368749212381001962727513247148795198658020476517718592797669990473984743433319052915060381989685598913646888175414130148598738122658297414066818601560409606962748514083902489808161833053572111321575617747943777915302384879735626205481617854732868075027413718227425439460312526276821753140273317259676761806878720993206336857208948452049592352878937801239348326159933474271803906667712613986135976563017198206123099457111557234722051813376876347433318711187407596773114830243398828650686450159222961720237076685222957219480343707320695300294123189713604985092157752548531195406687161386917248342583843938301115635823132696509556220530636847861426258950121584037564523067785168535280745892330903876914056997839237168293792303337722778695168465784613771540740128739615130674919078553759198470791705879314770771236954610771194685282737041656301826421796734131930831284502066922531956754947690299174143673058960614610698804540772840716819215372064074212194227523957858315184403221316394386525367841613911614143262022992852149087146359527331117571100410430438637813585908082140216216043616578606318812476462508256314962312922685039205404052146983578907962061373884262505696028309734648591694937272963165454956084152433565620472646574906672402357005062487371282287353976927459207412334969328675563395845961807549350643164252743840789043001996276808075374432885521425385837745212932466203743812456607633554472051640660979996497442477178952721744008872195987208994238342393474856393143389801555091725537708742359459886049831936496636121894671332366862614234123263895028746130870465490425598525022649915318189104111595145430889127747337347961090589807553259523964238655268471072518021834872452727313837211129162485386766918108410281615309949120664558879879401125882668927890609082340147754407260453655931668625748230600555439610917481475303422703434348598463197580585309933873453990563457897470476885912373044812934697630337093763578923846605633747127128562442592744592577592146510463366715942596239667111976732609729716064037237567905428926143385315161194093281607736373448335532519134725710009055244657116256587197644026326676530981223631862652875658232954325889335820963675549643054983012248321202255135361346832297550413628458213795132191238350379543900411880193417059260364551209568720404261409885899977880417470859378404088509683290778823022461145604247778893883880044207366583974700281344245024337453348588796089024714397583388164724634402849619906518452980307246452221517385791207460752529690183806080774821271612742497602511112899073501851107750351856684623939231024467992539195376731617413652179225662939327624110399037073523432515167595024475793019640964962041191555845311781550703362183626815626605244925220276176934086254962864839413237106685658777385398743961854079271201795946404715658160531905144401171693466988782818890234767763794423763454002817591690801084798184533925039106461482356804909022143199161830763348635558435509717632836405582416625097802578799836480164502185000403487915682101656422490707525180904140109907484706575418699982161826636823281418594051481435470848671024923797139210423981120053095612669980723110429299242371179861684131572578091595056574046831569261156849820731561065645112385696480800848615254541220917908553463335500489611608852344352208634659281230994863817879313728545895968443256203354626387167996339541070385108967783455202581930282615699617374537787116247680998992055075282637937766691297749883224072311948062788268579107795331347579545810113271663460337996076849081591061140572713921184645489614960099910702320349347274466759136053106245076496901749212018389528588642448562984307052020444539462880318574130323410778800537526959812503160428075850696787165447574216058027124570161610842066235432491069775897418731901732879594792839219506381530198369873856101483062916847508027616149530463333272695205439158865592729004154104226787006429737407733247546548443148433989994017412820451874893379691058489059977920095936024011892754534556633074806923026451227246392950933248715124068674584225492401916473134118908806603596577998145869312471064845699763132247252835051046978378722895191555877938642314611242220109561292447540216390468267981366406046092995092342027481338543455422216719519247269885741115562962120315583964798881238146034860438174360197253951879139942953118673292783260902007646785097062884768580753366354747356371077134159122600382621792777545113092177843317362449830416209178967339000704146026372925875179803935398701252579683800358951215451539452907000040154129760080086316491054749138535247914753944408780211063542046419760601005911508845314078394024116141606318197678976012303837985103693687617957601234096240865868158247821772114584588262849455585425379096143887796169935943472335352778504836722767549988459457845043472291755623393499132900906338998865762234940314406124845815128221294070425441120202437341453427415053062917648545549080034268124394196807424836642712348011104027225426822343914290030333415739159681502273498883229081983381363262566584512455512867534268072889111583532328917112037066433380470733280714465538277087942279930701426344099025960740283861217393547090266966108429722707067888296065860794936473073175780123999122725721994425885983049942985077009425102385098755165036971694647788685467043515338694619917833062439715615183195365421898300947121933831019672896868409429878422607581875376369249688809108873559713962705573281605130325538980149958091432183661696577721870975983878229344911108727468588818247777059145775893410786292322209887839100239818121144957280372151167480349372697322316254877098791594456947563358090322429865005522889130466140563200573181730084373454408906033498911172441205612363600199026837851151408576484043407014504025296604431572389562160729795004261955449830835225388996324495982555053922608884590470391865561725802484341828611407700290749822978834746083037964168675419604620408335274135689526449164184029419268064674703608148505062563777473430047630942848220703293171449923140668751603388651733359598309267772950166387637816897991284460845892280923004629062555478997498564672165972959369435973918363207289867946044146721163610328846557055723399689481346907673648624260280289574477656853004081124707191832362210253538487314030083644084904910772063518748449843867581061809828643319929900596832489265217585119899563530205289881594697199943791655776396382140954288006514576458367810990057053359508405738677990475224382858769517464387160582015207700987384935318932903778246744407263970762138294197310814117357227307035377078735544610733415840633394317749726387265353504153063772582615990526111181052826124722802065531913465865526515051179143746702531015095229387271771106341883820648188722688815838044421917140038059833158790039352612024596132409622353248597717521371159189725604884004064807940287888236912089172840417708903907994309349375033800736508248875932387329281111893681932129976264429633586748103480597252204086974552510916295196028799784805246552513981496326872086034817899029863409042188550610875931674593017439489730105860925350810364983727858723316295249038434636354845137930006241544289439187215464877282603163901010570869918395567178558813862198821113627179322534693825423370903213488071498905955028682321009294167020884005870899365895425051115250259436704411532639266191933939912784941054392583666805213263782171653748964391112155274089033718420199849922296662227068686590311557027762975167678140771927025705275986393401645738233010989611267823185539998291913424773815048079313593943132477333210598238255732830629094073664504946559197059744650808572349530032081206466147392973218051065643922228125550093915225715556760408347421596521930257359333639216442910056027380197335704025513469264418058020966126839285537105596428812123722051055852622045247203961879852876430579270254674794996534811691161005309109315346548120884260239190976195968232340970585120290704849482998124759063984154154230555932989252956994399412936650334205075291191193913851034068921444494251964709190606292166301339480346368064251324891016110175558251428470577247194012200046534253746438791846572203196463836021659638927001162786733460537080856503009149846726373115049898533625533780210368433827534695319176506505247189644034917008788361874358316853241667440198739688317120589815151543587940620844959692487162622276340796131563423508741608513381029854967776837021440335926536534887364875579738825247530464246463043570539596728402043192181142878761352364027117744879656809832595076622344299829851280462257483319322255648502977002916403800082681019414695339243965520183647580436411443513473165150484977044749996430304094112192820898465321808011340664615277671130061315429494642365409512399900260256103043383030064150169094775203627018408783473061237834343370212590284292948487298053489018644707426469337596387134684001550670567108367835289117550775595378395898286061796789158779989312116870674807953002247071914507489681884116613257542654262770494932491566905586278834287731389501123433673207806277478854634170006805067407789552747044054392721407533558416704695629603808178460620813673913564303609534665220046317864924991641909635255730059987967993921321224828421418418464098879557816670702964100902737484929558295792338721671129566424685079634370770113270803694697065919429531693369647444127237989724307443286468204103546167339596923904268246569574392958011570203870340988471677416256912085404787249987698543530976954922179348283407928089288197036238280587213058591081584407321376540618473028527538916483699768578174011795626739462827695473726634518767427205341517473210262496369766665964158813146388685696815658267734869296704153042623301512266347902690794564302386268825412524063022702069760336252088390624345797836173033032564674983337549559689114846631154120750556582312068804910542233305432886961178445834808481829776766981909868400973906999324229414742136534528527491965522539527454588985428406138737058905413727290894628306888192664929077816346400204188796364589588507574997998869565262966611367931984165496303900161332165904461828961360773016040442475666220488694950009415317758689286482763152179374919259966691580997794408696708888940415093263203779017111524906452928393498826422873916177180429722958950850736383107469071215813870673419091538387960433894760377691732595373758131593890073625466860129432333137105451441251246385967376587966380348690097335189051304174294142882609629222276101780110450553533330659203996902914239012141634344433265588819728445968174485658580267058166655897763144399967872295686309606519398512609075569725528302025875873440705274263614826676895544945548532359489964486607837313796563541300300867351631759886229777779116978562208417429288225757977814832767972890496742612838337688510035363216317797211146406071732960486692397063552741323202390675396870215429180724481807847554777293390565074558450367755208267885644932850054805155314127951852830247932777528026231801085250357985566820664350545218764719818274574613073436113823655633101846132605980175621621143350706315291858534190238777517429705944109708035942205287018682557189165360398206565788867495243649076280964753513997483057008269197559455753176038582974727560969390196427450830827020968315985640587108698760124041617088756415569356402284206052222253421373708964661755321352439442396690734608964545263704247969302273050486475898257770090257739149918382999644525584711575239759077859203104384559395042358252998738593312741145817632383760162343879078534981669650537718173085436657656919148142315111877003694964810592230168054414449762520791747276281478524424338366215483645529601277485993641829220875838009021347985143360962747752067869699860236040719390391574944157390135815485936977162265658242536457679651354322950010894914285273163848777630178217195523190292120439073185459062748403093223581288024352825831329528146966131261415639472114744110246347879705859804625449170561655667873231767414410038696248625663096721435470637427595595692876578153554990615460952879147786808087464138913939614792239131405883147852468237553134433992577576222275750467339615039257266905552287936309868197594104451040926158187745647739132641174304190262420143959065799924829273596692150731701556054843878892008442872264334261508093860834014467076580996855173223410104741636930475050649405361829260850672950057610818340307594383609697626414201491766725377858260673765102386245410414285680255285979242262404743432838387674226497493495072511304420539980644304855481431122024928412277947590402861031215905394114418744406006068656027196934702017719637750872059548351996352203037043224185883701214744774671699467977190112448019528287996147487082614025683081353549618952115607438960282162567756352951494076661672037012335661989519862065109744824538496882223391142985948126230462781233639149163795237718829345729130479399707772808940919148548523026099532053193421331735045842617569468852571355312649630872423159845570210780218964647018527637219837824349039863664444207874409991656148760558295946034206725478532135554356531412223641597485413112714958910531071297595823206528931104756053944790789248581972166453804340497683943586496856253739565060526620452932576609775174429156042007652965007385126279510997587927663568722596064890077363084874774339484715870347568650541195692501590091105937972926911608257579671169082387620266779890135803224134687210986448383569272111656981151977140819547054866568136025711903707055648016730730828898803161796548051936841297736186943720819563322998783163850820877381406047818577445955501283942948107128241231521516573283513455744226022480994614847220232300581414309417822442509080270531673810498563916047925596501015247152529278078866195110869191506965351238068859293678436352632530488167033162593567218404883157370265126379265352097222222576522712178005580114249476567129913750580817977283374005718940786965120254940923044039206838979497822654614950892048015523987841956608075338356930564330119952752925947916651085895439343820905187825646605883914397609113795846298382231770788121582248083513631038493418748943979249159317612078787463069537828247572991655979913554837682771721028365202392166447978132281077062084743594832657993177354483997181756400873256559224342242330721686732569922589633394430727948002561038024938783753852735400510943074568669428167604314804952041518206433253214795222924446429231526886362217038563067858136719110827808489970986040776314633971848540579937243501296591580206772147678475230990090559858285346554167291218490976100867656693467501657765029140364059973558355522245860300700097929731563724463957648977986526927529785746057614333773519664221778118290139877243765826147482377249658043353798303783044721297835940476317489816002327246145350308539714306786235786476454390192132120195878071941609893656411992162945465465324318272532089272381388665213457178512271806545232194492143551642485635170786868603324967012275419376259179469887709621262679219740736568673654478354137463224300803257455193108031738006670329859331948239320102006207270502080859141482605800162865469401009093376244763753264856699071472509680259241198379805924244577713314470955090718254140572035503035636671315653153968717841550730271454116582102485509621345195801577126353825975712895720079954639414399681285715214166422164128141358592654440094987338782277439232013402768795055367613571050212940584246461127632607542742626859772549936166225907097546439774756829812993999054105108608022905515385150954636200426486287167095186772037901013659759797810799541826307806596556924766155485567000663862477644190965931759296893574827883495647503011163542322892024813507243563794905046582490654715629901719968951040675622025029198324525275120280363221875960495504622268388227265996192285666746737852301125073247421202670870624145355203019741140615328247791376921038247241520820326112325590793130346255403238981627790997168779054565997384519853655522796612854767438542032045229536047832320859002569831303268975093895608623317603391082065438462891244245124169105565740671650879757768241067204095042001921906046822659620431979786879222495920652236656618686434285313006936091385975786051267310306327642085746394888255745229093093802487223731072842437331837964682203047093241282825236997247813076399808652317633457967927572140312848100848589314510870294777347989821150610187431908419985226152288075828861480253983221284686837638066183296639237874103833055978751998709929316626054959210120661839615302989506674629170384487859034875945174781084563201752638532200926281752950954065427079547422609389448395400597963403976230879655133324678834262445889117184751611855919391641004256794497769607398639723823668077195239884656376302407096782267673056206458217642359880729610197650200140306140017981603819837575182044786786095298664577851676235141555822339183091956806042810783748005343705603807343694933032234933255821651447940504115763804364428556812472258392739830235379429194368099175039786013731061098424648477111534262258839976819114259256216440686507697415088573488774485275369662616623390106242639998912961256408999961596578361988038521445440257438153357757012744501132085967677425305900827423367483980653432150809586638861562595039670615713162177483706499809308230610973132877300237800115862933009833395308454671078634013224753435941622458436084047475518197201529046632945893902961902171916800414057680428702035047471959337434630715440606300419417809826938055547696068774469619240221772859842279276040797983626757992324661161164605853724969831312365777569534388555571021086309292656075374346534582029303610872714317347582181575335648345603147273676254741424812388568913962188944259719285529988066343674894156391982022767232296521572944630585800590888078949085806539810525041832752274414614494058536937323852319917242751262917281411665250725626504145544959330711424669558743808393651593755260185129261508399637157976228894770714049821438213972676641862358644029467409335656758672245382093442349884594231656042885936340748244523150028948739753834856586060931145733937485614287405069076565910556757491438177031995407376294306672335836736540338642394151940611322378015724808369231916615344917007343540712030087737348361753228038211547475528361038250677481118855405140175661463890659114374934857594906562244236936561744643872562957707593547160093104625826375670763215301553079435079821012652915601304835009889345948684226319087067343910928996055979435901921060969736371650417200765425154702856449584340100370168299572983867676905723109725175885427603177763961759252369771099412286341677144457224839384615816474129532617594346063506648947279446192444882933589924838711978383888005363191986861425031288854969025574478826150492861171211261754407811180588340871722377007278243933838239785437788915812150241743284773645855657164460201704320121962504708780303980942385662660568115407148558123818591733305847576529237523895057773114716145835129934137273831624683888630682334492851628755713193972030636542708111221000398285653006617640694757468106298005354384114028801136459387300990714720896708466027354041966228284316636024683566214521450870079159170904195258818122658251662968274325240702131970351339311154049832142385055158065945142309837235193783014775176430211121558700266586606375039429165687428061864164233255456789217247149426577320098829466785093426991349147391273543669627876863185777351223919217172612562345371512701888061983745146623163105995792367750856283686857388657710417340791686214057153755293678536095350444946719401580696606991973569390663249474806574479998844504816031988458121896329821612907320924305241853257350076237923862316484251439359332517227479712685812883240715798565374454839656807316588067078951828592487665251596754324687099877249023516023284918514463491302816713250006582082575912591044847539814669422097055936711483958286826651911319127130274726879506974671124090177850962017100984245165110411456919718702272796659507898912186149166877181448502565092815079148081125688392336039645924152568927965806214177925483583582385185386163477432516334220524681339231049617814535074353368814623206260132931243793678053039700465189832397544250568524683749063801184696014495807173564784395637270405962751575184880867003655382359550616965980570247969122711248453347311724799007858973068445548807172026446943763888327349058495722641175232616520423360625028326872353813566577515021020769565484358351492650633624407787668772529921013938769351925249762536874305521375790668604634870817056773693234685846274925284754613042806230111619893917940307576846243478159514007801258383403523689091920734470359037198058928757203112340296860516705587089626201663916252047500306679706635052927605817896690982070398266540101190573406714854845065875880703159081367596651808069515208556086989216387819845692975842679438072656682845792852643079699011889044016314445422237513341287356004920408489241950818880219164621023072622660927322455623514438866430270510773660100246055524142606598018977778649648326705465835552388810458947534691332332392133355997834977008279329630272863947908691060205624642631611800090852851224743810216012448015060774993830970829339874087420650975262850065482895858070850852871716153109266180083541198188682938170742674700403351286258385178756813578327087307437065111345613173478625929817444917229679438586285309698381151565334927901142569806133333884396739142008653662406617125429882009833512310752214304082666551527888967038365430072909058166657398331646836005835576592948219996391292139900496265805605642806477748364552312275234060263228175425583133650459167545229362306863880474859036510560157677501737950840882945168882429851384890926280350020944638407110663100287687628525014329590391900749885484566499806643227256420168900394203216964834171279514476945157438887460606473108530498509417563151598397383198821064266443100160183934751145563442583344210770711692948457067169309454968313191507278061389744049463076552943345787351381423273921973380311622976078763388646235034792338179330865851165452003588504442820060417929526538693884357579715428361126349069743075139761334951143966175299743531990644001650447296521479264440760817918288852482559840465864530856317486800478458906492992018812454439034712779551651137679480244268873640586795319734677833040469269863471799014969655006312454927341863934794755821021196908240013097090427186253306273388594983244915150599132336006836383962795352499695241978239878781910060448806879149986682209389170010955205793521476565977327268279458407258420645350993120359308277185311522254437219452110107070333366199473234395126067731564609306900423761423586223617026869327932522613953142996158761350695353717647099317003653745730248982481249395892703367698743798824726247582302937621384412522550922028462333045578992961363622980710555518560265658650732800317743453709637194303435447799313521254916577175509452516916766850557445764160584572705195962436567390908101818878237264290819732438925087304510860937402171319999368795369769827965381081918027538004442687088680419744214894319394582032630039796640612387254729470163680547239434579240621394679709779955762624156969361673286413147236198421859317143393011184898780290510135835278692585815726662432219848967843533499906376240044465175289931504253747025850311779080784032902936810878542703790204953583143515712306149615460321714601412737340763567632132033486878493601979046011969694192892578528332183479063112129333185663566387855476507425982354476729592379111342615886771601814560730119981779569445450555253577117695123253013721716890883327127597229681219147796892987316673763368538609421965626386531285922086439216479024663967418830528722383816450885535539584283771244907337438753060737453843763798762371442293836878389618760841868453799763267772141221346883656923140407199324250430260782634778934834967247537760006925084410002205929180346937412690266784344840015011815658874256600124461120724704061822298010244223895063875302745858548219540496713621324094613734227282733471274545171160950877574469997964412981871613453952726408474036631619992071966002488019449643297254442792203038377562461217684030967519766153287588518954999119889563186945514990986727380828866042367391353506878240454429932100832975513622424874895628296383441986040761898123511149612985399618059227230163685817365364708809787890634151634636077463003738600487670701229697633078502082719824251195073789565241020323526696532317249535778238047244311030045600102027683570145700186327976362447864746060455564167264353770094608700715613247055750498082247663870228712778636317381204912303719573776989108796983408885583637341777359057245957528513683768952028212409866049225808444227632290853842998560422102597700839811645337948848786241247733353349512973632235630271592877307620327210647016712919241851908376108106735665909843740561851622701616470293038916477581362249738418984682971719362438418292033198097713094214820715045089768307979203845762072842954688409932346637648430919480219690894301738230219023436728700854046976701906710055687323282884413347281621264835907855501218240878392824129695400382469919569837390643981331171513546233193313404371256233004380229598032072006794392961232048511629773732968939769176868141624681567134874658736993347735502137517809648992314915229072160245740274655663907993320812377723021669343342768795758063092449678122142453025849708896435570106556280936849281004991475204889701270456365215202495060790446712923964087888242923431771685631264194420950971739809409262679449565071422184073834676209342098256571230313338480832936572413314579906095392863712138830129635772290726574622019826587314206060954879784650246431545038759716016270691320532692153472696061873965445970694258667394557046788574148708762258426596211097269425155060668990936579676818285260679698031251102803427037508401566553846686584094577354995164826063835002645848036695673594313326529428388254556282749403525983021659029422361189615857380411719576208281834213805964046273162311421931739250473978700777259496281376349005431184900093622318528387848979913361783935726545421563393492026160612876143523364049338021862872659473693206787415677156064978272646836704629904037514585548679102112665298506418707006857010210429262479467981617123787654869266262875875199006687076599001003157427583206225711443048827133444987727113606661961949100905959281197296401149146043304431701092932747853732211589453590272894374448357839991553817453620760335753548373537433565250326386843873595345004431284225788933252592729707367810387642078105500113077874412568798446514221975727830979442488881016575037724949283948875326482129181456011178305168123782030593406929245637522761630170312530993708946897570804873493305894585324425655188147039786081635045897305275323566784248121425674652928940450563002173527305466069108824121323456256419825067709330478469039032469850047180078331281251188559650022478947497657575078471715303540309536028588984247126074958015560270408347103144711857460751881360508981140793534056185595878700663175799618822301113627129388660678036312605632005128450479167308374752300157218624111471064342612493623909544143834751170818956102706000018803985995531550728873243609132113099377334912100683478717843668871185810965771683727499933595778282051756600159318542182633524040066475445418581141088399901994929877044308268489724315567219770862773057383198204155224448599257194775705927665567912865473833499264483115594091005220640913754389064306783272335677150577786384998399436618248629569570596680170575175362574565662116317831592150482124599973786263285182363421093954288325032299149918382704950427311078132285700127998620450278644317516586018393235904160918798769413744191090136900437117874196105154213810512641557235585478879944409408517273960867475150753458302433202754905508640406435640407761239659736432439756926074079486202051515542631340053135140638907917317745013507409622960441799809030079790086880120366153037516090293313319944516924514436036845814522901023420077661129783365717234460704783833160586853338055894354717632452311142760037636446325196560148607753726999301101826544283250960471403999675008239597847450404080413667077421054786002249876938637660167765351120336940598934658345855212743132968140176474332831236816056967867639874896210146117619531538659045442490502246759959528308915941490059201507742037031489962783386862480716997716763937133552616060543863165058486607931668068607619583069549434064617566545849493285463125543579394313911809027535144786256586461691290457700800115024737579829017890665264498912606265505005402401293438674536339403799983969178042803563294524202516415884997717323439740345073575133065228962076853288223566776417187111158872607154442249297409325480193312012669391471567911853206482449550790694465470271985150942395264069995647468560960183941245987384493344341229150939630371987739082434058057656665977875603047938947685066452221123876585354021512911093985441521365234123046560147874283175505442697531730519994867695604339580020127670267546987099383036024428245847229392859911053866376857140275664247174014784880157412647654048489709823882095796861327819710049934455444432106478904701268782790994998859838660466710170771810330818883472500065250138902118759304633565630469144622206322376267926261207789387742036712671964661676147997199746676493214394095523753902120910912643197407775975307962839544341177306206540768515425483529213029845667227013895583608178208475892829074568794577229647724588741664051192664641711627146163581746698637853756301328375468803883480618323704954282642890722564592444888482034755940302081959703612848758581890477257008616383675224362050255795077333733095843222507484931925926400960652118215237890566115954376661208647394973570243942230471935805926689952326483454085622659877563350587036173994177314474523302564872825024996419912690590444846950735472706988439364921882555068216720008778696904487232510522789173093546707360886384710202714071615220642433453698945943841536525982830902596561052840644306494526928541333470800015956095946191259843731220108622146445987305216833229262200571941070568462884610173214118274191410615974333363281862879773842476669893107315572165973571767797410698903226375759191194068896494085917619110802402245766822484583250315080004621850950397134810821760782631819442427924960630725043004496869952551928526977301023327100680584731268958268393159381054120743924212805065464478696131174313971802494989319850489660078884635784019565170939473813120803821398878534104134822888645004011161286617773226977651889718592288875371763136245045803386568567512849658706844661309997441965290484366010772868384627970672847015885756833894499265375676268420329331495339360222368480637033115810835319625978421027664317654790364505062171781506986545328657926684112434724813154643765120947121606030964791021462104796551492167257219030685624729676556939902415032451366778980834044158781796618228781127017127695296929016067380596876159782659198368129121145397149230524415707484509539887372938445391726843327909411049889558862444946952413883885255507137769072663160657752096099716297478370090919602864299311570461280204863290074244568801089125964823733275151502680254499721537560767376493470822929012445560840368050290856597463991688179586266684749747009042520922019601281158426605232504044389371908743714198212769709301590679645398592188463347008601554484712023532299846670996420616558526397481090968769198791797688465649427889597737273886762994948195165573132502208129504546023756445416260089856538468101958452717641972527083824879570769671887474675137220943937405922405612228738042952143074463926329802147138742005087037391905645124425303460550776702185769238860341816887255147270782707174492892303197958809209443746601819249369986968370783056900573546902341239708035324261687988004681504337637625611635879824280543112493299090298082960791134264934034816656522639758317136800366689833022532934637524510844397640150312875549481507398164112783620756583351761270633564090664598836741216152134824941120154496708956583644369332487717517473621640153545853809802072649489878685600484314497440721232910698558942644602270497714710978172933959049291206524556684144939857186292797327400402136082196136239578037098493899774173442991101821966555358254761074406154438837971948342649342785770511792339893689600731702543210066715195388042437290028636138664492155155601982888029325308270063302099190383823158875066918183508285044028673341742977657199576366107572220504598787864764339766879663840831424664759165904858033136571760468192229816317381231493107697667528734172477571348095628995735086315358214839019283154702105270711374726424617624745283865592020246476706167311803164741669400580669723540956564929041749691366836612387428370494770018210791975835417888726554734895876573751564089981029738538510059171658537885396163373051192040975385244275535736479663621609071336473150841737888704160151804015120307629154991095029978388928698482236229996829028301103714304183331360487497350518976343633817831736729563016592384989362424722280264259247106355036016696656511892731939869866135835117705129835776131229979541077168545331321697374424779692370183317819899123934373309130044568594664040800923779211816117021749590682609116619252852949717297813614749789744396284650455104301308162842889926925419225570314783108664183415811281685194117662622547565831104612364180616663306092307893753544555602580005867505600387030392992801462083640651277506519155199383399404903773894187890507100315715108800473383968676672913037569195502176877664717185398536279692856453928013584026583459320271074635963744843001401592715143480158114934223272403895526003298981351380150561476764246542879877570880916707985592237835631803120396319984321895153624147986619576481183334349410273729894833907071959793738694397947465090947044289796508368614060760384968691076658743458496343513363155971159374073124814208460935448138866296556723968218009502302056838162632905383480372273409808061654172740774009215095456706801685062330655709425961414490075788006169622501023528366111436946289865775792467927858127603406966198953977373218352653365621961444833732242407753530375510567872359711508823830957152439579549003104654402859117870469649198472507789752768942515483193863601686154044727986972055631795629267332061107690018761480689938706657712908843173870506334903930956990534172934513518053036839030879251802181845691637205394982827099969851529906229519786116417449093731981092247087164649993782335491694330504942377391537490828306002436845103372037281120606310258805846616205981525692226608812448036156193264908757748858453040811766367463871508224947557732732335299340937704658082246830198688297459490400776279849975506316129315189215874125920656869227557638690798218116911622208671473069984211251171399686274017656529094261367505113832337142846486806242372166565906943742315693915545442972542902281340925027380495170395358145802034881900063403047900786556454695672025980060067390872344878390917456578196403799856533056405502518900979831751754424278686990791098597026192076528277884494005528718429902056476953631821919561332025302247500259552244957830004530226093623381439720288229642630185719196186504016454766989644360498153561908176329273801526949482763813199102903895840339569445130904280797077932742416960173719736335667445915480139304857816174447489967549841326199221830950917805203099359675470055212943734198314834721307400688016769324322485866476481995391110365289024705304167574856746809027574321438715702991550858941565071214603278034385003865568753395422624512060695011202512148249914653725921549999118841884984192843699038721026053097214944513052266736054565515784302723960280753638883257814246159601707530662862843210309220856454966687239255501958176729199982938618953441669641212778188580687968046962332183944005839733188851256941355486310746407590920068111851979212899504564502300784904664735401814031059892423390188277155514983626954245066652784781650290808706075543113258953502081193637501354058685497212335468714961628455405106657312504009181468920259998125905498689490352591628897774609855034479302008739299497962427627690804161594224339682097688535616390995645656750776712102288091097859366091570055683875797922760799581339114510163286513253365724348054185331413443590389735145406824085153737287933932758197266970116242248654074428189864291570945637510964130396573352055420407154543086646455698103986523711386565886987017635581323015848117644484430597756560894279554744643732830578062351514108734860257426807229612205781414104065584148740413233511500974690618171445353828001958720883865592628210856131807578693266224693755041581926450098669299677704094128126156538375270578278842992605972407417732073271759527674294295018854683611486906758513172102932740830594935077623885191805431193284237919758025924383875867642992212050983700026968779066973785679467172989152100506639576769769840280358128861579793149226977988554180007036513252360436797688776771953891250839994463090518193261086682616606669292488814103471143736987246427542320227814956645033228692918809400118301929865263984125127510852892638756956335081939937849908198719578768666380663462410119307497053035995663353349895185973216558996948969264437401953525577671508075710806353152673261622747608725409174493319953647996442875564844721677344998879620426253816635244988331217477308853336314036103283910274607551058879423255772106639121371643626381750483645932707559662920170231664953877813696722311183866290678416030328389626638055358741241918512119225520882356122607699160639632510731018803480621664176336490240489238383611840137584849457125997955202047859729701292587526015854843589658524779050424835595779723531258746696158715332431572826797336181185100171498242122278415580321538799403493107885224215634482163706671730080179845116387493073902277375032899237350831506504481483972870974667557963476132198106268768645280886287516932367299074246509478462361642352331503605612329951803404090920009782807537030768649769302586094630274165040033646824841226989372276138533602751169227382172062677051096664848434810862241959048705809341699218052120958627100087678935358540544994754253524793998973117123523039786344516504472165914214120708408547591790365303337907430089157800952529638411627681053376392928863179217583611305309110784028734944676899577330915171999777904152295324439087117490808879179813052164708568076971539654433014739588651567048254461630338158076996804994094654708287609720961145923452592112783827211685578228319945238701076852886467833197847502105024495015959398085173092087284672826242765734716903883018947014366711549746020984345347131178839322670001354800095085088961205192879139577564300865619897234869029772975646627523077946939499308336103334269160427897721350865476754171023132715497702608888625146861579855816395989343357868466938135295835804369803012709963651942494918149869649779756265223451688837731538494930475527479768794847088193054824641127778470249362635256444536777603841500442804934826625023822460435448896529986690707371629805734998204987414149056543441427116311907472034785329293160163163987659854400373768360805902645487078254918791062829703217451325805713984971730621360003166725023246801016863829367579149086206129155097283912035723530125224455401357773032651368187004948151112523911411131724875308625250701290625705772962576623055570014427669600605955866725050391026500464900623801253118227132632809165108387240844553722138150622764640173050813293408635566470289906954871931585706536961897253319974029711462395696798953860155197140206158558569753239798155012818419311575425079253175029396309230107382146813272316432586300173888165074887072824609568913825023034969254442220036111011618066436756933350531491377564640805853633754596079675554776110109833058822249117310920126743232070351192421971904276746366075842520115698157243943767324045886180043996081645384998410737297712231490174188452598450038835710553523703464284797052366980576270501151959162314789019468650602576454644135995822905978302215988929433844567939186189191549381860594538418951740783271133867258538680730831625694639945946866051002771239215464744898041435725307355470959101038564201188796547752122691914725178643305056498128568396446653082848010125607562677142871759847785012485640070388515940495682552167201883103826662457993587852841180009304262819979551091242323122575044257815169010331978254140341977091373515223634644436685988802104386249434203922768356347042327522927286527412383524894356555339003033218298453620549112242963668884177684404154221357315132694946249344440059994730233922311576762934692921162626278334131293543270927559935237034423946386463757677434607089204557113735837940878530775900134495205285035674155845982722875257203933862780320348901619149057809008130178153127758605457825986921545343420451147582886251128828922002198107300495461410049321829599720734409059529473295650264903469823755579388244124200195329732075141673255498367695831810289459626963531290152583794116646993122261186732239107503967362314096210022421785061805566865248078617448362457151781800827486082432206989325765957493478166985035825276014267215838320886595558907027215295408072496007105083426938315062598275516988652125634062596456977280095875259551932714523498600191649193239094600402381798781041052426781893009231375424370088914477199824893096958654356922556375317745840752455324396944237925271598912876279533347721099897358837364535886161619181496498625464372854624606775747699892444391903164924658610418248398150784027305718005119719874693031877130983125942626391241432225597280926603980600770697008697615810899170396213201068229553768934129742338147545336275886891460147568119077457463036668936399724618475410435436883761432969739556990130108579423508662856302014695926148762685130349368602966179093593741185271031822701007574758720059455647570663380631279428499789644160635073426586973754377648716721541426448164863399660365843963485852703018708934132961519624280603569099914579994419275520194596355503552743904546846802144973411985986804787838632745229822898720468633577758362737390659982062485926745237485435799835053401126015691508140697544263611164376126758767322234959301862689556164563522505571260036917955388803387265645384415783010578960569443435378129951612455734498390271819082981558957992161697046477751007677629844579022694015648079621485157526967107226793949586602146453475040353211616139299401407350885864018161995509285588801365596789134333779060082886380804724023690776176311696081011931256917863554425464269161363931981811021368964345316833301505912102904075094268053010381675651816702946296045640148351460848550072179526238528035888133299661367103770276866882076412008900865568366221469662768255064857207357162634502085490378789686922850363814042128017108106769671819580776282917126458393331824538855984913453042390091645789682353186391304286027730615944168965186205694156213857663472879826279454183298685386514466847240329399843106009258312343878206277205019717816132013882442407338482472480652114740191729001746287597635640305492801090447677633189818583387737080002841157822442930112638951855070231887793046075384459533721531127554891841319841789645455044280514916986216741346113152305364721565541477306737162823936551956626883886839934522423342546077550606499534460118607047199301952072486896670074166031591260428317659676408113379276451777192441066594624909291102821960588374095511746267449902030595036105040760858293403567888763886813223305855263620230055199497642981180609318761662883269564701973031832570892660379256425793316063203712226402390641337981577309062895058087944919541814791950015366029084781081612556184334306566258022893762065941088828141932639312170032301741041284510714772423669932907528510105697728277955907120913106294770100418869136692479467275979706093996858054769191492718270685876801006147668729217966437185634277752208919987105393365448095347995036554160335935633011419525994130837696387203455871231636546193075973018335730864533866705132123655377294158936984586590121508648117094609313810692084999684747744451474353286121197080587032943679422821671255322244390238524700536763250508298644245968240738393054594764848845346372631831978993346609368276722229368590243382796543537325733038580960436348055239730109957341274484100358175790481702201060755699290775293282512948133274658995383983126537353048831277869630824518298687362286606412703948802533799660271173954602311309299654206224955825423476525554481240922316380853610114335725119320147757232113359278681466829447760538704233203331486484351422465057581976152461397283968442973532299917555908499457665228077950059177591864475546043351709254493362421355977957971175264824604415072380078086098184379350355347637847859160818716058894969698049643314996220381496275666465796672085643490358752098535600366394501936706055692827022683502860704216124511380566631379425041697907732941711036002793165948829484767152988639651935387761822540351327035283374366217026285034941214564808509410057402133982444302899283853693817062474249536681126370133871506543880726807403141016268687982747996733080133923107062488635474017009911330975608833021174550990974244352923008550246056280455641199720385480027194760117705807396650853530457893668493649340367682666039995626098456337342251437238386714567550889405847814818253880547131995251687312630407804668682286052286288329969853890812070960178545415369807346115878574565219870388487677592552978123467144376234280310579173199236339332402838009613688171099121787531390704776220175810946440676383069947528058757260365181017737759765583581570924428171065799783689648881328690016504114130607426957767684051527171499042172119053475164739737753800160603403435517358191162380902760656344016951653954449785600138771190261959675578214144037168309480316831679529619071986526273595031602686354069452680928178678691211410573193454865642803668188653453689706994896823435258566886998831534536782327501545792763794174033188349280253724539706964811611577501772459559502006585824360146891363400194851502324417577742723353059690160649650766128797620872423346489945409275936628975346860162222557130049170544092838295791427195241206166680726989568478391579804515576657231070217614516166724885791746636760352843022767390259271166906891275695909984925621892603672502844948232812338231485796035812192134507662744195772762045599369376167478394723304313011763709247742106578356638448711542473513983022770099840845864429899369969974348074454820290132121037354471672820847926495623542468275416477022846330970256974779076879826444741050404436071405679096362098467128480104616852951157883363053219122715708809520144360185267892633746646718601726367841465561912555111048965012194580000596958155660756636172692819551469701526436536473802618771622773305434352029962935731297543232942621032043915763626277508187797717501539851577708664025505985781714361872933236602111593373364359614171431146655079830897578022995138896625908614898148246189323541772692419475578907448860336085325772816769065881419414942759520998979154360471342745181179931063575958672505134247827998089132147983936883997432241099381325031663913680224634366400173112475462541443797385989648653177058585064209216737074223864890509154220641930758406795805368746874770284006465438213316517689142944596532036563065654275319288472844632238790540872217226005610382357076750768205213889140190945304917274628101804571175037341522545019448015953059482157839381801594891481913219522585040674821976135282481349045606853926752795438092867930336383740181487393663193717633957497265678277008867215406709710355310771367222078439531356965472273619352104201127644136551391208647524396139244701678021222919704840807611492558036171646984543091980395452101741410741121048039878910943430543247074243136167562511544660971346275469647689327162986940919765434020739522888421461202471364530447556044110467210717059976831122807347653002053861762018170990051960670355244538241561048292310100341885931216870974589360737674707512993520771951612859729395331580136013119320687185599922392391691469411780261962721022789622683812852258744486223005392190809950225468152396560603169902680664731023965795116328452048327171055980436303474902814281641382734337328883973056588900130934565076774291693273808545567760395691829963974615079438825528476035022898886601589686252694012177890034688231503353501237198905004454702582946819459520547605945932808505807217221916825351639090293172244735052102448175305510860726463145093959625154303176409406433171704834303139376203910599835157744393772425116897665894479527058906784286157923708030397475136422369478512542838873442076767896344580626586327158595275280446575714107024320517632221991926891917499012798113058249639848009059864655617106196815632205353691259636699438925561288086706041679049846121167770653667979792174037814897035531554372570158630519811230077978778317298519362841431847183255675723042360254811756562498106234786677828763747043227318500300295961650280630722771906213957495292746812913262136551417684079748147863410991930856235219795797145066813086090890121384839574536975284171114880474671928759530538602034690904988144310974623516172895745303592340966827450177788541243543291225655556882768965277688364932434700336760346485326030701669588604544998417204638650536749633554997202795592280697214118733385611643374093995664653070656895049723979734766116223461850475591388036935694244633072853372486745627137950393648340665064357775292110671646328097399563020675766001344905036659583534365605066309535989397608432591198952071499054276251377795231866394228820279009640541710082186901956490348734477688926085198889821222955379462226829328588213307510195004671089916438786671745510307301076185366910736470339814759267376020497402015262915441871119452184653278833468022398307587467610742408463520729111771010940088924105782485500303355264344038208205755349668333911999559532382008747836527642461750552922528909948617106669119893061396925794236095572012014459547287906435169975350406889012357117876888776886022007905971927398701447500292941912602537472081314557274478462907058822904092378643847972897469127843822930178130375579121358718629518289288116272084982176568562869703550294859751338674991110941774136256914650943977634661229875282497370135223319836521601868411581642700704887166575446404291705670478310998892982537532376916924102046823649394318929400120956274500944094904936007788894797831967899486340353448085341728566978764154606474657536826105672734257392034740784643308259333825905917216537758445934565155006505509110190987740225446169350493910883637239408526632628805143326875546951423794202343250793046087037432226195744852202497921797819419961325576562275838560464338031262816430238863135269592529541729891639337136523462723148565136457003736953590407780354834846581955715834782770506485784785216499331410541169095283890478278286857668948986735495579586697537240957157458595871927884523848365328441740870926427631307506350233860348525189725475596630891286526472939433763640974541203319193094660985483292049085298698512880442744460036481477876033802868410299949235911924309083342493180216001218522452992288404941101994441680291396781242360465639918074867843078858083901108222070482790638736975452919193374140133987919972404296114709669887303273405644375654955495179058638068051483861087829764807803911309234625831204176686843912557149053159896652338693219272487487589209641205931806513470896448253700617373434978410420864801240810784700296462026755032304980183806194624185236067155047216942750241327813933601040132996083694885308009906206229298871365960145444490867169193658482021027280519562289897598836786826873577577673698701862581868741561810982504332135861689646789283821126199859142810131875616382964796844879642075699051658390051609698370863032718598218916315490389980522746141443166941358175924542973479732459937186278424761226147840903918341811867144608651776293724013645859084654822445593359236241962360315175576081545885164604544016922057778530730031411715612211073664705698434099831702455045630092802135347326425467509667693754360284385194051887153915256522305812548128040043803209107085423043039413635652980403544361972873564868218186728673943725364591209241602604700798268308360375038070754302979221073444168782004717969143257751057144430630559373606295694254018548192294881331387872865955012075997161878110211343427891299798117182508616116379748797257158869503847159190594084803580915375813250930925786549679893523587817563609977926323060739435054296032363725181543891658684548622087526254989220225547385734473879013901934981636822803868554722873202569874644237918406446383787125170570388362599810405472091238564316407626159725431741088264932055158716250305671175660379890502948865516333429720766371579170652400400728225475174995757973591097665556904679394074383024463813873029770588821567649691277910582855388666608535449954447627938327314513619248737416899970806714053361632003205684921384393770462267092573014247614763492076365764378718784158401939886305695206687335440701004416071271486390799384767799784102111488586907582772055431323771241248048475194214650999304334527952159220761357012531209208544569312321700432308831992017965173231472167108027111807380991771321540483256754274747611599418904318718614661586333308776613099061437358819370893878884367133584287514431793061717938895641258892099023610099102035916625393928216700178617244203937749621001902589561929696303561296228018422407872000126681273079266735806322266406066296144772141733989796566170937326381098887923807150472199443794409806450171781076863261256522815406700225188264314486844260768402801438131204087422821959500516891854768479875310356320994743080873841012918122052925906502189757558062695031169032965500226849097142917546263819973439805657555982357821114472000179133884114952606743498579962812212953464619376293824997914024127751512107896111854117370964247575418439811652981674597739956988822472101867901195256229449832290609249988382781389690470398123576148771969949009922575859984426415395315382112884145943057558596172730629905424160380635007671620483758892451834584614621046620831998233334085264852154441864717329745539127120743693935843930852831911004394985755820634883537115026861892490515841248235710090003428409010061578117550222077054719253524006896301345599171470634090528014725060950144186416901584431829015495819466728888540365749237796096657317763231481848378785058259246639294387311987349914427849383207019958013364207223358302496637516261806018758261887073981213350676314714535075971217113216974114428775951288627008247327715061561888455452138094155638089392019375337083687906292884663181105009241028589333277339856733704779753582664374038207912935305191722828754299158662478175278263989768952405990912011687725566970691529726765132918408570358034607393755082984159066632445689128703543737873840716023661736924196656690156242592651934570168152612615306694639980684214395844493537365783571328835885195028455586500843404099271693366084044221965414100414685151780841326268147099433334018778877361508519795362056782957611379327815364553520269744470895689322211103266584071253955150252708434964884519403819407603125282592866965338012176776586070237763717781592713042385198562613739797548141966920436632346532590191349229330816929338476810062419512667514483413515646681261397037003227953224202075936072507523120273474927180501126677838082138714798136321251251666623214852457563195475382816878269959359256431254413460559696406321997590151061513833047114904609146591987711725145704732700095952878769170099619152747719246450805985198348575367464415668650477781174640042309563948769699440615707678809769760066549137877497315925794027523155350229112419317735843101858552466916820215498022028226538027331973637277208907005567484196864034070890406761399840523802107031336529465173796725461592990738301399855033906121844485363952127954426789471277315591446834922604506300464358445239849320495000386254482456574757211738433546782746264674461837195560477684457144822246800185135576515818981999897444611293837965822390096573776430695934781095853188906852641702229985273943708690800280059940697379523207290342502794874982527170539933405369974022592932617546712372895556218445225843721821545111961548787237308329713813997249698596266302082986630343636187473041548505617065975535878393724688341036413497661218284338098907443938162097638520448281469866417708705109375689593237517217881158248339972225440547257114645487243806345742590238585182957919369735812517317385009726159637311448164006268348772844066314652854472521473829211091920689182272729897024672793996790869722078368171857026270643348799703817721721911893973484133162074278703316126721674299791989324372812387890958211383237937884400840311228896216598561214824896590173057074408960702652170321919408453885767420874205302142728703069516682603129261360401578637924250785481052331196809231563687550913160855183966314988197141646417772766822179296090761160661603561563909946359980894825439801322780021787128101579703848475089445369069571163309216126276995983552697564343962312234181306009714348343160803596630970818195936576118247397378349793727204489433222867015402755496012017327898061054979997271094357071903238211747899829926135103956099483142662630845480695958413633278134849899412636569504434397088190205487293426075148037285288485788766398958922368340022956322374463578357819572640953560515699250957633265504888955306831508933553950493473623083092752367175566919727393036444485076693852571542694145739243732728118113757868493966276101234060007047804226591493404007816460665117657320712792143318305948896288959855281586449524297444278936003854040325696975870151668462687437967081185533186125947658203561535913043082219182859972008121283701042453035513570021700097717605361924538724539256007632587825313299594351303341074340875292128628568900367493688561573935673693904551291633922949587299285109587650617304134892601740098278338124906918496245334726872165335448849577240148920426887636303366356519868150480713589584245206524439081524072913769140532768632981669899888392824743229360634332505201508466869013523591225992628455758915177992076516172863149870692199878561778012614765133697998864920023904070183861263529333960695177230850190587061795116481348059920218456036683338906380109777639898540648974722369057040723851522526397124700232528407745333482394211179927174746966194891526450030892849404690861558910795577253521615033941175376394899207313379355805599457430501556687577674294037547567641426933433568902861151002902450484110143091053488936438269879113553931972234817468755139937079793299003896466694404600039549686207028684637048100211813315136640537044993508031814092340482037843903552299770751952977561445210615685159769850436315761379378845068206063688048190913632605922346716191298136549404609993747654576339836733748634360424906183729662605926497561551654781316850673910007305950435401178470587707664159707854637770501898076714519961293140129602792971165279038807530566869292470131371426062207405763233187254034248488074096293920344086463928144883098010049853589717258801612633579155939250295097652379907057909766550016444153145607327357870934204847677980598826134107310985569880297050787560536096081632580905872287184468808148105922240369380108073999307118668914005153659680017605304871616958540408280355620484145676889240913819390706477974527237736702129839256636696003562835999457003257075117175319216914015524768970908685466904001431051426938759767167502948759270698901075652260135029995490863714965535017457873567564774004059772748183738540829118388629927795823763542564321072415502293527826856723257542137203207649762091767953110062174190061221862937875642926719507456550476677402108950502734859821398207423610607089138725863719763867538349947136198031198384981560108129788911544546155504251532185049707821565789930081931208780371021115083729711502036698893930168087238008012604972221560260640298602338941427428146271385647512339056578600988214366654435982040706219475979112697861422534346903166001611741116239392283969748605138901733560186975317380292034935620463546834382703642981738053808821692054392562619546165886149548246117935711100637194378487907967185893337840574302632239375533968052254552793678008943627458339816860141632277744552291398826635605834534357890558782330115025473623450010953879010356590513674833269188033148501805160263001646741523372509376293214370792658615774936837707911278372695671195782974805685496707225202614389865963347462281247379580998528178043405250713860671723221336150213571960904156707176615559043536962743274199364486156988923615245340842498828655292381012027264370988049919340772600666541607157864858489020819803304443753894544799117389244011260941497997847108100147399151972474954111641541382132813291572744943560446498726903526503579364026924212372164979840332155243773131036451645175550942571328131022748802955349279744438747611257171334091832218025020689240141039092040090627781575979674416194441350120013267899589973412591421329553989901244728977814199687124201026639020897027162984886254919874458843291053649190279886040340067951471519174566163292341690266227112821657075390248674015679123532879669646742591438626969334263534324091187445570406716944496086562260613171165065034436544291924568320333599946887809670820014038424156090366703498670777240113808078217567573535613983988601957177059557803209340116926875168358209616149492208629048247409250581818466178058268456050546667586005327254024741547849006807528864605685722282589628576255061278093435179052858633156765692730383442004534250301973258116431810989316957014696461793143455232323488074795941035114520329372274866900952202334718536455316132271004940332971806215976130982003576515988999851536606821076649581845195652192529528410007378341167863432051544719663684361462681407804169141529116529535145065437669606773143469297619987883314534861312342102484608574172519781155644016990578029173937629800805917010583696770004379991319915185812370974212680640188387681767109215283605454085812890783578041275237399656201911601619885229418925995494409248673379700897339796336614345354229009095199123195904030172503112581933874987899660038048490456905882786894319161778616571920302727226457649227424623306218519889401225412773901095867882835672645258658801980868811555179271979907118960777907122614432705415957015558172592609818269577441910313543322642361205442566851222020443328842214982012588438054991819871413601440645978868530358833722384128173738854331678653724147937265375251896455423483254928547208262533606338764844987392746779474511058316284331551501154817813773438777499468058920535175713772235740548914491675398804315006403989587058567813038789409412467589578927122228551141752965439042474020726562121027931281818635250869197104756346090205168662719530290881502516076738545797007130077063630157841046161101582212981270809677162783055336041434051453366573004460119838938418905606933186657623364852416308039744366095584642855780278353830623639031704457865914870220007669414502303023112866008590302789917866676293863912333138914832579852977313914053732291696457239659109685000406093176747296119087724560031109283657029080904068513059111854503865971021825956284253095964018234003153970851448973968330687772838155892435698140559567235143943950006327063806244921344027405657769678836288409311830184087496809776332812840484181028829955914924157188924799329395840676811089890222970867565818519741902565372373934797796818594500450707195103895852848405501436908757420668039629735382828675165287737049615542483313371099297332409074679683817407429619505019460977798542854275830626709043334323130310230357498993407786290125293627619760200916823263009777997938114384440963310251994112592017908798593898510949946036077410088731847268779501258300965224509898797291405816025113947172266368656725350673786162976929804853230715820520195480894770396980620144752647756298848041188264451406692866283633359989733938750579650889934024018052849038508796643533811517805479258821027400308144106111752909385222198106147399507436627233061665730605196730430353376653335128960179469947747470392159164167333187455515558816423555275276703213317146602946590812705199101079758325617590032809451162755010947187750372391927983217300676367173938782578262979027109646265935414369596548866998840148928563537719742108348575734357489644342769848954374653724140895166499026434672243922837433807186921805505638585146157955060564360497606190252703581544009172981820211219735963218626130086758635743089773258696685004885825538978825172013265341614862253334448687441502015266687500111749012282566822448438358731344751068045540375598287206137864258900231945623220090048664140447672511607547841218886833137487420140758992251381890516310331251619117003245724394514019584422464028882717436779099340311751122388744637286862931029312056471988770726809908688243431008140830441106208221280645224879486961863380772304101224196978618234527134231998176775233451850878860365605021893221399193931149150897073055269123093249630208239614630330968021381996996343170533322167818875017124663695942956809792935905000798015236040611018203484318978904277671806024167501756680425350263321376160470988630891685393523464147805649845709821192963285646390173108053178946504923802553580573194445699361026742422589613096666241058461051266404728195575339337709813490335869530308108430400577511603731403389110191395866891607306616164815280645040543351726222242712559557428293881546744078047376729908590254950633432386362794302639954924168802966451484362761071477136775573481222277851672750951553833945389318612026168257863388263821122775863630892035328224363217702819976138875740420741277349465839580885903430565380006919587022688535375598903375020451156425755758632638348824824569196817642077758241056316653773780294429809481799765789964805923175381239293286332876024601920870702653973568485088747897850420867231938606031964756749318408131962314857637147948063432858821172677103116224062947519325970457437526421376640415232896759490327075192292058817156412489347266985216307846927427417066716244739364963424145122457871955748485590425094046889768827557287840534334083835283714635096933838971725649561432490097519430275054250551604281873960010473919701069441489052093173721769084529800625692710437526397049428890504848393093085286226474236511870662449767440049404002426082784668430543066172208458453225693608140721949251903703050760748107195014806474784189571117346840303464080714125362195790459594498738732682778094113717971569215208056516765887791882210192314596656809530858389914588092702944577783722514402546058017475473036107267942053825056942481833097803086538371205084182740745528322800912829319396441645630409822627227697169332619693280330928004574642048094441598589624088226571086280511372561684272084889717188095021165905538617122586912628775245007170427129694235305116450100369211042173397795589816528264880445810425218094090535759797179397173457757472510196728856220030905271391274560099256830778670716512797306019225894044077759417901045205788097769375753864255012101303734696352338560201761486908139903038814759074905119278895157201086775237200682335484775307995413799194442664521532765569081576660847406284806347041385472751627798091693896383537127877307262987383836839944149732319551953702516105785811248563635860978164598853217936402446104088713639837046375854995011379222946058968617969790415767714859762120459000958389079471484404386250131712890207935156938086479021359093051210544366442898476566526861271888440883625355894658111377892872813315123543281111337647246806092036132312539442490564777898851459424749402602045611653010781963825885291856481557199480226771062296607182431479619687277449369150894533334646809307756222589980168355790655797044072559446245472301630475864461010137476256532847395291012119476740199817010904495840788017002259275473203374935634417879465282245025222934451756265469384595943323394310356377141825749130956077995676573514070973754487701752338348601514604457261508516765106898978348745403299536086468775426897374022345596907104340143607505711382602027704504549741428617776945387483477142378677811221136569774959793188584776946822800249958473224258719941157533011140572803699181226646610291397294752815188676614468439802871770217741793525690325334716272836666538131251921850805820490901128370772103723816411743030843595682483576097815365565060655127478369107660411628055987176272962641766084049383885246632774788153926043426589592713229544247801609117186717712801234715809708084503084392819529030551659216328089394374086336572103510032407335417244538795055160774862317480558522896327936099272050741795309925289617584250550958375666124835100891483833078035626464162761808727210642085410291483280269966986313557644196419779522629016224918450991582642937707637748829376282175132540735871434753930041392818604888781240297092404934882093807206092834810193521669451482262242819073398376140777072021481039221446689499705045329923643213491558931214230887977990247774959908200291131216219941017871260112868616819014254718476985238189679121713273457089312134222824599396925136975264584400356627139561021018489278426946989430906047719276267594791349007238760487554134885152228094272578138888379228619279045608820280213101162358185246433064964724739007135488456782325662452734495174361350306447013017267749177588747038756073514423845851623511460756328941151880313753134349461763798829615591018591006891387117888734836753575542984950506266338871321017115547618168325569152562397063135363306711158095609085863496042418190216121581373044953418290650897716255184263924385279083618338154486681518417291549805565427809179277880402329206494980508557586502903508015152986308679566768265609146730836964813348634188888099558318469773379323665645167320780969457476779647756787845023232740720313585125249249037302052799935630660206295797595129773374222661759674517926434393417938296161353986792110325838234931794539470407168374573122271031064407859274492922689674072979137331792365880212197821348453784278738351210794207329443564516061013209353627652415219039741955519971308185885353300580635115251396320907387700705658189873344117464975085510065654014021366801273496102234250131000433802032571526238566197803227706086159733632158849673412135152088231382481775270003218730819227073095248604421985879712635525566484331462239269483315643737987721099236365316118748747784769285454331606180103799095846751787105873282385262707470929443130214353804328736858800324717053031569964488373300473989917265467837816198671007228836649820471818280815783293358914058715060871883914595998875300495158198204606574456201860724623436147516291796327832660397285382758454350487129672914068676577314850224307895763400905650508538631916448354180941095400158647695211404573734254869630394124037910572749102747354127569340678646024572693024756973768136295471742310078935634045221837998857181932532335350889467774904582536655312835918359851700805248368440454404251903073910460367504858037315375543935739537108027056500783177992768743735314233752015954799998004869778516814255337376144031551674258018010231824655764924355041859848574033491328150438643307448666481559339121705768977093805746212282602964684397252764762371166131424507509161064488206966910429383347238004514784253905914770595071118333628848010867001282080202466810677994012118139277882387182833129283856595303029200981827484737202387682370469378299106740095553793151048227171725513063860549656325346986184773502783642541761680251283646611709867093641907924405918536294946128644493324720947493867268047209810461002956077503564917770895122167686878043799259155115369570551070800111344151031269087436468446745555372306482117693208181462218549155035677427300165032772000131469612933248647249290398264137642791122703259181463502489428880355130112930208293612641168270290977666016757137099172410158511900862567820494697018590473209212060680935147243218384888447467832723940514298915232821639294848389598660878788369031699056951844265878444327539438798661513218032610483908455705441615485080083427596878111643667429585117916458440583362607004103102912436629852788139259698590042733668776113111073663012209882479118923404598069643217742550625732205013070061687308337748256173266869261702482093585720798060629453685801837240663486175939775345476680763717280338281107272199915645400462061800805600581391859241595745031264070535278202907918070353164256088821248560702183293719963059870440599429102868246084222777349762669288170756787971324246544938575171624042798621415857137032018228018458227684537175774242336233262401256045308174817100764177151954865002191990660096389181230385744330184262413860995595577362098702047483967546254296136470449163129745285099141970684924239475810276810711480847657615677272703491852585240498436588163202136482945718071679593958654499654613115097054986872019704100219422101612351842359233003959414787858627967571664691152461919571819368383907299542354012724050079168334048373545810483206907416518781097723524828989708268669638803833480867933198089312796900305277941178558838809548053614572442432284870178109153787144299314938293055591261221398280884052528553324244006193880335361534389459521009552810019968764357889969162131708213338758215438379069842216845823381894533968854573362402405105168767676242785159106461265896531979392638639840671243131303514525264984236578157739354986070387341333310115980915716814239140894441279138051516968925775812474839254888548925012639644269431213687146362716354703328532673481438522853791020722570519371752781987912860978548933810931253764764438160524923919480586912657499031451843894689596658261504001978426614705311448185686338880708894578772711943471420631496740378298403739979413053990538456870239120799139634910291686870430128691432314456142923098551416616196763329030375784657048634210411548296846841569333493203840410961375275238595946132498161204818026109783193938367051404854459787176144887243358998104919034482539730323755619424297274020306082211612775805954721986495834575385355690014221390192194122151516758198170452481400968005287476298232136100057622144335898167403693390987526912603816304776628413471369735742219407998627377984933021221870136517313081882239201274768368475928685857880701564803807432535473659083423927704097027058170922439217311656162782279143575014877560747839172669482873136096523565989523318047401003315554608731579713567597651221289739415530009222024800153419751346632280583428523116438310329897140393870731043755523088761640902078637940864338685892055599169698923698788672078833758194012879262627647517814242582658809509948931434292848994959211010901568321920682393258951494651761955058849194701763713800782435328784796031498065761268084786552362061680965073389376597450134211984243966270881279421877502237239987430415782487428781999698674431639047160883808819633331886347028346351939255064143543271607331038416309842971650997179915597530298425061944573592584182222502730197580555166919305286980833326472592717132879294489569148513867453478010255912636731093433722717492702203492751587501301774413602185911688201672575825005575675655147204554092289304894627480688216500195253667015817508241945775825261316232355147485130225464961083558951849368212391385800146269235156206503155853133078322248636540692219596463774316310189382179500915792150272157146624071918573637227581422191426090546657083301202910470386136026448797457271341627917095793597089598964845033379970500177734985433481480685794804610347968992976944183338844139859695089211020610430038436609107128648714077902169196955501735418304162319179135132285146849845196819481559891648379878727003141815432435757003211611748890902184453229485423443470091548466290709529776627378085231435337626298757877398385793325377518019150699065713782804657757780234202623200087181821821347249745629727402751971314371896914238439002564421343140028444783215760120318144026350761394263112654102348464973608878106471576035733157780272709570858608712168566315799429899703934961120356870726997292099084155455552504348317220547859971227624187627800235204678174272478725544570222063487529716006020317126057083400176894978982316177277227358249058005149335393359174948788682511447675815145616485295192216565995828770349953496894106295520925918355245298872670611809239577619426942549966300344841361428716150758565376114295554525262859902103206322449175480883141120535996300782187789924154416654802050663562860319029978825621314144542350194105813624304685174909838279505131873876090287114464563480911457682794803533481972245891464442012419207096553714857114704035228667701137423955068556996060057788710618327689940125220081258382723727997414492645766280798668840071528566016278574675040093143806518407670930012965661380913873635286658537129183087724835280172712242862191112091789905263364817983434306421115964488809696309242350067404520827956956319474616927536742834204762969944477038748191755141761837865000305877175209769785012814504257819196841361134339935099789304044180962402053228513556626812389381436563170664165415979862278908004056482823017592972003100148825048407696846422468841148371761484948135953501860182124551279966646409634483389619037131612268928388305790308894525982654687670285708108278337901929832115761362835500049165693797015091105979924705641011454710475293973379340493015613065754079699661458223748273252403075829468787748001879024343117530025848732561939696608611956650715797955973077332387983635854012458423380948207975121568214275161376152201213392201850686524765920480056571694064850932468482836233372512160889076893317025120165353012493601370641823736313111355068452239215355624486331981808822559283430753448634002883475050214813878006416344032255599262813250429339508418909482609026504428524239045029653361909546763886860904137570552690191580634615152437636300252007467806962390953043508777802247080771389557709796933479841091997239365474396821678612156870002341115982865773899973024918258066501190627205279220958182664599107744081820484590978396745688674624950963206119116538867430851124082841747572210064116865653140191496868834151426912112409827069276410178435858729844358057018416164872910224081891872530067683269631179356021477062362054586859132490721453745362553114893564810645339754401768857042765769997817907162588384846671869585575573736698339878790577151596667358706743484802445379064690558471870448719505314174691754678859934666929553575610835569274532878683796097992582600422445541980143007264016703107017518063869114832594511849669991506071821706030143247491372011201216671472037508363057865270973901421230126917071027932182154389346575598833647486568538073306821573981785588801439974318357169789577443105296382306664093428763331226936858599857851722784683125976131319642563394308930415778013741820948414644089001724369829580546043321784323542565635102689899716336134764011697692445725258191856340115506901315828869529197086521540473845802554505887525074950321142710266102625007324923186462892784193150768752201792722883011991303954310202115921333840778508187337692489527818131064993588666871581606387402946174677920879119033788061811428263386838746827875069004141413259661981896680394842857727077027720521260547347944013172079791529307244579515490386458560995249663944706944800483851018693284185504395703894329146937615047698109731161911071284023018537922404886062896231874441685389750847093612012646320131792396607957799700313604069550335582420475606348510037540440171419860725611480565478889959423148373545782972711560280216153678076521177357689822524828253706451746809113725210708078080518133880350014044434435820789941253446947122550785999308316875587964928740001665036876905703770839631544279579381993517903552794392946787410750600235072093647459525954920896370712989460078078164017761815527990540977340446810420992555777345189132837118858964435518857055949042956596706563790497097539037750589446744063123255010779167210502808822512509373949014313865057056229617652254263838318232626965597076296455720544997270938505956869292155602713113208045122117724286183211221613862417350796918875012893411306083394755458226462148198380332092782234003170196983093985352179494307983027450988825600910120543564030974977863899162132476059776754438384391627572643545580369319209196225431286544814698541755070777145799340085079335805692340553440723422240720660311840298054843005473372570545501985718491291187297144563599543324029961695557860778466993661149036454348030242212089311950762937571422795859285782131337352239056929839908645606493216432577881672892510396568045333634100347531034322518580640654549769192315748862968559503241251972816303726336516760654708809339955687700243265399774952842658643832603079561991561271821365468570394380800845758106527076075594764630367180272595404524644224286669867641484481171790702048773332782761803117921921665450898257629141148311811338392862665378432876631527707709398424438706375241097158867710089009065333561288921532849098250707386488719684835307637161916607930620357826492850431583120690443754313141298964307390732201020154746022284698163805145564875668921832074924782355026823962435993690165113616623214180763154267329204634297121759692368023969031621107232478153919172213933389152108381331300279603900010898731412757725145061226023974166977522874060491318880026786319974840981109363011410699011976818993892286658997124914861294588722842112377784159751668590780141893792704424730767612958264528068216501460187758307426025494243508626807811420936829605702698247927520673091222357281014966526333387219529269141861315867926719153843763556058908879644773407387227970482399927369572600402183733123857844563479144357847890330998656245587170526530642661531051221458778693652660375849568497841468987601803925862671621283784300194274607094410903950069599216344875471653033762119579608040801999396341934559455266938855749782308770361842429701597179497850613305032873429273570870567273261834550097543536557164619552506031963246039322036089778087441921081754695574072474691114742225468428313980083611787084951866510532634657709086928738302608071815600419608677195835254245619752762890638524739780851519935474926067750527513119053192279298488791229367611590131263783972061504017654278888816469973370420091646446793182408557144934132015704019344179522906247428493201495825838499076554182983190324491257880563280233170360190361760645880929731425572077758140935832204493678091639788611953691358818332261408549360819589634581935357280330134219378574400110785632682505442537489432728218624296562493195286964813271644053381249562442481918270846188971618001999480458462202782626327564315294485786241560655398770744536546509811127396768659529578470800066747937656871223478543746221252913787866208996956227386494693962308000189384899598544855558093573225978265511065238613533853077663606540361628578732512317665188660486557973054956448174739161476138840016362504839670981710643065107587512978430272109545513419746474848218633045971531266278084181570690195808714788673062409145569752095139531409625859969618034450127063133268834419259456424750199689079029322586379158938076636325981369627084170667715656182420758069868672395204882360525760878331174879496588262263223063314882127255534055795551106488341738341591919213946737572736203842006046382542374027194413542807061802741684368935525336101920184849797262039091477148064015789241610462966727080117472857472510759780630292907310173251747657343925771848404201574767977240182009113741235540738975661968327598906174043419754179883656955360431283651383421214302224135558535202666633252166323404447185331937618501093193206977948922941593246300815197674928890886830677502988825811679082891579531349853195868318336084936785627788602878648981603092926205649813137476210423125554263724234580034280581649968221615466172055485264599352999341382985806064102531485696746462260978735972909627935406403637991634625212060558900457164382234263087866564336442545248816749381548144932168323417084468837686924951205789242653412345601988912739520385669940832712706173923067670947822546885150926234005247415597601159934266151923726760754747433719426649237354073004257120946104965157987424278694406128799335565245950390820649942867953346310700984205701086641058561279518520241928870820173252559779967571499919596918820474811119615338224834141206696255038402859449081330934098353456228100256274078583684661391947342476636112612132755365601565135822321588804371812716448791414024704449331770573508693538602359013227931440194961594626830918473881640289470500813556146332454840399415765785786073342171660784709449186088096716135324181054319237040341939488676970227593215343282570090065915692196553022933436221992523689125051272274980917474853181820407428951093913757169156963610345410771749257931096829979747440247304439929669831540168954561150375010041219754469060163522506917683908559131736369264130987900067777820599735029742573474638492491574220848889612310610398980199533823672054529640010321343585403433555545291216015861652288658237383006986822534676684703893301937276818653150642662611675033834893717721666551187428411723737843182743282690574944193688125146379869390078476878520780719854761666709098340012497516307741343949168160054201684662587798560299346628324454375206387123417542317126527446848479082548092014058621070653579751518132287184955523015204628146219800319437964507436710953902643671818976775447953695326983435847617629057804485113439727649505211297167813717879444078122290396976686230402263109740310919441315156388533959425705341364870380890426106155223926897622889522440204022101527634422992043302454585165420865627740596976703128270910942373491552784536324974498931099593987584904928114278142521939826818838198832698944846982861325140987354552139472343854409653447501185120884473525375958229737822346826796211696096096814007134238155134745456559136386515449230217416103324295959040498228622962068866107260389815831568493008457184268209730224041583164078488325613746131567993132580500876576087949483801501621688763516044974313487787275123661003828098328593474828919157524845611523224555496574356899879966417016946411967813012371293164913490608935932015506992114332254803832700417856858938598591605909887686576076441095307822057524681381019368492714934207237976906253583560099102097414581593327010775027995527878721458285860106909552634653462416299584071299178304601660091755882614011942006289292470555733614495833778523031371211154223568707514415856577192150848851891379740442821973977336300605860198660342097565983191444185580763700820173771063937011282528063044933206282364509291769072398578595388655554124043712169748361565098281227996441616776020239315722127555341491185569462073725528826489130706177698176960523711484504878533320478788428684588527176374238429223153707992984669798129971561548960223452430169415541121120679830478855507508971143568589357425266026644276794230561221390616877958588793319875356017303525369534309296994910224091731848710326084626264740287899627974754596183190328723418817771205542846524941204684485704874013382677145545355550847666303232434836755718652310658462419919833981961140010274473425044523358465610486479344504567161758890716848439723554746549704632647769636430828619276991512067930024501624963717605001933185802377007484731010088793277623088490215751329178463076414124696875304400380807561999489597252677619435525303494676742808943183975682000770578528144588159861982980484550112416377568728094818689774148477711026059076895038421709697737453279066056921182610213739079392361208669569060915239234115244651486581547438969480423065314778165810566808254836390358451542874432295379549418014504021716648928855568020518674972854273239050498236449440646095698847865209535090569748829221701226989775544163504045761895924476136984705187499851766937468743465413166928046419325684535777504217547870402154068486796199408625570466419516075504821122459985350856592014663862823857141782083735137368417549383182007691918708017128796193941078877977729206582739725525119071414027438592544387130036146870217628979214280942296393500250151746507675961112503521683737628267766132252408574972380344991562623797499770827564133690181048575955713592573224902635630428439022206984307589814039698644843236497258220969627374143824537186502594807733748129621607731903842052127038315798741006881433987326767659418160300169441443399226760797945022206963695785672762292458551232663888737271706308413639505755183186975194468610309134939593317739141885254670702378506330465076442301725471980418326697170307683959357672041232380311684846742465639904752457797843459963138179548567264743205310967131327391346457812058668957563886451284922419603064190883371425447826999170806110884485528710599631383343569661071723200646968586842095457088744392559234354928910468364415025750985814140954019124686816728743241039563190747196029791176429209904698033030836694441523133998018734752029873220290966203013091378030999145327737868697374287080522446347726800498318256780427598812630314635917300483863174590132511847847804889984786577541164316618441958518730172141863703412658078564509160912697742798923396000395319859571783649206742648400851768448377854473882914187842660861267935256001599704171167135293213763440438355185261079269596771201281795398978082980123993481274446145672638245651856789357049687211227772808190242796198559201382739889480266592514599482736433148587134084260202356848267312556999207870204386835167187479684589930710046507581107823530915625810861811111182457265578012685184428049525707209624113009149970109671173443176846984323198287947779469309875863873466042214925092657917804595585276433206409421419857080971948185658476278352227970167979652255701770394242823757202228672537211527909268702509581610810687606628144282881293560724925661538864287391230020186305293551788758094822723564688946921541275036719941417603113222025384557708670781543128769147986767518424245984108270381217483881546204533143379337798865545627045815198842933834959061113036210169298332450599421789787445704359942971544102685073516758745910264350583795322363651231002952779878175769080423138181952505055697927010780360146321421759837003662049226303580270103125066788641600904361785814488843026905023406828566161783884391301522990467885281742992264583240220712677546252067811643886059860518164652268739412890338498097642864235879035659640169541707013650442059860653067419221752730345500434941291094163361482831532525055540657299466585307629860285500664900908597704449058065884173501798694776803061038701780899280581058165322511360544057678088608424281979030489686416197094321443217891668817715129918031009915604663930984700874152917435367203699150993018383743151560129404015498827464852540127119701527645260266696303024483056623689378964645923013495158635474985714021762837559702774889189351257765132627678006081501604822853755776143039823584961111408324155434886167943409974686282212496679251889385712050726671783005886652146907000163913176763711257744108360729366612464437680208228842482363497915736667492057230243027841324381117663817940797938139555249667733234453801900624858218784923134858001159880802549926133380717689654276228914767832099185168207597689806418132959599183663026994387274373326995329132699316655436998539393416068819443270725274777427183425671887149456629402187385748545145163655804074627732450727990057760925679433224052943374510326337616753548690521162264973031684109157872122012193949243400227299987440588471714390650153402557457699492542714280849619330127892850602811849246392064905555359646951942113290671626635141812487912281540683340087626828470770553085117209401777018828773433157041132820098517461875732974318831084018080475044138495645647668843852732800786710473820245947095029564016328154724040526115944803678371098804653896088968599585607915347157883719565958382016444716824595589286633658970324831199681853887083130950321409543551361262139911778361224219789911240524182969657725781867500740292115830934957903428864007373553281882591083406014875874991996365991895138264389794644480118890756365737362089291272368383680397892119207829878407679315831713893459995285560042679036656434940293664407004401804366330369468686089597140240039678978827413961022808877436881021916363538151361953057811090039840012293473643032524965698991546494224034033125842996855467061221408470939878196775252351734772304379100989888984302937428951115864764559051317947175602555517716927712893807129044882340138958306928783908351842286758580802203121168333534573107619615938998948775514457368723895865252926324591551822225566357672734841877326046522793223303917352390557801294924771646276756041968660506246843351001978929229944636852050790755646580974001821946457486759922778304960695551676880352349861996543916575260735203139553743884290309185213080814985773370188609968347024854867865674197098432835674323469548884182196722874354171593524464241911584461944966213200320900655700679048662414115342858549060282902107854725894448448695297585594800019398778483933698005852313740437879281286024855730343410485254413060844053109629241372950507588257567346212540060098271303002844796431197956734564878716697392350197199225062270518602134505789344641587095991819124120438709365412452519076463803815262891832693699408645361513137313293364848325352344004541936461011914778821839118746779550721929357468407016468972734717243343113771970416932557672617846510042157529071573714979029081423556636631024032194187633461789401419676496134525049055121561162094831069639314938909315250426459073241561298002440007874127126088004271541228372871859997283697828834650268600735205928972702217863403508748061760730599349518268798706627132685635253415238913873939953196516556940932711931231316105596787275693742581151116602732382267806480282100506407394304799455604807409849949529565453908397888453256427608217939192944100497150991343469493965369737969975278243291423682286062026985892147447167220861117623276479973791633063004069527658522959350350208454460475759891528048570571646005666838941857600174514646697908631904605950044746589855130829390375503021417586631668719907584600779017601480878985770951664328558375224886953684948105367009855989847853018427892298657781223068894264102036417492944067508709552221713425149675502947521772642787060519081436654643211173398948063706734840074942563878467883681340316557453573604440664514345618687307380101004550149307864849172748975106550001747752247346375590995084430213993990865320692294239647698529314163461243351405574035293082340533169745364741628810316147294005437890129713266528440549377751975089298058775842134439927992508064617901915251447976544057604403517248539789940555317722351684401850751253173951155668071538809565757157382323350884850031805754532057314161100275745021480335452313484758919741358680019983508876037394873106899848047122954480841076262550040303164153158130839812094432109267174407278200923591591292265209503932281423308600687767253971369270691912278864651899981841370665700299141235093445477083413969688786764270111020892429594464448101972627832105598436355524737298378275715271130824625636745620461855457409474153842685321265951675834737703243056643865721910205664532895977423569454151132937287402115206119770790811974254055030861663694702553346394477092040539398654930433734727170973416423677538665107588563414477496838443282294915229826954751558474785469150431839657366603670399249970810236095218268926937641678496365997133460615831690343592722445864696230704031335935434499983686730684276202720858199489475107784844963191747325498558301899062786789483188405215501093542747570233696846780679233746864079969127473827374242891402099333844851725347225583261312157628714953974346597437265966856042825388417946604687055764458680688719822922757712013533318502251647968987393494804897451319836228096450848056515725242795512552238301638655407342685323213064315127007252536180510791193370316010108345434950726073799077189096771143464877359096064675533915680341184875703147906146933912422476692905241717229872171942551248805225084571162123330419013131806430678440133600702712876444616072089413892995937868611413121935463844289210341865488557069535906381421839935534964392883631034851170119693889026656015034668911845480289383136126181392542625730660722014696104463985475473764803086159330140293798005183519034972804023940319163467359548365978077886263754658876111089472484695909664796501762341295683139843297428445991105524085139487476085260524070641448936203841814729547610919670939054374601416305816773311045256570067445557938303382777666433049467661244586380025557990847501068889255844853365289403318568755481537346986037577952383609830523031477976320000321591303810919519949374335011177979088218924466452992464126793954558370468941153786509424796572872834141216028617694139927862449317828929618935203897585766161433505694078538430976970872851156339961821051925109897160219523887350196064431080748290361180684058247603985327979825960934107641190985364247217937071626954195072346452051492757539561747078265953926576756671585747210434418053603106655181429990494607569752325279971735188114103367387878947615006090278083712354972796487327820006280560619760193905584132136071914027280907638300894462349895936916915860325494240064246455826640316886310900673399593166166584712848312070170366288058377726549148471576012872404296259863219241576244177575233525254292065895557412969112224020812783477345950468254555015409987034407891772751282057199830375664379765545561243567849191098798641220668505513413353071722519748593449128704502638755379744683654295377573240124483505082295806908739950078979725794933852190184570319073578073142004059004601026172342714470842959497313208404219518366831492780664486744313112104266515425239096440470745830330191379789699679692410789510572195413259439838227752128707753632142268114854451788273656873190876178975523915474997044768950205507537061381190242262625379774822486280547944277877482975110557367374170457121900156641716423431202026260832198589753187975854203014949726785814068015486347799209958034122653905004942407558207076430516754211831203192329053266604359458221542696066978434862985859596037918177232655747195173351974357387114559591672731892240321918153185279645973750691492945671870708822491931706891530419902603018129741168348931493185426018612566763813282912506813375937373192334307837054500227376303999168183332480922005263364593362749911271535129967678813982889266169884594527836540681471845487958010065247201898412235605012398250463477124689138235448543540737424056843888456585730497662221631467223388803487684735606472066255004206415570420859720613009540752183241406783925924246339804890945963156426902905683405453586989828941650054034244217454320077849328781386192508504877899030938594909092716788200749618933402178079705732250152153478456901867036733248012103268258661747367451251321470538826448403596073285172590082469666286832630574731190039498595195166445841447904991550135437446329371104055420461512704795987454066117664521748858138887962476166504238854239009064536415923918032347524971289335017057151790733213808037174028546758438304613859343250713199235303384005000100308914084904978715367212201966287051703213491975900817360810812978438793150041020996392915625104571216944002709394794900759064636482310701364548758039989829667865774777355714475663637959136994975339473765018125070057426045614138378573347778597691541653308449181558179526695931382525366199553723470057661809422878512848368321132618821717749308746942011321753890373459457903451842856440924426888574525232992049851178266836034888941838441709287017137505761642448875707944753452486043678520349030005060872527397890829498153961913805587730827078394905016342859928395181046281425247200778851496889089829134521070967835452311372040437263578888951858787432047319948216060870844399480462557971663894734923164700291493662888786293949213588354222417859485971647660188963688124839396622841181446169556177608697044712181829528746099596795401999823549107958962264991430156510787681339749085058297917724608036659640978514064914139415781862780752103615518627263836769984694756476987620700477918232566609604839967087259216166105014810114827225493632779318699535085699223703194972788173796996442093334341693139914139936764672622744692645603583835643508228740115205092817798841377148532831076501375060002792805792203871288022003638058053677627784060246996038360733407456921947199326619171800101821620777176013668550977998638567035430224124026884089917793503233388298903131667647973319777979508486733962509949841923877764245653050953156861807465121394406916178842021600136426654062050817469773895227683302950653013347735233307912293007775577709797925383866569085379004358182135463215341439874588766415546763456182711263996224533269736047637117646556735687295470624132634927601706243598367872080933347935923876473843539045664778574324452154660626776864088218009914884747863623802449310059485690858918390323959300072210730370936542843566530462258073005218501640873432202094063949347864583624532214839336690912407504773268874270204658917448337673744473477569457780002470869364079687008586276775658662373829570023644050902718475163157826405653693490026086659909287809772496328004467503143496655794652872507258915312343612722377402080182175845413476851315935864584168056407277816855775628124865247750595737448150176937690669259533421508705800859161102546447755866834643935154910625299612839442846976122857802133587407351291110868919757954353144675034314330991463947174904035081233611003885005142018539141989400589741626859238482769985200514218784126626621882919031120041769498842510342902868871160380137566345728903145416495465413702233652003241642483315683130486391014204986749991181252055305857639599844556018350732073219300138431615495657761888802054523264055435425682009040190454777034075896351384917348358752890909615781196772980905307693220817339217389142024367082749300072438089354066384029589486870752055104102946111775741995898009145188563265545544518050745082750323884523852922791506351305798219662669998622418788212325190568614775944885314868542762081024617903233976962857132078293196805531874941596967489626922246399022429656684713280601929125009242801727002925470156977332307424328729764927709581875483740121620855487545762505218950550143548812489391839554432625436787593975916213693570017169202399884711964283224778545414102816249825933925499629858351061685455614484858900761178632214198864033296676218050302475714918436643809536405594478274843995511164954436732767976012650362696537055536800984663037220635164701646450332631540426280728155836749045987308723359553562266573284937678293738549366101579920502750649185375253679068457312098727562587178631791644338961797414831116344332187370467011245086680327488175653292098737270124296682014193571292645259390435224089385889770037760191502441100584419264223017283175252175839661970074388545822746699731422254203789742600209099494708486918242451213031443301267346939409662027768408190736486767346961976347744537979788796259313367991025317193166089227525587882946766921158090664493428569841953746549869368774656447365416337348275671614677543498430361142420195015941507433157194570884584502572840997210988030333093930301631058273983318485756318608199175000901787886941193754138561620059665447719152193574387174057467349345870115208318538027107172284359164431489775796906715863198113155725449096713488470181177276194007300947106106888816142563836748222749180279030986184838814237098697461861756780845459980456049291546064146500957557985428747332952911366066863941617130920074121495544362423056010538807197692265487260887340714646850865539207051690583525436903812402490181240679835698373613590557877283340479247812264882974867027128392689676292410024470245859301323091191431907953845966462711746724131459081729411659708241080419163066197054237960397456113996319049942712219198053824946592026615737784832459369996264919368302455227308436137144847783505983321971162677957261022227796074057345565292673712316960679489231278354460385642324254675988457725542531357770208096947791846088542362454872338029354478354635105674230303751494268847548386374266875331660759050845047089089264496557813471623245513792907879049268474080250225412412784054420488633848886078082065690820491967842368401146564648232136563638164059510899759847003704799836345752328493405335331345043009661129542109262345415970235361084034954910206340405765596187548237529116056226083601333779412211872526292586561312372237379126100440727879929659810954919720795255096981577327033930484216773921281740986442058967052495932838426893892260856821565550418791407078549315245060277644474057624445347556910063358038364570777814094315313445704127670725999733250815489720654727701671592932333577915635355491076816411068144870868998600696727510418445836869487051669014642223566720994902992387415554558777119906242406586270525406553660197062721299531638178421164684599737891540125835895260369569546947733369898821388625819259961881542873496503636191619311217073375956402054945666565232079731514543151764941628128590645027341894126776101363260921317318772700765529708924533039737136627697677800753558769805805675667408623716483847335777572770398612892337168409270378633901809824150334288152113584494978501433900656982436595606335716727033134583748745415495754582649781320422995804844622554382691220379133628297933896400860228389401227979909575690412028478146793215065117746136922545340786597801027261131442553954474890210602166928559216687996108665438443960859997600215305350069769189828108957952411123293315232076997830168465169103723816084774653107693794765107938637291368184173789425036679980301004508868951616049082426227631092064339409860913663904110247980685369758203184476005153141673865955546506796180718307241095369768243888293617499141693467311170857456918283832137337023211514112632316585755124171968997983323518806000608439432061551960522087743500125319723927737640077227378814138948368587882609859367947171362009769540285298932486143618572970164122701283754352233464725610843230068449854940755235630087595470147018995217948743359596596018542898802997529482972216519883424348453516411371219778420904267319519318269248675203682751654950953861235588358059043328958539871741594623431998594952858308270587773137231147663192507221274416309615025043701563267421880654961896797067879505021055549054231762993735574129580871365272795552019132112830393748921371181734188054018305795887341970384105802174431707157682557549162425879198659395481742013428736366361853787958631272616583642285653674285480247528739866460032547182909032597085227490122131882108700874498543715127260248081619509015225354447719099928085451943735139219446311359376703359958795836783202063045141211709408936773456882676433222827788626567236765761640294295915390929175715807767633622393583193665476651317497614436549620518317216844282879822261197380929079309061931759932585556844464502297821137393648565591657208623899137202747382340643415097251057126349038776642756380015276067948744444193790393007830462799074768691354947986816491858131075449132565600622689078954147955846079892663634506439591469185187585906419219511989015844243767306162033397507647409099189692495859792760491860748563245940541499535260593746307863571193126136287958421711592583733474535099649847420398222497916827715466544010993786709309941825762945212065436512444804288480013865556478384434710489518642775163153260194535763983275772593068282843567293187969964583987261597089458409651595585829934462831113915128256922519584065647752915027201124563574154073994347299532941753588800622004019342435830580311528105834824157177728659283831575957612629151235430917974925141211218810971047836226698089037044242261960634169533047821811009344478126099697134356575391186063280110832079054112757330621091350070892247444727691225694395224390569106354378102960853789540795678096583024535293850955001341668721128792739336332341721272668449918756875740639616355962015666661725261657152939428055067332243616649289776432492610952357797369234961522169904035589424853937161699371370811364035834003810541836440158385028578046740953585364999298349105644038259853061794058896942934478644305776950234034286490647040349738131377900236312646234134178163419554665807410506917208427877778455216545217269306702231791504880842425651864628282155858227893080293876611759561104431857996010727783463045758942571604582781875911105958284768768125609590838674375888152716935439374360909784996591627205229455272702613509856459424208044068472406064831903965421914977246250373352706276448290956817104250122955824262406817820183475697586286429889550874100253759763517205788053143059305216785505134035360363951852188650291452725400353649555301739379368263529862219297056793333445334401389115928468231272738824781593955256289368594625466964813558744325552573031429832356341739158336484711196225593406604626735560075473965343751765149439846803814084522624511392358305121255431609030277036696866218605402440166280787127611812811394129296698336630479461867843776951903731796728825850780669555951928565987617459543318423245471030289891952600767880787159393535540516097851975933734614857072249296869767215692695759413485360716251804102956967550701030902746425565068056683084490039249691092992446717814673175420491995740856070734452942622748591205795425840515537936132418898540897051366509555107594831755007594157883967615078098500100581903188391387036843519630213360043435756451645872213826072220632346634024171541564398593738706001156984140879466952814599835368048910770633439014158805683637246377320419076516970271208548164396791602061258305566795135383512497064889983048146962278396948979214515798218605988291801793634362144703841073981488126536661142252480851059549988739597541563652329474798338844955697863567679149446932221117841481750150855919319910550524364140310416224999337315695383555994288861576032207781923547458568300280390948986840380907885053612571013711669720651777684761228993921920071215618259961763448963114367350043823695487812400199237446265926812211294246028262627418354318125050320305756399521726730477042803375096637854466247975718266470376974401474173377750995557205342829571657062131927908563749014643767501262476116075584384720366963096681205613924493899451957880631185325065568495693319420430986695422387689167526749372736099820339047137549741146166309766576581499752741659216030576419390039170235293589864002871543540835336637984665333625373353041017979935367557289602852900507743749066862876366514398857706945448007695972893227965718735281074857267895449211165317923808304364774370259143023576081674465934140494430254925222232444561034117069108828620307746301591119960955995481287028058653576833768473280503850515631607118251182968270499183111112389760548355403874558186108977283537697773645966930933785258392397749519486549134926694094634650976912889517440060753699220991313550527569031080524304231099219864329756705914773226355948711232590196904605354728802175105673805681538275260901109064057751820364476073974618184852706610234244099059381295936580501050037922089514826167188393797516925805454950407063359265488103632499644072893861732769513880878817133049164081792274485644780947328928392892456387120227739842602955976038993723372042171073063347742998349970853363219208411807780445484723073360319291916477027239208147799405857082585439358325437130385091691897041199257262742355286621718680013579103021101852518552160135290732280073196958485344612180512296115697062666079651764846437684700624555654523694458997770381403430203501328982302454830884824146687973451583963722374929153651114859957472755253512678753159989029525947639840711896767502536218384390541007227861622517522355243471202347903905741771912403869445022546886780843377327481947974170626797266688084907840649803666186192092710825560250911083269684371874006038428431084226454989284647810260066985987178946941956452624074556727115378483211676237993051405076382509316558311112145009155726738352224931798883942778651532905169192777013403062015194474720296673333062006920975152745100981537956980111543095792345475920900356761255658759356334218948373385047193615389053561329680463170531873727725856282846433762018269762292777496117216407647054022200484056811587072941343315210823488017906026380645374244391931016583095681183307101534965720197664384216412648259404715385778568164307534846446162654458456995455527577848636188958652113994407399136669946103531574431596211315185955323380652232055759024966506445843419247527243901250976807817312232666602623420766912385908567003655114109379995079702277043773092809741760522376517283606154762164285586835683013687995378029893612651489658062554042354389053922051561274714566361759923514655028240407632088666538698523804656264899551306058375058224550585140980368918011916079821007186672076199715467882107415743418580271564408443199097260764831570548699164812605662316802529043206591117412050549776673424080793609478769255899088994369080266928919324440009840077070787702856809600378484279692854364939978337067041420951437389055627012579715755362792337457312854237596230454399318710067966466538040275691990388410831223775366472894043343004064217919283413227098739675552208235887529237279606752722701541629924062924681105925033523078987182605317958910165990348408542311604805209709551401146280015198970529074043742639616629597194571004468943541999315740941815612415027948158754455516015585992515594462547575777179908440862002493417835294486608016415017066133119225833690311954819095908507825242391807877307174833648876052831568902972462796035904991275143431612233036246100736300795832687230160255051063668133763575929099674782329816807976291359759474492159803117910528933168804374853617087716939806648986141348497100100606249235201245599218480988649415472254549029804045460644002571635346914007665497615004446338752234421830567990708567800945237856471891322807085172712993243592646704013691874644336396889307705552210838670878524902673305026237211840405067665037907448778732911917942313813768658927095439095929232689391147640495153865174320504073694939647111530192426329601170959767108607762791250003290254830823755268323750880938763838429488840176492092392568360350487987605371279623489517716935961791680786236718127932389122114117888522342054679434943382872473823731475497403679143956994070092197734100784199732690178681930119338013967531900716699718351755530635925340591853922107170988587248634375480573958980136855341941725591645506792137315581393822319406601265301679219411548001612279677166214286802025143392091165987809354076843258838197644216497102756417824613872900521447813813795454393626573780467359063988553766945612158208851678391020974831048772130925543251832909696893404950683382987444344076070385654397675527275675757745222411526193307569582495738568166091494720787642923292209671058132545388742143263226709866944181958759635447412861421815744983173287739471513111724556949670108171001007675265075286147018331233992850377000737620585502991676147126543846105579879730425892653172970704246162494094675352840734932604939729663745463888096565856393522928416892371087614541226794980104363462379352126558285955078687373110323773949887580912492989546829790232358655545526709295099205855299032771853059447358883017476430239723484361289586804538046129052762491166320552063234324251257802595523939615364521607106406366591373333663898133993069856409148299591847380413245870709808099944954457896006816739897638438034083648368441273331929789840783032247297979334437282819046353198489226051601591467254690576815421898542194239866979587970030560317819521489416591825325128512964531174520746906689515209502706045317898478144214917678306524508213258853104919628785153687833762111979376458990348073795189922847099178372143726255323968384469450169207997000200525413269339629415909867998967632451655503403281007252248216568381781462959595688514024996519406542583838507132389758835037490031146847846373155470969802053276587256133118339864671138308095569795551247955752464487676901455380843876722838954990421878439267269588884913002685141448030974081641701893069355333412410733419600764471300351877669711142850211308981117731369807018210005538101284009026964166104577466577049145215502526583764174751625011874114786348586281520173956118978596687228752950021210679372731482113486984903645786853517412110948943078251551671690579947232307918974051035848079904591368840416799619783287340439918413635630028525655462292229570352869401042529577921952985645107853678061548971051835734604602026451594239281026509224021415625079699749855860952000007039809520685136814237996979361493828680460806480443846212149516010899548656375530132050617533644227978285337828151103145949270054029825901633010568131666537204963227344925588881174439471852962622880265835136023943385109577496997938193510132003203085215186992260776530236172958019233449632111308850527599889475721960618364065951687006349988337682800768121168844833464201667451436400776880909689167014146667904069476534298752177318149847726894510865167899037577098305837873129387577375379220804054370019849379184319389976438928005306849911575406387010403969312324297487253957392557365489008804732261203827350785008806312667220960239294384942625615924574975445648169648229782419770515022522418902324638981527430108971391097133660997575604162923320838667453527985476838623976282143038377924769547567487386358198460908744391924435856519760923306591060520294149634351870755267912758282314206981757503471118024759031861373975365042531047978660086012806025564639997382968675887778942482695319209311674138529797228237863236938455419487472410760823426718750315793476921972280431651671848960488940343200895481999091951879920146824772630029760553174186247853016859871851279096994857796566086371426644959806911622369595700507202350435841372161704923745571483552460478344303710710200214815638417424320869097927880494421743265318016614078072030819571834211536700058098216647555488551276742068266999064717132231051223779048648909529307852872410647085005796534472326387430371957241814085282856450911816940092356109182821481490964148583845260810048641380035836157452152080048232593154830607959283424506957012041849107615456135742867455871700394459290767585948166740775817691204534561736000760576250364390632810727299196051305414534295773343479212715231594040797348934057862513401852016907217570539830692089453754842545534738037290162547069935631644873874326627821184813498950817575451521151496380763282553918168050023923619391236804189190002517463725645194707577457297807468793355300193287379106023719055534010419152359337106679351138737055682068560307002113140745501006069802871615757617401147757015127004863861697987608089652855509685069807025371722845974340780874027284026730978891878040792947428225998784996610513622315316471835640427843982002570442411206683607748265516557555322290356763966980741581204004880247527380582618743677822753381006325030222316632039357169256899535277020040501457251253936045004088841879338393766413093836734150599182033816974644629135343887452717086520431530624903661388629512385640098150848761074284851855540537109406606956849777256143807284757282774754549481328599878819556620482324366994129164850186038220989037208153577585801798811919699106985783408734787450952599142501444915741054030531088545543846720295145840232879069710056926903972656315543878661632580210767120939926528525037293194456306929098610616648940169637754706725513885656462478906791102656329878106794478726742433836808823219220146118681529028184027192073992836395450360494378421267894995087591157196370204496699947034051046310605000088558717346195623899522346659107119302535928118940329176854902821777672972547693033156470193922929186121920080857878787340064451088117926116539098241158528106283391373713798367802985309117901069737215638195257852981230221276880737226531092324917252461323068055921411486774242068710353835924298937990898422266320609816831989205834723104498143221968087528793605240726192746442674577201809038490711529465674530516500198359798718538822797284200647974881021624807732466823906577231500137039726464944167906279782491059578678554886440199397107635063315165110904401982666204708904822334253840579043468851134341890369532160205058701275724261995083866231125296421009667704411376065192838091250162632352607052049246585090853710754968473953296299643122737307818745205299877257416374065342498787267614362912068928080724141853572451820157376771168898895672901180618225525804649211515625166425410508886072444965137060764326434104062937527905354288484124281595035194732006286509128614779205601407665920797871678982112614840932185889995968184644655373681648284690230260199921456065420809155548904512923038365949571392715513954775406719915572452279911128286965489964232182377682223572000727562358625729054446792476178337712135459958441443268990453256731820825422520241833855149591105261770571168816712477316106093824644180358808253874651069864059964912846938300335750878238651403080983006227682083009813357761262975608850504746336011408370845815797834011033558453892611156259341707708923192317470877680107475742548870827350863542863819655409089211459873704833724788706841082107765838192322163732025493780249791392820727310114172453535574628737462974571909040872831054534286518642512317565981343095377006444936988933316372187741106853326105313423631719515865169731032180894559860629485568903780780576563543896733365720988541712515684121544554717504896061013310888831356696022011837509779155168208782886662856430194660940101392237012851166743803135235205351447899949985906744948902576540558129762012219985512295802120397157560117220250923212568369690916530077862359208329639588089559367463759519035447638098128923722160217426865247253307275717563413996632827983836563867633274092958656323140194711175225517923725002581633662658147380667229907984200555033196653896357551248297341921623713192553340723875111937772570453596183181357996966834951275594435619402230510415690703013151061401533136436222398779461261756574690474774037939538082850022393269817507413615432538505753214155525384789938867235068219430454101404054046219037395726881645781886157829558520458871589148589958910712983004980309379435836872877644345936488826360666705044007703671350066180632259555905867407016194835167446508868601782386889646405116981289129704806920718152265525597466327276106850600940419008018357146005326369665452522133763712551006705407704746978238255271295962541194586531194345988706146996908835705265525819688794352641322348949257978028938770167257033719245911450771088933770265300193206124333231705202195436946201045886708771259666941979477693361409087390745627226254098212266013493162092444591706689115605652848575908709949516682667050015502384182424565467788547252924399727690400349283212502157128746193050317024410361482746873022862140620608751668440461869470082167268455913242467884435274622388449774650553811935298166002890832444419574121855895210060901454321311908966603636136093619475994781920944650269968378183743642318934549758555194917568450267260121375772230993890269453099471345495923660754371078705637441492868308195093258543764222105539741932698379448777453090880548521730447372474503248656656401104253445165901308415613372372945881627136500548491323665509438684870743653988200272578900581784828587550966811589190343506187570197772204170939335986262868172268290671968409660783881930606806049470055175821184496702708973953950592722213639563378805341489920514685967139312723299552508666097548453933500617183654497796746835916174087316326776704978464940164801522363310971458821114540553060070761401725642596602513460665099815626481662950016500807719395385818307638051207883813584305544067418191621536073264157345693766393444836093413373998230210036127319121704008813321609780600024166691482007452362362331071751838665410611356559197173283099675466862424066713960996824527558015878352597834719888153685140492577972999952661001441884228192060106016686701247589534242770766175844473872378531468513456034640351805861084969159647135010464563307604703653653704900580410683644020833774865749678912352319682691450462910352072866392639519943303513326240817394151177565428694665300663540760896688262245742539097963273015524514113208490419955896931655767406710935703236097074292384662320378905603094275329130277178387163707190166582239874371319368858926967907665738047011546918214254810411904933258537369995996249729726650056400382629610458369375744117691212231722660501758325434787481087566539413531050850006632582878749271514042080573457300343442986910627152172573289567306488359406767956927372617708740884056612459738677526265684934111978844217380787471992049511680029015046326125150556544298268439261051899355602780704208958513000635131289661502542806485379781301910869569576279148290069897856284248002591002428841000202360476578994666034130942296811575995913028939525790535911497117591623118141522362053848495088059328322250579258103873636343368853534198414589475752200741751335180720308954944471689918626469250045210053702480180314384019962043727109200652609954638372971194760784157867128170762376235373085194005468587663088840667209518966384457833567237089824832622623251403544059515705105001502104881097791955908394530971631764310643464542684565523923006198402568387107501106038071879938710119016130800343705417155376233063718744007581234369442256043511901104297553611001233015287002975520651118941425048582443965016887086999995003358235981572251290234678941961453780367222294714302907961753936254338070898762309002318714984736166334171402513810147499546782003707796462904683713038443608209003246427482587133030728886319400048325814494920672267508323241090985059398713717515176534506506942199785248225646393556155098728351924148077262036095409723190162677208335513194830598728327425483458525698911451309981124288757009368288238897622637862509518176067090521090451242070984352395101390280661270977256058772986064018194476994230924375002781227893700904432702212691456704338763831957109308290836999295304832192270801499974780617137911951899696330095462957337549019930671618313696887289674321495593938159758369625220547930877993578314618178027485960623941958907996072336142006746096120304696864551998383447791466860728231129806328941801696773627102184332881423656378812294691132729691574897711502443286160483662495537943587919398753204857027926208652652781418848037454202278534977556285315073209246944815453619340068050318073691504557443217250037624792490325491489236155274007063562406436403508805129608243283794459451442134799673913052679220732517673158781716123713953226280699172835070118947185758019065082392528538140462504043733821777498705132924769186036263805211566203311457951557251776285422465934206488768082783945352814608483799732738494901110652540873836750144051492644334484903705143991324329910785961703847097110048018145985017111284188211130530431963979063809526078692151631876161359490366705141300526850088185412994936537087937652054501121937884288142684114824475339276327115928991155849666228150708595245191944786169825809418957907834958590244841185254537260115380223495947400629324312221949857008809448085002066840969531168999883789938942411475291635376291277166724164168621744018537256397780692787202015387869715295812623266799269168199068832239300828851104981590957634182960884663833434391693098793743159377570251340851107722513404917404079034596708544364402287569545713272862665853659770961205213511712909437046681443561986139655072880343343157004513011659917949982124335396363621240858506474010744479083601218277548489198442983729886144594129384772864825261203297200733880809245453622593416439167726923231381248196475763500194919130199070292940853059725323325680903306495312860350812160071220598647988054921988690097457199695246192166608363237825919444929116505903593915950520520697804559689872737881001227228865283175744164110307524491359405993011881043750422833001814067836858929752915992688888253680159144276431519017931588685566862087107115089111891422399388167912243812269414895171718422404296413676120990822962917447644445685534204698399872453152832846873050862232660058885708949354842155495154564494103305030472876706735609793276477246946296457192476698032373168838607895036075929457875187230796744050803467029041557199426032998772860565798343548035277349184160990695104536925706428921533063461240924025076768087135275276292177670755688780574198247898764984713241715676220216859350407115481504198222639102863053349901902147803593605111672884353354299023417141851199690387354096241182804946686858297934261759936416184261737027753990205395957016930174462587593150524426224333084789779423925164359122015361362219095337672993132397799875796247007742325919944206018275259747769655994089739010297065236802030208112565191019129390826370828026644113965213921229418052372651575873485906183551691736510175959841513718457360462113929350191560525350773200246365075052325837586592631977387266719316547625746840863817777416973108054657063644559855120109596671762803266389132328573423261563670097865095806328017383057871129054514977351607595266951805491159987315616593616144048421461465881092107553746056033267362314736177534950011996051408105991197657475683119849002038309926934695789503557043459845792028050670879528472783398206009242056679328029406011875144874101671132659380469445830495482447941623498223028168141373803951947158032215077700749398634103765853516774861630511940214598679378507115670055291670939071119522034810287026175004327369619162416289730608837980034709924586484834969053669637477571931545343177574996745499920847329307810506263087376161671264589871030523510874897562732756112999581614329579735248362751201745030536783014281215191425331443488751305861224133481678215057956853483545532329966892163093790494439423340388762947856541726995614463548196615560391409404823824631635756782515017729797828056573777552279587830042470982806795940566957922227183826802393696737677639220032351149124596051117987380181067311215609774038745925408895007277865200618858989338920532140220009235203300486765537765690771536845064427100005713204813321460137357618412327852187665357266908728245101141995509976852498126093669900714647109190645368464645261655446228901817002446279724064686423606957921406232380912993375432118226893868273100574172677204791518119439844923953035489865530921839545698034761881262419439665651198066521811089703447577659060776627908447731829953200802201107103694487616418118754296215087276729241356875046248114624580812649978298918037153172759274934151537916632841616037924962694822495568749914699807615796133679698122666078809864409407232307296052735727610941695051319259045626225587804428996931977659425372980958371866064031035465303524482911431836516335788806893512563104735220259749195736708226356498721498330952010745481570760852936111140329608028133881342808062943840876026531311392993921770446384462967965287571698123450384565794013686811163813309686548590554050840973272409285192554637781644961573126016871257863494850951586146093439088593876368960056702872669153014272773252827250823087350805548236293323462066275337619994662823351780430252915603061172207241449583678977722316079160494784301887686583716931451458372558494573424938159920775576591204179298672409016454985601846552234909735131005114136083749396556716355937359317348745740898003553202204226896927495179024262308704366490814325093435562678247773862539712074642192263483801344442933622231788945720262909690072343566062057391983218336419689670204952239016551855185054964389768545467639209959157200360194303594818854370487134043300056638337705185886500993557766922465183900258181393044169971439049320433140865491852985913367287880277073191674871642656079847715895411182144117502180913618027429163781967486165154402261693390646594869030056651259396010369828814705980392071558067477795550972325805450221359817800879734533730170928768879775734542389923577577918020786414457480957889912130112530070025675384132469688999069178532331740683067469331517997191728937305496115047087455327349664407056108599933991568360055852420882404706631289770051702467384308915663531726400876547026970557673612748750314283616877616213832846652812078659620173803048021378102725608368522257159039156850454856278707088035159541722621505344415495089683342671443516603157018594554726523989059819566002235374363082778697317682002123629604661011259767585556545446082226292954814872110862764323560356189462533264511979811609630765342387100238033321844076893223020645436922511163584669960479403219432186509811191300284066004021181386210498959480895551427332118656492246073046184580405786115263640490225088844355087467103780215413678120060403925299057538875748555726093281331880265037497124109659642258743733218387684303990796477425253529533643158551007641792180980687982118985069395262732773631719760403903707922768450056202778749915751557309610048493390471092816604123826925424671637238175862922588268925048280091937486580545323109528966153525581228753295950202152458494239304849937893601600149219976527922423705718357340996629486561699507694187202171126378888512242840110977232930539728319751836470518120406184469343227585133229116821247776497810001538016738252269956883781638567892325404962349315619054396287418359058109594932804806485756082352934129412453512839047004892170024241965168740791412036043535080556973411148560923210255147944803706913590322296982871631156122874493665330852340435724051665033984567856279223791575901249774510704710171521095654746337070739229946331395636779574188230864090529693980563462242561320959668399877857255581855509172167176722924698583461348520618950707604881969172362954319622209424321447521513836286254243129872983619259510842850654222063291624366349945580916041093032758321709471553349228068723340949693516535776238427874071054688786986061181969576923042133025755574102287964068879874295812312141857113549043517930454968573249241941951875278267996605868439888649557583845106424057184604993816522982959783707197694462021199989851161051834264161243287461993280826511158735694315272500632008104992550030977454198045699495860362423910619708204262864564409954185715675974094425853917490671061449676531908171258020133577646831161050503353100901326598440840370422009026175077549072487591688193065655840174467657244445340476503617917620607950526822512008154295255774372026675467490470471595668265520009982484759971274652256147064235725576235084866626314068467621833249688167226642950734219013331118663056667603087446691251575148173794407219042928132411497552421968253760488364408852816403902480607411260962423176879974644329845720908328381703688335877739954058578188527468753719744769910790944756266195912430367241675266342401676583055651876597139275458747036771343579190781390678080629832569185689396930765236935218395460182885190032692756053215088558034669735904459917731750369494245942547583557233907016603082214919032899235243757008459330018540808129494890081867117891593966377508580030379125214108601344220315295304284244491022765471836633371179696425092817907313003865040413022065456155942282227591529469585050356752193352710724390494607944566899228920774929555678874741385092907931118867024911419700191856431937613352122941299205324342606662549568107277807475518201412943543204611812101381958503645387721490471194504417502599408016281273450931612076562276725123184856923446937661722635879318823506562240671730011965780987313309630119108349946025662614025264058013989353707316695497122696529823595476040032271815903826852760456764141434076123200802559566861594574721478493906037637800899583277467544247798781947856119348205192707729066855178924846381871856684211089740444316954656378213340800597131856369849450199402652926678158249051612728411811700872967841066673165778962211346133283713474742223977428112873154810265361693394302967692266957761530622188437862486701742142960181971241263135573611090543727073786615007719287059303808711758683694564841385675002879022490114115623545621531249619840956398536943646381463150289443124019783629558213466802140040633227835875917523958338866022901591708638659235459910161857109785081504036141240626549639553636456745643522247896299004907697900707736067664181200802611589502450006032778303365526406609189820118079624348600233010268387447959761683417122837564706990638897273797293001073386826599338347224145005238481110668863207363820749146516198432359137531959963223496679928596447981658769456054567177859429320641915151842807634824904397576730654950065728501005880920437141397855755706493089787934196521536004333148935599402049885061543460476702646958506112923387991609893174126142539956375053303744724476874845476599468840336395459199730938503532379560457589827512173355648093681096330574501212531300181694457210391372720449184349835210219125172079568800004371954790140623152489691786664328500272627851775384738517515385979611911214255970350780314366874418345555789999800789186817080325606565034068526088088027909844574239899734714375032511922238080966166133835876484155950329144342417901790176466206538560112536378772883509192452869448010780784663426665938827870478117646103800900482418221404979522261558995258578120665288812060191299446354354115226151020321106266814471436948352478393645376034322375682000644412344511999001158034896359734710956931178274952666882598494862195864451591617523939584382850044717922342267505507841845323734234415928604913490791194478919512099008470479743325278299294555634326416586230771908576109184648093989754025191262692858697918593966612169408926149205603449269716037709659390704847356492529070576891336054254191895350366335040900871741138173137661192470665212786135291845802660038221715099833477284083494549132770310164966354583370559478365510821584732355830380212716908940620042558445619619646761164807811666328158218452510085960306184555651914211675512400783806268427624558498561382683932440591193959406736609574895406795945690595655939202604695225995667267317652703965321993969650676291967224191000460420167224947670314037083675283679910698326632286934665528916902491968299167787750136181836866564981134388179072191171727377647552697696189360283385754448658418951383715408431122941905689265414107019906017314018828764953235659822534406113492947394199920612427599094393049210367673572294373775982716532714610169030988477433889246745480760447859068627881204675864991180590183794422565299089037024793013292014161485865757012618911639121703955321199021415523917396844524959939194875487451903871883783151063955312640545139158208670329449467489204313987886561552451839312139025370093491561853845416515129763643434626221999556103411576004742449187118235035612815331187453254822080105412686766480962499835321326722900261679630459894227890758550187579157350844853564420892477311101483545270543868916836113173527744174181922566757595652065452018881249535388212126878507470605201790976945625806691954338853477225048725569242707493054053601828728706526438530338547170114436430398551513570690747351119405599645672449586871688161182050768106140929599658855771209725138321976684145068118480465690307074317084186293452449140672670697758630794360122663025655987483096020065146169486214478237231695364667760444911508701498805503855924013120290143293627582761940492418231526006307788489283676508805408680383660092808174850054676811692093839583298271732303600455535790923331968525817664190074567470950049964910057961020190951303337999425471482942524088443853329939000502378009361912291005981561641435545221248492503137114825072050254742959103811299598894450970805791483557260461068518933684773111842508401455416795489762895356284674629185274955673185702061003385241246673189603485451928473151109631618690444890412404223531687631946059247013928447579517958094123704148835162694563517273324050104498091027168765880199289561503408136032193692022218986134570752789748753778461424349359639754454941689792179569517385020510884161334974162472202617000706069180069255329609898594903766583075018860883641295767405760999404190831199020158633147286483834930482977996673514579432046418605068104436480955108537220409651960857919095496628234464561268237413222306998541481528624796964761934949115863397729818213807642714772747541514784272826453177829889979077354501819322786223626875459896629170680089370864408074126378560816793104793657451149998997354487066863635383615564036707605760767402102916229131762040088525779332377118783384832037708068296663614144352112802853722270687353693498766477868929653037592584375854444587136899362329285833830922081481798808073253112270694018581245694289698561154576281550471206265336388767370963066970082831615622725086375612180845099699099795924734700799319165847044360789353958307843473519031586221209357877888209696574953572460425327458023027426617492249430209931217524995720970664256183889584419022819375168811495448568756342449916145079644593051203137266564358676373271344469352799321142309929189624503840278267055759564861197661225979089283840410055366986117625411190337132807281356529993679511133765929610847575471675777819085495764044448611299602832537760586335365042490783002019285866164738969198872332378261597410712088912672255815881066366927940751118875484211726383396230095803533683129812253080409299189441805549382473731283673084089035451688017184906966977329080547272795353133272509704339409931830983531958142250899327106821644186265009849635078808737217880892114556477084108896235852808233454222479231311294812803198921477053064876426664151494393246323634728385743975187036569575211003864265702189637728235599369248626264277962217962331770895135656219598717891674154234205027769912780682451367397862926761737767780614271589152684785054249110695676644644395478600093519740869770270124137572161787384910056970090227257123345517605193246894541714182333031659314917755677594236847859304198086704643723189984588737160999370919606083421165883011856557428120087890194748138069295202301384909086556802781090959275840102571359110099103946228074308128861031954619293044112626698309228917704102599254440678068544315003667548163413860544706072746179217853000600793527365735067906568228404425117817390481552798628008703422607232902444210922977635987065795569978489547047382328315527261125239276642137307412910467528728066106899288376422476897906177255540389870226464446836517725168657086740846207009136493533175517709202457955550456837238943547799302272125806545746995289743768351615168527718100482968597905820941881399797773134793283580259655803891724828816237690153967068573667885516867314544911098722779869971054393314095772345835363362943445945020666889688916537505937213476209136773404005417262489459089494174193408301666347208270071765007968480302838965753376233908712122278942076837366830813497568607075819742828703700496276828084829823993414315370385074973971081578445934478125620372491186619958701895062062662897750686015587966172735057456867054020000582507728753700429652677581182858072572398530443891650130324605622789400762079602810782990838185270571999855698686917497088960775027284185376764085544765602155083806922811191853564164072905314369946398543855581376727760651077869427557206622418647583051115606877624027398135588227219392207655465952964080050254637440500743123997053020030567186143468941292264851785001880254058678178674700427578314074020535322707830556082938088141882752529996411106193563521633425879023744259374924552292925904789400032189610921077395061806575785315023184762628165683193720223357513971810756349957708731734800216471764781254606476719185843974149901272595933267183785336056974422165499939585661997350951061418195824161884714429767779366651957819935595351242312334687155348247937151687166243532757471539121931812513253281767382102758503025810521320758113457387657070233283296970596748506484581116000514087419282257826024061533587735708284926217217564519579114750370384208580729567566939942991996224842740126960557896804140920562086721819837351298032749450526901636014059479572074501213911118647165598498592003315160976167573267825504817798409970048235244710162853572704057510999766790846288431465858710723304289342159833698950088456599573995385573391527286392907421445178872578204166457006770778800138426343644859562841384297848235144559571501138051272212418351845634942734646405452639742425832887945565506059096423162424341488038056499447225553143053604943326101093726937313041001521123825900049708638321190290681989001892895389301385588285773366856717605360174416449344634081005762309239047816897920250524668702530198717288458515486326845860474356969793118700470623847335437839311072212314308945348412570786658605937360942800162535365661457950628188924291556450899643297697856203823994485523096962406363941112300049140034542358839163683245004762884488284608114000961210558743318086813458809547312893162452788841494725704987488470001107593154588699791753973223866098248927722313627061917294967949304078185953204239211089094170553601998550578912512259673740137232833750660421851348225797748195399977702559663579074771221338155810392218140212093203076905988343042256100574954688270073788866964391676802515682847108595932574355806707153259327025121079286304054596995699531491770900575966035557281702173729222950792480281277228842574135879781492245104880646484166488139017383812677233659320226597462762348130163108208056496527659154842544066989145735278517726105652322520187367892047855518578489365686136689185986737187196225132594683258935393759635324260046408161670685442613501562277003207373307366092312768082110560672787552523393219160323629211972060439310124120666438362689398569003827493311983281903366759266751414131360374269207056148948701470711947777904822167644482585980846041325169123752710010658014187901264660208148431657317283545657229276101807270933117080142981054870289225571199597822084155420741365235771371692723294864836958902580863551508522600032931757635372540189575152720521293007751550246150306708561151993531438185418542189146758690433750333278179284645745524779471327192806985603241751214139655415002619034548504974325453020181499321719010202338169997530540566434917012140345324194057812037870195631017885147350125122324959322785324120849545227078488990751837382841690272949259929154080474434078435543467066959686096705042794285064953058514690004321945301817385502584920568897934549160066845478215234062898485368969378061088768500274645502635382108702661377407074023654618603840647210335735250611902520622515375219643588672297263828552052948703644869267565203738015133755604291101272169975913419493585880873817701375472957667749236714950982075261307510982910980738755002104341250546218774168208725737639489861609148634526903471132412468729808502822557134048445241252225414257340499914032949947042089767576016506376361089360111194082036660193916518594978116826518845976976589981822926144080260854650688894921472005022747737540900880758390659905029577846116646358321254825450634534265691751125693985739143713514837646837416679220109059084761747918954962804171544267476191689214711758105645527858625361636300604078707558939915054083516399032673934385240008548804431101469511134226703107468823128501263698577105576898306975087605339118543784978223986227322009541653957956575751980407181984921264252205891910233786540278919156867736208979986070915354794678065649549135554675394084553708045588972450516168332977143816026269860160521082199992198989604172176664475832284964781109165968535412157846103282419545292787487724543666084793489583038049153406567261789162879591394012047985231742915104074979110988249165125839456199396549407438749834175829114910192601122278133613233992787714620331269361308868577806309769106486814951806092080035652560404889816968982477458179108498716873233920596355473742217906787416324095859556910722079670431342102107526847049829730322865636054715924115368239940807388375896438763222467166951498557805701750546022194923655429165227497296428161334228236364638072848574122515613410336903004301141411615315556527135925539337764670657102440455216229689762613939553154091701372338131835962906035195063903165704490800997695437034144891152364115953569876682765608028320785380774425132080778866427576869661801170132218684481530722216477844707441732897437655268032194260853789340583948735202076764006218541787848583400002700141565545639346157491990744471856452674329848348490600168942627154353766891603009100772988472311512848156504242293101138257224360657282959926521215260840797635264562060613895724685667281693787523105617195920966503560378097725368943446640824652209675186277311701752677416352413594000521415308141811979098492612886102891410419767089874104093302009321912421007153626837246994683736051479179601020163924186110327818514197345943097477862769294850961593856831462508676082816071168540707046596366923521261384983694606956271804806590942836110716214762106982217820238157173930762357664018907647953685755554347606997796608156339512816202969449982907107501626333715174841609164992095821863402878748338349306377695306670079310846455465331149706633094892763508406358821097601081894469595165198212594685865425071320218256244780150042821009778961423965156789432292236223786287176708835997685747143550452031066209184653189835087064325739142745524747794542056476296448966755765579375898454101849111600642585051350788309154882013959493729386798710931319806852650009738994580048157570997056461678361032731972214684214512848699672362854473497015879091911380060313286843459085456673303881795119017296563369513132763582574616063306353021198571401959197637905802199935928576158436885178332992205224154336152880620405185531583519105135585536584491219118937891693920057118103952817686482772734406720124676948606161043801272616856688103461384039337761898127577987132113951964990022637679009382954729192205988415424658833481887944070875136251124022390903100319714474054561736266862561709060864194131261660770235337162964156151758087401040489674583608772157757094646756558587511094599290664533056764837567391373228575751855966712741132456257787640152326230481663125941461023266258074066307945543128313255299448935834993501589758579309493376502277086098941048769333184956579444738669131105318705010172049184581901457891251780791477729854788115916796350220255249285306861413801963789309440612861867037939797387955028529719607999881045370007291153673344680216219092423368254134337354492429095553934313825608825109839908477978366233746913755817193034951587578308601517260284898271451777661283942275024433311019692340208470621406133316557888231576865921550731373132725729635672640350790931427855150226342258817176825813400389184855189839587856506385679038695125553115069239521324866214867824800453954992390622432785578652453718538485482759199029481460249555655761959306404481180556810779957960802927306471357235249346340563044172952236431452251513765750610938434275932083562449393716647808855362821026182845185346191877791116264851451490118257522072237725019729438534591290677445713426342766534541012971324365065799418695812254367214490163448467285198656258148582128733381471304110182999430662505711171559034227780583076151244703409986483873493155126956134325100200859791013102498065846574518525903672968548169608822270791502867167422991108099441325080751587984805153375033919141602018197892616933241381418519057660457375817849768824203101309948462272249875497009492718216427019930330866487338881463492818728169298218756424625868820685016958341378103878487000254795870842955355212313559119408438631936475553556933858649916694077563026741306660104465798609302726618184791611716935864042990016495639634750610659072871153802551898644645995020782426638500554384923663003154420353515592751638166866372942874648040632986068634921099286928929691020900558479880204150358335374571540667443195625814965703977137657692756459675760269036610181121566164064470065543418824989997952542875741488205511151865297888811814998958216621268685235806425215222184829728346068455926589544389348258091778510152494141627068295729636773046749320618873549204863736474783278851204947520215254731296419470941150026843070792761892173978838449643577724367846510752116945448829810973726880861231746906567094214118904030660712110246569252435958514900064357929385035240800645420821176053703416078042812671297136410727383485211085503290986081247785412174784690159465670506450952466834393484347933961864004366182756830974349554389837556046243966960402733810400195915460959729800613688981828627072149251930092452419867536963507932086071618811872726120735737640607543582577099121618207168590960085442824430744187272928376162092173868567346556010380100822423888811336065419094503506672120403003247801956230977527742332088622759282494175610305327288535536856012837333416456920387952040736501426851937021907882706761259676480048396557687667839076537742081865476550792264652661520913204641818079544269245776009119627316005510187815359014729348025640569118727468802465762266365972432249286637458014707390589430769802482712569506541458882604697242455350326030270563730662548196257942466492022565444498295461093343518424800176775188646940964798089117822370658722543586201605631529159166849787590911033059719861894052125837886333152877886085679314320163497321011113251053350350114529511952609161686463769353559091540903515885117560837807911822086543425105961452483878978341036127433618088844368821581975727782434025205704136642541502453915504013436705896792782778035591744432225938749015706490634245974200615455722609719596607916433562126371338264825664323362113282627777661804658842765121247544258424617185565190780751171610252844450384635146249997202530121838022897380423410739206272359969285993461539496493497783966041304171587547129073646718161178706048919826092059328560525460264003915173353287841824881799808735621181209962307443127744112844569013278361737740182589000043443048563512175700474682081770068538929498939609666688602488818381115846189547216603482904244841250121221709495663637720868781459386327087719197586717288445559811877982857014901300465387505945176688516547626422060658547537908814137405611992373519980802279532510564614554779416868799097461745413233927339788386798773436116164340879718469085722922823218894431842461202019662571870502998403311843560253083025308859403635322437995495248353807275788168808257979993676066345880688648477653841610801524251859602298639339039894243805329784376746051469853147291357941945635919982773192556326321498240056640361777247780303919570929348465913563398370652455205111415547840548678780168321800382193877021035479274678277242660390544283168613262051545664758433787276621280026825716184140002507980343333739497968043848482958279296600381929279095602279820919338568872693241665233323034079845996899115438567082652400739790777400105998377995976102920160154023554085178291520250174082185062069993847887752817548489609828458013350259328472213000230746811760443630469455417260114206969002800666900306952723034961510031889195678359093071477327352218962233965526757147041473315141881150812720061964226467379406087436419982845765067743557533545222852252235582058187018585498772747504631124147458816556517128916787618570346884220080298467906346187212495161702708940440508224743200679582211249591551847118732206213160746412076505686618698498041046533153634581460938548656846626791907715065350813020333367380320449891150291367531260237902809858429580610331843863639204504295447147761594947877622248071640015347790464334529778335824046645990489482309011210877915934725852524087573227442693167204066612742077914347236635718167725767847928047946564120272678282459163582599906208301036120916959699321559083143096174880512546390426511653720690256322611267596253120200411361543050492656783140103550373209346936315722302480441653978538457084806384756219604894290579278096646142509162552610401432025686734007136759405549195664582459087695889148149082895179712334581561574549437901836825977245961204397688004460549050147103932034354190669307730877356382959552573806536000564537216628956698011994754624348113809521747923207344281515422328679896937414244434107297698904990050816102837860160673732397695266461373019331041100431147666671201129357419417224905013764838063056991823863930055385964493029377852450861419512077504260616344989211168875923582516877723567088728004223004342209509938544932999282539971971465239330329465666280968173952033401719550664807418706490407798357982258032541788472772995237378201773675405482249730501219338724839230089718535236707598698742103768327022935508250497264607610943790223299167530560493371372910421425017045473043661899295917473746555790588620518902371983875669924409876924671244993155622701818265206200459171586098211757033045240191343539043010220459789173136405075769856018599567157647602546143355762142168859151953709997709193842700972340043526443217921964004067408553599751332962801700218071121140170889556261400639503657950269450303377697530085973002960070897442666686862646969748908330290434342834647061960866456317056335655873760799720079174771328856102147180570381699789898293611399610825500774736101961447736155432953246076712749229027666074041607265434559448812277020574113705192982974334453772593026735784478664400745714322724024142321187431651208761698572432911207653772981715807183876511288455345963928244251728990223036511061077642706809016105312693293308388303036650923684377790653975540204568490222338055521577253078142755405776057140811054591027589975068027526136359243286666891611766212518736512018811612343545516030058886188906311993092270372820085404052853222030547790341237175942924605003187192510779052717881641598751851585011049390763180090222072629304103063177366390118649032457676870990645140197270177159455526447735638915482258040996976796108763784488713548645315453053249249304275762748720120592663006166813801004449636274684454465988542719291628617839630678257467542135778161314384677949611687271721446832867290192305490175525208295523321647240075028295806705113144055729390589779976444405700666521619166470513828534425934396630061443220237656770190934605934381381381540426174401853312254030185245114515199175204650553353569125021523190940004897625611428569511634589652052616939602463793891398330863875800999608464924523281590830602513827105485960394710684077226445641146814221355964340961158527580813904812520605540426865505228095392688060261941974210708631991623873891362508999488851593809903316463116929930688867726066906185408554103005564503705562708436163956278639500210392280406935920904110031907103917556682603599137910081055650537681073160030711354029315442179748537650626973604721208104961894216088520101444263146297840538023461563527871778680065250208675565667100449378007440813818010303483979322153089457897372932959804859907803746698015091898576181194912634268108882437636233464586799059976746841737840103918497470704061017932801352327172316194970484087864880962713364165530461193812813122264987880386179771709898775753662981677134275873957086140175025944215738070910774968301251242084895393654744262202151479605669172883391034169721311236984099148847342439185171416434339913480754820659532412767711839794394060188913304371245512961621403355547468782575224247031662094817720805584152783798361641871722356017830034130660761795649461480585966488981108904148569261644964947933160193969451155611626907803229860594201599802602830041283775041482973827156291092876889967327235723376390629909222784453487783036062304254812871015779507908862184667609498353739437555354122082818981392261231848835589603064364979691329937147902333708008545914454220982998515721240732211081222964672490457075581658894071566523527723743864676624388363738031143998523323367346239148606084273278545586918359796442860237510522326951464882080503633142598338687354752289745914626822510744857442672537151289401221536966998583159164232213069569672637483869669179891167427573831989830017532895006740745204342475148054565770791691281955457886073913433709701795286021022277484472555906859527247250429231461279003174858637360837375412543834657911810309558818632595217581478498062553478707908829317028438527878927335636464123490765679315071086482350378824882124551828171340544549517475319875577510681300103313786980312423273023073408630373459171521694935473998899349477266395870749429126288311613841727729602499827563017899338585904608968388442206314683046876930214486989058893966155503415019466956817202182558190400131061341073309114031581251657357447410569090817554872895047800743042450082521104545867509744111225915724107725501833676755845047454315320662470660085117787457556003200817202119973880495347317820636008909727885221628984391156837185028049143128943253749712625115381683480076975369931565421420547142568157903875188442789548596546201044172555702659020854745611942446712357380019636863746356670186188327270737224750969451631367866390122252474660645755320375256850908879362466575546521852521025295475603219696148009159884403812017968056197035499420027791534747885055252826815653903553096414153936014140832270204317494791262472741573314688603606503152528556166396822735195083276954720910913710277251678163748320351050014774134992987104051721672301317966858133824721422903304787389543560861888398029119261984512812574614243264339718587800019257729856962044682917645653944964873532632533761151761460815998280241123406053976192048899928847417863508449211309627999855205896807009263663336842027345122139656243162911277301384498472766119903394888077653876290442673621631001455663541201130718885373228055735561435714556920584426091811398328638656294708470704843534918908979991887573608320702993108390781695008458896964841687155525426323399919218468593006475091657270937865931826453068986182868771785619974695959619803391768798397393099897706206373931883144070476384035004162163006455979031900688848352228001634910828437234052960298556655709293800569143056967128714230163052273971451440300352990495729660863052815279574213761619584427941194960572706649693280491060718497423698343142461502325909492222128332294906560081669933536744619028592280308681336679237590459453888908905209957018481356368003104996351519825150981883452289757144816476773135922145757107746740132048595227718932825545206442539510000344104265129598942651662494408887774952860123707116283178635197654690395849436810297423641779305518406654024453130012807884634090629418444277685167692901864927435126151306598408599151800732023731493729659063344136819358654756596358297888760293654248388321366969274391413568139112318189360521624612888769550359573341901442048824772569878842357398063935859372954480264987581390861499978117701041445140324910232956516929630571253445760018258153477258095323090256046821096780203090040299498131149123551311606826283180227739388652223985586262401099710345649841703181014475354714680352713447951458879855575884221781862429629046056215577402366071787728338578881843666964129893177014337781129024718028597908701583599385793972239023224130349611804182303986132899046568994041275134518592702771802070563192102110012220477764630945879934884652761506164826969523146667474735776469742208326690886934525183350864335725440578611980148692093348039193681057978705514218413251100641147949514679286704625805323506860917658906190389990640472539083430286816991682723765880857428965553634262128312659109045476350878978084432606055093684006940617525918104260642995955471249026050293228103735715863629178345487817145246898510527741669834096333285982852269537894562470370685439229744357125318397482694442501309815165526357652455653866920546896964984663226582481450034912433404883876543628106804766515739068600526384007179956678100355606880758266246965187403803800295230597950456454797687182312692443478621163784502045863617246045180260830861911909413298417150554209232397311732150189546496397812144866041623567238424684565253511045195038937431670019632741873219888915724346872722093031971895627153386467271834529390148891578784327643588214838941359066932782048057638274274901020202933992236006736727277079650613964565741186001577282539782659790907839687471322231117370499449600076660303456024380336454084731771702760813712213929113399676183688247917353995972846231986080819959254077066590705894375041079774353459714124006090938447766384175100278138808238727313031840841224150036642919695137063441737658164331693016430995245856010643957932653524886675956639835275905739600108148612194420555134043416016124371136285158562728776653271941382217110345658693784155619058014691413483299053305995865727206244645941191911039168538009342755361444484662980909905265914082833665356726164646617988795030344932544240527714542947401789834716124703920372091836951523512189741874890847813075851218110978359844211410367287676584860580316924468959115212646873616186622742997865949325523351259035352183963564114090019717971320878247251528848577577990651264339521966916497967884795859895533083299807937035842264616607622763725376516458920396692183466346098812703928305430172623376765405439035872117935380402709241934272065028636548385414266283175119158676678820079406297822458175307720103918437559085364845397697964897433980239063100089956120109967246205714422970387680547938216389529137185593261029285663099682774012473591216448444472515666938446103462162886978152337769635840432108230993473220450906612960524522748755882334559381667965541166492968388982006670088654533152290319715521001556883911790187818669218216074459001914705769127177711467127721207955653432892298746122534741279884594999990871760425752028953360289435105069432069284477664782600932420871296882167118735071423923304886467960553707886107254390550117560898846435563662910628595900150564646734130096976051268441159879397671132238937224849355549933232827207583339301066258352727652712072510764635489187887674400783500120825690298736560577181018673065430672900259759566442396173472046275114475526009074623924105901473089680271160271809216458823493242140401455488408435105924236727604585280835356582441057934355130919819273038315919699962699193454787054923450118157744750888681173091963490190201496881884167568928331848970800329090433521979427331684430793148951012851318447401913223387388486912630968277214902879686281497394683387942832719374105739333961819234804617377998309741147530440586559337883153706057488018293690896584129932924755969494635961172063773949802392126255967448552283841169601719891837926403678196482415652452263645267103203996026922070867446277484718457630399208241093505524541811580404531317191431185914587122127182996631568936858280357828045956006282568776519988033666814744702346925717179646422182265847455383561176940002889589548302941204012241037857161938637542281716043102747706099256640039940689925578416330856554404336367161919057900169556698578018089045528093015220305636141882940056695686639639659442631071816071244195461658186067077529119019438435426253547801262679425650400532805467669118189746963449743363463856563100401080065148627070689808596583325155610112672839032583852794895435535063755512611627351300508958246199315933250332850297096308330200629792502555570129515545718239309768096675027390053288498881481836035313836809183245149416592519259181600820469376486179114255136993036091562219521140270541937691436769990554550870924384387882683631720022615976697206535839318866822977314239970370692692848529225385829500837666030902639822369875617348949132483704386969636509940842818131938833883456178429688728673199854062164858505444693065678340534954057499921829721591858544805317333650693186387787832768801661975130507283840830165235217365373600622654813807341853644195440166852289004603186950517782037628483555388398613117925386806003018070906376060953722029229340695934940265065067890414543546171554283473722203875722430014302358804981653906669862115698833769360637650475425270198646683151548826989050252522312683132243435833662499426717134011258931547118744322627044783929801941483982010032111635238950871706168013042565373539568988943559395183027891171024416830861235698325749798347746954899045328343385514014305988093863514479178010080950964941919459168117269709273864756700213621598108831913892452215684828653745157970296734277314411302851884560290860611501212747582737221098280509180531819471977377281110654279596021387959596324838864023516594483985287316168992644257585080420889138192366071267046800731106598280244452039924885643821495146453964425529494069959896473896395940307721515733545843752572769036502228311632768432993311714337060131322557230365350586785671312379897135517541442608182819559919345520126681135318548908164465898064061504299456893561242548770589536122214644027612920137217637662647300877650221003072384486819317119637958004845295648469882449468347572133194239118767284042795677390635586532481593947841175997393111832380525110648724149601756071132281430176526918609312775636598177584615062992561793522826230937946755217256711600708192213283929902195015450574892289000147155230066591057517933282159279892194071774093091506223883696481889993322667453252395656649452230035566863852637517052972820524691106047989494284806562650240169236777798708124284942442160247605064480530291857452547985025174605464979172730585489442604133047600652807980278646132690525910093201036616524257519781738379621559133364358136526127047197033564302627865405180000654423191578259680825997657077246325560122201028277163540670753024275996621337952742198509046098632773054558779480388107411367790224626204612322719704785645227601939457493782769922783051910221960507385979258396248199256686512289152446764145481889466853468682496817094516828879028481020106630229453710462183762139363984038043527280285492087551150453732406828407379734892494467953643195299427523963727395877610629480105484757301333551761144874599127656458461205252286149442533710289022475418018852971095126312923431845737813082439359196090704157159583721829960040464246940395409339038221428178451605395865676225255752817629527169926302612803359254840234416151041275344292970133425730964993572747247148065638742877515962983352679046508875931336971004006605895187532984884613560209351091901348258989989413000606812300936693198536003929606084219451534015924209364293093554248936403111806283053027108892878881991804681217823265314238496771309427614546753293081005446614519535950054462797121010598797224793269989176029849334611461181400396301587777789333944991361921080035097198464349851121529197918067365157707406878465630543951363047919628051648400346685246030909973001590694932703890341650753085500775964435988689350211297366441820632955193986546245154466557764438860983556204227154840573130707336543358318666863399621586639624988886783943414599571912855696248100983336925331601174084504553134027614037036049507869960385176884501105905599410464872522699008164623151139691811072166537750436108479248910560935847280359769133423626409633397471292500659836630896710793173460254143832773890509041342820363811670053697542402500155419947731356468308695167004490937408626074055292309868968451228427834222970581042375312724016837475202140141844587352208468381487494646936730593624791866280428331312374950189496366617122295496836639364222109916401333085945020526296661850358318539960116139889302789153304055658713212936602371397638395279750656081684911151361320824793107602538137130001338857595583287114103642272181880342918229713304714179881009989132690119652807184903526787453885744749460514798044413765679505178587899621214292074707655355376445807496715100066638511546706260650635385662743879463810480750241451963126186933299523702815296171103514622790933213855843884853643535010885126961872335410259371447401483546757091899831725956282461930042233254254993801401457674093905017528617369658390099987698912149500441469178936042085051678909843731411003155698398322513680662275648146590531007429033407089855551039990721124004891988221871131082436522115223285277810482935093536867380008975527809555140104792109794254188836946348400780620546184371001544687022434695973996545930494272686851342396686477117182400408899325165680587057888222114848746935994694402429601698318734977097345566090584775497235710454622951259301577907750069158235909468886825323981465166959790246644220497584004985770184362935334981268530374226773942170537028208302657094238013401410559994139243861313787963411400619119197860821983565174985152109565083279437272044304345368892691127867466225730826376460946812653312462694721942768271289282560329047489289528671187625901952683079478673802289642037998435313227360440484248629963724679823566290623366507984995382577501262461789681711478195692449716273902214429736377405866386115831004224250581766151081201867869302008650995100195832685248772556288222724883662091108523823314727128207405038835828892451374057128874841848618199540708670171962161636583433840962380301408477267110545124437400000126011824903175757377882491581061569882139856871680258653224294898612159440915851847266376629676319676629751617964969094537417495668061146236463820555491401842509478117619097097591259154209430294920513722202297047957781432717596712333842689642987160531705701124209956080023612168680885544793480585343684092277078612104753986031734861397898750210403923664837454688307285736766461844015320474274143793477278217083762828507282779708679421463302663313533169785030569860286429769538771842082560669538988441551989627326028061855702380592914865646112809591904032964957903295740019904653144764464042488101082931876569523187475234483072953813546831786064519207432906712791921351835182863937644089081364438218374239192849585738953664886968434900490345607584964372463237783145097478411501573577024619225242118634280961119697377089418680781001609690161825229812304236458389459056292845269675758593871547378649059870043647576976635460381181862656583059981110462062188591504333244180648500625425714980615939105646414148035318773299289699510861106474650872230278007788043310319735154532360340017006915188171862617365240734877508776248118154818545129463918932058751328867011711000759655454151689984582290932189180986203563073995873886657462440835563595362716843878319973831580878970527730030901505150891788955199274752819951737680637107014745086878550570961821997467300902046047858105269413993521504976654605129201835503682327030137395457098855160081081113932622797134927911493532380955977840621346974758594347849684449159892391918336964415683998845178796413494985802404032075857158071377934418800326307608614792119074956491250228713683166189221693306658677667674657519863765789511571023034222999767840422158451007499968041384836672853344138104440647333302402044502494211052929446039689045092448168584134199854819792459378431134844698683541036578592448434406120645282889997313510197917702347485581389359518081920461009538174270231857034757788945702364716703798350563349729325255754561029517539293657784448870468897201464242752951369764399201849211266456767260545681900101660588909111977604377355334520127045481273029175508357248098829483974106180642281224188948923102129878419661883676427806936550981736690615865507543951213487849673737746399123203204178258704433585897187855102520395649012998134580498785700903783059750218642529091694694792088460471277331954301609958312494909304052652544483196826744181010607393375053766621857345656089636124791402271279598765226195016759047197253183953906463719548333397606533100173228298222727294237056705783104302565198538601107924140354154129241137554155077186127245538858060650684681999213102630618055239064552153092103683680883764590531418490692431054432722076928743931406419273234608076453198223574701162867273901472813776341749058238799812925364340926137922674595566409239860110688337910017276425386213687970045139960989506181906551843300188815798481478825058182058188504169175936872293243204035275809295398195612004354714218328716997177467231822366085466842265963042815811028863055466063638777894965069676404086605346251909112116548805110371039523489702845856630433711053193293825991904978117860605547413953576359567183601600038484648062532035057999277848405627434118999201500296271774476389504021109188855742629932322637663680082147943245210203384575702388412433292827065027097734196941103138124864759775860558485901639830699647774667471435250888507105351836757418967915294199812407108331445840592880245710578303101572165598481298210046402849906083097335966211889178219780837422985097466902024150027499122135191394578656148314982636695212379874448232361388991447754104316462817395111467105534375904333955214241929915675081325937534297345971158558270773518990676631696533749514567941774230872171087394521621445453885872657725851007525189145308213760599578450912920345309116900734808487947518321801575449020437073272816551032844413971405605561056602009208784066077975870015258646160240373013737686439530827073864800146248468136104255985415946547075408872690365971246568100021846449422310020284478001951100577083521941154063393780434670404494828924321496053014234321304287689749757989320455031138425738929181562953312228749445321364876690939123795492827038524552297160369559356805243837564927029127751141886083253067964167618034719390497830189773283857369256676125185925173712625742090230427766732130856861040693256012842811700654351528647751170439501867618442808797761304018032936998274760935121472020173644593630581593652202361983491337949804331184559166288672429715489276345162153679163140922669936979486107754892529148654433488544447982446167796550948701430485702268226594593382281807254595311296230199344538453545801011803211209699184793910444783846365794741382815977324074923402557659536647712512239646761320196370193346067383731065907548718985874525356442424646622342578700647358639171112857289046349818353401365230286201024285462520744022072265762301897416149783790300035241366543421513741925035733116545321660420803817670062189372903311618682402449641934763895523969162386261507116347238792943888511025352735870225163878368493615078989643736651051474221736986979946522589766052295677035882998949906198806514202489836448144568523876790321743096474212412040521888927239089680052657685016855421509120250059044903824355903133322234587172181648490734796472473961064946975714491052538042449461908975323169876086667588423054623328282689082539689505325527451380126577747445034151774918887294796239287137410056207026787445277925501170620276134836994749710759056516913235080809141712676152030425576323221527244911600313701680121023392337724740514659996894654232104110868758171253509400292833520222804282185432034862345640104904403911456760114287456774318244782063709964908013413097029602938614372722014924860215917355458088787318448775659920663745161319364986475670092543324842078998544298949472638569826058396183231892431728353670715028271735055012318872232313811138543859567168333701542265125443519541704404698242187550533999432342600420598297864052960933678320280766214336005551840749552492780449624010644924964638496522222501454774319367528991158211423145754093248192507048136017019827463312228723008766212122756137043576451225830336923805264574391821541020398607193594051818271259487604652907729305243760425759531069511130858790292301025390062721375049333196107070287734513850172514996468832814106271227471971014138629868767883681557488676679356659679717627725788286108839963099192630091785701305571891509231879096920575581452661547026423263185605456047674278400652781306416720822216861867733793887563181716556540810934904156671939839578730574794588777259898977350545613243729744361927021671680137948946826970417454927617133361816362456408636431904695851212959163714411336514985937403285163550106772173709178317844261404631249430332514898851801871248182813551966348562484393403668368995289956286417606396127413873081522306509020532025744998835441237652200778934677480238046112923549104532486293218215886191928277714361638914372661184375533748526560496942629073676980960836091332707479107886155176020221005897719486834307326895200018842837358064758563722193676857672076261061435116431112755688643566824744698136099207269789180243513754611371513454296328104544023426542230648441210727708626772665084316910764987046200004947541062282679547904597415795842211171033055826996894335824229354553178224173469080344888007256566740807874480928406601540145438184510744255521197256676224069911073183322996063786515860070070560846050542187570521425562818622704093048656041376390923677701235882168956179189294279698578525902783159652201686111394071705707184229767268951209058831372499821594016034102397501943545607527628507611167519880277064800629636764346524908771604690277316663448081733248032036343377224984164879296646172697327369253396666647013857511750889293710388556389137815786144302247113770554002810622338971579082305440338117068181407379025900551227754470185463469956424616490521823458114224188417931555599763901748921530477747227507711006835155271107252003309779287213401777521409724733613986480471413296572448805027174810962984110363332996142521592894551193646225032053075475157722358702076735346586102124785828346682586917549565695249105697006025060650440854057884442767852654792884583998128716105049625478939621248848690481282466320938569588022228544463021219295065629214981362961396904778733111335460356413146784595349880846822044979644156685080955002511142338036519867705492020168475197369241595081346170129657534295276980439136827406471965901502285485125388466960891151424225684004254126161417501000724262370308983478099523600129370006723026102787468526326626211178369434772465495215641291356334547115296359876285826517103862890067195395122963823599892696419039196978778495117564985938915893748068587765297292373180661970291694099241076823125127765421902163585968592820823638008914175699219844108536350949704847231028309418432614349920701421401225080141050048696003506553166776470997592389346673645987949644062439109910045517910122830188810305224153120973670316133638150537336433101012384373017071783729167264639508413289886482676539008156516078680680145193145045379930676780222298846698719369962913830527696000578655520771542067491614468049949903667626418286542123933904059099876537461316374825104564963532763847025546311717582059507327554242810707731987256399342755396728604659736338790462264047473183354213666037842640424464579170943455654611821921783975727944781763025501796613816034945189417877521376820008836701673109595713291016486182644869688172618144494887785871516311213506126591988212620995149605097710059717842549790858038732745112774591641315327155028933032885377047356355390467646760640486826867324437448850932576573720757626193489759565229873094745209240791977043141663620276521189286632969062408768813918798533309424079973950499764328102696501612072494531368672333261676866580225411454000803216490788656430737225268039665141229546096536397032904332627585012397601612910386649748755820873754968096253255848136721426205144710819696982606889236283174475133584660195228666203419362749395716058640483944801620682295378111011216410618227805506209866762614844149576974071123123514438548017959335002214882949850386018987630998828802253821870211342018900197660991900454842183482760412904187991777684472983842775195016013439991293235780354443057996476527687718112087719954510768160390436743241160614634963011758938949312487175330895736002558057395155464924710164173382645805819736555346764790523200557123575551472644793739516680832362623235318990287925452833962243947792783047827913698188994274501626846174903537838365472492298331057567292804920816658053458499157494753324232020065538459418655087697982723257363292326088538245564762975127278519798429708572645478967748498215368720311423494395269302022961374044389436908011081162694974483265778109158345573006808424880290070921175123918322702167255708766012723187459427371854209954653885449129493829757413941753110645924377854326033447536998531259595649373217765912298752672558225062066708187927181557726724473799773880625566642336277492040871464156371139765290784336207158275119719163158298071903747599352414728420640269216677138152653664242778365211252289813806910830703685469071935561230812528352821519569203242137368165701460370032669682720406374007058995295506197498775694081245899750743467038102994703264389371827350481137564215196722659294297017154444563333667918967799433819548212532698597803095224443381831071700485575577522452960129603990348551320443436061717992907139834615585761461911344232889380833705587550678450004656810316891341753762926107790870935813914962608304787343357721705367455782781288623260470807181365660716319680064498275666599447786971409419636552238509726347569130652215654558745407465488506931951932110963764910727345957711860820942844707741165815282728891301930876728197177981568520439850770543255349234148030694587158321685950162326928132407701274265210491755598588721122732025309162013364438192407437729701744436614341138053121259361594274604002529985431780473761852528424402822825045318845994068443046614506737877609267541353517838255292275454286891897866600418061596428803159585469710522460333337638536488394872964554698536652817952153697964536230753055985023966189495563824170498299969820030056137706036511715676102617563813960645896073267238562923532972259081977682690727615264911208754079198691309287191740991634778019283928544297963437773993238810027956092790781018076817384823828927253301388551610635933127379922253302523154506993725874302036552000474651474274031974239167479387222643778263519568044481743739145330764260783025498392074823177169028257474371151181125485504423851138766817423818842820672137475348435502805636339510472201928165773477158232571458381750053840861903605353824001260763770675291214420832795656243930936082180400659812486377529503906760534031470240586853685584675265613276914930948195549939107626833037830524253909209511935637869652330620604746425977033590150652298930370860751179341224613640891865255879598310196434615953804249238685818213910776812134915152971529966503957484156794455987695295973165875002534325169991169861977147449122485726483579000056282302061280342199519515991103689015877544160472280941551915842001510613478831375607686423433977642940171137961026990633167441211844467478009799895367921138094756318557063741085176407407130574745142790185125284599720167042412801089458737543034561339473220633021271339089201162000276343999849237564460629424155522336573120186255563706736189302311710310471011389458743000639291591404032409783782094335512405881732995530820514540031322072123287410859020854789252140517601856140119219143265274413750330254849322006914031103805571085064134930846635039947584513607753950652501005170031532221613851601244292004056991330967854522608790846111057811652951008674015071885839913102509078832021602654427164760944773612231071055247227974592862990049453117414999316767572342813858188381312458557079246957323924701395203842848727677460881578289413998769581707432825759530708739814693850919176688472644011599583818082322250272937625676919669730693184651453283322204275027605510915742036546629899108257244162835034829522710046582627004824656529875758724941525919650824999140047019164524116067064738989462657272166359057879164115825337118798585628439331885380770000401586335327552189817252402942564394181516811872260498770817000461055966964804741807798364541445099528993365094426207763981139158625855625386893357146008535213251175166521702634756631083086124210243393965624610376688774414285031511908005121581821658562416937284990811297979164291791760569494663166760523329294194476545076390666104744250843975347443941078628661767588028465878018845248515941667894351506450937612127035204165961614809527541253759953837305524272205934805147964714040622938101273545486475241480457906593177294862269164691158472934898944216875351963531743302228597539750017216499492129981438986630196274855045154372606051955971792054463664375178371884298906164062822572976643146260180493656577216465783427977915185895544033455777779416708221607741882216060753362124576673977223943738594640776236184967168983516438058850708881010420538718382039605788039721592034659635625836659569298510256805372318088805480091338807049845630663992109743005657015716255002843412607380434716993950590832267098581725542001799064369866643442631561675585018447547323766931653351958141444112900455751111826151618394040798127627275596272475459657086323627322038757381785563720078218489318364325371081604469788964789243005495680582827877116018931064761858025500656126484851132943900277853511400614290602668400455650699885392855135318241072420227956911157492103599952104364658909308816951436419057954017637026754142687363437964083471786063825525196734816570750836378855505928227418581594704417480593715262157486504349273066216237007651147765031255819340268166003192052835871880543610187265750064175676426768732499769794835988984847387467461237624174153093648460124812934151371461463368819994346773331214080555680760817216045487474937579843929641246798260587070371690619714157039659400655510893577982615770369801540616207694531718906432616359918066570262022202369694080101022413226653995984234494081901281283745623093027116740230332245993514726141604645114667521312910416010076159423272154752442157378276003581108126730462533113306112696102642148069675334801283305491671770635113443613096076195494453192012803548227839196143367624108861669118890134081169606932858965096699390251777824299884282738251771032218490414733965036893540297423708682936471841994619638892011406666333012540693332324051203523508419009292284334842778014314463020140622715535185623099769299151861878283122890033222864098757919183421541080010541980951468770028978235511703286617616609267102455981309653669070680336505082624574403893957798399439985877068517257160712309247099354184892555431363818482837010560462703318646188123037926771628022106819963159380920328074806863632561649522728979859467299838661420815535073977210749834153330941948274966874802508510575658049486750268470314876719586206496142069838910304412651463941953386961354792255789680586363084430714675831171465346091632389925502259715647751973405844716816942659394411105356086400333126228588790349736692527687272259422663307480379997118143524739682964375402778442090206270245068342281755551486126528326939311111472974090815002371041669983430297345887481448029026076985664405749450994870759789296040100774733021120125969031310989255028905837027387126573059686061996498416714292598109465749712284921720027296357181638087625894286185529510520246835163428300825148856070911017418558108897943887062211984634986822454501881939719063251059191296004769554200513691871623775380548282959670745515052223162631721299413169669609973841994918292386505766965047374819824206295360804784003105619762618680440665692976022552169804047986506860257265451428634233760039390563495843397597232044910656738981112460817078871126420208624815921574482897183461524795952930981275996836233010078703570953327784780237030376836797218410988029054397570869199019814035623700551908533224586486440835894974290266980721066662375134714059167145171304765495843944876680360676918919690412692313385951682414096825600646073577480465989638268484322018344162335440946194832267975440254235480598357835980645720572471318034817051541509370729453596564095034119163904791757287490622245949223085364993158407293240501665457835633763603180154951030203098711940540995306576122093915965657590076320616262814187727281894438962074934233799111308313933482689157859096817468822537884522695747480047937616424492183964003534772254529638559687343273136012173682530314614180858488914161888353137934580984370068818811248185541001457449405180782898266239390344678499936399474337203219234066749630891332139941516735078994479379938084243209521335740268451475908397912805049412632073021405668542885054828311150123017969583206925864291820161802031277579463242268862645841887054759597247919940714944275237683656743076930844223913881024558360339928753874657164988714950576495982671470122060308857360206576897017513730387931882445941403337485780750601144069204395251771615182641588933656350168146933990122245541312279777602565765585774873423683265834712824342588048139698500473668706134721896879675713440537074816607631686164382913513305350538003584813910281164758874779044881926767434490934256958063253855254253772658560478331488201273365974639336836904004291746119050903662230381431062294718099886751261869554691903343505189603571689640939630037766860303176449775747111570220437399064727737979867914696693514834448280062714607376957390688604359420851260385624160674510259849727358590704808307853658895472089212309281101339059194939523885785308241931498899226113322075785900490979297793847119983884961854906308309986477828995788375830137310889955173700615372978123814430583298813271858779577195371015909387872861197756489982053456292628265790072357616177195269985063272016706811761658383017190988872677560231717094113985735565164599541635731796267249556204307142104522851997964033021059529556806971638626307122648570536653555975322764670894055845860784718410199745182547227087009404339958210857922902475971696068634393872189531382131095346753039598948344750094182191461004644275301870854759330431727824182476583661551460915804115760002072339188271638613456148021940457161096090645152998761396864181365200301338285340118306468322192100771309111950118509992430151455812889226333219192442353121095917335549787203547710932296063267531871151277675720553369966425263949280481130430362835134355495016523312575179238845356667353284828374199905194857462765528202568889938181193337816403320746587639200673806891803701209179315617934563436112569738415000959721022301584933547705241882389210298617689036797415422768362617692654427658457952600368102638240919967643024627754751176275826179099256550164942141958791790841234201476536224109047755684690151211684043688407959365901985851460475586162822622006517112624252564192038453228410078632366884108478417600954599315326046429702268521728287523560795839527161183670662063694275516651288333020689181534069037109813214074806803623957914010961160392965759892760738652949797064662058284008308727620202493236857735274933128117914111971912872041281262368350782176530046690655451172136569027619927056914878912252337689811819408773018053626044036473052866527395703091065849717211737688195507115902184530228059389506663411074552824671024832668036429080946762336015032985550829510994284545963357145122243422546194569403155830840460140687406582890468188646835526888715220987037907538231995899176831008131081721349074894509454401204508252716331007039741797377423217897696650002274642487673229806845103709670964231927964460150644692972013246294343681623890780671513211698233122891970293808074247523817902033323090202473190408859098698226640579343725249325006858382627269892186523973538827073408350359232001850546906616770734303685033103797784377690885487192429088755119993526229454425525187939751749624966275577378337459116459892673914707385652022122564212575139231765530107037791574966292381168265659821597827017845956824040378777720610939494321603458767194005866261599182339074037697944741462566901582666657729396653106091630467113492470598108746902544357033056035806608390380274710012639974609676159458099177773067053313433893854421199938284522247469653845453581404927718740951296959713675759543175939395056877039229656101739408094742050285736476284737043080994648252351749063138943734793553619835298017626108256614529887262974897996713464502098646838516243609385997567408376564722951252545035631376293030842845269948959912943504865971268908008637277391429028737015094274114922980184503279754276207866829941992410206696703340815864357785981974523810357171649975811700518146248097401719448894406211825350221757560009339182567832311061841105141746299176899215354049222662805558720554421920034713584378472792187901381562622719760523451506516535789733578159399698469353707070074357013638739314704385719608808055687910209342966773463043128802807999645297397231922520067390404471858576985309658155901910233840120903110554927275182719128842812448872200068763774676360783135279232744456996806689614214180147248984637878413623874738569612578634613000199124474623920337082057270143399170024254682426852054820543006006906443625932479037661787461901165796583728270161629137690582217869182877236122525918746189200901040536594890649596093717613534211081252821190989396017311273848470598473904912780909827270878121616068704299517261478862834018470457210250641021553371596104225825719923197739834416581140403617943521309418273815008031647346136371656934418465833501056662488787638884572763477991112538079700115724084464004356188006144997101016289515496598001976755552253193739484274835459034158965393362737461345249892143962724787377173850494740739133631611764252650929524347534069559344827299494590566355023056229672285272371054888406918027050724658042748946537191892820626828037772762783871912958510396332089455521133272399698794788916909703554235359092169676596125024194175166482590021267563323574593127963516400972783016516683621435616411184079523218341464088960909842510842299946804810737146410711245831856026094552476247008384670060155371964958313467028055641358675757676783586412468667418520645768543289393702319669372388225285495580222814348362048493305179514954050493105481593285338405328250178333052128437086842019486920247523791550680744867435572698564685759950360720186639422319887087689039588805869760099600626813614033728475029612914528196476385477747645771078051188325920392884640387005254338065245888217889763186637423424197041760853779995897041577555276148136827660997696580383621207384967460386302770410483722184739613657851999731530337332696652419464583411249371577743708169019390998291510356096371718220509556292980130938490386288131783321966447016522243471020410208709638119054845727825718018690865930288918450816020968068279607522989208255149060597325313779603146737709725150690212776912945016278775879689175390103442509388074712038533089725961650252150955047059964114144116120396983959920799153928180016838630890113658739463065922569015427913457065384118571871313725432933771436374061696855709372373574783154711030988454365894732039723664040986428175682443921802697662038014493324915552220562488348302376336390193864737382528513441284037886896774351221836176848140573343761784340766114261922941786514705373576578582221340711118700802414914723739056464171408803636880386461472512894750888353242243818543879191406188934625412733552194918359582127057841139760303201346383511014545235196323573829616910891376619439359739660929415879663259556023402244472598453375859159647909010627686509905865323427317771205025988966018461722804053945130732435282859790961352865992649028318776133915816602939291624836231786793447315078738662739949830768034930121486090787741470014171905445749456012918649589185531481572970287311045891767837143330236490894393241845283100686847719601618793021442139846814936665905368162791468251083334108623628063485035240966169367834397073886706974927713845707179087081642374231991543099749399941663726116113747799268542613601842420914401656141503741579803571339100741364761075000364295233224203684253758188914294034952488703291252627401580351922788246341502513546616594343791627746866526629527565043250916669740277183253217235374930256914780403806219042042634004189982919447326944589387493359761359429420370271359212014217374197115809657948166570287058503803664273202113062856127392746949487157740952048955350642642736458118051666600895691865336396852314116973763701651596698253147329308097657180769508237511677015947409464091085892338535034060295849238782751956955599255230096068056760049342713648887947730794983318093985713700081465426731587982484918568942085162504389133754564844184440885116893859670787890370076887159448294238113623701204239018997225812440929991267080725180494791148114147668077844506083089367825898715313346064785819742634483560376480328271014976581855585014569359004120298014276292824948746589726089611463157666603864762911179721318171487334809953670008235867386305259072037797224994290576892358740265089059679948698276538045955444743377577535565290833039019886479612428804008446679852350930857435005446092947899860105080307009956349782489809789474523776263058937816051373191248257149473609476745000887264316900767478704140016274141427521465235362023424090823267664253946998693741690204807620218987709464280095854335679134620778023730107703504314485271275287208031799571621593264115669503091412975967161778112601134292239622978921872501592779284886665464865012260982177378589930537347868352880464444831402116966862213345427037048021030136113896552855736407570667804018048198839282201442984220070698749335377230265094315775318236710236879807130241304414642812500423167597722855287788136068550241230279922506382251406791229431691001124744644819256299924698476318861916779758199065358470117320917716860277782519049386796416121574140307441530541534374290124700053759470305501831980006103291990144746972084039708396680504220633308697272550296643637515651777372893390925880871402985241797672266366954124765043164175738183710682942213578271846177828846516111623276480323554253754013418961092282873703696717328096554242611933779497229202602814573581374841694149974044191418237314186436394947001817535147851809661222706868223888933515481283943911219285592519284523794556271903888331176586919722176646792499560577917693027316548960183936517404199425605087033241583628745541924517743516584496113341177584554467902256060179124426725360255540890445566866782281556135742872380169602973524047575266853254867766518571238822946129608461815162519147615205040617004321691552484160285083159872758646321847019833692168313825424158952375015230388357306772480498246487991863455433754576291860472375529262861068157009509219643086908259303926090434951793178224473335182613929646745570569122783513212918241610340710855014480517959465893457856223858699051071660215682748354283092885879106936307303791442191165057766817881647631582236613786020174091073275430187764808834940173536870671486321158498309466138916974096202588493439540733051736323354101275741143405608440541070118255281875511051706615697179458242952688991691751531301556755407113515689241176818442508307136918803957694430710166423949844549953719129630468504647243822683691533902786319827618957187508988653283269695077931348494012707157690369060273461907331985373127304922502361760090608871859226522548209747427721522837926151337752163688320643197823293169866504393356326784170446428231704001278177036876568230307964495154114769087148480199853107751927472722943984760705401896842820432586596121385476879465848974688170473225512543033324635928050458471401732733513274500765664836761187370818342988059447371360587858211769118299102883701744958721653915113118790388122290216919412202522003766740070445297190827146954089568880601628514882503570620949336181083447094025346090077267682067730360409499237135861792634517609037659451466445497587818261755588501978739478541134558631384316875239798697737896351246381367184080353323297787777281420311809204418543402121344041095372140037512244360031020931879936615012769143549273490751220464712240652114041688752199171967721882332722630416507099308386395550985745925759122311814683204144142931068693375721968845323558104728243053706597028687509689892892573255578353562111015978716383954640151046428731403001648026312949064383891739057972245740187607870352989373517673902354646311253068519596930869016460774597747320241342931419720155303670498040205196487437283054694740933272450661964959864824133889251189034753240613037477216117430780972240536587580054609776650435846040515242023858902996137945754023366247418294396823109695455336307955934416181674067090008576968395724014855645234509433347640574394659850274060871518638270647713467318688760770503048273093349855910076570603386921678957056666853196472851843063196757723346073913449224087410707385231578540035076952807731482314471498382004585591899433594985295186068525848208196006688188004092909562641004134936805385899400387173869469055164489455494285074582238033401268782053631083481423451717292981593710268431003284696599895095729733260284995548835779911316259961814813649737266448629860809065103251739899189474220303995107060720471599064680145041976230857868274607935868289026743293855310458374289655445292370026057995056736952995827388922350622686840573880195091892106169639918350230658408849383913850643871940144520281206539186442622552210950745010579648971911942848961253231621386211838431695677455796264263280114876361848936809163579704874976408198730949314862836392554084907545437866399344030364233645555977919802982569021784365065694863124041745131058805832836592863140195271087552212641280018177643927562759068426294746917233225913568073467570875223315833230704973757452382528175906055136988818010021593127014893782955020488302788573900604107525364408880054166546528129993142039582962655403522820972468486166390309017012690294171671766958420803564034779722670660431854031448855960552336935577876288703814565104579568544884094323792199893205152473582310947778669907046110385486475962037504284274893570803284166637427333449427552172819454647500086038827989678865694672332367598389002860148711854047141586345786426472931767792769614990388266311061421151609097860889031947587748388924987869293488030833477499290479471192885058931028577286531783927824888538493166395322741423795220073429962066866841047295880357689013858408396747828214578341055162750078744284043683588168176574255622956314831395473937897382310781910726945417288008334049953886835798912892239226189568006490260287393202170975077782488442149071634559762292103540812318798474267594064118998875325560902338019438259049161272516205687458237646780574590363673803049440330247333504516225808517981800752153756051584792678093989256512798948189577118491172041363938836390944255705499873732053943681942407002620935106002183738500801636151769011842766963333752984538577345546855564983660726302699163384190877854101439249712111706562735878038861906657251399687064878361265220895447291479289062490259661592181231689083972678529884324400088051744135877485791233090026065761438786080915694445919660662035337179810001501061002214839518683862879327436646356694165132258713930056109224746199150552045973481436448427793862059963129379373339925190298943838445949380904223973725971758007970207495344716946346316661894741784874422014095143266491344913304219452252361490498509237459328969443842575659938328441663665835250637221401061545379940057425153338770575462141458770822647063363536457342445153866041897654476606135306373144338663039186743698282195139137138224085349927333430833711518778338919679123542892442802325630501554594378376396404538875215045870303452855948558445397818014441883093416568460103022499431650763716205864627712146037970600714839294035148072275032968094977355036232359011905875598565081140670298600656688507251696486276566685066645929778085936061096661663852864744916987292896354474818943297141613363575342030491633973334950173739417185399246345112196469467839918922590015244861290346973095152659091087802096970173443473941042047912813384052640380125578642879989366519342595791515355768965584204400514634930253025550944152896980424503008359973583581797969581796499621660309939500118625691451823092548291061214570473446857704172348736275347440142880464672527501588815712685582763779294017912899711503253818423652324895717997339964326024419212129128605651156435846250271035268226308970123088987527754294218427115857426826786943815162558900972804596063894581997379101118856625096170749749727415412354609045734658077244292809812398919094830453785676145467979532497216167446573097853062381221811845930249760446012097585556609564540170132388606156923243353619507494957125968213632006912281097011567689668378928171992036563788145549214269486933575921891764195665328060941452902499203571046105177445039534732819632153717651706596864549179485928243574660271457518415703370843309173096298887876467444864613725246917867675855313271639454232006095434319801918434199427091742573819562166596937643425429214876301794516733038548853433115748676008775533358835179813977495157783274736955528555836782436166998008651595482446872662731345104681793005969600883603215550231297267653584126042120643049969391042088447325101319689124418416899035539888650710854016306703086664491043078181056026481621808625134113288516750833881364323226789422753192032026391909474121031185051794564202133965085816617378782881593920693620168107632752092888263938736776675040055412083026811728227146954151685379160435142267427794152007034920175690432055572956641270953077158634896387151057497622216494760860523193097328770001597378755502476887511183579641707186575569456891595667371008660570978551079009298521478759641511125128440468291896579482061934183124846114759441091150308035946724739063433344023246950241170545027699169011456507514985775452952726893262178153426065275753066111652604818915383992420590380315040863762662106989191652218987265112825496157979584581324325378425296242700114330830373891856404671317068845743972441646495661894646357264352235779687716588262054837010503446877544749206029915157590083340071535709671373044250293716710435744189865692474138819481009161787010354759998349471838815662997321094407594570311153336814613704191843280707369688743884944353561637462383514584009506250964611128168708801234338298754892065534235160962397644771491832082789840145105428707308577091475663684375124192808948318892850357754781142241232824803105115958591073201956636140920063881602863634960779775090218071628022467985434640612077452002093471396331331658995924482957995749076030229868004818269655472860483446332868702477220962481755129605565193878969675411369275554686041796170814509107796738769870941129364769975747472855539676254737757475149863406460772697656791728201866764308941548735508431399222670919518903748953999810232458992219260383668305555242998575164984866624740494816143204479710552828421283525192773758605461251241190367075152501717659445803406393241387048589652249923025815793684665593125173064812364827582098924380331213772833730900095362694732020816357501559109230236460734901346350351280967522659267909928605807587054946900354986511872384880414759358389834952849455674640196658937506586590233367830593800455963242978085850879959160829294626364236451933856498696396906085561295669846394537410848680177381401550239173198812321345070577637188038118928799109826891252365990530260289179900242386155590042437642092887784420803334534943397621426282707661757681792473351699103960550457516572606764676248649178978446343324045100556496242283568509791453200676740134166966804331178430582429212743336853834223689946007787587676926867278398529271838908903022702669793780283299436613137543655516526051405319371162544527594459660753197578245750537844702249660732020654852465716090300457794415204993670520409403615727201812678045818909756635405278378582294644989444178063718288307204514914353348955448620007119574379329699909862253115172753990857526931441034917616077240014064201269311046815850954956368332042912989000569796324444303850774570942075704105827028732388958686977396767855160047053555186465683720336312001519016809755971714842397186239958237762154562033608102113185709990072514718369595764120929878622172047864938835487005256583646160946291851818179317791782853529217411058224093998006933336233115755697583676259075102088369645011068508605435383704438370571023359641549747806958549891030419141079020852051442151879963299591257355206998166194386781392811356491221573578021082424754552276245550076990531813777731604544810503149507003097479688443315176951100357773062695459612096758771659406805685606851484434686515854439396956655414579036602751398724589161279776443828631332814547365532127780942310542150170991562986427001691172441730087464622321754929018897886398047950611386327098966194777964180980409461149780723411601372694045463230193892994649171115978956422429574940365559913765209708819947108406123767797057181621455178168688031249029459709363879533881882377158919267162635918429730524590023790044486583305458883448576715373441038084371702791385264230692357714977571883399919898793151648827219693286741353207828444112398595381394382416465849991264981344330552584658185391178325416168261376914648343984758626899740680784350092970416613229885369792029940045798443088556271481728264005457626253022639633565616656030006314777136264164901685143686500745578790193628001799605066909417269096358336722787212269917628693852012217266215249339804382918309291317186393422202364937659217160846852389140966748331679408486296626701122778711457893027811379818092720424531372679207308138060595045441482002555834591318687077251327434988098982306317555393532610862143051322230246941601071119827664819198758014139663601826928534992629248758131109034214434478817112721473694312828963183850465717803451867862442140296108823085764341162186478330546546472902103689035989543897086337011887056513976803897932073567654862421830732977654945369957496530537385734798266478575532550450570693972499586728556027344831396368230549317109988678714083424058076242699544344922961594345871374644262995687788833926121414004014188173901876332091953088197385638490514555185958717475840319083440350619698358720592144893568216939462225515869655485190872446894919861312754230470523783169727414586774555086526448454628094781015671743196499898545613709572696924626471091752358856003169987369890738760806689139776379869017010530301772262840596737229811587533892056837215382433143275949428355232835555099271175186775453372863224380096270525743883256550819929238451048436534046818280792566948074414097609947706539579026456629926145799175323780486310891561731610225488181842255639986661704529764818414571028672714467088862733573149901433373355680091473742487210889160843389380114781354552682398782071297395410890796612322976717548654800343426084329081810394035091301557684514438373587534964167859498833643555597561873414935050597042743127869910829536542858950315170640344144920231226288285968907922960074158603727575180801611940235672118081119490159700867072922789860294602530084035215805858728290049688039441787595352275612152148874463890124778393201197746692741284579650759890309025803378135405977663969409140577385636576952210313251847593065449821122421727549259903283656636713917166142732898589071751139481996748377706331458484308746020237280018471105479767493980704264844405257962339487685632125492656754271595871079009312455686805157675451248192029393184703608171522562888154121296306345272582110642585736301860776781840764976036789213265757886008828871514359155652043166929004343262827413470283136812463121485867129676929421799183219688624597667219239165740604356286573042080355171910476785516570697050853469073388101967434785402570334342802495123108882192910712358586803057724732097667698732416414468781878451661714715194369000500577759269088580712632348692284028639535931951940557048856238884873984273976175949592525467320855988002366951396120736357130012267234985180365792746534465750260054196099003506548656487112031411103421848816695142785369857744384426844871833434050873461047916174776872721524912171513627622616927680041105603126638276376802418395626495625811744625457209638027151195262339383293211797085867285352184209994592045941141379550753445039046854061019013196922708847216720901080777385865519378823316521367969609102431903925959403037597262888629087341287055739567298807895313875433690687516430439618970493565081453175616991410681096054983598662336491617136602132541261240627586956086885129941469013618265558819287812413355980859449046495733962889065925890831152786778981014883965469246805275311966310063846229271739310932766474406247278072197254462768741717079473404329284620365628687927261066391281683353258673136667743472201209857905469176449518702626055706398535665291826448227192577622707852786893786319325896510951060220602445478158125859306368484316878112906341386188395593087809603191015745563005580778149041704013581306731108217898420311922082882491261540369650552580082034152031057951071398025045234495658492932773288964264649433266460733067218313783129190475676699513337080264602407959193413474981543408148851145502287554134053034875399067069649580099324104616631933577291989155253946752407831022266589074842317823806421530824141538955820476320286471187254862156565230632679518302183160961825033278854647087350824513148293840341936411800136558952825569820122106861494559017432569997822875455937413386961750077730999965688813424751368867280075936031531184366387117820303750611477368771197262621903548427221108028023966962317007303699100064599366742388305235207543791151269475344869393914160836647917779776360605890470178778054130271812257253397926959119751244213627048422702253210252781285772959445781296620993739455268367214918660551677149032366354369586135902442786250262655309347961573847048899496150099684618669367237542598317566541603727805001409951126800977467666183543928515862983606379069517718027100012409353643784389303495374730994307967590067773104310054951771228475020337028560954806185461169363232924659733482654518903026859281905588718023948728306837322805449896240651342956715128135823124599077802457561434791729860982056695377829574674727739471675119104755105754006466316240102495594823773768788792514135304795757132876146993991214985192893086975974385760501736859928404411093572380401163598820321741731031827074061685526125917311139239453859839494596222269627726965083175843364842990421502216135029817640278694903904841944518786288660784970769499142688316949337803002235904216577107631977791131747934203219272224659939823083646385610374239528386495901231849229508595879208084113857546135746368629159723808469776652771521716700532975152727684322631585217735795278632937069714382068425515464618817425273234143776368615054755631383561959816148416188219669605591372866459570995234992697367723855057686809870526103705553105634215822384244018839378359097914092810929299321037224812242011462263460541671837394728449373914682688389696388046476717656391174868144893695211957059277443180556727471513884247991968221295787431463893854559217618391400040185465543599434329915697899692444958767828124929785362145668790577356015575532937252534861463086928687047980028660889835704753671437908678239038165114286974647029360720372792420731805356243568564835095827578800212955147446136244040161430902155161050098076630119140860169723803346885766804279949012452547534060082839120784423859763454006904278040117186188799024943627874982110309666703709403565678306599711899124699705912700253019617084101325744360238534238281278533548114337554219543417171920338009423071413011827911738450999239721490594004872295611006915563462205224135815001702701838722170767081156838094258903945885306226818328812164601418572684220438285186062827249491785470741758671006911350209993397444064703422161516625035534212511771878008168903010250299545434337602903056842344406854471229110808793987173190864784724846783024338788092453002186751428863486942618997468176090693093452261371774743499691228824303810050339353659812050621826822894743842776064602150192440982325624333866436678808134606040928688908304241339562183559223091940115257942795345433535600589604658735282323429691203110550239806385471063682567830353999317978852135723147764932189433034519832610571259396812819106891156611043465535680681074624156622377363246967054102374308591127603421851377436385729475089061582275312635188277552638392805406925139722655832565844804680495130118073098769472212949871890046887437737619665429408896775793693448918597033970194641580930345793181674860619880657966542384145525137992117387675421728428275058920625900426872472502740311668607096739377934756605606255991262346793012833489544335550085043773868213300478644863667152658124809678072003773138254139804468322157776068801263323279483226634999177057747207095752235761674091651215743012539317314059167927419770399222291141050734529283952788422850546053803587733973911116442504839262848114063538491318422071591355487722879277088830413854217507872515362164630129119720155168761055746255105075214138298867626768770999067217197813511088562973568698326320034061554593887931208391800057735466880624163575010822628624710793075322594645607885354049372332968824429585993517457736568307213747811674429722141675447172255881785281703359313133408827351578932688726608381620439469803407835424397834286811266663555536375432088697266574043887499044991639391725503199887132304018409327824226286812668094281724070335530079414403343226718914197100520678334037420458863921800572614206855226349755489614990491347409528432212639837201281263837402721548122025254029639077284929058776599988111612465641940912769455929400038473147518894069841025296561352119231947214874686138940569905078420480124424608058201641052998688164994716533388334640428324106013738539545389929075563920153167401039211636343819222203186211815788468237442781690708119705648570978614526066449859391218909961241750294529961728697044671106819848828186789232714560423858466382213116884105803577038431388418705377197194452242163282976544642489213063844239991475204613158048857494682093578703756009346915387840167457097627972927761699267694506796967611311701591751641508739391800807593098339874291420529521913332042767239946062340470274815433516567009639936700877029693323905846368108094468102899102219364615210603412503841948983785819449679703959806541063439609827294328813226346030219531121021946937328681672502796725892557352621961587839361872731960040003897611301315032482734651425923494035019860496266809276552269092772073475809512295507061572202360271422460897810698314634405705757589045968044393354539645690518169373244317380865967923411102587592937866176364271841000510670946402748228477490338829828157619806731045171957664371035958302854822314480724654139007394086451528577597989458475212127811477827597305965275816852849307809574481531515440629310232460325178218372872194567858521187890596150205875035147253152770864653842769518170543491969182110136519046865519298193381099030181312712138259054627140021873551799646435646114788747386966708645688315671663036857980789500054346733170625838699099435838876475077342557648001259019475723857667954269684998712425510453670814278826834607767850880749596936968632621830975331400594396889487376688735647747430661496101816249224124013068366009460970722032333596767637189227588598633506326463625289376169376527884014868348456431519059021212287372773676072614238493172060977239187848699773399961134115233065930946824937992826757181757488156435488866572572738221070412626420406515136845182271269369483596732253127023045631850966662939343728229737131502950579632922228445992257504047119627387097214493820159314363747163346922771873696540462393546492569212975582839647334700495902964832124729318232650626507050857826313408584241286637101697555984200317163560890744308133829224128665901430180220578628230546214454852917099946067290016499536814770366715367331909246772217133532145168937038908400468211555832093705552339193713605383842704797781618716838724149006205571459145683355501669184841072563531785979504486164086846294054233648586710594085517575503723432128821860085752184797932190098363634687336653160065448939111293964703481491696635106941215127522718064391944721772122050405813219504740370418633187057039427771530166660822560016210156129613306487688558153419364633343018684102073707845703240671028678206542256890332614914910114544570885713380267121271406662484055573185688384639379396890505389261913087783199314894603568719446672393536557726450746606084649701994476236792046081395413390097754063603880589057488911972051549677206937050809539721882757792139352816113307930162605762106553069377225470288859509406322291992854842674011987806625888173787855647048777023688332182466711419830778604271063106748630674266902191247028993053993399606497385295753791018373064272061560150302401783345784011618653438216430662604123821594661826834543939444280094977353603924207242106593500726318573425099178502546200360466128912934381577113529192026190167010576506199637337812411496865617739153472835985781507996772983317061951742405460708055209169859631919923166951263292330896918308304227158097826267230680178084836089266102113086068591076138660866367123426041191233367855723262547067384335697966083062944438316777002998667098600767674241436688859467981165781544787681678555660910893032431581939003141751339489579529883935822699525744572496285522440108638069904623992204890981756106556041100819294865031171327466994258012599529481427724281397990545552710754739709258364544999586512165570503047197572911648653478107968714518871376864342921163194800281215168231027179157067432757676102097002597679723858121007261340979354284602125892758266528351511012275520548484688803271671057394005120932704582908854412616202905197135577329834790070175309248368800955506013075124480808371702470131129393576816076016004615257088644408077434252865984745317632572280162515860016483116706462263665772598465810556691121203198073534553433195327656175498888341947207129806556126019059936855702410204398018378034178723850758793488346122606572992822328653669448786624823374875661475633093869411040678019613389956250506300023002292641388339798243323241723187710218248819840763049440409600918784678603034210033243338291125962205082195958529477106677718258791317489726809164360625881943523895766651912263229376026166457483874467757997605714222556143483854540945312709239400966108022023233949740635209590295517986540099528844427718060126276366121791319271016542416856449965578318899707061370367603684359568935140247064193376229924240481746439876733052757735301501900698885923326925767632004971713226672357551824875236914168433103870797319298411260996443206861866332746046306775881177008687739878339078945987041776713406121238178544741051484829177373734877065946783402547202869203473899168202082268672981446519228598372300985260422800440309980068803220044247837977303431971569340280887563363353692655932456470875382736442504627158763631244930780753191838524523640549065879532180765593087022852227474915247608633380757246363196885175407612661060116471086158876279666388306205869086875843485193708437681872694036624199116602979691317287094106168631084034236351247528188562871160223344545771453343435053996440681988373458889539045047528619819683376841326572282718263538726212701967178345115620364327389075287852178726547037092975059886742336936645508078730614177039485613313569500004419232832325693769497872178991271817591754021424333970910759986941864467385944404704008448285437789369527958607116227386536811147636722436522409736185757561109599213763007100829927047989513010365612619126404527830383348700428415331062700086231424347990518165332178572915300191158271141404848702574124088791789957066949857034212396245565061917896412029715766837577588322128187502393038190070988428719733743044851024361239865577239694843070092388179364613241837601593060338957448545113425481426571102101302573747020128139149055918777799668613618982882075085998528048276543160274573671190930234352487865069519770752914381121092225283419405821112447609238233459377336128476586914577506903610783432064747243938349136620924660288234680164173851602685363618708924756669107570369741053290513978355651067334795256092027781113811097829789331145450557748804367431964854240625743965756237218213858544318574123387480695982081529111658822169736811034516918033751822142101235409808986739886809178448247660466401817979373156446590372716464753077251048007584625966708830712699995932310076301908425011990557913710847647073986439934481620749637015098150975086664735011036371192163407042091558331005726900174669605343496553665580133143215664194401742287793539422022150497155155493269619114140741262036441411848822970946622475472943390975760491651065165320948948928103158693766044730275671481845400779257058964720413150877567296932628667275661850068569013006975774299865300127751801234114293971765576587434339186541469512348397208401232209143819758127130476215474061470584466955777398290662908845470974793194597995654226077635580958811842213895000409235914921976470437512058791822899248103126365842597381303695840963904471712242446886958273915543976780698123736557413164721199610545391318717601083660406996427762801433205496753997123257610120242285900208769315722951807693446915729186770726057811696771198615129267905903500787148288006210266177390309484155783705691266445846673567580661813534304202398964053438970756404252965649088534646780520344956782664389661810048226482199376968707989410029289037722581338324077328891842919062918277334078516031229249173197745930300591639220631775860483531284826693533958018204274026848890608247927139915878831705503561943210610315950027132132029036367276323168461051870716941417561086822647754052225247857396393438163105247999874862125038885580918331492613622287869860901491240375921511746709915520742177248148405867779950073931161363012134005830243120937678215728478291944320020870710000016254211630065333644839982730099787900854594745290439940086269376830786248145508150144650927554032386836874228141689442301716873855986950098069112912797730431706002491234658958090099387970256990838702220788031394006201786864185542985225212148318598162442993941316339532100607909711619957845983851604281510153512705131977059489949447451199300764342009962391129069205115010768079662622689501123289607134880719348940705748007409452366798304325251912597514433722430039951409454841320357081133904231131892956644397763792081954825067230177168699534499674823967090504555280323982962182160170299654029513015726224881105027639343197885603184584834685264719223848188553474568013701474283078890983098872233181810635658793056288687759779863606979580260284158881791765511165403121637922121471950438407019112373137313573189581470514601472080670660504919049980133509196508713524896891484902583803282638887717249757785093764891506063627734571899708870360448834764532673226234203379924391729146467079430271084568291743868961745010718672289020389044871799400739424095414896984508859772804032152091399692126962821156501898551105773740471366896463922934280691721510486409309632909720311021422738431181288766574833743059492925200322961311935885404635447450506095909428079743690964523995261266283560590000872184963778849494517944859104010759734136447475966471127703870780525560016088250882727978251411481727030296662131577971933637643812643217720048783913616762949581469745288284227969031500072391923008956963697181746004302917068857951984329634371866559783421854594237244577802082942373268655660091009808038168475691763543484539589999658515527121571581994091523615945003409290939358198768772619389042946689285058804917121261444985130364577331854904298089301800248242571011456496059606477802824004338373705815355025320183656080894046868144779601951967474889959839368489610982244708770639801906499188411899078047533319124807800880249096854689533357524111018997611311163271961222153971214846733650644660934326054537690090650746788869221457603455698370735781380545469159156743823560888509280345210900948973050134530965869923919585004200100866549421535990863110098745256982409551250422231282434058657594328098774670822207883936583981182355158103900140535920718217711601090880730173803227594805824629451493885823209990236691589303463846774908293162559818927845755153976134925951876363176497196206564198172496250205285863652666959143471575370237445957430709505061879016223849659148956441640656264199396360534925586657581561417430352504841865669323780263194267422157865512097422010580348035594740554305936584867436482062075709446342557318593188287405331010198368498260317369812888018531275905907628346587067063257251809526768946259027988111377408648573430640421323589604901019982609402194112181130093244724034399906035415926220281123096540451806124694846036357335647535567444944827408785462420978640606044106248044366301640566866627125332666856534716773153459009792927955383881096628533289054986653239803851211415412288425542966831882204607052395874058309478556305424773377681698724022596207188842920880184404456990059470630821338612503273304196954610445645669830082446224621370312088652510301043704684813883552754098764032661729708454421821995908127732663507457556434734692796410651601781738298378043771214000299039367820797595437652896878716845178942365704779276329981114801200099864411297990488312882890621985871281077446505408588132770202066521824365114810845372223392871004575031548689381756366739682472840327437779342573636232754292468704496945850978988258416352157700020012912682917534133317759758543860818983548646431207452997694434161672350674942035551305099793791016854048296999881434212948947800031626120175380440306912739231150511873365469477557544853137730314688181870585857034616048652345335882850836272552232615036735853187300441639581926848008019098498763227941199956402685061530047468458081775741618632703310658810565674408883154158321741573284210658652489257960577589379702795937253133951333299380381486204604613757954488415519023041445888504209221991112629868949106800895771708011018319084986211188650934338846100976061704584190228111865013318103710686802127639666692259108312254498277824208464124024429419704033617798075426358391560186005648086827741335987709442619800660770710014185169100563971307634632146490125489337217142063178013313614279711109358160159871939849798396723708881298406557965585027991198075066679679520606186767398863296498298842224543195573118713970558921399798169249049423063459677207123319029337421382533271316914295044600072739346034876456513875766070497972944292952453790379691765634250510406887192253525039022530597559410079164161860246149810401769574208350547061093100989076971682612126481247381279130169985833088760772928260043873017659673721254138396702718596063796480594648341125680818479569853515113150948421306957836711096382570830871335503824348951086060448907624614803419594792631423160026342480706143500427969933027929413466610633584219113775062388602280880193421129107604953849881272279401322371340178883951760254509120549629132255102717651934967926435991816115039221207288188343004654721830736180362100078214050811474386128467364133347575268087198204843359084989348232277501595907421965740366104416568217307694344985650087818091537431757622640855870231720546683493323663357909370983749632314880739787178360989543432415930568326377684897813040825239799453080846035014153353283083686774761642412102520350210808763549583663345098547608938426310027912371139096880631975455566725478796698717663343077634997891017325086824606192140364122508486129735348528764537260843143550979227484992042161692975004707978217992600152691701689576080292657590916573898463997422177199322208369602006118129357571695740690106414564647190974901721979654622097384686605433582621687083123562252956957147769962529825953131567675722267854662714960799919694719117937086910786572160164127010647824724903926176880834404421342850471220006217194699892160789645584946948053216572405917438431642891168298488476119605482016690679248691623604118114283542659612359264113645429064268144709151877658503454165491820985307674048262411867580156207468599803203385417591466196657538447443517760734144026598617991793604524513818704698679583178154741998804070023211206511434083993285284999948251903862003448763609522897920146046364598107076788818052544826428604241766749895497273304784172398451397191524185279206760105527420207281161269602188478329313497540740367574749433823184699210967202198019013714629223783380125106377136923154380284839781974654003140659969899616781686276533034785326585220887468873348144878769515156071113544659393146534096473144383090906865338675417582507357998301121212654619113626641469752642869882416757404509197638301771418390361857685259064842834420930153854922852524090107994374328377182572023556015418459732881324177294572204930340184343796069280416334177614753394878400435953256274007187803224292890157177054114228042411583407399942381044005176516278815803287633460052741418076776748219802730553985186884074381463973014570887992724587712479226108955741218331169683666434629662747327914694823123755392646600635720948491042993941364714267887192650512552828312531223779832206047624982998963896130801160747613217379816726140499766993498229400811081272420759467793108889024594191522056638085776577363694778249558095161858097563198579219973082191304019894434626049347489189828613897833082901209191561962847579628485558212400395851746388149190707804416408818504290885224235493903644503731303423872708100286124463093062891262736814592907457433934507387161571322895112522237953029219022202434123834919538728254699684779135629299541058052621132438009525508647122470603853686763307412757968228570297666211860025499366575534850179633577855334385033689162929399211073985260872773227183234481153386771868177895501904068491193347482637460148667380545844294449133825898712435982498858259333932416768147287952051859207345767176698607151663969737813988357875456386291074591743006387124940235884410190599173654874458919574802238582249909228158662939199524708542362471743910172186508733503463967192843294381862816786614243951500712315820105120010960297569626970708298639844549387060609940467092336133824661985321809108408894427463882091121169421702962951035560071859669202366952090808548870131947276439307623035189078803670459267974222970411338177660943988081839945088221170570706336078257442260645284188281331973493200487043876140817215836213006661689509393623543969897082820472530473566116320586140165223068943346832096414055690063107779876776039428104639379333289751057420554675686484554489487460750068097045407543012508248388093601284550674801266660438044302264759259631177081680405870250494153443853550022594613856481076793169169934733053948487165809980446008174791227269354030925574362709988671366459528737664885396108510105779893557185256598758920655768553862447096045663913325604634926160334378425888709748990483384845507570641451894330869818067470911320364946973169584323263826057877729766002113998179892632808545568261970059830996224510925350500650458310382167855534356781958735272373546598655130828864643752702166306235090107099787405099284109839290910932779763287323110113715488561462084928196063384476983181258845993287156864522242213902397824135948748139842787060063792304685454234407298302434128975737390053984210141212892997067994451279077162848371856982758187397037250215401024861018047766932979696953791564749042182524894317926396365537163862547041581510503840919648554661936745601504087632304178661269995300344981751842597595894690250455078642761958455134020618837640099195316015129439671795405478947645772231777527952014561828816560485710997555394383533207538877711429600915204423499046078793950288830893015958869381399342699057351909222341582961024321209793036878685167434467681975578390062465329284123248081083652427611441533337978860029662926347210218400954626047352460693662227099542612914248963601051626104050976253387686555123591994713312500219676775172079754039739430445003279164765764885780929395497921630648979087564175377346253750615216444253974038053454550553927056424986883825985745237714405020847369956455629046447898812272707464218909890844143325457526916681465456413781550312330942217494279898143099764922440298716141265798192522532286244135635213581188481103082907537495889860921866775882782049856635971935988377641006063807857253084687256497125895273748558484355408512759623253207794515902555132436589732759586943399183014088035743550053062596843860447344384840238029421564723541047803548270688271730959875901266995448277323572869411269790926943443221861250731126066754482248942494746226508824675319123952174205328359787595285789670474528229120017102910899555332619471560925944759613419769083955657571923781982606244158033896580458905416198072112058136481581438425590682844396093223168838562031729037899433071185998123551900473414131669159722861282052238806314556461769944164790936006156318680402927305899952806910087148674629183992066330242515595116939918745419865870612550462514784314880179914490112955224272985531355059980990207833294175041304009348581728857549370898636878307046211236240979608515090208502668050597524679536054173505043181623400698960446300663357843645763578651329963618676828378132699930002238409606953542714594057768162913879863657713009910969236165943244500345638482641051085027070514871238257051499749475859218224966230181817052193899937532400323018003853011692488280556062582030629581303083494802253255503857442639126220271705063230354297551136685678689003561659754042694280377512393427451376933749824783953096353635051062762197263922885111305933722119563139495331498219383780543786082942676278099169427995842184309117720345774256040309442231881271411623457990411738207481144389208937582386203631449329194025260067798547075911479513416449347994221201919137551125900362866009179750252219749421330461062670515942443216972660812996320251474929861903421635289817582922779261285736342812408337946091073418364119921215926577236854763855868755052466157568511282472399645311707751932459741675428936881208248361924449948723236985477238764604227621097790988682980637383689258609986225776778103377914458442824815492363334986564769399350453849115545744788557322214484014274374905797841590063872310553191742115227130041389754617534124146070377031121475406144071938108148086135467089765547767423096701549034250070148096930636041460480382019039630888926648755139411938700782400304447563301692846427199387905044508257472394018219140631461249887350315344765286308712531722318693529626188121536855566885245861656775920520142880180673486023279143225720343854702404840859541625216227862366290687373356571949700968872687088438591470416920097917773531688484471808474644688240190816920401827605604026191797928051060382282629099675482667676519346853726951249894555104562350333840925693785057093755325626887458756593381463143671756718611783153808671946335997388676497694848408737805924106206305853227876829381760479749063872415836869627068399460369817729874751370226215896237595121150429695732249213070863037754352080963047097227365620125928968488596185681554074659630026324794042708439619686370849706782399725874826185994457135775455331723216710440439817347736945219944771574803088206108458907837400366844172249106013976072859729621364546694572999776281818446395105179071763661750217114482798022128401035287795384481084872556431789880384542841505478124100805242366817715619454722030050897263860483943148965667285612793310992561175070682365006334872795833556561585085140588730451819588941006625166532671219189882203013254463382521427560674331518498135303765037117255005379735126801274904577479378415596426177002008018277796193936148798126683418394631856009094493795786997896516727962952603231197460947191142464264680845634132020140391597867000500459051388302695132675993935775207325252833580015455694306664134002736147291430640542541054562512597090750344360041699496056859633999059424194516752772972543578919161467127306864073728690197301564719372559124549112788207369817355836430126789223541864387912677848634573414473740539833103537223462494631661733514479426129254120111456590418054128242286763467839366549637589652561376684669292937553455275891478588928090832750949624888875278717059766373228355730655896922391208984491017824375776034200887199878939437402938499295018334064136034989562127304172322119158032962968985967445994547768449724845853842712210643248182536068076500056403082989149231229524041701536558969730808153123671619491514724233671604419669792437239009422125445808659033311495437783506547560217735333598807585322097081645360681827425777050197878305834176441449706228763933280140853882535428152084536835422099725004100897302240609780749527214042817214158050460319531347901567675618744165004472125246026694787745310714747870128921866115179685841791623067518194919741017798551560326676718551240437986510035069850434765968897463873137607746595594976846479386862932870184352433615041925386334813650668323623043301972661931006656150639547549739614827586840608802510283597935876026626822964422371519378471685535618661703918538413666143096352773393330299739331549890336881940987389196222690397556962468003419138922865778758961266781283799023282724806710351782141648614168735904677975151867358841662938291345223188414491964202574583423404643346981662316519375021205064032669812709235725323605708947882169551344124999878859825871793113087038725230790478812022761706897749914273648429571472777776100260789349993794559198931484941296118635892680552868189880938077659051925445472255025864425860902112007681489839743500159902623842578495128689060487919605990038636507372435411634934941062387557518748511302276511860423277507326594096237462573693500088975428501698190429622237534530590397477735284677150136637154856127861846131192781951919112657410827961808981931772122967024908073242863705534943111063034058947375395296280296362375079721161563493627152258732086651710966224345975202486404443932913853181493716358363319562930604131499904412998543094101933706943471695083663850349630567248208984764370316608571342953762380127329592504013665482297679186670031359675314292517538808836979529694545592023554798775010759021447172677458129746738678971905158230433908977965294871396436467812018137727392525324993154894472061307041818925391732891178104253170300928215460663419475706607338459448232446292849036852177117598599019028494442499517982384014741176127516051783350802119134921926266845450615956757627256205086129608114725042481679532036922419491713315780998334432044439065252920546133473071281649594171332806707983450815150350974571114655943352315770221428569163744899235820331700945947361855051024030220470394784717974057616107547148981025197495286422941520596695287959270757270422759421513560110768778691115416570758229372812947079734986472008502926494054475334472877743507440267727616692888549517225430763885542582805435884784523343365862737145933659361969708235536295185269024758436027130671594044053225233961428872430105204295748599930230663278703148634116152734481413072098544081451290812951722395023685150544640449392851805933598701295569693412658923214484082204731870002907175812028867471097503647944801075374326921558825825449415058125092628438856007687391910789358268710318038155779156443084639331144319835552515699399046267620310470152380311840589477314846174147109119179974983624002248831729645145555600499969714896981537000252283565404900879166190824611949378755705996707818502630887235496121028020528407818101284756880111985742151026992990792055725069965649977417442569461391969511923914959217280800089710166893268357087540643904859440854651710535755746441677867119130963080629638404643748893546498287455874614008153345558325095022583956651481847786170586833599740737345000437439393801054004943250171975743192013671503528623079051933858759173748737374351553671142765422099891951487409994210467927987991682834944892692815494454267205686510276325739792525798984337158090100097406292549184181891882462319899471569229812341776557773762287394166459803789837551290299703738828403914026176948414954218113218019588502998858688874246364830549799725796471427522942626581639884701150051787171943101460269743036465845031392060524849666110850588740638937312806846615998022298937610307237209669197637442301175126844197155749121728647665925734165560763096634627205044013971107087462384557951128622272218235572193718011528316758901063104453995541743823821572019461319230720911203029557998041706115219070442200665389514086776101676615902675226379461072810380943226668304311730551865686576143560508291836029251614986918471827020619744932255094296114508636463054224457908015074480854344067010298217927935081342699842839220522945053660626319441954378964695681079501975403100759187263727473185651549203125981271049460738926920396613913450078900316079838817886476485208905132820648224565156650235362410874964366238760228063520516550541997942667814855593123509709425305612879992791319400973509182653667678322977662930448042992556288385127308188358114562263372070589398186065119878212506724520151632080530991536012203666843357174027930543875371080842549640709330316616882736175663881762256321777693843789975523985733019688287945052539074364833261708186621300240726209071405782796713931534429509351683020111119497308237719621182002013599084938806171888243634342680725701704206499688955265275788646577062948694340845507888473890982616492939641085424204572386052863191594048858544608200184400150641031980049304545980025161059374461398953678168834460316144237517842711981186472421213734862595417107292187240158749416803928741971576281394345482261890484722628766351925736899143441693205769520717136779736990581635225248543601100015699221823870314413897398376916213368180549761197353028089089017669246568541032735157120324644461597013592203021686235578882625833381338294939257221596240172945542839451928963690953278354818214601720753612302687759098280348421211485838941435826021824629938764613638994008802718380094637408415109865146748433265200177878969071147966389648646093343063717577911717941044412712932092123304420237555090718682528613759350107583449633150947455458498181884853660470618952156793965981766173544726145569581867331630733615416603978435137474494240077154917734893771799911724107662676544466748175732607465197485324467535101697185344873573152471074999179312560634829893883702269334872772141690392466256642227522324860740799915976735100196670075288472284474648355476374306828146954598606517131729785051635727422702974962885885953150331899173708486584124928693730622189962847888920632639000972096061701075333312623866300024698700894744871465102335487791344915435562327501666898715434407204669652164197187190416246079148485296100508776997298845948342000795116222349131068687792908947783050554984489840904563532328748521831105339906053401055970138475738026794464408089755086464801217315387214288540559848133315487256256789376311388842012607879793807668398782824719118918971354588283344060960428542287444988031784049966837736731183966500575996949313010694570706582857927816094938264103479477737296340245071081283482871354838791756431207763381708066508745061605305544422657105213454424419760403196265645381331258353648254389785514187426090428939205628333960114103048313260489458776880028554826566597843205410104560219349215637713798450005039324503092919364450445458054525104343506611095185456855459350086803307852802889464144006582990329433921516844515119476265534651407699190373433800865449956320857193822297830373453521353342745727642255515446231069222724129787821044459816489156607683137253530450822674791875821851775175569752312503911941676385847477922600581206681394197669449767715704078498752926547340010625669113006912365957060097744049926068200300317765049457787879225486975592026914837926466119533414735929108783630080970037530638144426053193759357733864565563996729557669338471477979732016320651915919809673577606421524598975825295015989126516263818681651577296289524602680767078442149972492303892546088858573672704256331065547144184587008161536921542021769571911808443230717252118402922359654217126022332783540765472738277520474627062217167676525093794711071964287381153736451958256471341110592042083980771009463078511287478641934724271625979961254558943632213375594330928882409107878325557739913327864179860739553582570056174652421373437210534546813690287441325837328486311916231333487638780986730094145242680881802713467569826117949954999845629805022582648184183807121263657649006568887625183591996360058017489386910433379535780603746696655296590236800720699158157797372780378933649468588829068496950417908351576255633694095270256453504874097493252350862692578417670332075369809471564270721632485877964632434709849113781902891880066262082943046440944396805547439440370390982852886880604351552177859760292887254701780884994588199285564331475790286313630982571422729234970639195601942619106156464883315873504732485322054202527954053745262429058399171734423888311364784746713293913155996358530645684264325157724982395508685197843984490631628177261859121543744589154753658407153930506374990134924835520085967444753462629353918399571322729792421760574169843183445601210997664091370137456716742230912730186233653214719122811277817050679219113639100139118602589705301904725479491589654962346779056112267867645816518348485921865889513026340751338837758753005859046491172308492264689404487575702761764427840190319428714790637615699184384091447965495270659658965281457157742870376609850154440518819373674313913102291238713310827878003881442681961278295391156583971529005290605499824283744562929893493362584077222928361210550848493917871411113825455976864199418610015528568714868415036851067786985870716063481492397986643538988789179891827186798671942582065098315809155252048689380187786068218067659818613749395634265640638292179517614566447837102484321913541674877357868098857484161794833205386797329789094707311230149225412694368077857827200071207061367913203782228953481641673715775502520264846888346357287610326899853217482259988942355518143682588587840777124518591684490202377597852641599391726551508382071585290273440158991640736697555421919283325827550786109661067183565689944905883111627195970496264054024491868246573437180291291126634043202221572350360689585370368047126113160632254637773005573584642656674983438346831942107544324476993797947525191699495304261633745314499879389623727554577938913314060045282484047898652687314332710461615098784645959289950646124938938711110602986554169749893414301808010839962826713619621109300033576423058147185250539996412687903026333084045398718167047208742158761273960767045366779138472515580297482503640894466291541926959766241862439642904049402815835966695086749996844504103615691238187161296402639718891159690088371848462351811244683142292105191525483743941512386190535480867817312301003236980009183936079934007648971758613748652688046696791822003198036253595205834908097629713085548285023005454061289538805852410209957098818820069328480257805993088556766398304884149016665463217756507858066236165258326750654092376944035757000390621224883820718188371185120171091191169621492658089948403088845403633114042933604716322552600421177812142025680885897331627163644486750917629151128048080898016467822071040802621990185588449121985330799254734730260285542964782448248864014003185384068651834175560475722142831927476042072689408718511631742449302527239420389601667084391454294588086073200506490221605263008812616849814945523139351749129596117580632607989071036948671248229578273385238272791702631068766450349945267708082553787700793902311062205916280736784299687669360181697423871055984643470385043606248730704579943978160389034124469855588083215865085236335462007830739061219051208790278247844885999158859248299298427609376097489658308471642207899714235723717640877188992706446130321399353926357810599358270530067009923249356603313717498280787236304033309122471217171352886585826767409744850299043704595520261945087545769075398258990469778672464421489356679541374065716174431878182142073779061986630084374281402043677360124482631658455972496128089302117358663374346551308297382590943984472808191974656441032958893515418675793582663264514169301154205575662632636410120984168435347005261455082161932841645882942872471603317306049897441034041289257939893010983491688470779375982899272567809971534417925529474562109972740078709629261860448762867882658746248317549332430254952570706684503011292115165138291558215835683391180442428141145990144145726742937273420625627121916705058825999164236472252949280958159255482534274353533475305081009197845595253723947167517887676879785521553459213701378796820299344788576536329425861634288635619142515747280673198866629212533016872878643875827338991084894237779714988918645512261493661544180924637147146215823287245727017970123945982081532175519631655474942020620864217704876307446603027386382874694906074060992590503858166994016811041815367984297542320291536166623484995609093016156617908897419796666052051828950926825844699906894595085201404317201261132730394884571822532660232842494460495582528777474380628852692340672163841513742590240717725806937130593975567177528803301147481406539362009182642546396711048758685751832756261549168309550903546371025788653686787002672034329421894674964555084811708631050597997505968295875815210416253202187906462856690294241249024491202413860427127427165577543767141150430561563863680114030210015989478047970607722038476575022499493101901243796982381781511891796027643578693211440128937066678888993672556473946330230787437512680466957706868855855246488414848385578279864947704207988725562363319390161814226054712223480349158702609070412863890896217394220537428597034702665118858490962446249870205565221595193872410718971548444407919661903556730827447768534720917848541134511197610874837952331352036466955349055191260087505729530855336175252636315805923836998782740997239006914370189862030960888575336978937029550180508789514867937586052311229337458339747655386523111003749602270368599834427568646417076170980332286118595986573602118968621577434815647404747668838082300468174490010620320237764978813560472216196388152188580413588595510851459513936418415901041131792207581034065155579073847195361403962624308348897530632553875204091570394810945695586101590451274011391401106035569363080605407002756651577942161373988838024748733145267782485974370451763977498923906680144549175539709581315333751607184081566784806982582426280508498770135381054599561367286101310110740189730715195835107004570718434364725794049024192940003807163030167671444678797955718993692204263854841492372775167570543892995778970567964803517231777761579674741208797982151593789555490136739244897244684809473581610673531863239344530941269958472373117361714030138399646181426776981664101454736774838634152836664840542914154485199651502014667306684110916826397015781602984053836196836368069051027637971643600361685188034815223546689542568936322353803480710842876676443091314423049762643042683311077877950297842516961287167983106860544811803452903910561171386792051909458791944243029885185013980485724623931472663865685972304061043251758375339494539370606893092988530242366644670983688836638855322852765897333004051483806026741421027499466488258623576914207032321279147183320421997246406667245330095119248129548845204286534296268677109588699700610760259423082905118308816493709885375946079733265605622689300350333730104187941452814226542356624512464898990076025106402288511346934028665622525392745110248805674061459924694161684982115354113130720194814413265063901258648403795896020058521940107777424374562297496676439085723585313778027830117865281229214975237741913972126395758623696211877962663180426303743609601659544757548202159243525559155395102840231022336041147915188706781591115148997831449860639235461233218678740227133398112835729441428381108711414939416240562925921541856845852448596555961970155886500212754910777391436242374934549790338709910668352631659489921975821768479450609467296760445281073633332350309185723592724556629944410929264213734059168809807107865682966906876654657585561139187821988655821838859415154357190387321899319470447484229322765710425609207720007723132944413520004797077934478651759683002225558592561803605183405936491972015907406965716853862215642467025434553771633104293910945830577160978952459595955306539946713197503825973689201034997266558139567571880162202642933004621177308027038415280909676421139147548677307871611945419042711252742745744785218650706977137666513812882206034762191083454390262422579112322348503928898007201109968772992284271581474517957707978447406955598338409220583097834255926694283934902038047708533826324109272933530014363404258141894329556876959503165524078152961689806826145169724483148356438447373371851689598863525228157817448467263599875191515228844796354003979860566843773594320092086608407755507383820171131240379711342037881599822444843159484589685087189404843096240666807357415310489510554044187221143860403968029316895645088689485154244037406696043590200785999818671946087095596143410255869109302309552435253028703368805287297658613108084861871924598950974252492754254069979940006681699969664093994901993998418328315785647082829604856029167848493313101000852292341476643824182214262488526245612406957571463256541952358613054236059690989539351057249746342871450024819496855625831182628566435209747033229606472374377126160671536189726853367955905199286490999871251696058424166967215802643272661493717920991971809514346708628160095487668748258826492411909340732861115264859049910153761708545572384364915495706003648724008308729268493342586777595292450267619800100076624600338702785672938464421499118494671749329847948310089276061920858127667742386494107767339880462925686332425249569043728653222729763803942585278785271143034479927193968942570797327824767571406432723294241628091227925519828179405943076687305799435378196549388016831906980681170349779205958510430131196550994371256070675820918896526628499412635416143484766535541907644271984453101068374676400207900874925189096685653644821131594703945142078442829734475037554506682592232802478264363488874008425068947323090639860528978391000651996342918474556772487157766835623654796769792446821383279646737473208699193503855819418384557959740775390856501289285236500732562460641067396119750560441633951841568471787662634987127717012823349443551894781365683070687691947465189994944097313014178995534805046452252413837343533116844045193059203478985137388768219708645864222605366636948168956119117805138096361644662771673084464963554363403874173751050053491272267194949171174895306149589027954022623332836036614848700909718770805225718571287618590279493529889606470238037065147054451510120913204194077453073517927880326491479668632511839288220177384139947051733397104950478651232758562525695064891701377651970002553168979308071331479109129119333486405864355796840457199855772042062293588681012461217911975144793191857939055780955535773557720030574652535068152649726229167579197302802159524589414266248489235120235381013729876372243126968958588785540269099173654941712575934534354233122280656607366485132032395838403260304453911189859636524146087986758679958088452834821364224460811605453897182971722318838244050399955488151587740861042292889854510753704037685315759006018879252571070776030503569817817773070838874294462448532602482656489041971233153714686020967337034914215042509337923051553417585499107131861522810000303175141639527712682764618017581229238317924924109278217829021050221601302836107629419537633912723693787195890956822460669470638128280971119353134795536046168140473321289911582159446995665548654665002357392312882285592110570563272162006533691183043457141237899654498324812986166769541996810546543731137773909041150254786840139406538581099005555241706581384353153101933439727238084648463000697487742789517113618945488430819258202695400883731389455822071956544912969356239985444702072461710464776091999202948516066922576334479230612338693746983234995188871087671702625715301213902669928781093632882024457623472321162443949702022448092183032531154125967771017608153106243085115433582026443138482812188436699117855624501911541397474067175860380838565212243323500249044933663863208833335141362195279418676559815054077271689653572358500967140529352940299346279704458901947131668342000651363713497790001101159491931069614564371597502406100267324443520119323690761968372182593438808615401596887731735531099714407404524096942157915584366547390058724736707849922831037666827224589243372928833761629099631282310093890074140777140618005814674479774522219529697107676486025489822708097145728298004964031078822630330819694750748972478328486001175934165273077952025967058202486674255715840180386990402843955646780242087638940427606279166134389017491752463236988168936117201804258655909753204720437153228592038193946376486833697499466896578335505811294349010055537072403651687124012075322864889106096158234826606242849039329517683862981352582124017226020089925529873789325933470141226129649477998342885155245151736342832693172665234034959040130392609254394224980297654926411094372370384089622271523276926092972175354699739068504555561780670208041700994395026875557722519767413608807151001533806998238266658541617114076758744535580851731725314096154353612199879832631925335752453207217592089403999351055530870296609964235311685279722072292237261025228729339896015446737354957406637830197334964154677255977086521707744295344056743720135812382096223571982836321086690508498057221715862798777218744743671309360322498173901254680643597093488435184117320330346701074965845362754109300733942676045955273281476983154308442135899821259809629746850104560327598744654526973493555487525354985601370853652878243337912711537777923846486297259102687729503318572592876838715881809903746151005122510048166985418666821175685473906232093105622861161377705924245051355547186283133753135550667249321153528772414716228019138653231957793251453370678592236596870295643411172966446187937257104236801059984780770755674545981726679394833370035663654854420601406021865698164304849872739858041748747618489130299017778295644885167282288583029491213709905726777750918811920503964334499377911192374948778357887470694549031873752641099318829463551521628066945686768194331714739867557777719968418846583995681492615278577725830452167026184672365374485447542550609401186070653630137717532519098776365231303086528247617811454586917451182299670125543890489261225151057178450614700618628494107318557467675457787854899881473096817052509310735804022625553441369581723927412138884109479202107802753337902853245161856668612992061255912648029842451201906212481828706391374258405115567822459168147819721050298936711497933484751989731912330688065311751277429060037516813180007101330409981348296119379945989653887767127855237174252797814955510985351267613380323682408436661544828437400851697242602712815868157633059452197966194853532130498598579899033539711148331305684277347161780375092875522414113217255654933093798777135971186362434963076491640413845874285066414263987402984909011966921400303928125845965511764066947055886172738657970925251603627906199088763960200566974182609570973153974358163030545895459316392778017606178735365132369073434862113835134051426032131147228824458773399779725560831130581228739266353569274410871951263799180859491162968278996289609486155345045151747169545200190397684906003733688277478829631107761263195417754798290275305335333883856999083399510240643202995661076871862193378659364914883813276055806445563466814454493379389112797576319251777779300350574088286690677466527599036578599323294230986343687892331819251351280964691395955827303551069375437848367848658688851698937514476386282784593514166891574386031280110834044584677254240243829716296769374322297725574749077703960425862867691330375980229036165161771861722032306717548714883657416111036915525784740160445174637813557076174030473627097872108677038751461768124778477497662910725866009426497628898086586192440859839000846635917056483284275628904710716287101980868263431944378823507879478694896821402105841072429598474900250264130588797351492181181413885559974059337889618312554103680090241001602102400200105876413506725944327536051406391018058036620610383094010867641502295610811059776474871143947640925544360945770972059171580108779290923553335903636909538385277062927204617491717958450709373352961332417866668123601725675289570790664956061739274255228168764665367019453681090941202946555367297235547531778536523730949624982126840391875841672721492606354413212986412051942248222669393798190693647221279377637394113351173071522116180526979705841153369007208600506503530857660127250578793866006320276486864676390549293730563812124980860142794540935577628260475355378171825786178235953021556394516712890610685086914449424866012217548921678992639899528977809531189883545185598902565867978870604614395343963332992954914715572549320229348304814969520800441714774892864657878422103625042339246876721143789768361149450059196344544157951174095259033049351861252452428503770164659985951936851272460439193311354666328351515376766174635826341698745081745770925766033108215036380799359630878518007885557103167841613641295160347665791572625435045324207327341092408174763560994503324453545794625198924293606567586867012541567805031837583088676384704381040072394285296658911302619234314881015134844567323509821813072081437543559138917192811063449636316554726956201274268449338055575469575817279449365215165329674367895522386381764081833633532251680388002624952282469093651237309977219155304845937033564779969710152468356409078071287620331822282992162524252375298335986590634681938051660776744890492154657849444949869515034905623852979854561038976915212351540868832856785086086174366442917622459482320695212642213341228529455154582814088536135723707324698864636375844600084924132714262693052626829158525396830943765302284163039759132267429735557602568635174076150830012911685712550142309772476057517852293084383689898829592829405751284076219255592666670745667947787395274035705298535168532822012280141091471373049657001365013938410908259596492795086604875117147974365875455239173083765189015722038216655341690844141970652748396170184826771478257907081597295811345767086628169240525292611744786469856900760149633835613392330890023080824396126228545210502170055291347692798345863899067424687427692921698238328793666512862745107707961291375593638653625272665321775527022355258865875795671760667530219009309960175077590180602958812013815889932004366624108864695233884384706091178606951872409459876171270909199846886260617681183919539379228649271250539798452493224003098015285923245910263133915149769855019856261315356451684597596298421897563041412541526210178282060834402458672048189163765906430066240543389666457209679635367037251956163003132059990011532915827697860817393295371129325611436384634333425791933651457912977009582831330196337875596455571002825045495742685571320811615050781010190162554651535539769047308790819598490720030278980869278929947587763423813876757320773706409009639221205467135993451299625622582002107722571304335597013402873477566371950486489947110060287397123698343964919740784738686728379669451274128075272410036064702920596218503795370389335087220585321018000791028089621959284058911403015617159593290976008628070218362919730986499394767052553041196581266202495130509733821783715725797616405182039197515562536931212569533161400438306906723380710786584901354235085537316518800005396128441185790681511660850810011959822590089886203952646441409999303854258974180811902971714708621106906044000516968099104527495191345541894514660392453868356646279360168734955868187757800681024132584780426670926040563646071529164495391740801271132783786864725804276993610092102755025958840909597397093872218263812166018265897854950653528396014465341109955060006728284746104167368001818993441787580856971405001987529305205263732489493402310747532212456558890156544182187576573449890013265770625217311624526932566045287571587746733603510777722484356355259788076980563552326867525565155054624611839808898006351925198898180257298470857194337254250255019766799634059368286544946527345980455529622539205028684683909871831407851235571511522171771583407444978590294967934364683852075665441357077056395908106016392290703160324362588847100679565788231083391835087722870135755013962754074093473497272133055127992055988398290664999049771499089957517470837717819618829110827551790675044112172227453783911615160619323049613577608662278194696023798067161375520152392994521638270299647629926956985040658588954006119495403283569026570860043063210096693427533125533170379789124756407709415094709745943170916678031637030843925913996182240265316429054124783293829403436486107835107215168815525196454325659903746349065766533914026031097851030717205504457360407385740542946621080292788383522912218073197370637448527967162080104657069616722887252628225054357867111445754342099535418879948917774695873505318263573822037836902691244200995724293837912626789151025765255340281282275448392577351243586216689596063435911822047667619295241526776852105666101737239555399622646041059061176612237695645915518004689355586705549672347082776958882383325085044143682347569026134149816610000523320001303412150481201400939388706426501137586658047304673941005510496177471538755568383794026647743486642125332675198817912036725798485481732955655555466142620056743093918772812414583571353852687074609041697100316025816505149748077444653356754517646591515118623278835868515692406708766477172635200759546104562904294155066180314018322550291646687838895739310916459050573761514459558426620580450820147173979266972414502862939721731223283488557244861181387114093121903505524868259600151535139419784110844561859446872172951683673568882020628837946470458645527834181025466883337755943474164460526894980352474295902136214056402476053174499121220383014964735951032666927591848922992271828278979997930452890585935735319667592908869308561781830813659600685040719737005760225824015368618946287843448889488760310750448013747865431277917243435725780630272907499334441307965898688192760474174243917390090925168062029852624211414201931747617083954787800878848804133634821903066914539791039650292814304351033663594091083139028355519954294102329704748411672840292279735595398658248954462268793316655319300202736394466043129424115958015663705898297384683711954600498145822751231318873003748741822363665996552700789853838509212050707077628690875679163776778309201503049087706948403478627595507926986160358839986937460929205289056815051081350787466510516044668520887456226188276456521399734722698395809325580759411532239145302965669262014360443170656112840914901827898659968567599397053245698392189226013745458843960471029468532365762430703032691312695341213761146845120401977514891784732096057457915722509096583042525407327653646952143130561311475121630593584598768147694000226446060431681406337389072469034198561968492728565464818630851470987965819021134628972649983054479153653470600583305835940887539755280078642304967632251961507937281946060615374184260543618633567441649162095469751638981218470340421589620231432938410751022430266235472072671570230652015760520956865818416142542409982481871715595446554122579936417398970093763159436655236703419391962483553198968062633981013756307613286295391918391467453402520444834738758686783680628221238801078287402893948887100516433814008928962094632255722820574081950093492299635302110530894350854715949254702601350196444959383233789253363940498577623211732637855157159737669129962507931380342001040102263418361403478186599276056721755803247619061515489797399196687605420832457218225114702852175688834264317077849646049756647802193805400553141735271429693563607999301554498074509915886261366378191350922733021219400087329861436755059291414883777269271307480945436031880758799497909277322592886187022251971889553867340907065006122860871315089809652569697969129468044428095639652955076753400403552100408962327535216873148988968381388154840364739764933254757955199076114167138361665188829995356311869628044531025362660640581857205335720582416460552064516728340189280728892249159432588175526116802382866547702859511357907826296736217832798863565287491205562145573357968774622626159709443394645500900809503106852857122725264802407447287899560159738080930892139320210053867668101294186671263416305895491556246034060553443976361017502257621974004579310214069641519252378857075702106543747083452459148746060398605840843975377119481727737657592700022007410545878661976427232997564848116508114154907109371198283092977303528689367690415841548901653985819482171755824307755318572884240978086836113345233999123634220248620930110215157637554068035123338217789020789530856078026781051575125607287690691889941259055112402546280921082026946395632265787437684604814499660638465845815665889924290927142251778541488628769369178012700993716713851423332594869614196617521493924089906403617977038802505991005914106769236393311999751869280640894835692895077591834438912161046757301096472408127711922373921751439250728075169582020090569262667306188260513223158352182292975912058161175641601018200741372983103159321971759526649627395959368030930403442581623929185362563240418767419032861190557099308596955788351385315744876730413077176781278543663336441778033672156714756459012853776919342928363999274242905122737118648598450985508384867451629386302538339897184187910336172169938020479127334135157993678717768583836690489445278401585222193370313970171396782547549692847005874079516253410708204438816103678878653821453274081520655976947750090659661050753600414753221421299765815489466433614929719619098563225155315297181592553123553378749126106734959587162326828663376048526532785381416767743994560416945172220855688936158351428943446402457782591376053821267953031496769718011183241024148508947000440882510578371085504037623003082877712800463442185546953857325516369094319742124644362480950419928998847131498616707565477926381923814122142663672390578963260387628347121307415420200375262574073753611985259302682950286900450162844295746116011447228252197280059881310425177002514780722828986093960098327796270335718733804907425554644626987297206180167913931014263790671687184238660842302129835879843378977016468015950205943492934231269461563192003454545986850535355916011133357615764553758195415658849703156992090185718001801709671578201278862772722236343457347260052243167589320195311149135486340468880248236238667686229399862421650812307986269434725423545097738659449965586607069783792365360398433284340252352930696926779348055697818707565128370218921768773254304549844517489913212341131914476646583464828146895036990302578638040073527864221746935821892202541841805837748716761390422090752891719091820006205074954493552294353254843732846034314733505351841131627838501724282815251485247243041313141273438470178032772674144377997211798645578566990756125279207187294204213514829390703959720609836669850433227278103850944898728616424215416364996682120204022734861790417638759753444924737751408935632560311955218140892002940383489745736046445755151343334046776473654290642265057345068972754822626086989323462701311276885217390286713555729924318689248107159435416105479277179355020672997588052853584316586477960776907656872034068731585679416012342819802750721462696012990084909610786635786109673020595533058241561284622200973012105493962652591266263047146375917027385700705749135942872336471709428568746858110010019015199244267737235283336716490908045769568754060889747427119441169169337941648689593254729874189932226010853868115192104433033348351826372204935097384365108168512956027681822752120299199096871675220452406298472786845604422783688223016890925875441107253909977015001420218676708874692246534708478550380435981139093435543324596895327435529517751948929671554996046400908445626801161374251256260239759656790195823920059457099461034457624777820919039414784708935908838267328839717612840683116811328795302161281068122313260799074286854244652416418808503420202997838116234723008789810365478587320674985929869852991230266194937386256517661928518680434655037143541557429085117335965467355276793226819964453919959755675061426192184238601305440598714176399110603424718880010638170451759789393361414172736137391827173407773264590578485170033614561522778094883397332646342380798828321601607269564132249116840006319239701789627053755761297819477387044627388599542830353660796933235631138955317308799876857803135332223908486751577996226691777488065498252965424624037630741393887949792164405018544567604409241349556275332562112631568803961789543157836179209281286206828396282711855563119979167080006312397950429818102648267565965980276682729298999530606687672089543240864059211371597090672665015532647939304420133669212942571153963430032965143367360236382767544346269153789688535329437919698318025065133249630327139588633315412666594892503308598851675057943571384270704907184941055346579454758503015875827955209376445531387407630902878754596918562901804959848706551578714657622299171940421647746137316042173548270462310544668760847544779938226767924897299290137295780135028058389877332431692243469151877621507156404478301641347366555247420079613142473825825982466187555598598370607251796624409174317192444231085899395836960111920792880834151397435673047110839526102649934700999277697430200838155489373508460367681881097706047253281382812201369818909929185083014213594096823703015002292158406734388171620646981912060814001153572736682980660832356019933035304665543620169214762735536512854849429387134038951060449291822998483847802518341429425993742155478646502869983637360381852897250344030836372712230626448741828059848798702191843756111731854931589404602999735035145789847324986737052140570421808171904917556165768125483573549117060671827000147957385685583558668952120709559731850643944749730912903012565950964221792096370891736626281307128506278269377777391284344152020528016709860692638394586124400573932530825396191242565829422722989617850747893168776338031170602329295574207890223279643939438844312104093301704260097681069010687652175622553049993185002369773105683884172283373738799767936357765069786514639055978311772554577640618413789865011957581440012800575241928078114403478295296558086963655115537414385485034147678309808141646822697192063946046453735343370401724674113904578027178801742169404036648738312452250155325784885428915465358698061620410439875195504944218196454897237692470688388977092103985335194078536014546928580405374235809892663503231656126560636967903435519672932771380998084331042598613001566872442192816953261096709088056807074961422410514579233362788521767929874213675079969866955848700728504710528421152663513524197326876219980103190528118470732778718773661545717972740776199627961795260024035467113179067848437258605562084056423373087031228867938583316577921148586653370872815805305649065929067815689942675588256628393039284361240768680004948671240282342009788254485900142102007295016544409169470095942729180572967499744293628233889827220948062758102376094015387600162460792944637643314810974947273746802717948905541246813117794784528769876160746918415100559309559931511143097846908695999013119217501128145643667165111514503116194748669043083588242848209006644727269494952435731619127593056733705733458324792968806670771506958396348784940154293616052214557572689496454594829263777101059202969461981033384576845017481583651137413137286585962516501633168513109371290803786820802863653819396678524701015011245226653580182334109493723347179793320263509430003233358843901428246049238877392195535163042305203491898860028881108030817780338074353960031853975349690148244832549403864581753985313137083742571133926067036771140407497421788561861189790816939220292291548587833886268973557849467511598323013500304798087785801403048057840386847506724843618422625174508685420335440404358448713763095516568794005951191814650453611324583405997130346482289164063790993132399772661875635524561291387715571893314490618068425242341589830123794856049507296480050110526443492714029711737151326331944414640795990662221827412299549710364244636241144250171081848102803781445843363856258688292076821162714849595024671511752422866618118523107129854335838029019335033087659724182200134363064687692377171267549099346111408158753652708094443762507592864915700373547314201017941302931652179826755805454971600600142808760663907621497957235740836119779486038249110277571454793991137448813684251060484944398233638868089678907206134384931783176111549079396778377754355037488281110400522050910956702087185975488808712888614367124604658532635693591102782700052481806331202373767894045563307914436088786503301140564423550062355139855486328572758799915827359297324376552186556702718427463035729734628867785758385358195502355610968220631344913958045775950042957556813574415798141413167252071187033880119911968280026189520233772661862506582556391277757572291586190987000276949035794005931582716917692544772280221070459122451092699519776649772164414824500240514717437961284749175580042709087186758000012035886491682432909194171289566595250309061096772584274655034149251835209851593416859566722676041827548245992064372258627224176593977267675880141746618399682751173292659049739471179661760744710302714230935068757326974626416923112684570106507925483952225535370337659914071830098438377703828237090505319105046524227879816671836030955746399805906106695738001310335106588125188835339685375459819379498717464751832616583769539088771484381332595737232924067748468495463550123014482643912421452682785977839224565491900140154383831441765131085673553804810245937070292090932597727945511774672951284648479142605381855638474221923402902181794226317487927646373477819387892175827000440686056634756286177204774746346373592869375520166714858739734429598517979232916388867416803605192366330038569215669424027254745519058540269581715676961319550897758209572446098450342133981379670844223311511482641730254172635040509133262450493207674353433252013805382484170678599750748170553292078104606342752390841302481015365997925008382256886403384073637470709281468065091237568160769905059879472668112727118781181091124744159351592111335210653521181681329438689387414976683315107293027984136723691536857485484217207493995434807182499465267204070331068658050939882593645610644097985885756843076666013088045363523902569147008027813677017453937527823890205675031893146517269697011637854196063691861150631539361047426612005104664134607958672551476517508040344230564808924855064029048709763036547698205525539248613508941672107362870623401168876071202044688975236570530923735722085795335863681714009594085178664072828456422084842801978368165117820693242895903379834056041421867449010914120105403271296968452252554263965366927562924285844939117309536537236092154894714524839080849148925812272801128919792227037907302207814219984906787217485419436615244787399236785307583257196161381391902926031229992234640557328227645587453738791729321232643496689521294616690618873716282346395386524574129941969069463961217904120204830936664081273243963566432917701287520403776763465302102334457238834655909916702036057198006742908059020397814603645525781827293122973778736739944653038834115604066903745279957899218936751362726609043584855347339646063215207164343148665750796762523455137800932168629074762505064878058981313268316098342914107962939560532367444272132182088129302882970044015056682889887010314439637900441182067584657697169758698909017397285617094282800960714306517468999929703283601831546350524050369458174404927071271617292763447268800202094031214507827490594468423425523597735275627756350466970970603458189785664778336346756722610540399695828164032209540149350881662613403573685734881046286982095628316376851813766498884429731730118803063914046219085088695849224909003491822706543449228189543454625329295470665604569035957773504238791216343778303835663950769477899880975105017512264070249436418536302026276957929104873183894376059004477872515181100515895695862250025080416318247939147991377212774312207986321794659395507727286981787672074637054603222497910859568861327106661909314809987970666667742938923451427996560948987943645147350750244733621429386756882027594028802583164091157877899128401363648262090170245078511183089569609563203458247364886265459174521063688905389357791967270653326327664148261778909614887076985499460744307693063244663978104911276091539281354897747523831482866952720759552456466717047687479548052314997938244588524825497598344935443344150027712906536826787925513233281618743940976099019531249557560727479322497988743487723353748990921059798212635081501977052716441129281547444525687398053412121421379713230034340690133062536696557019461775388631331030244569621264586011443883395075330726160036769265053220745937184417377944049511937435367299515552590928362008125995533215396454764652692956568148604127694620894537744332272257108290372729313158860713353289725175980474973931840445251818190865489074302404995608258138647811694555643601681303454244951965121562941821701648180386120950136879906215368683891001719825063498743480404586228002056934099256580703705947461474927409816255948927218948557916290156462545003976669753025678721427310614295701460630315492744703517140475893653654384403033604513188264885986997655675852945706913789610280419693227741323700941853409332234700046551737775412459805899357898536122662540581611494152641406399057753572532273112100063650597983587834422630837192316414179752458652365569037260178796214799655100296611161790607320500182738682098850448415545933847377758848364332671329746543035059258788364881529663898864827403413347680468921840617946611811373106379649734529016602615866854600889094344738295904511534995532976326944337505402029579432997215978022960522800831490322635981993032872177597713667816686656584919420285823912783960457897752512666115429092641190883775771148150412290235780422937013810318250710283130059697426780951603093127586540478497324165444767475711789332363394189597551072450839545491759274996636365768912748720306299169306172254782447020503138961544567175913716754508408462228140411822502731935386737279968768471601634475433446704976723446366229930346220530662273869942074019147031461347037690569454071401875904437623548613932535890550915307573069445743514751725984450644539339154455314329866541491964715428421577993179666610180401159181615099432849292717704998261511914136518501464881473550727357709068817546840123754578247416099489082758095209338551263777006717190235866858555650995786981754590238785040093178969955115883543288730348387951592958836231384718727653963501072658733953933162599054785180204852066202509463566763809727078822002324960626201150380722986299474341856620732989568991181261869391188181883166889042601873531574901947089246346825220121823504804497781980127840450487422399430815514089834784900666573276478727750714790564275480672253740018320416465920344897402797786374438359508674667693978062035955201873534756879871352011272483655943597867863800165022353790854880749012690578440810763484698284323285149813259920542635433494673664145256090016605098542001994373795688429046734872742321327395413315605641862472748700385438256357875358752868693079630657298153540408808193800247594511705250408613292863914131755325132246602279181920731375646567975007719734851276687860906801625659799348643803187484705126278553048428836078783560051465405690384350692862620372773751037401665097312013673287900624569476511646385305915387542518580919434078928703680928799164166449545530772023617128303405321246657627927233643441027984492928399534158172224672495627309338726530488729250269632523969122224660514235817937920422082754844766960533562906503311429645710156186893274991218661966153429405460041768038712745594571268503890987129463746071542676915023186478420347392329810522350462476174126232157828296947161232704053215473153731182857640372473939909388523801383535868141116945718094132151559145349871133820539715377911583491724579499005435233606375664055046471320321808984833797203421644175381602281352340107157577534289815314369743086794280535539530203987128358262848545941577560216130315058038446268699661995286181562749094698889059228811076076033823248788103852419169384454007130940874709548395239718501264496027862147551390407859609561233499249657395989119901340409155975050260282269880449815093430281190684111713697501520345215553046718524907349212069492744083689728479338159927377767883164241195803518053093612753328939797985801074172155102657479129361745854344023594063709674548355776593906446503841544516132535204579387839299667498031707496321378637247848644203699690958585124853150567110901835660366363638300997852873021944077258217682707256759213527813440763649588212187224510171739736985330058937995269805117080785677167088784872516575091830283531436645338337380140426607186814150468605132930261541784748474936748389227896955615082426717473963532628605650329751756158812061588887434044710215497168806795380040944380842675853458622997470816507826635903217272038940659721813709839656360828445146203013641403999360075214414437667552268655271258669991337433026635361112968039711058241494722708605997503036701013992062148017985074437306623001374577011664905317304172423697129656341528554741946876252074996334340093407175405749273992314623657749982201263742862534379803935288182953632666633775864490484713230027335086310724271379957756257633618760497164614147087313682362490510660599780190174514426938033758519245444080236967507034859616606780718036906481813337308283876377366342042647189207830791134406307066858613938252049438384070687863374992143656240781868834200550273223414553974516884390597131811161067602030422493179778853804744069826249068774491155188944924060254790976363701592706124749909046918499161630923782897814051829338556334621065967275663991310434239750376667301631945484012360747346638756350205489275305178396586165176501002410992826079353291151204735846623455764282207316974162705263903808726774011420256478172091162872259997503058935166668001749241107566652884154685681808749840465324714959199630675545477675781697321029683298562168800676253112961085471127804374794310095367725317487647196958852030239171744496024291232466281823758702708032355839520374107587027200887096298379324703119327262935831754630924418769703755005468184637760048560718789048903082015792933763126774685140377718438732117378144552746722096808922141281211744493826982316137987016283893581018939326836602297333455537099625889245132964979722279129693422752291532662924050569779823895625704768633170038141187840101895293054276056009480570495214346918689288783348252621653097036135105022949616657350402939853047027941979987951628545318726414334106873827381283943990986757290756733323629223696721834679026454690675891434684425211941326918031361479253615274008541577380358754168720483350793045835812488893001530283333025088304699494546732557581085790911232939813059240682213491448243117423674956699257058790305106207401397551412757933806802976510541547876894831110257257921762164696663469544123006604292624716357572755066893135913483207174734275216799083248786263196241882413104932542751246413575661424236070228403186910204409749428912371381936389035622677457196452932178885025117103187700154609765839710415846855179265009032542775774971124760978770818085101850145771242776014581546180897733999689740426865841967198343742478678165875291685711332039292450258923287806770970507166410848787750015153332069286153815087061405008624084447928001116507725919767339628662210310615096160896060487772514620991763873260239570057694699335238296688994109205805610362736068052716120894375979554340029012115683544138504997040087232160452411823380148897449651960564993902387160523359325492314855148116674942360154204898504901655844679368500670498307180122892249261168071088321727599318277151678733637518529937557235233130047948506696748311809592132610990154121867737052031678582018966589600859749259051072262069176839817225801026267522594068932088515630817430930354254369939712894062112988590690696186563088315266673329233164294196285252602229380082987035144605625315237248599799068846237216362312407383442699533909364863834948144118206083461320650208904094113774274173737001792140508115678679157562134460936837098565946649008444869492974511678068829420071754497071808269695932722009212514461314732804755787375373213508580657731174826157819067983860234411870101620274469975476813787921010013739112148521001347496383573319633448450102941239685587051497533312239728570266120341440234680775747924763106139661337706672401578992653970135194498177935564779417625012000283476951062851533477953753562528612860840070059826021856202846435457451058646848271344483286833487255061682117497275403524764681445185368211711890258827562607690408364553236413526028380390792592770300151727274569861231167552882772531444009901485673288008134706558333522023913207829306593586312334945425416497251438586578661050355380562462372369911464745107262894181073189948518498005789833632443816022644241865142170041684545538843518404352358441321802149879182466730187385501017233418094634567382857813621959051957023494502598808226082852852475916670348892859280750322832165776684099292957554319854963418906571010207441387712911002863502219174586051487088895047143628126437536427603735339359084408075491958032656683424699644632034230219007171884908458536743566955256035370796912681669633284879519817051001278007559551507457029334213005159253445013939293123665429827280584409288467849388329526883688575972325655594529261122416810646600358734670726459245022546986234616044915382988086193159684356491984792083520217681508100809019500845770547735736453951100727209269479054892507405903479877300110538610438960077375607549269260235113853969196438492895178003671734086160826111658051308729656611420000440104281516572523668602869223314477567572788334678396610989992013057444305624263708110588342607830096653083038486971931052691922413846012389333470383036970783066245710340880408442693068302122428287823841308237275083713851387609274137335503678734779582631176271814316615476230469247137742966086753769858392405706604312885146805848757812511397388656542634766941009204809287756390907210089025019222420678654885211588185196738275995934595023562793785509079755300728736138398989759636018262070329169640958364302697766292446653935097006630908005021940167551353752044547191122941130402726509428367198794837037200198159133896138116157492868773899852498095229553076597857357848838652587763112119860841743975840387668434135911077772181020924953468291734007617680392357416808061534491115821673362949506625744072075379315092153473811793978479601387799192764063418409208353110361625038360189061403589774637143442082916649514380692684495436731072667393756183968131701165129308424332808455876067446663798771027836235630099132109779361602240689034324321634930109520604205698743862650044382639761379255363611082660464579441262682019032292587250496663137057182613377431393820235787807856089702985209297555747696234935549972910271217846770972323429971918121277947372801794072434419010340456576439449513247330439972256743842044796696127433159510060286210592810742093395420252004333520174545038560500710180325109962379755083785245847578108345588526074845980730739097545689335207721684274049776743650317105495120705722776088936334210402455047360430749565777178179393214616247956068356587875148597651605097492204724251265417445023472575403213634718682972584499325930447413419925756639036600061103697345136508022914707408841780586292907705390048525733372354931463895508623505139692305686606187240722982191970946238931102723998555699015451462620931463796029948011018165420130177021195497020752051516261558698536590029817083158014645453608322199033622470006923073380168803698049329435837570893888909838678207584812806471538359693632091686082554571045028314017832240796907942600216857061967850119980400686298666781143320146135669600431319938613239412118085694359848961486615772514339071697375012194482822544461244956077374949397713252938299635502524215075824824368658500443720822174432431198025308701916704084538659649690349254786894448759807200094698961199548233041273084185984527627858110705135205145203495160103126607631494631581150111480231758529578970028523511397247833729900975495152469571989563854566834054830614363571307211677192504652604620575068316157396466847509941103917026074461645736359173845239227317300502981487453312754472272689472772972299957474346190588737111141800201067269200053360516051647982330654089307082141172135837172518171341709070150193031166606160622910536710833956962511249903331446462206118185342340773679611516996210483252672182793696114861936086999217608220028073339836898391152862500323114699106386207619296704915956043350935967191076713104652727206506684268791144139495553929923158207489194596546214884983161821721544462463541069329883963765745085366379135970422975393577645163416917013814160010649882114957379351136589420565064782835559218879688994443861438307730466919043730941299125050927438434908250457222534049361438897580068231275698500543381553447392610452401813404570480423492358731105822659308316806860917380494196628082645743571967834971891946625967584971911269660808180781360349567828568926152157248671074326129596155872462058223347285431876136612842280333704393071747766026948759202284952761324503745102236031837503754566663266374461676867689994293879411118055534418625766185312668674159385371979388118249905884272101188060030589035240992357005016508022967219422758855586287586910992270489784232193835380844149697042438520646616169431308372020723626920713097271549107086990436705693631956876583241905782845698937655982843049251304606564069833168469798065802505259867987141127064809566805861683930859565483532264261376266682173782713202529277584856930238841962989626591669610036723152108526333138518251698338139415404809691458678482783252083790640911803708917085157264788329035203059871557591047394060641819112973986004298565957153401191476279018907256251393555212757968906421482917575450990721796059105097056803692352627617671309498709820453090805053784817739985894542566137968347415985094298076456123455845106618230858654586587932199641826338026143994174177514473723725917001249541448491405432464714285283001664742645034827389343143924973746455238242411597532771311979238162709140286081812242865113846276960070257448622455015936923646629822592557040779581638592535101699441865527606693342839580100536182862152007597679976119142615226692714846399315406777016249565683095020881480607675555210279779760618098656608417113339001763449472957035581267136354627749320764071713801041622743014654583285552182870589979667325664718996897060432524047357770232549502510588482258191091684635604714489749109875865794239397584315754186779749770283725648233046151822419679007236919734035078406561331817474743410131539276316965410709591897318898016286893900231071092718653129526023694431850333344983535963326179547329523284442500394527526909017303967684886288539503318252039787909505306793054760128468837066754347333993754893977376013824487055450538522385187556596169152914482864080822587064372716941972862104883536397522172677534990651175673505105857539876312263118270574757419501971905700014700145312223317525055064656052408291305966085804794359260826065918220881740230834047842788689554589868266139260114894571527840856219752790820244677951302895548551646924204680305880569054391123019236062626598515785023577109703762272692264972149195612360897187770868587040569088595456497406955795299429940905401319900248197380713366888482928663273117322703231029818949671792869769288079600327299788032411120464448252454355204081876150590861797654691553227535200618439433411609045486482982293873587608819471051685252180218116554732336601842259377057854203354143177152376319445427088896198059035963486135159983395049216802531190873585937152128879966898137398165766469286500133509124045589221709124513846217681681559436533398540667607218796690148048566881325887849096238960042877868558775438908135641832030374984177176820418562893089977176260440861430573328666195559613045524652594941899019283764335909619171858261274365138732513152790181382465219420341638489566786702872499993104206882890918524456395004949288915997748126533335664506873249822782960405744060432088654440414710171082651344198226358664089010143420966620558694015727651942802912636907857042069422342948983959326544405768147682456998271798428079184811099873668924035349039122956470694169646943828180812911828907328805553996030704898726253150992304849737347553291726355342061704888274201449704914632475012778180520374010494273711607976882465835448339369506007783464179550352302064396609089055718378018938868771440500342640110102853510491250116842801118875788574701015714358923874811314574108851687564026739478403474778673200226991482664632252278051472118935874526138441148692986051922078918059150711835134830619193708473331193994426294030974290683343502626183774605109462601450402743103355766564740075116994565589803136330334833475616205433073852680833704218743060524333876619246138482573964711447103614969483229083513271977005360629199203821417222899264125654234236164648536429624207162700827216684178496722956714855386974426906880459868598040078673168422726887808133351502713271288201651036916749177440479224342860615991201130958531184196738975857504899115614859621618207301652595807669105308835194977931194441227632570043610531860053393428620539522994905880638848894390700864904568444337184955128220196483046256482688997278866790386288237907454873857252672290941299080049326505668413444043963495501153127641598734978171129390116260693181048669665489930459948713278920198599304104583368641971506968465779798730583713357090147793908968702547814170142873827052947687867142365297872575450368049153120349684552908098772665289310450978572142394437072509310798364146316921002047372955404452380340514597951896148174835773184645256391476408345818072204896410601287610568715543057795454210649936067305237025481837396741156782621461920356515394518681724967803198979622364286338351906265923065820652576582373655576581842995587280494922953065205423880016250925659876157466908191125724773022576904761887327552754491114878547817227684196713861136817625653524368707871504388608557061395182173518001720175656242945807983589888935718383983803423381567932059358847570393643351849547868106564738930653536326816886989369532346345717872833715500992295309105987777636856655011458708941766283576081250563760939267048108227204468085408567231110971514591086523460488884273076286229123953780808164245803201455611868635457262718535574463583004693811730403417880661407403364696684329916214099997323573395669997035637056673059973031435887699471923174619152856259193048663730469973254224728233220371328079065683809667122313676338286534313442236595868385016414535523497769274571349061603270861943906407742115114475008634985936565264975669025133162107885393680741405649377263811803987278946334021481664411257298377507145507485766844450339814302346903584776096458978017947091418951904561848998663971297792009394989300464574842472830391343453730088422767771903047601978289861287522490272867719600529442845098665217707470274410442986318618072809845380827578058189983665229462855235433975030585056492033864215363225391137513138746569457905647012506789685870706253875788441397648997593330587093305805854594685525770379467316848159402294201091731810221995720827072167607243470136787822794298760670941454523464831259998153833679523532670069757647536265704219772028029430924730136243982472386614371707753975562378721007930096968702457005669630977423420342661640943019829552900773714226179878936838918985197444357054324744063501047764450865414366606467954331981011498236678817564692538996856799051580220221858963996241980360794975088135448940662642112867929913898597352005554357931865781625134449076038785536498231687947599140543294586270411408961589140332088890282547864376057724509948879507032420692336129048470452100689820330574442229001767700596645452762646481074067382376806307673685755585426733935099467465731345462813416644246528155634066417574334388299269627536894819923763927545843520215876170901190287408227291720595554064143975785376186357909674451584877586861103096336049246542138815715332058586048607732086251349351375392109009267740688390196249115269449243407068417272609979272143608432340503482148545921377012701960346272827652339656663509619468152483959586452470954989864704059964591746040033317155605581609833968447176314664192692089909792283204811757031903424041146134711656270436286926592190303392350792924602890551892465187440466448777860223568859846901982943100265471565887538701698874365771193183104952468721680608844313786444429539560417243034434554421448788015749080577978338333349935692195845289309424731746951861144977747063872963008233934427284419793616412894524256822355561219232519212097987128780303611214302946879750655043445242966336355210813551808838974633187380184081854074369689412256142862405474242642030867607361791879554711253253487147412565311552647324533953224628190112117500844228879901362210329784453778432647609171173662160990833902450509469692124885879472433391557636011163109752219317889358182305218914936732789724669042895664010259842100479770185964148049638017195377945188037186169785700188126462536973573124672758136384571859681008722542128530458077936403416554343014578229562581817636147949034826356637752236966598813514916948702468842190198825065317893189447640051227220325913917660506240865468739820423118092265715377178251844895074613082195372802887674683491312029769716249865679794314084412393937701013931877012008620103180365401241722875559357839402370649678847226926427853485734961982348013127628006421476060498910503080580202624822949184873016612966325827880978456403771536165291069273660793460761095696739080959625366911996820910058670066386400320538095584470155522508868618276297996537724531851363178910660284355774432877701195309758791304088402360128004301697357071794041515601212932571512593602224002777252894084354496205163358562046820617109281280277484960194012740143786906430899501454104965595190549117346915639923409161091453313280756542036442490083020565627792473283886393772750034617390103429840490830442123029292869392884932266208421512075349676933490091308331180343321618896517579762711985771575432004745892852612642247947014141848705308870968923214946584603237833135279670061556921342333108499291756810465352179781482714669396663556535705613575646007228554528550407119163663762047963939395593047730793412579916073386314750060087160465821158736472642853373100643318789975247864833201925428838328834515915107586121755739317309200703546869296641514988173474210143698715946890574375436118618221970591136576888786303280533221755248467112154436688736014237289533175266069766533240224688712022736740063869470169890936285231088760140611312948757826389309604101267855983244519999124855833251076795084166969772878635286419978483925729084281086905554090788035503862723962964815458265749086012661427662084394610067470503971098402876947245258045810398745290921482291552236474250819653331699481851424098427824143707708075053056525239035860281349097733427602617369300752244122044907020748826884713959486892604523930160559824944567648861942321039612739894505248782786274771921616889611297214981271729084090398820892348244520388943333488023245928353272960988843074641220449572275095422607818242153413806596476240504117736870522290715527751705939751373479176468193287672721522875654010398997241224388284062705491486165381660946879075921395609329412299481963602149595575845745082772790795280168629818327530821007607748572494019717029283998202422264498265594374222394457337690088404952200582264651853760681207361856807545899957381927275398331979065539114166798422513826264117778957503361393137318177514727305482937852719436150697209811781390193561616847802690369950957947357531789105054945679209012331099864314130898165248423537641808504985822405245431231546432808596783706692673737666962916683715537419673626192203802884680974146445898135395307375815099970612776564754313301751023573769497816946133352879107301516420979523407445738880964101543173458506755203645253645672362694427905064660639915781655913158025652577943050734945081033291924986245951158714961131245051024986193263446255215549407647698790302079338402305699127878127928071423299885948909669705716676209699255119200887144244583987386609542068173162735580603045963071948503729647667397707517352662227755930465225643056618818344976624762432239996133732769608828726086335047821781355553287766114364121644061802455624922266190426074552162446954325757111402713834976479387377898039829251187686162393879278863021261732493877375481827589929893444495101754094482285352660146845326909184116245284535096462238761371162611541982092651944817975022153223533993197728895120113057145804460676885210943338810531297855472089375456060008318803466247233536710841093457315962878208980210656113949906134162757476427122883416587288803977288501940442760716079621749269859388360985092181107797694215099961511851791260474332030734611193509971510032412524000507038684917116539757971225141372880696860313885224431642717289740570049848490466203194959133056215789203632631458601898646052976460541009263198472918980159709044402968058035229606974800420626565514521317106208034649440196420667650814639976069415200841973876394786056369432640214209041429498512217715542644860312760921855666644802185798081514616851997082232251593274182229732171507870312419625644138277734287579742518786223138533275008195442555393313976050244941988294796950400034503471981503114330650464017466415330181738906166974931557326759541175727579300316255920432942545324098160851734309644181963370143853705449677404555150876177319681524610691026568340193904024719527350773742236026702971516094905638753502651414181570726920604705702530700580246912480611121193386101880923621166276864799795995640483601203894418280318539568171316432333867530138615500536832627612374591127032161536549720285510497710180382109678231700974798974061660374637688271911690942410053831316783666752384803030458262593735184631738507144545366312384702039009549726589024307640765228277323198820918902789333347541093800380327109869560442869540789216689532806956002971571776154095540650036603028452699162736672182662479395308714366898257571670854049218818247599650648025670212395903117298081390203274473565719493237711449981446356365695327231475730311190834338104186478084075119512950165298866797600206886239775618126414902238141986296995655989204889892175032967546602111351960777684914516618865709790783633896204226540304979036388850477610363570143851398550039025552089320460654599447885730589610792114759184599468557790365607516548631891844434008935005093531321548431449876479216814524591587510592070911174377151611943802380746534934403181164366397149191342526333182612195404289997598910503800701105804638491105392046362073030338494748185119295848934787918280083884390148658223850612429136140898020642122972063365113257545290254148406001359894429734914517042664703852337887529680720851029694739974951365434728050020842691947544343477811781665727301416235351105397449706510738309100481948216220343935911143338573339895532066989102372522041999355495175670175844966044948352905960441256869021169248799554637149124852751421818563676798040113527210866312099997184795532221407133922904015972661096982543149056315744235660288946156334611511077359598990717577393516034267482488826680130150651578348042628780630588143925325161328986569774441014270085067533886591928661481678547911883836803719776632397932836086844313202143041412554458134077726346682927428762553483320205564059106775765401324462399711456020170674745533869193366484099938942346109599944294455221981070908501734744002310695215766151475104113189383152342185599265031092614633938644927769176329720617817862100356792155008490823896356329252206009044105940430166067484924143719477353772617973549591249546021129580357315745908754095380373049770345083739788178157118053064559527885928534349421247547883464674673747018723774856125664296120832470159969805565606124335869818778787853057119911256611404656284324498574006831415445028901343288411740070023402959561718950845525555679989957998108399021147482014062563580527425013315960685232350110627412109992244215498717732491173590695057651803974085762531525139038186641128839614080744052824402340506046173967019742674145065695994373867847337034078737146423409723287310391173711596594045587493689950234142092057766668031663786578281685230150027840081881972689801560042468609021500908651775738501162321045053932611908173878972335159194487048618747835376498214308130127917503535126558349146474407544529014759916145089363881163673100547190637085562934596691281147031487631119809932534179063812347629627669027355045064503489875704511651211711012411998897891460890506125271752716014419680909053932350070420905826532245838081803200790518049332382114000111918561940985244615325105560378685025729746074212777454432385087300576802762264916515408394284343383408183027902320191288296482830513676762553999057798855818583448915386904000153646539067751913447780168380656911359112691390516722565673351618171362872290640460160350173227939795830125695424441216419505377607008306646885127065871188927542380573297548497308597698196265237356307651232083426900695486958094249457630768416815481004115128241666083606592480395768684988751661562885399031377737191250448874300313441423128396448791804244731588107910498026608641602982748213144305652443120284662552921288409228444870965525205782605170151387908425691254541834738065885545855115315857837273114930991812600540501018037183611405662409357430614955088459621251420909218341890277345733883388989953815860042559345910889424525181262736362915534855174758078287096041439266281956702851343576101499207332921864879521617353780972631093289475637598092287658750531903589761745705800484890475924298421551360230223032703848244187607113446920338300381721681465335440507247595991074946839824291216863784411717235807881053801960000242781848888516049564543163172618483957593113170053002554154464712455058327510146837388215592107234104689235150947397284274785974105898967042653072829037929510452736516687977481300779736118204279926127743709569558899167605719497157757728110660843357691333552992174807048644442682544670579319740231778562648114625829459362227852293408748273876787088676983688505911518926210180993990985304678342869832306386036971483419419753868668009539422432009044241725628677816075472221129419770493510564143374755894455500270988806180269421084460360281326801296026303564407314515498097493132633719279935056760401688214395062943654819647820131294559461215524953389916086759243914597650412548001606186353593311101229473701344234842706267346012899101964743038022495700801512123875725485650032441333463717710438642029814423599187808622472564602406805635899155297211317408541706246584144322369921839606096271527472568471574110117654173212388256681063460466607451769395614351549630534989968509261990328766289222031132831457711948909779852907907363892485836215427288894088010160544843027987264999216642705275982146137332926795257800267311272486141271353930234879160723762586707712814384327845156729885959449008465111224258308013207731282607607047668604912415960293448178044304114551980068626720019506776587916141140063491004434554418919503552270226273482521595371594183003311329412297972218410176400802242024967782344099934994050100960927349076226149873952054010165455389763861719169065539018527331129578329111930076473677063220174594528111684064161528289553926138995533311733387827387250711415110373930667728482467876830908376864896687639754581440889738304771727083111022342481977412951191992986810842998927713971133983297956152065382790911717728946117700512485553429574084712614707941255814299005414143355818909611294450310393596027713985405979456282851775247077333148472434578812490699984651981310785326154856475589020446726733724720044462489387019738615787609874970372089428173235165486041546502143093743707932048043744078966708182141239683927500326594822394750641182204610362266427599212418207027905419694872694882713631195394538395361538635156858982285973035915201893599778688657601500903895964411257806066191611923217419588853189969205997731285142228040535927344735166951174666500387793681881751687838277394737223594949024258836345355319263573290896053383357710113645445997734103815470816952753908085514889152543180107156621482033312206178416060822642042559174241159138144706912643611042713644784430293459373240583187751326798492528644228022802972963490660864687961364087132391957399221081302703821569149774338873475062187268849433414543496745563821058086371932184302897185600785214554703487848488008464192895405280025151319347285431967398566605140101285888477950008135595652227045145410219807852146741175160757814010764064087024973412653711143393972293997825071864149284986327614771354004418173978000470171325554220891551076559023204721754696579924106962839123686294703760229824091440673973130842036939170163004141356657342927098744475409938032842953221802722380811563533653480750305173028287189675388817067644283748633981758988951379236963658680932402837781208494027979872639700285403560047058439888782753969256689709479390146963254236792542552092133149563913794182100455828040081111064282729503288323610208459746075172785237500169155090589711039913102489341617205824382962206553047920075951057154227577768149135566297282061685233805736361337596105013378520957172341147955594777308464949179338648653924326077738061390665634999163784338280953262936967325547493199738414325376913793085235336336097844854767867365882311354651003668547677054812320530960646686823713736394214364928654504555492094164705025224743365443852521871439794149927867145091368753998792414152695892430438887060541444869780051734232064357375618230719837767835518899730365653010685394717791414786796331152562426512161900318055756658554812762868636177046866902127342291214666993291325531676831927237106228452483935289806390335905350083384000695394817601529988053661756366089340439981559065487091507446844572972495039495777583936517847029492204227417831984234596894277319483524929511107604541082854085567384627258120801148015658322882695837143962332925238499494685509051154239084681691675061453772188313648056176792079056812662630195758286911314383337361793855248348349667906262167296576135857941457045006119055400690377316344317274995655217431790236971868671398394961357736999500204683535309954794622239326809828980246069084966139522271350255355360857652829722906677122022639262628583288445008043341446220271533699869884810414262910614819001574713055131521136432011615037565523441171485882537310217364689018121892479694634982666516857737209806071368724764274459790341051227071407375440052219172711562213593227054454755418853900819752927309965408660170997321606717115965436054160127360007382676184313971605578888256803937387617992667067381865720153364298872945522542733856187788221945092997867614266108032095915741249001534706521018653552999554715739091695007350429901121602842192900774447302326052248392458910031460016284432659455304907910164986089241599587329116103638989472784201042092339664927207517372311035001835115739077360082156480598590041798245168137372206302572569815120284533469248445622339873119534717092184289083933099668690563235179160331714064918774085190227314958179069972643453209759771844678004228257722781418087101765165376604177547783729647509839348332366238764678249553277694740464139035364562067735323537187185337021968096946471355250919969973312402808401664527581329139502054876507000648605203806887911162062123088291625911925331426976944217472642698254969266296345731584239314389651689369910397951598488752552301555621923208830845588857318410801893060422424304425143182230898372601870388838166988666336790992983938461550130109843999170897743874729346809090107218982031167222380480823552669946101847847340320885276637773818435752731141014232166551643923174648487303775899827273185923335885959815741011414362740159168518561748398895539063935673270478982686171577045621169902379789982843141408297996758460358790252302098525454646348141692114964847651486328723633258830761873614660751982913271901191740179480105484513052658948607379808716470066340614458279248455142101530677558538128994361763940732732351854720884214923280942533334125036253525533996062062289474169927686976685133566706393963528895403143902104447093258607411082591550792602091380685874783816810402693207666194957417647099264030276656362309138560895167856600912284605276197610966607386248453260378694678744404035067661627470655159544902804104786701048215562153504090349521841053378610644633512703919326559530431607624148767535101139559272645895506374590428053890263113613364401875906651810100783944288720780608208195574185104408426096905584577917758935199927953341270432550471778591838481194286040459946607765596072064717089873582065432434481386866690547635881773356070957470908344180854775504704028596787715430457899636277851598220657139989209645914899411363325914458936338925901197851787788768833352403297845205600128645969288672275670844026969333709742634539005389685305964095546138125373099683660106184726385241527713858406037906638259982530177950833191196997462315732780502636725848572620142620458688992819312098025981477015706569340577894854221998714961500466222938656091907511612806026363699971937265173130930608707114192474104714769678026913618393454485906448972397566179814217734727744077328984530256554736783127262799518757245655157760364229133783962236759033456483412228392692841491316006382751010834591594426753693682697387626940627578818099952969521564488196266874670978713821643296909962512628434024791484317761286535407136810346642153588222746587829123381874052877148058372900149750203850057030260677110913589450241815232464837632738691233101705192091387986332389957981840094014793728409066230322953395946863798532059155793805622926389480475319756660827882750666575358223403431231264344985463086701082118421259978830603634893480353661321514842325832599276768067905794254106396955113968104574896614069171193304999326787173774813332496617463501987752512093147534472602699268736013286307556049335941301166197247493104722575939919113155048617128989419336946590977820116975768512847707588068913812615035526157694808629824847409294476130775888407714319330918142232506844110694742463831906531281376099585809699086841277110704214681912845388315885006571929666755160057375935870714221432845976300456031009543331785241232856383787370730800205097338366754175374725242233783893303567022686151472932651140565443570368877460967526981982149069501611538541908033261027185701729049928110073318426487440851792519772459523659164270613838692803594854618094234201894632174981443900450278228711409708447980740226488339775098814091468800652061285614382321821195162170735621195179933610850391690558348503208835112861077679037275486958760893551157162759920407037747309454274784716394277880619564584112544122059216869368991405017678980042461015455005318682972124814684637724800261070240445912404820408459401967493918715506649055607231328491402921320362240390386098564454581155043990493153939998016439302750168545096655787598445230803697493996323638601674136926316829107843419061428703978768929172806430660032641174854696110759944336767850121562085782703477674753909825744261260436052446096928845941274746293381736376552413614856307006707470576769116376632159666017721732418227639167995086580897593656735765599733540502903161003296951792406304430095960939604798937865566222151973026503058013666967330107827532791791522105077655740260719882128385920583057519363834073385904282922902001320284219442567878659999602323959673339630037740460388990813462148297176159881459240334687907614461648445818966914434417130178442513425238499728034030908794223156597058198344400512091312346903779994753540236509828184080207603877298218501922926229397733056189429734659394317171428645839486372246384105721122547880987089202136129855440426367939874146356723935161028924943179696442457048503729683958985590193186412241909508647781263307195510580422737746210812654288385500567734087760207436459250896576808267606033913377523984395699485463919346037481662986658569757714009799111919900192550648926088954656793011941016271705182069243715497568456762497960406487185790749064444873783828744775540849940559819063268257727247621306801606716084062876102420034458667191702854086218877488832703605913014878091906304753568532691168309426508254349117069983444994800933019209570470367593195431620422813543609102849924230599540577425889465280257504485888593546348664248811471885481087180918569792700378092319146174424475544316413244594346491697687480197230477538078413177723810266945203303846274678864122939740276624238770603840376452057778971787196582288975955593188997720395372287493688673406604967443385420791387932974862321809668842318975202047040376315342647447552219456706182766101854860986061980828542493493289579577390168612357481644134421409253220494755671913307898289781180613379081428039465496294858558304261569543051624743348676624905728743750021870924137048736369157768973269461543559132045962731563914662480687282454203307731996035755100592506654272505661051541932821170197283923880054619608904796081234904216520549288417842398909942171566720428561455839979949525695570038054830483192182605221950807831710955363679916893622020259103621223854798679134771101163490903731821220541084797889442270570396102943710641049096009483447119739960776823962408552458950216740760653555732730414593350235253372691582468184689166736698934388133947928128598229025194979018718223551724690399038788389981020338259449581178709209708364902843799787867473308517299592574030737814132012180723891884276772507026730130492889396824437062140437506433384989759983658772426585304090306235680700083446101566298093517560243668374410277447363904358002917978486793794753582308208263233790658399122139682257690349105580084260636410162067302820852039650454874459542225913096866873432522681597698720768849331938501661171333270474131488354281067548186212704275928429775096286041767976442485072771400370520247906459693250951398412689693161777133768708060757817619597919964490060188488831995718377365434157008186728274730322825447756795616190145370425062444162878297146760860470580854291675251842071103172191889575127592693819298726875009774208687700394570482973912309269080230429523848360005707417977897468144166457685489816231347554153549154087044074689510069425758092125507777090879147602203289353924843247988517649805060373045279513900775616868967524463489940785595613627529491590183110659631202196755410545977552225003597899004829109816140671648625004136346820829471942981775252644282214089337866477783195056519301624854037265282251918130985770401579727886065508581924268201611024488426773396804082017309164016626499082156770313109969522423315847085408614115616500979732482532537051794605004140686688996651495696192515851163292172916457719072301833613954759098528474864557539424331976580356583474854126493334287345043063439361300391405590209988972828142433742598179387614297432378950394563778078056212036668104742685528866211297586372000981494657267766380407727817180956171634396491280055515817899621452680165759067791836714660902313355239858671693260945575930127023394707447882793272412332342469766374835054128184594526350632428409983716616808276058321554600596450242952463780641184534468410323142523110569062784274814853010458912030442949145290235346679673891376147259850304001187304408196691563029719279098199845759061187134629448477794130336665279183096485210360495288099591658073034403704560061703755237308130395884868255209714339914461473358984419424932572950780054074986515500305677380659945267318318655426802679199004000797849177758816664301653601307295535298488093829795400966303343630829422431038232814930335159198831035478064825007977515338990515246738231916338111815757664398124172681044667534189937516033372475261726159346560945731752456125212451241870247176551031050316521449777834263093012525332088672753213753623827173718287667094866627163090318795940029717262595544001896426205561602439153703529393016320876343314038836742007761634216268619614165412100018241633489954054919696740855264368484852437462341259729838132063696545643629001909206607561954880255505455651690211720941248774943600474357555965794919841614354190553618529132580117956855770859509157953596590035968754276900025525345924146393810461738573830681034837388887021506351060974025939983330350444766148514755529097675832086396586195341357510235460277235293565281563635257470202619590415966653101991478424504710453309177288369915759008706114470379489761110404741334684044671400898034780896421013527328262897581921189147541531198822179220451533120545695289102103142314874968778402432897993422729968971252596924722009397330330425092631635502818767127432593109498870836384897609453581382253760264625626381004780594322473891686642592500856572893952879849993508663742776888041828562347101261583899711423232185292804806472076941413271784620552852354296691474840588165973621619358365507014586000027743168092026238582282116832688617910544756687401660937131630337210380703414407266528964446932521271819159020030945445262770896192127051400078902084753918976712212401262484773393609005569713312189963644920999524371609203688295822095565106480112647520444277874161652065029092302166226777056421619712243919262545705141257980782872028808779780842042659234231920157235463487700145142232603627452959306948986414785990519894485409225995564714611971472288253173365784582068883786906434814975311014741055473992453478929226145182940308531703532215984656359400018825579138881117542289569254943047670657285011343497358006204121585068660119071291269722393003310886782284822758705347304702940018281069431262287921861155879949583680736562146390306796340157084371343531641186821621473045393021744027739009173546860359414080316392959527330578245091053164588573765725029823583707560175286613083527993757162423524139249166598539196335006007226625161930152882266348431159085276128269122269063618344503467297437452536107663308554571747116233591319358541525287146740073758341493521205486439613922632165794021405812097128210466351533344434681001766420259383901159710163729631519470361099963108419542050438653781304013717155290162857265437366059913727298815762817544155870840985614055552366643858815795800008949831388344722731201010632409039039678947859089025552433003446195489561380735757318947120389059445723184144467921168731425942693115568357815632665189057304407419287039992323551387844994781382290999637236948584944689873916857948979303154667128937910331435200170029807905810037524574875970910902800778352876933364651743764829812162059396175265846198219210119726668093199619177815873146154910272873790355918515319087021527693679459146199818351840854760279727982250651081591372429642106553270413983930273065853635058036305552751994057175244014139072869354447047001117173662930874746324111344671642013886518869706285042057791974416502828550544893909222125977669306013945608035919145745246842975110584742478923516774504851806945004012476361228509710488307515979192442012929332661322925497950340946850356844682568693962478456897586527480229048948949656369571634966820734621854871198663859609400272400627288517342642870998509683045947341606512370636872607509409423659697123071667513446125203457336636896656392802773090817616679301735735694131424910551584791764235550138112992130120134484176436504339936184821045913990712564187261811651306495483899655978923758987569396410902057701838513725721197026139636334850710653549126698084258863903440185819842736242408997057670747637816155949985930416524863596959944901144639147462867966069878204065006406240931190906756785321481498707239036508976844824505845429658016328765205916310556354986356954916655013706724161023310680650221487108875703993428603392467742062543514936117285893387030648855743443733201679478046161521885593182838481581282419638323441954355712562391153824081432561159025513738854252878286472138894200897703925730399529160168954324661664800474191457822046353208435108327850401652707529767263638972462907340791564400266141669896765470751389398144114827902249748801902144542049437426105299426361281025562117803624254041104483830778026842341422057109481600899221222340428552296818840045385985738735788154504189642887820497525065629771154023021446416515391392884399499179786879955220000858439210748412864256435936043878988097406191294991279011942554805334675147277672370048226054667228594253668651049151540629485105829455360824322865147906991560231975401400000580050595593109399783238957131385692150221616996987071887539264829391809062258403210379609232657065160327175506259149722815293429323842899288669163570456553543339587420875951673243585066601273946173786640165264202615427713026681976472935441500670775498583012127769574757872896069007468490242113698566739006467289337695478050748531080419634266470904011858132159780170670042842314500076292951035535012029455209888860270994413320575788051301638629710309606960284840233460018869951126575766324296815780256692163549098265152788639149921933223728641376932836516014618917405886346799658233591049722237745684032930868781426897489104678602944243930280901866731507161315328039838274333632545237028722412847438389384774200191563040708734783292898686424832941654210840144750414557232825285331674958461595937126441086181232408226116698570138306927772320579021704673079460217929028636687268514295980934043521932692476235960716247933735222299302143335408903833415946041044169870779601734006602750755796676871879425757833561720033541200514805577414428677517837516145541413345457408180572380390464614838142404117477186389723081419353402096052881845634511570528646836653224057621650461053496994836437140166171525851483020869552846201324870904394715293929570526250812256708650411909211020579691574358497475901164582920849458076950807463383749605146244522124935316769275444139393755313760238461622174377500765313048524014787579096091378856993045817733114157355947547022707115137054876255944198167863062911611698266460635614985158337999502063315526645010741442307755003881732481227425549080403996216563145965600119276031721120090761629671249229813483234484980562660030684796642082339842972085254826461043616776025049550891231367867446260267787442801283740130474024317267337441060999940578127884681885534158675308524811466990327239664822170161554562941305251052441642546492485829505561735831569120826837526332260206441652168111347038248114234991085243922314673899725805885186779571479426889806075581388515006251111741771355832887136913625746896152538964548583199908602352893223924236479103957895663352294886275501099905479634758581802249388670148218832974821133818533285639876768797852495301875929885103929214221463266519048984991651731144650347804815539721525735722113874152259785946771974762935462953727855202600431336808331684260434704734638081666662617253924003428015698374271537410334522000263543105676380353214668926426975921147744711755216787596885202216330358682715654320320046667015413340355013876553636994841416990196385765487055393918660502670611205793742558562060538651617788338219270397051407095421545953043422975857830337022063164441139381375472753156451847334073348501613021487642517943428270663052297637558481006110777026834091134886541883364234811457214870556760898181737369333793862646497543535701684271529987995514535553506197249362360260480471578594961176248734124192606821860219386359964065240926128077610537595259330498259892900644337142308149695016453773829647107058360527817560682907536944214581021189529681190508742782609039676490285617238126901742639026103050492462801370993134893576578190700191531461662243897824863085896279161076380639634379706651004240757914895329449317608857406284537154505595683680413589803088473612206479027386924595686951844167326493195076898329612135443208314979382875897634619416626751437297401294368819411555778135917208106674035333532418056924481482441986175942329034795148145239958511171853524884675840445901737404475373750178835518193439691279285230838228724786655394989830304719839713696398792203136606064954031666967553859386849046142480209533535785919281874214092414785693858222624798619780722404579389736206330690110390644323940940155899837964146957191292627281864760193175501071450518044028410557223818693796480469190399272177053102079930005142266824832467786471397860480342500638518288484745066045576948765748052858685063247986852214774527848548203415908198920302610784881797354849145389572488445255573375730334045697215611929679427314200536565337114666436616908576706953771812077825581386055294474171869513049938612596454385451570345639053875678603941591618935882521092095023887087462335905359275434709090089816189431841820303773073657404958175886877026566856160850127465040653977964421619756424124136171111740391119315182001220439952092370429372812815341394447193985917820525044337765513890194316524259347936855983461919202387232568725761107502289590314584397176388974449820485507839192738669551707395373324133002284527785176871686376222880789517939262585939073119359406609905036505435909459906503631417085009014024803318084908491608109960352727573210814460316576157264524768967905636666377608659447429649916194996392007342221374119649458099564384395984085925973278235886317446975174714468271797006523881649112305826951687595931537548517780808504982684325934289663050307790168414650335310713503846105652032722889177179389998523772784055431975342807413081370585042838743001312930919021695086866049040884599156114785377977555210823583718877393989508408010298479049926747813665183038789988183554954274481747622326311562472489593567853214773665533642100362757049058328831528555966429342730536087031413416273343576013776363814306814881101513791874372677364655657173252822021174918802370537921237785525002024123492113965398952280853905298906490968955989011440684825889649134036651090463910684342278306266223933452431763391125818571274003575940901328916546465755037742967873899446158756717689159611784609963832178625046078396354744533439156056746137679828967978667332858426697029331851296556115029073321676086573466198098509338862453432597032110989268216828568761912299047327873240832904457451883040849694991472888839994415774774754910793388705562985369098968045676357965311388698926567867351582969880012830502430218732366567936044885206679720306410363464520050208321044425379189962144036760293768575642025736535171379942809246938266038296944045450702115432860326485909869593717936217303883544652478019238774802713732239341061517607319128345791571604226697453078110890845190327095093487395977919167846236835449935274853147318187100100644337778727593048295794309507498235091102383438816495845197442278535298439375993320235247032558609611469380775774640033251136873549988671583433169740908349881387146542454246005815949636863781458886059326755756490568756364936556379996573885769532924957352439250421684323356241320950129760259920886358501899922563065202521990927126460767422739834028025718533678458967797376162642220641450543013214590637947541636966362609545145394166535442438142382692092727868726365316225227650131675527349141474266307058584366693512763917939394782551414138217240285255993476003118794372217081363774532333606141008056311145375096992113412431210211458566507438063047497937343237211108599292813949718337089345565677577924201178371779528513612143234718909526596619846275068915932083951860798968141634473007857438117371412614189538325129899789707800323635756822843410096681362486087372684030146503101677466097898474858259056455902318758671590504334175291145558172748491135754614746656792604733104250820007018323016907680920719081900383172608307041942255249915783250261756365865988247700539176050368871265360791515841485066784579385521853426004221877840916877234268628856623554585033284979428484684400274184961709248020177665734639181461657054928859345884771655375779466348516332830485078379677137383931666745707723453993052242102715969832545056574166971300059169580310738785061969011865275729970324182216893898884538554218686968634611092950338238400318116730199403743847020843084103529159319812882750387723832240346987182861782621832858892379446653794017904606931816572820615629463120496839251826538397360757685214732351965586142273873682561121402226088990950657530733436508702299170552519503031372880052181037689129598918016263931201514972081582532263109327585825660393514115987864102815847175333014042262197657694577673221242277726735878810046626501957889108495509369470492479449064971905097170789218315167401923132575065460034865259772818633006721699004661779676533937966817237389076489974442605231400537691163480280847394125973566807560051177021021101225184333926120546517940211831519959327984328472443795231370310790049356591546005224639915697814205843469602514367491542806894714038199196722026177499934050792749677146859483709585758039822614464366173915382250304901447356520640703156154501973108265333021640216621387228816465651399054874993219080026203299579241173897340126394191322811833094588319367740733346656181690864715277795362434670895356289150845333389381830706767819123379412374176005643757892103834413062628237787577230988347999470217698029357880440464826254499037957689727063037992566593468256630587739450168887509263405687403130954000219852321060447601726677160797067533818131781132659962271818360171339378886078713595284074754461619780546468950400919047520753274300516660560885313798349901046610159791768619873799871334639030394727027319475722598451344661381829584234870469153961292944656622780511999597033813168205485812321810009545367131043933627348706183843291011854183280810481750577679959517933468009678186397983740042223795080622141095906227936885575526082015163475795185840956759912603531627533634088704912338808788532299675316197673150781098808051803780129261224892387579697349671012166007181170968225224643549513345948268589629559304853284168367512171934118661970197158322949053538108128605511669170875579459356132276989014556229374007989470137311060151541847878699522730005993433641590001297630064668187666476114168707627525925346056895772021021089883213452819826260889976970199896833321679401422864335639398249915359208978814083497540361935227511442169622866714022135736104629409223211508459656602630727690999100548846686093830359362565967460157042490975842691523261690976899357336637195136694179594240415224736315335400058932773944722381115581284813863778536664881784058645014701551853124557919343126141324233735541453821172957588778781537911394192336884133423410160792581989223610322650410889504970926522604245119384868081580136282231862623622303031652381087185273265383303618003547628541365910101714598509941128193496403566193383171911557349179828654050000780865433973513674392376889340516073874741535403453125220868846391160301018933147307239357328333195762687088520798073470094949949700955436014415181848247889022840281360722484673909864912158634391675444470862478276361433465600765006401021811979191740377865616490338333557490712817203018250183108053538196182343772259787415832677281096262336915687221927521954448774060500249578039269615666680808942223759083071170767622142661672039363357068646939453569067674101031670023208040797276395285493073500036451713862894749768230387809571875103622556419468941381061452760164053612385450232794154545046500608233717418883403491151738699269937081939524568503404616272738105341216577971430068351793583424875196318454445904660819105506628305989511167818967792579610143743014015585085335837864013678636195932153039891490815549499305641492791093701544557065519061203517184804034573390109535866891806165180878450502149152055057068975632897591762622665421106135082260933337007172339475267116604302710390383468973557157704308851577297687687269720677868875203568719179153231375480482186143857907904335654096975152100397416274097296264817950405830179144206582021832831251339919868881127002093598795703811497469724120575146653824018992617749191408922821051112242521318891105159875238288983143129097351394908889573776335400459986080807555227794735591258239933255319509663239623761102605563734055596238002065586849736386972054554972095010377879820842858911238523552716012341964872542790400618144543254825287164510436173690843568278049568304121620206256899019581862478618559049784326379975497360235246687871741341241344991158709266254553592654968803928519869177129887077174777970241211270639360880258713791159637837174905185060751180574214963368478699466621387524266616114744755123484220627891562198448601797234468405600457893499282974792686488832326595626892479415176087082245731010517225804597192877820090485718331643069447737554580736452257989058016092079527284354933988042650453367799247177530735817974872485529534696909188022599823075160507695831203444758004511810957035593203338870113085449354035385346049441498598286850636954939263949026418997306229246475210978207856001870788875308571464082782516310027674687756614676661829452187458395666093028430751590765277699692606057725882285897646033414279169036051273122544318019324416116718952003483784618880037593923646805334056552172397837353183828988561886063100636771440311046188341468343270838886219303242682128925802747844075399848536293521226192662836513002280628876672678006343465749511972680139857398345645847689635400721473849053194553361444710784416177666905265649649981955147823471505778775196436730843340167027301649880113247906784375625545397438891595959904425561251748941669195129962793903321281622623990057232668758829792000249187541079520830862232004545216248916857639728962085426141453237268345774536536322050103613486991289206982279889534916581163656142975917810811299121537745973045462424190553672655262160124555951867184974389731375969828806127884260981160752596925968026469386037348200031122743959159607182759866428769811087002822880360698618195371216526352754317191169697465892289656096034249679485423743293196833690342735472903875840839911142973888810639825748812412987214134738722520394353068017807225330962904039535431287569589125418162600183509263286958195581640453913537256089935143396327974822464733352161596327910313692986177403970234677792181076004033318799291258195945908976100775783432177846542135180397351941545404864297659659411825993113538804901633626692534764694890201145636547638217942872442034332449823343924613399130708340166440220885643867966213343202160370577023184614645842255542481889401134861578695847323450952321311131029428662677738460112111227603613273690814661591564717544843189322348509255974178625056180037010926691185806382263675196381325795952661150560059483809099864295399294077770283921099345393355905596617560535991859065418481133313669479399933249082742130543929975373873328349505787332880914496343790859627803715291048715169417676979259745327916078575933896470064360781362517323701124775982936161434923532749861951248149734571714262942823857502081197617063516224242301803325596816317454770426111328508156835590049957154170928207712921669234490552544641105334171106653954380277184412172971987251283327332719830793175755917872610598423597318224814439215431853403285210281072559553534426021623625607789261501342250204840846839227688427186803242196221124483918654895822986229667892362559772744177990179215648439913841775987998152347788769010896825173669050056836447415725348755784430144683887673466781458507428800188264546757301062078411086211530423487952153599597745323418898465136461266870622134589866607788565422141299747379381113659486736835514697025836752410567793312634608534154582885348318470026033636759871228702369873655111309067869481117964841017249455084204087787070586250140411431199464589116817238361054733914930510279161730661344571808832973618561264158569747341827269193370288725494469764689183712090717725209243855150062729200930087951528499655472220915809180059312052273438352942992927471399693760866798084080742111328260428666687242198689333993537347078228995276584700739180214718012531062213245414682087122373221157625902033699142189323460568405692025602231801095844184212054644433906727511244523293570354436077739799172723689581645657629684918165341876215624013224087150443335790129791437576223197073652401916903403554431411869347236574049871100540449071292942855973319735572773860945577236667298889482340344945030914360141289217378127696448958525489946742659810991804394677313567409190160580131074267304628414396729457512334442808679505946321417934270932756742055027076641074472995888252126112521857022091106437398588311437741613321937171249354578081646591033862921035340393227467401408019514319439001908166059546336156463005000600748941317409470846862316829100199008293830625770764309361228229129578234081894300774606049478958646742610503462126705759482173750600496450108269869099758599746797029673283692629494755436834153405178816214332143371093232688762797981433024063562771429809110024367370037202997514841321404330410190715118497234773946193480021509290740607371173694448728123954348162535128425306236997287615056044886784995082841496283889577728330010615804419102908277294846468986657239945385206761140950664473011226233564459693331445413898682346145679965888616599695695326252601132982624382473870914673857793536308834973330969294190593702818992166106019786953989840936959066358534714977013567146355375987568773542894041157869263661982012311943636564702685722065936465789025123381472303625280822011158293018892177708892361269639067159325746216822010203088064756279495960090840188907351136614580560870213735733753786439901214568077443975304075060747377597485812841366505260540482073978629334459314705423845568989227916149757569918961469029799047997371118112424928328916616401230590727049501451843220736595740520431131766317331612371611127242259083102996344585639766146079665097616534846483027016314829433202807817896966705551958975745782625846812344524757140914913200607716544719083658267644656405969757639843942834020589171291098143558712589975725511018596213764268931716470872205721045496820478067213218648154469147781759617896225625979137315680949207244392438997553051743554038562766977557474106063529022187944996083459126549663659646333564378722623171798302412515229681189958858321427846357279752731153835297277286306887537363836906126275047242815761285107539209528343933960811459102073128599764284389958570028875794407793932025249367158426591943627415205908165776799115408142454753547231824175630672513989221645680770453454426534924690333005214556370960015208470781479808986911849589310799487763179035842950678934702345554278388716689199997431873193183593022907669415422424412177336035037677656352915797883604035530254005938600475277820139721339959381178872294729699112283430220810354736734432781280562001896291792563273130087161699465158372168977694082638101527809756743336085757732175821701743402047874586453059571738425635173189355160024449590314348298815003344726588501065056839946758997572038436948822722685024086665313631941409229930535762066847847666557320861068020643054346542487503377267618542992855083371742055837450881531369033735338881944604107864054443172243871822589521837947685176422074943641563019457294727251006710591808724148689783988377858774419931942837776764628415743224430671292253161439646705699358047599120613262541675520003819915804690720626231284087784950434231746730866347566360457225469060421749342461507449480506828554131458185483165831878328144762724101368180752740477190579992670442764889382691116741198297835917449136761885987432712327743003722947028242509923876937948633527454290748032355870990381876697171779650287377234162524491269013680328242811956323114295841433393597381097662606495581861967424364995913089344643501487243164760706367800207379730205697157088815916059037707471184631614843460896240812549622929626269152846562572550764727753455307019093795449342602941300729750778861748719316772495504642041054726904580545364357102419044773584980186569529492590940380767068084273039110961859279577885130394726647346307786492958620943066209875089082524631294875203959229773261816773866390322211728868597874008207669873677811128627160322261490457446461306079426553639769216717213549199302433959322528542514793719862375668833179823674016443746919853447278221187437841577460306055356430800908457461579239033805311139738157945431535101417920279302163809982832856897036838244655988133402956317137918639249596224790866088020790095089363526946323692060453442141960189501397364709979834482822017513671975768651925798585921676498926556050294392835159704087944992280659391696459022803692932552490351778150038465584439539598864819870642142315240558777967452212493988205340705544396029965609551638216337282446274778092496212337078192634030470890128319650318690778544754635650544686790746872808187534410902004885618650570053474607232651531820481347389295002475601311321011921039012932776668491013682400070349217279279033473856702732424917949007517669240040690210689895741370630985087819800761251347807318824157059359834766100136716695382645624209333682406467126424856636825816284750254573759291397026205377085880266416502822053311776353367894944097689216727677119430792415527938504819541016474479994783937140766147806483489227855016304572178652374447680733444785026949340119101300905644685440296692090557306421195210281481722242307667603915324389822184434676750587897014580596293435563096276731037838489179856932595195419237769646382172257647730796104036663634694939163203634514638082552083317242537697210762300419273218496099430672453480831218771193738471625187325501531590876834172486158300299760705297501803950306487645308656217292303449927181698218409198283768583291182786458854075413957956865741343670310685155001166696347033521350998910567038306965802566019857345813157910120355846085300453358624647943180626812606271234981727041373146713753607983966042375679094981274272317559440271799343948660286401375530566585951132814870176653453129931205326979117268043930363082479629711618615735358455043367463068268845481219290987902017340560476199832993260518867345631571399333437458925892406585193514489778897112962260278708931976216452494146861017921605884318745764329113210229822107262873533857155962874755270957594228812577476411640304728494845052061242800303770241061538515941421266195503677339702972092622222849807920044034554297271378106485639428677607735415870453728373002715294954332141880417540960239502472678989455645717913549712584374745289582082751204969262447678292306334627159414516748806108992150471659983475004738236038723615456337443434520235152201679720977511773092164269802539425218569331416255583776747887561644357649607971258372191527583482808312158066509526567414485134412712893936780766336318058233201266412876269350896009415847000458175673752963014717819946931931223057693566776012984836213177669249763663063727688211066563554573566873066604299837560237287131790927451052502973486429231415003086954242364256556684380053888682502272669155761540401561089985223152983675144620211694270104405483415980854270029691948129100940475115675480042636570499086580438767418437390803588561421172825235048022227250990913681846555556498315764542160219928885290693326038800877867671934656932859943246518347566154719138721832094257244040772503524622103792421561367124164367565980637617869321521086957660998507891080950804575325929324124943542995455684777781155223175277699548113436034840473691795552460197614521576485322438979897223440098799435105913146162772025495228915559060261439809909437249248503224447756663985830595134156242522811865243811074005187974624337447557533250368329005997530405248431560552482161726418688074604393535045073354317014760926478392337048200735910022971967336200616031646688550512348556039718153985843497706545451779950848542477416705941177308628787989676330917877094812058950378703251394337721034297680042697673868802802820778497678983767672887559816600603929715026522477408427673445237582138822984837233992074035779227432440294558658161638157807992334213758372139693719163907005015702855998936169144963789499223299381009213497028511902306302947439044854382182362160999968308056502746421146112893083970563473157211027532349977472222252690920071477222924654423249217757870615005476728541339663895948827483748532065000470403154906296374845963738827697606224562592540516820376494132703012420898957854851892677050457391592847243206742435749804683345920397923180856883106137779606031007206482087241221062808150308255903997088274506392332507062802260691784686194964495731671822788718593564336695881020500097668312341125845089845779826356557581667437783290142364789896204527251332898149968124370457471441303790127762526697754211599515795048155578373982584780271406671027649790852091353064083536984307225764755666267973530667859042343706102700058591065066848466576812183707320492494429196563740901051639810445002983455895526340373332988885557231219950907385787561554482293198712283729246856991857462762514238250245649401195034965116833458618944298184077070836232520863324415223426198023770095899690576643137310343763411122982187607415522197389274364672950273661802678029560628918839686672045898534457467373444998633747565457133321226574949832942817403566043561156446081423928815637905695787933693498467679431744667984082846698875565764525299306725753038728792480141455417249281226849468044324949489137526583500777257044079437557793669485640852663264530549988946327138036043253876704089777786538054069708657247095091574676804783984790209108127780991850643667311643264287628682380982747980780559740391110748966632718200156812323366616453067225962925766707221356702543289993405685973952741102109647845038053978391760933955425074034129648759646065963455268754869505931686866774632264333267858895942102555848431935444768846956105461407748812683287301618258473185761035893763740964104299566718103132997138745505036555984534067511064007044852408279982295608625057358685866737595702209062692125580762922894738573809025727594743397935934237979082678104433121370527274769624420417802651480557074092354730468778874001700672617613137701317204224391962763600837745717400952954609832324949770289825563632520481813968594264615173981975693360837919766767536834076559991747535906250140492197916243071328876631169450476849578731517299713630184984425871929905939715098460047136454403280313026691644444381287025086253997506808204483347309041866918730851832269581122914571009662339220127239054634157898046164379574188694425959485206453548512654362395947894072617266946870611685806448716785241976891799511497304813827503760700668958403250528988614122653556939194714048835655563034233087337053682013836995849442459011436162840838355699136645537280548472099094438045121620374487227306942147607910909961898840858687768651981981555531571951727873137176461742881789716216630084626654210540699085479387993850023018120360836230850204243165049909259424427096230004823759381199079048577517536899661792543735465004249447293397806854831819142570578776702875471161022777910755501708539947527619712959771647162012444127038234643617070661732881585588532343670151848449509223603837865550190648613165518093781125459708851636942320677919464209810028692400578235853307095344077796855575274968317558737290663803573475148841992475488046685961700854117638439222029804314827372889662132481417412960757669920388915571606907882368990848880445671288645097009033503319024869341943939876168031217904485598959985431281559280450973074305030835855925145519275448981595733657431191885510838517202912096594027726122709505875342605575753273501978006906535586251025892020152219596215051924880206581469662827401436167063998605117269648363532465492576537516259152515693813463389455811454294071516306876182337420746209209293137331654224604209141677846391940221245271799917614046556892789366492300637818643247520041886437818187919536028288756343644574625785679550981762816596699477631908469406342757064121221461702039168786776808901377328921776392526135495670122804608382373575712292106197552045200230218413127790996544423971273321826024194344411573022833207275901274002904010193193459118190435791125515229859478459898720258811408080267814452229490035771486612321538007484110376746881734218287545098085243264786520057102940879603078763734028594457671297588128445893794417626919100954971170386324294696984182978874057769217180694582119685481087786935102118250787256277835628277518768432605116915668794953573361033379326410420545664673652982203494993540510365483824660661723001903916163815095229989252739552691018368513538359426807581326023710441406702155385980417824992104109945717992229667536636442068196504786323391346470166779049914299001613301507137173783924148317029473330592951402684021914142615841461594991881198029982072258119753364731976265583198491477627518405240442124742786765876514951060776086364137199132872692864461210615217969328998787853787950389108764422168649664318211110876361813096697488599552997527598791441075806265898453189399534571867954830115453767636969955693899479906848093229925059637408777982483768685947756156014914125990825902941844220605636593185456316922065165109502684204328824940685623182336706247000708498522191089578592266883447384283601597502546083753259770636096242338793368847166415147493624343094769293078877476312981440344785508042160681511367394634730859560338863873499471001529188374512550303216533588005200407817769220017127034753075430795993797738509586330487894844796807679988045872373241162271153921546963712664110571927679450535605854830984606760507929290432265166503141700543614261564138957533983189849040734848030440132973292707201180853231839035492855580236352068008793492207359582964068085410326149817491345614378727652470409775327315040084761543741504655509373355899890306503372934376304089390526377178436161575701267144504066060396335271658795652250282935246689702799218324257366409438767588866212045085319277526328695807089228813921517230471878606189812474960671929408278335740870085076926415075535817484715604157025523225499981413389705527561613925810831747085982238849112450052751053090634755472004978351884470490933165430779145947301108124469743931916163941492818544342940503024277600280329169248302841468890467339815595729974671550216933411262535018112974658870180701761228718370111068894321309611510098648945251946558696278630102805198284044889810370877346119071677670698958078530294287294378523634017328862244789741398400209566950337181256210023956823183750200924818361576407461655939045791379044496764618043671567678256464186122046343785143784928963838943175987579847334154568189236006851773245767756332877356674098055077400084009070948759164491595874255739730569034193529293577697786211929962407851611622510109855867830029960151809942247849005934174733026825231016546612669881229892083081939933110903564757923995053097702307909963536209720473985143660198129978208930793680291871150645225190811506396174448685158199865086527229052004217174319526550160668813732330697742778360678607863025232761746246044400526379302118579364031434165266747249323301485958234136190673899845951522379324238453717986097045992953931338411698139387804982057828064141047567341061489284553295181571122136824006407656223104804286173815474922504061633671697619119162013600731827612810204777099184790639133013061507771368487657116799075187952794333339730722702458834921625201227738671938235376728182279806961028607603578213969506503190526867675890150931320374819754655206232740208411708318848512809248421911593230296203183008337422184174858794393841042466419999850191142602442887919558668363774088104398939879608743343857758868159606846026923374375582782904858625915085564564384719135340799347920945663269272912533457333965744509935999899335651644777129256113969408390333108500806382778454268636022635907425574289741330684246772234608249981612100664457822021754354643342383022484466722378760329699026467979053906039265335694737595213813595555202883265925905534264216538976329078901587057660589647692704558974168693020057654984561874110970902111979168504733204886206286668364961489316847868213195120676877853049954444033244560301854252402932966695648179808088472645243416650430257673353133239435373436976296729874944402284502313217592896757151364216983621990289114618857612284747619842556964699566710786484718849918572498067794176068078323516696586297447672639336006165730957890792331371032966376513827025648418678524196786735706170693882421993085319731144148785624502260917470100755658859956203012480674053721304091017473853949762023549236575356870826437693587303123306526112280477454414277878143391019507933162909025745852813309758803919806926602260844324892003037788996223344135952029997842717968414551323543561886268701297417401163854396675855275338216654887950085469396257591007494840770985902963468436154343754233876186308465027440776747760405559579025430382285197709046853625471726867627895314180613057869413894766925343030723426537005353453219209037552538766546369538593202423411288058438296264741723664035212209381591399547610313473971498502356451167758704822800820459385631450947112083716175302472363635219220173431182407134166680467400308211379807790950651156143634795319950093597171372487905558730834218653264404233589667045611936351017480955585519053244725809592406448670220491766317092505780785678782587941843053265750669322795062389694432235869110443814855939448448379744496007695793663792784776682625801602330681198027444016527055200862105041256559351973098439397336230158578074455707497062798421192121416072600722073567525271201564286262458720406478031584490098442107204692060850498173819095286410258367887019405154298426503990447871016982792394883847539050712280847476216351088490210505780222856417935394476504033922183726971856116598829796821191600042997919694556577575337403260327100498042846423967351252469547674966404253372825215797030328609936700096688851463594548867705074870608114842707006683869043537689042675206578150850880670382185676209316330241129781104161107440210192725046611635888761822699440716139847776649289909540855483693214840671166216002229925007717707061313494962671697206729022427551284955936018870399199543409408557819527687854884291496763725100635163466672451431286108718717084375940771687939063499582907766100997761076163853350673148696469168070003594128678969753041148016076529036018119728211466236301670573145429362951815308334559037365257331095569300364759457851303979896713684657423580791539723662932094429791560926417381867937773666291475130474995953916821399129947751967011076853324608847967769494705264258657024788649829990187419070160372404423207435829540561353227612102406418368948527505676668931342648472837166722250073101088040296532275533352616447149997767386494614512534698218082093832129139249765811510397960739756012335715376309244238828100533620793553552875086886288037022602495304104959789051714462214156059230657502316479665911040512889557411916597133622372450391375553374507654731844378543976092070995574762917862459025135843352801806916945220402276184132621783720213770765241264496077716671064074415123016591645556796128654424461366918555503082449334972105808955708755978440618017491527161188829476255083338573240562809426096818136554015464092132925916016150079212227025521274309071681254384826952663039956517998618945552999590693643379295544957293844801423757822122628605874271787869521614761850502255695443898008862582080750149684216765806475903116372666717131967976685711529860636384135287357578596727366492716449922055378752334975707528223641992518531690256229159909726301033034941622386976345161604433429557758114808420433389393672978491163237590727877327206684719565357945705331681644556860377697381607321557636724872399934930688869452181596495827513070723515842006606606233945774441694122416282065411940107260466165113581155614925875345254797178925527868399360996867780402825529650773174762645893507912663574518466360973122300430886949394408136942304759403342068687287383717326724064269624206370499375126331967120581565644142728748948750687293514743664347726259904447683326182462523256308564103493100175842811480567207327968966244090854367854269438593020476416256489330167965729674306877049839434722600334337426497613811651513996571788116618622554142696148488181368640429150015319319468505779458539757993167954069539295719372236657450094900538100070401561216938583256371666231507259894749942584824527456502315326153080228593953626634164415199145408525355580403469613953206002870979850714883047100177389520016353758067856927275936910613437482026425228632031839411653526625551869014729686257725894105116393147470096930353627813282916270292595093852049793825491026613675110225815989249472803280902933923348776492786730484251796192072890390229349317373848061397003928027569437280737858369916729160559337848693088622516341192988782910435010091964330977357830227043520816220665053326290420595432532358642771745140234332265911050250351216838229368829669338630065121448388108161388224829377026179723975511226475092004869166278611052383168488015194717715472200562226813958010272154385750934150928100942766135213560566424691417283117962935345079700962693302290184295875959586074492214310269229865030692160354583379230221455010258781985960941415513452725878311423451374077297110377109770800474409360434098448083542159821498988103938959466019854424497707119035750564960409142227891816921106387936230790275902472077290205572023151800751120673752742528393297630812654763905584581565207690519013452152127420395833957065193182894721260314102822142447855123303345806205188474930140468370978607376546406948868351305547848914156437750381862219019332173521004608117336132878307370944199219707401117569121085024751228529649038548579267264161961978503290582614748367174659300480578063553320736781597373550742080374832788344656142749572756471521964353601300158137283077159394542957504594793707791042208484163556719594051624494745552650016381739149368699323452216288645162962623713314718631917856552865844684569281615542773858024297504332957502241709020156545716561002831898178449870713874080374718207571412108491842517316979143089070240029506647122796198805494333443489176164109903993302255136163825948521374948715170239176435235273601808302369836053164715023684107310495876496287825343313192822395289875296004849632094957772961012587515050625425006142978572646050309257525968717879759839608940197112331377856353265388782368406096795579799269926647123028755733920193137538414671254344485311922556613722807137819230730307225871679901339893319565815249629482335733393848839645891958533158045702545441543070032931094825668109536615836642380971514501617661320671972038431890880276260150304949738075423268918332453914734585260079512512424212094527623368611435606035570811547268177810456593235323719007847505407252744590588839672919011475232534138428677943157267470167120314074171679816358302720210881553990839847363420741039194119963102553516275288944016125945860794282564196644036747243692545230871606695156025267178162400891286308254395871485975740162627725723646934568970943436243316671298099151439054340209631611404292198096175763280612215379665793758218618120873693787749052382638680682302591308281994902311372848032421323943256526674411352794052626995812594175132321339008028481342129747705476786305207268199693845194943110824387906550217285440351150969228435780298612581918589070647602055158245075560156078434499320679433944434407081246952804403878128048613586295971050930967140268959572148049778901419052790832648679414090560869669748888154335948986304138239546796636688951948438576654928887274450255086483253956580641018002714658439470022224398756034081164990816449196192297253292676332014015013988934815703950435992669322989657646938673086536149806669325057041034820669725772682038742560217933264208118362936188105741888640834370274087879787552711762938441993971441861944377625596501480313977410933825796197138911948128542127171222173822204136790702334340916707400120298806380832736148853433373372749810544127893543259094782997103722191540576193266614182604796502767864949780472982555220516185591298662961160957866711575674639729427178525853394360561415644669270219343620860530645786211666461943704890517484771490148994158137756885201507516689763135914393049450663466750700081300369395516168183598942680094266015632285219250823378826596815206505161199454682319908406351132516195002689593777628694290962304807721670686261702723696266627936760509898704912293941050430528488878841171063732946816957886601057308931614207743092652398284566017507460929837336752394964649125086914773483205927672260177140649831771607150509866539547016024328515634183141483396240824464008271656940980043876495414296186642943094082119035753048847660719420293094077644536348874914060907726383740217569695133597573269737787623341541826520615819307572568361075721091902025637137759577326445984901510238553513447966643588668318380744224982859132819111406003906155387776526840324976586237466882269176926983126738171634910514970778151206886144859095037323405506787019808071116729946065745605718622549730936246168584813443664368941018561851981261333019100794483764639028169859579983359462976467388857954179042343474341944248927514724822881968575203614679793605488981678119038831163545931833532892981059109059939534680005250546430659139723164735385649141630328832639400799655976926482474770843639964116281832053776312118332521476170867257088145026456539573498682240416019256673168605713778358143989927621136971683365190843600225618217567901135100845937070741108099750502825232612491315535217661929267443387164054986802476966492055857610237364032198446314760912914831727322082537234872158715652469547066079449746051227758108474303364953869706110809394556436184351603103397248437508588167802502666334793287037519011540103174125746864133525584106846793010921630003888772035393506770564154283575466678245827177373138753197922261020790003675461955503234589413684825105327623407852945692341325165181016989564192691237256361234054797819335187440576716700812815605405845107973458014064523927287964448280587900911082820778179804573033580859253476470422262290054102972988621127786474125459575704270421697570699428164638147841461456445487436540316830758472720153204713038035228571777171647398054088057767719265793562390957864758720611540771753878562358383748305771388251179730663268146568796386857560583991720857812914126202909076505253978000374269459963202981041253974325986776182031648639932473702096945082627195272010699943713988191189641627575392569901379111006820261576643509689913744508695008698076675342261909384607245946818884642606134408594689106996550660000730141881187094501023554572503128155268799406014286795542133302073363861700543144504794213801477591922028929151728815371749312801148428871457697642566049022006946273825570250267138625107621731603100949629568676221230890428550702849410461930745945435611741113323347327153449276479465194459928232192380419998720521475311658641842511064112700575005095229795493307094642242891405817854473729502153746612123818051460191884976705223266316167437426426606806549956046104844611074441326111487991573130238226027802774224489921370920683677510188565337340594299704191010486577905170617704546462030290174760689096627401920443829566364817887134302469400577123902914880729777109284223116460728431159169751089855346421356669085141726965174191204097767545080848503977284302544097407090957690300720213484645986624667370846831111765490707561012146534717440044406241692302226913882924780728826813225133095116835077614697569820019640227296905790159610598290452142145363962048542443627832227215374648367943498330180263525231800657718141959744489014828252454071016253281890659600641961234499419119855615984763886390788935689174111020521687102431390689839110177768421859950905877779636283171087183860845877115275802698363857926239935699978681794393089479176345031269828753601152729483024792810836230328007768837869681207473812331809710678072200479787903840600062743518572090154348231220485655077018967876043294096021418620304752132371942386366491655759285203604947874305393921002344932466034282534398133503346480920808391790311348828133310214119568839433864790066526468014174505568081439650958928579010887964568219302099829198591746778729377669158436888205948373203004002111002477854682361009015481505102659735284506609888175640442200632871519143647791348492113264835631628843458380624380290326997956416049928829956223468722420690571513617311548225803721562176210863375283180402803656938859079913742304347158922445845467799299550238365185024949676509135032394482965790319289186091337614839226887612829952278858167877324656610739110598743066606672505601915804305940244153688673875398569482143798106927696012822568362904440766044735983297200010023317155228077600057558101783821514390554185221282961027724152284682281427295347156655217596600276303597313859172198968662277209860338913518203714020883560854651721537049935652606301464050132258633565891669590285868264589156531241639263545507453610027243722404430845727769300467491172904087510829422812127513231023334109893998015640101749929407743882658882865323587400863211560037386171394479338409748369063550546724154616666209259167693387333897861870340665450192893345747965706016025297961392957030212085946605970130658235784739300424570423348159828910174913679037894281413873684158949140715694889750960794083412924836903256946795668143020108861655926137844059698988023471272925607429118735998859991616536138708405442019838960463567771556467272506592002087403072082409982569464215497616944484770630629781383143166948155587241103725747060650999548208134623273250770878029139315790744489515839902204674227854496118250980479647257487443486785200021304313406262038017016346030355815971414974455327363270812450484981101253870527118241432410532880943480136723442873932965611427111711054694291894512187093965419336904309673427424594873728393904149982346601362004672954340904957754426177624968588786991687974878700452786093139757789155116742086690876773238547819881971669545178175010769902192981642161843843120385368011029676284888266337125969925140437921999046994658003306435210488103000027690591631539671713959991856879367075672400853399798072629372158230462174107319937279048481971294673227934627607503046683952996383133556985521104257891139991419158834878067670801684718617697211484554404807406456065090798269382511589572670243145703416999478337362160508316457111289352076963278820495301190777413465469397822058592636225165717609849398324359881875901143891642521979950388575357461205966177136936259863293520368641973428403945136156224754371891012150766915005320346699479668805281819305644011898207447458152691735877660308066432891401266835298380440853403342566372407339634167596709638485216907041383295177820704544327284847873545062930945020376821058046895726263372964207688401895916190005399631889499032502274268380947638195236762384708636680689983043767926616919827690694790579350583142274009810589499070905249986334132153994558216249146229722473295725848186577993427105551900153602011500105537900476902013643134663024398385366308882414706462767211564876393677191125440469080605150316793664009167752308334706683031422988204460107513300987426796890730862642569509542363792993941932565149023851146251213462628149413828771336583790847756491255575311601715452581967460341255307292865524130173051032535787319598773509950195202956026426566930252359815943244790140328580327641914393840523638910699917941203018246534924038055361742582374483097339833174722155288637664790843007474536690250599415460075740235144447933998283761535012712205079012838846142722923684171728106819638134785324183856826196036208586932613681864846291190385963570646395058864223622848508505237392155857005142391112089554022846774557600479318398638152467401848462554241173653452022039596849185883448917121015767191642531598660485958244890021456163150077383348293989868174039923047565166023766671499130779101838486925048614919266355995407379957362599442632392287157126278538081600271201662837427201908841169679040263122277780460648455472958908736853032652187782073484743669963265192730827790082259864295451107655695708164841396035560807936959377325095320341961686086473378614297120688015978692611985722352667893243305306694954546598275176949165729996072509980138568664386174697186312819936749139728258675347520740090719181217205775833863113908617187448042173121999482463772471556490087323172855831459695678800895880433736699569349735727878235525652445045307191169618573952404313051526570360730165113501470040913641264387398649714343364033041046398052176683253854847086111427022528431659146991840221378888936283531860488251342055561848899764248085100156998030324998214699571044655885230672721992967766302567452627944805720977646691613291097623245529079801356972104897166284795638343239586483973445659258293992744897305968304054060928456229207268161044672113522302481928227723196761980702741192972572707458963111423382639954046769242894028199994572163839047637512862622517078950526079116117675277032604981247263363536063506598631101826932665007237083917733955143591398206917009908188809369864912053144784252585199006649907038665821143533974625601342843379895508751180080708172841702736401646621697256334391352984123314782017830765804163331911255961138405730551366975112711102778256651006867549546843822762075552145290165295831004186388497190407324650408398805812815369904609640749128503406635534338483197443314648519565751010069551595737743472887834375644475779034164533652686515450390939381676939318007923482366633636481018260668300289965200927827203419566229896326412777563889663558095514152741953689801346309498206140582716538212870341790944266384569211978206789596481393641658056940795066935060945090271809489216541306630203292900855091272847622298558075045011146622277142864283782826052535936618913293905172130183081775043270463463372645683420443362192691122490032087120552778765828407913500193255074992669664740154868455220779405847021022633733704136860198863815420019566724413565188857641057645602145706896294369687240841556934303372695773481422089811227849752996150604798650668928833945915068721316130962736757598097283740387219528616355276913417732102783065311116171736776755570772083932737527421319391827828532031627268463709946966751660950244981871267568394526672247086179831688935406634591134608180110147518682292453646446888256611163092175661844861988463271398745762448734968782947878764524145593938174872158966755154679685460757045790024200896907900517810360248869442091130054281501194028237515853181986657867799357082889899465989054582387454185732434808601069447329507757614050184612130553856754776432006947932101990197224977977958868334755781231581674054054423436302183568918965161892286632657142559814749534451429397598700548564375870861901032906077019067635075882819951619232280635510630618242805257575103913422676427843753605760828708741628007492803299980502668609965361750513918597784736787700386901820468096228718745163947554382117210277895616235614613781555612238322483685184110149946546476538431183145199409130656336564388098165975595302079321161230640127436838939459360870896463829304051762231997755575746215530066957720401178135901427095540611510922628904226244676300059474315890961104259498347072327670084228465034320465524343241272456118537618619173496340874994975244427279397030452224588489798826517649029983972286300092693072422539182161842406493714544153984365521461485642944637894532736505920957729585270469182589978359836776428739834145447776995639437200211900996097954360982175402278948678946612457942305678778776376428527650347835834890324843269677297669426749979170630860200239010893110924577747248404969218898698088874435364943496782732978935758166707348901825608497176647283752391182591643473068833525312703769235890380292591384732414994964771563818239032768431367041045088626424434483920426521091282757705873996813598592658710755949550670517735206048790116474734000520925373859762411954240976657465325160971227342453128154942023761867942847353302395266161739818769342025932172018813686235912675919394262078522619346203293213347952035089136105384555217453972773021289219472488556276581610869571556037186216995462354315927923942435700832543936319471936449720065602900209770146018538643014403895938649826218215960309378208434256344251294023811539516979220390621475964973386838442466996819529875698361546895523396469906599656253079777604782628121794810631686366895111991147544538257520699075586085815934404967000406441545813475873425852285839172605561723771342624351377061787623506898317782986262785728326675888074389553486045299393758997443656527673093851554251375067912189571065885117242837450929865553020200503959644557153791102378443088431459160634730233960956331393694002247513831503341663503896360304183162132519675389337128592631285475740367058157136645758481061935279620971495330268573050763227535532633697790893693968881648997522734155521565625977819176242215483090969167388831966282999220867476372088815724905319388116608296762016646140005143461891230363028931439560750902798068154512826792433396776681988515031818062977648015276113558297777149125875114163242513647314083465503645906731940953954024337363403755235286472164594745914874889661754865303703064418315198997191069668089532405169658206080889753912237606081965250884522026576385807902580055143610918512300721905380840816496410289792238156880161622306169973276210705370865230419566853021551185016037648225258522858473513084784820519955444206215949641658164534371617826184038124721374797070697108840493366485714322424855471248339814652872688165773598652800500215998566308941152838899503464761013774032800485744817811592264345008372223492721714762025802338688880763367114250996348422363573540833083282091173846373605603058112776177645876578983514389577146733404730226850150092347263850353820799176710237769992168946177888469327765349236218697769407803539592730870552852740425614846204142678121202424466906939404368878463465578868151546196586671249099585491938708940066516968620290821290370607974041768107301327571998932229374884561895003908469437530809528289498476194136887558193945688787090297299627558590680676598771041215794468319050030361520790071165277033122837320813356553188587880934043783965343198672406265694821535433807839352281190598236099042223915537726056786296411908032231042594982073776697089186735380496242766823099330956949059153955620106154034405389881835752051171169445556427651114743025828599607669830630242050288830116608489967324699808856783111660936839888054210584378478731226143903198041338020869655219550863007386643492863432088372288309358326143832475166799965856332315927953135024195108285527398861268711956534288162813376274661771628960607180998029312933630771417282528405971018139223723908014838303852562746331294376128292200344594698803409550865791782672724724231376257740776978236789952844099032369742425550053242363389140608796975522929368803532145903691382374280754482153996766089993708576277526609852584326051006420035194056354278626020928186580562897065751202855312387967965846822970883849718728478372102372080642629590948734646023715531890070494621349706250130222694848479338699184816607797926561935174254019602195454924788204441836692881132710436990139290207052021463687024754366299626314438457603687464121550113190663786766557117497158927143730121488164996890967423016360949860387706352482074475049413880227586960396642708698659596267779116955962594747922931863964480909756770608788912345555170253904118390742153640408610781387854231690263262797626434998082626405585851716151398082938503072431462514084786573576731710152642341422614694191601653077494455940551464052934463322329383128592050815710733062430886779798800091802630326980229968380134350942458948312120924136857730826283817631366352577233813782110224811054906679653785914279301854385611841228205191684970539134195855101117447480555855643321929469383986639474185705278496455037181376842257481225690571052792495238348385374622449064388784068745991208111556750537688313916581860100170639331743552696427569293756177806138701268227016306347063353889121268014094430040150268764844638577881960777627752620556067889688913345199933018928599261717648490645170065946949829487667357535555613698496578528519300267499670434111435858231601477454841457892306246709646734385094906890745535047848504463831274220731021472139081007724500944945534885157886281986453308140042139112236652440481275267589185582657509993564694260939227447558189215998421500412878257151054397008977328084090203559417309569779647895345026090715543962435728402345324217570990733758741819737513446597187078765573116840158914266680348470127357022423537203557222876841502274317039181789812883866656623120137773794058745533802146539194523861571469406648775539570054825794487950755839454649765148444961451828096888011462648981100131122300087144333230349768011771788553735529922710265233216927314245697648722208795034675985349402731299172433631260779575422864065933877398324475826724657797254075739700295437011289966856144427218065848976113394748249231503687895861537209643226060629634051578503641755838619607150159189648372767733262590536626819442984671196983897601196553427304579612813250802648045276489935514840037867409751321046862806935693776301579557383153176284984954661265440389413599492501639936661636227136181835341475659902720382279808750437897706174819676419131811299322924536050808363682455309210125873975909769005968611674492368031192218267845066405180287217146869274470256653713202883441143171246593218335582656354274217505148845972047446925365013521493378474862081510271337988523541234298523060101066192840698502196954947434462948311903970855063649127395386773170472645155005975687774959310743464529123698485219920297115160057797731693622821631614867089154347308575650606629971219658372126861224036033995535833145960763270752024699411360711047538025256572939710570851634341937362476213217866035949263412935572772326570505828816986930737180653748836643753223946851542238292032367198308183946011724471920090627700807434667220540359112101283543933422181579478416103314948740249145897500415534470998886226624533715368268115417166049722528005438643519080881538613340203752559657092134769079091331770420468818239116197348528354908737120576594491946490652766591266197375772744251694989001297390265838904050125284184785485996984118679374947523033264198571908940850889032612348598275601114763443224915420821989815502525654572530437873922486966154677484848125761328308185208655595743124601190583674556317226651225465541069317326211332700605692654539816704393043890739109522471517646475747515317804131218235988136967113698269707155302391106018414322632705660828544397861392896510975398627081705776026193962207024209820892103744182008497371299919274726131733051594337580374989186949915023160388159888658136192060344418095077640792839468417780363153186769300098508975782021136193832246692258682258908482810846175452126256647511192204897331716337179840293791842125244179059357839481699207842107298391838881433586017015272440946294481956680490864827893907551808529502453150265048153063249411214966929399628556755570297907032568069018740474210169831424034110180570607722508687989546856439198300415644766866241771962939811184182051808686220857580846592871144265733926459343420798939551919606998264545401256605631650900055067732045527613807772485439687792819090728080021589447936267837904304489796928859069696125476209980783218262051273873710317505723059547142146519864038640985141305513158535470896921257477203887683949554937448382686144793235369456350896355079340996342990998138881008170578048196303194066109517236466522663698427869347312774329307514799294959990978909516280728742696708872750530226582893107232615150037721973796841785141366000552444192444480941333870798518249589437065124591101959694767924785714835531061503583166164931855832276222644667311573039734539729206375393920464145891531271507567329940200764806987365272686676502511959205379249431332449838341080256337601937815318284611397591899619636091493686135664978273073911629866859216229103763386010008169070858359888932091845263238966217133020789637359334830340330149070825115078813309494947293327815470449361553005022545115921267753428446384277865264948317097116597197652507267485181151565500467673934300175842908139036756396751147427915940795730152961587135577721544366841279581450741638137734784563888065221452372123322550888909483493881990707852715336586051269450182008303147525759547009016550042098891374203459222080538406487633442952066424954770008633096573637627913497643570233945351658839982609397381802695526557196765332906338216461273957362927824902003176683637694298203206583385451149361213607604009598528089919205972554320274032499114927687567244513322954851879021777554364985821648547098472117330215649549825380892978302346703597699641228129293171615745439209464035390338370923219949979468480606737206258861815363243393599993981312048069861983125745348377082295109901136452981928806248666875393168003776299653928441029245541896158684058491114966528047320862959273654459899564926497846903931625522452358080045742539413345495666705854467321265722374576717181418939414259870678115462918918387810425577271216860038250889335872375243519605926486197967592831139676769914567641043137393048604114333302294195236039772900288158457536912126474787299676001511716605315717187552865763025141507008657930002692255837312077344517473288075119059360868358322646764062376622031383358378551222818818715486316212200411276487453870460700675125115223574177485990671032001799520220714266430132774654561197681326428727826412655416223645803547668954729894514296274324661292827422165795646797250633158801740451874086212914155403427869315335142545826650934011010555807908320978349235062161936011635696591886990410331003327721130333454047655200384926843147336475175811919243855499467351870675472092645215390250620837289608324603076555865473632707997037916767643346145821745018566119109603309535757547308735201176003610461087328281722457020911406100763805981993784312365485575242366120629942138752226672647725885190459589513259878227943988239999560950132053205871697493294535468532422328674864257911586785012754031859532441302856222729539328893552982154329433201764603918906271251664531867717837304588187693202075095252359496491013859181735997051320668519465926527834320412607730768290089735226540751666900086305045073068932785003466168045926105395034078159412134827972858472693543211172029954721411596631132319402335372593446803374025502732825782712219908928091881142503339188341174565716932306203849440249268128590911796635422333112053894893821827587875896870821187759988791298401478692764068063673090760887812363412394639257707280817665013069038321917345990624442289683925528877191841476792659044426113786093191401503969414490046157810957884064101839298928877334522761706009237786746568930897871786172976648860144336505906672675560839035646703777733532047230827586501075886159691969029305875568227749542851551432903312521235679935415336727968865863561578476030514383726317989739253817406692918825396520900919248118208457361562008392326726171042142499062522016868680230519473022522849923982906158937204922550470507897832633384773820913131438712383519747549154110681157645631991914541735649220439765905417602199136465808490249162208660003515162789358890528246129718891059257411198310168554958935207862303083920780687998569204631890616133668877806549556441370497388834149358736439687761219473854931688708085976896777770673146985750322531222713744659136875378092840423233068132299493221566481195293521359551301664924853268174293906553886069552111273526909560583586480290757068498449552826275777042809049503736815144367935398189638408873418752255184723895541145412072672467876553816465912985985470741426453576375985963444761239904864512407476764040087943646794439106554450497485886311348101515968450305604680102213801369827254666510638284401469262480685005889953777149650573990646567033625379454077733876675929067193453715366150960279857772145168330385986354226572437165075852094113479876481688145429195520783188154051702227429559941104565473824787983194302670171453402302345521861748157165106748791440685027508263780816761416912869164857673709204092458189858382356615980410027923774968741227296981553292992980717356941471470543920878463357399201852184430120016680242756413502436186754158788080694212882959800746168915266599617486009735238826008518888689189716922362671130948498611349861344448126062844756542438118086659412228064858230097776175456433078997896436014903408101886776307026581935550065689565064295769076054976296674711235776435383914115956916630537926930432369851863120080558963274082271446396005421962927121742584013019913586062185667679199252689546247264004652248268697102304608842102999135301125448552166348911570652131267651638483011555877507990138707483477866419245538904329494079345962208356830353387393906142908954749128461085495361286953533038710851181899730905706645282674238978726976068019283783782224538359783685948623774793715837949214531780387220070111874934334991119582903523239735570285275752582780191366506160615182927256667246450212659595789733095702953018872846720048320704242901098709696339329890130822017909178803993433510413240237525150509280415891283055467681513893001079104532789552385610950333027709629945741153306971216615151612768156212582998449214044950019893614833339634657344208872247639236387037646817216368532910510126943528352228259291093906875549962379615413237857462034517119817698523363027004655322685959765724867262785983584398996681622285912446581661093958487441959642945699183834892981897947327769563108744306710179419243699516403963577443455142136214088801715333827596522643118142043501882867334280510424460069734187631911709648733687947680648790094215473832989833954687938134835106905685427719996384726246845626401147493078102817248489346208320197690665331883312187206495471742319939134087318152220424356334284874930703786564502683877447596335049325980501493056307741457714583113172637024237846682932559886305938399018725365829688297134090360642640579378097004585678238678352163715223988857557001595245750669614232118176718173982313391457817591622655833837383228240301173875684415325173939361393900614243603590550424356061400686351073347047140683708398610327400773967640390176136308967129574515363751803023339998901230790065554088120340103686975239554355045337478054064321494085808201162338911560048264829121286940939464855906124369653752555250757039353568689272947221051673979485282674621689842792297678879684018526294933841965484826475080365956402790729433087182933503445981331568632032569644776834615650867057859109113856420588076870664474203763678679696087648679051418348678451718873483169378872107391981931490681580714809894203905182277877166412943845992912627082608346018282393807955147298265151105559480497530404240414001288263211449885203537903453545046569662782721985819800942172641930013362018668408592066890937379980404131694625492718575178699746760965930122978662158439487926842733287717273452296575105605589055336523137864501761994420080591927386136283059108642561691564286984721706748713995757085370585992617522299452352789883622897790125553218532295892609373860886948267360748382966682043970571133422983068229668770059356127479392304463995001349137983135710676967241269931729785750961061609482316764279407086065568259051162902383676226717823075810555693345480080400522827982307420841930742586233321847133741665361860909077640049967031211182241924804807163482555208727312350024686987652526588461628696794940096136692150826313900873165011825120862854144182177719446154176723653967148263746351963561163751986387947420881629201170073221376520916829134476428831067329657281968842251258876203332536742523974431418298058422046813494891181003060446944727466196272921709628347942263384093449304743087158364413990733456116912026270755086429657927096890168136145396119022571061905990012742169215041966284354469135516858518782306158846037957652125149735546894558119506996448209426059396747528475781637627208868519491793121833173248611330266844424529254765556868387782172015390282507896711495817115145480382940704721246241330730907125627340637342908967269161222824498557607243839851637786549103389806833023393112242708049369264605466412412467721692447469305242648425298515155816554078983674888841500469808536168739354320137554425020148856085547270242536579211359656909707132166347319425797398160358226485926334721586711209663140500647057778018997001478600369453565217029040489630072946661830781887897974838042584257870455485300846643187864000759136179899682472454207820347434480315742317333150516401641146228853299107230486259997988412869325849277128193287634300837209407589850412816623318668737242787790234212065412763056861522207758477648167584433989791949195228267371478811377745093442597528946771702903871651221531989935786487051511893945403954476770622659553112822850024109853465508451483940658521358488956519457115374924600546255581081358733089003546074002846920058191615848459331548662256941430013328771596923272435218846102706649914007046073268126194693482369597539538101380266229115299269149686618712726052700643493283628763196036109658436500485487059912338290133437946895468937410139472517674538176746910650910387901236143245347236649942955102506343837243471732770156108749778026560820283775404127894559554866747405900937380537312093730068878722197453243933692437336682940307251802637310392852527981298369881197945433059648822083080088713046709618625121003256414679634085997548685690916517935364890587233950543718337300662166841338651395174198822979216203580000311751785300555497178686144779938912779432483879024137621746985401124529269668437238171072908819093695466498265403616101725136723641954393778716451182800923405489228989167563991158137874093325305643126252337515990608139256141668265257334628745792806330827537428091681488871171316723481292224546636063010139612258306510796736823728236641531513491244170614429736891738441149723809438573251241599869701705115165719357127213981163270417305887468760045945086488990202774269785716195057409906912364356365790435465963966585463410153621282026866394231437921708996379679807202740857181161277455177571182489502773954920413414890207877820617823752264400359203799688531347058553688465020622756766866013962771717565953126020515466730441215098837094782201519859723104454630515898186440135413530549869376262342975559291620044617993778547905768577003750868448404568036300107575777212967098834064299864736882443583031959481700365975658586365670071101335094068106911189946807846171420690795660368084410693332118846940453690786368492274397954459338706400764443816934601116080541357127108988272311018395705925341831540316050904955978419476098541653207069455551494479214168728882775184765058888669387423062582274343195129361899431808862429615310503202113642522368023084062448722474526677332638759506218209485841000092093465771801237189147901820722116356424222649936208620698970237188199012941851490648566408726187524327141760561673597205831719553910008602565804290077782638328054224396948893780011173710146084342015940001750533848448928422054253560463199296424761103360593129262474544744672033524113429798617964332961475987211180880183683060022061073470975360593446130306901727822656676947057388858790250657981083461205792993552219499846533793850828745505264572248141344194998839859345695611066687442716144417142739621388287164770319483774200477275168252896012661811817284117217828136038931257422251316941918607729886744986085918994755009722541726441888423506465353141313367682706424246975769448602031153349350047616102403130912141879239576006625374027806729165704879767888451156672897443045908219594837198997640866567074376928643820171782772157863833469739177624470392007504706401266578865851672991335696665595232599399792125521991038499869943719683344205709438408786729035595291545504556991986485732686386120809104771620585739548224340254117126058260948066150152450657272783669469948038104738857999860593928197063489555507835804085995042207195293553293734742646205188018517759945851753324144038209234504327066720176588688978823192686209198893970605999355355017195141709875700749105132489847113977356339359045252059438387914986612351023194916225218089380871677020739279863525288200974893949381634574932477766917869796521029196664710405384391914667315825132553053896281730969372411454487468868516547142862846557615846624035490900006328748443792289926001791867707185768239715067172122879243564443442810496082252938175387488023812405030645663656327436053975661674597793598660159789116635898262267207085818667800435276197448548622502581834204651288977377125873731774275139328996682284630077721152024702026743610067303687369646332127335482836986149019508175837273692565702092844043372808750323400923713317557269702634013859359697357130239052181620887541635706251820735524472660252659663399542559714732077121106053582694313431489967954942053064777439664284946489498208419366980778806487645769938700334357165402481387442265914154876505057312890209335229130779867267492261694147274629543221297523566270223322623304873408502187340613931679931340272141396614684954250527446599482800118463432906898858353015804597827481281771369362853905401521508386840389455914818824017269186198833849891689728229398068842967372031417569219620929365356163210952362309179129464190333681196689740001630533542065905633228769512456297203178234231763381273211027941003673414996955924441645455647369743517831514243335896915873367522542940047727305194510436461772742138897445324305277212213807729518266052277823649633649063710667645105932840386849247995345548500888236279034374619820688077344910964718468138879290589605363935726599387999832072817791288413641887041662386235665206179023743535089173438306599185803534746795548873927355253114517844871838375288518233591592413584505401891132463380089055892817823522757557939397741525389986057139644725883384652078526412979596739538856998766111826545341823800154882224436833493575721714528895867809617762078882621390394767756757893031574506639459224716727868700657159542730212458608112430765541727023678407893147452674373490056468084113053330216715590669413395801943956599964068485519965046490894753507374579244559793253713731170128993289676900951519547619905374159948025635758643659596785916641374708896021281868273080107218238607272401287597187903409546775613713649854244780348579777290864941917926254757441156605733874975607392761808586875500204902098438382853400997939320275038372682103625745102904866109633551716402859188088431434269757737287180066523093971414142984749747083569959675785486714336157372829086233782536805295896421960320468326389197891626078234270300633451300540746741323624077760223332869608119892917274242286189004368472194280998083681814974003941224433248977732084810129141898456256053069674273742122571918594461218367712518935266272615897158929183487027143297807028323420980740503556809922078702524859716595480496756622398650082031890766408807608317498551667254888076431467363171840702648731020440941121591648505516584401455159756059030105191418933902538840055750525284038002827603078930023840911398838977556104473216845558522163333477244822567585206438802690074834763019538109256089358661039373104191219366944357120578611321338554235709897505650528290102229701168019081775068556628162663868719138173172175935498764401953013452301814782591313143004294697292960991543975454602148299006683268015028675345232516316822057740244772030318369509652039645661123901627229892599731488493527360650896416438821650725781937531211667230350530814746919928909793785188341664515110034236827805590984099027543082304124841417054067533911331728827875271192884551846117309534601624321314984080934512980224116689107364426540844122069573682543199781558878833562379340362763752153881797521299766207552211065862610557317107705588574563987109298768766920346572535065485078325233742018162792592520483360234101871675094189900053379035085611391126221897930491889422556424396938038883846170914998842922743985626683983798748999420804696069736312184671760594441371879442472041458621964399028757494846916462428332588699048909032327857628410139774572622865081255191203436336627227525185787451168244280088021884256724671325644218881575713646678290864064861204763702748404935112235966530209842931265112672680958620101146411554551921547015117887425906996822757785509688661378262196065827441125047641491226498483873148849938032925234185863062631213297430160014457547034163071832417279429740106499123566480794450482361010295609294570584426381055113727299682876641924967028449166985048762962143855432531479706902785826136283241135037179382195260928694908732595466601974152561602935293676370782169581483824623438132265886660424965577227592173907803197725562748216554930958721964638971586103660388855576626052547297995953577951712580800885051652852990026985025101869881330174628398661218586877916753963086418436392487412750666264012599071373736169686421652298071831544515680125299690676892839350313475155604551438596713276407309282035903397432783998032359716147868030793268210350840652801215535026096625673090416108125247505916760419673219203635242341882352439988298474957783906283782870072812257114617568905145959617342746589354605133697467675726495682272846895868980532539642666628753964054146817594722447539561803506253275720941664842943946020421915016400766287276992911919373130075552149494997338381075364455324356948339606706046702049884043466785856275145042437574727862398089738077111747514279008277973800068119477260009576244849318929464784581627523122160009613376905775528400386300485028919765144889102251204706205864397090533313587549038567968012913425619883662233246424826702167693386373396225150252764469570377315866480921647464885866146904815629202277696653207193518383313765341578651903443264191680628061813021886730145738813071375497904678394818208739947608394462681855777072214461123986228369986326151610890549111008685740924010071821556947755548329095243534814612089105849202066702382976547859656023353308636885580176159965418570247019000909388561856658564946878735058255187963731661480316108541958113056528366171184890017633178685003627158796125382841490581292759913196880563008945744818997832534651019424152076209226519460609598755520622660600248616681971759136884792352845045428177360755090171857920757559506362522968109451924475631890586423470391885333359109650168604722145897704044340431066761850398258625905512048174594201444455218925449591616434747515703173308007549344175029798343536618703295964617824200836172778306869727139923693291840564600049894389037449188197704575164443938458166413616646188157638314725402078925954966009322770503169297400897772659921757499654341340958439590343757493415957767131588057943322709044392906071586560274593320313593299043184535307849490570134166763479709603368167110795955613963155315797145516523682611203829118187952353817529867829362212394187023206429074698285602549237819913919281780916936400788784641944755138757183695339910526160436430448138755096350023595573229241092902303124105813541445810412102248428965328766917846968048298322437685213843376634192766197677210120999879280632195669288798814311270851951451223452905832801043481379438624664322402186730511790069618074199653957589503472832537148374376504549454355307184726102340995309666372526864306970265359229401934428286709086381510513026200244692202504245887445376201118229652631167760020373126408567137570493590552595705967089429629418765474089296446642705503097150331703734133894656973536189390772078830207712135603478337307523254373518362191689524741107589029118540094349368472791432715888607502515808373236500180362094448266803574111011456661319086930340021315037902852046143307613622804992259753670984217298522264866749951587157284724750007622830464068835861954127178675047115239162459184148702010172035638730502795095359284232277672967685425894669556198006317668767800567081354802768282706008364169442326608562262061795684095860115574444183248611327577046138072868630694647569362274435372959304879417270647914109132383294880615815871155762017887143058417895376403225292032128293848949223398080585110224008672312066672076694349150127385726056515752503566671928540616480746086433057080945882711150067987681279051456091383927355844482118188807706598648051176952316877810528724917538252886151827997250554667022484712813698000941953584244816334835068747141488729670565211824575257234084977239491752538699542055222919015535760682444620467036795640648871622397627471107579895675260711952317695758948538587556916353983739132199845555369946345296169730496081992601990440960716868599974530183716755156558324048967276760010060725816905808967481397171130759689798344097090248503084520023538588481902910816488430088924535787741322103083615471302895548965851353048351489451384901776784409884844113777066182190768808567433761295928387361998400049360493154483237055343002550831546393249636318036364036266892781768761426707968964437358513982381903416125926120468797642342499591027631896156609577092379055578787219964160055893195026450916384333530214993279999716860648737828048444246706180316971131512251146202034748995615761695307512838699108607420237269249645766731596793432085432301892607556056629591465929676149900680579124783021986778158414373394481545506422745218449640785250928116138496881640640294460415388711265824486072937023531860326205526638496755466734469352460889915276918024818524177962040553735008772747075952894882737754803175985015759121483064277194274226770678202808661242295142401562075276445196055915359869983023697215823496137206340866715107230953080924015836592400848786252568979985741978406587442558148736671046552316312583738396341941125772801809517132787735400208972775972374336458425294560584823999616017188932584004452890103411273191130253818288897503141130135352628075947245617004797577706666367115920230106657057850046970457142724823034304730620631193148741688668544387151462002715182904351537096665363247128308501683956681241667844438304895079127920063269978562672880351964270425510315576419145871618589296293239431798554658427218066257660272704485971281050224484417983793964519944528232950719736165623813197310793847146451936473987104764943255828851425591158579287315421955899015362103027859937823927299242366039262522232828001412458737008322256498724433498833352362853463665826347841258290521613876055659399165059313413305821035879343527794073573280488342826159302933863692970094382861807009263578582607966423804748804834001104681775770883986391475207970898586943920403823044739785178140948909370254337174407154624727559607547730808316053774542513212632156374557622386779309359831796289583719070596344804679253398242799073388881025428344924051079877935411045354834184328514916922546187201916546478630203869739469699200369375598051452047093426599869495328766875364749240904829310587332348668428090910312162370453485885910862730926472715732780306900936390141008066628432377065250426932414487236164216573354213995544352495814486019421034645654554032332301574089590704038808887204638486056735971039132455464951476601844621644538775040898917529026964250631852345031117692310213888770171492190266433300418511681765983992138332737764682174040509421360805867369064487005095921516346235505108332699101188725174778075893507931432326682438803882583349433746620461196834190674521253068472030692724019746700765290929012406501569311516003864119976103026515905969683955627850452754389515597592824817668128825436207076089009388717135294945133658049135178927143903723881979316621098820577353680591326914749375807379784453240014018459543049176556531441362675697148891859992401829808011941557129366877247522569001810499547294513283759125130782296282826547418892084363249153059436982690855897238266622566134181154049391281595147842786560520458289831741056576745939698261984332538133423671170839939243434585536191182603200387378355018365995080201143900568840641195411039187995118951567685750287218255358956211583349027044379532958024939888610950440387292375872496063921244185070887472642550098506792625508287618958508638771971213332699807809923594240192658210160425323227267074898782659419633038073104435581501878463774673650293290363706969696811143428689502830362154327511540654153177480233415467924607168874674499740416447403371192823432642965407337809039399690991639087373493807894845720519758519924776871240335779966432712245056810475877819211669326583289194180014244771256438384091132953010163060486290629341975777462856809888557841573223056187027152389203630236336369803396499721263315507913416637617198548274884084935369718437194957977852908534849128908345360097940273171502542760919655150449480085508390057057849334876964115799505012643620187786413263911012566866540746479056236996893621709481605297625461337692227343045786213215421889475968619429969494392250474122126422956020545338155204558164273063814409671462021708107442838492107963525726155912799406151252046348763316816095908284318960231003745774761763224525961513395346963314357551489050064079393004765602034503614088781888088177645703208586442797858471297737400228893747408659217555268903010620040886420619718179421212879261410261444829263960075605831735804923564567319399646225882239247291866980501997125303319254535432597652309523878066683015342254667011990751910352436714998952167644290623571274278988507402358915401996148855641919329039647701567566492714289235491921525245856439415817181334036326206601133641014345649072292602205221653961174565585981040101197358057881400152191923582655577638069071728269671267928801702945250248645028508510182607597971202469500976226292113088657496094744810709220574317009224717551137836985737271679771223126069732696092958245168739725614055579807391451515398100995709241710368636529075217446088712483182760426218747579780818577145374235999261426539391667686621845105276574702619258363987648408729982384640311327751913065747760250378982728855734214756752631146738655693836690650643651689131606620984047860196215027086173881171348302672267239560760553010667830382211812737104919994358675287085800285379355977719234490525189191725506159034851307201393032841970851260897865831570657431360396787379782987796516298722018341490760366808712086545856273566537921752238797307454872017262446911629593142043755289898858198588212175001018055640287446593995178280678886569303465221471474704905548114736595958069486465986732175403210581342388131438878781995279007097331900321979356732541886362565416197791737756455724941008588412896227697148814265465400411584596013053894816653769376062774885128139494071401818625740055443757084824244700435051566525377146227468877160184328954178882438572219429340470152621081297892754518371440409764978151893911094745139072145598713208756000733905519641786075463434421368322234873825220243898778427462451231294610834401649038205795132288315682195784507601501313837422553190045059665498480057391014802765633809672089983139356725130869998981955863486609089921910065518174952552662492130945331842184020084552724388032369943652754979864689223248199491522746227385423399236597668669163463332644547019363382675167764970227993590226314759613889349288768532843181855466487821423201294525935253992863233922098051161977392976018074608701815624491065774612064075198598863320709280419992287124265098930844981625696353096256772256731330895908880059011090374083176113610119903907579624292768153092709948150500034042876312664878295722923104901261388473769063142225958823947273548265593329416891177579525953403652972607396667520056323857418878436730566368872530167618836934473320108249281345759835909760925821042869380402505983897869064804038348465476946956168742692617195725608608481740568068553074935552112382358899006458229876607717599971186261743196148055627790169615931991259663894976616226806478453532170750715979494610601320245478979721538754397949724213902222546811105542532565579425186810174164000844491720317720437219773861878983057510005942956497894429038586259751822857022251754168082011519169453397330900456126295764312951919238421230127721451439272334361573300973223481389267376811337199255675251494743713856170256618295368346627788307799976150866496732982527498690348090006798796246865028134869434212652242009478029085426659550173591607111294918427122007041361247207509001127763445342916134102850246722629064686490874383499356983980909778751209332523735623990841782765068162507442911071419381097614583343270028007924739701390002896080055019225854205927626827165755979299105567597621270797911748996840817296183550175649261675527844108708461605563793703749948918713331142013381761105653189287324346599115648866737161097925524094615883617043641934436147340466403479323075618040047287677508962421304726352281420681912045967383069609593783182838609934385364862981308607597604587197679340152340780307575230377969471477328161048823536778709769550353374395602835000196712641446018485116479438021806910481468397307700528843399021268666768726451673101706314644652472654233778024854754404643971112788724780085319749014304740126391681873956053108514981063362660177775988705064165899766734088475545241040759683413865918984976994431861817443771535234759249438281708698978326175735131560417430854172569009005672861769839928542405801853223988464110083603933561751507091106714506317660216480678450772513910281781902876751391727311294378311232653730094861004424596647807117449890665196041830933549491816259889159004929175718635922559070843192790449625659797559198705438772654638250583750535915140874420557290732197010212180507992030748054452895270303782746022711133729139455380335002680723400226722312342390343773198011196427364181608864621706114373934911721088810025734251232934267610184039877029766735382925807393988980848467774023710904010834500142186831514174959671837723758132046721733425702134938877461597485655143741313539048934303814729890722946658270087328416606835068257195460642208428114525501099121227145159148965244982219415435780743962755669367416528991176938940116497319307074166023853468545004013861831043116827463682323760763145541868518883129606002640567634894456811248914352418072769315457890926010943756563475599822587264503699069301790141994500068754737421651161525297126408394480096422026110911458428280696214875164280471903061232313933828200751001041972509006676770780497377002165831440395323178729904437078248487486142693267660997281369190705613610547021296795750067941047516805845513129459048987138083644807082976593586491139912318680797422947431752645567868623975745685878141600823415015561997540236882390704174937064467105485895620735083553274878554436973597049787210765988527722469704513503924640093760003836279329716891126786410878125008202211347112373868429020728955562640224844619304302363779175986941652944550943906669649045984895388690404968860583343294817871952659283769061644519564336270175754083875390791818080318333755806975971630213965064850602472654836901699611507355919402950935840510708430655430530829744716674372583205777162939743933390010832643808053622192614331035760100500827724376027638085992570021377970882871024231694771233833746198383153766391469434994078516584989782295261245064853591107837183974937330991849605897964670781569278013891713002935638217281843578034018109449259854862089330821463697895128639650889640911794058853525803211855175260473503097287500635302952560187082229732566354389894662093640372193294987497142155860265478958640112999763105551859802783336723688941116080590599250064722685458698433729905871347115334096147944341750907881958804165335003399173027886351344428760931590216075268504973872466074976667262374287105835315842329827183166494162856125016212641762369194951178867143282526729715990413796195709254591081211777282768462350629445292770608615185230252978578963374174198079348274697001188397081148225008582375245302934863367002095819170179831172342630325022676473269305460959081774055606373458572519355797475401089963868603142719535713275003609555858089543852222296460105041768550032012135489216408695133288653175272400711482768042418668995320446446947389574578070427269253707429868521845873054449795823197965180588454433074688685965398461778903083446706382199784422712547627092482047112400216484557709947973868324921881594012441065580016979500661475742048546103133428904826220866102091901727992688446443052304263111949400878901593709595340370571302124967900198890586153927520163419344992675117060870065706777304259971642649698275304996229951997586624634709788844464401854124258532994894653091844982526830757968531660754897660627425476871852197743785369816309789718134882828062884075218169427677381816301482602996889238525338533789143061039133729674264391325814633301774456265091472524393669327325545312075827118037423657115065002547049963869522534207659030744676113246602241246599816806216930295082385806598608990693767958184417258848391348497347445724730079615660328683108790491633250994433140618279132730313724369340983884978280846715958090701594477492343499901266000301945759908615355242123498724238186799726845451362141530002252282846334302004556910411940611006356683626116935846679053003744992563803313579200861133420895348535409825993823619621147952575610517444468392802079634162651087633762138281320721520901482555428333757827981104487217674607324643418112464352826316626295944099369298817683080744753368205966903186816264729653685235256868734966228611574922484379137502590148748009729885475707580043179600510189675987176551316234402492798197003331890976214706376845385789549849387283893648172748443685750261963844056938456063769203072519040795756896246639987374940367522102923249952006409970961455618551938225606083693097913921745279191514505612913646288835153516122264036253743287484467736778310081412127638639617579015456080228733653367362387938624548894254486405188558443331831042769931331829734109290236358685680049321649479135079825855493107670520891183970211306202298476386262623090931516633267591718141409514782108179322153211935449726930783358347028429550764384714996370947416741543389587180514185140358808731720741820131486967178895454841802035461211182974996434695827361371069402288944756626896750634165609471664081868908322430946979935753150088753960208846263894807823412129411063187938057550330312900623231089035081594750004698233802959366093533152871350122784676202900521944780700631903088190121548615474121372302338174764852409147958485593186787434198013958077974181108057589927590728107089365986138140567458121666503916211909824973743518467751915317510023041572829145294281839435940200359043474730113335474556575610280619760998671038383746868180136023996645632077374386215416721880539642099137431015584643068929240855066737903561493121789006145058269327093039950054115008364030005511117194517635299352759273505785442207861072977580320833956163364599893297497547264240760718618627907754808554623547091399845149362245955664203124425808407796220590468038685406053892574209374525432591008486994860593403560616033102734525620898855551122974552406504018735301352338159996282929618609779655425906002049742424870814293131940499149573779643492035948915391996246260400507166355999862974383739739209474609180792669638056588997648782782262423065719997589900152506176610595718610444089943149296327017177176062068856104128042800059655881764699165017697031697567436672558498277703530741067876321663897993771756877470360359999606104650800546455141730022515850701751138531753460594573664813555983537543112133067704560420852446856519186264735448574688807287521179613296347341573605505514461125519911370209907169775672195216837068020958886428657437652611974873803587133304900356422196323702970707416636141729336150954812274137517555389989920039015722448744575270826882035939163374317500592744481169499886076672462559944424960446636526471107465045323057496259160294799315118919065298078013066061795704414915178846975903691007685735641336116923743211688626816241402785458119433780452995949221298690744795987892941644771512131010797331117653042406350551536902170326003810095719763667236949645490570881187751379083064270045413976298930889400325426486212837515311488700317260749155118327617287695971913049461752725102021931133872252729947035859023742819691807740446207308907036254739122121038610525550872437083336565798001871662630301170602032733185213104309265449194863138695962182972207735970334185018739774637468185695424228206139168286587934864769072172349407700554749155712656055380664278393899897889802741630373496342014891110275481439362482174964221564421036318033566184771378804441148055534124888667894557271751039534771710964045956062991477757997654924006858384179170150151091859704481392064193329685074704675588000152495254935522488264346567029094711328529680560038404111689319780982275935684967574342094660664530447890783475437296569766186956637047730615698844707828427149452630512579001386417033427773622579755614113781468534826521336650151654910849252566752445131237929703636460987449608481087253545215004318854731008843642701453148109307167696019590193828787388302870265885307023557409773191293877771897877175636795638780864905013583640654375568977764223979350286542317671017077779346078159488077001605529632447464033161623917528767424162142269631991450913159278487355551327405455587915264176852084511012349167155684141534449156153109472819378376064486240423082104622561941354479632623534751434838613329056199798508636935375765581068414701897145835872241912693350892344103924539931996462882724125001254911582583019359759197883374006253923523763752957649518883716354637503849794165622350696179319657841729736151301296656769796226617607953347746836575910845086210855796828719007586789114079861057097448230549568711328275776064714184198536262132731908448061042069926420238810496552850420131835555965437214936938912056403331932539772960326862936589496143535681240942725209181831838009399249058705856130634907318872806905334363724414211688822040322228673195589654397510039946661611107986958918644270308834880142293605984461352442053522112759240551162661682338220848633536876890405568519723422768207230948051932419361750420113637110134506273685006873547188273628209184933626465906863721525000967551500005959675417022869939928381430426656337972601407415602955789069911283302684685353297966550314253571159636853641504011121293541382389978968785721708177248991219688369347220074235536208572499123405587550911401536305426902397561429381876800495198946753672314826517239641759275175202685786316095939804353954203831055302308151305725464786579293227499016141856796405436248193315643722356991314908193042754286272373625593411923131543264148364182422336191012158993372919958203459151579576664713185784017188487143265472865050159239832056489378071085702044831383415093729141416874468161664932930929180648205323018812498665618665134462890610359841361516205059063635320527521271227581436097872890218754092518144570320989239589639363532313471761702938984837076823619882299245324761941707809195799038939890919218389932047803198296423825862084911142107540028204956518486527868773729615093144575961069526403375516029553003570941179413327044293536701775903229646161252349177911181446877844445313767876462395336987495970628753454288983653926107813299782723764034691071560108584079633907844816165898155364672237857512768750748474049165028583432917722698647488115349276449359622288479508198318463618881786015445356803770284081949169280697972368265482911492371512906024930278251917695844461379383376643352263907033006246481739829551065597735688724567754385382242587940997983404477500703407939195079125191514606673187250731655329086921234636945120287933176854002941935309030638842330170192512577018153157665017177321644472812160152717721785472483405407151705276976711399485025967575480165502792528161337395435092591642660573441913339532611919373212761632821988097156025695086521445096731889775401404010337796195842711049549706415671389494785032817291045921209756265241974961828554606533991332302942657145568293718063284641210964163099619328786102855254309300448663285455644875463329179969119313824444186773279396567875584361624731811522570270267607098836509799716038593488800609641636640804286420370258586720755244374775468709738807260243303242878390084366938905953813899746422035587813619077181280150294759540782802123063667033876715696887623259530137560564902217068126593720029669114363436561853306570325910300406941208390399619419479120390173822685112446454441564743862307422602742879807283247575067553390336831962894731103781671855821430600728171342893760857857451251931586306376173548452155334600268976815538822958833202957701524453305350745184358960653195959732197383940467783808510346469930895619944808119873476532920060262774603978947893805889621734006240194840524673020978420498834966112098307324178902826749383318223893246444151490478984357840903058178045752961730578996879595671974882980950956759589219831565369209122853851458495584348268762572489482370762191255099690244622787605261235772755674181946349575349611709447595698986808305400151647155221760860167080560061650974730580506523793473344297228810167639273285155010524455299985185536181761888647525499214838844821114155322579551664392714007159059255352382616472735330510559932478080655595969801866127434114386071629307434519335378836960674147952379281357361450527692001120673906088462674784414339649824448542268471821865313306053356154340945147367867490730934201324667164982930138983832965801259931177617951214130189866868192472400708366812684177267503381713194200373818619746234515648900628882485316636681749090807544447755734315447361434019995497559648275587937577345392787270097044035695745088772235019310504170138501292443821439979941857262821793644553230163391496238873640842917411011280159088979341801555919453374008611871069419922933666514830106883423403683691859231697348540078894992143093200706555689554305874795363738702822367139742040714543816666730711709462698888015112418103486111381549741915220388852518734762084299707556462207597595030386668340353114911209793092462705032832988075287434742389666532525490718982790915021703633174822557480680408709939336580652300175629735617596255238670719697669287845301018006184836083909521346236221677665380708155978161221283018541294995219338326096169190943213115580038466339528418096695461600508254168990088130936422652365162984777707977973646374357452713710774314573306459281779183974855354126925905914818197317211173209468845913137002387271568102489645898649079707924589053695621029950746914309708190619171853184500466901341181000333696848865691939035789767811040568815251559344903974732620551748367109769262867713313082809358026021126648448657791664873646362386461273459704767151635136904854578386045269449862285524073772181965748769948719613193049776060777011168701393896776041966830860733108881372572384530273209618097372326832842508849219659235694996892919716005909166706334274934827028333673066011034461509739657671693406865774755297891844495873002025794558468284442227366676334724761279393972914578951593908795225618792431967935943379025611871016148928543875693686222905870513595328287632314013647122121558406243533721032766617348401693280459978542388907319006974690691447675770094046635276564811606020738058283503213040146825824576135582234060277028353865126561245443045797635215382248497786496287113886465916417519783543339538835264233657603699076179271418820971833498684398474204729709533743379731376218394504120481028591636381371481874438926921328467198003997188884628581450494924089563382190466541204578424107755743945389835525223917774818831091061619640381218066274056314410165053663811728633885848216150287307388648844390124662830503044349183423092058991390747151430421647760837315283863443004133483378438631576247879390890483914241121217275038203490297716552657842292950173454300231305688886418649525497906798974914658074700389280992952002399868125444400775460709917069959974982898645782494639305269065257138656247313803679335532340341343347409992274169260374805632522727907653584469867672368937018959444585178191478900964741756822380198793937905587478988195390189481293855028741714314807430750312505384397953601785473751493824549114234661318075263843466976692458193380505406139752026259940668547765575248886437928991812048788737524063791288318801556019566237666208245338241792538602595457120745290473117255802844281784966593282593523604914707554096918186651787326378699051849527945300608217856114333753621064419695173340099809638024545200767091099384198950326680911799249585119834323486540595894542548613163167826748634028489224127895958525500647455387448885419277095981762017036399467543353198607245229253859233365590574640511337100900368583155104131630830468305398704471414028231690082058068100954414969146986351450519201363176595548034569877904001976923674817894357417350468508688949448704913713498473540517106803917986343949971414399766736595926446488993275171962233251085068629041250727463867535259463729143588289257150600635296837171077942852212823730662079235590407681595058335919324715673718233362441542273919197425795963906362104055033162619797842536439527004267120628437393148567415919684051722368101625201217211305828569127958272835575142118029581181997871419912248867108942105842971723133961520906968147787607752596282736723086341093872380205371930508845232726226710401079627627387394844385867377633037334660027519345708423070980640013097480977013363848054533554983375546770377535278742435774680509785383776126017379383815629237248008414081309575751804393584557124982176469572185581436101180234051032495903920957441109742034912758592319598824603861986687488558083338439829963679363066833921994151526132981693077745232931868518169606561539012655089329331770450079591377493009830647967067729111288648770402731037052831937089100776084833059946680748048846856709230843347154949081211003665376986833887111237562415607738470518272265647452825997001354328148137108757536348168126052129543781298621839236360343794829468369378413755768344001942960786101734257638798558043124760439117762645951729698005662603665009263170397769937058900914437703068745953294100426261560691949661607857701041956265838364417935422691107812379866287900662166576945322410220927913578489705849091351360006170795788577127940531228401045526103141365440703176610978424277643751035272897111057427077669116033313797256264224834813672350511660542425415414556808997728378996870340980264713811619371771847816036415674464273198145582239277719350773567679858605727770627025622407864181665421220763277238687610805631793603175000099009967221980928835073559816036111390737615494216341195756529413876849249891359143921411456695168100241499747356564868535043514234424864246703633234797741321830345817537801617720272789426971766218187342219549785104581332967356858485474464134083470499599011716302854231200134149688408306842806021403521889447881701959542446272639559208772717689015698659392310874583179126302190014805822592399395812614600403455476165426476225234700841857909584792585923523073403934786264236342937973190070235492959924310899910454953515321287281569706488388635771408358544127564447662749671561011094070603981751166604500125382225411145089651550736066391980526290158587958333921763499529939262303420454221419955740115953988329024551119521411901381093015530822266817637536936608008984760017714885364454864606779548804468454871762766621829006852535657569511887781893560734483815277374667736555883793096472739472179386746369685796343819850415398271677894784602324681498075659485930173134450748529606492438784372865680187196744170002283232318627886825017177404869284687539609328101455408596700300420389867029071281388041798618878076343980831873704567146317675784337286342590141862712113772102481445033353167287601223740720073732087136385239971855194081587779810985870031208757269990236485282414079083894223172734361574809230240728796475785256815000925479738522245810113062046548082431948500353848134349596660132923529652423541868575400637899580925544334816355016958095651915105877734857244865214235030410527667847012199467173452793918390750271693670836128219293643652814149033403270095420403913212883379443225645229110672655062275178238297928986439107330002337907390992441085607875594583630477512197986161653061638574722685318662775540711118992125552382437265229102914047686977548956477943986787562027728656314767724707703171917266948115605301289415903032413007691613755352316441345476401674363466236177104835743004110630345287143084414892212240037400261152614940499042357595825730441112176270496421600022616355990205059500936783343237560601115893586675626995547965394542768920518366639264356097261495038809608339157024437380405415133213091068796556163463236822580525524067215188497974877467528610434678180648538473663236351722017263913225619584467795493603397915097582111527927404912762536760023453610885091205224139902445631859260436270182710223071688622061294756062584806303513938033326158855636772828018734472353671758191237769134407831556487519342341322903064690276697272577452154571207980793040544021955223687035586972519145487544325630688904975078063073239953716951113848937178352943381828220131155168198129872672857701151537350903501300205794813620969220622350025625403345524144370788122368438338722595641352072446622196564416972416617444240483665934307407319008360886698715297458857127430499811082917684411457660506448330165142682956571700574615559780080168106450423750066558771887723213442786441578857491713861508485930068750911830397695824316771363471262433741920211558167214575607949858448030773578343198302427226027225911228539291090692438805710189532076878385257586499409379988214835026392742546732216026164345299879659428168167102421437596856784186824017002440965819180339523527023889477116337067820828388874049027243958536460842753019140516308153083440531235310151804015686002454844334303532751748765816700549168664916297680656637620357245372360197753858218428902734274377386460074440840175662719477476480781270084739971054410362301050861116428004338784954252615881075816829559507216705703143853425325846012059523213880918114557759969751019204305751815555211847690633507308118804492111669602776274007825202524188196961332306698742406825669666432012456396796358493631913138740578402192816407198277238067686379440244309710904640611631297985724174228639287662472466450754146846546154969764016048361273977225101587208596535109459615053753516969380578540854995426124288721929325770864377886110968820360552073305925811823399816171665666750842622481496968341982609751597940166184826664936492335941699877859525462912036439045935767431063898568173542460642744977989751110620294753558684211353085411275775184124642929286320574723525627335143146090510985095511053397128541409712910367853129852754324917210799750519596462183004976470403648576000999725333146291434996899548457988551107619757642664607761004316914516777920226003096726618379892875373243704758308389952522778765811405234614539511012598038596975721643773721824218023036686845474560997721422741872415243669253942738250782437742798049157365681201542955250570107858732418946645970969785581434113478201312278452202430860814043878209849428115804843944304835105430865514538474205129729954179141150007873275901705086615316502676916239659040422611805666510622177607853446568361935705742448199834295286918309854799380859939318157301078192763413069523921850981999857496464338760590891848661810400042826103249448569022348285715316093043748467435065317076548846597686837786404179115520879362678605207742939917854898441978888815839938256554130363933601568433995803509958169865854682060047486145828219887022357423715467559571509149681336445089086131024290199381739005407090206115611966943966792008421126991855891123374918839216051896426934899639449428602561161296476771312544109957292801458279855164113752660547156357397646623859978125154571306236760184175034843296075956441379087620290061856020629835447052467611472059582705972948825141641074974835759710030005515925087210800399577978621445184333396707104682819199300743042836249029853377990860911037579505222800795402805036738771311451066551754407696407637561537811455795786409418521066444198336278413457471224843858552405111802060305721420467693185220262235012156657249946230804872877239081901428541011955327780018313882543123703962821070013586742877406622035103074897648055355596380351980282403642244190677325163853891768708590622251095435800638651954012542665821441650367228460870811334384950976055282774419198871888610758416957806673086870339277596782381778268490304612913621949857320437453369237327942354086055305376576412514497985542531626857894737303773826111032102622374744478488248276120936527881765587848115241539110163258990581502033484127317751601997830433779200124647178700456846648331419745409881381895524922716292713470508191054331778476199833833303425257334196732494306615489205269655064552283010434689570737875793077134395167115593743134982120754893196190163897607902092090790373934798000668543288921434920789446473975425707369396463585253232741793857722750270451821873375064653456084927173226586665357975508796379633231339464200265074432569885630992600680562867086867780057620032593838345645438984418937478627027243768356188181942923719515478236327355468635894945739274415704510403670113312092075656146499200543026037154924370058345101528107355800790213726303612920721614696076914237789383168580795026803796437554603259218479331224808341572133510977738987297217401304017501943237349177000945608775069868880745390541782511749971481702757321394646139613812943574085634296875983987695367076578510980871306715396130743771896360628485596936827914969749001648763465422616722468712643130427273247053280658236879845324399760094772611224521232578621662059831236408462896559902291768002898363165274111257273485822973248221960318619079821184843532232663322302110879766377476634025958913269300838025847786999188980302431340109926993939444595530166734033719503666190863205200561834999638549419030637296302474694558614787905802422684149414159806259910905909165310785324661167842471661915320794678284154434754049080080959591567657249832424263901235983654060976148515471258494048209400421113368612012161459978533348720762255278373060272748512647696511137017040627396254592000508947383325619426306856752030381050654368290321424023791416413928481008516193368843808973525744408096511050502132446431626925353914893454875091648101494630773820731430711529686901377551901377456465629833995375581042613280871666764410362221420702277863023229148096637698660772813526215223823389108974052758438609610458859495803668616533933783179460633561793811860330342091250040634002390974908916802734520287621172335769964470399162531997096019236429915049552470658304714700552135018337134280504803563357553758148258081400258790420632193301951596441965665665068258234062057945267585917495163876959216097733813190961728432020374225377623672214443496602327972626322221816237580955215421136831898746089840189322802436258613769203575274025273566910374226079811279891248026659183149125620611548677700137515380041132055695321517889110791408928435587483725516812524888171577849399491204684004875076294634193635785684473044579332784888225064490568671065198314151129639203227356903634953103062787058551605446957544205418280718379030734503555415516358601466992183470757180457381954856616353177678834891024588624960157335085943795904815837579170224457923578713777927202578702647020632377131668304430747371809895381483780376952787309882092663411893006674834127673238234776257681066914770024647388397072769309127693186832129979429904548668483005500611703737134885657529961262326694592977316605181245610161421120225803033617707415023488485090624458570780255686167757817656743329090555855066104174210503365310414230023220606211447782644995909601416232552526918786285931357452755242249606334097720318610169703743687683551420859165214925370675154380013802961568179622561177296347061672593788885503664520457167053178259226955015195535500597842149145569731863690676371807698779777702281745319735422122708539489961716599917198567582459390172436075622356882276325460822207591618165533629990312802013277810201234726649461140640218440357596244416949867123206155975550867401577498002422308896473217857982722775839815438223844144407868181706619407231057210365075018539318532365753763510314692646026643308687188495561281126014341190128162579126416298488643642077559421603208342142890549536750731088361763319824628109794741720551223597032679076583264597643578255573097988993717973451324479843816638816137836130423406919264980687782268949811351382072369908275415462735332383659376784141786710387139154266698065529214128294459959411001935880489388233393260318074348708282910338258452422908356074303170113513909397736466718095966195731632527940321731750123738802329483015808019036798553739241781280929893488879760106431435638007341420463612530931917173328030571135816092355795197278170801107548245518185187185939106382533228800295123856657399224845505653388761372577100140314774532237859669026705989610006994016008979166262799130953878476540928769005974693639142526238221880774476978017704090767237709135445628512090419283465248989119663530484856713501547594284815689345599653549474845755719918082431191124291500473878422659498676601788730135891973489550646983197231324819224202054786524951889414478727313137447077354821426940109396583234444625880970006700289359833313928032568797386582826695329451448548036092055039995913326501461585749806071133070102545791698317885747924207444425300446122408558291638061383914611673553324915095700056553720794507215826062847153807963042157958598554663664004187785741967875051895088161218156622973349519932418505663059224375528924904311795359140348604173971568893604192460176006891384558407970998011904767243666207145905482008066252139791276450921153996010762063623898925587031157849016686677958329962886998763305222690131208652603779023419629877159998915220900141447916353414014319185931692730945294986114790416164544150307380947414281582698520446427304921270212376897408420808136997907045961756533882804124302030935349229696818842124910476098883517404518406864732778807963422214160253409468204541371778801988496408921721628092130156085024787878586861193136370089763799945811826864067098683944159146458341503905981974678174587562147692551585999059952338800881423813188648974229415615938349986128068532881026896382291767590305384930721619730710919605635245501455401516127573063889101163064748729952766371866433734351200152899692479630878375688513291324714864756583710023083198133474513313330316356463924496328992458694496338304598088469663248454674694165086683483030813492644599205698424728040716518175874197963642020109444640568598670906442944201929783071577271613312897673556721565571074607019049677974678740750431200227106821767926764575033915684013315192208347447302126283036746415069405359748350772097523278452430909605694156914851160041378672210553315018794970303009921771144524213462844719940797995487669501102307035679846731458552800517177203419993342333097928958307248514288144602138956564029124855105083725199362884507406831757445213020269546107400115712215063327047095370234114141188783899287168332020911572557376401072491789636712504946257694191981683731078489244500155313028489583513552622542421901970927541052267099956871383073654833077577370935250105778639498470167915140704128103448989410581411936415083168878647400024670019103914771407727732496088530111766910018666561224759567529845059717444292547076910880392769035574060903817497785634645590793339173414156678139272379592655340528919569902414890311312078711364702160733841713946154142466694831585246430281831100324321242508502262360656667570878656880729141726885337354113758566337420838166488619595141596725909586126741196020515878194939595105545760451661875050837030739076470476181430680936723254498449456213973440400724629828897433987015183871502954124978487673312226043106930287502726799157361556341201329644118075994353400481171441166812309910400464862429578119014262423251108056251544122775891305631851978510041801058863027951622171643844116567307467794789403734626432601041644015571436315910652803753235500168620768817237523809711657291633593160822424956968976027811757336709499993826478347391413285311622368693852892458448319486008973289943736759135746418453556654963082906772649092966958587046184424784700830929881786124064479623507506722643412647936830417047123134861325158232511471550470748259214526754662332555921817023488010714085018807691936361627346676854317766922969461620663750080229071439438431033616352982465622794801060457828780149629146466204122305934672211288952787069731499291649155472889556983164980264904982071618885468892104531875994033815366415043798870069406245980736184525358767127063616196273231686800424330508698135183201194191058310588566711491631200874561440058399548126075232194854393696890200094500032396616177622855486872324486206820995607589750595731286860523853762434578831921190493938527000681779200051723839902479043652402680145552328427622592287023464494828444272474461905686152593420179864499020241307391188303819394435339833104144281325810275967326314174723356581264335311755356085556164422160214903291638970469022165479213108902709342438072394502308400009271471172513122052596764455310260578888525249064329955865541139583320618537303390290209393871453882317654195500572763444437868491398767537302439191475955474004147180717359995377251941322667211599411575978633312411013178856548966689660820916617446105174230669838990451917184249179724404435877365232367256660779652293494021100454527540514705832299419988261212202963187736416832450765380771612187147837821563078934206950284942972412797426556972348549746274300189024736103051076152684125170565706743529570765339436397692980411223680988440050238705731394338871927461784394465015667549553773446861293969362268088277315800837846055709662724856366711751809343231883193494958216905788444571705572950978457292377582930138985824652575845248205728892640854324958582112073432360966308950736973015664106269209550677901986209349390393176409514506011914909090257006508809861416496563385716225670272383708506952097178940986469402198667892456945173540683743527013648093217730330938120191825539487187200750958496555147695366933987385696851686757260999914942592798952767785552458979870200687159728766583087475916158428046943024481012366841232429214110480941236090494090229653455971293478936823237187966849329231894483178076618405684620374303025345409416424133881193116846817542202008554992105596983864419361556196450678438300976015067996773217521118919581280382541766118192760620139703286131389317855501673976738565874672151507556965683726127010185465056748328173165575253324112144547529690273976648153059917730951679581996551878340383978580103232289399732832556327742368937136003461797836203976706336481248814862533826365720444231121092314760583932472764871855143624975751819780124282109947296835027230900079144957025869563681411126703408399500406706280430905380396190222176379239039398708499222104486111736903809001239328551475965210185404819910665287244962794561007749145920344039785888661378402261121345035967429994852283229589222212047490133173931051886338770096126006048400274898897739636881099369596252989166407924083096874214464877261819286255817518543592730934180256168622379999091480877964364803194750547201854004077987596241948553965728934915455480443077669260699013220143463504065478602629300189915713600745443163460084153855892314540572739912203358281411897703219692197571924855980375269534488079638620595139492961714451958386418819578918709345154931615163337615797427237316239767562029997160374353735278699853146682713135584343747150167852453537418464833639487605427709855171856825171420765837673626146399817923894801461643336852454635143065732479666741191075141486267435067453900743466976387578151683481333113772163106674874383895562164237679363815098741806756139780498596792672354004716332102217946330649828883818596235196978854839321524419046881626060490893598556132465709031876643771344262772527663100012379751142539002220262952621901492587832774455067151164032650959592762791898193946115110177576525798520799754722811096863846456540301737674089860256092274928445473112289768704016171366770534497904119089228099789349145873539040898683497773844820166054386018114457649076885923980235429793519406272728961986322200426605678317524575595204583640930474577211982642209116967281397645758224591935026132615272660216948346384544730131024223892540357851984156988827179215043913483911639533975939004808202382968640658495489366963962379870245029262921623808677837579848029342593812055252724687194036773300023388161205533958312285563678582322095421735768889313446202888407395757947907298973070817135977172535939840631472821356258452416819042439927863881061765663945649175182612642150703389364993504039056800188357007707164698806663292561450604570530587998943953545342810106413212520776621357840500678455259397841918572231136345621011321189479436614092462245666240426716677744789843671675615834340502300528951715390495395491018741780357950418525103472574658429025581506889574719981992866189573957554911266957465674574803683813397667333864519802072342231727246717981316619047650813427044803670135823564370799266014508413854575746926355172694860099937963441100898260534434895436841723950090262630076427190653622840298849237799379953118171347002061109157855950531003464305710537593566005364376974455198065689993663007071964852576448598607096259505439857583919281450190461975681886696763504571173222414815752471286101923993590875839292394369289679451251721683023494380059649881008321287735694700531167097389350934080794146541340019192511148139753335629462906199450510613814766335120029410758542124525947664351115761432789068199444962207346899215194901140264532717770346682623688786338213772031922302723614364872387679145205952014813437848863403863965379710430142345224883170045110306524326386233612275017523560057405133446003489599989538464034141966218615247372208442723342824439167243914497016265826691803637475091244248266237111545023747914491636105509336226333066143033862185039155861328284184389293964460232313128160927770670001007771333218819327483350337115061553135408522506030773644206402853875220860864124492012797834083237808631863631124562456833109265943290923434875673383143059829281076322187719772795436812998076472085621640752505156774841537580191983125910723085975057232627062776143659725079770955291291246663193326365630309326066674403935364850830147738902908832275554019153849192898228962324206097793012551130917260481394797244043661642404376725175237230213056887955705542131836285250216707151010109712567073292335668368716230938164478958735325605437313760733249546207945459402496650450630096910255952551219724988400594811303103065181812506746184330147684642004456263304812225411521712529068277438557206833105627855569099494367844049155863488917048193590916030344660997006086952764611373130245792505723597594659289218169042557333467848364972771337475113745381355318937962807866786922679436944986078614946587643906373368407134842858815488006634452995283532160776153019526105076581310276365934893123316321984782087810473280108370711767798410589518742305810219883232657068531703788912414902173415942321982640763392593860123132424405394163819724557410005321302288145292102911834530622287384643542328891762337125925394389739785539091555931985504808720533443093711253798524915479760416764323285143362385777788938938084743140191866898386445547332761434895273923974104332060506363908523627979869431226458183887024212856885839830427640045856064473518927273071997292184734864646365209030921341460230742160634154450736216975773430767693631231344641032446205184134488341874035963286329851777745117151299455785653461523873366980321990924744920171528466051714401601169732593257855929439529583936866450390100694949783128540179708924005834030567241414839081539623922679300568863998054410209696360983846555960374713992747393001874137211771307976581435288474703868187065252630211537855710957856593066176393419753712162697626757223650273680778831240194592324632235827539157352285294554777197399626499781029278233580056033254246284892064454584287421704784561325708423963129889791749059029748581929638145224404307474389373414768241866149092359881121225348012302567523164551236977258358492954051440545773286126777008137159465296762339158973360896799818083020014269729060549590876304235707556853092096069104393020320054160431582182980117302888357037679025362453700505322521421850138961352030127356474096044291411501436925610768210304235294665436774680991292379280145731480426092672734555827646824913130127643600346352414260902710718792750795841669877537994828077918365410456616149199523512775650540288668030530129408192170864296249623467000296297495282538526299857881715463614524399612183238307379321668469449150253109634584485629229455882438096272655169905817061797275776938498421207482049247738110026360755358190502962987949625883082109614723628396439262888447812865200218888805427292247693242108574183945298785355153588932850713971108589483442383691929591157490689695382900043928455408773061480065942688518258689955199576103189742346667762452348470523296432569582034167481010524305556561550832887467979794929770607855203656638815898155314412386079040415705901164707177905128892307615132811202054392583199579571477877891658406415464351092867780338198277119992931730201238336600374699491301148399680119271372634983431858663352184955517244931075915877229127404039555748483098144354978401434055226842429601133405640767635332643556367491596628862354875384344325774797254037409992998588872796804444977401221023206543376220394888349289985902158806169604370297865978801566978410761340717855095639126102633222424299721247255292934771061412896758603440087969419594846492881691640391456152692026373966586690233308489535878723681218634721743449343109478781766932656683490538569105086279286644959946516791920511153854535979188489261492867297345144532446405845520844927089614987745066018081248551095100586309611773273502015795072694233079164324002975302303845376488140748627096472938653992557621192911175270603055601230180871555348032406488182720869980595823599555339842449429478879775387602062774417345032910733127946368563340600842622480002856353744383508913962841108334704958360514395505971495962302263413339366079916518381048772780759228184620251471835198117385065148953331417389101647560616921922623574312672503682632260105689999845312736212176399439884121270559040550616476066345173551748251501555951791867743399737957644063778289837544832147626363498014951828505189833539893141039304310883894021929647211447385120752788715881874024068485987896414891472192897237922201060139703465600083368789781191515892162949779609662242275793853165710536111008925952440228656324702125788014772354804461805231123062537272902491494811239168149274173737642987971729712284395301256874874919322517300874901171264829990175898834367474641485652559940315548917629656254199831801100178792858134836672709532140733432243030902007368330498063124038058736274615115077696329699975201342111951267844888728380117772141848240788606434646266218594866147172309134197198470138331551670650230356405684817341744917488555135487909494790508407872575879584515130347252760225823005956266138316573891126120137390384977760200703943265220952024095239655295078664076224170212226794011823198622892453101821084659041449726884846774458263504402608440266844414069659254577224457245249241822684722596327829556387539646533974120176624999317166462428673783522764661904467755746339605397379404785033420836497850441410888801997044977463630418268637355750878842362532449454304397614264460037593983890458182916586052627284792810254165123574744881692446539706678963036316579240743229727938140306370443534138537163380905819603393912474462667525885986732697021565830860869354532049971487351160548436252652560154709099908846183509473396815414127694690297679101460011987645615799326685895249069609458429427752215257879078958664730287842686500734264808410006662646255300420120772373591702935442762114805646146745933617831179814186239263448171271372501383139713257985039084750792611554959461386753669656071650246225683453060078662376424227633517019164432973696132660248941486684397152010136768825865660166955566224625437814979550430133306261160986555943443525636801058800940648262372750264331769256525298995054576240598273982322055442883793792023305744242015464526729190771378144920493163544720288138141580770689267358625516465563877213892337141880263165859818115938641404536700055106559794356937886103724169754978362398199635769379072531355620579004776103295259134475463298622805911327451343493031836121627289245295631690803678265732769846054396012961777493629159784720149732742860399813744522770519033323587357494576419551778034137700854977809751837288441223738277230791196698731210781721192867760619623788768332207584001926221949778840484338207781628775204838042861562886135572280782945726744845519019682497772670430633463492136445709635203600243797435315918753472508536698768231777697528573745823877744718930469035081753808341439120588926609873169500951730565772485401184648954650765409421831783026048682640932166585764363188821887971031322223440849705222102382888969648408065655984543223248012720434876185844055903811088794553402162894193806400815037117617948448819232623088788494152870432001094246645085730466132951635816279300438145577220108352227329899782856588666051405335009849514570635118624009923784999506802644764062573209481297935488102012141639102669583635244012214943120605000507492285183140643430804433488371202718045719881022395004426439183344303830378984306830804676713661322354710501114061684509398404302550086984611985407749867529261896361101874053985323445777285385542928435309806739253163548071759465930252122747673775350801786791952346846594119081866573118976106306183953709652726395616193487393034628551511226254414989847776985705219107656768916804733233246062008660707123209494444754163706339701685893348637540777730114082234926276788263596444699341311711319329043014614667138979504599409116657068500805531220024903433523960395734832193740473539231302172271656131830816262726985972685384857472877712171338798658028448899568880191108125116356623798853536162419777342597329398308180993864536032507055942582364550043429872364429607705033913756059336941482799637898561335227571100144678669271903676067848545539097020257304631890533619436122449251926388830491634062605551087294954074845197141971900773283455648270916435957796159958918494564601279442462989817625602812060801371852646365600840973480637959689230300578495971282098713142818255402526881499511471921645842393998191942839265387531404930839298314195310139314096897483311525733226027398678251633725973835758896405122831188400367302541020737064624019944256928020977368668310402449853613155610695555314872052239244377429188203037034974163895294724599114858056024997705577220798964960628213021015926787059565951227488883489243642337918769185651345802028468583740620080387301270947309984257395831528516111383394648121286277522770243020751517678798871288561052183503281652948640005806282236295002024667987909199049453313022990728176511872627492158481230891753878571046374972641546269272955322962160989789493954115420971845228108530447391269990839989158333408850736183250904546646874025185633110137308132351910153497584194890107372466520328195351629917451047229786833289676526458745713298793814769080448089223904040922180538724363451314381318555305525220383338697268467877861276599250152028976357993897770804820967939700578331262438561505368207707828524390878873013811492834224529881466531481091539907111190542139708173194137235998277923890820429861957205594172195537731512249693096127301387339832389241075506033418300343973091583664019293810494863462334612999596647131663534103938937432332344988125048889837671128765483219274136595761747880725512737203369911699117779465198242134664293389160788556449424940018122314191856424726103843318820560101038000489436630766056526516039874552688703787571456436066993369746717796799270904413031920694833932487784945096618961940992173210554413759978370084781926247442357469662820581630946807214210120390286915301332253939457934487236093153888414928158770744470113252020664052607083596557563533476328022281959221994953153299914550783639993148825553666295645547879971153817205905015632826171374680612902651002491665427330536938698863365879460898498511122884916656042969667752169679701676521930186779910112414079352720141981575368899830265633721990587674925476105084344048180872100591153854348833101125076292411465431088193840206858386914774975696067769628412691235940647277793655854852484364596433365206990417790556841722154750146544265117135391697380414499752777918728099926607378910311319156360652686410228012293668502555058663092293673888555016342884198288860758611483306592329538742399280165722607048808264512369253521076652048700715909372341822820548275353020357949166844232241417118898862574526326155927666731965150174939162762059663023503692450697359631487520687590775065944390240112907457184129138395598745809967745546866956845224540672848556861891819730236706453472198350267033514601848450518870454506554427190172116943575122132542207146689473258139303003900126178429529584227011352683936260788931354030167611682870943346581185677696110284632656330370154903035071428805354468480716926045045992629468640907856039499007795116512177904645627648692595428303190819267108741971811040016085127175435244999317566543666049602957746795945458588052628260036214964619993522738449658014156081478714432149767014770238579965380147481835230756608808620001168758052159750831196111670908969944194817558283491820096472892390881329350407547840848753641140910114086942659247246748461791750455077504525718640993880047454140030061992553280628559256824451133296418016766828080334663792581230844294964753281408244646758620067301776902988062801649100158637516883392681092614801529041128565412068093589399494943607811264935829681991756779028179254075505825118285556780552934462842407783049377450853792521758485073597016650748970082087907665695298709233614776532515420104734410657786800154506851913144933610342180343147346846341331319047387281417203011106781036521755763745411288779422862219700179390123452247933319665315313241293510409384154107286424729807013546410340980989264456182519902146525125462504974640630942416402963626237701214821958047832115707985639902893982119472996898286796062957676438776068494515835090364366916259769773339989796458272756014708098944993032280251358194061415271210438196810877416136695774534724715043566055826889710271812477815223617309383817204495261196425417019096128818395461924622644219115432027690775236933245257744963688128252180686167746582289108634774174730208354632729778611867156474582371716972363498814319018332801144025026446293338688451824137123514941094236557931839767166809999299524734560702277362733798809204012465517850609715656169008518059818933255476228083797731563330837694438597983113019422199449965704965540869380636309404526704716752722262899462771005588996613929137397403494823715900183773422149884281733680677174900907949968925135934018017279757500244749405881133273393489034965569039479569669932401517825476210670367386931928428834192633721141780938441064639948575183097184416580809241194706552167772737855964586403043056824071651946849442235199089786938545643357698317071808833453079372020512687544626532047169078184866103857840754014673985881735806150255367699207987659696038935007712407024669431607935084650213828402652007688236950275116207910892718379354576635249268006251261607162500632580397365894009951049756963009672594523978178072115217090319061659537831659289223157872433719688445368436920796550236908288824731612184634601213074335735972766430865907309850848564761332388400764459317630285457485071570524405512299893766079751631823238508443735249972677971355675634780311892570756958202894200306591162176109204631934656088028713508504907999677595806607447988854356348374969572499811326343082008096469461029624405315712493819875227342181763352685488044399417239794898381550410584805936237986951379933323433786874176243535623710967546254515568712029412466502370839926037503313494520145430936124774214257365444016981633731807289573510550989766649920529850144728972210839547833498089201511943280097558166819911972888074609722405929967747399356695948992664166882261371667068124170808132154493983290674793366024589617535769727822038570103118325745016740312557294404755649009054213098737347406637292127143595627888553005857043404551802268113839606563229679392813807178273512387529156798172728413050936696887864974117203730951045651519883596070622246443905493446607015213943103011472052448727760521367927773527127270298763451823271463403376180435274299915577155069680144995938801722283396142062145152590792701948462600887146391903771312303623610718037796311943628183202094907001967539922753371304548163308123917434088988289718372341998425626207496579554242965781973409931537832740899838176283079481842207897900689757113508448342379600068932798705622986544237845472813169793897624673683423763325788921818068148835279053618858847591271141059887821180057002032773633944539539819415228257444462459559224823457390230012207467406465867910570428616539613354861200397491631084026295241479327134861241449804506430283303282247554206250485873106841919112068231815836938141959761513018978142037897014065302769096662307833769963612896124501072383103518982558585994192654353098612902220325760177072058589777875218779507367432796495402609996013225246368629546354871375975840548578455252407588238835571063055952194848380631129244859161445914687644203517954248586823676946650999878082722677161390912023036131476756393791840179882723599588696202060397668450749335712680346141408209086024110204167143722604467166023167995955251547275590392921422445265628275947281933797173301599157611434734989603950205810507338166957290216738388265245309797908245188503203579006290406654377308729530792465904939149942106451072346450324276082924765995619580110012145996580210227685384951624952870259315679072738681570767158516836684945542197732010416345303028595859512512952202055401770040828797203304525178004411621200924688057192152442990966508200880205933883912654365233681427016335138717113808078899843096054679122053032830320587429527334548978605566138061262214088825920501684062414687415894239251767433792873155551506897138640921754111026796405730155206315832498864329857880786118321899239098157481529552527060042032785647346481801024513971052091710638004592581091870482673106894300318022191672540582892630948292622206412647285662750567462804431968673003606251619522512025959451264464970021263243936383506726657198086103110460001282652383094187017868090705524920470519498474184825021058740059623438497935774704677374188356706192409861929443751470059530691513031262263026052988697292846672960987735310426667720497289498301588908308571741814553067476410211891889611709190411110420335828322382186421101413548330686516860418254639392566375716431282748802206638359387520827824209051338886206424303021728284792072110261088934434339574839166094340733841405704252022628944802529281275429826730173738317973960178087258191499706595996859091926326986475587466543207695747321849303567199393740998490604415210877349662583741391572165800402195101034970863159175979689779187043416354707612022192021205325733802287957352009459733862181751925967482711563411135451256808726541385676860806924946762276434721205006734509927295161115582170789344422098236915249102197704415662502732157921207751933161453400232033134233192425375583537684878915234539760517765787424868734158412105326694299479655858592396354826521381080842729889986857507890012205729110010516919537797222074343753987592893340994737278865070866974294768252904931443374748247566491460863024897347525772563252784083168345135464620605349181351987488763625963976689910241441217712377345999884354710108198998830482813092531216416057052053664084773883506339138937559529322377848914736853078459647221140143181682837962088195223875297026860141569561357211472868808258628291826210591260481281578222981264068828038700341537807193638446880381730733903103222255424494838022286028711923607551664534520077831797652942125086836328640587970620785666247002430839549512522776309398868180225072125405607100736762162944015874283828239688330136772393135735413164171438275448860031104296135295431571733667071315464047749172149450309886953423858805919614934210143134281947157519866980565870920831506072470003989004347683650832147978902522533365689607899653672569247001381726081478593553243834159716421835167965596855202903465245732597994819089965856879285217081761720858263565391968275673249003181152093262185081191423917268764158081567848195716673184497616118375363464509813926751149787632496163410310122620833060752837187697046062841470444311152350347063405513074140601232941282644324623176342162057291433974212111482648462882947009724168767530498040524470717752747412991617075775510010149687138270118817364504068964808770235849346001211497644416919199754529488859209844161666386443511923320457327764886137358984507087387504545857621451283242227798337518928848786836699276937973099443559510126343274009366965992694033188346685314838266378267697821912317553535573108924521309390313612396688310045138520585237638913319563845654167963693365565783878059134070890613332164301892839584121146128591434670492163632680390010308655844211068435539153497724898357486375286251969994641060407004450706878933624173999232358419110080028955766598754181047173684696498508886262818408713226553873092687963258176772514089789920938331386506258120488623371298490618612467714423044976689475628252651253024432196716131866321957427251657371846835434056710427307794423257501567960266654150265389934083611031063218646550123581060747292722398825025607234869121369871224992498517059685865862442316396839194963134173036913292261259211226073478729524651524992806344614135731408008264177202770746512463211796966722753229000919552843118175427577583850808271204717478532349472524415065725090607102323454894110594644188292590795731433054829407274716614386544195092479085126033658357856335562145651565860010890137436621059641649786855538445612316201403340394674816062597388093058462930611531959742855341570589653739524076533363521088502402006994328837102632370657790040639726076901228069401078879476316745191880830047646357158951473423307305087788323257940668299537276312546505877342377124688832678515191945290144364950333120624854990187767685606510526447508257579080630061296025591902187574457314810160448643058857966507819455266489284636888523158131237924087178010256769110754204733414504457596952580079081292592659421205800478112073289288171945668883868071925209164248890639468355474322978244675343256092287901708989818924653948908897790839938464936549797859484843619244707644927554260516824927271851982258255071897513957992224596689499802274896927368655819645055805076544359325123012523776585843059503385842114498833445697794273535964482422419259527830883334303275168278919743696017664515076251672825937817753131135085726168403380589520186119826333725867755800307582436377008901810831331965047277040248438465995315842214802125787625194045005609793284165402489919683529081471901419555262734359015033919869033312469875222210177298824245601840810468554866986123802102059585120549387889810796553906613595423911891378139671172895742740777441425365845010098399950172417136777336235300458439519993277349361993232603887490836460470458661806404715286947925819987129125844184510923752740984969178433939373570922944302085050243897281364047280559501605492850646700017045986057001416012035099731616493525911241747446764141601150583067290020714612080808207427714835908798277692294358775154100155472731742618074436185055670665605500603675628158561564974405342752086075962682175907653173901790271175837270125835669449401635995704163242581149973077550528564296213339135042007605903363596025743359157438618172759656935561051861400493522389147455534707137305596847597139810912381864867504335267480196403028712987232766720510382980678883244012005551555163354814822386601313124604578187652982538172164045478336724147150809819897421109313860868930083084405749862718796703726836582217944253770216839706126634922615972448741167863103023241733159298411851437480297176050304127198007065107952706679228318163714022010989046087580637846772751901693059759716927960703121245943137917848185816236970491801294917283480729051271511770841145228939977753763509371694459406659975839571706492393896901275475737099117884062612542159788062615298267800564706949764221678739178539850131422190110413386813190192024357158581069127749928255604641224339436129335781622172322454308873749935731377172177866693245027204318122736680564919203935351438954516475822244381109987719843512238697638624150076335396062867405176507941039421565814106327761789263441765604093092990599628953802327691491122734731600843879021931971314525293609690513930936089344630393782362450788207255323373157741867434526365126438843883450599406948441208460653453772151076592727445520033721127121383367537258998883036007386311711660647556435772411915400021171644092708273900602504467599413125977297786164353584950171018897729974032435723935779423270910152823846254512125072788661280549977611169162865743517784000143869965567257998202234629512028117780462279856182626920499504283862941019972129629467737464532187834628017186825489209892068491878650586431093564924771462933413968061902265187279044732101168999948836788840026838970452302344039165746909022903925743142042689453484249887142407786338716863000323819745343510958259354528441197480224004129520050320062032825944804995858789692911085647482800798385114854164586349637250121105606524273521766676058891092684407089000789660361195004535250855206096249309317293974602637587479548704698540512289274132979663306443622757554322231714906808375211312016109533435069292401123238750104522869327384136519960526752817840500814124186533023366357876519699500195869216177982959841072052694734446524759223408931765434243721611590165064613592161310985386241541786385434495197053003172143111552635545275214392899201833936207507638963649754624902003862702676556219348489600935439311943950563020471055224463363452039252499995353322081204290327929654852069265332001832285438394981217314770287728299539177646260737463611207146594555009136133128326602597721774763318813353126222112915075273723274530117929993776832244026735056022448851120458688251656233141056942457797416559786643660577982803504145420803622310567346605204138381882457114312511937654716781340072624273122371368099005321494428724138459855526978820750673735931217182323865864351682472122344975492002840546648665767891097779865493115932783352421627342640912560256350511326685735753789385138866353244727848805002795743826174659100882154955107534895289610118254686511377280448051567936444422001770111834423259812871148253378518524566537523417202464529896738555513642302113083726319409284860909597425562578945898267520347654942206444037143515632451763354236615203309366696891264377954954546545795485260227911158232023501388177916783976304316851271301364490904055698038088328606774622001223777955033259620967291648928061711265622743015713189383385886073326611436702248144929912218206709249344451679660962888664965777164040768419672578249094879990731703021188377085927051634442736550590131077417120396528155512548555953986163374998578106648749500033056594409873124412652296410692281548855658459547152985072174924848209051407523119026677485882477519825338229632931584943976510826383709573018368214787779521372165910690494348214254381918993948714226124586313716488839971252628371253711051611867915673678204347063499469842733439555478324514193128566698083498992293826545007563457839665967027051821551808835316944183559493254970612010761833465560412886116538456126494396765373361251580833922641935373768398343468805538717741292647018226381797915777206341216678065367504523342230786343169215250114576798449755724505662078378235905415150574718805729905680539295098934016518980355746936767001065073573930362237033897095649611761567085421232103486317101714047307606937559200227179688410589812170051809867387920116120047197774816733383984116493562987848473590771420513961079121391110003186206923178936989573699755225685390065147446017919588959342673711818533511026619179145076486957164782072691738390774161264837038238087154322913012419645697688202484962094594122668424439840121413097346386437980506601504965353053835836309854859181442378600428578860304470673419822061498261706408891009659869901848717335528943217557232479593169039496568468552649866354383756584504897279712771039146588640397585446091397299069121461510078539777413107076473777016201122284741376289847721306836773917644563888078128599315573228895471312357623953615236931994597244505546375109232266323630338449742613426486305587766076556017215339244439101386855460801724164066733266410973616595430001658842069259528786067763568028566001593267106914943806608084211907486261507824516613703103720551333703055238861665585754357217600919887579484837554832686022947528180209061969692846230985941381187587247151062960030895039631993601223041690201379968413037489190963148803280979327127181490699198293806870097067327736664119391318034417390501251270770240856024413234122448314145636194537155638527644828844344506254026450894011187046636995969230056753819488453806633007906021415930430836776472189871690218322078304230011008901201065180672650812841554553186923256158300443149167189376806161418234904234146690754313272758621907994324764409947697965693108180000035884928495622986379385620960608982285066487328504821624140930812293774741015486063214618145347425817714728417909135993649497273351319169158530939628248989973641884264459696888488195063970653635331158301883375058577881731892348754951351579847183176175092649192416725608233563344294631956165082357609413014426668992178037739638171185786842826852778832041590745544476142590575828889174545905676655760402965579652061660380686003539144208869325405139854463126207291192250218233072955524953624766594898630825120983526571509882367678654574452931357799530081381520985529035706302380797989633323366524972031080101952664678038516229849962041022149555371151402866225659584248220069098964885390086219066752535325342134550486615090206804680913830134474528608458926743023254239098369672538491262669701984397825480664364435599241203945482690743811376249071361894304844268318557979185911696307130232068625514638558757926485885987296222739768069362432576455156647232607824964265502411758646107272342655513082802531386599547336770458397891046073173888986144394478139039155932567765683374560729098356101185196822714822420134461459225409165963962840430913800907233436477857371853624777113928598562905670286872023300675479365449608039578961547054239630702086722037666469872170788458455773006477649589841891725417024022762250120890664998170045158573901351477985260896356802120062394842987845223217294208542682556833858950152877758415564908923512719829183191956150081113849852986230790148565102920726006982338081927132903413254646902741271935342973170359334494273066811383227809150218444877539121703338064735226968686612445281672267329729209521795539748922381657933648723067428583830389206994776835663067889399485052113449693300513199129659382778329639890846635206720006856510375763020354033411586055621007469709585722113604855648628101396404896118121130422850258903673409010179775228837214146378630654929284213965119667302517852752663577351664641476307542902672034740950063871259580758829737606338133083799071980317661490843848633397266945171333884372157021483254154868563237817596238483884599962139961927408064664935201060756442347532362692450214826723766661698301733048375653514636625631890508147249610357179373128787412225610542448098518882809838948586301847136021238877434035151071536603121622765730127742093021633852665457364563990908901114933850328993043181302806370819802826185782581006545468567553140115586693314334210437922928877308837814410858755003645409163427990144375315006827334719398515583887581871851577169094242960692276811515554677051193301023708487906487704668756819901633665992321324367575732829203105933954860657579408413951240603077332625616720065585112355203607367858691582299407854068097119268545251503642625129167442287707947273517456409609400303183251312545109805667269393791329303756066335509314259004800810823083713326748678030194497471968715311658355188079339036146391547482762746931164519092884899289600070078609965017367520862341769222537633443092966273521335998459742777465902535704525869658941685025412421272505661294044427633391240987866777034568764410898634913017917510128366342762457899694219153769521137302320367951452293438729151794951446521575515496703891929326521100239119764239626508648956043169904402400696641769589066256855488073300112753551298890426922340067339749865096089639744029203639217408080362522554017118317524607905128863597499411606369224869236293481231944162699167599185543163669510106819406845640811054731547738363412536113546414553743545500309834277964916375712471798635473248205025612205715533664341050286680052763260267140578977849745008403386466945319991720902981228380123719079932632860879715550721420328646810835695811678139475309216039326043393668251315345147862890960182553268420958831272820388106876323083881815458209808677562246116347463668688464855268452119845169040333581637262523497909589544253359697081030290092871695779480462193475694303875176867019731654465986055529221133750201726454308467019219924832074382451203247472116447854831141085737112809145713028305873913693974297352153476105090396986765832794744355804624907305419760632273650293796438151985588563153178393388335907667371131301242111187021102754591824915758271102950797753023545549367390463527033172854712201310420960913176273743751860195996478346028713185149965809195437508935427916501240399611224087473843261695644098636679762667292311390217462293852906800439070918392293981205241391371434583861965064922283569623652112665548128804941796422949689362453260485358637050977529200068665867145619061112817407153710903234474817038611865247759357039642461862517507535549883985888514984008787406436390127554565789335941501336644835493416199750112681756610701022656943724201865824723707754352042052198330763211630162499126338795609465728411460476248723338928480255618619914121627680353728227885188863257111362126722756796146251520903490076803371406728818297014679522595518652750400813519743321124659018150847834179578669793103923885936722819554658629702963344809576761984340901195773802369494541799456772646569304494373057506070141461198169396940933301036428579471292022206814199744101692525064009389371103529240819522581242040661644175070645491381426901649514816682289504734855188670258641743498438077141809054456259841447569122780285505092299239567252948268979889838468530816180653392237366009357090899638788493400258221940064890326361681811238141216854606096885372963856740410047877997843767947016000156262345378933547152196433274617982558807313799885161525138091430515403377542558806729262861734651546076463000707999929101249918319596331479351697884500654038049065851574770734720650568420173253311349074398630541137412632436385520743194540660622956445497942656630344586962408278606216724369561303411430426732409423940465769077444860177347926416228440527845184190967582449804834174990922174899311665368532495559682833762687176034729753439390072789987868913819911038443847906683911460115378130162698640070525710238795750237720694444776152830173199439287121875071290431591686328894806016384257304747602857385578210474084814447758514279812488486666199752395288483567830515149834563375997288476868653030672700408903907007802356762226719187844178292359995720556084160651848183337990652880201460189535954988958573429240722312133382262062119718244892891729095310129266823938781680776834004033050639007402360051542476916486283632188577374543466730104980221614801971411366015082756198087714943925165297562140290578583225046972741985864568828819899403250454379187913353463386806735128739265743211024431352995614983552609604372094551069241212318374677815400346076077339104857884924621972404170478355141349218698330140787332849917035906681937765107891653175488854942429479850886814627215533924991594941991310269993321254762517631939016080598359692342516061348945428441727637138158918017427963935910884979122819515106433034605672736422092698880596553324238347100153154444861731326647045115530112010635403102732925841398188636878017492480220283363162345546389919978193794998305100044142473336538457523256424024318417163854154320539152412822746637274447695829079878593793502071979185320608912953317174545787207569596640274961037059753351659026529182572030588720284425332329666114219259286708477679715733838087104060260445116923434738294844304851372411847025827809195904604189154086421210781918594528904146116414495012105096918810513504273375674698171583049968325638547079884932865655651393590963597222854201616605986724047865700530300976586580018120612552646501615410591782477061331906370176253233143129390368209770831772988951095698692408063345754027780212472754166699719003688342337840798753086771787559956178620342530631429611218292058357216302553727569025449506941438948288755495913321424259466363465314114484213116500639209916159657969415779390218732293620481556652268437325090667430702386670653646456761123067449033450526093464555011431739569738534730446647284816234841421643185490839006523081950078767808857776246305240184927509371135126543512223143210794331979596360486126767405632488131711157357047822320048056848091435233338662019908624820665598864677933330594775878811429127276407128782222415148017601431913616704808105447004690028296538654564482633087270840087882578585217972580011066934756253718898605072898199059514582291078113394225105350582991273160107809492015638282607749571253142885559254083738818741117282443364272172043532788849213376713258119326126613266466305338645575397779526624819748593468401443412866040678727499212230194145999846296837054994101164500638635231982608355273728889666910738329070445114276677993564428295788242373117238448754416193095278197618179962456176488333417060643554197731413524542991613296747642600687162434693752073594187867733831854846290148559050449576343125594478278577876957741540368155932036309421230918062529424594019922447905248789494539081345123318327119951131414502664833204616744247430081565067879286371270432110966097466430547577338764687370764065008930614171050075593002128976206637877144351963025487116355396446548396183372078886166735638873094011553165611671195618139987534530989193515891163980010194471773393926226556052341807593733229637729280748940566222219915397449477435410624580212356795357596299225139955335099834780124087410057327553872359051546672693725117647516456275718860388157920576260525397291905663821584424104092529157179033651773325207063677274672109164774247771708134146157338089362968675514075739587600405503264879160292198694258828833047481667576698017399561310979991150385074516181170864141852602909729818241009791272680025676434719361077510789460916284790655035916582998895334869101356345637666932056963290095146893894058918190882417307429119216180945755679247340769057981027564695796157310765228587728431889857590875277654417924473996321564357633528876645467196980322716473939386040937990311241347699473110257270855021011736839944278835868066053669311556826799627423149595856589662993538012683099840217014126451583262521105678028812308918055143811425449328927260583374779039033272215494215647767462476939429293259642870530482780525147219157733889833433469402597002075007854175302170169937012446154228959589452704522390948999771803544607017120022990409380071065380689528492949064287861891113372802569612611310881769121627498693160188414081620421166133191419644958269487505847987780541385775095071440124535503150324909702065441792272843704727507176247073489774970224880773471871090413583592873597301628805244211070382315580277277544961613255466874822579234775951277384209021171029511960745792671720044597635780138859541727312931228748366065323411931315751284776927556900606344778780266565589294997560504667173486815146757925366411440556954034927212408889502344148554862274442567253998372071200314061205550931646973189992004478948424955399339956814509122373263789215786637452806467421786018265038729013070062194982164360955015756897487061103371473215348489816629292496090828602596642516267310644889559517902165724075673840308985034804996852802934817786776375078017338308332417661001589568150494255440326949115537409996966149701729439736655996128625924102667993708851296456379415583692009822868787593896176484276620772511745559051838925905286415607331507710278857931545763339074904699601245880446797562295229901511231191086084485103106997577116760474459163137660598166589661448397147238629960828640950492046675816288055540958674032593044209309456423178313838167509270298688801074134283191426443592419479402133078173447120606739862751493367503372524472018386420039860531303840253874300861404071949390889132746996475509416839656116265004647993244774609810404362386960463999791877899129213248562991324218877410225247932073426578726267734421661514377766851440901573790155226289941065385598917121087777513532556962334633520304973199224106514456799386094409049976583161826568273392939935557018628776109476312948755709412775692938997118320002874469293654471654807332326930737242421113210042375671365715701956498081545162944229345692710792424268333970937016014170647067281439173245634378628976858579919989526661627008823313020348853026623287165891508822819005318544478143438367116944870951365529450588717025064365609342067371408714279032551198554263706962324943948425085653755768632972465492627793774729772058285197224554604984411031525857001638250241137913656144411185280149701849362638716568043565245432282747787335799310816752237081783536938494185010100016641997614267487966510292844502474208857204630963792785781867077041254039072646341302253802283227945569434058155133262407843231057951005286181174392273992351764218406310685977490097774493382944323376082765477675002020154029690385008743813340263409361087265983383927035451475489259861404423940866453352590592973109767696884965046655681583370315206634321299767489576409670974731417899704764776025907121414477739025835279740266383635956456767022144374663540635008643758880073851717811931163488015838615387470598871951215980543160174715113679681400864245752755413662674002666674803537883030941591975816966093307413479117143890541595418192474464413583609268503680454770936184807111409370974673775061088575515971862496628369687774207777190536618519641958092567599562923134333626072117849814316530010765882623679021665509133226752604074730964777992161252813276715134432483044204732935600197814172292795124571665632887335480807371403116086959812920530516800243015724492922027642426172333044514080356028032259102814513589476358825552424301071341513807929129337539218813338726642376209808400878518777872674764901405030418229910048585745373659687523282662335714821990585989124743709936414451444318112487442818064728466486845813788734200092861450768279487825463038055766324126776456441131017211235775926471933111946744344264414309159228074702810125336223140423502529446354545297523548003641042790253450444432791753667477243899111169647687965462879010716490582442592199405935648083164698228400477409711017291222680830417525595228775483227586306442065682504197575867503320081888032075080375294939952577955456424602084731088319201546947100296697816314480865263380105871310713546796707645799733414141099502032921741830134108602430677035046767628401621769550389334657917480836196053654443301672254195886257202145025292949398742255562534937013122050537005725084535621404056483270543626638343064456850101144348655457948759626937885850381966914847733753537218976304363000359115798518935748675639676841672931907353735477808788676583519261371631781774653979095758770601870638531532723714374832785886375620041456443585983466336016697433600632068244789558077636405106161035731426220823343632947935961432910512265309414227627073484543527911384003770881085471503491771066198792516410443470274435219586873040343498318858420028163620985113829700103990041381834807259349598687606226190273257544338978869753398746703224504340440896091217572446383597678543970342564300541672761045846181507556300995362061108057149469380662046079982608803218696871356727447594531321768355335923576209150805072302982114521224620446201702859687581646550244494007054211941540405877737602722922994935047376868546964930067788078417990360137309927780158524311644144184912024288149379848539255874176621280986656277513920594566227860518229274924049322236146522935251254648081848917418221433198065245658684577395505912488944323557625117119463527569067053966433821095035418568570171714589770503757546127112062966098563890054187515334141639759100880694113598415530081960447288510490573626714615712842575370565904520885194787033449864128607145395943702516998744943479203034152980030949522535186908273515253173924003625784497742360309932385535267630106940102694475007787723321425626509195011997504956530661615073818959942747008601653544505788951717824378868145275712668538295135348723621549349703975076301700575164210880575895003891774491808588649461262995298042709823782726439039945143460734183933506466888947760975646181954651808649417265646928591927317059442049934699287021629495558141182986274489244238915224577963896234552261996826587446404024555945322305091119765754253746066301456722420573547763899044568466631567155435294106338598586025588626345557178316983809471372955956840866061195476528881437110968293608442650620475051926325756514768776799166078174138392747559434665049164252816400086682234202186576444406274222615676826370949691700342418212084378235345770847530039228401871239524072308222681826202248226497181696652216665078563609262275820375948549256163611293914799004477916784157916331342983080294762176549411516210744628971547444451589443432851897524965773075709048331850300252368449095220624613230541573361744409258585390264882399448544192019740887208753151255561262371803192052513894029300255379922568205774125938761496408258794360926160386007173835745564974728723840796198122148339055733323384995836608797726406139289891469454537197327366124290601411045938924235647988912882056790362952471906657683169361971295526269749741997488135446049857194343102367186951391826054547797858965508391850589145921068956504210358276639570521793177344143021845485231395945424017897113754029699143531517910227652635435237056765692516377474657093233143846433111033074894346340528279781516160828504240193598171588006051141295476137926195486898537633834594014446393696582636783657686391122463030267825168368495315741673275973000367707201039448931414059399421257483139215765226120418887378517084458708401573390129417510947516076047938289300500258192097985406673150734370374131509650944241764605798390783382404499214144615245381110591538574322185830273074541748898225370051779062610414150955262197694289764262388470775094411312633510781783639905351052318658507685367369280207244208504947703569848624456422380605533165379552923015067616198964352469016837961884790864624558146642672778151514433440533312716272777351778688066356031568618348910013316496473015182815137155833620762318528275991656914467343198983250096928797878099032887094656624667824138369365868230061791785062019341867206806149216683753777864003746683505017440173507099886516626850567069102309371709698606572940969454813826133472872173226544806231587382414568459909678622786357613064626680038361733821176920720533922154987391978237453645895934224608633162234997240545347062298096315326427360907600202721528993804041639977004370547720080089037374875637545378969540019109576507680119340470788529931854413446815373510271117271800980784360019657993956516736156027987159739055029043886678987690701788349674618093142790821275873899363725257999467529861577819897532245418702775918030682912001629702189476753933492970691841985493715403961300350361673297639896084475280700492373085492404836010523802778173619162533257695321082846459931769388990235550569546063571034428017917373843280252391538557549404830717709851462341026675154810888312069084085566422143394740874641283409583880088696136442503327618150856197816148607567276762136646618905153224497955398625798388655531551857188881479900901342329081466082641302788626895554772344476684076755978517292183662461132520439981100496240020159936829109001132371131134872033476352574764054956975940002796267410289718103719773092124081000431414946316866990389661017442219868628528576104687040322976693512568926875446159601584401348063961760567525918799066604507689079869979505287504850727234450711432682196458060625762857156778175806609882998825917654014114229862653770778747323779861039018995226024695060193081445873881509895905157801889668401188555895247423699411476429224586688039510533872485102253319990683823355740158127691188923700524090938499066167942438350576193107974953713839544907556021472969784097544919088684133717878503080189855560106688261432791822795989530433379455998818961966882935555759483522305887305766033013497884530085269209269076831558906960750121359948337711601915618319612065890458330960956727143921844819456535695713846304467200440976769229415797523960187151430687546988285250687224256704423341721925088526685974882459512001493839869338529407610583542722101766947902884792724119629959319455338503031214297446603138940115583755941160667386794097577639448868892430328828436936625202921259306673845165472968706717814577442632449025636012152793833738305622420435268632639550167606369156591853283875917189714562198492052564732032713866176161404474348915936603201109907552406239242873640032885270750251885580665782391068863436083948160909398734504058435406518427255407885351983352005326089643464980438072925393511580309040947855387298157504294399577194496301559948673279222050849641106006951926785616508535584895466807358595839873877307496683958220505469513498731290750633523748254939648333380664567731169089234426122123687094048991011063316445444195513304154479195014438152913639970807564103935213008355291685931965437197043532661141223591090461531133375361515782299746094442454631122837999955369998406471737994679614176929942503508471441768706822905437817612781038053236580562221478007202179307484427394004524481561626130056356012982670493726464069128441972846917409992775401167267291975456114862525176648348847676164519924049030105873301408880829315401867392577794966267400258252250330224557374476858093595765214294206558311384423066178903315896286495750410475588985693650304293516690807358341581599236244461951385802238279040981269055948439636941251177340286951919168323402711307857990070444641701005389375748758629251601853229539249484869870237320517186017109138658444434036475566439548659386597636800381565264017587366459520570612090206693103290328881533563935868978988691819079631320974299310249759337863216715168865342382356726771854117221412594561393032931914928573467639698677477548756583989831562275772119034011831960939008329910942727763592265682108847323540961848804482844359155055609154455768563938531707817613699576486102421079532533655052008383326556285027640841984414396412667013334991579999397977406161923751926687147766272859176830603966457994798295760304691049054317007397971186839570844584706128778879992772455252204531585034831106610572637496716114127762510579604299668043656892264607947322929784276534096073781265547493122674273677284997326516377803904725839724962522462834697939562248741709427627311450146905138785615784428217405132206406138709193022512887753472505152701079290992614487579758148425339872214845412981914901120582992410097812717414199802973474203615648105444061148509189454457083244271276998534158928822800820204357685394227210581465224846805711160123045855544840051774351663537293230947730112250355156263028342289551359488225492256701511427926599389686687713484567968354531554991766393641334216234994182781170824496936616450883849610769123987939213500044301419793341822131891297785925182421343819443155013426053840778491384140004986131377780671015916975491591029891226077607842652358184014865975650163955514188093880627462499884391552595535926856028583934181465708852430320122326293483246969047089610828321461959574060111930534013326521798371183939542282698771665318279008239176150876113213696357149341718453349898273581019314190389428297887011980800427246677310290104267326371219761430971918162125942264745947202256366731829576115278857220478209242872186956069355908328624252805349000490828918162077466769230715961566009395112811824452285654683784628593994963871209483161883601034409395990441008080252667601614048233474352320957050507871716168018230011117551646966711554022058671064957311087696602531473323102706237177761465856239406399840700976596018126989552217506774103766026056099213172134015978892328578529469526441237523902042695330239224576210327954122670341245327120074414786424205681153289589793617412302346387978160166675336275147293709127898808660494099261849962187935510259286258364183549465606990578898336473887935634325996620285500352982931507815499931317527825739027615887962605301815785844005744388178422313905406918014307349287372673241270913622471804704694240730563605604626861310589987238741445278855037422776602245080077540644439182870738647020369380564579771019886093967230532496542736541680356190606875938189008127215573819787474893460771404105606045561410517315876567382519286480108003536635581999234590046060608660540344585812974383575138971026165002805064062893272885125914115455026362197405528451136885403331744551989165083866646708238349991522673089833965793999624323080938470206110834973513393138279028853735753765608563707901463738277355023538391850040982441149194540635398762171475754643179447208348357587573708084653936508064907457434935601427933907051248161437377212628667808368644000649723147882980811711518480520535875310920990669527116069580166822034719876721568712467227408507878534787187994915220671906132235146122580668921538582478750934339978287852457067855513437347250979650378707218830385208253373273112833359296204058974999633091383273923862857453819439308337122804918261751065833722172066505691733442839789016038675228395687514783507947321291107100624680539913813455553487616220258074798504128785985729705316586892957447089334920300289879171756268945011847748088543873392153240732400355376933947826313381263012468048644930577606819779708251418807460645880412570409576482977618343100266729848941633035869269493875668857093303304534317666498739168216705349234520056004239749870103340691326384403873610834839417442557848162104119813756590919448448655236990278465503528358714037063216266054485913580373365610565221187819926478908730526872937736384623436297592725919627606420486540832391637628762751638065711721080021350567478625849337711866259952745784501521051351737514687281536050470287282185300821163502654069680460891569605885447359829636599244687209246478406628049830088968308642897054531862937486164693721038110880942825005755960150434873574112386730517464296023583228352743946613557442007695496527931026371619300625649557496177230170416843653325125011023351864305512035587676482651075295571511622396056440135542211646004415041663829190996539300833825580190930316468719014755841797353950545574733310673064583732865084143533188412887160143524950473783876993036377642666999684110833827174744061960844714635653543370580961510700128108557461163948461856504866166900746646155221186590780053243904825381241690490495938278840496518891351424338894791961101566377697952012716954058694698214118179331529282931213394443040833501607063890684042914277774317360716226027429994380924687390046053503450970146065445941507051202954649725368940683680149458700851161713414299239008329582390753636658666657161875967582608293443965683992231328376393363768683412838758123440510338947582939078542533446367493629818810829644371422447671673491693494550097692190767928851876586203495246970703716914603053920679929026440034909741761710119043063448235533341861540262737373487019846167010135140620807815834518454326611126300545711288133294182777541040457804452155342083081581260439574441624098690461884872832831029158671244315625183980251360615607687143308376501382867621919265266946192661096769152714485441077298393157936991707914122659897706069318955998197998333625619580998494928200306991805376835560282135999621420515756750977319242583998473934226487478523307698507789971613664524027323358219117266971708216158173449951723234114652861004773511484618696675011486516399301642975793164012894887718426952848212728815025865895457586853061368942762231871673344794690673207242528659068410948059373616881128816541220056854759610922640157246210776989621069220417974397123574991132420559436728755865115751593063458559470079460700404647252902532697296067849675991814782266872138930727312887149357923335164982681219582349388659785236281313693383483276992462973921989016265004288004816742265711795033071018035930627508426305368576006083629122483305417261876967659429233687855444754904605031302454515267662612526027515471987646204507283820466704128340457628004491632704365587423027952650381434179621717249864363923933994289248726476198476595472497274160186227728099291416126218077583111596124006536650901380343207309891074958202444226719392577225921221454212230552589605614537656868036943100624242761691256119561022810735205807316707145878581320748672066739572376682776679900626720733452951886952031124023058077461520733277214348036177465862884344797309692939802440455175171877518560179481672025414464152170632314930174162738953306558636867895116346462123086970500053123168615942217148960422676003706813773665508560223601969002251035230923583890425469101583875307815799868365869294369872725640971754298757633664327871295710828007775917109240464634400717230316498882147527261960055661414134869328122778880011255513447912699910031955542660237976018197707060586966583602486314814844156093691836122411768601884210621249937665310425208699131859127111689040877441437955266793276081027454094902833768381629213276237050313961657268784504738866230907486537636889077775595798614040777874830096006695022657222614812641750425668598315255071029770180056397374497850999448016330955146464757068391089032733654220872878873162614218233151552465351116453385730883956397768902148486975487655473122348928868132102354777146154456722613113917498729581215598459989902486420290495124436993196128949774831976210279711637320594978686901764610827887295682252742468514118448097375986658453786892993865536754028850682574286820655433869794869874243538583174868911772979544590730748254754081531578090633716006803728301323276823706122645448346068000738542126919762046491994545233657456205733011353075700288121120045675201616806497841698867194549066259837099562179232558413956545248478271224573071550174672152929444681802195637746721832076303693881318417423433465183795522766527207807216608720753540608170109246416030746196159486472807944331210579997906865124742062936009984424695360147216280011600710226825787906686727793787390648797278836761763756116262281086475415856085546112746880180022667819553640127239269072459910876352059265978093822449251927590195697899163204222267652445527142117991499528307368555935210709883188822467407990107736801266703272720583562533677820517146112628109921763434810055332685938767308989280747278849157630171041609847271680944266265770003787833518020720243692736541541155926882919941683693120227514970016072738336920863658926875543437443045027657272681505971476952838785717033235795226455110701760303023461877038671123552256175179161050546128154498123258674162220852928818291690793474666714130833838736126219207071783663170758091116621584046803990601369027073340988117650064838469881988698444877062041039228588932619745487886937100184441594332371656182180003864845927961574216656530602428444041782978375213746962650749023354895824554518566562580695897553794985758556168554915313883381984283653226641860536163802657082835578756944662997214479263546680162335617947068023371722607331292054295282352917896209527775761340730171326086896424807486841663622507904453482830545935760576017295475976618901426925943365513180352056462932408059882639166579583339560870882691742508858169703844689410059930583555826569041493004858004839624448834522921006576748393605089278747272794171760025810153979541090902775950044709644348176841810836673864586883090867347581110156986131635162342668531785128465526598302588762279652618741095105009510282479090216875626465316126054101661126794581827688907316258383827819082344878593135905053687695458320393461130849531164649438501371683335682790052947803536843361441424612108058564383791467504993803870054380755119982273322334117054377842716804495020107529057424523305964393870017777364127319922524059450436517315604252783838630648696257759932754327271606347074315459783929873503914985006715044778041755289554795258398983990676431644879674824276795391672436691770051380475233632231645443685325463824073302428627890142915384721089270083820272999644684042633334660059689328052218843947105433202425154529576496374682063072460542406784722321222144953469182940081396417829798729803980016032002008918733763510340289638633640751839415319184441934973588170970140157464261131081870037236954939810782978180998460364628493808982157971229950715512663976025349503198720553676915627425905131533930101240802213673631210946689940533952697245728689134966935663749569911938277724653187228075842707844294193531811185391557347496244735921299639654749569390853378364048877957929945559218400911933667532415879293846750152578312366448166570815132280493170284429229315691037885331878842292737475845461973942689377009925290776759725883033530036674233745762200018748539499440167730596939999669732014547676793143893030254644937595220865950498816906560669640866810387755959953564337679232248473282881166797426416925805564859640859899297777057787441100421962074141018480898843649864282360760224144930511962334997488907259388921341261853788717938414369888718343441653016778918522240253016131849879208991510340225017944432835786977269719986979714247692972056062681688838070609599059030857116640195865968131601123673602134966241190970890854993733862167680031163114717317814307825049077672864795896999892670116314248884144648652752346840208043702696775040839727700500453828930064796018968021833190251625594282176590225662292597860055386234497503714169938982520839177762913900329045647466369167751986142056049008682342464080743913242506820227262983780478781205038580359595335593735166144659497469476622168524684182627834502411928067354179787412840254669454373099481660437739630239602153287962128985305695255191830162776520479722611431687306171847365924851465465376847734458662466912749149150765900326332164713276466764672893942579774553045863163021512643768734545095194431516975546744055043497241814838939136127149312547883179735733535974324269950045759575861234319870266105640507452465993663427031306481083469657155229321545660598619913955515028470786244600393252109553378348750254534492310618799520635756233751236203867768837464965953960236122895620094724143079075595917691107389066954938853635499427500410706315435770072580092280057814805270189936697974995113700720903330834327070009263419478375421321398513199271112434491258133275784277844805294067176983501962456804138712142737765543700943401875890864624162840674461129050298643475015508266729308484630083571531268036481327188071996580495197614564984525594525476620929919979295385506203571968578204053002159656860194276585822627346645599994667246393997431310134419295873981182925645944485736796507330728924917123077286718738573927765436290396615831252988577057639134529421042998017280502697391784761113303874273285006293706083078790165676321277656278113943130170041741235969401247988232909448842165358088059655180986533298550110354786143481150545214548903802407988965646774254602187880941203409110058486244774749707565717199968035778221047375068445979611700965002839626103968893486562590419864160384868070544364283259173042972260307406686999467398810895996171463712326153465641646560215175767074150275851984562846891674641490699813362352887890468980506521403592736693746448525198783245017732713371558704434786330648311883795427270385518997942497318655941032593713425237987048934172085772555028574177666226192188231476082185802846902262403906350808194779875376551070056098755586638410838183530149357383507270234617892843933976076254007315693995687163340548039892163409595951366277380301597947597054667891462271316748369593253818380138428511469144724766345779502026657447346464815722970337902362851720538205033284853493413975949529824603106874117017238172192428033757629133009947653702412320210418984864065761363417441780043064784513142473698870536118253076369955385272401578863581985746306770709830659247407060204666071825196839292951269801714275512026750973573647214106513798217886597559185920556954580710146395663371335183652476034168855297855408617214842669233304730538531761847369492881600432068608987142095445471791543624658224606913973284104522915080014960830736364569725675409181351470614117486889713630256856938020178303033258011268877724133742657863610226471818216302921369891714209888898307951760512376556605068190702655737845369787409685642172898428607097623168470929100625845987087185454129995198189131035747233804942163414773794787136126614253134627513367989373506339676562163713213335583540245298727044363771111213222906752334542371171337600971436662718955618485870680034411040118964891397990205221715905765196476347146138348097330438540815534992014414887483480434428051348621887725869936657301381732648881836409739998860091017866964099910504077876239415909008611704373306178196497594132524549987740348769798713034782711897029092216991418390777842826846563365522433729196352158384888105115053152357747445038962676211662449944736185900314673446090739435941230713910049432801986776295130485033979836006410859502171487305995350234077000495967260942503099290257611137362959526232102117471684517522464803325631145850002700068362352810975785413000389816965679023656704466685660643573584080188689898919327040568847240710853703067920771812373134258715807621974623238740078516122287170327939912758736833818675784993510872890356663917728532832816409874607172911459255880740143812369169584276546127534924561868229662183544476446792687134671782771287979949474693224459867314394903657154517777973576259210764237393147425130665801127836263807032339822251603168224595584930779482618605116891310494823606632410147807597343525434154798857704442045938972235760694649290324931354555933315649519898096200640437639562119978713593983112922163116655769318106352974632130115604738502084885787984730724296707147179851336806375831384449128445957245667870419470115647036916761136443815705013290326948319103216589997057819228151266846924880308114985903173000861972442567552167058937761301581050678983278725278515853588950495722225724437998415196143691429337620464123126104067822178684682244752493806121503212323747707503680509529323648010786582550694431690999540494842611879137559125335121880428646868277468418263688042224338499363228820523964893544878811579653415224062834298707578440948984728222263210342786729624039472635826388776505011704113744048720056270835335524399427160318206985102750512946653945390117237636027436503146045294985204893206930941972658537760150625054369856172210405292848050625763708541447159244379686021396392549305679697486767863064451095299771585463849696442892395934769582249007210605005965648797597787879012290191505237693651990752483772522304350072820090866320920594100698591607706112486025554461035395153834593939109429599895246693705526942681132052201919221116068472099407034197926866920641788322820263157590748288749412482064889718784726085647803944182542141531677163457486984576245230139408889174320293332082915541901180171128080870392434114648861100781815568486151389594393231103783854947942797607433709693744629687868926373088475867020456198214067076111829870342043944842574911117516633700668713020567753299350896086640733441980138684799857127572676504534515467160002831556196005201580583102612780618852669687358463660956605187203803056851279387820028484149863517036679767083887013507745844633347396822509774921384347136992614163706794127127896936845591001900719049131273372840950509750028437879695384822972777276455164207242083310574003741512714217560617409351858697611471480953938555383252215453911076544828749553955404272696958986770912662663281069744662552876106741473087477474770919150577055464039954328980213121486634433040011652900650358402062520074741119101496650195791353817606396670790792237285024411894478956924362649780325730150172142772372565536339462277626391951480582317852386249805267156375791638181092414038156278728258961749428248222343330595946580218120694790141799484046061220450829303014396058020509219173428077853698612506599511241162879070701618255839176503349671188662185673527291171396068709897111603023462202109350119328218893251949096517001742056523243023325356362199450217652243310316870211632923824620072467493322127107395505913658964425756452533884581461127783282649467275808082670819688463393075531214569953818045166888225239905692058946977306542921472906248641986626899560520479301791597957178259773851765668821240822802711867926504934422178457729086488454311352360811432121431235156462233818057874090333694609619870214739727373924143710224503130235466048301988198265055314669225084741027875143874589085012927834352064581457160170269382261600483428175801122990588395793682887378726359252931241297461073107820532125657015780311485102990898258561179363558137048438619814172454549832181797431352660915404757848647179037190731732152310964724125946258267699496573519889904604396592006531894229730704591794080994610713788125001266988453236654613125030738702360760934585749907586853497267447313799927800794501330808291152079818903738186040096200833025873052374976936260344137202217022710356496780092293059213910323663915469806528782783638501987591739375667577681943845671878879870167928198746640502043334417134708976275730657397210840436324056886340481408996281704734110438711080747197222107892158909140833890998113443687191474356762749013165425153225596419117593877088811137164865475676125953624913648320784862070648527217258220407737501515499293396544066918235499589712968853975132100224758692721203411516427076908527488271728788654207020136722648993484354057130463909155883315322377313908878429521017024718777893173139549140757446085678844102449976565850502521166066407485668290573227337755215806261041848487314163361640802926405343056938225808920814588929494010709021599944602219115798037915979499490340501235277643829765140921949596264306756358433015517910538872520475933737653495878955507968616681709418445244815810110489763260707130692582902289160565165695733378078721090625020760665493489633871001798181581388867355949370715857756166738717368375569307813026401281921813985431257634499632729873614908131914528320603267327096744783407671219934018246532802752839201845545617530505801318342102544925240871978689402788778866658511738077015287072395682284606424870929564318637626583493536797471848274286531583505364349223764192796127512094612238709300610126911176058548015989227157741565833208375120579973334749630152129928463182765073812788040042943930680125700090202253634543132162429788230444275581548566881918750943259436644211958334510415913567178221966595777840801571248376192665054126489082813312202596940447646699653282254215374887325793769052750774883684089483705549458687107659411019132492684213118268024732739871608312335694483206631450040046732560343864807589170227919224791819902575854941654832046556810133564977252143056336244766592680970247887754955453979861615991667689927989479562272664376096862886479596804256769395012640112616287195368654024641533754589170035079719701551221391650492313594975254936375759304034177683352126152871323383246746073833515664067201462187689418946488403127694759570051340608913019646544230720104737516718368276069572290101993193402570480984002246376075819749763886645541506969143257325594828401325759695706504885483210600825276304614471197697172157440978183650923907746479941700438277469533948712003187826117016960967504960357898562091313165396627610859090446936283867520700497428397959717440059667050528259150435121055813970228710355055067754426607315296984882740147289320469360948900004592683444368608397881528338330051650051151980030511700218059208500645637077210213317283434847389228236486571372409036172989168149874957604753877165928913386814168978660210012004116550683107386923010875624287049654189937723711375321338926961844311935027351492510055316634808712031375501552669302409017360458003084840265933658466935649375454051093859650577085159293745869941163101902939619219182745942393374652215158502348679925493460130053505900131256045199083052508865572118481028678984475961830750548058482690791183049509188386160083308641031454430582769967511956592444294454054022749329582493341045085335668789988670969450737262175560681399269876415725850155030373116910109023967507981226828527992339846585850997040863493813326732983946013062059046672973340368010528176352123007947240048713089996175515273059522955434828630847201563877226659845133910087103010574293694632777179242724094689461570888954254134873620002256554743823071885830270724639032136187573009647034927994400068352114165365587213629410438946856547563892517438250873550842716612567184079040716985141415194444452200547695077876314212514644725652049832595894708569487772664321755856327220073518357930586013132909659853999450982097235752349071013120049568618059065246213452684652395781633658929956748848060946637296501078605176838701605576500115473818100234560368057651521900121225998849020864446866256972942133093067506599424785383133488433280724673600984909801628918752790021948461028123232275534322027871230329453888337505629210775690665269600128993776053188068265823461593176786738055209448074549560534514417513138298741955784164092510963570158330709495638695838378858417902829078873654891975287324823489739544211635078853380690511222048228151279701862316019399910268697412481353658862440978348041000851946452044223454946718092494716661460181785729251444782329732716184001755982799595835302360117725246541266865014288542037958649154906910097249265641457590318034783892912645763824836890604758387141432219950250589019225217979000449451502286658225336322387517792464444427744262903103239678740244417507975959121216471160221369253740912674934302725890607785962268688402833136445913213292262095979022973207249865275580674674138636872195534037391540017125078106869248286787978423896932807885752744472155526528482742348927654443833005284248389640124887719952437566184342981255581945161345624440796090443609716273843208140600537552938798557274388560993015649899099344292863589880678216175061405610221935639547076282805819301079349108911179523987690771244272533460606748155320906508844698953618869803793641425679618982169856993261945180318584321900633791639079560822075942166335253620180260094464706198494717251418469646225669057163027484149091817758678370745781560388466939868635527987285327653406542147630709274296500844964534075749304117717435085803840124481050114948688262595422244700120430331584932900656620016928884354933872037742649417255163291755083155786117961864536233214845398184697695690418859686409685425224649256406265821126422407798938138827125112455631231786561939414454955166676877552100405680297308197257546887892485556780682280973846001555355372900614569848745258729282903003664923440882515522082516381816912577515791082632489925845563456549305622590258320342910807837898819243553686911590666788252321821174817037512348775951347314617691797876747550782197233167919198790557793968628196012229988089642311135008859016686837725824199059230716983788768650319420574105611474697068697796881484742437574917301497192286275604599797488106821662280000103884999693194781084665885554917797742239786551582620600018724119080819477215921750087266456061829721049818924470757210686903385094302290684092731512017853243920969724676246815662146177893577218121723852953572466695515874330712990017912202813840659173865719538119812427617116351756809903797402713241027981274896486074570581470529669818241135575154768719997616375000729028105724428075872598938890258634805540664904270612724028997353785349027174418992805361670552851493482718818309218927811075997200002809836020712720670429297260476187936608041076391163744250981245749646117671917007340199708872368346673043064859325555329494441080402818693589406798788928820870734809431707528634148618772764207391984034107191769686291133260205612395427981830690157950079140952110994478056934929756811659710121012564895608420266568894988406510067781000991957481549705827888336543437859218691900230362947842976967383324634088174613886716822801943491868928808327616021016844298685905063430746487813415917425703209456938468932029869921429084965333229697473618972349447876360034675473087114243956300767809943123283934307540681116152471876451821089328561249995566335029217712915196431353890565390683346563483248859686686609276239595961488135535749214866399785554992900229660208704470402980784810739805098772024413260677192990525949189289311160391580302382770596307842145473008433055166667353929314782121502210720350599627017172428374342149500220621602736956466314096518825942172837788946597915009996981925978105636912235267830822199282016140069498716458680361166675938986036526459790236205533960778320540324263935333009002304404422148163869129587719846360618949767041925913166962123847524698757809283964669082331295435763979405303687544874245667746437680384045496712765082341599226744272095103104665158607149099344228481448301861482742872363207738430329736069653706889347404458595735399033693533786892120326228538090701432604689724566239969327943308811079388655505827280390599212556468905146145013007388625528507166079815507098306043336214302545623960557970355575720491504847159536583643763726213359141187160140008389431436597697369060627786014837707497218229510680660240136348062014917344076732405013600085860018858757161020020345193590122751949558019714394463080732900430685022552087658712427825908888816605402230792081691780369792422739488586410530010061710858821288924328601420807356511623464799458784324840137706195142413140055669999310654107471884984570425054736000818304651209684028741610438481273377570970223521382906608731536394560530634747541572660719426506867694432683443156248855059599429601862554840459241515129255196112391961931896377500421546736762100496210648086472763716535057574608287202403752232892497048480834730429029749670082480565277859188022130232380052765812130627244201062715431274291367632432544204718010550660711168899712600546488198386671667899280753281614610337279285277225249732474808804829471911407387271911058695248551231804897962908472421021397306491954344607076522427803007413953865410842044062078201883271088491885944863135888295837012866322779045006260012055039635575111000476761743913810811003411552493183516934079753976883501786395903540083521487809525074217492173926288691739532456902599748288587930559532483055105639127926198469232910811029372057046415353447734783241929349460935751517278327272311833166904226789460632809476597623078600534676979415939461190732564331381618858635719303861506989114939017668848327074852057853459004725258767854102653376394955434369983928877136396137070910420763758779282962212684384757734294179986158793063275671883160398105989121756323077340086210108147933290591080123988839692429312375118283760189763801651231425668578322304689297000680624088313156031610191652359546546858857207338122984749464437143196634699100784073227600012541524595591595294018240666855693851837267346108413215796213442508974651962352354122144845568082359349281260570951480273092653109236333766695176443805253212005360012550091343337384035359803322592381855272725610583489112047826257003212617270351112636092240601185535994848937065174662330485336466070125869404761339770600997481249315928328680618092368320281794083079296670183780091282826441551079874908900747633555575326499681458506221971048887666563492998909617036657776191161429240909322661213417507480328746930148912677266872417188311037329561521326358721576494294553347588939238860098899991203408390392682315226518728551432623254552422839746290289912277254226847580282483346361216366674030476253793395978039191175187057218549240322112065178840694326934478362047513145753111013799359858365373414391847348833518629365134150494268062042542441196507244101979358921136146063545604623179773526353760589108513751041650540956960635893027084514276959460531848270040317679054551059530507733248363991330431365262644281049012748873690485850032298337702832614221059966447099674604479304758336533748341474220317767723662092598934230242568232909657224071821471823249924328335621248640709551069522625590897578542832334281644574677579409908260546299015631016314301970425138397248048772998411003534154285357922057110736443732603122542736789082522234832183448765922693756593221832136851560833535892754905861312090217796768401285383605411459036607569569505964482084399472756554218465091795012381991365209398205083651344484179496826321097148807033790713506539190923253483056748562451879694316702684957996659192656191896167857669005641065583196514831087003977285267289338890037344091334099435151805022162073791007931986135832440495772680388666522505477284986679052498722817655395698849247837435959243071746216226130117366566645142820573452640220739105184160523016033977101658352883224841380914744048767507973267881988139307646991338383033326170582650795041918629041015736329739252692345583011647370193961244151017765603137329278602663430044512700856721247466775649113400119455763615300627898064737187367508665535342833583055821514469489730780001381187818645299484749046002317421760154091533608014285168143586644781445716252482981949211376286994309140345611047959522547623140092928363675125294004475510274213842356094048394662943330502623725141984530296018027665942574320300931488237347213583074022443398419869961453140343229447785296187472271361477834030831553015227586606110375174944209502186989369907114445910357264577857060915533436306272123567909203558393071817796758610423709078152534620914519458579354835679457798201212524967642895605605931778558643339969977590786401134306496846981740841918202006576374102214955178811510512517031433357952381699993820636829009883336470062757727881829674612160358504710394935428915312675797102503588747139653420868574831239538161642836186164570525424998928191311272756414267792623683734843367731299594801382943539813787851966135484865546216000001016156795713012805443686856769186570553065169222434973266586192857121322460101883720438634279017280078557885037101838311989776390461558427919179790174684195356128963749069362417833306340246568482697356782770405724419476132671173782617695179610012077032312599538121470081799993802271784291093486882182960932887835407219585004806228475768073220742890456929015223099374501746471648224664483872872871313666770369559875992843772648991967133855999974257714784280534055181268592480909087885058031956637543232675548579530205407796410476674520429379030908812349270165068609803634700577533339340534288957283685457766027464132878807718614959145353977458942389249179473420390547706189410308767036885198546598094666538197630061787589508073614362705754630834538174616766628762097105414546474750991496904900378859581590680901530168562777839352164303234974846796359116256461569491460866855649339508787506578877250659907947062114777745803201724320597415931525892340990105270781133210886169648567031624794932536353957002323078372135236788577635383708920323502377961759546540367051499837496756417179095159512105450709592311206293232842576906896423181516887561450943787060848259245544042068281838773319429657497418101255494089399241589009800928510346399395748176901312936764046455584458523113642742945715700612280365557765060779991021943532477832327977515472344897937062491543884166453889165910717499998876649145442505698265189090095221838822184578417172176113737376619949185169660956844168410274984735129088790522862315762864191584217359898427386671213663248710425717542440615132371537042204312223448138144665821414811597257709554284734648032243523879633697626308927165090859742266077960459052529744661058145700639265846682348831661709389394070827352737327846864402360353330729206741409336374043341214264354323299394247631314391333210271745241917227487102691878931087124383642966817280847027064008799070646728170648177711389864176752912527264820473752617692717891940723946574600010390303262875848817294089211357140608386676309454387525076080564951384769313725102138140630956984970571086715881755571843144649835695360815710183793233866746405500177651028029951405801753279757825877563956472482551216014262968702766263436996856088218746644296779733780064988137955106365331714014901881372261879917488702401827700378024244657947551193020509458807139493833056265487873672693702994839864679346931960209489627504196617225812468008651842333884658797674762286265847191394602165370394356399481548686275195830390944247856273202319419153068964309624040363734463392183472147933947622777928504271625979368486885755045366562957232134102488551007274262375929640538090855845744431510755381018873758636057994206428133784919369868026946370803489602095424654013909727135918667169123068067303139653042665123678208301380501737898789585370921364485468394421999367810945248942408224166224016478151261179894247283541193122523461619195175471157713435186471732858801184388704937627268748907476848576061580129589292473642411012407844406749900386420511211243074933772522623771317029884726228828716316058111854105452691526462779010062214099819324982416995632879499752791990578425511646412452638114011301649179122507341611524563702849378997856916117053199695408658869564316684917246050064468313585428642606713693436219465405206172755935590919520958617737166775866424940284672367245725721479515695282099991618307144458538534380761515916820920464449565545039462125557520216269476752518710337498027709533766670943618412945081595514619535393671441843034425688938080596102370053775677178865286454048765464769872234753649636072463285841800919848822705864153640909315493195600182173840129368081213066607475228894558548142400047299660339730014351455010395417024011657649617709030878171529849755814293898511380564117264414418697777985139563718981404431519201382642063753462359345167586156491141318834420735828136495459501688864393495026609554968098212972427339188154367054693871298526844597034112757331749523929961649501313340206079981027598500003485214204560466461333973676008849636944885066306494833220380528270116341972149822692939225382526972949189264675274649091503652728798982424416409866208671513606643291969673699081086813209578033167412957303331331980491304122395689297379617074367877605123088121744790487847265218361472460637589343003425520564692558640745244721510595670254852905395712108561381325308376241524696083595350143562459285913888130553583047760826481774743962343454011680710036581513589673815419609493994695083426840416581703746300808741000785305475327015016123455159410355207660925385365411422875957058822419341250744169119676517093643171720535248495527817777671083935073444044853636715496254910141725173737048283003413191250092365417636844778279085802264723324754396056707180614707568566701661950611566027709978784801670249869088107549539304514519023313448974580599667863467260913715661385701482072862539337432574914950824739185864948741562754161710916561730822406824575965525295783776563546926936102345778869063799178535909911704446071703504922884231555492687110551671745143002196631630496303745168273004675147790334776053361896779152845610296073427872493677840130765944284683655110762681770057296711594798654790142403934296455841092618173965790654123562571446731447799410802722441175776690889117240049517098729923556907431091932541502338031754590957307573247675562774142125323423555741764925597721210115006742786875133261655284663173918675331856963093549408213448040448673885009546285442191971013209549090610354285572457965483300337652636711584764276724137723248923546910439642979810727504746750200672177936851992265326974331220427544671536955193429442320732399039904581781455259091649400662390909572335947539666775863484626311686391115519707016677263751481789130298085246886126428699081964586628527221946334016365261359812311248836864909206158090048864717003994106044167274390705857208636376687376963774177365456823010587025631538764956016633791116814504085455575164366862016562005306653521310982999749184788597602943608234600305236818046067412784586150508333793376628971700289917861775192403847127479324577939003740262182281497674154780603333457530956834501510019073356374901126135517980112495154095622669816191259876141125797829017907943408184637552016728438274774895675942662746389113113128915087689631192704852181003935860720476304733985199841800977618519716772995871290189400873500689826945708530794680488440151004877758389880040772449018733513079775608782234441316241723330059222383824888179497839946859888367841745432870618185389151254784018341470755606078427683500245780846982304885184948920784442752194795635486193885004180786279564733290842898203963372780375039668703550362099334692410671979450973642172479061457469061595037053615165812179618062776295432282342088034819289616760514715194939801964053872369691967009818690512296359504951005661923290018492047903092576265106512340313255336208963056059534913214148287563317156480943583237839984946987993263185525196527225977548693190164118374732198353790168833893035173727480067491563385346636795692737767509925425875038055523982777811278768943855656341461048975674049387709055610503449405627673665074210638368286857211961228206555739442143722322585342295527265985735989420085295920733762214648644995145937130229402440823681722257638572915637578475320705114624477329157315644676036953124345877738126246650582762860710015035947248062119505348433618895257149919360197684491215657362519983139117554624166781346528335053684771146538884345891395637057187752765980567916561479976816656309282304591647801960094378103843588223039339612383476980426407016739050708266568273668619828817138855418310274826336396952295133705004321536890168585982691658679733300639724662149325809887444137665644004006883584440107646045303015264060930776814878635060358971889606050887030017119233005955740391138907071932469666545458715922236292080704044449758856391423259299037503870253284828286875847870742953100816903623016680128935448453287849098698476164575291295667389200603876147138636344126421929248800158221461404590738057296312874337867061238211315035048272122928867039135164985435650510577770858562709058226124355374616135305408909698133436317376724385433128854921942025192487245663151269443244203081103611415183902864985722092029374626741582973061964995994658893269684800450120255139895752664812016903401841593284069051581314140413101295393939588533959425990166421125102732452394868881046803696390278237695758693495730619027212940265721035784675394109284202540291143253848396369211572930036050870223589673092339978948875517909866162688168265792920800488169206577867945722328170248345811144539373011417151500597275325383849657204311355344254521702914736961318472537520154412750769455787040050962591209661061497022589643179505574274807518681597876135444237895853253230162192765955148069943759840589603302880435701875539561727430467976676684210272974337437587248091441528740793262130052049559896546983688534333406681033471046964326855690383076599132709000266427110296947838515418399850308516712650290842708251739408042805860354670276849615043667158944204449856525958473302876740558679514252961593674042041184047167165367186481357401478076841482799949304494920152742091951000293804665543621948003670623086452655525026065057661203012839684073304941296586693904097961440435217769746206781334952514087339176968505797591853064050097863866147574540110982461678492584769356265658276114731094182688714139637892071036687983599302062391048055982632247946705705198861585530830258432569162620275846332460936226767463665140317514388377326347391843891789935659455423400734971240477779674431022082063711188201179167656816966692276731470858610644266225515755871808825562502323124469978175833685563513616690352038269278225761138888863898396970912990734193398574001060456974724379615013443242391631009788308463832132990017183461789898761579100974881789496675821888615836241835726177815320792117634143570842253998227104824520210088946110305018693881323665888439961848801059004923012224302498919026519116219484274682310019863776306735161244881024025248009429203096646500249750007897229238519854984301923180808143376620759204206559972118892943075559348132087856611996088602555535004282379701604562435857248404701727954634720925486936483650986017655536366803830675908216731818839659338760209331743475064362849566914443949184323839439277996714397846283418609222069562697826430609686177386958645186057770813443779792290001905710270802987910140183817239831124697299238062237548626593579800978751647892285890309877320567612008724311733107173089103792010901734974888855167289367540322043156538342106692173350565898628899818844981019812690272822830297507963594423242302804019772130864238016422355135717194507633458322953108628544703789174039926846338964750202484846016577999309527688210600984722296717005445517335702991221915315149665457418459419292925930148605043726815435593493024235389454966198326274948310343007566131598401046433126575374036453877136307791515748304438318634342627858830637302776134652916674106171232312278674172619120129192477219955899158831820656997897569909430255552612682694147897141871692963957989171641333082373933764668190939711199289052261857420951698702448798615004398737922037755275597204280968484305590450831268873340386457777874673868230368899691582063658157049341048164153591630346780122671014655753800234859814282917968068043158258700287682604341082953307746772799672774532638091297690101129592607956105123333408510733884810968169265327664426400540176358493448110129096806377260678376106198980246778991882884217807905358454133557140680836303010305492546227829961136740214109474889098759937733837575957661722073553495750358647110670147111634208527484281799228027001678592741414591292882213453347124192918955824621748576009823594895335344767879718466140898361302778357210800876243575452324624316316912808936020522716125600253420858973865516129167523029193550056937994219370599905357600834347026052541531176133250535742161079338518531364000417320558810991226019112607006211795352375876502879845825194677098340659162060415348733623150890353679891984351769591799203816814802363744509805496826203138945089970663873183838468627497934634555634795763272820017983960442043402132748835948414179695613845322928751796959375660894126024757305368811631737073130153016520299466056569141679940988283005972274607073404171393646304579234270830966587223346641361949560567022520626152477368679645131797993602410926784875913202756779793404410695859676990375485444662811990215790268027202280679887884256675917113876854051352391291353711161717192147698558861959210593586729094467576048235967923616465471651829120886678527169001549663260551033094189200806141988141650114441539634589438094906004718942117113333323835298485069333467001830908314926207127856309928859790127263160028353132649470119806354110442863767728039901253177151838685588668702301224031571591516209047011717505502362340170931068152658626495534687480452826884537714686538202834094103562240801306970717616845236995609340977450273882266270302873227486316204390078590371207048542655518914868041465277687681377878971891622272533687413656302231842215337737607426204695062123374390127925523079947227071817069156358968466048481513389779816470543927949686819037372678772785991753574136186286711128650365231370607619482722472915563020526281117368380587974532606130521090031306577923075647629099904690069662979337851636040327752515803425073369425704210187322218923118717746245558320296179387373165544385801297906773957320904080279293478655751939021697790790658098993835604807127351701612469420692540343780661995200931809894800500886395075753228863662747915818826696001478004222999493696935457607932136796076294361426489829661622747615991844464207446702236804800225065331310432452968617131422313197625658691035266303268219049981310488659109611239579485348017732304675414069587489581736474723752983592289781061018521094870446392206940742308174375170118837756439521704681604303051625002392476447062604328939279582509819643678087590387981903437026159392468928524437633801335067356206524371314116268233072772641648842689875228318713282608661169216292535106261580274556747261937436241362633074023038037696460646062951057545339216376848075747160925738754023613908819387366359796343286737871644301459588783503752780902910408948218363536224824770710815051570689622651872414834492650090123202320667516077582575196415570821123685827916278189697987045662901761457958117840866887151382035428963247862859728129872159885496660230476175260979541134281280597364720451616514919260043549453753182875242246676068766327182942913657975344033024776871323880929863750069460176341444248327503789306216283622057097081679236789622887769178445491815572533594017658223373596746470006667476743536145936281380707303065964439796137385226050884002468135821741744112712785890478242925620576074568475711136365101480231518253261636275869046044443290233630355609814390053759497067685904725754683232387764831050628723889884039574025938320092349086128461654563474003194739201878173295212633716753024417954463974409103973509049791804581185347148608308810448652890115640211274832764755815058995104279928344752664240465539747854560994487869863636001255188986995296507708710471076663872323687539394960394320048193799637053449671248699502460562030216883707941983645298650230705132615235756682232538435469905437295991155263635755258550669949051407177442528195689703832374716251897170852684143899781710764761046820793608119874634724525928271487775859806287037245350462524346946559613230447236980662433647725909486258429448813590750427933442889278917316694548299413027904718533475103559297023765976018909227148116510821783869431281700848627816735844135070134995804585231610303904979278423661113463811493296251611007941697457750781112252129515806039164771536870457927149851769046213501934740539344240716259137794898603693446917342106166489124025689269252419957472124423404311338545381850829219286001258899701313534422543252784491607618115047032350654177852585749029820175431738003785006944537649472270270742385501287503933877589798040057856581852483972649176342270076507929337580353059110657801882013918038374237180439345584359306469121736196386405920137832676030075974343462187673863015548325109989312328804055599534770517290616622507970172105609352112229184299885181235418709268639996039376556552190470818816111496523768353571322363173840031396712304069258453713510987823876300294389250011388336566906593884162226335044933955517282791132925194189226960551810782186508100394596877278458837685556657716878087954909037314356578713833906780479452015116973080181289392028936634380622531607362245463463134985645581611824050284239912252320311543854840622108988841240254812950050796517097856237435939521543747976214620336904247784856337436805485248039058401528703098705069589821697288055551736742179399396806719427294106767930769067172415905845564664627535913375933470747531233995197890316127467883970068653074431456565568758497936337935896897328973079406146699076697238303472697734618465497156506762942715820552754354777979198208092667663294204452619475820980246489661416020753379459455446286115572661118929762103499410424560680360288957810946927688518671993369579437669690919989819539864010942231867898970669089644574561860492732816291768881049336537841501586505306343429310234715894257772790286782043551029254677270948406585314079502888530832622695384160697407324787505049354163492071104936810466510496447756067334234779065099866627757814468349809693691719483097926511340444724065552441496421911545765815787770666268641195540788627558295588474420546480227445872722151821728420262007424233752657757630350576458662850876819214292829621177115067581074876855791039893879951808820266467361369777178183739699953986635810749289491490896000948356739840140173857494161170400342521377605831411407690447685811474903042401587363070095790026330822199009019620224761807343885697085179841495206067143076830118284462131346015168687075158341595995447958513216957013342294729614958793716392397108095054465651690560251288740652667093763785197130762941012793500242686191577552333028528201001080946702166253329953597415715048403463471313422662551573324733639764569408671709506922555334477915339554142419847790207682885361279594681878962948613070875964367894584719822215731345103264255509708226961413950238266261352445743066315572823828278200671138831799655696547173659784106253205437032704614164499716418536002512069022479685327837779916399607249997460643267311579795963031509056691217512019609022401794907657594869472431192247360541072048379104974246793562314314178983280578288226427190723281417240795738299718916554938452744736431421228350923031510545117740165406601413291774192494624179527989416120933504212894213257159616956098569753648738146154181085891889505325588583522400183555880003245060351265375818804053540879384823565442955806559216392847804361308021613463802787340177778307966996213950259166670670325563150969705521257011016635102694369245947154863487770287538285038612336819136778284279227200052320298101161554965829095050560527788821681956955492845867445888826648514764957418173236331017305208819401605121162245634013280151850977265768103991987032243805331907699344509163293970321171579364499069422867659022429575565552749883880348899917097762890309170862859762653471427792604926930699599876880793720967198761131087832485111994977514032529341188837034036299509157328906732298753229418036787823591957743836783753618193339509432543600480851673054480681846748041656233530159297914863891456524103460797742080859286303483393348827643235518109647495537966357589255059421029110123925279358896702724430152163117299262247918303830582546668425434142696402119438441876978663107312379686391739862693982827164776805888301838062422936094744750676713475923817542427890802232274305579517684948109095503614642090106570771670811611326634660292974729461580256555740942623203806812056033227272946643932677434055375874749000570114059610056673845195412687958740324850689379099898896415514300953052612074608540341198247593186426984032328243671591315661222434392383995400282619024942990512469316941415504509039762793366847136675565996496592471311259812375064575378701160695799946898925855265848213987329967585175868388528329009778070010558905950181045618950003501497472509270406410289640196901456289449377509755372898675445696689483644804847220581261601910264382502605218441697683837668377656346489525338924229162098363997750987080048609691088142382354297548372438662820914743427002914587073623089764259361517490721468179691382393562324550989462082767342518643394758300411416493430660665461161064113743876404774661208723277230536562721901346615523597279166478755293395835538828112739430194089573181082988496728386208402970955038197650763215850161801895194841728710391563223944654485651284458409879937539267426135980513767001187784090340391411587970812184185016877396300741744574115549734889888880965433390593412374880976154279675336530227844958628298727567796255859462019029741780566363719001287456362721343717677763439055143021473536719148751126963946463486036727275778243268605740948687936648889560987341916997156452720653856901701753149147385817861356937005038774974786808932204453635828944399456178693025915217978852329133029882764152467044569993891015915718110673692506827565561278582616898671305668711341518261898825660524331470125369232602315716352832043704063613203533926474564538148720917902881974130407369614239376320472778493332039362083170655656312316712880819174326868072819658897743925187069076174560965671019720359265883732815048751712065035331966710870713223139650765741123574108112619642152381782447212256199236815113104265484333487225663333529804714309417005905066112110352752179318515961460330881343581442481191721484240799108876226330712385834132694404943554931092033265148543419130640074292331445966023662731143305269535995249068459101738461692437990158728880647128774550148348220886650329775713568355023601366637075764807319433076353517828416875178697749024217528736421261325802229168210821211269346821648673249696246910492732685928673183073410999584992062830167848628842127746040936058028106936414726548028847059706790339518119876670129106623537124300901835166938429034897794201096672001915158463136146415488951604912632988669569083068311504679267219994450630942379073190137670610797626643096624712606744748410206453105940530218001173819335431476174296615780726294296890342654278872991116958622110418300633035436765974587095652115214324353167663146956490852676670810471482045449751018414830439579403978005579494801853062117472380963506946599485526369868157274545461055145098032155874472868167510328358146295850748702010695622624120103686188354702878115624865229276359664742310684911140971883201519662403718921402846478901479469514651433303972550977894698340794920489900396776619530887989778541774333598722200597597579637677523093108586726818867674783723937677894737943164796792553393263951143196205671838778142811782992942884848362763422205676975832467117502424949448579805437320157289187537779321283528157121374852944002939751296101369810559661860472367260849957947933455610381582571322589894277915308599048171289078808584760139811276242188896878881138138696344755803789511741566946057886069602967316142278248499383156521817160874002652664265847675493406223994504632459534161445613642524031802182710924217540282386234777468729697808357173883792949525943432399983064660745686053323996863480800337473864264841596703255325001960611546295142169259995634687613453950541990144971094345770435979463532651587868712829037410483050862110947667620707818518499066856574248460754822485570692872945227862964355608722010914298239395396817836343208094534514660701295362258188350878048871757296392142221408545492211493571812617967243211132220535153199215019032637967419490355651919540250272347734248298980321732657963527314194110177951826385585653796596377540377711027643139020933436365558292763948414660402665256136681950662137256953783016026944324036813178862257888960236813547337648277676978795123476265214299205831358155957709069343633555028036269300032523019605614692101854241377840612048206682703591070836918919275506544546325515790497092278925651934703418464389620659922153550128632061313345665401277039339751217976631447913783285518976046327789750532767695034243894207843306840604324256021437793273979681591879027495419417601835647973884378459989163881048113904758896448199222289372772893761280344576860571210883874550429916740733658070739503455821124814717193735338389939047438292448758816197014237070734864915258378636026485369669492307572731398661847448459437003245173639975678271682601795555307445909528345298689087932182865655716819193958409230995705028193213419513293152511370197491986092496617446065246430034604128961637171001756161660218852729525288897934984046380470223534677886248176317279684017784843380006487041551712688433988240839225669100320213911062480192393139049947273691896266083212238808744798181881012782942267693525646381849950698206721213877580636279893505239803409193606019159505509606842673951883082691927624988240157535818370169064339905374266488468570986631067736438880265565472422991098302422222960925231199457045458701425045245724312094699014010818643405103356094142633085830482961397311237534799892262920591913762864452443578907445618550847501381102482186310020168146865960708723112760966387539572143196038667270493025275266951358522661345853520404892383618470961026492233586090809671102524545266531819371584298375235601380592979888928124376682361634835981612327626504196724322486910744601217827970296512158418132058941295747581991586469126515812158978434244883184766841873422102917367075790259233573639258713336544236153794235502639705816378966063819289568713184751436814720604659453337984643363733210014205809935497881039112053927887661956282962753988807274830366014121601942969071895987127336227426798474320472415722902843754025350532106849048792918984326586437640966865977790592060325352087472836628248365091200535687389860820605375903231826987795349177683463819684185731759717570789169800085527789652922378703888606643348819986808810094457009777591284425484162606892248777030545880919560394005287608388223362865604568712822439598174629960488245790450872367301905649978645862362765306798536864732119881224556798911258205223112238029748019587624497060028510154459663120593082060121060787885002871254556670869178523383762263040979175781197623095957600662599704133047440649545333049605916722365973199903372981092976749939313295842929229568367092965062598191982169474302069264792212661444519912216401522160103060838141788145677376340698640669426808673523349268588387613245165993671282392013467397357430602253354166310819725618179332259666118850125320258100598750073673749444663615426861292871823977449607257945324406228380652842330620631603351050038346850332474481256156518456347598030282289963588864157160498662511148408875139636743242972141756947510509003787245316525531681645459240625515166022875218475072138419036622262532391462730040605296735917342422845091705039357709466076948646717185486359854832834809142112496589878851561722406777664371627917202349196753494733373105847850801108483367147035001717000592671394876558928945059390575727496695872056507872031618564368377409630340767752562274905361277871160402783156449019638102554845803024449313303903781054817345431209962947887298029254325200723303906429440677981651283390195441863029153354591050125431289399529802050754402999601288875937649522086365748095167957208779186444065933248302868763314202137448151461590538889121014646521253095013348883322668582173007773316009444511223064392427244817450473683200227306387102616809361828524684982173451031358703233821821413325576786044056943351883994923716831869695275215369170524815670157713993738372539843266072835244080150690706283285849664652765750447228845672179725150919880657523088082808045365523611200477901054271476265561371450952639411707390891219668123490487719484186975627837881466986055166012788355834429694892901190782731248796342688415382273333789510488584588427477969026963552807782543287453920475676742664641230167890174387939579280766958102970586636683747578567760519508253741302749019759999856542073613104411615749631034216621117791021314798220209872223459395234076199478595565207281139749718521189615336646325309818418261704354138690184074012695102012933584250077259513312376995289086382197175763480972992766311949776054614961253454051419577830702382622655109771910629270289746214731141248873816197913842049339848115927724371641292077286723446671027115455786800055755093141037396400604803514307580605068776272687120078474895169070517366878226747480508431627246279806574615600528943589867253760317781737674862367814678180821155686660997922382335284052022438678285125404416330965817429524951401147336430337657081356537155832346629063078289011866729802411742357320372856045514415778739229093445958440662540752624087870193601951277623348741488589837588172677420181647457246474250045169241341900313137853446573472791610682613715019083896859261974161829107499497738516398649914411704366631524889586053064303665839028030875330539282168895356554713624134911551638773015841699955992476249403461711675997290119544451461475949959881804984326623147593178883731764013505634825167710273545347599190218500928412517254617507480641113462968561314186590452332785901621044239693933666754837779159578887457264700386683501666994349437266436521016594972857347929764956342912257327213994561391850505827698549270193093937674308434663901859210041971310175641210556875833127708801511007362397543097001754888521929990995505495142670831100128363311730868690836340799896219482293524633607078814373568815091720254919212831648619864190180995599027139963096832495245010491473011221288893814001239244551327606966496579355112626808854598539890032491449337948517910941618286821423606872385978643895990826927190009264307722464424152265604276756516250715509070178271379187701726907520333360186258571260011712098069246155129165757768309758412164232476189523024111292150904733621014041594266283720088667145069612864217894151841813094636581340868770958979564010378100185666358450048312934581843958018799359157695543353419609310952525150093931572505053442889123923441944642007630224373739067822504450888293859999888090729589468977133697631854502665807013578442613905827802203672751350777666484892804809616943042797621676672500766318204521381467374589653567885347935344780936452900422513279517735747117604123010383054765798991138116981436831004076630204201913343322697130122730719874087283972612883805055392764029956685698310137748932736689591926268106304468973950458706920361955813442345538832951853457792392170699388237732449675847345516716395551520692450862105002333533978197378738703254947922617904193811953200066538851520103351077195330857668257515654443166203988640409182098796083414790923014388771576959538761763422462821281316922964536228001950122367200181018155618825338243730085570160469322710519561902724008174779772414129457227312411168846150953318184548230832708937101114338575994572397897823843588372480748805271079030802249949268411476725952766746207222036863264240030005854534775367775319671472510992486287337999235280856297873771075758345367745870178425939064342806182112933158321960340806224740931941723217239302176097511675422438782713143999909061194776154633555219150482643628925556699503101706434381533876955735251140126199724002702202402835149204055792261260657950503284239592758946607112742790453196611890743373428539738449253974497451930183102318105925246587192619726262836564007525072642349498171346926990849849493829268405979855335051583085586369097100487393493162715547351033859137363272700484552680824876974650050658377117669268132281365852784328641162609960345839621273129005255996492934540968219170313768138166324291733523659387813965910775809596997210292469425186691196728421881073305704176139980116563248322391033238348141662776587179670244903006871173274436557868666497590328354776821694832427688724648490207901725062360095248725755455437967589108805871644020396775718090247211905991975410873690118540960356456646302111609745325178246335515317645777449483920663682095220684772648699962759321447768350619462055334930981124445333128510371070222803508513209339116238207125381305118755450842373773387780416642570064384540032680934771492495418827308576342954307508713901402899335752330817818341330715379733434268663800789261619858985582885288935132830954888584906818855579174048298486296127865373970474824944233979833954580450715222970552666392815077961864753680433722667084022799533310716884705705597427141884346242855830444934267405719499633763141116178463270170876635291019024935148008322872902602646646946143951868924878194404588461911568079901305481650347420193769261440777081317846453774543138315056440072540704355363760565742443266392705432607297099507045182183295910111860947940466295528736370833309513475546854760095722719207307246762299375427042936432847903567642726056111850591308343558148340623594035055384642507888592870620889263487815030361188690818951906853116500754764523216413430322306936153436243253466473385036844435745688635604001182682788735045464463190268155232107553090658249266784340778095949991035152213390550667117031185098292760752348729069466153927806021381986571082863589335739811701819857280030904917313301779123911638261833960432342918083090838645683215992982787379821928921957931344816349578360340868483901697315886538014428635856262534659474154454565874482836661168780479702853101424437192864462019913170746353616097784580639184167959658005795282303087336988343687535898823360087378045233655950461085628280921242100961213261305145952225413747426092886228402145447645976181568585392793895478884799208309294323206398029889519921892178397180192163323140574090154406603020371513593824557255719144158512017134764167789149808560635966447479756866443654828314131423149745169846704527742344441489168687879893627452243082088723556792853404374582104210096921284610695777939130282070368462367993050190764960220170791093759238637074971368100963998064633782733936853848202884319560144657372078040043815279711956668474771082014488725699965785053007635179719301042107180805081288809922451860833648157785889821176063835263018830408298772035060356855333017561545488113759413378372237042913491138050232216766951974549216315816413142793350793953617904318249611082758776181256868221238259970218191022583369874918766865908395070687466242099760048573884748674129982566016983651147463166765070660585326015173280473237704037874924534572542965826744126650389133607359979583779599742002744697326836994409158177727677825781297160889049588281373935037569047901308478653327140177932446640873975349294119026700413399689760225396657561419781303223929347475470291543963063776204024195204580652325336271760627391031581815860550586251888504976502855357362189669239071126422958055269037687037235844473764433888084686936565368623102832942774213846246172026122304630654239955645721776471019503427963903313287457944178987306688408711471273406709497583830887783236470850322519072990895567694280155872481289937824739853777653646888221145573779747505947746686897041448053858599319703403012484986114166578885226129690669054959121020264221149717145751914488183136088274901771327612223580785353865309643368290356376633547374909164815110625717347948212988562432576734330198057717500099239402451058942453610505597778319782426070031781183278633047714158667865159065941931858186784194250624986361092755809437144110553239690418256736153087704034958909399764999526230037771449006131231280360998804426551477008159733376612326068715774034524807470442703111562170306893187280878674648628600623813942710642321293351411906618956330752163686089677423099259901748443288433554698764250925824214264652840282066990334043446538358022334491284532145687502110894919060117581327250323284438749342701251226463392133187914092291440494904215965031237482117749528114306281600425989153352536724587084203138712460181856302685813196680851379061996255291052864922975917259743996529637394497213034873018505269848352183575623037241194970151343067139184987396307417771663951733335810790753388766227705876540212001620166589085722513957479123375206048742821506894952646448508286234369044862387893579416326384188013998468616917832352961166771800981298408593160541636660361718733909342498353821411286071223330738314697179160848866492750780045259703981542413289267409530550871037153680826896394187815493744476897052934384180405641619313552930859204078009680167928765930218645198530296951648370651714358914254032317059135634754148348433582056077971247138684230736112209993445103812820678075730937756236660962582492449450629899281995190663166784699422852630293180923297217107303342131926490393877578813473357187743256643162959414559037113716613944340794165574571774185959006222040905026289381788176103700212254967753648777488460138443045662253115533195174224964258883468733405780512128256406073752978975848408214771960176539438823250231816956233404454986282484146354714183146715495277044462852448678240304770257176720761597220065143841098130572542836931408069364835480801105914462645671267934818184684444969736867634931168858427690505321557594516406423218196169993451617341231750836737829384714917415671058798792965199569941704528737386488530162924089182863724737289102648319102304465371844072159112471347543915527230115032850573835154735865315923438865982296742981462047878589904866267154751205913269647636985685599520981530100480945541874600902337975441132334642170162026969423153248664125941177213345760418750871849011249855848822081081056515418198797451191751985912240192988365133380154405591968594523968741172264271311907783489986496835135185259875825707916778045455729580608966517881098107450671393060677643916359080705794738598022191109567353785829397172646970193859779893603433232840349918043325524546197851857523974610042386675559109418164701099897985689448038441518475730228459817878402960195064684302153088848362140040714940347106915077550801322772345918800471010524061763312726328171220966772645098054347963795952896664441659512908463327271150311266281473479874095432305969656474012114828844516512176664394824061095048375618340394604000168817953021685371903321772832977707358038873460126451142521340074725193359558043228327787163357593733960622695877864490894305619735714264194135354768279122377940522967399103158319863488731282753923235940537427598204939001660587610682598989245201509092044503170541087005038340432088964149472608976823833515879570738917870269626178479736371827724340535666159653388370739707079472790481885949014090336650873967678945049736440589020015048703010313740512379984113491721395462683209014268577539702722003817272791331607271262509050135716156559006960353297654836783274863911276843949882698353534634916519620902351842967747018613919400103613917117794499380383644718348535665035157978009116350157484471361969018821779610818261096910302336278413617879160388459180855575909794386305108844701169793375463438516729533260882409734013280122660622562450377197507291668430745600749013731339023636631928681257257464827635904926769329813333370056969662324255354101749748060102814794535377952997308004512987690188669341574120112295862753431550541954748283048828970004728182076163266900121660598816318310729901992903154328927671489056108381490444045725757160718774746498000589159621894772136616266984103568624635834924138600829297701686884953465787252732087720138569107934536091007828780236660614891167717931805328584938096079035242481161956773365107406531890622983986524301970794979222914705013074890186668402595422900488908198403547352268876475991625824740418182878969279944591223669306915958971461876348444216077214137666009722356386546523443460387811694829730016618727370966407651943261520375178570477682874892757107397759753965267812232203639184253962835782513932868440824156222230958968181552085567698394271969156696025637242414179354922692409255225335087337774686718165065070174206649529702768191342003062489348235969010260569321054833332442343615625307372032450236386703810783305613405986948453522277002440406464647584386469948864308116839155359721534118738513576737099322126116889642145287125237250943702937477780301636431805419380313092649627292320410955101583234990660177626569426904468526769956704864095704813275513282606523177975663358908602727269177923632527710577548116048656735639085629024235484593093306842620798005077892585994831612893894500805955410183055814786429786289237407467236024269334192096949081601589713473623674612823557143854207587348811812261381174232534040987396999715090615808178912793487131075408901944386263635774338355660594730352937008757579329426516709375256220825799549187157858458928518814010921156983805421622649153529703688232015866291774379777805222163867900302898752043784746202160280594279394548002093568931317802897045661407732252200369048782470489227078612707953388604772498936961556479471973270619440744174544258571836702370190531040863388638013147467016005145557629485999970410561104089203214099863323207637422813776067294982768346867097166993488732601657281520418108540902551865149468754283398000518732021168525619624084434158183803634269118704055001426641492267999229701257727598031054820705741594745149030068495318050390087194845426400815609485400461961842064202603529992654348744842223718681645357821453779809298312546824699533705382323342071793327563174867915133711163742521687130238865806944105236224341099827575212709745463098111604804944552027766215595166733893378903888281375293835588747661344993068730976771932995287982199691817937178486484169253482855261843398287954373489767889849977694220964750544387797895423062251881077803956918560761924007243110261266892313627044554251034203181787048271177776579961495986505199716174073455534786403502998015977726153719219851349555015598930217092125892674413399341866971390756714122907927797536880323567509673697969016573206201110789579559620473700934225723231344040180039389146517625845104445595975954975009164801830987097399329056117670378901517860499659589671366917844404437735323958135086033052383886504798985943807446037130788779350343349868551332526514253418817462522862625557068159663172327018669670483844945877319404071206102080875500020503718942795786872170230464107141274382152519526346230665683830071657961668018872990827881678643096235341589256750237052497164086850821272699105849389705289065406800707176684451665880200625378183628309023470858629854907297550460105555688167992407720674458911582187391582595726703324536402415991097940391253891470561312561544904367887922337171270881617483056183061692677444066166318551544797727296350245362998321973342215407040797311160908974295982765981157460508839792391470340100066477129809998662803964795185023246782928085730181429366430065179331987455661369376537988722475850626108079981325397243979158068957028598820076063280097181031925754008622834126116272873687027969779018298046583905803407868576516577092506754159934937863687347444209595138023745037246983228729197216489999922777821720197448337457717303259145504466163493659078399558333552773334775601071588145747900694011323836603255421371752989352667924518349971112882792975088353437747591532771710838397998330097898751423607029013828408645025894152406043491447423181576101625343739039515313260424703160499965872699468247723338784455799879266517790251094764458994346957626024097342454127196256380348476243757287325970553404673918935066853558621085316716451195740866628574805450328274381063386024828203454507409113656539405931912786173651734841468836200319990012101492536116849600264294897186778942485622434083675183727722947005520630501483086546956431232455878202462340696488428137954481846888539333961481457674882899376228518727163015404490619744762541086315490767306231150057562601320099519041239375989061680892131883161374384843869852018914133467937838243667947404040658861935254086359592453779496783515796124335245932266973489689934910454396501188564885846858888786158430298256184114168392482131648389707841717722708644100653532900310258654039256046278638322784666537371587514028521329376158775259038901106335736329479512880445570640564580953624543540864924187119041016951701286197594142219985069263325595324455677149044903535588117144375585961190068876160435756789279462991258965398961303897934016405828636520897392832156487413229971926250898100486964245779432588439475598371657921758877345274852975267176270625606203864076119111228848252651459058761050050893934306012101125233958670883688967822373398656465567062847208573550195899437729401978259059010347107779250912696841461095823833619339019447998720687646228180048907259816784937725116184557954898590368922817817157102541641652710119738325639503555375561411976149877930347235017651813921037206758187347028594879001527957625472081628322160491468217934076630413670180513741255543794504623447971208047389381286045074117256031473219700205520316640738999705116584072839380863591842845205992452918733506172690563454185316648496135526910431753410750068776201589236082526265626597035844881670747319074533205120432925237942123589505957919186817667065054440768967007247126025243722094982598879379332427741390328319961411256110215606060205953372152447126298257151002541283028673137981492907518603883105088315781163462399197077928840912331904562491787404438540921572582041852030665251635920812430565874558007696414082444703024499235927977701875332654294148295617418995997856184354591034123382032381526205705446206758946591400096377009372633722988871100703587257925761224538250886025220065549994772071356850616937412976731149429700554725662999089362565332200671714239512458239251792753224393617917309181692631699155817088933409215533356506653090247898848472682156938389035721772686953363649879277397210502604976860360558431621683190447523985610664027147507540978891936762492426694381653290624551061577738589860341271244789985236257085891570698080833041108801158622259592627176236119283303968369464294018678375888963749176362284978903867215697278223713612961423913078636054638771149628925439522968649469454142279896673328906779150377278098475393220282482885712892556258626910110155039505351302208239589305614658675416990277024780703481627457092686061976469137289603940057008642634631313423453711314415436917688323791828872408167705984218861693599409611711757769607700687743064126578965425116792377396312667316389310061679337563802677999066357931868447318681232010844817047197038777185923696921521577814364309498280042403244428780432680775395908594766965778914332079505364716732108625064869373698323398642874923838464076077667560848817589650326477430447212154608905705441855351572903878145379762135164128389691215948726275531423388120592000815997021331616377841399352290111039087047619981799710875555287481183717297607332934314517896083735114339441679391597330653154222140724900087880158965310101828847277174947656007497557263235514352284349960610925187940403691369807840731114730767681568684112708631068287536555499725725314770962994840943807738886925383216922292154417009649563548456285903365889296774950962736728421979326888201836989598550322953038287537976080758087704822590539730655569915854907675205026472378010123218208487371619484690117159471669873102915768493136114078501959719154624913064287631039162227867257733710269350436332618423588078871027823356990057554244068606967132790819652966014518868654618266191558497883392795703209856351865404937858434415627597754864550754337570006426373980916698622300443754340868389147382452020733841082141571955663352849683121569174296295809735061816403384361745879598075949097303621056244672232188722975690601842950131648990445269407111532098223266822289660990386288797897011327802769159808110532202150938461806811967139899312051192116480632198582130634097481254072076017067406190659956945044750161826364953850160167533577681890646487716462170465426493422537467275190809523893208659652736613228621625435667936551525115776391886015250114728892430137857243515543923634262178120781682996233057089747163973931761207827140990110226883200281674717597798459324174698709536736569212737468675902897102774749535189241869816246232236686328810984494088853984990855012933837533758123650007809031539675135813755662084039329127324422144659490135881640233627966461858953368709102284369868073794921473643020583641007071800089415939287017646412299704676687083007645040710541521751332611871446084574443937798762415779455144747875266123534048274360437794509695947489509084116087149228291161129407688748202818456549048930201905097513204233094887087803500250581274043536246432745963526156279744928247228296431659400526464346269698314278757390531050991378423710818538381008754666027988819990161388221357474046634254468833863426096358796868639724401747088824438000475702783656792891959682834865739484219424075731609857200851247510560128555481324395596712875273232404999347877176106345564269395247524015654630382980047733681014332047768142816604202299870599741626215389219107358410232691428100483820822397228196649683809669406980631764075262744742939891126049582664765136394307331856256462273841065175026395897748681810142229489582616708314051118547223663324268812127065338532322355324129801650463876852379540597440970740146100431077876021165529894515486484447940536338464143803804100371560530309544565345792080357912802651695433404065270948445117239254187655686348907229712032412932488699104134998500581201325073372864050712794031085193354346256269155965932301608613355694837126186450387152707933154440804163165052587435054999082897886752915169353166564413052654973350783711320952337015693038655616648169073668841163102740068233133459044826262138608698473286593836524902589356612690934202810141926911131719458523471420424547036956940022333783009679711119602497862878367151733495018944237769871039398953046882277934435343822589877632933364354709948719705220910669202022157709948886027248157069101513721091552974057805826522624286152977256163550669234001312068620633084602159444085561033374384763869087117048053624878169773279137821713356316795450557206110979537950985300273847675202021946541975659776464831216586503894342358276193613415249785348008097352834201483752860946967752691814263814625706131389968465473115837633680022696786712136320400407919026727977277412056930686780345837374975210073035258044107739503667810068636510426805103532766488513916548941395974897640251479989770093783079292290604073767160511772585091108495612058445125785068734530949595664507227105622724925401942270186955969354702427360185393124098356620637828192826061501183779234619674856994065306220461939899090135955015895083599450122874115476672929097786656274016624599351692079446054534066804700087903856790818292600564938324961784098172632108892483647251837814467967863379701003022653495955278595782229957691160042767488941184905966974123144620092600323218498850945542435443041484090102462486827340032399675655131216565929227949503631005846587431778081177890588477825214757902007596308241054284264912743657383538967900000858500571250262425607402843408235046122150320235689061209196442805486703354922542685564559412842745861643329420398560715273703381022614948385817975993905465212243466991924262826809140177499495214008000604219119405684332337365694034014672981565019022284638225059565727298918409473660943575543286459193660302974926342952943494896402906173329060314290040629862518432033010854002215824588933115592761711577379272341067376755391877981651931033428920226301686225341604790831020712305853947229892449289183196935586632007807546937201079364837384027389930612785461032475654994749499494317776284881701204829483220604684985608689835283917356195478844616548926047704227392131892905147398720748795818589203066681763928542690684287047862379405819899743735917266899731667953337866290488579574127548000851628345003926919374653794814255941228125168578386273008289615644720383445844565127871174194021268633122270781314371172472044424000940866233410098627380835294121783603226440405530672640171564372539956939875861569063074766861475474844615237263158721738994652164989394015564288695422680234930422889901000842442692344037974107473962300728682435093842407651035682814189597125958450195606901737128904065670177000644283825049954271950567483410116800843862586486997098478117113076049607857050369696870983177723331380431894693568632447741359056550311366135158576395051955671324693993313151715745666924191556722186859527624287426169894563653306855122832996044031797898089878713430346661091907574868152034201056763522536054464503781030573867699418849149707548673785372174481904004586137946169776309066385093682605559493219066689047421461750673372211789705349552564796700945180493675462886022642228980446578589562672694564788803028584311653612380022937133836478449146500692466315574118215410055756906638556881732770449037390588059619526513362612878253922056068851158083013504428784423003605081565989250354540790911650912033864160684389190516086262263979428195614779952518470346932818874386851179189574939045736002802020924717276896171303098254796581382090189175843512926506333252795837178219524250667722530673808240964109638537212327358122570769904480293161413567537657157422889104138053083404736949949667880682574786856670211596067230096172915091816987649315066688950228245424790971388325815095168697899533312504404583309617446951089005201794392613460566002534970595287554960889259263816050507123511410763265053937599737367531504625388291791963514247915241966316347926464453006424423505337735234593422567369887286897356734237582242881762511656690878558501771227932136447202652081628140954594935989155290573713326949343693474566539944911011687747390476946841446603801526017754571339142912771686749008841086161115413763345771269508413345165024794430734133189892988638747306118776796925398601493112385870190557589933540794360639562120275922316417468489548955685151973421502902870427253267266106162312592461228455367273834426147382816745892707450567184892681424189366818228353482313606617304471576049637409019980288717962156483110825582256649164489373840016052701614920807808808105833353989428880760051623717362567753030785078187160532535816207977630435817261048673306173132618711955800698196890893790773478390851888078893181127610713991537149238018744715982143256896808043596023678869430518264965341395458025681419693875407270187381770373579561988758553332984614974237234153380301436341532593785530222983853225157391197173614071069994256727445546816077329906840280137477185875126490194613384274351786268652070419515398151306248813957303591921258256605913231913142502192123871877897270766809055357472558912802710116580041588716690781398698486322444244074470392086217646209788436724121256846020837663205574426686353247776635099268627193713092341885232743576745482685643200726985103009722208019533011296603136359601004000547992016596897995295194569558893599430146556334586335283705369413930560058226381594719133092111155392917600575182591888080835578440809572358722596182360562542322637905168253172227661837018074585717058149162991472053002858583385562224899229532031559944691905460277116976979239334258547578616947049834806167860637248918852069591517622981877933221594160751220286660355517397129030270108168380655512388506830446201385869463161163549100878121982019100804617621986944491452424863122047693205941992632205833508230231592509710776010822946533212159538486596546601889086351934500563499576786325224802343909955342252094085073058178080172111614249508265386272333837659866236233998076534576508527258593524454658215139754225128419367088682851992380952513536009743873492082358734042350604094776821699910213033094654395723644170846780759699907553956459789875716559541083717610856321576124794275892159593128015156098150231086719772992940617670862079872814017881320724637656315406581095026654831782146016089026614069768933046899589890351536398745443607589837598973781323792295543899226654399003522252984726587705710192992845117779688423372828455917045585734772418438862339263628406984894871136406170171194098923932787309144584819481000414228212351225528208864076549552664389759667540321056166689774582290527031555799282522287853488140134813093918265772642381661927870866651056329496505811826038810412999499363525055048707425536533661456051326890302599005831110291894741640653633256134881251113169985467558075170640034485909952793600440645924717304254213099899250043388075286547066257269807921547122571468548433101998986486976781586137331382284855833214993073236446862098953711460044634657310614402418334831388764479988883059617118538045859090733474606155501672258530562665246658344104964130119526210665348095895586509284455434699058247659938009573755821337645880418426425612044319001821504379739098411567023040960434882584025477778888300833134122332066820414850477189945095706960746700425210933669173864753544023459873368142754605692364191542951384623809525575797931770838469262105454851972594401395706205693565167526029845001035149575986182002394381901575645705821870212280334594490160920727276983365489449638661248842925685279358753361313894085765394110937112350183922721825321421462903885909179182871660685304398185178093500583411281749571948134655036811394977049026868254353564225927042708849678892029588462986915006048437058358795992521883830189831449165918209884910822640603575371489445057703125290732021584799192682937988511585584843479023290624047608417607152790879742230811762479309866279280810806149083214202146353426395582379252637112714379678635885170381203284481165056635789151611506931204462309463333279500938182954025404206245348863327687597490409967095500633670422073994323184414657059132871810851157385682783741714154998551883081760244723432123513644177818719613127283959769149164817839567290062492024352148930492414272938893063392066657397935871692926085533395795343071520744335872804539161359413461841890754912194987706179470437115501291870388284475093033008132111912771890158093743282430383468964339329374608146605901239216441689477643700813281409591411584064351834554167908131675924435134236573065119981094079839982922158142180934309574278574993956314364593968645258983152305515254150249512544078891747629307059457391460660906906659730746842643759342105837122972786439261692522850718816560304566582084386483548083570005877212776524351586216897651319534346706668774042146719118246792421012245569726146476452165154630321786392099072480305313229615499543608594980494890009341473985910505426037016080566648765050184095439321438658616749455639505558982169769998543032006884828106801848181097782398073776789724693437875388604674278284367209411791013361009283776454545059901350960335199643149446857981135037133980326605364822709055339772051106451412706856334031226230575516031552451277060623807896778622604331524266622119215461196392481305997737245617003750932710270933113622135681951527454351034861282630006285188508714640291493178698619210702030084595866933225169559113279704760478497144953193435537145246574347649869732729534485744406550909223461894504379261033590839479305101797562270063407552982481029786835948173627925019180878661456637745391577542094499882272387379997993945712842893877180969658246460626101861754106156493728565400416807923493618818412742862615622768593532929964522667756918846536808985485718688636360293497457202862105089131006104170252516794398834091311503969539583525697485331082905950930946208525591096767531038691032824432963015236424435508595297731219346166183391517070931279827024253758608569065003345021847235914478153118532532284543862242258978090963469119446626456035400969920432322623066250524824336300028987721647278749141728989672691709181183391116464864253273181112089154793258958186626529415426102765247085757598985075408960962524079336747092883903527395447800569643545598611819259760844499677419546253952526920853177631460204571241517231365301660406873693118611633882845680993828826356147437793585242328002034644862039604519847050342495304200566911516234433723102648775777600953224569141331586168211914747523299724265498921263449730140301780031200669669965403140351701866150769606455519486865570144731388377166994090883610430626201799040610240513131168867814849914361666348962434179628492930889598705981881510103548012484689355317047418411037131383051470180015846568116222244031925382522563925918466019199076108538749481117917312120667534820624777804232186567892055877885543365375561749176911267197668481686569725357362370694644880582741793639642425631265804391220203467330327022239349364223467358282569979807704162166373581493389899716685038852872327719265485760037363029395268056495374238717296740044133921715368116068642412622144051189449572641303183631021823511955846994847419200252437537097991849381249484140446241872400386330196627222280644977951147298270023279492930839284212972865965431432079361883574798597955099849711058888856844622924800722225923897316969077427866679551453697866830269841515727655172826593856382649500915304937949108105700109119573001930746447973799529839344146305868973247683729066498261239723115443908974518582053697366443872182383156297273338371904057231236999168823438546392345185712838705834692007759221722287253713704584603928654681076802750290774531548727308772588236636623364407690382948856664309076846583402115959922128541384563460015576037940726777832806613712284888573627510170417873869227662736036221350035120113236449616511994275774019489904174106141544323510699736826770478229673029257332466507360201050139263717146400199684634881320945070715903004159786443381419980565306345744988615133752976674825380267733113229337222127324550672892445374985641077269269146143182287853451590171441893524651649745392502332158195279740372310717311961074320379190087312927349221399922419960999943130109312473756250190345944460851553514878286903599147768982844829042792504143137096423604346038460643527381896149687639502037511626646681996483031981803406048567617871101516718757126917259102695745741186124462064182433203839117611701562772884928871353424972871101539648402484377416204348510571480320834195435538088832870521031103616249578233998646359427602123375553814059582321224977010044758649706595719518670186521228075831930352811986320144502549794748020299860516836398428429944053449209987549296158874860892714504013777920102739364694636876302599620182330176369761514071718222261309006805127185931556902509198464707561550088400714762473111233173750156868476373242500953793435559242993569500805603289698948155025781783637143738460006379897297964342533879565789542127083641503609646455944205663741082405693352009893886747526338686434635371532884103028261121481763403972488644204114215108058754429226633467462343515012026538039143996829028178704754009789445083003504794243236479598820810002989825339769937832235435480988280336926012026296768406599114119705685100809635555946980282253588648534135011167661476478327271647391811662004469396700679617535492111896868205980723294002428916947218773950393631218846813128016447022444953726208227663477575339428759942269263070347915965688700840584114166477961574486934339667774563486587118877147244735405201556908777739646674241358550110938318859743560419701900305240373327479215278650333953116296644426872496160836009939126164063167799753139893163300006628944414445662922348483782358609727389640520557625519177295659983596949885862230428353563621619250964886254515436097470460856481446414092268323823872628817224159646215648159634423877775902366998238424833302734503409744606879549071697009208125739295758145293236271105346641001864389038088819370343179118986545234897993943650697334288018715659228558427966109204412511588948528948256424515338000457579003889730950806224776868032882084087915863323543868989065557010484511373710388634382991904116526220148736693458272379428602396931135970657283835655679701068795984524800702345694311809626613608733867301595189206615835122824935592197170174456087256989298836636139998987227826357046229852100665556410012808575977752676679787826372140150010796175187714236349554902231196605863968947752506097905968609007236621528662070218451207717221442267751213687082163849426054696567907704532704378308860070645418895043840771036683290513750643361448847561207626896182570674585401782218694796105183730950649391658953538141994113331909216490477101947826272216439962450425653670503198641241347919153331002396207028991802884944623906947006440400057370902793586358681033177288607939202575225031098578523866165322217136546784079798667139385257358952219825188873715059717436112442673857538534441679574693137141033341987283301062174580341222093622703792510958790074045797494885523143346179414836225628545295470528695818163314048292518033269766565869690132018724247447624334110557650923370192717109857691805570874278583654312877586197301209105011597187456728743957218225536430810912163532634602931206188288276103836236691956754335471598819246777564574451827564218067333554846687608697577483682281570040636033623029197804203427183921325156351408944543649035648243149330367820517228494370010449268235219319702915529718050897030799309824053174765081941323911717184268353905205431356464922197290232888248832874284007097928622919727172382037471056971173618436369708758805941593562381639817622521749681513439553913411451075249252281143653259784779662337739028873541586012191066968615929379462702610801361933090282630351914245698091343092783006692182623294739234775734021377633671771392960763688577153438455728808255445124817316797825939787727931998966501697302064898857105825090146336044060354295557540190936169130786145139637177305457308540156476139633972456068519704130174872744348254295328136084601650826303343264331497892417809883152935126887404012114286988358168600673143386691937076277120667893065937054945336271359156006866626032138498593049219050336361203374791752370838659632013879787994052367512065103317549305104767708243563709234614585130721234744982243762633226511865233522451274035154397365965912353454011279370082476243635190672377110639740039935722990506427050198025261204244656420939817649019856238647790123776097506224960063667398773566117962623503598359944203111456609465628553233874710415163646965381109987111811114222037190802889445714542091973348218696059669856202054612001979102113314228275536664652766938101414592241767443470495449800954805167751775536259298137342443304384008392608105766117734439832914477920635871779238110480004174155325424838649236154156912999876464959745852631022785571836039364315289176005544032084709868480849457066040623375540049608569174166721274375472027386868872526695935489713032796072289796301276280335541490485711622827407842234135406564013642720776481423796256502084182514503490160501048663716131772481998348772227121749766134674264940837128802534761132407751336087109315501150716813970584862633155577481412046706147553999501505612494191263416482359914135390276801023653767186850286664704331417858354537972382300272003908545658856446175282643577964209288538434041261530092323727531951792642108311126881546425787042850912287946076124016221074537582690239122403608590844764408374141296724507745823669403871135101907928260385874829300593197350020266383012468806183521412661353347053193828127740446158016879974907392996555084694645448375094070202329300433192570530519591498942912062898722695049295047083861602015059449875995920121034008954467128741282512785193769527278672054064129487917333677359562672518477502007495830029558437780853251567260971781778768090519746443057240542257406289009443887306249982036080729111114955526840381117753905185204914539511054158245461658274000170904963421092244758500999780525771337343422571654159362322133771365793916349746810760163638293200226311780092722428771075970612737628176403157827908426143748399106317297720508399190831576779306060459547830267082811772127441741746487220964236092372335071658790344932286405674856272808750157352741156383662986894285663850727018054045990038441510503350580386441796549344051245404527541707952198472523294794673444245354666208209015282571159632782286028164877704964107394302315281105728123215869791051134808005518835210367152815338944266607986758067838121045091727281235538730193104598418240763480468586948391950981209629997637198443163466051795807106936370959745347554950032820371052682337769147379094115198099911916675804796716406495574406686742574529647281832556794084606745865418059020374878826135702930837714100769166062921014845332350364995155621380750328378544624614482846295721441349607771034343786468750516037042159243095081246924966119302911122548228729873603569339360506182480129439461403030251431055701741117538895270099617017406330265150258004696791586318945431054871795555004012313685859273773125491226712214359991554221596304899601816736118796075855399931589632580144612419091563267667242166867430007865301572184633094116485033945368045973908972137193478821539587213131857125436507093958989120216208934916663462303115718636403945363680673468999192045864469763717740144937172595955406570357752002079123457751445825066553599688164701757923329113064787744550335842944309730448035640273388486748515780720255452541529255732011684206270935528564951769799605647030270826951132694554502574012982345167978108829303360663851800542295958065267724383490832753802321823625989381200990701358085112687324556402624435764585299354417884384771643539494619839296873186943868384448367071167583121588339943687791851100917314103211742115047854533197329162868575968855791479097835557799306349474328585570739299543980306501401608426784568498936153226587355597964038730231962903677338831930191024142424720168109621451592484443533946272063519216337328925316977574590202319947902773276859201399107675697630260002828119730886232532495629128967096757303168109660642433867492978908081216615682598355389821957039596188039410305997992392031729748726476707939089347989563512578344080277020322372431296891320091148641128159194193227472706874195228092260627847126838093815705276008404901947181427712028239295123112493532857950110861235728850680847582254925490325926343611012334398644917187339724153485897056242616285124417346231537330434412865786231365616365797939239592739153173393702773021160924664552748719995626112633191028334479250688497632771359573246219048917250132773637115416863066865873580200398394604629576883217746036665633593867804053017479707217285936356455638727026321101108066668814491457085060935589010417690437511827141015342341875044184512024588294773096666984330831827118706613554868752066840215534483420142247399762625776262391714108890302958487910091395492864798907794203025124218388679075739589227568666976555323552049429238553681993160297127590998435157458857301641660757402994095347710683068591403229588776808634061452106406417077965226303153586313210246375083518099772438026993189165111122401736159665142474067653399268070293094107364929756666296143483217840835030291744030483032727527990741119578298167566823325960629086470175837661051686209735343347485627036676491372984210841043041009501753688813941321328241122690542721833287982239014775382636861247576625695980646921687900380386592027877469261866092187458614399069988700134604217075190891884332882169786360014982838248054931753854188118345612590658795797139892508201798288915623788027491951458136610006392961261126496676735492059893108464631667119894298311158959735107952144328425090810293240448422907981657105015582667206678818820983373453396069832532392933661982376761608480975355487445872445235577071109340216042298268499876724345238097883541016115404452875286835649955323655592392704710189807008270176993501874025355280782854705242469109969980140918964650515722205425556895895873617660899417252254960970206108249726032858689571365876129569074843028692611729516084583143782106450680161967092217804355316502284574465847212233794913283026765659504437271391718926474054282772060577519139307146115854189502565487257847163217573312795526457246071680016696066747604838591707142695862905993856804896191712129987179933793333030369346307426243435616505990552627701333246480285114047863822638782567334311174757449371224654322417392125660728114671270391933408386766724007305320234720118412933524258198326920567210943764661889338298342696700689315857032449922489761900568262470637828664027891664040489243223887964124030780285372674565445626786564219377900839293357841571242326181578671717619487115131995008642831202849222979327867777023482191408234859577902697506699954806212243054588079858577367855686321351900941873101422725007074320274954851179513504510297917495575540909381997308898643564696784250726691383959096155843478430854923321412627907034900311612637136229053757454327796493135501047345918153314230463932094501409154025499869155199487533195404732188077387240372229143994134883189948802181604618253017944725225877289250988304771371491140685087769917133932637660807260766175923707495270738925778228998367494810798936226986360307055834006318049065424645659888995391985222641958439436226239240517493857866328783393720206548832573994407197431226873056495045841132255887701556724680438176731105181525799865113074340911815017361074425732110597530376073353022965302179721360005756510909594181444221062917101349259745913204346328597969673741231796424151997404594905577254802796600096620937619770701694743761771225061052055265444704713519082624021855122966606908658752367067968998513885075302630198179811596659147101948766966612483538443322289313281704344554074367414525819710542718363454452646447569002778608996240655481119835301560733226176151945624512716147376966702939450927217754295498587650158727329425591403332544447033296738600678843234352137698024398838594325572722044299703916244115702285838444557943354827802374533802887537760121674815246828144969240867283789832531263432105755201661096966476401907648977232904830008674391093356118231149316167959862272284299373904642032500814573505363959486139070305551178975651048970831585479531402702602197388735984164199393514338288966334726655852690729798621027368410333133253515902484819072939043166786317576328570736630405027319735922983673408803847910392735888984940624507275385370335802723123207674247308736282282221491232130795319779181660232695312431487923848063796126632972619049293867028566238379456126915167475278743328495646183577593541825563111889887209572565481538630023825241542525672481868258576582456198661889589575710341180885651452862096683637007579245295417540806193538381675758724418646098375616031884198573961969621654958123284441217509907012111910530848315101809486429770265697751207444821935376605616913237659839710800031720458486625749630553593891266993600179513515218075569810953403002694312474868007018188625640645426734551312108272723901265850868060641684661443911800207441714777634021491175511842941307410835082965111763193169689985390540245791092791203060817534971751333708094731085133500242108279052552627129239736569556690670335403906978975922358127179237061365608427923727392244701581406149804692822911745205964034966621347596182412936978664639340649541993549127584589987507690770263964094784699619096973252520151162504182555172118044418189939599610776591105486375556024650796855306751187805469537708585222929154445247818169966311779511448713556192389568494074269430309046241309666465290856459683980596694702147360760525396934473244636146471077010413885716209873157448084124692306968727588697667461573577402399116468066587584469289191962112312674291313620419607273512341147263055751755377751870147156184699154659847403303797477745348182692025557191158498672565987739209637476026635449291766296780322143312843472229127259626514905312686723817773167650989984581174137277334622201078704857548750995833564671867412932586083197042039927320433475565420360580426377367177822961393530007027834412135474883491919771555661994466737362901182821526379542852860249248525691541276539840035280650085889322417583251715491852123037595610951568148536558374169191987428672311425093036550820873907019058200548169130224429134476066932235266955521716954717954405546963135624411241590304160109714341378133898759035763641861544041656699106403422441109882638905846139386792229545897766397534649793326717456297969598098471970318375085486976059403542902792591624416547645293486000653915216353484127180041784053935185707296598118731112547242724574533704014101997901516233404293911306452305859840637846144967356300383601822305437715512841000377161584971078388395109562989759541172731771307132818162687552989275600557566165704526223195101618044937287267503341308604397681072545918353456630020268537158562029255627929146493075850547150932965192969242049791942152128748292750459650494968493844013247071296236312148797714357411911087701704897512075275684402155983761563973800207237165955701061948540111473109002669560747847765307301674581131364072817134419489703633281395856866094793879076260579386211627378177235436641769359400996178613672205226692072147087276920776154329176320616597166582065823400927933796495125351481411211839413403303438346150129223602750333340852972292867957516556035733390379139142773525001105929203478272407809057336427963278521555972049581941427681888127452133014568058335011510264202082419336521306964574732812594741599375930436743495825981192177312768295702993692700275718909735136533146372844049554455115606905660555246188515752442778807134900425897030889072356743606796217549437727508663408211684602345548070771637800601117150044879661957033001061537263718342401910670041083322604937687731362557847068043588915246086376294441889333592108975781076906567902552188599038939556216598302218217063601995729490988897763733479146553840680199260705779264738371808096380620425580506650318577902819281065607916760491502062480741135123586234528757362418355873576505478635473683015915523978091479667542030821981579153560316529241113231641688693719656614242179498271269223963550319524455803401681479414632105694933798563332689744305960383626638332050387033971423853955135082402076654659441349726313632904568852156367042929907028598353744510641093320031634862260186300690453624014980001500145425973471460541104230206953978606109122442361230381819751869923977958529764920747149254854316410775275907773641186730203208319554200861235458276531113482811985837978993137123599809016042847181753882220498086994788561906768891183338457489476459959548411651402711256923472312394091254499376692862489980524489615138035516521623252234090511031466359806659147000762491520671848161197973539471803827843355231275127567836114090672469185651533680798453104673731929383416879802716908844950511142388951705702381458334353322306754107485761190312691289812094709293878440675903090946539217799683592359134844052860361734759875877521009122855056005416969686346773207511065478581928822710308404012152638093043002140894594225378596698587419001083694314285119134708952134358852454653861047407998351458193773699197770155969217199563233386462697500729954386815348862578552627042609386923703869154525054859142436151639651198634489524847340758862946706803799418198420358001645913983350847892681011167734462336122129052704928105196676906549494796828162118121661343871218874105070959699489774307130475037730295627902427491006474833531336146656019303291683646512797722406325037617107085698222005033751363801022066109061238817848262476518295619318433255949022448400109807538597330812697730037675187691607016002978496269689632605445963446004345104731837799927439547194234412215005086391778038533061157816908589704510605866484140082310975843706608115562714828750480216702980033402938906050447319630631750396792105566416367163202014306474921208383128876016775077360260189033230824588757151182796583164719322637115582920434001544040703153966527491943718668773873165531620359482754182389965502091731267837182095132624855391609784373221488344810902735719734012942594088113368492098491175270115145127422917878608979905514263411180503702723906275428098195390625880815989635035040808304567863279523819611146556834457741053590777690030788993135586011471442159396502805464184371945599963104089807252692101610740660785028312859459249487795057739781656255849534377080824867270083577524948397908673716433899951697021106297480696274251929926490735573618931231574551061105574487040223751658097489544242845453162756663495686513868772176692735813319128107592546141579352347605828289541354940198999246606832516525049974118548444761104868031625130301351514909427148062103511575449806722248679772386173459537310588897161826374936358352385904982978318786664700416859287686009289842097284255193315221572399077425056779560488338206333039272103337184003015447265820455439653995495568825786917085669403351275352489063965729569213674945396794873810326576090317274718391213520725865390165420382418894503592801533930743913586146266979232823903125724079598197600983570996321879473900552485335485537069971929356296535165940440012100827083996526311413473363560347379407369823693902384891436318147070280173746501839096724888344803035818808153429495316040260272168560036262998677631023169910296662761810857977967386844534257039682500019873964260064556769842164407071771624567728290534906373854795243418800728352806560459480746773165439849192027820261489675069206795693023724960446866087761641841361572989155400317596022987678390768450019822264782922014311564975059205559427434348870176731723340859387141743410101253765569788485792108266281101204232026340245198886286897846748025887455668705700174777661507555322198984109712347473747736764039666141495173445386429163577108976388766811521865753316302507903269186504412617070758537619863179361850840038415791575093963230180408907081057456883534286853959411237546595996972308540291938057327686591469761167460409254975672833035423238601745944978920485502024400961208815314802621578358043718300950523762838087516734637024059655263564810297397360795485506948745547532117044885181859827520475131709654518352349725373322773762075318067176866094560220867009494727073643613172764108348036749834762166686749764449604489853280657035668877839166946009773396400571799648754775058875600833835595946920912100088920413692933491853586514346261215837550562546524274067661876792828115559081993008142399974382504955966041678975942233001230487347368587665094839021899982888138518053115061632680687291153472957675567464840385222696965175487967280077805698838847295106349874905212943770853262487703137674497508885085276226087157564078649852581843778174394167362811166731417075872603247437982241735309943842438614075900602068506843248155036433935532214715212844602318273765820545280503639157186652671363765618167275864535384093014484948528138026052156668499084146754743031723798018192085494827935712649249998226391973549821497141816819543263307121337784558555038838143690730907492574785615428181912517131222949194390207962433772240869123271205750216712261311205451136609265721495253255122184874361375750107049605395664177332726003502049442220545099090473806828617026025389927336214214588698667966463960907340335019860945289822072385099479540107059345831665854707891514706657884091393385690126469434428510163994174971083476250233371024247528263733761380226687332380113188580077601740276749035339287546660066125893710627738400755176829941180151137565839117466783371832931191051623749084641664588093988563129465353284490096391904215086217236559239244409172500946589457842889971092522742769004412200327217734152399435261009835249825968796257783980686357540879142191211479789048670128420283422214962994137524367404996490524524643864213278393191008129630721610806673982539878824738162185907656249200197972072599013223470327198094086753342835388117744636916220821884534817640653517500668696330879357911648305292815799062852265856611498876562816250677040049353955540206599481233389564938600074233754340324167965223269341835594570351489163036843196395768308652137152014956578407126242369833493087406371547077451756997421266662314050803696369427925531170214868055721119769177006832715419411904875901737290974221834165103750965245702188175923904080518284850927427746631684028357362792940339251505807404340627921987413209627164974949843601166460158029996769199136628595230776390491031866264684670147654599773456734869250871524764820353997453985091490361625452544580155276812532218548091367478793003224797498033773541190933492762532088103210705338343699474319537109956597525106840993120926046849772030534099448218062105214287916902026110197373742106701659552429455605387770369280589561398544444813270585102055869556747562268493709866592769482106050950559589291996318835242721519114293414498311438759199198476526673922757661195746228196382727520553655341564526627709161148321825817286134355336852597516432707522397917243478807408932204327856105819338053890868113329484732182333346115325663251303539563480541201092732571259241405334159049134677578048682302801607730441021261609556856757780355861229527637158361677431822747706436522120449747185631897076187772506149227075114880812221225007495592875733346488445717729364103110067149469643534323764920873659698033517903141661986495682635605616779001958815619814661145032445749893340033451596209301221867446224718385102941326738720385747790450484442049197349274689895962059907093418136592987836563449278037795280732526023184300890127022517623383570498754327551228659157012772383475880600934408237421787592840489407815398520118853740138190980156648851564203272037809270869112592026207070246516039777384110330271031113652601319020176310596240071680697710967344767381056942348605900261333220849212798873651741230347079153111258253378305682815452412118729391794073855552983189159726953798376833224535876129402260778205802583867239594631155238937536965424565367264198770743474473283456916073127775036198115444092394313870174482764760524937752528013694159818621880999581581445893422978212195193591953423076091493595154839224518707195254918678813746549699145235415913645564368871389586058998212944391899623455402196931635912601019979047353583507876009273545267876442953244605074811663322774625854519201723962313172835671929032176785129434064343573547984259046064002460482218814097217911580724659477259604533743906422594330439564047027799954507038335272126011949608610518100511158350094181191216389970959161547982790205439675019824977467374840803607146758540686894051612064982278177882914403899774738268498377066428822904320229304807744163051398018275425525563917968644387410920496124758869350849514387686085127118301282190573529620442777025338621782051212473210954024278144215342783047297703542022669922150371650545374555935537919760811760401078174822421535166352051916305554815844269017629086796552869833539533279802189710981268309907464294613938644681149187827783652235936288493674572086588027091882051060775338048239014801780675620323420465977308085991501308400730755850603526756664642263310903609713543103661372424667527901721912227779469558994653232400189911034517055449140362857147949612117175391574330762547102701751460374588642898944695835542650908413550463443027798540680116930800196452979010767321874813579476652916372391839443225507191759542141264101999723619943662773029069971011064913280823517167485986396649175360942978196716966223459761860939152000436583950411671573905162102077138352367867724954297245448192464383839458328603001572138783106179952740805928929663120662970343737637873602061596969202531891926548781979403349985778768028462772461995847984115214280509182112398340321257859584908351214451931602372864948173221953059635722415480995671379178061010154355904458171325782653989248021591474357461166192228144988322661163245129301602747409843489170473001294210722751105327070804946165682610469648565131118295154976792295381976190344573901399662172743853783105387046698239382890298672568189428454699466367336326892454931020566039537464920751895399784627823804937134088134231148246845233535037022487879887915129108923380630348263567870442238598384890551830682820810155061400509648980490936369496665124826925536392122948622891609394488147290061075276990323394976116219162555270295760891518633792151382841236243205135485318736730339645852631626488738241053095055761933148668665622764110017403579675161430333634893960391302912543609392623203230262569291526993668838973508248594977406833069372148007356335218794026939659813246605602014194542069742030945246341340790970823553859448892224407916080475789573762508390409445562338327844668813938519067144131127171955460780633655402469747428794811406390647628650930728060924384693994234226972744921177916920770310119783766290560281973149379878030151173453375766711783617768237462682609325180262365042969537181425425403922053551076915673904324090803216942695450774385195362133673211030682399299036955590298727535148622250404386253880027853012773286131800986775828217197712895773167015508936990527972103192373051282685215370806618026060070723971873873883277452250038090541569048437673361232762492058565043094996757368308714699763216180116452622791153380087170466890665265770409880080345012745896959347754666493618832769724848166676189930094053082891671396134932576779264917286377140558369163512785977641173473866549816426752482981552059829146013269706974973781503238714751657466195819543908105808897105822046772941252397375992873671209080091138650700378269448672250676319316728317728692869407468169335590841934683583378750049215117577444273845569146274108921653764548694735533228055765176000421407129717776236956748717388256739460889187865665422213219844269003818691152773195839781007665570718276918489902053862550703745917219227983551340113828787784303776662044198084578916402672943328985949175359781074513092155366466418317710921477023217945764425834837862976053238074452588375567675406479842211511957703729537266502421210196207127993482818528423867134789640287780829934946099436627201049274349830113128017541528507402367034076357922813917871736077742402152357123104555169453048941999011211946315783383038465078205374061270647799906517243905296349974046503752648782767060553501472506735735680704164411306582090856758223462365479461357071582429048617853682811941535243269870784183901673361726862162215236255904874622937146437456282963180515625790018134668213070055525609065563401554823374741191937408050437986317831277765297060731439445604945997278180234585409847585747723840689109300056543160096818130180146429651648256269571037088125225678084388479094223638737693915202732338956118131027868702360455200303127174220150773270547533657007900543750086423341812625770488687180040832187990531264447336135916418700156394959648700010503968948018075500203992712365843061977483875366910806427934180727076257743693037772343755877241928827567845772120946459275939925692600948606035402772225237625189048078577575568663271154895525774991910683620985513136808902812183698564081540074004971310590067189722715311652522073282667744350815807650699242844133523709338702761484443281724930616773721923261852921696263570217819309387728416208922674025744456297673080706826355049880467154115596696724784408204270934230507787052501511841936355712129344793368149135430249992827874528280756097901380445143450305385100832035180550764867516871399735316985268147951791708245940255748966483926458814320562590652076573315350607558855313673283166500591983025231448782546710514128001615981455844412631280641005153732260816724568139009347537498930490863018928645432776013007203861085671459787145575376317934262704977383407462664224437144077285467831095474446388851555788136036490973819694356120038561338925519744324778123386781295277840461855492837434466943863322513589695358557244397374267909399209885884442794887553021432769388681785467013770401674593722237353012795813022596322846946901367099093578739081423219408026449444771846110236056281694816441132419064053299002949788721678043654771825511916909784929330988294105459696779752481445776972808245448417509760392902991986033715845740587333045192646233147759405184382584393302004069034693498453373276077271238066663506045589440654257432401105418984240890082041956479882613870413740386343071927228398268196511861032069246645521676336042821227379963218776011759648030913370143559623909879265946300783802864809112645029499250444177470162602201268555644418116126375608696186272936024811381210001413921743391650910515921827882689413394683093245834283436830116751105507820324627082011576533538275050030948057534969955086168669811251738220484269866517348592093114028619987341487584822460016454978802404522664528714333361434562543649951437324981693836430001712130234443536341710355341520990038324848661138495499922565055124758735704095945123747559700659094318614727913485531193668440553945403722681342915962570161567895557015500877283891499867574288396686506071969894300804286990666335601226691709535108396923303146959969529997089310231913872757052576617422295531252077998893066952169764564504640899957829690358608415492370347125299812626896600028633912968107201665412783945256258841464425994691901917693104643338094209832391765584484989334220845743683261297963308426727600775045227020321534894580394823684277804278296630289445200257909695688734672471654818306265518618988593574729374943396469957890578115947614282927963564161771744498404406269668047697196221664211167123847447887819988334932231039770590903133348473503240645593465196706663049851354712885604244042483778716708312252287514036320993706358947061503994567320817488462398627299665024203641393656796425884134603598313341347054131741629192112114480247351173918367433810610061018762606695285761070930977017083671632693433744268146512275719628751199231864755825120250028578072260544200387109993313972541141506297500436182100847551152757778207484396707138222684793335510638825144741018098530474351694254895566571889026832272810145544886557879322689398392753192569560558490640568722569491014260946965806074004601915908109230480726853514768649467449644884974849456732622681257250124682931088214660692592555120261807294096601357102514048185163074790464791429988156991017388464655169316404791027237900227416407179261080595507851925333164610958462001068573144919287702402753856179952674836496667861583130179396593883737758493000363983464104371968063719300070717577986072749456994316445545249262812098832147606575121162384805724689503706166849231629590191020768869592915414307424439716902715581600990137467494780824761963437046638971349516031075401897718781097860351050794909869752741933287631047181811009976421362890461809930008150449497327783431242705470056105874716316632831757399843869816405555803642361277365550493312419206787378141738004502218004193837814170153135338780323540155700472082202117569955525403343700771233936643457893826683237484962076603557553515886034385149224826317530399591603186460580139764189063435517918711513299177975049487496282147561871672160416174034614225276728329668142994135814981093376462214450785127978837153723718996462587577320402451171318230795654863287800834369446249410360589421993970505199584953421865423171580671092662887595473286678423381572652802255691552720769402305142856785770701341660554852876336148486925672571201657811526426778468633631447653041104394412301430865225674454629984061130252704709700521900876951216875098247952999925108195952946851068734493367643019440872765703800663286273639356451427282143866938267884532070740801491352904542193528951811609378231346835695576773023324962679977866828676916415744924079800767601531286640930098311102103632760898215251408458183134238227189063967759632806049498393925005645456419178854160085290739010907713851376899650047853675591008446201577347613235400366579273948148662966995428397222361165810427485834577266726381331756871284210179628546720385148595358735041883212032113712384892574705561083026467685227453391307021617036868545655064511279554028615639929817220468369238269868695748452590067780468421088560389283076862749206218323459544308392852924364501220758469058585999730184854670388945943209125081047767768402131884963242765116380791931395716200690441066908752823419169341461771423442571181959380875726998426090474482495336152307735623624088112850975998972748688601705794071760842843456016871578811302026078131040925485820468484191248413294111221141244598728720023534737405841731304349793039749374969660554615917651305050552052891982415499929942915058764686510826429322490857981503014439618746498140570503717670402735312856523391313898414310987750296240394888408435101172671140826117478413637189329095861154490560134365759398439892494617081227500829645971264689701900475843012217942326832365751122464639295099643669719108447104199733793257049694424965935657658236721953289618290017927777682899666738121992986639368949103816885538717647261504441623586292204526257941716156224203712373262758538896996491948552706456562095287467220495428269507773763599535847415177010138314541485410513387430027311629845874869405683318638854373387282505596339434602279475229134325272508785856570151751993461193123067767633079750807351753811906483372267732560724386118941112054460270187415140661931452762322441932505393934747442629041186460708503901938796641937790647251270042287055371438092390257167733004373245471413757361564516642719524165079113550439036693209521223792986844564973791402873518365280239750890612308871897348040371463240572648269856744606782337251328842738955716640337227471488731091752960733167409723074900706635156148599516955657042435563552665576071868517297593380403447339846706660799651045767769252202113005809225978408284041992313687350622988636793102686063115438172543486817209026338537460365604930610131698319900977256325094575639156693183549009905596754654345247316440441948162025375813137005276281502737774404052038283955096403757019165492312451273536349785895584077784589107380195234477726693261672032138480299455154439072205696253025693193088440989432187842548106536861864866024455181166500145649468848004071142389695140364545397762995650485328694500158941350165822208051920688316934805514481386012153304665637619024809650980085992857364558492725614933810817123094838305064888674183405953612998319328013555005080671336638813804417816897981711571277760485555701952139661607271403759539637263776763912820902915198673680105948851355258116797813901664877780195447530135087900596405586088040072089055719690195485666969297719328599057143362005357689107630386516643211545484058683361969007723614069268578582422683261588691009935565704107363184400140111341243169393452733263360160620361585439376431414800419411802087862357033850801061393390571940203125576547293885117694506185277435727831619577243435186418986792259687697855049289214310324071906874827738196798576048197003847908478591166690861247479173172881388255686800581810819554644220361357168253612907637610387336359980405216825798057739531209988978838164369097498213800536609099667356302215172777578532002284872591341780797616545183681388633487789996129241600814560719733095009264512341957903988368739958656989486582861522436688307051699347396635630419071328001981903189367416962758199276513624485806191862677730607251305046559452774475154421977257265781596806015009551317564528087648984276827330049025371600114636875874974906718104958672664843282865631016432663215152063970143399366663992922491236732075503187688341013841024530875431900395109660547209166177032593832681714221146344233620005553549905313640744642268596343940332023516142205861990183878256485934890814939082986593442293950693690416534112901770698230760305828937757565813027462385267822359912206664171291215771991219824396464273987729222707232078315255931929559975108787792907050405411147330196996982240412595812010253068918871161289263835948261716516383546280598002062244571016967899851042465911674413335144180377697797389416387434382476451250142527838065488318068097809013459079223975256237022966135713753824427324637331271213623897919339803015843611953295140122040841583639328292901909445475365279311948948367742142292291941733960644856940055076033702992525775747707034743650949481781438704902008391157596438659170628369430227915303633655207522995435974064990306544258482717554194949258238831590996577748655788423963921724602176787820500952174194621621364236641595247527139090109349931938954359378749521044532715744853711299752257997223957533685196897398816359845304707770460213811070729984468268742419127422459050185668870075322785482121267769683417588112790958999936305576943814559491345076736250547630855813905128334987138760394311797893542306221445645334954531107166196185184493848402767071107736328102759491464306737306013046486954364278724838039625104166812317761457455043092075620717825837731585655170551155786843384256511973846625091727095796979695446119577296550868307291841695505898890978753846831220592091509919127832083050602625739505247536298848362839575845731203883792343224119294874203330362475488293198800000125724218660595998341277541970711320799712850480673224303876437404940968339465903469495549105910761922186520520376656519004766138176353131847399766912376334303773717628512801880883016555987295647589781034793509696039903482082951971545510299286366848823697616723875982242481528399809175772807860438917440154178608089338444849809239548197386087757286717945440277350850011888689686465424011860795103561498387951322006213310762945776308238861946524406193059847752439255105229138362407342460654735193218470704638721982709443095387750662425067392874613076289552192334182888968589791932483215973397931728448524141760021688462200063095382825535264938343472405782437997223729246200769221013442017537212415610936635094377929567191507422772137267892182840685642936274776396395826393274058866274160850978367383429138650097987823224350436721578942260106908965929419000282905972129683054039902934470430331409835360150262698368520270761416400701177179850078516823804949262549027731062474846944938472893629203803149802701920834770850973152321268198424206640538253564405335135709196132120533706902288415437967714761446248695225574258410054143485193149331711875079162463329292586297220507478151448402398780580556778036862427813988085817828198431773065387823099572657515627659828525398283836269229228929047698810683548514509959886760130362186524781556480503957389094442812812574999188540932947296293212748109524621054545093821621270572076637724508843606532041219295910416136586317609480364944687257151916972987445482887578899677899066828176426120440312407884966791078255348278961165611443054686760242051414988702888821958798800215157595889786079344129657371887118131773017057899569044664672447046852013464239331470978214969419651855400729342785614256016488320420080274530966273993674811088360433757612247979990014618882705658628349021197594805435584756197413390820558988611195559711795231467070687807464407722546184940955104839583051899480263633280200694416522158959450819928507418557253985073499867691567389089100051101348743762680251882816881415043722951813457528851970132444086088646824603009082349905752470851397855614240753140945828213486896812019289341383143620088302748041657076168953366042596485206299443243365367791527051995318096032271606080511873240424073479921044407794525810597219572108256126106479875528931937074350883662022326582823273886940788125433522051990772585127320760440916745750539539342876827659393988694227936725232988915682536444673348246511284644558302150889247550678843022425033791474402682013958069942630050879609938617312216570420368559587167765478736100737672233611947255524360716570487312924046912196985153922798745536048589697957784975532864071403076754158905026285985475402768728300616916861764585966091818813364190519981776253751360458124979704922026877079856111727495382312907643192962998207621700102248490576502735718159425605509528548950461269347735696730379352774197280828919179755067735603913068534002015184192033194835901817553663300347706113231120882074508645075607154800742615469301987898741785222961524486304391292387728622425750230356943102324468793755037812746244275871236591740653865575946154424064071419367617826745410228495770510439003999918546785044245445997527766901330880244202763543562919920307057439791253340912610762947355754204798705071214457556179290048007431131290142231566955513495448506843765056544646633606643960377753811427355163172455672888393961884637354023367963346967074149019865413222196581551572454507679480753400442163608919527781235400799775508735904804332453683676341968303245032351923194671329305456535633689143412826066749209615162324288335304328435551172043354721067110774690341007659092311360061539640856138874947459338188240463083151465782451491140258079716190586610537323493588541017444905790127621641434788623761569796662272533691046425073567160634374521476200471001372019184277925800017064110904752822651962792441587501175593727117585872674829720137760417863385680877237014620396767693092160251075689929174338430931828668318031884822226905539488638475441561178438018761190575683342894673971686558689288985286272135009988939004764232106326573390243620254975526512055861514781245441037866566548139848977614393533904014134233462940821469073682113322700869691038058553048438737496215342570136071596455673434203985068546362736599224353814597745341120364652734608104857722664588151047486198000097982134192414130332004107610360131773961147970634602498131574293652466541521198714742128167699849096239018509739221261801551385027158203773362148034261935789420559891944434362382812094785572134894562046222719177375427141417590594351549618946791045890735749848837115666026647416764973039772396184782868538162354573403088454100809083900497421856531115289081680339822151539367993447510246597990278613889640310929038826844670402606036711945707667584069439872496296666185006797568195232470977320088914367134111593971205758268120575643392143737593697530401188347140792797718688889130120385102740839859699926005612106427246323988262683778191935248425566052141707647508125240842082451177697813611471889000032801035708660630103553483254732791497545316090116241698542408855133382279231519339782017998994210968914109597754017818213328154338979571559931505212514742026104432549155955876706688054384972380717640268351471893530268227700111552579854232962992957991442627623487465557670700825977226836847456892553438028575684628807102688669906152072014625925649868699770167538679990467632727816370664158851755926857613008434727206057657831193268641306491675621579260178353605480150703278386484902870618352170483046164047944539976816143380878903626001980311061394783736326247677798711723772456019156645526329373437408470725095992674137847078949565722374645536183596645170569671064955454918395758888503018549917260227492760974312097660980508823609573904998762550625970422406547079274611454413084739037905224982441573235505286307804862397434272228650486613358802935870414207654240177112399138409112508238271350022976463223546151030211852331150869326013586005023759273277562242268251425919489150581649008705270141597637300647449642849347099841845970547450675026234643054084438283830317878916083737486558819333028919678520034600766580030313782550375439031617587762287037938533328808626876020894743264587590167033494733049838674609841230303829114768977595638875813348045465034722989185599550945662995955941355618154064554643940910815844300992110672934511448041989539312278162343089459716209237593053023338574567731859184564563571743581309048559308171867780652058237136219476023965801116421603029338633751121536235583648544865636136677016878674110648900814795310440913185658326813866438913797060744802709459247050726644982763567288129374185599286596859393226068708373278292658206378269773777715054557472283149125869061077767610492241555276519793275936195051922999565182559503986194328017994395753523268572571138821514103397789828711077700306610784131835507579601721953336136651278600465199183842421997147451856269919458377881762765756723659957813088689764105259496770416979275783863887628090081906730681731712677096915451775150043765075543103051370778974451999988979562784251255065922817100413973838682135722518207191882797718931806425079463111556120340948467031595081659308413018698761067241571988430745271228863833563890758293522993375763440078604564322399118474024182371841112268397702648057093523996068511945896885311779913171157603107722311835002641006385818489626666260347380605940049166877394607651079734913313113312517261936660591049824268016501306921807561715951321803531315258731440438805330084432263005002056333600295705303150757535512358711729011971387560429443419223943035157193185979733939968976477576193236640878548999569803104664772743052184229690049714172968692449350243150300079093323598386333982717304064865447368767858804366170752840699548464573641304314293530449410444422169726756216333450276354626968402297799836214154482852634647756248563335560039300353950074735227697949098374277202156777727942487968109127449882569978452341451354484662525047463515920774045689057112039404733106471783517085633158641723276351520200083516222154022847754441988405400169040638286777578215069577699580409579670253314758544961810201305030286996400220162015367632122465739155599876987471049161258808947268838072775938220348587957564234720929212575823963121487684276394098921248784422322983457532465165309126785218475521241799062317152056465036428443539492335367736488638728520140203137090501470003313686171197875717330101832898337735811468478560978003613545145820782905125098601111892970548043625981377201655249947567578412763724226685277428437201404825529311128010119119656093668565653746884686798667290453413067823428884512545010582988234721111252295910168742142982466752970757055290591406115589456719995582686010937450988415714830833761304924697897489247251592132865044545453771532994929647031520709834688378920371169414832419973848256224812686077585927446368872070433384699417016522368233962108345525654612282951380429885775078925021266960611163321338647146796699675028102886365788316980562127123113198182317194710324060673699654023183855522637995619828624825733692543942580632308956067017932851216142476932026318128271532642306763394400407632027090317554401349816234652332515823561475841573504967686540537728515794128052888038462649503072545708233357435289820311198481782092772123690336412859623005806261456850626915919295429934857116708412110534096687138971569341574563755643091167100625852913022786309298568547388405507750022084839884885996301264537487318098386204277043793063773987773807434681347257347924070924936848247863832504042832410601904816602649319707154400990106683682190037199098989013529861690093620753795088592742326822567021936627879293469808679179568211943910788706339389930769268410598961546987989675350120605884798651482139044716026791735857087626095294716254268888130750527537391574456445157427413290760930707628978946135264141702826734296808655018068714399789556012120471569680468725565382949434694578057931207303936813939542653362775451179819421916367804979206674881167909480103733649102401835370520789853915271401644124661077834482154898910662077670420133209258593286027132580244040812745626600202310213052033149665821432180978686889158735166339710130561126796006075306114618888201827702423217106459477706066421532758244906887175566061978475199233947210802930463259535402630990117695707407701522927939621231056689691202928184995110278647131895424433158644927657189627256821524431077573263848479444869732166423990952707627671737935583433434030855543349213286725452399541640080181400680275431515083793930500983698417634581673442319193653193958739896312384641955054830523078463386653380316280713643947603433001428271061995490849747431135434301318424948859544855866983254889474167907783854309260154832433950591383940089934779151831026227664640961601563120023039747150877594380062197410114842439740739580472070800885012923020940308253411163062779467018733259305167904833557705697753198509024951568763208851375589810900634814049252076010566436180512206735373762647778280591977351064587538791618591396834510946423825831390368753675701075030193413826868383276010334636028365029631858794150970159906621288049648355460278753623243642396810224057747005809940446617700985213564442904874529571057129081432779248079836566442675813284225465131921141187189331010877658299618318051208941083737192462343170763034109103871678170327556635875674412957712588258657307129166819315712986134450275518794658452714444095587892753108384357061497553453317899374477783494928926245709287772233078665115814500333903441289233188364457303231194536583816692917391842275522964803696730331879248465735980856555644158845562693006194197955854464198639395082381961825611998339319131523588445446237011009873289147021346898715619861647800140989506569026869889747907046518200324694972600658267982268102840868058681437707086844092589516122574731618187434867305867040824533150406089288245403151973330072614860040886994999427398903596590844377418791293381128615192414265301371860540049466438099178262075252891537804858934749907127471784616110780003716811943668189749721726614509534054328474419912826831295661074805671061907851768540139010801668966803440927159653945597478754243130262148180995169242129426538699998633574258337629496958283017723880714158916022368299115726855261388299735071821146826310332305010169873867916350515333838653141786820932149091557460628009215329884895159224628127826105998672671407080486656341795176214690817198082116637446716449338866604440737332326311405086156181712129263220412183355132799220969485092909390694853297839380479648818718108297445153617333114066546724151753333765423925626992629832012556746995421922219570007672445156681904401886604981122586854973705491532950602090845417114933384732526604709356339719643757887633940987850409863800381463727151112764009533180343221687238912868701337928947343655393484420934654634797236293114565052536741357308672844378495257695094532862608633765395516839034742201231876638710923472222309678997891662840066695014389376667821762924474404516143005482467623344987495099559498156975140878343534904757650485044021349055276615278966519414907538393003796841264426836683566330954323221863725521745367923802366679485993247789979409844634359693988456637342788014989397577248189053873308655462186982622771172549459401785059323247811791499350745003253633433787526727423652573898845480758499959076446685068314562564261076114132073408641090653682866938557232689213138503845588310559977716711094729624951459560547427168762572086544571903438677051132484533612269144897790931526335511656373622088268059110898110086605806460236097909735891083763801592308567052811721299037334514679895409286038107472665650084055320230880291170792104599512574802521478332201418455525870087094303817195523028928157040903289974756518806116897445439322855453462646409774452783344562914305597556000622453037880132934772190273215440015205665639878044071423641423008329653753899047528202733881575440091665892381753202908311422446975145192450293624743650556642935308687357724164202966442239143998735360687074164546273520624514124840508308685900916782936638142746224885263498054892189221555465562863596155847452969162836423613348093910533879280520717655768891873979692992405428734204259842490613255715737528439380865788718446206126107669392386920030401672664606279576126790230631453891543616793286236579026770568541233135385833912777996856056522289356597194575872798222378389878395238743131327932138716824541718256033238880392637438134898309825410898297013708771182730730691557184513754717712735084370006675663915746074974995457823708995717422960081875264757037196957828004817880355595249567537832069107530113060465971605783708195606208894046340982897946255160817130171605551536077193947439611062270364653681136744494271671315262145831732818569819312478897899902129708458519935006296065835547386239859169159989029324781446949244015857332705012473224403620589430696390145873807552946261801116533008215612367969648539844854874517573384095724585094409973223246545339014342020128177833675317853665817665057632476334996826807510091837472006271807579081002259976360281684414555014273100764229018169421912457938148816274694808197914613632594302589014239325215466593486985131406821786581355023227205223358796659157942219164079657169717067031435827545958268904635751144009784318407204530164780714331800167627528106676230215246563975216761278452829571505672953257728149830990750912359742383845430676459712770791267433639247114574112666862826352450152657816344849210929185779623793145485868283953972676242165746112870752233141987301993012691394142636312264753354287335256420524151094095424326533028980136341574214016171902757412393482719631555079958661015842241890344756555941817674377165701582657567481879625750832162465575707399814829990692631269934370419872437271348268622795860889165831364826898111555914729949309255837521580394250962655928179901014904147041374710579645699179860051502952768143083127013006180545983212531027044885766744324205720944572755059274622944770470779375583682364098347556143360822586792513864206494109365433009420926709462291163875496670419013394102297711640725173201932164418224243308126298109140661028657430731948208645157522170558983911765514796145004110871802902008670428734522563039030872495714311270878706621821877234133036143963469665359343015381028205786930395453217989816755778417459868983480999286949945598755684915048072133221145554983568639137340041776309558173518619318822286500847834016854780866298006723866539480255345496560942919813774311117289029594945218884862292724850105533228462264001677078839589133463714646258314689471440499244359532906449245430604294108490555840914197615870209799939770134544376973616843400605294150934794205996556099938050757774528314990229195696071087033020160240164673605198162006637171328221248915021913277593735603519961868210165609725268448205401073374706176978228175919446621180843216803728550998922461257164742398181708864832502937747569059549941628767535006375661706578867314353162176923339306431012387199170070144898414109435396642291681272454161477690060581208907712006745988768389322737310565023104566226635020056406279501202670555409092773341190306041702517912629509278192148589739056569882780408554469526535445787753481823121041211351725561255534358420869190695459935853278536963658779840723818725877382069903913807797931126168101073842972937505012474833712308348706566998414937212533638120027731464957998593513649612503648500363422390823550195788585128358305232628450041152631165944274623221849609437358986796110987791301390722569518824465168532965181715132066526632305215822552830582196824937541663565648381012497946671743363808114340059026939841900604642580553692104209405539656912452147864534989542181480354360506066080525963873205973129514032317453572632173234526358198637032093733988503897653141735933673280455923028587519240457866447595986772707688438776139250914807834394984074681457290892730978314014651699627725850517337453614863905310338259588655028890019689250850676922069719458281913740629115361237543861070386471959913890626471711845621019744064357449179969143350128920679525840289172763969432318481497427866614710925191792723929390066530395976349873740405090127764081997197143402159174837015717293699246801872433953811734733831717253029345677444611093790939640052593879574507426143616154129961686213565161007494737837299347333292695567149424642349996297561864947695666641891207744250947548543383724870322149948350073110663692677371645427010987850771155293098111497387510071807223417219892341324025916679183612088736170278446071904581665685754154701913957107098551288193771262017070455970918672736025959210010510240836730507706858151654137843431659973726370034801602223929648943161558171900227441479088007236432079097948038687298484707189652662283180305717087729708452854801921220382990011167006499327443068985087336504465148246714400971377712391005717321150626559213412399168636290529398470158232495442298152308380165547467546303553237187250519905059103797756112353059914652181457779760496122904248241297268571570316120489084380073679919296507271835992241613251286790984212183963683203946403562816927773594464639363544688037372056149513309177816648930224725532522071310340102358667219255017366106289120803332892042853593917144853947642321646286556533912079028660032606963092285951122540148898673331909314691167124715057756103547767951341277527149754260143029003449874232366920276989051680122773674266092549462362204436354632455090091389843453517671678973745459295683620145407700265186340165893453522414773678051426692909734901474779386217036439860330288219464921722536593354580219173338170098356835380390744663817825168577496380971619187401881785157678283364412350376145762215042198675717865922644900154532589024483901687779134930932726690604501098478277048345133871605851125154327576344836302436927113084571797855885808466659520913858515877109346903169105563116424303209530519321079794880905891280479438717800836994780805887272049525129648831208436178293727596250808609256674956727922484843149289459844200233903043700569410408416186235860617103242734736981434595165804874915813238372219106333332266056192379791477396120282831501667149830366065447302994059701550015569922747158422737722417001375414222075753079448189513372969423286014403277091049977555112270225424283861663937215576100396630955291990689894368512918319657084346038011963982051703974315014826503104678736119135733713733222024011139646578193007645101486239636181553622128306090232780812432296062232468487248322271844642596274930398439633611949928292855251016894615526079677511595912631644576397165692641930179792554921697234582015323058412632232897509556434915679732380044556915404786042147200191786440746825140393706963662601076307683692526297182099603703950945028789465166925147201877124303791848085332376362461800188204010764491476894097369423990376208030513358943011438730054808299852562536085056442086592248379975530321107376874825304551224632192379380632097473906883723733998467161540894169172486835025869850875283201652444639403942046268248969250207512166203925160491077309823812444871857545747182225049491281311792540266729495810029775718260024210209000496635872184484657222171195473101785020337407527705420853238258722415054422285904714995262223570296698100654898662517924873827932053868695974661117558343107770547614009892394862102447846552578495856251903661150277330273926494328757135316382016424824789780401931598777343355377059223097747647619946296490792583031573844937359808793849647699295705518690707413454129661910725177578162627341300189423561078196502339466096917679209140900727539589007058764717242619056529462523032945323225837571911020787232249479974747169987716315948009353077450429525331688496444176209249877039855711720092314998484291025266696304418963845792916031017456005804531991799868937487871904162877853208003799363456834966267028632132035820791071475361332270193910136169400744943297648323397245762924783177327906199644995338179644970974780806198058740853363318953181456220619659123296764992643576158867335154397684415431730017882345909998468672671551058740779951924214844753218175705474205564584853946657947797090798925813206611749071032225947273197088981681749076397217197996048462146798060168959554275850776635257936619164530801317620505615672004998038111169965465332583495933201108516280773697667454136780064559449225114555998676804652102065193367632069069093950068074891777498622814314113230354268195014951937804891585280290923604614595164969917298291420839609324987957298497057661294895841832893858547204912284135134240316175709842963114162206800942347757205168792165339919719964915201993340859879290887202839640397557568528124400983298819196641793636149768567804639382660243754518028142430155203180465021922336985003123793234154579769870682962918797283947912195297650885996444903375087968827935455027442284724242626404504104702594842129465847944141205025416247731150791079629393004731285924807041293904115182151464308125462629877985589254473193151991668214973870484770206027150715292577891574612630797443866137258033272728025405697443066431883177905006094814273209233990674119555459934976728832528453465925160895317331233598594743270368365023333126056083025121827187778117362572061237814175454753493407040728148597057940679615744641995762072609701472231692556847622628164835641271965571761631815710169632599958281228993900836892537916846076995087948976178617527159267577210836573218192091174356779907707318853577192815492897055717670300808720865544691504783278920494601759890795459286291215965540449036583245384529662891059762744903032691766057509378314715740064585929043101395075718368709834023622864112230047143067929545544936852819539724790655659557680664846581259156900851672431334948021352996594806698377218352612440869480891653367791259608253451347640180830817166070522165459556648167617098675344338552150693082688873162513165852173084129194910152551801866579882811174751988545463168575984412641292654891367093300500729089613884144900299349777502625061966743208189555240096242017767341633243074340351576021305855791082737977971573927977259009622874149256924375096578666879395029897331964324025846960661531110477438952525466641246344184818619579975268757814635945877004625236434843157368671587490179742881502029182984735157072122597760803492536631574786109604064092161766650521897276147214052977132934907746160271654928979777959541555421443956387694744066036136441192717036973011830909038736225129597528309028087472680603766209990871552813737252243767392468648817353532041240508742505789423611022236348962426287691429681568187669136011721872615717732329566466352271859193374867719608119098358239305222322078896359131613051126542420735532827082886623044667639423751633805563286431740903341442314935527340877087613939162138462491020124911744551538781669342556528260840867931509100213063737674559757030126113725561325353398047118447562664152188577485905798829526135119173661931406475186895471803788096811278710282368695573038759194794133502723916679584095833567150260017267333010395455576175410123090396962550986745666897702846517676423294057014181697178547890621663808058363992341268055463272921646371822304052725749423772110068845502301009847680546389947101278869143694795345303954475538521016580891608685962684512425779161371012530899058637482233000322123536640361030991712972754575570219128264974886101410879783616277553578243584843802077367069460186708976039000581009324718750150918598958335239904249693535426639654656197999522226110052047106370120550439726365394808771350453926503377815696422403513963537825006279520456988042694820089878321863003483840585654424583379050221683172983116272628432252738760554387705856111157906770168961927015568267388431976355520650197901619790827497547198387587940963600306203675926359351078711045919134381944024419300544981426391550923354749979769637383996631990078813697678338242339561744061201886348999815604505691560303534308665991036238416731428679437085035088644282896084155039645955965125535620100394522684170029434973556754508108922288701532416336660900378278979413365422441208893038488655570515653676121241987590026958802753158318384833978614899483716325883926663833918870742411901834834189216225087713021746829165030970836898275736654983513833656185086894348827335361113758080787077232587993828401739666133284305461841062150379161736673805944507679317235717247368091367792181862904540940084980366559396001744258814498545127505326474042312413312737184630820110963884113838265275536305816956861367150497226160178979151092250627941369668623421170057512575724100698505224535444412099084140051887256938660946919023819057819281428861407723534729524198892080515912825186119918234288060906771319579954423287232569956134388130462908423445283885334650220007944097458485929765011428605272117901535794889190918039408418432091155845979704295104412137109672190577183904448828989866170383492686522385070957523131597679770397177060900946996583327784066823042547626403040089070606330854982223574420021553083310986017809336573237518257715461822049989725268258336806290595171373827845100915869424306009779748430788302323553262208311511912284883358037722181071995362989278942461527086954421656284311145638768873518692378590303473936443865127665086887358611166657738691033307110102945101239304520496711724670353329492418837739164285419223816690140404739696707749351305760732240486833740217237670643694599256930333226744053055302086469971731634966963478864744823446455114647959210127340847470790319314670510815420143904028695542737035742651635457954730545100986143148548975219997188017906314282927677480741652816578112605808525303625508268105511403745292661871809086838722359245941807470149805141528233638609136438558718235771251219404277442588905676541189967310108781897118067674745100329202625550630386449957702618049869278053791403070619914562418861561294129268877135467717500380630629504117788877104696342476308481412421452216960047489423353854570629971483563003163174238753609481519890685865038719152816953284903222178746280120522833713469991409176780734269170723540832668870197162413762136288513512392683334708149372555149568613033415160261451409862924308278525597133280467936761861173647913215347352721607846130224111019687174841137483524495895505007526934192186223334037887176948026143075195769449473130534660552948582824566682147516162237551970111726804296614159626838480316346567820540838245356043015573549312330027133003653351518671356700060771960960376243064384410686906856875797381880404990402469560319945638940412417929835619018855325863134322530861855606560421974143819299212682571028723129131770207467166270221392073807740607676041083476997005395300497610825829103011523625438635895669880383014892981534693172721994835393946948520301537417997632283614183676924990305736754117972995477101356736810786912722314807206440796283941522834888794411871859020565557997076529654248500948129635234564320166549046751116056979984146055801692531385307390021412002018749751998378531972812515124712957276604585861964137652543581706018385600957932217899063786302173017718637226749005414590133977748669224865560516208530880075532212385119623414805142937893415697070071952872156147560180068496837067909965478957967807750925982775716946133921078913338324767976935209523704236833041190847018200326678734357248294767731745036122267996505736160812430174274511641574255545939325578888925581002317681368572790912865646078733364054539372079261347074563734202205939098288837048115730022091072453226563867135576817193135557720176449522340759583023460922910534113938340356573257977223749974277234423877765499445938717113846522100976228862040720203721263869076968686748884544998293909695952650245428231518022771057290925099588233906337268090562887284374677191987596772295424504641863875667875516217068456575617105433234971085115327893970647555083457791455919147688341479875237404437264048903412736393403273184991293333292944846098742032882882307865831247601332444650955332240495686714994274390907690834640120853322514178950530784533595809326909800429029129321422099944674037695871746900565903182956999445274178542298491474905711404379167372659314756234761308520523814401396502841461854621975926003906736360251135790215725688017769854172549813491082516913646932085394324431124379318606205704821333626058152382656465709969691641669658985447676672911074228666134357913289183178935947449950627771651584874619599146804222520022077839378203258513504176940219240347015596968949687146151828155474023737900232731438422196035499666667156728193314454247266806381492123826404190137005660300493514610299136921678663803607028037901431821556513497822775176254430742072902836816435089693332344654106467085644195036925950913451462415780420665140555389011545442670122523241347865392171694341082495683831648255121536432838620829401831154208947636710402266385410094221949982115492467505835161954134923668805908099961413108064785918824076658762429727871142369174523254380994128708821687390237040772167852133185377591597001599080081397525873326827541316692401635624917398672468928069911439033053220770552002308244153187837234381955352020674398115450595936830979311108716649527620293710793258795203938461705302325020374671606533762238174848606341451610287504767788926507108789245947144440331051271305696398507351271405613394144662158462993427546031268342939330780517923007084601078721014041516449136886597195694890255900640596030232707629182842686977940196736222749656004820810353585250629059466667406775502587918849991302857268646453953490093120077144895723048947014802217105230339476577954464071424446896008683132084528169701959979423819345237250740797697008201451120699815221648124470811026070956626140807849235238122220140861566172806541554248269818806043050575476975319457878944522683736962668794970912658489035012615969031881828344383135554110182568611421500124490571141916769259538835939594633963014165213495017166411308176621628034475136387171331923906289856845902920711761428181488458590084813838153859598810087487997933382141550769115906793165695608568332694300547790182763576993282422929900110572936706383270096958052912994222582920352147122597418375120082093849601236483487385970360257135570172906138436804378601795636726806843557049409777433911852611057592551825078152403684841675776485021822210341807924122378248398751092899706870762215863229705442607308158145826361053153202997722558997489957413386609733916617259357951906457476429114084999770031522598990645745516302832416542474056163131019592789412573371581065630087479050777908582879486094254665442179876606857818050572562803419218757365174502561440139029405238259591772174093158533675833518253869694953736791793717537244093176944734070142739897640650301692933738669764680448764235297083781121216350978135021610633996804301246849858520960722015234277051009297139426628717780241614681337625306965560496307497009000002625927776652321694407807950747319179551408466952635496806586916468039444597620489139719217925798911001688306358039236067333435824868927568762225329988255044726556612090706350213324875157717285442671146776526262628052980936731845101776880325816966072692770910363504768628785843454967656759037419942413963076320833996622753949588314437568935546374673662938850327130337873449219966874373070626103511139105761474295881543399429751952811297874760891080454331557538224666427652650377568853458978720390859499568557313194890461670077535295503852877721554204436731544385537486111896451252737548052035764763282142158764896625194396583784595854672036540040962657153051503338802214424622624625196328190098674864982909087711489703784142421210821138227002180982680146326378583754890525754197186318656133566834078155168247608993869682420158982919837189547923867666792494058008131615909239128274751363761626724364577712068903972252004212811210000134488628617840465678925467907303473150842531025362174790643280641641166325800305184926835034200130171478959981887709891458758422071411200009998152105525535401071142234167812348919233288055118004662851982233761650952857759304742450630938034965978377173142883614048541730675040303751866198833268751311081307765556688372008840789835561382734948060931160573202134995059423553618339036594840583921987595906353923242587325691409162760653019275605939824691744212994912361953036785265034666593286515688935639463770015770306752757321255966722386428695960338073063587414866980197899226207422467781203117102193340610926477364635145470683492726150163280834562916190479395464201732734704968932678478753174472168533800465130090598200639308669002506871934288458659120706945118070776208840583149274899737310833827769177383245516384533426263489137881122873238837913972462832384454840970141835035804282252353131376412112661094998730571214361405137328255595254380801631388900827182788467503494565055576029173458489316024845975276105263330241215105446993268539476843049708695274333175172824836184576526828383432546506636376023418766569388729627481398260857857407981918477249424058986347272111835738767463928351427568802727925222728261247763582057602801137124653154154643778541786212268159859208730202910437735536365863091493741576380157279909536460307680876227818792537931877845174150540900217268940017245246116605696267848780172299133822343025812609217277490544411368661105738049806139619762139695321419705706538704772236176760108714793557834347574928997414581585870795484711519563369191834843897467082367162393838098003150356468920056904010257674642664203210740854132090599215264678447122353480652100991700397954597663540924282814845162936738412842964796181966539467296744555631472993420907640205869666895234875908519262161379883877760817855492709907144595200376729193280814404188120511499638553289037864476268845360259046203026209930205748542857859671741749274011104636205548070290248379643871340458215508256937243232599447152499883558482401764251539712297412953969389171195440558679630712025573108071367921847196975577241924731979383410373652818290869070571018252740865622550962634394067241853199135248421600457525551161476029576153178051686706605614182684025820434105814307519702731386077441157555745378991310347231021734988826309304759811682968667484409657081832906223431763354956460849884044490545315288835016663078916008498171122028546520086254355620238479950310192937222776427940473979783934237233295726787291328882874407833140096545335538121474758462734263909449029887213097147056583549322346631311661326702635568120098088137256348042973236163944499718346760577822069594206956089393972749976628632518707063066825578028122043203967287608035265074066244985521703363947825443091275332641093851966229414882551611756928928305466559786579181673456385023506882510759151945727727202869255979566329464517815021476095797198620051072328049525650190460848799719511783666699046338208559278081059203223794246542125507384876891779996059518933351858054475898257820504511162580617587096037920518488018413835279587412288635400336927697851913479861246919751852599715430892785224007085121228222836986218477582567137120171298943703734624515772101764729119917237950276225439856854536488085200590049937605709242131421458055939145437797584036854603927741410468730802506860133534710967466874701461050057716876345306300347868929340317174835183668144049489518397929865191933150015287931944925153389231699561237392512010164190051897591365654898149198466376252514617141619372537763574553973859183075281338673984380026165370854987097081109139132085346414586200140649473243471570318616877798733224366699957361618525340685623560132199454643869533256121142595541025161902192029066736359502109136816534923241346628417714853421803077994940677255263626139918922202762016742614151873771795673039811482092446406340033525091099122694783779347956109900646352460816492128391263036951941803384621054912737957357191381624163134378969440282548352055059104441848665439322384234409566647231565054403828249400335665513218256638865689011493403043339506119772122383291338547100420855135355243524592481221770957330878925031262563637971723112932935135636419008052691278859002098268130131533531117237000455490730246089897539611924500553686626014657671462473994801715519643886685406516741260996849737818805373732807107406083431751959866655258583543021948867066587053575722589084089402869887323117397468325754814550971122570535358529899274885505708540454976606626949142115784516003722000606804909761740959489619714170124639100981484923887697034569318282864484803801556425637563452876260160759007130034691652021783055405226308858233436886884663889179111617167352519076713946972569990324745599679740439348542921055337762844249763838378230285072692209518134381061790198642761186388972988800010488822317726743709041497235404126261484639825867544283524235313351770555024757492293464460896511581637241433197108192774664723994684716851029397512249137385259591933109865540884595872670486254289889837342654127947797762769030204490394872894708095701480406620055188583581197979728069789248706968743293067544677589740079320465721746864976062258099732794394183056453409757962437807936582323077754542033597251896252649284964035091293195187828164685229184201481840232365075923338657883573153983655660656488142929472767191311575222062206716274198706138045900721846103158276551800586697130805866638852971224592791525085991998025203884035324183690271780772427404131877234855817437007293628366316344964270123212333148326418596499851979514140342516793449444709811851377797538068245389432319637102644401315886648725436060280543796096842391465906454372924184735257213505356780106373504851038310293913691434911175231970248628258562856118008309780285839480501468270777338186253022283164642462861786364358441073790035639698286215041929435442651776821830418269176620608395397925182776706933445095882010132747906575811180139154306595380066756738496669184901619089347866492437941672131874468222607048956173851708183375822948274937993607746644555525976346206719669276447554087620964835967137427470739459755512589199999292034184099646071289826214089495553169781756350648539157503401972583563063902385991903720845545492042953775011860624221576265723339236164708410928404862016488901189029492974601139454985993192837913923196668886575589762525868813286176286580251741386623658843939720749118786473249234352795546500043858569796920653234036258304862149663126096337405159328971793603269752075742401301418265182253548590579182048362773199841271972396023387229437548397412074178496630441420307494745195728386410869130437762697375862903322161103525438524213454615576723497456601094462787364017698146976144138192581738051308471789765383871595272194362464603280274361043005601662190482977060315334988546574731451314020031296092662294028871370812321381480330455748477775558027871213471181455766180173434192708405210729603136252237165979033790110083499077474388627218937205453189728823760409300124397741256654709146455754396417491305380050373533253258935523820841834631523536880771112252863293149992393966661346395240808946633568757690592019990178100012857958741991795803795124560875625684151919701876081939567110891483126168357644030615266394386035232814164233914679953422269006416571616091154626953989060376309925985743488601059881870521114264598464861534672877693453414903252216141101327842809657983773783287358903163110841171182045659620488458154495490378168552797354946005895943107382732753302121751194001995771516238811373479676995047925233703819372675553005593005867120531735678882026941917853362298491513089029359849312613816457400677177928439023992896676706774463642734385383650776814200069993138386261721418361878014812871076884509598074004866166156209537367453603726493800503810167156884953021996838093217120306437450809743466489847585595181621828635809699531138566645122753832659940173637970791114096453443354265064350585459252369902411757515776600491600058505388497273099757195706967668955507799009184213297308190295268227257703578651434225895302995691388395704477323033726586717157664093885629158385525745843509848516373315284724310793818892961121346412209551120886156378454329383106618175729481535884295640215901608842849070708352144308402044467196195598918592541150899342148334186575920940430630806791377927681016029462593528873422674680212264884618007712651541266654556869894358608215224316704368998164765383730765418320149698511974015306560273029954757647928019656547988877290573515902599772664833137434480908903967616399209175015747343435274488498693848010544526502555943412544712374281646286203304715595125966001647626642612708197515277667353049755120614901150699188360261584689699490501844441827603893809573733001746915307445416763662986756329273700459796696694011543493285613647523968012601522291563867326520660161583404480787594713501587110505938006550410203407966180299393873699579692147422041642392913951092544284313766237868304512838639531669597928778533758638010340387360852167428218743263836839425644596523942351581519485304180247962219794637315269335537352073017973661432236619724234221529108723044560696939588409308148462050869223565502835027942813181706290054004108991667248378396563155990245363760276639715177345622673984224285138949374603123427378649537021571407455761230920979738233180437231455337980623362951138782469557535765732775891003917540199914617893725619503492065110734215872034446167457071893985266296099406569490592843078967429542968465548692434767164247029186976731588056298821972942925107902640756880002587345836932785856545854786919878274041228252653964061744226617661584269380099722631187540920365402814979184678929161090193957108449330996022050195207211901932078284826547873153123618967953063057153994532203457479093290985936246746806418416496562073070063473662005500629394500394261078732752141757438366090309938046089990383939859262610429804758972540270979768624561564197577296067157088506376247051977716744670578500662410842400475572878320784015999905110459198692810036200053470342883538487219938368187836013011313091545686285785964145216089763368891092595674022965738192323405066806293667007649696043334687881281031699568633434962376530811834367085104597451524452894988802971970425407133496751587075562530871842278370593350973514581976559526228370322701363833914970416443906748330537258588035458601176682723008493786362508214656812129905803967888717183230977246465693403485377812939497746298166995213630042653687354903802679878007998459150408871118275379439842716161222003412643481107376510323316180934230511164533204660136734234346277918015971107495390587588939495413455275505602774289034677490670806671050379170187113201153225982175606459797325640114946440213678659187062357192632390929074678141344686511612264391932285595681365477727746053802218419774546551697611913125453003402506900208671593993550936272721350601750562682703112746651651345798701108703884936525521797354474045355732626381661746771165007808093014151389878968903303706022482816843990216871725070228058942982609413840030292197847040795055092680677986275963206012414546768261148837465898190202910865168533069492109031808728971929732441131621932351736736442146861117309333947293799684753436755031694351994036183144626806897948137896194438853249722292823288446495038610638191551596073154874161301028856492675845262796919579108563971413604709004898467351167721705604675260079834908636502599464392767180735347777338089634251771629798056550016848326492060497929787296962768413477335162332479566062454036632138178024079907251505374777803114226339975354400665681882696104501185550375237037463534828514389455352991652184652169384684557268786529006185873400595846378980988258327425714776106838208268254457686703831526638139230021646090005741023359608122340273074130353663036741455863909532975169484230475750881330540337351985897431219231575726945790250447355854954711156781389139489761374500076977053287202288027031610280450825155277023551180238864968132917359087921991362114015144009114229373728843010627901867998388581504606081368639640865481930987437488908221694063560094055162482332581878367955421034118157449595502646402950189265195615205898978228764502514208978240665236194149193846596153836454831251381261205156920223957123148421050398573636188828727073561522614984533187898371951593730857602231709735361356056468853173569859557629395206847186763287708324094297917929327556646959938238157872745796492212162313034986385332851429651013234526285476391885218244001137732831500920533643005343813220070443958016895481855789858409257004376134195521461294383915625558958871349614144956236883266647456048187077867570820156190831276714946576696725592702474276766770697734999849468585708503216166050136323922531462964129161090363898990575232179637041662597805559411228042377073847900786640513642163888458925930163407140519604349760752529967163925113871464524612018414897290039414255543286667645277200505531418192509335276443233302875326355369579050054382804231515606345461026272656512380245210616796390762870654302756033474528949814593087241730009199540275264486985916903959710935812753783916409734915676082766564521914671375406233443133728594344632004395687309112474051283894822073984400477697752473330240235507736306133544653363750511666330955322453229638705547200356263395935920287184612732842518858028490795674939101395896835551066032007931936890277327889186950071166502560505030357581131375449640402814308944741469947199442562903576478102488890989068482226393144134869207802601552591119775616488983591695691644918340996690743656149961377355832387269927909613112316882985339767828670609716332480274919031119613413535799253637135115484553761343323120655178045424592491471323217600057589939804083603149133115551197776528659698105879153360482957584637285942704693738852631566128936193363377078020572640993163692036733640534715858451185915012742312273774372835858708850554864388045912584095084151984585323790669023119019874190578191919116204254107334802460589376819156094420953786245001271914214641814995138768477961392384015434718295490269344037304100575616685090484152649453816285713533659215066092358344505212594941348720652751708826969547608127736563945496198606951933156009413932546929828634195444512073051098638850083932597542363418478987868776394559449703170713161844080769574706222321886932868522775841506239042419853423629745219511720522990318568257600423511384617507856704611679916384069560515522294528915389838464231639402454359358028920518815976171167600953263219101783698969376454411146720546874544404973575542756421157884325782579174196135352317779626740446772711821278901688100943740082415235459631997810345533158700568237082477129163174246738166303658809804302718903061147667647093970705757198272605760528385351919629866540680793288893073432142976311681584212962647394534575175523944447661615356834323295402432256548668965480110971482988821022131962145878666420056781547694509137203606902960271824039463410054155371041048117969281805973349032982437051492478518988698072659280159704635631081161855512887375145728032906711455732953608155249877346475223938650761172272988528817282309834276192999582881037411155663238272912894632823272350459893846622691672278458918088399253087721870247625993984549697908206428012027886867367245937143344483660747848130906602843633410270383124932617726042115479779430772038543436890848582768354525427531219822420925866561685036688538963841743567351537910248617474155178174667419740252711011155849505381427025768090509818710454083905156962944187515371270678878464652970472915109004524615590097934679531051953200719230303958271038005357440039290724262171811404078805724943353835750814771480794083172991911595376092218152415646992587532442713409537217758070962857836244487855835191962079040586899984348311987650026045595954832077400383733172009544750450103858212194054976697694317289808584781058300843671639216350339793131276802123355016080829117161007182720009184892380729946185144629912199096074483794904750948268272627987001928850592494286195761785894759559398992612070423913193182079497341619971931609197045023518987773588041620152220230545810529110335044089214422265170454123646480995055337438955394629189349655792268104412342678375547193590616375082361400073734196384742587344283433651500433758580844018604143547843886809372126386242158769705827636101325396449910875982329554265285506410827782561260735709451340085389989155703110083914463868920149050242488325788617343319771885498421433010049257067262331621422082740579607704204817064591670222107931751078633240629684236981466186016676456563352359026369492463040578508776354683583686301204980130008132907065144013650551808095734454689748671484351672629232712603446704920823774501919358745344546722484597389118206579251825857897871655850946710772333854871168496933379548772842436630891374780097538248688338815124990270209859687897893172672684050470574374229847862757022377121826750975942508904740831602235719909024707075667670415583575374701803493847259047861281626755892081628336240703167140825889784424903921188646620405138006614781259512230769485290462689014991788618934460891581568562137158302479556033513082803795035204163469888575052938737134383866446890657300782910666925654132148673096098880974752475159621428660726405405922889560025378637744225784413953967360235389766354967434639504322261747768184211782741818474397092054394039819834698462241861807210749193956971139973502216724894659405733215946262136851971641375098668761652429423623402148161128241287471532388724964444878472804105174938080832790239350336522760567703335777890022678229526242384491274839315552994406783658031037012752844304340746095468094659435072643866607549059818062972078313359604895902099440208678212150853311936316702629769883145462061714195576524115537417663220827319339100472854277082995245007387673452822322124694253680254716337945199391755793391892604525968970143850312827359707140056918588386809209309069617775000162972683518797634785914938780186911410368277926837823752572091625264356750124645079482481590044529502384782339725129913347544188662939820199330705605277984449547920488531774744778645930690806791065720101271079523818694436076620042093069846884614405957370389549894805238558320319488180945619828164059256157473895933840985017986961801050617066202460372821969970276603437931094174789723934723368419920154628345145200450644391030834977681990595382576104242631280210716590863459216606049107629760413756760809277172989752654451280394807028646594624025183510293706230148074503371757930658460291072053216592950301769948542325892659834245843910624896204012323445806012944763402306054077718357023974669717346891266470495732207374015217863587344204228891035313981652916874860328127232110508615817151526842278236083454916197375473496313564373353692436980602170016287832945642855301787109284111741679420508679644553657305100530919020949460812303720691085717772340882225870413050928638490114504470414303031465881759473430165408946816058381703104214725514421201540139002111663644208891417351981173993767651740411379342779849394956791890158710814823426440901360760483286687564403809513202338334710435401407242616486790553997535336708685242857414705194751306439579871472826407021825921692201936879063912595490931427809391439426507898821310627052299124740202632519692557784428912024618420492069676756800491670248728431681609572480463464497026919123091312047343195152271863121874303531285837265738362067096358284086566577267991534445776746147916977886343284805517435079265116573783428347893886387622904380271688412004561391206370205203070285044133305257660379622872565756343816799734429223885539631186361809588546164295025967552953127112171599041896220598403189995939549664232438533888198111989603217512678920233042009966742200013871094895021105538040914134191191096852093237980751308710181586232950428283496225724578260750274640898998212560515864998328917845814467146089430832938977067098062501949505716991090181366027112687720753008614128412634945819744643693865461202115732637330141683084624888833526565117699557317010544410032020700083796151701064584470991724839031268074433277105020105442036130026205881583071420245640431832605897184614487311679390164988245026262709804705162109586165337863252877938670244829798745124253557047453248966082489896894711514483843782030866007932786772812559515049907778072626448237492088087574748653122797565460728879482971784100838327512882452102997071558179921314479064388438829977317972423644407085134219005471952263188539455470525919910673559461172871370480102563856563623634433157469093066654558794821673682350441275447283035228349323286935600359848369585117515066846107346111589530832629555136348944326069705102902414560332641309088455292699471134650663907593695175535560093165694247158975023182048863859653733990017301045970763515313690869840701958467343110206731024814818110713274066137145601156130863073791163938070061368741958984096066042336023107928102111449486612416738842369509981534165284378243996580954657890908019396666586357251874080076332155127655185893142916273271920538260071008515726476511915333585117220766250101712448431620972349246292755878104209569617285198086302872596256143598144170513856985243919709420974131383386005149140152447209481252119581319326836506809133149006828188234063582244640610704682202345647691165607761394420021383668426901267885227885636651739246769090395520684852600325882937972178645523145997134276560936981374200788580452758384284603185257483831573055837213868834520225669468450251282637373813548497250843739375420038499378161319813384040798366582769250006880421421666636928646848636304991754030805424924968682365221760888552417356981718508973006972407336753441168509259836395818407218974779370303242770305707060471122842549100873099410427476406235038892869683589023748773049105160474940952816834109980569280199917483862054138341406016356254392375338301799388225223335038762600870169543908014332138158142080776500932686170304944664089989210768270805179415504043353622989822191455481260184948182168022740767633129209285714311599825778564224160980520229265208476841100004365448008450032265768257547956901742677093313683079742830457786321554245557826583183253493892517151633147403084845094132321814618335403281548269096836802270665946069975596249317363426108315442761509968048973565970077588979500604055991518717182056179790816266355589176724555483276924284624654211110945319329777603011407609600614872025499790047308138605149925291918421587597896831938067507738612731307394278791829806718050998270066577853087024770286430374617766864834953621902353700810080114166248057180983918694935717265088770112059279445658486298417790559948489136622524569943017194080214039007821678935711131712909995499651440777292197386138619249525546786304500227494113353516473044481879996498999145468679257455396903452139829044064782016927406527337442830610326321196636215684880847493143569236580971220480321748801870225800766279140392225036077734594700342136115490181583631439410603754553605626490107353820537880719643581832538772164956842761781424382596168808827850015303189994651736890928208827538110321718666866594144189674738433846337876871844027914197121932991303873789666594674199141669209877649762177071247491406110966360665708807343475616196677847606771644296611505004167196328897332356715184100079080018846979965319591490831908220511907578983031109388334524107278300739112980873532997101716360838592448886398653043433694978652874179898267284377509775757372938285755059510210013544641083582424286740518935445938356756864470540446372841293404243108739774765932703642228942704695679414451087405828770309911917612074253025399183806061876164226516960337112899841110583134557441323837698535255191079548249551588739692701971959810287571752887131211463049768840997066688454828320736481084047420557086151382306130755146892319011787682789232000719148009473158012235496853972902822420177415918861673213246412808554070589812871884999499047844118336244032325700791487301352859519367878502623088785483424363936836464168181753234904307818088691885050675627436654717256349201634982918271052198845794138137815002169997590868355599289877630410501685855547258929883145414283636583718082802982256871616311489690872258027792964901239806723372223600620571303221614867181343322057997860897865327239809259115110996025089468088987882665212212890071731828823411349434191109556869385752669430187296857827689237350902165738256803924880665281154593168768550817720755519163231046422281614680851264198992888100628349472128748683992281968575610960174274464788445145482313712608157293837644234870205032116005256012089476685488330207251122313068693369094335572466510388837881983323427138171393528676917730509405079272313949448890476302152602157832237551131396117101949574115539037750510095264385925418962703900446827530404329882813570776427559955744076436401154641888675969925618591239768984354859609408015676739153911822805188009841841019830175128243976398827984204933148257151774725216877768777464549942952720938822328260800070052262048628868204544402480840048381394780660599250383783601672030699761904949991214327449261086972904154301325682244566033420205941651457871240466542462187176541166883902291524303625705517867462663322571560671451466895529919277868642015604505634748643704497016678152309487323128177174695450467030018318431139946617727001274532838963817259625064678424882390386200741699743532884796135853902269032958785946853722546598583080557886091420361500983441813712628381926203718130315984869486008192719920389792316275630082205638443446682732444957991028838950348118971582075287977716285340478129506960931727224142366866358516229861290652382202312068170858876230437775374483354972406553718232973642599153467987773375649391365573822037944521635534462257158087583491328829371271450012013900408556522191831011928964289881650369710751630322694160148007888359530644386671666473644128757315391401135484369825889781247195427289675949220188657794260358224066909060706890920926081971143933620507340775290537359858394703175809459916000157925045140519105193890412556391803414277260811116712032161553000818827941569610847479461860172553500539457095432949409708425748598396655921318259304175493926094256890326848366903165950706099652175398799003748113448895309204530953833788618359547478512256027915551577270940630344068176886309993975383484465643216469589840396990294960508710025173759164432180731372436375408437314760628840028872292902224490911018501626536841788706497357968301637429091450080945908422613217646482158299088177013987215364760565432778297772920102797818962488729529862645606131996940828201379396813306834518657827996085864029370092291193219319801900740715290812031675912497801876963188586348930278351517121945051210344000950535413748100496883880209103766085403188033466089107248302063545871537313268081722630261794715971285404346041770217739711872156168344906708446837850911758773535951933615326355563104309187419034769303878638561498880500244393790591615671712211749094249351915979777992604610254192714988929635040897452961807440066177940930306935481384120912431597935702029820202674702919519686847042292346650236855043581298432121041103559610524794948517295762095466028128232801630024464700306857330916630959233550860514474197515013714869213718730278536968119091231771211409758222699833556038374301259906581684655532691252450719613409828393869445690399655293576853240983086946366587382573571025790921960273778034405263901181732060992214472579833983714532206062347295691973155435447555365147619783534029405265961894167896663449091787238214559726373480393871928644992477281131974695767582280520494844008190010902902753489855687892407230373349452425689074844071287942874901994368207996460181777422440915453069324756539458479472423561546139558019796610605014318509867773506735363019374173171922055832230060711995480848997747776109297528439115817645483501920534984900993461855019279384396156007814555387819944493226144093981258885195936136837629950333300543194981073980286501068552455362261385594826004785545987709834817227864024815791774786399032815676824753105733007489879359156705449040031101655204732927528024068590233357242269545896885256482877922347184894540951711411276728886599886189769773989012139947378467162018714958358620925869496771718204241436944358716833384951932817887836026350171728955896191339364931067025521177477337783281755699840120722364384725170350334392355763691205531471302991746296178159578965526220353022606407231593037118008577432261861155385343269980158169504158558384509772773483062824147918833257498822417126297716151164967940079541325001177358919281467026588045837591486858639470650457347368678790876453854863396099908989205729186560121538874447502325713540297907941636506672826539875148843422804907247178823379162949808287921629256182370021128878953962260669453875767600378327928072493237835157576793474837140829774232670508916111360618720529132945358085103146472713156914312757173606695280437570460702419212424934992014887567565199345988581669323609322201560356082399802806558711639789026578404684170703549600127347297392181862501693041091491162000511747473199686254941276419566179170417712370060400117682442309132443862653182382868018077363663114607373296139123180361493578439196472493706125085167872870336008633368709650987397528567970625034336572610171873937440678194459711669369822747472466411520025690164268504541732258322280815382901252338396061488497720799591830106650128021693816789435930454595119500199914247500489951110044678719044981073572460558308639203363090319017959692720844899628101836659873341196662671175625343042089384568210932367100802934157634131997279830015347444170969585586263126798362415666989046771547489722136103312711484030719999817849896255956878799397715743539945949310882401375733534756511665237966701624137825964456028656496441373071941946096574498530190312444446482128054190767775358316336175597967631872006820168507061493989732970941723673514835094645282054702369526001633256152281819719518741320608003785155784209000610608657993880142386028425395096764851124904137208964221424535236249034756992023274199238842878243722929459362434840361303852920565712453506217812156515572019968695911000100820658484795055531186393617544313741209414906173252235729364801304307357704500759719777087021116199841827899526581116334174758884656202801624945395814559319431472155942954944705313020363158064829422075958912815510051561530937756240147315226677648057086549270255204427226876471854636865612973847640349437960376675477837520917280082343207619018675469586059537879528924765740384595752241290603663500164615175097988602082972484583498395188092282816570593689337074975658042961069210609326520138781476264292099150508790013233103222449275198488886812692837174086603795484219447125586427058438325299392682790078335985840721886450778751044340007195473584079583957357990360881631544349091160672888196798106990948327571184791615240054896849288394447161744077243706152167490942792424972333840252215374780317825754834945452190154379351684212529964159282029861241473699570072144195355325205650323507495733226902133642674091620260389096343051076404419383347767547569703175489975385249836241201138788329823578544174085788883580241383448600120831587072530938942549718077030003029876245058636984641854878626937902166670021959771118705270597550755606647683855681989253800982519384692103163959673067276067717669927825536662742930389324855738837942234502111415935655857670393740723219895560435921982219686032602360460608526791067852905295971275509947538724007282861320351588136107105854600523378492807954144892792739553656883806029876804594268717657918917729961064877037258866473645125505390642866487696939240525266454408570215269404472353619054015566631512485324911333154088701988690592187596268593703632654321872321633884302313222107353275116159667757861398143767583900152366634081315914333150710308124613744806398907748617977844385815662228863023816303286995117429091393040246932559411938779197087320225383487275194683808033021291340911851153621918792036554684151870303306993732317105266822339854241920225591099611469728246843718374586251965515938616365046478111876521696694498902865959188249625486955118704655173939073379768486358491731764514667983772992573843909668774277824188971280014168641912137383128774858243983058482100262184227934461627267352477900864367925919794346836800790144185523278631793747938533419411893784976093409552010819584123131479332463279350487024067782569440993372365784484881957481012782685025372805902199110790855737819755767120752323675889538794547582161900916941416835266879031582783666498066518189527715319370862774760842699287355275508293032910711550800852558944327885184529721627417180531643505273926306438228279227320630277290301538515424455812428362384931692075354790950250051437737086669605411179676847701986527314934251971566881373112609609462393405561559719931601641674659074296896240610341645743974541841963848907015552173887253829926122444935598471465579990592367509049255826557597998557017220022593776529142486016701702119546687867043125980518796794571029966598815661179357481718488187517861657132938302634511310881407305344485462219130890670156827524020294804410486691941135051810450278922534101855253774567415845355874175136939589839109930158206378117282772710842346661037730284582624844391331330527347608718311758607378340041579263600971700878185691092961846381348044421602069881427244972748455857181063580162002950114563609829465034631871271764368848101651487197433704874666548975399616920169099115678746173874537667822364133056123402986465295458931514088028471516408062975567902527253995932164028991773830741983880556196841037089904783464314668637026014693531865795193493443577085989360351556585830892949873145672892715335979898107236568118847753611075876706735979734618850946108364541740298600407314594390229321281287317675888483996045158570082473386891424346454214021589868498711630332278422858080946306145856258414287495358537777875158804765363882024236395700999250182148006994008289518133348539862842032148240114233820731304893824255949504975409163058549656752105394019698861293992822239583414737874595762524757168498848468885730594373310830557625379451691575114317835598452752550982684457719329807839496324816072284783182420695276728419782307796645542507125713051777104299099139296510407735092993675946614336414303853447667655162890156018513771685688937917820391091914952132637998881946327399733056684131285052304119812989179188502290370003086238539528707244928702837611253813843085018623268214815417566226736968706981498273140923975310636344888670957460458861730104876459186287160473849428011941546035511919621001630652174012611973017025183240257290152171550424295423031891385056032222249810495948589690538756279037968773378595681255826597164774444123200987265646733389562713517130132821052789652838584522594272700488016636803828564531450023331336878005819240297531125705351485126768612517631444589013695951135718716901969972545197350819521140600178215852282479669342620604827229646748598779242245985790194075067712343100533198852862699926657343793725357281677500212826984439465468654832176039797484258155461283270813682230026370969535411369670740728915927595645480337766781443484946402531133188895000029412908172663014600947132982258881931675573885030920608945574732360344981511196042841216522007081979425210893921496589668594059297043399969536156146843630772629492275024811635609113431510026653981884353289392218001274270324586469975304023100760563128702076764227550738791294341500069394529007881138919350684767116120866809916755356947144572989267331750700532597468770708466152549545888908801824181486393220282358749507324842112740760410490548936570869381047055467433007161711150340070528302894993046139783831287677520720075184488370416384084344252158828912197247193852372543486738219170479953634399365125645937089557230939258011103438370379919670543911838158781107992801009316531732172116957539284172336909592840893952932825455428407817169117760638283655657239776120137330861690520975011882169594455906974060130923678610529602450978498101948754160659179399789081045094293429251489988880730626195195655370744687337186572922533323263067562761405878029084693139178987345414733966875303667190900764692716300023778500151961923838061725436712664110840802420025344121100195576278355536646627765040681572850877255842777331087310559870607888234333850017385402783800229673949711547624140147523932448612401250246421564642889286247951243564339293200399291133571548105655327940114348887915457297245968747754918990570556974471487147876672644636200937756222168123837608089065726878170638414055258825676411880941582834137470320989034520639071052987306973025819661236608987888585327636010122815098598779974580642694384379854865036386569501950043403568608852527111972743654435190751592367411224381671396052264470361942061748705927392360705784027367867441250405612243727256601211131460424568831883610183985275313505459437765526394105419765020228758023490584479770083203906261908910693932723759620490570606777183957465036970943816559496397310245568578956592145489707302514591022496073319804411565751346499284490939363769729621763039323417504253713259864951396073849118230476508762771282093837188866632655256046037213091399093551566266099727346053379904602024820240689782218411505697387877554199344721211240787375993842346002589318221552658605343883038702873612853081063028896945291755005633724497203443671251072544014775244508911794430892063769049124977472669219467087239182648958549618630557471885269758852982550673615413005613579121929275910050763221221037129067230899332142324915314090194883254043293624874331084137610726497930382370835769837096591108037229408827656754776398383167494469974220568455749006214288406902990443427063462530303302337570931636916652296836952975065537402779580580185191815380368370758178549105184683486791700343260975279907009743070422476135868221107875517090939701424421281307301314631230556226069885235154783533478035109364242619498729509807571939080021526745807123294420259739302455176944883878827592035997664108656088451637953174601425848327831812749342041059148813943965765658630590370386523366055862879667408493375505040059304621196460612031287124284261704429827913647433454722470548281950608874154856346799727888951929279247036967832907091919027613017339372229570816019527459493706537461533560410235861248407372547164974378769493818813428851600175398449747388592991805461836789379768629860096304035249831206142149463808265069167446378419285840672539164590500458969966349255640383299542136107813005488195774406708338652431152790321255517471457624545065446195116695961035564976037456729240690363590366153285426005217342765845155584040158299854720278165137678814700819827131882429934936813069696954659615238387844452514170427205990451575675440862326745700957762252799400929096596276770591582805256954435312644384559417485824427354156673735807078047393486687872609960344462241197996862438495806024170104779271123113971718186068425091568343480969264385465963850121921490399229166231321991295283206768857442935152275434794155678298897888177132523502991762971495650850236512965037132983922364391415982935351915453167614104304286598454711714153514976841070635444717241186359576123858159761207159913325854972860291336157021106722272815542787707851551546409065935647844750706082057174157898243854573874557912369195925171837228434568975562634128562039120521242019748405143067384364910977108864883362291091796624880249306345113521789682813734026187078623348937031256233886028617122962708302318911643582862751098518488833404765421127929399614250707370121781303156254441944990212353630137442690705832090588838736048863787782113743909718198898127728221263472589647691676287553609785874438941453600662669338562501521160591337411935147052350776762439612027443388025601890275381403114063631683195049546351834592163969142704435280312938434200240263977692324910969301769503444151854488298058086563756888072624530006135934914643981903934030319729458410975786884810634158718006604208427964899701802273941957914145980136340475481215143412778848833612693612955295934369371456045373871514971751061061105592582652270820124192242521633632694323762181049998385572132730036816755304481404977193537520635981798434007622458869492547073423686120732783417893797054041533345747447912773700836926105543472483851576212622097227468707845216498618666803585177269077912924236447600100958674255150986309658018137734883563584347742818733675449417027304448201124753943738813322486489322824604430583530361077293407705101297991075206941731176791617820768970175871392765405232972260822748101422867188839562785149051569665625455675156214301461172115764695289060083093359721085660016550622865732628524514512777300060891022011746312321072113075064706715380955980196626416127067139143971792564206758121088961866690042189806354958606222588680733937997297327035619655637856553619380934872620777147143113781106043904034690427427786948864955755018824037356414520425101308637253278695189338104115736502008107224119010675376538043235350582568279816377891621779793733530892204400838706220631785826209114274401168838403687208123774264118988555615061773849040295323306923854890606705545446236485427271592513156322469267212904544788329391655263178449967170868275430338292356045521486142337914456724183769803467104246995894319104561630540037199968622448547012419606601065734006888101640976195344883578298371160621688080587506212971855934369680447320961837486819570886504886224270371387845961263207332043361116294599038578210905602441170516014228908416483176207778318132075174242303830140483766692421617634620849437341351420637170811762293358465697908992594365419614635204135896355759793743838211134779329142308742060539074648988689518544001415391322732335827089848492591873309894510743141251142988340918354815162658955760097847784827050261668949012447313304171852271110061088881540983205151229562461549127869967480346501335505576891223276679840659109552643699654370668444285552230054418368588103238314952419802441360805591645339733084949175525806987135445994227718290292151420188089904316112983900444361280159426515851516900316491197571266757196530168135275216626496474477995513106003665311489165461935329843129744584096826042650262021502070601540161520784139300875085861993954197599304265458071627241356551522886559126248846026249615111054916140915794460801775540908862390680702140887131518166737695966160632541000101623609288656804489499489064194429415091889809423261258970139882528730410029899799534258067848034888842659000530179414683333310822528448838020987155559386147356839219497860663107432261302851528873338560008706471062933081351114102059342183459421258598028195124695937422810346758744136280778635095579201675247743047387197652587375213089454640244605206176240526531506134744347091360618692312776393780122772037731279133239750410602711888760467203533697784405996020089419793381640806967185060134104447858659249689536283079885416360453701749525431935058153401720133475376098498138603071686768648788229139441683973313112580723036833860444780886229720048973074402115973631825880093011325417811164975999801008676363655305084230076062007333169287354441420563236545184730373324214767553184759030324009874150314963665362794384617206429864895001913727061288000359289559235302661501329094795123011296614680486335377071476235573756603446941433151289824460484053305131446942245790405201681636945217104992951232946063571346069738234753138018957812819281662258858827355429351456997184765201415336293195245921530992628877278363390495118075946411488347467398577182362844836147848809937609528422729299652577544252101036509209013599174201384091078200819188521586630070539128370602812641738412682920909706474431021887826887208925814397445118472778976097732572174390287413331267432277061204964872855084600610906001318591467526928323232881375709650940238758889401147911379371800351944827464951479065163535306540832249869683338818554039095542134309356967458451652474296564196187373692437986895263350414793927443971129175445349533864899420321671995734486461887633687230146974383198739166731834249685178378834832080115794326714165689166672805663916630902441763484686792058233848122174772457499462500791457030444919816548102534702649138821774734389068076249685462905819115507173730446058619153160081421676682965004058759380073463828097017475950526236422791895546555190372330940973605931357269436193406754666569913301379887153445187859820172965008948005815311985048169895836934277471441780656545252626828015950617932506243916324936664239856202162039695659237944939223340403134939391468527910224096683217714068180155288417421023721203873241107409874710028317609357750379880515782436728214169648584070289173803305976207429304972316529229313062907825755670672192013025300644805535751260609608068113220753406322116483056396334680997657943829965949211734112727559576284948062183595255837070216675315028939397367575771588138104418896615046315109453771071387484877737018279469477664903270225351072406122629536057882437207407365089012861166956192570234879872265392172596905370934229683154008970710201534860378247390866708479751722184389779750177997152348561686300961391077009002138470800407472627948461526841186163631273066554691476263555111589215823237157146039185662894284388230573189232430608518125318650388737871650705802770066333219496131896173357430022812752199254141696146288033224135596685028507729246955372992237430527184502738590085721877041553549226261845257398469223471670249037584416645836706450136491059859258480848752830275169413360074364554143208494283108295912298683164501465402774185578624802124004746761954951669501493371145795645039481459463261239326232317414273931585056109591435406558909721061815255380655492283544967643052054725037522391876019008940573190776959538972886396255681752475606902181906506508650541802232654776174588977485779315364936791212440606003034896219280986903833543299146076848968825300438776730363836071876992825900512459727633471566742109096416874388777790330359641053826282795681210582097571652942037960161635121854244829494249428494991467302682972731887756199579049972914214895033365545320239580360129807484854633492037681414054199021618134420681464353636457542639098794783990438884479189807112035880752731413610896897666965787885666838772594154513382772960017845400169595714214153766207198499930254067987607554871572121842979768078915601723231358870226872444945915636161090089010793248017520575027997427727403268260850670052380654893991552467223900837304888713094249619656764200886172612153191690277748887244121172788925283657668742154060444498785920659815912036678834228107155867342415608366284701308303471242341958850928843815768677738464474648359988008841200897787903814951320194217395179237576227869833490249550282006740589822568849492004763266919540327429559233015136161880081573991252157829724396285645820799388527676842792887845138892188981117757209889971859919319986224060361483258556439491016218500956124671000065548104556783642405534762434513375879979317005188642683227899548226579497286274410897856461290020249698138095237613060730312443308121529172765417175082573802597863243395361640331105588272195191227414490270672908752238576594056200412334359445093629800467280869047769706063509423665355517387388454985035373865696261078144189087720367488734077749830855223356865006876050584046988794250948872857916308460357879193544050851102218033821725199684144501118912348073614000111681937535932289208935680964992901265377965712673161302996061808727328546461195687224978110185359027997863067044470396542402307372050144793844685592530788831722297367484118979199828388117813424759009635694884782043630315347438393011162530940125603141505763068216076249663152578755196135666193070440804905055076112205513547448177651853090308630172069139629316754181937477329847012251689432632381716921035179453372556258538857076877058367318095133557537445964242285083078026332312945297183612789868485672055085143307537048901831569495952646854491780736950812659805579856608390291634166375106064404707484672230374584146206804127758194107775283406427868285121373007724760749275568761842712127241655553748412405373619446903993232004309719391519143792668508341905183000137374014741099103070346460730011420531668603313990229645521703422949815684692546013777794718888945763307606429046381672169648556481095512687358205215989087103110714439577508526083217608815154790330671227784602467181290702967445744967394095047825405436480634908477779242999632470038768460074128238302894828591464032421230470816413240122049940454250494926871011839226351789953965202289650540184957931913714630777962156698630017508302559289250610137545590230592333033261187331264642254652093375975930893524519247011128869470638129560477299964572813660220247500413721195371561600876258565813174266814579990313959566189868128291910714722755176417961245270799885317585926023051787284102040412900275138268608053256079875010680757708482409154001789082728121571591104322479570468187070459576183842195194254605442483936991432705726856927986883881189644729293870307568302509535986430753577132698654308176182920215314127147052259309081617922755164386048285497321317385021337505447478163723746031937298366134996636348445320680032119886076000621185479283581748895399692296514398340510931757093764225226615280139154794444355117211767850473893715563727795538410932416091004115543162692409386646094270824290605074634748982537888205444161958041291296116663740056620041359998487940920777581759307062466600484054025967409268117652518621050649036886862587250226970382537751249911561599009263010209868308829259349500413998439007100454966968093006847354226351140015663847829949538073155119048983821940251943032790083288116052047287114641853000695654991350555880305385445478698676971663569036153566260824579262802790482214716216299737548946133278641497160935570733910233098813074079807002311393129874744011627916602220389524855762777020716719581929818989473069221630451838246620766791474599308006783154961125948194361707589549939835171230865822568916530304653965722464049027020296046160937435007583189743105151349295091807116487217275466908893342594705106601145474366661510918788860450265644564293879575717468220403489799837633289700428757684260722744615414046400846581039674774890972573865806804497282599913399995030745604395657243322220725155749844314546812745268883633425745517404196487127971075259868459929252803566650653837825595189764932142228720148054512586164187979186909797226184007766094002609146793870327201218471719975928096354087516404093340103501027121784175554058590642443801834906159679154704407784598566001593081398756112052896312868922316613593631938947698398285884956498851737423528209132892903835915361191548487956765110256757750410531997245260251077100847672699673868845883083607806710625328897881748912256269805393888075335040050685372265968253397699798176531079650017154427212859352973681782669806694346730631363547954182508992890579933727767720638154763957948764831656356695307287364272359763545760348317566611006310972654266510625673366515226840126896653970477815609247027460407045228868662560454667667657331153466764250354018154812799025702504705316382163629310952749699354777419435245004633341533499559624342045384512560831548192009552149584826076201918391735739860352141871302303102680403096787969503210078634973450354612879728526244042688196470782869824880603450904079530679449286556833282039013642973406720962418003476372967755884864423212252979667922424921369648623313098388963466754823237091288838781417245864692321117090839352658992540949847726502890380448157221860078706407316049946233264659964998334521076818703675582333601513879029786183864639859103962576239146344849023440473821173388151435395106775185631450402161577894074421783075849632566843301781822238052047728256602093976154473592272149802010155208695739620657759950252410922894712805344584864497897783754518786406975399122599445731792349678049498776428396518939308883253181048640423704489696034204740653912039520781438526877574176019238207492015218528801452917032846259483148904944949559987816752690573837435419764640842803860960199253911229166578133046257831829635286422671210355339180064489123535459812954109119809643472299953659996382438730308493272452513397663079263013755501354854151351521046386562477038586951296986137827025432181365438285009003554912984661011126955904954122850640710889041791820060512334590212647702998119965709106089024312681788062852755845690580321308996439168362369919034133327450985854934282580922637407561917783411006990573998943535468647055957681911347236583897311653423792777966569930334861993443893350273648471925000466534652089189601153156902955334091704434112773386512448939898424278111128522072857902831447782941009548086041292030002792925901132967923853086001284200372834953345241891285950818807069668640961600112174693183910539969798509715606191126907667046796762825197580442928413404414027069928195903427224271792408809771339698059088201470610097892853977955367217286816915627054511376455911247427358277463667572250681526394661485990290191632070794534509814958901054204264774752864942458938437513395288126289864001990978474156134178474404270397321039498124889267256871838186740829510515657881330082852294674737952061746718832613426034100354494901006584602137230337784231176353882640623647447716425728043539053864090741848921146142202188294799527133356051676913532750021729979811791396701438722292092067526227727868182878874550621738753916065179140256084772974141791326660688719940900007765807554252716018381930641874509854304477853204324659837906186364058414776787322015132105102616844012312052488546810224290489019774056040762941265884427720859995923310999327207194505409280892349867871108368977050271760051203632474653443200904408339444362754529509790159302211897081990227661310874219465438236640753332836460590100733535547100906766694580303517077176902284149027782831448395504613875307375293821979082228347531334291280166880606473876362853715527830025308313543326408368602027732883585072645508418766034317720693511612647747872958452580028987427282461075229388942898329155871022184137947602401740320237892672641054860141954602508405605208988065988494238114170182812298239556231662402164119498184801998594824173256962491101758965035022812679512843376416079175420018406991100575172031065579207979500545966731966528786001904277510469194524572427192466898151460347804193396103851823278496816008668156190752610710645418283354830111215828832899324885468387013841789973190316271890502956885651685679502982061278795447813853702512729907543611626030322055908522091536001352386101289760843022869147672926546631918702705425645475490992435041824457940239407986843214897006800536972385298661970530353909100740539158974539017310006297704715588420474820115455116061380658245291151016836844465301039190705200595959048128722314538464420042666393588125089917353964754356869867331881694169009602193138190489559444386858278024163427954060872082453570783571948984049826175328242749124370409420486838386708758980468443008262731175005012066258882840127144606882091728792222620497272267494451057423784238067279797467147166259544320593171191545189608819808799129304380378416717091166657822877674395552745053816101768670381951504483772482885059276809210105847192531195787621364909160395653645673197029976284023514303988657095714973444373437134044281359286827809636227650535548169718996496626382517229456240349921019530285709192088529348435626136681140005212422717162698586565755186923465676769309524989303903085254116441732015214382421391630147944897258208380144792368781074622038547506425958421394514629603872685656263737242646719678956891700943627347570173941297809626099785197829663431626313630071476229212800156213831176190340190754441411710700541725833235925672398422522503859191398088968516328419342912316254771399974375692745744536235736159104464573260748252668179816392785117616389377481188968182420222828903056802685010829916012783957143930930378482684448839651340266015714344009874845678598510077220315438147202904341234904584010128395844176084759530407346931335106565307496275899097106281113654831434751581195081444578465469490612665918659736191190637198852120894681482819789728931296835637071628245396373079095055421988268718912599178269764679650679375355747050722116988423663454348809441651132443090322437353316294413656012066703226143193035297572218666090850747512801164751856193867284288488837690956847863474280196672908891704732484203784483837865108917895070261323934995138134803515620380189919329841698239132685453676867920989836738691721214221466693246805286757964951068209443483245268788969529121044123918130662019864003410835048006085138906855003307104672862805502037075865970481789313517508510741109430865658732825202590741631018868577858343252226675931035328362237848210409093205744651255457331664188337029002345122808174351926261657411825382974432241021178413542586474649609978778808533733367800997047443299065164048291925365787108154521278624108399215711231260861656000172625827953734967175938502738484544366093858692374600460121449537421490285755289050864660153483817375508805429201595120228700727061655187553414157090425931215587568420853125078501603072791284083517274790732818008956147184371351978335324844081070240424855326204280621185729665017734731491674807693535034803406389767820601043184013006694179713345426956808572910936008865505826431025312593175166642740323249437901436597782690022141238902761032577348645252931515699748715692240645211842649118376196370193674088242209367998107451424773978122173367722339158199631846707529156622770457006151521295527592540854464299106373717739152387948681598539629346696954420311854566553263537472593594613072121702477663778620713872252732749741394913112386536543779478923246273490710794573825272601581374308612944538870170694055099632257082591379990492092694302225617620934615435760353190360109560084053867771201421858504995661242402070882402487767948587246745839256019422958437278479264682505532818633560343362972565799508971830856321980356618057821659839121334282550463885028552330516137198966714781659761890211251311742090496621725617671181853756239366814585233593391577581646214779675078582394735481487966787882484835523069350482682604262985858978975613473185891176262358576372888433056858595560233356355018400821633048129043788878457313382961592633060391409674654388508561958167541779158830725457326979036788234925227678257715811399698198416844352209064591295285525439131489062441200426135754514187656951254461450366017608515252823656472041505482518675618984576419332266417891378966660834107707881618832925290419010446487838615756344795371627132938942523933995548537807326275875138309687085058734250532511092053499604505956249091929482818959810264050505794385761788608690126159206372218519300255930580098031606678287062700406370384774883734096710573995613699118878611918433244159570939241155790454738353882439253552188951834884925789826810694793388709069315804658694529574186797553656276640496245184612622275881283483118000870212887685897215859735684293876676107710852418656039115008664992009985362514162712171176336821374410920642317128686538277986084066287195487019229739326082801173223172029612440522436311099456469200058201079305642333333733829018643695886019917976062536784567051427233181452094099227947542539980917687782914712723415694778073632264570855149602598039101890598486069652624470195018244397432795661325063929144593552886554932239643812083388398385499084244298031620557133330355598770029861222935755216324592532420682938123940178100089207790438277832342004831863906811091097731581524306028438117255370837176952611260593778087466881898770694599281745884327656025484066512646643208759058201801408133096138417997957930395398441848187216462890542588983031697502218919493368410790176759258616947794160153093947220580397128703126324598002332684199134477764550807999112342005688242009848788617863607706919825638018952165748044148547841235796602519425536254794697052045979562310486290878060772555004405550322493075318739180938667172347114554319264901546612557804579867189074273253430613918743982892439481010334443697613691927962574700406872051321049067781791634001631844297256601936952955757174052988395359299869221152087577704582134867360968584739826037584583738738614235671443713272460399500236804400544041902583501778395566584772328976911175198280925002614322696730787708598660758322682099883580008568410504910836795455263907393627817530603195726459297464947072013928345931380613960007864221392522207509226128843944680877110468468923011563979323674429974069884243000189873452634954462325975113571319472158470477202939126321684394489344124572053117707647047424237882803209623773556328160018265164132788950391114358084981243531294238507623496827616070782983625762789080612284561742165456977132541233264260967809952694749760942993171595974785236965893833057566369471048080602668103625342901646372049089880552141297921092792001876524175882849031492757888790617826140289695450553106752727310258021270046965164476835038780524164676607900848403230222355247514259029236941011303094488908498822527525023800157762506939730753378823733847610744992985534183216946223176195583436763565067471881775658818837893744969910769336494065783689806465097514869973360983146673748404272155682711874349145385960996975642159719275287833012158002567800443925783800489218580790749984234126766258335121476683334164679470539152639668715706207269398307037872479936137795287977123589921801651497623446978653935408729910751094264786589098009547648641678593593745624714241409074312942025857183576846678968992409590490012260505577561559130881661471678858710706918564156566959900779653083511684292643207198814584502179678828718108404706321701625550825352077138709653369205568719361460988948522956639062190418711493773009004899066762296460864169712141029904136975266062517555818076260182811107171488512017525252002995530261850744632452034856228551909208056065967060706571563383253133462560096905907382017461427165657936634464400552970880297303288472525542472538392778814963560905934445217977347259233736663029330050260972203116883774136007129606016183886988865473753583011910109770558943852296038790463338353868545053915220255609387593727565765637727789425763211463745162104679761546453030968993682784835197199900642028408799100639384318968905670760306617710836032139347007141721837755506327677863275411229810838191274812097523229512233680457674477362574413287297830170475103110674159188118090540497754764376156319158801544699206238664323752033450826511625261482493926354013005838486044621197493497953027194968598096473142547426221138033625574561737943081765159762501063871544080189804734796358686357796923212215033025860115279521307004060705861953527874976074014758340564359495625321088217826188097127479877878541316141426355440236846999649109969403785440653953786693666847593579471915722683612703659328917005065568532732708523340674993460658258454185942174563089356992290751178060742159833249386094598010056219055667513615534946586202865046484222246433092519541741168482683740941668924808159073516370540357340608037454883615327995457796974240786062825728048028822208789271877528384213894232968711842242842432502602651444690916534689913915209910235722073068861483524866853489388823015449313993260198380400345988502590635036746652955201952518720060519547540306640465097776253200881297009129003468592230426101511581593063424582097144313117331124285422394131698330127524161699636703885272041754756512457743559670173496909391992064694459155030706331032218102159724361416668054436668686493456966684860091821200695127056609432864669340367512464254013683477586877221997185551195264009633120543473130643218396271872597726183839524964831418901724398771541666870589396650332769876383092995403655860316839613368055035327569267557183975311141612604189870715504534331030504950436118652773087022970573254821412488842084319425079413611460051697141338532911161173915533588009146211446276573153021742015714308176583813606937108803338416163912414882700912406750378492759153785498110453793901478518979331013195407323514986581738294232982688804352878029531244717708034029950876353876840850043715719137995353796701521797485261654729886481769859152047314590029082363781067297996009626748883947847156290409703173064842125870600008732117123794492724373043263272270019169726102055701188787857848161272759356854899079852981327385045709979486788004114194593312216382401426384817681202686728515506444085077053349548453413118372601927687093455641576275782113327676358795051939804035025880199944372558817173033687144360722924235927133917494404987130088682752242392835403764883525171536806289781165798184908507036129553053121807397989914517561408298802653761605120108529341840830785589540841057976046324215440808021700662214526185777557161856069036634236123345097602969069902449477118058412101185383488243111024090978770293079213452968562979567862597112653909727317688027896654316408922782969479907967546811758946462296584841755457019233755188172080437783583720640661652884259300809378012307315188403688354926710021640726881689489142807985953945681335988619609746461438836077312656717633026922303322841354916445047710538286017649679611407374379939348348805590673864810163758847975413819535370977496953583117704575773828998149521960831690347866968442720826717192262202454879386166254784024803271015641634352679314815574999517839223716448803135133774384762577711952292486404266005191826711535980217401563073497653015281111047515719564116100885550695366215200931786881254101520226849962552557300192355520898298552509507731391258921244082249728794180855328176538660097736357239622252573949524919748881774681695459974552568434579120284447707881949603880711400117464917786109381179290010990133776569812625967945702401035455948631211100806118064460150113390031356442204435707843534391796789008900912942620613471821384917433685304578864921397854678539017804287200603439307906450567226527589586439340944637914389244473307340238048274858204496197753742991382044699013426663434785723960555089669442390110567875960956168233901033626532222422847669327757559260163384240703047010642239329102029653759213253675734574446326762631620209288771988068332594174149688900678076012662738611465024261561755122751702674335246925929351676495802437561668447886556277252594353343352106929516525126041447762570360414959665367172435289807579756549804980126806646620352151253782640966617033112253792577882403354867902751659267337616554090170940429694854795483794076625571294407219217646744447636098944860985024913883555271331858548136561444228135939654280815601223236486087024215363939854993110589583853978798102087044125840285386743511814098228848335838081167067579633287956781693490721149833686596000862818947373419613319024750769750529865746785888975778420560365414811684633200708460554734540511608109166220646594279630747840329212007716164358934094253130247279723070399704503995182636658154955890201306708698760062628650248849222287119204972027973891990230458405657306975153632140509189577020185939164901789112976916907638350932495779660977200437930057839027451990436114211651762775517718805544909501905962925803624528893204922671601859375210917988038930482427047857204741274484608356685638478337851651902454539722919905869577227500846019353417167607329921979643805307889340713032855291518796900142422656898509950115590150116012055513037443104603377062384775370477829888346892249781950056771951660635884121411995575249303811201660481385035468379847404932879434836693719228797463212388871489222295149647296056513252706423624814344236665007684445398839634689271623930789726994064336481291921410043347036676016257495656516201935603387052960131789904005811843631986247187563643128154271471725228992907179886825305811882521071616522312246354974603753386095923817153760341811927154843417807975045213503399919548333670524846036536958355748165039840123155719005919532661617572098686159979883170348299475101908902039063214878845522978567925245523515049252577346903101413811198034740458452382560197978451652628113995879603185035412379081202648938599181649896664430689234347812343189707891260371860241050464888212923201442046462461943812358062083430797420099880380000060359922634725663622940666470052126121819751896754015071930735210728829011428766823298407446739059023720951521757185023839987692413402977447100874556949107626833476036628062313639478711158610844674050022802713004726588070610358899100224021697808198219738394739406475222214204870859949419381551056083697933409824813697637894659146695323014807563519293000466184160755872941123089382819741380335278100858061630638427191408480100724188795417275946573796885550972364971229901755897868993023302933744747545432574747617681561368119873509669729197828615527687585636456785769441351884240073809417368647350896490973962444719864675536202577185221928729649405382084860926945845037295672542509529306609953539683902956820003197785836217439993721952720614870734764600654413822839380378741744192458671697451618605983279351251807078325836746827748482803997489042576019451188158037334030934021918841913153150272955238263177053190862847912704218458378200003119722808299212413743675897643975130906147747141170242843378943752744014019212397465020028710965747520026982362595135847919446249372885831665043660047919322598980825367760730175986134691469469111261764976057176954159952994304303158556508565272163749482503907793026036669245527931302716763623583194919390570663327474136112350031277638057162507186144252406572624379556989336068630252714384156398961126108526435978361196357565267396349648809285990962972095578361740521335538268668649124025071478750497898737539098544943771952014550669659247743976936388426954560543420387249295494244797558260864543445124805869726892436446276774597619869382168574043312642431551746297586904207005640530411101488018474807841701954365912068020491049021669504455420382608865303256023584466710491803548427840409192083423111320813956952776210504466689291430723754060468935749817996064407257491832446455666782802150304234338135684349581752867060409016059163688824054875048493687556187966000989820624011252227350560292891839525156501485080416384147939979192628859266687368643020389997131964510201074471240191870208303592488974000729074611308203294794563976939628310081594889594688738306411396264266312632642064046843247686155104514963341100349518887902663607549186813629171955992750095635109384011351704441541557523282562482814974428511109394442154010819362858366793058742631456844260709189916456416641429496107084724893673072287164253224250346984095301067223042548667731114213020190760497059102466447735448134246112942309676996245916225922939891196726784594240570555869929598710522475096034546162342270663431259305751921803099144183159627071298598880412170085445786248395219986134608795454639847237180785486496728748295322570178108153639225265066943771454614498906909770587962370969518693190462059868649249705332744998048533060973808527037545736242123050661763026143322518277558109448105903564863083970094244808148495555070123048456802002903903434129928603325237800255701588744644450931181986577514102881815110431659191532490472872936268554067494948059284999033997432388688486001587811953949777698332801466732308143131296255212005210902473835195531553958457061091477588852077525789697333701125211142020032167667417014434635908629921035905437885930073566740310887175219456341579220959461193841569312114877343917319224836335036916323747642921736167529974171743093907349767091519134632639415064664566127186848695432039893782153136913441707583899433824881621747316000255937864197332619054794378450410865652436284684015378133463502941903832385001091990013766918342585668816384055243360402932373131719827940554106851531949498380839854011505899896990209002524109530655987263087855062658113024222150407577026967716864414137083302055345088192892953755373057264533149241500070494678102150530177087644834729118379483138670511411990618505943114995040364667861362753521180594328908628644047147820487596818977904766200642835425550151427292245987464740879219868609697213815484126124313953367160110674504010607966764355813897336004122177129304503342203814971779740892613290969353402452978324703381815699091390869028839988819881144477301049063468334304662879558350353938452158532247379551880866568702264739563081530681557081223240110317884947450075853483558926974533935680081891266394262936329182041677399590814752110641987455409179107979263369002390297625969044467245659638668121044582208026966890382578998632986881862090964940092769256446719740068064216431234148014262268453251645584599031799159887493936138330850998546973183878200707346929753390162156945036464159899247752255629494100505791237001584476550940335377501387985019930979554255121153769372497794858717078007233579819873717866240145031598512175370012682576298845893944172317453779876716229155289930644266235625434904650395528520177926532449658192365160703997453485932787085720362448721482269586690661257626103911632251901894956094071916838726157149589534109055427689579233126377844939745685752040482293022590542910392163171789190763738281216728995523671569778024104520245936122263211817220976891089153784970637120262022616910976432144667185290933055191561980012450854085462973297027635630358609203835922933037274357096912592726061842477164725464237159612053199492445558430543905908931487142762810736172146997564424891013013942948588932192999272458742370953961664450247283603467944290003978413637103163064208486944183006805657134199353927595316936568596723730544628533157794498713799046836948207577534362837032078607292300947654182762983411393242683519799948502419382969915620612088517681681774944912872545617280992239971360620824160330073000553725134832150318165968369709833678547955259041460267055742198505373523186763028590602574751055399183137855204635943482984282299884420801982467571091494157685256803753590876003944972473262593810237439697430887645550190957122196639036744835819355573348796995312117949587394960019510735145704737174979315232508049966260483452125124985431783306861815168873928558450438568472702285030271383556327311768960531961208831748177825294957680858305424841129137743055949854897882103687149034615527050494420734821857711776277477138418621018102079343570289273951675687571741308545110986875363310743303197869166508711172116260038705823157293977043731828453708929871163374072940506440278679159753560007455489682313978920818910228934503910941405480648421280986815172778874924395656338460651906546461737106645261625082953128758411359137550603839861490664094462485565597392726362366045186862096142403972323746836319869851752865145327116591343836813940305699743303203491050324587982253542074473220105935331778498099519827450900605584540316833041614011370862301608922535265630534130441246279740559530171310599326440814257744122801831508529580955470492536387038282873175610198648858685099344757376035972594768062598590072830227828411548697347936000840568131729117084248029302225858083604913499376833767271148755389215816781967099580946269323329027514120952459595676586899138866383094056674024481080464996441554664982470749499299799044402453717381327653553444040738307605451736375326189727189650028537927710740983220513386515815497302997472973692071329586103976611253367262368880557603764139880677663033646268860076798639242887754694222469716381684709300413490627617685916955877770376228282530922151461793504684152986110014803414883495379290996074707158253277004946161035554393328083268815099302902874286113791927582434369143027538690814306368027219112201427741529182241695419277746979830881298468326286932170005976275081931679147434589390161344648152864010525838140773143023597464333328158309611980506427982912141995752911055414327047611610745334717935640006552393500590921771458414137585641012544381913725104717813320432162186275697011617907741338085243715212939692959026441704011888735932495303962033230061301873564390922350781791801426695555588396272112219537797907006253799977769556170723705240652283376040174266552631052668194803894305316549801765421538222440787773538658096637046915491717125603070536893301196381489491062150846942922550394816000805699449004821328410472327682354529541510977872856529318000183988598492406278662395855519423602931713845822587777323530868282535772427132717949344184824288504843910137813001957529451337060806142845346196178759495213831815660845604660205014742389646304882981859649938405784923936771855413397038135482927706087751780592152900175973082090049865246486487043225506604184788086236392688526915189572535172284466666423963242291844768409474573760207758485675330549196150778852026263880655678833444064460923627241194993163410590888821921458386301275337053025015133318010582632792518465072056171492927545295987711636506923086473768657924261083184577780631193462164663253681562422029874434366865479098470239917953890439492282976280632095173595143788332947093693640129508414421622939354724050618994536748096420238840826032382257266874005035960070349088636512167881883691399213578959126302672879855269554035720756478809241589861223281349832390406513180286310300475374266476948370198276267335619005446427019284868342500421844052032485287271194594468150945902034604105532018246090627073254175349725377742019210818536334549035917748606488549757827695205663446183778977894726110968659887931046392010475768624473386951176977851963645939868010824023857245199189069239448761761952371241126965743293588794251846619565755155470510061978956331288983484545582025101539756182636557278783795402892249456214847657454031260012687722643841404638667874659103885768898008944244353034799164684243857095030149782473627221502002039067522799912333137426309168145585723555849020570834612754582741841796667108916190232746458204468364417170620887327972442162883423956484961228235994370026455647170564436368736910652778571027490905839267073214181546377570322863459759803747808344569657880354565589422017103530156354182057128930766384401479704871355820955280273258257069460059948083648958408097071091660516768242180919806222767482388783227227918973706529471448048621459025984237062191140321190410684960361429963944671319403929849004574247349023908227148766073078702160990028780071691480642057910881121857271440158336694576515091406826374218274766471707865667548273045850413936684327191773734616109883934708657964808853402505710357421213236090283359030295964268885530794653423233400564626929120953570556035412382843961798956870864651505539720056360621306568410885827681797218584024974045473311256569126532542213746942433795161627755320159135139491293026203109091092103312917179442417227076303128819779695316171622592585618446414951150539791904838191980403711398615137593811912017775844377691994976922435858049975441635616635682652237108494660215499341651111384576362917937233733816099130875610266502129317400261910332094759555549500709087505907872988593463918364801613493444227797823811832954925729128120848146140244640808430857044628512799380320885494839996664148673969271538844553884995275538960851963841672119943348094255802982428641258675863444440572709190661526399968741447081324278410102525640194611552280466138506057266611574495715911256275871180610993865197320360202143715689230946995917888364654920914587379890489807274517993613148256362721345253372207246310400851922043770105396577609960902994184794156569878544761700713166547575111560951830921476039075668425819557225638316746275810902879832109076302461296451623160664712123681869662417118134929899331553003064716095488826474205206926580078277408828274656549584702073403062736430547146870179964173669844738772027663370368046451563304457486047330155441284171116086814142613547327154174589713808104042121111344388875668200743266242881391413781736933385307587712044255127812340667361560742459610400829727632500893183171158632976617426500870529799508232813105444221721345318222857348634754124743625997359985409675234297115460276428497227927051411091803939803194909695370177482856266800957152794966906530561785624972369503341057035204316268346232062506957373637407912825384004018058413418229029335849722614168530854996544189366477779156692546365970274617946415530542770766779277773859060247550596553126368430338099157485710949973851596901808628002239641902793370298029618639571681436040350022050522315294571259336257037701558203060971755021296041705195718961832619685869425618773103806097650677431359047713598651996747808690240768679583709232972860863534753424121414088715284405255112614250552928590720995617366758445075010450438659452340309997876187677883798443900427423384736885260126076840926026944912410351041868579583931256592032796447690386215991039840774771796455626397319536368114990715786700837048265948019901853832530545625212572313057686935806589682123789086910596391256413550951623034180672552114432983202616166159626248283832457871830968642304754557439973200417525655236732629233366712235016774685664708762138567883355861889156303296879204026291393467740392704188344732342749479353836810518094240203792316560588084961067034960417773607122983660769921390210796105628097089575998523917933155243838175853867614690893112202219327856614373299032035318634109343653563950012299483818135871899962722319485048230228034995876023016519771832120229810049057530891673016450324270942680939547397750271504854693768381166704409014483049728726173754377173001300925604796164860936654271165687658131406603242681901688659715340008062131534993178078787158261886581312173625348500995713468525200350161721715677448161983004390504229621717459350220281507987621387842961670491146204724482503617202124170374864880662441406430873303471603214655899601072851197472515727804379641743379896974662893418056216081074226836815204287637870828171208248074510198909081855618452590630169044239128758487036906685298776726471092809192587629944898931865302455928185496443126203924631135357281327985189010888663359144737794710698333768066058311518109781111783964295676104011160769991717324083187564604347854106376453724346209865807518959372279410918996332697430919783836145498539299439965995389719454659572184111400157495778769300944058538166675735099319060628909873370360006982372916305681098255514511583376799180181629690244639902096229208246537895050305561942219051977967244157189408073642887353520871144104987062801231205883590605842350370913453462564292421448055133986718714422345116653920253285252362835119144324225553331290308911081343482189106607430396312306002769092405182354390955102381759892707692919807691680202913688738848995746833636235022186303998471616914262196126989670098910457095455509921219144332575837135446276325751987167381061641700294601025909669407543818281204883316988875140407647063376488722332476045031078911023381720640859010874727072418589718089333006930997043711086213824779244612071465575496644818467272165171288514031967137661098487629821016030531880063915996943882362845350573449556334709801444980532990881059096505864781655598339637459494378964278784224476281552181781458906951901630371519299285036810265680996377467412910061058719162583667289390058768061557641732019951385125856829135140645538229523862104124658580594878489212241342355029291255146990458408320727483297286732275545603651417737992075377241789241639849438773813012091005029592853595688646771884338030301416512075678974129633042598883396207910940861258188650867884051564400033276908918998146575542724286755361852166915709069451644288708219643101765408297607867904318879853428744966115089172221090289228250175831226922548422892293057486274262304362848472603193094504716846242735200850181053414947208626360981675261867310301511773798358591786342566298658623580303876271298100347587763927703781404467970018042986973565514580804008652923542098645950119585216378787015556668813861576665091750813919899929615930292870604288224069216140568414971347310519016743758189844586306471292018260112689040767577237032229096741910487779014988546588749112228888161354193722006079576355368749802541160671072072754616209207058988385142734189949987428521077209159403805443290088271107625676346018650222730264286312501394067804852686363028003460058874223597389608406009129327954787895814450381070652714779902911310054197736970273646800407059643770441438833476827305578985658060740382519567269874018727410664411587064730929618110436642616215155838876637875004372887801591656078540256190749166269221361570843726594736538623719145796518777335080687336758781615581750634207321709590281981527043343050245481376457534036496772050838182124593600386605356724269393650883765073487519995644617086353182891853922097501089305364489828254453502749698042363210114448479308398091990924904474411183396241401817121637411116443324138611510780794322729251408546434745428166194609948556120232091900561956191887770343089983495800361191721502247158124585110643700438397957758086851424520199190115180843092193145770290980106760590307376858784729118637565409642465652303975855946624890354916081350220068726468093824505184310006953022694036069266188356526498537372003934324733851284367255348682298948923163428370301863792843307476070125587493331759076945995884275288848063884115222727832099275751336565201757436518043664442954862158264239290137201256796488112778289199847374521456081413852396805571216638412849776739686972568549122933947981329377044499262196345642816758061110292948579208416473170541375019881279892415681461079547314426883564803640228097942305631078558023483769436487900315264007488820578853270646884332616278285159900617384124094910526927935891429334116552794657520886996077762454487842834315689059226363215222299022572653979716321231493242538008740367569053227038995985187647492149650716544227672449138186783270621494774777847680057631133169538338885208106357114216562036992077342516178493993777123643939265953869628597621733933856491644163208723776605986174042489866803690975736647551719235766534525268545588704788539990346706589452671157575155025459500282898495687242043800752693973888339198569668296834646406242114602632886605603296660977291851825396928463797676099301136468519553335308940688176203857817935888885188049542039043471288494149947324744150983068167496219985916211427724260592061646887397493486130923439826520500166994683430759182247749778494379524937128493153608553756653420718837506922251840472336041827747414819403260213726548750703413565530006859983501543857084103387144688035376809281923990275842700636014270712678134603254499248382757125016377045978734201351532922182589021312817526749101646229750737272494939524045868581869874468862031605720485474402933345378667687136764156129385643615619591050785013901428931081858605216545734463738194135199034181503605184765486670738237779572272098001871836482509303690673324393464442125087638989517787281789636426454352130882282817600835448829668064134155899597038364532777098676170153909237613799660306967188450207901728687614228535261407192186430018773253705036533064297700802010813945912335795913473268651030004019285196715211942243535270817216783558199209870807015917892258910747149375372463635851717488536937608924074315147372957246703785081575133999272598376760825324912458787668206436793009047097082571036325933866791677743765634714578382916591068431268564653606086027082429036987302560098583788951132155544015095734281332940668809925736037888021808782430599111143534303928187844626701449731193947432886429005174825285878758604044657874263977605617857785218116618751070221898867888291408091977262550726381734749302674478748347432082914792572185230501678372752199521088405272884223437235334539372098982245249874865437123572264789687259159780502014803217560074247576863504799340425301699481832388379921929087720501975279813646665234616760401025648940412058615550612496169715080824233514012740940796370816813465243482310368020859913262463727028023736910566739825983443564735684635261723734995446985275364504102082647529710825866553267981221334253080038932564263571780094644563433182850090003764080197645372178241306205882974323380621670403944554979918273284794303309624093334797809740851338528446880974528533298533884685885216524902890278962460181078494044054167132992509285243204937190047181551493719635271615236540672242716528338725522448552864230451256349580461636920346600656287085147473707087157418899640222404238722300395783470693844244699909970135481074624971209951576600967757022779395052956285903010202024341515268958979414791869983902782138152231844849525298462943263991202627632919735963751040826421633086012480979083391085110280088919770650295682095917935028212955736076462564918751124927485712896510540124114175636563241534515709408753434702006154383767403116264225533717782992938661255182435666967824084232657795473808977656875062362059501527822134888109750548717156980915681118898915942277721396806677950768394905967528007404676676952761364133807363646950317974897447165976662116793791027884958535557688599379809211960991541818026045989418566159570341416688660784274091138714669825979919686794122081165416420708389429649348996406825063404124468605751951601563866392576706771201934274888358576074766786651559573109140392238493099874993707863365270603574523766475637287357538946143162085953147134364657197168359062270477872991816127226236232802420437381261463369478238828287308904158784501631607701541470487404645445282693010272107146636911651253893576649289390389443918382570721982344566770012787169258873412729448917157014473417430137772325612525868915891680262508659725951731266771150487402906608118794153571547113911054789300430306743636979528571066735377485414362817907890777582689070335167993405986752460767943607119055371130113946839826461943568331193202339513051561870362811610873211334826984796870151773602884084797307632946858900386687762952059806176160952628766364624960858859052654726359309014675055123422189278703272403191501908722509808423883361234076911991650036377667683326801062682008595293051622440948974325949351106951804392312687582719943539251642466615921852217035344532013078135867778252939762825127361949691546750217641565107897824820371006189795064139303319562449995920093846477501001426429372692415306223250433289690138531800082664400333195519651272400837693149191140646542440863214592440630904170373181048731233959657207069908987246822065690207256680787168420407003376972510826963962559662191122799658968510884420902618517012064023154146073943261206871463328773606503679409943061683925752193448933166874471966181947873874162402272125206354349639555685215469048907392015663795543272313969785665229665743505640396776630828674522940313572066791931637054977177072534149135688173301235210716025495333703331853514356557517630312348639879466025174424161323381927208804336651929302008587715857153945030170640279416970811998849901698343010724499331263719641613854646955468758422682317435867497577904289307173605877665815228682017962699206259575020188153623968689097582446126490084898257557056103428892496500810829763787274412437687806711044120382447322967584369715269220982831676290824717109702477913130084671268025242203404129880387419727550139513579489003017697831512105656628663421744913256204647210837859131083279770999606136898725581942249751678635474897424631027354980219281525578992661165782405178834091803676957463201148506387699186193361414638659871839185692852546507550650668810254204294778371312386570821041525700812781963341895157260782023808956122087625580764477556646322560396565220248186562855196289258467217601226644380664212145222158541578271221313765250120901811472182658377374080713322557541994538057782074082784077971208607911928415340136174905332620634072244432839128574732783360694784683739834345084459721772688301126216661245622176367005227333288966597126145940587063955534855181957060360102697317307779744128786073523142464422091678829707709436923226349813077834595728948895595586629190858314288419797572630482664480670916241231899287769982041793040143142738372691004522409580350412189999070979116141572326072179078333307706032694305382721179740528959884211252718466829549537558870086491107132185659313165212825492298617384886925553551180068533828722960732731567804478612338218759065094176077750762467478562219978734670884693147485758525242797273231632440505843214069429441562395947093501516065524662263165417747193261105617191388540774173705528048234691169210995705326447537314940705276492153765393484934293829963516513239141743571510008227155515236047347006208068623005027321467311369299931354120051580794693337605981969571883608090423931715372167124539282795448426789487232923583987619508962216092849349687608282891315245797753204680038649304872699882592847796343606710940809041875136456503156312325276407850062542265434332468461361176051208038898593357723593184102531331157658940433027129288830606250040117012964527675381162175430878590411458569306489889298364184652073198475877902713078062618495922429763455414253143960706020437396462255274769971834832610417638756863953455708132296544657237007161064304050184243726812729302542396754793735663315231303076735665978522776719499051562647271943642427888122467249111024065923327507369020218313239088190734163967730714622895023370599201913989031322980371052733348772059714115993745436765112308639844718249536836203502810423395056420470818766373444552568142788164686007103662247522833678194537937335972064269398456278576505550932986897618567685926912510432545527411186703223638379572944338040898308396571861248977385161929556666654337155263841740990912592892270193167751891036490028601048025021017121579319849612374054381265461832671177120195081693536371612192155564496571962921135567537424412257005265020457678534374973980249496600430123109397380332673479820538763062814183887386696905630640381317468019384968118939841161991034521149181591520670891041226800533629005980876274479632386224361007138037192406945119807948905355057907450318120232123580593493567440868437106991329100712543458622374196064353521990870803939749878677838162119028169136838133407527610475947210764283324306998489729641127126144018524030320126668169333655891243749252883461123571502239959491557307720938409153146620323799529378169498155047697184217296452134301278121917647866257953149392079630272466024987339618301136849377262322976528583409480748763459475257633537182366040819990217423853797399382920236232893757008991522527019865907603669772982867827058475036205556016251775106327742695802401204762456739637454646191524760804367978940393252582106863918705441384201387511018726007269400193067295417315259424318165884438006908517413381757873391864150558250214007200281298090511924347718292246176430689927437884069064838251446481797653664086945216592345052639111146181115701613030262155076136078140530723931506501767200092538469626989730966424052449651815608482356454185519436526041010962268416051838773294259314312630780084374335576762385618731571968806052326109714772663109230762843110063985302085892155061210918319337772060329030585702102766897804890923749036570434948361491561618791071658683528414325476431325956696351643123433331282757515567635298435925830334327160080644092007738741068521410591662064452357022279691776462902778605196846509188025148174570952453723528532651181886948037151079221206956070037120477108094434494099607929277824989553179866779447988751651395880659908932441339472551329570283545314557615510756254036270223635540936468133395699728721708935326888707308532648751807754069937558898455687054591753229092069450149443131867391806286363060441396757328901689573880674680595244162090637335810912237189551913678348761682349889137485950068784916471284141921509653008212945878077656338673068601944030048810871006678568123995782402009910111568146256481893704984393331959950804171953856883755822996116267043789282375856237366192818891717280291528294385218678530711325944309476673396837701128058681672735948715294158268041260544957065398746467222784112037733796156029466741678736053644335879100371303717756060711882492230438276679735243394448374110655465395137902473790617141253207238409718531760137190865182365730459295673781918771739976973379735105916563267632007523570270756883989810715898336005743832165272388465376931195018230850218713416321361071085205906037165067086084989658539753849410266693445661107125215824135321340812536556669875236577691655892044980450124975952592655103938030136162689688570141329008260171613801147978170140822537841939099264128669803575515549465655927866304115672815303699678735122667084032163473614234182229780954771055966381560815857267442974521764223279766208993824326043161744886938433978355931752213793465679966001208038763832531128718960638619816054664750748982593953441700740819290998314646741126308614905811497080262072078050978814316865755626085437862137498185045075198902037091057678836132862939502408728913411640505405802417055164736055353065510982263447964823343941067027650917080786490801401756149547863425004227215349740695770801081761895287857337538099214922758027987927761299427020321331478610609884403444682166091270110977705476423746912595134020914257521982293757369487489970497407437312153454671386422770017375508432699550793230020698337944909217595633474218213403478183298104444871196906495443790711847899378715019401681034915497110802883652654572292780787881571294658765242042043277546446520873493591874668624993072800928231421590788971747192039509962850503558468557118693632240864226969550123436809967352857167888586915835738122386738371435758920452422595643033787671266237575961230142565818747792545665555152785986985226298399781786492818171498670519887495059797639290618911720522003708377295453152157970016929882165705311866982670049646998379167198966778185366531472818118420187511894100818020761831947543198275094290233901543753797580405194597422949056481132097067814116603598593079904570493884880050825172034899359446540707148498517206941501427614133998551017334320079962850999661489479631090864527150398565424330345108863647276962378362868555849883952082388897761817619304177401630795434611309642984957519820181208411937513495800801987427355415310102543359146616804091056982447723411240700634616564360997373291562471305507628543283674186240743843038388286671200443067246972102022798102980345074670745465388207463262215126094209242566719331205752330699280232849189214174687064382027486234532383179262806918347557820701931168790142199174346205862049844481149554463612259991470426494769572485816628985208169190944423662335266750820445333310688884163222166548099101801866056309702978147547900384888506719769162815455020024032196196312492676529658268573620910694808572223011333825739153041064025604739160671273471032910895568342035459242210201966940360826287869721620190650669250790512000717608783932470119589990132562084932320210259909741387672521992513399531545113250930789924182918009504920097066188783767847803867228299241798860417183666190894918775073955975498004219016329680499291750389639044705964525128125084438295707895603791960885922381218023540618269615809800705384252196393809752378255416216685552363962944136309498789254834961374907020193903894655605694713633298228863079371653678589917534059436268494393896789366086647906328535552813619268470191878026707161827100271615294046217889300513766288632666494047257440089159791060210236651767356472243318128720030471943208060094408823819324824412633664033876766783355752183022901681678315204292005783024507392610688028470211918535065082231354425750715073752754731579347041520183239604987379096828295023835903772176625402336020602262991453345313071214823648909462214898937950393542274738540361475178080177547100075196199134085266777938961754131251865712922736052944908489572422365156991084462476917918884070524628757649931866739591364131042010933121678231474637536900044297181706833090537027003922654554349213337917604529591521842114456886843612927148316441712318115408539208162871840535503087713362661021773907357984484664459328752080026794024342568108882777448220721449796278972162756173480874352783813047383411914786682585071360782218441819948390711536850172667179077167129268997793304776899946646375304492210326898978818476027903379371214393835405698501355001763110217242565364586552954986110688423561448341722821989527325471438371923324047093913376328434703932254430968310398367978391148581135046699485889261385748463140832192986003003763930364888738567435732866098418648497061569498122687128054128956813039508548134522773399989719235198231458667304753034013240668235716458132202257994268660159663032648310285057530223786023103048447597620873640964172971828424331039761685969675090470643580259255174715814754973559720136452563452276616775934068228092855754657144899052403983747138988437817186677700132504989766104863320673485990801973487865257684913940361087707348762623675372144175894686969901287096128917504504716807735028036807582264511007213102658242017974304564729940101094064635794906527699828937608693263679390457436748023422274928331595306891419707454772919146998044541115682926489433819018094097462372781943244575737104353737065065075139782037256112026094168602727448167308031452259330035912361960141794972125833242583934154566253379168216258369484018329315742264656831617015306333458440729672991092812807455485360258061095819745698314227289188235302910890316889793708216816089446403738965803111796120087552694126590128084795667973984452946446706858689732324585862535876703442431596796819030969303724049090164241375603620280463275712212731730900623991883277825041930859170511418656520284104920813903701261039545535446533500330728901624922726890030050362521140030608501113899088803490956353250897526079243804317037051262388291823415688647174358048062946861608876326168049033191549756511367213388105924745048307486742985249107159370916594008423586750494727868243994794975412467548387418113892139639114285353018381083928178174834183332840526550772926598594166130656015920194207948415868252803506352975680536110991916789919599932473733057312659555690017169619555418606401039872785080666380366645712391489501653966373367789605797262380556860596198601655821556954999403110524973367556089083638725055250631445507780074114586854105674092047489541902463496577408397517901084109509982688100937390221718160821331769551543679151128947437923031452754403306738420447358688125604533990096869289752529144479294149442716132107316672992502551133129500052014536282643803632319592850027143197661275172283204114668182573906511659956281530904197206258563715281676349692641987720581597403601174963514694073902891539871941138823654881416194733327603742110277624737797727479087593626344023437297096577978200434223757153854150356803943062981285714477038500429689356182281917880077066119785523906207751468340433141216922276724066218670576249828965751239155359999008834384246199786002952131649473868081177321164708519955415579921895789829944257091235441971587369670944214074588085776411741780577323768375879318647516988710837077580917227444826153064131581002282618964687200749390496737724296125307151364163476415783497035900157234421394520185811831265385204334397011254304298014401853700808006385614159862418907815360170978125832602431320832442672306762926210882183486718034549122110016956648580295613839979694019055451889848573489635953792000397268865458405778357228308862978299662135600911813773396914585587630639203369112555175445208896238916638495043132355166025054786014774661786045205342263314919642752210225161308280261407367836040960885718605050433058211128614049847084453539007367367461753694097309675044046997144343881745494642414295750463769299633340527961751233752316456526618794088786786889941073800518403034858664126767346787979417766532622279898029379170090310161584307666712291008033783384654329363449501685855637955269177078707919669241147472029292285012768566489274123970533071542202887196448762159464493686761409224758953021833327837672010431487633603098896965819507694130643090131699493037856424781801671817111588319096634896246896320553217102362764110900898968554564610927716602663478647021041682372844834176784771617508116516882612272400794740794508252359318308610888146407114354883689577437844415860767939602369843183974032284795709002264996661333820846660875602902946770579588361170194880039874885695232251707661375323785192169857893079906528464756328374651313017310041647574863334988844337267792351289022553537609420687693686494106642200864464521250524381104389949264701343669732966085400910443559199290260373269981699269360732434897842681249217703645936292969823935263008990631727746849714106737338793314800605237048485643168484455518199423891121792123996928192530532852556514268604427784699784502736853168690590226264411528194582186462851013964272222140705237822901535198494701782376236786203799393059362608336639886064034729597364583631379035067489376485492698908246554575437903934966964848814059596183626441656627512884658948499405794368801117611206085702481681976601901658225730962728643327993718014817866614982915588798562413757567551373457399516003994794530983285900718877037488423402346836613803671527605522699510233701643031972762014715871031182822140808469949813360002629464879611965606663819455199662265917799399044602230493661231616713062097275891077075516729305952098450876867637470960059580473738243451669507012947850266606548730163477528855747196738403538208689535345559016891198553990295641381209805873666223525117041497864799110109913497644773177588731171284495085499911619173907242079732238200063961913702605118188944909070734037845784501005193900722010679329677351071615671820893318102872817606708789814232207230299709313341872407321927442994302513783121396663777866747382028342658307413677109353381051401242394064976611160822650923301440710432040618221526340994604570980338063004169776351652182243430636476916946891937764777803475561872366275349984795931333875722041908530365090228210485373001869601560773302460832276148720288184775826438509118042251469628486834882147489328943474590410755424710069879221337027471120130698876545273633661012682920716624357599863836269711280987949058098353957112496207485507679098957804829960460444289538099927469689262618658670591014087505348031759240161120962350354373894587530444741576468202497970565270832566583292941485071570208293611914169208951327367039689067452462214584669128029151845194021008524713909551492429873952646131313385774111976004712019560324960280186241954527314224246334736284906043918539542356850580990562598098573730592484928017335545457373512514018683066375831667692097703037409854622471168540666900383414930002853231344460361647461753006648888898365834566278224111041866808491325924274403352552843314539977744998827028060614296312415697494364035887715118457787134694424650033035492447213993204861305710760235775427725934359805659764521275509561729834802391150625858748519200004966767631757783768062871502480884799720632213951324418287961563198985804210003406363207485486084213180115534761309275359882892243375058848999665837829700147580010795245053309929528337850296941823407894122873926668036755741659030004122042321544041896737191325228982683016994266219134445995004993759162273844612345979246221566424937547593289386182206948276560275955746153849592394309759776558793248162986696707157515995803080304945559594931083524760755274064277015128376854919990378767806870693363668460550026231325831810720619667449175168959100542499484784791918805412871330293602056942326701745664359745599480826530707503085809239685496368103775467128824241906673438332536441051236530959928156628149218207985063778017424009596190020950014997793134373802861722597120610650877832565216306145422606126146105207445161176499734585004927578458288853266288166445992718687860162880405652112114028919549766751260224128852002956403171220286413523887581013128028243439860953717428143200524905335361411726180106942115936129662058220190117713039749776130786671530561878563567362125228071377016459780191387433364295651478612280827003613604610048429880819327561015038854392538123403258579126387051141688163878696428706592080127404530397568702990292477636038071662098904454765888912921773690697615973586572205059357319577308776457537552858586397087892338935909943402266285569298553240376099941752529213215951598004256089364883207291850818205121785163460824896311854252239455167414093573796009464502201647420855451951448971880578740488095821876688600412406201279836381156138327645095363582367604782006459030224164715550751502227303404272038446026702225621843056444928868478272248238092079540121066987852984791493018936447128208096674151268613373276236568910337689878451607650378349559023810882054038068136730953879987216394309313202329132301790417656746168328643795095193660167645043117257523916416491232026413112308982074232006048907054401566329315987019875665310111297890584894954963908674546590366962235067472713524726648440624884104303912479054860484653574556984944957217911458743151105806657943224263032220177243036686898941106821731434382356001746006492015424017030252687373941974873496446048876730146086015797283962395659487008402533262055867742431460324031078823857435287368218846583042698923229193030175482733201061110557864752426930518242923685735111082301414851897239396061773020256695133861626020297219386950899382171022538252579968781373375512315002823743490653092553454126417065299957932110092665935913155004756208005208396253470620055962566702779135703217585440066018463907460400494779947606985932292003850447918544515907452250938195893353899472045457712213846289611113798983320464515747503962278613996835632582764391723807215444586723196740251611651385246542807215547115915688658491368882057709375331356452046940185535381599234871282017151922935084040759189248425578802537743810303992321439667531138485149410718894826481759066826322726389061160683562491414477939723161205410690796534496801734451876111131652945355067002742600033344336418123599489940370910441421851366341996101909095377693458439318666834586500035989019856305928797498349121382531351340705293488814477902808323096958252500249514949284436654351284227160675644618744147099181803841821667536352268224170797194740227048984108772850886945048224550971776395980579450192746706362479654217166167114667911470434820073988655118756905345664054780594435023253204753754004326925097445643467553872016532730989963587562959077508916927967462696336415988191729782936250343056984184113600353587877606646445316562856152694292077402148216167750276404006429284256224507396161250239906652556965793408881592654461218685694059443169886260609019356417033292818586056212585842749530080020321533051215424006865990195469366855626951998595425187857020951048288282650415907178531983059631322745265395440257474946140763116201360928428445754386708279668178505796417235788252737962377162776128804530683457319489912808055533476020470024896036769383546624671053208323927967294583176935183288176243152272341141045512127407110043578031915877664916875165795938451789198586718851548231277868571372272854830021395685094914295297000282675781903419490918457023823828581015305677533159704931452030949500207896267449221909290186743839117424815133791122528386989119639031409582228045655827143212366251369119925524962731677498194039713864512912346178812621143700491115765080450080591720996910369603249909677202612319091356133019225274563319745247728581980808014987638260609178120595636995214153749150668345422799392720567838815659876152870675592989518842436421231138040400765853333945077916957695705755319887475077241320308782899847674592582987950257760783723200662426765894034261761230766630593491303401977892232068034571554580115887124965544499784227865775171978245860154986249742705912612774414761214966592506258035471040660441715363654142340589734941328495667935851878172481252496222351955033545929190890825506106917343316789059491031808680379485086802528323629389195068494333140942177993778834868552368460758378894066916978471969148956139787393474482118190914549652301975687351565871280526897171345940498577740880066980408133851354659263821981624081698563721555887479161408793541033946345407642187341562068973622734594798740888384145842723793153020911435338373041513476884396377125656553518627245917190848231538007012254912950061798893042891054276207768497906238455170271350345131126891960440642990052991303157074848878321248071754299227944997992280578810153623308948222566828058876281848620401026100160627321065294854573781578522952729685214919888580651344400698053299851869581054176130037907253169996477365494016777787394236270493731944195546944393562459917058265350444662240917770408673623479829739764949046727918597653603145643543977677014176574551164668088621924938008352968758282621525421969101415599184146015472915706414821536101391108564357623659102527671811074142008624082110907649649945289839814988458141261910582785457356484240646882235071447153002312098701234595405928002191451160495681998292383233116227329586646508697321077209561537459807983569870626933091841541318605045724018062046740513103028971030034951449315802627287959590185922162481062053509028972990059178190939588746350959600872452537740210999345736778016131052983065959515810556791467196010252288374857269501184744419335701988845399232979146867657553778093862201318766548913218497903956022293128725998029273434291526903814977911367588867908613315765521752920814402593204499391910724946313707271367387928253156207972970753932775908351954135700034718037066971655397981694875617916467697992116404270953272872656731212394558996110917107192055012015733538301443040299356178346858398671132851028702535961967325718107037103597704996712753108624572787886281816344204803798410247406366979115154909667174890990998879485538232949102837427037059914006528802273513096122590995509136940980069349392217378583758229773039238519979608292529561978094555410874774528312742882799388987200563401020802634303688228254964551820007987553867023211623219049894256613410922960554130427972338570581370068525767438843371988565461640802327670489172652901650509587798353171432929511761422804119904806301931723420351975393807844219427736219530247268730338698224636750299637215639915824383582967850570374472800811412181566651781265717500954087721598049409613203609518939961526311402719040311252606974398156064902785385819815527352963167519325180963776631321893036819571671531217101276319170010374502961720245427498902251691417737859572190045871666053372454878675083310773693575241777167643576595916877181089015965818351221200397934235137831301636537057847921992337600620428278151497756313474721478404770045656823877214622346872026677048738940535507057645026771278570478120373682668044546185238318274416115640446074852394937699300103049479811678794031207635330103657420370477706487578241430644156518079849034099778709703546710412430234875573347984314393093560640578966009163346421999273550386866474679203962869479025711454211895842404308156154701172050797774772660409048494074512432656761941881514885217149330780678628909427290322349860752406937096480370303579047768136025857484206711838247941158415066882220592984907868179893212432578022265365813036035608660815814293788527349409530663977305271064012296184825161468385870665284153825002826702443353597394599607769180940546954656135681481388202549137228696642721687492332295406951052729706075835109048811631327384388144799047020713725327302163214287079193079575141998265763945704204472531549297005670587174062555751447585493465343850481057497694177935790445793998695198719994157580700301881595871710225137141916293489215599202072168963095457766063709982927915339252641883281097823586907990779294395364571611837749089222491876467429650662459977537290646584920858179104114109808950146675022841168190893525428382799071366732033366893326366520959869459980006902804243969500048867692034310404818466036926044497795605457119030471912778182375448388038592285551954726882095325155360760353597576411544192178895702427986888650295564547115334145765627566882879453852865864635327625792974682440432531175293115010826068979115187769374949241040471549062085498849616495458978730461958779188982320312006646505686598954894946570845391982878733000637534207148688237447877113122026075480386546086409324751149472230770558739504943368065532280639476787667236535076855381816680367730247086724505390140430039019192174284024173306389435846415488263067555313425690159197396203936715373682486687930586418263757144725245892149233930981093196680611838842041953383989109012581176257949029456001860605982208155623708384671808889357671946104952787524263058212662794823619980451958098660472931322095289095390978601005452269609758020051730970420428638014404917324406616936213666139219658288045733655536453859865233094071969027546305518632907032097866927220131156947160046627121654833401408832457955289318997289470190714360397329645277979420009263158029281836602310734187393443491870415741105654912926861185903032098762672983212197137807402223377646112679067195906345989588697862379085024701660713673419806437548363071123807009968390896023588616481247562356169300235968017874256354392737474942932306686444535597602766585774014922281177233051507524993215003402036411645921236314602086548084806922718638878097948014883814597366309835697629281199160224147681223797601253119619299445101625389206664584228952074518135110979191420929733194875563435786011711398387789043023295241426220984214172298885326179006920290822329239470820451537473474573272284053522109978354521949234331264701561499944665183872083894209497347390754503263074935349055679692763408954355089147883283116272561449327597452760349446718100006765809540271526711922513366634507550040887153101388196893819690763504438277872536055261190548172439004962584974613096087682274339414006423215201132806993705847823983987780759330894868612102117792978424464202562366192995644810190764271543672758033817241488636661426389385798279723792025179895731644067709863481753286301618285107991334455429126896924272573691708541894451949369482682674385304517458369746253588046347663896792028058655291114963156635008808909749476905418790230807482088068403008818395413966955616775232699697013126687070734531819315870859127634937785591623672285597335571539280998870197026754637770812504710901996133208190470339485784615895082869118903715827868380694552623083639619149153794752945943839919459977179761228495630273051421470018304947227128719600639363574349245195058306269541009467391123126103002755218657479613546998321818210481599995663144917521170828775129097432249636512506302594265928432751325747040466033343309962456689990216363272854944857730998594104075970834020744565286553003400189643259342347866840720262238816886750480396992479223533361985303515288124683581584251434298018488326881780237256872220165488629642964597560781038269879711204350198521962751535880015808525980614479306205544329049204190316827305893319566014652793065518828354171115207185325413398621709565401240573628041617236060982210976175183637391138758808016668311959018146710986167915534242458515812124363880379838156992456184834655547454094442363891981574519803768036125660784850957373245537466709533592700649736608742022115398650260608823931210401181472632879804162148101372078464114173347343534398977419443184445570878364517380531238114315355653937277454300127937171234950959617241977527139783440893082100690202189724393710373709908707740316740475280948357941011225300279254470423095871559113871223447217846849036281287236880002068040418280512832983541823869072981157925529342188000700740531449328883355697337282073810767355341851386429369294876045113776562709104136367442473198281625412715679621071790534780886289078705008825491953896524335388179103517487245491521750666516623328220786126528434005487530917891585388052093616645892522413536647642454308944289834843389180988600895754943083134315002529849077299001571541276583612633490553821140223682120500574854037119429731425844736648620924539380763051958963115652416066790125344538523976895215949645182362192247357243829860481758446518963692216607759542261113320171302196511112488464298849344487310260590454607873540921055350845094594070560642367229650720134109512482560263516107678175090090967672533428489820337986130161496926271747852112566526625824991342937354707401465682173501168016117633652158056259358683281271668492705979428282120109944708056825446949888347213556467928633100285284528091646748025700177487909700523452539107285327034193396083831229559484926912836476353035874578345573462262496680283148324762409244259929470066944666252878755000132776034135255406809286497352738891773486444152404392415989217077519031724899117351168995108089459463712468584159090452776400592268410782881751005751613938813647717475344354145875858831620497386330343848898524744031716338996726485213911650505676559719214952991288098436628280138611148188827211443864370586694414264237024786035000473042371724119480527484225921681218606652133269127465062216900003282365820930478288869427976253385462499476847358444960538842467724396443588823688979519349841936899631181616037917455066517870656584093565555197604252580228518656955144200864286836338943366307323879895559975032798679365899471290684471225017650565567391514391943617991770329439856855479132292494980343459704433436187329561708723026745289475514585555583852136022301595975776852639077435286480383470473513172071535467655058487621488025002129088440581449586085389051313415625008752096008792354114796555905400210768777114574522971100808846108423284311694199610175240755820785429098986209714752512421121163157141762796354456973285788378296712023540174887543820751155739797934271532952177515049500392460928577198453894740955264389913801460792631465561331123007320983432527975389631289221317103540142255503897740697648629488830927657418673188357696383340658895122553125026401760231903931954039633499711384963169310785348946560858312535010973232846648164522401669359445554396397490423125989731379851601086004820809217095448217201689064899807108542279966092144932162063550919791242538550362230886194242445533313711453348751896636472836105904760284827617728099008287366079891885251836544309207301187482791561289291381819900650642166485798682884925852766815393609436109314883133971591456443353418347630270660983448648564206848374886109493755134847522041449821355613890945886151449929024943502114798409083871814277485128930285128850074395964272180566899040073507878784036855141541813539194010265695713747335450500117885178754652125715875482605598332580578681591153101592235616941930016174452361045109137216472859906506888911341163659107382266815014229818613947556513561724216722020604260861406712613546966716877653194531173312640177360787765942124425013845183133318952195592837826094399925828731315722246337855154172429110729122890773328508584898209211482576513513885563437707420294505589426062089402000931232986227302678190010221724493188313823084401735570817530506130466024756762744331740779514891800977612016229902937581882966080205332553960045527478233928138631193379046424047163250378652621337475387723543386813362895183291891778529131442525980435809720431375465782484911381371670831697743520682731598336749487177571989980961927552995657709709118310463444921432869875800208318244964911898877140679685013415086379620884587392095197466158515428895237244960918125639028996267752671246670441500252331759711120898356560952390892631473546180230595343728175551287476896118944144383986549279838402262681828466442811660522152581184222709133997124538616332716213949689610245428614449095947479405069121813322435814757078110825023682702308850535750032556015919994538600011775879037301907851455725309282244842512141715886846180475023401725434219958544675968851276925726601401927376913688076887509584923021341733109650497601729712739338898558655811394823051087194181649098403864047928002811642275594992951831176176108647762502840104272363947832386072011385526181068338784919329222814273459082285282913693248989925114550645094647875495944001001570115285762506260300445976114697905661893701432650518059044338519320010902481727832327489831111419721095363897249235742612341354491111560344103652559355820386176813021019665112360873237199825581553535961778283231892594268206789254052329038433892530999852074875234840122041990093436958836330459831733920418935015924841338890266456367607503386735176875786559694838378843800419367532262660521696272409240615792701671829238089643999848623377904772268408457625133025500311852981409450091505660158009197048939744920075646227879634914178556070805004883627780467493875897815878539327324849267569679354843931897614349049297650222329921359394860441731246310801719554052027020817154885080347362820686601449498874842774081966735006882437830042151609746298915389258907766518136140758339728975706035474489120706650134598228681302146976275199782521686374173906537473212006618827317407497340462333816814120735763018978204903741280658589622668299205824554236248268223464736670738312832659405341926553901718734363511291564425509828731250099574198739202158683990843764156250754622894035681217028042369036344386682305303223498102525510588139762809655771185031658588458553083516583252198159910605988710462093044196957054642190272956480540127021030371689233262875240671749805959980196466094819283022562419036573207951832666670981554826351701552275394772779656192995714005853364389343208346060652845665271579300261984093803531484059965544646426529421707569522113850510711783310573125838409932578765008340594006001074178996944224786348177112793886533551024320283642622049365256541248356161390201713897281946620936570230352209757542567505840577269069996221217470684863108615348119040032491579437379890827111508176353340522952538767910797355274797998736426726640974269900587255709177288075224919311824009454190791396585559294885477875994340803929633771526491254390730349126384485127903647464417746892092313055004890572714140210524337750104399675388291328521853227144800959990966337849063483831898721222033320349347702759486113907632818565565825284236553954487196962224489398846935679112531494565727980220179713204022672238679002488417051655566466839082498904904554302022196770198117236996129552136183169107967632488614552468587962773680278548263102806690700038220533193484975687293081805836963466371430961949484340105051987101362579575390089653051204458594051297364525489449052497290779155330516746341769923669341167724907349608351192762672873461257516923066572187641799733933974410314822274282328835279947674451503152027487194945191883624091820303799337108264149748996878122814380871737362304001415260756148867090648634114120403921337928398616655386219778594429091344015359136407843417171030037364195207696530761212339002718183297089614455472852379283301808725344472567463586407715397311111401405282980793446769527061767452719389340621277488678925633400388404761572282590042389257678019544425451705458030412115864376561241904223983527657310819780595897577087632221792494890320645301555805617564108206263666694629394354116963734613432498635974094127600637834157678359256344627121352105302857785200600600555245598945933364959715508197984802313545806219329769494333708828166219057149139248735213265000630985526638175722478445490216516379186643209182712478567808656391027446523942205853596821747188763175898662140112829653527698683354350207087547252163244627365977302622614439518572900265920395207420153462705414329198820157802204887976113884459989636333744483839400982412040893547790948019379647856863789895252443051190821696394908451395881149688569311455816924198251235753400211207333564787511067984665750462421350308562023068679168047230418750866909491670344953649194366261434511151157122148810074976076638636184047236142309859011348360126807433667567636983664420034240927858749066663652920455274689064051320516152788971556806334468990826271038209280991186881360333364905556504066592861742456388824042288016036283287535682750990546668195131715173688953610094736054020353705824446192710851801521431613390232457657959958327255013135279574429615157136981256155008788840547956416474682365356195755956868243341522401298418833226593758924132033900028720827680774198512254473242566541689003907837025723661581223146336442944317133579167619435589346076442489980054673592720154186779490215711621012634742697881753256097772517730691538626550033637327716389239759412912566975716307031663352643595455477919682932815035755158058164566240699574176433851536036011020340494546175113587353279587423490049937196629691899492447603677742148111104838540755997623955423508054204414299985462779138267340693741594777192342281724962779278879882049983971791821727713596370752848432217229546522643870503622456498200937767560697545854945785236698961763389309114208766479060139204790949336167594680618319426557536141311234578852916129718267674740903878829119866479242474090619435977873185164351593598749835998887109973733904545449725041753679609195525974463500522636242785206717520456277000004495336006100395006181463100297295944737088253089014592801746069858315475887248641733781974021043293615985857459634670692754824129340918353858424480339475853374728961815022266098635956806941216376550602225010994063563822092997944307599871139410581999656076217466582463024185388796913645569202140667748963143199419533335972510233493968248305768072982801122761382176001200074689146049732089951342854349995334570629861470960462426179533284878842225267488566411728121736896538775728332744935557352698834887167152724597932583840467133165995228505613294472433076060076519506536487944736253014019575716119592440372853289101896455362305698811753386369836282580428893202911682655649702028071927787505953311234550659653987927031687873620292378597634194248689042218986219864698558951733545645546327575681652361750664099183285606825854093325671871456366820631574841251886862025951682226376924966388659815296103858959009491506134194691576651473720417600391161431807641127151098541448835438708666480035235995373088314153396695445969961610527740020984735537050358921563647318155785498585608691180780718373213241138006260116511470860258079755466314069979820930840598744600158686896290820242199088162460168738844460344215752547891214418226027560944480468735023638456015215873752101074925401491033785186635022646696005775783032200312522925411404262829860815690875188848968899201554487969763671416510428287608181353941912867804876762892192728859588202975283447627264571610289293129465226741033845484649065555763708696944669634541701081882078168496646305522382185601452674989208675553968432067576862240504212849265920463903342139635081416968349232432759489534354710673757451481019854712863880219794323960839651554404341159989329776523909020551632939274299596504402588460509088930912068513770797915562112222790184612517710512266924612219013792249985960536762664562542809462074425598367023359762625366584174895720500768367248199843517952015523385256639204284968051814061359397394702424123676096107352018526871852991252984763404717490244624464858845304261517400655859126065962037703663785046085151994869741868791431138780379929869951206660843008479389533926154328065478072309772177867838089275622083012116925539253799938240565632872396198210550032841350741888719859738599833577385532048977284080740745287918241837865469485452026859125376462630701473744898601790625091497588674103072087249323786547480350352244699608860918285893761518533164471591460037867029298686452807054356395327806054642632324596311509793040309077393912769354306758228578696460525668003841542073472306977741173881201997389490871415287739893062021527768215327410985062003138820060779417799942591659662884050855893467481634196479865882191401398000604859213792411432542561858048643686148767892507684401198823477521799825055352444716745385283773419613741439131965196380741724068484942489128964844230206842765751215328464195076044866064565933598586181493821039427338967268596997019513279723803935526053428531991795488099518768255635267721427439764479236329824731436923393328789882308595946480672714918968243081960182418745431434299206755604385512013958809301447723727211358920160898373599113968372273406919024214949000051851432221060397429830780289398565246835180823477107296127159070037462072532376244455718092734683841814895965888069569016374137224400476630612443280619706253932311522666919942309411896963116029794930238983410244322604967911844518429400800069781799853894316228670736529376779298469229834605305259915926655901200017719345962882636174932756172070327444857689271450344738788109229314578335176986305612227428195771121213576222353361864456047128408376190947094567907309464962889726439780776839613745835782789519337276963602614914907489087038059784902843400619322399014877026430131804506353435496562440754637446669909472815643038944929486618046109115608790939615869112137165703285436598830254365938031689219507128369265784561988858807633264817465490238340130995394455376047803086256892146060986250986395434219049160321220942039047704322522192919884648540369432683917967719705321415413661172287678636710796985882574085446726019676916581889804438262735989208733976977462806076557819091453970483330240561553345727546568196178157870923397912284515339274017638412469073180867089072119956511142248317762573882724669516723484635838912309653753554823839527997738348804576739049254001368788550401953558247796183692646066529406158384327046168723843106825105096773055397176070644805351156315045333653864926085799466147535369334775350823155562404239680746037692608566324481265463304936421139769027731843945668174155809732495191955593657472131720974037815854274400718143495956725363788544141030395248032829905502426137185456226673924686751735489185214993336236339437933288891235345010899104918174978154955021032952094970372103209465145044731032560860950118847247532222165181244855610788823894782810933466587583696030958379875759790408095025659315856381341837499493298869657809470785449491324644635076241288186916867283021904895122960717724629184966994046498469549228793507231082073885112443122989965459426380556455818829929670813246660033133169991015872518865020867304940624559028953324527681834848789997702194880931536614614754678326286365683055901746475328968031221203505071611715179916453544966380247622954540185370030920339984464630903442852090800303517482952706047388171674446213444461096487088897567922068016450179188628920214164405420824745508846656173418605248675978657920261608601097840504913974975923274763947018104437826282768033511833977285400013020406219836453902907739706873168591632943275668288404441450226821882281071503742479747111608811555356242132690273215303054956351866172766006968330848381105163461777344533399457319502723609096380182193970670511108433594680356147865648107990982068712396125088214149746356863611744756928762261997695183192588468575349360049800962517621986629596672305337353076184723241966164662207128120710946909345262411008910004392852486544249017359350911935627179378475518803110105285029778707709925576678622642097158429987955123839511755726380252688774097485352282096609541851493970766420018079088981094540024076129710139506195095892714879484212292706068401136651603340038140828890139455671711406175583016386071539254293210522904794409192139420612360452989984556912815152227756252342729178573438606310463269724208501094645954110859104117050113156456214717965220564084169365845477633242314113256780114757183382421130146939958881175354365074620590332214774615377472396866563862770519665115533126925758960859826945896617065018595900444680375688984418958141919845067113256910935871003712079752404270233008832196123803250873403687615406139945635496776748751089371035001737663985620978520561137846411291391737629287935906778391485568977323114322304006346838059639476752170477608055861974235944405589333217047248076475858008285689378472200791723661141087938043285966294220131847607015165801796337318428976573099964681682461717690374567927169060106994139235427793941519053570854139733281763873242506588442732812461193015811317204882194134933962628553209375285209969425893831987858596552408952479884319474721796829883143431992221450845702686033481990771112160195322216854060470574611966202300116264682590941395748985488676746689118825167924139103087281467994357883604871950807964701464984311448575290806741160594582291941978953504342108742125294014929775448215999443602769594866384089559888156605121092033180317557977204516608393167927243590108015542879458693956703455207491261750419082175666555426737589168559083578342473846050985315164197474290028471819665253800124181567733555247539347369731230448002836465679434826134249641070910214392448712922118838221197256729299132081530338284273422115190840438141218107623245311903630898059980726957057144088242071661706200960670720065882410059732430093134049296657825097518291158852964165082735173472875066166362569171009033704962914888947002511684636325472286272548759239004070386494444830882676278492261708699507849704952306390230774373166768957709202767846992448263101626007172537526975022306247426067888810092391576609471349145802922510492820117425477580957731310063397548313322777243286930845602832144295169092854543407125214194641532315971760009153399100229298269165896464684751820300782699119216950533879306494681075008340060502010685140922520665313642348187840645901069802850137478747670477593824917216174167456578049878612259874811605125017118251605944650325956152396005729962989865693842445269555505937145974483560215510076457792620198164757979558039378189841015068311068996432987733179885614977705767632856394152194486702268518471392296163569375631548891203306971083798156087966721973809870321103072653267397423642195072351294724521903998020743478405894005225824618543205993941499665981456356687275819291765262459365525153973889710756129821554017308303957117180919662070876588053851069801176559531010194154104874261418882976462902591943463200712106696443576372423672898184567331879785142023773652517893626083249780851938696799993270236601738888797283126590710587259727244138555991508318199805997171198291948154145914739659163534338416026291547437704397023606592604226841869645799230107739914780714974616854673793058968512673040238549956015525745600954389812785871929820027738742511377807170408806812403699251145644732976416228118991293944451194702010202394698111221594205975166668908470092175291768528418420564180585604161597265045859090060559320454654325383983448761784142656486893441406547579863213915947080085617225604259342840770371761144687511968380954317578244407444967179916063679771362929669914878967287468659288565129091991596312497267848323292768740249082548727804151926355732030120982212103062673897058390083249773331694930150652127311656878614822852433454726101244615135809763219693779031099922116757263987531633924140386346798476292536619166773243913691452539831044573994812007605705114913417643616916643485708576864906744796451617812287593364855955278168932471124911862462751829756126865275815777425812109968777261290035619895763585608951639759434191948532287826816754074093458524105340767026773628389333746535002677533995940355826840803706167046074402931093364449296365169382582835855735448666518129527478184559163444555083346804655141918872332084642419653057891725178677361673451710587222207971686511632657375218070834347727144072451458962183481975761719155064862108993382922573659606285181647899004833217797533423728835311518644671043007826626710410936648484540307373055764095245789129126604561150940539109525835780896349749815341382748974557402302560066616597935457415453109272651257370335529418604110561462698153638467871226109342767357304597436823278069847635073549420179701349054802810226493180807844352594943784361821043768544996939737131204971435583048531381889163637082762465180863635419354027212940137245338246386991141413451407061943724313890389644735079070148443226805786755085074780937452042519062075840551475282012183382994451470998284076358229310544919805925912196962502519244985480579812500747475850125260913881519312192936305635954098413981879556448653469095658446590912671583349839140964925170769749544270874948431269635398748889675998837735333954937481623569452918533250879431027136300482103359391563293549213101552853030230372164411246596371688985671805938547854755852732434441157776015251969283694606529378937863377592436014959720575491732970062181205555073227993679712152637384833536380954761292904928942927880744752318258844417169095308343707903382962968997426460360634155594906074711312662308413249713835132910455091125103911494911778947693860698771147706315692836255993684298548887120615870869890804063114733334755980805140048828853485913536686649990525968796842889392582696919514681990030742742360559121528293994416014088447196848383851593610552820030921443142122595683043648498834467247097368178703441611865716793953449647965016020045598495145067102320108743813939546578729454164313721618481733278964064753506385398699403215688200868290864145804416531937433611882388800329317267904135843869146050630820643638737885272405499170587836603210887196414657846732086706383412177604311471611885528004366811955526287375796895728554801526557319021910917657675348986821556816292100868821293609067987019535402218040520106012905763012708694471783282899218830832124325845032869222954285370898549181934493143815761312933352211542430061523317684164505602752963004426771589979984667685628912925439748288032996478109619396791622535237417310777248961386666942276866264559943554629687332323045586864382753049143744272731382063771378706817343504392491736433902216302386043837334646621371361162411373381170100623127084211137296549118988798224599855139441111194659217889978396923100921557588970187419018035459855057889131298738562308368539296054226237659047035161025426945320345252655163094328727428345610541464497859375277036828637161511857192139343428351844959633135254276417652729415899489857919776877912417449350184688966306192434998160043287456818298251542438526138115511315625009910620450381147118589932187473585040956912971097824587581687707405618657000686960383580481478109678659906631977223513531507589060328591408244295864104281037074437399848821331255152851064679689392064547072443821730962426648201669035386801161758961412711771221661963235530231564017729583511574480726210945307138107876612314834498634279132399838262030648443367778522911908735574464954930572176419073844613098568484215341189379937725771048125261792713302318430403406748840039826073132116466231193545296488901532991148659287221740707833504470172148970832229018356247539056967767713610175928918339465941167744925514652422579497971784419389459077373690401913664918555189095993211393735732875062033841642665593752206112989993250139772622977474426333231300418272972418241420252281871625475870643017716051069147048265460019273581553198329994606451283507396515249292444646293062544223507151310273461618013026843547490263274218965623294864739448404168261744062801866952893834460015871279114559579897677628365062064193637338264944169983915825879142972528729137815842005252778836682744533146873730826493046837562859058601349077323982224495364915933463946241318313773593117719519731370270320099196720394364307973263265290731290334121239413078386960854065828692855171128490844273116806136416745088059742207927503150912526311415295478287595867464510248453494590577159783924601967798711845558902490048258161602840977483497242890366399732768276455121021798771007339287292150419812254763701510977242083654604480131492026886247786324784477079826622247735456742752775351432745641615235713195903594010846536447071437660849530340940184288885522363431550516992454596395523807960247441493852990779102220656441461563017465084123693949904693626210135032324487553184343367737559796361188079140973209979636811068599497450296450169360379814639362017218625860426080025982113666685077086522296744864046140687120381695734857825144898412538622384434909904750391408300335692512126507903088248484474091563162019801722387547762998426428226108452205223205352584827343491456098491060574466562302955622798041583980703290610864252016432629717994876624403856155362945815824271495625459028808134150162494533669575341550469171183022689548711590534391710476997043448993586437705139939822432629393312119215016827620290269528146103170926556551201926930717462910431760390274415703398647051518314026336256873830292988248970011590178410727290982505704048150286705188492401567651894042290663943645738912458275148868645457547799608480693193221065098130490026985950731362315958849083453760630765326659348935508628018125192675969658913719309330265943749216864192073682058602209518893367723089463522259909288014408174892445521656141346868824746732413784244382776565479443856511361188526036454917415363283004914409757948537456111458238803247412063989416413220718166062419918712143809686469389312449369487302781120099217438093219337669145202546666574358846251037336765446423813208320667352245390679399741418741284456252045859378252378074474942930607475075508736179199696972658009580809362735351469338509676380773802700131316708414525401516595743522467769572302486351799101966627617005166967041923906697619155256777530709417531007124565593960984458989236179291256610790846787417368173671373805150259613171184991947094210886070789924001485514737039642446897442924416457515233366429600374021582277489563872473605590826130148438652326887925911306567579219308022938370363372785722421440636219544201720006139309443553690080729026367362800950165979138147822963242414824866512384094929963988913692097606773659469434458125724205601601975748613548292933962176953268347312027448909521070054713559342930855897746896024354241549913868690742131320589357510086949007496165997549883746658544271846181172284635043014875587263128202361575451570969960920822124426188684495713802264863299376813265172068951111159631227413189329934199196919259339486881243202427005753658132090428234957209926450006826949625265193760126388545910668551520559191771237091569112697024397662898964786764512169712554996968963075213561123248243389009526919766181059608555530282967816043310265969846650006198744244401971768234094642431828382823900366471016144946340144658880335421899601616191188030682301410212920687227476576615224057063474995831788217254319779038956851605382893902089042468767318776914400126675809218369466309318025775572686120633557202742323238119545409600478295736156301835259562464788310585278807708687246610014358291949958491735366374443774871023061948591567387980527582287673623506095453191396348201323622387004510343700355838947447739466385642027850778118562388649975122482895824503033314987035272335113773537256078245636083631472786349374443233389852886415170127559687349946067884553899706046840334301055156136557105725450971789973931247067432949220665437168707396597314327542885568533865765718611368527900278495442578490022642253707050359534954930111291026791189231038478955584190850514297383494477082300976616172799873815731687375646729957446683389224497547379381793567985996680619636472427010205553709199014073479591174767118012523032746720195172386427252900472817812924800564671210446659516827395501493653780074277633959557464072642244965808681534619063094312543214563920260900155071198110759533834871030947044743901416746510208712478417218740207443842652926636882461644322637157973420660891153914270944139635065084832011443383832117844464769889608786206576587941388592837381093344642010916654106185982826918649356285739737601779191816498076311857023505698482218851248795801907854994288707197112765366569853766591992929539167464775893895564879023242148821933487036797058040609392260990302916335756554076279261733305889084742044292852856204860064524418767190755723166152764722388689930391869838532718515110530011094224207757350232644469652644681055644252964659804088685744951159431342556013740281317033271915768798515343699012852495888454135295023388409925431189753264019686185983626465861775293394833161647369037121107802674324067148938531370811899876115312655014997339085983759947442977134598899553343384526312997286379158310549770121256563107653611315062374118725848265596967001639024413182806763411904598449201424709389662780306179114060471542518581063268006458658483739033629043713210903283916779958130748515191294992418167106436252695412079679167200015614806945368428880398779213965964196607696173155436539522253269997313132294544851353103960649457737846531719190729782524651505785046339494947904368930026680538160003210351453443616266643137079395344283118360512456733758321671010082198547302242013601101828429206937560861837454540746451438420583988781569515362495839340379344555634833951407006965601343542962822720742871387047244311233557215861880971234806394366656108941130437084668793862799217628819620468775218825902547999358550798349541297004401866691855177191451704313716752684073148479247248199387126959051929914672186029245326501146169940242551881030298759906622622578729360309554138089692155962621152438546297452255965118798295208476424817335977785484511793757632581172923352340059021567179626559824862033557242709292661875236220643612151303272467919221818408113958066921621100655804107361947361563806437419256771346292918475826685863117291116749241571373368697794398849355403762088170250156671879095103786906330179955814088205176189107001342278190361645757115904485080186350774529620976782326489848151533206822624853234661817004186419778070946703518740206417531614398261172201629015719849693320811652813140175064494692599891902808323060309515069801792348555332828971500146998881309671983463186608234787598690856290986171839636968036806433033560848893517543121053081476860028799120643925397284341016813285447560312403784196786780221383243911965827886675789876092111298076285413882700090423125249045752573812190626322384125498484876964085939844528616837026411130697376306634306549830362474605670590758316868812095222451460697379634489765028980642392865619989774506174473931767581909437927215946587762111347873521452909191464979560665206467804204323258581378537467757891266943074791113741852498600511310139746914504114211543723282257242296358083103452497777500388405294920188262057699951383944846694371272392755202059407006030711280399338027576495678758851518063961938231636556874772659637113681657867285338808808648501688888506938043907644402823129044394714803800384972202310991841538279222455165287314899920934345243821158888884468068823498804596065491241182910137052878015794041554013144096202938988359547755318416032123741326702450643617265826896063510688993119076197060971777997397347771037895868011769806121463238781619753367322622770305801169688146104379696811476848728287933703259493916531576693131670027340345847991683372621205164322165500683618054965035825870895064825020184924331028091316504987578866116669549899899486333724801054586444507010924064552099873677289354380928021544636150225401516905914908426559211313949483315139836126540555777701958256916185447071514540030107660685722116928865605714479746579024099870626520828889743520102463484285599736196360546032541251385422853483970459750169597438045772392324044402817554303661512861879645984716881252281697475514199723159811580510643542817783241229370525411011789156290860884185767282000784407479840191600225924105209745774523695097373032441186482742574372038424219331411126471843479119409386929433609944760495865014617623212530871361956583519191085982419919751877829725876451237467622100861873119409972630599740716384032567109141243559748269000727931261834781434755767512412645336794281100807694627997155535547578057207936630875671284212449448463314255586478987049892295396773042753853584942824000810364995212676849965500318197233378656899000299097711738760703172580068577353845889781487253947576973583300647041987268925850352077775430392171103996754789199760029634650186051172295124319340935621222389724760908755143535919668343750037532680529885852075009275471001002422058643295290774710021732970333753987870155228882888569839638859158430223559728745147244378680013695865289478058823554931944315266070103154119071313155873594290227985300219366671046082491995788978093671671078194053565791102792190764061130363874663497741001552452504183430813687714799865573728758660589715212979463991131187720356089355052537677965882384669853843793929190256442520802248081468181770885464366033348400284846695860841112520963301487710873372532141267463564636133178348403300974275864102295770284898808801484863409564831258400604953712660608678088283727247964385409357849296138674901784159186611351362781757416111865284390179747158716090903590965153696411539728199121331498650888601438228505840406913809473980314515393379869552040656423628305558073237647463306523238382674432713492451121954446642576203403923078103045696902565305674781292342776179854607214148330753799846667493128140660154155190753763037160889724147960651152738140526067953250877221413080250742917528108356802283992209479731054024290403861008261088777959092514885681036671943076380386896215195584896505978945650653603050760851496910675933136625010269980811528566907423324666975700246842925187023982574436185353617319512456881453526677091750048347887434232228329014629005465723735266339968466544071928983197364768454800512278614237305941602853627682977407824850230923721295643027211374525222074687509399500079444816220405272257063106552294301288137541060546667811446672954317606483862599824526948757552882220875169152145793010441556023673659288136500142297144098999413823624686220193720090711567060169805145427041598095897093979853160185767632308683453939654339000062132454686860858792723775406534329159921953884503852439959775278507628850530599690784982069890501461550922573882596312745394943324781130556051320860340383103267999135541170122691190511687336531249282393088104239389425063750683437149079711809078296556495048513385159695337433042001742566456334623472041596442277213134854373038560725604512167389668702315042351427441458802723100516567423191765547481237711728891467421739553206594984989389994420523123286832104668105781986172853224647740347413582733709160597872546299814723261281125342802929845519165825210418380498876502092441593494771631333267845867939096575281985010551383596716598804160910243634382008381724038030831880942175877950772937225761173951599034689502821613654574695759094086981019963737780601816778338609481990697894948426917626472725440699962946086455856338267065889182108847434473670479911866385025004391977816100814764954437201706571277147084005472442580437371640686101944912149370680273847663502868850291351570444881974525451259088678318324788088078759664272768456048167315614743109682873135124174408898475904649422890005949311484467112686382627770822506633665937598916267302139777852456808051765568757587210181330903243486126841532948260702621151614531227096698105716391961982061144406442143091774957156564206662192564373283841000583316521471372916076113354632968728630338101397824507539963278703461542373509941257675873617619277467345922946222360543944055592075938398269539959695735724590978349216397337203572976184091475290099693041588814527829322181821431605420811441952514794674734295064810926474003405050776400423091441596972874012677517072426000383136491572233989072755646728887117615953603374611835421349692881515595461788807599423638483753742818017761889023458988529732696913816145882479195246328750710709328187706199078294976282586396408335290936927179517117686473830083711215711014757657809914247929707471106323463805740405036343654978928292791591100019996661659465619271765426428742832910381781486658247259840367279360349831600860895769411115196856613216672673076917430354128942411561527233624537874958567541825060914394735952228806316612227964586015126689497893995515777055846394187982906636255900876179514398895444330496846448499372917719569795968706027582204666201340354616783442694390455526241139684027753443496797669683394274965225850851529405791998178317434876156146151811310142615575272074071872864163262051434863927189322735943679582156093302822654776139888111808234834085246862657903783679387281810723471542281068460707204443940725183170808002678116627487019302930432481724548725137679421205362021002982767700239178540214504021811336778861886261503165827065986802667031020317533457015593269152809097557770050318337818484140153297731953132131622780025376773470104377149627171093554805863580705797738088348065622417267363344548448855945738978175214688111683654583318065193095503160799919050970707853119111854732668779370506508376303694198274127096809597511645384000397871968663637630979479138290992896581482724827121768118486017516655216052111128408491695732697709779094149715057227057319662662298920108815792535772231238518646920200378708338853046157484683858435143563939557900901339122616508871133054923974481936418111680851927313156641282473701795258174163436865970804483360546022886269987194787539919126630011174704866485073494297105895839551161801441295042361429546356725102860528360786005138418370538076472212944813865178165884680376098283139127786748235971553246789497440894732593068274312625998504264931589588239433011153511534516121675044896869627046932833205964247727687084497623660841485326307590444105299348633952086191801886594423123552225120737911957361413723153665332845998093738002320461367914862124225521697679072552737526704176488091163862926236060911848753330243210033221723976271852942816185701512141186620324578075148490901471926217043672539379569627332520543328241352527076896555892749532337983977356653683948154673539995662760913223507625787969483087252526550024150850201648768016302254561264247237690115172779748083503736591061454954820727954182315628916582779695324454101586860453622836883681881353392619996177890231151143504461209452353064088350286176468803721167863213741597722551749532977289683667051967954328086903360804765913083544097596100849630385250892412662351623429082056622151657429350330597865654688703837861554926443811638752878987295111286187320311296412539893240246687074583731351597494915332396590366587479301407901116058272266564132695515339021472520163400523636348384764952453922300966134780171194464224274768593964859632131901288888571378935334694830675894329888885923373605429169769897109882233792110138389983171090900890103449579268572364493016698372187148948119248475754532375313345634804601965984854161006663802347376765186247141044739865113208466022381975481666960725228650087004995208951247402459414504101607248078309102551194371787059280722913148165117464613111060258290627174416379696012268914110297566058416098074466250966154196887980955005385098392889285914591587487417465057126617938764830455673369698673413809563809563479513949606692735097660913480531905258632659925805867205588586468822423113996356354596243164370239939803196642545862151373336133392657397862955576890797608479328578930425101406571773713736024656891123453775551018532469071408763772794635666544210866713403067526376788895563424955533014487672081156446160945084000440450200408606606527312534084761301016382442849335308550460166615380106345955902070931923094000927669919762672143713526001168062615471181323158857266248913486712121709019642207726135651683598388841199733628389085458120099580554047179429348394449443950901045160232454587659505767892144222218849534814430809105188166125591944298101443778609880674729620154511883617224035437415541151737539927962647363637701565909534901138561085633349264863295759069687933185416904792802740157040612894831138095444463329810998075270331424710263434981811106757736192976450678545238793053366424660704816202305405636867662355474044974853060458704641724356235068398772011008219103382566319915334738129879802334701981027957625198898553130033683093492805601355361347152672165410778381846939791678231193010461410601144952477662780533743439290505210309458116029541050006609925288362118016403082793175452713218732881566081331005767329885405388792687937622200194169959688087486140808099450395081471660576009368154443459435498898607044852598869618909110699056822868291334040524557683575889900494951567895715272479410887766909578170558027298194290850118525039594100509560766551090695308710869193085695134001943399627768088791782372108479694134138259955826258533214864746667666017273144519583728442991463089165008862815796020225182031932148233473577456131290808112581766498765596505404402205607545835647655486303143468681595072777546823251629036126646043903180004343124156235802544113737816129074007192840730365001091689315659905764560636429147161759521936943257241170060607803323689096347979898894132691814688929282632008792975426036313762947043633343009573848786372743391031863320902586043552653114310490721776830718254959361555074669018157019422952185712348108218705792107093458287940562115138479607158980984863841960919782506035046797661085291510277410050461578205057712814544854880061555279455325238430063735074268467405454352924746632353491450260818578286059518782697658001285006378565422237968752919673612108247406530127533501825088323039119509375138472013318680245050041618184185607537134132608366993914051854082916393025804348600474613577319679100318762117814901375900474531008500353226451773140990172968856526348701632114473441148347080844058232741659441258189454469295130655170280676804231385389690715162964409138290338765900406327383499284501961656764449625441462566826766910974668620520851434101411085894644229782068388278877309485778140887874455107730848134673562377416375642156029756588892566099200718791618307024403583492581669495798401897872809503805812222387688867188345203750053411452587555842074341369216576535495914635395791123120783084666536568301957234815762791408870505175125792303075742646187401908244927384631034061843071795177649275471874060327411501800934354167287908677585086212996820008268531863485896401655045990377258743526004747651663982798590762361910312668403689161163721510962066175272727291703317381168995378891624066418321005548411286837175843737164669464974242148494872085706824031546106304377071047822496837379876866974856366876014514533817735897945076931461943769714817035209098949104270975608812558214761370243362342546057161953281301966531186502787611677908085616696090726546449031680507294015855331307138458913793746043629200294039807532785426823628233963012641633305003013076230564637333553722030894334847552082488174982278209355701479233482117707256223848761859000849035692747587575224153161273635966842447515790448541573935167908088321097878773185002857317311015358230113507830936289859834472612779270414658487711502459020274307582496034437663849310141361962684110540701380701048765096562541266590015636021118577121730439266877889087700629318260557993997133866447683492108617702824800636399551116010161130180574266384320838788300387358211724629075504966388943016058651466410336622480603531330767873429943358265966534944816311210086771973630109276595345628435782485469821281516862925361984108776488368829303995164125633472306140767475572569444445425270321533718568586811974780656152590581692461846975962953295546132245783132633934652175062442980602635014640138506899803008149287106222547665696832575497614159463003201242725182776631587897224955249000556655279971792429280509783547235292729483503246348543648041756081140928990732898060306889798590950789482131623951062087563286697307473396399840232620649424896005864588775364552085358202500946540172095072152036971208837176045429426439448995780713481204506345716241764890993495774413812928406653965487669108803695544394224805522722428775118069082735190930819564052525664889387835513878408474886096218845959598967230680695699869065383397078248011713410821397206810812856772116829992836614389586694047688142250972207937601961663743980518003384893232951903835442203501950496152408167471909110266557268449268976963865933830153121511991379726692999196133553493859247681028597896401392369891376246209769918835890792777311355760575387470554161764112937498164840155761255057387401626268838273853541987709798938017915102756853995152699477279068012722613893985680375121148886582805166275835919492540643406410328432663400087319510434053926775246527817949599870861792556293725635341569656534340734673736788644224040551606430254957282724106666554220586486542278138692897884936112844258380033215456504010669630846249710197231383859693663929711668153186544565415887547136061228910582391283201749049750996455870026945202855737135687945588229826584615664672826696901837501419234085278373548201379152378040053750279436249403354261651382168459807529125667170900756764626633326364971869620408106313349239574856979963746500986416006456200527270496228455062178683852581371357766157859971010279662233215242814492578619138875321523628597015617361316458620187044525577275814078444427809222277928367136038120939785747115588155719716925780155593059291761423147230131785101467294994514883294596277045407774960552600290169309788087935832641479981345375537246357177851453669356907887105694292261426310537115687483508306047613871822234323658470918535276172553115930229487278733045452780586713065992065025593993161851259731006965522748722670098124074155329877557554552359802302154413764914874595606372146368455311296412475756754402508362197086402635433209538662626487493252661295957140381119694926408952805609947918615575027687274127518545847765549911871784652326384049119431137815473506007923514878609474090416610899923123177406595422455873918496299182970694114767125402643260800589812908691812150144255277161077947731886827464113600963154254510398022545433190919257294755798530904752631041161799861813253459140036474515989458536098615251283216474252745977512132712540959772056553311847906887234056425814512045928571289530303473640528131514979129691965364971006667997504957401202336628864784076447085046650991243176812669724200408885074347700905638073094340289680068626033325023051188557428213636120744591727630319521228461971477230972234185399938879507619160286220538033375166438597232943244442514454998000306510215823251835881543947993082261068218012229620718890777884366175579033179123406311274988778822889488934120980526187859415691191205309848154703998082851025917086198872032930478264955818732938670533766281389188318254272799511980795210328441622770607996572295650886596524231519684248679858492955336211360313229899279958197124365922432642550438252635463104031254694795308715896124238269013584338634224949697640087613151034282579337669532569989732805620423426084581455364396917776127545002017573396595014352786598755860555379140157113351410014242974827084493177323838018458340150097762391813802961938417422788819186405154641389581354588477931878630839374777093504259861346870099028045746639851034781545463362024834030107598708211791518850248922206512185627549143239287870452708539318667505544990411711040646625150133953735618849085613190859663994309592932748156646086716648556378376546487519799129987560814571282329245993964948504643870165106471824972995242344603349149325652734736517996210112598816043013053244925190143665049292135891802060632631944750433206324429972778590648781423803442317327427026415827772571218228184897259567916155678059954112695812808086040272676149000788392039822997113296864686614814193235524738966879855879650242374261921150797986087694254175814035672644404902212670060178340062049901475033695959496280772419809043336944801343220065038020654648936173649901635545477643911081651861599983101735287961443896102783575836252359057170480022630671981607678318054146903567643601165304647933728808733754392094025503567045295550409797320810639710676786143089025420845132788728478367773552713554164779685918778615368551598833590240401744963672749090945298168033252958959727353682195205749331243471868635031732069932819302249139202296242793183609997781366511314833715755759356187968871627533701942019398652561672265413393227348285957305224253785399826600305860774324872143597139888587188032987368285344001072260260912010199154118504080190104686524853500307730615302222029950041923920140041428496046779583724158938978869336097970806192561168521681460544263651960398172999369868695305936895064165487922542418897623001918598601414814105794551208139705222432124443314724976532423448007586143692470870534489429684940335479665629197241884764298484212682588274812624859948114700786368997999715828289068432977169455986977619489047277649321724315834360256482728407077273839850377321925210948295060668279066727110358801620571278061989056224613062955480532780768694575357709039267093118338094731390412676443683847650524362484445797757028876593220777358986408053453635541674959585318163418963212832964581301736180957337521700973279936603843131669036980479421586914453642928793780310642424416812765192776801484562018379871802040856516490539320837912696449647567540104148720005649856593906902593328520453756829377921521711439418546637723750250377222335676081138977495406656730376961447318820537672307374330280625822363492855592216845923237977215263418646601135002918698720727824030370977190927797354860610489279630612274555006036862006805943939554554397895634787296265136059524601253307831960321798173965435328433978191223913923681692072300272441823107375117168387098070004066515234608469674812493678626211841194788362925857192688796650068988628683682415911543342624778295594865716238380873804106313403085678206499088989830777454053239246120933931481583414952418058047255041909634788780437875621624308381835555026247069202126385363789131249327738341731617230135631531354600370507166638528637080897759230593937711735012670794023559853292775896774182562059840942518616733616705561888692273938266394854294997896143661728389788961026378367143090797658933357855668241734102329456621805510736904385027933772034808378539852544147432658570018669250846064611496016639772579111196358818011513110504988134604093959569318386340732188785725510805734076723969515028369634284867971530234355992205955019912858977564865720566744994920037037880460535678471747562430304117148744158487725219393038942905319024583175771868828883158727283866095366641935660304055528750302182593300854117669427851609735063933770046243063833235146122794352439269180083253858331273989511720373665399771584897020771019614893253610590527671512054281331630862620202064854874577403987797584127893605766789749702149719077730674672241586418367666479864889500165332923136970999841099841616060403433735525111957225038965200400854518226187738809340141435745424141447549103855951283792460046167164287953552776566650231088453691783633470864898984273460066590245899903378887646239663132736496432931669838287945992334168756929094355280349956370771928268151231457242588679351808076143008767062314844953238988083679012222405692007222059792759293783430094220595186847846127177352448076964286597979301516981656205999418935068446395680672214549735578485319871904442511351433993777261779983944711301084315677684727858645558430444248743247776854917287614321623682611706703994972147615819800579766068629754942168499472755616013826786324034424909465414949883769838212815606958997871410229391624236309210558710100467953378760037027867889814344147591180131994069875974150340954821373866830799125986369422346577376078839563968157372963656078524028611185182479049918124457390364357332518043917536034927517078790854326618730377326987112924997164302969764881931300046356369753577177068084722485218998922378363048036304886570945206088108549135580243792114155010744898979171777149986503353821206013288869516694150370305768507943150766581366140606986248420492983785849576500289326801598322950020002093242203627422697091311146182198491047888984307369721170212771773293776885567927617737453029499383680162695912002127138274764564925775445962887165911920054046285945915300397854260945260122640715710759307236838686466196983082457375276339378534258172327130414403125016005662440737981464383341172278972256253903418513016158051117304220957538470727522401424869208385681971226757256617940979862513312867223620601128950680342043518760396088737770592281897410202284720656801540186080079358485758782264715748895158980838788321967572202670762235826064553041120715773250855214036744934590904548635480346613362192051776792701708515678965874309548291519949526981479876439720073873784243409273222264340430459190650980364660643092151583413553540028492233969375937436488757790007856269440405092804896978311500750187214860333300697889129215852807183555913596472387231063662843205640892613406465776270717195730629129237041598493509085351172948353105348191577780721433668584452385501472352745913358515398146202347366672860699493011134675307339488451354113055802846787644869316199348605804939149031116929247428639161527874534361380804314257082917205750586549330879092124262296425723547626654599699930514932838529074885480795072638907614990188037229258880645986877383805979495497226813664707391612607623307943666189765768236782091084982937937144903436141667331177572455897195733348711577939310641871552230854370669149981298806982146266169054631762895787135102439080814414747944533259688338867632419843389037559409156958903367560758921456707763941806169586887439204235514781882295816781363040557152483889788940523523190194627528548866314681254465387143579342166501319586683547863613579235522830486506049346759864820078404564036315320958474205524320854900579374426436090346892821111520783948415427850859288223286401219249137142025966185429889482499505575468041654506602846740912109529026683873856329798636478061711178700760318755186049798314717910823119920634725905352187098138227262816547470418925295679034367037822770489287311260609159255045892326120609482461235259502076331921259573408692302538253876650348016755516596156680922921423481545467522358065494354521947145806417497370498790297253891101437943464518085578139285555278726726862999036348630476392862889758198287398554096961119308634908700336049010255642673372035611047109341464077787230081063969509381129465932529056617336150251043753830207188698987628337261255732316318630812080560796177016237728633603352100744175970372841270182271576489616022335899672171842204464627298687163591969048292834146659157938600204621241514545665897242261215303249331054513515338481122880021518102380822694741354526863929139160221472532207055730872931495894178668921680412332715981984764076270680165494988380792066413304621903095203524507566358985915076478766737045141183050742214066429686080781395463455762630573695228585465582801738364534616721765251789164181859532013865397534936089900438036082900204761995416027879003377001923999446518930169010611747125786873272647239687084517625184422915297998212067767022582563209048759139172436546946433183207830916348006744910299569724724769528120184480889740422757435716027074160134755723097677835407476490073286905214686709486174917407788839244079930842281081879075483631965659184612454399954353455219615474973031435172691887100371006075501153134010700075482757432491013467134945032740643452147373089184952627036219403717418086999276733673274754962496672354871971246375698041790549479160466669830593787116314650456668232431683195533180184097210810325022588330340199025689942336572949918700175749335185008097508256066013501857645851975022815274332813885201531935047374677652573908499564669931956616367783550119650643665485692083869108571774335866044537341356777700341504846978054129708774257488252142477373473913840733180662121171200090381187538251699255249309515377643883059888884449980274146067902233107465947278564537665269477368215730688941876147756505006689846592391679269422863025533476334312382912202482224120203895250963515934408503417131544752619928977904153726849850651843909449608705141600755834328754110252067874773841979164391142162937223743594258447317312784666660359886246841078471193746781260279341427864267813791376790811680872684064450383360523178600450771455965026100272491509260813954585568766095470045038388199376470233495644252104600424234880348969534576125491642361630538941831602791336632328591356383299735759482834155015345025429812097306232970928395763291953662662732410908327490265820880089358262072895064370739228715062991072818200738190120726561541381247059370669020171364843258466967512348091066511241510362391498486887732344542138548957121028498113826412748465615741726255753740811739801717454594102752478104137845759737178742808270097259386629664535517649214701687907937195584642541266035956064708170321532157019588410147572454369737553444552773025665752827850043077304668005166881164282823839574627770760341911431384770523131388423929306795991634841660035555420849280348850689615735460350549451697441668897684327724737502456497277966249331064396567991064639318776727295974647235309765669796314370952374932740707418853655842506727061784709395677498696409467420458214677105171459064417861697354066236472428189424844207004304867046203378722646651260845286553713015995434386217638465413612180139048480608103759089054136510271259307980663014644821034257194659538530658559545792472681140964652952415130746290498419119920926002042501007199367495604785648729079421691208799992532906207506147072545272083706761865033212006186172473159683336373404103614738514605506611842778205113282285474908251310169992040597745552059007359452325555798033202045886918283191626398983661533137805895275853651876689265060435215912134136293925480829921607269093606592051963837541136005559415206939936839628521837361091694254006036827575439172095290553999156003042847299586715589431936437351465648945215432961781428060873380633989893707287821323146605523620042849513502623112430864130561515691489394704157076996352173529473211995611094066589150345151103087050294589600259605281522921172993002764660019766154379596105295444951544563670339100756630712838432062849961722464403910791594470498357299223554486838259444508633562770014554321366336653712009412585503523864919740221973040926729422943136013054166670777542236482438040350444581014208443975548554140918279315630376350283515266845106884726247185953444717084170501268196287586303706042205841909477595974645955130108043658729810510822232822478012362455104949992259594772911136362350053891572280356007080668193731388699704962350031665273026279597953441039160633123205760545972941183651510832576480695878339280526636882743390887020347306855666894665055581854529863427497170504911596682198277578476667200159549913159239378313590186053556917359232983259308558313649189523116469516644061811521424975082830027279481136403148675162208105401904060333787625590070078390666902312331793178086572876787988820156051831811385988682506555840731832430567135454265982240826698686986953810733301282786266253879615012308651471309486436255666687922945700268979599644680833202785087248215046467775205717463727009875603861907479694798557986720073011689177205099307685177792753506937943912432446673505638654683133994449010917536617830600084545908645902840313745981734893103188175923782067464596386766469332474105603518458041514336714326644317412483976582636220491981921226850229248259670963747961363270259760256593604066081160249376487255711304375212613382531503889377591698393759834937172218772881310564868786087860888371130086240452172516510035872593393787794706730187389587767993525074800484574024062770018973156213607978790804471148350106642198678870796008841455087848352884262916697213869588843428198203760320797307882941491975766135968491687605567564198195442429722692955150218713278794592509895597758369637022516192860712177322178417072624387177406294735271472598309741501945443683899132319125543899106927839646011113565015960519397909642392540468716423754438350756233842370728706311250008203804123543613598790014206528792725979990520668707356964200179105693878766625356033330334970548097769717784004211827873734135876708610799161015609430625442231912791931031926362561784504191476478767976115247138101903645376513354102029744153191889357069281569621092660257878680731218151856291932702698452384765765984106628989960593580713432009215919001273340853877599519342819141690119800457667091361204745918523886994249985112673192024468042820711331461772602760148026575948139894479085537099828605660812614503369124908412304233004012768035596920103998966098620650737659138183911285280665045030824738465761701963845546463299892727495434295910783896396976493302624674783734924034756797971016700688718807256219895645131596958485535034602674057915540999559688291707692604410033707757326688063647919047249110206719406162715763034250662381075441177099400940971826321626516593297730218296564367227730035936606958404628319002764206076310975318726007644510234637652732107019565675014954118592120545718126953582778973878791027549625530098205243834462248224604111760365884989910853063706350748907026637289767705867756451043310502272539537844152858966279242140839300595879929203041963286031717379297518773028889068839063347466162289704258256595849771109052193971200209840080027235192445263640989419579336281355671114508485885600757965806115786141717977216246381522376243834397756405807525273601857947982906095932452451696388974367769772198872506545780699617791965093813337679274552994797056867130781004962763292499580828871558395015371746426707875794891326198912865584351264014459321465330327359227603088923730775409270667245939817607411021479834931584297584953704620589463595499157621755709226407009472423753581872242562343063914385581534135551103989408354591556568107976893359414115758863650853326475102655439705802999695316808028547010802973656054045045198970291529390936311295207609665664368615102679104660522686754783096163970598897932148513707698264753108661632591180601458142324123038617682635070553912442472730280102266032724982745909799700664846404758139857993631023829434516674410352155628710902749470253634154380173954690666911744439882059782749762140452557241542118801535658716709008754044944674704464510878820137766297812136052721376713365489628901610077498971963773537771719538726608433019668532815512470576848947241144161830787865105001691740887311532610842907737658793323323447925299603353073631960883413220479686050867060287478517717167420144942034555054336724786727870348081905513508868475766241921073016717701743623358362604044973152468321455083093979641614020069352211234055359267532428466586674322452526607015019545363540208746710310181549269655570094906145071477495183044267817725004685114191124337031288778704386832259599460546674275995725736689589288836716719562791878900527047760708025003137104075525434890410835537527214869813153340798487388446342265591214299325351608382290392240448240247920373314058301919418574720333897695263476204014272387761494487600268091178800440902206338595082597398347282398818652028977144683422152183733868559285381454949716730106241469603641634938848524520234612985323683028968327760578092536745260437073869055195860561496769427736697486453636235872957480050592661076442597707917518559128338684885359123271137025740028799412427347279817248060304284874683603733231483205465928790293313261186926813096421209380134128521420771848655544377314075266724715628378409753751031743805350132681814894481672248734199088877923746243326915515625358486480371681082655612590657191713835191743255867465481943210304729841882516982162152727407736197711751394545901867633769865872635159658283242611133286514159292489122369761135731836344819093120824920147002381279332986513335214567595361253006022859737519513589134078765396480825242295206230571176245555247880904068564954910629612547156295276392171493985931651959113415900119230363506597101827348790873318516321816032724538224486238492916646353380397076473081939999228322867893426767769647342665861718007991998406390805065928462025617023685766554126618244029424356248393292519165626305761063099537784991564212528872629666880027561211429168154349003515422671212757185345046252968154380565229896359460564656140131285813554158557923608997057663808678935474331411302312386019333153329385299205824144913662816968536630759500632058931250637083742771864231697529387815650613404057934201892965745685552936884203404907790779907037944269068140420019536531268542153388776900901133014809458137529992391826652041861272843287429873268144888224713962479855324097297283722832015852555448207039821710975591036139992943640573834054745913426059346026466297696575700608749185597352671621486667125322534355804160373642157315464016919802221761051957187923472857236260364659079214409235729306394743332448274549577714747930578846325737771442028801971362295062754206986116358960418049214963354066313925288664301630815089422251352974006148849668831617810725858798133074007969717916305595934617515899705626835272299654454959398559503111799901622679187531924990174782738546652375942173236345747678250728884594287825669124965396107887885209686156717906101450971543245283130646679128389730561528137526237072973968284278282491227483747350199804557694588920636703630723263932404151281655639741049390376563466997738391773436122913995949664961675314753647034036559464002016341732562207366109214152755898047263139538318471105525202736557089782247478773492116519280033864385240102830072811855020972311344778855800544320466017358402919151162216856827881598966791121364241359627193664297622619566703110891233770977659970395839283019877728127689078785646595268516813638460008128616084584776600804352981760963274493383856937758839214774431495283084874814233752400955608258998296182348621614918039389875618881899819713848743884083273579254915948345826195659979433020943218189294539584568784657691236316502310689687418232740109176038197189543839257267848430361217976679943958751088866838528319026417119072077385907208256096652013394329501722103643706408819710777663883613576817235670061656017073583422749286970510302480748646374921801594259010441037226065390261308399898438437253392329177767471615543411698233453381632196262999961144922365644685847451573903022546028337441037284427735068648227929082866383107208683749916756343310406506920805927101189282861585149286522308346372656473411345386206499848283838726090657501579000337996518515914398283610114591518415714466569543558151949589605145349808778582674528916385719565799492149380675037576309173155278450264941037800653488098104519780183751720373113361676639120969492223501693435550517224832520959928735810930467091289924457947861656442906801852802324754405817108241212814694387794085852398679898578718591084167288230875800392804347036115166584071645929169874875451322237324660161348929528130220717606477071938340699731551931233419127299605417396390006474721238458164136709572783896059882989854484387599452614665443272706839961368137470130088986660156270838876680911849547022675054578440905810950768817814953461776164698020281235685995445385703712139851318438685196894138119604839113192465921702227865388220144999492228019852499561243373889236533296363687710641688743816888670601194677884124973783969537241016333462115039078550708487665069009369526294657038912417532131388264204732134913150510216918954826976201416802908185493773629888831166027906661165694639173801241756272844016057338729174156588019953633532230422071256846607289848080382345449614191618278542280143951106630967615401605216516642114658133557899821108764074779739847476632870852846642124792189715226689929793511927922589222260246971729139886578114501090957785976287374137666523550005249151641889888730913209837973766736394986563332285960294830400353020725405770307032038462867890551574031440041826229380108459030744252706408690294045677333000773571377890891262586880265754062722776493506686936994579893856440670174036127152626260180174279904993901258530047841524369899671665740389106655919018620653189298390046159264284209210686713324786586534350690222887155048085808706305840685769444400027479668957987057707029470135018211572658031907342813001012561258385414632549866773395750003276320727686046817282433029406137224479293987142905116285315857305683545496384890081040277001402248847240327669609718990564294783242436591245023367167829923271553817397971073025066225184306153365987963300961577577609086349267657294626654082027794429782112850670139683383920188247563626412995227755613965203367005692003881551843198156749194410680195235139176004194328766145490967938662780346190576801926421766867394032377553758211777835107382070110815054429484319054453566206535844126209637803109314683257644359114381299788311515970217922677214210123300652942624265514304935891942537430615475449008816218521029021395118792078901811126208591754483515066782964550565172391796753745800233921508369515752035529257332098956932293803816123537625849298078979047307778874718054378570846922425470658931364647657578916149060396525926991396366505518779733540965755775497828488721620410570195908446195726020549975600621632586278779353222901576941461011271260443250718098998306969898601463170271855978681617410136489888647696458551009495426699583775055205188891885330557113094831909945198792892476839281769897050855996228579453116718818467758710829841838140148387935538774815825103958270826066035134195441031107836518574100890518095165399610197362233184884348649293888723282519817366376568779541179464441041357959941535271805954719325430947225864038808776983060920217043083749409081925413389140804031115722528439218921903148628782041853790660537565465524256646973985960880962674941491719742807767526827059330425235824782784418872802719229673761695039261397956446522040049586314975778283993634435648271706930328707505639514469761223675773933683220936894231815432678723431328658728176356086698745863350484858546513447866688597655214189826644900710622418281962400363664925577394776176879329876460343653788446658478306118254214302825080813683828095941911514380383893548924848536716351856513565922969563336601456115702100563907457110783040806490455008659546414660535240419817546630074709272143749283524766695705263485491473774851606984440816090696204836036324735205096776487733230455131697104335326037303093551320155915309851341468449333185735780190704873531907827137287409781049221982355172840978888785280746355915524777369840329789257456873151075857722742167646467511476727367631332353295814068750663145230717615333669953714319868864010624604182639713976434781129549603790050663421317519514716291571997565030349982307081974862974185877684924587143485321458831359372396521818913463046520246859095795048682798701490809401063990515422522544639597565703017055803192762741850844032644302441744943069559033969497617808950557220279257368734444842198165716111163791362433814743898957900864696229015003979018261229065505185184494741713625043697867347901539855485048533366403703821022557437227554605234961599131725234347051060601721849838925290843579267760418009094869261714381696358587315964967071116996204402378592472273088581753849986087791395471075390085163211567505832535731504464373329224429780775115502371200138849834983136570018691666531078646343532688640852238377203012711139278347506595586712677037684098634749712725517605049126741869238685584868203608693196129292575013561662173083181364114863663356800900614469817781857997596939496173055093623325168007981179241411464816404991108222082859012682825763177049155851177417839080548920826004604794582660987561538378691034038245420720286484121093859855951100265840564957712763427137178046803676958824455019627553808090612685966925344114176509274388613704500100610139982054858513422176874343618819792093637487094586686235499266243237960507827225394460117833156086239388589752214273397326871520553184807810510074650003674017023625972620971296093690066397856596849984113584786320577953973893973505946427217383692375639055846390801632286308633552460832751175604085099961631393510653100423537374163325329689762817729996104832469331469445101071352945446468358490904463988727022642695955288925013065392342616115606017262716388740530815685895992544824553362629474752800976923860364088169225150396465732834215381928607534111757080875448161719018371265348708221032103746466271496587302805326653169645993425171039461239330340605493115099594117525008716872057526589702013417179097304559315504541543860920157150370508844380450889357193500948060347209419148618117107756127296667844970591508700824747887408764847798893762178336056564661874817118457506721221846915884255589327947559761111436084802021415034977659887852647754275320967556721517236336112071838376947389368511811326419362135068100434127834092089625009390056116045530056395078575889058023359329789171186630460298536258094104653982266495089936357035070114657366476424724115123193273130964159516224621302829824420571490581757889495832269379969290002498964051414566398768742955459191410590024687980666039077420908864355156549091709340303859060058535387046187827904843282920315675925687016800613506983802103602870265266595855329859021235586972891379242714394731920718002753114450826615763500940886414318898193061885988611849229423375597424073777705826600002193623836537004715950243562127931125643213864944266864826429079322322304880001614899617773817689503495247697074002197598445829501378548491006214858964392027436334180594064649766297019658674573665880520071615912756097096770593655667249977137537917405520963965029906217670836042887818200309815639961242636173567301763691512336206438419295767883515638359109102127866519302060868606750867445538434558583407786145984939524586950683102560335728627527431912673390901929959084217257091518644110975362571058613735596499589620525128360401172223303374763461469228242557623913336941786377026826974732272241773174447102867294235413297831498011618183286502365380198718134478116167772119319852889501677982406827718987436772725567982601358801915900189426982009048421585227407039964558109901590302330254783848736727912807510468341132803109853629476358141120391022767262449266585157991896209498759660391740438318186364413281656446870114461753256399857829795239246859926988281960143038712667499876414626696717592628130792075650243663151019903365794931618562172947357388655599032404971130965838283877423484091667757561833011533623983514127511584667425037743667514680348144797071454684776220096505964172622628066510208015528977105592926863112455013873720950050522844492398574059282076416962692778011299128065604428228404199051504181546137929612979963974217773512813327446844562472887163051930859304766269251443715072609558127147733898440553404105523947342141999743940132095756383979032895645359990310797445042482136045683211080211263197469041047460350443884136206559140010011090510805570446601244548060155191354916172840456030629117209745608733058101954817513083320995722578202229172047980124311477432426307362387616553703379529135936035563851719536576300171818638950690060483671006365004996258053576060567460233759444748823842835082984448433614957880365576789402854056409871923768236625982980298959493754045324202493034432847513887488908113353369831745244539356718009677842062360735318998058963772989351714693332284246262418613021850792979667965372599032782033047183342597043905519661001734199358413173700095828705987793708685599914329150011120928436206719779979278626380885159806033802954055924733271265074340594058903290195352076577196539555197172542198580539871879914410093626404528855867282071094239275995527859443704243132988282644318149661442009690886355764774766705695508651159707250156493949586777097148425177646905008212237873694292402408034366003531119430820581490567141914799897180859958462251402488499295507425406397267226859962482596463150945073495469733377735558296750005465008731049224306736495318379687358160715871565652212492244044866173043635349459116051197319790842850500370261136606255141653441862755714843378400548735299843185223317773178931782222639213143334843812548424652224070900368853976211261148875184358600893771592140670465534846858748521780178059910596310550266495571388626143842552880674859625273776960467222620162565073181735815897657684434562757911641540525330299732781110729281789096250016386408191224759095956849049389950214917565425531715379225661714859115444511873990453137811979633426786669847218124687683931247823000360025909294387550553744051281066935005459818694173646846759756605406930507080871375975190226824946536570597001198054707676810183594025559861823929070597990105380351823124350113156517050387706857451817800671226848132542571540914620176878582425556800802278904866879460986601644681186319760322040577261797383809030095966772310560054866707735241418736802529527080293692454357408246942293075787609476791573869407866591297710387921243942774814649939385277788563732367672444052308301746268082097084816898868779570920758967279368488864910517429417731027866412179341805857948154586650111128725926789457516317718206114627963408641436699284118198618331751310282503157225816796633770302346034654604183129587076979433823715206887965441134333330324087862522863060020859029275716767095214397901838723468410344183140972576683951273694632408594254495624216790056774956158266625850433031228259132816923274942672116658905011542057475924082222520267641551415442889675201741327131017075096609180935330706591216515769275934619276380325483349902081579351284396141895401008156378803181435506837735410775372689739879795983856874102099853482508010698841606493866504243778439469278863419730076898982137643274145839426126680266522196302274855765932192522038770689911403025132087284442154332265083563267248239206031274700798856085006355238392728336365283669972784274599157740675994879029840921208750031049166325444118907384288365553106207729720206116808396361640070392137842892572600362422413793848730489134018613423485641177100390591776184155060479088832424065304420294827995117453778064968477763446860701703003398989633814813092001126784154999487962544567161496858392225504427095021927009416118973577094931001895318860658153104886416174764626635797994391592273753753832823446288867115855149520936885964144979040501701427763572932180662527505885023369564272649147284329891583170476771051725112250002599561426769027328362057330271012277253002285288175098454950381378610211808180682638960204241843355790112610096862861279188316720113004090673288877655764680531530725922982141731477159281160770972485271802380201521717929095224986430486602188568461430817390015804897255916636063547267838948038695800181706000213024691730757191216074391617068621424842997604644543653895353872674768517144281937484055151798178467413684096029370674080949693568084558029009431113169564546815945640271352714356892659735839674415534649446272919279617337943583001308290685231585182189251646919606519952226730610766198949799535521179757454883341044120994538260771895826218878302056681447331462051033123107878883410572404274402929699886018452532216921932353217757728784120776339913165679976875063528105413076529412887242246074001208136726438924934009864451385011769555611112067899559961950001868711058739562927461154151348267883672175942479862715318648827524882141784878663989291842069981516503020297363949871928369362694514910994104580549468580901168943120878288734174428043261342733437765117253842145043039178289447162834916885622476393650536821939407242435195694697911892901920766159387079624092868262496630946394816489839448078164108024014834736693615670761208341143711041386316226364268010014552980053820752221138073789450648720574659702640774253983306133414681982023932508828510000149605705962220586676986534750757420957595669423518487672941396247189578033798805847497180494196079486251320381878040150891263780871330309365619133138502620494850051677541343333771631967247282265846486263951422593224641029012791484960180021284332785236728406270808458756053965412935397562469323845262747451109404832774436720331628055620466302913846527322180318443812107901648777441284736797018804800868216974086013524541425195932216121289811085361154307115263458738073118501603099856665485390910952230657448580384739839505249885214171090259061952766636889781109620886884848529299961319955082688022447199147396801850397354246605763179160658989043860012889707745955869455455943182666973407330973687560543671458226316629837186444255860230267981808268484099943992574634494974488598593948621476192412161044515162958324222774327234723325887842423065417826528580413491874487781285912897831545801081556270337122029076131056053975448637840713774530663978767151471539409318901584958459540027023270330038116230351333932077422206903524863169677672926560355128594119480609763941414405740105599261751452027754846584332249602168323820802626964586819310727220422365565016275608322513563745254423761242650522464081341572624366791384592057712747262101587407960971330668610047163440445765678553190013400953580133825454984145700971350503613452395518570364079774747290714491319297822311471781573752781776536485107152945445319927559399489117827053329170678888328561768996770606155881906699746161679634474979868997020581705245596693494495905435273987714746046924594372592138840782156753214820570563124836109490550492893967606948710926351656571967340853611776939009237212102605476883640382946354370490597433043255738711522989585667860669056570380514455065946978029094352724241913914704686885565811220407935598853019865436130772192810663218264789633090153086094012490672826935207307406367762775609602399044409774814272705540722038188851289722127419428203194241545308954738847954641397605873334614507279287222154172931359727052713524951516047280093741245825971831040851292103634546736520450708277541382899988794099412875095461239022266569405021711921369514303335424523543976057315099941912698187925609804823030033277503570800786371825364841951278006684393512812513749993691826794250746906973634858318493142986192022478232139447766732310151155054414707748912416789375538916403048953027180835345701236986276949236891773008584327826793298393609627900352309377866922618842893584478922509941503021543569509738552562156818508771275276703807140833176803096807255951792518674383051088543942331211349467118750072605689030961914837912232806082771153057675938752229386906422936680014454448551902216071254051526101037289540328474567535329447012351744545755172138345079765857836181641456890269595302893481773493468661678030076015146651162590522061524649706493366849008776731948887512267908901020904752885928255063236656872174341880099919873237973541684581272262829918791383081463554935219928924054185735457274348809799025675277326034764847514168755544583853630529297039943437799332539801117019006539071644543507632171163534559540819133777669831272898335116167509309140335880608600653417017051807607840765377244315576278006598278376441660173309051568309782706281822961654917736585709622309306085399159409395220833775657275070285312498651764540822003851438267035526241201314748586043964652625895862366481382703382239566114144517460082662086925136856729897321254354212686890976103009759619087632705245788747084348055337565424501752551589291201097283970557556225852455044201419728634785290873299291457738128494954863201102439405805885232469093535460861081646375542795977397183289262728016308238973459287585539613832139869623933474432587923178366393469002845400469312164894917374819153961674752048066823089952666176314926964069142964205245856074952613485076938478729070420847518755473045780779915215074510938360145550029583086556988048732812999098882022284711451879507290312555491228105389313844816605990400864778813924127833763717262869509530228059315519341798929457693641610943454365198514279589691356395147271817486997570026181214540550679946362211890278917367449192533934289530394067948819361137012753728159347679094646395048432919574976853654827154839126489086669441748324776454315046442544346342919170430047243350641343703833599266796133013843926424400217475107375258524630259294934272014607208914042638180545582221030044823102480584705908731348381577435097725411216001105535443617148692090055020015061324509844552216719715302401089391110200647236266846409425995822041791559852597851798605411173486295376753928896627000809188626131064610034647439074644889624059957877225619162879547943463527397085410104648161531321845279954891502888291662924081511273513172007662278579578074145161326386064099322278679609367969951155987222692118059501785412724890624316026557847255083951295014767660889404570946589047964000131068854315940219303397351400445057683806098174463083652491293481198270469816964832106131635351082827200233014949851642400005155501088284682367550587408176260427472261642789492459481217480496880865734687398100390025602863126520086671547626598636085469639916700504800942871724600686317508194623540297772192555707250786569240004903817862217039033932170808823786685391295387217693759657372806430378904823256801096387972651733954760697681626948595127766919289228993769346595335583095472323378452814440647575460319995144041951814693792289196915928607033167408181677241951613303620932284401071440628486613780185553010533113697269464337343258911687166085691833032638965115614322186995229515507308679264775823506161154499854395277402305658645728557859558878764539129645554241528880922018347359277422171370512553664655540187226618981650026912739759607324480522332971197890132566669609130961579294629040184228287537132876817891121463308052690941767454461926688246606918963224392762218542828264645756305005105072818518027423828228973061128448901101664530646490122142196016263475100154477489630109755057731386274664232175075366252857597884099141517731894025184531173617184970590191940573510344338065768551078365822227211843283438878107884632054315408537824913956627059077265959758645754339957951083983842708768506620380952134763727287839835360343779355755435898209063391066931709608551153331432499097021790320604654301422276378475081838892563441557982173724744782760677559770235182391956328868555363106201154408593189784770806873922128214862081587231271799838397844266000105235427136644723044443193638570311236949704103555563807308847127350249235772043237178230317003680576651166703146271402826706366991201614332684950067896623194948576166935121101334089591884553922090808394843649307411197427996915804727986423132113445080517212149824739260581342809960402156080101269830193666531572889761688832156908734224877043882091612779249540681768441980535298734772927809527784071136501883861482015440198114098873200682647857261834746272081723737283533796689510648979256478911799143797878275821596463626712838275848738112712872539941101447872082706654241290562958385135071270892806473126376553798294313011250760346208566670233611852295497837706831498823703397864496337396178012183412310684821509037595666813922338906339536704541244148334706367015854142683569946074002601372712602560351636865301917031726197552937309799907009592735466000380073821491534646987775541937124401785810547319095377426537641768119380433434007718222641140371714369028424240963468789846437168339829433619669761090396557795481810836185514664270190201961210392482789381032256557571891909927537618269180289675442510918764906790718857775921411139332278772912283787547610814483022207959700075100665169803677145470573614250969960477472564342330281834706154827261785239013579354772061372951040244365059998680737240500475399008412670027623589031888915672679371661032387404819275141923011402636657957058256489463763582178910229949416043055678847445952393533491074022352283320027314833783134922907985049951388918610122565986784022722279734085714726445544472228179668267850859446511770871742371732553450246465251572754136646065360839222453111279499897157167920435842464031529568811642413546576773311884792573848647300069884056537936863727193617326247456142510545078296130042473366753307338955430020784125658029488643125482795782688330390820446779388391123305783283637849146711855507240278680727147142565983759210366417283509784148678350007689140908382196039685985004244217013120471107832203317916631526122376988256357189019946334176995758466044623469348763579405765628506971096346647455415092170452030734830360686980771805356230711052050169217536462980695789340712500590192153139099244221651422922592740847173656265160367514279054168043340395137973031646758711270337656774809821362597289383018805293035916189361135361711564599779595362151131842546953613841243878415864137289338413982639544837543983751305386386288073441783545305590248485307573774426010909559612749752792771923071938649782321618920283076958537569914125007027791428054011614968497449917094667853307852572868444634109709685229062273914514812874323219582637368548682745832691152101555305381016768064273237463140066627114646325298561962227850820123485325811499880159250782755915323499956724847786690333609574438351069323734561191614991177871825499458088832381585362411690160357897251857589451743040528780382293364411867320761514436767243590054140112547341533661341807615971347004501083191469574055839822215938725076830733095972878907221511132332449645080762701452871229776516161524160612666804609381562621905099141692759459659129592426772252261194268640001399333046619703582667683480488283343746118282558435514391888559113813644928048697593796456861097729688135792438920315774589606721594644969157412581272573718243342878990868702231431806103365154815072264040051214674431737438692958910558546365431724222444265360586974442709300010013673863873714272887730529583431285523184437518455225209138749232057880238738434488963832611113173187909087668409047960639871366826899916519647717947422303996047984661503904974708384606442750900145245585805260796273278321510833130766884985033867327402265139026344305646560073353663263404469155875017440934733088684402385862119511030586388768171037633195899679014422965690977904651590167567745212560783242289685877181819223468689908354994160872985817307565555046292658123817775337718971211858120993467498627172284764380627157109533543888557070034034051899922700320050568715297664345476334776578118297340870936186030457293109178440509399336798196529124222480349517533518615274656666769226150834634248044287879271595458649348529925849068589656961483254007975037651494752160593575912921449156974841708023292624765503362975451049130386227580741783939946819424447385940277548706790764512040372592174558608870182163247187091505958088833186656377435547845408112865721910564044271008083342341061102310510258894549129008043468830047232278298727267899437679419604659527086554793810558981322620256059536810488927739312898250918459431713289078002825328488634651344589730315079597367782030317935308079276808579936448356333382594306060247573097574235427413653754114821447316773802614466311912204819249920170729153742308487360697385209119711114097787832050401001107379380461266578053502369032368066099198296409402694224900690162114364685341529319287953188563858992239249441886167948983173374604319366588292970375071255589744401871753523040668473134899172085610857655778767461067215631821919384292623503761351490520748844736857264965232590442336919608165254769996570794059606533109523141341199152265902444014883345736055565856089979481529306757452280325630451890554721823863124691238510084759891798225829453261352464063601153584030536772679081584350350489694393163477222835002431320053682743581549551443843400157994768766878266405347727625527784086757092042877098095376494922835201036531897600951418064340639997533406059731303451299006235512940853798060951590841211258326282221004169645841057489121588085802538062725040514220036452887913481080985340334356767604613232530664375412401050489323036565357354513879239920710770116382932430028125336087501958934180027227564215443767572452694555252235004702265727815581261786285662442980793826033404088684575687564870361690768746049508925597609323738615359879174193398440489633232746763355574007609684419551749796695608585896648690629709376591140027314070647642479561720030827486588475117516576964190456684303686971989184728672603046532210512238159789106415133569530062651613706876578552990157524855838957808764564621828352902899258890064139078941732149209115751051395193690152778255430301688669897753857699200002228036177987609171001668904601204712229660240179679517604068670418071724795616793936619767207135090551922526749577238172990347046369603743388718196270266275188159266409079986085261621063642084383377040462148451240489969921969124569765435440024969145227631506599630911041944993564179224706613813717471303967899024150412863900644734743773788907413927612471995985515288168461865390022394765257102583527206080294375068383209556263657652747594484110974506712235443445317814430489702946967716484649432058243799466067574764421964458237873147223679482789602361250096623235771062299407302020560222450932008202984949830839609450229427424374227550234881261107473635096700538830879342863305283734423322802616991752657741864613136683786089301064481138076090416178358347155023392496667129150225697095053927069396464759833848944592839362475783805602848133165739867258650452103788522754834948398770599154318510425049173031412240101281657165343168857869520395239613075828424852571887484021604658872984858528836191329287202951435338853939718551112065451203113746165927630698174615064417222805338643582681022284000975701869233552550504766759222811916393186626704617661976301824536646988338034756848093441024832852788812424944444285992215942446401339139239241026060684916693468076111379536526574710705605263464548359785753130146802421020624455044590259752137735827667471274254517142522027117846213508764094377571677680697704278490977686978172137291661280780610864755974931360517540254036207821409755160895809873690887073864358645919431173663368596506431123412497350203314190453933112887382136679041023842898157796057910320622265824995836329387993033609515571281838164150170781329050889553396695554460811599488452582789337028876776710082169463046312831364375953317885556189122480324213972963466940630918478818108858419591437090223863281764115133431208538986262218562854210556249740931755020638669590836875416940314376688093721448847600287313316485529169006749192853456249110782100895362610561735390697576077944788336507769954560695734872378793846558287865354674522313504523339713292724830166440230524798552096419294052107316639641945091484583023932433334331231023192132387759092483987938493411789923990143368658325234895151172551915807519690817266706057153865499801541476690125329693562024589135797776160406425316948195766388685231606305516657197732891193984020148019833535971435047171310687944414605997696048708753181328350692205618932835870342773277059639264411033341601689167082479944088761679475832729124407840924809468459485788363811153915467198510570017709007507350900646005760260681210769285826647305678664967876398774048933215162291757674358396417217235736787724785634968641058414812483399891259282014777524355149232979753688132670769232948008460738805504284999681782800423709227003462280534807862058313019753580019543934443711490301398111502086390304829378129766138774331326948413777891292612917492417798262051020265635158930659894966961195007585049539282911795103039933283743987696743197335702874562831005075368923046194215134942956967713452463878339104537524064168416438667626683413561175697759589019217668599225570363601006354921714582037312668937461757726390124167367895932663630495360567499827802480149957582912354886829892291716803186376911378663816248423144841676166317767644068454720150965872775507270174738271791608818052451069599978231924248413591037974677763874155277793420967997944472743594401496154792302402426917712992316952938976150866545312331557381887516523335424664183735546045713572758540714040889783250935231230823780413542214117383480102849440329078913915294276815092999205348425088722000684092708696103245745072725310062321845036827534115369685992269627426232112414897876496097244983029862222485219445511430251255021989942813353092384281984498454386312320720663975536518880480418583658682257371342767998953264189711834214467209836060471791465157773890720375571209194974658082154680430808716667832955560498835232629241495521206612077747464769249165081728018235651568569234128709563188240475650955721096740367300557680170493985094536346495922562729963018857497656246002530157078855594292299474012682832831766457604243871208972311598033640223495969630607748684346029983485095177255996891011316251617425328478708767144205769775811895171753410401462028358302913636276552760803904584387670264364678474779460722983116971867588678571250055968525337831329519208143259902102660217563637660890307768241829134891968276184004083279065011388539608704726920173474797861188094092490284995274764375617738086189147933465188346616840749363655495478038901464935909861710597975048479547717865325224247085456329083244354007683501668290514662426857389175793633236807572097691654728038037218927542527417669757753229467690332364532993694121457741451239976405697366815120899199112264792281530002014448512529648637164260100866449404539706304513158824133272051066131148259749709551581656018753500158484943961381551345911641441015819011510324042087739600887316729092388653421357011727229147690222807607251223853182328291597924943115068777418348302361330921183465550028404965237751615685217088508584267602035567701319686344153007816023815947467229512744376590326932992547657453123894069528263505083589596873971605513893161200525755108780119555750705882630296951163850811523080323841343492906785083926543665660983773480470607963496733858585027221192417253194477632055121781756665492942608688763740430119501943898308232261306006260852158039221520312744382220444729476536530777264599722541825575264413064953104654268630204309338235588378927587645356014555742080176586786727424983530688147514668776718498087495022750196945354620657887641664885155883331270028985850014080561659876069307450682874443842703723992538325037345683175014638059665026259626345470819035643247502562979430057395051461491124130503486787245370916079168801367140950595312501559702920364077689900565460940992952055267074027424994777887598856659226409028429040136974733173749204145201524593964821540151938470369094294228408450543402240541206085615994096687757280250578916953616290829744902386663899959993965026321369056904761499717752054372700992329347476500434706186325548240963527558282838817612962369476872026796429291877437647985366842970402014530840353936768135808680665440882054543369812673019995096384307051198752041619240578858016329544556379060503713219365557649875175881094494590423832142247087985645795269537679012863706183020933848367485249728577789316818495901665054339819833543007478919946120630046587816437632323405760283988412599361860513910521992226489542406693942247459355504147101388046594870877800320326117240858078658935137576835238195623414907023560636567862544148866135750399536697585033602580075113642234480091412059477874051473515848549352555317784172391158519866473870525318208406550199255078493663238251354408434922116904296504360019668024973541176145046558535725335288098866166961594054499340470597640828604701216261266115915507023469259470859276774612146397495725986236492047017959340091634478983319428667391068296478944255702520227824449099164118921555375523683420270801108715088614042995259427007822772033403221341974017482483929281732723459277369391664773018909731142649009791623149080461385313211371758626076702921631392768714659998751740963433332849900878496919792100814061007278692066568501048683196593334010230195008242406027125261232765156062335718971366756225191852344037427598943717816344179812446363313274604848206872903335312372563253880724976275864869602856349186709908402293715715142930543965576032265404934061415294366593137374123393925782293854253474205364739338320105931687883788362179927691776715214749507567856052950684270394253465796742342282692394150424603948425416591429034913640463293534677315012665928186960171362112670451390118510467230895242369920730179061911630776349694102822065597814176392608748996597354293779748882101090723037418112681918526435436130527950706628572179214882277583831041063220700457569916086267045688587926130123462001077300855299316247847452499172872799059660977183693932348677908327186667210066081038590826986266951329196703463162138529113212624179110467268447526753119776205608236156397060713164844163108320440058773487672647744717661844164800157567789347890334843371789213586966541025053556902934640561666488805715256728030763111475904327262524945893747855541684958215092673602194319139919152126089679203978962508609226571105792486490092392158245030839876160556492517729158973085705139529136215684377422981230729129036526369339689577348947819645809246064039743703030033714855025183701242012692062293262699482459640116774767532449443013851868480750964657624510712737247798115431557673847145589505656251303253905701157314575263785283090021094110954947368253071611190409882281973349730528024746765387099286965386086764192669646305919597295535595793374715475396396353006102113456847752810402437718290903531797401580290290769506719944274943856883998673408262721554459882941927792279658953832363971855010683576286140963275782166457423864324526013879344704034224344997727677751145290274334708783479941253395349083181010479101136348042744361680097295511016786809972590747951741214168832447208286315158405468636245788414793124944513923838184422487667999569676915733671139091705886217672686363362120126467280231610117248266879715226348747396037736049288408967457957967367149830670833710155770503841345854686076105347504613825113761236410165831327216605406605305821952718879633664827906876263738097764588976185630334636229141252980919383506329272342919972480958530333342509141498854235239869866348017987702548670460216935490676092422097571201269584824454733666243004367909903891681474688260268269136469403522612126615237637338389645057733360168576076717666026540489443327336889730644217207270470561966764681060894940616865686424026697450020742081439013753101808238688952082916702490634832710871238085932786066523746754758011792292732440842738682789077256754542225010087557175882667916562212124150101401979523608524891222789503040519823143186289147420234837121757532760871805392329780122944059163841676638543182659231750637814526588948886760551420740081584620330225728725431118426947483471386123605414263226554284054113987952399713939926616443445458299912939853277875784291224896780331671571586684779168867008440642082461992662682122162967183596831325629405498064342348855081532276518619775068046083742701571645749650625599007752547249329361565978676283167730248031130261066235954872199623177734159411372571858682237705625846497412282676717538541597118066113056040013047749957354642714849659046000911551566806193011082980310001000688897639019982471385353687176931441007568619264075890757227767189626412016549770707884315592695733385800012929608524631341219564895588102716456066874153080920636334812073150027951165584514382450929897458545310661023611194184175559993400900338267242241089554832205855061939914802096588102847481991880040184356719370766285182145830768584370105206399048295895554310357647754560392074319599425726193949910536732336700118581192962939249738521050079037008342904142872870690823728956314936060737717519193932284027238624833360227044677015875139058690986391788078942611555957593342004248358630828618223758876796970640990931904728174790512198787879154708707611927734140091697614705566229334662754291539582082405237642593583674660670867459465402296231332726713182195614954689728237148995287350381689882814699802481674802906679140462439403966219712137125898592996966378863309347457402366644836177251089681523679267076815879201525554965004392323825540896569924388556844223669204947803283094274469798110550244828389339512014299017548848637552806426248810492660998455785540546521864906719117363624290369966491790978943192062219664258545000393091225486741472260370869352137625765143927354089304522837728837929561132576895094618832339879084723592236188322988879539954166965957671015247451928860990159263881948613969111600511518284029212042099703148268128701142743565696408481465121186031994869671232463734574565782689111624309045413073119534176852066704313060050885674606912840096051098244343278117980017553811148238507964604113540110814028232648906194602780319552128454118610644843320200147219977807889265140847782843903509820672950926999780133433162223350681288227218767446132336304122653924016711216660787802379786979349842828715969636915419696805498587748618988448730279982278038093531606393630661048074898244194697737677697033209288909268965993436417194405420881433578236220946875076227464392212636962908688130952595840430476074758510250793336028132388556879527575152202147082395149755013012094016539076497047089904570355004656707291165097873217124616498835270004988387097697385474281817945581568735877062427134639297772914940772459758772303125834367345260164784728673080158684874967104273828860329624990429142937578200612396075421747923041830230246261584415421424786527127061140308827355820140025791062203777210718880974541606313129374037468060535734961470646349348387627023978883369205555877616277980707178811248441168225858261750370690956705950904876673781730435114354804270031680432767420399424066859409344913693010166634440015897294468249621511060560200183165953542089946584756439551192587144342849764791116102551399002323853397749318377876867148845291275202976258703621218305245500410845837180370986300462051332666965265054320386010933945595509347242952344225627581302838942121855602525372908792215607918296558399815411207125143306757628516692812546048383183692813358997560782450784876198358810973323109090517278083777144468698049316426164375774779384550623721983665165760722520804158858183563992497351015513484886347936640647683839674524433907214307900377990827885845754995757819839520653994000916539800045864287505306400932842177717963243064979738785830265137581612990611222096118942943715229549821010435095397112544315772899729160690529788167057292222126557024185229475682038021463991228256147316748691791310366392434280192949926117951617063137446772090814470771317266457085066133258627105957964860162232166086566932929022933274092074279797598049211440124271940529721966285737748179604181597828734924362382085237312740977237086559186335148580779607267943955631682565195576384523375854465697811055743349265461944775904175994226132496470925313611192482601357614175148569669895477161418116884287908927340870597662632463347014568986230041877748372014323268080184459897152060100835236951109526261546306475887311849831775282963018965738792446115185816220879312583646466289029123186306100169732588985136167461331107431883123131127130327427502193508742271082065486572483097266625438632218164953231598138695723935399073307817594168955692042393717488335750644021764573095437162446003919070396741209289786828533883688653257593079525774201805626953652746518064398499358294779282799704287768109597034252667427479741414930974231151661858910965120940293149390596461511501462005506758673576767882524696974622691247920646686658262735729981289765951083308507930813651535995304294671521243886157198619039520411856783309132843000585000991095509558363334774031504390445458103311831655597959961745829702017304255188902081558346568680252322303412393264621962505463751687778322447498967030711594798946272159742060915686608064828085015853201866204192562940488362000222247193059673101121128558907262033215464493932398508550111608756580748256218370368990081114825169253082041042787355673858829970306711701628006647089805920505500984652657178641077055779799739327684918381977080382947717274348243533431309220539547223015723751039213431357974120099748257685076095256470995713999533649329903296004160500872085988376043283878317846131811654398109611547359466466023045378814050870074467487209061349891870112988701854618217895707441017380554196540220052979428648719175869388851919437915708097661103232000754807639745609600881365686839773435738238589780340546749271810048158179273693522398185440781332433403014765527341207867425487444623653687118532061692355397524757666685257064614163538172613245720832838921277525056551174252546274095392530702647160492269019581989216932214976504759534113703828523359622853898130154899839500596839901583433535623480095569646085120377158152398959405857654325933904380354708912006446072343502599220757950595983586946966368889181729457232102797920452222091458812318363016947024095726788319482413472894040813440277872692854984645055076646100092223517128527598885982915831184990984634088239947209562251496770048935005764766286305563415170573992359868053305718784542705802381575803256891870446724442952985489558155918653463381031166320909130174361634678440515656687472139733316755753014913469055994893746017462824086045315140003588916951937127830188437215110425010191351476436543485793837983903079544558491675859276481278801327323042576727177923004051786529927307346136253778876362880721661782726838546850310943179233654869915228068276717802437357034898593358962817087335847735830761052278713958194276254840696265128746720097609185450894636241873978301978030107619134474079612949021531229706226503859146241411174040788392467164254394281371323580353696570549822691401603912424904495297786039373662098735884888587878818365945196510697365074569524469818284357134299064438812956540352921840343074671552891322942023826581277050683203538749693079896996723716739814019933170956440136670564516380396402968995306940872330643238007660636951230183881027527028733537711594579967791504135311758978403981780998788898052961723787277102392461976943131194155687998042387429440839308426842935469581879963182023612983546600145669716858662449068875512373015127948223723583331745254644929029567745359345022978871110895211844634935647432239065477707446398604899024509876060017123161585587490423288271273487029577547119743008260894242428703674011540529163477032610786776664664749374537247551356772078941927982000430263758061217518503538920079818055728576898418405657834378518790200790306755416657175880936507425949508816987708882184622169189745892042333462702875463080777331218145184533655210375949773859605374386220911380313027565097070590673830484014732786398945035697262351636852004896258944763177787107771567864931342280282312142918735485946897706100331893667410581358818558866548611017256921602205437113568449988145659557857670904292441481222216907984033628135539882060342088126840467286416830038471780809607197459263992851365539149594438066745334481572202452868900147269955146426402986066100555004639208323995976854807735955608545183750451867082954949229197282317053489660803974202449786981138064908960314591865887036065260384701677713463326519722047585277623537964871167003364917818487308873750255015943693958209646260755927161071252965003188567646694606691744973395169689089995313569440305664473820743130371722593398435506138415672971212944891677470053892958678892505667845452082737197412922580868117037667852665485548150412886094609231585943361576528427366500565814022377042002300228762418403961203050395645690735233683894550452380762644882541771594502863552111010674061840702449365401549902614820134956179051863171385055296065003789352087572747763580509122734348893371436747218982477608601520128738945124459863462198505345930010476617003171008686435760719727947785659439947676451424927396864125472529363973947178525075167581356668668242322441013836459108189125662548477047975254992746321044790789639627837016377103714461172518806455997644188445446843962710251121950421250306558696420756438561907967642643010827193933274981255229563624114076536022340760997709165047817797669028970272719127355496183669503530228317063420731078880300739557606238896741042946459627966497147843602516138454881213281356203837080094975443225413025280090052559063058585053044992286969189334667901789735122553661011163005971901194382201026146578712437143021952050739729449500606651797534932540596282901349102978183450631479905330158886693257335048829252907033764650340127486042074756379803460256429379300442439117565866267601235131566362564586659267530040743998933354832679441661977090102180997480109718601211246830521238664930227761714740136158897076463107890065116587514805828991719082601628321889133140906829010278724002829014667902617824702764741829706290170971518270616471996795261343644979639783379752856395897905874358897404782585351534549767542746622833047046667910436930144525401873687465930413638681493165601970226992122825759593318883863595559827160710511585127861628225840992095840861205692419006362630625603592846886751530077874726173674166876689061222575249666146091912318483125057496468911282553475965995056535272261333304918053713644067289692179719872635209779392511044620817587632065549779112038061165560773453992659815145782372810236704148403738610186669751850952192518257615445661232784156178398642402214965921421445625834248803163508325515564327742435077238527239096644782959478607641254819150358899032655306122455334278307398881611555953412488011665645705650440158899810383485569391258477409343574411869012675303375250483477071403676201495070805831443104316902994394629482842951800425299032633877409902745847402343097638567131239659872514679154302375733777037012631765688907920238909434245863717580662402284095510764008442560225589583674934763030758429462763664313593457212113248525831127112797191597393811974482879204701552791870663994284454498785546451113931777269717342850502481487951101670518312050325127962916547178065085202151651522311930725077697594061831946169332478796226856964226458918815140954257905765567439437117962268868578361292085940749283558006036924165032430300254425928198812366269464306948383347237640918490827622072133865287125121271632377384312543799557165013819762452423974543965843902484360433121630069468767873344334812078716273683487044922637953504654541872887315878470234080986972062414779702310237727405088726267523618573103835793108135213719021287640992908485152580265657905211866163030364988456052955938097947327825847165355864590935387447667953328032699517519143764872969636571526864405973325627602635018221424756869354468051881467935667346994446469525475693113655564496254908945794942598816684602768687145371747998507212278365341008468389071463912122008252348697604900064539283808482020442237378952414726016237244708112315720513626844796501365306540828706471819440597884129529223752803474103930900082638251631403560582645188069172635672534324613910101149798542566317794877602762560153157863565251515380580650019571619646911340460205725308099832666301647756786333988544885651968427853099866481713793668713444930714294949357190186381212433469969514898339616372157220417431104519009036951278026506556975082804877630083135022047230870805444725815913035252921056877796509765207806311707719785607707355997176332921841449949150004535591591954154410474544418384344703282888232257239134287656394030276063795673447643075506280634785020310067930054331271794619011472871021506515881534471634720475810876870390869132119501171789346068321237253315997041797444429711670025759956929781616931218448756641552823935661573951739349232543333268377839638549185725582430382859727004719538593622407624055288463869896734787680673195442841164403565546319137935736692959630541848470324412879224645434080088146883672668413212459292502821066369805191002710879171485314020802825459152110277567061274028030422942135424999295795534899491198474706938977577487935624367609621699707386092658193520935138944049190375287495033668778744363995118638489802463645961298093175878373238010059470729609340701611783109631419651269476468410246312262949778530989847143925384989942103852511701608582483532209703979318677988872398788011066993847128573098021594838770839453708068937242654761591776241539612023281461115513489790826360307683909979472907439024346675096924269774698190886825052894497999869694056742603161259973594940498132989824948579801743577059865614634231652210774472443553540692253189402057977676584159366701904428587878728455567319996264882762394925070132322420862064077534097673235690671264556123570077950992936957306202397993271631728111521379419560892731979448552028441471527387990317384475327650970506604498175724742030192965968826664139895974603263762155704343270220785543012874486993882813564972837903370189254324591201735622316473649462387882487153412101040169545931522324844010190543472565813913883698645560535922820210245479989957889814579560289830977729470695980813599970128627274860470965279085153914961551281324241626128976217008445349348723096262384084404980287138388062955879228401509159706438743910008873131435078074470598690211451908579971503026558002042575615838995484213803209642118177895768306033069897141842190815493138828339584010857502096576688088121670450441990768384117443147124234914001004007984917991092150304516964874508086595387714540988154593538218594611313574960996570881037743721154304340714752044645121938531689206502227655099559528675983232695756540855659799428762195678501775949813556569960104973398887082815236415827148108620190493710972598341405069420561492971811391405183780603013484077986117084921336075983686814644009458352399916854980697678787073313672883459530196650082708576174332051940977585673791846146006644073519590385697821647019975913636533233724916275268943047984126845240586816120748618913441240177707200854631198985601354688710244271863665303064386263981935038844585392967820674531197128780177203935656175052696413598987834366398807003213851194084349699678547539581821734717960887387919756133314556855301800335946255717089755738285910025764971283071072236045051788573891824750718591550552203432777409003544768672212540972546756743440763874422582439969822967883267367443635473352400298944346244638939881920540608621935365548209196408585182395795085248752523292508876236889070533806707467446994988813358832000228745147552845294974309482220598423759639068250274037621626754733463146868352876789451810492939769642220744254180309108490394971796668625600321413741082415811835381053207369865304810394567479620423480505395778109637694064963038796513203777428100520322810481215426421579227665402239321933467346858614447344553388284233769670081574127061146873581348179884664149774078127164778750891967738732180725937496477953839284173783558053096552833226620307173597998349378704148806552937811390344110930241013219519676625444678580365243522131838916004158774915076164229854175226803264098489173955873469030249460529875164601393933228655806493946430864142194105473479844154018215738681682562786968762264174969123610243912885167822267598618295322253633332410481246509852325946055008398095219248200028092289992542124320719810285855911896606263510677472192384409593753688659725022448342108193572334255082303793865220964216011934154657337148871160969550375808888288671613644391393400427923142765952682781414751606728231099595694416536979453186444895985828431290774800852027515704667905874032466632167801849633302102724155223262071657809832661500691473598758460940397413283525143490361920320951731530718298148385142134054789199368543719827584100975067422901375056456969475770353787304877763326491862149843205402963389262692521837061746146898053724914044981770488466831264220629379824377415514496774109274368060363286067859410535647451266926934608958884699625063658945086361273501976527124940753633608380798246826108001504353271789776936421507303385287554927956010838991924805507493928478672763656540176107383742069551216209743034954153356712058967010208271476758856528261621926482786015144764639547206549154776900863138629973308346491916116463116742797027354864290369148650535144289710065551940679532846167460173398889110385029624166129036219630699534084921445789836010199002802760630115224543308761449361849861484248917356554874423736135245534994116699314998539726242753373750719729673245724318263418811468137242833415215300681512562316337906930115503928645700104597968087302511360977432590221660809146982690385745012517198479227143069641575177421094254488392916981223544379460975921442660456980351984806192357394687924125099707796092729681112485281702766397783974638566958119115024453376787165226822528773115881342302729082830910793565372476156227756182457814841548242921909145868105668155031495574890514741467222335884215205808043926123062557261037932376663538442958080721873170425838746313272131572027760174456198281188057818424484654877908802307622940094195735800143361354618270415035639548738422159909192676082057253916516996612555595286254195174341230878085262458882806126187073838130409817651021524553340875099208308138955425858920547420766323912365565282896404165539237697969428534306450444094606359780680580216352005933595316097070443072225005708343607376092054865737016263159239582374596105831431542553396176439781025119363814156789086837460500685254185802808082903306783561149071281236167533303962469669597415718193387040893584492237883202942693297196669772391618880399945470675778339170267467182917948438976893330382422930494422641275738140833934972427935860439226981979154295431248452070046705058813760760583295756674694379063068872997578532728326837889939123280530340085595163547015780528043293821832941902962857285217161051095803841479118918326880320874113118238760099958035411048430529438634480083442595981781435386464169880141967637999044165493956817014077232053469779176296869968210423436974773289171276106823883865145889013339176812928312084752082938925569993548747647018686159374154605567582632898400392565724915172458538466099836088414390277341644068021260957237782904473961992267137089538289507475403913267310315550715551233799861478947418162510315495313776428652428145201894001882119506598116920523454815172004219333805459532873166742137488374833696331605805586720390863075786149133006761996118145541280238334902907785582029521013357524388149879590653756299084378161718961776383978842806052013816748661630824091688496972630737695099950647308374949807397254683516997973659621777614892505224499916992983846224303800354360210483634434006886751056360683141056640211599019261243966112104591449532469949615460659187170736056311596643404473197173309125571403893023974288822561760154622099141083343308888405708853746775192412514862116991776704392819277516150987533562733608759677179888579987919310021033064303204647576206214831641925472091733446998020085597010533341300341997656450718869207656583528694637085328173331474546216592303449603646515302752901229387711810852752976859036155852055877796659633472108707049330857951594633303399069316592502026091489458228218035315773636778139014958370110051750941134449858409420457862909394775695637174969547152039357059415016076486323918657255568583031491695595507252802056424936027496693198673393365726875241102989132721122874795938202314212767811265825467882147128593670536659622154372726101489620391156692709535120335136083008938112278359139011415549191925416479848001046706636322284232241202305388582824650479025867367373125199129085727549377400178593091139454766870091481467199222826940761205642199496548347450643494947776334584950644106218856330888606295842147705276025195857686049257514404237347054643142405515892217129800933531098586110295489676375563074277942373656637803643946885650474063401687370914165890591329489749178476331116536819539687138597528192416701833812872887612448473581606883511001353341609471618681093635009868671753373883860426565439563698319501518458302584742748974947685395554775790436376875042388180528138600546362702293437891208657327004802502583496842247198936077009374346873694581267754867496752538799501886941839780286151289423246644779997084193911066974282009711948174735870623301486274933786119678103580609240747770502253275530950021427281524065746070227471478923093661311585679786528766350385883143528036870866100052728384434938593168207165691578474967993467471067632433033100872238208641608706623737649941524440317900598425531725469262054888616926743829931596680984291212192441349131077545643569222883718920101828834946175667836155162322872288340413011100724725791521241284570715768797479573336748924067786283048851625857976911184008439747614889970432078253327020026312210351022498614427376071992187398756937935877969425085033316319301230069085676411275328307470032190746917539766144604101422869852637889243530233914722198030265016677715953074674958992052245597589689891727539262851264486210393157746654507869280685830488586036643545450472983689582239936907104444188331131875376426343501682554019295013660255572365686964922640490010571811467554176015366191204038742604150876212831391710816498744516307454406329090021975272578575209010642494818681239313488887358320806852104049727788040964386303938794343035164061032210034617177341390108906430303622582862176664104583157840116446950854057058232486604591203095359244926316095240876773734007358948895135134019195527863953483999717137751780864582635276595067248289619306246771293734232636416188933501251937670574443639746387767795878015342361285527528586337338576927165469061834605031074754990371244497764530686395197978712930281923051547933242481038630458697324936684194598854418633438938196752814340894379042389486565808591496121006405638911278818686095920333232557966810536365267153936568217664122437553768598646708065698892782453975498535520988592135554401686669631297273248015655391464368234316718678453479901605197212334336924950408433479145260662001508005954373333285333197737879144056988743402334030320362378782488409812739603122559839780168679504510433016855515831535822250015023191567400015095248843256400363569493212889738397341012861750657497151240408579311111499717124602269847337965344607823724958894827426516019692336262601924840118119368191035239803727821385954341183379759235276394373490047047421205319170191299107348392480628902784274683838007320404231749901774929885280606662217406860555544108330698856852255776130734418305947452119752040679981171310986573383609580145633579640544773100314764764691121082905794388641916664246266079010702898010248163849862973725615699949563263182194734502406738671950686140387693628176768268344966059508006544395087535283233710672224929396244545876885977214539136747801163435275961259831763412785964754756006357748450451668735262312219291689760810210188488081072517205647122695981651905367755553554332217429790149236171588848999795775977126983450306163825839819842778970222294579234879375244993546707645267399167223622297685500116670913332262198770001567865566412397849106741924836694294460006277342256886318881484491684536885148887038469824165409670233652349026395619939503024788460094029578919094445297981520221840831337046355031242797051989417972080279343907688703286063982193559962754015558994445849359046923012247148494063924979965620417712380759241614435644103411309468978548636560471353427978295177430051535599364434293087989154265512088369556951654380762180319221994348613249773191611613462486193811016430590313367335155608847462508407848933342987734076219523110306117028762263936687448314057554995797792100796991762715091503097812780129139462505301071016711219135429798704819688236768104321220970733422737552536183917862787557457118364367350153897033585035188627358776335728120643360833430112204855571437688792776571090548586568391025037941514593446046976679765769323482224396037722359848199699336314581906063295592661529531952188234492896013062712438937094599448596141685200869850472338809128475010184137864241760688617031027395881300610238821476458590019129095040303391969146956196843616356432150137257009445768540592259447226061133701239857394874322926530648826246052769261559469289238055118102404896043486978777872242461723973031633105039548466672110178828637071001632084796599042551220474682438755448871404668693702942042401270951785010257933718288084965371819909607166975797499213526231311883951804634599015291788519206464862580014914366660191382886795056769950450786264379867212931918918812657079147815643702286367808994518022902562046800583755037154461497056754878021578046539880549776412178337349724586835372340338692415306106682728295112785123133816426158977050052425311375173038826709732014932100112617415829256708813085556350723836527792491832746213224947402022348685257406725239868287322765945629201957842449500890619145156751630573748618746648172772689906954060031288997119308408392595248077693840303053308879267756286819659700124700105976761522983869243269804230923932076680682448163070874007087285309992888196095519970781191277931174413607362712054575399328048386118230466878325511634629407985546697808148588993208785388965970799766424658093652692659299887723497534228367309374203690531534326348231751797595017483230577877158664977059779067691863407529787682118177836994933260321850878454667080420026778464298613612283715025152176713397989197984869930899659057142943527048011443971798437419883840176850220543425007924817597652813016628524990173830908808781310987675286140583420940171434910113994049950152935873075180204455160320166439460002125149147954788638410505557245771157370121538254287948399869935122506037271628013847226382932858310341775172660879975169243144154038089690830437020677377026957279063536492209265197482238249940110062066884016682077374530793151627935365715624745183983473799480532476518049381411948656779928706447876934440344540876203037877982790958517168072810766250123366871600635840571387039688649249296082679205077449982038359600926372045091742996267615614999956323096795292252966161153287264554286851840084989085436204061387698604683398516306179076887146802875157203228211888637856431534013991404599065078809281049050226853618430796264737898580158781656677049526175540584623448267320158733852013593157670581288572600122716164621194141951754266088555885206450400673147868554326400803204160088111758605293994664188909207010162848124405698101779867586022640385664752514223702702863711453823009989045209857689132574026185074486124956058393497057330494404606900920915614182189522698910929556136205976139103558545054627709198137467333346578952353968632836078897373112194127195808364153693142191078599842261734131398994311150685232355582427417866770562636601378149897466843530422931984980762922217615750025701586474867007460135794821969785974444270922581800847816107795509202891005058532581084155621728137979718185889576223902072370071610359729555638600618569397919193159857293048313378440265334696374912706091171034202809911960687519355438234095626915221514705118813306923910993594436813950711514237282895951568244063665819950145030416531785091669631339650333692823740938003025227235817649978946732676640875307949855315874665070416236277851996881811075538117749186643679952991637187113601195731855133483313821529880101855810580002358424200422098462254648385513808326392100300559871580895441991031954258788462882517253124461082368307157457847505125855490374161935551018278832843105318679344734042878950366378128067169574051850911968386123477919157760733373454512188176058501868939389912645426873082958583778095339488734199487868740433023307350166216966440842016416360654213934311134620570949644356062011137687346081459702091007853129987708326741086384269993130864884360360862378302830425924458091304874242502585548310546582306126579261769372200084601120916416769926036730771962410309617634778217179038046287005997658054818377791822858340692381277476318303947410015723083025211082213943817110791342301232970525582221870185057186614762811888088391101769376814038122536049702015918101866363911340170794948222762558382994620238001219921226765768228303957577022996343623733974566532034293705828669626835037167699460098086090528541029226583718316064582659803879749447375891192415697601239529095714628601675618043734405688957792406101873695392708942767414198398296876961231703950186137538102749937797690508145462486087885819299691181279793016131305509285876517768074059218914681800748293435701815269209606257738163404938550769978983977149715527539748358789510668537109416332952659282520249597859567045552660275111934993358203773781160519481102702100452116579852697448595342786708676147458908752155604864161862589292921285627692944411027002423640883282507644844846917167246639138634166137958123001690358389417064932296638979279309855334646968484396292740038305263404852849918401166920955532701701124840973294740106188700609938455077010560954788008533172377127557087673306276538428832245182410239563884612924784986532804677607150155640450554949151715484115045093720966859801620841855355487208969451804972887593038626637802140214563864315463663249451882406296414635876740525013989577931782185224286873703135454694702065157248737381594084317529806029280359344505969255323753853001464324321947420473660825621017409380296826227132914676670933162432902163368965107469598536055490527017584289360247608505457043931064197948166076413942024650249924755826763533853998777774991533312708637570102670222540067336230900481974123566114182141741921713243524564788127796820700208025084458971128581309975818239319663617131235184337014973633904740065454353000126006727830685096878692394103124916157489676122532787565415081253198720804076734724739121444668635688934206368749263077862004848642957851193967873048795466400179151437686948028524148601870044003610565351865975704076633005960611790407142744251666477765280297844638041178908712713833805260082016274493941876212471170802162091026457878586019140771003313182151793979129951559896287249651813210683452839298754388995352157996827950024366785643370332705451308001138392002116432994842595810881118973225668224433891540165999716718498780933349954349771951203466993151476062388779183761766997626039691824682174355856498798252355543254331588343971141549608098109606615356076863981522000207072884342834802461660506881170618770687074951339972752425665777449640175151926256418798399504644145405087046111283737093896013096265670400067698911274282998065174123389928739528876853169347258833073175466068606663725362036162600870412415090981115912215267972290576723764724916558931977909848235929438890974789479021409310248255162114456334899411387193254764030221472112167727176906354401183159559067589902446514954067070984908820621773937834750455085162343491256236303118769227498858779624706747490386529734761217471097849919018776470997820561711516545114652298365192938729357934411959808480829129452179344231655375741939949225899341718045722488291152217198801637336069753903348387032697953392832949584226793351874316550855413153849094634439216283892366054292209621265692569715957569311379637572066212762496326231330287519678683615904035816793935467658438808508688538097908083993722688186531974307654329118459814698959464633320024281736986326878757145209990558580577629951948560174822383951386677383284075304640171623528150702846121441203133341631235030960598573589018142696859678765362962756202652472515795711717964404301774836878416041106782841620884427213479428584234901325325076370196873226814640824472866563943470639488621886901071718464610030981848625385610795457463106078525376639382185288418020327679227735911124969914025066250115864862284826412684368572017047922960932662899890414490703427829401865879997807483395580851648678918582875773834256733309019196864394129510773939776221611578086093204376368041410952095214034604575598853390458543058379414610368465269737288025566164259576888152281118497094612983368664125650414114737508329603972297347565965695413731078168510083330221669440423301489619826915083199869634777677205558659776768964878432444016544679282925739861173424346050190682419020712507428961109852197840706086994760839911746677211032784528426568401603205422893507816053305667726286853840993434197064607478708437909156909619918439684587347189442901287681802773623262957294258005138447764935569383386343602923036425904797463558712254756234575263612094338920456319150350575131315207206945672077422524663705814977699593569950779676117292251933242733524891828940495679792013791162941037219042476785094264871124843377586613489088068764658584529602864281764407921701660044246300167933028772453022416852373736862067514696481228601842429553974890433471984359537474752960404311790442590668782217574154370683170098057614095781302885448547874325690168164182187092954102658845029202150038550301528197784759349556923580675591810988702057399927218001458396884118046301524899336254901017431421429089778936391752125946988419878184726676097831553431290877014616826954957031813474755417788151650957892790253977956220697062663283698184133607372115516688750418980342113913534898772371810771973351404172599792492082335462149655834053306619802683268356935863513106507684853332020103977580393169598127382660931248167272462487417638566426161622062720513932417215645592047557975961487535171771881132987642605987081989060589331287560984836226619277929918047906882498304502917025188110406114572000250866723371464928824661193584245679323766830466222024100900515381333659469867754179702350563800810679559688498916509999703216724385344511991479476003011820481834610789663825259636565915125089881336948983011161981369486143614998526072151197319089108834216952185767334557914404929540712105646602783860871292475554044480096113258719328640813990389822320578177132701288414626046620521145477487982338211968238906321579333481409032907365201654386749130986395092676990721543875258611191758315666637022790175403944283349943591714629661780905622533299608783961269369625578219270738314402340979227234300669310667472395943211819809653188022163656269508982279132477797758134968149502348465889744831542821112110420865327352198330606747968340026171659914744949178896720888872529167337269889565949442771340221635541407658687850098837043131307289329631784252433159573769347479683045847320849117812796397596239478478165909167748419884712894757966755912736807998454949946998211310915424321604332506714914529610940271385269367042245010333523748109265342519556323241684459162440259037926003666090238082304751471590937185927416865889562554413360300416703507212233265893601522259624411725464426850732283096986642632370247463060387693870514780678164056431020870726481419284834839552809117858381902219587375920974372125469075843305885051813740486376481150784854224025082475161383554090466130738423445531483843132119648088239442520328557742772028890718937184573930044600444512622647054917722108587017015519682491677831777975103433020196533811132165437678575837370153508555624148101979126063930210355118432327766321407289321662920135040598804522893722267166474070745074517730509445463853989244063953345781796968170829522598216568547821752661135080415367886271914412597830813230741516772986537636076195331658951448282763392930672990507954452674010037689863488973698249644230565281266803634135446617368827739570535277270785664086845957366640862843164472135976806327535682172769227875891880748676830277623309424717861299024478931396756748270998644005844104992489741178253602028247707327911876029635022177988726834616512917798988260432331554315391281051784063041776040656871738990832660567903574929641747509626874001629061549449347979289932245295862076820634353212728544996664801860248966679751472034674076174012238795533388075866413050974871273643599610478791498293175957012293808216088641731488799159187796183769944632012527630292917417219801321903047021599092733841326953154501047900128457088958607748203378433638118458243100608647386263737892017810597728200182660647992874473298683268527686364540233286568606279932669488811430961333947970328723779507710402663184440500801112072171313115080036693278244369271581080990910333306680869251673161530217366698408247806880875484671310366420359939074637729741699980455221482708228098088866498706497247670185530666079201000162367878403904014145637955432766928455465936972649109553948882103073966538379562038784281455183374671958203564914282162673832620084300602536792250554040558382601258048713313667968816563033992448985925703898555762933439365516251193755444012837159335348450436531182665218022677673038494330113035325850417271944675968113384809384419678476793319313407337777148673189216216680312166307553684931588173606916453595394333381452536482951385925082069584690130454571349843047156563835361941049587058348610552264864001201022356433547110975006331463519345658129930677823338354842783222919814195920960524851269016630242301253563640311332998889415936151099883692107115580946280047882764881723733642387963349748058082447008072996213915219746917459964686751414859209718490513633923449501248372684281800511993333161280539845775012176762158833085023856350058708130643240688985311020069957514798635201131245778289509339450547612345801549844051892493796542003653564314293146855054604669079873013909917561755309629672030480367684942758490361998971987879884795473034491294521873597379651648121590654054493588876780396894371720644898951438331062415897995528657940924491688368280222049256209409739260733609548523485190674436545663358737691622644911397453404317767678383179396855116040773719341873562207377355020530805024340458474284085915039217673322605290168533421979308961964397111837008836915732818597125458314588955806827746926854027166350948236487288589584763397491387715544807542335311935585835902147733843577548176123107112057734673672793025628270749074901255495389486404797678457424514671937712640125721749623267913115805297792785422340937589585077670359633619441052390367776166261758717849894431851699356729795239020309678148207610221175011496910626175773603221598038831453706771502125368482358014862503444421874424062292880805912473231449663252090606013841921784471180572673067995154527115398029485954962032094584310247966016017370495262765465990078833339691108976583140222854254066645387081779171675276008382441682413629263584777493679214237805044840608694138578909018383736404163103031439326073160669111038566123084022272828847074556129674792977928965649493630030599863370699966578892543695930515795978152822056952425657818975883716358258009270800585365079732491860366741021418831551300005000954429652190207613226458550495098998691882370439854041210870936136861028105195332080505405944330391661312460458989845562371977544999054045588282507913871446504647748181757878681023410514068199990349633338187654127283956862246511067587687598058823024518252041725764710545565655026488053652122729840158164515086274869924894540352434574375037427450105485519808464944266655637890285906584854365602664530962396937591049740263822618619550706570849444263376522252930687767925914108888857493040495668917728980410971103557016950454025354615838669980993862790359891809632224422129971484446322150419412653248132048755892351037999508539066606677241168849172798617949502742052064790902986971445693929673410829334553327804883745126861680317831653416489423423965396976073262781699311248973253905319558924818123933590720950711936038008951354979271187474461986868915737904487781671980114082718069802328464506291649559069117686764344980771663279848376171449537838396507559560768102107236519966395684589226300049517896764685985309315575941588520947844301332526728594924453483756696650974210855368086652239257673563184906083874644862366562097465302472257714205708937327247000537761362406340690880087281250124805651627613506953490077299052694252102130931659559828856933190567514139750556111642375790520349023181437706639388390701595087216850147218517570620504454990057986147874329846663619861052041258315724567021852080348035257688005228824598365506180424885856029171154840426708096389906960533811158551053833048770018324124620521699196748252690068053529954374171847847386549093130257317484257612729990759999180900905552955898968694795743139557402132278779167660722642905508017881129894434857590487585004051907671965493853532541931004508894509352783223655413483374701104633604755290184984146623065768481426670509053414739791513453479192861185285045033732475897788545531934358393214256300810626027990009149935660662686692346941993899854826162102829878992173578606883189748814508029038759818337239057185923593372280508494813801067804196040877538363603159653515404883773402606001114108166210080788865565573867646682865619323729475880065231209493936188694517324188692072835087301197721931941661296573520850047303061082961924724066830683838350582971724239704424014677350699423745010141425228510387703660008102918922714452434194832714688107250813552254234087929693210890357219869214175373304480027134465314139734338474685359071290231117123831382675721519545719399140778676951358439891479803337634285345116041368982944535716805698757413652492644662878167386036214881696732451485851329058870413809781829535228350132007330148702539110244944707751427908550166512897015997676466460058413251562923103841895274576646503620999093791142724307683260349028801731604047160014297436866753279657920881371393061945183320214810450582796655543017905774855799144315330187594528356802419161433091599152291010979142639382043192187730257871974679824645510473681861522674261290673038175171367769744089374521239925713335433092287487663784946926838170680975668229474277419620490266183123882302859520372531800763843171479148855238728258551084031570718159463543219771176155302142031652143945700814053679587010977696268333751895909742129185908185822760145936499761644783281863989956810649423279473441054880081994415981183039300267361563569070495905447405257797923641466772203485543226173406383078293247183204854816844174039530061316296156411023478970846619846224587344032457629593270749813982811329638961173046588186556497836945357193221556197733746849162900177024345766261754299245325083934173257914454615699615883455271297978178346191994834932922312835021977703647411313570793636495589766452000499064128304642860777848622612947275637329345437245370808067889793281337869384682434700256829824721711037945966814889176865722972416606551940288263275939948119640375674023684251642156443054974286936008594335134011354090061992869736323971752653267710793059454258766630576263960474690550326059179919225299570968793670608374117663607667665395433896574667584556882828429973617928945337198300961984591949760444259042123085466855833657760852056080884821503416175418577317243082665520694947622183919606185300218405138725646496925573383565486231548555105635147832494841600828729979952346686748823593003185161533218018628016322648696320337839867510989459684195930349121119606581852903032167834653504591609286843648353776935652099264861863912953466266133148783276799216917639584146807940605936247972581528236993932339719780921898702713293598248783788686603415874300977234662322041212616263908616159427405359265841436698115928497967429002552596529559341384776730976286819197782316962100899472866158189418098476524520313127148068495275386968648760740264998999112105766775266444551264097565978464339566831326860905030536422114752602415954811573698542239464557092210796193509750276270911872077875959733426006778420262013632004016921023640378029550074186258723768472947726015589410014304326552038773698130375459121289026959561835719803976213861826647972278743416650147721535488142917338284694454128180265362953067371195644552846613696430156190892221057338257212507593316465283912213313615425947133640033832547714793237032252226857904212920530414226476462129875195730299495879006541721620027562964813543883518774219816010477396675216117527104841849912071524558256723167934750186108693453658714847990631421616224652185287541541234976009284781968832364423595008227571800378500457869289096346812000057582481771214136227691734618439983165476272593482780025885855637084042717039495414988764937969936488318867944532564614674408601373092792073850684661044857380246205036576560271798922293391448263977203660531466493604871361924632790935853319371780694575982065542250819987609305898148625863564711508269548447799625617741182162623472170975086986449073223335315358799328819502423170144297668774341874112103298957692532618197503559430576058752831752909778349282630774575297147982205841130150805346719847896897881392364089801961241423467039970668385908992500321152093322674456257867962090935716065316556512859152250045201019365157737431195844895651356593163868650840759900878607274491492260700401140852384162781850248620014892678025907294948165488716878407999342792424232247709069703104586657091348054258823499040559839308087164426643705425105448055467507876086650603384885050106076939200489813806177702280163580964219756730701699518931893708188928757447711835866087116768615004624934065925106758463767512381632970896193383978677741163612427858806574580926202724799667563520461674754629352970282950093570090762083317841310484337740761495047338428555830553892832570800883869918907778447768185821529554103802529804998831767796552591990190181303999373677379726841788404868487031718193241762404541973605978235265803629873454874925253598159221181944038317418314773050807892118323357388413570186663605580530396383243277284685562329660649257247387300075240478426734606962489965287012801445164012936170011137102382624334536508456310437128184047124184506960787893479960663620598906139755241407339373154287807684468385387626456987074761144794148519230988133326669823510520322447459109064890145244431559322712093242204305536208779857759728349136029369479343315215888813319139282711788445579098185233570384137435979082573456983863602739762056328687134825092190943549576019526319064021069386584502674249748596790084432432987794740258570327176393516917313445501010680414377314022403517155539891648676677618533065856405200424700233897844410939560442144938335080951624503775579239052207009820262089838120611845022519843657431608844290676697292244508471126666592671357014653224471733138848683570094453055522995175513716665438705864018409553896933786117940574346961179429995738909242157021104192930720494334562067534892761878200458636819291297917313514633056513391639931694883611745960853840561753630507918829045902796184131622254638403738409036076454627331518947560961938652967216665692071571406460308563875708867403554377707347400941539001171652299421364112898691117959041219342942950216039797971668855820592701503334333199124518488750419878192330316708938749645490629791387790084877911072884592317657654922748027277294958230132568763452459995377899401380383052787841360443822847337722680847019501155383529009567301947902224876304292725096298552942181948064232975014544983267121145283662472631813302038470106794718070825751218722237237005590863055968147493986940616424934736143878026782880847125079069182042431758592853060190278051940862027918411343795708334637547214367852178104583456225201130934537438366028772367205264013624792275952245476744373312152820792421345048941843107404025687219666986748657743916108214663888696729712220004779141255420635107027343701468898562885208756724360949463260016274833388888121546330646688407631700636654752491616258649155951887234898445223274899379284767770721612922065230855055708528057279775760547746680049427164391139916276844909117103412188743937327039336376132499821020183817943786762607997362292514726913234954682062502553587060818682159621493495561636951291395204935544291972174939079658279821913754183756311896604814850109680219934041900685445715804037810935622778855393420283227788724149292090401748774813530973153352806622301597751476449861790760298887986799008030681352292281203343313825199026724547426373351007530844562271920836571951398782443157998240459736384728745861230537021667762787093889795233751700281879509885669489430192605671682261775120639786219566646984939429377684415374547842250271884093846339472775422819886355529864575668666807252808727765640358336757934691174914568830413054838571331639234572941532071791285255218005218209293185440601209160356507093130847332537023474487451020407541032657296175430881690958690666632592092334619076598380185711118387712636962519393210217219601095060025236480038290349113649626422065449391759262884943096612484198853386481641528484875312621740740734045650933941398411593866309744988094346105843193653668289285028215935260162412292812336930998007583372194548411479716051106417305118166747476139846501567004041739306641168080294457863348463995919870705652298298491374731555205534021925869758000292546646191327186160934847627262846845694943858522004031883413139270239183081614833365693434785582146970658345252212209112176467989554461019885264431463470265281733252712644436187883923042611033644009255116403546416620482236652877156279929290049587823129904073925153416797543470112462907456803133879609041908779684605806922634759346689952469783973020778307095241392564981262643482883423659611742629894789510267543182568075773934116947900614828528069381151629464602760884210537446151786943190862666645638768443953273825437655927960503477484989083099623150727461016219511702793106879406796263665030714788853529397665345051147159903852896554819431435580212833599496754781951754583375968351748299427106964959117573375924414489078412198135015311818828352164346790297728754051121608030393238984460982588421359044001489415219260376381402313503520744771576483804106960480181036967654023237026402986262290359920844008200755596213052846448227996287951767448606366163466820003256191666234278257010516804281236415386507523506315598624315115050307159401269444414644694784377474177683470052609255910720074875039301064150557392614707041382474651204644669220605292207321814068695686167878364335723999420553638248441085992872271891840460121015444261624473904287317190164602187354452503047051594770957680638097241752571304190305172326291290733290700096433546273671820948816130167538472115531707212761119112371761489177670302227954417706857448290688793195381869231016757141886418301119931172778285094577556707404233732596749379804865746579622426359684123997079195941556521228859605988844266385352334012507061838585097664855188311926287422148117671467560238839347400880306427040032475061744484065814046707480215709033938665952673234995718951933204263342549239161310739790407626461189480026068591185440460360297566455927587858007040621190890288834730542229077092801172644889396591997952590727141878443337221637987129999872089306751599733553573363096608208715557904663171111088331675591405823755660188829818773935671040041483260044529376403276922475623080455603100421561233978685371621648649346903229407029555107158021459334274005842018461009893368081501933092133761676136351680484382577083959811030110613001130335136469065274167312590228970205407827951499222972587707167879013175620907586374279914782588208912359884349153557598334203639409345942595850005978969214172487204819737563604562311032409178970401146437082374352469836639041311534552409821156240487962150289863195501976068011047620615192647636094459618968621776706357550962621749214833724655911401275832478266351066716656526047597101008659929057578636503267451194440526616061508868804789346815403664989740485276714609256904829440391219153975712580693271308544131887600333773935218847210656462147392298552888383320972479723917603796771091226224966345466785555187742127545365872449991731273502587845380779468383270388868691878564427636807211500884228044178720844277982632272559544141720557986561552311180042402865809803957055793498977046386271179743364540419375023207564573457330390986021579255883852687689897648787572147349419642712563295576128900488719728498757906685672958559851418220044684776716087003667866716694541806781471677188284821206009145745003924907572066483207358392398953096228349091685903037233197554152275388996383908448166658822720986036748744503086375531806221299534347216039162355210830288105364527797156943958081327792796795962333726936453014374829825606403652784380849122435983090027159524693257951950279412061747379571377054164386301240264386040993776196390305092353546804247449489078474160036818962473032694061090512024280532742354933774297133941883436343639322082834315699886590757236399769832183742511084451307971403358961908692669996103395774031397179197379864403007777916563116495405408408429062089119954407275494382453111880109671180510527198158277088029530641436511756609640868984631101064160728785909993628516736039091097428756467753649733152343806676991461874294430556779427345721722070112031106533106942460928630993422080497223981767782720556002647037499502736433637408545170349458069970590904461460712755448668694573483882438876222033532160697599525034919557546162555281587888242419092625520866859121380239840507113344946378516485669540438698034968073808791870687656129984517968503737777407078323551773287337599219568696860273402835387368637038602203477710656394291301050009316410576413430471148105358832040528517044452111988717933505527546519180593425718505608081893335022057569174700441487260115156414421105110609358899023419302370628835432800920161610327290033237719154738364359517608057929128921451373228112379380688212788939050738853028588872054304578450403494463360158427450267973475504965497656248680833244839758986154302426127497059572923156125116050269921914724158632282904217099264045541214259072084244674546703954017821033652708657413717557166887910299501611796205729746444025199154749666094123967264174637096931385069099776050162627712233294562022147729359446092409375760108288167646251393986861830089018931637643696780798967211123975965473886606523708225409212317009615992058106537062397010113694027044417720058472006705180436487036999256622906516813718369020601533380041305282783988578572995363799690233787206649705463826481291839586307991452918194592208115820909271097191762901847471655695946097275458164634979775388661823170383313810349089917894726740479331249424301003321889085142193911278407598626550949854238318835623350641102847361610111380885768513646815933139017064139420137526705439740076729902669620048694411631140402446984725368650213498658081955685137677575636474267518046065596929407562825552151895107721273777093129341302102128666869817645001799386158002936549719549620056977890977469426732285036031087991660289897456712559116754068773392773153922792965813548842296651528503051665600579728861858291701744970434436134319720102194103605078899368762963285434837804375020051742973133444723037071878155996184293866126553539347837321854004535392695539680016913423649758421265596195924427483925158702465122700766160459079055822848111272268348823970842597972290394387032137746422957931241489164673662991838917572855705576151680009606481898364676532127833253374186688151976506111903154308829716939009592034072469525554135978778866643951189702276216540137208804022588409955140676469878200469327350671943706477209586358157968430650314887728385138412397439678246095786954354014476588157817341941852712348329652680146892171206268299291239990398420270774359373277112759254726549335045633032268688860448701532326944415258205537637117148698029974517603358654399473453285084928582447107959511788581284602640481801997742629118427222033212264355758285826343637028022379602710721598725980362272571032060923780811594135802633442610576626773860881510916673786594519021155235697076951948814651173368221922578244645286148274916967910777224842516724135195262786161183194058704825169667604434249332136314197691393544090181964987817408534278880728237680217567990950179294560056701677989842379696186582286549397338520652549238016155249986392848977395298544300364419142931662400738427266209574755107783233139604365316111831577632924052437397969418526652317729158446070355894895595963638286465256135391526407701810476315016966326121992262264418616857239324139479527960812047816102659385247422815610186261579266941150894086036395041350315968418851950374350037805815571767506610200840561341081611726571412172489040239936876523414879042524382618398794164394516348654526652842004683254302996283429969011480240617837973249523445997655913280676610860135681523225711918977044384097062340967459802989038594665533800045014068205191722057551692545142599510587710837576036990990784130849790251631011383127105405216565793411282346636959901323162652045573397588320665780967256892396089764636755120577581528516057124148492831160130260042052030268833541357612769592421694627300603313491246140152105056798093062719161549399825677903181936655511055052789095197816935830973561346457424024325656409445271819468781287283878014375653684712369740060646031310894634076782217791528254641837989713960912541255930309272467844246014089177733414651481663913758865501738300162299633222443834723826553495416026796410938907268520730108324021004522539022035633615879618438052569812095782162367455975152073575678823697061676507324798522501483198877858624875881540641324069717497184700157555161389615267986237742634900111882571095681557400010916833482097462961922877299472139585244962771407819139237871283532643810953937821436916686088438066112047814243576188838230067079342540636588950846718262524953309513915736683315780535064280441228915066028948485286848200315984692554046248073005506147836636554155958734930569413379848452562949582859684475420270414227293151681718344635835564415230214746615283563864090267133479335895260418517628809459407966198235364795644788602036306790926589257527957978641716305911994113031699395193250966319143587680527869005852142211629455950690005277580891602742766262393055819025618258450962171146679927391412765554796500997651989600844473433934111051054535380464035102191062204581132734422235343845627460244422137536911545407408901293605449339923827035390405530116363842968424600025933231461286180322673046708963350967229197303004135296219361255500219365549486571361246409634496721771223347912499554767895519489596433946904766178099393846450172789316332421153283208164257847480432949918387415658894945910902423314305648419195735059378661819280209164430363485731097306617597606318803767516920669318555711681548952952470510013686108812651890625198018352887675805548469481736175662477839579832319462645246483721103548479825578686295232412044523001276075085945706643858304552720744605233157967861532360002702081866387869616781142167580849394895351583913593611194009675817523729183065806324965179737580022326612400917367675192306949073784286610177172950650527969998851497225303514263640376660452391946725146347328208209194900469430148076497464293218700629580568627099855003502052231164129297437324565910618738712495373520182659964123868135674520172703518993754986847315775563058385762278737953241244194014613740939534475039781482115320759919030120715494627415716348847595202981537090929809809458612116537266011109395868813706124868676817614653596196094228020090191942834899014188612837547329800049467328215364655126988351021665981375477757037493624228781672090473256901990176746647926673148384652984577473598895965798878839181516372157807339478666063602971961485027205772024805853063703540066572553047657472746827591897421269150272103427228778032939538754998223142199321520857377252095202947432772347634962052247298358571781874718676748131237549861975387454150220138431572589501976853632300198320790686028875469671147057984087132154760111469952238910132077340426162369659604096464995766328538495622275933719425109508794886862934914156407245653787696229667192175418803753584089803059981981427364310341214154249338941522503341245111760447334446106790284379142397012748329602441794483544624984814643847693083523707098776927176408006733904108982214483629703845692289201064344069912856812158314970166041980276070199242573360001590674258430567906885000747099473585339704390412674177757949612259056141176892227875231775763694853888266975238082276709532866315368375448142554855184005916225610790129001684835352305246998069508477846230701380559613183888824919770314023446948054489195430233560396297070061992399262191865226164194097251457823083124968479570210207064887078283050085797693106334951849586613847594746051089720193118487909997996800370920241133713308975274996692496715410042679178241039140634196235288033733113646028399859593265931300002373606357551020121843523689808533997937037639095514380692815628716609716126067421915767800990643211727900925666957759898319927821956671328667330515999713340932999238683302150882520927230565261363411594334868161100197115282630424813885681051659995653778845702764581699367145653430101073865310441793245234428838443103729785746351399047624888676167152665318538640365921885365810917801796783960371483270889556410672445218025053283971963132633419576467124779622352464089634567790726631612705481095664222090843381351768534126026376235662129810503210060889123862865379471503820378356736119147415638744283690666159373783919976912513880169813099289727924563546251219774262084646207008457821324503369175535310032914498223956247158791755922007859885331305679970590861006746827498313632060645345081812555355171502761816626202347389172275543458048644464417190328643103368896365360653058119936131935493717717661522669907088682187943181941464411911121883846063224800642426671633207803467767127378477765464557209947325534146229537458985379408353111005785399415828098020323835264823440341244359764376408796086887582117187069045623970673562896456345495528792853089358686042932414814824452018337652815321392887493410418422915692307144959779323122942409952518270735649037480211296682924352397845319327217170723015596897505474314798907843891365823952358361581939490970439478636548778387935012254924081701170742544667566197874416940926129642021073156500226474293124979418425621114234200724110123298889444985575911125798172735360928213755749589092890118489468493449065387244920705902400613783033690436389341036498234287629272849613119561886998517012170135774120441311030329168042460267569099905709587444343199264930284622321093539060297483489726809162990893777348052500391804887226645801654240813423311610633505730852698312394906895501058378508582583848524739125164946278898099879995957095532986994250960720986429101574964353808075460590211362685664585096451598506993168701315715032426146057731465290196340510872569996731063848959444452854212946991047903388931175483214271663175290956256892992084570212752332863205828917271116052450618393003275110382238104739913554049037682117647730615241023326136969164087062502980357705299713791962860275800534051216526056594427697148366811553382469512662794821966420904298042436342696942767652306859841147143085000658189593861357433231428289200390943763839520856965322959916368865179935736205586428460467879509402149663043623409500027333190628455254232407996033524296967398834265659987503385312391226430685223600909820997714908527426618369850976079777992727570941149665686084175105843169241192653833221571182420231940316976653520948967169679865144799624008256471820326800619395238554391605990792324465687614898430844482009097579463592517370957553673900900172209250185134134428581823674106481705813405916125031460275230066464669819662975752589193267940797456223259157135434734457878537877536715240002690583519438915828653422725940096830426646298418643551442417012013542762046060842946383648554893459105240992264444456844358646717626587612103420659475716517015322102744427009187459062148166076525361184607611865890211296936391688902570913167364089204467611122999643997301327205537800564319013708153487900581032735559327359540133102099125079158168415273353556369517801884906338674527437885145583271380405821398426483691075140615670706627017893257702682007468861858576456006327966495858430736478669532253845201351825907324182442885273223464821197171986500395637215867412504361467989873270174078018721973755596593398270060155697805246251512949129906990674957610550892118916219178800487295412002471098270458739130432194414657218143152681954158505459938546266178575333973023922678598329336817402052152870313708473115056937225751634852160152738453473870827344523917626812690510135875938244852113630950144737462939407165975697786911425740807763858598326416179352278877048246647393509287493057527461526700638286366034502188575639694659007080204317510243599394784707880990200547354467497397702047103068463657690904507083307837382124004434554052291835641743930657347524649976620296787089274515772702560035068243559030522415953169351494700298794474263412976963536529239606804394610352784143678159601864096480911192009569763487683372278136473279161494560179995441720794637410025645660676617993675961697150053719123510470061460103238598859526312617728370374082367737871053942684218630176298231448582945393341139544386384283947682325434604170384283979341532495068852096749198007040872880102073152335304077837828647237183570546596392675648856593365509075683454900652451211800387800088194809635283320045577209299692161458885752986935814204304608330301195329809833690695790454990716186277900194680170468050053284833459697287989527649543407073467368979557011229333983096235496284520596954877358947497577891991021897115357671524501550867485591193621118085684057881412163948846243294811526298829379932161930243355114723248084770171922003493173584284353061229878250220767744379918154161729232246680470280801959123825876987433538494827764129176371039808709439717644565956066680544635047611331634159932406003135234694801770060337194145052869542277250751187508068245989216734868336553724248845579279674387617738594324271603899799725448414831904567511288353054283220216105689842176902006358944444864329218937451325419876848169347634736440279948473406562369593274867493817211689649607407946379419083297282427120179893169205388047961880393265611072629447944774454262609087375714985310825241770431179917637453657530496009583668247404685798079525589552214616087311032136300455682255656790451869273846581522722416406730425087110681016715570711376024517253417084588189073296700672079785229870247954866963907556455978873696238369952957790324083538043313360894109823194535324675532922067888031313917394926072450440247338682608661405309022514956137105156535597380980788448661755013148725314183932266050548449358678511329553649331370845795518810359983630313860462244748716476648593661437337115190197545039504058773059393618984326336282035885988571723395676296381894927774323199131441409111717181494800739524736073809472532820236874680869023081073250295044105250138134152688707558800585975037527462117945893314670642012982412474198431560552631090536543239595047930241052859117218840508764755762302112444440543998969704005613344866059961060636796549634669754806137957786867093138103024676854969635507872152908984576877626213717009244134486627130763107118929934315459882270168792573659250763343045116276441958194482809335795036774473845452059490068192873165165337820327273635284307629890675306518803347664798468906447922490607038727288698176930548749463097308662476991664039455160582189160934422388639505467170698451320059847273596316511798945254035023851011692438821397658586056428739855392192230538324447101369846756196949472430545521312827618288870764798026475142460376065305688958622454636890558189258139164645528963558147645475916509428544929064093629840196255870995431924151338752402833560071461715942146162225310533241816133940699027349642880343846074299682251942779869399805558330703805715077913642337011316621766447092811527739636919964578929392575255303432112832298092947796164867971238988013018219107952735538076322239874881567174524727448764329214039948080229245897183077482197672486342017836022198466779583621528248949947619909946335700213670201036168197809716251423884160054051394882196136436689930603174232450760403190157424272929347914793517822314803738403942435512064302376774600720353141545174683023076153160741580751859877709140106347185035402679182525719543917205393168709634967954266708524437683768799072039489883582481891553669476803077828132657245845396603744953766044584055941778824658456379787989165214582648001752743090366339445421240723535127982626858628945459058463400540872546750356286867606418976482222551414980035442777444262731721045747148379985157668051179746213197547451919807641456095819824973482517087283364834927691616830036080605363140683509464293689493054287522702626746416401771529319060457413951800909869629137861215510825605780151199356025918520524657377727949356388731183903577205956120790773218411653422141546678344853133954139875446377447993456117066068516955476201831192829556273613393317541523133831104563774790876278356683347921829306130299386055276389237066645034256009034598421116335889815628164469273877580112999069790173759999049211393242385973871373915153196452280663493447545874243543213398178405238120081701441606227460524641377320832771360636258272486758289751743856396184906848760970550873364698782359048955688352955576796193310440612144389530682479387594943579612452125530812169107161038392878819373166996012860156563959813378372594123921476713728340717093269511045983423213690722725148413743398039981794065256708449558617518614302349598899847924494221278419205796023182178938810232672998371677032170160220805582858209630652663056300843739989724161449559517692471645458953739498587171569928897797845034357202147895515817378818440779639256764957109083402797375614329906368374373732368162538383038646220802946817788935512278240176207437169822199456952434001317143090253696382163442917333316918136471469576093560467461105703801747212493946387748475311313523998971029046540007277120406663645758851410435129713002750745936925936419895705200484708146140189400819888301503622635592058134170811517508519782458767518960275331829320873642214099296310360031117782613511568720395245765421999236843339828127472350046036227645698388092963017019884167491510650452496895808306207273289544495979001522182175501114462474248948711821452959532849964077180922201052794769819529577624677890100679964501308338356173399609694101642956836731153023641010988621217615815872604403228927884022894350328581712767447810261710573892373846946203930943189004187117160439481708877035449179792190708297895999490039011733562141161447219098303631989541691235478729386107419565208449124498630928652058487218317664348346803401171972642148617422404574091710699001997259253119592893926242175330038813361324927298240369816947051712759281382616162147995544840408690270173815196620128794482313754419462632295290582310984081758139177437314993595230383358023867217026522921558119856024753713980932139085824037093665763418345687129213124138912356356177788019096012934608260565401349565936606091156290821392753319978479055784142513256533997515761746633048730170371818571653752249298048250411114580151492874944476169547125491436204223878840971532659899016814937750165378569370541836979782964976065619316882007158376988830805756849332099018532738375084539142878093124816423768704488613896436399120698783933832848090633694106432243461585222223360016625316914163355457230341681039215104872513010108689437413620497186798934029698617127580467398373670819666261564090876818939147068998224513311101482155907917522429366623869543877677788931084868455762672164831490941077412864353195427279187374695812266843276026108384680753106661384685531480390368496926317567558289669857541492752337223028387624257581823902813237791947762649969080927573254198059837999146589437426348131887940054924872287281333046697502016391238037000222751827875826850913327311780966854057391411201004580370020272797017489057452701913937053653592554669847253223297543856043952613816265309472052330985807955827856532685034012702132510982282159639370674235879333791757986287880682397007748700563923588073859814819824351797250848147436275829800306237654581416647455686905762943645509658042814970484322841460937603028665082069195767099700219335830001632428775294764863393204468671213306514049875121124112608348949457672065262469110942548828448285644124253665836150694794313232934941177440375682010078212422475302282358545915634675670877956328965532222250315514544125530408352291598285873297710669522169333113844897659814458429495836936092393453409997406203901432136902939485803636530336493603992652265559380850437728583027975346925016356619769064944407731623808135939738965653304247261164107040066624344163192828229611683768411937127506423618096864173563241142220101877502998996498527699528078350348613775449013426077910167018057780248155691563244476894673734382815382102470399719091339490560456499292627420509334427981823229272393374198597640133079287719823829682773570923514844240351567743781381169222160244439709884773899696666486940807652961001058553354013499452835781191211314448244747880912939770805009336012280924206400602232229062571099132781566920177011440405783049129604396330849554535116544115095595687827359842580332216267966743877698674983678103454319365186835456975398394628358205496850457564706014261221766748025153850794201669144596705847710925881474298539975737274296892489997036387022361208982710285029951776357212206759317108315177849821587918365042583648826689528274099320985171479888760629882524801534940771880254226015918947028724147674986286643381537175306550345987110899923719300649771095864633551093285574953487703131798664090870580481592697446257823903977250886744835671086250255972456703000345050617883773117006011276760649759796107215966467385614383641732793209488152835677294946565860839025596645411265921743843194106713509603641260630805953508486135803708725002478800954431076571351572104318828499884389104645768455040602578063886513916320071455382122398043222151284958523508770779987741791080084488681727280651901022286843480996320577440752169019054743023972918317901496378362931797314531228260403762169480276938499565016760035679705651522839586073434090180511251206294231628347415443453804580192648125843422296956945245888840554731732238698635336887649506631990979635401230021465748524769049671463003993732697468820153594001321096540166873390940361455762010894318231921434437456409173763251041906702885829972899196265260003272309424627176242109412231974554315181840002779191551634186883240144779457583207738543363015762572720542876097175158347267981361479088022178345553314093481586611665522883606552083222807681414610373302482302369744353295247288696286755894298900812833050040011349809532896889116855690078697285721683424424774213899048454617482164982941501558103479777181814072311003554287663478753699581652848729657746111678355599075130464746625236858678948601454732403835058590318352110014398345718897467465111238217705739124295177753435395368763673896633449185576490252855580804280617567899142242626746361715412376573532930689180532693366169230587781368499509067692299254548771669274480689410464396824442067665029067044496392755840226792935891680208620568615795666854460328300594526519476671525692272214324693114049601566637892050329522613053225284002578558877028417385456603674651690698991969626288882886120265473264502265464795098544655782805195939213313074008420129490985146698189017538889629506561410682644295408221053507695886037240696291614643063017599879512461383997819256995528155556491936084199363563904807260662074021918618666061518539386710050202912680042239760235515629216648007164227990382090269519011121785054625047543773769177438157340160012145917383496499106436104479008979693934930355271611229230754459691854851932068484148222623937789357811587293542141443073050755244355429357124213717405740958524193272120678800140012961138653773752092932175175816650654867533931876814828303693615189928174451670544927656225009489221736954075302474433002031516821259230739732963997878333370093695451468645349872815673106093708233334922151173171048453042461495353661764868533830660251015094885614820034085258898284693474851036811100620941293603280451671941936374216542059771003789786993977561710345326641733848543742941543711373448672831658833036756847256753368207628253979168835721924362141925597027272684140944474544116789376332007848595121688224690583597970518969120685957908154984005789534688438770550984147926850711992269339454031986020442915036913576535647491923050483790577184904762576016376390606061928316195274665634449637612781755841707157530677734357194836427024692005934041163551292466808035080015255058277849710016738319503553718612312407533113541352990333357880270734708935575027776772193461519079144062057651789099737411872437387418378978569219384365479305648113091116324357214072675665913320608027173535498830637397615951557108128399004692014640084505113290085018266810872864865640230138800037942362167144695421212535709601135516837836582461186302614982778490826309053727490976608889065214707319749101076576912635708532087380747879381394463484096038628310943753818819488967025389566222372548271161794923952500846148837076288340150738279237039042348813413357565657624209042439948230352575539114976147904004839044687525224221753744286589739388315760882027664673994450052771053621605310876650691764348007946011240984237247025838667104755259132292696513651217699613629080558593366584667034859286265082795282947857985009108396516309800849409717231930942422893830466857183313509005293307389923342422318151232731363406274959199100118377217563157020491916218654818876263649087121016234071016727497932656192845374772561082884386936045173653201327147847564740028927069760266273365940660638365587805904123156636109133220038922043301460836308768490777330837984048352365479292899725224834563216139457885920113849520305455623383755637893116595150778694022681077386184062898731163946161700197808862001558439832917111614172710889089046583792343393811731875300396255150745324868840709458278647090432411875909226405533922790476770174902838129783943171517173276625405197599985941106014695844398487392329622105784417838761189630293394855131966081493748617425643940192020235893767531891856003939366497747314547204782993491512959861898908859463931089321259583974496874917615821708741754611571066454114790410175114816108548334735129609765583839679645681307435346659077536972165125275624352939886896656190120879054731127973288253330905988476651980862790402536567088419800919934871873426723309873992768357729065711559553907417624122142625449140149112175432924546817653324986550261608711656635758341865268126245558228963886906707572995095679796186176057885417782337688635855780376291701060470308843466396394290047655110588401753501497358321853538673701954486035994463062600789759630295061455274973144742277450357173548241940277613613884856324550789656833097907476091575288453039371462887939281690678123474844706167710771463560371318749572204298197393691447314434725510342702705838149540423189343564089199089718888170337833117022361597827765334840746271593018200022779810518562036497611019336076706512587369355139133909776549988226898162606077105191957034520365939248073371049093079143896143702007519655046236056049105121051943556910492375779778639603143029321589058504970843034147127265013740276161930968885641223977216143731891883314160752843228677817971984086532109202881028887752957289148349203251008550739453584661639626432175177122540705456531071953310394723400020766617011608537906917166408366401467577923024935671519643508200584191486977988078702649436977568727440934965791548184565900682686742699472681497611079878264939523693130984126714031309617925533590285210413872829067512050762169520232020347067298131255069231066415426102505756615485309076190916707585246905367485532932768520847426478805338253245637730797185904440800483701527361684767429010361984890036345212994062366805339690273513262600069503468969887203646220799034945609559663260560243664764132028921786298050107525065013331048905868157534254168964483430625742715344006738290422383141518053131673296242304750853148462310731294791901667374760938324101757139237187044341390059791209642897948509075356040968334162160300727304297425203811781488259379461621080012600261903850653230656940115084448000842403818611957381096857015712703769118417910408960935950135832805676466127499347554703688231509928671022789804323710582108868435612339229476660814777279184500963044903829076166349067881686194590535262417556098143678002941893419170165279758923422886152583696103770894683616571647546530856303822048204611713589083809196633855857915887072371209423340077608063639104484617573492218058353593545459408061607717332989441409895752996521515865624327821584032930458691172460200421094028735322911047197839281274922391216409402302118057068587538148643314534333975716282604432021453197662621688256578715297033870580394567621765085652953117345196674262594257442123413868395114681056342957271629506557142609953342528409372903762139621048416280202146296038320490360238811015870212112267224716687049759681759426022924012702257104475754095516804506918665727556737019248932461483839824156512907967993846278333348045623600742573373901960084866072488083439962817711209582101070245151303244962764567228986550712535467168140378612057724800464186885920251791234655382115032738348413303233528614127464830221610823825614972403273761788020581052770862102577893764039958650203993907314517400138739594066673902709537849639651905903002182014631085699617014421539760780204519289070063816794335529265488372920875665675754207456221272375932517908763761689870560939737274174877863195272734589302570471783302063914595461252361742448739933391452245117840046549367263982628282571598162504976036038808972731910012000788168125518365448999276874102502598801266753633054934215049435091901271506067476851029081020486146139299488399065038873898568567044334481680228900530647936497138677908971237229205381510419734646915657268237197400601098600131492674448952691067798204180601635226874074662855335856967669923296870115196798663598118224640536555639806195215144332915978209391270164636988304648620965484523894861175475890558872160192313663755207645116562294491063481477689907716945836719124026088044596557233529464668246926009730225898649418608174995284650901426011612845002505309989823565605258730198176197562133976486350335646573826082927793429224739142998624886528028154587028022458538415485657673998014864997420251200651976295022475101739403816733030023602973343347960652775898320775630052550991923515244931285036094232370028688894615481283856149785181573586048686899517969609481886575721795163164638570987092914682605294174940886387985406306667433669228229099440474979993956789467379928111574513090521125853677998990383994356388167007224516454918609578763849451867740167348518458029327149604484994201569139164810567583764961834814486690199674077520875197036270910851146888839852966157738233065764283977549198423766973353249759239871295150756703089343300508670968855046443452077541012677839577305546156924450618082215653014854281572126495828547106899746470278646781950583451644571713083519554021631316217192589007808031183229052781806920362464799996161817555906284077711397547565110557275750527449309510002426923424399466301014402151082117111257539587172613654351559914064474731582975050765919575961748328059111235436244303908055638735454400675549499852793978391215589309126740479054585266352661422443113087990253896581556207106796826769206920564029037996057897705279807379744798994379023574229272861329371516736432261626516835908586450942941388459150173394012255122395988740675555069385340073207361678936161383591321293993885603980182435073204825230933782346057688757267478413105221514993181861229643934616256603086828338487388653821829529144262565044116429249014299923880136626091866270370761498456261557146205742222704137273370257187162554034103343856032204929388106237831196733823499930760648110701046485531379598440860309020972095653324241741595366784264110605009659488964781273575656517265074832772565624676514633275653157860985201895213660286025626583955780084023568339239673882234251657428324146067670479615290722682662949773475305963796027033438282813793863915187066958234587778481787420770468431698093479054076818234178528830867824578883832639342797003874502816947433233472963206448417797072626796617553234321419311689738181130516838117497858671918450489371140696612459914703188958728904280283201227025683530070273852078705144991335960658653260318047121301435250052561491050759548349916121992748176555192456185422376882805944506575718096567153851820955097908071130277855036419724537271792483826476007599708010419973822712020763229042826237278177164636949960566231423564336824011971245533645928637652806273952047066623939300047071919650407075355599140608233815873526767887118490588338518535701969283475478381371624637315935970168170419260242915345273944142671492273832017643015772354449707900580160973820432731184050994318786504670571195936394761265251832313486916395965972007691123044250006667356445953081187045724057402401232621220817729691256471376678028081700664583330928934477302615632928618860981015227597275843348149872330189042628617494791650699805179084959619501914985134284253224623553411318307151678055615807118521446017893845630473189808611657672408555555749206118011340115226207634060950610017389983800255847313234993987557885307663350930086569106917142032605372852241318669504019909877965796263101809402723771382355452392222533031485213630162469638114890978010042616120417910020492613333656663830388525678940257100605364476019822035664217064374642018654488377555772014300806849839152946178866459058315553948368583644791828810443314418042143246441445886689622312238764111836146377490270465639609221115859844297896262232336237994108265050288746954869287254091480894318026376505956915331352425453939533089619267664800159210702286649450469626164801147311158638016453753068994092064462062270751577878945474179329369272021481682752968855554070140270188931865282516121597621577596230600065066826487946507982899088434180852112173486731334755997936433707537469079850442032494688169710373419907021672125434601720095463338511724379993073517307080447384825038321564361382550348789864523205485007080539149264441408085454384246923537718440501337406872712525170068975650961292637175140668132349788782374638410667095914574464452934480626143605404322222623979981611792973734259112475156140882732297634813750442395160218986393045498175943249117657699264959999417407784721934545789479869424498665803455410606118077136594151552642360823764762381814114000170529914977442437417434064240237676151616344091500746985245223585731902100193812080349351510914925323296202827067557417289864930045750310971432115989044569357251175139398366970836153806541511134466902421265652074170748981017278137886557721356229638976346783970786090576561178782035165464358313308092159613248088408722747849475377586366761136214871503324800491452143180973960690127608865153761832623774972966070155198129540551062919612058289579678315689534118457803533825357612824243613341662768733823566499167472478787368226478887848197067927087891735424801514180921160680503859411621522128986375288389329524055220158139936521641145019814635425472750751211950373459567167061271476206592021929260962337870637989457219501939165900664180037227790388477241651781637304575424900498786082749250138123479222924876480697419556709982309229734080611402665278952465459670234751533261155542448793422412803154037752302891052351601471927122883390912112882102232230410216693778631666418651224672010062168723273468882415296726982110225160927116702989422354015326670674372004141425908762814673596974698206060740636940481171750119452492401949618515502630231609945087001844573976858778342428978687814864344795929820117895001265621624733571355630782218466623804382558427396201292041244370196828825439624356294973022318738447254754311002836605970284998311115498049540455859946099965462636763362494196451303897377596336248358281530222511267791896258676872550705341947197609873859558399245769348647405883989730928503008063813752024786171399450356593527824448070286081238357617764911125764670232286278332092798903101033627651604777996633491589345422293322931513712169867176878113388144177069489082363779607768271101841290613802300475835173924712907582942902665662664680382768488643417368551514472175283835672630922557377100694275880693370716751876041640872349668377043520249922793765950616739279990192375569562561158172440957964776072065499169337457829874471472968501553398705542129869344413629704126870859616419160489318850680159529263416968511393980196269643876390293442367607507124024291258990714210401942370063914348078448227483673343760293729443796104978543909659453146325544779828649752330258942456732337033974614734635362307605157571241426165240365679077258276095298624845292412140148437842418665983677553781006174800024000878089900375748922052919785739513536529316429396387928829678791344208637384403540963326173023905985758774331447998501400802532327521515560244599763681916402785381273323063237710793004393691204918397082487828017561868220451493173232378991944051801657799540928140543340539715595794344005969787338718010462724420585878042447377038730595298514478423761944650743389568995173077379868404486389209417834802205085862579922608393326126262553154878100013745475624588562356707312966502149083823319469412996201580474276967705643731540074181587436200286265999406205498397812450941661679259505925124433217893476388682815007993581453216393331925274040497577310699659586376761192902513725698841156520776282929642454269765101055939632264527993918989393139599648899781749581658749244387187211386207776948367614273301168694281958748111848594607604744968483455111728064920362354080234075469819757454867307064366767635420649064085033436339086992624427085125195298721177490960801540919582297226268413815922023784654922772891670339290211620873462496021561558331512759981452697159999388463989073269204109427541774588914690166800060299870943422724274564146407407341990994605201985885516748255691866392823220299694254605726011698147489952739540637142675344541204892384779655400763438427651183313592058663838940677427917806682929193597431804010427137909048885448978837833914062183839240337321538745150632018105173149220747409746477419518681166384579695503886634270096380747229032929989723920945329322970739677256774607064664571393616668890642389896826356447590551184586988619665090160068860315919907114259012810617449105264645381540731094264323470853299929198438251884492475526725135991604885704526704410849273786180139527508698229886594762737968709558771903036512581526369460720738653196140843530497392463610478005144025820855206809209480060653293071449469468326126745263023726556847861706086463100380998113064107997118673039205912422098772417164886253223736408225824356902392982453362744779586744310354697366457339696004308574726474819692964204441893341919350365387877396764037728136535849068887074464944230699032016326788178190335125567077882290725888382334848519806869647218935906475836415435706283446008733737295414022046938657585219690872785039868819479710276002988673617608927090410601106194224713741885111557045823929933045430570587947680348543127662398805314547541334957076372528134235170064274403084368925423310969268394635189891072974756039252221034334343222704582547033817851395054346791147899146950620073028392098847775955789375329403056951494347168190941114567681132241568776095026153939368602903643431005111306701185704423354678493545744904955128547440026420835077117426512446304590928394093710604381362150300844080426713399237675080956912628162090492690306281214777706331006133712892215792375987516341529817858724055543898273142529665588637174748017436084073336983194594363794295534337760374925866275832108792271165661119205461075624709739980828746863001806723775255362196539870641669073346711473572049830468999549524331034340483782975865511079891028534911787906739304281226974236669121466966512920579087609530470227520349590739202744104717668376857345158003796783899193193280049981399648487409473612238745705030481804815751545413647145980870550973621648629931925739866528992935324089406218520068012962605028600111326346223422945336080190606328215154282671531361138510590198017676365447839963839551230460579499208172069977418397307177882922037276963802456853292058264150563964985194356448598280662909531165913886814518646120958428388956908736235574891986242759117340415978711485036047811973980047745520451037231060809918867593121398257023709442500841669517646997669182386973910619296491212651470988741390352753746459444158249409204927457022560990901881259504135451034402154145138071372394374061655764298598577342061625879868940459489228455085144982016582151196467825897155122770564857251998558668416746321674334079777984443961481519565353776676009426513849513803744818738630695955910475693531473751953653625735850313317495704328623905274595262389591927051842306844243569661730841359116764669697629990903335179703794448161318888583670415151615589874169889999547284814380106000746447793176467008305589015925854363486135678600086633520838895691103413836275884942502074386060410597473443172251875279530603008098352875767042497800154781714136465451133477708809249351141912626327655921487677738426881869979622799926374417633097456258505308631926493569356329826456155854672526098593437290800358032429888724986517441257775580754310082127585707500346516577450209807049771561489102636160094729598744593618668095731371670521296089183757048663802923706589877888856096411662456607339688197941663018449358745946308746549698626288803645476447081733390590098505922235361716282943002785329356859432453785979440432665411517419377679153983945593716489107039861816923061518936216235093207605328609350319147328011495314475198880348867405201927118099050105386436597379478161177299780300200549863086889368119467457250649388335135826961606369112555539230781345436474907707920619927909390506677798727772107137698560413411335155600629323012288250106622769578322305241362690545178536247359638670105727348925078944754045663048796455052037643755956838252413061000055708505666527185453417843958623265147640070911617839965581919983424588182364161664267004745771024019369398551421099592295285967202093388798745978337507525089647035302162907532128925232700221659869721957411071434592839150535670360197354563763249582515418710817693832449499212183592882491498261360172344227607236650722316837793321981703380737823299900301802350332246940720768584490822299552157127821832923154560570244375202094485964355172603987369642535544771258025253835083246441755774925034517085819835532446230137821104029572137078370569238085769594755710599555982249294945801930643443937675848816994939587035385591765220481748450025492107472005046452391521262644359273141167422396030400767589777528052398875761479591031849398045624822421277815155668947522148557763966204798433357437229977921608302294767077223530426356108099031549346754966070062827402753463494955385425521536187472062713509537076689991919534686643418780105637221296541683736201127971207093731516502465867672048273742289018850812930878079120377043866438710560042589483710286634378600255409290300658742602602091813974118709358613272202998015534383063831845437358372165656113333447810770402586975227679014789289187802073740135772958806046364105768178131067623717863929705950397969138029202800940998261266559663561467016369537373843272913936028447174079796445478913587334524723869702309372647356428697252830056734569856059257931071425708443685731850596943004017298957344842366722441107089473676924213553095541012821018231510539712582096416362731912306063684536203757830203837741113015476923894469820263070762893430154007159852098597996926461333652563312464713817312573996419822745784170714713613283833366310821557785671291699302927980508033357338031303572669915408641465407238282887062431141348022903889452585261286385958198130055805364691737621429453186061613010163816871104088671724946331476875744173371151924407399204466891286285947624108902724744424458920942335940852982905081301535980585441810125509584258452356568847135513149839554471095559087898860099575572358116541449340701241527181056201228253688024504414474558185162422856155757537517593411165787853524667213590719571364488976490036184664528112645335360088649674696703742401073725080131234655921244564616453047191509047643024950406861211377631003891991537011883329953566080477904953422853417607172626033941339863478918707735931906951131535799577317034257559651806915471217047084595753681678858131155079169686298653832303352398253068532844225945922844711928819476792735950556305917831403006712922165943937234386917445947214838490542003207095496993062227670048322674360880075136778834023328804933841967849247136060518530248163770498055824949407213071428692142209607340376654539561230246281488895375246958805044392306318208494053664542351036272538841970588718420936646198067488411674214320569876850456555961965312386579233895286915800011944314041934640634634987103455058846647734504406312569114212268419490287798317746873354453922360411714240081596376559527011550705707710751854992001081970246937076423420194589005994301761026023645641479040814719626737149998931938428004171511018989528198822181335613082977420478028483138193579891502085079936292441841242248925218863324455021273702690384519383535228391589010205732365563052461079369603767270233444494357967256767178482607453035295278067100703497852232304264307487118892595956602718297030317446326686282465140766526551209543219634109772567463979477835157817111926183445045942197273325265045411892937534569654521311053842984559688546417570126873715960679641466356188835951893383313113114585554547688977896034210051412183670243253849521094155513521597459596786476002595918330248880780041939954016923059040737722254008221284776523178142392762525936356734463444385990255704234991522189076666594133168546445289477292817016310794998793845228961039397651655355533428010676074109096577840791101955255895237065658539917132588743414928434965275087587706867047042109694305912650667269554605278416905479360485199355379480648762588255943634634992325522383482654458275267772030175835568350616664410196916794249550258438729852907605764911989955347100664818488985550128655749997728869245518284106155725712018789524087455297456883083678042705436700072278664776976884215095461272706037504948433816514687720312363184493954073490598810745935055008459434516213417662295432769436648176691620905115951977512569465428015319028951734799042672896979066305788900990437247552319183717360924357128479805992630995373743433547708610876837871743964090406576787591013980778870438084525555235967926704546332883053841029289202754113988504809718770393727356455313964612062001880908819265105630995454242442843329037319281096540498742920094169705270266206991560275782790376016818779752417088204974962113064087215835105597312649028960342811152248669531774969074672792210387450607395914733619578521561459287286764244460509332815294161390113516199370009819367865331829788088100229845527694813763962960202911306656281199089220390651516358569856445349667730169810638463158013816159626325947977798076328461673711946108519128621224017834479642492925877193029559114699896303150034807087042932055566194491428351040863876997489830388153375214055082404394830287090079665589706109793244534300345716693972307826381596268427850473498722304749495108057405156836649302349282840771138718948152288927640718932664846030034962972309189651840755644291775263723486255571919902716407126210919819044879411446099351306016741105701028231833157535086423956680457794220448152045979290153535865627045594273892278620641707929527874757204422179641737024132438969742305048525085705883502002244888001904376972341746293612732448198753133360355322273935345996799901261301310489406693527534954660493763186795739249350224124543559015577039309287644220301747277017454187464818697461070822324129576307641678274378485665008811242958290314474587171915244656145530902852105054531167908975523651033332786522939460443040641823111551048996618381605698396016723517556352545723277439479942682525810420090864311532057003608325156061273506039732592985684168885230799673046669855889582163909719345110378262279230999490325896432892510556705557392020117230208486293901491449725507799774027428048890571737460086789128084330521650793657043987725666330047686136983102200337818385953128621025116795939082295538261867434656005920549443140531660999961114529361540637072847193443427589901417619365131540411987369816741250446708701164305695193240078432162793615244302606530392344906945758412980528749395164560128949541699771861208334780117893433435868946489444651861125775353885076525588972599188415620835078212149762902959628221857895482767288584194727599027972552269053523910767574483880191041094360373876049169774702989126111409091312675812039847692770698833301253020363319995708038621284171013054045330006560236936652566074457494815356145882221886141634135828303629637785253649477426708656802899109856024451875354694279776873566382337371874887350932031691638503333092909251794653041883680197331812451679002102233229869554351958057591086360368251522546257869053545950585370543867006184496556819022496144369632550229358288550879653407178457474457382791451670514756967256470500896871550127359997482245557791196294353229232468057024767369009397008302740321725867261301192691847329766192534957390039607555958717500570618921216576257277918343511924132962012961743398979001908905334935326947477695312593410582652730392201597773711036264097735208005853258284029783168768879111455285975210287017761790120863155640902554766978953284044226110100968161431132914233079937239304700443558896744996934135600165397378563902987778504293894133307067826797969316395511169633523563358106876773425465856867117386403113961170874151740931014290530444957799036534400726120894973158313556488906401961535597902766542269427663399124158114852910937944288660461354568037963880179801072439985571714600313076108673088217416007240174830853189292518822497351192493035692171458736651543306470182759457056371021933836157175761300055143648796367676106818393707882252194518494028991419821217304504849077831797435969894245264423255942115915121656551112946524665287043333127236796761485793157435708916318109852338125051861843631045204561574075107963313012977018602951633898999169600061087333410987469439974940922053879913398049755280462936243745132175663128959320851743329405823605277694586257991619123316561283175469849611508194281910217031223234394759442209496247680042687865984347879577856817612197900522529313814904082679435713741217160266912424526561147627547880595038894372580669125824610270212373768643849010340650534379943353865313146142718404545350701677929348307514636454043606398058014637867555226361347234193790465717327973426672986370807253811023279917947824684746105089654675600935194187994902642314702722193179497755097265227562048253261530485667928341651562925307531401667231571048667426392032727849314152948341402865293432148047107285872470899893587398418662600443301445862372227015608314370102122840321273675173802890247331848580897504907619356681154894929978760432192277596943960305147676808008366619465075221156966419988219098276216691080146501276090108034874671358030079855739997872964046420491159779150854035814814715545347467498812408794238224013971666363577678993777024617230244145999663495793538824109890926234483333531762534225736292449118655851382555633368628560705818515495731219472936098762411098965752782614917869720964806161241696154153398425037865354292494457871629135751544062747558744833973887376202075757658927623925625400416003567452232487091711045961370551168014429868488822939560594988804322694187726271571132318818169197762006458887775664359305472926594272989632035931082787307394370422389102914562505333130984726265106287266593353970224133022762689329219438304046200055404333268805436448025987559789675062629362504772105863307170316403122568854835460264717141206551507717923423341243726478738775525542345762605968451487981783654500925511996926618353831980479532807437756292522275299113615027300667151743527240414702478673337722057940574641373792207728101788792144006304958048558830795204647569057254016932333451624626386180682576014911415774894358144813651562612505778127207087944588345896446776783964334869645862161981416627275116185424806816755664974444476083654950309281187769244889200625603479140350907960855699061481517111148886283685590108468876994252036720535737469428007301302280787379826702487236596652448164824725552414048191561622477502354171947302075000163124318837017308364333788178965794450882768495972409841754701843202796147576097410021925809562005661697441419274220039493008447177363570129139486264290645231948121983303182133198330568766266114705770493136191118522621260746117108058166259962826741367034609137551871295403826112559106176878709848531521454378074080784661590937892619337682625384780483772841461038412330705870919129456661789677097003628174337032553674586291157271829948219889010938230262094357364979968773423621233544401962479118556253990204193841918858202882134950612748895003249133940937629990044277539988267503223656740976866635542655462127911477831296479497972707790454921272755906150744233630922785598064620416917912514522660592043443243730638445974972972269092706732575573838202256627364182096282336396993362579384757530772570299328129014015329215894418047740331991229387473128177524626087908317140706000391671049885257152962505877523251688101508334945197602465746645451340001819647293427262657456993692223984526616669533071673316379988060241137831848277999065926017116820657235590584457448488905903189140813865333235074368222883051115540419945406543006723317053946563964692289244037362696200248239457186356507924632581823652893249181738509158529537375099529750906280502187895190363695818671559540630661831404471905498357706985093592074862186477874721438594560272189827839467592931792033328888465625417025835758551459857761169497957212974517138803383602056824712057975854942776414212138965233544251520697813564167997715430026220543589720224075265462054675860873872926104577263460958252132272540080269727367781298032810915964175029031630998363840855590150396107837988948580627528889322121575566344039999546374642018495387210884968939969216613629368800069958506179511973188680312534626549001710286001040686665562160822781300226926558941336440239185253034231184090774842739931636639089752706055049321102055153610595648075513323606180624473125873624103883743548739757728619933382308628151598889221908581364222723454122431153565192258192310771280184025542334944468510709372296775075352284968709362342953033031696504060368048349993266910424734590814105718656448376137324060907733625768528976758514201260788126175522462119844997917169381331556585036888923336251282513856821066907432294825937091603662587089450163910376654011197989363596721405360498240380613897288670814271851484787142087506227434152451470862621891697265480964781964362681279018503153391798783379257311949993266712733991818618281633020028185712264904106241622787788791530547720227819729854281997175711356075747710351906169128124559383586095363916965075470402402069702767278438066658963740722674948306821857355007542893382524477575878099848270891193959735791545724479293198963821084308224198880290758476948267351727250991188747586008096552122045891778637071422801561555733898514126123347284443836635621282827087376499134499416591577305423083142991893029047544227215318595492225802015761649270058894111119259286793536390637815593012006821748710543529417273031813875061489895325271302269597216706084857411828369417772963488482901129804818855236189807104079024459682436424369514580461677175859962286997730240092884550970092621484459367392732546382136336128532632527821126725242997827263799360465463761492657219891123789507808019304688156919142809131359104517924180589450849552653749113962048277236470182685957351117202273311116443639248214634355873578687330944179659259957980645468284199478051888428293360770549390507182613855531228955417605641774260404588328602910158740315838997587535974520291876847939752268611569806867067793329532122840015036365393585562825635829944768535669217252014793299643574780626223573557307671639097654022889155365174999772663350015155707424192279543054062278543332151665265227727218778555434978481318959871335057398249332464825925798967130861637119241346912171706158002007623981780246333653408191354658007749210652903923537613076894422058283684861746520401583627646896115214949091484759364691600503092414127047027124207771683779392467671545424130621860641082989106709537437229452752136832576410800944013262667731815699321815913723464114722802031520893990276692421597485564634601612690856551201616543547151576501752752421016092224266582435633550694822608435611601757072382023385311302938560073413980118845695011669081056591498205138617667351538347846864604224883928455222178562614124636476804522027667564988698194897883829349762714755084848438426266371869597030854084055540735244665313563022340980382083664769111482199811107011387443535700591646771377832218566703364464008358644002860178924605682548834750985969499025098916110447736694495919430483034416395349712942296574202704267487415268238733261516085251857100653614315879291278681278393120307938530578210547653492692887614412610607985010801478053538868415970215913725858010091419855698185860208811528185241330344391578050196356497332478400607266716991544590232327364107762233899610446320005225060130674737861638963525249788825549061312720395947122987349424966219568987373295887623013351070034854169169225601445037211408405438140089898831903436257659201876114890491609133638551838995571002256116807860853620593217990392077854068708134718841804300546023882279739296845819896869464515799235065136060774983066667449526931060531771994938941569238678552973413854913099141852303240206775485336884749497440664497119647852061164521027129749232252836652587530837800029154596724540038709428607197892624312671537769318612759717387659604241114952805758908177878786232003565777995762111338336974117834409295684002946093846803108526759507850768597217285628508068919354442233915285887041905890542765827311266441894029678366672702618992190527140176381663587706782635240928771130657933950284853598172787027919440691810797060303769249958209541779628443968584084502028967171947315568071808925773647908879165070430790269886324541830807903260242915675009005291938856662761227516021508017792595114863729823214044029062046755585162406999969096673294707553624810912379400332138859667082508538204182373093825332417852309929287205973924497423649712148643404656899263279814358077080768030720715407574913907072427926069167122184395774377986888946834401876276623264055231938670826677917278267003852324220763434204825008742381046795213545080718869240569146475997150020804915273022676269343746761547421143653309965823778843112057687781081309511313897963873506737364569805349201459597743314076470178211825589971697315756364763019841104317814129878809486606549187213882618045591725842229577892056081826300421170064764949558626445854600802892915489092093079393239337367091974028762385312244996226863338399973497098263977851361294396780947976002320835295320782106262949370439897910875856961484094460360600649196470113897207942232304664266985656395585563356324677718914943279288634824079430970166216187887880908956731412619074067647498578330455278359269088244282567562764191058430254515724719025973409234254444515887221773233373508942015246327624722588107045379055625945956458123157853075022879967102439722139184165336149697986300890376971100061629885356663031781070551986908434891460470258904269031602216075855686333839228536432988796561131801051151111980644482869414040972015687165633451599154594656535784342374759677970511096975815524947203268989026489622527720098773067013475289340791642825735092313998161922335801081997337689030363557810968211597573607513958818372776278502088457253610497151710636229390879509873851110830262807502799320398854304700000599699939676219812939779356835547330870141006437802682623103361852719893630236258039684074934356001335013924444086429108300025024202247580147668600537957294796923814467445013596023818776414265701597332838489289279661306389732302205831391477306061353798312419927758186066918572198986830054635947786859191272785033318557098503004913199260598280513452956107029095088759975951867732157132118393176444467822112201244686667094186057418763025569839113888585842970397778949684002072307957043967762283898463596842995844797340291786318005940531890772860729410899928159009071668293126629233335018662333360951570477260272408352893416193159299953386488845759763018974845328549859909584248544330758098284897915586725270223103658123544653637274735393728215961101826016148789797452893969489509898644283243044394698483668906775038317474727473969701719028597952115771944484922804637956881435848686775751526391481957876246017979684583256553475135657435630358510823170114180184800323924183045737617852484757320767894212919037973584778470770958316365367576202996033608324674173941940788490720333107863954508660444287308377887054668696248903740923686063956524800668505210750826823436296702695629075354839468289411239684503925598718350243001986100798230986171890045997101120968619593930653298713215391481508458138659935609520673538067559267936503264774462745788143985548976697565475840619988687368368689191121068349094471520409355806828728699926567783959258896397285554829889520499863080335941885551639427706011302878898118783489671798798656856249581799528983228774897195660444636187751667839515787929674407693416289275513438928531711791585444084943944886801434621593232940160897065780635652806808379456946391506354341612637748324052528071135517144184093845667519277686885781235804339715693163937772783236909711158163332449303899909055152120057020778200023591806648577147315055873114825826798343547896888772362431533010305830176001336404689760821538767790228103314989650704121050749357283844365541619433439877939975420107623924238211740285042530699641232183933017142452939764532687243646640284036301675937392287912780826773125391563715260531494642203054941009453568564212450713178539809207706546466267442337975486424372527651050373395567764485473067165087251511693676491199412570092793073452489699515051216502772478704813659966058431613560240577125762173322845424544868809730549926700813246565357261204786327494615461429503776442028860245477223374008415935109986770055767400012617786711451446966353512247976016242526328175698347929272041617808829180856713081240460956859130159694825790672598074347700655302747841257777633590221319613093454658141610166999930146811308063027300602622349643640368449224603572609832979597712330147053969067345245094871592329015017270475900691843560167551426917588427139116172321574927672519189047952463586381216020940780707059419619937257908113185927187129620772601393976220393492429655100304301809648281743211701921286228894365994080233775952012395178898417525608143443852221473618096120109973402297359488435038419143187924716664759235007617015223440798539828543744218374611919331668318917863691425381427779999571258992501280405239521645020420261822702148889572516058831458579315461386130617780885572276079000118362540364195834654333134393833278786758183329668664291616068132565723754534161486852823448096893265046571464770192246466630690906316930384368515942383466381912165093371242365548860073381429618507779639399102215773838134002884895807287718944879441331430100147854648088783390110741143376531921612189144379177994352581571619403914836737982138803362706876382817630324016184009729364728543103677513185057735693543066467211961619818356257049016858379478605230829596069582465175070733075344248367213702470159576508966090985611327806052503171440417978150636532017911461288390741210857847779569159889993119046941684141337658325457792610460519987467505120987463145351131273240273451303463322252946325860834931721011194417947249428992747584069312308434389915069472231723075508480676885751521033730890799089174113311950567084338967186961894989367120636645832822708942837894660272233421876135524078483896298776978907850731072309020368092954939103379834534538735917976003216346152723646431681305140525359997403526255177225619960065161554736730045670980754600501319246899918259946412244482058346219350304545064998631328891899151805168145424851000925820165288471908112467710189036571845803943653977715626124755448988620854105485765135359436134519195869823424418198899246674612466618938443159162525880262592535828217781208837972120830754165481162348409329608473061141524834406430872724598778050313137735858698068701639525417010238019924431201957276530053425121744873816359211768689124381841639543298767510597078964552381431690324070428594671336665034419244458406110929812561306381822707379925287023765766728847069088482065930477735418764948394464564720076301292225986539191993417131849499096779378428662417360388776704758908182206839495731682673676529982422777162351935242412920352337834080577220359351852830818638896983567261621509630306880832855686596630363807936117345778285673047837637211894920154783410305557113537806533212692538580851258666251701138337935043867698277487621673715421523497493957227496228418565537474074992927064651347824357959106076584511190240320402729700718706383578713342329867514286935999250859001548246932235296862804188051517469066187076886791948562590413848248274119527402045270151211854620807416665440916036340866054775151876518871471080360737169726638223140002799928184181998275022380980847083302637165896771428358316423288425819278288819736287328201235819460822159734179486013785608955426463017191623431126183902430795084696248326056547640477505466733805327626923960015205424130611128594425857908398910723023412750956000674669148655474847810935650302809831298686297986544076008045884782948679286024364986386954999978322485437233348368575849371615801412632678646448584009466975263315690565512687896779365755970063062918079824652779408274718122096704575332330379501936273458424309618497881077786037681337204055509398759102342404092941731747551155759273912712973776313274781841037199540053259470092648505637579129559991419506198017548274974504428881107123655432196039661982110569877707869747564461032138617750498677351267121037482688014006947464537607324647294461906040492721507655623037109179183951741590994785701934739625527096505612427804351366644396324707020637094718955954486930072773515652687831108309960844047987447768687663367471311351825371682369254068486414043656071089567752076959271495836289847714372448157766247265067382851479519157469240133935517966756168104860129814939626195047329124323308185261932523109120561569088192082522381895381003762329444816599598148671087140814435751082927276525887810671126777250742351501002651090880203523175746230246933634177690521649767076611974397468668178412187755601083575883608885251784917029619046307474597415779442116877676448085211128643347515354978595894782661009869929326030897791896809199353994055142513330334782182858102121003023776006317431377397675751097607271327049236592500038830154517704459598600032496000577070166584123702783143028724422926718186741756477942093986772556102287647141669804362446111469049008282168424877220227601441884090540372548362639288765295560594210911781015215521433054169557402143547597219715492469254331348644874446153674043064072845494798226994041248314977305058430628049756684402832258085453658813797180152946186020945505772984661779572677641319012215579319238860164867020252013358947676021865198695681815362123623735248092823096283556900447003128214709926381448984577465348965315719781080774302706134211590255416953525520959220206380102548267155681917465193690451110814810529996863278437726477771709626747278045252100524684776307778229135138627651783627339414384292452649532054791512728793945119808629406792993308080038853214130580703805923096565567394474142500887765884769855809880153008243973500355927569293189059561665223515715766823870404672958406377986753027017951866706952833864031481388501670085924589222235612062807477949662085817691743463429131457197443715885296812441665599208113795346572577624385958979608662443336764093651110309374673196154781023019536184989154316558460359879768919821879382651528633649743676196705358326247016407010912737790706108097634830664529967541187823559033948944782673792278276508425662419537881328189219268727300535482280567430082412908497103686560376619210061740244346202313153969199168145955512254234622193164200464165036736637850682283223235942230633813473125094634404165328168440623801268912241630696021477438588602182386889180307578579484898076357286123891309945487925621428220450027962635299226308003970602867258909663597729495710087829174881867696352433341358340301728774337654977777005916573350573710692673494239828660056985670693321747366402693572891701659358913969676388893283489934922719089573619133657769141566046086040887878144714218228591754832079156045354616688330080214329568760344109875202701875083575512264712306629121241564735794408748802616344107036738687226662351980714654276755963929860114699182018638386699731948250435455185849696175117090192300882305534324519102393937595053562161640462659434633956100556939540751839014434890244229016952335776393746703048101458432112293262162432388792832542544261740444859998445111378559360284020213488759963918022113400957615726761087417881084566840641665971695181333740093847448461090031506493959717216484032667771150912934165515618848050546922660821164490309644450454594699023537935853613801488206963787062764881942773761690109017942201367579164978554292127732441427446973485732634010439622165877814816151443210242046523745910466126904021634107751641014013633100247879143802034356016938860039299624945461087629993378109890762852659099462595543340218824810650255484457999568866674453077529835842381605375266591196971989747254890953261762709025657777001982082479158577093772842737100846628237314229180954735440412212300364758626010694318627526054054573627529889582445849812188728895641557249723305564420917190598259584456342745971833928361075073695470595215375214180129858215478869059307751360200909337028653657032819148366453712281842916162757773581766637222198951403825997997629151649586823973568220781623469016646276739581620816648345670310872248657030479181415434269233613476908091832533294463423920770367725206081959788651901248728910167274833815261901797747191479726128561428848068491935891548973763473487388676787699964519479877914122100295334124066763742741107745247467011330895008605787913923444946691332146359740577563264618028635786006589820528303912659859279711132685478358005701189747337897228036326775877427500974292321568472412993766414536410988981951926303025201769942534176053835679762856826473868889506037301351570557671606854010971918652003815648947984308082694039978082076086253790784023200600225635895828625239849469146856675989257853726020502053712059730836216852063673762827720881105188716975101155752723624605102507667809988822775390121467596346565997321836819933253390903792222716808524876976431391867551953273587593150874933993773127759167049186324645263337451041644222324373417046748127283772826927312893759934950197342199892763882926084493152906880384898919385267830815499278687302528485773164772190561951987149728606644017056400970143598936177963594691716307454356163393744205306708754701455838709613514600526843936218636471460470953360133526690846097127197518339764349301933697645993762385746480172826832688239898792728399010605557380765344653653186129870392381566821978854782209044330012662471923953502329087957977087287443377085595198971828961554167879670897325207911701958740970867961077261003592525646721604034402325896552941936234074759750498074522729064082788289607028979207009347893863530733935646715717138269771471602523043911680866953535813567623895379748214496483843025708180357341563981861444891579412365956374032647211564306558330736459847216290124063978460468119130973417800873645506554296945051892853904449782662866642551043730397370549936393894348951183384339171724869119361820673163761298452922887423549956817543158124714926517517098163017810508485713635061106135656400140765497426521124629830521362080137958659369224557459361209693388487277028179130958210036932123446872910149346062770635413443210808601164734193846986380655361415017870340246571163201749299514736424087357368413325009694347287641023102537717623814710966946494654671394160456134286784341989177575608343003096362166479562566552978786763645579493340305668169020886647864518488908531444154991495043790564032828902531619424933718587821515195707965574336908207726770411603662032670975678038071724520839736366941695669151166415813184097888724654073613810187209527383241555408002127529137340367472108557175372287512242497100609495828898673053462423382871097698066666662121400922745263870036222138147788736652655216129242905224207084228038992891193183369794175867744199143700039451668929750813514058111930529664430492704850499010587002158419491185760932236125004369036649036375397800719465007009914234023547515148456949583775443914494613917724612080228604233879700610109168078355299487122894781409697483343005054164134216093987320838309017373458744067390455190884969472482917050550052965679370944707406259388655508979886419420579609683650007272250740021179401886436249775553966094346724896033905591720053792356987176931643790638013240584285086491610832254600274062828784687201063205899761584209346498632810217404677041473318727393877024930806335822177790675112372399654877486406809021373027976401828843207354362236490421462918209254318841999768952579196403656647770354643080427221229767095496633452063925546532622038716485268614089909146807982502072262750562120176178083108752215691693826899854754506475962747221565333201640284958645701501332337820336752329946598301206202754429721446673436955249581777930312027378725312423062594231841871018181014082759527732326433786591431954396846719062938325233752061814636140307061388056037341799677140829583927292993205609336778428468843116152969249266499791202423512754083194902773772623085207698250609876836148149563645818430914339197056343523663741342181732287747188144560725991184544874992182920372399979307417851931951506382868432136709751203378036633442866215292017938414503369902540374241040060560746535661631841216619009749857901205719822486702860777257129121401913991544496257016539479524959077380943817679118763422674833282272339168812493176595876757087634838600430538262819031201791621774584857216599440510726026509016805776058644757818025310100396791359263066649925408925760605793768088363962338507484934446934618553399016162401993694075849708740472698157599238216012818468833362672161074598635009275499212209769610271886072890936436976309059144606004933795646416244993912534868921491326706967466836928863538636589854138203360792258556452726675835404307420209584614421807342673892576829968150526602676813106732441285713186853891176469052634604914979035310149847785989020961104849053019729311203966630634828439589706042199341235163008057764076542011573007554392958325016811566919402140678962407717072597177628357281444336221588779628560610216852489294096828103395045571462064771395765604343396434788035153873105660223655096101280308566175001011943591730110863004756758245100321146615735456197698451839887650742680637315974124867081694474874307837665827339897387004112150502217572108529605583954321659973131931111652284700148722654902356788779216405919245236425327997495590999361744162577977594038152192423279451659783592209473744221606269441896765755881577338557678035776671261652757885920091760365047270556245947101367914497572085317608271902869621207885334062013772284994372716289662111562014176189822694200837754177362726929962551708850876879548086943751921570744164948641748661009675351868662357312827294626286837133465841602337433853168335884075801641821438007208849648257694416321855871584051638310128729129982937073544644945067476397332577075523853482899614942514604634683720055795650499880785193759653226405819963138175600224603276782815550220332470651967834753180748380882653615069391075525708970244575345760424234992051103078902982863749111335276800516102192581620547160652681365957289417899452528466263312229326384761174047332592154702831287377631387889151873623961515265265155540245269819195643238593611557242207491669501162592039199971171032652939202735601116869778167075314260705739211576204275384530634312021458531409969232224366900089617394687734842069087007753403573473717476840828026389410373090660755784023780871807458842844081034542406576231099574103018310327580657687106832542534979143673127609281220683596009872615917178174381285153650137434422996899121942223064487614990271257764836950365592239160803496648645513112237831177840918324834790057023952022162656055615187063872633787394193517825651103330823999787174723417219548917188300525406922123623613786995418588817016618737437030020653120594840928944238861323666373640464092494538343509245758969518208134214108217872565227408624501625396447243345922578121513609643926105157715551514089990615444186271624225645009338899185430196561154600220427762620431010501348331742357881841299935168956935902445935327660630648843417545151747841355001821894457541661206479331908239393503082427387299839528697848204335309843770781374145566864064658046746254809320293911819253212754421081237672253560372979612852356137463665248444456555074024385476207466803586582423472220577414018628342234623840404345353876865486486285257810060669224648355702251762391574015954032185211047386714142150334015585293475130428551781592797111332137826817422311634976132430593680933051140200017085240150194880461875226056815628872410899128675322894814368301191519791460742849746381483300223242413019464910705539907279798119089274639460996528330573079079274662368233990796741951824297247660981636134411707575352716864727382275386169407927333151365910598525987805870618374601757733616367424617301874530210638641951016190119412897758435980335423055108910225323989893282349652880751957380347194609051956258351058401047710841385540376036916824021058900117060625367373885604327953683884366183238584989765219246055937230746646483888012998009393024317147890946127855002181985356821570292306559457763574949613052577648829832923509268402707349700678467830238828713140012612484201897199157921969684357085045324561378725822794673621977379980893588042383499172132505528833104405181386494997437445639369371916185984388604741174216786033102633581715228776947051300745928981647320973446976525162507211961343502159840502377857542843440235268065716434094679037138862290899748145768759207881514152785300343194759211804045878678086579231797738991868397991699799585975550290473321608033899126198035948974933493964127716999416054664787986045362121952908299838588329880612378902995441273845655038959841744164971625942990479702625203020919961355298611136636139273301318462608079791540684729035384215389500145082298865983387347380569942422451691546501454918107713611213610990316629431306291002874885929933454840787758313734878874651766295149300458626148048044954835720237848220808076113459805034144507231599308444867972380167389714534451107072314824154126838680171020319393785111984358443196787979466048166013630467349668067061548210383241705669248796103259077235579040919527557055075622311647633052602168356475637955233531331517349983398812159479285990650016474690898902703748421702111357984946207407076665894433535972234132351017270629690971939467345641165730378845745245390603344624545747479217955884073285097843228203367118202463919143046138361932667528625461642145605315383244383988625666402256102076173015585338853747905687312799245654207555005149442820608179516914043995255522932290367175495577152957614594326916206515492534019874045860217078775347221215729639261598171524469016346854480775642647291691865521145437156609487297051631002160655867011867827412073051995802851127210640720667610825686259381640539640625061749522272586736629521484018202618002098273402247853488422442845079425751651110446280559425364048202653616807435651612193527421863015845448441635598578803907161348026647303493089177877753950060767033733348484751188947189831412749138985964940069670059805538791246387958579267377858701104634687235753075270567385252749867260214949808523176050779482499402512522257618393957772433895111521488936615744309605652217734053380552533901880728638682333055156469832659879022511017089978829410277075651853272574246378104148555723884408436196774365242648950122804010680140410984989003431443833934747841281751560022232615223314559698365849470179043049165307576610645384944603740589081876877649282073687847567931107216924675318774772705217062729676921737704053240756357577962245677052856792166914006175597212646621677014098482776744857687237518118501516081024518259968964896980251075819040671919579718425228884776522971166119905600703025828820920630080972676885961029718195379884266658307354803799007222238892131973020810175010694780751931113858546039718779326364261276343891621355558516324963380784896576612421195365629151997862887801605638534150221042511943528138556291108395449641269445814753027626316781111015463363998886145765542252375739158285800070886120446148159126806536426623263192196028102980324986270642348660214110699085801683954450677297447412049067942060553205267630100553518713119272233743746467718814094127082892905714850218989997858357890702426045898284769271784440407724369681306421038113362207986937331785891932746073327096604835362827889979144199745191636720111637028363716578020926513141608786183039203226927291089328375773373276551173749240857832395462431481583631607714516166042411914966976712958877653277392856641798036251735081836353987884670019743860609380134249711333623199244034786986025284444511648026836782765687385998104475297421510038071932519901500615217768864655134597760391848942064252295268140648761799107270740971079618649112023251363766868051749252115379464559326849629749825059405168344132661393865760896540908918028438962080031933693020331412605992772778894742468685661088283642993046091171020339798301984043927829962823363760230089069489384021346610182238720297820373691258616997773470528320808648742243240177871650166374996068052094952807061397496002752300347728146790694554706906596716981473232871588503616735889040009933796512176589499573787200871168910785003682136960473376880120171584596602373161884401350919046900503705811192980072913747144500571085849183636061402148332873417361449424521062979891769008012904375635741781296447101239720769362735688991155293358640841836431534223699709901735339575424587000372853430869348847255913569848902755623012947688960989077767713862010570790889467850462822537202353832779665973306036834828920440677736329338438940222995590273521415873330924596527527227965825930007305353777605375930954598114320556794277804730571564585255291629016608707193733107951285137085027108795670846270427630039325469479961996866241450854237152934749769139214379111466470094585362050473976746023969303660834452257274400402785794205533194791042697777569282732321549556085757891292781478140552554432376544549879381445933313320360116975563168433934442426601019201820828560466940217322902850921583087109211425703201939802514063717156297879843126485610091764835011715113601349588822211537240315109728991449321934721300236909817499351275210442597504343746553867355966205656800790241307304949503077370993833563824651417257934208298017337074665790951131846610311871744773871569437788772240415367467976733468506928880301309056820657134750597549330059363089383445781677753519317801586744556119082990457964161240171909464500086711315889278217678109764755654195780676778224833966119128976670742793192408754257726036961553875762516385462989957317274047963406573090999183060363036830484137951975274699779187148955251432717495203777511324572071950313043892408904534465442112280977800959909857912594240120303165926529472828603711531742349734963620786535182312535137345561625202089145744077022769795929336375943150134226458058082828323309164848953812077259833825745715521845978955518368688305402804429584099411623986622165951993201302749060057764970580643006926990886025449622159750999038737588662234943908178500642124028554200099836763153578328205784861244894267656914971923741326142546455889668537803361612623510836441249510359487287657687580985868959023605658071230038269994362675098867409928558025766338127987821826188100645104230757584374904501537398287249990227282793990189958615162717148744419158099584687678264593880950645841315818321412767480304529291676802859378580823177818302330128594129540835381021493537781601075296007255638834318387735286454972579838231200004056408259857366449608470486411997493946517518175062568008709584591765405695717622007937305666476899662288350061694058478459480736036994651847899684578322393701423774104861525007595208766110762933276691110321578350615057496477173669879322845724211030501045672887849259776939728534689899915257959857224395749524063898420400734969554625414671504172200424357504630814965164850952020392358564688233006861281734900935786855299426807850059459547529524543820042513328278802836716026331083061215871274225576880877830383959746993855645970328601591948238971790566171431987446713176951655913456311845008553622494912799322213270924937416961150565370423834180574066268274677042391657915117318807944795581199375454595019576867173822649927182519432884579544555085496222236871767194332342116127945319579201190729062389729538307159555941907054827841021905438314897353634615009589951192264020611751180741202958897618654319926910167682081371788070661874122182565082539802542749948218970962922225311870899474654835681703886258661190582861271707374293111490209663373608672469315418068333723842521562226100808906751289992676709762706967161270472302578009869865406605722707075957330482670833828564248053604502473376861305610298427685705579814622929845592472261401732854405916688884707308726160877964690355038968280429862066083084836398410944747783867268296835824431793561490140257144646033838789855621275275045790803216300343038620100480994755857552578917241271676599395234564962079352795303201298677546107413041666410419957098437330933698524955449452187958550217820271054967574348484710026254601356191943501333238620478140498863632279562844624788666713003274908277450622658643663021548935889607420588369394288152930478635008770047387846413973502961141204197850793121926595515936907888385813486228455694423947636923873195813825576387327765053758261885605619705004422664276632995699087116557567153256307355576457670850674834587704146691025331134886226487330022213545169155765758080584487380443981147400848430939638006233678055169748374540040047968931686099323707554406678340595176297318378638197834719050815183658202126043022411981592619923541427382925004489674271737841729142829452602859892221111663869494082478309947616203393873174567391018668008187903575970015566336941391832098187756040814049999118427033787064002882690737207133940033377144535382932976607159283890917278270403698956629271803222940456908097330340936990973754177067551913618846702567881959433103147274517164229530776424899304482695888681516759676282188136045136198710554676630788982393372146276113820953910885557332927026163802634623715946849584508604073477121864173592895189015866155241864529043163238821541243269622423703300944069492648664401991506280935402266615634762512302409008524147214667625477089561524902542289481051380160815413703788339450612388381108433651928069094617727708834724993483159970415367236693317395498153081559259850518478444156320510274902481879152185660387278075747097207866714583832132379929340879533122330572628656400510200152305904306416844206028698689440267105745692964450845257446665268478679079446899523297888532504475135977995247945088756069968636965948472186957059185230875244026088198120671831052551150749447612278684829723167438615988040646280113943342477964674965577512401328924684130902587373174662858242391539461354350289592095030130831337321454583583003603930459739947011437209845347638237977441956089456021709548863743501377595966320452718115800835592241822053082729857737999603201035914733592611106291481835012096790047628313187922921048265602435251205769085348612305391211167273585488232134686637240609390636748451423018809329015026029429379861488557893870792416382006219557539776389409311834989449434345958492276762299470578287217157532833775327139729184345944305506238527803632573180784054190874268077337616863397843568033024530153230011162670759939339239890047948863563451293449194699160987252775701926771426854335241537991740293535328860459019747504454085575945820653732024567818324690007598080694056799695211258626492263716428627560999761042141744242069964239572272768212837014460178476804715397807129594707257872145308736838502149218765437299574871821448098878670529991520508775902060045581346423010715886495493378686447303487949749377658041691213109138912690008879805040096361949573308067854051137199718789672196540036321849502832384278628716597376889533891131400145983456952886065144310257225548219185129833283553660407192201643449425011308713709424990293913405756452357181155725640108089864426866301783784771517289228832159954260713866638351073737766168486098581296075394177207470635210702534643869556481022973755631889613998489175516539523368639319804643837094687573475137402685944278950680474807507720600832785610886641739511683138870053296747200126208477555288134177134366060776200981960870257448995348623996327904425099676724796131827695771607005165273098589432536744399847612419021469354782316152268582890960649652983062733105816239099008979547487973809740103045386572051450645076197992484332887395024121838791109126817809725448618745295334941537720258619097510106751679447389736371238579496932210205333673328127903292221481585341095913694902022379309508159188590118480577459389319534295551731858015943190399333967572270870150831322693459136371346018988201734392652834412058993692104518256868454746591685649994813685147224904272577331894109126187919534672272607337433092755296269187388257511976868272342047746962114501909411924630387131770013591854043266617430800100595823643371367037298488986673905902934869271637024008889127023499246413271457618064100179996338695701314153440484451060482703885523197082765193344297863931380556644580573268304378602551689753039127501928804648848272884371121827974893042268762893442189476453695751708890370405037055561435163566285446704833454326760724977239320641282597974334618776000584518756377173082856390539981056634957210437122289973156022054232593441012627796244244243935732358251666820209874765810362881946342627302140830842942001816761440741286988718844488353280257035024638707201527813070944432429736415810772903560641348071859295005993522942315419176295618487774398587313858125238920006564157641979379414840958869250828401310720260306698525381435582393604414934963655660823254968507154727363025609712380184607993853071275013368930903666766840099361134037026571897064816379066195456447982602445356786325335413245486239637396049681767212538215608039691315064034006284738600707001860596582574432193059969607161253796899233526485775994919829127823393607152765394479756359352229245478194965523692736910729670728058313841126853781101581544253100121843920393289695859237383322599376374657973538815014921809297127786989893290606573382935824028615307298872427141882747454082957047859102867176634968512649411141636274127640627788408492238797532843395209605751842706532646152644962473022419070922558715289290255984480653519216735243890338246276517750769372675648775859472836013510183289954844604761756994275102160588635358590247556546979230742652328158702007295443008048388222056682993914868582790730361448180349389082117663214890500195876796105309858882894251982294525649517273953601270155744583615051937616652437423005222012527571015729270873074289127294910034877554939870572288407517524814643223840003024933763571285338974985168956243150948019528549715034393146240479141191438163074416078620948986810146640546356799542531065429134760861498135526249898928608223107180450425972383331242535891243008460612537828898586674379891891670884262752320151183461157575943745023685550532840124105804017498299809466548956878681308280396285359366185182573363614565508587360084215283786416078487383323699428821727393798624336981228038765195042346407252164543622189941092023542652985934562470304104017995393857730285692419251757866489252817453088246462353977892888876995647064798209709804370405558668438283316978675071971454443039695134306305888000261145714504771257454175738721638595755369595241635431653326377363010029211305352054092793721777784171886684930766287400259367031106812575049626656066556370175751621989543667294703911480455921895182426999511600437780971593254523031755745686939030715683187455613344208533869394938200044625414643749007699944462440531352480246703316092930326779632999389411113833356155624869455751713207612559181755480232217199898653127259908775167893507941690725596079249868139310790695180551270408981662366773197981182365424428151856454429741602193443233531795812593533557593908290522856936183930343938938520658872009915354130519499255596441573543519234488348857845108492045460174158661080641505230262969604121257178890024903273223085334588865571748099475020917257329684806087184575959377507149331846455606499852946710214169036496387804499630845937787433368176144146377635804324573079805425840768308043680612058822991725998093669617545227112809295500507566169849060789730967834942471560611740980575845234988396318968764706013446257025266810111668832565993365165115465246650550556496356211510226281014023579065727874844907530754659394690764382652760161574066151020667351139201202710589177292885757931065379486663769371331329367474341356808525950969141744097905450202575955291404397245598542809088684593512725479533449061078740093944836644770187379922311543661235449149676378984067422070573513886694640950309166615953776390150809387560123475438831561239412398385368406800095357698557414951039316954727359637877750379550193313427484965633557700344675853385170125581410808934379868401905267030305901439761425018843995136047989633732839727901660434164142249799503789198542904846220815772359862774450658484589520367844574023403311806280392390083057367399179066498487143536003903272375833802355940426721965771750701235825926442232341494857417184006712980408854312999702434860499375044275866290187874087346478412166615682098836558970630933355338179154095895323640443259200274885399301237545035720331408543480012995710338627495083590295344339263517259938911635691743238971235642196030224860819565700034803116481092595022768652492249231007415731316246291337882551890393651845572382373569175179998293254724352960434531019109023720645491088501077773165870473660071266767649939960335381530730807315776168566669983186856183673080254542770694126344263364226574388483789693795753481150676884115256873959655076348691920875980183874307544643815825271973189537153868310085086413259948167255254886039396483996056828454833981824047927718018609878310257511326286691653236546912989921790461414175533670911255884973632286528633528649130221322864397108260537684341863275151920582583695471138181495415186039239400736075783248306108655197504847202804699290061769760008873636530594608595967164305193937395124465926837665126321942518941589345925408762252368581582462045493227083756171293858951818385860543448665748907123085434275250035833179195358503554016387096770528587410913303454743206905040341843162505292259958361352053589229981513807387054383518493807788638752942531448175864805251335803791312139904259665588953499007910129374390718259563202963763319956317339620555586180944123638650609692092505832363565318446393862625830977263826914002061501187726268806586324219965759287871324547576548307753518661350397672036325748218640304500131848911704761380344100685253570021117096852738099340051401231173155379926362677828696155243692208411613439218287029865489941030577622745065563301155285373853985127721752146702602426268223428225411224762304195642402452160514657611057025697888666660167456747307300450712314303510772798737605810932432290355495413448733259438844151458730861300245900764368697514569628929681652326196669709483816572699076858056119627697207943607991679437667364321875299273679943885216491387171774440591561182207375050116372696117822241872792745005895921035259056562246218666041505437887005509994303305856941727924647808122054194846170996487432100580125013624132110707279568545303585517865170313660413047273917132498669744944942933801637482312438711825319426384152789822120439669642854305597991642701905807496820316281853740390026613086462293968787826003417467860074756367853253118910859154378120011621625891488822060904110233722110053252817725489153714773488518965701362400457107682491900499549744586430327359128500937813199882816516882728098452014257738113073527159282958631855654709173170355759799084317799488209566631905527610352897285332536773765922661234380683894317173433713655803103772696041035172057636052684231562654899905801801331999788133917907748047280131091412425395836407533368329386779367256005326630425947552350623366954225051314715989272664463744663826501205879671633234785269890348991262768098909678606430643549993283593040619432305605626449289776496519997839889405593401094377327719455489752994492688065811299256106094518761469103553172466472622794518408871083489903848236871108666895392433616714615508689558068781246893831671601852357122479973441742091899024358090040454058677756112167925541499107104891723291990059785305871096576793183063155897759304304400037605850475703849774627871714341450204121307907367050980576498157459566809514103088290177700687554615849781373248568183680257319079779719667905688328659375532725525875728587165037980469959057445736271652050757683771350007517365870570045619389723258994636679597405565034660742666786129380870173228051632121246075190417699331552629266949190392916382128014844711257897392900217410613863491322875336874888877470942911373088550842613249666166321911654900875053705311317906902514574647899603855458707824000653372676483194623114218500523503407678168174449669092056874076780095709821980291289510297219071245360721509262818494329303270536710060853571620543455092337889941370318717421295560872746636254804294223457802253649600966992935522613177426563216137995658973070116832860532533401526589369284108398603954178425401582416485196871925138320430556006591386852360650820604374110494338451514306786086203640452701966553828443709976278330276645059383725594572261310713244475577471821280496579218667693135762990616424404745826227602887026590351778899011286075573333724893850472560223992124441581113258329180879059539230891730624413998763979104274652873121470003887169752543199061026560723007345797931890409586091105388134145357798929545015833064911076160913793105955221941024406411305147470069743845387642075996467859161729951088750271114574076810441270189555624727631707806720655712605274722287148196470695618476004386742137175040597389434794679040026567112909827869656444050231069778561297021186368604242701638577035667432962030310742806584989571430563602521537154413728061880286420824632298357460355444128839624194682601673286982724267993154381567769753751058163392599414659199599694015711875094008334850292376277924606390195106266463183884408200037981480439201228967582460068536957935781325073721458752839341172145280989838430035789793899281764730109793857269304976505632054783707610958502038731617920489401866599002346202828477303679490396932168981597744298028789845148599800820412042887042024002121204835581554312339237535296324304668414241014930232399514530394995330627936192338223195654633353873473824265631313995906185873884627709734945708806518343405840911611262699946991431002322728046074851426692327617321710107981090047833079872264072204321210177145212110284035201555585107910108406076558415008070372968008366664316996750324641954868924436274919943974893341588321451788676569585700512748456323672661421238600580672821811083707382970634315779802812886298795546492483535782396034605322987734734032781781743228771778892571193872508079398438788239534282702191300468441719220373320709513077249962616934757278208063145992953833523606584733085137425421166905531670476499277506897204481233833532694872084873297137063700265974865457385879814901895953195017906107040230690681978415347214340557161150132256849055246455533977691983742892254224010654685056031630523223780162291955177050817952717227083691926263083131710746615479130675634532840148128754159839842808878900642949998936606793086035463936143144440549942770540622329142320475294523213520736416842030236418605891844080746997376932538986014729949948639748637468116838846327128205673046553113657398573720860207881644958800552187648361335327699608906877594137196577563751568087846399972059871224218078640560882160889688227680704102206203855108027614757500166275496089480546877949159546771150630106927530009098438311486656953230858163293828481624598324223364493906289025543504077227781927713766033806159803058583963772739189954174135179750974639748338389911495477496869227258502513516118486572576493439163357586691620346841139305256731541581428037228149339122906954200530354758903824981120717010406181904791990381574236480302989732061837757963777271227782659019853078523731996189099253036107218310529223399380177081255046850084545802819827668620322610193387083658892256012909514346091318813028036650586291130610267979229212105300546466492208587058060504153572839718122296188621556169187662946297239001771182725671915641593632537446615280275831318875406172208130593905391885839800554003855664543354575933661629296396027889712570520046272017292867859142493686591171140493950976490720503542674021173120795546954448698301781347832980116625828254185188132760017218607983912606636795180350339780360622049771952631506518899988665116873207645272193308198694762672202571046414512019752559211519230464480552297111631612800980676579065863621774265089575526831842879156115502573153660539830949397887573691080923632321609360977924026303358932965607956755891244890330629618110948213557654117774353707497625797239597624821303079123139621814741803692237937077242860063381378424003194470527946843637698990352116135807544155177627281225424198346218420116310414744931707231977422237497602806620916874733484270488091457243308089379328752864505896967381932795545598165407871812676433064454423084021935708709258982275292735618265283863768605737733305513244856578395035533635995723945976299728238179251689928896542599513614918381818108001815320070513986625322695705168512380156219733323548195560138120084675399734571820946607438633049627714862937476485278117775483136615473350818673036807411308318751273809671266966438996798189658735234779630353034735174048624792542371563110219543661785170581739584179932774514304773973525323082034464280582714460738477950360542874589921547190260938212549968081132658903917453024051882976108023654232512641556536379367723872535516041246949125903796448246942539836677364167926096878708111536981589984641578427339369784299075849518447630754948045883689358238564135343315901883845758945567960009219415749071758594990442139780888812937341116539587758877361258206454777617411089112636461848082879730071170694655379800177636528710928194881843693678795995780852192015423828466297059810889283974761350103506613179249108817702909426478515997169091110888288785497851234044516090625734797358657979359837462966607509654416705041441285287164044261924256668390644214063184599714612775781029258227655308380143871738768209368144269482225560313290272419576874506940547998199841188517042002950695781205488943510799020442957388449294579046751291435890594202763808906204236157527156147204667887548788356284896298755182107783104189400116094466436735609668021170799961108075785954723671128848581217140921320346884235007755176159722518534042175031240192386329598168900546192547435674568810159715154842641563238057620009130671462713438769712402096870687438803524553776233193697321079264531567062884625971446715455764822243667115916537027952236781869500967443921258591062789155274609388829578969529507088305703368178320137598220701047497562686671985308438539246664327049039741088317131406051208754042180531780486447411875709641596317225626368362652230846612485980767853466774828468023018858455868542132376193816587494930841739378294756043173704462542483532339651725122652503773864194241557946236789981881907835850104777300632166997181897507076391688531427211374785384881438462418711245348564566129328249359015580724238788387343073202585380501906432314350817584754854750385324676923587323453464791500444351390988163572794708474486687416125417684847858518439546432263662128432025479130668306301084599094150596578982157493006253369851445598552917246381369335940496197356624385497756207661042546797345712450322651781932118913323117269223560149996588643930656137987663575613617615587660133103061371912206292887861207107798233616043225007497153273401835964089685746810209838764788019548244568162194759802129246457946201889746763638006550462268716462342593167467402946488701162235009761595617760820552117164853940333546290000382389188620833429521005875589155268466042956053525806176228088579985055786470511069182723577850322758979393976125660311500936413374821711349218453383807370609324468955508424635017280200157665813472035702152124787068448678908612592500931581141812014912370684592146539942243774289388107711015612558165674981159018880634213257551642979936523027753601690579878889739699480219986545856062476515738344759319111880819692289810056661712821023096009497725988276206228461744457360281059394156042209630233561747977796095070023714591658663724797572528548162292588714104521555219830654474611036387419402337607146421996134034969594355550502005773395069531906946982802069134412954374204746609168171386610282343117636804977428081553634868769069014117405400442975841069959794564668719258285920525442252497460587138000594472415878523593234413348355271644410379970241332875045224677567375427191835728574049181435248778094130050738186238819363474246108261233525076309013992829402055683251779468959875234752929802105965925044393978684577581814702216268420426720969216952523640027462256354233868038915720861183495413815877758653306337949330075013931543517504476506651291202631645684627156396372479645797639769203908756148943363167474927854080867885667957782277596180434413519843133602994110090895001032578488320994908978562599890271660151203344966127098548416065281933778256546959126347500250271074629884920324209669466745463713296018723434592181893910293699825612646713372051481065376354668072747911757673370276120690879794427780370407428979728367026184383055772823140385122376024977849554343058289449091638466882138474054091069490440941124946215033844031892372142341127431741238437259991866755087004848208865706997442415760537094127050461273245180136440465401328747654218727909114919350283682646891515968603087672448639375657986384244369520765806752823542475155688559458884699879259015390475419544284777133192321281813390030194874285639855008325250585974475359809449449658273831055117495138846637900178127296667155817299212507448067005532922411893735692190698818221824787077862062677025111865247305260265107862607557768700318576750823825168340660582334409520686185981309463793034973953864794692784862132624209697239967778496567007225999557292806455908404041472632757436657828634207068104587978920407214073820611605657677512861403528629027626763606619020727329218130081275804478043123833225091347528633973709565914966265544984080914736517347667529569991250044898537640838851464122392403872791356053451106196127403689429997677037000603043927196837914240098610137105549892737151081855621079131691709205574807826333843712111019747961106395071700159117000235478020438679438697342537878178621391974440523413608007870544019839083523191618181119910162140823265138938494244097595112410918243129854652677164382550303937655285596035632126837434209889886361317845304573984710497919954390962481288565347553035672450582949909634895378771150052949395961271022973917592916424242652746897431941566053258638618625709969418330400959548949932860260797219689279188787272285469678672587438502525998668378792883884434822832335827175296819753922968804913375371786777561973254033584542125003160907593826263839468858103378992343614431831055944962545052978856963142575980007455242871268283647466275724226015762582862959420851370015624716906609599880016001997034149956235265567310617206029938149091382592358060384201505802054785178342288436496799927587604824129594511342678170095226358021133162801879611550122889404149745311890232463674151754604885354084958921298681369881088425557515483491301203138807657435084467234135242823453840323009020295610483411262521917474608414773735686755972712250258690590235121093935966385717043749916315338851187582069042187739827445247158259552283117007403858294543861874560486634365600489684898777463430886425917381652591984587927635605607141678641785607083316787815593935590885323554934878004702551781735429344178098598885725878152607806219613397002183620731995144409793603529253256895580316671858748685308575648430338256656194739989367020780267083734218913573003970189046984267711823374591820092313731587225083724035507335668404773122730710780007085876966611160019306865131455314281624233786198396728581132631932911286401220540277155667196194195138442810701522633982287066879008214099190309046383068173585790081215602192264660813321012259775315203417767042426325592076264715634486200351741008536246880789107773765076346893807054678309441158759952571138695895394012162774832389192802478746711710267974591884911289262344289288988519274750270386278625889085975309708204439036147250952211381830401708226905427312814877125296727245751963141818010284178395392240807449414007014295916868648813997164223404302714760120522378237860675759823510931720844247948818386293925068200020625073832887415634721868344221815844413023010751709016407952417024193036006141475194236344156965026997950753237758839972381029751171369039499429143797864278459549465668023231153410269243490372556384843596655053828044628034854711677434380081585693337089652109699386491873507470987228918589754041446809300115673541804994751470001893538061776472946970818528598822982054401494737624626547330071036589374389203236301263383994564792486466682267444772113452083259487406281083432223816870727160257648652807505576961105645282655863646811571836621492249579262662272764025953139354717968648678357256977740712290559550808959853418122938678242258463136238214028531383384577232393941782464844892765459675646214784150574024458744516517871497805948376175480721698772813058804583263472788396853193942821118712250889139099732468650142831096152646672291415488826509343028390592890517154213251873235034548952885362116560241480172320126364261066447519353962335206925044065044372229418984317270053374489422039554249305293856277730264617157254831480131535384407846765061729394504356965408309164031588962890878047448457572308535476394221216697666716860523890520146904312865990685445037644209222737839531830666975828186931228456626344833086423658891260954047612214164681635791332266778207990133582321585976463133482146675103825038867968176073417393881800503762229676532349210815541035713938672625711976056694054703109191248524423076949716884298491802172576249105530124315630825412043472112806814432896085169198207116056479166974201426658443224673832244300847715817599425593501158058182627523093082534329246333764238005459541612864605783545182127120207500671201876695800120719738993761348785880761587671326835638069096968717963993149063217871302260012614530123184288871162010372671402518271581476153459435052834827127798788182902647949557972841780487969935442158701009813197032935859452929396587874236883533704535689131369397480586220350579507723815183813421873937161832766607638822947263896095873442300826956652630917054110779572249100986837509172668159590194258364559492979973077338053621859969545912671765869566816645412898356121629036621843439180541254903034980343420139757760928314381943137874079660986265588705273970417927085472516160006712415053291836918058895779572462527095120181197128317676138459258513067297938286907031141362922321056300272286433328511778934400097267707036834450756933711103442751116250878873456408304258539368218852089798702816515581510210095842077956876493256391698174065169071836490505114511142425136122939434427614628689694315761429795752781334308730526796347566152621767201129183521910728554537838777383744959404473377585063830082924291423316929460040233113291235267136735356082398302447995450069020293647993790918677520280416761542775380131239372793754534739736488998220131196339947893301698616425935597331008165935865748788872858082751419268544182297350853963802716661161744402563869392501662513318450627743214956583660554342290379756938867550299533575137639293229624712426006999251621739630935003003295509393842629963134585496700607650167991372146683811810849971861625312541790760489305963980026444814889462003929774130577487985674118947850985146430311183317448528321245590573653000437610372748309821746027223823658166840737734623562318581065264324807686802794285031243148779704761096074496030810238736452620615221588803735722878272588065804913377367348789815001785359999802451441419495840021278686904711650382553419493091448728457765027250626988824691584746758105874106971157777252430842767274536978349554151106228880533363194189887301664581240497859408622921963583883259658376869585601562367982315840083850684403484439147239158166735647109938483363327908290964665814594474692637163549467352509142420794946946537250052165737360477662269488859138037875834118373006551134683054076128881543750218908722614943092190705911211526023314734885194415911567484724483833360190218861828370720380681602188457789480107898707959682039076441804744281502548526094135538446991865030311064467936117234079283604537025068226141882694556555305659936843669094782496931038437125473860439993249498886333823095458594274747478280021441870601276167568666860901808888419228705067836906947382624285685321549893545496652984518870193604790905121416074279261965619515885516564591306202974905330604254431657299490081717072230655276313150718544985388605051867079221799034734192092772018897506425816540806527352864147622266345493105412464404942883641002513074093986508538298376289793767208539672261274642164472476017303478418861663812381178095670389108928418440105490995981335289182292671311976554314591259365675997522296339375276383103422507566732580687281699503679612503085637134490943642481564740642804853246522259463008572869291539846223460829175003973908822196199324331788381229592076526564961407905580351389744118320440218369837728203811202870625360106007836439320623149120346907325432906489168576137785852910824547857532033042349788161302712876469392318816878505184320251549717314335847785113255699606515630271440984267876797973160408123078957298641292667479972989501649853115633855544484108801194066516076766931216999367271138769920811050261049468981519847914422775502737556487376086059032620397357179588038984291667775813882368991056460660777442136248569916098136840108337871392429117965399557431784169485867068009644105097378599610663799051603945127508427354047932440997780155245746829729641248631091349361501951011416820135366947406922890005403004141784571153510043927626544625338325726723930401723130149906843967487318676591459395047048487746163401170565535456350553630976528267459007337603821740974490974160100771743132598594861126519987897806942770702694670395418373513567438493901182402221477220185995092306129906031625662786639911151526089468558311555603596311269595085642564295313808877841343601434298887073174206088096969788040646781895270705698000463561787954263901443243990523585850651156172616935997568041712009425830103499161907206220315832693811040136222814570458288744420159481400576017278847687754976935653966623286678684941739004973484166941634573143656305122854968735427544949056105530398158045479083892718129915616257261562638661418715298895902348310846969909408558186722209290420716436684592334400597978615905155771625268584875921731046843761740337351507323762752270783453937784353274727469488141652036021326943806369600058038817097303646475536195873705285881270819350313817786652002513420967631919207550971848798747096337225052016701102754711176229003948816731072407818806731970611645939546952891599534810912715972117337695061758885686701644122089258375966446602908385576706318151389107391158021586749267178618207211183420608471882890779139249909949384842191159352917582464197381702266901212902834173854935816431867085410448972192076218037994047146582940277172541397141734147960718664203675586070236903921498564723630621749667079194161221867299082042394665156784210869344069655535757516832737603267918806149506578125189232101217392260731751061891596180557251779403016957576045074681559286401189472107986864106802610443381682257528358307438355501334362423758963573069991353117637692487713471034264680900110845844559071968413693445806994402286895420293097454879669907401416647827482965404751754486221168049843726004327344348290728577219810234566228742897946968477758625364768096685293224338963244074845259894205991545869704972029422027991670212002678146250609122558829400347086623717058189059281615440371398250798056360001327316830713826437828368790637376939519762427071903025229962153587130021497422496785283811670591399520014932112841817370600361065270884538728481567222365102857342498293379838108652568772100563629426898171192756732191562862406941927047008603650898208130738647242316190982729736385722908118517387135064569013784995839821730345657184038269001566636147076769470897911615600571887381245060995302132342205502081992559355655020143324696608410144283172314190786768838807660916151758196315648876855824099291899323465223187421745736393019150776942704613105903748312573194417525423077347106121156412971924905530947097637128207532021801101724569408189506363646386119526147882370487892760763633387284886340922534067695228352657424194515926330715975505902980988554364019014858979641525537629845098474527554661423128760207224330857190454140774453516102146094901233689105954550647288055138033167322970274238061856363051314313579403764520621584301963118878073090547997779728143813733258195519097316476617086398019336250671621936477231338449407694104084691420890325326998934715614066501901277467476238865795579305648810849724925037061438037138739200542121277876214545964558366449950801692187846276063349635178504029050552908597743352751994499423075485981874234441436286719665741486404315359218878663090855402766437581347233540026073830577496559584350745354426341922645665394467735748560828194329494769946709902429348155429045873831685977752284761221242329020517194224995940579141268401611041473802336249540931761708629254855105271331352251697835557961793970837643718137172570845733383646826974033929069152740815127812599501723140036070619980526338352622913949865332433846431433386980998854021672339708024830779764067171050153728733500329689102883995438856799178791430861798207763141939255517062495950300121351122025121665969037888112318579150961469456701576748840796098543196895830251339321440216632199137832871484347350986030409354411868121836899822055134389247230067477010987129887277471941122114013936534384686080009119854985562081941868308452555817905619019940574313902655273593589523926632055647807315043096284585560809391227239783509433067088707067034377059211061141850551492886875527827898285335410094444960738774876105443038087166389744170836062392762903562103948236971270889006807081250340018828726634343991732251111608442496145768840281290722362074409544858939261183796657125988489069307201947638086086637769224608030719310113248998855726925738047743569829898636240275083575281570394509503102700849207910997139847580560397525360422906951387251492503795012600014097121861759247889114589307639762525838742437862333861735360302106277622915416705165848799316097406069412810054054947391406299863332017617396122440213908806960124580611055240738818139180711146598634020087475710799741823581376819887178287273890089665448125941561431857432639373247803964388223170704924663685261855739453284134548123825987495746606464448850895149521030677473190958141938361179433083590602407117517717494703755628897444698235006718230229125652317136377960441395816980472672989947900337851814390159854014630220770361263212393435251467704640591623693393795470468232106205144071788101190219062572274807420416668276783212527137512785335849818637621915166116352175465086892621457973273380880552809174939322333740091092148525336628268621536526520570114980658710957296668095803428258181772499959190225839355999852274004703208028652571937955164333032459047346390032863408902983958642969254395371950252636918078006289995103593968034659617915775560170847348999827110036884163036011767843230780803341656032907682461023666671577326649086083118247123523511187816563110242831667575854633143183306142449295037769128880267265413306036520751230021428001810918114790700342295006928598339618930468069919745033606305009568927984272651609483394246267500094318774501227267146889985864744547833348305732546131085583973511468124824726035313845619231366962040532888811350890008544713090766479089109024535647000279073588781039319422097592036537151157188650601671395613200764747410386288038348049735114826237062197026935705438779889218855625479046853930906690538519303286961301606113011210610532159110465431491802598677262732907425510214447665742705938929301608559718129857305215975722606377479124659624895514282525142301394904732842705507953458692757900575785592470006055016274572678444982010183739945405625326638975085254085584024514867643181439316335311139530882658180152077245536009866708998771451116595752052373102521138322023495603846247052168726729739492359079236474643856379075784748934490136254410660569587537425318107422646925547828669017847343425680055366240414460650401699043456256998262980520418505570916879185561812143249985476182669299418431225139146204775903784343729437646646489568988969800708582180117388439469666690207310894948954051514619742704755603422568301588398099108930417022254726844787816110206792233715088324545259957268323216288876077276126091223403213956278675668209843652810405319881188622519441487793406751135912474777459354772187419874052737107072205794555527172844519338842908261272634114930644516474130855412222577773427722840133533482911920379157531290248148901979169058357624552970237326462786035692512514737443469114837600401009535308445054947352872569451268694648741606896721677129153458613060857865688513431036473497509219017984519437631809842824318479806420525718440557440575887285977042688463026139611255292682753269328764870701654587727686349306166205839100552375307751771882732441406081567003867523431293097985288710160822615718459581392985344807498330487272257747147222063097706439488895255192888390831603946394508368575322858543967143974622573060424222768098258221479718180190314408511749314973538799981252709820292004434742616025800436913098910727567622703090816210498189313199036739228218095150706083452443794700273342534676805137495855755542262136027970511508935823065457337187900451065053905145854754921883244541075144995585595866407728167287917954205370056380616225122871261018005214363257546059130559675584090292067683798946648431738131807103320733029858732174110479599158948766982053108237864879296538983071729094817068603504355110185734018878591980647968492980270356868867439978867864179748988839901344142154819009380240848690654536689426487476736908624344815994127825456262944497266958835463344286111034296437981232510871998727297729336650459855756548389490173743842258472015157079676332965480310017787642396809479067065378413955507740035934093949806139380547471449366754136459829261592863982658907427425612803112945662695607357263296672226991253532203634768404645923902156088313350831517141953366074456255695109125929967260695988079894534557695620807172132376488790402341975586414112300943768287248672567214672156221965480247612411881848918244097779832875389135419165719971110425921977402184422497299309922768025440860131946867092038975879949783911353004444404305407934475077905173268265578720398986595469864337277169163562236523537101962357775813834736400946743310831161577307210378548773326210291611027015645386044245492908189090615783140659568238932468479075201124860000659193557614526773731554531575900119996342101844283652511830945251743398450027120399749672302303806815691930798876901094386764770948599831022457598827577738987952896891357719197980092206107919232615115431350763367359343297218459562359755991023202221298531633776739387153179275767155602431308033127971950097479174483214710078545238542785390382980571687072060168002909501151638392823730072450481842967049570584672849737107962765006485701082788922276402151746376068538656168296221446523626456592305563968584751009552338887498893772855596490695517220601600304803654570842319408338880827512340890279760522750090030861811934517914632347801233494671854685281261554797170431679957960991167060088747018493303121616244887659934176469937338499694607447713414185999700476376789261988909388738831446463711655348483152578219921997118387854463014254569945663614637528564615760690719906350062652040174666346257725515022774023744181867398474448419636743612686480448083411934287583019882837450546001669200822488989585914561594088747316832484332188842102866526724865427438188267086177064605805223728774560473922464296199956361179310632987203715956865755647896960496774723903849035923451408145574589607311512495251718390808373649891254371487951077231476494579062593241727331813332719129747491327584270929439762901804144451680335152422921118866161567661143155499682236891310022448897078843142059397904878592242077946981593207217465113455250168676317494102370229654363424410096384566226989965090294783905989622344296389050747996583295407099064682981503836148730380143319966077715291358959989890455820592155383279001238655239599649664387322153345800869513752899726780610978392194704987136235346284167656287517821042857110680284530565639006757798291053208295446949215423369147155930250989903882027036662430685457991802817919100894407791702786608651829978666933522597885331299152759445029365617231348048033343696050879489968704255673282377503084963436813740543424879611378968263293564188987121458903915451099293700403695102672346540124304417037686049968182069483121352992881565443955306077501746585933669701206890197563858910944469651272122334175512849818193403950476665993995002573687782486080408873090745534712817467272320006293882298646139766013535423820236794249963880580732679646508875158468783542998145590882335266945722846088835624979663052449431487653775456563203995710794087229827482075463319588517431866725138655922083556530785084851503679125021283604976086035337634897739557779383742893298611489855171682805640038572889578395086144018837368042466630689787783201068099910947955090643490527614687757364011235113776912780064816713990833536200590060586800837942813988625348516371010640579150533707282832077931959242266158611388292907931398109052689455234930970257979677723800749222841904178843161366843369493761792154851566678833381279157690121440926417999003024558725698915497705572901824861713907875887845656552471680718367080832673340773029291551333226882821473570564007918697185916147213868509297098911510202484988931391448400429378772042740357049233734059357116535405532049692839401355966434806457206065225238577015685771407391507567565111428259214987082578740310828056501305575648169240052321227822084961831015978580098237309980380901521068650697184532473079172945005512945039177149764290474653761751466412101281503418282193534433482800188689550751969485020301377594940473317418157619551929017956859222409496305943554872416860398089451672524652599078251849189860451248143695122045814441043908016017969796112377807404525873677332796351840112429584592697792627695515663463550557643634420411544900568985342864450926048982148392688868635367596131329938962451169289969102224156397367676790635250534874862004216769817565836984354546095891534087610668262383615612157215061557937701974765755220447693589848660276672477434946429185124385013498032813816903235382518971052695507636368100669793788389026578178857181814425625026256957836463597658746025857717013272280578539322570512745344962015401580823877118904968443421383858502843458198396488723343909528817590874110617645482472464956148422190527147462554687264819114325492085788097801976253215586081149275315107267796203804876899035172972182034826336495485605001783935212603897671035268053462484474011893239651573697677930543093608667807288317438930626922526392798725548676575231295009879632484099225987057369730874136982571133271253827778929557501346068162577055809399442801028381819601586306735392714632569353650820316830265428941469971655987193161506661275445370232871303059230362927038905215391499362301343516559570706757120954942815937186670293994187300079498680312706886532480335267633834714743787370847063609486487368452557702754693614597580052986126271464370725873240742665979000286566449078593966678856730819183794586541739043357859894448067298590379757069543888040162338155349369865027571823951390645671238699259097104847461868141281703630018463550350536509818202799451167782319420468082532017517507757134584844467485831196368614783364885415538401701718690954800494630030186226794901016166612959728439190084397990694334771520343517825213943327690173813916829795513301548507597846164703395943501574482591931682898462607599953961928798595581017983774825805585514611865588623934492736360253227106774322440024957359159247504322800291316301892478149186469717227597293593610828740777729782008728155875868997712604933748887066142666067715595076128074898190883405050681955003982852847280406007904170267769301556083724543495507320614705686183278600856629362566368162306233514179693520694038931766615906351199066712887921451151354840586999875021542944698396758465819522433508518984058276335156475339455455421842918763899804041438529369798604439784985188353659564090631971580363073584536640742807436092929562461988254552931903788830479469710774497048100947260652289702084409364647481333448807143291156227251051468122997133957009656460963169044029688004138951236294350884277371450981748364574135817579567087537935284596446513400957733290591136493386129971728626720670022613398345668433828957744017710235460124707684331133388478243658500263878666825236787689493163840766735500951569218742025030354566590408101128574392179009978099259620929314662867278675417241180817622379168262742437474148585363982959108000323915925982258581552936727124526336549063480735153726941971810682012071600845443905682485859253230509106022298321440276275720970401437819462258162865625522472632422459465106714768790377520740398755668010902688141044701232997085709505473585610401015881435920306462762312964504229272751612070699085838087986044848670441051702408685022999476195297736162790274764536292632398522048480487863180571982818932108011567317292129349279140615486714625326903080021814856969571363176888755235874675819089182981754119586302080573718807484315643225031737399685013416212201563617778262725589685011935172970374789670187244929426830597987739800229554400540024068005069325661819606637619969339446424576594354224219732135679691919705229692204689567027781550230552163971347627074987852864986881723372589893394150236721362441352565198460663732086155935655377831590805663379408483929259638895135263680431455731199068732000636730535121977347938701407810059460376505504145358545004890111428299578938076900398845646273160308983179024697715017183019509811108938125885193106232839121627379247147633599153085001161556103171201203211565357907153640522903312180244628704962632716037813895078453440002541912354211310165200314507290729365031347737383245928116124678814648056859161389730216603284998389105797310184172626842436004566929201314923909772043471620917764265822016271000882564654964030398431976999286775455414565042650906933981871541328499603339000383123593749736967788583008733996939678534763203188995536927384047268730449411405662213449026150929782430945700521272981407484362958267431966774990300580422443959704499017453206626748197828299431885838878492094204631865906573184077823051301953522401218886953377643277421658769752217210285036846336993085460344309558265713490944699754002456912844888958452949819415529338173153410647651131366046181080842358555835998429654343228363182869522341790240225032703383579267542788637503954754741479209925653760408652965557350822761654377458473012407591386357009699144593595204613408134803869737514071109508586790478368310290786428887981139906585318504878259211146056223135340516080282009577993656631967012142719886668675309710929122384814181897372790015511016012421203469514695420537285882175889119767770465553457300069922561413043814392513928640008402579811666291813687778874959538523015534665770394518389839951643098081228657190200603823170769219030096916220034297023618634736325047312930765649931465464246706817141770597983801144752585031278419117083152662732979502877235000146159231094518452910382205406015057253864384460229660721123668423265218256101735750850933867248514335553813219292850719246377760962025532177337673700907964131045718251257884840199283225318600219475220460221311144027364351610392731017196271665278048376978355370810779996158253914980949256097574002407253435453633024802518231150694577551926928813619572801727747184458311652983508857847396802614752026862257092198199043591056249899501018622010911311147192117738507317157642570127872413834922468693594688278591843157050600196245969447835089150647125519482715878212947476574711825726536389657635712263012548310766302840552699382449572904840528281930663617204221833577643654446904258859155888723027668889225538678359380923386394084413036678317051863648351895117975500068926351452593964573842489944065150202782454631889989487802702721574043712593013131672939025345183014883810606986484363121005844534852765010224938639551800597500564006507202303549984042546924965405621679676562136734542096305948526217323960724731902163222734978669794716847598442855263988185754769884793346214718626029366550075137275887109661352686758509149777081670120872026016905775463282838228720051378294444933817187315695431125067494118857281783144510169603008971597303796036481316295280788946800231025461577827136502994729941339220163031780505947979900578083816879561707539970625706000050724595808876453617294506855595291608367337250463404625783714415632219272751476412009437543765332005565319639537729598972036452724110983938632088619759578384955595925055061935328377511915261804868594946063215468422977108846690878866941678420695109010797756202650695385289064073179417219566511244351639986799094986018052857485277289424416043620386701843394295645060411555845128217200094095312116404378369136113707644787480085668438825742188529146254490940766428366591563794222899375438143004459587453617000031903325487229179784809014334774033708325226698418613524960784868181089083813749971619123032525289523765933879494034769008580851452629802810143717266879467374520112401834868310962793475351077902087464435392532620881046128573277938932614453699416000059910691877876447884467424589612160099534041509241882303220342549699792028968463434638407001544940258624146779901814551798912986639081708398179574285919441622193649604165384714370547484225247349240359979889783613169911684278831235651514157803165273984968690349901786554345875413303555468384732660857495114587296766302393763517998778610518004040644233786832107109776532192518359808948691434255035042197664922014950246422403739400449474365420949911588326817156940018176183303782510250035429271429306390790948986548124597759529158042037931681939272446432845368259750875267459584265788222504065110466673207204275056298216748082812071476918707015865198072389649332085050950828533717906037425888860219200093672425783552414733822528821533885814279442365857394814943698884679596131793703738532147316503905205056189225244940275535959077988089179556578410187980070395440288985685157831106696583924493663118689153909817941189212091306898539383299674001616440927636455355315797954885569347852073751657645526560494133185781576543454180174725632511993370242316693481075811730696180802875274265316303615685720150706396264472151372771332229273734942764176925694426467279040168628292074926104708965331436539530822172237669308903683481646673263536719936033233947349886784498202732582205702782918410996029643305721630379988994113827320990655424875923292230443228354796725185417521065458416251942635183364557878280000498196259598325823779930446428024235041603769326455240612871747242346249381980727616400645072524610254484307506334643593577162505937479042135501098084075789062451720996742665293276261006876977350948515983688845152137212028828368620481437319959648453203353524553591823310481509209009486347058392373414348557712984241174245146442659151943133389793838325399514683782565917809073267208715659784116748989087759259795820201985040733997256507775577613687493524554504461617770392870298401013504801091250790890902851761509429386883235787173058053750671501002640980199716312199346471116257991233378260103717637219254490022965156826713267036118120086233388400312116684309561476509725964902441375074542015090717141288492839097393070231437312689385638310342801024570811401583872817449284191922204695728678264518309108208084815603538953821659560856042478898876969767249807287370347925564216517734667419012156757070695091626302563773662450686073190828322627968811504349736704409516169114234796015154183857246137793658074645932511510055058657980330572506239831325735392349523451044613734762165376765439160605705360440435614452285853937474972368203545217596362690120069908346751668673313398767993494842132547793287307536771854568057947268762618741386767916442740403272787390555769955842808872615960929234678930312782897903453894755713532847679550602153359961130500963225914760643557787034739810006293423539919552966637974505382590866781708143204151830673183845184477240964498630200931909913142849514354318127245538304780237685625382504106521853812405676560405754667684773718591242634619543870451211587760859955618352544318211899451764135794783741571427552516808191532246569626317902815633568925997515336988966191084331085596417052437176517142366614977022791628297615379208550828927338254030712483708240543145577452166838382590636156432464896077921593564529458253460970153920373043173035985686922584185506143761484142624459679142297961577835391267548595818466196528136130782882548551496432720282575035154671521410019859380644550254941667881390036456341147869117380033247541565375916866758380334864653471483298069422540179959507498800269902718046435545578329273461171806927642534399974339930532820720972304304271561963324221831538205434311052595966348814645976561637188957200223606101982093991916063427340126300774163451846700671620245510227247838564781836562273261603388145669724094783142318186080329949475887063806362995705633366058226317072911954534572506682763393686190335668832068979656115033079265104689091620973290752351561686216549387793346050362713909729694016921845103828517856806270121990124026643064046067129855996978646397133696977989800025356718351109315613770441361696236747177540003923386784725246176479451876421534766495567384101302833785222876747537070598759981410982319800491552443495748664687628991801773328504830465738275680337335593174441905283409064337642467030062166397735679776708731374185108393375411451547996421261317214809659799519950537888152324481500290146068456240674571664035365612177291336428596184861084916242498085596021059143776845267823278421294090168681235900946380436883189775998731537846863567353026261042061597100169972794004645991672942129575443501838545061734099289901290093913850995996760870863038279752599322543455557036277000019721955506779982522517817338259349281526691221048090344448142571637731429780328960329536813628952311598799254533133914465750905624606788833772037092202603909516607163620159628804449624017774587675908285109405426942868283197666423339696125383772555354296378354074581182215037209143814648164486561642267840382853976734563420911312241356788820764378634596175880583969422579273140590719296392616381011738087187576794118312431555192372263543534882932960069464088012033901966245344838362850671561970450573264158057719979684368853188196269130753626659917665742492334585283759306281005646153564167808806251059033273733955751279448263856130785179621912100973091813821646455654252414916805794796723094856021052324705816477842333291759533507636139109521868122066348014949272768860213518234639182882130201529796235039591255514013418431390036737796515982694878151509244928317594797343885488984181266786765448495299543404205160518568907463715009926533967231897150557747933044446040621319364701133079256968491613652367066968663521360890828327206493525129163755948401690150778654783339738704003979268226866756497420990001024798145112572845793527439012547822811225300225122305740950615272422785096913708525030751327324848703477502234810238226082228377430623491000905851414794081803515014780131657549007651237471746018182283516101124509392032146451452103714170430473091724665308310149097561907990781893803073896641038609656825916226131402959071241900411085634995460473646213240283609570793661072580154328371602789410948250849136154385917164164289666809660223897433599166777575654542243619806107995858071210588660368207127107827530816713660590987846618337672164183644958493258399285312673246043921195680368369044797952951672180339097956130509984290946069996843702985894778979100457065819675501861385031281018647862381859345257764720213437999227180628089846907465917276544337500865902745152154236593702798043551493029716336236484817033324472985144034595675614262809974798785817485607735586740621765179896872188668559401297117181965394865338746778763453897733947637046649852759164290259987281406120412932574231963056861647981005388597312845296341298761021864223021771868468935752439063441594136373585545950392815380765079989346564783137772977578552218725000323190677274805992883233562023742577416233632065288132661875191338517345984417182412528970715280446444117459825197748356584121337409203718672442364405381040751295307856605418595267581439753120003767434221375401266767526845813238839155353095842365067269534630936392158116551330274207365692134493383530185899504280772785466612801202211673167249168153620762985189968515834205180088010740417506573459187723080692526596990784087437899313756648916673303626673757209391121612692175570298446656233663122485835559349637538941706959455124661485747150932153667987880456711292513794733421073694079955369450915808621712407730093746267509412749673043876168137680585601873682623313447507798548551312753988205130717977364438866823623636612423065626061829255422047994491924278513093417758907182481814804562779330524196295530865463886422596922459464466082586056912785756269455314187773094595696928406214843278757870475820338785341549069910693827766258138912537308110920833034656805698642974555931978210928318843056499738760191488158349373149645066895557463498182998039482462048418843515595231722027754409840897908913066692167122387463352353340423304336396463137088088718230605566356486594368000748821687047680975434213203565941335312882981930168124964193840228557057838071469452751789177451611806275538467521281054670450987065633471912021919345456966956539764468582516304453142471644012082948703566814211907617528290009399454956783004060522362457901504593824981220647866287061540053468780134443929294484947640977309305837628082629323672218127527101203367153333183715127680419858459578224289876297198349479495778713685148911470901611680137506838347910635434339969741541290748048969730852480593637744811243949508911889660404230856699366301898808793090600394653514074547653504753283418513661288338004740907506857978327656268794302333192985043789250411187329964906023934113103791515432760224574679224495319564649190477088716827507319743557731986789172809378418861092953670294552661649840174388126851926797951926842569664032953298620050153875366113576312227379138599236516851102730013247545921220032084646773046864756693059575871585544821775886100533933256928676509274457828340249897475373694740168879815592474339967952545712145655976744750269341227400992877314423994026644984948567664730580830486394701728584622295350515008757822038395943312738118838989203895685211177085866560867036028927811713943523669606251315099695507505914877517986945160097288757627106045471776905780766333603270405342723462783681852951033477452382221701973903970252985666769808985002284218905598724325774818769896347378532672836437367986836946229492302566286997218582292689933780410590634447114972259800891064033232185581770739563448146763380573344383974364363240605678617740186491324099913168439494244245546016294172975724519217753966273502989164292780220880934060480475789031066450986201754437323805389078412324118628280486590031199557720695810446692934245654553166373597438185032440396679450920658270091148799981767529884913067771277661711017347781512861570982012431282863067593535106553071773514248031743446676136920138307826061777720301925028270950247507252877118686404532683604245728234293044917457040823630150444230840936992163555769484241049180379927893144860396488424100652114523900047760506098191854664328355936862171771889216908531909523809460780584164615937309411731152138927105911063528399911750139201627953754405648314279742379255922733042298664662713605888448595903747260253785587359542417892264688420234466853066787733217369065733220468276693318334799646190648241850454612121379961617515666908759169337427386267126545038639916656147353084421207042320719301332324938171641004877894850434016075434899417485685624164996858702372089209287927938888367174988891640131518739713045691946700305951183397184149926603725626106334921266068866169372861209925637596402997529844008103158979327874527500056447680703411109670423304552195450922752905170082383911273755353676784067784000800295825954242907129906036446362328921083097183739667111615272313175839326384602523703471625630200256586700874482378662729934935065392693995327795880079488265932039146676347290722838303592063709987859797206431798369391208912511087425705310834755305715544510300448188737539131984827525887437335105314362951507082275912432046192608038808426344898639208550185196360765395302991752409429345068045143531885971284165261518404488226784717996491291721673619382115192286827722309464651237988510015548263451441871409164290218360867679805857313300775502823279859944062579450304846101236673341453076967393447967688922530276495600400756008479723738401876050641418665166678778794952776687691621960314567786423456635223843577627389197137331010468280773327583807626310760687281789757083191772762644317895828694828622704937927923011533930710512770138756231522969649711548642897885710249373845872558491660785309864435769221784707626470433686584078612535547522146073971184790810542534732974372225363218069170514476871476504499520060049439596711619937525442603970882868685017977552183415526029021103965063879181592374299665641188241796603639579078921793686183709711477064442711884798518658586716500056234795558682312384144281807429846061435638042196549745582203323439698696581472012919222860452299884501697226238841110925066244679579863110643014151750504911052608177738436623714099942756863772005371637418988483721914865125469389180884076077797003815306550236672671858636272702508939162658542899352106764511454702943294671793402556816210094219098830824536831402098842897700147319206708600292784136197330910320606040010992143725572554117973191957015700459477332514558396504990501252911463777698808952076768706647930942975161770580708211329326503529058995857747226733166270154124004586099049732467336064224373775485725312366841213000487757571702141587506178505064868080619802746348377157622730737012361350440983990553133082241671993689351418094491793754027865715638312734292794726711162480005818548967159907568849129178103050327565564457953689888852137051409583498595847361601253302276075797401977113829375203142234982991611107193657855236301000330586086023359998263430502500750020613013995667383267754288465794884648726864368761514237882969883436274895992874815271609235589956520878737345510113795259492372272834733060868061820576012936361112812168792108247026585806397449888030107059803019944758534390701201200604815819050862211197544821914477138771711771825730228870996065639482478109907874835107107767825715184473075954369661090664121815842344640405661269637096117890609453423370142427017398081610430150970047787844894974544886436913822212286436573281371675282465025417679780460934047796453522307872318550623645970937461166654792022565943758572905151082121444940463032604755924124285360569313790291500123181435715862821933258421782007903765892815027328107267949318026222180865531863150594394757691945518569348372866485622988429283667097427855796821907692346304548906427366183710805638385619467771793595668199464484929844226120220975397059216450993668016365874218404645347210746660521569111684602815334452215524982380690353190535143134005058899181139483889488876826670659590303757706122887164688236844544911272390229153172618264341039402365484050347578455350409098238163898132611748875706398988615678648785213007269839574279291908315315722739766625760523950379432838255234523377202719326582188445689253896605385742622484058422955099852763939775816235828023333294627830096264502744423192400397828406429847827339220446909769890199349646384938910592802016784370566174983275502061563066086984501951176364842113699131521349748169324098568435989506486304266199270285278857895665211961037800818399476270052552394631578117781573385258617966926769476763206124891458908178532074317350802281431483107437382010936721903927553201843142198736086951397576221103169691597531383594595209651450485051353562598905431984328418672611030770035755710991575551709433478049241578677307244220346383129521272325583324870577403790566993943322758954768210989050848872277406685211242705746844003921523826407901678733743788228250208985552680711853617274003064404051533941196006355431909499041598106787870682579687030688219876475529717303098614050551652560587442273473097530217229103100995254068052715224635692038647771994783512673197966011958805196850448017588764864025043049273516415888000520865437180837122380912698104892931488278838555697181349928157857815491924640871313520155084851277375825036062095551562518818521917688851013781835315317734654675467724464375807832874664183633951430884220122479362071613384962764037305419994563313317422262636693336660197253376118733815601558255339928551311164137903703212514498678644138058877664223600381707308345120744562754447676184380337394139775842627530429535798514731242170010068733378576467292626210407890187266981604717426104561170235610100590023962139772233979984162559754876867662061452189009918516744170290981978392935904658973259557176922242660762783013468664116861680303168287355713568531019360478108938095373949177551181649618250209983010732498620408335660791597810397111081509057124207504639870611704272127703841638249033776854216073082337299719686434415266107681048041671965689857765517670669509349444724522440132497100587429540317492141450104812468743149194456713337604685353662229116340230906109942772582853214654110738306730515011659350697365876503817635298968680961904029673802689449498792972325062025734808250222188610803974019828001402749768133470579413389390026391765818657810984232746855768529183728412469232465097560786092163964629347490113140932879355628883605302079397422152479447482225805895929806704603060483361543399821465718486353593207537923461170131624184150400189452696752923629596330701000710473957122904943738803799429427433090622552075058379890163656745680112563551742434899824957384699702682531027000117829969919095660232701709114494914695117749911515068085774214119894062429499994974954892618927763843946972750678189781132882967521272091029560121422130127756681658533393491616075894560637290358666133534093005211507574796003884420479519730985125129560082363297342238463491979250134417202430304761509660531820751881448686683106752328355232508488027184359065225771354453055667192450687355011721336282808190685927398346169185953424634566858805643712278557193490676613097573570807756693588452221389082506891743455476845357826355646874244707843710487307387793865145190723467694917716962544953280078898463386994364308714457545569936040036967573520891700930205276693250440108827358760127911839286951736308230245386330069591773176694379830518204640966474915808125236734182652344993683159319348133329991270173714070145276596586231713795914225918358662604356527048625767093437123361099417146980293485448203052249358458442666374734769057487835385640843637761336326555680115590140607994795592712014716619623283667692095444273298198212048249557457236721908457747609396192097147974064233869950502336444235241270473255895960352953709419564885725631840046563035136070221359298635565559409100737937243430553301042273096201232798150166073565632637673511391162914118592900389068796310693385795127031909132503781907684464720247538453649685583295846274488025647227319419526837589520607533106126283944755249352260236000259618668047870075427193757646924163362333538469172813393246500528610747317210890168225293265054575148600956233450897275589665712912965895261561046034138022643399121251818688534578371070400788649842725220717125501644820988306853685400738679102907306714739633782080573916625767374887257830261073391506962094569318573442381606459605066952094997038845517823656787184749813209101290878090171378430200474851703744043382077387638885004608159137102899379212702080820222574534003661569629177664467840660708816789667128805444351363246286710618133457698279535109358714757109071184020353296675127719359572191859502170429303042597444007447611475372272122949407801123236016243317833104029964245628710373007614128179183569395446483363835925513977469367619007578170790259798573035607640746426746932742929208003093066659252385458970831160292923460601012821451355314205717670925657879560736657677528137541194187154314525714532340023733078721061022286360642930672656194560331234144549748374255626979454395317784553577439474875263943428892404136630416876525440889193083776968551285001311562209837307172241561932622728561073565522390975880953171802089212619742700693321497371679630882056349001648557737976237561451571552813943454040336106312630635726012490996232757281540173062455759101117362782534661818758197865461601091493657182185856349169318416432249950153633381423694278793398982658794293653867198486792450962364534417701629756009787739063286751649528844566651557532421834619044896680398230138394041905234309881989694680759825059621489597575063126138404050627041671516944805142531993961066021142036081762129832917023731894045630249382174549005440558210304701078768635235589996088833643985883843186995078508811042020224333856520927241638840346872474965779987020931837229772233871222250218038142923292894215014192850779254734354302946478346615985306569087659746763994477696125888278820827203185389933182656382476719852286607803718576506899629584485256837059322249952916274940899319315416446218627949467978618056737860300345907660381589067722719440864313636258797989913053501517953362102929950339860222661683490751050422256213319425968710684640687964593347474072265414510612361518892007526820510086140738597626200192202189191275050275980715518027538633973739350355924498116798533326901670736164241436076215539743346787146974293257659338052840151459493517747107257164630791973803742017101209514177159997273397075232086964996642747387886303978730641071609488043982874188934322318338815734916723715279005463961644756727045264700986797751194046908033399005448313660428412225023494725609766657682818850933195407621753096229489117579612705747632284732352105962548541238738397329425357831736348749311960679782542238747901511192734618171733647522024096283522198944766940668446194237168372081676011768383551497176180628446009231561609176838557626242192021308601034256875713427602490920969249625799895462785225133890399548548993738287814587732127757078360871340048324130663861938378446413271858076509089661140115134067355204431277815289487431611015394795313012537928917832482798426813554721182662229817117553183423447885391950277088822560705543033408631671111435996845160235142249101520113614325856364538722266915208134653651721200696099676318244062051690113847610607577328221357088429081420263832634879846262773027216098604560966754703382111056093615876595760635101745484552744315329015862246541345523994569502974799062596481784539469699454885226696387016588688800333309383492090333516348254833097631865114191778858987547389878217798016771104088531120120426389112331365892973973733704365142267774217455349186978323954293221534964090441554629796415554552592004439718092855741865250134585593395296998023280157041343044196681709760368672136874476846671189345898896586048238466498992224400416993710361355324118753992032145290745181801318360518475522479073129290627902933365131729593594698066669557695565241568773012860030354313113916279334124624429634514784981594050737963490978256181498576818836128459433209856661002522424731219222757007720858376916545812877832207423208346000047161160823877077750399969909371415445629951444126820172206747125403888802142846473665758559987714926460528193466547174580689012202349386699584166281829842430941353992249684034618921413681900269162252629127135822996028821045394518453212351665455536151398180299039147768702226324134800950261164218410580236395439619425516844870657004532579729582174955095013971537354575725492921290527263314711956374839055809158093809245718083588876735632043168197105599721630701060605601444277813741819779445891511738043993640633016462165666328542620783432757074754906538346988366058606459683661413849543423818932191351313870543277522668799199220590625243258635112251740278297361061683353165708269461207019227335640390848650263329310440975986083888411802866054441156984629608927919183686021767684102443121585893931770786473770379540598967934838101857832007857803450167552074453493741735977497982915442324648558899118475412520153366773403262884548793701538505147408699834451911183977293146725450406834773315340530784280215432626230353675492420498035936926609956697676783573864748820637126211038377634907474211115483488186529724663763359692375787740800372051919691622351089506585443815730740545077038550797188331393502360931480407545864675393274925932460395654767574453550786018010395164755830290548292448625020299885481159731761876768547149022722283435052535726635545290965576924371545655294024449467183857241746252293894405679291384648981546856884693560736773150892745603724364899824883086984103933540420658993017296295154217921289382878100244209971662778994706751331033315818623529715739474544300828870157567210245632522864596820400044559412697917753031504458617371872413003216467526274400558691513566996027106400784293141018999918330824053008226778606061893855213490678559931679747718035658475458482163980158931007441735924712628832960542592587805014829829122606788624395820469755198791757186912835367166805360451534814789259020508343922869447680446685342994167462976305464520845461558974576304478653209636383805430480699449046163117926628439502949252908194623369482900412680459875041315221775823135618619999067317629032445796756315622142375597769930500579050573424271854513798654305046446175624934068898440505870714004551056862725298116169098579136472659978526700384257458644458304508810835674617982542991486327269208622270960575058227277892308408103314604384816346483016394681156689875292188451178960977145677974572522187520016891078232555032636037574583610694280701814985560883908863283175010474939242217229820406215922980023327394396640525489842567087720725230110102248168379299772836601422530019053854415184013959267087627031149582147274064478724916917095575077254314774152266522508187650154649025642476690562054188730754987565717338885779417917698009065749844891688132533967806680406968563870105793518951185031668205240301087987455029271512200114968046379940864280678448680105912955061487917007110206245340565077959722429737935667355255856278954215974434870610817232866986832584888389994430692218529171450290364977035531708654424148004917122739815646038189324629763917979157648667967985182123104003365956821153763842976632453097005051106124380543798650604139236575687592777444280724699494192159134455959738045050387549066509681356088045239012578064196397424467615890187017664901496542119473078668371569788195385367676745629469913456631713232297788157581099869483458807595661275559786714545817397734538289974729646864848367471582415790088788258292173935183947566202876557436373133121511930769246484309642183849233040609451930370372298323547043563684365351649461841425986443351364326229677968064450340347347524469193644216392760230469121312848909449944492618789116781251323741555860533963533178852290513134003972839673555961471422727394515279274588833570544409154234567703131067906550646952226885959628905437436416244531108967164316803821974271031013062853816687976589354974440967151987248676652892539710224462724272032255474419120259798073582020134102862947028674245758100351203069223354760112257565291162325102612868670027501121497912226520950317036112138051735230309062181858072047030800543221522682031280622279622118817848774303141848804852555099515690383786917392394205390793588193334894215476249272050307527805493979845385992902240735925415527943197521253541792808561917007384154265342424664090753338774531505016928016996439241702854486366792112510609055424775108676102898146228636453747619237895076148896360452041792832693316898864221741610705913293104152690841947840926064890078637383053576283069786206754516985538112982574829145875596168291649591767467422241771376305601093215492542909266307199818762846568515909579275619001747238857118221162801487996147338208384787951360626855067094582166872372353733214656427539970755282824897187444930537938849614113596904252177937718513301831360744564842234411389763249695175243483233237682571247648318675428890672689146783272625225862737967816269742844092071096181424733900186833093593235702820681037378878639540881390069356461180934817753196132009060554827329975308470555524740315601553170095100406030064760644941676037943289047425121100649342335767921233341519673800126781924605475346238013953342484582955840280569806164001186622818069498851803634037477084580975308195441705649123482498144793446489240699094512986782260418935684638960754014669372086534390893830700289803477487698536333774925144605271363052365958568174994207239046434256021180161377205295225430489977354004658948957796998789546965030921849175497063045425745755714632052426099402209398858709140481139949589743776285024335325520499479822104686590655350565050889032955353126788753106941284234338870199432762514403225378457116303729878273455409525151585045463176133639556336613434205980171416754434341641032857458187779948176931835745052154684732543106135486937404678995322647018615655192104579029361018310298377170517692725040562690324818221922239522568721644175572288620103043908602086347946150510434284255047377822585503662051860961107726672465471812104994816153353111124609754552853759087327016039600132304080814409003133236456104865140412202161245256033229319596430390648956332331899867453160515303521738964886028153053047232938122287453547579961053556560371359367220756511916822173232666841297744989838608145946973195797583445875828855937423656763202581964623904662223014436037352108214978242780871385880864201916312768359422372016140306092057834837861093424079047664809859206169205469122721926125665751693512829752866872140443894153917508204219520612701029779011584816223342661984386117487733174457996917331449182539536326801944822486766071740909443993455721879086959146746426844483787032143995977233992537328153592980029277507727026491065577922910706800805363244723736541507128031582693957958897253818157417752897012615359759729170596908294412927303591894279341299107469601803567143730526314019256401965019438158338536918140609297888312732815916017083527332038738057301511706291677513583252909929744780119608524039519585007161492308480019579503132175046965429423881165447758146809518453576436863804546905509547316318918693907125133167814593033996919389976834578950714041801840044035172458437326151263013195940680279276232339912134413839534562756265298740395849912870523809314772163814382558752984911634533671556514971897498627118516342509569655631946208281321811864222643040272466165373169666181491203344500880776937970687477580775985632470250675175915925532658825153319537176087538009317558707968078986639598920033798743740895678252154824910406765436620506577754885908494856947957458642179147995238073151269016211321422391182023639339394256389112518402388952972978762053922287861734793592409606490504132464785463579251010943430098646018732585161998013068134351089462469779461174200928421598522945950396739251403014230825648985202960611912126472887658209445458079211785001547598075745770782462358418438650827308564172047989349264064347636525359724654608057032715573396080801163838297198734050723962466615655868671039296187535104388710348111101100093344267139718250423949004611247749939680362330083115377064058159585002837968933587720411078903617625402312548254241262486445510070961730501701679896442432353084138503133300696016182675551419789494339686458814082425580537109150741784278547345441780722588271434636690293669764413791407437741655048651311393074829056671316046558227382040103340177859465859393601629036025416119949670861129582602559642812255457256671891211364060370025588056158076865352590117314624142715505915649593436793306932971220630801517553466217440933944084306047933936404312091120468456647093903771516794278176991488339102118259469034058115806710400053796043283843356051449323867536433610615497946825034010909839973053595220722901190537942023101756928173061624490571337625517909532504588850095438371035406148520810678735217234830663682250794839197451971942712323026274688541768034188891939189159875271429249005030521387086222398624235903579860280624042044983744590477251371051474873795316986075772082204155165904964006139711070174440666021574924398644173632934681770073821563377330463580932434520091124631060310552711155885882052422674618257651559426821544604402319842598847646437338110392760570453089097650411880704712942455628217154654558768053700182700188148661060480642786938764617749270754597767698436753137460058775186372275598356927970783581955212676004837358936500619265905687123448432956480911269934748894921933783098148834276165382289254745400952169896669531576474535221317926202523625110094497120375205189011290661519659465467078812237114186871128452436046388173685380544019368451429363397325114936373041909770938046364797614324745481890241741553327242971641451070125208179887133501083753356313811889946254904405362668396062084279030868799755582431474047329016270779200515271940840582403697618995535319088446231048685628015932793814088819489053634247789762464911847890226122224432057842247479181350542805711351395674857460568473051211413832580056316127276568868964957319090584897682325461770301131103901246008800329704384293167573650204357693154473776477208466611291076976721998695550852446248810608938788167600615667167668991126437447596744143484627678344344772142050004966284628351659283379673119012220216278567494451050008749680653398295110765534750798076665046048788460452570424042821452274234190111600208793572615153097704293636209415489034372918571301328463297383809615690970340935627794760830533566360242569768548545973116060534148726058397067396643741565629708413522091872301278759063134294761698112548639706364375673449432491720961230696204539198129222535185250545881059730186276071683914632757481297196843048953850240520383875071956710047243444204631900696666198897069720263004169707885307328454297601495933718591756476295213513562455811496105064336774442992950517342834405825698560202401621404150502236038336228085879077005182328120038041820644682852915596479649549252153505277461239970350272274181583733696068435539396886730881047037422241645315202037151604626130591180265049815687486845488248194687837360552065564073136480990614908494518476319747520526287041499988809722079124645673132401609612735256974616781024418795511905709840148980429318928327017339309919112405118657832068726134793740667687303103295008279188109776967599110295175773215155323741232145123598937234071363193358580015926307424794808610642158503957696548297069811044030958298695377470537111785449707671514919092916807857002751106784952099785944096168506118929876623282268926116430672477590625111716957161427145519593172980136782351247076437283280155193985112720885850892178146838844711821131989594657797832251254017911488942982473484303923914762567924007658622341127614230028891701356833714422325735724770986618990379237849770451281771819115252531140549010625138615541625754852091379416693073727256900596954215962253433016042665789104007434004352253996935638539474750351687967869693846565167662923525700142174157466680329912195954066430570247709915138386204496044372785126698008578606110631003245897280410468393456266375532383803892723581255629565937692621601662809697890268460321248148138575846371309065753408371938480153028571491214587464734896044885308005586957643643810305972865073559595382471924606875218085200495847878267540160001133820998189021866033769867524265548594972812412846735076615881097812616384856428452714860207541406452669760388992656332933345894171618852689039714080007012782089273160999075168656086257758162915015034166915944083208806490999432218039028808382134055237132070191374822867393814783971443930304461797802632167423748399090194207281184367731459092092816092881666470446859993299133397655274216678410449344986876342115678170193031076013085730088588717267780846848839084146456340367047046573768463998392428772327156411557003978004831750408826445143662964958732329541430648853402502548432481900759075140352618525196061650720982558422789412165419359797448981422035039712306554688978419427605268575871470380307934693797456680496657862301927348678613017758522813954879794311151746030951288171040820063107205116623553996499909935534832916607701890159344525351992437424669500860832199751047650192596841570581702319245019165544060672610861637918931744753449737560629589411362308169649531513981667117928219204983786668634256637438809160399218643547136436711195883047860308405674646231905907989613580715584720377941912953542245808030535630867269758137532377381934030356781972953180618507798367376438929482088282174944324145691443794530136700228865529413866311580496558591714523075053523498206193567698415134458707449784107110603419173828202163925732937695825381253215720336620184765895159890576378023716533821420594141507998126869254025147233130771074593012546289652806403401551242543593102106668034421262999848065668811982498630076107830752413621162027834852376449544948434025290313936086574768535903192743680784129197751195904336079377183233867460324593134960155917059121374496081137852675265624563030603075762551173026662638880569422449791468338393117898018587954979037155491538675103957118023994715747365580288312945322222278277289870851449051104193502689295535508803386366517549828255666898112416879135153978741422167416290380961442619490574157433305235390433361537128448386727144368676620637829292826071131537052314815414065651979876402051695619279946670054456156545780948715163034237758920504066766158717073584494430910327131036871690524509539903714326680709124848688749804594267708992353513882187220203989381262661061506951044387729444519883846906895092164968228351295652916840961438262774399264008136395004614675344403389337308469364297990153207351844811219273166066455352570641586869696034547777905800608924890144951342142599514793549943092640463136102423647134712648717812298152181733667748272268936156508139514580713893625278690417497633446466746771411959163562749844235928143005767801686636590198978601382750279558917861523087457424807912724135682964718618760889863279859290958344687067383007760368541614434531510021190345099209799076562877452600005797350241288213405565547993389686004949507895626294194633832113344319213293310310541435107267058308102079828908548376848272479453070784607021870224008455432865352765563379666024996557300206717688956030636769721753602115623841754344078791255304242439451363207215934666552961955854092822984078229824475660350501462170105993691565236261940019140523458215721705119398138936044116985413133104522253224240615543990188006601403240868952011391294885414164061935170326291270528835518374521728936234886047216197452981788180031411802839657899173977072708210642104009745115317482296739220813952304026512933296853753806278939225901761956003008304709503405660665914034049382710876212500672400574460200435189657471695522580081219534510418270903507622056048602534547329609906971199586983599848828086783515314111306815938879813372390408664830646135578496259588171803697602253620415322608149009535958052696808767682503326153251130709146870909355831331992882523846071467243360638230283711168014125113859504242465052736191022385957929898085215890267120400176250405999224058003265589622825791159514772966098482923479416523894475061345857098582362745953386002790826235703806448513128924708299592023671992393111635118628307216267173093548607582053940195594898964458616054777117557454795025720634588057110624171795142972193708560834079402292566461776515674031066987653158339316200660042936340000837514548669403053716008439347868344406855940853128518397418378122984151010174083752836251014497714982324946430116868357068318330210826688219434106161379514741868069381346783144188390132455746722719211078280335688405617898869238812159512514607329886835006537674298307808091577860930918033195558164905848902305709130001044709283319024240637742175470694592716437322263581326213099692256968211121628755360482444064950880791307674502709906975618065757977483466579176969782738118167542923343736400549092567764862520831393736907477468462415705151699319161277235592329491100391203243319694788097777724827014046560416969839480501294963175561772201827405319107773177822495654177110622162467200982295730731393545631682746442549350394444754613457761517106101777498184802154233369535103706930404410653389249041091786543953564478255206952802191502530683774686236349551831706076670764367923976155452847248954455670597546253789872183277252897110751163758968471507136669290312050428238728136526902819802454131886911733926154486545308408476106064897014946383375768773536681568440966579630885606664790913307192308302625865804267616442107382717614798136254400156781724050614385942627848383538739709747723086938073332759520257252813538690375478075834915153346741097189968281774058112398985348394987792952401732100292568727621515698541773895235161906539110072707261573238089837936586215130395741440188220298923548952756423505401192754436503000369515199025422946731315461229190672825098823387880785371031130503035712947731737974301824393461625492238685937212753211731023373756289836080988580237129653580678886498750989030379077924892498507634416746977831902021492196536268469867303548073046559342630137246336627344018085729969055703538609470996794614782205072046371061280508000882896206493199706007751225912874976822015942236506517663828619683983815221829678434346323019384543224957084347949283725484721608327256446018577625093801091051273688886372142425755324176737782906429451209566975982479138357980240592277336817526574473516566871171796155474537649979263018297356018191777726530498629395169828361052172646454429273313319588011958514097753061999757864217112855705082634797027403812497809243421825558475168055039897217674690880527501485967393277182433650103136903887801045127388122455790656170214772464673915962066824914241174857316637063890062584415925279657082711127746843583773450214089068287380817749068470023981698361648648813054614352819176860563526244203200693091451460603583001702321206322402864787977484855110786160941264052420592626466462249060766883198622719104486614297655431754770685552711212313457132677551651919504074714398024070976574300767614345110800758541078088056545410728853651360230543007667875545107548097836799771961545217840586994434103163108965803134029406596309381032921622084593803197921241424386981581964703430848288709746852446786715902760992399904832633930861446535007063686685349465791873961046637164055380722321486398227677365713435040793442852766254162561786396024002417388061593320693189272932499552762131261307638718763776857855201054421994075253101011565585303809765599361205072534908848470333446925399608560991672581472213532569743615817411608218996681084392515299845328371457779689755910124607151878459945864216422257397706336246894400820862330530620751907971750906561421671636352670111904010924404703855704285320316510584958000802106637670538669043393581397890157532059711517267351977881755178849785024040084224499624680095126997564671942914590679616906609516928219408968957485842878989052421149867080686219227359683218602939897137288936601619733145659230903199306590028924301480422913900319866744540113303264550103824100637687324370095648176586708345680160722498913653162679425543644427251015216513834218165082474411093027178937104589704945153552862111818335726786858175327578904422113060488537248674344810726466781418343226528483355476068722085367317857300345762857966958281289393759034770756041714965099211948312936021576955898942134912776676243320088815765777988206239142285883669595771485452050774570590748616758950762126061580439421163543841555355861200765649334482133445319141719820728676565296137185804674159284481762151090879318378237381973179270294216378588557939487641995760730326760866564059612536562606923154273397654872843579882070787737390743604328572429582673541096791409301163120008320331785324198536532803146840588547803422017130318320981067740682130531141393442945521442625254106309355892937552696072047861080069846172595027805485740004411837673624608638195892234640030473953021319232511055819018386820592477277235839715789959499018236014588495450058586018767061729328688806244559700588615364233518316099306396503047795004452671382600452311240156772630509244708542710995567505633066674391231524004400752791524338772942511125023715523504955922828911888229578333431815087828738248286953177649490874431920315523379536009799822235938064987971135067556837473611583605984915160121168592434725535877114448019027409947757406930602886323318028212073389219044955469541840675056863240314261774324523801112837319889170659073407057484740416472258125903720265086640274854117436570078839358790088927165972452906753991903813545692451035501198729978499982571932862358504773682091423731506234322263452598283202370767197169441171779328188836395012533599178869904936558075559062982269685358878226712281996951520898692533393233954915078271837972136412868201294817125061699065440681435181443764996458457535167881727256834015013408806903520416659518296920830547895819462035929855932531864981780832130575483094751782993264913523483760189440305181776974992746143383065454543287291869936528321068397861715269088978039393902381252375877853342703046573523138339728570722952663990044315209148423138941787777583118640179606832855855196758688894778712700323979038350884333061675028534304256543694104996462008366899782976018342774477109488209050343546457498635958599162863837083154578247729021178920494868285242082223984755244482507400206188049391136547390485352638831570743786318179050708412777990527999466875839974813051744163782249854629436917166985702402705203561133499686666499830079447168067234386096726194592149902272177958549114727443860375892172015925283046431915776425144954931781625666297535657312798995789758218982184606474891920804620869775022911925508324526842092731430604477305663247234613974783665964809068949688094669501933760554139776411409327628374701331097248835064871052790713756227404030384894338822030199199793191030324872689830992854270540164822666090822383896803658350725483877344566419993068221867163494166191744499533828917986896386554236282869915235322255857130765387181685231730571762970356614245991738336866609446275908086651044333620481723326559509995163647358705355354566988699071320358817676927816986154011219614088330693258466641370969633053625315326328936741565314938915142082117702172655754094700917214486011595495470862632477410527729654041078388918140346337236371999853574130434618510952513134188395685928912311549879485452965157179737185635563207965281835265356782946250420057111726943136245525334592019098586117180737180861584392609685234660326380825506516938582599963783237544448234351664849565801910431516972172100027881896866310509783978502744544213626196836270929268294775818089957305257020081847815902839419766259354773000870234563288660655660015950328825837024168703963110700792847429467344959201590479631078282083253384912610358548058466799844818653803851622435595924458838042617894660188641883463807661349473346514299318558077059676339299209377097686729512925223408735105939078225310212134385022386357043562400915718230178438955910095466871143619249796725929093485482997943473092479503522573778744873214744532264128994780100877666473519581120268032164112037388976817727969325565483219330745301274732649422007984822771520768206702676389025545166494938641281492043728487991918821087313375542609973002487992867440768954145263398059559641777670675033726504761172745281455802317538797072979264331416972736194473481541213885483650412933508557892836871622916214280698262503007518197445387453138369167073131796557376839155831143298200834317740797812679947260196152600265507536680075378709783459155467790127219190387595494594846569056432024068763352348960080682350376089036991077277576569665626308423458365085727052668012479863243843963308442967553680781316585474654524954491373078384424548335126990138437757549378618244375349190368553421658527333267527628715281359582306064242151020803127892349747535369274050567761385617926190896460885594719838361943220775364018591489447876089126849787470951535548082101195137620230147024544372556216743063976625836955674396839015601243050578506411648701189621245695254774992595335774711334798046259669792907473305130136350481784729799380854392122283752613026012200652505862246356320933535793966644288956996583978744387792537867352265951428168867860034965967730781483910067351113616936605514142047749265078818109892713196077658314010691031364465789323293652065296387923267582323739613306662681251670282812137881021884972775592406034978152596077877517122414436488612195455761024759830787789385097626434501051593860038566964784907020114542540833302997820513791427994570672901964327431384876995561327404730557022165740212784278392027621599966989613085482687415462239137692425369217115167094132470722057192833023852051559173399086071059736565091579921434842321109965921192828339149733648255859761863953648108202832585956900709754943174803667594696096060184716052933003349239983368703433731665353757430675337793850835005904963823589186855710147828607105093717276634331643014760034717541594722893009966450160203391061552695631944755124500796748859233639465309464932372737092083127806791190484976928521995534490259117249885894028195250261561974583782081623426210515590292598551454312682288515729753776832278050563574124524454826370743440599840968934366596757143196955026756798044228542238367540096207232415947451384909848612830787488379025405517358705890676745336402751675783201335939079670555863847540464752390805525062208822925464490830919285435798547225752244471254942393455458080511206026096209411090122385180906928361181573610099720257959027251295983211908988513023436282931514703011093692876487964757475284987185395569087107956594945994743767616459743825099024057154123859974437364573074976842838299450567568907971408571965688448945738487081380348115997272770603646367831947949787006393402349714374224345264111657602341787486041758159074221407144089874517234399430569562642323754817230215345854432912842523432438852303972727272171284805327926078662032925304596648410945790005040375336208012176784251215387579471595098520109035798301892443093594545515843460618806649082666443409666196996020152642594657031977375984504184899194251328896956739139858483852768795806013766417463762401102890068783772872574632988810191567455678795391596962006951297534831294887095490330979205294545923303490528041900171087005958815338247246514450222753364567834796420078285394878025445780862750455772411036144275013316095249456985673975116884089160729292023495357394575010789614063782562875058052301725129376888106236333909983009772059219564140195812279772669622863198612597438626321201704751054162033058095279890219433634206301553955735330480897186447262648269996553535825086394800016392862077417835771081035703570520726375690067101983447244473599469106699590214974272185253757910838659962080914655541570000633352652361965410872512706051394600327896026709451645553940082804434666864344894433615452605705419029046976117887434056775603488415138253940044524480746131668406217284809196590404218325583746459299111687068258082498916839273957673316760104977576605555608165549014587182474199755329101807202931067269628629406658051692691428406184758698028044076341835092727123531768881972398649908448123732443467774402360594855889431688378865999639424468774427401960194935167043971500969300779754475724313247236749488800868800788220429478411979401496362823992602815495478111074387664792769555160414932743044913020561589951850438448489998667353758650354823524799221304319546757529690966405132915076227993751924940510540713154279031818865274698904413707699262807515551005618155177716844925160140279048667205787218682286623958985653808477814309668818430924602292448336361942937958143807767753088356704709363641850575149515594255639678785068082862080922168722229257056706048847678702304798246364819258975613112095789056870270877831828613420689298328525849324698918700709591852708259866431071859738839655878328717500100158244034999746542236144191684413781478295416539481990675819176362547402606309386787690898994639794150407917546520603070792857816492180290488777563235055082409669607495933303131272259208083978903734883901012406483047380697537502542634207782174710262175359181779928778643263787134915447635145473595632922303139838335783453991715383500233565143881029086239910903089024430521636114802743199351628844541819683643788650376397986977522947271862868938267679184861577862146757443120746260141766258651128791442509982585887050977515536708608285485768262261265026408687685189294526168047212420505926606733569198682947446455162611834351848081657691866160891544942109355471796200691644669523201269549157077907548825913275077770997267215927191058863850387571112694748129877163507696254378539157947196790218023942116539774433155695600868750067347171239669850025768029214743076525257303881596754584150099735785420816327246921761981561039342947823902954333597556875478514661691323590326799784815092053481850757366446732484055287920174737608750979150162199825048711837626897688841924971505074530018219787715647381087322791473682946792193663461351196459593466897214623839370745157200608862367294223634947321564396419359527558168974566413747787460496547161401445175042179165551930905352089504890009332148192188580753385202524785668285918263467619461109779711632566744653674430645165614111983199160046935770365573230046117605390829834102840178598625254054062802402045902785385064084052373977905827554535440904019875813144445719007027640251828799924513877334120367787902658930159559826521419604115416980785911370112786041410694072317417493098422038349371115305540534981340376045403334242775225180359268519370432954945805589893141372632274828804278264670269073924699429060278859369182339022325286752435729147721668302227092014337055913577450123609780937274449348004973984263030904102395967787323661767751496485037255818687910231128638560506842041270270842020400714076114985773517727195981465974961810174613922739782041562803576572712214203967972139094633441285446975617087777094622440928626985081061469567193878415060751646100804965554481437874338104988770602810176407184045360340716236134796002583946661732479525906421240801240181175397007788887702484105746546789678687578742560303817285698381255829574568985927147314374627994654915641524307947500701948712580796474130475236891978849140088545437534406988736534845417466257779139360685747776301460669861339777436586543841652106130744728752094001249071175781743638606900215180095216347617201067711311119579593470979621301486751454722135295296120653083670693146480421205320663725646026161758259541504322907624177764851848828592439979608286896381205111799328114094929723413621285579262537806902343831639459478121097436677054556206772595670277002622405481707800229041679031530364580669417821806708551114589967703036648181724989019510502257982204999267223055939483199342203019734119114635413746953478594443036124898892894219475517439978563331221913255119898138994962990161649295676286960980864564482276979347009686482317265406508793103948545027672581278442831585275439175674158082992817155627298413044711841845426532252427048843008850781178969836923221969217694341994103508209231933733878126360464920306932587848851420679917612725205921094200551041336302919837482006849248941187266412702132053342351896104407392161369648781801074936964337472861990990187102201312044162734409991524194129708700767138604393124178588537791717942884856820388122474559467985345077701186212775615902348605684247103545482432203606340808689525333105964672197244956345981196187777703698204550081714503840901152534327129054196291730537512756662061952582970273553585791751496359462737519029136721162374696514502176876399251657342275702694717603146597048021917097176367169687634732798747187502010616387171314818944873791436907883864875769600501263243957071748458541375105521086286460783027767620714980094151318139274828992085508225888479912400771509774031181225375417447794267360876921253155743054937364680925059873167363231044005438870981164532958284154853288730767967505923533863121747982609392522401084898677997397358486154501469310521824004271550536620253311643084106754521245386394764657796227734653470030831347913249483795891497892007810699783499303119594128204233746346091958426157210371482686981968113635288170135785096228573330132556238173533636625711984642763564529173869233276736330773723456310528826895076206161690659140790392390419418596877961372424801548132313985159904909346350319542584711542497056347739619475236123658520220565217606899075682769144463130579247772905354924101193218608721268380837483129885498876554580859732603521561187569657626571024840891008522343463208695847115214292438645612641475842191777430857919193198653892886719615472873849566523798597849547228282813554610071022661156734735874052927256239136976961115620243860233692158607213315734048336492845251381474489681275074387166788518743849023359975007044753208569526841160979852432942947176003289099388272436414223675651189354210799415914895742749949412639214416291672751986153257105238681709060521284227818221707496252954346803600605522535391253827688760521979288242227001812233700057266883739886250494794801171556505757879195655312932596953355771783059221123704794575578092563656572162194706829483530329244046006883037295805680341703636962480918275870656255700091677474408412614249846090862280001853475884466440611389118782642960500668821155023303195448964037578448860910740487602484624761730505142933562912578250115770925635746363232264356061124454397018903280643096146943977893051205748791138931996703350516288707561323132298026313913388867076302196740953797235869277893494641423406617312469717940111659062459281462669157248549594109291009205362635695975843951341521610866942502079651957554092650730888230085310586471078508404691132095473175300839978444765795011511505770529776358093531026725146464584345886606387165478438042335767514321898189386417144321103248425105418034044914930935866573712773337556082758437508447791825767703570982767399036288055957558617159307196482243688544735761440600062442928063090440744314132570900758726161780951201583338813023652290007250699667715349230259975742297022221511466287378080301860815991270553481334275213433549132938847694020600064580212472941517177262160146491829001407995410004761963858056101541657595440550970067342035128982851577912946382792568599624991694462531018418776154377759736187390610149229535057399866833130880288519927273057067536986098374488207827398795717583591755344475394831709505451461697577685105022232274494657497249662584053457625092002490075975543557929112489311905724623137421264945495578354624385716786830037228266712197821481121238556388489177796582035594529708487946192025523094938999992625084531232483763027333830840159858870098917543321558825901432005116228625878140842088683742564094328946873674190084344758444609613089220723774742583466661028541212846971912768973145484696889762921465845282311824557004754511041000449791665871935602384470013957834619521966271149305182454302705082586239205726901675823634807220121964763548908848933317738967035723692007045977209919858155303627786262933807941707779964047702621872024277900259911461095402821929093961844586382517262995281066413045354644804684220134853874340879686666649639533569271353210030201115876768992410550579732298136725812980599265570868232164896991216804325584694487800601501034753401710143979796256895869627204579262913066967700213961313828286523952800785459916931344034224829716103801026051075320557097648405546774155820071628238987191594474364217035812971503903669404305482355416779055239139727408971542243237942685855933713397770260657312447231914508002381837079272680545303053581373545946041401934724366140976728231792398756916498403812971899382609680442099177513461829532127023389075381200669155546196571989403119557552269562084857461266052541717350408371054763927029158431210554358543781982674016301586599781042769622484885465466961812434121282148285302696548202109477654952040351604202049538222021354860635967186000318856739897619180028741864696181960028304622002028466382068888781908674214241419786163943687511468295493039993651335673897686068516285369009211969769416646594035834195693078040394260836954847345053638128467989660052964478247567688306464490170111151204431441309793467709502454849568630086410899756689364091194969003269279458254313238747130531098597466667653787501020053005989920059313708631700387966700970161298034424012129828579195075144761123024840257097138810653134229519140310815469897421804584373696252707669727053429086524450761547817001847911861313574414714780522720089528206550137543915286729304546968425296144529373361272370848974955920705666034299600173137025386976891606695979771938643513299063600859113823051030998794443745298188217415162749902782138497643186310916346085056739963324092600979371285029709990955401133445240590733322929274975960494514666129052002499715543271536602933393401211661872795683146534239185380824050977726594982353165320073777296860959477507786562378855932155688898230133285161090021360460889592085096994992662367315005422483318579786642813787822242878024232559366400661350249638696684335676006298504832826385112386493492502306130685314161234994440886159713046521339208119739287257939638341625310631762118790739574872384537865858496405748578013688354191254347139597077816761185119479915628266573918276263044647723496065977536171208527249750406083624841697935403770314907394984045567208095464454404183183945175604493954092044988940553175713346447325324594531426488005096187052676903732961950773044918511132171254466182331378826627651350938024678806271805515768379262171660253762269340157628598441008449045653209666394629881796274172836555870431999223629925929570356309956807650885643217015123193480958950699354975202660817776475420933072841929274316132741594400941828450029747572826926342392520998548078051954817352143558805782660945459767256120437673168002759033739581226236446425837448496313312208557464815680855015973908711263556155789665347238446270425321689716043779168834836600459465858532073095442806054345098574377414244240194295284762300962689944599207691668520366908128736926039462821594262588156743046054607106603912935055270796893824136571946309757888021742004575398916269134225527459348133589244189102019797950540737711905658288335002178698899381532487042626033988295618192699811260752221839893597435856107935476866460721745608992651043001828498496919822365691514096100256412012125856916501598754300404023391935202446381697989947976551796711542653993277486594066458947734316705527487808292397482638840603919959881979255490853310625475601141126168526115176964151208284234143491778292812189198550175342935228348813865076192377846557803574299587761419472872541567749828561652486198935034533475939232787455621092771623862324562960296061718872273118818804243845629605458599247311949748774597910103640446202249234839599338701619144530770793085954324434267548939613345822034605112200758591817863246078841402975022411833629589402792048031552468977148420386903977310090439574644509884766702971226643993834911770266642429741952187641938198038317253701547044919322659347301230132121710524964252428863993095422617411021769574198028945660304770147527561497675078838844240051303891975652106009234934492473070853266371610745972628602898002251827131654447730210452811106677361338490273735696135947053821078014246878181374211604797497928968033610584275310728989762638373685517088827920532749238022199967347408131635809916455183774620544720159314760439843122224895321496364917101416375008312102166288623772885905232908488190516974451670052725179571674978301779271576167705452909829564999322902591097861301321783980224230314902098727069780602988558044911227738423756940864670361874416306048262231295108918282188975934437113362073114992830786903235951595677409004008522883178319329552369488374242618534669547883051827832001723551684930156333287211009161604405462253505822490791913277975530902343124401416809127176185417027154229756615746636733787457550024897603868919668758932869142283082654088493522139748555265523465568586632237131865239783022914499798031954233209207884970655878622654670853555533459233421344462589765192425894117148401476716734601199367497286908008343374365690841604492767869693306389719176848768472327062155039033471035344009733451479665918585286296056196365194103233404170329578274278197685445401789947571271151815151067987030144379551665013643502325998798521154819643226361532607935035526415596196648841728724705533301335159368840035435804791019712633231060852177940738784188781094625350469436031703077431391754284266772939939624369692926107716264335613838960546130086302078340539566785301430921492524863320457698265777685073475573089550507393764651360966777727896132868014706376908463383975141228790192647219557456155966626099313430992395220658935001820993014733146310412831368970514601181554139205958562230834945215393868866481900071378350629939449154189846255457135720202240831445313666299986299478276934822660297023164701937850914211759730703595470186696372303406686623587352771453161842602209461735853921447619664265529281977865468603487107937793089340265961424952914836925399131078254246420623422511953435872236223352638719573833011023658446510159564164376342689903446440447315135215664649839748763129737025466769186479881650833789424106085814058294295286096020546999711562260908880049212725633117392376982712808335904056445225022181303818193850656713463496379107630668387763450265922753500120760820480796856630476602840450737849593426914451129442719656596267292313033355963148844871549475481567402274837816545181079595595820565930357656663699056984397433821054842547147917769785752898114399136558802764375659834765620631928630438077668342551037662395792986537302267487811375455015080618545855642427280366352887720150426546306282716887050198353755159993298833242481429424013722061316143850416445604102914635331472419123462397855853754861931640912966191691037882518737127619661061702884591194420774859478304379577513207530483568096571373688986673389429806925374836170550210176251693245856250462981603892088022188023696113244714991463495995560658551195813502328047087356161731974056023624971049267281779230153975651342659779997871383959320684066985356998420399766420004341625443592963810533013344178667448640395487074293590442044648841424077500156246844462179832433757016999397227214405844234318739571756898293763238361465894477711674968018616303102398792936034822019890808426713806698677166663841964359411227519325980383274525338603512902229025100003376206350541812002068238310059100014679895747327316658897556003567616004951817009060623157439481653683029029123163546006001959347862454713753520835879655669609048883142198578979799950735541862747765468881238190786859431771349682388489653960224631054775094982371604934191012077087562869794418380105240352692409067403455689842178758363981736204325472167309767814834479483169421148213150969980481923663956963474522254846882090826938995035287870128071690412946113814622656418112959414216802637184198671244738611432084575349327126380838061905885836779926096273555409531969141856830069417048080044148716836443596050177591951758435345731667611163490188004110169526836616031069037040905285131831234857945282425783738005804217737291222958682565891009769021648792804423619671421212255976435695181494644229697721539464926214212035748307587535310517425711385942732756359719789128121454444123130318650485745868988856226499636919873535703591830394925780310041290934532879222711857539931204033495949386538492977212922796451210542365893129940004477912333075996486550363665341903297599626782585922485190758122824056977583895557609494112422028157293288313737063240953852801171607685747877466750729633466787403826689102737808952286649943302383570494415700315472029824473271975794281628419738397943870562433469293039460176299735304971659900549715843158594312833952865077595087699367749724499587736658121309929188204605589447047689781810939175658955835299291504017252959281642745058286748549064019592574688120424036552214398252776381389452274755951030768530043635933479397849661528186122102565793921404483926342344003493124623974664258896845454561583980951106765172673683150585485697159860949338556689692822307657839432193408703311882615211534938359407858796557871949107876658231852192091969522331582010967444370796908222657600537473883408535210250569977951215987832508883147315434541006663348147783917544769430910057529634618280527814108232146402044412361669710890841406533831593037462319315132558839050589506515502615444287864936232830174403408625668318088046780525729844032509559747938339935247846926003106344934162570434878458180095428855570768137132034735973087360575369326113833101020785402153333928999257791819746578103783620419905392910418667955354025263767226837412107251449924133910143991169094752383077912285111942874492861406973522843727158994684419771178895502093869496560830630545406526971776580305722396469351756823109000937700790822633218182373167559367741839521556864480565268189045986115762281447888266828022465863576153583785971805610525073354014192519231100956933128376354300808462911337102588220803476255167489950703086922643360615807252083164601594014482632649000537392900016580136040577002383477872146046350670454920102095825403449727312176937570942885233719366035670714737534102797803171434432102943678781927593501808762739235242451950256328382805003250408530156654249126103665743526797422857558837859461826390488096955354062303284348710902560767291897589586715534696505720229608057128939460070701107133429007933766053149955653102552344885125927737524778270426928854198720772920802142538525160678156014280993685569334838917181839126165177258118934666030859043680937267284375568968367139679179233365519480122446907202483826764405414224134223703150916097931329065743992654674996187006161659859805274752975373684415514384110056494601793621154864787471192221154226583098348159971333317411337658208413249388107638799091741835228893626696484512755518574769336217186342118992912537151286782299433614150129699383698889213604742204378994636241588758387581606825256395934874267952780534039014546530238427282057070278870657800206751662511155826622504092859484444213042230258524373815957434775738989658378734436040473935513511786911056369307151310896657552032692920892141914256627942999814387801246899818733295615777684458479304052142040179795848613628461603640331180567774677838383657481401644845956833562782996317663521282796514833473801319497869063706996915529298560422988233287033819549899791022495763495359638657177374940557675298334919107489808749403331747089486698828256941477549783000224759918083645645107194192561320026457724885503947284935242531351348587914273029700512889298257097155523544315836674554351242255526813883892360414969088960291499230901136155707363648921604813368634232164742714522531564128177315546595743659466182214710083110292605461593683395072294731134456088744910139269351591792874574123156881223364126867152818258304263225222092634892264104679730131583538703453549659432052690229933331316742017795892835588453781798757520250320039573763547831231871480473229292322582839249537056796426956696701042160581526113459250114611387422814141712993300154511904888846780908756685826977258773083733552645641379792470100711662860114185124541429606344343328603867194009348300220129205671222924039626753607328182212323748998909721925344547426501246697167895378069143929574488754828295116072973968475958376481673205546554025246893679853010408809699555383269381346037886341538332429506937307427221884447265446489183809729904574124958019419819151894722270997514568903746813255856762351499258809293598867701714804279478778353704570368372055463188689965537470896085354501136673099147642335076996530403578953872864293402768210795526236242100617292454723970343145791478441913655235778953774565267282411013939557354501149848621146847577939450606043564985023853571907521031319584625038115474043055176317537162412110514643730716559046864645746393811350709968393842497415919357416898387717265415185041739712393271908752213679240116164325212236603114027985368416636866876915018551085130295844796035541959074316728729630796858706705035370224585982795069115338214598364815878524060921092524116803491741577573095167895917454288758291208312116461485967801292709011111505839157959404269232445247228564173650276006065991512867819287679135950107248187129307013978445195251128214735007006434831151217894307851855976446224080921780107843032204517880503801611905525794095881519885344865405386470116628397621849940594168747399269083224794940715287288169868151599374895769131831604621780322304322313396155607542510063714124894931509080138410076530767343132915835485067719106607196812802379720652578976847041479275993454347427087627823256564456302244465760875738940145658908074025508896477387806819288311514029449474886617536075967055666242772139192081827574582554032537699868986324865765812091842231070363858093971494512991774791390116230447601581983130803360391081391933266219790355862786430599205323969850030348991315391102944654878700457661868830972875040332347860127355236921103635296612057269784852668320745969250299927343511593780019347431111326052540384024880569116332295599091567414110689466426293619619367758245368745281128820782697942199591073146222469639714705581017755073653207783584851782049222198098382381327832835891448315965630562981390200968994188628712219380767496131248228246402136456813317254921514056436382495812041036559994550483372954489583427957395042826821782435888844223023606197870171784027787250220619928102828398105046571751139710141689324456299632214034651378699043378940316518489280370687609204789134411316164142055489743141328209766536218379153299621593643334895672847835280007405301288459333079114498213318625625625741157980616438923579149750915038000827257446975778860627252017668278041698125569304028435603404681570122417446224543097426336988363379028802860500304945845795553469971231423211721982197865024000323953852431891447072287384935014619122633238606018334390853427782861998943313715709369564845886434985015854228284374150687119823548269060988676406662039933749553696220825520257288676293263762712913229674095489431590938288508158561807777135452218625582800852867451014673395696071119257411041029602802681459912866030515921265664297185912708339659654185469919481177726387403480157760672562552972985574023793978957436622478664353939541382144846887927707783611975868537589287155031639041146589037393159530870802124487318713533430431603494378635196366677730218368749900576217555250346227744755048111208768942874105573229382765139483622725507201845855742405312667973541323476088218661995233513582272048218152371818169808881651376447883664689507571550558527691475404044018712586357217479141345258786078842006225604679071465483340063482574323300979613702316673766588584100923691241071450192204543207819851187108515130837448753559486445349789537896237494799269853002552837561145914121281290108140833211548434559811700418289038270832897023636960966124701118520492991150646134776156558488245956663805084457554588648085064804499614740633687022494338809503815735184457293030503124401515030411513497748238450689203430984313942709508797352889858580385891725297130487953591182423835995273054977261804079812921422428541789736191919500819219177192173228303561320815743776294503724683198018432147473724761227141433981833956626146144959413062730544920493670337671575144276372844868718480061533632074916410641420720247160678527429666716749420746454312016123194332141232302765934514298364959669606870918692828865161559677051096689733493555333259896440117944812929052383126529268102156829177087873687999606663710780680273244250210514446180977425120004000252026513536702981171510006091186317802747071563071996065782966008656581250833001400884485257307277620652794065155927697149795339035724558159271339991979642404832792499725303636822596603677609775922053320326006033280741197460223046525814896709482161781511626126509802451175982453996112573377100374883334824176466355962684881470895637850521460403535293181803762279861780445037584644983795599435701181845639131995231229606928406009411926438901007542220772274407406855236830239961634907346445979389856385521842067442331825466819327258035476828430430835392247925523893898458284855247118181241367649654814672519000006627004184448428057458342894533521798146436689411471123722406548442127417433039582109242865454961147829220762940914204142472914946405864292396434369984386418632651969394480382640666871443031388147299572861452943736422171135642975122030080621562994221766571186966823903738959367500805611064326298429902699329070167037892941423414213740432738776511322580649305273171132729644948855317334313351320289096616757822363887341604556942504901582013427214093672347142150556794744419203826113570725121647322672508005298100604172374886195516792311227143848791029819754304502396482541596310356266770883939088465463345164696560315950394502279912317827856024365188624393340601818788321361298454834449075507003988502172382438687347836514186885950018224830107495686267687119413223881996561179402120570475976296785677413664881966707324872824768548632408480578843169250647049227988150283177986911360103370000301265445568698199871682008033350633218782131407522648353225340997145171466333724145042272019097190869382789909637025134085322867745106993979322978334137220086019196071825085871457507933520292222717971128660385439788663247161061495509915785652699677203231099289705570697636169186474862261333818776013382487455900208232763141405042410175812074415843327979125412656930331234767138681922631680969489070913472101052145921338681529817743336018139474469784639689589634236324865557711975899937926552807681484399101698961961298640880375168254482604882395855370396425446283381389971074631110914700183447985269615313887861349452547868622643423216152463537094465884744557006268704368042878653333066992718733023531812127749986177590337204076061298185467540666870869888786368265011459482401085667834137245162217748677706329238183718377857337328122419415386464619191542383103969442034341520067581923115266511163044053465404156058326128551672608927513713409239854799939876166438910393257452418496447337181729530428893360028826180447963768452361802824912938376077265423569519002067347159284252746037181828674009220529878117999075691901655743714053461485009143276033707017790731457565544806559457133250836156752489739370840091626206125111336443956866637953801260140657424469328758871431872095462519352768208615143729746986537731526202745977279442217819107788154020670109350123216717221741531947307191209225927463735145495871652702682167369974513767946943145743940978891795878308552413425157707051694724526302662934681038372912804069077046669943351818462458567698172423124371094699202008380870255866231070061790203894102098021434564386671730392441001814059664700754996692945335251289574261702334057949873128393133614292734723781469988343609177262762469016926510884584039112732958115091536886078820206759215926938336302372610771479253045281219509521914692311906054465885518525479709586370259543610652546887976754675743512058849000831037751929288052732686351595581771256763738343030196637180090659504594974428577706079594514622029671278611080275273516547431784747344540182428014942517554135381350625155131695412348902277622909257199554532576686448827576909267111532803473465406500569762430478616439331149367264609448570504669317097573812161045887433790590895078746572819733387507606297498484940943471133659972698206327798351826396011504737280265961627074329353758275281445259177239496060457944913065354057266932135569902387187943927535106753591692967514441521588038224196250920198309316807091324822474663514318962658923340428395440836386092326491613270505317835255244763744730021864752804120105497667863457075971575194898070274526314695783883868813546613910280842627440580020491925130868746573124383936143615872807914881869194948250292998718515546223461512178144235242393711465631624458821549046659257339102610172633060176326375332683008006543224072344241640110898308360100129435016021108527858296165318980886337516171684929753146938176267572303471353941486358325744833507259216278026890596756050925636253618474342209515190033936508875624752078151215553998386856925040267398596760618636741041561944553548796537002025350240516893200532151545983120114224104849123645509731464194291547698190015284749753652314507476166786262349001693976661147552105087406753627414485770641487477342520525909715563681937520310339431764134942363656060183444255865997627803658966411579889045202776646304964893258887410956180499930704454623871825047365569762289264886697795840715857919136954433277031343372911464352099454985225867427304852346512031876383115961206315868726919370870665700332944945240051411608502916794941446351054831682275772346182810533046981687553982430045217623469878042066159951998718557192817652318754837547506397643701890343640370603317537880872888347488329274658782048501556364491038056626432519357550902750087054352730755129814444967638982841636754802717558350386388036554943264207209580921524976519287760190123386447517549756559747562346092342674234969164375425335726467659667751362908768962254400086401928499760817638199656399156927988639778178531820285927236700923101548646816096519641992980843116340199871994159056853289927545077688563111910080364081843195683166068735776839646694218113152592113441228856579837282584103445156694735091926433371638958321735688892624516585074881770216061980404390303656609005397338761760972143550667816422291103738896257370468343440700325430113271280087360395212146476317753559315966662303251279463083422718376333358709144302457741698355690843163151515908659822917401202444490071304834254760723280713424517722838927058768250970389272140776909327539644019064459011330060321457971872310933014799799822312108373319363922615897530764936799209393255000650391177540497672841011124001209872543046107941172990042786114765920949649362216154188307006792729376714313887818996126640250773452602578785947414287441534591726655640332396085455922862787295136843939644856982073803476287920157190052238301732813413594425789389247126039868167222746954439642712088136007260557925596504848390745548803999290660540173439880020115819879293735890466289373403213468142719751188819375688891291557168830275255758308981416190764177258193572899538412030617644068031156721882719222040493118742960716984379366769818196655972325387991475358272662843694378078205089161667500414607669790029579430280221247592155240629268460204416152597015927049575997403078886531044261050036186859732418016443410278034597486958959880409674940350456595253775167952396432773956596799364501598698517896687704458203676951462266294056371453346059684781986729051080835960358654618881328943749242798268631350005356298709363456540451761008942782332196336174772718849467401631807203058746081249082529453276128308596186753241442572056549640298250756999845132932650891687007866643966046731247482684581746061811600807887718329654911099137288583398666261683789386121279142797659948280923669741337425129819969963816031332566416046638643777820232748416082964741932956396979678554660088723404886286620280447812763504629776405515780544023943194782384767237920547736501292148124108720314735071810997066055105746770042585876259175983703789201116254422151989825276793379359935895909808013416315092065946397824048408562302145803242241985217772640196967320491150681149050708167815612047286959803124509112169394117081356503054253197722448348066307138398963943565698580226120442529872786824074979437494650930289419702784619516088611707929952032603861730505797461697045347173473960865940931134940970201833303130482402588741257499075382026017016568458874817030424753957854082503990593037823992379986611691352083022025884764611105305625540620559523110073516590012619996665498319642003188708922144463853930262159950787950599544716090098849990833251089620861085713462917492866088443370140968092699228637502287003599297781767156384037957247398375086852957294955449252879557842603097209925899946569078599166876037367788307192583066841265662252056252285967925743537282843022658775572774391918998946976867694645560070512734593009392861420146235161277569835391030392896222321502104003150534290940507438948512433631105501381638333185180830227721718466513334819952719531062966210154286237453497676516566235754856701761010064915318050886749458324709625343985481970459682610437643012134237529444666651878820797559041621938170552871243207385927284638287442650030129376418666353531932468012141570294625228241914186985060998714722308034375393290643877416996847849435812338939524402955845697641732664842808627141396564053386840640788105302934346775705940235478411326571224749313925736099597966872010776005969191374371379751209187029326963248472029820430578222639798239426600850438038129086823460098211435080514107420075524328007977396698348474444098181227634744861551913688056388752308985118755827643787125493700987076686536068079720308271365027470926882383571170429362097899870044828772968810823109335067337194727338132773762750800226064119277772956704233908160608278476746435010157281146429971518204475120369867506559578714899966208244301654229270648613025923372261226543160570300909593212905545068744519304655047026662072502244906034691151426912140754961565772192709990007923051446156273711679181249994638853502590821961096718490308486973097397960028567233980427291627997571611816399881222512545027376799618923236791891166730580091206724634422103291663041918681946163699082172182844669011569332185503581764445870282794234058184956509587570659724343146929126687617026579574720778443189470797893850914089446048244564694504907329494226806112318465246872699671416718147666512991305436693972647610553745884406760313675352061369093321916541891116933198869529229839586023864790357957089613918428883547578738360572227699148243129481686123500130705364263015500599818557202094326694115204704686280054379814805332777949345499987779257026878936735961318647858135120373261005258422909223195096214737632673698286909743389750734127896986190902894872530752705459599019552570813897712840236431469454527434075039914627736673464658534058052362092274660797316786234179327288608525184863494566168002362994129634770051681532493518083183891301438164101833654832655503611604788155430625729548196310732061715402762685583190043489275148699580105147370557908071593894841963309648624115151469048823869800945295791710857813755533559016800252803693339835285863982432092039436095144854034221387111944671828018075601755866118370021338675350022602880398540148911346261006984438921113591547766971182641997316361995068180277629953385339439673856203862734051783850859299416763183151665178445423236031858624797019095949417881502351495470064235383676870163870165127855260904669397406228659954228629582092379408266933635316961561383897917743996059206869564297775997571053471274593059951528109534833958263586824435584401567636213967496244763172723620606912073647726407327889738106703292770499530929619007164781611602922520001880905686655956800877853335072125842236619081162593706147337539635408055036033002188533495140596697971361730883032182869580416560968961218514697983364930521272441521060568210633646644289235098902753553796557487525114472719027983027651827959326232157599967259929646118989457416052788228163514707821996937083246701206473635542814689783739865033993633264360670750106737566300598760936799789825861263692599659466031911116671471888003857063835041345307458282740622192994717257554615568493214120578421081523042284688269032400666816212474338353022503761824108711650019061302607842617794611039289170181424651047416891129150230324332256076871786913398270463987923320620529146968485581237468767052001318744042526521209374896235983304939504811839442458121729232547429912138160298834388537265032892014927548132782002320493934934773379946470966134562320637770337625044230596395848605396875076844212033867622963956858807921687178239621620381697519364597163218317856997601227115770028009916111248709889454487969342069278466557611194132144828014435407946814345463800604527314711057920724701545887031318717124178404532955308742329670220707337269056808088458215031233250327529528484818459523321885113599451346479014953409050895623465014395410399224677509790687367592806269967734580349827241356796976332031739695225111785273388559664014970511999070569686707783864414093272452487756235913178261434007368684170712146688117657001355880676833282268886672806841123888317571421298442904454717410997842201963047548766754663948839813503355946465995475876838463505917226411099170263376232246152237816880103204153110005310330394619148862237053497425296792279565178766141946884108638252959783094356020638540987439874244124878219611339211976413548982887361628441319222478644841815412642963247259428430621730717795527551493618711127296190175414895718755573241671097699486376291377316533240812129359686838361682425767778659663509266913106883280121369868805257860098512322899418815505108889355229340011169166457972122449839013993464559958536666247478582643610184812595742295057575766974149153887270532056120077654740617171022877655114789998332097546458465684928169232045126523966040349267187617800244092992156502375077687985180536911106510816251118963241385916999458588925630154111922759928001005097262288683628282899838008298813238922565003097567495637481304000129596516867850660690751797210503520571912575430616467311043983609809473717749363533639751396958499299820892313832006233895356821944643597365312323584463505462631537572916928167637304452051110986963465199651642072830329208670144843848979158644677632406111888540123678718270994828140923654315152183942156789528342456209296264652901901615162651362207074317547105712807923579476825955783711060703972723746648808581663274277206558966548378519116029068398272355938676129914803184959161596935829982568972909693511443540234609938620463847681058018043283906675797613361277285795912528302018523255949797554286069334664939337029365952125297906838530909243544667993568465323765348556601296105870798442351120620563565870725890713557084609854724170453675629342257310249253484846656377895156627921653115936934803481682251817880162986110104253141882638981832321978953979712197194947309276105862321743668523146660206959762414467987285186668523020193830946020445788716019396533537719679428923822785280620336953681494396490755036018610976212048072577867155386767692023996719462902286940247880792960281676401536297038905283522997198769261550473625363349857576290814669969695688253507703517614842595155333839120256963978293457491469299786207889576371381992772532530619716720524210855927579757834808662190061598516110612669323292431814738816638739807694499741073584001353348974369762635442050662917874285145773092904859638425314129690337641217492417295408992943491677017940888196438166426623002441102399790184436850130587232890428745032708132697988720002226155690446586014677494820264465383322887393302897717249632455505311926790982570858557748415562070019365826645865621708317749114759558260540271421672237607030834111564670295693073630605339292249692385896736151686415659803188157230282477916489457727791013781818369720435754935827484696504318501721416905491961120550467946088022722112858267273982301224794190519993080627652241308415826447798261913196821404823635131431979370476756742250653597955302254276984109639898612694340347760376346349655874887009593508194960720739427423834856011991615263867907977928430656922563090101253423544159986367574295238515367438195308403639785258449060141475299422916479588631944311801823772343131456764128913119202448666707801987633964799773840127814131814686006277255653417404565470058989149213953556082480426845821066498042261681157883710883307147110590239180465796031151906365478578746283991108034790630594396000476145694185504088663078661529697806598047439467504511602089556949917008705131734004983332776483930226987610468135765249191898265711127817005198561028519831458294746329560369420236175527678526222436076719327369230868284203130191524397549255476730220895428843910254864968213408764992597102889146404420210364492004026235532692275945358767955808027276473454726849856916337917022179799564726109485827105715128312718438172611040619569701302575195101671504276105728010567401268679375724239106149472128634862138458357453401554678901208497168018573864588780168018440486907663278430636055345642163603031094798932929644053054796589714110283237976001363043547797230349087625255347711452999690201180257592379796719168987931102304696895483830042090635161355167404673205139830231513833332445320167930129190879147464056337232998391438477093843820985619732917487537824704980752608552989269448670866028941761973605343295251123196096285880572569399197689737235158660972928251414690016362704001176147181976750544331446723813192711595614145230867114119430110710431142926033386356423998959375249060519455394331514761112229058428190980820560616684043318439841423250226897588348425122930909462471570104875249295639069360902333121631771871717059820157807050135960155478282094231916491812258940147092821047595115759137141541045119844587978602728505024637853051352239664970368179230940589817201747025382976427789082589885345147333309382568069065285672036348788086879838200557618373239052499885865218592230155850166162672535443690283813012448673340121402172056689285356599580621794046048006368996637762748068605467599264019721565253801582018068631143271584984177140627046716319918784770841093632553164175252458613065278399420017096072543020419700221515460831963612259420385364632069996184632837875481969870989068669309757949466005907500601831794866117006044765303020433644801424013489684174065432802755246768493991824249894102114215980609236123889288330219820912715723966748636158466754772643598942182957568198406991602561408283126921222073466651762802429972309028396712263340825407075322970579804618221043009408224679318865816647780630408397192148593420113145091886860696042898466734423479408522072964943709344582038268344205660483559858383327594626403537810212393751423800426874451905900593732724184831227355199723285641305636343041543165924122138315081622982119285136860744521953517179279627688481348969482417717160774462674630589600361836571531520802668216645286755322321003722751535895189882839659248645968518871829199137540997302486202115943905724594949031395423122826281732206232159802954392062568964785040452901669871139201722811333515095933739055347875017630618154545062674813392573419260243122206930376514044033830312063769019942000353071594819038279414781511967470399293627487025463297689327619114918520792859085773537541645684716342627491609533857365773003251377282193195448980596239073451322341118892634645589713015716318695641275604309781432394730662979466100107668889867499204073560897027619219204626614117573189435361630415423801436147209435476308393402476761047542435902352782625525170402691936381803583935674219900429099222652300909280787199266902457956864927529361717084074863626354381078739071912213784295538300403400256239513815515866065434420547953951249792528598813328703777610192444328220885949489002876747338149771012587429302472898190424330137910122241762575772206105213738010455147659310839244354498087039946130275699885864753762360644514960256842329491057562992522291541455519849206748176986888504662956067450779286420823367237243758521863292500556464492591850181274674797172144907258188847957077135379070923859922149612819697738684449373746701473444213766130737194151018191846612295352376733058741420904938951806028259469662120342561102565094588390046943462702996888619735430617972216793310217588472627820523484310256525133188883541139322609888438384121869882378529737060431024437170221250058527325946806706661790543514466708533062921846999088546609033016638490620387202764771974386296643819003911542677340384159070734242402645646248540128679575473075208787652067950579247489065475216954055248372378969281553666379305282193067447325745490820800953076342755750326327661394585916110849328749428456866137105217655495306994058809640018398445730102519399912540424445138488070682043105085300516807779623722205735162707694412198947414985686171052054236641054058077051223784370477435830784683284331467177520235201921063143171275898130335292729108891416950515898212567938054397116101183537704513106394906976578976100075863736639741130666705493925798629095519112549111199644362180918409201755882961359505750971888493259553032418766458313222600852876456000792480820797659090361693676218482333182644057825713822830292293213637299804920482800439782570126170534860847721734743099299660422210551858606932228772823544351524976139680057426174802981572898774613495903169288054928949608446406360541789375980450099635879382693595024300866247912007253008691098733897133097893214801818899375645568705769039306578230286253096823890267309606617410097478480709351697252738728482325284801559184585138406984399587833715587461468026192264484433019273535925711500344897474064823690831200336751142870550983829346627482203798505513480179353812347603370915621637496571806288726000434045163334548396541896080782580167594740404973628682909228802100520230119936200202619107104125380334035662515629250997119141246933297350701732790420024189524765580086999308342612370144840770808416206785649733302799544408687165679581716618302683500740417337959673163358737075996961141875234706252056243924380450620756882435217131787547619183086908646451464448338525435627239382391660401632193324738031449416536041730929773820958130844689628541650532312735162001325527492748901826893829406277668145581889254505567894881397892884672277550011728659209647752610258550480155404791024535025285858175446606097495942758682484540523128722195624041305752635625875181091541662745511852699718844154074721880349965769320055924274302342139382823961385457377151891373820902625099184502115430413887980322107052130339308799869132667289850202943831419433096550425220432713285346367306815349705706385944029552461618283890057720420585716566864110226846728445721904828727457277944489948408696586623132153451087135847468672829569326182579392044916370006605846713231584862552218240256150931491759438071932575959639709269910654552989565311954405315826006328287728758598397717310344764831873163107962217841282705703812060292764489008948995955934996825886160464849388050694211753927522921664404551140893365739248087217532624076386427419280919724177925467969061125835547607933417085521679803573003096086131459592105296468166494363865217944136615129729293623347647114524157214820541990434870307705892034882170240775747149265380414483880785327596373880131269099076854296980936383007927652770083954484740741193637334387076523860907142688945992829597925439929571045741339264057037352873250437925773063304427034894713406434702795791825710033776617970572050255483153271578116910533687976608300645662865405803056176288162798737008797564198141668454961610280912680149599277581028378806413739282236684071721236220530323413565772258972154544141144988794192281791932312837326653889779328591397150237807956113299378695236056770119373336788911484695159143922556369592315534782774834540772051841803178530619148243072284506077648451805142328305713200304608871912858067568501834815035598800762230870586099168242799833455632833890230718991373361736381325381827643562585210415950667263183582691326929979206850412134748054855076478923798045247173458938752689314801714233884589233822191218034252271740787266630361914007435396693963915142236110838912566153743957437158028065742528351744245618872106803529380041709593080579734145619565008410564919322114503540219349755634924654763544831307859399687704185258912421677521559958226251397138516970420459306371555917128900630738402889195999278247224586584302114209751955228034976410303534647901201203567519175853881792937564352690954266467442093256521974586477869027639128631056225788379266741862877593761308207296419713214151793138876448549207231716296310626329862931385892230596686450521514110594897123797088675395692695387137310054665180444704333597091847622986129278453901927437190028870013651069708651475421137801627704259347068420737591159802968844922176447853696876267005547495721804846346353060871517760827786562936363613618541850290571465156712834652875721790999613662185048612600946067593176605109440094939551409875862262282574438547636991850248476065494295316852195127679241443958789769352916705649123733495020190559088840502687652680115333584947597793276676247003768734485279770980563300252588591441868789774952245664481115596198840282793764920259531401711092541162434985009241489678611784863308153239573483004256269962177370218277588511354127751314955276931994988109912312194629088411985233105653134054114073816857219476625185396424661513057448321066234764429477034855412262621870399259749980460555674234362974946556952576367972426745073949327571836108714359141978851919700918312774510053197253059163658017242207881107953056699750670630942385409945488683690347844840361848206399510590630532160338239602862525404260323364492515597518503178379196612159921782758762041994837599528908823908893358295704010747171851925491887505501454221146174139298559686775006114214766772472947078950255522422958070666321904765678579409211317480973380298761948387594259082416582849218228416511915041981124321929575032769873782451701572655185223216217830805643786081479895641166175735196516683404989004407630969062019173896483209255864112637956905980036890680515957489531346109663336175568617720177133296141803347306478937565532736374226793404202298474543633580268068154124940878492894849650021567245787240519644748622203349412954489791706843048800576196128129941109922079651241439420177351686162715141089743616620725174129342319182979405479090827576984345952986643269593206696459386929792728568898760713887384574156916287584433902613484768453224952314012912549367157267247344993815607980039493084245144627179745894718292326336727882633651562410032164941716647709711983857553506003468921362617328082962006181678886122203459867191994258388529654225272210029660291125507959072260067209332077883854891109682301521512412169191260440020978874313179147465398010583222709157692836237781499231914831961190962195401720019691808899221841316195909999929475481031201707504732748889021337415342836189218323708010413615573138359347783197073097557239253397885796818821911190077915351223798769288339881822350557702474774061774866138043377355561342142882030793486360093829841939685911575793450410603932160323346015069446231805918224638991622541564164987242958661527246604680514369418999854333833571144631379165923293312169157392854733939452474166475750311209386555278423637313017200167216330814268621629582701001588699540104727480048789435880702603000811358569385711043454748363254522125397986442237060708385722799495327861720327968352138641005440058316477242501352618822651594271087117392477638317547049299083757053398120126459571011648443342585242048128225516408501168131094646619827825865622483311866187234482872548548080000813057433404024864910735851183603099721475882079479166237523567008097418987479228883121086655095270194181064944292738849027647142938786745502597080602308646861935001881289257849427264914814475296248631853951381109180400499772765794392845746869880635478770718953807882142983492850310335166838021059048880970105479219779083608165794085597500463398342538459566878208122430967239106123001491344941826567581518902669743488620333843045802264457073366267730491431845352991608036016175790173507207204631308739948724791139227962219634976177730725843134599323430918603060619220491192658197945728014006726099878623026744881112922239290167497079245567305172755573263297711831088413567128344535423513985202900493313679201541315831788334548710437890522813755925928064723881004774124554619910823850913135506262402325603785572917263945381591596905192387674343067151634132276562348970316810140401649869386672340759034425648150186327118493677966501842047950227351732105147877315789002003885032981294413476818726891101158572733569247557164342753290135136777239051427669608783215627481511532572856791932437278528610594216388338830298148258831629329950980728497668882672133624838038800279568532712614635802026532819249985974381248610559871134527607838045184454261636081843887311259031571002090726279736639610007012608158662325800907459192676808121186930285364327966987394604095424918682450745313393390052629121705308322607718327378640193284921084484824984068460708941517791519894045282406853177303800331666349938990287990369182531712329561676886258433600541610065864124546077524372833421129062269271880491370099488971144792914591219459831113816215455150289734645964439858591362001570394781054866906556290521456335616486805309853208125200927485916729997472417614455101389289082016982566519935602084297149634313967515412411964906034718378956167716018641683235541339063804317120236582911830973668401955849798902606172568055060614366170510184778990244658928581536002185316714824188457727597489109575018277480832012411443851988379113344386698325296035260120212649453456287307387047628820951131039937839568537368320598887207028394805097872864438158679067326771940001909574151195291767070289834360493352147214978949797835167993252721053742307381676154687038112189941169126585214287018678471907576249019690468324354481935443510646897444240851067848230767654571096608104567264050469624449370992290059383985752502172611742791452297948904371388231280523422675328849367452504266541312051029612900560580652310464485209498127815620990021028106648270575448495319156096520795175552231231832538813857875536231018892968164483918966669036195664255003573961331810492356862254840365437276071630268646733599110747750927140467736035557862596050974263388376108700042166221583575069768562410175506320724978786714051201244788218611170916940870220501398053871031851866682545965277677902908851190458272069399035362891812080347635573033773039088013627452289889720152833795496478314955459115598416187505377382218529655912293830400716197153824479638101464801938520002241333442890926984007368567263365853614666264712007893931803371272966647697509440399911016016981714068295662429603496959609840826207521156913278622154858951910953767389192472212910791131612083818422396777879490198773507617864343387268693349069914299513566415646697474123833997511666033946278351327845464939361324702457422257391423679543499971718819132911030301889916061945787739076040989881055078498753124342520415658728419661121490165624545441343134054568647247479040885990994196409039897837995405503146434010880283723411116700509659656946362552989538782887736380863004442657925859245155934066878761919786464822706180748762544959993374139545645612933908527229824245114725613693557953305105097259648647685635415270850519656444680808263948431811457741979591310396866137669276055107221995621553490124900439085048957702491927136139786097011006744996535802091208762476327189597916606278695179649830964150524498549898118086227016944243161736813939569067059410793306468639141816761976847947012386639999702164546832876697688169553423514690726820138551068242014649398309305622609007362455084940293253086548017037911750514737294156399396802231053940101082670391934737557974804859752256021630491178025900097916360978371235005049291146646897369406708632116562191696724948519100427957126554210215388500836772291184482944085120055410132210197289597210764000776310349105031845631505816957271062109643066148368628124449326709375691952059916835844451598750622784547609284358113011137292553406913284702802398703977933996615375380968424911855135790822827189719952148191640799511120191206736843483201617703217470825489183612506185671985506930790317102079805311670370487911226317462114331679600610256763330527326419993459940448668919340061239660450089455928255231116753048534263936091415377172597037825128204728273955898105632989713403570637853794802627890215085407404127627200868612491564043678801369253999417192744018631641491257210927177240348121528984206211420749050771327728163950300244651061883683634382468916055440835719113379254121501630214316382976126937729291712427040543714791305790135989311281181644756884194191908109131912957861486098470242995030521120314964021033765599519380499183833959014475467219929395184441520148147672782043430712117391210303518864644915019554419998051779071199259921915676900746488079480340300605147239582964485647905639843919219724897272778460925836916437374056606235538673270162913560928088623452556573986818082531581435819129530882474168796917118901927856556947634289519826180146077905995018709955733363674816510036067619005102338497513908095801202027162921416919475510677183630839067817860776255618267566288547400535687662802071479877786433817481801538765661319732648754862240680838525712209709182534304946608080705194017408094098367783501673439104489700201065462349779842517938834987885202050957636737158169942746622298635285806948432167558463396859443743957850854712916800974491905430849852126892025961810204528598187470050878523052359659856988648838311731557954745866929219921973310837356639089399088162500096909876431371776173384206032239965302967425002347476046471004870535000080809456844444469127048116828315310320238553563954746541091516811209399123016431556777968629316512492502761025294868562303752626597349363663519513347088989936473674644719100523836746543762788011032798656580800858885469494260071370628180854864505356705862725850247413625700348766690748306515755927458969282336342710898289615473035151684875403254105337192200347089667243581669693844089239788171750416252701054897527377253769328022737272550159960867005258142181738992322918660972324314964453675043904374057795400193931420102397820633112931170389078551883156611553644275094097234567307637041019616693624765977238124474375898666505713631238470894812101483656613833143104991782385100691279015416338627146895174598797898386803566998626150382613983818018757750930775628049230660400321531933622991134325421335885343590392206591090762737636920592756731026586839969673203166605472681232553742496896826581820418652804311909113340673681655386371034833624523799891196362324823120885361115794016552666394677938536252219337232306250434579756609707050335379090313154119253544669793922587473713069540034989478383191656820339742228808659007523098714166435056586857914129511250487954312280174865050813415089876775108128450194583707114586004226355100179551721493788789853739996335294305192753789659191261441195498817398917831135077902678492522360788123349245286144891038213636804220408810759912442848645963393976025196547248066894227242639541310974454904771074720828698005196640357838252762681317786122645998215940384855239225364841943197436310424498585326774819276494389591893130711690148452818282277698177707489153152415089448371459479020453647684883806736941192461486394708687282067316162282183992273800837622971057144544162250927966167176013998635817637629621252696161863897516034116121062113890774485242326234071838800868098184630606214020013719369983813003200133762258638560025440639927552464516571988997830697393683415079217012028590370115639757272159748596939833751642183885279240736004756480978064871815711965517690699642597099219129673097267572893757499550063856725390999220851736863400497892455469245255636593607418688440004017276451188646593751331318407084268049053521391513518779549500921923354852267221374004290786926148184270220721913026434999104693600111885250325724059823767775387740689264774411280173769292043533687221903290745145242846105684007129321427278863301805730799552787779457428888925317517628472969577953644144141640250100667964293150242580638419353081346462651064721424614340778688906448184285520485354809967072756591022347781675490555726319917456937098099845427386806522401483102733993709797508487451668052142501076256887038774649699449698320416154082808169462978524718984813106112005366476687334953355825737160985866092441958940249646870316049067615696765623971489779378609070377026972334761239766342926524866761879820586489586043240070342208474004047756106096412397750721176434573692884699118203305226059342782908613483068896641555536698452422833122240430359309258433934921214532084237300635774024300879875088891668757109965064819922572224575210859998777363709305930674074207438757314190025581238747012179508069954314553328223866718542390983530164145794382034858822152715629363349451065120454029658360426586744577466883766548671411186904159613332703835244912587749886801486777413211861595263492068052188605751236528557982699724502106661253067221323537214455512275042436687866799967956983002120059612576895402887071582858988580682138398034614769012782120107939193901797170204341587421599820348896601499920053216995780681929856318790603778994386375962577673712143404164387770542137594576974228132275167837879706888669568191511063052538250668331784661908394498947883960657905653971563301966319036773693990809353668451675776125459236627132438932372896239831420554739875619561516980751858479917807720144984851138845358232258722015580587888647414211598787165382010555519810855197540720406423136262429761409670934161026590952429106481242830860978650773556985793501265197298216143009612150582069842435241801691128685143276143018519183902646921295224617877292746585668258517530135417627195743635588280555494164121609546849255290046623337945342807945098404601724086638394479450837014538939074534107865796757174736338768155442525929826094353705814371329814505023914565936276770013059551609159344240992883821808497238784914465201573300878192624760193195433259636977603351993237706991957178225666504691306716848847283776845242839210237745947023878333841546258865956508520264428676095603845066650961981764193739121410895616548317790297026591281980760245799292180697486625995604410218269906938825637736452087233051724185374463190436494708965065487499656097991825737360974659685176946535804993976798557138204793806539882684380405702202982079116222945513265527563223020614215578200782601454276489643724000164672000096080669839961553476741016910375835570500404225869040856282963590270091098286402357518242419933908261431212667357867583577571959157589068257133080603067573978454056097119399214316701440701737652180233853176274084768181760742259914189181038733288006863388329085828502625571294498836239927150406937628935126457447126579472504641741700348713509228852226875155342429954983875638167634450462757186831389810465046377361333062576096342955217710268138799216581717527041052523761537324325446838105668296922127543692139580913650653482367319744523014655673300362118956650594596874729776798869088957297775721631215130405269704082092542015271859546719430786633578669123489807154334822166099977563719726193252626148486937184069647944835323801821497121097766220877035553564275576493039198145422549863140471773929535288119034201452313847452178910473250458963655788653410373945369636376458304054531280241308840040524333256418006111559247851237391846130932292184787746543128665531769827772446210396428055825499355436294534522805188890723236135251604155452030705029062523806132717918744529224197083790963314443234154492988375045603460999552681118068009669381507187191897830581786707068478424811985014653792064308238716026182977827490870811379844200830955116698677974788511805907737893883228721644544314217009683110888323256166095872618847519210940788073934704200624389573593713368300649211282343814512135584704732571916358903357550015592796312958245387414567462267134289803315927092109605664409374167416988774931678188643629338156345738201602772306793185460768545770473537318042343585185624492159313319484342019080058227533532391767390693472337526435941739362483832967991728484330698971316327528874986113432170939854024593598297012035902448846254793017073320545296283010127553537863943868087497001572854984483809018973842149328807538905139208047022848314170622669129488556606748443327227070407878371800537074322251385406448179242081117946224746651423123745776821171456578448234906621946588368321708142986454745511113841884615514895434158986856121699179457874161138420839189122137170335397547976027466893355591759268773976595648491505640123150873425518138403962861152693131264027278088311321216772220590430365651119470381645872481868465375169844480967944581467043243472808461538827722363904656889609393680076688936635688719515679918057374827876932723317992324912205021938490400159545968232710658441817888220027145416284434785905751105703084635120602005596710888216770889198878905356126632043723525115657001952712056029722909273588519717223672288952423629501579673449272620326351595792527864300535218986276106966514844516335967447117757878957399409466381650580704555864920858738758038370201332201701503935982352143647218918381363273046835550975520423747679748669745118197689318815291940157303756560360305157762361253069802687580289718901020370186268604696436977446150093487025401643962485209781176515120019233154768513737682058152747497964029118716646923393058414952444338854043095300257728613675264883881213887110872464935668360224726986145696120990370927490099667522725755986917163543751950690822865952881402411485350459209112590529483477762515070038699517368948185748648475924980904762982087887375125090007136900936289168421044117556441059553950531054583647737679448551059504513486950352979524670794614742509632979614818041166137804303992834396712276347202467344625974012140786327609711730550337195416508343975976527465373676359128142655362683662171954322711961793999367253823063490164884218114024036223925547214279739857689356504809406352106228945463692771785030438556711297685347347914960250644093417757719615003632205241185673116666518913330662490153817292230308325265916925370206630064440980989972455215101605436844012040657762351019695279962167888215464572834508833346541862346906308333436559167496670627055002702697868793899747268955318215610201503955087603645348363590248400662902478059393101910080577029740956504399420177847916365823791562997125995220849138274986400877820126237447900333979220167100987910665917821296951120925763583657570657809561590149751731174292293658273044073592950639731484063063043667321523732019859901831028944178938032856975791237382389058674857280129250579210732261293063835487109371557564154541012959678211577949691759357058796253152411061731249591131602356380936222883704188417154144101580435188275493025239792653066836425880957221330154594241221968437118291964531354299144915577558237577013513093602048549353856226208100693761129216905044761104079929812684354751969558514570713069120451206049918302959877709534182000370450562920610091621324120974898775664876420692437253967427103484355426872798387761208668373501804666256052638978039087147718413990318141893785731414971439145215577688769506572737740106772779342000594348064782493957592536506506750707051345856601540377461532756188061375162555171051027124544561002893517546433570717134169204338833573801367233883461878071017534498565701248062125367904298430513430449420027837484847543917314320380518339877802430958664681361766206951474990991717381084843821072330366001683959705551131287051217565554290174851838501451884877769096014681737735917598059887175035543360900987299806897417860706451195208714855174176909510894816484942311274105886740347822555455758222127099681200850168825503082974619563077913843796928822549513217894314698141149382421789882138742031300923729216491917073377606278871493525132679698001291561576537694858211527360725340892930825379011812905470989036179117635246495632551127912071994209840587393854283134561923633058828262003506388674647703334908616710605310322309579242918506463846346619099636131788171887518487896692501828947874372219102416964583681890327225566074296628914996794544431104937348633164892155186231329960267255221172797485881416344120938457520534881704231127202218660736828036784557796813448864583704908140943421712086170691923107963271900998071091797990673009278390524418852079781706600855763147280615884839849393309413843026606421402710462534277933364600758631839177390830110788538300614676840971876512969736842522241295563912658141754520972837835893815997492242215688366746073187905337479862104309024309969415938148282336349216868590561491730925276172761164844553630585778470032827044424879267749920726163375974438144748818612054200020475514100820665237515660840139159032410136259096027399512995236955240218194189729173688217606554905267459580569861254274601967163420571648830245351222594131252102659559878723434751893329336392880259523656106670006812850235244235589286231901972971530286845253670847456647715086188023488588161409437494285676776520464604694321457187820271761561087267132520148310457367619111181278583361265791881866357489732782398758146426644434853574084349528136078665718666127351836412455336408728630834126072406639656624765676196932522472298101510791173018457039168721588705377893260294763105077779655283984743312850602941623287144347468923869065800272798405909361508797978284905855948720472509406751096667923078157898195302310843870748025376260679893796532671614262735195739052074643468554236453956635065231016269444605938139408568767707139558160502514700388916039704241058080882922958929726132999589595085029956592505415533024208937251798896407041762233541637602329327906568955769936861562772946932355434030060756302530967923868574910943267296060100558370218272570896342435210201181355408648104255627239799774846053996405815464310339229341999293439911967919715177313316689475700548897235504645846365756179026219359128715871846740448133184776992142535903719110653311854851740979994976321610875597112050036485397273281057878791593423386749999263062736130707618309631386247274938428960591468192293562214594714423986488275217145472830574469490277245014211056167379665954776290131553064596889893357049697882650577801866661362732006518393673768685973381925472009230158305858366769292874662978541838834676157839399370263526373516070094732392424088231669858746116672097471362069433027117626231985094888306421650676115220761944120560586152383943423577921501306409715766940060538343112600352919557628992393097582440657941144056668885931359734766613938670325481035418618453811835713559581586253242500634871214380949983056432417902119139976596885607230013543101608746564027975450232797053730228670207476712573891699072808516822155194428464139360136227654355395630268348538034034825528661703461311367196396480167644374418004590006445116721215498746194060196504193603812596382309155055613077943326008265512254088827518553927370211919022910522252915258168232419795978059820454273237858466174700302773956891085177275547489852243004665973594392121297914284869204268556993589817268850682027339370250058308235867074331914748616277246314870495552124793017060242448070085534285776200839192708817805563484722183593194213416052159326448387635841320716153552656624204171609891295466017681463600099789803349764708527455075913495943383202091775139678542559749620899535961612420405272837243239834197840977658473883549031203725354348797073939055318433555957574579322146547971665045852310284394095545175821697375189148635238779656345355627420278263963044213186823020674701325318540013044804175633095751047968391739470361299126901423121650936669967475749369746750544189628363673856817602567696291958524175721976973479499479164080359639511048874208462509335362895059666073344344174890753741958690784423608996025606708062922666072104979218824545352629137002956111915175825312428139742166111924774973571898196308036874244076929151502246982826069288473581232206840999116813346932005367449570943829011385738983607687963412035438922739493163821886249574439859367183442946349444770664020397114314356743198295904531550228484092886061526965502963980274133371137292288916271623236389462017112123315922815117054887852978420481421849504948426405412078167817684820401872006613979489433952538439635110083396892376039802134764072397530653950349858970767049426479757900656580239134939343169280235680449536303565476228291596125386039133836006320222852540617816009952121481478198032366874870229887824378359803503885172662199050384749540572250929134015096947580201622432715530037646314053847601797646111983466910519732254392622059402035792394662413735451270047372989224607181921230512762519414575980331826121961953297715180975998772219147130791438118687445671690232542393505664245928942542414110537841037587156273472433411968543988132763735924280804911119062397897133841858575163024282215803443904674142285459610694373074329374482975073595178317091510410918451128546811774597708468130460392899286921023761383968702200121601387644330386619348129804188092598207872238508823896702732524534531656428762311276292757810497026574431524641926876163310778430375085118228241511798042867019492734486564453772401356217221854680322132593453554457839597134012584576615738678099267865581709546196317729657255369453382232449600622814666799652390758947449662936514393897243116840326680606635158889820884830658763929054401797577441144018394245822265459562932722426195728358515770288062311638260739454516404529064897050578697882222031345800689622305576128957248171080115982126927347882332091122956575525152085348509380265485283154431158520951612355301279924451495307010236151128870032274645630233758575012794081233092299372374986700116600925299691498267409573621168343367948121923559121774291272127077691109575844509938211071941956096730756102233384121014613751287935915502765414850981335724902510391791815758018399394600712137176024619731439788303043931864855966174851374881772914879410152167561563724145363389879551520758039001844082099802811099434557798778072158905798746480284045527170629517339615293316872179437413423006794357356508413522582878545292858481809979386891829723255954727204871696991738208668218476126115975221776608010316992597676515533056708552148464175575449004208397358154921928009162862008909537624643009527344524148956106113243351451795626171151807199831857284889388538319759035319557453968397425517049980863079414292681119227951360069297352833065823466677672623082952155808754258605131641055495302840509692648433665455876228129672270538122926905041776517551309259430253908407999265363145771059251607600271933769432347127031333011254609766823962494816076209861643425833015988485729231463594280390238741904925755668083054257542437710414601872325313146431878121339686185471748702941733522812916377156869222842133874981327534778461006047520640567769734190198524465717721852944551819583649325431323449185886676805411205414095120915275462841480622232980267583779710708646723125287155062887661971768496443877496436876917771284926298764514820491829501638539720781313951587769118655810809704545579620620415165068216785457106526907292119410005144157465478834812480307568322731313942173024396418312855391274059718885280032393244136095392914536410698615491816033024803041484949842683637640410550862443319179882768224875515819956714913072063772623189942308416978094943521742764613904996870879119861552038625165109032327469129847817077957413049656251355875592581088504957624243326443015787024852860012446654572951290058424117449320352108070090720937895423181662426394848649048972227490792502089523709867928129977599413278361800854816824835972407460701953922856846489077586103466279857847144211721261600121017263211646475208782474449117701594826202516860641490973006060693433135021945540582492200238149031183695082749448613211668722428068886128626228756532975358533935341984966613420339093931191940638721364638915046323974405472931176579288740520102920597246497239696172396650826396289932749732009265157486650552388822941962674307575000059492575731814477030426051351514003366394926111139140417431918470473048609239950674080239916831283966753208905581578248936819430577602236241370469042559344004995192043145305363381055422479885635120910727918418430772738276378834121076302979037071524093458241128228283577801332636425208790595779638168303284174902010945565757664681281417231208991103535593403720101508534233224644635265255397994120724915696390930483556154209713822714115375563338364170468338736722668312466312572514699503055169559064010222531738212413796828311887093289345766296819751253018977155144078167913189980753783776975708089776775988037315573017848569065948692244174411703013450903307568363203826843619830149823778777569794478312643597603120547432915678400768232731808001452683040161322168095810287105736746847111070737889636736729113022909952325456165777452508848504839970847840915083829243205781952531313098259383509900080024568156248973115071310550137267448409748418165724938335294331012535029736664183407709221653099622922105291539957888795584101821466315604797672630092489933654377851899698220369479387565787628944051562508150277903966227459653330354975874078087683765193127471751054301923470873484029111783424710444449297491135845577532430071928903951696999357346503966444548595893568124474375868837820172341387665966933418322793978305445174938536529650954130430639895206268430879795603333262312825713947446211605724651934177475415194588126284514798844620415884024525854802443417988466838907733466117179535892384460356976196925964591915752243334700484536418270351326895231492158140225981833222904449618343581178097127510787356625510210489701172252703004116071880601257273691063042177699065651325880709660788509695870891772120789220025243621697489761943326814395935356749823568667154657386115942074982610147342242808413368082830380282515320638202363132628794425821815432882975344714752024479265275444369271446190396173508110957993062432647935393310377303767804235703492998055924453695048183776385018166043989732163651876734528793706942500041826357152774536169602349900884664942615789397888318976420937068735869774236293111012648117061341580953559930618706402488207529201792865890543921307831421523555473510364265899462672666918514322484805097031252492384109422374935751980180947230300516716290672617201282252100835488074302010121370697052240003115875929924142715236427673312297265535718330409285431938785361142755631634173490376765541540385625847849826731375890171511148410143486044244233789212945772165959038167694632922017121422777432331653981636232430291842424798617037139116351942262501693388034696677281656337472841978357043358113824801551009594132662257297181633100468562944221420182058944605383191945974718383249080203668463126326289622261853090162964554307555894600152052656939882384577935668678864497077028553327632507647790914862107884290244969411591482112344758414338145312038445765895198895792294278929129803933597491263924147521222009817646396399585313254414692809370729658698131851324629465404766897770609282895844420512186835643905616951437437743419390674176835058384945015642965176684973642015012339796156664034419320892453481279486330567170708246417276980811488226509181373446383859912403040216675284178711626889145239607401122951859657615944698454683241048880689015394613038048406599098698312463907389072535686947822046435140177229259363630977211787560850266680288542398200051417869446041479945322286927528929759417112709954724358321326651495165275050647423061711976502065208451071900592156876716599236784935478261920039590737545569832123764300926958285383020488056210030804240419442742271641315868294408119358784981641537885872156366941361569166207542134774085215312295639858183477507771919419377714746646074559901345791826785337826095039190219553585322926502486850419336249546233122409022123750051050999841158718891016046109255783017359912772656346525552663854757041218163659447231220662768451337437615355798746973473557033658263338409518100630518086386984284274325877384704174182766292732296393739274501628742240308165448038822346189581069640964499245683305786728959034453491288763966308597007771897528491234808927042936549543178058891027088179083937331087532904558947389565212001879006936358598668419731111059462381547144151949855738632183575583407828859709903122653809635839563216715836536193868857684241596929659056877014109115242865789533159502817863775031932608175776465864277945102340241574088792235168970468190209914493985632472203047708463755133582567562392047633737760482867654961469248827034589135896496017447746001825658901912136872425887649536090049441532854958269454213809053659922423457035271530445792029993355487342055881366358316553928944249428440178317071136608161021841442298981738167381593300338024514029188892301392832092159145487217799008734345227777658832576472942127279451282777496214116822065368646748915975267935886745829040731949122181041257290060362316824283077479781916208291794206971812819745943119097097818140515969437716945718715285062490990528627182544771790242143310168393808165920438276278488019196732944447743293921193816988805691808175126708988310846185264997365473487074313317047993676153520227272439391403161742172119396991614754769919596547638184904693777301543320469568171791996019268526347245708170628894207952327483093138167710855942995893556425110987178026413190625978516000937246996809978805126176387920586337871614181492575851166476473266719868398017785074736980025221693877370301576336082513181382622148633330304239041777383950023381409180639417838834077504812050943141901241026013898180807778479899621967497163123159425498164541503483309350722215359150013501754592188932159015844577297091102704784378968847866707175461546637512082730965799537142199563484330193691409234420280587512331634465286108720127133825359844843250355179227189551541181508655937595106290830789365018324516909849811000714834559985689964529467539207892921535937072326135129458505384399387171160204328732109770131365315341538740945952907827497301694888074482195810277233007557218461971030239530942674809115215796630784489414964410636253072003599193120571250574975152400565603867822178587857989290104781603951005841487700491401467476333870127390925826960878994960501558367339289848426326128620145723928423672333434511036708768870195598714156403751827037984482535751894416952345915895340144726528596311305037289199432712312612493020328902812729191853577388108242827621636393052941040815430389761628759919543331900590330889313532701084400570644194543748359723764410579403514999994482762196666584228326259663942589248918901961698443797338205143174892705702492577427975262330439056104727278819999977314209846596429835150420342065668681470735029870700144543416807409795581267928374063332990676218087391167010693107920590746693917723309871246440552319241282827081224660953896002648363725320172335856294263580654037207480362463622706468563752700976062826588629735936131372220510953411933888320444451327828800570784320576281346265933058510705243535894065971354969517461091481003986229087797270926709906116768182389575321546217254137066707837068967295770707809536928230657348593292641948254446583923515618118700723289378037243143414204809244400181119878254413601404627495408199436317571771880287250863987170153088205767586178289622876751621226282130192630121116072079245490713769426386331810654032348568431452742923428144269353225936294286105829110006612430805415435611290876603607877174472891426857638905959657059106178983304062071263138075240119184909577770046820972770229725364154519015532948669747330220734734889050025214413929306476392357915085771863468196850596370999772455890489744113542867473896483290833283945990181489159307775888389670689460139021150487000468792379016919828966106197698097481901715127080327199394539767127836144496613570628152459883452071273815558187415674603024502888082194238236338023102686547226011484484333884698307385053142353493227828626048270501701337052701470404770717432662107326372324624423980849467081306209320787487115216714820214972840615074643925841341788915588810893269672724151551485141832761654826273429121875955865158720963601150657311165677523975556824964312959961353084878245293016123656687847811511630548415551469902373468994451938152797722014323365438324963523603780643461829363772882172047695515765693622067774646638572419069805105684321798052809235090754719834677261938659125384168420188245074637622476032830525692660073098885316928119307053191381913045646065450895589777021537399370725918124857568993749081770128825494187598476140239273034716163806864845857580438005270718286876689462247326368288915647069100856464767075777848167171092301472470368284839746302950271153868249447112417384109550368874584196726417575266881233460688574650989259956355914867135566319754078519268732731603009642055488102009439873562451169649999941203955476346316268669311272120554208566123814767850957112393361917866138772409671111638495845895768695211620026672244661306360853789445046739260451725290732721248774303874215394308712854594634126541299185140319027891791386569511471296136088680236657304024731675230300094794721682015866226451104799704406744331777366344337565498381055542167613729593929906451482061526796375511581588881383641753496821933254270280793072502388396984762335083082421298595219726135828729484259292672413548569534785499663793828511443008794735799126569426103139920515762969569137901836014345482153813624345492581368835665603247686784344253594412824370725910506365804605010120023024379290051133487903694181945122738319571833222831505723155577142123694531814160849628638072823626985185834764659162558712647739868432513343307530903419873050599334079729440052982079947493598183015430201583449300508140423828469941919543175892121126882244654673451726852058799894050866374677568081526143516164840569080789448859788340519255800857676118593580955363046823560904718151353017558612943703298550575502134152000355206538065896819485307114784739369553033680943063787969268094716742448211771910698660783983740353680641804158608756026160898499669716051011969824019326234235141758009100251474205017438595954160480018652179229060150837382749447958871474519534748817680562961956315385826553215695556679739228693822301879331624684805978332169739143581804714115853728346854253934152459506722100056554319624633060269079488426136720756080709327131148307041789678613858459601652388421140958082061640698984146961362426237991685619882858997587506906757895767601822534548728449910220071158410877937608715073379865144431114575323005947896220612822969151821329809669585577992233375424018509816298119842150848898308568831726253442699368988239530544009790735320401206652605940591378319849951341744249193655936617814766485298060606350478801662603006448178654632785603854574210574117905196317822171644000590883186080896145984111941420406130299108154645683441515457898126241060964059907080772581229392766360752830836904017472468019630597498615575787868188928547469343071242200321903529356692844405922383736536095985478699300614790110512215739539996461459260620203746837386054544493160539049848232280021638052603079654175516963357537685961043543645599891068280276901170989605235357697080979712247427092903741172480806709498469904599618864646940509885762509819642580809149976379801064392730911735829262399439020399593795088787836223892348822974837722166533234559793932136693386064283809750872466768362865596381012743973463700344953516759031705514412359819368075197816926148514435415846194772093481508709769604992066221924336705320065107445708257780933129858268644612140726935839412700970568226399647489948721898109179676143002590279641739978192250565517303052690083069203076179636149837098468748346992425469990590730188583761559036267090606103786504034450220661348451011329557873405013329602427171693221381344517282696465933122250239772362226739052670410180690800414539648344009022021459684855845692130634879292714673735320778229870702946994635198372838278695493453590271507896092164976753067201511398612174653149054874163735307729916302056646933325627941379518210942644021780185920230702141112584742692665510088627481890921817435295880792979457501328086995160078136666503985917403526428212255019355008004064828795839197605127846892893929378653134935348584208169758235398857879133960379193358435329089269126176541871510171591806003900221100506492273096807914235506233787797624232772771025214238882511126936016797992501975358705905219763972701235442029998400221735029188681362152236797797198807136099599348881545138955260406215904210065431540270831627213449301344511510761100499583394184587604277230512018203028265987053402155893933510544106336422440342478880434508587659558662583777114519996545947056400103997605583810096954362809936809438663686730954236148962710642287329491383467439061265180182182521455535565417485389105567730877124169105086392504228064804326100961670545143690911942922981134321200252373889411118184479666304280789370436028714179333373240580321574976278587278749174923697880099037548606363052005278259064863253057756544243992399299664404816490995182498323135815873325732472109850800802358789903224697521156187562992589161762181229701455805010836632871024840468760915596507621199580679025341726095984884701169820910512961189400664924787228526819540005817679945939571803297383820714622778165515125359020587791665767799817420946866222455001355551998601719807968539979594431966568939058381753699417478359596435845846153533044216084214141506248147994102156952226745884908244107094328299576968078801137687470191854170325162141577811740980065645321148899227794275613561833414322072458859118030409496327902920339989059841336710113809679562895709463230032254132977629945361189046952611245889850192257549748776993276021242909211673715814930255770475387017262428734621357618766776833765989609328650159142942431443085819590767742896832892703453386212846250782744244077169833926183005916374949376931368030812281886497556397300417757085759336343406405347152370438681707814313723796306605263213382782319559928010654858026910499901707814697774568548418284866113814077740033584397372312475954063694236704266584186384264249291712146227636900764458886328592055790170743978495650448602521614223681388806851094769658792421370634011584064332171389891736696877022063104887618198804940078688923427454048009387413913299950744503607469397567382780407313856780868984635879380337092650704438464209907618275927540112160991705581318736924841455894496864767365602499028277783652213348691095078209406208753081163492548167019554242270183010547148667970532503867612986727599189642322364317832835670548264144104859508517668786066923318886930661927559723586297888945714537637944653580702751973189864155281505674262171178362514693743230908391536819061028524227864537020394149707926159664530397822552438059874893897821369184186335563445067605131045907555343621109082304552243132975239567732100358885721657352101178776564238224777218311266233413521277999924027778869835013745005118529642497450739407539376078728751207550739004871619612706676361709918976733827738755992290448250412636226833201108763166767328578157050943067008211354113022996514932596521491717341584251763981019790249844256350219957987793334876115983342789187409941245814256833515552034618998281630307379596243788786055377706843868744782695356673605091103868595993993853821796204142537374117588945110441593146550507194320704011603428686648470938637139239394730603672752488918996684792282396471119522888973596611026386701639466453614071150940143005416541218762150751333291501216893974050830869741032951010875637474655641768864995251202140560121789101638284779333057140767750262341220130048518999133724839972064746341130169656989140602979070924783492972840661591543327967318842474468833230833747130906571665451252017905619330771183872194830235780430236916082366045464910312744122500730451747737096041388749967590242682795189984760616417857593684726038719021756560435679058152698261227664549280168578343023138101680689221945542395080482131890549334561849837286137334319259054842647358442969806124539644572481104594155096299060899238060297560868482846002717822963855413108576462430864079648007085824243460423183229296064161219707658462461297211283998604371490777517368691301518002022661836104571065511636262866657948267641230577435046763227702069309691360681491485445134153392398892560124123052603250606937798996336991769034886739070207798518565677316669584141810953689868838242447409392663517783947495094183823091606321232863648331997012596359538422495181625437320465917099614003218879571230858807785381252616270730419037554393683779247074077823134942287396770047324413791534403159289401585906326692522454574678883050872727742851718484017840144415743896922707307265682301902761178132886915692831631283330101663624997350286656174497485012092172898730088293282842179518498844002012603889934373827765635875786853852885224880970194308305134221673990704808809819122798899469321438696564060941514990234145485669335532727914063204049428006075609635262784554015703983898669872077354149818483677635999068158152673400846816573581424064892310058113436366942154960687034749286107073359746285988937093027837840584951713025677895782512962125082508188543683312653895771123170705204205855604946130734628436338953434380079415705338039660577326937385952467787554096934421096349487204418202511011481965534875722220997205991575587154834149727874740706867325542889011542460013942697065679599970830177575681979323630397276509384868823729566199572196145879307519560052034886855951627834532064385934360846970682754321759482207038213030938369845217593157437871109326455029790853453574893070647498575887422779558503940326798758837222001664358716847503050738807358635873104517403028888164016447762823125402821748210172694677872252577195836258157704381967938421544970802866457300441310144170006966601096903816507018178960396442761890826862020440723690144426753493207315132940120979991410161299568015196828324123153302293717738334782044751753665165453228988589331729337236381660227438179077279524723007791012690215552237343828926490256971282923216043405795296890141090013128928070588867220366515353525068209852517477888439974280031703362235303299534080674888942279281752387457586884975526593180184725610159201846190282670380758750542074534020173739588768822197185885045545946444491101090774144342591330631561016396443695756083269039221707261860169994798438960963365904446527404137816272801839188810911044719520478594626876550839297520906375008402894096691495970593565624140175376299019249977171588432189139348192391613300294443909933848920819773896188822267677910948354865406827482151388779240219829754605903126192917411566518285277727401908610174436152538569741389310059996339521226048877564005981548945152753862899061289500604067524177861067346605138980851618879709633089750302593316403749244026993957721125225942612277364057920211153646366643277315456951601244071089578733465697017832780475929062760266509266788811092943014894971838486788515061813119498444076714653970312541087450048428943968203491274399880378347429551889719667834118159408396691925996244513157939496878102201338931398574510147144933869876687791512518798814571867706798755076305005858123872795674666975866419786057770582614672642466605093278114924804870588601580717493715079658767929764557069268238763577065868760733868595178905869898153432408884177170823952059094818492114133652579890911955005081816676473520797298658673573579008012948937722056591276800164366689882210629062911098632540120340613879083416038644013243810483260599710954380783367059241273652204429236808544431591734307108356706356355772654003914275793266693839712022154272286888318448984075142084273591896648795755257897078677794034538574750133914076514681913019448701113841015265830531932767617666800655619508287960733411972950134571404585238376790304208109833485645542490270302160245350297359052978104176625566096767356986535308882817665511069831345264231217238895176626191770956412009511458137321972381574068979194037625453497892682573259898863722924030427905620623303584913610552670996343739623984094694462364601570969567514966908101897022437173092130527585597170839224979282721875763132815279754416611590260604204353683817778309526146007166368649761449233149692250907339792552493508862425995333527462005264880789431063458507990179166682938640023528851791146434746923889628308072528482097321008300459123077413592429857861065603027350878406906926120643652154309744961658907441367064522639675125057925824831710609265616974947028594350193680302645673207354082540268394964300570712615720840160367031308395944230289486946717409349162621295986868248457289505455172779311872199063929712493936078796817401323036072718030228670871669654725586936907506967772953865720250463553089302374579928003611916612214770152571791630035651341630564991797872782703516766018957466332320375204733200343860210202920875016316287091345592889293810412054246954662792221232203414641686596547784764272666216465833178296712681739989050705002029296843403096724291378318095406723201718959861698665777581405494291797625887072761105576593510437299372146782057769651616250312497264533451549259972976183918008082643659225796820779047847447293326512492108216334678334797714447267062839819786077381174388767919832573308150758873303407516587648016467057302566433127941499877313642473135802235667465069599560805983366745010922942431475311637894302898528267662546149859999121188903312476687813106381720670829405742863999431330433597948893633460026641573130624702612982652395446624708490493806622037790369172463776635804750006994474850269926729599623393605696795586002508698725802754871933049207256965354782760014820733883405722785023623547485645802648302723663090095948403098516309181300602334007815276210422762521475376798721609116471437356414829647628541672676247616417541180518647313286228156343946047654909691684565451576047078887731622964437311052060588174717558205761888572333912221837957414735529969867718338635035463145677726204539897652249153001980575130993812404512340553205515212655513411633326075903580548230608343258524826617792491290938901499504742203973307196845625557151920536086985036695063787220224045940898881027719294117488167147907037309492528734827763539571959942319795345492759744444780254652369912359426479153971480882881804510224479820364861732133038455409988544247598968582399139813474466852486167246689748637610735719417900008839354111651345979579381069561134155344163696541864050361696868924924696334002597145556689066674920319483101733082888419420566866075184312534331829343134531417094566303124679674529928922890166139711100543081633596011263924612937516082361654167440040996084255827715703268864026706953510369830828305737272888416407862493760264420920118220496886002287677166779758504851115348520403415322168751912845838739865885658349446659932020720676689439934831427324585074079209557778718888963558635979560754404132550496364917583963391547540073341556085896405891435922126612678816230308286881497291969913264491725400672873953502225300829807127791488242380203040061531552397314961083124730449518215988339393691432343498302941642139214115448495209807445058581182612274790042602513637915316014860470411776863715026902176208733826974613155675551572730233360489790251286688209316579307497103730868824356623104748658015154962929482512105809185811367466750500160165908605450554101662249887324495701727861400826419115786696576499088520281012902907394678113898798072916362942061602255791541794998955230821844616230067012077392579296684777107519501549067993206479630225031324968424836263065801394132326833124888307927147473784245420630652418144675546850261393083413632752224979798026922084036542889890119428661241015882730641507881883267107889957084159495303809196044512331158674506289604880467662714468982698322187888618326625800075482419068978129946081087984167410901676034007659434836699345136251362728694174890464632935527172076066379901551191541789742312233383434754452646889691333742422527310288610299241852679924201231065273367794039952238078970281214366492935793087986144779657779698806424845081844178381419395240936602505531776883214924224637909658359996083843022964534140872750793213849667333670216636739929896980335923221924222685754627754757994699373653801778894906752057626404773547294666659809724146403857759685404639301229785987891925501381556339839723110805033677626627321089916698471340727905279648917659366298636958393504532351477421552966141213599299094427044097446488901152468962293776609814972305444906938773206888266105363620223508248524405323115946946249457677543013482546383853744500947662999183164520847937383728350637644287794155123221192384536429692021673003875909392982549289358322664416065570391007110277223050150365248941185553823086875133426851290692690020724394945618889559337291877152618182013462428881650111600420702182364127345607058043343684286664389450799187600899019025072252393629857865229683082860794171437786450865238994458735012114990403945979142693031024480635454514514668444112455166190183207801678319463376363287544576954939297152650205632079239986039216362433138418234062093721115407089735370206806777888517148330122853575787652359763926452576569138669858889278981568757619997176508365946165796129867980374964037541514528410635065765928535823017180392229413414060451460136996722892387308544416710686790685925070069986434455695930239630679658925019493839749956490543712231245952173174730836168305842701832761514821888114321087075037481029049468529007680540738172713712854149026273024260462005533903902095857571061373587806075862822946833928637107870452200655165379303346879023953334721083934871434174599696817630607748217236931342156734237968647825293021910880929696043674124475974267660145311683213436666475675592721890837021273607370347812994296510321538491135161093381981447196505238326952173326771287224090634542231102168677962038807461181341579446081720250824639607012401028895402310833964571540565050183543270698591328184743492880600937025960106230539084110728814716031865782643948061401733988517708175705668851904752960770873521846794780709968282963955646282703580508486519967003642662947048741979492360936905952701247584091494585909165977746689906107841484547699717467042485131451872713913866369858606366485064296502742180615395097464535088729872650628101143636863644686981677467028357606573745789009687178607961365744497916448000812439001918118251260282206000126291995544691709310992735333908974059720984061060761535744515482050573695212859556028568741660901349749205485375092939471219536541990197520597916660303790230999318606918034854702045585588115370218876547319211442502968461771734974575318301357969960532284374082589495688372878618179695729251828141058064066935305756078611906831035538385433223666213632744124217830757149919265975097845017042098244820929745802250461594771290498758637901458800537246293965006392915175635300740997152525747401489893872572914921690519634357192738071772969262577878397634758416644855702236992441400853970523665839245930233227257964863994308588503404107895837433235898425685190375345408059513394454458887034828120898745508655439812297178530620194572511659364760792874256859036810307919252759655210193433184341017208744981090088762407956445667208531466231362363112902431891248414319675593857540022689083904874845244439907500871521507003073919084195047460067400826178408308806270815257528849945655841432591842648577028959582110967592562129548789509241507600645980933464803894951187414297039945886620713079149975701326488373380962335875817665323815375508325245879543561402538468577119332979695375572442831064298151712589273697553829396751288235029088613563923019063257802853370549930046469123840892811027112298456813872468292911869763682438865329825524407411506949463405798939073551280680757580402273560118822000893076352176811035095560946087786202394400260677674179947707045653453087269015247599082475154992228256446301183535529740743231720139023414139490040473517995921753483975623104277522854106409613338612364228787077178594526940259831551228510512170909304130136508659408541228581600554785127011717946101277614904143122882902744503405116509397813053944721622263970238881968237457312025811701723984640040548225566106329171308568555916105743346881008348560876458577475282839339356453166626203554415002635161116458467152674498275055360904215409380260107722747343425579972900683191696336465175085146499128997214399229240540911533893540079284073087174792416270525484248087523930582686688417299638487122824848458122603362934222076931222904000863025124257750257678640652109921363074479704467445648091201037603018500038261270266797271403766081659527810125519516831603492108531448687497479998800573972679975321531294647221483403194396910405362467536175757811034693007426827357859834775392980392116222635321807122230935412188333023883026003554269462937161914827156228445646605087625304659824384382752001328872981955985893225976601813626195455934455294595283573173249237654746910159968835798496066203363744692732587486940894170352215343384984760564541627893209429468968683817708501002436829645725044661023599423995042974446620004125583676122929437758293827402777699471743195570139913160104703122762442472583904862824361518116949904015815294484666266090275039753904668698413009821618095086719517473823620921062019439767382698189059434722678986796475748400108262291019228562554661384161652570490335421724290364954065577065654869333361338391614776814754553520544362105614277803890597548860394127691865373845746182165532677856431615777512598762193941960793594481774465153403028823819698510431155984592352305453539668780655370349959708486770737424502600339167304063276191339623929472820756522462503613853135011938480604317512332254989528668320067403095724218585748556710873846523971796913239905386201024534243327815464290626467028210892798007070211281483369108102084290459832327717906635140143634936417681770852618513411519261057434675851866524952311322351700384079764611120211037032879447953980968929359680851166406997948152323868794081677013846514229760224713183578822991226757927021732348809705966644287195063283934821432534161384093425678761726595656997830993672175385891749738280114523610805942929645690286682554659112354691482599915333301157296990459010854482703807512981453218724602408658622291794880647052250524923706354611167402246892635991879476314533259747983993286503274250863373239883358800564784963079751026837634786159459049924215278150279350215894769647911318906176230748130504033907278202837748641926813528117847521152800946024395007593300639795266599071325768037860300422233941152086674958259866531092025908679849525095692930367472190266878068064980969769103098654095564563197712613357920606188893775179406180170167342408175517710939369410521197292838720438030811208646306205112115042484537557509843746603366456143620297159905606360704553382848400507239034995342718297715273025871477820679961891548052540369333665033180054715219290056619051926446397915733985652880598170389805969281122234660399748313957508125510041085653607294829073749598295731841839427055481041450956648930922309715099360388919413413491641886015075930159321360878788766873598147010718505807403596785005108788715765013817904079492370007238743740557676398946337792331770792798838988380148539210840382813006160327570072989729630398628278902937959763132224519484466917250266235511047831013423226821700301959905396825133127873203780953487129365493109797174311395188520041461482958342762158012347257034577545042760540960821547199353798627287575156051730217988256549013047779228836013488332742351369459681943660065437935513523351282658465885704567388272815123023008826031711857508670370761123759026186588462957716327294138468466577273539395433357123119627156368198724964889867424604517590449637074073220180107735110958000657885651755067588583884846622151151746601424491002583641654074023980272462468701105858045588424573914516754447398638216871135885387310195704229421986435782270248326022712490536056908365210529066899087965621289920571168292751802710462327739434094085170817869378445582382504328604627708495526578152507974045921368784161296313770031504727883926102495698379949051097401351719481117825406051096563680033464802058762330855933450422171800654679929301150857145959513578212703063971064798849226284889240871771473450969235187605970288775275687270870249504428361415640767326068611839090993424498562747684655268132319173193636837181267126219529309491845490012398101851752166903553874676251773234777949010160547147235080265881407288667282636396604604540378203632825902742789717365826478246734492253856417477233537055564543698710973665295443760310113567149103595205306197627000190929562800884247262997315913220562777127667662150868733569376031239187234993673629465646619519472280876932489298306178148278383243822627296501957109237932426304555675125906230902138489849430517706171724372245417058808043790407973469585062352900762876786798966897947748545097643189819100890800653246545500924733373076244811915482531673270159959877932635553883309367961669999925532133090221292147495942750529745500175348759580940914923297804896209904670395754294606792395830257533530750204862606465465188774694869887191119500733787584400842766360376517803806431092762840920914954312658888301236075755831372341211002683980355294927916670403299264673158695333144631614048016438636331953638315174118857206615315708223375989387521294179955049816969498625265736904833423185742283819716143593908541650082358750417585511138555170846689776200591799156769972991553175930332249463945942538519620418337238462179131029476937965976104681887205666720029356150902363093107444029214922636764010441672144585440623105510202385975541626117291860838519947457304845050092760509290650341569158965906558436162648716476418821366327837066133389186648523716555426288126172920337642890664983820640641911185661176682240259505706482426132048528630079075239061797230483456936953230538843322015603328329744593300335040925885431708940525998006877160661181270338089544581539685387943287698976218371041336484478331041437197237587571228107532842503086708749355786540110803039100242116178530086386020235700449483124380327654336169588382091328243897860281268479499870080801885451048307697760278759241591295917344872245854287698962005694799069370625953541090467416304280161999073049082292904374489090506520809059532865276220779848010832259709610600470200924066792668849978471711791181216896764057162924172887303368232442989394390082750066137819552385735029103686782988427870757280493176995257759944342572767917172002635213533765736666123905014254794132033855108883872841780422910628537299626544508229920143761697156981705966817772597761944023805362467779173357528115631564081988978394439608268899723909094199050514006632038199402454228038500011605537065775487695722861333035061298934243389111669867564275664901977112492219890118923642791728684193251023292906938031408417290294141341979109991490314190739618609985273045698663544064389272297563107641091760785790775439991466435917881303022236812992873769109353304214609796500756357001666458517571819734579894426667860330269223171466138332407491412430446699212533106629566186357626120790273845582963157661413078530790313776179229697831784873200657610385482981801214344241592872066390364942214697370966420250449943055146275554515300953040289128603580231125131583975475231708517197992521409023863717587874973799409867111553213513041103267625859802602269152185679771020829277464232893371084097382483962942238457672117263013575250565059378228337660006475821875621595733083566739366204110806723599188776602323587152856052416231661272592074216800704396345135049611580471788389446834679524552211142929607981870738331383444130030832015819728876590562884054570915707826760338514593599102103759178093320164108766016891966926622125770603774076470414786840445318127040629007527369213625331071363067319374090834584279821212376862096151025817584501190102014787401479706766264486832727992409650517704185266152286000171238124617683181998050293467086523182288172099638075859995339031317436610492246143090926124527253356749128224437978592905517663339123088501004726386607990483445120750508240249779424321398801894296140645050492634984873792965168731834175910569890395696595645283574353414365824989813796282098510774546806801761930674407515192025313480160708186188273433218510559467091832491702362010930722577682342940218745855627177714508659504474495204431827683195026902240228194684401452871379452654250677354839654574062571157010498576142502884999523568868301887837108868394915094455003054774346597829141280051121255001084021487127746214123185989943454790080932029471478482053436199722012226917742213548225969383792796198338759684326732010125355532261144311536922409901134875405154864224490545132022210763005388367613871815822743445723902384092322307552744424689648929535637932492741835964316272160712934570744824905586560539350380859438939143509827746893155506835660560847445498636321548014730028275763441185707692732138030642021716638806365627555647077417555510611081437001607743794692391805295646372394741129803171513727502380740017962157009695121487258560002755436546414115507464200655930568897559913859797216639732180795150961123616795585055310104127951704747439814723053710331504145841770038444364345339531846024506152786241119629692051509195335088154186888431767515094236107567906100325396597224007968341419696885823244812131950856010585185543752679224342658239602829907148274315478144040357943701105698803446780061117853933853316206833361663430880134909298734981295893296843564627162258134798682566025746517033812674995405796013410329683030336703331405448175714508114763999000959745021057745744993831042434912850422559773185092422234367477592281707720886136716111550975912911894169407893466370522193971098143983094425728311093104603365545235979258155968849478680591679746304038195220121874593058647952794925127535851339228453024047522698759247851202348743000281176790688393899088829849590492042329352882411675588330643408475324872101761441071245331528986454616252734118666060106226707642988199198094183642830744296102915976316723732579203989256766208024387042101052737351887368544672178462512052657889477931645917165882015469886818293727088723383190050150153049846886641627187206369362169973371445079369531543772732894647713903481317467211934959939630119509909426440673109660154543704150398986411702003137498906773323905611052857809943300658256664846856189552601895723330454894748886224928559371331719224433564166595066720556020977501915080889810844800711426280219427052953039674129249653851322284532303339640369271777578681771285568295257001157790289908043642270317011469240511378652044417077649430600664574707847862404518512489692759689478938949143144465075153367609743197605979731752771869445084618717523340681780745023376712662609490857602327126859631693353586979670901025718436295392255750406627426736505937247024948261776175448913981227964385185498337877339621437164286692523699062225499792819479312270318162038093659785378004264679667297346260606365137921425661220331217873812271478848008791529870502180743814064524341965435580690305540838293638145967154126310004202335457920062208917399130442709598430448960727770266812991222842197898323277957582850293384966244226640699840913666375124429511215207815057136251471817451661992607894326836854318766580503425611230011603442737701749699936954988370625688079748187676358258440768667101396872436480094201265717721657652910134909704717976516530173438174436664115550991923568333536345617622880185739071194250595581825345748165147182302982864502755935349261599067885808550816788840024896769136409367807062945327970574988607810949484161474293612852151401406358820559274373013968451002681361292790363355492609992066627898415526435205794797027687458967268177546345457883008474164470846026283458005579467609988255365980473208788367183924271934527299905226138960950389348422719703317062171624489922111168510109411866155569863229101479372218661755606452491330277821409217117651654683496771615453044607281811920626794020331967126559470358970550573289624549889895110598026169657371995806737420188118307739744710708776563840558096010122090617917908403598801845424834874124555566368788605686938486832551715505610529553688903885642761693941511194315434149730784131744634905995379894384414861777172860586712105744133566140525703305013102750703577361909822965954564888775851171579547318646713426714308018976884826485106899492595495607073678065769058134677908947195415305927196257352614833439571759846755085291561598588612234697782217683939380514377865768587101851616371693377528441270667159691906962780752214768359333315548635073731341387312606629730589822334630870560256367240117289812849383109011410694753364279589695935563459265222678621811585592614626556226637115523827536870571745625661419059163302365287658562607771073465701862313825841834328068612489428189449098775640268955229505481506017608118612101701999798619597464304579947029286496105264100627474210082269663150928556783383990324217293471665319807198287114391118248334091905505859808714407385298974737759407156417722563100821749977933890089175906224060990466402752731843749842252557104160664450190471022792566881433662684551160634219719887493697375712156081351891421083729509192332494792333770592462725666619273537091981211960639740236187998955850422658164677165534415696473500075960240960201877834695511572215973738591992508993803211749012145301023755314585074422593715507247537698119007436538513137533435571006470190005596451247666076994150014687601008061739272271401434719617038581305181294803213830560598645763996601442974739028819229358634266921161474520582673723551800341773346693420396522101391779671266349515696903938045209073602301017971565328893430685500975813187846659717468309742400660880612028557782282965736879871297683292609693142182974868798135127967789136378546759740682241254319305794549767035132187932422555813188660994931646406909373435314880332790844086700136094481393936694721682551215189404595413873913169871699957562650949291712713502683884668061859161676771681044044703564560579842628089865157817265427006543781680711479996222797291710947688621513423895655255615015284592588840694411695069994498687949554474427218256941544107890495362207867453241259284391885126830793352507816611305885784622638772860201303240642532639369587070648365680408199855849906808429327544861963604931844216360465185787266912249628714404364018555203624149972910365837809192916411640570028139955175553513546758696819986614566883793636359524119220851245531615347467862479344186911841350257442886284887694282678216970792861749905526762073593127008257831971949022144345561510919807941043093759949609894529264183445399641480082045841272992895289392979027571477429714731107376383389228731533849365467956100380793957111364056052466482901532518272952630424635369550388897383158552107214194166436370888578651210033894779762272458929206987548589869813764542961094599827768026400615520980996324679233397208856879615153950309127760871077795609351737925901320064351689629850017723233151668911467454075074416219161876244268778287726718240508034546039396698253237246453821179155683753126000342300445056123857961900720642873579346916839055149914633040596944463657411488186873101809852117679502698885375040370201263731488570281101771501110048936419702226186825407774940797121246588522653730197042407356827192837447796898401141392555195501978312137289677409431286975012865131199631332004025237618855909298561412706377390714940279487002749863509186394383022863858694599695922600822506874813887514034000746529658481843892067015189630335717049454486185244791491567792106265572333929644631990646200490992698471517008495856803631418861939940247537970494901544493786890973024878987157988443708924515830466355807304535996490581842542097677035279698342415737267286416283899638875247023145942420250814936110314032531049224644243800037557937939257068998571647753314603964543118494815542646707119119169503019015602282303983649161532972809680877189684497808099862454298381892184568550321567624208973754282444902666095951031675833837830726608128552287313072840661669279356492363867381802094599364157124052421219530850582187715231343089358465805227075431257386130422900474077974832303990977100199615166597636500367618770997672244622855156681313898914969475294595500909525566810381397523937540850351932144950187592976847667089135308092516071144189435989570094774223299636489176137610853189341208844198681039547230776399182129177852581894942079218943585266286448856825302521647049117688715567505252876456153537040776384061321277284057414622579006824758613565104873897276967187872883508620957949721931580636416278322364915543337342134032337251317584664378840962826503589678072173332258594356294347332696448323440740416709892305290161288797030789317399067842668125999511705462561494471849803904779755642818475091367928972070188363718069268903352181824406900340205607727883100208934878618561252494250215869155990642286035200272132507926023156683301054340940103961258130997417365215619430941847571658088265923251528843947484912623999754287258905419699489988958498360436844623152553652684720876212344152991370743833193546287810139399520949009447579463760834168484645269778363252752479610695826190862656579984343157990884182116445506969785156054128672336133809889946175973000210288609061440288272890805524577750367347328217136994104031474969520614887414008721567947700074061024372610517697972594484116367645726189735232306295629528214826918108303551455758767263236343063737851048183945904265560015960844444652415632563459989036884276022724345105857995848654925777653221182912307452604087728186034022270540113058217262971693161474603835931259326619430321246175176545402984363671120198036336477143456162222518743485972777461552788747095694103343239997001128898098941892609252350834457760941997200031040075199674647025118402284255976047453510742516274778817777782394045262572762860202159300008111307508527727589077576184342548936306191176591086860673479851700240154183783495167731114134107844584915308292222973827875594712899135767110434624663179821019183086136589991053276034872984104402434298774963503122137638617954980677571916406745339460796183162808284810076205578440384968388774279629842664177645398373732763445293054688527450544698436168198335530788590795039877578861797627589043176432591703097770446047221750243621348474350975249809700403572780745766731571893355726519636137669630484770498026182256598565015024623080531589761381424813222536512254636453134693898118864569293822401814067569663605294062651307912149085893173007190750095053851000764499113033897202067521397428014513486787884005349206317227750855952529265355883438382086654520631078698230354451663969388100483232624480399122687498907075820624787799414212192353048992475870733216678900479439562675641816040469519265924232504786142356359276924648654881050698811721428834360865968644173281681718077805085744307455092116773216396169250321057454175139367398637325447430163528448151987383821670271331575434683529711461561439534567137550682011528591878445188667467387272150872904727336191466912835756190719866286466946906185337922934767129894348512610980401298424882067370821045021087716328291051829731865151654757540192976011361365398344114154106251144327462330964688318514295524091029392420057449450246520872234860773777374060450514065695440837907007379598605145757109796150235476084816267877778105408524284696859621838732144063022842899384125265287973762909423968859265195429075125754310344526908966132422015468934510851702331554100644081763332328982647001662746578491686125323011003047933737249460968905722300758570771168725633557612673531665393259748558403471513408427556109956737690916536050803732980843814850585381253066083375941260848776989838517395197654770559693126311816675812815074320595571044380853346635465627504715106926002847486076513476815631365092297241566488846025108049204246626296124355216775080015004197807665046202869549656722541489585435983390968863301240988691593727823588028576453632961692284369593929273500229232211780941690746851234262624375044073012702482878378855405316468153935523904707324181737055150667227676203062794370630495933485853347531603853600697224230129968505156592913771447135267457737791360786663859527765145914890604752189194921920496052650998149716570623783529101337592165278967742384459928931489753663178266586111734668954738218897300272257581141524175204703547853914135716663854262225448918510230446451458196138040530812378188737419459988110978763337260949966452771237505023305060597654570787131890996564145572006267277667179692586755949682597511284202511213019843715989175165865987656812566344719642149282357793500346566655246590068606507458702589425080029696040388003610333909547649474680153494940971144998634888151150333575913338652143509345454354786503319065145230945149534224875289327192597023111424474931787357639396756540443622585442108625276634557747482709404681289218184149171001655109519272116336797856390631257937125183400658037382633278494741361708353920065433188891914279316523751247779731998191676722532285552542153715729455804061826221704297429689179850827665064578636046101488085523647238686203379246015550105666733683156207890994394203160885142845599814954428065585433949601208331808841496746685203989466238407028707684215990766315618260289279801378031436347063603975640802539239808222401823274207703583727037979434085439981997039604165184705579476473113924315411493125683248236690417393523983082356828035263434793535665040741411363972010173574022467405279709545342718950568737052836796875135849112303138331262499506087634632411011668129088572746412249563854184423957550008917687561740581331967923796538482885298833871931604162895709925650401293060374039551949016756869291148153777327842561278221304620983081170157573288004265880462613135774004691933852661333922206122395829265978884051913876674252581730842328094185089512507811974550139105561736525830704565957075704148546942887892190330054065644036938943886521240215076080904742911402209813434133049432845299348349602764599960646487056688901058972615073901271492451654656706987600412098235269466950544942845381429749510423436677170680469229387237598682626745986327591480701390262472987005667706896030607823051050208424141410294101761354539685635511354864310089867046939071825136073044554449873588568472866429080738753724878806001258606192285915784383301286719121362033732759452761640351049274778804469702785141411375727363840005019805912822386592550369280242381669945071971698412929751596930429616223629832495844221550115715348122405899826222967216577226690022315118676344674069149607307695744948691338494213902234467547616780948749579355089012021484021174991815141448117949446124367912767073196604237969465077589672873817032835974829676065076678931279875713031022180707444015298461219405214231937736289657281501234532822879749927348808899191820626543242030361183719298086624258931722570778069809426722345607719443489382737066297754011368440822272994054249946257284002679553441664900086990753037394378594088415650119088724290879184454045577243891356051895284453820025559699084036897678414980426211848603570945925137719937375337909854142320670315496397684852855795265209590011646184895083146597186890554560397301803542343238702617023996564425836043178461363321426388914751114168880522752728705398985771716581686880411991306825059711911184332313516316313139155729991163781057259046270470899947407216738314054293370840770227401601401858962401408186259377778222977243895862170945544403613327080155160237557875070719084795268679461388129784148713231560248606337545033766077872629684531298383718930319546841625849323855413221256046171516165249011956088425008931620897672895983608399179246789267224435604403494812892212185426712057838284678045543201850512919207991856045083594851505325048839060179253763770679073897011252513759910619495679142562017296445480029996500915955364571060138444219319350655468714749354819354877627286871716690181801338512985687687309720562434953836560516385584659109566999139653693013438555137201268304999003445016425666224360830368655722518181029078223920258472458088143056721442952502910375194886313241466771016313598635161800730524824799602607881151348202941952935786392740345279950771751521846060603491816250182946282955837823340640374150425983871563274569088608916631977891599551597174023176569830562640399851829562218532507064458351581513943154136951431236463565956339208779132383875715293083427902171500596557210162950637199256731800812862153152398965118306825121793452531263688102937174527779462843943101855736382888216180529770432192616016901552728382538181151489935074750932684584064797163510764558223155240517982569283899037874984653218104569981427299011771617707885926474941506655101391064501920976500288053631386685082144593538232020491164813685681784544494105868883159378409992025517374356698568912146783546291134429284858088477319549615882502270369886854359526322954159166933975286893000294251783505478470747231765949620508431264091132222173313356659081266677736376161559264172611924169229991732183801029980828540678304556148175069375492663483975062928640465875773400399496074126917734787306768646701443388198519102280616798890255741599530034265939477082734314713726293147960851864211843716409268837680108755366686022904693048809850023304898855964672293220363842302608432297382075795708686321954887943280793615832692086256871274684285525882894192538629028336592969609423363447859474611954076745638546025587193044077159660207930956415636629212976682693503964632677673352257801838107501039792926530591078245581095632044040117111891957830042479985606908161004493876633531002798970694089103930548106398918936948864677686567486104776354029365431319452235635161551574284644240371162873956833142282500258000300382505144261483727936150796312321015677424686685653952113288084703645480584472226911904480291929371077655951334131875252574685021512557883285152725875741268937583790081719605310772966347981501234314095081731444638383479989416813900882894991595974549009354243679072611322613560782208119274365988538987709628950273850605853386368296915618225277288664416349535678409885173275170523073016901301578463045987890195003098141430724583787742992004882411113697727245843151432698618600532157439562451782920885980517997041726498151643591513892454718446372424799422944453251286259150581227480782426386132443282985349406260667921271715018317033906312676102030750894629860382865164440850233120018461480114126056603743682627672786571103141842699323475644496499815879957678458082714949162431144879616667367001303988441687306220325504286800508270773263331977719314841717696941434243232021099637047339307085979496136766447600248765429956218348081022099466836771198596067752776619299607291071411714460184790257590765507667081123906089434255753121255653779431367611001258347474051479384010352254637873552677009527733397399267936901302767885603011631719435240530989409944591049933754485977132662947302201320053258977012407093263373201219430857311719262299199875008399656386734273247758848663856006471821537876880784185588491288402247962672280389487728265710401504193280017456641088774423579580751927477515268337797311828884592863482511629865404327778922184378307783739936101567422285987137559865691054659388189485546256173942134005161876839123870021920067762414769185480581910330323120603347187538663188931504364731599608921054523607354989417974479368953571957583110568148607157283379851102426671585968939779921299199214842060165310325601601901906588506550335856274091783946784459419270897723933599284050336163972019666271374794603922536126513925533051499006954123556546249717501973675993167039835580125591604033845038276804668856630536775304954107010614625528691191880566274941549195750822837281877694161358268569083473168560048201195583686991690546453599987460708061650330535687270469210192739649693757345646643920813352157336648800203783702669738905364391215945924994807485350337913601295286178482472682537899942078369501559868636026401294403173228249978089758850397190669530749009108479343903005571600568286203902974147393458713909461262600537557361214673433791086796389971815938025141372668912033568455558855481392959355836253917424306874174509961242643393268870962988955264706953938291048413400279362307767109550226184375419874191463124588804855775170777440315044448208594576200736402002726685899394152658225723609380177505600447555673938949032485742663000646867487736223680649357369005584686112788410478314260807684001924133432975404813147581763178039849516558301564115142530772948438507303696700884650597670257740084471752504777419341400388541297975231381330063848014069196973651480026446101512053975646319788865867188118342625551747849385912549097051973949032464745164205315450613527129799007791665237636873225750448648158091554990176214371719184540595115828281879112760281925511668465007793185916557166211326870301211976607744247340989094821486617161324536788623567641716725436228686486360734195907519056204964493939002238512509686193251488396569295018300710975234313120227303371206055756408483695482281427781682830904864745831035622904980370830742112526615642162707366933499664532609037258862304159888061846990883694122515509980097159856582940736707100454580750012450853279349445947851527437172545156591034812204221350519944402573394240217304229536932512611453861367805568955240290815267322196124536559308566373662227180429266437135679142855668322467270636042115884764429172251028287068535809705872674396035231070788131545823502156816257294440117801833528370087108615352743026433518860717092323064330352535151825146635486877245358639278411716613756028391207325998501218438158440163043120232790257397227265070202941560484413969462916219254714406416755611058663534497364331910003555098652646367217534920000539896593809038188462190245314644705116763150678973382833899035704835533977757453434367956978669789626745481989788699305826521824681138855564683782991676924226037358144140562963709758924978846106672856370588949062199968899814177307241380785426856589438965697498770663236477632437975685245592682584008851534797652341031783838469370635049843229122769729862044014432891739027823138256691460459936699204138595247020197941321084382117298819193753409239559089349296077030210569940741237187566139162474368106752462773563861174377246948278130187206808898634312235227652953125560728742635835270878542243809015737768681600532374700925764682441899513620505693781653318002060206600195903832106145064140456079820632216707321201833672584522385803607578715278538095770919259996650482894435720838890204995964946491256319359580515929637584500777963457508636066935450932117177125395241208598120243363453195530811175442916082110808709696976520567784818258544577809144589642832407152869600918112797961042187546050853515607222399612857585127496974161258577797897919714338786832602767877345954184307348639917806615991987783085263006217516784533662695581222530106963893714878095198831015550213925478699056530037895239454290730862157991125211577774993721011867808982022724435701944556294207761794146054111996483051428494878352885810316835937759907111811571977925221393344560926453779709778838392000684343904409218179400896699525469363333682967851998868385180845204780381772528054276103836275498123042395787432480554290868192132727702535527414589250307534563698951623301988947198102217442014613449474690209415988009329310768638039181051922138813682771310007884311618439655682349466290474690561551586688560541071730853640229760677734806883505961092101395832448636184580478503438137789238636695863597683020321599584638190871881604722302204323296037144328730979974717751976889106507949262720552486019310231431160097521377840067819912326477447590840332702839959211517568687035788830676011416030790144590275536052198353111101122249097987894358007826121964394485834086193503700487210761296173224000197665316352591287830466181353549663684879382309615086093564478698975509423224489156125865594055357537284113079058946633146382784317048475249876804241427821599800515043446654626777155232545616774665892077536720955793751772141105208296436352585804699133484887586585118779946099531141846101549838427189522078552689263381032731679156246075479930540832544711751183846850191918846446761759994356631445819370974820334857758548336996836615990132272748413124639821958895236574597865305444278077320785355241783430159039538242545410979757115283830460726234558217964316063650790124301786841180316338306835542271447212489402428760921057277542801588148468289512359686546775310472041310203764054017260395195346995766026628634658257548780528904989063085119972118674990515680717337813492967331086576276724454118488633819852695187473567505325304946367162098862117196079686067958280574873736209659372960306311175074802173318271025018552709785113942592809109604934505728412765256832598265478071556889139046022702823727930055559037371228584898375712711977954996200896842658111192626607198192997048624361943314700407326072043829922789766243903851136516361519143691561669739391277903317609633764206340101021280929651110473060976286570965942242921137122632079563355733093924655859028716280817134641525139231173783614472766020214811076331798212269647247934530630174111136533824224839241177787120684231051166128951264758030155276076561307288520016838701289401454736632753076336943857286933537522882833278478182745794907575131295123433438186168778768982254147722783878075972654675610299811344177620064056329540307076361746950261346631145414268951569766198221897461756681590510989702830169306811486316429555774751512985961638098437654602675056036272162579065124526666189487745300573893267818049357827231833218175965956815879790607279244553474657034676209249659134084546911417430480485695535569255062201215427041671677419577367910458574252487970219659106546677449579818430600977762034157595435939054913382649396122655128316667896556392333451412448426435933331466328436370741087986264704846270947780800133863077526812137656624080090821585024062909046392311308740564366682074059400291874028805768947706316838614931827082538977281565158111677799853437555142140701328627227917669590277642692419915145685397135901002348719706754726748408978139345466220216184355512041447608091589227058266609429829189109595828947237652640548779785561579214920133016618694315390709411093583896202604347955695374050336108814124075930473620636622257778131098847714826788120226623429218057830866624797625979233599484070178475005609150515594552907067348443160801658607257018119134532177738090604684691952948834929037059253242802069558485760883150698596095415403380803370538808448213893808074566695175379489014856284751953675899026932349829380765132300734199821710847849778491608058175807282604848093396386071671007205986756222224835037244003674943831308284282017989090511693497738835113906062562577417807279878538333498142982084223211375487527698023771624462154266152828517968676840735850793157474258947943798024351716858493871416863202742569120055239558649681599285299515246479475993869238795445082841528416665235294696559342990925841062595540122510571423691367249812326087513001511531788156148874502907434050173850799488395623897462586015073118903953519081555333845984005547063612574720398669615548987787115477962951461709838249722268859840858270626338226014105686906983381915144600304681549280485084384231785550570934790389848119805331141572486795656843995336569431803184148318253791659169898985336119472637536190818357641906233225788535048990658727770620932917456209715529532265896076952536079231500256081143010588964878628773047950275349019398824608633502981807490623741394645134314159062598315797980824421352837983405748514524253898030598296108258934103061351409331581155692841740234847796310822782227657604431333411679746072693004818901912896818367026871188275454894790724560659503567305013778319850503169080044391502856111598848470937642869374295705277357155484647332230584321800795473204000669562122415793199985699540362655449882003168736519901719543152953719030773682210922831041493318949467793944019514712642104100331582365574031864711995160924604559379477208126659841909605853766210521398216583210470440266213105998885996152038301311909387082002205132298551714454500961665366576596739683327614424983148663790298567952810461441796743198984308104861150017927734234664113660201596405787220152849586712938065230871026489643234744496727695090605171747768899757712999494943103953980028610111318154711038470860903338314444891553047025902912499094215964333643937670323970495912131301337836591225104171757542006059966579811143944280217015621748734159318695584870865641907287041763882231822893694119153868488027130386527619224531023314941379931266840443346117933345314429596802728188444986680473255692724074172268332835997337953067377127789931257540931159357508340507362018476018703455637010617303244092410446011049072144417691117590972657189047774944581443755082936588403778627866362489415671989867926220524614593786519734167887464525283422714634616301348926102125806690100704708109530599573726496936303540833226011340031717464306109438260203100039201856030494332062131966009018162471445341143384629106529214860714678518021943871485134527709194517281842690477866218845705639774879379535203602487107343060393095128581163035598552874068661714471493558147023662253823257704861449242859715479171716394865662648001971638419582801666475215834273919964681638141096586384149289381534090542575294054691952435317557665471525991713161841566511964691465168354660131637678861740924981270481534766592398727936118639496905923587741182554403948057365938498453183292183304152444131016544427042038308089306957929415855497982822883153096244728999595806189755285416656801926802075070175269402070773751715416777341898670494317545799140870187061525929496388981583916967436431599094853128925404942378757317847832137672549849598762830263699015649549049831743554694383521974407063348468125554313597485415504669466054784812954790268770183820319037474761450368732569907224655796272470564921153669019580456171440336511244551695590937695793252072252946967021029589411006244013294984462819984157967425680036072761537738621576302330133540601083710616617938233744331588217762832027864269827704775983785393133468898410886958127731288483454607187053649628575470076234549222719381084236001802463049144685363548020159328640332401515461026614005977895387986663850598273864317701313527837251414668616060043124899492287518593901577911033711895564383223509992364986777036086662379462480874173765963470897812940013406604003052852143895206598245475054523244480119621291828736007207679465913699738037661230395162783789825929812380402632212647043696500639417497983522451990037205498090852710059762974221126045188038062255705161620836937908481935720347247406088660240472106044043843525560063927373451708563604446054939138909441823648072841769582852102428201446650101291059263405343132596999489667736075426134186795628015080165114845252885251961991079032405894194102158571775500694703291882084138179740657209686831719814247699778020094761136125665574102460390307993855213695770367930330085019455204198007034476523436503528537221469952226964178229535753060266831765053795693260017419024034804018699387939559495309195819973845397922620534659725624365660033208878043901171307556722807908542424676854910279624260927381072101710348161762751836713525078405747527494980895667327431315449464987371956155896072579336278723318219552828151016275471251210506509136222891063446025461436988186535792674983243189879496336011107390505978715799731699405148747098859709137773828006808364156727630858585786139989565018640361542925885691034910530819764768028563238836399294237826054931120336367758559890036487376024754410474696503170501199901049801833442492939308000443072273265847246682566317790574657572344050499274061638369149844822881490842529078905197038317151141234821696571205081922219960348368742298058320096130015892358385614196840865545966453273586085598231040949223315764281359214425071097238300751410697896017311234949323851608252696812532796767451514960781598637202769118889093844263055636580776998221572420257376959413068377021545451760767497670230670715709260800500733815251803357049424222228348411329690879028463249607978254325599417209042728219115963998146069395386022681831200840581058054395957039418553765697643202061459548311948404433056716639720524059324135203252726644571968661196201991736291780573447975250482769763089569845928650320117591699890148258152547586352184404832922726282408776955046019853905054033823159353254919105883721906029924789890934107384646954739632186075638114971128372279781871435164101033031443184577342052385580142478026047302305921620797405761540512252897460800166778776782787540048305413283151837440373941025911742679707468971397149809741988189165939902097680614995681035478634621396501732203174112364391813131196143629442739422491466112369487746352838498076977365141427553292946990065815807014044679146039959565030263747424598402551656265799803414032332912877354400185963077076543082179321518010352798405121161576726837462732638523838196566578959918462301429135046730821127809496441983763022444236454158871178728054368005143321972545420668444669631395220897337953214579484580595184318096035158116242850352979071198912486978161346307253746019381505702996524316915986922748033283863949664193409461046244134899403040061776705623359204559740105282224398436265702341133140573318724200478721446393073437842733558278019826683607472237603409209894782749045138806184405727416457902296198567472469579038017842188397991706525071261588872104336703050708446439338469575409928552444646795103631581799192101329208069138592302927810280765137862640736779156017357813434512321929603976644867831439476538092598092329511981055957380861425170906313059495729334860509001072441097371370477515166538937621904827965433985536882214883917894350224564698691654602839998479764878610175650537253451149907352260380131423823663715334388436081518352371752551457619465786850475229138323539526406974842328117586048950102353404235384307334805603365046901363610778921787006817099511017547095562064843896938062752237952605751177515815647337408698589885094935163365645248033623623530766543531145585308381752155165915736098914936296206348684592432994202501611820882717447251878733095573899405958763756699372037512245159795591113967340683297245471390039779332241480187456059061462166438585502417921772587948441325963832627096154132208226312316038215467358515887693742327237191411745277877831217917964435024582958932126154333387241507250434806588920783885655921367744785010797078679662685005468857678366081177069656846550381097384563163040688998500632661230583457889399596333997267384005684564923365814984103741410771831651836294306202744935352126435208295913250329442465171545247831322597729889679020790776501840650485703279715846734320117962167102038183347268044334759237130625804264048837108542694819543869577757095611465027841273921990566898095458193302861145125750112039134142499631945517539527592870269979384535250156042172322768053405084498384166583513247506838422823264272300071909928355698403471037628790994204395311198977471038284978860840482007641805027135856911002322647823052849364888528457237604958197780586079089804623844805484689999560185621139594043914658249878637939320395958613721786492615133786832894142704371970637575281008845847201720605030366121538856774163105967759122890813479391974741508478432395603791425498362010583868801813198961065925214942874913914706109809647727983540865418309412381217005741770600990514563419570943083284601040627207852589385364350027017427920716937923691037299164300374994657173789351723013002516067827388753697396054334347932846270981196896224134967649361242682201499670145043819284684510527192221900669687814775529927572322623246456042683610011831973729672882079374769378991554791696655731293909869891957202439489656434538916171927045301206294276956633719923587966337682372561686913757868137127052257410839539922644346463577878913746826154791834290937400352232932798297625649973278659210975532053020694205217713645714339594335900903128087017739638091790072660288911284341245258423165365365973159312666037931610147269650000362378206222124186435988203065878973181809754273631540468562248714714820913385048014826813737004953589806376744760430881168186135966818755280991680532640430355519121421329948859646537838106046926232603804360426374294109962925939128066259951376699767224748927426424582489203181790266349443488900131278034381040006378043595054919196493605529724071239903989099088163340560638598008579005085433944937977440419105042332919679313309288127005323263950813352283626500553412399046301316985755381428010547915302364989647305628428824481895009965214653173979158087139412647093901021632323822761960818521048212900778313890261998445055091225358079731587753339527775425444393773372133536412769888749780433209799098440601264808018733929347816604506078052053530786783361301173858589080995397133861795113139678357293533680240377300073166923021968228118635708594918522913318301377819669031472126302175770106063735244679394965294431102416981279295928773880690154058160921787136156952308583398591288044006155472134985659703197438853576358868328612482158985314841831209727624580533388240129659779506849659471894224653556556824289032146645482814925760517719065263954377510678194387651475248869115062902580888266920498985036034045779434646701632538451408832399482007240777555834824187730639900826406670956480551247751653528464460589301419956684333273956127649488331296955550165467824751793450422818845946398699527997882130979466565771174811802393651151726529229068424275289121460570434190949553722617493596650192214896672400762720614618055342411391498588525736833078219136836206153946623873378642559325702755525555738399126305688937410126086858597215598159464669768547414389567686382492029561859908590260047201711002485357302624741192465340603392893148424027589344680321817888461560036893071736963319967518737304530338373292391457861012438175571300829442841460140972708674406020615029671845900103358376665494337862846366934044069557580581071195314386754485640971932389621334442316344825691374649619545031848800400601734045474801332513238206363729982108626054844524721279431048433470139727294915634787158959135215034016040638242926021145247778885990881312608591189151913273468259036913955682897763965049121166668028569453999391248882551650339735026963665350678076573861029895014859091544402943610227297051853199332983080923634944398063375557225169742586121326893631233492762681182609478588050747663032015625541066572371620155305993202643630120813693318494288004321158987219649352710556427864916284960776141592189766496469247043242628146887870480717611064742898919516816414978022981446577168183494942572174011908633090806884698123307146152122622376973595780422818363336132201362170221880754535621984161305517543321622144178465066814829009531814898861240968703105371833963934414673122095254048739162761765315405184360934002258380381011223105655695822369469725478672415582454315271778460211167360290748027765837108280488517322339563556274595564027150232646153467863269670822372640848128386826224158025285556360206750915693809384565618537074963154802016278734986471171206508274958947838634799365415088012636407624722250950849347330109080279160798692312784686923223550466493140922603077225277004626572104456467950378312026631183523872803373428393364467064659847077571525629399325676090207446098069476357756213570101427350234841652407806236151960734843005883836396682628406589525713158155246047650651920193010771583362871363963376783068401429057190432293818107003470154684853116580132376694435525421438145843235296934153567365725702630096491380796752521786670077762589515287368960989908432924990974071728567319270222286072341741384813319527556124550949327424568177296054624672565646122752105923142080028349604446268730168420594997732079237993726520561734748380263895900650142515813541131112108375622740608697517191688159414194545857957583884525570472664885826473104297453760982550264151112567452504672681672050251464357792993261445832894592425152083324681659772057169639487679690826130508047001880641331286329691062307453637171298555720399766110680823051671107666845445937929390458543552761747091550764933258882960061231996631903351054024584194715651321674962520277571995354726731452046277884043234569964842632695969547899594773159615464555902842989803120978822617533170595733136137652301286561209875662409955662981186986634980562186926330938417591586047756763563299264174177542161125648340520234279687426094456319142335552195921179223842742569214952102522441221364232292816345518439980426712058889009004892174808554704180275842337087231079044470549864821231280401842878716058134642379356119676786649159023822346411263155288759780509408298997784109425265082644488658533617321845320502972759323495005288970957868337820979304810488298298792489861953036326508345538465862297681405317325790556672697251085910796901285726334419742657482143734147844627252188187963465868618959091219447503177789231123518077191529677232937667585729932385368552409419011021657523743370769960075866785521681896366305563497386266992910126020192129928946711606429533733781805823904898665405868865104263300246273489783423108022764901042847373180754991228905763826854309609533977731101939884771314197660473138433907820133500102755387207534945276922014635750702648273242814087557590341273586399168294957181271858396439144437328778269082461345834983054229508340967069484602378391433723995134452846283141386993447503523065548573596101772804312715939489286276131915018551726361104388941857217595776279842101792261166458646731767758639967501196247025631535421860769049001088828165474129122427372240662324872942955667265791878206858326159653331661926725380221501935572357909833506165973731734393498093567965020607870336278490041503499768084658480632210517678333872700901778106253797521697247527061616967257815150292689862156389016882193088441342025927375391458333663607766836685189409899320932603923470654682365580038523507532123760683254078596197771805906995647753676493224634894237603822681331007124298812924997431223342954272058383855887978668572292165411212733694668524532534847023605983177987645527329681266668932458258972567142710220358311428078379267679711988614128999149683662420991100721353976192830814371950256197092767044993281913742561124483430241857130967989876238439344057546127453654796795592673222467752027444564567446249562923871699158201174365730270973305506128341404402139839178863304566263031665917390846573203476801380202988769385101512923802546596186255282141178564011412731913508211926170426815483735780724889676555778072088103165804777954414757612034145611677206361261605745067393998511399976654890518097357135653605444161315258788646926464554173846449504098889180356634333602445268074982136280305109788709378126673869627412258247113368580127626299245307412799493841682578681161062979684424157608614381114451082838112688795962347232673364737667276295548274154941118957611443014181797701004710280549467724929986471443966344433346245086505535686357429055327406777352820598033887611727701548537958288221293689420635284241218565705800216238480610048782986666927591168690338032661578300746671122730755503540124748239200256987648527468594067643785612473902219319106505784682023266194371552432009871450772202497497029013951562793687825380892668757007344621282449935011758622705077200284569344295835549837376959452538241624736230463920770769388076473113450440943215701267753111442665752722839612285158857818775412849374276828769279947275561541678610004280289055877947719440924847249111113304397914141370576280550228839277893630190505307095874258282677688921682912805342909248840049985180621077049369008779121977858168061150723960498742950109457691527465331448990835911035289236939158168717932251370220447726591919558442446123362254765888839963449116677376429226869940914328305762229215028709016075325530259458931337565893844726385384956460429160091770248994967391403313566745588408084982331398584848067660729162152402368407424503241143250034737752395474821020488273343460146785739906035627580122242579584220929470975721114190398406589015844357080608782025291419365231852090133967441458820479530483438520859773105288103534553602229457532962604621901149147965869744186683552799170454650974517451529451242997587624248729757423776531143132927093453939989562165000272393753101514405884699784978791072728093415964077547250059283132048532091180999412833178414112456907833342584359273514098982245569226953443272745440619263804868295854119663959192642243543049127278052101903801479141587124391797031918785476707445547615431144782690089476961896376302444169444136025875655290942645103016080997239283867742208855974761154221711113382914887825292721586582723051014991993028948748594577605351975972401145369779766017915672617788525798390976439198817846708034291033996233874547163040529890824452868552007510693186665828294405400481664574600807756361376922696708108818815673857942564925643301859201843404574355229764972936802590944931517225664380073410195013528320190123240396561374370152067539814709637106962759685642198891102244259995882571948327742880654652946815643405276180422978292733085832081544621574136223959963378824671424334443636142229128546164645056225804095146399609383758529207997132438343755367739435664886396097736760328082272838272871586133752838078177574417964151324010819568262893623488471084625190734358046959370585930697867002585836089555090091134749305998050430596206670384025337132911320648092338363221400910275581624551941361492608014639123997857807540302978979907702467930505553865022309878143345919103685649001255260216776943002480961950022417277802910372836990653110081982160495079438739419447913780462637967883361939604832553126277335589646433734527720432460069808592841693669812920906319291279101170148218402256161620160654443081668594075548512241112192709051036822099029490120426737596331083473451619006236755355623648342505301668339098290166179124951326355712744301859021158524167033840772816309283257407039641795444689013313252711318417289474067786236197460513528909514378143004875211950226067640138744379221772960791321018585381105410684852393502434560764362921253848137789273875605196742437807519271844237403126548615048037918717625510002812700752361976295757305497189959838625675952105319711467739684789638982404608810279624424364568576543734329714166985005271053083388599963838273156240937175255930164552475790528134318705492231742395288692032051221072666849085985062881844548255877691934674940808809768068469106169577190167487774153461540867250549518691160708390514312884303881002970290159014306983453348593347760616366236815809134413032830112575914233469327367820396977810805856099456268485903792032164482690125390037820927634029607656313861356116091955558681592631316644833141087547574155073751530432767350158324229246206678670429687046951282714922256745368721080083916576349851522326296010534062484604777347174793564872119490696116333160027650801435042976116417732089614116989592617481392433269535427134495819537575363894876435416728597275774336623578661941301672541590040091246111362166499667838905963398315524853301224220785176626432237165298613167713276225283358683612449436334091893964427632204792934324400312633360609441075052293908470459685959484152832182375752829057602920902600958601001835787118838905797877581121180664541125381753710720822106090268150130281310022207093931707331822520450045086438315871950394631182226658787952477834302209104783425041749909451912976091378040752369085665881857950549185786423569107314121087638254259254275308012945998173476684155489605614907263649902485472354939921903301704363798474897871299723998764982541315284672045168427414498583657599478011892350697169176488236212092431527029818543920665082347092455369057860213014755647128639101873278144992401510748626475631344896214861632980366390491000653072852938352183196108503536919054466071447269153247615798924910192594306940555923906254060502174605113980881991073588778496385783886053213576843373628134023165319025273050985910132346667607682062110168284352064387086371771391045419404199167352158372974620494287144941601988575878631035871431465464179053726313102128965041353860775203866388857907645036730345041592450654277677065444378942917754865059962411793158079922453273481534093527817543311314347313040124664960934313869458580214982427491341004996346599248741232476494433247983403565749487655636469391572384322833763900087051127053054416467569806873361386412236447266454185096449521816484142033594349367774018542683846173842581424208388063912054557902114976177620644469377463101601704054508523434377961831273068514869707394816817191467855794609163812031665320774829712988782228513751618460981554863174168179420503461682415539791465258247852127605404725549344085894039712998584160539525586984921299985806017988034598740311776880886545905658021650674172586359408812210253021666254447896325976981208588280080523395445905879272287934445448802028492324112663101061677275903102512376010976001707509827688645658182775248615900433093028508052651583799092770534759456720875586402574211143762054756443018277425574002834865641211717493730063181503811328539050895110940690091197609389355431777868838776336684094347612483801344883846636104516530303509298198178436653557338727963868838744922425182959751778244838035699799622243420113577908225978445376423714623441595861154487036125544064687732760089928259098126421231775474095083984200773527861241221474133950010938469624681816580804111177191600524566586045360226332516103751186597443065182787056494844405602761997470939836440421193300825667024219345280048502322037885738513638300096337958001228267678377278957407023880443098082396668518227977391826431909168459948434463410296677907834898535902719658170614464408503125304061072530675646046563844199309235171162263674923632596584745814460426057640405779228838412281934359013254736601878654450028233617311146511106407800936293256590800463650521130921395483428187053301158427164839753755437587738717361309925663946014740435060510528834184554570678803010749823324922331327813606498950102224428073832829913412237930503439021612369484968912318955805921617639820548979092144636782062060947289251271819522127732523623094853636043491138861039279093475017803616812143976880720918484897434554581632294672165537044732312201046785087587725277168349655691491512522510384451481571474020947416767463530926895966244186212291179792051699280366720792535329092535965436193524381721504859569173867794938324555579830402868233567727885486087693101653307945235684885701216147334027359935359494209105300627071719055043842622201736301559808418535672211163984896669533464554712817700107014932814942957136374713630356051311357548429105641564234781535185211934310695734446329871717653271425357746912998437149232643182007217330897751638614335143929249800366761255790879607318642422156540052931738029312113316484418645420408184912599471187468041976412104654515730625668774891846356023448939452803503685707781683889112764928458054970909757493731191762348146373690453292421004364302034125455410934800391500574878180542523329387093420573776709219205281616907194446301912977126809792410128240494992654760662000964878519805121791588530924702685067895612179618557781212558885432774377919893473064232411777421649209968775967044044465267356747700945098589117220447453542158680648422955162377516899183685656160821457481371076580710807287340457745585935521697225113845607325194132766162397617492202000781862212619231069854675349358012753840596429461058339725214859968895764929695198668740471439561404755730027694746005513867172524652844433071537930543506376055925806547826610813173109698593070235596551710030799708021619877913268833882794633115054885961591990481386730147546445354918422870982592661859236650868819442972212872144213580118327339839090687553805089771840911462114368219361347254435526352493260069959042334537859252736472307665579146084095514038427468289206260756443393026212474999893351146255763092100092507399819755199175391759243788909143637027613379342234957683017744897838097709787484386024397922021159232974017001252407821658000310598116952745832895637177857902875021341531880781741369615140008149226955669250199715772508659380390989840989033585707457679676662092276598385284371028415009565523128072075233787590406983955562833959946800241812879529662332317489587706206332349680935126909093075633550839917081538002416949685709560287655107267009751755424163523694050795229569809133904543153241097281893562983261233782180099149015470942395085514768665426688419372700914618832817535937862003781544918095339026967202506795292772977119243462833683007290370445432839551574099624900203195078647893359887782988056673166898923857943276374211806441905733424066330185500193394904920482222901874352575882678603078804656230716799287502347241427005288586237455000719108042648491898155238445425018011051176597908168684812125112435131335261226346231130523401562701100186461225551928302977998793935815123605683393010820622531740116083871911648054893319600413388181774836845937485365000546051803212033633075242674389845506016732560904649226384372777445844204642054717051211044963994950975564087128373331700297730165618748226972698458479849849612569026423134677929893387135026657860542334674569791028494033025421942892136256357131682970242552137708487843965917568575058048039696396150643902007082413274676014679721910465612489252674291826527817504914815449270145653678637504132924575832110891089971486379231938926268485902173709944005805807600189406895596710895047438251545468975451853657022546822416876763328715939425890329069396580211249860235480461423575481493801037506778275168873422652259576263679611481983985493075771366056848147052155475718524214794713011643309798178240038285224918545161985690375545526431225097701131079373439960771180611569246926069110408154480943894704068916501886646444116681058135032276450176807887975396105910200723195927266253609991768475288515424816330151783051966307461473967233267791163835641626709355236195119860821269383190734872836935120374377000299123220633837637234911131329418717467579573675722294676567552414530882548803144526264515149463689890682221065754224480677862592936120183620071440320994271844021221858968737061049569435919037081958993989211130362773946768231626319417978903765085379697467882630917418216823239852015467332574487462192429543796567444133986978524395491349896185215297078003249015530180142154578603171495525057455620217165913540154866290163910697377160393701067241055884089492587781727601572676802873649771419946056504695990940006334272082978547622716453704183158293848548114077079430235229510428519194400077262134527546932392114416245165804281191624176515632411058442430422269918210553261469636832663454373978278910711095366316199009087231477829132092360086753676833794396337562404903294302911801811915527406961044455585719484307486649429515271520269033346408209354593797927031487120452648118440711792110664239036217060230961282358842623831133492948228895849759784178114490234307470464049960263625542936686785088977617642796011403862276390110242135297981895100672906371548608618577231842487269250169121100971283635648751318726776006934439300645490221313839878326608198933651288294510539058394622626722792060179553663407578144435001047871077059849585292769487600413141644633041139448629690834834096771934014467471880487465762230824236132356495259078633927242346099325917280124917532504330786840505236179487743123319864068424711785517086311517236171780322545504999564236602034825045161688987987177514137066793243459760910939644696562609237870492974017909133965450422208776900570288192120345149425445120008082525545131765664735031806196594262023658746651589442633485168398430007643827760728948958938834626299045267380364658909788265996476302606331266536360436092087742179771039181448546256292844742651348575681190988440295475015610995813803556162470612701803927110003461098487721573612555771122801223401051967861764412659808675164613645884103068018606305528677217735664264184703958108540509716286844715868087466358876093774688642081858847432311975786863738539571242215940212429765157925418083262533469382261018946694523542423501448884331969902848704909551632913946254756509279018014434801821386839729692850106493255927559567374538544545557612728281906429666554497066406470360692103615179665326573056974891764202397445984855537186542965697131523591345008720087174038854769116657717728865014285912457567108407959791520433780294506394507448163091864621756376639172248073291039478869164497920054917670626401212622185136762039470553360199354925007835560933200366171503102358760890532889768216499893769707746994780224018726199990355608782167597149891582105190824227072236570169232049824642217200373371150841334127899661018943867579986923251585241580094328426092181082240550848578057212740571317818187380652556698653537429653500530505746036571774028860472778666438377751495061243498768630551024035630338324569477075632773320056134020794661995001448863744342104071509544477725764483109219103824996019924820593352342258931462838054498633060343888455756208000922245160546005637353536683520626941606224362227440610252550948861218809143501493228078368044340069619865755303343745623207268669649141572058315350507758217642602155773051825723155405445592642253089119438344167421209018703828956235521096213943050890915577918311061640926412965082273221385059089555858659699138845418022696097160204843634781969694452021655824302389716865804288216261809089160115469198528725949510014509980917689259322174268138320182693171959579832900700602587603376588159360667430770209803294961641383062871415093042226294599856554203921434286211765575314086175903157099207432683508958599564704406049652702268339281743617064078276433791433872029467232113137087786978717295811098420425389560301691635255733037045081952871018610548080324138045973273429885012323133741093351817641408861694324819715835075620601120985844002127966780616205880384378361834367246678668189009203254845204337790281148972829856909235996992467632217228165039605899236613606474605027143265737203079800209867944030352671544826346782181681039331292830741984238087451648521805179300496226622064259541034562083905544814576525187203248372092738452876766786523740714429307577100788786265363984973239083728043667689949115254835038790171426801061205375135870277894516954109994412114718726514817536395336035677750776659382344610880355311546339245777767829160877509554012167122182535005348343942533006449582152314887053257749179149014818560966603100989179788774172505198718112004947887610233191980299555419546608715782284231320528465884036901931674416413988878850354745304527331778267764684744126054323880520843418196587543954089091484094352626378984699170592774203810265253366504681605808120680922179264238710115410287800553369108455086446766852274528463827986052319064031442248732167669520525735625764680332976426104812022551464671858051655768685270993093735839472082098340512310057428805198435839813560228302562562926395712784382505084781801708271380371465448045619464134423981256566371414447948019773255180772842052711577803884942966135189795864998025767790212834074404479105310506824672895395607247718502950788276430097719899398722470769721174620092834921015616713074734460313548528504639927775396605160247722142838123863814431335339284167838267460109150081783111351651101190741465795839356101783150059786632583036319207324113792891945861275215889800745452125737617063353297855619371034529699795300726107784732577953742375273132703758546419651338662187375996566738882699260878238819283839074446912071008278844183498609051159886879226090253772617541434282486471810327071236061122171433608351471982918702851154732527152359918180602658284008280451521347497230693431231803944492842050395546064766888118520282549900075317952321368451860867563169838778712047870853214369515322134308284807896738098745387487290535454355969121707371056074299620736354964164406047495062762905945256266610735497416119605366960877342636739568250588314509895659210818811813837419129200463910745670190640099940882415916472148166205892231326920937056491665888870595259873519701366853940889899610298130234581444093667902393367574532323437796495243744610346776597820693927446388796900423019151481978895538741373794224935362488225377560759287773337605691746154388929185721560218556874821088228558724208793502725570599819199920291172147226856198592565382720873801354952221046142273438487808609752877809203854241131664812414623803315154430094527991673267018243184641114003207846214473654387347509254027408602193575196475797897689251836206791950163268122692564005388135781455399665176024014544163798662325745915112819790587973754394431745037997365243997215677120850130590154552176607537707674991674078640528542401622079918455308501097554731258460227708083039089630532445248193971794445244825080017130427720489407211241698945762059791242563321446624476989496397860455871368113190916942131856564197160453494037400408265058658668223505083917448113098597224359404842665676080121896137714585223344980092835945129653594390995795843559578762237136358650510620753086885378234355193084151422394724529170893894365472855792441835049835434867615830687795142691117789663270061327376318448634215024551845801037093136373991574240060994914161057860117341967905273868797144549253129751822477512870165342920564085682032178505248349925646158790946905776340434022966364563269524071596059040720551153220183409643272651234354740771195777140972850685627509329204544718481209642839260113022687930523789029852949921812632588652456956948452080126375947781798547532269924018363470827058479134270314344000498977515654707867888925169779845423485730395521104996706415027448411603246466106573517323004653615098163697495085591364332544145691243059638304307742597750589223230798193027576273150545993588011704373233074195273018342273513123584025904187899313526073626856201130063008429884491313824021348564091516221819912495838484422208081377104735434809220273130497967584417350081309011171147691973517157220902977100796923874936058832679790170798017702727063040722238527783098918063858526291511129252871056136930264789686498984951464596962411564156379674465960582946065916082910566105824981215368913045647335004041637686391927079312500382751517834434930294308437978056043861590960431660195109890960804598319133102064896322821531499962142882217759025763969394244650764017533593562102202208542260636346704816027597110797237994307604932142181102719782098868619244785127640984652087820291588494157728464034183219997686808284109680831167170199079711486904781308301291964657771110277081504606975064577948113347675179404637995623651857234289644475941653405671882747450586095571635765914572123441826362834919933125538492545778600608679094621415371210714072517254451038531694684316281819731809969384436239934220030442347456773313204041791303079556943792483897998638567359020812541468614453006728663101158668065041759983952827719754256413352895527739653248378946348753252309939451208947133454007041928372353692561004193961833552208038154313607249228740758482940391815559073414921354507150312352794303495841825262845234118758439124918580094616431101227005871136152101271966728850631325533840238764743074875954839063706986922629190492172871949634867178936797440885511297924033062059811040429250396646285116771394484322770457852332658042451830840427548924740176388879375393701181471345032533284850183324357702264386998497915911951763788659759985768677618868500024970272714293132646912702880219618552287966238863798388857171822183281140420096109582557994818630209925604347654322005777654062620224445745912332847002088039981059318866772529744744636542518762583837025474554309988424667801804814045190224577854783849550654334289069787756034971995394059292150772636986418270988956424412854279501787127002671520039058177233660616857614182036315594328192107792270331486272442926122004920292030437656995149725009939834180920362784922416713718535275928716877526332652393677503118394985976236920993679075709416681776640081463558625020958950771801598438695861324139215517704011986002190143775459130166070703558631062981408205952493144295613057403171006232749934910271353500100969114040090122219379658409223524278876767385577213669910981419288430515913974255451616403039743478378599732534973051951636849251738900552329398074044395673138981983391167979641720110282197060257187310916946174048748519055126529534077783886506909223819035915429067757913367096816434998213356223610784341118682206743737506357787458222020664798035671961500030147171747171998258238298531319978169678982151320003752214714624524480272520753422615960120486837851673334911512036324915612498717482063802121214998449731545969856118745817538063355563158316440858048477857122725197581188457645656108700365631772490081015767287898676204729863802613715884880558095984611494090728355395057311388711474097038833965888590470771888360376297810835880330140967781293614786163421980739509541791983728214583615803179109125714377412216017469088269969585190480812529796476349080642177008908147746023043811961236841493503050855022884168233264082943405193758882948271749279250801388675402088537081589215302639490096160595979599353499672537190247254596152343283940378607430354821081219640510809957230870291015492203970597534534397701864871802561935386068552569306330677456016417490527351585970137077648239557250997115394787274509634391828708717325961030073451321534834463692915576184696570677637100355038158574387351312917179587644130701715930976201569392652044877734747431169062375085126276428848361108712987269087751599901072035876065268835044185712844354082810115207290990123805941391479522062287228369589891923285613299240105888740871431230753760662683749039876056643073415584851933293370836841909463054374381640992142850014962963300615207040680663743994139421581768503430142002395886123142425606031649392592043087872925189863335721797184649237215121896655717894060152590064800602850157872655703339456018381366426795288046335666361539181827141718169896118585301529262466003685387506659399407740177418202079241158378414862548164506662649005820434773207106811683415600605995399126603983160219391038933765921671768601672868512440446929367035862118875971965789202136845054255804282437700028320437963119610807048788255551127724404692158862503048073892178155177234879411084173547853607505058392237998458153068114552950876064269592326058037883394772061128906934955053583210138729604355678789672897672171838985024638897248565053078169430093190480478342517100165043218231459394632147635603339508827848719704264186565324408134292409176636420642308345094216676848135267956062913242407622700641791836331552247579826825221464943284475370052494522102751951722552479657078080652598569369947035654123809082805072939921465205052139593171415557949709897696567107806796271396733312378812708629533509496231279493164848552874788783081715799601396454511954284895683297514109000076484548183743784855656333305796437832542536001078132407950848422770145950771605137054462369081905081731305235298348422119294235853481339371011157040106485495520186698272208189420108818938937026122060007287021917867858672273076083291494061948872532954836659920488677438131833199733019193604071599076999979857345969425181534682513466667560564985107502224805100061249330039914335970482076633002912561853679957313054254881468899118195364330109692756062869893468315310215050506817942985121970019939275623282974235008207131921667167769113061776831455452199325431909799009627356975065263997757516302197519314716142394892626574030878295487978137248085529648185539725245108432130141952580529478863485570826824094776396668683389354421564355465250853269354651873911814041016264090725777728194572057055746769524082312374764476949679134348829738706616642352504484949839129966269925122974048680199724728325306763989595233577303858269425267933465668536560145681313782405362432739710362678204368628423314885199306168394907530183402725285077015306911766361299092883260433340848459140119051130091689597231622911994025470970166069897067793895131166586486669113890435857536035243810225851801968111084931876040460634285147218042176739372073205520657707749822439279560867097355155169622527972042497695754991902521438357864611433240140899852618187721556077754241571960301383643118355832750808790570528085875313594471220605509936222759684535341868270080612891691575509780616934150959581203786369834407398515108791115631426667597225689980007207689306456651998189779701246943349074833147806694780165287565005713429353599388125861109280082975878072419390377453699155776129821047202507721132915574102861333299511331956132996326088946383334885867552787546828362589698753204884512805252373322910632446735418468094282444997743924287573516573948414220217131304621349281421313009347202399639272260316760706619204380662512751781253865614814696405893005910078905200979790481911876214538306195316075174562884102013710923347511673584084584442405854655557802843011738129685976078305269602171197040167620750640496334930508240012555779108177713629624567483626306826572282692899027929208648043594046269122663299003830500200748961762017997172154087486338664242379873578809618686880627287554351613327094960865852076646766851434013041664122177321912452390390574216111435155238165059882847539371786114394945919849405115765721422596362966741406427314420027873130237214042705252411674277762122896550214638190422792317518511153714360753866657709716711567664283103642677197807473456109286354751080567904186830158120075990662082815191532411897189235773351277384376747733745283851448992527282632225103599189264879075830667280582015446066180764333519613052516051115190072288093997747179711898894194965909756303606164289512957290398813863275457283402954836133286412004388169960216449987962417941065333554585367799156624347259137094134664823057897610829484033129989682847817302762348897498943846249956416447229234454741022038043293369771791623206703429266153443689391691911160676447900434216665423624735206641570146724066106184897669693952698682821509759154745008608085853394486905167045704640874712766472189588639173153993333227375213854740844631916412142939909368207201989437914497639188809785347785067538851669716954430242124844263273990301301011827245198977688432516307922182027733527398624087137077797547583453757270487498014917904948698813899963225200090460495065904055699013330670853259801246003587919819603821069625593321064206817557489004568078526342097742678489541327645228908292891865439065203732708077453174478532702662192637596665585453549914105953640919236395243520080744523801856144179635638195333893020983318462773597098455754150193043274657744207671054132944754629120386476260007626525183514976937670192244096107680411345417530463708575275156826225743850231628455232888801704359513371835882259869291343267127562947112895740307703570144008965011767721816785322587079875563020425413877236742007529758241309439163230202112329522211689754527749047294503746633691508961084472214731106928851408723613931282999333809936045365437622262145687807263824116351628585596407953644237598285785007130339481984713662037397350624624146265513153541686272318589551899350904326914374599354766471431587045308091263235750991396294554278918787532568783195384755543617386507169324679575347071101027093432370339914122658482606524236713769856706107697415282433365283221601483995123077285688033562271641514029071246062055552891533271302666007756178085451829969468072643222956322537810662714526453592494599854030310865582314420896157153601467620808288469331377376067899812096824053850060741308193940590577227719034657505065886017530424573334654743525612208654118368941889176582408201862060641145959945357542247199271723374047796657761485725649911997383892714182153169238906444412233075943499114690219239102169600286820518780714090877591240780058864728355250752153007000757327279055023657700599391408687467490441361564609608397100618311424346485997717213425420183277072490420669787791089695504615595143553620878114938517424968290064446570913332520759236115276101041590200114772411537049572903409830935763588196265379078779111240169008915632842688284174837904361564689088580173754563499469451340390641318418467266296564436670384670532770012401765215449757794119264735825459894301584574149260515138968837275340393902412399221126327139118458417351414164539496402113586419013292405755194427331767775498400396424646521556639279616597922540711272217992471301385643299887902073806093516289018909678178617100934661648325618751784274082884152092549115992400591509253553087734508727055256917611233127391772274199263644616911450731455629585134274784566163192236968444197530513768059391993975995752515287393438646968060020776987667456475489562963087647445938235494843866198638604686918023083199854379669240643035580010159197349248017342363097741383665513164544428635509196999643292709238009074123095426092930978882780730422540641734531374522358205937373188920077787174167673620675117578011102497567976284832908665944110407559079852997565907108381348555528891176103501627122362512993255079475723835677359166264146760250550381144745525639477875530721987972921347825876249529436401151016398448101766588721764766502052516416842371850675293653450775386345637078872465087117608016287363712486545699315963167846130196035658109693590505435430693110053751180531252886378552755042077472657444665974865270378329316689022329975536559522264299284568943869399037148468227263147578933994593820527860671190349212963183694793454871815566895736228360126160508272559595156619431264462105801088818641363454688926943999794897967021135036869853155281733707230036559284908497163165982741548073001752973806157554172661085144192405365936447683691745122203232427263912183368988495584790159727406023091192005159475208355136933327667718337478989356438960995830644715176515972735518478131425950757396228989719162614180864133045262516953682796154851297466804996279616236481381611589192273809346495467162240120980526221350806827739753692757158829797823194639499315872121768720205183322451013185866899523184238506403334965043187055198850483842100317549739550570232897984135227036754263463423143055295794851625178252460142220613686671504171090615907120434645255089701674748028207191752930681089838711122255367238604801825704379932627531956267467407254344957922512967914748837062842110193914801193733999482322163541740834546221673368839764600971266493363996588789332787701629944138388051458812290330799218046880627921462319449330300620178121335128890377461475602159676849434885736113220014322568934176463809257817865261037191311668805815093282966269559315482830307335065276582789521366127736984977870081280875177765770579156403639647015562646685594035176234607117477246760840355333546648693244700541902661923256807003402989725538165749734103672199206003754151052872590475817507524081498888641958343457369060248827999641230546975001273087486333113387715063883887262475333189880993230582606101158856128697946182891226070803321856625085115044094321668620929889204911614359112399982846379727542954210652414891453157600049640268319648299497983920689345416244387507295847105800317848911587072684616914751786381178542721913394855664050163817419049236177775289487936848644175827779026605512589023034018777876711109303845017690547143272047472680178695284810983124778326480302933097064005642414234154894001723354336605886713422265760563902700037931479940339858564033310071095903837325836020595341612448595167883966611488172495742873522636745210158966513853806143518025591507154768764641856956604147490557795659504208367739471742735729328023897336105027169226579684032600863075061755866513031313030155559226342468193958665693849801166377802491251031906353421876880030940655331246222900032729452298665800479583203623399424306128569740600885153203300606672945389154451914246025073670286650062627096566904639184617671347293145728486693499861284529476402797663552546653385417696649204796950184852582557591198298799657768631757622800194241099784733274726535249003413581985175567888487862404757881058318407251147083414904879423679739356981662604035528700897854224977352748243367846400584299570187055793144505773805308186144982151359392420797983985101610017809447616451443390017693400390040667689121073816117993000258975927992790768596315176707657997898813749726720483115651331173689300841596084430179105478641962090821245270130352214947430182352650040092088598719592325116427193620132530225248283093988745949446959347326962381491192098768010021752777976919175784162975437976503251171916387439651956997176950541397653794925573625069128048817318923746085259054620920681443791408992383515435344538152951692955423541507951704595804588226778596599036606883959511373519176464479886507174658106483928525046970511503190441277538122299260323709295034745150498670786540830455868478129513894170796575217343228011742795145469228437383543824521414426729356587942198968471453308546081874517653229895010107299098739101845361171394056918312755091908903159723676165517071773547646201080648404139543313878888240368401602941693105840605247220076410329205923167194546333481870895970136244691729007883722764508012976596097119634959501658517183932610549254718860285931300883716183755169947748352274383049293165499615681823282627226876323792223192907228787646005613506699967997543484877317890339936888255373134049224865612915268786851884136572241837725926629629281285120759067468218527184661104215931094041228330233508022981599070230791022731346379285111996062504352531648204097306303360655254336792911143769781265846399698496124825055414512042564193811287847469030992897424731383904795423586278273024904150631636964102253788707917690650176570806579293753353780925792864491028750852814573369689738756648994001982224500397894025069668671473874819274325928954289514274436582667935537312386446602754627316435889362841258177861765079044335383432195498879496329036805323887424846304418344632352075838323279493905741967304376986663040039964333270579438560965060933934115341067922099580621153491993807553389644443403277812050467342442258119616468196144540427417251291443663159605917883424748118183219817763034331695752995457833041842032738375683356945741239337201080625380495262873424157573289135926045334142228059608883044314665278821241916763978406038934015667775719073015369105716729045228789755069246452623701338681752221118908676957060458821339645808242160666174619487116371945070120258840585012951323478114514351094978121045207091544519971179165209742526155710208862692747435520136411185852723974363354220997930156506176121495822767840866961276727215383921804280747720460279117306383924777594160652759957611592396048281313575163906013078295615587589173893203850710612016301629524664840352841403377963887907775467294425555915926949072577611164853985296652227585310114246715721897718829546758540752685637481804730691911448654628815439142860520811793511719297174556307887201295060238924422072591417871978061336965091690241087703371379053673087300406219085986573803694202117296357630105784248719493917852364924151635721238368537989845907542934985898751012038928425888188866567865146223497034017668210251930960036195869693812730035641007898384888883448907714345509593711536379719307775510382308454707633151661306216949790408434573252654483222330984686394552267912948601771327967667629003548964402221137680929992331368639722950502383578821211180370325037604912384107586770975862631820569168088965116527653196067977297037123070470749973936477914728270734516152971025587385982482023572405235332840805431761930797322633522858325064382048954887977535785100028246367447005483825520954890669829292949274922445411629112977061896945397133364642808200324006486868682119641014866641712447176326780498191649744725042273137404144700420033823237490015142400294592930167370339110070064757394079741108636255650995293784976910145619936794151650759849364476425942044082759738837636067263905182217033481079917057496603965428769879049312821767389969344050438795072609195019108167355257121236841021542181137629107164710882102240699092732010669455384212194817448398929466425846019838080197639979228455892333885505492140578911787924933839683692825097214346445831642558762652777485796588930990324576210369610371341988654183657266177899377871862869287569706521913412746922504077057635906461639785284209108049818240455624671370773976890404088588952194138979375381789649960035148970575105091863536045236670724134700953556334778617292961179906557959813980263577558459103765957050853862434524156311206309269419582810786064023289555752166371224521063008062679356750844986377197820905784516398648417110885439341131879836284654204813863820726404280194530268291597248359940648914641069543807220518205607871140578619799496168184004894582870916905060390512745568043636277306295334292253702749622508940719275283754874360343704163079618384358585162744909760241808334874705950212719129281299748351302576861653483071814475429115983011142608474372649996903625569689193007208347333254008180248211007303528693686828226586942636626888841548054626748203134501198390680617622595762968046878882080658772166987452711247217047605687090314851881043594418282028564509982199178583278787128782351776875445629585504945698159190725550854810361078321598411797863935595882861787053033547883286180095270997478699785658030661886892015316610102559061226845064736250812418376203162574812333025010357332173479525661317854678622793741552956417480378091336735061304458058053170466321920932506025090874503011364044023882564963413304219239526415998637342559465116354160558257195739255535050418429181643248482644476322541670517429846227224414472032366203476343765835268582439347378938984336901916582097887590024963225302719253758392237871597928706187745209346210587016350130180147337085723227494274873346566314599845151718730810893251969635339318814202002345951422258948398291495897172184193754407682038476134935540333651737153404289436730778551306414993396801624267847028577509989786770792244602701431899796417859809171840799096395010116862866712485187611065754295830808660839266723306129861794546477858762388198031460079617818485399149201121350850936607437128645701502664813640016550868249513815709609264472025673401992028121066023313625871977897673759309542540642610991817251756277179167927733207181467684165979143978707911026020991762175986688650441314749628743485294346107097447481973630184030524768792537130110282673914213445751123476446011629634197584696222526166820534393472989937806663292641121017052869011898673438414095315148303530449891719103873458830944543175466700967523138471815411036351611226790719690701643966700120887565920369839651832892541511631076496671511325580506288777072959106866944183716354903867047923328230842954287487373313260813090576243183386154757647189216674501482442378325245525682070563375282313454175281876753585371636002267621190213530241493117943541814394538286036251240673843846097703627888291673881324303776789681388951386880259995370785259000975436401195214781550920157872038760332695341970823825719634927286580683413191538738009338400620309158680619692671665262899362764057524437439084330855589301518624442198065018823430445155280272937987135707873778591468683360929188914256783008260579741597296402528221650092126055409889347239452967601461786444394081707129648106762221906944729969594763261744748415596080249224719139869295663866481970799472834067495286950190985781060758417903917071802382012998449634823963116021974599587328864543000471596154149668925484504491690195936880241542810282883184627408554378158373681136042091814152008155951998505529633050404986962462170253068556451766925072579617356334452088211256630087782521672730672400601378257365537185848615561925775414014668291644879102720349875373039873623629649337686101312386634075288870048346237450351711779579228499089528947964318057939845510553939039754387894485281904628681194109717888288633727600715735558796352933861257423123438521061568303336011280921423693143149454704220111026131153901127459724182483068350639506939977709501365070384017687623415032543993690697231678029805321081485023993835765196810270824655789653328626880764859668516850510841054868471303403412770460167864392368805715026233614772548462081337527487716402146214918463756052464424556081984794006166250232581303853452407428782997085220101928222908922518961229170023958736550839221781946012810579946119174397438825077188494279788624247843999473599254868804446619881859930335068256529595640555973166106554430486961042310241402245781832954192442765034039409756306238516168338197916064334302579428740426954638819094676299805549509687525110279704705336772916367476083665463333122380616381113305275972373651917532230114861053604289460607650732248409415207847276524737439565139105879198671158196717908541374054171221265641288806063193262491664962872209730179743674100932482557921077312318043439890149400750564374921337415101214154958159075382509960086242743982691257365051674922955763732854100316858670590004035513660585883581654814691741635139865768896706386460720662217889223901254118951431522986636831795623856898060629704560428147508402339023343260491895489085333560505040276034360754466235891297983306403475425546979734945656946374754110080340775211149472580711956467317867041009204168028260837734116660011206936364242177793095661239566438693484288887836090747690391458566161875162170385101470059556255428442921259571928860997340903045194298593244343705979439248341995976895946142961883791633305023772836021506350314147278100139164018312733232453127777690196980816415358573068961314780916477976406696264702209074463926962990783417954762309842417685719049848377322641872317678849321588229328112203198427121844230327305791976940068701760595205557935457852834423433763210758121485259298072444051321172475506002024524868273787424815906992623729812267013501054337450978424674423633951643808022184442606747091115381405819266773776011470590003371983258628133338060226321614355153563520854100979766385722714424405540916144014123192272300730019936789248358427466466102330472319561239129348275862841380022626080969061054353679259405849166270836592200062000701725969679665693913181672729096765824279732699138274234867149909455392438326699840047326612236131909308024735212573515933615753128556880142748270900458879074086824960430577170564409781109487055948413945618932312588282538070951170780686073163631748611791274238388095758878908395049614412063454513596755270976007489273073619811095415549015762560040492066465680653081570067401942748098433912939152956478782675286018483063991998244578016322891835401413564392327532562048328945191656513499319453994603060670116436064078059370555394996950265034341636254447960335982736482124916252975823891335561745647065018236417011307561654902342649477690021606496201684403615465948052004920917300481789663241990770065687845431689462049067927591907813529241271005506295226328694233303639214460058659434572933233618249671274906956979764394207487234747551588045864068893366088954555533628778037267779944072809489157479334207712766653970623723184849679512816107110818053769322908742180352283571367563427835541437484271440021100267876739229674825727524181421031430200456372640830066124812020214536546560672125881183580467549710060275287791690962047406766626374425027209198542735142819136700504015871606278652381439105623314861376354776924279245204370166240058334942785596307741136305965006974573481599162765234088921540592665143528542705382983430256073219729293585233651111304011407300473773921232258686261810148602725462419709120203232249016524405757054240975090087783334945524832690164926634823021541413504714251913285437331473081050189620363434748702011536419924085577003349351776546972860028002633421688775371556122901317931343972661775632185341979978183316636402080226161666457366699517735255025933863583167514906854964160930487906063665544483247448314443697140655517794862042887495370761562065637565609210755471213247044981509603864083146595397163896978314502229515943161759203128423341486549731525355949050952032003151845545498237166846017348600469342835220288440015189322878129759898342259826788822879329600330358337424013617429467125519567730941873227751209150277759466666460750430056260632025212365661680042948772491287110962943027961883703953742198200002217720168424032745496745100578008644148866755519702782189897040557630496059440557844738320309168920718507514969640923517383957015238688988327917120733740001132694539893674539198596789471754147913433314371244817378994086056367864254501255907195310253329721105176036987652983957984809311066723161254814329424600792256974438125311528748217674069484567675629482523603064872182843749227849920506178148751677325345773486357228373089721328588262599520545432066790308454652998322038525426482239710263406529860804384059259207437478194509943419981414196736851029686898370715348143595339659275311860076479898286984799604521393419071932233789572928288476685492768969695645970471940368802594701159458150774877517567542429507393800139895323534979491034343506420083351371676604771401053447931794703288940187119114074870500948484747836244961120874181801116816267065668202939725884074104677359257707482452256106617211023640379940571586692930349984322211755208480248561673514968257469617405476875896663939411648087364008339150502276335857795225845977577739227085153868508101377328038652084799464776370287377933446607999544263272095652249760719255129912408655166587074517076640225080620418587509818390886621918178525200740470302269725741708551983522222072800463153794014171433919917133490911131474047734182161149894646299392289021114399260497300197638107584643425057935096175671219157637963343775016724632320266528256676994787236567822153667991087055424217868246833860618094736743190406514818421731820164287701902438083865094108874787018686381968598512295919558999036874024987488714185185087141408558054067028525800503925975273555625449687498951168148915776408602430134479895395658398403175051638718979936135365864856391857372561855810401127386887767403442113374549707376326394110357299454177857701674987103039817810632594015381044290736476111821073369949972762335745084455644913972984986934189054550397050778538450700266433744050802777154385828914794885305738841024745050905651841672778306542971100462373027826467168275217462094260224500723417645235877764770776538438160624809906634708590882800241842550253886121158460343829874689527294720015837834791632208417039593139455528417730263300631253393746637162327498337895616505758095064044614666034822315451610529939670906388007460153048155751982576111232924817972525706196830203079652768471021847251637585456130629817940475296900344453049948803609904780131670850698049369739844644237137218730653537171336947096866326623165133435997847095282921719920088238928569344841071526084001852974947899073793780114504292768069989807367017968416706038420617760145749918977674769950783913778653747053702103452847806428416492963097874448611176946060896950809333999007378763873327448647524395817653758299449624804115934851626068146535686072594909578906037486682345788313620269336487256163718783428536416638670426979061444923316023324331378036840788987856493577009184991148673474527011573309483668553824387369518300734604179629537209098796626148540028136136494121158314178187845888212945661836265026956323094594228372457937399678803942195558479181722376018093540464833692595432302755731292984379963225840640921098615400013961163270623245903085447244908533922317882002030840485217969931536051234187870204338861674343556608346154140428171878323405458896679847394662941900197380751006881071611790884343552587914457995939251409080733259664188532293973684629682844424817614090980692425574494479273051435324373777593974211839848251339024650422208219983482738986527948345242468020363295633144948431972810342953425977663284628414622801050820305909156201032183128669558705606428414317485174073882516143266164606936084220558280506122987482177722838894048367249744645545857951302630123599656510786886109822349762487088605527535763677439961614914835396796655567702327302868656804869094472188730892031034044923986643900771027336907325849792682004490996202891278490686993057398183683561232885450329239106277219805949358917819978507465077966894884732776039051259447742698606201255393070321847212381391394505005388963490124141503882838460741416460803189893749072542756330525039351639891265018752891311149108499947780613983305054949804820336474275725304847205806642829928554035471883170508687733641417403906975597038194823387821454511308729945566138026065727780765024396683783734982688270557764965380834156327434873839203550960063760271653924655109486999881867730415026837065607029201042915304786389711633464244203155144986286903466018617803845270678667792361297808773013035052265401518807619611066071527834676559368565847351149423131883824827881603590283440900939349384025152777715299844814873931353363013343736140907667305830741535589184079782860821868334245464019300353606232079950022170234343106903827684276745639605696139254099396165269159450591678192577659883555120328916017740525886306019825802339971227804800724834053160704019804794047420644690696860062804429021879274116082022810095641713758986348941515604621115651895538219664085647210442995463105533384690065424010070913783500959316941787782711912122891543252375806206141601339457376057629815093743513040058880432222461373204130920879494937250477337019589776590607469865759745761229445146286943208350963492192732562013452813011387657713958174922408656443214032941672353798261330582995881352263106207433079878137159662550981527941246869575865363703071642657107438726572569249093798827984726200705060505084017213553748811939364436760331554151357485831055274358444133606595947058704454990808213470737078684859554224703512858620016618573086549740754048660403166975109075464728694318232941233735500708442790215263653377396101691610019519882148835481286840429282024675764227179388242187890696659734022096088547494351302617389436855493178652065071613310417360722411634703147036005213475190335259789660741119735838465516598355660805991479189416024212924026444009567490275651624016743730926400584668059910455984488085755762530408152099615184315451276777585334332816797246018977021846877223681265046380038254762990199313615184731248401399125194951727872886911724000308501937525702352815800198874438235418458365417652949926241212407214170934053655995603267923533717986938381825932179882335641213495315396389903943515241349648615162753122772489275605048838402284267694890571317271448448255916855436140750103152570865310700888491433694624807050989011451998019958354433673770603094190660265440995951142788799072299496202316767578301262663861720272990267289301028840757790517704473992735464859004041742090975171539834222236142198987038973186318187223427970408888459036032716838141802714140743267006105323807588104157867376866094205404901450091067136604443065909356746918747176616263597537780898833916024955718667524446675446436408391807281719507260991722907708342621945679600535688296089443348092144998501798549383040440007911902901086098883991924649045244238095251710997438355735751553402130991557882694998762433702889988179326829261823767147611651696955174618099247726399117869395596643080175206379234778137604854575616260442081343741970319417257417149373521278668121409700877434414851639245978494782569417662329767361239956168270116213025540808416923973921636558529276587237256576087673298621756460410700853829271431675974188018004040882224858084593399992516236805771810836487908293234944346085843520111905415279705786834606963619571105908300992543193796944534694822620827880454934696511808984374522101105909946757361841334568451977187315818030724906076837520342293514132570986928053746130467202224327988725749662224315641663921393478867511354175539983119282417546929784689730494666498442382054674478074109346038214905999728703719610091341571733132181266740727702933710646942523870958505407521984549704570262289918046338904779335986010476443708686651769173991375358614156366007698991891174667732852762162233867706139874736923738827312340957471290382384752833379599525434104305326051282107235500734779836847700503524275809951007049603900538763599733995106314232318289474692872934153197188320155352845407297417912938863099619348152089165737952098042955180904928291895930244204521281057643359791697194199277509763831184351474663640872951444791341211430732744064878682280373587514183112546321249221300114065495992246372885065740061126304709773504912758419860906867084989515155790748175732097676281729129652506492389069452442787595560000373816854246335811726667817138038905696694323590918420560330228826153496436318526967445982546416060472598678235733026970550355177871314293704451569761369220983104199826145397367899934962476505713824729592249663861497519813760292483003889907164143938519043661216676318649145196269604839135082070376263541615627485255913316099929218390000512864823155844211499915556602698626052688911155996242871346091100976655390048053384283455359318514396892732538705812416320684944702470366377718747799664122724482004763152476411794835438626674972895621152042484610016701212836791280505835615989467350580039837261718523359531805870902800242429524116125723334495674620403017004185460630507554827130266175534194237383060845070904933296271789384140701433882912126044109913239275081654475234893098730984899379227869674016496376209900729838307865558287594202817464040156211241138330080112539352807770240623354268523618636615758944414737831106880552045475462150043742642562346151324883188456311125735204335598193665796519106954038795034808215527466777665773457432560077913223656765467464518327143802820119981745860486806995032792135946011618480778066118736330052011667909429996646405481151433515573594762671935745064878431114061446187225636769861318662405688985156031318451898575558995969820234673038432964692388541447961241983196512745623552313939236450025988769038806106003037102879799593075651846979909370748157817247526115996614237095176434893047667324806235084168290308134988097969009158290027245688617862493802756401014253351383165691629810320618552607960148547485647756863028914516493858473000154709799476048819669437912644674327930921572681622321199638415768802081337290588233533829086349353663808966314569996238580070399207384835612248698862709014269574982958148853551671141975837741015700705540571387947779467382073224341577246494978358830822118391066784663482876217260002838517006625129519815213672825957542154080091043196844340345052179841518823515134736519809281339258145121403948879681549527470674213695517179337982276559670399805816418791287227004773784444653419072092285441218534175234003003560994072914507797557370915872675795095356791364139162018938038038637014527373803797815389108710116062442873737059453137473662314907277699427862662696189068602097947289422314744980025648841748532693534622085589358262129347746958481212008803700899437176487869682434819456486558261820998983057437745489546987069293410236851615271919057027206015560588477856159657736473072549448460839607982998817180695002901409680826402513395382738138605049383711332088803502145046361984310766718268494532142807092541563164028626068548917416955821482535944656400816198265918595215597261142005773992077553196880265970325424480958933083659755135113184294019988799209033875658251879954537842946187841400704526584506992747205718642198227318745182507366329915636500101588953574826172899340250368004615294403275641302143195548632772998984180829286492102418251247816732230050752170015831291095241256827635439599750809125696082404761520387737053686611124309986482586291969676905004562443511854145909188532249229577069726062339848031740365929315152114838590850222351233102991705917561049102724886430378888209460068581558259569810556237176518887951491776684706923334906458114760102492760743756680491243572610395349215401891174141266821823352114517428610951387672029310664618360255761999811142193954656569362917166048808520447247574794222228572923716257427057695065677302544226926838997129785962430700132324281924808425204761877493201236689270582336454844702418351116670804574280971072654957019728633492459198346550078594605512679193547853692384306777692186848490648428458090640582634880476040536659646798780129265017292096402163244701876566077593323311705776133664903456969854961086434950909319224436662219440080899084652796633015070609102305859876968896251298720471418290877748156732208848554747881740485161533089701389109632130316945324506816611103713085682454059184450799255761344873754985688121052466583064380886350836279836696628649451955005653000019380143132732364648156778079450484625064828762585656168377218706055576879348243359670874652729075811773837286072374852439699908987917378219501235693704041560368547710107481155465925966482313947436683401993733592671571139852207706309979200632456020448585830126177396415134661033220720371092545065569048075280491868550352988511932476388107269616524132403752889531684220282219383624166377020092990504485897119290259748971848397957774821266870473161503606775365765463543962159657853089891852682765597454127229988933862790882377180659633142075964033679566832156150185022273936187121348182628030089233345565861517662995952266596152984382498964936172133878992726654384031356072195016083780258394482029560038493263086360008250125564558249848531726295217436967449854329846550816166223056775136733203136817862059807247336750280728868956441195179983585676761990158641987502980663238498469116852537763051205983647063271945464246995978741361651433464629303802184359380619958224302492945868000362798809303842301349254422221025153883831766958304200729146765606756256326733969442554428818525533837254002220055160456684467916668415048031550991277458241820820645818030151492473328595354050958294071554707729868150035843303826923306684550871992107151339052871760235974858306102076600866552221020965532726172792578123745302617209498657967697860767123143561336287642221958559246508869939023245757909355429636047913356289452602337422620550473604551633597477568193462604629068614602947865009344153284450873059787214323410126291301545021770457608606688573450629333237190213710234992294570008395274053034083455849803523139959448290724612253860923386735191500753729077053928283215225641518917721416104227394655684370308888784500812447896089165393765439146618466399480320050971537040662123769444884509202283243625179314522144934015583405009758275656104505508211183411306013695309026343443711949644202948636606086171186509470266243520515036179064157014744244393618147971909363930874020662565274457522470196892193227845665930356790281618640989728194323379403546736274886532067652218112633121937523751869359956850784115384228483211749517959545578977679393446561171408794374096070327771325080553078915443619793416700437221114195627587174643721052560511824405642339976521657331238527467608547020726114767754508375698511371233722439814948909389730699893421549703796296921364250320929172977387188838421456780868585672651304553292558628706406005800226691645251417257413150916735938724602232974227652736573981235759503593025024173768929999686888490389053386875828772946852491718261666665625657447166166667176927950560448660839113236482840065297256049151177505393286527561604377045892907952384411646988060069458721810101384513981843676090220105622987406020040709453232146050634556527662082679717129052201644276834131877914393835317245625915237974855962061084181641424778997934345062242669437837469769896913102024691713360203923515807773647509003654099392190470669250857470767696023869668425001018489898377569584069179795124998613081011130603952522028506114827130870164689058479239424859497918490447216657665994999086441299605053883151878895442463330135540459138320240949659445452408872852673955613378475891031147485696825898378657770000890147287048821296322348231649957622972597037401323720768377550460292353936275603380080689235111586720631024494698202448050444987377365916727157638206294076799197993719284489095316651804607966297222805781969749021216007828075838508231032746461870856681720349033495359309846535603019929528970922151597946439698132442455411439317308214417916335058683610424594431821537189576492300042500067561593788586632186084866751097277678914250063899923390827484410551658499006341462641683508805037556428179899293691184918671574985186397118037159315107277784616620700353719569126417104704436084056954069147862502389811935271703497664533469231090195928128225425874874765190962816870042616262905740671413560321681866858668704741856334617682952317333796256089352537200855341851890585277630863911298354825434553977414056011904799228066367510659112135155095979784086465237656479096829595270841809993627975112000819015697469561030832653428423833815891475401181672724905240345534815088934333542829003416132454904281198896236599918189310871095350471076381910121724922634581911071270994449650938513291316618333685464435704916994893208810853247964515779762333655206659436297436350482644255685200492993439644913112254932326239247424294387296057439646136259591929540804509656816852261125997574492443508979025094861002445372064604396819638670679663214939625695304042657408083496593670076259814207639789788151641104423586031223360065531215981975575847463824618358794857956902584214400333370645638705536629257226606992698003171147958111141901941699479984987672756347293695723399504023449404406351302318686323633415004604644980061644240803519900294022808535966965588857052418867956169167109702829596727273696576682834381687265711574170778376912521187722732976732375514544023595923120845472262574211976291739075580472602462617786452771360311953105328882580884308579927284822671219765435456116026801634355804325921221301156409092529281340840843024774549443748635618815297335154812218187595382730883128540436021372965807576308913744585784156266799195514233945750941766592205115948378984327657653308689333277536453589415006181782957805779367979773510309118578603368563306348108605361223558009132977333455550368728252175834423345561270125043769042674250038062406301926702783819184595867455111805807912894260229173213961692917233713651840553951350210989576184895143857058974797146845108910344030167207806623630030337804450282704734216366700443151233260843331230669514674468072023169605962231197097712843365204572983159908619234603896187689878950073240821158951673343413775010256947152835759396394054939333153332049436638091732555356901207166975796182848675425130393213382711798890480216945865009331758560071581133563458985535892538260767728042686575754267485652873475716117096525972126586449643047128103595731828574460540353769605828635763618444810388366893228032447005343778177938290417727610165229888591609990116741744326467539417624722094832981040086356854147054735645058559067898971079560778412651669772489738025029358460806410562635427348695856886820652733474665106214249001920360421722944436642858918368901928217053818963044476544368408600006353556170673233174368883002877507545231544962060951860371274092449096008559836827487656174013848104984328314954233061517105681597756271286328286233234664377376112398702595247505005274144614383387608850077453519505042217579417122580087440693651539501151278836004731637680016598722843857645821905765720385001053951516609781264898625407797615585011752777535194347313685574824680183408226525574360576216065485515853059226706616820843725662924558726879325731508329801583245927603129335502764316736827066638504849677777929245208949697513192393203493795587419058620833189881028915080117016725929002226468516301422617613647148608907824819337813654508666316326864623505322169266611976654576691434200244245139554901280765681266019128859449944102701485585255533186190665592846508324784480270064967102717533543284936797619620583733191090543489572177922048473727219839293495715204551763339863125150577839732116650681699034655192743148678943695465559955031816697648490488702660981583721069820079926636149522295540173001679991073017464187191982047846546130355280342307433874234116211117012041497439177872300468101299613334248429586243904422813961945304369293234891080552105711852978297800096117351007648243211652329804264742519549515192514820249330017347119702074539683685773510357383846886671899073381317235837902015187058925913049874292056843105510547152605079474078694809680195943404220043217476456094002875336557008960197881084746245133628888422425945284355933649804137455047124996587790565045558118198749723637695436093033229966228168625534002038574000328594235302065626878093785501932969989586496801146205899085366370455372377282273221194950372251291915126933664770069837558613229980407868670987544377227782499327419334973061342512898110621819028787002631281638756231738326423095823759595025674907048777502620043022609093351539721721947354604999201875189754621367557190068626041696140461354044307842006839521760317546396315215655134408983463728762273235682696996715100005610011058402282251190337755072884573221807085361274844571473421515792480345390342874208449517482450685630468887565080815312107085418814839851821653218722026597770100536567676154212368494070569372678272600515248840242940972137515443357362573052425171012466796455195791625314483128341500294734642712613515312383112752544967964524108182359577905937975222254558685100333357977223719710854435716050609623062109713093391571863070045521562263756004410234423518408694851254853051518125614440670252717543160110011617466754256090787092786761840009801802100084043850489514394945567786403669725006581210079959114590739503929542008575557184774235063816111733029381309748503632674283753000324936834516864099045887479362725486111005224447729299499385790598298936293634969381698694615005389778918588400205490704693164954039626762376478334265359312709622480020590641875448679940875529505835084513747313870913278771800995053071341218346509232582385702171067574426648413565629071553585846830081704382920003591942085964138716115695766430706891003310838676207526538918208492314217860883258798673518718445231566606680887632754187300496375096179605072328931235623824975358890158953958479109243009432665813242392036816454175776868023858830894531669664670473901042888859067952808655727186281392071184694303608256146364176425183530554835312256233430058339355383154216373358927700597130818063818437406362233541280416219203250263757440117368921146682521542711947105190262152376143018590903677961330206252429032487086113865373809346686331016602249212893820195310609569602857054069423014938468731250683110451585485439168534190984894984326024012735625985893169161260845479363006321438650584781535810693984346629448675851982734501926922669701767390564731110021944537466455171128801540242481241416324578605050315670329573074793808286116624622392524929004902116458617486528680061622786455869400144401602890885282764812845826574804515995247485059225885714114028384577238828233682160980849136519241600643695867273868630122597191821027574157993729905636392128662474412298154518525350708221120388982671776013247103623104819783615691831808848432452313337881312708041044769765988658338189936805093984777906453742748651826321116518545122137177535579489025121355249946716648273277301269079364173993721382142056706568744194234589090968829868018188191199539384593646257582564276317253460589824807003345000901559012284966029085438421222877065098052565964662365343325302926888938513372177871317651131809306700510876820513237587219751611565150502622887336094440927193833628988731954593154250314695831156204635469991154010552296909663698730113330782827149616184591379477119339416857545400996137811044863822590947867776758242840206115933952580529609784264801593927025441164037782605224433600830682468751423831115385022147688111411285006433182108223259865366302346404266944932516627096667030823163331090970520382333315249721026879479493075333535984174423078382271954636063484788993152043962983366973741232507263557817518947908814502798400480613647576306558150511209114578261541050005763434402917848643434357196744511271227727853244925083637672316818600631866584560537531248591864994132626983196999111282916521182701559969039580371363119388542439495839492128668519377935457953721276360245340542924137877267465824753899029032969403182995486400464695848055041975006001372728823602611594436699057419732446927937623050816244659535320850543198342104616256482409640149801375512466449719511799877883403127048795363653607530594917203164867559381058100684331960193354782255810991244518186334282763860756278564480890208674880848273996296961659101858766405474228196278775272433086199989778300460584607169635333688406133357458995741179183146975676352035757454904092595368819987725265445545930498174622721231157199038390085880475511680243654192967866922793391518690935492489184466522165902478178077737332557906949465749922342152705403480186728641937041909013890980070206132704676881803500799616125420923178256426441143571865716711529703692174107200545634981042588664133158662364170047918825436341330871632753887104245423123701609449040947467053874263383138299658133237761431458636233269106832844544123732197389752401110013235759349469051844373035918730823525477807493624410383647308802053915067706541368902401127853399296950222132975747030967735451691668049220933513617188176965000062759406476523863199737591622401435612155591893172116884463665521325042868155439342594937736695266772943873645546577276202252971182110155500337979747063872791068727673399691545329519556718886559977019568183546009621364390469010487298852200112418746482422760597974550690894197747815393859322605261176779068479349493588573245668153901152205554042312271278580198542565880103313770574174837226704986214690905114465718719099710539654587760238760235655172821954946779188086626420890430295928028184503619357184173563647537926511622864062679735866663032747386639133255556683682293089727410112480507238819051337418680544047743301805187107665402082242620249291165178793099552234553413626205304089444923326429774159648946113009134322084678840214904000048413902321768624012370442732211311230533132469960900691504714424764217612723677169885627243575504466857153581591521101906776278236560790719744981451422441087161877179474455776622408200012583648531810666053158910821342419643792400974551987620529920456651830795736066296565289739334758545516243753990855365087926448504199860205154721530008267315227789823850789495377205318331005737955795923817166263992913208273311541528506899747916669639394281898273055228640834622471000768119325464494210644958977829894499224396578823721079445567333832173246906017156016528148979963197077838653902937612997888163019101215206956648886951095669560934801780206728843790855965197077022231815027308420000474206523425630516695207958577828613413732475126525359277426081854250143299175038209259524154323097394742755904211821227850392488889891198281560847258431771767188849689307094056200862702487022441616248105086745372105313551081725335157744934326496192438320635314861224127354161495653585689103344269160367877773675123256591809085197835498661838984812610706051997289847249153071954211178012395289405304380246411093508044550982530172817847716124488157112598528992524956274197628101123935422471800053745467927952402166509618552370058249170738539102797904721335518711898108414566006414974014647934730744196502572233274092603791476793817381492734342554989282110307985250268900666463517110345883137882746751523269410959294836153084558395702390814222731344238088495623804918158013215046886779820267888394265879006015204953129831417129046512836890689374725380366049055952641528373571429070680432080459288886528848969739016067968475177776751127046938366065885964765214977857284481638270208220954437914478121959371055303433807222928592345741859462276360312005730176754075944626302520262567381650389257617872146379967659950352006480189570922252620091070659754897070757689314066477108255538254060461447306923611527769341368100418334107284730806133568758516124188020856668517869315783895536845579739390244480503658038434981914500689170630321343758657021112699324783115427721648714333118044794346281521293822439084222853206286265922242183264664472253648056783556107585943678532427995662330953764826442413560703559129957473750364012277910856069196665948481909975104976689483001100085791095226047242626551817629531721986455952552662603367805801165483525419896671300898505399081984390090003937224460106887764871603433443853480050168130197680472609959363588779164964885174757445181096176620334543518203491817084258385183798665518640494815113582533840084324907342296493584438849245105897029007119482794588431013294642543159676573254668029399043266653666356142784676815942981884246092545433362054531919274535776230047858984783507601482724765564042618923737660597349711948267809783193445147208270530320735556114419498466037155371410607100292258520967366456761111726009116826345757128359789065256954547898379376319923296676311518921057710108544968054382395358628542586172939356388666396918425968116736117113950476504407624917793235102192959738294085137040981788714383667560345038415495187435358241305370411619587197835859847917412226961269032369285236203582210954899027844914295295058539544242983199105361641440239574235070989761397600707577305078610944861615109942374069225672325590313145261113008043128069976533757512892597782484866316743836045874203652630521437524335908270538603765349480651906816390394067746174158880468339012353416782834697481174900485405605932890422207126448626022364125933012677664312929088556873269494921906969144016363510241784102806613882088390714715145296612161321519603894262460413836107989847560953488923279210635783795863084202252084585352181801896131241184350911822839625251446862937496042891313619194590386277384803896602745860375866438825180090247668328413750741175897393019067650885444216632576598292019767321423135398166762968486188392710722683085266160558900365864218685060968568351956193187705017589648940569465898300951495477889291890350604767798562683102876055413871542399263742862900831493406205063810644194746743894768792263642825026844375067027170687816929470631157487897674635852251202349207979384865058256104027711662591125952756437228781659958988285671323852404509135186301121873379381910473642207583617670389874870480838197172834976145505391497754835678486788451581636585085213149155393946161608554890468794337053098051912149086714257782727482633951586293375860953223665265843790803807530683281277578023923676298819731624660712384887711020261268139903570999358307110882024665974659029764174416966714816057765788523358655399480984256505517396160619878412621823929142767635016805836886043629379683787882263590095699729328295272260309496621596597631882607782078480890345960323136974838177402819747517025924378451609548671621274570158132087160887314213383024452117065169087759780786586464277110849853177922820754199499627105303552838672575115613700824955425962240076119659222208371542714276001362892479727038910543813408970248628538697212891166867229065414273364483563746646843848044185807687388518605532476453941172817687127849497058445677794852120311916662610341383408064320588573798132513583290834970797034137661374186373309914400704076015831434950283925696222194371002994498146693804910138801982293921044473041969433255793595915554685946803312562453549958638814457223349084204779929798993140422964489741415545867109373343101430462167380024652542639592307793977427116982923546778584854856581309924455715151275899680758144699842258444700906986989298583879124603513046607712827824923578939368431740948833124930999499556063806060446800366499175802558320731373968033855582215291391785398126856846766285483951237243656185838253489371392597369570226597663513782617740964036163365656049213587121283179966682948996188386820286305299103379241056140256766069131905347243132406773852273640984234076741374955248613064434829158704543514363008735312994451019709045583852923707606338503143000218233736653660744859877648411879536016150150983622524694369143213470334871921511261085235530755591985669508520571887706271051810292631010121182864096254472787210791051482257909665009764604573693828209302656244310645443895393771172801470825912828978562899954844097226631912321063607187476097309097930741781922377703155968586107105483149139535238334122280226014192251191093589660251182707461529046776540423643985186734744354845556421429768532965708660993095089435835149021164372334646917572050337806757223182266178793452241862325213238873239042941459282973651204966031646633715587399201749452542803267471622347471774934429042865164725775735036560864163574736187175579213718757552792808414872575579009173597762380507491385792086025409242380099982195048820054328117114942198009193670801641563826795071215456460972471651727982284662462504541458435866028882998460567875860658675073194285702748729834790503384965677915586548441426414076688458269678895356113296921050841751782276533262159923737396224312920267349962249380574075069513267727773007074211871644111431114671997224733675177311501572011484653168009648337607067758714422694935188192321333439049597602838857175753560095864501066672360813509840962788658938319354053739316985919833929583460005831843898361321780036720940751841342670001241223250834872325466095357711500263915574886926250768798016776729410423357540046122008737240775333609389665583047644334772210638735600816615227704758820492548904802735510584486751963318441422610620356059635889201728221365871434769605319492909989300433645473960352325938253162820468230691443094874485141169968459135794967431122334060563407111064831797735867807000738859715760088208194090664942617366929360136288815041070255455880962884492978357502424479815635566963263464609325304253353938468813917044989976797620422957756662055516729440490813109114699349341856766286980650409834515336548534499456290731253221401226205713057492313078815113350207057638634745449967976770912493199055275592774585499836158161102851737389057674501117177627429408618952211822102342018145599387638612422297955176905781408004889701940428875396906055892015463747184139557035347878676906565821266274421123878625105175015877910836774259149879155847757050539467818529000527316516725934291771866022382910801041162102132014420671709676136896408314125748421841132337193586194009321926854562115876246348475322681097702341677114701157601221498424905953846029492340263189813523489873932266052680158524030845221880338589582056612401930670669366170608708811380870846566442745676490137895669929933358606268225789356689122156339491491003609620320280703839438031221096459312840720943613380655648839856593913262496974296486907160804096582570089313836599470092495878557186140531403408838025258777011026156565498093490402652054587875706218852386387981939043398185603004216088054610575182715679814145870961784234638303546457504163412878528900186300378489522112965001312340158995686577789579941012336870447382476906782687190808249984127238398404740014495386652591697479663015262987453928601958010697538675285094843649040317968914005329940226201847166096931083429244053522209657565958412596362236358925996422244955906907677638313218223736083813669696247982246921396860274411295455862189248349054550939288600990637962710539099815020913015487795661035746300681603568229136865912343262845292002229948372972710412113345519889040007021260727234752128916529543221039945513537069504477495830403327814307116069260088828364571052353741896787116861736391556321887944750237914089104141071390568907743769931165330464002930481848653972441162725959422496185990404642680608226417454560817191816485062912200693174718013132681887263630524501181979397451432707178832661640836918572941721192365829938330141690434537626693459224951764381289664922888780531394178140849344818029847781286935968428777438785457007153178526204856323716161442155191002586037642846464401161900021562106730593725497406000798284493590769498698737817211435625326750466022687773094011774437864758932192315953454412740340298035688544300252121780255417971437277096595694638339873411870463130815095884947274037265735110798302765129763233359030737193161594001585309180199134410578269416616754252170031866253993142285772327613351234133294716610020931182696091822442946454283251261795593912944989646096322464542962388306509818053035299143214557335275691452402045644001987652300120615557368923830957117259163605763675562876641646764057388305645090914118274493398988831913386864926967376161007743401903473919658263104713527246918162949951231305410771478994380305746143753430238725073530790302834796407105153121394122984756583415037914362791422269231274421166276772504881266986675846731581195247346762572784096971398139262399556985388557705243095649244451171072082066973432785049214111709280146473222147141888953273839111160007654961394210711261736971710477546798337926846400552621571986649460591471636126989305574174226131485698288236886578221227230731499252439613362015227107037904395979594997672421114028399647067935736251539624514920067364212987174897409858527022680169428247804183823500914933334712043137490655109113386542909430654034297520673003596395003740991484309386036766381921957010298736088847722011640037435595221093919484205699857395666418796802490872424848952406710559574980690093650088809950077479202870565443587960495213223576930145397286736770366972167812449507132319364921316331188923189459748321282422961736297236233915612705103280220567634431349387206319530710773349314047394858705295177164011056055276081209261712474024183428298676488481907760616339291417745102229302234212788759903809019119946810349485389116828273439801767207730520339049218904654377326442300127306828033941329437844446147867245704047274792464104540121631538763038694668001210034948181345263785808853002421833633785425761573594814731785227982979430168899628620067855269643287340431205820405062568480835750202164129688608828951237565696974585665075299102598740256851480553932265569203652804774522647112601132564302871567355004286671723629350518104710653720760701253947301973325473494211420730617088281327712677901202210869785501970226827191104143410896515101236263856547285060664465707140525025731166263319703459079932860871168207871846398650332404745451657786968155260475566359372854608637670186259570137729028659886698912943235837079782342493547381302084042227875520112131784017672764112897115468207640483905074385672732353014106934242453529899101747976797292352259299064191246032988561202459428068859827527525339273404242619884518428787685228370659693740691757026958987115792956591694267349102519215419635757456901394902370365266038104019494785537650618337025721714094736703599542844782626041452690391717197044837514027022308054031311140230563426159325970796634040695263086696704816039574351053387582418907377921697267454071004019115641129769697021250532760552929456089511591720841042263989631045196188101503301193925191722663874977226518099702182206483673508888217142797139737089790095371790368738669515993186350951595441172001457665733978191127959273345517499821628140258068606825370289460608542331834853208441055849282224094819684766586764219000241321229383001973246665841168297753073997823359508561795412161421708765010946645131440378499042135276793771864495521514073286314334496576807394903212693236296037538146113765242353287622984304411365864856475321883726365134113071021009987785892714691221061197401729693011231735493644948302108201630382733162798090576769989844525553642634492281765706494632499962697997831706929006450257668264314747004740310781832632789571105945798120190912220556719778099278560337140518937158619705433853999707596554884684119126552774361150880721997386663998535956083999923266396380871494842409587362520571638414227628773531373810811941639083170882946799472082411351031753734168359962145151328173206600956833409003475920493526105978047590025496982349617087695957674354669779255494110766671234533492247306123162053996566119958144786951520102502288134681151110979350281233469416145649627009528556392756570665989889341900676230317991633082083256169267548698919050702900776657057032221043303402008099909424035639125102981046747786300724499765524692887058874021153955038772527301280370148901909525997092666113917508308571067549424864634557222934308355332654557027789673310327941143766517173248973910263664310524203048870906641503367838343110669766006163797705420190171067026099169191701889639074799767699217994195507176509390238066286973387198439253787216705568022646827773230204375863901094328330773277065334743508948214600938029911584108487125906235696169907296506366573899770210464228988835367953938741141609206235532433826808814967135328658250305287744656094357620377182785814163291992067121318587417896870193047433915497379534421447144477434566571194761467222252426740105808449789175734710661628209513308218669378999728909391176442876401566944446883536308214314681443637428994689487026085013575291762182385474717666319999958344858492544145507605879106572549364949809073331577296703737435545454699327371906774112774541438037528743483669892338789435480793949698942292693176973352950025630018566033470242570250188672294091918830210118604373754669090836190380770994348405908477516835753872659175698125402675736126706920307823109016220583409632101743129078171260664883391079525843072022388742195458115328772777463257629172019539027485013721835171493685889717756191554651087831460464219911418443473996244311659973320326695605412161170942227304033324204307887462313852149455325004070251935910558397283571233189860637750247065030509005648066203962752629859931233700945898050850376671283522236850778622143410997249441438501345254280304087253388625243870733936565502622765813360078387001849851277844153728970796120033274034146877138542319025214417057572631227614310015266111182223269830738279780831364507367503755350144789478329994742416997850395458198864312496201545992799121285806715006874934568832230861831094000140923794718022215299426121288267661033488024529974731154609522203616457881247911817178405006218586224105118387216895771234685694942457118686201121793182304819867664668213653572404329937643356208308790876607241677643487031715123663425974355530398282313738358296988261145110567518174559327063754633382367224383233297491511688879368235272525015085448285112775926468438793118797296243651197377821784288871701124529141251672822145186473934377085574565347678011494929558924377782499450924237378044839836341120922271587155802926293716436469279313896555293127581361615372708383993559483137669893720439401485879776733181335101690549560376152818976778999925568567563489233742063698415511334473853306397843364834982814236555738582508475175065099751153137013247950186505909704467983149850010035865643117041426910100360250413541538488284779361409838926062487613442907892921064652421459218069756166907355243602381886547986444701159995236313999430047996750716185501396703506863172126918794879689581220549857236221548411571449711765630860989628900318261702964160622398313399409586060516475729059799551980358177424871957366182690435581836563460241206065329953589696771827729770495929284017515759065548686936943188581943860982734508921518298997535471069837978770574484567494082688943469905879035306014127190873876444034416887330396277878694470176091125144301556278841535851127568655852669339747889431787479865916589742757615021459218877998042850515802143711173470155680412144078844346892583865804241304320131145496433551977611272709625544657195800211106967020952604785129494156883301458986905904014539840389093877054912655902455934879741359976709813484448224111556023244403530658015969916129278926287712143709036448325440958293120624015736214365658921744175466960083926879147192305054823159362312718889946832774103441103967948505551881282209879865750079820690288164014700484256740694035933261773841358241264719709161203941399616258360787351536019243128658898622003739266534830402685216319433844842010789735172153625049256319911923379755424969669339928630643362260811053080438351788971778663250665010393272976317345375605428301410217818030273458992047286572494540700534475360814251932030308341165321806967151438889633731009331426527890023579105426730571710064645661815102683366997455313613382564468884546886875183224723895405540317845713675557202144904374291287552594766097226916577261740657026476109995140623010695950894290368131030292774959796888829404112551166361488808615701378261769533261506041221398504423962403901373311482891232035329209437728934088934386433741270002499645554135667615032060860623508136831745695858236189011163090166815539342609259877332470780245403541553751155279673251236937093968682285807685510737367280365476520142304984298662879059324928409805567603490331452695535853199028153409733575475700965263110993074739224875009767747351443776959132876881424416823538710027279467784687552543572163576792394117620340609019679378723216151754224179810043635435361801053871083102013096909867912288210205490291303376067867185430936612079418330651677070320857410049952996800860383707124519628185520026486748253013428922941064158016793528730842682519639046768907464328047407891692395358147858305140971452194054299951387640620515861149586887536074825188544328581805532806559914340749527155120099218057040729015528132371358430669566029663104913455007696540760967180044775520350332195446258476220542755365633816944204338295784936325008886530162009036258785017214868470143087373901685396432497360314293253197536100385406925599938096055844715544210088782749164009580092486388931046641604707576804623805560918150143837405046840058886065390938072850130698251586185966291167875677924041868503961562961812079196770975544112532853336090743641791159584215737196946449931020743514758208254935456332955782406451968859810533297595180322952923030099957118558139445371470045509401887060473411761000779802690911006734344964276296636952089237888860689147576081134215440926147740488564354349032365515052545554107891084862904794222624213544992996657889191323773400659998413687812967830368590056283946361078039869323536021173232451881725881449629247118555112557553782652611429082197523440831474101925196843727298768134529488709967569198604156970169031872658682650008962939108314806335710694602986673949321181953542271251409319319385121340086420135405304931400339518628512855592377822764888732801320763156658847350134817827312269644704445753266306987365419719077835959727260228132771726017501211556993550992118898334689640180348141409325086433407456896901688415792066540842054405650617548419950241090166738388028425311795227531982437507256430579148607682414241711605241953287942142633487066386642018418128388843232870693222695856996341158985482953473670768700228747976973216051645297987410539375647355326437456046055396406087909828255345613124563750200575653955009559164257996118135268678627033791088515774394106530179780428845498816616994348509414801818443586932677167341226001798724015907851387054730033396643190879006282869380519662780785699626114827476529140352275777283671497789412680058301425216569231240420852029131428533029019659311363302348906596203538670996781478381327015850915543493773190353113563137906287343980295306884658338725941117432006113832957221649103806074252866001220089901129017534587451532907763692526369706922491900979846859274907617082867970865326149101151125516286339031263164722395851845943989583144128557917115050168787156965849162174925558946234279049515311451608432759986934350111794977544674164263635875745854666145966893831648808993882601445750870353714116497339229951879549917755009131707272174163859042866320608735821087617587904427083838589302737019479425294349106001525947496614343442451262679691105999375357684048494887970115964539694503165693456370500210407321613078821723435265167735489112065724877703091693717918842643866276551182359590439863088459321850236193787658538498394465040448114752482420962991015245595177328680804167680968822011282741950888756229777492381036563555185755813317817669669902554249580018647371030136227641030792269861159236256459975805296548430385248067697430938768539369088937538587911434592997904110201045716904300081024478030662034707060789861967313649057837557478237524551180632101536573304777161090498641340327605184173673637322674065299939699108222505123925205241259000799916839417658555781292140652893330439054654386278727337443818926993634014155968905096583647524791177100057335208301450048518893398275870503519436451625637220064894359377653445505435330976369796988690405725817454672504216904104847444209288271907924688698078244306785613690812581087416718132653842516764045323889716896236907460976367307213844847682762397920726523145764755009109396657376960328085913990052717077721182722907035611575657519853880615495299950106744611000633515912840574796647159281314669935792678850166884831043010515203601664609550107384896902817158710484100141650434782930398712715427295636597645522321486322139672067116782789800408353072635509178753393464606207140991968324012291518204556776867938470727351459211842267026588268876440723884252533111360104365090180003826968284962744726807963936150801376564793249878139764687671099771294616739248708894227586662129396297750476452937219724638343563645563140628642141055766818930666506011727562302078348294036305908485444503411623520477721867651815576035415464502341602794624944791681959514203535044948927247130303659127862003388529786426686016013253372946878620699241634249267206880970410026303376294819771238183301514940290776514656998421308326024898439260216190974101813241167429598492902511118588982082019903447504211823515152985058663345902683893363968133227774699527208987595744895279338056300496740410051967081751099621826647392361133501382164491280701590308084836824251944758723217550422084923493943374005080058943317588395503004926312586036983668512866005065059904017120075993637253534013991453243339936825585210106147572497886011072222600794259851442397880254467524573381268159512646971792863482975203286923585046192460061469566021976026305804824201721416074592974994403840432840147657945517528088273833960255048597441895062792030696864081736515215703964260269536528318999070588047526510835247454484255586732588524600288791189259390832450832144370648533892024367105051468063262913601352283571778460523397180775694640275969875794622511973692787569622493450663648525428541494452384838010217083948987383821291760701482371860440682169881949135479544898450206713463988576133619884221068906010085396826311148622948005785926201577804894619974360872889812102460950728770455475526103931881653172614835971356983772673944568910984694956611001553392499593250426474875831357277112208840405092062642432609980834541562088545475913550497135670195313705982075876125250924479690509276043919015686303115373362478469904854941663858369443496712539705808080816017546428250434017341824025964598219434791469602646730477338250924151238613752735502918243330306649264858521329755097442760146169615810269255941565148633188898096526023876585325144906555425910054738719805978099242882296281054387001409210168856732680130734076683468670934810411542612295015733616364029143112505477400731700710538460310858982435988148729114855654678042246898474224155474530745106356749301996365584042465720481845001052001661070089611000948576139876367369125819960672834674055315815309920441286173145640450032346909827582604293422494156649636320169969192467006722354302680508559176582996481374684689974403746096990944484303392790326496066515416996312784355600198481016804237457896639425186788852228423022050160260585014869011239426803954565421835302175268830623470614159569915556971710498830826408624540155766580396944914580781568254516472333833727654998211447694173044156922333368866667346805361707787942752645042694311749189098202009103544021389242769709204681489038945013616334382743150508529979451833027520584218273015562585207111571806699247227959314555022128326197749574560169842012130433627600369744609749573347535033520394514648157600790633131583016307927426775156547006570640070890120127256193302062880187882047169838966474749507007863080619949594267501372569673034382487889403169348456263794271310829828400661090194449524023000312691012901409177731108758553019051797535859319110857198049653094423193747898508753285195281371511908795910989272386540328932408818070982326136569288379131575717743381758694733203475708230333432502062906823736609861510845855380064772251897545382901907539349915876049925054823965430489222065186457044187597553455765788223204062839825097779544194723179533986549299327074748087646071935683817375268903177379366619016636916163445698807308415687689535604423493734746582792897316891184946938903099421475982418436109857547626490668062975390175430110996364182521440982682221456104004477479194182611036733053146902434043347778145768089131078036368318626470835581916441872883885456370850946225984506284724313693264234553883748528365781476984898896490197024569801821942165375532951793205037109914101864229879089661349479983997704779700392656939506857230116099529572892152867772364752296908747239208572065446686692198743175430145227463712033447863874854535055068268899236741135879843669669723365249003815814890095319898798711549043850583176485081849648492921861161688683483963116459477139483792001293503825907334927972812994854273378083404952674397247483490815134912136675405583567506013874098404355512136128638992952380565359749034358049167765157548435828880799494501822100129685218049744372049282055421905929670429463369565213535911571192595331768715101239449770206252134148917363064282869003607147451441208705917731740096719713896327226671634112447521404829489704854232738030939777724727314000048322494697130125662827599188368874336632310729840486664837496991801932521953929499813635629871075709467589727250949769683224535225432633856386739398063823854337064640530270805338163901403574158902213366602024737388257598159540959149415867218855284494860462201400048378929632563973182013418570456462438397264672077365373097355689542214210785173068303378966742736518154411800499955500554201274252779622135192821281421375269586011716697602022850307917883524494949377416614517523234451441700967414098377143598716336180565939825314428520517835062808614046777773722350762952158253096916467343372354048964990816891193198988759180060189116619317308122233648359576998194462515515555954923461000443072568694854395742241275270447313380484499400548454280547878225537836731852103847799997519645186547182403940630885948791390678705348220405392408091784561870494152696351815649041474034318976525577772837904964197376162490480304594015135087516075654837690447196517439901955757721174943128704311079700547470622529312457278301249328970842671149609848426536246369137659618160942623042649109040918121562093344122694034168766331222269876130025513423324364830310963551009285102106790516258905560065939486384465233862838690811881298707367654264786871485414396616317514494124845961974951322142832271809958333207783281480312945555971355670814339531416276385290100250787088820528225667107840919068971644561277043321526390605083295367293932453548584424781029279425455232797409877466902792180573108882752698177491341436577836826846329416110552035588728171110260924777562403934803692980709830351801400894546616903299007331642301007773741426197501628737362231456358723894636846235440115388647914933051341868790982332011953405601337926785093100596946697045196713265503689359926747059050459804660320582421105378816495489276690054619204153342941722625042057866126556329102596303144831669015474358891932838242422459785459613665565825871719398410852263715225044365763481972039971168423855363307200833067804125582425079485639666853030913150872047836447114403012800794055376778863989354302542799580200901336244900103420900640742509098971593794386004016515240689009615516010538145219708185855477136175542111615199295672273242536772545295344058528663058402235195755236891355673080382449947351551239203815340202320095197320509159229304153578447270021515682009085501534189866852937285622003130453391785642701346475016953489229153420081253271221449863248884413115016451308011747772190480488493317003029352365743312652830301956820450309024451257693864409368204685889920568380932676574197051183722923957310268872327991948294726786336367377676394461967245898618681853570803481575345815435612096127278600777952064924642808360652315355327382659194746794661564686811881885550767888403906832902676570115905288512260341106301199728345789945650901400666368245458547180071748904776136472682896035764760482589747119713942318335640702174641463944011125465627213629467993125649272092196475215547323027500299970926104378512813420746798791903023755250427114170130137699923993287188965507509998395101835051280296018851669427176488189995291894468971071761000442219779716686283668407354574891274223909992869951038269447391738228387134785051867634439360127383343409713182880567267094210813421796162986212701435152221967078382515144996937444893225920849499914336782841592792465102788050264709361677618672878055442598919982417677672709299301556303405564738087447154102698841240374651300566185906928509272062734228910429464067474669711512170648875011565462379594976927754303299186276346130548978582865245212714290951078483848857052381598899454374068037951085050926741363085873043344468134923719125066345872991562918300942979593625511959418069965077352613337478921848300504003945468781235555352132703126130190647599021558771720511542663872358029459677305188134021125840010334906725550146110438632400777012716033113834508568290201567385675881602211809123519661784677747736485596655451566746795000098042802639756937191392197431468848482447697760604476776656591486611741767262501682630092423955970498885224101439075464361240902858044308629625308904485306945031551054052850684070471662094216426533614976744460588826406344544799670542719732846698141906127936010422255415616759584265528288263896828975821511268514658232198438299477555634026804678806169072485513308600425983506450766864686710197618500993554895475751078850506086787049685070020430212184954613896543229478785784808406424842059868022071664713124611539894532004996278819957281292686046552793294469853378194076719546576427761287361171257322275205502738559875418203466020703742653884893364357849463567881689486728002025107905288509200850817784919603920213600517980804888469478875823377906726932070548576077552214410961634038752957245634080267710476410909884659987375694995038201110401819297922672386942718220447915172201043958774709463824029029223923708737758010315231161523863680769343636513995135433129294900526042424645480030097022976146407277309732640306435114834705728240984124822512174505355700443987642422124830704755366992665939592844647771652110269173483025040127444515169648997826713464856379070431358077222847890037707953755069574564037863219390055010078169557821822067812239503170602408929200862589650672781068679539483606045809557865413727923450780085898854361997045661088899523879752921490585483177243710689119900461343568357190006634786079359988593063261651004573140636300726049393259792031168804492163665398224858149649527061427003005907937652632059278570842520840968208440253399321580954279284084472360719818198986084870181440788752240828615848326011782980999765173713223432051388173226307671167485622257297854627418367600761353241632773786359725046323678903522287107176850893275393934469757216144644309249579139201710858115668126776713368574255738618657888212535257698623966320014883931698701561194174475284577639199654617749185082912818227150700849401095026320151098262244529777429510831812032637861922025976064471014947352470789472637187693111888104755556700071793166605971854653736439705599622801515246479498564308953702031821884978755775279451301279864650961786365462426951979757132983144049217781176559310346263140471226077743551764572843652354227322207685469653405052868482797173203967326519769988820912498277650534367665848751551105502613047845823510271971666565432787781871044808644156873462858228063778135283708357996059617386530467365455854565346010837730278223419131001060831311531684192751245251837838380477064114620894471767404430456062530246179332553851395357739460171304178794356531393765563703349119513178653007566583304143360431072614168808714652523020806795289180651556342444423259796038323164018889143395213715439328392043933501475052139378868396263032610270043610171083778217414670943882019183879511631913000333077065240267390131429243374298109246994442959180522726323244211467122754391651406717010644376459621427591647039464871637562145574759588420582858347548747501229071415649673207192250767392063469072839234121509541680789974589182767019723228447028724970273269624649321267643826966707223788509169232673859373488140246190480987879905082077989503706452130345141560313988461221530420736195426950752945056393263844473203399863554070971714502179680714692150704232158922964002185149157868592225278827494376013702394003873132264292006191769303267044899120497074328137059596075622641759744506886167877576366697262171227454135585150838448545175378404048317442345675223452887948905671063189673856004687102168204903000188906918359694549101007132317218232995236857351503300193519306778078342596769075455126987618789038994752350682088404470100686087057130146589426311720174917700663868742455667131575050222511156697060616450011102200619246405109408047173511982323642480993933305450426209567905336043496812691034004175654774709222545768369791653962393593976578008114959020200285073073794683477162869324626368059068546529070096755302271267481488761846922353290423255846969211776789225224439246224813242697957581340728894834570311774843390965733165693429824361716108623314389429534633111620462308865474506659575355549116139501413010505589179561769933225397099542554427864321156821426211609147510622412589202652021431599254083281766436966831466633270410045945009507371856632821840361661072147972152707640637906828643409868118925176897913080499670800652119381361603774833036957575314300063840622721799024879816167651681165228552461061258415861352394191195477679281383364355100126702930443067043406073901309470271300705919366063459691472513741550855675449827038784960151911472238234435259548552928521491378948718121662149313846855988911229944943554522598202119110619575080584700923361959390855653399377208269798665115895695879769147593153948710166652600148872200366154943975667866531571865839301579850119425456500174130497145004387051794516709228262723524283565041007571834785821293639658777281793086551418266280285821837970455026270845527969850434392410450211989856823376441037299268192304702060427223230573249543022570428155035964600243032407537247483702508135163216130429935786228450021453964429051655170272314892732689678226513000940990221897857777715451653865036782247134613772435418344958061141857480582550190061095562584058876945284630822787761587374007215655953396163728506880424233259037836186038622842140622455715976852744735735293760757468163416656394762159557619309343745960422438211594552601092384437505083165722924213118512644515695047714682441177853471172914295177152201892817118740178760409217994222856047133953117050858079858395138152982288497210894635031601829165937864359893003023282497009074512284310744271656925059493879949152445821777491066584521780772135578667241890198725830449513773297343316566267618461947909284832810574976296557324199299945603203596614013463690755319934196379780141102873055026786745306824293963161370537793214944330370185131155196154325844493822827574749183265348001672958965578267063264283525646559684433095436334976897930356060559793572001817747544975399581962673674607491166204472642825187214392397910891115686065424211201628365980424924992509751084204976187607448174422565500982589912522670398628866604827788793517728075162334770744793798239170481863851441616662555768245515914798159410898159276007070338317044198720208194999698323742825147737666836825788259708209089419939686874598093669776082811788154321080259877147025667325897406076449732864095329291859786678912919449592596360754149666772574420364070496569436740602718147169017560380138728584751042442498360400561347576272126485565286723405813556633265201749867137018579019058235987722372536407378423814818489066633099299550870750629895009974845616745639091836576152969842674984184775072221090052113294496955490574342673928564289706023892509085091279135452761660526995538131728508085441396776476697872944985875922750487335826620171495994700845800538793679505617831917656994596369537334381817515712007957391850859565465033835046646517004694456917288058124183260795498426749862248659705750176345887440101403603990214452598962698651337243945300447306034976069577030180527026218150095185265805361426543296675328390831801028959547278116515864730063781666589301824891216336530956151302391086702401796173447460481357379818922233334688509495423567755175769388377345617294253449173130654892730445719932473848036066725710497702315626769923807180683481848819828477225341267476035052479256412997608727167370294572712223153800058194338425384335043538106629771793549854177680210848836263528690662203723111629776683370561171230660120867662752621982561389110439262449715847859728412040567519612858940575397394833793069077124216898098658981366184845980082164473535714500655418791711712119379523255460346051799097378098258652939493652276146768351028164808567741627628492560846584738907307058339661709548290495268498654113443119891542882355896216886236923107419274165166664012588819017364611345048546028463616809096425756166781785868560946304136144846489236426972874748428527739303608498950029757912460430451779434774203560739251869476962481493152378718565575528863068407174674018104284290091425468777401376815813097427475612324326981143981320281471601552126199314633248503858454211129120360109525627727995795815127182444922838186346068317681403903391651095055280059134489436899872610270062114066752165902976094963094118388199865287958355272964732240507220787343408843051292035907762936414780346345641531695804112350485825773640325052929759700464366841553099740134269689579417991387875102988752100929817200487005347080595490140945871237884944026288236362481683020182738965544569442093152291453633169720916492881653153407830607397317581749109617849207560925900185229783856866477356480246634946533877737751293177035944331841172740228698766075924750186556392551154706807233818351039516728312205232473417604702541765570602909563506517436413233568338453275819493764706761569260632678979897139769741358581429879421812422287678733394676355667227705201014042098525118738825850021419630929810871854160207314566517007450325774562654080149178398219861393803547666414348219368467632387420482904916930483911866443727199722474511401038422777113912612032264284936086985734435697289578794830915350088964217949356105823334675187334567103985174555670107488937252600434972981525564754691576090577740065494084910111334704687769714320188201663329238610191714316118206711937472396691091524863678120556029231926057075757327348314431302907292065976791604500891941428326591688774960670118406790302213957141359746880789997782321750647776907658743327802938599464620259455486961400065499466539962545288186749603191458703735192810940602079301315072282224785216413750159994673752923943719660218525645797327397449556081000741818254624896439194376175530859957411982392456838505184987795810793269420094555859113748421950249673324647036153571247831045948792617935999760310024261248610073397277327492446962062703161138464015287081782617521982443804969929029780316331792156221429731316724790410701077638174952289236990173961263788697754300076657642300268537951642045349399761782699436250218329943051087632084298650293061133744322698020490538817952391504591646218306266791679361923080539985240906007914519491762856512670274625482397692533668317361605805611892305342400067268049809378056411508093981030507337887687137009861334389998097860150888848798941185453814048517685918052347248448436849906207721994966439901470463914473161622774684628548135878593098689577113320492698188648851600699085433480950759511607573091825342082028204087458248591957784640452762354143586237450210747777550337204460037946357169409793323124401718643779773833702098661620985387662916765831731246732291041021673004109050421618552803291641310201954993999317929001955848049313439778513948407580102634870557171949433344151604046362106002152806792089765725720536269156258738267573548609889241216310357280754407414252462319634993098260531376989285554165492777129173996848510318235059886980331876598427044503847575715511624322348782981764213023363965870764881167383760338111965950065619865567706337313547225418120163390501843689354597714925576489735583077973497870251221510697880714135803226972476866984220508026946501255809080117285365588303986842578038616843326471655078851165880900264810103531763747543386157240606307080413716248239290536751912974936077135632504465012986136709045611074653953237928230014877914899291302892581525175736445008583330401140715805817072338502232539166539882228928324562607090146929551396900852141687215015581957966012312237641697006296962949296133478576925091531189679412732135339146119391843222893086347369802896776559637450954251517273023413648224771176360590401803874063481070187618398001646624783272987544916683711009057374708019287557216216884969406671202658295437826060123423266851538190646972718503201489464849029703738861637980311673822599811921506710049503308074282852877040616092022477360739640358819473145762105745081958867841916935872573560125838782212959660402428719805530508324720965863577269080011464222262821121929627881367623814694487827558949161808384904422914541433227357892954795835374651052528053924391551126331264288023041299975173778814110935792855177031254168140363416407142259664254047412588203968990325543224379009973863566599693454833617696502992394043870876204112388816251729173808082576965819385601658210354396008013409450397808509570753184241291366060135624873580527989355150864285680315539363029916169906395768432370107557939398078041291627483638460743605496337612671417196654275875057690788621242953663307754436835388165490804078172509690191789915410148928492102091835364796947955262283217072472242196685613899893590845197551959439092275167329052274036201689813272410869657495749957565710963734516298575240896718827278182857934953530171283280750456738278318633786679358398541935336699039117720015315782864014617397787190571359230553149728356748899495879452218802372173175559457149065203656941237985857928855920113016054275859910618501562529290132145995235946053528127876948062403558431351038993638856365523023031301259290737674478373198820890687330664388415814959278014730398546299309469233169907795687589940407367515928136379153876262338674037106365671843923333897193275384448679531662131309993527586012003753410698476950506694618082404160119125507242791309356452756214464328683493034684874515700777062043269356276636893905332491745040642996469327915790473417645500808702298122854156093753675865038987838023370483569680999073890402449049108743117054950196230626796152812188260865117513729912385865786491325381059163976920126738086543996659604612659163657567861008699436643266716197484512413660852227963620559211395109240411790681585101706455229545592901067611289829785413573373669350920806222155981603131796462324271584956650025803218801699685479400865207564582150807834976247790803480919746066278981129789889814345675481877690262393338804797178287754712649984530616279313226684622068282358721615623143901841614913800131919361304202692938839970378433328742831309870223871494383908708968253438161879411888618162944772741835622750265467584122859828739678058178790762895020143186336939828155298417594900228259933794479925938688109753668605251276251337809581730669860330419752627533110895764523726922384590471318302279141234126041643459295511714680919643975866588507412102781401199294828831658689278966829634747214619311923326412610099680756226940583168369620588611243622338140303494889908081219225162888329555464455083156387074673285858382155720859236917211713402476289368045225707478224270858730165127306376590312282868578422268635586539972941113401789742968972011611175783341189271260436079709121398296888479963866502062857045491230010451142018324840852362917667338147655733432382675668514474046613882630125729556576071638622951296278710670451993037094729596730711561769798753639681255569153820922951552080061753808186329479795100307180826258918611454015503865818388099295763129557449417075377103627305614342550793467638955729578935111295176073885045303442144931884079978063930099554018980125701832233070790331339001750322044109013478787530362960948846395106442559310834170867460109666932960613556435440952706110617125355206770428897523598461749335073418113664943347974020074967287179282250198991645933147173091134870371472527913119515517821239053149030618039466369078259776133735678868019034190350812254947767118922740106795164300591726057966909807909190202902085830879538903438216142801578632053295175087403587211503666372031289518381646025190354916372645100868211554521852224955493156487142256552585945889088016152232273509253992224579021683450279481156455792456838821322155573024767913088648462312711534139395727077424003408091673395766513936659398061321472730270022188022673844046184082232337656545009308232431301081937277297637524525118686350755032664312535470277439766278806050812692174900838701585645553599275195741669632084919278471995589742960679588196064453990806965372243300294787314023928206854410123721601414160001416604877514663068442318685161620946132944923790328495047338523534655617805595633937786320244019376512380382005104726736963536457515788441161965604427857845946461687879436867911470615454865403273355213736906280746083883419678037179566219214737525731699446438026202074916551937242617744174300481126675671919017993480337559560388362939428529991722181045552892039736724714751062055334891569962694079492236397737362871447903682890848501632595079519524010879884434624680132450909360240903897675512873618662330052061670933518174771110644495385400044759948447235676610327281689853790575810263340996000140164206529478934151187825961120551543143961016316298013180954754823451602308342304521602684128508773245379154047067280928215638682076875940154809610204029431284623905455084515202829933895170453492841205046046367223564505588125309739838172851668164614173832229195827809418943703975188815589836238807985389387277976524377143227097377802969383079575962080647961417493236626338183547612679267448869270219339490459753800665726117782404441778446196847227988513181798167310874339755177953731583735765932348971773337072267818630149508737000846398884926259472970153579040557917561036000757049083141024291380698043566412075740418000138668358105984902385005322733310853755788677244742831474812945119909639171195116855475094085196491400116947459029365377978552182165202906225232479334680024869725528978786968739509036886077734830235385513881822632141545212576594757360424090449269404344330711251306036793865729758455994223694879002912825271428571629097481879117773054339198567451733593005731804207439788098357784481669218013541495073116678981737119439090250700934360066074863974898725468119499137504091783186128656171558623493540237155797661361398075119743882309253141692128240863991007036313446305862696674797169440362164567066945897830324590254621543979897548593619214451859629044438216505413645415642313433397018164599791812813013475087904428834971790614618964258114739540350103284524013064574707815592399885447887712286860424433763632779108497013107788159156580397478839295513739137509002418242213065855264938088361579677071662460285963351158628409575723081110693778374914231592434431760332319331366662749760677138095075243216554864231277437672507278376130715576146795249228823952402835121224675044284306179568907324749555100235850188891809389822212621356670117227444876996186864847665207592965016401668196073194985478571846504675263632532597329853233378796403047260763197803917606210611109024654604360689872804064356070988632495988502893517359909394141168558248818205441462314245852824367797965228486271121209264531248884991578999468604747868488519424602554638883743719761888576770426215419567959363491257230932744598736567698527652974715544482167769230547932932856624608463667314359562361058290776081719190565172897010365489866463121141549138966390808876310417110089298528235967647326335337879177424705517295430972718795184830878007386700840478792033063633207514453880356038009328076369786335603147817056627414196712673076727462652154535908982419678161219245207150022684831116214542491567487408137945454793200531511775297714424432919467156870450251696023883201529092012536707655516791644692917587642412099159118539907051865688870642513399516170226114457125900072624221905614394709326352334304927843909347830982644291367361087761548834046070669550431789120927756884173554034222617676209296645353227143140635798619422672058739406753495093186854102690047201363981489460469519940755429113131948127373710830156587023744576214569972041422307330261298628039058241597994849901602406435668187024471350913502045176552500193380299870459494477520759713063910549533307919455061549880615839493673820221963035107408220423447538607320033955990506128277766700555437033418107516078830212616843037144443029751222947136881505421995521869397946769122193754648812905265873125461855281785581439755568717961645867856403980942476489943584540182648079563274574661877275363806526469679547064992520586484243657258582941418870444565713784594416570207287218778017505426537896927507327081898945037527125781767156358361571534103868515587496601299599988135961318890482416730903317260162238409058366634506760100542177420170792516828052314080692104543120886194539102475795275089666056733615849372233771935542018870592151837844075373808683126668566674815995239140825239272805602120973586537521821110429550050687972951705262950880075392833770196253690555847020875038849370320666554010136849171599214763397089980606644035540366915125724077953163418701672897107705979074981700308113361483610881062134211494678823913959421950395654263646436695607394522892740380056583730542024637904260795664719618578464624590678580232755473565649817876238213865021936943877486621800132152971233555594928979709808032588657428724473632645338422800931377943178721816650892091873856698516901205088506132152441545437385131494380963507303606591014184149097338779856272764501799474001083961097700404154018913304352323654318282131377499565146462372263732102793509106131863853333297809601697185065939496044849411919833516297986895425671390005907251461403155549187401306239678200226090362584377108404858219228863775892442483460308954343775528233456245361334526613169511486045339713069272988886736860366160168454377472847430399194594253227010606716719748704355940812817011636150866920833106634701249740041488231856578495461221082324081278995165742998682828498368773654971650058079624682484358600137847653738388023065800482801254541868048767116000539966489443202929680336736958315482683573919736316366024178985964144965994545146401872715871818930986641912130357306829763971847250286431645646293393950721364891231436912377499212354068550667721891675612331729913172789244698465799926991700328244691042758783801706097782079926607164134491821603479751336932126753412422718943034714865247443103082617794779403203385226494594510196302464245569001634927996061363470055683359601538014372858602335516895842745924531155697888834491950031206281397134513937549926448175265289116526509882945987546238268527941798782713236838619651495216052419907514261434762526025036821760480575536885556371027766427103800904057530614964716166467885909885669199958229723472509235878600163980970443221542606638538333141267279583196862071429881476564757536331664236577101155561731299262512422606674343545466380912337772207361685920648049811139186461072366610936277207158215015494664603333057280902620133431900230031849932779687811388097391914406827752018362728564913650283833167688109592934246257593478985834120641706367343667275848883608911926923803657971967021151473394985597317197065341029639055906028854668609762991790427933696147951827914721217331399282596138860470153207514744922804251610725766101197604023678759346711211918016196025078853953235314918540799503492051679962484608994457319487870261865308606233508727806399407134797395213430572035787871522788092766055036561648983510090702884051598180806078029376211706535790188233382792737712195602686559765346872989114489184207039369604984710386720051721457169549751178605524626884486783072207258824114010996418202502375642880404793484336563248253218797474171261885624909601799921634565562357924130238478203134508692556445569518422806800220900390383432508029148523224717374114531287767897884547006762294591019221841103595602363413921553231155631137938251714374429046384106609237390713487438041590377734459125356515122801353942670706300686612888172585849487266495785166314511746192091814387401050442836987737022705408028664773254520266043732422304914113811664039524554524713819160236013566791616122811862649201424884324855374148792178632500571626084852459791256578226657284816935999468508975789081989433740398556233284471429822898525783098195204158717764889184394619702365549040132512466792903197297908816642871800178675527634368153303412580896230222254899681841419034042860650652944229153263016558487708038988626708634268123015474480996472966145000842977149902688840717859731103504290189196033911528662239021385959807494934267278278880552878856814165465156332665576723441718941614036878293552741582449419763165597639037301626017777183481669149010513916450011725531594302354778968831814581114624035957145501361630102019886735332386188031363653844044973839418434684320159412838883467446241500857344730694972766173461194901068419618318393758865104285762408123030344791633703553236056567776855754436512496872763515278749162632771550399372733126539468688664313973031919972645147404371733682481283040745287061372113894098812529959400920340876284010379513334951401544829468560654586359543854364103581438581105074166197382673219695647227363401551221413153176649483234231223662661020802884213115922962914211426274339797797235769186879077937654244645864690161933401305733191721412848220337812960612983090576212001796998788532737650055706183606792432591345251657280326667019543380169067678223235456282930760714265002106273746091723940170228550334915062231832034788609751677448868044614887944595303422304398337374280098686852334616860563983690844473064273583943432880658685822480360516998828939906674658855227234652306224362779413616578858289522789940079474843813951755627034543328241105042093580080204805691802361606258675591524056198458983160559547867997737376131234516506461873592400433906398322584482926727020850874861603691022090408455358166278526830896930450833701282406989391643165297398585530883812536929876403704537240577705755109607283396076557800474457093240245254312783327092778305920154545243474528958988656215981157697647851821197219493443089013714969754981600345803439088778090562170225629706264683274551439187446490304487307014030443825914553946414034010576632275610661430868998307887744931745021325225387909499893532103308211797851453900840110240745671651985503151443534614176064230536336636402066553359103560514167852633034335074787558064464382388317376274399529238959818528472684050476836951797022666140955339424987460832732800306137166406146402412946966180289084196672513412857877737412092644402703236140474266726331526905450539383919498512420092950453132013681888933616145053647924201098551393212994052634539649300041406650237136455785250027207847018466222298323234502968548075321687242394862843527725236289036571972965090278289066984743349677607328901546048201861499340005644776899766438376139078582188115578247484290036216976888476137947781550324323040148469620135263725642772332064852358516093154371642770768399789318018175238305565489663271291934106866676068696650379148266404428688169286228260487391872276259541089892181434241724347635250647010649244824006574452563003017692422622980311656412883034475757618015818012619537155425412015035054723166413114814928791616615088431651885065601248684044298542443061026505152722602639036272761709298133018614350342139288193061203948422066803547210488352474459324728548858539235857939748924181392030661346473521565230465742897458704829228206392480527185411928576570133460361173707034577302268031677735494237529233769182526279440071623011328421158635487211553719805746222942113422776985558843114780729242616123382888130035803722172079603292471781221479787973126497347482841405493276757875268116578285667426933742807690005520433453978035088112748503534020621796950024241188289057661769354888435441251518058080645484707349386065820423242963092317828588988334538521426424224479058688936744050215019019025455195429517791282473163933569037408036258209384801870965728392424440149976859434048827733629628237746939503196357269501819268318277359843100244235416313355281584655066924903392585564331869630105628250728386238945771460347757919136152933742117132456278031407763121499186282012454201596149717945379946900433476547998585414551299494600079617055751937511207806958968753630726878891656269834304005896943376393628449554068045344975599428658186932047484459558759463539168156209438982951431428158110556893001373436901999940935989839155902800568390853050377848221354638636445840682443517525321882068444440615171692676783094428582769621429653925734941359256484199901494008385995588309268293923209729688334329470671867931174117422194884309645727420999003517316001843812910132685568322200966678454981276844956083016021286499533647185825973688384385916707499672358163330498905594556303311550527866212033382265846573460977348593336641848068232624218976282051822462593103907737535670626395938232287075631311119984429430146777009098824761285167999990176489905513825305115105321170053886533692159071342740118899879340389910567478768242698978210878357063400040271869758004766630136463685435393390734809348826929034907349289256130675154972026498341733199318860266586234403152004380282871114482437613677088164321766093658001000394578979078788175710146681444189074781318782942948989331138715578071980359180468802976892258651126402629165398640185748473852369353741907966837354485869317419343895502666767129250529605495936969480029120753495766678873847187442151524309034110205366316126371743708987079521029736499090949637600230300927773610497672406205771439761427087138212564383168310997855066049019154342890069236530816264524523558390067279200301289430887109612209218667550237346061699344596486319494868010102472587296456692750151301106568113400349858301387253223755957617480425014763396013673797853535234818527770064575417748257630955895200347738886192637447387932163484998042395181281203757294519732537976289425776794745194996658621546173558121802589804733421390847067268648720157933960926584306418024499610506853431189250610810038107840936280813298806979239069417843934440456665533227101446693018685690319406275800412707665670522072463214557650823439303166148504618562090066724422723133733487863486091152630953143890867243184148336287293310315444301077384873370441270163872855690115470807207650568253047065552057107323040416846344524974600606489951620869963878031214224806353367037556570250497619891992128479187721504173905943776908225385845455160627846322692041243454791104858674148488153164458416523197018548492780259838103490518203571898563896914566109547213822530246928299391967196451274731884744750063122529570985476185145911644345314385388828899549396022714864875874820502623582592907347420380250356471189217729725632868885207885174931091146333087658379180813766954514377896762457868361214774993617063311155850226318972023351208662564379519390748636320759803634812884059438321026302324252373414623957888193344019342762992168261023455353789532829281810018869451077464968966701425676900190966292706886472584028213768691249919163139695757184037673910439636860992105104043962073524641780887564748832259637826136941631587740818313764897435489453219630450405474999406644506599826735532371109235807217996089489074817369548806986039881499103410673021253478712695580541556664669512244638744711286458103705918512598806970368335468495858774909092766943919324494180557419389112324866072220355258397796873586225500013290434727906750713574261567156704378273508529462178792231274694834706154840473756607310337214243208881846317883976801050698590926867779271820069302373690281791579744694925654716295998332931709467060735230121798963514953807962354352116378835362621370940325172692849841454364246633440987579120352559584416002792113765188360687903535392405614079411036086165717663384274395165800902792093498423935122835341400228167192483480755860379956114201318559668620864480248647498663325979037718954932049577772085003482233780432009669468494304896010009287330815379145066007134962535810169868612560544883534969538701557669192714502594726940710949324831956170490047476114683125110458176576406901650742190683227432683198827099906681694021607678770116965434292818064808528291269855174234208728455533770063877412732759456123480956742730972153376733379770654742664103371701962096046468684319174494347202842349015480855638774426621299883189455215056637187594544889677667610715430123681127933621709931974042817173536722598776284813090588955910441800736730920853120786866365135594701639631765156365486704817225813565764668621953078984092696184025802260151440637637294885763979394118709969845250910969585975269329803377449026086742816918922409373285395339587575511110264772187710224747378133243015523873983533431720464941199434278275550393801256946015063836933546010433315333534489326584975650731641383400888501942699913717286872155468322697347409261009074153007984925917491731671186006768564009847992356977795439100685967785503108457849661904565111319747377979023162544848200929237973479658389632159115561070271892665036089328732955189243560825481320874482334900894682921675743495802563079035388185663870023325855486287464448919765829037411204214487107234825269434154341824957847735710044388765545165313896290192136545151401759472636314502661125772747589830081834797421799278145143527908420807777961468581404893659861833963066480770444799056220845951423361807586565949007699635574947138808456301474101311005890528180285183765631742914410499810180095761426201319149962473908747523959344464124150802477160704211294184694906289421005362039296757958303536041849963898361538890894837442958229651033369475177073464726175538637923671193887565617071039837862951593495528417220270235485717077770619068817530570434854192312046561885254487454698520994063325114900305795390381466224251790729841934530613244216980694704423251796681490363311360372774436434707187219711889442926046994702658003980099763053392047468402735081086767498461502407810550887265510588349366952589226666327395701261593955237901483615281784089170516840634263062017128636461778596003314146334056708623116330083422302614841086148893647075988966522371150188937960231963223690990500066058779292424983881346021616053556526189463136948897777207026582339108979416127325499227143422778649864993049957118584440521032175686097635209738910093692687191024475865953042256451907674252824040163396947640309566092826048870402711086464106128816574659698765019198748423919443237542981019656247571823516504769629358848172907076756916036056975594806023429024280890050786836678667015890331575015762406497868271921627439446723943817256803889989285116974509632459005791027340085798173585604797082163754065527470264384722116196215596047093760326992646946787408945291704039766209114272927033325870436368494340953795684885188168708627527165023815874896078988693048257597799580733165893580418809867001116231082449338518339843031513955290426419518959471295166079940176684069217259222875608770988925796714070728286876734111933542126553690856785197623447129663439713089427345000874611863287798247299567590920947364812514966170578442180804095387788198115826117170129454307624906283339586011981519762426276457060205022149882159468539792183492038035362181277694712992956011841403906586733830011080404510020667864462435727894287719908676859733792470167442082229669560435547479997128067058614157556038681336113531333139370261966510583744382075025391248862091235122851198243904165321007003970386344859491158834854576369623464960852455621646531421992557735944635851903012448491622429781045863376846836701899376377668417048925022519298965754193870568214756292521147003447880181992774430138599071323103406046608953447332758838754099300759398341804658725329321671790338751859952831787455272427298828375922880814386642033267488874862706096784421409685952272431803645247480165638907140743312942988035475021410011935192256751151186468569341230615365998243389289704253162354163024544582243048884351458038107479278293641236685422119954274728992159759024874335585204459287879024851523416815750433111723556084556815186430745477383498837835729677452399714913689301194869379826974119035701274909866454188210595842646860361332531189143190710908628798333463618697351706770188304511261865521347248939247300867020787534834012625581828496637879568415786515955062240725559406930482378661833911418332817561453871442696486054961899312298302281516653191500813170971444831869125921566548009418199918487913741077992883388148643278986852763745261025002492620192056484849111521941057231141665857056836833269498842377603501998527921443099314251143490817108461577435287206561052261839345339831565439912947543032201620585255860511566003352777888918844864365534145812767182071716200835687660682754854134681592234436494612057667030168496550261010443530826444545910329366920062381226451981507105169234925312357469381898132335139262755543900089985271609379778517343596306435947532768544299384925144564773344441153106729258220616000234609719846976192158667246919824119474232879206792784494792243695477543818336275738455747605619766596478111180901080905464352067369680142826701801885579695503760637522169906485201270443820262018910340556236242803564928089145974008753705696570478018792122192666631366671606185267679489451952041247880936731481306490806891141696516440193282737071608021176030708715291366963167448235582495088299533707518522912383721167742965360926114250390534984131844150937931185752852341508251888157082305759610459701972918741615805534825070687518779169914522565938161621551996603413586677450109328101131589399212711827304823523267092728323732495095718088433184191021676591639551848920714402148998500349569491614923544268697313800877756658498982486209193588543286366338245340816783165812586622237536199739616404013621554435899394355226043216587202031915912866851638676484845113524316283053791291959906837604977443666675425468922775361612811953383976649179677621180566620414146209546061031101621633405604856304240008301869847080843121882348092158239563804289000936820348562637576934486269063241152362781705821422416317128173105194274919436711359746537283078694339851439283821358433077431493849580008615713052664212141421603358886793054777016224240893058921220515499006680070297352170113457729764449912491419139908239645607572484167251034960897364282847962835755819632193406355659502376651388364460413155904595904702697867732187058836400312702243500544040525530851845048143918187805726035419603867414320177464490226853219019323848766221636704482785703932024639851654513457424604549017635714364577628664932072699582184156280204237027513090108609471866951860132668010323709303962689066451705645143575345215718714384341251159147568756403069429857896388935064458318335953741749758948382218725037581446796351958425253000572594929955461512987138705278014350292061985345427478090230742045704542033407730859077453764918893227481127184761533900512600257591985983099048913543670683431551078848463931906916412079082807334965585552836414876718587658885703401871532952882262901307593504119769365939245707797819606610769337776867646416902622503116589936555334342365266375075489031984731334723101816809699453207951493287315519815270399207724840022505937511972173852832259246006142841038419985954695371381155536414112457678411481024867105738457595563391600830278787681272292165116552038791298148799866908188546488234571848531830243618141748837072184732230695485072083379416876440493745067154323315122122818086594663790482627199020273967204963042459368851226220477746440972182434878210419840447786541345982527017081104156786703136755325293208784806134943668684106585691726396223025634355510160153372030186566839685832211873879791042881037354897936425253500115800102720109240147567211173926832218003887744745958083651444432588838740044654131737670996995630841816420765706265500676549290131155971805591082208519870921561089849060354947160551809845101778868495614566294818224483106370201588440388586115650038239995432806988679468998233310783925456675158614629870454190806231491255112143421642990007540029129382098426238369784033152340855474772824162429693267914458424824475138527296820268647172933328965634394394798612878427564454339799112665235288549901887534697372044847037688142011739158360573626267755785349961942593534155486699486718120409437854420294093483457257227230326421029077693795146242074770887135407186498194112846473182799233036030244041993617065785950248488495013994856714290645821303453051141112480910414245787809460246118580161890587430781095183840860555427866530405108575985552761696618778862598034268939447544310668704431979544416154559827183305668044562217342430874893286243192530843061802809852347455142345201070847230641387282587292121029650397900819948337374805372175680826054040589589259350025971219059581788959575292720992548991959896594517010369981939732883467906438267526072789885308840109015555704992420886726783241976233951554906609764570875702173636724037334864722016136289067640066471896269559358855881438840593651466871421511821694317888461408518729709889040449030568701159573647635218227536195092186386156114285423576217691509422042460482724553897823397288206886197062003776370302595083158190282764923906283943415491426311461856785053611747200182028734772879514196231734212186165750801741938638790393296876000568971563157865851260429823736405050939815480999919584049351633121856842248272862860168547609695230032354621792051957333299094456141060755247238980240166524586868674408350671158796482451287000887112764954924458013565232339128476935477340139084374458699506408847062297440354710300222644090512480607613653183046763474836678111496577681603443619669385240329926846808130929765179986009099045232162565924790932230656165203735615047257767175489718261202183950328223428474675113259007769508922822867272968598503431018185165683454051953691360794549112091226255438838071646756637002796782716185280248062352617145352578899079297363268401091290567164153796789370046240152522556300369831631271732120000307735194545270713062945569823460311188563682768141823219998261053699004015061358252285312123727170201826513039246498188037330821254265829991941835804143140628501173995610942674556561869165285460395678191008494682794977591016324672322429906351576596962885212970227348390011434594962371457941541865520592700729684611453862271901237015264980672244140852456753242470069119831909922434322255684103904567670172864684454275435126721547601185440844779426581595272545106963815939695023829557475694649647036996091537094495198780997205273390208511464558855300958413594452894176557073609852025075780508461516291432154224066855715002948825367920211406320733656510329998606700186090768449973172970485777707127465950949150514093146630965739119535981858479799301779715109328535239066627276399834862464234652189462134607399853580595611489393012052300725334313656975792847884485344436382694173416520837418838133229466779573175595137775237550325352347207742441680164530381061626962795599790546855094138585403230556865862620966552890353109508704170814564495383399903195142845432762798011547685764207790495225079317381082990482180929982639934029335255946266500842313807274122979066054516318968676097845605335250396279962541235426413267804274188899764377091272659079198825265112790067781859991598367535350659156624786908875635873206581424466478857940238337169538226590631377495614503369509845816226443656541375896415731894638624109721224394908604130264491977460408825745899177138754342140747102821871955583260405980260024842392198040710490250168544702969162980064439296541322208477464583023124771399356944781718553586587747347804676625639593829443077087860553169699139498451123406119091711161032598464864994556434926685895651163021329692509449976138545110030029930674810430646841139358007686923621626872133836733022323735107187635579943584200507279294096122094506111689176979799990424066568678996727844555325588914441712537007373245441515960406244436724540994667086789174887137865773840699699079514869699006360882895648280258403020534541571309457541833188804248000286336184468823911199893835078544786524198764906950752427438553092324649515433067803215280972012988478307339567877558107476122792483051993583187670131772771400217216705397476463152867679684745862349668206233785191297397795174681967867123197286857868908252360135802771026727653534467429933893274671064535467511804258624008589676527736860735373119055931964276839146725799010760479646721301734483200988568110677539528058004343250509757817975220347253574521171724579447878497390309007876551130445090898106251377722204583974665201133306365410816947981122978959765397115684392741621801513429546903362549559055590148767698658864939612138054768978453890955938725767736122965388692474098668739369899600847594006433252003117951986132583916395875314134563216685646558605830555323476749087932483843610355159866109590052059280337653798644457961388532123562556607974245216255024451403260760666583459352558224559521402293617576963467374434211224840158417127051662582448219407429014902508192808101176222948856345999632564668068250038076359080929732746478501030653153168524779855540414594588294943454368847665316725806692984923000161040418678691313892566087894161858620720441984967412831171889933989181564120326837108817419076934683465392217657137206581798751056442667941557302037819596073254288607791943489288175363903597455869614519041313048052534702464531250486305456837021737464869277444003733838615861032459291696551739962763378040340281904295815905180435725088243729736244999544663183602795512978762378591277189841798487675303811534756968163250535148378509189362975523163807750920541141529289314170160029805543921313289352622886555606080862195158179650068959812450898553807629848392418512726835567523015276204735569968247910245293891796664454164979539293783064118543061318223494929671776859219448815614390234455264303408714902489359543985089320486531619290751020995630486910194296043318724317232049202392020596606406602856071636149017247294075806288171970541575067926066160527291834874950358301535936880953901603786585721323904794089917651337875975050410172719030448201347046156429502530930856574543806466421409068004294423622846900805126249399379044289935264156294610891684099887729046526648465032008390057856152785410870103870742401075250595233066174200840844371208008360755841782846392457683520497427733822891109705774124352354195718129934089502056272805871646917955532113700803906132542770254667428343778943121393629373146553414042571259333622168638493356338259710086519204251265552053648052747832304189072455321298050971542755732891861631268195370957385327762933951098192553920550214223732789670629486941759755795615464142846287569002561832334399493201864367951841774238171771277895439346197375862207022122136788145712190360854183706010909659787733780614873726254457364601051518705947202693022975203049988972156050514976398911952181393358403697078650342371531831357590230486868274728637310460751404909389529164878823637918810211665622286671346757435236093108725464931951457453917061563995474169153406673366977442680063626299082285574046346942591560230841274417523486072054347506659760043709691139333595088503629958325074570854228897022356369035568419619312350073439419452601460807301536053753193395979644323901880462721646665595354351446023949462557369056846677242197231036618025898248348811627737262870797725731494804879359413156608203880353074604870600449031463639995671383215167058925220333102197915711573282252558485215925083067259362935601813371147319158351433735132416580793465082674426782816851700366771486653211547829071917564707594050889812370000056172417156386021879834155250187028013547954371128954818129573924329123453072012052539454002058409340938104507084122363128353356365232534097165365162627309745265655221311046773698813772115714652961969566335561690053781972846455003701777024347993794230584214673507670152258927895130425283389554642419303202572415328754944444340169727822504668777814215619843306545011964048641607180818194907118726613020947635212757112130194406034563918674639877218636881392499132354820809516272865583726852968791666478456296127838919242861404815944646234759589369963805366274395140269922460579310039448361238196919573693578167495135820705163131301055975301349684599203445203753129797420256276034233555777289792370655691614781942904596091979537904983458734588925627084918846161057029124677521808016804226133854944734933391479492452629064436056380498564728137576679421768442201810151627247337047535332973367415761333279524507138448064669644032185281551930275061984399875296533730692566056562266586398304687199356428363435665513436148898670348092665574493138390772758240880338128922095083264217264471120580993805201245216760095519240306352477604725388336883009855352828729529000150782395382241948758078358212247615596222290835111094170003780371229970654385911871088844704510739282308026903399797590260228154983564435103655795887935163810769972037292220188341997702315036074811526692288532407204535416699976725611522236355214986503405866073230218633277513847695268633680542773442687107194677416662893923790248451241804884637342600952480924944996426847083621228605102214417299743838695870755546321889015750079762056599027354246461027669329891757815370342286338483721965417855558344268194147669826815716433104601693670404035550526637417334133242099646423039743243707345664186407540289181933728367079727780611163536104875207021441119531974559202974254248203782999202525111512307350591441259487685936571563522496300503836298354940237393067376779364748832981591349198418325506898685075948418456273925110615311530904719507661775917191262141590423734545180251075707704414689252310576180467909345180433387780187538969824128872006113662967018122023284701001864393395285041452496586121436132351153195735094894026866193571181681089748784323569827008106978169500899202188229343990545212347111295945300941177229884780349096430064431259270799509223670034814439970725072238622948010039957716660866343347801141574826275913761605216320512972138679004409598408146409238123775771112073735540544570613696476679253378856268990889179816729761228593151075232734318438594461481353509735414785831883008604829602090189236711444321113611201910264448283837796587425275952396759595736276065523835638737808470355090633581774609421065514145736956478716751197430210433735794905914252450037413202275359838071506801584374957801744966325471193479124416946024523670094341225949644869886880097473267388345994928933382940089110411765476341612517690733475129879141761065691216141036060579653804342012709949748510943575925106099196774182281539136314944247433269370020823413943264678222288729277011705575561763131283812425414215027685113942929587029247841953267608389052402813706414811371490912869552197907455369123603611501067678044438269350159982173581268251605674343764049956241485085908217242604327485703895893602739829320463175819724469456218437944144406551183684948093447439793019366385305554920557441738503958326500424607324369750984769473507367961786741964151721620688245246320705903145140819024557754101407280549863793466928927980744706423034248568522734527013316693571272253945023846277204050532934076250046414909204217675647270003714574657264484460146932575286230120959896312485289119382655804146352474011764440226684002267071734364379110329231886948601846048478003141068749391388827553179318217425750204970724716788072987101932712451468986616704469197095902973862399310098713840556221804271758356955343177654068820638206222286884535582849536919441119108379242603195068646421614768946901989112716972011305666197042094091104520993615183978279998773537576238301102209111483625882280554706038043138843000464222117078761575982814578393823393618279749385475422306073469362506542995400272940162805419909912420954028374919785647924027065648004709612880723373869192914065883843506435420748497506242872873232861910091350073158420121385234407494392806962315459085895748838927895631560019539436874551945179537299816424637411650937546202930953801870179202584824942267796641222669322151676960443207838157356025896146447603900582723337232989535972889299129798922616644196248289179085937623857909311528759665033271145208721164013749517590239694331967638357730926797326867387482147660138032212298959679394984299443590020234128480828036437274130200772499681886434517163616833922514306140269747009888692003584104872902451811452281292113004340025451207499470401146709219967518857431113759839646968213198239949916931697981515748954084437746866357270548631382305526038374833541718015657543728356181331348189530460327514854112389083864161576424481475499786644909902095047035814830968072930155012624255795251190578467431854450795150734554371358100320505891314071117486090794317716942189863388236896238764689613820055468338314873446927264633906782898718373567263194424194087374381337981939317308055927824659884246549257631519370869135285781263315250147849860409688644435401399558200442696399231212202358014773611115677601822253908964249124377536737061834791847195342023873984598628309032086512015459099269952785850031525372374596248705503809750566847765250028414455800859345014058417675584067329170890109073771366218094010116900597228570023083695551749555127356966075388460389420192717807829924190592292182317021476993651148041758638317826385619387474089345755661442104775003540958961257639011920213150062121835022515311026362500063855701327082160174244738825505521339744344321338236320592201315091576406927334989826492503112878289764667341829840451514806132035547561837475279108933462997691655278931099361921167543001451457837897466722607140857476393204928391072693834718761831216859958141117037258445393154813553127577633162536326658508800420557750376107878101437866872380917851672821579184185850839057948620170700426272407654209182019653547000550679417213482617995623692387888517791043089800985396481984429326752916379125706056740099683794619388879519611878306458622333397546492317260029084426521105171430962866581865023807916052335654973965519263414575909429112147457467756062207397961049326278049819610461694499288364643995264453830908508839025559574445593006852932594028325471320913248774602367379733770663242431359228108487778848163105644005468679482318930384365019231701383311044291601166379701188313084609500602229532446479470342374169508213259311259764725850374514221041424600359019509638177565484425572106081838932910829400373265212783001733195262675348872911160517569121719924458172353376934758164976787798673674954544957631517547483310140911909056531490186157721313453260311780370626422842679144473244956558354419004414126093463255509032590023417458284414064165802493992491268118897600224098341212213717868306122843330315215819724340321323882395164888805199934054371167954447509244342271790313499980608328587921730651136784978608759992270417758000892639259627570254203305444145736628922001665609300364432591138793411146955520593265771874387574488665611293549504761573155302167640815353349282788928754296829536010719570159228268017280072423594230498214073418817827843375266716544634465172734270315304406433376026671501534843556726377128604983830158489765097004150634208862411173169007167980897491361941978510569136104889850732547620526267697062182216469260076829590975036306195544519841509963399035610879250380847718818362009844972053992809156450552008056809220422758169079641835265903827585903242052877302256533466864834025281257986387318147022637499648262965625314053652347591364396163531343371650321096295429980047388044888501988014752502238876723806729635538742478283349380211739378636750004770486417358261731799044869657182178643250279724802762873259904002002181310422688313012935859802849351108719734476452573587713747982417258646784239086226485248256237203993259887962750924494796641001815599232725804162402840112850904954668530487195840396173215865706701763041666315084660706759647988359706604802732208251175660531504918478620596170363027317991659406339521109200722613541640938097843248556992147052249908074603023970938116201397852192908604157321392890623369555115708863561417487064576601487104653833295622954912384198064510117339909343501730176417134878525435247985784776930798144705810531120935923288682487525669850823017901305769544827513117651732363514758882607142636950408457069208530748307196207182749383786039056249531501467188047915107902669847106591867745664410412746008600174941347181404245581095619621125576827327329513249982859712524830719311057046894527912762157050033848105730868304236506016013340550909628518876741121764299437887398253551142423086275750683311827718234350931746276658889722422026078389260331160605301770056625495852068711881745810097328440407739600160866540070376801478379076056957989842399140179387238896826689484771303155513264204231844085315320869259234080521826847964835016463357205984680059340309115583998572703404138430263344894175286810804013230716393654690430012332662084803924716602260303573784670539038043018426092131724598304795822354697696167069780993390329091248393494850223001866298000032494470722300598029858766841465755072500636973036757987387151045304295053899963725582044929592501153486667269312738740086246231141103493375178388674744270297729640605516135488881092337035606275412093063649081002128256391694952858738762598658430545640661979024452851560710186489753199492265819901018845761297041944659748365810947705195412702004615579121857452337944531165557286271665565293485129592252998556834100129321452037148345500848037882802751452458249316124871993537163325453979859982149845209309843066135569351440414439974979525169483802080676207030743157491473101242883011052985567817312924130844594588317100333231247561634960088862041406645651605803818830191630876844862884275761520290483370498421365392979412983253468669166887822267587076232607685594923720389521800597554875770274147140766029879453199293910499511902775600549861679957237090635213069870926924575239460297040918588892060942441449990737738392836736798500554367896722802789791702926347206645467311257389984963756432431936548301178647850345863883771278582493755024940373323952239411092290164028710860545416592053506442247648174586527116631112558251456664977430133752969433411759960464800452718914678450509369362709219950653373043702746057431940550366914640971580044133242703227289477510482087460095717780571154603248966863439706418165917998587918643638575876970132063377155733299408113030098783788676409771873424511122061836282279681507456740778963314691465186311217638506643434834512474059700758225416030286059669100105064047547773887470536035502446083349375783540546607462656629967036375139519508497418395527364274329132614858938851350304832887783575953280952989716429154224137845556271851844310770229552999445983503957646265804858747623442831112999455155801670044713677828807832268446340432129585797322617298704242789107511697069438998481094373670184191409287131092993906235636709300407744069789551333708947916797617703177260784440376461661977556860973853519957834803351135371476718231985259140098193212637432348424737790800233569480777078156674657820390137197054177712836562327518419863260684260915769502162258460627127443085105040987029170617020297442026895529585840393372315479504890800308566564675441437734998013608772601044749216617209835987621282061014828495596997050402675899876946415161559283168374624992265789829537180851889814131621286621883696620453253908891409537426384154364014352388243820916758818548912164730733398650567922643931357948966721233716092352932232255112886043964056386378076457488034639107730761240947836805165485045702029596359882948939164636318919511415942618093275134690367660630624522711982392860858498051767650940849328277717755475868436973469062350629381712633887122946076226279850699875454204969451786393454506123823476997394316388565754340000761097872618511833550374405008625848434127185253475992144004403372923915427445520559169869062463269427336762222160825502064501945400205623766387713535770180960806650222912845842268256009324164391932714604152094272735721176409510372208342880340289435972105194880207622947577033803362566477714575876037504279244204486827840093204892093356101590426109749813404004450359821442849698368449301403012861466504717184695219681429731247517788375421886193460214744986135297579165231684904376101975316245304346344432638676996009471171781943841604396869136209192961642437424556328974898008170209392662022018927976239695112373073258453321154893962179300914094279634134309183886557108422302696678196100502088949819975669252343484492299576019604497043123836775364032372916201499722805852027209766826478903487287603340986727512921459059249466600673233822717852240736991367394074317652905400066857077977842610905384464781624975220289961001767950341579298454665315578942510714846843784602612507086471353544341353851864776990802082436284485160249363720743257101196774588962209656008396213834234298504007818188910908749681497314784408633038992436868772980311701871293529734845303702990436244054678926140506142276333992620161662606509414237514558538555195068121598275771442581702370158438259399165386033392448142065630386371405887575491127525635687005830670827885048568397282868037614854744140881237769416643538808747623535553427875344014775628039365264749187786954765828593143431212438141002583959776848978957679182131113312015033436810591584083775696502078117159297821872091023303989601131377105105980723281140348845968263849016777951102287465500323508953779165579127153889960867798068356515651310837149741338133465928031856936867704111782526408899047980449098517921986776118474063195654128208693568067731472157085779691472135287895636716973781065025620496934240757374823923600084088327353805623888178726733608721164268954559943384334007409248883577883540602840733286904051259142004719579392373384662940250838637139586916756961088115184366637858135201444713230603203092593679265123769434412502868939571707422784596282414166857668609922980646421372613626829645041467638354502171178733553649190464335275084962230585702041786522710916111563696002038784036459803636055101034687107274422069890127395995239683835762279904776605188884658653478880580900113657110493637033314457546017823741747930349279298079138438676487795640841803263856029184440549428831504297506625025753160247560931126413978219953113691389248748726540232292202966684036776811551348608454244011013435302485429408472199864673974874093135431858314920905013742301325584242776413118880019917702162061232521043205597172179765262857929190420403785663581989047659296724810089242691520604086708342548599176897981884932104913040628774326192618195634275666281040356567966061142649693530246841511585486653033839126384243949687924814560859708206832195043044506613984168639342479304972327138542854884890486258830371167793487198502203029719912686873548753990176761377234337185835305156653296417693210165064707842689753812483925501919986708785615863420734078008851148575427633910749233570474358117270893176384220600042253129167966821781798206251624512587617282989233563881698867346588754662476111491865757993726086302823450981979477394503098643513537649331532835065170279265973137896060168789604450089277748034052561614346393380739078887380284033256886743119756813481115344243028085831380301704586842947961237412104144832770229427265205404385162277645397531095994532244497758119491582595763572246964774501118318724876207889968547429723589944384438595930701098338157740913142392480695651841634774812618137122298423652737752275564034231287302098164737523497824291376158593036466980146852383421965682947330085687626904827128424239828556008770440397974793092708912856365927470127050504713259361336262593388493091105792353622246497663480896746361346694761079594130317280533886345376057760513368068435336247130550682369497464587172870947011379400665595886915280998024738755049215405471142107118180408463411887775766730672451849600830610441032225355828420295208628849145995173994173774722534606106691479378396583868979583183582491654555581200832005828998381675859371726741452126621956504488532210600218176715180039703873415492202830463665174829999233499840089820847547166784644033954800257478712662751190682729181069136346276848860462800350377020200905813648872543383589494356294546313505518016003532745674732291456060131952649462227716121425309307929238871891599033940696250420918680103738511719984161303448173958847650680639586380832572974899709180948827834741587029712006932916158171521624952408295202966534905973934023012529669818714561180094074413243197624518973050827349907083135905604782487323108396951985702462744246888103542192996996249671603401358820830128332517746472575961880439336833450130103515329720706223213726138602632435057686105016310520370314850222688820404030240080405564190673752956202994024272174508468713441588304727374602173103098676563341949971445460943118353393683928539181901279976461319496639992587621006428279254256293052347084100850235938552962452571476489662138697937404422609771262496777190016856017584333821075366602022148824251154616969860432336546102320330157334177650669986872321979701568066884832964776357435919192272574077338045908592517992134046729790276250869474204757488307671270199615349323047668337354867585315833858546835478311928149221518260561192145125783491736575799153258124107961047713512858472744235461834469802402067833599394752043929773230484602672917686818608008240537547623876538632098565710962369545243583738674243671118498127104124769192439058609944908817447987985626405043385243343825067792976939379358156336086338356074074564364181863444724857051191251571530398311888750344186044284490551223445668351011290101306711094289622560450749479481019292940348700537745210948221853390411087814208361241547694852031628044757805543569081359414048841203415708325617153258208243978218689403432444849602768507882022441601937753825077113518087998311680836856927813329434153361268969478826358259689861094400331112387162062799709985740244783651880519890747722837445628149489289175976148271730142884364081957954438873983757267576099000925245823108728568956391878532731526719147631307781363585593481921875372116747669302913712039578824826098009709095364748130598449077530993332830620361523362915870647696111514429632489894570701465661814087272079961684210312133995409104509331739314247074918845160580034444074295738665653588720935217160771813282637550191107012681339557370730216727736853284415109909529444807217894714721900060458948252536097858088040853388301386027369303794407997097158463373778795225949972792031627132584032358387721027112856867135637948647379630060485033492222952981304577529479361395806244085978656877485738721575887600733625209416429801268277712731161076656555300020143855335412806626926731997145438760176878170256230374341086712554185223914864263643072656253830795104086497961882878459928695579507130314478806424225474195802921650200648180568869570341719601717288086709150832747899014615035151021336258590356917023162011100993325635191518413871236868937260176013634999745402185478780673104958251593208364047865784180041885579528403437600286831192835861702241194227866928151569437143989428002616861408876373701917011755333978456676048334419131471421399143954043345052998489597399618453175046555875584754591489603182385229244489336238480712326362333325481214401539392001757370236793520762840275390252891987337783018602013440350955424110396411119326019157022118694009422722228561020211427195057628224233279182329187265372736001345861600697742856562696917803929606959158528445436855041787938237360109026094433838051138753208242579515147050262993530923545842087068239467884788582691681303274372716335487947494683778806831466420201083785337594854793743908270330181729393047688462682535497550706561842916376818893513856402046698158845934808606752805548408761815837175825689311758777932419775079405044446728054788094777036749963934536598581436226936696673579945718671221246114137559792450919008733765166960942709459673114171749421195132519817938944655387162589595936912478986849620779425795334416907935889702702845223807267967237659350570411924400791809576955729906656873615704717500782346713219419584475608671988469320856732673972713265570246986871189154766174824696774327300199093583338431394463936095109599378521781140130637555890763978875411389731438333726610385074147398687839271907731484933100781681929429617054538633970980513598293228356748546444574003729389023752055830024288951904907739593011873111200525955419460087694401666739551053418915176021084934497667251808977680395380125613689172595394636527894231590684142024975557841351559890053406676324143780685278658994373174197034828874014516130602687032117121781199878764764271238787733933922222419338087065129018694851253288509119746866919919044623044844586784565506272566646276319412977493171148740787392078661880125564705770815831330948325910344617968837410418582909792848960234326932536783626463731097407382457085655989792914152747008259959267957950125312821746085427943120986399064943641335560813699939695944493116066026463689708671116197127821431613992697916746623730460703542867928560424466199362788718252347638287207471302942004517581425566768557600088312365026709772856612649544666425191188022291767254610645003580375066918636492796449720948824311542398336035692901519078946309672896011695272842338819675337610932111450333179209025385947420730255615843212786166717860317753815584528066927152186556487333415409139578140680329262403068006325782402061313665336082762036144177111258467599327460895994081576087785248784677434816751765566591160797749017034221191550989977997384277778957145318348876814866060325807296742095196813390338873045990840927993120646714162911603212143670327872522282193335811939890842732300210110363544059450260576318249814197655747900143287317630587639325996028802718486049271811656816331558627824051485825675868520734281459780235887062587740506855934464383586449370811331502871917156220884805032996200148038344672048839638282010555714595457855533903251655382927130416286838260136450214113971369671076685884532380527821155326952583309673879996416161417756188474688074903389557880723631900987525127151509468175252245592707892871861726158475880243659262127878466351597710357652535029326645325753253819613039071513802178003290412283404749009881537995149037015934803674677619236772958568923323627527759775923112967560882523022231132670019465350884809659039217695811205349102601440388114650116408394963775023146832658795163274544037165272237562260604526057953284733011393141787380101919016913302426119289238701412475187189634503384331126309138726874691323096072867003155575375642601963941451733299286458985311138591107161459899684525144379440499930988492366834043795800936815008012291895075021353625724480047888648027380186810443959485901560728937177190392282077719243638720787299406515708086904731121774611818748252972042010052002377699798463687620851825142548605369632697894643069821871665107541571695244124463923207008733051133870648813842407855392143697610004402854910814397832898072740560992008861057298467033809183972782428032940294388169027424461013971411918599579939711394639613635501182869548500872474013980818400457604103569251399835375350669069384309702432247853008090120263677999375833354305135321825023620607423380461284399130677646332425587654502760694548091847424710360963950946423828701225785498699095996738687304272004106347727989285595672760572208067399825105135029086432643136798155651683832718270832924975350050034447692824600099918567399166657643447555792408206806848511909594731550802301889835851014731425923348164461003174518611271480641459853564813164762109685489225885583051080279822215781080737779463474694617509951644668163239645787008907598303351955133197848647313613326781544514911364295874088499710282425710619313177615275591352243104373834254009481408130611267819600376988072551876033527367480451254446453649281251997194011100400519297188464710683251246796446854167115028618598477961340199344103790145640635126569101938706462815444992161276083296551436447276958745212782106251594930567298243005478194906794906888348964582676769065683863761455373968280225643187868821751323258540473549808764465234064489172013215764088629904875124077221004074290225829462150749320942937554479851801484677388232195983078265688151674170678393082499290004067339287498643660324006590507504004341703952955608736854419381688179421387976508106635423515282194402106262564678042701747985993026539989281895201127165814785986061522399516885231492289118545004906847068480774834167161083152754126902397300556395492044972352732231135208990152998663588150346440975075529832039407287213208157219281180146681959381611147467669673951626971412428906458381808058414362039286858769869011989128748606561337129692919013197781149343891237341930153315782754329835025578088493734012943814949271024397990355728117594968282968964794376978994543975543391626751248088654759862770335484117120583065653478588789284575470725579220380823548982497868589926080591388895625276955799847932909575418285754551627198220099963372449999804879934563109923262900781366355722151772115856950911161900903759629581524370378969983526387951585642843250977756799409059906537478643545123858640830903285478536098144690831119754896937542813738085294553759735517671007620498531806737410529804327627536388317774477670613055325847119593801996966634800854301589461213634681666606240298257918252398482667908321112671660534113646246731862401632541335707692726289647703890312248360827181473319607171445854294226596357152568858932499600066368744325852173059375018830503388927343605437406100203516807653496585530145317274709556888729552087072053833797877911287754975811890156892459562120312619450090253194786359808971228616203270206752419442078541446649035085255933430950153832121480885799331854738115083647251032728124817010839452252193085820565048266426851358515451303099690135992563008916264741024589979768323812998451619559413369809443610430036021746917820615979967561454796100223407568261197820372983785629978363660989074683298416383349554248723803067073229215904149852973196610022363570757311934944805247162297226893133960412862419616651903583667296839439972944303424159650930400194411617276655359627223716625604042500742495609136502711046803920402430223185951725403159421905752889250826888443643933473124241197272879086965835830223684403817871600856059063296561586234912340268639997387028752964017865714522901147048722143421230889442698866160345563682841369304177909607822884706969204994562779168471982134621483333236777918027922898203302929495525931035190060783576277863725514784908710679139238921617873675461191018149714661884036521487888949295984660360237550388945858270936696911634664704595890396832290012597800630728912271974988989709299874534185258785586778071151963407118441043281703043083012417441020293271880303800264412098958930345941062234511181720792621993511948384012806945991887220775138394342845529386363357844056419089269488259683544478246795600233584705690314350870135680693271818860145875933357876834201396523435841587188017673413347148849311355030275011044966806188030556423070801976964078642785660859747845891967940047340848750445097158027156349088709373393821596246743077832764085981018599456115038245635666161086126707420727991625894242727642236213010929054069219114376678842544205153374074221250334748909405454761830025958641007921461828529952432247110712812687399782896372124686877949154463794617992456553817318739199849996352058146902148945310447682016092506689352244767210182181271749556853377184145127182159004195444936550803490956643330983493717520842978036016557931448879034893034548642168833882360125640442523587193130433735109548593966202828012884796372987287346500099423926635014048175279083986031397907796844281852164246723762276198391236360641933898779427473352675376399844663969614550417236031585282322193825207293623371477302225614639310186534707242732522404256398291231826961545139082173966422632395730726525014043224646474506753323441831492425914977575075987006989333040833581215178955670017406805923079175613776605991165290851456945963497524022467665098663986953557018442628765902754018367516680946149954947594813087272576840409702755000463575882392214271242128894703700010254436598208169697855513993722846285162947600141729157515484432051554546993170315254082984151773745239468088622375637016542307494720954489790530779330180708698291303665334206708101373591209417132238048801522267797095927058473647395478553246084021235813537691496949836069013331560556411650695808851409609341363893115078115799559444010493466075588369017321299714800465057982374373399769477865497546714363326807314358386189738107181299571214155989192952055604802676981192493497205371805628861800996020288005737886105939645161768479542341773461209739034422033727757876685867785005955490516589226425982665067288066942350929354389156554580760057706434451392774528185624778603165440073484535191120698585437568655127728962664235785045448064343025648706906190498407071758143897389743817304718343861046882402297202264936564920377759688934234769957269822272983842635850945501615049049121852466944194648163973247691525152132290286792605575893849624890257390006071543546264355893694882926717378125537084410100386455732928404387586834252404399096704832521555825707235681157975259575436124798469483152111484917683859759595972287025098171955131369689770226468756931950757856361090071537406988646585512839308832667800500573909235455641750962246545963670716337270377423792923389109295313004680319983414742501120502890153024595483542717108242484016538008680631429220371512348787179534186500920456281754361964939336279074774114078393599350285589675413751029845664077744950035301157277357539636659986103363103300942337738989024375159867096541776639927651421224113728957548765791817580590328597070459799889807217407812777850705902505507963083577827660588902755781859599650869319148864346442435184432876914230605393235864321504283909570207062354003723656331818230451690063828220439423061487275843567208650088500798743856573061922290761333483172148636929443486636785769083626771309396958100740057100710563225960795428826567188882570601004805939427521303330677141516977210589397016609681264526197121424835592945558158520986363307042554201521548444947851431156795514806878738665280295069617358176986724497615635417807255344861959196168304766538422709863660027456556435213212275485107148691058674868648778270825557594613204777821348927737596913874944152282345059194462183889784864972412866026523395195732532997871028187956430321673196218129369750399135208897036759586409341436257086878950787665573648463964897013863471342559992154813047438531172696219878458301837298898622105578475524244642629549643192770532998986632185852587140014377452134185559440439598285329462571288421110572887395477322756152437101533122923059258662539687153718519951294853941682476256306921328602609969215446161443260544637761949491511940345235704842114340133093297686415009901163079374303893583514212210150453045608152032385642777240333361578375455838996691905726773004532938845859802506020240138100994633035711697793677600346999488532327231345349406863828821560484151412884895222302491775153120508467303973807691502018557343666921202833970488680540188012559795204832045750096546719544942805705700608434543140104200129551353352288078335364746883901178034018958818883581676538680240174333065495981881235831482499482657926885885251488511659575758402067186546480513544263242741776675426137120127527121067500726537652479649929734739564871522460615697056962516070722417529737702725699687494419339870571799058791925945417253963323681878585121257858039242105972062798907868633316210864036507096199487169636262631757222039845348107851851867381199062966511729659251201887022250196185539876567691663880606955622059813558890018750961081992406485057313419268120947453397360711638678199384373039368970871886465668922429776472708932375216672816803238436830543719730494272794957258158464383017689783404847054725115205692316569893618178921856117139474270919911098616288208266150902881698460221598902022047120087965102424270760550648788414079648263671770193113907000796682182783114529335230945043831907686155981185540952877676343480599454197905560392562591190100233806684871445472067681987368399331608240345219826887863614864682723897030289067330844953120582685411279129016524708388758988214684134877706358372840267486341781820726859671663851216170276160899732642889995917336914433023217362214499724824001375449212691064908818614522712558920965212377144149420753068906864931187440677553577677814071353351551648255331263094082110507003016732670931655279004855042358483564867957050121926508103139656614996808427583753141711262255355085790881642889686456598455843292787841031875643836539562583050456954007544979167142266374101146457986120158312897740806888496121922802050807869990340361164285354974927272858854423173085270759557030832984496534185498664512082325215520826975215021108168992489498674371327358696001030563369207336241314308719900144633622644489873791110826205753229316813218503292151959129545761997554070968467548257780071606816966238242636388853505315398551550971019502597209246336054900855648842108543879786879815902919725641280100934498522877777951857961799982609275138612173327240939940630623348588117042881061474384022279323871138045964228038651511340266544159245442865614999545511576420743683861597519984845535281207139916076207257189295275513670193873397071867374336057124495694597882345170307705948062224424085064074907941072065740397650116306359435730733913247364132146601520871991818283924346143350698340511847033136272903879057497755741361418524973244850297710790382977976808750023852367074629348483057483844869582257685388764796006112200325023824556099505474406188120627128849600691579119240789619810195364445174653284992975951433021749571442292168939699928980407478296611572668909747273192518340336767799577715713966824535387839656649702389276433006140400309359907115248079987576218798351043574587618072499670116920412503540894523491242663957964700131238207543285043519285008925725046496187752964234642058498784200940562740317907665400930641959929370756799354623060896843498253925391110217822845667575483628696405098397004032775398643990851636385012156282963940486327087094163309134397916328105293774774636316954088218316890723235758853333039573296484820088429074043686041881410843597613256613397740514399763850841020740829780595894728417144356678331528085614863108678250709170421601277839666456746974592145208879228794379583198782701042300845525141817961844170512296830216933880023324714093351041819892617472730129218552260501089981412471165204542369283043989061796237849723121690540611249040429095644150497947170071461307981365057922293297229364967319054939873552663888536335083929402490938935473589792137936469712392544172246614452030941504542951216134491543279191316106221637540861110887005817323147758124641409178564844535470284887596646450311437889494191147063774095266809300129257775560952756500868251701161652517287637874108728429744353591058878494078239785800177304586770556132977242480373065477132295310422516984891526614432620683910067153711231208368495577888416629698337294925896547351877927820884919876191392611074593321329896711252735462072530309685079560840358653290055879067900217327951294712047561599427082412412255308001535310436903583147853307846963212258951541288195286490232508184399734150997638616884086963717992418603180220733986631545216748581777513432418037700151632278677832929863848206210865429968343519276964230092230370012836054367180992835094866136477778205924674376778902877872138103929126203791177141576491916609749644383078351307003380537010272974403661140287301340974405044245970758393150062472752677498610549291062208157038835883847829591839150423363368812363891901882656318015823685809907736530719052268801759925622318915084984260882551298443317534559529729878844774087342298212110789608926716777672846933319061870886196363892301625345213779415550128685245056240374689482351289503659063099697206516242864226481788881186729892360955064599057655063110960262641952507690025599335760847632459100780544602833402386303440188364661503977595002639110622148821745163728202346281168655257616342396307303660094279679487411152934346512388209062986894408959222591352155108808774689811423430972338672796476358278138091385306139529807579611324708805500985850575713679356253423252078888895374280085379768486130850362861619547200265213599837368853540949422130061368735705674265209429399182434154108219241160546400268930541688022873482059372884892327055890061831527728999067053704982150511001144066763559419642479861462647963105750268563217917189109216806253122447389385307401262736645027802024786341202492048749110248889343313953659040424279988644102024738696512598728801386410945936643599715179588334257623244465452813964169007089220880655616862759324111082123417340818004884481050802141177664828963687302643362697041614741926027628968145184200292197715453725705816956081840483252177326350698056323404750650699821262062937702081928783159688740214524865192919617449794969776429877300029744354450397641569052960154445859844873914040684175267607212334984143172987727190987123340147888997948168472879765638658018724855504679522230974091875153875810492329750052601877041925456936166045577288216873021867302654198126717297934040819720616130227722004150987956003320167721593080342636355276023909322080512030573977056566124282476131773447832317095855100876533869240098417960504501496696725770424921579101946384133450686697233184470237030864364404123322356842083241526192263358543179712507005166832029728960055476919644233531382453935702736519590207956597700548948579389973291510127013630436218851947488050677828169003208088004894418734453271793447744281872048861669519462055731857948615954089823790919011476129509419692715875395689946558467799720783725960135423642365356219721364585831257112220270892802130089899552056098018385150673510555782617081285793331062775439820991232606631447375530597160646128839081180848223764884282669732253709739960704278933648562886617756033827298624460761580729014098062375340987195235888083478784206299226356461685529644767422658501095639518851138826303740775715909582700015537956564092242183470786479296178468513049913248235842846254355964491568320531659522724679233873136010213678929994331599564709477980759947548698015116469552817337889282888325925312206654782992537509450863644969944003274699536002071555255311204307202286024127950224811488644661704268981412929237698317039131287991794032557364869194303761373493338738123714006953209431684012512335118549762828094626742406996503889393849866952260599853258241941528477714429494919376914263732579751106512589117589591139139280941845594392797948715118400135636269917267511648893883768801953957390571836716315246472860932318925007645702178025956125922625764646075530966970558078988437537451919735206259689090329759009761706552361221935023891107017894123970818919796298681266325136666815855023338248861565906240991815935615144078601008333659666048893210738131582938325418592264005070336502117752368328709080769480899386148762705384534376669651753143015258757767398339792421186467509273222143374451931266570835992677983058545440491570884956566617587404469206390490062909481136042021404639104290846671854646653207408237264983663389083352127465213458358011806219261406437227090843265920131803643986018530772164521514868882637241210160313263348387630386732703155418120652328061063230232336462490986759734391034260833938025599092209814283047711414354378999770933301390004582292098697142890777623304643585314706379054210812838314437670683163437568981006761362024366706764796958843132416150756086054915379751684128579654312026136170539912316852426058011586731745084457725844851334480093467170806106851908967140452300324795843632025788591427967594176492318047860036825760474595221694010030228775831405154609127175248999300268756795261324696173577240075998999744644259979551204240956911667640685129113868324273607407623859888636526816933992887044014901404890721802529234835420899351898836110173570104642247614978269219326184256481920602818220059972513508159966855186251170151321283144455095119614339454691889578379332610275722168714337513589620531656100432631607851061504581116321392819005582443340385206139025388519901633030582756443224944971999544264716556611586619227050465036623728509006131208817776269198209820697807269570966611759348301820616327679253630198329748535868126267367718026551289841730295264579580885562755937123093582574514565286697499746660502467681270385798224808471275695327986560034386694744867449807235239969631083426936042395855066280477088833439176096294668883220146195686082563212398106002629973471834567059567962071225558493986676573838896780781660467586045558280715439178672850764924438775496427398619245482782790133200779338432209783069653212401697031437963870198850525668786142878847133596787129557712185699385461895511571479617661975727394205200967960426385669112208838566279908403358118323636907490465077167787500265516140935768380082253108667406262808716722502463869172681178807157235268054083494314767887524983407599698701298906930968073408109377599226003743950972828920393852364110617608813327028500109661324490380885075251868062646059109376628344093883558776274622907524228451464553192021565225566604847162125320113900608645440433381917306833427141764065753530550148697945559702672806296568773838513181282369165987033882154409353867845601935251924093380434316913403133309046877579104490104192923191229247994305128491074932652733784940072980251663394202844967046297464391872366607822312375660351346565645920387515463509211111411557700402063380664066851691743041459215375074402583652889292454728445832965864940402926039028346437784957271020544023891621877931192787013877751262364877194621365195681263502360037501292429709123628362869309610990027971496078825022922175600076334027698042735372841833843033661746102799059992841792674650583244553032598226225252817441866925568419695855089817689241606625888137306458510222590000354375651405949005355557518090197742441000657320794083460485043384950155520815926265944328172197972725376107720919967256518030448850189281235624507968188112011540333844653911920941087186691112981705905034359638308783368829235696583548996714846661383127809313441159021649337473104624052825758256621980110543124146512143753344242238245381756618105339739868560226323719686408968870888816742608013337642574079148552653787586550865015327814093930739919698946938641374170336221899319188534400867397472965412341809195507115693231920803696214351350095634146464320427882771305800404433524285696235997438896406983687324263420270970670909084063018468235969272046894412921524789505366960415173240723915709879756700426639609889147018391413411732320967535372244208133172775151268495444404592961644463821173257157068000936062172427809165645717596359639270128690271093125521560038437052437302266458188376517978413050859485897443732733382832123605819132220829106891391805823256738583639447006336607319346516916657833615430182915539573226623986066092290049635858419536998454659232583859596995719847800955867151484970414517302670428603293771179658272916744755269330144521586233289835926536707892664804007899494203111742579182746858950112316823081932361281693673782023738998384938430795173146873424672266392831955689905887460140145538268747850804625849891037190905981034493886727169818370768533944263137248854422094584042702899530731335903007961133333367672844721230055700804796436500695271811033032063177292221491331045838738697217262591336549807021918748677603443732698905856407676689839651008506546143235916838507860163614842861513389800961908217817102081347572205756424289163916349181648237753596667030609598819349238961244777252683875612396558991317502493546204018075205501005137234865593531020906345570914396495002661324839579202569882736900498725602108590180350276790234015034657560719614371916731664046582832330546381249035050637333311178379296660643709171690021206900123194743623537074189854462236228153234979748677691716442112271956861517943050553240488877638706899010661649564671133243175376936781467397655705115267157566965507022214608800391318165699388674639402097164081962659363094993535154347063976838011222014638420472052510968407465548441804422147936296490922178304792340663100985743269350664585247051607731004763647106140789587251403461609001435560749321289779515090349214583017346448292453533287661019457984126545548974987649880802214272862315809641644411671701608748468684133507535033829569550891070338347596311482266173367391756132663634568916960115239793153152505101883505239392557234502485551882106020958473301321483785788002677184623524573386212375611952504588720604247988374428843221515182460161737008130708852850877630241915080347205524814038909469123013337903832355126668003094657721689184537391517051619428461389434913110729492862363351314458378478447117768276768430458397929771414557102609683647112459033460186780143141499305833803915468005214835516360998574427438698358187608980571155695449347231511285253352504868177792282865381254258584110889525741549272634538838492069167475922323245591943900825049241424613541995574067448314989531626728031587155813898979907331363327868903574194730771509986151557814363430342315098439537185081192895954520206562492616318466539617023947024361893257751996450775447409567372999527954112422163407514845374265723197783758030815959713757304674429530632721650885929532287630144464546874639317311968396315618921236396593554649214710968200711382351077664502445804626010334910207450565567048749050033958512623888105178085369529255226304002829474056132213354062523056904622742992185682471322779864513551630641067295836961834398579680824915044610525123810559358607227561536859612162782866359114476616108278750937142160746695246756549028499621013202653688359210360237990192809282819006393563561922891610815961001781592787263107076609927780233785784638541868141549635866176399922712647394962689969127237920820962970447655270222867144994720362071857438372179716783478498798177976100320734814223623754657196516249342544471995798118901264698463043303897288363545385882468483994122116286823039974402688244098527801428251492153641467687428555998953587459563892972113655031767302342847115452021763424390999399748921909437434627324270374386173114224357418837208077387460394879353115284269114827237263037537010308131417205972158479821229595389400851416748854941637619198446480243156240895008988087060884433369483176777050330858676474403541305205723583434741120612733874186394113986817181428827620191972363260806321156051131862354008303661791786256320229715853825931206957569024900417074124705894697236625400443548129532353202914317311947070546510872281082195643290038594810621234238765175375413754566402733814372135483145550475505180102262875749899500547014462368624167770047230932853027801220186204396594271311018404270070113068673234053980700439164394053847706479064076432411525749802081922319273784462408618147318935125770795257071080624045746091781571478011777944330248582159176254138759653502409229102665174614444192188091497687161099986405270836117645318324520252875990215245796370717500146971981963004504143729973246342791665230787270251692920710543925813835255295606099909441126833015382145009584461099601691372062043620764815898882408701855383497922175280644343598811800176101544893084353152517101837977355351380157180943482493873017639423883492540144704394124999183716009913166337436224387000281398294456180606781767398648365672342546586980843456715594909411974864234811570363905573114896653570151279455198529677126430717581275393555771701490422574970715875677030064853877232042383242879367823744488749637124600419376877450532591811644025129464427721202660515640891026078901220669902752733682611320597955152735472223889607979028600390193633861595483892526460858307209758749787454133771461678437042773651128396594307905272863337353004562081283182662781607613521566673989606826039913059901560811551921266442773313581627613329019116371008146047639939987936043562246030227700584580305734766289298124196609243252806881678216417565067148998540840388527430235171831085684997217885441719461602391962562671662101000231067598602508213667258046391773389144542279982775926875301810934367024634767612023894075247276594423083158804165395614270582063128613925675491228045333195078277069642771719046196106323117073035289033103243729898357603549046290990187989064335786669146121474348909458709623463476687324751545200218372222470098416494655152648220557585447492910835982624464533783138854641516699528564588210423606917599639330377258727967181864689386248661181272520746465401124666990430869548038914095243027264672792098097853013498502086472351088986261529432381365046085993532871472033044652097404297884837098055612967973939519941672875101680063960774285829282266208689866319454385280278672238296607574957131224476913612130508898952647040619096618862172826529893866471108513734867263816986748728456613743384186985067999135876081437884313276761278211059657887732588439651316731861609984196344662119683828059256295222478040935075105844294579586384831999213835216127217849319959436640139385641550451287150612276462727472263844925007396250573098464700238223322170811490845809868568073828884461516006154116022076979036713507356495172625426911168848218566312141171156389518571448696085202228412660658609978702215416880512461502604620262749261429443196316221081194383058237405166954328989526531438209848212670768473592425910819773297404546961872527207691100429635980037181358529150760641867592089532264653774378785351080170630371263325208764290725805127713658485208955941084380588624048856694674830563541943249898512279705074557943208549216271657363301690238047587172368728663715897246312796076494191005299900248303193165527695972306587006180453820943462902636123789142131445624958721347632710649333739120010026295124712562979482558715870353894909912668338800382415674002314068509429203893407099198613947690556364739415281586411319899599170987039900510847283737839099027437716447986814928999185500812122701824393291025667618105676975342052395154579577684791149252701621220838985154016744207616134995693585109490611360436806151957774706330204839436704420297383360683225480991776980197688070238767345441705790014526281248610898676268905809044858382131115512792554304539186804027706200765910240219870813985465736764326906538439616362617812933994071588829612232598063611562006715552141915709000528160108781101672944308502249914680984343043296041731048581423546845403554918784011149278242945807178639053651816413970401692836183028449996765009363405291780220115485331190041150257605851352330539056045599550820873330298534125124423720564785608185389244890672551415929032520478162740193075795021345165395640837748857873650319200900458342214431537887010290428482573311239735342418674453271601460943223432667220245022476200662772797199904869265407956319089320678313805561676136272720155914919998570904316174496566900806386031281403833146618178223416167797269130971156134794905644966975625480690099650615841003297395789522018585079933258922432548838445166494224368212186822950824230976654698348006050437962155288849731955598768362841917455063451011773333839941290891566199307012409014894759861149337586064621800276750238124577937887761309585515318659156969729286563767654525963997583564486394571029816813966182346592968363406800247317145820875394014232336417368925317975482021293707236545523168782118431310386406812300250236136033605789223913343557284694401202609119480003978324560457998072140577383634666256566824650949803569222836930220997082055869502198361444540677814644574866751348237986658813718312624688137088565638694665173885397163877705314611766787123690139821737286167054774808038177698158456592745140132847675738000481886269376110929876096514272523563956998219494387867450433929467947413216018732076499973169070901221859409227561027510214801119678064787065158567153952398935648545952375206799063632235595370480828835554512093983802369304246396552664554528856853792378487971394582252180003452867043462093719981556535835195517549325839243626859708589765514181788566167112530363281343888272171831628441784949936836260906767722287481385629627309908605926341191811108631705379135003372447192337071604754322974853099651937083331096952560204412503816697870100378782032589654899034812451850126124046549008829840714989787822332292452009700605691028449596734928083990727405836766393707734679131195910924330136544056699832000580378042163454925533284511181704753056091718144155837225752076781283953730007255041119951040023381687482388674263733489581707249445276374782093099767354370632995008928683776194278202346045080967675829901474591819240810713107567752144297598358594751201670817459566305301108627914679438461426707462307951887816913780665235252954075377300436487718181577370397938998759534325756365917322187128660073190317135599779690972980654094560380897090249316393027862010238085688489152062523638057694230171191204015379474356363908330520456483034897308263448721181582880632413380136105191683342175682659333433657166732030029047284163396168829884361444296803603930494368902947717621407727440133893853864846330531695828720731928602376201053369188405182172363917941408647146354120786794584140743530957763840412603101924300869355644384030864881351180240592701612975581663062236102564229696713310674373282088252308176996809661970695727573369369241914802298502831833912472639062869268688500337471377816040418874816354757245601185143268608610774776548698156270511658889730091196974843753703598575119005868210531465235860805299103373064940537018096802328128846397198244923284579025060508635570785368952060170708050464079967314821003971444232455386728780835279257921923959984047137062219492973078223004639146256509255161533608087176830800066637667564953859922910896881386182253990082295760227452897389669380726008939521645939422654544281737192569320845226457771592247120950337242775141892457807974422270087650320087154184001441305698781803361910188466971270963176626076536925320312915738262725633969721831946291670196301919493650184346103657053734511671387451217529013103621697995552160272840235304991512498141233766670645096719330101673705161127659268144338015661762444212206853503704178667301698502713399939143420321009045644700717863167197731774887610429010603885523903973451046565357441019385003132805979694349566863595123402588414513065305747162350737723022467820848762501059417468197628905123210496979453154081034377837027163917141792909380193104300688697918025367201000763247779940833349035512179250216725656600555551150375990442300032974361275834385524059997217786872302353037398676324414990668645884410429514375676429903863264698981123319742632836910267008192524171354593224178114932374704429300967357574579747893139853139955335811072547584433129297083219844844340967414346226672966847114291637032448183048443832950647129573400641576021976588388689208241992924951033867653282297153927691372336489694373739158258924579296398975841178572999508061236433773524846289210096096537703305071907059053215795941310915906294034458020698221746992285012005167201732907353783089513302292923649416547337734341626403886014800348756395737129595381365160784111898626663450489792573610846165103043407260363616391577152376637039999902491191920141439586894608294133726955279891454499637794601954223496914394261119642399830927261193691803770556301357382951270031754682282380400652335583946731407924885503291720265809272532200650805036789244230595489780948702439873903478607740109623940425183544146285862497762739694371161991065920502769326942888271440049224518838263449041472176292056885729875717075153029711199810367084226508307467033582864006401360431849888762767204160374268883470456774911049717728574974968126803021675438201288250310480898436548265084127782145207957918952058119531890460907408233467069367940410506344732292417262932072311298999831229443945223484513453588683349340174491475053021479334543301591726700460223663529872372941928424929491318222186586062368826423017824770873259732647331680224228522404805550419560697673480957572699924916034193097031804423488042164031376990149831307282887332707697855292018710369937523002211118078542771487202323987575790193052362512671268732907062744674087035538291793372941383722622868615757389692311515143789653402165161427380728504182723645789511106649611185025803515260184683207379982116393759309015078294027225172713080678669086134738275454314844192628500954011244349652472095641047446441280703778015531366427092328872574597183575721671605968270190992470810497033618193944076754000769397023088595640457824872619388665108951340995631630614134657962491188424061100982936175954624045241784776541904747523446520496492554548074637258188100333486438363995794675531787019867680218954151243304637046058284015031232051067612966195522473082854450893285158414255505428578930347199682680660654491410948510725780416094995499893632165562547034318705859007410724761825881540854033299386474287196121184057294740626431384852595027035364531193437779680047414546626607706503196000737399177258675833018124951943284461060192841473192220462045885535133304870773820189151186660799754914350790411802101781790217120478883721404069325954838113408371211950227771083337925802713556942567724012121952758348646902689483571307674093178402836473862599474784105626132126554577619220541163378153257204942147490483783653126530749713430694221043509938712770477358477548924176697860072097355047526294866172814918637516552506500127348908376129586721039157491988065450144342383786680195220459027897202098979501321089687958897205880341935050828638239092034552537534647138242811152900034141743441003773265456673491934988898640436172138352902880050240775124258569003799306527539755270824031851988124039471996946347136325628993274908594720704718051854969662298458238448002660830740268969467674698488148789912586076363531205440376897429703956453524762919696483580993865415355450245052761703872939795821755866565940181484532599190309589152545741857993896916355487512767682375530836952952402174148847802864423125116534759722194799186115678267304780080353157996797462003431377768571329831697348019069252458599098365389300168153747924045205297654237517982971100075326117496260619216388638744730944637907495028118721316893247069891073333381832269781082379078117245257516651794414212808424744260774107447573416520598059954682479489833070697138183006442959748988386389174000599965083629177861790731106442418986802173395867488807724231661725111562938311520592101793410701643011583292845452101539303938859194826413922258397978208649689535721039066607381378489712865184956569545408568658247334791786002959580433031715550439351460223179495029729429089620883959299405951500131884990977451564131500955011018863869570483747685183207662279893556517890397185424824741025221178541220518607745291560145627948172605012393620424667536335119585324896708093379520079777403673162061408360732849742531186798811623106561913510522498171869136264200353777425842197671843055652170129081473122304867303913546446869188204771625422676778061024711292305436594558622125223611283366211518814934922561764019780115475538625757870583189517488601210740341039417153174678288540390254808775515070581757387405791729155147154994908637988768901131870849153057582873768063342407326561424076203381339646166619753835060667232472704440261958997388564540782233725576113947764335995015930404431035379709248720748337621130606174686048862853426807685305727991374997608803390127148312285942055999980249654214666096335809729461803934115099868950490672738329789245415123076235675718899588247734304191703920484342065450500119717123051886780862372744779326209561536830227155291098928808427198805265501650071940130550351844930822203234044977520639228300428851850098737236789327576341205296371207688301328736969376250007707108940109195801053555517309071601312583836791098788133218565779288742052809873563743614045146035370762681791999822653404444275398098922838541631073021201827014144760066694859196589585192104034910444729370328523508948575052745964311082139746516425234250352530226818517428608749603682753924351798887568184761895930632134731275422476281721456015449136721020658059274910111115163820974674518774996574559901111249837310312892003786174122291356269821750267846724735792469781034624790956543040424856599386656129400161442310289168054199533776452575078578666657562297413978208385069330131040340675690280021374766054024592682154848947793449090898753635744516883247082791623940014481027672029660144794477330822032934310062431957478484611879411758380533869987700728166319742258607458343249062467567290311037492000112643412163270762056539544915152837986912655939119968982881993914620861001442311762047379964107374613436449757922581461613477358911041091011158095513331455081558664587267699686221729686955663650920030083754122975375353714946238509063449604831008813870012179797155720242331695405671314624464788297125792048309097782733828724771615600918493312949869760380810624997441486844697299852753316236821545376454394119062718673108511201222163590308154197691319044697063253064211881499893636353193506387181769924676015002412202506361912584489045474781074854917668455061265352800475048926295138420711553158332848615253183160411475678568320893604021058459278687987968127272809378470965097597867930603404211869833171098211300569075468663846182204118598702370311923677898873357694053303709646418055533368948537752091524601377525925965768386157576806790514249110894475857535547229819951362669943545317231356427015858877058939950469188657659408619815079663668865951251072817850488046650019203630084490780235888994467405129462932756312473056167593853744604529310011397123504131422619942242612742591298560788994967580911986367892649669903868908806919424778558146271382939589395511104150312629249774978359053069495583305861749367434882223167085245932152152419679896846688767079109307666480835641700192159805918447772039286908600289104397920417502427021554191698936263565612360546040933176445291183187209795408359597254028046422812350749407235414813379247252515505820897190813750417205710283072893112835131624656556033093932262405724520488724499000778151549068534947623639560321066378395017571828404992553359955382190876248260022723207668673908361520008317948772679047438894155924044019251123340578976208648932976844635751662045284433900543228456018266428422741300842044533640939130439232535103763964735218845905656180614136942924141106176463529078083230325508894910307347445820739372705179391756059349391686534798808405388317698379570352515519991639680591647003805721265595583806672793794495253253097133344571527460564425901841275963019998787881315354647388429897532507255637698919690359207691482183803719562875593343007401290297174751985813489207448451275406824100544479585849921970522807708855691750959739455310369293248135471810710942862956882222272555311471773572240344533922213690802000805579702096426680600359193135079848857404675664982453598530981591576696255698889519447041089121864446521365608924451578972772916031006949276201604048487388783318342843986318254338051794192781552091141243719904084644671023964122337779429482097752051300103048174153597926784823277847320881246514670901791168272334871630610421543700572577167271552771344953687334114915528510698596227574070711073701525810321549837761394899803785992586889005495699988768154577712847959734012421629455164568972646158290976269423859594693128921497829993906632957069892078230341920355478484849400353948336362936548122683793899674851918436156234632463226070540999797370963880100591146791331691031492836692642504001434657205366199829368868777719235846168796016417130939525265299523821039873438597147203459508124608355326574046970877153676847262027481020234767402371905507075547701671090591208978968447977459897019339170106607873816120097526206782702713026970716782949844124063372900690017554292171521339239136806181798336809956358528668451156616419821445048461216281496819839431378283360368522902542913683837392323979229754902883949466325504189202511075680740014705751951703545861423059609938502591855501009257426897927850177582447643706775866283749728199124636885506179400042882484368433327475268512313521987061718734906533144643598808891065655990643337981751445232251221878030893393746082781287259387075137164431916309437659784593278823377641178461138064787465128549538599701698983407363480775760604692859352865119922490639324898851449387447433289887667037924566225662700043717929955027876433183664093089073674812610953131610313277437180040255433403614321802634178967207853747834172876749488422685323373933437638119913897931859153784997110999231156829025462035440828089936215239780362883511496853747416265339004860061932435205367864035387378300808181077630050258350575242671937647738567882918362991112665248881941442040698614473868639166661561456512545855548063691185442502388336374225005278211812925360201943584712314489340543809317834767826938909650392100307549817634809227367201608465222076210236690376421656209987649815649567408071486525496672890798557861901463311386168411318627896210536222066895146412820256404655999540612553725485229097958496388855259242861289059473933373883423147671424986664645316026511018952908993784532075820779170841431537363696099007242134860622104051514290731219189621687538208365026510871291944946680661878774501210064973940042024441772861071431540336190884741009651979975925289290737238116120440033006779004247609052001010501513203609146831571477448246154435106382590798169777218836259353342103815740275426910799984607848538597456980768791656930006768272310895713050000922289931070566331376201888208946737757069957837121972093309519995560836563848056711007690193657448763553012710933711021833386265698007111245843894765327884992271703990984521647897053357053226094020952499848389353036925935506765825420424574850373648193232343388875886580510479514249204831279833012494500451037105517828831841645928162244763329668637977949911542824833129768304864676342606440764320490577619131994755134400760791042140103808591113846751798747416678521616765825886221367926598158038909470019788038451268575650603935351660362185484960920339300929956504942805713299439646880774113622222012436748270429753554577181586521926101471143373579012705172724312208370528365930348231693956754648825041803349411222325782662135880706508256614166062667835197799258644063630942126024098722797856407048024645147063230121846106175104837055361416318960394594929570461080691674357253712571631824686282741640725866817412921642334553625127846037608336375983652306230073168498374002018196533364624032410324584400150841433942086128439479029077523291410652138829813020372702003721489957251766246114654343184024932489301842061385328478345294989991764716762023517204652360293094535892820843438451169821595298828498015729136087972272491547984323283921000754292267568716274171911529200807539517795634488572453012253832781744177412071996933840024028692172124153897956726074119528458248742154922238406425947978762418077547249362095202693081901808818915225718789765641176793642406722381019015394595466603120732135217718470581089159282263634095194286523106121115723330902908722925031109255373163915473044494774354607223460485217547250695273029193174359188824888546005350819808304758481689560140481187814347656849144446524241228970469804773391741781396513673583584579577368913797866657040247527036285495428923503453259996646149566339415002531525305000923960158437155977812324587668680039590295786076379337519014109009768349013953221916112555230514840521610384949667590891208333553576355208588061535009332491888066355735041126224813996910165628711194241039246754727479406832327327025098464730741689789500197254944134063783269562270513000549778948014290440757503375156909393993644918055358230723784497901643191308915430922362774131855066793012089052895037774704820329963914976232038725267774051388739464278691059671721338878035932234756573269144913823556907141534312757245335554722340448995758995695920348828643436107538654015512368395566226550477711576239762018329964094529401399335095681349191789712851635896500282785982854513590770578681473544250104403241877763305653267985213923301881142519628299838363964504620359591692481546434769019134466440152810703999520922733079199689022172583343457346317088568830449437894155192382842150842055564595365728766902377186415400806756754132779702884132252576780530898786149050991782315443994644117003563469266849524459466333630849961081822702952379527015266406324506663099063819179840731762746463276666373477579120293063007826837323199049153415291205600389015331214521203287400014217361744529471796613564348695964988576294942428230094093408294904477032387913172946069794374789712841479307596457893394604144787648553617236382741315429369202892599482168972885276928875919153579879401711179998678355926445599994919719494932407102677818685654091193698402713335636367882995306642622793513103326779291840507723506033893487406537963939163167764114146503394633191283227314409446126689665975365404042424415218058634198575236462180323990621900316951546926332003104914160981895215287494984170759177153193204544841050614259560194651764547885295320592285775311650844785584515808068825113442535292746357941775021448322115152340995968767017261899499434533999874305693027187785757259799997330800723737944263582698412895788527577425742495192786783851692115578322736438830958068781734095980576227208163490859877017769240014186192627397548862454839802388430450946587227622489675763180973109231546145137741601969294492999848516393628547333526490427205990180081422485298961702218023268335760415630590648619183831754376321062968034415851166268664692249724424353583368441372518514052976498493960788074538838741259024282119135050150173709137381340960856644111720353645814588197035144032988664356687909656200905254554529543399734436239080693077663181281864895451159388827664449236967224293122117141422955257847344431095987589595774247675552020247603736013839848650069565490660282270414203430442527351643055514511821114452587824369885464837375952222246109251359527839176620982392575957460677110257086942245925317828820704204236929670988734709568722473501623871194949925134929286910211784964686637619562074584366678197605367985634122964401689787267953152395726950387510320308905424773828760380428619759287137557214411951128263496350989053414989865794799388285468169683974635510850542092454036194470082088272301494819933779036418839746640825649602045318315560606934144314611575141892361318196467432394659325901730086748267744253593053908140757364110631188572836377278727121031592917648858796511307108632882389065396683650390049815583926725925356145551477610946392425168047535089980102951995816047326764796552011071694467823724761858836864360729436913620842657502433714748634294160746049161606856242766343437770420949999908606243923243377891413433899806952330324638972947243887929396370304147243940205085391870642666932154052047958253865864603548309628807161825832299214600060257311733042428878865350717738838946519841827853815371758511740160997747263570216167541171870940078254186615318824403048416846938893219751246760331851190722490324489995733260833206407403824657324565379386463746250538305105462643921845077634791123508619748482300517454908396341886653771841072968237899018391647234758590288991380383075217804279586542409860123573278335857616700894974424838418123173943771785376512209761138404743945841623435386008787598007349202532639217514321604305761921691838607063563104383198931237949300788649111068338175643345260499367454420074454743027774042915193615278908015148566159324766733611943504952736767185700679285316375002686046822925950214687023862574898989627925557634382531003789056812908151364105888219881886264594545406889964356935602515897430847032981813753190735048747864354958280920481351241236159585133177378436550701249320110790735270366538424406641245123324610367540414155847565437334017216602341933877641925902702104380427384389561057350626547725201109205859046113552023604122456977727317244810983227691157841993039624221524390055378293543112116093420335689096657314452059126396623537818206490122966290001138216230275448538591253081664120266506794749802571715870005875264665316359100409343762647884491484188381391687940582675251654414661489280092790685172482073091587024534143116326411101629532177527912219443114183432107439795063827332589501658961342595990269049128998025686363312833772711259311183084867958556529063228244911807562858094812690366037316645468333243747234557068947235675053238839359642346551927407362179432337852019427517032008384761685098981987165896698475383349478726699280854272157821274292196339395629232987505825732258323541979762242967455133808345038724166249814382796277493637912898869383607317663038538749064572595934562398410147007228863364478403143821468480082692742527674555417939496359301155858704913446382201011718606212364252970467025141672503546602809972243998795587441613296037366405357662821822140049798333438334164253167948868928262571488722537859742384235892046188437835551345224121638874136839578472446744610042320460587455926055083797891737079486119899220878766525413285288067004252184716761360984882170788632863260910237098452874293766469468637247700920828662242912119788873616427092707637865248744202808720927647999669578621337392779125789874186664370051659516268606196258898325254617652650822836765029934303394408586859757238279680684647282745597712915154002422619161502977478373742033512784653034518566230670766108185906380921691999069884749357253733652521959481948713766914089802297479931106826796939118738184613556735760296974748698610067972305943304993391625207448975156962079695064525273024363752581333639940460905549932098473539772157492184988011617263502975738716556581219400135339910135844145812669669228149074968113601499904425101538130035042159254625881072698193279109234339084900673246559610844722087188070146347208574911940235318817378294395106429092544054560066829393648659592251003336796381107097803388893517697597673720420553098080276467601723026660858637016541533446828045261363654631670389610809688800497169809942206579888572025193606013350229777431045296109017771174176783919380389613357198501119857920595244935072221923186686212890685726248368579722214974555509948281064024802001854225731318113393403153225199832002602771358844868205773596274157307553037552114100273985859624883838018092404050297084513474835959684067542039919818740542117377613441177393303635686137243376151734754367489248046300533351923238824969259854121030814439672658989213174965054511941003674333801930937284606790890363996568819392835659655445902158316094714199978377690264451975891944634255397938976549721107502603990223297389236426480360174555339862650973685969113286931871169584416030733500899525898827384078389511489037755828117726485372039939410954643455657569379682112012535313928077330073845025220874006211283531838313540714168945945632026409921924917125575120652045067079516333717841689126838211815500639311446609319469555487805985390904119164866280173527713312146841267417768957103907600144498171779637467700237765947126501438628723589082545263178795506193992801469667619557706269416111791223945712983390327880253588884113031500347477883460801542189171066433190484684040534336034037381362061295289295975885913596946392174778521744547201903735320160090538538645276899341783249300309399688957036928654172003278911942191069167309986869645404894569961308359850456642099758243014619486956826501569257253424406242224187977100601068656721481317982552253818055834429620457255825940802547933863471698174723673056126659713972050547912468975740440310168592854891415137730490292299066519321067399944463784105271326636247348393614834544458248232342297776854678355515954783319320687895324192565762822238284327382463654202574960879150961949714413617801634723248649211403273529376834406440466051483645159072285183941324908558947193384647928071540067069846231799926467114808324089510971075243339926938233779006990384458682500587876010313741834326300475963463479396966167854038930431236500020426332251001288029079745733746479508782346050459368197306438893398545518825952729821098562493598281401041552655485441124033614392666355530975232321324955093533497617055169332757450491139984155360562362623711627238477479042387252178861072875034529561798825475948545193385008805799730911915039188630591726737292706093158843304437214068578457920928964136849597450342778227651462221320520136717564780804169387097519542809660912153183758496162813856956565079834404765101651566048341242826785162266878589685311925075234991939207135318322541320127851272177879700955148990287826485046024676580448660291397972718751244016166733146755626568895953582664924607137918804100310741531604546151100001027702904619264412871941691492609480829984779329696144718456707120345283673562526909794286964123408596395047673215954700839179385595958867217687842289782117189612530606634101617159636647290942773112150934530334078663822485426842860242950235459012563455953719318957687249985841561315586724072697293943123894063244273336823485984705797459548577357716201264032791356053744153268695877207596421462410945979253377483248586215596630992572461419658438240216259103096299283866235170945028365828435124392894553351816858342545967017477641423489395343987452883805516604117284152985166670214942487298328930355919918478739713622214330053294092538003578509600621342921748370537801401576531185698000264894702160627772123562269078472917697631350577222490107101635822326093763624647417559702374407100050975228834153921565531765129879764553666281583534330766597826340672374704903393377855452703838540990699068824435732447122655397840013632203865973663240713225565680920487185003054326845584910212349327549590369831815738967254569230697739311121551091326220839503130002730717261357155509877915110821077687248158801686347628868376750212355646151607148492134788689841488858071173020642612308712560116049841920900674762803033736849060096584494249240387169066768341563954330083546866678265178937381720978096711330912024868494329658302533293740219388486113509758612511862745171308650686634731134677501989837392128009499958241324527786024895729917234770510359731951598779370549461609910366872936185895689826670974610429258749515767919364181455329031383637077667309221839059716678016276452395041649150110680055273804202140826812154159021697290927429961821765566861155702848629781394289103308740017819720406622807185312018713896550327958846728513121850390471251891030212198678262025721784827438771591706326874483230871777541821472346284652675227817516701207561636174243795829283514497208318065142945609334836064754632589798201098423292709561111038287199376490222257790827949150717835602698333659575434231601674713960043916093646232588839366935264563742305406457019198289713528457419979998009831644628111320285940134612711997689805142079146526570516370710131289146140981912622143470670271283940372305152617318293492365962716397097553777873121824685740612390871108652466497124516665972008775914551357849905262093194865837272961532123714682562605230557639355902377511249914353716868519175112271350058161309746647603108674087317622043290191925603239628054243767752685600734212986136182601925126456942852989163188549575346720710260805612290713509595965038956768826823163243515734196693476666246401288228580037023576153614619390203885425442845856430714452642688290008199697650305419984779710673179980381341434777326471717608445991546491081655065993054836487285160817612984510323373792880711598085962402108266455909240782550885154441880727537068094816666757561696100965471498120879149212236712437619682511654423151469889092790280815407270066987765788784667889937823848695541527985696023662481841909739735782106983704989520122940948715150471798323991041263316769645698419492967977892992023874445916240915085481069620486286284308349432409759402751208358570944726406891196940663495416648475481298636523476547147760482769206671921293092163211614230842557689768760080427699884787605801654316597395946749992742406313491744005023963210929019791045985375847613941394900594528123157546142070091868301970582606161058427289442213072076016467599022611513710984747552081328081696277739879372908846851667315314750436148026636485726254652469867036160806816000948114755293683664183741402221956416537193041823265081872831180470694914748775292415601603654441464492337566024603587774817511527234073346255642569584630194868208096403308576003871678553211846713697567595661732067435610724601984930469706638608090595099189093866887614214912144461661207138797560467289896226716786247264696550804541298781673326133510032777245803334489298147500914072093187745735545115992334667843404140192338501920107764066805481974148415716761878427812343624920549243151278339326138612396143510602272625767588624761410956017057915680375933981516380002874826065399088962581193778472342943731787911527033826489443535505920281740672042860999269627179852497155917953220777556091249867517202111354417623238461645665022901185567915423486939822619085910824140369457674095091834915219645336805012900240460513502417999412590840037355095544222512176693849731018247742279365289293981839557699819641668142478527355114804428386914155262504393609142261758857218397157952762734103031963323297830185611072957838458881721206404873829623867647772944200408181947968618202660978171003895353433578906080040463992084765289588896500159063651158856370219588686232522689209135920111576003875825230577322027697140343148989634309957824530628319283632531399709985153021429795805700979904069195679310735929446345328109820196433883608313713663540637050091929439758996589904021399133177865979454865598355180683981561085832814934539972651735827181454878295729938255202799146292087793082047091481208975701704055819729388664892927867414760084034168081206909779551287490779044764373793533321095219421637352201039277114155122357920969446171114527933252377657214649943510621495305852680966854939814386614763269190791277556437750740624486532748873804141845498829342983094907961856253299196260548297610570725787152596886424638276831947065433803331784192724214577813851984828905059552780764192799958286970763236818238228153360942991439031946698794700120437960357891993836111695737024181482803334288910402678309216264290588387458893472103880448125447741139877020904002222557329273031226003084865164227756075152732156625050607416666298440640269176392079365663295240850105896199341459131433255534765619736327966434607786226314709175568104391441213152295483422915385208808212171184084158690271256669754296742160297743001617401418959099643248420996665852730848823384623596839963799368945863179716950818856344309414093808382749439336987357710392985332058830053816047240157585493583802362500632339444947468618818816622567834973397231834793412430101424473157668113059071419478055783080759100361687456409704383059818824411860815151621762987785235217962544007919470616452385423244278040928674137492260914700248684166614722565883192109140028782892653581981666529828800317567989385751266629233392175100311182921540842129776214705552930924460897202373100928057417253057135177314453245614586206028509262729229215048568388766382394463310160745248255431229900444196100042500411588250307362620822425207340604441864796284612505048864756968058077438919834928012374818954617954527030884502789540203119567382859944825477771619394204452575856320773574155038520483829620111019888801525123292526989258275105400631618413632951548883041462495465988991707878146138748344839369909315637647051640878344139405327345186311723748870480393301458302743523879273007434785254628998776307436306822423410515052772909009508614101237238393558050947483848017644272447185287163589203682216121418352362642731915684872017833356437774514710550743656547099577178401529342649638355524246135614715601192617457302711385878178598502923586039986702394222968767934163798576849639521402788430268760112633948195554978696987383257519326768252014438278468867167699464149122624837843310749329617254432640710822293389292823707794771134274233850059813146998512117171413225145725206153356578974541381575424406415387951606601174072565153516970305438495834165951669598951468654470851838638926551024193991356616124331613049665931411056669214651566015920523037975932889601494258501559640918923780480799264235959586923175580639927067475506087143422659758453170574908588411450570357885627895376883415950278224423578080869346511669004661036570228225952157878627067367370888024600228343526156841825567471382476046851660259267650886957987842978590423655689133639123095034356795413881159650241611064952909949333089917464379050673399794705775092003212446422283983066408819641283099506539573749070620885551629130047954427430875518867130050702758695583676289362727132308080004804830687697648581157715534558012655294186197778307430585103328264728626411591002318841116905366038883163523511597190630876134683067131896320170697104756327192677617066272486722284062017674749186954645899948567647975569278388932834328911537972416928625360086801465479856719936430938625924500145036706744397638868098996044090664361034205631550102440107988392639670569927996182602706210931452835703694965989335898293358337473220804481653523141525272537464740750238078700710595937175820701559921472194380421139066219754028048708734788113124874741189442152024015923952671214276780119809562453244253931031717628250889408986561863125630703013314266220141575141317674755249473686082843480020457706372667001659784408985158924790104209406851974825964896559874106953878745003450712747149376726146892740571732982348622068941171424097707456935647660155771709799267786897129092680285700606037311285455399333496908677947934507637838654191432239553442134315839264600799873000619368256174350706884072201872993747203825748767601102369906671219294302247249660745313521510826182474426372101554496141078704338295312365773698105843759172630120061680217737830852309497292764300348291972896559593835544621396793645351579336198602933572757682756728754434382413752232402079693749049479972793032914243092031334791970289702680256435119810181394639432991625314286103115221509788764408573871832958068768271928381153458522817839371849102574724612703088410440134199665154876710160424450271193160123945766296973113720833512949663764393764084489871631036883662708679619100653843664891534576502819210820708849305859015457869819077523075785482905775945629022695150325039497136337796261079633896757080301596567681428259692720948842922955492162617758325059442797944807310243324318689471760913774460753080048718537437709430887400433995982790394388227600722155582867937236474633259011387098683101766600830194172283427892276799477024024813515684308507261513405433324173943974871601196333314749191827313402424835592630733699404575660496835273073258775411208301344373617810631562239266011439295017613329993546353436647607911258348775852526051548903768887795898577590129470666253845120242161508193482135900284140755630349294978461331312776949076232600349350953205724979119822742959902027009309372211888014799716998497208793703923276469875601207850450552048565374151202423796600492206277117997883571908128719179847051986698871098967415775404414884435253583313559814433215647986488349978629651012859774863075049343433597561138226316860634086446341643145891424050281925670541514449768140728649676157910894816110130739972879687049296076762550739707682509851162395690050627235115052118400933074194727366698000627930510718023103632896739711458977998942168085924901201564857082045165816947527855422251803763088505936438931323396412310896874747671334241260798355346790068829652953474167270026044978614088334062720090414236451871765835136270721389629996972692560213302098788731755170482736646937029206932207388053129018982120378955012530878030257274812048961725930160995722707308104349355708038716891274986022728149349180531816003798611835577697772351918164315764780786764800045424723264120718864920102824658550600561314327327788976476430356666518202704663099806670288973220094889277043289741059938732643603352129220824660330857166569116899034169094904738042490249654447359131077975734009659834922314008561324680764241637506774542371480292909543570268032193161501438532138462331559879311171246480853260980675478988968098860465485797593587795595070516262973448701562027851564895858490930528422309170927850506140384980111099859834937933188983239394413590383402971150673098590263471468339970952928928769321279630917592814452000871595131438883988267471084366332176081438602675122565621679648748299065023915986483820737420553601498503829499133707360714926295005139453538929245641173514721303467081488608548669701426326269443007319270148832470969759311172628977942672067357316070017785025736413756378009136789378140064139432336876237838391538504171821744023219349974700110405877176319922720248017429983145263862943766049664894045514914542827455098203921469471005647360916145617354022420762374243278594910870174161633311185315227412672607044591558207874352640112231213692908545414097032663567437428587122546229614115662635304512664703766982173259298833828980633272278059134761686412956828615207082268339806683779977216514122337785666630009688417812635350347920186188526365634893266392365773217373785626580749967616702822907030512940146361649876952587309269539195157845121596910722262624655372873795534185083733742256800594030952013247574964710333613519414589604924024269117778218821051668762370159029955880181601761282491587580079908748587567451045355104023867715541341202236058108928772979629705031937997386034978393367480171566755066675166752987673787908946610709879769746584965462397715402465221224359034116832083629930268118501351253240419197421058436511125308581174080571159449754790503556253089420058641179959735438854177635006678527157490115665164236455676842142476773030352089418456466942797922299757860897879567413447460402945347541699807287445276722822566486017810704685879076110052552127750834491489902344216291615893257610595909862806603681029489729394912286251910800024466246982936101594714155196496125119017411703109448236259144191854652745309791426426333403048257534465086064235401764862797253309707278651901698820716855370987374758154393860458076001135898262606721288685478863488941368847520231248689351916503161266062266022069845576950217787732639825664223982985713451132053999493933048218240312746749850098928844434479675405497644579132836869768088535613580764559383499077613395303659687160830117106328615330167112176449742305510459562907360291181494083026552859087994231940539656172877784365953194504473755120699225106828870841553135789302725448044662195248732560622179400773048995157404190973107825214853550909170525582073127876725594930685290485774568968772904004935975015761911163335513260943130860380328483144076998674590503913756865743809645647398287578416623365517014476019504469904356970235855508377790592200726162022151744576801993143244279185943312393615015376413897676056408319568068426883285611566307137065564863417000788493859407118581586449729010674219324405481706209348511478180375638156655937408744761019658683044976836100063634241148906929663131185974105303478373089320662216231747452988474666999335537375973481965283004692419533011895228925553231490037709742752038315782803992932959720535226632637243862775990215074016224202518750975495203429096393472845942818070689473303057561545512463999836326156497128941771954511261519391784464889513218891173241103579195372927884275708363970747022487385241242325312869555520135638119521933768429387323490376672207927391219377185280168478794889396746404105711302133133983390064656415383532017033182385400018762305360441643767063649586486068898114284865011633600489033081995856866035578718757502567166247534176849010219527440231783046030746820066028171736209511542084773614980955862087889381046844064108464599523537769518547297293714255314859161381511603192002647941653743074547668007563109498854297099712407617637408723434622491923403195850263305507452074811205935958527782538837657864217904685829220894757941831040220336400154325312133479024905180625773182404863592448127745664242497244109405741553041698513220317456633898736875644988821593414353117277862340171313966588402428488369588496105928407357785643665182279290188576470472196984212796367677543231354178906771846993821046320861743856261656809736773869348947802999766244649042787671813065177622634488766932103019276327094870032476867303690959152503678579753543628643236371409277906079350533776880241421081875801672043511137224106061801028651004980561853397324429164693901913391859442890907087704433765847810453291600321559436785558347833518367339026569353294662977979999699974010168316386485905892107895899551468560773407113395074966507594431033248453869076143797901038062099607276565553610662179231293558420817625351521502829047760361797496188544879912530280941092820156974587726788927515254611841063066598298332348607919753026756729542095563846310853672646542758629820534717919673607883348155560930858342751590080272003570651177094585069601211054999947139564368984476069967999490439316034605751942924966976710064165160859346465166978130357016521100378277420630500544805977969627777152654310052962496956486000545059057147677936681226517338249902264273524767728969341933824130354390534103058845178989176874842771364931269404148296872043924742514866609064137283083222575731105564084570478002657061500437975124151267517561801576125275499983825356149018498417914109617732911512340557254120156903562878991794082905214568650048021955848616354840182546322632392758970933090554698625903924343239157334990399365790285771774292761769241807341546991762409027189288197606841948870341984908107894204653366837524339700359599907975530159683365447877683928487337894068841659970566872216396738267354259598466977124947968639021819634985398257299178903891403894272537773397012507876195157425618309080040228026448117634966666638202326262506146400606339713634880232240349871526137274965745089199187153156595624763063448830708462800127012537583416471441356723221392741869069128699779059231043630791541426949732618234192591327695503866286016587609734450700709534181051847508148113767606920412041940921042337528993692439244896199464042041556182481803578426218057825029637200973838928310505735235523485645961475410584933662934983055908352775034909043329877157776144350854245937737014656293484548045672382544617344603732378805788460299023793928107287935591573047131374376635551155863599867660348674873835445347831986939035779123801804750534425597398526734646989690216142524283006119106988096498675964359672199815572565268037702360185100820237522999532596511211327996520976446193583640299233259686717645316892750733895109225271392831888455755264458074390624662099351072325904599711262392077700820454805562344949508627651925641594796931793258791919043098002512309665527656565605650346149849156786761906797687925490641597252728047391125740798547175233629636970277070735104793519191370533880547669502195703743545725428243434257408208559319830818866926008080067924044124190054635275122155753601513550731929790899124944568495767996259739667144987586123491690535355040081244790647052791944166133439408371741100012296682883736010550607675805455701566462726642759872759112382502077518304810151107490362815355667415117219640992001591937711687513786891290764874928123487169717289424407210053855703071408933993591846391476072676209400800676549943893343989706503087466537958504292403128556185672463534448815517070273775970322717230624867684640316786406674261463027430972873163120860871621029267755163855378113251723244440128990973127768549219166185015042989096662128128566103459754186077372433006642224120610564396075511171234929999031841615840005825850553318285829882117702641348924437658101259100912991811008577477883170643604061321251874471459286439453785656159456556526973229928576252717632353419775470124174213856993635213012235344951877177011800384986259689123780425158389415914106858737176417249900076507886342408614243763336457194895457562659875338878080956100313280114228893682040985156610475179966772831970549243972370926758852039981964584950896055317056119243529393859461466270358905328668491114499846047285224510559655101235395613583928879910003122083777108560997710538614862205503491874383604485277967987261626107219334255107521918295120656951413389372288328692474835685703671342036448913197387056022194477332145700419188950913819697734579100147833379216706206565902641738824511559838294823499331184589684605483877889636916023754727662374007168139562839991911850975310394326498280712758412831595239657028997807322924391117781937879901208990180468659211785885929843952115079746493096391896266180191666991008765515075578450366408997831459441544474126332162108196884846007171655145946488418544341167914199028965891478866493289929205645142248782990805586350945062774640548338824120183307607307098531101829061654168923138415314215650842674108424892294047641663635930832149808060471011969660358434981699650138298891291792288411412580705235609687757369586512197947434168707950010205517311878163840722987498896504370672413424280062311004680982565194729317345771444467940964157570054045421104857811482489892250608803677339473255119939800710203816762256652459207962284888481779358639827114867947315476159939570325433042162697219389649687705703073554458753273397753728699840657432785172339822536162094394575330313682350173674108976143799909615377045232788646107577117705704729290037899574562767729293187137385220747975165047215785379995045863241311600192199002086110041875460731666570307966639122108610460185370104839733377123168660393682175694417481899926837326643454753170960118182738186322285245137870011440072205357762731066800410125958772659398420812513233174887892774295232046301904082307551740852571953693588980262575436747477987353814192176991102845440845647422429102848808293175587355658164375058612487021612740513463146247241212473465080000106906515114720396812895309867972076061217364754993218014825554368215249758172778806807156265909774808269567890329344433859992708852642436968491731231744401143259698173539056452692642076449771189401108646494510029750576991161752019324655478537736037481459501212853981121968061128572884634315126956295929300139521308989495113555789139909289319187633834688449962847001891907256353667671765716221021576932255077181138008473091693673087259344250811909806081344663792549382177705636946194042756845764813870563121980059675485234513892623814499724094863256593250517121892827930824366937834626596929196404369458153460197272490872311599176348703887012210934157300766289203424165388871923748353652057564803243411740138353179202519370011482151010386182492638550445577721637054972338488420565754927330686009664353688431718837970030856487834381680181017255219344488345676151206666325384765737273840568201921308368859273740856963647790717887362013320168952021059298978789155756024072427949367508622267385285190607463012959467592050684871887525001644919787720028088274452354698955576826688808571972231549366059552098900760221759418934403157864716209021170638480434482066559154518856718675612903992283705243706568025182497273737316979626598209663891926943822917444623214748138635378147013493306305797824947178604148032319188892540225409962557358788985356139382783718790709158358132983318131319218116545360551915958256262022325413868840600184617077366124019931669627314490164435394710426393784553036699131761159541476646192426315967356490444247927669497094488858152768173493477898304018063491356797585197000456859131290766058871359980348030476159482070624848224014132222892584668133961582764702646232243063526822926099110119222754963676165758808854585946039795725790070516930712522686215670057232557832821024621414740300650935852422318343827590550473339878244486573666740080739599484331563561498601016205627796854191418531660547493562857520142613617856390586061483006734264340327894933887783557352067903188358771747572277934028783643461055499681448390157112101689905956521818243592777972425596089014365726465213187073616792211593227918423890339940729115707865048193555333956246001382246730159441099398559847909333768813646657580942614597360496192750929841463286173225615609554449049789407202705806531847342404283605825581689153684117923069952934023188439764690920565950150812206397366930033338069492245785629091513915702546760380372674015643058235614701858338036921704073119735634479459015975696893441764547147329532344284123453802630033223718666504708259057104246842718399787858729932764827338184616313944359786935663791137098442473190003470403075182801609734358662888436356039881464610703850603226664977680649414238064610432062792548000153763346484031704886439298658306038072288814664855564914600175451470450559845322084988769155265528460989880145305767290489030640297837888348314168436487135858089281131596099109739893753145440046180926562474743605951835405101087250945068096657618318752228126985446949304764857116599827292541844393594835796456362251734192938637862552898158737844256897323083136638669743740072652751801183291711577227804569861786031129860596567075622693237613834076857399350530532462405169487853499164177467905165024443965608876036985242343586163395771989054663957542027352252333582522675945832046053251471563918682765195219333898328696430729487690445370278855408549986943166847611322107664056657382675608463936783516244178139652285559472649088011655290610530136349449549015770911557976878343582516381090506198118656067682315657951830370924426405802109189673535078723741465159029984399491119760738132359215281312995577888830351567848597397247082237233431313319490478895953368862780908030998522593367355779237946715203121364841215078037194052251958739957056155722225084692260060112809482955947479146057501225933207096949798622852733540507830742214113051531395116788169715321908034607616856066063904424629829764783635984090783839737557312602581273695388373256323109313210067800346292682326489262906662220449506725746197114974353890701427298935951931750783622233419311124791647487150050246163903166855584108790727346638505608538195115151944357612712404252904602022270136547546669057027088472312549731294942431304121320148403544839101895682938031284577472491908951394455998064789189186119948695126898394528637153282014273347100814030557698870991631922856692355067346472764541835390285834091679508663690132507656605175324830991925796516462907477304194992415201963840372125888514138962937878129593745890447230113184660886344274313264221070900913733620275373626337276397626695893552416521562030977081465285639097752144992987444566405355307817632564589504780711271327440828597525500036979491390276931065905721085263333937800356237088804648639779779224751870351643469430750796811838134710846966049908525247633928187629221995394772062997642626668407591889465482016603089346444344906278061872543679207045550401463103387495516853904817763597563281095556075935633342354985172641904607186070949261907407759482475747424698710511428188548359823236745886855594414105053043015825190678436394597219544398239965658258786112568766993690752279372506078974514823903091042873860864558293810071075930437020598566128509799307268112370276072028854471994272612434637334452202408778820566772281960605997058825966288618757909987493903954834624746896130722108019299629659238130621690607010099979398541615040177146415998075468261878672006878986530093976292929918486503404244787099323470289351138579238969166150584542267688639961109184109055769705723266850009310461211214089493591090227514761828535931549333586799331915728146874110116176372390018543157307121436200253568565603842680431777461175994828116160515557182663673319586150605064797590951575455105697181392082571079973875831495138781235616846166857278602295083326552981500061559534208334073417625120628254261599383595761403103913301774305090768754890840809014040272105940865682725446893814368578282887750896105023467924970952413399516152867589914528922697960197358958303923242862617302302994191702086473948248556044560026989687079180802058585427033457543854235240076815955579255660507715346751805958351841253277734782022058267469269012116338717607586551220786147406838491269262716133657008309472873514496378809255904253587437337283482897512862220912003663276687750931507340611002965213026910294446855682347930847160021172924974660449455441920609622917221740432666174467025020148121317402225940735917126006275749726356947530514322009655337892782611723784131210663464855900377429159004127053494782454273232458077425879969778878943993514615317725673504758859831900040739311421958843804539419507745116803051016133845976629753496907738861161683934009956724269745082908362855440953819493479299138897351401303985167365862011340507459522244300218908349747748138335726144719485049235945942670431736271566886548316761750962175542246042570349481062100355863962941168757759393798081152506871328601226881474616049806552624812570494269408698958309419721317197634127356095972899014373797283118255087183699064037993428777075422178138984846387856769947600822203223007815299201559850055212389123705501773700176586509560948014609065878412567487219154749939990912186343685095780004026418329808652775200663948741244631967072070854262298870530847041382260799089415380509601148808897985105823455882155525203529204278337892692278276969938051336581511698229721537925643950501967815459563918733704711202400875199142726686257571290171246658583464732293480607839320598914874744248796355496272802205840459388497583776607297266365134281261456692760049215024222705353843822032251563020650118837668889872276256804084222054500769009262625722264682109396957614551783593294452567076567928746260648487968751551380940723874687396542170652478967285942845673679583713269128002638220670417712985515779171019751155617873416328415170425601833328919480480280217400332088852223533290303824339304786168052976731224371652715757610314411125583445256108852202908661076083595908240187528613719723471933272706522821208398342050941958432619841433108331523453507270924060892602557237147159171687358907707530803020651356066769768052167521085628664203887688250455448066458529155287002727535202377583213406356457324701576245524582265527838013347328148633999408273273659264391752960738680843755627882310748590130185513247427472339744088780000384759934713418353423140325365555196735258589003742276405387117322813768574134598748321027153521729864673656793164214494396433452104224695309892198180305238274658215936792545329206858997442759694228282752707618545447408172670230825747576452445950297636452476005928422382473279688577065264372959605734712725104549205175409336065760020902838955471274787383861158227021339331539873080607387692300677236539696041854981078587743182163787333970852372766970810892833262781043662305551864260890674467369040093836801164066239820021783040698279627118279657520564027103215255104050342771322980495686078298439083095981726985108846269351899789228551743693428920810330458171702412172524040824401999209124257487390512571180846033109395956938391776259194599099723074593458912726151827534157810080030057255876225628222286437415292947584421426692211078178238685667101823648833611600404886286336109371875017813005797342596460402002148157373746506358861463348679223130954392704792872602412968920088180764694422429236084544820167081316385523345539844071821953101897000417144889387558656804701921597311214612588827926960526539676358895390852648248943617629642476282494152729535175227630311849104085282576718246937138710839031248107844451206439081009035062519070431961823831634989920685246036628655921610848996707900615373740302439488289469421083810801120321827675662522317703176514277522011869026719135632950619557660665503516466713084879683905419349291783905690127306461978646889378982702080917183536501499709658474924974297073275170280586224864849242006850717393200895081020889177890360026996209650879527814550342417358566794189054984226384296074830975798118387813529566297002012535343058465144696335386439436704688301501279249528115751462340898682035690508915052295553934811398731790176290773641692284807150741835405509148923015899258267614687039534110022933275644738877582837405379723838722913197872815324569466612682209724658264410880269072359784367302840693397569433410813782519655742880631943707036331609977136143449694677199255698054027844096278852298391004316912638209273380432175277560647642988471554693625771063454973413499210100682616424837843126535282844883119251611346689775099219187813919883022533223706905575906803458884125092534461718406859478409265894166146660253037818765696095281285865506192161403257145325625827244811948470166507926429548020111480266229877522730323463240753062343797351697152044062557309246165683727902033507217830699183851669939595729322454263713664008607040703087100432735170422004864918073675215783916866238525601559415371357487634654077865342001517183010558556874878891431998764978719039561411462372475239989449603605248126769658691517689002606357177873439669472718522955834484407699645886609079556983281904813753747200937936912798672854842471950373687083764243258614908883527068954476983548918929776398541059123976773370422476912755352122921154946283075255605912067422357385897904063215945021979612446134367917407821835515456375023109085272449916343031919758444469154955043374740160357809398847550217895208934032130747859595310641471323551839724337775418111550797100437666181959954650582917617051526880184203477083194789867893689661679062381123283238511211102868336465096899216100325001969213677228833216751520683426089318964757467774994675865592314564895239704270908585265340246131823624966298847622280702084379469259068973950879857123244226952183815212574730176480163009646669791981007749258606026761119891176448281232275125945852386788733175634053712165324600791060754041197964914738283433450237300515496584288399589944298176970609523476379874472230442217479871913802307682728208823086731164334442918126037760120175424733576071873230767242490908115904799576447829657264633917977729295258640323651390031593819887359968567154727093963697772355448066428966901947915564007243078803220312086253680876768459491794423946806019062156887140641820392483812747287242110198093234932500496742991576839412112930017100214900963717295154334194068350068275588414195146340209621411008631042971513774876593132539407320600717093109077948315901016332387447139900739975489827824668573238957886339242970078051998960633165121059554230002250353619782037733786262779534899725987181095760638540197004403751778382178566754202205775859791901956243469599886515322901999194023836438464443109722015426638871421500782021624255698961404406751832662540290349982526289094101000298613876665799647021975332761581728197875708510801084506174289194890273942749863562097291660095898559277302261129032177408251048546931299420287483699741315801142193590423930178401164078127883908572261448691518489929753216241680389577117958836698332655611678125499033518195813092969896415924940338444362829127174622045972674686754454730036553322404243475162442789852587087993323269270401677913778970800403231953291550488394611878708482764274527957880132016420487408451995241774623016720018606814484143533336336730548356809970884658005624793326505248660998290290139610033353724002537481569999820611168125145984148205903125934630535918241144744002423347713438929345292222368814081475478402484044500552082806114606433885432614048686382451894044976292132756165479003186200984853352036938465834664271982980380597307243998521094318625753926393004303919282804838639838267108858513969907100589474738535019011847550629538780898306864820629081340965853826085456896939919398311590925459411610749394538166769762253212631971222966809819284555125963017412435211501342998343243039816824822895458144950620279662280840943787486453751032948444879151838819971038704091629940134411551938778120396616533290331015067670354324936046207387454853350573097072736560786210269335821651602253810649395834728753806642958991982005020220356607644940329469526938078201575354394848072321725215834470355107436064570902443048526507404951366093867393100168286900852258703396146585647398223009016912332978344294490257136848217563281221970205521124163438187804763477783313866527839110007264217604348725099845986854073523758380715323394138093237497491753461460518713362890418071254953271535180011276315961247417892056172275772936285780553558994721019914058211075676393278180877846407503733121134428241328370010204990299592642952597932869673580373260841083785153644868704442703143495151473237102701859578034318395453926219661700084571197076458058110496158262836107664640529665079750435424145090980254142907098462341619987145293190089826786294492594418806294970961696442531901755696341514169213657974171072011594570246672251997025262470804750429929983113866678830839766919663740112194342534152674053755601760847810100846682985995350778022469332429104577695129706425437592660916341231320032107342117388042457358379807419073505723591654164990007173116409351061920147111838900538956174426303528055807361134946166847602134839786996331834463667457712845146076797415193482635603780033275537805428197686774113613465938953056571537169747792750496810266103805272179560345545523448949833831161080203614455230682078072135116809936190209295581669670797107120497910802777482056158709495667987960688877837160345933185461808325583587534395999676673315379321274706412813346024905454367190846136934613309065241721124557851889100460615396705196466465262247824417144557259394308004293348945465643499659293350511930092465162235763199095128371056180326273619191982313073317134554374285879565401623803535868284857133538958181095478536417784635218099652485362387845866860668198099286205827089896968390028250312748822171115986480428497681305094819498079751832942125956072563658673657169182958250874333478160414697746152883231168312265638894037692383762621443675978319613189915193585443534026805988272398823188804736867086716008850041270510332273990706367846380699662372255429714270483997929562628297225875173558034659174190997623983917193296502679432030187672230771049838351819485640092888875069329952436428614550669132343778952888260628876506420631026441727960545446077146202374764793208407978348193199254418039853248809308095556773428015286807062941530618669329692711174978842804286755316436848679637292983643352232555635028360449486513542503801826266622233466165981588299193864372395369113441021668508406662628786614168377488410886792810111788213207674125158967186106624002005726721714889325254502311140389451992114507464317011220013291759929849688171089183212134774993938799791600616064483581611437272269660392091323702597282153389308150781072598151180689916047516861608154291770079863366051423504720755091760004245381104822213952126775932158847052049979522996446853101866720878461594328457148511114476149207892517277323809389911919022103183049500810345293489957037766035091825581817479120397679940081772037069390924739052026054280830141444876713224009824560649156913890563780414251975259566408116942291371210522552039273504910689655295886773387675539308109200899684384504038934860184260643795227765797674949649263994564409300108932895582088676064830919028538974813858926764200855455404662171572439651254520339896277432885372235003656112298159103941610489395658927925211998840880117126879282137226831937517319313283022984538878841283896115134275922317864791940933893303862320913067307832633348174650486783784902563650129369994656894945513814141926394276787397856237181764709469126705963643673083812128278847947303513704195188233954093158142280676683241115054643176550955111233632451030914750487825257971902279400556854197348309237255935956834377494764936232188092933453681993276352034779097136085156063174579562057718121640786702906022939611942428503127456336903623862520954713706994390887105041664701616708113550405316147677273450671197932561370940973140528137610396317914515655766486213555842039930762993192844380598081587749199180994641735920490806777740512893421108007143598212130621368530606593611809178249688191601868087576326667738984937332248890103440138603521780687599187665800766338003734312183781993594953948756973566280450029336285645578226469149889159043941187689445360110987309341788046257923063964281328395790511472512662367723145700390658270410434301525187775640334481964976177007011948371949772745821469526881178204526470080396718848136859065094395841749122946790632900053286070439482219963875699906837436642752697705478577793992048874352750866794664602833665238682366804454417732068500214739090013493311769820380526746518938610471322043827602354653021382613887651793630643701236849741202581489737386799100900533378395720310886245390869952084343054471331825409956954362832963237802144081946866031656560845615418481760661737197105462502623455468245082914557160501058120517188063621603151813876812564459891905693977820079945996354255940024064586142228854880001288434497081376984940913674199399514885848260221940010218186463579892696596286947655049975713393563851912058348707056498365535671923914041646666576419581659647757727329200935153853618503727213392747107446305523258393702009127661196335451413506640314760729495258926138524419600700890337681669970652797452334373518212958921501734807403071344692547869736046716166659511471185810992219399653571303864042179619189959373511931383742790482378791880641709733037609790489311741172076807769158609520368639022053137043815671845596044761669083857442531204972231941630902155681154075644362847325692901764390769575515031448820025353851032172658925033383520457260192707782268157908617167852969987055852818022546590210882310081646736990318196565845084706921148245599145029970495610488564865968333310128308871863822376681095456346694853601015881590158494326073461030067271102693468913566195271814717214729377574424157902212539606728563891156711299032635497759587929325700091678519441294654966053179328050338902416558352200266162373662004382542329859942190896574227305192499263705348989823915972947135377892613159963894276462100248768353139025888150144194556373697694419500585332054280455915878064753121036473968636414426893674754611486752779849660950978613714078067971343758150557028683082009629644950021598680649380791663818682268553238845568482574079575686412542055975005637651828749371445523397252728097228284523706807496161735172631087847801464345145712081423264526227505101459914426408611030362834765056105364028011733648991530051260389843447421837568476233877873558971749906434842688488530849182090984764211218021688675378258044120078795278560318234118340520936299601125725766396747885640865562526366948107164163843068732498316054906737725450730034014355089036986874710782377024433630181206557883346090631524361747869459515764065572742098098124176047062779527233599650540443572009854358093573753729169166204720747095793894621787461081843188667511379593186968349026733379470683071130923704093677091404747684793246786448469816614422504382401871276925979160747935600112065367940800524046763396015632221258879448181688150940028244622108672606406119100961984849666253310236049490627142497031106354360930006222741579601790746805482003443769938445218412650640440303292715683798424943291333401348542775721094642064455262922678266378974093172277839211611639121188749831788241975200361488054524596582170284844250331508362315090751903639763809424061786125545913096776578869212155652073260002475516517634353571375208930139665254681864563284553943649148125300433326178483291784816410224335122924153225464279886089780170551261427658473556321772636041175388566814916896560566933470432483664176656166497827219208880951996243009318374836155512027126516910911759500218725278856107297509866637797844734735663478548050934109659782654164782655173374153815601918985879154253729737287981539373874059062143164993514309201290357153461938253546773867155948158381524431566452918762347093018604240870262730660553145093903753575848570282401676490585521163801104430621295099909441797888619540230081985374251119918840008081079343802121114079146808886791455319070582671603685697269106455831457511829836630411932491701595514401248498169194919716721326808432541673581512312064832188728324817695226846565339511996025604231998563188287994028008185251450546526534162045300571072662507553534526876656233930033635137305442493845418238274076814286136712339777712043067465764757082098278808599958773763807718944349516318299641533359159133831377261320186597897078297004572791742412311961876446513365568409654607286481140377253205824682100621229003196290266866826039268978804636658428277034875044257100976821605236605071638630804728915317725758617084598530600276226996185644861245262763801669491790796381288375018177192938106782314722517895515264728785037669955404304639005550029772981650442710537644138949066705938210124045271770736265695577796944192486532573399269275320468729220550530787939689927060292199815642158855342629959273563291895362289467010787777569924900696098802779049102273197835524359330603802561357156794105365485791670446143413672442562313180713887186922385517142832017223395487695165337232457763195062056223234289740423801725261520786234213247090435747375268342828353099633352518006732835337541329590842482774025733439807397401504530205772901582472844670995383179072080456764134073818157422844428663827762267671987057706633729592023094250586755717927012422184878784715994441150741565110297663083854879953536536581821285615117903204310553864004071691374156152314608828908010850665316539875791685227567548013350097330817042062421313031553324580253593618615606252344773392684543163602060157634652770488060412524419647094546887068960571604066820918716051536425626238302583048371237128531359628848324488141596980546390271312592777913762851101557487893045588925974694992761179118379138295634584058384869277012431224344851231486059823496660527499161495217118132165879677147400880603224308791288300265489258186463649982103314860263678362882438141581421578913664011975309996426670359747133830901668842460720099294891189933972211801855295359219808940093009914493537988589463539905150807934578276847073211053498472587977688742248514932274737721491637903534574937999346000811790087632357363733853421037511305554479552815493299241841553231045584338606191577156345993703623289865685153925051155686839501481487501929962401043548260760889693901636071407858486365752125730632160812585003490137376029417067325666881017827727421830003532117542851127268529994217896784982766607044133391912439037890800343247510913202708986799177835072957610486967252283298335063520033463041135934057076541412091906168352664364961901986056900582034963253398869675912429113189003198159919313188734132710361528785210831463190126392861476641043263463949475885379280715440883784053339231231274504593913807517758211757443979285373242733871668017072113185181015679626569316440122718351404684354013696449622555576473259694697851877276426745549275386986312506218641770801136068397147636380993117187430822487032456053561002845540353121010062351163359288520633629003606934346730439033506547230327620344101524456618366369320996826730791171353990517136445458266193031409896436787018923035186331946459417998639658612122047979703280711214735040443775615649571949796332158814275577275423447327770227069831852082825920966204422894831238526070391507134683496372369155937414524928472402609199418604952690770059423441887212546890745859383096868031930651663050077524314940717272957792221198753182788575366936797961671563881203775488492273724480401796369018051324548839839917120036889930825539837888147146646929024430005722894013847523948845728906253435932210384517018973605412343569703423904697005004198585752615765952222549269469849317870134663019081797007108355597401586528550753968913810649270726752424581656861110559754478977975754015887932143842179738573521586143825476987355013553029621202140189816282623404849473786580553468975891793544730766560920484443617297044745706730020620391097401379382663024212654863607059978996150094376084038449728814879529413605674524409008683867408032566619322605115979199808069654062949714639213241383210867734858717668724848505237624558908753143963794357681128364375729159938073365389296484030748046719260407828887424069323371376265890979122345025009144884335909282360147219069668450380284469546006288156406500814919301108478157551332764167085165990531592931475489738957905915633346254152391232644326537632964237288455735196888034152399182295860263386525228024512402597965963646259573779105715717483668712264633562360273224535554360217878524174163833903550238541691440951276826658952440152245229467557767312637116249667072506949889712046704856832703526183881312101536513278698150276785466137804491621606434846519739067833430375737166114797265922572957918962618220078844932110192601099389159852218490028565478136256377909067130627446728524706407077910644888578092046080490162933384437375207506797310256470341651295526572314609569190053076509720057958006619731731351627482621278617949086613923046625269716549990321441636592290146245933429566668188254902400455655282735439907094811153276823619850228694792100220474923419100807472503130642073877601354192762462173329026623419064115661140971649437114963110333429148752811151236047672449143559456853138230633404424699250015786648266922901507053803338024964403515851296422329357213586602450611718732278298135005684578354462531635305590181697381908283315408501560311086066886367688582103355953970232438886768807899833162431674529302386111892928685439586054983999692626217130156328321391700478406473785652755161170772715798723530123959863545850176333538454757677367078566414302472703878258884874306410391521017975835223825006204348610516062827696253355438896690453373814117933637782287276075588480584292037954407230823223625411463244522038369412474933336439571751023365980182293545059183235102485106261132717079430003892308806493423186526092846468057852291253245278705178829738296476470181615057313392006446875520853177710075584008258749627058998798720174109311580977019250428925695333812345323083105097203701789902630645202634652602306525055223384866910906661495721641314724738985326113996185808243259641603045423384731632747827242332650486520643658113016026331430673087668520333733855372233541695611258523242916384632865377598943615232843162270007053416189524197821155647931939554889229968662242512688511455222322635103526435365301009527152479341545922472907903681446524016398987496915155605837480381446177510184941951158181469633426854838174416072891480910425751059497721322206030344885085527869704720180756898141527979068000548641575679074029361884304335820582167656441031411635965253833257791752204255622743001148172877224391288438988712348468047756663162070487378636423095930512940866386978462220186695349952014715749752800384264995797905998674912876785079181386764928841757926443984133727834475168730250692285767898716285287078181628562887025277047175021963007191105426402269216288963716268155138192237930848647938228898294172003311789547212881680490895232377049871700532817276677912364544208358698410529911109780339221535551999534888567512793501313604485333794677828731275252448228930581553113077069934393517895984824925387775551989888348538755150648397930100628057871872843719142993977140941488882650321784314753980605916914804955021206216720976067874196347061870394933036212737100238083137601262886018118998309835414821042032395903179974546391847731209892629338801897768564502377682783543320379215648874956763486068395971353779766823108608105371175185209496257790080688418266648392488628100536243781361787532933461541257431901787418308679225500494146161055506916214178797796654570744146578256993089950570024766282965329734249164616121722755428131515854277933435727578269559189766706817606284112405212324514240150925586352134859039005501731611220000757938474309516049946405718969480846250388823003490539706834743321795139716487233784084123003482656476755463016070928337234444620842579201405520240745212878419600440159204139783965917618344840808622150211759865011044481069046533636659591985894292538694957663461707299419225064948615370821951121069087921025192103072957766016887587197387094758845671639127669947525559058399435343883174428607048621242537046476081094360834386897662582950689835636051260279681348367205000705197940928882542312095052679608788902455297437611709124911593095863412573432739297014920860908759341489818679773090024141284349567874442479667126862132721353015413325753995014720456076181763748270671281299644660883340928926809802888481956516899275902277734422819925091345190463485953209378297573842455342727606630157094073644893627740951726932614368908701024076836097319795844458241031588223971585149092216657241046882513614449093301244986216676263029511386485096906915105713199986599080328866573126165154546030086043761247305564589617113726690259933246517773633051594678320840245754099192285442651332213491906150108839261776608952229485450593195505160394223481389059417247980483093565586567963097712109885775904576880776368429100081697678587231629142270195202126428271566592946563183289843354999314982431634547453349605827393052950389641796673723991803761988295929187516745229883981166152159941820499078306414897050082252186746741813633534815353609861161094430242971691403180758861984456427508576530597731269605645827080306555204212598556576670850084208026951235696905177613711890370757494170299418430965374461156131453486004945921039904278680735714774718952366606138003521205642428394676044965650228481661989832260993134449364927494470621978842252351461071942652256886818884514460137894085762493711157216514570797959787168179687074902574085804232264808083293122680363192115535183599349321599586108012424080990845844416147158870691156050641381660658284391294181646371904603585803217428539164704176925702802839742627841625644147284583076907370294058484422482680264193504839431099006073046237406607547916981687716383177738739673248688355464455670453171556844853434874097722115371513523380327960125407852725970771245506038479986551748489940937254989387154160293066224422867868151784180279997358270479272657453107643428493762449325008745908220328009534426156122806736701007500704565073292153751078546831928618204750108223575321358540057956313734529598377879658165020537605422264549917132875074752562492188390219579985788915757431955118262443494187474011851548509455683460832338862243328743928569795154721673547909387031280010530058191342849295377058215953377691016013976455660537105411689536845845167773769673274319755347434151800906665427342618637108022902850315377860752913057239230183703820870913142526411172675904414503497539957926819108377488838605387786647639650005412783533565307456490019113825724947314033202464851610054634787901080674630684119490035382768608293787152336252711132431176474130009775832382898876646142878422486547665229744304946623781728225740653303116362790761828993993598781626892813254885529370760502963574535488655073264514888532314449760305571888756878569141732190175643825579340753686551210116037234720639772115886743961159102665332112752346237736564953153734385243058489983351708609231337000529223864614122518159999329504795860024950423853176926138371492748982991830008462855295015325344170901253800182698611625129496653777196300727409024403082746820316999542737876277066202103069415494402740809293740394365278843574861555603975081873617126685433185177229166194798005890582944309185355029382079967213363000230275972471535228727451664944075611216545573688609947630452537000730867146817871369690973650639221984795612416949171443629110146621062938615629439237697726653639631593929811211488998292105572464758215381946670518887395626497192872423122938018577724042364891111406922111910863903648730029684401584862394929319844747391227512809224201086858254008063494286673993258357243270517467110175593237398452385680847914108620457891744800341323924433787485559061760921251857935119424184788037256561620003183488395589369053117805588378677169950210466208759303388517100377960922093739482655230563117517034874169446428540165514082886571511015476552735637017384397429871887635033294448880600263661537779371930747143069407520655820484480314706020079589848503362931762058961848071265232008544962895296284956462381029580048436618184056890178498996616097803220838990274546823711875553987440248058851758603097462957135384019781446866183685390706622172304112121662022922098047156376106561786411107824007757062520178164995049606590734559352840640584552495056926913104882174514611800533989199119799889905251579895751682179097864869322339022611325867381876422802854118720460511970674592161951666412434980217760513738789788170571651790296607812931451082113614990019311456267877390933445055924381826071572775666689479113940841890633100611682952913107620326118448399752776887631707983719965705094917859303040295261468711551820029181735145075975409767462088472735624764754323022280237633207092765801565004925825818069860330006159038871840016091933623246446222051895253093459032487845464414955292631942300782871202711683462587020755336481006850432861856160172320673143252029046070701375803809779844436380673599144308409338340573496415616218379797825290144092056695320905854242497888133767690990261709829301011062617162749940478524651318091799361882599087057430818046215876812321342383856526704390012695012070207747906973401522287867880420806407137320824828544500859503805374674338992133850763773549647380887781953746246962183186251183047811229951988578669223127674780921559392960741883574798675080263837431969986603785454783059451322572599984220856573189533271990401706311441376442869205843307538899250604224840935610801450155050749233286620421357556464673929170654078370251208915641969345591293280383678769201292719784701674787269132225595626509746811003021192316337182011933310588645885676520816245604810054610763751029049722836215699561492238018693740765237232592469118033800817489464677983424864072322907245420064768195466443437739123510055944336205163153270570683566172842147438767838477257150598831740329668873816574923713201168918256742760541430093014622350463992597693071835973439697375478366349532308427896509168783755527429684367386669972993727191136515542896027755013791809133690150154691912767578447649272669435828666830029542119859083352744035988585408610154882437649178337508965054879732872431171957823927029390339898457268355560546964551322938806171497955545296410322975533088954369592824566614491447635089403173129871321547610239561631187091356608616594817699117275625044692370098435511773732333258729621352891828860627485506676033747148614228825726896608191830074957675683973869856380261461600487438071364971883213372030026667289935329134994323831825691960880093447718452822803289954191593683430024601980208629827634910876737314269495624392018609340450924299147908312807316423490380642394770912947644205966155530556833986142138270436048479948339039600690126978543032363776203122960496211725589557608615173363991899472435910471422976389952996761668991111936460874213430344682582582364396879796776077676829109621091887814210430705211461727744779059614828451823655912411815298122459208110660883036774000943309834122468330495977530472314461798193178419617691325172691755913648981654609391714242195353600817305830591895047186295683767031722131771723308350251480561859052686119638942928533457355115572674057872011043300334698840193657880200165999211110431015561894085680269894199640927887914346698713043594731689118845479020216081348398752878566991239400297409425139041483263174355925046436297630268170113342317891852410321355958330035248376437160415580420270280074772845433250633401428041493564259436966964081870325704871447741026474905715190630942525279262045175423741577482435169286725514357326778361087840468736702738085554362615443287519619590095838152025262087810928798731804028120118371466792521853023220967629168058887481381544349416519399289689534738512599973560335429262345593163263885430435006947410102853147644943026386463999714034084380965509094133353793328700598449350471640551218446762652153748274677800647956240378720420597201304324086789559134792815250011298965870275692858059951960205501711960130526581596501738196247435504664064793389019237442229710956922077768246798937798790774475537909992952837732770586986838635031251246027756721992244044771063222447437138225608547566329260676240582733594370817127114810329089071969434941587408752943893546120588357849681857951309527442741651604249943066548170010828718735169697722728765784848468278499275376500935349295443404269623679344107945965528747185733462201293488148904458591140750238262199411670175444167929846908122465465266282548392483078142873603958250222961382424681159362113733602369471327129474792621198324382777211708297972386401671936125164050846067038543608491526997835122407763956743754069111460011593181225636358967016463669203060298446281799909738225289745235983285767578792415397620614846612683642523863619925451826942826801818877161378921124834182271296479226524554771841481167757135771893100909248751386778399858620892801950386766153556399591230044702828298368208176104428042637053876768080187301445190836693271141722260499173559843868415288613027330810385507769008061192860701637173263245749141687185302450823210296186274979936412682974496765028736577201326225363152159760947372298272925339791833268613213374562960495017708534629742794845756379572555845364097417746299611826491935512589031458324473839172356617614713856669712793477554300787569854546239822319560990746241917807038953483860751358485928943976773159791554884962101637360039381091961256216216088329051999129154695347483842025876714393181148334065201576185344221470127785920365006833649947541592376263185844571887891186444910356152194395475605833604263603795333050587203476254581637989975694224129426358071329183164309505008620514878522360351004910273205268087301785874883795138190078123984752490873570057354722204533735737284857954213707640770533179474301785165604753545654689956822341017368299663034534930064786404861414270796648358125209357529761258425167140571762562095056415686244257284313780639872789386846664264711821510296172599931782183575389668875540011705727145241114733049420863915034540909501986821955644290825874709655208929000667987577831956750995160721367631836038691315577181604033744709415280071632900038557887800301810459431662084733203464550448434639245103674942401297542618739180019122991180041341923819999231190916660229253731035619893873139943148816836780532635602160992632932285455358974379235066279676864530639824310344077330599858147471882440036156125305740465741368520597083769748779482665025737560329668188139762786268648916370946029324349607386815020919845623171097203835652767691925300940134223183891664856822757855088924050485779278636255876382644906442099939164969499171416510734380249171160824805871040335586590395946526919636721053824182110901060035176809124786374840217414342535622093978229033527828773214009002300660311186097956476104825593760567276426565276431990072392422290446676777339766562687804016641724319888339302071432137681423812730391596394618505444831678255966059120765121836234273728153201080450907539628733166154169278951429169840598600729040273858462422106304237800855538275506389748331885835641137384902385021087146253086473979619388064361344827587079616824683303911475837856705103607580250663177363750763320155969604052865752663718997737745779291826734399711773077342707582543318998706299628991145363651685209938444744591230532060957093687290856592336877292248606458725441410753243802492495161485060533318781407587709556525465120108164298750071282629228392297978352094972206367632524685883790973348228426647686327101891094422150062295989118907957876098025309641254745890640970785645728244647767397494045703793218459168299915317477568286166149769158328069939314940209230333471107773569436565657230237089033056690764606711528909350882774001156136048029788055371278232721201507718669846295682360786913085725879133987344033358934674138590978988101995813149935711463499387493306215633866727174044304828394635997456330153635107769541753042808530128100659620983775403520768636102987811263349708118758197146172978746711557582998739361865017837555542483680771464663655394120016443772921149850332993494704459755756894893884700058618314480658624821949766735532785027867550127358948280201448684559799190567497518319180089034608333264616695553684833424276431820826684175862389139508895633205113668697191515997994042334029909583040987936965851487196896374821789061721317949507242345178678957108870990213063218753661536637112231192593502692307554442579404711568837823949478119178924658720321485330755445606350747274941858123869309235627182715893198699544681713977050728435253107292292037473858187691422054448927142912003522016910859489936974885598704550970862887567256844763960429978616464882349670737418112171432526176929204157533945551761622998868449082987746252182982805145828841002955224994222185861011003041012385687538692941099008884446590628413700935692279564444941669894887345547025801952664884861188796758902320079132769110762525883068360039427942529873835672646883788698124340570320726686004496974680315142825821333820013202773296306645724488606602458942116238330307785991122068608638297007634341552391424910907226583823123706558442041242045997663380388830050477365330831714508522055203874726991817857983502967660512284433608481101327098832214576076461637128958439589411098889848786472927248132441130642563370790191057782850182453096640779775642464808528418962569388254627758966466036014295977824492386463577000774418629407673335941330038101655383792149020198412389856651959443113572212573424257616561835453996935582060471935448393892529580671688978155777128553727433319188018463651313967030093605775619697427151246820111336432803486574172439298553392497658733714087347115120877114198421115278892076371264160471150476645269361053626347192692099151596298072270707484105189825480338930870343584845801373809828171026509529786276520812947457836325460346186859199031026661570812866792749651233164065083664570001162106807965911947611219542733539574551763271766847126105139986995792153504001410256216847160214212387805751382712606796846062873444244110874113493317085919063733173818444021304710233049016090785364575228962772129227630751278701392179568463583822814322671610896902875924206365181948792737329277633238657557034450553885029642874965814219420501668470021654003325977331109284011859206594529537684123584611944757076295249627411391912389989212770532919345572774617798551307881108001830374143588399072918945417960668524012548950979831320975106640205619716552711443214578158661861174049973334371206624733539521475444857527730160200761674010030881351850191777787297226383450932542804119795233968118608615479396340832620972717678325088349179999644611858660890237669646694366875495833971602878892026576900027781228009887952512371194972362601606493559949587678407245667157486059712194433479029461586662061068210611974505392599351725164459699622514556495899177024852285336097322779200524586987960799389132967640220224258481817876691821842119476774333569242604870669356251111840823524619745112332717099353822018271181523969469128642641900800869436589849658131703834562099811513053480043455354043344506232438248779282984824554556661118380579408837312860962784139950516844784467741773603562653415203874128047107187106242638684625205073023479075755295343068266012253213317795741549512825720385226009650364653355211863902518998905737628321242583646298592824233203165835049473007026431184786266891787957179311231033679106877022625898964700896953901551648922461211288600629815609010723325718255925594475909763644947571015913832467029937586887864775058333739859888546953307207916288315134041007758943078099688340460231695685830311828843403105351965523106391795353410112604926672284166619619754809064361335687722042889013298961851051229862757426897830812975223261777183113063239113077503780843942741778168935070946466550222528633091127360489159137098559437383323295950168034841630778551721426372567790896924761131696785706850940505140977118750574117572831562704471078113012132600127476698110958203146592466062928113699593330737242166511366856762484713888905467076569365585618967345701849534847503771644915449768300869719867943773205388743353473861488953658451514022329752390013633516817278045559010334420069762746914060585247922902658433867535395543951092794559957864796516080578044015203349769818250322804491553373150916239678982778145370173491981025011467515050884069845793862114150222064710198486477916954589966872114085760217647320129754598546834313097769443097501135868946381058105294077057059194236381737172452075419982642394080950144446923929167222786497629664437414050584657437336507033424447553864983183308924447428857706625689580366822255332489127048921195243673840226858818048381092531891443767344186034957401243016521007157506946922110629143293811775836883327478097198579718640540275532824741357587840647245548792030150878761113574946235614491652497237387796039552692793619431142423122587525269583588558748250539027733158950670543159767626102051295913914899218709495053937250587187571500751105208785636736920240653449210944505058335511092713012776238737904196969507377915546846956253527730361806454345197619335161727692991233984388297022322315508134101669547181320991926884069752506810371283652090476039412732249264408399842857171289922431463943381636322809477403963911796810414891529138587751596563306808568395533941027895806932536269436539763721001662535542001183919761932926700425310657182867994475505032098914053815943781592586454846356581217249623835304408575772782577131350168258824062772564497030322856320128752332379678212348250652764614027317714444762906232433500498949641614988477703430627883526143407364392837783398408872844241593219145069770332720681877042465633931094268263807726599950276515679006954721190041183125794196480580166485815232980323771132149390253475847458655171956238491729889892905833847539887720321635503403794677627756595479823626127032957191935526772990421273996380657017595120918271311096980350573891437017209148879951851884027545314541594575593573408537997857052562310602765733132191460914849407294035958936860059881613882238399961214337420538527948653547855182300900068078238768126693075992224639064831198103484568804629933885563416484973923497614226611954946371202070327739010535183405155789412610042558049260292380921506003068270567342434571589657052264165607046486758971001953006824924623947128938679655053587033159569908187019302270543473469313157244510214422369486884972003143927840850766504600834941064381167483439140926536512329543826318698620358806764449445288210391808226944082297346489432387159695817435515110515787752554437317923874207911428019736874979915337845239432903075805755749295228848543983423606868533319509592504156209504653207615527263453591858854241031992483621721654896928120063962836648169419982237531054885282443724161337445409243542472022322200336097079308148954534375228163965456835734474450248823862077648082457633454525068451552742157823785455809435233958685896743563035127144520609927369865765715175770326670516461868045160134006515510499345536371754903734947862196829805346207211776179790690238380085474060812679713747684040163644087021995752310163852014534873700592466381627694896195293178888921312262885562390683536064335547088778478202212726225321239210529000751351266574063979299285972678087045833428340841017438755353853807191257248310836900629823011692417568143757216993386003891633189182555155296790604915461655612234420119814865460442859993041093476913722345933831006718118799144532804806574575233672026511177029365486335687472269243968817347623634523202992650753531753046005110812433179757796496282137955206851233146793466256884746802897744407757670590501555291371679067567698517742442486291865483163573301812391090689935844603100363670369687758844361954638732730989972173800406763541242550907670867524742463272524733223283114089884702624647776613063044506005667121886498922330354516307096451094337588182481795155092972495435265137774267563841153139932483701970152659368680047517121266053548466041443807412956033642791808475371718230189985476607474483770849700299844968110452140011606280299405734408463049319757675962730596852278769616488919095923203643413183223906652553901435321373182199655157424004656102990052684836864726217762864529006006035322324612351640988412932254086081024395297464699687079450514039705569535341579943851452359471824528827152470913468603727485589039673306322730015394849605414783542894631740032582104979156081767180716909170827933205515810324022360951170070201534591249511961412476048636038915595230860377692434951769114414551820189954144234460762554577963218896210318060470689207269504786519015858579287069249201542258333644634911462148321913185290507958271330831478536252885651389229251508908299934574378689601593773776603285151306407186101704567478912166550696970078904919333927546509323696525611622709149833657003501015124384250892969022828276373434718126089606653625387627815430028296987204506567911484994584523986627063522570404064694015920836014467642467490107381890915667064556565797512407299699187392857584725952271421729962287810718395180449510201315535790930785928045014620874566012306869049651753378771351140799896602656623717379057466973975062555195742192147270781425550676139807623634233213565477726229301882455229622214436357717368176580430424188233660503535676780632577104416285457974510028950664991600964876522385768339609355006223770089847081084083776692692453821487660102169356843907654355332866680032485870699206761994495400143819233207920909104403887482170212306160197310447983386359036919175107887753098494331146282689126395767926972183886321107798119819593415178104546998443330459752941408358297359900996942563163291732006127366210321395362344922659617117568775796785336269678814664925927148442374644839412885708332051448688963082741386965580824744954925273236938460191519252186659084317923859243586316313778854357420487102551164571424492899673249806880502816994076916480231874270265960995135174440816456812405545471721716112179412295852372984810133184255924025128464953320430617447954091149889433954213576788839620642204022410223283180156008767975106195591652070883725237034644458834425104639280074572687770752720176182543775286009465786179547197677255544330046824939043393156860709574957020697264351591508121061029447076485035179721708095362122131118592205353788645091366429518924471211071982877381747319038780847739297256924608618913436204907611075046358517058455829128138509340342376653352003018779796197550602999005111771454627907036229815140632608137883370782850569731132325956528346810240126461993295728051125565659596712023612887628984068151679447551802817238932206004905003092293090829754616005935254613600119169028483434049583189222967480183983419848350187848347875588976264964571782399092631728371343290535664998457826855499024829440311501221018054715190810334164569788946044540396097257786997085211603599269179035878728417165999374616582593395528034517178835514932435121060316856331056004286610726450612924437686827314518263769501029438189502480213704859540448270246217056904990512775468370179527266848170404136756442937485321153643696525948270762935311901702825016197401406623753450256326032023909441023838988015709078785776901800169707265576272394780581250088854622893931875715146942613058055289136414065216128123293602387981345443884221608329889582667529294530219789666754062338690796880772249603619465537444935789074233170735522404708897709484198522291121929547153462643575655562320444722517629154558010636404471356799894029450732488800938501872824829014901288645005215440668127464310848959028012655278338809026896078581211738796714708280663331659292827746348655316265191166134745277504397930854459258841299913509858787898927289112647548173658968292225401016223200558144081402121242386373477695333683679121846704259403524774542110281739330024174222085588642516945002916033556097746915452556347352146630139286921796648506363227508097227088596652943677035629483338331672673959237306377082539652660696241142639280510264695822866175058633149119452277324790669666591720208114749082385030336879587077310554537983172842650503037951504834495355172702846743924707945203922632258958823152921987510778828356888121559374123517823326279033446227263184259152525347567714461798243148106919593632124751393382797537143842879423199867574865576958972721986421034353098567887440745731069028763046905378363951327451195584164578093059177705969848967563405452296389135263562263763468431705634151438752998387288997394231894728780545149800303057979080792141336521598999984681733532882437041934696685093287760846529172286535396856342475109499069816172062976644341704432304307142046807040863538977815969082267029672251626157619064874217607177743821180228688370017439774683771736967881972088971078171576985876773972486516045118706326445591744780243951279441267699257682155991966577552885744527785692501815183218217685796225061417446338062575780711432845614709854475858876490997379344973980109375924425607065703515056200819681447167028177947374751870632573149328179418599877541446638699434224004559884058512630894493395615014046941023994267574146187213077359720267952326797463356788069559504225820171608444942209462666799895507801999038650331910939057296297518132514085454463134893200927449866330300306005460604044095344536998523951456094869710534919205484973802891025533358511343511910941199120581259364518753530842991365507635547133240648256821391835552471412800664658132969498465066162454864217684261159035536958436921109915521648375363119594494683734417709913823818247519664035361647422951803572302667295680525605089582452548359437681091054129292159123318653710980892878338177444760456352758718186393011454396841546355630029232742461500058821029542001467714040398581955829045920711919414710942262679854457270326767524989579231180230158956358966405867566249145390576313701711226797379955776944667593876986140340509476649537367412221001669372967146221402304389983585725565003377247541016980133444429747006809602469984521577250493101681350389771874967247328557588555097543868181041081515764275457218778558659512426806151816401014709937149339844367562013545032548329128589915271459780714661789273606299642902783027809856549665809621174318565259614568322926325035531408696228961498287380741635233001920141490848764474454315436556312638837238388285045833140662548646231526745444765535861557625836561965257362765625249993300977671872824438966401143529355038173498619742894471917071211139835920243205692061606220560585143053021982011523956709925374921099045587010231796292890396783250533219666161150730738539929084961950637102747368716332903275031823619234530283949950040671732197580110337501666109340882344695338202632683770790136106638202182033202099440463899960354648056468706169487623393551431598549864077061811261723297317170303111724775116965705930419675481565561193299245259210921838334052488868199371953435303376101512541794203499675560866316431141782471108123292823310528908001159845382122682177048890959418526973431053879719121309081218343014781740361068318789069921607267062384080316753657801131579307131309712479039891753945180774135202913955550727560083331228701559828494302568624253456482380754618734043676052145964024172717410297154902931332673256968550802740976699779109157322437385884397255616835483282134825742929170426093285808420350514728809745165805181742463369083282111307615107965150605428258707843361331892263648737038955489052597336151481266286076645232364101403323063503377366424153716302239560538099553293826025739927141841121718263915345498693998165612000102623878930779377201212233688042479243146051055150047291270174820737323153422680072059771789209122576912009212552778741454223823701124024538727503257714181997519602228261031189057896656876538600873651686047739916119810473982221152859574486560579186668394496178144687051582474308102976073673522188625710648568927361578146511314603226948099601508212443499542095175965113092501755913568520698819018479631378297298237246288494423550031327514320500757528602201320702560468546039436235258853195177953125613061758766025591428355990669276212594515398163652765850747641851964574549164778025048379002389840294447593036165143826541572408659151381873885728446443664065572498791317442708965922728357842032637102942379634159793314354233286888629650494689262562451073304387555198254917400761566910814372508732960212386453972516195919852073935785462643202986849363066083117999647539220223393299787948308990483895125730922997632586267123993935990772515631771706264652549460674316924993829400488403817543443855186227673212475559736648564423670429123507402138838131361495493029548367446259079469024186874009752718714896092773788303043258278132186424422066220720884814985257062319198687590256977677540999426528293379851648425466752068675138014216707126491824941881655365243583792124366091553736842295218165076541679051648152347106824472882012504513937991005443309851601311205043583070188751176215343777311826855424145878516478050322532552011227991663443830793817528820993950375498844544523331737143410703281349023767661455381564289432967222988690123054260658397469788937188797647824962540936906964605511066057423033889056192745329322795170420963643657265927958664890280165570529172188452237988105056851706215819368510671371306988956807472475174241538982127437729266737834179008607969819939292075465652136015136865375047081774608080671530852084324830832153335099935033515334735173500384419838755347307937786782685592131676715997743596530007094059824866801417450775338246598023206667267603759769052043120545577073265836551816712429964910511057675328665354065663004482130388256220243479510051746631637044991439902412964498620755241727856809259202356029931943747070226188252924558371372902343429676604044368026802583469860293592581070341589390182549811321416965998324965062396296949460268971535494190322179750536671657701655310758991865050785656788643773179862004142924133296529577901400843975727262859939489239042732845685750890388182171697869664315270250023383010249766046741554334593941412246880277279812520363563369407954727124434856042502174545335656961392294400581652587721667632777278414055696391304833578060373073524789558451281079327139678554551221548204623033533069500603182288790058904820280780667625006384167064676566005184836606160436363794292665406147876313261573406818056905775151860847821330791973800664103041471776375349219344656028869096289141304479555761614045703577167430084277340342717666947056568705758317697696454714954709048323896023084804376193047238574768708115420582705471176112730680622205632959389688045649382855193920126868393270911842523910693425167297349528212309704929137130484154978819717975850411080629094196138069554369601751713221818870526156405452392165758382089051604861805345157461117683155931595067329499440295168705183326644753618836315624248419636944133772893783833146780987193015957720093155441212394879449756765004778764595485903912511341758821413270585995157236421782142533901926553094707087171757051585916434082121117111914505897611241454368978560715834602848359322166409268325819914471553232521758339013957833853164105696426113661358645011801047472853268458877748806967232759935441843143474596342696193072056362479222687559857320281093860355522015369373764648815617908342717212579272125331977778368739868137114601243332228388911417994349943464297097105998267660975649903641865780666005645760796544080818841722752865492556567982833490408142942516332602930830670787725011825367190715461155268859800976048663374043720678174517305356458016566789634969218876514889697797625852043766438948246269618476150983452754869056760449975167931485635488904012733652781492976782589980415499098447882799465512486649930481362410634808868247303392152961646573671327836052920252688723199954469278985352233157590598155236106368352851863577022564462202233772541067353839780867505372763511259557206911663069030950098977160449649441160390861441932990684310908078370597348393280725528211212178797925924399401082867188283409691423609085513895522404237938397716917633354512150221936471070912171843299245749439997871097722550009808887223122332677789555708410116634271523504108240377220360447680543552039594433699703593039610355960732429021801548115095240517294251676476079275560181875103334962805220048394154338743818961763405138308858934420699550541081530777264761522419401166376449078328231682957655314172815545959235668585093510817046404699908035757261526952595206545448157595053071399314854706917198993836430639660430617374198129512467407057345982958173741053435400079078939781653365292749289718729446062073716578812693737384778957992978429380178659064749967585602495099479146528074342958809891414207115859749122185163180514155310599639264489375609822457550557568336119466592327297161240754037423957783665244590734159988087393603332638617066563189159396449468273962583553448929607106954335957441360846368045753744120131648584020728412305488987911275406493647863172987920382102609017544032676091067743700529147169520761170400214022205304828621756189326389762570623853347839948403436622584372723706235953474967039572998571685715389739676490334171148161684760828167585327331797295668016205540483495485220317403834572876767306587874068005246374977515525380120693933522139632002877447586861301502611050514131043439088743933790131946597597874666001575465940710612230327831577437530337115676367385965319763443575269033628526189717890615716127276790629585607630942146555102730500964138770809540795424037928326267526519515242167043618999879201443359000609696698363810903318127442164871024576545144245068848455776740155485390681622057260603973542368898405527432440105102864146746239122689173950914964735296706495106710495854330919547986389137369461627064338739892436136826247269707594286558998326663657594057919634019489713660955623097856697021524310879864132027591095863301554588975784986301789385940362365249203151151899014867313766992990011250626150924209554849000171745716135650203326858750497718242779510379855672338119510646865450408374535279211782926709203677018367909592921171098368838136736215396038832501102149019108169289935861181779795646238967468770958247444746028557352824591786962223661528469775088964172168251504552121762545379467445680683238903472960787481809162122312451024395981835043947918932695123007312043773794334525629653503635040727382271815685643951838970785891582651764000824853951611899180990422659234099250659668422060354842484164923037943313964651952631401937218239882900853568726325493734328986440331560364923140133736793381335839857937128570925370171725378673952151865529673997788942951681518210166869098142066074661518619101465248277203941782436104980107533260198115241598877515571529583962774186447141607889079500560719279950376384760941345831327891327974788655925508720670023115169486078644526907192687072228293658531221844847932204111806556939240434189575837201464389229770144537396867055948486959705493684535783231506984427086647747735336385713835875064187212889574422349245563861427561198219901869237073025614362034169581451534653294880287572431245753463282534835245708331939692839581186346097996420525716616557196468541758829526300315133302310360440617693449193178662821355455881261590382422836547240529465227467897389721437855178143063521834678065888972074291488295328422560667311874254316110316460485458327025754264601734669016836138014039032390027384186070003319488671460377825292840660932486759776918532352567176033562615186179874510655464016267782640527651193978218906786660390315793582832676418014777853650116022655201822432874498365799166912198430249740794381362791913572644476742590390093835686079645589628591935647679801131337089773842293785433253927084794515595279003118605705140030812582113423910809275652095799503863813630825794976935519245339012080642946513805186411362627160082109563393992515241402296370805472159541499017341952017601506258356422888990266302659149708549684239675731701647488440138205228048516970127990972959645864804240929589914275494385148940207237388379521158905915673906614025416577935760461532800896359634386066450453601954794480083751478607785497481878004237974607647838509568194098003155017903179006188388968289611347410405079809320478260373487878839992859811418694578275467001986234192085300809741113508204456986722977828333129681028081967330077430061023545789298046485687305550533472516143762135268995540320405583672183414039615602812234207381768781636387856391172290551295533329660726938024650268756216042005176090820762421875606512156892111078996658370684940176704807650202546233839120926230283243588067045197797667206584264644873567159435891355212092151509252486952986708836053043029770044526751387900051249341727060062332225541294939009299496935355625951120660668192085888571313753881198052760497413488310004760502245404309153327173897534173846198805470304246232679206396977021066206087960739714016626610345773216996846545823108449322342182376780793270871183606847906555145508896907873446896065810027464781512317965116897574915849330863586115667493955903011890005049266943673294273261391998787698362535782949391654534640313932915521541238771495943995643527643149290861851559447827901754520615381225888356199615437562607193384437490814693943509508232378258393990321362066188521285984960687064123551881142166804090377631508921074946712089922514083714137718795891064952508109658506612548743762349441264101387466522655938501885011970009435295276227449660778053914702384284425703818307391101110633652487282998071564443021191687760152184597000269734982423557087452240223381859534840635380754293004320373309574176824662984309733646807350893504230774526279766787050511005441413199357303120846314388298891655772810522861797587996844871792820099996637021299596244431882996297934081812553958540701617047709748065297232022676866104562331413712971607005533685823859287427387551070943845480783360807443604221481835909875824322690327959328260645206459043695810338871227744572048424052717978251811379847980437945024229560233497714197259802248988793627479359707335753639566277586459020906282048368144615216562930906568705918356799865195617828532839875685862973461599774997980198558367753686480781877563820470090217893662640283356929835313588691298507192557895849291630132653863924080325417572139897142876983473615305145431040467214664148714478265751355622865900931391682130724615903682674346475944038841160949016718212963279075735175180397788011763103425346275457574474526608171662259877071767520732123046107997404727877198647488712095122012635861323776071102203888670884034257139535409878965791758199818236463669327215354067920915754882216833769003089322997520840001216032946107498110480795580330629093095400731601308716094967732254069136228620895851454180137623903263415981605786239302908226839661392409819677062202013069921306218564281565637673671018191077023676953392095846902200623834944268577709113097667578828869068817117739318088043040110287670085230115304704499389387739472077276200233331567905486645144181874616156363135989147641629031511334183924724995577718791108500260195604747483612069997610895260504306669167691433682301513454602223603978822278597023230167002561047953223305416962107702080924552023943794237491256671220264427873280325841416218925728925147706563029584158088469579134378417142686321994614338455204117371239829285834455688200123915304390337544062284032044440940812943174404038119270545696748993803681934731889381982791163875818886481627300603037413082404634865148407075785338364954294239695565115826104944741647705107185509417253626436932982416545201764278204190400977523296647881547503136508268303282530507390539548397360029774095188881900852081506256041966946729527542880167181668959509554055938882541556062790180394171252252815429173734805508678049812024303363378979615807180500167730772277112482167301948951983244126756061019992570391821806414834296236299225167030590625087932882248371252482667008278533041650162233439906003656688003674021361288416492521943501893892282735233464402013678362987217341368916131759000988412081233206726424960515788930562404746119240441342886542553562662857736322923759287780621158335594895169485095249528643373074711600229088472014100981061279026540455622244364470354131522669594607645133830049498955443178548028006226452162526697731650943223925990889308445458483185310106499986981546108684957426057328671589212911930247195640716602645971854787603814826646743718290616259171194905335953036520664891155629092126102227791150239758135034043879715057285858763807304719278027442937576444225709998996287506671881345765638270905730094867797524253641633700190208245046380599743600516398150426902347828568150045444174646912611859929621271865701498943770427929701510357522867798792596350306232214499152194709795867471810586316424159032517690971989544569107540607403642523046905147956283764184030996680769943974349687610854472185237452679796220348933651814778341089943537585405010375003894984377356281013704734742023237241683259978754739646674623416398637067304944862216294101876616868395590713694459109160854893954807538204043561969926191250801860108877688756854749711184497629389246591997681049985116745149222756761963003696029054259504977743029231305805688416459979043226162617128757881728161784400649018426483265091146711704721249361223488068261671699811824119291877624987374021208060840225392846752520275115569304317669480335444236727741053948833363455566707761146935066754415934079735188082046112741331150057392323787483366794035178712545216644713658903714419654564593836219646222073538541112281628580853684008711389599480336461190736547997871592480529181116936174181757192932313155760700207152591426423399978731322450320734175137205998514592982096415520781908862879585080418167369321805096194858755385673074444730210491225015156314789722136677392012909039125219128705863359087843701743221710356851438303643952299106064435065754772806577417277694854999450993564292647655673420601906310648489610894349987135066903266535966664887961815512287555005435715511734681913267517821477680334234040680407337377467533483978095567135017144564495020355878163599653434025342464429278874540975699105989692488508701923555487686602555364676410022487400107396816418579573677151583756241577886955397021899018156749015416781321225510678650808785046522308997408604686291511305307330648416073864103603316858904241577951855045421042629884690610816152435819351702802040609111300310970694946249685355787697608504722874776522403520633672125882661681847640318584706050515167507641281112300111714678374075074628054137522546995559122719284811030077078402456243925835141249480069604152074918786774548467988626345308006645367269049553710373043799594328954584430600985100240825645105805046865183772515430501171575713766434749620025268321274075505228416689718539869833480026468125988991417312501485743944950020785300399234775536229796979365354388251552420901480453299372662876694635580309485437690401118465686950187174461634173134886073661680375556015277485349507776305040940779897042770575087199616698221811418698066910890424681301436012582504133308652484244021404710542809465259540383107817181456850557431876814360407426309382200029576339105231858743506469873566362663415571266144364840549847031299401868827118472962663159811795982128242379150061207071623453569032791435265904033141820205118077220357910885762912583990778564536309847174489602995322802619402816041062233797673401025448501562743713521738747583715157708460997857997075308389980990935663999246190992577157893409924855284550901227919180405035577373711776138268104827777169637670522657629706156698445136016636209143777262990897927994430870918640681237626549917639985117529435925731073955098811674328976513137571681955579534687881004664573253617977713237855642122344066008483109252377627889824519025094871067583947870336518781486885050467797090413291593268635327719172211987430377839137811882954600151220918226552693293755973843708661017936648723536938402437715129681257013686155431695681172981300914763282931296848063002343376747337053041577294978336940567587978853834505489885425814410249386381262906928445311929296705124347328581266586771213957504246463234574182346835367540056168361917531080121000025294255264255889569135964965881702397448102850768193749360310713008597993683422622547434182481964720985898414999245335648248350718542054664573174394615194417344518433690676119489310506199616441807376487259611638917827899230181351771635203590210541624769448693406198091600317108681416233306420063501393840582273188672228279913940040434643220645560237334811386916168368053575204711134052918184945778031406519292339744026541864647858178379452318131574605465150814212314197974328445275999805279656290710971612181618240888724610563001883675846393594411731596939833367885104512564021280778891972633029948878716444943501849128652404300270535014969993852189932843981280061392944401419180377638803630189385908784291746688508989759129024504183477781101299448220232145504730157727894658165310294217322650452523255211665071736246053551423018941152221296776432356008335552566859400107877614802267681245292178817908870555429638268619801160786406819384680358835233575067675272586100092706326076993089115303934956664828424081510413100647918126889340702793031635577819399566138579196007781066905595021699780700155983681357688110176262211415436046066013659465389245656962918071726759636356829951592315997959608084717126989009168230234606055792074269649252093151871115611577907439649834836184128563629058828229842814430050104691541704766444938690427967157027668703023244041198319350359813922946691866059440475806649772588606243134108510521593088672121561714008908604124699213320014484757796954210683696109111801767324726618634791140853075977115183607511203135279254521261343009605900353737632995621012503042215473792161246653928384264085072228178222661893209546370031562674669615157088536893838108746710069123427290412748489513062432145249481806879554244679690329804628275848947957774405130039831157234165971720690463333192288190601961988600943670558543364604994299822487266863010339827008054840503329672235185612657866930708153330447111126559683946475774620764615521500345928621345679787750520919254277000997414547096007985273618311763686529245348138829889199462705460689011674748552323118470244002080274061998375424358978157799266750138895547932638815047583955054023691949022526251152575832841366339931678596987375420614587170841043239898458577963836698704682563137935144319817288162938973329049815922183030292411418450411608543046382105612682843995066635397809263942184056180747626762568014762483187333411904935386348604154836622514471803360868838861028451491374708345768976329844086104238629615851382406671337100521716517327718291390843058512199628046381926157153163147595245862663781334632982093025333936150089098919171514189654573167743966464914995039604622577438529473230938593562855684567024394555112273618946742529942119993531569655669322057055568410723489349360172238455554613836044768893958178040960941322580741815135083368285917414038763291709275319809459389347879436093282007094858026961721698197112175917504985141434127354602311407435874714583241155791938154995224050038418666551396793039604170636959426168704137002504575865152380463591619616993247637289231854862397799565900023940398439757910009186845207269611757661285051964805815289940938444351170238816812351966777192595943250259118835090058929929503864402813321489772496478342681820142566117693648047718650086840889417848726208553946727633653551308072899462665148373109421185474237532779557647173108672711808054941774519131178041040103205796900671509032815233660078533098420542360237864885628180776986718273704759749677006144570783400989129379040190943178539293632496328935064733042157369628278220486740983640047186347680245608537176550206576230573649944061996152534767239866781633319983135395226904021435674280191423371481597250865394189588380950527067439116376160527385572075044960785063690410297664865489545221731286390250363955495824954800617874444527422455877734746946884316314296985239679132877017274070509900005823190246238283367826257406522652944223436075615447966401133101495811272678067111154502233547310236352775837734805345828545220003014717225333428027766844235073389005753529344450643736524551440642640465441432484263234863850146193764967690849064679496765567599765227478008721229204556860393510409053584757499828111142628427717616437451307363669077014259207740690839682434078447823730524357357322373317507338225559616545536326527812576085530425321508554357322393853193755115656139731840808677498574836538094635629680793251530949296903506622755646959836024108890582211142944734216944731159126395912908947027848101390917307052974592141748317647081459062296245353388669858068934003210844264951019961463313108166311866207883264925515798966621231132928944998398919390986460394853921169392631919454023050836396752623021495545163745828033050161961011107468389056176627019624525584349392419391166236850901389941838455261974082661414682658315876900262865996027213315868870523101087362654130098291597731065987260300700815364066552245129555514552222481231327658703490503183010053225277231769923207030854423728037712131685449111976585878752748734878688109049651919317895644914073843105957494849173200058667755195424603217960826138983020713455741460624724057913815317315880297447816095632074632712576368288684231695749271697902067694043142225513533801680088368462497478087523746677513281224815679138574286465941208896856567579985619290262993808986070401081296664721696533096869604669767632762421251695805588329529022436510633877366223328003502398888591544220913912444057866866535183388384004062269640861440761869603648182251935586057742952563992869680313814443594698909435855761078678632484321720438961735269001434198011111439343724266293903598902530049818405698447809187157776889328425594931426774012758846938750519345871415496797101477790086045978371204373072694545278553724711365233945591757765526266925237319409327021758775211098678535070601127719181144255415674569156488672906158924343055010950087085844282875665840626426250545159907940880738138509702273142141773667515036803100232052025482502021751345767210727416639355561939598381422095348322193416664141474679432836975240532020943822267536837604836597450654472821738130524370092371578850359846479293905277217888522751371933632094189071059884798709350430343858027625424739223724676217736235583609844039643205417313828141785898909216491990419001335911573084556736383342083540867581310221944497833090847137389373095197894458451710958965833896733763930043176506241639202226243763360962035327199992190100979732047954853858190033360484955239559533662827813072239860248643011696582464608097936231502257104005320928247833340880956726298910329988632240020875667596674479039517976745719371816558670072636716372506587178250543619712048909389446166428782859536984239277325597091892503446665597201546307791478618440289027421531781280848737381996234975921980823592365448997519003483782715042241980174550850817452380024520113166261557289255921121184444353675789017637770441004662194312187166903245312917238925399199854134980175158392339401965383293730339691793424724108678258957003733427919038542951339389044100596117186296003843959681252989101512449785338671556804899534114727151955094043906718638548668407269922190067883451961004794712338481157309817671317171582684568941483256882397171573927972764386468464257993733747507241069713596047207698398284338311625730812368930282950579051898081420084754608565460289518207813053024431352909329500675583277627031189767794057708040008403017438600918496061449107495717105739446451124475446347170739568036874133982967660191073892122137049414097193374894677944948388002854181420727774841576251258818062930538027973251120462664656116951743604605278423305550949343167179110024087846190656594517056932314915110953644491158884668096294266658867713390707205567861601561539414424897804827935999506204919987075562539266476047949299894915736262177578018141864305937948285487390965046862690283842906770661615357346065105942604650953082952562434019243480866908641207579196872497496427015748517777904150334824368495923351706122942140260961069379166085234555878667527955485551715718961053160575323239172667733961201252527689537169246683136152544961546951430163683973291873141882139770330943580536350191512118350756151039400864552420608601681765500651240179997462513939629721563415111286699478841672278040072020963903929666505575875133240810839890971871504320215835425420186136094791058641763566283592476373995269171009941167696801222759893036879758128306073662440299015902498585046452537166682235308719472078875626322722595323290256912963130351336489610454338338705147868817961176739848416799976421626978294326210812902519415630575147765667528201371740223450954836387788918796928775675826363820107288849402834335815287044131649787643828837031200549733223329028494574520621091057904167498753446365115787593336224678815255321598786288553055303491616107501520327093990678159387873253086554805725396984654111697334029268278701397422110144100521893827516346245144442351746503750317042345087291255842122596360454848130906532731925827433413314998334912429844225940026427410267512500947806119852752562183729181990673008226772148662818080855951144374824682264285904469260442403885126745030237925724297272901373447001949472779528730091563618480180835910228682935359321180823430508703796641026394544434463136224320567033312231453451632417891465096922752607334314371603028052790567172273782079806644580498884890945857784266317452654227489919899899543905976886610243080659722873669143482096099744842674385527895996660999079139605971316362809320488293654824012990164522507329124772287390088532643191331588141911769921195256519871028166285028491422287648840048967147072606367743059713251155571696754430526709780460130904960910816831725093285845949658980283870454377635209661611373659206709743432831090597231279227117924315735648949691602789306236643089414785546290557559389454478197436797746104380648710951520924452874599662871810372039433929661650365745428580930024631771509589110713392483658954891070528346113565912925856502367999783455586030976046837126318969434402152254846407897450667733062833985855332162514989691544789488535063869058558293348133064711187626349485148115939285795518824363143153405483995650472770311132912054950151218176920964192502971544569365041330591223429234333540013726823145041791489269626638051887004593808330504275551615995877184212410762670925327785955823060778143905106976284000668912491175223277323900564020596857294299716325335805904847473972381600511614954832555886966842870248348171714239180581671053336310442030599130524373192583884198225922685192938149669522438719586597795521756627803356387228797139647888302453119570088697942757629132722015071927959757673992874748153432289995067859458328472378887818379994002154393580295352316002579723412220147179749800851690917318235950217057981152012977608855699603641112148333783641123981310041573703915717388552082529835271787496425483160862518541292700597998259746809333535286651877938581170627471150567397220293458052359245871066560054408741952042367203827722643596036830858172763427751320575681336653209464082443321198447524189048615673624345153046995334908601467090508985719874483584900459500548793871185015223637546823445368729652572804699670826193468894976462725458513633231916513027465204775093518038017269891198707491705350351334900580768021219836973530774035650523824761041698349844629367958955207240840055616600575511667188653360733034573680282477007049635595994990655498831957941011931252541660494090134885620941826981466687907496090802074167020278612510456499805770165462997493241142195257461597110125486390487022682971781138898924805395064975176064752579553823285861394529300811240110370883579047035646132966402929076650906503673394471081706835178512298896500564863330393042121794822105253625148893585187899100441132967560919698176618085686836908235666946513906114437939844138236618062882195278042758603040533544720433653761517334909697597803209358788050649463238180924583073934348096142513723980701525239554051820851172524112680933650659831961109626064724209927991401915947619677950834688147834154097847218577918515711604906851425991820280615545837374437539519355807930793496791917270903101202555279565769377173262681262159386392187067466736730870442642505947169068372888803421271377529628318564995580989162290507639328563904201159289055143074783383174574134834488693553666374833039342616694972823012599680602630670217473400888028804034226892491199599144865836740906561737325974779341275600689817631892846936052276292860041637554914325642734880783910394982273601472808037569074941545769193336213917697817056388097394329625266009584657133825732149255420465569922348691859038102088465141652548110007846526297200441255496026685709124046530646243057312689484530495099917778595498685462185342202803878328561947321853477564227348666864290794555164426447917764090732311076716598936583081572914737578060319718814034672467115032185480661399527253194176364414370183713295000811520637721272019440116233985180004673399456970529446825762364482062933764450468501303023594865621587933872797485478420530173657719209902290667257464860061773304425334327202126400423150452108038387405557748215465808625794236641525237807235724311872800812478121612571246906569152816265356941547553863035752149942248328334376924703987283165710312491917148390455716530841465992855879484873893606679570852131675676961737521511536496452819545462363161298640914092398473954633209055085112359925879308535341228947307500090772250441182631341768199168288273906524685258021730703418279800061165398994111564894155227845503105765148516343385212104972155027406076022570376972205964234188555328646920608635891986983326917908886507853659058132111807078736424547805487547105594269525296677837789723768335743656076281463654795101295658036773712327470151015072473439360520180155950036626191254042249272751579709877321674330492565282697499348474511238561288716239658462997705785759689771421557054178594057050746361607754950678965103251294560642815027342022651501369649187102839237260827653970410420518575683886854519812426862841258034991294815880236719538726383508276071105540021486587098961451983539112939595937906243357200500039104457046065114453670739046753295880289078428028079242235167540301795952141105566930268115871036312467629146427121170520392666130403928436692108582033601607449224606152843537957355163047293516818535099876290992162499120522220079953145718227306339063253929974029455920964848835505327045216995495582949565635281334011650195385060944017945829243058908208661272821563302666922800547321774398095669549994839333764731441282302365703510821176578314651752747422932292324343967345288814999398523244670323212394551239149575013998174152350923097865486653249935498666264394413101617968562831823576188263508300206866373529758112715985743882063705422618116807083644343476038919891185296251824820474141065208160572387871209355961955602162656201202099885594999449080362706237279155824893444345494242065278314647524374391595576650653246142525060068656384380554742812646210467624474784571250875903389003363761486399923519361778601459706103822979551200965515349966369483900811859180586882714989249777188627749217686577192225660997214577796803404165327352076007012074762731189324498491318170282066577683987925279367154114470370170418835696757272846383186165295127452499938948677461550601613258250900997095204900943049386466007794677515887590278665268576848646468310783871988144085589241325024078510497653999968820615693590538722979592296196915970641086106353208757878646701104432466848458090856284499939643378701399651081567919721966071656815080920349081032305439482157105290363994240641486472911261230673949914842896785444146483757230882431055943150112497487615654074058191921438732527886944081869010463305436025085749348450794071236189506439684107432776201446306205597297031992471279887818174881558004688877842756825663842165464877926561112683654456209733521844486832652309033323093373812721575396571536751017857726848985733769636056804041182252800851997250986071500204286043274317901088633718437642253749558808728195249740221609190425918296142805010954216258153423619331557907544335144929074969308707167399610586845650620671766184621441555011515160991221601682081501761947032098055768286559683513651483821311784437989311599324336855998657288596531190029467737320586790025532289347985184121053846130483101255513771086105583725794321349367250817107113556077863580768340089408788842082557764566376933595510153593045920210510632015083037393376314469884426810811411445902639637041971218045359383343241278287785264292240452962049250918697205148479235230319546271132543903362353012759003480532089581239117861009556567289146407211986575281246994623133214624910729732027389047147772261214601028820104419213202493729938879315060360062061764255839315185374045975588589371084821450032757129096581001045210252269489164070874749913230235486644027229738947662660364936938399615903708954283508780596280803897003860294544553072444852856642613864073798279703485283478711580771683388723618075183566546892024363734912654075173695482923490648922648793377997997335491986383198480995274963602461474615542779637050080440528816160379470568549939008289507424754599572904375749145651350879044827450751156090280839526527652850937011040016499392649176351882704146772207478478067978136503609719216821046537973943418706582214040153884898342931380398026029337763269454366295116140209875565240716500092488163096098137953139525506309164109309882247202954921377956092956626360853937908832314083292179914267637753377113037238028095916672231007610355759530018972754140512392024827035173803414624249935377498405788607883443759570884308676370743073429212180706813608279004192004412327120267329497185637719324694007917764840240869493629811106243564974831680048018979163066471441384009016121920116945446860717682845686592306260730240453554609658485103966508369951085169586454698572209011491074775902213794618026161732746138771215155708439212035864325063998776881313574661055794581962876493078927535704943968475479630240232309712172034071155990784379774675747919565050168301109905349123381595814568779933856160020464955603699755600785716208201320124152892157776229861753396685514196378078066870909318076492351193052979432447474111075865627078420280544551574139963070042659433825469559653019764913126421179217275155490407283005074927330318460900990934202616945032038048095765550625343069480865748455506123686296096909581730091107484043450566277982405737066370954931833516805577315191101396292082735038939504251474988919085161969111187487905631609676755551281806117891253783511068666376868609250237699676231151230107731169837693985030111805436504627961415644097653411446173039456820403521599703370713876486133031239274419372295936315843301565929573207200589873338471443180689270926385010096146424243603203792770432467920481401227826118141641989918060388665801605442207765411065441060394003126008730237508877124105523480588773022119685599354409022998447413298646470761869397807407317947095446275080398785174847381041408079962881592280974949375382193697821389148076500959404044434490873657390413729647444007896476048219032106665318768131363879567088725636040565596526795054771911837567448425733446962657118997847850190556019187001657171139826896975444345874292464746517791510497231112220197130438047737706781960052721092985341352781889882568096997686413414236915629443720948083873859758593294635808471489674483830485042991871794292223068475147274450700361015557255270793561014115178194029738982571769343973243238571353073133907445113207693818453299883816304048208869100496137666076871274787521592308649662777487626319831306687391394505468292680859269790534614341908948331682201224453250004109762437577764601331346542979453602826375104596435962030822946511478934049128719574394107669134947114949184371206135801410739925256688419813177786384917982257085518902681982503982841665528478318987450011849293591486657147175342214417574408983839016586670562736614770167294355862812329649669550552392973300621244121643849612362533885915878444969717485229736350579646884441551716081193551655267004835586247321534541847429193890777235135062189170043045937082752789057783371234203572556443275148719325235413799397761603989421010012472196875646714193539952165733356409960743787841562786681952985024827999603480073779528160634021544376668890566207133116150693976675302878444484906868639426738070187226406836041128539802430719290045656851277810606827905623997504363653879179760845146078272734615374648556895247985227411905450086726381732662562311376881282623692880810023439265643653064649755228136146915922412254105234861106849975823747218479588307769451250654697555268161204161318596936892513501924768229775465290275424087817299752522394345020742956126596967433497774586847034890501772149222918593384661916395350518330146907614886776183050006868755496822321694965411312763127795775060534357386021067502989766498194604273223526334223994126881682352612713981626921524142012964079412837526413987984000197099993883785861982976859800145341968633877671292960555998089902265637243133746416822858649230048431281562243223529204551321023488610055558887364635668906073606372688439020146490626457074177125135662925738092635619104895968721935249489985103201964069472664382964892545995517912009608100247610090168296564355535992317664469171933739915994093501017099983638500100895226952070076656731047385898946063343956631650246365347192439194557119660286260929907722266935575008880894086224770992757505806701024088100305388388402295436601637207487532204552986377359770898172284635109955210877053229727152795649348234595940835875859750519939557142998790809909323377244189779966161252528306205775732945027858017466102898774296488354155927826298863692051496161133363363874527223126661844504348039039043676500984521710176447535045493884408785840643880196166315278756954420237640832999403732844651273966682148769389890118907817395219376988007655363295927682026767585221270725644625867965765653360213169624589789548799083006511159795444725333990450864655292391037248357654546088378860228177199499780935674129568067972247255061323659463501172709158187328656186070173188302152166834388168091622017107256501609461882938087679362923382320123681692331632835177605484531442996875583257921875615128269491963299368867226027885353570317082033693784241063680443876709276852524173909037048729610789261546486234491799522609620142991034144720457304869633519881810879824238843409142887158208578854177231986585240662355399592024330458908927225075231855995801145127242300720337665228247835386563506642632650418489719659846261014579782191429160910245412030373126173607298832227961344983968498422336770749987894600549057449478327925517093147419974254940817712740457017942789779569969564404677276962419982574992721442385276849118796522567497446711691173846552314036715815145316708591962153958429085266868320635169852037314400494827977663148440527226838278199666604373996900964206385144483922143255888084538616063931833855658494255535065914132208091312891433580920681216146792846750307745889335923519420350151818898331820848252554512276746979988462533686710777826166170636784403519714682131093075528904426362380084562437192680537117113494371428859039665319546297720287281535446189403339199900308146668533443953042534571820036841462290242442499887249836339226072404676107231529622615723061549258311296591652499470623674638125364353418768425173357661078244861575702490053963013207680871292688074252468143228614745293211139402058720014578727651631790258200910779210713209044639935749070870126508654668095945912225945151017539154590423787652513112329692186323219198463957128920312895282639138366107729876170473565831069097193623768158147790496733382490829485086572283395669444823771630026455503246131155831273829954011350459906689131468289463155424509393289451839684456766781641757935861345939447069473489410527854370029658307429185772006880492908940449997938600779353208269594231152413783229292491998306524886688720493403562296107811367482756448610881502919035578439908724454958636876150082159252897864098462835958702971695394493643991444650984810225179285604956844526575178116743854992046001964884919673822149761106459592834586188915742975363815584762036711742449108460746990681697879676292485176964283385003916281377049283255013904144464000265471970336341805940678761367819380033800343032621638938229874278890547585905777454820793020908082106299098653712637586704049198570760461609668616333101838526418445746670308445723506122417066874479818316022790798688100034702312583234601776348154906994423802210602751493621865074984393356561619745009847655893527176007021566741701718188470470209825302730923559248296950730740925524520781000682199659913302873199555130817263209798676878345800444330948042928335253327624509069304773174438723908336572921151461368796027306175679454202130755483356594929379670117066412613709860044203603270521268221631120149208260627023884826702110353508101317319403623524398631254833904828967519905067966810638384283026832673677669900928800234943312159636979122618169923346740325988390312733283264389849453628358428715444135072681746388039983839189176135350412296588069741486728894303768628884330390508512567313897027321112272391289894500540494512569343444724248237115311461161018628688315330786134124375149386601009147243659564998457863583500919094282832266029840336718403552742294183979094622043369573311598409287409512758164945520521649999192850121661838225072086290256208760869118527590324329016970588929653304618981549726304729156079664939519664592452369592347548906078576026926852064419207115882896489580631663940264287428395459484942756650816621667604088957384396913156770753348448153176605942133950401489785821064655614841952623081965621167791629385050773438556358440103438465498012846078449237271307819942524822999182405299448736743230097401047841795466759486764015440122700837512237117421521556091998475067341683712255406645676188475109101870011295422297021125236214558986959804518938156642277157016210037740779656836678026480856725511854744590560903948690883088550755008738559214802436794264077381986533289947564873082478563834366115953450846092153561224525605871156595695370528817684615026584448961381340946973892627958509882939668394484276514990452870176187363984379689830463472426579648540076695124077505028833335531048210629045352619808416298859616747069993363822209585930081721681606409922477317624656476109424283580469307982470756015199508121146855994936795967687963001244492929808170937393812718818710421745497634538724987491016781588384666314524842270708806864307735532424060533896524910018418478904380007796642940991634388439418690165897033872381424908893416991389340313839632856038354863105930989333293065970936551387185185190812191779765219209431726574814121850214355324861083855251575692421780516061954675818792304989743210630535529159119980386220798731644973613111829233918259683540111957327564191574928061688454959206587475573583468106823586819984031282178323471129112550061918068067568097837826352227214495117953991248788203884535777659516240728811935821413218940867015990055791747601232142986309629207593246210819940909898233239786693011319511764159873396065157376735080432020043912990400229919256485418936475461086103847118636531429660561327620349788086337287883377596200578539692549975244725706670761205145964347872573826778645509624594395960241809930274716687086741937111221387858862252445465871362241119226889760633458044391118707791420896029232078357129959264195092260673124654050081815509905910701185438555106547001800803792367223455564687378149187408825469484574935958293212864836915046697943852592116699894640258816142678163040664690961617442737233500701871044365133066420130389781592007158810582729725414073079974134901881477233139056585031288702103353495518253186482430441949847236697161248840592859854350656258963536034138533111357147099515502214485100533563774915946765745327865635068930026381634744539370858032010333643178710005196079819236129394772530527370727475120374490973838481990661419968691203129322596378376476803310456198987832542826305133725147766830230392600696448614136903631882123581157596709708366489161848519799266662731769328735253993783817538045369935247564236310120883497042271311306026519623344773668547135299907672905125739804293337410081793273054384228765280611449152753545557826970197554097318918984763397638561703799979419832045503444628826864231064577643293721535141010198029311144951537047542290636512608242383063087245768708610909959945907126362794148382416395225710740373502290968077709513531821656994421556123296578075650360306675444562543701015927081918099663646226900038473374891380863657890006860094385763740303690034996610115141962070003229531024652335817700172646102201025112321337503685253286830540157455337354561370694937703192344619883343781242540798809438483015107595092776038799851139650900720656567692473995769947760045532128197123876062584023721727545011045702860775771788026015531354786159392814650608834149673024388150750670780246216345270863043057008752391637662547522930271434989896061017854089103397265621730796652293070864672306973865981815019784035644679921572464942960025913434197844738328393722800864445626911300293386392440966377286654017309879504593245932357183216522743876924615720138514018238063045579036652969022653078887544158058150320592367464656623264782111705821768908817523356705574556344286241947290906887483561929911307544215911348007863751403562779426521499107936895585585675099608513829003800694136773347428240386517719999150435157455009701515386492422671696777721528027303659693508646455010770962562364288878327371788908409351700890533730219614849649213548408933147015249824862382555454746211515942548977569056183795423743119793350516489787494285123063867906361920675659930425584366534466057291650365111742836034278643407237074484772812325934806112378859679975085128490213564617033332874259344745658690104341294930643998237175989983650380821827053079000972467775818041111328407171932792890519055046157607601602316693889322047765264635750900930677059462786604107261259210543494355711296398153192566154836717721543920688717180622316347438640356435464742593626739722556118649671166146925606546195107983232710399440559210961755875283697443649435066961365788133193150867177373225430726918642535188691454489420116992873354088507452832854127076024873982273860993207507655260764266430200377018221360575504033128366135905633119866235099431630487055415463465689492255238157217426789684002170101606273000858024936549965721418907794062320103920970280049674585843570462755617230566937780107615920323072386859013469893115017413082557572832735678640833009534785859498908904953648945216841558217185021708772940855377445625956455096166847469673041707942790818085280336276328469239675465194454456059957760835187146390014442108075257185326282906511025577489938702272791805956177749806210919789078765038567035047299558069776090487408837423235906912534527487706234297197501147072588815622378780850717968707498116238226968459749950332722289514204140977037007814579877317266479782483811661033795949582516462460336614523930339181024436493360752589964367605758625744092599823444276916409819486164725503619614969899420710808424859888350019219710824255380702603751271762788767525943456658290283998146095515708429258283288448348764254987707362330478332323220814875986602005510105703439365411304991845847888455559616624233446070400076253893771815861665974007559482606023147452296141199093890041255586198951306819139066449374589206016359838885586947528223234074200360407102026470440544021464753454599334227475570442408193656657083117559817650832737188739820093784205909997910752023324077778612085855624406292971696620438073748715734332053221556740129463443324324780285745491796030123041521377350760180481180928322965077870181787580004824728516560156359556800183757245819202736046772722502405207406744561259093486701341429790454990347403789891812592673139855667145661333664589037791493970204436939704627543317526592997131701945848977448229716013016678032448318154282679705034348266077020149551630823290763965984040711808489517171283118516486413817063546167467828417737354942196562231402941628393721412225726860232070022983776120986811755159094202757357712819401139940988773393208637199346718761788259054795657236598904981267871681127642556254479063976307855073094295968122681069065915831730909869574238358797808854341363983511682374868620401816804152718857406733031826360441693126614401449087125357405114030402397259328539840423437932366640719832965586308824584571035495928946521043804777399667087323970874622379179435229041726694476506741440414789086049529817157051137877416654432682659213465219144079604170153299657677039995057633711266107187340583120260104576510783123203895310374529618876823668429198174805749387289971919728752524899541566690723994638132847336106598313636016933819258964538178793481517608147696722611558986167883756257033167349493535473271730461529594346902862996966466383341720922280783076162660959029297220674935014614734426153551415575684054559549434262950573316998754725258246577056508497366185643077139297539389054480126247956096571156259871114978146190178992047791542703704842363115893173400051191529292714580307915632188203568262812548992664835654140143687739920624220033050701881746436574397576816123280748681888144312471789987111845012504486273905462666520162936238282899950124036011413971569788731180013427511533194944960044065646363752107809309348429941974895340775869790270436133257977179062318891871544460751158173443541466670285352832611533714364177122387962950489895756373914013508855896551563887690075404837863873207521244723707812465221333825871893253783069194835752025620562951257798271459474058132235186306286519155858958299658091209725423767432827009884941367195190507225559394511287014852405294276237547035093318449528883153309947461262386334212071554491387668300779099190074289680780581961133286935759434614923926627386699470305107331215124546717744669123888643772666603679918291828467012897122958575744210911863982196329833412026877552038594218682043546664352575078627416468567290294952309152445264682967312694466112269665051939930722853986423593618409043864858693924396142665487174783441930831007303671816383775445418531031530341754536146815330214324596800199872755003277532609371127267162061728394420893691570001863499333456992215095210281752467446091800295496026174254436118147111188836524790025232703941898610670200684837606521246054718769451419902276204021418507127999282071292108966612295830464881339979609124533861558045740281280898074346441696752607507155174708681693560791507024703691974086450464600837727314733856734241433914984442515812379493954611274856824373649575265157211631555838400877891100378114509447874059254902752455748955443265110172934240724321719000271855774599186367764769496764603306584730973196536345947312990341471706599446725191563714790383992306505825893741939167412489463595142481492776696562616149743055262246603453806459844669829618025223379031618595992769830200470738532267967480737526043195678771442436715058718546022908110010979758382182848826525998901514839189179892176522579946858595505203078380113351395309770861976385498917024924824900282539752400150611779789298157523889117192653987539275399376136494635017454966344878627861652952933743050659292300258368877099693528103430885113369572809276663604008156048574921098304101413917313854216936370739335210847058191106037967401335676420447757799743327603364756008538369351397522697756585067225587121619718306188033584221220925091239081380633171060543713854213722200908906607746842570705872277020856891113592933797968416133965665990054344235727193483913516284931665883076513722571425484651965149324179585010144304715716107017610940611658783584812591962701698178944789455361033747988513604634929964816800869922117286675888951156484882381318927554757223723117484899915500537462290084131998649765303662817966847202547541179717431058592872481981801720760305779256522371909049420963398256281554608659346686506610120729010722517667519438799951045077983910351212114225092922370767001900322409902698164557435186294141519023009129393329031321560535167434835640881849392559652046045992798247540955324026308267336157043965238162472865408144015981576490425032153688633602560861614652937971156239811444699228688574426137850977875923349971795155015798263632677104172859397237493589999292742686889107912922388716233208438729908154058852899690212595153732024675990428531764014148669300593219397567781913044855751401597590421121438789094557417624483705071852463282307330229447110124818531053441799522169855133707606968529403749126430379076534268869167470837155789684286216582342236230422466206726201039634224889013286950688210074557614387364850045565517637661995012948656064922397701477903312797184088036946480342920768055233530967761278097130157098721082738715117067000028086431743307277625444221398836027114664062104705686547642923648086610021960866227041957492553938667175372166506556626394012674847168032001640720803450348383549655587829382108262954407422735749015605200958744446675802805780832812056632833431886855199000524530305926830214292403167859745856906661516604270374563176983303790694325284583567564584648847850217267592732649413026860631608086046436618679241629796193934997262191999746434320056859522731741405666724539796955816032991704928659473956941040360715728600717074459548019731220220875106761183919239903875077156206400989958387761353432418285680041521179842274589784829192765711902449179148918375023656216968093403829995888036325571649668624984108650603977830246299065664091366598605905699668387071868354526608283598915436816145635125786630365000009389973941868435847474054253169661516861853260172964267733030495473686655226121537468367155554391377844344471474359981158936143212089899418883063846562461060773259182694731548282942479145845581562447887967948932437352908296600688537799483181929852320627224061941464491134414009305841380847456531178419472005778972790273791509749653860064855625011693597364508790263978872611912145063662161770868776866947319789433280888085445886376808350141226419036330163493074929103934474988800379576741540302290736786659222680997770506082207159101064316076038237177633338618508989863137259609049442372680476434961662529729330181242725259820833434878518872893243237933208321119017168677450878544703968551272590738252498209493036311349245911293016495752322066109030443953079855950602870004816504314125964359160557043907541759744930470298853827167678732203823442114966039248466218180960709465407840423580611705366071330075575001980437051352897029757472212199408367629556495550712214171471978267483180940527990905134147293081383828171438690962779302911602571887618037993299531108733909353198360103264598287770329379511621288418088124278996256537327046577947639892742720677276091140181058818659751272272514916006733032416751280176518256566892775728663274742614750776533905322934240984491181505234924116573858909071335031871831915054577526293239111966009966778638183433883955725299366486303902510237067494907796367951015711448539770601868808422545064047886145582215216318560798961722823268587168772668178112348344444108817173814366842546085877154625110240667275818862075426292873283830396250293930897725085857283668909922213055140511414922917312796072481487605878001577127707229517521976346289320773660266651652919749371056830910446240829711203595149596367310419088328726531390962725329893716487171367685901516911355248207982683934632271519866999253692980147451893233986550288556280521094096034048119144136365447288286195881786969549519219232360995156750917954946951588765474305056993136074359223538629432727490524315645657436205746738747880021081066219338656745253448670783472788324316348300163955047951829569636309995093477234936130311076893609431912230106464293287934571019460560745276519786383338081172546202009254247939173795877640546297216274444355773816432280027837238554639231758975238163369964280408148122628625500375917798128528891113445548078665724919805597466525481220819426535894182228426767715701371947287955236323553420895671264866822235078973925401553264642701790816455709860583671881055492709018636160396334219077269843694772859791904757953016539783375747451508191027304771458241589969840371214240586335418022941160961121998550036261135399218314169964113009544413249113362036252106149255126195702886620740644452261684301704418788800657436757704034712863687086787545548747539784384221686802581580637961525817084450972923365310626637370045396783814576488374402746137361442622468635489403631140866133780493956495040867490577388885048705159628488412584578487755968492849372091205664466936271693432313032214064370641504306418562162115155969623323810746617804427869688747355380374382724406502104208292291621413599007109900394867495203150438280020840094352285027340982475892882749511943628962135071411958848531449832538191016942660633940560805560762464429682945877820733776964609230626413673134927102575882174562974160029572231475831214287987872888115714254235403456779642663018498101931395217601299384085857965527129811047156321098437112221847729883111396670555462570449136931359106994224179247853552348079794172879337137701227059667432028691119146234356708478724786929480651442545408918022292650973359800171861392489894877223529826569392323485989934946432630469273130708072341651513631551245536763971355371106420085336139356257615554805111763101561395037703069600796079249296744486422245034762760679816539077600654214743850100426064416929287263718846732624119766975012903067239789885621888380337027431963928834383792390288728144395964021271966355535621142900377471253089608185223344976624973321903999069402785733238072818596983144104135115844939270254387637023774375358463129812069357135145373856544587470767534435701056827156571952565960225696980114407149440603356648166283450643441879195842165848829633701669300165102024863705627749083317739049940780576931231293376606995219695853837941194311838117205506664446745881557766526189302930973724969678652236697869703293669656073572442705848494103563317667461734466499633314314490873687563166801640824229917560036998138396651729839289153262729720883177870877116233850374467284727213828537472588121330639881141533930033454374820081512462547655596463694458638987412266290915255875892404150711847047656652059968240554066471269981536370137227179893966134670435469638609211370993453383473782488402585816750773731885778204810558152837324242664660032263684744160072093587923363190282624406734701452077447037246652702160775886282401921556301098293299235644292889648811877032053415203119393392505043230874910663212542433445676171141526645277069793066882682613261538830911320430810248518470351426652202172476364967577216807837702557773764608553956624265546150676581135398152750618475262135469443947457982945066847431580291101034039329140027378374238246153112417427722582940223026903874357161379101122084024357663070476972323994027491146714277483997712419956123426824629746178048748064736439143545612222683935683423157692473906972486373892172518046279057166480996588661509488595038273400506639960525914755396920290007153887040019996288992095594676632540238798745259728640125170216468653973307654621956152552099452059251601325096700324683865661443846298074009399472903245065999253590087405992382278355046187616508115405595326252550100386948953021597946467364815084531660670918384459242959559288227450986679956457040570780499500699632218994774683244595690453481586438904785145286815414130621540352935948168537567689516256909570610507196555907627150993711088134794445417044470628039443957940173077806388550033081979985406256498158304562089487292280130488384440948427682565420565627056050312986152250675604953879812034194209005451733418172740284185473424513325432616044069011715681896339948245818871933890881162295461730371056892498063765925434872091169610591681826855863991449285737852132210342496507420684781555769839630759338323120325394228891398129141999877245757922860108726837538763558455878407068603317318158630970553032331359778173162735008204574309051705372398386033478989611030482782908852151983382579238797108529319106960127938222862260839196479731467220395627983290615185829141429902456181485843984914051129415343226199228854476378548467536002186303009181159344996857289163820526787965954954635605810086595818575788670782371272898670489896139556786119089620774702319689313150180291870330317944047628325061414437210757350711365121034620560891707460100631474259837862444274521519878167050941346715610304037248288491657138966110069848648175164195482099546697097308059195982328577019299392558184333867773561763150332739245222540442538210720302788834140955206186743303953957893741492472158412827411046207863053144159906516422883455814248836998159063654067075035528137202815696562850086490149863555897054151292036638207152917472112321612246815270900350732360577883234908438298720225226541224421515853698597170670356956841214413415872773821512583108639716873399665731068221737568565743817057591366651705052078601497389372564023946334784942983091259296724132306493196000735984358883742901612648121779135366795306448098728467727312694527345965653166057048084773355199806529064356307859933083548738314591274603913090626097197125107565406206832310386938075029564246550267560562838072328727970485278170273764599551605415348088609812165968335752216445338164904449294529802721122646779285588446369672803553618025531959594290065879756755538347255418614867028740842145867865116490854313031089065252493672652570652487287109818973436404158572362886621589193196597433507348650849712810024899730110783264298137083805337473879382805031117558102352831962136774092216253205702918730716803431018584988135750960099059652923522870578591924430852709483291227969634322767134869784463610731203543017665854693190073992097591854473300053296308399125998653548819705450600323318969066858412614604933345885548747126106842583093289659907140145649761600849448096935649665759309459349275059318593397361306042693994636883395476622036612564130140411929271376255109106550099692904649643294451075196972950607429212871316539907578524462854310046015619108748762244749822260503067719572520101007704589454480626313279536279897476452149573930519159774518734858459209117757330494860331579768985707445529857936493781499903938449185183417379929395286431288706384275511699215080953391271147590252261961112198881100893405160793262356696882403490201666624913847810274414141733357454132251904507167720652468325735615690967573477395133956349919329035132047943134510223989937978205735028269997274381435528396431712021965681654749510258325672753456214085517745712334284618266449557498985870135635297149006727059013719054021579260063508074626042438990888855814033565743134625120564652135388463791042136548297054283598600928364178411851518886335174548713160978611335346780834764339542392334434261300840024820132477393244469739573285738838827242098281445100084782983614757602885717027756299699757698945144793386826370037330602298415253363597777037494882913472834381132006010727285185561988735025284047479871702189329736981780124931176131682545170795631352950629784735897199024624615140191354695604057390185003621380677516274392307216985526048425774600259676207187058099013566548123319364482185932440706049868943164727466163448538468614921130495644618975111192074226914509228539844008722052808038141033617935620056225662448442019244814821301846442077871331138213565807566616585182544540882974890926867474089626235782463521217007680233180870088002975664757969178818186446263167910545127000303703304311411667777049342562445956000346357993096601795937291510071787606529717763921158652645580751794188246078704747550985180661604904313649582225786765708093811949891375929660821654839685423665361052969416414092882183902470842597341762962150593685890637109858588082037490560437125415308319624227165761883784865196921183299215434940843482126020235831901437460885294129804592216850095331803812836790619180093253368415750459239107705252850095195702706383256802484839631960805849918578812208172191823619163858937568101074809755179068448965625995988563309195613159242930794781601303949091006265195265128221695021820622374368986819675934073986528873159578421110297879453825139851569854301249740598230173590490637140063670700278321983691949115068200105253005217104949065402320077395314217749063021652794330414003320645414620955614314309547149129712568805516294923346960839932343618746948380749000641658578379999785092207317909211005701001996820856796584382181331440325476053723638823227619060888353046915946528950598333469128572293520356247371239064926678092442189875062200374126317879026622651253211372462280863955346817615846170065919430368123256648439817326402350530760757562854426514961043690302018720338620874914608344267795210776694467597056169803350746937591466415249624455770256805501474190519054849057057348757407233676665220701855208908795723747500653421591910095270623934492570886953360140396580075723741670401302927501126387237506723241367785431080325583966640755848373437699978755605923613237118983202753379626529839017103131712781741780579480970970825451607148858826942762069572422599701702603662740830960802205815346978020421879504983295431615930410556884128488674760768729191447550563452272399247156416148106381148457810263555345632405137993911356295979514640101767820605115467741778576708058917937259593245581995118074817699282999820783894713029746650951596694120768499673820732884460513094151210844515421371927087251151426650839949563403884603258103235547149010641867221308070816157670176512652242508804499653123588594598576072417524434254277594566432738564159607655290287434405643648559469074556755342084285388025408361376749892217659771567646883520905621535676774262523708616050110593903766844327398223705774603338316878508733454243939250391858827480312933843692436960990739634507883057345469538944068452222501725434916954242662849339563558806496109049830264263351603126555153831994829597880417535341322861136498962180838925837736820808182729456465463823583954604896213226334913868593968368987414362674735491719541532906466885005096622632042422729892646940073077639475715556472820167309385179329406194611397182541141203076313299580688459383938165531560401198323538608150954983674281824901031128840098378690325289880237572188200802415752406757286970222974629056896377019627682572705678608887158753860884815587782578502345352058514972263203425473962428728287711700239471514125517041702257644239184005177726447693604339521737439875264019128672952982146253066606728615224344315300752956850179187412067067994797027183222504310633383493154518353251045724387571194881133763954861151921037106679123888640461815803055883230825614129168666747250466413486564094852261782928458510621857114010102202639198396581004052214453747524967512777755629490490136087424098977325036914700354705621595550875867692080598919621345294346505623900556814734526299014366599468121780107319744829215003411832771276809516113614468694972815391529142030699183935735912016440587312715757372340192773132114995863347039045265935636927979127728243705198776789042195467012066439587009276565010061314675813186537092250359859154337325666653194592397933387124294775966165621218231766958826790425542630561582325651432502967524124962829392306440953472505915151389447156229487022584214585351889959467093736100146859078950926443636539262128842923065706623412701643015016599371445097121483108825586497256731825443631981815782618265982111625203340955071017825048426468230237847893034910015517598520847460578154533753255509074261130653183444131291509295021584886098337883203861083392115834967720802197649617679634963098024359291927420581413584653710389219329485399741435231384343471447766555965344645494976656649900310164922898146505057617953748639070965040327348417756599284315618868064415222427892830123722318547991974488494815439712309304753886494329066480974332359365524774546895635155843490383583718007959823581759952399522840458468568925753481108258093610358455616325063502804353877699163639141088018639932406715896577837684795730612955512061883665846366162832516741256117772336366548509582805949690808285396317502255942051063048678756406059108807163773681148239659058184003208460624982818907044720422848262384272240893757028591554716962054497121749032090583199430243385604435874945797837919849486713730896919737191473975632997601154824250132716832564972689247981108388679108237359863990901249364013366006376808707389979376286029288795370128340767318106000715424566855602776793787901500921011266971737435716859400882068021697748161720061161470819725420938236063492594946633455039984334522886560688496771339415561759279260688085943511512640410254097144917325688443648354603828985542540727712689631447531937533712343648036177264744249768638884329026367143449495271951681911056505088681817903747385129469333385872923736022529104865688930953040452696789851711617642734623687608507248026073993890119389810160075219721448434595091882975201311813835449618838918404439122455674645281805872364476356541325883894957679101861427037665754957011585910165243738801192949622780876254526048118716075517425412931904124186013598650758476090300194943466008553685784182777215316716392961513906748827898398453900455957701543389972445307910535031859698258831301446110591585959281096491911180561461224886317909616797972450662119539767655961835198322029419491915771500927980285845219796084135004394287442727004825688494464716720053728622791246710113715520017399316778666478699904975477731201210156180145024041537298080285145646873630958366232734465651278381880873272312392147998949178758774005048816946650279112403348114753406188373861717515788369174239034322083593016839521203658440433024765050640110526485164262015778546289506474089934961401307457046280714536684839191746428987597394131591571331374869344128417535560647735975357477516662467680530732272227085827321850862986507006137310885123588582552616236292852616771434371065241045862394417753804915468965579473407438179435208022404089593796841508436557915267307173288511907407209428855109074407972125070045019242633006213473417205302501088780368688904392506609204368006255473927367263417212926956600907189265926759246768073087705700982180181108880939510798262153507960949380243040490320362892324854406221550788509349018239372954362842177689715780692802583368000043410467475672916662234811177871430890808748556710096467798151403242382806068683295862687017083928210193629987364945546643895079118812489212956119741624191907127597638867523572074098558219853125045204683877477938810248368616078437549250050596082128783779435572012658311081499306506837663864501437781988311906950245669005902506478036259279952475865366486827451480666172357712912041857319561679948572520613258067656246741765381682295321378495996796782739865681323506567008384601851366855096187468763678588650100499693618999225900162018835741763334075051923460495534031453309084475865470318111674015710609897263129702058838061650174655315033055572990761843670699011639588784414031786640225908611156886420386636226271154379826003097750053997099714641449194214724847526747685947459568257404255721817956179079415404534237544562924844038633088952213632880909314624527522883627296351091861927685079233018898655659103567607862220745999232297393324464589062020948751312153965409864165078395994600070145351914458098762401383239491925537729466898397488993028365282601893555869171820502447592278544850491669461849583978742078390688350639774901932745477216796038171929407460101241023449119292321711117934852269934217027085048664296306350180589874165213404839718747378212601832508295247404689310102285981915094974894802278409126541749212078089205630839858942362659210481837098279061324658104035725239179925266498639202257239038187337218565797741421326389072169979460783807159479152508804924086426050387657327018382929371582241961988724422110212004158077744082265227235102789174191021665357210131210681514995168786306334390147444668320979454853250437086535110740892108076347252325609789311211224703307787483572235843394949718315473869417450041038316307939075140558920010321535424077047434720869106959688195191205660858762862044178053836684270308115112363548579729351366165943853029168897977591587669195470297840469801395198467164360214534712614448050049538343171852441396094110339924255260590457768023483270335484622209019600853336966748673328505349306860416993526422998298050624047388167669186545024830378000376667747227988687580216024956682286505946978088242330854651555481797669766381105568606982181872443099279601073395432562972445483274555944538060836517883302214773224702549475703795984970559920424023912031976687927936386432931353330913928537436261203637798858028875068301212586458504305948714126042413156100844407611671306768747506510934767231138599553867909806272526718038300616077562318734476866631550062301326349226431311463674708433942307474633742986285546527751438173931088548302359677893542694731185884929120800511334024752102989950132261102506593984058209583776174776573150810350024155210853655705929154054107621172931971250974122429908814215835029945400335805644345408366804312101566254027460391327444682996835197801041892083941285779072954783927899628776292522963067552247264831712114130715975000595375036030741317709556785593993383240722339128420748248842188890957962765800023079759875706268860405861723940800304058169677994949223278707853221088846099838055146650849742851784668523215693715092408799788226375011657391958003270238241074252402935828198600284131929504988485855542590215412898234552739993313041041677295443595507509666185469680830654242649977067958317203351981728559710884191994452874012770692094008262005191682442651652282742262673648622210779842394927403602436572436926404868204404492897473343846058957836277331043719962333186782966420398221326520299204163742503528079955385276146113143644240267953301290431333207288991067762564112239373152304210928487642255996587162617631843018308801404102235355019154643349377604726481492917110673220628891407058215645364430259120515063520518363164373763562903406517352347113565596152696213022341225119885487933526649137156208264137617936029827610176513672028496051819358880670243773031014624164996014433834020282608098808687541273342609332064827186894935145000719668637366791777406625240598211293253996608935094034828260706502508133572142118463668243373710064240804709471576315869395288000482656444228781529817582628451702885304020582952634131440206592721253246161636761435730268447310368470017752607208848946206525328934284132566190518705454795041090973103086806150054724671541891588984082166566208549473201719929044464751501738711651024845019016698081878989834347009684344312918513602968023759118602079533308440291865327886854528249992118574449929706039358130987081816658988728470708710678391545240731860714618530793200261639153864845794248829400771676393215718064966761396790000081092446021429171453054135554243990570156129761431661971443248686062632231574680331283851411856245142486540154412656145380236024723948480742271833339841479470231505701643508450956382678443580176234341452700479685243484153484036463601758579827467048358620795291979662455991609018014472862036971816430459454893106254133236740869261706956174667327512001828456600932739710223821096833400724713928857812018791201942523288035388690201536482123920756634745126578659832264345175362785220631455686223734931522645881030874846963286889495689898614958481492598567865648613968116503604103752659832619885303410219651170096443352942307472294462683736379772490541341059191139433717278268130600346113576626385818473044566346438200122953622586056320001917518451581519031893494672467592843603175809598772723388014404423556016885106516909202059330367545716891124311570488467036128105982832454058435203219962682073713058672269487215038103006203314678119373081142160697667116330907271769470155242581989439535337974978329071812194614538197151923459025299263891059588585375416838656589750112884203495846214317866301180414492057014171018346143387332283557347193476170754610832241468177056594797070781958487514660143967123004825510563063380402397078056965351524604201145989074332388695627987266881543390027379391490812184763384388509531787935870580425435257744239911908046274026208947681179124752788516569806349206571748415328678029309564289310639915861227332014846165540720234322763566889706839070085391770457609077646424972511508990005421552401026822066233516263000040218325976406099516974770670152952003079353412003010740388278973966422735827667288319412015101057759717053046311167429290982158032638617123914181733372465945988869734174120291463127858444735374545626094460038003135530580156802809938854938018729024679457346356311336900294654005697195033153926044524424597493687706366232349478060211689811211022027880489995753846454433870975969356818988661715701868891202912481797141371590634722538286677958014464291196625747042818509870252899613407327307576665707072540990236334657789723609075894597334252194235638695962911901235499331713522824460921637644204717345524232748784138314949689947895898863815486066290541022216095445135522210784487011849143860548977927499647003904619351326819577818638651172697965973404217833622000571987749748312979139980446782799383487465513854802628848135360501984388154001593910261824412244404410547392171846758588934516909775294050842276191753275387358509185492419483730799918673112052792928394411861511579505573510529189080440637697739146851810939053957425467058445558062140557601030427330390076675631583962221665324284180468041712628088998492313813888903636305805137697194043467039906584187640563853793687786858015727697565867047450829838699728876126893078808141881672219089137383924838780223941171322505506308535509950196633131372422785467523494806526801962256471828241943025676422148321183210298511805136888034932695453180655673704000714219585172071650852683913308538041159398244159521735851974554350891230437311478037108352924117701021335830453377209889807209979691797182330786996965794548879996081801915093985732714743307042731951022612606999447218834217197754433947209047265310286867312367370261366185216499143915316438123657528690726279409188469077593441525302814243355383085755760414936127059990014033058660516703374711108334639802508341598912032739144125580229033657452109149449552692065450521334711210569269494541353617335220489015907971102967182255035236145193200760454833315244996409947826525206059356129824215061254630214044797994475465381342810986942359311172678767573373604302175437440730617682057482883101055773431012059564023255400504708613103768189687705017930217901820109652344594037794610729067549423289644647143950838462105108231251407315670445874896146620724682758944931831868737601423229960383202723983425062820091661972962767206652528035969517104133769567074708993790147898243281054241967399535790846244114822770969802539370885397988501027497662638258833019199566278598616196120467116225817518441810985245261139987423305782149133624032669139278569246429173319458820132078109060633609510551243538753652865048941120552679040490043920815986967455949104279934413489404602787053823565562529931670998537978867746418532478258364305779654144669642502161482946504475608363354741610279958519239354669069332563187564759756564426925031066660818139232751946972034440662453271598758867988641266680748061753289897971725112533401909258074107264974886268984026116592572848062747599095136496653036983690488930878744415845218080255799736852441646377043223176589424237443663301160338154722181979853843262408492398340118277057837052201762678766591815029736652534766666069903208208729635485694505079241981618549919200562039037477634513078298164729505378799875148745170658325196522775094527940790505279350703324589999177597386144514714431839673099965008308044180564060734655104854632184534173033772091104463455866135353691068813538166872603014180169086547729582849957819058483512099524342958470688697115934965178480936293582920075750066907714309254141630690048758683498996312359868529891260831385533349802165963852581150447100161873474412254568220412128289660349376801970689411291276642867188023549651164037984143988208230923009969444150156304085560288307191611807133523728118279415517510756657663161776063528920798714387702858441588766575176454056356962997807403530771046463822286005073320374160194975053695211101976961575700014941510453203055058426876354600214125891493648093674152331062685608430590098447390386179741654779569672804484380538775887284520989300410366007026291056152673954140329822090406640971790873813854230791491286701473028489882407626314026908606489733744330471787954823134117257274377067183016368444664179740114872118925519066570451314800371317292787293506019286501713416184564792437195880283538063805305769186483426443487853981579949259840508425188796521568608992124480354064308643469659515728298690083394789752147648081193797463489849883151157005513094243658838930887965736275792583808068208632530655239256068458135805114239327245279741257671206702161740779287581080630110812455170214775175328871328226551792273446438020742477194649460343725381432337670164117033601847382346919331369220649290602879334178683455076263542674518805703841736220233911697534097149730519467160960119354050023994081689827828283390948701529157874220881335076158279417176713735446745111345412124847870875385455793886743388141804268537160614689959120494107814405346163519585154937456681520973963697791110645313373463071078903086918168948351564701879351224295627033580977094312264390188479966291973593402132346575988749605281314647229236903091728440215582655910278814632705588774119208596845078209327247924728599220460312051593789325371134945982334445334211453960101210184367814364863205933819851467072276889610319355078790792847139333077040288610544745540394714349487257516998993448998689450842157250467272464092509132580523286146448102179957573252977924190341805539141274627381805312858953693846679860665267728146640005633239446692518257303239458483085530100014622361563580616133724317115534963065779159546814400131457123676555917863591997615610355458180813170879716742592499714572098676873830336265013068344997918360864333917502717168431776852103242848223116297672469621040998733787660785277204486958298702350465571824648747047407401944716112038645727811038677005920367509789526072074944195432947260898248148222486441371977495180124374583131251767092369717339091538657275473762360589467032945241086727262221668270496305045305112583290366448045261230824777976463756662333829727946695739809316976916061997399487639996887903796822075936564856265665676157709937227925764348746841084443471438475268862633639260401392720401755011193542802053074592525025363046956756070673497368198860457333704128432750218563206448480789019582091098596613533933496003134564706209941585717433123191053197922953097107849541886992666441007263779288468886423713911147194108597344522022012003609983742867856656769166442599848935517588756707759270601206497946317185965384181100647353808574170780537802225159246591519014608088718903444827824996778514957196218210969154148817107754907339121533876703264933125164890877723839538318524987191115629916324116294312535118720638279239243615085929664825390586336456377675994902002636670071153398539124406319216876335369989994993988867550701595025358967844820554079510603058918014855875487098182379985476246793649750857417839722818368019147959302304145097067603109659061027862220275152382548820979972525208891151890223803583204006642161073961220170989682934924358233474910839255273536970066175198965753038030870555933151925592143083480132572887067762337648785058880860965050638981957674611832745296133267214062250205761524480160960430248143186936893358779648720300691574233259504850089186789494978852574083858347321464178161545332206688675203285330954095316874900445941087954151121638344810718993787415016737371157001560966834588418087936348002127291649970540920895282486429219758445547245442551979979367319589934659970784646867149001984632583243682959134678555497565195362171500308254290855203328365279269524766675454641563698769238315297430817288742023579324111484864161791042527504473863403028535081132918097733823091089144868878087664654653159531438210461251258523772496044285254729400589661869294793740792347161557132425202839639933883006629393712152229037992698921209066570068444893566320871773566608794800179297871982327169985335242915055894429006726319789791017759660763821373749135428830972881795390202742400650122099892724241226621575432319074128266105544538189855327295391787175717122053341168117606911694155940784352204158125258003866349452558047788849070155361500719017052585246601411667950597800326170074066334702390419454875526866901607418337925309065244613901919263710757965695230073437846369013520646435997868544580605603851045399628372481833536080189545422330162749298539763999165799951085797380656354272163130999399052782563687839370331386358932904197458185869098566341850320052337760801156851044705134812982646854404864272631584590273507458646646432654505333401715971593256034920713787137061023233483863570420296096190899536019437194723760411750978845379056777918085172680464752450712765154072508906290486134466075045910708747512656629111468515248134405255676699016771036731187578277312506596782978769955255420835702234835430167704449992059101980218623318317277501634526238650682634600361808973136938371374206563793863534983691178500061993382798989772813172045872115091546079614136379238023913917442339492817665466816413465460939485471336512540937066646343043264036790785979924690256991860183084201938196189108358991710653915650629984988593765125403269165914696277163941347216926509252506103550154529498978443440712642953630639004418136659712259190403661007267315029764325125183356842090415229047468150911196499552625233607971661325180905256686309109018730298599603761698653649674320823392869411352007974280990773583520410100979257582421905951172180601519237166316904687026899787042706900068933080808911050788019458178651625711510604854992404114245983260336685694309753582090088008247303877549621937969691978934704732547211710321116886084239693947506492934335614285913931367601251463403963885522962201415246250207052896971059659321919902150755214814467762943612019348110034091776249870327764965791949455252643806550061894253696461019765426896071326918942919461073793950363708267795692069986103124846744692752276462947571489075118919077048624007699158681527126620512129472395387378019540323036609312622632230174215328359158497139764415874320037567114325586333989599825294548934515612682603629999159504456447979709280531473592089030551806732497202437729224505365554600493642804141857907052153662372585556068394771489636798620270362719927895137272831407735471727341522019343071975402650078528949158678822720045416048698114175220182837470751945826002158287514387819762750515466632822840257568176317209374202573971316429891035768562706526936093429822924947130007981226317643601128705292650502790501769995499546032794409650807849775497344171617038472012519741208773161100741083346288220721207025465235188079028633993665891525566638727177033801754363770923530468479164965007885681851086672976891274093005610816280779511759486467767838071165748384453894573709102807468467005069700186540413231423198428154557205377661361703481221133860577256052606046912979179581134981419375816500702419112648738480292218637837940253973782576713678455310657475186454362494296146562346060591411396466369066176248535205244330586666242204934176409727012468563199101349403348291428696605416206010028019500171496773226815096030493077956079378355935669365262350859801164043095163133078971822279497879395408923739500522828567501758886354621388921169551706819246678561310368573955061291657743506141632343549110109802736027458216262317701431270500395197996915920224154127575627789815705007362371393527297254273484229565722342824607697835977827924506659479154856258341918429558520407827291564633945390210658013206647055150465165204111404170159607260175324243950866960986026424380839064756388492261260355474833779039798605508337479649009774108381719578549035016417743339004479567475447915108884172370518968872550388530258082255454640302460092310605336128331690695715744174256204204334043272045182635086777963061450650314358495369058474390387293158150887344682662425352469436891985447324840108337606706366104927293395945916741301442604202849174482046751177409170392579453248926110994064439644473694399129646085021169278282773921152699283861435446670464209171229101337888423809695991978292609585563047207282928135899815688082362712455281173004690611899610303051518915588630820759870903446629069675852756941040303353848638520585665504304671768845652715999848942144938574848754108496683355494558532025927817573909091391744229540004038347098095332759719185003306823149978000631499221932545934318640701036981542970757541108278818130694388819023853467176692867493673074620224735439046504433325356810133218926271630122059198885884654905153886119273757005634731613637514258996313792522595668339446255608647286473134264699198467028647884224505738552149573131566999213888187430220540145049449845867531974929518542189899535351489587844545265364668272330460263260222270382512399163961017397556763576333467756955033862856499420332384839523080544626931810251577834707350481053028867843345983570565439592765875256959081125573130804113771263703935967968716422387407464981694680727341488355291288200582820372894376962920258064683718986763523191097967899201174782128793529517025899921519302531487312605483807036094864450161194445031241531585470978442447202458932469693465406057830752460112364713722172892241984260419595238083749162581821646577357278301734764736728425120232302769943345628311362083816279355306919748897184328739515137476274860883304650136446529988727228595760286919857357103991689297935864150853932304662435381113114458664547980317884056459141618328643531751338490401389250365209981347144701238892876652948630276675827526937622056431615369548034265014899218167575448282537494551426505438009879963939560626472333894598876382355097318521725648208556255941660385968441125633196354513435790500538408417242508372720103531627222662959457536799625878588582586323001826436372271505856461354243968682609276089854385347680987086756785757262983666994458015667869966697045802144752931009129007808875077481542717891400441609158537349177057089614264721668485688306513123040570809007393445665973347190468149712504316788981877108236938727513033034217495176937122460529201110528256895576639483552742550229328643936622541143861927617640904396812574523543183249036035358262449576282754742350296655018270445819878286530750657723893491114000850766768036837067005971127310449352311422874611674888104945833917588870389812852206107803125633792565653295184521372078076992107327726530913714829753603405422457048388098964102025556893185501567858257093551975934789247210992645989070954731419275278954685798727828727787294659096821061146483193780323885680394024922691907383082590202391993304670511904343014717839807807231294402098995162995122057328771343267341888488689950515936991354035125285300096109157223240040980795040318451364485714939167911613636823640365261585348594857164054222217768510251576096620861568082542996665283309207344980500033931412199306024471469703975628865632047886299474364991507217483538348867683621554364866271849965781625298020091353049426165466881882809761703318078327726465820346085214234923032156163068310828075839426631204418787056211797269689905584479543229703186044732843298007107019362873020656670616920997647033914420907123923195837022611245492822764304042626061007611887506438769148818657245934451697894173553144456068566377932746996074291401354338199230210950563927783754457838861967330813042078174903086794400635512173101983118723036530218597261609026536784857184759885438872813718692083393203896011529142544116999288363210992362659480690966944798362700859402299447283922816951995671401088136971850168847826107816089069124748081535337588049640593969051635638150420656114028430299220986271435655892969101442317594228613043190940809521610098740944881711158210784288174264650018423056272008267424577505410655379621531609046944974226015666581673042341462415141036288406852094054194155016767914616863501875764461020179200549525568563196152569363747078812258945299577310344253561229455745972207361053804797544759444636656762258226797728288778065385669836254783043284310548248990418379089329545995404997460916765688811012299767622974205533956324511917554407140777045457183505721098815049709451232405427747199584449134970792025754872677345572252401122279412699774006573896035976359721312007842813801481343601428094869290744561466052155274064461615913077770556497569988797570625204233005288325983473140705618075722904294488902877526373184691063539667336442346577608570632774268359025647509503393136149085334855431611712664000390940324101731409900855581327986293448704902528995784045040106060272876503912254984581666779393714231856885462172306148193806873255892105309819271661966785421292914060591109357501893721056821009971221972687718126398132469873028812132726383312898648398592709387322200033820255922538889840513140799513509318655984195175189337449606835575276631735192641421808608731269863801486811104699111016326919200690300504101364614516331403212780481051459085789476036780048172626408252397546009499269245918152660498511391241066759590282465669083117571275938141997583968981277665604103489652836765408343968787617386538928169884589683220838135721741770350153493518686853310310505210791627506360059354866176983119352817247540233922067490729278582912285053328925429604692913124960160444002798027374072977901957445569443124715904387361975382488157435803530671150408482530413510960618802895469157460475183056548206451855288373317598501328539284049308747701609835721425677664948048193954642020774830297309833006221581118303166906111947281698301363631440778205866265645186571965480215471708265207772467512701852901153776674817326448229510254134529028533324548521260290395102968187913845069446014283470288325639027164584027726514451142706060502353301727968840574680819109754768403287089461339097739151072806142307182057730586067626535198697784062497711317202320609437321482550931629452065012423155936021911091531394532584680923473597312075568904555477773013730155010391095383215453084624749816319551959685310357897790260627436836058788341011075558656992257967064998256262811776579495510292364413639231446964669415805075556481823304895281345769246307482071355062312260555888693257865768812179547089115951416991845036143735100583794220614063407264231923639064931441435607915070021519081057957811432903207343627633156887907069124930839539812548532797161572458727702582779184319629447697243287590900585146416993345906900389002064923444413794258324084177055227471236139191988079592072256418273891498751449835551836336103404266507065900304775519353380490236909667616908381036810803493656580096333163613388980732771811113453176275870729534288452632099545566031035484952114185198121357755316376316368950329540853362726307617871472031271359980245596948133424099502947113601128832787191204925081905656387216214756077048609800445645444417632393584251486190131286963158600327431213591828887080878147769048997902596371311758827468835147726378791374879054508451160440077975900840682874608843183284306514169114827664216304406046553582071378614668129076133728542974182357501843967242456678271159189079392725535836998690898080456834655930227802007698987626110938821943894734097274500759981689461784993922979729355372847098139049989120099426497445660651072845250451175631307165242200682667521159942019628317264137786096718672305743577683965033855480313438190236941876394501707235899682078171554091379378163886677289569107001577971762488016016685102506218187757268802659364669039249679183353636658184474448564143834855230105973449070747240373441731002143896116506828092601612177488615267165111701540083615062036568742081553086922177896933346331153815657040994117894890847438148067011652060082521870805342391359848195212719739506442632057595522060231092034420624862489406649312116811837555428944592680813184350939674277351231420893728459963551707893697597593331117061549850713198933807902260635921172612712534101237738290920625956319207416001132798739920240407331303053640765998277922099485306438808421864950555475638445494590963497127376504012088053063261310037537694256476833582149252356923126687879540217747060003440620660107798679322751078606694938750641430602083558992817433999612607046801037828059728106915796386230036564316218514548091199829607787502234078835095367227415003913342276648368471808819400801659830719796952813088220284925610498544496535084723134598221986984264631129250413675756043380656598821527407932245552455990430777888302025921280051416263983176415313007153603251377454843289807788330995354362325152612821780086101011834249601695380825482907752923381019022596110152744330129745290580308673124766463645030178015067134503464481476587778544780543760081074650312918900284489635631696106266639390372330050672626511057907374630883431294746492622266278805339820561290998936609877833309223057776006326359075218020774054084896978442478114999095208154229562940123476290555711895623036820671847218531492890202274928440366468712876997162420545294624506698157583337464356961661471606456418522948582288875555455123886329752378879669410690283516829006099968116773361472266138135259846276608174500358472859208288540625297083488223390158773113553848930139280008307114544478837795559585189044196336440545673761160911218084048811359031955735613392458859460450718471362715438779069720817069279722526624680953061038312753867985359375330403796202924318249283971755901468401277893140255895394186050163597591646906306054752219321207298756336259298120584582808194154671519031376708135548672602085301443990150745738445382152410106058682847721022676750582541786670804964951529960913914223500153798268303618240668626267223661858434801295556572872019206026760632728970410023849220268317184906446466808623319079199852359315740933109904944624898364547928295462653460088760212609897994334246957499445754010805228877827599979420508801558345939570784417601151348212707294641153239558461129987589987913920184898616935500142245660113994066932035652040820619562651617216218364917559673339916518126555895834382430831506511966446748406405620129518108463800760685775760695073547034815573978410351489439142938081557475071983652966477320766058343673327517504935419738684355828147317245021018692751151392402561917088082356020728416830056996291803053009531547451642848552760321179736753100462294129593163772668207455924619921711532810653442778418612699970947934639217428858016624424608253107990939257523803351405021933321439815259203729191918013185771890830149680959649198057942396551603505137615080804021794001782096607421846851880662803024851195625738140281914706280213674424624432312890382898816274963804496734316826011063567952827204148052688861086917832624098954079361941660379989243870218274130139092755123990092078377324081746926935075657440322600057560279338602029164179451105308079155612793696772702371130896134277222645433716049323973274496667460879140060760519273558959326953889331210936217472115301992898369613726838375060873034830559073661351941896947543335069866693927077862348947038883780927564455905235510388420568742795669691460342609872050277488658638797283411322898143294441890501957218629711852585354151380348746542123758108844457140654335862045609560359395991683964344506508397967330470748857353387669704689940851028946395241539746024674225983702415306108354323784209991401076344530845314364742057649226044150208813124897395299345581341193780585598724064371728361709522740899064691813989644824038857996469219709465634444801117915802255904747816616991148192068992762338944543136034836901887119601513169076449126314938457813767786271562142459745743646498973901174015007517114025627511217259810824159907494277527004898174239621208120285711650909520125742823024482181271228511827665857192295219173681594989279318616972292109641030472135602168939290583086636588526068122642299222949043466308942027541824536397550801214015160473680568061632336669061607219882652192795870527375542388307461695757128323161903261103643969733476407465840437219950263503719811321555051578189751543526425318356438314473524366631114709508158380367657370045196373401397841429649536716131807852766669590315360988659699398975073685144099952431979484741631019675490957668308752940749991861749999306506326128696561616785081928146396789641996714588694887158216029295838578493017819477572335096146143998349709499488904476826401323669947053830944521243205541893081730246946082846998760796180922820725984323766587775638534604123527574462824785067813985192733917171601029896224128854655621738182800515559873898967938955219007221096894747806114406759550290172498346759791131520663755886731003559459858419796709867773080626442539724460610113219570974106285004210635795402503511986119772608193118797057287250296304834391618766297090242566642246163944695207996396619041838285348714278581369491522884233381993973520007834849768400908782268580255776990453858965477753377896974541968927272575369283353970052341885692106380647299929405704687395650203318165302570633279045551965776472709942562664549784713277393932290251641263654612171717248712917128970727254809610476339124261566899873226586316391076293474143886676646014423673026753990392844363326701680319713397261624505892987732797243498647756259944344307494580927451252524736016168449261787769202252363912273780337142038620835909522923660379561650389162945266294979790790902139464223081100376632736845837684262462252056780993377348997405290941286980875150562753192382542642774162109893624561904499002180094225583214762031179276860792183249357216258462415666434021492562528982900081236228743959268164212451085618622743289877838586123921453888887466151092483149858238031459968764468018784884204883745533358706225375342192069359352990902796089770154529389524561308529237125620911018537592927695537169417012545140579766123738578486274531351644646460206770699185384025996985588834318542629126267926121995931875875547076146324102362597924795402509842865649436137271418467412872918321867924060673576371283490675395639727418433176969852090442626731823464337193754492642510480042333456837967821501996741029733750940009808059495035677594712739917995741551395822883426922548226476506944586607636161481807441024284974088118674788578131153572375968838653530886994205368379189202939098839703431135656237313098507880436615078110737130806610836871795850836404351588341520690691198504070608404001431056075935802398735310573916955924376628127594213046006569530659470770687941937891794853080903062997536229496663797438398074899827408903219165368021099373536657450435445337838505694303001934709796145122850842598251598020679546638034120704920066664951254285694614446688878824366718808988380173182517914102144120584002144620371567895415443692856549852890633724333353732944913202193991392250186105163397774220380581156593614373564414640702586194040433193115237097907053334520416118635486866125723810633039087638554976925644523824576794671876014203436932268567199115639514730517433330472713381143319393385704346921869283915808438988619881140598086490175733441466748105423402636710746928000490551663852860691083597097903449923210126415029790781638637841033603276735880684931511294273273737302025903213866413994125249724307891908987967977198127876094403089900750198745336925818959467755946560111879573472600391457929970027064748902558547312405225353297992259996477064507412370871116411771394414571787935068470473126669660751921061404715178279921899327695426144831883385051229107342509598663131473043153394695417502483644467523948638056286913536068559884392428212987214818148673548305403091507729331979136589435550930166528796730922224887235565243673649969433241570254798189812096406408799233770358366156477929380220078401642668834272856595063000965924376660742466811495707780657213236398741001321057517487988534126699002038354803063537453633278702967436080745600000479561067372720843372398627357912068733563879807452095710053780319387850566621391475860423452427290562476231572698221669234486267913470767419438980073228709446963779027289571171133491703458776618803264029090966364650028748915417779739723312838631709198347457413279184192146646081753524318049801269063959787615873901467160034043069692210536166160381721289168440827938973218902146898853430464246306251721024402255754528365861371169327486410218833187729623091480740117266635513042577650353623359437799281760896438015192375736511759426482926692981818414721841210864467995084625155904016264348574279953253012326365956511201265835177630030589866230432982166694141916455088726392877144357888896753969541291586304741622799777535294820696222863390762096549926406702500533438032398571952344589485151735060740626579260275540059301242723902988602135196969269315579057237199529978495966776981707631559471996045648679498496254582337068354715394778886333721748865046984476532708789969726649770416402397603703095564157692396385106901911267021926824468034490602342925586205692851527185308127059431514134723468967030171500089379782012194151330575767215295971143882854174583270853100306044157674920278242211225454838991620235785248556280960924332389755600470057629614378784281956545869496349995768483696358140707509830278019430882863149724422015394019331464630237311572689359591781591897408083770820314255138397979094089059971957972261715068554975953945529347464331229056336038607765980976964017304861501212738078611960917269034837416921620559776432227237513478171648457365483913564009929011649906413337896674483601161276800575793101099123632434339689016627627531560759231612440167510149042235850558491771448355906038089264688082043635531164665742499903963442644619963443983107162329342980683523994628126770903346516232152127465224481998483422807030769891228780134389268874976014957754520635802443277231232242250681559658748420009105884196076195856453151548703465822081421354031537179352927435869957878102198303069377070090077878929168050854350785797067864272144622296184154346180882902563608447842374134042266846501247271881651727366221668387670238834092921650386235463424815826807627066881288013557996682295658655843108771330975879166210741719816716468205042387548101364498006377143065263022331286849251997120287817620436547887603657887209468365126407760962625490760592635201313487797096919380811406309602148346237502078040396738158236096866967781472269319755865689721151699546071652660440669559743650223945027341630248170589509395309321337099638166283945968310701823820812992647553426313971521816766422046516737603182444895092637816868361139118520396831779008920550127864981594707703010680329876600884452040926574393930676334632372848101016249986901569154171909778403825615643332246958618132476369850897046694633133881241788834480267302882472352926071010793586235161663323129743530202993124555774530013787319486878117135160013279186820633070161766769906648075104766074920982637813285296354642753051586022850781011839408319053978836560653836441379097179413853072427956844059113810637796745325400975575156634043896707546548743043476362075887650113252215847211298149938204066144304734470304397389758428758093768381332888419495615682052522414760888344526496200252201142739317469964431467833200142717500155998786925623856592940193568039754418131382866219879013542918557976116130655607151609286830973041844280008656694757835102295057122003023521219892191447230005117159199901174170669581600396105173024742907543801592010409932735972488279627032129420878105444307374959034565201594625343147643849580624206245114429922131921841798531118216507780409537188295907648464956583243800441629435186542604083408423918443429193365698654019740860959122044809992495076026751627365087700734239547193780806838521163216537192324986033599593151468236474761149704074666526461368816852415815587139568405009253602943560238733167895034400946555078393705980135585496165084603911322683028069076424548951105194882179986172967104044904977972451075843556726498163155088279299314278585049213645592982240907086084126963716950260337628477511291774009487841982791740195228194169234168941280757461280432900084146615841026359447168538049155613244697303331585470402449231138344733004675023304001679088581385578975145575179554660924890714057200109516109599601043352105868058056128463078910610905820336066863285844480335869653147763889619950233612207202690519399752482833070464119217255562732348620289942251860875818537871667958480204515329282225044208354005876667962554094310947480015928682128781359575133810381625339044231792635763818146017169320854234375012967319432724155983634538773913386857806138634058389737274579441689837189611538644031194180991278838684374498731839103895731248084789055924180756165203711823235126198690713766820797547143479912837459519218715587169099103919068358325814345074283910729763836217192764668341508743675663938761346865177025004209957452043322264682168541986310044486741630655068923035953725161217088740684053744268909017453437436109445164200899558060050417880259079900848424865672166677798246322917004979951069468992608899011474945885612456511204148256118602269755784007215631616606407616755773978363288988407122543882421704916980745283700193422557396045762902782732426198482430881358598694585041611437415820843287846500049771469196935196457748812259808076059566387004742056314543905423191787749713113583832897936696581401853913524484011505243505596578269941150592060774874914269036978079830908904707007410167420173589883881278100632305622404955140820710352383083624322431137748933127817707998906292223691166664178815652958942715408323239553543520103105201198405871533520104865549182501781578230578302386527262069488350296035572456033883702772732127738435925022835208365070268938091317971442748490664592837208167908462280317049872357897805961153142740194470331298466678889758244166860751669176865740471060130447271802150581200887707140167592408881509538968226960430240217697251342695356154756374765469367543527377836111122939661645985197561860046858448323827163507591008194186549738356075324531222893924012411776817602135797040094429312980721744719952125416218336627944731369295502907415866707042616068816376733233672901939434299258328495846955948241531425926446401337685220877155040272940958586807144739131067263645450124368544616658005071925858718640660072920636098055045098060889475009637461365581699120007868955606422118092407136629780613174292897859886827330114816904994795201072562004929100008845394309483530490057400161457760097895703357097881600353317538791609201295656199642297987444691758934152013242446494438098252954838764924078605688724227384741857201238644404962974426100830614358257224662772055018684064222913417712508231818700001940965630626108593624121228856583922317381690329682122556105289450079564923328669583773686083346773670374682641093951275288025952677787241620236909360575618627672423095203148933095756233148644870146672350381004775813075164740110945147073604852773571336142030792677055282958161729191640702645673432350108154891058992304994680114050172667382606175025060073654760923682953671546330132164110472732277681319017009523822137575638391401100620702325620977417458850977589177078105435619666957332756820000134458035615357639690571452615643812309412364691698805375918983459618349186019876279997873189658262474050337011268882183855579476079666538999266798344173150874126316290833353075764988606046725267806259290089954056120195164778664314895057051490756008927143200845538856989911316332980385743433679579305500853367426656076950593162495515067910383290815655584257650493929369668041436665102328808144914273041630422371440628954105844030999144965225856232998153530803032823998504200468703619860062536954995336012676062370168151095954856101584150030119572051350450811342163566037295401825956511326410099628351681125619728607071989648252097044996645547540149619563457407157201169503241598045028106561051412388560432854728407207844644078689604198863585890133300789957898114925178253145255695501572378292305059696275264082507716839379840301098522427684564612671639298998926769010212923849923556676170042616298082575390997462165728627238004087428576148091639870860620669846579819181485025110797482827044697157940707227455148412213748403160561579271081718279024302796673465433226472904307573052179037773888723509118905000924753636221005860804382213986365018609574546146979479504366365456520754503121390807579865352726299613513871221692583888059279552472140925406940560220868437045506899517025383087876161706928482615162675008581012913993523234662917402089320190722479940170650519961740518748160806687752546313384962635937098510680205685019662768814282312612613116091123997189430098870709707576847577978110822658381018827121403988857440372255356850316931698420685748994501845529984676140001508593986360175908617123940521410545157498627981664952403619229080511793249892992831274093723460783842957549373966294559854596852381879914859630510200314658941908845290108723100983029618356961264588361777491953589862720168209973449072647916492627291949453865172441209446671214794092957237543070777451942654210539614168321321448281857721451874967875901914847472000181832172426375610970527279868276768572203545492336599254563047686232106398323854612688423041032213884115948970739623620290858920574834637429972049459072490853474472045534981536703635797460936977255860262006435246409446924834525230535671618994538357765274138267676498742632934618318090566410840714983045878773175945336939958231271809361192303569542809958767536352325766391645702346606590272182879288482909202858509162212968706285359337260234121337268808028150562481680962496794914968854507769867724607676919052720632899891287517674208183955393519356184962543202168774055283318996232073647930314232263326633416924354364699142091509371347399529603625245269489472287569574800018258937771382696172755031967935678537506142849885787180814673153090921959604822524021521893411326674228147138699543986542446874771987642414502270507557015680539312275124659002798909797515909029903101925291982969683326275516060683943430369049493713695097867558078545208853764459893402235354143368919214764608284134121851930278585428431482116410093799486066149977901440128479336177228106820298346855535633561491376889385100854281687490961872777446860144345721128272642836649966285893535357253393594689206734392094941034732545577739484961960021569742882471986568618420737407253252011271488965776387246332243403764413881433518048609630297002909109795882456449815974970893042437359921117268122634149445288211679225385664245952039258835679841330496329958642846878010416601871815761658312386964066464086837715807102825047767538483525813980070523744410766631276375022025500874873405212190848106336681214212572680650966020555682463137560753395298655885141819112315815336429663406199187238380073307628223825252192515279815980090662846384999225105641015632796887653081978322614376424117256801663745021570450861834045974896992184005535691767763951655212463857233742217801622060782992872501339790848690408002237437524101998530592619170764989578415386027852190814002675068762993412467766681988729236573593112740077490809301744305131311893290401823796803591898422090128049670300397259160407618275834284539540850313799542140212103234649647958653104501173104764202853331883818621872135602034010347094999032653946615445709237202397146677729931325023138121103117078126671432206067614079260858371575299355137829473917784311041300576809811708412996645356258088912536260159871062790045170446256606856321716209912863517110548246935939133989911093197856829402020732209710029597704403245712703305061220086419473485511683770858477484151664888542349159766077755606665617184878991024765822665159896090218120127351944321252084736664265450442143925197546373436760454870922660773270217762899733213224897555926107677520001078942714768838813721192556083570587374837205019267787825805517120853230168913914250256147350992973131431436140203184459610492617738666360678514264192834310638649536909398069832664411532340128235270158383312344876069266625215835383138435978021189548481454577541092265178747018616885010659238627924893843317224102545837799602881518756259555450693331215494039022873665935922114404986382903308040455061457821264363480982245826418139691913212720091542412078799341863973193687477046220901270828679927409478555006167174034813366704071314624973750289051816689340357936100948995186646683038263002462415004912571063876307253622927546997276875672004343513513143786322029117094994701037158213669142501901147699462320554972193374774988896076202239000987610381998107632758617488873775351310440231652329115622990863688524961280471883914354426827457228536454984584824756685582117881062047961702030099480196113905308010336346499926143189349245675474238209008840297489551943796660836809190924272770365635786476771899293676610126145796252257357375757995452576142979266650101481485302621509834739906609906908473775210617668459952227288055893948861396202696380335158784567619313893334164175502152537310108199665866089186013454295848418862884656307090455700266417268029458968648229175695740457541104324308720117347780543647101642395790685662061340516184058554030763991387752013591412045293271246827266104488280331458248452075797111724394186815861388979107809568984971898350614124818050331880142833144527509089127383379968807760734240005327871452060973679450490356364792161976989223352341919749183805284720936110387112497787339607587695204452224245294717896375003779350868687378623365092779206002436241770396446118598687442928960322554543937595422307454109439805732507383220854323357786549020664844526997924486686192032496371416791199442554182124580743841918834783282172625549142249510018678169040549345428798913758983676041199613932031106040038021600931859546985908994215543117871057131400545429004884517015887601809674556452722355668473869369299344666094638557176512474315222048280541101012928293858168671647716003282381370334491746593651013354387597647751665197499830411840760710203898680816982080274154301680042087240066730533132921599400583729628090719989428954192472823049944118949922046093826096551069360431012049278849349643254808266598346016598228678519051464333900312813983548576976281801212467510644376767014495946076674877885149620688322735228258970485802258907627480598081171952710867965562347428363098171246123801479135970734900168517621366197104823993513800153059504401097235447234729830223142540745769956165696180367202793186302951602250797281489972009773537219488927216315417358250805433089022073075228795758551765429657281126512879458059384757308987487260565354431508183402135751588968964807679739133260889859201075439710706123481456268098572993975949072670699407401453481758172833380625881116257246555067509676360778645514924718056024410217567197344267851886796270316097411149888470559824114859418297988921760644322047398164387679207486104160629316707874450270225728810771536963451035622829306601481493518275514844573134481449844702437913194446033727657975431822620813745762201701132521086434152443402566191094518462562236629897564395793597735871584573600346339195106688022035147442801450866951028453114193961920403440811411921177875465901322744858925661561666482697113996504742324502477910106011925529362723427907838420644697186858695023062436618587316185898981476764941726750658289674320551974905089656805620318186321735748589702299495114763829292446034948846835946309884317451304959563405033371003367904292365667709643169649379569066139034937854274724819030084956895902698020554425868716344854081085092563264058386919327595609290490086638649877517267341063244412099541594322274742355999593060222195234169845625698571126105503220230214902503029223392351506920714243311151040367678882436049294742613911222308839845115378559457263509458997912922936747120249359455915097868960920007001835961792344924108296923060804622731436728953152751530851960910649474492834197245560857178654747973374901722952899134954304772213517287757953793884995818148488380627871422480353345085183169491331954640928292922861490596379476893515854057769764801998238548324276635440984046651142584571305240490102185912342170768512020728237938365310094777694516366363415848500845894690066291339977852510834322861318667645362214331720256241004504863356259871851792573048670642599313565935595138428973434671527456321366622517323310678968678564506807449906649089904229237922151007591226648037905635092944153191518052626434286767081025377070873190103596586637006763101408917076581036410846757843003290184059270254648140838717563025821616424448947398608480321233473889484435480699910442274994071007876578667311095288695242794240416164876766152874016080995553499615486947277003512723293265078914821206750792995210264463922321568672566323879194214393839721733540078413770011407496292714427865500832974442537081287981540373743977294881060213600434800032494878851666018864425096046340929119652221430720604037656015216760478255617287631154665423776208248193746529382573103603162326267050557566548514797206859838583523147287854269498748363852308935249007425745274134807194587924259174629108833822267679906093559846335343086335061116767672716478572831091037616127014975622438111181795937025723755969617841267403564780151847694861865902406337137116084359720742625194706735475049629825114898441984126199219422001210399613166363444291115836170189591263060271689317265217834448978632522156594749993100742054687628955267241473743662012155067589398541322734115240949520205105463955508612826898447945522164771317858397077174545750490384985904494784359620322553511698846266460360083343437462920580606594357092709537056919998348423966466409115279079021162883289466006583718339208805237620648885067292291575786117358014424625083706919775611526202488288108300966971885512013252156393950239404002286689828145756593182009326631972299548588908450034702326922368003608852292633563434161244913216069244162944875630484909690909721429387554023200547629703183004663455211411498746321892830702211034103445704351856042776100843369259015742189658146465775203097008365616034938844298986672606278078579979649347152127115673771571417731563853138723496238359593303388848045071768315859504259539796281384778262862966107681934565385307113036928952113141292869417317834932839849037839557375208950657607693659452518463118436988479603991208650170809112892588613748665954452966807833626775821558566023407007121584532457351719906992506727456008086998795337169938282362661467916312819564102480122969297810983536949681099832631360728471631852389514529758185648101889787373303683247276462405557578490084848119453544073618702117838916622892851801286859628233007355185225689652991825035728983294614777400245378586373239281222197593357102877086229605578642402964261115593701237597399025562661945518942742410436955441079823119248517678304164062618625577475122069197391417053172638245437942191443828618036183259574402717669126374563359687651658325425524502843746378619540293324702424479347237234852188548772632818472199705146785334689355140563003275195423119325116490209149248211593187155469759212040124880338181569760250450722058879291779856077218747908675142382866554755654163395562275984781690472292479910994007426031401756324798336433581671674738157343459147002609697814763694093447961682847543034573482332359145246017371157898485884862427960311886564697872468878007024557723412834596614118621963902525946059974515186843772970025543867551903381138418119289873493789699297716586092056247207734770362181800147253495393677262992331318384660944516816135778498930674004862823950258352572607689093778025606903469674559769747038596253524056636393247390302746044838928163388206664947056115760139782584987385717298895869943906050374065517251458714071646718900597486096579483940751172064343345630647476775135138072652689553424954789972776364581849611099731471997093688665675523074984079960262255035898129857981313327197991717674193040296917288718764935182484747742227477298970955771882229534632633180359320848654236165662368818215372912448939365477053528975030458764895934838485980871284088555973613916426403268926423885809465214824874336298213704704333184376108441290117231759289587036024757101798783946883572927201489859318458835317319887108980252433896406121174190903635955799514998047327494819170393330146498620133463351571015258358955762293054833874568014935751426806478625581892715838763914850096995884183114026892657879256611242960056059170912663012216345944459816287650540068931281302547066462915537401173725881369381234249120885177520039853682004897343455403747914426400171564875236285395476906930419055928480477899405770420262384035471407104381602564357086708708097753287593972921562741656171532805655632149454820119823185510643386423127502575554485134357816840304472584612649536792464360980034781275939115124879558157644979827138007676352671652508158274772207864586583913435160739287626374787102969026548510066981473894234307813744813203723614255980619113498574634219401510885281716964762573595070052045604946868744381543761967050699690458274583328169585353747015485864299719865339413963753956847094965539506567309353701096680187480430020815691855572313203176261435068876165127715616946420898787601075420167470046341218439200934427501362381353108668071101112516272632998704816899808098469839095177750907489797186911580837181761047721702236295319324009516001002458572036689533591707599510061449887128880889815970213427992687576925602823544721012510692516743479385534514439625536631523646594401599211247358631641565909027905107549450794844377963312514022948358431392842891541571308766916795062620046438513428590469053529094118134718234066870679117415394272844953126243389425790514987605496557698069409316488050704281541007321621206148044367423324069538036816232057771368306916732873315500835953381158715645987605131996857556524475153313048801379176463967939113741403413085363159388052140566407595440127533668876644997201621547508638465788445366240830510302800447020510421464537142916370059644104299800969539376594634823886297683834330218590783558349657417179125027766180128046816840343320436052024612360131940771838907376843142132275820042033220836601219950665798329495670246041240423208512394406668260401022895581388642692309885612001319549870911267333965388767927237433292693206355995523018386787913721627453607946326469593327054741161076440711425020668133344337378067030547701328223645373618885631269955194529042806393398548070779221770140765077586774631236718950108231862495978184857023942110643720081191477569143319720179815889203095939116548043331878437700309114732303430842089916548404926412289107674163958316092751946766280941975009966515062897809344787757477530727043702064726949187151118066182831859229431271924594726024258728527130225130923745640269829215380299161657917289543620095719471528367634980813204693467235309118269288652423461233743209512339098864638766738797044792654590234370788855080237295330484365637335658692069931272172601641116746477299407601039353215834969031497145981519526644792289298996138016340354865753465578677258004743023832928164701959888953245113501718633299422581308598670355229686835201919807166980495201518710956676047020079127231079097819829561526439814679714699839531914028279295365535815967437909169521199868106691447974445163881054311313239771974559834857445381219891663573517778198759095761299546729426981395406493917669570857410850480105416003640857668375260318226376685971145655931060348727168507605747902274487919450562772302013064811689833667992530495916936706512948102245403217106201842754825188330559477256768509450643061869477092703844109227756025624542216654347851272916363449158582246471876638139712441584167398287644337311284024461374788400440320568918098970010492410655194399320878308404234499471592329800635736082184316481821358105454593898526690530172959199274877803150325504986367263562437567068020214009218440638632314874578592793498559153497772072603879908357916325799208855889102549540803679090513039755996787000805545834730935933617855238602427561395182931985928045903811899471985755197119418335612478577326785610231133538201378148535153315825102888493006981086040328932966082972188757822492949223771640881037924947446584076270274295875473832491900732986075255223278510685436691704796431575593413889535115984465231478835187622523170516737439789470552518636073481905018986651753391511063808910378613159817200056436412403555353762864495311425834120673078188911604703038888544333305044118596803844047767655940066055986190335202816778576611726349972956393912311959602982842097069729436245140770108687313440305744256087641335469704553928989067242054798487069411383133408522369607816737779425110261460690587678923665021597173452765193813542739615715474788797744155406462645408052416348654769375194518536890546944256657448370741032506276988426584677304968582104297872914175127792564350017325226393478785427108415234641286112820416901067538852030977175572164882840389565924150225353865055476360677358500775394540180659417833244150584438593111620869132024684873369741111150246203377172722631380864479023801943176387345050229788240231984813193640537227032102904878542574543645348731278162571344762823008210113162856058634198356176656748976363907857097065999939586382931747831854235909235957241273409508125357025008646332609979740964496267834120329829923280369215442740945500028221803549818520334081022001684835784599622013870989546500156271485951430750668985903667487096782962525540589810596896165729062447406425708911678353397819066218226879306788116550294400254292706552715641182302439946082736924312202184916647260562314962988835166789170527525561929701559076034916967057010449338370614741556591736632341850021123453472459144554046060552434585332756046091777668473926195982208660401353242266646932178896782013562744980431792848636774435543902150499518907233813585956054304413223144251770053124159954611773670974459791838868391141691488026984066727058717658921466253094503895561313090253309623271253803444135674469551829481475105790852991367162573544767565944428665478194577086391188782331567760557535510662442942145925070380900991699690641812107542092175596049980156579704087874772975930832876371328659093660399055179908473189331782542971117874162454019376149096117605016193429969668764091846211522327558078493242004204168995302997007681199048538958642355093383317742638075289605956276134713040739320647699609631024672496520099941787298219246284236986119756561187033459964042900648524040873600286434047043831160060222607235139826273359078370497232481361542259276200813742580432808898814623976119600262788968133339140809298725061795412703124353243922833612324198567418274424208920897654977637468644456565121338465611689391989855104738850280513266825236708052501081812268954047891219673044367149102887364273749080632504730431867578073409612947421012882664553593303319457787414053058758512695107935702781221593896037493496014554657830408959904568771363257669667364012225678776543523196153733826187757610269272154959711261956869583295085830373795188536820912145400182763631032482697418609673525056878339666790999303180893024652029021320408728342533023601091391390479872558250767783095536167055997688572319474101861636571556227308515482579884800907342770939398377021118087591742557875942768996610229727380140753217836074745692354853302721390509855130004507676188555792902515850688514795953830785929643428277450145518730771103823289242105186899026995683466676937664071166207469210783000733987243393975663662065939594883008738449291836782658164105402567371557760438169787616342190802559599928258904470280710707485118271658114679992406996201874956248586818762657329409540257818109432904909329839647316806413977688560048708009651750219951869307663030514481566401757711521214763296294007575094845136353770430636595923750108066150754737398667011073386957031743013943117471407339092693900643754892187723719867084045416385763804428611114990531400279676759164917022411958770291697143787693516428345286971059438404031049089966348220030837812077357587625862389358920818745902864227084565580960006243984539737547639981892319194774770661252747151441373570579527472540557626973402497546437567931600118717644403297492114316644883696954653740745791040129875131172523378830558311676442726258596602476877634946875525183920779361929039911773456043444577964989964224418901297952670629426654422248492171080780941071981096866531524002857215142743619908904610823556871246118833495845568815537191963619777408355604374434285683744207575635409166488343757120242547236923019248519118318589357131308555038288206103226627268294466300178821474565350780876570106428574786414065706830884204538457612426441206095581022060911546454592155128081163192967278165346681761104447988460153128050448765045379979925191127918648910418076642753809407219233404992959600885076031121118292991630362342952227032040817217396748747848407144533595630335471319122247900195866936537823696533764320399801482541938004273031700919806286332787293017128792881860754469470203848947305963751013256166911382984690189172708601938103492468972239902282875129659385781520426846176382834849624094063723169690904181434332080557697385672446402441047409177630157875214243162822692859774817012615734074576704030952035507070241127429097527062993180977907210313534867470886710160259033844870643071607316810372078680163633458276179234959150730424440220659799758008006291366195315613289090130152959921653592789137054895829293602721085032522701121176878414153314239765517503159781169032968004343910419816759583767215582106805715030187037839074730396101593763016884856318433738057696621302074459725233262160064191031784464956486433621492975513791953834183006245534381517281481706079647743890912760245518428141858905095499017806194511257027347657817448697535779579854068190368505938914596957361516583405940019939850591263125774119561762721001423606500711367586545085559963806951502422148193866127707018954096459191918882045908624980190455728193749305932034275627182297119835537432932651505783133109147211275360582659699674842120120000956971734520371408283025718085232908888625305029433850661909056225985943773647458067102136427868424325486800125377558485831614157784530438175345822151652286787081905819157534531186879462772747392403403733669366417403458195792099416225133886712995734620261643041983344004088063286004324145430711722942595748774441989374109466645723347698224286588104020858218397744532250194489005998403211423710725226360808971256475542884623235457039600280153688533433075992430790562234583159047912399278606260991387916383557477853657824003868164814189188047120871497549218742309931235178153439776865917763338875634198193615390489538170840193456448393825676115108306333932329814617899224267192124755117580201350340259258086842378565458505604563473870437398741352240242830067901869639717051336980937422041210679723048919824159130021186639242621137874797461090301335858232657673347562989785634701361945037088943835234520799089095793439844105588995012692616270275468614354909552282806098277869892669402216501503972580499818418128292560581338765408128150153012821585579893471597768021201933434420619713519707825828713457530036544320759964117519835253131774583626940687526810945790748770508779654620079549718467163274675201917025488539360116102330123999371465805548381419509613125171493260565747433172713734117283745715649425594703730023738543609511762201608390989180059247446535633955513392553264099809492954781850619081488853715569058213962932430625468018333697409823878245221022910491936155803714211933111555382157159940278076509677500927547097528214421462661549859216268336922786800520824611667900875565276958994485395460605114982046569750452441845370572164562961586111992983776383598762846373178992950937200484368291674386003243720532472589151374211707580640519459388119323723386553144793439029029696277359871441251076008147103469012967478704441922818123375683210139770917151036338702371954867197126868703562902206800562310742030807294321870082244050756117030658424958083183438112359691162992177622227913477192530691367595103777188566479005119201937338147971846028378137530926311692705662123554836527031480818190738155182855975825498519169748177049618670203066398643114971274946081043271691748752461185949605030823190173983993854818746685110036836836496831573189125159410242764959140293479462492956962865755104929282207154131464215768691844124326454207077284640654482508109424741686226112834437424946892043167366297821045289510407791751875416332313942939875581448958806276965541845304987478272869598130454589558054695428323167290425323995115981121939810234945642856382599991926465486066815518191146454516376849477970884647954725454357229074951811753485031027441263108279377623951489785168630814024116224014980977427391728066879332796037587201955006674043206576411712518304701508716299516195491842370453736206200224650258891985692307437952938435460237173139877171751548453967094570740781050305574655469528878406088971674023876685565282860602767270154188699880216522859500277737883494004971933009035617890435962998606612799388107557103178377302979700888964466361283536424280036116958034330372991816270199873167038297848560891971968010079986772556273336644208083094488959767297986259231783362964426769805873150831543479378865184004657577644252231832519078310461751057169639609469642429637326984674137895911747875816037119865427392279129636733231969014497588395155352206455709479617140586088045820142540138681646259223723072221752076138245299368087960882441503697498563959028052580960401028387379241058533993978955665764062555831304740230862391649290375632079589752677118632248127862791678914184112275544476652097158042541056201448030380106589939049303194028314683272653440166137644675603373387055487512965909835946667299996802587424474895531705979024936977095662192870671356634988678579955252305738327120521878960028911521202975824750442197411305492887615196726360153609907469547048544702442173722500096341561721511050819987804533262958452354629092426074470449849050175751533152797945868079978915828870519468108032279661992748832087766817830038506299565040541539745487728491886566664882608989424523583922888177328351363842829154269870085194759756020799337525035172718578897256066603534509932734842738972532624504049598835889294634490369227456696130524920734866807040553516169760637807963710901244377452638642447268472824623233348712281221736625679856623538390524391226148664443568464330513871521047071337086217479068437019025551648428573166999285950468605521136944750749241583941080383883892703179482972371009910711734708944753215296523239932804502753531256716204643877101234288566560961274816899961255826796141699615416877421951229937944013529462256162209276389702257586623606719434788265911066963630131372589713215156596018061714858826481374861629958532689661442178249864125155139183839043967882996471561388780727402433797893874822329394051854455356293060084641692068104800271487943903221571064144691102288123138655830006835945135665214960673346662358733905873524588573723365746972653997692835816056498423681113959676188252077452123040672367601525640528234167711050150758536688748518615467072679191061306059325869458302721429805879345172816106629179807086688171793354438321917410502373157440050188534466465477180325410801561923762570582063282291403173411224420975109592748150846431197242593577879463546921220298165540513942476239878666924222602897417313582728433911735574421572613481520291607089536113424035541073096747561321874919856904074188049219227085050292113116044546661440658806829840730417576052930550499009327706053592338640472050732906766619397663706186816442267542074963707609279966324455049884559524483464033500520592574885338649964695890314780313620609353321267237664115251776661762420470489933205207802742455948416412840674529430162349188868223559593499329856051242620427035106068572771036633438665060098394230198469257109295364417411393117200031134194263883868845157358949655504513798214053999985814399856417338685919837103078752022711272634825145995959905793947639879604938875606874634137765540482197788865756647763152770250160914687871594364129399084053302601793536311879942355514194817520851037726713151274794835774201963081292289335935775815338802383623248948009049562176554836453528235020973854019775690386850189185571949054512640624797268292369431237884144147789888569897576351735231897672896104152095385058760041425196938112694127351935240224456445955466912384110822721162995938616156549136852287488914937082030861009306228141387680858051055640161583030709164101509393538204837151563138832654726845534431279715938367386379215554696349130194149299689889009486704109636448815813191164697806427184708298740794664807451897893766668694720305766608797443203006208505475415109135886068859416024561840869273333267011833203835820154860669443135188720182486959936766322083940945593096669580085848919207474512732991231671753345088743266093364239978316520223449654586368776599209189941962755969647435200487343798357775706692825152299879415593014651640826689540850548239574454830281422398992184177200000186157254786494692288992571982497248898823283848578992517603480544270598329354608191223142032194776573105444683485823860273982488938903479459399118993616285399221841902669336278035371559315311727644680324804414632450767506386145677139319186425889884955787799802162522460298245538551856091964025889866178501466645429488277112065221670517793956850479586238027413296701002893376795554311441486268977332443490958730742455193562997262476284520596635381370614959102671817157211683286328059721428972081612768490222647422636206718725211929133701774173124714835542756061804945082749957661783636554041393390204273333395727436056712553747543786050095255118409168335769110651653651569837206497303266495552846354924230599979272322860518796246073532169153313670179663457213407036498861460573220476373878243396328306080032078715863829567398246361506863535750127006750609284698360706304629437485514429763558413307867041489510887352349097880093680832105763112875989778387894398351804464715975178538164281953397039415266337192106987990125890487757527574817492770829789834188278330714190800047853039819223738728422810813504465492483058504679073707958663862735512265618288208331184436112845411679267853732859189020324850451041686361135670676797419270271039593530641014393248602254124751998465693442540802261578295181766474145666925747322884856319903773742190457930691834349073312913998024173799173425907193341356857194228511363084646717673730240871049797842164721919747297028523464905434544797452763286443285650931120456573497003135689457304806868244417204961389322501299918020271098710776560913974181462203175079643752613176055440675137990255846417233004014795703927883747911694952864779569480968687318572473484957151996417182077003918979280958487985804857219230391581875602730156233710162362892373036235381369752557622188488250379222192493352971091833528308563006587829046151147525908963544441855600080984126624949342679022068346941076319134876929075678422435397434892397920495574865297596469883190695236575245605574334970900699272591896064212870212429099917805649059794004032386755705384425138438593405311575958249036896636166593982023300410952423955148546070570427702107726832891585532171091060471445961820227216404316507308766976919606961511426219229442827691482643742523805674155653316888709332674928337820902144940455615856563491810133064316560769617164095031088213315134649755927708716769678330456439687229954051870643429838268789001301787786306110255234787838024325155777901044760697192771623555946540655528877803244348792801115874955102612609660570946490033824911477536702326172793321654378471340815615670307696632979842844673175486355549141328253118346018028688937245032971983176483009015151496624249801581505686832087623223614710662482013812305291326573029082077306417137401885556789552897223340838386511703383226064578553626339237038557671404647785322602676118542453583304809495661758421171806347793707928829084198781333451662733448178201154381484503493487335011936263785324721397471120290694929985828077606092179800278806245828696512472073848890760620254993073421466458885991147676650660616414830581336038218903544147331105566655715805847116171783979600803354008488106377994401266422894108334261617904849077930608751442876414383364770702131217620482009613613879678991797165397939209249042549294226168667271881579554082639751645282159067347967120989627971905587072480912062326449111356707135053964354370001741290809992981800561956753841108766706093913135962360722299969700794615997568032703863307285006456288469793072025343814264638541963080434959045753639853637109588600410068794491719581526942041629229374212620475331862853607097320198107250557529598940836438888893794930674483964945333192338982809760280816855903342933896467408056616000368754227994712998399928733796262998964771966480253203944990569875703758089276627949019559987667002847501924235190547885773689794257407431675718008749866568899006366890196443337605380179908980797918230519171731081056923752500481170637789449327163466727246862405624483402470571244445488585856178627280180632024548289055442747755744875335873395516216053695794067254035700154944910116277583634862542672110365934714745854526699546154449172952989885098550881684408232002454526726384108212964012733199192906060712214430378853609785705924125898042007260943928974928100525573581298268227770532105511991261013562272636858802369165906548935305250180176605315410461345776022854941554161131063315674439555446564516456077862851448719644285733626944503559502593093239491576762484204823927995441933795474159650289492787186424996535658554308863297735750077173847906641937369763362430329373734315793223525302587031104369734295532110895870652602939994991355910123067075162125322223652385115958841275672457997465513039575978871883971305214759611791411246797055571114409386284681982672053770666265249291225587444009850882686751035179232728176599939739204531175022217084463625831508546990716066103935843444532669307855951904197772723564385902928456319116484362828252396590313450473020225930359464406433929567444921047953737276815215201558481722343876098105105060856814586777014377627843964541210377309814477665338203963827777248960974304140038485748067306945021142303126656522103289185338430562671840438850548636804472355742915926632928547535387438037316571345421501421617358559756007409215851582477520564613001080013296395461311539283362939036983246183305612825534005340891683540883370400426241293964337219689172934366267710137911705992861763363554913618370491550184623954485315636750095423899143729050532705184036477782294012237185648483899221052028113665037452312416555316632754515167636029325315869530169439534025674370348340969483751187890778614340070886567209664270463265635388895701625623077950051945984478768477271781547613713081291565648184785452341876882191410784182579155279986114253130822838557799059585027380611865155381945501749571953083736815697586454721003092205682258785749481203713289914361397660308909620163881083359523176393634448288802138107186186962502958169549960687401360358174301835559344281514797373265591699587308717315943255816105371029165843141069032622944503183597768611399330470486327765167146269358288387158581799404778250823315642852354357025714751881461348485158830398584726543813270722527975565331597363981650762533791330096847849978049330830828799432871740773495383797798636593344908823878769937182967413182072598235004112245498215288396421244689782965880267343777465056229996754144029513389372596384278210374781260386646924269684408351726120013430014117737445333171670103162679763126250542893166259946733586599717674713477684509994294466392763581745711399673170943641190763830267458243480902455974600412571004526412446720966320387356005732501224032848621763888589780892549485386418109907144567959963555658912943444653572664438356385143791244158596061805265103254431854942798259283651191060294240541751428591654595153107221251610914061733526549066948790376803848545085540821079204120922031341606184700636563893602586770235061607338429824482249412199372866801080913031054089971175837288087304819605762172661080902264785884513631119816399031381425714145149968420070733108742958543973562007657662820938720341886334574854851573623861779178595655728720414535214455152734735031950795992542284955548911501691666449217482756344999877241911047857773014363357328764552504877470578804367177942817428423317323558136333284795930809684765026002746106885780070020910322295348255876164443460612357946485045285410551769259226671025411577481197838427964361493813785893388730807674027215014504545624077542627308531063803960736472075365711000442386554285540724639001039857948125551320118229352005927173289236957477912949810887822874357431049787132760960733431479692716890657437986406505100163090876518568734736142281538290840455259306085380477619509650338565077129267385170784773215151918128492661806537818993079104607321334233175813770714487246627782789048254651029482904783592300016509970016235904126204764685414781138699763540021733084360493090964217938566427139696189428400433288056285798013615799257175913677136256764435868757681350167295175602995468740519011276836376460948706084862492185429061659866412385932353072463671061397905264456340576207973862047983321579756461715195724302753852693808728815687669317971789096866378769989195055684989557181204247745795017275021529897246520878760300804406577175839493659707312017333315571677616071827228203152864005760435084098680554295086157535832663333811336421187155769549013390785379407220123041927542449488944256889944107405415035687400869771050890280544905017148477465059114680462777202844437026546172399178955037732715679252154581938368958382915455671268082464607396249296159595818156829620372204857861617143464690576343894606868607488267018467405279766096683001281283625671391640786371607332993125975599202323209769962804851310073445818862552799998743680678751090887140390377353253625518974315690676425048076243408017185244268175541163365721917726224724150775816409854365563914595669407062481876721710999954488975846770069317402061876961264101321842736600607864220390555144143176311778679213684731334987656387232209766559752297509371032666605186301763477582388367291568777957848441126665638146911993843384921405932211237013793389542167226872812815782871650918617319550558758509048033788807243561627452516394595198768048503881185227601295941677298608008494139843789452285638233211806795735060764870496702887862728802687175424492993702307611295095931471294148401991629229842011359658729199448007286377576764333049045470415658141239658850316088510690824193701199013607139785255759692131915352795290669573019596682509170091424064617435957992234049882649956023658022935006144387233102075610715317132878136725581627343881331799346836360058278202710657135804057893365970773172097504474980445321894634821015853139834851499036255028091554784453563953599010738517341453961918822383924016398667282850220234729004588215367977211118804920258709289601775787635505462216691269280276358876399091007103266714684701646599517053706446381437306113049919620568256490388416873306424161809449899947707151782915841427410472664160813991234136117102301891318175801327573855100944279854165924284711640322720724676789338205072843838503974584880047585605556937992058144533165014522678741325634966447761027431662475124822807324302703422257478884690623246350158721499449510950661244777700281165692374906502693774296335499656456977999585776384340495524288636130854524261994276810690885010556598854973882995620479990452522890707397161777527969052507597796792201486117682287939539676298261901970056208543061059903920712424579532992338522034716292824833544490437869784554303709683522226479708168820441069451548929265579026481210993634349452916202576657589587470137803726719877369204756712020488990863209153073185429794591954986232791685856080711959121988680018332495502704555936359633771989615151100525196722054273856368696336777748946477721822906679621896009525672721510534402819263016039427381230001855121577695363968010957395159994983883853049387785897617064779381298369809422591003650252105444556380495350786490712879497785551090328407439937228240663636383498898980467745433355589938023142085347636180106228943475318651328852930954540786641700065705146933999379757413176589746098951723863786489638305484732101572995372297861993070649882213044529069532761601048741987956802187343178625941555502966692143602239859148585696871685111716788180714980813330648971661950947640914513652420513290211163452262330195475333644176394678288261736150644956400808930698125044468395849955372878994499145204501306376197514517662110960241222735111885664204214509411061667433464066648389703477014852885905524418894715371282296769488605963681213210279633672170594391263783224439345033052155395219123078454599565091838225009198967421881091689723868797824516579261399291566432569822289459654836031402879509354958537393056228660599554651652702554685055531427568404941699828122014326985213051861398107776617800470764373481743392576671473948132381284993824329722860567399612324590221691000588706029220585616470638843381500062335149101749781058069262683615417664041107435306123772754639395244478582043728660512898024539210326042516827499241894977090223578939951018284645122568835514572984251449680329141766893194546021006933252234700895531215755539434194040790847034643102108053457862604068754749293602827124021613626510379307509487817012888544514244535514098970264529519774808674981306240982119798595290939937986949719971337200661130863944470383612844783079014297126145792212927538871957342052220635909306012174192180317413930492621087609153182308035402610535454694589295925488080109882621840061210905172271501974614649709686468139082104961219101797980394384949812798161820227942675290534091757329204747782336285834449247393545913751973850996411266290020418103795237702151359935701942807387221540375170671021293735335736724770889006413064246785213767344691985962043088797333786191757128830282049883799120940579607283295172948423108489964563552584099435037739994402653464327316149286541080734728646261573422660311302327474833832677050888128844269926371853676502102125678432043879615647030215789147986003103533164203622679968646136119766089293722398233953045014901245630621039310726645437830106135422473524188830392437822908491059668271601660929960171719562474300318477910755195402645455200546414698373730222653478695122506687301677805745538087916284466386934428410797819075844672493246873081023353895270136743905408796966280326325151336678136644747954722984935787003287439280724162440199679777301035172408877880855853681001665913844521533411643431458923152802579783005924081606357479984325849845880888373262298974707044890884805871451649601476354345825957421713637690215699173014437988190216310668255119182938746804282169161581264109428545037304781162492164355646707409444739700859201779979658602099867140573003645694127490570778533554232911223632801347621535590968509851271210845429026841249507040445268599859338653976631054839041036612235083001943225395162631738530058305337826418084117478306709088938462687316399067416170485673792291242518907657573501955528112638038961018138361182061041463269009865355523499708404323303730066181546525757072550269970502098409410789745351481019284188471489585237889849514282795145926386785640340713102144274782344434556031275143010763228501247554911414375312967853568704831839447785074310567268342717288307252800140752514049135633071954639629049947549240404905607764485910522335727958715838236449376187267773340786587908836986018211325832279112567971500121852204363412519282652129896988548025939796280958296927507644810893916883309747310034395117656419402557046859420316649568261081936159687784172603508361000121836232200475362606390613335769451395869658567677591096655511652857416073522652093246962876363876445445987902389953900659141215944811521903103467141834534111568533848588826447526560997322801504390444204088242755610554447890324334160883565301006653459755882595676013440109482531177605957920080226151476343511613466900581567622098301302949614726495940614948393182001494325577912725365650121142757378764872677451215302974034231084707376362835101496588444423480595987527508646475701568832126237534856466524762652565717272234418179880707350655545573781498319096451611779878841450904408537491641909661948926179370707221537903585853532944663879782299988521909028039864044475864936572858979747704719734381328222476174858098471101477440434648039239190528625941146313283496251903155180299734773714296473683556932483322847247517750624816141660999301908121836771201200436869688011515099831190066145293454369123732847073818143413880471338148619347924893506725175734533875464873960798842215122737510721625930796911812545826993949028334269063935569334238640779005887589906257493737389392162217348375777365718725812501943010036026205803647072301348255061221675375423287303822627288985279263681514635303522458471370175132621650429350056736113018963877131256767742777776707235626949971766609167438202943063687292211253497240323094443977916413902210479172882777098677715228604284413041689050961393691548739658316558477411457501507219134096514505406936538919122094008233012634927052395308882864596667657524485898565056843881168004502074438413833111093645188385665190835232717708126755838198356534979560296394275335071120284688540479536759614671091700036535788709395125628400358444893143682140138505463612802388581850099383491510463531383401500015545588204292806626179571844315045456607479737030827091096264958295008932372900037400851339345564879936998632652193066928015148290911971664907991078433745587969948636594076751610694622254295008289724920601620201875796199786641247743441064809251724576545670434910376679608570035089278290663475511067835253165222918330867051790492875674776862635407862811015881552055754938650468512522108235398771170683303846657041442564641027144246940644176577979546588147036529068404722237860058264934288988129587499142795550335127313153146053741712953607474490253445151232097183282614140213875165919300652511697350804540369955532545482898082921466190303062014257971287719042019888133354328158291772470865204456284970077364434634221344113152614097898533940420743287761546875339547983101648919963153268189617310252266135320436102910741062159040364399598519657421634454633084466539154233887974918213386640983377238172441393731995971304909369529969427851135504596158789696778816171839510744987017564607958810952359947735397574861180635958419229113977290971239461392405246335421744246869750483677051824244650780250463709439316027151052954825403609125503865317871711032694161580911098088391524246038917007078512245142057888618074133013518886594252614554533019379275900437904673748940637981915107041088213088240002463874920582143938460828849167387849287295935871899604996232155276990450971763212280708091114556746889168130452732423620120253681768048001401100758366567405710584809251128959216494396182538495950147701850790771654176243583861597190378875332672219032737193220658366266315147094029520340177861358627585619377246908168491051518802432074749586572728812605752046393484865726108172978256651397232770950068356950912161931716372968114147624383024435219345132549092511077794862483958118262838302825715928179339367418467600278368511200207352507467297954762692761373201112922219382043035875458638312264264192869755264012283448496324433708002677294710028935709264001402866261397559843172166829835972431057022913402220806047113375467073987405403169534664223165786822745789952628041436169664800404647720893647374253102478769296215762581865787803885187771823382384426248130717076411656483717607901597253750535940414915242099049373369737156319352985016525409839936994687629896039293697018017939425571865973376385402085745703361462031358843295160293428136012226248314334543632026355809834505719216903810105193444218503497242018720971390994381941664149786310306644225386382258968819384398147412803087773216766391123413464485299674364169409761614970291406287720688133304060829543823374461817784911572610421758437638727182578176938291039632809187487495429008037912396223467891902613688874437605885950558542238338631149448866505138224294155051615372532268199932831140366480503521822419029188530552239679020749544462440135119581644016697447269554796459676719614934439237337761632103665390409558248456978876209784828699181147394698743082620578548886563439698198066177796058168774480403974122042914631955530063256754089595087538607932890905344420732067524275524962761775924439663053552196117680782413488390729594325226907849437090722671216923228728505954506369402493122361491026618629302908092860017386546277023270889054601991382571100866799468064767431926158604813639735389525146344565119525424272052911606817650699021425537600858472801152366506403865030147246518926424765183821510007899002701327445523515935299194357842948295866568681931868793636576181040886667025057650443551471802640739100678775297429806860987732994509834913508205417265901679132077442341545388120823303714855876649162739094927450553562481027249205625963944400263682674264328083439220494625732118747537728312116106222886722234854126623101953997584485866807211701687117467555445499136762277586930296283484495955599296518862928893831698800745273259075961017048380109144323830534448970707207781040179398063153663085789350416190155116468087192298997602831614948778665065394482327128994357038175877284389705058066799696751547073803287060653330406153077602666150988679914492706061327669453298359929235909484771893191967178636071972630000116114399187853436785559957234784832517497541781418736016649300811393974151227699691970873592249799299437572056397468755977242539265784736958657349611142570530119013374944247267068574121126137429044311491761291558540750202291941216403769895058525961796556638571569922597403799330249355828802451069706897835777047202149076865271581687237585929782554754097394805875083501366082145376380754916981392834287586117025277380806495054516458992548578117797746296088629199946341088664893740234276643651175579451980276747522232095520634529090517606212050520734798362296279002683727443181961365330183681928309734480328113054703897361027244210705787425620627760204337959514145942424713033894604002410917994342655150108213794046878954979959336039205502571937197127322963858552174048084738915443340276111249442633794645402527447066790644409818264968288105128771047156176935366797488620851317360461054533334330670964969477002331230087085329825953779901814515242047204202205627398535019259822771367944702284438306527287554872056004311348778876994719959733273174170388891590487175060085621988613077365323847420713641592528383039101373263225525120971539064793159013134800551621657215588278249194321021564312173274674207639503856247307405698926684507211101948173845626637163287277627718498549067295608075966920425898467707084224271826265538566305725634035868434794960843982880550804137865177419947668812162834323319807796618608227784025449764028420765880180029115256227758795915951136429544324278221120508749290037056945372284008032394045292164057141532081096288919531774293507807304623152644407985945517294145084125597250546198418554133132361583738327737667003086468308386889579239688291796555265353903282429326875503571960548338784949114729887686029833458324708269061333538456893126511952797423508411060180011463014345390258510047481293689683932015202024206475412278585659745547448612302365048288562547145595496917920086088180642769492352730810457300561258634944510523334149540600883842181792715803530774524304073491975487783455241917875248227649457133794613252278639791596013932033886712554086769204021999032036882750325134919950736654559473041790777236587202716337039267737993296293770101664291827365121398131906083523177183583535956476658341062275432888558418951531883282262259698065453233101958679818181903931355482575018318285072434606283592022440767814204277161086306130877041252360413023035329950042117542307197366094574862837423736436012135664506654693046407657308183221748464323314000593405056632936294931076361211832201626463620297894394049310797840728965445738002174738684725896264696070553232276068112338781795001888987864324247733931251659455743368897271957414403476162203580278286830061679256195697874398410543759108996665070330237712484452713272076707947359950813705477912818271912792501343635038701884750327377048093281316816603853966665214309149211320272687332244445035099394404522458652028587974872498725717067685599522476091801170720266581056788662066180008269632343178023441363758987734090177803175314899137682289030855672730197457299264908381903900611540451332646281795955447077498345653463970730772745649265534278623205315525424447823052945271326956392029297334550487094888095209178969022407418971655951356869153780802749360843231394951807745057400435034177867257347717505717615243482534741758900304218290200674363945280749559541690925933984174102257065718200737054468173341732189723161075032132606791594047725129710327614120453725822737242016145312624985270330088895837052528561479831801482553820896743503360449911815579093275253273857905007933173285711434811243875111235981704602243139894627413818447922145307787631782888518396498734850854507984390931765285122536347897379806196472503723992744381101625537572272921653295256219119309018785855457465403393602221013110767253744375823937680671086500638382027639387837024043165029746727710475433156509513404478720468493395450852397458931952169545120924560313603992668077258975120591195098018472802785116505352328346662434069071291782174586766242298621377260076578889202608937901542091459461810851928500649720503382087585999199738512787484235506276213297500955146512760978389510235790420340836945264342489304825202076110851412814660492100288834749004161977316998363217151429442413658034224756640747058401664005052110943445377033029814653179907741450824384148901142978371030704943061288271513910607908597004599407955670741538767207997115400469152459089812579708561247418156668371524757567184182968386579927717378011194452152293451223220923537043630605795278003031737904105868546346715366699155758456195740998691153003561936373109231258507139048207860577577160098178103886935796853743287874756066227530425075485438203853994673569096431103150845872060030563893991929007506912722639930678645017776774650586399812114840526393023703622482307675297119184234887255018583789929185097183982318171514019901668656135127830723001363433015489888178912548541116175018040296928964960929852063289089827549888647875818429537502545862663845840569148816420591782149074836958804914683038055438007186996037697848548888029251558329956437067954644749174094217620539121881361012357792178825793305910315130609509468010355744207928710513896656259252965657203137042840338272263623486467445606695799512528716071938881691328333847911678225078265398424883014082918965696361972816172619087207592315757433780441310798745591690402449560302346836631717264301511089693125962594146956662364875390807210162804108882232012654584960590770647393767398573945601106969609253059835994287821383122181357400744439001481304128374240180974788402138563098640109513916701916621466524375323202080094318522325338129795879951330259045970313903139658038229120609175461864373383488533113400520553936627962791271022047526425480034769083592433582233328709015872719260167009494492033203553256315827519314788161988984827310813135807039734929720172467968781137551271146483570172116579683599868799742532351104660386806881380684056573399955089539587920075347942585980530660802104810969354823509668248452221769496592104226654021827105431668368617031777277086393731679579683054958368389826399296657952995353386177104729779729492001847597231017314146689200826735565880484397727900824873268547846343661763823666705313119074168903031137522057698583246087560515459683295890693185075690523506771212207440531356263934403060457107229910666736110704494452436392916658253746857655057652115917827239289858023859683974338755635626767435227707142068371101393726235819233549922230504718893944805846640349378372103638433906850512781102266951049091746983623087067198127546085787666720275112541822548743309587757348238850730692794826102003967086852692751050411150936540739201067369546323263388023175137473951606193406703772817851387156496140825781708286926134688280682986199504374203582955131349056925064511792124899172734752671463536115612577326024285198868566920323195419929342189109948274985437980463327279490662292538221369047708931589593611465661426124140133987661779996637402941569540569753068122263347792167239178187124602600008582788625217142156416319956453153130962533912965137660047723203344762096868605638500623891285259624318808591566783757259960855117093845594057510539081219384100346305710362439295953628033846283925659490905903507897525100609773093470492798565867180609579907048312418403830114127389709702698250055674022544310959159293859380770430035920663324044539102053062224735258647708184177868387519589820616566781894494079243867698091011165938254687314692254382173367477221874141559327126199940554802504525347919666324445774477849248614765324666565378208314250439914515580568120102587137190940876336655783005145444240193676279292113286342855639530803088417915700914962354815176091582507789254330088653712135498442463669244142340156304559056949974250179234386365068207354335258286077587064518380734034115794105930745266585607742553953407333223318991726316349116605994441048367017423818147270184762724115658566308154516043468222595227215111667721409347697990063414583284708933545984138153295492405576296356260192542576517316766466257875466097900079187438858429498852965888120614244357822423170402450732713243797666303168581486263324077467807459423870301981151063982020919224844371879880758513133895939464482382900575766963696948201136875590855825847995307500765852034204190938088794048532195865152519879188729931851146196451792776638565375938617804444187231289000010258808464113372886023852524071504685438309005863785506069653953334841366616860352146167205505686001749386158482655976208189263241884746232015001782812217383787772541130839016495621128486067958557404356852597809578021982247758148714289128569845633539918640328337158479179387425310039803494484936099347335782110325481961800036206557409484977071964723936146282057404147194959826822443528737998338299731716487384756987433600883408489768945075599618340224690131712562209919826198875270391097656860664983496647605727330002301940908218247829300881067470504651868729639290845718253923563620328140325423514141826487623808797868387888240619380568121581046306645115136537231137950387744140402802376316812501095406128845530093771124595294436688144706057375216946749183532571852655308934893049059597043936875799830303353622062744343780498289848606432453644738310228800756720757834502519548683774270610390762304688697200876352170117560386090110539454645239030092312753855732098013015377615096150252118549949375474769210418922731764114844946629735108988724565015266704853189891842712710434429714661136620242556659195203340794313032144878683524444657698992651195557412454923896236952305342657496695539949723040336426947610986033208980316250577484369481395586306237133005655194921433132239819524683366860866138770458824868756755048167149254278709171400538097924513386818343994742897749617007618015517504551474145284097655478120440081657044444582122059376746465613495914318242106110474337067815658657663635117140903802349640746539483376938551872053205304607447524249124743829130873524684852791173140616931487571651858349930420975525478792870108871997544916892729193875561116838545950527330026086284468002747577682715400502048905505160883910376990724079403236570215980169562401348230146571203379206083712849712796162656102904250802274692390763583814239692554813267130708641447008197376751755930135161353205415748939287612895671607439205011500260778356098744819678468966371165228211710252573959788342750141515760329367301286170741547226230007210207354184435937383122552609205472005525749399675340178734294540084282376149812377975673038942773031151069639736998565390150629740260251025006520261258564299091336951601682159027028956864061788352442625329103537453069806400922509766142336181844321338494339694470724086370525677439947554313956780123733299775751769196381764721770259624448953503971739961790896524005230014302414984705340055629767721927747462463267468643086538848881788659176512237881896149350070938255593250409524526853774723752115231489037657713291859155083887933844733013160824633112579910151087537842589015946688023042799369972072032488114474498308473305541356446774875834923804776156467864465760506888930345955864349023466925267843637816480609236713391490570468831915490687953223263713523574511840097644253722289382630528186615586661985662642480236741790712164099170091297116929036624601032663358150425451694020755221832883500937872293268770927305792313277848353469025372859320591841704101451191864677536547761876162194370909557666656657274482848937628254392931294032137257203254779882582635786073651761481822281249912411826488628756023513120656540948956353213704275928632093295866215211695579882972259445257951604504021057889327043821668081163646217867989660865008464462520024021628046526835737320801403860019631820580656476173300090545724006868483530061325769289444752813176080696125907430988082515334543476095211117661232911218936598585642779693054733525453660313672464377530347610294164114653749926606766790013017812795006552893770465378626759196250228248284951848180073010722011605958017008453290516109144268178572871466770191860587885888184431855848540348274244664550812233175726131709385356708675711856647339342205980132564412946238264569885973008210992823639099861223791497019439398574607428574233861452381366271182139042949977682619079569554936183333745765851327259921799206173337509516562841370915868483016965300245335480308389362040015851541409200444665793598050097308638197719258325732293363988156033160466319944964068136542166678410591156069594677512972677701346027995032509575723982035180700201397674259404742757921208030644035498585785531821031354107344835914415913548505901754332289922333765948210476223265092764035240607799894208080119001742952767230596795261168848528043887267808447635661317303070935710733466433702663428187707250193135564629900964064499964005632765315370131286549033321891479656341068213637880740282598386933165892703588594201762521420883194582246773178695900884158492609375418452076309632021305527316134777145448381042014403730770489199380305547635849610293634473773638280421081866390041731359588907564794009574963707513725896683974989537961911577455827813623353858571806748571766449126391957764761768558900185266830932149053581986499718907815593854405231882206322037285494549358212670035187348227992640122918356194296378921800177366658093661201266105145354628448659099496632747262495307170114210723843314090130436064515765601336741119679040260086096704318122700168068150540133593915012945024168414060727685369460792566073053159809993365647112270474281265712525973706455828049627460937782498358335237461571578096807220018831423052473245989837187613073392229453355179220747808582806675995995665364321339495531760561544435894292102532876247659116960285368615709113189218000831143424910906721207883217272124193012185586029549998315017607188517942891262980064827084312000966937847383045812750856518049997013136705839513792541162555664974361495181494803049376082725638145259488893743278493877293282941483321582478300227492025572006741250789854372179426609838080125241917375652765628838684940790917906523520156978257801138978757028959897545438567199729213807202973754597334013243350342560620238163151361902092381122284671140329125264781744598430546506444695657110502464130690875766899213350086747303652692266792678204271503259043972751576579954976028346447466019211962166458760032033185678177870798021472914368833325127412342498834753642290157830474377495593615819980303532842450532576790502769723111763157094292305027617830909068675357844981397047545430317655260554931332840562237203582765584657285199332343656177053308309300928405605561941114516330117051940387041674942325603204531663326139859202108125906310646843409575354136996924145845802523336498361221847022891584918123728388015749863705919483858670410604352502025450146400146610898203556381608139349686168475414155752692789022075576715446339136189154597322948537684278070145343150317902540498511707944737564321377739115944307659073757826796690889476855574162801623575381305634151229322397550920550667219292996125875285199404159019433671599092348437538103658225795655477649472166290393333827146458260702272498724350866871787474084514912168192604605545399795966596115615056674219574775475880261830485280288646236077813477917070498360203630117187995227196737564737711095679520642496660902074759097401733928456999525922753670555780349038024436636084963151841597654683048464217143730443224285819948405791534769411910806516418198282414801382786276772653455935213329385997215581288370312826352854508030374179353735869179658065736330397746458916857084654459409162869676013017281201831155507394547913458765192164233913710174288130423349581292267151920559528392369765892466305853424818396933209660847491018893947540757082331438816775065655355882799281453737115141103123577837084782884142701029871996546370186206862621181429205810702839253676029838795980215567789465791690807634030127644022966323893566270954125288260706865370657751526542082642879216194428365236371770171151238945864761684609073490981012520755222672118976908983595668776295289404497345313265711311057488074690822212176887857825547255165059768252650955718299109533348497929861677428369509895389886533098528816693960062995587455874943250107809248251608394477322100251799144157964644896443689253984141030867013517826300887137957838811677525350639564145751697551236232490329293804970938018619643002569413521487489630732876905138442179087526810225898959901853367901925918603643041504771600831706553361635954489539876815368782715890460594147993926739415961574262749092547596712417773410496861836881765928027000065152850458348375894354512777636704389384597983345796965108875896075178370740548976593364670023695815750534080044639580443628818760687697861775077299859195434067258732125916704345727156529438688723955039610500798095094157536192259924143128921054660220319003953258240779745150860767636930773889961788760957586034912890815312399718373450099835277303802492969431124426775687015293626422729103982747126321645218571180001568994771365514928428132834647950533324004645391886388519399205384180690896612018153446117756194773668804947014729679425965663251851952844751379586922794622121221936262227617530814794892024198761889448577472847014068299023421811847380467058073487883162755542952449120050264995502602097353617335203633048452177080259828930752616374261749477283977160420262511349041355513555881345072227265668275852541599690011448270556096607520145325413178204220896542546044438995429589552492241263794980741020152298600786049667990891771970154051334680566013381997182550480591161367786008421601365574546359912648513794554772164442118385843777794228963021904087207861309741067848814826468886377549023104437890107951866481200927919254688163749420940824000371662002796721236441348901245741904953326969493629508198890442493080842630572371584804195029520939667490502566993492648675872837392933449470308103540491690681743439884556709213964313921076210670535072917502404164323963385674379838006188985183027317653030254174975572239485867718194302187690548572039637259475957784642248567840752021718373597743783814364551010369143844676895154540811256618791151418000835231965342981269535685024034564079479157293149836255702228742545531094402222140097101646922552211757289268428786435597433823503462580927231484072049545604491969081011770549107378257509005450184982445553849842188042316358317514518356745674728854478595400273043561893197275735527185604344304579180043729868424462189993470839408707141135719187189128170565978713659686191447461195292904484895612383088341663941069197344750435010622326689390617355730246629214086156826370508736120701656629730097744552784835279661000348753026556133205952119523658750178608244609240111542151967004145109665625392345161402467605567067619958637871966099866246022460334587542226534335971813552762195948048762045363550463235534771526164688297923247618227047479028188876504565168573978856028220621446108523882720779343421771027484621167002416344988768917635205444527642161535257935845945897124551766640753582253105252896216607135130133628087341295303466872343530499016440120974463399445650623207729586226743117111878448041871672645555588315884272291697272870578174895738196659544711176760933968677508631190341001637732784421620408103854275328348209232034517080716949743768849788968711691490698261028324988602153536832048587775845891271582582711151690015016489189977205606229070268179976388077760799767242447902969537142159139436599376628217780604141450872536024379640503163540540879299308485682978795018823754496754334178831024134183080721874954174147861171691438756821659447852432237426003680054434626384575981411220033110002133288192591347752890752460942804568543914067388174444189425452044401344234874115326259209765067030609559952109495441948788158585132113132973368541725324752672872470054792086840467763983371727226128783856459311524050271053821285945126408188970001834523130261999893404676683165461015536285650483557407481128215825951721712560947315873817862556208649419680354344584149616234950191390271254510010696991843583128877680482020132760879984350553522888639213680966505184322877657835458169509706291599679512701388629374594126531481896479801142868180764855369986186562520101866036881326084151253653755791711800500914869200086354002713824251624687388572528831894943033345646365049104347336979885186986771152014409077155060885069849020225858382566567066225281518355209547682626181316530320826723439007932760274349989687983223169954227501697809276468759044535819072758011251853677392157379666144515025549043976104877676406106051838887600137185693610355476174972853943363677385974189832631886025564831068552055801190438729268843619561339665325043179106755931378904932144726434500760685556896229348157148509833809870421386433096825223761683455819403808749885050015112419554195682670591017198744824573799797144170318083745113616396352770074709188635376483525277490611458717834641467940516154957551804093493401487617527816568769345033712576062987488867517907543255283288059056215822853951780326302003222423095154756764229002114295103934943038758148273807016040903622630181994527275970106221719698048348122836038027734426111280583175654286578239828279723800892476719066648029058080407848733772073776483890036963512132675007935170713137195334392766060481875406878388973286228323891896178225968858230115876589669915031781242132254133318371159907668750633117009151445559206084754175952450908274175825229598324159327830867778712449434522479506001835898777403558118757943497492852936866076283529695084562589842916571608190009151978908751179029400470991426642079001510165274366429134629807320151074615930298500944844107760845753671108453557771690732161055958782118823357063944022087162813077267847366914178753183631631146245536175290357594427108111062091001394982428370414616959075464451874235855530330777277403786736611364496707760143893187173011998083656166399876001063187668377620193991380655638606274257189449257304608212936782914021672383851462645267649459039569065815926771145787846199961331069990662004785544546608982862554232698334175650244752980769694423491222224740067594098027418204127396866742825498996067575645191873426096352636054090717770059788336310415367450900714988431226615814896298993084282846916450107827872935752715220330783527876610347079630426357817096149498352994132094185518667830024594893107090022516890620976257013959085331613427085702353983605640321666944302282852195915352779113734200393379458662637621178793770100279345689117788991672359675123954748729188625723921539383715388526316561242396942484501930395961101347854157353649391915031293586065725974119868814091936944024669235783999804482892118526388932343447033831567377808342888992195708412812954826479447869616007562948891117028143246905579894079525050492514449592819082535717005037658344196540161132699451356014096493403691077273307115089931771964083171381602729899583765934930801888813636914142588980792920642854465557749943912038169362106802457050005443688923165498203919820336939449024523972024008170698766268657687161085281514296997851318486769852589933478918729645259513357213512460264808412636187087410163868428174725383812483887396727413830691702861343137934083070956632564702987135681071238003726567888344073017133005092790695788534241447157234444010893276130738735194249298124975304256226675929276225697243486690966528508974106573689525892667289017686346344871066487596326712322473753474331317383162349028294302097164781087639077165942420703827240373359625031714791367232864977172764771958097054349604220567614364242126098211816254323965940746577823816588850534530640161443430227220037489633256876360025408641429923398982548998879372288644983799361982618634722152454459535003387376165568533954134493896078572758461324629343308034048596847984239249821484452593107098988081894840329543748710394530026878530969022954716051537621667752653510352140090595174586405640421698296075434983991283708774743878099091145638110169268806546854672912119038053360285804208260459666824381708581954146047463778152386400282848190132241053761040017492082334617603895107364313772621918975567406491559681755330784892718314276385031445438585027197583657828051799240111896131627377141577246308906172605869246070524736201241715972747295243313637620378784373093422870820833370799912167993560776321200553980350224533408240273204173790479971444534262550495147143292316806512973977487706737797608349495380316044157638956438501320584595916604803106994547673457740672749785168202280433935626456819395473746835392056709594161875922383873085818514048039249052704842648735109468139327748419865496589689775907575803130991625439683005593584074069092197064720844078819176064727890083590483939023437500327312807095595895079392890108403610132859391203013161043805489089206672406218399677974387849280692824801926452802998987182488998200319090218052100743258426722517890640062079523475747607853870269164815385635199342661804186667196000246881582401611905959842221836196019628431216340975352763869919681227301544320131431667716721925907483237084928183229099299219343926757548733915541644527993419227420817660139417407558777297642464311167858546260144383372665689203674252483693334949176970048350285647293004931135444411020203854533905598172453105012734609414116815482303831006157968458143376792600499563411635074842680187979563680432395658995168827665589016726788485750865925024242297821182715539341698272233433983757196590182198493582544522099835045411267781999438989654540492204031722302513047233912646472160276878771122800991507720851210225003829268333712654207620158055024814157323451952985321514969080128318616087655029743486063789314100892968409975182673638111281186259803542862357452856754112381247938666714780695387183471727247990342314563711391235961847925809896832271493743083875092155790321088163089551314991867589537623517666998225998524741392525249834914427261964175821877915052890965723137333866343605171877357586215990798175083875262477862175278221167043562288920448601145877621968152703180478708076515605124759861017303655288086842309712431484365431739353177096251762521140600699931582990062651848932009518669076015311104865643273081615635090150940982937263509645362416106761784469117395243283655592179764853751381612015143579212344815208429906539034710718552263827655495768562134584935690414779102767428719321308511106742089400567294718026280675835662261980359043279671750533895708999560307500631456315599661202947296580675925005456733144205356392167791244896416277204466689519838400552620214367519321729875281108188011688421639572203656921458580137653601071738706690912410509829027121744276171540838611885465151896778254029208533793717849067050182869991090148288045838801838784671219148179311885781260901662346727736538605283494551936955712732203927746121377885369664839700732000277577767364031643331327068695093555429689560758853305941136392244483475618083918855339781133968395622182068127407008930186197678470935237608010925213899601917328401318177930679181428183843713537047614590665037191708818712135220031362446336346451701005387017935594449851469024056084231493575786302282358639894977594259097921999389271586552683597925848557682214933372904984721667939932740669533269381573622698726248515366428759067135145457575578382545130468669180316603578726647771228578246242164932779604502109964755687786958380868305951466659786854706083342366759977799144375839477072416876581917651482408928243822817286773030825773868092884468071252358428794269460217886926281779945932422708982324863148971578605599467496446188636459710563165921553026187060227635697162048117207487125757731256819142234717212170478278879549667149272315855988594066255059384109276540790150874404773187079734113527979688939602641821998319236740587766857980829665193579515782288754256716821852796954071895331632489286736230458502677690454509049829595986994934077703759776532872899182069294427589297931415596313672447464300443086171791021018508835389016262449102499437084925411742708988317817878918330036666979585601090820117100953381881251421400892047884241508527327488850336827420672429046970380839722994699746832070992983229936566288844965446704597009566709795316812921275791870346046450511811188633679123362745193036767055214286339168676496305071862385541578643926765156545954499560659574987177340837202922730903405110362751833916744848218596864975528765640003750069739055202947360157411001927511493193982386648435238997316229816722105614993972431925171580271198765753474972947712453768301274798189252060281590939051086079158362025353582858204213204056893403460420571516327934957411125171690548260174956952349758187740316835152376980960039190388146368402626371879638980259694656879156374688272097374172287273300616882682399997753995414057599020985038110558749170459465352075823689205118667397758702032098156415075000268126791429567296745822096002735097055855021291289591415254775079212051455628194829304914707825778764996523162881697666558276093691483707599386434579295782767975978613024812749759862066616900791473375753438059898803842167220233878816987324071176700913912056108968906200876814529499891507532619601419388800675990675648102195048240293562672835665453692212014936567357196611417385804579547572524635062268607094107454057751540303484805313813428241992329941804877567175166775407924837929508404021665717292986497238896686347363562117561199468293322807858517188292518908140054764596571997012414469877160295198577625681646111851460187244032618607126949958505768224931926761442720874450808767509914184964597916093449798546626591303343497267110617871953249672964085542277283678767753337675931679730097570874794982401476191089842875191912263958433949398929557360397188904002882630649167618943177921440796992029911438700280079149680506523784129462031685416630669795995468292823990285064231704452125874885939021570392386054713247228904985106920074225596445025848373361070688605749555123898268651937364106870626865117329063662986623030632356441518433897603512290719469398017209637714578856866324340981884510023785698859652426845173558347253250267749224785656430408632985347942903575437623200479392581286524911707048622170747362310353869373111159549792682561537044433974755444198409571212304373379104425017253132871704790989509781244251511584021957191743806012019171446874123404970422028735818400307034864629436907613254597419948790346396362215259098923372597138310834346451974233802663599536749578520817343638343649420880830004824880203984397888858633879597387466539569235268550380003360349794894426734814002061744400925868906115670652975396400080027532446788930761515718471270927052750092071626681396342690134853920684224051951626299871269859252090992389417650090804862179649098646845087395617963501779980811418619046439845058203858758534555018354192833428343638800010617544449195077809097715964875098634410512258965227308832416197375579927156941468663817204417371517007558073212607787044676861002555950592032674116717406100214713666702794090849510728630330779679115307377808851464933143417175455049544641290543296439350835329272317836722225702870683376953570582713418583555501980572882416807768592792814600389520325485328435666869044281767508250066595796770592842651905984022180979032734985941930779755521201926382753011657687182781474918921281922676216723419570176144402401419684899752567778342085985544293655110378903888084926484137958597790329931956516209211697650940094777760073986391431489102064829579602852391611682912233391500078662234821938548439229846198375541461591148291635693237081625869004546494219310754559003610879224966003010531921707165577735732117324097961826595901285275324917003943939295995611142682499797436430334660328357760312627881425882635670387066337222543680185040228950361959495658007076692745362539744567641036314172822537377244010871889224876680253044151169768790106103441601823546823402552056963530541863959832008759643042385456368261871480663482981243426296477348980203202893917634951274043962645936787892729093707441774228277033538851129865692746413596196656088473502814094018743817743323361412465490887241776111222742931700232980705666805204927638038834099792904206108104886607280976683805716019317618053107355037799551115389801102418784258149290644185543412280797380430871458128974518547814702843243473513059204087266777272398192113971287351876859056783595142234411312303726887237979594896096412912017445623466637242997927936719610058128182857682289149188339967581530154655271037460374284131133755451412094266849735814548755160411100222136218196494894064079135827443307799557121909513501346505327209261285052777929502945741877173741511074955607535035010417705297545090109311133286617135925148902532431595452150372092907645358576463056882427686766607732483028129251647584123797532190114233386197942336278470812171438526859966604898554401627145984436808770885352348655202588935140942008628147208999675147520188761515677616260609019401095171441912255419741330473892749297449148924857066086566768163176383102091810394830700640872943883554875602723718135248154157450472374507567266292988819072026535057754810235998580395584850807546392184377580865582142657236123845793938695878472679595082972351913862971945271479006169840149879431240283959043320109495803980733301303045779344611289215016202876587288326225139981595245713632488350704159533717969240416599694204652958905091420038496989657580756035818976359699210323491166789521748074987409776515706802144213806677504534068833257853144513446670095525367274180140065494230913003104672576314714760127840161115298564539831189584631441530335219788994028897251562239102495378599831972336626844970821715001045762256269931588625091297948637212812219678045261323047320783052471849072761176416944021599331755130152928462031455556572532033387632886682323238519526082812643516048584047450179977769436006545346332679646096988140006015916235252774094398239569736227500026489598947131190388228071149328941338252424914321840174562043349805217683621740375442802130349481459504259179710096796158887848779692916786390458286687861393347584534720084421024327129263195271114843868804943614227444237639216898181743522598803508349461909714469388983671852014726653684461752931014118923254814733608656439408116379901269239347621521331038801945505908008787310501504075507749028185259868827591863041056589503806266828328063192208095922699445717631643581589661595100607207342321112074093459846944446166849642760056706564187013461798626269384583960121080900180522099845152142790731358416873993529889298898047543455426553639135052630222397808768954499988435191299197801479380217769190090889965973517605478197918572660869104793310219933362768234609738729569898794129504820294302810160342318951406402202272208446921967205374438294685630416968127492959207511422771681305870844714473081368530406808343224111773328039298638695543671623706092344463171499597395487682428202359863439151383130605542246355679460874896007763147461516283318002741691662483269584139259669676825798387589979426274457516292180238207428749044205581335250067213271528661067592804573835972840011323827475597248512266556268433091083584818970866419405403038702972374267295065965860340749373157601619589715662979937320119786428636646736025915568529072135327784797494476049243851332417365170404390098827957048321058904920762938599362421673582740451327255029294844602960772291707657877862152751778311586025738760224801121385873617960386889454036422934221180364794099090825797070078808516500911907031963552493676971681013405748730901670889073681163896245107905255341684258619394075436456608873400203657098001000201649747633045243103692803884374444355767544912197020340521112618698543151440333678830630417362382199220959501646794732066614134046487622757780292688187586683462683045572992184713732160686311890215905375112094277890939970243535573259915865277711337098702231374351595010031280417833109589659031461780920960315995693928309138713024560103300693188895125467189216217017823113514325567680524035404231054555843828093720595193690805393174221109626807190501277749257199670845960835932691408059782242724216298320152080796938347142205421187126271825374415853918727988520098963521760208618994660851419486274663306694248643244877040524587554635372135653210538282429012451364486277784833098956590471510524337651498553710256291426591988510278898745228640184405756485526070205785748717115074925462486033949993779883979120194226491923666021033255990138821781888746637312546604062928744054174513705855497287654102777116964548820349544470041597036174146441152780233307352477580448078038731338204493312980450728012566260325926430367414448234299367059711020703242431004987848171205320627575085082009827782414760675574338046293049887915856117524099903164758983684961716018755795799018215258726578095140870215824161692850588029007062145711223056771320930946885044785320662273523017033633553445518465848503842088153977922038785822533317886600075954999879961493306890237464068698726703740894908378278084341165577149731143711853114079776347896456416017706903680674029938729497620588688037072248699989773600198869004111896527520411119618877561833834546666905861420550556990477960177788200540410380216525448877068561382096379983119134835001855462520098854067204427935871378657488169333072034973646743104177405526348074702036082039656968556584294350185413130659843234555507985569105851058835718263374695979561940737961021957629712399732198820556218720529865588670069818200373019285095932131076237226599064114243090801850054569287561270102533465669651900414533595599047065812590687486111017674638697965652390419959382010097673346250632184184062293341753725749946811814986283589723026945301514958651903359318290135874707044327028954815388778509560430146510613903326834183229192008450219430217226148656302039757043700161294498760516247439150949421357625026232947231367405771110024428294055015025869400207146145476096870022986293005580101084852335639833304391755259488184878967588009574849178080447927157013617315324210173645474319875547519121217939147679601396286188238886197253765118812882169433768650737905939149513800618419276736289870241198602920657550716460096796094975983333244285138885437178930483191712212006157357772877565722819291964223157464955410049219126571645016110374141374946566454604259360786162636642604776309766327080913345024434879503123639862403292405480303858434991369355841698376333388631150836119034508083217430642708797454535027063613030124408218495762834485611437960229159078962241496489908007278245504111419636602596608195883475072212712038991211680141745243942889932653516271129101257203035784440004951676794911186282409162236792046976232207649806504280322584044900839864094178773299888311283080873000841212899602034914499968467446304766982638118322933892668188223023213118171253955703099962991003038545772998631774368360610915737616195881076380813613759497686863757143290156246607266484574942688639426367668082092072867961149634068124069768245918032380203912326347599855788119922975102926081816529231385241283926622595311384645390436115891735254951446062185178835255432119024440761073739955733882003385443613573665436519149360468907196033297517115475823319784402103430735375503872343002426420432774478535056184845252674143476756250461343547696662666137104462975502918949176339897471537160425556712389395264288768660636638247000834923705106006964144884624158591953805524601449644012027827365655979077724395482367084280009591245467877882803081665937103948568819929055275641678659516189826690631596249506344864219706743838821191789291094450815450607798478013658245866312062131593360953188650898684081461244326706378878656166684105474008931487870484081419719134639148277735758742446064797301459365498262148358726889706415311909154778599058113514421054214410304423948623626634945800727406589859760208879288455378318942930574278759683078579342458465677123650384126888057032079771186433081690747486780762812486229753669780105203600196345424433826798141965371429058947377127451892826765205218448276668659030414952970029202965112416938889082185616790654549611169343700882232770460685159791202351746560269126550889708053241561371995798460509049324984958220458673283419299861486819381866969149804532830663686297881410988386620810027691982523090961703980138106576800120677899524240785680323982471527206868753687812792210256866551285436638028372117527980698696585470234230774840480334183880651591200236044994580073815879622558141276824693760728828825788790661776976974918460003599082083057527498200501498950828777567851763635223954771606960064165333618232681649851469801395187317437534781610528184061064905357032603465261599960164844758448555130813992880510147470141903120618284873574658213819956751471093451412833827376307312223966353649647624067026198058898622849125404213826997332994159441131381416348964569859783701726080770478221310187442225417355286154852511912971446706980411592495368984999125941290719236871534647011702125413307346715174365336424686337509549065786314264560540879700806516527519178997309891218989560938010783763471478454057653749228066992319408290664275904409732388186373442602712871976759165783696853937974189782833819115674582332829395383158663798105925960822889565557764218593759170009616822804361006621130909829323114424545465148399861276798812483486617498312250804788133066516081567493624860114879335126572851610927246561003435869432517989615665566530081931665599204695329529121055019284880727845653549438349583247094199591305387053547878467947142469190130387129425248574526663494485768976878518360408529240364659462585488609401518954281399018457451979681286226931453110299208549422966324083577981196192208554366243372968525289193440807218991453985596026007064515036063174785056785488256834940673716479452480119144207705336707812257170175589997777618986246440417428528447796184599844619408100304976119022816539473697815576078368599158716601745501814699479404075856902622585928071618425828307976435905267814011931319036581856712869351685924753470818497211050797010779053790486542370761578357647292920717273324137425976059895494542016401321575364145644169103520745066941304254242312413488510713305231282015957106281803941834876631225334409397271483424425395609829346089461451832082718537454361397122881653604458628130404040837730102358605300673118353608154224512624092530161779561030071553484766203265152909242489820075916503301681745791433070655686041683464607057456378493051097949374702526102763147548984667095895778290366144268856372219000300470685276233186925551482001396368755073382058073393112975163124646345335264353168424683322172388218905620558425523568531334316478303894131162244385596552078563877380484432469048726627313846931285816365868456949387119485977272686318072642911003747334685669062849703467677495369651677209181852233210325506070900979788519740011141699219415530495402731986621780562017397716937000660490955837812325413960391783726437932886244928455827867166954938193659317002405721658570079257318734876093796510135112662383137832872714337305571763611747924743598380737896605617382247649648634869615815528820401929715915386652734890263664792256076281742044486842147929009357019581596718077481878753549513098778248126540756314262696094772009544227781831062913606807908495699994023094049979406100061405324107832452174580291805307021571780781793368069400403011701888056392151137943130843875136685982225540660261700671154139862636614247378195620296971269902152059021211047957750228187408784511846728299817765563178217445728766308597704279763272596726557719382058493325428211959757688233709154776922700609973306196935771836126688174475687765445625123631251671614088998373151802044121182248781258287978297449438122829580136690178993562364595385506155078113068296889183042305490067817674616888993512072527429406703090541222723467169940016117062389245228570739342651338394467776589370778212842354738616693673679699096586484067762621622958217279105345694490697888069654888867592844263453578708366612368332978371812609535268673202983149266503938483030143031316401022311493058154780396056396103940332702021587919587203166351559230955593309922630845740991394008974853680127196297889863656379774959272312336655566250617392610957667819363549949086575128054161913077764191095140595532385262559676336001099542286407790583213284938744372218246928586621648674928398874102773770179897130916267028503152035795647809020614568488595643704245308856501844318488759663363001145703907160056067734221963156474919113245860386611881050119653499223930794493867326744039418971085171083108043090251860496416546763015395670881074744000306198532264699268701536573352725188663470902803885658318422556949295492792274557961179626407339206284054398897837798468105564128153063257477459230139327676398967125412113320269332086788138305168124461319303813311683806141529861016672370265864952117868514087226222821362573308516148893681856357322190922419084857857596827940302843464674678654867796065322392393893719379346739219776769499256672659603258878101720802248868004743685700637460665399309773844512685173233346700722323765548214493718837997074103337701088235117360709700982968701444064138816685608591383349320742483926604348419294929621180951694595729196166166387742050121993587094498135788900410306456083114123823024537611287972838243940535587628843539305137924182371704979134090981767550460081028454954767373488925026696893988130843812441949105969849488308180956862847556176147727680547805791704384097699385896702056759358697175692426367103116955910910259362367249329169712935095466904922595782822465957605288509053081128166952026317800899566615947933882617795636743432616735182664322036837152187429888982818110537671489501605864581327602284045194973210380798301032200612069203880525829715397361104342180882514333000899923999473284738013434508901638225859621653968058292521396010371765014188118185213567076729155873446740444422892081999476780899342400541240528747648779960672472422249077847249413658199781797405891868550593780153043247755604934107558098317541694273706829795683370656467901412913558979858791049589028637182011771143504363194832468382940960185652720464232142325514677522398080034857442660092699431571038805929847598958043639080327158980151086771510594485053345540155097173643388787283974110072798572991792630283028315356307233550761357265018716011396226459060546747924390625983081257335755318718482992196100028333053720858993648473104567308195833530379467709764768574832417082942879716507776646497982037301058325877013878437897769262581293008806417570594013454788799802836212931418278703619810169238055486877411110551195751376728329483234813571458354454066810385573108575790656783377586584648876125579064574965044152033222046287258273412444978432585201160018362543273562844762357683019479423554312898096114664464065317813607012905827826473886170993115298359348811113846021554470249473178579896243494824828997757774041534779347379159724555138064013842226823055744244084440478772541573211882909279388851047028394104705006680006890304654576093198625594336901463601468117941982372031255782102362785855008546580056066407031181482669493002705835856633871581756806001048625731793112595654598046156838494288001048794031003640697794297567837925119250105295671410546869285349055744252945547565937964362351683554991286566459108084507549562704640836054826385606410086579017460005737831878605859964239447770813091793346987868657382969925904968108531390413955559249670106128453154226230782816231685600965790885092882008157882848961473343025822551778171732727746284521015467472044576772684853040848156116116295392856585282182960914376640887601553458177372386276743182976071806745460012223806466779148301894282148503076900543079343774475940036103983149868689178905962485493071330594151977792773830679070921349144528278883598956664811153476357709928998140961047988243676083830246581454987314346403889572176955508095155309484905154531157554807864526532153431207643166662460336525224667868087743465667547769806126111182450642792756920871696143597331310429645897537985385344180650278463033125757479979780533879889837428677568130459424107280215799178728551159621697814311036258980853518011877750971299301500690319039278916445549288390364113084154970279373553078542490746615436780422063464028250115086214992456496418132388742807593980999628637202064562485317702413801748391350320225833805949307332952835060732394137015181933342948355474238971698881052944312616807014210601651230473109115497503272863681857166204496902091602884397704497993522499042642828490862239716384973971033635591010660897295335408698227657740268239189495634213948494051258140623714789561306415954143782639003614500444559737652514326639388184898320960379851009744225346929840454343049253306335550758681905849197311583744608804911830286220773780989523921815817515176378770160875663187758652682493348821118846782103555317820961628845198401647876354796231210045475124898712925157120260600942083595854176004602130981947232737358507845090399609632282858683229484185001985075204025703368691241657062795840359293227934367022771205281174306397726040448372113670105082178515171116622022819193326353132800690102722980275336428389610804607045595232866822376031166464721575734120568495805738025307253557761409767188045315465502470943488107269474414343934705966624828505180721579791512068506051581388956751570685524771805293675528447879769267558385276144223867765307161284432707007535870997822460844276355913450126849992647209942072044933017879297354852700466793428358626632588872696266555206046594993247901211212375775515436539383163333322380271831944153293001468582757526735026849037446866500229222529840896597558852307586811929925767079297242367474847256128558067905609183583309555010949835684769598011726315847754379879377104963511759049846518436709020638461011856519811202817383577971390944834590750435790976876834154083711772017856149280650605851324697791013382317983054200033020000827701953477759745054890339632767778164937616121368642635221128649019326573308005216603625866135282763083180625571597864272798976139746332998558355317536849171986806703169128017454439071782882489618653207776527729542930923418595405050911865330953406816882829030121646670314037201449577704550938479880232738676266546589406171786652005884374847156625434630386176608368319976343153936418556447180675791320229868873878309711593231195651432433870823249812952440961464284853946349402595968222827656790685232000662221420742480613298728449851054942167031088004286800877883222124432577507591164797471901390404743309679757461938872542095202045643334811938639440614432170118533337896610380486373993365911431946333302571698901392544607543816312647320760919999621255597190693601035283214997496828976866765035893412385052230658745272732162024721132688085933724258834195376057784503205435394507746381673686946619200575685244202008813300948286683921261196262279651080276619397605806332002781881625181300099194263211819152171586408391843290205624989416299364376953188798283005211521547265190629427264032176795115585798668932554434826508220261126431204191493676706436960357727934926553654036080500132831370777243686680063931885568246950177406722769006609756217128916032910463883690338174012725466479996332838747735981152164343881044893581209849943720958006752405478127961660936992842574241194199453826834151697701038713044285542406648960651907364225564262874802041586698315820312962497599292817239215549137312112331493491216798839692693590045813940464771832707032600583651811051968726243851783197519196773514112255588060734162979094560985496816019386458915159032384001418684468128209239310631959924480607686872838538015177099468786261220158216578992167974600579035019812611002273554985967814733780805298356275768116291471155990114990358562791134024593452538769547682980528284633605750609581818869877662620106217594563669478141539703107142551302380349557940981359606441537730047986164326867422457273977620488658959541410620566806790824885522246348486444950423822484938636546939422941780262008050240908242903073653286144696213440150552668021631913851497173651881726690576301171963221682816206792117998038222625640498946971100095344013219815271801195111337288839063688496014808304047540316910018900904918422979277099415067418726642169425678354366189524159402631429193025884575693927518501680458532339001301441748292062825663917387584159657131621677722118648055154534359707796773397749096491174350864976455657342797797374270666940797556808902015411668029116949517240129119054161262306188810701670326208836240834966585407347222395583542601070075763261000799408476410801241438023509922347842923566721501391120925610303408973141754652001059288674844508558339958319703610309434902141804487789975010154131593614106577542122304331435010921699960637808525117535935309104764464495689655427104692512440942320990942099972883864494267411090606563669164960665693860140718916450214403054615513490194431294942536222454948453183518660185960944979914539343125151836476249565753818282182171301560080028063589486904519222361047715907686697830890103963529094031747857550299800969081874298853431625520140267628540718311100879542440225847547221889345550022424381715741411614239720015122443655811875287310106932955398758346871493193756306535417991642002289007880874887606277688942459349818327633326894750897545757534346940387329095986546140742351307462872872985458400107342651135925529785498357023842013382001976466091925069739004470966558111977734865286527607458484980054690961835700770826585612588441370447806022752734444838057758117304987735495177351377886844372689151487581457228755140130707073617344626222166416052460625784029983694151562577322339589876730196655748911194483102717244331920803052920764988113201819124487968759623432718172755616969159583984755246151412231517179954729082015285290968164890462935596041192399920121482152906144081783293475836236421849200669986080322337223702712099115334517263963565461637769714818324774457291156597084049848433369684333769287736000336084357880203933375578822201655209831771289803965935089178109350686098582502838813109790509202520671179049336228739578318901012302874119077321881807040404649012002354695917098250707414418910017809771383861389950463691512073433504930782145006752174005718374846810402125947260380159973549655878793435214095082094738219554338162487686907783409692868195063963625959684248523644872343119882725814609155709749727747793274888188822604835350776255187599164140270414698047084455434848457955552436513143639578144095822848455250989481600117503856790186766756531940777720431545351795583430069838831339047711266108670386855613312326679326811643092581797394530694692458492742204696151639532198009417045501233917243547263829867328969446438592933253654433574370803386708607172810895050589120131148398513889284195995763812128882003323416641034115593244484265994616155310692946759055046560631110554305821151487740051243436258365798949473866560402786747909744955268712353981556884775330134599427710784253713884451225862307668179724950356879162899317948976962071292219375392440647065664552805114203613385411720301861595552860946298151211057292768233793871781766628722211720106116972223325240000165980504427503509444577206210099485919200919358382518969120006010258418324284703083599353201103282619181355282006856969112212177501071214331815400222297666833819565183108512958601461151596788857011699725324864016963682592072671998155422703501613966908897408126417105445393813602126863221813485169066753741230524000650978426485799113077624176906385445305057799320000997144570346326418777508778128666158346572319136833267088233277123939072894861661050440531157257014143352526420490845472908341143133543633755609633223802515208045987930466232909336122185026457159823881980117739699352589140806690097500290624018059735207210268646262321994573862808815439382394833756052826918960264425157095719276346700838601393226251519333239655648255675270789842293229591529386356901343469094413566370357554694271948681574475006559328848519447089274417770882967417283833210947192832397105174992040700104165966834171805057236976961395194046934723992149107763302092655324818339916563992570492526588254577454861904978700027224264825230528254748559895342334747174877379208711576394346358168301317014593225881736386573424335929218137266299667516978475235468876206378098735336926102448870088769046262326534626149722220659902864182252462436088065286969949129714361315814346901344351448029697983214267736998451124209032290928059298367494175023908627456957160920616445499010856994854205892337834781437895935781798843102774413596775810383981757011718883342095420793163741113523200624629684864907617043054745246141737246564460122251684484005334167713472921566843023737009572314957728172649849159726601810537030535096197713498516944131332068262550012540177286332421266135867469995583749446540210595667263892502426343350294344854795383615109402151606242650325674929422862652328305525015485118353586204743756692900120300909666837772622360559108720456241523921997980608336677579419682048583003801516211675452759874269489354704321974201886790967338836508002299496221341172077070377953261236616766202250760369433193417953736190171897947103803907929273200762880991211890855162009425447942694719845973873278890140098343809206880581768665579281127246181880069451170425169367589984466881787681401012680773209313908122487255746318454342800226724655371753131090067226117682937178513848388821823454594040238658587161102746008531984450663767669290172136574418759996319287846237356235683690073788286017808372724117173464289887488786498297206493995287672585157649463910473532825985426002340913123178533596910261447688081021302042244631927544002359532670850458352874716316909344686154046367340260905238186639339469026585266145862984126136309778853738012787179980399327473729637437532887633023497427863912024306243598822525777639375800952385700441615918779630782867096845610366941665195111322874123390886778715110450652641145783980945742200715925620365104478271418575483769497954469866535143789098492340674468366205734192512205572837428301656947384902960407537949723292250991768090267866565531546415713154440891072065691335719888103496824177343744826970950699727001223384760267362127987769428766715172910284894113648137251754341668572399158227398617969328859436329607415695038282375271122139201700059840363031458021648620442463884543770066032194342746675056497290725527388405885573307387017622776166059077432038757637683979281501469571509361548379186717214724478978358025664878446403653576184136929790236362085624977887475081998727139585723883218904730267873523982130880523157588829747491246817438480103019596729843372308784651142645524675528050397553490752325926554072696323484787985790315108448655067717954568554338432544644760171020203599275953002314860834032095384613292793498185973134946601300231837894810577984955650200195620089349860662888437894519524288913887135208337744194715459782612860387393662810089938118897770432414708616508039740043097644682387241644819232645588528498569233539230086388321745684792569369695095205285853838516801812833125408728088429432831596333321545821532585844011706164592790301894325229526302121106468858890229284605712135188577463395609622216041193746616896808898521397691998891972600810446724178111088454019415457939888109663027179188276156359084785374126027377396392588522524668049902425489073711381017141608328114379968152001573135830715772517227750407235877982710901982575671458317204290335212700180750048903312427626538649699675962243596289627108676950344015122810532647856257641933203962238650474114393213038479042690727042063352254440830220065311860092941750353412197778809590459138002708254366503961622662057281956411368051913590484975127036092712103618042508929028690618020085603227628829484855347254920822759362527906914024507059357952410755332981596852486968276400451599994734294882430022666302630513311006708880446812642314506458447297750433758323992712936221190992518364872741976613288856587008343046108747770703034381584184178020605856301608049225358975690359546140389996654078612921139232832233567427552383946648413240408844741710004636882181685249628824834836110285995156210609065061223264651204131688708897866754549563301124707201672761926382059478970440111420764754056043609846144754981635319095521840682143880739027456062308498038681390072456538475177814333535101511232691403533186230742108378625430774727857178706220528697739273023691222564854447604912602678164624591151210581085570479318862036001841676498871040142255770647426450812784400348491168107380978418476190021689740977969790707187997240769584256953790742969961254430899409837156925327030756657564168505506246352307887880637806812856305685177068545944050300772393944486973925863767976684657694067523972439394086672002065892844386008326301203156149298255467425759007323013535718862390497276342775112285689452941012564423747019809056880715141791641245195379716998291976418334989939216431209600017324027243097797697123503821244871881012057190393078242402496316548902256553884162291999980013357087143835210116596576940718641488136012368662381828822251532350331030017577529090916849869623403815537868371478991117623357807864216058829700970571266603897977812655773500702399046594396821395202075184866010557939355740255873705459038328665573948032558213197510844761522908537919937886385530211837112047036308513334112065444879399322903224416039216995071464101868102514418956405409307277501345737998515040286805053421078010743258675872592723288939712248241358856464302232461471138762085703369116039017016981341955800439924634549089028906066573656674439769171925224982328990583400813081021542111222529887697121912229759861233931812871392643464431162055712208306984432221653500141960195304482730315307625365448907484376113888851176588004452328842593112195880466083255934174059784854007539512913248897248370745023240377247881293555610874950932795510612367501114363776295905858350463167413125315491380897747032524357999435607160595067108299059682027544232042033461228278251271275970230124586317255774296261382265490410660358437276145029683850372800808637691476191321868753178968822178383385254892903942957481519100427349688225911663634218353516797977016453163772875700338594336357559955307944431227105246304355255613580281329752342963877925554439819105685100586370368844280949387005999838621345821596404718269743023800233530422312223646171302886042297195492168935186616921468873231300199345976247052926881763722915160071459274575206013180130449115050851357696106361186775812382226236900682484264952505244086443693340977878281944739218877241480744847760840202595135103436797121269543343445236180443275469345958057341899056224165161287464973628104279883635208452369201958111472983697533973914757675419968707872961139757547700564813109674628651936763270711787509349731730702935415125249727587759204138909641674520506055776823833112899650862428472646007183866671287054219351036537565353586276231251273894503391121479799743637468083276160213720387376256281534306740710301205071291348403468311934488363096228272639696803930977175466624030583897140906733110099294000934150735058833755087777920751826616172565650861263472757458317383160771406022363921544230530392720879882194482127970556641087034841269178049094683796736942052796077948503534772962673458700065790130416524539889866261694675878207312853823734844402220765025701905138164848081659714550719555854657915283327392654394395415518410188690953037841796144062590470377234063655982755525978565357693491195234108420445398346237023713809030669783160385314045765945038153453636816240769517651367232990874859484738074231834412994015304993746288590900814524785699234442230919562835580650794697741209307797551315315254784248788494364962013832299179687633953225886847369264088675381798291205634428347735799550490858487020790463767904359830715865552929810653169797791578009079234690666172554325537179007956717871784308719303433750785924119613031148552358688834315365830200188993217813059631813356621469868330087588691264646645388675468086795669224328687018528013552439589899787423412733164716130608114531798690230931754118246380353612947453397510995620556585818074384295887915620676215564775076465120473519153930019409358964072330180765283227375323826580557280760604005018232081594080921023462149966715472246555614197468756639666454618389204856254792792807224148381747527635369809700574013757853523306539992739255379018079679982751270330116415130088392563272191365500052965868404187246819364376851891339729495237962685554970799877995810641412310815686401775478523717100910610688635482836853243025852075225494509595544838596845514937065475348336714142995330122888869299520486804974622535345932380644378299875777576409224512721651429727380191700310070186229375723454081248364908395531059448324718592001660798307823131724816463800147950807144623526868138087172852055530910963707632821449183659885956100543637386594255210322326257122448680196904344657080494013005941434100773108823109682534055881637123542328859549224989613743335750675892281644045048239140392013430723066219800981952477544741713067051559155021904523200021273909463837533243055321078424494966480403272195420783478247474197325490836681804677450244628894295175840388082644267810578165789988562923756058351912574967197334051822665722533659846753273832716359194449792123947996104398435319403412745832389702242655214896885699851247711249181287956923826137706715426088167454984736821952651762501521429922042575750130878404786184212801069856100276611544916965476908056791615596750734484475692873218953416449451021648039465679626808513761731371799111055500341660325962205388067998949106620372462163513291400849263204279462314644476246011534872692205039721987914570093005083251030814574732264259005047626257351597780544423312532398688898606737264216788767579737627110011319115493353527512689611949396727201957676978967996748090901541662680418452257350090749392164435665300793933991965539271749616430760771489456307990551518783722108945621435734429215069221059993066201864482561626070693662902463373638757992107924117179844619310381059940605434047927724453867605918125679349661439745117366889571116189736002907803257399912064667766774975650635855135401939960207364945422082682811746911894119959417429777497914067348448360733415078228705746901579682419068806756953487828445716387767482260656120558432731051653428156337528885584662215441664042112191464714286183743785689980754083942922103955192204392837914949818493407876650431992085926727075730663381151873755259440034931944145025332899923379190236148566395591071587243791159342140483513893469437473993251554706099683892024658654540100579822774738337272355053304099685475150006780113704674907347096310777873873231855401162243024059341231355705012891364878601970846773756952137861930652538185923986768636927279941998832891636389622660123421127035086815347160349873016941365287948072865760219203189051000534964522277307990454833043093008664578633307236414970997295782090825469195117205148628049967217290806709514158258019061674987024583858608778802259825740615258420313035937837201582336823661369983474243719652070175162091393610525090733386959297755227748177668263610961047315928058170424484350103860912259651704301771410898187795251321959731774734847447132857990213981749478001256068160816257407784576918509828058206283300620788475985150740542986113003407677463933957606751762674411962333203799965492704475021025920761156126132087984314230441592807506157852114638739384661378739805258556357999833007810516113195596136945959903084149551286528397914459454318867119855893989771740952908086860208047929193930147148352071805785921524593863049573642911855220154787812893535390947681003543263472699023449200088919022849319269345045301349175219736676532655185489860004225428278307979029139662148801313803417603526353932777717964137878268277955734155166805918886312818193592076563328580445906323451625501321511326992445750954017563525980377754217871733417153268507056742412819163109545986114809798559676001372923214875690895186780553300980637973235347127092040301371674916329124908455092918305175442039072691831080106605404651971761930254342477948643843771412158825688016296346613881253091872089820647135967166828003213884345872526994693739498789878426333768832148727216804782128204269003649794972896022323649060874656851633116653477241023681351402539539959653407685815737323443426317861268264800986975376245408122662040915527683614201207833460334983439277436650969124814889214480767738375704992681681706352611525013188453468883008371352567791472584296090294315874608736808334283892649568514759372615101783019864150075997542958246316102952880997063341186026775717805144118600023035670254714585730846801964156646233738098242642570434747732421760565090256482861607998442389271944980263548175558295021637135513830253645384724523314838306577894259300037299529006555372516041310173245246978036905904747563642425096970558255697475253349527181145953788511882135900391395705590083072981226069628426958938920151839243782901442663458639596752582036095514963236004946721929272264591792389357297374380091564604754023981977193456259348871762361168266073582953845531355887308845271740679880670946044911085513084350424687450142845835265187830638748360414702224040743513250449444698410254753232551248057230446980974235706072342413359435874309584827322981514881044275432109088628459823232667771804164431258547275992215165711175597083490659027073675716686730344912519687844305337059330862427191442898011144460585268247952169158858916708222878326148308141951188457272509191616212485174056346383688857292350804580484760464489979564174015657320857705834237459511989187242137451907682870326452697691010976139432744256703897240508389154475606183570199074542456454542467966061139658198876928114652922811534663383810886658504111965025977950314301713475726657352929888063935305768030656861397673531378506755777066728569321700907494742378587274803619174029904006456534662971172325380759526734359747225832893104205812457788188326004849947183868184977834693646838839842312055732469939274471857501088256116355653413879879471919993125704831634899620577536656772091808388568902586340411318232725421344837199105486133678847947599141261268464033613160297795061491805135426947357959971463263497821792972022997913169335033190975840523155779215703170410568501032299915367077202570311941885266571470523128575576098583713028997098203517338828286987723559045311135796008064596474088138987896708082005998387374868158704022585193598266369056085444681923139896831995064262941656086825255593938780243951697561669991777762705510839841772540543922179872484840572248366898748421243787447452898022030248280759810674323157263414878513260410916834199926355930762550180442596113385122159805148892279059945795135090068658499977500807467609563390700486146013247688766707622845011236861675650184259841209358875241433932386579766409519688217201528127795345311184020938004146142793032617406679583781701562178332204485601612565083455885409232445959178872184578904163026514802670887479952385363307890948224998886810971862675763948796793022079400484879553898463038782105092002868094857566754951922202559793895984482007192816901851903081081966546089571203292887318671293910399009685595424422424150256649443539783341358662991310590685239133655832721684141310908902108225139030133395953985542051115642775578869011003713494364026960876803782630730265980389435125252753797629070346711180984744409231815836278245315782942454170100562828383548342123821682910261660923579621285406612157140204618738492403978809760967810106156126308689106513920356240955062528919078989378455360054953088627435411210582274431851955006268128391529822357361784775621272879742977682951087665400346588214879843481693308117624065822321661587369768842601889586183335545708378902864728641558567318151970066949120324151412948885382090007689832783781560001367435685387085148843023434900798495220594403495259114036685781066118883954878361118549541844156431797798337794503843505137282779018185289572395394721799439467208071456980803905390815204793470955701898323108226858321797119092907900212000293659995622697394686187638190579714077472950913828545612846551992737111365094843557794776387454436569322483761254647498407146373956911410446338340434032424320338456717089096090329884853684569889918995122578945365908403405493722344110235248162429683213693669939830817614299809264579527297372097514399069855779410226629043053393899254576749989532675299179642439757705169161666048502740514339911173235359071367017034971525916117709766990848789666555529754549874080417202401956638079045518106945443840654462069692489309916946688905117107431635290495761905105290174779233946551698040375197284781794304727781886170018592653966077341086418641856059928220423962947566753831929700215551590020291861799698365157836444243129185266768256311476551121922613900482082226544362755386234371759143900662563141999333260984392808353906777840951672292210967449216089443187909998161176375414378964751274194833296637387163686649833497065668052775444097105094316010601624514644621188646181773999688321732047630696313532399147069540825731760369707148042139679819058414669128939776896891928707157367628193388203529248362067071035032669948149819954877247433910015338959082065742981193809761589393462580165055765184882183045772393077758016863975813646694751699712799904009038255713458040189561531660885644429422036673721282442086646562711333134046380727151782473928514261294163528059620173191935971419404151876974942732318896494135386680553941756725984253775388271656388264513781685595874527429906127905058555317576931670580960897692585959370386275614706274381466237221152534755192552058562412031563904067746569644141973691390128025427812634580916874091407994986630310955687260058450646685498351896967849139982925926334811019967999753869442016745594584626010722421341931082780110368398120003039644797852729235679711231932110638138649994251709303933775035831321253270080261869481132958391559934671990066914366147865754791146239203679352507812890841641695498525314408761200329813901219916872180430917617007720384892821089643280150829595905204735653785844013877830647384277892687824852103739756459818755840250102771181503853371792887182248348473774798963404306415065873633863998173660115009482702870369442587895206624959646634314813394126182516372607479111326426232680819585047782274520084335630459967566239833046483816608783320780955589236491333649055232673485292197915843496824086206435918437177247756549796206687870875103144013934801050119607566478789094087694909693296796035074434467837344306037739733456912261061379212061363446426201381622014588658601102659948189060087705700067869502465977134131498906798782400116239720036263919145124199756656642603264160577139035082407455348031380311342074435857823076408339280175647909451802342799384795992323168517133036980896086771749803048090994620868471082234313321595928048159342187180698254662179042815685688819985514385047584155721426670068331653237414367015930508395172231450593912409561166941199688912726451085033591812681398915394140143782570831642782834207022511698570580651799844259465448421356482035188950401294792133787886566153306601816983201619090332005826659377025763424332134638242783809361904329303433930854124291879908803151797567080554909990497919159993908542865754785156847492519161118234542005964945813506814959251877145512195059060106594822880036673005671787156822699793912335851525860501160227115881385413923553290091127612619716704534091923736109529127638299613908678478018171509175860975825195476393080969029291180544723393557603546890076300007626192043904986461050173050049538627520795073956800327919284696864734051139117839581517960691795282810014086161323782319709175954461996143925360347891244065802387520536919518716419074889847946891866537303716725301276984205272405317083506685728393474543396922515518927685587588735111269021386062758605207518905091667869924641197858226792100436730747637869701437618098133920907535433153163813187574805135480903596955048198633713308246435985649123270627352975494939773870551862641136937263374517800769923655446539563393281691260234185261712330135175937452518815811233834358534826828330633221128384699409288171388768989948763566584065874227828728790373909500467666078707608863893184244704709841038247075948540906828906119140750184382402632936448631524851698144547189347849699768155919467693737242536427728912192714139373254134920077555071413062327797596384583200416128516933191885562682538992546147305060924506655356093759541111656389065927690830491176533103007993075848787829622779342214078939825159509725755905583220641418184699703447816246934529805677724899757609839691623540765951434203430570708088744789258460195500492092504919125173504691798325611270674448735208572470972868836006516003344102355435828121463081981046626674889404321538231100462243965736812713936391702114380241279635869617005448443677792746088890605470422941177109439332410784943739647256863158439927684020577657465245223258926190850702657713251604450740749960573964519954695383905297627721480252996313369761747322605055494375313009703165723487499374272815969591149753186915982052549533466748158177200845803757548892216159260191222416816240113026612014646392089957442141563709714543721273076398708653609422036055167523427118402358000997324819320772159258489902333827081843050214122311470064568285106842204533509909799333438240477919200085980314823217390191696485963791023993139980981079630734106543394082705015925698575563056157341042044593572978363005618820451505342556040715285336460398929332885738203244618011593768026660687262840764030215440215403561264493721189666521917848209227668215444925042840408993609653083952341991893484354472317952707136118332021770493471744991593683396783435177419789070827245303791408343831892793491827708710449311490049159889274764490510774249957447923652422404805162753426169227188764674654114082256941666663991676406275630467007861864020441389825663875220084032107166560634329728118194733559215545381634069964140438912567346110106012858360357168892629057067360749734745242967460107404640401895376573852883438614942124206648932504808939729904426917728306287685127691282263029524620550822182015267847764995631128025666245117000723988896156263032881885474373191151640574136841967373217487857763698638644282050532851213933339858043616168845988658856599798163735845327097114100780171775400926313432798144046646199650960967007368344044592348530828243314627617470066150220723079428247764578402610499415052304820773921869128655420257587184822783776130618874266976801010390541879719357245025561159095997018618417715432097889174777988086492565419175271748914892546867957225998583035021515859855584645949393417248691585995424054379907139209068441214279871508090756514435632636853280463383996995791469193403035378144122300872015688947470577640331459301057276545630294095451514304021463919745508125785857173968051847215691504860442029170673479653821316123914893614267582280525719445568137574510641507129874703069420107026786152718444640796460434587953309839442764172898199464985738683991741055923842091529550516145527980485862659278862821826610980375104444638978885631901353595791169288105675858880186493200156205051912214986513627880981565831894638972413513318154636604791700967475306540991078011873299629392338813280700263097213528720515835606529672927502519790207754885347615835359312667010245792802375288097707373589617278714119937490501598890258392014215865391805535395416121764346211493210688960183241140493654284874742551560233116506173164730100043047467898744971930624846323860354258197110987589368544941918344268822899469497703932990578200672867747259693387517748750868922631800724022541196863277952334133727733957105931967968290154546111978701539140391830537285036172805833768733684100165273515669470817713267023035500569566681019463788339894452092500898701449897119867919644763379739556063775047870964982921839455996091647685100180882768512793173914306167769247323384756698101236561902842818124044710310373615801557189253542558348424453353898580940461189890922894228980877390174685430052956070398448222557216280706078717750191817082303405254200725718073447517997271743303669891147621925745088541604270401188163269680145319020092486464067342204293419804154679276101925214334074636160113480101727742985966449913675874638366804931432211334912800089696947262857044717387081513491547238875212069836271891953123269789559184321660563541832932953487020375633693095110320427414369760256342153456960780253814125514185365509458734203331852672478263322603191144152169856253333760306567318271244199914989919740101985189848356574905863510506932204315147634085439602792766369430605973698261387895422664078158466288854450438915426552512474819869705794123558348734051193923805203866173046388389161624727525148098271849962932438453412201394659782106606757814510672437695176288740761319018557062835119395089679995166424511568127146796673400939200114988919621240114676484005555988363455974800116175678487413239992785759657232574356662930728311818586708007132668303315503859268642515951957604309481854830148169398599941775500836555646563916823294048070611717366632605493835901756453364418710173495203836043670212014354037401748413485134423778801497640943037330297789246243171926678356128786260846620113100159519362677349814635721802650097266872951095548669630385690620089148732487580781149139394762978624426828966790565201558958646923063785442134725206093271676935249373016860466801905190255952095665899226022367912222737349010132990184599714829945355267085161227852448834524320617566906558814544706608732446543496481670874483050485152985929454312748051761586627742830913908210505187064866360128535466043242029110195462402971648729674981458050401973486518273351194818005495763819591420615032715199447016451810567215925030275892534558961845933823450430790254498145397704080161694306373540092761137813968690136243526185045998807588743153360200301668297289821030393987462801178936761291366321027374804316941790379327421715826373105482821916773389446430494993830311892525507387225767606795725189740508991824233451187016371293098475435635943252432289899537386659146169872102131122617513697844664143339840421708792763186959390913559696096030288925246379042529410640512327450266657362453831292901043743692826078810441298336422966901680262007805806504435222080689878279076145975751191433532773268193333769114754305822096413498161541297202398918450027655819335530935103254654028710172528197862999406017660273871317954028171846493803795417035582009463820333386975928309847781205679105112622002681151342612313256106113245749448080761355682371588985402193578524471189686773095008362954935321061988001778776577333670957835827379765182784740290279680448955194509414609091695815450836418214505915499652787442699760121243893544521137597220155195508258860739689494436307087286817899803490280559998775070517562908047579942053881336278361143928432217793090287083997206038034811496390199535551182255175226923341536318557225351782898209213321246343198943205587956991468511112921545390333664161480263421277710663354412190153370956287631406674090911124279282470363442417518889809338120428984045322791776863782681026694083901362281899304028729296314351132096626153565801559637735576045964691263880568872492620527776133124062947987961263287230757302950548017935042268808865250912381126577605398307508526341553539801138778528813602725806379693956488415768832044532356563344801554765883982032363470269490561187921902048389332471086674334835037394659550851686358514972766110711509309485241634210968555075147179467773157605849579531833330864592534262829620918186489592184519688538600802441256776715179921855735140166326360096434579506973940653607027325389705352238117477699496898755424813340323527195981950488297354864808423056911361115789772974183360953148534640130455302369207077876573017433678751614510778261179992141115784551962753370718068639317309373209131173889517181104301361555305108914095809117706175935343811635788703800893083813373186805303093711717325088321731324763633613730253741703573763416058794505388655418523382914320468869173337062223152493661837917574572459375336766633668639036984837576617566820866061356376099892353252357051508221706447575867490410928458665949638690861153457789685715548678069786339393097350216355906710307729603188491049461434716652762000979223180953475360614836512859141761381334355466441042935078798479878414274805819479165130294345687718871741450307067585036692693085352900253620244772420853675055685204525161285490535935437451561440742038367175838244888997169460877302111949348241912310531401452750980789011057423267571204179283330146980321447049563281095538524630765421148689195079863499955250902908155259567094782137149886090893253523464613998740075278721452238803384674870878028360327809270777040629317642505067459239892928253521065730812676790720767455551299406075063940697473420629275461072159686734199302424307555250491673695724148297952418120313202449309477506965953319513982330192228070956451674304763205730169092288180635050888414655899780905921076519214906184858934823162514199142975607554563706853262972433175897553200070916925000801659101619140847374245755065665726396849751342991263730289527703194734567800074965807141833960333087344183650605374647174652232260179016551505034434519441429169289908857802330153579421801580529927690295883892383606163574955145504116872152837434617581445039632274120386703634063246781070476093204206468185078124121074900436425074533505130195299185760241822690272811851279919002601648590552454838676507565114849575323200129059926197549706710074973654706256799416474989182154520924621759557487186068499575086608604762277880536343033667739573135149393631644006503612522234368167258047269717685510586082978121100412107855231190874159780830627235539476663108814396231558532020359957029016264268252889335429823094437994388174825531896033945818275773872815283078901096276132615725895630612566086187547648469131368340381585777003950502950539375700356884521578112859177810905451200255211203668934829623318771437608529072692583696855320156596978139378563917094552588100649613025651606011946516553497926052195489272298710932737504222170814152609143710520240363699179875912066695157361613071944782545453981221554693478543659298125365929945665141028768165703309287358285348736086267443508703113192292201667108478661877911128410681505359336632180941778207326096088388563078101659126286391116106293966923541456913157089623133737473824106549902205082789895516969570032751980079804659853304353685449193971900243824838121975752137373859260311489069733586249834814292979152377353447439639613374689018586178672520496942130093917935577672924705116091714689660113723549882423157653035781304288226022364934823788023419022737463024646033416628779342093206545868264796049771587600529593670593065286443894461434740808028839974387030060693079308354165162838245671414148431657876280227618230630052736488179424079264846549516593147703755644534918999927723018862860363899115102236509053719199364494002310138082350082899647516864965184422441532279916971887080661549754985529978386384653470226425938521250953179415869034371720057987020837038276232022816779358743805312268778193076537579624516039806623651923835372240277503114033686325366508397563166310207438618003488161849032178684721834259031857163709694311219202353213901680685530669479312675519369992649631710449404745072739429511810186175751722713040555654255540327522519635240477563515906445835975304715417149623153977322392949461398091850029545415467001162316968154117743803136158504651479977048519374644487817844704415546941060484445206584399824391590090209788099016526070427358229105248001964658969227097503653781491626282430640139935884900511261689813938930861883306369023458531049794052510140153855580646324655078242333610863484143612317773347575032939536600216242976624329803933759205054338061771073362690743776185869321928943257314401628355680497041464070238391697255998033419296283030409874736052779201192050147980486623912306556198231589610463044229518564583173886318419219081632146788780739508954437858337537578296994044114887285218180365194659259305735877263977030925463219516598089446267899859924492332880966016014964214015961524057664375973154595629677318288637114877584081198153482326823758832782701118377200435509889781965790250352237609892169792797343228166086464933251813377902578545917795819485779022195404012240400534450960584819579597803931722639013766231522930563952484346121345503100542536028548321401602443807685834564872269201740792359679675543272517005816072315636053156820852574440596819315446835532591802555574549111335695170345208351032115414594410557497521777342508299447377658068591735204140100852864120301994999345701260553623069893530418851232324019976411857559732884887194727868614684666883833830451858010195527588428464630816087770091362366499952392504395240278367737596677985439657017872410488219998405374574327287417172256398018544492225775836771159782945782734847758139980451182651398089093427773932773149378140988460651627298733112767419188105970625216932365410727747136022774886058557267309730106961234229886403060655177666923295439981060552782028336307986645417495747311418547714511221784512258431606316560705099721199503336118333357690751866920533787589070142437347765400863289887999278401316986145929724781735251415034968932324111385319696874824082203730204832716925005104292994709338389864145385415036422000659162723594492162493326324690011097536996803356253205657326189544618973448007355778692863090387827056529809667824669627092901784885240946742329123228751265804003763485464165381720808166581615794653568791639983187086071077772933354732998444918600424591409521223516285076988239610050657266673869110858085929492236330064808537593349415882640798128691103233733328678165588557128029002085485906506442884081028727509304051328417923145184401911969214306307820089443014572715973222583362363438322664886074502235259828434343307572733721497592723670253141794582055392972279227488071381384522374678251269697803767058632212769282509471646125318270662873155667581125209597353619992951390259071770978999963455783394183849939796730713922448113956482749674871670648452448335460358578006177071810159680223766414584810985466726231754565640855308045858224757058936919384901573012743521587816892287813978446892617557381942517379128783164233979945020182675583414350394260615598085555389126638172584141654569625282631469531787539127395441215219005543333396912825410772914766205356455859830034537085411955439118843985431966603218355061048799004105896713287451373379194719102574933281758527736026080185470765852552878101344646338090013933562180112916519792982672879031171611910046587556438452950830356351956634785232066398120794539910798630698784323025083967118245403681952816037516203034879458824048963606930942764370893314579919387696352684843781814270749264984732656092567593229128036521767927681168626034745601750024349304396630638783840325021307812681518640547626093314017606549528183477583033072998336451445898440850003331559582281101109400281636530587888579815917156513575762612393516172945675256865863624013126463534377551638731934281174862991510958695713054303771365543090876591156109204994444122635140366108177103940501967336005425366556375800528130193774851992637010584385909655312779702059176353999775032560169042709264739392327826127671014399581198689214973776713123615078749612821541879196746350035907066003504905870966889114259819169242867863338778528309090311337356703405024085607822499860294838848433558708926891973577401258432182858162825670609752938436677639920163527745939653536931089887766707399876513496075158169133850772879059499194144100607877871805606592305366885730829425739873884544569759585850900050900872934816988389780072262990336188490832284681132196157024835711695486342020754952658813009093600925625898481113135959025588322382561956385577816788523175837619399792161458473642907995228527543350727314539034600021951563703180126658261098650084416729563969899258952369817754269727000631558833740780365061957215463605794522293155835940262530800487980807069937010710717795899361799957990253743576749848645909946864622574961127340343131384074021743082084303074157395923648660160678727859338467167827452589847789643283360505383893619901542427601327427952878943572030900491002281074476190145713477067862635652147267359795363171481136802139065428879667369068552367230341910162915917288994387866068362570583614396009677897070349302346203769853814863975091789598277216744732335279838753028400784315043984844756456273482975710271680699689969630642714565444141365277382617353910594575852487717214305856913048306461177693443860240543140276299498716710409283332623689585131940906916736343600616336936073633470328041918715449470770655459443594926911572871927913882926966942388418843630935770495371434773700392120661785833666213085273736833294352401161660136781902249569858037743292507784779273570988995637130389197376664741128992173634934383721112177533294419977799907079910060650352039798182129515816102611955091880357816251114127931810997912373733109252679975379484976297876508040119956027852622887034836769486508241319643558002246437354502859894693705648032549027914007368804464210624319247209924531047940920907193239575535598856278677466752046674026337238076482458895490654774515620361294990144232758137542424109482651044220171859070411007651368455232571318362980237042250121014564895758332858758798240617649817392301394095473908324344933247609883592880004547633024501517718585003739106917785716439654897113847861294351162813274930613530681545320378240279993282133223482314016933862290877470206100441482370531394605019698109192181235692045078853579554434883188807397841825189583359977422693717727655068045398497776852162748161907984179412747225809502726943769917310473596907687483097686418699977125867962929461125074804246166485946369170509021466068559928337643102293773255053385896869965577506776995225889462809795794383482771861672218142424977964857781655851461536433963810513475987206835830739716912145320607788428756510678573568264702962020522235662471504271113937161465044663426232496596775961065192329432004903099233192875049986585740673161180266232518046835111237391594137737256006578209839392669894875879577653867578018280684052574119951382765429025171241589904902961252417956405365584724041096621596568368391579346608571966127605269058395311881765489020872821491311556362331447348834014164334367520183319267423374121630190869160346478672700174300854495378318058395303436905344434943330978712715959508065563445179843112602398715166294870620387636444864525186074592819294330282081023009753501217876158395712397304952565668259955394420820113395831132846575944403203451038073433334626413708010103297702232047608896133793086290001456453405776398499124362487699474910154713742624180109712293954651111140934298717895486255606615439465315479761122944180525376333153563778518432485739196160108984812437837925513188300109391235304366681745034649198348358177259424980880775606073069818409198021027024804892291923807550327777223055013829063894639213739106073362831620743353607746225194863277559625275272595107136675825785910278213835163560702094273840022992403077719195298247445555985947937305589377181296610760446143903797068548996646033859176511704368520612617259146148995583321134353853694625240677358389932253116604051423401861952906156747416168097627245518046048399166028701824585827835499833520184059297426841224063704454790761317466311746811484569199230401730423082903921035988956328112173996444302263963761110277613947334912619505602083740345822849223244266135313637925088905134922511399316944551380836977231301655539370969191702261816651493045906392189387810260551324587016626111351233860577776329362751509858508944904191504568170505561069230526864834025389542033833097904826562749864091782817172979897503251100992317256813738517294189220559575032264526989276348316538518329310578167073655646017247567597506143986806811713545302208380497046288798789711905485197557285300630772386670609638875193210170162700680540786472422795085216626582766410138016008371016019000568020595951560000981451220163331872362237974511779832479279578271156498291163331301966703629115542117360431255785635415356688771701310080502253028309006006763001563595524449785342237324329345766223574048258793403666751601765950452004105912614839211562241817733679614087959877878285841251403885872533214565681801933470316882921320032323764481960326701366117151519309076234702567413215313038672370538890978413961448230624974966774601486029340450765584033286687174334502109068107523662438727698853178338894044190296200102421621620328763837317300417550809181549513631301246543177835035197679362636709454777303525527950225221630731524569086307593484172536518268977555568934962399455436546335718509776050663873940553812520784836720172124721072924061281267401112657157747035637773772066957064143607473796399114623585674138504524175708110968466370659518085162539500477655659399477015144427666217055921460901813674513476047366035702598834326537883625168427301665456969951983514512416868253070522222638570186330982032735708668671407398490173118151470608527772970880455208807019671648401049465386629578532391399434979693815148680662377660824624328380654094287745948686656349719605671808865592307889014475879426824500006417531323875462337988057033482652534534397938479029556530974659775408443613287368434328731885695487936062823409184869387078600501794827446051978371935084164051314005292144990959836577348718026895732829677480549114151949787950278413340071160334290947961597814704488362655630828144737116523289740106587108637985089294883030709467559318014786334797365931339824215709993025593857106710963092515322568005522807334129393560391991492509977976641845434508450597735464295478325246405296244460390886345511828755569351057037969878068952096942837280634625684798668153812765573528088418058839716607302510351327674177091639742532882856219504954042864244046533637180075924204238436991774099723141700874761135378207137471877080781194837684738814712789136166062163825540030627268063736489592771105971985341657352421589325257300257525534494035487963387297004750173855702684200169204417090649146329886385314223052903827219393852333377295238962970367948705465758580157597423183186115856470608145987457219561134884961916366646431546794390101199095320496382844803747840551238232955939885887443189685239613488553568236624519280399488314141914881234881982719602096079346051288900542681477389043874887056479258040578670163935109737927527387698794573857518710466601934583296489772155949888206175468887454762461679544068152439906796759965615006805393591284475585832303884791032590490714567019384864294672364352336816216891228420995580843988699045453416077580068150497643783413199910633785748017970915844349051617505192081773774815335244004730286775547388284500708949283475562860796082408840504859723676599956511264275495585585096391237633114457558300868096242745204683483997479542074357533888817664461923004884999245797427561639711671618785487045607008893732573315396796960914138057790635568112921057905117270737554157558059996400232744592962495768297568455978633719923856081996644501314331133296520240342897564966962703056170688909544857258483729333462502547641539759916482853909859483561327786517667174755856668958137084103211674325852227690580222797610649650467756283055455058156068317284155623836083687305321764113001123687521358884466393906616352435401361195130848912305119600368799386338474288928624212846375750444843460259856246707543210666741176240373406420089119248768609218354106424521425278982948369380169312059371175624901440625064597520028928639774065589478649292792783129918818835579278906531573876308229818919798916024065548029206155742905919653616675533695481463447466084202647102844970692503439906990168908908483911331318110274770318451652862049896168145213326321227490935423663874827901737780424318349009137527172050880045593642694970859988487763612963122594691197241841636750796770918655098616350494431501642846041821754682459024923763758014423421392848095520335776014567319875614753470730792404202137902301724567373507639822529697121651064438262184779675866094776481749907410481917177025437818026950507783441809813262853135182565494021823202189409341461496601838319216241111684122569493314835636431025587685217750731674336315182723752168732569400620134835576390401408386379793898213015227987904665236374943981380113529901128152283666407074533308372268208037165673122700241673045138064146591890876270337242792303725786709037418658182682227253977619516719958960859828594783972356095187349890624416321485134672391295307761609269132994834710937918188847078414800601238708460563546273610710641340998157531496268146947677297875493761731333375268475138352946075691034179403633128798560842382596167373030047661116995124096290105467170653142263580072635921573439567379599203633844215868577063142299910993241347154377725965895866458785944353659955262500625193894675019203438140757760826588928920383346901939138675907958513139803914767756191670681833153956607550099743812392522230018897776187255855332148117554469387377583094864410288140806446521548337154434307067350197969444736897845531168374152025465624844221209221086562453960889945715361793810001987461346686918203147800203838476084943323017829409741673387788567073559772258948486534220214988049381600233876294040293989194911551191749497249070476337837316472333790445523225175379325765094219646652069047705642994982545896853266421894820694447899107292388596213038504873492669346387809686180127430042320524382017967577944690848102546030633332805570687408642723652614208445708425255065054414411561743254737615149623898612001462789667087775564235785745319153694373718813392899905582687660348399606876161120050595563290948267567410455419555704875991928058808810437691307058543422262777377770085306539678457109114267041927173141541928091653259358015537813817383738310032245670595312488847908083549135480693119059160925275005640584782469992384776818971293530774994306780742897279950765419475575024730658868217108680954135738712118732208910536926411776518265000841485435732940439216083405441151202560398691910367968385911503901536488747620158811045398493494921053878484529631332466518259689553919230843066467815605157124151458218968686987686502679277038982445037002246990745096998046395382205136532029983779360471489179581869044184596708291070503753906289169239644069074826473696832807902630495992847596617699686877503967308471969793110198773943655438227372293563750592454869585966845411425875740531788420801426690992129873868386553358024833031617246611733275933225497808587030129826342882128272775340989934365602488130736878557321379611724561141854827698098260121929626039078985268699612849258786669896469965183329610008918950974885640084836577689314905972922394077089742117156383697928248804644326225140109813825352810414279995144299628674069110625113645280086666265140509986393290551494959127274807927521222020991975033392693574161436929334245303821142176487219343387693237797855262083190611012146028486881037362698310708997771732892518654746331739906384086828026837774619818579528312280683198716076777590898630793333197227176519823722717551412846283327736030019567190208008751081784382492142065937684602254933451157566532448103267975009383014667439074018685341410806710206801641417780026114200117672003156262065167174755240246291770318907439196084930465645865383212372682828228428928754957663206919253013110033129800743448792166775292171851122499766705947991916051123115469624559573050385377924578296164297835930611613252137681773469540574139926595667019018121418539534017618527646013435029782563053379016300050468252618653356474821970813135274482870139880372108215271268783586534214534002839996046623453223163188368700289748945422637647057829132682530965603559597283894558742529118658371625096387157717641896662465290345449558128474057046192888733617520756211038605140626388276524993521227549676620548535291199801612061509493361947507823817341011184063367642556563377780856630872619929495196615236849086278430491324588366612276123997503720919484043015602451737071890156700920276173823273277494158492905871066378635794832700331305943344310691125617332818439161429702600288555630756602702544093425790240528821313450036705013071788142562461957965938933370013221972711468449796850101862034770194838397167112769343139767575849150711717283190412912600679297088520087337495699564505118654443463204564455533085311036805346182957938572055585447914704850685960113054632305840493917544557755587193343779858108868906674558925849810065869720072768057614355543722282826175728002401613323414094489364675598660947237022376724530276713178304887854605187598107171504815466380502583823568429582010103800980635551264573391538316748792072933385183020783061749030446488757746167638839892941154814187400514030275305314529297819696450517166229337649277425763028629281410168225234382701830918230891720397153543232226765924945555206124762043598920963361317541912036312850327184382772472435655751641368663684468396237725574486264279422577691117648975380085024450016985582025164569674083981048594601299557198079253228959186068714718709435815113109530088508057149797521918141263581882173014370361953557027549619803977493290981193965515651756683802062167267774582492681034017229459271901321093943736586242529157883615761160663596598038032285998919182098594945133995000633038149175792390094594466428667777511949619081423521772378375501617600397596818284479344207410638713528755902137502693779146396427499942284918864581934541119994761093677366756889951333402423109863776952190760054017004491177356567870907937920167258163072653657674427899744539547700309764948705246397060305567313074431071195964339684233210527526176190378182149924458254247472229205380325405737693665358941851681120986732094618384198494952134779003158686496249498534971515627748595667933758854297290568144119083187642385515541232120013138926293675123248034278954363656075762743265051394067089930816394280712066963756004288839328571521659288250851799134227927767438771091502143917839762540799065801020790877101383244699282071339853101267583838334433651587538272221279781949314881301515527723275993372437878721821424141593331039610398763898817904438571790366027733565840935636130048477475471487444140753126465355769575464020551055077232066410687923321000714966025303274850216956058973380497532599616109897149972542850994182456118491131784813775361610195616534719928957766797018538874074077131539129974025803149769201282108368441251393072507852161967478997537485187154828293561649050220654311043735750295439202122984129143249741350864188775998145714531200229779961616867808074098472317643628577633739071728890206039430736637374256257226257281937971297237349397838300752678850190148120180400704571376330311827986504609777524000321036914017124031835504620299615760218341410006015707662145581153181321475019205770725992652395658059768151510730609868126121623603423630677664601685690405127371760529240867933446148955839278129522410709614270106489192823484077324197120214216663404465566205941307026273991448518477414585420220810964558380439111004425719195222964500061065841737526667531571921086873330234786705209381572037228631912578690329503852204302907595515799299915653005584132221878191062954168899470314019532880381086486318282579210823652771961753605613969531820379371544808771078659332642706398146565193912423205487591248829948321988249138119358524831869264297472243013866180488678388285073147717533739276378219464573295982941899119727428037253540403480208035833507988081458060925199050905652785012371609690833551926817871308748356828764498587475572785088415900193538022658826886391010472888020330297279173434152318464066184478407371765874918149218974430353536375487900132497338264104789722261472280725436738446696060341734143112055736274406431430136979329065696954832362635592503287548913693047723944204819258641314706056349184665717076878218949522501529549504296066473472080458694550441087420927864693214596479826987779398670031007142164029080828441772032908843860039632636000490596373491291099811579351893192988589125509763733109162886285062085905939366244128496129871903379155611411630497763405780487445339183100711862218533085032901786939072087486074738025277679292833544451237890899140328615258407147261742588268033393215166238678443847103763220150578617937789875590195161966551356912043381416987947369230752519370249482022722963663349579107721477850370580293122407506487518025897444200821080291326601929014177396236953068418030848108079529006838323144438046925448109612696337991889661074773454140027058976916556230780834607118818671013180430160217518520202064148767440542152296081577653144040332032277235765498547007646211102384111906380933615579325300343394074313347002626473140524864163661852069787671022340314368471122960192619190985231980352310594805086472563722445977711482027477188098791299359650536832094069613208987881688129485804801933751919954905144724202971120867970953533050012129906180134605036606087691247791181459529200840595014415533364826974336670341849618112293144372709604609628698955493277847260988515243627855555850019555873928594787326859040718237980003387756928931760057472560594383054980094807752511946933198911058728778204937011049144573540585486313116045645355059739757190661937799034160147213110416592786134414525971315055858797787895676277708308184422882396181227332392585690050327550645300217786488000772966542964559146585588086290070552928592833600932851716592328526873128672751293157972367923820544709447347338720818507561355752529569168012607207847329328367886511336895549134748448220260290600455542158922921115668623013892732275823963604671588917664484500406210596657447914230136742637823165950152926146572599125775319470316221786683240943901972096859232333465924696978149299303097991537630634621041496628327560879347245694986917620617591737552287309965336434794734333522022064795757898982557633046706662447380318538633317984931915581758936685897077470485032434555528667675400978753760090462678089540536803788994436271797465353189005278837379522441190236628819020718783669481035425349391209482889485604502784463712784855952180376214996931025990049317669433625170674886509997544124410286850360731592401886415712344952784772355218227598023738677989539496110860844827424791492214971778856402074312229997635024050702799214244558294165352541414698522181301667115866934740965097060349194693665384630342755073175821245994516418855072281783254485289903593724029887560245432319723862446722369500725164959310810752955228150961096507014469032187504293038615884159782826618780841933400419737048098927981960170340138382903620121985304826467969422493400814580738094848834254937941364804174596122898313526574693974629871458347548341979365204153770996876876430277650765645320437735267132016911986246859828115129776298492408333999002550554794386130358365367964068432913880731546004114498963183705670729358882033832732770474670626353915128165441524500771402246385558202208914752611935840217114528420758433780729970454764804351241225301223527782945603848796894220930127404841992206285541250887395379223137280764467703124260506934629923698423352082995925443568920766156265491770106909225119446435428034141663694155882989566986775585022859926595258809189805245141771010887618829723085588382909636338563570938377452196646469902694991840815105272337208447444172108172366379344683305722750391465190324120249513289887821021531805673917827212478267234632098192747135893938873335805506557107254666160718965022929109784288445564761317795677602880246403438667154654150195946648895943444205719562334136307075410516712897487964581500898871905859732897133441186434740833139252011103878448840756994917946739603150826727116338928123915708524838144121273318236355615524787530180999979547702434506669102551722842576326993981528028831440344868544733502379192630808417815161802447634377920905121556412140454116851681519668358454382954709443687495417541468694128265150799645123261001498953814435892271819327822882487861402537213880639930661496073997450305503469773779610126495739076395556213668171288646690818567731111831437140873233194171614652930842964576034142818442935495893798692488767100276608198758927111040483447611111841887811324407169870561802536482290380812032318557103078146059094032319823019417051866026556876620896350580273608359105946238580420140383038263431495464879386707415336414320061067529256886017350660661187324039411733074992468557373840632352240929968521264974994073980966516054719592409954605145277103629672342719149469883398715730471206597307236187497586329799453725453357674870076793660424587201192133696647773089018144378395526584430090926987801472530640841713286851114802191675947313554760080148171980621028211325817121485454454822307215857757837985778708344200994645911385863193695007826010779497383322529814540909738539167257181158455771882885206076422277863966665228350424092305081307378996981414965781901109809449869982205693360363287219377429645277790016411727029433731110049932924149596360071862327073940574922304345982389583246183878414232718602965309203293805198268058085595400936839017971950051568226024771112979087665990883489495486487430232142675350430593394704076350171676289388438729857599997464527480897218585889837157814231980434321961632854317063315890138234269000826205794398505706922954906073593903099207351804786723313726269532048123626733613922161897115685486285510110475231899256033857896102748723629942476127291805796333354054645848859370694290552752768234771725290993130187644601840045970207048835960351445160907252775831161053434772378720209874325075391367821623282149301463937014010719615279314203094403476535970560712469660023718508991815835605033738356890104792361153245703103392037415098505557640600261449771664608842806825819065354879248554525143657237697909818713098184083941488127897038751744560530662687614511044478024686815126706918433534891297600718870788911918709899243438130629242071305483730661267536198994052423205290815496088182006626862877463410184492766018243941231064032425319767497959503492262015579653335932747489220181817604894981122694639145389468442945613438317513822697161391590205896365703776402987308785643772255614616499587627097321506635310768520531002710857781418023713957689266461763546848112075787575971733599816293085699870507451394604313538498581417792367234225648627581512730092181946868406422675937559512154406899857338583858995639814545032797727355562487383821357116053231599991627234306599326823669486263263983536184503183550310861261718180611631800422892332238769924526331821019929409009008584023533653147960099734243008913825575188981260140464086336286375897759980494457669627988663423690517132082952454424469558454150912542160797519543633554788076535637099088716619094472330745046692245612047317199867864699530253997442878202198924789919600176639913210176658672719679229466736948244906930313120838602162976738722652276449712914982023894020187546178109876646825252347540369401392106326886816538217978482813794495056432805046515900483201304309199003194470016098996748590030487722835914051753969439648573839954709794166100345761159474063090667902487068484928675563251346324788367408598280303642154134857447077654950736598175251483223386681510586158057330919634770513122764714604317589096961469983378919489504953938364987509524674398427112801700837903707827793286153321301643239039289577164351696824136541202154249997402830602180703762118260878116214922264429325358819672885926458626748143501173490490683927677881824860417115630980924704632325432639873078729730060842849565156449702015695936893651563913568809024045600789871579492822975655947234320549709192208834424304002600451318307226100148640030428284696796106231855925590048721046692529496053721529052986185504118651132462802284575603095977979823347391021456095051944104352006468770337727625195068416521396579844537226873753225285850348275402823254409582738372880657169205763361510870005893783752326605500639560460737695976138862985001757660525575751591728416290147478863720228893617264038280350303782752849074528289565868232951288561352352663823872840529683918813958845729660025637388277213494011906905490779599291616545497944464973366510175381261941077211684948857400678586920269755347083296211055579829907514967571228942603484107277098853171300510190336609017078392876403404748605640663327763953836326008680941373085462752184662635601732325063367264307852733286440304043195647640806441031347674134760945454265399153786966956183143576012530200264805570984899798789757096943933602397272805402728908699321148969564889995078559478772550961824192607180607193703733474536899781847836435351607289833056821067115116798104579529147645445544759878308805722278311411641731237599061274520907144398847814991698739532990794827127290468106664683199459779725031872669888453461950101542963793760388084194010232797205283525860725552656042688120306182149883888978535734771966038708793007206731581982542189206866566844142534893952439368012873191287460033296458580514119178388620128204998151404089988711566608473382468254308218834937317424321702662537592203524169084975291958871602548832106376747155689170218352415428688617990584032776999366895615501944425377311900536265151316584422738018181443097123679606432428615921195962285654198350845796503400488868842716559039325284414416725617838260241101178867474643847869695112708459852528194325076397269332124109231877552675307923895391105963917383244990809390552126311916902080495154163741589904856228901607961967326161881743416965178342752148674224705603322367011634229331474079610740695000143981519988007577982547351980008201418590238246588582434074286842322786483340325703421317267530128324195900425634651648838269287724837964372799666235269088947031188272877369424254186052655694847102152757845611429906449691413268037656466396092446602846123110273954277826333874203989701735183241725188320391038048775508349137103602513342435164723925662011273540438791218026348126913323592954610567425633232714273106370420824746038025796434704779887075103965155348213152098601745372402540891562202831550454606833234409261983052144448934094471440819516432141907918096896918596915332859722068996833523134103084621177200673474935426082482132896024234938810083221506554070129733580442478984345920524525596483116335698742258454767443614462761283945026002276307304559957451776026956485946321247077541918018725916303282453488210339465381249662877254049316836273183761549715014218070889137045445225350954714091763374695697451371635626912132079260573861999100483465203576596095403703519177246013917627712377515357275988788310980709170519437294571928388283886223942780229292678634480063690990506064687767398217522109444432549123869622566177676967121015606183987160327266418538416140854860465380483356128803693107812915183355540983507045383128019058225402136451837919715614020878973935455529361738795500010483684759750208046811886252863373594021953166089310161852733310062037789218693912764693324665936288180078536460937203180810376143079721818054551278823699452709791424584546008340870609044566285166930296611685406846066711321476195670606504771703402774460804692563099284998409774499192206240846303078245021174267677503288402919847020795221587436234064950061400242531559104008776716009027081457442106148580009682204338267981343005332613484201998409124259798458266728220599737723101137864526781932091026333249306233731320768180706412144964295768674113497887220251142320435962236883152783435564302856048410534543640360803509597340082178706659146062577388968122371415878278963986697765632780084305649271109317920575133702228725659563824283341825193682659926394985545817683466594849168455558945323169651905018908740407185043411982650774916532503470975513222914523962454751484195137216391562769276716128828413364057709837091731743431621199524833208050888451327060222397252472146918731139804599147125062667425964393515668672838419078814773192776726230011609942108979559656794814527955139171144877411958595009696577919116284898717515187766426966297087432939880669033412662133083282731331393604993359214868133359788097903987541103349282951172228293047991580206408594178598568202534413982136034911122713036511835232421010228494091749748606777400753573675793781410988628352188329411591812984690600483077748556655318230310403172557529878315744286206133822253942149795499117485806636598563162509078572396753852692870343805751962152589782619123241328429889386814404443229015431541424920530277907663166170880146911304526866315527953977756609646340997067601978807063551322185181168102207638880651568997368348460639844778903013127536143630143834185928321594152780076716080321685296670080614445403150621974892049737073546144964684134788990925277408219333671991322302932405250516646226337345584364971767520136466522407003119032818439989419408856877816300235326964122129389530951533947131433258486135574886769767952622268592774395033126826453673852322843949703868287433098098502511823003025795321374583736518614826459657145048045435120775701109947654337055539546656985955240482711725802602441707055889686319523013868756493669271811633809565300751392238967258853172660374232358621887371520726692684848767531850327247204782285869200361384888655589697644161961408398044150939947989529867521551988608861126862423648794455752189146853729486090090117087072032473783014559410654665345775774202838387708618347790403722219410267520779797136322355506753716367522046289477642609800854640412999779713535978819583469982690428089133452692628580047449248965853848944623014716800385425761574666687389075427030294332244135260630867632376794403840667340431956668140076582873612118022851461601290208857965529412462391948679899913853097307390146039541087758284394397958201432736345371337872853135226048753584274811692745324562930037457127459374080446517969777419393483603186597652485359366912273306149821803285119636482180081159380845054613601467043564759143850678255441615834349395687826589642669765469955989328980620778407322577790675262932682850681580957258428759278131698040199303818110718190249005829004014267023832404554013598760598511927274731837980988002029145591853492859241319987908101017016465769417362300321084321897510870143013990559459985824143335199806413519664479925021085884203748572908776767045848067056649543417502696379505132159868373034337684045525377306659900114974271261166444182279154034520612223765240409742918005766822288856542255139367606308327213680710982194624377481513641037589209456491932603725292685364204071606871736621446567722858708641284461086979806529401443583297098405371552482002337841059457753499751192361239583913227885776016925651195417265222420069895224845728564453525305860452411352927743084081866893034498174124584566300180161001184727449056304464322711478855641287001162060058745818540788924350743054852048460798217571005765851735309395133455548007105741172822148375203531868264682443059285780750596264808915522619018119550233743481905978816869390139493407452773078507371292143683434984343094948952931544285321145308460046197683016880926240759548799072411187735770028782499210587786938671054459627620577223144879345360207387844981476552796784760426776808996786173527891513863138743052649053571861128334512339157912827393063714674775880618877160132034717322416383209545257358762629067790195383121364198570288464186188291966595923775716960922347680166461266347115776659333833637525773319744135190095665868739291671763883206897235982174217363928540882491123235874091664106641469153016587963213294041360535333520590540901617455880253493093162538952473846613376383084621230055286353964094688802951540539765846609005405829782211482531790811199465709428055278514210658579675352293378847848844450086965470686847412973824801216772974501015118439921452932194018817322507724804860479578526185181259196226045523577017075819432607986333861258272523102425659166132378159072486787744453963074217442179263726648055981276234400714084548357024730707164577085002250163335299129736745140178388031630254707678538630485339148150492766777183368894190655977933561657177914420315080555087870452299313062219782232153168204855871105589294942010638359383365691631409711827598812963853931989874067767738537996493200405399588120078527076331193020951700390578723409587118329602682901155341659750247640149334148983778606960245474110948445312454321238141871668799037563592466941858255665551197603981425837807927907312174500363502954769878367715959795101713024882163636359232667761550098528576009507485987498507303980486542733540013794744133841852952331271178735019491412547471830113843331109886264103203563372511885789227386438544616592524068135002434518962094479610525547601427184818262981693676637936497344936353609058803066678446102095161280523362832383127607855753209073023047887950444114099056772797676817419693287642167350375864502958897779494912739079768860734358599706021513412403163688817692462942504838260337233203134114864430382253801181292185544309875608346871412469310277456481008067762218935097531739956169881577938606238190033205587936550795989813713435184851226667054525454451103670270582743894116179842917021953659150687505438149382831766394874006049348653102490147799116486556310026910647581856378643696464210851518321322212286802286207725574485159430666204100671417367493048403018709815686558787341449574778323512016758705665797669441996938873700969503942953214728072875091269149480826366868786701588922710692425276994758684699293498572794402178003390801872422925476509297053314687307364464251045240323357873963885732391581396575414989386237519624001941581759486779558887235388409929567382102517909142675856957948744052909256043464613417516074259379394694783278483830812269871975841339465081265833091486300953064345862688088105777317845621035426266999884861726960560277423636278600593027548766101987025606838861667862624614820361786105000358986009895045812385641134720753500186168721325274784859867542701162397787523769319732748633235062503962567902940710804581049907032845463307399788268552576836978325755623634598878797412635046533187025890988258879080137713795816064575110026896368157233039126497883275417713173188098459164933618564887629560616550931970676476868048397408969821012713216863907172149765012269493594582012971905575971543647967661342819054473936695681944516887147409386276238429535992091874652231434654126318529086461275198271065695529258930462610252386646072666345253675364415721050232227045345011454647915732958346908065018195797558845313540902405486461124178000801767457714829266244427056337469725821640718546193117260999632178601345707371521129378506165201857305846106921238668668842135773984667684241067493112535058656260122647415865560474873062987209840455999331742811158564768435732955794146346454447640354261934945694303452799167955215994823036450755960975993184597276167897159687226044241896926191417448619621720605711224201225076125788123394623866932994461170675025704059285019265449651844629094040417444474517316126978928348899887590041595174308050807883621524958540437158695712320197698223704356096234703809151056156958896108675274566703749805940263266869395193216969321236318632416596833520032863498518194736490011221910004048904769324571244132769663257569784875200062946635939988384572590360790590478333612674553035952288878463060428765640445639048773865624812714039560571712626633535672523821418915180800783233399261912779683418131590011676406908124217421802174432847754055222213256602823488044692333435524457514272039807470050714132352082893490040054109436682969442018426216708054169183483960204748687265040895145348812799105868934570245997075596222823413454660197850074918427178050708339825054290141127100668153726921861325903802556016791318053106582132381346299481169412217682019107013671217433049828522162674856054480266562677243327188378548711207106312071964012454835117740082201408003430945480000380090340447691074396618041314853100647021417433129568134967402898342423742128404357052515806529834150313117660813962188268391766055832127581476338265309176512241826650181471294345368614454560901912612260198096156932612917857162256925732487950899691567504148174801272865449417592788850673769100042825030160998638047604299552266789579261240360136188353550953468650694105197040939806284022058298157629359515070268959538203114795316587421579880056479803789552841472432201801783833926841656400999813978722021765016215374187925373218158391529231172830482645122815339821691464542290081924128585569173423230979817253624621223306532073170035777233737571209457985173809419467954800501591135831976240586606334668512556662988175634059280120963429860414137265611339917623649937815944206544199171371711589530646884367397395331237991302312488417531066366774315393173181000279148569289607809875843209538140103565702456392502774734333182502812388748324723885390779249562066047936811418261913988087664171497342108094919298751872467067360766793468582954469836813249084979692236715717351258647359729182689956076872513241312594143833764981276200628766177626292789885337895202057453341463832254894558319272933261508557174561781545261117817883538947780549968051028623668026575756531375643951356530537753531662672213786398171081251982340650626796270350057472070201672662500356162395595961034941137366118891113602986027143892498382713684790266303409576303289806061969142374578905897322391200943862556892572570962010915334358520646632466969442216300099707238253418899451574553943932627922183991046384093914528698089343193003264171480024314909840511577502165717352146766865490869545678456696618013127843438718647130344256946346007184753851308919797501678713334870060635786922001437249947135998561997333808787042289591975226086318684175496159655352977383260138945848144047459129763699593012007573246450842339104714316100422012546795810297858322619972972416399832424466240121716623844774446093829714676844041791719756029700174248694435679537628264705197858437764861495404666164661842016782633714089838288572144329199081651781869905626534622164340026970046003914851496456786221712166470904317407992086009971674356326534881152083849488397718597581530915042011938361171438196717296002216647729703738733124703960878309477302770422411981912314658602190449045836647071059158754233444135694049942553839821060107661715152126008980209095146930373327713774316096738343776990107699177116638429496601238738281980925326663118147505210681817068595111255572359143964704358017712910143441224298608373364784440215470125038813150163382823434218931842498399195586423324783535188316771991416833365984664995176918598177176416760029828887488240847790311991637063450904501186011372403679991149666305081614316061876876050212687609099034603687634900656197154383284008260334495228865698721289804165352187518189361761427639374416595603896839686702788248900651922818479129662118523741092689492736722535052779487021076219111394186123694883898916990584240811039089462414265685579045407720976981509736755104317145906448923506182557830772162602448705860599234838904627835367952165384352391968041715331259013553465460382661325127571535581097826497288178671370479781717220578495372961939702981592159362540743440652837918673023311287625048251456391309799955243257401447623865054673643863421497523703014775808044634881955426575312152438796187754938044564188368982112049317212360869288949569205232172148813971373536515671569386128440727654512119821060557443335564351326609135755431908739331196851651333460615407452933805144389994043891972014604555115940129594356986654870156709167134244087591362434789002897977786440123430352540802827843081333882170299907575258988553627571364149484959593135908386691522446631161588585348770440567862316360008765924317320455884587988389473845635217096343387626840312392589495625474776856233011021213876642670924659304239788673249693279973004056076790466730789811829196641130727513594549822122404732159629378784009565110936423273415186040924703200910405664056941245874226400601263609956799940939489362329401628975488893744534512985699883776709869151600209404126100428077441398311833765041826995872451742972772386858662034408335149617449856473678974501724397411901094153250560337908407632813711273064982487642119782673655736250684362222596884138166902127831846332321458642779913026251492190048849228200014916716659150625543523275014527408771578498582336376608811962454944122910866369068763087069211622295833499314449025205559311114284193771739773983830546154837136883365671749788068038301032311825612125820560469660091614521013514551632696997269790934221527855203259414800795610990317056417863416642281891760588013550535466505738879139713193518887634882910526956755790106044980907483021546999589175610953133466479551270418168884697044483561615710805644378997268318915876066718513256557876346827480222499785065790024715601238316325584632544345767054398307478252901216300598895218697759095654977359341746752578553998775825972142946323288160496791086019333358455112547607531021583390047745867007668546287800173038595728616689996510745924246979855097080387754652407897453552051385991336324112152162638384279890957661204738478154132602880381718511290050491168580201920843260997941536854718130305548717493768556068978549713269171486400603031674930472657372806133448293732721487096407250916356015370436221388625553791819843213680240269821077237801857701535629762805950862529946980661848007538091081573711220471555068785203904565013602581133746644559046619674165851862808952296786997929172905763959956473632322046139319910442134742550892143719927491527752733035466356485860961205447314539617556141966807805959220431446340179772877124097267505654689085170020282678448531152682990279466729538374102007817500220554847237483631949475098056993418465194030511967174380585262634856633445711078541189955804640634689293168564465344562893045150476856361744030529760558906277008226923548277392004944274329899119412919298149268486996924380369888171066266916650478019642526076412176495139919507797664771260733161499016381998534789831135675467453520037047542491858704875352873765572540961436958901532056347725586066977007567320615237959562556663960656499273596158398490972296919933233031261090153484150862621691461641438180689545753968383613619120658099148980889776457446326939619726941241865289573869569209509353694000213746377322024539119438386772493216735199819320178551158619941760258071349729083110447078017632944648581843977240132329654648257800207490190235063425527786383925566849621484045725432447752934299030267744760100420871726258845947477285620873342847886253259078144941824726364673489158349657051341714238204332001624146265998057233973332401297441384517924418875138947714330960732977930942728023709086413649518905724328952996099788619393467486397750505654246562128619020939961017009044530187969403486256649365647063528740344008513763396485155623929433429855744777367799498478465564651239993606727573370846469061854860673460841503438478562426919349603842206462614477485426453312003946907156783824389262669856610773983324581805819576522352123719201116520333772951319394989042712803119074522875898340668505900749506810472416601926062492680739056091767981572399663815651918956735457500707418935253042041016557412859089369735292707840642508141644190881351337995492338615459280920500681768265137664633796920519277128639473666399613227308237693789591727330300500287198557002300334851673348509124935195728344732795250245774392875592726768586874607683871044350346814793371402944093938234147325720663022141661214726420054910260557609947027909091410365306429583216003147608620260466366481643220572962259071369504301364204176916351853930922831925222992676068605264086918546250743544505570351459237452031142784262903141624624670683472397604600859558459931027218302242923115043046937720009320274423651273401207169385298861682631101625900479803658276499969290977721186286592990839976360274098321334112720360259029919969468504611392475579855162825767812831287006901294633565569057059167281325624076828366024336024915786318604023774018254603100133884013378616308953220042617950821306256284682962757754315588395802281940858503278932541313718483444988005365433029469350008494447078636613063519240612431481692335467936164740492101028573976622293289561872533890694776324759185098140949286094395081477806471205126992247334016822280484662379102911941924529022853634434796751281094176780981641535721812677196199472354486136909776317356820238901385930987233581785818134803934363885343987611628672176245552454540907790651933548905011039487740903858052167857859213088314629478442090999777203143008245337821987640727018351525557425546144798948544395094566648762959987732524782007490313481268100985725407627487998154377099887255305274490774278789039067365154678990664085377384235283748868828798604594305894682399028439178666961296261008040700114154277151484595096919783347969028685350528791648961782025398843227423443518782748992849541460278898397012298813572929785448576307957296766653686314102789735753889565941804069664390154484402824782847234077112741447033899025595482293221683365748625771862512479035584837319247353513584403541191832035211074878220993771276782968595508740386589691334955191765343534042093606728866843593727036799175139557930654466362202894244947966260955586048980333373946583662855460912209429434275065636195679562512739408241632585889058972729932636789622502252293078013231417985763235736868853442136761752966833608025925048075256233525842574412097247604664157403436522118369714113457740822277248694602226421672906755741915863835048983292478960506750127556352494176949843866672260429653352949954360979453477312850383594210171676745407927538494485075992304934366109275381937802493950865637947555493034688569962073623874457041027611346577697494295130607837510190164376975475774133868794819641337317326119874439202980848979406894945076992869961828995739149976904245219767936087613307084164064479760480010297954892412252689534835432001898230548890106016777908517803963248811671157077071519165882379698193397737471361808591643231028155857664642756153776470890889150033611855595603985759168985281640258419966613275986983047833801753653306785549182185022705952305404149698028770018539120633927101673079962909861867294674603649117593232133146470608870003794029937516744726401135306549699683617122287863933792600068502479379842883827199361279219548129757154761892967047468986479305771863569795562494185308696294221976425735754583642174789832232928535078069647407553585845326686655398415936093346389505021966561503201553031815940859351485278684523163272646679513953568517803045464557141824530848933000445445128535621600407624602274026134481762767232682264426845773616751756895947632211048228356120410242090172114793762614767896645002474940851603529901336435453240322334430213746491023479352146836866888028478415420773013090064265455812605942228872993881971907582782415563284050858320128841625833685783394713392573001449398975046301833093446436299592375875903418333186462588781974953788751615691038106791006053593641892899407470605962327040753401825795609580838824660453622794550543004061266789301830483215240820088342829503082644429967663121158103525808842532106198154862871721530414319834477194658117586889702554965169787762404700144746927637846913498173587780395953757255847879941464247338420962444705083365718055433516120726416115398896028674998116097125807408774206853557296057302611363678161952422174940755506439182737608708167828180060440917587543609137141173417013198595102646590249603879756570976729313452551175868151852717745829689772334252425934858284392458799705371425235523764914472743389870852996874119377211988370610859550675830708259713776815972132021062206230926525367553710592249291338609542414204018369203671592212684165394213666968850312976876978516484534034579610289092685754952691861107764613586469352538102117710067726643198024587360681835539543710378240520511028180270208666184407505930689279741289339356953042837875296754639436022034080927551955151653145518851121877821301115179458086271389609024811919230020649274198481293089177146279596624102368423095433213063773814080309969032723109077726198293472302189734744938116022805114877950177853915155624087980730848470023384266652152359228613349947556767830320562337509952004363115819720157536505092086847742655340322935633692172718155554123116630539147181128356545124491120506775018734702994217299168608128126016341854304954773930060431392773994429060403772858411484586942713584097432336759542198640753585468492746278887928441060257743216449105548920010835777505899499832723259546973903304296387525775960144799706427441716156822677072427952028480100430418125830154677934674152884998724617891839189412474080734147982624831276881578242115755054901739064446575079900506980027743819878133215742730222628687131847071880939425149065381940039213617331862296570177696131348352008209250526002918113792286408810330100716874543728080851942948843408784497260611320586411087840939183683747844876993359890188333309682334671654050946317231743385032694000027155142021109452208847573969767140820046433880879584588918358576715932977023768664401415124719199385479174817733061004383964011946965824116484327766784379066178925200200559343522157003929335592314963370258435690271735915693116927120864255161144803890463349535536809419838833302170104846682342877469227308820531675942877563593458460373466271790485612481180347279517027181539570850166012508962812823508697538985775153711294712578027608106507296788265776391863885273169823381331922445321868550910676798581316714464383387793665324485847780708771045386620210444952763758539557586907920447685583554323971730296141560017291329529894880709147660196915150551677482682746056926371943996994295007083028356902238557833297821884070377085562365303172207011690402308580263227358980669414524633931716515294355899689420532521407265961624630142336459803344972318307199751769624244176875174509306930393894245594472526380903358038387058632944179308000632445104772547638864958994897566707645628964742113007105046793221739627944750824082485926103946098495685731136162189384791999927630879656890512210796494027423048258357799522569986068675999935334273469942295282214398154190449724347186232991869257387441122922179184579094737708878463833544916323877778821063574484231605488686755676586007646153836950780565932180225016497430583107230556570023066255857283650879722394921499226096385808689822869565770878482481697062509737705804522131038150747488584862559182701095748861899404610254506066775358637044405247765293353841326214616066958253536938559170080625578023951541021190768170110627700150333164099691333796570822755470457711053843311555326472044230982153531636961601429865518314348673421477175924465895773904848487327868210769654642919439939935643592980314413928364831860002908939651277416885917939846226725878365317255607040374960500518141869328272116396303967579475856855360747785050082858407813201833115042762241479521291126930920085109786722128853762977001046012611839090354474756383267448024942100829356492432615663207362827222529767475594965082413493187278805778804908100466359165392212058439010046251454618937702880040385357833970395261310921426277404034995748713457738050837381226802446772725667987164865962291536535136187525007121927847570685722461856603775652945385533576146420206264442704258000404831961871481283072709609453052443272701095939072380185113956592261043377880282197760811889824274162318808725436878558130037999028641172630834729365137671200347300221223929977743413516789567566579762808536797942537640924936277467273280813041697813505972087402463007526037284284627032859959890352586565519716227620302277438055736788723576205570074241467443105875442146966973592090524896810185070832091443083135678719485090599102711878953941399029511802486440118860414732702296768846805178664482093198407460058910285916927336518164736180155907006364064285881106835097459857361059138157164094905611422614675662603270625399204975208791186675785898100515455787240620474442629778057586084425470671164388244388521650136286655627078779584712389236039313804288787334562802808345905955825158321869155647632624989303827237344326326109002014151705019350132901405523527005815496720182296060741494812708108598668200853484342777714648246500483032081584608578166791337778711098120664314452205071241139416157512527873832574558230024204140962339083158236335783600906193498122498851151259668849141730364151242704114527506121173628944484548344015861780069351244605903943211141668057432181386097645546763151603760451658400915685734318226582619589161699669181036811279725789985590183573251826615385731092003485561176288530162328385097194924477671165109664515804019801031272598641328975819192314564950706221605095749106737099979720001417436188949413998347564200320621247327636901227407813951021936283713070008690988787103903324593003924624086036236304653015299498264926545818506907091054250442134278036804650779442670312230535863822892212080844725716047831491247214874606061425956163382680589264456523002218371039524563071832499948985680359318811263614689438226921440572523255627690507903137531416650996217796466077200507597819665298096412968894178424999106076367123864001522924499861239969416904243607941538327643755588732582378238521402027619964995712367055797684729259292415392774856713495606781055490252169493590024756339286902017890496070810595789097270383411702155726570701395266700922102274294854531099912439566935784121307310508715940080683051806066951628608918603294520164852906618775149003832049625497835282071125851564539786217268907205934253904482485480679035604853489118530614620006761845818505336508098238112706204379853380295202307793153352916568963782082038690663696539812313190132699559029326870836565957088874523093320734468905929958145154238954409543893247606368918068218354023645488709468296292023458788003007459467274054547443770461604605210679323854243324585012637182785967458200778986890525327063318519019112063030374087614813549097272180010315761833189189272836373036261869045771807692618581363546155249517872687554313540514173835302308737767190908546551718918796423830554955737314693767718916554349762594706331833984515961481280922880194703468429593275687331139648053397872501456894519246433831654153702326153206895237329898624801295490012013674385949387855215933353031306027978495303469589170037618274427946283762089687759685784686186622011191920273192485708492772730516699563548006366987837285694062519503297661119635400397642489825520468036221784434442467740315585298893900642278672717101607359981107386461021900875603440084717354093564185133992133173135410547402651601142262401124196467286518924275945094454020523056292968133570315486811918506035532535698823116441174463418428799982522997338346944164416608306242857088823198813288459243257669534405437192666852967994083592506201157446236256586769207887959841552397008894215719877714517340565681924464504394285923031342179566866782727717714360838388937672676206082795028917639007692494987982110405274758242726106607847754768814356354706095173935896783925531108876480478183756318787107167093940607528638326589896057089962173035883523162344947918962395216096193964088150489368663908897544149136317574615884508710808943010934320164902949083605167672320627500773814035934662716737197855904409976959691277232038828725061522329332850275816596460686077738029540791247100277209015429824684584469429535941722280337262821029544236559152160542916725076656682249975148003143692078413774380204195928859633305286480155531261201353151710840685711658349430138267941345287824699139371169406661097541590979916700612539546690295126543448766310413283059613872124266720263794024593823913056442554927172826240003238891835572140790805277509511195596389068315089566969943498650097229932509230312675008193698027039286674459731846334920057744271593209624046010987669993033178809503640663718447486144895702073271657045689445991371347555910987370576886649750131189196337235290020685267646581535680031277254143932552799620818317039228600542007708620991540029073628701333152930622598257162466841404805810499589720581731187956040632512991698915426910575754458443059139584498864966149474354533923489334327662623756022157956216334959656849576129832257346290031554589176400357286152452428317221215331783281163463693983915545945672196560610700158968631977174324998750179163816162186390700839483941091168178717035775004536902013225747739366095208331507996664848085287849483024728224799746059102219485328809668327650428761330686090490775834347353445852619587877261990838168013824174204623206121086950033071666068798605844692907813321414105980383682899727622587019187199657047407654890182183816253507492983000419269802880160533431003966985170202073003598550184887890497479206626991135486701386653207632252314633686347353638423303086416819680898386524482633551629929847835592788073052476948786210686426981962619274609759382142491280754279848923865392324198182405414731392552870530049875557734910696005130995098978494299226931466830133763780001397152249947557751382431221353434627597836545607445527139007536244516350242519395454132751393399607322589835178985636972994565143386200797265695995801511487509608552501698353748412080427161704347606468196346710590211592458271086850037783693088353572331441276146151016428014539362144778130739103318456005597945466727242672571398161599087759991698621672883716985849442183598047599662333920616591851065788307384035038225182851208206002383452547540047117098136701174525117158371151263965154417461702289897018099474423953073152558607970115618816525434363232987022834897415212137283742887968733882282279000799121580950649375984262268721117808351948650936133942598783104489342535125529864984646615670667630344498232228712640311587793729016264343511710163974990720122832466390997139160478772903676016515914686080343480672716204042384502698024282506162663606524726127730671391547919265034349510321205351841830415850601759713382059650438091247910372242730609295659247151790151196564368540969468463981103664943780826240159152850598757107112308292511462795935070142773278504652322469950044972239445006110729671933881915334619013205510800475925034290180392219301800779375433768081049268926432146190493450199421286207593766069066359785171632520414192043844011800272776658745311482964973530986651059508106359251359195149747684749136913494328202442949606582357734475681256209401226751121032883478137273769243657977960981650530911549706899408071255488052629929240511652320269614400492430328797982869560944223965540561210218409446040752059952158761164349847624543363211218066584974116626626150689621683859581445072578692688663488098783552545447357394090792930651499565955881423457903228247500277377674055129110757792513973951124412721227601653902631901844273871874312572720266465160985103771968376007988216821279046976519765360599175017993797940843815651462251664415573512939660181215440297230855850270375985428058401440512125580797113562846919060032835458060546321861120429123061702785837441286225238193618171284579498428542029691411710425304279160300455479009369843348074179037557582975267327864098347924092074512112878150734963729883673889412333568697861157193184108267635743233686383856284505872801298630771195233475323165173236174540125192796346878325554466375510036298333217365286979085517783285891468049591042545165101674980094911988721565017933953590107047277192091550972775612727754318041171628816239236609545554274177503564393725626960903648492071804215375734430466883384855088834590348124467719404799615071816650078913358419198863837859718978509225352240600709847678515841134927393992097262508900327707431426276196161276138937831348278239168633843004072935118258726285640907039676823990265635790022575149813180209889823003857507757421684814046476240823975383576983914529368899372172388151140327375831129798116388077847597689184569583140547949028271101813209937078159951341941140527368684131019892576059918920978887430440467231270087270481950006746979017072257788324755670354881962907109168789012891718165808644337192775132017585407602116035176802203554599787951333997057403301783947194400350212992603639558963025158062550562172342091928430699780482146513896135567099968449162299855474817508126455070436526714635817371601205755343689824954494006325526056007465984721944126196809618843641001119328840139437302201302888325038522946172670814994048032126513730706417553299838876249276598610935957418343412833773815589193919377002646050230221915138928915207670136133612052519779690231292574744142759988500623392151325825153233150114555046077572792904321285662784408746441190485307176538698371499085753768294209985970021946797629753560791576832153691286538245090945291435149967239299140631255191090749595475436042161607291656325589030743630339751051533130227810586834353300924545801204209826500249484169238121028361401071381569853015652635684196455356135144780698693756298904587520966726927334018524118584403796240272948505975524417120624341843855506723067226930503447449896346840328553307480516808541169109698048319113820214518855453460941309197228189974597404675896482382739440492134201074169306648372298412026003027746130214265236826579055641915725586556214559407155996924357565678821593547325298311495426500331266821152891021695425613411351814831774965246227426063317175866758149265860905571758289295414765533063417850949710531065414626915063177042205855483904932138737830093288155542641828310235047321643707642735813893462866878799693260968368247292319852524762797210376563510720498084205384728134242028559401658232747811524019070141077326659567551777979904993760354096628729463837923344037456998553157502557357807434454153433222692176748262448900945365912977999721638277867391493348458083829151944828269565429747443020010512729972533120634567397071340274341499928240821137799246454531614833087077856215849272743570373708810423097082991283642745019564140843667756829212411263181749967480172763640119143009416422436855702169801569868067372981409718023727514294817102407227947206240198758476439954399962203958457639542736542877889391438581106923796579202313127315908864046183550308695445058661366731500698193880789601792426760790752123257527474294049029367676332349286656901057991849143006632565970839775807557420957168087227589432745094456416625894916868924414158385249144928700730985446866481802027344760573513230703070943891785733189852973079409009089881036046118512561562372830102856585620924035886888955468915461451916935215229696615042905557132064111816952155080906988481979251248216644068891286581246517933426850524071968578385446526862516945326393694080174194071630583181660934695888549171048909190866027768850323054437445293447547415888377157936231478902263653304322822766930909207037574851843652890717406885214538194823902882011001951882799540308505656615740918739195820242564313073405341575993499567767324163988962437931441172102403995827034198673907657330159985600861088798768532715601516432603124527797596748625136592934292656375307521255865527527473352128510112339895518768079950647095661630338847027377875806233996976557029375448391047392314079451538193494300568508980748290469169093142725110867188576783583091786011924721413315084926267395566470596415636358736068881674748251647847875726719247513010390390338765825079157613338917803743370454371069391042812230421498530210542331172013912238299708177703685928664298155803214453268024912843723530260056118922649056973125055200689420360754949479524073418980141834691954540109143008647948632877959715741314219483946403106102773466653835575666236366323462751173280998560882517656835391005761366427865396773273566037503565147450394372407286514374847387032707719135445825506460089935743101859215013100909504835302518306360576131615083132664493932126391902535279549672736551295751240408363025927789310233171916670770665107776072174055840395100253912172526852929104554089726593539248166868848465809202232633025121416169922926595396572577072615233422888571064757783092284668426783377068293202975701188607665669367671373833473478805548069148753359164313262791277035497936968806559235892157048322534123359778741526064179354046070822993733807603128125977345436877054259763827771223292233461482252228710374296510424473997038697614858462275451465912976864277449255457298333602598988996257698448176459968950662036111009451637763235282407461965616733811864660225247139672990241973082343820826409510372655877740302125800829103911444915794230975163913809914175825200783461048635571646168333797411608723577897933803168563440593036927649830278159056277027601784943886581569835189421282781494603462460361837555636992010724231615176215687827203664826103333980048431975395052520862475579672027403087810903300263018605506815497537690354681189925738383058631099161784615780009087619298334981545097565697091066301466591125408733291810740312700851695980671388132820476546913670361987013431160317381237492385062917760491225156873434544313134411858651647096273748553814730579449217812572685430464103659076119667424918985563580450798813145933526916185056029151781097528481592136287154695490463789638784784672529222515610655991707384083674308570265618543303753718410062522903202127646447624966937793727186540559163867740526784672033815561305309760986271186344096612785071202451543890822621866411272313442030862550317866968827642140530674266486022827102032098844731999935480426903620010632196641371498628095675042926335261588831388653375795740469088689669997851620040080010157903933304494685117902701900712294492853534429223148133403247757171290041112908188235945585531059354247377766643034634630481429177817483473257676877828705556278671205742539015115576994424406631446200868890663065526425105741681919870246101289118138405818273234259921824386962493802400233812485860456697591604122054736936375890214523872517866204371083301443155077067323280456153216067466438140464304742051358728564071085306000145817760224299913359668862145146072285931662099184725997106116749853572682836670465586732896903903976954658577379731861256443135457973469098450492024215020938855386911085275747319299632194631182557619401604285037892605708526617736162620683896209010171953586632741688807338756902424405172373898698264080282109958412810496748709980609650165693033265200118000578769114730115459020397056072272340715309538885527752777218888509239909101962664211722647342633658969012342681991498903751666663462478767901159988070849972002280996142621399555828742758822406777735077354960474989717222532034495151067222072567136486378090741470208664504772326601948478053742536384406281749543778819144576990854614121504655398212524419798631318154206949790573551140291199318927909219537889139504605015917863367209988453889355112341739001219035899166241666763964565336513535359828786442016693358054365378722966235285303162784155074666583968936814192791321025304145118515964629070283020970150291549946969158340480258317492930312375490368239266763418569988116280525894325211434270067016218112048152395228987743552163286365209181811318386962436633614218430402656856587429754405319752087117186299769638283819912457833944344834457898146494250724060992662060303211871933952906477263134810800601327565187788821753858880403591239219293491789366239606963700959469995613673175404611540273473687268990744370006572055445720696303369963359570324216450706123921692515325628648780245410677472084592352901782751375170977278838072317006114691421864247357964556659757895893245683026548698428486356128178780303184741452710826960376722788866833918887002768806081012325152499200958257948367088051191893152304822980189447548221137717619688393446812917832664881702043007080493074042818454412758043535858449165166160012965334644785084911828359261299190284789821781880541839339850219472487604759177162794898975129628225249856647059904326766413389918356344485732582365628173496110050248213014227557926881998360561364048417438598039272212555357917501061852821500054114545314159892964822846000150014451532119971131174349262310725964553015391185773777087685389505141972850352183316308489642732233232497543974606063463025127749652422521033256054237854714128404019415069578026683527149970286360398660086997296647295274273030178067175243098951841111203429214439802057823481664025999698759236494370668933154824842769018665157883998671639799012142891233603185654013105687786430397517778653370139921632819528687036573685211221267525677553884460056820536264097363778388402052213531840508647552678230619713752595910540386662160350676137878533400062285515451123910532857415543267566869103949336829981339402275728828898589172066346161769506372460864460372244653467327832444249697255642552574036547565176068250658054979947007784962791107698614388621691651794837983697750745078220484175173660127106738438023643922662301483712982314407048168729262923774188492394206726020532559278005720746935480461292270783662461430330943271988537290383535418003646351991953771620297695939879926164173239661673970990091817003636471043806602418417130468426580007226140530693098852900457480444664005238214045069188110376860678517830437402817651188236230417780849337045781112422867947111371876038015171702391153569538123305766749237350493748722905810017680398915834100416687651702139225131796687432557486122057619863703112734706866402677004617654366333814887207975829308260579881836043759103056532936317399016837904056106017160124060212962412681360123885309837209843286845825855621285059355764916498343540811526596268739830447644489812419697387838979317168881860521957369144091717170905965509440149856696018949471079415258803393385759005436705406406008397973086656785911721230280123390768796415959786732434691335070217720961858565189582216254662980262019677969472669308237852227760109483683451289788006694914109306120827429587484194559421348280209866839516204109061935950370367578340614496295539728147461485680532901142240236627962126821892574930835915645508469929994208782822481913271458256873630339902347171571599095688285709334412466832734721572137518212585323856179718830152203802641497727376511121484083999497318066515700071548555712500699698958650477077209383212722314650646109167225233053065199392948103201808977389197531305910279333403335671830645277242523067791253862272909384988362277340601717221224411872905783100023721803376851184119023595241774781218436800985663584599240134714504062906341735224176810664438540647155124932066327655623772125349974289492854061653429297700796166830255052593840819729916027219474703085118398174706380585734629509297211737042766686445907617232837314732978301391765641228450551515789774718901181120766186966005182262397930219261745074071721344312866892934562316682660255645357929103691027797530623929963856667844465222296673963322460624318500126338105064884769424599982657027437409723822463610134969485500216789856489099374584500043712781336000578277220099543261265779814083562569383060235236662900688852418383965465991645772190902790111211308412207337713818123263991172676144545563795706812551156714913184512046813194784775419875875936962870159516078045807993991343244217434561939467272790079345779165046011590535176247157371765569619861463471202244680292577470662163774308455709397695349386662949795063914835189391238729111349426245357366729036993570486437457570367182297641840605195354258240840324839135355704624218977994111126777781903931895444218017291264460385733979746096180997632598325816233026925345189176417670886463695783679269325974969262579596988191509101173017852992789212131038388031273569478141243651849774171353364905707771598184049222672958243908657381681550382410565224714400718544008892854442520710957635335979917917613003476670801266762542605535672873566438035006739699411874034075640521269645043821847428076607256873980267710034891022583910438607248235446329315978822180876389891788812644303197151557937587954428415102842728084989049493405649193396830312672838547351296050269215183079345757727960226835927772619638527280454302739333605163697555095983754034914285463926535353773658181231533247500246024092398567704498729486545848481262009964326180032179003630109776368155273770958401529000110821539100703993698165971362424968340484514632091689910401160426503411129869406285222739468682207169435513577284667697858664114046058091363649314421506007971958663019406723490455117964497165471341364238498822880202619981456535835556640104352938600286647223309949823399680022194792625433776757844439896724935310532477351115233481785550250996616995267369663813819562530900676803277494913483667904356594901940129866754784179503829658764059797124687262862675236124929226558888970632228494297032421562016003452828652798012935596491776778524434657795688226150954264445339921132859485868563581762660865523321716141199396649284833063424578546692459267489116320910824915651752403966276380214094214545607351899062075677687567695438921296887363152138764097799591011886728298578222041748027506400059710001424471944147553636964495594690011577358991256320918631572444901376148278575192658860010927096176625574481131230487485379193763427198304106185902340418603974487342445166754646844463492896917202785137040344918478210464801904569500878205805554669557330988768390409772479240799054491565530942371416975745027481798125097537823401863120020250112681587898910036208627799799451266022954055292292819214246946867423329846911767600306411477130468259947181757005819020850920094928317688055111512033043775881071879451828744185313349930333221823271926962404523776589466782565400568985383909562574685934637727866026865032662762799424545907685932326143737766129991163304976140794838049906648452675704038069474569156610281191403104640674667255188893211411729498122879181351065960473864950511511379327429309981763897339666966062904637830988920422081880156776452855002238869006803443510990589128476895871818973207268903692025641095227125405657637654824776176872537326737112845975514232294163483540956992525641248941656413236189148887213931488117888734504583556299686331369282863895169530041268772900686900551675440255722730530509695743286556421907132751323717643153352044048386738331451345963723253296922240653758573681969306730865674372040200043304174588070441996112988886489501543734126784715640548848356897879812063649450210895484112445946536962673736153804624165047355173608280800834002765112993717809013599553250822589937645755072533098180716996026708808360698130970662021815939132298838614556811363166445306648758147686802970968726849881318542983790953979048285881495629528205607286604117346947987959471695774991100677793632903701959562142328112071886824476454596163556653245585639298372006666497194992262341103851165938290669239876946705839910890542685815511472313536218020373156307092582225206073661473940662235994995213425543665886034118322821939800066177327434657544825629792830312903830343814996723551615237527364689130767412757973219511102800941178412035712832919263415137455165594201199822665588856207614265168758116736564635873347661736294565713923491735574047879550198284860995874152753667254467607453377310907319774042571326234892530948780764920525555067102545358462307113239268236911311708016480608945086673575926341464592835002866086433388428104389659157789993406064461631280860309123398876112670187057343889323752937187520163483318198565656851944753258680149555638269811939776751637825973590526121727517336274682630755396801811458006101231191443663717457049123126937556509448922123863983032257146041184282946841701029002639136743195912877383690274345601968602670908305129175489698930515060135309135150856697957764025321177647131789299683358198094925003418070806787348517086505115950715486889153230994780795363447660702529225070466121453280581367146614959595638012095008701119666204083441709066880714977288885893086665211515108667763437853159190597515590283778496466456979348382993449773124097995010202210725753520596551763002366517794968087364425142818937358647042801741962950275642977763535812328023384957414977902086069812537860665434976319876182265667445117062303796617048857545911088532446136999550059213196948717499744210029349190841561216274734965629544463030688761513600073377780154589197351304913305967217079261171806006788767385306420809999739746038193299934621585886220848156026967071712920910702677873993292261031705540691542861075709520806965863862760904620111034589813500286200877652934808253587937642683697147747108632893389518637578789312273332264034035326761738492218315793682909742154465091594476250166789440744434930673734188156509755981365462874584192673459739885917251250712028523272101759440172825261503259514659379124236686044833840812581162178185369059076685378091585334954599636944755269722219778200804440177662864006371642971802667966863511981386908751676072580922837480868526278799756485632748880163308984665408512286067516962904172410766661247873162433998510734895448510016879324163200818942602086535246000127599799110169093420927378933068334930349475579357913890441862297812089376406372937580126548874748436941514145517418140642668075156688592285418143798023663131569285541691985930459085280251950065214223103582691382265292691835372556376024790704741803105666936316009673728360495826032944373343640442635770746586383339975424069344286226793148178083258716333162844673363581499490822421892729623687243887635301617173972018473595712876033924808703335984058534522213606643656713535212530589463372044910209343970588775701768979013848022116944830566547940716529967905249829783141718308573225344908869440020232355357208624421057010656927371803528168884998467653052668631859344007116893997209868356487477020080213342226045918943097433314506854815162312694326859294535415679191002522655575361203378466594804637232352888927912747261968605595986383630062035776708676717880970499883724834562905351578849158368572738327026817072263113821407243708411810835340636568008467548763777805315803986201612491625075765814843691941108622851885485669556786435523948583068961154142800346101046675024648447182721182985870439170690991873417876692775410717391483029026331218692609075349117296741906140800861565199120841375034012574441348190732103751012721801295901845487007767861730615756499902679425741530010078792983969702193459635904877783510907273650536578929704201141427864709251241604203062311633685037212027067279946351769739971217266004804683731811788874745445948668847225701263863204444194550238145581270526509362941728139308470029247357431660701751567680472185109400290186411816090273502693882016457035449377287829762038109197038391469481510085081417096365577557712848218664733271194368831011769009873229298515761707152549639282217003692552935617738034771397205908723519372866183587499018137336938464214457299176783722591784079331189800537862644577898390796753917025903406255635199509148697320983773116464242818033013973401921343029978532926136694686271663544575189197140687571761492454941625491956782464334957658401667077642140047975245798808822105290761646038007292447047816056176977327479812847427405884540880503583972843982426731614477587918686049290860495031289551740123871264426121420814713363525901713123795527571723914940674550073116169066650219724757444160124167779206361981561787479843517160101451192306981054174544233284070106167140389138681348577979040657305750159052949226020193034301221958356451330694174829941462020502236227034472360211010451736020570089605877563458559246705501356604325412897242679479607575777666634420831009150066069190847726840185672650752139630254579291203433168067799941953015853452508196350183576017624709952601118227767963054257117507982851956416016698505656966797918693450154989563207641673745010198361169608626763387530235793619185240614968678140458267151984148986060411495638000863436645675908456533458840969223341891948916774781533295996551092079194783251141021253283923677327450100203116560268684018955988398483301669710991857630353445698264936383985992730149413659061087684615634692982505058722681755750598199425707977432415799756540565077077969088448548434052993462620417479778882977599102566537055663337818929078357352031708253641913901156552932174477032258997010110234064644666957652447811560308266501829711957026877167380580616520667280742285268269471600399512268056345378174835352036110391380212259849293134595029086842215498802361717083822205021018258152684215822549244534647748875186233990680892579011669172405913148029881645508080802688627342107933654411078567535232938665807531362818074143877454963737700770692942594391297150127397806277843986699438359701175401661544291062222909890185124921232552926209474441902212186416641944699672045730947986329474709862000518327876231777580245786858202048248786558543406988982089071991345605312310027528264047484762528940065298055507568130107397606874402143404594205220081689946452308059524443941227754026541524696365697488758637259862444547627167016648958305837897283999517794268912012799683412039665229254021897648846804396891130126494764827616042597451598519120750805327248820861233121678532314281986605999778948608892718675533307275195716862584282351540693226563937142059523373132667653292461224324136903993481573344007538175243301057627723600253718782702077945554828350407773924153852815813194536141766471078143061601808158826851256453370113328160012107066190765403668811182130097246548645420577219404447007036087758632162516944723910371596647176890214484293363287118453158585323745523437941467129771706898065363061839355087068643643183104211796665074186605014003175073549955349457122344329271336219271780449142196972131352610771771482063440428526424074674142155766733299271714719685093010617559864895233999193572949540531445996377075290690746948312204899344154922795682969143377761599091459710843620685786808866312456339843659075700807396666430826379594723838506193141691290201687658724882521572458376792983085602871745426886852606787299449565778223836680296555415514563726554384266558872308591866006288636816596473153019056818579658070449525720685038852160333454671170041969498854486054196118922969583758130227825747079360953953744516922621424496387529871343075320953185464376561690806596001367704922908956711215913707865184295006155757476030517337386579061904298053899503846752487236568481311254341275952703279067156884911717801766749177528025264227955267462038194559851796170939916321172100249226473450965523578276774375956186534423232188145996977664319666959847717423427746086435209918268543336394333098067534296513194352036729516687430712051818786572306396268860475815093757653338878130352572863446399130110949843877393190125093571168868810879480553827914838852031042663464699668164736719915815189426491307222896980393812590923676071041877994983850666459978906876877120904638120898879105172365323440717830705650655978360859539468218468614888763838224579947988201699240980391228083469629892805456680925839304018083073154633054633992257398583410405230321280163394488664625274534684322443265015356437326073894533462985077491296716933761908313797120803870816680417394419376609242657397417257582408709399769436377627103020599350742208952239402761289208728789971365147302229670620747953961488795702906484304799255494020754058449378841695146740375159956641359269430924908720274253998279774824979818011230284168327028896059494512834895913071411548115826590288319246075726471246548697250076312716474060515324541214562575063486606349334510857191867117715863059931790320973222597947892559668496908873858900947613399583634583140910459785882372724641620399657001276868158040090050633694774835841060336076008375853191150585290600940643249578983275418154046840445043874565394323420638471362251705851929000686323623969998484189727385760462405612979376436015136434051676083406914609470022769253859286885277770471201160082047359033754349124181162594917951143231762569817010817906003726403082307593704564775441537618099006674279527994847571390619341475288620043703480930260712479787345602510312989166715105339170419331321141965188442026653659960449417896196826454433497102015645383835601373048035469285795604517259830929213179936733672316494242517449386562641034071987810534847061796200868519620797484560520600646864525999281695954258242294968246417534952520953680892509343205574935241604464445949952759963784509448292163206380364319400941158611788635123371229397181096122299727823399073320019764539030950846752141304379251484428790190621713826830054081410481887104014722924874171622159281838704686377803881078541865626987001578608153718573646780369182275073112829269466980372710376214801100652361307331996985779027903561645412687798957302257640712784314513079826696498731913414634946585544058467831070289267112795181685756072973287456596684284464907676598228162424894259815181097993214234324739881397504382808807855507993531216494521914801144769978833225339539391426391689269913254636297696090927721635346324689389538435009949053655676468970965721515232915162604690744758471413125471422819350359669473842916707111409705822459815884239179778145327488158083317624011972448291682335862159717474373187601453485111655689855233474631720772578048199463715627473728525916994161722444463583780759371483111695380146094210718859734264094437717848374466124762847624282518481949671100561474357034340408320946793354516626721424865811931191525146396253214733033352718601809605532771205336229718749742709883592547497460676771852735194292894954442814681455898700766128516160548990426842133492681317982042093228004913009090069035392691037136299407159825451494588620423121790676265255161865066673106792824431808532698369240963758297331452388864010506326595515389126844704876113428691322677979157656245267106198634274307615049972182046150424299814818810670592215610619569573938085647708877513032944247562205852752093566363819322945347994320333060519792895807021899286124527270558325336285120695009391485876733081429690036313299711039770218821514559620318641247787064055997666575242569622921861718864972248199619855143261298362303100071245669338037609318584965619829729939905249056183574023397932953939194217434108497214613410558755728407802167723818930639311649317347530161239584119207249442076548995412891235933145999841178251680276627560108228659750142695092324937156537916151603832523318266720129964888694987645684880741525167854135628094848030612374322404169365323864326474218307265991904434711296367316577250127077020962339330209470260431866452833981611695628100117337153592474237437200063312166885770446847014588590343878860625703097021481375221553273274671436333089305943991946773256799414559944918605925489274536764026518336980913288934062199821391129349457354694687205709838222219381495753700057420000345547051829831549063804126058604823430590186446778142840124580504902652872456333697027130118495096769138255739716955304753275355685444144282897610154877854836391071148097558955703831526913971076859856257054983976197407608261823591404686411505976837103685501298582041502689336386528377722459020409539518952017660673237517642586547078519735465892106287914712933670597181531917199627232764712610789590640660258919699578266066603143468623683708771690253372144240879742888475681152253460694266767556968358406671108559481347209631712630578568715430975929479537986875923321843442330169828298924313115826363348600819833627839831084479370758862992767644198064604720116605173446235888003548333976235918040548210412692797726844746673761293689145455359832398967271436647959347637870117111463796509798644067182891076699997305792101773859996691225533991410453239210625156483723989055239048199137143867135519194474167704491190673171510901566444349148086316211420451583049449239593679186799604535159712266318483005160364714642906884076965491462929040528253904150969335518389757972502480442547227048932830381378633638195086601476508794195502016686277552087235695976796768284887396555020330528241726460812593976179072440377366917442772095848059655269200925602404924197848490546111234531212313241772505212625727281426430508435330844907854369489702377145796705995624210554857455532336804883578752213433416220310279504658433841456252882050013574477011175107224286896430900146655604995004303094987647908293895624414015497988242238215098626110356545085497229111319989940742115957946928363067293588360640806781329324872147872881087403972917982436268988781949344054565364489182616341035502725562460403021464525235114702118524215848495743364787195004056309572180970267324901561354993310706382023303391950537682669795895780158062272036215340544071541111957437673840810336256877784531285825551340163048530878058473095971983233441430706535541378608227928158535518725095192954722691179248940183066091227995535396538729627829728525410955599084223653241560172099162838229632245221790028740831022021835765926967642644888523935305472191129762319606805121377997456493371283984416289501350754186540444451769553959314696736947414553067251666985660484726290560700808859487074079041850096249500524065521267520124339626451943277848279615729595216290356351591021112297066266837481993747808338138781300856587801372804414073454176837658179136958178133466546529813859843546921728200842236193637379324687877757175560950616390345538610676202753628520934108002330957641615387759138492151690555845428829710806012435538859000376409946413465187261224413928278812443026522100891413559358458512245882047791809776342907785168991488192847257853892930711404004367665557193651017049419094813748855022513849925895113499812428840135313954416677549132796867310425505111446966897465402267229005127831370554106399546800681660876133884209817284613256388412232130711166013612007359569014782199286609271933039382062075127183313167092862852572451715600136064997383689873177871900719727706538003934408681922545563561211156320883024915391468314326949209308600136787919987749325072709096694947166332229167948667366373155407072112911983394756803849691423663585708488596571251236119580428980050701160916248859906322123763578190403022769206955686936701933440077209081997076485967675431852307291880490462210229051884565408858774302169333045662552544370156697178843728338990134907366501807730028203418656053672251382895628357677707742388641491140950769115560426778241952020599487029386550336549015166124780047070987424048086667627220323661139394169319882348019239542390711378832509455308867844718502346890893987240955181885530725995795649237784763787988094947108611311914573188071629240894312231857856039321401338293710224965391610155173950350793452252014377704461050878471418090142780101423047756371112277466680199485300768114464647650469407604914451528914294217973366033723824833019878216669601370719815597457265882564907514744791959693409634831417662645470110712776826211315751492866653711062008283973467465763869509601047198239623281892743853293338336427104877778283546190612073021509075477068207325087268066536159655718883090461986835435092080362372425696228079850461776865231601805753017786232616569370886475202492543728242852753485609411754178748206234667310766495137302008444002864232227236352645571552902098076100763562977580033529958511593102165826774594176904942701828217077135763560291216622729213857998094334421889353911391622574256849344334829490476350295396061427035619941909603572183541208554519814965575769345091528028230185236262599603053834983188458123323012669434388894949793359694714749950167939243224970732168195810874401543896605001009028538829430930244019220388599207486617158715346598405389531337695023259681246689899258662490315415167246493144145455461253525208408049724440511299799176056027799927644526772811500528791504799689120985359681988775566432348435075297224988616339616671550560937889601945337967326113839343854133041070272938480864599494127056527533061781304119429206106929339325745100689557695555221780158242637400515397005209603894116114055970729197368021287218253248291934993873562509630941845461550748514308814592449416358560534127301048793640960173039055260904028620377467393217150720365896204533979422504667964299472497712294085283731579364863246783950229042538881555947320656786518334292055552291297806922146354462104441497059365845189347808879772938293000230549510666665911320574053860248838326806629372754970178556939268213623260488148546442157764858958588352750681963265885899877690435549541551513346545158450257917841834175161764947176748996070765809477228694879772073005260267315953173033468452650434984939272757149331116091489171942475667487812979443799201531970297409388853236261950275588658426726969644788462194314147704786802068073911693136971670327205088075170608055215146748186313625576048768720992521192748792604217148674891027407348247034383781051387573881259493599044342936285660054350759818677703872571526316169242164114424845797239176132850408913467381066443859507860946205564599621655703478717515052754554046658733858238422260495939739127801913766382940532945245377819758853773141198634090789603669622086073941166380488354140491779593327960335582663844250498770787682358673669925812731131683273263686546637605891463223085183758699812560741786138527179724033710289596072672798232880200960572673965215411746786541727744543983376835884976194285609017384423995790568431866828423241101387878235504442451115856397241743502947946832569765081833955985035136542330958285514541102080396127204833062963172663031669013243192967097112035751402476035164992123089461287799677715866211512450179445885955136586607924317701397782828441850347029545020352753095728964032744066114970860918092323836197894277635235644339384555353443412342223220481242879584401321353648763762476217153664148851575005470673268415083027067669957946445377676176689467542249592129636898348094502912204452939415263918595442178837483429519796654283750865624859626048190002408153136945900351265626517539433298894125557994963223971534515532107867316019708018340876786510501808568486247890929407677460302794606201129613615381461425252419391693938236408486811565292299186402555826389553222947275806468486101416468584872910855810713277170635752202298126287993632961355077449646574473460187614685942734914087587266458142365005407133109359022099553768407535325774796472652969686452139110144946543693696116281097820833696444057281840663667552381515881902160370455433166030628243897104364070880801871306967673099080611511275993923927158128993155161094802097844067800109054518255752879819447163525119769756435148576508392484537109648208067324461492763059753474728834030095350395055713878682305057098538437988421568628693224502700995759935199194846275041675881954197169872974386714838275035680115619799658788703111028471681765714805077383417193060626468035446690344212858508043194547238716555009416837030613827037602907841045656051364893269112592844215647553975047063078283092564861895342870899719188427598824214890103170101506035432179973190854764899281242153075718946652504965843751400430319301717275251630013789839375857617018348433216935483667933665381824454842129023666418052887707301623216646209417761595787268751837536036345583677182188932504218139268964623114680408982185571247457423621563739154947345140980979857175968017671397962536300112757024320402618912361800237388275347653227469499883302168128021759082836696156730413582548126068419972845719703557320739314788280165138194482143271888491388969916729882847670207959345104919529773155189008123461625841121830588448335056823653380099283099008368185651573787976097983134295387744352417855034682461776463059369978606898721687654374088836482893002953603954155179318877679926129856538385137194619546712992186135253226245635497881349554784253856131682781959166505549866484790044036440910321529155951979163148248910815443533637505276162182971502692856137061003975921657803573732144891300686960960109922083908695267552508027836032226138357510085036110057412946321163893449300188340663953758399587326371201755878185959974227341201326316476934194755009883923152445920059283737505469559016996463504845362440158972865296222140104790206895682014324718908676776222858704130819221051017757468655489449689275617676286069227084874938176983992598711587078254901454634940738440858709315559962764711358120507403703816147053204557901227894955753651392640751934006513624764699743735368363059026795389992347235681456096055069582895187631986067902268923595862014300696523614589171475489616614663969992047379627573835824687147880999004783562774548082673605478640951611661394784058142644723747622016926120023710020173754927462956258176488741052766001418598249701740814011670428269771900533616987500970991806571804906086245161148644966638734181765072433350365062190124696189567431842045953005001157604594114891137567102302457982476801251429351634151676440802934552946606322927932359471202582246945360945699008895007120869293640476394407778754446509296835623915270116109070860063445124921937486825226803708826307594983760580594686805076982180374854474225539218317689053537885569149108414901635263808529072885071357047871164880747049960913897629177762702094973035337967665018621913910249170090860106943738282034807487156455538157109920024370750742852184990393151538846475981226265015993357923787341290002174434513455825093695334988050524652669046618478081322945698902987489880782704823156541470507882990492936533812272292549809797244380585438728262497732463279194748910232781572353401740018408646828038574284995617894457184378243252416712182305984150594333642377869407615166025468865728799812114591918656692946175698860376035164290108201034992519953099014422574123687450944061912929968814367967241584009137032852123211232402470520753461762686426356328764125988410760977299681572693592089326232010333925256071613747899345032927208250305965270923088039028066375652749833487513375741159676931364922990655582493648466887121562589695534718608722287368740948332634739197901704268177482887118172411504578154385027080704059696793758278522502424488709287959328000834086560178508464382312291790234442563214844431869567148796009813612854131523136248591209221600431491141918401580958837169447069137722331589900888426419909964171053828974421172303320306071304574170916959439984609328231652872925413712024841737362489984015455161503937155113845593421595743746719519908015869783217894504705744502536474760070124993153509350727483982832882077757940964799090645661273435875306484537000518775830199828217988630124691559736652355883911677624097824233983017209675952491643888885115264774871444838038573971613528758320752806712980652621322646563705818490161781830649545980020811976694491308539391791694791560563429220273992992889241350897107362503721656702639113103347285232567571464795427232200167502031938010313042903879910902953623520877123650167199416405558368820587741230085130834763423138261913287572668294727973177204093465718513614215575278070210925400133740419813792430113360532907828616781140412302368059639609435554758455795546636565461821673547304141741088893877771222299410310854253716396304412897622522866833135754308450499959051661754936314925111194485199378885988461989672387706925745150992717804371346276944600495554455004805233446450046351161851452025156496426152445184129366687735965298367071552331795123153243709083167626747861637510797251179508555302420100701002091024540010969148801629832100769110917668702729513177983132133224231337512855617643052517465088910179577476078743412471609193945709528159866650115190515184085150933830817660438772800186789205725201216530633219747504387928724819992743511908152488592595572387777281000735265432783803869983572731672775853734337936048470529787552168791509084055882117589077849724160966900314440509086180522429645796899339401707885814953284878119115355091515147835169119288661231360972778833681683425186335309659957173768107016657792031667837848680005773595586956157827667083906631976727140517818362742181923951856484446069579668699758347520706610317791573521333071249444781154939240518217087381452541125834023237253439733810244034940261307012421367099916189001976898653571776744341172896913849814835913050923177439354277991227912655057428477624517076878451328747519442655495355232922036932124830715645760815293970412796927067034947143406730625502707164935296940926006179388463542974200740638538614194778349442286540675961860403596614612783261435450906649109774150003922797997253336655963868474312071949814151039562949199897415590524452960919341470678307138190357806390575615817535752057574691879880612827713335524751742204314079208805165592035349454952933790063918641995664723274906168000819952091227288534624082474216213464085740395221139618607465049492583138750378985688718168099057677150317916429731312954126072954665930848025103499049903489406034478378203499463068948562744979168093016133924507199222093816078998108907863700166064505443842632957204781434842981773155966227873316767055435853148326898350161153114208667745917631853372166163315921644553696936105856563901172623093215283953997534256755186007480154037458075707861590832406878439586183348568732161983386281077746962557685288752897522920089593150448644085316282590034033118942204107345707012613511917241340684125420621426373616861606273952211751970821742719733686640291223118371792791900232400136182489204710098718922538358188524564465183924189156207184650060306938868400052275366125887340377627108237998511976202211119248180836208964282838785381380356280962861757774389024086747075151137700925594521980137077628940576664893676128316596514422699314620085618574469278408858689634617376283619564033689840743572411754474260571431556167559451968949759369377697243723697730148713413453175971788673445446809951019188492742345014519912162520205658415522471972195759028915512748480583383955295365352021388429489596671841430661551911712637386856579961212207256081116923038898061065936498235094106584628686788535181116798029631835675907830411100791642011784665577462901711377521273491677724007277920980347193074708753772905761992697153191226516147943292896740251415633296988383262263287662316669072309976718956119065966453527458795844545801148496759489016190007158802588670158430132258919190562323266454905062445540210743543072283050849428493106657729236976260820079847499430912477922926148640817996019307347735008811508332670371898586875560803906337681726308088075186618735906950134372199634229708099688723452530024506707480608461868758417327487690453342137833436171937628524123990790588168654457853576628415580840583636128016275451554624091830351215801684491076753879288169984576620713124080970432708101322945241557513905568080310514239498827199770514973018329016404787569994792834890965384064411493691124896016295599425661643048108917091300673517888580414559515310687772399638434959359510047462129501008546231609852138882261160957078087430329521063743355942649680138376500187187523503372876708955124831765406086623177359827177387153066668258858276962201640824733246533487711834813402990259146939811614434107861668663250048861636108550251575208354924111118291601807080637398667917346906415730907900903389855707979619644043340201328688856999173239332295207784544665852842477975731385074339829104205448057711679168495063018317034647285855930539791360965062257279760889299661222794723659377200243972048073639543033584011769592798717778341853280094989935311648209017844204462399514398405883600561484345949363048967501401488382014648186430897882165180974389595663514363094117460404642322563463286121599179391649470335808632098548613267363762772124033472903229195334667424954963571518579669062347946955401556917777466230533949403893434936207707226060597118243150670496544108371911867103627806820979010073788534909186968422755145601715993790068955838454637591253265353910168222204090883943053348221250820491112487689658174340218894482281090617605437718909792265104816394937302481884080241428522372673326774014753947174200431200523331175497242252966615149303146930637124257046952267295157195809572544754938695640516789809771757157872116787011320928962798005247157087083954122698760180538475522679104016715840968015982386860158477942133735759553394594470401056728567338960439132128912732063617299673272665329871695195974314971469910431378192898806974142990503358393950433345079885309810435510124628892807815405727240347682187175931767955274223634559010656437772728367534124149842888290483888002328416386708886199763035313526715447748363503819925279598511485452582226681499057949387820987373377156657033870115136682287409218790003577907909519555806705938272673712819248731022240297657295959576950368616693319908016644949353076489524868392908018116864273595573521609180935810890298385625784584200610842490964555850810718289123205014004052004761225254563740549812269608968779897061922537740456946620757709005606752382759467036299823695280466679218334503148606524176364502804609317843193539212259103767111163323743690265997772814136829101604822504822908945755011615787960433465090079871581654149964385953427583016533949026463607408314971827345584738249020009634854741471634920362591763385384491506130589187670210628803685329193016267590326506148125827239866699411449736619994875642330209072212212472862070463620811424116392717886940314347385385239217628326022855393392545314220031943162421657161292841339628004381709127321037886103974918571669544585607987574786675112796338126317839403254277793934340202663101318016532785381031403759564377447288325517890138136623692785209225293849920148211444389352344695205496039161225227033461324373809499662141075184564675137697096985007380985770407357826659996498749859260883216800634690717464775358938702932997602827976060109103655060432500361818070494671925335083859741601107131878417315503410951888841056574476146220575730626013585841966945610129977010422870594873909178345337532706133246497228718556111437713631672958923643094301369635524883110201714685016959152942788464967223105403375493581446962928629318953676753622750975321045532722701705622288137805326746779437457943538415856818249943634631333539841367597279345513375630011067547273983611632331908326902809491221252573532582729805012293496431589384501730553201756266847572894803623384654665415530229976007775728357693424939563724713243138346368667935720573757747837897816026391610992464658199332490560380115278308620488212544674553759394006548399653478317600226187090771692271074813925282171672672924935530115935773533360247192421879612044782052454847426276240983920359854564464442635737628161800742443779357570194092866446884166386821215575474493042181593996232656690777855355223837298690690277022466439205105907456111547853443358639720379853032139560207805331477859671109832592927062947158563005292657974701925962227654004669247052236060704548672691110709547486529970138968977525272342837893837358335966669343708950447291409931154847438376809708599513853111088205773876630392244435081621182793851833984732864242704565621927713918439347748724933950233559409760685282833191878444554162557194193155859396673645736573459996348368375023653919323703051381370601770982820311404655956315284834607869030418738584181223241220549021703927998783043442046919634895396688618314615723651208997423177229340616762754134095570185210736239125739220857722770379278575528445598251538825419350790321455752608120532962805726446628499184574798014758712475314841876002106546702119371730326349573175367344264646780991989585032627530180131233135001848215060094224971809326788388448548367838481425343867115814493497627575869892506845247807083141672027093776681232471224109656382260215370173362455867334592739914110592774622907899379489610748408671657425292152100586620638017428935508523085610614881984287838457853301556288867957127919454924929002608230425684099459949108513170974657916956657888471532484086360858188856311217803888015588076047544327639255203739057234921611570698739453457716796921879236838422929608482478494782283722638015299700680430024991041303550023868069152643549740559827631276857082755891603976221212603638472077835013493074186314358324678073046355956524050863586124645924232960936644397985742925363193032657601149918675240481579226304255326687596464267928064036572288564463263814268148549586014262129450130747836635417782151436506416575844114951301450278738792537176937736149024324567356451041322281492091314086514440319741290943914968008728171394733582536779225593346647254670118785048086783315572867229693222194809228273377837183552604158055414611221821117009158310050009722254248812144979551611767311502747915203026682692206031322059786262979575350311899504691832870689269272466188997512349304190128307364448450468642367274367937951731796443060000549214356076385677461535716808465120515706292195469955669229248959224941182937497765851768812911758261197701614221221868776529950906481324417635713711328599487095661337747801403060600594723587502820009398091202217508612621349528539658212383847136472641118264344044522044328906020390198903289904346117920461583951321748323301264892459787930410473009111288879852076691098489691008441273214708194761886614484396375724296548507945803965716697032700693637756453174628638853343369572773146834608167534497069805712168057650916770215044500516655343689906965123076874948955171002712133993878453421704552347809842703828392984115128721908165030954988309322374470721183776071077943429553825330610303094989556118770488259748227578548352146540707562334174276745648701457546693218041884612107830860006875271462019496577996516463336982542671220503256939809102784055077432727548375464338622868219961210172215273762038607640781358283551685643958834753293829842189867367413218827311623942198449071296554751966146122425070250012433514610304129441417534838885590505290835732670359618009770438855772554593734790651479680413499886607219667928965626517616715319640501095281263169459130644076684435754262663325657539835508167832173041432212730186724192935667949773021931404093346757859839008762980949012568654637658518530564878721756043522029770999420630287877684577563371921340840658733063323469480970859653876635883287801325982212711593934315139871855854458438019177021277216622511774034925037603159509209879515956944099292919787638967362083885554142236993600748170473176603362345348690567269431287511129061788349236072329297130207203530794796518490080211732203341626406873840565380044897354639457885270532549038146071617708585861849154083320632085120723411696579160916380786571179108037495175179958281610645124290995890489536508055184840398936729841091012448449531360492116828237555797084655196260816897664723986893753263499545704705351385197718737765041328104467679071702684400097427387291988801073127360610011195664813166146868191616760488102500716488122354292556698620033642359990641706837009312552128814363718562413701530027340344070014981419082252366347695237010515819065908148090857146522635810073869550171109683540706856092192081219523331277111651084944104426516002889293390897073203441917627474503585718301670554603670375576225625799128822556432544404219283081418842728405741563798476166762316423756362475548647699951083917104293256386685783252147092588736637383495287988605019508611006882463033137103315582765319112549742817497401592772186096366105850572364170672543631453739394412266443526497680290985143242213621293393097266493415332677299045134506956691997302663620993980364052674098083241616440839655311793990977489432892927678243716804269690600422940798955420824629706979279256049082686108077862767850482763915809653961433347669921606079868666681417920294387675559625144493040009603560785767460420182843408333891173140062825646610027734058651787236763879525634773963537814100232345531695175244609526027029164448098715060218783477928786557618993521646038178622793063442758744555660519126614298837945170085594086046770058874044918964713039641020493048254626659173676659405054568775175969136663434520937853172159577128666541226249869840655805128349299991708319996815139375871324620109082830725145778106648526329560148687521810429007532794085130277321097126290515718169179782357224189506935458982277123081170100542579974583077863541227638131811871254142871392613272063769171142547196542101336747972001395909724820155477150420389058256185413841782968904670600435927629399343688254654887854014003014846504442001766448304810679062618753962002711172993234200470707698746118258327229647772973061737421203902950568923988586760486230669536345224179186069659075076455699417172036957762965623076044145394890793753760605286232494686458311819609455736405818618529495541251830447057170221784160251289206823624762347162814908620916464723631610864199732921521595173476720313328783807584278565497053692028867077917344121593388012774381195748623512982158362616180465968230293654658803771218988155296557341146171763159439163237644131613903760161783553271451334282269678704051129766913489086176459874870160607890239838579356656988432340519164696945825377984537499075096123753793251704141457298944640396180606299444824278760085710283182790597669123769344235718693543079024379396903878853743521035299805508442700801131066716043955315374790210600106114839164746584170423795037219006642114692408698410198204898143441844083921940104776498227403028654692652110091313165142604688550143050221940410756076039676111523887398564135120616547525230742673141855584249263553513630925087982941658025250401602085031145433378985426943747485359060983772912072185069903067744157457410013207050459137793925773865806403527182613308521202879162683257100866866196524240601936419564173259787946767385884803420801041247331586030605010835006790862268545231775272216186166992369445066055604465110853250595124304970747350039189153990292962824158952004265621255330561336832290767858711013673540705926506725481924283568990558898520387215903009978109685053396459597107988357941952990162715920349224368103329202252724844852461858513531611266120884640271596483851160905027113742696602463540054650796746098636131591510688746676650408669785569129731683730952232273444181316029463539347852369970500232093915686875717153805581535082434758736266457558915694704867120747106589320769032403444815694046287327589897091998875641899731625564021407468897266880159242508456152970615252366401369733321976995430585231647644096116505962903109438873781989579884277343545432093388613021297199968401785778887098184975956749001736840496335542966861532644258249659360833251494075019180306631988754252198873625736907552335469349230740922560816051663299196121400695529780329910761545878439361423416640364035474642476983851955751701733862197226022153688059909824770242336385915797062102367052680224517897468223011537161708193033854255818147521476285605318879590045530709985604246899636299854291225584360553343564977786443674605531194504555508568678319157494364535174038010573637892414508472695518633116804223907513062725260516701867581509722528985029190047178004806407264862513337970478470042268558898584519696968913849504390770119402456261502614409827049610094195189324348477647326471052831505994893829711429141034440373365836213970121121895161419511258947684580367202007911864741647035849432330633871523628588258370134511802400510299574637130625075944863974689708404050098893151130133301030478128152436915991792787075524546492139116872936382526175647021314899445276319810890939500957904526148039099917897815602906889472962229286787745406382071015050545739518231685937664102483673667550745147263588587838359891086316371597032884909177362571650950061463039677699880268386447745945767681059831486308842535915976867903021649269232419924696145443965205157888799278177656482857508577246364255032339833135138393940853338608101976944101058491810794949852583340461971347258230667581981600765856943672565271308642220319794229987193882356253751890366103789343826870949270795126500062773400071617414449176402270242581051898948288485055818525753600830354522847925338697269585677262244800013833856924871648732049420090084748151234084970485990222899367051014499129356055659805739662149508818438454063013007215695807697125719150204264739428061593762868491057555496735867062397634187465052212471392581431448663233976083014200879553325944869167959568149975062403476510371717500834355138418687439818670417784650574112922021813950394621954418314243935171441399075930594459078365166342602885462918451997454955994116751044524454686628863851212980923333373396096078892577616478032829876775317157711717640376797758746612560894158495505584223121301992683543544673529379024270713862240388562156196650504447630848287310817929719874180612843987773027440363863372998189319447588119372766933263278599655195090198722408845834009258273003706910667185497647705999613476016486937246665119876793546195104531451792882730960404038057454925466877981470271395341706657756873852682991614683448608373683150608000995726599030978980889920990451773420232763197981373894679485193593148612100683508007128113131615465409110737279513869629182251491114674923742205769067747885365209828974136944263457307945548823301590389677854286280736740665227669131299148494607912406602205254556335109098155918997555288715442150906937898509079631158255236132615018901672324020237126195819336000926720875686817281850161599497357219904629629530024545055223947370772130742588154559515588591598161429551934750164618019321558828542896073959458232832423847161953729184569494437158739126750168105890952226725185689736208915603268243910239939368756813665319091790781770614478194106856267033174337987318282930825266894975303695809333508229935060821756918602023095933353097601600386737190604208149084772162795288279811313509984231643322658683000459289536949213759906162195485369745084062297864907681587359884899012423674672210801966640138507312765897824193632027495378108567501186129008114470940196265788015928432036213829558557918115416589838757560191894060240938949274989856651596779174767148275314064191595992725216783867088041911855188899744674898062392524339724694221792174808014035592066336848654901002855585578838719754616411728805085511249225689068812142271940181451640358149756021052069437431788900731835430280165258445576226998210630112192568274081857725454462500652904148173904375720823638377154919604019644176124412335420938458161181997305803020533702487285042573948047678287718547994737029101560850019719606088080807471670938989537509448936463492607903971080623762660652471155009299707136554370940546217493064785386378399137668194832169772150593610806690707559387978719999472284066513713979428530100177316639466258426295390843796738269837468063009846972941601767765516959956744580343897178259830223299794457743595172414493146453148762726238841072422849254673042675052758343858294435000822013558986684464463320121015955933406650465031864171797313586768579694911868262628094308265381978560617694467675229910687799872267722782821701804522638208199815651542183478631562658575597475012450585000522984436872084064705957801128646118572866155882011408823756902017820547148149715720905083186875060834780229084179932389865381084302638471149816583453806960511141970551814654447893510785866725963481246289476820078429422145185074942639663957524142671730774686815273464405759546006601799555679382612346973135291209015776685074871269380390674806443870230219193815467823055392788837715275745903538969177349423484221848662832355826408731222662646694279736064266751873138481806093909538114553626578397224622077605179746307489354139964441602155587525013420117872477917748816872665705625181702995228180195011189510938258301120375588302635428999885226850600684035563748190000414240222480590331632243091208093520187540349231214149567763834912461260702561576618164562643463816575232758703525578984356389086206917369106159064000372372772854559288045468914534221716436958912370173385920783392428910174834111440776060045625493155422796237941838271374106106287076668529891175135063236860071643478008436720721644286254556335125325718154269686285016556908650105166582013251242304335482561010401046599400062992446792252139345264064651496819673738654501545866805152200821901755176739693625371097826132246590591019779779601701135405667782276345252174954859788649126930937554538257086535497454357061505043463468874499048860060592076227138346699281029763892079065470561360592846645709397736045430953284624548000865876048294230225605158790503605201245774930661276390135504902993310492996862361804356388895098304231395712277468248652867158402858949416821374815099790984004465417830369457811690607343396248249331999034384312587553618982402330537416711547788803360933028568093846462498816907888567651960423487560148501712134078024031093917684434823483119278554212807125220887943238996299472677463834033575994051169465993715991925368177668186411691026014206818246696176133730770910695966533362059632963717900217368719326249687920120288968990954119789126206620124707178783293186049939081578185676935919862806601879848938607939754249557842772691584291642304201659465336831997374962074824290130642521523099255873571269026099162413784542727446656278283620540654690586717180553469714156492449136296301839591457849202737188641485023376403654011858503333818170436734863301341626981027057722505794233005175963966238522647366171426664292470256882230099008281918855262073650028113329785474775546977915915565538660741522043576313455329013152579071193993547534945366969844893599428845429040267176914694754563673144517282762760485934901855297862103289426525224995579414377346857963418342630835798378148679037332675379979733766975495724148141309200167780652707510354974009309146352609489140404721425339739164168794361369279448925262855430277843501773409885493943532006287530838407180609305894157947656470279979587936839137565509954736131296125339879346018800166654166316118474323377901062278158637779818653262835771666697927608042551079036455300971752143796258051643714422026404474259150997878186794082127258568131889407836426519962018900608084038190325318722263179434561882345143488395576751522100913483177122043307116533537974423920894806989379771774414200508412336826263476623418541278721654281176940677545417226313637997679636131757164788368972160609480790431905944406283711496417195968285958327785225690013676817409774284443878888117968294831530505890853384607044371076896866960353681406235420981921955413574585326032856974724208343943059824999704588767889923653511356814112661272906513166196811724127675938604828242540528727607076753927848586971505352061101447137237823258066901827422057417445790259195564206438303941774218962534915372649793400889032367106059431305642100751195654563670394918932289104589637679285431245271310726646460180724041144024091305708684750879829332098567313621155688332481750023463956433405431938344020194694258424062881513881574274967801703293192427831422788632986477528087209166096450641512783317447287842079173562774701753645237460348692900596310874643407716521385772815962647689547330432972820992644134318327522965951761324311368997744927168174262975262239653869006594597093775247031525897780037491632060155801417346877155152146543582727372096371668677436474985895350907636909879522220976703250344379680852698625743037737367967593941657424313743762492132817353507328551563429136004479290728315904002291646714347559871605035799866731247257839331817917031029762458028059927375171939358950588052757441954910357228977704550044450952770341715778000209392009990639087118415824383621218151360246946059592109719124262383041312924570524285044927129307082340093695442718216004727267166833335933721801665427035138429243392747908588300769695624682528956843150589069358736116648592168515856917439895360272533919502887330313106245941160780972986763920277726295867158136191033436725562108693831693823846101562919340428841223750006909407496724379190555508843922583670890177464481478309652067805942841834924062192949945392381572305463057970415472947744119771739260831133201263811384918815341045347760413898999495545455787279971414181318361469244996280832845707779972726334759968288509578050990192154680515061739970554905831899372926571819998748918259134098154493756975861051291998136655272511370643265578813915520222847360105674732460456156514607241069312995236908588764833073754291745231700713767483584551029786634835002766094348922458166282420682101181373343321811963014198700660596206131275189318244366126935212116413871516754344471660977411995929578091951213250112714986417324664014552477079079405618299730198402078236348488598389334188194131613005537335126500597902621281302784445347556963489307742726590359207278324164118861966370295515341153093042654319821388436390207485832727897881924458455185393102690508358336129936646145569618639196180200548079465118064177268662947241437993408555298054766627275199638167652562958602582446458871224021698187812906321853272950465599413210571990055894962965840698032592998324464963517772935727956598857827435267310238149454820763446850698493357555172224787284391054688919569401451288065951227176310821421209985888078309227668097065444736987253527274030143360164558706498132457639086081090000065637597312742664285693341353114410074728311894084003304971792740367177826669311177240865708744090676559095869821504949392418340245185618923194666638505787192679899280160446834760646117989875043348441319717466048216169787079256183683003619272786440742652029090262735623532289185909188613155148142190787985144220985277368492143134100101933482332757995415492890805657391274754571794260546260798596060133109579855883011496484980959161443223872912803093715301817991119845310601956875530355974013432287775762525761923094494841047354208501769439979823438922605202554503064947834473303707691125938852171742339991714231095055032319090557791462441010615169638373270748965345693067993196186614197816658578083385094361065045412590173766285156950489383939054521046842791225593801405913590911227192806754660221721532621122820254070239193726905911906999644776192481907767321901473171122651759521537096790129294866476712909012851771757529549658456133371845995390008814227259309285633500011085188876536925744589869300195430755590123583892769535001790729252195141335472354903054538644769326758230350979986190990625338834816763621044159030614441683249116132424684267832756733868319339137680400401561975354180755580843693194933079004766530137669638407056058046827209848013597483433992249972752362471350210728544592229441388079885798032598101331763727240123410490360353059716437761293505298126930246120464792944365845636013284647908115716698551135357279508992352498113015673222739042113338587452974004225447218152923051429784780389304998143417808592469791450467157965422624306553241234119554572214591808121839917587838607783732046479452159166339734675886987939973402269805397370328993396995027828901283006452597305895459758400010256985235408700526865117352727557599673009729744180183643959380166610413976197507548649365926391209182798601646538257332537325721460100930985534391100279810482909965268339368254512582687200681490197528408602838547675656822480976178008741587641838862354708296068480097453169556787778641796097286517606168974389712374618043155607880611180775797837271947831156063649350732914877009498048731907635980443238077037064108503861378547298619542934228571171857478210932237029472110019537565182012404641579309789924983161435556854264239087161374587782414751653831221060764787649549002781695657330073675495016653069372922490889699877718429289879699312112893264370303949431390140489993701917643367594607371097002336528340420630533992920852125550880330045794197797796917701691488428821024379773601806966496397642372160619350645815695207605017265076958121379855810117521446160800172265049731442304688062436161923149091714386648531842567094046926272521689273392399190609635871864331461159392403306770061131252218700007053845852384331149426345897268690963198680110885644010279726299011061442909939023535432431471520452775175392114381048617465191614592824573326102444677897607879686862627416146029453626965566833545843281122059287667028856480151394763497592993162142052997839629457151079223836533271209770971937430095431740347840211949911359031059936733933860946118724563621984415322799639966439671148171145956624536345117912007985609867026333347804299163657410041867391946347469641485324081591061033412022697943079971605830716630662408134294731012346066725762693780880092432023153907145566840102285550548162492423475687159788316837000212163587213765288339123535940095121651671442415371135425571855757888263538384165858017379653154962837184623412423101729837610688175363353936680658400076550928887823741094850044407624706954456059282610442927144238457084030253378259639011014184741782507671036189268873464554379896648362465757752707206942540239553673956138387033045242106663163608987087489934654280697931098845238396888529972687666457657668384916280048524220937265144249999651381606658120222758468583651047678806350428549964256966444863509349849730605957966339871104271391512004278726903630477515077057025487192960746122969230958235098796817165155454410768718096238171942150844047816343509704811767222082805342083458260330942486664481158858206014174867969577059333734396750353545291279917733983448562069076490219310131901323148110853893939632699716141717647998245364180791695761336565323086056936992672371255885944907142833847865913395933672360285234681057928046023269136048140319778119292339974651456256445853595301094197534691980664918454933228557722819720840756102998617674814189208657732537156610180013613460053884573354241111607774001127437847289668405151313530933868810675367370521801602100745813485785467496465081528350190411514076178123577487019810478479368624587578366963643957947581323118149431037495865791158824979735063089697754672461998576488208617578811433313354567821086351687000547811937429745318863178409856203742715197661034014537545480795264332178036919901450987643121085943455061731400799659260317260221299528884629340051543083457606291612701130796693713240770142748810365826960889937785311288399600117783439081825196169811270880899255167238718658244829509394103103838180194321825651353297955550316552848028264881821895909870084237438121423445273738336480149185772486153089987436845139438829123140485184345283023951213094387263299416338499842269075419042791379427033012624868860555516810838589784894944852827793825691449436250300842791911893834620917613167755162984763527637355298106481982571759973480458703557618590016363130002596844484867216609700606572625386681319014525912074806134787946961571195221008276216538996751017856492362023209442985017862316229723877112024718984342231885807163281027690544786636394283304645047787323407332660171842086724613632436967119817964578031915548228790103570495635937099600594403533953398900882838897006347169875763045561947752237987381586181590899187280147017049798793861222793292295575440124198859266185459490263883133228672533708672645582414665587690556576962398949935256713509859195836161100911073599531208139266131832472597671220256035169630065464363467253109303199301605922199072290455780056257157439011003488755813606708645814294646574395754841418461234139877709606043709852521014967198291904234591339137031289754912746130621086071300228724945165064637352054039521326441241263056842942354088950811892276752691256037094618890456417836194808649823822191537956316573927387017927915901540239654610042788457627525628365873426403406200489800655684005200714665228603099571137690400061003005992539041340040118214845975218532726911063045977404240924068682954015445813702709098754376120412180251174059536197261132545936376253221946558719113205426604570439889668895820200266209367313312128509534330635591323546396358393897447505772970061193939099815103684791399061932789958344475630443374435491532150190776769315134906092596147434352351579232573687365243716228563308252071352370258339463747286981966527018664372447297060590166848408198009554955665663581014448772582794735992299117976800891283246955313511748790708632809621984066076374156863340197906442406236543196125501235694427907259641414527405633316595156808522194606082465080174500452753033201889934259703986312232681202555375347568131950089556178462948133959164166010520449426432112370856765483853170927603569451916786687639112769446659798343495995383656678488404921372815762691404248350546041012561790775741138760779455913388849505153604432933753239830426714003283267288802918758473487107915973082951929414677795315978848498960401893193842253112172500614933273127029582432410400416349294199644575939338392111693383345876113581527798858402596225556337103668310760898787143250750418265638870022275765398241403348924685490621913482377829413357708742682996099467931203004034866499457430057767882506512262845711747325369595676820564312219482186613455010167772433331125967790871666123282405231131279287833116961139791984556443841666722253062597519252324956927345566231786031289603817704753347968810390092752096932160315146897510242740664892494178988062705391323769046733002179291841365981579600155372117206119006171421072638063115506213230546177232387797405303677761894961044083939225158206472850891903081653685047089783065359532822160426220855341505466059195881733174271516340999161009315287400740308657633719089847720363615963196456541451687109393036434772089744804978584581490577548128819395898317378017217199805039171469060672814902107425990277585106196532861826672984141273159031439889394592290316713011707696136351178836374221565479334768327990710930411231165304227910060375725865326197832541430965392616877139848487460254050759813513624243794888618324643420039547009316081140765644454269762283538986233789543515346166154530306036147751191653467970655376858098792792025214677341579300909742043525897514292129385414785511119966569076538547918313356649725613829267350525238648120545658161034408048388191184843722734153813139273455343651919728965004858259140561495131935322567641803318739867226809022737584509530945666050834057462993609683241898987806590438664635003714306494870777280144801706352917857760922509720749857428719956854776140060066992997718799480759104392071182079641615244668084696755497158811042176429821113258064974842057846710411488605770314850494949297361360898094519951341936819816726304649517703665197647220248960786202866876161739652752747822838028773487906798423937938034557043188968771011405581913568849619791432511267528861760532632411330107926038355371831497457095059926952435807197597019063518925803007485251932354864561766513078339552089568559868708626530156814974296883100493667075081987990015913993724538364568291029441918374167893690038983300021295049925971566008887614825331005079836815469790544945809837914080298950785644070855671497142621752345603524167624738703816138004996376843601598225277205589384589939095226755870134240354665476380265367092445093765665027418701749484640464887969835064239374624191527146253839573215438216763693747976417959141494353263212196977054118595328524714168579088983049390226962399979731134889435696426436208339237307241573000825928060441936556285182560603992505601704143603952083464147317370184575588947939521658125881151724080951146883880454773948747826872080942028311268002071843438391165362013260765805490639362603432367076015266919865635672241887977082278338749681079205692703408896029429194602209652831784822285083210298990907533082189608524367781232836252920997855943783170434293972865489778946018135692974110381929115829844287319999641111978428137639184500063109507807539332925908745092287307699808432074017724674409201010917220135206700453288987125499740185805426086300577373347495160712922015536378398860743809291331271461562444980414745242379021946661595309104996011922643743580110602805632682192719053804334940656678889579716696131958652832023978082228455175307653229480882964872933714991313293943643313324578500349929915793820703348520655407583250275780995317354766240498180272745782351082517215652982827087055948653386086065257525387651056652621019324730084006894530556910297989559601970250397075171676802710116289229605629340677617465253998949606683824328977864528025670017698077866009046309669855981697729042029523652619400388734495130200621469493127959904500123672972694423895796294718219039537492052174941210816101840789818638978649216196873098236031528370575822127480252795746453963103102961236888106385229287734340348414464036322259838614695524483529814428091784997342491428040055925558264966415806436276431606686778649293071716203232891538880703525403271252003704085547581465779521531387138625513265377938907095466349246168391807178190274373030260728250041981597333710038132391868449214709775135917124799451172791604695361579029354423867233317627715986439677827446258046592473214867418925093126837959034519005995890222806673051318455993667011728136045662863522359451539154721054868943320120437118760472644016390617184271393343148684887167123867610977454550594861287354631765663601220330638506185400249183975325019643329637069977707722584060987297532745190452037915304203131708926490862369397397595040922955216378474899843768787251153313510774298648410706356517415893149266637219856307661261440832048240963621124036024929228919450628895693670261733161225883783809642981780015258625088194421314792001797636760401639661438430270121072561368047890499994178031396129679456649377192160987757471341250050123749237031790809783081178837860677684194730849324712770353876710247580257223682571652330281782018143554186716348475320650813474991194244243345900722235613466850150527125189461478247302087831613363271730033918483713946585325744404483500635431121429101297626129874625945974113364475879076629805541908801042637110961566986693969566422641267320674759356468851538992682888501981063346439324104977251924358160681024523886670328586342797018307010839232741599393934620764316939635763967974377196724325694414736477940719915086737428423303501538077591740138673216079947494833220995713742169847124318807485065697550695093956095149376353500047937700955963145366641581651728131251500884369669982589161466223617746361641374398785825728707179045594576978369848291625128007384989976051357222117779800313032543341330118607811459651093168510767203457980445619798734324389936017212259821336699091085024967303192478846691092983275180782977484478334608622900164160255198070456492790331334663225868120665034560957341748662266359834232908518966445366831621723395584646750634699120344040467094588563430532550625549214653002831662011604471363857783317802733452732383340401475712899587700593533992405464712815200362446112901801092135929424023149436875823370073018422364096938127407094907993569362868911883299445900849008691682754395555104061316685404593674198809293849413245937247447478383184564564070254480058727225364185840511149403703748720049163377832008271696885316444345993369148418243316402098438842008304391828428033105699801108450858154917614620359549144446325720543478868135151472358449418817000308581495798764799495477914463234226221721629916472494448879683549975211840703832290135511427497748624557351120559494769283186781945500639395286946212760852222189219015591914433083129666538302677972695788597495914897719445235856731246806343054190156035865600703435795137311896620608399090155026921933942862573723283206667120750848148235494614403884418119518613986803896289076074198357584218389388122782096146268442241270397503116587108969978150841816302564551913071609374116053754387211622809048297121511472151451501276901803009974334795554678408709522728534848371274893432302087689423742701413123832421557967042935442717166506458960477283726185167495021032673144488178802269904584254387958804884381519518962477451756146791565541471864643564758470664211039840359861327345019496883324029159396404408931832336945982413817593636545170467245615368017298350036104239586230342975224205966843644743746047513201595690858087096731572321297883979459489716098558733728368892389382486726932764934808866066631421459075136502580707203922538308685117247257066490593002999739327849466236602261037031520672528511867230541442870580240151798253880013672719832330348689014506525342954660852770594137888382109249461935971416623750320906355539378467245261960255923829859787072764059133563882462673437232622367892302679621669616062622503042584431924475024841989589367420031217634016244115774370230555296127629540955902663589001570879797817170047951821278908145969138615557813615308672627556508282190251622936866303141648144920445970332633975014489596811456493365531851022133582286238360536593885946712668994486064231112543243836516624143198845812734539843732045446560639071967239246479674338296916165252138059184848589704951828599045756419262827530517341988661380115002819534890203472106720602775798207327717782452832286273142050200766943370324136584739487663599615342771512771760553255932562101953096656370581760522356584279835860177633382586489988344347792115813706556958322562908424160083845907503975781005303366378539843133240955198935679072012367588938200407793308753772190438632331103675208274469060043267721313999998471895698009333493852625174743196660055838259504449961256165052697987686291730395557322158756122076475542046283590390655332237671437635371538867991275597030806113167473386839764104910688173245438217783091455087901499649797468842644100051821293497831371206268039215503249085757378621387059379443599428279360877441026405412026876889004443185980585999511422294178467215038777768209643233088465244281828284890922872631903423005725211018599003908891882811913644051581524851813930646919412687098486441996241148047010797072854815906628294851016929909881147194423218107665497535492036615454295961840235930768155078751565192440615814587727032324461347854099618324732074253008443185632875068401700844779957810431934556716941909852742678551172701182016595104627338359943730943702031229835052897351335708993886514611403719918212884625448033460812832324443171050802108346584712061076183486834602107705354470808150361026858834312397319944555185989729450207527241561381735482430159283390914357857501669553765646271162584177222340744137476559367179740336291878687722056107234756826546583510845503582752245133807369602046053055515223527056780942360520698813333928855586767994385558798463257809930122083026475125677943541285447841799224016693505120059058807695168803683465880755618644622908885858397729275467728162388038191794921501927748669194070088309464514503822232545493712534959619678173996634465072891831204689418201632202639889764965105940210024150056079208500886863213417297748881488420332487836926408379778382334813170405793655031673959667390380532642178540019329175720283558963851286800662382583794586300704715660748355490252733763174839482035855353457522121601726534529790652854976715207742462344714372735311037856824400084692488613374657190471111896461443659522068608425288124078071879653305698341629114250758708477363217786695148938702188639284560159609057849789614063364379418693943641657129270177018277841631073253034978989314649833944913308189865664601445913404010401116839335766775801524709563026301173296035737015787360736708406185723124894773998843314786229312435033088943072178230346673607100136640498923551199648855381010592582829682957585445927764111954719964709554500648086315986670955547272688641417226921016989724068788626825158895551855436847170599258604946007037655982965945986330933712746636396990020296311861323168727032759407096803102298970188816221086634242944696284149456043102422265189777777281036405466417051796423577385270579902688976962642287959996847716388157802740934720722067865362132306397658483412672753506250086861572537013443499651853315473235086247517104117267389533861386783687889949842369306362786944689957208381541194234542373643504460966544973923904095024832492587859812276845519629110365801428896378827959097026021972288512587310491226712691530040287738009761647441476344373903430360271126466468958008868136261412797048178732961096558460768040006944601149108276155155593970138518527628916195051279409455488348440421906769003054428969357316117085289145515006790657011053768691668043549648636056114781349582751080144031561617790158793440520165142750019681506397238780139684243310110448766541973819636165245451448487110490159669116110230872438862408257942658131786766682558251774195030094387055361655955405997877764517816484331843620555059043711832605870956271554422346104459343940246271698979264065972187821173405642840222314939896709372273882003472822188731318073928537024088871792796640463677341391922507035331377016912263678170303319477055441132882532152231958056955755319691789870632909816760884088599141493389055812371296607274506400548375035474687052888050733844713347362765558752527890513327290786333872726706180598711333344348970712344683521440164919481280331914863995252065264094900233375421162650813551697023712005206618688375927548945915350514962074045362198875893502570466254482941536277803216437544172700369755673210090852142673156668348931599061692428620576071340951952919316500856161633347672446795511569539590654769522554290647845096866670264137410727063894006306946482722955686870825171011496067766464234067880690512199474659807594049785026779355669287121728490912278063729252779581757122349216260472221374557039321122122602029828403686896981737015995970340791556752772092302748106579309329072167342794008931478597583054386674484967160215388319654645363766815202585596586660578811775486906875124151803527228517769314066152122990460792544925519288502847490314065509082960238322782329395324816867937416121872187286132591225983260195498300241099204303622704269355808640961017479765932992645103104308839476399150085556196558169990963684499303729200171870616014396559038024508280757261995451905438987923214935359036165849804845376236816948032133109973411045691568775930989676139488027270431211076918661443878203484116529340092098981623252537354215193386926753634656810500038462205133407498127740074830180197284384921100132933547598222961731583476066578255790419335937314413554829440422697610296526357704495309656416316443876482661414478233403596704193934082140951239215014288349589752329595574946314303702308147000079077611074256442238897713889649848674339642542735063441253242126739683845658204090094978594986847513923521834978227747893315834019269007721020601660730722148754409905619036645187702501780779264717167431187777881498645597561492087121756998831456400393096743721924187558282036311683005630556177776404235858235703615904100683391801224531786947055169484789643670320323239367034751005902927324227785087657826348726914376159066081038129048110062489402223490955310864100250541544277519833128904775647895749238850307476909544970278503800250268169589884192210118643284266088712842322368716364412886024364239829848779206480685249505064626973733545209961383503473224374210392086331446811309716068848570936547354101559777275739257049061273112112681425245915038952705145732335257277643287611872727939884470767197433457069705871956584197747633649506173414661827816420543536648970760450841139399902280758175323567206291361615218377705132751078793051554575457465180084117288885607321956310795315657873519629346525191464634885285790987145865990144864849925529554474812908923577278749977640762031885452381501804082479234951847657980177148079806260923655407758941297420125043290471456455631884451647740606818202126445983618148452608633202101916014002299532799248458756263936749944178827602452731813725143202061308854515764972335705234142803204546538659199351131280849904788306119293817991285934871965077559413556509849263886464338494652541044914373718042174506781085920785018457981947232669258720868001109969315510572699524701102644552951784495783396996364985746307767289593607229579047859626700403874268079019976308073498155713647356273296351256056137738284695673128329569326702456117593941496563350296339688676553880216359932712257528154786148857093064791397567835109256521339834117203371819472128165770460133381041036082233948219344426009797024928949115422106476305296930583397085668781735082236425823087992471354902330576613648984175872026723101685615950224387454597613276876776064730552886196555903823051612678393157584684819862588972585395778445684055351758394505429642871227429516947177126461205671446912142288478923814772905268164376208586453821153921787520702992394786950533633211257227816074472306238116800794397996553596654226636206605739149541437784928833256932704131443809837544759973861588674824018285761428310510177437418509566470341575329089122149174256418301286838332262866751479981062081830613335346883624872656971262063421315621663911264445917645392367881263853982562380768645783733868153650769289620397090358868126465894239638726736512653087975111982913542195893909527552790801410224620292851945847986823101368424781473954961953024864017294816055989355718439036935603334627320624232473544594690758771214250203446805728824712965483291200413656872161677812849200042737123115074205973764334801548576884653990538323618242661004155944928693831194251108375339048769410127342625873570002696710567731707028143396337352959279656248970407361243442184925839562478573333866431269277289934821910515070174639692141071919853958290289171942129797498812765823802855909330022326965946368941387732439491994565308883751932360163921413522544966477726190221722914796273716119121601965325987897105578173642598515668219105415182931533922281548904409893337319284810668002232841966539472593131934197479084117777608456914111540657476827667938174961636413085395858313414825122674989127765322900357080591591689736163901839044920521928294557238770395313642398850247108759379843479221407178540656889039758886553988944421922437513904927475130878633639092609315160664562087695442930518722667714198377391338745339557533983082870217721793932624369942749013439637138182851155218397687003022173145142971999371367867398215985141000866468729086382083234795944554320727280063852201658904595098579699328609493041874470031908991905718274762270106568687348690538835632839419128026489260438086548173863201123910912878954649626375224464589644089349557879816964161793084946799785333883148276410698493694716765102346894770601597373834540250654747814083900578540910036405241260337935021537288463287259958383016967688270360713816571705965951513749521093569542111608844616573666363305827988055391635354327189704620925098654461057402911525263863275262554209271564572997664438126152458249087342281113633295623669337960885056331070119029020550519118323763046305409324062116914009133143375289922280230915619460173743731625677512275016713379031783064584761886312025270594795713011052792589408881453667312405110685805192396267812791432143848347671158512264610502139672847349797397365884154161525589945865382175314533834820713683270920968345460189284241020365704536137313720579984900360829224310557248393617371443199260814255116597974227949250817699950570641242350789174350652738628225193172973033479983384221850124669907523340570113240375739149252444821792006357164959260297404095517253563462704298461544588479029340669540330419004657390491583215726686511933287584494439916597573737545322509086176608865078734705616521581124410852279342491791141601070601094151292825746276759195282439540338379086224347712019500106307388815619021831053506969381488620690497477818354650736503224536125685462163392323276742495703086500023654435810996605531036341197542372654242290589586225014112740401970563558376636485819778167096865638686715829359460132100955656794156062994320877844046382771442784277373111952087788559182940438390476736105415298315060158474122606915132143816632023020729031278237933416810597750728115350118791617713595253572087707430939527509925294143397923255384245647652375041778310145861891983040761814488415468571156278760521795686567129632480673768842834967228804319715608622905609098102992298646632506027464673165226537481860107190118716644864908846097486553075634524041566816702378555127909432023384446905194128433233539860570129071027558846935517568736021625874643926226903990679026107833233474294227706198269775617416294762490471031005028229987998381603244959934309644817636836544484921986663062163434315555723665592953950471535095302558658711253957604241968907007415431877184235291378661448907441450219531018662405877306678649055083290431785969997814750679532383947776423754601056544117558785589938534757090711846647475214599923424035295760313644529410186031781149060004779522185990424063377384688265396312891069011097126411160025359978878182735482193698354459946193105827313350549503661473929612694792449100374209243625175158094384271940222556280439978145035166562569687905758996513744893715500673601324992672191552723483214088820879354844608032517583165103033048349019112558365969612508792717754033890515383295516784268684441990713989944433538020993494688384788900026576819297626900272040059601914454416345443331920304130492874304236080336579538723124584201432920430470790129449760933487717752309511431820656078532776575680896079951893401551621799551833158430863782334326752296811348139469527378026030224615452397901704269627343216848238294451158133121615896885055928339422712542991986159133509140435973151407230748266664613906945279996693514665330103051935272387985572972061455642189812233380543077806223149729249978439729588248324154331236520595318363640662127273684801757352632764061087817461722438046108586214748044115659304649856308841219869881052345601081449823754269743420092558916854576904364115184949935779537703094365658793722884650873173634164088453449153988893588300212090598374369720916643844098699879734285551099057983378648096275458890700623558181187835487079806893773588617254201288312549417258714403575357815127275451323922883675117642715577725678848207511762780039999643308374024316505416141230522921567955623851618381687926346035379162805271589933530256679367424662406236264743385107610837954514144822970538708174593126748026627689903276805335278939187658214452080239226323608396575589817222896242378779555430205961745508876946866692112839439503450380385856882605810820481052938978089643676810400266867587514557088874288783590807168265432485895357486623689667565846699276234992304790816749264708877330594217884931839370799752175882958889664228837233908529826996692696971234009546949960415891593778635251366547679001507226115000401942738040496184303804891858580786896622865357402412205313569580820979499643976373961900568990393891575254338446461309536505504675810007836666899320130827527023274470499474652180739175981116460604100142349008337853402964721617089221694372321183266645118640603046791727431430950557245672577692947213805601813841750360369121479898081872147505621010824333187630285673087511274111336233348524680494210985119817622644125023246395645624496416515346236554304311872795199548626380340113065895497416671340025786511266809381783871192577463194681673258950920898734692440791909833487666718259550953575094698137045362071859683762558312687180162897299091516488140384639293310616239694387047874661863346790422931655000700082435403116109487148018415327167301271615354476434416520745435400324462441453626065894449612479677967283503669330109245326752272886065861028743301840168762705307588007981668736108529516819491387674364247117038589660426924202738202697974199454419739924683017106433608120482143877139525441598105494896661501855089929414325084888753834391813705935175600938265861110775498894064523076620581862496253154832922722179395994205029135117485938822938807390495339719435042727839985117742928856810977483991447158635192322076342179649093691983416229858925033717785061828161548658854506948451120744287469396658114950160616929101757137516774991536941714165552205692229387955003381865573490689498314217528365873081235909282612738766527440991618613720446614340660075030687632980142496774566478562312305313034139158455157414512877459424359154952276094259115653384473637903658227179567587654784300675888216095082134978099459584963415023730228387164330658043702629662755711900533574376003110654579537619193206243293373816830220280693561166086907041287046913997196331067440845788033054461859568819514909709129918993864212637860791994002965518294642491502727442778253888192002919304357181018188752247928964002155208407260307242438370521945827416333927455842823482765084362947759358290988448687630952704603731251369102730053191114448730585749425508230225633885734303455030810421639191013851293045146306456309251356845432953313083326850050170592115995232994876581740409889653073186452574352624964299979810142544343205239548885433987192000984004913116951547792720691529422910574462102862664182126845176331698760191223357602574847290586297619537389863966455678629331175640683776913138858266369479312029829095127839694008748857076031951280944953872070499124998132567481741660702283398677851533748496053764835391404068934858936695795540569660044918132567613958873333215949903047615218490181983294479750538364447550037222376922346800935444449370850612112088698203738235915756618355537967622611780248457286496990717162198030616129529532826502325946386194283715402393300287421317223602151157701030046342205517819452584535873107618891387620387280124169838561092160412399259105063289308104435895493642867814893358221146332818508170856219612335184691884112416634072662765476559235592883336072969389581483805268703728685138600854786083601769108317371496894252245346295853221485702368632772478494778798385363611022680334718422700901796874126301725521135786773367036397266863830226572774590064078307791315438338911669314581979859811642905107189341681667746160220600804291492699559753170731799027485631912788450341749428542480617740527502768369520524691439048448836482987942371015023250457938329239126621016187281675790649928271363716380820332687028836205755185146069039432857429264710616218577978778512639886072226872235392353469201436210634593773266360178289743822608987594756620375001435262456719386398200270524473155850071130190062318462144474507981596380859995210650121733616085430798602419037560846266415825213783739702071424647446212145569542347020198356814858061565068537682164701540765334925356856107573892167237637942877294834378562347058706960711096077447297955413028744259443645786108511999730487628918957541574042566170917591293363307294844399489844158438459614707901372376603036506194353268654251617164540798724749906048084233960836523533290159722177982664496298862661169065220192542658368101363996528710553948163489057144144336209476305125482323346165104607535289899303678062601991214934206534118732081293314679479386539222989097038869791973849455446656596141964259069020327773414453529768639031894998880859333625744023451491348978777120872567489948449587531961846190275201167647879115616679604759987616493641314469488323028024485455764395153387835457636962803068854374770692555764129923344941887147923812502065276314260135308379433614126951588948524316400393712654131781535947302621081662861771970593087621726179658402485431489194300748391493788521434853957461635329943596417753796078309053317305127016478373582116831515847846704269094803119515102316587717642384542957320907248881622497507981910536920595779136454581213817395498825937163479868849029865332426524917327482327383665616839546960156560666359371321415746449479736572286008410265428950598308039001853015042193638641409248496367699720752983077327204122593963517900943935767128239460786607062220994871093721812472186522055923337158378230527274227814230125893267290583536524568540830931685303506115313918723768832932753118335336727151745919351026527327229018313958356834790765006479863140416572107858012724427490534638928799189323646397638227938138570925572345188933900207709631764352842631937688374335006689896437251213004213126902411451499029069450572495028157158660402301606254497497784479151200840720842609433380266001026912729388052759213397455714406695141713593546013711023811600987544849916895851488990507448008875821489626035674305326150056476699658492901217488001189306901652780532007689090253798747734387333203661965241928291224552530205560198291978516404335817271899438097322816837776284044351129418900204308689815631656287892700548061309895121813830567764142626821963789619631181165590326478144116341488549901819921026164475253750143172657554542243880208439621318817696862046833773393461730370699449129426658667674299243225025408933772814507788171707471179689650474873395515451178398052086548547427429180427968763354562947743623272672806703781654077564473976775881417743102731749752506855633487152944931487930192645740510542272364384051092030448529975105869284166151558035975969039687298059456675935285014872121995219087431633816819152278089939439183284078791234908286129188762231869924201747964787149989377422312464478256944105514178277798435934409194784016074513880977853205862190012349526710403115569867037710301712139614947740397953638824839163218747823570157892999580160123137735723515269689371561524467149816866355448347533720184076254290245637085400984226544299968762405146688933583457719521240961000735552691149177715347635665338556761069737080822741379449334868075654480641058766798546397568430044759717655598361986602802072416776087641518696454553906012623173845389192435072058832853932832718649195444114126359806989047943189694196196258528269610009309632551628574483520311809649016569924378483215539644099930530937620334238346231407509374500561422702825000177368336115363452611600190312244148396915424427276377992240817276771455899715760492740922785182932119515830899304767002470168176288350090153107467955692199985493353395458977626753655101571135880758440831904083420076133088867998517792758461121169415714537525070458547729250764077219919888780951491086141751116384799782440309461397071260239815642343587967708194455356214632971366762548561098383063707403673691101532035464264457612167291073258993536059198035999865582487285449405397569657673632256172064442397506305700192512869380634230312202013709123240005204847078776240706133142450455104275623110068627696575751739171627608173247650737021762269242738888122030756585027656858234335478650217709461802791783233226011222448809067400964075050886402339516071273342172385270097210692910958830771639169328980330015434677278162750111726309667677468065711220800121111167244604340812622405592235846343788864502465366505282674723957116777667520872168343885400393547551135089945369627529793897009087778757153376997113646593214086506556537774493934874484737984459564792106522594963104765135240899356643307790552122366904001425261155214379686956773325648661753174829886736139369780312486041697078168293268049910383773010407482768189423396530952369534706567315065344529552141832975790231353455229311599036309035727263937330290093176547989624284285562464465746688279378219752586690882404062682080311541263512219357175019313511043285608849221078448464980076610987757406807676364000628297393741566045832426652068966634922727342185441455224366288930795879008146586278364157753664706745480555281741190466847292662299903738183205216367665112656155640576574099093856675488569849332194139286240626984913202482581609022282762688943031967246263726121591396407002807788129843664390938715922035352504365326661931629206429401934357190815602905793718433679601803101306742498033903983843842184297621894680117040083336461326437010173619718034243807235220565797581166720732346906782009823906314710509530655130279769885597768629913553354442504800751188469275560073352065638371048186457835391666402536677873813555649505525320122915668574049918763813123850459134368784596251151403487940663915773568701132537308154557412563592525307078837236528969471708760221915469755006329172659899938500385368882263535016644076671455866827173323888759576357652151432854575969013587777673379915742089416115506605249655536949974073898669177555216341037136620709195559926937964075675707520380849734723902515536884860402706871807854618777939097793258671794785916654585264619527062651367128309448325216417698517709717723002438515825433674905160101891732469422336743023770633424437755242742891230630423463450028268746596202959929506892425455608458643368138391731241985107949457401765233032520530139175060460547506825639520793606400459022115070732209486713049410609778476862901750873101503456944445777262227169228239231930854765375223037572255027742137680056649543062947262530230460310136318205259876383876013452800257431031303759725111988277785554902790110982376165350755692231241865301144724696773828905225338235619543894891759063880461167971608662023701930219475747138636479319731435344269822453186718157804769470908794503773576809720860293310989684539580371758535380677502940969822115427323296668940914273003768702812220262120629913644264523613561861722749468629668715676177008584167940199724668543201871493856405669246101960512504627553210213355280915127896113852930397200667670204025089282504341185823365432447378411677769298254676395991559961951078827314354697359405458709125278109616406599502884010151026502276601002190202434803618467479951271076862409844063348775768214144193454295697987756188005814904656832309942154034441360358403984433611259659322927528219178445562628143571538634884393806015210748716714508466706248673762857623602957059908377998341494481484110008788541933788614019957224874448316632068768963751458303241948502116734637748758018289815585134079716786611321244263507632342510350865080896127248109872397885262931772320368351005998272576292564224891688556705299991988072062792732970541866562889715317828032724997605757225651380588616086754250519563740836996043983582798391239440767114317924399786001499148286410244113446495134428858613712858801041734258614524562159915154378756906475077431912327166894556581010297462162155228531866817077517485112654632785457208922002250626243604149901997874626339298203187279125216324831091324394281683168473162262475239611648721819562913689554553792389905414178993506010237595925693024176843553277843259357678677230137500182441560492775405982224257664460819643644834575192150415976640956355034084583277411053942974311638066592856359840318605692438464426966961933027974755056823489009513693697433268394496788432675604492211965136522967738458193929643206359786495660589096226779762631018657535708359145479223177332651556556975056752412075304430583217514497403353513681803822943831049165358781300689257663419031114398184046360202809909152836331297028494146578822887461679502311472888599509263576449312331034117047164558578640285641287233567145315815309172280944541974192016746390833804644835367399128690934722666547894193735322611370408760167277238198237772225758929973844881762426590559845932927389952901296340547249672421332165526748684144305597494798378883965778466032780677689362958815900891744334345222427568486896700166257211659059513329533927143059712355124868017038915373204570798493809705319251829074670458716840278425930130138269734388098817438483588198661241846270508686446130283835239349105526500724107925561031573102801831745473876793810351422815020217461646755498227756543144545962264760105760495704661275600291280038085877952439251676249705817982454481778977320401012710576851366171631510925557340203072522212603444123012988078132053653579733153294100975737846077978931729064419095886710863518751338805767594333957204488981936815014176161333323474545409823309270314424319189322885485705430973663181886464306543482973690718797765641382013770798277630100721000837952531986289749362976228924358624598812604910083359038109520498673140017354348138774618381045319418249207002707084718127980665945131665924973680017231558771294059246021487444724056243649285361822441720271557065245875202523430661947234592928810007887882512651593826424446428931647702295958507958813920067915189992881878800517345537523437352298224318534149925218278254935782174520703434253005306109927518751503564515773318020647667798967903500752483262087635201191846372665001179304930827801421206412525314566398997016412073380439618484669914604921351459271206943882827603289771855863720472381843464629040177061995854643710449972003413592767998899042350209879358189098574234300973704461574308887243911358774162109062978005477013620990381004300404600521552845891343135063300003035230046233830752985364312497910155147633130327126548710367107697834693816884688305672692981761358698210495071194563591987789487155819054213316553933210774629053537862120614668170041470500294679782728842890004802255016488560879437875625437840641411953205598074224212259137817126840906730481292718840328679566773873670915456478888655170157106089564880885627301463264882236623765428061898743761690058606885066802254137403839683280173450311478233755045604036088932101816379418043974121764689125300577778846797655000790465352966522688968609216097185872666490743435161162960637579104875489368407719969685765772625678021226949740638260901495050477774066170129760055306271416835512254119117874103096005023080801176769953957572160695718613748188745059180797592994432735722764092596863323711631244959951460025861753909005878084174419510032167922634849099230105841905826677633587574465973965132932665113734672820751512342853648980464088353148566789238420689587302290199034618913441989493156932706443425714489494231710024050811743371297848096642839660861071759887200253077785938809538629523875705736968049682855680054611010104534331142166355099148386354984935786322362826133091344740243185717336157246732628231784849203792474934372405799196800326256272528794349890760452929340013909524850064096622500068348591046283661620752698268253285018327906954342995712047523264408758073908994859180901742295080507743915343066855638232652156930157125962258882301361843038012491329900903476726670067228852195234514468498883482742375384171132326968453415144036911193452088238259657383645537405567518143973326545736641878816256688538981879981326901429572217472929510049683186976496963506087559342965020349087604262253553965219470221379489888245037879464653576171725545009853073370960198591230738718346106519566426500318434526267272965569098486383254290778177630881806881877628221618918421262510062769363094860676519584101357501513599856624555643475689254723889609986194520963050217155556491141015434964977305621325306081647377529168749132969692855514455494993375486250839986137597004887375783893281460476512679325417008046092088675692848161508638244295678945577966111799971408101478030003779810581015953056871556415462414351015393812466730674563263446570098601617130810618229355594353948322446708012881328679130241636454722723142635651949574594233099554427035991203578704752295231059892803205077627120935932145045816958492878798558086916877107638676687744750729711842108951266699754192354599905001367007913865367309827360621705384744654925989204034412509285890733839207727647282101682809181973190303396102104634247195335723729400779623946131645373256814201975499395343418305295734632464970229692358364316098545193551792950452254602772019658796444971786216225034922308258726228090293320658386124424430252778403067789715400715092322566131967072224668351403095513260583927313296250182608165367481112387772492800563989690229745282482276122351224126746868484196225840755874995986810084376764996367766546507314665466886577913088402588665736462885509161080753716518006157668284247754141299772162821897685939602024710839493431115831525618687147104834696607422762219524188461359071797786275270822672287736610976429724178808861535690825860185491023625045493639032967267987715903151008819639144812028960451406407236784340542149068051716624476603951846298061231294708710779337856949382510150769850305375294589436188814945363299714869470601396241671576824565857806230127656448817743992740417290584231268862041696230746655517025496550039142375362076249795205186890919124312795999209115179564956784861485612152532595898565757177293622457778505731037852732912744130261109041019609595097523562930901315499983230189419928665700547666325330994707111112321238996940826447951099816861106276164815715400253699004529708777075220453271302431790225518676788713709156875413461978601882534868787626809787370295838260419878782075661337249407122990436061623344436090195085184117715388595685584089054749597417476484246167744437181959507753217408098755046756547860213496619918783061283496316834631730745317423540515758475996765196245524035726258102359313041307317791727925525087336478916328233705066484634391677073388396860852319396750609586647205742607005739059903893232967187451955043518469013033298822451767113094825009447783802413483949290276300538029334591676123662608785191935601440304947690641738807775940821989400978624986344768857782129951703814199021545805683019967153578946143621383640076939992275806655948878239217125961226692668140084544054682143962754086705148629455268945188149204407851885338661794531469333352703831998879681193698634012842973913903918651686648613204538312735536364568031380959625414449220536895768000590648807259659636357854764720494775665635804819030028846478470945369293910763042438243440891104910625985406021329117132921391423556258643177633407614042997214970345634206469162420471949469801197445173964864707332397289381727198478684755295062565432452699536257724304954219306406602664581667448772370717526649387194202325174865656291532972062534350979919958225102182790350369028696852127127197541134588884525070072643996597199497804768842415929818201856881170501190401296940761943853379652667655592678810558188466032387059123246234738805456465358601471671980333451235780748068705451147762070218711241732630067284016225670148414645831128412736570199858311618595829500630107458862569769274219822251924899410390085564626506416075129068089395848938718862964716075634363556202525419822860312123371799832460850133117671365217752815226922658207962303561003389531777731886735273264693235539729445592904584157655879749656609344987699809466473844028082438842798484901126838070944859139757860864508625940617049863971019722795502351391154283066247240118913092332175743406649721846985910266663854476750079666619846596327393845790874967113544863479506982951078347500487454257903689514402325521656518428605562257782212488629728140322171967850312477012749990628587740902858366705796720982541344015248052575360212761131747487737498850861282169844634681257677054202075232326637423083160695451206348203146841151758208738462871916827929606387366644232527347341210234587812023318827862047058705116141440014129628876204866117115879159697196064523269526098144540617927085495227065040815200367675194438815642676479532648543798399937023883713650507907364298864442748688757889450775457770981553897088639353260954255417130440445485999823180152427581973206215701385802075401119652382377805216456291267126721627550926283407855853456332988023556252264158440448536290871107294689930672987042026954359388178022138464602680267058736176051674467700022056237872109856426634928061811254156802755130646453679962286904954799944692678226864637256429277234377864754645473598215649259834040967263416275943967024663788179009815264171458514180269269939942433146222033948261157001723067280220371098380841498753792316444313667501833090072009476287512062575058889165432504030743249263658278579370257319933115368274741761529619608871560881706113056252037327691730050696917086111062070759375351719018901762118001086266135746274878814072416951864617654616676849475024180372477784014419869151677337636389846497886061609099779915535888769251348045020147259176043308997465776695023654918389146557520687279730558343938102272417243227629204371085904823474154690063762154438904141029698677437110049458675831216475790795145350623517553714109398218169275638986082447767703663296925502820880643905475715233909344725623870434180414635255876767022103753392551205411344520726412790450282829973023531126984484392448322033706087033470167417049179468915087572713719558868767728749357048999866908559855684274724021264448472009839808612550610865155164687641430282178254054130325205464197135169768506426300819788556140465830681051176539115231483873548180297664676576148123764367019995029967939483065467067470900753707565129483454924971978142760185386071707058446416082448640209473587578018498703080863655606134583046254760564201312083011113613051312518813648006090429782482451113166970025602871928439593838193784411694054841292989784623194645382349994477842664681800345131957241221206154128330907153341296040071197628892925632196582168147811577300571573010936832475409062391283166868087054984048673519717418173708771898077423967587838206470817831860385860435617249734351769540066733868828831689088535117617281722372334653254438260323639355855985401008831219265585675845892614656569522842202696912948594751704370804280226352072923709953829530578743862823114534054358732371898076998573354180250133263269257524994074530610202528993354154129377301336773934584632161079991131032593166925074741283725451365866085055575382162873507540731869381895103848236131173153357806831867371735017380101491295101438674944045317968485514680396608652933651655786196070080019294974370741150062374802320726582103461473738907479543207539184390264043983954987170362965831014006637418567211856598672249774814845560057028156134525436882508503730401695037076231676228037607020630665244240764522503029552875596428962651831151479241360296659458781161802259811073323438868274824583822674663134735020060207315260261070693830893503145916123254309368649333068177792828210121316001368567654949940638618476506496914651317843190710509643582630284013084586271552805688098156227081489676592786539420025797591210303501613923994368129437446220822642327540203571291335514762240919226356204714939502632089111661478588911401894819240022385103244462005752877942474214277725890706784044271899789138225747534439187722353512434825636154012642912991992812010881159289438876389103912304325119594165159226756930626467583889969874122026565865903248743284417100053500598450243892460588492107716571380850254913763414580447914610747602020045266234505760842472805722158055355302804765492275922412583137902937512554600277213497831816938706335337696840966273666566113405238024751053327301966130877344704633572616281811802189233438683289614272670396546642076300284866385609139391425456578396463491899161894746881750366866949579555443729229349763563082742037774688907779796452118824946133240962175359655798997493312227933063794594109647954961836399570694485599978633237831284145108527223809637012206732379641919234926834007613669876717660294896401586475187519392802672727892747292017608021730695579513772119596375576084644416240733993816249731567358145116380426288314346856462878980399281709145706972617692884507672983775931020092118744145765453133476995476607169088477633543477547355494243828870493995387170640377391407576392201931342968190941423375410830381008731554161026174641066606466480134630309981798830762670886829990581167580964240138433104834295248668096714773669505672501012023019873590324914718508910237203365951487059511925235286737325823019450971264405146317083473469413784613719439704537245544152314626061270975951976139060964475363363086435353102243875047767142213709319156243967049593731906850138784661444543562496521394027363050776308224666576613820677744585137818214211904123318436364842833935761599090803993782616663294139609008017175200633895227690248693550985396176986322406801255398449639799581286741391388065892880315506559296484445796180341409539008728401401012386859437441306241412420835424972337727842462884403155210773077776496947467574924510637241268557524956834681608070896921931903391928764347224921936737573999892782315374973055806603658381537359349039714779489546095883749513479582181429149067007732859605636707049068499694289348182906959885692206917894896412006535009552505927578924249084249049602461643378385667584284629316406065867461354468592323034923486896211779848301289285239941969133525748719664379586932157887943038170530394730816596919990817437415354041560632830792206899119348667587674337152120310742088823856758264380522835285236213568494316930630266629860818178052717730631134958683871389688958382479796932600728363596683598848177524746966525358817235858627609565851939991956309771009401411251620179796105156981161980279615534589907678092013678089676625279557093196976701589703488551899570320760932484718958814504461694686679633954481060836989113248818018119914625922418970854252693230724543749583324482465269988293316366259678593583115267095408316148138817022401639433445758414686733756262928702708350764580483638601045162684925129868855896752307227565601585545069895291094877411701508221449227015310968002816540969304988061539660736268175687801139575145578980739491253584363393318344062604041178421676132695576948900506452368992240013968767867464521745549603883826312103143357336874510678567554822126782310366478844774999864281275674649597993830832836580668292328854481894585722392862062719441602683908242153106097542075398835333229328763332471659306819309847471201994401711075780962226764801508577022261148107656402381128245346673172472716521090143422279386372783806261885303238078015226399438467926416746797394200523609221829381266575549176255198901830627247673355527553033898639863170336755701956582827932439137789945416344595397431297017968910750365660798411778816541505976897008479301182532308014541409612745244873993572718137555953652108731298958747589053055496601239483305892185205355768991137627170535255808467653777266008810296602535778246264577317671771116847161677239619468483960102568178915102439209438632016301292274882991714115662605118480678046530927368579295637658624201813209755416081492039637827969499745708960719094382926464625358755106655197117655274771276811019557921840378611406767278122940126956215001752241320743725380357293978466450969612822807703085349260081447754628966392041653631686156522719929981948716773533900024706023436074664839966936205204961511142847950858754481948767961854916289448744210931544766894034067782496431039781996841742768441210343469282313641558190728301175649774184163177101925444330029483600187612409725847672542512557163805601991833181696276723510614189716244433830466859498226358019563064321484238272056512944619446540516450715530400168217496804282218242972822414671563341196168267426532943658729308942354223123194249663694069293502985885774815178043580843941482564016702557927683286934014335368258175275140299349423130722815794292146250833294074280440806896762083040032429876230749848546370034289330187618381634123624981164257514585448705433958796676846844433314100944516124457678730366623597886430501104253163090744358973135599344783555121069259610185152724852540311568465054125483555744307299406019081348218671791440932433495582004183896361155170594025049120652874821985124680531265515360497379626933142974580665199896139413324319500928447361467267346783263359089370667192372035802522660327761044584563209061198996017945772582968681670342420498717501309839486281278998781558056791664134146442677291464474262691855201780273511336630290212641015845750024531632406156443360200052141221079139854429931966070203794767981053893297325449616771974221034193982975761719193162875413938465285394615599716388359361974012228981179008334328570953466096142240726517357556656115437792651252883228227692970681074833234434446795092552559276066378556141829622486526029271346774136998542411909509068163465996641857334646183892353532331421183013585499653386946504483484633538818526752295544764411943446468116073161633247884489654962610503327704090025419628636142627296112103502590629389837280013914169079086145101440614515701046152224075277166835781681554258101472614448147776610224697486244170488155732988370821823284194967014021378551949713934828624179378165977574225381182621530577616689746001726122581090241943814707510970993783032330616846128415519213050779231803977582481350765789320779353453539717932551978175647529437696269013011633195211267325828110903958296894577614061398225956133401458372289041950529940440096591551417273194557578776904482156226742279460435927849681100675521512648882527417671589152174650173251083662495343753761523972172376579100481449558396723750515752267275029850040740528228547235454008999080903547572560258134666552573953596964881275094993670240554460032419177925799763121188181226387569616833837073393992865355039960982889866775895202005723565513255850439637456506267291028552935613779534013131285770910390622859755215282109714591073025910114676922944517478625283370211963683800874932922181569516336009317127371131565271495500302974367056375409163009170974802618255490914331804925574052800016332920250013027661908892945660558507754066626610288158975460262926493348830733979710089870913242457787224972587235503653726011834997171764256891823830997157621250957273699604466094567286666896893694121182580791217694848163657626418441591581948555068306948851728584310571381853101409505829807238420998630980483920249658578093027758587797629107694826727526169186141213321400530499899687422161298183270262161552633376567406941911843393645991179924324995543367189163872648365629577173919291172552532312161987068216487386347070319539723708490664200643037321868909597659724379496742554954951555626496099416490145643045644365243867081697282508565938425651904950739513489286510032744438063312145211564661663006110680916465963272746313190399116289112261342473026500910992802517982927201341275375040395050582025051047389595321052370671699792944330578677867432961591863292919133919111106002240528228646534159218103418321391978136873073308055641823934162696566101595791358512095923092896612179893854607415020534075566404076961074539585209120974048900135610171537577711958860215668579843042143958237061669732153783355703185501287146353232729883210454680257227672392591701697430423414770864178792420864385304505198099992213625783413005357025806476974969543820744638769824585634545436187091549223884146864474309968861333771235198990797718254032986479657283052568144246173240530967473854216389965050435012628880661362809756787935533667187989800375984077266598814005959064448556103427079353582388228680227555787092574221664946330330259516786585489822986872130100813089853868948273556653989462986641790311638976998325955626715007405994206871832980900395503861556091689606314079236748723026562873846579432494828745769757890095854748966226379818106215364496756839054437724713379606010901866159656459422544564619093675745494959391351135511364055529012392589093837603891607029173815267641634261746439979745714940381127075977206472675350756788536886486306156561485991820616793642961385464337605305169365551154996128219161102194512457492522879921439155839727644032794863444357913392666520054538016231105786556079906668101754687410026674243624183127361803479927498257958877664439031625725866002550742255580249179278269802171239554049918339009726574385405802883759764138716733286197213223328127926391999592896772333829419469818610929843985410910838878569195106371703606373672079801680608425023444223616419848722590592359812810352277390204713304308422700320339045447647201963973257494699764244733643707128937888382833684823164081384763723566105914109415290654926640120691195226849233492451005086539028470693380623560044002018657210292548134900328803568772338919898382751114862398709368126671905959261524401000504878979326398669906582771673855313371169796835197754694145075237198084285668792172672537392826778588865188812209935606909002581070675782120273863837481697758022531960772874315264119441460326425611168340772827939901121402090834666268065455253502875947616231478762719373946761960364397502906056056090141874114951818364814766019908230581283107768594496787441451887918673508487932563657473187780763205302448112254416137566355454891248821420077492671762334310622170191076978919127615820057863368014860907702475713484381242076991446706501618519208694748476215575066998621778445415988215824997167919570697112015707603360777442004924814560255103917718810358701158466254249847336618128285884025873331778130410987710604057569482847254524987151073735054368290208115465589477512290903156108013677411720255043548247624982663174927631594469098298280792528643434212452317199157171903299670314034650665052406506228843516062950547708924720883334532828274711423721426903857348863776946392534062243045411104343956582777543995453292661603616925004283455768817807672791650254623829130338809930457978982733734871141317392923560167612403141900745611014704623459430757387824413186620231909301316983472814319506853760822752093915541320281598446612133163800912925721643401297964966163347242555888581733293951560102652270383374265378055400642157011901953155595150621899275734162539081491884837229395714401209263451715949209392956157068783882543901073928921750562522509080253193434853609272196930195096772872147926393210045792012461214691340788651437299632152217941042661011985744471175085793372223728631359933151616650707328222973961798481026947427324679728155599261000495409117067841800159862385091239802340794699085658059324772294791475476956427615305222791804613244993168818097111299895542217420693592096423228546204575859555987070180866533723250833949099917547992864789134777982390823016406232057321856680435212463424657157911997550481181436877481607750798606694021994325742941828516141828209591973748192562710278409951213887386942223234673466649836332957049877399638485407486893824638159822001997914481387528756609658877367629716982845191968870262949473131538002523649619069497129994194403135553770537256380762988317619466872791622828378153124097057954817189244856715530669415969617564465164509765379268302543027404504945376076716707958138140239950438056263569948041519144882931776446128612951942329547600500393763615883238880668510667235588124315885216180654318195006402304945229391061886848548566986639190698204495164068150722728350762532724948688321384390021576834074512825071514142512869387303138673649870417199875712681612012155772762081027270264490783240458963893004720506758739572896974026550332067844894559724662071659938443746340324841890712804594012588727260293288727929012446722802893734857244211666510463411575360403641529947331340578532389462086856057958161412235438326573590754194919791468009487414905846005091188266674416118980085920160709519091551117935543919022691985068198904237476380551620654463742901995008178210925972244780054694477668451907854660072255488442031479793943818806649588345050364227743755594608041419117113865167314195744029598207290354270014514423752155197309821141758413842065520424952948064518284501953171199570462855146487862741014800368433367013737944490521703315072650974718582565405467785700415989610983819317229989781267429627747581829994535010655979678906717039578526016198004852906720309140703328335380132978827396663012272169940467185361713910290613013956805383822150796362598334965820576708485633126629724944678699820065875414412335696774540010356792801456157812335942091223008358457106472075811063974919915937789651692607156267995007303634207885256736750567390549588333555676897011828359260205967241209177145693499412204471629759042275306123865726866764658836050133278774314032090971275485190660337086275593157299143786949824360366497121315503469208981324097044583263441553476996610519662865516780722757021003824800824877459671554253416478244796001972874299577943314373479579098529375352522560776576329955017803943232643566746191147536804136853203775654014860067223461195048227423977446044562633001304230079565124769640933694467144812297827250610512611186130214691924482281085915325181739950466601473133353239603887011295246678436799258501179340602393328353808607220236301934570161798772732207718661019937090752554266084488963948847564484446909998014414875564239939337882365576680758545539251702392866325825117213792907872657092087783780684598771946140543475521183771046309024407421459647011404975778690370838873801846444390343952025859233615695138752538562379255503620032557771058078814397402970728686757608536272557979373626025141053182692608763580646583796329680366715148889365368420535325792324486410391118024756736632691106665196983420700811984096864491661264352666754264909151616550624551046778408255129667850432572551871086318574654085153779334128826075414569586118380770022442240689683621817369249568712098079840837929463008119915122927313311936051687077839783270049268963518313886495968706202374376589461019688804806585023519938152559759221190485684371240155488791526943341732621491539765899195098529406746855638456633738924343737691917324819346529399693778736100427292903954088021843810162604431606800077019507243817662248543891306483585243352710718464973703484934588486959465249953725067492867332330321556056505308678538029442529249190646020696700292689897400718315465766572814786575131804486402193818142892601707896365890831680783171077877208680344661562867763987706179953549167586443214096824227791843549268107502743854580163253932216238712401492743620370095219841175385482072063839253186074675428506262819442722310436893402824762711825920934237469558124361838549816665224614279913484212955490336153827194039207717882782473730969615645187095814530053647530356341783132805461983635023909843568141722566870244317878073777452049951486403982022548243484079076520510020087746868370244082622628773029933007892731933078544827611387854412392143615757478828980158967681335314263377736940950515904145771118828978477269857989197990195350168966202388231295893789024565189221787410035874871087079817622042828669273571159477937418806316956696100679128522510457807133116936601636671904654229776837704638495676258291754718769347898060250794306622957464158651422503898130871207961834125493596734082131060801312112253657448733311102513783415451809210490343783233958744637793285910756365938782989067812287876529435703905721230432708111345836332384046952789736203819754066650135618265129373078764094633359195336719159451522054706071675085851454830148426662089146213007465044995389502569623790879439386454777227212225370597884825517191175812997985638587995097300332907596988728489272973340086315388265325022378036577045920050590087131889103284782619463049553749601640668130385846054577991412715623984125080561111934786045893569804120167755680890725188772249697246262876417743841109632618031324650439847090618487523539184664189629310489896937669506933436388341536358577232261897814970942869353733738288590397249619841018523830736256266163324982866690063223408684661788521191865745660745970030195618852336550066669102247426526104921061515197238584249271363282221710012724882955680978141818689256585194870578177867339910089435144508833582068930973801825616912954072484318415324303483939565570218988370394585995989424812678228321774026067860271134900933361131234449644113556242423459562882653596095388298885582877386532743944520771058691240613902046763709869626283494814601725554323116171379316628313811055677285037781358330341195452652090992858158869130816967000670873064253170831348526585800923543840305883545460257178547366663537996960023674141525917848646739638907352121913557413059215709303505584858322576892895482480947793282274462740947416820338681013884223649826761732544453454015936506309075534165200728477252282501950322744158601828664741166357738709834487518183874174036550380829413550547498195732998169560808791158660004075359485487944691449346314733310070311740008045799197606239873552877331296852593969266701676234360690538500802234287098040015463410651360773478182564264422065970415337617132605658605138841491668084453743295574905620655623015892582055929664543188630614358700399177723221151159811326141024963315426192127217666595819102791310773252549368931304397222378431773735494433920554949001536454526048883359444605361307991668678850965738544176015786294062798116528380443404449086007776352286818443680172671754481432088578851527050004359583326040821132652584643136617010216954610438617593455675657675358666866166542733112383020577740122901450964017108790311306053033630473153362284639836098316908707715707665410566564493506017166063937470538387925670557910895502635808952944456258014116927740793677892199865210677709325050791013944536872717824178106016953053157182720708995882361992207256823825851763551238563012527875633000516441364073302764144973065055908911871633181697872593753279153000791885123370524078851392550588559065677590786391629581078633615047840371109771938824469928501439428081045209663632751644652113050570261881968192172545511361873574433529559366577702997926208477079442891157059300320839721429857822114892025520689776385828190577924586453409632963093381304623684541968777261689703492840743840232384655233522012057686775950484396514917893693014497698003178992548995013361239412660962408660812059514584073760128259062029673915121449206610752168684469653097492792197259971797155510334252788502473814663896897947088461325754138967923604850154648247292687182621698787806216700600728513416168615530242098904588037088195555203963452307201604570095540365409015125368158932877040962770496811300647640749436069711256363927343740953774068829666696786669569621112776242735118983221684633317810233587934201910995340661707071601606199946169186861519651309326148509278627952305930398891445653877757849049730736790206695986431826163802004582879500099233931035697706535652767730835889378095106089628818230545571109917054287757070850320065130201250296755461549232824639875852061401762766861801647078574552223348817939884725516299352360579704684989835190984099378034463215872769436329519491682475662405126328273277407780513163516259866678789349825521977637442895665908512981615360234286413449774599700349699548013372569530830055185884256950216905700060604027193504721869365812271702742270117026751533894294076310076833399978483522874229362204708361962017165110811614515102851647347730846875037556979072052736786939133809864966766792834599190492835518869117629785918373704208315450733257375612269157828226553074611486116639896535740285641116362273408317914897206466434105256386314370838061585257657219672011517907725223316499020686016028323997045878277890750930705180174976704011724734940283699318942271204004798141975789878985426236406440961198804386322851858448092829603380247128543871924493231408485433240493390168041487498219927870122668658482115917321109709689673650626918553295726754449041456198237303478035716607221989069792843944332291430972515209844091152351898934782369970295325022094547708416389798420589622885388274361832010581214746746988626331501879153651572507975974259770976731703317171371701259306248198842028507524487654201923436968943877226190871945768089870372042949467134536137572188812564980298446101542903148627221022577070895592864469408453241027962318825986268451607441381340299920135518681618741075650348664707434047170915634450261686597242916881943157682357857330214405549028163955575912666889083393755147438048668792840979216339769293799153977898839022460344970349723831344276113555501536017707629611582690463025187958546627248995811751376961666219218705418724066833384048909436153862086036789288145166666762385125789332484554017894854616484673780456016501933972377849843274966046083802084360762693159890971628848030556547455611754376627078468459968226325721487322820519019653571961965272252316455234359803782178875993213301848243258129332432296126732478043545593481711389389194736443182862957444935520786158361090393191072420808744914152725176358759644068747851598153896444415916485601308179195944439495709528552736799875795554453217660781553607162567320685879840022835585635065160401923299823861270397711710501062598160438281102705506644570825922846355572884503071572813847424182976048305071340361824044767667207428817571113784759386926561872901922102548861455376084911638102282073571836542742933090218946740759413745461804369050945927920442249151772029945594163053026226002163763792174596547236540384681502586590270147729277982149221785051700040364538923624199327550113216513252552482326748507727693262817283800855998582556706699458414157958793583894717305756099228927578208568580997025659493262723461183561712789555236470665984027981383694651786838829319201363096499218371103708031296353712313626903791115550003279040134993942232736781540373392023886391865806238918218045072563094347517281620420232509010564656109775792201030996200762906215160812832384354298152933892099676204724983488635812500410928950719148344040562153596244225648693834795265167582028700734519616604323123537354365417592820564262214386623527053186457366833108428996164178761325961276959236814417977730607378763565055911461127164529687065114201317106711271605560273893598968565651422974150268313004553966174014997934868671075767579179415884549778506963349000375194759928155414712297851034541719785003515826998293430389093046369669038436170883905224947634590905346001916226826646041494055793784390432363949591807158827913133345485727150547137229936652105034383113667307287321739287624904671409781378947560130587391708164166798887823224870575030312680608935986633588636703986085156232829815301597185075720416092200324892947367515865413688729776610434604101216166780640682223362537012987578764998001673599927012609257942762888591824078122630454619607809872700446938158794001467479253850584514815693269152156035877916853237855964308898192007644953861065376239599582565681046963535552648296656782840749815062525735968612987092105766234209898404411468913904494110249633554877531868687037168572330219231861217113906146564226489825776294114136068362621808560450951151138412357659957073863348192264466178878288812181962228271718794746722510547969494643320610384711147216939007690194606474390467072178637050094921261328737055266785380729605814169613256159641962833533883224698100884313716488889140001498075110735048904027402250182220660384726521124349027450204464314272572712685784964129760999980410324221522610114145194681276289619026080775677699931370766154877707709091965535584678651619407142645648094745993559765143532642325888303388407263126607011716827315084401184936225526886800907369202697650331834997656024224774377528746726842364147624160221396401718223727062705856437045774721818764214266623187826881329490818319106241434386367744049831891360559345803661767986140768417148655186592243550888289513067854145882603103438792075840388773707883224156026706352117214216745743517973850481809944415613226978528501065262686163399393584447612126828000611638110048800864045103622218158447694336399263529085907002664582142459680431078444644733141309877118085637378473200019361262673169029879668805596145330788479068077909591470484352172321127028475566655045963092062509333166582414720818197114771391358455066060697218884899430651236636634140869285308088095944173298481996591275925950880430602549664360087885537049547422039263228939199269908318397421598447102713468378694062763976726155484630698849857591483395790839661792410515927258234744730316729123348313183868854739141689676202413370435521504957859444701559381011035984001565513588902183885853740331022892001281400111328452282813155549690731754717981694990633684945001176149759020429461787237691743560926305572420788202671606775067106954631149466043274438776883142995029804872977667807693961860843866197247952992113087319182337723257903804245376903634205352426823561799744213027230663221067236320605866284116349229046259871337967860118960452330088472312941829873483321259312854394420154854344473378457784916811380550657541729870405867023059312044727389472944393575888540531138879426307671909492102362939391174175327297455159392322928310341876447527291050732570767364508665209213627158735134626506532499640761000769604324150017576375347056357338162432933954108803623549355446467001912639765122574467365249017247463385625198278983790860969862586920944216732821725685312719891203831254754013765681764738070790799517463137148246434090519188255292244107060313435298273730379499988404885983626997928303334236949740259925591291529812187226696189632054968461113546944966008926950296995056260600600553688192259481981016094905916414380896156480461660884393127453045737751081246203941019347254965551819149506942253122753343489660492514882234235200091406000770859064754889055481481094363748137925714655941695121475226318335789543856924952548471239314885954025946020915898103555744117609954145217548284453891703363285527065363397959983259251442035975346163643244214351339463201978253332607585177190655976568283099393440173744496050884757924320942627865145930674241001743341596757584671181958815831214605584794136663353551730252990571380171942666144496610999694744375689774361745627698334975479510045817172314918177601039160585031287389934024028914829572969621276384851945305003211926469344960738868525949179392443477735708445197613745932480208043975807078596155236359209155547563917864347613559086054284379307623416773997855094125320249422207489483176250907116473302397961722685895962173781484053648690652810477546662225490432140374376007466842886009069739084380749359299872773676249029550687485300777990821150931789574983375440990894379356764341083764609281960001765977930108535843105844033210115448448311323816145117958950400302793830114432304386554269175575682705345143107812301779817022011365305424346314847531967037163610157396093202425583973916921369780640704220917685171749415177554231828247876278700614560876334537447845088290017586021673408130916957055470981963592568785986448795049374724980446400172501782629221348655262847455911216317167505955566343891078858836417300732184329096354123963287801463866870198047249594264692099017271578665250553630262886189268920514451737410711427821119537891593441273651976203344899713040867198225859544547754769395068432886109809273988694650062715964598280962710611009950335037525548416943311516572108794152483212110546687995229537829461463398386770090745384047517447100834610655812073600524008006773464114016944336783985143510456064202200841809020739624114148184932036759555402581190710450064860846840617161261570579380649041211172580808741693033931838060435536431699117866635124768114117103712813327763112860291121928671581474012201661885322364229687397247496827489840385627143137656039724288219854536747075613864789724040036764702719676167996039631427755928075394707438318740947765154555519526078840116324223792784170066347128675980148869737691895744317257498231507231923192043843859698234732425930018437917971277970685763130343817412021385096155703491885697993122758642468697457832953706593266686171373148637592242181142906496502712518044821081432117499054888882684799086648249864061080996837745857465791327129840457720073894054008219087383667440314101662852738107019534306437847832410014754813569650642965287892549671903673906496965275790117187304309912444116025022308262760009298753162042540562118680699192490577407185981932839570131318934977060835222270173965760996312640763305598511853955167929981399984900802708687998284100818644096166263075585841673446475652667364384010406050011247681547568245614438798011117821457703851840111864935710970915301141724554651023043070556064117919237727794057487063180269815913204270698880591727736624047546493204798591575666351508156915654521691501191247928322688506244335774321477861161179244491344567917724642291192737150619736856057970844978731161602690463405762546239849191490414625859185325100948572224988557861866663188973752296430265160427473226699948768104591258583129225055698806930099235053794501444097565131894543390345028913283181498791834295450541103456248312752479946880042865184265896514770117878666862095042468606977345492264373636942725469650093057633927688719645800479958095828488592651951132159462666260190415103761094505605982471842625754669982139581808342714408575190654017991809673303925269963861198847155772617659319583233048918478905546921604657200753593304595626703710895885644685715447271181213472605293175801618558172153258732326765918910809668352056527805827614087813259390769891550424277252649502830772695186483378421938409996243578795684094613183441789682415266498975717506389257443438825679088092095038379793934156213569760028061861262565519441641173177112368027753581460764662208791277457545205468190371058365903824277268903186552463348718383093417885989035419256110871770181600650400032454813499360108588977115144300990160758774295015674140347501310448191711524524880736162933015741806913909611565711014534157237882055988351010443091399223129208134466331349848449738894782084752677052767132023836942128551287243967402844983777751081804308101135078732659360451215210367396799644900270620487478405768813110386936119049663623122519102729618896338671454824176234697801522635556573578921955122638060104135576922565802412221854417101543142395980258330049584507822803823119083220480232235859898353304786123138357997432703643517485230860459202381410353363452893870499942553595108687370522122218466518304818915610172330323740184924445952427247592024983904818455416755320475082747057770368401293390448062528852002424785845868534396388714539402399107102107321714224774939424383349972443663947306923664590726013127186956740379606177216392961742398494485384662888730241805590130747150801958580417000218973083650152484859156064779043538968911132669560034555634949925697456652511276066697897049232795739589189985988777264031436725269846080000314028430971918387575178843020097197640428548305202592775227234513437580516247088229369919841280302046259989354349693436551812425411046090122525783601137001711764385066981842018760900678970487002894130095289366185098067993670803007441098535486687407275144295082808972757272730283596032742792117860378621161186794669128666546693117193798185220024454923060783961049953679202552925807835727178004446488450108018618402861537152048818731468305888900729089047693929213492419338179559383167734608260269768157014768114661428990765493541906941493768962447435522219551380724293663575134351782223483154718152036648925818735970537201515742085829234769247580463665021594942972057586416586688874807141389712848386166141766025847153122063066413525544231110937239107720689219342388864680039372321277658393669255627834276558837101546747784307648421720382874210691271915387824116673069147647741166686953608309086920929668685234374400322792805498861501010438674887271161343393194850166751744709192553386194956742408324768624316133600501957372120357296580887772034024548469406967728732210710306683742660829088076557237482729242157689054867584713783712977922008742606459795360280942449717945384149967254178656128339357562741801254797343553971609066557851239649635964578144712240881548024040613865619604278121708948482625468508211015053578367249991068559257877076195650786071306224787020242434430650353257138908187851268259681308913177466044584838113281334712321239289512443432046739512439137725417762580071437658482295127838429727822037125345919149091857232284002160924613589419580723996262820318491046703825247041102924697189596771802786433118879398796852107176979635233608698242759001966695433851552891460428795171066790104027808547660478248967443924005693421137489261255781974014839766891408510246879584025619393681901573804401661422023768461573103387815490548669680804586912510775331516073156495162322284267900740992857041016604424879545863612093116597421737066150577564652786712268459682264961375854972429783592107264656273403592724602649900644284211609666088114507272019765781374166477816970334004713800827575894699498702633278633100188476116239992359361872288286511188019332339319230558731626316435999318540422563227838507894156103190637686357033719848043593039881843637965245316523661509128424946527187589198276610066336554798606968926513104449940127829211844021652451168426724240996867218603644214056438003131623463225390409811123363414928035699661595776355106494715662587284034053151563238139094731940833272234948392830102195733116507707498516230039219641228508832785269820350255358611107484962617035322344525562059365712024453007948465568780918917733022908612390719231144852270509015109314582584581764216657362066913160664426436152122743315031751417746352868425724631025726317594310957104215531271146960779083799715918279520142886510964586230500326278281333075158370284710842538248869235005694323730491121197468996510224040663453426377593397230159432478825583078799048501382735707384449652858668474604907650175914292404666649831291790040365572321572022284390251604666848745305902822868635056642751451097626131405441356563910117291653847424033078977696369832643137185743697902568316969481387491976295701544256696039647703213579121672815900842604848191693918344709315640214873636138758422522755986422054890748255831039998677183225463350830065636281625134964221278014312363163286969621134980007781647422039628505734163584342829858307193046103456942789535793467783919677079692616380096919769992620341326255724938443048201067438825194306190821620127129431023011245477305968951052079026733867949429724879615396920898404795639434069007260123712906381827464192790482389207527881020913954486164219815664269832467420449540145159142353003919890328829919484593147455817510974649576959535757513525190688290838274808604325734076665442413715178966868496207581441299748513120790703777146215163017868436351617556276276974910789786286240400818087352500172705068981109422889069015677634935079321502559210681137004628293909152681203708911576640819041323473262237471176449014144759764516440604334679887120334863431060989630039014493921357208698721510853116410575282839131228906925772980924101293720259501978816694594958327024321858740756206220549292583649451363197987702087849658175467766361040222843008627983868004627793553957007195110382201529350332482786142768723977050003045319750532003765072143097719764671497395698190820468654344028858548215125249105931209163070281341241630489381679891042000866725973700882246076836723684877911308116158872117366142004112695020914969530991329608739355440533568058968287862851409963980003307894150736645487277142677732691663674657781510214608267229737325432119669285699237890812065357595893487630009912627235842415846142188133612692658604793686659681163655408861928284551234688116259661179982495058894413139959328030394730938711976765548573104746088870820355531410505862369505204873335842723262836425183407903262293790710652289281362343291015819253280175267549140397277781488774010132697137611744649910404958129213426693783110136677004939944356888992833732284357385920545811072234644884055017336711227778824940976031699421902972609839273852606088146676940381696123777033060189091279015888405528657630110776167922663719095417407492454282558090803691517386958779201041961265486694978100163970939700555424712511670577224767860245278918980255442294020807467920717909693347031571555169397455451427991712360888055942272921831381425103587975384197573156668620798160399250268144543924659808440083671150942179322883645196084736940383531085162601496800169164357720831196445405967309068324588229654223569800396234432893299777816884826116972079671038469661357953552504815578277668824359060164983536759143673019268289455581271631503722051106564739130026375467409185900224451056147547641728113165512752310438861455340180471682317385042867774832334777004862279438522029201839728683733626148845233479609328074851419683509346273909405711110287888048104329824562083419986707183240012992138722373734854763243939206711373366372804258854661157713275651924469354022359885168197553946835002037046419787899386461268852819700865713340837765505867800654413278302528505971070916478372034151792629648122804702235402070388366372463972488595579990450251799541923491289399929047696421006077925956516590591748580231824307534413274144817917932628064339838215701379443501802416127659632993753623103085138015299393343953024839522731571339965558650208933962953569942353181065495922874320200829681096867695899353630769632104490418381165128892255414313052009789945997150262097181823339902047938477059172980683978166657767306300226695046890727477732189120253343302540291062035939424084701653700819489367446212433426065387399735884849500438160798401013029096172639873477992728441966073550528814250667439762833094095495434203558564737613697945741742745286802434791753173980053139195298543567219264846127793771153242174900131877385774647576383086177062691759336653581454023014509075874727833879660594411279172528552834620046331580560584911880451748685084099430185219071571761882608571898818797763475203333847896429034598551942072482503778313774603986276150588683280908649925753736747887479619976204572098311774677472246308404136406065883964362479275065941572774762727282496480152715907471163953334601138460637987639031749683719993981344468471080920779929246058780976929641964342023454505286807402768901354900211824101832934073073016174652487218976624015436780477219366936593275263062583772017869874630640785899865266271591460209430308448198512954868619110229371853251778033620132633459255437713455328853385570487278531848368793971600592054899229102098113156332927557169758975351810467414142899430983431867185174290161768812715355765549645501362999182020074724096759877343383355790004964078806759481438143128336977138754061068263093020261755833566889465768347731921242715008609536052439076669169369275916556006774878225628093848840275750757522540645326736540382678896656659702180534161427073114163509312462116149069190504654402101909246254436971919400058900347992702454509445831432869844324385806126367535387955199925933848535487049377188588042788114546929331116564688920705838714556775674375217539831012105345378681726054619789271679534335188869060595723386298385188426942749216518678792091812108232553033330640139065820807256995792429245977594891536281584910838814932645136616967234584991142166402085903589836778888763957686440311889563949478344746871100456670642764371902632908631948844570119219556829926960534313288534403128673604837329436176893665920400134302662217589583799113633176571607734497468412554016554711132518193828872133743857898022450402981301861145392230636123097475823025364648751536418384288856437087177156462282241758032430118082554754937775838668009324815787342012365678477023372129019693152389671660288856267013368081741182900586935963560801583264783365287981644511720172783569569850169594955732710484549509809272676938242344887884794891965663582534810773228000135120709281128329699088794604472448539495323311255431348915506002972437333611011638521682282645244248866465724564134971575659009827035219839587996469451912824013854272677064862802172779182093899093420906567539704729932212393827465946106366312402222740021070311503465751313140035859389910068046092578151504466924607323259220005939870961753043582521385620884207117638152956417542058086983424540865790164247445239867009231000589275723633821711835356971963152946209786721775028388760209234730471466786687842979319932165417169459330527843633402621679683364550404224136834479966859389690053386057614581749772090652751522410663879002875103708889495895677401744118892660745949751798408364637934031501798314606350690330150746373320778038443587510224155054542571395194426211630106723540201315974525070102644571601445922029902387075282943773598249991922930576984168285479202671251100401363438329022612033298804246878093743618953222152332530250347605350395265487193406876191300755871420197161352500576317296279481076293342221171495919252315894086882360147544187160707710849890278556281249698803030462401272273892448368268419900066377408887006829786786953893862228559125784731929169468807494446095987738644254348492612215021188039610042960568926114378981723912259385726816667130086665357612480935204394291259120814972336365288470973891484330723721480396648060623115810105580973255597548133807854551586742060839642683396917890814540907756899577808015186301216736182400321027779920464591812255343956447274949759139202610124745289510664122947056250225213096914775551592138676432425836208754992277824354005385173531430106962073259047858318906088572311909913122342417267999182611930419955099781199484589765162666629313547799665092618966620045888102721683643668148933438323368180293825899002163101115147376364958625835470294275899341941189366817387180607374075375149016578828839470790374063284009875097621058844273927466016240079393654531737593165805556317934612856169124724899418918569475343887984595152938424016710445603122749224035694270448088046268495475490386402309684692017503416517369142557061518537316786856671841677219058905261172474700763203596867827235604298218690456103510401591551683932899246177998577349351397687391072094162089944092726830006632539885770670255352896102986157472664792633725274459242232561954617726767938416554857561736002446990951924762539841417862753091055403024595701871945363083293813482371566593395869777947369076226031611380509373076990564374859869303293443250853729025677295589453618322949503929626593552508130401841985662540432049813109069207282985284645410820572184799980008001342997204567846906327404493874711408948542493047655821329063386001743953546969810223856913395282304848250487219833144017504861709259096274264659141249152561109785366247168663924831072707060234161378889834236056043345426800054810719956213744907393693592651187884105716229285837823704506843327718974429880516739165702809978785915357874484887780751148424178998264489039111588661078540164786392659728604182447690860517973483623580683084366628917283889950247922107769692157601536825725267712945314576812640125430080992157505988956312716700445539055691804560187774722660237878251837076885364201901639275921478066074276985888229391320127395674234999386442396554627764313575574066292330930819133604714472551940499604234164828035071863351259142059890621491799100293616270737422111982553596947458003930596114473410635793000516406281518855630320865309242184521022456054667089803792398250392819729519359199348677927353052014003756052579355393292484462709683321709360916879828390443995862047286404113624088600222242289296329693287977552958111254526459327570624714148603853014388841646286123906246976761465777005328248574707124683769394182407415645965950264127190613974743282639873165512124065361334624040201921266264329366756518336907546924662382386106200087414722892656156428478904503434186592427932468542254285017891276057890075595849307484398516524475663022910869752323454040777026843919265734514565943517003533093265173835804080182720123115117324577461708889309886722905817689745130394047792438270795880373915196676242216824759818371037057944390496217204283736576230179574939699333326716752138007717148279847618675441333168058034765023565148498862682488011075035059757595457928675255288581715904582578271922836555061599293671366667128105610822030867877472961057868108597025384246350320785889322358321936562370584038004293826353375752379256172726849861892774751756174925189933274142596338154741384824989539093625275017033512688761673091732020829132485102545233464408996529752552921090807633762335291242602000460311515576550667629296722449324500633095635495496140922798240492088303363117802831757771356748954009592731354666394219257134089991649418414360918941444512786602007723572393997759868631165539698780000811503739149630842083726654744682933042739543648021361057603390616735711376494046354394921281529302444459318069683915463594655130560569597932089972109248138938721224660249744486629837716591090822990560354922170739587378629156879570768011787191379775496968524888144436852809075652048243048083847285710118463204711366574020165815443528131145644978851246097051633675400944843042505125570929874371666026466457413293925689408909302064358854541150868721650749124339010170019172889188388611120509604863654058168911596156355953977940218696856235426814125769534243806904125577471540499475524969266261742613249962293099617157594214073194025633534451293213530101878357848722346883006494307128693241373071058687987043824911664958680862892913246147457088256730321437979196695476302329893088631293079568253427290996340737155490720628810327871758010059516734136083574356646246141248964338788186277213149000490170206644533596387571234289127066993012383480839145435620565768375080749614555187000497135948001901884204435462358131791664759009510489070614032002283440032875698357089347873469718012085582206338505875756057369655501251133684523733800622817062729764936066845876310121728950157576557694193735557408262748023975597092407257314841926078565215254170966857586131387003759739608859557895757242314395207556335968425731482876487668028167111863102484405904304969600067044232336032605283048951995911579019055538704882040606675775324797503011088275158380287383871929440511855729444971277356271880362369744588982700121420581907347542508007321748082029824669922714925730544931528504639421996308722843231416515036086087746413774251287545170477701794362436962926033601272665294926781599951631462909818111962259568957091327977344851124735094147411928873289242856773684369507854131794535329922806338401784023007735155248408515149016757981752468715722059341201360457466920140511168382852778136755514854232542543680052283475632827154930633471667381322287662094733589452299810263878752037752819186663321815647947114540194726384560454113184222729236319986675272577281417503409064259503203598608772099481422611436080731217480057530281632688596790166906405565383414434812446230306088155095143597342980945626774151251839989096850323236725283782895380487942349975536696086605168345405128262826225858954480136747530195950759835214920395543722376654504170697487219867039232570619214081337859928496525232311768803512961131746976520339909295772972198515166240163547464566549256021857473242007110889663908646372069953991121900872959398711105042447732355521579778742721740510665106116044072513309165694478215658037815496246349692946641024245326031674917171088015118897150638482926883279227710873111014788809556043162895027338226455915518746484886798035051699550742720536241536894737069767462779066952512362040104746681159183189254583184149068047173105968787153606505877576394707133857679877538388357426621581106623859574722702642253935498083861279512794281624149214436278863390605351769128652961402294833709119979731492077733366191342567801707292235906232154510297474145275062684052069228025320365179524650191307627411793385604794846140342574377647053838903487730528727615053829356902667881172134492544169627976434974845438341373269111739916559480038002526268164301251125536320275509712772924633172720550716637439309969149640748983470234959606247463371489608237509210625299820109688382113344186563076407999478365131134884750972418325542831075020908702247863417770403691828039721475087458620406919576518347194671927127552526250978307992495607050390345437624151995699800700765777617136431167630680464900690839374005083785613883888811469466596611425342653840144685142427686130381580686707718209038848155001776165429660456574863617723628943322183353648572962871699016143671462763705183503727039583344415429770290471596833267810660336907157632426739046248402476102116366715457523055981964271298068981615616203570170511326350016932500691389662927221750861076701731684776244587790407831374030927078636473279029380417115127958583943178872274226552332481384247687899264160655570621406855344005639833926693333866034618855252353989791348581904640859275714128393502177664186082809817861342970543172150558784838734037745498945179277971957841606957234262918011022508533006334356324798510762444123963588205818657838490576786253172291013264841220862565489663820392296516091828954326782309215424367102892485759073373369662253438231729874206069546052193303950428691852416820993480392660503750206176418438533235039224706393712239005018058776166143381043743278502678681367043773104005649906058536790717300539963709314633442956019877531783615342444699285662122657835864405026295953756348503266979633825780671435243452943614982067735843182946621659010783336581054226900444144023344183485042095877966205956088823279070005286750645272981373220471728440795276459025129701409770616111114051269213280861007700135900156203185865513502243373091024471981479938348551613497218549614609594649417643113410242067820559558007014838980029759553139916651951980802427662819848506685271003819499560055529032238476224561721635709314174775632086127500756864309334393745439006163920021694757378210201930975316185822932165488330538404336129499514173400094348110663778273353541048286674065401464999370643333648411089726049206366468954654866741548967572555463756493636416276035350076234471167225158491736704930389203729973891982716306061519805484397961339374103366919968572431021728555035301564475058999226565047277046937901459630155727017492204397974936418085503127374913979012316597405212472234731766116072876279745074997102369394119309991763556233653405701160610857805069273674823539723867915123809232167764583537117359828340006344453384542935777628319469430496948766480999487689834591490446163687818948686855379665023697933013361527792361271142300352110951847436800673280302040844685175162307697262045528168368255558081702461709139397503086575058245018406006957869828508400263150997782221227225364652640435055962430716142261803466100163122332405322730942797289427059676152774831528563605414433438394358150919438965814899565017958202796145154592613912383692676032513003871772587761918811136533606010007648933179266152318597319993655337254787552773137963871256007331781917691770984921509896114801655891636741928945364183079869198500076472702929569326588366728279057541631884339544183381812347080102837139884824366730834677393792678631114609526006893657199630536725141303266355807454663713274970559511866530483413844742935158279972964418244478944585478908931602338594516005445437951725539767745970055915225633033247524663702573096410399958062516950459237068939787797679797023224436606407253688152776039630117870452996142636883776710918897525755996639373437175081454340330553081882798181411462689996418732859054622003759146689963936662805930204045796740326719440150117807834359427817399734385551578852981406463277840452215893776369218948908143986922391470036514423493985420589084548784138740150721405957789193926306445832057795196563207428490672318545485281885709876807681450775314490592562790450843132717890733159163297242936321736529571011616453987090226444032176231125414676734983866408866764169247112983845198672117641741450144131412531893237218149062771974278153443194669679061725683001741068747486744904428141271207215737508986351333437454136503927959484617522695279023781969965869818373288683367235684215542865291617363917700019146018320958690262048754861616672463576824950013068785611062621840593720271193557982820792422926088226088104725352285989734869668019213382468310383137502672826406298117981171119862516685635892018000147863358346736248318955021585778536073656205114131624611772994314886962619021180295941924194581563239688680326948577803636978525554252298994115356773451042654514335666907856360352435205424000912804544254973255693021405434868746179894900859747458513642822141404733772439231726013202730335609173405309898210260006381266593647463528246290993155799584163340463625204645951714170214593154046055655499502087842722141025184171050594413653947230706175249045342750143737343664134326423825911785538094308402536189884613658470041981262779303993102960200492811347361538509955329834150480010113750952166400245178867234023907029120256518603254186872904370766588387761182085645172722153544781339098739817603483071050115309104711823341619924801046904276124603511705546458598160394048330307772728654593797503737187074632322035000111902779918083594161731176032280903712838605569126589192450410489433722043921022847677059229135494421773422349887638437582535850640555848043025491202860669663064014340708343395173316101175239432965937268803274383353398407921891542092310363297411017019113185905764359490597742242841671649790632988965381355471806340703311791613776875698606942214562364456599537982898849865449553715872888262134880305242428605381226882932487091267449759562147731509391191639226423729054221593732876323475593956463990794397948485570737511012936026289555117155012756549834384852400571334214816217881442000709484384991904579653611520873164247288927430520303491772110661736151690084065954280672137582919954186767845882818718231171019807393227742466678983685403310648128089878553148416777094132888505279400045633147256347706718792240910244111085885580622148537932218427292451070297492235910439707908135000987231015084891162870370354364046822637184030301623042903899295924573206232885850148027236866619478397228597073785983311653910760862959645194956690993940662015663684451778639996099634657903040983165842611717134650592408556385001398925768591662685008111097023977433360685572773248644376723502067283388675850930506153441306272532480152243590594598869730877639488990972651538594505277431077219552498394377375439707959610176615863811507660156280433811555127245019559599070510804078460922754956639923146190863766815242519748958583572972720630186716358099218200994525660966577958594285782964606311848636408740071457525469122099759419214365377796235601594683754849836636691014956345554020507793006670411787541275393314332335175934650762588454342190808530429801894156062852309156014881649963646375154955589861606393537270122832169863225882038058791303361799238823204402186039734122635157915619855813281410626501161163945220560539366394668687827740285065212308076559901030974263543641342546090758997474082107410813863442375082016353400940342712491596172935321414421537127832715161815825410155056453496110181456199243604554341072445708812211924777372609529607051313968503269042749337903349674869031652502918642579727182630219618194138122739163114438314075194047667643567956858985227811319807898850519487052311823931648128202397649478312408298557153856970207306012828004560627579566021837072326115573086556203804130451546597963177829779288815684059772651249859832928759928555608634641735935358901847988186046054284097360842996950111839865158209986706591551725904668332676363631463779522272932607871683410016504069586686875533804590489610968079251528724746679905786111036945890258494148731539353364878013244344481472215675900708440774161731219102878276772120465864590027726590041086921043175407025866686359116990104868828297427911448845944106828564795370702960696633136296915635169063053413943298996503878855066630699234640579103193480173310395666683473964397135029492371533638161222053813797172567839177479676516775833696312845759116891248509800125809726539116515798884047864042134998997988940424249484503679989577645810831311887493837885684019543296253544596101752837819716383663211387511856060706497871329957085782735949845813841081217239012445660770778774893688477651582441613814612651044714977820868060167819094945950640128748344755866342718915159213373620335423372801893439481469797244731836198534400562609103881672457622531609316164471755547941724104150067031299866967430488146477711061921227066915061646311058249783712477084953168378227290932049874359064025929319354600351570556777835361193290745653607240204003366352646042850778173757884944407982333618310385026165140341267904889379498271811856540485146120578797098685676302071287565943294032152085043461605626474737452329608270477777918139659538165535875040619046900815574517026342969721779990512813326193732797338136528735327810032478710513303351321378727503562303870646534306406227359784945067360211113072439772602190613499271672289778643683084937351014481017430395562881855978757132512188673647547039429916398618719118639794819910001923820134076108049243844377128173828849068343658331923944147581887708090430760601591263059874771116008256889985725571971913981331328266897431081400623289158296324008656753992535080387367471430382656658476028688222941083617521077721602558740718465089572095490563999589603804822789242192401423911384951303329639650473975556448702686812889968724899381061975160455608048127961001531988511680395187183052390253494847895092724557135800865624258572155028194649578979385667008780299847132379139840036010670709830079368313606667350946342807023284473951343132362910342898636603632344363629513832526290499490702893478443567053775644721304287381791191300351746823152629512701458438573210236160356149363526522673647660233866910345724834126331983505140209213523063577411492523656822224475322347277790729946044369094586567061672445946483905659888543893520648154495664869770794767540242167124370875782241308478891533687979754522982296332415163394248054091241401282469709460269128690604406128062317441480641656031309485183344234499925588113549957966585070344564025083457456581308435571283438232514078877547042899291613892373642135467297313404239735039544560963093947657457713363160288235413777918679455339064895171779155008413454753352107936571494320540704272313799069049867548675001348116417133751692981672025243487749429521091848567204378587401967146566925676715274656072569582836765004670044529003518280478826753972506623224492782098285982789181530822670747377588880256080974485687878409445197146935066674558396499215760248806290737439628928559348441140668923901762550180823865704072176741714118639065200140922992744408595638735816986776290404843815169476405046757772044326584997642054595194279586837464099235363235507278270864758363127848336028649475075164098368039748165426802014241616189598780245706692484288086383941435446193317838003500863660567167492781163304544918937265301632667864715506268304760243386970021772830583390439024890393747185167160901651619281094186446501353228146820171995658140273751829551788482675434950851948448239654229192033663026139504927174648221443941221810319053196303679389490659190822025366666751416510275071570808319333588278596906497174874816797068926240712043097900046579979049216021758630401026509608951209650846943229410541332579531810630929699934196401854281644216055568067922189300751998537132246315448657056102978056246867647941065945956341800951711106328927110031097205171764190066100585490458079395735712315728060863122043761085670497550886807887347211922213513577791614898327937574471749511927228484443951706573218758916986158469035634317484620488576158664781440132314551935930050723644469019265230054829115549375466688194911698663458003435219359114560236077518351990115860733555924434151191863781002404079571058928224386543585475575704593362672561466882288451696743300338996946947726525240004224672665397176069640195955770530992282190520940311451091116163547307671891997617269128641146463557495464758239773317823279977080189549657628234426248457832168413815371448914781247186006984960533788014505367421602730173419910680924658868997166763825882817006702467135848662275124129081802732726523410384406902739749460752365312910406948163643328817825709626211510399488402696621636941922785839524263978654756005406788179532619064228487868207204469317801569478136136406537621941744156830463249679759616160970276917783010411638871714174351415178457761187768655223938966019895580452637933333505181447508884516307711739183061674777691961154171308268091905009856044445665485023036959263389918425054165544573074539170800317169333030028710101512234173598320238841495032734536042368813391539253051783358817157890079428667792626135659637458946948794433415514313120102884564602896009568288598907729128668545002207061824933908585016814964358846615513077406429522537888738384937682746831804953646363963026162833372359722186071289112447461481763644648888988498740620716081515607723034079523668241491352697134885476234478653583872417115229664472648422021199989995163275299449462338222229078593420282459612434084225337631756361206136098461921130291184946893883765253821322101219396037843809625485046071729482871859597100885781060734205025079469616749500607084743975048253883333610780675708443037378730304599445104224747005648855796235852324841379387902132505746655903700141830517641676781464774233088919180884240050858400080842233879949734201268086924175504479567556003006122189225023481535463358490571808511503380169953757353511479958290228193501850599487937002472979247788398106279798563253359009192729602433586822989359278898386186341365665589968241717942220493718410062184941774858424793797370926528691218169835589495663166395703751261732366841667775116703044358188955930903738617939169262825606401947285915084027989594075688047155254834573645532945073776760783740145856775357525103456091835319548199788347598223472617076105252980490005977105208474211263173221510588196067491545300773287256741716989840941666932748876118324333401608690278187127196257501013262165843976310722760457009658579668364943293401076854619214906880724808122947214802214444521709238293800084947106351832843389331161704213203086592981941624422292005506311042314831479682307884925150496138540524977709377449942093535763705122684711522837458941288764487813234861965602305592329700760522854258666956947169737709841039264653541817769931157144133869480814722066613041506962760914405267097369441436468446184850260540299699081625335575688557498721782131949015423394189738567181423691216439033071141853888521143660019242930627329491112652773961964551270981147080089526601677184026262143933205517164883328388395391143628110491188908097860806993025741723016387018756719155359521135376077202236310610729281979912663269294262318815812273188604408699581365852293511999444280563697227481312570285602243710462189504559418427954836993625205321786638400198931606170973996591307640774147880615059853954323356187201129069307549315799117627196028428830367486448372045047296344885192334794673396603101250303559255873778627420093396560731375301787306034459554892912411483382127785050527905540586786203377859100137179471429683667484162409521535653143313451974582799686594147073425131894886255420612313286924179809408086130060338284568437363093326093417528212872701221721329071399892985769586191715154181726552709421952631894322517408375500869102300591547671899623867329360636522123130079274421062768703118956031445738235377934703910223743253466301143505645045908837187757977566136426129708057375833398794752370050247869128477119118700716258551683342533502187137730144865179214425828865876657767564729707112608784222927778299397380659873255777461662743596583104208641466985781327099609350072394593818388915886403912709107546403723461430962102217262006311424096024160479073896782677776953638190415874221052785384888703601697701140126672633531361990245340588562029095854909644571464699146281870665521230726297613084102404926995800308824156278667262371560230515411606615602703836857824721570203155581474242086080110248103202052141006389661041492457954197014349038284151467338277048789727078941842636481943515189454071712839098406327241340179011833479701331518964867391339822659484374725645785528231296044569313497096886507490568880190107055481344797259314656890321579913047106512292892370825322733049928540696544021988207354218896215438608697463719149837655566852134265824678500265910060534159276417593650502703802483012569207265157729082627826841948601925641214612459910583410750968977341872457793722142334428320631107662282632757589330127240446379379452732042233665428899169420289133986005260806291580847792608449053530512468157625941445734000368745931031740754799502796757804346798568853516478505537372466548936043782883837484160025775768452121713401788322823585573494421310666510644364645339809555074354815346663338279303226166816533216355674916620351522695151991563848935959866562295461375628676395641559952912777318988288344177996917230022220165404421043270299755218504077955473679383788777334647583031638483384282635630915286655868923341105354396887015125523366390099968523317950529108833636576365566996291559121621220569585004822081273749447338613292178233939940302843379665980169655937634860392881796912497097767032368739259784795685158066771947348826727722363052604606471486621163980892290856368411232600164552560007567892129973887698708361649437192024305453452484288461283093133325226770930724760202826550496593183554590299082326292109056678329630396161900448966887490164426812876444163051374635969513522739512175889359717998969795913591808085482020005124330788950437408946146332583994830703758913901486220925464065450570626624912898747288287927554620351282586449356501982013819923631784507246362060159109458707002279814462629299783454600076294913339151004540897256839084594873722764228650075086487551618374853085076466147648985953559508390594603467474957705633040299771371544242396112490177853439078872115522380988973101401563720889642957245322904138268098562945095471811162029144135369562945638121578583901619080962749692999856913529315567735485654251331742942313633968532403101736927741809996652454228437837812263303058791237013995654986163031884591836902899112916308166835484528344829227228715744142796562017320172993734400630223652451819642202841665943840675135507761676266109748043528891854817231412671959949060945619313626969071197899098142593856154517755867568895542739543183993807496378317525511948648548687958399364157310763513099587181432945583662677665013908987799911486889470401725961500001354382411131154613603584692483846293179719980329686651574871219138356166291074016558398427494147284366584970782380228561003829253179250411154731434556690838526272988956170371257044724700713289584309262910556613153784266979389072832584018750667459766950932226710839719031447625336955964506458094544639743497103518874089714614620043309267412586503614136445886471108070198525340528861578475261877128361386980256569530154338532896901205769959337391328958339040192071748959463032886627152814956392468223765691930440376251907530483278544105328135917865132360579163263128430329004417901274716263111852775974087807925833406288920778374835334403202622273279194656002547043310750455259660798326059507915318685271216967660845152976833889260847565657509426251650746070306196076957021756329006126360045867516443031625821199578009953432354604025186294512236303659052103023564212168103651324561592809531321354065095118014713075379109527641123883774983556484392322472699040901783534858120714014726436458951432383256155186818255705811477404292604511638656978169548024450288606469026221289635951449575733302727829682597601957632236588183636941759892757850827232190181094351279682505911730982154700661403224940001109049086996122750650380401941848807667179659363704020400425276049965931871837130877648356126020443512987642961420592376447505380772226942247952394940462081632220520133672907701886390691862128200784335213250901226523830521795191424320327866434460436462208577419934099093458933564566235839469785880747406662027520933669553529342095392890119159692762704269998906317385495255104137876494865690906901171901818572981750623958981294222002858664660611909278942778058233007269929561545966834311366010531722524764710371971510384627115471499942652607586495140412180602480538039571467860538804154052546274032973514879698076676558580554206132023925314339194792935722712981499841004439401463683511262620107441752794705782452846666796317337611575250522953319721346775558484800780194698334069681311931891681080943401047148338574581504227874275852665246758200115556759802092342560604322928301968615630401568347076546800629354189263393342620422159465276329401011762360093285597947804264636533832432898786009838892679980255482630397902738536632856094507846343753981459590957254910155920337422239174440832171557209360754124414472643040386425555936970860015463912208887802201892141269010467458093425611948269531241038557947100993869530210414346718857218292983199819584514124870853064543818091383733913739972450904184093346738117082162588491622641221105853639519913803008738644029186343491944426743028474030479117503048649352066020155985106474024853480071464857347612313530985080810046194851085988419227760581792622456579026681505166496317531096729952917179537559750039653714949695396233128352358006853531542660243001358178939738954695655270743057147849258099812994262255967859104691538211908826883235203734471795263318179389534609857693717025461285786301492594798480398931572286173176002501151673471004947516870814385666388822432537892289856177679667479354577205790237266371804852924441461299454905505335357064632920556040613505246583126118144369263779115764874181335332937090205881782607381993509270676151363635665837545937690514836475292111001698108410435795654937257933643375492834626723850554891640003333741184101033487168613205936673379838827388538021279885097376435308413122801536757321543231299198301555704357559889826514925358551154231768300884805117159579208832956482340812028321968461717397220215821046482610269222727442751500405931017317502295267667317344401247323076683264846942298974886866679015383665417098272846569573151958543586092592209659709690741627036134728489382335032077581063565881751051726613306016744241185059591359389263575374380066220193570062000284879824109523640476303637130829649033379110370133571220809410241250466896549621990145753835812517989263184183087897411726804292339520450334596405339570367057002435524112574759043669988829443456328213578168864380720388158271461938435411255070821378969197529537819149335673311413869683900555522731080813634642226312760832054089583184372270103446095929288369887592002530415139264818279763709997413925361624236459050296809222960495814803534668252971932751998266617416418505439293844341537171404137672707442055007984265851365218856749260071718499405265417367507180567405976429258337743848616350137725951672440179462209753304636167810790612987558339434243703516422121475848249778069879180257990806643233011066781317876886564505676893430394449414755780239219062097611590397509909137893729642521819091410013119190694194435439747736762599069378292049157602905974328609433310423116030177759561959742267011320712879760746144864331189460466025110749460058759255283168894076377468498070507918001654460648076446137823795628763671970950600976550949594579868612176221443143901315208977329010817333352609461148059959769373345233387449153681684139865399027368380283844480904237107023980879888622707119101842817379620697295321750619794271463418594920952966162866999474163177624141831335736639114786017575427339026727116212359005776483954520508554238413800888679740714160318524187880058879150283058449526738191701281739243735205764270905697986386061743121591494497066732381002770693578348965461507266494508782564691872569117992760367697437721920432708141903207375637024901534396727413433373331256424599537362621119565572429627374290467731851853678985685322408925236009186862389372953428845802536255883178121920561025408620386071318374142655100781237272609784378546330237616261081209163498453874022513776568202069760275025298674096425988638853966464953065143802429077614027667682013268787719796444983561821990906520667273047051421638204017092032520853371544904545994120140786142228016020974084972329902210576178677790282886523340079331714152952959291898724130605100074907182814758856998414105245170691733566855679134814518824477136130121056756063386166610204674504486111663769194034013481107460970167822270429487878134183667489913803997157421590512281180230683091395544725732407432831436431665908857916073486021733099155843594872739360045978062325837061809590515031934835288827216576206207846736762237398754401477276047463153629441564925382702634709305855542903513546595006513155313188835580936914103893676792471962369311180515490841122792706797948591835473134573550294156536005247122804420269510380926881058224570805165707259857576409828658207723062087510724994799747768706782990060256734169153416897385259732273038858159019105634042577921529297195364490284823704683039513323310858080984090355112421372416547719096983510738747861252783975402476715500336314636500780019700259521365706084503767178668541754665730459945009796033838117079237582140519974392993270386658590572696486356959727777894458542908481618926269106415295429879045526762108669326806484194379215917577018378280527048127180136688844789353759715035487944114702068841929576940141915726022585822300735527069032901142850336926118746734103618285096222344990756520777297546921853488377687093697344102398284501689305353804402111577643639929425609245144817586981650858559552305898582251854779160286817737276162052081648911968794525998132939558241561588758028500384584422742036812034656019512383027095680440466737878444348567939086196768861503123047786836478650899597792961771692208168164770687846885546330863912902036468503112393999505861556810799208783720972432947656927794089914025506484361950879290607652254880563126630813412023038404630439254896753771653997575002519053832207574862286454276749728958104647131431413946390051675080830848038585710817606276107490658154451810721773298479193447201639413831077975551907323017465283067139721226315981052166678123136646204724454526976800609671795132419347653600556474095715875084407527816197014779183020480677424325023120852308717745064501233492154498790704249401071284153396632147771234572944907466427165773234950854363236389340826147110554693137815604119736194715649614147054647065166334529256671624785722838364084427363914823944828178385150188034930244450454747031355388549779473396436119093002348352099481785320641518468016891056231449654742956597521802086258903618597930897666654455023962273434438402959073736505475297541220116668807074990361308629110251263265361036077834884026920973817169795252939120717055339939089069979447004083842464725579051110767381143976245323660942217249570379995522264315131567986959286753376662479157404952496694594314451682266343154222350627033651041403266195679352803910819977487495094724825775663332982479228161301785355361977485765190476897353150936745552496250206028657602492069540351390342655820614810408324447306884141531441946755805048821506730972539423718509967144564705991335256902050321937463705029053157836532864328434507222084403898760815514616849109478569854489268490047153897395652114383152667711092601857720688741557704732710406763998251784314868639887685978799442333990621363885181561300703071171993815768791550072251129500193388085970325172237068586708918695558694056342036844257415229770663055920220628815222405592557504880234969795735810128388651612578083324248327543597074381324806155013314239547134506780062384744975724724165719007720836634216688600829914574954356784672549450085400252707902804201019645904936224619461351940675102329438432282593026793981082314275569223874702732515143917371592743338926614153283831504850655279136601615515427704364528234817098193024011029075726388542020647159319698078792542577771773158473527889975041457381955921451385203433799055664381646488664724424756765492028664553941354584721999128835461530193971218693671674462324097847766595760622217878579117267704779485217323211218370075075953161577503082228129420160964610100480030951614938011289067586166072582562512738724229478258881917920573794309115825767232718336833817866564893186028091035360169631292906803259760419227110852479757150246756441920859804601726173787733666018636610963651964658709607698431314703633004282989355236260304184907451138427909463841873183501651401943287429942250358970465858767466128477135121361411039067823650090717416623741914565844201547794045739915258826815303707787811783469739188923474305691581521957928275325788970989926299140554800823079041913220293609527007900358944634189204509666741262191473340811753986575773473004961505348349013104548401048580750628362135655404919994786361735237393181454340350120019153202724899836560057541907264260296737935053034702189232008576337367440621902601391655643442170455219900220665278431393459607151718417109822494729594151042748409112295210809256723347167655021719221707039451218820035378405484280438035425559735626082253364321817615182076832775642165920634015546191654205819930862308430506549114757685808950690475308277934075453542063356602096484512444837285818973936142664004089136044890147756858160722328567378935252819609505777468252785728801509439469365609239202932573299331468321447679922642214404501731650847483604284542327878573138789484298150508868682697220535768109780420318263108870148640836850063947630097300946346815479391981028004437746991437024147350776068488532458063872298844472728696337037733860449539906677932676895063793425968138737963611747484011446134397312361210540048148301693519473869201227262810030987444386767692072276456854981801460501869101641929455367955252516425987494084697787481445477504057828319952394384612086339558282486592097265794445998535224698410852842356333120273047735115229274104621211123438594974956929041505898016080694427329747862526056271386236000716389267296494212903705080465865657319402862510264900164516285062154619105547906285481950964083380064575733793089406513525403399602855315123447082288194972280172600601817912520354759497280747776236162689072173152601422273169839320537068052878468676747338783115983035550790741465710924157671394315625449790415632182126244485161926558721417248160499913720863954024034633705666929242289839780675760864998453000357580243670498868025315346137635700086087520478186061053851884392286109878572201939465738830150101358693274031144547067516105196709338124299841171700368047017621906728597878119239951628458281790727541120236695601851919164621405801886724229044146500110335235415161168265440865605438486560613446110609219894447634730471769704415362556293998594876980561907868845071393555405249993451799977468134496888327455856121066697815389820446891983556708625496130470192692072018804912483675520444115776360233459776701366898491477986360006026969282658542367550188123448316388056136410164982119704794689080099938990330687701279327196006602393538270380785013170210251008951740606317869771155636416775269119371172337450623634844673899127641593298818219327668694395358776614708482085196831813042762856343912199043054596433282110883921164949314589136559808097069635581397906203034512672062835523695746277373194557061029166778430339146695779557856194401817978910161896097195387355469854182726401216950722996496799435090621478538666925960747719205170973220549785950518931337040510300122855005383960381968453508486986645954763223725045002981768594941300961104073976520508958307859492360823402088984365680679819585896688800052365928606297024526990388970575038017647160207603499447052176745382338009553359928586892595849145083487120488044061324268866436123858485115436530529296806135125984212245871143392565433720621902030187476445584535159454873762305207547550765085380696983130536986418953567339851920283788679745991774563645695548724122917640481793953025483323501688410829185978899888397974841292383744917616395367007887797537658903034319447980639727386535570494741329845297047615138855953211420249806450610874799595641450288567602757346683559595239703618897761581146106869844874064140090950779660567965466614213412553752820041573074231977439686158770433269749984615932334886361706082786066408600469949193719244950402301266261792770785101023879143544813053374482051328636629454540545614059713640680173880235833018741125837134279295508373944425164924898979808724178356626413489549541035364655212763508338258224282565446150669655415338628476798681244057518946290904394059644333644905266939289822768592630816187478420743892757721124501435201706092384970908732234403015697991549879311024660543740322737222302660290020575502335515014706632076576186687252512856158376729778509910686117290951749187891675508068834219305367831359934413086055539645874791294592693134406334516213976957992710566431239970741934080097261693343620122107384501119980286094012225539327054659079470325183732843213862040967091182911854419691733074608620122741911010122411843124888492057292365558141613377003906702368088518447753231318399045381995393075605043654876143568566758005953096356997945576147523231766619863831857249532360469317259583265547533629956847234811924868028071280804053103533503681036540689268357057735647412080995417230926466621307942703423555469443738994878788416754176259496295678219622540476906501948363738451609044734355476515987128435482200875377747546688590237664115219643990627391054370124019770504653361504136451855840933066755365573378305803590029731410197334294595644174465867258470192323830383986943282107270256102666166575407029183445828673760672611028119791441029529215359036898720329463252989306370281667872005862944936621919508827918353782712742986801805307912011623294370125681690283385454567585211271005639333836515009991313418835328682338748298260127003372842537542555936718407685318882836275586861381519167484327538942101765891549828943106069565714996505095345856961139218524090607519596201555101207063815312751378894205029242301152728889909466996922240496952265820066081651045051966472977399073370853084963874395581057923492963643213085569940129977450466190800652161465212200714147763558452677775955797969158756800851926095902662822843624757859301119040083875664666455403273232757481858349195492022940812613450095648343832571366246005768176588353281938412262210141941013676936666013858603486202204196459905979079377537515286726503961401745981762801438037425872648832862441991150561504587453138300811355231860924474878065933703609790779583971041146187360910162926167638016738040393917678571986109534440006232947068545481929608258867259120538568801691654415656756936285613916399588386796338403267436421970462983090292888572987436498460007268214538331429181061405349381600187288231022627601309027366663743448243451482576667003791393072034873017646364945350019776408796306637495358705648935753014389194078363400590799467739621297377125429387292013355433048731551307396934630146686827174854306995334252552890467107805256937088447131777859285246053287104562502837421463547063645842975364080673659749245010828196883128313396762863420328396653493491259145812852077785038466227466636455351551986437027449748028756472603004186233356145429203306741826780056972271000933556325753900516848787705142952186238122712464171750058058621130373981190058462316202060328553409046719839095863595881154786223027098991367227430579555095371335474882478687082274790336624600016015969236517050699584395170026905953832452233999640328364557767066499548069666537374569259454932319135915308760720495865161999649488488021122945322346900279637501909433846029525023232755213898772085366585182611512098506521983088631311168972226340436169542711477886428013115666808773695308357366337570209751509072818426344876204825669859434153557540000989369066599368310985650723804219323333711801276555360102687342661884936180084381983808687268747101323940899708397129442562059829554305901039182180371047322242740191630075696780835643854976364468593925347018497125894120468870210173998397667309235036667995397841944814532771275051866570742721579264465864313526399886142099452437757359864378516707073342699412561509882601594587105862864013575377024748678042648281786464141766309943101751343217116277539273220052532364356811982561763097753494671127835083596335001136468975100411889554026336938964588075935901037399001822460636668271504288302533352894576247805331271864861972620772964940074411598945258449642159473809029211765262990123966394517603197190030433975965667754725828632252448319626900013965969507776341602583047662655906799409301156469508211165974417081653276180719263514364523395917470712716874805468265472697432797145710968003935348808506582542097842333611541881938178855624534049658086419833282406356082924690893391415532379414806448695142965118641493334508266880675944157613785583230030005624688618619713368481659950837427567971061020431645077697848050542072984369823229019910022051208772391019168853716765838379666011560847036725258126032953743300073110747280791597687264314495850966849443292514401944926423825683070389317736612525810847791872287897508251069914191078583597418675442421643691138322215720634953418419547486886608419508108422547523913019904091557046400362846483383554940110016357909256960004351502305025673987336945843051678005028282820165498216922565224098818021228930264924567138964756256629565420586388424361050210527993551532972858199281061480798004299858284412698644767131770328629218154347856986250387837205018632221198948576837365778682665603606592792692660773574226161683579579327167099910771568261643688807604756966206500843738015069885256907126069413450625493206275711272810825680787329223889434237744914655905627316973207967115193980834563985002622996385983340134484958774484057044896420491332234172855554729969061489310207061188167910182619212766290702192932896792890734315003592221131622282739386469546396204348424500945267057479262619403609999779225666310283953306140011517109691001665153443074185403521050954044911659458592021775975475350404186696014028296412582078861265458139958710766914310101819717425964013654799486373009120708760938391446888180698834091844314626048920817626204031936086360617839519495602982384589532635426313582576920851801560258248769892707536106119121524453697384165277736338937823850451819136949704971699642991305041047749931429994181193475022368156736488309927137653794328708109260629874435274518739841667502996752861260476995064329651068509899518854570112421917235804527554668561978359656494565490071575564703231621154905159327812020084065311491660030207799322405593380371239342174532889880157232417341831428365494936615765763631971675000515984069317930918072496595474064641453272326738684485070838645726815698716948237315535080134027140669279771503907079993080336588101490667438246783865448027728753748006388496816319074065704713813757621973475855367639311049824742219856287162761378262380186006361330670099258534677835351069326219972504991151661491942170264159923666436446852440488145699150872366490345325789598953799071069843167924146317598871064833375079450585215792368250419401574018410892515236736512531058906661596874729333859721630233639797737922983124357739694400675272707825248935341933693619425149173053170970628986373152570632297507260237644323705426053932880796419733717755097999690751114777858129496863172159741692439570564592043275669027496403642107367813551063826332625396698396666473006302599147659338712217878727616518147809740368666796362090022207485046608082143053614687076665834036617795991017259991995817043140808761148896985651187463482935841193267712492880458005102531730451115280995925867262270455935697302765108305605887373524809199493714526435505558268502993113765006784129824426259224322263236663788118130681757771815391860304777612532903074555897337020567349732592559739568142878325467080496289471354676875873403357069823223362611692901482897009466193960271549342488564836336190332259869295160704479078814902742514454329854928200681615917227289652731796636052970799650736248860981810308931967491313329813943927325991403290051496642860907617152500467685852493417272835157295751254673030911861102010675481141226288679366116104443501921829567267448676448927419406388947406349949033704347104744430595505821237148987764502673878080639601017199664538840623455895937623666279659969002967651327730948195870333549385968673454093203656373646862483220697216589196789875425475588182468937625475272880016454780719931159166454898133433455364265151737291771768114046216803048486646924745341681518678173139944839687471838935348998332071366204839462824465519427801731668199944025942750340591379323319424141979658134369659998872169251836552279876552944405305749643598754321444721068870652741181442627656049057411689748261406768553221126989491160258348811936808243463224293846743151293329552231673208495769517470394067334095664880327572108276852113437382215812560387791953888408778899450845405099868245240689792317412580271005948764234833789992790509082845657465724753157370871716370652606498956568193172612729153284934599958957456158305323122576582984626547308648677620900686655476224809927128398881999130171149313955886109530081581881986737465083451902426710037727277928538952822818160303597298646769244205787355633044311550085151468798523399582428664547289206262589493489670238049144433754585805587362788657547930740709075317194113864409192333639631960591263782564531396572103081501025970287080680315529707306037652360797702793405526768937752237246055808157436500625163849878370298141736855551267291411989142887581877160217303694059819690597084543301030921536672085421367351353065395985842543942158776944230860482783953661330838273692235498835671851947714798498384768398673263140083300037607709796624475916267665816736020305698810665845435630469269645679509567338157150245691712601426389789438253748255853879576493771220823992497559264803418978181109594539598550253227189044025898777237740344296970656290053281700729072852279224122580839488370220076303239571568245715492287969654626459509648994325246798504755272514137916092848179185532102909117348222639203397737583334439937436660629122231595558549909105612935976141141160067969071408174605847358258554836078119945024580694435263186245950289465683334627660832408080672682108289383837662947744819972041947246487499848109744070558187589521419925693153187014178751727036120173632215198063170140634952856253971366756460633276718653164786324817573439031747848086795238639377743677517726345673335641674046832657146745248737761243906748006677177701651675100589460426711195467896630074962081976853662963515379687267097265547802841317232927912323589778138783690837710343525772802449234127534605087325500984478954795225412687500377695472829653723009279862236113662154666164005226000747179180546917075674107757104954723226572138057313994271550715023506064978459218698512597222957948374251858666592203493314091171714023528743415391599647048705531862486756928025566429839806628913115153187138361249844724858603771019268305195517259468574233805483327783618052800361871007828024461446900921153181721500626336019543068395647105036291832106520350303168460648835186114036783069741028268985975998932574187609878573377608128409454479847866026552634346060934921668204723916965492927182912720339367918884000042838212333769160874220133291452664047311265964463939230497656588205095351229312978541810309308931278166947075228721824878730057692993559391013671734313286280510590664381176085080948687046083801966086219264526985875574931897776437486868756221311831420751555902759690541138448349428455236617882300377387362999633773559099965494548136352125425733622999614975550453259199363423936464462238947749426863552649440980325867225762240513583575920323866430746837599770889778705361271241822512726129404429605404963669668920250365372525299452408868795454820051630805698934238755033193887599228888944931667730201414378594292185794405876274223365133394998868636442386867735288251076695663344064853408530953766571264830589183915506778536713876348982163102964435788553450241552358931309286942827168199390957425512127647072432225932519646324583783509984967099558762302782361710637468214371072484341673901626734397915212870043634158771937772737128724683760001041210801328987080527388901935984894132352803156238325335594801364513659419756638357266241068384987521927361014078244094385158860706692845343142735614805344040822542331492817809281915426448535935389894475476454751596109719940282519530341999700879374266690215767893488565637016830395625984197652250318818618438259409751645878644329106112378876894604512196125740610236903671800810695134113711250264220039509202485943023400857441566912522257000126431383251640739560443523319413862767661741150247616075075859036752117793133446552026935760084644071474474503277840841714068469380210349036875417302740554952340322898575062085725567906861074806145843986510614421293154470269296646823003736798188191716108718441991390870187851216673139640224550090077785204293489769517494351977849946310178175288441164799288193808127006277480904515709175479264605661303993010848906723421788236693432309239943516370377907391578980681547904323872476215933582502903744121585045738874373539486697253358996773689601047986189619688214434556374230856273243338637700069567274679950390001387576285446172476946960587859567770085123944037005618672571425530887912489768020235436717598799432853224864453168331523344747439795596158371225469439855927359784256790541309731537982570823356729032809216334101370811473847250926552078941812304729609507643550099687177849797276115585737447405772107513890210886976778477910149441262827379871250298475929760385470928706607886212344002353371779683628264740766810905108675204556037223416210723664488208537083525933649941924924444178564785804315224841764846847057440261766410904470009448518465964336033972410235171795340490841095035436640322295257518407997480009106303581749415425820611865458086530146730826518448901079871834466924804325389245559534792905318727618529495049073449621893444248233512799217681146541343136678504109783105625678388145987760273817369308730718801633408613325376643377592841561545832054055548575132547465170206743218953054793674232873877490715019365375711671128925727785848188133526056808893538478122863145032693732582463219354188822176643579032293920399595680786151031583831380421997270213749004432904060888840889678589852746020885876186684808143358066053369727411741930479490411389220227897348826289037567767364668631075128874578456684468446972679682407240611485610260383535783425333741232452624463278164357593050563183710944893398293807445824978410510365594058364957852224064212480131876584690768038015058231159073252747322483234312760253988039614241704389583782402080592611724753009719606251630607993592310263522120743883872035244756350155407493962638669088745463318029378726389716416795736155287568173852377835366331568051153547848559765164334603588405081784731482628885561677245100273802964999066424016007963285388731465942674619072805218997782915134836017120736343533537698337745764227457712208006186586880496400093230865337569895766621587957884716383969905483208380027993314366819511866915521563466535168359362561653980113145743059327028564745513184612709861812032026220918672538484129264685859016362111117985325410325182948128663243219861061411248398958916973374070417694341469854419659455277257335103705561736339549111736088312201034799115749167871585726561192817886100900030357602010044579013921977432312882143379241539679498953548129240217832690029571529283089564810907642914756440110632949175004130932178624466757865271203480029732139267140204860381718734026709216116862351834475904081948888805592889230653430217287763552932937471269245273005507880899925180164221234555060410288521673040985522222170880971089288897821334918195956076029971311706570594500633791066930860486560059283248730535523793650687181211974636856623938145256158187725001951425080457750427083263910329979842076256034121668196656069498215712200797360189253118960342559808377798992117197888681016100316100612354098788708842159714440368933323430327139572769035059650335613252727554114859146408506754373964601996006508765847627941544101671991645845534347554688004669726827013487592724996115875835452889694751713108556268387877996010726637956136831634248106559817822688267142063676311241784538736240056017484007229950601305385494885966739139767299419796241964315049762841094522702944046927450894343607282154622271392463684833096487463618313987060066702951337459740624394332915995218771185580611681561292513856373986495675225460898023767996298476563735549004754387930742459921244755689916077622740869614017652887656925126428121341354664461697903459716783503881674288795399978487429802591850472944586680912232875688198939566333461565866698953900363425915645575324059192173642848683317202113553537674824677618485684900625770639497939341901872797252616769868742512506898830724483773517070578592622461444955344027187217012784768158711511193977323950479198540527013584466753518960549908980179990826335658578952480214855130751254783110711315514118395522768198845229598481109683697143260062642637507177846968629059103116529211938204632277938465883842462661012767873100036439207793018833730401974343750135433271811061561010147003065251276628407592782116353201700059169302499492224521792636231445664419823390591245688938917630124035437615230184609260333255484397487077050962654454716837009715359388219795190133569186326641266576496976381331853614011573662724365755371189549451335763540489047101905912259768746188403605567081565221563459933939365315732619245132368561016314596700961245022103180828602005632048537410654046000145167989464423305479518057070730334805470808361022548379249143326555726268272366496051074654330720169977359800361204768924474514212550723489442692326146888965623324635207833447672659515146273808216298296031252559695688377964353223491132717359057868208229138976018211739733485003277451644890027780147987816761671162463121912265975255779495699524109677062749691520824762867967880506121953529815385809450262418843518405781618646720855459237192016285293613275232747056866570857553775920833015946174627397159661243584139842500115382498007375237280378600668499761984144369788920136681215271752905224785987291803453741560288427695081372118820032470568916214376873910245570302650168833280417547262326870778324689605355791437711563854908392597529232306244551621411489552534086328146711838361956600226589723401586825948385629219589120131085979760034832324034592970112691871758838383228079470644117968898306431834285366722792617560896356958383124466445586982806591301831294828192615349463004275363577823172477864105301152534562278370530543704802138510156030726305067864500114552965477786640237836723863976768039515458038766294316809173594898282284785580721176290912910875185493738337347037987112257151499741321521594104764840574598506930467339539828859213082272237952946310961420239173434389888604745251328614883546863310409517145262558802831332542023090696371401337891629742989450749260464231718584959597521027728945000441071671788517345220542027456593671018813374611496304189767841153191143205740465962546325449698905879458172584172401151804281274600815935372882961459816836142384588904551262069232093488656027034254913541456348160009761376908621548384549893187838768488587180286158563557431541648786337873483591169227997007468465170515188743917514953063989237998531720250648137629190958395344939241693889500917329610599392174860144367293994020515855118327934003545156931516139467390767852943264083810109086549993860530782650120882613716199691301177810423057385139611948604959487722966991040008405105451271281624291025342231068389986474661868047023738573649551564393852738098723563847058716879118997517977356978407512763207139575894457193671252189807774456515093129545929471360454900371241888621969741698326076472882999424851584121679561769838145771340050705719755223681894887970845633587656294254351637875643964840574269126609093505303968821496894836189204435001751026453513097023474111735986621604546636827103259179506921083199820929311558391473458149943706845355531650048436862026612228314754622696401171993897548625892031899246184513996700488085309325801118718666005085300492456160152372841584304710774935277287006651568238425887711726788588011645930986016963805683266601907148856345677986193578987977809318650050274385212650798672953759079363644220294587631586455200648367870378374566974823976277296231597036433190444015369036621592911989972829677362688629798180245734609048590374204239609841227522822861083585531246182940058525526415742118666744959594655125483598626030283077924226985906915212543397447903092157845788731824089933547501100315435257154465636303594548229611436025496773563315623015327620098852712279527826611190467269810258312673666884050633267421782610201520836942188669360839516887065493759638396425652215578089791910033061119813788588869753468519288184947275943313290879513106681000070775895279797679336147567921985719054240382772470748991706590771190978571405355910496728766261323354999446653435589897754652894750600866742174770622020101745919507271229132540152973571639344069864951439785107358422536847668716446116622767555938276540433957389522467195897361549894507566877255682451400940079744233484676576044822663983535456332254274565631505909903458493465566199440140546648649397523612292587652683076424919316233724595514118503780157917659601232473949087858659687509750584832947224277424990461423273242688921957830570282946291923258727214811486137420482368099307004573796069361447645845268182435270357698443556851335577533601547023241499544153480223592399737857879342187379595850794826712168393736269605614446155980817288929060767650962822316775505184857781866631958625207210926601709425831188927526776002204600064657571118324743316005964247647067076741036747407565886498356956725579103074772497559813546252045954474512148450217843313910099798718495719455549978553636112002170692256190768478252030160876461507520588633303608525285891928356170381234842469522618745505790280375879260435229905471835755688611516521683999884005358880795059779419244825136705149889149060360929750932267135070703079218907878530392412041305960219465296617757665569626112255245775429218123175670206181124457398917537074140661398049682265452213712977938760517243811054937163851737942347499815243200098809343834559832931381203512757663845452745208872106665849261754862403443018328963206493304132833157161217351469928950581673619514670678723500224521829334259993665155907980744995521804806163092247590343041557681629316784056174685613791038565375913351491876068604740381642968471367598778053373024481279263119267592066853701843632340475275829796842400065588265716465932544973531745522529152509357047115504525640152570197881653495643374565039712570804173724449825370627015469582842213221805518604943699450204063291134334891701094266713833200845840324886657702037324851711904983450150237722597627900440583249260264616251765139303685444243120260100841685262237842148860166520200023959824056516550606293875801900468232456078320991706269310888355918856156241190214327384308608330684192151127462917602182562302771575825804463898494331052035073147273249813437582675995729312702195695707001842234482375475746306233675058437516900774334681758156987021328507106461841541303248708385173298084263241999181550837161369449064701798788439573227690905755493317667823718040446681099103092752087876351506119779604133504732474595538956045091151228066081128782690834660685728734941321568636424622653645091608399973431221109662101062903408133808010981256136568804661226525172583628593001551249327161749857195017643573981814652354168743703051835459757956119690923622071479837615898193039482488875585547205710940325373970887253513329435797101614534920233483560318006961539452103250620521047273797800528127413325010360349364157638438953813506882227636529468929940110365967960483724685847921205629773298380722814664504474622988302180443140393631629776023014303565461897362413377056308175903488090876604788487717308112005043105969180636143169543900929161224576652665223684844587334563367989511664738337571735349024547055498566094012085485474324860435280028291652568919951087863162003689053094533424968053860983868436292050748848960223707591032677971389333914778611571953538607014863136364560126528082042248198363856299742666400420489583890576077752140215036203786163908207988847945386363629260767407134501899895416886986507296171832392682426749373403888796894378282918537382196125716038014276034597230332336341136196754338535677080651378334301648333919882052595857889078985766061811321575465030160081839810698127500155141892386845522730441952555211891098995537537754960680688752246606916439657919637970997859260099289762964450732579515900732595507449299365044697590974558273679957017066409308308732535678085421962098230483975915498059673029189557719199903498877059614022457848591535572368686687806359618419158804459978590092241850204837065809118188740244002358387241218162613438746071618637809139451541777183251035506209315083741705531957960606258150585371123070000418673748452081333903676921705790813887795155258994745726209693820913110543420038960492869444614913819563773424152050636552057178442950894964669216922960040763223280802309678908592457606885843541276881643996217615853307878403603274732181060939388834405661996042529998837183605988512388753369062191140804143483497238872590850694898177558975922481395193242998891060182271320758257434718264175486274060015833427971958601671800885456132805066017595957189208718035196884527316540261477336319794190629644547747620535142093489764905975139486457435538512346249129844706513670192670463588087371933573919739284757428040618154720564460454432849701670341231850993117665548207548104862461324576843303066471069949582083689136567465607784721816687899855805067052830551785529899908664374393004840795133461343915399732553557669567244645119832581299306551592455597540189143608674097005983483575368244512671054200933912663956008563989207008823955116286181919701201118303131895862540105424077006826455241521637862844175577190012164813147353674843687770105751512799978767266757238944394339036960016552184272453741301884525864873216824953532872596085929850270110569660996734247147665309219562049763103806367088421857367261449796857847717946229843366464790337146560267156900362578383211496162455959111946686464315711469974825861974922888750649287370960122224940468233561390148074169334154495125273579399875073463674013242692193984306837032924913325634179512061167145078738599308945493731084688651335538672413776871698371569713232216264148066244939211280357527319251834491300555298333089712107639617199738691335683298881657089739350780878656652920407465070568552163116152203059297142488875683134501879398625877971987709933665923033295404996114162137984598293740841156461063931441779017813656319318224186279311050522351348015815836407047519008686863211502332493746550220959252399499301558813148729108231914339692723650070396313367959430783721698582054002463765008412123902301119982451861079882858854496208627678324467321670853604786593567993061563488047767626719553572084728925672519813713428458984819938239418797760378188915163601778014405523067902145963136561376008677587191591168284078523460170083294150142102143221403749116016472385327768008113990517436430593547538456885737459180161257325046419583687140816896193168589933768767846329793997789409786940508386052193997218094183230537425673841070382505686793813049012694085416358203702646125376668821909339757977811648177451908454136668162969730373016999640116686335831875650849136664824124842309517362514821007807952666854060818163399719838265564348739139200166860927626284371214434627303040014086881881566350457654061771825220340255192802523853529194590069123304510646417145446893996468445270093787633433444185360773958556240771410819800190321240973462688109331004820517843861628249542605687169659625366791731644500653438710447609471374130876825473290590774022169363914356916330593893772137181620486748314497490329330597565945531933224864056067052692004797581306652283024691445751881715355202369044186046924816875267259655788919604960038128725952997517404310386324971210341503120629795174344927745463472965779825077237676034612433452702373069027835067617958929526304546685563377774606155940428613386678519960536115253589606475991597602243871352499457770752172431383401312830382962983676537750891012736158768377192936478755446617328398896788650977371133643379681950720565132915955341487273674240997793962100993349251556229633667051414520909501724828275087075895806609254486498494039878047646867335690143672638179708150048291633114716181503339192970866040178620319712229651642820577335691115092926305039629797744633334731110777274398601421776424501304841549625901865690607422291974009492871323633789359897104654838626377032222220883976836166092897939401679985219720753786426914220473749836767272084722517306926621796351136876274896006539061189863604424097315528616576229484531863374418071743527886225222366265959367997152057803093766793508363943100694430576706042677075981121196674619112923939311123495981466222811499615448607700470084129556313743910206398710524702165311795481762376238908918308882445159410609924733801224304802337399454811089399455239450061144463611808855832602080215381847340581001143327044532042385233059573335323102170207950495022281502834403589969119855334158368454704149605171650502398298686796166928342459578256474595004880964049496291276560296787857129866931112332136609497790326836288490974893785342364606940442998025268525642442949042658196430039686256271430246172748679122024366800753150238814095608793148452293208930553070419422437474894781498778817537646537052220842500456694511259598344046666277841327898850856371374412719926943653881131499353088455166312936498978753665307837643199646951430550260636992937449335156622818053315498341392571892292345156710502397173583221147249490677808931162026207591467587818279651962114165187174765262472731645935591038884411880547627037563497865705589280949006869482532951821764431554155020838998561255124662064636404334638515452376181894426717887542799846639395765730957337328925812048788108867791767919563859110098253054731089670481027869570674925291082715030179318021984339227279271723980982818308094294995714139136025561589173215831032982536422573521743765376559246981921661790522352677573100509281024559679450829038436386237486106417038077357548246031004130449902087955472985154310566534099108919058435337873563426848119599572906712417757888190800680285743358791675017778337527045774030615912889950355180436292361528886127841330866528939745530588348612033261234478718352313410034865386032960003427090397566492641926530158524977061240958240396543018838968767094215701387474545064621879490760909770747584344538515949087330022259462012674168147887777828774175331145311474857199845908907832750068952188512414195313272305937045903984302596326582128384866559514578132578651792865026305886819178929432694490965819474250742249676098288257439477460314079657389843489597110872583221650101487765515072743915715927550505939763125028948332418590485237265816481253965114735070517480874560182212902885250261276326078415785918204836030663473467683677194164993120411108255263904196763764705558759673829194606039113044777160810858321950889928353395927319737570313808316573344813837449387618828365153175058374760201249393855272630230487262668620955314147384943150991381068648005937403609984913490495097266228726545366260145434786766600958136533394232312270599484834411555164563876010095780547709726634084589574993758000914647001835630130630329304969711473630011793282770167939261053283896376244198038931413734855494524435644095965917733767866969204677246415564200950890429821344910666096338982578920757648737003713030684547319842440744424282387758529446271766434818244531988462993788965300558668421823248443489304273957429288679356410069496662383831771123783459873921932691913239247404751760292497236166254522684321007597047515750022815977520127007785462606660943005475614546438239307413562338742501309773810161747785167177642597930895929352382010026724526243972219988312285824314044433869374663662491239279999072164398519946484626082670814698590046833305026104654499599662327185797176388412360529113690973654827168216701517370188637501970897871817230208130759719378190169766695176116320983116751724149677451619660865013850622790805986294252455921108007695192224428777950631292946667839661042109280934685535494240683864948259922101134927023672955337023955985852109864616177020177003193602570136282209102626059272354990118058064785174540680881862588125414970109586007791160734264180276111708484046500248833479313250287117542059257822485124363151883313148453979412845010491428773310421027449527178279273808413372139369030508107503897427455761148330851747742539905861420597457204159758441252369554658650614896153751008688073055209311973860054724298647435062571060817290232669310756342327315068074696160835506940139368791665972850256387258688491960449110793764304495373967726578414150619092203744608129543195940659741553811486045389551840903094350842226267318495832655611357511532857317111064790216437617242237756981257030589591304888988481370789888473557937794449430391338072981599938769600229843624959691569644629267138957301180149821061039648812140107032838375215526693027123180424955036836581763708191692408867947458574768111401827616390282644899754705476394460984314117379014399962215305415196360959562270273584707173776941630692227354278887490005955257808424174703624472868896569337455290499524537522327307127363599964952421204809990198120684624490912359614990317040294977653088561286930611146883667014398920043407414093223552859202738616253641481845851048317364902781025137621894047613600391343037172291037122120801297345560004530583973653943914188797472356464233099315136152155234825510727550858875056429851535401437707889012746463637458801877347869445423105609504464908276607249292322328048415516913367225039261117593043421736276623626415028879025705181372603973026539375344158040056909448120176801504941217846039852810098565292094388590713753350497169046794328576557225111668622166822632167840491044839477964093732074643784276610885301145030274301796960596276528379386621119521756844799754408096819492859742321834420996996074543976070235821538149477762903106245319382144033206554789867348469263412949976103373488964592761959572430779583870244671179201289357315176841635512103552160798141802981743888131295996009102370996084943343788395834929462980466725360428773888537559930590511582522057448970431004381676245310538980984215744151274732352103089476788735973261136845128858701816381128330736626664754125826719983133875120433357824782721763170675806776591246887102166741694554240146093474837786860987691167352161454676996924634900704953170141754467729195411357532121880428538793955706832038622163622115835722661291982392227609130807974477293874916184822106495860733643490638068563224121873855133063493581450940529640055429903036560044171630346107026727616934257118344565454435427729125901988913735475157279848726222426138390614851915884582115369230024444170238453488579210369517751783381444351221950239640102637032612985045080102234388702077742295978403222791101346064730610064609484719220107467424416576926607982328448502197969048393126778048146369481577859624533578530276803592717392362341408104187229063735715818968868200681923379143905402992514146197158015566753159259193217663290419073589506953443122485568539494371801242900769552820901920691425427990228272204273871004475103751428748473757318405625502787937142644574043459615308365563424344985826205545210444531839970910057630845220624840922395867874993312989287683992434896644131129884311554367919855089714838977115122790918057597173792545221010293953175034192129458977769153924305560366993070776424990686614625111730142193089845837131389745812040545285197887485630205392105768996426565463288018960492487173825644612235311766561890377973783675093076680981987779229119648784883529482172350080195793145342716353169875922239710073505352920766771551668093437580297998521603568361790713449239948802834373972559921247876373370617199045074697824984862736078015043075773043711016823941292320139879768689307115012259066170393303360669064443898301676057197162175875955025946592792575523872950350818056876669626985873786381869160564598482350244579729723774567314623543340736236114051894368306397716429266645702021284622769509958772974663475346639442703094749794580437603692494249390667938519303724321519128493291296391227983690559830120596008432023361850724738704026406242394726548864286542924239473690842268781840412897348541872590956506694541306959835721850721546984533343866998936603143763941485890926179716210335410144386788809738669807475791599315145163776810983675812051572534837493395490340887319593029257625755013779889112498835726302629777970347467788550293337561931533488361198910795006634798348612545163598145223828501838770999804574060098083813980840326521809410030970787113598474061631066701970077663338586501286678757032998116001403546381210538479293222793309535162776991528696787482302473642230084120339407934696417279064132306984000125769280043233162689477914329079961896371761274898932585734399935524729217561074311431638545753633283876620849951211081765254501774892002495264993037978442370771989339186592322944096887211328062604254869144589211769921443656198138999831324344047066846549060318746600257316764048904081389563768442953794732292611316227986425758290543386922771846130199284292041691373333653570587391631446062471096733085127256455719207326540357607445648090724174328160431610724848319207145560542914000669521101270446388721843280644713541136761005173029207526434485174143282330592528981115200923672445024435014781715461694521764119840369238140737058578199257806612965070223057305996848807238298475177421392603907052805163228820288733851509883581549068987254284468023857805746112194004865893462877992387071796552538359320495621974479592725987893767050126477180855115489164712532310253861859596569559232288878428262336493080061805597764696890510844317597730214694186728205478170635954817210600033315552029063027790569096295303673281985204198849914623760402464922273452483409510332080784598617226753637589336583653691644133000640273330826296834600401382139507382351024447897623059130993996704319324125355536304479878010368747108866872892752854437948541266170232499593707095462059030418883372036795738872488016757012134224639197784283665669057463652852535914473611271338560729113947320847963525173083893895365982284608742066406591985346982076192356021090873872953808723230889610849338471409947881272762926161130413746257382326323816697776535712016703397032987689521412474791033618931336252519031799196840330784601096798734836367756149077459562520900057825101656998071458665628067909610684331243664566555611736236708727458753607735849853446912114622836265501547417971307084440279124410282175963169608315963945045029076356333766957047975269381494684672634714281251992786914894138213934289391723933249699626807991930549250754624356918723882650712333861618141197628742007589427845545067378473308292024929238493056753426219971053253332623150073980730699157301607681420249040752512297573228744716315268411297323646653492195106190238360981387573179120798307417634553320584859884968832375233802667067997388291123786246770915213019147156337818755376498071554668249854011831934965209136152913741758895345292214264039448285839544192185618878427629415085191121821436507317932386224682516385210821954979863459717585916526368069432370366775393894263328982571593434476293211638976609820204929875406426038553300429570494520095808110106674068402889514403019778441317047887494772733489932305836858633067787049669681727353054073995646968287135262080883572030220621203726657276494165306267184727843642213676206238826992970286263891897656779125029623983564623642130314857928525778985037840916082455196082523801730753589121220545784217372839726868042502249859935770289403307167613498848191075036598984622939680849123080071456611343013941997047486627252834075110876854464723971099799230564015691692163638655664045436655751197496068831381632907175079143286574128677959757770345705843684638423484418015373593255193988733708921881951111643996412877008893419774626942711741248206642567430684744145581605464949957960588218664176286968462021370212834639618664207245476478950095189830403187757110136315136862438156461173562446376421245892403339698215489714814620025983998512486889167327797362919184301366328857039468486107715572731319179693129682888222711962498553259121159470647601918064672196060021929692844133359069879180191663558424531370407773887287730215683013020219551573549218285603074530038014371098160303101876779683874838455993814976432857553340591341707505758770528908960671940750908919713325989281570272304822607106776246822431650190526146795815711521033621225062736200134887538695027913406706443633154234517609006533129313389669936267881096815581841349315603483456319182413433366397675387022569844362509922849527051145848778836293512621304942366640198446559506256913773676820173997245840452684316299547452679004847364589694595196399202752878641206545213407392443178173024322094074930488067058028640734961086254145264026613618761208718081855264963415094549133980277175930769811448943285299494413484433973094814191584101501785540035926283055357235025495553127283014819556375831169310726899321930137871819423051170230616397620854855056342002981948623659307383033412983593243960696148301435183776933517340311148499338046371309368780148213489160966631850317881317433100924679462292580036899440168379517385753275177492350214029430839703520113587302723161379447207714342061403691960207679679670844294572727799665517305519398832713319311618085695016336985941777963820879738196616664500333864413747195425529753469162197800741094282027086207298869790817115761658643948134268702939790714207920214898337799991313803016106789635045232174536743922129443964378863793157064741583773939651982676783266737804616603023428125182347144411831578143449871253488670155933676084730398705411740580623823909874984647534465612760787783800907338374664928738953375936882278633473075176768783944233733789648063236197251710720013361609348823993260524135118329442688112805845519499322810354238211826948980295201912538172404271784101687868763664562433415029312141553446960812331573122664047411172100379510338316290020553794171386655375320591013735775049696834047029619383666689820817456461386284300308382976453668355237127993610880535927924483512018132127701758550633580177288114058713855339459152089229567578522274841556018813777330329202204389597792351555087275751433034423850896835059713819086795740981458612658181059041027817564881706913222623633256268664667576877282484121029641797548845875785471952987966766951672311783080410684214698261489611798468965746163236875940729384773249945962375179149311195554776109290385310844998931120549965691103910281757240482352412869001245576655613931010148576289695097790887952768142729110835355549166227045781460873584261117655261781463726084690765292915439967263837713199675664710477965539891119471516323650362650148734801564426012315074594985464055572394723661532287754245998251516472891644965500316235711857580470837998307166048509191323744518668378219501499922665332831348897709535457285485012160648894412347158141815331774460224267259018633240297966161550579783065068889909245924610054272833774044285013632926729259678121063503239423452683183699618522195602027163329996802171861509456678166118368012828808076518278029104824170633332148984531934412323657048876330647454568198725271251155682085743013119249362486547445781960730895697715186009418098043214892036597917506247933979571550481026859073207958224422958132285705758951524302773954996063797381748707195309517825724595438885500161025762675490892608449695808768345996583107696497081570374308143876265691981202088787958952725522266324669437106901370503821744490116250526994219639765882130618634782725925843320609915179546880375286456476885097850221614432658214011790673670633760524788094227699640969600776515545700272566498338464373541935021431749691238729618036198466174018916690781352996354063651550835869239135843794969062867731337390380394882272240691651283272616963731332399195508755496528061464418730880980422798239962198502270683372131982509862484942319868761176809748034368742456363198212864244983594843879839936203446431841117067396022308745744857523738462850546256962961074138924494544429819063899636999143407129110156048406160832161876679540643681051916128452135214573073210366872119987271817353532279317388218196957083354905163685819009903244476630923746445093861478990205986255763766189830974511805643449921645713120373883544240418162444047862241095488744015691479736377270741649861317977008545540754027354515938878096842602344412396777829636610367961286135803932916552205908800918921523076507400004338784541971360210146708205510510490196831006306882048399519369596302996858131668806137700574198288216214022436634376735439823163928368666440345495499064508099803956538546591707311528264372187788203470642774639586376650873972765607065672320050274112833793630049294548971272436935561629511835875726992113863991864089115655453950153312856702494664232763593684227619230917902883164606074900311255955384936890904315330521645306076158961833570487147285420779227278709242622707835822489499313388221673613614684995324990008141166761857403991707116300888847415170374009266022901780289965222687200581486444478364442182595255341643884496197245144186042256934741235549158792162302912305745064911492962775254001355251989944204417551893488025245951054064146768188387446660710105894354247446523871385035298468340815000571022425377962560492700501118310071809550756909615457791180685235251771244503697986220833197241587960897678799650853943064159638286763190709076349126902303750989942135200948755709595135329297400387313494749170791885178700563269606625818425574989674119844835290196205832905045479816241942372309492480005070376493676883719586530468442039905484246840480934180979747191490382741696961459034492290549556533172490070996509851913692969389262532479882502884362380551322117812291012840592184818545935936925629250029012925390033924033934056344298063950454465327646667974612926689997890084928786268101472062809587283408219968528020044258140388093306860053630905183185673719579179951487567979804247428779142291800013724064778989936883807436629273723832144197298791905045307563020936757624235836128272586631443376505364180659567561075740532701012765891002208570333517530483795709372050074200375555951873602637839999664154384014682236740868998660255549839179789623738490763573820420430825833005161983778684300574743039470902494143175466821801179542413900105076073231006965989091634374675286135512411042327880428473670567295738504670988239089428577679698387214037210883830797446617884441294451269821344064590397984704464536142748162787003407803766410569407201806404531013427594785249411987508613142421097124187619865192887501793979415181707379140011213921191601087156065478593946878758183682000965020699956448320955813476436604888884736235290472955602581703546704103973920270634301106180834748150225536403339130647494338439779545397050793454083195361417209426553091538978175612926541372453505642863500200447932744877424777107174005549817326677665553708061583130198819074859912977842088690124229490111193604397708707272690486833918817099497547292057502874679678839985982507403215091396270918037324254732004475248664742323173735419134473434917945530273504997252167461267173904002669212087989838703942035108396768998310630155740529167918649690475398593680749860312129732926282306725382701126568485956665590104672503149307690521760587866759828410557777702243805923484730454289533154148057583626535765637963745373363874598986506595800550662457662701609883733136675886153457601191439095292215496149850557229074871427902500302022159501054768661536214005142742965565453072473040172598587301305286513226358670684252982907628838302586953123177265730218923130308559205066048541807921814042814615352703838320784989437141982050792752095701442489217617157708691785652837276353836371980211759596974035340795788547612706056594924938722957322287033364626191641864967608760680293524090255332834041696420106707512516148942668524546277888188393044095278180357250352748427016133970864597626994703266961185599888352814475638860859263690763597935498233480636744475738351265707786911412818974139183530451543364946488669050563780354505143131757110171511006391871806734997361809954954427734822750135326173010576784581215612827840354476310431745783560616530551218750571384457198981474922669125779015016866643111040370338894025488592225017695622968350819569359321028205347389668458804225925589194751005818456029976893964356665390776285268934795122684958633017033178585657268306903232643470626761834252218647506991267507951085763648653017138558574115350217353379373490475900326191377078931131458005901400435220388380526120577708536310722956166165730258925334235997575253736325478104837838691627045607198669406436537814221879790112861076577936985626511846199714674207954542191602953596915886263905500084833992694285364588996525641678980004246423283185789874680843472821294466787442616800082817973143391053771971390372042072148947550055524799389332415916842225290113287280726521293685628148925015949320521169323430736087609217259661903224882743636738962957582211464834181134848102884874343784900040392865022925666082188908225751197443790616036820913883953159752580444680605978829982667750260700766953143343541693581941327690605399847744541291674008352390132174328837072334952631853152224620648117163301440236840441729993157176291273170453665026952167913666025819936709374116965165105042664125826640337058508832378887687606245268652398523584244755156254948280932854238024271317439098784634759429172358855551387146687090262108331855807811570149002724586615081416479737102804420944352660396454721389809342156277487561135346113352143639859970923409425411826400881100774101652624533781399684221413183809349971418538444493256938409104883280874777100364330743931138504574128067611757393480551865722885582781756598314257438606962529200535756949169603177028902295031395623676415688351881036281851529995645419490070354316463139289754186612405076736139913692097991365393083208968739640683274500279421529452770818961667364391840239512326631141527620424840285680434424655406883249565656248670970862139728578258435909548536170728548248745820670182827501096862956240060982978546832644708533445412732601284931194157588918916436483944722193509565592525497300937686581003393933677530755147028287782454934018928283612234824592898277897255245741200977247484542470413366669291179902319796765958015879512423388843957805321696625065663415009572479352712833148978062308956070355569678352625666809477093722060400664284593634563994321522940326215999152752932282144206281028617876762997251640365306496720869522308004108816274732870862382290414347393339632781560334263850447100284949126895811913243537806731142387866284274401211457275819006387849576754336277985882556284141651102572315260151059461779728681535021195192488297341516596199580678198269039088547088798108507534076856578269468288353069937438264811074703837775209042073484807161979927470706804017899014927483317931336535237600695485658820038662180745345846294742135960968344985745716724783010557807747409504891802049057246402480118739448008990805927062015918375150289362689834396745571643631488697951514355118971225036712094065942988492470614597377234513222091324459307806006455795342071094933676193799604383009351870372894217234212582970698507042974425363012285006151183846498577054974814439194726440800743345622960201468278050256718682394591297416403996421796288247134805910214724986483241970529729904773707766531493502560016384143374560130092912431810503444517554343015880938883567757858577710408986494523017773226294031198055107635388792565336841657987119660494383164331662096500863653726859678003843387801715155222585561169814741014349920752665354473855072719389775866032753350902403175165516958600352890079659985561284370212562198547859501948192571068330455561142597784475928222265434032423769698947460773794686499542808349221784310685870606282083778823607102821695317132900067508071205064838703782368243435176891964360083707456366053377465665008086039519662770864308472484947945795384305960034714626336717437538652639221143361478526914094796185174049918345113594604080340777257322339012543491353110778582175427970279526866151176674799625375353918444860510548907473965496469117818711722130912990948578425700990329913504888969065415790564265147797658578000598261284421305914730415982856123288814633106071980688445041802928961300055199723450690459637509526006184768227301839990108352553594731370287667015557237166222350067321097349415367756781694128146274982510067606299489768409036961654335813958753495482045019505103793807568700039464737163656486047897158856212712751082527951296158190357082521645169281163436413925465084192351815349208778085111303181652225607148979332665768928892492396970563398653057858804483747054526884168928756222753795860566699842123445950375498510362830723738663338564120019468339196337062901382427539349218697466248936763779783310438386554257943397805886675780345962670713500895895048871968474659713128933665364354323551737411282701843625638374825901033546289557489487422080005815957162437498204886216470838952239634644291120507536977549133763107885128244846189656927629425313476951937564824208765677033215004954424668946015625858956709421431259479226348496264693426172004887872413545260372503843787907748470832829222149090901318611828706918151691832272349747003418257626697588251681525615316946436806684633825567092528727747714735792531001898876304781575001090155710877739412774695981241146638204448674304610495401625006064425442548839290566863714225776871745155304320713382127388065183247126947927486215154768410687149718203035095160642063509426071431326739540422690805127602853473930415422749918948244196899316195261513195528246648362326958889387508578833756793612356829808482074128923462100669942726676428887104735784524926065202397322981982146732490891737719300467526830625258067755318109469198816331915103603545949999031878099408757275740700869172549212931490313460828129593932515390905832647402352965795103271586101600264572695143203971580872347853920728189666994372297053648708673405984730576392712646495244648510917282197967943380302853455750741936752823146245329247891672317190049811885077123311524248474929898176733385701675129277220263746892986444356504434878653654438396055942145962627078585803458548116452017841551339519657192800315392475778582285448286615416331613147134124735177685131318467492499317105453087622725829257091563219330437248310901827848723073513294713355688178646175660570284589906410563735134004304838687624599390006365658059219754517569545908269484243307873596437739384021104786359149365368925461936914089854848952073167610348556933421480164628572678356470422804180850536957710144973303389718971402857731524912950729605976745256468242922532197266545135546230478816627187567440754602408177420264213267815851238482049707335932370424863372906576431174062650187039672639358283734275064781462064255878363673755014178480223138397744824754838487362873830327838132993319255438947020165293989555229919933040354406210129217015076398506226755180043666315292198701373794200060289538199006933781141617544986378812188688552676333118604022050203901113817946529663061166981956039852878920271612134320839941169295422078769576265543503420568314147888235491778918989068364873827074431832862824755242501981757516257730572879892862649995239147242489841160684335737695947819117736742883881842516846742492076849958449504350812041446060585795664678090931451519158246316537424575600938348320321266357669063238968629721288913941220750239323076822452426309428561569561259585068048000078018593176566819216444189259647785577707507873848211169250248050223043343568384250369781166089925208579242304960007970910999365395907732039006452972555566858037529781867216358324632195736839170604464256484184490348093803572304447538299057150061348159218124444804468936471478740654486289792742849351987776545264061631631106742349981653366661002599536332367695256694727789708196289793109884258371876311602883997055820862672508260694129805192046279191125680916614852445700552684019278428628513016524514043380577611074343449725732566582916627139942404364168373223064847384537884714258243076232788770103950769862779370361824020523055663121741262702989321743397926033614779123833493946373351951163721807262183275792444822971606906671288728748156847147632039629370292230562522891330974911293925685969011006148353279382824976027802814860891362750764275989104850378793022327913853109366642937628046286071224695747776344644575783988111914043502615409682755498066985217558916454702465961990279035028418716291075854996769283403022678871086367332364511733951015897215859962804469660273706074789283902264267657608565021208390639825316004968347227246594141341871420647440942187791370329858531373255942787547683625374056537684735446804179770208850284301885211090298695299088774789652062259301257512974528502569173879308691534899103324465325286040897547189614579876324718232142210307011136468622100441694327123320541163734320792348644452643576938265844197244259547428549785754795880225754127141667397374002241596733967633376388600574036541268480524498946391767513756530479241326447475725532243380487783579008984528374685242598693952003950152546623237243284285477566736216873318111318588008337996596310887244156309245364769819732389361384680751990728730749591215432937341556091724747479148376122870600407568687869508455425467568011471565898445481014450139118296088991852773296704689024004798666768391710703817693071945091167444991643349965657293046560734451406790805873840505298211939834893597738011442733081496782330562898000128233162582302107527285795467372982889698884858648188854963126721935634447143131620904523046616881857952289026219041711923847174102835407873922289381646340376701644487687036256903268373457472307357859293384320618462071601102535435852330710648524805372623323200434755114659464154033418987162504460853607637109248565143085702491054009773139725488546313127054092458996145872257597110210890739469599028255238446592864349708455972216066115917616613429892588804990507844117129355404463233027757795464172960482473757383684507292647148625940032700458881707920091207915046412719652514065665600600853491054840788999270362173151431910415930903001750742829079139583309912438290378116229751253883564757373988736755828566812282617629367360220983846472414126563174547484383322532779676591883729469255445454644525510314623449301354938354095895724685806658680509174791756231087778445464051319560033873568556095332275322791916196625462147967757706007365548170221344592683483082944591846564487667606651043377473433802965138373703801547449270531946924336738984420296684357565247856513681198913523070318751200896505210002030332147313722703622233636502625994924884133625757576582911880650376759028448951679602051334176066529770573234887673507378100218501608746644470076542903114911136966728715060881444647306036091636909006030333918799063707989568487265807351722392145744858124856857810817188521339246870826635297668071350627080435622287095485431147463376410901637951219516436930628965769529772624723606973137502493353001372650125621832973150469686856151340613192082599915394708367758983864746634671185545120411964312876838472468885714766061780875296874955797323468349832775507725820396075492999109868985464756101444877713428312981360731558539934902783368104924141767881953738709001065612269548975431112391878932686718059687178463686682078169316748753318467941030469347020754338881445611702999135836117805763467475548597579449902165175656845450673535289200242618203240062553417210322606768940047181520320487400088195557505934155437887513198727909988401475025251902174460583212576236248756899743331744971919334220459606201362966339252515172132177961072818709788224266857793110086094730290699112317152425307665642414380269711311845027269642226913529303963753943851665406952796884515472211853349119580382889839255743272664182563340011000234721797516031357508466909846177798079976978157688084569567840375505541874016905842768723558804272807682051674428790603381002405324779482582025835808480536751521162170298982532956210473422430991039801086424385384855745405636115156409501464775658560628114525416311173446261358095769621313292398410598754098369817388831252887332812525250070948580299004683650618282140976217525877746021688611522978763271084228780801268008366836917555238637270688831656952424540402763770200642892544996409396670998918994098511411738591257273111952955584654360641220660385252424283890169240700635917440019538768108469639420021627982033170713129288392140602234902703467036706782495380604540016884852388059741452058259118762773947567173990843003414332335930527709032397906731681915791628666958214199171642819558859635756476523681728561204089053037985269639767010833904986539770857877300702613772469931056210304540204651215556251286896485841300044169576880482277534748886208520979771465322389281284537567873625877908437183391817668463873575791092507519187264604386650197247426235611101151774261949191352715568672382791561457562414300945248993282021725735632508096448010852711427051496557817590121750554636040260743340334116018866091831509881200165719674496554052157059903257515270148373954127538156749754034435101643424729361100982090206598272736384886339588278116781167371596621785017974071675115844056943919643576474209263526740597667967670147439876061888431937858540731663646585267837148259077670852948753893988192291793178019571565222216008232583307798565330422611606744397250074730930814955403093075663657262069482510750837382593127908747802527635077739240932445710538591881988724823474524995503379090852805288977785575787122725127816309865162321295574275001097695802085183501135030157246285029784922187884099018319077364204218223045871599226554793198255525577106866143440201071574612929827031046156367992146886983837438646099046153013298517787837863331445611952881177722497647038973312384792488888455120024813171222765484678401974099695653126270805492653134208460605043412105394274562120181537582040945661564850333486378461936839850315301716879212553406033689785297536407800863134118429425258836738907601050404417381384065815655630593066782203170064527893070270120631344778031985607478870955840372041244038075624869429996322888743533271180673253009423586584541945742404807116726377433731912514542550478767828384329910570950043960960601235824574740778194016493960053609839809431215169326043067757862427917682809742425542921002223419072040044127933563149630591858386525532711273954804479152155634641568117350585900439295660815392935212768071584718707250624667032490292359959979877854822467468146473781318705212978078489027625080416698395979966914268593653268530798614030844590862121297505911372789389869841220610813575184839027812673415679671268664451361305065455778889643969540071004278709181477510370963392722341198648095935223608065787498830022663754130588801574563880879926659287075860786688698182746486712302809521569885374279023364779853278878863433727505593049752935401497683586067643051851361210637536326953101560651338632209780468722908399303079638418042858705879487480359572734605498914658401916466660627044264203109819665405320528184356441629808416459864050079840688551560336536254806586903148963424203372693184594946641234786282652037962376093538751767250138977203397272584275186046675886910186390365395733219605909688621477307329247427978936184906840343499599652626266968791971631846307956307277036297560504420905603730322002342189780750053361340282966866294501756557089269309391015285651385271169581171214416517423399919506363968805256003023771205891657258473100879183855386259670469057259181827409401306441968306242278841107732429344718818115635115283149576667491222133598343772167162670854927686875681835279891091003790492636127639820100042718162422872674350593247759988641709726480754662086012345864267476856152697219861392778766683039813519439412623830210704271020510369135924108001992677506886605718681169941825453800723395209059957966842575923399727414395375208866748152432250181873787911030090619787908931636149563680478964407839725569828457657131363558836861555660211723284241266809407359704264235843039990873724689418083421868504552453073695885546418854889275885537567809978326290575135359399965015470070126438088526398280094989725223221090246774131971082768844886183131692607460318295874640479313350864867600957461292075844223258988501770556854815272613643564470121687874007662757857910481178912440988649561656900044143261267780405770622694034598796339135137668334815782423328054197688898439043035694569543288387944582274814923560213915162213315184163263849405795223557197162059271238111258610286412523086229517907464487939102234339866165485408713693543629784014342425783153966947931324084671108141693017648823372506468510359446130550464725078368208661385695227122389720544995168939144623149299531850826735996431252966124676063202676900386069756363411878157681572747370922733392033726875053849416720585530105315848985521441198867923296703813816515097915740790974540038027181155260021269772155661965752347093104665602746285756718091072454576328527500978344498299956338265462335085990278646337247386848492755725865272637097024323240275757754782481221302212445887780827624258093068167403281701264485455695464210450450129365257862730061538275847997163509361583364227100973749251681831406774741563132353391643445580285403999967860107658337971338566382511342356743118166919734394965443112496441751186869643137639815399586470154921818637082917621905582216373983108524853002728043583545296024980309522841241898783198163574629196742416773488259001213016293570410227135991576629807837234853653996570355126174431948075824077854561782307887962570370287467064568090123434905323713591334293736584572352224454055720502071343122866276354508483787047975471618638293214836007139773552984709485872841192040156511134417805923257775349302548726564028249006974221935266046572351459623561494445680545920954825533314390096604479247597618399912136379276724514356833902513100624253865523603113416527625799203162104292289940291443816935171397011211335703354468234739937756145231430775155375770079178134255069170551271511900542202930575660856749947106638284257112390864324890289857408489367803941173153745048584534192122186277982697034193693663336646454263822947712671388711554287926316546040864545110116957942396889063993016236727975142727084562429205808166505117718225317417927125441498232462014578844111264689622498699470110518748067620943942361865006932967719504356638209033630840745924247696610220877376077469324061364651448432861354047033338816843350812402547361918770741340686323329725035454015069576139146094093599728293557786298544956092570472121969867797503213806668950062352022292204643624790717090562345060427853825140064175149089513277760151389989886652307628455304732769127884258300887057738337671001450532715620661151011510607009794940380473451136753613497740908983396852671386744188558967737767646391142130109893027489421383170930763162693092712871425580074408864920064611023261645364961560886170460102614462260706973833772848070550834549183553553375687353229112102241598250695710360875162105524969505605318380461844579797822482133687538549165930756498370150984849526294907425005418521748952111899782450585445723266339085153420594544453337308657255071215620733787128323904227342703003301879559927887967438709178205438968804537170462750053639629664825740462695638385279194125430437632005665977266667289745081070855900303104963376531811571782597220452135401421764142823560347201227910708884731601909539689910118572473740252793972516125728858948007663360841620936217961110499703875413591927465409047010634698081408744794212210589506609390758280676182413790964868587712107165570983998425097383413350352747694719202715572286686420982526953409744574675733676748460227646381500430195198258470559083995166951712425700189768472707461838316334592884673352334640727948866524838147354178512185022067798446423420437481166379282150473645209713441954301665536853779886454614839704045738128031240779442223433295934353971087549056325537452284256431054896825460938335697679598028277464614970795103520747203869564132607052684085575227879489544481775201302178416484136286160456320630821232772908261977923911959764728403908749438766296708982647847338951415343386456749186387609162250681963398615258782762542173238436347975933775201552536091016796908273342801588750283939895378028031325217289155955595755962742450433621074327706151550990452588357279483031153200144124547560301950977456395989872808488664689956407648375942027970315733990432871015387014395078436108315363205801185971680382879083390785598816004277282492861680549958446413546773823649664956032275559795836467705321446931511564304161082453821231940038764589013252430689854459058213879247870678119718643917802812274706141929112773207847608138441488570366061892625337030547211413834323273845415261926326465015888749563722785562424095286450961336669319684502374425314493222810540818664701445575576198330807070008877359163854967046429873265760892111183702651933857985898213381150643224823390235118300949086571273313963975749867435039264410284597524398773360467810524058761710230890225640965905555843294007757677068574587538610026450712409375894242653103577773487561116684446552135326994806688285663707166212382811016753566366505477639181140595194509913684218590452173722896348312197039095757974898211150943820545218027219149379379539119759792741865468140072898867341270821819115683672618014110903454127000405649968406726135592156860627780283823297499593240916958438879485152894862409557242354382619435150298228627583213275614167249667751470557379765325640466867386326793865157182898000198650351219743988728387157553676393667328320400826785848992482492612572496991120844429719447495081749307294444145394727638247772365677485715111197263175159497349432832820430186028318446589109160606855463999641988140653082310459025495517863715066030959888772206870930869009101832856015616048899055493697800175693916456421599494277505686513843476084212912435164054395739864867332272002751459621338973885083204166183694703480644306870867902836639073710869375416172506517817785176853718547179195484574277040455504798067726024060659442825447458827539820924490933576936573811234189976368508242994538442952869572894628540458106490228033607421163430410464970210893211255861507740821311784227949324821178535984108506546763743727607956048743258825066209759426577724466821664572904762863406376148200846659662948608050276911770354398016939812797137993137630882451831682853055959712286459638410443393434007046217235609011740098890483715221861117843140964028788220859577751185090072327179018802695150262464442781527932898003020533173204258156401857648080944308852172051909224763964153155912181123122211775698026433292532778360446404113266118082890725019402582652426096051225326032284067859948620149745563868505017072369794704721796750531386794288699970477350562608259247318835278217540086582452476280966883672235716730825140585227624052976872518659804091763942679078854426270522266641726791575524857791502028040907324301038630144613950429959153581673357928094599373786721780178191904447165890130681259757662732716379013559988062648064508515105862488517328481474859403302790539778068342325728309946956618534424703632229183189682959698105270087625484721733745993957881186360762991340958545329166321251688835267885251590988030895014201835315047389838262460663895496141410136349736729817059001293702937907691030667004789973765218578246776683536407879064260976905064091005565363369587919084213895522701356679436073272724271021581290913321407991160862270173716546606198648272185106156219501646598595372171848578128477372863978701804009430245390881738531022868288867444284361598133989734794951815471157257716889173860051365342947390330528282666415651569942232252207297285673127098017323083380161041382072201383043159365516565924357653545142980878556864451195652477288141743033470464188928758628477370654584759254557318708791859918337012383230753526528528567850405634529550824697841429853049525572575116477068718544760321110574506579808071746058547469989833989762370553981230160509447853905726569574975354158343156247337720903970425596046125257971513042071012529846037724499832925160542956823709967597484836366952028673786969561691435420581400835211762172266870602543322180987359687377158132150452358000114415451635557773972494985399070050247462633789864886219342916409505865038432416772043605774773192110916855048201933779712647474044774774234742828512995830299603057497301422886321491224125602387734782974920976662639642801385306412041161179234050035782426347475236436734807732011664158964792965155731378355602691384909046887665628193941489596884384674322206109137925503606104472710682408452958152998501983957431601053863283647391400488961110046126050183283971710979383449755553471789428017932490727159596832999120233373969530491697431267277630174788271293339422182317911585642338871766598317952582235979097201436995604281286172228551855466441256740102592669769082746771469340800023663751646333414852843079948153291126037416897006746023990617036460339357812394724698983129794058213222632467413869185307825763052473324168303909991096202290196414345577701819164226159725365634490692149362104369405465963778955123815583004028039170059226121400401951302388959241314276960988000490035521233147263591910833671991410699660727743345335786373577833375966200005575706159207094013624020507627417944521696893671119346892527527372785634282184548666487575986500204308321859814961226628994228803081284604843405039597620304805804328373745627232517608038844382192703378596275848339759347808249640573177944102139102618485027503064750878905508546798300773323072097338654813551160329812929212328040864325393079170338204591398446077555172463500558974612741194153247811298965778199186038099203948686810221022426212096680411584442674432517361065866722223325079767031730801711043936920286799826773803874437519513070299196404080912466995836906603473833955601063586218567969516393989281429984318040016858865708272850776836965499134694011447919010574351653700887074514796212835082258572833742474568594622217848916055598700414204232666331157296498237009451744282270159132472017974751432375434244798900540409812084398522598951410196190969598966633501476771894692510893340422754929948667976411995586739127290280247976004231206082425709822214859086479610273893080416833119539950361668043779695512445643421088873540539329011240568963116188146818532771096104383805960408467342043248989757530806868767606193365983558042346382284113657464193088727040004498405080225841763048654780628513176063010672811263265911986892347092246652026896960217836928113404375396452788398473485140798562707308891026600178330421615908643158229762419534760092608293119934302159011897730874034494799235369461639880559592298986797527951043552357132562829699435854319672415249634977128518738890707833587033541693811245941118687875139135825501065694984519783916830920837151368490308797042921113996106451589441819110430169712973200450612636508565143056539493985511478630476333830498304972178651282816805510069626733507601020330726642649164963022421655620096556783136872263121441221469384650802998882512168986279509268212663845894134444242248258104534520253531317586738207113423232319961267606717180197953694928651742941692342956819116170588204682421509819018333377301222123562197892799780299068367712058476378372724276846434699524074931203076219740928411746867980480793418485478373413197645572678554887344926636219034192248006506682775686822086010179300419235532899212033703784094147457360158142387364470594999886386828694936871844038443859767464860713171593034438093075510543787531038590831011217531530666261731026286862656820078599177418930401415914597949445734742746934307645532440189283947210850211163398611811041507069959854816752663952758311837535273776092920641771575144710650773895788163409468513643324031718801947447778473898435294652291292880610723187967316102221747517935674208761982500575629299089569723281608496082490596201036984843792843336538866285517947930112051646193544858889738784014482718431831679989147785086134818801243412195241387783216808407475627099357223945614982345616175500712139201623450924895577883515827013744026424276208937547237606901055360093007275288929583917126204066721797347005112438225522447476940543152169003310225159346877392806940270183378962222989528073905787606011732389535646568246046365728982014044463076808533430091480554485190587584759975850283964468739756855997987003257058393199776960987267302526606566057242734153304686160633836956434435711472151334441375668943686523150800379961649630103371135591097251769410078461598815750115530960644396370058503031593114668101895692187305504747494280391850263053839203271285641997741160705326514480995834453713379117768379944702624669672655366226531934246797632717590205358527504683033446956017614367669992510777625420000381557780394920386943961742113867935941846392160429179480634425789719159077120946822954649409813748448616109534623386552712985530489488998399272264976266972637737392497070675855436297365013611536707914086058226265863146433404868802557754347222276523607476785547168957659043885886605647817765482876819512259509167153973299436700842149793695359475262509457329477507847045062653960669740385716586915362463046127620763909499074016393295922066945143760748468338415687527098752341425569088067363269610842393791503007567893964267834514593355516261444961129997692615869348863492126314832905853931319424199783861910165412075055173708389585788241738844841671077892881125103307109675990946375616436486363885812769453348762692572013877850534182002072140656552127131431877811437374760564619550791656526816261432768134237347534629774742945486932270595788944329382712723271875552928225500246372691877637519499826644601958822577514509427823926038491635153005287317104510066636266466102614595491516825168528956431496675183831827751327766551081727679151328174985375634319665678880286236847043336741111772306129296253576471094444773909349531208966517124918297753241534600765495261840921375193747942207760041741272618233495012978068621823054396968887061576484522818888519683455797402955617814792345640591258844586037296340287671117893798716594264064590401780126782006580073491328527681118486370040670696234618117462899952715730775553744860918889296737386946073959452025387352896323169192892793609013280830976732187831063431971577063173456663673878527056775396456599429173987083852196790463375597438564068157333190503026059789823425162055180813092064500934001507098528423313149996803061770950361347375596523308548544966587938448002265383254647996786412126193406100881675805893983456708195374310816752435144640327538543601244343537635761887285641860249317757964617377992684772129567697394668460883856364580262913591818824203341409510080784386356542491474009457099698192752702414916423672549626221473481158139238098824651932681189048367546182231103378083387048471410877510504859068549352464870959315951204576855768320133066409946563971158091931327018907500649604042463238603388981533842725073553795008054945453999410389372477105233451746581735602483422514450348500365059417605246103024073515508264092399471464842135190812777586882963055876651497240415655318213202322443074296344419143317147960548414063190330910677927623452202000426439863158818620266537511208467814102974051818855951552959671192648204964082565029921712436203778790385075788613085584017692147776782580460720784177564426875883599715532071343339437540220479840135927695655145485116864764667305609726704856118415730932591321318235703605957841133839780156256861240585059115232049735473443309336087502226040030645700186236628487858925010747647928928303960866568841646247690823693503635897764192595138172913948044012241315980163784995961592443607730422732658528235555240152040769828064850922377384723647880929473518823407829515407708642492243419829691506470885856735817151704769800803768605854435392936442548424193951674735189801764372092945787470841932030091972764427166609511136520818923185800925329003792140404937200286142376114618569791843220160441085500613133701234477763586194717879698314236268477034380819096440379028169547442892359011675523584822023695703772447139066191963546170343758486348778410751761096958320546655923848446146090061108030432831380201261399768429855546816019688256509266565175451336774425569598702514481747148329588437280675527960307894778958410172101190836677338877575532869934948586592109599846805933687980832526364783968270985303606273659260899728473032040101867381606603567951121652022710172567418587724291752742762631361873860007200669453159679731973444329696628557067095418643420342856045935441512741187315371289790491795060867608447015179426503055163519886839309325537157322454430214167265162782489827728522311563527341364966040906272869017412335306267298540118727240073993019527099411794508707564053063382635598021329256820190825897544940459113655554715148486730519629060088114339623770091468279880245533153867512731233694973098884862133827649695539058595587181674343162810686552782678767534485297214412988696462576580344398486996444553166565395223284206811408100272323674633785048554506840852999570101564884792327186894269055699242524064149209687721404761055921031898555224531234625605085258871123860679477912677345179920774280665932760699451237661062491875468952625198546371096492781923539793816875614174830180797733195098744778357306034279908943616821129344312935562320406456325617074065624719928993384519747203861418560461120187995798379612668628778997438860689223388264462599691137723775765011173332287658618401602839518522266734519254835223899662634378702675446937932059698856525893916858727759535061828005741520124945788078780055866412351894486268481483107198454285234159957179739200446384793756271941606656378831592147463628676871721819081024428252628922797171873049759412445743422748519898223943616488149552580619792587398717901655875764766116636352909081483422764050860795062716263127408265731462786502049391308001211933238340751335706511035993531172989140254145872291138174024368631677190675229310834446362591976316038745563533893932466669109130176288916252177600417998124910760373093459093932836909126612992412226816182729101209513598284758901282540107912946190215146892972951465643426422721753101480533420147747121693686775340016249957067036793981575619340376882915331875278052891164291705117435373379948253882016718187613008734440752740203451608367137420009887221156343343796660152004060714660677793701023897694164661462347099881885974361629197099580093363720696588513271933454809633606717884274767280246780166939615531393751436537709589842082371737269234335714478684822794236232125690250599333344096505963115241857991782716296974058469659416557017783849756791137866166478878173361119758129411542652200125146808309311094454239368227763820614748899110077485459954243582250197586186869021786122594504333743408179600012710396010546244443258561074431368924715033779027477474578464739497338249204472078412217578277926392568623079373434278161933438535381684061988330488582410848710611422114035159582004188003578234695889001751337913975077671685669280006113253831863395419883546625406342997035358952160125220302962865288801405763472184267825289085569982270472216938029195944806022759465224793385357117651339990202709509292925314260319558135639273732541704974822916086474267962915639443487706754665464346888407602904041214012090180751861020268755220630346918516745218781836404312069556405296770269014795857033665210658771285606022193520962565448503281281858752325898134750915759316436362593865412142677267651022854013650891171296809840525079713846601971476164801209128302528202503689756284598503780096029363964062320470151937418106802474989598876323423702265740563245975598950561243295648123138556939627067737588811211861968795253332488976165364251918072738547983089078391592526443294128802733235106249391908108460975038202184917581150011400446711213756012092562405727683198288531265367708092721859295960855993683362465905037068358515234407170745807948289722753566841328895013566741391456671988125935507697157591415193049074906955805551700102658594875722818760091371888864687563927003942442179188724532568245345618758927906180301850028299559423660146554977655293243348902622503702702201538868819785048149555654499022768129300097266697877638234929013337324233110132884588688640137887260434831172247771239375649805683229651960668449263367793179076939162926903066034416625178420544750949686030430362165907035685955432298865899931395835716794912576300470812719661677451039942105045549474122880176369852372631016883164791540802313478000579939072728540019431989228325818190173143003859819035110256846785124241480425623866213029569371266040975092450177279124887217811553980494133635884776080015275300460348737775380751292739079734868150252810286230247855326736197333524993339516725310052049258421378573284068283117871228784581082751452596428801998577139874642264213509740830368605710209153924430520307214999345056916708899415109873960738880877684900097372220539590934834856307841299441885671995760797650468579487272631849667265223111954128558169034245194558080080425556074826068384782754455604989529817387737316357040197343866576130844036747523201804653341663447493175566096035579994863688894023827739146497608575607375274824713226501862261337642384611208348302788223147276927746816755877599627546966255089943863639019519664942047891375883285413468470596511610105289146432112303433238498730757397518343475688985162639790249947855559291851888922256302967376498714280531278351392380843736497934615486440428599206834975688118820092100929452006964514039061916412460374111120117337817508857161821355567521507622212314588197635130680095959538757125700867490241958524217632298909148733287312738511796247041987642620036336872360157432648742192857749947638304795986152145597473779341036239171616333581724218634297470267181396355492972461613564821787505374710315886049369654264659674120206055422809802340160116002147304206662744977058035906703459621451695877734610977519898528670430389172558359527682771732376361370313541564536004614047117687896354440743677524628238983177213912091304542559565349444687506799355979794976276142759495057872786366507491544793270877342974659573331143835483161638877261210379614537764684321538780765703236769505841267139853897221784850509657591383042879817919221901484132873401472906579655241512823874238571736149774359921281121861085483423160062043719112747928920016901580594564981209310664728136676958509544325255857491979043245260022322330548058479073438397913836202192501448689052205399034353613547059035864881959226656587696611358747363960722785257307155567348191694898321822282934841559665926701473027874835028765272238622941950237920075120011097565083702146607826480439455663668800604749492672393925299131521326000989863706123594589596569040179279496474919220455746185488402593491465360361085741576829239765738609945956311972402318176799282998686091607587411633537479369319473985505984378340057571720811618684813818709237795535063477729590257779424738480110479849849669267487928439332108008280121357910909029127815101237790570064857966233385284350482016767601666660479160508262563076288501080151850796278740339630924830703624066022830665270979463868075302277380969412817572698094342447009746138369136209337111177004493381412964638969496250775309321951990242094203863133996684972011811365449186700364563276746226988354292487066311902154749872531569054468717367025137648088179026092435717703265882884833374757399245862195226460102607015854332558425091008594918985964977578804414963545708773794499509775585980059062719749471391416509762796582433268219223246780122450421805324623996176835859331673612832722199401951352967056850846183356765888964878567810782795013927721684796940822808448908184386063913724014782095322968932954056077958856667972616113939491349516057554320181259409363873466648483686030188779064404009446447247851443893303364990693708958068044790887687811379964111741594964751646326047353618962546463717217558960523326332387159634804561821774461221548715744219430232762465557168571552855875823924727807251547925557503757826043227255327157680492712022120440150699661560438706380800307399939795555486546557828867400624077407897518211499355671574639372891815212109793909116164063390792665784692876631543139183887073406513396016274522555355483432080799975000370703254705725487877337813132502260076289678008718867464370587593782246385615171979112844399932544339228684211228933878962978601918765468766616102577594232746451709615328097549880995341024061636815442073430281292873616846307157335316924774564588832253400521241587981073926494917977994298601819372493935847273866156180455648234902240194021973663276933382159747100845821986558931741425086413885729691584952313081975366145544310886810417801836949468149623570841311749037598199962227004885017002380857966900131407098373929146352231429702427238033248409291424557679006477009662220505562694141878626765104559555862998150167734758981789374352787436466568683452198211267668144242230059663784911665749823072017926247296797904541221174691436966044147407765427925988711211888000594734713955274555540748208844201157403611425986508954267003680380130770735376198073076433598143654454154974631768369790362791104206790760245627725271675582737301979570491316789332806842369283405170951983170291376408272191854569718535946840571527523102900767549952402503579737377506752041576522834946759627936527794589644625632920087564596291942209602999703338937274005314815417655882555519240059024527639899628311013370328364469095071181348422615591802814683488807245025447864906634289210820874342328699358737328576820406216531843038007004083732177658170482323568854662830466271639815377321747134084981496299457889641168772347067499021140974325472102399356274410920649178106653655059006343634459962513690003862193939331878118005573335085821097494549117640151417328799028061357202886482146684144005417977487141428564686491325881638005439448195924072500208319345175160417199387081715169033965349643779443354656060029654642965246401611787714810270263490278645024108434680318844286702550669591020729050256782987823565594697095548515811141617165430547881298942832099894635779215228461633554485552939347920732459667561333576245200336948427813285777749105528699941025459296276682985100526689549354554217810165535792608303852116459087221898080561041107452558075503563412532713175706478572532734062990340796876973699595308872366104870734054470556939766869844212867050413924229004719235333290427352214125787988238522999477631919676096975762930074244878636400028625557815507219863030402845306503095382202593322924357877417963971393364215692302274587510232554915628407851679130652155379885097224768893812849605405631693595758226586256710286505004576746601912860381440848142510302445072590465103171375953391259471459875460482675906328959457303691581490105219964351855311942042870121598758401964718545293172157132530240160554396246008675507264327097170844808475329449774151869685484389375257805687573160010773420145323836680953504646144488835050918713044707219527640934084817134352164470672718224846075752829598425273802259436013297082891614354991186802191934533944805154696965681229332133875001896450628380050270504250797418232244826659578698668897250477402500440113970672087398236112961407523902342232183733593204112471482436916010972319031739861639352359045545296708774286216943431822096898188162948019108849691096005444404689476711689021254930712470204452365790622117137723064720153897369356837748264856985892073692343249005802595394977228029406425064771194472111292603990836657550053965316302396920957640343410172139479766516162100953245436429953723737749240567965486932151328949626795219730250349580539357031032991404528969108785795953841078091012018569499734728055448557609084932187299677013998395213972065490022119402652817087963709492960425342050923652120753259762736204948452155443280197219204328643518909999745747755312962128738273275222333114691603040055096659894564677575345855074478088910814580052093126640577517311559181243966732355621808031184092660732704097931656032650907245152204382942612193165496185367895655309293178944578080164044613062221871747068700617812615227063881973325631863101025241635527437909465281712278274079660002389286341784903637919233288096850115991334373727118603761197876106563330324253203498993862220832009909656269606401588947912986833454840524038193488103870162388488733527435952113744814465602912810744147039468226480675981035054822500287291793715819923279790823623916339599991656674413091878893423549647544033999305356420919588407088376367392346150924393221250876088847808629141556704239693097184836018223119436535883819045137145449315435388640599189639898979385952297565298895819889177805400786279977843875182290604464269409681218908252309080208271069600152919919959367760064513087697724127521617906157749571405815099520621691611888473399660044219413432541603822840554626588504037510154335243699064354664470287065321497966660763719368815461882015988962001209686702574187528490368397449622019121207726709963381416327021185076752885770784252060873738774006218243441784249634722725949780218957720772998438740744755204281461540147379036964469213897008747545633249286833561865306327658072510859550854812465365687420908858799681721727413914565455082940274568110193734229417364858205018454719507588919325419408567327787763506894883115745205668792717120486293287718120440387317704974885402687684846957001683328559975198442668775539068450118966786046678024389411613403497917115265430212496989990746732583119198855195976735786623141858876166762810720774552234485719085205062247857144243935700514565026290989505411971181999782594663558470136577693357901714140804291717496567357914597559727471491922310725625792715199364269688348390079864544370289473919544011112469001438411332892777606277999505451219704863991773801118839458848509055410026429954333528279819251063947102437558100267524611600140153406346737077875357451491187920303150344902598982033508144059591800867052428073459417616088804873953530435652306660026474643334336787155509022617887240447282462673478206777113169913284867013226647439022480065188370304664111882345737043032917885457578760327770835868361100568726563995142740911125782653526070154717547870493408025740698472347965865207047447078247126003312689528891763735611780861775310530607818190347111117427304143421536503192696203373848424583131537106582220937162222647260438670215261116995098771310616566067775912285547801716043359788592110750177989964293987974627186609688229224696024594991644215567856963392936939077034374948131086369089084394959904726503643301472030925825023334957025021872724113482782278973438618052352184160400427281859217319328398921115912858084247423568313855403377583921274980636866586547226834349679429363656918994797214530558782468261684496748642996161613867641235158570478916828091763936385766938218709866607055458061030288633523815483773267689789892880094196646518504948765720002418458812458193638283715839575781381496734515105016739072621847046919399989196351864652145800747759396369440942610431563239354262698279943447461592137107316067494921398263743123914997343029238639640760588414485995419714183451907402271449394212451270017242273527507726642040529357917036477768501927284224331146959979402806732457014707334110065051944437527000858278876514223569556795471281704118090759890481905578294488300750757639931097515145407921527868974343507877245989338612162402589521044559909939128782742359734493578975524850461387741021645920296949789421627380398853678939189369325991899039979324248889516598917826041894035298639130027644332899770679308663938692426875745569347152801869422335362968104197728102917712163226099585028195936328350580723893565293535794175283683303755566677327050778028457845527353940775225273079724001704638841003156154042187919418766740635656973566181970808129994173746427985370748304621158160065415460187102155283434871808345924175155870787195426922355000417333304079103607998001316667674229019427184009526294375548745790832119379502968350823707717209035572484339273497355802061991158241070512838139541660276595014314040955357872323166326374387687195913242089251561987088765329768747540876274526372848442244666743199414317680864888097976219715443104447900870615539429033604364420394682563054546307718023426669369367354310397998596883076156097475286885021706321289906067078967469319658963260855411309664907456625329816477819442940406491427329817588539169422908889413263918573777432263680654717679759078031970349904314322448589587946231417778856871300962401980559138418901070560880120903449635581888432621959120708313328138766053056330818479887922570159172462442040458710964024847239736068489410669963591268379174735135277128787850465891973748327615056201783410248935476108456455051253003426867613179168703546991678178296754967734985606061312554063049990664056199594907770282320933423083937591773544528162197614774046484085359307781428645099754676891714508054810035780100739044836282534552440482228476138149505707639058083816751194072074678014888309168856590516118260005342773296044244144066861980724165843345780373654828586843657646286724114067091161528952066835602545058519903045422151838668025288814654209029354414038671259856791572878377605009788125630150150925243826022977603163472591882088313866816003895570834014123191470491518594083601193554999226279700681388922540102779320976150807152145308106764095733006830329295699417576151309424340660286605179927681076404834741742973399280726773728910493073431839481203465983033791344400684333910036318594093944883996231571302901724293296368781963560664916268547936518530957508320890152985872882991597417082108312636008104670913356296987010921003580659048028128917772177502878980534499838377711194883684357550583705566106948888458105001973495396921785699196593763033447032630256073053054800944656480303066762115605130533218268698754166438943959960565529370148283453279327779287952253575272221257196223607745164798762265505810918892667033429235229480825819037197030253831625037140026452429174573515191247984970706746172085100437080128643123959938064205224871070546217986160483744448081702249238293016594504988439178157358794363469526367487159391370379918527079308561084285891286732233438348654253996334885543748462735787840775183423669501172995591978626256524510005517554638688369675176439755900006668648014069207500017057864808704441463760938402154386778491671908530399477569410040472760043767354619494620616324596186209324822419506567447111646682749279623601649498172039017086652853968596871860263997908602287073767746606126217873706561184196202938724839372106621720204573038117063382160081417732832672852946090810790113862831196558531571086685011836781909705835723476317442846028647192155698004728764949762659648314977711469687359255092111218232981675214452547084369039008879355338941052456631120324099680181693794425826656258228520678595180177932430477342929971028228670572488114402768745021100602791891567793622793244903263302182627893511343137924604385928626069722054768534692270966617112867213258104704907463975651330878470840887103358770981068886957435855294595902092873747478705767209477860867605935489368749553320801190699300744507894677959045580547749927494508989457512917981253516212231605510542035523063276896074166448972864134434878047609322403289862701540136850554380534843754158895558294967969048799061542623209558548924982379986495195689344653407619489208198411531365399784006382882851948378750445253295261634630143161997652700784482756065674410577207894564196410166753917325779317062766418644406627118301844735649470605768795527798462453944985864712686963327339172672889420270789421311585628115509872091245372200275778867279143294778242245746070533222353060600372878898930481986409655017136896747050267861081294820153427353722333713379596756112002252024928449679164796732167938881295204159364728292989730097757109762468923816778802889540236703426390134445654161609342050657450154254900971187816852759103269937102544916472395641229251797858940503813827489562485415171903589328652675573599363319097808203679124986195332916526147256952460600087953234065335777431072501723691042146295704048527521521459553299854308332953778042689463849117021631497633306246010424096765064023503686868610185541302750193190441268493449038967169231800673137889192177986269356119184042886858098530865938279732036843090364078439392182901390586022790290701740075878342813415482457064993142673341778531249989253799175009517850896284972128633215736316278403081589880805045727107665755863421674416616504450516817725352987648378726004974693357729492835253179285393951374442778362019420956906878781166991375517108238148335680563524584714335778469261963525969588872120584168261921469344084761908515739551432821325068724500480067138382305624131756552164343508981434516356238798181879652092117998494856647811267666279049476370155212382017032710010305001704944117238963920621140585869320595608348933316215033802166932079580030483908698501076599310890446833884307854248435359097935554235048828387703352724180169704734426769244331490654243944516566899274687840844574364395288161512877408828593824510617912314519756854080876144428492841325287966556495547948346190362086529944270854462881323840262890656055583082471895475098933885080711983766760113598218410390592071177693550057810834652363650542314446412135870091837106110932869181444381416075334970713608728037161243844944604103797526085990041147136083705139815199078054944892155350526055146091117301758510883616054681339847485114604100907697709864557168665937629850541805739071719619886887682886945415794925808494341109578971349538095334000899080925262462411266270371620749076920634020798632685668092469298782002315262024094615045475363832793950438864768816681265670958931453650828224645191931356847416341749666189915638045231558415390231203629203179719828141755985553498218201138359733506372207193569368599645646215550185177192321415174787255636966215628632402245080337934861705165269257392842178975714495993402634808588044385122431740299464665456854535059399317479231392836352787431994708828521054196267706355486821137568748402753725282259229046267899924114263421674527060470814267416596685439575901548463702687090919410195040506123736595377808118372720549466023518124835435320387407480756195137339635527047507830630882800610837986787993088843763132860411300624936829500156025085269531609533803491935346707683748268305855172170355178366928423875706403232627370357462697062790247345920085225552823187737799732504416701336057897247642318406112701282653071545137731924768663982810308100804502967949079479787541695628092442606229701429804811711974917465658015035375381505785236115213155277636203826151564622129126377881225407943037226720476658917070072463311269201286463797949176966406070466877220311905260955983903012943707153504345555865298066045407575916967205893602315049603645461946736453249585947032142152310202284717702277394973302325703337814375558412681791224925294627290364552631528853840723162240595081457821697146412730536193246251330616319654378546629743621104749154455952922385613638698743996413639720700035907076561560142686997877210814431987939477029515576339388289375494533156617346958380647592431937662515002534338472417487637595870028694129210489637367126650404740091317851340209313859708158833979818756080725414978685465070383641517599609522513275828942018122583383924197912579469705870326141326008229587824513086953005474913630440422757006662251279566056503372894469815456775078500731645361121215118817455570560748687000893856326905527262332460578203023639032246373901217372813353347174604135416419085252517650243671517381849975783993222712564357156044497314464759382997297419269142442753083698127180252972430673633807302964008915444761603064771738949319867545070317772607131153022760657764668912515037454117913310750103292564493698852954148270827308248535545480131858423193544533202739295329778822244920626950171458351311167202616003100665020717983970086768113847062184122376898609671411267413984378143307764552011385372903534046176571816490966403376445316546882298619359283231015530321488098666224304610474884828182666792770757250584285388827086292444202830751266183528282608716056507708996250076795612222508623098029090931520388349257339208808683405673909878754452641815227341966245477781404967412941359589325378433766398231713340934983677626452185002455396646217144425004493515111521186796345255993311615299347925668349338921532180747374645792633314830589869433234405497692056423626769032062591882373741636074379495474579570641989694361165274839422767445157842248228723955545335960032166820551645072189834885929501424592677374996478759469167133751952152234455704229409645519829928967333000837080465845797666382507198002787981364386489946420317421399172870456847740402119659344066038363827088216954329761544573846098490229073265416562700879458074315653765384975187791273117931967719754266502802426471936353162545347211412841250697244575814852072410158445048649439737294552471635447962310186011050307846783521620755156692069831451443223549937208193325966019797708466419973355685987698365148204825462940918543852747020400897229565049640202756137911570283732729146602085229858822421950378804755718537684324807641858706837202214204703803157499791920400057579221989139258327805617990510707139502684988016387342072815893114554000656691386177452824791699703403298507226590335624518962954195598326900034430503944988763175181175843876895789642114882167624224663531100646699519187583067483560636908908072783073180296278632863006153997739392070404215958095959494600237578586521424156174011712378818943702277756334480311857189967557068144767821398015132349059951252610198891802192442610594164747461890979260404633195382301910230915269022393129322848723769883366117870838956779855641541199795575115429241903301028454541576600650384956311301694698391728627927847587615181003372159800921309786111270105049091631650866964345220887172504614542986547772485877332640770274096265273063407182775224963418207336149496924366856293912029463265599693067092450864006142951033523242863169544012494084088492363992461871730471385887917198416004055007909322543687942132067655607876073467440761361389011080361720285676935237687786593194572493211565044932570484072841413541148752690355329038466107707637751594424723374194745748977890759205419467860752787655893292459912079422275572790617412027220702103578773526789187347761242567156943865194874566335905484323410847477884036493744684865359112285019876864266045449617018642022167774824015472504500580605399936616708871790036613800432783154611431898363032088787679589582663202417542973781045623293924573071859557139000405675355351641681784815770132081667339930584086543761236451587662035844830148649641269243800970557478414690199536453676805173712863104326367168429750197628185046022882334857327060396039500636314783109301719403670311368295515976789536077260859685994547007390324301709589531832880683616166998917838471893635786084466638890190390772322688915752314471174423128782202340457562662969181965246115172631497835651814673333353863580579221176366366641931116580544844204299535709569184560117880219088666339815822031978420775845911160210354549503581073736402171830764181961371039139414417987265525986102569153592238543034564536385306341864668367400747057755058088981701643296224996721903601143220454688021799184066241424709254817907805625814238750939633840980213463853214191242474982730311290751155655753277045507389636183621956835636512966033646647578253914542635639941227982256724625386893794620199465062563906904961596468122299085497064008872373472072629966558741888067049764548631266903815506297083702276641625405268630216249390390893241895754927131520079744255754952811987882047840841518363091284736068474476546866014249463146128672401445255578938556804029162815071354181016805653403657072754303613102419056876376393269278300905269893722977880252588705873316320306888914479816464347669393046355143771551048212128309897018710717137945217202453288007600687321435445402133204173769226225440490598495575121475774613435778320840607660192761796902241254771059162930074665059521824878490002712961551052288111295262511053981299380252945399049993215699918608561757054014588128753488759744197518867660513550037342950050965438896009534503768040039479506728121266229955812955103547804691693711721641124644450003178805961984252111791217948869436202244748840673799382495838320434290170464302638591889647137801719763175128714407891024584414900836830362446596499336583833080764217973030162426250494242689634673093093612268087593583345371792616915394833819544356094586179143282827889708272878272026979843709228925561747037333577224266702205037579724775514630117686067358365167502146157708795313218408952029791006910048477104922301880581136961058247099893880616122101113140495914771469600356372291749705514323555388738081869198995034479883747074883317711875535181199976875325863217356205531639630004574083506671260944364762433158520541912570267001273043925627989209347654543351047722878750127960541266205250521480427182287721045968944494755669609000187440216975363365138338281970770902367707680845470463456314805544571531234549729196549032568125913242442302944507755781103090211373829047308650741981157896694286097223787345025155145405364645606415318750500943539594487625647944954481352635308813417954772204919338845124885442800016463139771774749684781902945601674598313912896049852982513495965079119948994493656548294516163791410239577803575014108817837796366818546583594251078814403927552877448049256265560253879256816420105314291154610913565128737066393278734357637731097286579651393237204914117992492739313414860939784676558328919071512791033123006290972131740606105919730151463726090873730265477663092527862451655707882699517539264760210972945489714675561279997955365105859295363678475679001257333895238477724777787467802473852802005545008716008477013066997591888200257141507271771227540897588402324153604902621134162706067876136085530324693130582447759015272275775997468980675236222596553277767000633909543838050230889448384064899173668264655400186253561511026571563841904252894028729134368830529074242267475493123524982659677609033299857434503536238222269547765039084165679440989815263770367675128293713658768747260701069992486062974138319404555275389286788487279241169921654775942051368335995410480705174541876124334259376594920242078617101335193186123001563516939069023679276181227744300912956349735899355288359306373451660454089570837094256211354860136402933448689237627326033014751316221266729826044561148418253782246952711409533003224011660616486140069175359577429596212952901377950190100803485130682182743270226251396240028750974460196592621781062968910356329647372759350871459032028255351728246398803217829054583394016213129188404478292701821109287581503425143375049215865834660173469605786804483118148800605645811746819179862621091097064045501539844081733223882434838567000607640809423312738914667365531373178717153940176010444335644977785764018513104816376417718859386744176884319451689121353126555603903680610147031174829827963320044463119363217641406647861842651198804926943710163051149089949890754281947382281399803720445283072003445073958898781510639897665696438992702165782455464669218434807953147866571134749766812895198037705401187743059712122077983692972204688282120703767328940043280941287983964625032069930679760089577341014277143410824536825893122433431618407909151716312045868821763080238411755709547839167804382338673578614538265406429319814585690939650077020652884525902140412744616530177693933189740567127475426825064258962928978891268993756503361620672737453621023045373737928360137120279643071570251891544719244846008774403085446803902008662174355744418572494022747737361067883604375434650226563810591646828610557245038083250831596493689457234360418950383675662993443322292218274831137112406691881670096593362394534427728026462057611138545627406330069040156351027605421278909246369587839706973481792487108058022750195245273655953364336576926242302548990518650697900017618707212543865064067046541365290897908356158517176650712998013562792441811865756391335786508498394822151781992695746749341845938237576990815516920586062210426596042026498855744555679885692907075672349684620257663647649112325206047107202482432800228460796707312652948935420155611704047008937811924904918877116481189731141441165377066126960407676582111414649981163372700571915495148800741803375822089592453770605436098546900613300673450770674189534967994840446227067382354438711937994723775509599038497141972508877204910612800828416615184874873834862753055911325820380394294642727542491564441409317684894597845812796956849463666300114465618135197123041197234280011164239174366754402182924672520038626255757317046459771045249219036214843492731393980820266174268017642331308754180642499066959628806497611707235485880333779888712304620384476928035663078286602112975355431642213841065916687492088138671341466769410222013257290276534175328492335103183558289492496778371145796097282390426072171500243767797077965573567187190391767511850695952968704603526160907122077465822791151892674390796873326672975020081065659035371563051508698194936903924723119077656843453545316509782947805695976136441224788808391953149059343339222431568316235740476033079380961379218700756253082796073548383225664375169029790314136839596136120046427851296681904896996705563590537676709211934891743053963462780781517966883244496854410863865579657108075918406869452636749907629574310600301117195212184486319881613418792483342190449833940762372760321614261931222857278571364587067142558857832579703579686009577171866365233584736182831321001738099380672592609976737863202845795131119257184195586684682583022083536781757867415306511083678660240355672643400478343517704707026941540299874930407931776059932549864691932211037730982366479471287702223000140062382325687677298559905018449558643624057781549502429954246824752207205675451775409026080738362749741955172108120314520291204622056044806950846139470089387353906324080253513394691809046872517643257907119654020696070296694428199828727975630781280791020709703690867457840946958419050615545698146563519947421792074605103118491070647773210341632324467654766353619614504543876090563110252313621336058399679468011216629843180665542480193128026485948625767439003897120334328560465551240474613910672073027596755564478178642963117374632112057972503185682322228128867635000709183042843031040246838325420356944110032700050630152745955883063044604002368635059881807723318769911093487901010465313286565656551543128140828730633867660913641621616461875808270350832012840848286964483602097540144264631568380602969195292962051206176588947900572149621310717424758031421048838842696198562398246406213553470366277400300599569276380203365870911972757893974699890875694013120791748722135898830586534882295184226972051827586557940613724729602804915189369603436009658917859760284589350300657281379414958868057393258070408324382782871154904123698928831894585442723246707506912921524239196263813640933392648313513481739749367344421144444350442040419633849275533389466190777972288164490020821322397230818850622931889030232631474804674610837308531502152928348124016527465756522645035950308733974411713209197724535472104335938606918172863780810898269850522723361072829279994222003388850609401328993443014755047503202351406419112170653649997112784302010155585087523371826953234427866244296614460428249049560768158688344989813806142168197714101761395570752314816885081907494358134967216184844870345946633195441060074274582056800009975068067487755127806370166048222081504935449093218095084367734172503436903839423347251726132961395272958828333436563580959085064964981619978337811393318800977199280058251016701246322438785564173154200344689702774836900298972511274020372061364558005168405566760014644104285136671607802189999426291249271429170321014288038751632058300825762571795590610498597399126333271843226836738438424264113377916467717348021823655734850106789344020035445616116884554598593000972866292856046243249835032378878939741254099999851605418808117630859798878665803996963917394259932942515687962805203390352103445927233899754956968397958588414943219464494349082912218262564878483165083652148734623319344373832852281669657015955058990055533562700603502007051943448510123563797651591901928206021914784843527252967553527715849812932839843150805298123494818411837567347195507631075621913672397571207784511449439845238569934620546025567278401164829952922097379723754672337052420742974696993122743291468514642261757467654237967139616087788156836226659747879229688487955745494210190758381009264374067514494114773636214524359561621361779101476709349195523640860333350031783799778457681344523355449988644928589020621941086808604885584189152925963381655899811851698759416031017647058129490659670909598431492236636925408567825983504267831824227788735509047409355311244860166892721581895129976103230779464913612172612416142072791676867200806360142463282348651499693689641917221864843311698270397524137688522990680697731715399620451446873079767145136134360017029039894442522617660897848253589447849882736041721686128390099348183881798926990053807048811007518118941866400930822652288283560277048201896301445720295566246305592851854337170114460935098484196149081778632983338671362437549320826325481095038825574524990791675939387429423358772534447331746604374507536497440976346147241121037799500414396798040394992606126981853632450976655969282043373648546076562902063624931141322674786455113904535617767411938521406370684094804397386299675900281901807669742818941052279658907039323177984007545122599639846331396088071236762441338243030536572047770516364565225604941032567833341671732291772123475510155183061105541924182189787794056459448971173583240109437797344889688297307905654256328378893570852613502441927024989331878445078181422114032725258876174602950576099370708831031489173913756621407700268733051535408993210052594155055988841336860699161979706428479196783281854421967556117429291746300301217467127097122057858861499402452864006031176363201917740931673289345086547054609794426302743050965055031719882164105348314345929555457441076034711054053008450346106863561054250608599069383882237312265950135499067195124056475938984251623932325340947444836117286353442596298492629367023154555458445167458951489441180596378306982386317947011841301460591100299531182037870708322351522579961771223119502367858652594942627903758370729286594950360323654058463346259177831460024858114237290162746392328498755018584925305794578348443680358388537798343816962407759892809779667545046460231448965039697965776941683149380688349202705187588039918004436639177390040508397571985165095498492547283143726676786113102056882944798741551377641931920727427051636959032258113591635967064894499809777452188841725682654684093915628065100851712067448716897384285418092206156496845134626657741853770314442503075872565683440294909527621308425502240701094198851518465758782392455177969266184399894544175214060584418951173584857322528485692917401785430271342566944030953328419036589841150285384975680792124102757262303153038074337888211780594942312199904611327988634116219878382286123608017577087424706356776792178746290372368362110570416717953503542652438571664896234042159123287465808516384786757194498126926424017003667595875832149014797043548981106078121808724371735078482554781849630194609031457366246609169028001535820880565465507963642403275510703206734819978721912180060993261662527491757424284193768046763413846552225357297565594701438566709698748173656471830618125747752307159415947854364550259803072042083817672489180351190553285241489709303789605785655291350401169156379017307164283168537109520313862016993060678796442513768051967871296809684066668256485019915263774887998477188369043173932574994560820118570283406747268430450157033766773068267774583653011642413936684162956226736717024071689237883044518636825557700165551988871536941648471111017316260551235792809132348726193402487195158479861942478432965487528712908299298260629348664956715364827750751764067567203844665405492240400471980871120164382568498921421312387116306076005727429611776446850398484105892798552102087180336292882327505224530734528168438147395033538686256546196868410411441565905049333912723664189742180071093066430423002820675490565161342612759751740112934571231822317120948630000688788853574516290923602504063124008911472699258321128783169233924329459118797292924982511640846116682259781740884888631892645626636001978929853192216448175068499734777163364982996740787344553589647051030897474362853871992013060243717465758722103635133371034598907462592086609987689722227691759034752891797264686090760412831879990124227796960529623246342754851455384788065834200505254206463369959648862718525471671884582831915487690081372280293911866032512833965196012372760238413442915145359562059686253593807476920642358203898709675016803948073214043407086263508863954130181684628627108587767853934002224702532612027783544717007048540380661256465732209460263146558404176775411787146741900760095384644136092808358952583272286648855318228342517323363265450569031782250746804683015890975918373852520433998947559473298396864012323646650159469848159878876862483838614762061355500977108619324524536285232820056807432907763816960714083331775854001461506978102083007214524233240135298049408471613879288906657884109446123278001279399987215288363889823845313213712516575226556118228385925286211232851339664770832167354204370922517688192410422153398026174394890307790783195372538358516114280157914940379564613957128474105143333031637177891845405334221808212742377061178693034757285469861281113905187858524718240969986584487994829515968769516145117448799715689982073094425948655216156414748472550089762420786356623596785093820121813278911098832009809129865333011256024328592027531619040719463838370831276560800485376713558336007555114746858504778631962954379721944920302469801316646628306406840715028964230400069016973971506224977570293577616481813315375298520215215348179179273380503547093234280059570226045792521028033556404434586743349144783973683971460430711437121765712075923864428182544988323079466170055093133167204554485841013657261749863724545223362563679050390440124122486279392887906068267697648792376763514362739621747090684716708746080431133444140515509015289057477576411826544582934865274600068453484964818141474583727248012568972868399174210814241797343909222182628523870689328279474256236068804571176258834500880418774741220161020715548886924451290049627433316375984821834730349744344935398331077643123939537223814299086712278742001601098444732614217993361545316436831059920727664097768312153269387063531494098550274691393201644708156968013835652162807309455710649676135700526721336160366667632414560448735248968084624208885428720914915482529322593236712654233223075557492433257904681167775657372293608867422787822233039808477626325421488896006779527095554212874593452590885618333252662246113013062391749509615457217421457889589190071896348596205568965327413450144836494469536894512824899784929156491076035818200743284519381382169818013809655936994780752961540749825967732821547927639385454772794603577967240208369605376298103051896657367952486610490861818608507588935059377753827379436942670464441960201145585899198067566071019682658934212421550038761773978833736952894013299372890206180656425223338397814024644488204370169113305897979869996082089877758183486491003954509924208954345401431411425337257648164211689619319897002420416816222134898874276785136922445086862078225201500820239450979879625571298858155315987541693362164307562265605397204095283706647726619742149210801387970901987847627724493203587207216904686821410117876903281122076906382596616304043037547673196419714598253932554763926831317101348790997403079526342074514297911268687600468679107958002909437480351157071923775817846308321766823218046959027512817549601938095823153614782973610379976855920538021477700808858527493179502076997028614951392971515037071881114355396520257796439695747317735618595420235382600428372912304968808557152207567239629528941623150395219584574095903734314087833322866040786711929678446042329624751954551365414135153839744468185868389069341355367120143410891230974692502367110322067325546998850201575802380525451404002520449638023711696981687201587388912541130625530465406050650792949425502595470657823501583071801296536035306560172570265636172747192689582403419535130952330709197643407204871291401634780098879945864674104915278923581854455839773329533164478769621768102533178786480995011044954074570783256009523321999567451526351464289552318106722714119191351443140861819727393401383904390950080468885385332547158697870684417357205202259033593555229029742323857912624811152853519422653303044780611304652204620950369622316574435243764350443205595596799914133911084841609557094140913868098670104252656020117119876099452091511773056975510740584288881200956935951596198861418043581983042423789646051403967020900183508138335730882777584415130213335288249488748778309492807547664585476539885521423740362549474670534948273797414688109715576288385421185642783464228738677240439256358719833336049928084661187269674285553982695513487217300249228970186715924125521679761776298210526157478683885818773985005186526494972583768711003501022494745597493871647907896722658513066436199128371507097618928462822255756428039853060376698620958656097679689300772102145952281007840900875144508226182009375225223690896481945632719157583079954691802093468075985681277257794127467696101984394560787311553656195653270826776226797863296999819536530289951240769664626719903138893642945916975832959934457952728163442078461524241500755117530398177642496678361892662369704829743028464440561057664872030014954171985094808531979480607389046026749510505067439251843915109635486185755230798375343901717273777390145507196726479309433337880183685670649581945599410472826349592400700547696523116726123353456546582945360026588320018015912718176394920919550235446376772198296673549611995358433601176195752356266072168222883141531048269205570249191090873419848379155674863595398587997393649875806038142393505382522909104926420970844581188907556121414845804112510551881841135737751383622072721432837581734343935329177015428198285232058954617648150363643555653744280023387517980507913682450208253054845440853299421087319133991354866561293193549108683187770175610913034044918927568568199667961158820111464783059560908279729456793009590464461509161228981218224389187753114937179268531653220690271089486722790852325314427436881965819471998650499028371187157438951168694807234039352729965972291256660403849623230338299278662435557224632574886369209153774745302811128061284235028391837293597968337117809873315339430369176083485266915384474840325167506614204287602265579029637123771775669288994103250655076206589206103057975957359194677401444107980421104284691878868210954034262844762842499662478212140370653355548060344916885883020167658811722360945150662514159744313787413259139971664048831261317972326536219396141409644496038241815072967192820096435791061924299361242122928441935155895989601181106306487329163900673740808695360460348794850790919378246843280202554696201155092866205486284770274942081938217073429839294022370254325583311533855788191826637442324623184108414626952973601943390515258971850143736885008396341286280908657085455816423973741069930725451485482189263443647058622115113204765833691530850909605226443446568306241562608727710380287923713496619833402820058453540564691813492106605173057259726959157302895988949620360923640810854398284255905093833218733753208245252025625409215355340433694367616828352350473775168559468187940038065367002712169813474734560855576389042067953792781819835237582850477595051999271316544960420973599011376291095744360670383952979205733549133979044550667259198762784185240892871745952687442628565985337936943633885548403302135288317606166842022869057593645346889658562098226818762867357417059966936548081920420875037572408350868581136872530464684995007748675628168196014244260737038528976467818279196842208766159908194305316061886916811597033427252904467026441079893531212108916094823739972768559563515722190390043573193211579213261930741779326725560751155463898001055757851230872219905362536349627056413694717791564909664924069369047813112128276989208253548345845935135590000575228987482403643446911640164120431016235869626105735665180530201224718640379721090697360057461725977056938521738196643932296841180496402359873538866749879467622585696385892374829216224774624045249769095182536353193916622923237897406053248349107759070080762862652179677022834612547208315676738767309106156954115278476132093268466749267936762950292909126862077088960496312964976528111370648548313090171338545394804082999950538377687410481428783446214683597523520805993272024723867543826859374334074355078376350557694296189093007922985066841419431728978236604397941353340035311625055979977502187740065508681462890686265517442367241474544138531373750518537926877281425096712845076678247345731038230382744488200050082143805079092577014010860628656697984372257256091202228296500313160015016924357225098750069751664890314703682026029141271243532374859389751292090696019181815559211989968776105945131970110476413177513355988572778095603310715076625798133659904693212973729014146378121312074467824985470678962118851665353755099759630299683386430234827414639215655320260572489999499859386804920354500673467491992180146775690526511161484892278462892914284213420327720011751377700026825776113387581852806391157700336094986980246232180727514307232797660171860165348681433227571785262599105644393678840968664458198510138655875906114531392600690589400606937691041549755826137422253483967851519653297655500410537178026072887517609940121436099654051155929638150040319257689102123971107630484579674600121178694845235210092240107625718806226794728235500561382605516541015501429612472455810953621025522289898227325165256952315663907724524925311409711847236830984422201428220023424585033571051861566072791741048722077485975940025380414976034877228110833511435690324485150284513155804555248863337969458360783530724375739162385868984382074331905529745468994793704266375761876652535563538749260132702183959460715342344456022720813007655093560909545390968233235012749422820207935966140412902346995262863952325554551068320440313316554507458173472944922032691231332230261425970184102502973289747013942815136542782252865229227671452040241156337910652205162112010659996452215527274166512552731069356788108871047011112299322503716165425586709262583700299147732430976704195362532450635598442524018531275048073795525976171105245944467160859575117410790215955517553288659785156117280526135477127834126031959632169034040619382902992653527309750415273483234092171738858006519308945065340482538482087583975611831295443083050413052992683467636055557384811937813603679374059610519603871597545021215654049539890077414826698140274877705030566422864012978857605880278355095116151689652264688963007182476383394797597687202271297541138492854500891332133582373691663243871389322026621094957269740694278844842739806545488581497353196908769716706929775405350221673639870643630137954260313660732003307988581448841910470073272369704602686348055043262550442096342683669954621771072347726667853298253886237685371146496454728424692810391904638523692686403224557681946300521396766447480217909773678150175482972357515103143820526425066672909410675382320489871743757828971505138710411302377599296615257462945592448315223411760278825264720035194412511609036235092934068218246370493435953979838233167923456536057206032482054241233133292241410593323017978700106275856509971055712019361761340447501119250638206056433395503223974460293700199474892477353706258485088323014062325645564322328758257003146237121487200196827704548170801867433780516116213968906879097026334429487701740457929913203214441767573359999710891240158321904023454175251764963110657734484429966598467431500158912450392542799515073742221221797353031237357578814381194976709832043799856280953349284005461924745311634849488574434345334287726852244937462413101384204577960242304249233162108294797757994253953018352929513555406689345871019070832483668711634264832114860439165966493766709637034641513349968927834706113692225527527249692546023877325401178913485633728444117377552645315501656599966429715065875673082949803642027185812526879470988516339124741465359417557993267204497372672835542310231261329531070537320764477912566284779577787083048132521954499986083448369545914947480132349087955771642011144127404131807941792927795358360866229176099395660974017571394492672096236651597311461471542977390753690387952776890998336169778509769237170745613327587084904256257013402442984954537203627756751877310853542968934878302871958742396745393533516915018166667450568731714280321901908726935417749251580533702534354063244194137496884930841039066163539169087573906847833696452273218619960344274288794679698346079176890453540248844910634071066624907804560148586107064087487843945815637695150278231821840973497675261318794169040042654244253317754623649323963472937062025652184961750408650135257843758194556639975100707545014544680976872597268907485152060363007742655262870682407590554077648640889774324514213933044500032432552539109057561485423942851493556379689955802823481418068174875258272051414675611658948658852161003133569480260587276224490063258659423273998730326314060564742654322371813568875670576419969602541615361465565662703697749290698220842745559634001539755309089830422287806599246959213793932356775991578221863210934752163110236459103885973064752847213124059202159110393825307757475498573336501444334898827865970823836246988701179073283900943806237209208744904231536153510052566901115941852017036460745516162858946977955136932812704756824036650656031066909228245038928287619630560614951004181492645838676269010728234078654912288683124187571269684384634925779714817430100762015089994909169446503070796626392482839824685897265071342740220110317540579555183367457779696400111691596706442297827479548774176937188428042077007193837946246259126334496834890429716625570956208022447153656569780980650734445755128428862012417211726695647697386679766958243087283696400762309233052429849080311062288247356565679139272144594567015015826024196943637121761301035289481366674586066130981487952277081002277506578793634371660957257235548681035496185382415352878296642271445505004062855989805789620823480382622283636983726772527642638641610108557793115418303752569070120350217455956634830212589414358043413741746092824892090122465544325888123078397558498487122738214340586932174015310291395094874655824353341560357162468804363057354416259600127472847094259331766851714622842925600311155935512267471946560155970450073471569605494744156761032686098488858081961376949429191214260554048375324645285029966761903562953876023744874927057475296201763181935779197445443762761813953185465075206655357327145569401838020238746028410187309267795959446276048331009132972857688962054352579704626086061205164243408262331015446180691605978649888649079510575716767868185561805004880680759390119254077388969307552589758619886606442782950781465342115021372669782848789061096916571201626971495704520629683044658846902699109864311245644023199114855399760051300114833302254026743478422626715586029990293333219100389738515384602555502971029158069376828014429204107523792357936507255414663747211404775519390153094826851209068537258523605732719452375468376659266115716355321681624346760821124352519270226771361477411576770807842738147490753440961722497293430824080001381991489735892312263307303226176559545473108450197266010589677438622752841132569236989278723995975369090136112623355325034351997005358617842887929698530135502300035954911703636353771447138283461884360487820904788854087104921359031215348958544650084052882863561016353425923349472709421620176543577207818779122913603153823243013994431703311810393634552278836564907772228076250891126728317123816574453291665933947618400708278380517549566405099905461843309502052688352079394896879763018914952990379366560221651255151058198590584093026903755955975111849242567420048944847826448098637507003229972485668094079039070990600901805594293756472612201922951160366664535034957031752806276120514346923940125437342094614731328651947661487214385668141296958465114396638928773844516182020196081236686563254540037141684784025693441258291955882816574040716991657087757448099315425178867442564421601600137560103340263417251222575351489818904741977467954338851392843902951765691751847433164986918765801675969883513476683236216757297958276460924890731308128255556295977562305070598941936526363474433578522378815088024190642662280656859706634767310601815370741816987902489326017328756826503760294366823829696894245645427518574061050681787490771361274642741704029415879639855214709149972390572735017120886715993996897400409124079737111185373127525875122117298825010490550717854239259404713280317684557692547628754784666093128119311962287167731636072266387047791466026311411850734764475538570757779878167561740744181601557747140759625224754689160097554516122735932261594044670537754105122995019098591038863155000874805640587687718073035775855557783794598980602227959051304123053810134632902464029241972601628051880084046047666592911422826959183861630536133892895247057034399690912768783451825315342938336680557972828100976803186039005480708195007612633458745336637431794132224125504424703308062695746216762119842401442818324724073718381105691910390460775920445889715815555808676615146117962313374040277435746420070336765580642124664438387407450257272399752869901750461891805298161976273431069123264730459877649780082435619724865679223668191558299705549309169889820643425769035923635473038897039181911908346016273868725339088977289091702968596562438690947877923757213864502664099230874068162530868584534102030930508427679450774438093545906700816909195011804598614370786440950805769126036565972303461885005979538929267911611817573241010574739151846458896530334429811813664849655304934816716001416304836647281254605473956348325518473528061439808661053355126475087414771185853185580208715238918957243508998100393660137731456140370726895730229169248031180885958619799060117979745520763613445507947497785571389600767849260299582882876563207380716139200900749315185758413176462927955096826473149583917845811586798333997208961382294785346671133403263061098187102538908791495926996520339004357793121158800776627689232418761362186850182293725839902635734665116198617421156269514199033058215815347026714017547641202412327149340308532274017396332939211709736401608558865718043359975040196993697189763943795403856652538276207507226418519915672930929889420217364154706906572847769479383947666763852704595766727534971624322426816278968669747430422916948191625901581163173751001951057361668049056235522561512227144630673610773854873244334204238941175608190058788879178809040702300437854054922813035771603819433678476327217133477520107622369704084693876205264053090906599411379686156408372184535293914380844309779795125162346616555192707173995714759100602021154885396575083989647414308598768801862632955758967161985405292177801371271796029874725910713912263746424550704977403204385498291513356548015043469232278029911793507961543223360962565230612172494215297367628356378791994960132390236022008885678731996829924303012757059657206912976437042554936382180426689813948804744028268795277915525598472632638386323641061199107090349906795588202815530308065539202386571534114598867138394199780973663799810207193647798575004549536756149313102398423467437754011202524040159340866035169511128008266279180235552650248491893300380114576079566406207346019626459962342911580310707438948575084977964333044808092992897655729459995161541908723746089196467803433236188106339349990397395706653026508886705229949102346381563345512093388822469684770112106565738088005893659625605333312560921510021446335067634546439110662658802088218707585406464905193681380460735770622638420221037333230268209691164886550225277879324046313073959398743846219545212253917142744702470813996965935062120570680398528090658757611798393850673338084846598349381876638171805844190766650326709852910997824117336873041320932388516900096170059599854615054794535174204760354377342845508608501410052977145162348435958901746182872073840439536802921783731663040290715881923277860414729958585722747213821797289876303317099693684905267860000202336425693000045977153510689744925438759671369355053065544579562034216838441527597530596765353767214997754274413539582618470865594755033783032048014169408615406199175579136943264898767137047793658331629174231701053043104772828723461997875726081017033832506295765504856406386089668477575242781216989704385939823058636975438848079926776544664078966216013085279027147885117751622225091082613641962954557485738762410458055272297340372928693289119552880394554889088543060701325886661896601560034626258969864463195090737754815037965238362526623721163474247577557013734881194967649634816282560484405411287323817503352672302445774114274148846846309251917194121647727921979607526683816025920057654312842791463747479224248270298867577291096536292818567698302701981876129970764436345143215826131295033892678909689440875426699539528661850886787383242749577806795024886061113326610832716195480419648708051276319643494121839043197258441472119564118445061883943040834694070994183381315842183823623049784690998624667717091524874879322443841585215490693738095222216216661544596997906439833408146037111298323445323512068457859604971887421394777560060713571999885264394127974354365508279277608154705000949644393226310782618164724058428310553225739377470537929106025226817939056403131864499768134798153632912576801625386431334735781453088118651752883718806361110103085705391919415662775216928400375452866641958001462323832642639622027929274666832231017516384471008385083672827665332075262387932149748284493249533653527942590722461391157625850579358907378818040934118453018613563140753775643686363749320906667205423839706617603385853792981602377881227762843460343400726415021699142343592072886270768523864162404833640140350820317698513072393843511913147448877770616236045802136991876830301278896883608207620856756559766019829971492156791228907853470825234635292907016465980603839580697590494200614699189954750160505607683617283709235058793328550136995009978038267539961913794898113720276119831771910380001267336119125508166059459740805159046193220333363621114546968306622873387049358915180722511589507608655320396649961083838537418038057759372377812951018131030087205837874598486001978686800395484352857964289063503857279161249420777461199978108715240215130383347379906678441995036442079523894152793082413666574854823335114473658662730213261776772300991885233613047454107105617285977826188468778684462240525527917847995610627119296827345860973525301198227637344768913148740135635587754665460876174042855791022900280563479938106044482803954105358347014116235845055235299290934951699036252156497351396405424927701964608057289321779516130959167433374210572059020289649329973122917903311679452989978292480659347572290746318715904574999456552805930824964329936213673012481635667287874995072733378076404291090703621936912453190237568864804366353049565297689947071155932215915496623482478901312576872517731403578133537208968681487578742417708667080745196288612678440646946352376692346985177432693911929354969144441315766500907488930814400427016464685938438059985193140051082145274991238517974371895224469276276014775428570799669878383776955239176956937574453309427494168767307203075473849585408747342910749513162535796808501162029412793833246723386911688438385253128502823905010935851596792829981875837642251646388443506137421687745984658301340339215218819844783781939404016251978425772709147002137302719564791843224257574460800698813305526609024592038654548001810939684397330353553830171619911577547858382374577992264593059975447457348982996173527415344814856496476219341843950100630866872338589780826067530335988933099936420217132416507343729204080235082661290524349880115585807859492887513071885164196181169404877289299967376965951988855256642699612984176217943278712486300183777409553522648048527697972778516864467340849822316676270044038678760106032667747803724534157613189593854239159599963850667139815795218145637480574781049446586811859113628103042490810121154085160117343506933291959473487721098799927197604890336272794124990795218021378973395221117049419157990303603974854319960676934795048548534626925185274370125894158468828128838704944868927780628584894576255445730067969945041833202323375164624189446368945183788549089891331146032707433524763171031210147310959102457123366179804959203748580583649444505003237005577405597810322705369972424683192271415095026092939462534183324256344139642561070027094592102953300122830421687002305313208905067241399529201228038326395819596327288797929260606798323080454272656114994166176665358850521812416470025962479190155146488419920777515475949977861452006897333802699917065566327369129226603324640714650344867300223361334878242011941684433874449294717278277303248496748664190722802704721976228532605201095581359172527262764047156574052098056453828668855470403586093371791316935593620273262726118865408236443635760360689671910880264929925681632975160023123982891505239396210260617212868481536136455807385387641323841726323187627561889072756449077324686637498215021185153120386086806910358984689953796282329862675814890681615149364644930342472737994312671853102471094590201700017020500665220988409750198767903769775350877562473195486880010149991150818271120025235791276093719901640958903739579097369109392668897922672517476651710709098074623337962796069789371969603770103455484517833008677075651758084498911520283530275817634628313944162222769111420495088969056337564737707521591558740423743741360837907790935196231388402913467539683549623254979331510123976352268443445313626373524426252134586007212358293800245526600673329589482598174363186012836626486483804554877144073533507138503316428231572366840406815665833201754031456097682186131860572465310931287279091200144079521127355116121964346351521728939303497246586406048870621804942939707262073716764949119725923143818283083473333163343129536351255966751265754845806980225112120699080557217615299840042714846294106842298998848753000155968049887026615531198679716602926958572950597793221719276639016169756307902681056994644330038822079721860848304348543642782488237757494054958912000651928439963604530833957288161783369241657664038994230239031164643720242976503620488300244132967192209664435051439575777995009802169740297103801103262495930849849124070427210460697702255224605950382741298675584414972798498060924790039960548602107463400598785593581204846492822386088489745941155105891366871366182315385599996134779535212568606268126924622542498788307703067133111563906502921789619238580859306502706040915023516938687692856157564281629102156980024219310730878646820468636655668919218910946257391370994557792106891106626065208686176880776033920527155559633394596183640587881468085826105652952038168719068698396574200641076916729626954944318441157029878974804254894214159492833956541523648332142839640299765354151791141822242254474651197762538665960576716723989384419944119956447107572199555937913179198450171430267087206251357375146052239684525069931480249572122140796707693453045907610388133367981571665995777696365331141250683519689336191605721782846415263109733330121217831753609419621812358985358159650999135328343265943745146064325506495661618408416485148750426849254682763328115880405875785580040932148603033250337234924460078273907351269671304884477556391974420435026839589276338385321480135964677810778313097352962309447529952595219685719016171854638538794494089746503940397557194254808743061443240828622305104258904869730994169800560856983037680705533495187615804051272513723118166233610044531882605731426247195813331810327566510464963692476803867500590765912745696251873406409887136638322960463320364064033833651138796514438677516472983897555121045075051561318801218997041942519093382921118887751465637400009206273419599601535638245374421220103180495377788929384885820021013429299766886540320423800820385893962380667298369554940088552408585140977967289111533718389560992318513254940775004288739539020110965524340104170518260804480083635577963361234596284680276641441325149264248003872040042475640351045071909282415389103871607683426719723376615746293152299697378687688520698742518083054281618323459518740432089728615436687695693753144148139223459297984266554023864980422471097692548685034818229620317034438153990152092071713889813721586192609165017719358651506956021938518660979573381424251513874476360830666664436077012064018712179023451825777415428719442928475553763681091826033751744644147877146235210140082426164515884821136722662903549651444616877459572716714405992047872336097557760119374533833361515263537579102185989313133405948452702964616605763527666624587045646220162314655212315005300024405288392631184062462433990341644689685971574460833309771324336186616367349518765948644877839533887370439946980963249328812586766746011967145759364929029490296392470520192391960153067654716360203424732248225028250704020853093574104386434668020951656453703063246260093801785456958802745368687385946084395535176423291222609701285646314871713194750044845424242919888650821150669615763625079013876736830993413981709321249941994084058349009173259856857020242776012484528966743282273625016122920092026115194830122717907340045023146094751952213304809217844414055689534019911457706162068510556955218677047900134072934460970996813309129436540547283412997203154403489149986710771474125438257249512060977559639347356845435921482233136258229921654018053444259894077332151912420798019472219596564064956868671899583218074889563414835338978771340492440736387336900887370489533167201030248690227063775684821076536667718408748622593386878878556449274597394646805356022356950811399980165214078718621609550740859769875758664436313144568619441798686452573493754587025158165970141014005490510004417262094896167208679875387397567762467216684892344034391451495393008885657247339304991904757907859226300252741068717722311685116759382501100068060880597747632100523045157109303244253428346496916681826078981406290065785657103058155923266823932205543611473127899531188220747248753494947855888200505084504958829596498767766583976484591528672322929548532996351881564370960913138217345710229079558448024861960990160435975543577794262604884913310778877560606641377739130144437269678207665658418954990613273952353471178779464114542990903560360388942600450471243451312485114681328824155189272956039083637786505774134503171119068987143584589676702761945720435377909149735093706709961709643549522706783200769540505092570358190864379216176540650766292412840029859825962306776774337448646038045067774282064665565931807346475833392089320442745572585628890396023644496854679978686720265394816363225685727527837117052523327197546862340864399016985222224299568749791095780011323069864044367344533875357053548915750413451812357495035302669555445246675287126543054149934821109102820110765066255657342509030790577652009574060185621664136587483355516702512650953377417890803794427479110292655775631949774348550120443738541038453704219575831619034375914313824583524734963705053906528369918094180749441163715581420621025355684924279248650030083170282280009905077552803213256567126934729160612683379729015031555212626481891123538611618989998399471054152662202703048526056722568923953416271705692209212537501024852700012420146067070739519834485204016232259868746796097115981007822447314664230695634201050981063429669555126306809280467073627768601347180763331237274298099533936018775597117756450428323177680722881829217641838084744685795643494163702656142634269562441198596178490922784990693983933296875072805272343062489947029552519774581164674505029689650036925814375869214230020710415837635522532001845463307367930897659795579961144068942853468155102678666094167868687163846339178371621174025051875874588558264279485151434412761683594283529645708282666317463675987197941793007196889173478003460207706456871886741903486452365856477018917826567908168675531036037153380019201615654879253905768741797723511890072579731950211288649037976232848754133499916432265562282661426012195690814846022020685022652887807219331767741964880241047219715347145675357368755664578258386798269018410634596799414733365391720886999940124172727756558967998537186026643735301614611645436109937636617157998135715097972203175362861162551237902640916638531698125851811571237981287992632589698933526129509404635642487135499430631060963795876536686718772297825460782117389120010283213101034507333788830668741672732089345784118150954014781370851621172438137094039777456525263406299137431721549075241914469956268374737930762261823070672222032458427041411086972940703403905692319207398440548409581306281063700848500161044416957373811001275407513988408066210189030863151751174084168435345209802052517853443384298643014668766365692849802857809473583104329178714281338325279611851117455389024253242046989022205346661797992919112290006253261377029339638386003082451470495735914788140444860355693163997435552592086922519819699308788341877087943338172920053143965564832542087374994961772753063300388664307142763449405777046106656656138485180931816866953844863725126848561029103315215396452409406318803272506557108261171035903733403689787825939822376315645369725080084253230378251519426263122236114879225485055639575027198264986027385754622884414370555021662714111573445496711744887024378147498121389941963487199629586181606680281024673682737413328892765777598364861044234169905333662303826289985926036431803639556451967345283179240370598400519726245596459809396431117869233493784550614246981781649492773772522613978975525202534922345608205021829349274614448276789439900011233592958096745531062579140997349593704939124932462795591685687650915573526437884688396785475655335348145677259016678920555917645435890448123190430387403729273975929951691500757750546772087977242839010832627584347443091313702472859399347756652888309291723291786533078716432851082824619294105896585545918814460271081201088708208546609460954672339430509778392795792603727200596444478958133238559071953229598622216292912433723521227607787511582615263188888974626602775720412440864384621759051395630690735198275681788211385340557798879643538606344113038338283459170009967090600463732136968090459221455118805916954416414032363189926607473730028198182373008968710403478205989223049399535295294188004216371833320506055950276530800119468599754496680276708856684821913147248748731598924855012760680890009674899854975773541040794447114370782478076754684713654394335668686157562172950791386960136339739541858651913132121960031205567244479787117020563132988776537528262729555032389875151935280729295412587036085484401432622330526278018136947566832713022698321995253772228460267768896576143742335799110271671358933888578284805463256712210537452271463588130364783332707709682714356801632083737525660473333073313973021220894270182605991168490513146871861457934543173383477807362738420914906379364133543761316524275575188933560649177391047332444714796336134308339982460148768858926338768908651226289642606160714861151148828973044622480144042854508320497773831710772689356410506899053164715950323131057605090457165020084015262317834343310288731648006217600241455517532677948600004310877950589640829696728107091811227549534316222973910853327398293618009141934415213842933575409120163556186091900764370605881465913413829721185832021884672630375588752843587821549194925182136560707901207402767437775271821566582499332409940480345114668665531452730812746999249789980553345983122344932481451630027943705952200297419343134950461327111683138890553395434355816631185945704178846903809565758649846328097993425921955076223327537239490177327709215213928235831223399086422517689814027561093670477846612284263107412839485849167239822688680113705881900192686291805173979145580915948771645170019589444582717423304093749611330516818293522032875992698021197609919418780094372270032985929946478744239808629530439766745750545412530923248730695228763028702321703235865688816301973381432060355424328921208054199642824962515861164434489700447126682833425116869146811590796850815557254284527455518628007598310134356816632622783375191561518071831284443497925392491246274202876769446225929118935176440120005088379135400064421966278798691930533514693681578343831992850412323328328075010454968083522310709388928928559578687234005259572792143838859317587944717873059888904947674772110855710818555151893106502069496271394435858984354253093746302996921948445421373939825749451350013183407560046948548357959720269683136846857278832611862971141590462812840130589934035736998080143576655182302273633538916958577744476113854314023106264912601621785515460253221293253781392508913575469840831535665438254817087952253240238416018278444858784184601640735988976635589414662652529925176258207846679152159767589771935808155013853869483890918962576330678152759100700347079645969599033078770256921348230891881467679251531758799979569123513983653361066847466523562175361251266939655992646131282961716571923550401266761117485704584191457976103764755225279118172670334523057402455627662085933122458866764755545060233465573273861612950262802869861515385361113447184803261023426763821409947569044151846371717509894169962946606401078310344618737407927260568213422824066754523457371546613112390366203653055423778946878609324602128198444974143507061681778109382349590337636923275134793384119166929195361307769751324194162979013044338435591791396093266320128682356070228491132639427973670746717577305882772858628145987468299103369082371203607857580872108374087420128043023459608030391391113962967695380615914490980202947766949762074902109335064860445540729401651216977462335671902139036155392507018385211298980356535005091513650413600596651521169440983981871939775535760153210329275744183657583152169722555169386889912424984923970010630573238702643225040654383676543494953494987746066091522931077633440925681574856272919189461790590698242372409114398044889687026480545169539641346615385199242970966581614759563614282655700861792656953428482998206111682485006941062890736974762600599926808409854273797359813157229462891157490845846248314338527309918598271953255404549009010463682297470788957951007522457669968902770304417122923356173149336118449642814918304194207362852441484351928823495630302291610579521512848867633248714148866743582484322772915769558488962421438166545696155457873235074311433038689011459757200792563546648408380736694074808376706254883462439187245786498037839203980608707275548664409177163827281314909255470659555389575459232250679178534778641778208110597866915534077846215599599979489048867494347240604550745696587764129536231499093805333359781084823797936321316035767989088929167155139791702527426463882226419640161168065329651722101521712528488727971605969543914124319233225093625531304115492426620521148699779726485704600960988101134522598864832912217084460965870623789044974154539002828370277427345230551793215787906783931827229694058025827802303860226647346937801354431698884100074427780807299467203042416185955940852967728810220386673806585889674067642040968191583435841286548812079350269164784204924393472830565725075687715075705107264310853746283329830435407947859218257894964569818590527478797234270593126948801127889967283161188698425403225346172355020499946914655049965741291644250811558934380826255944385137995107188053297195543991474921804358153447243258884402996624919671652110316969805738818815429965690228733801777482970711145754411340866082721948456407199197066545320792630515450790192000193497099908008286185441802317514803057969493736655182542470676401539470858206370362504751107010642217600610179103142370528537305421307275427544814708957671168973832124220973410740028566211928801784642284695137103754505284531086269026327466604281839904369891796450746775847004441842726729293127235978062153887588853350462235643909652612372413107734395712790331469560587713198864319646455418632436093699203408926371538172973645381580842508960191783429011731135514096634225721541917130173052857298014017718522045927908750207158224495882353658469759189786528174545362971638128828271281394373203444571085600780891991100436981570566012945575800227071529608882130869059115896745718815002060447002614894472014601329887971507097684547389725945537501941510673814632194528277361958569849183006411466722970216556667032018146093397871660231297018211334510654556297685192158706613220151100298351191330990792387131688228656083152411331280791950103592477740382095312331524947990020601872795456861912022354924278629100184842674235245705014039655763040584956048348244523810317482312656164305485483568965866785063790727471398151781111196909879704953537783611157136638497795662928221437465316495591980945016661976925860335417264880679683190111734765325005091066545917098945568987250452113178480604921884318771765334665486519090859985707341406582740593080183749853314398971118525901572148318890819411019769867589359742758085511332172788440482550588190859805129075272658431498621880377887741038226306193023800588720370280718369954897634953693229206152387059152889077185954225345751236365073888612073741809239281057208553165085267544101803480835699956628246428721148914090132820367053479518207530074630881803579648919151648312539261950052936757323598001214398832766429574372551967559050521364846583948216699968314512802860448736235167339142077339537021880310187337110497255988833174126551407342427936298219667526032684424384297577439729019991995405972165646448172455384396807762989004874817153820828255614952355638014859661007691093979736857633791661447313857325226786854034916742213379695482203549785130895370503994127353774549393050404558464924999253810864028779047942047760964601116877183460242410916623816184847373772931754865168362354375669739544395599318422714574228403002432023060179699531733109992919467169002693733868367302380733409073991040987817470064857074773351980309004293861613112716235182487269863144635486874846185599031223930354725881672007628153236591962721990890451501328436544318146400973692883911281986561296754478530382088076472170160244185458875801364756744330147686807860381463867841297592595012190211594135067494731495755266362643909677860475332474345960267959581026816063363744340697563116860870740688705272089116618143931652631753720216989769633815967512785888388264944982375950732757412839228849522280539381134883043949324789268098211756539051221083842142363926302254917014554997243975827162970240500012848033725721285422582999384223405155245262166973429058368545411703868336977742860293495882994511529963650808704190381477095251470533299387112268271645075437465429482024071662349053964088757205839868397550891231695510679046006774520822005184182630743704145438622599786305689357136819347044006519465823222161771697103693249452040760935046536401361770261286586900238762889084247038462323540207582703207833822143765757897233119769231346799152579988331050792114160177902201251993783660000395178186260111593257578724655913348976549221673293081314153931009894516754813541088958065614033607736309559108981752371945676450970120930278213235755842148835980002248902552824132507011605931936783041114991474782958133680893704676488435363875298760495051205641152266464839152360166082853914206141369516390273090531050175490072248456151618443828528745962698779615639053522286293648565155950114946137827999688092504145561404056275410792145082667973727840118618255165720600082776411667688962206229131974139969433982836590602743406213044382058967110646817792830003165502893302149210725593715458507871872336450742885007679864250635765057936122520324859106733228724782322610011761009365857075305534766894087812456450844624510572923353788731848637249585203569028077604915091036415760137706950259030710676502002921434017733417949023222511798371732681116290743119406646492004399850597320647430918506350429713827290923110239637812715422348514079157933069013429185937564577122007139893294027265123892629029911163616951196904476499658799165227432943859034092408992475133539751017169814576821581733003160831306091996286511473084339942719282027037442021347558224626185231169642447011727286389090011951439823443417203915518064379610623343943712994285747975879111263072943729564751012386829631150560773356523100777002921103518877264961969318714539603609122480853687135165609392061453870156224394698444802305096893960372076722653417682764061575859833507143767492357510727568923849700878528497254577457772926238131891997863049074007328378975107077512703311674507327719820285379193446848606713761917040522639170890966183483985216319660180762381477574643704814929639294359438593597913349654353009529154048631210852419699878666528557653833735231181652645843948113518130274384497692440666829235110435105806184777943567985092420180196969160224146619974778407186262151485958415904425828661902435420716831781625101803388177188035970361032774564354969928135236486856764399845807682119507022973969152394097725475423342775930014621938317182175237757878884638094327601706556029660868953642648061757395845716667245653916362326849422293496601965523429711720808538656238446484340909902356337120911325105465303121959176247827598152476366498825686262963161682065854525270744114752612333679169931984743160607653281877073397368204166483504214528139704432040895058363724435892111527843432919006743914749544575710677752085958325906651743423017469395079527736451586879724285862043525262349915069958286363940301809945804778193391655429976305429450309053128419639598995700302955027771930690899229589451474945642139152040014515267078901102728898077038650328148200743918849127886633675731558661079660793587536739421961708644589053815268157301855748351237279011885344339311941562570874769813067012883253339450811200031823786633021376966947054140522946907496880241620625033937375867288360483519859876719409109470817718778980697431424362524261574967606191324210695517359152187048374104696407315183495225451306239136839142159831094795001187187922419647505569272039605228837690857761292707564660565223699657525839975183607910790483044101214644605731867577004451718015240314662285594898789047981017404311296238002237612860480273782890353407873695616622155056887706639693984257789781408501252976733788625689090681247212287097933168652685179695808468434656066726571951708922921213752595457503949737956632690949730511461351763318790284609840418634576047751066864620034861002078670585881177245581439682936586249056622234313088999266743674614182550044407593048857465864694949399519836190457598659475321008237212588191110156368070294337137568799079177682000862242957467525638148220975317588748323672567532379863339103224344719623215961920033262532223710415950515508008402783455777898099515212200541499863955345404791878315360571928994229449953217429236259134130741005767726630207794371011940859652485101866188392014198145222488945566490612671626014034179921150468445094591830772299839795386225909609684986632953865206618090129457703933893941546583895081436517407503392127889947690355663667458470977249340721909762328515209811073148807019104964988566279504928052813846033230029192384152268492948814158842533337180564282340361392077835871136807663068599971199215478641539953278581534331735949619532554908998443757512893864092822973112565768197972073343902853460398756731719724727414350134123687858517194716092873472914551641119336583729472005906946325510775383879880597269637897571041922781191759603693463730993404184018364659874172773113452926275357809307803440179139277872137014893784738804445672965461527772001306245570277107789955197564047894425157678716965169474904263225512631836870455338792302892857116585181018758239518803112861900574227724289283052012255369018287116238144660488843138335436274227994536167546943273191113610013440146911587292562337208863345756346131191112607436410327262169468535322414211526647755502035899165054908795814302779433679041772990934335235284446294908363016363382852438938902209383131891776896800138690865972789325715659496909941921304590889717486098556478755571780691311933742170304208583515262052660069844178945747700874998749292662759954515194530943462987215590442562313582521499872148478173146100941772093608127927524630143866133072360285605505603633311448552500388103113824897343626154610773527140003666738870632939121420303067333571861988443382996384322974395594545328308250270612890159725220704044194702072567486670720257411614292930165389092246933971344182401308303446745267993117788887387047042901144834788274487235813193063397688453114768970455134333105853392994896257235706761924143711303598761902977232490733360789627205040247893651543727366703445692796910900164064962329015876293803548317577404369472585114977234164990789591487472526061303203237984377936934997117628001482619704656973378827647612238934243668027814502768808477757982529396246487495809302023700441423769457280298623341841508960722916821925092046460059679907280254430841640505390934681954358615531703652264109591937614227863081508410538782306598171759322362706034694925171683461229713913437545049537123392050660396554681882311004531078406558991100823576566504235385498988509688547925094576139956759346113170750020805908338060338580774518472022011115039687767200293950037206966759185823729329432206485379221087591525646903632874453102143128834020397727429695017388958267547436673497524589396224593479165105325781704591190976199965841656521326861699127682603808529445063547818614345070817127409379323951399062007742396343018429677190449119953044283898895144049409162321465197491564974124797338255598630061414054843357152585296589095609376437960309154093840607812432232966004882762786602664242011787844210834276939492721793348811195573324229488658378323688797894820785862145547423592932619463223166784409560142400141924426671044533288445593695282260101689214350380893682643769881357024314804346810806551612138167532777111075870339384479806350530185717695322646975337012701974991332483314667334606353632744793502720696408738707973005738012864447015781648201435546569738532026260330876646955030138641020668655849168719259462616422585961320930280259895905847039596828461082450215350220530077612855845187087752149542615995387760716594457537911559007299440548734510484687547757693856209961367174429224563339713981872779340586050100875050600756057501993054076952925102508176480104426359697994407537092478400978937327499992623718784658942988910122413708928139744679091484784674952532542871213134254909639894385915638870082566291102128028594553546548020045633046679344345179621253496197871730303263005054532560667751811654673099433966185514131040119729198645799944074386743754937921098906080877131718512833885183798764183972729271030215416361627578516231139865859006609800597740790894028496515617497771150362761480673003289496381479340915758746772207529894701498032802929965901451326490340459665099058209642253096531157485886400514125704716729313388475332440776630975242211910335653236685734479476598454472583496348580823008993707045764039500209446505805895708224968888368056765570345229399189446432372995590109571905902039720380348934157809695080024611916162285446140850960825620717254756540357621541521142984333166911153621826220756515815329038490416627715328643614955729514023676268009547339096190804330893887902009896494132827074666821158045939736750514475225940661897955783194610416355219591357503305746057845887603302021223485002437026484029233182374858319148432273028546282746422305151942104424584910339578548956822754506877208293008228298232153653454221379356088059208428442239061050065855974390215448960539886141304548257756035865465174564694126972998355674524961358954516363486086870767373381430198104877171741922478374324344407032365250749996561254883986086629964168012284459996130145519447500195241934784954703561360177412306751771308377191411213953633342503151234727034369664866090575221059808363063442149702947860039585328694431862893042105352077583574514492779162263539869023885464837122975114546742479848286312176787495252787304876916061857585391380916963313619895468273286422172371785861084592665258045914945628894574147686332746610051857341522002263793123759030169207035233151338403247107553248779975683223461301596135575901621308050533640425586810605117445151192319187553852721071618132896865041425541008089122723454406739440749567395595292491377766887804378040395410783512967058732044632910102115993381119723177901616970447205813344206001175383780987359077184966556500559606021707196421701981832701846854307536025620779976087273496454619591258398336151227312891563438040313072895194902078794415842252366376527249550056447119082889321039655105869726150627141141814397948310275758288066578186879333539279597607704847662810800577692367800350795146134095756628420760602085341319388755782690097780056221302131758509578466239067482087956301054971684147209965392241672521840541714459666426444223177385784516786081602250510357141465017729090522542168722928378202713923300593826141820341036180260278607776854264281035108898337270093057615909201346638389503388616521562773051550991898379190697921942152638805660139996217737085989015355719472561820060454241966028236443426446425728696742482975755429967395243462566903996311146410311179580242603164987289690217356417969899571052361671750532071439263930406175718666543790466057725922179145301542358443104103440253075594129695842112515753369420841463416955580465876668641413247578961124767477755384182732485781746659535095323788354257821685753742356330981211592116259878295333722326443826253151108462948341267908553358344663717990907659933056759257643630602193799716069071029308659003514936305437588381153557552787073595218196812416316395309395744075290173062064038736944435468069802441608813404131625287275070288539322088399607004905371418695325081671227905529573870700160488274393358608106872066411500448804907460278597553299731535663800256471023992421442125140509346261859359766031584349504780869813884306570029332046008753448642830742044412900757669711747396830492405764851589756790604558489264859721515339162023439498538847158500352381939230837334673121542484658287531790789565484592349477415362107872021841823855301945374601355753681773292007920071859056524461817551701632889950841139177850100428772234810798561908482606130961949247691023136733276234497123216567819811252005781258057535623636762471076449429230834846771646485362962157177260392853569849524231103732014564863939434830528670124639613619293502787157836472975052914442172577590671624227793570205107837031813108879980919119272000484357838457910509515917156467649477184335349696395335850741404088046257647410141564720696121175833054661949385780146929387245589144652428891417182026675053517759474009504696051704728863805301001508820480393713901552736768434729034526448669322220025951188222547205999932878955066160901106142257494888762932384472180230882236717142224557272892747913331951908861058427846590753038441476052319914818912547015075229661659057825121681399211909554021220353857832038653966652108369787797605065379432462463157649775694119991573745629308575877556837646621642594408617040237550335836235706468815607229048781612968218206213597008263650195472589760309775404076789411205356454622643546334650747855093055763144653758556731875647473278923819889643313563162985811698748306304937442215673520931696876405510192598806352279503972094963481667343875139166795202964613108155682474078875671712318454710713401211441228867099590298868488159962265247996960201529324704037337856725875681542200474316348705167476817992260342010318974538160848548607930148096433602010519128341234978953782430667256778418907138299057191160500955757504306501532043508756777084494179387548248786330834518981403277740685112048957928566940366082543074472422857568738330631493811161503635921799510836525771113755491632455863730034738238514216852567993936838292577688436780102414437013611548285469599426304078904358495024511936041822048104238816724604227309484132621826567043501415753843552982578528549761583232248773554114806754611346719574780530946016074225759300370996697776298466307386042976910902709779828713803225062120779914522060484921887608254104619032614102346405592231288036788048352343665747052654153452063043863057421906765849736788532980772579117640449350528092022290674930041905201147692401198144354831878108117883853439204322839909942106739416283919995124252763488024818917088444148296794014982421211709022005576130171745851165174074119709658794839775515995383646367294954265611236762178257291424817437523306884986158853063497741856447423049706047960845236219831192531475062863535070977849186683757682038014164055430467670414265292005196656220256365327805932607682023845280994138776637555979946400413606589564356654204484604639133894347083104340906077580867839705273812725167068889153151600566338384432302337034770912881913243390666708885553102222140517051533256886384237390107441912064936387230992999423363212629703782303381981645633661083467142937016540502330072231510181419431308650262560262380152577551101252443009204251530593041673899689067325863500150302339662259577759317858849193598416585911527688384620433069639641236722356688921932629193267201747868865862134729646998632202281139264810641661527146371961887483838110803871003791211438873062242462271160349282387890927651854759638845743643215854331017624292194141019005743043107319637594219799456218277889014781458326134919313800375897342992795421921050403253836854445334046195173863993441392517012309572001062005233948036574149035496056034431640233626737688386881984604186143059949182183261743697052674264744256316926576826788474239762006918525057226640781707296285267942213036255072795473197993319185596983737344389968678632248355959013044173980766866518170231518217618154960451339615011525791740467282432544858030831300007708607403944482779134381981381561326650967948481649718111323116226493138491459642107722964896965866058687188300515023654999090095287183298771993791604152579529777990138872420486100895715807337881638152941755001912411087956970346130288506022435595550626800198122768887066526796892757377385712896964618769900450792828533434303985326778499654595866289262314018967650333130271144209602107193683911796012755198526680131075708841812272061402370549237947418587044122935143926466600717508463208957788790995903021664345378146048122385205036902399481847228804797357300677081192970841317870276623789909231561877852885201019444994713339120654264994506151178811205523308805525991747755004285630186838110174830854412918949211099667648223030307284480786370341781836654474071909615820827144356460415212094891522621024208223050414087259787755690764005179393578459581038860042795961668017573204437946552184035913927990855697340035780124157926217503186647333896980289675711435228664000321711408260612135565656598744036748512811018942763384598325147341749983932105636971546473181229398654300642012400941718479370353279378140906211199755160941186696791619258551155533916639371665323817505850653063831871902846870689842742140324838780738922076065022155841949160100675926763990462622500371870447732285173013761705725948803900085226025347370585449055197370479302402907138173865270553394636779368716416221261153840267857655518733033779582870017209683606088738858111713854329272405096539738264019187804787484400427519715797291331329598063935950620900129282299114663756738536403125148117666915355149499688325541986819734321335999681105247861208858794168574944881062870087565522867957067360331407184430225027450358903215041910545331939585761161260027325306504282480048646551299785064273799176003241868191878432892018603438320256368377182347979177798145365104658091542064042251380562712953158618091798493860638391962851740395309528169462487350661678470583022919277260131675185060422826747982492889539405827489840699559560656098010151541259156508171146809990710777330320552392623462036920673095942272558238911860911480576550824108660152241790967575373011064834657432792960808177995768859451697796352141973257956968015764059529078059550059067689571558112676617156268524398385461688624610477943147741137180743042859411709605573886279558978774225333492334329713974297731266873651674650765776210983959147399413602031837000456703051852639715443751104670573822085412533682094412918404916205220996626390266060946307431438731815212995308857790225992969261459026351352820821034230690797165538701360051417508900803325688389227509100764439742648375231992720395241361786823640383432218066346035648853766894172927215861236083969921893444692744855485369907681727330682703155752879660606375244553504656762934374411604519428925635474550895907789821547242580625665122083692438748483236257994336499388645349449248173597357181368343422459902644770059190330979494378791351633685275945223143552677020732692051999160897418604405462894821156741470000660394023615141850781729429813565093778809739348377905630150270485130149771304361285857615528486533233691370008517721355632546798835389394639238264038028379752160318012058905177763259007463147620045533794000028533524350271397030055747666048225109030070940250046998744701339583052735273797412796883169545175402426687183154689333380050443352204471153325233031998909611398124128847482652215278788243744226146154113371346066707869586631615163516866296707401691491821565028288827036683552466145895416766084908644185896981230626369076714754903065206284601490589781853380419599829833242851777533105395510396967031428051989693245502276924798433133211013630608700076061603920736905392082549062331233224699641138406096980708973668178311394361902659586145625092864232088278265410331102691816792092257835162315839084805909398860614474870403320577221680097853877091431814062789013579294531228312513694123569030108188513687236192386872025543167108520858349631570957681198993009504922580337112493367878854330500587851316574109680336925139558017018602483041222219919876718325876614138484574893884094855264949209408321403834787849920266438496653666612702302937238452830741389753328753088996934269554374184678849595279957657266291658832685656126772685800271480489724969637956826928090093981334692361847661395517214428762495259344977347640535947260422231659653858671259157875707142106624656351181243941119395360638601995326229478176563940092044520491441932995405857228414242369065339275117915416062313956825524809622057248353709547392868829066303905806305651707806586343743600232060400911749505339669066007481511366150483658970577879255606890625485599165066147724843958561653367959653538869949812677729287431656297590928290740929113831218582747684452603000202801000332913759054812189509461939029046649066166046155043569612993517023402468156875566969082336684608610426903571667906768674129587556001289432351237285092346203816428201433472062865154614981075650930365476255433700779053111026012993681873974084527266608943874726387351421695356492910773748220997130707684525863192205985306470132106066289351031302872133078269496735257265322213124418149071119414664467932009317636607249192916897944876966862088809656135089281025888293060913845156032457121498936455572093253856989063198145056706148328473121469058571220228048565248240305061269887928568902188923466186313365462075543943144564534666317824809278296813783952822142862789548049078470890717752514310446550691850904133586161887255647144386860500745597680931678621968023235407838845304659360403777914667957801047650302606132747574503935960185543507217017501611034841350323111364579381095886430049960839173329473117131214020261421344398579359350626607049872625797275916343111219859620156993386810637968158643097975471937631339332481585902238893780974461348544118942936740557095373018790174607312460781482605673765511703146213774937847828292322872010404665653315771936714444453395176057943292191605565681016901619421328208231596547441365517657466430708833433173400632795634282363702943689063794952605819898518947960814092082153274836943739110393524143553440088900187059941017536838153789774058173697086462495212818358520872470784430833259939556846639369490818921769173505706277770831425711796861933810162964799615444310480678064883881033301156976875940129837359171355090024680250056826477545301808999367563673999382218019702451050488060088172533086970708490733434352243155069351232795931762739295365088590710709616478234972430678835013233668765960238272644497908083985247847473500696689455484829547860850560750584109519720986439708300535846124619082782658279210853550552506094656741983448900837450169829912858226905699413434726662916878405935455703610485491346074459436218909106059720614721954682494688973462309172237431221886496472211161650148466332117117913686798203311390441274778916363216573670681994016319307469443587875800674467072882583846663570053293695606421004731289480145461268875563497319138276912290726960318162315987524218999940085764437018194487555988391161635536940348063184153708900720240722936811359846512521034312938321231354033616546126966025646137021796837197859673054003598968068010883642145176287228803591748190024978541819314881640319094414170514986852061080423103657752354928406297775171243429668070789355855929457328093481218288522069486599944229599346449867717942926301263060788138172671399365561477344419191486208777774511777316462332948712403449084489235773480730953864356026268462369226507619660193339865986074002719773002976863270479588165541938231612586142003518843204581528715498812716522373284679603156397898727024272574215635228723776476369029473124003278445153961712442435156918076345643500437796081216553401176350387668038482966296416605715868621287722043415886176534448437025259219893263745149521852752650053179591717255576945294975142336334288315643573522109686911163471847016940226986873513974603248242816842536382625587803628301698218909105130395125158778283993101298711304124257337322719119947326171554645719682448587556896777593857774489459915904711709480306494577193856865915207817633024437009535410922122995508225421372140932484037520913048357839904648255697547477922421870577628311058142757815394507977693799297475843490326147624145613421738706766733693889649835725418462512384851583462565181925933590973264416481306102640416236904055620424428888134193449658661696868791387304954656411140342387760401044081612454299152368597092573215059525495161470402057185008153728084241246593788774111648591304873638773857320882780803649544122707521625389321668325316576519595160572728679480296379759500295550638328136533252075899696904689601460102784788150865228180376657111573030171198189510338111892903178004889126329349325911369654778400040267090148497584734086317457710109789169795829085666181478532128550373765672891817331968185589161798433211630642286002972299849927214719424089422652221321236718945580314448829408988948687340637600708684646459022469292285034857591891004402490374471185104239059156984405690839781110870188411224938233205477411944549341513858525158409630489385882225972605031256873819932024074502999145049381708141804441342019337640697596179275008894658738610052200164415804439157393984475857021644418986607030021470834376729656497241635030890852961185739279324670394524709529986408484004621785251781469760331181332177503446823927496708455255076577755523208167175068296755632973950513835298028458691185047188988102278747246011805526785092264925983021442471506955337087262439809663167095626184125746005448341705556383578951387387352316502575289919411890701170360224128990214216931843147737308271001117364428849110018940335596881991915903004784412354172198494259014882220218972835298038274684263154101174539820692440331934320174475720317689690834037383977619309183171270069157774470175571260527362700543352122201615238627284365688891885905070011171439314474544680355330059360598957928928483111189451674030008898959396776641234576838901679777062714269614265667133064346572549172111277351505422751921532563298806734208154660647682011880288148079831778772511365769598866159687585323978563713156301811273322687748471462887717594415851446336132974424950148788104574753638685375711736431053212142197484098047262980370368951954699333841132293724826326345217773600653793903105489064009343978550017063464815380255475682945808733002019435329317311407653166199802642528418866178180965499567467136283281705795564708651448391281060374338189518376408146549386912382967133759827556572374513832848201198063724311935380359684540454185985111996798646437132742449379682106380217503731635694400800118987229289459121651879094395141521568800423375041931419395800481610788929530464387577024135173841839883931448493187092561925477010005112593107101576433370428148660847915001245344917159145935343470733959782241263491245234561543024246618256019440478376882640677497484677513710735320724612994971765942327603084525152997522663472638524887743780975417019763089714729418007325198947885928085541489748328949349068329042984078887429286887388132878140755324885273818632162932549034069500056211461973841964792147140777577484378823366404018030336382509841750745438176354714439472471163025687393921651452933540149359867924766099847057403857954649282825740047964540010472489154638571630468740183826517124353442002306163279305528040461093475612792851140019150873264371307421923019530524872977298033802487553680465372498145328553561627531854920322044451246622214193003070393854082561214779898030084353911110441488696319235490045672788839459250011302065131874619564856833215470780894507244377593239703785564896585914169664923992390097253819294137026904425565180561921521555171557402724509392705234276704243397253543542881772664613530714570458300897681099542101262249456845751274738490105040141812036362231742121135149752325800378426295263057043914842437922393881744504112911564813101909712556778321315730164392401461228822296602880677204958029780123645703798157654318203286239004946929675703684426492845357892415494880330471483419424602977898020277003214293583227835718543562847266868317714400447633027071945699002425420509547596711777486697369516344031423732523619780259345615851207767470460697937359832111411955441183768755080547625570735853413338305198549238334809107526098481929753598127807624691594003765823701036171269833863131468997912307500377525176221121835037466325627697137096075200728143349829908424456013784653876505507158346283362913888234796310214713328983305158886863280669957353547241729022422568515775347224559169040174360835589904752396753728879315255507327133846581056823236992736730110850481112811095639197725190210227123909749771551123178360416808904102301475950660982061583720795900682065077591129252210513363967331317597789674595310971426710453477554090842118408705460507198965962857161316204273743883853384424502960395419010490530342420846380182447270465298434199461592352907059856679337442742261242661321394300708835523625507122395755461240154739108221132991157029794834686340998344949109940696803301506834357856787527159916106653442626160468413347199025195147351761874908496270034230610459869293637634102594343366830677022588009264231336392146623249246549453304940099333034626942875915647428818414418643866278991107728635078551511877579581160625542645013634679927404665285426191248958992227956535073431617879634047747777412153284259529364403244123457363808907234140768785613771710462843279958603744694475430135304080634188901884092719962380592890208864193643178708696871154736011426553200674499142150398266775029440509060876055418216262600033791930747678560943735524518195366653859607611842731756762045110125838112510541357191787486300496091157071973953618828491417263899554876947914395023642642194030618024298640700280693278181882334616601876834918914219537173551272026106311404474766911476546448757957247736320975125396704247924327064519927880570447615039422356901823543088595108864542752950635353156247749710363374752063967106582498069137791586095154247675950285629168882592131043672336806269500893333969895864112853302410710807277309261157860475161142940612925727108121879756198785946921774499799942657203234569518170990316864430786747095825697060192234010187097115618687447979452342631037953337339692113276386432230127463289182736896872697779620452184375406775420300440300067675552251024982891495199774423768700791754652514062349873582417276385566310651227185809666369823264042441168971518003777647663205265072560031607811053322319602408439965438297464142617419891265714154630294142735393130076452843209748958553235895384593365029758523760675090216447959932403218533990956367475429788700936908871029320469948009147670811033237284404950977974588665419283019606966780916272463448707460489368272334170239855575629833785971927778561259636248015427287287129634607955990864139684071564983554169127083287340204943952227980260979738482876956171589127788352181039431005147045680342907760685830672842610658939611128259699469868817887348757268558108318439730513123708378009841392820482421265817949824121198597907344579457656584782642453748409477460227439809792008126054552994711519708955187861992035514128809788496851828233937596527777684517934196432317417653320513823078816304732542143476940462924352500826720343576715913752587756933458879524140286887293980075777787788660943724180823673196008750510373066030327769326692213261770064924527982555333457111891874493534225325699093533921908682762746008615001349771341030896090643131890879171634406368349903418232595916157059390971769372222270274885435870204238271403948529845173641963737060910140844893882887788148214091122568235229712276309451701498105067068551285997647346919477748615078945210949087525861569830938752352116612336995524972567312937080442541351136524632425434790104610465205527753970797185777047306564848192398026194156337061370463676798607593520232074339366310787805828019107341891113477839607739152150050285515032521209952700267772087987985476054134486947695716610183289219415328737502441789068438427698270558211105854152716201908451250941255856498200294063430824216393657266116038957359486368741093103079489785386180970829826885283281477722488505370737669082923787824070870655752597052037573460356066499120988096620846750175273114352603219360884122451442570814729302597513043523078224272269557319690372762147638922945602272580496950960268528691297059116018983541792764880924269488887571393902784384515448192891338789565778911025469324261679118782778912119110918038559939775039158454488606247626819006977734326508231766219061249836534380318918609633687318800979736219073118718050316129043511250347637733553045326885538915519883374655996746759935121031630208118136927420568894178274059508307103428153648630524632828865137551150188987330588018405116455346958721818800800948071791503162634793647611895135331391605647094759142177892549138033706091436538951733428993640777263140839801805361015971085013339114287822849553651963145690140037884917951829806936118907873976670499768250250481476980081651705849795314294600091702520748168545375994348470595665096989210963989722498604388348231598068281682598636969315723371586622898984215940918504669401328622155019361692912018066140747243439663212272238400141853828134851074185710686894296646592845413876345439452299095600659941666072433670292532179040582567745568270138464858623615666277520206417078210986356628876760011827840093225174012566135213400379516801232573272723294239832417697171252655386797613306129105776372792575829589256991261341087151229068096896146407685359007350109619187334788145435707531630850476598972971625489378283566373601918364077218208495900287013198463698502568236268598689387676776061056641448124411909765312657792520795925418948127150400351208045106182965876888954905540072326640015204681617444692017155658919883356466751670581201705594325747142365958121923913331372539360132751903372083772539458932714855633681225722124906533274554478334910563587786640378634808981232817693772091440699877747451314739633006279445227099110311884862200858089908888491979011455039598550403756480093436677349822420339450977521802511132055349042265108326321897408737173507187106498548117755736334355386340362816989746456820481970308522449025627077272256253382869752676996616532799836760132813994590730998931001375831941344239961883681200782447454524308064144841873446327830589623826209983734128780780467035325609912058531212855762394441083485897400170504820414782137406741137493897022551151001289813742241058814209473065359044868637975643338043477901043859093657760776630087973932374140724628578377783511387081291378661809099184471951137924202259120491928506239876673723945465861875433205613841273993746447522490212999612195790160168080293744869739437555034759012524038267854098421936947641257162918350556336579383236198574474195404177862356003261946004311777050337190899307974465981365460615257075476945074153597578066885596111990510787337214523386519940951407076854793345994474530349602761132229514920845382939446479444240058024687348735569357108467265593017026206696940488666650092601647129048931334432041293791169406293514781094779974361836016605903761228933757822483454288451061044457752134704461219293289887133868337911584204006036279517694877366759022290521091165694468850487425324087500897710346713522310339116441171387859070682452760510248632459087697376423635133089102517052950037777621056275559179672735515173255673593981589914120919948552396924211732977722067091270876115249093741326324037267899711005009972497052810595318079132140343772441999624533552209694374469523182724508397545995261076773970078895772458221635513603754643189328349687339926795572774539921374462726479635168716112891094012200380618460317526810889546384806551918028097916186835922503561092653939096281764269515051604208847555006762572203367956101336450859960038864955441386722848416987361181740996491403652451171953555094530934347307066974802786881324762718862764806350435447292607066453522385300064155686796773326028148780025089391015358114686461715497155018652772525321567444200745162980185075229091071903054156076056181030155187928462351979976524321782912736624962768488855842122221249600349295497113937298858037232390013292591669801585986506880029141330496471622515744405012386351333687980881305604163577069315239416664385247737966252906769723391540872139219531664627233214281785841859281608938546445226535128285232499884743637283961094921223197849098942462248039620726047905919067562044751620553264961818384985474199935196554970336250942848437097226092925318430321040820355080441839140342098144385741998691977850429994383150136334101845311256196669654161632138799274469646151960636158121341966801216608131919989406053771146830339341567142069994373738965673629987023320805602320988930714110638991443607605175098102290675287977853351470315892735461738482203566290312653690853026134373080242898398904881819160499422220521503152564599294640164559071706080655375477972795099709189064418367266111773623427975445474840390670424760310321877593083027058048615426286712930591827087098282891466553721637521079686660429385559137914515799963924565697836754705340963267197916445870691658593270125463290157397425378070750999845040442110456966618702454250571457006020473288289007197799029960029032315512216598404337558422918724517446028773078812716360745120387271427526620871437051010113560239292355993236502349067080851717446413682300178287378036694589171376247440297354082122248657611419379068021774708917088962884408206363691323945906832323364277222684920527076058979238427962137465379865716877688873271265581190471267722029461699644928846032957775526080237135514174538568614530908324005207080803518614437766841691912080006130177635505058514990872625733983570117459324494074640455955187584850064957139213286764641659802078496346355745047348538429499986256496243415790346834738386373700528875621264696249513712224618312008086487008892712476694546610296174656302008699267366453018001752086832544884511806903023171736547435688288501639025730616468669660012506514411244892131742335187371907766111844695632414641056592768500832199856547904058808796038999993295529846079879201134650142702379635326810571683009825078040762635307572626526041659874107031464756103389779982673287401245222013108104077448748180015273787310042137801404309867758400033274812676250734836142808489752733821034718826299163306526371228368205405538105642038945301571719395252091185252349336772442211535539506968093283891353873575224986436610523969246936781546242144959857319999253394055513930802291811224492967483388547905817600415835248263237779035810648222989061602037114180874662693689195744757650111886813405320847143905627816932985970623966235254406711087179920437425889651257580912859132779245731432288622458717140798477396828530475414432711679759121132955013434048942978600668723513901992540787872137692439963444292651087693056569045361902074054221538004418953082640298028593217094599924738380227946320763908027842405387817270275880938285897289673447494683579565843577084605481321780854551205676120267078400327423311617358174062101184357576674341163605557429854924375174298095885750383817747601451804679290935218649584050097043374870484438695619472473627126660844651431088927035423644345773958552417321352899380792120358771193294151170733864964103432867676515625458672086293759717469289181686062657528034094612070366365431615345925549178743455059846662218400611626866205802695433748707765723255810991860852366476774928427144714660109317373472033512049961211794777499728404498870310537763974137738371598146793423755186404123228405015992549893628182854872963209124529830691418989252158175852829202970303173976296076118723782962187524513959842492336213137481822515527133039492533163666494249229923050016995750927147092278059850799013597092585933698011294513217572841092581774798601956561703618325016057533503700834689189174166176200628909532023754053455991127303886809052828185771082961506482219930919752338231533272539814261157931508255215677488659339628055242903612199669401997739184145632097138564550254607207070534800734951106489130684274516509568541591170207859925647876879286515223201503088754224074968004618367044702799500877272494266417464820934248570801881129527786346706779400619934017615790373226120570903360705485172416315811270379584771168834836901118372913798501159479420618092133414882291339924800963637605754240012844400420221875350773198241967073568722603072447800852453621078572538403637700046367856595947148099795529929339636109947883626862162229951417341085141447103848467187394418797966277873909506686486239341940424876859287194914993428631972599406533598448356414738684595521977253255210513477604279253175708209783611626220823752137482055000251039234350852966657448774756827446088135658307637215962757363420840580404912686357105400753908116594965703878251082321640422281592133336738554187390729085561405659311701382498950846747783097191683524518912673793136094869270165020686315439672728162214762553174387322033966514733360348468949423280649849149402976012425877658169986272820790259095084359922129555923738099979885356932221783502939908782401566457112687910200947745838320460888470694218380646465585601568225159081656948873175573752082775655835601852128301105232808774230536372836836445003675414490220840840012647966648283174230328500015750619965549414070396117312602486382048882793892901548913831325598206314384605637031949019183198185792032800065864498175828967913273922807104710962865370020436809123311678415266763523567852972592646735335439600291307369627251398270141838106151514204087605686567368204983511051131881556607098839712823015455519421524864452567562379318329388408144340451573288615953189418376199222445626549894341549749294080948018493210521852761673585983759541571812959474424900191619389702365314208846201195560606320040624890676732527112651877911886388377840829950971147522894808448371179542547284921554680125664679516353201442658002693123205151197395111304165766167032477170599900906078584853453795013726848256199411091398288807966302301624311975876512756563726906391068661330422284819213941815847660683081922260807681050108236871769647759995714417285274700296580312411132233750921818385941822353885791903458936461373462095034588306813426637557761339022279617291488326268552433722082374655050005215098426143525526601915769934966665260451541068113126164467406314401304863895890241510400132750681743201438889504907565528942451102494969819003343412693972713597568614209413612903655322457927181548237217056400766859645033907155755422098913822042714042396421025080272912310485418634446348021494863401551853977341962252652605002585768092132286796879276379194631445977800187672855980862821039342264648625879294929842482675249496454644934095468270976840927058733796911156037923082654815757694337474945331689015070182700797414833348668578686961120376922483919362871110117158712751479212630074061985200473175734023702918812334178603269510344376830711696620166937422536502620740164650240348668631167459274209132572669772846456633518540634133954347025208666079713765520895625857925850497583816493299174064986688987815957913606182433667606583112969195287473469544886843338125059939153784423857531786683161226735631005768759097780139783840204054833272806301354441866695375422390456330033030572253753399944634862701648495785697603757733767686926558139438307027267722765944437152757445667105077463680340720970302918997869788437998864200400073625650303185662312893798454164529497309364424486532526894563532977194480821031830008950839474325384381864574310785231380627960303564462195859301514744656815591059808342963852707359592626112024642365664570733175570519966412555184260400663683408354799900452206342414505975409400919888374854429174218177404355619590427216688281867384644896144763495375086810331818825269994981551249252694303213048643147265077156835614911773302907383676083811570604276448759282357359821962342178592270987492668774641642207299749264449496893595843172444765120422826330019184294742682284986106412565066628365128409487384400418976801939941348900479373768598342298621304192889940741254514131458081662697720916823232790740281068775265574772732914464914027335434640823598105831869751355263281506126292111978969251073199840576114984941392259678015678995703484491070538920900378366456219825718441221885188630281559287589549197595165133495063877827324477608533761631467598638189045796984359245232199883195891814965987508827218410239503542993237395931367025347323671317129026622135477395546295948572151324409954761727950196500159211010331569365129241626541561620543568388604754888657328584466035611218498586869353628126086720184413718938677649293089523723831844979044730217199844668574035631207155290873655537812025543202094523443518333053548773765027758466859148637714554067686221476598893848548174836500737170200298229562777386031129934553761536983846817827697634446099657755399128469964225546795616614287116050980363832924403763493063579164894867816901393962365735633416159643585936352454555427975701939063543474613766694816920245754356575931836396335469098682062314214474310799895621149917781984215022293715285571281770067104675457621212629429105309537470187737122934212963023352097829977803530451667207849250167026433974381506372887754734542589868953084292031533145467428408311463065635613292245049354182797151809624616059110451527496864596419765396028019253765236224533754229449491683950367834982237815852414957814119436606801476448278125608025388068689147672999841484196619378923434036872347672375465567851384108721366804803987800837537266904306865611893744490760446997330162122387561572575482347585807618219923113500739224668001235135133752724612242219616034925554500158933880965242582736397233028794041108370581599496464822986670142831534744114873927993184792984246234879339374924108629992464699303151905888811313701369913800354865440308698920615910274074682928951582749639708818855789548304527258106517354728712527614303648150191344100921182578582659025548964140359110025865217193624758468413835451641427970676555124637725218053441860107931620883106910002372884950060507824145450741793640140395436954681725751389140264307564447534582725378384469223800103438142271891663576637288412857618974976818503584461052102201730882649610550578598512091242593491017157095732917860803209962732021610755645904913301167765886244529742971888841724029808284375661159825203257017534996984130786288580356816578215609267052966056185495589825513657888578678219088905526894594329853312644975814747076373333145159845338859090683169250761649839965913287041901448974599927516470205161702420826545956154333489796846984347213567216413091313320388760615506532209327764308937963493655678780485062332856318090161967732132502776754462712812928119364521170072094523014366384867387883177373510016378292013542345475503803539368470528551277542393519383072265487703772517635017631135582653275341505932193735162059917179844687449459545569716468281616031504377740830071466814455151414834246277866580262984023890647776453999556503215405552231532868985108780139506736531563005744985632465123095651049374987246516016896383908477206783785426463532304028044772180955525890351138253554039261071541802113122188684414939172257956159736778791024722902303568141990796104904354700085608925347253781659612579879686488082523309448799728844130485806847354060340096276946518258097637928027617874558344009565600454029669481540450276531433117878440779660587266822749985212057869690787636685610204476229851111728170353113920349063710371926668501966158097166591020202716009277736240424320005351269074187526058528743897555375162452592034164577065847104521534322787803923724300411174571037732264791014859087197133113530807527562294279856033900536126868436178340215265906572186441080429189698024535664032780162680179015507704117691525846511444690468196114987873070429962192419878346670712562953500197303679006083790450735392451354390712720631260667876076498095384063530779067295279349318368148642969533694183253884460640876093631048974572413622483044581410254228733357858985249644183768399813252832512751857920062957034491827282027625358265365606799426536654272297808497483418817038832676049349949805636808708464927422645230897010414572680087592947589580765382500207280312001111780547679897206178478040773968365729340668412520377119872971108512488402665731324460180190651000504589458295676547187942995108571758955918271655965290302621050061980116775653402774996217302186793575808731132133461673244302534433704586088880106852147400407756395906703090017547216773513142702251617229685937223812959479693426343441344476781957835713205568265162162794400042612899668284832325511192288487408497973100088133326596403634668021870818327561998249777249118864213476726397998293085441331302806939539850607688404696752945724978624377945216491431284541463469600578319535421348441950051908292339059024194615740270027108212538657410362119874560696666255369864820054561495332676330538591067313471590878945332930946273123443016607985684834700746590602077991872082829757848077449073713718897842085895020109623388531590371361628376308064606425731551927269940483228527946159751806501693668007464010817530941665772817894415366180719252908355581422372400634565170756809048969765280980851478974888741003976671632612034730185643269095649681695352391994466657999006917993225724443332985648263337886057389390483796726579089024147806250826307810083240748623412426941165606303222822049791607482070684327362204878030954810728198234512279612831544619583926723112352299540066358825321616191080183181545096273309907579361879054187764025642925122527211594297336932541363407558063787127796164021265435319206698813483597121073635544661636491793207929210070876079548907049717893943016598249188010522924677892175019014865053302575128500315438930650294323639237077667509262688350445751177706032214983101843426655816508050874494482726536345993838513212104525630382911919788995974099825143782628739152437347115126425304358242127554880691608440568492687309020014877205092418771319355535363419158992956126841563422537090785839849737151717835525602283331273806818824027332530942007388003176594430835388349173139241499161728010342741191034691435961910884639781125070775152174351073823034752509677523269039198142916018357609257226296231371600141512384664155860232691677899066848558395687546162050327887219659092807106015254845104665024457805588519684028776493257368388275670476624025272855750751531645877951897278299627160012103303442000785554883802627328883432004718228995742231012406658985952943951672603286955661675501578732762361412126227412306812334153259249778697530197218441455335659304020874694311099640994870113089602796236675172345223371255603665752911088259889933471648206393577400717064604112100149296658464110790031594561862347517554828670890364634931888837979631199264644158580274137351783565332014049823355232516489006262773883161582821522493426107363481130253048461030492457086560516421210839721760532157751249196395991338343486052812270607270795864178583470873401728571883012993925213205770027952397015872034065823213139231391529640947570785591145556339037316138803380062338542253174078251126878995027320364500184793303854609994309466115375992123683259853515381166123222714095561967890352049128739749410146185199668551756458685850075720346066751927568240003835586086440788980402245871163400318800077668836340978241764731382760621439199960023804802885261701112078118992553437672709456853935581009263296571048099857152657009508065959495823888480805066120377065349832383830597363715746298778842925391341984378328019210292338272789832154974886489729811141548406663626899506647512451251775980132846755106948909105641534132882518273543581240813230471477688440746809144827945121268557935044056648378264339896991193595077156488993097843547202343262277700776982573225563969752086798381401134968274998946647189861223891927116475306053178586681470312835413611279797066780916036079722947688079412806187472995518275204555355839729410586930285926911101293794571491073674749084762471528094395348649559459080126874524205952353089749479770937377619431531002443905910428944224417181141306445116762830203953571916359415446309500115507417443766066782604032851226643363702024636006867326417472849058644094093042111196842913063256742701907480504929522608427560715282218640744635767463183898951326257005493361536893400983823017996393923364847551489471003036901672555828646462774021611274049632550879241294793051176698987764663580397930041739439450916044510137120019708919978750535675767212326649637902668339774856099737326542639281513770205731524638504962850884274507165523113478809875236924599322280582411503182854008368838392747549958351451553717933983656679227314675790022754219644442714198950200651649231876212500617582184557568724200419728874254104899558083354395151511199119781650015841291992686036156286600137089832828154383973341646679928991225093139058850870100131055399159080461941189873571395879563408372186525192037117969323060339475701205258867078737729611511132744453789473431753209859232733903735591645347231216181689068135977866913027009877771711980525875271614093851061580631783794189547366254859403078695078608449105264743820550902610620060164017632323895147382464414657690338744469235151393346705645331220271758841578013925852654334052129594498757516658380922942926305484356080151054272358993882415745846045911194634279800841396273850402998389878612161463401065511096971784723987570408597951177410621337605125799984838565948540375479660664333703204357189131033234075220687799204751569771290991289911938551444166611116638848907683169046295580883505600466604051251269708878447523662289975931539612690449154718421755727375906240805342082119535153255924597529397251131220940364649138202335109754303671429636843876771016433932525308846298718780368594691778742721576283427131362854249247998132404737743918886598715433558648846189922462912438319529829849164487059037537625578530611491410133205768752309300453067879812351195405974518276123205424632261123146837461342104333084825001868411677478253238844666263321954896349169926527658470135451658818362542132783296666480191324611141374142179554494649250034244484434500092483167649311284717797819346285064371337402646071454740706921399338414845347798114494907782330378666097308634766940556206459089133476327769226720293656503215277208232313796725377973038982961428943142564433842071424481737109559262376294912310940599261014551541215677642152820444996747668431626899587714826140247554580721345518858794425700203133358096546382812236424774729810172460151130755826668596722301388046143738305214825277309826393239387774228156189122044411569945511470314994217711125725050961109524741356776493565293822988863681312073590772650825877967347490932355389530137244835857473142896739301254143560979249837071675890480986884008790459044955963374441450868829495867451283170832099482445869139328719572076376402105395107495146765135640449347331568539874130069818853571362258376215894177883814151759950972074704817701285000415662560738299016504125047068043272606115067479185341389738950392953057282341177136526201075635281909089605579800400835584334155658291605632510612418167278605355560020838466364444067845997063825812784413362856856609941906893840217582221510793355760469063925873825240500263612401610648214720298646645820551311901871579950622206205173587990199073028595446446756055104131434559853204791127506715348820515320520342684987787821852242868286021071352636883077479911289320651620087398462115974247827610523442503127616009718224303839867547020782515831690597155989964068640034538871477390557924565805386462446964829813947814819414528447886780505450914539758384314972798771451556700281072435438242203651001673682660460676052397562157909335416073401738466622686621276009756324066028551245946856829842207558970881398454830493466014052738785064986167162519594659500556006173210013550226854452904143846342673831726371361404308020351902967680805101279903042618096819659086402679998595150685977010581738375951370467601011414569638190289844248971392485659160090119150653731922762700750287754657031338949035524392489620965785260929170956708170835972945036698372522693408422765966900831990651278915243414754107505008971685044168226349248155506690269759493986155313527270396248468932936515466743912016941584654026899688173022945529088624165976134327397834566177438640971022653482705274353842048979909424743649595694858222991026714462877388674875680915545157123417681910998553322675070439628474826226423687528657056968326641136381932716360523301339747878901951954976520086165388306296707469221069111629711455491600231780223540836850279668488249164215817352466550563721888507514873124354922577460899361475431441085846644539932804768483075414532122485072159837434438277432418227865884747111179775755140532227688873253876228359892761684369537706823161221860895945937631947667214750323255420601735898341890824487687062980909832390184384699265209719012955485020242403729495530932329506453051639452939733438608373407897270133566598987389496542094355571276602673546281103211127316235127846837380171061272443700930709314396765534458376700277732626196044489117558944370343562729916523079531669294707249060833632591446189000524388059205908248626974527044785900278483848778624991941875509096112122170977241899967251119657229584650111205231369550995370124848939998097980397389482599684186841118662435599825695988564062328817782559899707847501258650604013754833288741813177748293466248922155460356197235446239018153674224672353891253619775739032590581652525496020927328299485625485151443523689966834905143667017341157569918029257029541524763117941671306207247117007044322865734851713207057570995941444293501963887501737778905343698096689033488484674138936991504329463916002377227212819692395782186387014175688742360907556147094923624268125077735438698503411114586197164565963516478874505893725509951115687057798434856506117270327301830067708822433719163682272363419411530654780916053769672654546994464918028225223074949042675358472400214120331961697805763562636058625689900045545088818391697943100309168023795624972510262994602608600375670854325242014223103188488754358451231748822972789512845303466924255556393182565146972388582373755183895862760900333822537240274702945666540588524789971392977638833527087664640811137439751469900972698667312477949841167559254860773762654556073131621723966649381140216596170849656806427736334880352105413293854151503563095160899288670327501839357155831812377200702701577522499565937558555798407786385510772521145812684812657555558692110795149574832102072025728393651187845122007879176617012745498628904286133971339014683104044998624561787993867241680571777041926422392897732712307775315989031649080900327480416064312364745775065709760056395283186969803933645123171648888250360978716035014064220979792995495148187948344450203427673830700247649154059689384820821463927788338907892962364109235950264948323447381529665340870981913855403520536071300560482294080318777226322411812436209411625354795959723012687342975680121813157297798916648244037876943571715302901314016140914053355501310661674416699790763153476963589293391358898173038578157359396951271078827981214198564788510013260074840422896907086985709032723236010290074453034536303571604942305208897231762777569379940574356331609574111496663291261675854771970220039493904339038475952756851544163478529110060759169534816989769831132335827532347193495526069020658486415247970219686196713779795305809553414572441519955278012330426083563575787118794237219923532858493442862148352254334940227043698278134339566327818473573793967414316711061277574436903700595556610452043055275747545993467063525520496561120292768694796649937281471777709475192890806588109493165881518423675156953919252626799286405216506034941165941802489548647012713496238106078159747200445434135324704127287437204013515539228506815246781074785794039531816407387583273184989385772374629720102536344822302770988776093694858903377249342433861831127963880377160919810352207899235721895199308065233050118006257118196103802850496888070543892471614022350184864904530402075018133419288938247669100279287752632828474350326610821138610949564616397891904212004613715764335513968548124319533376682897368034489614312800979299074942300393812935111198655509213267696521633109073974207035208833663335611388294894362991496981253467414208026313820088837162690556261575174455491412117343128171799751892764485794245760853169975280653421979807764575674104542872370953050611107538577385851066782925149275299522930565946046346591154453732952211869337496019739791566570487459222483411230275486927975593207898447246792758639243779522408802306476833869467991825805058426831790902454307606100034136273580648106169776909885081880632209036475229696916948470387609604106055321889513546611194391276397047832107105981137979040237336759908818652013521436358014148939736498057531383398635092447777626202889057789430264173047249393816075596947754885962278360381676911175085923610649895656521662218144792843713642046413028272246283153144380819522265478467116082008808319535652239730162212893990743827558574900536007776520697441368492526666234885484928746182301876391429290483240166908921394611310350001813251578641781768864563497841515174481541342728797749193173008757514454109308045531019942476048720339201617490766331228957753802678650274857389154042701559175581386043625967529153399190621633607214121106000653958021093178640198777359657972194153158814682538886694026720091526584112755718074819031809431818670525279752590985798322728579237174917984809654120119389148264902857972790170450769444108272467487435163229421323110741312215854120869690494901765832068477020670943837189206011688473029043852139446095342159698916541285138460875239700694884663360021199844474592496166889578781187939318555278874150918801211511310583449070972140656226954123320707869810120576112540127871711538526537861453060624830436295041897800147125348337145838553267490732125139758918130412893908165103920122578839941883301256698676921939866182048847881183419852701505902570390376210316548655380198981715402342606798737095065806992669670522323727484776895155322984418815662461033990713752426645296844521188487939096953594242036403098061828422016794588161554697938851845206214193070912188798852328066492834130769572152989908859489385266849809126371302430637810370792837953048449132895909265654073893552470214225853825845682048800170189750642581619723930832138572840867264942697967062089317150826843719827662371686906722854490625117116284485883012602713137462096957981271894227781845591542169031207237633913734959390491327009245176911870628354424881085206596418219047483120783553723554965906357710426792405680243898061141529802669092234134605228926547383214946364436719504020552743405270193582997087021800902345206229224928003104732415224158599003184909115062023540906183548117188992754272874851319442297478013094163418740625464730588927668794051877032727861329693873222587666238559444869520726782085555590677715394593720070184978368029723885951480120737287600327744873092451472290597063591006118062862962824555011024765399857340225717069110644549400946643001322714396009178230372450654524884893331682338850845267450656034723473665608695952050796009009451570136280906445157978870672115437940231300966730153011314846068413513249432399593817989649680443849626891568835458518452384442050492775104330008751251541923309089000196556115534598309683148264557727022982266735983925337434771613205179581688436931554574541056032678528951746975306632903177837978149172261167670530780735801503803725030324560799587205694052405516518471910268555104235634427703953589746626658060141988453055725559027346678394046656952687979476889280789479755266781695166007860297675899363497614321996042586736539592596516695590640218442368356180941901465933539351504750702309339961076510603544513141553750827576783301955047368044899124262185812540103855299208498291669633466766929998305074236448763947049890939502810928089669382106261843277741970025522277766231667238597194212277801600787112565026825688474459585501436515594205036739874942700463235537063897760910067818356798035053880786206695712069842142607938727046945086837220015227910688586837005462892188397054201232930774005944244401553506907176194106173583204396727356421781889707952032567544944481616370090429153016613959997617450418364547044195648559164163498842711618539138828252794166313350806545410999028062580416255267572259813803853950568203975398183185860069680667240298415812227546609648963107735628873261774499447538502863617653133837003300771500530557882454805699069700024098017720278432879276760099621434108315780935646389566588717005687785536977876242515380940968173671395325584631398620481350373293649421741539870444207360660319182986984851624885871065725369320553882565498944569971395369721517193340255804193342348145468786188930632699205847293867157661707877171666789528601171108676810680421877589570202599119800679579166784343385523339016461084715436554552741947919379810398434578180285594479058089318488593934551639245753949582612243408979908005952729453116263871399538755756707618468553875704935930611219205540072504144331242759448756216750690024250643693660596080423745888596772652916821899195631012959846161935315975990016455805558647543175039845925510713733455734683000345177773895056724628696969465682512115625886120099373940402182322874370709428843576025491579523978670592557306865199533686569938841201013171984754276707983367871524934175059673320236156543944859022866468291574060111915434683697148436262933244837897853119451656480185429867430790124162096501008876883885945930531886374166306245704464684546551178396258773297696936643171272976073639706544690757536667847463561315869660277698335533578617738543083180370009697586157118050096130530628080251794353019484753897242781811477348539652591768665368451293158800081451495477456625168846709691742846941038315288863020443856269557352465583209241498429196375257701179069978383440482953356632261359607620405377205609466509674124541802883415231857580566411837073535811112732983895243388151131551842321412722267298853234897105360344716000880938063705837125468934014443617031474206445457138787265340147864094672626870434149751591257071640496714503507181124812619593449913998974531956320302147265884316584143892775844658368209383181816292806593290363219882727878077639429198498873525720511426097534846260613719659924477534588069488431298300001891466592131436755594099167741703632587198725858468889125010669271018857706918452373465282409427324542407893029351017139313613885182307236852499594862154872488075682184810936901359684389459935299053118402322762125876789760292406112725190381709580452821194891191984707026300426338024269729764347554273683619106605542443442355288191764759607679022253598896858142562051975533346059773062421697871833906616416207755538501863477190899467952804682698714435749496799052708477622150569522489441622803020238880172434006785598824850810373073678093519207638806402620809922634083867899664876988625051677674554810175999222674657041892038337704302733231357712029461802791417051142866642749652069893709824545564942645373056135314126260228875989647276546557806619369770801607786251477218481387029922128645730250171612030751540865613167754639566139356377099797706496444935420876100951120300341200391478482456633805381807329225587068244337748530158753168886087983005950145767385159872572931816167937331077192849274052613267883605667996972495459798048529080457737351723569151290056856235235995132804281569960846864860185397319231210757933264266705504527082748834743698756307615561198310155207688714556046088881537238669833713118797027157470692368591088127587759217112052970262291059375390251404709749774821972302375337508674385240912881958725555251296274571451823839743445656384166202306167514536228162541696830853052501979405923429211636640210885281152541111749794529187763189656735604722810423079279069651985185495067918349430591347643692900582877503328271608475961711968375693771167318420302481439149033967067542115146720364060424437819804161152574851077505127304237254688646614743536707865004907413759522561966501809768560669380606681841559221967918109985086106540689631818877216852854412914725588515201993681488838671686892090168384389205065268173483062707549283869690308153169754508694903690562941154881424691678465016566194914192655663051384485936854781117380692350284521498424959990856237629511640574668413321443220847538813578573265906053613456708114838709547052012215487718814544944077128046443471645681902766846511839723290414729557518757042827022373462507226252849464000761900504771196030843999765067716136274975484458226114770032461401599412950963677751188777407895710660521684137444198926197714059386724044333984039077086673544773152926400590344351455109590907633361406188970231863721287892471992993558350764007695905998429498668492630466768996803171850957663664237347507118966700025093729323192636782773824262333138370158191468475274393846926003605118741914543841749170158536508923812628465748014569287609222711506726383225495832839695094777597982220100271433354482086690752656585232000047380621567218302655647501075717753324748580698913739271379517033300412648867635191090447534975212076450215506002401165360979492928219334137190404765176462808134084184424958009236416225158023739943097314290595871198921944370014848912092339614879161573333772505312034813270461953812162131065449593518863356003370793300195256909099580858684694156917294273043603470180144332046216075420067613244404328462206416343933462684040266418169063599509556288773895199715260111950225582435685101307869246663908731680893681095410729487345135486315690995068777698355051873461926892621304378725706283345507911404903881483092982331065351155437433399863082843775868018840175339054205152132380138167716080531994525333143487170065199067548367309769069437377714778085681269090826360851055285129630817955128244358946424413592533481731652615645004213245622979964517279442774948957405081484905545158047096052124847691226796289305412978105920737623158522537141145073507322495642890391707133574011186682268234644405577402718825543467924483098378782580758457422955629846934561907803634460369453390924362452692977710387195633368911925439163211065243923648731301287702434640502550375969850602606938833471399611037553067258156921053157359548222455964724934024095498225012446215633396668983881490343888036044068446905443630141050399737882436957953096014906153118771978775117948403084536349475971826489481859177008457298204701288464330496288284637414198239935432572576103975559567839340322107288889181127156071837284644503482833618880512722971519834671875908609687079270879784467911520710741873855369457924881059441091202154550491768527954139387280772078082651411430860481919196284898708101849827507339824009898087863619924308133138756101153776340104856886469557679019043343773671212949736534322941194543119199309419087562385519334718155936436684032753929779911915085685842382427346293616702080813704447107754763064383872891070234335126442215689263317297714694284972679563543586144692773528995770007830546262861278007232673731341532246720203887729632418246900207765570425238678025051818880405820948494206005556838150857711710667695774690957721398256187449295496145055589547143046694566979058389817221527686899746393040514341537622304454536946214348978174743682125514884312880156334652486186636388816669641922001127914964848045735234678053370517687020276263974310995608669427018356895293853722511013910938720608220568148791400074556634158915253125837773895369062759383572108466076941651391082756281914039446859357042094570299371266693608939512178277122220494445792484224012373976998996635478935723422759048648724212235046028094592498703811009154816327712374850373368186070219464818080437970145725938506263826253875909530158348536002218186906557315842178508184337918839914824695931027342804483574674377915383285536290887713638006047222757269525632221547899216939187342796051255244857343984578035718868178376319330072795517150017530690983383669728625087016866235640634138656081832360215095123388977663282153628128040235616317071262357677678867458347614740085469150354265791670097095047603788214259014295736065726329458364099226449533792201975496086672237050806850938961076951278054768814575548941414662645505895785891952792244415865252182005357924744527212198167647145409242048512100261189466882407404505542946489047474419878558207714842744109786480229265320607917495769970923867829205284545658803524344463129745235539486973339725322181780531831007719710826302974887073217867617126975233726558096644927784970927714931500539491930183056170437512856696120394111585393572130240974790149296295180451717779854448516081060255526697243430053095837363296714249298338240103555024661556542283671762415265676950276131931335061391132995852811924620328483509576992837231273626446386778358444092263390699741597137670908237806601574146408535677478311350414592334456406531956352373388010146653735592081387372628071960808967674606186234670035042368124053323963990095477510718352388104364854780710012602990552227086968471348836987751051769063376481143278924348911916368455893415176093497662630795512527762176324056381205265560770995263140246380030309573165382892438913520408956492090620507397340541407390933813477833024263552888720460482301043373537602807884981192856960155715630779225065489821107889621212025575118825900271324194776981076149245185255157659257273395645905734470592797375986649617303043781554907094412690566963894655583447642337422558184037707927898864806372566890585918432136218962739713683250681479682414679182312697561689415059421279464224227644526133364911268227603813427585152769032951120498093721405575455396268714793211976561658196015128926978989963695979155335525567643899438545017464712910393401463520216563141839094777203673375041394228019691559899786411177771113558128148626914666053120715781807836666943805178461015386466193139447370391158928848722435334339617696990067310079317437226022690550744130363732424855985132773983597845553304345105807687989265610585546086691226531977722270857761683622649795545668292568317968488021215050668782249504675557332403021491880171161459542821804252919857177214706775972901585003860799976310203849764691771231142077226495382080221096967727204051348640142910310385787612395068596910630186938768183576484690305550777418767849590981392894847373694313280959541325061164269553310852821614676517484432579667572529449431555653669293767994113526545079089305132167380916198671925516342159966935773503541043291153136798321013645871008747149629633966061414283568740479316142137550480396179497430562906568957208041715666833085436648588434776919524766252093740380615855901645065468817650902366723663510892873039478128877932250458316071410876867923219606259845828617038847863279516733697874173912652198855154760080090886045279026840153011304277793764323563137474376877248841939227982343812302920481241574296656069909911712882193715862684910637576110608533594479761883242362404753524065629834459297320661596976651672640574088876633451975041542239430502522500891706012708300893637774699555591579996360616808727792351540219041986567709341518079064207517728556847433854358005038062410148549407982273655716672587567700333785738949035873549341833896403407468020311384775544724037792252705898216840237291518783106546900956829410958305564882876157921528237678779441379728930904027098902562453237308427696310420885118580693239364027760469120603863734388069390188583736958133743315983009776235674498956170271276504308665414081361234516065020842651687670506801429524431536746525134847600573530530599873878852887108436388478114983828391391234840378048749177087375076925976479402503949762010432879358803117969709606718080541443231546540921600066085748662478417749249869675595210380059853154559992913208290452340425288882229142940481517548624989287029194826409672884810378396851859580559304128002568740050332598536480477007956340905853144352925243054876584820768220166549620032778368012799415841374962551404298012817995671005019240921769101425490758800076423045609818818884923128312149689506037784350485717115333887628957654447765809224996973610902029933080595166343193229849973736585561992102100476436073636733169674893176772816870029715488287944427546094048526827837428245606060470363362610175985324439097702108211966435331079649023884391739581972803936929744699866813792064521645944869279215135207700144389309088889700391554403439516644634902294978020524820974120386572387194336252973405869880791371015783811929279542216159207389513566733582829665259221547328759688983568080823788679545990265247295081415212047672153514055714452573944634663773368151784947336567797861977318957427421008727258357980265646768333539602493438794372033842291810792476380321704513718026569097539258562271585135264806506781548771205269169399154189416644033609245727440838299913066147483825045384222762831546746176790135442355907969660051045742745606142748410965688898557887435258377728751797312701890269885331064014371224579366821356767984182530202547339332340066362502179762882322078228399915970476808332507481975681163448231057292225390911559468634788285407557948477711631088747018754113732447552673152712170459583164264469878000082214119419478896060628590480037388253465256558102273950798643881662859246038793961479100214083000780859377063635116360954849782178727925331720057577883762799312878100103757671884995795383188432165502481257842876356490121910528490353717977336887325702015821816227561950184137367202196615606943075500790132250927005774784442047265026249977675954352830424033449496129601578998492012535753134079165228534316333504973049484380751832913591664967889148555888430770525762743476764937278706244199385759326598742972996575636226412739295914813102963080047737429177826197796121902760562571305965930265938363039556002861363907148788816059205555562972753788233672583042935998232325947829501642365121332959618528579603041158781808292015189912206671559781088367347159513944848498286511283552914619851712212708350506179577472829014362833043295499228739900886357295679351497694161794778245887803584048853507863221828096891871805815326968858483350546517722109833552356682337645675653235605857052338297127616997923045200940290900516265502508910835454704265527943001021922869540641177197023644041392478687782477793625248301054431372397992704212902479533510551676164166400666568088642523500998274524898320906549014096092223255131326934229006005535197041194855711411532850519790519918292697006864254931608028570068550574604556465811970888427582282028705503840704709354012232782824790828303178307979890613381011395416049028314393652844558381191646628042814153257966114372824654994045914852025037927343915541870236509943941386945885093443189878038825440948542343779110884077957524816268132417948918205110597963613746641907377765563067187258726669857785342491155918937407080883084601593186029436842836454706637508650330976580820910890727825424564354938804782866347537205968235780694634770596556703330215858970898474832613715753266945058696834489838276605924454786642291963482334445296867636928668497401859975271293270666280453661037443661251795062611690400148806146587511788375497993227465888517855409189986627726963570753068284421570642792865923439557619655346013046851742302320018290873300145590810690018180076644750537811880879671530358876209559040430255428796421039070750403623346754507819205497146904682532678567018152786353588060422166869937214300601752472865926503526252847405508008718979065129683455010559636739173863725385429013883291548367792512689959891936385303093158278913260967952258481586024205362832342029008628969471827711990211401424697727662947477666939828322802464857671435909626707013398779198868623749404553541383172629225183821490978392154127851734082296357357808752967199820502253727983930379941845762043303420578469428163112047393521792892209136231104656762057855042527614092700651803097231131392499297838897137234763691569943379340604099155616624393378713150086005740964739388907424653474985187881885196733295957193346059984977280142327753194045033352703582627846390355613760003019670420200333004851540774953523294322603004070957173652978877382193873812915107029780042155792379483528782255342232842387393562654152175584766965870584835472914533155369148896525420343885106830457167562434182662508543270827008469563800114616400094333166364580278090585875377965661771804313024363278436318162312951112371155716472077423158805186870682806219178463696670335014162386069552444039363190649983935820238141040785025787703767632306321226918055301149876474979425498811077466315753960333857465749053672542227209794634601284625802888334834108961161533778464602539874268022830388244394968221176014989270984219130094702362536981372075078452293023281775219956513437939682134085582342248714905028961954053098258610787304829305637444382509887922191562388118424985611018682975378267512625255799983699355375268958148458710064073990611549731374939268810039021113478510868498562109843458413511428444939770920833363117099174220211248728109776996385894556764398189583977943148467787565112188735384514893362155733214535744680304338947424001921924643289316508630658897093936374763871753569122231861412111588950387746861004012097650991024204827886272696075785303642699871797358535443828128569675912103798850828320274416744487937650238997766912626411502484970098205798480958182303463079071870657582081853641389996071659842467478139642623965887170089099528353890992997735831231279645627954582498912186447692102816146612454313828558113086997565928568137391806464864647832222329107622698135413384836439140180969840919620543060316511726815437792134454623643884010732211645547432027196755051093540475836572787655113393782474450417487514030023910200365552427508008182653656976875818116655527738877188220281657392243713975445810713531726112057697155326081272043548008953884569364718469492397144141596283190116918726230149889168538243852840958767503111008367137899972666472515710677332118801551294628523028563952508102746303900371657333788259536400914112534476591959451146726642315923331346657193925219735901182141881723913799083220502646778436451786701989192781070452567502766028915496343047131831516602442434031719115663129845841289645315032854348668634674963362311644474158150801898501077688438034441089613030166662086976879881063421821265614244242581450727451453291245152064449541550675573349690855671996157687765873700900963631825415762323445616582420329791210247982630480246252521166841097814186952704860022885059023202173293344410909437054249435033984631537170466070828766743065177090882637062267067206118423456419048093819067513939072966152296063242504320086127541148648793935368437139418121409124744424830101410898935661031790868151939827570676977310239610308085180892813294905480428742499014644554603170032896553826074539499434478869149804615276132095733114178822460836313896294131219603957065654207196431405055867912621009674718103308848172383601689029420246499842441540272039582937507425582798874664370282825816310466640380754556139230991024936417759352885713144351674284441738937994136332929846194549397020643394649416295726888673834758754004260312022547378802608607011159467781445138029917043537202268125155165574815271518106730268491166594418175934002839681611719638167053257382826682941037765837732764377806289400416970017933613137180388196133164441515541770268127896503180928228491326054301808115577628014724503825435676316586692670353746474489130809905637772190941099397182859575319362344313481092276227727847842810763736214657878248087671311927025653558183804089563727078650958788607907905542712492573970807501006726880806386374282742136348080931055542160984539673616064976559882590291015463431825311003939757835071231755064253555613511382078353233804553380530822871653058391815981064526231369173067091188064941121518783957810367486964063240476224710309512104825660542625647244510177339750039923251068700854523990240192393128406472958144313968441490608345062577602534133363893166571074807650708899603241214117842003205043777223256121582111811770604413696174475950123636579571852596101900436899317694166685583748926485672399933475630792523982427535792840512193395364453133933793644729855922599683691431914607279220526386781922040889820674347348485769488845717911931600266605074667366747199955098264836936279361653357627777100104279516582124849981861411937137339023427949860774449230069522371619242480086203175177374533499306540422544680052281087580214633457343639147522402269715917387809379447729351896195796100269610557953477619180774453741209766655641158787366865620790972311089827541146390642763939599865151985648826445700097196575729091173728472741697119117617914696023054102602057850482900118410933213715591755399119415491442721735413916910975330707052999747497843114995089846472180282778545929627271843860525884750676439143197023588467566231883763263534879752178032037624468469985771336745796988920935479613881163452058692538549121155208991413048497926277448354420498681776348628835358227201328945940134234821301287730580653286806440069973951697761503311619578067724118879893421687077690189571914204587043651734235771595411257483255752809214882692937785461541849849345023555132678545480397044250654354236832883561382960989018073704684850848066117714080791480641374924880649846636569821192837715944441220649727553439860294066984134873109326982621008885028104420462268122386560183576297218289064397720693870041635362646078530259385195845654889241200295715839515185509809225326093991094206504247566390839790546285781181634099339571016787219239802602646115570088013108973204881663733473849494337996876053426262470745343770829015588112042383504942634623611182175381944381573063885694826899539633301112041873207574123170578801238309875857998008231801763934104864187532880825780648823992315554526401241851348323784330013852544753830315898427527033647711175175064267220696881216855923008671362502328839888489738966026773474708007283438821769258109617605011714883568191256779749701020734687274102707412299596929850195832642167134232057114426778816091779590053951487233658962006757422402351732502575010206970240145386563938254907291039678521327680850271720242307817533404734566975016045360565387491069322352086558189268236277969307377304125742461930588514757999405486354169299250653809107705348047861065286757308290888176049861021570774240850588119951902418454706737832370637577135916758242404168072220693935238461366871000725646684633832568096345538337380288481335411831935969225924133098475624887004467483242428300147321249751729996870250675206760555441722431453711346028367385153993183259924244154644936711024254894880961047858379123331893318293648173658425522708320930338437433060480506888668510523492344490917697935477009041518929146574498227744072289483579907542632571631582706859660321366170188313591721513013324876738905756833243924674652292305248285928429701303853707234106571895555487561055196620453236973032529256755298398276571148707942211335756065173966993685734831161018247413209524682892920823596705812962441671975568647232371045649676067513921876862086133400766573861227016842460452033049807426218956362132833481688678170780749352541588757150129278553457686497924884219341264908110423078411472491905697922251056533347962487657243315961043500365841084064109319172768514039621287920829585684808305822891122228830815142001885258916309164541968356825412411083825775065033153852919793574141751776072164209284789477980918408575243041622479168207437336841292084424547992057205094337095094542152695418702661830278847925793596482654698430114655054709102340805732903833537291398069289190924715077207687878338428379998897093201527011782855834809829031640419408259863332346423803697917147163554642371214681720740168076903514156686597718369381794735994080411740527543619016433214243418734250948499368966475269024534703979531107532226901270985395287368811249061615310608374614042234264138229147278241217198807530558961802252402300809733025906537833347940239616333672773443670539701882274147170645263138574921353843594669176558440707443943275541268533861077485987784361073626131427555280869258507156939127343752129294541708521193637538283129470291069399500620402569518526021645092400731023360690656508785397826060126445677229026512889072144747962222956190481912584040595960702941025014529696004600328810562004099052960208191901734983437753759494068067286602758866778109069556206355640792978152976832216768198156012326931942671623846234252839757047596056750215191713040142845343303760734436502385983692574148151946093180495763895688320631797598457764714166577043025225641417345809748333494234354128449678765978896892475897879962065344723063019036516295265109776360224813468321846237036823521566670946142695970925326604754920586601863697856690933200109194256404765432759378537155709701546721173440151948975212296988439153264982779499486872180152600977733893322943693932679932797922853649015725277942458159048293338826937048025569730171192296814537189096832790242721024862071914231547716931690978228749219519237696921878829599420926178039392139727747467729981220499062351783890266073713260582392429581178340036980663450112453061959163928274410143267359285524900627341357358035662443207095230487421892646566757929948046942610624921765774332548904740205796108339025007428739000165843251046797334107469835448614765943067961811879095739655314934238347909667887831133724409394613472811793184014192166652670456561914811001220319021698964416978597842792492109425910602555299759197198651530909134802707809784478543965946961820395122120037327028275421362725464929548983120694494728982017991330888755428003592767845076453581761198471647989522162561146856208804848581798534846857930154777164506999903376531478632636108072065116015581042497466363845474054332433131853423593886985360983970129870386062196998925104591150087607190728554745734398164232466124371318770560541134811118244579340712309097615639404939295932994183373800566926143521524242792470287843562439060234865522858519173848778310446708040166460924422253470234909939115896529865250315108704893340127750972399808247514198836730692870482379543682653860955952129773527794117930680833615617181798034665321984641923155322401858569448248577276399437960884524875838891983143378034771527109785100643934476469175985651211908327894539269017607760729979426655343540362665143523594386039176978546012619008417301426410173386389300222763752697688614025301289687719042313335641655743459818268581408757634295499565974440145554537237105549881903966817268604040515329997585799204999786070333639174171672319102980044378738111497305174932072678268809369863228972857119616487785015427315528819205222616738404987357727292997083557883662922354357400184093792648632193157484152108082031889943034502371514742736310475952098233717621700177885495687588847749014497290598692243424305601212929427973353721640830409102367842753399576026175552316120957846356724778459235851670230606761885119951836798725671080229366618199166903985615588452077410908275805225834977619125850311570740618014913450215574007588613719133520165561474415252837802755005834077336620318753111940682021296160637072411728523534753780911775588048079493188865559010540375299757732006408293088328979449678551514893449881129590443971345333244018684852346053325787668286429858947768596964462715472303849447937067288782347942350632342119535010271854125184548962717723688889546757188969180372621552813705844974272590588987281211933308731654934517165976365709271421190674588635767211981703710123027533331098276978844491024330132450215580861093896424726388142753029572836500709952873789381717042164448889862716968118392260479332770316203964373293852900633660896700723596708396664524764981974311821253433781857292526555457835014247209663535103078849357974665081642035044119861268262819250578440866022151206264749885523881977891514743816182415225097235806255814556110805344590517609664273663971861158164171806522977231439493781289482950147033464396337382205854880971497744653758151005490285475873125348482709158721113977923027654055019464517091131391721265855931712780927437028585104039044076368652408067120331044012786681441223689290710132989311397468149459416997874500506932281724120077394327690162203301208721563953641483165659006384040154760504501697032931830221148459452538984717500949727170125753079159633735704900077436609281209775325284395966610753653336182650131898583109094427241716983615540037652300287114473620906210261654045971317509274387699897253689305877344722495391196474558873074377390744289405586304784499193954705974468922834671045873378953656608331050093152089135277690282360451108180373642398569234266065634633929835076173349705529426098743507386703555401802481597055497169132072043606788645218337799002823801909143589204057842644867651782092081071362960282359842210943122490163006738983010083639319979650364381755088476202214004191430752484613780958394164639981819068128048846650361943219100920122792795537370619147054291068686431974832391135481164234843017601862756545777464508979757334540241173361049673531469406444510376515597657062886506350052562358082395408678195011765790080801035428582843380197958858910680805560187902294653122543139261257924876082563092313827806220676119641436891936116209778668156667534296009196884460945671484871237253446563778845341719237654024730781993762806697864259848813318869626582594896911000901991882579622399420606310614367074335532613804524140568430198582789625229927403337200056760276331385078152395983943354151879556921101537634609579509658349012494859097183405058498553272564893611388353546410975268753850743145856362607950089366997858818253925639270785619034096324515675557119484999327868180111774556542232674598041990701107010139195716030708805831545816790457732299304547997198792515068116740624789913080600136521239547308871403084029482160998306501150079057537544906893475847858333318225629371303517707163693809435069591321673640582002332004732841949452416721012734365417485440495281324762829013355304387814299491538696337334055413484409292458730005755017197914849013585289301826613046218072010538405563940968802072536936543738152629012603578256234806083948496834363971753415269890294281794837448301535310734816023263897943661935779934308675075715356229459386241550106134831744824857777671540049898378270894926673977372267794742336557874777876920609216984336936581936750450665716559395188581607679030344545134150174655811831915124228417535843980286721877495543397714110716357299583805952608281982081436135810248913732411810092563041398472974307914811715887857412853153267810611787578770761120318062243623689347645928563971341076749553069771797302539952934536373467942897687305567542797461818213976218249351139064252778728476832159837103810665991114938885044679253972249538536020509636023042587293973125670770752943767503128423478217442043561487176221724484916578677732042333186395123937951559636784885201454110047272691192773253080851686772887268719830308700356610851199761382045183629565709907294646574864223751338361438283228737919996431872152074517113499286528919043908823507967218142110016138967354455312495657030184101488119563154909318399938449210584527298037115354956493238012530246880388651531758386025165027495110035041916441304947744108354063646403141638068057052202648467489897898796851321571404238304388003235772803393250868485029772777217194423005001159903346651040144069434656001878366253324362894479912976227477543502970917773639794292773140204997506207660225895101845262997450888055961648866344501506761563908566948302975968350967945266902109748814904299804698976233040045616001255488515153604520351744294491969212523234078129142341016039685549514343355209802520007606339228031842745579524449404072988800455333069131327280867727700067598939849242269260891017930150502817693229148433164610189338527941949693598829682055090556240858163556380869521117945612688554762849737683688040606255973723139417256864974781435205995322014878300837368997040704121811023028386840684889957228963761341298780241423915943459980093810582632954936291487856937606598369200634603464718474800984341638570854429896811405834852582374593984091237619331061171508639497531380952213500441491568670387015246972625325012462484205141546971397610672326747212046616193759214702942647691315347383701922746989362409385183175762758693810042244712534298994956987868371966649869030585616344859484115753037038958286484046935255425474500665765221008857769159235198752775498566083878789791489752079483107820085032574382504529683689082534060161112166519776653494208252425866930840898161547115227510178641888163527010179608690660381316987784501231969080649554561793769442911805156178747453269945891148162069785948016978248792326648827455210703358861241798353540838970623047229260233732280973169012575018467022915286199058028185101763578397170098599508787378901082923884590233101783605463650130641584098852476663088572310856429984532346241896044281404583457260767960615169482240522855612877017214457179108923265693216235258809421816536966360946261694638032460384165982530045144716920436500970557414876703270965910568061288094819842928571908411785835016097895244580415859489812908760308872846692646342141394740507852306977830515029256902425303294345735619888287944840160008553256029194403293152337175676662307210762394681955970266946667581281748883278952858980562273567201411962921147204778314290665339536099402639420110857803678812694211732450215329826990390421664168948988507132269434576929956842143168449173848284705253381789910920802359950975582166912988201101024767697551957552726407362030091821845364833216491328808822893552544544908303807617323256185996938475676161267492829702347749824946277891624846174342075279722541431806688794812952661835967327543980337338772257577082441981267044455607350539277912748505562617895588024727441503363708943690931089602803772787031698807087072584119053811992368662822438387123440991018912735022122088342154816479882739250291640966478406336533653324047131635600276162630606349703513682262287152341198482614850186265269158717486215007854210415319448683124281667918963026627332046138580540242763354585465785930632602477674123760016789029624573565610719760400989964501394944598663576481726446572968144951923203108892556681519228614440674860168334627208463059756351683175271267593273119695914462875110320150093648247225101231069598339175241931901633714846854699948964181458805465060288977632384607292361615750175894166525959051432675731541531726716893673934510712058002535901599603454952412250016754926606802808290772936804994696038816016207142017709210835396714320121227090672537431711229363003408638643628736096748089844762154542771851645427497424420366166647276826672362135671898285301212084950303165990603393344947299735140192407176823016215687769696909638566315249500257899613150153720673931474839314346592852779937695569933704083985994160480854705077591362411650621471834772194227367747904202662324049589922939039969362315191332936638862548535123171739155099684013919447031056235148976414639353741528014038772093481912431169745078689976474654580244491581432621445391212942628127146338174206630915768128532041338442601529022484039347606776213934817807162192887998997971542138374288628594208153862819114054036251272009167444642315890168445663182837215365632054065365489353882316928632155569435983659415608238867250322943406082607943160894549457785944099494380119822991329617959636462708385541242656311047737109694250697731988071191595307217337013311920493798486281518094232112613929292204416613539907136792447495678320366691338869878280791919937359242206167318640856695440406694830851040739542569568590782677635463321382898782324858158321882481661944531965347556250903579200822969798398870240973247997471379526874331040073392278340808834847527630105208025839763142107595438402030092646764827698740814694815851706574573268705846100579300618470812413297416795984607937256730911154233119595348715546334721693321093242823359924814467766261266371491212919964143748069993608051290565462313903662095551153880489811074445486244746279238043118373989889218305984406781466952807315604352553623450149567387891969062837169388775010326077431537597280703761771895791947880910886685483092421893045655334403009714412846340070980949209650617374968192562310060365900689655517794617163034969349014830455269820055531547398523691295149954687208764835564088554544709121802391107307985710650461355717135562547009024356699415982816012937438865873865141094039793608680701438131805915049966528560263754709150854115959330331631773351194197033885995289112993714315132738369519174333280585825492206663910876692585408820021861801758465813003923589772544107457375060720335770027106353518215195946431429945059108984728200390932406002995991632584469442223686067962479087068974702870210323530547356341502218298317438678036330506486367771111031779219362435164899476424194431710497586259731831224050071039069656107185328829496751209593275306040938083130174805859668878739586712649590339827986057939284211799037438716868737804406096685381861712601813273203936715898427435064694372510214540973311869608267968341105641732659957782098045808237317985101338868250012553788530823785372120206945200611413546608005259701954906686676952072481787031721804702201421735847275396655526963290315445538514468431174971745888198953236607978741064035002523972048420194714451828812877447293262930382550400202467800555926637909944503366318320176440140479091981301161976148007854131785058434523369440776027715307711034436220800115624787971471478153130047729212425351847116334882453335758727446604760936799047014037687839029459720749934491578237055592319064135527305090174425992014994888433972714930502010714453711926583644780130467298723358459954520727525371642895962136818050677631116232654983565098563170268525685737479162799094775209079968057683813423179035603081853140390669060665891669732593053845370883664534662895059342935000008803333799710469291772277938353693283458330870052047435764015721051217098708015264882247614779752629029524469485961076984604661730022765059242348143631829876188508843596017849281800512112271713442351507624067776758275498889881607272892906021483067185346678211689497614921188953455263521137616517951805250927353853477048083324487030442750106149472059961857319503367868146794440827985048095554881619750561886796341774943952142842882638246404945125308251760979073076063170148738707605072052486289497586903468332057299957935353584304446711264132545380525140979032569122962250796886211040665407983626428649421438456987896785680856650131028652082883486396364259758029577233722490397577613955797945708333234439245827693641901731863151194349445997030909959740675882988238201614087003703225241385054625102527554103975766205477895232093044671534535848790974630865441069861993573409781353387931396299492428206473385040745875118535152052861339425448813145752031028349451286610200486035672453679417700948568424432924840254637942427200914653958024253194514230349378187849495259553590691261671255645403468984031962895553602273396601262518123726084622524100977110874789822666318683178291581876969120565419353043408550975722368908311149152493534473500657408640229098986826456778963683872354798667514244809249740075706518764201256425820642057307982965835337145722113610676058453002379541124493189668718912984204751693091304788116623224401135778717090271869192451160956342137871452311107083421870462623890497425338971129819189337754985898138403920405510138955094043838330939980670337951542298590534977280944334003884612229347534482975600785450158693395526152153376296492775275669691968751717971217298790463639626807359694549187828299098657993214363162444450240100888580772718542673841173789593369919068993105526598261299017679581268048394243248262126755005613976878764480551031900892504398637701129578880267343508298763805935033580884756792184032460969633356856389832715794096533647007600221283766382453619173761594290994369235594347754773379753148635500043376281096090016261085149039913171459626584558692950309275359181719204330990091636169339527379587547458128353209231930255132094361501398166443376975995631236506318728468760511321536307678210364566866628034983862458150165613529124165959945474944146598157026408542698653020415182343300981972824251812744386959345120179849316336061853143765444024998342531943496478746963823161341236602781110925083578360281708359136172602993636407445722290088631836538412013614145916530049928816748477200344278426274378094751773929131854364050237678140688895822680792610708586103683968713532488699851248916752154316947512462705095000875430964019750823062153115950925907314129914928332728529250469970729090194133630165308017588468660681769690093034440421024550452828361231201772008971904435679174969697627312904472195345784136729743522515923681742321698816385091694770235990698645976491955019552464888388966034185135487825456758317098153167062259263638863405878095164438052781023455861443383914211137079925313824250380019580837076744795410475283121732351334866622352907649454380958524042597030627984458033479279657812170116062080416618762034970001293650372261232246310024621065039159210917426563977395790221191917226086011094008265742662181000356959962609742983303519053824865269313291565635459429067055298495146075473386365280963525287160445957337059964927032107109553652999346739234424534686322777176889245575647940017611561113530454331004988024034419880295095737548563332515256873607338248168691906104756453009965324640062720444319147849902023839013917745094027381118542862918857089816559474493511036564253062656964117045423135449708313661611357545654804847667257672119881395673479594011542885612906302674757607910368585036352488365404633983041022647350480394138298730072809388828505162309442428183343739477168960505775601384738181574787093924193932338880486314544472405063979170322100653894698937987985346421061108610839436298647712179091772635736530768325508360463596437218422898644833046870401239031194389775453925271932068968223488601124744090676380302818335257944815463352224064648490659767212763255477905945912695244913566659649335063240326120793463778444733403028210267059282140876674144775517206756096434162279016675000533600165041841770191281429380111437922666523086320192069464011249076816511076075646528711794655337435032158302358724566396626104771973441764918419664574998029041743679115642137869352500407851859040466985506811131645762920543372535522012943802166979965093456259509675837987240984279982178967293587896495464815754810116042850835299773618450738230118424835542951017929481000324190933665253330696183074054937916379980564949675981385717926131272282679890438217441671378522176312392681029978346992164818014931155572744213530755269305432710701785335974066170639513720352563522859262694876444565131836554987601143252211389576187279831890433093879193146830435013663398477174530432431747524512869264755251075108849060396602665109825018917649234294773507305774178799021427285663372134413733922952727057079075269290706556689120349651525139334520121596019789289971462679404544212556991404581228249958138870913377407697557320540373945816748106413561732879548203847495138041758919346745528499657001790850786852038487854661216751407580514765982269626594307827550176796927736888125588011150645044805962655651274006360099549611273012875568989314647406664921888021419080352987283194124214776900664409862932176324459383610287957103789251486501707144557702230915121657985828781868093154841554695734766681279880349497778447374388181094574112109956969557645676297522290099492864520596566103400441557453645030244953874352685135552105705190536381454622987208836619451668893168103294155508215275594986315756688085148038867445479928558005441215956585641555308928991171139181834492980785040312881124507374508783881173561478083499949467311649843635111753163841588119235664502597665613075743857535672823821668897817717255761029846174830413609924346616970481743680900176214450579694549973001660254401739664173538851422018015072956040149800080584384399003348929155689457240925047171131939626159965428009126867609951261751551638844428105267738277418777609224830769591190018088292524840174595197511698343653650068666058025512824048301073215394608037917780301705980978982877687573310244193655448596659376836780206417232253909500021149441865658324928444078756878557326420217363736499698556697532659951514281434129239714663512956655233905118191263050270859742656031585437404828618107355756629220988480448007869705857513598699243815310349708150625743066120775378119788862315502855741879385900045604782352441615691758286545479139579539521747690030621644683599938199058710880056979487886916573667375422886108470485471400594936497423984497863249822582342120894304075621898693021973741133734826032460227982659872753328243705961235613532911691023393819391192328125358470527576644251133374134405485621923365493540781386603409689156366090640138063632541803009100253986122172019010487604484527312923811025578862859835300148474581992299899075639368306397783424553723795517366814372633944977915810959811847043029374681039608598631111950850354213789971837434484727513917829482260664197138225830362140785504381461292976840869478571363973741006566721650513372640344728751815307329450434922383389194625137590933732200787023097788853132740626505683707791192597920925746516158495639097562278419160156234217085771463260655451662731275917950734550330092442057142840727999907363258746490785816057214966311177770730554329530451313034855454926763928788990413644956064458566190581445604556274630047002434909620878218509432444104345077142926290682953000404832838911179444332195337132139976829051412680191654450634746835640928005820567847110672787975108379936449964059983966405796122371336193410551429930408900111485434407561066464613018532142519647876211661495854940919357613936854586673722846077159110637143706599453696339991585674136007942060973751771402745282789630932280657868473985502947123457446149502501842334785580720411261460410727371676924794787779946192390726401543272563435981842689431124915192353706786114604891359854063675253036291726758257366177844610086115624646552573247393248463994065682221660704776813344056701648315920761480122601609260132924581061586576702302482571602536247872436834051616543446419917014743620079180528677616909300778243803946510962038140556108800937567425713167567992107996855585027134114729026303871789308897120923910226646709046116749991915495671071413665359987784247187569106544722722706536004464769090886691512685620778978634776249604013215546920878633338568909347538831037833921177945569469559437321104376462734707153104696900316471199952146159865837210594048499349267228370070049341003439910499891608800456634056668752996972035600559067035544312370365552169482263819361222837277770759295990056627038853196043790183805663373195874906250092907057022817278124885900393172048454465042935383022621202789592646378543016935987558659776071888236027562179498741356098036013114132369371987913407900740143087880552482889543929330073441079527341900551279879278631627111978734048998124504292306478144902603550442234791534769952016357568021175732777171095266872301581193770578309399974994153236887050787821404952564219014718456210862579655343250578903475042381433999013192569628338907728375106683481809366866266347000031019089567960218870072603974331708787074121242796723679592817198048031301458188302172512832147788085320744033808187867290177611538144984627662058269417951852116782272041451159032110229788774802893370791423954771371108847500070028428834801626448249873534026836642309149081250097015284328010405157009121223579395295194182545321951404984937367554854660658277960683205656680447095738291285545421323838747625188407469633044327144665781219726128131719835229075136779486367470877563661558574743562924864696081920331609610329244287683090313392949846481359985251827288412999359190596086250516836378707204127343389377211204625536342562799354541845188988516747769399991256170651884610630721604195209031940959226597638072563768476719853901150077042364167113376209753561474679100749322598688854723382200277418286034764202855213650629442085812183549777004766411994964640510394286437273426897593374965170711595229408355584536702312566033817568174436303774883859572361508048192419418482648418314658163616243063829978869699360827883913499525462256546987568045231092991043624082186351202095642435587556420511050704448743635776431643567203337026744148267523082561636559835950753372469383957790174306539013577541082703276340548420618278181590660212681261388056286387551538586205373287764109224643959617737437154878170230100149822251252234210734963354683560189812484604523987833883923432969759348572470317209840173678587001975815291383960509508091166189095885615522995592155255866817382097249598600365040143358255883395050230547088667036240030765459445156340291117470872312658346031646640437950121705023358200236838636240287169135431342718067138794189906902935755571294584480878579556945439933204516214423240309342555535982508886516847037553428159655152790303056962405937739880359622150525913142057447808566549068590930992624089019162258953835565109555899668125459132591244955853322344815968486744756392860508674266586659536716721104968882338068574993697514768861878431611140209388526953719709303644567558989037114019398285712389559575015453592450074707260444298446031869679155580569198177146563585853547833379763128178686449460831670698782485349898639172830969238902176332073936917149488475715800924207693122489379572214190143205746242833353509574164075235092421987171885437077648016161172376969722970430389592684916711720337942548165244689733404202913591163375293579030602110229768363356244874326949334474061265133714800279128101118980467872436924644869462128755455454659989696915181373290023710473183531889792987105870954665614341697041189651624659957718950753441205239837217032894661584863969431114352712757250930684924897713688205253233068550234174300148418107087210473096541002585971554124717143195294008814280222056170980613829431554034779814674417537224598193127798203077656283346135161049049308427592035923006092781791260667478400228069084054454669694227808586223791882511699813836870177801004252096447702085804003982601108626084150790837774848857557916203514155087429765104698994027071078748203247538662334421388540832466237046822816207979565633855338106922485825117401030522649270751967418188307757378595800204742334307684413354113861177782960447214664798648176723360470352685139124131557941879255808649170780872709134379287638008007053466333675439153377692113433158214131411344476189207173159142696300115732448612084507124378937828450189035604904410030138907652562397021551571744016550557592496839770698953307318570837525728941281999636466375139801133516649374061257713355111892686770569859404077157729350885745566052743187325225433601084474767530593918165421237425287004582615203096963508686170842011943144343519122441753507743370758647158063665664664962426947418932365812395741592001540303025195152811254524306879704491630848383827184498062275313174242087856788205502134579977938620673872415110723433992515070978616204724710791985134046966500048573481109833282495489356193836649758365573329300364954745884213552392959828887816870097176054826552014832324810768137745365998489860596382918964359956288656685767767233266415195719101196516253994698288576632322398459802839834729362682044737453592663831354638084343182749734687480566561876253190348086855294404491216236388570343499572683127482968417710724920174648642503625453545157569040139835746037807401312037927595148799518521496432614682043641934880962887393237130501503694135085857793230678515697648575162159920373761818961098416945404115412340905897578779173079069829132199748577806505362626458761638659141782328942316382654079331882200424917813843407589976118569121938509534237513834000038694668260776208898436805035793232926145523430968070770267307260398798005885170656958340401950176866207211315768140684160942395580965411830511371862358103678465381741126313667776337174869891925005996748136259862174279067649468882074250645862529781584798451146200395056607612403000456540724728426749107897371295787655190944811385433213482329544948198509051712403472514683352338645184595064704310775515578803973564352410540816768761910991000743983320440450256041240976556255065351711929042266065680391169863283378215648281600639449796358906517955543347122000989266444143787040963860556156296889263814458883183720462072400715070446270138859866355144388838256860768749690491216961870032526040132866492974125227092357369339331934092424419101903817604807087973429246037018589586586164101507563354613505834247684106519050218635883392987825555532863247766250940848101896145876595396644488639264940248911571507045345639778256632221529248821266235605824210528629840771535309268852799643446057054939731629166722074495897495241078133960679864417940108296654698168278789609285578986250046282456835033193508485811336721029769463485777465287558716221752977618626590396106163963781813304781197028821786388467861044907668338887232438048129592438414931475529542207843077229793319517076406936394751908582830544420031692109789671013640595538858409997473700505316463675329461243984109139162845303674728852147932213764868775396093226365052948413377871295060748530080155355200363348566984703329183822694285175541552044087579052546019277561434671624783210694384294223433061097843169923637610261598920096561857752892650263227401668561641697946539122891797981011942734701997436475038174229858883496040044970778762336316276315515924507954346281269889202403751756621680950848708750431031790345636842388874562565207518994500575160223293061651747942256858142722797406075906182183317330215303490255850225228619318504590502682904007654979115523060792831178649458439955620504018579964717385287302677844730002659825929589011891161205915339572274933268854004183089778376558632783484633069644223482819749529056280754734741637829599321382631381821071116523356040906545782732804310082778915119292322763059525885657351507973473122784420337552637940529685698362343717492449475087344815350806046070313829227057281084538049408124586106502725209553090603341308504711969630334183226551161614177605294910709160132664797112758129958900950205034451997147457007348925800731200708572203886667436170646435546615005618373492772266435467174816759005176933896454703168286675313804730490458441946696280386533438228021245898907610409877965394314861638875436961216509078695359549462881324815534693698934788741865498303708901006511272970976561256185399910989975311090587951163581804598685637420534602046267755449204240916355032504888640227409785146858615448848967408269847606350583958466501158453544588528310720366055081725831458693656298629508738774656506162915789485824344930339884773480934403132522166488858891081939610334665000095407859954271337593533751241514382131096277018877719705612799731320681301490821845094876949964274970070380923294810375566552261545654305709004266293459373585991129460741903044998022895435979385594830875882017580561113682008756033614353583077975073978241229455405607741972149389807383892842764565247084093312644821295003352521177896322093110705384080571250540434023347223904437113176810373769705512646473304489046663814382409875754263035243791353637200704587712937017268704314095407276469291504290842618889626830062971969190278660741331438551494128329079672724346748764330177400073142310055994759644615912465876059066981516241480091752432408997742532298890556897361435651540296458614569571435508452044896420936958240716406715438756468666784131277237561761830540731738687067565497727741662209011267827982174714326947497472479404179767957744459483162112971841375944236934769777972581164300898094032792070552985620602759454658602031766371546006951637315348550957043783756613984775037644200689955676101823893710226792222145981616863346590173348454380229717759796294113727991080369878750824124672932223047568659596977273383890253281569237846600700485758399253487875215687880596511555534852853659010744758844114639148888750359867670152830884409181156751501613499405817767077265895655026003103352908122720858616970125846922705073125036202579033414518212811210609200704954202802576568235140201790679297705806167187558273500883748208948320483857657306835921785027644373111720109567237243147591766518198347823435289636913598721000162586187495782642066966951731042381761260686237902544751691228062093360214019401084179262186806133307806323992463470168363660628854132518831521809155441082283642074589305013904365053005431559696586191445815845292474736409046126617583118413528579532367021092992199113431234431009519800377270777128938468319856627582881516952118732164160984759933743635305338502966562448757627659085854200432623952736066153436201314568943139912162857518441724528284767040873576217116515141021905273026920423277750650887089222861341286471142004361474269333288931423900069839815468827196841076252915469668393396344927247005097886207397580605164600637473215838187905678398317348600580013026992283256708940892242065381428708737420666458932265718248926937326066045253896686162270467582274635382777244424853068018994918296486445135213880449530462331698538511220677006062344531448776943134843231014024103818109256572127696180411482862246621197397252244924924446974622465962609426227110142291248208262783893907586450419445813244484689305544481847585141601430041381840349850079753143646670235024286088697320968197072908835510866318140405958365828330883665205085837423294805860666709175279844552443926686544057970482829632941819533914852199510637873108694003361569901529690165389123707704481713321171307109591729582040458020631579467326128128406965842549088166387426245391711709170716523961989693122328202959344467937253823712499854819524694263755609020244267471185747986000823454312065551080299509208925743999702414552913739400671877182980257696925842860051055161580339396678474947215133835747360040097583279213089724816132040173741706283987181219525937229512353459934058374324331466131282411307918864129644577390984297198082880004416145621033858556776224385001204541351052383704518168681587255345553258448874172561688991054344347464702827930069047237056222781391010540176605068773060115968335790995074279244048708339505524987801679513262917524003677057099382146053635966094795572305750051895128006563987995343396775180764024840516776245921372106694609276935493812252776746539320932202974649781352135978145002434910943804565542935236185031908239906143446562226596548459717325463255955084088552021308603007284309726109171258404645903304700224797798589747527589982002581679733642413650734790576871895627577609149452922874111875442539729334616087382741893502936973010847928583437841010832582958494135630319032385464197055303157283086233015040099382659553916199060313153122368155195310063389517590318938491084712986308177956196703365511910192221383527146630201792204612299565283714078159294436734669234632338789458008435888607626584169631842684020430843778701391392783462847758841374930849167970317291954339010941909909181803550101565033033446200073252519079055002299068789305403711197469802911573916855687624907509079844337005324705096069101765200371202648955473175607927142865236719499503511566388326275035984846622732490756653817085231812256246413885131689555570114519803908075055335025024961431372727633616000602768968949676088154884522133104400993565497724078733347959231311595777308890880338448156571200771941982205483318039392804696051601222857702605977367115211159018625690694535759254622176215896832704005313612874443901100766184589082850435010893082194288961463845925001677153271453956723348240726357209061620270988528889429228958788754048569212997541428334024392739586432557693378033719672398895426501633795051877745603341365406143043138778671162688866927489552682725571098838102870945753035253280894965845547454060280146107022892340964037000190477229886515710878201759409273101770496528057865199621706057600477101448346417309357628310572590833810592650884075840271680841829317820582043726984060879382100057715121970215634545358597114156032984573515437554456461812523012393835284413567555686700551449985674578599442024253038945787147821888904193851185058361060093274028998025822056330762624180929827155017061906526101767259714249410741042179062441473473181790163334353521899358322743572784100526146723643227141370776835224418630076219382842797184466322134381306442083518400145468729579077516952810933031619562572984838344321680455465037609996476689776957047975074707555833603936980146122446052103754302735387923054482169573874104890207221864845896135524012515667727318623778696735498252080881378686925252977998677489146315762887108092414419401169096482495743228789634928190320411617498344539113719307317392394508722198870513422082292153759245901997431975029763077037539523392808876149646971939012536221902388989189952548407281685967604573461594759981331626017448639162877132953776602845231672440725891010094279413474736547543315383306568464408037808455025469058472139124127032926251268401950067974313983732853736361356141011557560575812908740047937788506327058349681017381011954331119044491229083350894259507650898238543249308748888758874414135347378269790842079084336803198015831277350053376900399344403009360921211704514403160090093801534010909870142424333102819915300799504192322100412745339153137662951706939692738176016481000928528218824811964071517295431611709821052911301943035993039973097570482499617650874315629364290031610261204525619445527921333339519274637972605702980963239822340172621301833211561826343513115006085471823327624640605973177054543922120556926609655320068387385210428746373788565406384057412337175213364130577167918272985662830806807851218761837157509488517697135229187841632354357033717458595407362132180206388230680929748010863251533764662472667875507082502422981142846318164111729444581190992948085942148096990187707398603783736341651341734941032524307658251451809318608645911752017607763971461496148048401188301242840768273125937631883163963823649944537853204021882201133881519009006996643892830500672897029683066420628020730324061756988977034248286970537190291088485137485635744339304144786228733642545386941169551404176822134197274346203679264807217590189739260451012387183303473836137857750381330819111917881390040222448487243641620190168659222359913809305897213634239570479052693474059317114229323974748185613928641673596768173373782465304127957869502184704360837571944574182603466266324717089723149816258234525720356215003225785629154291459065074982643082655739897166574526653455870854462135538680106370986210460329982623346288153945427831805623936868297437521710426491580348336150455578149460679802958554320632717636681200798464558263226746353209148048613923806950783604336695029349868010967124636173547459850198150589282319079000588641687176619220782411512647189918133138179917521112121794642581326643241268068035867464383853889794791068748030776137911084634493740771988188276436757202415835221440807163491709125388206341637200732192895698239772347590817092691389694945478345386191636846873498841481672319539328031604262739847956446821156239462840543444701197898510917100610452681672545680704019609090231582860285896062077907859744756970977318614635866345828039772367593619187409875162877148727481949130531714883086686640601585965731890094977661280891696038532138943457315643702588855026561412224877583484811605550480509556560504719261478524341357688208436002702498180983324803429603180992832394499311408260377305529366512024138955883202452395493676619461756324840439206021974046932471418477522741826800563115501265197241721289639489014629206312437353914165594344759696780122183657440747445994047905748875157196489736641224212354044482348558170223650390423700258521645070740804442249179214856812938797293517115040405262804662545264862601845147608547544009386178602546617709061131527780779952291986790603788090062281025232214912228069891315577873652246975048405306626307071363384602197471530593485261214166730415901359376702473446493430450200966495048852770748062776674380106002667740897731708239318786420036317489507196095309042711208696751484770175071016892400750602146857917152970741053566322313627514435446347254723305915757208256088062493711789946818969743562961227766954898235534961195986695745044301941863209180410807679578105888069063955574613522230799195284256464201288405116726542618536162239030333586110527061392384147226560588864334188365793408282121005923854581877722636533742186383156111134457490717614262342368208482808315826586805339007452667629195847362504718827492080095617666418058462350511167204791719411701882711107148823227773188042177095368598782722730327404278163905741059194068500379161913942466226134393341624757795381826335516489340655884636205085856738423757958267699666109564896380004475917596776726671924999054423543977234599301776055712175183638383740766456076217101027123632752769302247107181834748166595123012526946961945827060818931205688201837351604690371334322233908188680328190277414646974318891200232391354093465331781573544882915599074359421263012727214142735615391044301351549573715440738123051010019272927926175111903066149766054055004753092171990579579961296074065683711658997543499917752905836531234377782212595466596992893658125765460650123035223788961693438116999509226102433331429905732423853264028047307869163135357817707490394748489264670012243954030775303827806047445409373142231666275685091717918197858193736202238412858902663583848573900082020007876727080462237437844221925985121925169219308496291541531306607305066986989800087022937589592880866708914947117188651167737913295365770991628157307853174053961939590591782505236744989049804845308696726703953728864761658683294649121223048706970256405511281548886131184236227444103391845206113015543116774494470461168689313252378894697691462514752107907291642329665212484784207017980231279669073658224174257114996447472145325370000140444066562212510653529664777838721393406039987717391914281829498561985834560286685164341498982182532115661986082631685271787915458761231504122236568529155696813855608827079009436459700310296497661458290087973853615322986115944364942231107867826536062446468016103475287367317429996632235077055014974736359487015533669184980337640816199318172207304471887653281386664040347208712631708238865634344438549748643986522129883847781444530151087267964626505051106030239964764723735870852427433875521255845811607299703803491563646480196203730613581105344003754160901766415257030633438516913277536720690180120676640323521452807929286981375725516073058831501792802033809639587985075059722020779237603666928571378229255019677339172116838728400687468579368296196515687618410850941801384875120026157983389019255602433074811498965661825142996993933822921079948802557424552880268185665304784039585467871211461865203930082102366957451347343528334766496383010346518631020852730887163196377344700808845362544229478802337722711807117484689531855199195651520001526447791144358163067220051904933068200551505013495032619491137022192888897951088688962322275385764534520761105344292045652536492638369740490042756304690825441589391779197437062324218202873930962086347229132551765432571145628168318822451461271078958132727519915417389778542618580733243530427363821769693030237300539667565703793008223160668622508098603170614951542986137831206682008523360326851935154184136115250235474066385859971165904308082729066010083119611134815265723237191127850381085126727084898387929946683197523598668857716244153530688446342882423133915580071510948109821211223118329959349893322466344687826242801531790048463075494306198424268623782014949267231220755373290797337979930921963104589820633625684456376420667222406366531947272570986964349390637018818246676963584813954992131130697352404803244553446354704855086306699290224877157905330744770296461033713340928498128360385743816350478839747683511735885995069105429153023149117229393881623138179336671182234823957342221642847940857209261712106361704227145308955609995136478164451425636212041574604265298080406613905769393494760282585585090139232702538602148173880193687822581569874438977235363486251033010717135223834447439983560774229637914409482760026419257391361631714266261361393919447019231636908466493289247278929342791135532906360154803145314631816416005967568635296071649948497934966857754106562836055718413955165046022688119237604882912687322986870892128436749322526371876688956600217037057596308815269577546518570977828857835700078560847855463059139218724458922944472967329418500414072837217851935494830879115746799271128779126203385066868205920721443623689137813447935292211899252601735250545010252195998177192822360331215062864636086805604396482594634170045271691811487432983221705483078737368061310541061695537949315749570041901993043150005604613461606024515909950531997802925020018455674055615123019765788207611587984876385959753173573544800138744653826047296122153939965787066252873853089400660304912923388946896231838035826915913476741977792556851942355680359518639142810051066948429250575092436604995581816417845036532837699181913756770820640193422843175953024485642169242490078460218774464428063779528053418339448575662802658117541990454032558229975131373364537536708575709427447513627902879381247418323518693219640154249176289317977888844949582627231922196966870280703836829093783839794920144617920513309103461979348720369474562820681978750589497765172082076862971172302069032907691966403713081868857797057086419293003216355775927563848227013796301783844111050152605983340788992301630049418190584041915867550095885211638508744809669979960056805588593323120137619038313726575750582465319507566644862663876262332075284100528334693373082270968363960558830237650375921366450888341831618035819677205299182549728160837933539493278297002864416463780709307513708116690848376819118034611610670233357223441176940944622386895048215366166747158466975310755884706857895916582899932828265908717476023816932262709348031270235404923828295945579467326143027671451971558489793072782038578054423167666985461303003473007020159905840747422426436478490779364652774009731727763118822408183066430099073465191478261579805493370930162168619543560721198276639968315871909082307804296248453684331459485951099024333275382105444912770448584483851261779355652097124834340595296420605465006250771234220790901582283328607688390538988652003178471652227248460855354716795505907090235312054242894485637909653971931817211967629914929509444793770228987538319327418511074567774802558156100109591214673575485085334802438808938759204177347470700761557288008716149858983153623877986188118387060748519289423232595031835726117977341156756170924131701865068402879091929229736211221390155946364333992106643931200424619853419894777440851334438592763839582038198553268410192022697795728964246672645976487026227367222900515767002668193836815727369066142607132312334733533970623394757382532870535743834327458179279306911334755785652838791018676025622017259911270679012612696732820323277266602289470565999438120906638777154345748037277591171602678864365593295719801301242207697768317181037668661932161829617091474912920630427245414222318613728112078107708772671549104104682295304101648118714664958740945061889915011679930895707120658606588000105524199005086555090307607078867463537289745204445110230058199118373689793137548428849179969482854372407125247363364889028698634455367687043855343076875250099215319816836731270301450701850239220666799519753132666743163498664796307380922319589006212785401792033102843486855688094243149986298638275944344306126472567175420336028046840055010642521825541903540573930421914855124601507251579246762571781828859837192466025844128133714021621830460700369884622800904336410276893173281963025812601906041613133995397130195362167310366594941094978860441051013103703644759774270285051749424474323846233854077075676623747346384989426103423478105887469779209371914809140108686655181089291205273855629152962233645459680822675522430356963284759261451261465364971915412664669935047187310547522609771488236602426100178620290321718846864888934589803381768241583676004587240672187666294010399516733405410416440141236219244185964774143468849369503922926901782777314848506764554449621294434922728835898149120681763737724231209600638612830197578377766721153092503777292418108114479534804613280145308478726880164123815472152249580966586025617299500968401875688218838041669099106337608092594961575671853484165535501191668371365278963725807072745833552086617980944541634629472249658913380242283627321202168847996636982486681847101245624032959502391048287383914144646039145594371246972438721238660381004648967254678327756629391534863224661959489295529927224017230647111870669885862893359152686453176139096653819461204864385607151167732239568259269480691084471469390069380566646339253262656852750689369451335662093971314893782790873931680008424587921984519550721859388374915694309604375091769103103975458080859563777665946244617129646555214511086928387758129170180260662249064085699971238533565613994727875881186355051184679065534925449596813878315772533037871005417645589695912625310108236782707384043565192987535210542796719252655821308138008338414463562845025749246537664311573473608037398637913824564783627699072810116525552629044400113318164913947405873160190960625045880014649064881080993008116174115030554752970090682677657033756929474699360603931699775159132348916388847669442495605559044721577112005626751432587027217778672978396560887966554384261054696003184550466309788817153906560449559059775517202700973453754871128899532501992379170941353224791981775284955314592078881944957984188927660639897977698423496785417750925684152744151727246064726584242196825981486826485891941820175537069538742235975593305088528015328307758738940014627681148009904798513600990501171992161052365657315715247039885706145741015864962251379179697668311775697589167108485619975153694073190040458540721523297484639716339618742938993841765394626280018280585076811119340578266355426305608393576795260962715803778035722849125475690125154106695777193917469285672033314039931405385655332180773376799039377182725178729878413480448218862434551450938991913341651679761660220862272891928533498774084413214280444134551943497199437792493102953870738061509478138293842276169055085609657520679974994013677569627205561951104227621664338284081684456097446934945220584127150839618723808112554563938611079652643039174108964530026440258622370411734177357195027066413797964340901833354646879758273842726658183482052434504037289508484041966893587578499627994641060163335804004796447501493639753125580163960630370578359897354048730632402026427431243909879702721436725374854732260704311466148776091135296546860426492182944289764297684648998662077781962573747101548325163703913724964992963605905867224337394465676339376178022855003848573450559002482725988671767753118853029793900729344165160976234695404365401841167524723463902653146365261899693758318206604930411710081094151192878570342280168803681705939473376608153135620233885735806166299205715279676379390235451307731672637777176835940256283070315920096131850578624513314828694802546377501800646562070693640717796370359303982007522443253976081428027462881941826032002552975212550595829737290062968052695348361803496689832168641744129001371431743850817178927685817750939436044784352205904135422005971990357046533937357436299764696462461742740269249857653856550556965958145444942562644480880395491768738108359122372162877590230904943115080701502355336116225960408450891915438456511515399980960197644437038836592299472125948822712985729936308115008658423399807529856069387913929866903455425612559626475254485185380926598956756289032898218616836087834661047604932035220101849220770522238347075583417444017679831452713905628887781430358882200945817291956050073653542939076574385143639568532891453695594120525502646764880372922132521194513556129970301712323039025963993844990254795651444685902039011139665889705476925815466456879546330467738089204399100779686718732130476211852372844823825395265306800896747212748813938645348078120972185776677652639938692791042737830855960168887415936413629897674419848782679824338397271374524161852917555918636433947895871109565442881769644008959463342924734141881658267115610324297586026356489524998011483588227332361670849403039812928554031892713049477343839560773462336378304270215113946137356866357663842783758900853934779288695935850499478211039130055219402107092186347797234060132634730154471292399942164201599248308919496913208111784255261593653829337179401778773113153867127216619998854795140450132915383095955079648269972965669736523761442094708537424855169598209635956496646942244515228864756338035483205324071700296168570987439243322715108038643129437732130852065769817645236683390181190170399274134346985944451838590125392689857353464498749055555422303478525267552138798695237562508029104514997903061911239813425023985953173862355749151709016140371789970437969115087416679462111529035530963993495825184484378936384141663454301337823573681514220128212318079328887007616190944321310183619901931238916742022238755660433269723251086615679423812250528726860746541354900269015418792870271450683981661803727169184382414371307717827429522062727011018910875253756740837888496955686497946970690074110985414269645188442627385771474861985423644115766816134534711035485498358441570544810075196982575771277332996246955035052071024095884848042463163662687450396216287906552954359228189286383602871323832476504710858434108037486895667817115599233975070043355978399791997985722724001588962835415632247717965148566340484228976748447945557743246058704922552626368598052930435465806647263174778036999310244737567034208724386642164215437887352418950553862958489665182293172224454731492414200185086034010211416875301648524092456967929516739386104184935443653979112130519447291523775166520356884037467561000807760155146739506312003613145601416874707554135198235832782364969438199221508343984865887940706068618341304107564308841499129873629101612013304331335508054596902584320684523586618813451112930762428250078327127017916557369543731458111635680564080380031973841752569577395258958340426893028696741151863449257728831802083729904150099778460428307638359494005717826933641103949604178059864127708910163267138488898944723667513753633671119613413172130458983013833873767462311009058314483093745929508342071959752363448074262679298657465542714811347723886416691857307633963449523071366882864180415410253215227587944195293377088894544344481896820796164945969859803437167987415399142036969791841662409084677177147570068967689590387822961423003302427902942706115958576110654186071360037124100836595008487523808355679557098284201698078473305083974269255587303486785604895504220599458842770725760297858429762185421871917487321271031225175489749610328299431097340098942706783090930583172709852114325298262640857692368592182664476406632728619373041647668027054211611257548751193977783350619810974278237999757124400932325525133093069914433428110188691493544241604728498880024816069062300822020436081654277180939117781874669731904372106208705017740719802358597983131478209369473577129555590968036528998612483655569007493718430270200959854345465479413247585586497604017635239708157964512903737242743455674761520897669636642393842776006291411189411145169662042675646020451375976641293353633062080936704372660892623220606754591575065826044741953295538243935900978184337684434938307295634212625688448984082422736246602424299523309665808995547103245099055808733881369304111312638899540265422419474591124139156152848484746759637143257088193335771520234335399290250416664414659136009306086606910020864821499454950440734289714578104595451846600434590653113235399280842535016068343101162123878150493870885149812645975559641762436625370335705252955266327903041766359548180435849213534564941147821019940415611938618470185514768390209543282729881001603084748610784644491155929332966326610585857200002991157704236843759311801995496714082782942461466922271438236895995398053229026065643479657274807148803802208104938427406440033096897368007154997102536817834711708772497439582802298993956377886307505842894726581860730369709000598434392226582203011633374699530995878860496159261371965114220523260152062045582974133365012057148697118966512218645923304871038020923540094802581560791794850751916611757918140569157586123056673104055051353474547051002728153583447562262043450257565598305427976209879481613995512758196908911179631852177764948939148085537320906650765016770187507856462678420701095645952004872981103819381307476828279779396733956594667052240687291991142188386342515782384734424582448610789907547646367724753570285956940183294278653128712596425398290892148754964395076928300881348800033169477838824580129323173028311477668843373447862205459988349669228193253016371501516326557753537331989985520746819905719728528682900435765899062361908060674345809151003619775187451998356785951946695917935031563316798505557784735154926531619310110021253073127614106456642871180029244322210678347548606328999469943577404613900064008142570581464836708035356871385567551131631615768606925779151625683777275460421081775391042847739488265098545970665892648888940576708596653313334146339519222942546368900491277953820114909422543822907374471259205096397209612843699273830413501881280060971416962346590861954164610561589907284108113686714615973736902087218590992478971970732600014966827972079452227537559099374461796878390599635540333036336654558695873070946346000457924622673681775699068737823275773920284846348212905941681823226547082961711310692730062450279172470588732969624485999138840542912066090432873859568866837360554142520574037125293648962223323383220913634401168874763024982672035938482286296866810268965307075321141256662627398779071138205270470905165206304230154041101443574762750816601529740580602680097762233958596289992448194876115940347976677153517509067157060585438623134415549287411918195534373049668468398575353574613052756844344911560385284452782145396533808398666771575135639166233885620942161745121491297558907254861523432991103447218085038629392683626205682856829446577450385707643120097950512241485926068595795176935117904260970823365122412334390977317686860572511117586567154494631553803286614602481384442625682946472884111042170413899837890152396621019132251787688675560500509488168701829589866564618632325183144138325639432849858759881784409821130225544037781847053104577801840967532035012276898215173188061505480613646647674152027570834562081647198079284150491032147732373914653640517634880259902428676864011007035726323109321210261830881495557066937955784605698798664371892448580372050073157357356638271444456234714414857076818172944898623251629174613388654845728533114923712624775419497586558313813994848175861221529974710222217302847676195780628040080546430522187325868574517797154310710844323839886459783400931317037008445677332223725666530669395048402042549950290315430083495292954963165295341955589401128180142635197611683452371784467017058369324774153081579928691517418275546266887654594033230222636833243965479699492271069123192619565090501834748374914871857059694453007680432569806244541929125565993151783399601936496538562245350655288248939487012130633971808376358343439745455975833441663250905365441391819779840242671653531170415651912762723489209193096933736884366275378531180434032784909200958796023239880791867567912773786911752572175381470796725437567287070030451791240503770394171753394460150188428705947276848732394958410033629271408312381960165550308026758670802650167611295465308679752958811500132851624567199845073245839889789042213275565476793700375682882117416418812427055824533905441025633167196738268675379505390921990403494506136523783783788903294926036710141702533024971347073415268595826791125389161285211663743321710808322225768679575213236474920134763640047775013734883417939293508007897104650774063550384422733712456620316517036440745061315835126437521018248150898013882008760386529794103237419434285680594706666980797933280829427972852856557242201653921523774977932571471251803928501115708503182182368360373101273220750033209011026536602482590348249047825047994897516579339947841689032554148037815440245032623390285902139358805736388046956352725877997818698017807477505945640274539589930026284433248611939113965010583036310622501885797331679737511932630438052148046374057857006401153529854472264022751742065712606108472642274970453040892110852981288007500779932552392745388224578175990639952504691818898895577482277871568939826007792507564968535863856145797724946471584050737764844682338830610535079044174106953750672106584839071621247583309022703779796884771653923544720172849795899367147471807520348560448878524766620726857529663628804774306420615369266416888764040296555569763252478135381119427266998949404893924573908199550785759054446611371101310009157865950807980615298233737415688587501454682899049566820558915754837019192041573882730035857930310212741948147008525636847859577810012382804191165604593958201386604284776764536718115576848142052899857680865429706465569425691970274475616171281199543416981944277775176401072889681866391835972514379180483093919402035917147516201640160782375216156817500265290747765991274465422493639638421115495026694997551507772507718356884190894932918474798338415397339353189906927095042688389672987249844339654943764656060764204833752259712847003329837835281280233574121585084276217430366335294365251405949511029025306359920477656957458463969297486561428145950091273394227575162355194614999590364843778371919894762663451915424528843964554261452001996235936494927232435983631269554259261880621585331023047468497639117865387637635619694534533065170418921614251773628326714604960877690255239510941676221516610503789373906851496276863003483946440006290513556986274647237254416103758727508013088775689484705142246195260208870147910718592689511539926909360356502586270283684877894051470461058832859971231262576184242147515624889316078455012249510831959522309787740474469799324031411856700551691355764315219647440485031119360515426744586936179241342767818902314790361342854063448088248653151171450390087869107269594168829931331799161988464495211268504257484383682991115771342180224417880124696843313811246295083206975956414414557723785480459584126379445774899175492574258050666357728715611613920415395740733644581582586072437094618289214154528360310314540423715935723745994643822195668346183696292734954786741349927552360444831811798769114568389463074662448141013826484570975625699048906055215534335326782339556015487967771048910712660770093620909055626743962977841867502248027420996358868763572462328721538802133915053472307923775223805083370800187894010147951078601168390252841983189126975298436021130793015807990071971177811990093249202712651580562250625921827598530429679908496326600112972539609514812640817269993481365099196373880133020064246194443831164280308398013033483281615108786282234568549432860190686739501750530388304547978028931249110696773522552556445154322453075195217755651753368669793496317064675493233147162550770350627669869000653856264884432170310523419940447653609355247342822543295648034612589175148032627832115169062917290131775452551153773991229080651866143193094955376848824335959894279013055020128075105231908954288454382658131919106988655111389568808417856248008545061241743648170512117025077901689385194906289264766522220609114982362755822846898802712224482790658211449312816494274279199104486872185434967279955329002308033989271845307304890019280305344221890007343601292070391110169428629327146115481300550764348177938136592205128076580769172616176483214653490995659600212378469335693809421565364288888856707501096564781926371864482705951441307356759526153953595737812358647948470459724972213514571770018289371577469498888800842037005680765646662144269403072225089737312547822168548613760815578249205617822516398651455872929637527607924594990829834440583279435326497561266312055196439746230796866594009607064580263923436352198310585494916827341335190102630133821149439305624896046826278611265018955103764125928360671614146744862206723100610282056891656716388767388275368439218003777497957469210130672376716321007903159128145079075340194336496391219896885433130478201484424800217158679625192084464048731266148850478779182086317812397231677474873721855440367903293330718049820044538024762068772974937152351289822525782649020145232257472616072648915270184697798647926357519701665546541408062673301285263790668107001903766896193069254316910376859138404179927185758295640733925784581579309557574090280893444641275661083268698250849833151900917695500584540153279025967136550488970339091805644670199860858423982290339625999493437791251356236321453368345699276261431278884145205052230285955945538171596280518211035223261536489101579886284222501832802523874331952018563784861358136573755782903887056541294204349839418997116307872546770558844127511767579255696599550644128202208392102697386586449972195314220318067121790751902096020449925222273443764948126795694662960228152072418895904839259362170427729927273324264968877600797078351848354885569503119234519634423704661404010098798188912355628143622416730729239415271769416805787543154730585225089888777273565358672999046001280226929105085521456357930032261720682108114767916929976267010959568041069473809910394635129582165342181209080118042032973903481276826402402940309281484692414447029832898959830253633950746560451643927059155483481988021835514968549742400341337372196309997628246673436101304427590180268221087384800909647131452471142959646538275435853354555495022460924383814987734513684474530365661284824728253311221379254390740170483366093085955645521425900656365040864863760025043780002673453645887443612168298638153052066259823716368835722341596231052395872806713649026971119386284163512679564364168900578833924499016320083905622044287528131498589209476219660984550208823749744484607648700484822913984737521456663246717930085131646180613478347491965613475448048757643327055605933169050354075242075863631190127063816623912879776592989029718367928553287634724158633023888534102072170579675449016187353865174367226839762962082302545388678429519096219421333496393480553792043124419216046918188326646514252970764695857666622431448281666551107182466033743402625114296457164846820849486207812261818224289557199104239988718521397715035350129606342766782126246528075518807015943124536743170368776914881106582190002968638787047232258554385902021821831599603601492040815152892684790747430680649255624072160217576015628674100915035283104403838052241187528366061142715923205712146904716015223514610037328252719258875857028595825006549597899797010075344825223699289554653985340719258503285590098812406645971010776155434940328369710313850524214033284239078598211292409531699752323467095431872278110571623064333255690035848587033117105192609440856882371426080048056504491759746736174140525386303349110379041660127014091188175444293717347138662940318030390156024647947423089074598818844831435094056750052949283017424995886538851062081920321904241328439547051149863334517913096448477118828853746884621039178422573035978506136207819773928876767284778035580895079378319807869055418036255589139584947020278984164831784185695350626388095862490512070443325642145302028979962076661433518991264002346072211345912103227255239970881880520051162643936113504152336896683334726649723879411606089813961233163869216866467671700920550236842411087298564652101061301565808629962706262237539308037019471875268392052205340402424157363068624583132260807291864565978697327863332518031121634743411282848446390103271580630466163705866637069128499181890194225941218299662659594800945542772004643218318330456808679354689268343237675478240464140691399028037607491899998724663873502721570133500241941011171181528993213390618083899339526076672005608365836737803811386151875563125387143366498816225599173188890321496588092614399060224527767970707999759499444104078764318509278760137884671385270623152978962689734287644645255628447116261182298239295937096421914284926321300083720788744985865784921573527774176100110624416305131275534998339592265772119933142769724317168801811281992217403805272773235883352254012742250886814385945554499437637702962031202601838195651081190404362417271717183781175263149645605226661612014331145370684353313554488624087425510102180005431409137376558176870473191488560894799326351702107461847412082867059614223435978582161933499724304773485744684849630782058459144435680427538402179567343863288433015932848409105932776174838361299264709313856652323032723673402326228363801877198808496939506600609941992126980332576436139441884574596964421225516864074628834026707882423956946470857023777127433909170328310876778185650532789188438786883681259173297730788799187439352918120606470165786032117967616146843911147266697854943021647800828546310182953809159729520362817293977907681638945248512798441915287256499097299115078037352084237206632372897754066904643708544769968956112828338012297829241950043045515513697578896002013568825025682433221130665212576976705194820642940918514578724070276081726629651564008414190324822184472923082158550702891637771082215974793732355822564571413084015707751021675339532363999591818653181253837178135225663172656606895079075112077136411644849633543081538719126797260597230139798150105722912947865228071178377768097176209724922278203644896241690730621445500358577082058561868427003788981139849149568345925792003507790625030955885037780735765806090313328058478358505234057159755681189597527706083013863183471409773053038293405000142666946830978241824429524868010357712193909133800656979708866712035431873817113704100547868256642981110638872018554717714103811620918029381111374384775887192996977199857203690366487985696010624669452223488499073228922696228155898248349720445822772455804534102702353119445008384973780023302544798368272482185585049978836913246772569507866897651142762683527606223485154848621002910921887940216390358279609058525279612960507202000037615961466324823427765263448779102814453065339193699176722481096537543198137816211345685152484116352614740445504743825070714979002841881997289973720621623265116535689737882466802272406572491479713162649353650936736397620507672987351145221179775096588005515350151982187367993269495138002469723133008920832259203805644993109473822641055846232558052997739202281311422104252667601289770216525374157543442287196132228907944467147129447068641473384730679500012420848231438043261287105828407095370471030247717501711743676755687765171595816034380402322266780177158008807336231796770330192825815108576214130021156548208271448132810574930350840340700536672590696264958090693148150835389903144909787444585711752511007317204653752225833904021081571991097320521999450339976164809296134603107974362102943748322682859460289624378149031880843231046403921044966301667986297434025841594936547740366535834770067301557346087501085380534242796136794258563706002345290903544885103090164539152946500144258741187104134317838825692313913357601735401728420307552854544033866152562690652601435883378943689362056789714701463766452454462698777372691185638963108401697135891521420276365315158576360952219301836574499901429548989672167488126819944790381916730358452331717323673255356972553256101366900623440113854499613269483652198647460958627602726375935025241649252708104372929388224333674172815600976003983334148388972534968160006435231942791331765266556197364422155038693277809850373006843501921173999442294880754078253749767591441007323946837423203214200345583248095941827662494940553612531829739025374463907286236930631533253537766616261065067057780941797130431938731709850290817527222119565360370282096318204704906928107301750638559253647076426235331651322467980646220317518254938711203175893527489757704351398330287273926895890072803978913214216199711600214740064070716255692360928985998854359582375559583490808930565844040668014461259203773245488766183022365508880892612834422239130496085845077453581433864146242420102507857467281981696252492572114095341226171016941643626970460454991721825435943156792832720549717603564861597844326257881433376549182362575347619826606522370385468725222880326119007969066993580394340924829711341974271189114801948116195627784391946221518321562395494279163028050546376417203406342644674667075802325683266754535453976877259975556707734844591798473323910334630831323731218109042187969388448575919804683129736563112215486701707356630836977939788190961138851764755312284954626081895362420657147368645521917979467783074586121692041183831538961438825630252595248585604206410494856829299120195523375884203744174970122830931595047088822521569520826527561557621677095995663683896032573777538248861295808159917852853122388664691612606917190667144617997125280033080790869731416736704416605032394108293921639606348202572278486124095242212455326230147457183895201076449309830803215303181388804259811895591754764680769479839850431510806880416929148944857699215759348116206912716590089072268590192750867293176337370558068371011082225536938323999138686730380136857503078880185789138971841181668424338664522943866129609368074784071482074840963717203677260222052435795265686235854496346579542350589393542718512311289470210988879857702654870723394143926623064337777123945958784190741801604069920011242349130481998073946813957121919917806706892799733434844341849249773347716672273296564829799621757566985621239732192554980788895971079697098402118501177537468445061176843307726752564957147609235625066994957348137350090287027571443934834060993674580825821662362179530861794252993347392959042976287949532342751930162443882273357621066922340506862753183461534552232513380872610331813608714956869158249242715527772678573951093965192747933157650161594468417931082151540789291393745276226136954878017418892075447926398764789169591206943437948650418802482641438912718925916852897779381193953939518869413977115877957574730788303335181271959125044509346678915214818541952810066797136433487253787258505021245791046225002099463995781477050871721418763718037188376679563224624790950329536984420248293289667558591408038706021985779236298222409209801933410273836899234800699265147430088819259502276007514914021096438374980339566454967715786332450160045808690490224909527639559670561216326507803390995031249822972799258604496609426630611776910233071439052685492113161876178981707247749724798181086104356906737280637967604651617801815106058399684258185092731065349651776490480608650680519751699607175883178587967781026272041814853933534822770267544045691771051768822463847904819152026978953933320664650739064340340335329976853669478031931382977550485670095412660130359503694340547623016232158834732317924763816539559556703967675925052548873397964450368121007553071240171696223792967762924609974784069351767117046167710563110828047319765511745350005729956046536861403337245042360001143952406456304462046293414845819662483942896029998569108614978693442075336621430184543972178133764187882186098303399962605097518622335709629954148085963974437796736822540583337116066382063729899398205810755759396728501739480408259723172211937940335206111583580074373028863410544892808283481921710068838301288552650428246567506446967890272771988721883822313314304969582901180449454297386701900691295760591216713222003017292779850007195335776000095623783079871486818113157556458955411160332300008293516245107438049712768377956852622020127901056353581929397672687584840429490816837152931775757421949684327646330961904496941535558256089642868697959135249596918735495040965405141462612298398960917780568358539092512328809115183791585676850770552587959646098908731158153024289835983755579291257887779812557878089915111274229651519242331294622027680046432021626578398543892119995923235945756247701093655564696223843165293907428300219393235796011719791045034101453206599517787926002689483943455404432618737541377079405726933278097587380383937516080299296930384776727387277000119902132670130777645266980662668829775999635571871341286596825117183894987056027823055219074853843628574623177313366529857247608276735713862334874244298559280684872907312495479280112776696566998325880855171685857694239973738427775505692067251681081907591085947701682537469692125382705338281979271889020246605380536240765983991544007999132649620996134240662171854333440135998877791483866108234614983536428131039316136470673357719913377321507610500097634807872437256998260521727390993532960334943235772923118445292272047059597754543326961356185956906098699951862268999902012153168264936840395604219949760910031030800048595812482134401069581451299120806689665705896881584229189473509898442733083104414577141157199759538610730141217647461536280112305917897955597701844144816330411210500891825780262900618965977889623738732593000730723563638498205048232684772762442848039357995843131278990933326901703012957333279031622974429922093434562292487065220620438916266328074235742404253576132187480945975744865681347743206202661243608764267194957704150480168800701203166713093745868133560446117567320026139067136387674883992755550904653829580169725184242055084923702042309491517425786235419386961973767162153335304171769616500514751799669596978100191701420042954318948940844815426102398935538330110670775460724437660553182604360436233083430924874416453755236619261850791463210464576156917913836877578915921663487228151586472010684586470407138162816373289038554167281239621925452692976704228945914055297719090457677355895462133197483237215439226360946087680576595314058980383894256504625427469165302508885536073990780216709757746437571531828395400914655845305972848989006895553828319150601168858474352692394109566895856301812580927971904282498541623219987101272261240826070950432936165641072433677203659863958810721778926041704037239396251127631580177998559294794427028046094233621661016589429956179145451783277413196053007150194738699641365493655713801046086823252078109617979910545757363966939390016768843867763245128345180543551439385318914155983082662283758562633850059606014577205574372957552626446154263177153644365525785708629215050163539027132724448916596746970782046239605091417829062397468837719548292003961679961432597009485052079735175688898055555751025172764070735358858230773804728271305486544803008182363649265443041452087425428191724149181481147005222288095773181322190397413630253724513818925747978224197145289541758391761015010096291182563535347346652320806038604436782085955803812633886896004242815384376017788012092302549706084617960374917312663183826607736194634944896680441422855850041059950765654867164108365610437800271007605406384207232278985055965006195509498963970405866784349584153307832824294472318799047928085085811775726364936487280298936160663389303759434194814774573380763619648807861828561213008764747638171236944249789729422103016280704602937598270242197857199656424853408583106067247521621440204409612966419129783990569779508364436478547084334708891520569983250730732558119115219312004913819520226238809601001406544774368483179705526764203974131816412290365802027362364050061591845671248284275068844761509714189680348197003787693029684715723711943191459786242052685812446194757916642315103253539278114324459760576540688933208791674769283819651872345727364292020299827277576358765504598741192991396607657218784530792293170101516711499426215614742916610314146652188041101726125153233947090469357242900536647826744181779445738923670255404095673610004239468633335827047785408173220136310407276656235500419104522407846231190299181342309511820663625593568000163292079754637149550437778664502706856815922156127056312978575147532278239915260248278921568473813231942586602708224429601729624485403335856981594311562860679235110226972947994831788233557647565875075229688870603549454677131087302799771350678145635001592307909341106807231792491045478845850272398681485857677729597271505413903151417322236068176562099665027202522854376015814487916237467326221872019857334006731500105612772456934750657875962327545448710544952112312733906610723173166367102792033156726581395658166490662020440000873313962684144645116355692162312228982118897979068683667190229420108120485868213231175439355788712785811206518661451424240036034645410292127661170528069893710031691719245992113322375878808560897292189608006187630093139959461254054672036649523363507055066085604927561194670370649057897856046147175075096888753432570601845220812022693868159052583825919290456358997363822396083185509936440537151845706237511338836065409054877853048658278030536887377699964365170972561860836246979197245820953171823645549635338892651806796543410978439057027110465029797262071441412981761649490186803295094823860800889116527307294024568455102769691222536892113362665981322793483327979432214910247069902020589059979160920631197249167152601472414797705815413500028151563469705158776134158433647329049423124542701624037911586118910710971158546250236750982282504978890260082039497810269264810160774785765683885423146256510212077843996863629724025814406462804737308638834748806454564209699275775676418535324762160727380481313514234810108813989857044446506480440426964801238861914350212930386880825337225508905375089865551151834023950031414251579930149976522464178545398374618671284829992179536159668635551950651950237383169541820718229539566689771247217648835008964681283350630649686375964598321586192295576110817738644410420800361456869475791978682890735498524159484280110901955824893378397990921996844433962692339308474492829452492171784298320778053784340466768713140196753495084159069584055659773464363068042603910811828939479018963937250831253060886051416369014395185352981732099222782819497847044285622179047759747567894540245539747280995401924271866486317358213481909127228406555025732041772550852024168018650205501636324211124939566888909840932854179260547458312700123893106394855748076690692661701432865908344966690986113749373749203067074017340217135186944673644657901151143947181482142313756991235407094075342932027255006446582908570095698574068810761285738028499685709826899061892355863614971937697209218175081169441666333909236529544031435599067857275404461255303314984586198549336806523796736232527877961755427399493879411001336770087210427233553454323456563778308455876056508975323753860122225139954505941525357794005194358141087971526935482905291244501300102584671862248706560200728624224424409991939625346836118115309109438794982217623389521377463524215558085049069859719325398234449472720977829160353681824785924674575824172601781963546506541555187376357184286224756088633674426466381153001382480438868483756916209067776530144675511247295628013530029427752198765468861855175559395313984082482961059683835202966407449841072469401778392083921523009302602762559771514360447647143854811833530332387479606261114948904813246569111518885875808800993454330263575073708565552392545542154503735242418086452761926271774297421526097360429970573695181220581540846133314918304949261205424945844257263777370231892515860679018833691750355343933785666490614447054892658567090775140384437863346922711930040156669304166141295316936037892333079730792991993452160625706909201809412424509813463123585857771574237318614905405790553108121104621613170441967451407531581921428507245045553941157495113862447058311374877566465218965966607309456980887897506636040003471381605540482947716878759001169563338765969616722424732519741090561814923654906821818198349263276984792695797019929169957042418108660472097376950582656002410251228288749260412089703416745122085738905628145110792787226050822830912426565954235874249128454680298689434401307077845232983896378561430412617825169415644730143606362200920060654577763286573608280705641172935021254419434969120174314884710574319270391103935902681351228665869488203683254259072042851226566985269199801292701672610489318947076626035916706286314810103568314119696208314727393968684189199630993996071274543882895924394316356900306817835305029543890903211283377100743519392767442319230000601684289343443185652216540096223659756181099515351358968578351525241953049194793119793962859630955845295350046137939935294065282487661957628237758540238124805189916948687337520180676110552423525380117890941216764640950354617577738378681967349929678966384563054246338424191772769180735305017740497605768796036044437689285721973771755975463611878723873414272047445290335127144768749146841504777034809872447713972956501869686464867285821080835574250950366249132245815717307137160191233306811801413046755975761457118981639891361884442793316706940052082974070869749305246434761222545733185721427899941024421625255203070542878648517171066940872019698063761810886239159414859393642343511075466719120154964497542589236694401779572851683072020819130152992784584080164448334885041018484229422149084022002689346744762230342056659588765576022304789365782986086592188125428005456721649225288557323632408503603281255608162473509748555159830949416254113510277322073140966290774484459330067820340938274427787901960309091731419640013116650365213845220179473358713139232706579109774449248192465753525698439011472006068477969177096382261885323654669318763431510142554475167319749128557943425538504701665967729169871179308277450564591798520349627079946096455734662742242992832464808971542596426253751667246842418313107214229001640296376010206371950798658272168963792037831195483542997533851922078441386957646239120954962877888714309657798846618823164516692166870469104409197197177413441156842109566239808055995708829858358898644596948160170788451464883621450250663137338588039486307264822612535646017691619515308433520775567816480927904134586509048899280552833847198213470916286127413188204440290450714507199730033672659559165413956760445042241415590378076823537380793401701303617773501434547058926685966133357355178161173751841564859364363410095795759592529545916960710344374643778641918769627618702192142804645195340323433784715067232533959138331658901854013202555222062477584040482638852776544991686799906955648803428556000613289429834231745066412048391972746138941160267592586786804326309170849981510872092317092216582905963063137900367960070417887052992216712145560416678145675332280926158031661360664208033727607341942588019857754562638510382813762080970961563523120336052102946826619624208068211190849090572359456034766010893330804934471760952233494134205718428066332921980433145381922176304079526416655476790817719266879277837389964117713092748245938464273204852302977579046893201071108640394329608995621103254432856525641491249462906658310758364065652142964723463572797859830025306630565667040588008492668147156477582897395501052041797291983734173070006122160020677282415414455736100115335338020515952359869337234493995255126039106753986120442549069938262705707783874143785128276212673744687253901674783584166108994005517095156081590865093924899714702120558884930269960296377179029016036786055078198534519620173404447275209108684680581671789986988164309975953067068161399221590495296463477904527963483964410550894191022618988720613119506572134064326700165450594336046983050901861490807977005649407984064609762163380544056933905342476829178693454063384171628570283162800890320020754021518586497003024305740537463978236484808042025913272505518808507256319039788197633417030290186030491618083381525277328158601648080772889071174784872035468308941601199622945330865713946958870301035902474968998365865232222378702920700181398769029377985264948263144659071278506506973829081334991806393826408416257534114616017525225242901912887523886823481194907096798297666139336698143420280655978719186144678633631566334560447590756931403454654964623914710431812801362806602468411076558236781689627147280090447366128104591972307159761130355737429028119972698496557096289705025774623496238130457805965288751298517279796642858829472444592586747727199473054740642389812464794550969671047058890010187393678436657472907038010306701527654553843572698946598626343288932472387940295985144124113874654787886045437390045736532838465792383124187182554878402690953997263010110471139896163736821669401429014265745173061068783987448310143645847381585059360686259630985075982698497734629748729292331963415384410626271328029435494054309618253267497605357590905217730122583163073258730276533042817363653816916819256267736738488308937991443371743365427921506820890156209480054864873726246808654500380139380373422191063161778291365375219508912335704616452065972924615568626410263021580597910268669531362742131741226326273389158039910256818766727114137354076426850860333913170137451411814370971580535491399306476021336836571280665634092792522395044803259727744758315064122495135040937291806622286007500782878098555942399575944038965147158653575303645019470504643263937036228677350309817557922841785674124658536564856572921472745430277065236843028947870838908784909847834597440473430535140780529183797375286865560572426064105290899756252936105266482129108740247547206202049674547905419287040693786873395757409322941761577847776155509250594247950514973738761372586505873602534424040962107396238976376172529598123374951512451794149982313796321222164309224721121251508252663966756282592937662879471931342811442196965575752573745790747056002250570161257860322720582758746858456859105719384213856688155517584473465481800870263509694340807499122720566370888064403917220113382551616347014390694270576361774366842764338349981756121392444302328989686661391987842384755614230363388280581042094069624068148776791604083953530604620939150082455211634623824096825720297181506053235353771691694789961742867776596896853255064754990821763463592042324901559674198883630144603967698569350228820496540466512860018793658532050366220643347892328739490876013568608241010362278001804287762647556623134718611568931806975561789429351999193470175072811744992217059785161657351669980213987022615328028767141537535664937623651054208344039667065040519782171271021395470605613466153460288911748489854494850639831794707903907075223724276008039074461251602486057070059224292081565857011152764628531442406285167058819738257981335318615070815819444064961392518367323101456204465932147169770911244755097668079476327187820187301674355155106849517916034713500975976534449882291109251405887566450128594332976765215101335693748766256183880045188380314158890286969104106866830495002608627400970118980398924643982792204178785116249013737690598770514816290632939569750309813210713443303547686984320954374452412993009506189205316997939537423867012460979588756076970771680838350571110941896719867753607565115132921884611535168505155620806247489175291615082942860877525102022247213968883713134015355459320568239741810099411611877145440443639882143268268285926711362102724473488313900021959662868600443800929573643139547494712046133606203104456227028458288916765918783882493190244684138518964175390950150756635174087798201030287580852706327219167830938304219929921964882948633730022965994577107717472151478284311741834098248058035044871072920345857013877199998650571124111762417263377076481165836768228727270503810381967135703786790283616992305909536585201715481926111183463230874911941617377202127613324573379856136285025372052226389340026806262043150011574841076109178588184395580451651900050340699501220933627984995954120870899966677732065575810045913526392830228087524464348038477834183005083003500770640550373283273258861441732150294485962656353852461109929681925216828096501987843924759613706574450580472930878305045223080052037061717800790955939675021852324080853511122689704222570848133229862876037000499194609816940567326816613598118502868320320956558305687140459191082468358779384940910383407422632470875963247422177868429996672969256477977907536556506256481886485249378662281554856818222977935235571729803144522221730965884388598099001150557975911623046739116363283180244378633542039900324878709542312369691908620612268358985610518938240018279883132145849905893260811495584526303403580792839879106525483825595364223067072953622383720701091753040156625895712330445432253847419215446748209535305782735799549280585636278620246033319817239568377338662285907818154422782071235574898087029725453913940942043931954350870508230737036392048921584848954785751404689837024748800555438080512303702138281397716368512853225962399806919827152924296419896533054984891816626263655322639909877285430614696785108232711891698096577103917991841707144742379347177912833675860259478129548934196551422901401025587281467890462297792117293383814660249306783954980303161834071499235991415616938935591896853206420340068269126769481438302125729412315299544104126375461750261835025238623860026196563458208039381697238135029335394426183866783257879659905904167785341101155589953200725260925576902943769597485935644071321567025123259134654914495543543453226636561914818058949858311432012482987091012603066307541585920757422992256204308826349682928743437346360663282794509775453023144165230215641201280294281047638672830737453535291439747462925286401102266975355243214525147860926137604751939422079192664098361362380351375444323191232798739507282524511686847821302554312505433378071759148278130087566711913608366880823796587788166114373415059858295429771068831399027901039714999409639392947055525957805294193258109718036117572062623712657746222331319003721998596961714075427420380882737081843418566548880580314566823874459545046227556374000977508266467805556603261690648017994445935416260148494720740035606144127392255036840654947771829996926524966748403212546962773541519291662500090414015034142951621247612332939003739000913568197815985362865816207156970203711410075317747615879072018269351767834839106007792283176190351994323518590729802969034671405001387953806187975297743443757790301337356386773732357625743356004416322982437625313058882291313901421217163748009454670400437844264039530800801233066492013486132930954480489037561984281752196687115719790255776169555201536480698855253019711151818214514749846308548546607721021763432882583388211088419639642580834531471163342176258066661085699662023501212938243165260103468260332675304762679797046788665745137340844593672356267308507854444992368927295243193929707604849022250323598070964978939788578413462739111087549798970010646258691774137502653665453721715401387941186883059898892638447332660801983238500635202541476134877559616268492035611181985272034037986095359153309996228979932406621637007513581948159603397039608305961741293999232268166063714511500901194766313370849422554512701384010448695775906161894045185692820892289475569798726283229373668994105394003516180170999260147755000637385262370890030911228894434372926768165713234688560577660974234687229656842956103381920569264548470799289599741648032901689607127763134218830276047235300549502660913948045121086179515026342299649019120056383202559381838259442936393269091975119835959244287263011950781013947718095288259192649610811018812050098721362399882204707872608269880110839795951512164564434295553540692031694680128890518727582220439082986242998887511706359928222030676362912195284277672237487404823910756457382535628409695450882351387723395703224961336139747566234127339934239212583865474879895721118635899404018828141940188254153418899029973430824032418266258196650371527049906615314798210214576833484343030418467529934884178830635662277891182084035964805684906839832670488359404021114200829238870293434868888101584012316360549843387280154097574132623206805808264997026685548612207190750061005168200392672324086377587553039481672194393080204600068016511624978674914665081635733377626709861542007270419482825411199351238128667355301763771505072384732264093728232531767553002276565473982012693158416505022255099887109375485529078776554623421829225571307165965609272001336260404065677704190648139820457289315647289546732032302558604530050158467562534945926588188669078325814742477035605930463102614954494989531939046486501105439697047082458746676092069425453668427679143712931713879390244044819306868843498326223912640863842179288937253819478475928451014741562529069013530784564823865688773846299272017058567350602452831846589385574616335707361789402873816943686011474672823648004256324034389094439343913862244537643620266226362620179713990945803796430813075570042072415629448692097277101690899726108445057035333483498311701432425395063355051646947732319585376874465475797902388512098538398990558734040557154500136971566552596984629984004426051207000332461447477405810494191473318080303707194177106188292134117000780040463680902497720626834140266087063110033154133077063480707928074353132696005456371915126168367564858563966702810793008672615070142293431723557197232667879161719703994528586304744405291493590954085014972053484563133402594358301445939251711476423382129962932163307679606055400410158491198452216117826742121561981474119723467849011103860380095103940303030791876115075633785399080439718908033193000521843455148255168093996587090083787277321143324710207051286005286184295583087244081185489941150834604656420263167382087504801375601369100226365309417752875249737517249674323516794104774379443468582612949809834003884729723964001057323544433618077905048533242667937032558840561048257207791399653690168578120786552601400450166169403142186579114799813139043216408588813351097914772543056104525316529542644766497407273508650487277733163682469238410269407409325240460178913095056183435980210094293439138098571182260800608602677391123154692911184186750658825077015544157913251483905291089162256070785929851921660272148141254002135864994305727093667527021008756811411261266056317918942049687905117175716121932108341007024237616880726462239750984734426768270497069922454825041940943505340408459426287752405671804405849949477546029786135070008467260902269099858312899644376952484442927447909715751096460196933946424016465423477619679251521343751465070385326496825944960175911359224851680133829141444227333389511083753879281405994009278468230870825810366440051093248159008405891527079029656119333854960901214060523551453072130334182490398573903671116139231255774582610187076825204218780995477212546676581659182249292908241153385316898526425261322345124106185383523927427604850025205160449006248897484729963640061391086035620236634749234848775521473182037050889298685051963747051557858159976051002896827577407518654841251481516038863200649331643850125124658898807773788489041706027289695023863445414056433182910228502021638633540218801938459063554015050209577617805907429763142716006839287962559671760206294937096788396389826430923646873725060639348904612725615169183353133194194329439590275037706091218512802175529190688832459299076189795797886149314815278400780753253188876152257978099874000253471090658127167570559451062088820478459777070523570930701823891794106077066172627601813931504296428153637967792984956680314385906228185121878849801236292320686859043155357923784750523866354434883338270077274407643546015175144596442094781212129608174947624487748316811219648139715226065986649466793959168062183672502877370742887274914828172048827698384942232571867055075971362563341042831741602701322169794005778307124893675748606744131447425943779614178250932645428308531014902189125800464941636532389233132453100902599169194913876606709817312819593535519486884858522530309651036026169690705520050627941254339152583810712670798321744562062783008488920099392115964410455848005715248688793825974806481659538256251352632847850434824787491931901879514001652808669088758112360767636541056516559914177763985386985957749219245071804511223807185845338822390901266766244861952590040112994898851870217890252020634796866517808231800750149852845692516291426629151049901643111966799142762398052452647149291581226245976117304459013462316715605675659229529171642071763261346938520812114984479819990574943430776227710534969233296484735824691147392580245651400951215414095322162421649683297589804253729461505229631096511178514307547567449424435645061669504294030031674251185981295287207344023240975838765463139385271496702227608283955273356988186549069224611058381502704114183320951654483565675345449239737199504469574914027841466530654560284376131421846751521627375591204782015967227820333250307672234216899006276783504387477703176928932672402344490059703312752581686979123132164131999151599178136938372451137218043784577392645721288716395919078145448441796275317305409932567316254839058181557696646021448106215520916261744525392325656095379051866940594661684437428901060941497943584015733009116957871051140353277001849219246708071619617819580779210724379796073405386720146918770688802768163030529731045483710746799792802115470751320130138644912838271559593388147790783935887174943363208638423263732247150295038068805953367024312270069892103980257630901166036238245858505359768406365179603679449350821230911167115915588765083702386992762105969806041523345546755206549136914376757699020314485843063517337566506292855422613156390909117258767269976211281243933101362671563754051169741595293388845608266620934610075983028549677775126491747750175933156316897579463559360057352238360259059507360646762089857672933524433698719274934229107579558447226092449936303334063352540858701005378952985272766171509941142847731097788099162311433761283188855795967111811770863090842749065290250933525262208026167753396302255646876892764197204296935444805580313419616623773216010142477459515153827191611179031426367283827914484083588173032565520476251261609503703291351135192616975412831913519544420608008670570130373080037402449269613795109632564320632510724239301908762188156902024814982149935828631674770528071090052792656620776086396870520178741688679984327648462040887569894284418348962704910706162634115509407242860629803021300781300821539856923228570949340967591903158170971018952225580554000628627685912121148474432473858205758366777790541462895002278100476544024088565878933141873943785549900469527141712176455702114471887916106728701854820948102179432491241532191637268121899040467179655209536671939339487273262062894775337789106018478006937906476963424830399114628486178170465922443539531424139790365867275038581659660212833001230126059858402638276943025572558823584466585427674834484005917347351704393425038082123016867330189558790373283653809629557960140643241407106560671252122368978518444157597410457255588898108339335903533678749745140047562950016859255277623880964590023952494185400502644677159067095984861549907437654509041981905033611987881345579523854794727760170663350333186916531244787472887766432110981684027408676942198376620732921237829801342395932195097638340691670954752741974022009233052898330762550755190140555727475331677282147952038618842536622928777501823770359565822559773165905479491012919825189262801005241359533236394270824170921251108541099050385560307813125470861883561745471980617037455128723633861941351075781453196905332625610180751633680799814052659270785413455380675850833923468471061247654882597407144482115051590889125992884958722595643257841852519873030062441285181645811022670901046221411492977508528744584187766256855519062153022319426756902267673522321899838115951792958126554295342880932841531486714047173701746017385262983442812952884639294482263660095397784066964669732741430858528909389049708958630563120094058729719848781333383087852462266997125210385272436386186317814602789283164911347895515651447119925489155014079666796853578563429276049666772044051537644590891128776976899126288782127430146718419215054149594012490545204494774837361865953402744303998333100915081323776871620343589152210253675106720068124452527907118291939501623899799472620174990272743963216653602534447586170018346648115794328163966732009206763074078454831072115508266849893067724540800589202226223955994603834221754975003906183691432942875922847243917840860680392895452347255569628794348386480467491644780320318362091019154590980261024966388736703906756344430451093942335627558856318387471733812335960199445566958344690067110058408016421281050229914809654037793133237471252158723737456737565046838875802061978890435941575026392211894013978353032196575174107574444841330286970670447448264713448030351650927077956042777547845586761470510505025259067610595837973305014522905538064816635931663415838299584762023761199923646050257200783772968621568674275835079778733477069811859205378477721209618697316115093956840855998871438712469040481361467749913652596852964194299825495698956032510968510802550561572953924413969113831700679004787541486067507599302808826982330570447923481551448928655203178697700683431396663154182155530427009808864435794429304988083851969666419243053012413052733895426197509742109795339039918747100936720500521990554876258332567714748086778387159716664023525100095231941761799605242713443161353550813115973854012227716919547339240998917268342295224952189931848565031090109879537963753444772806213924238957475695755811311227443874032626333032929778204087695820117644170766366179330101533510811169130915518508287718238086138385327301214291709916547559262511186655665848008441417597997817339275590396170823274574812619645235192301393595596870086754424301584358734371434616598688594017929390017099039286945996208699661609308948892056484216209705250434301083298825200853413046700736938603814383214608237974928598218487133047936291298001998720151008716951757368862328404092486891327753010133662258863217996931611701055320498743988744570205376870682928622376625304623388686647949121953773686460731219819730937958733756235273016121130921283559603642395022812406233210059537802442177892194177760685801717780870356388596534503097124359015999944972345936703537649282596182292862561618232187047324950489671747387218672074676293677361926109970672541950255032112024795658909310168189951703707953746269635962304728241448654961026051072465919452019815165035208867947799378874099742384101881663983494897720779637946720326623707165514662961694686862933578263150727615230266730761428276650674427490025735152500060644042551122478037414555291286681869885974349266224981700754222098059842269454071772685061094131840621053927382206409781091352229315800176305875219990859609260344478840748240722468663634881516794819025779476705584521860292219861937406969921881887223083540253256331708006406686080297347029357184653279829653106295429313968050259365723957626890889718521956931994432420371028168820889556680630338850583676333390188446073662489186669245904849225031768807769111201044857690107301523165295709378135483483922579688146439824005607051645440123701830578942491082137022935820674946774639198601645892723068522758142063869378997659190652359189090111838310131028082416227287917829471290220930226519616628631227392601705575530985820799604663959083418986633210655079090807456885766039401106885443419533938277828824084937438551335604725495389585372873946188780043611291700375755793547364485519422532089488181888708580536641347822173104883819654701458119425096867163512648177114318932112530247021613214871315038029131123504819796900260006018376679870939400856710692339619612983355611286748200327997069960135858220088806936335632314991943406660601075332794513445693474826495737042387013171241582601616882911480932041164847507010809298671948778864896772571338829835178505509344519513376398722161864947859619322842452166027705220336180524200790399636278592225707970029667385182306436218937858695408703766467339172966521735873902696633354528768931816740806648261885921767501617179125771549418715984643703451856297973845146548583359326957948071354231398791045719386725754435488122555724663721355868702098930030819121519441052430050587222604009288345436062149234015533706446033777661383358554230751647682088024677301209214078327962989689115164176235084481058111373495106578135794970106692124548115145885371312574342703346692318260646367144189789705488764900801518132893826362024063971766391186237943259388297797023076574590792750982459267592752212589069296071210528736524322400502736647157458872560473043893834252387492699720073187816279888879311121234254055021084630939620642534164532991152993167149075719756261488618086417034832758598750432732497458160460418911686220220664509362030893382516997798556771491866663770690872894755631342167342971371033673588134667279404318591192856750358961276679286162234883203067124060719271661868485833254512319924670834884847948163839505442946977653768395780309846055493211344226016196805173711307444116428754452047977736995072065100910247720274495751353110216587569185426885265819259153628900269371942887390693299190203615512619550419419562642855080995041277845086114068764166497956949041514066346019550368234298509527597824742284942756813516591284809654168583082484694311600165877380211147534667325182178649514877102892500140300117985950125314345295416135639270081006650396082413146860041144650800382497687763996001715931024252961713782093249837138941095221892536139121765779494206712163602511270945005640645363708539448354169445118697435975309300617700766266621580269644875098450357462818214407812628115777435580733946663683514062529028594322638339373031966801319407745249828623243523295906433639495532816027907660654167538469950000847779618666016213135958907710934855729738562688267553301657513729055793782192516593423103610469253103507545681209562489757544429910503948706869021179872801572586001887072215507280667394021395888177406152455368829259995160694499876944800792666140965459327917675713783712528154095208564626832961173324055990030961458594642285339932998308250642391797139038615952323444891728359924272728654431808247264921941462151364018055146883473461332964422327583109352189463790837979049309957631791192717476502733439787598832639468418802072208792763708913580702663352448924216207465426278494683440223817377003694067334056408599524945298461859277903190999819109090258335952003640998278966518681501564021600344236135051194644634183947061938980505359057409710625103441650642086562676661929441611859978606551401404064357061769314285690757876447114325851886668689696121611420721831319119146085702337398928934909237430428800475042006161282577523716992182617218777159019333575298345013538130475384900153735752625347750366952816185677445714238296037344387659096270037892259941487550034086223327097681815664339099753280613509599763802575801966686738660428794633137260347485492118885281032371188293675715324321061900897672120903442481267287883587435791189224017896323800527281994618604315184751250994338536500922746466485941352001590229247993665454765640965512594639802082614708182004622005843816697566186167554096501899051971262341470543744673348453619791677285165083523939675747256046911167334327073787008244370300924551234027123207998087445054770278631025547238857121860042827244804944978115172784280457431092530091985928980470245100584364964190449635374021092531004376240959779128992694904094061959488371606927355341020147183031317850040333195598791395837973678988212625708865261873080660302175839496931119614955688596015323953128817950244624393422745772640575619765060170706800301782045789669282478365902103510688677232702136376219281593806901464448172982469811320466083853510829293643738742263965449627023640380038557001240142789811088200872653405283016282874535760594969944221593343815180339206381668924069750856972985086241539442952502609570886303891481295525469927871660322919783597776602092382498008323480486599175505846355450918082407339758315564446757354630823183448157777671958758141498302610036600810255647100517407324780685171038062826556307585181632649634218505551390579148818812900497018148978542522894322487066295874024716877990579681762032855850929899561823376238992416929532937782061879601670796026620624634508361832076737467186967036588381875259852713463832575625315166263194946900406017710899769417440600333805432174521216539625899929516106067798365375765917012313077075710294767430220451785107504549193224001000961056620594367391137769680730572618707228723755909125373619500139045596655337939061038790390952930159804267762248544011186139201498270064048555393777595180606680879330511118624486503694427516207964952871914672156614157313766563756911670302680142212183685440599759833291772281156156727097616248399155748261128992285113760669988647126692987288458422102977291321332857644363727149526671078724903803668444350854515407402656604058714492305103998753015058063616278656082921860184714161436431648374152372796199347321458391877807139765681674127663394726291298713279359018267244403577715101999619678660150289900327004283000733266468167150755934392875418603330819714379794867711891918696582500984841892324354920904315697374144203619788978882005948639700016544078728029142754604704948078705092281995582451682196442432570441948269437839383967766729413052321900501325575137080509205834321722219212123585162172025219821753057360180584069838121183613268746162357668280261008406228243896965554804973543014158015777303534584654368093083727501883518008217353998272149400787566880059816075990703537026251199918407219874321453479678647529311196587098374759027519495631218623334772773799864160617664067555220101252861486693179108887714542847164604843359054799287737917077970550316195386328463158128760000293227742018740950369159709104001027314010454497789629701674364675533893681974836146730665310671592350753261527763838440629078432771879491785417536766765963414681920206684581835058007699967793679526745888299042208258858673947114496076879226225216806641114833994575617560855318931347129219847019545517840477172553190362571817232974784981642683644701442989477220616648639723889021611909369570037707210949253567411533629736296034092071379541572699308481462447980581034482181822741569114244137188047394679102441186031455125063447780344303836682221885860132747247796974373832760924899034884379640518785817073602754297633026659760610863517089077305009062369794965272666125045959878679326432932775381103804259865976833198946137044880767550863758799058026900349645422552696601417929390498078896734019791943895135595005506525775526640508576232129560588022494259848168978379001563626087059392835788552397953166123771989220520749424175897196867993139471178485117678740971854580779677184966487002796761129271167845626308332293833494899626860192265553530664744597045272937066893452913644884843729118411596076584233528632490328384191452386933315591510911312451518335543685361067365186013408987254978144341680220029692873539452140193484873893724947924951969772000408111242404556443013238378781683043347988612181772945603582228367746391679629331732304814541577467220818218852332030311570698512398487981615402114927863975699639471339649712236725622304171968859871979635869174016824303308025400359876167914817341557084719486086426740599066252544581388325114368223539483821762215037139232438164082979821805455664518579020314364321130342808362848848221060792754565948184063117877166597231034376193149107106152635818250983533435347086813217975631521964375301005631013175871549027053821344535914247615798596097019181855631050042808782459748600230956366739604812108655513870109482946082367123774463191626794126391678224704869252007478601949433395690544164857891872288983447171476918978825562080124031866792905486795975982991197199749506372328578571588261008824776257501680641950673982407843110800058508396650972486645510447935064760881409775232451898663774818367580226257370641541546212063874939359501779892929950306745681109794933678203780754526222583349961045898907531867653846461150761789038743645189624022400440165572275492649635905625931199602623673309587804070582601501748778970791584537795769064614675579398577808402025539479152781830669313664449771143180362980401467350530429593409641170638666149135966464257886626961070708403267498424404742989578245542967868438512708318802646108281688769124006550626692692065323932226551954964994813287364888327924055716872602820961036705633639721177219523292579366139812630496460718044016244717680928033622491742056291140443172143368624528642719778846764989483895103304746765677586939624943759464167794528653847711650892423156706312033858784031339829424613076462092412688865462028153533753569480713153278797397317416331074986648443378706377444620535108636381513169248269019816710334259414334695454507451469742616542062460818132398326219926056946545493895845697040632204028928843399433345303990703685616939431249535871652926366021261886380511584401179042324201979541116874178910022135922773198134789203261560386604050049976711106256708074532612872095104408365875249527818569204935388557356487622159650313965048723109291544938588786984380565702306909088722236047636120953295312173163308306212484392598088948383311399401061719562012057848843823461089456262213917011127939997215896069873080208790503083880039091411204197111230985691559689836537599908137705826687935919019721335440405015420862016742570643951043723429783345719109529389292958028886781290506257782460603121830932231237417682016653932875480422662614283533778846878650202267410949577676917903929360287737933709458203142195411115440980260428354247049467564538711278502104499867756862451279511230880451758710202043553834717316779222234496911099594324938487536020234677639920090320822529991284577507447908882156782195594329165782713283927396247747512582576770435232817691610749597660647006021621410358040693981899514283118459837767645159163228675374700415141295961143116401173907803256932942256701890592272139358777544692839324239443850361732090533524201074709797265875650267462467778218073663754884102538039526032571226238343740211856351345067452730772752429775259161192504856579884348958768963051788248126720476577338916074480751934446221259748074507772951534586293243820362396006533262516091023390330916560166123622167277728274399675721762709779005997166698991072908997009077454568903527307546801500319078820432602695700841906468675180431441390127562375311894706080481973072721350706659530800423365155706814794676034971643878244481263732943660700184430418053222274342954524305659824529431578846196522849932397733855166072507333577275524874072422536393619015580840429692568874686067192194062050683577303021025000291654375749130278017029358651298872273222165060201048711245856749245356038013864302694553170203050147389213111169887790920340872671941364728507501569196735493685531962201252453981150176370260005844645426846960438922202793190439830910031251509695222050354094682816714858501170644445940091344148674632365529062851871753296974546286079373516141768296921081018925382394609021734576097218276132390151771477413711960076166242990082174745607552573792651731148924672373263898721942912180830753607613324073833405931392120281819519790136245363286885680033593315421067655797835071416656306133575717181798645645603731756706525188254928676959604614125355177129412633839762562258217831311265557003459809942310934103731749835677134055661114924840021482781192472398333563173525730667720249429193539253360608188251564382087324467391310646662096520348471281913794425470585917685557645461008384745739947780767775532874669018202283479536461629094034390063434164069048047290203909802521551567713710457200374391504056054324060615720039466950116217724603636840178900917631970165986628157703283559105558717311987336229222141454078866105652230948402840364438534930091575818804337771380709433920823727716688624492049501810775774280922416714086439540290625485687075337428814907222128596467488806855854566837824532596964399024668081113282494479262579705313852458329241529657508458012073383405947332105046844322290313438756442674319097519036681331809917583152691377355026016913166653148081410501188270720318424816995806136925505110413438532617936974202122278138664701815878916677808432331224864302074792274563116533579570342388873788258122003752081848902731391919511913815230905184409463818135642339140889266958958546596228986468270330703368468076485605980934560709529770615047644866531209207741967576748990301131020433954622326777851696787422327296876628609939814579746760764698350898318114316754798880322104559638705604916968070047328150556697530603101630581246023284349874731318487779930869931654677833505542653130693240941403042227303788043909169743607624254914103903336843621811729065645355492355610154775043962705996424998770716507953301388085935281006429814922402346396930273573949887071394870280284106112711369945048860756095125485073511181153645854449067925931446371998713399694034798548656173106218793143300990603104897143002723094441578022195199560525262036910818351962886362391376459022906989417152544390901749276457986880579530946609892891240441162241830905969375652210055085819803439117540751828309233778797128573769368685098119025184620487866176620566705812304491636121553132025476700255558967512255016976377285783705322578319045155671358075585069419287114301228990410826219225225669024406117992406315980283574526760959384331882933954151709073562039549674912852129401416684415023067993435553673067645733119779717544462124159799162403351523475976139510532168427901552759800996940516939101435982060611609401109935396463897649978786381839295667993164299340092963785378186996658004938265983031221919794078329992443804504494125004826989733310301017630806910798541082741327440901316334508667442874822872697455680370334731357187922049215678440773023611956436585345877316852388587689319406803796492946145855135602157385532080617471961817338414528088963975539379566395722042698368856536200981625883042246919721394207486580922597911588534924473753662371131967218304237092514076393065080433262813183828362909629169023650043402792344062637402045575946254900147705678422362281230188314007430928563425214330066829678203856474396560167170177274117505296553931634117782153449262332769529915314117168571139330146766048443062785463414582944922576997087329669592083580528308673157771059175431791376506686535552693205036978764711483931205190286003859746797192956969833085383083211512382945864391465218955607419675905309264846494526731351715633879687632391022345132629369920089694505601058692046267540814084239003159242134337586476077961070157549009236393394882812265883422094896780729877084006385762992768870228135451285326850371890222543358963701982259180303918308486432524305347041893511670921886826951572693474196051550206884994590657809724191494996992152600485869651271816189505317672164005832884141814604133547014050923958429928463036746113746589760872461889243065180721389648581826021486195951332853013529119281382707873591825260302665224934148230251292375938358546843728823754106292571865214000924316337624067553208324483347433047416420451125351189750003356016444353525463683274241370439229408438009698377736077165820888141381153197656592625990213395395462530301555045364599473234456429917172266564894431132086660900223157393413429908396107847689539393766209543924598317082705216407086071335317367324604576063040189185831245642989284898409371766491989967456236620295635623827769883050223278217737713563517776237810233070986139433955192411544897424514204390708899790914679258266228106450112363770311636276423945754458321557116864766708609253994142036995326531011618630405005522009488137297740777635795472586264355131301681207300714465424020685798664503969768787495292267658305165829106364830921764587555164694429414121516202430402486342839437238061969669722687994010419207865982411009902870742551324771730346726768274168456861722323954697587253068842731964088706927697010524021872364411731844491983428209722057592597897963221922694278167214515513321272586700282417007033498936916135602818972546712924715977763738005901770248708253751401543448426668401197489335409608549992791832868034058606210475460990798261814595753447955250750212118787942765434452425555159799627326374686245567317494948139151162588230428343641649636326359250075169777867685005776861488425074466732154613222973596838405966125319924462691717134896208378673011447098936802443652821333235761798190387267098354098867232080449347144717525273299576317693855176102450793674320402505090954332726750211659962300922470523731880401605431255982712446067569223214079575590172021861799330125809457437125080166269935052043041966598782537478592462177517807220847045155008175846084226676152619701537379204069775233324951114309797046481544644853998649177278080153629137458894668641333875153102549451277531110410980878934675018296324325424558314943088694417547280972051041239661699061020678746502687526170337154508509168219873427907109432258441067386448455161699494057129995823924861742974944981502935547100673667248129738522188981927809169055184634797208376435482966619880398952088682224585571078914002615954955590581320618202511653727119697412879649404608824181988980797797941973804876555077610391659673009902572759153259941416764895645019957095216833763279008096366856734219869428734928884236723316081123199770287145220480216401428460812768778411359488774691332878528576443515018819542100013706961862472083807486071207122536741199185274317525422224647387686745286769517034847508261403037521744533619010658313888027706697509655908834309140634515010301674326938656596046992437893056346723899041139102381455411283977600955441243914538721830601812822086525650213367067234476987345981784593449041194745317096126718831074518290671671474353693192742454229902044925038685153010891463612677028775142040529902428293824613445183529618449262948618696744886507892704209269646474139200523344298772732037060967038655193360691584462255160127842204087916430701607327359731396724978298510671144823997328684066427293296355174429815304416246417686674345269934369019046580379302064767573439807331846719751450856871769528635212917898095596034708429810164849660653715995999907751901030214612260426879568323539622488480380801872191592532448551408975083198499688646448646682461987072070617622075783676846541393149402855316550020634571195768076688281216843876767740509188600419784643645280627187167791258275441830002560955391953358272176437123339071995262447163397942156830505123496788649082383906556193002737637615494344968321082008358407690408016401585106456701219401579646309234677529196584283410754020086364476654486688373797767809063754744277164882347652037310830874670265141175405119330818304826005357581037069200198117760400482347215979387122555239696751894202869862561411073816300278188573004908973317657620882710636727387703007804585575225051335008388599562422960506229531417090319040162787118012547321729265158942088147882962377835188778355236569694474868901265109159773199318316048373464577038240557095610715514976187718627032167237328751989746427047598652359084840520550707210056065584917340742235606139509466182756774567445151254298029853471572653990330923025797688009490015063956515670347236879719976073403755135460448940812008693355693576993330446431823460419896166250857728391658971963244230836902017474967730027355323901617707185020017668021512625656152903379777031445849631259946550738592062585250665392508584185893857568779689793258608389170673666224925456926926604225629532822165183598759054493307127585015349596807338797835871528102361997799557105330718897957995640918395151778033307156510668787340904454929691127539841358491188783697770935107460613592698955144755698589209311210271609773259700345431183289959833903176719877437090596390158884329787980919199365965335812234479631430712219087481125134278537443985559198369646015216218410708323147861670878423765632498264499941491917563673032329181647406125407523940763167175263632594512772680442702776957131851464564908463350857537369548948837014630989053576546626418751764471269527562892013750476072548746230738296077037198933681138584438481914784755651976616180562365968106086344062747520349576495572189989475539724298672405583215865729052708511979959626353501003196784854257631841605246819874805548284957814366524346471865814098323061798915498019383070259042383425478371478070638930908906513104814482779142147692562493079885207361338843094354624212340451056076750714346469636192784796316524310499894092532921172475054722472940888230719328600317906169753776304274797343712783440298843871334474214392861296588093616380240413151802065312008591878655355822883599982159732385721400738520019355952799100729554387629638322501343870470338051674025022453430543858302334328781717105198415626836830754339479899286284435929081803903889686434909028161195567662968646557364370314358366563083961875812805509358452372053534411057107199899348275089660798341577213872711487670836100684291380095806522693201316625647002863959344353223236802275078067162862501051297095729171054400628964567175936481789450109528205410052360202145024808407609371231377130251372261601389669180165390269724894874551123998402804012379825457682276238723544389300586494484646427441699325047147764211133228402635365430957737845081635095586537015177123118961307463468891808198922307081068056122492549641680165165928586302032094475262318258500384909619199573520936723919126471892061717925494195475732533505114813116258765727601356844626994125242017962389733526351750011930978115034015681481772948840626405630224472560114751246650289011786731548817707446260403960758641939300896985368425377000594628627998133573989244424783944689131979729991721862794207653751107955218902056208859741513100390174329053821682771692828021871304912603440706373030205924928839626991067922078047061121675659385561460129238513664815388637830909567586539597536180495914523587616478938272547218956298881063802303472786788538794273809928136931566106112532756370096099905959856177613680222092588528194017925756415355971296838134973859043752379658333074576577502059893990185115245367952393845196230008501435695128399696893099932137191964559012555066106331683056266560190554542215117148731613725157702241509653070657205250961776064597714954514670974264732250623906243509537009151543701712832465783029681131388760990937225794803303476393043223853945874659010912302034701441260901841621548060888290999816057221244923001187950191210806560685403944408570916999586238341687668438622896756170275380696675897500602968953566792847432472256811589239960593579850034693963265443569389947572290665160333828716479953606038375223635542153324538780965727320257248066725707913729771073111680846322436984087305453012580294995232314236164108127875258600909472139414420477261429988135611638322645172926086172436970911973697353552746508801247007203250737363702191645028599904639688318783480912801861210434449031734256695201724211197460180328821594422366549903209753605578068959786679464972869772402382062428162816758227404134273474475893590561833132226359414140093718529645970073969623347557564871450042508830211206734425934471408310438346457810556034628021966844923739166796577155616565203295772682881590503470016542250223704712051577783276771855607144916960602366517742614315688459744443642291399794888472894919723895289126303358544190597699440201751629484950174655833667551760190595263502939439164030518492318770333883875652158435569134345842949557018489854493074419685837128132326335506005796305075107696966527890124875198721916770794787868792416900374762454432323236896155305797509870671070939388825442252771246144522326755204206762238909548988254459756668464952490200349173438707678793510998007057809958170186542035618820991722823688445644363926107784832187112689864615697713312820435360672046091016834231981098125363009308567178891976330136710900699440271045775005362577980018026578740655086834021264755017536877776452004226937256037170865782399719564402888655952514217800596037385941265620240772915431737020810442927065230790938708070635259745420769934718006571773100594736606669546654631339172737119404635932517009306956937910376969755416974003399620747341752242377361988220567832992740280295273106518797542496223080856582734629479795808260033913639963194709093680945533979550870684824654185379263503445536732568810255533429713395857400677202809888859502660538786278751450587513734269473906975771551903337386595358351287411009891120722978348216285731124146462981922711582905838657819484895389798367126104341537707190857581394623665407838531214859946979791801246624401533739340066778629975064011490805745669762840067199758143125559559373123193280810164987193516917798090168543134299103546755719890081964990621955104317012028681275737682173182284023082637374824281178549057508161494515730117240885429563162332750619060452800285157678340131393883815293693968356661034214015055493715645600994633492881877787878897346484830079251085626636248539901543609962690382096830277107280005690917843141442467226326802878595757822690692709453647074963288226711724578736150748605065950763772852581256814540411428958488824053229131986550676744245196017735352496198221028437557377788354883483552529922111843984197675379359905158754983960161680837469534317156773373614475733256037221950850572114385032649462775338228895266775133751012038328212307131607736764847489703457146412370500191512373107841057971504965381116936646589701359429355071253423131472825889712797881679330536846711815891848992346412681437453651322189185015571934727298051778341954150273136212867268258600983089886492443597556582133956400169583888611031673620821084414718936793726278148237283177250819974146798871861590254939335233890987200638569178167990880561818188878856799072187224514283348699162214718595238959835444361536048611081737421899690845127447619742106396668042636529188163566694565142172734694236024004102996748143856372880045821680122690396608060758227891227867621714792150839402054353253680545895694069674386191745302657315157775476159640514654756030469937589460024800670223172355157756642853942063174450957215301798081871591992879829792456052132186234355058492575607556363264883127807169707468947599430182528527365312073757162171647914439729859039212173310482272584248712509395324084173812824475791889927566073082127728930224545463647080926691122096671397880072802759115883249676576201535250421705247052577896052273080772888378348202963447638400331402960755308381254085831614315287530103139211474875731175401411134196076645070909861730804098222104734402296656482898323122729721264382608358218826568981757733671812688335499189432744317048456559743305169757697411134434402319721646892540058887573207662901586714391239848050164567918120314451655490942023830928329967390247063838466108248207811655652277677393125264130853782591843189479887661173149254479691510133247513468012915613622096189946730872068275350828586853875508191503439396668873747301564219370542776945651886608941088911867066603013732049055758316816325377365179671188781503969428127409292129955936474057875856169367273314222390793645878140393297305466522172733127104511904305393511672749931506902386528330994343406841844873942021766390413444859774432263327819596146916499963287560232509847071844214454299937009765757790690607367967140098201665581925427716437380005471403442852934985196429200742379262006170416699443837056055565169634316334749709970773106875588975821515912733668366097282657093500921632386527952051838352674861434083488854552275787174586275953636371916478998978691366409140414692611125557841442651136525028163068325842283250265787701683024031996690332295450611697506582688425302602362863419770859263080768358392668818489111169557690853717074752097096035417732238092186434312058944794030894556179678074727738606903447662352614824583220317576885584053917923685779560889888091025029433401080645429113400210847786211626623723948735713960254686648627587703226991993935662382845865417792263576812692373567338611896944698301389402855388481954921699716507090158158340831917918839460154025050598222894762848942321842674954359549911799370813295877806083968349872464480285564024333964131692500039520863154534738125418953931910838306037270011715401540722950542920757367876327431227062253551495728518227559015230940871794426612911082195219566821846139553447615553488672539649754009085116879671962260186055530140569754244110471212059201992627584573104051911242239282596745139336557358817892535209996932491028887377549150972784687588676223327552299121046369647435705518308579479695857419012411247483031456649279710227034307110287743743981293128888019829661550015731748080796739215060342479588668983893740866975297280033013223372933620414927027958422265873471820578862442302303547780408528885180349794003172342152142343243562056256333717745750691771947478069658309185417346710967025282221880414418821178809862585797881067989198575587153040103575934530776258492448637230503396811301145839416620616338845652800487053138247518569262082912384708077388359921698913163564912962102867930625525658619231391360677193933717662618930481204225334844103693310583091354153318153388501495115851623532144676821719528427370461176580774425882347933500070592295616208691619985366007097345886229580720589705664952641937303628694438582063231616586987671481858811792617784157540103100705538611241459990580864029111941128185113481688851648532086679921163789778972637305557902678749128961446524359018018571841608786980551936088500102783046853233107097742476320502679972038452517401437355827213743751810735805561470588374989641819848836848708474630300020472891849630645365927721830946109505858960968881705165142995029186192091189163033971334880801540332911367437249725157909114878872588154109731255623858359746785772272492528702457261558865452282860688906646372086344815257194256032584213327545961636399704667012185201112774585878856585621070786701047056627238343065098657111418381864645421655214243789508533288551163712707848450957385690546015676642886423550514858622696964957875229297800259063481111592851983415425751355616879238190325586860697168099465981185472241223383992648625441049522339532063491451345739698973546381247688766658273735624951184011675862806203201884529777169096594827862230278661094580833588182615901807508945500343445600489974655309706945566133163185640874737581913197507952722859020470808218843525821233179561352241419923590370377649713136748239205351730222706417026498151407446956070499678082167750428673332737894274378307667654056631567892146126293522012336959829533252316725658538971132765368628021755452133313005527989351138213905719243975651680569225462915155223356614263088449107592679070610432543246677266046145957703489419281033851220299455792188913987059001882129028024370912403048220296760568125724205365183291010826018352197657497166978980819943421911690476309785463537960284997326943466786500340421036053378174908968400841801394521297767385610677530488968509761153122807504248159303215271480389218589628541181579333979318489601777060388227753282794246508479179601855265333088834674808521264171312052943877716596838613024222534892892429777920992018802818364877693657804824212355705893729529826271229674748162097528943925185014121813677402924976549530996928401403708655759871708570659212571119785040672901545107852470621505575160144477617636544239546534727315527285161107371080888397781165366445138200183482043610499071701560213208377965125155454860845558192083376286492463996758015140259065159620353816450115701741819139774948149096585075645909634967626133874247381081672882814277820193401854797789985380851347216026719984751099300297699186448880649001367324600888653825556889217359925043507101034610036404180853423591079224837241815538201163352150329843159678721068093563966487685580170375930681732301328951585613183930012474470782645465157223819029493308087074744066926561919381680046477966781136990808575029579155990378884605716705021555290016789645889311359978101380239546725969885751920087741155003056333214215408122026311221180382672133676026093122599494874881444020374795377342433087113168565887745435946228762434847541704453452652780844314120638762522528568726679036233968108084620565012396109469845029452922543594789016766857372241518510867460747526084602498284177491263767264314370889813205836972475363827274535286233384496303539198490043510339051219415856021428092860819615000792552797027548056172591785071203105218122368101246027065023940971159936100227825835432517512789247334466625501821861384223101361261399596977939644477599695429482324311600367206720570419428395146008932767943469128668673198208336802523712968227186993046303989841690666697787089688781182313710708167969970579246302644251820464616491961225266803561586996887865970942157985398994113786329685196331978968141866325067597685903744096868162091484110415452427044178026804934599766509021317607557152887705515564230666455704991350817920996131640333452947321703771913339953323682691281789930364546524523143803973861180298675384507975624726980159265145903865681247469188525183007400641097344284704549123301131867359161662885738824123299124413688746925222734964728053814276479721481964175107249224655782454208894291755628938140443170752265698439939597660626651749801129623435187945866680148169135249535522817234523770097744123851702098809873858609236632754091498243814617245448398019896677202579150161012360923258440832414290993605628044552208551979924983357733273504891913797499205496201336500897936417990811066746348010563106250764761496982593502773627342315224618511676727125084299163113452476274277055558439221314972422450905348151677696084854344865141782743147887221416232019078978066477820892552841764560908459972862207764064713354053461483094609865798464510471483299718428710121345057623078236901610628950397612815596226494219099536395673497597724690236610665531059465572359489204776688354801343664969104794193301686229136612434079787364419103129371554622281781935002973150730261590153371170200734558655195711077680849552531350798470369709032358858546059344536612931307445198070985761606372398848004300730587536884446900720603583614211001104727127389152279831941126291446778374306077001699745810985638001587805516039909106672358792596406991408646186297283288952092161976875386322984004726417559554459858579549084237863222430473893670799365572680322887453463669774669260213682483706368766541285329583820791447073000523930357967197286881714716425372001402641041715837975885542059430313102143820135192172079124005407801428010847972489081628897781803620279526090935350273489123378700514751834183013230906393537476925928722742211074798577635379651327581531040649254693619538386940891056654623131084519797243404773364231090700404551323906702021597247694853317646916045760427799996696392205233421541406827222774340701342898520302848886703680285072247636971139217466135354598898555858188558727909738341073302078159188246635857413192911207134872785501298375041883079938035781604394714078065273834376699932282253740345824619169404240438879795186568289910321734258578530329135527388208419299204985506164998503095987463993736131669576401622876538251063811314347399995119307358485058540163188666151739366424318014695565828581012104043847099108400848528260038383074195985981906214051892260315186943655218407009789106722332572599006060494187453473058776156493128087196517895813203522793695605500286741959155876924491909717069138301930080854891594190180592153412071681435846536388158464845929049072653674670402709864123826007704563207692149321165098580497285017465541482969078444874122492380979322576503467328375773540943303044788751037084524260878790118295291053904181031020016925137027182566630041952784056508214801876967199361335233978818760395977377770437481488779251187988386576707839528938709630083544214458150120623311968644290749403890651519620590041196728980303360703781606140809078392678715156182131474599572857820354647942842554549075920766286014267654525943325172837692142078968862719542043004463489774027942411003830927771046575393843812697817949074221695848234736448511838105195260119281436887250445928152304361182739277777804309169924748165328334695372636797505221209722530213063007470194441349669067257823467027200961333197443408482055937975191099131746774543893637619903405132899630137402802855672257516834212723203751053067504340920100264788369386884134043852926277830242536908192673963900709842896115210717198089485053532020213512176958366031688716098173958762127652743290145355050341975261794298497962240599638036177219629886178670761372589562119918104747847142631275497432398937582993278864895690201900756667607396752189418542835415551162242010681878798603346464124587886771604863300468728440924054919754926194600101528556959468436481582818720362211520622427262233486480918321465844870937790149989591125362569653605868153378798716745872207402014763220275151597832915382757721485097163712040269598126944394868287402251693983518087564173223058333391961284158841099662526414993139596753192598776539494557081348935805744416762786081167358154631548496264260534356447639397342573505180488598168742378488253901486876760655288154450551071236930438323576817756184717344415778344828580177934470883643493106428724403675192687635894016952602025436416383369995321042121901309979041187991941687514043135174060009203211304669866430261107653894107584258465254233263781203601639187471328712607534698419633255485452898490862832603252824317749232698030655517794921578522439146986426850662437242526805182918337975633693446410181418488907106410010714077189134965761534127448760112992002060002925327580572901649531309059011778653106861976786772014872044028542246806682675756401238665312069007202678238074616195140770140558150110095105708455346453719380854276071566572668195784165001370615403588366433487506749491183450836432766341342601382284784243899208044512461260354970597359426454858061841961056757223613116480972817410792572503185139052582596751755942285487023163555839905509306523541664681439715015983247785929219299145264252327492343660620428752110421808231908830109880158313263351800918294127846903084333190837092551202212637970187824542678311654440678969617063950963893229385026443000705428806779225121488799689767072833251639891617480758453143688290598462223010956636148443762532268604788485659081708996323383198402528768755801929836220461889267389331185332016055826975148451483195385594318118402876375358997170984637775400733763937748550368180607623325784945227738504457865608344689236570150492251892533812097862325948843291650649588740364671608909477128187264504441868613515591821827521407869025820358514997975938725798024081484021420389495107964392820607251571428746840824537714758412555592613668547369622000780429445156913062473433969383579245586324680885077518133492966295901436454902974778575921068646750469880860752140333457969480535452909449397521739338620118221508778391082805810255941828416635009512633691123193617443833484042862985111312870526466862675447341283250108334204552608077064859026340474530421631269360350599723341971358148087439779957209757755818548333830989208366835375783043478641148509471592118072946785360631470178689857996604942942512581322495031532517429390249900544486341114849883944723458450763472873995427247285831461293259664731215457103106557252712977740016808486016471064416482569278323629221314487274365792588647136384894773082782614460425809559110869595554690413639773918279079652654096553790116422420123239264871827296169179984377738731591595415342175479230812819441920081961736792957112194652831984257126175048618363854962273168895212037360395787617649930638691269497895264608095088046212703301207638971367616560468048134101893712166464989343416150258599748309741267648015598687829321520750666460945502018352335562037301648356198648571926841278903364527240446983952028087776550254820197342067871381193146467117090820069434046012492814684423079133175531099369235530904238165657225083433134140833393224783833577370544971527548819535072853965208648130188582124507801024862435753407609596486379696839397602376290627972865002972983271918045472900802007273411554758098879190554896173169097238765547167314989780313327586971337928970074781149033899199915346716054777195561181912155717709894910230281545135686715273622813528449165738963442719981558664530423390034952745275192252497789884563192213257822531642134682716210799577539297333751610498898891747263577521336129610296705643234120907767524284489465177861815350511522226288493284125501884608873400810845434403786880337910548043546479241915122038151235603920036296411305307363681188592121509492226175968795227418611308817928315874918088091129689069441446243993837515998066967243255327522248175353606470748114380188124823436674120789943536750031568845163754658785456218381966853708637307395606832556665704063817475246473363132349856013017346663466689957331450593500413569996320224517575172898341306229447745227803421763118387276766816589365827035278014882415812134383836591755226743160667716600996261975293028563219158928435374300117612109693571354309291580843683731204432186474367151860237524066072754681278674505678418721766190129079279635256703593368289296176023690376362370226893846026945523289610261033072133656893622311979239892309869621635505308460144825617114811395992125539185155397380785151310552100309564418768465913081955395239583567739822947083078264485350217886774206813033293604504759072628545446446560142125746822677815660554085077089297081302337362833964444705743530582387801668249975809858222645240690015115542520810743934595769737940275805091528056961512149487690679980217859360205194107183454063346554908141979965844855604481266980761895660308436076678545580010756043430744382738378549028122356855977562872238657431627174956269448436340565606117971734374606209908545590105913149637761201747780336507851855323889889542831162561901839209053918872896301521376355709065221275438913556450631733183577107552540835082497390209766866316846718026030112854873371384456774962036882881133875033249661079537736690137003904181758548701185316398685197768376085791295877736112479045415234142156411630730328467098048721649637140881533879767309083086179750548797339163481602976367667909084347371508616997867878860493470871262010785366236911632941614069678369792482205530575532194253680420824468201969689489905634185729388460772937298721605215321458849313560850784776618901622211312421970885005644915769548247317581508410947759370204369067636676006307978750590640258462891481773635561865328225780212411693470760888876043297569347917022083191636534487095591802423256726891955346990551693692589644423337634550360169908590568777907850836843827002973689783927511014422244781167363206556014346111154127764313519773664924908474540945009080255225260035315679237359479598825049930884952493882046544555872781242738581451744224148494038201639554139696011263753165326986352516132647309948955485866125980458139464987604716582638804591355262099857438623692181370692645909115677585032470698911975932586554880421184162553838027155223708263192952064116135687063646527061882550841692280400994066379016814860217232025158275728839329170711572450549043779583627774751365579037781743763594581268837503221202406177262221014629690919707151756498267977419375828194252091433810628377218633843869864763257281945686882013272907749283543316502267791798746369052305329344256816441661744009429492524958931334767848402009328581768914417920712614701420395964596642056023872489397055423912983318001875793361701470403119957072114361748784477387762578147314516816109343649130208216190011117976333511441331438313755237923578623206829091771427188155814176644309441194412506524305506296736818501874102966095423016074705832631003732846760870893667119819964930657918188094161556491425489938246004797329383630614604796205139112939011512132668452076644529589176667384818091501528887246891643940920320435621348216646504423536940631245200666432312872197113843867256035739837314312643960171600579261334568327240748627166044127116918978934204676830297440647988267140821778311590328071688570155201313638102886511611022006183376052851126332709751776637430556111016728183830152710495951511896181609478401070036788448034846061848171981420556939467733001561522611964518471903908252902669554502382323237244064180145014558250312946480938959613104382313598554970995084037428587711619248565883240893403039540653269091725886956926322670596532873365143109367753371656498934262013194380281398467962086307233983415437041833428366646351963479707945821729679433752181671574908926449197311038337223669369976672223218795645495401238991145534147625713601514028362046100826604973730073262513765183898439280640220186353462040933529790176892466326278739943597656731758818799651952780471913888085012242799991963482220904132693736588783910107548471353699843563737665095017475668329706505896836829253130500413281186725715808890529628510932114164275119050195158825832021921535158249737483827915695223209022330581654582334302453278956079740106940646586256636822414060736586670527859559803160777178036937397991243199656420583255517210460810343034678246099540020549778297761388948347658001785541138482850517934602593182558037948897863984978691003170101407743435981343090317006563404135505728554249085797538936961186007474087833917947778490232963540938223969104817647142135955013616971110412147969870074062956486366413666768629280637970690525760316110222457000345040344488492586780256900416753155183892798777881471081179230551891108581467498122454141391752324623217988525580495216595513762750586054758233409061569443760075163539058963159303025684737358005440107429823934928859214698091547285794209005341807636543155193787428348285033037360496351828280511613847403609720702584164354161564974184508880790568391482844242963676516085042085408745868134706405097840189877409127439134035145385906864520659733741416214671524850391470591424969998165851872942233093829194191804055106346272010073921493832767858222415643054365459739933611152810583491988069715423648708081391091985961016398658935353474327418898872328135496610061350573110014122965220052200009135917025674483771649410077243302519596029709568690040830047416245167935471198458168449677968814420044817570483481333784896028393246636531716311080985188416715160848963681346244917093758334977204308897017337224247363121832520981989879757742515450031136038958380821750096288932159904273968269098665609209973139140437826250185919388442349982906747326028058303178542989729371285149123982433871543685781196556337643393772631011378752277078438536990455502095456558019097564115102614826725258743532285814804551634169389923641336503212059979848189421604016963660297100224948957399436934762452667392293782106959077800689146474471628458177849862789044568913611793739513627260602070051258888879848191286728140036930000168443485570921530511361883721892900109614887842359722762370749036014069949570289512751242442255959357451237237083221852520528917923297050657527381568810058775862091486066643039831878072584120674279920716120744171412113379901353049822679356826805537766830603749563699415312692325200034586452405396195070325372084932961641348463902653494930378399759517979567262047453198058001622066966569304644890378420730707312092977647399228523364564873537945974680712882480257827633990627305367076308741090636862897512690055528003503286438552180885507555263017064355230048829561944024072549524738346367724460899354405538755632729597115238901922612179872897294792536225409705254029913471768954334207760104913374369744387800214902706392997782260962845096950857280991332497926793061706877751797702414941738762917461177195664292080597648324203263171660894932034878950337983587113874486311187208346461173421985432890688748943330946794065281518226449288219237540815159699914707317618832813370525962638699790443944491764946804297232114252610104729635532110646837820242400739221742246370714229450972483473960089744317901217927088228961564528531504392113330663602760956463119598260357370769549498155531987713164377978354215220781095748334068554432455536536140297356733043692753091033274789590739418020680628955913361276852318830498235996198579912507143550093533060779082565692438843303978756963388006342628825479181368569376893940383856177431666731612685268286854626580554660288371941659930243479262299902701588730729753693465297881955196354744505475606268633766034957449455168769162962921620107970011194231177611526038675156331917719742404738543818208149945626798987863924933260432636056560565813184177308409475848072555375073357830243996445711912278728052508718603079242791548149303753036197956907534357671543665923727762140438518335768617663627245798064500379870591527581154912446281256943702544361216080281543544948043640775255917889889147399192038776088066097256171963854227442636278406347015398755386653961336774763838807560618598054412937618243605742122969082534138511816862847004871093129005982714860495002202176035543987926900583027427949100841087040831575478772026494602466047491089529455812571245866485125884494573399878680981027996542458881258632136832490283870555616165313613211044877543800322386523584713571156131525332835247162837517201041128832799644858961492135345395937357799154016958846785956547815987634291391020985349518233521188807094431094475391644150953214367954933139008456975484023522145053989203206399601606086067025079013882630380457660218036742268279772913263150974331220539357454386151676520420391508243014808967649468464506927590260958393866273262933168881206550285278349670761872726965406792901717940508172819776700450414209913254997598759371808725786178826848969807282539359001874386159479247201767383055744096154089502488497183359327027909488690094063799455095233387340648411732107201005085205559252775248227785745969673219145421911087260215400361376557746846787747175789458624793799938354397585806248154230636885332597692284817103811154772066054143539604850160489789738589357955017076317820011438384504241287929473747774507394751418971085417405968713730272585820969331935637294977809185858203274110114335785727701559325190621647141634349867174669212695744052864193355223244663602341663798694446250451967096596559029241475846474875504413466774506352290126393069998112573720577091003993384638334164603976453970564017030603738894565482148932386266580410685134472408530387841862727798558869257791484306859327546424765344068122870472493259901549388028042778169160127604012296031565344307309849488918018480477170439252829284103392429588837753766309721408508852196408702624485247295160257619282805398975342969544724116446995745126594094720217357285841775583575548431128314807899963823741767726987794182933602214462287670413954355131424216979102773871708786845627975570989345788608659852740217414082063970316902310003259110114654167775554054728519833652627926517231578508356964909340320652684765520661345380826822543833057280474326327228091550311043656861317146761601994543748263262919623515050870823755570505401813396635825224883510377038069369173217454240951929889577293257952730987700260197026999929828184271282671599369677617918566375501117246992957004526661593118803005331440982262316674932255006695471385547151704745802825220129847716075566326271767077688149299945046224859915209484568575314045962823789256306353179836002489463987201070077543986533204546348461081362985713833938940020736186048388486787480439128610612056434067385685071578961878647268223027147460853484065386851069862231042332248834311913098858413130401027259895320633193191459147071575240883289699394253133266333304628509691603064120719335633149820754876494861580731775742831214371159983440884359660429959144429961178381293831388062350968175265075933305152218749823692603091039563980656523366292195170524831425366652262229160805238525662940606015013627007424489216771891366462567331431616579355355114211654592993131324379394181460052073230126526334844344062667993810670857718430350630269842032830299534767785591373995462162734637629353019983813078817246356876215723475853928294155680322852140168852434845814479256023941415632930795461483511694966453971535054595515938573658871683070600058173655834054239680504028165200614894367775476846653962834532177687892970191697961085411344418506490912050796709918686488203757356345461856045095727366470767883058635190557557731756614607704930736531470467628210654508274313190311933306564266902556676546715494374543176886801889665743346703738554245989801513596187872886248392376670107474671347705078375552899472105627077884081495942780718459515720990327601865441514949962727337571405208983756339223822942175604541795131097260561166421005042748932563491629941426844183871206159800763206542430105444582424575740306321599328620085459201200150678769107058404000771551149908438947667675321452711050229221738992575475252842112826175869723528234110344919416675260751988950572686868113545781772846813831158102921346232832613941156954011158763292086871016760487736904254488504050804900130039953751992436814371996739235968564929220535316416986943192481149824341053307680730711770851033993481046561249401906193793070575287206318107154458169956311759504998268893064472958497076380886498133165366476154496510307066487902829058035041266549032000058557258807899964686718301282119331126943882434054230014394368983890574653183786089964545812579776649271481104820189390411719336114808439888188934968246648878350307249710795827796561815255780652551932990283069961545134170873986135223462559583517250478413222084389599605596294430641527367499262105186008397938557151609376317953618769187601954294850670037096535087926230508123355089055192643868242426102983193359898350270550100193089288238661617334137344012876364479417592765143585896216373879496725979125041818498080817361966079360803370770437179034640539380617071313025726191563803520125431371877210652990773931624719532362321048365590450247563443423321675772392853471515068175495186893500304391549369636871564691060089058987909835360378670651522801030090966424703449548838231425040050557336069913133024501522419987740383955866791870291251867895044682122866420417253220505761367580555905910796932849093749788196445538859205990706429511529160822668521840462288200148550497007508282924231291089162464374807961982398045721016306195240278286633199686665676512715342324647434698878331312109846882992608403282286940893729786467042975297183165682358874618215424730472887777936317488624995493882877175560291912307414586463179173739585991242145307794853156979298603977183845926654405900812375119609186708648397492837515737781118577345634508854142298608512942957755423188817924183267445649590605085446933308890904237339511134749386181239980278771033989389294933423281412935285227227616667269236655186886963018530659771923407091999651396182754289894444529508253607908984660186667735920863268090586054473492936018350081320550209679931188484404792141781553240880233632675838821323618211511025352498380853627708468835423972634353505106159592777733304471039997398136261243864206462530818367944792089443871231569172063443050084482164159027384341179922920000641527292377271687900050147865638139703220705580829246337400397471858970062138818865555333590458256871531260102738899077073762293372370251464115417448454047257776849086123672328065868393001762664444511348689041667763789156717378906154832550649335126977790120166927000488828328164192683639852287090171432911792181467241258961979144165155779527012740580516011304798828420642918027975174458168420228410836476347092610042825874899695247782344091165623220453258200711544318285326494826224112938524805895064357742725090133299440127360437495365796815306412361527519626747958564002593449597684725936547233104300890187254555154591097115852008314627291021156561322403220266057920747111211235203288141203893265444104734172223418580288309041776974595129914688736257819994983086984536721643927650417610249231602842576675506876658757531562517116356815945994205108901000494512938507241387528601386691971888857705811592698363863941303792539853767627986227792819580542776007741179367341103725887517762906531286480185604231055186435409162439630770900050316761689278326316971914836685673984787304494394472429068083274351354750697604378519102487137817942394008022647929049746277280102556187450613610005428691631462580300332448090037012372832812429325227062675222363543008060871097926496651498594076295875010587858167106410824446069593246202264418259473896851506883238295505930229937233753034116916905660895237683370978424895690197514489627675141839340155090927299932199504169356340270606070295152491346862962972895024005637206865722708034286321070764206232367397491375165166857876850870285959493052774442244105379892801348644781008205680887497350986817136392672567909534376709457201088515754885682953547557444121946166161645512564372626266124177210296271730276455102413443837015231895325485449170027851514570023086157494225930518071082753497407238566096370558784253638259711267962472195755963589791548796301350598641704799191710245399624590890980025017329624365360158209448179539339342360965168169331031456544099601479842345919627060840399093895610537932012184738371074577387026659660247993562693481050467363813458687093088180853518304565188300278814330501921807164046869300602677595026037401641041502382112429101250730494295867632518831055629731864258680650210336686480431096286835820402535485437062502593721871134387386022237722873522401492705847892222065913733608728075925327233667039021265358512602773556510902702464615872165615126346101567795525114316297525171324544864906005620753855440644365117914699374212709700520178919463922810808635417276286251984291133057644587638248987771496169154942570813249385325852094108919220647998701720829361708245241899905074537812771746553819662609596965878521450141522000588691142148031641506082534489387330963323230193588782561308636608935761148179211294776867534807778694148038620440786921243796824947484645456670032724050529005808034427765600136623177975303106120254864661347736172108803827098821007409272516464105266252623797407662977729420297787239240978743148625871370590231579885489354600983131000692003988980934503034329186328004843871170521568123505915063559134190531191868589081523921160265175668662439702524509036799394718691696457061989157123857157731486259807165592646488835993338682166712207011965073605376567294353271685689626699339176670931778272956152612703794111879078284674976816358908434486130075077189548680772355099278906691612348264607230847903131150159196742178686232693392761570760223335312336892731063603700443825228831592261959915439074593112805700605259296659547312175788043682429665939597060479173345065593856690614338884123724218258584209330259818844864474808666124572968821910804628023609561151332651554828170968229586672472977976990823051145646345130803707188737493789990412853575656906912333128361217415433155301285504473633254456170725923905697772907109103905538985225939771742085279577810179076839162677019317634159620579884841344478934437714409915716049450096674429069169485569900691858151595211735316412581612613214439251713871318809842905711769687062804122408323152813125202269529658436527176711402791100539428887733540595120514590595803116259075442267130516002691017997614500852043028051883766375336253727494426419424109834473245853151169344930235132024632870365611586366302662451157961254812327045440301041724999504316362682572512204419077003795322596037532902852405662478951530786098343464305061651807007012095270955533424259205104864812829922381548031131966928003255550060651584015396865605182136582453276848124790372081834102135942251482240535351552963013093568059875502312572259116248427114913065091719147417892492327435046865433280870000713399111956818224170876766100737014243409381049162158498785291605302487009742552417146521993994220224823954405799747537189023598322997678632715333766803123841532927216616723198892428733997092315897069041706320503625015429729782727218874140401589655005911221875298957723078210167715511361764205061142480144370620823457322874800475168044233626236628776267580180864358711820180141162550080702149534556511634826499599825024125421930416690935929408212481016377374109089537108535486328317668966310268187458579964820739100702657783457676577014312853644912302597946279732638556669566164303067521060097586343365717837522870039822955345740321598877307611205243181149625124215310453208528059866593431666338261844848905720248045147953099656642948388026214375146445437918037141490783451165822613223665942356672188713426273304624745237934684178111395193104715644808868695509174738567292848454228004986361840853772600222116799753756671640247522456533523120495216891524260607850995137329776256374623052791472126143194318654692854842032286099200592977366775470876826731183338071461003081211895440724850862749781931356121307684352720115602327813207127474849563844282200916527866655726147871665076206599091838424375241038742079008554029934939347014507348437693504353937343694253340698480217109488824255270306736459646946023920133224452419351253049476359017269761221907892599306291710955164484942669676799398115728140599086949979066771732320055209473809798136910773006445381101351912865703498317521239618182416246815335831863217580684173798090154106340232688202747774731848983351029169202972265683138377789042558827755680972315381021469252787220422173930568826960113770069553620685337726400054117784112881042000660153735998073693334725993397826422939274199748464572436908461117656553213587536551211976677314990206987041067556142240952264185162161421273244488265147474288924129063885682362410340728256253423822978347513323337032403386975396268860587808711060110304600083650526673233918809126021516855356571242171133545792337275421890207448897057652275424327931785771083502475974864713856640404332889464382166237885075049824114367539903850276729129092799226942056143040332751556047119749813541688678517382402462714955557000710901806616659559373864438090235138275670469305972467569661674881758369689823835811688392071920288797370317615104187911466467625791293239374521821994534569470854221272294554394689045644480567934310332828772958642244211136637973724287956092401772526750334224863317815742921034221470741000188890856513163778323465779916296209961769835848310090607984052691355392364402638824080680345678865071796781522635889724948109811193104694821816632245256727338388091440015195709833391651280605061959587359090766982113566696088623726177049035723036042911911876206037446389178060103048212930071209986690833364999172332162194490051366905054141339243093570990749411899919184422165854804379413378820010916108280567716633217504075098445537219576060580132348168478165202961065077589576728619327837035970003605407348021496023653226077100039294286686295498712245733089950443353989082849508067184079482600913818116319873403553894894356060497265606137342466171179255919266465539484414267839164888759001367088436455412587238863958189010749358693287164063536565651480002237583111623285479330150718428759144064647770908614062002555345669263111468474555194980984717650753068946234182689137931426698263644980205801517018499690384614729367989778576729447068873891796886300199129183997106179484264919046880107923352418117199597122036726778881287485369949145203764097258411240975453681077193024427290728349833760710744764791364176521432765790328906843378574036726610095337693843689000372075677407225720707913149226600904773941511949621515730937428600304848003177411201941321114279453837313082773107825931048330203554395239036098681098457011383781196287922559483586182886959489119388170769739402948307610326016102028746859805019534013946840722256976055722096401661456508899269802880188656790318029459053473803076977856399618902316400233444123419652781710084125789019124536187911879453633186734234263284165669637672333915418388234079947732058694721442667711556336746143133539791501890111359572727337237139722993329964952062100122114083527958601536004178114788542500850692112182227094080606230313880138088812552699008419450971346059295842657892593987030264770138572263213389480399286353631706741077844229628329154527914298611443185500558772006037833706453237530022032750572149792864430622203551555858073109854828251371720681791202798587044844825602253706375050684231618315925854899630969523126409492901572488186676641683566256925927225200508175527504297507004292717404693405676472723497370808608568595833880684634375339549867744233767419019250697781905904022422255943067414842344995070962709548342433514617070099315248687508647342207045632050295103911589811272836197557848478245293305317733230861449318467468826378390882260030742508919921209443663750856148608627397425822180679204905385447295583386630302870591047280530937430771420268683051133689852060025638481477981944805647815023615784586250402089706954566945182979792788817529039346455469987455023985381087145243569349143401827538698485853200889997548061679820318469886379580594869374409298058138740199894670043478608650030856889711389427570034197658471805736700387318653752473695140897505376868435489646757459606914167448139110747787835062840065851321222583237197844016634576604776954100825710502096314251678470246951015294551360722906006035655968928514703534110197720506208771941798010237936188287268475251412243407933803717566152827652098788874684981351693834276254133514953414458239256884445176449987137725206615454088568566551510519249744870255452742857621937589520745042237493396005675256470506402421868603171867938740956430058090386159190330624858670719301861936626251242951881751212772565650164306747397099456731243346035683543011628764165385807042100511050930874647252144567712026855717130445706745193332241367350128140718301771310402027447740125125381770032715226943240203556768312720880964211703584146250097183188777009776504602373000360945536646983917073074836488667412875355063823630356923334296207288831646511122575664591961826667013430316527838538386548327291305655305430372239537118490885302409698919237898764164285002719775272199259774108944511884955520158405465646959208860643829348382051946672079661326956834600329462254046521430093459730469987601568011844855527687710261995706840899868580153800273949465777957419867764903084671128705946037906440347796190050140109186986129075123809510785104154075721261762798903310922115669139796072120161087590067963194263725575521341855401487052858423688362397619598700585119486897108075869954646563685055751864695248528107543119101945808921113252542226871357310459984420700902517236887842439790027022844155845629276691782674999627423617312694539359133418216179303494503469866050600625563968272134836289001418809973406917738549642163902962829069035105139646896666027384626594829592900916626300401548258169505885407562747966231394601466231569707940708884898810328900624386299844231250329942062735667477593363890756376795870961050554925666103791488876543482088780992619213607302576719098544717735522222872589470938203337414572916115197912839173708889903092417868037668008578328278657223646697614122576799190777117459813954530482941478174413350130010547172464437196467314847981718925448982876337406910076661637387599357783364004995465289401333548458598396373322842058963344771915339304326829162085221881767508347803521199067700965582511818346161818002262702104053533436560473096157310499413964602629622656635305515243380258977267864722381206324140706765375190724662588978352386353977009274410506589624864669589761052685124160763826493951009432009113279179872621018493059715417385494938727818161277459719947979888953470602584461346091893202592801150647514966252369449739727947053609440336293114714394776161542370686339952168151057527075972254943634728266816060270985337448109920715958531274765120046813725309558966276718029646463321632188828769534273230458715146320430154724492593506469887200364677474690499854205652368245004207924091206692427571526589406183178227833018142861501464211261894431463068197681533547245644961411074211036493565391688973309622440255999119681672881296130456934300142274455852780183780741072045292070334885868145090867268627914551929823163262047046971479088020170228326179089174298656946178393677928897642621423192639043599135370134715401458789747041435288290676523101650012124932166103866135304434317545966372042413381042661175632861568537003865273638386471796160456652369099780463987639960769277233046986659324754937663390647228528289373187772934796074750915362466281342801513995172107163800928611273744446058966309642507033766488199737778183964604392403609258862984869381005258982186424365404809776660368960755645970839351728914439296984575518930054394783840559712051400747320178674839205027696578998698732519523342911272528696987518199026086680034835942439475763216564501891651279911445247371012912712064359502041623308341904245970452648254587039867092603731123119088066382168368742045724499772486234333345698594462290574490079113256494138821031177394653420820497671451578153768283495884960641546885547077178986545917890650306094022256501369768864574956103009166760097476749549986251643954424938954155075274947040626526875865332691334270017700528518089709905174677450597549687799649292863850051489066427215729712867494407465360265513883879636665497314546930910979767891083630511339230239510099789272403449391727379231205828843400708674998890769437979817257490239479663010770705987444321928550909294882538775416009656175534347632870356703161569543314112591667476740259238275916380262796693487905873458478322287674885921759411549466815177878611950242665323576649801987728236880711280927332692867087507956160510802302099972708417214890376146096086706382607250271692109747831041409411256060005815980094979110533365365383441584991033490401047240091503456754305241527491155055015799106060731861944927683548204060250952472838095986544036131437278022126151690740004173315230675246620577811231476795576937128233978482219984989989398718642593585206383454238104795141040589153191781754159438207816562453951198227739472490832988447033568427604418154100824278599991260777091070712665014266747616698779910514971603973936659955657964977173016974338118144425316582228458329108454422373129772777891030051605647060008199095097579950657325707717226752099141071990773034355854630635161725680615622826970921120072950217998029941202169161641455789983516981137294173596771629560989019725896944129355428277676695438705629077027623841436785504440994621009455458442791341990189464286212171056613413038004858898086192821041390189127166119770636739671897484975767933026512685393597710296961896313653998581063550795324629522232533485092756224101759934014906138440596719183084893458819001180691683726648704273772743265614396120475935737778860139491180324894202134589708460217580431602529108379378801965463681474561882688329775886511913096146751641079396345678738661225840745997388903690441774781223000541395371360285820359977555424402308951447813548356987041083959946204445131225611986245642920798023859231567400364754889302090953430908705458626778158886161266545655448702172486870904821268259801226476605471221405253338057883683061749524858352877611672888732704608584443787884409751970441383883619365568740559207227101321472509862221787829276423676839509327267238678755836622446782370309630881314890737096398454039107820606494399766577319794562194805513038704577566538151486579323487329240823831094205633295827177817829531514632067023903136912155468127784114262856043035359562992060605823887208606176771372940347502991581976749011108895836449238999313131312673581284481884968101782665752641358957520124292744913789556542095378827203476103634670369104220629362239243922969645498275455254614058229084191569179818373657562568385926368005529534194505232734555243696352154200062724402632733754482759235400183342497925554192438406420016410249984860087840999833100905229765589067848026441105150815680220593370324565387026873714327246224320094853702195540428564299987903500773263000241381519223946118702388732544536811209306952161931122994919688079638598552731920515113671145116133758252677372138689195625148706944467594566792522736383030873000117152783408225535839862671861247070848069779538253984414383525961770023625800787938438806685452718071428944897578785409902844673745707362720490779047622376012700755475145212008875256270761414626584826908352971811806854448231476789488747042625304702585927923281693695752054298621653939775980600056330928065773240504137495430862113346319517765860725892643900623735007018505615088249280330628863745938515888358543000490774657826887424183428282564251120333727774622380027947053987573550132621077541851152061284172842115037679354018039596926292721496146679119877353334576644475694058723249610363347752621070036749101012466008496372615328032055114641448996046854936486474451270358769331416895948134271227618561475047125284483109148134609733222812497029511040003675699826822746065538860931934700945711130948879498149501891841511684678824259457096944439695443899073225735453414373718935418046133809925971452407908035528906562497853910216228095119482997589549005227195516898624335053049559708699745419267300242386330376255327143056076858100961088727757421039214727374631029169520386017909340081704499774487046390604165948474385362938434966994500495020666754311115782306864684996324299825234597687756388154067914531724720079363660020072408746640563530924233965134923794329683044545604324564683481315049075120695723970931065468354141723151175943432619544532194871966324446620918723159082649667533440632079248095131442341469535533623605300377855154752997447933502446045697191449137916277966011581854788088818789823263153232740114571962717917588971910109688127997369456691884235578440666158640054689139618122119598831831504376678185631113062897443709495685638807773894846747996607357276158134498639550472260619531786288892893880665795517047045837076741523769133464178757105979823752826757754939040192055589178636917182058283349972770687984433908426995417289599705869618932588642988254066836504921769953374796533301222415268140357652561847872540502521667037281689240384616606722829659172767816248229098661442694962633778487225080102747103141986199662853821525950232205727388093551164154176084872993489635520993739503222578082382843372655721427890434739554272273263526557825873977892434917191931707092424169600755852926144575610115788465171486563791047674849881317904976703360163904033892559846817951174343379511641863793100589361859580956715045993800045161149399847223434769242348430924790367789739282061572831255396353109462469182077637270919856918043847240961126098365008925338463876547948454801413011930142457969214840246174364261975280400506881958129790136379269139364503110874928867842546953195500210598605499133465068831340605896655260394890855904475388828629533119153238464439008106820739821500674661994255332723712200822213520015728931087730701474754754991492799708669558326119503333178253670293618927307272968758676004557603028568673889266107153408987541240669001385463527583357515012052165656171978566671190396027256811302859794619585414076057791422729623888808864561474672615541856755692197555370082509000802831863310729402756929837596640560769557288489692355695091779414833665601918275457105012952344170963438985498165998120310234043363953602706949511242678728199091956450793480730806846884963970182331037307963893698649674457237032868971736570726876192662900482223917946379045791684312060274433216260065463260388835866699118127805528472451719647654053189434234749163303841175864002460259769173073667029845806445219056499342292802961308606184759836890384430061259680035463930283389985253680044540243315399526284058601029345609156288527228447404632708310845213021782203816992194704852527548560592523428036020784849202222531981294442379535170572949460516842715752781297903926224555602656853824733668419790557703691836417289554278223094965965138024809428151693763104712490543224780543504548580138169842561281197143662097276465251646411342708292453615319073098293890032137836206249431875455366526509297858327176419846467013209740202675972491782821764739647533280880546211777825164532213185759258385946587753296266287736284671172706122483819327047421466562643213727570250485065411162686575363046533111020918349423052753097806617028530095284579603801822973127990781283988136762003129510990563737512256862940743243469008973841614853771133501330848745582438072740329884441160581373294285262607908533207816022206030084220763959719504948033917123164220471604008122511856932189868288802043506962016812098696971914423499809565413349711665067183376594538396168303411739768408256413723190499552566973055725386792382877032772850794664116347595118237727519683464633956443509441617357828728215869689815643424302558439706678432347395089876506623372737137682642452735491589081048370593373689639672311166515580008960966027455167691543862816429927876711357896717266971565400883376671633803282075247700202975248461355923329549259426773971662650799082005167000027447552415693071426450196551894733189409303214466527348239488485473520059816579131962255585341758429949811336338843809472175301237673078795325733803138953480002027940891831341777986347715905058397324692577237994271170386019522587357592784410604871038003532895785605776936646287801076407100458712821510375228566848359784266434768931333612552525106917100326121178944245347307159173692571211196599604860497540933239323210772397008171112528640058514317830674929708416059852884258877293572839462225357591607299768092835104498626567791485829412962867523006733514963888190213144494152768202525786626316961797655307088311473712198852769278065570588353797457531073493417982290706348773092227577751610499607329675210279671406394616212183129978603586776983118097556920159725504695299438839096037222757297625010704836898855896391717500218691207142996042635906294886364107245337269805715389954017168570855640769656723474878509710236484949428261604062410585378416898012937407533904460262863423821739778821161639674527133424643116424734052222863184085892933844807177197437790896326117685461577428036878197015476093562884848874235944547409040388887792672590197496435327971909890371560552953910906915319042169057024062798752720884637746570402877984448253680088581880120672952352680211005668611628859983645321415338800903249336250295957695951643034615701852058472727403039248443361911601725538531906266399876182031299793420074000751315131996873314303945919701004560637011534181577482583569744989913138996517350439734620066719841542813736356373776550837631404509005905897838923740469728420018351452410058108880775269307269504034740777221204965228140924928636795993161722740047440305565763732748535250836566946552186522494127095277153123694466914262349785360101296256147187941204400532114752687165464841237965524114238375745255543475147351518968970807577876191556121614775535784050726406294560727461292765320657541052422724523264356316937200273794269086937063862449476813374495969029536428915246679184184597573709251979846173889649642417169313234362724368377822900434776092190475894189292333740020677685872763702582584097333721782236438669460641797775913303199343065109321825056461759022047591494175215078211893067896467078110559873981101676127900366261095254132295007117533655257427864648094571491140588763195089510199986231385543252883216840989467930355098578382130488217737074397542525807889531859504790092678573768748321331480828651530872869719089726196811503696122568165772061014372979538747057002131027651489728617695922304172086062433142920633682694734564263856802567534510565643981310783116474348643456262010023530726649476375330147773378748187900875255432896197536329682864777200393127862825520862724414447256948477489738167036664980005207357300497458181809555231921460965279618531153022763855421919923552352551811750286517088346657935612617753538235593045891003352175728840386965624641708903740537107685758121780004628906248438202498307918114432919295609779851193557605635752636297048037037197468438186896047150227274013359102833548739004093249844286354481678605874697648067136465141853406117606029077070601118590114360092963995178259594793160574136096623387219168123349637661711031363554167489464827427530669811542412715164366822085223812246166492528513733431582582788110254478826288680646588248538360677478822127624219566837024488645783067936805600630312267519066712432052095793914127889289100444483503323736464199826756460433751392073253167565181998302978170646116002551991380507517250109040331596982376728983449984776288211841031658504911409806618601453904567394406570692312317280086317573264953170742070532728085514514092232170207658839421156389876695898699139508413024261937081484363706755077596154148039144504843024704486217036257890049283233086301565208020340933282050636025681865733912408066425805501205109100825133252077859096314127865203601436554273572479380656643448146417766888875919728497862408406833328881163486496567059932417641325564753146652905414966942320790853417463475958123933390788062353560588345951681596408948771272378076672024395620348267602889975843141149048257579043333615398382990956802711926688401806419952206574755596142772403336328478708319524689323015964002573864236119572254671472499331757002699291977355848166861522719598634558464673943726167139612022491190700914820253456336145467306430500955009349888372690939126812640801299050383143957868086155617314928231127627336978828539424662284821450042909424408485070424065295596639333168436551805510618575188108214221954646364448488736599370522361213795850000690411899910749865927233154099860372445759146728073635268524888277941147209555187739841861995769417825676593867420362991292561930527266031454654475565511724743403578452789046270162199853049066967358730474756068892235083276057771766820306650803633149851176185473818945913802937168888918139281508383093761831267769018869172872076875891689835440019477816283273718325503349352185470818613916658122775936610605942781176505908526038246327599659684334447733009660630140644676682594780842646604785481499490101866799504939405537165198045170732381591987240813992899649467448832664001208079811164095107961346523482376018885298613566673031674205362132274726023439444349171995393762415294546785277776581131340687859893039468589181715550592467933519469768438856790043350389722186266044606462435804438767268705922206034628306269481108799653316524054149320603468276166324455581943725347342631235302816494501350173199460549387766251856952486016433388254813876727223358761737630023824475360505085855125666354953160646624387363827236280659553743110739260877336275379281564641998969246608140990566310626882860685642947517890457368997486657521843360875362835553950288533198859173990320487553310344486547691452882610908873049711781664897132739534748233563608016591213621444289989539796473576777725486075913707566031546479611428933780339512599912312715243484044109151121502839508748568467169253740682830193563603996947304290273881266578516353355858364853250805878879004812357708316752703860342549437129238708494114312474361364667401471087467641579652449349367178182604934505418672998362993321584749450221142489428815571862369686039121567248057649693797358407451994481219831358435043400883633193813888465720618425805465422281728107060386806578634937377353422675882868403583450866847317491072422026296056466906551408110685426905247587050678081094679777149071478060030263520287263644656428465254178865042746495702515889088062193882660481075451239467157604616941826940490671551744759633565931285416496810615145327213383611302218055293301767688588352413424057530181669047691939158969349500014270871697517527781656983644645587224512401288916511595245650006112663310494112362984240828094803833348168887718849114871918672612654287405467163705055349845556799075497769516492507633149837131287799636943242940817102341780214597058819349613184840925550243728255532529876472134423419574266987205091574516531383795197111343101693884313070949386272511660565061237625091143935702461160973387026713035542305860129223085717174101076072111296202342367733087685428889738877426218918404212624820364896030986423080847185640437712152735303620324841623086494873266460032512874355226203219169837264220677618339781999065726751640260240159504580885310182187078055217532348335228471486291512364541622821646643237346017880557430104720427457377768600841751988959715781327996836467121426441095009479072565929200714999555647780588430329927375091403420399595151898341051923457108266709815972993091595948483745423457514987791105155971718289768392819785470201304252620975439681421809882607044244850783804872949306132986120424443839443991949083143273916180288756539107853989737199153176590711224877637183956754168631628920242778833957235048515022321849762489656715342518178951069939575750062218932115071217067752438167346577922359600517670046381072682709499132906611766145655364004368877707641391770793552910258725374495000711452450516996086553135458328361361617375967391323591721786270326371197132721564761635527152345728442427742462589751738957236899083460635778516073214731797412048924531182199896566011120706269031043747351149904353454636797829739643296147807668372675406447196690560278040549777097668341292096169081272079524646477559979145738631648474617975499680013900924438150879062413336766815168015935833553126702850662862281476058281516309124932831853576286104373023029164530838399112910439171775069372151930101845104249632116644830746487481295812103728100677704719866177584666487282424943767471150582684956339732542562203080354910817681412306880853456105514248138199760353917222643552311988283824661449815652359133414861253984054262163796169930326909029223542811786224830492909755346663221003535405828407110150627099017172950225283888796189372516842562170852637048908282669094035567041943117805821094949692540604098684176500767707018713821203024908835144833093258322567335454445662143617447533556872521323824356981047543122616860670498375137376332122962642354738022999582151767082955550116668526207567793009614955058350133079549857404953223431953207406402026087647959293764963768410782269301296853010813752226531975348671051087823596611276248117789970582657781683609639938721475543636857876406046917597842245578255310053552225166708287134947250879307785028062934258954814059174410760889153448178355132895251490351162723346528930737080764268799983648641775445586096925305809042631079807307770931696580838462004229147952207291729384644389922890057916855935492626387874951518899237614226673827061374869918961501782251805883753680922192012895599618782947591880463345049803434531686177571156696497265848609554664829247442154007501974673544384091360822894909969289925790642945306569537718096690425061443999561118015290844493854353870329144936122858345639791105559150964917906764299331562511855863307402991398847017695402099135504817437244556514074799602374202949632358857316978774646870763520562891220051518681581072966457760356018240803330330437237279791740068588462045870966713256198030110098354051050646866355954060932046832698164838139835360255713036324839061247332571212435250762204103134861986432880605553013143627881733140357502776657292134801326999147789695883373093775247178041805122670939629174716258732269672553037602796176594145429470535090975554652544512202087987303835947900261327526528297968628968619267214375435953688622883381841646504542266642777176824774838487262619009677803233200226591531301647638159244777141088815434338958616747592720669358935642000375460182278238109272892697076155239721664000337851457136096314053741045762742765378750209600097194549587371522367693433730911616277337126377053732163291651416269623462600734393307207783423105929837685493738214357708406694197221631863438293842695878850491859261866767095427920550233430630534570313879566084706785625344492907464217830323431734941579745534706970032009821539164367538593213055794675263053205790777123043249291449818568152392203354406633078270071638122688580969391477749493381718172295034901471614822825251165247185017094533887418999201893798662735178095861511769349095259604230306846808710706911596008358365358618328828869479301105140472449907269878265727533352717206209719736031086829143509025923576781891253918293834842966851284112995442339688409563933699320127706071083818405013520618791401503134429441212685064311321228321498214580212071686208836712075550910536309304529874133120736119254445167841364184818818979486166104279166446091743374408385096307375573563679060962756385949879357849961241405236955352263785562162078622179177408642216131940415951985933497836419467596100059146126603932400791721360198141680981306732754239276474057636249645950426435777961378620043924903168985899612241995670033546745459638586723576930947838022260980137938341050671648446240762488219577035976368309868564945270205415363844209425148393134060160881590619938241880340280004042849705220379179378553840810402699862052249849225860760836747766293041874767678094941268012564902934636358797082407788036606677974471752872764438273866135836426822732976829721530463327994751617324501850426239208573437540555513451004759680763742146356391743076457982112015954446041486280176143114260794282513252769132461511350807549000022695146495884018918505217208311975563203890820089834757173172529181966846784155663523371884723776888977507288858338237994772806231804538825586994195714520344930100965507730132775810959694872579496545186579985529479936867479628798353326008870064981690637049748362450693358156168589820882633445407280239349468909605408755582390074902424418637920662440676426010772125752234288998697307148104829876692631040862379681833999622000045910805117431780995127142964374232516877257107038992787571269315478073584543672608172151718575899177182660535725965599354465994096951406581655509531084563013621291720382420349715715869400121848521453086757888270780665986754163841363115804254015328067832752452349215140267448734330242470731282283970644754990737719305908286510219569201076309544356168295129327506019107969820726442076304815590091314855824658216170475536127788506211793582329194145423329776562048161363543885297488725511845646463586965839935624646997385752262313138718021097028681792102103912967077413623012844593075423665289519936442289180626604551145335185395754957990697614783970701372972331236346413327686116122423656101155673392049103305497529484309828793297695297663994351231192131146575995893488318467268667255957744540957339101524379349526355130735448894541547652841021387387354003913816995752420187485483504057425136616333183357869309878937429222426450081831106882333539105845067525553593584542329045890755860344989277513940274893057678438429989817342120544328083255308652325954582097090989572679846472478572625896097214358335594089927672829180593023317636754987545479759860083759148551121640240813461599097083988950765326761831601497407248267528211505391170966918196082466602401784617910234623538367041837386158065911030481623943179899031049678100439359815861728724207343331749753378819290664909563931200919389834233454494554342097465297521819952081052035638926942203141067266666460189749467210515087420771301270644391922977429350712828746769588835526343964288354199497268645506020259667823332904737945404355044758081124546420979020743138940803722885080793195942374658045826785918877502329759484806879051706361214069758222296555605415149965523931751510091757440483904786965903795238281685766713705253008567007121465285045144317408643257843193629819183699231232588355069636900585629240240923157806702964760493908265969775467873174070787525079498231700158388106735327446296521288418525981249540304268530487174111812230046191769557235097459927854360367367011982937687732694517465935785850116875246800648900303521703155695146127708792309377723997303061718746059625692067264379965886150951755914689245503440759030472911109911045241977701011856529619783303162122493298800646403763106562448917848067737512508733250246251476642193858586906575128452076952003601398653490065976561567157488278936631902320003943583917722084540719477488800640802534973832151272469413617990603336491480859631391380284644280802804675811954712719167515127406675725332364210664710643166331413679767331070796687927555372406773371235021722028024936367256819460915862141857770322925302187279899197198933260216872144234000982924631183733363741100591264915865365429436442128923073823814980065476141225820447257669937532195314758430976585512828484437608309403741886425275667500432035066084551278600346293784233849534029983968288597242018279368509608954965043189654831979304140782613163473700327033348446764728733561734129998966743053830308835246322306301048684618134728404658499808192924593321026566794628163071216947376058416204300127753891106707005122490674683408431898839247758856551214711956124530235949912456059899932312410350223820826213868616465709807890006473513092467927063874261948210056626511670476216866437365372656728122327507569101462374597563244640199596693385108033475090774588723680737938802809580435503457769097322892608213613078911921720566704363359643701879226918570145874697472645165329717760508622954776339301431496716696507587657344204433699251321269724931810286716913421704723352549630726515143985353509513789122542536076018938123295160177015439455704706682356215192809858595561130971209278325672646084605335665358564510222944282342227974378903528585233462582766447426272046327021000079151754302051063538534945689543891051122262022896416729488987355136734198401782437770281781778562179411548557365055023420156156066668518669516684247447053569237546405292026478917839712647130232927164837799345416191154029075361940545032594506907774477347084345657934445675390958843302852888041400808770862507550875085866764977677997182105256077303012896073563568799602256323391108297170157729286483068941478936989634678762626820173707027284824974956297508755640012503199561095202832264832938899832580627399367347736683996058857643225860531763656537594972008600544329433626851129267351419506297144966139895759080382839300574349908193565933602645369807981220334368828242133786759850086808993980551287967079604238441949293016464456993327548785914423616222881463438944287272628945335357514070064535908148187885377944429583634801174303389663693683625484747250927608321115123277954544208674581471605451751286788142950259383863506928770810229539148432294800699585932238974891850270867857320531084096518476803770588744496518640623370904793375355765730096605699695334629207376365557044399787756170127010471547293495126152605647092156919771970278406360184025702285972281841589455783088161864788676660344767886386514257177418432935980992524933580310310735399655565468213964172686332731319842685000986641711803041969668286136300083382506369162608178161795849991543661668346126678392412525452101039543377628615948503151248015632105190179622920026420313394404965930190524125280999567295191719254228351334468554872115508635924558420876829036861483909904009126614505726880123330224799338157637229654808755016966195353215566899241846483975491025891250817146926416418887635773803664691984059086775381200534323345055379829461978681112218201654814238197758899021972861219426846591664331729858823252412210835979726610305873431463232977663482195899843074361836723053204941909563181693538471894826355278653697063514796118703169507597734647122827403744370058066641766621680822779242815225837055069174567392820258166972494000009647642856479363983926767740772241762830337478482755156306399562647116760351322666103808795367217507514057609612807318280678640982203065300276859805941182823779307664172302640686166668705012610696258834385370793292081790860555963227990051649028509671973634628678895997954156494154379416012052016960057941436985463143462902565705822789647117389082104569129058736630862982226913044972041397430797759130419084210255109158606979914625203511822998058948406970986297080745049531663866455776820698830912670964882593708040123355629663373955445209935802413943197285216157052092206399945301956695935597271720071682449439555820976962829871017675727622141913088245590182349272729050800079213277150107765760686116185785161866872544066687977715589243509567923401947108166048283147112412588435777963618530233293844490216927188279338673862387962866691970794476246508919856293525426579139792931890569317821053019312355903502198273540170019279563363029453105333105703103839748004797741853414675295445034920043503519637271548508111887187570909638115305056708258270038877831026813703578931681798610963264270385457408229300264987794189260850205136439605644546303411669286082883072335851345585010075820332212556867500394708075335952006756496401610696267825829129895501961519158095207196137009754267642536858839323838820332434359531120647015108793071377091214571739409727620136966472792341398834605854191114469194171661506774721752424058237599022225914297928945577178427730240639524707877666181529375827356055204748190620250804271074649514940013291412463627289703321260607416012006281430193777192530136212425146853689774739272966055867860441678980012466903925764070033047457061968054004420690138272666857150169620646397526962542034758683655761735280011294568368635619846244468756887778952147362276450561408072007636059334120693977689619751008806411416260547263632343023034948491072699231618471358774326036336777470255877051842544432789710340103495736580114593240232884692725664094644207886838332193297321486260074164647423720733642746364072472033170183937994686809541120777313462718847757834101415585758479064446851334120532752321567334288995077398413996451970860178568088621431280836051195251531055795931793812003471071722558511475190127559474754814294904741150761750520312946894874807637604065719565344474347197052981360663708897428005203002252688034225183459738338932747029796617931975950806124872430735026700063736965064022388699908419083728271606394718431471015438628579800890610106626504720214635065186867754339238831943213871810008105624663783539077628217947694778203397394863155810207336530352096496896068575593687807639120948152773987483124037741833919808573502053497987497772340354804603422030020367456462438724090368953363708253187338530165266140972454761226713819878618025761477241216538878357452821565346320815369756882311486032596675215548270239629809993807237233956569821031877638467691650046248945427411266701706389107603917977503859550611027242376211440713715531065083658511207303317374027685976723324385915733354681306468477322313121739811863089380364206429084480782665753538816935671888537425519841851450990749817849767382850209461916474552221441029265627982246369010842577000631590910551208462306087084603339138021218690429084381346239842315979706451006118593655062600618589278158338279490908073929315413679064935089227641791870396994080289498276512732988442431721481414873182145870639506817813806303445236466538024909817075670316100894255801161604623773197475497395832533525522298404428724145740979260146835287456644354122862940590835384352721676921844238783326073723482643180140993854936104458200040671055808798776159365655161138652925177216489075700343268680269412134355915965306654364470490228676884991930099150429176611307974063458478987795297863629695377249210845219225621894283109455964489550660841361010092231644416280690868612402686713229519026296451132472693820469171587911235961447863269847204104338984766969092835147894789921914300262459257515232520462995823923514465803510279745339931526678740438261965606845572002892249344664628653611781320467053634991959147153852435459937825001009339641174878311123386188682177090962230804904238712446026123503709380512385894119858151051764256591504243100705699388389414647072246447748865557621730628009392347544654608667247069187857113803177589703368914487225041801054265671057430035252803712833838120590029081358720805137392805721797297502082407453246923825857686529628664922935811471080637385765223807150393759261375194722163046136528559799783499756656940197399403524012413402422321175646569128997664364560643890953563042339405007076506996468680649381791670660302163630625080863843805510206994038318340481629189431554272944839583688946552383107437603004093547646412119899661379766442737765746064026341958174512373167212765311554375681460872186888589860186328330315488698948688727128479509761075277105542593107774141614101525862804231333912455846684418383084853596258287311568851497346922561130382616458257988685442687203530152398308366213855313012642872032369271775096479010950798290585475222835810008933842708164726017913963283277336302745204894848131926727250840660344541215654285467068100224860846637692539408966400186583751225550451232211499292135612974509763939774156851722156809936579773125878557415071447248354611940146507057578670607125024320877207721037046545942545954933713023273431919610067794987170696607865697867605870646546157437451707880007646374533926207850626166970022753420532907525367282311899369384101967159647014553971968737863538956568959813681025353018247281051096475531748012973399963939249756448225933476600385103539269467478271428779043925046332759767607758529741536954064626955662268403225560562127082195435482552240336879806434839208612392189152565461030596878706112185961631616563293639825871161797457217593509543019337215555356370389709224425244594481471065436295687829918836574728915888785808220517728628473551484851288670357491790765695136370382958966401717350651612840483338129181429069212400985422955789992512233197859244197928616600768018205341920747878130276698749781680394994185496631958611700149264729028992828833117854743570260596775193549697137736823261436455772995205828780804257207356338770748578316609445259550484480851563330916806342067297243722299533729406037099625826281518204491347015648756754012430624952021940759738298683175918133904197872434401339564493206022839438163962276847665679085945608968720488802345624746677336228736839505378478777749916924053470853284159291059525642274859836832452537901550675137713800563027396692438332640882607013406677976618497393796687613025389721203805299190912733472741537536154507035619090542899842053625614528233025789067247657091276675953201328284987918681549120442733504484324997169276185931464841093951962463537294467584947579818254362264268938048377445513348057598802786943335141737868457099585397865509944876469445737021471375816494693210536259251377264686338030548016496044481959799542984209237712569358142978504980946514822379067349204610962829951885453848189279335980316329282936739144721708145189895819084946616637575362631888683213808576499703617659620847154493374227578374896019204242883838878915147007965773763930268555386470399104022168271773274827644079717396395447760653857196653181870938923879494863185309608925820801808731567770465010417637277736207897747750404349071293862868145902385765537149188798151108102395083149923685319610420132955914553701518732896490125039850852840349009354542473836681612006695056721641259103241077689834928021750008475407034358475233712896641570819096476326214022788436891362932960838052451450416438076892442815571374542210791065981648082649439858063320075413980412882132622518056585436835938835692762848368772844147791315170176217016658274949541961886406264619368437504651300592820906681002242165655365515537865249170630607309239901008997833287800004602007476970236686943113376709983635703308666881312648586082601147175066498039428028498396718841977674275437228496915539478909454426051088403167934850405028057006134495746699724934427495687634759603459588214783908785590179331395952069302928670047406102599781673066309657243674024358190302646312388339195527645688549572645644095383044798135630658728951775756587626386473606258328468733897507798252969324621465194537482238758748392059709422895513674440901250932913786195718769680338405141918937283090153966737271529298315330251945447621879487820188611130487519851103313022685205868907520018186909108505050473345659147371331671326977307070473812836018572736509007981380914284946210684938421576394814277057764055254496922299390173435259381912312009498635227161091219780084582481787668852185893424815424038815070967566181804927946027323007268711506205608996089454847313062158056832653429515985116222316292900082212304104784089030151726099337477678163951088482430714224135420779234350082888695156591231686498606323791156676296875075773946870657171149655037606292457644185995044329657112724023796136485865543953738932307964465987610590733420662107868878865795421401125833855089155614410970868741588734025137142190437537491478435426945382505195994766840098239433309684364698794362321265358571398162062607330049469803871720011895291666722485212146718478756765301149699153856355572115556980049596800784650230035919813913074074958658105996353698566917612015582402218661138247852291262415170052620525373922676998603845936405129126553758908805964139417426079913825033323644707625659302664029828091129117948318536200587734074603394457189038967922103156326162315951183297298144129363565036559087165918303775457365056797527780221592530825067333252791714331837357002217913616700726314810739858280132422970160047223797337213059160357676922062451062191215437291213869364453064658081824050538554125877346485940940438870089967953477418866794080725228747692760269397623167600187705685183500601252555764708925348758246055103204120423092642166120669664191284232578932034777795479090026744239828870795203426413712251868263918549782119414710984315170964700114862254895132316728712742415897129587730351612977283399815964856528014568687133371368878641987732348179860059067976393532234204903997307778570901590221480166016486349232233746623216586481484321151120871120544001114521843171564618517251848530046151063442943734808282011350616803637198592101645183118211882032315469606635892323560640863169585042554447554873361401327583733803782739652434541232241209680964617353713781582690473204393054410285825321455351991327001006199560122884704885404420893007638654899575575610902393006085994542869683435789603678278826381461563363487104961884435665397390389433662913679341378384239937523700243293101019081464039524828865933174161951264910470942108671329040126772286022333100934916201308125234059465220195354964052703399856377849708323435454147672472032042177309688283944810566739370716224950253641872339528627470545873132492483112987631481682321881172057463559938582844546963014431903273842496731671370591318426214143423188859959479145358429540428873023779792825016529123107427953384971600914062451119675145516358328812964890529099044282773642528469848521567713535252942494057460036526987327442128288592469689734147899068488539633478957254834873161785380987703471559983702927215565228065587830723352854827315451999876884016034123890869878557382610100432505617113111842460726909813619837425837885794136868080697624137922302437936021461408107939834994769671874882357842618359424982090077125855791504718022260066462779362214976829383994251447046315899610565255262754157254667534025773333540724516645629708443598813397205027716507514590456052986579317790793896418726046137244678124325774011586885637257831503951292955143500920322769300644309518586960053045204715639482558062737414706742881246606171158851807656527120194689146937536965792644275949017494028598113635558191689487562084781880670115228305873841707083290569668631089055075865961243676783617810416878067372923072901067659823326927254517512862108606684240285815031048451407230632759215306293879002650259449096244155755005688795559382336881400492491148747742498887698110405124318857087490103347734794092183882714968285777616785638776325018601259379834977517647833580614448274450597217151092632042165257925504450262622213090504293992432972397843663472814503787305559764953568451664192652275879109304927676815674061992535127414894966953722189370433769429843549115464702428167745932932318504666604455940220861372356363635804553811102791448177664793541330118611191564357434474758191752623179846480388405558373107406181504284054547350888172885638009794447897217828075179655311146120482686055504351895301046151833786764356715213816695113229798933792834866898682312222801201463966325909172635295077675985421038391627368680329149363990143761872227772891574884665885168108699541194093146153096496800869812523716480657498872921042661741845208427547825660092066876739853799720453909275774814954367348823164777556209817673530109976408703133162796230215307681239407797527951845001962696958428917158619038516121697409365799010961487238892237147180135685100839935478826713996104390046987707416360138483470710971273102449859150240441824187401615892066893016247276793682991409036819899743026439786894023050934617749313019218528593132635281747255851135833980360597993883777002343909483799428152393496812052393469843845001759979892384200526569668422715765095864018896344241539061475094590939001866604540396081025445089740995085250182295622793170002502225671159796997999846071105675087033010583166039167802466404146364668908023212311279416834545700584265385968174713326682428835580776078542861877392903415674165065395190707955262009716461735084633507939891630631041907538148618957710490524076876408803318491020353375970279612972025375339087657764484015311769246074068915531079385677423409216278074798363528046977875602893881830745207322543231009659477415787467925461002337535531783741620128804483577000215354310109764423891597991710753623827352274870736655317355301909890764824633113412181485578085579627864364553576465655071851312141573588964770566342150313495124915676233431446206754480048791489254459276419498118693241838147417436028365746404300564112364957626789070811250687686081203216369699747480815198039948183434198376664212695700042285747791727169362838507135572567608870224027578797622937900364346751622272369607806313693728730433092147969274672982457569603125729289385897362346099932641937232050846728273956714163394910145788985484305248561226683333536499576194861397141970219511677010341891679885850344148330322209577308932589790882071715308801193353847887951414541695013540249826955635426577253406513381608129169609027772515386981705268049165004936846723834126544993631338545917671083855267442304841559875109333189425485313225019231925406468841797545184782571681410018906826464805357899144999160061260328019911513041566279822158036554783171354262410767911082529664893860684461020581203293621150153407064105847777158761485176289744400780393162208269028324522423987344239512238335981535425293088708607350879587988514211299529821873507617481049029481841649144530868270066213461072539936062439090063779035835471264333578471256899027067559616513500847604337701306542721806382190997868135627071616389487379015071157819959376046575189723410218084482803356852604500275605114459548187564808277050888516581532405036141443233834095912500032615048136069329079265214120582858335964376444900478086967647215514423046767166085638442680996149618682517288595256731200518306381401450893522414690212873049306323345412997248236341788076452233541354211566496149740718787549126399157113231898265908683947353890784846036339566886386825255674934699116375063360393865773249101132262762865029268579903870779592285408580792764656526102890454018269137342131488794187852092028123637868775706441597575211393223386229111250561397910901597993911564807615029632466124782095519852920801784126349485475058462378476593500463147374154847034014723062516834489109949650600533961562279287572164491381275930519204442074084527826171474059482464115288923215640355588552959115475332780951251434817774442446534286029143446444864878731920724901887828151736883829332064734542181076260623930395532552208086718791674515584462261657704573601494491130269459610121748941982635374714307950308816089819682847268194150753847715033072449979957930896925142080337540491962540084358553682012017153135828651868503725752604625939529514993150671723183100776021901991382121495274459576389207463336799656719794070486947510210990906595068554909976767450340651207431345633425808108967596617968272549699284361173537582864179278239712389383484106180668709398544141988578195875834157378421524723887964896971847383395551843185866961506453446452557583777494909478748097773397162974483732919723679975816531688454963537931451545520929899140840065877921873982686052175940123082522411544004371708857324560855319611118699479838667254412664204428215052454965791327967533529228739594697764713328157963044643820639976562231243137125894675473382583473375525528044146453821526666353359555975263397221008223840355615995365112204611236938130955653160832963544882499085171772692266403405371666407710064337189486425183810489247203837570737902383860234492499115646665436465768854769789020175014897856510217141356239381118751353491641583989613066169094737772927299634970572077828658385442731746535617860748181031952418986795487925211971904643720503851041568879981588259219337400683785474325316078224967906419771698613296442529860762258919189008506139446730348071801500940679049299143558639070078488389400130080374624646799623151911326157802175842367521216223053437332295208395923546739219277574535725486215749752904780401814114722622710038001383309015960180935507988471549943701324160144464897625126751968934050221747611357413006956223678596886671531537119224107601478356104111597872099867255721673061561318903137684788253498059576440735286876373393464338068619878443839412987815885928951075635564539925507258656869917258370889434358964221431970175144347166010300346703041773882971840745114968800117635795172036767306123642229931904536258378775658524567655373567952067270684421273826830156982003240425432869679486877063460125824544980924040370184434855395586913818518248744255692129875758225927788099357543581802026131302530561104090625380052816396854909998969153614034697772266767189164025198098284682655344330540884100631641934380924197861337616007535812652347732691720638784911317837090146673244069862921917107645374147610231581645351464482738721856921286941698082149552929653509973065991604430579480639387835499700095680253672047326644033009226226683471706073958543890048340851659140537733645309441535819214612107637520055320942815283528928258087385426415103142489542084639427564681361118765554907226191601760479679472035433022486076354784141983383359839092767456196530759812169180977130148773814901773025744793966059175394040399723980456610046307785010596684981028580912503256275900953394665232154597918727347318008029131713620551683732046563155706233516190275068755815720825717410298251579508936875614071283494302621757109748993894169177551470668363246667055039785648172229308635607079007415991495847232077739117107293700100198160361233034591528169713944089745232701783688463329763840792913228558170325200952574752619843513438538530219011985881750344216411461398956591145775260919743515052789810643728244204309282421591070883161205737185298704414486135453373922525789716600024394303505077336149491648853332574564008327988871106111803469349911794685082788451623441720623243113783243272670915381110637733499874069023933343181298368521721290559426859255189371046386824905937474720564292727330144696388741033375000418138315364665496410026822285294360475426092039217665173033983549622680017690306635849384013897878251828497213827516574832780795984318268567495048113686649357923902743713439517674448027954570407427825515133614108889309536699329238142400410701498349488536920948487193139531329507309998140776361941143390702004525721847505435576324220201757086089392916394065028356774944104392389976382080023160497674820760867258528024177904608524755452986946720838555607604384875904588989089647811073522220711065925748258741376397871929481070424606644178626255791925196456429895853302881704507781948120286728883426110749613908374756586281136601163203199813682942293087099383667967803525015555392900039061731053128829950302383339166079597120633833341690762428015359073970608911448701446652220839855801147756923005023247247524500873314170936371960034028157752800046209255663803868019715595702131030506766490000403862229973924632121940010033452155655877449711279797549688760021541198542243165441671488724360132937623692373199284429391819553181571821226539239451147114232399140498747141181578945411031381489920380203290679266172037074018987121895745400967470595097458533432751232075842025018557942495833602969230043027046182106790565817858884519376525429105667870845158074671277486468970547679110794781634617237439761163182509482935885940502705197207243966019271200393045972389166873513595796291636402206390399141272532249860677732115431618185745407886574210827866001955519545644731761272037168453934564132035180143890213507604712520798469980893675960732229888577963031182372551508453816676040559192166671576885868739025640068620310671743708518218391083772091320906514074052179344344295354933568543587016657339094027980661377798200897433812060065416012824492711453737765583706383590757953422933711066395346687947067617360819163499794288646105719216369074162276662939649683633186513194042045749580922409358057144885360998970001953934602834308331207408800889433509783429221425364501655888076270204488327586222589548357348539382903802961214142109172359567759172088016111479244145841628659217838086615908177690747793280419808923945740711863246645552537155541584579701582000201508990841522535698869567509185112241701990956065680191117646866656738844825470842808765727660054722906599124970666345988006229829774697246216427068128559791524132630571729324506096088649393719297030408574554334195973059270987893405618911174857815250927697288435157048197350745958986709158993727507939631836079052957458148519362441898025984245240076523750990439428901164755378474547748293446220722559690900017392655484142088896437153006586257018361846393569633800870038211141251144727957511282414515647890556338917972025169716757279696219659672249669234477882496752964859778054450785760222105158030458606012197609501514633128198438903238260540486418391768727587321439967081075202790360726071028246747784801484162372835977019015449993779915843836981670993367540087265972727258829758486229501977531895997221823058098386475623487180870197303576021927019109285459660906608615684430372022996346448827971157716042044216552366995462197929336777063056864267247635691912878231417191973962259870954176582089907134273075939043675404277780677292900214361096104690416560902468500550750298065112388638717877739551751948328436031926615909570477904473588998548801305485007175056298533359498625596171052842872405581559990857279868674183636992559041916971108433558300888186455533162673506158792428252362938007888369487849589832286805002260086492899597152958025401906997741504098432790807871354276132268835921512491410793382015217561818539102530272924599339418141401231643066523789973821600834031175217194925821002159996771020086121643527009051654978628413306453185299598570786672237165177813818198867477102299746449294409066758658734521192903149318164825577025524572104465022195450464439273874940512449394965380229011634853846513125063138333794278508477090304128982222281673672943077861374716113753539802827853780390549206483783624688050732555500087296857733178880121146139810937165092901974796038339869010176598017276061488808136844711053360732673450540864780479972219174381815355909915840755182589370402427378658248468312442980691844433386440247723147136078913845670261565933826683996850867587176078677692986841550994274876747039187992214845054767126390435313127228283232847722672701310292771336142736046564249243348267690296967166899380860543674217576000737733485030788552142679716302187540672347613512343402987235376851177196575679470560323217703353825943206381513485551010476582597962111611598165831142040910715143023729674901420820665888933610895146937182004051908145071717272220838186141976811443363535152261701228742833569235855396736752427038244158524040806699431809206980029685034270922365386589647926263490488250562684334438471821660082896729697640853367407344741526094625107968673270865220268316242606653738388024304012670200062284983329981782475877036638666938872303704652836868810948286417700440640585641530214406503084574354814580145389378031400407876390738960643314832518419586479756143776776031688519190198621040514646259092808974713770569050456394948500581040131192859633255498290039471207940528526594315699910815975270408163365303052800518074275137944690659627527324487152039905142734619683722244939282881982390547996345335545491181496650622471304668610424715918887994349464288465366287989616457490770027380262712630765306829603266436009972739763616610824014917351556717007053495042372977197487115291384306392931606011838269318659202721270339314736507735395504976208763613987153871194761857480753923151511050944627915189814636093856525623912061677187341455928153969892988702625501119406248496333697056031177672090838690856120669710140121192957544973022457142908758587639962251659214710964296257770809432962964549413269428202285389030307641584954122763613273958208476458514221257212678154331163703973359247196163274123726547903993483538493944655710647390804636152992324845365743399157798234171942086885445075935597097105602851192414341897734384931712999300794676237184711313689731877533118531463969561076493331217986285823385359176647998936261256213250347416501340719809714988727142853364900460634681613096397161997214201020045976660817823525884758179676893111528426489754434991125567854171180659507611401800665826301642621582223726149535915173907208844785949727516531179876540696560233041199656869325112182448548160403457624988971273535681244751875517533002726264587773722891510985922232307696958795132287172747023704499734145344999299473723113106689183105369497973453437221816518418069006835141591878618276609300184706298679119196930056745226263067109721958612667048842444055815691178267008569098377463191816021131375434694436190765741987244605297662573154560227520557344047550044452060413126789426144950790376482507774280897372692281322447346073689987912142054076942792810499968805469348117453379437778094061523077394818368704095953006376463571077370495346639058500173644012450525893335616405023656975594206778366787679981632386161356317635784185253808585098995949970668144128729771561797389780843503336281030120668242344187890810841156473195343177766676264902399801324618402583136406752760986077969745543752953622376305634113587656674904799951330688850865661350006781645067022167331922892478263075981536585669417867632802197030621170767196027988400804012051728525341569539465701932915086341515487722601095529185571956355523875309848170758812869400792856924477641652078060800313617028635887530700136648825491675333550437641359625168343220400316155573600341021189688516433218914473204057551100772110893494451455542457120581745989463851030302771214734257337229796758396219847888940797053122524434810136314653748432915960088347906990668838771143709636223650668749920686252852302682115406344993031861159489969554850042060645326660609955682016478275115363899972673188341433653423291057896687046832343290378767060833199126400047900256404687544824766300386686376853981776009367076307357462416146628950615482201829006605710767118298513346256447378238695114657809246463016142650142245313678130254433279951218936610549941739915466292628350810061697594433266637832350861724795846092814235526479847266391833397550688661320652199067491449385801612195304310451675300156808070653331456707471237288376952514139629007111274569495773359158877668632032364168191341543581965818359077468665630253832062336032874038622738187642851546228918631718664258647253082041659054756657969784699633554221254111205816000563093593405318814712621727588751775003527558659091147603283485818336076682873347334059971448798385126266973522620153036946533020980929957957082414608230510949046401964420034570314460361718763661079504190331935311366334011267577910905167460852873643217788944407425093048619229647753738291659282405289150723176057369702457804642941529457087246469765924412065513905275328619765592107102089767806044434868319727359392362847298358933767744653005322246670481929546986830562942989091328051018913581195744058803721804515416167953405077047185980461753614895691747308853857054106052228751249851163664667743115401729955836290953958182662528734339618441969666336492059195659656389681989963690218431070854423081228002101973766240665073589888325033889917616063454412614807312746145724391272107895388936845926584437784512219502342603307295010170698572066109448639298744735331766242295788860443884338063488226597168409138621445901970090330739338458141966831878221269008443933319682357240974733857203437995496358295897199359005102472865116373635660346151960079601635687117153664176744993449455160821482229445707080738992863829847842438700811681156184183276583051950943413053164541506392943718920450648179302515946384714150874389573627130967000015445376215849381746365433878821109548805994310631492198145436190889232211479296158456854068975449660977225853946471791602709906377103641125260879579562659906879768760834807412637037735167937151465344117348139214911903901293054868238091057772220291234616944345414295056012062242789558089757701453800223666573751995694375404297545164265673696299968005557818389380570241686996196095588669510542790721490172722433121792816565017083214152985959942905433377214661529242223224227059496269244596654557098065908789936311523024318003378473603024714573990515723657700992667281551759459175441855487818765512521370336096084674743563806087958546464448528107472734269838834828982660782990317885665139575041348940476693256057399700700775148579795705036924309084768043708795060092652816157898394220998649562400642347545241114390741353654970747408347416821402964227519327428526035173993668746404872336524713214882133781122481255977011814878201223780713805814211838968981656211267784213763102832882736806528146096703973566992719070869569590029471438835458179537921678665895894325814401426051420317091812043325331260762743925374249837559424193047370201992537257240057397958927842884521894363830004866568268558019284816538099749964021364101427659202773593116888006872457723334929144701067351972973601869117093439585015094321858633356831077488303702590890644950397533032830788891534265595814461984774177045083933046930285040565323929862308218014307160403178963695927715838137987738655926372452478864406546794015215929534393584196869407686725811031614030459339332941916203411997595723012790144252495462965063538746174130383920674883909484502403405274251771539601123915066561457354168493906485816046950955758062695092226217719076146613150733966424019338599400656599237242016370901904243665875811187819286674000567901928047680937733285724478939359741733585222093881093947383472483476403749916245211152969690482476791497498032303366272370108892181195000082102521394477455819231946577863723935609764312459972142415112505670771477689637726332531172903215651479990528659675136359595155396049575270982218740296200781898907350609616543668521798297192175783195227711336900298215933775339085773189498908737502513723969461491911513250333649739549240376414692531165968310811513497169219532823537072613535242983720977688535691048516618464055787522486438635491396440543654521718670660555474867480585156674927569646178470529781912514009385119776444553232783971866553934307241299352450515141437041276929756355402106485659363599948922045316612492928196167126024566374251733132115559566268951218400872534176617473556813890816806791190194607423711546880849219673023623498800378805024650114064652089699948797819886423838417301067179289641332925083005069529278838586800871531338921661902409426656885706457688593689023323054609903113976990725419324651501596297049434094602620964921424853950579277971597944755815245703757060776625296929867985764447249160536496026187712449958317414025144343680639711231702222001484316325730036638584823913777590953424111350034832834853197836822336306035686250558749187899437872780602219796450324132443767686702157126246021961266766804115845568136404704125820909307297046116722483983567270130580773271879122559305298320312366375835829336073192999591710081560706835438809712563917238624939024320375078336941747040237168394892758391822138001712866943485246564404574183606156043146299684562279709678240561762317866685335624951593724362267601138824216223456102306690564943107985285319266659273521227325789713309125799477352423228514356367649202768629840814756630169792139161918471720902548210686808869929078936731005079513555804324747898060916247917087972988290823759785907520989950984598770723954140104033724438773134597049394251954425680040049708801959228613297666357778247455106348796855579572218666345865803177187609694519685129003508664424357468588339952155321287859464987587229481101265074419759029658577667306829799996077089463870579967657208247048195059116521208052981439499685723432671039253685587032076090141013441768042103227340820769338743332603638518730231815514725202964322901352042610634159347335466686129322398463232031354083916831118033899247697062270665368419974318269474917333607907815707598378968588578096504267815831155105639641024833976326279902166318774691288580959588501977020663218661801298989432942373609323309168672823863865233544867938946739083461615943153815935757323794772135188208708036230518060928129258406766453709807344066724874973501532424392412481482481136263680951424979713945858320801378326968803148874621846391193946208565429508372849490753097365113647290145412635711248742915337528011539486645583282667694727088443828251555494883236044253427807556089753768708875337845104240647473161366849442677757698066133259328720653981785625424296665167740907532220595169179713278042749281538279700358387054995931495368989743294481095096708484516638194029987576356332166854461153909839556547459330402019665592009462571843456714259733481840905607455473547154849585776223855175284608787092004696205290943249581873671193339544333414491201947335095010691563567237574937988438103050378319561308088061999735101647044675972934403577529456776616673581913958636514791838060517773008165047197323469556220847591766766288823461552319235016737652839770351085332870623896609593177672164152176915115941381044824403028569306684691494182195271938587463759673400433371896163483851493645169542418353948956201262845973504705752633119594644034095753169486011970274455223185902110320785494317366336739118837983053592610763949768552532736345669898190442105380235767904667428505167248869521200590247478422208769906023720794065805775219320699257297291392781688995615445905058101874193751282209207501021657635602658160899951032905761460462373009178735823279270392509415103342388945554659129858331376801018697460809091682678813688207031998025976202453324758514825530931122162411745674642886853179037002387845421037865388550852921415084200105151288401762217760265061386320392489369428177655443564951505701559380867643854843649762125077680801280309155536650215651895039733049731642830916674615093000155918333598365041406797609736049649620047384195766592612353078323698341739045936709955933632990764023843421564689047406976100799736830425983834129378955885156744853057324763152494542736279737343695254558836445371239200734532295626232305512107621664574769342295502862520971543311375740661869792097985858727433936645325791036927693259380685186782483011716028860155902063815454934686372385716235399154367600177962265293977909188985006760566582171399251399448230354058050663394370024857594316602035018155169776761027429230706149523402276150812736404975425335604980397949747726124835784007226494866534122547279039787786984852706889296303134341527095131527679703226964149843556651536601943775352274487216628745850001459692053216720591441645988386193089538108087655484067895945203057359062731852787984632575077127290635059962923957817791774496465273200852981973788505583415338996829966306382527499384272584232913195564099084815307158192892104785571168530591145914019607189686924613087643127607671906821727099636893621590091273097407089075065623443515303410330779344093025213352533570599816049945051254525557531199835025108778542007028047745142306100088721873624161896951337349595177389930457471092629326008290512013553412940573839910739807547042842406573157182126637207710758732157265673622704293291983629847893559864267435348856019138935040395978173278723355314225214025682523930298944998604960950572286645567260412190031415206002775480612362923411898532651587694214380452343031869662317224849262177966135361925462700904105234425912498197794786097939095578110352441237960947114992361697709557018860561730087871518432846047269603238732181965992998018733869904812292457932036499799024196866080303113737028078489152563219505614766825295624383687595566484612917040441622563557934137401710031595989896385271524359363730047216800010618310287062689252355471942231959894718281411353862737700856132263658501822746750189871544256543169669673428422564779571148915579756582197062933638495970319331226821010075613001663246857634038370839597571026121021195090445760789850063515960140287800803561552392452817407469847073613697538914427680462731727165387313187178565850035611379600642826114445545354670582084226162051618005694509954015119037131480582479051087942177578071772775695951931252012404762755866168923479118149213712379442766158211730829886171187789162297761356597149148574514790035842808916885708572041749094347089016924804500140819285638324869189120585481225094591749453086156244339136766535818461741761508876330978776703942068664620311783506105354762540894366510504832663431100858129399025010592629119203972014944935494218701286904917374345555245551755978754542015282802181268876914576004861815140376400621164511782085431633369631833684718461211314896722330416238319224265769806169693240506781053562178816594900248017248065375375801124261892321406881124017361153655756938696482438915792154977090711413907887070364962287485474045348988145883676182319637833296064776965061904667888958287378257311768003689845171458761713166112338183912556436558987126096249345389961664328802986023759176252848681353250448773292278667401746262988629676261071542363812385321753557656091991197387268057762555624355942838991332612579522211482938131179989951575357724748411284170868039462752300440604684162478177324267688653092669211548498840831362331072878284554061105210516757367380922909242386902799682937941921614133927810162936287454873738367476694130954313936087799298342703515222945627237825920829665973641972217295103591961013480958101750285266954787084066374873832767841419915565891522549678595048845438100034291700325635442982336666110455747939358320561149783275128669713099025523296102596586335641778393291135741372352450186483517569747951170817191687148433906554491624998872632999270522678610754506262991015602494789944082532439202232325406592452579267640196055993639556785103035639325646299168300841067129971917117695283204278828809569968326961057883866325585826288622243621073261004995123841772205643006323673852381970856659350304800105696194760769772925123153023873429919572278746172896462962410678096265783379085863856108304006380101997101351636749164175204892808235308617300218416424960073604332233601244886805688692736475562924707164067044580765439437143772945476102762186348402889208414982968460361475126030580914746723303342138788221353981910873797400233791136877552233905629320968038535605658916421486748455994143567065908220636642036074972188746768780301404279035542288565607898296913113874716567447637661254825697114598425227500579873244987832619751780487861806500585736059139405871596310810233087478230538419259856460918721485628513931987018647333769550148215371259049933076935647441149783726022226921040355500301760534049000539374329495642886865391858753702751869511860244505534505761207964095865071481377768554594230792668377471052162781411116629438082905448247504441066657075214340733667075037719143466412011029305236820120306038034042147836738679245087628496979381351543904928817750123424485906145546646534875078925316786474815564760435560681565555935656228530577232247597585471399388550529928113228781145206824991010632566141919766764915858620221551083311826750166675004629159133909194860084844432318828438714428942466618910025496688104791096809350269227352886454548151363723721801951177018242606412725319760467516922374524949054067384891088395205437859578879747424176209026650511474247800791087740517215848716485584869770392602283811829085621765466230718742627159795130090090927778769677122830664564656470752289999991359551572698141760657783786520362893540567703923236461455016603699039947934390580047314664895003295456797048553494728294226427635861230514042288616438009437977680633594978577721842721547797968795590321948968899982423732495480985860685902015506505752287928406640928101330132617197778717843378763537702951440038503940532794193480941185245168946834644516079264630959298081997864757429046872248600434935978570247903247693981482432196759526299202283108269642563766816587695641760498950264753312450388155998025707597862601100202073136965426195902685329718306821278589088850529701300537905107334974119380272230224265684862281772039027508214221588325364028724705723302488166700394129837657466444790072935484724206121773516199166087779607024263421530108684877413460476710539346445727274207645810992334074148656143139912395659603317702290215329828786843519847972973327425219852999568667414541927040445396015339700967213028359243733416488932789288300470112652430429377094357214596044635412742849675359478647394884478894463459638725756173193782062433684520665523236727393481455851483080753698903740983765785111115929957566066110997138193520799400323774016434538335131537005418162678906446564325355396979591209165209048436998725620776353817132561707371402875243409929440210668158020819241121079031146358027816683759353967922020541339256169683471011618190001726047606732393710629465983472813654147121740754341193582183274953739075531976634040539985537263491291852393500233472506968845449417902797907935449466085318436269427894960519236321452172319867431531129520459354735543025507570982145231787662850419451116452711459097047498400822471985082459074539611519663855748733358583974760264425042570965978201184660471234563798880911251799117711074771490275531938907397494072984950588749390250267308309892078004134359981897218837512067259002079719388112879944268540514522324447316917063926553856430884032393757779937291198155408145373572950736211020781988090096419401144325878869830098503000338461923972981432575103131714064202560752112329835786352275183212027394011137585340737560444041570194888480206202990232932931878344556243700041767202722537737684761224318883099689370987347608396644760071492593477125105025585639160959251506102733351580832231228512851908505179008291975301821910285714808363023352701186955012073534998681465643145992160481121296077924829402050314774598087193377895955936526699093660916021579728676575522246855956623503143933976306704798953284750732872833144404817178391732224275817631587704394717755893353639777648254069759786869046557405132044792523739745424910122446425794776528786211069124318789847842787028155766626984189236020861024003520601621063388930686222423888670433362102237045077349894472947980323508907375088792107615404210500777264928099172097914604227401082314791703573429826524736001566764163480703408206095047632808823644784637954116696179828442522904739590459535248386526743406552740769651608348561985504351105185315962820786807572335537212971164117532674798477216749151130168400086386042875903580354995500169199007231840894135504136846244407090261642106625789664752283322089592888540123241438741907774373321683227261857875109893317549151962537532228961143968166206338131884138723601902277036723020353002909794264364003051260820001040380761534525624983459636540447746977020034814238367690766847493215907921864637750989548827848583700762469058160780518727394982868474166207324395559270656551131635606208113010594107701613032604114956427544383263629681521846580261543069116166259432723561262210129801550246154923752250531256350168474671620730429667026346130262694282640719255693602401260698003478321776090086600141315048713317026449632604875376040991631820521976647902989606199698849987904650146008432897634736568347047985429553700617678417843656715215747715648548293282362613245001086255971667026548203602823187195015095179245190607519848254364646286497972025923201150864370633142304340286071519983379790789779986192933348556259652953557872719169038081277877272607633367478735984923266858865845014981500418185369379594101282420445848769328457127159542374933686454703411778544136587400445498077026456702466750398037909850578943436150710418362959602765861634006327455484873241137188926690259843823644994373293807306458610515650964398199465951191189797866536130284330770579552565498581542180328203976050423049065510878210763814246070125672659653557735527542454101868676884083219407808180202843917932402172865007193878939950050118909160620592360201291660049142400568428084564788004458451525159579319612023852168919445124037471249459417781666811110506360362517106102737543799697443172221342332693658255063440527448862713886394742186963779089490980851394990683252042689806997369334473974070472151379410480170957552184334523755409135776567050931823651504767223367332204234409870636019834524759688872256022311324924800462460189555968774579545589390240011316560421747711872607655454016554618969263120966450071433535696220846989574554587857877829215368836213591676083061252707446236859028827056782412739795905042472821685219740068804830102049227414144929021951736529438238570708501087455496397514758529661997952532996694596980937357716574069734539902487702660859576632504702991380041817484542496125660273252277195550662175578116468555621226590577668569404464576373672563383446530687815687304618065608588211426887484753984111294237844116808771489074283754536917877413986439012193308530038045006974751339838719024209000646107514200294551298534780207382746295179443771879804055711013166536658746820943543124110986001656798182400623819635566127787575044107355414102103650976237895180909451692362155700784285599254477604250867463151761819158550299180844629917120797912672599906633221915832272427745039828999170401885244006852288809501547671246031475673091167302587873823820669615275459208282894135365509744959292799843208060841024940216629299087501250667808482291074330383401566884869454069199597997008147287150605652538304857348002082063221213568546414505410343357947922750436321076272282715684927400306096962175134712621431648968642949506920134480854605052103419028211590021479398072268508198038438310827995370037024737432840023020797191834648055345217635927948558589950822601889032416737609812525225800847855183794664364025447528715984980994914066085051893474943556707982656681038504967032474075047193912328015913455856436471108229126864160820227586817127341905486258388916135159227623656988315637778390123894231140328443170819670212449077737286580883854647150833734885298400987736080075851061351006215166476129948883759243767077623713336938596407055695267942887293878809232898482073943462995702652481401043758268874826386546821435178505831204331771930943923798888770720746195406426638446623933651829861590199790385923897070959184108400558914555596554519818188291231086184611933517162915730746311279154991191573138212715647012022872627969380171407941877487620803360609193477523427157154222580181777048305706525145631530768503188395316960955685969818504901626830655089515559631656583973891163277716867365871739615813112896994389858818089790159079771948010916233563101997647972214632079357659198191682073602955141202678555191339797657670942752288657120259016702166167620066776530891068995108331899237563881012537910193203247017153881286837433163723097764445746866935253319335090526186764674602227835270266711198699296403073431056567993598154123335287612438697032465958373780568905651297139057763512063633343367944866034305981675493764366907826104281242816964678530572613255910825372818111120829048588731318605037544948653359498925305981038594995610405715611542914390538412799047508142172495585025929364703056786068925561793809058886963175501164964982810275603417196558573789087334559086047592732874612294532369483705072680873460443052954052587247470941799886010854922379313738903540924235467911631661465314773938338175787768266598313849027680434695481048179871362088675793159364242244269736127540809752575683938452607341083862129204684292223879276320425838019637646469543894277838927929552125215277567473700416372929504284307257570502868720052845079564220687297689018120771651188865350584911931398863823369427991111455922576787206635512783170345663913573153999409144021821453758317716452224924107276501588122206419732052576740736786846117178038147246286224874548249765340280961716495536924501742123702852280152651184008505101396655418525544493529316967533264645512684436448689526491996516474870731521422672795256372291504472042951596335894787603680674912068252703202899181573004720372804469944111586931390649269765389004207204445801782791340099706251396139566063996953416914553851778958405639949066821000198788590284080974915350226081522132684856550365419257101173146980570285150519260145830153240541071736376307802813341731152601783460807509631163070231921577032575636184296549871369224536773148400763199672633406605208099986341600382700756907112877208006892178130863125292068580792956498939314831871290606851758820244725026812996254664387950535917158907163120690827411300232912840288968731468650695664473783526066837549350849505346008851422530595197867266957623921977804860484229965571570965486607537785421486924946676260532393103620666825849201372575368117038006769443386571208813490679643774063036551543161273828308925850318811319281771510370767914397862628679441812850741223044995137580852422256119599851552130259317370690649868071417831660463696436437541379598525313097071322045508331362809058890706002694199849351412685204695916797906928920869147908712538148576613685641926058413866318028265885022791831751582125996517923279967574630762731308554999079442433522824449966453838192935488358464126104551833811157911830194777803485494772774111030441982274094477839558698974867046683697746289625877031951843036699318180159052081242335174140854855025579443049384634609827582959289046883121355697113293557022024716381603799029513676478716111082504638304555589220136476313191193599794038850224318864685951272989840219703134708670959441689569883016386790973460530258859547544117977616535624610855835821063115901133210667062039240827988727569453410180371197559624786842292422149137176639689029411889276220421822650336645152800098464602914108648505411136269097248384838127023884082601015496672826310267398831652849861503986450428006719329069742488640468996247595207684405696428374478543750575925574353843658611490363270191281367009696001120880782204579676431981473000737878085832993191723250895638313278616618584156039014859602604857786991764040041160323477346922553925419719306778618729467957368725914009370825404409513918647889624042764268778792283602788833158387143562517412952840645563251103434041144944005646330146097551709371129195833578926376193806107312131521995638064090981514644087181399839568708470646880164267224403449072659263373354061181326036766024000088432842426034107955355872953737120268880968625885743778720773536408328860036021397940561803277665310767002474391794794675222877205192090290818695743123653698487173335250022389915423964840703071848174143991921365997232131081983934525153446232871059081031010020100700488543402797139106887926050247518599522090680520580512633551775287458317491078406567112176440788385916017394693569304438983528012541394583752444978052756619238664835999821271998913166230507119673358396091396965122918277598626808645302724787869895942764695167758064150515968523304967274078541731530212285064988084162283880110835412481286037034977322604852524624041376264662985552917562910448176388510360169558381137690368401789249504036275616821172553004550153432803162364033388680504385563332649905887461851966047751417460719792366499338467924100253413009455511117361269790973321413351569645276149910245645377120033737795284881884634752107695566157792446992663093892112572439502029019028709043662118691363596317851001324637205993460837423605809786411208604300083801188750308135233022247145734265284253569878534328202570992031153388369584716982556781220381637099124171914549809094116248862628477642861992187131965230061373178637757148952067051077464227396681057519430139580043809146299113776263482516980301646173095364245896178296955612593426621469451601163162838010791278211980623853510661191513055096300978526543485612635227455468005014183429829683504005781994824832060851248846271405244114824906541887231885022722517435259170585569889413779930949392118894893787978991173128895149060123226557830505393528370350890424047886354247911774163888055057570719384167476982057828137511358054609696579435536061119632086713268963391091503364543627811096892125033286015393542788502824749124242867372123952741001006002262044443527994942432761876501779290827946370228467291944638889731983240015690785712688522314900295267065329160773892394270603232600177250856974010865037850880393960547521180740606272893094705521246109721912608796774684339466881215787140241241095439302133238260650870502998394502166751791583288310194430837577160611708149810440891355241246376726187154115179292683622341047945562110230014460991504564037759579179513154226567227577780945460336284766793231598357095826887254701829419594018712327581945020944263369243230979336710760438200817609144174944646566788759732162309167994547077253245143537912381337135129062191340242246669897379043735520859277941507657174862047146549845970145261793494447747011658867130580412967558637931993076659580720529130917629243766279238235834170300152415749102192695135833757369772585887797618260796901177106122866857646198405978748914182816048468972565630710206653511881368366190601814201866452627422896443625867192006512418090000485822893317353112229315853727463994139446539260678050485776182381785642258048517708642516641776672165242493267851937065105648182950052547895249427258493553252036039840398783015473039503713338518687901195961768932556482669812516954345537945220024493430818701201132012549713981162763719409716672006126844509961048970633915314842616816455850377358187236244304229758005969581624586805888732666519159332937989809056067514244015999293805744054429866764848356347044695593153166261645314052839415552481451237437483942212397982563198581957689247637120626830221098398173649753661897495258880780129274761766755749399091486798425462819567139973322818786677584253297297652946236311662926647534845333623764136666449428487845347020762750738979132239693817290741440859556638370098432611622984858903399239332186576136505826949698339692301274480996154185009330559125845967397865111474962933021437108034569437589533355207902201591479135871842651768962699666983584264046985604300931189302790100074941457329746464355086369946404462283274663958354582817356790474524604287982439147799187052688137023033792368250326064531806278625135352602825430246144130343611109869127140348881470831821435652877992799194892736651260360374345444074150635613252240018990768855015950154392135982271245060644086392883271344806419709953276401976158791192884177664927019206718479101578920289260046601673415664364593889431068331407975033512912481593093162401767494126893752470459360979272361778499372971195915181415781694753673716907025669346863931592532577642633681687598184302010579948299099480984820196288289099395221966638368919890642725617218653754839447144852699198445880741842680365277045332843859260418514412558824000529784844449099055300587962549285503359382357321079843219177843753489035654409459758636487901238703413306600106202369129285173967387233481636909006680103762211563620526778738485868870446022342947986048254352525447575074563021790233421839448850728621874536046259590468845511295252651878318554941777694695675447128024262098048245081513995454864189459580545489843849849005568377999193279663274199058530904897325465625896298113571751706330119227423891300991602717327612897994792834964062081961837224797663869633748954882168719117090490011056185110302071948005814840143203124341729395159132983485851470600642980837241809482290706006484972178720287233482401064179083295399741919713660666099867898040480526364772490107972026752282779002759004073119191912171627384099288064115302165256466670965409237603428934116338715095205531022312403003410513639296201686864130737073033603829306718211636323588983353523347970869803595809377138974995026056958217322757106424393109710265944058808119073919833407635511743518668084256371348064419026111976522509554982108601231942669221264088228124257830071897183175029166994172624511812766463394311440669893152384036070613868096558861622164248767313370585699654472464185323017985089460562134448258371555849136852134806407258078399797725533683469132032558228240442465187921707316149828606095126302357266576716568985006478886081119358231424382261379353811310362001918128643040744563708295323613434718590544315170903926145545490516045886524131497392590042415749114464810885570812093052191229921258315706661408699819347688501330382638432631338819874294763871084702023053606628736130194463148410433363964331345932123295409405630011262990163005395076931933565732808762673014548810224934015340365790951118828523298617357240994639334238318789753910522877791654138525724101662994713969211722029334628827107165609921592756984614635626872773742314451994518879088833420603491042276778005519844947055226533818980795615487635651968579587813064383050301310743939870005627453669025454642690652316005639645239541307371731124902026667974790780060841058179507029218530544354487296810936619718897899731634208897297939235522339898468760886687052523505123309708918351835642879016953143541048500136800205418446991690523484150569533544899672021546991849964009318458010071238493844529661722602713701393102774991145339173953012734304038693565052685550053204214479575004010412248474883184191759084113152962240600057381675691608717103848932872475905853563530972283939280339819676826631575463628684876537806970593637054075580118808726638509107013143308510423738627109719093566912503236438687570167661970090727582054133295038362938008870240157369253405228304906516982838554962731234933360925355130600408913221546345516395763537298470773197779268753290785475766499870609641109589299638904229184820638126025442301885543318670973116017721372628930517879959537003023575526676642111921240389288866505931553415181722327577290319981367701525083176542106139742051268945762288575585635420406065355425473883672639511150123952568474031659785125246438178377259773603283297276345195622346093220682476342247457558148412056694157839832044110678672675427209909816846097790636747217598463414945185627576626431147607126853931635794339336880643916752307376247313616493743953961528257271037980614090613769063019260947874940502786705361725825586650401763363971753320166051112194411590497905691297658205543993573346011643162667014643521504987184454970539440222318773953847493982409426561335997206903249973519229956808310974603663675885271380260009150532139300237708004606704533991354048125571094923457549644866307007422309703408334354183720707170899596919471754759912637083176698166553742343281193262293064680091327795672575824548343558185767366836614448656787748570102909737190968175336307519260887466365016594076852732502564896722254580332626944454843289330353520868251719440471315517226738316537326226099202346638463647268766407465294313166667290364890896033146508743888288421138380864841594213971425153709648265625017301010521388288047062664643399518724791367378010257450874813200992194871993863469387109335046627949766690142879584365540524564400693172846671598610516223628681374017519023094245074733184878539325950955541106909184623217778670560990953003366024019196474380444871842035594289747926819745155174081195321376936372242413278374103760954528785637139707901996261821500919294060633559230307102109294673329498124579509097162468748890016697584763892353402810397083366743593100703649509456675458077861010717311236989741961472586978069995841134712352210703063798954649966957946084278353104074767534040444344449944046973251219242445052189130919212887471138321763363558929815919779207647151052793455690523825755372251529598359999604827555175893128388721016457370559030425146562407799700032170337396530478260622020680422768794878337825741428045411630876717772762116940807957834813477360169087913390969723843652409814586912154743370931372559744528787637726921102732695444947477440871623458399954044899176520785194182967933237507838628517944618317751396267593208895750291451730912838948650038511732420969809598640792933040623223462906717087581582734444870320490599467844966776240728758704854197643449119705177766595016694606374012258435745868634119105957631269493935230584581911873942331457073038211044758694917649491542990490980220916416098333424231218017567682943555546948735225931457231065180308611068732474569761272396256666497427094744432480435798191211353274237527768663466100243316351495633630078585377095244009599428230763594155830726383422198641108636525407177379467157885274117367414168091036627135236168662845779439600185528040431211798865895711568858612352182776622574079381003840541240140464758892946835186173993264767676932068719067291497666128992758696774292932330869403323152336799171829619955196591573058060040949986481848998139968023387069674243565991502605114298750604251809808063570414657537806338444909181458971069957521729357631001540319568642917204479000338514423225799972128948068018547992329586692984882095861912112062167276562930968109087432031269718098061302245095345999760769186876311956938500038692981970071293435592034682917773535094463296884936630494355140743024594697496447829091193802449808095896556053749230981914584997741160454391477097711475230078387304745311747047762285796248474927106298360002021759393479920359463286241636925995691893194309307176604862570636313842475589099594751532150194227842369587505276538916356346133632452389419251687552631382331293722984099552506725258858297616856913926897893364297614851311677414778768209566176819682414911494154329222392506188097073793159851533058942195365743852926203167177312900326823085348406342824569201659370747497153510315171194694270828889149274788065899134217966358699947214862997988960245943611059981604517635517120727264156084077666412813076672999220898780090807913403805498303370208579102045457418668929254857220521920085056646650941345902001476258819317933615501245993779549499674599518544152355210970384397634717349544218272199651960093638979894803274006410864670533951002894555796012959560556895229330260495775060556270794680713153704742003683527291838360008940684398458472366641150363018912286266067513479493034056899380233566463297543720299679153445642271636396232797507393620245519456553213058029230579430453939365033980250653004410509643161392469847093796654172404990735481627940701919770873851769939760812835608290329742802576830145912302294294093916322254151071460671368831565283039892748003835239568412997917390364988182241197748668157265697261201894492689103424512260056354975945506193220959761021497661918869912201274576593281330051234392267407443207146260294215346112208232662882033056986776489555024404520990844242210635651447856388682898561959736768634836072897296911510939910346997505838626287524440164368950931885552633164795972660934010301555412699820851992306793272036145025622360654800705234562995366936559955181268108805784709884414744081525012219565953274379373807590403042339686935218694787518280345347121158308668656963806558712579472909993892302959881424873369404546051277353957612999965585047187967279436635880036149126359081099505677111833338134102504991815032856585747463993621080245809508020758593222807898857143102306063377920843728593883117470855203593165142357269594063733393831217193674163905580755116923304900301526588203488640660704335216089670267897780139207636492650096437299188554466949056623578492714959200692790412274167047334205865217531460751147834132044508030888053087540999891609342677622913611315204474051865344512212719189551080892805618889390674918047405252676984164961542283834145093117752304235545929450204734773837617278867135252140805759383464805818900421273297374849903239479343064748363867101054427120516444061079811626134010770995241288448883350051035501642529893260075238599623122681393860356116268339812838758775034581186777411615026037216111410016497708583784554825254204783886646929375311222609971971383417061936590075955498277318258050612334963886792980804741266294343602234375543274694243613000232267066368499277172482645512419930057470076163631202284129339554053299237077085764699956449928645675264314451630271036070753010529367328810289847393311349576365678615915881614174250847935522783372686687839052199215468130944303756002587189482701143291096794135981289610810512954388868979860114622413215326264243512105900866222245793585005186955160570054309568373868296306892255573584803890519482339838582441405334116960860344032703144064610997908840307337572580948962017280575490000022277134045076771841582654071213035263542528675741444862522216340830151862183790109831115142839023092812777116230044582042957888257354675730111692928027148065985080406911193704817775535419851962748978788157073523818490489568005107873706364845739356770884953551822953911546264804815343244607387593924067342157428599473234725173023104094288866955371468551862774662079875970965689092130410968890683968405636319637149143556508274096707653324371783479376982410142547864961551325868646193555914357715228354192812857101495527007713492949518321335338036407585426780040320325671898997479912047304282254658070159951601112656966188914625941404259575799285769139618436787444651134422586841385217107595934285047201770304189543877104093503823415475744140858314730585887864180265163086627924875046178965346050159757729965407200183723964299237763638341715863679955886571170904265258837939542769197325655297637888072322210412691761297669519237561311792925008665896456151962981120548626696737122144178022732047347905833740983391976067049378459044894873874961067870676936380860242646419692420763795534158135072794723869846068938484896199979592385211679073506074895661455355504507319754887207277785971715308101545919829756290600598902288423923763692324313196218175352873555524966801077682377379458470008577974252399030929066542602976359272415475322425498875847783348047527322098007356871563068140994196061092436141969835619539127312147433369849389448575849089100472073001245698834938796358741528471023790666743862666384203584457227792807874475826953009597074144353013966611709191489177717524168485254522589378383535993140286868817180847226984195876906811850501167175443636133931981906656072612962904865166348235219819186832338628319614631018696528327891140546763129188766317763446787297958738432416987469904995059395765268086448032238044622546006086749344535121286979456470563695575488169299340180414994251507671952531332499968300192769387924713012252748173530944110273735053995315581122482888553390593813374341072833439146842634798205952551595322799476657134675882309637243169292329903883521890916412829664402961902895515679202135955993008483536726895738311658916602730688438242814963730777618593698347644726289189769498106260006332729508982383362607585428757337357324535009584582403024687996902542081891808813852219926358661268498473326843446799322092465429035171735829786611391715569255762968767075750051511878403622929037585956258707061557435298330596949862882546040882077339204783234963378077700701094445239151754629694041251996355520184894334959207536463757302280411628449037454566708852504326701597961954753092180343562548105828447143097320991378780210072615084719722909415201032580022637369104021039856463729606734963866658806052759584785927502514237699747934772527063991711892027207120620144278121212452520426358144616989086982208208747709279717388872005621310558740716154655183026031415950099601999449976268481367087648436910919876848072678100096641366539557089581368901998606365065970196920661964935691160693709531849543251053870151716369177249485716841563635292591817814699539854934177494693674456961397750417065125413726551578767410149295788561175785728802260316968684280055965300418672132362307798694519797677705564001081254538355583749751649267504238337750991256784947418718369034272205273722326908930747471603785458684199470249724345737265206476037698223795229776708952886046285267000672879284654511745276217112434869924435830740891948136102823234387623253863911031603672891904720054206297092565539061916021157926724325061014520008818968510313820024901107381077000601328878408125749291125097621106085737113202587724601193097722637740390850879413848776506147267015570933887727660318399059156105132222134048768370654154350289652687690984318972505311498825222555947794278774858757588850095691976159551316930743151201104668663065355191317738648229688062556349738660180887619705222693804273734931500404484521111658561766029538165557607524831096792131046253044164519056748116289701832194842131836182612562506005007076716224011341843751350135695952264877351343418176334915628014587346465258827556531963227996099916616275448386954725688111982549951908748450338044814149322907633430890945484270401455503343893472034443662704962481211951974437948887370880303127093975158196358059232529102819373716824355770722234231400800180177426391921444929226056730918250688773549735261613179345452300830311725167092163166844713128325114826330741244006870698420593280992738375553285621123970600313164987659239856133972524710042401224608668926368413892640558424283569764278065182768068523842386057121373149772938801869275866052991183922422840584733925387898801298083409246936319797388081497925674641043700446366488380969281599654385436384561159079720412275582037049562491555956127568257851662969663046308541605645045242743679902049884843385009470598464901060127739907525232134574761697875500697568568068067291376933702865297667744413679077857127834161343280625966227489042577024639204542590691101908862980882905480627374346214378391739635147094638999230762056219490653039851590850449018904961500868669695887142892395999585394111006963602871657408115743235181737311477571397802533169699266015788470780615599564544322369754241439945205192061368408049112326514850087809777848508949834277990319992670909099930636097837708789161323475468486211106087483843809154970732307421595240840090240112839623049409316631965273751909761028119995031305245666210324537743048828743329159635943266857601094195327820601705343891084608151464073945216860953816219625666255080177056168785831257998176318065932044694472162304959877568566503863845123363080102786280721162956791130902322200639317682649892230664750727480390562082604066877018322995036021165470906938033620043074609545015079341524289286164063888262035750288057549817219706501923846187389958542082201804727453826117158811351511524674770741874811760218103754231282743865766460897924706663778987981941056627752107663082950195492171548472234105034597004023458416713817693261150507466108585005575478716117153796883103722680047116702864531540127259574013004645646770862708442904544438058192993555251971184237298790152355415244471729141655901081946170231171962517528553300232174886044451022238302149109096703374114284531382327847381224028226119791673645138687444134134330969587805393035706539181558419477980275715209675029973469605408952306693965005444342606399656495525963141725366997527040738372949440526485199623960362018921172993485243130442325302749995922529953167479208499664570276318435616201851646048275803855333801648648673324573789134909222527616095074303429400482220753169657251284456000443516017716263404227941355319513231193644301003413437272932526715630579350476210202887182755939337741797107084466251168244259235851772317901197097768746154925844332168634862538879909229028511739871185852911604556235090054763058722995436469708796679557049629864724132256674048408697575900208253867275611091861442131271780253368207746007191520038781786389896214386052870766569518904092315924206691769041084654746398537710999782415827768819627174469887703962896358783726992222248195247950743481937162022425162240227518975327474065217614553347793967480197439371652624905996230609273329726886873947026507509549397331869583611026725557858572392440159810020505820151408760039329796448104916764594979825281362307668107354174684843717804525346920933111041923319540077782058042890435412224529718563349130618759854265737666009605527363801679470305647428723170680800538928803342701040745810205579365580217381239232714818024947675288244723149887457582449255956126847250600784905769206642749529849231838331502461352792552134246752901781599948041077405193657194144119637294421558031568941318510629626987953606441909758744639097775331855498334190248152974680145108315368704806083775437803682409594142781960888707597414784674321651230040976724543241628974670098778191842446925312763064359543304824900243180917005090815287695440071288400436132591075465747309097650929037861846792980802449570590084819483083415955297660010330746695389328990980478372784077996867449741467703515285491550943700341468949813908763035169158900032385929784137815757316185898767562575046845537831272288103030927753912532519520347684313441060103874709922711270837768371066896265752085428861953641096215372485396211400774198677186790933744772549515495051995286800921522516057459535310507500381331019210468725211261876281361315044636347528692823873342184208394275171300212180006662673228438616460792613122928429217052986523242568082926264878343720399599120100564196773446558358807675882890034517558602360376882661718027664880605520795604470441297643613576906733374450483055978681275811991839993477014824804485138679151145278231282460635308317459760534503945045340115202396229051945368951513473872545550019293228710682477366284695128106489853351941512990871390050183860994827780020379297292752292594023896166209861998219848643353551331692243781448415233061057964225894507281583364470721833190921980116871461138275505678003333768205886750682831929425957622126028665080344703953896142253310462899959061438075842169048086003212437610568442860671706160352501487445404385277032191071492008977110578968081533954108734174849103572434631443640579453436029533668035444484548769097833223787820046552253189872127908486877309531745143182819688550743995403242084243239204135493803040357426342143337020814634001025794964190868825866743434430857530353786602529603896720550058430285006238636817518560800752186297371621346699216904722469624825070276324306031821870981112770244946863898461114008219008264350368776155092516057803453811190065805976591105869391809081755849823354754971804151159291637050632406516502859185473582810347821647678248777037794683562207974018386240120582668171793895971996457056381207708764087238698267408268801254769188796665612108737636686913975482414763636628497867587697926049394163652620269752727790692100961146204982651899964178502064570959229704832296744352850584872716602534553675315248743436972377426992932167509411308277949350266483408856037877096908399625671024252727607909263573403222583481255518245346887726536770638621841212549971126257151361328665719070099630712192316974592068642622947972120937574710869808371191832949855135876847535981594310294068147491214144486922666084684401602470114765203958053081883272299818126317655449353029253513884498728126960075522666926936797943095059253514157180043433175700432535593233064049268865703249930956420341462323683574767176046883555070481117170707545171722630384703756886915857679438473274443415430777317247661827130972312182246908623678221368917807147039256949336831702362900541487573927194162584953710620637989531762051447410189519328633720801859722708366716198469583222245176553239740844977734872963934309616631478425348702206901353601841591915542977190702193666040208534011164275305259564057274087921279004513936251703847429621713443811899413130347566882457231298418857821676275798722728767300335069767507290794969000687364212403863566787173355718877377404878141600566664188390898050962442266007446330851146044375874140921730570108399523706052356361173526943730664720969886095581132965293091351663486733557690131075018603371913356121548249617646207500728589096132004203741113313690774354063305044343507122713989807694976340507679389667395507088490003921713256555309358386273525682129206428464782546313478267052644705151900844403333320709747680198284227845864608644150039862233472287888175334311412450823937419047780002521376728020536263829108736502471763247867603660666245912814026521888789856973511535892511209233414039815506584535188796884603841727452109742775861520088043360718760451507149544159617140830855989652976410731220057029381534111804361818634301716753609262527857452102373765198886314707759518236151088510796075953011875940806205000563232244310240090164959655980170622896383870309835515585064461710296343022388839564315182359009101188210293931895797873853029561878313003775671451211478040677303316541393223428242144358325155422502487311363454412988234066724535389923617276780588266441700394868744829143537187034391011502349035390433084862972554824870741895050289526673846067375807308528588474846602846991799285833783721064373265516637703473953908388131932753517196590130360335507544278546060283434892412492412000532088438420591777252591314576083874627404498479329500383569883165553686585224595142762185760755973163831683348025312906352739977348985990712182871147396180330031793660053180473766510934579010398010990274726769175043036464800357072470833829343743144640960443446373897898595656275256401510725109472292550966181578772449782872472148417983908063404185567687817987920858457419423011297889065804932023732139783813540987285826121774246689110553067537496794539023692274148209753770879172335081408937566723484906602852937267868383887337618801908827540577833810217612886096065979786191437325292784682343984196121594887983625824520157214105178566733470672512601003971808536140111827877946736288348306377551651375478480404521264625061434598546558768334948894098200962240122340031707453516873561409751851278628151322459827174375164092859406659856396309958542819904134853313577491563531414654484291049870820705608931883226831774043319400959460131504314622895129175379262500970362698267894050299533912245706837008123465123594993287473291658172890242602597736286527915821115541825196394077346558247270354517830238707336559390907763287735707406869829335581467821605528238257292911520448932926089947412501369962618936976728475284321264205631135747033841060653113876001018233356569239910508454409800362073760351980975306147080834604736854457190372667671743192124281817559284498479392891829923033941628501398855901442105091112582589311701433720404209458189209902677624791211626392860839732138694964690532923161738692454733020698129189446643954718735699377045593567650177711225503722510818363301086334378483880397880790023030702359730739222763550863400104224464876683613730973255870051966414300900295254788202962969859374344089760702412570132060796735257054553744870760368448421144160167948283163088948987554357502183517586972103146037901445886521418940342414113799650350350389239678729421478444650660459069937293135923770018664713041477555001871471974797425731083208907590971829490995263406692109877219051615541572851742612024400943835547263589579822908020488454621151060536594257179246857693548920601460317069468481027265485235686923872893795139401723947595408176504191670657474055287032324069753193805939725476998325638383959151651660940364859364020730028343571843240008016011905683411793815499215915724962817743963444140834072688895366294276535533168722209159909498856500541739554628538440501766784718236427963367472954326148194116838270282110539393858823856016004065191613859391549377246344300913606684773906345411834173806315981551602150067062726383636826020122210861583979396640953744313026363384603178867519322500820189286133652542109955426095301082332373852089639538525155577246812527209168807866439868172088779816537515953534829774287616431137708588350365929956893599661485587163645274968913763703496193150161946874215416801822495545267711778019089131851523366410013498337000187143473924860624371945546782348233174743148958854914115836613236641104369534877205938514896972923821193151548112806394503345441781314086360083294842691946496967409241298987772160354587031645724416014159643142771345058229084043350875201560562194504136180419415501110119794449618209100692872036923346085529302723506080686405885389325444747809412956705064941501089572398198271314119203241033159585432251115997421984281527837154499215418902121687868389468622169997169398684273414172385741333690303592073584734493000543852513415769517587839020554045302972353281934247209958454080997614971934077681950417722236953726881764450845263597691425512044786958620593415507268157053242705442204604200947113070143467666131645613087891782459626187799678516804359211904977642133736959845879512944016033088722435867895204890493565389051296561115900431180881487878727234196628193328350701492995998855840577812312608375316929788247314519786183111184687424911588543591207772497006105937037210926556196785853880185356432896079966287551785951982574365554626228015547398382906648049592390999937658254722834937252615115297654758184118978760374006815009865372619763043568328615248985801021446689698247145266145845265246843050539288777095059211947253947118101706492323400128490727975498846667337625028895784175410434112328613888013670466321442461601299806767617220175439507257126089469590161357505809940328918482647584312937643291178219687355917506487815592019237368716724437010071861500256038723038584391418417525809473428249558621431806999292319789090997078858959415896328752513278863859906980510100037883646288113570552308008831742176976091282243869430978038036496129860717446923174857000344689970922960557663583303725468303574510558308343284020326858710119425459733885585695153102582748814160865896156207768717938756312050645760229863419333911749845589433365256542946116156870445532838435613246560694931262304203273763913407603379765711213327979062619222105110592871004920000844281291991483640056512521243371120372594631362141818566281990848633184668423415868846107862232401036780525387904632387046322120797590705160319580411443749746939732962661389635131648648528666324362767949307791038758608507829951691024821004415240399755127779364498603185330501605509540693656413562725002300056823287862112171130001929333452060949086441936778217007608096501298148509690478350567378379465248362651077514215642681108913105602291044385692409853258799702147378848366318566779908572521460403992386893489468102605871219298862988802600568765786670338001521693695858614902889433128808883876280107133112538557213443720617256223434308651539393755276481759515917276943196626167939235738266084642919716597459466648493216592307941147345346389423281601299124097998177958887103531811196164463977082366206542210626600295387955264580490919153483194835215361684637369007834028718443670995255736371450792709367965310246264954279140849816970746443486755148279508033947193334875436299477259397509766902320941934649343921168695565692119670797545420046201149445321634805273311962736663020575947558338272645651331398841361475504177455707455469122765364891035010170669587541992376550786226072437489093002601780126724219585122190843342233056379555270649762363141513303177681550409093532366574300366983068441642794663037388200312925258086714755849435103044073909864128454304868600061525364798164669673138585010021792701947657663899437658238035667557014461903988939015794319847161096160791014719801723465831344896624791642187261249112939864582160716107719125524883287357321627907889306177260956725308460797730029926688884660683393102165465520107615744760791017347907106427035675424110421814958590947788549039594872650375534089404666400865978656877380652126001031250993655476597238504862706445389914311529837379770667856051337535380212086886178994527980292075687916872055980308741830259897528608608486504814327667175068301634579824044159112919335244106123968867143536753583348691538910265087025543068731251102613898607931955619324103354553074932859914903433137255055857635781042980681196445503865271347422852852416551791487991236295924690074978070589292631273606471676115995915225411881006635889466574116754478512081648772496554184506965049833029025117117982044950206995525061369032528791745414973698864813980230042717698868815240273025308131733294681457723056134509876549440705531069377304135541872857623616757134808990414293931553579430362956127802108920160545628580531278639819025010656746741727436585002634923928094266726015440829254030638454233834026750293269258944993036432946322721547646825684430072053298559835479469225535281520539065077458588819460652650008301738939339747282493107377349560468293552615481021022157510946399407051630761440603619392758390920990230896869885342802985876832411285221422856793560440882909641827282102571365708646169463457876060819879305848575850961963240492646312433319913527979771292229679301193497583364477161404737854045458441384070447036091212337552192695264301326770737053581039946562869555948433112997597489260506337343327403720062141048661896310504532293813399727428269209344817078180482790488086658205892599118276022427487243484955551476237660562999717359467288699034887911031563057178945254255623921691057946578371887402320314041203932826184486636721405423370960355728626360066194228360448217311011086255119238421191631002990647433794274020935242867532804526856175703719000067305651659056568923202825763143080071007584491031274461743268186756336493066942757394461467849601638731380483010635313184539397412923091616739909448707754144030004305207827954698033070396895968581373222958624460095901016357630927903269569306372550795378762410600933536000779529357814364105931577390559275304313108176885985103886346312332466811476840187766065350878673874269220460095853132605169158988641208797191035471838787228140723622009550760955784031495072671095265829888662430141944157008934947430559116190491772492762180678928906746087497228953909945173276474371832818128195611306157652977026248673892316781411230214553760965645056072615872801197317889021550929434177046373821291371639773035620658839183530450589861815403984254286507476453240361188804246515466002331110958964312370470038532685163345291593992636196574893337313259625977904380949916134668827794975802527824805901378975026422906248456791696375225204770656678647956908349084327532406505457127867219775389130283754755510031868222542132658118212503575562182026250152808107246957540316239043927125200726011736995813806223997584093144580370766975537721653996922094622031798556377046083832185245678466401676623996070508552312491727620717699090884585197303783750827076339229776771124458554303917691470018148769546152047166857257681113719546364406610349523227275021296875024759534963613005509018337287600538418696897905932820390020758105169781768987773105394485304817393216709813477853029927680895786261163429190446726194648750714417692223871121187237758903189902885183742884366444073291852317824246867750040202785783069502114829260228794235429531664963135464838135295229725042211361124941616774659767259198207412280714691999133435338636164519041294285852652862971944865508394531708561336573075188217424856608142894117742094399046082631468160754114757965575064560671515249637027547511585295215704888704766469046559155551758341390512769924245120861256415853385503777912815863160335554764806037784627990151044893712955822345845939897888906810524016873223976385025968479598081817133318820043979378178035475116688979555836119936784585952247775317392696604352086256054674338789094696067073632161106192372359757253198802817208193898713295775550570620034965301480985859516083991633072307822409350012456834941056679675191734276399410139550555487821920300834290125344707529679106683976473869097710695718913090579224544393030623829583151843178444852011914916137913803983480783607089180341439716240700491706157574311566095061111999025262096412205519524552274205140618970784127743746652055922029839783133650912287527677642400792421452203842257114933197507207179056135427093930982883045488924916448996059481340544510447229344404072757053599763217446463579475096805555594644166253550439210063802883832438804400134716806860210521516843518582864541228906776070952717220671242338539697252342119934689865259376126419865246330654766603993841227551047057499692070498609609770673214319214358557335811794287642958201000337241958289128872490634477012615004876650816954426766344634519672780299488724664989472963446782653055967130683700009372446841689100392120891534144270074592367087333255045277117053812956618894505579127521277040152046057778823076863293871793440665027918900965288705814360049058712466238418635933740399587333506352244643120064004227067023890065334294135309872177918829651492275537630475364763549925639796381597791908833668338025718153434109477994328522799394729071766240111513260183872471491454112537407969932620363920070175312573395856994297540338595308985022538444409810798701658210054558221362367222347612658512363059709875300149741202615222691596302960072058891619862646302938286321008779307216193334227202552628946917880459750558451627495874750427719485485639260354636603891727134692203864894427669838537548911035613120899362266868032142514683315873042243585143542080480212314953951463899791714686632686423400720141459403692381510767880904968822835568667845760533143979009626324368472531550970234812346971922408204125793181839201464984141904021627786438220576350554861650409105369175784626680639863132860136943679336998744719443910777582694345567255765766508417864756210180056347256927953070106012919290933634271072978827953236460818292551514160264457082351454016585930554545489428268845293073298438132218931859637144141272569357570042242820672167861682494566309413712746606962288172838934953666918920073438887582586702188054070152463513611151995172649796419911658421946103810178679954598821238084516487473414494402625735877105249145435894840537979019379270438719867883307807585686829769856490699472365861645427087404299145816531393626983482439993473220405514752640765169709072473051357787542990615944703711328662095262127588495890257751555471434227798177813851046429492679260127460899432298995227133975012456235608228498512288837234908905085643058121294831720121641956358677633656610034493951172132718802143343400089411635529886932166206869688888061109477392174998748453681387024154534549816542751954232179577468160151964581868040930486048764538886585950198856782601697236491282538105968282988247508961879105601990142661678889656932352673558416207521824070029621835143583417083805877616361689169105311097809968863488410090208337922428061140631057100626329725481237067898649465070349787561954973502939097265093035751739538851439942872485471686277806109980047983268632106165496668274555780810385813040049579892165735681810853207646958415219680185331571992266742717820058863167226239229321139301594656257418279870738292696331753508607713150224423280234829201612134712136388597454783340175888579219182087188288989834537390467358698607556735241413164196156341548754890826189322794316915035297629417357843124916621891827632330816286831698118880849769768175811075824427073421136888953764893006354053464951135260058982196161110185211425264171132589307282848545926247105340493806306008038498854218897555363373208839358978756352168787068669318543398184871391339405711460703420679011869227426782561339315984105719473809897643126701616200699081546375639686115172344787701825704150772458494031465781380933847167166569849823432896329291701618103977799127623689756446096888458911301912498749317886054285313665582034332225020255172936755450657456812763926088104048950268213573535673469946719050139634895903880891246899788104137354373182285643607637805134715303633078503571243578243360696002373301201689826310984755169365246256008338938690215454064288343376364488077678021527663609799965753954765413644979672401635805368502839290478457968958448515211362590438778209813426458226685842287078272238572329013149844211543978993056699932513764134367731974338991012061027210558893796209049679196156236536611173682341226511620658611973249227716695198842648052015562955108242356998823566127452126988538808498640450409842402445920628039360195032042215969087220681016106330371916231431623295373862343887580950481146956639167482743578327997505685026158406356430822433888062698693852870032653713780971580065604560641418531895368129361870999507712760865283451264070516990264043652513438900286125403601353311228491533365416696597847599332424221477026175365932194230755060271802717364449117551211913836736514642225335570532749938534805836381327447483587008626580227044519948071260777692750705151650623123222129497717108677329978233518695452200041694717174343856084590304674034025871146138687247894913591701789596358518403599789369149970107480070684690141056182573444885649613249264614537086546485093295463030815518981804962121280541986215074029506836387705434332868011210434602039883186985950732411170030600177540915872227552707065099993257666317252393075149638481552145065270426228173471138817925102356234968987298261003107287767110950473942706008157788313369152366083591946350186710015394512295407145772988249779604100168946533515531668096320307562547449277034344459348956897425531567382737509457962973107942696106946860211491198734486489532177588759290305612004372770852098184650051580206324015367044518787960136950028107394735540817686023434324836244730017085631912771770191387405444193558974740852213970450612750328306054148700422399694899848541119189504881477270796368967338287028224973656780800224777226959008530338057612875913651066373729494991700240910420753961069039032115521344153751897477067443274003002765878065091990806778813456010713117742312570006841829186629099677572922006319362471440902937170910932269238918636449641961829959367164517789684582439776679718480738035840683900056386335880460954478487654006515013011418373777548512893857585023521051958923946353350198203070527063667067840029142729653736378760963363201238115604848087823590112490797054249778817806402306430265223872114859777398377570848211445976270010350804714869573491875739675205669909268683196091215121035703989953395743079235763245381011658432054225647390620197847586570621955439818510718616160931160195513519875254383086487432723898960091336440433924496752866095369206973949561262827898222942896435026768182574280587646076187884595921057696040334607374598425661442338664705126083868953709925123707936437460343310575144746778764415510807168954279184929716380810573891392726693000601917084290039541600492018602189129471479128196901397807104653889640317824311455630445845475263919404149010045599199072000941035537613873865266058479531105211961235470660632378287218191450098466971321933545896570664090608610538830465983505364917858216067960253965068534440916597632490734516395895480517332304386599803136675157229499077954750219796496405149072490630366142190634851922010032090522327079963763352373458015294289743547821182780089669041607586423364136405166385676144707177114499278008214174404899391110338369179434221176720331068014310373000916333839443947032341619448311645524499040173950119247642337336980551153358017941688353198872776280770084342863156443754073257246486344874200980314770081616122952390459543384407874129752322470550718313956330621095433489483277074992904216796167164696602049836423086414603631850492511352279185547590598863181259960782033243294057465296843675193599500396520419075549753979636894857638734937078732566041579573371246781688441043170969218520317710782555455323314169437981351361530030562200466195133527987853308783791291120296762685014213758505208517270860907926308263149311877022289183078638960233065897149334578033038643146200732832632529611155364315686763043615757627502417063865511031558495142560053540360810362690899712235914596671033324813507671676620124573977813494990617293131644043317350100423054070178054735362325828164079681298147438513701471874605730776658649549360829065630903033438897354658729020988108133855938350907493501328558083600897227978739754664476806402725727717642443265166639922138347720389882521545611759643883903237428999245381262360683729677547576448470083509651176075592273066152889723508453856297867365591188766729456972290445498144678697928098677106655315557951849598576830372392476730627008887511837266507892114569202153258089410692152999418032312371859123660209853875344607050393024281757990771904814784079813052287154924239605265400227217177069591746631749018223315846375005696757411817405330254244952050739827963125138925088821884931720752292560294467832934392523206987968939082764087269361318523629998413748739977778158853660992732361826311116975973526396692459688291024650534482480621235127202009167696110014891802327251781483354591654115880774787484971615797964705311430102863869042833677169456000328478092030187731756035953696127167435544279384134800627184087689305960290183340239600209338985386824286757460933945014286347909664875459889878558914095776267007070809075860668779141360698952912700730097058523138685096789560734305272600757698646668403323201709109583091398997961831128594724936011684480401332782012935887688070052786499456908236331714486157758604793455013098550054285394177319493641040717650771601408956367985073924027715998240821530971203453098948664028064398790298833355535581702227606066691289607249625129436589100045178801194792091999333730310981173227255360243249853358997265196285483197928407193118338013677608572053108844268962257975227003055776000508514492623466650987726739717676595735355610047264891123277198474484418295808878978259685814598596101679124689473617814939249337706485008874337623467916801577538409591246162397502898822011695584155863860390414751070909376342728527711589532921852026002591058000892114646302016994807320182459403508479523163638221891115202048509923794235238554272033193254867067089121442727011099115895023824310375324820582601665236387245075506492220058748553690829450331034053486683968679568288816080623055982048145682002518044960065552702734765318375227610331233587588854326748251689365669719248936261270038737271085278341447996072391015191843428388334109443017284123003617985898538113784048587086424777996881009056218281519602028823863071792490551853028638525010576250556788824114031980010106593113577073484450502021892234795042593097936768926233675289461956858696225278606365516369437668978930713622597135134233483129114893798019337968105957713080668697312566716152663763231056311187441596521235856328657500986938690052435738183119739035346449959201096199787324969751440695772850810026596682616611940725569425089140106536653989048917678517022240038593475609001872000720170082545023485542439130890654692056697749729955358442314473303434299365526839996948950644559783267819990226860780528849224124409497289647483038920937619745688452988785609669751012698674743293678236305590308990430337139224948606563994732864545069059910849678578245586403086921645066511716107409732229649919123763472728918622739661475693663950983027412857682946580845872556582640929402585659661949390690744967579261047889764929325608728153408067154456200230286069195888622594157832625220953363291121061871788518344931692614675303078103073921814244866937874884959169116663307044153376252769329870470158573267483546670391359908972329801957628252025265277978357591090743336103235869928328075961611508421836348127092711946876769011771712836061644598513447895355407328972691685427838823182095318810837068995589500179705739420997441903741979231537148717055229137247853206393286338887794508520916410081622907606844940147761013740257709272238004388088572404935330291538790548884587389289765492429933883647251634926101978947497938951819321789606517752618671568331001895668185769129970440187264851956232070668681637449076502108571362004904849617116636755073104517993853555288973746301126829616755832999165539331597019252952416536562111337530900328045604222996709877919113301996720292085096507860684877540788813023634086165803356801573560043632361798164418301462060055806889146935554710981125688528246895891903883191962071662674240920315344137379813834443180599903183948756397724118971503777877966796952634253093546607164408953039704285673070599203519758540178084151163360797741171737364814489854044669487495574182791088207459807927747489304740275331270793686673467794937213675138163771990021131861777171672352920562536590938082625422605334136106886226212581010759494400041221019805568762237048826682542124240854754269265918948041680344265828828518726916800830692004682614478759663391099377965100051346674821623451526848465321037721839014019352044314194788272194199094919132403738869222133917516986883033512087441251849060800937367997928213665454659065619293007718910600082021237316798815706000456661946803133719716712223111715797436415286111800595281364167474241613772286696958176910364856510059797368074953755225816603783271522086494978613185979215721693306648139927033169921397370466006018805681994624469721226496984552483708942738964620093167289802365770095928739128000171797597781078556216358362868177926105194200687006224387472070355460738278838766658538904520057640205846373073047266702279241806400385103629965675831212322544791077668354662636134800766297998169823688921103002061300196565966385938406924418914799762598228843579529092225051178056957899651282953289157861408446147396434531198341055459875044713419678295357950401300074576610270919485918579898471613781610182178799375468427229864227111448931505199248936875818845331861365110911198774587636023794594238693970610204589829216005388679978707096892501866718197085242676651463600541485922942068230460615390565653271318951438534103004084153727056619475375304072796584126305153564298708879935321564700848737450448832267426810382683862105667662732317211750907102939252609457107488654658027865615965039104161974058125176674146917897230428276751753713133203086538730663194780547101846214326704080658918102012026904215839534229844910599120119207999025185086445157747922157013919817263090441955922762213279751803189180152104034389206443096098327839146269927351584909994748502767158791505964077558920902956541633369639664124379772581617819303176588336333076499264026246273635232217624637040140389598937572743700599498518960048002727286273112508793496935074252453311548058971305279496093732060463453756396697054753870749699962849598662007419499591883493907319512327442252325311097189975398795049040195951997860006125027297293632499337032176605367039007400880517619905143146866202433871828459221084275839161420437560466965080011214663241452794340296766446363641263407081844934904483335455471569415361687935810385095477495379257182745878246306220161202511628096109155331659912130255515033175228948401211973990608001678728685323468162036064210935457208468879491212241610622023014465966679311324644465923035784939267948249415781256051781449005365879520574069338392831669399684133905324468416117864585739357335981373170700676529164504719881960871318287325916133337097510976431769906503700817766922808598066427954573309496078924607821375031962697286196506921493618324791271691435236092952422316610636520696913327844634155482917666136222175652395102909536812942006405956258292582296884596752682632142214746728592072646594040899920734189133409613159786921424175153492033525826241257227398601492922475581086493574210178155644025244330702494377459370410783285915814096169805282083797100730218199732557380932230100729541571837921118147285892689657896046855445896643092431805994515679965534641860035901591544626041547504456541457939496593303063341934295545516411498845543734090332451150801363509553279058168905161232658233826252952730660455953930262381347563860420485223052970479856647257968781928430427861796691895358718921447276853692033719478418955329024627184049223125475310927025113768874113308233247765525624731208175421377013221174836053033816770382620709450143450726114871866507268496468915655558895819299961390403033909923109528639214624702814739115223406802567898519536066542006633929377994088635302925481535565647028223064238680747044066232769477049138289202560924075905749952704001471257894538673247362469706503111206708882709429609856614862566171563760148589307010211845731140650251189092660606339579636026417299601766832744474770591343005069008956159638017207719216129697763578862570737962077021351448344477328147566055730054388546421266826327257633333028693901359681766994242016054883421765035483748616387101802524843817663017130132113986201110255502082945460757907863411152275646877221834743507753034355570429221500329746665577149907160170579893300600252298778981587175649204927196796183424427708102787570020226684771303714330248029966856815690752830223339412489093471917226480643383664469810952232186725559846228912930323137459443710858615415750077754625840037840659595967086256554645087512316376314478633173723859803236425633595027261317221453244405206904944259907481780676320404387827029603141331614151531214526386794989296678744530705397435080767795961720478214405876064286919030755326533051942694628960296941490391417451738039296984786071254409089214742445564461164120642082696327971190665882305985367536552704587901885187242099337451332259775122144352341931294982112201175444436993699457399023588908599280161408837648322604265184785200293504581729995014023241390572540923313789460842151427765988177232391450970797181490467881449147697357879618468217306367660968614015285368141121373760602395578127158662417595619092350334097765955987180769787181144524660892155192214180743387896573591836817328990014163106179600821733257317784548266780233649724679142061225777673060007822783054967030463293883822620645838335801087125298840308364095778784578811709768567684719734311571971789542216126885672999248975935573559803182397618958211779374568524881455611191570891738421743036614363031421770649055315384992049007160717430258356651919735544860345987093087121379942764495109067820236000612193133651483188811565531432417314950864460060429934998366850024872649059411816701923176148326030889375317497270073205820679366029210514603226347296548627340651804361429969051618246133132912861216304300429828979248774912942534325022521993582684979744206234984544257123917607277737505001038664900008639019830125010682744353428562109027479705835120570700945207966095321806874700608596269636040064280315260493606255000242062970136870873735841048003807611357409167302622015911281119317304579313094482290603118906650344656104962957961849668283217136086747426534118372333517558606986607363147313485277034090815029547650280588497164131094743481994586401394576572514634772809571158769832629607934643210508730168026586472801832419262889873766079396886125254821633507377178748310834372902289197929333001864233455779619487663992110745940932485518013343507161561657280385939523304454589744722202220683014147322856462106528073059085025853195568471508168817270935851166625435127615020713399504687273258202431123504319458728938669036801294761107353969881973195769321309666557462125772123810701731465528893480280031016709204249028752872617280855298964169622420543994238704273727400343947280764584368399489092478101175289177593270942086639701577869377232610195341350174741742792480015543561891519767063985768400149496934779836708650611464251739358792925171468219565606193168584732500659004658842630797542827452158563239912220187246329218626264284383718704954682469839923517931830437419668280754173281908432324886414018226757390647507906998388068873030759661585113115105104763183188789478955803796810443509814605211954911153382220768427447300199252672333546703844165404596170340856557539956881177747625935933948143447948652115671068321539297671653573776797869318756901863907629422380493250165011858570872518164211715899479653122794357498655951942333574142863157649385944438958461815010232438253202947559136817623009623213770533867942298653901589656808457874170245668048563252797072342645453421648442345692492676125805204961705656724415249113499388853481445162365251096225109096695406023938840411909427113857460932083620304969542278068089079886753655470930392146551656286043441310301084450562006148674938213952779141679936835472940916038281205054617838729191516484674077263551846315837623230785407853762325099437395048209845682504288759982654988360144344542085101844974617271448401685110948506801319582222269775348967823313119828415193519294892702836433286332033111419194027825440213972329751028196541886155876009200183313570093851000058870539165991985189642604925726963140611142347624037745001333534886533864156191840422100403596965782996084321106301126988378592862649838965319541702642596452914926658692375855895273799895138251867397531726376472729301876554285186263687319267435051862663422436325093841818232967942011897770415116169242810789304474703318087626233661647568873819038661675558910634918136552779829664989246092684046348004608475332098196953294206890205801797978974366101738506771823275225265416991523513617641654717187386887105449720026393958266129224007009803020420700985087028861953053580029212855402070235427278075194069309641095086182520098186852571056035091806435824520879957716303280799904949265458622573439605866986455501935590001652685945561320766661937404403306496861256792267762689755167352387341288901514075156304456233484029002082160856947943534369154565043766629340150956208032415868367173735396389488142342513019427792770239501630977153667380973394312276961185192550539324649927047288286908132627027519846056066606326148336592044457747454982549013443164222857717282136796664506963238912242430834079814845282270202557564632338487794214536012442843104776295004474435560402959646784476097815600036036115866543813839951187249532340594347918385161369406445789336014108734591809169612530796671756440885467788853439924178103878772416473860813109831159272945639776139096156181262910114895278249495167031329102061688542815350768542774791525043960907976544460055296212128146777211004970319624070347308105846560713847767656756102274293012262539145702265740165594920245749098881181894760308595195332058068390051460925786072889883383422820450962740386354686402632087471669137240378203688807891731788437658188973736151674114080546829321181344050445678246360088838674296788830485997097113704718296357176439953126693659583087301859139409991685224758416117111833270988911107259115571234988871747954380359371465557323206547218187954166704249560332145737476925627050144602567234053997799894460083131179407282056695631582812742963015608537608371195818088070480830438726175310608115896070326446279560334291154676860901987632104946883720670768098371479079040556926018712740150184043927684749617023135949388023514519212300965909110100048000066869385388453874134435200646202202298122095369782129489568383870852911602063844051846333251911410683872167341363579191774010113464524208704511692483534328818989806227071044433674605152465927011350180801181057772993456232367051944478217816722097489679290479071079015596464342152575794004600964943239039104371617705323015709356079820570274911074267693356033359933342684778758798064055533936508967378482666512014940992199422549844370141090221348193476483781222825033863768453609821722163490300174916072046337937802334591058391832491274936458865184895794099379222511788373373700127542687772631998665655972799182612435003883569974068254641603668177519097745443720767598160180607439617442906343241671191107360932185507229874405583043382585976387979477602344854844004290505106157890904792186237021278004871509354503700753370745919041842868414519474742731160968343037309977382274309620568674371626577491124687066229211323093314712408278146237356548964211702745281927384072822642145440730670809848219070031374535802619268001138594262898689698912009045671763830346160718296976892885876819710280472485243972636328712299989835634450650447355867839755142062415795847045226821923006473697766866120132117283299182934598968123638978899299445378188697704993348445655195035697219770557545523600496211224568129579455008059044514333883748362343070762374322546725009916249985180885603165963743959758804672666632019084643066840103960458002720145433942533929716600563004841602380974606222450196104003196673368705249478457417335364386856511957980563216568993979480018596103182645228054742127053015694653093324943378410286128553522768424075420747905750311625695413555096175361067931725822350376608848372079372882572992198464743273365272026687590504209865741465146781186260770143851556254356093890245942481315693710819416617229517507550050389916564237585181431758561974273797560451816602663641816338654567682477685746361994153361600617626212147775035050466192823265547028188956030323793730694631321822791282430496628383093589995861017442694418336074887687604138302074367551923663189553912370485337962691189613366245872156643770958697527877499435824464202910294094524496543697466958507783233970409699804182029295755692573503286156726113077197295228906193261203854001012936311177797722634465715972234426209412488690124896903355396760857906759004064824104858485470494835858947943689796774212620162406634397763572898800477346602371146681698660160140150138366529710170163651153987560122126325458876526156257790289200347726730693648901219545214920828524262119082426554420851772260607166800873298717724677607829077550402693182561141816414283107466917247786897259770913141045541461496038991427145217453056162477215091844695975485548135559163923624090771995670761143668892827091729482418641249827182120770427899737837517422831257035526950914557282335045788638270670981089321886303713956305397673149916866771154811124469530871967130277638391342296538539311062310069290580454294661093640068750534559317160674359984810602431594296044308130891837862885853496633278325020677077603169209855738599588898865528148373291284451795209592245191195554414054549621909740887558898122204584325540705459338675718679988844288820612829876875832886661595576982248612093436638055122165447331355213958354906230957354499038295406338549847483630066055381265611786473470879277944238763623231171531546131113713346331485190509222587977419453235937159541267814830531020706643932787971516808331684645228280747487494004176122808927194512981497197654325238436699837752164869839016324614739694744008732719898298362297257776766512276586087945358489979071630918147262663741201593555218934484125317339789675489969347956975370165940718714978865488286533409873763266418112262913765894476452869762888198176384687602893781221334969632433276761781310197668556531725862776861463899444755403721629107607929128304426219109078483567860383215277458523089719846830992607683933382349780082386262820376050344658558077276851712750711380159895964920879874819200783096030932095241587125072795847822989956937639214978420878340272432998151582709547975463125296182698039521332588501304708317736732511408362670485289309859271233018409887127757912531582069945181941717371808190261594634428120758891871871744748001322428410070786585924950723507274992728549600437141510940072176414639674150952270657483442254342356923333622264070808897031541504173144980276360097146001054272244508079580667075812042442015801969119275000296244310361216972170433280568863032724324741546593637095703625755438812948148945438817408136091186507176198995164282025412353491018153150774782239871228072322114399684919171695671037867412716617614814937888046980570419586356250592012693352944774660292437894048950641438262660404623722797261599194194736786461997601090597198989173810526523426608162385997804441835191372847236322048707212959262511628457847348799893415816676901042917180201255780882732106818751559041729297161599712936611756909276189053066803932307494975290656624751966102717866845526815232604903288583678316429859592032120146320640513097468298532522865947562514249242350515500948582166436497890471223090365186787625130928660753966017883408989921421014926986594166761909613601819988163943680254166892876882281564214088953412702697636548780787257523051712254774528139263862515080034598633887615163584928392407065243746285312584171811227507652067672960829633243365644126685770268711165258148306302529464334012485830384943370323584850374729860018142325625608567742336690366430299676415576199400457048858200849182342027613509059500795559491873337922125998937693313603945769176029724050629591754889886879928772658329251919803886504683055426383937423531321849988804972499969760219571572177937707729429718715714658626479627138569503459913319199034927122838529544148933374965287645485603729743038175278112893519015576346253338745162975993890054198374157119957961909034460651780336504527467865334060593711353713524023058701102142780107219425783514344513766090647158808206987363495700976998496407836469899950884914022564752540213439509530708478100772621264896481837231698993426617295009735743913515300042240771983688129681491596449258775501886732432598975376147665955188737252084702362339215427008637855502088395838448839637872730675690037095873276664220900435965032921068256840883834281499616512999101072649522284829070118462936420346540016318482903923595741491803055266013356091633605251735968854889170686006565349819171325884555718283889331675237978266726443364546944466838535219701768183004857374580002004137051015098866857718135523931605968156820568086684997023770133630328048193958359664825467199286530260880356055107585506978747472909145227239378713397254320734197554536137498677117450954186563308546952845654171515974741988412214195758303136100680819158681418992416922669191373567173147980174748613394917965990831466728428261245531099661550730967629920151801264818595846055141883741531461900463612906804852369179654566381855582987043789075794998093178904674117745151883481722107208123083409407134485027987026734315215747030427597712612338238825858560266886140655792006364071067675428160549819944257664269676199426770513143730959348653975092588713824237485620787292045795702949618031501607480855631645491951204279927594764082374335845906846037596453982822156937777131507553301302703781433177365644841926483508615626639726148196682048594556037703575000644291366586943660866005535016691236521805473619803982620369533290831053314738068333486722870799542422951762029864823593447443780323216631768591662208406324783592634643652150724799127316646786464175993366904230072760565744967022175146104865025083069939759934374391463991451116021561952267829488831133732335931386342874777850363198701222051399080587259209136774548567681482392094921978837633609109616989814798211569879032637489750716783138229273977916960728723484972519173308106733794640711104830584612056801902377046106281062158027092222715522682198312833690330100042259177206383893642570823299174814321587907839364781194961576247247476064634114880059830685534632193282919866374457043177761650082494098790558842321236021378241742563471621792392795150273298554414817189301901197793654901927017006286278208203946852133578437499273164864839399145785570754105074809336064794605307143763475555231533492478362513879493623769981100024026632948898491261276776941416519105393355257769178032334887892651463736722245344643917593303522303867063559297706790822547383907537236164245743937265365365714820513854218400145950059924069978301728787867870009850919633665665727587883743358278141919184326453069251926917813785692431048796064282863944561185642932301428267395406188625930046613031981694280721207922722290442417016189808290874683560519859542390041945696358694764433022383306469753673565441217182649939538773917900025481353883467918630676436564099238340321842660452793879118556996554895609616036177105317562989275733641417511256383316612935733197984989604063887348564041540454738338755953816238287332483370285965666866828591530103824348016478149007097339936432679859883698876298894654889999403520401892292632291077167007904048248357333564656561132213873592400742329057740811140878742725685593659526656376151906336989243450651927242954000715442966243612428221397154372306615331880629135575483988310442521827527417357916526749052711705661908998064317454036519952874535562014353117187279314590161200093250767964213874424129881589132309163722881729931809897390933673811627894304798968978435002786326453974357596456476628832225455961758931515150545524232335692114030903643932714715836000719978349071295236276894060655902431239417629743739573791971677794803965744151725888126110631214419872128647806512225927809596337233242636724904108486938674611664115018609516009211573400144083609757710540465242285156069492561215081132199295482604322949892649227004336532417715592042028529395506216390610033951676236198552239590703946704686192274231838628117944057041588168686910456105670964721029531138654819980919937364194387156411495834376552960155239556057473365580266994810021913092295273471480784438837094358984100220168129521558021705559026233698137839936673050381127363400019117480285296317574675140280298438902334226737052521525589846306501858048575154440041521399115153401010650771693474238153024285842018806701092507593614191189085295502849454510200677623074407559169457534679658293994604546908783489618185897672804507510294771860015781237273061046018647071631209457844491556454041289524499075330751180783509832714403191733682984075788023277866467069309702473334624562761455982777088896213611925595485787515237908354228320397510542151766281196625581096697422161625135074036809419997536968790737775945685210587851538937372132258890043650585717291511993792091538755220284418536717334533528308845292898761569142183251857534876370111027830492495795261140017051505685421195690492537500863030357527084658418892892883165113990698231467168516525474998059959835738309702412825877355669423551351700024931350511480599873256335952747881195057501751277033073203432780790928698313332659393340926347428599406548438538822612234690962038967335817749614178838993900426269567110159428430878415828536604822715363600142868946186533528635953021702880049684585233726701972719431225471793004677924020244945936269334184670310620269387019941981994076204739052902339127930252947640729739192516849982898054596077460925657496660703209560483922683838321680483993761033684178306244298920787219559353196263130105109582152990683840879032961725620554660809516458846623299440315915517656117457419902844095495523203195464447472096809459428744634017553567046683504926382792027516096161993675535729314522721282549320080875497992922004619627300510289084584846115146944860650462308675048247064407761431572784914936041978641664549248199874935921941135793598991375859954132535540872050779104692286171357617300506506787861456261907007539747859417962961984045512239439544574587240148388909308138394712356751570422472527852491215693032552547746632812032855875081140881319551972874694097276273227597070865134729304173973903951743431491117133145089090857387364625835964400309732256578797480903556105678083946681349610912011444341658440884103694504431643123775507277954731458726025094011385497406769849211371427273823606310270227400294803442862106032355658522362133732871407109079743016857574053487156359673272152806035151667098650791606825104247698379618176813036559586980685807348038535079585328623767595246222393738233122645638798429234983655480543871235639266640479978626119609807465851174931272487998409342002149945887027368702228569388925055596613126746495736753750167751251181728193702932221929932845839991192764162186737924522013100713471292992756822527008837498215465591296526951673079725512839453212979310731541279092769981966271084484794527763677489638679409536588289011621529189583087839626090880472768859811351511359740012215294399163042346613346472160371756129167862693836733493082498254813425016910614144268706070907841172194608034730030351456538328159754415488704455491255021229953520763176239931018569813397459023577647656655454488798817991633969445710146758753901931558349348474979802258596806084823415110574274891304598636607332872749766241546511941778021770680170459539583705582434443504476136593299676218440471558226327394780492065403293949306287082046285718348557197636282783578151264534592555835689891759142220092893358510566608338361534982219270040169106923531902483473259887838686292958173713244569875392266188582622115048072770053377830638534113438077291065860777991864799867957481665955608671828852825228511964401256116786723025461033669426597778727578737175071558018850688943989893280411855217740037002646115212541636550303786933087633866490422448406101997276124487884896573211216847209904134502519612873038416705499927481536381534483467653579330989594309731592600376330870981982911261085860739407521626010614019527824224983470362473404536369046744084838343046837243567341901783104736154891156748366004399096405453477234495441689404207899963418790840964969600672376707669295415492822071603122863733441653062869007455582549317417347847588887855790101135057764209928826896085133247777683144653233842682776905647990893155580574549960279687859304658399515658297993992524558305378590569116612545736588396475229306560360174257771791093966653190672883752723091590576990741105957029758809208834997410629357193713712662846871439010339610368824021052094252729283536109356435372494414680265227139084234331847309209478896975509623518142313846385320273821370113987262202456638527143303070211047928715052097263459576653737970583773074696396243240600136235319451427488928944881759932808110912967817850485328199604841806539007805876105971838397381376946373507251817254343493194957121435893477724469781683075068115648005096478116398913181888244183844520624011252954983192390074533612932729383816665049250156518249879632597210448155137006438931387813349157142569350447719085574817423403415680525948347590833518896850376157461935335864982877154604755038395050164705666198617814622117198083480623173226975374124847360787041427585273154882374489108709214550363305685889140608827405392213418057124094699028301769557912714454812941226728956518655043673295402951552792504352729325323031901348284494582186234963827023624815803128622565924138303079504577664660970446599600327472822503851740112698852801395490615026179520952105603076393601821402458500743380949538930269460411283839963763433049859335473002158248712128560111535472956501327830043392274330830145134519319225602756826524806525701237117510777675215562019969696424488405718169576108043602850656115992518948495531624033083083190444027396393428606969685995029621130739179955383666582496307165687498334966122915458751425068943840060785249241775030358936139754711071194136268129370639116927422260760262992095485981385084793656224623515139100365313962161608433735051332575239756548792270158770875910861614985406257089627627094541178873963446880616905787509754136738820757804453550785493388402514764113687684728544316403300687282799458480267190922778353651063949090502016757975587222636336474066885948624450800881826099429810812838865189536496801469245846847267804935627393913498710194564468063537745978813916209419943413649854249031872775091230798021000202685015769081859760461254828902841108429930730871446224645278617024461999627579136529853817651733459309708708380933051866802657050724317426711748036677138498824786448758855574154901657347213266529535956480345130440010848278495026557042829875859117448057633220644835502553134497586943687544360896269891610572688106159362788582879201821901229586644936204835754053344287373474846848191932670535153387360293488306726698298677225507848996082637088983299829812484174589749895129414784164834728764760219369430826478596536888329750702713987077281475530912999922702975322561006240940940964626114182399335385235601682351192422935918877339537636227185198576307110025705713440785383408009724743644167406644867192051463351225829700199651865773175674913379828355805852649334474743359433117809354342212211783206115555567854035130906887000336496373822041323031960204471593754965461725627160057976880857305521419783451493052741279498897393896247206353224519423408067208853750663770908991967425629221541937862178478770310114879971264379566248468244283414962994658487418618412423340510372477276598870195557404882105884709349542776451538947980795343620350235351004016525610527422142086521019174331549490006357321802502179058340722705567271599746656317925791768341877220810133805941754012931041910226113713818584328842178712960617703660196889391821526652289008589151696292413388760858677025914710666085412832783894330943217222485258371713133308986246894480389163644515188025449221402466919249667933963742874543514342696863364074400535492593982428547483327964757351794342029764235851978924852017585491319600705023463816198417072389757858468230557237658817810481387083703432086462795789643176271429170473389880573167325593452724970843049321555852652940189908572504383011541096695579683029104905519289516382889679457177028212825885834137756740173987924396115669534913686486605509836925169998958234719120601984707632634065099648532640167440611722369035114128245675607407724426612883230807429431934441038921126886265702364316548186311756537070912623317333086786319202987626931819268047974798521755202156249491508090022153270205841986310995286915454948411214602441861634113538768408125016615426998346395758275682886382423258168479988997992333670850362908426111623849982819427396143925528796476636375086780774353043534929101107185802709320363675121771440943147022638181672028824747272784825576283629626085827158479339313009172475575203091204877135930473909792353257311402875197621752140901476825749961293504250387242277340834468558687830115450099110621842037950391920308498585305448982674371744445461376827943974103475755023651923417492139749164544160325825290295435199788985370847072775198023226567819448438332204359343356458490499770974067669519076567592003920537587052621657746566057954233844030545782989281761386051647201264623723245665489760303671449736418016502777996322359551555581526828039132948984529814794667186026345435199881552903453175799240538107646319105029030102894666278648949106010280946760384933111307201053438230115351562039225273312741886308867391632798362100645093662450749607619060364494089996814770502470463297764928359612254235095683135348151839485407310165556891809682605960173533946189646838666773180803089057067529271715968437265504438830957748657842179533670997994077981591729108159210163679636753889162647230459598308498868356423332305847970591830306461819733252008373652120088359130483215679051071409235166503892932762559703691282100922751581861341592391662613024898624192534146019952730115131067401168713269312342422305968456170521169679111380854487840165857713158544728268424590007472441909772886565536075671036987382367013209724904668083662062745034674593139709264032715302023768169813363447500160125606257501356926794714235539746913804299766268230191144038884533282040869814246677394738556364938153094711522918892794976371182702400238073956726811591314761730631014582142835188273705199738284748280366761041305734432019226086935480065470073440590588851683165006404449082633540414057599882516649966615096867170150262176580050354730168873469183050698970982820472233160784582988249709195000546273529219866279763451123549659247723538817333187237808905005974162875788759422511260078909131111225964654405451616495337733326628395236291912559721000822230494520798629266330863196069136618387449397684279528388712846055936866182450085650826594540852667426580253586085940089200081571275438180960607676985225305750574756048959145566193102011579469605476482630671939539029541045332104543654323201940502833195166969830552002393739800848825273357659477319865338442590768245920585223183811751706275021281379012973342822989100555126359774825299256250839839724204942733527556127012383191133743638479006284344030644209648731713619972933085723314272623013698641476186889479015930147097586327103732622847208216215577099789118326644746722261453352086986787582138149523622279790569274064549129743887437111281028793800445121392180466626247443122403600501770355569685255638409957890206856021099597808966220915188752376083192616239876146703189143844610845349724746338545473980570534444606116862882021108516960832653209547489318372910045216950807453310440907668434571901997861793226396771636262044926537630705901187024428574263632401886311353463282644939057616484087680551650510349193931664276931279927493256886031262966073644752444522390005093231860196401082575101940012405659174380594129056668935838307670530649308605077729534715319573702975105408131671720807646610126620133052252019628356406939594928736752232141001251598332610455314728224221951981039437789435424473252967759709138265935076037058832382080324830486415783812004497132025246715744284695266196216494302365755556101190505769065940796630263007760033480799321251264259538290107645494348811399979820256141337158858629389396114916073120553151243784452108422666453599268481545656424507992041766455457586689107884361123269801421611773382692593789548958649030496682843173066499931028182097264641469750814029067023298468893915971352287081179690235561850796025725750740519532854201308501329055362713456382497287717843342992211724930456980892194242103397183679607019499253712484835898702237813749681483382904768473491699397547081352901560426098220936946483486133999628402977932249210071932086726190822378386386996762622376943079733920533538991890523945258134892778170267395403534312146528834866280662765748469881074016158203891876726518168849974761808270840451621571014289669832509540255918003600552773784445571169386693943812289512918481659763706257751041839090873471476934892593028584786265119643085449822288003721010307611567995964516920314007628503115242673281803432481153663868890339127433147775612972598556410584380467425360737253463685010298051756869145613804112689600308199853791157302763205064702364755659592631728848959866285735386788577843982014892509796990123829443891071820358680600041235175309248121537199763484012985704299676368502079322996086957886658677722184291920408352544277448908505852633036060896844637516790783034723402675209909855892085035448629431611581136359958155820386323099727429676906055550794835697523402588881853928198647947076625012356515129037166329762258905206639653196710976367293743217245953924180874227024437140561384445706829842627763573390140991793334691657048155100834680700457195255329874152370482085577974470834474904586297039450455758995264726846887772720041530318662212070758511066257405685565503688265586879944836374829189933931904482094628938664088264962063447269043875784305406719880676244171448559918293313790562514850512309759626632541921593074262612009818584691561318282035869180282349222653179514827674493540431575833419433159103260620838071559014365529735135365263427933258163529310040558051172707064825130652075901454901625998202722377304060338188077406943216261035088789084210987233575580724127017757883512575485983224931153861608689690491214864604947574929786354965186236613690612778829655207021384361714859411712155646779484999475953360201642212365433969822484601394614354575623415981423479822208797139312983130520477542024370973994174403154045988176934116698412020739996293293070169667954543125319833911891224377189167897924261783481299644962904867966458707157000630873409413776133064479022356865678382476221764426683179728082236155549662348723124503563295743993914891164309884398299532745709329978411007680244072616434778317303096760238301108529924577624674527550070425517881738959154165364678609700619782957898357826429419195226012104867437761668012574529747620034053014829065662351613227546719534464410713997983327234350426459122789718157750737019493406262816996241526506330142216897067458342012298413752618403034451088892090879101005941145818894927641234075578179837907440226165424450321999041866140703180842892104737373552018370370947877888138845842471192279928432481489340343800751534159622646497228337249585256991947987050176706720879063951011262161668713401765310866363984701736901478783857819254941097242677375608528227870304514791128510206353710731610498267742370749816569365305472317199245590011694003668161148244390218095825942911022463893559497088957709583992965612503236854268513340681123453017464304765248488575578625947392372777080604954121228128285669186661942674332834863698093172219877703853491868899759048229717952300676817031894617028460531844651977597692746530712902907134123205563181215466080457169844977033855637758804271278647742645953614554737144172013290862937765962169390887852183176167917411925931690160823318577022944838068855975509874241671355633943871041423362710835989527658723278207287387294831976374546615854141204944830477625793636493277862938401736475852901993996953173315633506331904086629190183993187046800847392961542825399842662224652182615171146119081546177788550009824686618289346557686266153637871593913391353525222761375238422514116406601076748138188403520024878729557258655970388200745587103928805485882232583419291356799963589563079334366331216966867133867013800275689167016570796262789224245317918998185383834119106180549396054067393570387157330216447004943141204123122147246930064384965916074480836707280907772404347284252778055184385277137659509357069201984115509488166265067446919612510723179062038095116537321163744458611199702086536065959422536434545191125137523004588849412797602599588119480047805811607424862502007306798691893112158454951190112014415000634084872056980631730381331173426475717639576925909084896173849051907078973301484904836771640607618932361058350524850611826403353909621962833616259460631901889475689606981483644455825831216103037698315899122235808494000946563798855767191161842110850158643998346269458487490787679297173591690602898198394437037888593917407878119840286840467159290689299386021387852777663183392184902142019474723133637972334137782281795186800107550079441827067454744609383315911092045957350609116979323568414218491440991263013985043942649858811941128192132841041441877368509900256256952327009868424232632273561118585440082061991325994417479393848901490157013537808700438656622262729891042570676099284717211641980474910068343918846600469421255262882868435604466619212323154208739399153816451368266126840329934596465348385150933688033740274813097790990011903597648595554236283335151752194084426265137286244490199669138704996374486321260397777163438831982612220950132325812961223977725400716861259576103296712316202941980432273984017726211852535124787876582953924914197525953494707054697788980462920060023167731021011659348331323102254701737212011789453719903545487178417798930840476234153119812193455782221810707438221630648298825926173784344906911105266742146055201727570421569320901944827300425712097202810086915992214963272070082310849003933609292754584851688493315890136069810269784985449933383212329717014380985217278905426939505786755871747422600029420866838233811773418972144265946557104200683118198957658626117494596523376297061303058257039234912432260091060021155944791490851495382795692609549782247968057031407018930121466145101459506762262285734061829836819087555677967422578294542080628661258920003695175674722438974200174915173229922971222807043191730842745776487340293172911738320624116652800710311528273503683716290642753041590920987182426926725033482628445171111429697946902722126764151331587501292648168666432270243279148567419757504221372445189820407121171518258834769412494457128602958073877457695432048953962869539815139393625001161558981796408893452720948661204767469923722408155105890559869809838868190100705943882627477021713010616863271696871090014593748435174694534493308891692804038669915874042881751141145079605633570732062946587082652350396758009491140063532970462731035007628330991076937400429396609039857763428722624119177256015515143618815074258383712941962583933000629567590179643502352055149239964693982439586364100196571083994229012673225099509359476844774057695505948337788988639094179117195291571011186426448426638463847907498114775767707129657153223150642639050630929857946969149291918554481244335719622762587833148959689362252855212850674799768356562678539569052108554490463699623700262237578929286390031516687100274370561947437584891250352474719023370411526208362399454185310692818165701913990910834591042194591863441979705787993563054509416849258269607178107901667570318538920007138560982019620002432427137193395812071325767853928913047241347609330540992751296315767118960037812618667699876564136700664373196426818027568871049519364216376634904192712046941329724814945600495280925100146359403553292009264342012594784564715303742286867529595062998321385388708008649976358607016729031256832903852886419956351068516511019827711728051616148853580201998850058633796920328584244172350003343929989147524870853791322404479009819519983409237040548990210821816544742415797166889851716416595781318370382660616947813334348840751476971942057151250307179351329922330201309391977110992336326246183971200106710407250343243533297988152543741152848105608286756600689745557842649992333027140082143205888203894763439330721408493228546431281657518248751873334624336426710600476387627821512132098665575967934118406733133460813027422105745080834125741168029738654444000874882492166501209578400060935736663118058093407056685967515023721706377550956928161042428638019523792420095777386971948295976163247254536680715539210462934104266496024211145315094974380832737842642366848886074437622184406733446813929192104024206320744436780659237817767913250794974391924722921079230010667286835639587473231461336021676070998943951526476066837594177029714088350087134098994879962834485730740862179059676235016459403604595616178161185088767564537600031774956388940155553858029354812538166895384527649851809766421874206890024186172076711023716965313115638314464094652795489661872885019903898392416519464296666647548251041650975577407548192035314874685371979363050402446012383512817171507554529954323460315110466309595361545573138256294683186908315823209842458446557066943987682626536025756559690856748010622954940007823787286631197823586949779591817911228683871658056171222732726835058676651712602131519214634945609500016651749342699748156235685301068111130210150880015894418561208359435389388979317627311808773723520623013520486959985112438089315188851964034293220386203995792188882143340973847064341675128766246294283980681609301613673046425403069589912717457503248343955857584435555946813566667507999005135423149493868073786813076429607706327298463915660693404107656237934399175094863218534465161793706840227599033225458265736359112362852631821567552222129016576575534405539045697123714023609661380901274173305441084850640598962748597366508776759287549549799987184035319218299465411815804036863110430058663679428856383705589929215427027605719258316002455632081230686353704984982249117175411396973691948193103698736842568828996610955930155902789223148795958967000617859488432689611174500234666943777446637751196152849884711969506351744855110327745947422202001948341400676649924750665004503368714366154985565680990049877516335906942114362317074519858146511152961926486889096061872928568173651803945439174898553529132610312825776336446248144035370052586033231522809564166774959816202773032932043171731370429128698125095548468853833496836767215496210066598685527372763452984008192951313709221540972003818042078082922954585543203007665991324052093896766484382778286982265306165840851278534037036454462070737961692295881074280964442420152621288284069853669190815214741323204707285138505785590823325574205399823277967752103504295765065983538569684032752583691495188416686685041215010334401204696025795761713540448837625595621178103042488585231304611137102303574258525923675228890584123105226186941186190233948490188856929502175137345064616263250176168401277686871022638996042806885381227398352017305926761860965646304439308709902615054184031282525783696904710652281978742739580663819184429548869499546582294277021838574541520081756977531251420127109291885714309582466398464795251910017901743424683570070549890935370744552837061186146169422561907553775931184099007823216106350326229840171905322755324537176328494511072296033413042881264193999581729581949910791405699636877979141358963568798192505402314393804573721339131036507268869613704736279954619021623608101047213478019604824536367990091424367901784514893520067243622858056844568764986737686791650963007152203648335657916013860839852220431372425057319126924515495982205313936155761896406716742825367389054819897873184850584839284707556819956384026871489814293037073034100834996214451080151416003845425778390820554190474859289929639736098559889869935560531113238188714714322657327390355551005717259549432758590807305157356656392990951675101015018317848621876202466845651444626229459380203921103972382717840950139699074830323086045062161765325329549835093270848081781229108714965391734445594565330233946873977668225609232441322579089139398257329570965180145413884139346964124045598052489883470618089157112648879437910836729481316180822132159592926120512279211837763687688175816809371224640346938748197583245668527415741276876078199795304748146763603747003797236317276795250286126751877064938743690730246049218397566789418440377087802426087829872396932421733527763214323946031853304371119355835973822440855923792461123538384381211188310258890402065508366508825278827563835215560131535664535513005127730939653553546135260413578212592177539805265381554838421599849420497661084591351632159482037369538164932249969805149138419160606250179213090996111247205985554462682841780239784151208848876374558006701495037518661719555883359530727169805621169918073519783430168681203964391694957088146156324135868477476711837745376909810260109884900811484408404080578627906331716489193911509872831759311167870744705080385260974916466846629723371979437856072088929845199324943385172700061318914823513751300660499298283076764858705054039701660619976436895183055047596752485038344259470182239267903276543384705587793636395334768738294453039332703584624777033694083318307061764877233060763637036016139694772950915723786772920109944925598152698233769861359777190170997179978928941165445071841896737710449253934083750540735426460817876300886248567847031010378323296032763827407514977446616331036145100183971388587819963905336586573508043961317004261438119260071799122224431812970008292622288353671515890396620220172841590276040928699187353814402494334146252893562309569168854367585242222844592727167640130245977929759973049176903425870446503482396248815885155730111976308707724737012298217492461126899693069392781262352368730945473207019841093965937146881255195027741920577136920707310940765127999507415245048780440043307224143540232073513903840429867885139181613256673987300049921530568972964606450530391802983215963351540563725355928297514102942308770623516099957036334865320243463051222390789937175925765951451051465881096560559957261349975770009715783850383937987147541069598602549670703308791612925356506407919433038886079574131546141659764488553761998825470884360729510680209646345429205125010287379392505369021829671786067918579733123515967801422605783017124067213333022935193709639877981269681494676740344862410770818373588029211732126234424257631286562525659322740017117705634114667699378272348935120124434728791841721760798135054485351533700401132501837458822268154181543598408519194167894923724036300525270262667001696818427349384136129683316187600009320777698992990716923909211198776149597382882227575562178476835099434965894018844626587372240239105116891049184102736443202841683151665277111007951577526754415369758494529885343316679874999206338513254497097594563365035536143345012861310113025159268568999641067308183717894194320430453344038083933414810411984386290993871123061744809015588223839395372448335947059058692341803342936590719034781479410511853275812415450211026924077581249908855910866551868646274204247189606608906629907440256794763385934976404496564252478023071865289079030711027685046167578315074814382747364731336065326499665982356021184834653580555493340285115334502877349373019160107312544080267095425469281264720367273605293067199855347525282866485345023910410902182442209888420841534498681395734406019107931199225017453840410854227088076196144157439678894847151988341510142859972961217565534138123458101471161555435990673000136513760958469394200591812472570170880290062015254537657984299701787266299737139452159015571238551355673651135181743284711829637265019834939327751948059751357820435461721024716447774514663165093900536579176007302440531293904982257835847302772159268809302142742038716737279515425847229809598094098741089356159036217749161280386735657062933401830450367022057597671171714781184614787650828445642343870376474760151714864509272592276704208147326650027539512207275135615293799828739844409235221643228315578367495469285296915580956449384810674388125095713197782189689439804930015766648156866106723961835017465336672224419842768385157948196082579900675244668099460777554868616351313261363830751172946360742902559866030545563439223890639610206544112451729482487145898823656199775805615573182909578995505000316055207651965175732733327537410073885201323164756724487700018017032018151286686829694456593206128535301306003798421380849704568580560433621814739264978659115864978196128876678497866213481745126264803289210326176052798026713660456761322878964121712740089049274319273459408599243133897232601609376489984483066760069226110878592065105913149384722470386394587982117384904376219834725468946802007652341608325844416870417585078924807221843946092687160521545271160286673361620191635189353966883299816188748646180137253564755413524314528410480973040025192867129970600808104212728879966697687814622940294219030184500104736759633933272729201583478300608969786255451969378269134575806680151722961627511218574760223660746338958269733602525525482758797318830893614119390059405996167433772781846103901130381030901708306158423886134197922712025692830501590340003409549647687075918442510812891694670724016933295143203779608355070006653456417340974998580756134916444056338874223210162792583177002162621728371308473907665313425283528773830553656704040508226526046052109576421318353943733471495174729580700562835011417898719436891206651840466654721259920633469061810374186195684656700487375192740718883483842851708744155937051690970848971890462994264901636472319785557458717447209119067143600113006277824572590297932673392263652973791199407377850280922027652444799344340025609457351541776973128651429477988896492272630348912909181593198764557243049725577030497805762012249965388581246658629825362118396029804544277321780592846920861874201998417845251228828697660440541886862376821518276917672515912896837653212218583921271688255831183833316720161771142554473907381397238250961039146881184028360642534040580268649463622451278186604132015304521690130596264308849947134951082578945418846390341865945885959166259730822261073190439337295397357504761687297616242620227409678102127901895124071091622824946044572649385464655328102924009268576173485566530527543367627964920220286598895451630220886686834978502938078703921340295069476892534391201827556581506904135984791454575810645090021372907613923383978462535247925848500589102469026487833928984814908749319796891372230357935582350967482102329204120818926807566907450142110027932961436181299479068599247165259830996701127455245439762357570097308115232847535862680699252195431869091761641294722402653144913390136881144856766165223148585990803292484058553614371305447742380819415942529246711037731717655453949409480303780643585860401154319861284962397630321517692289906870022424804321801294201508137828759458044513891947940879760960008460952851177071283196752869998097594753537305691626186664164954188264291132402004764593645895255888910558339386408391230772702982828906268912961326379469038035512414221355699329368960087374493011171343285788245674889292015704704446766286112358229066653656686900180866471089698403218623769847561980844384871781175906709257754188749268038860446829815622944104428973069321142341408382732755767809120440594127154167860178286359274920854846756303062884134053125392956393470234733162142762608674839291756933933837541968896904070462353859584771907199990538209886133706700305303094247166378142165118480237080951188097969922452489871432202616071632135139472599312771667285027155342848837894151762865437673906654583757025806325681897075947959395293782204779724953606861982817757431752951934669088639360525606912135249589607812994135333783532705559503607475200956095472523890206469479462116414069388696527149990490173878746511443719787329865107327152510644062823537309756174293862868507836542614766106971591748321051900582718905565744020765693782534806574049957915752159723213151234497771332271164824879740413281172046604779024541322357742557482670105788174791697862197984933285824267803220610437040195602158132078658187916299311875700223480194166484448614181308913843226411267250440912516911342507672967214672025683170489302566339497547686398401985651912226083528665386097100037913218310255353939114317759331687166997660906512631805688917096605410368416816952409542092710293191759393960982353195326627251438626131184382634526538895863382032422886844686076566134898408756435739907320864263448692343450438398945058538449164029330206458757557263124694986814839647721001865679837125295080572940609508331716959761488877364678290057624484660919567650396292405181357086866861605782821700205132592633675874630975405851882388976775250736435140909437802742104040500401265536012258570600019993276697929648807094666796080430203720513147753330734479302563601621724621886062494078443426176012110657822591661717601460408575512297753115993622294771803023396158232922236863728722338550209273142297861701475716501811873083105293127674677350941087195148853495072773904021380426639402728687632673552284164766021457046492094260687953112065133974008954996927138703088829669620661987294694362703864586816945599392655229503872863172491559642536664994971207817147670235937170140941245964834112059779294444940406557925223233520940489908669349174501852182952035422466969174775147501415681201455427718397557296714797209153024598653844642926644088841340315723898216913027633140963630455857423321205243088219623726319975888863824444702051243820831458548741793833738562470979707186499305001775464706135832255779363824066668407927491484960387911065683727400371818852190076236472513695285695705396068424017497842830406176755913107897325544394761460231635856329840495673987449158608459680947734264064478069859638367821664776166363251899895025850036671958789766605264044545676354886252128439200295402202274009336131223432371315502591737586036653803140366206120083680800935828562101096316969828019689434968633792598933954992226346036569735762284232679848534449015616391859156108029066418967181907491865532750644432503714526678122143032318689071610756109109460530941343258329036961767249298470068576733041025095428712017569305502497587726274253006706142466341987744333932923710595222652017669552095468426496545010131176543795052579138735215224185657214136497221760273820225683929785989464399877499150165721099906744057904994928654276363329327332541922780363967828902257259564497473137174655200386443159953539161078868980943651774109740706599680155368523212520953505904013723457456384175056596004488155396622392882632495037719306186731897409661386815551890805913698043230597589543372818981887091322305019192304160476492478918950305761899592642504264168258055261570283916306968539727443680073005699046622741124929778658694451028490959496984022457773631401817405526804976467934081664506925770609245580141138729763296026772020268646999336354366969709260086800209709005044245096822429681880703841885193006149174549986614564982477236621828491497660253848491419316051642458670227585187675561507734846995415893724964082879779486745590870805464593996763795291249230602682533606497312143333811469046015984560544319722080838676427825589885939720952676903693347049586820407747380284655951288887899873448024904788097747774267606258525799681071436965179131920494330158531262692698701860149533533732478417841741422267143469935981091394476803469523189853607803810550526615726189206957660098480272932935284085064023107365009049217177765285851693446907690182399680847077947118122072615798215668009651535232967177982693651936634781343132032187262949524117909006516799988607652246116325800851994656275710830962480672542588629007235257118688084757302845103812561904917551808663899423955554182577186412732552391524607606494793185567468958733585445491166603297477148823172081346493862100076486444315798252318366843865749496515567679570159152552890370562313978083297210219871932401744966536317761981651573838172039565073272223897545846255224713231682305973026467977042396184923917372576589720694007076362301262249125907268091746121766450356572188331802632347619033675138421541614071365534046816571662735706007478146819206659479723134106416796620390396613851270089692315234063043740479506039882892448894416354860942630549965433879511886256100474482408148925951443355305191986074386985659965985580145516334129453039366438164318799499724382111015634525197908942518184584090953240527384825160533850292477836590261039674179857133593100289881194567938139008101398567835525916504149399550542595309180159785994411565080426343463251699397643926517940105750398675140350052886930575761844027729423669197937183361968773440091400913661275433360624307504762802627342401158085335838137520293659750062451913682051704050418053007068324119374073799512654167846237584359022780644757239752386460242543939814118451506740867205805625640320072683641929623270391876999795964348111512372489052439274663774123974178585966616881043564345895500837189809453989513755751766157118039041520185838312090906427168225126153341338703630954576299187134555757294191368476198125168220736518735271761592696158383172924751364022395585263947238353169735794242492923910958746550886270158214448555489735394326178434170802699930441745294110408109471317145583720890998889513008659098329655390033575487903508997954621506959636812736538869906028005792348863144934108329158765372473522847339262914743969086495890636277436553913052477737389173279916652202683639590263702044761062014109687037608077161111774086043607814044482906126018952629377387412273549658556088902092137476521237056428349645239932545316127197456486439347605557685778617337375641814937044956340189746895465443461273085407019264311859396402895661358043302160131638214735591969532318608316991671148752855793836195033062779993946647273768279460600616776518320889104744086745160959897600998837472843943959507722026196681833965330922671413831972856107037562683913479623038337609617097689304749835079327182652918487936679319137935923772561155937526077629836339259941317625426252248917457100357844944657977468585284689735511713007660901956480591156031952313161581535440602380935496647357518543930006718401822765393166784369882902849528740276199794923902128296913323004208494653043416201686540661305650271825558437158171820988936879109987914297979959632181596625345643627303951574590738034246482002750053629808231314320869372531070950445520507474002741092135538801144967887510201799454667253473147288165118874439077773437820798067533957007552376139425526128660440226625202521622190836000424863118310817125925691681358816466112284817751978281809048299672526247517385835774309752784788280230096956025454676120755759241653478872589611975266594283014745564666584607423158627565018826657223387761216713278068701648478714782548803670282269799877960640511727588273501414291141045609711227260979519295467704420964492959464886739784732444892454531913138476904469116353264154527540160067008615553408703635721398844219393020401466805243078644265828880488294960893933250288517253709769873035680552840284235281131216654565678856659087582372357384955780606036408250857617479786854581029065058971276561028387861141657791526957203262090794707231593028968740077195263720961669090348100956671262461822763061984290439801794314566158320901738958342349850393833448629214093047204769930568143997623946385937605808686793309193234669886163712973342147637851914252776961173777055846432812872550963320316659082827773794599506315570122463501636193923186146141797159918410286612715413913118005917485102982896200424996998774522378900797340823448859234939376338647301664159677566403315238393882855418082486839527006349718848292988322656992023658267601951348518664869534295852636556852008879991712614704205628782632791418771197783635771426633940850379961681915750589281985733853953064001839252097374064940480949661302283277446990555188151520458990194776867771212739109485693914577639332955910211772141243367088708523799091832888715200786876795313973002151683261088140414222335758503057213932307250092060857055875621075274896233594880133897040804036162516514427664687896603381849781092738965466332577315909149380055941700873974469234813636878141246209353141230407934881235929330524417323977589853704502732912061499949883578131349074034044974221051434231660322933617135476148912389116289763295451019289635220426167896527540606817402324838520640124747585100417257169417580920501217559520682194384137575201642486139288166021652381516129953124134086736682861763024771087847602157422048436440137206660546674183624337364795687026682673994515307349746791256771232089652926085206491499872065110278181820158332029108479361124656081732796451348371430553022729547310396006480536087429422469895533126505775666192921993526327724984965352114837940689733313728421854264032271509188069339560466171291665715670117250160340393167234052183260953770712955131797562568035099601257365081150863089379921169154074795267672909495501896203658720355166184467369844356890467483571188368274289509870026923261659666270032343399068925672234998957487916025580599883143561793137995667228391727511883490051596398529465687750387328252056786499637991430509439299506303349192066061527197375722472304465213983680831108923169728117760932768166910188190531350472395328677372241401568126252771032780772072321727320250240333602620409459909715450355409353588116184103276195238007416541110704397633531752517256842602142257070485638594588735361450489300476830300126496625831036777755956864236146821973932366427826526004546909393961719133784631431670731105377026649262981520020959394734298935464709705208305114062029248701545948367679869592845580766687653948105038998621050710145385761766520770474301590982722311480493593561123221158773686210690480092731765947726227464807820842029143334152584845076452263387830531485415739228180494096425496858569396044597242737841432122220461260734893806923044206854446318129362706694752172074643613014815935207929153210776254298622151397076468615891314149645730906204584785535701542246521421968346207589131611584286698852152174176251554956467171359742338125091103991524581593490608921350334888722043552119469718334948805897342605815024601566804519656976079476750374330247222165645569159462103863500728497211271240227079471196643072146127415807142679335074374674176419959750224318438710298379543607279658851447255591911897653311155277385707304048087464071348215041360152322134484865583338082130395391684237432187693369661723814298960669986605177134797897389471297099251796418774004105120037768439256164183144356815029864693731632616296529093968955342560309666121385275562166792719057054065937007771679674986441334684890813913078318912959601081468620024011362165350652283819624164407381066499091796652558955766501834968281496859818462664666769923478640618332900411534337097116595683123080108691095206216147747467400414377174682603966561380392019320039524841495372608162756216663805028247918823257379175445872256201216352352596959286939682248394731616698206147578430440710153754454704442267609761518000578421620369473006362271686871051835597989644996506725943906277469090137947869440853963006197955526640913760981544475912290833163359287184282109106749963226504107314072077843539165184786767602950210938325461421552415928115508243088417621774614012313915785816723816492509706458431263265012479220934781889874731729926757450552292791355673699980434798989706858788130497872677515003444998037009991163316352898103501751742158198224729182983812331391116799386076935531706731883247148888905339964593657691556029347396025995062780002507193329870335828395861877259654572743831157041308001787949055801506945943915942225724968432384983350042816338212577748879833293237232014247536558147480844402468469821390160427777261966870307401049064117836980635564786149073279174498688358810082524826372610545073883135856649310073263943277226976768438208508115443805777693700185421695390542505847782980794484466083447470258126680185132244444143474714129732021088716143395488202175099649640922899186820975022388512943823982250155703376312038661541373417035011291205214934265302423860250822911100926790118404869979007109317668765353175027277438563758767236675493894729242022605330371866330892318147259568753143319518822569047374047587622029057159106096250135584147633514727520538788003730510336032847459176835632432788320360469699911485951919089212184668122222023762149895376769291840750506601854987124741278606657823923878542451848105192882144170033214654900005382655843460841551512734969471078694091318288801523714500193271241934996451174936937908304341712747315300688910684915303212251740151590573029693239263653655433111062740213251866625615660983625702166013381273315772882557727169887809646586060085945865167490912110841627688764320416128900740337890084513912666669137885577686315747038740985167744199205798530814172780286262917868795256128087348090669980960420587629393704428510897341508445592390279809675625554184693836815367103668197144679633095616078360261799672955259550198640968816312441996426540546407110490433965521224457761559783579644765380684040363306798657076328118087621140546646897040314427193992836944543430726910516256567910747103365039512703321478499054390761775751557584107022042400392220908594846507615860501965848106652415939681479189033022666699428125460151932258659259885596772805000869230821615675572197054663126449554443023294298407232647748636223711907788796176214321512782428034358000728665429143980198010759446766684438873027344736846026196533642433334995441311397353551317371406545751734413594908701634855381800558159369069278671640913626949783860245134409134964165653730481727485140671778344306248570147384376455746257208667777661958068375310642465032427000570033330578206870550667743721954326541665447268112848823733069376343263314630690505788912001918750096675976367295831243574024309561024271158954496964036070529115024354759569280064647326326582191010068942778822936775585362049522206710708099479069666540684225902258709748625778935675947084045202801522653015986129238085660405834129326039895749837733514066758015787631683886278419882639802629138889928241315576407526042983608875751432515252856455786272897444726140323945054716920167692794592309968368071988901443523936222805685444485836046900671257855478101992669941029341918370137354195097365331377367744731607923668089869310588278937458003373200654475376430883500362057199076486308775705142896927374232455098466718561857804086817075672713483129490712037123858983912557520809581395288831861028004401370832058521133558790940442320549101649693163605027259400646807887439251214840379552751880210828329516471856286282293295194214312156484581396476105925405619905597456910349540039456661805218389891760167662826690838190280636230796214025628022230031352772532564933735477670342685340505799576865136504912822649816034650125674296695262716510731048707868707513034267342806256040865082896493846151489720976514498844001154496184922642463896671852006262716775085672038481357470107331669168161478575017353251544161451943140927070624582381959969834494891012590384085268171070549615912894099134732366520762973459436309239196591665574361711115785596605621184170829801813752381040602406346337201165974878846108294965920159291310151418409265453408496729307959603929071647173399110397926023883434151471039054480569275264322154902602141621766946104916665027668712224873872891274478120383882312415042968800321111307616884123838071816961232443356163783085518297850310570721557990685910278601806425106491395775845842629525626650912160813431026930262915979429872776516023127631102497376989248401614218078841290972949155205973993628332553999623441673257865336393509283630205086077319539272697394708115874057999176218399768677056359357220883251215261889453559927191588790817466420620146953213971710472035112027227367214939484986542956602064276953742876156402620777266378826179365851583439272220123794732825504295206245861388987724696379139365509440869205516397774070029387635359291578728810916188679785139891144228534465740491742920998926741111506126097297472450171023665161846185075497686797314173622873968899052025239145931617884882537004899133290555285402490342511912876490126053890754667175161055277825100677916144007561042417714957153536278913488038191044383800887982193213963305168504099454911704035153862337918622426895079128084540887760123842020158621941198847454166931957001274330369395843296185435635476939213373969221688865288378928428213804427968445492587586735846372771529652339244698775961466564826642078022314516697384746756180207327666201808151823687820760319636754858942862406302208544712360474834299019319874821686419939094657484100822501752879729511649380089112413488361719525339986798907437610305931403441327419943774602371994106702949317398586087516759648788994460519575920626079859841350063101586102497796184325633624803023633495125583673743149702107612399836342552162413429371245972234918072164020414424427226812111886462171916678408355703727675631014101386401912006345469523143274842449753766979992240639659861835336507666394486549707654328571544267367300236066552775208655272577914951655122779352918195105143610833475017164653021485791139094294267931641607112114920138843267777322553768236390903140517042610098031806641409587181323836739239733488277502739989651369969669106175075022942592912765538529738291276597134730086504858751155022099674060799132354638269964669108658966945706195638488202402675213995446275117976190213652521881774985037953599965715764720809330650204651726029262576239362046288532097781279891963535179035438398619982658592569786808509706107395372293740361453248881830316757029441867615324217603735449973889990059710174147381040094308849846350292272187858667173585633644738793919976153746213118629700474947580716503439078416533708853137623487376211823731342095039978483248544959685859741055646412438254218599618777253085820487237324530171979122239427922766585259687073923591049214480495537984357672248815289500397666423670200208305057197034430081119435435142761219254160692550926331636379749956496593870081275796323631454221820653667625463487969821923227444870774252448035188945118395169620046100283136570335242578072291105440089229636924230245677533598690236470856575832151480113098841000840182279401420364510072776886782221927774883231204952650512762644522442907451024164036509853087902344208311626015447018741267757078794280380984312697909242589142641612461912205166647325951490618148751243748808785538873367740735903916792009132341514626796227207439250339986607199970334317018055388882258579437701125328103913651296631616417524985841406890320903388126925433457074360711280700752184947917566658259891129665924625329386932338978900806985248109478980161178312795375796167964976805091304638053551978386869303059107801998056493996957165783306806387269909035308164217497317260927289960477866960459564095487752742003082511951551162069664623650201817509000106864853267063200781956508258228629718018527530358625991672345180084117541505554342439678690557014297705504305338377764831005996269223030213456007233242496784584215734769397393531262816750417774266577837243517905401849795054515644396876011165865538271329935342598867726784838537692194445569292179540965601960297037791523883365779288548919313158649960370414778864488427030062966566838289453733417685545276733320176206269552502382691229959591170729890918526098451854633801250935750823646815705927296220747313518630141631769737309045814252541788695224962578208592757056608501445592932841068802465868421508861200401726601307507577945449982617457850303568279407264723772727900390728372536921979759255042120298235698772078679315900551631779745643052039710351323183679092506174431249601727976932690327933467823817579319281924207231293114501122483338478677928671937976234441454598610114875051097914685846609266446518097627698138491803570616752688194381203568584664347629246610235931225861690737563570635050183696882314549859618800643819698840096189217620464784530269009886771942505534196706564578865169509282842536254383683429574135428738612391924917626993910100772157492770085221774554505985558913297410744189845754004591742216313611496920470039884985155958854259688164704831074262272189002256951730894618791000939055900475042095296955116422254783330360772182541352667525066625036649527551946083045501718094456011054382341264323100129652678018878019398205329801213821882277509874740685490316419067782403734689661154854008401875010435573108540527778964840492625319823590873456810949869797547021411960697150776532223271410572477275978806187720889186733891328943730931275870591018733206775138953514757695872228571602693193338056159301440581179431390183458186923567592888837845098193801840383012427570850905533187823151152587123286981245386718386610369855610336443652030932168699448448706581068705662617987111909056162618027446079159999097992621974811978045867352239772332865423065139359709868959858835119094538664541835472841094174447923346966503455567765175995250332597726457925316849438755258330709582009198859524137389769972983814504921314300372874213392878638679432670318490768519497713869907047526623359372177726618701753207626505950875418173993432403628363639435802730511920523350473439062728367838703361471492177146365725276843715338135109601689483420264930366177804445838330600363946463539952309586489805382900060199094485693727048814393251365006071044574381573667983992751945089455416998631455493817255305908674679089754928145288927195379979010732351821590867661575364159650530626810985320729186618500570054978261371101379488216985870335762625452375377947612326345056900346011371360432542361581307175570005539312559901163310204777684268556611031639390135474213452492364861577135169688139689429442790731202319683109011229116297481260635898062726036989988165461676476717484107416068083874647316478910363113023402998119578527415349306106101315667544947245620667584434020284108550273896815926526459354136811013651308514024953538472557888071570620026265697961402032356062558447875726018238204514743118923252616737948990895593794597761142073429808101410817845209133038128799913977230335854128667934861424074296184632901276524946641826828381385996985180701595503010041472631752099726524392231065724138519139584969298161891488539402585627911802562088542815715956081223837637384219533616544791210859717665071587212228348706120520864845091455556171338290566662012191052696072490269662123238915976380819648077877218404554367665004863058070277782735606815399051754389391150715148900124242804798856255354830289341977026471687330288620971090238236948320591578873569760761133921652181523103549077767867202383761244765983248486959686778547526372807090819154495820213712861306036950141935644128116341074468556213671435666604954475652597447810630611293822631640913567044705599889896563497289573991317497665565011617224036228835281811436744503729564617973284839784968238978624534389476209882925012310675218626457488376796371568153188954681090852360381493222700923049897858713347062682761876360379084291919444455390692274628218921846964131514707963424251428816122387320233622664073198910713915605583806586852948376200451109895710848776511752604948127617552832291347622736730168838720797256442603425313302577207559669598977543494954445288718561790538934038609662352576922255828486233747775643485703883083703618108332622905391244860430527962780695686998610653190831138629178345388088755545942842998487438189083913964356831756827162524393350122104552418078719291730444439544616825215543758935593302503860939315232522134710123386685745229111696318572182106654445006691031907536718785660223945444380027323844024465684894395384909246474532775683627678329593779673783831824129358689591567211739871745106794110994182910611574682975270219524946855672701149803788096918518490383798553089676392741279694848272845917695659176884075471779068838276494012823442005896949666590129670585926789802374193109316338276291822068540830028811244811923776417962846107206134774450442065465896665606923810427221811954496263325005411141131525127910339482573129253086182588338438721991735962233421232436440510259500233199965778319116156259192157448465331579104500815519915764651268993204789128219424912447911958794395822600593476391791043662634666458358362003415936787528725909920946354766774051463219941290087118012862183874724149484435605588965771597429058242072287710899841187304457038132730390167691999046817024810723195282289971250589006458957861440479630205530568537102706488644378150842214209326852700220654400547307975210602762120082918398920053944826744137360992622078753347804588309718703453943588048826613457700698774936146680246812332495836579952526821084362146604341001430512407808860825672042630714225856164519783546267651021000829299157694561350290284490387226475858199475296555372304090059617245238914394991017315594601472028004101035391127545795616554896389935736451989757864404328326754703643585694992809792765307689258857436035825872968705379933610922428709211009301250088204783316425266588995025417898946950202806127828107864867552323258044811941713693121044491337495813552788000820765203281228773296922949753662358060444193340090162319103214836144578420826138013847589474392632081964602534436030711575326962889806418535191757407231320793605955076966960678035502331318887828258439891511926060290037275850396282592567019582756054092911182501728626239275199287672297448778299304066493111142168855116649992958073271664218458029431368598503274705348061253888227190861222264233541904780095290297497294952059573485833835685761777036208582147217621263472057192014415359615647365341636839663785310214143687620669667774115236323712780211393277033394808560033187551847458000104233704152149439352410747800017085206148138771505512216591151029809650164414089915125762391583733521041926102195510727556408649292354557552728077137531333967406150019679004635601982164826115105014203828571122999472718792709658037434254634695410762601208190458109860502925181475488234145706237632961530602788563710489309951470756587154406301200276740481194569133763014472106945689582446873497385211307169279806888632151184250786553942784816446094748309502769157111971001848454914464438774226476976124062924081668162749461258421997464070381458957024203516540969114264814453666187500967627056853383340596724228780457705740368094453527040740354236951035203773839132835873686567421156334031104221068699013763981299281410974069480673545582139707032207034855241044177043767825846023224583856988260040390483707426900533818237561962788837849727331272722679553993107607143029920541772963072207181780971560415026142492247291566183649347336703065745296271099793515936130649328459556633335770563062846320101297175733402112072894345070065700991450412834808669035269533206840809685649931387381601243700711833805917788754635214848240198424301320900291584899717942529016427147384579338593847427143439397861306378707168465433940444671163263393351540259253272003569309978478134679073091071202144785332583035725228478943462454350611176620143918473021648434432860182425789942550055100480321453914737978150414503509985821876439038792360525325895683731753192237517765131993803384505113236992025818939701365890284605490085892528790675107182237387230769991640251425440253205606016238265427284397035773930608784891966015821643340881437438906889603911323051112173897370495694455598226143713037541617225591416757057120085154238973056759727029903012185520451791049601015095427825313913072877038639307357683879920300197597357632145927919447197917215732578169964451512220146469843207023049673407817875255119954612854163695071529249941064670949660994385013089207115415092921987714173445340339431066739369986257617131433124079546606818492857958346827665262881327370263396267934766716836824687796221180696209394406646791415082360429058479651444673409127025716689304203352183795608023509485221715375728340017004038609471693798004694935813576918824652316155522045147142322281915838647651742939499661581269044330396564938800145995765277118273100402948955900124383030720250951641525319035728030631435322242372075459125996790536299117906164441943299174400267853360441815431497334578348568942488859047635025314795632716968744647103240632212987686298204787658159987625198791270654064451589532828206486028241422068362745199566847054807938615524304057659752110778035602723596287424884171686528977800429639999235218872260147232758463837493688934644102869471540179316574887684509765078245215152571392193261190929155972962497297880164952018145133844880654180269483400077457236328229447157330091559041740844234464902608084665526515744507073346155508108972160835790728474779598675164184118570695886683636766302019316324398299494238340919712723480643471004076583308000644281136179922678299363751817495668807427596057754865466502599456756486511124525269172298685736848725682221491981729622234498371609466680525965432270466201144604487109625133040215648525309252428041085803817445403870077821601611549863035246636178987399558990974359612256846707025692222013911096656009115747970210164066582899780438574576911237674878038625885329431655038381089230630695490714207180945709194299078249817198892172312627697821416889682537930264471207314212663357698547491269459483647397118412243235171542019169604549160714623926146782084088332003343160269505455451923418831063200136854331927564168025388025461248997097490501201924944374329575076811470477973163405534155059729687560692813785284492691556054813411847304692887415788675897297797815882402579182252879218893926398479321913150121468847970235870958243768421443839393149301055146031062931940466199235661586556538889946628332285871362352634242121321208864066158635064526561105777849422015279895957391514439343891923497534394577714887868864166894632586358467044480860615431825639756579839688235979275927926184081748609974987345281637126646429546243822923245279027805779670267222836459368758956799152742713683021775149805608235811269573827219887632169439137422253715997989461852208081209983487401604959493114909775105462585505700730573673302625373190347657724260863696172165949965975265007856350578210909731282195878543248317625100744306851271687305953802101984241355510197469775593928638698130853945407395792639746515311069342471350358921351335754693189520056058829656408976225717133687654019407197672832856109984447136046656036569138022118200575766888332600539321815153752779657156844860629025271213320863977002029860076736854177054230604861405528701846060727748129700491778626281450710722439336418323929005884320007782000425919555738573964229521767783764179595671808883803085270605980619810975353092535430589475031986080788495568127889436365458814506887943390556167613115354495302486274426247850298374578623577714155181968493531188535089795829953709059324369732483343091118878368822582767388833137570946134992832016840575422644544449324174411486927478517681064365721676900067739516895760139644341853363351307854855439810398350777623158359989917383819258043992478329885698433165271692234187959493009138235930029741148673487382405664807434489108812831669778665880073398595417837706749052469777818609107858237904314538363762340631693754909278538641403047976935506392065108533688136726853984863128428741038566232155570463541671514613354581792988416436795275379727294034980648878381399719487547479884238429068500463402534539447815103968387426326928013665465034718937793071825477471631432779132169484583574947528830557652350043717827050079442619075612709304811295250146142605390055180616394002183013264657628118121579049220555720256497280485563929963922320909077522126276436933368058060014294982279921363221110258100553190304686381312626109475233719202939040133952115142329929415354073231842647316971388884742290413630661660542977892568037269118974358562459999348303654508763178383653333403756896531361603314952042404847801176328286471448691029805912175909409875047886471357677252105887100854973722047545333020249671087478774769294518402304323491419338621149123473691938453063451367331316106866008711374569925721241352122932099813240557715036444556033897423715343964460040668961517637729184002253517124811437833696038680901015414380945609325857268982868654334160764789914747562422718187876262067074703602307611610418098342874220903002354392391905454423004187261276602368296608710501052797775523706133390184251410865711811321034169024911220006564279629756420294815682739268902151392795810814834570162033465193202374495658847635584337398730469836683889137105079443073755689823024214341258005534959581656242923912670298135565510599304145739672083041242451931443557401568604546779912934616258778243853565954115586500721002086744766625737466522010162397154347090587347364768921335043066753043751423289014447944620136979356706191864750428689846094888381017866021697915674263428298211696817184413906000812984758160034451265596450918825146567376672832799874031389981438695102665370751744499566093054510637946462800606057257417919245785365746541656047069601447971513452205278910574512700063696193495607862705757956608830011582625236327118798908098183720207540539420155230995954968522041405762261718778617013815418026229765906114432992023257124711493977343551993653512211578063732178843078919826998610753531942915120703290597361307802922345887356361795531131143975528829545716302509756419682248573132774583275055317652324152721229487239621168680757996987760143248014922149003587227491161442600055286881709720510913905357464265367972843245501827208089966078336272157697290613758029823893297293070510632846135211943055692913670600914449388911018954572412590767885088705192685701575240754195790234323550015873995875918470471870635487086752508923799496479525005889544484093315877896674713022300746801621751024816115484996255854536106142697344162474419724453365987708337380029493515645688849785705856942337652460919858824957342748811025010821897282941861150854168855112346198036692414468467166858883337970718219703946805431835911709025425372138765810033223959990327676447184590110826814358748734684832752288710441467715549859539808879738879394116101555057864737772525648460710118976213292654341337679163433822642268554047509966372817120845549470682903683949368818020791781005110803780517756940132306642020855607850008244520441403062306926433797440241390443422817135583958242786272025953607391898360309090802519344418489999855198218912213471067563021422456799712550645342098629224287723756090742090367585110228578291596410729532177748778650015448611702860950583744189594637640907642964724533589821431715837632105784751401608424209168442718367278832861489537733746491604509581993086246814081364901343807359424249997266166113118760219046706403498689721979362959952829216205894513502261989363765226123929841937400432467628656091520973976259318377492176778650999210834011261299320591792275853495849315896293592167748494473891936797317695226152995002600924625095265196315374327791909426113153493444575663470596975900697312603241294160950729483125327940632859862320699306548168789417454579536175340046287776551186916138975969651057723034734990814439997418940757777887900307686542775212606738093866308483638549227999131485443102578318212869366689485209285515193489633541419247599248353420353521989006680789308685278395785223258994052565842910887899619837119328946682449209380468997026533356997550123110455737380072507057772872994638654686888350118782608450998908595703158513731133074847089164982495903052786115841603211429364878115848107542634872104275726643487251084341019545059697781423530692005369246634760763640487387778062689336280768451694650386301403917497759384839467792555001320807088385532973974230043829788030328067088780545307965673358664200881929818224211432365048491647248948492549010839455096710892951465693683024258275022799607542765575354765219522874459611793664002323296186878381146772793323536254239832434482100913233165387073334304736285759161381691427673560557711398933129334288287642422720093622610655207507541082992190474808469326204807545090011442635965553364761337043192807266267083386139286236916614100935857450749486609683304341304011846224340683413787903152006276878260137272712931001928996499100559953116489470929954539296941429797604722704844867278207877689041108285780221603959881473597302648975478706016002763129854388233237481997175229904195709125642718632958884233394218088859180018651602996242402089034971265057803627816499691899805872314503844708589788133783975218388261406687425469004770232776874353494524182995401492191480968200282156706770534564279006677086287311296523589580146483559871343297849558959399865816565458385527166345401545542708716148183588410097902692300751038550818058898296536595577482170823738808946350221160266431925039537951713257645819124232221758016940266833734882379923346692250233910648031518793586010336459248778177553948340822889299757196555195201619982270255393067164282792581809392400621737423738551841881066315886595171997422885813298938348693448143523951651572655849475813973844016527454922990938888552312021620096299833305174558706994149105390746065739994867884102927825821793215926121822533705373206639308000508151933644765194893487009356233963390709393698091749086400735882396601267723339172445810843336716925204831347485280831663682823311547911512589936148509669309883424773613416846821520569980208315775407672920562805786841231535393641254479206225675796777798305991686363747174507530846403417892762025605318435081134999754421815543966365058735630472829872538277114087228359593185821098218478689809023542772818213532768599264978155287104706544585162817535164639255980989365147109030099207538464110316170535918310349937871251012693952715185154185220784917527467173003884073110848220204681069010818624843542581449004877346405750508596682280963470624953141800908245703618877265258433245383394822072494133386512300912633993515440697514190773603856922438744511612196711866170283368056939822327512993731230373302959932527757006159047849519973987418404373044154370097788561280526721011975009895977799624553550203188950882905946272277118954797318271018887122181682237386464426928222819176772518840967249674590673213125382657832446822050700821584644244458995236720550421729187285088904434372059827764849934344440706403169919309139065209335651665622808616588099140710372819136099326221411333918857946432005923246565817150323138880425514417016141009357047038003229612814365121478601087071259997694938520710599313950723291899430942695864605311254161313808785008539857433306142141333361260775311636748753465957649705799756945202471617828460755994848512737373766387804863428216928321703024115992045533309020847184145092846079495263057730110052079424982647375647294256984044977307239341485062755948491595618092696810923722249890704470297489586573281800076477520613373132583505290956705265866761550762343734975366790234003823760322451631508550902702001643983177546124537411007661006230711040318646241470115107319187206234886333318023881861706939228081563898819120640388695927836809508168843056232917617783456376233595002996341369262468619825466050874027331656489630795248858995249851243577351408096203385208215685203604703924369838524108750767289720466998191749931743731420024516330381568070701580406579625822751085767599991906064562081750123663408153590984173595709108920602953047737318331927164104415704724636949093990478480825156863229413205205747957269291062732820355841720010717653103001373009971317079611793749853268386596667726644605865009332343776058460559283728735923268338706936976971977391887197575983858875679967209727778477777921144664127857037665377308398897439988016083584177347575759432362533106709019886178841712538404770981193469171481900567141602555903406692206140447449594576459923151044507505093397762505514033380553517033364647643175342422295409725888688927524763770792466321610206683248394746397744631157563143634735529644218007242150326563144535197188234587333844233997445178899469665350570545116590641050870415018533496806242809983424425963568468775043740287617066400267237980149129989010631690133980346999975858945415158351379827495518709531415288630580982706321951875649946017724542824392602389504323600366428129964149402518068743355504549459172674089688949955371692067980594592478302319457659361435196121055881538800965393834303845831490851089485420369107218012856993514194096785799403575453989282691211594915363988218745955382644556256128458425017198355679327170068329346130506395314030146503468141540978027359899164672990298164664284835198198787524966791370187128514408306517133887394102324717624275836348587072931298972568013272386227177345704989774305030194804781905340054914694986530501498633178700202027794261739051169954612019929080490554025797016559482375101789049342528727002894703655677013107489095034210170933511401189834693660358140555397056897083467483888124422745466864827385741170814393628167118597787502242467968732018022092058278843280716334729827841873796635289395317980766480696225651899122974020797435518279858596891957841381805474591701829672824966877018552988966352238755387661710329610489795244791950297154075023833186440546449734018505304887312896911587653697867778170113737347062555123929051542668232175083801771315067617531716847295309061814217092739566553729018970864597381996795112142691859583723413188964703176365807715427586182017467037465571637932085541640225350534986363039881117279622190273309607748353458426008735642748074072213375998211067750640467932662730924815871804448296925896129084224483668270471124700688129533835033922531447780449952601243009574418196745670813675596006791581268330198914208648147016535738233088001893660121926882347734681059702550975968593891326849910293799825858824900964022594486006868282781447005678103790918899234357073924316179612152924754877482190970645996907737826243194129878838274651124778360874316674200554808048135657082328436405066484318648004888305704208454117914807013834021856433856339907483340301620615414821952992932226808493377573784238521211107410777081657572312770465641138310235058429722559065689311411670593356985597692499437020094441257354485970066089152711386195429854392689614155922115460277475314778647363803820772432803110963527292689593521479623727736325321565471352487072992880829085188909353272077059236224225462537560211293981462240404354022164684281390681999306121734905583401834163428163363273445594001274537446245075379176461789604292352529298788263065213963616543367842409960749256073580851163796988859042086297630617746182704955526311445539592916273482876757705642878121842410663263604801919276753864851501204980514480038170289569616487830780421503393708572025508032916688215325848120316015218909690629624616969966304757427154558639477791629611985276585428499070620479376467229217938401198102447239066251072103572925890882794930381528297325067932711322802575806217354270370418022493927451412901482454018557614412761090275727052922779729208602403762779069227216503806561660000381689789175172648190035489585192318885080357348830916026757180550655726217049087269611185859396091157437493024045789291437056669816344461533318367379158607337780884390302652106901884203954966550890142064303624641081356464259467630430571516818341456711198431608724612251834013208000678517894452798406914161021886016644912070174913582222923156363777426119088661910936528005451008296384823151359030606996844228280542413738842485200462352405898311116729962165933994833338155477186934523033121634588392121099320492316837404625027222655030747555323762139201407824828208631559314369286758684789230432424231622030562997989498630699743610124742651476295214082349577063741779956138113091454634006781251055689996440630000430995468673611292623289545458571756742554919044895056407632471458183342508315583181562703867410526065773873034628074052136176374509703113490370745520764955168312157237927670883809391026165371515106421086789887917568352902717239753464905828057595094682077894740427580977310759040889576281534722559947758324163732723851982673203817066757963213458361410371150914428128331536054142524459241822693237325510604809509110714067092899948130437938926635105131382431715082709591472038628395140685650812970107508533815212321485463527613432262933610031435244925335527605374824106069243910563248101272554127177403777271574104731137459849021255137534253342744466234095615840554038167103547102078071421289169496620160397192542268553483778820942234619468558778871102532514260979723782273363312679142903752270052585525046372697205278001554629367663042207321452816600548715831202100064152398022164913549234067844716157002853469550762853728877334052344780485139887330628790446096501249692263124815705789868613243687454811971209796799585969400962940577393420718867612394066650953662959044539917656451550599590041365227878865828421805330674093218848983304416020805159432548999830558140646009530116865446324706233548484478698641078599795639701894361239359836009991717620886129555674158867650108475086750446341228326302341081354647326286672966393419400270692626679515207981696575724728850793827785631336180312439539016723101366914622739860034231473195686784777790416763544705057759860489109656442855674176070058872613807847155815537239505566402996582216099547511209529867762925016217285518853843562126043795409094266909993109119264277144719716064174339916947977775853029980739161675874964369853364895708159944289230970502413207182996586566396118152556091146029539860420571596616811250657830457841674925683000316336528445226320931864013075996997422383178943806963375204996323569626285603598543615983507376821419325623248564321817752251339418335587488825384340411916501686174372423427388155918764098983490525705537910481482918519043853135377649869854614797288669233892224097237371236831396156211674885077438681712293693344903735625930555205181263396295674057723883277954131350696276991156207376898830939790425725078210020635886534282939457855507765341892668281804362963113257209770066268609735063011976885397928808575434191501682030185525281959794062829499256966103566934063998236415597198448061772221349814695336442419897315687291254848188074811195966431724922344677923751771601095056382236897876225638232144659674580077855799974393773975052548796520847344526733507482350990699836636303696765967627845179812007245182687712650939244970792638285499549191509632045453342466757424881397110005104652612976582864854919104549917940590494200769800283585028754183434215187796852548662541655915229489984107128887315021314703384609690758981111705490497307854352251489190359774849005484842876439015867736251399432545184568643917839150007185669890758957160183307428476239452634248214097355866006983190845076130002753826665236958006325649779694683239949188375105536926467299161619223952435867135162834706759260461692288180362983179469692729046313469041868797928839863183757568868764061130590833548027109535003820623174197249853226654328569658703210243138146502777439497835128285453317495134989088474393509063802697823089423633547116956808072167711902030146197294177245208299397544557421119504046848006510575099682802293533816927706372134183759028450051125449832831066589881107169550027462076480671783200192464892678255342377215371454714343814773792146065309453683905883580429348256814962721378204651104895627998631357286887196690612877060692508584547803103937967103807352896688609849018614648882309847750858568890846731140106405449040204569251201231922129530830414023055683967996901421585112062551109841878708900615215696207391646317169172047431181887869545557191627240122861795279455907121059621718834298493454896271945414112157796879880610354095578696018206106847218100147045268315270997213855822082756233066730034747356276875123936427206516353785265161087045618072480220769149300300697354855591834126704930938063510985524482179212887518767520860154411196883782476228812544214475084659317863437325208163210497582078824749496415534050643185248328256458733596602883865045629889087326220132665591310311842315070439067598017641268212188073325469128476802931841762917735317658237271175204293831244170668535462409760421934102157900895007843830590128269611418864576626631696929738860467518809578597497986655520806219807557956860291784242851982177128570102957317345179905754841531532527679137687676636433163387793542745347421453775761058553969681679695797010674094622178586463318070460708309700737750172388562167049715945741813915943114556754597227853754643740927306211003955422702554715440268096645091329627976209625005266078765452302988185006574693987693610537351492101839990071542485716367010747624783596532780200254201473630100512248071929253299999021906712498209006353738380425241198059420244144902149484642770918606918966187215965418141490495022168670770282456582122585815432615698966682987881858936885685386255937214106826558416899928376840905435739284904418269985958630033638780229971099805298237743552950880332621609036534856697356831877531817338075440619305139330054597249541818853751811587948622999438920382883937137684621850376370289607459900159242569725816269630671935709317536878743120126062480242350955289727088834053354207720326804681310198333232684007002363969263723015978027311866117965409195749930405702627780765725454542763935369376278126828532900162746293783699925130308656426111553197092603743861441782308993552020874779424831608821088090308970301764260448876305931093847899025098052641668636897294898249683729070130966446965533227145811434199555871024185181223924841736856842866060947395565520199485946614978788335123702521883091651375540272789480809686526598778188058470110323451202940811969295878710444612126337277390472106945195795253108706300766009024624096519270321165246477753998068279530555563245271078488589783167111444173484620998802703243374536091494656382608161073312980764741677077781090985235335501695130089281655358130684090789961170504167361073361222705699991182162914184793131089670529493193533057931695876952814056779745027224527231346137280496588587349434191679693973732762088555069283313410821306891763699794426418569094350247275486127197357282709188073998867611475386188081599411756357244235029127046268886884949581327259130857991043833536975071079583333782055581057391568379024874156362723101587318915224357657342658791049585688017360195322503648364826946639465270459926923195399660488930630336119896634335149722195035751140920398891881476240192263010637545331123925513925337098236045580188000601180197728581953622884247047987342591858449883503011904634082466323356347785424799175393465527093965859602288974268489368241268325050539746330271402319135253116656801542167478170467442595858689401362782006960541325256765972612897204101890665036784790803586653022994959236848722575896528016569220703535313177268437450624134906981775653736067900557142679764799049401381420289629144064076539350041386665610743244321622297757899961571940563612547915590958124961787407238799605097779606543300603985134354355018897935063748714053772065348547484995881310302517704529300203458609563306860344404837862830037529442233752805985979296519743508169740142598655904685566954574438691222063461615692615009148554497937483974571672552926658046262011453090703529327967283813502349187836508649352452351130963945958222777907486387421054371321974364596481567719148120611564809696219686217104836982001045244058335301146903861502483472896502692515404478668805817312059917743665068850414531551392047132831221088057792259542530365666679768279807639367824090575097296661411266180656518653460006542408533157038833432168413136729550991070827302612785072212775948358576592193383250142969661453032418353426525736184387426376403190524390466489069552196975129070576193940591307204788265005505463154936275637715759606864952499473812613417787201641087990608631687252318692697195113940930450349701776405216417682060975954658829874680405254615882566619512857529000276218126797493897268199355719352622920678877226917917571837126632612580744165670188137131220592547844121930397152135467528167025472976679182130049616792161232587317775774889909323781812012276603683153519463529066222437192493280890360906227308154657380887567229987094851912163075607656490632612632745782148060187781046256284243197267058845447923334142673648421872031588510863177409795261706091358000271450904537456619024257698627091384383881683663837911647809581058049563996049359254944247589234683233971486710465112634229732370379907476743599105738667035656375753954364164025032002066178320270026798419849694989342081127360520635729608395374210825570846425953911821762298753470797343163341550714880243000106564655315654870253800843696976654904380570566423630167209447119565491169824962884550627134070207493265634193706665784309631782561126801957801735831663449905983518420987444699326224174627085043857861201972176591662665083659643783183430952803490336735359591244781912719399241995642534949605991913140971334882873421734915168337600305029173954759258474358185768633077668804030469054186894281660468960805410045659913952075697031350522805359638755842891032849449977166983910104610677961690851929103643855400485373667259992167887320954239649981731664113190414600599457221194615876894919990581186969317267904194538412805435618028914356296370357552540029631789978656329405841860012013888429957646754433870958100302109269811277040981834085901437949660411857623818493095169660493211732418489795349921287811264032430314765760789608496179244567402324802903969989922965243659599145383857941216946939337095189228788767310652005873621274109169300853434950660512160483936878373880325403379619147593066536669781147206314268055639045259098612543797690799114039428406857541745967663053962886551986471912905688363570108407340781500244282650830187960671555543885054040461110715843187775334713173926104013428882073946450682823171640374557342931205786356430603120443876306942730533450473495305126668721618509134215136409250146021726569730697508954282477525275004984624776910352273815932982966358437816871746000153201676958416017049438599543597796537465843543176442759553421884330000367319386718725707042890926907818757475371411544633565333954630530163901121011589720483911186063193365223324548271484281891451918451952121487450306061140052117144878312527727454405193877047082281596818717247049597806783971739141081850652164927260757277591909405323219892348411873045894906183976531628680574334098720278271970708371991241749510324812363101203007459133424288935699515212105301554396323059471393341846024941004295606517602152537708446788005335946216343681148734780441213868580979243107460280448025182454318612479651920466680689506063084569149031834155542726929232734957019522026393259521876415236589445183723753946492487083014661779042949100646162605134578665620574873209696924061420654814980548969401774072458735844698293724667034401239024989121936454372989250051880403884527673488682469459174277716573575291272997802162309717533667781583545359498553885477666675810034112675175156258079638274357469982177981135162677615821276333545156468014493570532656285097918126519197793580220131998331307659694610199941400321222369966512004553615578375960187425304642159017654791507920591727717062849291002446849222947428726347879894431078033779366164155634538961572486353902014531862812164828948386376909551304152340784273595076957288221214496299202013101708396365908509120394142938960781605645968563361202181350783396649753481124060384506496157809415412065661692386885719347076002898841456276567742393133557966232720415888786363486146115517034292735377253159473285620952075922549519059251328768988635324378660263180793979954426972445125257733450321792540272378972886756376111507441145288673216754428424000481609779967096365709709402507286230392991036054719006912905372930870529641445305141487045913980096852247197206011301598194299819317717996641437960263481620697152754192054510662170111710066400385390049480441798688557749461711224465500373268957362904371941357166915568172374724166017857427225540844457832053152878119481691674714604163627823534993557194577532718096058965471255567785983883641523313005990155146970480310343079930761559300916216990742757847642178156819471841928003603698866334172566231532519890027843367796678009680963205890745970255490440604604693414789377743308471424135991642011594565523550628761491929403773562087365017797097832448484066146431559782148733735210138062411378343376989470137238466114013096637162700742828233339824274959748544536949036695311454474988110968647833982763474146288859212003047773509884706170991302845237869171371318986538187829876938572639574172555304812838657163068946535110082176115132686878944992341892666647330392897062553932839218790025050075141887153107655243914737744189518711889919300384460106659669947211256920565424197203617838143209094537436224714158214821181824717084774723866035035575568307686345590699371086881190042659551641257851804278582354589977278507555884032296370458534414984768708586324743087018151505857165637458226940482303435870257499047762021364821738199252162281567336193776210796230678252198591932504974051629956205584255625498229827810951851378349120889992214466952934007772179645979252104517246493622814252291003299502483392309191890762866685662592398372493113482772538030316360251019909672610234866619327446733830891252314716194869043574685926577164323056512052767225295642271851503536041593855137155790441023469282168940200090132562365795567007855011021946867076736453801491259503672140422625604543454492554801523131264647329067948917605678620808562572786640409868794801362441782757175803973619598696296648845896917575229032310837918010807860529258531822573429733568460855125029216303905755005917456673504512268101403256131438665953039700527736097036723778393963627746030484361414496884180541407706926485965079949474348444638083034141249170912573121400161259438939610157648927984497282837278521646626962540015233424399185079904698873526944751464087347409203750405264577454024840931091710031227939612002787897591659212402975970388098611640650152792981048144598946326879654293943278795985014140950059651613797797052786423763230419333521683677340760504829112773844530210033341818837058445903953907840506974370198684625337844314964072704535742299296616473763201964535067796946262280193248798275779283790328680257136145633018111251636486383189053489748934656091214024872669534535010424486978819472944123367466178683288702321278852117954008403971328779181337843032719276728839330197710297440292431124879490683939668088400810519468677144439343478751918489247403661543457860381085247282673273986377256394244478414187533430551476451197538707322447399054304641607762104199457980472100664019474290717165179165716912268551459921981013664909205318863020815033197747721451973411097110533073268549793952625926541081882437577957427966418018186640683641933198665637879623184588636856593617855913584823763187823494392325791989665397220962865291271013407275193546374981624666904166445559193759994698159849528148983915042122853894304699697740854659125107317486801673226885276657525880646954172938650633481207517991846664732041059361373905599028508358804402086694520793388243930550086608633776725235544451637899437800171377100289326198479560148563520158850176704659626045266927944038405733537358085215995959483175568164866851902842239049293641695051802817568304109921311341098670745575568659775879519506456235315410771102614853398424535056993405947216239063386187244455833133299783302266931891617817527708367813679312688057157294137479013515023965831758664828660407975300295952957976866264934157510804887306753031459980629419803705043899814288183523164318247559569289944543209899465850142227591840922947221245711173607109914221113180630706405049572730584183383019111985659221975218532304962326044340116366041871213205000539649679378113429899661459109100013814198492740684491752366758243627626744368262185763208590635351186529210488284349841195705996860518326246462981017120361337715786614231926883031143157166932514356969629978679074084724405984828475496201371385944071620504778946700073723936821616976822917508239520383339858335205294992457873081374465601151788198386238091570113039957213004106509257342347274635847423148052960548360980863843984361185627861374794143959034347515742673344864239477360713017564345019339385185830652580052414547660688930711824571141909342474232823473961232730063728864266430312652996979595237040398077804946493691752162298369393440147062830850283173192749462679673014263171645789985595624945330743834858658169242426604399726214348886239362339845715305825811164363759099204717870753809295789803303949976266458938492792983455433630709420275055654262691447593216421825803175379296970873691475403805690274622563055686046015158760761355805910807465851315046290278402581621599751393591515779621271230399427054036761404897220491744028919222145073696877092268284330969881418356569772988149078185928917074609062329189444545915935408594247295718431900826942434932862601761459846615467012914133943917111650239239181993191549642025881976947927978051212437232278699113684354508658042623277090998560339106125713057423612288003946563688700475061470535559710411471539907683141655780382265385161500242827862933747326989779713527148492983130053000574493347221053245701845659027623722691284858509751806871289711928357768779709185189197327954856888568866199155969311543555242024966812402725704170185128364275708556150812540198103902684973228918020316019637482685192219773235051819042250082510280436467673889744881970832956164323146849554563941296709233898832810474194838857647123432923468589038014755730463629836796716941652978668338055589373483445939709322144803524518365724693418831355844450194872696722160540175944586621368465362277717474799843609988311766842186926872399837419892879173967477753211300911049096767448418015890529749096946938524881386530733315852347246654736899569493286391386263846906395509024292696807404655513611207395448080525718036755181928632528325314357740463610388127180465048509495469062159137266186867288757178307382579641323886154505844188545540915913351971245296821737087455502299038862583091663178968699540844205452678514234218639959929681105373900024381254157048019743061187902998708501815706682193707611655361929535700672771442759664973536971108437463398385172365364753112534121752980860219968995685077429207705013084689071288119200231536802200091593992434338969098045565693598388876459268891245633742201717437422392709926653060360342809337878683751681060190912019872619304293222419601280430389470230082099810800824685068764814659567118863509173660222024921173434457588801726428698237396275789153102929681883492832035360070595700240901184402417616442509049267945455932636898009959625709290704064485838062749250317518705215406292975302353191958350204305285268406512323574604296132938465869107367579972931545238485593674984849721571305783871315447941441567497118646715724538440831740690544863785865156928615237144755335679767182685473042918638765530949915910839630384154355351385868920683297221589392782227154825931301587478201786155889096130584495435311700712211421991297046297526437757198074590416869471465677959263265733301493014613189602990623328052525969502490212496021305055673126362967614342974153048042062592286489843082746854554249367414389001034404055482125947420386920118452714166038041428628845032567992451747735146891520769122716986687947126734852870545521127158632434237176702263805648219341549211578187495199689109945468454738927270161812810568661083508797598431752055499808776316347957373448668838898890256158214300981581458134143251114125203172515997880001695847631645671745913342287511780680326410591493140421623413396786255303558442121821371252332207804227578161350961689903271151282474670163324567559509662680622575709952507592833840502933981645967052266002040318647408217278365663299364937661638372266581368811756755404693157925390831312580367231111462143532461295466629336731621493861398782636008817233187303841794304124450635233755410912306879440558366847895729144174642581261100735871538089239501843457257965126061082885418198329180484342167058113492722587218309681465419992784025346112712040562186599239169140062326522079200503253001358725769685259148313526998405014150976534514911138071081254982465114253265085821339072070489635390752353416496779622010250094318887012493831583815544833860931836059720990804074163300599296984994121065882747488858571754906348088907000889407637439828675029954113770755599414079357372471802014820845967941452458938424321663239696417241681322775192676774117408482615136623190188734569131656748640342599153384611894600043278269245872570499656214899714273768773116294864759469003605052530274173166886470651261339936364817958892435619214289784607828899669204061899445236775848197324696157486865373157855998800897018945759861578255951691654387717420312557748339604522388789577960634898468200655401902770551982573548319455331289347211519261551506492713514942851414202592826514566633812007212124747839449462765024834591873255154752568934070094504940142248845416941442649323251243988976260843039045912437316250519533388334462060012419713364992054365534433655951727349140964416431366185217655827533717524984994273740216838247198303172526633160478582619966867283767931304754569249080400540898227900717864724267045711052462364838430422557793417007991760013220419273534866452751978328733892989699100960184957908944257697121766051595231196752906233270225579492206677954317138680723452899893566820961600455821448898524325970273740246624917642605571471932219166378690050367014581944428981003734543613213753921964558882884125138119168874884333018082296539224927390202007794835570233559770596286066130159327552609364257988786805137529380842782541192116062145048992859183511754425533325894185363511573071918309129048281296299112982778815279309266745290352046189313020280954049575935660969365839718162401209648985811057454306416522901645798825726060564153775179623152080904429297188626944912721685007286359708699267544181432874853131508256157132137641619946576263849748112521294174254190374570716943632344016101508179815806284979703916335121455048185862711763625620494993970564025494659709830983438066096720480527842885692571052274000147445300309297740127618013861688160107969694995978382675680313484088579364129841542880763047591698984752523338572489033874772407114434450326883282710203445607392374068007426954287004966158073307037314105188157062121587927081242922183879422697449561309352939677910135540389182510459533277926143087397887964097368934429243858682401397412142901993416795998363802361446367699873129344657082785711080707263460875439267253728084273259923622087875621610523597667488407409524035388235898363375361852798299708669260562266084952634295403485350243913301893812748105706847384861892778835151891208872020298403233268949885659207281985114394735322539748894948101347492083947971680094350001923454200402113923925803365916945331570498622292743258830482961948154152429747911908743023577442701975804546050903922170453466318478159740964246546834574895842729701147181104742584111944486561351177249242103662363887125667527239195742509426603643975077689947221633932609769153125495718625673318996179325219291197897674600250762308754951728776051727325573635272634534802738003475028147818752856720951241774527556457528580331115207600596308796855731914828955099862412103639818985343071545026503897673446596529702396432552008380344371294657811763317733546543388387014628441794541975149582831747073293672004372028237152146264707075452136004935956686203952803497077637695564184626225234437993261406967378273149031297396215070100815971310339637668408290667781417313972737061265277323252091390460342254141968568776849152817127269410659418903381932172613300466500877290121930746245618378293957221857428913141154621872174051616801851036829134968339533828393120966185812133628045157625454666883435140936134329203341364825652917539806530266353986402270172214852063294640754189300085433604746829906696174275354550695365031611801469214845651249465282682299559942530418900445934401473143860052772509181110836422739640958118702260265447045078566300247113494082305151431235233200016151693991624290289713466047583993534989393736453812607249221291461724291298638474775572441241411566873755839932108465791176017973808930876440771645138672912950714037392207771987057277706181923037732641953860991787835125430320266438356315912018189555761750927149870316080006898988482306929543262188217291161806321445940694388632056507165118847592953747014796446848157233936757071483498332806390288251890560180367943747800085730397196123738558658519830597086950350909505947794661015435268641707548065436600245022024392177654463387307459665653404142949495603157490090324620144383326281500281938286656084745768382176654052757794379529309466135132581186509813926019013262110876022532255986973089255917658090783056074027049341540945978767056644266374798517688573551098022761176272889794209325000864060712194900561586676839192785798253048209453514508288166621866306731702532152388690395686135406867447977280067467075283003950724286732419272546045968082273986976179132279035235727149249226725573284492517037237317796550241869765093152740418471021966822316945771653705008569382189662703318886335394705450444430666593097289398964492049981739092670294512780838836974794061216906498912823248354088524008936450232744637523388568715778218869714824233067179270873169254965942487531502859979593355630546566910259881132235931597638945421652027431926491807786421192781745438113056125517199867601337033049691391116895841982403080940939018499507882588866151830293122044390170273714994165849687012212713064508361691624745929633130548937440459434052584626432432626765365777161728463562729635956543350069065491738382302904827554942597086872393155540440341830733029898109349597027453661781887166326310336769541168645178884134062946299256204792746648334193612796130295568405555557135101874859439928227071293271932463344296292817155427126681197312446395000073570537066218976751192935341156020435536230576326060435431123631961730361489805122576582692596857034828180863495009320889015906793791440879588446113966502565698780345539163488928294195176906793470734475567793100939576772823477276159789584578363428120146880897048346155616261900808586005635740648404834326483172552725671569533470917452339968685160995543206715785251108008259872971155282923732016962629589233999524873074585732813259992673448160907281183333976786428513682218418016506862627460033601876820964983933574346162336400721762247610198489125810625410021928702980080759341792946506905877373583765883612936825644066822678003358187072084211999642549342273214796626785955490639629762242408471195486390103171820871209047006039640222921816440604611450533746759793978198029173232509320718298346379029688175881246057140313166110635748949633356257168418333399235049179991833587219372407809350534648887672178832501584812728920451674551098104670584786785678459956889847881729329096505612670109958186524546175333131633878207748412911850853245377919929339076391982069809836408473830108600822062313689934755695714290747333819870877486554464879677795023472131976366789518850383185660512563625466728808955679245714763815665491957589768027285977907338505673042892634975987228581962262814275327323787844391824573668712311590588818401875476340477496587442096317578693353262089314295026765186333347088748432403532802918747454566647271951902573060072314003362919169576194486538422814779752545462278931543080172130958137048379749586174641999063318382180895089109612890959418643585720436730043131468411642160257601524131488386913647428861423242036252690103981185876412254374958030527806152929596657654142906271689485230636947585397700583471337848543768391772785213186691263527062881408433907793734679258066663507906176589384379481151561772439670897939872859998775514206913938531976823712975561168921556504934369807305357271494141876207119786458311419950981548513010615047846546226444799739748739047675299994401392580170389560628349974081410831765511756605870894536485974644449632456396806178126144323921029461396764181493498803947006047973175402793548806907212250591765169627628186169536571307089319090541565537264450980224345572588153172196728379513771787088616652281237958763604553320067951049977429442485304448282861601924727248433672887868508390520932605908568363039183006670252817908299603725290001153937036983620654948399911493398713984152061114899371794370181285209071470246442069135426829587720040585177901448019026213592878079137883110417788022907721186580785489588028077341483133666281456610891976737733076723545819616715255748707015775421268398815129531134103447180445416212476972864188814989237187588770290151924345547972743157599412167283366545470956403985065908495293005266597252184951344755476709909059364245529926104119633261640151528793467440623394654174742308188349704666550011361889097557718787987181820775572306513031889618258529083647568544839864406280868653186137187313259356447465102721213342397158674132666874950106737873537180425150687377396366369818268171373534617059320830507960101079972427831964553814822865078342949848028966699247051735883000032976971425543494244752988218683817110831074620029971346478770322077517498377649713762588668316170460293509197012295523666020080975989078028149224232627440088862352316412715378783677147097834040964273960493306042240595990852847723597281475281926576372505133483745289257997417292985094478540127216920710517324340240258356630239219754333946634518475460502555125268854328290598874870295682441485183442767442100956588061034062304217954949055494650379262388473450417960937559926281113355759319900604232234260710737736754419357236216142612132188203102108485128827858430264844255040997886517283887561230879954366035945143500050962982483042256518788513903469081670576457440752036699557659202453684632834267503148666610144555961324321089743414183736393714561761439491444832609350840007923427380848830264066564468628760986480144897433209954223700616414324516515358679471524065042210764413765587105753050173582412812839270191358286855420203365186684306370850153775516936816303768533892324107930690543491809427415036695969865753208547811966154072035220495279311049390147374505668811908007169181548640936689532305393747358563805729719084498135072928864455167111833002108600319873969673983013869577043885567882119336554316363637982702197387796119780131162884890588901282943558995969076338415289041399131256983790031981695812242710179496263450835211867483683225575792234759779599094821170245879083103072783471263376366226799195303265277395744620754248939274722142812004564305217408947447803555933945920794814082281754526625620323830203763224920123945108810226829417724882097378801561774918856649392557382516208657406819481506391459651396954457727339684521019461962143093206756296173179425054990595685764702130932088967064542453382816729113722983893042620720788368845753920993438762887216306638788055577927840017378942517305488955244333385116377757325755636588660745372910852959777888352065140557426258867234511713367160137688817354238244742376472369666747962148297979332713711585273049383902946024941216872614150898155777914315595252821398471632597015667932561877968586870152884086426143859683924945647821159201916883869949923121780921325938462255144910120463521978182193088963939331333011516820454187893082998303662881221198700339049904400821913639041577252827069329070560943540731255382083263215763016600684237739769891505754140584777420254206847678182835867661959077060539562712149055663690644109192831820613200155132938186117127845785430631977549363048737928572557926495225750329862710620585677405147583039532585098386855534063801333643933663575873846619695564876088985337936523617961404629216041132904593204872030586341155100314905849005821422698976503820559957486473641647159060218621897431097930019774668604196893558932544400661432702709845303572471189703879886065407670794123136998802219107198208079777184803909786308633597906829415486162014246302295573711431160163730247765780517706527217517472529058052015163262554745780591510566006099641377039589667259302751735220490669349836445106133708229659493767352568267895254855398492877102603202600987282267436517761746199682256152018273938977899026312024203592487542610659786543201378637291261387356387788242390690554090180653702503312574413018250006444732857725490334503688057033222095174745887982280534787408731527330581943712380851905500919176084267963986035477082966554250831397033305662622419848615357370841906674231432347708025459381365627658291102277712453609193666912197855541447947469716884982421277978489355568159649940865569265926729579630600253001146887988228522135778962103535211673700172662026733770851998520625164258226933968273320773528389495944863012857862360822247764001704904874358598887798521352876322554218214035593279203522598725380209955276201102727529212516667111685002442844961874991146231698271116020619664441869543354252961945250012555963131074473837577453225637182883083775852557419908354367639123717737838030959330307731298111069793646461096209818281244262063721431675303591062060515472696876150175279281496983434500556275985943254734943608065622556174451233616985715034365252234524392189329839821933620481024545048235472170176026867467178337952648550594062836793320704715979804513048773179631004406090640256438444258422056202497686444369337387219098188676679312209774035981300059567377837323185519608367039782490223870291623838354799300650681555122848142226867017576263187962110820029891324623731259060618863062502880948801436589100831730362956738704656942165304668001147963035446366246312626935555151315667828699802655353702293911320488986748455257442618882375230429027874605033701779023583006931019779887069397904297899289382744349216702807708431350256997688043101497973999021178113659629698545104762057345852194184237864068155858313865801666789773907935693299010515574055324588056515430388843309271100483692696686341840038125179908875997834102185954616528542174608589614586043472778706035790244594125538468389643008890507003650255596715492046465741655592305949149574472583296068803564057079497329336329824080476444480703851780195399868882436139190377248415498635321839921131653333603500279624106797257847256633396822627099511486587066529449263927405065722997462997929448475526273841118302057843993699888375292518034671222748518296851631826481479739950088191085400334841080349292309702905092082540342598862829040381343475643768915399269556424507521407347441292614482695596960733573463273788403305751570662165234738392274669792249287603250687611994033032681495271585173218927700711664824459013407388030149564356097013938226244447235154610609422625139271371657219900434422854016388120639429204984840716229829918414865119302695774793825498077054818812373344359757312444070402840317091722628100540073746885022458374390472170665865441831276642368701728562060980897703284575657055971127989131613276423051459208123887079564511669135763972664537137956414263702573577260914176676913013364502749917255786021484980829986344409763426404960819180757308249638749026757324841220755948160528517585556190577254131293348823426388786362268099328647258765363888908542636726373327984290536186762657560891228600624244560488765788120065487958974739106265079275921273395472275466194008603164654730022729270235511177489296108916872989058558391781724001578786612447902433292276525343128980621253253499596908141282534334128758443810923029163206114642555456922699393861677345192032775733430885622617864527695431578778904657167691854854960935157139289363651336576679217196961211398291363087268750124711020493553258105500402508087348515092756223509897699408938949169258131723344390951739724590437206828158986758480294721869676507425962681930267353771837638309075798465490228050602485070437275462765626298762155290960094672279998091510989184738782334326220778125913438997368327458999598557860812822073697200595563880723597808037241507259376989499573649424672204977042830832110916665966185145274208061862740099808447911960469108681552502963660634849417741450932735198980061576872054957424150432760043053107596086940197647188196364283775839580347887759905881837754198421558280847719865562626969171927609400252214696156836360251283773472088219978949666273732587092820998509193670647865488121384379914361670920428890671699784379155269522279611079118961052324584573039014848330130820091649917105223199775385537696125347343371096241270988903097858918948837888393680407185050975451700700063875663466301251514142721146407917827716746312065277508485308843293121896184958321144026290456196617454525850250502395106873172135662011569219540431188983619329010447470556120635070927040264465151894714172021367656186823824829603931773668914864298837799437555473245545124236682733723234117541643712862137239471858066050224699170705967021388349746952057444408009202007910496986332782248582636358397396512674036905941691732477483255887409263868789169263543957154757328174620774570338175170982389342506550532724003741783514480743890455905882683309217160798574927197503280567063163063522948016683874036110125735761309957900863349484493552321061343888314236490544933524927011279086174236011733632863357732461448239620180727049309701155021483372509881566188427922802226324891518605069004750147046703196202791551361356956077504749710764155851838299415704355670006453849625399267755078379692294189612578112264395934880355727099371238328581063336021923466892771056548295407184189396786665879891735540028888179206320652191337127429409364639793975800750331135016187785917439463767493419848282118911268384646773986283842394381550878622871164998180805959407272483493795147561337855968899603185407906980117274516341026758103031041362032496023034429330039779740516511956689572564923624379244290078120664874926820742399943913219011043997301601338778355214051630741912895716922520109289277097747458968579651883733519715845048732725636153894993678586838633540299013732126908698783991653847479963760089006405668087714001822489994799455063045829634949693656289464820067486525347188257924988195262883503377690511347952685163879594632171171789083717571477931815509746405487520749766007054994041746068177589519935112104601340523282043963795409712305733457064986616379685191467029982011734181715757172878795941578556949999001694242646469508401350475256888626476553996235635849404486777197379224821336301656335089365554772423564369689277109223602470604874524784067121691379921142361114741398788864340026698982841642319925049274617356850120094940849234167136281937021094475193163197361673586264483747850668662051293246570178298592025605732128535810808247655812646014868194754128479138533758382517168270529261537558680445954815403978034897451712094175027639316276953527718738903121444123327939153621810962946474378673254662440423015719494069873945929755089236778869935010346767201001299491771562738658274988794085991313991800534250406668453346236655063938032548539886424045548271083371169471860716005825241538291568750097935512796856674421521504554846874742014328700864950623086935827266173974253806888070060567643603980951536321087055328583506660540207065115511708726246237201363789045949103378901281193440075374609772236904391766514187861713115761827653598780991302598130757133614613657217993976341588816303433040584378609958217636151856482370522093480237407925402795653260618276645917176249467795304364243019197410356837511598317859050332180712403987814092785802455244024182262045952786909451857819049742959800427070107412429066385785147835016044010320184693754468623295906956122718228639204142203732045787651857017070161335092066140301784875261397407817553701006859565854186780044713922960484550243402361777397174449231856322309920954141807422652561488003026854403363663973894310740617862912029446334594554138256343487106292931414715676361760638233896988452654026027260291625946737647126243227362960877517791400319853077042061168401982447256188026701055120200247488512673995148977651476035965281615925434141876809998843699801789559537974725651358457677808373419876145343664593931152451569132447581328524489152992815463659012589560966779960817380720742962710533990743945192693072259754542379139878370086175416733170477783191461364684113664433281224382560379429934355183263361419818676246213714204971122713720091302561262556471024197753785541004429515958108185174698342781945285391798495317780743122519801354573330430897738345848664994518197292817365789334838922218140548179086324616796706477680930767625715383268365090818632761818676636951768833658753378278588319957383488239160069978547928247237559433506290084216650267254804140405097023352836569843072167751723118717788691820189313887232207497755626710580717616427569176328366829917519754655027436453695208076900622903212206477090533258064585712891251956690719644782211025045220837606176816149320110524484266295903171845899202066319358791289389194239098262504979305935474543179533913270355343938162803369327426857076859568991071069618643760257111033644900205686249283139595026818040610499405112539650190251286405677250591970696974159429705899675082114603434202722832070410926364596781408712332328958819483840381659370660058579847229320629191554188058915715457867110542689549457194635984522193196375768359559229796333593598490593284612339799600895800854219690029049230017170093246861168074673331449318631335483119810021120121595246054616299734235991222883551859295605681212836068612959593710338467436206459489344086510084279476410059604865633865888648728232823753528129923436358495150015247237999553192667341943894480969631226322021626482408323490472994543469641887555825075326566331947039565914692994233234100316437866552991514144931548083033765940783823729480834890202039741145580531572979717475585857363346303149134663186121100307315097836955552603392239221225741176043196986871485228384622845378817051149342521702703388485721923281801563362828832145010110436817462790669419754973045792404145878206451781733326072858366653287081066479567462778255967966840333358495052666027694841760436250163220703920550654747318725578147943512998196007323420195678018854096904779223302403583537363906033933286102994340160700388839687336041307735292348611486393249481682802278799990934558746977268557552915772602983359674421726740582838615871645647684671852283851845591164447847312791519966111639799788619236856430310933300723629957639382580360340854408620280941237812698413888334077071864994025996007368002409458432949583747265993935202956551292175593372247963884004370765829195780056998264486415462492950689545631573291125173588226522604564386697815840988603148313821232111836221990124440707881153635337439523382029650374799424004271015752363453711744276725966005711829939501948590984782940318793305740863624998215680192231523314521005543934561115990611230392175404631790947163693518845845505237853877879391522428371309275033307309131548763546984930483061507463235778611709976253695198516385350323438119757559774302434156202019730918899558552651958411262009361178038093339400736248192473024535997237036597090388166131151248707732221094151591800834492241749509149743159592077134638802910209526133386371779916111266266604433839110933547531561222949814934270038473708591564905995364499139087138502648392714069547018080446026519239330730891015405373115119874685752600820849712356939824526140579757636236326025221840588460452727647499387615952048184506408444157413488777452242481771397678736520574415288686526705483654248882397471736067776899718558078279383127949156121884803926471730955561026740306048105342223775866015225924496558363886113665767795143331608980374929388792148809896824526791009688156708684066070567396676044212998650065500371523436678993136116419610646222390755263357706984180322800718454817226348761817106030919571337082930469984779559941556844119807192425854785519513676554758802900519148120451207030921650604826342702521379273586595187424101006021405540795112869895567027385972591647880655353160816285569214570887537940442645619904167030156946913921875804802407036117346703199403634911960719584191887744572702001389841236685196695702627886246203433962634637206844653616998932663095665219099390784019297545530705592430991761044598818237124771425341629089329310545001736362249560761956497193428339973617517178395476918227031582847109168400440220208081405439162492380535084805663106865710304066026681684716618143521116123933364582748267139742477684437740417586114090485177918573442931825757760147886340133615014426821473352099629836473656636389637232028233090926982052061983755799025781766498048143041549119059329120682411939098852994208636098786574311741907377641286566040845379745710271896324156953166191537309770329440795656982999225541085996359917057096641661326199207634123264008213840730855689815858860179035352289658461714059597809092206099664261529940231972871602268335667147794519197197805166247108086800059113364282649553564163188091393442591499833735326289554130232639123428075611307242137896637594578650186655816783207991934606854946790353131703144348495150680966225362433537099934364595740271617731127181905168878825286139600582546732236783576946278375701735821114558226326173094490157408995452345911608268985068113869334096745464297480292686088846012078611838295042533490024115172236626524174254847101181467422631768316073192994532884422076988061492894411070601598704138541270135860637067565875588627021976310305858946949216948794661491434875397080227786943379991584054507660397574952328870957967602420768196687447304974608092841123767624270793642868113320906157178305275117799550467329767770556152759207585696781483707573983423125376954335780412256000065169557492512910780994148622386772502139316509818901384315198368084710816043971077259073841081851063571467987181363309650612936790625542493014510144242411147811530826823922195713303595725847079014733288600046179591802140836860482591017411256782693868047491763007367988975624146622475604202156734470653938204799465185921146682569742945680182629877679156211067341873212515626577946751997880822677001876357571316573314026694576893677231215078452021001953234834810434622455305859620778998093246962347755829796762754245229095270145160968389629208437501891346727352164905352488446112673321735269826411461825131315294974017054965152717786761147962844035319628606679594124877613637414673615815617190504370442751852936897790539413896223816655242772973933222624491136462439270879669306435781621652678690634084906178223180428473829011946439738010759310349174894429129731725062568008622229654170094801169609155814373174020475025674942952309939719178519724578049475099499700494727572662990910665637189241737186296164710463962046358576716540719105070746291348145118640427405897574273147469443356392195554653077810496193460972260742631756180887585742265237268217455845540740237898009251359103809102320747289768897712494674470124346385148759161796845098238202619226334752135044753482174622189569838811164060184089722873564567884938933335921226487820326177382680786903170753074238467701888917896970542058159289606526409408085239871616535354083015501826389469277395240171886997479933397507755385790129263512316447818298979341861789315256149570231690855924437965103956296477970247338431209793611631140709123472732007651708069494768396485553978714218812523222615253661182075876087886419030805509026371880586594703873506694197587850704409754671221067185375943816855997060144265858374834830041055858435773652653229500535589645961319656219711337458907875199067138349848120338206128273138013296996124882323330716638619015384743265604599033581606233790306698322584141125498863505182739836850892729575010296279604722525959075864434795691554557655366071929810806936883349573161321573892065145381788898194281378151512819174729050562726608533956281734060314553792507472430869926661839153167711515700710165899447384439561770389878276422086531415620978567455176067043447737186239091977612854101601347608403846970852692131877602154597682027157807709748212062153897764074114886475402956981388945698252365882443933261368892650923073496786543237952991988964727692323133671108272097741494278421552810266836763530719861007364265475947702179135898094109053292430243309346762497888039420600576599789447017777638192204798100656279139011014623567045767662865780301894166208440114747280423256638516110655843431334492355886327735600186729066909115491488036660006697977409287503889386670133425321402394827703186949048558405690017093144267789773497021033007546572747263579289741451165890740031862525781183904927778305067740943354149076725173078154830537918496720010370535879428745393398005432529798202703385834028755358270002910274417627459396356534643251136257482271492990311160473579792939712333775018133748850082348200751953884028411230325129031551084228697618067592378725354461210971412497342110647407609651088409652677620880311612697875877333602533625743962866910339104026944130881981606459753732166116598610481193361140708102187302306869493029127867233725960422923189544068967821968468672572820212043673422604935451413885426040529109231380175758764007089635297112065002487119861895596998842942720803516886793600037494112747627397761123929211060259990868593299074339238214669024307398203199762087725982874744661734770185619760142067148675359908207687692822400542424218027508018305431552326102716153740859566049212325687888403390007212847206489135333148112284684483585316034489695265404898455547146188767582904972266131021585483533245964324395372915534403297552511465351036352759437448701786768406785514424846951126976374434395058249166013809273397993054680150420785672734268364803073914377659434413169826730323219158650089461253709747426725664342717386605825991973557054498206077894001791218207259680345633362889906037892775139763352313879443973091862150086710882417981630279711879179817878404716057161487506928872977481269047891666744334583135802440032583104923107260313887618877531270577255495729003923242911766837137567856412807680547129644847120971436652710306572209307657649660059273133324566091941291252182072851977826423644432483222762118100539282084441253386348381179036185802757525937691198245193911619326251807100252551528033794485074308764077735492786177107355159253760821340649920089389692516590665083475087955963217721448237269437949214880751517560546340618030665625507788705888916246304449679202250912210189952505105435574803456689477121378011494441129907958076099637332125337820531980460578510427098489295859089430807118760430732286953955308493157885770869433396512672256350427656340406604033866243496579639798042409760005751166881650678885202543977944166000515409103341588551450668007468838150139605540061802044998682132232364082114818328526107388800422657418040356237918314415614029804763021635707745941671579310884525282656493685367668371732118510614097421527477941694308029634844576191333657038498826166989727398458636379343269911942113815472783394637260700563340222746741561820267822205891372118488202124126307860275382606333919153704356658071167902427543559392485001445921042814431170413898857098641773137797899291343337294476287747185480888175938622270525713891294138012907200884540402429380506237714289572418293022740518712324683963401332043863435448867700859951455875384515248005792019658442306808458574769320566373032038199142763709364953423548043996314347698722391960075484801864178822127311234206161428926270544459410051345563575567334220968959723743003191772500089693308547424504153153578624443131011523638396683407564989908379589500970686433499902043423853312210330604674604452289838182583925396194215949040936851959065717117413199614638202637032608786066887170549677645230086959142495856693672007257086777059965363062239764199839801568751871379054492890045843451964652868658949719688287297857940704848588811782410459561736703142332535609221154356757342476241029771893458325266238143996547692764728419073685674983737990381225717914885206413199477168800442962819717812126859326315704592251265901877567033235612396632776978738990599985492848023979788588240115766119027539566036218993808029987937146275684735522620562351088621669847141954877288165268099347050514026210698031977856474455607901246342752527651968644007185825171651933875722439698182863774720897490581229017898616579362984308928824062691131799319236036947629758027399626640504125936599833902347983572753454219260806587611095276466173865305322998488050002929308258365532646224907086438138112735026268921956269487152534823539723051376910179080334220791315927570795132390404417142108205029803029307855827365604642748116616379724146540296478785140195582451986892285484386944051253070898307180776065433149772554678897427234285815002774679616720131613635132644417816286726459982915667315931869721427793671423770101084604779035253351953963804271973203600745278427695493509041957643208168511619443676198392957480254734319269669748628923436785279098042188405685992271227351446989712591134319164386683336216264029337178359783857926367712627447201902306461364153959102605832560060309907150815405370658135877087446388756307152007326708890033439735588370956595207753148806355003288545015109659185796892529803165937431499765577051162272218143091431145075610954260350340444611968179717086777936591018168476054094127435643424693751091105805597745834368836218363932262241213638879723577813821997758909933390121477068185846153212381755568918198446205032107847150102483859564583106650803913089851612233170749855002567633601286427000485113860747030508385276840385069418014454928940853808371450278807546740730529209363932906082924060968097997584925836817272892902646951248685229648063174101387553154974904125690035291721259838897461585720878561414112310299406727481876502616829190362901379888519101339654788532970966259293422711518409556664904241469117093634759384520830852298508838881613593794406741685773207048987652266343506174541300919231704917827657820067611348667606773995007459045729873348324324861823222311823358756266169408271415266618604743412586462864376531108239789256985054198785551101078757329381432922438661634721008755151478820997347595973800159862961269233251775188314311528282192409097510364777944768118862089586441078862172064710516610297351217092066127852026469253138572107648667807911063834517386805656205986941211397413328788996818963407544282627987354776811227049482598718815406163952580026608721829454871916618189114276525537162770896172065276187213361237145345423630079633776088170393709428896324136598327236417287439728617571217670844795684617719378500171813211782267830711999248140184467225610769036814123400618388803359751785877554292589676299249790135955957419769136403492953905356753043970843248482514617938615651678613799190372246202683645689559855377093331862596242351513610635450779195400468984685644055019535127270712434787090242917974066024325991204119916673793461576645173755174406025527238945152104973433789497347088704048003783991966433580331897405614368457877154937794848481290889132562576416134440134922941455352504410550713752465884140703111015438257820821440592357003474345541080428625422284294066458834688660056100543749776577984407539315280119982272436170857922552440969646964407630441216041587421480609323921525446726373407347140517723009619861712362069122581437189655251151857005212446410383072064116829595660626912159943824119286213110309898940731931100845020230385282941076059735932391687888762579512760841545162343232014280171651257517280271745497101318453275009082159756232398844030060301501880529690591447697094525818723154774972473500476565509439392241753011598023024157673719118944106272393671599273595115539369400657369208845672305697955090633103047472898586900512730292735021326182636007767404881854902071333755795116235118998025741958584338491277231665743313093229826097072652141229305298446203934094352038961121040280528166361100758021763606425565461899831632099855181054951372967851162567531716981824625301087090331486022108147314300838930454898597549738973362203772865602621967620192613022262360256525097075618111556044508552359133666194480650412379188342448397795239637243522749920254735970217473992564006093107463828143726128992432241596647591332631362961528455034260368196122108281318929155206170175560417154277970184362306271119124621976287430178138743608557841705564772133842298627252476432186710478298807750788414608026470982883153103001920202861442558657376032269938769694812909595747486278955288197804310068517091795579907674960069860562693472936432548591062651103085068897076438989415137472425255874677785071642670182512871225074233869961070596805478741813070278645076242018742927876545707427239893053309480239958825828256409222020074784482932949230265246897549203596736364597285957769135968479333120621823726858444365356927952165309819868209968657560490973416143556347433021065762245611415636784105105949385428465414662642305204921766128947816483686952141851290332468150169065475752329027182582196957702283462553239352039390574345217041378490590977764534567823492335353874437272405051010148052829736246405308505782160273674909008553637496148597185944245113899212146960606901828860045953052327488949335140403978441019969879077138311690594678392882327234847736528512720599463520964346706771299279983320421015768588597594145073688500833197523957041784608094115886831720902233149435869994155648021322376181584951752388828715379569743433726390646129839465095505526912560208717483605035579357013532538043853152680004086562388938900964369772702160979929470278270760078362328893729939912659261948804584312480344364157196451007851681929058439612960039830171893269591647426826699653783764464166403717408514501537813797561698606916340706119027198602046769232772915117997268611193423292576727975563627466608995552208849404529908162636138351970892224787562726736158644593922103668358171240191988519156899199388413857982381267200088479005711177275138892918054783010272578733012126617664560173916593617699722281809109197751926304983058245657133882935402310999152815791227844690893086264018758147193394271013909186510791335282464002663289152897390352389713109451558305657457167625356615576602807836299432915879140894485269942395649838345995182588786349271767247045648802979621551954007302346412535762698557870726547849259635389871474661522422457564837097810697333689829917911313594442494312220928972445527534326161520087732426643016838119541340352358683277943347931565153459579262266452840916933040833971199127804560626670493279384761913861316537923772741444065711542253783699351663931267916088225076452577198850395245991813841438072603958259758711468248242100828571062683810567342005770986988646082551809371579973209360916131181979737541503480910797728479219334813841395334416819243670163174651364587085639504502510619992753613909265396910969474065719824799940508474610231501725776748801110357739827474163722857428663946877337342941662573267115639965612571024705616375997367012498407292290005925075391848520551111896427785883095779084270078550426561857999092209763802246967546968805837251173286793096644529593908362289171774712503464775870635208729686894874587478699474549355028042759900224066916536467252846812621983859081054465680547918968411792217061169886585682709960979039004222897055968386623651462206048128512131406936373415529496260650577877446052757728342286272919023030614032193428771470774477404666575016515079342623213863788126820860843645725936336464891235616532775709297666855178916917405267467402063439962595323801524175867868781726787095432747441798938888665575942895840970710357908843986455921298404186585632496475422633173430029783952103939335630182497028065541849053676093956284091125712993674777421699733963086969352676835185062311083261662616549722687879246434362282504405070965682592024798801567522914892962663252180003604675974884582882121705654758187989556256233158344221116545384202165422310162972608711585967666297374314063666068276336691609535359568639917581441018473519687363230708486160435660084763160563569313408529108368439765747738143426681140416534462541767889905013497276434994136080744573308284995550058070955316282985515842297419178036005554725860089306885488994016510877944331772435309907212003628250743881490701667231388765773025895034217543836045787848357259003269021373871280544115406513290405096107145959103696133997193903464750041319958569824191728574875425397449469715698160225402774797445251463217054985518811266887292070048607852022594747158532633534938847993721558290358467286743435907805390020565288384075599597861589262746350269303644834545425298838952456920610785548554061049518351293247879373412912030406438226209125848489886813867340883891381361910803542583601307785236964939199269649873252674823508352488840410720328776935061068470666884879741515456580798939661145040872444442115453298577018531962046910985244643611144771970254180555545109195508927680220418141600711809243790085458627339782143072483501866454689196255282043364666478621073432485782723640813923647683150934243776854744874104843032517780990993280982424199962041214915904057434088865969202145074030336303528552078748736551779237589503342706978793587622098715194395038430618459461259844727909120073484337287275094681819754029428924551663030990946038392655053070792541115314456097675305261368786991603725684640729963036822786078288900499526881142408789531091733683640092105645441400341421523450689217641727294872482479199667774608710821538321203917231639485879779821250264220891284851915534062859271775186060398252465021156274673441617832298283460831430224677422204775363973940354021840492940525153535214975021063436585291485926191341147899447033388953433118201559616527377419581416569631220303504418507533088646139492706515437201158144837022274574389468724947197621927932263290235809477770302787253987702358704672399296457563541332514994549224294996046621635120280538147730362454084787720972520394886241963159126943068079518229976103525049025906443658508440852747298892206505452770659300710230311303068802255803729749634354061658594099263274570736205489053135000541502433544273789998061860500391398403406814731795616173615794619849891091104335750972202218600187327611047255760860896367767389965111969394260959800186809863307862530678412221893948276673625098527323500452349393646824476430885983994737432356034772226412999188085393815859040799688815901839549172575368977244687070044207989198727124939228805435591608759147321818024867037553851442372717733257541994827564922669958074399429414611566175621646417637057186991655228466495744653525659818789791076882028271914208038799373291317361794012275370622519849723966431818655369864005163106771573501273121847059981082612877191732584225949740908733273014684401422538607249892531943334792065647963081044249092325904589092611287017924076324569829062080419460124068635338417687621911574428689404902541133637206210787203527779863130024628363019335338716223290183493792549301785513105443309317667691902623395399321964084803270661890491447415455471849408415447786014952091135989448084827156410150386455231910156184388825880439122591596760195497037851387794715219412494026804983125939708264101414887742731681898100032861750778339120937804071142341094343808742846930426131047903743137797961884851799503293942127234204444429124519185939679722392821154933671352569490026867215157548599124762189864976916819355976177073328465560219745738566644063213659968732301600080356119761986065588524806827708671570869030984592027561956940860947489174137975259691820504269027393939882524565975006231404108574775088688936705395538615464709857056017481996519030389484645490296140201083392591215680603010176206259831575358424955215646095880576991514375194877884277284741335002649488299384472522244201817855312420276262691849228483183060517660513870465351651374886316694103720241937143600172507295189465241917393531451382916251863521510146787162475945421155274042080216487074890073675627273263423835494242704460753500831873618125770484216834782091051242701128114634080558581948979142715672556785358024967947730329486939476801735928543753095014398865089857746259405522496218057311733013746408706832142918085704957226671147077883788227327926077928284416711906637644722295576380108208482131512882388071905906823898510518396362583679189311933668478963092930767027587064621426167503415390344214983041010015365995075775743966113329468175553363884234858029649788596347859547144900701841268963974408288335024947957535341958292010033823220127098943853181481017389461818618909675281275446052236512927090823539937636965215094154501390073165647797244362748266693663432052409492223227378032797172403326667413469052354346971786781035048968102646183549052832235876084405766846867188683987778877236544826869096670713596448715902097802429131287243049029440034972364595847245990220067809520919444358208208633691903710237528239295292722738845453786655939448652613036124484072274606838479138874330867620723280475418023889051313605194155793884133366752359271748932589981796781520351354437478799273849402402439618188685980963518912376004135062812629644662414851954098271639352527805617742021782662840827995598226417824882809194495392763091688957085363952459522404932496729049408923321793090395975430308759629476387739777973103277261009614412429546819812365208664993154570442883803328175727064657919288652649917222054499212533539707858283521132252830666576803334437730413619935957816708847650024113756684542781905042507246642308643650737431372901238949776440223246084758055529545630415216879920689508220831139628764278876076291767102676108144882727431149388954316959072051634140938484552319046785551822272107187301002825395568019688527595927967286390272959811748198245628431624495807415711486499130583340420691457819730415193878397643982108148618691724114561830292860295627020597640384936996506444835269292744990039972912605417178156274846435109394399923709234804662538814880857447122687948867197771270012180215035973529275261845544107442151338554803353235528778746453810137877241247629585041809173815435749701749031372118754047039764652913724350100930672576926434451821016643199348038324715391736677865437277911458181667720806559541203328777039852460101361092070097545984036355495935140090402165020936520592757463435002149698731271571435866588535708189267850665668826160409029858026271483363491516673322252907014106311252289318896689535668952430793221159491345787527113078327146593672383545676952207217391694088290821593339524497529246114112064355110357505700104932244934717041602841595041694980613654072641709237416010424068318895270002564281371708248889438248925999418349360306308309758556227880166673366646136108652728140395066146455999417864941803050055713248495227458820329698620216712435661838727914154156011568988886304419441835613140077307821054911862894760269769221298650458037738705001150133870501302736640351034314700415039795065266675000948572795475933415219801227120121018326305477018485908630528107849643766779239903122471648568720102588404601667782193576031049848093246733282738797446728903412366247849853683028634986519512332575359358452631206462381431375534220868054208561561465384402878677478242732971078041307097574420560415167395514394288180402579590048961813024621651921218509823688573377517585675268070938444669860915586840838826759555701064381599903756892021077989875541451306428138202589136876809162398223695229984176456259160150442195102559214090716405743994562324912569004853056258404148210390680407033616169590432397434542973838318489292505368037848930774528084779184558232065303682629789978681015027675262872717214790066118490356875166631816325524669997818585645831896654470235303344282869054753631781565081722300681047611166845646830649705692775423522849631090828792817961310327071356667902937763405404667996090369476279202796344708058360990930444167725185720211801928118151178613990615947108240277348054851146309968247487482116397536454230049076233765422625584145250346672978409603029202195398445749399396681800344273144792272071647591081423694667227772753409249248789000354836271458002900948685937222981775379487160172631128420741934713657946143932662370459974907753929107051034070745169136946202502186479117463257807893785019735810455807451788082395150035778244283627951714472381133284667305484403924380319515434371818729302104644920580398928634574627470575953925461562995842537415588929250180556993662666858582827654911738087806096502471365205015110037897458474147294136661037450483180162154253790180190635605926022174936288791192758769966140964086798620085838347307791182911855187337819158743278415890138099683743912153250403607884245932749805281804400784341980077109577385280634846022569063897682954677576768795775068989560213354976480860900989225900102942402914558671334074212142162352456933906260322250627556299370332970444697955246622344080708428519507589599367244573204689915856203604404488116817214979327737053950715740111886856410699540710985074661951425460342679558802017334724487880769257390972169404268867789941671649690099205810940853653976405124607291471899587466831975507961647146739189232297607934404161325708213396636614030224182771963420097986700375118573934914058138866917824900262256438555721012089076595513380889832632568815652460518153719811172477747077662981229424057701185819025111025105073729505897552460496693980944117987173283447799864876857605684418796925618247731802400903088271579296026154225419203387375920782506182738825871392526811714391008217013158188790898687008797097271255426371968146792573356992466597568936051250781314665556921556001375908150432710717028766688664496209818251152855279506940907427622439594331451634748457420261579209601700411068734128582889067150098552718262985351916916433927342747405340550051470298473887087104781417812880843654630985137002501649611658349190494876335496546191715741683174852941349144262308248797361031420215592190235215989092326617814170293321238330673487329368339208776911235038166302748974220703155685962147188367229533853184178451162154934015524922645530397028252579294826130547121565897710699601511558928439887065103632989690493771179227936497600361718214556676836920148142719589443773888237903965426003427652505055425422955482965109173017324981277417873006464379428149600391621768383512414858049546653497731577648859454121680699327377515182365933776586379802039272141656640173472133652082727747349601084397029616639526450688629990250152169172534030968714794725349677344636715671248661907449279007788580901204769524754654829533731595189245783830862142237040157050798613421891967316026988548644564965050033416922639876073531376655282965685453609323763882455017842556193180472699432454615559921943794965609100936477182219746403621239477491079932745220823181527385590133162996150972090578776207193547222310671755828303785383661865305724470531706825972697945244222766453327907304461984187814006654800573293329823537407771335822153599539568844954271317526300288585927437308194294039068631108440237994610808297855793694417987293441598317165964620794591169171117645741386100940898438189013714638243875879094749619920820295307309759691951567407325528364225148212898669573884154279672941151539797300623194127343368632294341865706095615323121549358556806543947467134214296048936393219170695708494412839532326173476024241349405116120177449137220581688047623523531606475160259541563004079016473516517599136733279450190708629553907569524122109880213549705302566217115837323485007571118876344806710396619970488404339529258815525303579267029329247790459080941867696162614566605049719253717108068082408818324742427195098484326271345209348119026713998631694058516399254753481381820552960664041305258395035474706677931048602876775227466400596509476168692897061899392248009095991697366958209976576267782753961007896269260272499478001854356137188025776630220131647499539283203196365136163251872770451826659267135927031949477876041508276137238215170508718869794572007782762646125994233864713410390798011153802335608008575852516254176787122286205187142723816726136897114999686604792094654155481800263798718673180603661603076017492756618869223224161414651643951803432991032623282145015850454597721614767830800584227777822359756926541555093678984427258797902494190651307500811202940568742039774211272643162652471089726994589901835220103562089863828504898449088186961454722382234762630061158591665347320069216834636652629776129178856436416410689958345332447836229982197556219756717213950703484650206019626888039353605684187077144559852001487713142910761248943539955148565019345563767137868527818846821751796173836407097087707378433556574774789585874205611303742707569593434568871710517577226864485997587104763233054585629639933529426158719101602645587697541297639294362570343267902701595700709152898145258679101841128673564746696783279356523372277558186596114938523013863543844110664644288305985465337668836999512819739087375854091882262386490277940430031757147848070918007252934087180319153858059372411383094945927354743841781268483599626827545373215374864300696697596760929677998484410324428821982517352490631623481355376208553445817157790300363451669354434177626716441724050361096599435338548463800183057826345332445598414234099653787175525802672911895462587815620283768016942938479703694197321501607960092405774075141232426447508580169739343669399116198582630994424571870516222455751479825953925742384371627345377204553736726827782721367312196931438789604452931230052339981544929210630272971995773220210782826502320658446882894943615093983653136927233174228477381955754308977587025814083688831717198250388071756269198491120703567964629251947931241706606973203644732004347971428918813439314845283531631446139898126320322975011461867194402736320394635220825908741268230436010775864297034121799895604897307058688936060799899553873446595391008296485002079787145728842923364366048401546792121096966765360168598419256396052939403341578066741295676877883902764244464848052403088175149598634494598412530362228368728543706702070936806878029542641307708522628970626463397177072977828561170943429903072245311107472390850167546721296904557698164566157757597879364511403654056442287133740208510623244198568100006120470935127192765986667054353711757079003298199037647161711289365365258950802805212222132828804356737638334439388550381071551982969101268396882918981313696527250117626763332339707490442332879233388092015821880855886724349692827122988937812109068149268326148550877344993637541253517620372210388907884473490734043180924368156600847577624422918518266528230128949600463624452316214208547513810827004237336966752344178498029068439677475162957449334654147349625607293177579608870790146099201527202774095745079660964925576589484032523598970044673881395075514310222867122849336120067905853911733378132151615513402727600246980513505182182047534408392139040913679928853552177993621549521893730118156870410050953283116747625884268661087703563286949464430895184827392231758070136896445742721935920836535192114099610270767493162379472919381158768763374684789176961652011414689744629297229724972844718480503524464542777468862456916553565100888536535066638695267743354697257273861514487169557210772440941851816013764893444792454627604464358968157547060319183320357880385633795101854218897231778326738956350634364655914023026624177771419394822423418908987847896837902421607427280968527010013862787235082008403413267572575654593026665374933432512170074450317117225382535074745875135419232634705277425604968664774694809606179276867704726061853726939391607825597352954846150167644430688879055881307262092144150121776893839332322128450390791722288168103701128101331191342633440823290877058100839880984468435980223113200202242506708793002315642524579276107602286085273129673605074006754514688011748692376052389708715986108854841130043128506371388387107895110265916233660358133536991222017601616676578987030755276013304704135450724759187182387660355969960768779855371232021805638884371956201881952014113143093194312916967002495613553755843569715471659938614338590734352624934594218348308687824325888519100668306006956115272483930929988561291936699841230803788175798558029065740623507272233656787227730407354648724267654859953460750263328835461709751445848410604875954076850861895004101256477808839685667243238270776699921408828178439606304231090105522905504752105537345243707008050203837482628030917567011449934233433703377307575149340558530885152998223455410871120939781817408638745515526424055785342923046367999893851518138485851206431334975366354139970480815382478149895809166575697148988772488003399521259445814094206243862462679554779370724828471192416320406670834681750061864329098927022858083547173173838518994238910425074548755724231342485950329610374158434615711429513075440141423021123699467732130558946734475264451285149752490369443590397394135598746499517695267643180962161136611156415499658238700164770485041634451864985663526803798551973178001713570682376997888542115519264879812214576502641993842344687075060343786690420573024025980971156871412394665805030568688448931047538991501246581225223251579664136016628484353158871217738593177098418773280785633950300370193104650954542321505485568491934369014386715924990494509832640268649882907528944706055924514400516885365789067326395374207299222193752820460648232710960987574541117956655367743259297814123403499570481663505080120553044216458189295630366162606060387762402078763851700770968580263574578810637242443706826128185131177079839664253113019633689820845097485734553963956467890577339247445956416130766302826442684368898754919810005350024412437223292891693576148814559744568910273843721847974652310092886682102936233713381747555713688266676058348924372886639710717211691601021228990694051932817988594406946191457887874349321091187594383654421159294238708201338429983405720649741911150190069177823394988935588078220330755438868384630551144808921164431666434464359091777390348039885467460108077492896395423919001305050770965996619273590670918532611089832541257342468307277523476620400724076631172468912142472745224995666243806577259029644631505286073247859510847367350711519240175096209109885327025951425485638708487096051347799029540698742192178765593205279654668654662200718904701196752608473961022558820444906888973759024672559279378232373002401467818928822633486956314995236293761988746000529633603597176396991272583035836074370188797298162236411508581655276694025771665526674509872922507307978076447550589015385162767117047776013642850184751473403963095629033695434000235505423875365755408286656069728464379273523738452665778116803434130534789602282079221753895552955778436746775968697771501231636944859739556439350637902653858998240991773939274434732040785677199345560512963117014563277500067582791716177674185541688345221405108751631117135213658949514511561918492516130397675904534571183726920650337934913722114197185870680117475488792240314588251400025085662882075398704984095215854739282000781107183299329913567929087062191659916291029952565994148871537287992681328827339675808794466557735672833488614630773605811180164726591103850697523991631233024252963699598009645201056075569527992684148987522539696405595311849268934693309227863635201298025262764362018581012964741841465754192218640201291076152219443152098058876318720385051520976467348311652399381647683993309416200273835413113465848338055607330374569786393787093312848688053614810308234268429999633280624164059265285393674253866792322245654897424195922524120091503807506530283355147391285557525429231354442044710749874649570347914151946290357157511986460824296084984959244120209531415231873112073897610886158082180192261851093116945297875981002217250918686154685776178203213356739597166459600622602709469797824430252780364859473985811208752236698024240939699697182302024611416575829825342773769913466175861231539393878403727450343245186084089787767028890326700061447278293230103451389036221910907651880401663052720473126957881152666363202374213203502340916674588854239324895987855883355946215107626029037397952834033003103058292809648902156416146894051076717610735214515972243058269511818417476183454187154188457854697928930536539190993300349593502369841318332257284664432678190336977172579461122920370052557595054120346327026774907609034536508086258398081172967909165587297006964924418671477773262116203389051698754612065773757305677908354306754623272068078478835380278769881381470251712748572333291196598244477817799884795312507948960809968971792760367591962970662911195121818600286350208981717402793720741357561127144983968173754594121969621189549792750973637942561177955915902634582005977262579952000562332215656337252590377669652499107039101482632189418527718359164183670527873017799381780540852925516014546947429319466132569659346337155901709311764851701604674751921218631410881370342744089635444030799883924877921453588220590892039883779247653281002295119757408502084774207163420008961242665651751612750300244881643674317491620007813024781862683240812280553993615511814670409459727840485420496116138414726053573083777659799476182264649833815938799153624218595016016466642283145553554612921567914331765640802613470860296408330107599348828060543014767006560793974856031478930747433467058521809239582840277550486798755180869508355605589662435431422032532573497205597995129556815108202806256413886139741519445497440222483562987139721628451294561972118989087485110587004106497127119758278687745273717476103542946366421637418639598845583998710023444070414482248487019182118442875057418048735507527631875362364039841503671218184977851145238854514444533418855735687067675954638268691282323368937846435756407941920696231825534350917388825302565730693484111746201209504877610485292090697673587213132551203461858355703387196430175088564037297145229757737690797276610177870836385221242868710288883636606128571063430707621361633849309053621127896274202447608073979016607774314658151457739149612808956128699515692012596224503056724710986918174832045939019226844018125273721147838305143521729390373990316787542613909185997697307987593722591371823408944581719977637513279663151196246603594881600245394191564533258685382289624269269835584820878809378230390808166988936349035548453777115405976755524324878495065154679990132187542800226865517120056591990258055838396890502594841326147594092533262605080578896231135847622724824440932959786403627793647928645309349817603098638253608078650866014891997308871641197630064239026713246924245888632347408154277662481156173524327299819618308019380925113117354302950774251597578716507199463586957770739867805343994613032577236225042313200074591610169227850944011648936811320158883259541403965849550613128624668266319904334990160869900795723811533018125673563745834176265974065400749644313311866559225463522659411575581558975354637488723163661297633054456913883626265836172400218103296838812536799229338393656085143756734823473120920322315205040083733410778586680483493763596274391990705723001917669408599783553661818816059648511739875234227952081307126614010895808812549822880120715430202288150107806113890363485369142263580588650014412832546901182089883550534534806672897721223744492915936499400534768111987530155368313854225323535827487566332005336622297153497375532007777545904051534112604726022752382385025000257782257969781219490532977733091830791113328924362678174714263634076672971801406903493306624041562920545732727596899707014444754910803952111295033219484726709117025550102210282757853981112627230681699642786495918374185469111857825342769452776722197088257111018228408071709360547554454406147631335919821811406122125435225078983719569480807022616209938245545546364938291131838809078367365789400493314748513667300514642854158638639192705162970497919022556665212289346768158526147299502336455702808325663606360939977084123264742611005951078589318820564195880973521675501972167088705432873601030220574228528022063170815157792137952005359625870542866382634851834298888092602720174356458476158768315183500624764252235770518222378692122058209647564779170123458228111840119220028150226451731470639110364788856650349780523417315792168874634840724652482837279106549166566823263957247523282393737261356199549142151965719504229441619543019889584138218755376254847095189259188737204458727405331329234655121054209012581869418541575487481047501211736669063052609655221037708243542785788558034297768715953032672904823871197929690599745044130575840017658643170182416559206536254772867871335034568384238717640383391223103898760488324870693272423991267640877131924955752849463659086830726560300616983542187973565452569317681086037529202344015596525379134568340317270860311594308337975415110230539453668809088462223736888241233731760952834181071759079681496465249341393861630642834241004823902334980479371829236509324957468556429024913065273082420900331538125553794144901669407528250017858328286162092002166443688785818120353685830072815798023647672781131396761319182973649417236261773492800453457638402401546298284030948314753296432095857408410106926134829292396404734563900581998652274669495631416938488092753645688471686530412047142686241201545598047109981825704441774946256461643017836499920041098541966246284695559132150220975661322833249149631277656040703686300495253605015426632065058417934673627141334002561785365146426177108738442925454442776446493372951994915492684327174992721797264718588848070664916331016694393308763273062889875659453267259228091399267019223412204284063478450072624067425069639860546471240539103449397591259206869923593547471764544314436911513348576644718240343526545025831557543361963216674102335681979596943721712776355798398356937277736020086301276627664883640713971495342819757692613218586548442011260117659534243127961353864988903057282865921690577685129649325980831111203536550032953402095262817751674843187846753197859521940239982888056256855051685764725980929435746910284641618510734645500016665596748989724180823202834769661931990890880949366449325961968271097651305385777463829766064427663729780867136152659564870771646580759210860783493125568407575186569538558736442453135344618464550378032525709646214035095239393263030849272075303337738678662386750350043984177083561469783232917002388240524913118859139996870179296309169996991185089883555631851504023385994132977248275113650030496965376502621619020612183578400655461344226210503992640681890976780677199446485229277636293601274582751142783830557239518097089857378965480056987345631610219591694237518495161952771219718961358528742777584434280761930918618709552054853575305009570544118158090586796952430269930965142867340303680199423811634419028861632203484740715978040584329504878241077830179276044515873443116201231956671310591337279779584737781665331594092178475350930328819724871674068050015696304250302992817821587213765727250061830755322048033830515566469233737284254493078199122051528811068736421528207598331305839776432401674556614825574614192072532296971890385630328015862953813158299380005015724336710364242029251567526456356174261831885279291701348858768768287147310165537626204481456237609794616376889222491950107408585958708324895533164768627626810891017103924512310666806256557972755567375944346600267483159953316251207868381574472803073916211542703015315554133609016728300845368472975307727747478860488859319375082174217500779663919312537824893360070360399286147717618861777916707800468377445223689697944970444964076760172410190782901073057849704662788286493253893402711343478482228404503483386289664283094840879565216231905452064607522898929568195537088857437649358191469447163637885967265665930775023915125515613353485304822577321470839005463063357678234656112459572344605674701692579533301798504853708759695876025742739361677655743034864274000292298580737379917158999740962218268881052247941716751562786018262595112217800534735741923336330589933115503645178614306356288448297921511057363571271414226339772986491444635310866138526848773832509595595234695891118638088914510042419993702802121129343238711008141819043071115283671057856970118680205481464623503803350813434624133489701445637762263169825953362079978663852870346786953896682834158174972828117686586502687411515340444263538185529452949048294990968373496963101521319296095868878459952926838240438614259552899514723028982576180363136395762141095863405249989209993462934829230471120316064105299378735628254005846829636223896877940655181578706450538695361097112615776303415069604472935188685874086987463658096825354389442730538362636193611631528488054972406353580191705453011780063165705537749820547484316680585061133595413758604691768182394493883088827316790151096319412238125389266036900977881723468742718468309907501079690394734774216309285733873302176742482601163343430919918744565789485741569645178935599496953797980906616477217002769678188564546718149739521666299545980610276925558203335532037415273524228929629621947754946137900515692957375897650219254138315613527759972698932855914974487017963454831385092882021414962514360694171566771188099274625873282515491715192679658429802113893807996627595140059533636472901685408742429291798415702890504753062472802011840834130011045654807516274482081798898434751322128757390094708780844178323606809895253988901649149243710775393583375609827290242374162905367642976882775464336009786732864789727840322746035899909575258815564918635904897658440648266249421923735082218818239535724756754015255687056080965398925266391818824735691090463572310933426075118483311926479340034694889768656161647597832569379188549086598968309979487204555106708842304045636563483782970168082390646301676945405989253809815126177228561124204037049602384787032840965772746196483735413885770973847009392258108256429211932166004729862989560746023223272391057000933441164590988395865708380369686731614457661744533579540140471431672923500805988752389858222986007464652256286047835501075064439859201453141020973171193647608817856426143095678246816722651115994578625583188650885271375057530095378808792120887072388292314888025186381524281243502908224104583180074651344611758023244738052600157878513584809351084782466281858217557138693595865578751517101586789689345838791580099360835961109621981738178678648456300408247411491617725007166729636718088757611034601391649470227897296209662892400767989594464001969342550476578155357417225572892274264814694704816556753807838653455467133037576033156425651471842686825210626869562616607758883471244393638843402097794724002198249662890406277517669834337506531241523665987552649583074481047575212681092542153359984840945199458732942536744290299843820177951183880575886289720354239598074353873730924278877364559290334143258943686992409379486682984956418599402514860073897725737663217413133631409470791019566493821786828077400612501280609177680375694034526332912286792043572030583474339046933717503291077031579787893518129630930011152584948846967712770323124833711681991191120010680725173835614647609444270468778132669573218621131413060102506670227585676713274444479482488355359695105195633269835587932729072492073546581743418532489189311153280010447139025689473737631682518656124789044668252769134035955384218883309566650147090555793113457881647858041507072964623467400603190842018603782700720435783283699659217049908899045685990576695364078159076371069081664548257294652216085614877555462208292588399249097243971592563519623433592246589993204098903670078089525238796868396776190761731492594296248875462724138864182687474753650397963065790043116179981752839092211489174626985312689999488147988255651556268354728042810611973887820081187125134239590548269071585481213644090980007931361125088504455982410884727024464654939353793273996878084564111612052057675840493253041348817128382034848016281514709718588896527189664453672026461831871189830321483270820699286105256511419149109738607084736893684160126162743763919128263907225798850808594709981654372537572365393641390581289439813692745020904816513595311192851371316152571712035101772664209776794796207333788937483613565577516726420149539125970693638695741961114337120800445804912258589682927442756219242861825045395083318479273615128363305159548711639160187676396257886741685549490727090433677961463447527744944468227566136818244818677002462430864356329082945576488419445116521101694213178531146345181331666303823299686784281886956001871764722634032461738999326098879294359651208069857837905715747465117430916628828868957489592376666967533567664582150309032196741760973145657998522366300836822543446893296800178200291382826143675103014962505715919334002764208787475781266784130877630365646520519921665969454960853681167196454323170632904317355268714093050017944616364326492968718781798568098552634185785571618250314336827404477063663844695765612934123274323786541982660397313078859357675505839852449141467816519559258778681744528965160283171421068619222894049719669554198023692822018943353087372291250534109916526540577899738538505289301632477544327500008003235773080243396018099750499246376400743730192114400919645996648414186866392313849448641921655413933319503839813103976833580933442696491349387406193308807705423580362558430601714658368907161318894383627146354836710029058605641557689734602516468294206371367992830918525940816773213886317338447702071750710336057656317575829383900946745055524919930478447077689564354208274222993356792995212082127436406541247095583077737725273728992815894718626151298312597993376514384742036057051878152256556765683189671437121894096953734520400227227242930164080438500206584441250009244347970946807901718750926133363932627779030725797049720888097026969582247131050259364778852618209046028859229477283756466492589361317785878104692969082214688482486927625861914516660672140306981473662047260167917804012723290403014258533663800955727048384142787469828228384856879651969854813224061452646746136365679151689154414925854339670819881969214049578673094501061220607670129047566937059331655571760395940465665356309666128511261649355493655595659002316777023429449305446149805492242206628985362927170799278247800965762254227885615356142420251662109073236851926115547811370636615496378313744575282774429610617391217118108301949931037929537802473497201090054314456711636459723229711053877176361851157884453171714456276083618994478656533411729336588178005885326986065611300944524522719367086143132029765003205283665361803013133084565500308712882018534383104690803090190799527332005837900726765075885376829177801580400613536127164558691315501792087767423917361920643478018860006260224437749698155172240234860786497591858087298072686728889850821672255395601493565658552412711063525198715177276727465165163520747281772362474843716698599300856321616622892945424062570337542923883053391347091130608941196822798397459163587951890340919556612081518364499534459406160536820324720765971645956441400145283592512518082344603312268456526627143316283503055283217672418569832126024587206544289718905769941219793893580526072873653916384994637179614833021728227331539637139693465114623409935279348385652900655048948075167501969169328121646806811774003128478945460292464541714287377293823891873236798286177316670478471314223622185691760004712757571781605177246738424874552971227505135325760282864619598332213597594095097839599526201767626008231680470341316675250732289069102902532340606866577824270334079712649785525969596014928915298436307684427229859091292176102369284028909496516586041712465804255504644589258173681978405148991982479289222791593550197246772881392772196307330271736858429860754088941779505663552849787903554059364682252268111613885825667116967697380896005874556424413863222867698999209102493911140107189932714689282374117426216856997274991078785976132368071135488612850810802832645114857154909894389873596895945824486548167336754803964087517675041198179649241354227597255795140355265920335189308855250830856851560714248560860564401537607750783239358613993507729340057576219754835001552588059715778050302118127015670720019034482961871856060455485640665195294966584058062816270794321908050687756412054650080965265811956273164242095043419216898869109015842190204254034194965565759500159907667575190873976515988360078581943177419922059006077137204446318093209800898560514195661681220309512349793156103789188884131474974226450319230391600171038332961417884206647899952714070710902805116589775289836500892730661963757358558725412177913789939502745064661471704977352571552089375599531913352806010721546174341667867900933177998670135345769784793688387659215651558868048335709110592872852126670050429972680854282598081300226729380570544451231524319427145027869410441820344046550258281364038322540264988783570388633829592110647225849424663124582848974721847326676197230152098739059009556336495513681961653086664216486221250130105218242185187522063714962155520381536517372675274441130942876393520813661081310142737729498028320324617427859471719506354420026269437253017893041313445073943043324176694947444334854853841093498600765274867412434175070765075873229105135414303888504629190366190831953261013928354959214320158151465658093875042571911421420789819383358915560487572788667756820145617485532326931472156544388463431665619205575924556092007539426811428340616419756527933474759687213724294408146917226968153638186983461921129043085742219748037382845613576080564489404406363827160875399974522912549841415527822643474412940905101855572299576972399132144898674788074501007123129086016920944466906242070506430500055512047402138682212154838503149777135661217814291822809298379034048850851934163299871238656266475878073234494702605486474687633608800478386283140722838355491509858245606618627385448478480644507508508737533040143527687127290860095742367113982887913762623317413496512222047732201433411857653524183537555774064072131679831144010057122034548681468133338211171971130408620855636852730871378324179894671584266017138238157139152127560967055002494564835409282544138210561674495086196520659298015693453859679562780309018405979057668693088372756017733495590018301178490240807710061496972066922383406804403385832091904083790495082428880770770587680753863201522446568557353723271837938290186508938853849759992775532264246999205802419022808697522034319934264400478808846376610244559433864441140100463771821348483341128573348207948603956779245816151968389783119382084195611311234114981803675634267012235685229848347911426724104884708902996210660873457387357097697783876527032542617813112354911746503579436516136284539349674153618241933999834744062423529944549305244662995521429138749315143817216896779975815557803135457782145297728696498975338513791856417580424546037497978218128456367288038579381892159487824201228716947409474655431730282387852031934456590070808443545139831175869174830862248093210270479958542347830374890632189358080984909446966252479187377633899699875930270001569467097298835703938491816996602054151244922070386752490802622047655995137365212596274823384809800052320807877870691805869887161297053329813139003994772683400645983694767593110683008315648323008823357135578220510332039121347497541685792084119902472281681279654402914239913646117642451832057219223475497980842752394424743297483829310931492917793810574581561429889439026386069362807960654969251626046784476080975984315536171613828450427621012322020512662367391911133755235087871424682048963668997358296949903701847748184287861678661674639643010345739621219700463792638202154256870744431857806242053866876605597197190548386488761339406302915387014612070089098231535101518221397021859030058765717054493609797295720233759524614035558127404486832178046589498731714903085465575434091273554485205963828583699741829968688314038044314056082896346640263126282253971603670491445924698772560342500961141605222421394504136049723700381051738270084628345822203691235610797872533024160271053587144072806474920277587687367218996528517355511461605723933034631353057392510219980197679871463296980249827589393118563615560583843233127683755961203940323978531057325409354676715556565341174280757845185027596824510309552107058739084939658449409121117678248552070897250754894418012273951785158535494531534073758774014290399147530480608611630406382959023358772572258219198219640057167514513735766397373733987198667701125082510596385535975404440489339983595394490341856567691053842940096904148807892460060904496456546360018587598311307827283689266629194005520861683729612203723537043165606105190741199540378276555481787884227445950629372295634616095380214526127101630490764723736907281542346664915409116942784571428149062997118464365092151165900083394120311189525668026260757231802416902099189663315215079827003719744690453062601245791500069112100033242788505015685904625073951059049958671023022548309842719152224029850119154514597217083564518352455928491934473968376327667071572025587935838529420620750599756199726107457823188928560584241337548317574225491785355981276827225418208611628301346708664985076082178372306940666063830179878008379842282659036733082609297660176918245015165436751631884836213550447478382554164418165659210390557363869945777809982426547864987952739311288737847280571434585880100728471930078789982842247231193327342897239348038686081431159103838646614018204694313152387569557084464126405774080952015318615142399382027626599336689855472719123018382025246001876718133632216139104627179202942729978458174857528952543699515888680049417711511137998519264216189620112793473136009941676943461931189425591622725013373690801130076151856485197431454555575908384751765935508117035054642353941918956739813924713126881351033759856679123376377502648362503367462656042633296210178086609269474861753369902437366993974601298649571109792849442648386039645882380400832607859342398411306388901944064833929090669552730844626229357984795000509303739700930557086539706327524664492687414231715452793946666164951791117924306788550569977310436242354761283530891112668283769135697085430543074495490727063912529914876563639562497581931360357140526825086267201690022089474175577078684475600465850755651695673395961383606033704876186674399559825911151082780402508590202966885899080646106746481753982020246290859190491335948833095791290313603690781836550713712780482702983609670695415508940855462702182295722256280434775237517536941488687359576092547812331869423852244726391457926570394870158128140066101762307206060348474674325704810591900146463403912335217904431292879163422963533084681322942393942482962187470779733622736081955795209259137257109754008311556087868314420215101951340010345687349466673884561486760633277174138335890167466164296603741594029425421972584056636605228408272530429159886613318271820506470175288667319676235914951821764612352990084073801945303940093407351373453968223044200318947367589275926518934126983374018752639744162173329535380846753186329940195678358071393687285555945525639629968601438088680099526871738705849266445136457561006817154625716663501398512835147674501791785491060323602800324384982780158121172737692796040523148941612893019202850141907208179812801874783923714946574263567467176032781152688092559950093243674299356581133491442412959725479418280071386898238479657540777604576675191761576206077894174119559004786987035938117318481169111522231928037729550578232173269202342428693499387928063568605445323662777604320110232379203715343168052102876483896302067051645134197551259406607783160124074061862984780836531272432795043185978692991849098095323827930556427790958287751401991686165734513297213495703284604162173981686953158994963356054590726884174557283108039198224153218876380632753131018145794175065633470767254180512996788812384916172172507493922212815950459605674768214222601081216776609380919045626977384128593306381230825461197688323587601069926671231281972476040040144953987953230115887264240595807544165190941135784241787685026718386240799381327295114157489579791071381441444412207945824433389104800301984218402909884011753749052380431322706550464315633548158116568647629955363511999109130686785670602793048303394500338584485345072980591351639118268308613779522663523279023911807775921984198643299694698350991304381092652580099745298703924784911844232607019135019546869544792547744667857332005905998690838134210704767035764365775172617872153663383835363521627735272514181402632052194060274397437679777580842737547191253280147525171467317821363569284866892784563360469751401894127380392818048979760754965599739663417367843440886821930646647689352174009464800365932928798187479084163537289660154393972243986892891864664682218872374763649226544777962871112089346695130851738490914873426614253933621080751090298937018444327223964740560953403171668775140141515039071901616719142787495597015285718472244701370105504360375834878569519261267208682456825889677564801015337244664267480066638623153968983101442467902993696127051316606907733033292448640383854510885686299332796884392092411157486119033507680637456948865062941980517806762473570606752646704972689315783799921140730399809684116529993573692543865752172705104417521005939874674780308997974106776451333963549893838863109693014325680958227462762421508606583425902773058558674750553867685427093453998005409174451641360729582649215594471466154569785314185596744998631624761935477304399074500438997908274235882831358588792833225351881368248979974994545995501298118231964654491492306082357345746467018047862958478024630357599415260797070585990297594047862794058517552386945026602500923401301383651016890741580012612206040456443685755115689950722198620911463526089577823779357612158688585212787646053626263590264527165264093520814262167826830620765096370466820594328115758204551913378638637820683979394762816853393404780439673050081126814874470147758113872113521006513027284996831627819152181964434152105599030555030650622427075798781912333053021089447426575131180977851747693641219531797481830257754946303187646215239727395814046356818306231110250643843514191766286943027882023463956426747095192339205011969355443293919792234470455589025872528444721627571429582804572212118841044270384844271481071575240893323425350614644263695555713228933096820822746950503849644700210691373200914213048718559828811278460582850127564790636559921264112878366500554775860270860537445683999602163589982229517881029594040513100940143810099272904202038422324740873043694497844181957293046057782699894210303574068534571042111906948748379022793039142537326920127040153109632668149627262867748888680468882150553439454532972403988567922071742963799133243024146427731765940626493247677447271025115696964951874222549302396657220843512720690282754820093451040232294917865090535963346517823617887388161312943207681485754083711647031597194542938849297325544193099789567760110146417295095591884272825206473963985297302036389776787565690618257473944325405606940582451824078726560066298636612515686511442764064683786847384767225170051153641609919912302932060818364514189491121629269936167664678888972868239722307882356966830221210315256830573823883954323290505960577133003720044677337305016759455034648090074313659806280455382369342614727171790001247014136709449951294462230374955945353370685076468916939498813621181214038472755165452369364169457163782922166543706419549492890446192247760371649525411279626279708186977107694409202595921813519985024650927484165744652803318762475478594559759211862641001734824476005135441252399471769362286362249410838580897344638552592045084062671713248092044721367162621246526832703169681369238415393635150232152684579431202351728416391930407473007055433466713644097126279502108404667649214922468694977304787239585694136909022903683990340713902321205326259843229930716635105208316319933845937017471804704417773654501905201678046996417479481225568283658462602646007552748928088850904392401992849490918936347878008574678449139624239977731386564841724138360816190392039669456010271517715483175989735207011585176953805466113317336461921563805072899008122362847122648133873807015754477051873644777688870944371435094574902471579117077402258552105911862427898160290349200733852802795449080334629381793529669472518401145925368011022798460393123651265743721207150964946973963288159591769585732980215295963010135346201624724106265614746752230043619037903096226225775190702421162839770959591792405303827719702073894421361374296087888111795347307299875485257975701195422011985797895692332232738269795698743723640559597562484545875462565155676087831080529242723099414552114457343531718608941515768197264143122236079646285304016923351396917897793987462703818995322553250172850676496787434233274969803808664575161128185957417298249079034287053939229324627303414212522179720731407238844638358454466674815691894972058146264615962491870959737334380491155506023413446524406529549213650418315584074311094346387043208720254218317148972424867503900061070441376114761185066035895672767726409796262776574757816263564994738525500748888672868424721736657325257394486601487147265440718403959669723929370965639918062888100062951006975131597906012142365891400674595645918424780160676421083671122862477406390102403053128095759686744378355742151524527846735532064342650864822425593633730510017063096357403226956461595257363549184895233585950730792343671764820334358988955644800793727260526881456544153671086985988171037306195790159928579752488462538893740895038716969619660561736033284901166382468601831841012983227487201347598303553510182394818146300590290299474759964790294897780723086504920056042962436581814211116819925893297983311699813595055057051174031506421989793702191760369061109749447785411343412791566876846959507367559662921175149992105342497265163400118258562665092416191029559156926696059450975349969678538355640841788278810915094558994125814595403758013570762361392785566407721154169780270683378410896434865409300348858623090029354957361969958887182003834789908989821024216313036401972539864586425182198679935566933176569459487342786326671563018903457287344109515858268998211754340989462816175970866129074863042849944817201656376006144514681238408732736359680323629568493319099310288538274458081078294430247662492851177989569596241469281112746971296158199620402190708012666524665785550930306848660560256375185958112694383918914847746072736554807068755413779611454517521137188937840335795991136152135933645391391363900363902428661424455477179285363081998838605518398025029102278702952140021372154229621666529836491890281981642807563912585038059200471370191016985206796507489755740511894895848191326447164266781062576343900954031367272566721740824433772598017194604406479933576754662684137010324514654847569974513747765273321408363345086989448815922593666555352493906342923091075988251921635853709178594772648875061983781668053291982498175613022983104910451655647031802156801294355298337584872976689943825831922912883422228544684615080178507938836649849105028890848073931186723405765399820081382752482317016676515635964702125390167994507618583500241961328704791103606396814511027961436814054163651552691364284094763970786093314029503840212070651611884027407129973693205772510766362458175939436515569101518563410707846631108882226845060409411152362521541895453826621805394882609803389976030450319447280350943061558409418244721959861660913501730893517428001412468860019476731893700397067958369898533875907947321492525169227253137592759496303375212858238861460780033219292874700461677717158726099330172728495957910528338319040742188511040518129364776127959782925558049968714568769377432908275898286822326927747162708241339031379136107219283621340352888596669002338108845815740986141974671484211683725410886128561042840269332969231156239338079630909789463288400537860436764107549318158123962612123835326174779728527451052047062602215500583691946957286013942512895911830478518542403758825362506006292068607941912381564403684930189628728706336719153277615834102039628538694209113653662010687463768965032712170760836543066543366652047147597506543221882539052892408055670247725731588185572741295953522519433163066017685759882992518316928030992924303688747520322146456982147515062274879916504793690174993519543894909356694911737653281834910203640881078473628627520798233999109127433898691668190103596956232250673841997746205673040412496763823586094049656570720036670618224422944042153745183763627032217156166441481971237827533009378069849610970610292153704135473450445313249873536642787037807500956738778887284962102642378780664395401062854699365025401920795946691481730479803678899646945453772304437632514615785180847540270398509305636815010796027552326417484736607119796445555654068481763699376447101434481368419251143336270300993854398108626162562702926222074469019435071027428505967918510942622216348141074518054509464888629843814482934607103183365180491723347680844781576159561022758814692810147627720368813410689168315459160343247780307888425606506475563505669699384580873135161411357179728678189046104531075187601608958410541307872318151021168027843581321986301601027738329477301136639197764390852833422021092051615873436671274719909498345706843790273845997675959265019731021481901045924716007005032246216104857512539963764633277593595325525021759915749686858561728738028571086817111743587163942323110006795001931539063817186481263815049619292627801206097395906562609697967515292938822823571990858772360406080244724427030902526088039071615961284921024027291848572400455461312980321873282095399176014447245050540807049291689204389841889828514247073406776385444352901979941891712783694624329039029738286119711804656120454720012700796328799571610294967329820880411467438537362131038892036174743020725141182356258835461078735384039922305075712974721575075908839351185469319861944740798838808807847244815464575123956981672838563093455752615584110193448929520899387169840003352314200835561214365397172339188605219802809874647660963838792431823117074424735345547677544113051557211884321177089753958560082804471417090374685783826078565290714960231953696053498747432810378917002020300214135419145547916338057541672102233762085492457097482157210199095327372049432875293734768259074722819170529070129544537130743569409446091179738550086448040880114226642960517833198440097613609838548969325049201562476295417339341163483027159646216704208932982877096469698408956708025837011715467383200683754853002965360226346317399403438767294166702332302243103316171594566065028431803102497419984876736531097328970057157833073628826675338207530322792870104511093286170088573482135329576952568557595311229112471437052466846234688768707835448964659423901435785368816040241730076223734556915430977212161833234865691713303111913001911491555827892815059868436884601118825784639204022312006835754617838500071741213369204310321565337788571476888882128828471775580995717373359387259108929049364607998290373901225147188609973360735439097178132466818964427245501060487560194743375980480336233221604782540157633946540933799956653376549113656753509021688901806647002086392630230904624961896525779416260898714320862456044014752341560536411397297828095654490435745752226510142183195523131407503350350058259017016838123980926902201609715326283446633408144791133849474455615192136556447457746692730804980949535772603432730472048433505893101240519850475047868046342465972946108080428586977464924463893744202186481237501517120853151323841075755473639332892768437966540684222231384668773806098022548007921387850241682619446178513769200420632820907389442929327487956391570252162295709532119579577167539052648687263656931414005271462704754919743649861151601419621704476453854721471960639094608105637949331580724082138374465874143008942646874372184758962026452517172530805215191898393946202759340804456288815889786842752014702844404065015627038118087833503162296543048724540806185363849867208257667059981482027139507174104452942420833120697936137455110016516820749549643341270979663182461810979973873400865500743468823912365667098379795172195654372861732974984293872089615552750467969126930581514913574051763584483310633492739006110071985225736864520161891053370064300944511322265688237917276508062837814189969303689681934990703982738914464039296455050690659957452101941090442533875282696532168071304495237888827313208536597092172140305838719070996893629703202429840653414184221187017300170232917987930877395082190648979472554725439811280670729345560711025272138691627966409650855764147674751675173256420148781065493927633667448063281405899736690687048908182962230141708915017240443921540307185977024323588826523247405576475208486191743053316987740510874967280516664432989979443563921596599705070725135827572342707476597487635898576446154566766860096395218763173652885320241685845649376720992940624411871127350527177893053785523515186372612829646614686082838244865070185809642618617904617718882179166927624940270780532903823403892369414686144153733123125204444815533396875880888248290961672840926050474208535137369104806741928952204743590633039367728179775299034066811853358496536399256051453136818890279858899749084381422889541612928741618013784558044816549353021813694454900389017347062253414386223593622692740771689327918506172072815334555745168647093201785398156200060271310593032655491487057127668233225640867458501014326340062037971633982617161261526233481522270890555004730595123011020080318460955944665626290327856518808032804236517283997600193601014744892764986984934453360484765758509608519972862378364392908222337046290398978833338326768026222731910820932875896180779873346515308897868301778148628776446675381747223401496569334247567608158163330107725346288139494138051980962147227933163863129044191758030611442609095381624188742976334078299196977893510224597143378787461549515744024522477022896161173225067341768984448812731732636917665416222756217352286701262365727297099671913738183935422414519945773358303201810693146632127476482251048203131374167951370043446645836849166548922113719536738234436148682339875096726620669219490343917751524299954943417443108011320224288976330508961166947727114443660378155453740990552977752950201231894397111934235397378953975567941600768794951048796901281817579279730920095761189129955005016242810326087348677978271048527875906965239419645480549585566621820188458343839857494267264396715432623098530904615772803765986900490883167733223561175330205018655932212295335020805503064530631820360880163004114943917744317517112099792014315778628274865318275254569016820750399029329234536821050444349297205532059245422493979192191540213748917805409559976054698376016458098798074934274277878960249074087768810200150318078859920293085935179363302748714805258759129508298592569338759598178054368842176924894765615107577553707816733855443467348861813278711267527127484510102593917500558068981765822003872726755291912638176623538748579271862842732006190457748655723411958056810126139478925436983079877552736881279865998215859656192461446492997895384434696684625587110309189851105959401123720470195919711584085227088547980029199015777115826001386691094882831193744188342914463142610285081329591508375202830242414072583139095563097484873660633665498838313535883547733638422378658185632113299345279825791880690247178169872789830489449608832414652585366390260962806327440223429373916011875319397319600157581215198419241193481223861564465288943418792399257529436408324615670428599875201806047507933778678712587774000170810167110487004567580910743669787196910921910510300622424038873436880635617132647795676862551485748466727005390704897654942315869676187020094354749122065541242465349935287109222301838899227342738491667248002965437099318492350791053616905154219879953252820527050028190873552544500292045495667541896405205396290197187447065644183042898403131342419845101382960033287069151471438432308170497122504368997450515216694800249101730098145599953509609168859276002381813130662739852469655368955948147252675563244467986228917840698962035327457620784529877361555759505207471660225353594424621057848775464812860562296290740166524105225674592112884593907891667511331414174352101529928151647030874781798297047269544044090403211577574781686357262515339136618616492085445679575920403448073107797058916151702317660178275043036080530851340181253368917094758573874122025242173974565522149181089997420905026707637727908891226635594114171599222980489154202770296841939845244893657091196066997381897414735522887136213551511674133875187690121765610041321772573857214374105257159387780239950550248973396775835580331547345415090276156164177184353108983389632293524019589932080006105248910213562429665447070627737080599783364427867173233859372339110253236580475635462559218483770114191632095703850177680603075685697313025732005323180685156827863362186395723895245809857170940980292529336128952897675825135385480870700488767814149327259409659171377584595328578310728992908102204617123853157917866431312435275571979988537100393356223846169527853573198946016580243452315679138920818133375116006431836610546532646939812775335108370194276918106873516233459352848193642821795375404475258246380993384418384647220950295665564030224058538931409373938192212858313509152288309420362942184835739763452859583766536497324049032588903913162954318191517464517117312431659509310453193772779767742203164669100938131966809487860443776377270530032010679932175806941215534283580958536198817812448841066389104455114346617209618924940529799376985251705447392654562037704739658351056629275846170402621369486453073009675381294274326520721438439425614009924073223066783769348356334632024096054024038121064925465053439854802388626212263095970523072906199530004297891824298785476822778947571384758151966082820971515910736565736275547261536051997337797432231712742358735153299709889557907765725890129356188691143746444357202178879833521465852430529745372784229240965682352437038633351024621931450463549506923894555752400148703827422846473387290703151059217394417908254390400677202675512020920194826550533805074845862366101789844978536347191927753975493656523430151203471019915698718367636301358143846985866164525212429932286405750351197246875597392308517393038967537443966817964230591181819326296285693908411585755078733965932350969060769483922223075513964426226672426821682889615220944355955978598227534367315643819107207902074591123337593618559568382228486633522552895538215427643970344667711474132959824151027651593161456222205176230025617332021086823256691800993442025949690165904815565065535639445224932011069415308609123087793862819659066673296878777814333666995169113100961028949993885303782017773015813260844250092985766031065246035180081910655336285677674774893993015605712785585516916781194564701536616273125618984545848233194759601928545127619210027164712839977139770534800661407420262027542524867876827288156214157891611133982934508421276664161226588014845806303512538455902401459271016901030944188410060412851885868530148488882509089163104732600169411675584622391167239952761278884629673405347439001503718987823669423037839833013695540357926482996277238281685690668869816367325071617747939599934899372162186225811258714305401494994339820739685710057463269110759633850649572681522487947944905099249360052701596733508817692036064495744302863949444419327744132688363136337441166292615068284384071074649363732152538386229878993774160132167737228875612446237079981837549306460884285849840526124215473376779720305223665491477135441004545765015096434151019579655227836378075700571570211003616622823463211379942308167896012804684241725797832933721616723557810970355861387020327376779324163499726542847268885511086763660192000789631186319118784811896726556808857829279685371761599405899247972518163974957723790036323467596466627852338207782313263270416603554443319572547748607084602786232053019052393131027801687591559964346867486615503084523453377537442850027350329957399469039034552370633693281043383533443300530454483045897272622123008177912082146947953215738014613233730778386282901174708305276528971469605637837588808116201090384393834085225660784278429658148025595560551241070316353458653216879372460478549644983805673525330005280642004326218369050648415260448617977122384441000668354672843760678600541674944593663128003777200364093098564241993854154263097643083301341884895369224203092588545473900695514183812816620325053957212794067101063494574086824865831431394302791525249633842845629511876999911352778087264320314523570732733445930565256467720917718018886469653814987797871571259745731297299602665140441869885144789726702125148564697607884373903974185221491149568858116067339643597931622088077037658299562796433968662781235293411776034807491344211039348570040992782949374090762075911537203050682415212248647291910337701408347949423966000989922598409408435201234293991395199702107378986157158328869576943466652058514815653746982026290734910776421727349545800108409601889601234138795139883700439633705936699288939414881628618787948159608436993118257981921925658726280364163840219652664243632859772496761281828247346625716108679370950266365426950836817387538866537689414180365980092020129689746918066219924130820902226206742610984959083360596718859100760868533055445531346471634065829849124700267284273865907757503353837097438130386209177913234308972152215320344264370885242689331412677027452156575095069004716087730727802831263850450564627526330098913392924348843243841446689953118539343534845135644833225769951466781178012196015968439646108134697512466282573990180179203177877869872723048875043093346643533955999311812466437078578615402462405609612808561706804440284059852108961280030935712166875703865142786491297414619126125359604269672846271794794982920994542850883582673527738838074438011054660936583750526426944530304628131611092855077046012835774831548063799229866529085777708393027958681790661649138106255903099270476836107442463410058620956352501711043583603622297829615669889606708754124756131942271896502860696132949820586413030178547121536970082254536094037734512616474367814601492139184578258730855092234188199155685512930884086780617643016070026875552491855918983836740549639002529640092921224497493378573570876902247429066625177826436294312261397360792714934369374378530910319664198763327841158909967038610392723719488194539254004171992540357357308464569430452531367121373120279286630053958920908541335839340057998508049054681450408219709883786638604489722606150725219991518761735005092216289039992648050319430022872530433105169819824916823838883163490258546944271147241177575296160475724213883397684910578764924237051501077367580391543080233926120586918930959897677538933475969910884314753072566158143604901182830590652979934304776142214722513782220072909621128359773496710652905218360620301779581879339749449414782898306572605003228627813216376382763442927175276448153581808982953756648862633801761476599821628876950842297409103626786932645982754560799049132122992357739866643884236795887516724728231906271946254274397774697319492832916785773330483292091319720459805631830342893883517238517302342184480523096287603807505083548625132750922219891965062317842962762107637090655415651117319823654455184975256827993837217089888238405455515183653471198664628970167199858198956332457364941509515119999035855970340051926426847096670524682207635972166508699995052473317277241887434253458598135412771960473429327338339398889285341698102286306964528605614467165048872598780071869296423705855168272023231088397639103017553663171461030083497618152766431344879266441904510098012861898903908040506501479828441217401549980137809888821868384374263240618509429649276395783437304071010711878584274457269031688394360419422256000235931467426188244464797987054784717776796616767665679353168714307442954940982609966194859949614307431634881141086450349215967767172560611346918332779370205213935586630557709454904579339338484371829091502296134704020199740944846657192319191059558221669438422730454933576835974796541387925985858844102158649855902124341702415333891273921187966415941804488063930184988372997608497473708448239446682177663468464279278379923146349962861861251361331201035216197599831356486644768078838221033463411600000428530701570049476917035084376875905207375190829310073540585862333751258505916733338445646387034376278526780486617848708972224075250119230816560369003292867813601409924622839733439799978141991482735378685264325571132679382964197436819476371317095707111572940532155871284892252498744498982800059799581870219769268873510634983593887402137198476771056600073081180586034580885610192525379489191432362711097289966688865283255359657915508163450250371784986841377469319360716461988361581816399299402737655446622304235881785473425118490688601164221351445023494852048920232941133750447490255861410285260451898612616735941288134712566215397028023681875622943449551373848710676576468016378173267849665976367875894180049818665906690271732082063281341059617208889484785190250154419512356515963732593301679623297817724036674411488114158639275198539507572586578851575076324402963449047041509483482006736310618598119829697235165301849014470601578524442719975483130932460158986602145151013656291034030074220321029201069074480807823702631460330057263024018888568810181000038550889150921397982321796025416294644693037976031087028439859519029943976497092793252579539970310000953780434010041644848225087715587836762338820739044205604615519598672067683982201508382308443361058438970679156635575363219277383042374925905154462523398740767144431210892589955839951915830683835802451664507735658863597904949545089882728393197350577497058833777323521209179910975311980904874355606993163507116994410500856911904433786027885997851948807555649949290828840739164734855765668052610472289916188529404364457968881066707530378737737039940187095512501528429289597671433062019468610660140701993263530602818479109756964082245586620264650415346912378559048576851503365853535562903923299107207213679096090564426782088487249662550139395787124186189516932336471219059881298823012116573277325421908292237435120301153251860554937928023333672421910185346814336700726226730026850516402408051118731346395527343262419400712381133392606369245716484937226810039171952554308825401207879655868812289692858359791119165242868873939372382655106181285136195083356304289905621578185726364239670956094474885693597091754720841492578877940863677061554796440512858037125121624432865534500369281277537572443573840373932695932642910025243042463954095948381613985905267829033486613664466188494560837062075885602450669139005657899893516461179029914568805187005362650828082367218298755795506356263689146493595519421340148479155137274062928551840529168969556353328908373687437624892135802630256151965258062242284166968631301047889824052063190487540531603749653460027625023407974304177406262468896517868719604026236654163200364318866049060758352215922813155838058965488683609928292963227156479468162916696557590559073272556818330132158328178860924441265811944651629349188244037231666449886036196796740749989114426217567956542363150440103810631662032048372080079061909358866687446487167368376916510931989625168774040530367713241550883911493666811550079176153859773741560960628509230163576108434013941291300446491864286581671505876127131766432371135875168591388283860843373995262029101398092772702560606587598886885823442896240621868158885960515560363049588695825739633761828999764044551341389968358446001776545124637939124673755901889320973613247872720740486580135706673009557821245481634801172794339856674156423876877610634330490489251717105922679045534461810520226538992425972484689152589838032210103966019144687834499337260753473127455306200743432340069268149716330371745834362451475025496148908578988210001016838657355623975741334401213510149043650006056069024297684441173212887305475701609650802517389698933237105145493584143745961475650002514818971546692741220853436007234230073527143572092335755693990895206889019220407786551597893369762694725459304188750821245039558581118014155857765139706119650347871591976918700665140620512936833983565988820977421585336759476407910254759747878910096774375153979891826833812655732955063741457537645445524877113075531956533906701944198566157565393618120456646038909336872019833183952157510911826506848040065162994532853956331896787738537461837234595971984953626508044499650595931756365995001752032570997136932629979205148920824770714967242776760269243171395646821379090316838787177578992951215742990964289403119808700825010626445988705202089941463556721384116920045183497445862854876596317865306563297450822489328990877948710366481523317119031618752139056194737888133767339567801617641742775815977049675946160956421872935733102671435215943643472175186645201658376629537606828453405744100566887556165282071966550266704569911459739828312820688320930714885086391600139903822429324342391465485495591939782675304404468633754021814872570935319050704919267989838591442636524165633242122253384094896691559348028378325390780019193689140120948912305179380412148085639003459885297309019950440373559413546246478602272296599336236912983008064229111562767378497265817604155729383533616685392396713302104837999786581525158249687116344062915415945398483043613664386923581947850642123870137326647124099320175849029437664303755348268401578839454917077035680676139937496834539806517017259444845592877430139339303133691646595091135256730351424636602818645872678258660882994394449946907296341871181896826641205122308014984319365397367649614091737883002342338709187944732675302553120097323133670700696594363855907975617337012085763314162533626693369662585148743083804710819087042370145484047347031710041929170405466585042547137044104726510076997127518534798314537071675475958802362020946962064363750613008618246828273551376351123931184621840238495375136197377665957898009684369772376030281567179942486044881943600293662395303707639917449990478113233053980721282997678156697765178762748007944696348336136244687448115672915747239558001281809237819360728758901664639358686292433262009435925439230505221268592601380433544894970057600512203937246929660827821333540260723852591903591331579818731184975569616409737008841369290612237459513785442791530211262209726502311793722265553258208008965620735122535526503879193951874707841296083216017717379436682431544484166376879445429828408522718254972372482707345094681367533719800384086513541064197348119405296158020478833975246556611938813935289126127606828238227151135800675643077048369670455523110231953634798576972782056277426493128861397425865515251416213452340742536722917642028654149834422110504668242507110996676179630564667123920078858290899926034638695250049942709094982573074280204375495743689673143456366581167761657422443343151271432952001304927397753028581119473020697188027480544723870960032429756541253976849836374694082584954418874149023795616571897443270122070341046310070361257827996570282016159146451657131084475315413947198113523124526671279372434144497492849338160792525883479681022655712533344622734595515126236839509401256106280461238099572334856016372571787325843168954889532543184849088431177205983576445705787082561070974441683360783712820600814504708100172744145997363012688724126118196104185887322025938066949925797254619119442033087370456060056639751858149807448626739417701433375714956467307741972874420394730210790507376088747670471144934453711587955750161868145253139627009552957118920934134163508968377389751761858176839371539701092042933251098947773913003070025589451518232161543412700450452360727556194901024612162096936098888142070452975783759137338394945922605106509713786530362937518851274343214735815047791044224429971960848631457521845500474428374739539639951914050033975719746222182360202910757525699758052708914165579613807140397096069093833386359685826472315850536997601462325211632633926870797886063452295480892140517403150450479445751321560719160089669122933424712578849273074178031824730241517254638983301340926233168035815464854502026277837717709340392133929630813970190927691696297228518549144121607140461890757573133324523316798027764283394600870865627473624135614846449052799544874339666805337912211296457602175784098050596313755585877350174131641885204073349348632133392685696101158096959401247585141956487833482695082910041833319634277624930202780252764192414265607588873543067543941651009956904870651924168258535060701475806050928487835048752553080909081617764817757109681182508215151946590704474982935816459624703828372370856754136288769223636355955993922250858906103967996926321653332658905789543750216539823652127253860765007077719526751026238586772955543690877597296947206947969758040359130239515581183775403019716868123188078249870929009283199429608141584756795073987410521217101672994752734716320371311912712029292092240680386408244182583284891045917266436341497626901628024520913055196170657205456226077096022539486845450868692549960400983393301589847165072671656877900369012991488735669219769706675863729158532349703009925561753348379824830459417823150192861297106480713913291365323998322928064047224921593863238649647207940133800342189303759496655175362986507062960570843910583308064416398625727061663118985782764153943498779155500472972974963697187249717513653622690971174281510396305620839065645240562212456864559825522313233737037206309505236210606533773842378216947546785571767037926512436616167149195572794875346583188078735866728030840339787119879102083263874343561036245368166490687421342842322855235840267793736419312996824853500515870826343373686431425197654505393006611512399311005400069969174114828194471568246010117721107402532402787247491398465911658144390501496570196655154377272078015202128106069494014700839109280350486468420022725222489746827740868135840396970632518216768191074447786137052141767493308513974375304002664305403894501940959458648385691493678795817176464502715426995277565360266260407025645833600382625836218340918899367876665256654489684939856748344763907254507745655708100487272918276655561857600951777943853058346381626827093585858742000913909137326394012657644042573858673038595701699273993044538913507411267010445924968244423054515620019047770313351376269775181289496480928383115319902849598470699480007349165349622819488623212815159845870458833526713621774700404531995162821350245273637836324328106058100600394460796275816333712582969281380670399275897433724337515566099422213885269727666569107039437318969076912742403462193902228799752396666785408638404660151020699733163276606452593065483033119488723535911119617601183447978894156068190389403194657452678464386365592944520996814716194154433027933948084679496239138621744512706834370632234051796589678681220828855933316847876719010068061260957588185806500943770125237893324378597130359526499539635118269701480093257653869038901239473232812372828111150894251524865814750337326326779967573934447586125663513235079562461766883038401758337285862443143661633536572287483873090374184798379392624904742952319417901553822976086422781390496751763130018069644661867770664860220309228279112589806691456924032959214408057915591403831480316080623005412706352790184172648824292659948120083385585721029833198930257597433622633605451536846029516347414430937316935400729237615029887217019063541212299963728825483091303428548851295971241123857968302818331588005869284437646688930970005131863950862528536325126546817327933273528243762450119781772966978906322492042291794591599055413443002354697734196621675905772043054664264756430452350580786524402645893281116414036833478755405689315070611164260323993252634121699789459779373269702626450360252896382273255842147320206401287544339011280080664154603879765044876128895752829222013047707971339024822517497835650865207249956637435121519747291584815964208111898449325285646150823267050589637618187432114477433539873012766025749791230096425777011000246913978410167803794774511984292967221668184946616782454347028401974554902801754838390719825248152244407355890648427627739651653255495606761589206191188209736658427582430202956620344784862290007199107020484522873140753159692020015840562161288325090470701031245546972566472034996809709897448751329626746748671671338780192437287433127772743285538462256141612602066076692228335679699860557716353596183169861899275982421759877213695273457269711206170757483139432532854685077165122397527868217828161081533944517012361550097372643685532180916633683041055110908188048608096345492764214120288256901895931946952865645501371371657751850164832078390041790625793120330056388881975162940564461495858688278322141494812738304395077829477607763351059038233091525179783781858365344928056138667392944488794396515497840336570299739509781227518283346867316124613161562173380935335465835948706899059203266476718637118396513482507237595298023321085912205166927663647029948280606273551148831563694461215745575930350929244857753020182225473248964388977410583332617179381588030327015456680884728767962744725801302873807268317272235253720923545295092449131439640137109652439475399393281175199038049624516211115926339919101080365137974231939385137387323003844054000169689534728809206621194351092350177174613117093357588487471125536766594078739845490720812409006561236563547430380399927728898445816133189378955393735137917753085432808867314278015104621463770596821237304013213922753117919614140778701847162055622262409452435631604532883750910682861924229037253336409267998351807002380217769037775101633182320609484239539410072751949902333202476143286517512297796716178236803875750023946858562967527310461210952015852566030976052171636765732592518074975525386889066891521098166948915521198729088938958869541142800176075605900394948936571571442932190109022157383080494848679977602519351282305705440058196128865988849019825720312082989956889463115113877825190932498084350041474312007934548944400847379180303065509199882904628893409766335846432050721921727216591000129223164185485025340287675602827876295776907157618312379797461579609653597290849914778591769361185318801712622481954286122144874933846654742589006336290578080903022913345354457786397061369768902930686585459148462161798575991379446677902768957831128548846154345311336538852925250047267320110706261422910204080538758279730350077682659230403486085183237007931620060517077154529564018343144817205767073761181846609452947804850554651985752174639837166771791798039952779133778008354347004395248953233015374706964004208675548117498768285831168832804207203020416950467114462366286937732100652458798535320886051606002809269691546267476696588548993549922423521874391269634348977590606198420241827607439871290761545117725782990156586320681501754165186854315584204288044644661194043608927394982196632224300197168507093056265456158766587397252861944292998058679468256116505153631231441587230118598067922662797814359694037594507513346752830916243891694931073615964923481316908559120992709277224032318264871730251358575199593637286981973463751217481705662881815861602228272778768307206726520081002720456108473222311149000961824793814404962484843839424975901216232847130538998583206728094894924078420804460412901202182612156733206535723449182348932797363852902088375404790368003277937306240456551348156249505769262511472285536915189131311412920405564798317408892739220273307325103750828520902083323755147341288538285104898335106758337144741048908613984118356023158367720507789183564648949107782198465202626717774152256377012457760529947875288647117308901069952377012629036045774885023048072098200765109246857173728102758921010213008745672917126192534412749049555516119475773917718796820523460822036316806002997769471641164942177721043569747062280812006981070311717038008365773268515685298317837620885301673446480092875267833068631486965824906463230128601648693954444289840105185073332660086830836416762407118286165874349266114560448575896387328543877800271146425718296349910347224218410760031128915892507184452216185906392021785976707560062362582236990267969420399009775476593665041270228479087192792910626671041119172971316700107938592630089652228211329833990023246823688755081034877730631837419326238353600930360209173877071698417899231313242022018090414578382816190242155790822673696832752432835566922763025943778937267680096563932265337029687276313505139985196276399407655509921935268411672074778296974699127580550034890999173645546478997346441384100890536980744469666516674091941992069384432342201344207331164643252036626605134852313071966616646044583866572385693670944316929947641489797542011270043038918698605394262571368750523146179856915590485927614397661613987699881077187104423235519173299544501810516519769940967710132143589731238734790580418799282611794786005819767093959454888219694240802936223240428972557504962456610866586490573632285153957080076594913329439899471361608197533796412989374822633566698905721071150785955945521870067690844332099871468306436154317349254103631293866785743956519461544958220722090811077631578425338294750990996798454259103188127558368456646530897559353255258563569564845845842340918105709794897311564056253681867188591705150285128558778979223699146047969051776010248340150628685937531019954290654620994175688600383894160985924805192401401044148106340218767140939363840736620951803881140535952325157298801937925925876352142309172971266850512708598413528602126820777721471754423466371337689242956066042739311746369146874053306380725736750999062232080356548040533587117103599565120740988991799354587556719022673464412702608329079442253173291570220571216624550649676702765935834709882718975982364777918490559036205939127764812896308509419951379748017939931585773347457406412819500238603321790982850224294151105574166999213950922826522909963149950366666667137387464362671995842587505012937605916935915570735995768625897841374743820161709754339287339347736888042605601960910100706006428951632953567858839126479781950095734575086757761202095619169850184222223137749110284813295869359458744190242476583552502227223322431123139162159384553487256304688846121359473205740590776621687878828043162948301097507002072664979848281166922368976902849778498886247801659753154887306811616541025619578466257827714893844722663712327532641231579288051435862337639012695166897780810265575133831818381846834121683749463837175773434030119953314582407337824339397987188709860737203824475099173767791207713641198381802942280918218559887499165880490298103162901217399116464392325380024405149372426476541824736158968013775802247660087201604930245018849653662401983190894510075739479480702828673034146502592443641449864836327679300567335436705651736042333958591794016454548223491387406550935392718090964472898235710096358587651821033097310709501348179021097440470529337492003760566105305750112289995009606057238893538291174976677419304087828586133497139281286612170184565318550294242971650321371186865407008118078572532935251873885777383634516750875741805659196993794804470539241729544414953311635110035713382955394541209278595936369751635644608327428454483569145025104510424512540547005967479388823543638521190260451585437701912731590197349668075646099870431317363278274734256026084539815084914580817531878122717458430126038565097551023204525512785788154064440379132226425974561558894510963265793583882209641911711195137243111078124060146642915934699852406954975150847034234566323603636452809532761007352662294725608855110695380777497578144263367115048914184806785381474983827932265934867460781375418809680405518388939865711541417980065181677704516009896283498302091778803544248156303544008090235451652167120119410674685973695644582283828514092754490765364060568867801635522731523934225868383489211596055534829974481450573489583585385611638173142128954821069464546592266648350223685621996088245781737273494603382057314924924864686948760148840764265305989822647387251551144279667180364920406457694008594218727196183167897540557711178810891306795383666975641860026422863360200443011069971285056165839614040321663736120298265618949461633479551285748087086256482177057056494554161559184250276540774577367679930270636989928780579074912127104329316053507584390168566351581814164864500945552926161511251161356548837480880210903488623746546215296542122065670969821959127199853746204151096919128218582442930716846575539098775645193591982617057516934386246220248909783979864201248342309209318695142224507475239250042738949662578666358912955761013788900214018880418931714895562821159804536131067347165331632276227898925575435828921906003694975634190468266547885668430434020805000405533586242976693901740843492674840159741793806208099799893122288512957244511854725481739462576487666148107513583939356638010607261168637101159689280387098588316215641775010116941267467519272685161373334878432950305458569828915926380627213897812926995365786507323142900083237443809460787722682411564657818823788343137994760897894696758159600788059746890437736559289874110042442902903640123970030116803049729326541452098270008804906897614249526354607573285731189415067934994035550989142720809967625374399170242457493794332758950298999617781789635862154957253297339603846556291455578702574708388784779741128647891919348498876181104443904933547979186980144771385016071116707016226144352591148074179525760383661963177429717794873674373268351888159482299402690028516123778586651075520605739768920144588843735374107622676225535068010152252356929305131677317458181885090366175583988455472934454379328875321794978003418251636143629655294001059529526107359558610425977313614119607533735571424811035493028273848630865448353776802163798544613164728078561173533863949504334248159034233537911020151605363036536839599480979525491324634704188699585354902778691232266222837491939487487872425102836333620517864886140048087475589493214459583797745127252131614188437411738498448037270555177368581823325755086004333752273855923699882047979622297383748252860912040358657687565785137400887066660981855588842192974151075787990922845555767177515972107085632549304630396674945317021863913131478206348631049056029131070481228965135136391554638038020289721646059692059511808703117484048516147528123104360488148018815783113579067008767969903051571322322190904896753526492596639053060892149683057885802058543819808554592861758642793125766675312969510165338029448371382422313595896218425521638263150693074305143163073757907017637042200757250166836669531337979648239150900593669045461691679784038456348974509977964049542711195644381491251398617903995940417075460054243323443941678762087765359041437038801102021180084383922930800859516524278718126828429776639861061819617670303692176535794857413701184114751795021906504317447863647425096105746546427138812694206056965732683290230772970572087848242328512027273402408777349950654726340292718423812205251868816120594591025118125212210971621990721310213194178489810017039151910227745255321381325410789638740020407339369102307949239961166519661384628013579953417348094220759444295298563163580902335175583530875112115422665819962407231368107220395016991573601719223945413019525696143533621710567016383045372198635086080306483166290300386260445647079309781560593432753550524520687591710442875620915131666610362621670790363867169702050412644126451834710489854863964320498213782795015295858601212593478053084868667879712149599535554377761575521609297478363565373542208255809457318019515149899635514078838728258101088992938372397111862082023300693523737401986117880236826451012569946573846826244175968590879800952614418602275417581110923244486631377645145773247986530572035225338521720324175161456953862163702853689983006377665884841829872347149805291344909293206440199357825743203594758941816080230714279817384150189792651478965841126914137867166915254698867913517280059865365327161200172133166191525182271527252570990984745381598769310155990644683806391066926443403752879958028253890957308738810515083255967116582177832525972738297375016070642617207531749144828742333997335153445748565147969030240454444680233438528467464745797839582450789285575069748448267194940180207579221567618915226728648419220545805789629142074476184985877008859184314608932588678405818952676434979961191372893775600432282735894628806906375276941381355791757452044518047707352291636194004387904634229249861386994599686584185275479926292666497567992704950816025461714621769726310257851908584314924649712761501331655528635203768318317242677084157429880079767642416993282972196760338708445970442493518368068944939056023197048169921743218161821301287880694575069677325523141251106146244325685206196274258260108101875405708958076507240295045178763081413556306043239614278858978095582442797063533488763443614512039550413661851703447756372042828064242375012833151834515708691178032025362532826773471891140073082166489785150500627627566029043796110563540744706250056308121975163938750820137906946477797999634076429524408746413548369920695889748710604039266080835185371274803384899933265345966767162323385661912812360349231252510620310060292533113294793670821844836389923814639823786693596136025327142791469409713883231287716021394858666799359978807974822686980231723858367926201648782521065341229100753818868823328857279767843961222894590321629139878583918541760036580290335151683227696087894500543367962355346328779809122355614911386078057140779120908653934676476176433124188880078068680167419463501153045829422210914867014591068557723832961776727633201131151055268604814226966449723363030490355961807833007690591803534795238459358841290061970091976826639648436545688642734028077743927966530649085319020400049462548862853037329774065996854204235316982199407638658154941853411144986770243755474820596006195501594148050065262765024550127607567895468147467031677581995213525914252320098460614632189926539249559377804318488815614050821227827164559499483618431756108164492257610174800594270132608589218438810458933228491700522181047957699754692935194580072077557034495425257381077396652620723797059638760738217702799147361301334014184296546429097566218463334869493188602859905254439082114197439693919509996723001842600269608769600808722778938530135549815769846521425951376618273679970011861958928255768837483905620265500011823260739260852485801625868802149197770303100320378611335875397457381075941590201354333952966597185457214373511921006742842131665177390937167007613124772448169725039138971175712118733754430358753884704714152173056392711398121147233146862309651605079085561102379509331671104101636379038212364155876192261906067015341368845688601781612409222503247218635416944053468493779076304209062613263974421280613175931322616392194554399652901768627984134436929760030851586413548352732278936377122941512134768858863868610133105877723335129971056274416574333418762761976057295945477468808462984834436897988534125070759473835194711330037369906149969054944060375861396999079532262549648947152820412609694603621827878427769248870323336480491627419493457446129951188166610667177965939692484944447331321001750916429114125561625289124020097869817837648810750608512895643661689047710825420435348692686892677493315460860612607541982061398170735932874422665058075096759134573389552474225223798948413479559689948667287595301494660544926042823569382415102541030484030251811329859081846434948995060802053824569355732016062183661998128932309295156506062595697165236467287579530121038298400501974278819410871153498341441543630024039216640371582501813013329744479063376619140771846845713137870443886682920494409867513136060269479455774083373971699997534472235385151538516720731547572068879927547998741246601252150166515702665015938706132552611573281382089636939043129882784098990023730628219250297616930964901832981443862230366437058514207007387261222097007628409817022175751649776402586421024784119384773618264151384942242406195307016180876602048595361834514233047428668372563104168736416706105827825673530341368605912487119730334376914084140799071050392203111106262294310026361152330589170280906394060670244920349750617891684505283824175071785935078739316639199746034897333896432489041015346969544161744817841135963064531955409104695548982376542038197146603580581370608845581123678478716056757654343488736164935777726559010450348430969335208812731424750857122303550876226385366010806378388337409295790818463802023055837068946409108105831551705431052517702156353549159848757423275641417836823404302847224482113788261711816888268207365988342014853481671525277573459736486894791315800501814242158009691209460811688942327457626810934751590587044555994208990514178742941826205775942047856788396359786692738329425064305343519046685720200503920603691928332524489854237733772274844462389457012324807546540767010399512977552490557229555048466603305391606176554522551637955581076258337105952429200575668455466508316032032427299385617825262667650035604266502862254178873563515018395839200451041262227027438270729655952206768988939669915116057624802650139530801844255291547063058129620029899734682556864928031335105294971540373104557665359357416362472299513743764352639841704326271490380570898290603333257767281981746547659903885964415190245121489157441206707620227896639973416651445969044730693849627612017027823413578917155159691601079710447480322734248727715989338893448212761004143356211530467329814482755577335136484753676802278611615558008639491592816561462787646418013263420424355201724979878907472008785233411101601106085060531524240051300590663544049182745926689597994603148703424910949026151923465561020578567595805311952348058672820056409629347890580356413066197083101600555966129734209719275975844576199141225932895015699538013358764810248825563375375152770230001733150495879066265802589200949309689810032368980614461573561877037022056130044771754600352767477982533998581780021983341419682064158732300809710985190652001484785654810495920512426512424014395833371907679602497600258769909197696218691018883196117913546471302077660995559167002731540320469757496132177016822058593180874297997466497362012699819807273654376724982478179763941537251559757278261647615034464890903962038526158889930878003771993822684612241542734956143730192151070752703006319850341968818795727814198675103335299708389831296881739558150125992796683544201184555073846624991809548663096661908632363462606350081020503438585837202214012767143012907211463874514759694564993039582465043096521060431274868077066807258207472079905861687308873846520436389813420026528142581790088448922055169653785159564273979090561941594850333009222938965873345376903944413940974366542652384761688874814782378809369198079653859328781665802832526690695780928426125822935286571322757307550615486424057823120478596862904625438437171911713706677227649518953393621396149059162277221530710734025272731449975877102969278640618206926583721009727456188887753425978825332792760566875033571599132372195967736376832556297944022537143077873111642040366420091885473763038953647688541047379485559899166719357660165010861199064735414526936269961339976069949843853496138689463451682311803204879975674435411702850470585317920503543963237042190475977439050442942085720992997243873480977010987837519358743465321700295925090673929547608244332731823652736349144792102695254402252676334788830242196500300891102931053248100980114629797136600578732469174868645293611324603505917537242444828329833664466150030837665763221593468598182065077877453774150052285310604807264779472624373150222103050578903674295444161338117200167267521327609864850838360115666697009794483757882997843600187858518108446705332533218808913622251445323829153815672601081228659327707183096204725519164320152622947539102326448988081926594820718814721057406052009741773142785692920757189962837135822178478918406757177046520404683602853919965047715089082876383284557290989360582924579726128669425783498723014287463668073264382162177247068242685737154692079756177509507671885904027540132379734118951251452300357966566514744204375052994469724917193527539682086083370712229417442532782788400507687342316369808197095262104566137350048841480816604785330578227023632627765405709808619827301504207388817024025001354269345109306522055013160306420506079172801044461135235009839392956066427451966748856735500608989493105953156404485830149229564491369466145989131834046517868170188437820243299807405528389611224838371223554263108562607985111698281581651743265492864756410629088308013978739015175367842257610334396946682454927090573539655867584577399376551019309718903505655180304137463629759286670310064215311629738962590820936655014850789654718184945766960599193133209260099554477247492052155382716114696300306395455884773894771686968610621662069749576898933597810727188202814030644127943780364228200153188849176082831869377363067219601230428117821606382610350997775881698888714162738002847230257762049220806460490938066243367118725208986757537051031828132368252032539368921683316242983398394622485249787468561089644761322426608272570325604424678231922141368451810967402071656520339468427746295743860260019982526942453419512308113637397486909294346620674158852775839225219317387821417741140759443783812889316449417216133146765387768199627954670151831686649318379944262669037914741951095479041726340110333794804561835368728439425063599271276540678412248912098254973925795323965989815461254754568876620868794949942245809852696563846197232875215499084325001409964686215417966864545980814372193113665037923790278511745196170132953654937523836825626202650544865502644174990539795996161948970020152383643670481510204202541297468286540873850420600874832149409453980391552581638033525788823623970656098560311621244146911858170885629223629551002621515370879435166072477154045304456775116361300911220361165438554543130759356043149369255429822664057237618095580978052015881909360202006134269629353282574269217272031371486873061418233411545086537820815491252980561925998556104768129773448070564090270785271777921823771436905127026245867459183254081081750173604935420875713538260559805852278236945514086574487654733334017557036797130748128220699538898682254215678610679412269958559779193303857799785398708301701190664723017293977594094079595196072340981310271133731794259862988641646454857826918392454120505952678933361379025933647812200311111931785072209016326015830258239343703396720644135400818515103740109415417664236264636718755734838465797480287725407264311563464942911031144016862706531049239361101156882699476966804016614228923683700180582338935381031286597078502903597953934492498284962662093298611826110670367942380458455255917274396440538969403479325462653082194959830496772085686997570365784149230222606205241146178192770219637421821931266470312267720835772975857904483417301906756054974204387978472818519050025812464304804977716332763959184606659705599032274421171584734422004092258407791136692617477416586376035315945826472856293583270227148887184731259289031919329051947925504551467703249704764992866843874917062933407632757072358195186478054122421954856777704739757548827785656940058364737509395521501248673256299955771931394887229896069538654717144096257560760608880616013067223990087845376459564312300390640570884122120058667082433659094745111383708694176668366804652197847771012853694927121305545002600423814618908699263145854655637384607155085970575275392964262567077257813266952757660097824512340182229652455851892478914810846920777399410270034786843630072917619563701438587804048361658991689136818443742516962207250904159316837102642984148634188681591098876173916081768074222063438632532463919399894146840702710060516408505256102199631293251061348167036117303831472522065773145631724618803305080439309139642686973596904156776436226903665955988574555745707140023022831334435703427648414917058743152081071703786450421937251403359488058554216670071787940094782154038358786583275527359341348530320854334073107028940331916135172740646528448841569729651718411331309676112416144875114270187736626688804286459845485856329854772594296110091118697354849090857821646422859429246920020327481036809408309899602012726186663979257066329710774939518044393748854117615776124932562991316368318832900573039682429192210545866867596358708113542295691545625043226963642118416925877045793026130442931490613518461296742893445901013807997134034845524448714161138791657775831340588897050217386272740550456704336070088459249724795064685638649230692256951022484794615022981911741486794912066373256867549277497560064667002947145939786004981046582126768961179221924962994250763489650356307257280951257620507714538499324688164830687544408492572289224352987470829600205751179513454773784089603872082860161289617743822099030520900674738537847417337527459932146576109925773500196960229367511949381470926692243880522297515827938394688646255723002042242686264907662484842755617558653321283642926429597934272090306579179198696414609998278628383403450011629047499238160818262550774765626375697811749924564241351750441478149446466612194357461475541091224305110511496415406834307151116591819720428181234929047581641319280123919988909012542662983395011300788155444284426973050245748793396623155102098989035216976142645204724946171647669330749837735524515941522404864460323477361315759029341034217907712120833057988607108058236874807137443647433823170921182838630954301325131058561140797155860142481804366698667780041007282161639394148692683838724994626256195307527768709386963764705298714390631131558948725254500562804366594723640497345906386732389228959967511960923040489440902948428979826922800335172231829438237383604981475339969816693086523562585695359077323854953700816967888424123333996345044179598926499569057070664851567574651685936055105504911751151273904877628830699504971029059813226209316120249191930082302059997765600434729935442888954062868872806079310384436627599377486726302660256207487004992182335256431248050123239674459846705820643231171815434706860358017611688601142502385130117467958994553734158057542954597018696710197929491161579505497098763685060770078976015674236220880811250270538270215234980312191324011432453958751589820820847794449413813935807474407831777476166841172120470282359246924155685569616211914985806565254310681985233161799937315734631744968298334633424060769140777658644474853555234097855041699872290357886746825407498000359707211971487776381269151650446989416410714016251191352267011138966460260430479453943423338241252133016178316015250806166592107535141843532458346864632347746885344573558787132195345503443140057727754427660824207075007702102627979141637028249309087809203459014636570183003278791506184719785455673748011123586298126620042295608169541519097423464882342775284342715675460536701112125723165683721199983769213082666477147933550755763861085276713144141431103151123040454703680700519433571617981910399431938609360958461633560378741851105962687547665472440202052800483595101643491202705249267983979715063940832968527047005025677747036712534593167134091328315754437755874586243557150310326973543301081530533547165904719643378128307372605642714482012854293857794230246914537084217619580190412285326984833506930209464238477284641196924596001159960306620652823197552854039937589942455327385512275711844518125259480910491552877834035880026718825653053852934609603880963038094669392228822853331421870474223117182749249865326464961078976825230002759338170031215871823774789786611582950753696508141138930704194782276173863171784927003858773739117199461187816638180325052966017627773715589795717333794248273624945494413642525040662116444434063737190338827279709678188474754818039714864147973078977949938940616691852421026890877868050779926821701518741298799017962711309932892529711231850931357108938246273471113222834450817615580968952612882537171295584866386402504585699683853696500498852107162297577346491773417716791748852792892120456963526703979514198420880647782746058157837307489910182652645859791877576443538027795582021829745918948405200893632644986683455253709380931090825697678037059405269483879081233059606871405275285726093978156203830040400523902498511068952825239117085516024853136120180799825086352635082710885698015315692119040114446995958166985572724503853213171330098069975440891189037279869159003696091715877516257061034306667984535744544590472024624250232475579465908790670528947512614200142079018329139342859319309377242848890534833836000033698114690357332031549091488713437285563215998967957570435245361262294031996293977907171584622772092347221767110014196205721709170476528654453516513838077665465301217438269806191606568985263411502900922675886670233499411241459173920096810936825051683805649405557586904981900293490804419111330622030460420576926212968398707211234026742149933141987346988075171303822402024019426096838190003177648429403642704509398364207734161484906230110853589473286079788686122456912410274594523261404711503138711735174227938716013226780517157080578728334289387174282252240662020859735405122890901879480285885546042360153128671641721481306013882673278073197540299620711354442043638765066873501714028278685849514043284289342497681969294786821583950207208938903891929576529785536715277057310818787410185779297836784072780551192968081079332018570382036722019583493028019165926719867314865907933987154526439819743704191740703342278704389076338393218132259635123337725745835640293383916674519091126719683022907746885381720944360059524543521583442410015213716568246478439459155035672205620757724180511842082561089498092682926793377275926517154051653423527709926255942954358058086170331714122894395455855780991617218422065228660851200313608324103975516551752987570932362791748705585020267487321076131008753707494884866152227958067771436338325442279726638483861353574084351334641105880321690757437472129188648089193250595498251326370391433814582444089549477588080013043144782452126892038036973502458056080315844401507769999418243605333043057202022869447670678620534963725089003883276523901270476752678331778428494527161385464151569832234256872837877070079072800602456821288753754579243141326037711733969457569995683013938451526062215041686106305845798353936058539168849054006963267120345543665772727212771758573792837681898000147862721071411801270646468778438581431671681488711802824278943305575835822237203904263873987433477696425159581292849797016332412438945885894897375519759240560391625528193841075870590673640387773257744888400185228545429287760473565102835664904369462607151043216568809557566286723714079961412155084564660025335208357132364970523527208712905478831648502736922273577563565413056605956625360417571138102183351251483036523743651131508271019352988189722511686536689015882941786168063589559981084467714594259713870189215445070819058218462916520590424684574748870576024385975648080317995940619218094930627187295201987234601432218164899188503570806114334055951023420223734405348285890343464918347282751079978177946981402893338345493664091536509359872935353249900959636756219071996941523472441813909582392098447300713885209326063417446184120171733932824718304229629866942968429767083773652874901869646376010257522493479457862629889623455025456637849695573733868388829584832431827616124641275774741474034521785064096770262154925998371098416317637766073437896824551742077106041343273985627944641890523214480878163333974026234006826532120310380382711750055574707787448166286287277813424899607927394732664162520721087091546325355566204266053737098066419569391372561899331209794750089409382137780090843727559148932111967010316710340658911558728060148920462224846330510567353450461969882730789963096173887522510926272676421179495997055769550977391780197996623925160982739618107980044582428322122755926343126650091645037406921755160411252579008752034216782930508334574075736481858931092125259008985564496514847401159898613039306129401441290600737798370715178482608174716817911323686841390159155156621905621907277334187424132468285060177204463529714513607669653222919970030282039546575359908250929650497591644987389223685121276470216313869799055557694885162025267109098677554357345358715863849829482136147096533845018756473417639573534596994837633731534519767150584947953258935037451092889254051580070153090323032440489294967757986899410778565883667438687262836353923806209026835492735778032591551152703070882106498988960521846389717082139016632084080378014829619586039336478154317966745905132116904187782811470853100050305846392874583245310356401516503563409796916992967979220606689927297445047087003550117466823631553688779624062352420662972803675125203963880581910253027355986046530219880155427753805043687677045728698264029168931279852589471558194569093275695038289524283807315939896605134687690776026242905356489812954195162143712368826001699656863626563428402724922962713163617539915486981322141419825165207873098100849211871031855515771124706323309743023467025176407862193085949710327445521744605158356294854909718957651975674175172136925107996090634689232059124655638482345132183631084272383718371612332747091218596871963254156471390322789011810841044977700483292145019878742889761163183250737485362284318664916884834248290328339704667269873526318436781384533873365567984835355484887605572949693092417625331922332624356383047644657420389816569433055595967878708565424893914054049965225462145806933518264077041406523457024501787980707645292770210413034297382953731713934643361692383090231018070732760285440812706559640039705199185596980298361615248566967998527196611835032340587260591034538409297087084990046276125823531420905966191659376049484775965359370256820740118676060451355974275572485844524124513053808904446486609801662667245494066164894656380719270914533316422792809458779955814641296076054375217281664995781196762208942205754910149325543462756093684351126867416871652311631355226557940840380908781026499520868095902514251770548546307839915244910740202108760882235374189367963860188019032093733325356835634274039314831425205579413636231037189598499854763515571906490062673312503173040537502610395596224692032386691240512942641370402971832257088615485756295929368110267942264913798064046068853390046046324171390320232991444926455686957694971822895079149399812007760843313417858692129412859098039293111444154315654191022501050944812720447447341347489170819612409471870223913688362820490971801815837210754579105567561370942825961630501657886029290442876650899183467392241811500391682811740165606805172632037802307745573303354727310918093965172175145741591564728774513406046801241573083438493836012183214044032143600352978752696229870589270768430524299071155264042411445044605977876554608931346089856269288559864391345851730351746396007073800037171178869903139651061767594324653592841272523265947148931761537735309885649267522224285023570911513755625250779127330780894677262678869075101428806450303737990536490960716951573274687105210471730877742931343188401944492821850800763357344413659516629820034594580531665782765168772058744578585390581677897669293404616621093753363063997302792525483966815774024004249659117312463415220256844534683855837551832882655859926595999182660630654906515692686196683965714662117012598640083307815013688704663026534180619188880218164517722009625387581449621900176233270738777747557157412535501517630195858892768172494413777961502256296591810149940268755997941726829086176603175038729807354832254228282934968236750880215494789357142346466122759807742030070633395191629901583547901437895160595888928758278124459915347174910966200944018864914278223180320958672746569126914552277766256278140849603913084678663056648923969247689491541261428260238019421747280840066088311727026533049178282266768060674003178076080174791735450819105493119341436990973829511928187177633994236970160371555783992681108789569838930845621256355545654959845016412024549221557990393488146919356453987877355403686226552197422814959112271846474924311453056453419358962108925227317023567889492929905186038871804822600962290633314262019567624621720496801852023335383741238457224976385481030392441505325101955533686587073947105353799191052881721930637714579762854534751143570431430415347885943122888674892477633471986076073069049727936295015769974242334018957748045991213123102299797856040774067053977595420181447935414713463181510086728728379035680294887179405886814661340198387422195212924219757577363879051194521079582632154712987482415296748492895023179592165415775430469119665810816328955528613604809238256300160058718082380279169130501356149294727084098767736593353379458621220858380377874727414994192792667314225519223551497612853245596357941897106484959628262718451199746218036438093182716147198518993921868520131093691895284734613339189262936788204255039128803236227067056005545640851376982558243095047233721223534425613204938122311234731437809515505775222437864666250558131318007000108645072692052104778509709686764928123676216793890636434985960625019604891886971401425840386418935805189825516585913079324180598514491531313026190079027084959378461858655744547509818411840779546237436651213584459060401599860595655225038833723774242684792236176003500675680308434739380674110003509623915230552400386516280942763170023146169495792548429150623591852873769954516905887172192184914501547651617356270482840614462863570911528938051012634806200733033307851094028525706063032902033456360948479806861828426106703120227252431939171356912995640199968004550444989547657687850602013807544143082077311709141398889594536897090365703046494490973863895458971255831468176200405666385676503815165063548244934172329344799044923800788887384410058723522240494932230525053441562010651796755213830530118178071986135172156371168012133266620913648529534659654829504879004866093868790976058103724015027307207069136533549120565589733114384481198401683403360555334514918080681935709196925768004507578614258027663401066791308758801705215153181518840961574957178804945417100688710816813758303804824467100876182390441622535642780755556966601744751340432828632587700806018097879726428293086498923186443822043224534547264429082774124591996952061235795048505432028891563062051567881179978505991904511341289060454882682888119867057611895782260892259587883840810150552142107507898901856365773913827693719352139328823685045211882759803758106731954538267017119248436093883735823422965657277595530581853254489679106048258119903848961225889074257239227183572141589166171270829577996422400185907124769386151780273356268774326324416247437536803130086938408969385355044548084312024327498858086820073969789438763848251791575445006687087032391238664513802787514855047471545194784538275195003059559856126721552034478021294154354081312296705571659619146211990833540099103678338074821397636603735040818120495552449440862880563880813573444675727821944093509486239365948251887904633432865509362699280012748823752347270305131658770652529776916666180099997766706665294048660478925531263143246277384843789189991463746436021006830379422782463557212049901412738830616059101554589312468324325159067370512094809096282986747614979962037491042985633170270193331798427477288512893164527606303355177241234132230414188692103825423046493462635620325205697650828284669653567417048410842802394464832686632217521354763399149587222100781474362984512004664991213488115320130957633102697814859186662454148247918049717916251604944271502216531785206578973510328683754582666583068251648749214213772193375258666174578578604644268993590528296566541099812592003133793417995205161689483671334735964719859612258517638405060874474059400437276569665306755714682195775309888925129827107520668896245016824916568388124605491905006188241845863211207694457713419772332043598950368147931411622578556535184264527503555379221494543797414877744368267034571998696014666598290176024224175458382514587881745979884981748955200472963475094464024894290736669204591956941086180772982425688265320094257909643296712163829950042823271022248547222024965368959792014016926915432033028359860689830366954548679233058232859560063145802532666649736840090949568980276601494326218195085364383106990716267776081268169989051418258194396118814157220843945286645628534303460717755762570560689802170093009419166725512415093846145649963072433493215580408668240599640338179456385606647582837400541058587407785177445286594675849486757136504900743851796344355276615406404620861106318039218274889028635733239828336706673036619635239689521409002280347450347941896597164685436885303902339155626252492261723162279630458512164440604755970692712254863329251579033201799480366629623560210629136454107449691684681764789240441943790252609717761743802687034241671779537186302860813989837911888998623198967415000831545426893270247854862297616058371283999677322969054477174505842675121039561736549583062721450118436068110929997672464282953267153370587825641325210972724415243527827767217675952835072627827283284711259988848009323610574720348747382343714686116718425182935239566089142436154996940571702804773882146190503836102701221626725480262052170700267072999576122661791696199030766555611308329597712243168680804065051928399560098764280600373708126432402945831649827685726323476625759145488387620432790307547690059844201457763992654682897849311200443843951394099545991142232294447287893028814180725554408082944892867216411518499116184724376668193108142049622856449127493437336551224646848522274884541059060930146942463889834595271867787071314612611443020307064787545841664714262607479621511780682436648581775391189441398236443607929415726086025768602816047192282521360808073364702904598160951879689723073351350337233826261042118934722528630156320675250542264013945935075018367418971705235320302272296852044789913612788072174803943746307661742796752141559623350865472686392923429071186349494545178218242569073523148587860830889440176291216714519579882805899563173928092098639500767239775684209908821253742710961043998668071373618979904220502095476797328266098374112976884160700105263551395309241344727039313736918759842826213524316836280911545912579134547147392010521264091428008143795304054599675291347359907964121946380388595543557713664476914216100006280991336369187282965267982924701234996847218606784636036011276866529423162214333008581104357374028664664415570173338859244275811358496494262259617835058357111025742520525052231502050334483855702031071979273362377806122045025937777235771553595921594198402980115861564096193965792610324425507339571205071817950540605425462424250627725911789585090313136824922893545227744913413389631128447070943213832531781893080602808600857748344786530874252582491885427138612489113556197202603217949754123890107550553789218490727344761884041181491763606898870745555831638083840915609225314793505132145644365121041063148924894581637082439598306498768384070170470538246763595704742886321603767732666039345834646131126733804234134319113161651154887845102416048725261095098758428170080068860676030262275322623306080568784109048504189474102051455544585380047573613987629991237970559108219299441720298175962890748776632289558092201033756989708051381987681398753801853993393996051297337168295056313479395207851519883999987321706918483344154993337548456276099434984602021316333581169423512998918135542563222105765002527716854264755855122120233406754915383533900752812474857159530358081083100486933090710221790329013985229439901657664285928439747964751566774312813352781438536923289549431879666133075043351963789897489780352167377695748852620359476573571607286385824532650867906760371536664905815477277070096748079356556864110325523639432968378500889931208226215404708546040715372459796208027518788121074637965605577791226600545368090292488405064918629630206751251399275657461307145458910892836419272416097617676215651794522021273806502059094567401910831280203681190338773364847016171971842846237340514069332463159875517181549984497168562668831882769497307946396027821654356933114458664277738719872970902843395305157777549866032247611892239329185891973206831785594830695988992899362182471636341097815617255270004140733746316826263332780974044492903481155700812447098866943599248237416232724286653249756779360090860104905427745724386846157844063715890443445708008366679538168088881842471047687723405840187199142599198548159263323408748239159966313153472302527643583892975338602223828953250704521257530880570231996157534743092522642617793470895459317446002902125452870262367184619727893375559082200598832322207672134564811426008609226456856834504778534419521210871350776869410933965314652860406636480864489721484351305318780168008943396988327988520762726139552288220173492016131183079716733347194820018069143471446415230622416189443474117931125954619552490966135578432199371711880357215957516792952868273664646508409003576859276545004006340788263291620260498358547211763607668957003405420883543425518662005688621631867671382132271114288862665683504108194459970617949297675814384305719354195424384438963877772814080660490775980541619615886960249507186211284808207952415454509969132494325821424583182500360796448783794249458115943064224923141216727477810295817499496335291907806188487954264833874999039662749001159655443526652124694844318081976477691523622036015902517709333895751563328619475968643805080677967904796863926885557841829103174370348959108016116968371952701326948570564894886052578670899007363503323190035790407297318685068191250892971179773132469774729811253101548466287596265425138055977438338715827194147145678673103850626328738942156458059972567617758500478009526024392227180496374550875131041885839498043265869872015482727772150430926570209357139502536348022854578320849391205173358186703224154744738459184453557218311562881362127802757844215896118980955808347116262748291120686426559673939508079112011434636713017791267288985492002322524742249061117562091324269520555262583122039058746584538569657774111857101500553146576077480856161598177686197507032320718719445919123520363884990745779653520282345854733535563894840859558927598188023197889059554099333939425096386111246083829882046073101807850336703672766342320513039720394020556977258580930711715101712410594841682974219631799113484639526840891636374368955865392261231331048082576762748515497345317818978462461947448501974096121525793348260928792736461005641469709670690944789894290246917473954031689606632892748094926459699888976956660969621352655274423060702381718082330342045665672817706421952790764773651128803635387726204887706642336164688853630635094880292156644375510659876475585568191107341778600224501042390721417262063820400406981268395558120262350557048577706665278688809251729929633852056149176017094560253798373899151674921411924825681179787434290227302530950569575326662899449598345096943613979294554693328943676749947216006222811472306093102412014363191547967183822595649278087678790415331602550730865872346220580999265583490821509056755898791617515366929206532739810711291512293255925953021753767172912348444798217536314848573735968077355161523071761533478882937944210815033796328450686034985479933231032655891991471985286838609727381139304207798436359750515980806892713385520140868139775940534688184427309872890023462704345990463703161126157221910187399788914391263042933834636460121446003523485705584360853784647936869216145824864320230950445689108011052235070968094939059842428416030548669202282232250036948540668182154580615162235958927184383913417878156654774409108822232407885882211212728770734598472818904328813162554287177340999235815394229732326773265367193478219413850437335273233263769026058010716583500549471544378428145920771415129144144197652530282260252796528547821549708619621754031754038298564646848421878667914186553818406625020310669299783680737270404725204936355169440983434356397312140867668347363955774585438551521200867573058504778346359920845527842452918848788488333325210391302840375083169505011722692100758798470111487973982352034697923312972253410009220131348405910319178966415313119013166821599397391333257392314051043342434407018436894910898027519336722197614181232755830944914616026258875811847172514547720485470193149865534568854309237253543745218233581174738232640419688952854948092829123378741193869622030239144538912595412429442232689819493165235476430856831213672237655141368043885432867079350339412577528866849471243001641656412120045395456615972655001650152265762530013670629882277135547337603840963743647633615507101566971525159778688468818376457771515164597219169056018718319824294942324216572224910486343708158333993589219457192301216398805401423676844605050587906808789588040347688001833791912571995109323059435161580760427217774920936946445395232515507229600909645194096221373651413668827937407531403434596793857805833196025983224359671859420747666231162132718070458601672259757518001101890953284695276318909538285030034434166331908661585907213688526201956426150695831267141429824658396597327802559057050613576987765614117635996076714002573791620144574681156220982158009160787480710285258457785352654923764605016025115349193079649485331636376987977085303075704679733124859269451767241616214196171612064248467432891778250348633719302004415886832819747879312572333336076211589223430846452476071772577708706030301128743267809743958050245077029475102509676186437071757717302572928063370541488489140377484288155915281944523479341522129943730937619429882134660590646771717004541796400793402923964147831665877589223364536638916052611473100514427047416177393032424236552713919498428359387919343527744864876279698476578099616096761477974238163383333162382300009548526731669935979524223480813655686734448267188902635021665505584641611791623833568506461330785199559688431538532873539016198711083120557153208932582013958489600914180222957131182853563007752011085261727467109662073187997002561751572011154037071806882448174235949079238255271050717482309294741573766293208778300156695288218221001329150324176156075189690657806382000525101075558860584577417903392352423988171011780973615889807736821976482749195803139483196172941631878422951745370115077210415878496422342149112113804733326967627133542024188357535859435081418976589906996839361944438355117561561947591663216872763341831024681692386466194254169984356631806635645411425840105922462986136283363376684492199822051636891044292284184606914927718797194344602600249314400733393561604815112724719295271298846600177602462996823161832706628195096380766677067956227923870279146164103153020294468430456792250259036604642211959578052948834558637785743773783571193725012326783585664299636655442210907036269840129349780390694597992956981173836057889357840220509964499885773786628149471325951215854472643014057778177046630926681185902954731770235006879790939288476656954437659700809012987026782430518007127982440939672169565668478638397127524210546918055272675365664197594036194967370912759503930075569763107848937811595555465549641316633532919263656914235660471634214419271735349412646695601563089926895241659201804891269152929920269219274667435198026913286214430396089752470016923344936503564646984029832349617638675419211198068592956540515848492858408470086366871914173205512455280408885390775883551183960455974293823026974231664013808325759011807328698284603648431587801182711404559201852714958672221081151152080764777659056534087950144360044303574671669918071800912325949159573987599514187433530292583839125807960066989202831685597851751493161228342302940148484527204862765730235733039881940076362463510988708934541680058377285567962791576553548588926484802418628009573376403284965958194866714339409200318964786628709889652959992077773233763505851782060841866842758679951216190615465400542843632747688246895029604221150669572575785760497812016060242700622629620198578791153055094905827789014661243039707186775705569618036197427281261816733225700386976911933732936142913893913648005844468727794475349880438364588202649304712806271111077885999731874985539445699959347677103681002161711095185387977539503739096600173657610054821482536320935479347468718660425623119803918614646177790967716764547225020450684599418793471363489437379807473706359470757705927637597287601369136396223217536099385592686881593850004439661522142143551486644053163138256356891578641742995779483765734375741624524501264019211237057805549656807139260810977644947045269614535779276153232456680644495004545359633113922013526338406584136842932218524198558629679659488646653633194969824381043603971107061299253597317841552450697478392668545838592975220043176366403180362656409723590581467616992192436438421209966691019692100433419559363091841099040946883389636293974500551398233121928213090802433025204942613342265282401779362826136736612727117218144866941259752970865401574387589473830704654351810063696506912911463182634496974448018921260021495282740386654382454120169698764205811713561501631450053942369680366924951125312895091565271154715302112711469357735265140981864216139777703949977178205988182619714986253969066382985027787374757526868077082994700270759571758791360610826551288664667805249442580867401916038826117049378347719984407657331556880715545124336603776491316273055736269001325050529569152000705418564873561661342736573956738628624168748067475665253961928549528731493474119042953181361851144975457261222258337389068821692399501675212115253223573992412481422949646418267470001603126175093971542196353086852032520045465541683349258914453057705574047941295833230350743586218676246692058983016514209027157446222720435818595581322558502922504676459652243202391947529128845658892398182485279197010872779899332256916805263355935577972499840347371265820803168621354117675964864500868474769232298008506031551246644495297331196456651471257081887211103727644251065504540996624782602188779281692229350634300537410552206558315145011962732796891873117538834262160316688619399639925666094244865022603591087391373034260861363883889496213784477701187754146567503732152917209141184017879838612373161184165156413354229566493379141926751728971134315301535481513498039085424159962786175059334467725711951130562913612742126544478225004265573346208755283156407514054485544237725781534399533899470938835282184773320937211103649275456654593307787869070618347752900582612777912452232455888559684246507801598809431221476289407558129939554848689697616177274726022058759353386916596283064677906687931780396255263110927072583280423306581749950295376132753073024757378954216834067839554308661857215809124975515606832795471256468643505490686984879526180844194909960908571754740251613222427185078529611900295171230459347862447545041925939255282529876550235475078003824231271435096473674878280802938866802445165828503069166831608819636594303326054771741883666928294248496257391868753804598491008197879901331186683785018949367771901124749168448561927685077284899383239689567588726625628123787464524516490593854211411294920902199627431660145419189886422228011021223210295292214285022165398566184517167474521273721179026150901471998290628905346250656457629618543674962909680047975316137477298360894563922570528096127646904513239080967095392358333193577288022370485221946015625342824880285172146052388178931779668495093163757296629611106486937745577413313211727485486659632877162410765468310968936735029549998353007644040776088110715683729623833447462356347262972324307075844653720704007526227165918863616553992927166304427483592400447180722694180219357507176462992591829171357958944776096571120666985830331972872806436058776006179811463699783753891187445148511644537507970011472994096154339750610137092313748749038647938142874118851291744423966706626557994291165582132019990569443656766394975246413921941025345007930719459660599821123899698720867237341597371127447149559248444907426802091462511474643683032079576444113359795016988659199600082522791592176953479865344616572978024490176185601707784336425415233557208292392490116909629998126212164697411469708077638867116288315000860791642074600327319483387123151333028301395525170447499442119367442320449932299154095935419416527061057830342226859157984028218099925869695983782902216724926826727883100703469484581070028884125008336692971419900536925913629400497670731607728526526759356809476113298152668610838246449224355591589041228626046779351676772965240896068349694473801853279298727475928451326409499264817717799251625364711163132685641770813296408997035086224727019413956725395669748383006801491176910697198181722160412226503030508388229925507252503525455676598522623098360424258314102244735440769253128211742316083581689293254550739039444275161149395154701267243140280119351089009330905389592875613982627655459878687681206874366904779375139719380587489760259351702060258539176565446294594817113636457639666421500984937162942905397843153270032488919751520185350530972248292339176847149510738180127929518166325504498741936497152089871548785637893916772835340821970937799128233376784891646961676591685005967597562179322241192138291367564234877144374240484890217750026537599017867817019560015586778280625812021759537484550506592059499141829125286221651584323394199924025093141581544614649702396536755668979712277064445845413092479723323822615600131328128545522243913391754198861519298146357986283582101777498806849110245354129344062896717669812882814766444239301576032033145284223398156632844119741533603859518254120668356924018505923291240286608386961419306307551804192425581247134588160325164727140914657161697097526545018246561627596116613414682989316000269978233885070972297385941085773485991033407535407739440083637472288857928157536365399131068987943634867168378223784884853945158737357360232657660499609011343667072739864414034763783362908822557607997108897587120997177346029284209131189891878357101020071896575542196692685392942971598559931870276632848849617410818820737041795190519240541813532587805140550648474354546998325621789144218739785550448639752453012754494601205680095855932867834459715360469837765312098650397647461902615452398639567043718259058136178480630879822176943705639185121172501212141389357256342261345701056763207555162002104227113256756817857717873568446395646936833616329123833832214063127412839334236644168363093643542123295543443224044218394585036081505782213808153069266265582061955614356234154583369125402906146873016967316336262091094164859733975272470089887658730082335325307032626264928199792450294448869007746386683586636321201474680280616477436211217449742866184120982781613571033454985761436440887007915669010846130877715418965485856970745532728692077134615522067385785299334417168621539088191690507586660865713003324206388773757906203297257688828177146075961006357944904264891418411598371617341623771567193996406835536876140954887664909805474764830373563752521114817114281556644514674526081401287102553871784474398678839209201328345444361182699843079306801464111618942320613758559309074681485743462130692486432838168040543474165807874092131050668785795367968500387393399155462321995370527237120182738764614246680252876459413366623134775114938207389196095438482295650294080806143193680883778628083008598621392210492595876237548003096080636939597525784854971279593374801985558507241005232846879692269341143695554718801321949211410498412471383284163481286216995998402790484298936320513721902301994306737563605924385206106262783160670976509816216415614577535560708809015723284767058242181893864614298363135151336661705100182499503121022231798206618674604626685295465966948304256139623477802564629904847862722278189827921173631901142546227978520670541929969967994112253083928718704007727651108147712094889806354801449022827088269984070007583211926946236863631032076648512368598595393417539438859800045269564128605019192894152702588617484719406568260417086200007014508446559712336936878836066540528331314507516278535053989222330841297173700307773904123675652148613990180085632869362092671689904526509807870432851655204423638603304671081655851097630347702028829147902406621237403335075958036282572648355523938933813823224220595773591939329633691256964899748634564152415716230730503418739337654722909677292653427242039354340376507977241765060021323644953105317109184482444272007411482620108587762435857011497347979443017311009109072668061791177501685048591120703819688288686226812214676906133587432592504634416639512913956755450200155140443784215881426214587948863943401369937232004515655028474583675437525400130766307220477539986525557192533317858622042135766859969226025454118403723999660839555805619547000562937105111227388953728056807632171459902083726415032916534831152362456323578830630538119778598855192141873011578833260791155083643504730895651989238757833375353716859493586052787833073760929684859892745098556734070725869511914773742661887439691427242447764602988008262307756417613529327786396754317333188616628130491083962918980003599550098969594432951754854393360116030565493044038325262164157505170791191210122382735123715245183590114872999018935104465881605899279266853007567954426201972666690248581563523936577168037525008197816202347745550460352908245655643570661799507665574800719917605335155084546065452181264436376626300622960267231998271156031329556576915095081969047491430621834945863267743776328581133528300429400172387539710569065461193564159842482593000748156909207092277142542287854388844825152379803604088162604449265771589188866458063099615712536024908374936985233002657441593479026111503760864368254851454682167619364214808635848665541827142251232743856264720249796886121979075825515780157313626483514696886547413142866147356911353650526604821909152825496639002249013451679517578024275772901886816428005223504506071776120841006144060347248139642380188968195567531776439130670389139640409479748391553589066551666584089753603774630233969266724752351598604216011367416403899826798264277124595626956950295705290487146999400333309147683104630807811843773264939185953328357768556734244237124878337192467509206011103242612490685020612603878315304365140020652056597585545166293997822426956352547906481938333866534224031401743006146948503176839016628871598703577002916101317973960379781699826616678794996142344265412287470293415357333543580598071642364586334526941054349497439268556876656917245840998481909250765276586986103686999871909149767402397826719199415635008041104159780328950919529663356178891861753951218998645490556798118616034644640908009483729436123263143620187695504678004020398099989092926598572628721016692708012352533645016112647152171344535921659583149482028261076794073124621410905055887507204805396221336656652757114753176224299221119573479548628213668505741215119272175573677149356635175712696642832977355327550136647626514261293774630554493411427411535094270405537661767289126643557916935071983844248348006824739114856091638798382470372623067064424864642387516568114793511796033925246874718620189109213220560484832369768592229119727711848153822713116178244202751769295197331875702173857962568028362269904736753989534885859939234299258309975500592168474243841018521653683634438174204054598082854422556850472699466550540548441569840427167128585477797165538623830885129219790358295369248380464378697248436088042447531105934215574217762592177818233202375431878582680746239354175835665918634533240034317441525048927941961145354880257052522377946218890714790849511335473533555666964458369714833345237582892089706261922523860878482606589608885350110218506188429422645474731280957324175670765398146419737306657873062601041458061908376803566236384053440803109523550081708551545133785873418261458074482351150028858677208895471011273415150457011295008035013510460017138872735654053188692812617514904044594102371264226429483608165608969954521253466806535763192574449086964611926759811031323003133513563759542753220890593090784325528404211836906984080964388746384030609957850008385775250447503072114078554074417960338166788788932948016059735517600518787226383715861513409401543040973514378202299288300841818867348579435035627678275237030900118526377466668926605103245984805244933521590642680453586619765354376131713040135111247241217896258235139948470937645385099393926778988108142802210487439803878069114329437878376914326569508827236820949230404630071078614089004448084206527384441304834249792668034118896872815895495748481454757875480575955286208995845278917126366487566657609316081466034251538857336106859357805942062046563138175612383162961372145373996605717682612622661509727995646400079683858987876764303315274559362518603985525598769818420281061425776354583540699945688941080047158400054713152319692903061792878479362902675081407840914500869046740590277221629132832169789567834100716297168140228713570525804151529852670290913703219258198485041099505188427669860126470316514468668548940680290177850297691500106266771565344051646270227021497190754722861581087590168081373034531696928338585642667309713337417616229881316386645537908709493936361691159704118156515716015479536547782100022766072273902128807085829366264084028935675095831420218888692522373399753251888214598817518161177150017859507169593644771099792011015044213108790816418847976660001084422780560697659996618600836798863493800813424151624385114160144815148017441717672506082654462719414666534961430212276110706358579923485412282086470803007514847345063914546764043818129181150596577555306350271250262637830268086218722090982457665112857717131829825924297808539255785583542899526660036637531838557040807534068851682347517559625260815166910749011382198720495187810708824494690359430302087870507836743472760477108074617714915124564538325590986893914589797411783105863068014231754630615751253868063126832825137022433107056570665643790249896855812412922763338206704645331725512705058197473329850102299228481789588695833431161318617077973213500774044569810472377788001284628729526172031156542294032940734441210052460736488256274187550281128308641072801658159041204850745443042731728691783848438957831887199303546901368363817352584635091719103783397648826075559479855943120195455636467299978856630311563002676902247227582329562316105102455949208669938114774120235633365640652910879305755928326043362549172899715412940505803542683997113808447213812399756080310371706635326679968252698629644870651329313164782949971649993949159761795497478910651236326339404040499111743102687173122706309427267595462174563476449553805578027216899844191089272698505255828424563797356594051628685223639916764889550845341779980403014003122868134505434826680726560552537311751399283572302639903228585210232225208712070320420335588521647870599679193785603760350350221382263204275374409107441693201742883808237751917513187319915185459804557983094020080817572866139623106003688181776063680141309035125393670807806785524424086005884632402393159480378532744976733885992136226205907451317661580796556757927725235509555245279492129980735907364671112597268756976236905027699134933276130645902083049403076731617654970122322740109449408719788570190196578345998830485582301455569389473125800607442869691681748023476172288829396465176901689267927345515928751208553987856887711778101963351219859836848395238997085642437287264995998045200831737975574273345671998386197965823249768731633033924560690375772578876401471471117466460550454555478054852588537633631583658797608002212796280876163801726519831169561302257538025135557338030153364446496558782868938710453217894703034565632190746696932041854814110855100714687773978339441872117698982159731993897797678910590258607930789369605363024025874374586115635716877707215246135084303813450127971499585840678150147959402950167049041442097647319460775094721991903034740629997908165091333408732595662679289791465370245796110180788852015603008058521637828357194486670304356776635231169239635190001595627457543973960772457755996206271498342625275163083659947440507408285524645484301744988824752149178558394493931307408368707759604150402333015703091462863027147734680322561699299813628010190298840710117251752303987701471050907529262511591787529723933009677900113567545183258305653211695895933986039476832865983958887778161422320846878143336007198198947540402918600659999456617025816562359951207908734510120658941269473926931105141015421948659638180601078133633928963611627498484828531314001170556918933988842443727249210322867438321965345298592320139370247571214749098543470302162920915105109312329133980239489012542606071559204687302628933059243398502842352719043847772511047055223265803519295680730441709787155595452973014330057313861020312054722755059463612028854899360390331711529369236874163442528656875023299444608849647175352953239508120479313187585575569361131073577253816560984392067024728422182324246023935706358042832148645025407483692761951257362400420171212734955417692295137609282561800605967621679184069677481936042921599690710807759654848492164542519610026493086156655856388712045164233138162999261697963435977660664599105660067536394465174064814164261156003794363481104097357843428582684106991008873221767951145720249424136511973049771680817042180964847537937152477136931724259741089751317105675541620446883326969299330376084565663515404973767050437244233408791976819635752872737258982805101996545674389379681208202205081630750694939054287438633232684218572775575155522405496620048989782463257078896872020264740193066646740407274532765492762251949694978322878409960456921065559811992971838967039066541217933716775862884401311421539721486000490974197720375784059071252607132651473742763577542008719672567767572763932982796873157436301757291797298513185968028307354041330532205383899405243375430000188350498946864920850419150851794842183377131102225674275138060415550895093665518214978511168361369616444396410315338922824584384560598723900245513170219425796688549646335295764387807531878164590109461929832522340879739453452051006896949066909970254862316801509945349700167862079368027729274738682345507138536038318125664592353595042258258590176544608952629655003260773632539418002969198448119099066668112896101088865103888824887882756051826769383111557052632228210461454198886631068585587288626038787466739072925334309785169655109832581870923418691189846408170378490149513014930873159323834363264967929660459108180359187872883488895607616677078083860385733122487504465280604289677931364640133956738536048921572943556819427724178297357613844653121975601415833366972596058925908200421289965705584653719949257557499462123427569440552499050761334345595041577804890412023019575407717521394475376210568664613101040693769031563226724470888818058561441730167573687816005508454706341309873378861122607451248725743885734822908262828897362137382712064058616946467180146147302873668037101461578358551179234976047442291642430172273233775023147498057602422456085632170201704928362527927128946946723138488781516541352530853706698074423808524560537134629264570239460423466456840447074903848787409883920361522057194437780876435268964543097115436626037436396787882888993160265259700182130329939411634609127357718954640824887602407825938489856565008864481204025097822295191250555285452508312953344979314758511905937178679430177884282789902678074243312767113412884776806153256883109004742267536937258829620643701632974022667091550984021168506441406558048762019881353308866327461843339928988359149384792346216410749870332583430235691773769913646032454841985842951587995262524845314423997256909470922441938162684200721580075124603626578848133971712622000091942181531132385445581508824915573972146933286894288894291526028018784059622279308456814348286270241562131208183318642353230634748995632777485446139142863425994934022792043779003445908164913061613998265606987809480162333103994973049724279055507332822837150571629769909071826022050436010275500859470047044546500600835167645018145048967062530774549645932086539131273740396702946034411516199294702125777997595681626140003158188991483361460074029308310952282818572115429684837144383583246380242672699228994412161619230547857905546769549408602011446221733741183520234731692268498558525478357167395001097085792929158244332630150480973161239522741873054601631390347356260943830371445237492311733446305320102069424993709345984905941925048934130376364354736232685869082864409205172735751832581714886362470560668989067600703931148353811171291247070831914335399300459824512665111788819326327852127187971099427327800859176182820678186812530675896311682685826358481298850232209006291640765018644433872216098850339689658957703993606451721702357463044355940275357396165020119428699288437065149786083426610049356606993528250063764767636269698139393084695825543654932154381379217256032944896200114013511680463339679358544643726815613112798484493684186340023878601803623135336079571455265544679208742347192326840779840363518557439098841135002171020292228365164264766720081395633916223026189976239380057713319484705113832717341164455749399861723946060361901129127675051201995082888194688877699813971207496583319523375265986815982886015065035134768220607678510641849944185076455016953004870411547927640979418823260299169373118768976266622178786535845038430084450746145522664444204170575234913891480967196793229340791128438005885519751219055791472099638476853620328921222435649046856614943434152610405308426342987320412802696946105742951547862009505188792270873154897027479706367988176833612774378146692842424163737674954386079767959458830959784731045007401360187020735112022757231772906435792634650055348513163034748021696638611895232715217140301377285624494215346285759813530582513270202281331364107578220613567231117454995211316917790878761614372795132662144249713948180409600637662544688320888452074247398182599895363406083876158183406448815805054475805080298310698828970446928852829997001295823001430171125699565077266015042470928410996776135557946045057511556615604282942172462906879242017469206428500240155418670012429573392536689674128950243945571370651095860823953561855912155272294357403891931832548043668665810147045504887598800460299256215097571103421952690371299764313675975633649864876847937110599281819467189839892315275416637076381130686025003873592239600510882350888963994744921590868746475966782043186390791357349766309270434632325365979271758519789005816326330334334353357811674439377373767557254226693094698736729563054359128551636242506526984848089747245461285999267527086760602458148692201966923374896499788108434415170193108665356120779845162862635629459984273177987955792561845378614450272098392670478888605330159983975305807472843076335982769504191671431539314175923994162698120590029177674173920786038500705651754032742241096033654927290428600105554206504351559427451480760937559586223467166575405467068601569532238251868240837888580896815771156998273408057333960529168289405748603826119403506783970547208629842854692436962104043781372014277425349243031479430022829990894279436202130171645814305352520619058710836993544466634260770040826644469051480811714989413081164776038593109878929356535846945522899612170964365576851741123719359670776236605367094057565614075588617244842647887804717203053279488525128062110242253423586090616592219113512855559030975026997240744549997453198708506909169091938123041483341558047766398812331055583623796066073455647799469927338819688317901435992162983780440719140392655984408257844471996531157730975223871961708659566386008547774320621259285474489351564896475961703720875553299023616078190931706445871762734822419643392505561491874683100947637205176488058080244427903712905484165372477983634848837094846559668901708219429958937399391328704045935396665032767167524164371180140077385877210439666629082511864583571128301202564724978737000066898234444065583839121529426714981405219962018689902500054873497671567977343802304080463681658535976022612564640279764712995301844224841325792906259580838639262717939945213589308963792525235891797964264390610426203950386416615032668341140754362488159942723220500096473729557790009492268440458912927022872506769882740595905658420015912752736474770892492706212603951838835637164319761612966687981036666993492054428450835567130011701553723270882778079134267769448461770006978990079428776621480034701118492418038722488233346176843689454665785573148584639590067085529428051890831316594038583732994451073824359526914785071361519081033604028518468713080102668017077765290598844986726648959254428940740672401788587934698544432826819276840890569137858908402857612782125260742740563913134707312183111796009775279902941836221410981488006169649872487305264656288086658443774803271130503747294419523491247082279396325299313690633144977654938969302794997261497490948729269316494712664235206943564410176313903320328360959391370625028286410380389888888221148207435038849986462629129730596925774843372552057479106161914482816722547686649403638713294887940133506777837886235572750874388873856993869921689653588801567781025608084211564185834615275888636928704210242100510927410641464613318166902655924014869222378838453842257068788335530772758230360312489502533797086088549259559740078335798227653041974441943923789953879030794244725571770085750427489334583949151766863037576721479311030858407627227012378753694946887700600898041665700289379735904063647805472374666549044554592105074981299880287514338689477560105694175495921367678709743928565011087641335182239408109600256277084141077026165177099566065458600542836289016478356461166722180309995135677014093554976211865942297017751890040675274802013149296684779186609618402201491967560038942465986935543300617214104523311527119610929265792306919209131505524058926704192323748992118049452074684274542272277087270625921168442757862910357224737458466226635254453783542695371189251088920690253984141236801815235510802694405305943379852067316426100475363734043153125773503886489496478645252238686354756371220642834995137577764609331169548014698882133630882023774158088046309400335104683132147158184317304752126980179477678553949605127900930498368272077276745866244312193243179713782237364102689630033180425736964704241466886202515401311571695859701980308126035128970597574642753044466457214502607794951799136471032833914044766099303492871916802989329066513087247345261814456363552891736045801974350773516877428732260813728972197597052177869811185452092318873245123336151159859485271417574595496849794636352669872091010825217316552236939763163075746042689937468290755468803026575753285297445583824683736632465638786115611147626853894283203251382326579215163259824963542000980570060923711352818523553253902702219448196179550727441366927207328961897570079283158768679702750857363298080012544653186660755874589079513371444156570944918833243280295263701540283132712146559352970531670533718974861258881656544398822849220242086742943300056290812145008238912597301176812594387704447174992235989862966412038915963587428860276919483664192109021142449488384517444801691271219925546908663540314840210615530582912366861064565007571723583699779365470199066952343607342635744391980852763867078879268569149356803127023707796895417040598549472738760186891188152270650992836465943801062257147044491361290847075112045079131111600710694722603305484372112925208614019737079262407406501304764088171363183964476458143696599075105748397077026262419220629400811338494660047763449507936073812586719845609549192297275170882791240049525641294923111187307110576742104708634130547099129302265658075998747796236307898661112299011560533374520551993432069594846566059298776966894133802375948676515996154788148934885497254625912190999941434960534760817780108008453657966277078540816135372202376156342336794328176453928354682604806883901364930139309824442804114554913262145665893742686440629392317080891401230762614172531250633103054355652772277283795619266093048301807656085244147003832227912726691619903283341097381616017246734925684547913269040225851529361494586463653173184094005102795318493034718127153166598854781543542969285529218995532117197039774726438852766554728931076395181236650073191125404305660566284826101964908014666301181307789055691476470254057514381938674852334070004574374293589309357994824964079073187167684529473749471426608070201655090951264783850163120263009172408060192283086392297106534506379572255769546942016182116291095234292297402606211778400164680000811784329408987289857483930319126932045146473120135499501360989121938138051275825220148152607705046292811949220537726247328322443030612397720833239251564104962992272475287876762256644830117178363643878628429950140648332270144981043317099614307817087367672950464999744908020973283896863781694355942634440237425119868388793943926298396267902533409635739450845403664548968613232796198113857674516052370563564468740692541994448947563880780089217665435214701302893230526219331647706408668577064344828167311095932348675329885768903672435141799687460238721030650680946807375707706524208734580453567789054586067363989813223009564832316977625796477862855497421193577512580024685983074340517996410357377990592811360807525341482584770162055642177851769800486659664805558391261184480772941316583832889310971376679034082736632958439037603868371274907235053857573722784952492727404977309283528767181371838785810247372838023155372445056506874216573736900579304262458763029627913826777248953913116835247941373132498608857440785072016641600634050441111069168604347444383046197012682015843040415577440467675068764460650813545580225868170678894503735287128263542217403997545987644552399303706258409392362792801299832182487279314368473304201326317092708661818881704255118790390331455412752350505519859144980456452978364389101183343490710062862768123144448733315017286437704847743511106506811621135502357972769584924153138369885514737515511882412942590029043703585738242646736911326280112771086415441748429651276869569921346795281919483302803446355623874448849558574506504154361967692209001036454753140510749177506552995837115116091007321392257120570410255164694812952540643469916302540403844566749675859806125946049052298465789379151942453540881132374529754935942799800200978730585521658053835059143922928984321297388152600051542088832502430593646016527496676161994337627284862701063317340252490067349230431590441686470257556139529777386822934906536660251611203329910725319272318594948217384768364644565407521973779047163036809265696775459790260073000473535056452279088447467299024243044100198429692591755035842972414229896937471373205491087067764813558893005037714659409727984467434460215480206792449453886929221993610655823552941220582914371594837168657650808820028863005300191845156072601536426391195969069575566730702897502448534903922564754054246977915583044348259012607319076577371056285088563955785291204635211921592922041610366183654451395167230500585193855755672012560491372814399786139307997006505339527797129502290709360212470019817440901711411009046916315437073313843282767288653779605835846383030522336348951635875440898488759439404537313842637513504869593123111608247281221511939956913302625580657313765658303003722335741448351832008622876926054550269502962593742080741838316669504172419504797539779699127977825141384151614390504680755467189699793275839498915984792224431445522831628957518184047860307692192594999961243101438356516597438815200783242766481274826727161454911691322125279478432614387473470104745277167256897431259522855588252862286994822701747817224591231182284004029192718826005255198926452479600136408541665740021381775583325852568352449358236384840845759460682851013153597789372296512173958259650375852187447572217707947865192533124316790850656428453521177578452774360212639569919171924153679865770475545688058568240085778476203864721475268857076368972345325959689640305698952337013415960532782094112420603498558586068325336591066510946491558402522007625212271070248733771407042095403554939821899782332685325389648441219760896354653793657313803091417234001452266238535809034667746786482797824990113259201653267283829747562802403606222784599479512300632256346750787896534564484359830934687595139751132095218970301514279371837034428891873692072513605564459489146791543400058508271314002082418645605330918612363349465329166498324143626948814316318659509227598021187840579917313910551700119860545530527658465090826354595737563603731930417487126160591943926233512774417461599322265963771277632067713789113898272462978168279516905066074333585565713674001889073175000170948128926227459776037600130778946398621896231270704911126480056010177636673510148649143708016278439004360801194710719587899590589754651827996187000409126859972178698422776462887746559189248544821065728853697722926354835531195367610071376348579323763729769761526093047027238272908847007725506776539479988969980502535303864955067243817711622966563194644087062738854733581756503595593149547020450986140506277140871940845121115633966226109081255513517713464439739178815876323920586479850842858756769036804015034835319031247703329284234222921199178031149671974138940206859637485861691602727128450350303739164334159046799854319194498053243561146115041094760097317119031927315410215164609868385386343083646388300777903607430578704540435403542293139182871399293532993797965011006685104311395911702266238784756975382587146583750676589640647499528400846497444167013779722991665672357324761185451009370562192680257081331103573997202557437391799299522857732330153520698236708079245173592801499152102956075244608752500706138997758248999587602887738512270002928756185089786601493007418303905418656144778981055552732649202391173064756535824720694467648519857611278260535695966652078099611984199254182800517012220761484886293638805848804398068582770394362329332989588144015394928309620693537176289588312733955974757615135837544618608241919241022370043790780743420845060700444296821105578850559310291720833324530881572186867545498959351504326052797059478883787468548451621732356898019162125675338371068236604640320511725510075941341953936992909149788538153472536414621035432571800562610027418872809275665866635638755343548582972283215039649101891687256059624179770920099604008742639155662589235552097805358196759080581592544131964337805120671890807906871048159868911511239281984580753721585357768351652109944990812637628827108902566219439045421332064285732828693022229033627760198348248953743967266674765836859077317967905145092098314659329439951789869075249168877728888256332941192032443913809452347162860639769253068098340524886583483932514930323567190661324954206955736946004816489482359507880994994192827840225079708920276941702250690263324840351951384655955419989541813219921507619334629440386601219362980230512796530463401324606813907527413323296189580843579088212211454016966878472364164006438804316369532397484231264740412786796348617304192955615407464533505498473083998977271336550983149233505062027543485901869030563966953808549834123151959945490226494281407227836317076733331175463210987412126173283632766076180664264146557859233267861808571330102817464241554243741157168152711887343236394727746437982761116447634608866745310963131615777022031935426456617469388204918201551072235627273248270637879597461448705412550239712989043135228287863504031967739079648453264158963027927180804616506413390462683264510832690311389310060422672521488323429552447432396174896999516849616811479121500514682400475585072103682188477056599619825597789082725198307393028427533513712304622884379779933892252570599528040895317571916845765399065031531273200647259629298534188518770286668387057788210280200853649428294373401988126676622980541916593882904942332259324726123419724749987080856291518833065292843929278869728316857381988861609930209405837993873724797449027900627329312954254967835661500836592293884153522918133244850360340406532563393132511882108286648675659045041065753117403084234084513008744568327070960832186120301096863188786672141243414358651688403974167061569832096205083977222217240996675354466146342087412972990234731840103053377357286075714083546590080914928716841479275118407974052977241911489819763252995881034056062311567166341504749349035544136484401302531510286073851691913669594272358212788153373555913362338507595518851836147793737168136569887402356445719674546419355151459553962387742559869745914875298841663627565467081223933402832823351258070025144103122283982142643419250740075999082968301147729647988191341398251588734259630605311738302315933236371550888828439522436781917993758256871056062512335495723340596505305758167065710111064180358991762364288758896354581075381917194424495249261016007038188174424300291835746272066446661830979559951066986836481630461847902385970281904084153012876783844543633959676585814362827620630406097142704529729693061594342564629898233713549162732648389681441098057261139066791039282660932955574758609760975231162332301105346074391543623178882040771107063124887097272714042132615757899321112477850164545748206139011783739261851460335962611165284837056155803538514062645501333874927417242588385508098924894581257258237668292385876181910318379760164261255790427067771453329750264462132827978008534071307131090739251565791524262983705120700412831407207752532195536284600686750015861208585616825236537524704568595352833688571273743179758019844429371293220649346317984637406330993371950670935746162438221268625650532740307710809348281261248543214341325320895157537440771365622802092739580040575601435810343817956472208133944921896360103497826367438459039393696465382224774270062186278748022826262183590638718465737716179810917979149318013369628046201368150821495845318978587453181997915905880080667633099408740357525664787604800291230666696109559478916345860819874845428243198183975871709907903454559388040937420235860635610581729334560293083432706964021241355188275965089470513052480504103068551439106775138055362919346759789213275711451559326683299482290672757967576718350246363005187452286433128895490537066114447729588502713383246591733567522034132208428779407218779830340052933286288962514735817037785838097247169494717181751335766813399253641341396822393149496863536410098581104643452356242866903502261158276743345895638435695038539136883666449058990064798652794489637730867626820421227894193945791389433047631729296941763513399633753774047664975732388824199661456224036606108527133662584184489109065400424563963114953572595525104947764055434628516594003601749460609772570425378917903877361872119442551199642165829463500834583529102614047559104944739633721325647756549379867585757341944777559195583068102385983965376658871039016912656741127304767825017242934311315159367381351401075010111991299673319412314840718983165982213555944597448124046941779915860179318796347592117045727099757464843620855503911620943421727375522471345240658519498305510281533448193424206761621846464106276999137461539395015780523485027525508533490892433424179446565357919761080498403281598638638027457877095718651949733713375584357192265386551913158333607954016829803983239393515208035671603174311661753379743141904469880836426913418674852337210042835411168372645793889543518220999287308233313575875173068866644369908175176456332930569982748276425955791198257825931874586888309060422951158920274701718442664486803989913564322651075839957741303001381522637828573760592743260596963416329895897370234918055631855705285116369349361018599852826793601830990161665970831468003559527770812159156712297855308687704964613485157396218852281493950301255933734023424319813622316218496817153493822318456694596408015667898554090212977696005829057255287559402100536754385798619981668945957497729777154520692833952850843674657481122813178566176400511169676915286597376474045771603767139444134483095216141074858112764029226102747386997350706901412764995622301903807901501366863694966357664933540654688471776950362643217225977325368717904364527904393802134043538937667850974241010042623475896224214302611109803676549971186108078864395941296049917490315807325111248363049338192121608313403155918340611813775001045190376959118278189560120014710318096599060292986793540564527738527657678071224725877668171090869482747773263881979600557399485720936098936581668981290920480120766623623924815530600833581368506181515627151275362118601032361540429614970735432868771187160556148106673077800965992085784352864781524893283505920632998981373851846907733877647917601980700708110465707156606730319633325988072202032430588481652626944118577276330822567552346797668613083945125623232685664227601763347868926771336249495031602997689561170391608626488513980544144699470396203704427418636149786516148751019531638568212292000317807815168602592396140691174178251879221850688718578430304943388312010361723585123341222096322178438698766877235464190784886607762833642990551391693088866399756687090326393044213166200585904398515712657092176106379397920281566292653805701378591547650445171480530316533044230099173664033970071023813937308757677584571499975352116917909007475552773929116766847880478251723453521942009843737375647880767147295107768373784219289138902914411552259008823513686450411313006772413383234941976254378833118064974892284034965282035835249115483126802683790146156846053277659239869437776148647667179905896924224683526676971761403909127790929764668100036175205486830367085661482913705036066307848955081624152041100059792936984968308781796947302208961119633546841262921385092362178278179746956709891020788992022144842470639571228188102593395082287602438641020993166900963559558012978294158749609672398949963541172206081153247597763605833778999118059624774186190468122892537375650551986880773851855271541218487674673425440407907436747509562511439781199728861731031555765671974386117719754014673179708737705463709723660426770158340776112905090853331066782941529888954165324610607139652202677984872914002176331020060097838389880060184928766537726972060432718782095472898265739944934391999019975869509687237716814958492153656831994126939449614001489395680143638360751394625757305361884699230891844301932317284693604561076571497750040753103443443880480112425471610487723685814138644287607168420251270600838176538521837003222379728266312065749543061257490159242104844577406161741748715803092229095270743106618275625925410414545934696455523430877140326017936803322599510236170277874091397354212234596705156092984263395308933629482302273498226156856375273496209338177812358198491743651624388405848540018996008866609723580828151226806416380180683742105040878998795687034901547430075951347745295884020113505848765444201606606639179662999132964212777772144625668546529938112500417857258979247410057903980202215363181328274665125071120669809774246444091326344686854440386486958583765817914562174656070167707922765914302881912735870194014654326248294882679357676169409253676584967821746623261028319575514194141209575424030132056315138059173031357616601975741512121877848291791160823365039236483860626030717920439965377795586566091164803447482583278450077476432605801982782160763750210016960590030591083302902002985284539607089513418206449483198894130084802262267051889573189693989204780017545738626550010830159049700800738508794423173231116528422922834057442038483489012399469063359679838869724550012530132215523906848778874288577506056920609139853357825408927445940986091268394635979144530172092331159389138675233209808589362056547638179881281437146070252815721212685260942013152922315443089929752055491860850390903072308892135110467459915226134007877994378867504138827693675591606635562400549911976017471328918459040161082783417663886677564842464665572953039483349754171772480450411339738558490144247380781573965686265134541630431363954631793028254253141007274124887505455888221361435865372342256800671056909788200824137356379834857863552789212669949590325285616124560037748366139116453382001449053749863110335516184204013658128902585475955027695486566404725799390467919357613695448946097109020029095139126999263339556558249942114532093639861785811959827697178882298885469914636129948526598942707641147825236436526660853842518491308005359560634152938228163704706770242200654499343227536754977952273293441226157470818680207245045525459796286541763930734809699199348944257406032657848478902171449300352953126539455676865369357117069565851511524295798195697282303141764215051932354393388656643465440869770761948705204896763843475533812850629300991533539195872164142444727504988999950691174960669033785108537738722353640975205698716025716857125033281270962124706377540332822142978802572577745628589181582832518790197335722811922348186453874614789981521203823475200499200710802503495366674127973607321409973328896739552817547037646318906009817717718249012702231997781232922742349944752994132615588853518114369458895965594273279993908318730510936317088909289521870335885125978987238682995225974607217377709260564009205740729245574727349374440351063450190080550923631988445685948548852657557587530061712423265372891565334814645118229786063625443673430824682458859127711499070555539509813226348293708250102534169044635359930112624077849601525441780046377172925257512836080642860957483182675686867156695059231864899959609469452885602753303519489018723002184831518269184210213560342462656983977325001870886415621947352532624602669315068402485048873142707317347538026907698657324845200906108708624025684712371278492273537055712052849500162048966547234900082968867379151889355157401435248856497393387733921145065364816816078885890417803984407795782128330366651902494225389640052589863692941307969933323639370988329926716150308498543726634365641435214104176303455241613301567935599795558300636932317701622715391592994937069002188619824368134635523499606047588777780430602567624921661039678192331285905259384767172002349496908543296334920311555589427824008604224629617710207248964103906718835741300577725436185053685476591543079678636367989282945062474616261658970662843603737812316023858838907852866009163569764650621702072566909370921370908769029657676201510794488797457088606907295949660017681690502782965697801966331647164437302832739748725596231542152111637739026539822115448347160109440002165324302046708894512268947505372813384971642841315445049805334204045560253165665479664402800322540393025172336946792412338130409710166069354802497826238294327704452719571547732726929071722004915316276466990819581168742349410681785212152075839673067966432903066443121172632948872733129522077514974972020497705979056956153822844960619886788954781281390269393058677659730307322867439478921920355039324849213478082053128347303418199737720633428051864589406156608662557030829016197849129219207660783432362826731591121902160100622842987625098431561760937303501121285366691168679773132402646464240044569808623731301823421578604527806999582302545785371964919427072243082558977266806399739254181924867609624660854194266515731277696371343407823290873635036460606890884214692027469655484992104194937007776894830613445352267323450126015562748960757064046758123225976761997361671383965379192136098643213357571966370932988560456202868399922055673214744369271255565605784696860422341973178451190173512082167757220035859942913107664511366955834104964402361950803985481345703731996277248706171116137854787167743379011070203601108275904577590599760621637991757751780105977813177982905198083151021430372244003714726804193409508411216246865664087708078681987321088765767637970554236098084831531109751717089081477499974710644660633915513303028469188740143155434381025842636732005095619433110245394704294591334672532368235840954965863992424948936412284262394394599181995882113713114270433298749131006610303853590292299898155262873297806078786965578812763011962169583940838034046825321420706272108992738311994134342830303403573782371543504714827256624558946055159974621089592378864618549474570641658143129394863944565516693146376733494507769690437061663246510618568572413717867997474208240012477216648910805142713487247056995413740745926791896726711971370569201760471073464041070723993830220818217458530348811747261404946726032207107593306574573598919420410344037552507419334273218274647470094921534892989918757887954671174293522841808008789589946851400084464200624594297224639878461067992783166819679135247942344650369567540093316602126359912537554061366184019080522463522693110242831048979995902361073289886255194951197979258849857199268178056786449959982926620040499866788744004351317749807650431335615259692547113608038630729591161240391585697993671985407022386987053997458360844766646935978409627512134074310532073507435325620431675036885506783837284200594476256634709656426856197969842890674411209976628336731997660412377322767096244014690844139260389935297519355470632334902620486582451064746141979103823089610903183309785540105221618861125673909451722538144487788627321995171195496046574988665231031456221342143111444287659527932517969421270156668130888155590021890927273878172051574515741131118321749847229175501153518268680181779139335665340069639517254272870544785873249745605602875860395017832853882262932768436675755128088188417971152859833754180526168224262035277423484161320796364975775346065387982023728134126921890569088260837933629628521044419433597484754024550661801086567321529380754398898090515624973800792729702951729662311935876545034280401937076985714439104829932497751749646964548090339795589095285627529690590284366622695055667217685850892346281064787553331325632175053175362119195092070652231011524320518221902380289467952648858478980960882899494759817513224351992934376835448768935291908536459310947046945374961810316265483067680847817863825670722490523949717018997812278057524156676788808023679475256486010282262963198606384838836314420970426473053480843225681421332992748643848499292049269235712503591508748666512303795565708527100164231705524814882803878953485040370646638377410557243542778988904048753417040495881391770700249965292844629335528324723852767276544351523901619374357514064618166666170933386793119664045064156167332533988104991832111281169217734057921971980297300344284509251467533840053170126497652223716162444439710455948662982145043993000862422056653738325674076246904939209174282510361383840297301531379488184373092183790907097023286750820956416108033406036473774666533149470684932795238421985218425564650779444634123415922872120425554410771793307818868417178714182901754260277382041235001589310471503268218212275427666388883727647068643335228949257160572917200030075385374461931246049670789710524460144187093213259568717666419885302380567411668973436637375620663319424614570599785698924247967966455652297246915348480171978744544485525978160423187082284344767867881404068077761824672194208591794226099865623120465541390572753638354668271021675622891161201325076869650360090643695585466162157101945655072608449573416843953496518275380385698023670934664796658973564260779485256522882261298010096430003927619716288271244655915438664586718638335911129250005650888088509498410825554862421629177276513470783318479487283035082112705374480450098024189790539438385529417173774965390825749102555149568217211195256988891024055731194364239887061168412772732448134840556611759202722430348790250499986340726877414122606970062075815387292593548176900560382358314418646369983440380446257064862375054715322865309324029429626064515358982830707195705109813460145477085431765761863122061313087406611348086391181765013839948189470272386720367512285970715539874665955819392886926314966624249981500999709117898207707283042828516948388431135104709291146977853504141125601408822831400456941990203732496592650337437565654964498499755710804749946906340180891113558712797455558250818447396184978312213620981534165910548121520604506016604427207358466957620099467344773067192604507626939926363461186587335148595333927719890666951735904852005249008688369579944887356926975225345675432025066932251858926547685460984711029013543711451040817839472579924662987065552511336756995168678211361123700543271717284848201612338598982807859881632997960844936590978992904734372729595991667646600134699270663246498888954568763679048768157514114976242235826299849323768127304331020368768541401735465611321822926367781787523641323737020254324585803322977680580700539317965468618540482560435931696868308627919873256990487248485354988004423887646822088099716041249342960938615726593581709059465188424101631423594299368920094980179460424016758845908450101303079675001256562582077609310022164147262305493269633442377375836811131127003907863242745543240910563830238169026935567012416748343090130729988827832582624962850610623203009632100188130408125114452732598496906868238420764975680400657394522341063728934701487497486078928272391286438151430411919638328898449066754355445245292650892832239813748982403767668388857631072929721964330364101519634650846356360476488355513125198069185047275461052547015691465774550920920969472558942596841438262583183220697454040897889385030959182776444812228487233071573788383606431537833546502481843117662665978807538133576107742814892337787873510484570067253536542437741783738373459435265956810576704837735324142187681502660806910896947489243027163278282425540276948916515840090272658860753352071596461343617314718099330521196066412611052947623846425508572986785964991583845824827526504151289824865642284342838006684415839624389192299574690316802576184749629440968013596781376713286329348795727102610281856343258528468964295164744734958034666690007767076623016433854769111739884116788171964746885225812858181910367428181785526032092254986289756147772667469153363836692088494237435759084478294450115040796547995291348995326960348898613428913827751323081041256068027862844944377848399936324216398655035588327346868135320476864988904599281237468551135552891158016958774394022773943120914681566902389648535543327935158446302096105428733036810414125695157815560059268925251090479152923456280965699793292345367789860631302593146660666043783781106839895287832919473434237438972800883209841420033374685532431223823238102812271146124000088763810137563093516368428073013600850892929049422584807924084738799802516169186599379455561930020693107553474505815742211971004006781626685671568727458022782680460052704730080050221107184736197231894401313916737520415030107889374209522270935857241030132532475054389200481018801046748345618602915115434744382713731241493284266723473448485359659741006607025375643569225125366880386564015626016960561518648092727880763780801253096832082892133501097866785742578824710062066437569432358829182261602286300540211428343253376124575010509525639563240593765374950518901765007077964555944326711743868883520763594103641801229627915532033397567691740085269081914186372160866804230113902869775471894557760933654397607830671821214001985688071438364972107630005620243121552505037548984015951351970388509247228265794823950946610007308084637326239964583464279403444428876900752225443193640360886887264894611761459361576034048560375349379325646559884546240511919745182515642580859681915665513597947235689489713502745344536284730601163341114835377486617277282619863973856246792290519727092577984863197300185969398881503246494111262547887536201875186222738823637912921460881013916444829375416783579772182770644520466132733718131467634565635177115782383886793666202070557540473101549448445382779083218068287356402141723235104618600551359795813711942330070948918460683104272968911438602657268524473826389914388206391447585442230250360958068864129704401742391573844756221690495862823035063729115898935240314894580190104248462580776655347098701751023893552551469073317515926695395548156403304043963475591856122107342847106282768674159395762101896202276052511480099502650908494161003130473492843715446838138165134140238598712624352483732466022869618985308563268232635212177208614458868113362725906492034084349862837684370488923711907076499301339025034260071818064046760922918558121918790855785241322538376291637587919987117500213492285961442471578232804890402261164469254176959846611234906593584279567161501210033115278353033451120502279951549806555355252748881054627200321974215994726947441494714709612929516861781636523676861368796569566162320775691764230959147280492260471659703317577040172370451548754988534203187187377365888200664872678421540342703846825309170673735048634203078840611548631484463301719403756876117425504210837219057273687766096235361812931756867704525868450839244314341239568248738142499426198060851502683752445254916734087524143874321879782716627961611467387676493195472098302145184976004332757692611443912703968873307606266041837262237259597767215228665970157173347367514458866540766568254535630249949502085936926303235822969193460644100189622376031420285241287418379745952383103823098487011657730984770260080258675169811236514699689361498454315165943059251249470066385973326756942449084654989814666986025183148920362387192762559606600008106197858142705296682785539047581795948217464672111102069172492595702117457847794262194467365950823145475402849162564813445619822661145397595959511771737976433879188745473003264396381216726434954434023739618879864435492036423414355033848926329634364708741273213949007702448214365133633450201075800956902527638769039294239471398758301889217097963722086465945018498199027269484478873701586309209531947553801766976684845655665091947146031143096077448137816020842002371896656338398266232307659764294840064141798256204668031913664846364974762748128334698811868246725121068024831914045438800759727470934662089013279463736463238105121844801127137400983947073454035102736141927504654822937124287137654795428084539840302451505209952476404529098993905146875419971215884812967104489271290611266314573830856495253951513972252273222419601082196862429905136953858370071846666850759657669115059732037610997984514202935187158524965792392385626472251893483245168998772237016439943549659878793768406179896466922760419986672897060158124965118058139311933151985435645961543575629761994111548230310475993695714039840211331760157350775136230625864221611720771983085150204036147628258913938346435088349171391516796962984491550205417952276719047746735622759031215428353820138232451102546613653734940520441298997778867049557377228785738046233583512543245463546461164380488729051365126993463954442047176653528403411487380711814361140217547874058966616313483705373646223237841322802208073612038803878162242345129925324148956773417723327107618879090066054177823523168103633016036022741316763331414156587729485160828900636032089293356648135387975489323667581676884937268208860150936791388513369033204464639393533207500451126455240111686807393706571418795844121089662174086706983932763518361223001216312772551290675919715640691576512986318677048364218112920061160391518225887608224968837763004385897726818679543156187986414230951000766994688523591891536207872582851357068289147386978013827709075389218333580240243959853232955577638360248545641623414033249192178301546319868500556531044574491038759734866174644689489528122700562971663101124002313231622956715296875036368983674757621211974702293793285614207018599135631978291127279155559033252075403620579540762102166553253852011006394778653095229895339863978500716835903189234646043486776263140003561017735936172810556791717333904119554805871831958807022291979566021241428928895576988215792698039478421580016551534143334312825184848657382296095549351129626333983194967259342228171421242807179874957870468956743972516134211468620887281064296882167502104087765028228830215121668039160499357181156894282122428644603588680201023198605068238169300217957506342404516278927689474033165764796859801472395359400890082301810415426185796544027787674582149709290922152701271907057816420917122943329169016837849975700438383633289815955492957403101645193910645021122585145550881945318636590489889656081629702681378745318130337720832361801567741915997098369947211682886938354064432200909803000709371729025466247584961433233654366958253060901185559476186569067385137717709556790609784792195690998540589402853705181707296867444983119318579617256619136189677000258475755661839746533535153181208218586606957562858569488270331978116928799001082138444784186814654610870072995927326457258502610299895490998498228292201569572511988657644060969394306132196351124225037093218760892835708269971591210028246375902207994550495288603420993214921808020234823664128336414321159161276215311386872891280278239143788711426993964476009519216940563479080114655937975207831350011903368119541584988136945527449458240548657431062773683430096468846549787600566222727916493646500943586285290113940018274889219460295293848870467357546669059441661812551664644753108201567106227891447807528925442629844154513387904964317924098123850540001341604991654881915014217137387664262586470884530021407360120564753995827181127828221816718144589353285727735874495210561317435879115935697415821087322141294249227787552729066266955453897619199092972657342691356334252318878958253372653405335175183993371639503722493417471783275030420995251027694648276858846329653480907364244731830445159438263662280442506743292978444142963824265668820353537136639510447961886405598184572262778699560507069501580593731936524939848693630175091039552331306170479775801077851649210052194684818351099763609380247902293102922398280316961841132796799723788763170599973523807193212202923478887800189879953957080792656330726599185752289013265045830283759766877101613172741994374787544838196162327541501364609060735754400328431475844843160036394255648519676155519728306955741984806974059333137686129726536301298827666680347906874759989455662227571151759901640013537533241077468126918439205143203266657377852293760997272251909491566828312057600056928489062224101766018190564970852027037990575666708739438202730229149398036363158896073754970051327774833298776188465395836540384710665222785322410617664397345735817241661726043517580787874555820595733718487499535724116228025858874117245071250489595198390441271824688610865314419354633320204040500359790382879663743409873920299345271203059760062260221589498772456726790830126032994943746937088626483848924314656771772770608708705055216528694370938038844830474825583791654667688179677356621814706702947789517357160701893665910111745102810858311229318525914567911016274652145174919826462021602151846489337413967543466991781971728845883524108085740701906034929138575054358589876364436765804235180953118960904127729553973035748940644697094367891805936621424884942764877721087770519656370294033556256852451361667215965592854284881916441736994271864346447664547753377732584654193347924871213539646884236907243635990879661270029752092986281017270355958067986550133976386048294057346642583744381197835203548187102245877958060705689355814474833107915664344889335559429535663319315319254542865645447050066477269132240231915501508131006120481663178490877492647991588081867246132229885502428083102288965665309315137605465747930398660849932779817855310983660956472309605332248060458503738618532898782966368672888078093882252698589144364910334314553583800291756551750647585247185077099678473929760264157413009853984273348424803462052311931824702399137342598712431647193164926548391630627051630381047636142326779779319135621973851213136250413388721211615185590029402333560237842869817929479488453005869434549061915036182125078348800162349079987056425329561812102202534013219682244074805052133943037911917936642977542896472129695840552522225651595212556444415250740400600697158058028900890082464069071053509223054725385932886683206259714227775565646468760130010807222266706766560165698525195714858143796317830415275257366736932203591044293352853746719443858036816610921231986515679872665431923132952925921652420638685011618041317211554145070604151877058497920014771898814734532987923972634874395176040606478690114646328790048712056648944976138335858692047962005228007456763472504531957808640229071182323667100588225159814182721127456254393094673448891322976350557361844515279453776856169197569204396451197756247263839384481850426894915766752502110430822246455109908626118879573373803804506063573774846088504178455849071408903466694119810289929166511552235956399857037134348732629175530217169047788156458111888445746755760305161299128381188580220115155354518955912524728100327120969114119865348890488388460861997182794670786791465206770956365932664660907137452249669934216898945171442351957011483589534784474386236623460630511383824059027524222796959580579611010553986678658879618857158873455475840515853588784992022484234396024082728074126385345216184664403214254299655370815898085035405200222461282306045822830214665883843854213573392807780770785224142829703765407930920180627088357394485094658008156782733365700871222920985129550517404928922319106523182695327450632615499210055845193027155840044394634978617108298137992858004945778051646618833279471701779154207535529483241055306350534016807275513408275180495492586600304620048956766699617366358279414984703725618129491723693482980381563353186455204535210553194442838980295174975256229689256594211920065447477466540623797910319126315048087312295672366832333614080447086396361948088066796213347005041524495595007865399747803502085461757884825232151791294541327634859212244703945453644753951076624090972375151591442546450500240638989621388185135678425632004441674547806302454388295137822128149784986066995359763658576752015518060910799713159603773011989366743908500851050981730806531931285163845321611571343677103750463875590166061856355308129281719606228167090758880446218432408898966055999418943269513022448288200549678211643217948144324717364382409936449490532188814813687133643698022162817703048307075021375458967501564643075018594913234748202551096891985369495132823057480906692403214190651154073640106110362833812585758156827915236262990337401692601122296910711599330914454244799830493140133141779327487745252893561716959680249738384245242913975385832485690000572498947636879764643301481554926817426631579251853629820472656895771072786479991563334777940447866181531845648325713422047233102615925919262857352757282845854271041904489704710490886351634072411981451219090432402621894823411288020918785737427638974077353024500618821400963782867964288187206245534333327709132548315823037851849984640398367546047964928159173954528605417381510767477394796576128486776572312881929091400588778210446315508656898869496678107973782228143628805134809561344989711365524779975000526229577883134194665679380957873017488591303593900174839752761847771591543200874842873831855209347648686535935620449647850837133828691208436260150321528633714125836660289783820324410079638795984140390930546928629718856918741170951229553730422733312493988887442910098857714649742988274077119081529015184303706371467730539858537150527321767003533678675251177364215557630615198565992961622378934403068161337150443056276599090350168173621462932120931851322547711079655852039407711947903600684046339171171178954888878990159664189549901753495960439514086889869300575983804525370744237141112302844359659217750306793064753464607231519893622798810474786723603037414318378635089972804084393036788670091252311072124072854042088620639984151449967447864416796199466272938184985404830804017277326842109007608356065820049397415533163521207284683438143916147390304545191609178556968884302778154685904253295287536098558983779301852815574916308565428926910939098071806765043075559474056594958504760409502164434708531493854570950210709404955173141101563963574969708314414399026188937700803210018814962010142237013316728009533421216207006778917236575571564571222111395758881801781624204164760506743009765176694320796496786091056062257911247448446233953000518233166764755610381119679232503603785129493172173649303464725692838078860368294593836247564276468295124914675255971841274839407692883176468913639296377495873066659312446605130431641275511138854499086920204369097439140896453344034612999357089966955138885590689470769756099096247810676339572462748284771786306002788391474098200330472447787160946614828701598326462260126342979783358311494666171285695161841915321403995139988155028110012495858714044944300189420478791970516597127518976697422669474514036915038873338395341381348125181366221951137029810403947026598849631375939460631427386359044740069789350546513852057845636500954655985099000956502606102697555648374738789444966092570543809931791093651062600707744473229975411835480865188613743089251536911316250931713578623223275271484990271908128450191174564349245830425331805851088701000299981967352391866991774550575318565329768787014031672004761921804440392673899653483376196549620597754933135340146294043995294870832005503674517626389881335635954572585724751917494091003796000901880922122465010897879267328908606847569286579625831799078443098785424329939891397231855167808283492564656613078454034331802077733743806474938696593213430269806938152960340193464213250598106964083721704487395410482372076359234653088546425712167052566972733951741735337755067183183226308984746057024202536559373813879404705803041404923797172999035256964543650396384458275086009458162033070744315628055628785768645604211386076569174931340792646533715893260131707197674201829482719918444624143785820368681981163918649137410425601053953903692454836899615031963200509587859222355186520017955234317988131087865924584228144978627054674666766250430688314185899962315056296697437147609700511098866763381548419753216774370815837718901983737305033918042252066779603869247674973986341101629231640546790780072131408291005040440062022536958026056323950395629859168700074996928220482430383909711628725399261721041750062470594153487839295152886617611828135556231958225765267249277380895105298646606272018402754631510711757014308699447380810746391179041389875729848513921027585242140698876199209211426083501692249619164688951930630881713077218758661617325387129471311592974591994344389837730129970585657796592335593603894099269754085238013082627725799952328424048944136112677749931098221808625122489921372271871209525387050661326292934839101859257373387012593363552904954859696215270837919665660474645429902321304008993317120806733711761165989222594496753484340295831121532984167183401280346710818517269369952670376018398310250626116952613096256193647405667507241220370231541802672473646214233928535175738572563815299476146359416439555101825432174522624836202381231075342766667454923621340868572679916877751733797743442118700210082757649421147442542828530573282536073826933360927119849735435848510986027839903109090987787878417671533860180225067060032022828889021618784608593230604033265871214001950616542857765214088107602768966548146892995107748068990930149033101308894218248767225541478550714730193746631888520719972402390334199762992770929855901397463620432976072914271688539992763083157878266749326458442716271555425763589242015970706106897986638012980713601266002017276741106449269833619129551051365592337429591597047713987208604418758574048227490651136245042168287544629773806890125567958163516861064644229978824991532526145995186849257355665718839931908119889168807292248596674032690534018597875466741934495177565208631884684697124664666307717527498773485119843433559068060901485502449073438942121627065727160579305535053857756501439324314350160000321572901548380214761796757700135421233340977305415404109555803476851484860084400881843180368165271868154276385898375547403631486857377775378726079265477931077181089137454222388844376295758788934996959585535094108630429192451208171823473851897766104348155887979804876834781614322441975375898310145997597701108498659018849876458713736577596021764028582446150292249304603932886038834589253253740539877179958501400560171194556849030880941386899779067504291032299944845711902933975139911930831908535875192731261661085261597038927839175973837791993295152453640469556974597788558585751636266106472087620769779785560459722921212073567919023766855821593539354945987049102812383853601422508537831407010582639395263554724239521804761033042308668373672248904883261715543612445495510287230508001322143309500565318640706550655246953482416049646914927630240237949876636421321932959972220748853796937058723615146534689958654188649845264205913394349514546777489062598493526923290144978942566829763021108528170056572829575597482859171375768838274996478716961147214095260061032209331188632803915769496986782043886029531545434970987461374266035097610968706703586854211090244891019602634633571656446069701880933045961119636259137891138222540442255224934815015238014227836413721148799596582513881162292942380358181907065414426790306676931962128158404589210865046516662131987442331588030161045343086184785745455642829694422636165696444607826699211086541370335291026313779564108445191474829064286285166886302750484331629063502704368584946892491845657365967916635518366449404023009190075996618349674604815569282583546153104389703085674626935704115798527887881167303573917744274668967320616107490943235415375361133357507852304746792824941805340381456329851695663532424857985816913746013530906698367485455130438148912602009299615747997773810556262904661295643445763536583781040286500412014015999857849317602559125508213085246696366900725581173745760299509076674915288224865963423747659097369925720589500304041640589373819028454978111551635052134930413051857337924769628211709122982243335387314457712960012366107833677582866317180091099277510971110747126957238853824894047462421015527842747760399805857116274511338471342864130276808499537225450514309702569480556245801220242121483990384607876477255825464621729124668376187740594889126017331568339470079716734700918328707339163905865034246199742832549226532841794543941940835174422694624657714719743635488214035161258770648662922054577531503424779750427007966625532946950818698782683642136315492017856313343730713664372950227393836756547629797661467992933979274929741007056376443481763281506662093896087263504666199403477410460406896741950188165918826858641464475323121090980486963791640085003292068408026749386930878454211429211341397465432218991880035550144486569828894005734911317531712483245112603667692886040968996936511269467918743710307952271476771747827861426164904386466253830170992862340005693444619782525025057158981965814194535593814476507043524633372906003085972775862260050035061661244274235889828330181865392818350135437349705443679680444453136691145684874304765629984556738355263511641369338368350487539115529280515010567934862014475884794643510785259276411918756452632696246656242181918465976227837959616253125300608141796690698057380296044097090147934877759942360178040782371778780118094729226294783238751026225242248411198524496828480982907182870388873693151600539385161613062343617469791192099411121457347919951543536415991130214349019027320491612453097174577333933547577476280975512946558388869680194825919132434904974711377096639842223080711018375243517069844548441201199227185240937524202507054334334359092131880993355059627478778728231662361450785284258648323645813042502319604463183126788202924613527100380690952498476304907028356781585533192169033107276923204005351448792584984510579775915184560703990372143628321045452242291340339001769649969456611064436590584258944067685061398342910453811088537793371583187219462745360061539998522294434925921727599900779484612072548960335686779631976141387711865488205085363907076641983541036625203866791208847472418123324124533665616953184257469511209652411900786314248979104508737454293179156176407737628630137543854301142449763849698774979188943780074544506779616059397708668180118152728321918816555314642046701485163411563496852734252056134969651735648022335503490843888377591857796009379071675765199291452862428553968082358126605974755243581613225920247865720174258050738331841249571617845146353560004717619877137374749530714229033460588792767252033756523594164341013766398545385128867840903557412464212903181626676749687412490280518080665688033361091119914695031445876451382033165501109664092022741873316348114702639131300410709429418061088299929235519133534717876471701603276869010332707253997472156737778127397645387014318585875557422361372287778440018681366120207298980040466600230352419411043585122158989887282150706657396684923948669344093409769743686161549625678127452808637514049258971174499352951475138069816915324947162327497626393924866344345691104172262255498667132275844822436349668310163583543040604194026887461553742177517305905194790300509946213492069307042067861502392882988169396506570209763330947821320398977074519511694029308335488004794313931329708577001968211154020374750883299023121179585167647733300761176912681101771506521521106327922906195837450256387981833999997745056118789057359105872606333190482391157563957775200759079997383458281605454179419583423681006279696747210179849987873765631090341222332928847942908250825972120217747436895675515799859164174736230700411497053940935518226616802100649782307984727678255073781837007719586068443970164618833194203963922330475985090986606949252584855192322101559350063336724457067264859997782904148303504903110625431071129029014142138186801401419765400246892662611545598668959470380217776964756296831261174326000836028787755113925470575385222948588683366257234986680768293755855558432024998815822812942973397720234824473969003866163551681910114509482933945892894161497848682138503712082167389464363023786253288162320716713240126043835838859734171687096033445097163391653086306304051982699566900569482028277498509196161213108462217003927946529931120894100515938564062387431301193637271612276872714888235199539449257386083137371470093256868561970217411701482922907882767452705646331378577439653969514689710010271052135058403937319548092094214234012931373748990415284764671953176132599431054255150162056053019087665583413963186589325460802552612291909430182292139841877836203842358236808407262698318607998473857653552265588166767169085888135624095480689800170886282760342611462903112257159632629894112670592464334921446666176832049554397196317973173912210296493855201365538508789011125345080756397280817456303807398380813516612877925639474819022714771446499341779690951838363644291860279973066576165564372834311514643962789746086039141590781793926064145806807186355393720791072949692367810538778686798563351651418320358061022585282817657264474592635463441509027247806225678547420255242275899612850477590037495591214020379540917876094438071423150713537050890631051818650735911205276824154424301287820295118963970972469220794838026601925113510692386815256372007968209423452631322765100151561322184342811469204337421025395492584976817438953441883960918345352507469136982589521303046911642485604694069094365653249980337100684826407404309700814071070699657664239797067945004777703861458579212598496518046358446025098571197622005403857291970850271207027643857087952910377566795465244996957205185675481104705999046910581675687350373129208256827174264137973786008080784538210042414559956255513923900737016187358456138782560884491573658908274322489106220222142633661047329834575122565481858296830800361049984530349849904444759417635995458815300787617963352842229244974451813853087183094857903104449776450323845139101695363929510515317461032234739228106821090908204959144192069560259821017498175427653242584764821527292602174055517534301012954846612755966993024075429551148430896402885958057623002533581959326299872976718319540721221699928012650264999675509614266550651834021293285631918121234008104259106876021715167753667887029332911475995680177517802481681359803821889624699917059340274950691700484764239894338282292176952529475336052897741700408649104270743592295654278480258262679957429676220895625766806690986113313367387961578890594899108937961562630120215110499046471772278440273301894797754467947333110798777533871603038881313215820513625753807693288787552301460399810596019634404572864272569965514379728405794797780356391858710611492875765079038025710941739164413476666963505395362713206030017284406026562223802140854344919423223394874610246154867818997864038289308733389605386920247443813561640756145253064230680773324503975193466810273050546118488482423913565608094992220688227604340334800897469246068695005920252889759494341241858727749944720929695782213547716499634658438544162476662882463342297923827967868256921863849564274371069987972096499531745383143702484577215336627227224604564040644588851412703800646151438178426636349171276874109399286163262392696084016828805054052323968047498641119218810107023508837800220832657629824304756509129318466446153421230677573780214343451003889478453435654032664690978895229278283884470227203278276680712692735176167952479426508143724383949902074084106544635607225714344654069378967634849405544299431249050053963611052779073079545805130704764659736797212886350988395054510695599503908767829236759698501673524437885977396456259227601691710020779943926202571804502853334541615159330392003898638150209490126423103723073196425005854374844870943184668485083870519568619331758409814470459692728637656249648234737685101564355126372734636283739604722445185945443011598652998457454624031904960435324811585543877489704592525287796095357669970716277410818731468429854085879842123315659140278717149806527679694321009633648531871291882204683155669534927973154689687161215539693789761780438242101827891033414020289153015546136709688431737694928162002656866311181423134071203624910792484414973815652013939775944028422157205004169030561760849091424968922503971563461005341506006658750931374416264976039323017415270247235976616604898623048001116831430867193252866767720682436637822343653241223252287614709968491121732515108514158111929154892281098788987652437283137949822249521149237061367983134737953709932353151008392271889581802257038153448598549648045525830679860165488546762208822481057545964210227028916322251292460948574705270013694836700055129506077045117116803932356937231510303799690310462477829879640121115998272879012614807920798720775086545379121806160774722622634251035619282932799450347583680661314906401735146189147003632086473641345444237172651342427522087319303593127585226771830146930553760956071607353699172055123097585357939421840756947098020502156339024004857559798816200456270802256118437260801069678596718236368992819065248551635251553068982248906702546584628631553583724353152438011548861636125186801904338882297267197312912180728904319887728430938818612490913225218654066742572454267160898448687045880522369479605510036826307760390599440275449086895245161929327286655021651920551610149502144773833575238693105973454441288248516885527714440388625712998834418226808606451917828422507185523112536169227859764291221615842342204841323390688104459508009509546928060191092461658849962891605958347428204087308077264381407194995431262800042847058151166690827949112577106316910386071770272993650089859969390081521996779884236631735880314821061759202669163591851774930460711276327335408208552557260694284159429386890643183338459134146763314972072156539252835926048661546036739129178953157155488879185792600571494038734984353170282925334809861285616988530259658232980956567204958449987160657667027835505627992714910846161065717834760635780299278469759155976945358250263640820241650876825695989844563931138172921819626470540832233105822324325204591403425899701699829999952312276211126485578213816801862047449720886359068328977726068331518506740401360048716520853702716563867076051381882556862496335910633797939900218808298947042052100051687555846660441702344721391966893000749452291111119739856129373758815847522476323590303731014169493597347212866453333130519546825044088547679356627617229595876486490611001746848826955528822496012947492419792829197304213530311150301224898347985642408829187084618192845756195149053338076921606507413029203779395227045287337944962603461598943745042535897253459031418814027038826612939137630610283294907115775884571301196479900690158330741824996226016142560706968563567693920635851078888200307282751338433988651873598575998651184013858921945845573659603027020400272847586380679888417542745900719332456633868869504080117988805521402982663461556831345866775598815231397103395550709482433290081277814213486126183971330800672008135935700259256169610108119426855798956694847934996092081881330106276722148245143056452830214412419009548226066883626127801733625623258061863027419697314320686067734952525426653611545045712094006262448676683890118712652977932622810047675408974054496454856884697074809551942667040357049942096166757513922770328588452265208591260271852851315900657513218777383545160619883361570793528062572548413361356578010711282839196982125342687631026620180875978618311470194091271723309023745669506427710461824161557194592840727452665132605828808612978918533054078438377807737703504619208741232130754350109972768621499116664865807091331791758406582570404925761033159459612759395606428467712380361783201004914916680383890062548387370965641338194677098418037982857218782698273703537669870481496909750921966152680551469600266402117919434213149188070143824176535689848879107597458368257389040118677502475413533627618182293406361034972416842543952706267518498537688103486632986589959916049073784437403553266200221418105226213668016515970167500176616749938417367754913010479236050083533069193178126115005437508401648433892109699961033574098917273514273012616531494343991425599414793600287073783842626842886556680678283071298479841302959579527081706497265910368011850924969140909326883631636493476273559395533783261271200678534595758276872089880640623051924254568133781512077134422152564876902483922092156109422200973240868431723089751791053124117077599480858216005349995778686627704048785168542755905213249799195801717006369555300252395424028501887300202554357072546885987111612112584971080609398091105921263642355331810836115423052374438221670419884021272830693225142086429761696514170470854053490212664941829225654340244827603974523999563760175919550374166299800299442945613839144355144382553821878271583123204591512977393828561473655305317476106287552272597173949417123439551426189403315278310561257545306170734897762654191903261723320627789681330224951828383482241164601649906420962576779827343184584640353129157520205984622891177221513202224869588950738306126170087768076468233137349129617509275859217057722226788528061155746569260869262810607292098865870873074206104247665603168117518018199402127600525641937688348209348946831560548534310105540355846094077148945487718241438290083627889216723906948083602388744061040976454065224706651500267067596423404358177914186048253114790130361629980931619035398975838146557874225154499379836430520300074309904376904002497494436679671513372166777035517015712774693719937086643855034439958889549409130324648371007509133827348482527523835994853080493974272246200120923573575265586790537089066204371180912783530337888672545612250865928702539749640358843436182741823179214588220820609274257779630065439702445093422867127018201365056383676187424734641685279058467260633619362767474956225449099164006683793060128155299626237312223313274064103453106390646357900441042375755147396615344669421378162542554625879903647905112323230451841318717380100477279846293083280504444707822842447175026975770800062242541159745345577080707985666704690632662445042584723849115933223071068852004323133014320528966206723709713748025195806358720016562499816968531133025901055929134038635405148519194851398931117423386792406206263704174955545161011145178639629891572253193814889464505736516916840567411301108724536085050699248617982202021166253613913560373143624461616284571210764793552095616013324946086890599712366348531903705037789244942323336735688859915657712892816864326592456495436891334357429090231849165286960796052797987480733380623941266136220907863552792425939557634686548614466803545329584300981375542834016837113139369277417868958085670296133640009685423102352605840349049029292843617857680007352383947699558522671711216953146392070239897317001671749621787387521872344261760490083749050852345800860806555683233753804529010793872720359818043790763836675562362014217629806753868281963788100522122138854992233603007946243356263968584713524093056973188032633548923266249662581557852544164288505682600001357147824526527824606615857897056306644104008528023513302944651309904501444419977552699624879951520277145471909968476680803898159126436142821804707761992347263273686153130355102814305055132414690220396894384563702800285040787362835426362025899648544398339704406274548438890763557150785258602266632941303977376427578024723530252427576340228180462797265755679292763757203758968999785539212028761782986877423432459101928724529391704059724091681188968562270146351861074940779171637345191740485686655979326064924851354959427186197284822828025859059486365057165963520969556682537695919293765524050866302207125574460820277892195223141323391484149781908747854584776137767071826734532299138528905970242514131315014205556016199730092450757803285037548538251410839066113752865591194494469079911698985793746306731692526492805320971870720531380272300693126073151506429212655909366191765280707129202413928157784578879302843541095883687335852579212231715911365930445004258114417353774018973610935691453442657564414637875026246699599247276398880694991426396464070960683218913709775153906691554856722285447473902039133295306735586839776586628404452669677100543528155841951553052792166377141993058005393101996077217707478504944839222828205570635171408828337763204395391673306759109265149174921016442445098939469830985763911770211747512358994601544200831317132991726971921849029535902818778384755768925199986009670609204444153092249764298946535737298086434320975102661736563520981679260233424730714090973684035550279949899294018313567448417016448855352538176150335592976527158089194579416499201842710463036308959515218591499268411386112411827489205649903919060985485414926330459166965539018286666684603757661131536575138421110502359964646550937292787566435688475899600980042344425386455376201222172094164461135945120000069245868672300838840400084261479302172273863342745679204129850734363961487324781577893681529055956203969410686552733295956285610176758999555082198878476747236440632693775320172093296943999520391283438723111149581728729573103984920575731736969571665233600053684124631479360064957585242770618599621540527455027662795237104118133727524361647796620793561652487093990281133645185192486225250234756524463139533005061941990901710833224939807280120902032920294642596886801418239151015329137457244557766015093294521176864510679967215157700291588099923751203608319171987029741139303369450507427418355417296915917479510124837673745834862760812583788896742614818080061930158839373915430154996915364394732204360891091542718550712299979012868138999840550083558119994220739405762017171428325895120903689411692979298323166046745874087304843847529974261453135483906825297348389130667220664297016523267887037175592256632621519844231876850687787373143418228947093707346353947795127582010076545995557913927214705022984927442908811368092694355381870336842426280053033620596064460856140972088038955475931448758538108510715328915217582102951707808308466562094470020639422539909917132849735191220011543155241701932905735130888812543346889328630987894992548651373578944551383273146107722033318858650267646528996311943735928992774258898858310885892759635131609163954921275710032654873224346719394375568165414808782572930654232495843426283827588233597372517111300406110483480152627883436391510841030837251766415032369249560948658642630314680820995731963918040025278833322603410981087022688487691632904348376283401345722711363843041203942523256635655102091670884847197719462464216543569630203672874081704446515451516410205827733815655187077984004206551562553185661385419157833384287126053741780629686123053924038617077037433019200113312703032387817898266700990309216336258635997680458937939949346407465004481924300924982584023309697292944647234395601885179338496291470653094457383645937189848921740512332363578747875241037442509301656523995751726926786780311559593244064507945929265477264753405239282713169324294598768933919216390670398047567815751883359365188266228343765248939120263780268972668187697194851460132287786615088167923132427665525516784241572561437735823723715833339012137929414737750028293840212595982972783611880948067613806810710141427225484456699185897923163680520086665844241455517200486999669970129780408795068126047778979670539415254862848926090792122084865906363877791958107773530881781602790429496430905961109368758541478333149305500060216169834008153224703694460218756330672900751942617094071031570436625374273007777366302983662528220844052377743687557019095241907701259680580901649275910570069759454471355922416415549207967405427646396763418237883346372397409450232265625474771406740408581633437511998667387750198047078666596243072803528371667081463234525836285393265778368300388935659058691498960444633564001442243853389322931258799120081023864037911141568676772165611652258273150861518047906462069905716887180030494382328998965661929332918396708756871863827336647472446313622864389869405583538900551479851496826052326520128421661640759845210734020866412613616442196881615690263866807431169954793693316606311389263955879311070522131536899742446989201465574452717628867284751039017827497490668675536791418760905756903152587008862145431351189750130695885790077688811921119522647701087707566780588492326311864531864282456821312953800790130754171112246523634227763424798125331030480121745241502800828461459225087122811772660441586200829465908835000379997956851940769614818843092611883243605032049171374341093254029657702247106050066293111695084111582009952112297004686047740440856245777957687274731877927924502161890986125402336885988482544377054927796215457901124900707909839556871889572615667533866861879491533914078220401694105097584953647656451529426386498863325954275331218466548052398036627163542393444322294276000680858154994199403294128535942542799123380392834317079734071663949410080279294576143262223177463174331980022391289510281059902017646189299874662860974700355705285858796012829327542732166737376875255690567061774690193396929612592969899499073276873663599086976519852561769154042551692370517785516036121265543634017742864731249051079863113936926222151003596058163353061676897177848636147759003962883774961112751069468734889784595075978304050696119277921485917002647568050131673247463777291216852189977902523445270302432588962261489275199068489484660543709755411289848140080991360486407428983272269949377274510259824668189959634870909979247415109357515925541295399046809858292161490805992525006817567807961443360511222131446157691443747347526273186660772827121740387908860692338769490910945576555624231574232256472768104568331643260477327324772044017709101189097766343497256240422111764278087046813039967339705495104089067024469098935233747671468152721597373555757849863966744429885747235058167935972239827250414387641178619256368273606372870558234706491721655658360358598901918073156102310976627425707148208164217153659149231031697430335358923206001570159328089351859726224614871801101911956763008269786604084193655260173103858287021087882733769816013456357555293117979565370997112147342726636202544194680141578739965526911079141645724694247066361802681280791958490896593731160917499201376686695639498335274861670181835623250609922063372711833954157772083236758832820646104283597426071509313772708538911224298990738532031932017419523128598189704712017392188456398789198239069353778540896316146786063054807220691094970995180859109507068279002763367966251611539977663669672322473417337666636779638053288880425688104796950917899443417909040117016158931067663150787404889069171808022075360047278391338082301341940187091964416049992563349104605244608106819722268941578506776156865603747322426105712320776839959215679298826618948754696968983551147762132446148330950195314255959541780821088468896718606130149074098377976451037707002118396469439835565158258477968625370374358672256035207703830000303252880487823473041623963764912308443102804765160076143773387085162870715775528683050168101443217058821333978176423874488216617856150120128979401057311648452988953928540085294364935479177049213703378386095625341019952012522066148130212296124839274139036572493307160120602433170896066848811112001322295768299224737742154761836997463755461548769237372337226176823248797228149623771103933435708278052146284662282455356984734421481251309554445236892889763278341465028768053248571286847936958000056730755791049428590334897201299528890524751906910850836752332859630636244049823795399808860400441737003093770397250177368152716084741661387023624185728378737547839310424584808376849294478091041533782768504955353342109310021521405671655516823793181100702767093133938510703395491130260455713865829942866524856520273046451721840563641777267591983255202518166359138699242940355160056725855095484026327305595200871364366505627137100836733272943934601798682898884983402414208131452545086368841063586851760017585096803275393480578320269248137186868443828922759340183940964704446151886699552935076857631232389361875583510337429561387543253173930131597356591423714364223917021646641046737747488557666156506314292524430004342635082650930129608498877791547640588543514360217803153315753445333712710335579256132862358509765240606300245431099799943505128479665645052655079991811053145776818159499877615359105023790938860181604355620307361623321142194360037454181177956396705901576227921937229836577185171725177564395586818127257232949302685097854252758107109875894768530437128017695760989771030932757533486017734810273835797018925785010141978049203040537612152675002724398938845943969934104721306495707452154648559626173187285206904368170848137280073695640600268926672086111197052503375957614053894175366786127765582488757185349070709627712365379749484130909951116304093237349602087151812974791022642496044619424575390401675814712348190587984962550781553512772173437351210309280755337480456273396770640172679105534058564512255810445258754809281081018177707885305868129143546033503597463437727965762541627553308673518935780991975304913909826594290529299052878168866690509178817772423284544180591069438033111333066302218525205608890380143293029019751919401093570440310043603143677394626441007037485958299309246816885446303306386257298534302670887603199063005432510764626486411674594561068340133385721135923303311982923817380068929387852969329240803864429612575733016173963209973018565338472523717869690760668192737936581342521552117127229903349231879418989236874173245833505199879599532231059061076249063322313260344007740543859111195187634285835129721919502508086394246304889810219031018203228587429461365552417396076697472098631332078862512845409824125663028707370211205563680889660611979193798070276254414525776923085314570746364291782768128860514536594221960241717873139124014667375859651194090212316345764471973219378389974771012327269527909258869279705865524363863018405980419284235887834670904101833767479028302177935660636074607673640980838441455175059747877265804574252572991758902386366199384424271911940751998864750823165796737970759333505724718370058641199070777437676276514978187221259677821810695210067334740120965158160089174736453118706949962662431932871395123615183769733606497799477945818692476487676635524480641440259927165156402224112316348287652873158733078824684331406235118958136748409534983690291029090241596294069267591674138168899121615358738988038932941213788218148577702812535882429665281103751813757253400591501852333745063553579963251642334699652488228331168611860591946060389370179541695362529009069110608843910098957967961451052543375210708213988885046443489492269338740843505492015067825816296430424187698767298308919520771248488879204060857404186342471130678116970579106562235596424508730925045260150539260542620500441718269008430917434026337343244988880650219414323286091150783305177097866986368879437164642660705398160221192245063871507961582862336929173162639298306622343614399211768467298091343441023540789906129051064510561367367184405355491368802118158727169343516621492885595741361791026550389164860230750271376170766420183202073303781866027620084881840879741802080583076412717065782965114534380554741545417453403453860113665900575849716565142101360901624019484390303648980252863203261756463908791037444385868597682239132356609387127393923604225267098188988838569457909133576730367339941575958611031179889074302937187276404813059771853605890489401001888246867257000966015879267046857860749799049368775536944725393012888526902751431201158142453164106001663407871343559909641406992273047401415753881293989631083653341998369075294015009819665320850642345080248429993184748735604999747635645750547261190419734000618507398942055746369221616853031448964823771930488248946170184147855056411007327882358768408439852173123537582786764729015975082002435556286472871122310512708872922294163696567528340973169887101938564373733273034247990881495717291185296903980891149363009393593267897991217982372928588293347000607327431976126962319655107167889901777472056399535403719161122166141281629192104786468923463109134587338560381250378775169024247279470861044634524011631021015539793391330137557331603410577323520659761109436209975831794226638620051815461148592578470798887483919023703017186597861153711048052876663336898300445645868084958523593387381974587520553987429414864501656128839716006254775276762043950323053941486836268453274732589296725464874460435967771982749638410251282591654060171661443752234090092948322198135416233467290443971995636242719586930471393394005992481462548467357292150591975815759618410513000231815621672764176541537862799879415622702811545717729055341015568069914610230815715152522240898310964119256203798416438824929723554848654957587370227279736063216998352082392501936824515521654966790850422533057056740256949640386026314296070932359498489934145573723485265682775863710738450302787813952333161644214576013675038489303216815019129959266211131132572596649143224140598117018630513891411149986359883506494067301685586635930620036159998831380724601025750888168467855283812449433583595885517031525506624057545976111622186037372335881161017698688725307995723871813943994942532758082676249211410442261122218827906132973101910546232257648895971131816509162582924174112939352799285862239166421896509609997839366519808952049148091263144477724177923839293236891675929003361522271981156384222124512192212104045685225437191548322657924476907741068587238493722916821195624263124952810948978548812824523809704763636292340125498955422565900156877103263381287688151700255974497864089422114792802061824914096463200996400263637707084996594692399652992119516805304657768844801533730592842629081143033194504850753006785779244643427937523968571554833504567536518335407650936676021575663807194138402321659196340905351280587766874212341609032921723610958805709360805916958501912962008734196129203576974351834311211826661255985146837311299372484753736171016856413453543353799862514586305391988949452978666556683875432066754250690016368695894479680211387487775060390786805347614853513178811977135989706233663462247230872402236130647126994574157285822927771958463853442510940618746497869411017976692769494382784125854447303311831025377797654547309143077076741981174605954740155288183113670613451726578153219362456977818776918089597111100960878659896828369874661466872636167418253488488490577711357852033236263949946630453623615667058901267007174659423745475918536431951211668144039049827969060179033954045116598250757809340157045527637575582822613380614787780414206965939885788934357773975334405050732793044157980904685583046491723882831724457639721830918437834735261876243791640219137315958017303096296232126199573394421293717744785052576622843525790676881990315967667704754319794218163564652669078918162427453854542586497325953133218702659429966830590823431540718221076196956062946075250725347778752904568949186372005273638235645691234984436575285711843154767798237105827790962928272571924371519901074135696732945183443816735545884091681515231442852385589270746138564031436797483951873076150318996471579729031166272550850806736330275270952033538373696488660148776561941644842212573615354351602119748374539159658946498242132167359500386169956395518736546885992645060210059845992284956425083551075665254057984017404326397407296659061526172779303410988256903865538533485454790846822102227987273977468538791617419567179184330706189608597069745373794894325576789401428037562750563497303121977390492309301732080007719688119719020167273417374091524325742074732213714661470562116675074625410926956778425173825076482321768232511592041688360974087025754910788825207185678726208462030229495309516237177789208095642548227190437112172655143615381571560837696021380754237629930707468427092381489983660408532774411042123647647032790111775541052866882542008324791449884532924898746259064195977878400186757234492331908753842289670335194908409873556518508238201880471419693969308849710970456533299526558026442672103324212383039237603951259248406983020435581615238719340406052986023604582533709008125591389663458417001344793748742659050530256116275109971090767250601201693448102472488041762347158028571921613250568904321017549684191149793278148789074837291605709193259028342033187646183599705827008033465279816863987022250231215203482378589855405906370754792041176707366728181630252315850427177937210296448679463091417756223008342035310766086567981964413774809296230121227444870046631850068447102370991770634125252171830999928778719896491390082627884670371421596766474406830736321725878722907348831900725492799143934521354944101417870688081346068798017110523323352416667127231299821850027226076014644500227821918928237106380792755054826365990769389831310719306980153945529754420774857682974253328304529899331165801141879773973871685572311612127623379979100499806284778104595590835496600051730489024915011323410034515740129972439914005198444394344765493327416093711876710113714746676483219398787642434972658798057178504006567306002764485017173822224024204617359747341942566144498191514036295225898228266731745814700516938198706071076988298047936169609541824837769444788081545364248248843853985148516169274151242954502433995650432906927852655616983875753386464721115508944748839852841647677119504157990989101300228142456418957641262395724252368773722274443212114842623843084194039801517975745522883242166504448059132802109437008414880293475466380654118884626467766928793586124690809713244326419171065913746420581984431980235305051079875347265651036137281847440436020714208239267279399747148515738719991760904671197170728014733360401359701004256261293741699015603055846108657010720512014348032908257072090468500280182678972061148689007430538416095518703989815852384061948479059076304482083625220975750060840797090767674599378526774972248920775209752230297118902444134421341492086808006440631633191348556454528363277172872069173674515801903992261269393200567016499733310949658254413857405408934046660308803540190235125816577972907064216247619895298963752803577945840923712212982240622141715151226396493206709278315356199004881015617526243730406170785355222833349204788522956239698353324251135174340866025808523339418976901783967183448215942918831567995257826446584422267603332924897454724096924641327830565553309340129220651951196211672092140601125122567943514686609331220455632239800531954119029820278001158295595884144728126108715569373142695593337154207678100381651321492586327723653164060419571451057108041422945217693429523770128987581891537669447747171957844741284458223474070654815070136162246640702538586034014378387017890003738166409296409050975805216274692591254353592516958805262471271585483541753510731747474672834048861443896915394277051208425114293677856487682780413362590622228930249672768377130771541669408693385782344568943059505356535426695371317070022726102541844869847078542782761782907125699560124143543314721507265503606438301933670963696214627307255092259831093178499293976065674665473130960047348569763856471635803468960528294860052135030490356155004599666807844337762950456000509971329713355204528169302238789592259872239438493623367506308788623061124321781040030238035571481368171824322821106630691831300256595562810649953530295925353063555183983547285960282144035128882358437386067158125368941117286152116864068000159854538839814547003660842001112908474854291332708788358050079887576054589829728260736918401232076010478906400652731077835345805912160136437558906434449353183730745448597692577359931114374932469310969760916433779518466823341344215093204835401686145003956523358198020895904604342198275712585465674742867101847745757859469735631076504081902104604039100577445531633739424490856381892387335171062937064585719719607909654033999659580299577849553767819060193962137287302058705458615237286711566086841127677806985485963899254345059624412508891723345848671886310119062910202112586368031306479571752625120670661584061196322888890760609458258860223100149571604669399867145322202461774209360566346775141334231323781853667741179137943386813564007214250663236982973080173899812289392106511989345533703288505236765544651737110042957559960250962446194906838675315111943347898531254190998636885195788185650547866595741739357546363405246512247659157426146921667662427896283345131789043710197136320659244606022473991583013813250559281449957175594919512747044507586455548221778676460536283482406069189658516403460110780295760289679043563269407969207754944943150558762228420813153601764065718235589738265125828487768384076455301631076582848467750682028220840964429831839858084283278821596472249791376516995511842713829953676202030567298324056197448422054128663178661740919287339081569110848307619158205937598942656306191103451343203536508446424437373714418743668071967487151849424733367192919170763868921342692585018131270947068151574095194241413230756709722996695147454837034295223961644633878776558795142364653783275684783890026743493639993150756294356828511393434277219569802741873729479706101577773943738712439354906926190105277075607653765160519270857821033500261324602633173909330348184685308083295716137836933050421616552827638406915138600796804087056199910148696258901240039495035155582978366396624916270272038568194020667962975296569563169496614502999877690142282137693092819397150317018469841131361907651039961487594613684361115326595464204035851907758778722392364849597274860480535546774922811356433211633251005027768909142873703004825238356534019575906569613140493380500065319452701036717370907590067086389308563791492919894776545634936923999215286725038986514524483555063339035027367704600393767203626872125455772621482768375931877541610842420661452346851777359015627306463906251306215086687880393522302209321056198961911273161648788462996755052181859498420999624134472663793196865262933426204030649983853182940483869838129990930019743908368612745823013980729982846253658789685173373446710165839894996283794738788445459559373879580407972104183478413363454375347761544433649618083993136977526183100577962464068273487129640234570116899135665938369488602387773607862973326572588274579250069390403990802706766307858791831694559704861212862971364035125808405882853054959866128820374684172039025691694219186091424149128789906633608742563510053618697630864940094397770097856476973757025907607224263649244600807469071800662411108012452966168374126560179018363303223785794392040455574347315763387328129663270719929397143805104955556504075919731075910845005848293344890824468362077091275770808200750563345744697305780437111565128146253806745851820444463436103411198251302963871181708284522948743119395536087932095111590912954909282857105110729414733746329365419420961937009426928952860592561181804762622312835733537329867345534318883533413255517946974500523079806844962689281058334193158255281418792469014611186428559155497636185468882451556751238325193532327942659219491306725454091173556568581760477028773012690955716926775140664608380122569101987877191573257171258041777904918191185730340701485624335404990436794528562512103547716665084126280502245971610583771073858896748142889889814276420517006863593158566473196216396190198793911860905150837688011330340680078081646175595310599938624148837867857425517596180524945157919008584666963948097302888042852176643976884503779174515489202179207071598766127790193399977210633659642172858740622698664969962006252168239187427526035204870613876888680556129637203803400593436293163269058569810015127302971130298798287002120286901156417957657991110156295925602884082705315157680180118913943363541465736478335212350273058314821566815385512424430929557113134597596496183973000508802918796927337302207191209433586031614877024493664918146744229906032558447738179251782553921451233812165198414753275145653486933273511942317714085711033053637206215823582828126795863200086879001866680386647383073209090664331462335817197741936050625914476725281640061440208282636328349623876966001043123682735169484395237985696096424248391616889341819254628041566107187962024541559291884689483465227623812677499369138096636498301338508346987434404895782861449595588394998811335081875178208902779234094131765125061081598757052418789454626133125315726923962246236736997576286014875593798001646172524371570631757259271326640209262400356256427569250908321590938018603314927416702057848662896423978744657753404104880377651439332355637098382535440016119660921246475995681803694842283370091652434156323979981639596573695620736982945634525601337207111947267237676057792511322401851087646673032536176733909721796806834708889459486639557403819677377164734087272565621549180897865611925775029143018820214635015273276189822237278045514246017826884728204134192874205938253552133918437693419997592420902648244503048085551298080134128061778360908236230792891802913608104358831926022974732452427126806272536835292575107596290670400951811176275476586695789170639853116706445602267583052746067274672058626323649058137145390600247369523933468573690895711645799772228110579753534608267293635730910808353225525649634722089277001264164764921911372117303412622062809997723880398991936693939204897557140843336737497568168278363925700211849236589814030230320198173509250903262071429810155736557090526366450157942286133284407471279730283380995127704476607259186141443815115903317194901027628101434137216502951247332856355796819354670398424348862871745134051302830949162008746812850144662760673331907958804153630792488031452229253990515652356215665944047800816949725138783703950469653322182506649000085286537447756909153313581917883820443195643745231846449407811660202582967470157052523430778395627902366041602369613968474458325398131393903892990955021411988430673686493039895170968816118946505231619522322048035994964461757008932921571223751307682088042141183238196208666742263463120005232743816475736390990447350731174010842952565717702334691009515335138134513710222457779742702469533931642981993820719047050976327356794222042270545395522040099530921628118274559687792939815916249574618175527727817544428544183484128092395322646267688258957886113270051720745067217257807127961832256944501546803691823738692635145812579279270943510357949226119048005481856713930900912283653494050563681121937659728336050085453763785176641696514239363800691610171770589668866082328834433545542354335989889825666120508166026180605806594059274933802806969832443561101699302291349865895273300644892060774929990382605350997397476500263311856239580932083343999440729667775678463990481897924690491699237125958048556188974271976794862774286506511560263464350932842227776708288238657670328502816987343202653286947056901462212766287705624865713368503895045157528896918100656128862696862614991812819765122637433124496373304105506847019182513000611907712843956002214065020974292041685696902011259210552557469317573350932944440813862147462532712570232502548760966208655732350341922904330470219239045252668997360468166348574949214355586287761058512815628582594698778727717146817753255952911422104339241395907952706987504432342277363448134931087492498077844974597573369783569771229067146682218690497249838145242592919933898571020523050139043299027785973717101476233014917096623349547308660357417343259478053387475043690109579454473322621238374991105247335062407343006703762398180429288830499504276307414861692604509625951678812577681414964545603183299868610126004743008113007814759451569788223994853372429092134467676309935600845855708765232626456877188704528197846517693183747388637868104320027550665854825432119242967224108273112517261559321674408869112836410399835618257655811775597808304446634290879314629660460399060787923510397020360482018027736601281058439486470321086076748588522506639257586146949763891975273586207688278562944772311363058282705054531769747732467883013359497627498648421072183235929096501266196394106313945056671366057038136933536352140486946930596944619350091073922579246357091659528456842985079992929000716540245704674816216279175006478007191514708415020278708208449678386750537195268623169220823529910460034541358164258997245737364144513623298731210956140729119899880464289722818036924259863466266256102064893196356092421759903344916298026710921517454385699389866009603211778632019725778684630266673962010879583534466265570235695986898264834160853616583953758335953835973956664018168027009112867982766620626748950197934799736524874405460630548456302803945316734724355685645299702668707602136053842205709284208642635049150038170308125016561779126525770898120440332641797972974618369942137596058487447549004826791966100377453022198705902980218052866361245335655595563577937181135978911847958949017423044003686330249036830843002920394876456748498984286534598658622727341888078483400924754516305657703818435698049113609915146892418378156029743689025661424699499333304394514146701596441870362612032926617587399984911920701238538810799722304884164481038833222314284960381477655623444549014250613244800764622236103045345342409608880043708816949653665058464704653290462344320240232323831580365370077684996689990325936848762101874404628170586361206759234702555533544505823610123205576711818256957758468772929967710830000083084835950900193509774516866758768318902955064891955987251141299520775250572464028677155482585993049388040075739155989567089040820727532412596426815031028218459161237629762096649092989126521396412520710241698428295671211545774840978369450518691876774830782359452717659017186682527839064300396388172769208753421305631692030163259632565585745889637119170619612280793551929460976571769273946439009950563724893623440989196325506760734129460708966310422668755185313381936824456593208688977698501798922397545547583994552885286805868295101522945021862195035336981181371235856417474691623275909448206069687177063471713084658152440757922147506638797738253910651210088596674532632437605656122084904668545972572312339491549377303344172229516385580353431853247839334157981064740790997036508877397228536170243506038892808445487042884627438679330656171494068747486960583321687666481846037607037744401192990184936211487188876502022495671453066238787242858641147852756066810062794588254168968031680091094333881174187539119397886343897160911964280168892895226003123152611777968556460835387762262407083901183004609314643905012429560901412783251623673560209768584847669807587779142059641203848919314046109349885717486645907893019413457596106869810613687429743849305297058272453854885024415724627013576225133937596514695662247018433412150872243768220988863511331532930311998738046092319067782416459894764444733760549101779210712784783752954705804276431116961613155875556130385251710627590136701201526405969111432254202006699134250187335817008089843999052289115809983641600461401336439892631144846076854249052179557641044485389724186818103162279526813763072400180048704693517741756791663951465342257534715406623485083644195888253062040309801232034365099553584105693723678357235100512328491677897448983487474458798370850139325857746424959312628401869819609137091522297346932978544549418683156424371234377044943660212656708673504823073026218152638572912628969976529761671928863064721136597694604422304453489285422456041535321458911238834485213045902094819306721571973893659623022417109858537289043182969392790379593675592328153856813054577684879446632544349072808370149917674305674619930438721555174211475525245242600508700634758739873145821510975146353699382565002642232175841048254535371838022084475143042505260021936477628705247884280793373234410457815744146816787184255795677490949688185529808032009127493674662501251632186037803738999218655018330950005734527940259850222176552997598004508294361199611263247218711690959680852719380859022233853337107235864811405181108685941894622952087431114112314096212858174672837499844554724589658384553668520985272871137479535352508391065957370002683956362384594758658225680094946652051106110846803360989982648462578579365638184046811326791587500663891646525362653962714758676489560460256997858501739165458391356293027922858178206057521900136623214706940127187151026990396232106200473138882850728021116713656376445030105346830760563968598709175725138411335510483461597768050382925672164508812787940980401092940458175365291031755844470321618253574634762706375977361789586573680389886410225158627025007000233481779778616281026105305287688200061461829524819043473542537642137082020054841384375546225310641698854816388835351729485381901111621152074499727509194867555834541738753026995984065481850112030755123546048116555679919023435941938350254934973072051336543084282532124322909674659711463508450132286914410976131840929589271847030897965710577860117844720259739958168429365360993006041049797242301362670928582667753259316972954124940177437134351694978657877940201316020810563049944166771492859495677605983207326553586287276025079976050071958168781560988386941740215384956509391492992268375978069510000749552255008034216188578284805287325548421653358527514680801449151061624542285326892263835681232897973049084023985804912295145048243904429998099253329635305259007431907308141163405229481289762564913257942499618914251559957131471825307882281292134036583393579840311489383978177067813672066944221788671872066177193244265999549274789283915998445406244801082146461270672770531213598610879809496389880344587933196841362972439925182053192475602031564562961327402749406768928633839787817991959482625880944111335797610890906725541464068807704774312412477812249955510959129355673117140390422769571076093385737131791348939907629808565526720470850682303663843354998119838247085154279850247778570435775063562223507323736815853259355280119532037908276995130765009966947218168718707200898471300062155451340408000243771468601013451829463946157014823230985231791029816853530758462611616797588585189437584545060234146702264196843438269727731459758663553749250131038934272948567621235647993566940570271715598313047531449593987328385276459572800455044297441302966401690634993929386746786501474485678746144503423753523380194669738873473332331628342759742304446422303574863258193995186511318164330457588590922406622115231285695533147635979563591094042796377375732665812768970454957619514848330283293967570579253737944913239568061167894914898380474311567244977307712571852536894636878792347457180712871935876605328110242004824490236736420251834433638158863001703425570373645450210578942324162521099809391238304366166384156142214213459538921089916139191269965259463480589727039888069187613780358861343024242352362014712650684222594440422013262058929915205694937857280100176460869805867426486024451343741625401333089812410487784805317518463525495564878871757234838423017815777210513344139006541090594069206921830759348231238818820353312230230474414042063916589720537349913216693928338746279178185842933523074614190294702315000541289535035003608472046937658318073769715712002731643952100901877291013699533613936159065446501578603852281248854006505210601739068130852964541011474932726513205685216294528515613319039693215100838893855711342254747552209700708517170574396353810941093189743780185704071627110722311167668288305907190416881809704757596106641340747376864113108309352246587836794647481746232788774034984023937277835030266077728084326771105979971693199194011060267214579343202084577319305932925873512635701962131335950141112555226555985834267652254327457333683996509735312145399081420377505487420500223150104461100335924487207034615787040919783606860002580183106281633733634953078958909283548116159928217608261047271105621721735403844153200376749140063811404257508934763889055304977557748885228241309752491612945496542746267045816679405579655598345288987907964992903319060634209458346285867700964516892499341503211127229839997927828759579576893149303570737363684033854780197421208809002372595512425536366884253024857950350780281506115115938932812262833321076968672965191282107182152764021763818236255461245204642553155050822719263318871852962549295313313588034631101903142813132630476747772557819065015086236622785720317735555836268686428646447446797680695624334342319125025430937917136872353227651880319067126755066371823890057951655352483485545499284188872459984367840338417441463754031497653196287785640178345560190738968869457697930266563128446838244231575589220827710069676848399840466362906770477752890070686534447681582876949615248219835144163639615222944434617394732347628570435820760151526842405792723108944182557557294893464772770540813809363252655101713899321855751018412405955313977558667422958972952870254467756212808638498990694271126026851927924490044078411399077663912100009513991561175031955836537061470448716261046183688751909611959492629387198448279674749765666603690969759854507690068201024726638112440930213306148828170359438802376466868014374346815730565273782860523608400769584192968616828435535988150120804330969371102461594498256996725636032985082525086814923944642525884071702185243534252695885223151794488684957744889016427108343137316980051749515828013810313407875639248405543368240521076368610023337958725773023071335541030890672909521838702013003566893415616343411597423983488169159131037417817474500372686181343293440109255939890155228451416223740964330669907449529383590263556144623786728295035517066634880443799638553540547993831132905634360220055361320004339173249108948743144776822908030343205302947800471005411471608604722667852288966567168891365081625676675639708324395035914063656914366324675613267430737395711329004264889177845034915245158918580335153788011455588031910578045436212927976561508748006294862040002548478706056030907071809691279316869383008276413383670604669572140862837106559272724055306632695320979736607241783853105188158083507669201976956581508695979216494807666272359478237337478005302020360468767578938404435462018258877839786305569584526147229652449648092489271954517694660235459355197690843108456548444264747821028196155774840781024670739016676996961295338087571356950858954427676219760201438132176448100796052836131728946574541131963664833605906687706400115767552921710428698162843404457601821095571754515492763920115258292084328931141556717687998973286501776878316846428531382461896853506105450753482449115547607443038122557251803986154574083622110176727897100323275055303492164580397762898436975046550385196055322618652575399338261415349393806428312037774621143620947117137823247415328308337427239140654776469442484457180303513249164375687299843138872508768130615419540362803998220212396217669642534041829153126345535385995615864371920596664611338911654235784595639711908869334998775329256625592195190127257182561662690963066047483612687319866426129202790039085445093014588521718185073074276059805244717087346716687927295379302744842658261427036681722748047006742769112554324183765063185919774981121771143847810521182406212681856071691002341685131529505121096716376615006914085247773082347832899484936230715339665682912599283500565540855149856775088857414210627010238488352022168558248764470764675902915704603917403273721907361312223268636001268022895821430059506461588037903549020207141435228551992100210234259664355072632390626176484140020474694923806813189977273907473916262499670571109425516495470740093350114530595978963934036491105958710324231145691817796955381817915851959240402144715104582124607257243079140295445168212156241643040042274562755376150943344887744584324477010027943323229016856143213024903813886630648103802631291275413783826138648169042199601133164323812792189936884495628537332549026684408372698918318585114906465142407882406943801059955981569505834878307315136199368199286057331492496571700375534559147666163913720979197880940141871354834335101707876279203164156438534113497824464205892489763854003522670981755845242709345050448990053601639152598055589791563738302516364235489523731491982779555910209658224310633267908069275115368705594037612699506644397571885839640081336137704644882413698157874840243934239995982652558479335194067761969727990680903732520707197554030324733664074804944480353723278640174171666158457595086027565109200928651854037505631977398232725996154058359228173618900365467729489814235446846142054788658269487615333946187327681881436663846445602373635666302206260367190301796697448025134451121964399046512267403737732008785352658240045376289108768150439746613400004259896014027662443696572465689352716677457583154983851868295603987047035128061006789953589642088707469022966992073345266162758731335558420790234962018037625701513450558170214299640993580510043619408627593979571236773164532691914049107406571119365926197852900027040000925708849752218939154693924196886863429448654762171455260822467509622068728062655254260952242676353621088227566604925636871911241856824020934209430323710163518903436664244626697577884469156578283676506410318323274202388246311360443386247191572673710464302582631070171275088394773464466830330942131671053114086077680352491995198568480205850483582592842533088817577662020285447061147624829025483753679933207901455358962652276860992096457343220532448682615778343170542189800128397605214045098386363730953765129477886236013482104888428861348603917680304296606055040385740016975909355003322509211984479885714126006732037355852976128205726970447760445375390949239034312707423549548357579045130385476904104770224270511229777013320872610719042379591816926172596013727147553670826857281552391208017441663336638291849961850844123889984137715950504980541859560143990661689807641205129088952854910587332943779501824317031701444918653417674355212486405160597141080345449350829882441733614368086010141903815174027845496430494479178543958570871170726389912934065708841967107054021932898277002493452087399235404881572956288054444141376810044042870254621716405252938811261944486616001377851188311046703588466418687305287680695641478546008452988602502292016232287784311258715643480711674789598451145187224481585282442172943571739920635731233395647436723573930994406838223466529442339271058651985651469146727945747359647905134924548186756324473531794813678059437064334469921717293358605496147291565033841831037372705565697240293878165083115165486392503432334563153309157194012151594808652823207716988532837813443114985566871658372923911727000188832182222311392120232343655534347140166185946408711115529100878335957331149698089515506744920352187203476832838189975695440684946527946308641939981681832177434944251322499554263602366237037178383313814046391245530572333747897156347636760171661794731817003650995135647617033161747237767027245088650844828745979632390884931693399528117116470718334020337659021376464052090563840907014625064321478327559801502088585372341931414819661593896838433576723221096278322116249087991881466294780487552191778031250975792147928991457115899877669627396075901125825614490558790603915442327559557720269934872938704858371131098024921941693595530000730879634785223898109468623049954185571390211731124334085140605471623497954870691337930726780313398147712519089463805835885935271440242617763423801222327444319713280029445136665321314186155832475359625960282895238299090801440172178109391942962070035114774028134995065161232521494949543899401524583359945766894529313008132076491439622263121932391661038021145876048519733010579951975113211351212037273577204462438857592205732692004351300719515556533541898831239092722717259145359221194699849291508044900666802162777999181933371288810011244902475225703483953036550239522910331843021093912172774518582211457019487953474300246645618666544832714705386943069901386071615711669088325558487688073499076082086782433729209919906865110641012598266156913418645485217365270255209118631664372216400003971816151868517068784079400202906027891015536911566681461722697631140689171854977733178437395832913055401750736056768364186208414135377881350065442014549462918404203632303312968099512630904251982234462749541548520561541736981448535318342484101069474971314256927454424812058565978611853947476808545982092136066995248334061709626067362952620028186902343817177148154945812405184600943930509647520943845281357925488249720208290944531093622446707711054256631244805379140327946283699394814340345008004579368613364092749525673662471333324113200841257511883223166144412811273833199159833406812259093257097816296958385573176816048774232890535762293501377079608327399141725650813689460308157076033890494247424970962486210453921651778444027438613279654888423934080499616968292116970962602706747536253254318543195974280615897334712732592232747071997228527341682349879934798237043082634025012970895488714084363002795419899070249467103832961782972069382521982407356900692987927002745079563902603030326926607776509379979625726222751017866785961159251348064400140232934496152881715198931104647214366843257305361977895959592381843445113996112331027430093462971358329964188201162350407219074561225478059192893529567194271133078006805017300433263704609209454553172778060593521292839791183643975134607017328389306280986510603246758735367321455930920275707805735472418411098127321364674631782726142634242549638754946743400685222652216710434558753356441807234548474958011664704238855075385020800873796074956451280824307390958253756243397854464414781974895461531678022079548849443652910284176772373287377253593487290915079575786254501826486736737906360717113563342589684263129350167794669320668425551828855361819251145646194069238747069694044061908203622482894253934707883634870141797471410713263339954128227637724120985221414193884720406964865050110303116978539216411414340972689717549738386330655160929031601410909578837808365231194165119516724066427706968583385689239983555711376179848637467290428436376551724756401833238370143471168752889256883908666930687681003089166968483702247109404562509358535897058360492743285058201791602130037962531836143328953337943936836965642082062416614233694836585280883033023168771910747678571410032866931902568249355758464424284853444465333047691091724719915529360864405857767364987994019272617039386942215103705196866131919230376713901332753248176141781908507329897458958490465766636528876021214334325234501744525929876012498297676519265027416240179714391824948176619369326711256919428188194190886537492585040546837291415909350894921941144900342023535535253347569421641440919666873034319498695643265494231883279995876632576975398383999885716238469473386271675686917477735920635746710609045459328364892823738896890745595248215977461774370564742255621985182262207758205400129386368290104441128103390293288352131742620654394752459498383541563656792575789761771728246283133574160047085702727839192830115056855786079148635326121562313022892231066940076531740150359745305869742390894393898708535932337885657679120957354531508037530555566512531800754646282410916895633874773876032013571517264467052112269213489579049082174217564817832803686286816591010201214122987151866713114890766071340408093254415123062678712112685520375131991628543915582350931506874868745369992492989131971954533638576411074979011922623564566307713197825116055236646997864346107226076756235869195071402897420530117327738769406888052234447587271375081765379414988278693235474079901298335474282292843315974405407068706266409804931184715789723368164039340128427763792847546849974494883284748242858952194373349188370334076845080589342160214755445003543374138947226434817280050948380134540048263280824060476296952235513529904812740342479658592067643308664097734022293694847017796025361724571842880751725552918762073558289363465834108859925742551103758476230491108941082899535203911565530279832527919956420591674316872196066626805393551937895278611675312725392533199217480402641024951633741658427838270683758456078249073989456259933452378159508052523700197085159898262527602467791134585247280513869310306841076703740123927963668859576116105783716586724558025197146808169594175772974560970381571536906865842176558135060303590994081720057061465788168812253496951449059113925578879088585251141497854106815562387537100827265427256568435209206257513053825961370038851613142762521591809619552042934396138863246893942584899322016501452045331649849312681573205351022357964868557036953982103436279909823913875831961891564607518945250910946738447284906856148947178130868534594724834163002616680027579013716948735819572135901177576514820921043149487155439272402954498156803049957243668727822038651527318774343678440753562725389993646145305336350499888736794281783462150974534360750784825927065248828499504345949336395064393201268566519954755557695172505542766363153827547970211221394992873567038618185844193953101068724636518000712784310761071487342387278132387624433155256855295331698676796387524079103316393513595156675363413153815855510954634988881729870874986508715531467204119900426726285869496641971686682744779914662529208112643441307590865651292004057373654808938930557344705837709906437706150298183844237842653760454993246376635948528527828316500076792091704825136896274474174125119378005347589748607433826622626169443648650453877780828686481781032265731656596350892780963392143403602323084849571395037678069459646217123713660402537429980937114164002705718704206297845774166749595009263457058175631391949357455430340886560689426195568058095655294850646999317993238042250177517673392711292236840327746891254287456340041363042314979044882864720579626044982789861339072974269595771818117611089271603946835237572103379674560345223895905665487888027398336236223329518333436239949274628459591970189027332438269289418076983500830209850493785547317395392020484014606596533413386599855548491576658200187942273884157590639842807489880877748937744293799789441621372547566390306116742863409196785105862288106846180933704242439689985623167886865759761313650497455340048538570208606725106549984333490259626566232573447385070132238903414671443492589833771134072771700143011006633011766327266207290040117265604082053206260280866187129416631414501602703069586255485916983395417080859904356929606559631775568328246161700158373674871549552784500828769743768044705193483486879400498357896865185278359476106570922805255540943336845394929697236754035722319135473410131125243242902443530713421865257019580445637530382077019079788587444516799915869157168133505192525746823220327079574486613136831147591711196772529367536647513894037247242359857677268634257823546135231708550164366044403996330003803465018164765537823104785335051378668775498442672182197298261055311945111177864775801195591015373802981449198109318961821767763504639286099475625395174571236527383284037410364007054586814050121347852827363599023966398880220900301910793437718612760825132486775958580024871155976964163367830835670481972092429334167721413883192637668657086502135043498812338205157501536662724810566863891325517775789283292111451843843133586361767543039312292768299305252313490200224723798111248236546486287106423231643592193802286143476174546926443530148070657940564208243236415227018744529911411767846316970878810874708850916991516100740888924366661867690339500473757022062433969692966628416922702338087633463505241774326285083404319106097581835993722755246609819711916113434561126911998466677421554360304803961608666996069717864378139638710587214436407897618403370207165136619222860721370968505982668664611425052936034838417778446512871003965967818758691377341155719749694382701631557644424312691429036765672729286993324934253730279969923157678314908801410374506217856748648152811861825900476705019901166434671929145160940980243453435563274077476203041098434057478190068132128537855205365110979869870439643832505564487684519127778720100561352119242434458006648170472635474027541966060483275619834251477491605036565931586001750242059958557190641385813099433840278087238912487246920594970328557396656972705750975068668296560967076585085309156630212813831593890295100421619776582189133535964041415085203514018905872482254446327309935103877348502897288787585399103851582678622576701020805928908870250451225644433883221277759149626145090034710039389402441011241592118044109691597359496747850752370854571632312574712283248282142289649072275297628039918803543167800402022824645029424090853743462271950014446552201176421703169685228024316351470298045946952862556481721456270323851559720819582031107725461810289689826463677210982443253844213557548014451259739583231724759135846694119662428791295366187697874199466383845626236741175771247199668360927147092223231456580824925915516550530314172500093026041405350838883179939500050176359207358620492512732057823652605657490764600640109774210445595129138374988235771745979909783959171574740716847316339886324900897849458534864956579626787408474415429223766918254248276260524240171220417517017933520817840563483319358465555113843765974490272673379244862181571793252012493662314908384726434956841081000174624033970406964590253537432610307407514702428449089525181609453345138731058629629946260460495923817023039851004039919077737744849245033817222061403988818755128205366499730740285601638127922165839265819565147764197483399993507224401970374938347572942522039011553714865693620778506389037853060844951456549343952923437864609718907529916973135465186042133447597459690908431713426086709371971445441502881900412692183980298067826314854730588098105769208756740946828437463121748877759915525878026438230455013856801630351500245806366575551358035741542509353657923022769696961638964844479585924294516098239672908950144923810702385302572002775958151407839449892858618958892875549712228158286479986862861106058880081326854912060784502111246050662484721758258253973359847851355121564355112407581358494323597600946626426164428326182447118716331058059026559954297402324358796447096867242389878107426289303194716281506185292725011315153924386381434322903536743097574161069876900690947510551274248636263103321019589505520849619513444509073069705760432060725458721187310051252672782736114164994984856921378417775557153642373469386873801526059412690589808587118358358004068325003863819524823210893019467662493949588913647467815082742230515115746286054825229194622900344959538275313107410277599063022774848790766898085937502978787686753413309237991051384487373100907158156787935130882206970527934096170062041190300318057094747044299539666306798999766952171345478022251946806027588974388040648318047944362093678287593463996605177929344241191221810280457051963280517614245901650028269559459147032301541625704724301400889247382302186721381606339089155426658075031833793729638099916608594064686083450718633859329532714454454827084515922090611477811640435203414657627817074658790876822673131758249668331814871096274254404101303703354806860987462575901254169575613736860935013209437590387237917080795989422310135436437061311915529900794315243743611242957773693649649345409714866182360695216502537934648913830454751410071905584416976391072471010307452372927734931502712883356846075390102982731923165162823988880540113038039143326025973352036994890766350459099147291939716836642854090511103586092038850272290088521678964397850260446451909598859953401990995290350847436873270193865848021532232577356353182713696126743482734230859927611043837848469121796110710332330003183419703726324163049411366856239265719984320660132338563982764058738924282514227339024511528449689442424397149058109725754674649135367140319356062035194722657376598342934329625103515925837931859772502942564961286378508389283546565712082541829909933675957785761860582700479943626899358017320596844294035282771019126583995517012058189347753154488289556397555221406521582218949839479184897640339145324739144302724488342048100429856193618570767139797044455626977806294843396813177278612854428176522903217308281015712913249591438784552680785708743256693210718902368176800375608323966800996731218056155272172626775270432429989761436076041393729550827570150792193862678816056257028886294891694526400689611420658020995016709065646352712502404876033310747465875820148380167302463328375407783197700990917848903321369293284586713358917118691159888394715529335660869344947512577554480697218543863614622720764255526961142408343956886162231555588467444610606396328410784679758161665579048329998516662151369844764742321214606571303752066356811859749973475452694985961750141790101854061651442504490132867327807206921309144181252771080874871913924708785944359940864575076312547081023512821998761419039750755737746643495463143221214144586236209123044597052154382619297210625570852651620961448271178730952361799754283046135695467685260213517858041430024610664257618233665177969907980313036454205584919779364619952347616242252600917355298041814646694501307989299544475790204135380018870067603441496636397718359603407369343251010309613949707688351228072852241659124266313473404526123749146163813427739774190341932100848217358714736136490731542542634000624734874582368909125770782858576014075650240825002418666054653951402112980931510872472760237834125263636889902445967153468062156110291205224963421437901655643599239112006877719411532257473609877672348049633845243947758867688821569678291625393139486847647939601988819751851653773582898372836114565230017187676007017281824561841248817916730688454146134731021505028819624682660283042593006536508512034439927408124124293079647365471773336430996752730853275932369751451078320630804530236625435006013723128025304810783780486706453232641606465677163849405924427363278229446545756264794565847509942785280416608725968876917588910049857357011776705530837435670755751700242342541531302965470415476921864924083887641438562656021546216091066499027963676446918734399226770967534754250506389242983389314554447326970713478979662520526311887943196750726109260531667157186284189339141161239790117699513458505817217148602651960029382382619348095678138245779413860741419612381968663986918573682266552908418149065237139070260556753483664059596896640069535397646133135748370538106549104722740728444618288056252970004241251419421068350496511464186994725585110376181812111461707862012455972088085607893286651696188741009892691422076713292829044866221204131750636826931336210570508538836645839036397310378930007518137434767647356892171269561796072314446809729131823124123282648849760281768529083583654866248595174113546742655588503496328255225085909627374653273770548776026985801358897614039468035810576033415606237430152749022283698499433772762875720779285651169779858765885533544905941760986129900535276028729025760710597050311231863847956258683082140156005074714676465966097691827898477258871205152912365650784531533356316581063160443714969225732412404943458434113069775924168502837253158937046363539085986204294309416332563380728356893116450855900574209900801722929076681050584403041870546379265611887048411452292924840561412942085468137865788827356658085636283171159386002637040044261967432304927185872445301687898019449349272627687214076802559780071956126357886502550310350937435835924298991333072571623761925626546276166046494340395463253860754692028753120450526757595923354790782281799860073936775809506809412495249482196938651821932009802837129541648078451338136970846415252898291356870571620527387841480570412770288070065420629934244825270908598012641871934530290999517549881708751208679212273480947162088929967166490397967712744707641865204832152169414564199731237151071611934732461508890946118935606427055160116432702850210524197145290304635905784232883751197537710713941320613576889499853888023524151130759647839858927881316733567729327271741508740116089726321670545813879740906306150153877652921840265317637297313936894852612852922614025692093595717268651035233184414655111268054019905088268644239669937682334800308334749932566899656403639034080687981760866690928636566719293663332037109358738551353026061343955577197582805001462795842494649827223541713736405405909397143246282936165947051969763349406714661272610776341130293230651429212501319620378063727651437429245291926934309096318917314052775508607326788440054218757567676394548939121282218214116510574436845985062599347545539687689058027817524738451791638760531142920470286207279172385236981562262592999546923565100953380843096725164552472362793818343307174484493785247459942770896153487504051447018927334629088584901765343258912800319188861086056248657619601687969363075094864246350593565945487519218896251957140191019306367450740047201951904562635004486309317251835604997997219049973459663108253694460727329531263940872209768049914728266364648466195735743931515284319587991779231714316957557319226109330847516445621018809251682595292272911867673185255010408367399228504130464234268957511791631104401855978959841603666320280817482802158853486786852664843271014017019212281410889861833062786244259604905754970293511092116415136002578677465027878431354100438762097903659896443016815360175439864822305577894997905900025231737475613684502327794248312395672291435819985742173111919476499487292912815040117848687235850665622299695539738218186848375021849298039293210937246652795098516826941047245392909995870864993468603426518276466856156527501660800155398448551455497609705058774760844831309421207013264554042622634041178449396327784659905612321368814298482125465300415010109204150890168233418715368518026210122002688879349561959898468503607869882386297289707447805331593690782544658591877498940693413307757845354518764132445676428968550468264569304711072490289384861574481087771407502848942758924270627678369062120244367087284105724007693444371171901982659261622575956431522203332915511749210055400360010364133244436613178752805580600623001817553090944010463343978932878675248967449453813893232241964106314244854990015682418858229845834225046750819719224424686859938486639000391907230095886516335278787009267966900999872740809016770522729809994752447503573047935143111771018286267956433929503565281782503943881142159289224991600043043516698706412676640498906950026536845170794281379713641446237030504123301246021524146363273508269457768617105235452175363068594355851813619134378570257616007431983233376463876559798350836068959684408235925962296413085926919895770230399132056236228123200859644187888655832284846471959244033177496757261024029485427205605883148681563115401994631152447559155233069884397945684858149257887061011076408649416680363829913983237974186542510983786210883958587217219519927522570296449644184376922291718168729344042940220884102810117477869136426751196610685068307966118398579595558844121086912353371455890077192364873868441710838524153368758075064615993831234620057213576315630725504024775093369435600099944320048475960841835875054809304968077944129804469273340146545749433287929107458409064263893613211764439710821848702952801667718367878852742241177409911918223835841085650441805499284989154142422171904646406879126069601952412405922668341458272111896747474772820483437691734120468810736945122892102986102219244787352297637868297411012679532605562036450939791534298126477914639981164866290246037636667958304809388795500952892329657406387632108704476872904326317091150242868319978139946900708462495117612872398669862146991662245863202023324922877820897496736839612288457154074996012709905550579170142705208716667011165419556766782046896774973264466604369507090038309948028295558904011989018473228944027534536487536899813543744846316186473564216083969712888850467425624815765819032256100764190013979773197410066327203778546024017740764582218894059439464579835028498860393153045415046705271661449818760199672159823331431039718021788361934170731681191935699205593844479007705928578533248078640807444807543105012293451039238751645678374548084664853347975598344677289610434313200125899962331654983160583496171780014059511474924187019395171607727817305106585454248579908818112473392005243905795453653589277262634055209836201220181714271750089598957870594327221779073269800461715541631238269269855235851041824366893276832645846101157039695534229010749774442219361734122942015828407897502425889367738081995073644444660391916573524569071874381175450307663833098910946149424871713443076805062355771979982905955347439495156581139866453295136150942741986175509269375636586291617085593617355577164706079646458898755507600335476662344605423395355023939869081820906433869543883126212951296276342022131929500104664281773905587496191150346659372819250546751865219950997737545222553393883599192958834757949860341889770176529812050219084404632980141196632699040140631013922003996285067877717834032380299791022815408223107664845959712685473418475003304589913682096911618176250184307678489371382573530202351546722004719493228030864455061570990284972536587750900607411678748760377591296073543583627553592285418551150534241115363875550111201098168048216723749616958015554102101001139972961550067173231528441865247086978348051712922243152907192896574104325514734356230485425525593828571102297382711819269149469975711384544838825893425292183778676261177519909488448183236900667495135739509325047708105249781467952634226631117136715636390267000768116226379091353327273710237277917037782037864753279379924202339552651934860140789166477130488432862452058328138511416815357858077540871198965784266601381908292478739119796808101065741013284815977609739127785353189292407548072570051793193266926288111647248010876747568112616639283281002900718776635929176215995559853772401800080463383628654285859231976369595438131926584019490925177834294848303584947146296075873978880397653519429987839107017556329301181474257710469457852527496157121055338886376772817263649794585648212748132054122393406269992535807770489434919112588697303710475788088933483256589028266260042729748202188791809306082277529559390237902777316530701172349331851969160012442949974881677204782938749484982047003040837768644293350156309411228285295725063227074708079571070891586148307887489108835407355401601623034434759815271192514687978709206394788036817546444699084131423515020787617908879897689327929426189798458347048576651752588442680900701753462792113826522038863127462857929843988489985449985657485066896586604469385187120211053868110549015039644792610682105619770623583856255900640909900724059516332225374773366702274289249671845403733045857578951095047231603997806559493036395677048604000649972191614437889175371824679800217401302203330124819664945404376171694984132870507156837793193822246352939629315490138208521353212352628960511553898405976394093549842174805460266363590721333275328846692604223483680190217719660816322941576681648119300151272970400134589359070315423884470536846134063092406230492535627533043601476830038625327736103718308665870498640213519112982710777316329286420066204056848048422799010373421895513051549080949060665760413080539665445868086928841435219976171763696664651940913788575467886203797696412507301155268179314418218448396479830789588960131664141349970138885301380126093142746059521729801906768565749807966348008743215986415493423216163611321011090645152905390282422586163662711801272402296567030444449247201038383977327300381950582677509075895540492235077876893679345757033378922671232033452483613954768456576021759454180773071236599080297745881258742172202341784823246993100856842189177075309557505091614226570456037403061290983035743958498840801136169702505886411385144452771918034919289847817804781145247619492530276502412860529219926992868979962610271977228829811481478013121364900620349090433575812941394065275052997547073121721639737110428215527105295917693320127377991275476822905363655187111457374337813984432295888322073349473176566452366140268275967062515928303342803238230924431565820827740530145980891526076105464441364773756214760648714856159445644051369566676929711516060321451816304639268561520940803759722427082405672978835755511275182830889250221313455142035844986066746658127768675196258969692822573286383148252467547558201802651486961520809706786864579439616603248796635765361331278360527420375759701551320591240667104941658905580712937882218683589111016370123582789509893372840447486704269241728378928817093732924851583692337386092518189891991958405206649933969118789691651465820753303623520817010640006009719199657449065667677674644820303029347312864448559677772692880261582329385429269706667564366427626546166151716673824193084363983391570628674466519703605426903125330689647404377586479934030355144942039848546262369166471729065590191535892906145882473170180136877939482648538700639432781325607662320086320728419509519999247619471351723070384260120442327110203775805883864430130705319392948154319354926386536725682278498197994061303015488125435538083221553468778187957777162910824980272176876093320830363188064987819530902598018220314515039405802898590164103207802029049815370814227004474236774235936763760497484298022147679852880487892397255225766206264210084210537968384999363365576666747577862309016935429210173217007735921227656766660892507307374605167200940882055332797186010066174545188118964461532887631501600344129868845381547035565608594073134609309769542183295580250809818900022398724166547182243533744616364031374929806020936216595305235303991808325833002714207809515475073603233238241661051187712569462461657668592141189726069305831507438849453535495970304668837240804153505436738724643417417986328991912612359361184906526733775853725788144879099260847973895948084526986987363250879712394380282013904992802803596610019559642510072249881285020089127760011394457493724191070158834509852412051574526113263370761089427826976757036659704790755159975455110188379757726410419455213078079868078498277362813536166485450856421238327156465640673019285902114861307642245494849774644825540775728049489679928692287190266756695521667421785795808658522125599635981607150385832818227935389342894195309757131592851609116299978396331790474183663620736868286703625179941046940555680655737570568725214301289351711898580681696898066520687079783605234840156783416957439189838427744688207950117024131452492628847683487818126009536536878658238683179724565115253180116316529691065619160206352162180080977675797833798928134283413332750686877689343783127578857526649614387356871537103290108428436650857144802072370977625320499390963537375024644304546476849980702388025285016528245102792651305104527797594147541727668418025209073459403208944321544438428564426483187779179638831820368487808247304410392722063442512737930433280492235291282370729806967791566470109025228831251267554413183349079713626439339220375278218897954756951880147722434299456319772477543995784932188253659738475021336302981789503262859281255395387983169261119500931756926132605724263253385841334825920502403366629443053317911205231974722158988148830589349454817195138419088537805344807559625640584497776978011562819482297633764372898029894739835871490748697607043542422625920198004723466695012141377384432661200827852864054579363376767086120757383117190577929669920730777646179381959636598356463730677708690514001456234597212130961507216315222072925754876766031648828692424775311395858077050579783814003306462198334616734674782541407004787272767425727337607652285179321312243020699098371360950317963061579090585151794103607158692862541165315771609830058617981495723547178881930469150248347693853049711670728607092167613491961364093514060159522078955736293355962768591411781334538656129969793266130602576101666158235075077682985737682161968629657679862169990398084813711921500786580928783469358891230319131270249858534550352762032525124979275411319681407055742429807412294340504075657286076498579073730888461467540220563529377566272069189211410054778416212899037110275154533630504431497375213654047812520687441131474663385206362061835345335063409266628451385535597124320314918020491324509410690476234587217075230613333435710193083295735211575981737206938855314857598548682819208923860805942607663482728039855332252530513456096636640128100504969596710036084019363590839841434432656558415053266574937707861642361908523352277784605251308992569623712395105830881412542797932230909162120709723211270061059680720382120628743000972862646457883356872933804637028016015892382502413782904852208333066308199498986924896842234135710717553199413201592127036363255724355113584492037332781806946670878899850981803410527981647061704300321898048988204069554128921083164978583168181707382814822230217427511717094015394705499317213024100206291580081991751563024183532383176080434704150144530202918913390365334058480206447081590662075643893740772236706291932340627656088577175065140639620962727883866029356200897031440146133104543194208739279012752500689420499720606810336949859791381108606319499727684201465814216646829597636144791983776388350924436264423330290571643045643382239342383576531300029371154325234223738732260286124369222331026100129044351302378335247670277384642219144231704577140819866935681294585043399069387755583916762508696276810364234048841049118968653157552165309878123567552770763398223802833485880028736870628197091840550481820686132292805761824562622374278307298424836636730791437751186212154133546391866629292238619659822501032048448647436457498413218298786531794340352150141144801119718540426122233396045317459158357755400135055133504196441463768325041696340735897457278551089075471573620268518490813086606183501937700231771682470456570578117441289521061926917506207413565120790622843932660251624954143081284776545691899928343699899300159843497926093920926864046597379897574023524963966946780693214818359193130699335409634256653499978119996436031021398131017183898929175122816283779045869825980332961549432981392633033605739088032636879009632751045091194914379013578287998577837027790749840215596867198086423734163506582901611648547687896652477085856319338575270313131554049849982918190268777745310921522789050928044272759763690117549837645473139950317199432217512088950797932485413968075146287672285679611951336583053731208411952892336799328773501596155201640889126199795166909183233127489899851688687349062425709164747984361855957676311535280948021404208420495508617563057287943526799833809274817908048016195307292486629779289968937466722155555554040108947143150809970460349324715929416240460158418161880754203085794095772613771239168639551262933971240229937536665455815746606219627263137374106486535374865158402672239484700417753492864004150662099337289434502483819256735325905948690579004453278857769375042088373727697525354885295313728967806108013171651613377068254357754356313665897731137733033596245086201334451358515265831609473238840895871519913212156646474157919596343087645943259177209718674022057146847496739471587649609981622661658223085544979129923572384839223905109813493925704648262955535211092585348112301176525584787076726931150312206305061395240525672818642574746615295392908100835839045901095778539996307080266043653230659687538159860436468405915162193954289830220280362560889181661029902941390699784978063630253775506605071692686015699189253548486789224833689157218215399350681465750465622772294520992244217607588272614192091754752843238800436334491715415629838850190238997514806477144388008706086213279992843058315883697514866706338123501468912921553803377165141966811100098337988656427536892744575028267872023551252205295328960639836702750180799925586401587001023795531886655605376577544623872127255924303171876665689357950220833233645448769890287154961901892732039403162428065105707295791581311011828571076193139581430672599913693899295476608001321624337863600886915530817702525147076969276390729799093928103430178839784102264653916836297590913608797657895843363325084038723588955181701205968068456503603651244421908645193765291885190779936949500548669445891889570555907666971214150083041968058585287228317370990878504165189563427862587878266908652322928710268016910919862179057306510081179022817138984916460905474452936655138585392531294980761328868466770266881913221725891238605056445057161596600592899333411783673884690945122431338629960434442940024317112382752405841387182901837484264747483481020572415037791332966436867004546182211403410575218406136300903890156714005594152527550718519711824131645067218715265317965389074654095012826822453020492685651809769733819100135812910823246345294632353192860735223605965347677468867193328978124389721563536338129760622766646326476001089507586594677080458316740080529215963287629601097212733879281779375738534505742095193250860358616724587071649645142007336531555246623283076604562498997535849892602182374557959295294859326923139085517387491307131927699842281433517428566493938043225167750451150108658669615143251945541616383392918768515456482912301531379675593767281494516787594808400182583542471812163976312266381417521265379789177802779605384574700023882828142708975675777662974673316180012520147910770359985747530735409305813749843843650685484362793667258418282595589555671562283874309926423407304670621476293936528371293858611797638833631412329440435017978247924323421792622428498387298841464849966747694892254060771925558677513373457570786197737365623780034938107052530205092291824692427230243492797215727378015604158019694920787136504491407451409669193683699320266096480910399471921286760100249619813002568108816250982721831240619994649024447087554571715499060820377285223262375790132773080711674538073050099459170533826252042982386261861873706112348043674435678700275693948227588135462712683021657521342180715611563045093249034322430768046999629611366210393523265876716637630619995922559759867382804948426936176146156732860610068147648328022654563657793655293388270402982107136651179111078925660126882113318229912112281996496717149077206201775650314807564510267850540420899556459864047613866936721476274679779008094785913636186470789522379238331544559027792307406277541369599483149078074391016165804075825201848177482142974332597485081718731004673980808280136696171795228793173755126878518258097903906648802257104707109837336100874664662084868822421074552908312906035974120341263113053985700970513751096745152438500954703276555251066424525822508952016382278743388786721622816654827629541428471129208489126065260174679984525750934207544601206919658715720690773254732274046752632118224999501678854270988025588416149876121915750151683641742713933923323439364516312315069242044184392970140405248555799327548268065020121691801047402903844522808968554766854645646694048004614905252928544282955580596787103307447203454776157531965200063856157204413738231839049158780927878668469042799179323355286308841115725185887893374709795358465610884771364455451353536456353697229036228289860865770666940028636175313583439121608104501953941606683478299963226970843803976055384397146176118311516713854861602081580597642445410549619739095895605679503238647395570070835507933960221009924245542689377092785022863568530976185215699033324997337640607712997531287409792295141066729876048156115187961625628813520302110905990358608960665845118012252705109005246688638707885853498466759839142317181674111824639679908917263158727658971535881102238624154547280767142472233220110873327538798391690296716078521948291281709696005226748672647934762336112069501178437809317843742779888754354552495979991573955572481745831872113042523306899272743898310040185386065917152859695359539722559771140834412681912359424709178983690393873420871971973523324094343240661675912844484466635208817930017610618442166498877442335297217175533604314597512785578905016793114683132984948384556979629512286561329756637765418350197551732015048173148965420654525450109930150985846908041450231434540734852896304690795685939888430638417492978113123406743218410214354111394359449152841658772508921357066775907624160182403189805269285182999929232475506072796081426995087064099206477636933656949774108510298459758230697790291252353135570975395736680214794169638773595131268666434599640145524241016062958587341227903253713846361962015311874748889072410544513245225866636338318757689682461778860356592224916920476028523494079233590811996545965561619077552704207442183388335803457651310645855408863175526407002230246399485899349772654602656669600096069327329179254592581696493534676588766799775175909109609718725637904933114930008479734046778004921701275955117442297545964162511643899590650851639105467579900944875240341071799611295173260394942166864028068569037036284560167111823876540066778193451180064506903076653839911881519768864239575831722999652807234726209166044728572026304225541948040349590052728959015139266265265508058938223990819092640578617417402137428296187046720466104740661806418913182387013536334742122940811795697238593005255121829796850327441316493636478807867135129691448249574306970309182205298189773441856728642360373011240464248964163926518363790883515318507072544886383226782292130171162342838702648609187137256855633542854273826240127919794120498818991898996419598616473221934755114146988977695597759534689771505143527921585000054096924991576229792599805754507957718057972606451582759015557700151633095469304690569051096804317690697504208265664735855049920442802526293771058758145558014988074174468269805430696157639396963170358595671354649600900622902733455908066063466346954262794463532783227625096381573952420135876150672215376957180821124444626680984340665902754692022715985268646637237899848787243908496145076048503165336309783767376422685318517958717088076474702231783401587790372881144049398638907430854376451875548366037160319421290486762030254795281661567170538010326938478756397736632226004021760926013774091364266477074101800417261913008029317971800168663084741868389438542024420378613787634268749455983067513497330619629032439926435306642069736171088428891778507556016687675197834442095944414127826205481672959908933244886284765727328549574201335488546293973851561396075599468890022462475333003743100155318088977413371845107198142261655223799343882971277257012218781602873443944088243644274610699273147948721973451517796446278800310127919198684842555773435606308260467639455434235952006157143906635441580084283198778489626020930722331920019535190279708919031014990586484618867507617366265789890467799462922593084966544824513271954578714180785172693908457607621719789407783857305916098932657109314531663346404770454107144253906475238708132298442678152397462179178271645719796667169052306087483850390745554559156959233805491036734410581221805383259621254184477846475428918054181113387418168097269669658023970392581700328776926546284181691254444501814784238020916244798339952180547285155364863149254738302646695364182731845692414948699959475407412596464414407890029883511392883378927949907430578142486398656494686389105750227110703661349407824643069102527379998139324444210838048900848224688065289798197296217690599788250509077612257803695514420307375013003734303129455555816841506893881695195283966264575433108632464870520136023597220581688364615800281641105976229092578568300450311931166439524617493390243706765639621334971734180452624552572885240297380196593433890165544086224591232649517446277731008369118747113784294623859833981714243244091837012523420045818066703585230100674845843626276967706899636332454550169131607880549111596450804855159540686476529435915089467920438826422121566150884810849829396055882616857316585376743802506732986031255639660435267413331541426364085918800212751253091754903802726434219616824259439634604573986760685361287646861579719994221104617815321889317112479544386325419224843108117513467888394303831886679400138280532921675137988463390090898367653531335339169353197093543163825292450306365861318330140427445782681186682217486717451980686855557242554650855368854796739830629804678448870648919904315865765377845305389953951131922857548113001419618903845529172539519647226121103921361969723046136638111930775972457314113239461696300123674413823765932606054618956216613555850014821003882247852506722563795671251273535220542846738834243057767572718695004474712546301449099279451142837773056793036046181832295147276136807437576506985427516233382099884746900333955334094144855899394643149609075065462093741119564942886440841514800376938665444529515035613964367687311275390190841623708134652580286005177788323763248904488655523224918741106949596387277765718630685232347230794293025805548891920507352570216336405471131658539653110342887510099028096940067406820950231478243928711754341997912276467780592566121508542797317474006826183190943875690026887783185259643239202881358872576970983217330534171091977783947124487045621042429251132365964261829252563408809790811173114784144363020025406854959773743908579072947733086654162102566596866194280096148589398681177251840954743179818441478134309945723625670927075838638849068461100407833332149840916916949223893983001385724131566433586198488369900932077793059812670332016063157859609155941241738410213461279915905386000783427580406458682141224962647656309303793754356445428450161854472836247432372296547429874773969604213234751664047769479819682746311882925788823335899278439797416021204162736630275353959475424086622502934787390568724636652184601525408385794296522470058519753135174973413911036972887857485329230797731835564276634092662443442371051537285293060045058984749950117170643056980103658248218078439347074653459480993767337025099575843424556797232302509104366825210875203497695915888702546370295351800258382061763986640537739798158839139651043580716738870043425522727304345754853396641632127143228781860357418089196502745424050339258995411422848033013079594943647271739521344932419332608633494621572353103697414660384900536163369665304505323048952784905358707568886665973840788444812723195143019702013600389069287762444580411423155253083977574654071686336932425990039724471037798149586134647005096608501429897099048321302587145063097940309860897738307719106929660739002731762719800634850984598083799319876689547926600384704739783791326586856076340026226707370748262671206173028295055875409413174733366680010006554467650689783541784518915963904536822855763252447091441769201204293616476261151410245700246563097104110611523552298272285798728852571624357464448168764775025140788765854144822334061560935261772466923111305342743412649863690805528532067167954020090837065313963157432625718237848959984989249260977882290926561783585797529763060237763076688545039251273464860009359597073890416092841264278268150923357436207024427633652340145113656328185130209105595578171883382445714386483239191462463476172963146130103233982880207776687212934922820499379239400835104674860963823718007950710130883987295639069687763981065988545276990653093014897693032245214166896639089324021138042102657648343630662381648476483482348978948877417097175610707943135774374028710344790670305554180361483055022640756868663235215352965507241806520556644895336622111270136505517072188548510355256359010281976343666874720510826619868195110562026361916298698328263173648345060456860122197164993653062301715293838174052073453627705903288867380752286366985497372254799204023342245679544887134141276651480658706249984018875683175227850631207165193613837193136085282373656282943006680601676509078377948060785587340446106554708740356235558913920290564288885322563213735451292866979834820061422862692250626685540571539587052521821066425443924083184982288072884856223926186719148302738741529448002227996647373567534203068081173211942104214383871924307422694476319362131181691748010590624474216830647612199185462012989316551491142562033647127412651078259597629913528304788036561219277989499269022582630608248009649972270106873015188445683679893015931579034593064175440459133652297169084254609750588195128133320013154592345987455142966442773895148477904526995962791128549598076784055330670933276092212710324709176961961372381078408173183776054820495448582642426632009532303519525818115788343516185078719475675396229952267335511562547798722425289928613663390807663859032940110624615482149643142408241664331267338484481439059792313135461186315918679408057612276485062316208177894563982634797187258505915379256750261037545178201897654299306627892444863182855714095125003239967512663203017141468498373468503070793025521961096352970457390195260948681215320161823970587069695508373643041109848868760617599413790463056356505703128577127084807704486352989460657342173533707623654213274515613526310626360281298947491462079029439896846194590388363432192306464344956435018074203169505428885692916323909437534580769460061020459232449920553747511308647804467641358155835566564247023839403738031672715455339412052674529446780605025984864114383325866500239150316918377311848253806981911404113166235101446466542495147826447106295486693610979316666961233797746065632005056575595546246115987098176035174488107253471647556352298761875478707762833474966857886828424661528578381286910262125803193915851680364506263692157429250965927353415416346061179485954089208265401281344946749615829845508695887587006467738114673650457425958153690408271806575041323996926031162404783103885818739109282923630002019070980338033756337508615254502187791353703029607921684833635748444393465097753996102703632005373227268917442520431034507334834277014596322863944551470749836159285816153277735558150466280980954196534983794333653394376401217983363235768673996525784389735142039554775239769390746247456879795308431409177055730036541923924291364945026334369411337731777284398719964960054057911011969784953730317602031520311012407864569961656278540109209835110675669510290046787089444557798036566573416639173865226774454693420950705943438145777047333618550725075918092868921784820646506181382960906479047946552432321144144246224410098476175155106724835123755254064296513044842739215532222569866414268383225893084068923703281635489518650884862103584524143667454839891582623151028721760835212792417811009297795483118273572700446077989446656743350652374491230849503228247858797394265159013887402907994609442756400999316227118472471081542012541853788567336168107108618484688591680528897968163681315009842663883374395256329330155970581410138481780853148038685954505921274103558330418337063797314657352724312266052587143636196774089359316762878392756118989644141554425124958562644451991536697132468621744890930588078071626090241097266282459564314647841984290906223576064047541687655529045490318246065399566327029888035581182859351261303147936613555067996206279179305542507184323345270386839608459220502725959785377714021262982302188154495861637974119013035757119320545127080720071775429218684403151876663243085302171980173340945193987859152534796021166253022933472142547531085907173691920689974390348053238658876030483666530946505368600053253556839098843712498160763111946668116747457692390934334837146127505182998622251030217136696471465246530740071299280651086642448275613766398980493197912680218215005599821406916441266239369796964800470152619874663986938019031046674246163156392890753680123788497467530319352232067876337289319262503287689878441436595349186595980864102546557463845859072273771478545297419736783347376861575744121442419426371163020576146075749320896276645871084403400538896197145246997823388829214825387395264019441825166027284568868851521420220333312455827447052388886380919865291158483596326901627648554124191352625436018724073940398759900199308425744771711082114236323482329226004469107388213020000940084052883853391325414742777739555156676601468234837373405864208210471971499515132129407233202218944527695559635863030274339312714724499926993999061300778544892598681497743613903811349015019729419052288050409518318841023895330662601348447753235031233783291466354647367105802623216909665326635506361972912018720612589453098295796286305435909982568141036897012854374361730469215706505917463526579823916639097625737638525791652694494039277778247977873347505312267749481851007654150130684461728200129314252693925832328512453159134642509061991212987364396562147589036863872796486956405941649741415449131521065804026067076252638852618136021447271575203938426049446813237765434792536139364245538550761683312224216031107233603878840469731368874258914978615653603187957654011110935321431857626705545779377024636223414313886637546019185131882647247163898402783942763885649522141207152249191359774233065740317824554019790244150135722053740713073238545282792739842859549242934531627209358542454579877215089813001697357668775054627429208346937153896596951857911412606030274422590968037469511218129452184794057047219012198805802577752644118861719945246359833074538300405437803503378519930402815591082960933539474768722337296256223206542845163200809667228024106313045775284169111928649661975157163548597498518112966026224557145065158048170053835496691229063007206854076718674340169371158818152327722424287038753086426800365310021955650112555350307636923678703721445445815047448139826239981217098204909521637046914791320541355511777830400307916675818905693864881492208478273703213278946451315862131308408809540192127381075531371075559525353312609293526119189665700202437972847846983726481346229945106187636949369624551170667617058101763787308170687354838494942468990796044601878734687593731348493054333913184175862823908554121809616007781296682867790441137704953017344121316783178176041252244997231825304651678565759080258094620728284255853282708356815732298406423782911077948184354043243191609393730940312089290240604817931625554660079348742814726193923450533692755498269439667237565537721950785004603025185527749656323031293451479399449368919338108361066317488700780782858298004615596289815155880390799209523879262697609070894297171717384736075510334000458439951240955552783070788356652049629741066285693893451369775577590388711207741808923470024009650832330934421442068977788653382951105622282082352452623991728865226474091524758615764441623456305065073436096439931551274193892165229621444840915821855055432924237711839212010677573525802086671053433662015177410362426059888041320493886294302305761482521768889316962318164814354991591519851191558907453605968196994103988115582410701538051235936478088727877638173898075908925979062989196724520256887371325763383695287530257270984264047134110936484874648227555277555459810791685170503770096605009288892998107096661571079227202818521672115570449294195384817039189263033392592309745032087422249879335404750552261262502147026215121819000211901752769619070100852291559614692117289347920250699254667977304944203392347529099765570299196268118332170177420260440958724698566403566606761759460599136264506131543421289504393415646418963683387106021890961406317134834265808224291903824851786911860995146178605508529651921720608746962686791919155864740946665138484498308379378925220591173109239785658488658958242609923415160486550150485897850185677849030290169107836757548107097973368735392753446602825924718924445268752041428846718296168361659230249077660404391876924908459393109380976817832480448721209483976153481293103532139415556128642450583863616120200045567185090550529739982765017024100845356704829420275796568387263965472698285839242738014037193650337047769242176429330188557978938559932363598363001295660766996942036966875383352248462909248217669453126351199391248031309795619997148058977470812389885325346260447259917870774003397523145627758414534736057733414357329937705322150878006634055037160195799782370329768018549164431171530597428305681570940721609232459676861987337891355011891895190854792476635607092682898937175075727473759143867896822659776438752246147839496866579538138464240937504795442192419606880319575815931357498513633149455555520719738897001500818131311237399526162100640157077768360893356705490889453411835855303303062445222700798351555926858357855319325428425923580587658277276327220910039756440474325515295322456694654257909575507793295281139426803730589987329039231412528721655220010712703901318181892134304082149755662418386621279853653061028950728113009026848452684544462006355938110258107233727428017688984877858807345911237749257176851430707570621497387205953323224649173237414221993314981327037721285775737898829771806933482712825587565036495159654498366454420631633879492398471928709928277211985268940894968137620540198768137718844081373550562539414427275576968429429830662988343914316360424875793527276726620184959488252776426519043972067410128743771998110176839025175836075772813875339082768511371832042211320694217651514548241522451187640534571008688859997563575305876581297295824731149658661144299352575779704458067232795962179840299625369632350013558610974259355374321690662177080525023548494551834270250052949528503396601671493230893650467863546814781196084254770169046735684999438769342750684130513475449282488744167204042560268500974780401301606833625356244110476113892084722929347921513112771459076559272527253531539727213067373458333284247095163886761920238936731888899090071190247715358695477616269052442966315398020450369519211171927721275568896098497675257236578477815582513479588490890188486141290253665410388057808527742678009062936273714631919405025860276945862348466314161810058348757753516461099809987011902058528558931969949172539207618907941130819908885622705424116292268865385666511294158111073750543500454944120414087984236142267370955132693901731445826452110910204621132639319167888259484330806909344038046959970324323387223375191416070531188025928220647570933776675140752049249812742494791560480911141345044411592507991249998834480881340270792073173074036423637217558886080915963211230003994008107760861369576616120276993427526975853751243315869750963912346972518580902569163461621426956954016212752241534381333410809815055882287884302316342990341673835521623040299867334321620395793227006868271370538401766252943912214610736367134055004441211319118841496070643366132142142767648896847012367098841982981097872379673217537463334799621523809138691842329186302053961390607873296915419303717936184703888182262740560086185782613735073187858757741165091054136655843058339458648475261346020091105715629147845959741074132550182443850921380326958638056634448067389019689195666451258351232578142062336964927734007783637015337603727517374556300692786687788345130972709976688795950801759861354813981450756466996351919403831475182916314394394728029162862709721106426272997622751352342102630479727813422018522793229197331531716871373309131259500805172336591528592039531680622591772477298350853261365719544186796565199676308572183460177836841224605063953129249375280956059634311953332278546395101559220811323753926398308303691461650886936615887511941745613067192980289673394990850339735053074788768190476946969725443923789628638789088665513347740453423405814855221883908687097209259971440641957752032377490262351491198149703228913131001525285442322646232542768444406404829526886015623627380612816899588096049933485314588650071586523479268504031008238342774601559665508625779104108331990486990997082481372864807642646403577626300931742586384968487488815844858865268240040087178570746913128892159893228594372381947127490464145143414446371988911027473172864679130057296130880665870464602538648532715356125468669561488592039614296731580004735556413484318141545082999633003422070949739836981273988656782342427471914440349957131470027581813762438042838771608958640036530586820922302995111412673895211080855288682998658747466130814138502115467816886643125771589245141300355658426665122370573656750863158723464763364076031519010347445250269845432394971402213355173171618987620632460309099393577399559431609977627567879093573595288668595728415929335762262295506361763113722498015831705764888754742819267021390712718188096824654614811063654132858267017053857302219384787570367968932145046658772348484394788732786495450930225043607873930361508962183746680134845254872092025999782754735261459524874057507674806127439363943285310572283138652582157595891998756432115578920332661746205278312381027516626423349667415002185372908096591272590747863574943931022672213804116095865951229550675856084435910821135231631013328949337841056408486782270436980284220985228446492665943401272618091147498582434938437066641394740488018471663228545377388756553658352570809462602819581003388783754497571570062654601652023645406770684358305301024822535074938492767390805360957425423012791845445908738800006742854024235829737203582413326259431186516534675108168387651826791605032460041769197335295109035369700320786162824803484505187576379807936881486181518960581537295145402618372673253917182175898014293067273267654591568567361602926802154632682423998579477587132556734621812399743674636812065714350723360051663482093354737600810935608452931432356769058843337428329236841106781052435906280720896077336252415522794574655209101101405093882586626520141783651320582900768230935818946753635851275193976411935159155143298098806692812533968275340179546637649897604391092886120227531256058919077526398648836524681122594628880283418140373854373433887051713854456424879344637126085181320242999349069745949550285966358840864960713967080374786495416111627943987465440411462038424622178902884997172632156067265217562053626806757471709891250382781688768034912669998085617220790608035576610150231582262287305951816615329732118021776890614314501569840971974407931879890065912663338941803528783388178160835578640958583532723604132356087047338903062505745420479745994532333748427468766757147414381072481032092840080673348162020757472182919024000858733385801771365271246631465025302383326164372417620465696560093611381279252288446553278495168592318183839910477173404944318536355121472528569733143117174005949615218255505804240472798565057643550925374871406019917105375127341060526039352942984421356854800567027159643896665942140199105510496395288317033010805208642532025435974981707329810500175823244347243424459011850152276503986233799016903095645527160817835683976116465159813925041226082616740360282482984365950897442736161074351077775111688863440221558225046340516889358745583961846439134082875886910686525979494812535021424305116985227389493034826198685094661266134819719570529837510028474986498269528588010723017775244069342490771150868037922955268909959900398586945062948418919540633475755035295043301168364510956583815836093174360147102719726856445133474167034054476103245144413340122220034587465227874056667104893428252166197563291920247231189673313690716851553701852943830505781549049932330481435925530832120197032095088511511442123942575592729376365084697029485951738594403016139253726781773396149639094401144880258501181513783863872907048305231199101353926907701247302356483065881522514591385389618724312699725698384008856366274056496941155095266884432066464654682520666123012312057502115216766357767760504055527104617371942657313578110262494381156581214626058921434396606690027950448942626184711139072623029650579786155792685718047412397554553682739802034423155505270427429847722575947169176524700003399898019564130893509453054320405755659569879529905530086185209541535119623368729765786994085950685023304538581362325321180392670163839964228133762173611781192238513049614755565336984006088127206539641847382272479539070845300875048823278805158989530841191466354911082772524209827887502741490044091278376263023974046427180541596880935717642569277474236014616040208996091820654100168294853779418125221543243506624104491658874840306369349734812341455317836892526232714852226953037592603846017367203880697334755037529892339801191326752556923353835799026935439702616563863759083528749947637611353338537838170743336615382540962111037385939921902173685765702436845698564127269930272331503716515142066687027113394387811689847608828196601896216185950450372410721206426006604826592360392557159795493995379751552842829640780417187246610667330275247550555593558271847160447444806730623926713347877821578363726689737962615535384353303562302677026871051248800420598237782370158204402014813846843770944213617523379702150703703180085055742549760726330803612461568347632595892854728011704671683251003217955364628825214894281604234602838689423683756145893182057074234687074524763515017751485747101383923393092190339216104162029647316934972550215710134552780181726806843632294661658685442178703937417007099699083993507334426127924168125241530216117015885869413086882348378866487356635416832085195538717676606691469142913100328465626030868167993659911649393742060470678264877008133617822871978350140114343788193333030819080630261237879162292765292402790233305451030598220925797015116233194155570265001380812977692783736377651601266652253371595440832339247210537456448532175206306231494945733410575613650686804019213193785220141759844813812517210301359145921579960762387359338241559185639812893032866939293608148860600585564970179243735592589785729141451424291508018694458803676572114845130566360065588418977098875006588038174804473629128184169411272180326867759455422800265522184606374624208921952604736653920985748934321349453933956482880853377715346066536626405046868682358971807588448582727326806962161459691347188913826771548814075594907149143681456140048515539583214398950818462938334413376240116538378760183095254539340206393799477963570197719567868273559212912036971598144041592751122436107039950053477156355074680021241413610350957300036976345229539366751337391701677022419901717505329625419806464079723063557184336115477998501530426349577609954215314770733757793177921930875687404131054305277505302814098707182341739653277357718012106880650743844022434093857133366003631541627357693904370732109328863651241055854990829787782842035034924805912987621012800544865958327754227170178216068672753017688211428906308246958136035990768308045737073514351167786170408483913037580526699076529314904513268978485971512536259950179325702397090858117000464712168536395197531979739817547970322932757976947236323134309105501218357317895204898417139228748376981722310194215713273869887958210507723466995936453588404756727382831734475814039359529372229819699936866959299126927320907939597314829820403964039195405003975749820332787804199307421529280233448309534046439759501817328062085750382892018222644884382227732058641079034386077435717945833641079167174331161310897808766450458286936839133497829073527732344794061499044883165457969404372815446500106050012276629281451015194811060671524798644163504816112078198732729453561656263801815119407434417453761399209166592928639547475062039442683252307761406746474922831914707837630427825400922888615329761339987539484908644657512760259413311950758582618728889044748262624713264971863813958589830076391578617263004296754278773052802979977940920772915609397555684011868642586378094873722861434461259010491628686441261093341393769536495721314506228855287606901291815001764144639470946743931032006436219511199019543470681821465472503597552911418231361282625802145214026857872142153687139836457544560328616230590426773997014054492088436066077256399651478021569225222583637211677408785763081884136366706485968156125428508459840895192712293916096350165379174803836402389711680539491654470462581520210635736724440570894411548847561604805603519601778311736168974949998164995163714502009945776303166284003740990238700527211549699946607844255130122074002236438615453355204076159376083794799467916287597911085791178666875665567883989242861739230668818019885466396149394719387021550658103891794269077591816625160031134019708883091130922452125183259070126756301724063317555824327531290229214482253224236604436141053107986233605229178172287813746510206717972406612608191834917814929153504629984855743531111299889413655675473769873250531670734277313912125756715737115846335481472118633248548758785397895615329850946385463478619070834953443305144146532610641353438365486507855380448800790331415784243358494368732486490157693872090401161702433473103284483177634802998757896071310142421092431415026513019289460586024243554313380289312312328596405423777565687125859223041578498484550984851776846187804283539512081180798531880939704646883867613259224252491301021239133927875750162306943568864253551470251733354227759445378784497471464260715528649194887671799822770453683329791690522520635291692425946300095821706469866865840207586869094794940594086752182885658340006235496465350926504020496283699469413056202068191089906058715520998635591270036910255697480647602679870746013161147230964214602790047140134419882484859003283681664469949899079680518600384260183893001545648645646866476840771478674880764241433601670391960302503014306862625181408229257338835308938888377668845360737987144368217677186074387377795750980746138706558057636869883003865925992186007426511777508947438278625085846621076739505919812136977898300075719676247514779184092414871491214457776174839218295451853531566737160951797300278224282680397002326594377027864369775951436100973815129500978492267452487254956334613320473791468789203219062510273417647845359456263502280672871676459140243756498807224353276051339738609866961689787336056367026000588420965107997341739414868316217356892363379087584664363075611377683524240365910767223993584161241961500221281109216207222806811890641108774505090214698370897364002643281441531790917370496509743516511052222136277402359132910253760533332657962479226904376538397394307242310485752571097981735505185348831505259520859690512988028289782116264214127542225978981304863582204347111634151546141108127168740452280206821159999855071551939915666594514326902645143648545515138003660896677526104641286965559995600743507604932249271074953714534884900966911504610023465361830443396527906200338957310534729563173967995791424664690720956990410458062581941677772515707618443854039971597775366116887905892324666735755487411118489265188279366970775946264412059238121340806694563874797946517700160406386730139594194094829936526849529347878208072305454886273614979033874792704654936832484016690619232298284511317132685045321115461337476602787852646801553157206346534232055806398283377395495360121207935768916931148710733207972255720458249448570523418966920416572750469687930897113851860133091867006922783088232552216858874549661461640024509144065635364623534284168153235781220039071986276936043349080121312511451837094535251119605200327320609225327611377809491829941675704491687648015716160944195503579740756736015242817919435318850872552496388978322288644028578586296102381508030844608827488894184732949675327801971045139033814911638881691453825350928442563956054144852438580490414183856863344028308425153650316786262575838925421044959517407870371551399325831878825066951084598260392350559498512343945782837387104791277690861007391626963452953176082845285468242899780640653763362593622931308443477997054382981874846318269536512532611708113455867769779112722388487481506337880966390112523920791507322581208928155213552141183031812880965250624915558063521758090832299380132162247559175640530003198315328191001138172821715104737747497713035302329813967572911240115777614696905213837830449946218853834044000086895936280206979327307301872365134399582165208108854303144840110413236017752653097848047496742411803534629798232540362351572049386666476276308590561191852164456003429883180400648777031484829513606290202280590759644752929567184979892703533855118163340008391483720680708487657239478837446676671908040343732015671304327702538293285785619030903119307133685462950400224587289739074925455419849644611063563268866195543647264883383287315626454230410417834564731193160782559576479925669678432978474756091962740383188805717058008778417188565980665505042801517255902319956740909806937867756182155830168733353422675992952206102499507525981167219572554614699966718365513860908152196577542732989421844009985478895658915055427314268837308645883950654012421909426905091205090139655989216978065806463046815657143790902910294276708684313078809747124458447495049373288357974040432921974198166423968075682349111324030637715487272018288626199592605924585677069480514788804698717110402484989479952047616647183348676209292547579276103390309839041244279004510870825028606317998171635829940870509901199188816190627489084298790811225551793005019777234006391276757373828875605303526200622284147196769839613241814843877189484757198310779519116321232157871414888566928856951713970052057283445977126798925647892720994644562444802327040594069180648205037753148503136268317439795705454575235034330433111744960790267450884507781984145873127302219946617298130304852577215830208294392442677757104266806969979917378840454216846817971048884359806668618830309917411155728745131225256367475646354513121199853461702208819550329022074930935656868372615171607566057706702429462902392718496305662303428447278590360329965247512346515247439895749338866370215462521014066832620978776743426593877742398669439422737112331875901529421592945434524043060005572933870591395059067014628158201284929921083639317367047900009627003183844659265023501087549795271970353016169607735149466366562876645328381717844084661429642458059683919768457231412636411355650078399322779009369206300284584050683663928454113978146211713093874097878245192233660164401818754451395652871499407695070351295066608010887233565367670615745955433954218176473951562844427393508906948424407580794537683200708240572053574205946983145062961901784850930037146466100969944174386298257679637306890535417882335367312394511258578888132289158304994041836038252946931404284372280116914709642932199085546637701162807926427710969652139089404042657508355224023272789947340993721098897147517571312461486267202065600036131490725444428755328799606227990705985035108963093382854592000083091657467166099283598199087810256629683689245560491587379004697418478103594763548722034089507728506718259204642473493364498799680340098197568138602776793229244283453914799069717019878518215454774033865818356140595657960387283059110790006793241212107036179460908646130984305721761800860585564221283291744989716769378507489140421808184787291815700243223941297045545148482505992566147255916580044897035376089835767732580518588541274222687126569422441257329100316134166786189834456768722691320898540103684077475558607856991385539857949596382167000569157414920200349625844787538920232589499113604591791832051304935074708939610387676636773660170322202359658156339721936734574316037144175672579458849537012812310075720717622787998804014912421835734066477650588236834026997188824372642576051621119935024737172436010444627898042019466281304718593684652983330831787034789720034155948125719573273241380918742385288081245902026117286737584944845273194238892536095433442392843490425587386569157411686989768567790204961340986855057448838677898412334607137201673781129707052059315752209272707945497868980922823104607842312617613114384784406546973265088478433374140001873763757804422021436959475676594789060711578065770059065589174123052129562517974246927050369702343475434038115036618015031650697595539123673719394349463215882788965972704995310858526820551813072467623124017292453997141109502282432593493886447318528644677450966028766977951907026032963857528961966705789756311496081568286040742796411132338018109217367876441293155365296899495061701329343852706483010232668761123262371964570964625384443932786623625577542600252533998622478407237739617124722253925044621561602980316340706326416575258505888541694460700110777574247433879253648156024467472429382308834574460035499747858599462497715888887823245052625737669298563488716598955713857404449572904015839173893184357185014708297726562544331558942511867328009217161483273503617379730707638756018257221602484461731439266252408847405567749565379990906136896720011721644332694122464920425012644670049385679848930808873816903878431622808181457129678091241177339833120528850557629917911122651967078153521104723539693171157770598365667650866688320340737653108908517130883494294484029919645733357731849116249170318479261459322694643889858357704317134744661872233854903353515122281784293865445431436967554299408750470496517654282041519074304922601047203235285210061093875159136001592871830373994730227020972179659997016066289312991834846751302734954437363713013882868159587335004352436322451087401327425898928631078329867776561987429532735032344150734129936432612622065189063961638665218012278194223816496127457065234579075973047709219572958817485532040371702970066872202832218350102503045000665693390735996675428963579743310769260407374066840186857316027711171821830677284156470506285474446854001182165706216388668442290756530556295981811803773768367898406166828628861413772837123877748995044733501970891935477012060022593109664696619437496806138953547008615708170814453779835350213962277315310704299097766764642713602445054342435713045914498228977975432231374013005509278810353651881720983865796723517103459041285005351335979353768103277167549514805428346311953779427856244702325382106516734271386963421881946184922452771400192732149640532117551986054143011954388640180904197470351327285828875052977525482733193098073918500457823035564410751082150278075674499683447994268013570652182813480774718077722542786117792200102569363519173564912713267551583285804952177738312076308333081568878797825025533956620849506221903010177776304609609893399135396886721161244660340426105539140624329594771611409551564255251458746861858809181025247433250643375508279997904215212936328808117622733259114817246635318374197241740204318690504594837140256345597814117812773499273831763982740451689251420019555906858205414894057991210239664094756294784086921922582703157231645447652691297295427334152332800658455690922711344221081612016238313763606451495573116906727962310739455192021334891908884655674824536296843239405842390494399223843430085892955781088253022926335593727077707435388293299196449395779643482050800578940050257293380538929214637587392817686625026491061072898125400225905370942012765695213976603233496108212133417174741042768807532437832264634523165189203031986138604070054716954177952847311801950928277498306525975046707098623283352678977148005212418328626775583963233460275222755231615154295149677924877526131866689848596786441978233914705142787030314966189330928496065683132089339446301123473244523763744578999592179345049117442046715392092971023696927455673164595224112947381138574443641957167516434579503520500004064220451363073630770769294784339323319725916906865475641224994284084170206361771782516446342542511764593529279976583519971022368141367061492188408172143258723248454434729485581679428754231496096527600394184203994808190812477110372169941421481485604175466779460480232448126878020362517027810074600193937284701420484113916569737973618577831470099332415416145141277058922307087973198070694852425388312288958591140307848641195238857836504227832374283143211828096491948731114291682246652546776050794151288371707234108896838025570675129436828897086009113914890874126104237497908590715670750580244459693818779861614487283851261658262911250292813953092686182580268491345441343614586227134508706090348490320291959146115744247102144738890603896485233465889365661818891991355954259277603825280063239460791260619323934238431797903049513367511916798859656963483566001875215541295618917411317383323293726533684141503056953238816075520570891944223377039260356316319918446932849984603704548628916800391048539003715987276899361742197382542692458510465249614937103327791977511672711331209613324750690511145937553935234059599821824925861109423375189612181351774660969104142706061859077590242798860589391035562438955362137194787423293829065864625607496786514556348508993938957302391300749067682626020567791117884266485947772499696948432572582555875170996408969305734152285401856475372036705731820264247732580989805844206738810341114635198073815614457199620239910188528931393000473844196199920308304950799994965110727196920598059656898918297352352439552653349805091237223926947798630395551846838820214684881678208768633859981030522148764513993198258307404959520605143426924717553235064307765597962674575120883142279717183445888057761235797441314736783356967243417578057644932189908045126829650280483182854037033962771334655003028156311252221445351103143715446542588141751803826758342028970460350429790760152152370637491499292201261649799398511124029677730530525794312222202611401127698623622267178750180411997130359355410151798336362853626357485458159019380111776872351606492858979807343443995053468308956154109885395483884739343341227769363166994859559869760358555266591318869804239010450453676273809284992861150478139021344499911693126580136426405262888735468054344878976181305783824945822877095740881588989871039918644571800548318971364172414756200580000082992730868370220314354016606281707542875543825891268818806954427845643513423002214830561474812341587479019722315166032066831244438477924074627452607453429878377019760592123791199142326523205456696752725963490231921993026524584016189421556673488904989167469041378606759620344182859855045354053915186740311661716332194348540600550502869791814099185527915675044494505851202735174830680233867996304047272956056737923971203679344666838262807989803926509117647714810319410656837741666843657205482641848704679659408969271713337078798436637827671272579686019327657249133361350764486118276704901890776890492938933069801066925105567023881433818291099986970130892622942717844018286748835206447637405015119168209004871024490604669330445155475075646135581707938417757339451927370757090211956724928763322174685670408005832857210112549998286725412032308211433818939004514289840698136921349321533168019265438931454270670831376409460560422239755762976067760276473827882899410352308460258578051004599679384100021028760277017764779167512988669218559752069151193160828434213188818256534845358359255790530864527684865498383682284958781643646167115964719418688669125271655888367693724836968517954298379494553805176979890992303779152182805389705785374133041047914461489530843143197208944834937571075410365523427588531757971200147204874557018036110436759619217800569784743801909398199652843173655320281795385118167878036210978183278944090069902603632093156618976937362163036253864933722763665498941417749350466969551437286191721524261673523945095963520205209106495650775272177143927183334646589290203644888834512616410736127475159365953390025497793138489369605014827701563709112949894723099583731391747162448753396619831073651158397219223339904180603778908096546916430837590461962954515905439432658391472568702654118805126128958265840635309359937202880597591686041172197858087782964736140986162188208230550721782386750912471261928754305154308809475836540485576908628615939349867115563618714231032853367259905804692790555192719685189575135557203168239181425570002380410053614761214516737997454744942343449390231770353329825153162336789356624610136404744824733599128598208114168282636055184295439820875881782998516169800761784362491773145115435545452114888940454574610405792857805419982278458278394702561146147031047495964017615843468922023410697914340172021749203057762917988033309883227950894506400629336162496286582214881103234364877976924902013260215533595865471689591908132713953407565311702740419965279768823232160244561620489761852068288694007864929237751622725631972072538170811901595627989859256639340754797561609768906642608375583518742442431667336522487146430762170458894942262609130995666435505357511937352418024208303664416232261556431054890895014057154678439445385518961606914231428394111185888427265110392662669342879077143257054117240125473037373758142469001068263323648694890639991922981500728098685058215374839030494411869233913804427308972373104711360766800168862969387331112956167790971760711675959524559554175157699601140267425132252259922621043479952778828294941470630350442993863933339268223383132185397066437845512617549536229004067727268504836967862261032809298617553592975567309724278741559113253323704927072019852188668829828954498593656487821330209374118210968014622839004008871725099986824437543379925049746666758659120359606350867033308441154074367785450008488140423188140925332292861648627405044217809999892070388160407937411190822156568585255851357229828659994700757219627598653098443399252936474719191653713237836495405288422891826906624145954293714213349586833548048040522175814703022304762065372326361807527400527340475213650865184404740299770300586529463130190137623252982000881850081111124723032062664550878245511516447954048772094908745684302697322835346554684567682381403564576781829198440084105595680161919286458448803275460946789959987969897619060782123860916152310325115335442234773125405474560048751979485831940385041856833650984090848279199778981555172440375239762368734936922105719392177678161039428350645996407514426066183068281751613750972305810869516865579782505887338371018946902267062203051889211553942935293831043071358004378145127030937133268156040642833496521787389333038119671539402688032111643580462516129767428361403058667561356461926019673120334463988301703783800366349640964059244333457007264788359860718445361044541583333700054175941331473575303497918976188838778031431576682584643578377675521941971082798655229551591026393422950000994176574137992978624091556948050768392013850408231942929083965554196051705723140536994683271787749840270653542827668042784039538916243178335864334259728492771424756270384217397103324119143489962987957734245785227393513013651424924977841183037300116355528233368765218770078978750266420636495502234146371363006114294966805758899223094394241180607859373113445101804160936359910433591071985554828540180847726478753252411392071520068786483593940349369433910389868391593076485089723559884922131907526869934482511955329523962079226477813154796031681640705559027488982173745736224694511706124129652400971039850143077741355686497244384178399149568096263160007132155752663831635500354667591975203105580946774613016534961852285816744665219098996277325588716427779823220562220213645879237673709403398986894768938566612623771266764424213561111737518238966903829715355903335128715873570032682100159591397238214445082374191252812545985562193491610102860614539514080589445557309565184415259616085354413433359218033042481772050546724503662043367321396525862536309603960407705130718958831403165942770665448422741005423462677743550860684856538055784107635308555743673278636327098576152677770137809059019939062686627936475554387646681386755794932946328451403258099728543148011486393689426622415091506770541850696611089359999832047396185221177344711049865856406124595668253638187732775916236437698341989353995111034717466895889271949494361452113010589794338512985869571671368712609948647303589567743490689678820359382880487843097106452558125689217728489095841210823284671479712822472917607980248312998061055708677587224859667764040349713076730474339711072700281642957991717333495892196041549892972270138927721679262488742237879333327274293247877470138039006693650549445505242765029369015259862329005433124042720407876810832867792460454564670856494078780434466634015963480173860698952899816633150255500491962067471760568828026695660616475555595171894409092989051525346214723481819323442646170377411477912219585480743663411353873804660930395060988118874432655738923020721097262782352352735880942024523345065762845461676218664308958480785969622526693158184672476571118199761466431631830555329357170270119275474121970990098652232101324120672381111490516749686634075279690043980072570248259215239829085940867626155677413309777775961329161323450122929341756104100461559092163104149216837951805281397037883047982004569131916033316836482320345254844857300214620044389965040270771053507412134586006722318721455598980644048116687846274837852083206976898243857167614704005798028946504068041513273847070459063141597223857888530563741274570705042801069945625412750600833475626296560696595152763329577162505033465296097247878043337623220875527637323314771474645055686559813892580143663409430739054317801624978484912699546842986751671398200919869080767511465546132723368811175710293450039000820729282695752865895599927607648695331827859960785212984508207454197659320928123797829555088497181925870946219581911786321837690594717732159447239684989833464638739715983815536970246665112535045572553293477320210355226314076825762930041427446813594627784123301147316487326518912115128004241928578371799877167442438731105905078825265319370350666943526229982179055721923028671618256203931757094183493488727832102150798280994423759644122682473490736994153809535946183102871145707618262623477812276525947529683421754711839478569187169743629302208929574407049851381629238310840766152765310038462656959780393589501747452073053074678968945399299251431536687320140797299930830767822086009837990652704671283876904384498028554314349953593616099852105394169682906471274128250663986649988322250943628687994707236928257548259979399781583548018884499172374079317934184062929692886960640894555991487430282795003074912113900581519363182185515831967386576940834080996257237444684179908021948415665664084138510111719145355655558126654837747895806135146420557368705187125285574707543498106327046862113101135824937620880938298890234529685432496915676044821803592983094774974954761687200702957880318408258474333475207978939329441950197256991401026785375348013237068729351846039898225739434124381180116658376756718551063609815162775365949674512133549856741359535954202136565372822130467618880593478215539195948718111301830222977543732555623366750132391746449588707527124040936099151595473969802123568574184149862472743631244648809492950750061411987145041767296721502201666840963562668827575188916753916517422939166999130171799527596023849446412033634344166920152936339424815902993070498678013955666681871177346357869105128120107390166337066900341498291900641778223866967255525818829744033023847234597950346694283494739416677328199814022613019436668188957880641807225291724376627335374296898184500710532866039524060836487244414253032216148883303426775352371782078874981783270656370671801319799974174054020130800637406726835167135251312346283681942798085745108479323820725316016656079659625180184753676783043450736099393169552294675763095282799558228169817169171990088185556221357924387054833110322184423771820604192038280720569029606597995113396640806884076622823911598732257818567151608228497355087781892396324131390988423282516376324755663141449991105845428512836523710729686674651756640210025155505386828804902772627266007044758157040294774863004187938945415798225351954449036789812546895662521655993805333145303352820778779255784410602654608876236354553424553173604043978948036359481246357442095911125958799060659055994939553799892837284301267262108007561370327235039312556004875280742406441292582149445427911739880973952593795457700330059511565494500207481817637198553649241540034091110978493689659592930608798028245685662134391276537546546932560431979517683025121664044224131171535516312545375100373878063080911638515049084999521794650785160765585493620870453627181322840920779172938500269569999034552188058827793699769203911100564481660686853104017983498681300515627755716177261105474941815183593441328312066781008898398729008151690957778356309077376373701111842416651824141520666450403210463540079077616167395751531275288786660206011436228730173174719338681250914772166639313879058399544488978684362832537068508987262005996997264857050929732300000338340219811443078618076711319158748726228375320555767722884740359371794434475148467338471434108685342590210520844064458635505150828784171028938762503415027551845474698309885127814428704250137466543598335839968328526075361408113682011189757292211506157539855010097049232870366587316666799831633306739321549330760345742716770794702181379221913852361123075243517159493814565320494411903573763765139789778875334997727228450997136060852404267742442932107654637716151136418495785502013681367615788321721845527421978438345296470858575764518448333590061071487014801460529792180112434062116893305770143379507603037989067512462088964638383914185487774862409832195365680599171069309159332141897481831882946170631771172594795466294197497074683452033331416985122413059185808068182922886452666535560364089385803826052362293063265386906566830921556429610239607490710886406500678803642231502189876249947547208065376032106023074069995430681367517944069134872454027436538423031098589415831902682538230775014013441492262768878590221642441157547566824439586601279067455245517941898472834611810780970103261830210015452556023839055037234220853773510392854517355671068241769853257232171496661446479850033238275536002067979425039090663446541138315300313473114387939737218481438368794282746360994779887735948520619722658420578121307937663476424752327598274581975563816076653968905334529949170580537741695947910393110742934169675311757382362378802286229223412255310716627664742599830322258375427095439618934874276734404558459413481230595682180789157733942701844835661331060568547977504358202056340723957916839593207771753138822737204293702670051881070190138585729672334252893064989499148005900502045305033083299688680085647958045962299748593705661962717841865349320641620261300456972714243551960973975047564220158515173889375148176994634277552973255483618195130068220221078574199911700762016095954363053095340994543879309742890733418943749591824449719122101639414390534573536756338576093100922938306258840481734380719039832375512226188274783373162480403896897679043336596307628645843101101696746931157244601050764217519376765630753969936982721026443674571572462591167724161048746539067631524149635401477016238176675307373441357077328819416381562237738441230508122972794456639419820222121256929394563250016291768346194002308761306125131777327537216984349660119511749579458944226658633158106329264702937306595502848390177250374396690525764908735818898445221842517098321982556793303149000131261387839833565865667733090178609322858347059925160322804175669343790833232497704667098574612658667862447607715036731099644076038031277531791791213279292745359554168195884261808060086954544912928371834590527774500258372362353920850457192762444904581722990242197786025676442730481834274534176605183976657066296442758485048864961438631833598096733231154257128784255975381947546810284401756855839482774434415670749382079980123245941119761004163910166730786879016441851900664111098148966972495279696329923917828388506178294792066884280553326649970496958307696322916114353349977278941459917131307941451381155614309782202084537856228131364597304898668919126710958860835675292910904889340874816537431909452030660533782455763436090601752463708026350709595904556435197169564038863351845251657452737536877740323399330840340684860600732472527505216458828142815496464368834188717248869351419114149583587154394120232200865868821804128966009066166589115827054418743663761654027660210813109363541455657316792121086521999101417159570611712631210499467828158295348972431266203524298993088078795047357074728320607796891014817810767304886454540125193552478507788616715807082432705632061927371758450869777174858156140316189294771730525947959489191199702857032331538568866008078669997987898694587557755147649752125688678270187213693920221115893800063858010096507755663695954316331367544962180008410512672570012826160469136369168478275043254668531622779564791347965268489171714121217043507159703324562435098141112122650072502912978712795298109988981910416107209831846261688878396896909862288051363837403800682077721302876361596657590167244686851571962049983339681571536789325565315740838338282084442850861841949130634266897138492864341437286952724362529660564394442561758213576809386967403618386621892177154424150153584627717590857738677407620758158444120377988549868493970939823257313718796951741129386320833304033927655791227272620253840668422872172088458340180045691190942344465377456105804041597502906371154130952097527258839146184406562996679804969582326020269920651933765994178147463371033074071662693808749372552724646560914622100464433385580013868163443623626639782694864746316618053665875673805699162832433353013631404640550683104986067718965932879329498599839704006112832816365199401398494113625517321257254261940521125596964347079692742835526294857441922513089197780688120189866701457611243270903171819859344030077625929788430304928336490279309300345395838660629749462788472614252870966940883375725174085728491382900838207069739186089459720494347604465912142108511112338962014654427399984932470976195621351708791812920509752391902134865434818354809918154013526862767794164964031875884089673409517406333449961708464280294155452875766305570924146792320972103305597726798004959001864418493360696618269359279794572423839616351055362268747368912865705670020648889716475038567299900901251944859247790582068611528870572896514547355450170408419869517662496292640131389032603045513738427897594809804982601526426788192410326162178478491974754360943578015894014347922300675477438854907023852403661717430051550171145261286497126489988147109160929551791154442061601509764770655257239132259435982047097746881305942026519083982677417621595040091025756019121490582693289008790051574587582854864397532852933463159866939893181931184595874987027074787579197086301033098147399053456320880660726720196308884920061686148215594647421904659114609468063717623389582322731060762826154887608919396798928427089538555980276756060943607810367557574767788315346930723419477231828095791740044800844958633091597557535888365984048557686064855712764360874591900641901750674151985825341423725833936873608519506670263454353283830536029299146972763304368031622035299842880528809454726244097328351242517675103033230712800058768698790196533683811759520560766622562997135512803889655620308309364166958054040001299542675203144169782992228632813203912246321082954108851677819280488336714045438693392608148487318195726412454232771750608115999501258309178196516125651344251899634878807705621420298236119915896609127403386771061172086792196855628590528678618311817090995849640635129504011295599142314237388201228680486223967890035806586522409857925443493774741481544727035925952488497388346702241357546882717559367439198733026125103591658072494808920898003091705411357469032846299875632753382247063122801151440653572583998683951402492262765816103950480693512044147107787732905179558423948233593941634490908051213882561728277143498751189080475594236184633304887899970112279991203480645022764276152018721538573342121025079089383372991535477020046937944757870943475110694289239867543444651148369598426884370576781822064164842036569851386745753844140944252321437550792713511468761341161623287705571285939313088427955809569259724332753099125947087625811361203128958813581672422416290181499582516295839849401652549475681002521001872820240907596592120925001505034599157995063166199459850983665626132171355568705810303669093211685846313398989227575437149367616867862695309372867610631902150764361962348696599899584547077892500758095144884920821411959414243894009645675439105654992464895561609870351346348641813588993567708091275660299190988710478802733658963966716222488959281185006525915621426437784783330109902716091329133334054851531719342809110826677893916556354433990490829779524590733853744299393476613308977494017144098782953992147437903955565393472089139183346932068602002692538410855575289168042951069656636639355656037003734385371579117512474093115791212150820805726015878437464476793704809117487889202694386209403758509722171084853879375938918877458740954096117803251319759159239690286527950418043543914876264128046808225936502475508004071302468592487270891690293279189956200676643450606876917865793937397337942011370703826742660115943849906059844635819132187393928952625388041077849082069388738995179079678984606533367187549814357033676295843063611138567855523842533639354224087701468179447058350283952777792527594819104635534129216865420301712168011959256085125529025677413206708195011031591983562509710672190467722829131953064873629377990012927908965288716986550435189858499080778304856915359553772145606759127166295367144376661513866442741371566403794325992509913603307757774474137508644532907871576712707749557838391308202537671480169541998122734169942301084600111694230310023739406783041219821560520418724029394726627348606193734695386687976933470380614469163839769382901522517872256859456898253007560779070792782358074137023586657168775904780799291294263138680881489351165350407539270551199945637186736395276777154111330052939396876669531045523262878044805427949141432150798495762062807993647024445328277303987509167857684494596697624407612653945163006221360264348843295343334044511234043881622570765057904775919896114429766296927542795912528623733303971645856186207688597133701428431216467704265430706303106048190570418168108669779465430699748915678557888752710589408949898708375161474492692573755688981644453963823627367599017035500903770435281567268802868817704381796675634218121101958833750046591967681614713080594240826525403203456424371334038090427801671618736138592723501105329686938408384425727338921963494869464739519240777092400605565330049412932371454658861101464242332228879471112751871414226248474009088138367933862977342315347788072696364082896806588249077829621719817116279578215329792360136840491752938684784865768943678603420138374675655352420395130337555137021343961199388948550935099241695182493167947377287584200783771181852381477810497438227983063619650020996381907604563226201215220689028261117713989610053054632409191500412725825975112116617808051508464630591475855286303296354779855524858782142914739363484812745007982988979462229379373934336119393543497404900266831446846630729393710064231523540387107717395343299710114705404463640676781978028557251228278592397488804198218701814122607012262640800547123344724415790317360183544863766134235198157711008064799990285723869022597887225185489448880096633715441243212174588136793898183116736160778838120039315005013350164928702186899022361892227703065293715589249437259296947493732048013493825877530652266529696586471452205858412766402402043822557459517136211916854967167151031134711285368523424722916416517001707055458510969989938745237608058468265919944407812784892188033698526448423069590102502197708067241703078976861458090192920286691180950482922092089891754632458405741237426491472936037650718383578993781426216404524970190481681418336509063960705771544467308858471470187523055628935004360194720100171557826129012996890487232439563225565087887089728128989113355655240767588590303098531729128641346583275549181132588787320887170836076221936089716323533101907428377890439987418931594467121420124092145251229130020936486654797630116706771951481549726801503963509375698475142360392096373206126519698899261578184913233183392845344943752985296182945100286527221071843126160367033247519400604363388514020656236804557145490876169014641087755850010768844104549498139735582327357359429578230808911531149504738640593866965749371562487967081056085400576521397693731949700554335715991338099177632531912796981546610833965007274310928030702401547069949296957081304261891004302949809510847571289838052068560146256502268588116581012840054434147876954492306504256421681801189309376733349511118851707282199339482967123406441206284404996992859482548324670835018335558358047508487447613602409496830306766925464114808510004322119084393724954274029851931474158322421281704486901320635639353253125204829059382725636838586099794552079355911766582367165015869821844116188481295355882838198968213481708602121925862535630643214074320301004855239115573079317641385550546148577827606757789181996332148830544476895725243903701704870888573994560864364279963543140336500093038004813567958062911113478616061502174157626380679789570655717060156321781845788386363742944480779958637295922516080619232984147386813902873171665513132918033859559474573125903755653159496658173139963786170641397019665804586625872804709950668379495548658809103587477268449328136868737305202528489060012249157908577856078596319056189560776505850813250494706807897792826522435008897586683698989988032107223539580151093971689574325482621982350996543501673145233234433762577550190445915533216052975553401253446441453688330922373514559758744137378916447812924733197305137987691389543633862898961809319978790159979467500225650686125981081629365912074439273736476981608182541952581884327816084021060139937287895175154307891420945207722719077299966654321989278497310217729283234980761633514381855614846694342751996325023790756114168982115375438069573047592371735086802741746622442548589075431199273199873974725959446280280123686982182808941760360925537269679758328274730524126197050428177933504399098176310968028319757817331513258410773037882458357786946166481047489682537064773547686542786192872650274726949371325906731219920160756923609105229018162022155803331537470623664944060183059176870115647286638868501104915756447936109224486287480659585354380764773185015949798061828543650149472808889333903210967745053663168568848067081585027361691931011054044945170914494422031724719128925277635308666579426390406871794808478530371709929321873871989880931619387068298578971551917227469788274563042103119481079180286265954167435396286233224077486693083488810074021002751009213196029739737216511694895445252672324426595849902221996640570815187869982343735410707794956273771747149412655547936904355105160077605762450102545270365051746436991356546889082811282923633631336014793011280718763355787549362061425117070467583836837542177134325467997385197305310928346082853550300110506766709307592699399069559249311864374872024863968412596971620769964475528894631534220813110745578078925091623441229880177284232694726289849631616729534088119951447435972397887376068258826185838098204765191845939348029486432462013857188195064782136142718773917773951353161043353787516978561601374122160286325351747702280676860042424761394555687575889720021688144183202820503908548730940197112340185766327454154789663976361213563670360086311701174203525319542111646814863992844103596050174912240647991012548915396068990714129121183204457398826453967126921476016316156751712023830067841503906438187472588222143995559653660945995638562503716934609840662376690384129586646289334900349732852963044408118897375634640080274764062504584179246547150547705553608233255489810224505697586781804323332718465545876576645407389025310956302462761911965713946601251291518765200960239089554714228414817391196288089306896064696783763766630178621394688873888731016039816107229636852140208933406451462088469950634041150136334743022276842944716622442884554486924646828341289519148795571130026229620078906364683218980421008343040039128520913573716670496651487845768222240174354779619535850536033305864993957541473954628174966039477791196042935228568854733234427615066369941791343055415365270085690870165224376300719257924975001486233420649553014377251116509118307959542893730723415178551105865199512028888347955400895847953448359655322603371744422153499686686002726460993940410919609260943756860652867508627127345406422179969517194984790081549074776982269291508619012859605809734957868519631275764040309079154156305064497685326339688467971792232238515759719742156622648604177939236778630032298947605277163660161814786212696179359432666025766462334028647092970167329987367130226642907185086980052599956882597818040916972961096068064019057763232816969784130841923852252793928364529335839166693357374936217556821122690440402439945219579729882078347121482769650794563908856384710516086958106797273183642301275256351982089394972626674990484731781372753337012462633332982912879617890256935907370936521640660646258766810695921225856064554615953317828039965342558883763782318336743233965088565111907698828589387084319038861292250870807224185396903030939589708200862922297643408890466988715252885265770603759328847701773586795679871137103526963056565064013116732275682651870055434486242589314631226736278480687715185824031635388970376554744174216159827688598275591667486498415317880742242114481295124171807722056977952761235094908176559929367698497542214074930570308697112244555349754756295240939934127813837373219956598350237809317814674505613937586997098289600199344706815313053312753274714765183501350570028614608804060073719045460961315844476608756161917044276354449208583210645350026768537028697004947019859383896128365150616625727948221747583348375535046286634528188848618520125885113279874229450644399093996139958105479694957781566698091501648083632333168000983093478245995546812532961785661122079975317401489086671147837056571852399281905046681189826394710252812784287112356553699654852011765035839463400259548224274676560186865472455230738034591615158870149657330856693566924586501474501385872916816002886297532203955653104985613529234933132866560511347865657703571730184311768868675913847092717780013585433169353655063688620069192783281819668192196590433043845123188185571781366716036072488730762589620280737355601133267983657057237515849064734455209466019330722278580224207117369192127447010895806297661322221277289330331872740753974166040161039308479793343332143937262705767950102281340773087364370336480170317027966278076469041279740884084170628925441778666815422493612859899589451279768915829774546480937009489124975953323464171717975454508742738883903663681202015869029920869577781956404600038905139330839336492272007190185930182615000976834464176538152044818621639527361541092436845717942307338228351243781900012208600539185153196993922003141258146036305339681935351680534604467070783536550581259045825848022204577197166379420288557119067716279624371216425948805656206739814141095548867189759577730293382056121999094776984931000396739182494355643506148665273428578545140339577045551859139315225083998914872883371607484678803656576884422305521143934474460863366360217310647843197080989802326922447972724187699737756151444452385717793010664743641846581012810347464861668380783921441282233054302718471318156457363691477369278952137111576087952597360726260979057658823573502764322932600569342339227213238172430177010541762845144785655323126719340461937704178124195436735310835650305842557553448136075668289212960247108392440789232505662507487159082824425933499527393455823413915889785061911172709054397580152983573303735706359553794699404242885790602073098063123978587514736116664660894174089021822725858056210867936303836389210349776119085581325008483691248504148151774971553142091607569168851938784685766061739218904891553787967339551815348104121404021966562151710428980857845699956715477856223058913261215193383439569705315044411510226729204077159837598303985737153562857813702306329859378224208238207001410005627818692666057834912478028201780997935861570728838724223787370528666617337627677439694532774177327279187984857303157063312356272380530457689447145648812893543694099818502812576024849297024059133276441979813433276257333926725979890969117245441077538428114950658407593262458151143529810387872357419498529703626826476404249835334246078681567110607245921066542970744217695950081709575378048053173766049816708209716069261382400782877356152133264813661937024732534375039550808486358304308813973642104617144640933018540623676064158428169491547526219972993081869338870316759762093807986848907814689506011072058397767629809480819304574454417426043533224609903418122970604617097057305435220315537708481215247628509733809608822729625302280858552553493655529789026298878827672223645847660701397146532499499209266380623863033807313733809945133623879220790944985393821149943629583155438787247854982156121717393231278424877198298494833376831386248568989396071540323859924776194534079736826313577784200713780083290198018069675159464530736903408502240661500805069250253882382543754003818995040991846963829051390327576000379151161978561679472774666237972311836620303762322740509072604611096671437367465860056106739107614666349044896277068964384054202740853988733400887310666773061860121854555693318231982430933786685311514626992115363330430653738798908050798566840132703177626284940944208978797794500998430921161547104661202059491647653721026498688673878940289622365912250291941465242159596797039036811541713818344811212039288718977014050540684576411635349275362771647179106449471932141694328279998455135481094485582637768482486073005301112549913292164020010967975800916265682573046120862057177059627890378273497547125905118936653273838673685567912017738498926787871753518188018470844652119413021262209114384304599155964980883297521951283205444097454025944667509319278007060701550950933699031902762486447671958045027843990574396208853891312701749613188374814835966201589572330645362176177631039760504917321378083564029148598388296307025120404946386139528546651823359846929055098906639712123899425009929649467957859694199430969395820351469859402286666167256989846048019207088695317455207097586080394752558010142658568136507102768888795147633747247470439044791653910773212011244888914069531196054686841496153594196873731119610488165414835037699664613491343925458858499361870400121094391879581968256225961226797791759724274992808504684792592226853941005143712792939218187388660315515152663203261606670739512100870926954069459848708365556287251128696242751602084591260933137112036973950186220541356515408216406592007648167817030424085931668642981560707791105286474876326267905769288992854589838687417188748885136293647429844895962060372103715761284235530636095099205975337742149519137459376447762221476401502301230770828643467591850286852042747807082144150350638022279586248933101668109657293393261004006090343194661129653116986484889748465002532545518455519264682584206890459622823710394091259529080949855047570490437815682735790208505106969530776613738768148601930205579915551836042929152883387746775124761722719829485811978121123017182420517792054516791605681293717939396170014953047786530737699245464732314654519058490471877352403425042289436290544098042745135919287047508114186646123822911890322144150446706572235504865236814996433518210243476309952787329272642728999442759627695548350020221148623298714641787389150332466671103713598852139051312555337881065317415268827565574763554484509018338018862209974597233049389277104421346051440426982140311810486551495668139206722319928364605314473279064063446490850888624868009642612871138911151903933961244138172641762789194059728588398311551292323337502554358305256609076500384407976213286150124183967598890961367301773507101417785218949244321476708533957288726345532074352950078230245274846327074436438227197581925026475618465192822930758580584003567295301756788396745619187979217477403726320518924011491849645782697794721321387215418505515638436187669740216614299289481530706637653464899825602451809971407764857407531334958067768157273421742473188134538643966206764013097736496982051576186148073905695650927482827394780126493670732884877329451960289995430273821738289367642035849473418829943305615318063610425145096812407218617943139808425643197876206386116084337510682816185740820037906039888655820361116846912375247157602092415558265086723494563810509631497460388868578351709183814924642135699299480847077237984328668351510346482393064168108188772374879448710927164771254054142923186730848119341893592918728013115764741919844532151474348386249740780781979849387600274410777260182962905448549177987269087645062806002864572740050053812700486181448955977902962083407549407458969911076445868388985614961842472524535798284364630482398878906847664465455452234952908869037876457388928148511361815352508755284723476100013011978324269813431343055499235377238576072732677593532675726798471143640894305235488808816067999143347325096158621052420345292594849962950712643900336840181020432809176084674257005762902674288277174117507511047910672139047844605278523634532213905346231115425270267814076157532602933443683625480306811638429443056998466230894389668205653631773583192986059301043482045121480130178327498085705234594458090050983461675947742384878663583639514845538817907078632504217773470641375755419277224691641483111681032918645607701407707975819385409943552576087527677979478809966589421457285794757009907299231601653182140432630559648444116263710597999477127949405155560566651143325768857020571949647131346537375282940180567835395917348505266515390405530532344638301907904089198789997448067210095406614797922740710185348296115747945470367880920261979794935984243380574361077870986515454256383001961080716017982302690508800132470896331407807715594752495811053118670681082978498191793682063575637052066357581499587603805718545701972768049830257071010140400999083555786862115238111379060256382631387407513522021528175202111278903343107167956497624488971293011747039732395995482391799174661910460897199856037513749521501312055039469427058014589636524877740352648208031179459180176389231770074963012882448419339437816947232542904914666536030037584879695756945818225590098640402086257912468158390503204623729057066252102916716086691668201509283068096897059662816986475927507047299826716196415584958174230922583832822639472348926769628396134139499619440485333231123594618026976472231608476606088125256026725825584457582038411513095025675138201139205161485900284114485397062163083219862470537320773261017026025299391103393837767214662573537406443629313960324463358253316850332592465364769917202025202911003406037886151201235557995313088687143427206054720801433920460444446739806075485782646333429585921853077915671686457188326652242543274848520956463241814472051067307616155614043738782297647382506844728719262503127709149611257740218424132896222733514470220232535526150417058586892296165146064662407154877111397134244083107960157605503625895250194721584984199065884142822662591972664490801157374204257575362063831046921995442104759522307851634169931912701798196822128763003189686672704041267721725289026287406239494388873347697363030757400771691062625358204619391341592724575649104858461699971335636466155902809820892093512477238204884282025527042873809273627541253342858076460711524087489014713878561493668998241769881811960971493992585816961827361795105030470733178427228502390530351796177298563145853290681972472872635462573727640911149892725112324940300948293793834581016034258063181031052853522251993597967509605253087932142132376700015883506995220603949461545339601853503316991499636564901803090549503507356712988455313653970161307935479362146085061493345266473598766700588855452602826761496926682210506201368224987528146477084615133306037256489502088416718488850638464840657571830630075814950483111889082543830283566050355944043631993472051565847556895663035644208968060961157910511372536126692258059477048612486250418348904897429619222731138567617816522261500213477932572814669378750740467371867590180657446782354955686629466364972742210421777960191037510034748070965653436855696548603971657158206864793312423973628968039309407204024009743831547378625194263075170098116380605545080720902243664405511560762304439651606050734777189893444534820610127696064913709532225028694212290078058978051800301843319091430773643324916163800644675377927015373166576971163673321375828665919621716583345802437110095905884057669336228752247073561870680892911232195041892477964134368976000331820185397108130559827922925061494950695345910794799404759493310261363608951690314711603816341167677748717436102612692072828682004039886854235601436739854205613669573218322175194393643939714182155894115488010876920434581032992745166821717728169427771551864208475199693553153306420879656171535495224195136688759255980560442424532379426415673974757598056423320105926104026825872426864172215228046334296817033981835622360853623329441371323087969372171476993741778182211635102738853383301432445280250121168025573403624119826822287719930196169907578611691053491331393438420632956198686832627972210922479505573632695240683181961073094281626670536816894973576705079993513347548881330000121609309139933981934184622154743467754299314914148947835937981894860564166185994124814934026642714048972575202139715513183271555716165278828109469891714992254797454179064676491098037293328801672309852991066293982659341721770966674467139547910459113849534244030971393193872357819772177193200275942032886652915232143331310081047981923165570430338421480615537626131315936546671393970374931652529552774012858241242372627273630136950911210688007979708594079164155025353298330969085258622671274022020063534791149939419010231612972698022494716815112073068967939615533717259396842044890156603574764039428199719507832046243006281176543673907570526764094605345672953110429316137246876888733174217196035773278468337256753417310106738854056224035394352548866600472546649821786076103190864780579774058033456826516600323316362473098464137069220550120016514014889190859740751292263036505388435002055087673005921540923651071782631555346890310363531979660733879356818832458344692283274337944932690234866120242278484775704371716498064968206730233960625805357529865997322980048057519356804386343180993125747147575367579716917666639851991848852807212490331052029006420834476334461196779072082116810198788187090850140711428552358207456366669720103748767709086969298967217302346784312205915392160808926820850534846360324330394605617107517266685347361696267806335846415701300943683051784236427378788906239784029470654055010203783554352082334014143118527814400997581079532392420799445992181039585498416098219911365793409214107940517599933867559386961181380826596433089916947432357606994695727785042832486614257295221544596000609129008705540492885610478859097195599687817093013241102064933406655476177492323589715051179715050812636799301958828672340952026417705446403467914372130658666112754820122993546835680982072935039031628932211842649891541280499312967668433861808349684665551473941265479105017193397606146807314097820708763773928643787535508671689394238289824260678653328307809681690810957673292051754472492106055140148721258714235038741538271031368605905462571523715684523725849217497923482786691301489827806664933570799605287132758223433217252044219080496288175536550268961829732419549960592004244926514823604180580471775064895379426895338271945644659246178040752524143150216684736043276581159966639911235201904953932735143023697068731408099928688376511491217534627872173508802906045009590175767389666754069299937873535134190600376590419803228564687473412819080736410334427965261932522936164355222026377471760380686344918046639614014804747922995604764632443621284914728813676020820311748582685000087555604108283772787345162765718965260294319635407505591158943942819124068841960095183853868127909277780918122393661859209623395778661627817113259516535088135135526932281367072748836096233978623972966162515781412807764185539544140746959680499551541265951141979992946597021907217873840604453904488956485365043114750676304177625436945894708951768781844535724740585255972926085713749565602340034327988724570907104695090953834855283999976033431395920165263804340188290731380883647958365912489735662759174005486774787377334536536774436339193735997777950444631710217928772585304989750970839382289135532127169002738249763098349168771203999721889666364023169211941024086598235483413681574290464275503945156559234588112858953237158060963456073775700342467487136025772112264410623914544581738486885766632306736605721196520746304643035440742266994998365075532504395195726335188524640802353742462768904440423929368628696207284092536244332119786224058877575479278758523169222964530354119372282109013652374231627426755080654855697328133112049613708136014876840656573481132376366854670096624811198430266072722908612424063739768823514178636272651344365495529772537646685286098467890218233421191639787778456369756724454354018505884937914943638134461054273946139269591375081014439874415340709330278039023052671779469934149195504070194060553805250811827018627744975516983027482583303261252800873680472791100405919177597426353852566234846967697672151479629977621355599686019188060164796456663817807767404888378264252257317460548177557750556370916464261542088404195704286109070296431591442388036059189058797974609028436164001741953430485250238321410717839062050117705224268360089062274491756440714990271480448834014787144203108397822555264385705261969282035317679375049273894482649972923800393334777320720084148000689576687808216776042637351537583656537665591061041919901335287406056907415665220379796717431943777510360232359817780182627469378021679821207423311894106489061354825863350766988863899588954662900288982003314289377852837458936764518696980102874615789961879713352713347684601074530289731963226587530674837805674881599220522184603175704591907062260963695727186781864933908584066353514332951728150385881000318616481770658203159143434021625672797764321729606458383265162241131937581027083733214844675121060263363198810905316099560972078298477205925025294139549455591586989926772268092862401542510637467391286573913203581105004294701122706265196087496157551161800440463666040162254148106383234927010060848781630885400565249781383244129569821571700549283527464048599160565213268067473943030969797689944342608293670822378405641134005863796064800414983284335179968807515306956474160384042807218752273272133387347207609158703919175213937676844468269754068822438748628752843762900447154736573893426710457617649074580390758313267077747767990830142214350213863613135917336659661344085946967945928527164008490610208399482266233363609935692083215672489018760075565210970319757762410295623059391555918748118137945655211921983509741174662408378688118482437609755956555923194307917799296424465652640403756738314597852389885986378051813076432320323800362853003098773522110499376641470427970940646305584123272376681227184357967279462942928480206234146817396322040754822820013363437878595441432773114198186268574272676480641201737783516103336408832201532499825402614079441640969998465431639977561009517155715967097735135739157778639248565123584862302694230998421733646081829758302266113285822768145509308621287740693255670759756586321793552725029046626912827714249865589888086401630404089734828746708667926986117425924068700580767078276513744823867346558195328656544238767008549832532943020157929642584552281987207643589007727425346069076398620543968251539189226954062841569410089278532460933906131091621171489021881563459894510022936748787885696562251193140646910371756170891787953967424432151353053940423081972917763754597484452956103794122333360539210189792963551439860334914679565337826224020497408415007795098532879301936749370930445365915444111360645144844977957174465892485723251342872349399801705834182344772485800400337183113105285353395234297815517027492042339530617041266555868382810122361669980219996259208876378788965566031852579522145226280890501886788195449541304229967625936435836107994623908871748317769510431074839032126511913997557435996459272839094892286880279359756997523548438124270244522621190260727666552668884667112510333963123477554643288805928196013248054886601055031645819046436494974604027672981686050451317161037767219590211270802542148487021761955693890738354175989717406191569515680283294199116189526919090902497254643452831521235276034229808691564727123202559045061185836001038547804229083410458960140929959126944675598249588234508198022524021747126955592305941492366733052331555833296997293251458299842461858465917061373148173067944453281519897421850050900772109877338043959307404207187353381761927791795251492474730463192790212021262813008602744925302630888851966444861082411428949210719352012976925299197014884873820731783758005954568058787591625757184483433708263543784167582996717661656349120240975354825384330210415155074084505058234620805641837787254517061627449423880452356579935768195253680883197520709507035368128000405416227743051894017320188171949995529153154434628913170939731295058648153285687480944663054118580651968716058552764416398143664128542045526750219060315632387745488135691479954819352069616253335269009328724306171055927566457455222636507389837359588754429825611147774457353093585387643724878287865190495423582123490209966197382911010754834492372156437249267305128305955581865699490502894482976100409860446464209492274438020294770030816122087755414024051269116216529143927297688910140434325187057032141499557648471687298341935104744821819873147341736437868811696130011905165618346822041443725300223698114399318621540409031939658619939998376212324402063434447531512736817491422053628348192076244856680009100175167048643744018978146720311770263069722762021887538392621559416486547718204429669577575052653224477928293179216222544318545998003948187559230874146046889880700616008003905380988243948970685603548160746594076384756203564328770625214130888451190011559956760259750437601953166131468077321156799970972957147428157803200579012163319047697255559256403800531980719378030776976407411014550871790099815487750484808704461541255151333766929965336923548438185508167893415214565419217505219325663932855360019306589866448119020723226940968224153715962847564403991007310661689349182409387479184618565601391265921786168779630155734640853779318401766680173273162213479934166340902687193122474655463203968253574528975257014270141817884685055771241115694410315674272405609264014438507663770338823640879433430848510573449858894132054541059613384848752914373210952552602853484251102961756838893147598133964465027527824937725140333911548004032875286752755937147681407523375558510873224763525055348958236549519477621522677425932310525497072690871088670107907187550431447131923060523593933584831434255965292666938352021232693471274273481655881493781385770887819405827163325912174688467989288057577355244437472998950438986907441155722743520291026688530809772995157416173832667493300589950047863905453756917858971555036900313981014915030919383519939536767458872234327196794100649787808353218681957991358694268735309289026399837004279082673402072089416937620150131395231403305762866182191935970563300202254154093544263719024226253559371166158769147797012148042274999435963582993854892446114748060407228541298649067228888756854219866986976419571561945890277495857770659625720676792917241820315263631180442313918302633261524971598859763617603420310447464781331236814262668713941853580444096162672884417653650114634456035159675083041222061022601834544189547060606359234114326997185840848652825655641638873439715002306529106519850291748430794649056185031180728104313590709766469451227083899391777118863285320340200628815328365901137417056069378551529213899039935389220767047939523140162623332575135829474548191004056457939479569597175522635604311301594168096337545289757142707321177723307741907025303379208888820508692105960728106137888984022527715960656887853363988729505518894732083728841813106858941540007223925876315645148100845073304257297708916723034357572933117542000808964984721674749759775773106023869049202697546516727937525830998318326869999302230821418735469638702847114711584117410579440909591824326627554189233990166414037467547766563778819825077058996990905889098339591430456696375697205900959540753122358290424436031900199521662103658465947207221601048773388954533350999825641500265583399665569634564099221914942489967042910163749766490651404313693419483946932163489769338764492458554210701512853135694892011355642899908106515580281659698384647891951405521077178567366340645618457070363317721047639745310833126514467622604191305114029693425160995612262798987121214097721227350429988646442561744097356959060223361149705438037638276077380709354591962404636658182005731591691518303726042113031364264222172342745617398494228011233680376249071697458140949920961783837477105273587835798688936408247649588905475769499647610203670032518134068638799048050495115918187910615733304398008485941744393327474577408232471420225824171054910657317236356016485706774788550156365892013698973846919174615303127580091268447601174338998778817427334589825497378246532642019744213060837278369511064117887028284279270158402920480101911377999771898945049167050231793083415388915872237855478123778355987068298807105386260806773752962696053107548038470004921497359640765060765492416916973545879208614999567809868614093769116557269515578510119420349830844777893607706596373185745944121703369656043644099323797777824228087409085946193733105757836280937443124973289756306125336639146138106586943330609983473879390230789839650659939507459426357719039410944804325774605369496868793648031140514663340196894330106338840446347989078870371879587936607133336804953399027271612608630834813498412100627817301550546524968541614764065060756934383046559024006776681306193349128182154954212101273195684121810879972027484937380995229654494243902383643758731291678557130242147005783833432695146362481687171027889369760899035823384570775870440772321570820820908615157098843984620897104015676840868259059483253753258646141374078284943874052537267397385614194316745927601042378730936764689934937073745286299212720805144916063349129613171605459356543695836263042235385659274900831321688837265001869187238679252978792675823754510510948347342365663211736473456639254914081731749973780786437070146935110881979266975116258854159685968962498188648584630612067626448827423245827060707465608199166486150258836115091444538910566793820825915036674435873292124096880170474860945418078120538993801169614488732783994778902262864934160596527092785197551158979708088225612383681437477163068567543778226921987381095497413061580222300196869220374988178981046976809538626317804596083135466861655251907391207330090110849749104356016226871855827841618630992436205866999867752694867112936132516953878373163412174732468379482662505720869923871900438205239891443009412605646974835205287388483581485832561170542580169315908899886475059942986335456094671521950421658779877079910580564533107741927223307315918859598195395534867835722533979781950327133167618778182196065626875345670004158522804606260559482207678420987930837858327448220851273179074770387668127622594924047219966472125926697272056917203035469275890478593194446882239951905318946059226019133582726660136163547739342433527269111486680225112559739923084788105919224929823653239246955896187397828362449589590084060554660664994736365464377016133798839315736470333749049921920229210693630075132128475411767759554719576639598734006187411799087677251849825075283983569228651623112002232332124426924471929449715604067163341786124626307620070342741963664160220803033027969414546455725306891849324652405817134136622630820017181532842777844459504600384664932448422872739429795612428370777967884985413374671714316558562296583888780085412714026284358056463615478917102540835016045274675089156581891247091881386945186243132257383568263184056342337289343831603463370131031673646894910836782287146484116086236659977808460066972434235178298990918873101164562156729622500597359324917774903992536042848306409115083909273587643433312533088406372341789419194899427553211539171634662926776169288277021455155769650715480327557057476313492071282179142916040103977670756104462432161432561041173089272443315150656725177040707428393509724404853084969913287118132367281119620163663776082544138420384802626830668833999742225574377754824050979749289624180590121169915173692074796917350586022557908655254258806903541997587958024810161045545380247835691742244006070672450820785279944049112688453458645713832895611048861488234348272539608051947279222233353368983027422219590733495705680860766916232500901150189134889979389439509242499606323844300090867895944323603647931158445238300699118269838474190892667902581738613497985040431065183743497589072549593728622160234174905871109667908907660652627916277924659798402890040744683031269051225917984221001341434652538389368144361424556722569132346754203613156663995601408756682806048801480779358564046308705305717161366136759490509161155846735717942937162915040278101320144889006065771681874213756170331935116702469360191936525943778980643027624312211657910035700080647827778145525615649478876097680335558516098646458046005311706792783376124932329133908071828251716047277721241903274513669050871702694943748016811514106026949819431769154165607137956961960150892988688541617042270679643086826308542680053854975393305044316903049565851511602125700119775424443050853028318223925118644113025249860170756988819096867679988290970923009374205450204464114749852949553465450332782952957166929176031968199520490187324756320483061747141668376301458231882161488049246019932490102477215964081357986435566475675265649215435590664589006071393787176412994176764880768010351702057120277771339374921523509640387074386571994191948933142563288303380651276694509350682754056537415542132999525283437272697041823675970842561629788485657939632898625385660475978516839747842993577512098584323215899469631738895904049417919808365520666498544364893598511634774716284371675685209170425389039882883417864377191033222305151394068502263619104863954096679782400277510356385808012428631603211756957854595261644623669457294794407154819080521091779482733500166204989400980303587532535847775500401785836522439305701513313559418734605898093412644017428707162626665224692712582763735352804806674773062149039395095205948882632971179582964639201726472694670835349040421450382936287433261009884851718480383065648975639546254193847505309887999066125084338077771081958841077440593128646340208525429315900169434152594225419762207813656376705354038768771348026784028331909981822035807324566713232594508554795164596597806065492951421758926470233144798964271273948926371455424897584921139825472094336483683762048575467930655262470752623041625331480292946809208169121635198598484253490125698799587196546105845329524929569819031397053517473195357401267416761436566157275993394167038179416471170261797546541851920007548229574319228146569339851984362601455099585904658107306389208296963026591325118307199436551671575182783883275823074141764615551020600861702982137780559351997571651903017807905559338349850483419469093273663797396240133758324469481069623362403261602573734890213898132736556870822734108709780953879844888478550765618107668649646215220200577346419564003049129319193902228516323120290800093849926670440374863606348036233217491996140653385791195114545319147856150895021841174515070120593100551717378790294328854441432008903999864678902603230863829794902686719198467583352871919313149284573009551175706139406456851893350478012179537891762672542232944719929478676283439333749763118918829417775879270924250621120378595211532099424731481578802010453171748606445441625168481405459483666983347340219017423127711120638095905684588429204045143493815082535089484164830998534156702746427958526836072599958297549702214374638789216147232461911396443836017492883801386127694987737889002129167730567237690182666962856632522256325793495751299613807991902948266295677003241606280917489166994113482568878138551529439532433099149669217739995426542410130428693191000457919835189462507774515866578167899482832558138302006544173091493187571683040288903317588499430450141172459168224530591590633824158933734931341266732892593624938830722769619097125228376752207822934534773217986717512086731706555803885608396753830340196199145254168234296577839548544609017086868479165205911752936038086672337386502000401807303844639010457253698929175563037783552521789490103440265738023356796736601292024455798133215308618187162897661312841945218310777989980530821389963770416413530994535956291596509322837375120200898003499392060337866605723657378364170246247252480829889812813914960964847124629241523171141043393005984643272769258250276146114023274365497102379966153326140077680180847756867362952123419877099480765899127539997173644259236711344038953564246268341706247352823578950912781794809100645060603670256515521052176149506511836060313686663276539962744865768770808730361132945656588666497369819461866593500211146702739464940435396771596951740568667171389112837888369833322849217153201227648498131302718440470880659832152245768972535302608247501410005645129232328194653347822000341420437484931149989017331957361141953903738875948282407182183062555160833066328309334952112078807649084813178169977692011490594639726555795005358116311775814024551115562846953597296220693823351366675591651790110825883814178405603973646747416009091622224278450635705549844922244668181734897897096814693730714780039697099612470144233149553335736231179095490974093568091423555854289812593743849732280988062015786790474774428421206646218547095715063971645715786957770088203989320231537158270998462566570743788822552180809732471110636874702143075331323223438506670544430749465068200162914815062619064830568095359932734711719866275071622342801698914784146856291161609459607684130563842970471628220814011571360968051984848827312982230411118677052770462121981549883348403875311589526817355374198093705642578708588562735474447759100240006380717615409995001603881745793946303634325304341074170480940187502451838548871283833007686701695194841438040090499566633710233629597768682048035922809088665555783448087309071928199077112259548202522702400289823389315249596150226701806230706230124069876577704441985960776211889761355058702647281335304192476881401823067457315169026700016313266765600809922585508178114820638464165200045589285287312532879020689932343639752200493007513145214714857969473149779415382100337537806172170414693932792938685005362724705181868427542175414728713964590927751918850215743421822604109556662269517306371467172576270967197916609699630817158718932678986593021945151400549897128347349117260024278069975738197512388368272336190902835412985763586770455128610652457294842487983261170114590683083861328152889164236867828744133983853949019214132863205495816276611750031481090571672298204112037077574330077957930579315316594498440074902524654310023876987445160795713168421785144780089905416427881039776732225287350947433974973954998095511880286529597802285923206065788545730228426986695389285621746681319008284674548540769651034847730313659452065231737749960459340404210056446251838013947638856957738747535347311735663400115368903039353740792804604737360486666221673932507018111303957273981365426688465265237994749976323748221635653236257506945635375277901611681514668557407211370867215737464665168671547182592713944532786390557650761149367583037907353999668513472564599458252071433623973363405897365574662081073319125817179779546500664056439238690708915356313446618703411209284298629003897450141756003795582491360979102426402686879290045940676789928470476672031016538292007891491045497069695090507734872655669951894792617290730949417225346608664607401561317766631377500789565344828152396655496151138963630819413363904311880142959578998062876201420729700435053246785592693250550515764906235255567927414793322429805799096905439893062973051977599920108296206627157824692129590018779249438593782754136534781127780709709272362136193530212341175991717021099615546837659759408139809961558156489035229576441099761890515785809726458020953315206508140558014707507251805598673005079891143779433419799964539611596462525812413970040439566351935302582822862876936462742146114090072983092182799794228486289041018557457949496898667888837492961842454038868155967894816623966418904794617707606870866460570413745950671867280652330038569259262585685644522063233096688756766894621272939493410992447221462613437086768746971069453288735894488141411166892722055671265464898815724767151016463453754131635098653704480412826279786314975666421851304891592242010530218297704584147865690381569723357509669033892754135914225854684049504883195010341134468795244286151369267908402667006383885042904848992280148725298341373863243879510734803264473564968229867240685329769451754887625543399601573917383688552887458437461896551998596270673068808629268171765230542965292533884757372721509552690831916165988042591666148304150924127449011529103494764914700930845735961567288430804581083506583682190934395346118665498895073064263505188146840792954587616415397509176277439194208265567167827749261480802978641922406615844334436134415193556191520763352575246775908588378180216841134887811434097113221951742137890186844118834375019101565784368703299752170781869063299351913374345774883360905097102667785772356019701538793363851073015128516629587714672239640691116420484504639372572283764153451377332855514068639195093925284447252872980631614706852918191288277937608040987983066213679926319509143569462375976992301029279719568192152352103695854830770353959771012524066394373128236554700127644813307933799248912673682217483176756745623167317949593211022812825477511964680598420663197039993778378199434715887591480748427549380294300651263337476395250433438501043773847126801035681047181274587694983882364305979486488264569345519976600953679734205591812005181926863260508445773203442578775613505104360157061406327317518117032062049831777361902475330783669269168312464042954582735788738612830746801922501052920004059710431805562725846980737930757538802661056402002214412865840490223091523930303449863134891414519751823178335099406565497506611248510642598255778056385291510167559945871404539916248251039189919861968853367347879329894715401693884848721300287360560781476260579076403251593702767485695391977293169538611457325980416123215678559178219779874852263793253656993876788700381996206944646076947359710816697175011981479172816576211910074436548613855154625039995435714417041196035859816010554543548073701094669768833291638683686018343518465276243953440218145249584554496876739552082084780302390879823293935956607144746252814493697552542939456748744945396829531911804439078090003148415040806451811260324038592508971827385176649509672936745618279093228623992063117640792334546590368666332690129108452389711390518922019522659936762846698154014505899692830202908840250955298699208466351973651758362236069808683475853404078628473133482085726947491880683760762984001540090375877537110711220736963677339561627948213817262584953565888299993881057638844265052548008779520691094047628633860014793355975678850220861542594948630852272250536988040633689309510336095841237208287598202477680978529072284835619172198593726815033491847521504586003831388132554934679808037023574023216588195306206515430580437883715602571695742146601799627604384107593422721666122209697298637435697374146491434312729325084673902758787039453057508457046802083621291309984125400258385578805461822112859877461115442725874752274712054143872697160707238215596930010217985021188955601109952976581788350449823736952027199336363333920708830672691000202235416433232690251148336359072854924175650071082616822500760957652779643428974803484804187227171600112231104998279867620000866454095073215511071311844753056803643106353204329187926729547264158463034230990999277931962946916265009075565924325399916806637142086776521554653996513738843776597416036046170094760294712009980482788355636423235249929063881063843567759956988955826845329422109132522614290329061972426878126075099693305409593416854178755469397308892641166246667252164434328767195190776378967697742164319556663542598618617142312083015285694724767250042605864401963920457812622142916866649038581297919998749450240297587473615303159601392538040154691321983997253867709519320788775335516265250515475634228842453625202120954281588135661175672007497420125967895442267867843213082820554020521802680538281754806839978550423465824285512150872726038580361291455568938444060449181352063586681964556480722202202498076146878457432174473106508318791682675144757034808573032168887135899082145603318408729751092593067463844432537414438109692517961767096777693712236207720601584949154282217257527840837709342314498694732251897484518051597029292380959348437542668412800642351850520603245034142186430692406509510457928784883547603239103007740149693771779514292183453737196632179905718957136782061195233163368016244810787010762450005071666718961670464104279723945172823786445504412572018865405850821839883638979502084440522644824332441298085606531376223924964769311057278455017022762090584049723645786252906927363408975027806798438649412859633069070472223226050214231308990213384629460484595417637579167578849809533470266710108765374106460694040244130535732003455247025747400892579780257946576584828609900729724447199354675770598496412295442650752689409109942693820408972562302539016372585558775648587466799677409247332808098746838049503623669701972198232207658825552054330167627694835663781621725838059137167446640926272084122234122778947708438248649173214521090970007522832641239802563689490121469490013043346057793398598037276664204462372550063800896860478697274139954544155756658939076565874469426232416508330693753504919955873889125447377545970024116888190318780584483966617702536245699413566880945385698507268894460417774508810553979109907843433289600307593171211628058744310887677650917195991847882731917013157311156830213655588442119148578234113132162306124997035837206579744854514766660987188588630774556964065253402402366972322882421814161788451975807737397546462180866798513394109197497685927242514836248310943503518966010892978440777864460936968316970443760760885989026288412330640173707067550855069579485127975028357386350104059082692225916909860960739420268180388573497173678948318460470222589351397336193323392756905809368524337218164492354351754222400201251604301343925261062174545556684619061716365574726245172111038033307805696498101408224090405563808231841149429443038176881572436709425643146583871514428668486206857330328442852186975638687160241688848631913178788360872285488548387399757861140732597151107512937659047445462712575156736333573966249947140403961484305841817133353608181108378028169009798351050557444931542966218503429192656720261844228671552093302615632533388436253435736777119414079391278074793553826355629702070851700133951514190286148505655100433810268276246618829653423197614070524373476105099422235525610400466589259597309226977201479797998631129686059317232406657033548612222945911186257703841191558382277534016669903930035804505374409237138695340422131560578203835870990052292337190734715378964472542465658280906109288780060555910449447182371211152681621580250875894593261310564319570424596045089274522144060321631587410793979000894228098167043954330386991650462316471203947771233062204417420012400532381732494399127816873883652317284597739544514894911419054854347050612039156132413552951012217512634796386557399168629809038494440578637114062810605019650723743624883643822815855619558034717138902319095322669844886399768339320829888265160992784754405890911921845167276487718068929394555362836419328816962617755616716122015627005328394960653853568726579202233861009453662473582031314755952458642916620760439027214231020737584831933443817938779370821336367056663153064006486664112546540474287269879658796649677887670950225219689604055484077318270662926872809628922958732800023339350163896079389443632800491484642297392523736996990452733680055643913538218840140295107044579951380803720106058165360031720689717513757482489055750643779905717063273580188051329776751492639655070997302207537817182941511417679859321685349481857227636201183001471581341621802658920668116168707123905647491765953095975583073519027899127726556262866436527910974607674097395357565185621653038185232755683313830192126834955444681330447422271985507222071696150244436638191663354111190136013657761396537869728113545963781111510191089151256782266501647930744477695098227807745395581399883757673630570229131649087335831532814463030356839647766375768040487754014519449861047657310756185606675208407397266561460053918476304398980097152916457339345674080483831867994558320891885118461451326407436017189931073141298905861534485063372296910611644062290095757388622502338433486577039948002185085543796211334175545908615860558442809183186963363536804002224248478137504433080324786711784220451636216956458186902671347382076192913820625444772360779469998521271168433816961969037076603877543438130529918755636861849668392178737491691342128394611949342292689019967173577148140357636406503132302114381121837455731597127706071603986771318059213190043615856536698154599222027659528650800148109351597871121753506110645072461784739421339665697965601408148788313603999262242218209706466286590764823205882013903977057145019235726132135507382584195871661589884192965765757424193277869378661527070119903184017097679914504065641097105352934713998196915700596321668176663185830057032824851598442511634772220484174522409422178337157627558965011881828724185396183861381612508941858789130812966320177645786708079343910374758022626940721405344913675400393746508034968662383899746132692604659649735494305335122104482777171355533857150502665678180216379480069710674936310822817503119123854898952015855577303945150770803115745558767322799064508008068246536822063311260185479259043696563492818636418189763353979472955497385977341935111082954120345112595295439804892750661169963853707116021126757226078449892922598914259509654202384560069861681104153409512481060065052897205050349056288699750887596500263532912517882108403133561206545386096870121712056404462399624902417579323596616450082125010294106951316091525016719696724997165568655624507723964842257936426310220842593232330714455027815738595714562886101684877464450635090465411975759785908953911789759597623116793178682052185282687968124529388453750161885992956522854484117006675015616089598253363012343600112641110954502759159699365827464204591519672040358532301644528136688956532554234732994236508704812759350140078784310526807113952308645505237340495200440166967198770345345609055593632249299656655266980455959081358430242696613097709004946258019211552551419461144338622078308977109299642745604514473485086645004350707063174296037078802203473856926896524956202760665562648685908068567393619169915868052830199947191195034063620414950379585362847176417518410731835209412316876442107609273791976680880733707072364403298777780293002692875046660365136603284470702270355232366580926246536244630082132836711334998235771921167734623849494285260718085159931380478098545196227553550468952920521172671164212568733489235713103227594568841488363597370886258235544869600730258842633763379799667034267789843654026401216001033987804517809278050126034633208891330398715274540918365014836496097621740452335451691397376508943475299806123778193113386041664803901514676303117980811894591167668352871646849474495218509377006898915971319387831481733139753270951154024317281265830653403254757926568106583051163009092556923296191489756319228977835847464656873867439010332949619103938946229861872857088074509512172718970110867758106162018560220075020169615571135817165743666900219805597713208401669686865592024028131546717555640355630963242488247872130771389529335508334187592621617314704992795434123131712057920180885511464499680540791774642216508846819439471764472680210250173005469563934773811044351992637651132988561304824610625256957486983367551424876305695924255328683059385600051661464559826957604681640906743402248033206724908192034049257932582204696663723002267296998217544459957286282977026464162020179493167936315305542704815165484193685580123548132738547928384061043399290433025531056965005466486596292729565539419989015694507985352835338509407338672726015813032629157451561278580129677788856556988845286909483925623372119935888517359855749949600756949245420879620238738362582920474363170433571735324768225521024974680191364379057061610436907009311650183488554092114078904453639201644962107386054357278929695721032439673780262826483080858839722544323770044437711413562658883046814300397093050287767092836321591294049115438486106121578210162690108374100819277179087380903439824984297799714978547514687312820260387618783741562093173392353729353433362119636829408086793707507360039984822644187729033735875466636715026391248855927587607947318594554621356849317387583100819674055892144852105614571748422395755567600760928872181116312418391801918841436973221254628343813895981860972269962167473223241757049033557095920463082090255431405853114756026565764107385094581128879114989318511959712977885571830736940851190512156229650427927959919406493271469856904708898782487789768483180609015321968621247808448729840765665530882638519818633855746940619696102454414657110397025171294670426327647113582053969247962840348498503831837808260212678885153157604089359352931184774606866944403651565967843501671200803123177642630367687174500879499832292707519462397044590001280552288442527311193029408329987933124361828513524564597380302365311263780763819061728954296604160151183761284828134551691671699096564833230076779091595168467693587973109769928857340033046326402187684581028689903153749326277694729790120156351227202263927396077228852568071199183180984715909662683170155906913783318610201404117451846497294010349482357044128075104272218760036384659889083434863656213720653766209130994060041871516678926280604748965802005163347676844085258141548015059057100676310957317860832157276768832662016923221078057077651880397673381372014802413410715096909333643188561801443788996690390514884522864065057561370660464575802675965446859015795807243684513843724619413449431230107414821911111029982628265075415904272605051140644337145042483346514954517988967346303507575599992882506556295865925161041399280397475876345888138035031942470239105271173915191669969719971388546878478397358480931123788955703433884459202688279674557390865113121153008062084993392889021894896939822118759851643184644796877297021763045336113491579981952228394465507641950138938119305821651064825061410657461857303915876083018638622337908453426318572569007311264444280953855715073489265439777807352676149345186935446722609118703174683156066207096799090607724334184063515343470505714741669640193697731152264370579342964913734408858500570984512462447691120130659097524018750394917724328346902576540400453335973779844434638912778869859546447614900840952178921525498498439182316766617644567247351517874898488711376537850281845476387475805565001909877753695797292957879469144468607416867751310300596275415739917578308682123086490861709357000644987563631785264829370758318462589262204469455378287638480802217562524151405621297611167375524559140840299348659467241205081916847604214098103984458252423549697575170343833285720787514269856016984271399854498874235051141341821531761868933635306109766936676199970333702317888460266225605603907767411006706631162868203340477309181254989698223963042214044888935850863589256505248157029317431612853578960663604309656640784367849804410537239469321631620137306843526061987579911155930529109657169775491040626577317275627755736910409965744651588231146785655742229767832215370349957496458670571781260570396711853943102256109955710741383198366230412991786588801814173099984603546568881487061454278172213750737201872001431979815587443809498032641394982057840215837175822843305979731387448544666917312894105006935296690261126000410179400917883114201288631663092746286001508451376869628074820746513626068303947564434606860910001141028303376727670211633198059177358749813338913267537561033982317665968782995250624261414412866294900498671108471928932760215818367791846021955523508233665326611124478018893653061009606096791919650247814425255546239986120885485370880298322315648149409006270951306937122721180670541073870235168192658242443901568987078036305236874408604814533201833414520541211908328632666299457900411803212418255033748854330190508074482369510897961552527646394745316493443605118143710419716252252018558000465565673549331250620186158874149890181886870942669601861011509900905879015941871075652210044258182884088927344106245635738669358536225023273374794702822520211685514010151435474621728405976328527921048703971177346866620757734690024611500269403734196978785193515159744078718836278368968936108631080148027909606350345093153621963809432174517801069426247186881971443556063192763475408672509289338417709544609155203103825371251554066798604332014776786248016539968651276823494721144882230744746110997328348562508075702725691718671835509089522255786145002059380926641772632443510086673862580350834081774586110338582872302111671466019696634093686450293519644229628423910954005481145530944904622957332581225976097542121372095205689666738954871385439136044124088502792831014514886858606428143867431098863886703576995676608456934245959219517173022130893332759665432824606392356333571451475273339288997071351394704534351290065122704831342751369671138149110287340666850190900217736489289269728057153549151517791243911100168071526702567077445644774201080248710666488923972613910056427999656211809141486914990852612387042951366755515299102146199428139279957266514541602676678139424186926214903456125974612367589469670558523973808078268752959293669410055500999093617928440545046962953624462979617627646277533335230991510411119760097322865665874258079897852872410137463149825227437298565471823900275365744569543303028684865324373926404676094838776717845572797208804911877070780600007510285806382967442003031643634052505831926389198463657013009356986738789970842892302003566278080472208587129177900781943546818325609722899648159298208226730049838283510222428229698753681775623815911165030685684510483604423665296084450018052957904477991812143770038968803422932607984929864553543555455230188809025993231718431280470607894467630483215567538603750492062828059694123504706654805798814893262511541953232644223301429725329358957316720340179085964574037769346748890101202779969847634130640093870225374680091055894058343420791213137324637830388010287293056884809882620013781209499692083676999714798657414227085236716696614938271033678396394568673200700616999633250839445290121045805727178164524963345701961777018336423656686455203748685740996518182384692901912533003451259727347594268835744005893290657280264757744308018318728256634070441952893899625161392045153379416351857112848024725191097376442284559799198541700310721315924730702790067100921788590895801395154331423729383419391778689585955791639961166844811872416827738622143978884851961121918196111824278952111463936149016605420600375250149166718940139937616362668489830707089414633576161743510552719996360655562593213936558553390678500270696027418997403651260603881208171288786148975844373110367795045808999326553051688699805791725041277566916595026072876100347700079358584626659963082107689069973838270732570963112850004492155932799595918935892683132305353592816975024751577669065383641382135420038143839763232819705487106344843792085643422080728300798796620561498681466831329651162146752082782641000437519959974376271829890315729132196858805693766432513592314774797993402697549720952301742125555546291908102620646016892867865921247946074969126981988964333968247310040313803802983344196122391140464947650740187902495549094661666720424798261872503978008688570177614301248772310374478355369008416942279861835952870399499135961148542937380627330164116740989138588938494036822069990410665177437903394110574187789152886969066104228042863038253477800110527507669756442708532980338723207228370560220546986499553543860550582120412286589416486614283987534966932137773135463861882290309062977256539230837492975294282495029493397391411340805493291824128974501293340895219806977779094019460950151199183933984410439645743114116112922943156223123073621144060117257396331623472752831191348742555338635251904907573086934754858540915823020491471434591725393566937754501573148132797434627647373712839135646437206641854905511873155589042222421037994898774630855950648643245500438073080212242561505381209485787224096452330309302702221368595071092555755865167413823038730612630049514788862044830545327299539298484870399394673176899942599610102365295608653615075157838451563150645287959415959101572112942713028582708362302709523788460939635742862919277751139367959595139275064880614987123142464638097296193056973273467605885143302646163819746289740723184390906977945486506335574544375360001157117051581071579494831701107170908340386531471893977233577615321482221945979774999825332306776705173701943820652453919666051760123863113296594853852123648542141113988537927512299705861530151998229151205045831877935946890025858107993241108553504433706930479591975945846253023679010267632697976541917747983952173397506562236287955315489353228212461765030815619908498903231821451690543468022384470323854189362651948421146053719782637773902823757597670329697153208549633774788158710270002687985482743889001275514436201138955146644821412919973112966821810457874330202411770138793287235573837303568506006268898764788404185072597999920908265383833919479342781034684679649170528784422486420056764991077339244031939796378488795702384910396340037995202748607494875433467016876555624024068545437411885194409048458404554732708847669798556661141778349961165428247088588028468489598548567674962171204395921253695290246790784811171913254654840618469968479924533433215092375142675777373218433995693703589957234672198713502043972676817818318483193990143620089914383502152176264278472754985664738027084934050361278928657893706092345710004056071956062962634732009748303769325186586093016641596836117711669064011831584087728442236201392403425462971568661072467013282578914375929840163012107502271656278146417050944211929513402831759073165243800133796847908258838676261681024796754485813095178970646923982795845115110205863513243682539665763572316432957108318316048081815395754019898667838085152178259799150143958280699983902667629891364568895128918603468620880785919660055104710886918142935165655332751531819465392320912351473099643521661441144066903661549819266165245106791690063371368319802053583484613796784318833495204022019055325349168481260396975103925194619814535766073658225227122122168617141370892376617587899260351049134673284778313380315502628170804040089325897071145687866661902258891999052017315394164237354456584866934131486877650108156546169352826348257565984103640037512614767504525067638119126390837921079679727231686151398096905581567171397727008625047807777698684585835332656052332426604526320350291637878544357502826995736439620130510392106860560824698031882793717990623267593140432072769811485224272716281683567563236063618975380978875858284217093377924064615669277974417355806915854777581641899221648364057446890606972273031946301353192622084538938827330330153403034810602281652658721091170411954793991592358340150822757345769989259508049260711085283636401102689098775064189148546692396181735667775310372138573444142155153917849878655196990316771087429361474146843726419586167290758645693639618262112550384420224964884801430812842312884532672283809975815265101312393137608391162010990343973581250190865166359275231109541594826130748239540692214932031863420091287328824396575033405485465417037379977670180760676407816071837885564513127850831553101277919129862530388928534789584807604552486632658938588795520396998528482906617119933122874550798041814906899877140398017067701486080683540152785930510006315905720176464515086250889699377292249171547418281286464763537233409649419956675510408042287003930009440771306602938983140004624323326723190796128763357396510530209692562353321396289226347726129096997795663744504027411704126921345893941804686249149193093010979350433510219787779275436403153404186538896758341609250671126124832156930770540576727808241783784206433376170404692259741540012571191603133018389642918759247367324292670118338013119793448443404272868431514508587633244956925660637726580032112540446416224173747014084346623365887775885151076586942836743525929038150553749789279661547667195306386566275724428842399435234363215990398745630974703634394816138564864836687318826548820399116867909045693060307727339432809552562165843901705744085976050216829081562177041518504056944818849211170198574219792570870191906164707339627169093656192068489540094384629528799782089055570340407034167770669000580736767242178589528460736163110985890948541417129958876217730978177461529404532380337346017425527181829251413478391818146550103959290625610923572828006140921075693502312544712802860825700437133478833073662896195055144799680456905739016936208284949064444918970037544005818889370814649857901510422237252203604012766350722492319761299641266959858644777571558191722972952788451411719556138993067005843797676155017471746828565566170095281915425910565758185911595596032613758733691230936868462108375213682992140976836338809188282798351101579694493364214175011974794168836060519404504065206132937681936746876664613333771366072506501848525498583328376115393102722129068594451865015377601120491694080673069821847319801710480673480887729857092392806453180309933919858890551253006485172776681329330572386245573553735092462345044683173095637413861527160468412331057454294939982449631987817351883514890092068924179834884853242283424248520542118400964839933202025450429075986318304138513409232609484384854263364303088101343256170526380098039793406906286292059237087963541798031982814718154473811981817293150129918687487477373682942896701371204226082750920300531325492708764230781608677121794930279620446279310433596895674814637119760317428582129590175083984551022318022752726955841140782276344987822036676574066569449179879891918527778402844174533824024574796081650064347172210092496238119839956493150282167723621803148734923347992242364809609391426701130944410811424705435832949208695438571035819697981931763312324815020796724295919723641631307110349758421963907356136533033658462152715135918695178945550597435058695041112471077722854250408192726021714280702404800216310557064735290545843916825020739743920428164783940284885725731048504853531982831231079395796732385952849781089220240931766543048851436042664679710444789355854193496105075597258891538878082506175447861628703623573963545870990594333029694783984546081453627884493642242455925071887954448809034153926237605626730048983076586374271846170441796610881325927837537944573264160153961348107375114206225163026050621475540762683051700911631130095118276711206818939343203187119066372957857948968998827723344103096692043175774557709663377237885496487412214849337769898883188996912735618060852778012702757054806083850599486330232774862965012378194937938166088947413465431890740732639024155074857927587071149077571800813372285630587832326047730592514980868755845144214799952068055683827153469587626363508419879686230229446483011834802000968662601980613244295337280604325456443271869661119948145237786528673512510267967026333723946312672113370439045344132150262171729860158853588238830766486166871060728400608020762948504126947054121871107625516605246431131098240155086943200547257558133954261061928815951709630097269373827758046959046181289666197985904607685447034406780474397463171757131354651707575733326428471389923343658345204512325458504548178994030020855704642968101198028182445775941715728472946748360970373811302614776395146506664628267404638240828771534926887814230790400346288379295027997156067692984370404741537935349608576760099663965888761070995038965551940044746068525816917540635185827052623540763641359405361998214357756933978172547806590149384358068026321074564846504571606105053486472978768954055257640266397085751626090711840623899484434514003484293890678091338025453555225368816626955935386727486784491302975462001660937954417722594066355168301126040638502706487997920892034944053461129711166043010619493921834781444972464996852970690893221864959731565164358988411062977708397629308938807418317579110712572980248667920639417965475864199992578896384834473075087125831722674540741236043357760555868948129324392854555870191094199671414790104504527631186519304173507054415522055042669491019295447278820232056576100271034899001703456835673776677392965090327545889160380875377857668324119270730693592702158628592474659727679024894449420060980724606648780935513068533871873338614955697176957596706677462766035057995673219496132648483590172695265524410943669291256809060220598559465480296694574156737447263590486511731407081247584092726078823896823158380726419517724389993642749324112522459536775456932503659443713124641530089511217339957209963792998861303006680538340727785304134752857932040789340005120844493158478408527204824551955118067413145151506848169034126697065124189482130175293675231719968358937279976347514468077973274725366176522759786158318181575732102411578249777324034357266521450286614689280504705700894509886804954100905456806442514651900946784996620247440823928038073940080071415464481630133695771897327525178043267576188851595397770802289856090570962271666980015794504166996938642658297192704077836687196944180336142470988253525962828972625783712394267670111659563174315558580551234202508755885920070302305118270644946470464139367385848933547116638557651833832578716493307302481110609148710807929951256978101305650891164055060726980366503915835765124274171445736348658213492907193116137230492392927727010758370540880285707099128049381095810609399935725914125637690180341639341514436861385091192486405220805806519856445114531953281326570934774718085777473086841998769772706968661534695667705227070703092263244514712426435937905294718627094156076404606063654279156000026571783519209685535090353919184134986298619065113609140911626768841789426296249776044841423685227897466404754647767737776601556494612478045140721357786856164416988184774453038475135562311577672238280410703454284963410893427685814461521711598896918233438133051437917828629380927678939252215547803479665207904726919624347836887196934512656753834861926097831535705339181143086758264908971551317838856198591933479951129514628869687757779261505217329128655180161050363585140171313781533929015510042362385291300657129668008452071854923355515872282836321492003680649381549199242396532541670188172302341426440344311414074639691884899204730977508032093407864637093418484233194338078594136863455883837715393812425524320248745666026392683216681747839423719338113954490395226762460840310522240748661522005660888642843387591393466857188450763496835254671052105120729344688706148875806706419867183421153466319973434439236499328405544581883144962888330569706234577487358986203671846340372210106465389489930661062824917101442116067961770875298356005360563645940183168298132372343675948017142507434652449401509957220902067370224940435333649087354230047070344778598938897020656624243049203350120457373045167601343534807507144186137106744511770620121620265775353988098430564300564848226021193253215061863352494679018820218730658872437325926715641021921556563980025457591891496246041631929476146152559263505920219957365131241396664836270276751347487756911383735869865080858051193844608824910685270676391865873137333483634956147684405865819292702317445767475407773345399326717843439328424066524178323320381511257842877077975276973018079954443010893954996943038261072383482365825312163727718928099228498734558801313808937021345606909647834997371047401381827376407633288208199379826290905998572204973880107191103063899060735539002370523559711170611128455137806211926375783729230353185294748852727646575986573105385071818074248589466377800240778719342822562985232498093684977958816236359764642877805790169398072461617099646905814812326135413390576999648946289614615986182900165273398567652693667162243739556802602859677085002149635007346485320106469795198633929737176436965739824461878843061367391150375141596395101856141448820463440163606577622651298222822371136574168377112120332297096821500560200421136456854916032945606166527789627903940028423758639611838259829310295060956591860375816303379596298918393715424252415449756826881016271270817647146869861908675362614872249920740254780305232705884187001759945621503302544502357133037183421406078374277817034927983373304480567242531598027110743617689460925009162032472815237853862398615105924448654961699346374415343259526688058979476243015358441548820467786330093307400070026878694673351639315578076409776513357571357229395914559211579017324929344596250573085001616805101349034905854785942488479315709399575900906079557535020719489700322507036382347320635024845222366644624201591182177933861438265605990963013948375821302838198812716318033526595517251427154810282122138949492541168527902622030252924469122893957711718606828498676633898556860895894024943875215257826961450371752560755510524230924592805531665778864975741546541929493694248319223441694991498835611376030726689443279499404652393994264431423838212797456300697008602905101245030193319884332773780606452909750468145513902159994380204531853235750519274450922121936379425960124086026270340708587388468968419786857232162518179794003834419418879505735248201483625315797857859245875338168926462213214116376455847527169663080014074538227383496021163597485584016158482202368511226438714909649371492082256058011745546303879972307051820969258351056828465741759657049267091895708459267457809318703703897021910742382344648014937701153152455210710648801465261153617508042696839172655848234745365637871191088248989071147732042686982557473818945612378095039754326851029195098864163624536174630533649981429229534036405764418382761566028229568936669129874541848310543593495205106511764188126518869998455985845022331711872367039283646816593823233919267678909568504903088818268356956007837262547067008575048236017981883522827198301122865828680349030801268391339463838509690201369068052070121076457234150636380994445263993724928668578420374844882149823808048145702573286176402805331679666622904733002771140423450924054667690572033844301017813752889007079735241050529402900423724865190552594579876369065822464943489319619247198614268660175545585219115725637796815469325847293105157957228576848978093047161697675977535022484709810354940470185567211606324902023084624451061271234451502017473209895794642898185266844474114162139723074209136646767468573895222967727676752479060759512274455986243071078806767370811124644008528804721447457369965803927720434706710021756775138717974263745532700145828091191914445201645228387885137707066709254185082078810259325466873843430903617840927501637041646243518047886038116780306586298885128710671483253141883441898877880267386534916962947262154696251895714110119952474736545229707444315006856429002109284288287604123371846355646547703862704094128746005894111033431083242462928543281433124367298332909031455263191812963465039491469288323527004276531288317460388824156971577056607860501668668975024460048863312692384887168691220299661366875169322130672098417422478176912971805267078032012114082378195629893930876453462668407127654618397349936115794133984726937506263648004200275228796011991117675297720383525101997427380601879088158216038311721227493581259370344882720818311371455728713400024250606005222394563112184893691147001667976426356871771195273836349501166551223423239537565829298557943714498437941110230517344798999841157186746196406032460138586746733198717795747399054681502358633250842490729150336462097157962179505350926721534853641264850065770658495498565197198177067365969909096181576257805828797782213209276669777441460516821632466300785678982898320021293362140086273576478149300433610506463794995666813030451692901657343060511220635779509172370411697236610887367653303804461173309337722693090141740611096889371452394719347416682613316380911299440946975602722263028610418234820216814752938247558878896869260600716401362048173879987327204008526993909038755425937496346805277130563134489460956823027370346970209790389904462359284977046573824486033931932215970768007710409301528924160675975759686860717930517312272000974359938196172757562958281103739453489361207281332977133837750581154462582919425233928058449045030721376765132043931956900748774097980885052103260763816293239363424560636093108646984158360405900830514453880280983828472423945530713051300350322968823710679708188613147350739380878336373289656408011892470951507649759800682742684384062172590438634440253624580480690527484537578547339045560049098790674305885124886698503198613812026934823995935372244548241414738600372813108290271855558908092295906830626540335838395720813007853697888221345640567689347283907867966822054453661836250538219206587825567027835465451713374382175627747354111881050629252779824088875945336803606463436564715322058635799348953262040342668936860347915780092238432950485341630183571155046968582064052456608269173096720014839202673655492756109916143044180115439990344753223027267721892503818917863662630824473577883965580246694239804857179745216315577441096921349602424846282691657328798140416148963181936215136516055110486985826914958321495656850006657317882543368067354911021618266328212334597756748338458302227338452222749347409112250413324123718723672840306562891742346639017594824081269273548530211270328147371796852899770429128559707177800524870647006238255316352019741428071763253062808332056549782537714601866313491081899305435176892839840894042795406708654541477931052483507044924046820314298133344381497111175163857730357019447221192171665411505367663319486705499841198477131418359513462874189251639829843157366517322654002256740291708825051163470104222738131169644246222282684344310843309130538849804913944945495195909507119076912196664533597211063820452127931410126211763285221196938238745508979849242882589808069403367786456893792654921065987930507663333116154781908978241177312893273647584695788062054354880234067775218463314574028396075502331845482858478414395829497619975323729187850529100628594708673964078783341397188009146873182445822833088490957354831895674851172232200211662326340766008039841402101121517280524440925472553790250762608324138715398112783516211220633897773705654967453143669244214184182589624595807851356732391407928162757748568151730780565661060704210649016777620180451698741762980532482835964806126317585769100237911833975613590950093952143364511438505714805810208064862136722294101318422860363227433718111398165858352929742318475740297479369862319486318630290246836229760679519954536174896033773912778877222994136561958212176655607501596150853020714559917755519336809757419859932782278799223611261921686247172660429910090859780457283582103375847826909413507909530773305519943985508480822889513353077081197332590121324547774742197439437857680195681707351698310839598933274508223367751965525471322973339443273959470833071813720970709692199849780139147126617190018478405377893162382006838322672093083963162584822800148431983347533059291132872241415414893601729295426827933097630677349580144184565583293957169591109103814094639919592868963278636759727835653927517875987193004288140929237722496257970384309163434875644559660600963137724408745988527788694305608057286253720483787121582835391011319724644694004557651128063581866298720173701500318161108571463334044277924304722687069038290663709787254782482057634435684167618447813919930552515217962173836439811713189838786295199303561562546861071078462483966110689922164958565946056844657634425029747903912597180369943557565513388506720776301438854452438773918446747787582250022207035761382960647474857077142998595727033946264008801636647805392364051380732321641877643278962548443912177691923780635937117908326164329631730988484447172994813055213725855947558185164617530698111855601451614118741176236431731620245442156661191948974592609993758036563109724009286976620790315889592768019244793641128733068367643567057709447623576456605120802824804038029076401264892849575386113205039951859449461533558967524184255593655493037745193022824239536778467285106807443061501533834325140241048981876532895248120828717252066654477240259973969885513777670546093265588320637300412485666070326809010120603285932528051812744885358390761727165104237654723459869316853149648973268632045950947839307893671483784867519212036152394230516520452248510662113965763291759222353662385604557349976574213307494298029959144707941633443355066539449973741833924301010288330475743369836768689666241248741730214563944186308977570069648365148780075942740973287038751404691648916225006924625612740965665550550495183971606195671287555048034790760868238027681571912340079240216601407872209555263929192120842497793260380349697075494099180159314748623731458483534132181878348270351487726485513455669644174936473344356594297275383654069442836746527283716631268349549963342072309112432030778422685184867052962169417004484652894810677282839685764072974434673855004151483465267760763110409988496183401087066585130491763556662598968857501118565379733422607946035570157293282192841631216691436323965071131305846000909877981520497814289314334911964023154305771936499503466986101942912895657116563924256261336240518805591811728960270997458722296184266635549053463244349124391484351145930552208010778237137757483874903360048933109524289953953432924534383180167488986416702135511406224144926724886981069715054492747282579551066803212630449311739239443413759083901160569265055309245399922506634740420779632235127660698031955154761973633687194869285980997783009939632560417445947634111612695578137587039181251388579316337441289649430704048300330986098432287247817553142087243757225218158764521051856972254383461314654115011173516250555722292510483512729655528639202293463314839233805027267788797367678068037636144112205464769003168767783563836811488140650198839170249057841348436754641659298318416546968256452697550970916457410343158762606497658610828144417909922676588850793918441168509812800230415618034928359604170536594589643350310661211857478381907478616117160332879771301243115843413572564506083367242260480257144680430238661246784740523659059218320464689179386704328950726384349587506354699461648525690616526197201662502201418594349053667779325251049367858918750738101705863433620939636430695532826649551101098114153065396107547552737113669909932427122823570589160563289451880045571966153917671243396907220851308179546663749504898649411009240656125417631424172595828431310562476433480421372558993331903229446088971263902303440898619135166800683381406657749085121838515151611635060523700070263151150886061850124925040533302578102640628404293871116285530662391560947378107481627310266615689196262679288076259079622524580184448419993802159730313886823110100309546863836718258658709520804692031163792296494674953101263895793379215634435866145548857071512866093478636610124994611798358760192688578485453621277099723603864085345057318859277264496140790998142585989564586902623572704119802790986086301959439478216595404758352966993751269364930577994711577361828952500120939805984828382026209688573991627424273852073416292409362019277205727070558668423813422158455392753993385236607255759021110978547643770716050585811037646270721364518161434022767844750267098951565250232236951459940506412030077272382740766740560320732438875303732256764821560883421758966171263783919525714220665415793814577473250207851888073168824021934812566509285182798471127491006886685250387966570580009986648206356921327715254589642397172108671644022799051883509041642052436266212144299350360894291563964017062261523252440079570423970909770447738870814810565336495925985581220279367039727349427926396538905960511307555118895976356829754862131986649481457698403919489371308888507391608120305381746166322160367085378189096684467565507058232159222034828088935688746029052619583687186293742972607840036736910584083924183840090482894286790373150757241224611632374447227154664966079105323288414129301574118178908013298849531291359838846993184351718377300141444758497607787793158192545618203114793011687338452746521468379514122780501144514701179030756776246636884021842885618941875176799324047035198624387312502078757690427293650442255136776749123832527369165456900999528530058534623391825522307372766140025705679627937771257382742766994751794640677349237629926452785997595994339705948566927147938183922254401676648028556763441579613379651092167999308358839726879808742647887395916042625618286990303081144257061073727661562253965181666485577708682410067205294181283418686835111887337917945840826785879988708235614761253813406885585470112959206394790068425072258617286486249304223335129262854823368759233122913311891480868733959084357115624711134808943365088689765035670210846333374954404540913909056957225834134448811734215454178842417456990904998247124880154391746648971920659900083653509780099074446706541312160413543914180395450506983618828218096394399395132135267074136460226342757754864881389909907919831319455268550911774636790137198842519531433096387647148705159775455545510349651658164037779379527245720791724558892878891993095244177926771929999171335776355216700114183387286477603165662671311579483691665876051641668340398682043555587394453428619118124484179371054951267590301785807726054570465597526765926881444463781121143844231915007357685563945008229081370234387349503788585462239957318384305496080854701986066034870259625278833520759294666885149820589884546884795509619701131413193590809678267742222669469793162495253046266526951596252392080231408043111055087202496059294713809534829660481213706424904399067427572338778746189626834455644180436425798425455099400651043485698998255854085431835562516112180679649847369164782872808281007771828554706104709921282201929153274294777055804192243675428334053399569721739513451629255285405683561062004323041962238333478533534306061342667751513974277049785016435104696793691527605064886025713297748541945987676455041226244254595314167707394188604503797861575082407803175300135600168592524068975571207647786373949837072020306258104292065674307960837186734864352593648092193769908765471318279948677014237195783296823493227629852588087098843840942893734787592382698867357609491331110520804902503200623196503312961486576353440628782658939572654652988264213604094507672337030271615188666003012334041830022428124567970370167269839794366157974758606854129405004382454511094785733673330953045492083224153603277083860390309121636877622203088610370567440116755397510399269232619673085397630768315785252551197442985444210376373311597555965845679833730963868429848749222869396804526828016890939468789396467285778058718980249715711339482022827010775300877068557037206527011351225829788972342988958991719321182218680142794496952022120066489725361240319764166668350111640070551703324496596549290620767397163927817363531383458800641289734963722835278081803004634318516145081231485541122674883471611285941677696788517360751745078826354350075760380031903234914345918590477970849984505873799426516045267951239697396156457958376273073592353614602649968331541471474464352442506831192645786729126256733988083114814148720227970639248026756664810454464892378954122338399431715615210108351856904015041739474853495102482507800576910699199340383977073045873139083791291853883328764211268498642724044818159263670211004186665615190169411768178981278982687173027553418617212568333761175150327476126786626209518900979394349475578342869361134055259812735513174094115927056636949847314910399846988049795566794279279786908596835853831853482853103880980412606976950021112417273438476612503545623764586135908167499023570904646425845464871669542264381851483444463738918556873026434741258597994390500268068798339794548974254878418156537058608821335558115086496064565086882282202530297951512357589517109553854460469535694237822212869978508341783726918967161527486113450045021710604902617200419872023038692302080795988478647430413957418164911726042034602040849316581834774583449451722025515879995286590957401368085608893742745512955142170520368572408965540587934075728875820066513125702810441536877604086720303194613590844584311712246765644595919717081963524821071811898134318410555081604379713012504907948612998124122106932640970375925360030018117647576071637100282701498243054975609409962014597162920001617130696348929707286246929154885148757078559391232113164751442153652641732731377526951033818196637856761057124809924515013503318288306397165342827825341467576014865696458318861871189425006643647409397061043081200139247200528896243557774882899210599069910637948541138038560254544008224939827459560857716289365623009875088411516428749136267245798954481173199880281795003524629929301221204037629551165655652977183337693424317005638819896138222768574963517200820772831608886101621553547058219662658734588749707733064628677825809753789623088247934780029335949291941419527987686986791665574315622900801567788905706137712247173526726064099424174770722793204869482256898029278927423531035798526507481024847963586410693145945885464739982669472283430151401174228094491060326876630328143234669937573241455652818646441706793135605390507698326454298280856547103007741463485247573299502643650212002338755157637731947422523052436394531354366127313592812232667410198629136240103352514140614594853994759332980315939632630424737394354532593258244738271269564941673470017315836266529966863674699945065573901765867247071364117459985707697148847529263128814687200115452525896206230022204522429224589427695970455279990180725695329400395355714391862058802898673059686672745118625604546810521258431728290745284175630676143320789124974970345228738232801301269192870434569539296541404046072702643920672960353898761534030942546792617096010273803515766950564067846355544418599315844081604742006354561872276130819427229972218568157734204700248263248966895247573833136455011286616471949535292115002583175441412957804391898951569406342749047614208519743613131965548784389807303148455520206328201385242567497021655204684477952284976667494679098449679407708055225963555057625311130794017531994780772481577154908892082262955577018460531684728295030145951852131332745893669422046905652766167327799734908376476645599201833320185010982345721202772490640236604611133939908884487425027391705835863606567079552681908111433134850207610360118396860322101854742957356569252003830518793449999411133936773733915567865429272814354068698685887189429325297630010144230372452864306045572285996072455490308015282191507582939884958670565369248647122010598682182148266848331515977539599256529971591421956367607605139104751601468338385375284495693338517815587127662071760939805312610938252222098200698138075136209864974922331716330210954149786516813535030618512450970525765764472929520470566087705244005894494016393001033962238540187076850080901590643908573455520485338634892531024006639028757377226250018282189147245265443190311531336058352572485637961588270214938968936870852470587184057785087117509855843063945126457380165428493236427053134194893092889817214794315261489282119531284023469130415964984831300083909160835332158515323767537622988829043181664811002108495666272192633539521608900595238924494644694584654451948710802539163169169983775996018301326346710327493634168326862988517550942990924920267171760657463959341909070353464836945650829153169537784246158093076734391774212307351732860337881450032289577061292821197940721388256810708146265007607138283337475630771383925613282177006434085944860937464991975773257200662823529901825812859184161205413579209590298708114951199807990854991067819374171110743266503945074086372432929996309077487796971596366703698770168989132926303517555592903977319746605762243292208969035853553998148824941731669556485877307981979463888322656358247297092983293193348649869718389281341753825089441713535445450771274824366497497817284062702535856037555989140552577675029208885360753007374892694241784738814924425025297049967050476494339177480487454613964147479193917662353916133585442712384779873983460801139024699094011760231727969844790119301343543164057500277257171619204912951320230574232869120834170118195210378553701372396623970772830170257256017179622442662601420811487452487912828885366947594273820366640694843886957085288650473834943186007395254999375546824484444966169715264776846382628695258662024056382495846341341581112277677288396224656106682135241444396118209192346102988668477110853054227503742036245155832431020890865155771185908381088621844461031600365961298040804871492329164916198268019607393963867651820409160128260897579398486910733436933385769223680334269312947896111792222307964023159700073587581934990393226060189031453153872616811709703903047341585735700152405453155142600555085878146038671154635416707458544215156864309106464868404144358216326767364552518202459458090349478156366506450133725120479110481759937808009825608233702898782203528122994624517552640903619291284473508142097091276976904119658842289024599775839726086160851014096665074394699199220101124181032457671697286544810891239724949789068359056616898781581402154894334974304216042446741701226419799331645827809368635049372885314349651494426868910738337137794687778032840705125604159619753913188874461671517462759197192233856714267673647392706273100819783293869479263303424759581703352531234140330729354119135706567006970368144036376574362529396579201005392737978861878004895839689736523333909449537382972826661231489699693683120522212646642883872420092286853780667780427857424181833006131590061927696433024847577935613980997511935906824831312244853203854120349743971911160513469805722249187581877131320149457993334942492870121392930769340842233047587441643769057280728181252409645247988705377970542578538740352375644114537222943144327830966854576903136355069406814900609226864848626784090908248509887059170185886228608183989373538289055579356059095939972767898901769932433766814015769499323692343758583374273404509587122434240079594697016278854344559275527824344546923781726582020418902364541365419808199556627255538247448498636616102447966567401878250104664749428814745807135084082184886814292332840043703300937811230864070393564790509375482582086238860091983145935652994282078988798751897469727558815508840846661988607218373501454034014120781075244001186883583696053946730161604376054623258179834678824963541187333055938522978905561389396929617911693065378112751350495770853683405097003576122598688632857310071815262766461106505953418696026781212614206638530182275570678006050693141110927176047210653421029400870247563904676452103165621744566240569181608461166171113639903076120055446702703060661337131983257669807847995066015348454635954786907655082905729861029443221563245682582944503397625697665797571734796871977945625119881603336166224704702937636685719379327664802579342105448409502673282514086538160133418205280292780837113473948452838704141985256656406558680578714956528595152832260646819834014345741087550558189076964377952512883191029230297372039704656387308140242075035081254869204256404579759693634019212999343696356862850453776384186744838152049991932740852732211538899021477175732560906722092301154165887250452474026860796566206477279105996655720801675064390507469279270707559095855064011120692397495303833098319961815719449120088670924390430008576434099184871089788822745934211151878743334760061056207689439923423980413705963237154515953266609681956714595144897011377259496281386952855692956685237708719565868246144816604125896164487862034835961776880127471351317541525671340474399624427559725394783687747658589326020498447962789733153663082856529956335415113930364766330788544594312037300303356471961909812485328211424671252069107483694673312162716462341173386338130111812504025199279452028397300004367180080803320782242406891090623716131056720536340871715701133428947278702097884445207213899852981020809147704841776518603438927747906316589749689559537353401072007429175973415273982221395669817810971692918528777440932108318975325092192051790312233614035586465378228541898578914161444002561222466937712546097847723517067599993700734896258620363177184730016357279235708487756140579183404589284768615996339868351631745488408752853647965965263768226387635472809195963973755945914604276074980102672219659888618534668403523521150794453286944735335875673132547973545757723040027864425432549577479809133998005805627285147468578135655080133782569166887785410253516681535163749838172746466666032863848317626584381370866517349795491476535244184290618150189159807013694689765351201797944663962986978946713820963156629224568279215710424029710726787357487486131454716688882162721322014004802938049981817658899775241199614130157591187860380542312963855942219622810660774908959974128918725333245512390803210803029725501277793337611441914822290421056585037454019127027896316264395863551477436218175948226516346021323812159842729350900736648710827441400417874843507899759081389532787811936836759868657405698236711828504425217764830826640572418828218327810077637644337675057303120067289642408830815955885504289098061861147078193741774426151342289803653666490749158333326275296284546945069589202212913804811943218551881273303469054108280282959685840389291395172960736331047899519926575002813725332995353711739411781844112878264689594767197035534588280023038272327517702935527505995315004359915659583224675940331717555199981893726013510836785254706377542409646181786197287234858226029313695181595615548704832203784977622102960705815679134588704530911434387638497766234622711897759709023718406109398399645569979099970422272206242304543325423321027680637410120561029654633242975478249647969991989895482206770633190273361904446847435279147902490188441039652978334401134439984313337966640090177315605482426197443416091059385903647651885747876458070293606946514816705592730097944826689838085319817075220406978703381339331258846138984173804594973141888686529074438111291924458012723786305054570521358158296844856223776774155575212595949238098011521382447717246269204611268870432105900143704367497789793394231063020139962946455443482384400050299262581724631165978410567504857902187846450256048724032803050369752638593354854229310853048183510131875382654695802283802397627075812077821778203756271632422648444244294635392119722679736908701198961512984731168508644087264988706991150847853821215379603566291441289998838277699792649976092249602123125866059870388337002515582360469156576534494246068891612309837781238061116504596195785452197638499284946841576279195497478140155784888032178200505529366612422472609173999861636648988172016983821784388389358849966109114542235999631591553195276216463363427121058476984861441751492825288572867123308594579951368254311053025764151175304055305863829754596961271743791314398562484870964623288622547693292509017300031349890761225434174007248205854291219061597598830210394744947415111733429626486197001284762296951490245995670742152612027290408183498679211586681802427672674129978890890403843078411248565917274728922598491960728992905574412393063276069367500970896186259908339985287375153704903598635128166106693643254472472761980380174719102863473690559101169052530006823821685261976043681214254481390579196386312828219800452419623249186386414179488942722971926609106446498820373247535980625132073149344969230789202997246062106194476109691455613418357940551677261166395214318595908904457162591959901937506524285078175681668883040395134598833974373816294435898831810348667832665531477992790681222393220926959846769977695122208712285083023546051112636406802161738438259534815895940881408586537264954658794065132536260707227717989549473242384605427560376920097269246795292173569447498826793190535826779861585151618512534058331259711387628777632792373506896765311971068122124933826814695526489532443488201654458011399197865975913492229004745805263009777125211343762512350246987860060206670703545038497551651499457324010007752643715842395910154299537973982157917769749787588487958402413879074165699313555028484190329729584441408800363315033932388136243432739280170961950533842221462180278070360797344057660768347012199593325952200687869635251540104093261563263473539670059400283616461501721031209951202504667987215927545005621404291260369833259631720851462044319083107842644154792403025346149907503881209237674951427783350063282077927764262208805660975017455147684687360451070813715652506118073079949537753905510805246880911286308925380859069212903859729477110405375541106569024421967448029797949878012359911698180573205649653927552219094668172767371761277377476118839044915564837559332920274446336200518077588941723971957806679436656523495332511241887979591704535216606034933873973152639639268233539661893481083456790017733439877133519041657468123845470494069436230163167480924546767406904532026005477023960473885753180163715647744645874987863503378432664680040197369729169186418407676751024224541972244295907548905178798911743070815734012226519947081663626601717123987778704890207268882854096771487606707096124550249767357727114223764968431711093077147321612183609186749415731628232273963111885381277216615476203220497527637630113777730293559253975454991426052794233669945314591991973783753791920899202531351556616804062475450279674325936641001838242463055745786224894251275430527778223276482150865666661635082706134706728676487313439918020398045729082393397801895860081176657848163657227798018090149918250748361361297854435248514819573572602265948684187268094590226163465003143890660065792458193076540858314184947323417288980177152780500804477488256037950174691560256926186694808688036719787988448163020403816942660804387585790630204557107156315922132304998847057300764592509056885674334950131266518688987421205552079276263047599163221355683633374123204779192155889141983593288134995802231085712988422300661778900944687523831737482893209337097836837908719225236761978297798316163761950668455569069213676370209813416649114711226655233006429259274519420764207121479284972251285696488496640753219699404589302610957636168561862142473853530882765729969856246537816644042594106492677764731318632658667142062096282089557576150557928813107870149684712072979228614500154614354389727405786041848458318622903798462583627241254820351913521733248109508809386950272171233546866841402600108473704838783983516269375430175023129374483622940590596559791931590643378871223108264470573329801485735923042086139626937372569003352825390216633425538666790283606136954272379993854140417557130189288645339232948551521091372493778308330384697924766972175359323388984620753199203166865391523847302031530295614557766461265591754852526704505824798527620539601096689292161654412824161694728753001524343133186208643583946146429217256994614788379153794642989014041066366105409591109410679231010470761198960009004905391207347251813831007418971358146288697913965574666667562538542631849260991448907923557551820214765333272551865192887891205049491780993428048999683730178633674384409131413720380927528996727389336395418795103611211387125826118132234697034396110850316864947047058056232645107843922962442909836687041772039059411122432464831205849544154830849283471201447171568029180401048041463714165715239000667559826162421604260392007061629274695055225624325879488358604710991384542822448603594530252962696576566761529933686151749886362712655188149524500856831995656988438911657339657009471588624938351240095366609015913932984809639945578360503480042441116075693244266856015211584260968833585790995873169806706430241787887828103733085548897451187620316950130697960691650501723575643991490696718854117862082058481125081349191428478342759197326538745648260367841324673834965521741783551837616461596803952851086376283780467172232079279155838184069431761240445064294924765186615505348641886485586463170404066038021116726310594383471595296500790758969697903266844411131844784557288246553976297635059651934964127547309577559243598264756484067511958905719314372073983474828012962858357330968430697273598160050247928812560344965455801108548200018968009154176935911310807568584878391686534696936349592081030126101585991310829304901318344678099926502531983061063035726541591261437148289803973928013596404960745907757566073839510102207527534819640795140040323270442675373094661449890361580533304653279222882743707456964432045948123025148515916677717889357895447217465967215682008390697637308969007287090197774595685579944704953583357435018406358763758275205292650075343134752548872538030489909546905103345364136683309675624932582943727013493584283363266821448532926704860623579327895816044311094398801258652256312277460871069597431425197906790992964009085632003632100084283476672950070593593204951072949879330614579002965386522030890474878437608358863625726655531604462439385756491839738379140093477569193895813009178119603204938850941714298601176202821791818437546555167825357555571574920660756094926675081592890010109408811905494188281154236118525903127637306943608653537347227717821807036393540901134124115627326727622037726997455860671484549498678706671050334380247906070748459914402269566253584599656134980219551020262888717306900064956948940261510856979651916649781382305718221107606790099479488370107190606191916588080395911362185324653206377503708969719315256109098433751821626831302480611974602462622381513740603388982639929318079049224588007453129581748615966209598014089605445701735465276940975607469098613320523457134129462327466291874719841776085653606871520234339442881881984246940591176458104118136527211823298302841165892700939793192972561721245054399324049764612270195885397752906687159790402306798581463427084846453500058435047972244999330550089109163167536690352554648924518179766878955426513006000969331219256142200700547220598818153724591168178403390055587499629949758388728611886263535715828786311838793810960310865341400766375700971459538493765449072324441978724489094131368676495772259609019149935139272763283890969029319245933009231549103498265688471432576760987413882208322617570391019071140706628428943860394357920346311959183226298705432375500712954385972565283596295035423908425387831942715333447558974889170790767174994917665497792832353996631730294112196023934929332035200355048870134247945739862963564036708769337730007316609146297654067342262244158291190762384193707642461126889311691080804824720910712603750392584353147798057825325065386297439605465498801497338396388653093784180953210917484218936411794282086423621179287916011894941959670963598667079311279531841907030593156628026264749468723812036295696759942563818014303532205460661790878472040671358349930400828670278947793598358499633642742407716106699223227496287719568978439097369265930254705769300758386567795409957713183244350494955290044047557957917187397046707604954572039834455287625180619655134834420342936001896867255068460828963927595170562695709161301523707061031940718851647729133024995903667380597460274087501707422065785746711231707368187378508136836861917400622129223063558503990738217586644003555147521374887878767152767447264306079062117809241147148987190838356349371145646354630339848700030272107054465818132855272262904351655164272650747473567050185289848118866189348197897042393349910456915037932796036768382134867682659117523827049544185600303790899743835413060375292589118442926557307202952714270067946774754034538274947449346017502697102883896538523427484817432546382065056801981962612771313861594211654898670572849322966043416309632804032587256539416214257493651107243485685053747377135680038568766227116341442751368079233039563730896345704054038669566548139236865169503707282403211867648980129910092976369092500816225701358772630879534360407266576253280729782067622295524613273404104827861317415851288201005110965720596502900012777774398407254293950808682231527640584835533024830631277439360126071046640555933994221686499070392411024489246912716876496343621630616228796972171197145741918518674203999014835284021577771506686620220022955677410778339006466256721058029577753342281904818391537696612601841267292545847152809198404381280899035900433131179216854853997845366588193339235315180747433972575680713847925961120737395881509229153076693896253011641285067305195249161414943011573846022258272740933082327984742971982822149570245038010517125940517858146555160279119352713556667113281165980686074998951674339452343502892687864462125920877125026545488736114078025820457515061293624490401436206999767946415518308190122452801760085619563335142224365733116075042050113275154585630167332973644010532133860484644645766036658003212057665304096125040612140774992912479450221371844139494170031328586936607196773193294162112163641580416850013480078324479246033067598967757161490645848393266189503802905570731057628111820131804606321679548751397183482826517077244442380588523989226114944218297869677202662593235191516391237138359526256661901242860669351866078177131200323358514278682274946595717555272518691850909520344043935996251873402594351883969136827957796344827731053487153111411813494674612213481097470397401217330201887463210236838815230990666414149059795970364127945725405225786722443971974424639716484615663920236280148575659421008632445036591023663420391152654619514171813763813108302932410663302994575323038240132009304165360369859457484049352676651410304594469403612538812832093730461206089582782904361071304853085677414630521902634001368969036369218511484526279296826421155436863112569380689670017033446118797871189609506757444158172075005259304390308579734359007892061170400441406435869524529876487156938769166214064390990829988345497463195052475662230871130485071057384802447097516535416155451126866146549920086986529660169728663101885953498979253628811238945165208309226222995365114100618195402177411560650829410088821510068026132237810607846782235784142921016720376641881858489196699752276964073261615847646719572134818880133784888555388377538376350191078969520093974182003928841188317571000492675606486186430787159246738661431201766835715549703927408196162664480292132768975538927029858740157351130203607020218832020079878938562759839566831621653765716680395002911267788293286259039166692299848406065196050892186881771337209261810347671051383165960989751955619057446690070407825356913584676284616678389099737806343700418970588146756109112428893757258693315495756684676561241692709574761121302197175182923313269661703852115727787417285594996315471433495820744764586187937317138649550724710531537167126531460338793196821562255410891680830522278385294857938548949468876281888535255447459300823868870193872278633016963474376995038381272867839362700273053049293801587727052052650060035659263518721187029413679233583422205558119285051197852522006142050657398500659292800761583880215896779969288776454174577016425146208648239394705276105598051915427148964875231685595326867408492608260950021443744722277686799685544439963561079788241970727188767909620522968147547628878893268157417791530767318889927420980839548072397105520512505704002917682039431197436030389148852192838084090438313958764577671443078310646975398839536690029275594466013637037655491776727954510960833231044605038050841194908986465615438244974568546123196004942865613522183526894612226744776542542481297779385339490473607539323275419102659414187134077473506839271276482780162757374428882906474465351473439160075923838209182871266352852623172854491261023660283505010297631965737502746712259777800851994223654099732925382299161100100635411146559224130685625405888070179514416490106557229878454851731602706459984090907259358379610966962074729953647473492949615379324434797116325965193881347844177395554448399731169040729261144449315952919251153742404743138702464271491243252951599622254001623698124394476099477950413686892542954864696579630846715157029619728013051328083456925461088149795281279846813199867287544711270388699105777919588154030200384570949397795123548606384917915228573286402274573858125719399697264217964739016739330494320643838290878249342291185592858135293639312353220730152895601019108363991097900249721024579140655573959830722766362801551281071458084823659283957425373196425892023883590251889765183193305369327939069371290224550161143410380922708224009223503656171414244143784244844652518411523449426576686274493158802771635203243608945447280131114069386238798495080700004689270388775208285685066918379524105213380189710525830552694656370561367921004181784786547734322368421262926010180883720060390334361429703920489890837902068051712919894668214771985789975790758689086792745366814121241004215009277512201332688225987182528044475903463416364554779534357194757191456758756445701516785754375857930903723256107301956513491805788550306792240187874132377558198723243424141514531140915341820113194962455001557813666823438768285769599229232816728612353152585114986660882456953386458523700150406472636043511708733931763050027922179110582051365748808542846737613213988484956519573597754375629660543432585169854935980290346632378790536608773630654806793258755942836706254774009914787200347573768925308691858343506945582132911023943766657998776962069234066180266653040976751544008151613561641105201996486253074406065291565882913138114897096663417403358978040738524532347442320255952692104565976064888753497437813020189703540855779571913057584752573310222333281592012444051371190869136178567889512109640788301472128299318686163832727987717196851426427926538757620112514185099239529306958065621013032167704545786062626375830168565144061995157803319834208693067095023155872803125309549040672724476868226153665991991219564427276378236869151050613799013284574249018369077649140048266413643175114009380670357110142388633764262531044800641575179585916665557740411785799566175136573707477853431155423759629645357392710991365561932072439701955148186666980641117434075898808723417530292148494514512246305897737401859162949476109242414847783336234571746804883370452741445799181716850886111554125635676904169632948158798021455861539261466705081254820906225843260904695837554802639237769771163287973493877327365449028467284862016889332783509801475633262270418437162024605840868062177885714774080585910670812933618726472222696455067297937154760264398641096192082769342684096622569960348570657398631178987763239262825974688063152556324164620626556550810174825925226339467219656321602755822715402729988710753165297546608711857603842089283756930250722261589130879400358745292105171030973162048582667077668897924909227577926034098649511337003069862028834698968428086537052304635841182424526660020114474536262057045589343885589663112495574584201411265946439648419582757642698670245002827391853935618477878615574753762779432702032150628460221147717094841256719460036142703886102119323379336462750764499318166379916303098925244891815731084612434095047914914689589109092805421227549363378574420071798009669047679350428601844432904818471388357630737062738036673079954789494196458602344604963204780020237709211159176460744682319064493360849762391948602884732034670338704821559765713680270291790279137501583570773241649849218239923010196793253744157247409483060157298144166057429597048087686147343241656421355822519246861250393014507773914913855679720521794676755094861685347823585692135889244938545243544207533357317599212227825580312208964875137937387880943647701354220512619252269342306884723584115648832408426088522599959157606174822236380720127740432561475512926655858276611062939328886105646538641651803101070605720515131552464496615755278266260840518991416192954288281294799381548458667327494825307277191546654639111327386309985837074856696689345832468261633748167805061806412327514951890234672963821648000861712148217407825793608462058082326604651146836740966496303551782835296826250459740451158823188294364759882628279153841785319813004035240543421997166555314181327533831443228650234613930491339111752849701119292794674781236711991663605823034059215153107909045932233057672263955458784341219127776937193504567982797638161854577680766669218123479081224237524612809981858435212348636161967772755401937846068060009553538702008380275822870567537833044338693597947303074715233581766785574501637110424321227114700846401932103516071037827378524050103508741813031604119159583410629217625863405217180522284729892088979358407863444573088672368069410719250992250174516486819568206453155235873643494051439904727557099124346147688183127363837551918306159184929713890325035520612434973107980573860416902160261144514563738741196117069226265360371836077454867355299260509231573804932299079929374722719983401682270564092456656376418172602795413644629263250668920883777808507167084376470378436087004242023701532758449000899867297921191916114592075460248178833234633200266794897104417308242207426953348417073009964428522423539380138265605781232704322616123392169895814699388816902855533122855701309221982383617392219340574490745945995233970564151965401882530915558097426687604793460573710562512965041971554779128943922894417069927214572764476100199661695321310802495086924785327516324526376338948331654495519097752965978074030027412127027156997698809034880636039696171356941480342820406441616172391821118186786252206318725574932795624380822502096740304922697674454822144566975549539377991859445288277674987301212135448122247701572318102634210704638195541420492602155289627054411307727852960072842497514025369201112373922756013128195873004911943388193749485330950446132239885816551005137406218993607068195480569310236159123409746295218913448362717245984068714539654163029817737807154524853223175079499341081312475563436686930881483255288017122003642590084489156526922764188114784320053002102929470695752181279598824143174684044625777984723529913717509230530515675047699350016206056915222785030133184767126065965453595966700735657671288969143022948500428275381317136885889008553513614421309129087395351724727866656546213944714449387872326971821957059483796779880300047669702689766996172442872400016450956486734277558257700533718081861270887608155323346131063153880319222044823646023895803135953675250182640149142107956405581996844104425685125459781118038356903785717082949163822214498995973498697336306698052175187430991040078240472972918520412722232647362650710544297071823476820075725053095247452056227855607031401012412598266325930051216040040242711888361237894829901926432606775833208126421052057696674901628189492118388810195077498574975485749296571446578882020526795051905128603602952558543886184394501625398286795623904745534132259153248849610097784790537748625961806017451544648456216066815284263006745835020573631255774637534347084753564720496755852009473534637812083721900557817548369621747327891811261796819954454126161808855344566636370578729539623049841825480909357731339644885673388544299538069846840301011979629164076154948689991073393527901649928378205748575785073607443086532927760226378559820211734797754854001334181420296719460812868746127448838827845322282111633417373290893762426774019199566226409581321479786410316247397101540087569177921896115785935685755899051341316411436806824624892134383061728349380352412703682773211000209098812735966003807810274764968493907645577582619976117660725329555811213687750867647146182387098730493489586888361275029302355682644292999304239127288782501853957964194817578782984093238294482795725574135913870345851400406263069946418012535032830930602565904594782487171713312016560613120630960096645144496938728061191506936957370368842830431144082183148139097430659530427172474101922805086075880957744523354946668467461965472042607460443288873536984653633794577785004625793530994268929813055178532157762842686616069018584402475770907900733055826513415428523811804896931427891340048980869896485134029753938105850937644781340044309316473714446354265722134830079656789135093625458624732585958423350529819582951181293046462505833210051960409384736826823090635302179346745358949981548255608532477438055077959700332459998464819102554688799099589707269568254856533309496842592962231292632676769384292429763697755969698401633155733491754879649900700727194819187493058572199315273010940953877547261022727357138902457059410946006874197387541085398737162185969435188600368342242564799251684114066933941215056189151946023043079457043813748996701102427382551231831564538310896878654483818458220067700613655880949635185064134249442976603703747258201013800924024622154264242928585359878518127125529471635084936666722007064504546919389687110269523881122743113145457738727828548765884245342058239906508077464605999117207489830026151494240027665460157321632294877203982179816317162580062322101130041477283154943802546955863948195894918014290408592417447002405192654925930113435277128238407246068065097465159166507022579319368093985923667783625659405638001022855743275488521363394777106157374989466281516730748317006479060677984478437378914999305655838229852908878423983224915511891598577856936302660112837202859895393438112636560492140958102924125962348091478267215766758645169320867253653634265143216978659792717303519580400246942444181635235774537049162139566561516680466766514366938986160953654809670922793593303777647491838818809445799317029939049041676343855774463723374952614431649334894891341442674397083263124532211977104635418926274152097141802557095581235047557302913819125486220584689973201160798910296222018268962998576022091728944329068831163756829376316248531776219843729338870549471395819414215751579000932718455918141966964983606219921964628236419164051208595810940558142535730244533039492289993225715349705489916073720428083563677221419135833228367510144383300257530207964811898304490688908302950975566167405626044398086505602306316937756730461527696763559719811318804477797208581439517774080819405466576623301488421817566427254077468240838621467512251385580903725526559350746867033875064203975804945458075040009421261918284649341506674903724996814942871045368168998082594822011067975655973988373800057124992010832894185988339601215704315683025851788316672414144556650122071074923686979213733518844068498948003031166079120515815257744204147646384925973237572952512952296399281702065664488456072456852068792571634126358253597234067931264254970514098562147464508491027856753417389754048224402845500873652422710013942933650566106278368466389235501469963556467887726740499308842368596245143592030541923658800829011853007212793482341982272093310194608217435058254973545530087866684204068412377497395367142665330233410032515322124935031276177623938713912499558132665246116521304760313359779719512814740392317186665608637700649167529423407587572440579467446720283357105700677546090668903530390562428331983968255906698557519030767078767012989996604796265688253799091231261320942248002173083078448769006585135541857831696976053738750205771082340994412259759509531335143915585089799469132435732555654551044810425401339482443415980162996377605435880034815116118610050563716994645227130924184082597796908469986837056186564012871175370479156600616689703198145406979340300281644826797850348182140178755699106484416456259180457571329712703204549063114922079647134027637269886711780270209304481515187449179420308703583577665238264730181299466676898544956208197182840013390360889247294465681118139421504248036752124361249055318548487212315806339590638903868650674681269836057632093645897691985841222017853602076540099818240360564142278812009650781753979117182495197803678026560394570848965192389357730633506036510812463075260497226660397139363668390097902690093319120217668799123848805374583750998852363336156123364990560934717657387134060399283798643128863658078127664963030375040403017436795397552364297138034487768620116914194100175800525514845545076023485113577275756377908921622841752174196393117286404792966795709197929045457671823374918068721867382967520610084612489573218448507271363224590268951952773093648080073280891946634474425610138745689768906256044758597646865957923547927954720115539279473411599129023060841687656479905903952160181969169800476484050448469501694800781187979266666518727254488113240676157160432935892691763908895996781038921630332189826902709894610946266552174313641880365026738285156539149054106714401599761018810062923742140211948970795009385295396344872751032461645293956296458878347947517277250672249728698078635616057525532411900762604606786995505195192308858797120234377179099834497437580264388064160809046740577412183863410116812569945348567565182387724014306235251209539724014684941829410544376859054566858220124127137692615307808044321649819265035577041011629523860845207117746499726002064892391345740029321921011527435809495045459198719478585827094583937499448255882474543172223603639474803319993061718736522326380755664528610247468368297859598271704358818716649755580862927725415546611442536243420740920848004816567678261165558048549220168126699043173766113196027489449453024635815489918103685828802096643182158020670458870335569056103457732353548186904923317382682887609371782762417648480102682264588852624968658215897664755001776504587182283907915764442283149924278222526508205332318862999207321274731817857790415474184657549383587827007351364329332771635802733527861816985720150917073279693630703464331902687027304223188750656682636055936092193435160158937366944901949179319246687156670705008571819292442316114029608874848192749536694638459833833352631302219165061782233921600488474833748573134363615910294363663902747885956398306153404206324328585119285008565509001413801047946632101967954924565462772040415195520803616594459775235432835128275939208769436715886059960519729199462586191765620147071179868464198565824597614640802450017014942516404303895381267339932299020285343443880850367716916329928627291144874506023180549564812059520295661502630112802190245785490788594793220559263420079102463975927821204888308560247779832091947217825741824200264605023232169438763165044511188650401519846044372388290941376441044109445025822003474084836295567590868639361609646854489283711411395527591818135347573533317202970468878344970953144682778079106993266139926160514028782667137499972365593204389758434534422498056922363374035370517434204711247128120858078248453773743501227236967311754355449022909678926344679878651469029375510234957126598034002561267819670819128866049123656537388235147209224161048513611230629909470962156534173865077733615463692001745554287903931948733271130340477127632929584014805084881262049245698803510505401814232924496220243674744725995266371466604656768191446570743768849562923117899364474226762218407838618172362863678586606413660003623461757576656721343981873311803512428180994593585909671704348238281118176687788459751502769548867668167651373254214041895380115933728187934404318084387244665023092355266687053490789557896813346530931038458431619306689098514119362058578267199589101771447692886506586857201524335941415115529224406512934790900681157643436861574530796054430058205697802180128020405927638973894453631500422052427783426531704160246442974536840461163849151555635585528407936078249403678227780714559630296741544913660225418083210247380843724115245399595057790660229071726143743358481527052854622044728424130960345372552552767678255723394485138495919997519805768492790745390779026767369094309435984476588974754870132249080557717484216224503347514330653611226004532173333856664094606642104558433992783597967433590426861247669526270802725332732470776019680313651403968917576941097748360741470466290316228960057806609259223904109025653081124414156312439464355353802554991945560092610294232052669682550786821738469659192942596373279086994877992220069618571104354183279305512370617148736253897105280212619074422241588187392896119881751143373481400481303480079251386658963699421837522681634387410993920889618997313750845371092931789312101246615070059215068256028622337731347002349458137670493717629411914620340381790782083283379341470403483878027689485524283810327540675041389909427149277232764952772381798865121714556504515728235457167367446079563862261649195275798299546114184579966285304718924982566412316894296003066877024027061519130429635209823137719676688673202747885912378835965333504225706725900799822260853617201564169465219517403970595043276491737506142129556077252426271534437062618513710377042901153899867990822427586301673332132572921484152310095720830921558769244269646644416013924689575347714955339436699206975120051507910961800280816149587651704931175455098499835005184420385386143507221403896868453881810002501071756972146586565182072907713191359523928056184777029440387362017169522548973217216433826776753654113079149745514952826783612557821854657843762988950369756454078364562243166092711919195636382730332176191107044393340772447968758843819853153394343252889930538564069053829968950362251878739967484613959167516119941401150160106510860624809140595182287309154655901881388149484247092722403160285113991318131635958239978667753448522466122127797083060674745298925622940593485131310396632788258079116509713553923029356142443400505755763030022709389936609159942780707316168782142329968357585874462058940252103896118007670187741622801696984577854820154060899354804427280789530274509642569773317192343674065860253173957196195797016879602826859744295845284674726683869272331740984593347124179216117767318207326330548363342186722755492946462382712996059123329426635027661134026902532317299843923141057285147653869189154619932490332028632639275528777679070488686991227910233698169009007757455086404706914638672924125352568592592841135450545962927861672045512003182862463673453250445012260156752791792473836461445288866770450410987692236490870714906031233093023400836692612523470720128109620736069939894984631284979348621561990488941643846292577244455740250762516297919593266345685371266996478588468322877767159231413280058119582751455158903698164921944661611569632113011641172485873719255829542014491393149597656722287950883737727625084263221171224327284109129519943965181015109534574232784455222535258813046073068897801888450127414285856926214633011729037342804273593400423660507845369099625759653407319681538868108515454394043149391628007772893669150133357683586959038047391367309125840448090763941046541699209050793183545027485313258754101941521391439808647577305365379691807928690803157584896855664570868058062614536663275815145699618313378234982984845068685886763331346243647625876406716941875510547416037611852056944354484749628736432109304918106899370552664444622961871474638884335938550352170300476773555557908470705158601178546568940654900681141686235165416456325133264829894543620491619500300280331568559770225023288084756968389597372854218110561422872438192912352598258588697003162882312521417462495732854868285861588675030035582738596050368685590351974901775543488267369784863153128148632349552649282221874570702096887888533952567454176706357754421860226985365878955937307688133129423414794124452453288096542854324338179511974706259246610205787220259204970911621722659182252697333525792252198000586195669723548571168531952215999118921766467065262886462016573164877001349717715921526864049496534470909648030841108159616892503392940794415925855883450139348269701875971044003157407325332599297991933429510671907449126113977261078673379335824110950957746845533742240131106140288491084702506755888980196447681892550518666186407257394461645441903911335502455004759684209793901220830872868268700662367521010363599513207417938568946506605816549955243409078183232155126520614187751735760236404909312040879322508922377108119956167216244139628168464611399132949869315255673633947537222846030814775279403903140773262144140514467567606985248541502834067494194930770364428748302090831973393817116211455073954392966347546414160414882115457277071464766259800890711293953092626908920495942024478814450724661291073987779954864166561901651082790209790189184282743117715304872608527204197209009087082222337162041504252916573241949832530500445528533054856095910516748916389079906822491678559403605691031339884708421190046935946818788367444568374803775824168553709576165768956273736060069448514139137785915379136751630951435454894076480645809066949889463942630743594387621797657267965992477758421162719291906729974964315446546764221592263218934825352696782408182857749185361140946619387471562907255851866615611633389069327397124376116542929291308766007935589400857834301132385403907995212946744167983444537818409242733338802665336777373969337712762685747762958103235966670625217262188449144185339401562801987429993238838054813351116517690548797705327985797704582732795915598584336626292528986456690450700692274831005951617434347514392379776338635039662055557461927152891047550371432613558312876328916137478757047266229095971475107474212184477431063763114766001657902177749414568029727901737952981611475659087915033796185054673380157199994471137280444170746754218184570321136770928825778205540339247116260110147064738045784878908586016357431841216507644322182030873433843645754566769000473300865782938415519785433767948529829684195575446964689735620244350983796803149961981447656227657910623263659111098420635655337151774739541447284207222264881435902597846023197102820069970781779269217334432086854402762440920602379314552424324244366945258391418819302679392216018748520389447997533201544720650412158887417659459407757072712002580371532104538110779301977513323514287931759699811368898834428451462350331733841861751526738892620261177537702484918063813640724982084486416836754777545135092416950183055937748231345107961858096987525936163563730574321141222240362853068468058905308878543500102306452832647055428891304148044271810776654347055253269092408460407026747683480586610807490393696242257466728608169567937807113049508542393053439795857938249223651968677581638337360192747984221421779502240493887435440450713005435806359420157726093433600196963654074062365877228733750647947451271428066737695553936817670858037115900609578671190979254822930035608719603016083016137231205797133225258423632966975732413449225399912732553972369300257837833348568761146591260552811269162836374097420444811881220408247133058470337899979114692265681948112204677885257716643719138457137172719208323599874866914261040825673927329589029990582037827887439523140956640154003954070791527051712728274634648726224954274634335322316218431914219243392099881632613902886400169185409421959259394923515332091490679944019454796034686688920081929030393836953513568373947241621521057392860106996749397484318542615645069391548397828893217528987999510323983997543018092493957451453052190220433900769260172409731511154275342614785760607141348485241619744165464193186403874187323290321414786449312495902408203032184477975373935867449162250170506103965050226940762470353606241410386972884643155396673584355564567928949329549123447212917392815200435957930712564894593131527791563151134114439267251903398434138052928305834237344662645769615070773415959913528847355522417209266379498320659456491024609156359715361620467640353468506511956902950283782411721209918104202270605016803628223377811344197511675566222946062073118238221958189171180040561004143882524592477613962978878934641188235815554893539261062057867170193729278371712627713238982231649742923133265369928312175060814334789842785031704915223397768471922251840685393349188773404753887780996949942110312509316128469870883965377652500672051178383597189948649744321390422928930356423887871203705720533669023976070805086206259288865543776973259723537449648284890456048546497870660504484937488282574700278154199088618999812745581569391434775090706059642136278799918109476358140343253649687602580089793585949062927923862880823523580431303592806844027109939995614810722440155616059178095170081735429520630226139929960755454793457785217177521039596249729548386349225020769562405897770840182640461601032561712742742835223119724766989375378091260074516439364847547152222621051667112065482697872360454566779314574396688945394676151276872313705303508271406560546496578914617894407696445326310978859694174705495610903372668647631312847312491025731590530098677436064521042919244872466777647556090495638742090050962684219581271882031018506870950603006842749233649064898212813345719237050006853865535018552637877885528850376455888978283393524478173625684135223869829460959066510990776528265338940341033744238467403530711592141208534335259888008856501556466574913764119181762994639212864326045239298286652941022298545042452431940066222632746879773459856485471645244319416288103041928231475666964827112242002972319311415870899436558052219861377513613909425053014428716467575742516335861866857444619964977836522907713966759655259572782458308089043845146058305066938139869618726829448702299467994623851493559540035337735989382810773128692586435214958343404428700214141274598746408517756047528833641468248679653768182323249363916478533050287247457175917628905390111580055665600762565727402892448428477128937556943173326286658979223317682194762432938295631071517021702555166153006206173581881390051872576589330465807721664194000095501777845552303702567613996353931633796615097036166336788791648510951945752399267177308935184835290279052005218334001824763959088582436991662798735422628793380848086727022735321393527695628803837486209626518507672741288629427857586294608194693717790027424492434110193435274876546743191220678802706499991178511207739847831537752561900216829385770780024417871479540324713854395303527837920970824962534006211734748723641247104358835443309914615285113053450155551561675461404330832502781957278433416218854304404459480262895968619920924545765891412543607266857103832108179296671230473764031055985569688501666432251547451528624406722360245626823152908203158130785311017688536462574682598175094622798206685050069344650470868428084513573473704658680036940115038512970382151124221515990262013082639693939126227941224444359059890812325613448212412362579736611362227673630825151817092522294496142612426888552219978252059261590346399013739476938077987112348193505233686877472667979986464040113640024650212679225810838306431662888698410204190669120259933429216583615903972867193106389770324968218947920246048355559127971421678500843852214572091378081518477536849153092156263959790991282010053049620691184765023617495134506836838299920659115634327397048645514827429330164348522913757498663935334875924853798048552679019829213586315334868691359033353981979544020490402656824831554245620439847875477589600168781037670103000782428102659833129090320113610163256645166147788480802542787155192236584170277209790430664659555649988453149829683493050477806571578575998894831049913326494234722948225051787319657763385608905400767620614400975003703444190448730716931448727846943348823877388308769238646615923793425843619923709843575216112148383550365631780281106612205294628203421953234207451741697173986086530906885731889918233030731681524136123180707063172996533023588664801266948010660817735613149986112807158169071407159895457964941384764706560557245244002318946892389261194542635520573946053661314358456889201381967086210627329217857684277850202587491471886441192987415510527141844202398884878822509296892523488839793529642847541810635681236528329958159858045907310092131351372431839033383160411310382457988559089022579205255005867737997562966793201159045493649779260061515198742744727529915124165240479500328696334179005853611960956776675983988206086053165605573026413379960916680645953798452240962735584704633684926971150731810301393426868526434326291547719609015358157651095520268322129414815416051032003103762832025550272514407767361556899476532890111463530169363730801518040723391226402307931867192168708881118322072506446671657295712186786369165327431817268617568496508208484342807271349733545871396550228013753925456984617668594842756207439734254985590668941906962111260307715473341927816587386109327296834989210091310579446064022418534287024170119104492636018486975890445509239088326745032315170793823367344499945333708922993434571553919217778704512881030231221032498912266926138197677731695103856862276320124387029895198267794705239796588810646503745612083384651911275234273992080553137226617917940123391439550045563191471759331198083950865047484789169369148150391447752972522339261719836464152979040198347628460196485722847128713569844069834614672121840174775264529597937502783397448523294978466423377475855105805158845109878750573944867583467690273608187358821138033392242012797396699116646032152834614542491633096880448385791063507054981092694015577013734395513740038599820772153638421948068779424683181176441405120462158399985226028434762262723827458333388655973990728313826535946465623794132861087968309454197506617590964952790533191402871860058849699395033098997956859124436773094638221370004976060300587409076986164453091268648939720323272833808391854992840064260073463956733941753730151143226526613745514478406397364625035331680418436439133392711748348247550647704908557381023388275384218199089197046234716985498166107693566609826323280893307938619862713559745260895276864701070155294860271424504781469518337624604795152099942384386221848912318969475901260638404800748104503356274631835670072692813067027980903138450349389987430623654343576144042463399330070657849329819088861267458948740361622019268518637706873527276266867287621926635913197039852990690885120028411386742887097775868778425735478156347528967049370524523583618974139767580420863744118439065878501277806540434932759381124343971839416354679556609714397833644300553960184121709399133395953333327878433669798299098558580355844938924558814873503842619107278007367500513798113412880730743118633667891539936267166178419069773514084806777062926969877103910834534439685038578670668664438268006745402300543541292395903025793045339747859041005071230230262349577267875478970993971481576307421325376590368521440258945195739003881865852929951780391369748496860275381983215848828208745088187650957507744622052481213290578312362325323581528073827992704801354647640963341284052575583007277662737541925885156615310694139374098217730734790350088695488098021319609533577333061456241743934306545650337198803211606497866013597985531671415355371528967457745876371457707328135801988586449093113485428342779849219188492539788883683099942183081393510905911086591021790206634052328501263971451034384726659319711943970416915873519568575545788550075645426852845387750568781569770168741025939882904814884287650096908143857332485669091721540986980901354911517403664698935400423741472898866915406652943844724201241108235367317974082848707097361719190173651232557662687745878055395435474528928588604016978639123428822070638571508467545490927362612243066048728924383682391978962583095440748927014722571838022760262351829353229781448156630572511218045558796669238625322937884873603626198696056202236506338427066013043129333051182384919033904632629085301059176040279586898098686844245875007775527397490263769052036184771189454407543596076319199907768374516942150969480169491042168503398122246949305647378093091388358883525438789716241710262537868002090080560080639910051198681800456053272776106721847476634341951717955974394852728686233386657674688068790786537712213094856961545613971509132434353688225867383713941397090170842338896079361634983082554027995669601804443785468069391050355825007750430908726362732891285933439094446272035428708870750140440630051474544335820493997685425803279611655786859920178809950782032567073209017515297184443648863943363870360398629044019859984880207685577893568562171903449716935893015708454269748034000696837735755245517051073815338217185554100514470256477143648230210097087261969289841710339266362011317663509998652491615444871580259388664271059759410764178814755850319992147788944280988374109462716900943605014421012853712842119635219963396293119206691351042505361500758360106498882601860317550835489145437023874141870943908462748646137361599484708125953259275905948705189418562316195954417464604504319302825593182819803062591928984465309668806718836500296631895086767648664171509232141550711817276697715116762093019872514935270619232473426097180906613878576644936714275593574367528329845658618737281433495693520674937936338747677559705759660298394471001935895302153824946370214884540391853265807980356092054487997931097774067274976416016454567071936086755252135023787051170872272629351128548360098102924778141545778953716600421895129283074542717105678272735599373002681462136380299928633337988234738296342485880802533213083745359079799847045484909893145433167641561830432940958785344767287768879337935012347282603338455487087957128818353973086015221267568969566727857119038363418672949822032543505973886755558515559710121800841076583774891488616807823574919009536703643748811660334486348279990931598626278179539389203397629171323975302416699275910384489986720227442171617577471648859686010732502401253295525137619267505592759220767066007061651912549962594499039647450422692543142901775394345909802481967079259214441485309113911481853040442674985945228018403458040296848931097897160145882071403180716096307957106547321901901876972496041028731159501790604049033268505264079353545519734087222879826281650589017353620455583803841204077392110589220577838697744448780940535974784411789955462677004026311313464003787175407165376841897825992102765721843503476938738665956772261276313586282468953658265124249793709062074260026796959817725345504265009256186343476216207975523591467303719165584694658508838468681154006154828375354877807058223553644184607917631821833228829524770537772372024150075230375799739243437766903907489047455689728372493434197251109058113278216352547937106767430616939016153830992259725595371754423060119203587416287380313734190254865628273179670142782710796708060092655343177739047714573466560923354106675664815321344532791411749702571818447689334198155147151963508171982485309801898787170052525402971350968854207876212520980940964089126996645128485595738412418922999486990642254184239641505087341618348277523766075035182011572066533595602939884984432302961387851065389736074394959130694999285604234452253061964116334950842702909241712110571607618469478208792013932075268461825185553762373365381082836883609413545127456283476689169219719162680449307183380818729775834883164755154775029923206488603183044512831276284785682963159008264262233388838379222971912822473608964287342837825154566004925589682739504590585526774436285987293490037746260659375251039270859884555878018127713458278475854767397172424367898694224063548032483489867859061372488789354050393103591793098097786732468573141481889594650711002228614838009026145445442601617773484447639406366661349555634380684226082490407947604844278484921981236759984343608350166818269789811086661794992515600570736082028311954527752095252824241962843383549811714208156761418190000969223406756424562623632801667018940336223362593003412611341942280445510757374697172452503220414465762259332046581450197123660941561967822749388969971024404775100328156140247294631919290754736487486459842145426373200267272279431548108804188307327904515660232787976306350370997224047369053921547024208972545713111097246138766424218928862997004487717788705275742543962941294387887246591438036385643271152703403696927470348503223757446449374802870286747637877459858420430126408540686842114174630606290061448264852316905559890463004182958191594594794719873034611677079963339703398580405066492550004587672346916078433539640999523956763320418996496436726477904578405372836501738928921473003300022138917547427022815384253460855625826186911243785446730892798768761074206202866422797533115926639319029098013447252478226371520021132675580268685749711903413851359521592288228067524297402889966562698856132440248473577614632027936962094240362115615404864268026684088021049702438125437871038163834061840045960704085714763944477817139253450397503018803888508583236893629502707082949817321097292551662935553314541361172622701061397785911641246787463130543250361685641983193138409331333898631791478480804309250534987615094532794509682164698381230500778206478097931986968868438738979442019635478358263895907207028184496831725320501277498294817453468550807086917183906743000243509212388590017790846639691799768741691265569253505314636055853661012466548535944300773173090733442226380908483422615253994464467849223768906423737276971076403662859768282684277512559204457766437650994509328130533852050076217359277448381483482719763020795174103668192393690832433508538721741482419967568516887929123466380966820417213504825927933947891697052146200764265461653896252294339950765859024624181032718127907191955184856050986272975847834051531454475681961918286592174813129704548881653142337967193162012384544477043498205181903915355820271778592473444889275351899055849156635180090404725551618205898748657188315790521895137398455196634650142565274210575626354378805280269934762525824152662094320583768379987056984416190490546341115937022368443562090911617325824203814169784567175359215255025164579803532531947189584197045227978168037590665032250084084321146657020297662460142930666174410505335410323421394822839061928619783092247243599641530443303145207745881624946607799927565992497814492985494208806045809344893393177199138282162215846573979638657968207827868939800317778784008015427108547922817801656168037985136097042042855512600793408190592973777128048071252907226983007103270821222099939345443607974581278561390955548199874701171293923025514576869257142840750984526034282802219600074168934656477692676608654961989888126929829543667160543174245348498132758855203015285975361036490162755249841172966532347062046382934867239044692879115466700442582829292710329266237154830905278447322722524510314412942107206051254744377688358622088383409489126538225645526490729488787893560795022605158036764551595999493782063382018252098313588178318943930095651881279884358788755821309640814559661190336267153351231386366135508212903952843760161039023141916401304459280304152817303101165245611924452597010309630338966888229248417738243741266916641290837271710312544345480390290450425185075900094223761308932552180277370850817753992482999324944415408820623982052217548641424528887353504741016492193999315910305952893953076790395109492131129346118825465995705419530891140399496091100661890095083528622309818703017578572143535437405256616320330734622069706365715644483718874620202506415143804349815064366032662158996435734092050425906982913216684830986933332852313046550272273185419770100402098660112949334874184049542453948252330293365178515641454083769233840662109715250193963561736020643256297519993142545876710969258675243218507967083491876490444317402764508536503998031138363646884692110914818241442635938557365819670763271714801694386883660707016703723352363637633354293651044585832776202512033677036891227945291885117799732717365440929234636102550032344084899743020180156102691321873382349092739932053609052411279563987727301056292410162021491867629714441654693709462259496185957146515149311615116987193879394843899834145081509984696266719746442065553482241386719281662455516273231505704935675047104056786459824381727252575107319808690151819139409442646896783527621755683430693132055027980425299499070351603793311139645586335973715257550000866404488874938954596522599538594449155618646023924695256174050467287714395224812706830050202096952619183580210473653218340625227119852238093499321896854681220992880575096745920611986050798182869718991996521644361008005551925461127282914920305794856539037370443131589797567186699472659528106756303082636577991280462119591166357071072144455686264024617402761380043812674632428704725679527836570411274893865329300492810747275855452091201116382928632743084497735834340015382899513483901882624479782729655646983363448245422693159749693152541338244097575802661432965948936033846019362477906603131090523551011995226397506599779692041855986420202316211263346183818714943118214054503864533066007161024944732428684325307170503493729112388101170078398180284339672459066729820626314124403415685915467704125680062139321299543144478976735279170836543203328624849157537106052314925660513985467977303598294966107745686687480642176734410227743972149254211947243361522617925624808736928417781937515942506488691521852082749525775868769946606704270546690895216528336715359652015571494487274753820510920411867051022219928278454563530679803400182195383903908230365175124765186524783984261854300116772495027859296498006978914849059195050048614477851406588291878928778923827117242636116332050513780348622902316367994419092533790594034977047879866283689362358690265771289208285410945771145203847096544442215453897214122438626978739624775599119850702460859500168276910789514536463743884781376293400005372829129922688652677785902261132197686049690360540780229974552919340835056863294569861946539441494614363965992365721964707102108478629487209369330630395118214167096978088590604828391172683740340544538058498635944085484672719716551250533772166476797581205970420931094577631193953277484291714916932626053590777176739790792803050414456095400933056813729023316695341093510024652113733100487055258580690521645830048157116957351869271714166723236297445083064876505867599227187481183349748564172669135771037734793593853810526848470792881841663622788490146035799615887428918305185152203808050634919023728444637038398613948207519978480548029781605183815027673417080470139417915531486543731403696603748903546823749730435147923594044228280928784630075030827312896547874985001398018645430277040439268232626540763741073216091132114862141087252285127775991367539043228910756822693806027034173721222117886694329024445892188873761189409372054144415930475500558805418874707600144089707390042177858818225336653305152832421026031127443878527525092042757440533428404356070461090894341499906123139521077580283046228574083991254612403673584683087024374572912034649852404787005661647321041114850003480748339520011156709172095724801022467940317350755365697110472759487879176140791032790160832222793611643389450046805496257919834762064351929704917428362301009305018400914719600947973527605606136975400651727737785486995102497992430652190309613209064122146298272380131847262454176300679350490474822487414204644650891639188690175233832148959681894203478275063118866445382995017976683126518274078379652994479319551380215855601114357005184427994176504040314035004131101946298764272309840320344344209971824003310390542865320796972089329077555373502148309375875288398732223365477354261384257799577445372429480445397682471848856846986886054140274636429874391810956216672288519676792555742803288985245832118621831370439316675514023625357353980116464544352837747397638865101289956423094332928842853370541438259099989249351997025746885000900386520000411760833963967839980445554461885794946210189812002419297809121828182763688046911051705936634097533999292652143627781237554274434641838385101129445628450662689720809198123015580879725312285490601204501846602057435673574966897084985937370396093187522589289388401676557415673204070677470754416611477262321730697177034422426353735785243349148023512066904703110457077723206754068509900398512538364086280808077210148942535522302657233765196000550950119847928946580143616219379795186336694779756952834169531785099641833088754107262159427032609218000460521420653866504623720148434560775868671735541310883010446998871701208125394216267640152097180942457851298098040264829981279511207956114020481299640720775325138323583369821966524169726705017274200860652078023923998460338708093482191920721319178067395323860279242947301808831712574368848232017905643749515897952181659525610629407827330788973972004176964033599753152087101427992664693767552401515469830013153298255199841019284022594422409394098657652383949582019119396516524649166474136600473392062545253969820328231926477316766221382756420105317987687423798115046731073132027455109437336798321156615538315931593577400895543750537460061019480532537896312316897256205866495139698549050394669985074550460520734303290654456787073104396183879716144192506388453719406606392446553519139038210082224001612635654803621540250109148022939102558787362571001392450839341370488287438418217893068140761689384350476209472943511527316913756876202779552762465654689781791526362375383744975954462947544592592615261470752466288606695259634386377428575834491246862725430936426126728787386745877782123937246737311121687758055821135326098307905712057402578429568856769093396111155924215344716957652968148518353462020491727314579270363571068637517791751206866205223729540823519554778148658747202191737478362030409938944551288554089344740283816678941381863386318535409420021746603213640002616268969965105659174737496434426375887288040630208784274875378184000701559617656087676345569012210881352849796091980455793747435606816440177010476106103510825659452316029795255681281694596326297476357689982782694791244400538009521851361733168620228721019380084179802571641535773571318408198177997260950797202115942627563230328737733217408577426009447754362164830727973609590015783521716583971719263875824276193954995520872554663347635416200043696993657269822928951423228376677454372742097494706855551081275396890438310083944303357282269862682065177172708508769959885716639397793765541032306218237140592195158843935950604763174672486894074946570363221690796892071281486638128483605202540100954398074962515321442292597891806519234336140034769146176767315418081353571043687042979114198610841001482870884046379756144062573478643506793281941446350024093770798402518435184775337578496676666261743619860224302379864327079864900278327494993513557312350464231764066414992910762082371201706698634291006688154102061954107318992876774056751039543441425342670748088190560803318416866072221292914836070981693984135965837516647646451264812480410995806212244193199275552513184041091231505907583809891200568567097051954582056518122810951807105917013273153904460953698259800464898680340626561471516575766414477586330573278529258698404002957777869492476120629067803411589651764136155238656852966941794508348455228044230222264806642216762478939799988268812673259815113162615912822576391004623782909938778936913574130465415561849095890614035398745789152011760475957650004095624583837948822799172163019159569102301905991908876282858250879805490728461425795982510992404006976149707328320453024888153464123518808251061558102006321929770757651529426640144999594090108601268519120956781745159492328106136593062337109289332116284291514950304750350459270084479690780879679854342025531216805640032142594487390043957523814928391190762273111654235603117301841964759633436133724547535511735694105754903511123359604288413242956756045869263233461751801134681809677587429655897782374798364999868570717628038560839062219800708229246214647505845291336863045117200965746197179586272411641455625794160520902460587291525443829368413979515145968014604792192741742871865722598956919591300026483473515823230390567586787846802239825003048676687937315291171883941748785812306960596681761967422987179220751917395336031299795479029112313169700159307533399091641194281775708571857379190517557611701833078776947643116729811814355433229198778637795910544988135186326169663776955411397769629015353798373167608439920158410241085596988639857159792741767914105751575818284135857170997206740987546455513651952934796332992364369938623396385471302866200264349814714507141905454473660666839146895074060185894581886698070378183694247758815842398058378671314086919770841920735912768973826673064936131201225107444162085021424229271189623235201290911677878078655901790294493972609223205502403122152128008751279477436735824429171262892274725980931105377915507294016121840271005788491056822065391569017958204019609762580277280527253237218667188022589597673643845938113858327187134279383337484239468003653993397321958510533982787302371520144613528582658236955115950051622479809207300826240705790217686186993815645028087094846276894161294433645376488162219788258937768604815528054449107062150907223438484451641822504340015118953739635398972906450834526942449028721327391533537931931056264376199137490748048111239732561958456863712916264303916460725985096536557112982930838942994297655812611125118499036751175227401736002698248153755923511526085875120597240364820751675262510372534987887166777450314453487462115802875573519521838105049294513311390902590098635748957293946194524100754054240538338736220556550092123557950206280373591250691321035213107546740678360943330477235321735990536884372066816468677099793895693343849406305122383048967500444616850198386336443616001290170821944524932370948141222947595097039283158896398982515991575985158499203513970732206954141899082359019821453800905148376521055219372569294699501422118438772920125023577019869495324584464202117095400633483694503455114931133322627172185093694477441984932661321184604525667812677313040246724910448994082217365692707387766187117139165443279717357908669449620193251350130157625705555760091583671741504226124002252523954692596218184653302697913569820860532664714501028612528674086272775192026743421419983448468393046051501241015202999712668698318721889285709308421683034016627025106366108630878994225764658972896078237025246444365940240703276309822666999295339714863342595011123571658206838427308507939601761290240008619345475216065505387750589578105123268465547125284731077825316861556557495618849431814173924033734794292268953822370233515719981578617218779639491779627324019321465858794210618001347753043858551692449239623339399360926874670211694319345156478172569345207437994271594997688633715677547211486268434980715500356727506866813930435965202223432627216164755010749223411386952094726567277609951122793066600129791126600471665888917609540064719569736615949709293295827555125307378675746227087537043016052788725527296672357141313306850743320167356112824353139036401602797555916208512942908693542701815505897484662400491273546487095244235749490474795932561086886199278789378319342196857657047515314348671408829578608457536772717114528186696217098468849281178956139999942848536391332076613359167472561022637590280018972770566318141508433132522559066156920120351659322456426453535380522927054355341398118433556532730455975191385568716406557274225210328841715946946338327777293760640680272222204150523380451137953583811952870578281103988661933446023344889791011906824357862247955140611600885810726907097137218075170071801559082998858431642605141291356389973209725487189861365192900352717148405183854286276332877774795405499629964018790069168181669353850270276404355414231320256172133818244622141623072563666040659096981683981395614233691310122478132407801747231864181688946704587971789035093498450786285691734871928267774574856434043254341867647675340138035443042270990228467360103084674794330621702359637131677662624070298996742750280030579428076285576077260975282234970257745455083355680748064053710178814437033839038900970303809749436578291871312367760361335513431371719894007991771497504693239772732083971629335711936278992056329084231448900596220857517774193548379281299967546132238852539196224887368088056447177485375608827496814343097366218185398534476188771572300497331822980819522043449248802291740760873743141433732512984843836796305524956946162372298625849686237635892865922987687199284273327010606183956814680029141570217114094753871545601914490585915775227253862337261180979258239080542827493841187867508029261615987257864099186258154422969449315060073785550358776205927150085234595629536574706306700153869606431691841272830191461227043556774248912477273308950963403230633188927086670810974201374790415787806553111576983391708207268393952780810682835946343653725657205130184867843029899523664994965484320368080882475123516155719403238514024792142264075919454184638323257302506964040301460821044761612770471178633590784406702120669501332792946162776344098574576887507739782908006935942230454715791916459125029643624200982925281397212781150495479775104185862395637837269445886755680749564056760297380616999852317183925967580207251666373624484762464097513103319031549980682921317874318756038405634907722417033159739333360732470104177354836353910262768273169497143551543135105982031344804328370793666902790094966789677073368682653328643300659170396341667507885326888076725120005110485770325066178891885688712143803773963562365970520330223572964116849628054755910122984439276360494180316709035737097388081654687141395997359710928934868733201048078508446252710921058189741887115513650662167756380095607366400117368403627047562619171817167467818488447315988255379379394504129276207201146996085593539816713425949376895020294893036959911472827045350854100626891264557189490997842195755466891864432395176465755297277869489767420211217531908896814602830793050936639527469413314675068466201821208909245911089888190112970261687161556749245630468087804207216744215703530619158890528194750225050718127483706241499691117811656263503411738565306791402440604196623332872526035702956730097873430678341546238078702151779120938936158639997742259900540975880442328278773398078599237182054207877633550239060238425209126135059145347197993205714136424930765709592396027318182407222978199169040200650884428895492525946076339239701859849221712447344720199858463615509567440549066728614899310648061199983517318905481122972727300161081946162832905351974441331476104308795804071731936209037335280500997395224666419488955259013567933762665976970469762928988691400647768830162994727682406845126482466964706742303967473491916863523034904300176870557215795821592136087526395610289711169582999112024833100647563783856954421778864379683958439834022862247135174111859804398834862984960932616935457550374652203892282466819291952679707910155215383458601269009873085910732859156232291997957262873650273772734044932857791148944578363172709767819160450847803094809706621483744503508523430160891735246536403330009341157236603367389949377344417790269593758606365464731726209417721985640909557404646782301099047392210979030494976397851440637697506040273092024776466799713749783255320311845894005899605160824942109942676405459266189931586517008872831388104498427013698044736214292010713806267453451020150438154112127161117289024675180480627345103575082154757303075893096983883944992648981423645800117891672348634245822507881493673209487916821149744833728870571646962591479054266955693571113425319908164368169754019937657074690969205620947776136290076161329876496962680334808006923897970697432706369355744767141396699173421125825626772225871199226731836010753879707725087090144521123270206554897685339274633098970468111305418667506971402329850437390020337185940159579407581409166931854079257235796804740161918458091190793817483208559821088931061429264710954973000461723436517198470816533041535562850697304558611256147415035556731542827286144940199210752691428299108565218463582238267474655775051825974537086550456496827371303845601622126985051704392717782241718263328476953402620609353624060527394085918798162300014246820491404460748473830529070938018970588957664940227265871569469151928417677839061856305646327898624743827651673948310507106314098679032401139324811230075642373227498607847326167534905232384825175189974630385631193763616887042383526756710485917703883039847529838598043249913840003132493613972815673635589613427713502095861474086212248196130788251590810860414948807189830321061199318590082134943526777448404689483624747615210261046477342163289004701864745606142656533375613283544076675382966346308990898078042601498141298503870256008584545681141493271366452566857625907350160807626278439066968026665706113208536992751835916100507018810677246670353555342806022389572591547836604723916256220922289462988963141062363194008890888165373593286879422971491545077723153873564418296853790871735760473232325968094571038579251161687168733169862252462601121585350544903908490734521940326051505941458114062283205019044740135004781808183220683250422817327189266378589169900890253791448881229722263046856768964672485978367031666153241966209217913957010563246634192756557611143505651056180621543510611027879905373171293722759431145247842600761112413841320603248508213466883574076137976187299410960130809848239968022134462631395511938592049789022626725133805601759203674983704428794245345948628224518633118081918717679204992931770939171119393395530023258296606120451365989842574400969057506597744660987422086817393571608968074709097729747737390960955039005142007506200073309780289320860475026229591422545809246844767963117368594075582258208482905786456472622918622932772241697694660538718029681521723526333328474498355177704752918018702120921856383474955283486071918358059720653601794656393198737897559227649384783835678779619420566573824442572681919198908860084999280021798274156761837146826274263346001906218414679532607233868281581248756386511423498539718302845218347731231930114453751005940391378658075727364570061204906448992900000883883733537768748132060877563794512382976959668723438853892271565969563028432008272377873155515775517834867193380322709274108841083755044249629947368638381882812820821690537013999285502075443460740541833198646535935920389832423997197446018971543966885703247517534674587248270823165924217486178198550897650326534100679514469942464332962392491782842557441586521512096086989276733683643322647817186677579479145188150025914091357086140568268204486652725426912357009410364296157483907073866201415498988658144988332617572533647221843851791441920326901321054946205275186237759524629795888027926095356976135002176446180738801742977694278782741715254146335980357637576032411596754820688662670832118841261119687309294635519190304107181884164756140031665161840097729693700262956235576923379825558630704672738072477976310491855531909248461569605905722023072907210433708971595258802380310395320777063094378020258292250664308223698463816597439127109358227372479530745389597062306095298562799517092294339398304070444735709298660009051836476791748878773855229649765896987379407767380011194270208885962252929284777205432260736877248732825396617828868109480920041913286803288580592421743283506843357992148719952232882602907574061807387645176199663377626722554911188516418060486450167671580803513930971772691207842173920537225540809379905091798430405535887033308661431181309881066907642439177202438356045836829665732978158766547391621630634005312894696243424513816737714467809446725326152652563439758262965299284845876016764395743561338917378074710711622352312808464726888697880926530161263352258300549823704140497770355336465480801284254892553127011165746997151584070391491455136261159955418701029551063834457247151570827022360919682825988543882997143283824203475722372852918715550699464900911439688659678891185569609977777253448127861032364987446310312941702930073641923499932970172824668725415234560446719559764095273673438100226159631422668682218826449443478685023409172806815114060835186326719346838732054060282616921189405811075484318721034237328757491020212149547626034050177123023616485123290576515392879417859311730860745184314915638929638474004171608133530228931091119835867798693727034112586162375344774135042156512683412707866451923581909640257959209679616508401307883213426169821712373689166616052035490411962748202351209541627697149871924266714527138354165791149696728967404664998473366833565030707966639891091220758155669826213207128225865609508202184525976152693808555671714420093885541181941046037208224513241191213534187897429810479810886517372934173208410207116309059727613680628589259719992770316211653362451772061042760823412954543146906642467750807673602646140299896572104795402595632741943915094792822084483326480580950095254716136202246906847748346258385915629569788163177513929866296482519815930792614631076340417184740981469136446909683849262310896859741261180172098783588045310170394884128833024198174310189913061124540889462820082867886375206048471503923421847662137438595374103733199156327009500740575316058747972380164803712480764516482640478774818180804219984405035306691061134737382282398973850326362351757543841370762569162530128424990382033306457433346023130003928531002232572606127271759495329327845590545920211296933982838841711258350121914721354588972869279825384798368733432959066607207144195320670399020313971195526742837013892254343484669371081182037278343607856159213653194417250839437490635287920666859010368799968924884441147998877591346630890309077049581850249729584396267218738399900002394106909769816540319822149998195257219196972569441126080083878250945542802370072777464747510654012873659578232481673233749960744227172794129396769335790448352139366769114235316876801606698183837874757956038476259388746468931839687555863779569536327718526564410098147797910182607197799955433888826478172257458883418567202705315175688220275601569429444436052137268434016698995733199166430120005873703475382352127633358466536325335662985523208844331073763830823299918115963047281408789676433715311379901277548815555999907554019418300346449699060960866445087348050710784842626909121568643760585661408480992254829074374674121960676651284174977612406354318027711264377758683206075190658653864580877280138409459691284151770808984659424969145342780738502435297282480797623024021509692864328237817579086298684548852710403867850030736936631208343199287532358590284179922472529747680069567481291004853666801453746217629594486600043519050516651714100375643113052467945029426994311780014255411097641649940805930518548260764202115436023341849021829719347832855762410810002527790492502095647749113832949619831512734394841213506980130767946959432498148052959795313358007188108638624055323997398808636861806736462128844566138125644387512073055135504067926749468998904217267342181399256356681007998948999715296536437109341428420332360628628216962287763946693114137563165466214120768125136433974315010300472057672964211385318457691143784091316702656142751382376835466711883888940446868162250665520858655646039750058321412958618831553641105342293299212498666489163025756491456659050539162787685055484745078989052383084624341698559426658483248284884916050773028816422164243065962133674229725184505532830221248771687384292274408794146066149824654318195941617217789550633073489031203923152407313558121499592095619374872089092454342513197499191396030698807244440103908697173814632339573293639123318080821416909767547230178497822521260242888765017657717173970522729373656617495074166004479901816406501206179908707394882772848494630862187323216645621577866956475180924213172461396121348804373517283462156208200599604757306058418812387242712654969682677248692312748651614203989474841052534113979997494073005792614179806388187009696326242271155882910934895425828406259637069273545728481215474104581469785486120625729000819958588346460261815876351927134508049300209053118860873637050399838834194479371752486856183953086885022584620247451452546051853282780132873234490652862285449766162891193730861514132627767829298669875147979410584435009266728925364908896708349183173408806642724691676894148829296438261469950419499115665599724576590320067047327757727590505406924301057922698575051579174841131078303451297973136212307337056989106907349437707074245461451431843077514202364126654592256760601470263381414530890123426157758370718305826937719786945291642798655213696681024960904008922625865923925100522339645295927808334417377775260707696607550317927809661478403153611732112177848653648016792176603453165644869396959829048840705623307597666355708589130839683765291222429217426798807958278699509357971922469379784519329981185077337350726812472472977124866433055115705666921246463573687479588752580198562452139380297307927366098880708706212511502897001357884360418521005159593067029555664333506964353332874301406371934257901323566014637517161729802460637984639046061754547785149195825121129158097924544127631886189446386665610284049836886221144829107006237504582964076267529618353005904459987337855040749219175628345037315544914299232020590109366143625103415391601186562316748143431936703837531606443010762262152198575262495350143169216330683301401069293618500370758950459916844827568614806832950627295159830515894907271688334969029975609902132812592916054521111404624462103705545967155173905147791141985547706710395532179059939828888064997635534878743631654762427030103008201595804709862684385353816589124983801252138188745778802576118689718480111549620702676742508099485333831853818928347947804718037725748254016836625577397555383225839027169238693343507660697203386481104338679744353743941423818785046901050557092944938070943431844358824164699350973477265710510354290539908578918919815188252673796486890022313799721298788594169845424820056529206761115702202290702466174320946453024234363713229764333530847083009512266416808306717443805825861787996137873269439151065130133061837237194966141527427569019619582112806510969368593901685350182259699575290817130586266740384355003682430528081686684069398969139324660316055640433566731476220814511433447367483605227096024772179030518904359443118211717499863143454452667146928826235874871795330414572518996834554145266476382155448210907618712914276156847514399197329888308396350362748916739592490607499340119273748885732870126107215185762186466806757242258602594488074033663819792903688120183326778445993258173495257050218444983442357178549127465851412530594445948792114825304598519812973730179379355704343944100018911757831339532585822566160996931759853645465743102407089399172225509928829598647192500136841936602545509115132605554463019717425701130676286540030444063607337431553405720291188285524600822348665508066974123500582571432717409039651065442532819977875983646215739408588174508812180302205711005281758624017202320781632416550085552202440542779065839343342167177968032323340581845555380833151254136079578525400264104706942015452048981336600973311897918284126485306802198175069109076633078196226375107214026903796123257246482133272221282184506290825720000945167268802520507709388829885242530966443777042874311166224058556796588020452721978343804355485777204833765145776454966879044469407046694744993619067388781405229737328263354140662323637784090731045217003346001575537666800271562166103169223948242150432866188203693596125463945530088397857915805541099467905822730342151889739862393041050104992390833358036596223026715342590100508982433290323121990345075694481873937393804419363727061908687760393451317929616224508050476869795756545895376264377770511428416411161164809146797017449655410408508716661376584076451884013738301922112002930907362925168687429876948314809208750590965295580924286592928032007908136218309252843015598335901138037305308593744396377149685034034220868435883130793923307942857792984879501399424447672872961914996689665351488368898144836592558505036795912882971578588233313200956655624916382133244335841873578133701697351333038178251812911187026952450166780072619728751130317105803617730982476132079288403698787956750613305908277312385795329858665729596176214799430325037365220305770527596349404285290800474513573659799371481078081474959233981371546636652648216369896033210853674499423091102086588833506496961145967520255672816408007820092138893549938928126818187144626947362438137980602865007972926685780021756045662254764542176498962694634495717908152836982368674226499085978565024464976887670466215553353274859410757239229909643476941061682399327499779517161751671054760576537115456718472271817342589224900458241165338659873037570970561440441008836365149835392042887824015941986635384833761101761442690847041351365967909657321385491515602890310160757509472737095190109774182888488834163154323859483662859639220256057708895768538393132506282683303519963314601764999893817227412950607960605695811206204014131188810421586538963122766306268803894036843242694962117030536387868034810409523250260448412737379549643502654905473993091425330553090395850664750308369813820013528559466329586098230531740370681216145759711359605435483880423474812940911392334583913162692755597694500390801783088360874282141243693791184535840352519212109475199805216526335642776961231031429705165136314069786776741793465656636559384220468064978104084583128017632016353497022673491555431246341448561986844435232199856468661629746463051396703148422860287471599659220331531775158228906398322152365216076874373163925487753965602053013659904806176115234828517425875701095335714773058357728358960560548170206699712847434674081377814488726786675679217014377896981644598392328772675623595899331030506785487797253046354298739056298186170223008402510295653518956149317192920835809962579689263338333242090401015800160566520960108586103651001748515147422013966325063232949555706656015142081697642940652886029001084577652635182808645622003085663978355330091806107327774175026088634596177630737110119543944815140734784078386667190777222233580665792829526680654765325054396209431167648528385919770626382872421710531366114239367572844482068135267970259001661185624034179579621880940181042145268158364230927253688968650587262544827472728673264329933144970534262590706650899530463151249913978175309353043757681539492373767026343398497871177769103791297610682558154818531631013432047924361521489807399996809174280091416474855391423671148489393880967301567462160374570373324473568790488242024632236490505427601908295293356384867776129740427376988610967100973551416219568044166392473082771114226974438220701153743649912756631316720354894596429794202076305126902728336253936214464288952267375259982158500982706385469770109312501057948170293330368024025983727116056541661575908721700823695446589170093157832000440947826815151966234980786005920390532814012994321190164610232106757996980778203900752391562319800843907076260361485975954036891355854671115900657333631851621879502166455755720280547358731378611195112378865098966588824271643625470717523600327571134563505773094063702914406175021927163117547725484554382538736811161141102201607618127393071196031994625181393301303965923089572714251966974919007069455035450521770357022667100823901801739998712658925873245764972597276889112629649901508335578586391006647517485210170914682803298310324573879327546493535110147321322682963498551949085915404551078543916530296382176965562580275082680197965101658835124616862055282562312411953917181121318249606118342403196637508922306302660476256648072613633092097940540736118586937009479774635610031264147895508009586530629047305275068133712075611947055956908553190345961905476717941199438241548533329464551885166836272687267686449838733059614832857037366016844963971087533406492551126775768763914325274096090932658761256807604999799020196049668692227440415113411525504329839644452792357379057268527925878830687330319797409767117858421634298309117025128978188013459589994640252587917906820651234073128535261238172695122709862264578989711274449530480248148038268640229446587921094492999984579686571564626022564238138693953714471764244848782547835580299052238256338265657980380781144126753972336387479469692235029071027216118405829775294643111736816163475620630671557463655378970338288122043219198991634383707682668399112674705977396992897937764486884871309079021957378808249956931227787691802160550312325259262053502947537459458000539177613838810890745647654823441082422349977600088523892862711467567977100349410476133585484728989697605585257435127815263419440083824892232195972048594114234394204133852129857735210232296284675344159200847712515787423148251075211692729072106872973684828814258538197636729984609735226687560213234403067451840197456483503167334901398591727085419346871436909967759545584299607889458147856789199090478034783889352258645396674777107594325685025924454493870158626379712730308694069958417144468568758831787590579125430843351219012995544830438227765546196879911267114270580492278565644286482635468840712063589801552449534239148499876014636694318580412740027364394148004251190921708280942237908969129753395523879690017726308969264750628957072116724541936528899493832580975807383075663442364165181811738983631912126913152753920270507931075670264813041090795109812272560899410602548026073934414680389969012081806522531650549254375576091565901669927255638490782645363930835122109645877311151042744076034589542325242532285714279130256467808472071835474499468777187962191294267016137774914726587550957458524503949354041133285224410027735435541727467495948869150850726693629389171281298921845815561752954497585072235672289690632114602035354685990722030004398712825889695134714914758876190012362657332777741783641622089268240601665407967175269602411539593856264823284198520891469147185117051395918069671140471652020178066997919529163368266396053473823582023263804312574177743874274766630270973691730439131048283370239030829288681929127584508547723906583617171222105698910379131465352703236656760553022998710933889869856016598235763793269269840063040554287666937977949925255458852107957342077969552113557541667198521212131821175134057124890559506385445014162039749188147322318747497777256932361913499860347761196805852730283120098836601224552864082147869101808471569857130396585698963972560393415651188112365270036944758967614467400523686617673438302590478074836936180823535110536782236535962348827934257588141206624622416374601673449578089703458827344283244776323755308270057152688487804252779140822006661425416106787343849197761671105170847389008689301558418972280498895981831075875485926736619071960596410583895216016452644956598079756306498358973089655335949756312798257667507701914589500922235603049965730287368345932797595783916854199179018944354313063530320023741642968556597019568101726197293787380486928647988725009013484870153199425957703082171764032355097552611298938243308528277965898617223779300462300227169779894909955498634234352918236386305433860325421631976961367824529279160715236236421562641346778392398840563452327528308123594993670041144459874223325673110302334964959624403993669277341233182049623728537873967504396297617873908258719537676801911488591638075344771833854908000545230083288298640640451236547650011589667421292204711022159657226614381472041837917526587527398841291561793968447913304740049952154222513482525464873974927970746396935099988828391702839053392227572107087052057032317260609253870812253296726231398759758088137270235444074973102126463213938259351771031840957339515127631592278457655068364652827649252865863020954312105532672413376396592512450692004606865970027439995437256056928173123246091776069246704624447096248923784913340570785500713191432234097845145989927621537946349542262593817415271437845257168989119197098092567572409500644300918941616483348758876455665223521598708170601131358625837563839532496425506237613881929335920074451566677290292039717527231457065441783100204253172708575907640630012617208769573791471273212200139981948968228819386258824184309426546121898130242466663213210829550074572384277172601051405640993704565779111468416589797314732996896787186580632680425082374884083089264571789272851413784380847271646957020438348515579631324079805250480862338514218301366206175818258975061990654770991820488846494117759989505899324199501575574247762329126947177786171229703337747186773428818951681899876808419502727379837724811674642639251503088861339693080419619805333677485259185480615817232472219399979659510709568661873170271260098359624068392251491443924142887654398257411095290462105451234878535420122027767826579994458886733736469864133008329179749870036170270224064588341765472854368409860816763837526763626234948394500677240872643793135013166114275724959530958698652749925746736463819513128317845179955739400031525353933978084970583825064126876873854314745264606050894755929471331576274381772345759446753084021958086429853766549638946034777570425796905066813826818818323718593568192967564184956821124332004952251811671020712990563253589015075630776781968369944607917012760770145224823544416322508412869440295099658644095833364782875053106417387083856493487876458531263327437646289384148967717256830199458749412382152045193248317962678217257250586926544051397712056607505478073468434017341803920888119485526201010721129442787314813629985185738279843558166348443781668926824098098368711537800043432724649240251433902099880872222641443391152488566163176042009734644107073384302432892854758342881521606064512201698065041149789956067010121096399632345722422461648710536801767225021548494891740831227976778863458486421996277460827437011742755122047300733371531776808373751689320485029431679584050413274054778114171658836073035782138065372897666347823106708218223471737382007537695029355919324957002879069998623551421513672915658273426196424094501853844225704778482175687443180289265275622623936217411047399912595145951044544090425110099553040892963147572203570949386514179321767325332975897083439805692336322256856028508102446905687203030570790494814485140231145643674409650815393693578409085483309235098238488962319995718548597334426234951296816093459212715687690773996672861465915954163233821538605468215611165126706970421425528822853312168317097642137381625130745207763094569924367696711660149316138708618140575098468919377515453577987600121215165490307986104141638096971796484591213333184880537767841397394368461832472513156316038471435389754530304324460162384183919117427213125990010506767816449700446021247867718837076046087844901123788109089501034721896759166822407164703955577934305322401540982229759994397535174522569882559972360803711931393014738172632147505805982626250291147607455595215492008035227623282288263397677693081961638937390246114243488580753367326693633603107620482475322560450536752822780896154604138041506258408552912175238512996941423588722424513082199690349780513541748954405937798925384511655738701588365144288270584419165363196964424911134642361036404911370416596401180071700512938105258136323039224567426829392142285675116072337957689209258893072471875901230745827666992219020994059679930111088964611016786065763963991256959354275103840898449789324877349390415044466535867795198396109310326536886557570205325755799902093347545312748509153863175130312691535884834489947687875379506788382949136901208689394610802388104304281108003692014817051045152909485588907543566307822171663952689119359992811242857738803343941893824480090985356408135862463518636327545465365988501240831637009555699036952406990112572169049402765480396355359768217931425001974325157261989244564293319286604976061882031750253182256496385631541506562901155003737757384034172964174788582057343621350829866959652554772764628470651597401974888597618234033092564249832371855327217844367869698821974519842567169085958081938681704741537692969480130006430122902563763714583877147344007880907620862415015294009221889268290691148675801723016511236987048787970811705422154213551600730016359865837501752139058444428602485334209563018007960048093010509048140047085194540204052852129836705753952731014444487997884511288281072687282070490514760959760425914002428919828741003674447931602736440752952264602402434523525196526871827100186206428223033018064480878965606655773653880570701333537142314345799766224017986599675340294058673117056155156565278636433881599662434499515501690800134726268019416396460236187248569987462988258983279489955574945990269618246943560469804671085803342276278899752763452654325908677416207545403492249764456986847559784301890454301560971677841862647115352805310501606101506775444767075676303240842110308551959827522118908424217229621934340735440366746554051456383665913124258169611362996689908904310391760543092499758043771816839886300341748754985555151248422072012057682349919619506828670499643652719557291934892095203336655094772955584542693771509773652554753300066586302790545644881154449303804001408385735354089902491333074345860950618310344261780310121467078881454844126866139768505177459263319837224502185907400833410486556128955508127511551838788726862782430071939386373972067471605124528943748187098726294772017455149882499919213538805848184154888901090803216727240745484774213510828403638112177489769100076974830102691572493852896812913641226566892829653456637883656068441673600737878425780502731958563110629916766604342853112598065330981241760963982324983028335917512748333766239984175435079179349936064380270181746348665754546015627006549146941339196092383041248625141668060496128260866841082079903188651065990451637458113070842766632037701611306098009889817555379051662894706415227339366909860403458326345360190356160137968939422559945230875754994945252644787537598118691378521499692379476919648929839949356146621189691371856040336617348647318645958990770871758622560024618047105061582422717538470683902587636184384532704142620680848699407038236197034950660412370180318112610589806439975948684942952092746675319869644461472472396053812240311403159300347753847707274457659517170057950899399740636067661079161491020710986803336913647178768671581689041464202362135980694695073570654153681533755120413916369510233501506495610872865063262761440725636944646487730757562538987649227877935571921961682631003149397099396623740706706708545103958927210701177664749764895115729827318414877646990292831792956931460042777442149620927821459199732630487347105327202842203274648547255453174045389356210716360383810308764950636056249996672412154419059876368998039601380740537131353895972316480964630051772870716289102173582833689609949455643335202934829845621037432372212041372283261339270565394355097585693593766131183116319370770284256368158648677445424169048703557204939639124243776456001075047013889866702827262062339728788405479150715090639236729381361058584091640268831125412110863047059022906859295249146960492290274806303054452003716120230817502251953203299967248159769180203831797223588279506594162204337514841465833055957243370608259288157052721845017830898422343332354457315421127657766859025383181681435358162445771906919393118971709616338424936150610934481170866008175259364951552982160254451738911205048636542548067684322821902014287232592536886375999326772405729351540453569238907935041234791322477224552975444748918278833724496396285163092843694910720820963069339889858082174664390983973208420401414715487214261285917623269266177516375447387151669021192402698057131932597371006251667478561624539687838417078960736803275075878443703498958285330510295275216862754138743290033666049448993281220150551392624784528019094306975096000739693861590164589511938579970025359771495194583382927245651028118118668982398983433911732249151111683826947864766912491957189515914230430426716568040596040485962718132386975121410909523012671686599135293870943499698913446487107200372930332343870968359278560706939578208286906768320190552711114107290426050466620044296691601378290185899922962936209548411987248659102430141753580898183641150598498125391320225699848963233454946742980160827910414562323697889657214754606677865208688303829707439842724893644141666036573818637274338484021060847868873758238393646557381112599860703256047964674306005244989285354220558269568798050337768264777517889624085554927090768883675198732427750886563826118124699490052859937940557713502261394194156104722786652984190326278382132988442930833667944503669954686603190817015248658486562430669162954559353462142319680021746288539363407842080829820490163624750826899088298222348871878903932180126412557540843431205786382481252835579790561319426239451921698115632582626443019248160275418753173252734393628268266198355784465697284703228573022277331926240502874791068185307901555228450165845720049981702107446885593604924414489681335199457005665667685791813112192248540856027446802999489372799365845644786806706208056407098043279621877524250139522693476558951117810126503937740750555702073385634595361150055122448604801349340868967739915413844156731192521929942715246963468118764484544203634421171334078686937909397759782075954970046865237904359385510758907229813948467073115337938625929759258653618724297180163523597413439563840988470394606660879467412625128616896953430080800011967698301070961924222715814313141962728589766628986384402145596456313746204592525931388520636858419493832398988720801170301006600721306332430355549543051624893174282073235766533419369271974222701657000859673986343130030582223791239370809409828434279653082989271390530898811789893234794605399522953769341312585020190610907295338258826733997279199722676004948863041791768390704702846958706447770455680577536525114774368431203211099424394386211469664053203672080116703374507312700052267368383210245088390045546178899014327110990903354121694159963754737671159192124482895547680646404389148933436985052901085243667386133197604044722072968280564352603925816458405975505611660444018597429494847707042114573583229320105746757613780398804202323322188296695082552902202001745042186516233773253862375125216383519047641163441987114514736823296873488267115322450199400036050899000394469547118086304347522671635604303730033541664622697818367479419412650737958889185788239534442278276172260588721296101916377460094598485497822209624799443711847377387376587987060947336465934851127716759432997009243083133152282030338630709658466354818647621676188840354356139586572472526889415437659603747611247505697200533595446025897922115793334301120265096333784265175296534640660372897870561416717855093320175385198956667237469251646945900606924798044140964274484188659283474651621618058905269326596504900708094907442412493180167272219132931463498848635397668300755371078949409031185933263877600757530829959414282083820465384563456672429231260233305217595147564579039243144012589083413677212803353837212728259285891944339734963073312942485250969374438557868997241162792918850643734677012208031803976377685226304204704230002462983089646343680717768966056739076611147037722057648141524166802093381864698665322694952756566254448368406403258400823856628166701640564979558478170760830955484154936335102028936899077139212341823828545399129292397732477554311585021732564472763635353538149830468276711095335707294002648287810682967491523635521606644924753172028070488094135737092635139516234533343443910132847455198786884461166592386858568635336092844949455562060888896124855844638640667950242738251215160540829806663829446848749300176412053674627806164104140707845564488538617375464040468262948490681529173684719423589092172821661122426889251514207472393183537282811442549523264195421625589333669687292991178518617044074487622543154114310177497893090430188352867729006746489939709534812025968688626571826942060206737857091303183742215525961753057885764735207686475241232806354961028241998665399205720076189713078715656888551441692537186932463416284751454463751474732153008841769200217067053074436401732738682294800391630121515669300527244797285434084072261446595028641914250420064571779130079904300913611390893336387000307860966321734583176279937355810370056684119243769251028501844409688294588663200058550284253832274083070537877040196432726064459016786513113364162233697033700033982812083036430325599400017315017888660876638927298039682646376254055833244933518385928208326554950501124080472553985844473360891239218107194363136800230557998510544761011969465806390695463367788291535674891069068817158008445683702723765213196154251242336538841294361065222291856036865206237448267730399527409674349467567512040161734072315107529388749971210689639908394939212797815120195069664946971602322442577899446011105481525995244204377185071348443944928508644723872319453614264334370932450475549649877528140877601080954649554316439521759031513124721506281345449245753810927068516334324526486125626395671588542609298677228755011533449938021593100521179830546138737467732344672349382334573511839556218967052879534814744773881280009368311495732445637953713512030773024169050304270930340838834172257581025656676905313039308706832872018928918870338296780942311192616967362659856651422575112662547895527594108586728234966098301437903555638680213567698300214704105626094589507465464759905998857213001670626077791840561713205043045852499868660274173692767362624502508173807324279344695906044141557772736550628512739097544528915218373353948783486708238117550109839217073604096525347536549688829358697966823583898987775714394947541324648373529388490581430601863455588396300069939389308296363572997450758233133516993142619374678816608480568449092372964229078964713533823277640581326175313045011091884768487220424089479334730217402997898234471120137283344148990412544082041982749243557629838135582951975908630463624606239988281245676812375195328441043614000709093115653928019411427138830881491403788403167660795639417149166158401838321693669235304141738144757756170856897233435407968275156712959955991279641764182292194166351195619561761064579844350082408766339594705415573569055243202937877479322716940845150442495011830943647103915764735515435129187402647069348034997294909661253764902516610806646485555481138334499288936348829519947759977230874955838849318694015736444654519371353335796870834403451985428544518827790273554792019545285787825579682479091972331870036546731899919572800778998519404860961292451628621652905271282460147060540416927190978474432119607305026163096759898293109722723439282557393381670713804476433404068295201827524464875592719526718296280778669368487600707414849945500545875543934977473070930603900271858241836905746415729339759057500728193261229208133604649162321730281709027311722698228098028241277713915066616784106073372363936948596856797723763815810827344058124426358469485702726582093793695514063904526359303015816180409387230524420451627700132245836665497063847575378691451599671479380648402064496616031123957225908328911508113165044624983410647977120860459250123941533624090944748672492790681467118089336343434275203433457869062100365638657204218526652654855955524394345801477970652449099052840976103695159008446569623609554593398073815201364941083930670769162461361782788761436199757373304616920274866250358017909455613541986013741621096545104555242600873245458395258291102757162459440470567488235474880525919701558652919622588084994892217297189522278508147321366211615963132125604252715788222870507304736304706622196120362995924093158921372990088762009781017685388501795618378228661494838001196136231178189612338553955444607277989955475091371937763723120794921453002097565022731862999528430177982599924294411909746911493398804944332632073460306450799634561242567514010049148734163578533475585088360935166051897473586500276629124927606635207117777288165839134906481061586967107246987228485915609370648382774775956077987069352213865067295261301450436294318740404840413481685889246950124377051247779671974752126007032069026262676419889236490129743423829670408288871615199704543071424390696069300106349657033409206908309675978608012792984081536767944814465937921698914003410149243571284697314106668605395023664001699841652203155322767736818547751297926440031323757861735373550395239727510871920897729897925172926007840154775230124520530896157084487731985079550312288123726903424690077386383200305065037020854627071843749760065574929759683356366127060772795368564119752500989916215116706442812755631141769920219777219459213830265519565159025875256076113190331048582660755740260548006810585479443146255457906511664992331532292824241813600436692703601189368828505066493698784345087445796356523977460033584138941979260566998336163821722742995135470911426516141481381927723061400882287878725340344558740422048458174338745574385718415679905836010288300917831525823884021745556465031654885649019984048233754631779295319043092282224462067813360699970027451073479892909133085521055238007421897652703668125716290580988902364846100269924513569860338072875357432240825314804744040157930752905022463045569543091065663068081507847503119388327396131936295497451907597022408494504850315239099159275694207523087269983840511225805977834069326052297912958910225250632787199299662860495708567120923200072286521109172045748136253860565224554237083790555198115863828297485716947523719594040065323308646096092334874245546500984008152872212601530830786899324538814534732479795077974827235613352975784608102331761733527043347391191377308288462648581745365038977478465393393399742399706496382875653877030889947184086219057317633526835326619030283417130950680934007264847916600252527941581743443273382403585705912933193699885825914803216845897874045015461687533967844147087343391038677039248215450851802529383137154503792187500857162048182903019305672419206822731614194162852221116079471779088074193113905294477742877026301861563909303572228129693887224542845901554633097187137274114516205207506139195256857002658256883560496861632989313890797737527531640728137743983195885578973426555753466122165949227636565158742105095183829110895351426426868229676260031138480946398689676417112711726958053272197333715364388817361106914510585656902353070477483263324455759829639104656891116851837199829041101352262823664410965419129046892545032814675124430632265815313873006574088256865419330931081004358136990168191427692179934874082075971374196807855647962434379090786286484325814238818142209573863521551077548005682127295584246478105598214468237828522235880485102565351925186201979715185652201872434416821013882684356392331023702837359413213155205367969999327858567919335589156072230249763032304077299365900649265653073892815248897674055784387050391676873393702094264432538058048842966687716580874121878359016106563737435946607546974233470561940754832246653773212709478230311753279118649433496884432702196499356969690240457967544991487493973571489502532682823547216854696147341739930385892443011391250642186719011576091375198794521732782554891324196742115448395627356247681028628016568838552629659636608243568114041654640856546130224875121079036640237073834186222488112972739466474608029037514376248320623159838629226342169419458908581241249339898623843334207234371648150027144227459474754044853042817056756118008086417423176907051329930792451234708539546351500641510994032285467561262399216113643923195990764989617534535459877572522386152562619494868998634435696267765195729066412106965545095608082374116628990148325910392951416506259889936051564420486994282297679743633488153165824169223650956865930435810524852037255595645082563763963308381758113449697709293027323916636973172859177231963782113672455336925627001215419871145842947055292590720349415486689651840320820123545208131949491671224256101966048563920188857566925154637433682232802515490019631595625116770120512344175905433303880888849262867723194487357565461848978907793750556970152894253452942151898298067735633892991603041220555660841836369099355070378964164179366967145343236662156215848956060129495038398067643935552706634543469567169045722809324599740609015160193017478598366140027704119458262621423645921870379630624329328736252107828355770735963360326482343326973156728060251203519876082182589124592046195182551676920671466016242477296197269440065976563842337257813500887181498082407869903510195181081889557542782514316374061636887294107143977726733466133467774622144845697178196479469058994670727859992559045554134563939928060642634024802565124253672364580582722821208060432200620135467202806675473646234320006663785991439941701279505218448730897892650941541746727520852909372129615760732631349550026907376739387439229682732347059806861496303717557218776583869901794401995786446466548116031902341391001494538402358256821670790289795248377190556710368421155699979080559473221678265922530419100667527860029499947828538390301339821106290066929925778512131483070569963563536732181974367560748733815297271596139135795944524781250729355694388586962702575695979555399822306338324825208973101017064934385913020272394150720849150832575001145961366766442510343019253389166956030791043173284148834281350667228251079105556055466147590073172864904788895950045096516685660179802621614636921958159997130344400205466074602739557951288876815837264667574704402626140347007391758011761994764768458684849132071548455926636537290107108685117225032161596688961800633623722166295925748227055636848366855974490065433239044845798647184113844228530242699400732344984965217165062171028837555331993068037015521447958237287080456802467271982123308818515648080382910981065876108250669561822749616247812636044709414183297083445133476573985044973712334961006493128905880001420909289324071105202591191940508316986352650595725445619451234487262330305201991981283462540204151803242910731832626435764393335798937965850262777445504065379951048835378815443299238004385907936414232096361749537221985216477702715344943056906620970533651370950064048728300586321494366702593665273429722050787149859965112635216811316383351753445735040669753529409503737193528362600099575663666278364309725911635469392824461223289412569923017666124922752948784884710885492754118209639205849093553538272893758605991489465883977774153683670066633215924393141345578811891244273985904741911045384548973653658926077914577067837823179922786455965246838464591444491863476081336512308980830342814263871383720169515728489948580920026319297577111470855657637787743643633334449334187703020271055219061333690119363457402002868377414725635709525563992314341980111299161162944530836055420355553179548354263130159479538702598024972062460590909203221513609719731286748915659405718601656786359216618823156020393194331792660774094848689700413663006228162698374883474005412784623503974913546998528115088064933445217687001229401579983795672610030096312171051529749262390133831543955628475391098697437694645290062673831013607328356420525122639942542927524069693724550820201503703195423870669143869164211078684517310329959121475740186257669462483150571286694352727441015392189446750359228395274608247679193546518263466813694403370119704188223382432103487468702951255920561727417055229653478243149342112206016761444005841690053774778486422749489126069831994050986413860218495239578970343962313523379958734273829087123813708527765930261117097440996505762795339361304491254195721578421514062729827358931863698246461974953036916923995585619247656803288530667156150167722685582593655484678990683140836320200651398650865680624107331533520447140118579032293890473764322557930731119648842544109535510597241009389226679378893136122968368950833911065989728966329960319289537899680632123484139059136550206934952553406563553804457465062044832685557872122269890543959363351278448012694291776198934315831527186717247823126079081557885268992829197913347843904717515434237856449417770967321729975132790990337783437820448627058565652588524089043814976722008912573389170014994477425165042202020324711227274985157458383526561982292190358490614516186602765715284717851630681666225035091383749807237638854421892515039978225484856930881634656190460481774955404285502073670533132524054682337386580218649142727855493850848506523873738357072647229515047514755376014268314429313074978669744690846040661966634813094452040876156150671423318550243533893109049745000955006809422399688232518731416021259708632394310308064416808136321201227122736256829177511132641321533803279116206204741265192498149983822728166214738708992305892626045014451065395990037432463269410846291013466316663621860994693899131899843979552109895349187964248254695159751504180081051448888566383353735829672005025233939740098231916957141274471947448904991547699144845086753735991135673745425243834667884111348492473304604098296677723208313763074278596541867770276389272361474195639194291378997241195465680151969978184364540465252394733634009727074668025219922276563257170385730362776100355749079928225528104558240967366521925465277454280218561478151217409431951574366735187317441049448245212241256063601093047779530518568425458651653054361118447300313107277556458921109996739031347979365114536720156172558077061395351748216795572856198055578820219311749662220311673219578908231053656181753462479736985194524707306391997258486888906145116041526012057230038013656537191751011947978971855842072531396732250413024008489006232449882571011198925652914668746877422859384396717418459248694883615522401629522444050187400781986900145413900569324781778663918133149224308377474485286292280735439166924517842737935888337048312939747529495113854626830976146779619026359284949177378479372968806117215010781685638509573980973587801332836321223285550139673949518705289957069421180853737076828425511175194510828890908448348701317409254434801084137891626883834239612393547488470643192650212179045397155635962698171851742994856163182955898369545053620977756690443024022788945944905280398205686519058706477502243428970138235392357297650295810640572128346547953055979795493829618887958385160911854599748341087626174623682713916759060981042003050959271458909071134485276383691440877261974620446575318683499286942282206436911954005535831341120071296531355235932875221829816792384153537654686762172812799784595648310689906030763881930331602905782434192980548204685748636791606480820657528683578165263718506698849681357562582395911754601109036078611059404346570583048340935359204181050031097215053822698005695513152004853611728730109456304545204095618165809120900275247855274789613821219613977269110390121719756136103733619325027495150328885363454011582235559163541855484497126281453314218403792036679818489799248223447220279352066669850362208849066332714997798056476371052351975560580304662785896684849188886597553239371728899513633561022364386097406993131116889349831880099721660003827060022093790553338379375261142212685418803687602150458457879869614539394566418007952634816670582462553772447585369076832197316954157993286186066488830480607556973788226637350597653477048581357817834959496479928572988164871739520093307756104941307444715792386532491729295234194412066625181142133989119081945678293469905973527328121194829320166952892791022764389739096499198177899865345747005306667429834730968249209441419143420933845876958769250335570287182606782898443838273167327381840877944764529721619757184180655712206174953989923011449000613658470224826600873693407938252548928695327172526175476070065884829443783350212493793092223522303903803720213648005101598705370827043374657598195286196009149765061864235723988358654615518790823314033082255039373436673361057995011016057920936469525774410391883207413901749502637085995971634842555889927072742513647980821418125283716075006569158797030846952617924947108108357741285217937981774056844881342500219506501358028968919157870497838375288520334458585644620602977217142324119007975329246463542618151343874450671280283169067317151147343667179630510673120890720702166625824596547700421894596360973228699230843287532772310809846093840787586502103133653112929881125374171329745331914716965299026910621697583511217840844037314369530903541494127786198935972651120004171326934125477543674274425161907082813201169541335270142318111498565037830580796356589897429490840860974432138892616081342851253789581931489027329308469912612290809641174055212025986390373795095499876902226799343393201458190376758008642003706299587624702802970456105291617191578329853002424455549525439408570994536670433481946545889677650120484752608911301106841235523949916549356140731481883030349626661322460218652332459242199839771244075394526480106021192516749824391363628577429991365884780991499980662326593966002170139815134418095834822041063137888910440434858249564714198718791334323740934517813879976677066033223945453637712064087737441972822317112669843564262626086366229144968707885899369518823856665573682390847785498988546038606783795188271724017092562553233771275060920579095486322918592206134317826706219587283651185447850313333967600464262875492806889959721087899502513362853774646886387159128546432427009028816052533323313855979077546447063373939520490742661251304451683225258844583399876767872337828232101747409122824092679708972485760211623881692222370232796812743120656383959093709079615624413175551150684398257559000822708912654774390290989181179753538295279005117559079055233153796161375290783104525397832309294133226645033524732354704282020436627978299791282332785982481545020992906353378717622418265862540936608056661592756851894115535762136078706934579986317662120312659655742187408637222633200657133024247369415081685891666092571107878368480850820616938958884397450565150716452380526841379419165907014956926702677419198481700661386897082710180834589081884092937298349993422875368774518189197221002944058024584405026480287735744268462459519032265841670170818580654868390740512912871965816579132131133638164878457831924654043006008857999743076673323800896719127092136801147536309672225270664325857036064043270807055698284840112181671585481450577310540028993085032003971180912674768497360858884610745736097042957098249102275110787552787991021185811550513357547508971933068604391746159074192962506584173677345809947381599831993978645236083578336259517961740300844452672834583714043779412356377325273742509084193568268848998130454494186827932429963856848274179096007100223294489273815641663665356227778057209075841797678658713236664582829635531193934224460166868667299791710152458641682401096801943853018827395759972403093237952987976575707409868486430338319783336483454428770719520495969823988252198330096214133860131208166895647518503233618020288521870232692349097566737784765294470740539624752145178884168038959916418735770079706842863864464707977651587827172586132446758060934067063642101435199787551351588486792100428400411542382203066859567191233311355158930238135852352914236000786061053980058183027937933271734473174586308855444713382262056971493868148299049392469305999764126453791278735856504161107630870221911138781232567153584874402856259909336598866253003494027653802698381726398319845176697332791880712507925024030609011522063305753866246578948848959071405584700769566563037734955021975838751831203583686807777497750778751646369296927976450096897677280487181029999888592503829252198940993593909032633356670078145251240980205320300811139298608195040951495430622251517234354238499255528426824192766657963976690305271716061581585204069090706728581835682059034957605138045831242174063517096042817540838106600431928568383536729571721241138849965005623165660715620609391225115556055065498421693606545501465106532675440940779676296474451160908015784170207897898483454585184530921042210237809195995189693148963332261088775944035720329742132998568490091791142998061000847473207388965556495772295578918066880601704855450694377786544812309319684263158236420486068312498158529760754873189820754659277787999831540127703691322731862744867036096927278735367087522790482592328878218080354898134967887442578576869347195741380581600963012591017410403787698635002452678085291563249178670585220552381401188239238161984682004419331006122310965353878329265167460269259204344205744974698355508810175114258701560374231089875966808365552093427355396579233355430870826641633828437440066840024465924547861880966088533093389888428942436057131303168544070738429394936039824743986629976149861999825312590709765785986621670742844844916290125687540763996907619391452956801671127390325074346095347555779019192310180157030235904422205102137936997930363897947345744878617872538074496915050374572622797865695445199277004768543015065836357535472276821042814050301124372977796535584541045760303955011776742435303688076218450220514520642123773655529827261744266670437213317038851930260474557492898511472080791405305413949808603567171891644117571017797891499474165124221871321571202186504355968659029832171094469731433365737223806722001063164907652749127895469068432605908187795094256114410159643105299225689459826773152911649872189894509513312156090396237058046247483198926566728126451120472603299573201680465237114577995881770803995162366919777205439146272312889321658903022004339458943473185738690888582938820590262651208352314783819029337775997798575019302388005415051650477745732919899670952957302307328210518365033415069958719540298414580279453235890867774651269071813739799376931368941062087679369619152052491792676248371596155077005210199539593676015474387085253820972388911546542228897547196934304604175801770533778493245386523512714204954878049160702250902716538515508376071388817796515327095454341579298802289148160578108806479216665455677396530842608673031732396465750234610697313648358699819053449915212794139731760997335969645760623796334829944179562116426547359939807233466095548205613042830325866494527868852382639316706352489016380486566438133545746778856195426926185491875900778692596616887194858183953857854508464209298634323560856511795341992441304406176604861783648776969105498766560814062408778480905048257200344809004417537971730766479514673392944922463306862765252720537512041013203286539288134368876306576714137620749025945794121146470651344375167920796541033575573890111086811551711962637265791674357920106549522661844051128984003574857515210882429315367832582043487328648128296605762536168979572385502538959189454303732713208562065228681372132240410081247259507679492898429547786274116004044492007802135541170353085872259939155158517575758573797088976267230358855536705242468688654365679097403701480190819350857981798227153051349104457789128991273503889733366844319354784184482985988115027735265011418746935853971912579130983877348902953399975168724062817956116386851103873712560546275189381388977926810321137280488225445909900469204280654471585661052779684156529156295547733181951990200486608044357270325789014256771768305666559694748909289157668522559559939692052433336123948865933009000267302860252905701965604053500584548709253888873504108458648326364999132890796663125517224387034335589873626795693461645134328036165356429725056820305150158692534112516994796675553981051030674716119919788051027951050433523839992319556045320669423339111766726438346592593793487358493977164542433401154122483568019998367131030657111487685110031895864503786784719713445346777397461827502843899460647425117668230891098660920685750025474654402994517675733276394295190686753055075684214963231681661668009293957292067097315000475833422453682380909938419844486273577710418446121680725853207793678254177461434506248398003685133482865154394270913585898000588145431062547436332336306593121784232824001029299405191579461823016898187276826349375125787136909570464359078516579041419820468285599214796312066719097078304943491418781506184833711130196678195339607416077014735366655939933410126637014002077423801661660006572962047877668037528902476875332662398818591089497576102592619167030538738684399287070841629398325560419174907986573034482973697361901944240373945756639627961677639310109209855934234956587724973937192518617414132241433502921989807536155249382968748142606238789159150921087880506521223769891476615619431586225024476801593591617185349498502188637398147308218043417915280261185915779233180092748607867145146380757559887297988295119698666761571514930204712083858545661557829830274141759048868566006449803913052517055732890373043985303094113322426668131819628566850594941729929812882484583335805322594804765182591418300944297930720334012852513388253686220684677582157530747852224911042629181861767861668561230673993977065771876841028157474380112140549084690858675713996865758230477742077803169319087016905927413630753347386317185156573835545990618674525604380748639972178313563997381432323959692118075719823825521257825707292037129182030215274370559825320646543258687373730872663017295840711271968128386927351997538802650126188031119155238849033531468917556262117364802509087406289317297376153750801790672714153463929622647588738118218583736711698882366241055527022100958495990171761835697886776845321188100686246779148247477140146877165101425462120704919203498425324128129701405654056537565557473300837045665058853907926044789039295987088392095097882937612509867774441692117334214082802955221935505302347623932132587795221670489471971879804548041168113560732110563285929839524480656242242790979370999816428338732852682217491728069959563707141297008797970968974783482404910112654986324509361928423762285809037196016112068335738772315073997489243208617602195301850745572332893446073741575121776014315455102089360598726103399872653386851952374956744559452032407544054659445552543540344409420079227276821654268915015750420923088234328195007260770177767163489509484571588773122617785691963615817541241435896571801983869793529646194945003624634918085614725794060907015043780411565438282239244256024624483083769787652353647814473132820571872991123140052277901550790283456878773290259360582102755070354285196899937154562275453538035841181654233774103293880638206798730242916114330038099544154813023774354877067834280202306107664160730370229485730990156309334784867386910000873648458852216723972766003100604711455636338438978651673250137567740223538509819729163044081307824314062464374007129310429402733158820916206015194198574431297924196780494726040103687468978414390617473222484865992165144716151852170491166318975368592527524155090084015655518205120671613326764884358273155573814231838346637659221771749572647638095032053355189762870072383044142140726879218305581494240932549235028044478664515189823407001742872654116527138857258112352876626360311954634126502375638105420010625990837240166849545574621976014006449477594467771192279231904092842141964701334364892635144006316939801128098272877013619936436576233706919130823517690659847265521851772427386313075153323206142551894390256126262781630145451984986467250622934195264193837360309840221716251773033853659819982404935158993198138197174821992187334969376484740702646459452361191374984879219539267493126595751464828234608940142186579003574306771896105124408884476038687279754401688446050769471067282013337031919571202318914997526173540723665286038666400281508178852425116676384570031386134741356013535659243901744150587947256050886456007866247994863427075427139752736221584329873124220302612618926621620874033726986698163720643943021493677036842268166842208445190991204073989300160349137811089411183771034989058043550904167332414955952493286301574559404582573011106288776230003081761801825061223975486169742430910659008433076495803485366328617095283012490355579344918387160685210862490730394589129319156952994484659134205161105351845617919254226500756591745429532391356775171068567228348632658918287659817665958104669269432794573027166263253972929601003978589242269802405239583801332894649686165037190983090735132055782901700598462798350519995229963833704835757042217969347962389548949188696658223932139570445747421475533605110161600874903694478793893515386115014958294164554075203646021203217583460570437211583289830205286043919913814685975358044751735330048476895669871134232720739925331756275855277700108972950681550945904645023672096029896148105474561664778686192929844722765473976022756649265565304039894241883548781218146185590665899944606063183615175142795880153786646998878520264538883343386745645699711651829975643296200512936485362303861393195359904580869945011326837852279524328845704888616534906578058323977615388919923305343800444969167292215568454445164086016858081718344964555801977334881208994555443965651522443377225168638508694575449333180193488863812876085343423516300475430289800939154529757594506787452588672268538262828174119082102494836442626514153253390209669939737645573417207680338763876663917636107357870942241014113119939946191027547066556929365743064487063185651335394883734566815095890455707054051579826409139323358469915064662885856674784435973153202540563064777934057848376822319274675216931919868160025868285499562440301382469734989074401702475545468554570723007264209381894412799139130727339038925269254024515779364480097125576121909108085849654386679343413533528627961306279128848691429698980800235496744236226511849341083616870974637884173572487121148172563428515896367843566157312137625725969232234162053871012693048879012225478519833378448696906566489886486729918867819165177138459342923724027909455517703484459722057693423994088560789139133701752819425989655353349282830826588222998954586373105301388417371274696331630332548811990932476078987597011576271201056540887183414226652854252552536066020814510852704508015815737372136329845339325055330002459558146921253398155709057265126371062556531391170666069371266681186977604977511230378991541984040334671197992331840567586068597394114987479409218030126990208926142153330529219077173078171406663031529416401919274552612965822444155610470576074135816684300583022169052033533643413821563570457902394331995300707439403752169153214867429939067298077372562535614525109872779730370642734362314281634285670629462837173480188594286757405740602738487642418745437762190870974565913350513124514893516873481656725109969339232632355826688496854316180841469087791091571315256217139595917015808033922244835084353642121452500821984319220163534503616381899014672733271602228659613645135459491097514179227781859222954589995931471993244483511303119993052155693687440897696463771420905184439178510198321242324844566851404939706628229501447304266117453589885986281715098464819292452375377645128295269829858619557637969649639691324835468274757871686569342628154761968819636239435178275855386172837879914574818488731753872785317050326339574411396300385453376085018651415457164506092378944318567728076354003156383127249122792326919960479483267561941771613497168016128803701415182952363108972125072916532914123781408404890069067256369550966882836252698340063758859125589850697220672185534246634650345063589075078796387233266474571082163147301262915579036566736789330970488475018711255920544279180150735226779081444766361553888737161645601644752975099356364001813907149977548293594079239568899965846929462050433011009818972474034552414407937639837422134071540199965974498901030085450426241739708427129253507171819126350120770666017098846807873086861836248384533149455295698466914341177247946253786672285234651038736750580268916063440897276143591282502703959877556974106684197559343173901165122860282299544734228409194176096840099105403503118259253920227716522171947439389309211550451456729000009507801322933452913170377726118478859792357895819130827150211729758966219001054801573686765929573644904624742958026153958594757608688622379498845074664936673590037222686811054049454150813839703411588901472396906533256794667004010452376399273319410641244893838596722038157641806847946777673436278242478559803404378316434627405235087603481114984909102311840194890426137854672448155086456335074647265401127073086327810579695407005314545369364971230990907793715449545239510432052031944300144823967270775559505962598392099134054695603586062657241816328749532280819189287410856372687267083003005055966679439556004335476996498469345881693982832201516994234956453923184958325028117136566279013697937828836382052583259216652806049764959812446859101061483020466333412572980178632039694082595466218171127378948899502135608431062704983239408182179049900669001582720775120962627414852918078816843580223355308126587378496101223783164132656659793787077547165012229477970682633297711112343102859595079972692135484054682444024240612022124272545661250029164456455897893500694248792157931011809924076717591969459963322094655513274497559354435684362898007428010477952515768437767829338619199603649253767959590917073141241036719695021713666760725948379912342525770330100111732312020061265542832897926097689045211083886159532897823016760635878208844941832653453193713766545959156192340601974969126262563892151900808091352874275217324845191603135752119741725167033371960241887080862649202461982425851691573498237071725741322086489964713032019888798994849258331456203582827587286172583124114166845358075414771078167520276132923502657403020519764527179828217228819092530746288711545824536196780683924644544470623336118952378921055548724497703741528839646257686902447875307973019040833791825800785522584465037765287706785958174769383273715208847615333636684730490942945017393667849062846958548328438610251964746919545096151747200311088215629754348211600255795266458527703161015790244822917906135035994000881394151603584049476303477787426836681362536147994797117035620320555618287051997042666560025548337763777795914282266330440013261544322054227906917293730484347168427835137632824076877238489810776837746299367376668453303273663303938853583517772987274426784111532785803619446246103457477860044959493155652229111604250307769785192835180366121710183080039953274265242743947375583142624825199249218090647025781647318245096268161975083970250623744243848563271009878971621155203468997046870648576073646331231238234132940420112736952005030686770632093917804276006826287763669194878884696259591423327315453391732789425298698240426091329245630433780446205046818198049958909067242608220155553110765665597678089469228238274630716618881990934630126808171338189671327506248894580040880629424449334592662368670779977806848199848711868599594248521600129882543663194597841795416868869423116145492745571681393759175006976457626758001249070915819831930537013574952724427257390238955436008837829126356309042430643594688150319596482158776299859370608414222291283690568967397725958761440532986400361096059741023042615207572153104755466424214559311032751041027953834027640929789795309276954703313579449724508516418478949478544633236198650001990100375830307350616787773268526124107529081382131346576623187331508842716244631867361940100842506533780307700459551712055356664406169425736164150675732310312875710373408641694939537550153610967044946065250827910213593019293514799362933842262894820234052522117317929616393298502286496976552385105160738617465146949157067427607793803734684467893116879966428075943957894733538874614339642897694554687496815839937507970802830500180545024200362504625398390788709583818757887829629304580768654089027501482821504163249444087752678956884620392080412611051358143648134088567210649232049486498884924751067495195112802784925961792916516207339961394766201641780454862657565715751285108010258588072077061615620219544535990780246211016541169031518553585224213765666463994401931569859572988128163239557890664669707901089885833610109042569265867626705596473026139626104683018672016509092899827027561476138117409572205353464346756375627137907340836959797719685762796970183924393790019426132888716517192432066626497307567602808359143541859383824917845414927148372284989068855433047344606250156725264095974995730381204812940553907316823575987206011820078916239830505014562402441007272592324123584118825049157760233808066708803868181766330831540892321590361773258058075982592958249376259773410595095912329924312878127288565395943564275760419496710992423611494082995944255968605359863573398824876922778554469152114052730927211513173226606112151051132622975136162485997441085025463799922311827259317958105521868812410692165718443622977772627734342435100123475769056832721614324336437723472742889327735512558623639557086729659936992787059570529578824296874576943775157002459677050710543126451719969760343359873167403950634079761612440047563167226100433860126625461969078740184443084500304990871981585479745165843017212589784290565822103025244034750788744299241676935787895134104369695572037391283370764985434835878997473956828840056504150798520458500549193420441684515367613259219208207786448292286331029601224520407875142003329646518690917236606667621209044695397748236740453648567411823414887980804253115499824283362715655384951802128842551557116776079342353608193557343980140089564142164274569655697420475206441449698658105613600346056452975115404265941919155481029863287473545799270844678177460837073677000504918191220598682565723966297310502411164972629686641633369907443811197455426884326928361113930780146844809961537886167075599441231013072299289717857564700179631436036949135204701172096178103038012961432060076973236387397528878674402257495851497547005552466248382371023865468945633095114396614772416751314075230831696899436458145947538459167662902798587677336984781052689439872933110316769825301618287866474296825786268422549460874204704825308436122950254598941818849482689950110145543234456827887913817247203175169419734307862874203899786351189125765382155275619149200802614575303146601692117015188281318805663830946196366778525516210851931022040279928304161204817787144602223927899936545114457076642207321786428867125494102287704688464037951542773715434727691810989302177696171665703630947051159194554643189950335222464107495597782293888183084929880687324026365424355701644814742577596486497703540839071569375735947509802093945268534398504115510192335092183521097532031443607480570884957599591246627680890463286269204483740331128058968503088936546111799882273488926940619543529092867331796151098200022861027329399359539009541078230822358193756847229943941636884927380004197793645992296221776428163373982390036335115969526219805446948614616082536045324080152364552116243397589242354071973040442998972720321426741970761476867008897462615748564101722995609534091560130527436173135666810976838377281117911276631064371986432671552297169080332032972391504723960097921729091417174033737658366282877938837490522627153773879360624420671697764617449356474807109715259523709138878188881130720729340548061970400715928160206479687172600865480620002840050779816822659573894787037025441607408531985017211833882102262864046737422111672813349961612869772640527402619262074744988608048682642663845910972742011838859943130580572874656284824655739832118152981123833062172980701277539491186639164455614585213887387209021549353817484639029033174830842070224805813292567126971810640227875302035381626447650945915478612869429020682550402316919042846439924847362621381079186008137111762921229149822982483336718473242222869012300021154958158218243266200836426414636987233951645935239344796999569935303026703699593179498941253470845997348747139345315454144536549894987840510457337789935009288771370319426126967330118518811319474441104668332496494565178532593863578278051393511320761963706569221367682200117544411931028630148239092191589133452318267265422095421945494285602149120225219041458502533479610636935458451077279222482527217365415712913336523539184769650875970501521190948060640653215812528208279076547194707555404407806419320184754593122659698362056056367789069398249535231956498254227288826245822438830564306361468385698626344267691852021261246257916191207131627814983934799772138610626424597524223727187600647092752505754639460883833338607369686828995131081366787684074944307596525551302916621848475943222660543337046256458271700275684152280114174865947412105069612809293202022936844439942014059417947821476445274795398075903313549609826427306225170068620124203168348078620692795405530768617863438482598505011589841321658807989821830819654484201901738483244684295208991040713957443339012269164434738526544017250680368831907763934725096193769070936781011985469577894359011946039554186249332641017313162891774175820546698176134327951962059727464995418175601567065477988739856877054759455039950838620814378677115123829597334690139009416089626956282556295360560029917123591105267908727329105767962762023680827498915737256008849781610408834283795514111906172964439703734477198464187868625644416627922067932368497417016967920101772403430893699711040623643980365617752404713425445480997459520223888788004834738033112647440131827596082036234573438318180926956050607359008760022391869666844375399304491420264299796837034333604212656506126316732344188853350180271811723271587129328930261604750393645985796697045968999256653069891204911880545707441367859247382883592639567828940204071897249786619608445511483648704770478586118729154792722829564319652556063270877143822763408262226063776714441189288164412878781189459964047061984021689618568052407341336777261096519253016618114260911786256369423750701244775772086151397247581503185207137346698825294152533325097973344230321975009651136330671881995640611798269385497087684913520544756271256420201199426691928070755648207764745972354426910348066467176057607502746582073862347998859576845240611355947368763208572997412929602623292980235754001609068921981039933543913501634995297538307670015918634841310833153647628046368007844160317837848895278599015051097602700627611243876454505464433205490784742149891111788427046563824678837884208855239223343203453704750900987802220518840956456476245107455250715107034036062957784920307106561054404247535103091773800609325263786812106195451756950041048061023421283234647268555895823387170182675868916829657115886144459958401311461099213408938240733108884047943798964009447072775309218960434417056222699777975222830264734426899476432567704576329590649041841111278993878073693414208582276493213015462168925496462626867257356322320677680313120702887116938874641442007475807909848127856719653002737482507362974882146988197148302250508723015007771083718997456598654979505825614476873575733680082144817247875168183773483343257702125230038356636439676405775870304615358240327066367381391486091324872364145132630473178892702103503628636592744517902768922443065352576802648525773169404185667875534322943384253454509929781582999498394253597600582234576051420062362725525575167359920781236689423905152940776153971585846059574444962316204734684773463639412084775964769157176961956341758222787771937433515439609447396395765406272705010572995300138631384523538792091375811440837028914201524353200387872006031299571206534267641882662089774499163810461564166901642073757588373376199476651167220328411564532139845424075460439356901974961991857916354459419078523074105667748465802239021219178447752360193978820686248236547259308831489244353054238994579150547225498580550889902023975463443319868746120235693356656855155120792864337817284420143658478701443604614751934537244207558979262689428839061400105591415494299408084889118292148648583988811383270288416172243159084115547028964477363147033902096124100717970116970656707358342934080422495775684864476105797119308224567241045075242025086518628253192470650779679578456594377687130240514971257954439327752996690409857568392660242296676004276566127613360614742255834544662214863100791693661752652114401736038735939242606226282824253630715641802025449216080243248152278448685259995394020683152920086576475952377501896340296840407679868595841686857262126449519925080513833829972904846591039617469009206685435748500827347124467579695498404291983816394286702552956644655990141243938201446322952486741682968636619041252650028616811236803249716727215735373589675704160951225160718311767167429541828142262915804948130482952465655110647172755037845749727421346906784100602855123681183379149730208698977857200286231335715095311775484127978168517110439390078685521252394150018761012852210160255328871968172958285907713492836370548917891421016797180041605078684924441977523233918287197992177109950908841085437488925065917804331044912135879773241052554741121792642743350407735915543256965473878015681904819478170440420411733723451634835828375744403370424381419061133801661423475912183825858990308133009945128717294814147754943242152804516355886644591689535305482276420214576484974450834280074351216733018759384129784032398924420526795844634672390582241688935899336547499574559925088691917424889115833396454456143329614309932314684039215891605014567296197476635284313808142476834885383992789212969892766337080957780029368105534908082890251850456665176246200795665053526235837216271466026040930375793941018282870981207196380635329451144550276431526210458028334781656744907684642818505586347456596164362418884612839256124689624949375694129922286162717743652574094755963129580798921012207420915317844895724878144576757698106362528218150134361768101324176854039625881664538344733941127334301113448567974648213450971461661753709939499603028311181128742534492091364996782082172703115272054132832776189620654695650361309557985792996658837740545106378139463089523192648577604453603990825605266159065276022887459422829860089965978578350584897341254660892615955605654353126732106766516173123965127051282653253896749816471514867313556215148597884750785698167541438832279376081163994869325708183703309432992941463945217333327219240128114408936044096825296314533143418712816707844974470806360400524312189763773403098340869222722016836401534403372485263754578512010565063863949605585783030731762235086804377304061480517553308873828237046520453439545256580965206363500392562264938197207893995427798709528009594790399892886433277658895731630467650112603311097602870721647473431829429679619396236259643101572780709090097169182304026662848249278204800943023526264613861564852894991923102320637192213842807295260724042299771328042516644746805145670982298507303424956040030480241748608976765569992257366232304710828643535987622989979444001840560487773739494651823456053437492866868955438490609620172649504565155736566948099359818318212856032213526887162025412951645113128964342796242330537355462510701339323450823216929049172582650595901774528625517103977549848417315889690854967381449140429297618043051652893366304084248897352398959459381374896902173769902686861433171821042994155600705270797107440530743013865508279384432546873807894161735912029762962130334469934827247349895918537667421911869973962110030794410689639703275641955471184599531266354724211198518091035048611881612660931616500835357108729401197895336743384266087939571512224184964824650330058210274350976370191659812080536454594408520256665080021174687863465655760767225123247265694116199997077125279025616726411311302839944936530277221842118468059464980926671278593590528712391700620711012434132770417282788460244806302398968344855085822612983359911758573682273423946455205269454578917009961206749087817909090901167319383895178870184727246268267862060876306090497964855977195077883636269377307346778869928824998731390256793615507940204818759983403652069732041563515986702236645207586048056749272745009871840861920187482406020733966615730256199813130478225068676520316340093682300307021226513040557354538776641548562565509222758496346535072040513940836165979762156015834007317098328885557289641917677177255532096034649149854612423415856237405780377535402009502922857241584974373706009456256306433087127149286392234259285089679975802632198174001137218038763946160043782840156454427613937318385150414422787578951081219357933202442767941841345457815411194095511859284281139316301111646164033267307171468481309463434376783755435089237550221404990390483409296740770530617632427913108241069731639905499399058122936001541583635457955775838318302135062857260073499072612745567562237057787737090296074719097403244486274904765236332609872735217643638693843102092218748915873156746760324438485333388185588096029741013725233621306742301137279185236764064097634143100143405688693812595712580237415995086049851904221905856257887883408049630776585487838649383992756949294907503617016372791173041857672844226820749062521768827852283705565894434161527489767909619135892009253801055774442421645565895512751820946813537734904744484706142017865516229086705235814611976915516540047901689643338265319678095461427784468658821247437872796432282979419228302820583522628551105300663222866444990697798921769154154595807781486787955628935825417982162350287173264533330016874751394187397723411518179860397818919932104611156114848404129115687055137758254822396305516795355954564156393858821087358972687513390949972157589403705006797551933536908410641798900283087972540917613783219309423936490901157861715786472009754052573660685243518781872130207140755664689935158927453471023344623013634092615717837641634086679851328663951980602982704198629934471328381970568528302673394233648504274530077046650408744769643664039659067972653201842708046862970794428379938046653107967821077639434798039740589847458010517978175751184608543997786298294548719702550530469275464785590300385824612245843888287640815026289170675755183223958182293856781903373002837063028375205103362749575452223060050077508958163305469867410243208790826093986671556484023044481523555113121121943450669962694599333931080824037885633441263181324029084322008358948336996145936112560131001025021814929457101945980241959266918916537764967762794471882492719340973189289005559635365699410297104534796817469569742013009732307269534937190784678315994053938728320644162597412418354190449549004485678950041229216862671132223450007157791647598039349004575377678975509115229539633671901826846787399165870044145456204129305217628728599262916102762992570191111498619222424131208341989655016899086599055475852649896875286834353108270951810960837084333824453737717854251844522314490982376253654204315938961125805866155612480024336574923125076645656825071811205625962318712851660258533170805089965404825776667282614962590480940718215644115510673957003228630818336135088888156409178257722849549984894148235495431295082290304172383297426347955871276547863115193018434641788274915688722188574660341163013297263007538435025285087162415643814470776305424661732808959243927620931453380050598335557860686327108752935783766515208003501885802363040391591417171555986814180770714080973067119512671649050086322684717711613247541566644509482121538059555120004898057267187410614825684751973578749821896735477442586671646989125908822270504243914217358576347501167719309208923989318364597259530443523041201945638336607320034167376884720003562597080857263303372767419747815501363279615868890324273804336141442461530250505401288369727448878346806839474094268555482199922380680876244872659023233115085240593920840392638651179810078810373659185649529675059807940213808029171093596716681785947838429561975117963149135747561255627088576856880432852776220270951743764828247783486313954537203540458568955328288709427226660861618897759362967147253956819206258056621100708093201054818500928529815525601808608894109054675663474073858519899907820136796771971668632903889979223410664545502652954419716045153296633582671240547697002977589598495751203805436198374641135247845945294841322855887689835207754019901336649974578272313480020822062286944521679540662793251130362848719387415612130890050116895609865423354938152550577389560969743562712712089710209454654179059813941457076437830515938853722385860067342746377645254818459368487661962015323261876353428474063084701802127871728325295849080767472717985109639783790995184667381114956211073768184493247077738705342376611823552263904118625983108737956105204682030323945925848109808820842810091861784206728053949334217936961808409811718091782404869132385959054680402003807839486382929302329999777120076972027807916909969126191951110524570393045418146694756906242202934350581911178275639943178752982544928131323242954520251192819768742587517061700807445755697405622786418974672752619802811589945728702809376515849981587487265310568317535667453678689183903515296307613287054111004696470401134101227061168859512815367439289683962066848728503411584502210434513823073512133282150257061425803628085802272930579014537273018412647510865590770571104359187712682107462602717011621946123136951013203622694292717051122489389450667667076977262823985144649359089612633243152616148523524604694244745358949253636632008942567967104456360956904913464264255513755885185479787984831806349860050573116692069271317476054366050930050259216368815695448302075049315607077977933962577523764180257636713192487639827755062565721770228344037847923971902240742960328805756616401234845780467709331375883615662877040841506970072233538260807971959488122964973669629816461222509803500995174545665821884914584594930546805128259292661528020869510393718894839321861274989476980907016180040382434551447965234734539187114254405360811273640827448594860716950723958912632613097197212396356286861407620800478346081342295914697885097581970783326942419506355021270356284493628040618002879000805618322363157265592293025548000706210230658121398461517001914126996748267484530201008332051455505227542057500621715698874849069347358055936445201989809637498242839930574303178847176082548043370624776800682392660955940085223566426849541080146667945006736917943303362180896942286657915113777425867018818537674803893955984327041066470751737209531746485164311128295714896985933493747486865221504708432227546999172171465158707041601395724291123168858000039810265298540136595821065200961569582480894538539517436805169755925232666193290078062502996891843383981095204649200215824966038790776691515058519876369359752175697838178889908394246361860076171948352366274618692618806380693412142229358888212466182951585621768005452712835113960979702199260073722368758802147980206459841512228969827263354105503225331833150534110433332280173283150797181453971117369960278874744895083791391530725717361216564341420956212031929743401225917297586653295428659918299333150796421121249861777261178906060705667740442679049043248622957714555071373756800430700295925221528987285890373078065915053812489761714183798279506821103874665039558642093864194625861764399579550993324701616178407957543107480020348443897416310035095132793349485896709440345119821264489255314239208449729412460185591537666833578661014208131762519499417681325998395139897540793471364267892766753563374599369801867511684201743947426918422943850949131563863170049497133169412839663728051575863440366742439872585744219110955549903947717518758493304886763532264081994152801256312740308572503794204472065632078900859479660180538533574386808986795912391069892207293607588620063174832483020912274088362294766712104590519006340879903292404245910375584295212530710291141335917599467909265539287171743724061202150953793274133535584874342029021639035716787637415303639756128866220601725377923419426912961382541012594793821983090160915808767031563274937494042555440733917864646960063760896121578951058598895143658556766620652347970203402734341529874398730406652172620738166240129265510106302684118434706202088945754356050679859995552030338979662029513856981255543900686233186389381041140590982714936852698017793560385021135164095670971845606592607424250895692500526265829974061243175131274456211349160710210604538444394897582557764113244995646726942565860423182706220687738914875191383953394708891732301472899793436776593729189322622198245037815022893876299161321469345618004240943135339455419839534362281177061071518578499959986004367480255425778320657150537623598209947519551154611672363160207659773926597480601286933012686846123767718139329101384640510045427516392668445317501158080067496966608413372844235363462734841223498191000895880926991713869157064520483277767666490413565326102758721111723646250441506866801403997629877099862541560747147128199275547631132557114524550979705008043179553562393384944089558143202039940832453881804457208585116663677278860954037262122737032014770297474857610159873377702519210855569524248507308700598570564585758710203058931430176529575876763508942366770919963078253368943899063596623427682292148063716023588315377484007084720400492289489038424204926432132059628078067364041455127848789730713741856857560594000554229178254112118322047686996400116929318627286345978063044821911919797760162492658621696869830566137769295878071290746029055113948144201394728158428966552084852043907589002243771414925118610350966284329409352175466679961122354648190741340965466919990411912524449720760909467474247063504579079870553909142177778447465867055052721723800536024963440952702381216993671537462353571619445484254067228799424165556192229951894022927559004886704217528943050935697260860291792020725481980227401980945390734321150808230037868096024677789069043481598091637640673869706424780931399233325722496844434854254613513878713063382712404380342580074360985773308948343600014025307257694899263507594323467550116793714801111039652238168751869150567512636096976903613307677461685963787749782927850877653576574105982875627428640552873138290613425673277109656885761199316722407711905683596371730712870444405177184111491165405553980774456280234001734765387725429031698055752148553328424239123659364711695030352601463310294681594545516707950727201133898364965760257522787124812489985360470829134198021760559926163460558355479722399472174147322983136404131423377338410089401201715112394138276901595096513340683825685713120433852040390193877473709639866031490840700624594396045707818910230562448636571121378521846787984728050994744122545760758449328959235177752337769762474292171945034978234559674940759316442593543240506416350029569139879466149917811577607266522467943470363033182565177525086173549365455477905298400621929366486452209455519960856498244426899107592194076080196771120750266936908856687548910275514173283527618170834672403600646540062085467809201142990250516956709000805141786113485075742073426031217960469706342777000032005071202528632319116011377196118829790932683081477629241765333579946686708655621678657822260870541089438951332102113926447812488966846628621407047878824361223138745494943939535237165398164329013128866874339912072876601050297508380352318833781830783970047755849812215646668237968905217804559421270540260127960842561258004029039770614457192032769304779768993814193393065979557083986861332053381973068743667123543055462567728919499972709602068235426823077114475133729781079607743488403714463533921387990165504526413583618531097177270286552940152307484813401771336564746308997277170107014342370794408592620501356682488273612942199852261319731602274877871185776436776583790466319658384901776157325512045746529857881813267899383603067034133832541168260010601197887432574964142775141533950923704722483498278410411709536983854365178769126635271908746654947866007384868078168991267307389806874150620501153526855449361423709667069966906725220841822632044317802591606788928132856987927266350495123813714023694421040152299412956791528950979092929546984078750046512411236777458024626683294267310950960919584895671302672350141206820971695369956891213819103646492327127843115648183933699396048074670166981781736391516814903522330330152175416532302178544570710580835560615901817779953321635579322181113195203295929008376605121047942014116530829953924251342474823333373743633253010086088735402491258804724213874856537650491480823744580969187619477601802095437156830863843535783687203342410922314047448702660494773526959742419284844587752094760839278090503489367209108930236529864932514792571395149898153832962377307877754166947506885109893712409542800528596907806869984163952911403990640707338183593078442670230978653187406529463312013155984323967004684191725559280606865354728999731967416376090973024031511353096549026390943881094792803097718954272073714141251303805769611452634181102956915194691082345050116743784440978962125878622635313172683139265050199680216492563573376718949061922087588911939610596510602892522216738502878189881348127287219535974951811475565368143615689744991908082008154271144832862510912730898316707852462095236546568274388707378433324156000909771247297311505770139800856897903373809425768239093956848337501361106160064874037835191536431764200600629062345143089100503097937331021381551184937754912417214425517524359036679719998527752778487157403748752982958027215787385043401031898238321680742667875249068957864993719312574749103535901052875881706644689566573001568685804419151449181475816824440503851062604693605103776636004086772686560834095659105045133106957741961972318202286158680125841848107867956793361521965328929259502788867380728485464632682259293475124950704059175012297874527826934351371788849169217784137273885763642261586157995893249999879240196026314912245479672645745402824259775712744418314542433607868605032180511370697093416105595800452054901813928039765868449585821099292644332394122445439105929176309958793077654347025304915514706850043325433630253070824388413731894630051296499796064500428102095586594858361621880774204228535582555665157012579496658896233509741694106387902203984733127376670605270311118783674237813686147471153776260313034803667291341274590981812622024154335179804631197240297124462956096433508454100969114550500831396832688636803377238372217319353448868620526017237776322740938103012942127080867918203587107070747851287995319867128082807529455232473964730496665557568573383218564080466244149796501901020620874669978597666311314881744442710716139502306736504007118399022641986518617214867796118598900093510728886148234785115461431063970639581516901806110307158096000593516255299198275037241288204335131252291088913469962343892588402429715762705055353222386305015728008243269257531041742317960926046206107210872780245674332620495974033243092871081846702236159307468420018685983123265357547635104469325764064219568212931842294310301909586252423990762921136173522302735944624943904134554301665131979862706829437610724476557326319674676762052132338892979825031877709515898764935166154415203044415214266023092361981124994116971408214373596447120899151982901094488547336635902818014697396402742525556316031092455055236527961950281442590953314880626970668878067089704788075891610147693370920951789162011828914459481688394091752741575190520533705630642415299554086851607115509297820347793487950087337641019530277778966745390887988697200240749166350384319183201565938079415637407691862583308077147754014046647206800540363245312108260890601184014838789565812846539354635170796754545868415209164432727049949498061617940633798864775870587666892902609706765084111701651898419700195708319237703873106177798679907439542686716535617715894064313649585460806088885156621543455895807205773906782199903537306006509302675847822732432995668625650164411011498275519488123661064597434659363507352812769280347830052598147781675255087730008893514607190407396656127936694954346013025359231594348859180350379405161098680001144564257075163937497415176144163513699562893130359293360813380056352885061428114557375703880193612195397624738161882253746462973402839027723103174268540699951224877874553681511743494559700164197519457678419975309363210290945527520146411948325801684148475437009286769170437888393992942823906493796511549347651165823677698419388667667248060715878754419196831998679920931664153668664828360429793518224439467171722825033237875321818689473495702080452338157616592032976436123031640065486338504164344242856118878780464956662357216820515675562496803462912515380416970506436193424319974252625335815287625023212931683415570986596049427208626634934801155048437178168792581286080250802791678595189662602311430876068497332168368227055471492741017504947214302875146694415527098414630411518906943299562292166564157502030964808913594097832767769743998276014482527826651655020944802550059287521650011110455406457790468370627271026969066864889665994585855845347865114141532009661533214521128894057446986068582254147297208103808459996947855784024037088834945135414053594440566864411747377998683109904333022610679104948986302085823344810425539337903405378610684653300184330437538280599112555940014112036389219013852418191478807837180583009845488035614009060940160853270293915977134477915414606485547905634514184557600897201932820633141978990399455999700845820893551033461529516410626786828931729550504864339637593096750050122439670463978983035039286268297734272764915559099980474992448654915807544616903420661846493134390625741107802693040206918219494751844540144777910579487241862867974370367318817706549278487261514490564109012520373106298740434053389863985489838363999325253153537740184348759208613948817060802577651934447241167283889364488702953961339437179043961646689188999342276799917479581583976179565806154358746522941061815160043484793374387694950594333296019798883039340776818585938293559731679789336367091589325942478316559662312041852411355669314251299080880215986546474714646174557089657856946915705671632934964264494331276986681978038352771866050076555187773749493308063429025339259554455827586151142251736642838332899018589267252843738770605124366930914057230421074257509939884636489547895068187429462571356515124424870142000581917146171505759529459483842568853178178911552903166127338958969739652866866985868981883315396578063398431413493674248163906212192880524480864071150711131608665548532842517329097324766236390979944211020303553282136909516708846499345316012396781413494304573426171371809241078232247257239371860498033408515657504646364662668443979025847924275411352018053012998856271019454909358212840782381310046219740943922515447542571022558956501793726066537834863440297520932381865701234601855599847744354144900922392062555243128819948550486887690859674001477495161031722644203375089421045183313941207957714002649532743477785263347384384052993463155417266161768232354003184001976287830162542466953615870708007576217823769573108349110448947552523089539908320336730170218850966414804501235034363062350592311709609201725515304296349753068080083288905760091567794150012596503166609351558520529882442966967194932334494363086407475629819297987808112919029491033242246726286770738266103930777225658040271469633142774807710838026781839609663609458475633726635247652520071834561372494936755624103784410987174252001982358153384079214959594644696678081141096298377038998116805987729957556996058720735160028126371658833919946809973910898043006817916310939418215962393799851478399811370962439467312595956997396270462139042655651687023052965548368467653687797417406372244010211823629507842856423542504134421577270621432100204664203306121558868162252910063105632994772665674738734397712303711166003161202052929179840738159769810180765185509303739683210417394462881014039307115534102320743658596358878796030368903934035524903856407522121106635411692845036809378856679287702325696662468577677712278346329809421104960421787937558445848688589995217559061562883423052608166456601831069991088310935807177981067843744962008981581018442089122075373319025137966715932409648206792688945974857531246299418945025420339637838508465129619248353106002037078600118497587024281537716741800011650762897845171214475507987993786969277157836413924324939649941470019690839275671317667352548441509710161535258775457976176423496949160963080837723214143694870492873612019866551795716202469163212874954248520653666804973903486244685374078924520365805515764089129582280547794599271891930903544672120069304185357597357646780187050047784352388745003563809700030302322051186618462556541514873292696216017308341608950606656253164979453365945048642237139410296855721912441373061601388944170150035084986908199199562517200681839000550657233599607202321696467829499314983303734711905273580383287833325735321645006087538053123630697714298591748718104849943255147631158745181801958494518926087800869506087600651357275972986896986165369882486482325308436252706543518955465088213920394865691554845798681200474652815464686069782670537128821896113221654748044637516420091943161780310046755183485814984528796430331297277679422196842036479505943757154493043806865421451948203532774036309697916081502264776151723404409014845920149931617073308660454024481339461483598506354910173812792104422809233814296044004446816711822871276272791874800318427449586855596556139874615744701505689126794042506894393106473506958757600108226753768983590715901840355524139845705688946849373492043687516046751897974847945768694052983739125494234822078254592202362315604998778732902838832543556855214253375344295611403906344974252942222659247445736610491813298544993559256065728681085090612551171187135234869045598072526885154399417514063147272673157408985201123650753008516490118054089264414971508537566738282269492322585456873204357674937166919169570506048067306969621028271296785356653057879695478229670496285455089596490929250004461117662423417283050182760486600327622351170950861466188766339141999510047765441972480597413255634007605123343980731842182127764738968110661685491312707957149153387059027339553698666871774356652492797411942886654094084600093726125026536341238600520768134340383577639695218295133331424888123510068152155252506580864072979445581498931753369280699824743578992256095026046466620635949665328352264426737941261233661464271892653179367382197754351421594290382887472826516763969786900342121894594171293006087967861208088869074008662145728639841860782616214759080922754924351720339778180850537017916529106154417258794081037900072006246019866847565481137345705143765739104841382688640520173013724345428325361613849664919433233020948976110239203193877361296308168974583877631873851922790127723758274065571823514093662699106206443852124682423796145326595785235008323215424212742608942785395687215626345754128163486603813261339041960216169452529962671546759969363355089791514495349936176412602705367617565445299407488432500174788156873412461788012235677115495012159698891627792190115741825783771610895566815128414059776402651552234254658593049795648827470022081090463574179496771419882599859693305583001834041573962894098051550197664423329805384441778349218660104924833965385681325027287227035041839752685411446686898511730334792497256453742886383208187843341539414032990012471708545777008565594624682846455052429993335096551727092560835180253310066139060706677265058968821502893509810333736177341823679735250898224716294212389352150079330240795858035804564625294804342140795875311973099480337447233698585444299224127113847735028903066702749598542535913492392677564088874394666732870602036442787029578474478451805110969884611169255806239192477802103918731315579836579408446609746480251272125917234790629545019367570548215829263563931793042739768529897822259842822353857139734762436789651649199623629644135424641155213005416982451438429751823875484604280325697751712844338303828794654194016427287876237050850366895894443095844328300629500600186828633682832916377147503848980294870589968688562028241901848103546676865630893759430225519976600890986554333104514092436558355452463384157983122197104249141881142911340566418794261472081800888077345586003456084640092755583832246171702105009770463710249848901435112568554202339420645472771260021512269754508428265263904850493569354068490637740220049031669406427837920439158417551108575142298917511817316723123338474658474385353294549441917697815046827226084939300571219048669525719048523818733719815622062441981234076310415193848680069175366974950582718903363880759047355942664773914264803893015702471267040024061200092142589135603880828778666178191476538578984764092348629745399478685792183274850027645061359971820944070057050206433985822243857316891357672683460880937273515734564956596570542348503285793327566198544790182457081565815546700500961304757557895962127391376176355743445382953608739471034513233347874193927356246553904229728823920903215553211857887146649739772054624214316616520076610793657025649437852694412477818315173137450106806501665977987621831806993655006861420055828481491152235369272418838529461459222001431319410246034303879760598502452842067637958443540048906944889895922161886633563975664275449390393727993925141285143918464902769747206549257989298748987965185992738374529372422791732697517276922591585708616586353581126928244538174293080906389184541964093049128398113608114390678823577054168883557214594997077764764384650825906449629217891173575556446936615229458030894611350071870725420998830874787815558212117503851373988897384891698301000098075136779462163595971080005726887107527407527005913306950526093044541128562158810256957585184690819775162066926879194448367327573556923848013686220938882029309282894833417361867909191389489354288724918969622903732113663321444770533914838800757010753213336453920527437253403238154804376735875766681409611649998627164876788050540341979678846542975462881070568502532144495501712859191439157462153959635525729166244325874196215771429609555835903399151289152787845805592557240248827990415639834840597960491094512780067192152241353885804097042635395960860133212456200776392439248485086555259381894256264862277854997778855648419721563782949573785441423817026793836400362176683971466264158126816569773635554551917438116541781226268678692918808131715446394974400656488661189127902266949140183389490073252695269283261569340444262105401072281609399764915352515846856530012055904874436630394791467609630446125508102330991793789933089432052225303514901033922447876589182772553927019452568240771570284455055445070551198299489627257144804403327160996747468659125394072147185262002505401960828461449809679780870264273843164486161193208103576877825009190049156024333145941005769263431346882406559560980667551676987605157558216173529903197259333604510299277479913153752330892206204595968100610421042820108101832892614655783701060650823033911083568933472160972260071172948629254549367760423606273387243153792366040982384164747090024420629271903746081872982601019399929358346035677183879696369810404407466896290397669618640811332273156169151300623176677407789522545250888922368350330907940025943482093423334685176367545808405453028383109213405792364712959570140476761171677808045447914393822560951092875851602235418265105020990777388038692325025005730532445662886336709986641277526507236293962040635909836208936377693932453875652300090783182318038153538975798629805138991657694889173976448455530697088164981857229467689970739273485548811764937888995616225162197711690060507818450537374710203814844763407439777900966343427591055315636752991603582556301189471326708112590066228004623778298622711545316464397198498802809922601782892645355950307156405755492790606100727851245316807658190591050511888655042818447959986166636826667252357317523847186094944024840736174750242952123792766196728418601556707728675213580483363795007880543182374006144387224204326436262212924824643423018774799483030381073251214363387390263248866715922589015028905525286858233372011371027781422494381732992484979537996318807416935330768108712479010799285972216047668608573617668316159856911490427042229859070524899226192726365497503384836216709023004570880246671580134222115340470232237021504271828170966771965079404485462667761983359189244945531876226759266396469802957205209765542998640038585985381686785139667342263313549107478253581113489447427146826839000444085278038725648896086486317070008775425050389676482505050488820790337711303929442569480462529137556059865792494144735278948299452540670932974144059742570960862407157106792671720729299731667357117984850669777417897669003325511224551500821990710441907452522034234150487292885351542371951979670658661519218136902489328953181602245752120229706330234342522847401006722161017773144417599826563757562168110835757352554683950096496414365264447849119896718926334053150280688933244529116882636819576924399810363003530168189890951322118510524546015150422949903820937777194199494328183140198269064959278636673420679728023728822608975765966201767861775894404378837266284743488210475458981365792417589005161349417949404193617603427908393126444460109679920691069303934269819309317227704290374873491930297855765791585103457876266094323037164567215764783410788533388545657648060268858208630548601610064517492324955843943557079332863750256730214467746012954503995568340207413010437054680381841724564634228545071592528841346711095818742505203557363742052725965690216963246827824585312421886077263106180611466964704610427782840706388763706661830652387153730977879218736638342976847427609010984775472452850064469602088685097105169694423549330116873374408750841239127500004484541894213806037692171588385082302086066624825288362810341902528193195302466079104836739580116171197270004995393291349278337050762517991253037626472392550944762123256499499927461566239530899531556246752009397348362369404288017777066421216799060329702320337991553840367140614245924668517915977290155171166580353474061214131771645412570574687766924135368924697837411199519174364725779272684059854422226510105724702806754303108368279873173940153213784805364463666547897282245971944773772468365084091900307833482061415551844768215062218707076442901639311975695627488498458065709002243111327318513029404123315966227760282014839661300791860364229396127110393508033129953624603948757536283451067077195709129868484315490034571971185439659379228332533247383168310529297554460846625871392357057118072664211583318996903933031997277287631899724953562733688170678439635869015149601622424206605180555390024818467747507789896741449868060155259644386134515924646666911115556276177359477949113299475270993239763609314041216628290236368169178867438318441890044048464649703833901532189675294754917948958828567871411789111378929882153681773351902846110422154561215319700109164221528638792206632828562483020421934363665381006422345649566291045134164385305547409288063633314829346492920185235188691787556325357439693500207661850145965086004591204764301456611915827346145575605628846829923339124994038690418880500551153502312284530812401677973944690173657361889452180387010832191755786095813147674383366086314134100658468563729779334194692747997377135937695365117179783360796285670123633342891989684137992335892895927038111512742046548819876325317431629125849164101023847355037181728478823089810908426821984746374525695903528849367884902492419814667454534430012525198764025152764855242372307831653602281385611706124766827979479764305967228489387375334171959175380560189378544413238867592406820251620493706008059733959537314134181213252643211419806559496143239481658356001328432062714997943533071588107183749380486372225497256788944467847567339298950818748558234229361303003404165945797284636399406419480519756801851094430709249562809648872045341565987450428259579702408021952561414068050259002870615985593114754861999615630802553586598279439642480135563913944003743639816341068046158692503977779104746476813450986154490732475166673544139756960945300527406210907731009524488008758219508692103899212320648085834010152344553515994372424784311021955010507422812422946022008142912508261452653800656417368339578744619612906115143750935864327297218044904525401753422636423570825678251194019747276777718711483192764632245752801327248020402702786243294124643576289189058992628686017356321775497258646324928251133025317847674267477243959996531122769766695120832216077572141762110559637904473367679324032538498104209041310978341147724220830425893486584376715042077682635525024088801819719348897962348828149801633288034481234819395738850325814015362196202787854976482719352500325084897210323165477280127776302743595271879861686042426416263105389998717329715878282931797902374879599843175477573690754211395297931937375820168972641868030304163794985759075139348792587828618435586803393707210873141936765190282179374501999216460612826716065711889272411636932763925387578930275774924448917530711173937080305614966165134130299352403860924296498746877256953717283013244721910881615814851890773100964055793923688203784415387709277874456479687921415132964029840347988774304384092177352695176929756514852431558005413879052948041489699894661852527254805091641973268629421679118654827559167046857236378434678794985381946257617518030257243808844540132577880269157622260521962496881152802965273945667403979456899074478742411276959842754372319003630871724284515823198772974841671592807349158881212731511367753037337992243963353160533603457042895363558692719886190807109431137075508415543172796846773700783134553976168306254521282480170655114708088989486141441272743174857734602624908839527582647395877802344955722516858214734609851390806880233458079777774859509550484054738183477966257465517358554142874720609634176498478518750283899922810871915209318939363280177373631149729835311323836595667541532636310065902564748236281523741304841946907053535942522923158572369832310563135545485975223021377238029400575881468652420925140648143693330848439688885532414301290908406432431485016048489983915745584766532249949292532218154911370630317688539203574645715594861760861037372485014104789381109897646552407706684627941930074834108679385729077307662088420818228815118673785605975592646910882911647015751973825958121730131928241594789353584881256851008529239843408627216026904413147234275829711360466326970555785696365883055122348046433817904008582061121468257989866922460843444259032808551937463024139793997354858354538682870607846001899277340290694902967290709182134206167986518167609678320652641729202793609238051044490712375412843225129491583666713095497277491212706006278751847592988617042363770066470990186286463606866125366399966260934164084403940926886852284887377240034210062306705915077734981851225092215975678054974401651765824847384343343005378300231368264916849105652692426965947460841467769886002659991225778086754626023013209043668730027767260860524076323470098552844759664455232851970667776434405868228034494520918079301498022040156612073467055659642972970832967385545454129580754705023195590684871026178601629405166207356712482736134116162219861676625167577612844045649845754055509839706699895952794467858148518279219479073147417985916873872541694070232649502648135121370791851692459999200448323067217436043923478932708317737935103536732966701749314352205939357959386888055614526573000097193101170664877033014149713685107765852460081350235500605647185862628201684809145579710676708658353398806950346595262811733596195357199048991141058054578589263199504864319843165517074642740708488642607161299564456023755594456245524565621909307693579061584382465389916610406013617942083806400024196690858043792216239926144833777617106388050473883513259094643345081064916210785668131315992886213282886116281406039884912387559065275230774802634452055110335194770302096593315058018943631829995458050520398797703622664022378929846587673031370709026105223185566073397198215405921383956801832154489691176199905823829120654684859722532504279041059500368711167398176543530587648726209222025671738845990544538998378482610328024398637318826550502764752606919847687083765293215621905375040651715649478850526569938028281874072394513745551656747315601525775641040736237018133689745855137371302006409716578255351570032678012338305127034947367366657579855077821259323908680559933973902562257774520636067395561929814703409155261634806052255330535169047088969550665007243124433294288460490622317830956834683363171068187530779014924785665869038065225024533264993534880743789315496964441861449988281683382484319184498453184476341208953822992475084538163897577408326851740784600379328703888044681888522034009563984048743260097355167148628644977855921570437065815284370206999438916352755988256922050534716736372872553069379510829601650392956251862863526887822928648092361370431624838539114904581384837433582582249830826892706308199594433428973438921815776506404164719482345844899947270257029459362663390153951541471708566606272839957263812760983784863437537741428212434270595715926844709455293661559355659503587932823579923222151527649719588908302087981651386105920914611819769587223755729004859001182935927141683382364820061203137792303499618502497743923629683865073526549545981592250524867638277941369569425413609272749370317875884258872033846419326555798854823078950443210893653803262400394319262843942456406320680478320520980531745493441869346857640369675829921444846113579646887098786341614397009961890463484998198862917821490892044223673295901555827029628504098646674755403673340112408525713272511682792836594921813447365480742714189063390861485395563746596998099681764349392662330344053212682301347066466096113631516988153683180890340440278360500817528219952273745308792228146077439228858622674269158465522532943238313918520937522159129009901499629414868784214334934884074203835366765423548540250599749382360941040561456732269896871554088259366184922815645447202436847266516531769245986833528872955103394955634049628677887439000965215693371866676004106910198974232574127043724866339271105581275585811672497920213720926496222798297667362657869732286790209346166677872910099608137100790277556710797999617638476985742230619719534180185540236790952387134684193770418389564709422995171585243218166949957287513120249899880019103521294002933000064866811879771561777813900315874818100446097518229294022834677326451241263548559072542461285913083028295067549851014005203899610769679079602171240588387123534792267500743765125384210169566835507332913308472923821844512732161906347572893236975051870708130339487228943138713885358396126603220014518938740684026261674691623971593951581693943055307703307427072955836870133643702965272754926032935685151934967650792384741618129623046892031502832607504080890840189963422931013924138355050564142024931104140654377202376406741459761178820787149118864344361558907083736147861152463685388383209807802788244338704019677420460823216562862060924732615197329776398163419728311937763438684992240322693825689954887908085920230513578074894684992622579562276767693634827150368861489975249361811926922842449050938867844834851463551161626213882522831792401447577325380918949265938600157254807001009290075463826979632293480094259069377540894982989783301727318895404983027179856432470400396347861923469190793519446573103809562217383493266942147015467416321479501140850559739597611857925594035520196978358751141818393327514128824288478697379851761405407165887130755097322886073662175552319249874936836955111273906626743945727068273909089068413837421331052797074618162592345799554609447472548425996662656684929150276967839171811513001043146906112899166358343380860913328208109609847004315925239065384925393293621795906207328361689915205204714312625464526800574430040540419240089275311005365298440138055979382054351363905217768110884408985659256547965078636905971108315486220077731573757227175794165185062315308445241664229498901156284402295150536325257821953104046014796018745567189724283420937810017910594714053513323109286070881321630671617919817645466807864970566574075973461018690069737710769338972636943970716002065851790597828480137248424216296798953731402581509414921902977277638434752846765712523445083232261606700727427615766912046197403862697871177594494398837307717243797794644130084351458330223156034502617972675294495965839634926614318882684149396553752983794245309169917879572907579435432589351801228703965519330583488889013701038330061789197733520407896969826673582071082334325348575109714044980463944309306894225843329666051764245159600673626231658499637927981677924057220794391328726945178729587747224261016902975975408895712784340330024502509733783919933709618955210212405389587036449043084980074144306515548163502591127015403142824044716959317218581103255955068382867148062181587635274691164471030930622027309676856753087500833162353189533782563560913300195939191567140346827129191205038435198162871002585056322060523090954123646935161819855806634691475691534022190720453693171980455083530792773196097687974382901444731526515859553770000522603048314534601473030936827835305037377764750639280280278036357687674077170597187557393254436919525852317533323850584960526894865964871628385436072415095764486419598012063873852771173220867103460962916409093006750971155648553440236555860660883584914294314258612555188541822956645618458210898632552760222297376147528740847522804544999890646571189879014128315526393154504422186266616789334635508054949644718424595989508899539222482791755096536129804519836742143641798130461647128716728970561101586958453011583921488503874411424369063729582959420842311779256226038735823114203955805096123637054668470407793043537940157163923480207902457955383360287001055842816067789505843517395042108159888529517331960885782391003726676015493087778986107666400594863616247818168987925310887654732177742980126794874277841650098328645210341645507827978622621372580452063144693139512391906346328313872055241024652052421142205677225589352415674058374233312657605232778848572546785887527231445685752628459489554928285805518272942500198608702704307791191657089900238735278886995999273553502007074562163412263133839266807445074235316973756861852096428921068947575711474842493586965419199814515525494917878940599983466122029469165711215664343519648330428815495919143982879209058872817427784917780665823550635237841286388258925718979697022480080765376431521204224905041303316038593691182460734218087236706392296079506115595610457071680399441247249546782663855427662321232894342049309669670363747451891748254200921019159736542431705020238869235428617839631555610909611328739291498947108381028301745585191348727315581345236819387876117600437646276892293530382691259005915199283960261805656570837080830685533437327408090466391115074418364443975595526179129778587290376391735634744870722765806474049325322027064419196011822145034523089053439487649336192852889681001311822892081054785394382310772568925343055419485938079546057803969712032464105738614392617271108251677841619495383316174348628334131110236421440568341467216520091091870659857120349769256355199307873706829797323181271541807131751208345509918215332534030006177625162101010662091284540289661952310615553085708918395925382744692285218877281217220565771715963613872575988555908879752624431638469507042278300245183933442612223599503011412724841346242748976832833537769910457703374412070948268052321981494569747479749600311250737222356162614647486269424148094169154368568687082174854084419380343361976064154997791226737273631378040090488399222336151541347650948471771773752553966709003410433573800691963487122945924951419343249548438435422208171431591659851581654572991373771791555749604936460991135941470241975956196460609097329712744809562037715634407150343816623531815975923180069276975732307664144822201947817593149035303028525886242528867263383058044490586498895091884882703249013618453598173406269676539257762579400288810914986146975801977280657216561052868342879477691021710778115638717433252831596654739812860028398377300191633709283434860224201577007381447430421585264328397886073310063271053517187786441930538553409491336546416514202648080873239730066260076231857447342925295943623586243918198350434589757028130207711278105168663859494734979503119395270873635018846272871479777681444816008858315734222682215657695630929714395160041806260042458947967052425369093602438332813884040010744107516653817482009128069307547785394749491543267122272352322200563644461589282995192896035351110456487883813997886575086912858464995290847984547809502413559682605460889407384036674177818057536032122666343470017156237463146156236637034407903943230889936018395607177270865076948706741617949875203351044082849256232598555092180615175552672286090682227811246033909305594803637637542350916413010365408535348255365719625061497325437819170977773497438536253433240208023727812959546688656020450534061471045953800922218215172343574414698368117165793533581092198017660657213470086965922830232773945292360184402852362842063211720356311555565287970844707555830306177576320271027154961468087027450360205818074767785042993058925929365122355784583500431656082705023555059652509753270825052353575256777886500907257391204891073169311034827036372773909474208927420631065140958999291568543951194551261485744543070835497732900338098931333751200775027494619694805843364645738007205272107282971147949640669747008764929057368384261278937906594580061888168242095663502596346564947753099417554496792177771199624049065102535074900617298238557986874304501768517552360661696930773306120557688802856183532251853317326560300563573665534564036620837737153619167183174015920864967119253667722006940161077249502157740657852617295418802577296848786619001635961909086829849572050267600032608961669512321246129112673803543248258054633324245064601767166962723540570754292360846303366400492090032469560424968792185495977187502901690449058680064656068637814955485416914015881947603587169780509027477583735110399231918170795186277365638669529005493719103273739829444815020317168240469617688425689988603728903936438467194112797906619552819133062190596959453015750085411448733710879276995136714722577542793561652911997897784365314147193823385023313910390916286363911622996284676324968240474580812982977541610414132633884417293033838075439260979620434417870448585553639353438348987363059625321515508963091651767701066668560539096305400301900568330281397549380019895877155913328078537004389916202619656454250656568119509997054833062420215085118420458390053994925615522335159214153416562792572428078575935060748011845806305135475530545471903803949600454061889683440190415118955156045252000723911544672284553055017491036422567379613685978364465833327953799482986985576673012156729517730206529200428064445941711186415401908673150031066983525088048230743754817520848999845026793708046992395174957658871589416804246617881854323279577692866281959106944131635198801477331296438898824599854994828420829381379025934223546514955473209544470428570426782227138237130203071031958430225592353742241271066194048709335697728537141801042810273742440508650989355092452171354060892340203450771738669454275875436405375003649715434579362823180105719883919594871980064069917646840573289263905461151287549777475216782027678212571883094492456133034706603421545148764327190490810106482592797407020440995269395590673131175928396422539832565076650318901592823439673201028646561772237745478158592263614379872734538149148207830209947380749542268437868478297378257035925397277115092997820371645287156025527025186288183119299413876182510584657288562692366324894805729092935214945593171599381323497086926736970689020255853039239061894069948797797231938298542575250579014738230345087999278534402361795199829159105412496782092855081568683185410037427122640999247130913827343875743623528247904167511083377288573495411143201456175048779187550264381439407628717903789366019182557785957774101943649025787506743036775637754817151644579889659652133381278258811408212329436001989243594578795853044167006207264994956631330364446917514729549012053153241622454920631397759891724103810190406206879859383182492855725938226919558050356301077829972359649279916965617486065499819781221643510143266007904125344986896959927278994371583057778316294129043011804115552686453335563967334420957831351550352867628948797990395025534345079491979826387862158142319503503151324009317602857960118240174634337154903131090059391466044380092657606808833146075064889041233915591273265115444124743666006727998625908583107422580831959618306455979431249337672663741530177515841956616277917207685866622533231775024584485264746399893067129160362600989334515729854189643355496960345048271515182931278466832939895269733077157210415281783494208158180748459957479658587142574146787338283482729191248624126810141339616857774171834920038345878660705807931119674369821124040700626739108582965527795324908327702445400373643708828867808327942118471033581645217344932790363224354399450508014948566642879996081672809012350912244513472556574552807090517415050884902514011840199744613376981546213993482010648855773701015197074758040092324251246802910798758279378084139123401064562144567675275376744518870496836255782754744591325896966675769776375243457133046443914804579794176313038768105786719517786498674066004527332061016139471250936722199529494688171999433820219027732190305431934868336528204063850225930418584816724701225860058553508031785057944665442286596957064707133242794944688544343659668235357749351528192931242987525869241396481050487144942000453582615301300483780209996765699569513939065536985909902882205450545830323113119404936134188158977960471765201459517103653597095233126766302802822646830602468397853741548514341186909563532458455090996259615202703073370843587375481023061713918880308655362940146295479742394972073729362521490383645369124920947372742935753955053584752636776330033551795413819940321299715579747392943473968544164014469592379934290247018066379708481120801418738045894964396466624281477934105433878212598228825880326671290859620847683073612195968498338051088183529935271270236665735298712573346026658776914047288801735341022761494414999735110520795528509682588754109165695337265508409591825720457488999205756245200673806529929135600624175310677154419739765246247712978031021338626841177053483048379056004406406794244990233002976429552381897965319076303843829137589506672007341708648661613830760114291158122203943963352471604713507010521017817860354089011799402813460288038974880580861085531266687147774431178488720461725377362433498500143846287345987990149203981931829659420843990686595513845918882359795137508552462476921454172266680322655142552402690954270372985799815370081604048248132366081384875326528404717734017980532978287343362900378330831180203173838301809348023424712590942975977249199635628748729833253776500532227532289707470966246774892609218882910639271599391301932826839581228874504360007233081170736463060757879356039185186639198289832300920572294389998186734320383714531450309220586321568293402575123483068151043865473776775012224839795384243830650307422254607583926049040607838656884497998643040952196123104356244361007745904812950368585056484959929954633389845440471443263761945575291302164169310279119369232883172139700908890893590465709003578507841964972698849899211830499844662673388244650389249135329530238314563820130410601200750590661273842843084376636162905880860500120315646479299758476976543317122116238522759064284909362337626097512837904013755193337376291922928466047261885128279527267457822414103801659941236732310397546801995136127493148013291357383481556782772606979255334834180442715177174013256728671727307488247120260254432298535438032648545785640197194932758865608610455400415021738303247273243874398069417731536758198549001168232690779911561512107255516596379171446090588878106704846621339203032427434636879546586552969950841386863634421393277413709385404426945404382354356553882449435507453102276746953806295594141130551771059593231804830348689258482871379543876309148325219760627611589404167428112060864064531277467026884332004789600859711999910176729181074596224172268332687720383367342801651655753037297422701429196014998328097262441576235266864143993894928941631302587483340211727409798679306803839107599201480900203988050915752144277270142652378672981676016128651116911006844395211837998002569914051151877873976793201686194410176332505576280930375888814927127305673394353903397803609695511735324959363084161719816233939954639873469167438619221193277116624248040879481584431203462877786558717754887086681829082885511018598128547765210923048911202150208238163827482433288276101067028642564793022671004217765843491529834207253870239143717592594231622049709547465821406009435524823275718314017055533814479718899603322906579383908481263790343618325337364702350277048041079495874145809969402043532160518104555807041491170309438393625696777892623250648662665084072169808613963731156578764587922201017527137801804490040573806268989763991293245518310324602677014954503139745387228578826734381072491697610846489718752941078439558102086635066376639704656460409104868489424617075636068328604720269481695977349977673892238246225122654940402737939899156727379799430144005481101644624700578040309806214373758194085883221634232375557916459623203344089971262989435434137641181724928419607000200021128046453525970652528000582646846486221746665406740327122640191915646207015494602082847882478077991585052041808856881311451592352579877427605915295721070969912706193735848701132638531747543226694461095248852693223849598646169193408436055319537528887566218526689751797302244266186476497010008411309283233874942556829148240091946316250283646752012621982513630617885912206865239516467549981978841899961552046410388201638252594092409555524458931304939957365692778156456724160340683215833088073322605877457918744972981454676259135998137416935115797156273990612495385699202233839421505594997384671808263851240655959797529464498754136049415505082696322708536715250981466717833179319013906218635268646665850311087016065528852493586306515766642166424491724132972334511059595023713590265917702837483817764567220898389862132715158665556346663697916302300594642476278175246581994344317349390936395653564857667498902920185573934040261566838234990687489520528555385491252518034991052623533846113557392600598687942754928418644568046578363618939058612114312228501310401944387572885939737010499027611359406216696375576807301454142907890001831571631588601619995405720911883634806359795145511955822953402656214892124584226882133142416163756056857998247794028697726634547848316206013392776627931707444066364779236874376528450736668595513196629524811112917236111340127934238780677823590417788581658443714189564312136471574891299626302584810347153611929226309615668434322326078191969172914345252345913708013773593969600527760133710536033969896600139875470824216366460799675986912489316411512945122352863858871447907873930682893690600699032766802891454802656119810135703346434020861782165958048191807226814480282960605576640567126606525027415629341101629248375844165108775672445794882379144230292380043316455669253989126942791391965556777807417446813380761621256522316964666580546846743911258153119227217714356728774217554539361374625544989594967766794964316232294389754615511108282699385458963885694014278234263044997346184836673186122407539025691746129649844050781856399225792956835622038081117949300801935989589213679279228737615966201723527975025811649057586414792795858838965323483689868765475187748387314178779895377992481238464137216094761588043733506209798772088226760034612820537290106771923924700303419438942363044232390670552394265487875208310780852311158008504854205475679882377309978822649845090955093267726405452257033117301219932165589514565949714147111536940488229828519354509288687418842559131481824492915103196510699064844382043898074802267005195325622708884883620597511230511074103383751773659399888153388695196501142894106884494553498460606432351096517564228759341437435538558169139730021624121229461493629240844689022231913127458377750542571748353862046442410291100515701607638406088357276092769643753035004186735360274127787479646503407092714485410648015761518334384251140959239864747187515560432511297111511887608762207297214007122166937700925085970612285260683245591859458908447721223397468701947287016121824244757886090457398925438477215362322664442434772298677468362793031289039752385013302978509078621290702522899392438306869241336281757991429532359100056792974678800810495141907069369185059088539192547779872773887852433959886906480482914961452861309758816690593744999073638395518191201002513630205554174128228493548111250954948345208207222725573403121376844263610250950088120879454961807337307572202457342282134404223422599716016785421656185836358821221725640831456969665587041488894267331467600346141232890937578543851045899596263093298014662543352363747666655226671574578055359708892063127596331153887671113593917541885501804322301901379967965642500097381795393771431084038625209558814730607985679867960945313095998998480148569584899095679370380419174461103288928310559252741381861967626104619355900712569540504126810858012683787384312772581682082732757186083521997005365337346727328331333213184620214031976333882001344369648720202559028696945067916587900705755702401702110915289776211459475403156152696878459109891878295026774303427439441168943239333510232420380895468243527589058669181364390872373739159768318502696536572363917158601755655907967385773470556109010957244001939314613590671787849755565996880831469287153299332007153073461763496620008266554142107893494100608384509465859629746483065389943645782333287149588718168653543892380080058802481819438430851127741744063608324106699585384848508080275031586706591099409062384999292573476275162274219351129112189530013870260290785529117868711500400637540621582654823582762313142881500726083773904049851994076298340906824874377860933553036409446459062300586762311066580805134881186831098638624835702345774892257407752365700113744346737038877277677038264813128468611344160763247588167513950139220938412877315182365077833550361157329939134162589142767715388661435819538370166660513633409505545452889020204344372624525638524541803357194581697940835757279782572836522612842349529893754152223591804083708188591167332821418437887565869013503228406254811487318061620759534331044914156755958232461379102134918134009899955810723709172753642104322181489534863754653017837410822716576404609470603620453432833964730484596491402062045958819605773175862436577059550921004409498358653287285949526856612945831602401449039285694996750324437126580680460520697450234893245662841451583156580309708888738439480194812974999958141110533637571180194048500702312812753547623040314723944643578964641144282611030029254468769605806170387623258386495033904516689363256516871853339634804218292135353061610220298925779244265909680225536372199031629228098371372239513874983323508888901380030660247268820086542925613435539610669903627243409818208167324607540159299651429193194829370750209548310780764235521181026614134247994799101264115491829112194239330446448227461650904953671934035084141455483676505911306655888842883205136032962052425128386901575998729508866269064307381821865170145972219042882707601117766504292817803356233911176838270232928523911600962090317856632366821982845020568162951042809498695750928326456994335549900415114657168792140006226830492143670396555893998832709565014808724899916098519328457591093503030546422730475315356016430584928558870049209944530835118489848730467616864506634183199816085018001369414607168964190448519293269318666715961494162700313799624236889338909187104273847524904788472498003344657870139696809539074365823867422171534071974440727710789161222561705443512865987646242177039117684200098107018787134155121524937902874884676158436014765584074519589825525389321059689515308973588095869160203945302933070562120319241547662476181431767497961682811302259591082025771840632530695331042013273835923091165624310893704738038902222860034425058004463781528250901844167979292583693952006833263456258271843550890340257433664336579708888409555037496012365956576229543626617838411250832108963340605986930917610074329455012260443847989813720928318721015348452066992575203641214084114127303165197159681819707403299999170998577351352177440119482601173957091513359514178078044815128535538350873549907291358551360542995477802530571492816862560192202956059859391015665707602287009032024608258401572405555892428373252324534773295157730365362203948777405166559906249959140004849010321697021650499255451779219595116015256250860661584521422997269730500299868215817157104678282610411203130211431788399170742712989317880316247778440270119122528176050095683482707438168847758679412195565023677648143667843242835639512998135039876689514081698314278141132783799905742657222227531899348537781012977851041954100411479660664635467474262848874091554528517464442686173162469159114752022332991542159212805042780385177955627125923511971308052095443970710970051714209331752538802601664953783393357803856239842219726478359865165245762476088690581597230064455187830564075791029641778750759261965405180859404468699594092246008857143629563638743607343118140971571486675424314435294103496978236501825114538447064183731637201789878714849967257938692473813719792370532453339488554175979033712383560844427294551771512930961438144432296394789376874931111800125777005383580760432573929619842241985318142543328924706805073736131232365167241144784175305641109582815514936931208212366436348221121306213428734948133515266537303564138712044746411150454059296352876808982738429384591063545226081346958490597791610579986269114787196226085396678107819473641697966647857786513932451550590556248115160244422813315186998050085814644331134094647190582410067096320283416142828313937579889129140600366037586664184986444538534765044037819354596753507933672379690336827043955998424838401432270576445499979515649062601094800195213775079068336488921601942792869183058586128188063168094567671910300105931742196728814893980721450173948942058228990411170844804886027995946376355824178282307733195115580621484968425989310066332831394500670027662587162022758564902095360711474232286293978205073502623222428449930676221316049362273912728723846871025002726597491952665925951490435157755972615303009916752067180371939097035154637090221203627696440155165591049156603617893263400387039033468888128217515921122099500292994291753776756017234688885952111612735881381400442874795336201518696660750310203177669852121553607143188952280414265037434798165941018255217123851169071472347497579594520810244444027099065130570162720997554134203833376854925227546142189861239085964281949224207554938481245417368503270109761875780611372820917179472933789496872334983229042968277452127019682107093186217267204769220772896698536875307275274476362060462097678312261250399028480093281977313170002937429408017762677457128876582676454632275493597725976274160212274868756442320570118608029833591307142647778467272283091611909252218144988542419808637578772978906561144955776660494057496680581110884869042551003153448589379064064578902030788848331947202894082719557016998076197021610679965764463500808997137755554178906325955043858590707786716099156190523369947252837963968158165285226403283216793013929257966659348896187449995861487270874908423717904712061876520702080925395547066448179555989314979937990437193841313602772040730983172180932154756842244485392814105102665293725059010041912048991192130549168859986637259383688123792089339377389760180106664951030885880045804482880153319924297909291059548142643621394802607836356585935050963240840042430652445518678811717730510293890107428511189469305607020019645343135305579219098648418613210278486871799566760163564504406613835082459093216623120337843695822665438305951561164664460454693183863094171753560112514366874469732377649177242479222610933711191982063687020871470839354420092397152948993258387658957171828369477954890955497140579820266594962762762644345018086737735606268286975244490949511699007597902335262929166023455595016481002417699898851713462553357659100354340664820438370143209202467878630717631991114651307427242205522848436364626958235789293714184138097770420452330763013823061799998621894087317060497876341992263157591873094554884804662313205579460416739397838928031199656897338995427222159934194527075472488794935141880570591198634423986547151846374643487966626683584690229615732745883799185477079254253112810858909349625163814400465692274018133096632138615208301871901422756053757537355330881903417621625758134557159106380517659327870038281808782565523097572265905368973551093452934836692432323880413966967847838973526531169450387309475764433962274988845513845062074202995002800782734142649135262513829649644922380694884814367915708356677702398105084193355866982952205641785315112104912465430411895650894998021578208896325944069544164333835056504724284554803178753954214147028937524452078767191029651548349389599788978641706019608934730606866118601318733741803894645047055477540337103480297741294338204381388277462592059243769491484394325317644654861715879256689121140438041247601328496211916086356692286654439005540756157510409324303293698919388071086879611891934598781557678025333278306872872467300460357953303070295240724843858904161793327301674938795868081811710604576296797057976981772250322002230301691923152507810557878879505890369316090258286994223444338469080664988526472498053351322975805541417650007977002958660216372426795906930399002604919212760904983504415935872119530064271832843839807346710950443154609263020115318170617502356810921766124258188288509919612214959891760573709193226080034361409405253281347272542833317035193053874091591735253298670111631754009474623832726987312443914651262856253993089289603938166136967332575332876003769116782288742748753657128604900138883272463924420309572882819601199299309607638721220362817080229648948316219853200868133394380517627443847970021340582250347057214191133019319977023741742401913946406782734986401401575348303755950845358956196135056811919850917588836810793035083362863284338998094928902378096344121189864713043114273753026790724169592969125330721122191618400961360950796522388571714852167947489300167141102251868333254456372629069764433465663373606944591392062421702489909682509488241685056479653267984200996121567457687516018369912477399870571224129580335495831011078867441227287006401520718465640366701546920986419301946952331429241348713251559446458221212785953138517437855204887298402774960989143041644040603948792289708340565487948310298822796062140527398466937351038063698508211109975881319210581639054449999739078779855574050914426523970960490728172766054518908199719413002982585499773695070515137067240136241750802655078289155674938733012778219613461578723047881959694349656693250369013085730334641018012388473750061054786962773004768947186750337671929492516424862926320111945321542342981805403805987339442385178120767042705879872231913009260656295423340130272867352796828233418398107107951729951445956256236107069188316266525316574276810749086360750011067645149441873370746822391350656429998831884152762722304885279085178571160864101031014296873111795208754463052269281750169843494806325684846649041042121782209919984318485548118380279292804607411371627308500717887880754053228938495503107461766790002002108611441221078130196211914370350060701489309127593691396107349357173903322210840723079823699768230959606155485758559385703578924408324510758877800769347139827356272433332520620908409428139922098104211330112760875855404943365730386711669814987161359729462690226941421930168150290291160443838579232274997753363962488926616167704811770538225375313645908810933561337904785285246024680099996137356881412308012269736179000943735746109382233392657437599168916040480836832930068767191645231236378690937078409000666580513465432803610613634608162773769706963517059938151083542505143028187973676427540876449802839251267463665988533970038871444284324954613535347908641289371515286946383556410711446844729734224543436537965375638888076049570239293345166626632714834883978413981854016053538779151791290883207737074567108692260910998204347798157374650563423454020256872845610094935206894180528453265824732397535791895007481709462322239090514708800392619607270943071127864648373115476768437893771699491691236275858555137453826072709446446383334007257581087431202219636636498031776580783610414371216105862498252517820938714654251791623568398645816996117752703422002765572135695069145708880084874361645997263068288499271022866090806603072199108523471962852021733189186024618971983042077328186004642788726692057924949537827161359711444370852455363776713607692957746373721720618746971740245933481250736061338717461602936468581602061783087197900301014035320721722274094701028084820128670940356471431537199374340457166658528926787315721778626848792626083803637842672753845054553461217520135033191483737486091118863894753749476920353977759833978889009250866636436599828365041547563243770938304942243197830302093039335915873080654603012040173432214693481674301536214551406807533428761807787374782635267804003075053833791303589804483314680479034856779637384593733330219865108188987361050058677765333218244943527779523810366969813203144821564979867776942915271677691104058834657144726553334623585668574925740283852034468388023342597385209353385357852932045175366938542012044964235722642074143679547451408474387077032106473465395338535777483673837685304956570038989412219824264141507263204662962861887977211371181249165876486481225808436013621801826148321095717541276110075337387460872367781517583722445361701637346563189762765005916435752848834160836406975942172535904649478376828605760361821646621445921499231074017889249519564107396734171252977981040137301980025950129807898803404804749453797249992688922521693537652512874815507439572998113942944425537359796913682398200777299849938941204448028942755248387016794164872895737622877592258206885484726166078230782473220265652817749220632029773116810716491079576198793778208203396591502486927424857456360809405260502292428409300410242543819716344793947433729643495525635786198828396738537580035490618519902856233997232687879892602118490367921781050742136261242079976374934525244001957361752293426942376764699291036246596278901304204575918745928985466688937981643057172267019798865364810041632791649949251473632498362368954295661681570582494334811045964133279261760056598883050067210548975745285320050930830834812950248290372557798590076167531390308487923833110051156262363244209892403421002241256709383925196546520409683430509875077638087909918922704402326536073015465414935862371667009734321442366783269931369278947388325838633618039556676899489043417124094049292715221190813116154132412755875175296664416908365112090258856376755401516921883903579719828216145633664043290002884230436268545199146512191526691911436728564919697484998310862463049518659114593146074684171896116283794616716714829990358324487252420672863535910104084485439900119497150972843802404812234612966171812723880113181390566623609925110123115177505777795082562683566909977493896073948025743962929374491557502136658892017691902447850012687335339548130310892370758920800379230616573768524620246535551338101457276631884823792733404130537827119819920391400024358425884144872089387495926677048329424132007795447908375881101633511453294804042537361936027042457865469168211452888413379114758759198578696741285826467812817006175284596577982653042788532119526573968322514562055494649035658094493009046709817652091951127331639192891728195195621187871838724019466097393623867507896998121744096332830319460455842781334485484021164120279081711152246754245779891481673341828968224076276308246944818474035878505312574554084729236410221088471128386819733274246469420128107558461127367593451827635703029076832349904071762657330881368386918468274560475023451071009783486199156963524739879780126336821674076032540045065680398771308309152365713340570129712607903994017411533494281042557725781818165599280121787735870035606248673934253090994084730022142108760553855837218148872732189686872054520284695667028233049153947253093694849773803973358230240086901523737244606481949649880425075601923460155805785420563173310311941334751215558474488835224110298014363077375746621586970518304337429939173431980234267640093103202396553175033907612601093426156154726243745150792128816678710314706600269483323183475118894762048617331237544644099751107091029544548497910821257142343790883593810253385969367662114368464300837867386070818834171763327867830826344131527162296230681993208239340337063592305528566389682339511880452657624368931364292453894481446789201719495078113951266179039230098298484880179267833547037555564383701388149150395541585624407427921307074152578760857920449419837531951928586335449588627987993422411118584332643057427306604477141417665198084636054658706966268999940126383425599749345869499073124848786739389418247112447721657976647748980524913002542694145591759582535064403113435986178268908088599771439650458488049034012571229638984740072881056463034030218079896255047056096514211774791514134226536921724341667667313767459505255337588216307235163151091296494699604093901293977108328769841036821896025761386564458186931457617199630498400732235785584621758481411054065722411539012215060025500413050243557851848111598303862877246765821873110616897190009583419745238557801956436542837690857210023168492812100945908952447317844025127334221412287042804022786724043114529550040015629688158919174047201145771029787606006943239697128712041499350594653628826735445546143949415719795339516057593685942211110366478055459833639420724815305588658823449649072812083983060714853243101807080823272097769254373559067104940396813997445454718749537254266948881076233133866270614945643556118385021567412511311007138508490869291160311650406431065711777260245354895209820195676984287207878886640290116080447803138756475552037805197920706142681134417064388660489950522151432476671039454527597587374358286396013467229731443473142164198509149745797155939782157332008634228653261526127650135415844618964520912541824849706601360040779387966305519840195495839943368216693238851243985243103809369695250624565212799917178798390848427493583112635831511603874099162895104081277876486544721312042526374184886744168253010628833623011297209341332076160373599605546333110891301653301898967078302982370034905330789465856228846774761986084443537216566943629007680300588918472774617216677142194674795579615096517531496920653766267435899873907081840700131913864618566725805900016329575228195363106741168006099561264221325670406940614183158529441799390587494870530373864013020825618663784099126732803924379077567580201598246391608857830566229530982565264756962288134060402474809911814956724679489237812197829795755608693507765804371298070392298370324846516093960936955837203901419453180925048030719725406537086655805211657472420873788405982283427277292015235716371457153370642166318578983993892773417502595290882944614198665439125500979719983542650097042704354958110365104422829419242386060098042545803698951611024237597386675576051267143443972133510173378251213135231143962550659272239405958547491611212712269297461344912771392435835485929627720792625518573018115180201911609956707483749335719059375611760368750704041660574915569006524568791412452449672355280147967785143827533557872993852385433720038053208858970992245111723815788837783668676533869487694087112636218198029732288221863308379827442231082291600459671804957313333433367934192175012553213820072014624881073356557127671727537805504900761564465919009222531080234114558302127705315038516525570138463024598356660103634927520402899171800853497034250418460130994969849219537425441611194002818411702090238608634445625221750908939730303808038685350466797445192551883032969574346327244972400683069679418883594110900710474665785152880547085095084957444586651847285840973730536443142907742730245123243879450804709909718060031830904620219824470798762654176714916713168795466836853417774197724598789805577651251979980886177921942463357547721008105555811335460626112720538569829763015124055033329110217014961479753428131461450167020170112164168679298985828054249753335546080697411133021582974597931359637696203873357274701347684193451454657100981526656030957477065117319827549243429439993559622248979735953571347283209716941696098297483668359480437290507958147290480940678313952332640431472132205577720949820563381352210044328695920536509807148680647085828331086150263756890412250490295688396681382510599823713214291837583297569429757952853874794004284705728850616835375783636826761270158002043145659466187403694470067596885536409436813576177529422594647071305715757637267525248142058628399754544415104313623635966437409013283456782388806240822704634461809749854024556155814235661585383681334078247182549814691872912851695457852170150921381001392972337577951975950023081607369797714137960283601531725089287789285018241961989161146176881687026670739107737517765822380903157936212807850858186176825114358290877916753466700195892749793197100802083371042290087615430482373532502554889799001877727591637754557210766490114932178427717640764790934543915472818141051823923514985896820166919151334805408409755400412254244981766322828822021630157388296647910839812456050653606111826625293234441461592744989665004258497929360481097385625754782896178425244592040319978625502991201052952147981493976911176635196646343549545478793120984215206471047665839611137822632869195910934461966481866598218433718761802893220220491294269464734798505082374111660921974952997359999042058628437440069731203337929673511387116545017062151550417747379923323419531344599348394475057779645504275930423393571260391158416934530018469351446028187918708699777103379231543952573779001978724121955151145212005278577557872385652960597318714131556260776997749737959815781322104849729669769842512252922476842239942551183345319131628044142888274088293715664290352529438489497496758100500719325394949878392603020137052856766475826909751774794308325593783960153101593336043477532151908963986130129427255058871818719908626289756105031869412267439637896163161678875873815592416165067361187669161845698666623111207842770140378519165574638560743961966265204244549017057000494125594663004237288257603002401555816070140412858795925971950084414784150557494759275794043864821841914554860152238301234849881749651451869581336415195790776558476253007046860457211384337299273786998590417555725570183926042119081870216531201711646246818552535614166631873075420178627023225771997172985540202203298650967038697757224172644189277339218315081975212456476950436189054270318695807980011751133755099147706858123956801533805311304044279584509033126340352848613769309265881229862063306997788249325249110629299305918423744445966828376546576907852030604695058423275472282024690255556941231588170044066169868752637629903786198714346571102000587509986940177654436954878683646703756207346870304648411850740010368075079986445749226786485848288932061397710895670182427448751953709914919494389374013861290425606634740162135518050099024631680503337036458265658962752867667301635818362995103123999501119840671955506694374413283286597045294089061991899041692625166644520572620539161861194789088146043689684068770452522941217636641814776917484643339504148317013795002478462763262098695437695486409480447620589994491282978256639976117946871545081429714397642417348890496427467642856498221002566440891872907184939317127996897061748278258318834771634623743048792972067531020012080206643562338683496230689556400611755806712805226368351041805414585199965971217426245595874733140283115056798486134100106698704807143317576736367557260897060296198945883281567022778857782991584546236596779147247116969128059201075647763367473114709939392739761361048802451849446280652754780079918097608119508392721239446908340621134364588675135489844203283611513973812972274528722681269227386344262629509118254396923077166528146088924854435707613100509214446953166101869206213803660116997455304754591070724842844656157507787473431467921817453285062024271363246398614970053550481970028515161307793448449538948825817048046567875620944944374616152097971529421380254977272552433179916900200817875855344002383427464190521350865028876361440478311794778910838522637936244991127120265464225889379622112974245361154161542010437230487744191342600933351493917219092036451596726435090556509831871900327161145391626360604292397038439251505919295789230414847793822282209878655117060836755976966902238221333765602855518362929823188348878989948247561544171509852015146406667764358736749293858374209065874351741180872335061106852949318630684734838268633776604384972014352404214402915956723464574182140501969226443149395141348931095983619655762021771290775010886983602852053308168723766421786725828276962333510360726211233708994173900330439236089526676045587777143625760184700231552551497654210431533662365004571586658648871114664558107729082110265741451565739934182067479723564654812466997632436405507339260960230972802589057081616968423809402863902923972307310092535122624384312246407594959902471052847634830941006556027504080909079888001385232255464539528122927160888377569411646364866805548130586165655918857902670850782399177703450802599325672092335553557019574280044794583347032333176413915511628042702149770508212228534057299182871139631119973142670573451965805955375923776438789740083126286886727015625778551690622211066877699195260306787142541942375151325643614296846839234897121905376668675648204169141521042014643772128069059484224392761840459167013194948571411330320942837225608045281118037452582010636434390130369580570929774517527705053387348556564374210369204757557704722303305330570395859637933093197673852328092665723212066886556878523240605412032212009041052523761190078632345838522365350546383235627030631469190737237061955047112065066090736207987033409012405463366846168135179174975244984241694327615348800805615488137242815078995343822473816313030230329487359132055638873990898302947840973853007261802598956636006721463315774905324517386717214334403550763657473332484395492856197873359614671442410314984672056523890986909967374153350341371131171360211714219039597048441788399211763168042534490861580034308603499000920164061382919936240273444200523067336208854602844986870965089957149155737633181945600856476599296631478805892489049196161700493169979960543835416046178267057920723119486396013130216832776432139712241629299089810436676174308956253253534044344328546263024911916988028681516683778893737377981312323284152326601186013747156151989291504110994880634555012075052222073545528247801655612145505520373752306179926986313003224663608071458534811354557407020103224783771642743523487359189256417320523950532624021630552447239193742926662455264123517611870182581419123921849498562291003905688290011473345727285826842746470626788380089257358433571990758812002137144166530860445970772249645393322257402215443148274183895606122592690913299257803931907584212358072458270128328413032330232084880850332079886899722561438296679994742643315247567241090426026465562613430749559449415326676046890450082819786131673134202334808204078373861057313935603563031745459873795095628537044024255491160269104268181566466637727260733274069219647329809276474936161199939227885960380951629702596343661007786129959280791383411577884875568141598580782491102679533944098165637028661232000278246510406355324411212870839382842638844842241602799484509540029461441776306731172019028568852982880368542920932951044296193639333411547855518656959266224341621046882738104689045731118009713444336979853568648370648262397617822029697648040630496559240254965286914231028558507012577252899922357010145342952903452227381535297511259001001455958229409908684732182483898387025730180926651032273440707487969519607091985200244889120374562615703514644687344732533167553734421253324060002254098513535751425736029623171391429594802807643660666427915280182991129114446738121951181076102220937395473146341063217997123298226250053651752838842069900874146731042589007437251326246233089962475957140288472571371367427127783621942551250753147918943498120560968074312568696683595286549267913211206791903189652890846761974012521116771203730125332353639855923956777354858217042472580721112908692019781269816491681847112986564247252811801982893108052321740266671938269824768435103202779652301273454077089035837026736907069234197353248818360686860320425341442811123990180567966302803039666295373421913104949356685652427307771159264192364073426857641092732629205791888010953210087327561203288155085421212378682450315846847868343235033371293944872132429295465621968599588929452168160225625531540004192197308108698846580653361099270019923453719614167862358323246635757012561566442260245538844272308793450844057282103638035090443581848425592054008993157776497684631647582495490529164995844616450714701089742487682803058475613675430900819488152125714208904228231621278695164973441415407350934167960910467188303977399849972098139230460659190440611004479620169292148958288301257914771120560885358314731089330738249001439289187451006557613151619589452612032206719991024563913638830566856522032956924514323541175675379083220451437302639796614469095511866752266346689677408071776055692329562790992729660168402866091810200296907175236945461079479757965686103979062903593371977945934556017533286770490104199583659148124552922016345485949196266969731673910242148383250856098481492258991051623246796094539814846662477810162773576224071761238573181488167792225731848227632152660282394289920237348420853272939112239502984287187451997438326992557138798286976433625658800106092201712959663819240362575715554641883886869946497157660890610842401110741488235796066481113983625759171466908997294744937680759651225873571356237214150575743897794228163114030241576411188542179685808833687283156243065301932169651428675329609925615250972494514350152503639694283779560739077821711412338198818111386158299781189250979116419963144760832833464737383445663487445168772539814572386795134532788883160608507444461582190834687017574647784289078783428551843412262378623036428417297463550664964880700878922994223097570538371509047743428584731310346235962842416269603292949286657637825847647967350528205064546234727056756476179952775111461463078629881885984666708038504020144161721084170116184002590171086027187263464494675123275553900571692166751398660930678902050830209097601970496103321966727536459584210371268988406252730405995794997593017189384785359994356557280715283895892124713348047640163608241133257268960058366047753498211948971456924419148248037976618180472694883169123306378023902093886367107981934381072871946778211691187297560361243401593447786273046179443096808676914688938559661929524188441773346716857829087555561165346749298435750101862239019690315127642236406776612848119758320687394343104205540850945133825450246103314242346224429307677735503388713255017543835637615221487679951621961319427363323187686035557612089229817200187498094021272614807198745979878645317831733556847876924490171522979391428705337916003709131450947808679419086242436551650182793617547125782667451731632070879167362360774087363096174040768716533860043699779458435200208060469747823641868846006060976276900664427873826648199623713702113987167756267606312701673154800512898934761774700299423622335907420196692595282321737472614291875982389383358815734512426184427940809258427573777024307914533241832807389447178382388548257233896986604932472337476941697024917141688489215207679807935833060780993336391177550136203407514102512888038159658975460677173755590537740082608771266800805439051702296987938792518258467794067739609642580312396371364855010369822995668055000472370331190305884369046302367361667439643844247317666380011603853244540439436240334018289077100917383533005888283285746862712062068200573324214916617231062974298054308841221924822377985776080868516676833222108954268274453250053647199998306653568060313534031091065498724864058584097147455767926858243289615505255777628710639073853102013672144688720657183725485592169148185867144052172716406010025063324741565978861258334263436097340613722495390920599361304684535996938598450885565280114850243458553515571441721230114577042506457927306193764215420130656271621222276468914508783770655090907488893715791667294969192147610806220092814160433353769740140521617958866860196151082395613298012549624642552344871953984401543624954393676751243169148745191965988214228347287441972721239773191072235116081164072785965920693170153826020207730525284832109258599904242697517023678380005369188886466258447196957126292000293007222923658274531044161661281317387648238395086205653234053173463634290857034903830313994614731616357077643146289619750039448521916489417441651798500593140883578958178431729375520867809030386145905213870052057895823609543145278243539935764804380535542094939121407323708413895796318396860370002424734873164445942810545053398042178460773470101961055305539581526680626136544630220258503439134642252595561325214630201360315390541073504396728721857632422570141107224361268609512673316948644505735018347605453515098630109775579001167371677080372029631921682228299073663782772283883908501869035435406601454889315034911257134061014766368842025138143004233921807837688847366333624487031487350476796584195554424790867293909612984048608860721222984131705522725222588304383370326791880163329421360824282429474848773231486198548931250515190654025294240386661532098915211282972240110847537614362765815727540141385865678766391462949591783021494160518795561725042785188126407234380521157992963072840790311797052855972172289854735938517293268839626175161827652144946238927150550242733720657395646998511913996903231443168320330877248410347621074413113112555518019627254826314000645029202977586336914017741806992833244705708722484764934061790639723120039071689396521721642411263747576348520930560285939114018562592427199156428494070180681079583997226113869100152298228355848735572820537817815430605243918397289135372651705368868060475641138622639673363088714136551810212362108208962595858493679649750478762222200998412393321842079951766249158623047503944237357373330669017440032382513788621708109625004376437059686487379542261395204517829011921027257843479057073080607534519818542329992039700561855640189394108150719090208414807230462180917414053802146730379358272342215365406762426804716548090188888906804260506701538977074473569388584201986282953451169070028553082193301821631802546681531411391693265647131011163011827869527464327891759258754199688197801596714254172330453515129361384966308133948521024506061638166702086455224421068482696243307418777769058860930391176350513867382774624510986950705561936538507836676785293425570640185812133114377770965686822199163362569216005960835468749538072250649589633577809863582164436646575777088991584878445378859082026286123255487136833297659090502968352599955524625815526603243297897812018497888141457428392194694915063042804744848880897584569584286038357424000802396027420520235351645821076955527889163499164923462832862139766734326355230718825449158827830671222770717778799474134213394352723264094782985226695141086816039995756298968308723844832597159192847966825644438691225949494878180570088248285167683780394367795128962977566786508352419592616268058645463915213878965037806045873089280512186853167670429370162840374463674136825908681524431524418037843850386305658374184193626359440366897800630129745568258103925226636618045638405784130176091315677741796183456227186053819768445606568682077215011652498099018573012583736051017114163940679631772483197056973740396694360384301564972530379397521281262332928927285887925812630045723252054801253456744283420934011129629114357092195299198643086365144232972483997778696013670540735253360652667737085551170398878858179885268324930918687404967553604995838210393726917616717058805561514314081220721187993850442826455038820037112033519500205519652194075539704962815967017152071205658471422260057936700142582318300975060835459572742777199989336660664200768013839009149142984365819324646374963987399012088755289143368565711274850491618237656744131229965950700117815784288225131719644217085525828292700706677918863646378083724072448325194285846339623382265893609356224513092900205785656152305812094425612541480418240805496392913613973891653677500550210053760828738104696120477141851242478911078606330892008690328076794283166905477877143154818760149235590799703344936222306817373728874570503818753231329222823865309069142168170756069048250516043813773385171281784778541767734534608085485216071325244344422074289795916071467580163338005325810148275249405839549174307951446786066666955131919883802212134234167922470826003580191569195856320034598259828257020629692996136427243816003197434136353092148825246653853495726432208890125240721947522845884055995367996908940752856550477982810929759529797610946541572324744100410572733418469025226233295776980417129823753942142400464233490224851075324216597148556494655608421130951264622071889998971748586873132955157338232706507217426303109810512252975960417804231415408171417110955066993979831782407208768138860203714163888298009019681671031991903946756134251632755058182350287339224843307533708239253408814167734968901883202128021653856619662860818519081746803034188229697406026049999098477913210201534269385936827806789546575730739253831000403979368141605949073574291088602014463294046802992171598088569388130455967964930089450504883802431327635076813346243722212230810109079689789430469841181816216993633045759628067527149961022885569212698275258876251331497318792714239887171264334513207175589232464758405153962688503982357154081644152448387486522897247711839737944645881833125914646605841132484854643182347072798266615877144879867529576227303583624641577911326611498208528886252670751901097356766602873217473647471082036704949904347156850830852230010222462135996207963978102064984040051262367748228628852841684632458316672666643276075846308529975690016469743063972835052479602371865672692251117742059207824600493917110965294725574268851126504516464478908670370198578883820854280020342243555973360463971139439253706569749588395996269655797858399755801873086665885847186042856185912760379236060042652617443071365491332273647188066910642199077770757966930592907002107008894269508185093541948351247558554806797136164672582715728299140443728466772157400206201028658937678805505332240162087897862605489917870590137192418549479074040731447753337810869743488182868221990811447065325523185645753130538874410925870857113395172227439144134743340518330231085208579372834746325880748459686195231606099676838416944702590897897717729696365839491329693251257433256296566165909429099044281592733729598295397231540695843358872864841494712233742571465456109901005759838242689873049207416293329635183027601607023464602600064120543628388213065402205966993119516011046060313648762360271313886433828464340842359190110237017615496992807111611680750588525939381312462950147959226786576545361953404595499618565235337786662785846849218888570666049439480777588807515760912542437574793133309099423016519269964599967387944650512096402749177289707774605978868837267305626303918293035012588075281871577503660134482438637062107256565127798216353159146685649604872539389295598742679244226173183826126802222469262114602569662407578669201575843448894380260893235871040272366937423502702223135869409690106058790797354402640524124985841254956167974007607968151303439696994885294600781144924530567599118482742905750064486208960019662930923240806426020650214379544479890118977651278688836152832684843662332516946898180756644369436881130942866232473304831342269411395933876622758997972348119170836007251957663903407381669110978956452753223884178287486243820932711860728280159791160685709369926730070794047719604601570348948656282845098437731242475436454213818244261976234924163392273154060654518978809232095649097344280554860492962876544844735444220775454984091578683210111236522485690474832121462353608397806950894759367945595578019785116945506662450773175031289371865390533438361889668383582499777760414062795742488217257749574057837858921316442477393447274876181798262340081530433464361353296565172568753179275200522267708482410180971606939385913048342196991573364279435318077228861436315532504638142262728829176340581693011521900190678852807472071547173810013118896858425666412145508685334963730336187940158453813378354370347344595405626018762675968459098754927506764718938433785899189531825064688826301374465169490432078778386904034322659613057030029159460103150846464728068903781936285891083366059185542890590138509085511355092932533868479374546279826385999106090097110610851503819687215374421310616793001072902304192276900701519976812058596194680205594193035630458624967249172997416185454213995534774794264174093359462529048299425586387485025178879117375187741840505600860812352986646627050105517812492300908608145031563335661857489031829565197947064869465249485483160917898840420151767245205537993698297649896020986000987171334695670872167911949387226848703362280898928745680387105027062441956435303503514925542863450424248164953612812993064096734194371317572445950275429948816729323905503279011676778027452468541432883929912052354178231223322873782522913701256032816393928290195612126978635796786832558901216544593612565077912085120142149493745735613424452511000019639611610604553963269652655029070282832587673668920506317123888874517078838319327863575401225264216671566853670154579218293292201485745880027239662059434178130253281192560983711714546023703031387277636741011420845412365940091469366918416957419973889117950746824062331811781679305019321878530759118054979996939447188869705072207267106704430528674396431151590158624902301627625630428379039780512720729098031193423746721240961417147813020571531991145661644410692906371157292245094184397400391420041102517635901618605583840191644925088532897177230477762104851200768441208449934833997412869512647725370446891164960144802792475670498629120585158551315510114818806456599775454655069796380119219684424780896166507048407885155442341650963627686133272399752953384001131132991364990481695090413550977903193815785731960012717498834632574732781641981290610478339739988539421408613397815480205620618190551343744066105394091480168416355691401057159505770727153325502155337164467101460929288633402835543115746681582642711520196977648541585852692893208272872691830582172955898172422366575116144866032259336920223825738791382991359911885951228926128300773007477973078364061797497506400276590165206841938829321838141693982945848429982917240055162280462597751408437693308265328254140882752138984306464166953203343882947945276449608128644816093902095852412983785037009501868080547398246081194601703185064367843841496319630457249915857693776545923059927513174523366268240136368566980071601450941613854121801924970227746368577021874590042171056484150815389795376015098512685428140847009099955193923038206293344330654101386751192337833419516939497818631864216670953172288138143998068976745023368149307899011263903580006608891234355892597634091264167950536684886891077316132990502002546357017002595914399574867434585518735672466005997228095952301932801540339771730665706142717565997706318516591747256714724736043507441920802468712355112179879316149753608762300880901624745293685341412695284305985689860531590408038353822988592740610439467094236098228120230713292374416796308470166863902706498714747047185867334166892208642476553836786449589199003482191327385446176611293141514258371078133949190670361833293118369840972192707763376349626736843288799291877117809376115167013191314178252879659092247421973107910072485157520804950578237891667858785033873166532527630362761825031176300974779047425928716684269086735133367031246329199570536425712019882400015456871009686051994412572672531602839231982166099854273610715308996154078925940977482176175466803935027735596675119483436937515894045147604525764321793878647711245265783328432297161780369570172508412438113619216634442320752846019078957163785064188209071810082886926644004915844273682725174616848412399951452254499216427553514494747069882203834948568795758818259274402593658388437576831936263881551926567353782671622586558510081851758136585610865863965527384325858095848432038371196646134689001872924914620200874312231500621690147774788793744636695085908856521357959755256331584860241333301698192186205178518444427669192835048282749819526341875156384324280759820348813210343438330694290285633146528020756635863383383112403424207912647031957489582115713349769720113317705643554292836909278962847789754008273055892434702601882849329426256056626088206332790350890459137593202729692603130707095913844620458580342309503767911416874096108410830524842914259831226492253553038305865191395732790794376651506976491291301634287168191008178951207134682615500872084378077732362815209368352736804203357348858410550594513129898635852247800945131419438567113698374721909235783220314969487771788954600947230103387901357080774144234382039150769535935253756279509350593752832763732676488391692246976811161667791618484425616303400680432731530981068160398408609011813881105834835429056052096392959075237436990582866957394633772128045344479930882660758520740268717975387950068619286004572236056261367910977797885034938471760954487755511395067107036665278602089356677664898271736553739318649955522735456733034577441592343602858261783612835694511111473168762586023475467199869099833311511946904644297234969438152396483633848347945889609591209812166236221510601865777617245940605513789143560343422297089152384390430416539033919810412375012833682415771028406888697555775145955295514363029379608871042263029923899201543372478119138917673442081410347690776343947264389138306802081192720839886674487626469981617395735379500043968456615341889620935456115988878547161228385561416100905004691295828805964810229875073300036713306820102001599376961620869496537443171520523704844866002656063574466164553895343769506792674516240049347658942283515579727337074124796193387512634700976759304760425968497703836912889813641803926394159389529836130951927951788451010412889565645911681838406098259949326055773145313111859442472670534814346228787520185560987531466801808699839995104038522296641318652697886080851786285382855676911201439941190411475554712251181649546739285611526922353739095560581856640894471591243592446271724046398621055551942889292924348104725111864841687105287412302922233878184602062594308413237920238429235742514673380698595853693937418277565903779288471051133166499237884529551401730461851575961712498489251989857161280106206142527640104268077518258185209472805062646818512952265806785773738492261840841108038709703273771613868695393171451393460509509086020524116487362913989701667671121489181144587521771145554856666091597583705088181896077597786578113657133995398063805364160308163392589341196607155780323734796533120352227056001118626776026038117721257890213967887583203870070100191141199581070711360346228175685073805083875551385331020342362351364249396051822669918158644496338244049017087919972176690186059931421507489245629506904022438353667698066721713277049036393439955005249723930561996783475732249447829561048772203462946275869728851371900385589361088320501576501750744596524472064324346908545433072166134505734291521217856290161411868757859502984978254638963556318702806225727506849607561901209608944066960209042123517974980425832767779289358044759897891199231670093084194390902117400885708935381582876908809684326714876734125668045727820407205645117755799134467497435174969563446130214673761255752805190078016403868087126810108264706376974403034933827196902096938866862388532481938300670604381397639791953951128705053057535354642764323036812825297902205814100386376342831608675818317753964604374069939693899685858052225977771828545254606170158283930460761589627281326095267410020397889246270193323104319574112921014661911779938273570487777038862709882791106405965254464063730334192668519480841597123489244426906430693581310218845986226643923492438325878905549388688056179755975544181500939914584246276458927005137639474790975411246609989893073407911989273580120907742358239373722031647254361601974348089626486922921276168621922545563271864268200935279335493152292421979454392052648582078730356408944344165316240692202114424644206807136320813543291040240780112390764197004432917707195436307041736306221038782392162366450503346891817147670287951230914313670266168018320493724418755895283663045095467488476090638878984124511682616776655497325688724966165675848357839468040414630960098780150138835802305849655167498416086210879332858677395316802731215877689553950419091283935740870130087424825996245911803892306699214864197103591709270707621287708901293289193048055897117793442858472002967939570785647112162833390826811836777309857217779520000925780277681505574767219074908612944461213685894394693261612573514550701031170976325660669815863203512310328100645014083692902970815917661522445014850952130683963828034641484607072237634844935239352851338043987139568801825918734827698126101872069904696063218907600767200389811662779750199410110786124191421519288092891024238447926682464537243110847887423063286021030475736491572571477994417199666239399661372050978727956268348403240356400970263782814769164330344007996220967676338376056644686240383573310284963232115769550817280375104293707561933712211901570375025872591616041965185274487162667998954745928540711330576685301788717582745327199284365049490684300176339298836111068460153970859969791787844459297565536448576890660872810610730918260970594415575671654815665216192591097857130379543298949920120646700777950067631877711586469563545931726736282885346369347298494984788853096659198326279255703844936832762991727419662946071661152149194186065249574528015682960732467358512097197504577752467218456700185621290686600341105942679296130386355147991202235959480038245874971810447883747322311362231884242038588277643373111438574614874682955050897525689182016397222291617064192381528179940384053332472745750762527941152057328613568329049004987495637538031355605030785154074499231124003096584704237895729101449316083440968483222684808035100619585669656233001479425604089360475493187420273735097760085000373102331590874675147694972263935041706701213645157604680482054997229389703143220756531734706032494846331002285019558190109975488294130865065363772416362156248731780930905557074836053239260669997410659083051224951362368360878640087904206418323006351123556454932077757836813263433499917455373850121830335509701207692680490238177938150510344259362827060371796796575321084220452547381102854229648719865788249571162992007965215875860864799018779857383330641709321128927764073948682345745781049090399145728525699156910781535117582538279138818773125336652340317691124016812184773515596308918139175573305283805856533834509801739074837594542111084185727236611550222815008422031071204410331486786004531105625593465232089683909971875666859525863312483868549110682457525535978839660694552418082032608697224983176967256226908355356179081762783212403494530268630793423789874198368129420283478018240599504082812625352305233044190161537320844091097765250495029668452087343558505282934020134142449507267495530715872660395207073166116696655721925457189787598577697151886879854473609277906103699090232131850811609696839028605034513393973954028916879949961859282021284484762368410820831788770705825906427076645981582986216805790855787584662061243590464357309082202723430178155857366645779815158424646892363869633509812447313360198907448987665244891429360377066255396628101579608568705184734227363890108674221917103637353686966173355544766115281173522851746632332291177487795312006002459217520262263772256504094109049796154752968646442845767027453878923163039048576146409126395984150614709715910964901340730041303266454172875514388470941654913801219866888984942385622926053917256817119558022307886980608091437145613632148086805529787856339793220803124935118378382325347136029279860071158476369716458917211664593316309169267452344102865012451635007313835600611787129848780400569752260196738222980905620300962061878228056359622347516307996299516758862884339535146759483356576118447573297807718092588259294256282424815219738188910498424538402934924762431899613941100261434205932390780615778221863698530532576303071563157179039871249924388987479249331169762423331366696451524433862142593994246374338631450186710446315821009838117005853850082572897814624068336403014093137850938555470881014375127483380035651971589605350832021666308922240788099553677136749502833723162741891556328525515583691804180804811535003227182884780566663866030947796756872534930021076948289428926782786490426182682796970920665455812301515288685648104757555183551457891257759558357992114573123778780778356871499308284187807110657308030552782086688610871386138177108496239729284969624059421434503191468741092891734621110056982134599973342276287565993869595598058266670314589789109813356732068565360593923323255773888955103697108322080892068837247047010452480628492079917795964186873853601594771348449328284252814683796136659265049423087525787472831524707810980247027087924537130635931533378961732076751051494862228884972758574722190067882080736644542550182344788410422480054079731246242690814964718801818903391311492802257269506245718676583291428141757410908108196366144258165009670632927292706403312343673135108319565721686355441033379784333657527770905995967187202100111186619657277398527369436142089563512672258402238990434558781996246111731118982405878816001354273538739387431049581781478254408170067870642421428962732947489391118916856420275115934195507741184324871553878056124962164660136798178191083656257322586614805179598158710459530191665690401288961880482441188762037294872978912383958839267510803939576064486704156758718505492920633059478158750723921553288842883265926847758339946895456039594877237389070983614711495640094975248510326396673352930845682385847763283295421393423956955042450797186069745740922592213538644162705883899901394751853159177526835485406747789779023625073000421397175478963117229811487204172782750883984798565419794567761519295942430175074969275979239228130649295496408321618643320754497140906374359151563453646263893115837497826207899611776376117948098651278120146779615447099404120621535820092966253067914266423861243019953454322271810118105295882422012131139294684953527472094051533678590547388682177090231466775507848847925478628474218520945111973807390957873291016077370838657739809196584318379536452568711967541965023782696721644902814463968427577508139871014640372392120525084913880712835283968178141636921434276791114317752391367894709592068280418137293181328104516387553871721910731331118153302044630018958852621147692525629198669503614953555641127775611379245728909228641401845464704020782706636386135779866444805343301189915119452514402332048809915484697865376255085254412205149877355635905987254591642291969968315806124864017097146219024290836937409849036542885562341317888176772625682921265604048369362200302602521776323813907269072346939225322638502813676590475233306815026225411409904782546270201989922880268501943029702579260472328120948452654995024118765505440849637667016400430437118623398461375340313283742982113750633996092264495200169512848842562938530414255931125447912521698324516371038090895273170572245574080013519296156147550191863971490509523059265267442752698761474026846475736520713757784093060842504818524723843618956991563658379948324769946481893711747359942811453203049266067339018011535772583508389874604523170514694368208769387473580041037667003772022985529693779808831823323732579786902629431982099983416551822504183578942293935127515306771168349262710032061604310732131259598758418772978878922942520271106202604068577346975262298576389505934783213565064770614281649156251496089160419248385157736463475109979857529913754494564479845139836972108840965442901760388408346541221005913790631916474390351461811483256988585920630668115583719352916259850216993197331129787518650706599608470769012483404006845700567444919016245585079538921112149128865158067281907747567426403878489727681977935796142141656016071110125983781219551995232892367767354936389550552794190109922280514834706629078709078608979100866012496804621277714204890180187809918160376658103106855172288877750036187393218436485681206505252013260105276907636493985666252529227232935043978574211725907985976396677210726132675519743098408082251218490019472595639573912276748289982062263938043692298899361728931017567048663177763513848532764527494106908544304101308291323569814041178006379976765616945246547588292763217317274158300384042531475776479715195689653043137220059541099219289040171922703206346340039482998657727948342099640376120395012022647831244330787391504247688148676527252803897922024823573705158136998193346928200159612811641862675066838632488786051006155203456714460706863246933573444295515017138642197485101426208171760470921120814341751145644112328109349064445535912859010799571269777072648927724100490865024422632878824210984803281601654795695105281799400500653216601718561654425125881324316181384215585270620208819959624738703502434238596808051969419630186272305904016598973326189742223645016527779675060129350359931520889888856772927267870467459613469606817683375211145354514314680750829655283990607314247321713085249800384715420083854133507231030235675598285278452230131652559128201898095383892426503550381574866567790531941237228227610873719627658349112214686609530345572006867890864528510735898647462110008567877047579816880724289230758819660407928369451043534575990212289400009427520057602414199736076472164921689863400370315009992060553794921105622823999251351383890678918417551190786746845498423896998394993179639552947145448229968320928381021504969592173966358653220784630925686589562423091007767537547870444460341854061449726331407256888130694143909302972148492464541267997167105948586132148587959712453570236029734334251172972061327188543682878263907888428771748651140165034343405993374322987160950093532589770908108300506883265206302774843136634629624778167601994932614999911930628313595160034599776251252336106405194041628383988395801788907795032840203679597793338302238768226051421859742874557665404059890353375712711471749932560855455356963144092765501436272594575639641448484548348702978730547011070039466827360226209785551362729521900890262155504756261157933665832285974643384606791968079483119875631758857207131382970512623444027330036921195096706335110075493967458307251893906156580432080665663183618057355294489586462920048811091133877218090532213533122726687071121163869712145455023513297305439493711807072329376918860944981494289917271862643156187007373581154693704157630050804580782991417087485364263656014017202913902444949878903605617119522260889813881977193181501292974870781574718551882975075559424639935890035675632631292048314840317977877911697218670918429163671210517267895918990383263160080732021881891212999144789735676806969134491415675593406964927079117958267251634041945576116249797402284543539941745842390901904006781701105974946427050053422938954418349393466235484437941258368988639973938707900021677109362510574146100322751418894734754212899569728618753151410539701932639110662226420475628533506762915557091725478425512712723994141829225330281822639228034834850209801556909963486634093503031717009200780513807113551677385631507888691735250393384313894640940340520970547453331158808700453723737268198559209397334350669972871916835142471753933187880949350454891488352782540957036462958618221511014469773758868393440586919366347427628635015215412969719336922185359268769014828858908687120181901963618291520069569419391773961607405250087800576546151188623548193759134268752876851202453725734131732048890437546843714746314229567344475469023785046488629511895090550853613937045827529425924246708433378265575705868183222833126936303822340143519066531294409962433129200050986246360360916373931462610820640468107483428204525126629368600466362583539390744132675908708884882925072718001531453344391062483505189279205224152600977202985348845737709099762642753768867407795854575428007233286386728968310142779849271713521072137253239576902420556055423829249802972103046275689790358496479531276168114854892249073216421111436979763994038264402951456783418556752108686713401433534117597620112500643967295638048477040158248744925558000272344714191376032924447062128368455107758603136864656599605150569651714474236324145456624188465911369083318424859621483250852502404943848513338334825025077121860455987236830771450007916050186189958842557848897793322056600652322324770383916565108895089465607234756104835534018655932781573074032858303916338219068666253179848202071948660323033222320656363015682151401538677702553662135499903530493073459021177912331898564129405750109682725590578235197331837236823462093628555926319838072990018103005326363731638699032943805283101431973474554918251225303786553619060512964573370182595553637057642675133504547162372966836317193058679019735586289501457003107058868549093382941529813937579265148916937279715006370284494504712657871062389318462187863076106496706766988190545076786598605062194071252965230289717198278622608980754958528362092280084319431483497141537219982603811345459510142722168160964425831747511543870482323300028958247486836305987126132845140805023216468954730517034223543457101448597644076818653979111026329447573094781743268713526550702611912876647845975391163326075966356966831191998580999149574306511965744261569541718819631875707320560148209442315662767262936024476629187289714657095708927810584361860073455723163699635423020422704246171988879342734152718179699614769812778280132927805565114137103801872509655091811639607190097413247242576087617883589575458498407156610767316588246082946517631501766793270073297283049856104128074116298721194130291380084573185993282321816211096085160343300421922092519872938405557812849955718946020363684829519036948411526554781544837291347193058956674184108465433422908350839070630937918248925115637817977665350824066036767433169793438504741428221237734304073226058543319216573610631063791586852253108949584762961168071430997259281916251110280966017008094795351446455676551124762628212358553395695458067110111818553527311618730221749299936094953115404862595286382912135823525485811724231178482546420132522731339744733118554054176236373424432384590351470740742836764238931278781806951974339914493269573749521692118867620195309737652189168432761567020513383571059047200490367782236391778522392246780490163830353758326371729460911559473236934694164018060543571015388620621444087648696999205473262020191805817380977922336796554951867087653069013785758880513700705972972862552549362175121377987881998135769996365899485110958346506426330558010396326213744647020223956167986825137721106164004269711119860124036537556974068631646886919001048666792477712777149857483922399260660516463191498053716952454148439690894016800029362907921366385363860375865694843637937634709352887606032902953260567772468138860718819073181290392486173685019312399350811337474882043693359772366834322231340707531640014492255367370561249846612500902221482260341034095884282552023880517698945570724684047266999289361435303283391796058205372714858328851527165090321668826590014563205448405245957908260244768024118355144856911849311992093996854325400595994476221973677202279565203391450771996360954262849484938811818712509054647250500263426861081547704024409406566174658603195630208781671679332420173860779783421587740524476307444492414671440934807044370229328135703058665575644565724066622895356344839855689292461255499812486493023950628260569763627547469938299923984627519577298790650487331850286077110919859899360096159834396779807411719377466401810962044017286297417210925386510348448375336304990145382176147600361624242495810768731571326944696962503975038468883128700978400270961551311270603450299683654903295684877523924176777971176419374954328529444991123968741372195685262274581856199996690054777814262761873268570502463755344578239592278813421193101113853393270008337669034794607381855035146837531934473065080374110333668692157747381679609188516246678357259708746227113828753935468963138321339429913214196719349340810179769732109286954614733332047117654866325957270292441958214376255233151687534220730940281073788476684855926772922341338219736008370912917505064109919244721401472097728881051875216056566973532785197950368407489691114154586954919996991901563757252521809938564128958916887297821120263748357896012805893493533169540779226808613490648429004092294765801953967665886531061912519576858441210446892757927413837983826391105982147457899757301805618166180745382760377818865324398785439810732653998998720087626597148276981123466027475928423309036461044644576306886282557185673354193481285279721686367960586445389947467083449066393640976240493259132156763549684520352146203262100619387702137027101616363586554000165281104491932985158625912197131088211165661752535299053271597173056626234883222906461262833691577190183959705827834112963891503790321182562649894514618198107861588115577205347725880296124122754157536617921097275248891048007096240119620621337535667127871307809658897262284021315740356694577157987905008520518206949583742803130060163017047337252030715575345460746356329315220536053901264532804550904474663421010686592180350687591422561128230205218231543407520624075323769596929134231781817622474929058386843127676189415571912984296390562370048225006578865780090368619892468329971462364728603705986590188517221905487469315967981262204413638029937257105942581691389496275269156847782469615348886132823111187786613007309801837499746386285656689697765440112498539401520328355463076468891217177444041890171920393564076924576775821027985273004469767252044542806765907819863351213174365686894892265752166235858724824111328586919339764215452202510698255250834127562221479872869470910361532889179999917436112513848880310664597322370773872193815666406933338921713827315745687375706037317833408755569380865168586116726313847149868800337473415934529511044607285699657023772958367374993834805429861301381239621489106457269706665047916666368129763080921087059213750116175580016734706642920785593474522933098908258186261211516035110749340026266557267426126624855565798230334166997257213915563572925317982059872005900631545027103944144172125363095418019665451911864166781039973171438234466435048195535996444020257362642786187930365587808660781428873412272505828990928196643139727323841175919942480257214926737842241636005137333590165820912186577424128687432173089068201455583757178446572290667343009547744390987922312621293693031776077602033945868901692975715400397155194065680488752251393507871115016496344270554672198935222030064143219777104903266341535940634301985531876967389452779847439007932141450496814830012888554506171746717052736038977103056415890585551319863904687712763263315168404810066922703475119851151611372825711513990195703180499609133365296369313962657574142487759436366754310210057905924613961641949452569383958387388989911314163262446516724721954633253397129384760664244063281273360140446811973700324039777958110998649041530193775338500871722734976315610196646253822346292272040501275053823966155112473089464317802384450562938541077451687763898904345711831838492411449319565535079432105077942124546771052692104561706340017119792716110195397839183565084215333360354738541065292070016340998430151757593948386501786105795586459697205651986314086879378920277510729104618391180025778718155599352098114135467198136531202983285494887489031516291289926424470769275138285945145146316804629358825409345578825684597563983029300514692833226756423570359889193289929085484851162295087562984849215069081679785232228580350207218415582405666341236989351920839802737786771267443745200636681911263453130576268974623511223059712663964870678775726801535772941021345714241766168376735469823926985531574819426189149464628222740687962146676145336385705359560055004134773700872560423406746033118860018717266234883428037759552370476502259694236863207053938098164402620648769198735325001579998609966690961736776634250418173437915767748574341753117494209165183927877722120842559875178400770628665552295846684861247183038736895006282303132470935679857620443774808262114781305924310851785344265506982088955300885900988311687873144779635083479325059285138287001169236057153444017242529446661025754663889702226459443146390697004262180060236087364589916966641681668418059373282680706442918924776082974652731979874853028010482693557461851041559334328774420488787858094837175873925660863616466081684585667498290499074407626819490276870378760231211971241728298755028413225507202671868248727412648041389175314640718415141360878600437612046867288691122069171925131315134386501954982203990580469240690113032385891691214560920465934608488190563145348611234909359783137151194920116580155350591900373962919342227929349410272382436828900514792836739970905591615339121936644218418996754311117496991730179856020533234595620655420364190075230913671965626099839687919337037235495083597347344572037054925249281313468330911559007617150466689370438052587929682286146330789883402628203697667803871665239617613228277785930015673701912154892718863758957923447180482955561550882867148288696689337359719205259776385812991431811792839578396578101703987943513809797047019372911658486822959671692428688724741302034559207949927814400016496196414662908987320761951270259735350801490144057703606874605847043300899677438504961762152796718910331272727080829599753920619181161274509740811398189804626128740727643767515773448010082203966044571974805856117233928271484994621789113747193687665202052134591504617582282364371304131229788986395900054593886473669973355237024296446227824797393245960497895332991852824082886594526013796653279835833469763973438066349468930318539382910459074087577000231736197521109035916303994794230913026962586466216109277372305377253379910181721312293328441427579087347763848146891625010651033210727976665587820184571267086041134206338271344097443933622436367689697462895449078661049810794301865072759120614686069014683576411204025496107568100553399289382854771626165431769831281380384109513428730936989731456857109001830990603780866118123884368846055745710239506314041452144760655253666032823920508783834771849422361707696550584509558024354136595211456613085674101552417407976141261235732365335836414536330274242139373057267383743667160710955297793671230911347951893060638497752758390850678690920346809385208405456613814930814990398955922100914213843216971340389335822938438728647667879105782968567197092788641430912688716801518165073520366285927282028667889474661460915836309010243267624076160140740944405091700751474652997209128913969508560618507908994985153874779929513430655416825562911860242289848792621878090097431448069625290028316029877558025223117073204411780704817494363810241116514284694301316162530411665447686110271063359259048812225058128691514657868961407336156409200821437552398810074504026097199244453516127221953441896684029465485754226787760413612673001223598493056874584099796735880689906454150856654822234895389440947102582638942331946788266646543471568644818073702544543982012529883629899479698665460520299143723412796814080219516714974165362522012150738078343377148320888898405986009257063807856719458894573507597750739746755091817240651512473088263005903434662840868022548128716716074650313242453756629953509385522564567430288415486176120479013641881025257679266191718905697459230025234733929203454001928182777232358648211734461522354929115741402274864752739153231034103351664439495138480622590652225163935368137668001499458279971585933778716649542118526157549118853164722304887277598360297237639098479777283095681209793373729926911227322365515229571194682391289595363391162210524616058024809560808656763703506468934954922777531478158403447942184607674804986907203639730669522926045645168329786752249903280598463165202109158587840598386631395129412526815449514018003304456853213937371517664622603263133181511616190770168764583815097726631123558415895623309914690895015035778335250567997495138956340111520141320358476710893182709257204123944008044937219271927603660996571440317605095376271792946985661102053649093426197592532281909721625794805658530846330764357323426985245840046635049726806949413934677166678992465597396500344551726174469186935311287955235348088782284197527328545134214543936143582861496950321048513706381424689290018680101853873544082697796161657539378271552611372216338259181941363253926802409668211960913172125540067870323663350752979243540887962097924338873251177792436224138887042451231250354638657960111812570525180375333133849411146873047498706950489045357526067193047082492574275911820458927639327710002498375070776433388329507219719311100484262000751715769039856092944154482535451195920991426083464134972446568449579742308628436089632197698849174539168623638040241826305235587408564898885103146426243484550332946563230170803383046073590412783012038124188228632846687094665214337143071382240816102449878450491967928571069964172959198523628590315887802398671848385942919588520792437276395101177090261263897372796535740266493264701759113601974496836564927119087694002596132481709046963100339998859113855216877933426850238279411618517613950576506174656180743731778663050183326111552757553238850376019554406720048908360303952403832607916381855809403279204793925032445227526774630092152188537705180046377716587039987085083821615221668996065151542445466516688581379585574865067842462472066522177479179543132051491949197605142170514372982005611281051407287819797128267081491724423390197837906456265961778276583838071561278786695276766194670733370778661258203451603432919576265403476923110676587778892682235358781751153419091593372473337420053142572024137449886326711792522683914040553925259221501640490715888371474241856853998854018635366173065490067093045568587215933126554307178432747990430422433306394912070255723218090846512828180056587349980185431299612466968044363569633873870806082410678554225350092989570996755538719729812081563777962355535381133432546656945059926189848572016110771848666649363230340881967195380697783757351978869124881371889085382431992836928562718579825540643834787936581445569477014476152740687125376837860837070345552070991280137124932733543988715641767972690475231726321073230226997181073045045261886688352166681747895266751070653903292038966010068043869591718403025835938993979727806229192813937888978255055472824066980308860352193521543294202242201885581800264441019176575506727500311448067902908831649715408585108310984784020305995417400517429140021725952629140871713961262322052929694068126268710879584498134632998757456235549368484993410409532392053668068247873092711262951341823176248164768267604857074266772948312191970170735531193531536657168788151844963652067865538551211790784117236522119700949647860754908740469728888067498866889658803331667336352088362546922489652232454507536425782032075283291733743800951625992717049900352001929769274402216955282024504543202995330353855028090133140240871190801046639059161019514937139604438245033540305028731294207729834895655035379002249999499404148389687752969885415011906886062509256892903350976417259158269597448237870767592236885765013373985495867430125848492087131907232221531171671441915181752489948286745501272452916401031566611102873343057097683824783141792675824457823859222820405874436523087377231593297525004230470159739153152606686932522405731866578474793092726484624356102961046184148441917455295011565245019313957159082460985758610411948670483203216473311538029356400167760655513352682251133889414029588400156922609473613212971848993213709318151819949179863062082623235038036296405276923935991503023879849942840450901702370168026496470346427368568825207072696444898249022513050184085922365688255234937252686926884937126833174943699485390617219987854497982599722833552959581612531920486528473629379593609395443514832251669518572804730759194542480943372722767966615380021836574499860350366181279431264478145981291027049482900468682008301129777441861598279592732191401760007678873328246640717725960192314240552672728471113711983135939554172976517533372753283011885781956560004199062543734536644794989269227527420183940148359122050836902601728382665578585691947880969414093432754934561311184281185963701605292463514909073672878545909971311612858617060124068794929687016326066251742680329623058879476950641118408662430221449896115811061222369541527373511266183229427987128127948467794620863472197619580018447458967076807687357470796720034178894194425398661461566539049332045531623688243343732037403340089365085878796767872897895753427421918342741725871536182818244936401870697546837109635277092200077536590003830297021495477033446974226802347212162248325600441134498101078002357303049741203790434203799230350579057726502199864174271058150054526168097738517539216505554816009205271481184004086288575993808289272779029291187764370454084922393425830025681778174471558605981537757327461934504270886498687548776309787912233284726815286083478833923743550810321253812449718387896364561556496901976430579204115706783910938942046346520022869018241066979743170991347890826817736673794731739148765763388459721655404889857037058375028044188572370735917105004511563865196957500093560537243211750302246454658173718154474745750552313642237469759837716826861082796067074295625067034000788566993987642975923109742484735912657874532987703406518526485230578849300567151677602956363249557523236775686177835056778856949069198069473533824142367067246546249078709880720779409927535389857727016889447688582618335335871650180905179788488399979153045807229476459379309876391984578869721853460230588357468318923489564356350555204458586621318542638688000027304374703352859314010019970991463816729032451125806422684366180827260131313737989556208665179012241861829979486498403632322887445167955519233469752557555941126174751596947258074505688105625149750915417226530746892513070507443744233498766224399450568062158240696542926646410579655363732681183981212023807724386203503603925625062701926682544802943928398911618050366407769269787424132885875933521007869154369157645585640434971811847546613694645402671070722253992954161453144157133108496898997482145519678748876904504343062645034291234588514679647444294642922844853066926277090046689604694181560979147018339635509273078577098604644615060315054931637335293931931582852762864278415607978546114947346335603476046950525000082240087860759455843924776529897744290238118081217165593441441706264912846473430330432306337069852831137927517616853064160477832034048795990177666896939153541756372982744229996605382987043925081843280422997045747679525915771008007859583535637629636334145478174578729750784625542455972623644237195234855401279259934246890148602861393397385816211053759020479559336121189986990975071253114021559890721154287705677935704164445461474595639132643349080470726356603306482498087679574080790409266756530644508283876315427605590310353494208635981824619728634843551026405090547135653180655772056064450966338852816619535032708078871979268430038221389817136194787524817514169506113534764647438952171428193235056346186624038512733320056934231767677725644615425587849978999605202048714360731168397479279592978905896391977469947719054085981143104802442748697590530731858644012348547852014130501400124275814743532816254618650854383233230181769872843834921184283488389477867027317599238893116677865260351268987388994197754661722389883465760495616382069701693413202820359109973454895986807900382357880440996569695318296889097502740895800548039316127205122842489739737938697764918470191957778768028475191241696456999559606100329709231529500811677439669077604086882404204500317137423765128051200297019285139375314741098533142782428181724605957410460114381265992983184576715137689487988723671503575532230942372372370426652359891665221630162414643817379905241575259566565064754828506598924862232645089694095659932049723709505360614329002857419081809217545455896272289317952211680313024351646342626877717929046036472774009872503483882913500412680012057740150399997767906023871834826016707454331312421339340114707356871311230777604441214372029929012226522717782547554546339655558465258762332048457034569650928525673168414217174322029349937668632160331710630806363057117111402108457517959413216556603190552162357118362992143994792285861070536321821663766339196969617862052143110245540808501061572920327045189349189280999231428947380553227526979500490408362076221622236539398381576189798192442579751095051386632192906662029130747787438870910715949494656356618202469331203498742331533527942363866725283365463812724835396772824795245413358322716924357654257188971674071649388631796427859716924833424042070418933552320636616609027610636188484221193654549104233576296406321034252957005665996782058055687330650935735655000067335153169880063468214832616712293377496522563286154934219227318089748239724283502944551340887175921961356006750670148653730482254442409206551280118439263996097735932833820651962533659905234310554751365512671908395727419260088250865869595145587794026873989043042551809222748192130625222248759257065145756962993013920223771601166386786101579015237989946070069297810840832441772121843186546976728125415498105091558533379955580166479408367186166454480611340151215615760527216116494321682707581837499172562784029792603856300347207148945160897417426516557334908937560932061588585914757593520218616939288369226860717726847930431502242395968781708764093676222844587101939742199394422935951619033992072825653515597139103001357394681138206605594612812031625714249615937720334116254537277519229910106130473036199886793732205626284039573434272855215461335284819872484555607704415236918395818660280528340255097628301571237912460603108372022259753306152353179310272089640332360068206571769730123006037635393141207580556686941856950527436630471796568306458688088249154845939439890298814886181918062657005741502208011899723072072668128970232235295010732693217141894404273200991519311117680639450417304891959367655254066769307590797170731237741709683399777479427257069363153656982571683724372714955499834559520220747855144221626776122086391719541453397915698953492087832764375075998079322499702900936453011868311544218434203438002277108913477632193801298776773375320644933140013100585217019071845099951306290020529313661148432337983735962074784408216565787652922680216724439265125645984778461782409410210236818119247410673621826407833021575369120765083032367621636530400287411804895289516154457810608152938180212077965782791731496050275138837245822514383937341780427991584149391787463442491512375972654333012264176193676655410414481007350492032182876804618827846681454058163127100261989249635313841711575457197122925405882800269691179306397150054102722210012388340229691410134731452258255631559859495084890288890503566015108675055979526023373347283434117029402207183650394218232710706219134474341016589167197133678537590190478952767741104867190516317978465064012951418360601644673902317905745604040524695724649030883781531716156660212896452629441141979540711202379673169444640384418536177887375028006962026256482065325813730654506588672852480469228747761866178705391050280262164345649232196610859623892917516099783956519967176412589534398164980466689078285555023972326377361078369878700714169984575127251519975479010618896275920566358838218438387019612784029756373236733869367991114754645624602439945989793460017400357217173184647036747331149754588488400842530672753080886073006340686174491502921487167422312829962622385396373714751801413924020817624587306248855376830978219259198727148297428671081960484894131759905634190842380272474632206776764581814888270529444448384828341303639603543038256125413464451492299700538116073764316905942057257359360469024920243201984193357391545936357587371973173155881672339789616023327748318587296433718793886092966111379995760216152045546257701170477351775143015080609152452340779689304094570090226730417477068167435807849306882436950333683047796887202654876011102228901525566213822177659832260056626618171895757896218478851729135838888562125786791865097088147040590399654693458848262606410555981945271360285700323299208986311917408065620236112108037515432058638740088025333778001164247461730927439173992671363206450792799470755603887007193294613806591037494751153496896832023256912697381880206097349695520252412081310745359695738372114478743745497344542192058931155105686688905317849804009282856513278435145243812772821781501206060987314361864068266408653950734400236699213606162885892341582504868611510098537363235353223062612126304669060014908910444168840871904579426645299360189548851100221669890249602404312544556234083912877762936035877475801190170684215581005090382960551014493096877069672444386523110552911143073920639531193634041593894995701733931898754589690338091392282443392519716961510599276393309287523819571172566179141975056626360931728536264199055079750071290345413623120087240663982769164674386526871400584804202780636990111799342819944736513237284562590253131746600276530780130529327819982550169094835200952735574525386854251094368291418038401101484204808614761764210200913409292201854324997122513231419884935146329581910319024539020524931500845133215971176688299456517511777619947280618774399326201990017944567503492616561077508681143131519459726781433607038072908566079515435357255466940198665193332954904083015888275895930512713967329172793829029164419763495973619910136264337161946823756194553389422847140829383537764444179035530709681080936614235445518088050459105650536592205813728983425661058982601072002361326328861955184399675001062304661079098580587363334699802458880901836327773800322755832784912867510698264602287461691431309183231822075634783348121344573433690506214313195557989826080314230155732326806629378366852867766026945500455455481458266035240559192561639674507650920510925376023071952035585848814261871492652777490115153113745422021431975972566602202612696543805984863299593286621159382084283047159495749530600294480223260371265049428580257336006355038511601759355301736222468861017183140532614650988097297191645867965419056275235670301424438415836726500503624747207976792130578905824221497256860404506284764124961019470181332218131758457859136735936690576041986945884613696334515748714108182004119799489964350555060283998281338960644365947787680805196174846590871330372354724735804238639764682065408237557214140125082486754946947936722429496542449694189468607451940579239460946069265872838687029422771720586400620501907903134731689349158484432887953634369830782550715359773257809734736696418369806425823623117348409668147655301430050461644242550728335057433793561903810697601955492021579126927892811479921557804484205461159937190283687008095052998668672861293772269405603434545660768066285151356961923735682981280391560620023127884853892428823380839135984481316845221020340217227373788799208066468450916574097274269619364288142021717360674637355591350424249348497532587242227158638948423246770219983727438916548394597200683762765762093112240555231570081115479132444667010637709789655897805910879482734335509045447716407648595377667944294360096336434194228094816920553689619699113020099044881709818560828799796310599119347225945666308657673229483130316227094043302951510384451864387132312789375726511031162567453758641028295661377403417069626065989258745340390485078499970466140240917366167985455034659733071581372722598056393672527564197537441026920577750715157881073923201451833396604155399410836359136528379707611941446914832701329958314343072019514959904461006406482116921336648590689496871673856225790083881486379884775937479906846702853307990371550114374664099863588845130893987319885965287990622421592439231909734557996331886236290203940286242844356731430147430098314855046112713582402665953414444449322025946970723127963027186056093216901434516946229499021013667168165553737029918744005133341721104946586811975873568935614532192857852626050889927476332915679348029905397551269545730265587806137056062390418588897183932054905884416430989460536567449290832237953466874981234872482032179997991234133815550677563001160603008023441598756598971029296453808868406767280566668664195362996962366680827752747905705703000742523605734053980266192097217265508187601623789019187728464003360495048350293003334752609913582562699765652981580469637144222686346780377667153596960378443240634783017058016103516036983651715179638798361865520854841386809393588017600513588863815854119429239224499070154178714910557910287902393418618244298139246139616655277986080918728846809085668084430517714585685574879618249273912789888444873708062868373828423141140626111232182597542753028561276347933711314024342543373912970435298439949528126946365673682934627961257848551464283294100502398552406616023207916800335173788939128436544229919111030943882557853303347295879948376675602406403234800041629251283606069043259642353775447948067275536151152958267805723919692771960487592043356142296200723062217406464578507514406790194731915141234716770334386545798949336184565175551206921499088108511152154399756236661226060826528589445522195560186135980788501162573281545313223443092230447705846727117153180844517151393347899169934428094230046148958934805253620590648144943869647374400308358896268769766026827799141819672767211461981040915606274248852686331459245483766624937268326566341883181875986812051386812671556963844148670747003097350591307665490021092130413883808550149949242007085481012130334326155806169115027521293412140001948025420277099917451563466834983792698950804558962945461248355591323857800691381849035464634056157675809697477468917774243159744410948413627459845472890110589942423570328773342647953999131531184355989260670940607122530706335046431974759314254062798500858180563318354073706315496092548804510213639602830459194965393306447591701862314314475905820972964616624026108335754560732174613714009079265404478583038082854169400182018057417650819306787532687163545248703028177861805575053518212997406760876258005432065927709154757533009046394127851017643387946155496279626582257838288877450752115481501313386532127136595824699361757646901807254652978885583633850323547406896101190135862831258074635719544665919596121338959125791175656475774104254118071704350996473438501602767388257167332568102386858903983297079941268949772383089497500341830324625835345187304354193241753537997144132882998108754247539683666795348526021764286734215241591624049498686920732078602725347943078441087742190898178024564687994385885625740395460529414666409506177994142008735042854552173112358377999481404682592509317235112344095088826969471501052638064920947813531708407213399158028242356821581781507283073165646825290832342487059521135335453238434304004748830224181608524459870604454220422622278865598207240884416872821884265189798905092105695128836426315513582050067301907302986271194580299555465466787840021548959916944534924902631766050553886954543184452146039200226521698831901535082072158774278585247328461261300122323632031644707854519579188655495443979251954336614591186181576801758159084297869951702689021122130091085985650161647451437313713650155550025313424968013026332885619892753236315189919755182906785779050645804389087405546522547143576765373302828976315672886195734644853011515783858788064163477712276859435083428815086553480100328073012914927716970288633147266278386948146564230287505320546826154554408343494628925698524408635654606096195790280393560422384214749580824539810992854716480795313529380971625337724213892971411453484679540146345877302204497540774458107645584568001681088818712766889188703704172406514456198712258356818052348225734795414043783301103463690210419092843511950973315023886940377472345300094587465897417024853972529411399662646396729183409681714264138238552394307291537021836620382254514191283011901018562109277107832741102698697392281057320351207098287632656859470235143801549853658924350613099587811267831587879721469770617645777627914664042418366777771133623392226245046725574055889302944458059810398534318015337998646357786576232534607487710521504142201993688140021716234254400467045104500490327173138154723763942206311831968116622192686806076948318469299111168639245239815945794732686427962181364846821790915132847751739446566169203212596140372427655801874505413928484677348932537513897493983078074959922415080218430467203499063519641931618975648177773888282912325854908208420672833298814076129641127112435978513398995866942463072282456608347818300277327868214693297649367247130324485830118013053560898079878718844893352200781875154500402950246828813855255786531762970703560042823023529706223737585465899205737038126551480866697757123914044245400436094053977692251801914597131972444986732639248803411290845127839604614834619344288400354026876722189343396854476417602203886449090367789354810915175033486470808260078612556675778709094007998154905697101108828559449169661032055944372078168128223313389363705655497427213083889231586105088622284935140028872349763899907474614569817798212786143555913763398961267935110965980736968543585149407183206355508694682520339118665028767658257652946976048693366219074864144666666682692866006743430114119573141378961915154396297274075703432653767607054910129246350531906792800127762541167225557849153372409737943985636562468513240462779978924408048794621301916627334996879709869565478302561784632014908185406393822874673263751196436992900884794250324116073648277563409405876935316920497228518577724954085620107310307098920085454105533221068303700596014999908232150189572378836721290284509609051241343375012326651178351927241757068151633209118506398591001565877984979130297447234807671838682178605823565863418289362357340140226796952110155565563199986880529692671524234343366940769513953181877515664240981458848013991910614494547746755642631047165125049187440618306716098836191451142892714598582816993468932406592048888304062076022944460938514833252138119060457654089774247814566977695379256546235149184241031027058892102972533643998423624524596788321981986627069156835992004074468215463892783107150664977128592843294175855713248059944008200829525958849952040829867705858747873193391586974205980581510339631988618648155141912594642180023300888397848849679468510357294815387684894531096925444346802173285257736836354237273943625010410557287477346675586812424579051944801488497946546591326668806690432009619391732417832787171180092002116815553661491219434603848709932312183678666289085816651601409688203906179663558945189340909818695355781703978530441741809962933997937327727242904243252142732999797196410615957451054959873520177696270842276319872581161433869536871620524247765072784303673847119430500237672326961092333827786235137507225309519207882999634888799498644839886390796311336077592858268921324281353787224211188784688313998215569020707387204321448605061598365936789579726690181896984808584056775879338809896643772862550388243701863477437103671390095053391233041152887089831734037816489701593261730591496108999767503095820397162491024185674458297016672893281447157451736951511167795172602102180215735964080487638022143584567290242764819003863348207506945754960881059465616202803024201841934982549914694097337555614535293818531916669221128311396703305021227075187292025489958887641576348704291784951933551621767659547654036667422169900782052671782930638933933326910666055770495415586834909273664663889910030508946809063521965748879659960452679460416764256548678806236894383566012436304128806535173213807624842620485488083947337307512008430939871726789822455067972466048107979699938954252622748198533449839962237120126106400923655564882891716407553989033432483972799530512775853087391853166578035764774545367030865276001705199747181927043694582565871611406555030552237314559308364672179389201884355534424024858109582392361909379186922288993026834383206325426028378941590039033509095288057622235075481882734755575029351771094222415049717376313661319988572504745054620501426279385936721483968555111906495088885896419319984531130661058835386472590493036684701003959511564788166054965285031961578859652380241444486930339565302368531311475394145362558107095305130518220779940139810312988270364832314422596823741291169995579868537227102663067311103591982000831089570300069409618238852531492200513336358727103440523507791689873341117894759531153665809881462323985384119579158886393018190225594081548995577943736615569206011478250394167552494295333971108704481805555262514290639050145391492055562021866712488392850046358449305733455220628020406780262824803644963103122616844701087017603264720104740606354418042519571961786555753776621817288802061831637660081533315443863006376365381882170526726176658920674807790037611587115849189611457717989412366956463442989846178541931026209980299373809115067621968978042745690358923508604570886689339198709359863812503525753262480116957434367208916188904698515360426051445788429866997363051247598054326815192494070996195215216778786573552796135830029663243798309881435243748468731851790853326140566482818526466547775184114658014714557410141596789421062151666902549617842917388026182696892989347777025190330688966822098927625385304575507289164356896345903357213227482671249650950784982884211324051598244008462342544542813310788850001114280366741294283579563755318849647351108823374047460435069106349645760509161834306736085619537992629542906783072917019088876169081741738442803704338712228451318800461810570862443510171390800725686832906051454029926913379909224134414859102683222243039298504521199909242078477984806011014412189293481669469113472083241671074423125482023743917291600801944988983197563102818497817234799130292821364593571449157972199759571278222172181633346227050303990388829698266160859191016990349720221545665510788652443017515857080899515051153441707355467129390225094239784013019673135516433665925927087751895463326359137324618171134398784634922773208199236194467231851837245288453199956429846984757428577653290423519375731505543816382069413621385093021232892110196821193717377271526167908135418501325095232507960683558737731511496027304178269023250440292816396976109840615509665645599336957379419123520679129221677257744001440733150345314301749051421625368795091266787565889828117908878945052533358701965764003327553458057331818692324960571742466332685210862162666354749102691595085360436106002853174499463977380250572186700911342155663452799570740023766353734758337192524232393933271983696117751294404809889790509998507730322068570228263265774068228373327163659969399936740081529172714262434103222139474264870655330915847878278484194195423963787471357325033377220358688793672658264677574701476204330681962289223697909167664074290110428381688072758522884991917579668930879181468606089812627539484916919649931448567925482904859605835437704027783421625933103494423816679066034039471982657388802572158683957339502462022902527801993158284616356109479067637789849275565679755866294970604069678684557350664870090427930532994556008807759409649630478993268447955847669095740431611503180847033806540667850961032632808188929873506966024959500408504945048811255421443188384669653242367130277918869466889110576993307081734000178923201233221450786507050638362636007538635160205193833099826641932663189324581304784118680179580787543789213844743630036246577798561851039584320141976922177435011826046851721941016992869263254444136550141576208075476609266984253743822126677920414711666724120089807102101048485779945775517187719648053778618380193934410979125884145533879748142189948248334513627669661333852208281065989412685718775657468372624989170448611311165647652041277302405820760707931337212553310885287221343627670946168496216429488521696424797528411292909829331130089723631318035434613070311086192092243419535009000590239637814218829559634510467481488163180125086399332329927946661612795052036714986343250836265259512237880970585623700111559497455011667374635006049633160494367905614054397926229215519143271030116909406078216378984774300773252681009609869490219069964018691476723864103119606558374330283685011286426423464075331881838123349231997655175771129089701400024174587059053819885940368688603961936968081105189038662807914156220812841873621879393803003430696450521425454877292174265198895651482604320530140848129497230663031996153119254357827013929504189581476615474426010711400317086291555231597439121647851571747467257108022442220271174173244059895646524019912947485819580881083023917362336770883197589573468819828407834399627685339433048467471793408874917163960421873219025838015485220261578595657109149809653605507739115346760820100648954388759843564962431074867834452247011492272873977932746051272907610198845143065520716215823460147256639114601192945997312653433660274443426356744070516223839885389144212430880164845519853167797694701325286470007435033521497596324332655508331774100478165526723839609411495497926939604445246956986828093238227662037726450390637607570442487761070409892129600521208902263159713873381294911094770526371292430135857043101509598741064825559269488626584026888029628258731101517506534475835105871352142886530805491925463990777052856604337090522961579908259881157540018888493750415731766491556230301718665996497905456439532164727620235630327750550207190158751711215626190317779147996777146850546573101224330074549193287210503426951923957564132000427930106459264307008094810441775483614095996374018263289028530064199332441341770198416725341787160133245369847711179388784715588199705103928347454394045746094647203766075238899817971935817362035586761820093132771873649477002806868555262008907995634208232926590377782651758172960254221664751223748322173593895866360067409862865757631819063478324048065603930705779568948048017258563310383357817024304824133369495999114273031876537990395711938206010792307746857718219393510547886959096346512214810497754043315557605291734394455255520073830879661032138697717955948252249862171802082480378781528981553615227940652176556210568632286782566343319473423591705401666181268602700736192125572521690095785179897929774061194360145748143597149111597912810500208748597637154101449697770588406014739555592289205934883805500944110152300439929532288727116873199172520524096154198535474163477392194546606209956165662627548775586086096437822261134659561378584175679843596830242065298736794392539262296093066265589034397074693674495683326539682380291915713057783492426369353414407656671946650080158932563855616163957791803875136275100898831498551916950406951902030811548863456044383178742090975599941344336535978111831905146212629628819428346961029593735308982707563005040273918348960412182839767482448481244539616177278561391468276559887646449508858765538637442525513005958109954777457646183536306179722497972946502792982986622914583689055046639154064636461282137994138387922394087227407179234112680573311884022021797672427807857146178929994322571856047168278437116197481760463398478732869085228345617530786807024082157159216714945792573192347029156294365683775751163494339651566236526010857248638476839448868305929967255539761436871630105829958694423400819746161707451645230709450967479322495898942528323275252922459092437199946978095777097653072556579773088780935058128659448036875966262975976811513278426148115434386558048484500982878341486938837119913022172720118124058038307198801497437669564781600405862514772784466247672548620684745441700186383773306755848574854550770288705239219153332306010064637285582694383767289418590847621519869788624468200607936420665397859928402532857067597815840061153276173535120055437857017872458821843176942923650413083582545149053387406245209411556393022460358814289331342524334681472304349627771812301703731509451076253868360431551511589697196622704516999407311196426415565894554881359171965658306568070856093293255847352950487479086017026812011978604487006927328595592852264560753642292383362133118184955136461330741051450692367630725772501564461049205026247864292212074914151335249160055395422877826059848079340877044787987909854811647526598036511566663986803499620472544021888311535010118575305920328799616674227090569190926080896589093563134073821225933309118855808841016408768929928415639652182564191309009934710618238846182079004418480630865479475120160955960133160155129831736410901307399584976039861428857086494132874587196950901995748151097302477385459749072987105923945742306664517511127601520753966048128302835770622449908241524340230395886334594729807052693733643701672452961140921881369523850138018758434968185426194921017207361694718209945889927613588149713515873408862625145371525290989758436120051584835597612702952913446442824287938366847519434982088951789614232515294909969190958082369070044063330515049214058266666987964189657491613655167359580876740015412944060476704522492998372682580487407079836166811441863799670800067198169252877242452553656657416749323950897035667216109174617879726793806224243594196753599588461891510416005941051245560481732639154507231136451136625478440738083638283220476213392663719946768527459652586230059656618102542736177577219085512692427471083743389413167873049202937443884063175165537191125834425169729818181000052762606055222828149884620237574053002841722948047966540479191786819669174888048745231088511373752895189304536922170880372701946721785789685161976321821751840468689073990366947892044011660537592809178046040803723247385233536399502346815181045165731187805757181449887815473516441085420942789176609654354362267088346029607023337582854345150118531212107860872122310902683631444378755621585027662878892911201920363056744899089913171811461689868896597122083360745413444981074673348635342137369314381080545148041410431419413306649166583804326193917576206686737067535004746205784610584509691145757187883117995163615731830101507513837544199552307868396421232187934064266435558581689086146027572612118223225003124250217554402239051916841574775022331417659090060242594820142500189055651356055416586098503673680774202963490542581496897340732440372912153808406181817119672060604616736639967017783377428488909827574383930099811642046013325173626673628286270802252137205519468400021848595441653380723491538789805293163168654151283287771084112635757042332687591629766346396420004488807980864873925251626101527970458512778347044971895905064638623970038561119023515726414267317336344542168583660887075532298545032892493247284720975035585497892552852853062581125479295273094410785831202606061708765503366663218796794229451441623727662231734410147687648076179705716845209338752632019502307039038343845711519139221536390453174053457736954993475796211140012849924053342700243593661962850105511813842130739241058839228006294442472539891386711787285527025616807562678853076290564254558548023090203688703399926690949046060632859857757491422316606415394456505307359263520268297606522089695311815024514052090912881079927085291433397802625526856868441605624081275663932744513162841725621503049855576797556819872031659679448537577677134147125703444598088760067251507584367945836834542793992863149203452634062034030982947968210548578897292689658261676212763986883731569126917013398747884063566814513209173226097409042490875932583075295773204109928166257421950170190680869721008931191162081359198552995961588507704032223090777685875654031778966315674768746546271417914499680874305401596158664880449153937944807857468733259120416700585815420268220660851908335777189556961005717200894911743231757638895623454889351215304150994651596785041787539491904844947069033578542923514139930989927936394435893060891471876892708385626801368552888305578498017091947561361449361853662972713397876233897694226708646621397243175607232608415698040300473136261312372743863236633264096134325337466552314984782089514070602292107882859305627468745585206618969464629762005980052907026703861190987912645573841841832909351810081079578735567156347085491370659877401293678788426482801567575405990521619895546437872967756562755743559011938982578860330814346666557495271695712600890316675236342103321065532940590693185535325404782118842877870263239927650069902645164761617011395668639478181908635721367466975395595492200947504448339109139670081854361943668947957722263957278877149443465755573286331968153861865867731769764001463356753577433629968412295353196921565487487261607832516868084676661852306986670823623695471967392309770092881800609968550589816630978490252377365466214625417962083367052673021952697514333478203213225625463835848739710246397716514860343287077759832146056991459159721064709739438087217072011209649264018095043432883403683978830105066815278829860057357253209349359238401306980485280123094370257867164174780250908274066826199940996578883702352086561908563304327496729427608552100471492584954392313371089132140846163211467713708981861424916077145183662412610548525833184618092221040498133055602305197993609642090342939672475083302903553391896528747274978492371954984385235484594042324155082870903307876094747731999185544441711548632154401178065878480410813994622704316819210631500400070660619501519354269616237596925544287987193758978319019595166773958789617498336686313107861924720922826607868671670795640970331370443923153657723516926613257464113756370080443311238044817284530925213994649748138989954361847169408036735401295307091622868384255024083344492601784831643493474312396387003221894338749960453987555820355880588661975630518651620513839758332011648309529219902826448419330619990843600537746058262845586825860258770159880159358329205766332236266018763929779583239212187775723692732404033883283173218348844711170348820666255215456840039270347593389791310196819361532423991702280478113856705666109679221485874315914192092067755732593611016136790662433779710338290992048920322881498058917044587463725979600547173647139307348674348076694073744294816088404696805894130592617148967863190694889141199792186304899934085614602439012708011914913180912877618499374377029485915686797133584482170164987042671274068957648381094077522340861769763834545100482858913845876122779499580883343699431154459871102584293809067255819737119159971453186723414290139622818947558029052443572696860852337456101039187323522508737219024527199096125033487008543576855294168784377408295524281491826804902272760093589861373702771987385968500408383525845320204811921125076847674376568902067060799945646227886063291975705259062553312047594532761095611006483316064453108234395483194278455919285598802341140176761024105240725909754967834517381333015294407225671430121894806211522805533121656735901099692530647553946364067140531823119791667601568895421805110991960064612147634895079973367498344253507584771478123835488026396329644921430797314345223055228210453098520628105594588257764580816863804568653791147034513493751756251548683891660037684721617739576835638049023503747646846557761327931679380606648179974955083839190234034626618436752715492244080994565964307421006670070840810205819121447797994044606401482713700349446382238374813828620676940734553107907131577684491412821205319081239235070454216871777237919527517681297467925887717698071896520015918549515051235239291026591481546377950895230867144962814615272947111926570960732401529685989287436897493965621579821669189574144625593474094204319853442997799606195589060623283646184409170024532848650680619407496211800572130850778796115869326836188527658518860593116413196214161983072113358885590016568340824285049241477658182540488370521888374302106392645165831115642921789649030971458812744243868539716281504468942240963864060095982075599415315037805231711009525983653155455539397250039863508167254228973728037857739582551737861455056884658062951213561232060285956802776768409035932399389004918971754206983880036294818798989080045223357357967019541256575002014916128275710470181237542174498779459936483536859492329217527018080710146956707655963818101384755562292123070120099022553942708749809899906394660607661303442911730287694095749118760396447298620316373904782243481635301160909497037599404838881283490179600572932827906480913377123902921367751746525027868428008415563314349328790818554358541138151290195603888111583153236176352880517300908708758385929430509002037561446544891696079736331344132877312443348456749011521328229505547946336968131252184675627297984646785989823432223375951928103458813536583393874802351006492060373610209540786339236257513611612101908710212898498481777214851507458541723060340493537505340460133507095009235516106400052932859351419338192824481006720799550577318133088316140343625326361261366850564313128586294378809882531243740187544224188259434005409087925659473156753478267275052431197621005289046348773396713006054395495768450905319617351938295702275360799626935758232068581715832499566790619653167221393241261121244374487978861359306567353850389375606694517858735830346833148016155671846585625335883118162010606992018063727236990873255083593076827550038058414242811704153186869578670527502242891456083139463000880937287030089445383302229698882890936672052727329492605038161145454962082355595877433042600159871125506117821709989301639630299225450501462303824543203915447589148783189671860885996827068824540095861075460005858426152551802358020184157195899782895667079499905117369072411639735556305478301229914492396938371669039045285843370864368801909262055938740095317366887962318071251682654782526244105856683274906096408129755871845244232569717580270765048918231734341318317927581074190250937334624172804499887917338545852125984047810597266728476048442781923958627325469285334593412472181757256511231068721382013781930951862138330229421253873854120449623200633268023150775558979266079457273428670597419192678497562645850345156141101882032660989973623601395982200081390240924333347968347918880794513253305774638649067988949072604280687702499301557977498547144856656287986927578524809430160505592161844220454718662370939453029920491804737544788866431507375377969324773199187696969741737197603407392231607014134921326356816000584854690443743826986190155177367660962996156235360387021835003526618679351476171053751971993799163553448983199650898166255763497567147992160510563026131952573351003940443125111137064277869447818143529500387938540084711397409528999989825863434539069337106110559187910471191266671594623066307325104287334479058104344808350124294224282158249139611392694802759292064777151187477943755169421355889063465926760367763073824030425253287140872853155566980139621986142964850507985465672180222406704066054889250753301087174592227062159188868246207473591980547427807473769942912805033939699234964803823951344286599081822589834729951503350456736882978406861704818878092550848765418316878564586490170897143241017460483093720556737677970084618581452313591534959170783630407822279135310722069900786045696064702276391287389618010484277448358839966335685311844090344044576718270303819515987351271101609123155309972066199469391448845273235723501327825232689388597310687687420809476295478564487528147273361891538694635145410065813571608462014205641287656347329766316758310050154746805619654951535427068298369579773531344474842290503403484604597559883475467934530470790296868854439736951290664473265218817227663349231655723449005433536055867540867094162635534017633338783271555206177136980206684123806496704159127704206083222452080843827727378540562754580112619996789428667410402664336601646965524632725996883019776240626526715826192754945021313105355879258048496087668135662827292008896235133435967817298653115139058266548131352146850818552143433750163010729042359161393673895315151244752687017341726733121426066978033477201022476575088938040377306955550938261842296715111119653149670054390093943880922257468026929215456026482774381296563092317084706633541219763859770165082854918963773433183381053205656170998118728371810509739672830587942839808183716138974771255546031781508859131635884722939023152341551117555402243266861832457605432590352789266419541524022678139666321990086046619550904532443632203123182532031870458783465467009597314641320036871770013050345222952197777195595617055461498540135418255780280388048219860497224852799444331368467231244132887111991846646154048312831088563760998895161429740652026823083442738441459816708434502402232779075848149304214253823711994969279253932899991088812181240928777943586106152408509787763042354819206769640653156586868937896481221333238390252771036599426976315762921453975912273076223649235720364298933296251295590937933354001331274261487400730563387895142866830281310004158669526449553037381208439336825911958478367269740498029842329690196674419355417507452376239573847182853664934864670326076046328016805976790948299316571203513978939579430409729968848670315199777623739666689621291755963384866225967871795298270756412192724119399782631404066839350727586872629358107932009211547649971612007395910126654681968673205961430046429387379274719590091721580247084851606283072896673988867520524880238766526637651099096350993864392162234854670776788972733685304950552992942146570555120016742616197655494381229457227788017295705357275031342205225846811242239363864299282739986520253295600784042480971595820243370835710732948755398202590522244367893141116376305183002294611556435983468999353798937265289372428067624693821556067304207152700287219612582289891361784742353494214754925243930483551832088591244026971348918022219993177155462104883994375128823362070010487268740249003226148594894345051297090415441201820190407956124368963471828148983010835468303524472451587586444895739803084601080967721512787455690217320698482446301650707358215995792632494924862925738999303425955061666225824135554901357843547912804326160075476224724435816851179311659820139672128874770562714118194920837157004661555516115169670655656858270830119745930585002143905398280627173855612870327850401320695307931051147777058148838610044934224141728109460796465897733035940562759522673219411769132313361789609671083523187555129766207763870325669421230438032677228045668665276048198793771028069506058765939406860656088365539671058419086326469139003321970962949239329854839996367980857801615917577885738206753199508494429476045921218687327530912261037580238447801031676609211779680146313442754115698938540124996081421897851032406694751111068831841677016030830469806109195885600934869128767392947400885855056872305177668141172288815502571214660097605987505677483848908427269552047963753816480624579798026235762657307196538772770958883274060445133500474766630070069256294952823727467498646517415254109820470772016932835923607713913865227147605508229567960249448006439345138927094733230117951142533467019014139880270611052658377046552712470437554586767157665510074048808763738635017339872959388295127765997563581394786812602547854116509025559668081067916972131050505670181073939253161428941008667522884261811727880243783438057645704564481545560925383841230153260614327577082024323444548920563293809946199433914635148921734408032447505890921743976637284404274143474512880670307702906333784206061261026436619374914150175273818737032809377640322698021930113582136563549736624962431754915606060061275581267179777487930749965080351570065805483601100187651037040240273425002429780482169960305351361616510092975708415715079409692768414418752518783976728462776321183089406573027545005368059990455260535194412620351554800316395129965949755194391576778139404302460518035476090768166850610454892717382567316784888104956654711182783269008251991107232097525577357564881083751321822816888653964647329978822804502933174763084282829597811069572439608849587385920062491653363681965621689688722661988888950046981249042818232141682805221475173455601063649561825295103260735054780265840854298673780336215860676574574823267255475705907415318054283126913660262080868359599676836566510440981184833343429464094826004985129431199349156777495788212401273333137060943321296547806799671194842870549834470449612954541902048831702264911751239518298922411085842682474394055757684643940115485639834052732341801753665384559998304618504960748141323093618966141906435695480007016927698389868197589620779851923906166918029094343806843946532258596066075847554601850118500441348591336810729610567351537038504912880879434372908440117860074705904000099068428556112299236464935295967624063816691258113870421579189036503703303308812501311644653325271329577746434002913939316556808008109926008298520198043102469538659519795020179339496812256060782414888994839601250616435694184046250052363337951118277030890549470446741512743245147392868320778106344575270017930997840888234616553567455800252718979690437428295883441109258316208205798682392530567511689603876849442074408841699890608373415202345437654066958059026940728302037850469108723108395392845519139265294788151581319912710315273173663291876922448897149528332686834523448134760156417076620874123855643185209313683083155315444774657771856769776874577695840137624686570084839830627267245985101135120018737261994172505458237041275349988103915231982234103959364240291107211967085365890946589461508183918202330498727685229316513555293446603519527857615833538603788501878751631947405732675512312550389633034485965299158930132844778240988668147390986815769900754337744380828150071402049646979162863708459455815211018310093023690087444114440774693020423662040346380657959021562986520001950579465440481642491596155358540634746127753129588360462013848112004434257658577527881641543098912649774085622122835865142072726582371232131337993161493697610912924060547350798502889671920099125059479460300016105348028368520944667835609265449014310645609814027481598991753704331303929604177305769675727073507835570130605168693668113026630989711037006312033750746350683853871284060526380994746553893566426022504049135640701502071458494593011828998506461259069749714835028595504339307756097640320353060354923585917078033651018879795744403167069377765768672524992627678955732217186967379582224162351591003897966049273302329385546017249811223590098990997547237456110900472740496988397265010961429233903183331468738715381626958302141206718885888266060803957775642876463724525256700138160072441482516273236553552185522098630377478803371858914193581562561680083670004549711870877593921538892509979545235533008729816947589837365383279356761823123168481426873997787430680676221923889610977754147103753136464519511015532260530719036208846294514802807280713521197889581151023970673825299705589581546888086248301101505275023718656473855571759309573544689092188569256339357765979451742254649092577706723540073429133806907965230400319597577352007630575553119028058576983070709640095329485887353339514165394879042325977900060050751856639303526120754319170278301147272494917275006530408075040558436281726978112917575216595827685129840692675257346784173492977368551284165113825927874726339204025391027662074101918014261699460784472945744576045961600446788909361115998022744955414768107188341697317706481147282141307004033937500607253081289573725540954233659890684936477569936868511870538238829719463738519268153828004710877721728772032622981773962486926658128602088243460597764680176154805693348450168658212690152348308643213507619333426026611113405598932580822987565417179769151553791753351334625350397233499163043900736156061663429063323909132170449006000543234912277162566976275152296569199071622205780279076250765203035888413220601638703882041468156356113651340367833975627529434770091531412189432690064080475369515462183273153530671422802604711227923439925862693560700193580766534113355896068675842447127245486782854024276876171750058048245704752043566532774613185343922627492287197388345350744422687330465772544726682299922448828446403579860515837810503548859202724517233593962263573421175472588969190759274714531622967617573250992192039046706031643570104065908765969408396128316285231431964299049166655743918713586971851912164647641275329514476114573840519236590299672266705241983043565946800699160702188980060542018333033919735781124852779834793727477662247267594722398313648813189053722632499617214732136740714236393243229535880052897207604871693419127676465811996209862276851236501626104431377962007852429196568205081747446949534725749328746248231378219330191836978476875567677222287760165593552819015362991357828389418888550848089394528301645119834715635911700323907931106322041710597835368647837102701225147608927058437258600068671105850852888798059256779441340929102946008811193050771978453117081399212462922421505265534863549724911961184975228341963856868602513352456273266320680886176509273524434370112696368703971636648110666190641917022145770142019338127301644963345709758276121867821594355827800393838564199195167953803963848112315201741999680567298103463205580630534826568795740840143815719178589460834053030073106414106346675081414165241634729439806525525299545561454942650672533434557238205616049946477701816738372521330818221956796503611495824312190054851097994261957447845051887512412810384395968499305991574401024646152293974326844289756990815856869622214364615389787570931039825482819765112979606310606016347336726547852746572775782552603677112862958771082305491766167029348205120313899851023859531533666326103006282946211616533970974874948954176401262783615197006051798909758733171612730998032304012667957362643483408522971729000829490619592885703842496850089743742851141406627746253980843036994572847646519311214565784279633865186756431299537372805756695672334462537371713821615101680341276086549432327326329464657402310405410165109827047833586787236174931841892274141910753832316282205057527549884348601705716736837887022132607985029128829995313171764132559596167967076772259026796003854144687309813007816054912145012028188304234488087035970788971091715234209230693921002429996187254898238835440363402030909542120127477631379010684755884718290360648849587085389766492313343805701831100234184634735477400136814178238160338775899571639202075510099590373775640720861435034153266821484262387728468532458470526887463688037248930571426605506681192050744700782741218108256325926856765084667020384797589439535943128143577337551293859332683361374715462688262671447240703253180808751484953736347386751215823192258517476896366065853890754909083353180875010571435191096050609825514007312595974351536845986319568836409160985604010698843005249317091341746417077351054050074000022595674664160477365937048529077156424266912438680640799151263531482885031707876659325789685845733513705903287115195077121478789946770108038138951130717717728363091480522652273626018249254884157077598361072006746607195007044292867715261721573069875899630510518630132547853912604420478099052020558886296874240327021292333148129234316101483520026558245849525564764518812549679435515693605356067504292874744295288444086519740754714675834302998923729033829479412463278240724544395617889848917271246938763038138134792637296562349708484180857602867337013711866160584315951518850721149607283679493998708635090064911974739942782922294566407911411366814640904316565372632545541876117347250972059782741409796309349920072443074143442823386472584720684522895457016044330208363795668008568488172714405902775285796564452016664945697827154428639945989573646373579524357464423400069404620530019825508716009311113294201695572147602277299011943307615673427725765145534823978799110883852177545060932200797107421782092219311502153106038024230464004421586678722078523182158351241520040216383990692881776926298706759439668690899554499527496853419326835575663374377102423994015527543400340637296812708447817401897201105664629209858092643481898223689487570897025664711576163602401510908485444915011542686929799693132858125990143106279590560123244885103012946487019565581905313465609009402759615394196684552767627809014362299833074735634133091347686024068167737590405261620045581663025682597905888792960488851641630279120313755952723874384449077791313330184867232333882632567043110175028108654922414147850412652214722026879850557915181610037580353523228881310705584640573376018437197904789265968808978720525074007759860096420624191475900184283213155419789156417484046777051004493708645280180399027505125456794225652478024135794333915082264698092795066857742333743117853987370575501005801670964799915157931676280329421557415297156388771087361979482728305477603087260886118467146932864028431752910215032107080144762771415978966687326969999220329750280279461084797903247104563291724130413609310468913090018192954689696653108951530061111524288788911373274084074922344900636454436893898458774625896131745022986916246899090410151582863430845093085135892289975398150560873091429138287391249137635357825938285485255989334600475832126762707768362400088636898286216767392643061709917062222526182152430628754011165130137403379215179463138925669337630554722958384274680487960037748627102626838959984618855986299779523556580782910813334541868037721371231667023356306045558913696543084959865014088009102726462115409597918717872688959586270213228033356070128020527276983259111865350603457259675246141485062470021448255004350680588033419200752166787930109561243326095034271702511750307704285612102572016396809934478380863666778716126013534044835923702807441972577901299366066304142241035725219386555717234171204740158786743049761350113231914007930958500716477512726510510533103839885751635177604006054354165504691112535924237888856781711640971627836898806432974211781289165891882145225928349065752081812862218940855059314331392810955708446522281535382878719162289989637614955381791929855171541899622161098328947893140603988462601378167416969016094005302004111256498472323528281300127681907581933872139862617095795564958633792632317190861375699202633625883497093851614922926078737362266834840774757393583206206245372058343285450097872052788675262649046826639965841712275817832109139585315043114629389398294054307565211061914576770420902131661488123272333270639906267268099543696045480775260664866946288158870693763897073534327431482361667087955082392695889530005799147427721748014682589815154113235429264505952928546349203948147610152288419256968853383768473083358526323796655684575647443584447718090414031478071338790298271070334930570671626897140538513345483459423041713628110316433233532594395977651432058165608868242426942530153745295447174518404853104050415766059149916679474802417733253744430111078111435300628773963181396410048356471753092417035554279426870101774969052122781071848230726511603854065467620841660541995360132971055026608948450648111956020527210759054125525881185676815482778057127268447928393400564669861937595347738066343156967996489586991732936852601352586797477802749702386320938441885790332529166568340916844369174617127656870483423406543201944512726462588968632805085596538663103774143878885126559610153193920442340074204758412914633694816787078313860231689907659741620929538388345003684092757910386196968806981494675755730710681731102212554746361445645881623790379636830406472627079361413027988008726632641657532229803194076920229351025345482961454994617756447718133444019194959654187748255442993906064432478744657194709859655653593693905805192117137874101327934714057084026794641620595544878691392129464538347914203134820688179334095064176879573173276185634278679945090872805084047609099964731484393701468826016948696701783665405661890254588922538524860383764880351192352231146668171866966838710276472480877818259773121457056096742960277444603269233758719357264974581615202889387346431503637127210904242519556126537243012690293125727603856109237088295863745914080693432690401786403574202754899852350493088240614435040652272831817369274877347138685171855434396694281747761648921293843875604621175714220142923861249770561568581207750674566830671344350182652216872701557857935643856247352057722141789091583513185873986176434355809351363868226934511583295205961948068819360646820327532919652506221230017740961633519108373276610834257735562491878707592786741374129508950287522018441424194598086469788049286536339986016086508544311538562212454044743355199798460008862875329135252911931697427187428753591952767293984258576691064347468896735668673096197618337299273917733578648105311026740904139150494389861083974796731796437514977521000511783799604612562554483353697796914099396513192871860161811504306287062896099886261699267817717679142951666155281932963364961000888763562082269517450126862007427326521239814777426569225719007116862829589148063806657155797633959989644583541641637153456175841732731728165630995205930861336036741759645492922956133043562944997566637824487166269851734795447437116977066799174180333302461893378001119801993875888847808047589603425696427184097987828530637117824334384579765550190013706384872973720335761174781920083737749983994237442906952745265112898416064606615517905180474839675299847805859913439240397234547625067434104011833283376715327516968069238970718245818573938113469623954884367012568914950948683312019408402408042754403760589729378650268206724012897848515886156905098309311612545390103830048132041882183629387762299085409442851943126037831145182021565625289865502044784375289104981613924532064502290448371508605341756740019368352235242266991486055157723753554617361783146581844765083537933142495402891669220636645947092894932500484198100450566749269311219976281287697001770417991624879914065120703274680102422393235817825724185311698188284838072308074633433047601620668374594187372953126107943742898329797498086753263031561613592087947974578679166236728730150793852238982355035203126005080214731306535443233859838010393278984730069275226468096926645487931543200985410429862316892745287229291364861701496089821807751273221645970810614934927481285124540024832534683764021077878928362222752939147713074820308666326396916036957492546211148098168837101403164814603236014706731085346108579797828709881399746799551652838060606809208202888790515742058980699273813817926021775331376863342284793664762610342429990049706784286570994575169311010263735611240380045560289004758003636901182614679548046062584565181217835704964545934980181864478543602401148180621572923011399993376522196944864984025198957147012237108759517520923312814355957588292094001125085463388601318961565855390178309318521834520872173474513648599997715481358682591326674674431291583029116050964593915397087015464610734875158832681838449286473811214439216109719099209980262526240225175928215418701625739318373203276730551473704223050605974088757471475458915268340393027058460552429648747551759269611679413736708723274800740407278101094907385080901480345326606558244657005614609686203369014961055671685362985905442304170559536868777738394593288867118213475414291646051025058538871578596561189126639424267093488498979005452068546376781278492629968691435423303486941555832504317351480344813629408589123573888986714000761782446479966872049203177219342616572075057706783225840314678497354978770089925262408802179829613909419274688200598727510271868686698052229581862367073448186447143285743443802964319301812109556155407113106482225084384372807439391907310801782852855676662938785918334168583364863179280560072157553720411823982528661504094843944664725281289969710821147568136502392005191689450795317328881536908619011041944899454679865118647763241247202081497103763603468151141059576902969786117032761575344803433013413903382900358772876380269526302200768368879228453272435167454659319009212831555407512197368903734982410756859291662393632937425082798187107708768190262379586401504389177545268946317587176597601172516485772650855183025174614694648338299139343368754890568141060732448618418019531736990646148154844508068058833818459741169692770997975392989616395262887004583896187612824873948824293243313989521807039155561758175127351452149371130844042152042324607329559132658044766782625850543804154059694907689130668660639709639356199417317690523435125891523193463310817098534742722904639718183103645312510809983832932767364862269209443680829911851391804658158306967705964981217367633437036553936491350355423641644937226826001095936001067988875404353049413965338131493750408652737958925341235348537906547917735463593261699672308913566014164586184832389658626060210146642395674384913365765068095242172351739438767977238512536928927038614750316339955406545679805542754993494156156213784680984968042885570484670961813371221747236631269156602579450740156794506170080689363414512742715392110705324902172771426621307773730887404302490764369070942007803277942925429328969432214896971645945184225427549460809155041691661501530328237521510548724654444278432661169041375062942725707443128129174130452062714699137677765839187222530889375797552503715570973627333197538560283452348104213444977334534513949791829480898880658112163504104724398931457331578029719912148087555476830435701425280755125530734758892986691267511995499374079310902907863923056398066580845688016458382203356391668550954028505995275063010117846803156924169555169358525804407558357703183334089320276027696198811339522110026692496898860127574235438757205800183355567938634034385908732855699802767260353570063515862854585853057717446630801417076944077486485099159679060416397804765056768099531893788733395147348786165457833744465793130011197431806857426181291436089816958484998539196622129626050730549859578744709029777418467717837738065944157605238750626816528312131747594235938099029244743149338811585013555822356283828881451131479381603851310388887085196804413737942783575143679125513519683270649541168403441523970907979917870017935228062278955677386526617488483766874076632017854822176740167137059140310408859106425818857068132898917681516132704186972613315363220098441770152007232104603834535064582546894673195037310867757853970140643753830140845318807021177973138778815531557896592345431524904594119702127218625092490320060829867859171627869032962757854987214737434730154703813313746648588979540987453875339785073789170651907429733035292013751579552099266479122007286883292887844122241379766364995953754407471256313436695937663101665656245322751246046380667403422436237026656436661180418931698022732129118508388122691655857524663900029670642636636415401947310389277321997408002391923452087581701887785934458387221076951945063840949691498581066379194344609969865991997304188740512603062053771412160309609389087663608254552506499041713843063730628999612792644363852411785833412971217052435749677180861668937194844402533602559148967374761511415640338178271255155410701065490866373307467658630648357179575522447904069092327285117478815534475432871549314126927711371280035019926539587522865451434009541311417714471845544667548811050181367131611267432393312937625316894640827426348455673115302897192639187384092356186965876103856087868319944672395609848495713189408444952869560284409104267027200426663794300764809405509129777709136753461862127632691910724517649769336026669109595096921144896196375587517085723374654599132473179113461014144278283522205401860081066668072688326297378816379849335162982372524372964014099939910151291786536307311755311967887156184521332525676811227714309585620617933796961437473634770000895592580601614824882546694054822690956762257152577405294405193839217706198270547112093858330146361109786396898393114849147772163884010778398871356984694027608488519481988094774556767749611235087756285425407656508869054237982633895105551128327420324209148117385935167512278578901451043254119626420096105960413469274091628105752310223368395599164103421493713125138178763105674088767171259146738758102678381577687501155454149490480552499133400401271477718003850435302920314922203961489496770825287231917451933548689557749998770617735012914250204120804444416163969670704530165390432021548642661402217147364755055369181385394236599692117842418701754497368296777970261074056326570447027133962180892290598504040660340657979529656116129584718515080429101138871460575327594914956824930979422194490903798575100729083956992573793641814204126818036460537731363250915033379555284068340192195819807090785108181074854773035237487312208584296883951401038890331255895470032335206631971364906768401386188579319065590038236809195885389924263511837338717772644888141527581934516048887975689455949834750060432398709017402591478743667739868666016062587864892601342312022215091701814115201477855320219779031978777084859424356568306595214098758513989739379297192508804572434151231790506956698700297118212516167562688246905520703884413724355229588852329153219331165081825176447572721669287991223663492468993243365467512168119537758626690966175293249727818916995259732254627192468051578961886711155433904319440485065291577274594455330565916652780096749436301478503030106412021939168780263116165596639560021865994795273503838796862844533733423070485704292032958542670014798020469341339935089133861429816982137985668223682318150775408464239385543340280124968095436887500813557390807738808772290781947909292321048829474792196975805384563478698117650789740254772016601647703336031655203758636272318036738690809415327340997036969439671505460367643773713371182355093825658193927457523007709741546934193572772061333564551111855157516951653801493587665578579118018228238187418003650049136658706108520545288188286215813798800023698021795800010401390595660708067683386223228035560622873365417305794225136812625525470309722047293493902860617073165167386794232835969645658746074100676401683441873869432723840932590704435977929980198617277967827382316975218512904016227495274590131116748107094594154541762054938014421447270150349180551966397052145579675776585485985829705750159827712695736691885500447254005397773049443560604913134009209831184767085320797977895352306397262502602622668752114696415437616657742280167124093759688760864758806206441021532339834090856739048295619280423314181012653157527777477755170868847713993543954705639193083178211470635518803399603675707629409078820892569975297550458565563905923886818709937621925065744203610910184912280408911626237950318668825240670328430448361254135672149615291483432938145476696594589791733201793458711915436325104892541252793083624188854303988104580158099835199715707597563126498700656444012760607768432204639864157195217640435335941017025621681372610788094673070026095901803196024604418807678896504994267784843389693482511646838454665287960707588361703821451601340584963663218583379312369241004697128524288651626927671185351750932343247097757471761843947398363437480289385591685078246252630188378573321396691490041222196680175597077162712237635624050678064431431417642244368610650406620172299969072222389695667772729025029241157433823289167168557415431589071925295348919740361106924672788834894256766480867241876862043484204589100900569838192023165455384622619680321677965592553410328273348121170976770124413010872732328626903829796394831113072140098150868387105701219351638261538715796965904619054376515980314220791671685508238269974096560758871297082424023584007670515878134714909231771584235442879982386804968814655433784746313889768095328601590298237652421650527173994811709762201218225517687837303071237241432739619713773180976594736208270792415921016033546511289060811757817847802368308728580101872084839730218233244623184482073504466284671736843244189667357433244503038911137484934490572979931960640550405727757706716298778215482401803293534682756756890198152952813102021618050905383346903602861542460300610501272631294679885495692618388397800744547710121524018913670339041359315203438671017234488466341116708482080052867594394109258739363161911369236242157675054223338437725847309992745274477006779805988971522079772189054708737562488106088755222686781087859348339530637959083071251349036381606643120504574629345292884212946860525477852243927946987391532201321321911753293899824466001994783797568603834214855879664899176207808833745264592934970029919718603364226912158888407440817071015236131147304802802403485778915428837065698593202354920672492432730050908809549949918332124850019847832852662850246890344027748469647892542282784260553734574166117475501925824270966983388146474239741393953512757949640272062520494407312179470028611307028994116104356340497587778276811115718250922592413411527409367844702510628722153205031213496378916290873388309388073064089720542799197815919562819552632591916181562817596256697773342527928558972997922504203975584118777493999216903985843385582740632120479109235688408196993723671552275600246358685442085464715010783108885390499114911430703226743037861543616630298880127277422611450879657606480570169462198076846453413780849929432092413744229785218953034116936634062043493133700641911027351411845558885441021302159726994690824812641354516230839479384843391280533660018159484871405636913055898375108242437326524569864353465546155794663903120800200667491669130731074850821610603481816201205587856079220471460611459422547720461209263291227321428277090537006940583718742640195794231597750518185534898111264543408981940614403605148607155286566999279669068817332431126249300434009528637911051786124751245574951606162801084424907455677529013648656118949759278255322058640418406401129597359416070121231084093952770144346462194553482713004687436735188963993433884204551892047507484181269845272430602396336882101567257743041619840086079743861432501135516737901149905243393238733119459046216847645641955722659426563187969287242518775902528463695537092506598969561803282769249147618958307831776520460130491674299854350686929054864151006670247187958792503107500188770190833366997162753014717915567913419963968452952848984257813614218652121850739363231855954159542018743561796021790617998742210991710399073538510699566438428385883644402368107373191625597431349724422209033574549385436439073985026629429337120445602246255334069063648063644875188230523661146304947153055748142740391933385991937513346442233217209649536203364857006389422299713603817865226337289900185578371265444880736339296637112236063932974383058961922443076426153304190719275418417211337162865213617837544031126229810272630604841703880685285241297782536757513490573158081214630767811571455668147518355223301504457066105478169268422050361871155760980154548894207713945758471404822703688876775197925058095534993079786442388434064929638413852511621594242949984449672087472573657401292454306345895286204708236985673982160835852858045352326391316403713113262400444891434829638628797066893682226646440626782144560441476001521176455401638803129303497117394994047697735330716276514070407180000601439739964604585569790569200213907315091868670663716634266908630875846107355970242465253132831788274063687060141032080323553682129666697007793344597918161475503888254648174999057834837508922656656705113461236464970146887613657285556398837743473777771232513138266147413288842071275329365909629806529703540763267813129929467026557140088053900946348956339522956921594810215698564878724539038429321685906415263514605110794105383494317045632938421693360461997944113870061428617975520358589806388414276088736308205895451876124915948581292433816309691397801954231442051796111560986485322826585912003230905034535349673655820535859966306526048434924541365630331373933271819625705352838458470629181471917733967702887921841281562591940499073240903747349989788514189134988510299904162067382868764074569237866263740310041014370699899167504422886890269889774287772899564391946517716264193337904531235179442879325083943408182264882451343324631220210900317105798268084340036610193100767075202803760705172780981309444665510138684540840175448754867515448750566189727712131882264238091451613622132339799137182284616256934499234493153158378182253177826215268594010682951953607935140780596123071039545205409197556455415282702292378511045573924737401215937682705107416401577531051732977988875328206717595348902428343800182167431637088345617938003349591959239066067800219312366836254781093082395128121758996296254803649552321086375798163264010144317707488351026196738706843553036785543459716329118897030798420239318287948038872360131499683645875577564796963965005657187527097751138502624804259955469869478782476612192385354065077516830046050844314622823008473651072449828194804176890187021555251207667807367422367113587203275368862759892819896372931714379733718439527995327981053059298480165091962620806977548971722008979847210838242289333943572311002844567355352200060615162326668187272588117501251162687492172553348314527492692003465293188061239340463196066314929263290315458619784009361124270588284666849850274130317853383812296494045873638871251641112523089222429593884668501045539001080521771014254582087979941856403272289166621956880551360768917260509969599628921934755123059002180773053823047719070120352425031622936244762537851832920522990605056052734971372864246624139683509453498869147547865900051315263345717499917873632808663783567058057660415153162393892268756850548501009949681521064091371481936105356487044207103515982558643861877396310139759224934555864254230540592664234882489087161527911008244636387310091277518341825953216595756708054607442131516704249279117172932368252074676106857658157218334833000546758280779089265470514695357799884017687657302354311844331041933354018046774525433761246710423310721732861722444488591509644377778362575967070750751061856815776775389271959962044833270070262863571984661154106393734525568926617407097939345352025403769151341200782122616572231101776076682549660178103514636067966428633524086491841370045956369744107967391090401497010790363629920735527693742611644722414513411689696991206002519390626978104302017121027483352922644526939273275450916501781675599949306227997426791643513586604331392869837432386756148940494626050125333273598770905481678104082154671638365400572755452190204445012016618201961608888178231460394825552139485770926106725313721328928628426559130072576977392689260206643067646838013361908101769437389526177676966867142714460428744058210266926703648125793698226406088046017653261652310152629084553566738668523545661439348570299149187009522679877132376489281417183981472423355538629120557413113241328100706544875157044592867358334649555114653331249205299695513570027262719220910165577210441464587852197733256114794329865566008100864614316531198113987232905582012246881164737992611110773792669667872587131440561949599906167280981979993424916249497671496051529654235990016433507894170807430732205417617016055906646053025245077040402506276704489937628580366837821898336979660789960521822067337753626899933977372085418187514609785330268260006051017503924834328657236772392615305920472322495431357867061128526676613794562861118332954753234047082355774246455771113641741018817485903693534828285298149718278677279012067351625727086002184131307732256974098779914785072301934924416801981812770992605786739054668738039414418207899703501215744062751656405224636385528111113493578258057539944038577110495679525134520374649179807927678462238790435928482407711606031263629779811667607371620911965538111157949955156591319286512663785411363429600235895208322549997806857935315147928789643310311808741243813074569692793459057092051120704228697483977333154855471510707290948326987412173115789026971017863552107271270635256410739996280785450802506643088192042694456319011508721637441504766369538887970403287341818560556016406166090365693649498491152252817565325047402100061009945802825180668963860838074490912879163529090233701773814933833430721401144247170755880534443814511826904473660341390762396517780811662566988845276873835146265385897040148408713207225706908802190946101679272942331989012692606501164764611271194763909615852214768706482484651921217996495877829331640955050470511922385908032771715992808235979060272939098210042685576978286655619421148336720934386879175257720446346662169887208103713846146687877482829556984192446571829838564939915533227783150857717452669553740448272295816118064933639340729375499079695169305469945031710319866740381063274735556670366698579540675150405985340321402346444429691621894094501690344944996634631793954578532764457927582586630571221010272645018587183449329461287643648266620959650036148092482453550215177142176695126903670701960400106488153540041014451954504433527542591232976557325038413434783212212666515779885949592475731602834446077980111212051147130456990570872686170569400214029299931623893743902403918451147294605323604287862253298636221107691348988540900950874375791187165626150721147990956323489422630701713265246399798931666148095021571107303538688975878378024771803475973981855819237139507716990499551288840283508408205298656654480824130966395758973853754594199244825133885857665191088418277644039837715715968189126260963389670343110976940661452122219909655408640428466907327859233753405190596236090311821541329848483779564861121560092874454623527495836396192190488761819100015047192789136865266591511722451005393924956921681834061279138868195782182857543957566103657522850481315673933267439746872944030843284881755250639460961201851607727075292346525683706335255922398686486121248338654312830171361896986066769559235328411149463559213580243913625175511135310096653753749875700084053305526139881668530955280923652037482088108862110709049880561010125892178739947798878606607911630685629640152442409967054436952764833956096812935380460391558745489972433230794683619338154437208348542617458287314902299899979171977963216066710058178047318827367678880809522884205674720083913291585503983286864072005793184978434935383408541071655099596012766250274732660395526930483483004344776351937679099092595724443667943329514275693945838789121005999600409897598083332430245870353979655033789983065579482525080431818495876529197558579831991473413550590475426811142374502512451348452594778415587811323719404170218207260689535324627822624341685732377321337680716719760504314840500958374571359215661059666217588624196941178689508497321206528267864736219081086044179228247368454914366233329298239173959334245190037992848969795191949512601251374837210469027967364809687262685173158855703373397549944510326802310023554545524122385253452150049104052225058016543528299775130955409494346832499324779437564654139971975408829535397378670628029360523309427128769383255765507610242042678600236611874825925900408919886733447104315795135338314119818798461089442899228309007014487130641360449224628064336005662389689212099329919725422076152890333008308183571142228346485964304195668840796831845008503786852480799396540720085544422148247852051220016054908869118968379275278040370722810264570764221819701441581303168178936561813135622545100250488610590335542529174995154232581872152517590675592837968491927336522580708189785028598433030467610300944244412281668437832488313816124618040108735018908560498362937514238775338634886163181116953686085682739706436224593508124309505340575122020471185552812307837024931949065411899634644967521213622763273545642048720563860889082636027912485631810959036468346624387752603585013709824346169089590183378670363195640656722674561596244024021397138343009598174951586678198001150883965742930211231695021755527182517695098383999296142044972956209719302211071444089996271458247325647221465237614944665108431513834012888619834644752197917992187366567775732469513308737057446449818350942590540558672048003630325433130782169191219982525212963858905653723937128065230568069938010472581576225679720775298757448527324657336684842039263958323779452793223294209261444863673075889510153444617798280229459412453610702402355064637448725692441118887858516847185271986178726980565874830530122357366396683381590038988476185206603082387749385864976824711648376955959822173882830970861082465655279774411685570450025331415702199129204768874542113717422233876790692891053545700220337126493479544014138779030156574510381359568002299956833202731025803273046276927660889941269705519019106695742260176987196781922881180230774263014691140544544175986342484261998705713681779707257590377931954575392868488382881486058541684176188485941514299563772684921437551972517030098053419415785342362877924260761631573477276816984493591051760703558818085148019211679316537758864360636988937314900358291814584626292695385541806729994423686374478543161148530561779135734082509679547114274130806356572164374126204650031883422461767657504222581187376376792307055667344112986767541848784085912044070446607712938852127903732331565630261306648320128250465380513806457116431500409443232563892421960534965412261149783224595364465415500913284816043865750029060817532624983816409808424837796517912565486003006501992612705783405199460849140277609952132487959412648448994577727950145181571589332022477074624659900535197405444529673270153980884772437375161155459610981022480106948295239238272982734809731132991895816898942036399016928739570380663532447026068936606893527618592062667528860818585460695310005269336353562559026381492011761438099444294298792801815891324118317845715197272980709699474611415423463134368140820770229582519663265283296621912695172518128870093862443237907729389233898402140996159866920822139405687747166583414239692911722239057257538313295116169142731929789242501285182503420445043421505842995176051211610498662750357675345844274381017129052294326307810813994304653430139811257077070294340685510113180988422292358957574301774523212475383085052149236435420480772517257070088735187306467679705476395454820690623647380689195591996315849387448728659135314502055558278683320835308721774785163418682797060608108574402189393636406086684941906653954765256886778773914359433936016894058302305116993049294318233658876715017821427053842807642467043715545611632709660531649030414935273125841800386028096822017471120878247262808274019778293511603758280171110561049100812464228181996860173100223702482878900484137824436935453665369740947169643601225623219582040278441311913246624933997937985951067766502364593689405488311929972626329921195508980161545436330490618238377803914284162439385796366572121387465659281009577076602827949662200029206090817351758166261218587152427892836480806323561814655979084359001039218669194590142847744082923713720214801639749012649670488779688418612801109144504952919684952601129082212650426011198255217698846361971928674945935061144580124915001919817915464062786819652794163748427268893064593564895442307911946227944339673510664852512046218200151357900465809113237412958501656136557045787656665190210513979586376574929774126315774658137274567849134178125687339104730542839549224159068704801562162532920864797682589670793947304888162228858692863649710667367534914676219313699412871766718539557227905967963995657681495665073950869213121034372804145993230864056070904783711952570072457423879454553770830750422848845437427952148141845781060728875397950378821232074327550583023900304417605309417939085213487585382347806610883515813372059023403291931174238780956887041460935776819548105340677480964915486952292042796073200520065205264278556684211392101171402581971024951541331694621313724431985969855248539791079528314359654017213799728232106214927153959785626538010611348094006750027525822225016054105008250700799404835827545347489538647466490232997118550964422530320467576292731688779864300586264908636611696786201478355306977639556529889753558666808041374792780670459309173272384539459785080206791171103851369925541206000280950715577825559856031873125682698738893576361409477151605783535138823479267858029700460109870021338551624833719364450504153875810099774357450405674463109242415883753407217097807025588906702525747582713634904545890309387490745332640164003438174759837520001083331320317356168264204561780367885093694933652064036598443336926743539596025762361617711814301849795789374781962935801093502299723785776080804878822002303111032538243261408561221327685006593719097171711984413234602788230970477510448382910083042698473330809324946842660038569492526565569770988127501669796339448729240795376053658746211805137602950697094612362368192419463842463093087089900230833942436679768505675497508320984775567346957536088472136180898353339606710436499520765760188600667307152635499035973109138554968831569553222876637937887993166414599028272815951556954700717255666303340033359439031304702740249702017648293537471428573468348162134351026272306675939531223944696275256060574305720384791965591979969202393179373939202255968539119682436422321922278380045648355495707370042293446865694561445827555959565642767739697469310952768465692617273694409193449708232245664076590096212002757995483700343030185319462921237064734143921772752853829259881125594589306720618698907682165558932372952806004112865800569714273458702331755924471549010672016006018796501219005576951102292220495173802832127114538502388985344576356753832758449798603862928675959917134369560622289750458275871034850598144225453571705533933472165812696515672836315229392787771123134591545204751381273161832220057456636657707808478592105695403958791217110734554059918021379633134314058930878040322031390843461414469854326449396783528699391920286487996654264416656546420105601976539546573524070298986342093873720798836222462102691297760105916665562335412964680979696847777778425468949296093284828153369460061714355695491725141996498770934437991692056662892772338303933993645685386177782758311042840877438879127495186585438697631880623319648268693613094318528176077949873610392825974284901380647691199852372055395723407158873975488268672339172606114537806200296621611023367771516243215117424562858767275025756857189696433763276551463008468280217505906374458593476726183722074479354755494386519237331433733908978866976557825226610757311498549423757534455796957397570997359063826930649786038395518335825510306916213057254481236856144232606778390679041905700412025081904878681915926944719756319110852400587828761680775415389105329721581628168805540220103594209350509567393883242708932992262093150401135226734444531667875997206940605427039270998212491086498528149973482984622096109289434265735354328136316408756392163270716259430405959460013039761718395170610189137506730691999024377882224920350734614546888185431769154377252315796043787898688498413305839877525862917177192909402024669261194951578812434321596531769941059793698916568387521354626381691235877066504460969073052917198086868579024915960234615988756021824901278936753072834547063971639288062375091505598403334416381674965015512124915424753024574342432804432720942657488085878975438899039570222788618186732939513734974132902799066640429338491171616714651143232225766842550724246483379952584823660518261874886346160325987739314272587389798226909954494873208164854479218840433649759966164424200802349961926676853526837796992021194550797052104088890678768214296149546151529574341948071842185303940735306181025391465775003448212312640088577194744953804709628789606384855474338727898115293991752668638360508825340204390192601393915801538263371662189178961583914313910977943056917193076575550519768745560116431009845951018071650958982232794604479419840950625496440210387082696888984599956648183830296246450708529016678533520579486040237849931167725560884281322922758532676753047920326386757457454102805687567119790340058456406459607436474381035876660384268220631686914638569876454258719046452410417720697771984597322386931325724868274030562238865107796113038274168011092345829326636398902165906820828794540502394599900062427890119990855878546390772868443401840574145544021780373405303944036025950224249774659306673710558766954434379841252299483362446311643224601207909808338574201425783561883402820843157807371414424571835569930720770333673180817125665081897446329910712975158092427677146894666446285350379889096573604419429745576722410535188792779457850816390376553158375172517917868627952529729226621577816584332260182935944210955107602907757506458025394044340940196239870750430275428391701472470580597576132202922562930570672607061454753128977724241285634053867693242346589294189533192906427279173348297076224804128287723978542197872900981245523673810158142260412413436508396827790678025441441401573933362254710931106992715467960049897777250492872509505593860164151716649817119199652228046354986020146970198248713831109188277595879896175742042670689637629820312012866391995772782887768446987056518618018147683290421231061608837678081740615092987233196465513388837785707945190959210815758769372223651432349048651841827769239541290420583938108154910856707630819417489555904383874221860249581148711633892944903826372845137701384159674449768153529945065860418197984857632330892220459326008266594304406254549608003919201538443700339240596309700572106911860250923433633062264562116881929945061404515817282130418248415989480269762976707215498359178875760918236846651636412063962457755587900218062407112631354999079144405184829564975583081076129501338206944638799478507651901585497948358956902781650493218186916456376523945748466573148033358856437409927111685226463550699293896114482187953157171485160487340156236526462440769350097606969248893773803104701118776875057309494807338584448365664045848863935678473766479702714012322713987741558525918680289529713878539228120462795319846163252774003032091489391938254762514352072939501585763504263036542366286306725475582579132471583176165818175450806296127611357784195237426468429166391353003136865928853922642725143124437782766835595299414179060925927683060950397660722189059976290966920320260241052560365541614841505522381161897246850467569923796356587388846008040934914708131144763889044810305277505135117197750500525363005218683946329700608819170852759351370988893971552670889615109943491647267693999867202443946303005839472187880645272239512130093729873715794885499911823417050084793156002701156032776303240570316214539618225466573243769743974841838016193175342956027182662952697815940185738415579244800083489379111737499591918327978170820688605679156461864791414002741600760362766371988465806330881446519476488059455346176235294186189271803706579950629064661540893150236042556979272982146134656526379663722277016210657884930457241380411840737947175471071627717759327575951844994868340731038404024911637380917087589278506543260959453774758716947174325731279914792174697243026001507634789380730973499229941047234529998393859067520624701580069221339888769250682408351529464355902678596475788368773866115220248362602124811033825756368329621717526499269154990207631905944940353088815600898555558411287983194373177137506784485585636930911542944593007413567511814052954841689527115664321313341550907801088015729841737459365212254714558489238694644123205932399847241395834353004913348255523930875155205114480437327816330349661106156816029847880103135263109013811288916193979221392012497320832208323132623523679906508006629137331537619699805175078849991308530490379318592561334063205600373820558542867542281000632290068466797143752197713637808381783006165049258138078609195286033081922650533098770528603475786082263328967968088609450468789457087936399250701791723238086108909984990423153479546598929874176119092141952976632860093408952631853319911984113955542994643497459915461839931991167726356544351657262684782263108645744757044725904508610466111054654446654767501052134120457968340634692375495324827810644806549150609286122542884584885844840064832447386427964044452389061701777490924058998778223446916056671221843982686453051873721394309366206880303317423671163458324951859296438315819644015409675277174596247850746899980289613130442879560765135119474137485919765109252906148105725371968748502924379100123685063847216133291367434617718107135554042421637840315479726293049896889412623046459012055732983028677513150255097639586176784050242057175367872209156910140161511097974274422630447867538552752542714091760631123507839996865629997950715251959570855123061364298594611419815716805407492025140774263948280377197754452713188975870715103274538675317616755383150821505726569031936273608713508342647017449156072431984151502705086729302131916020741754678025946994018960042956618540960383768245427669940660822282464543763758569762635879797173582815880859127711918255705678819207702013648380626068566742525423918193115942356654849843483045741376467556070911657883603381396076001935454119440749773661034889552925313733271450496921728398154415242562705559428914047020222798300867242882989810722792871439051860272480895498252240294129278495917282349432794581428477886280102743824342601786267385673532978165128061251485786536988078158421575509350459279036962782797002050597813873499630589293837121791449351867621291108232490585408063659404151354128696572467192310172389583926131614516615469714436655111513982036287882807709269878077179810525155477932318066558348560132817789397655763037489104539688106749230058813461479895894282193248417869692990873254978144013928362662068408933346809550757190500232958895746780489174220714109909511610227938202935709747241361595184425470716822314253546349716941333068810447267005759931042050958862054130126298280514975381779933702615663646845758613706269021149465114181297452274415863118048320626694010850786124436752440834205479494522738467238867843804392045690713054833222851630073768911518625345610511964920252531221204388727550676844728053338722681850398832370223923294049643391592124737230812349820167317112392398783816922491932064924804526793431117382722738418830715395443647191268610233685506396733934651005947235277765116822105716711862900365122911094090366721437346968582542225783312189010344502054440151735133721722380003478709357700136074025437813008614154413193990800218919947568865260505148247020545300481144679476174047855845051468022137100313738287237035272639048439077961719415824666084923388704944859702983996401420043245802183839647240793504974934905101258009772135214510691460804789786545852093446254226642145734945363062603056100677602636443262879749933040293878443156346432668616530732457974907278043970406848565271507739050002525451432877175269154288305852465634857586775780166657809987115447320096977571356529167689649038274757428427514859753064639067272687302859001623461020640143092858912829131791040612065287845971518138211004847856352236165854827889901963518707979583780946793774694597205298421998857290540953830993027383065948324262652398583059993117259392248091050469374926747629461016232478549111536222518916501854324363282745893886631092167991787139503760570769748780037196616782195435245227797029199621161391009126316556367081490781536811530792720883856348507427818233593005209154663497081037350288796844646509339759662978907894148067836459639131452736872598631436456708109814283501184430225618312067300739347035048932075862063123074665781436255195555657661805657025339146774696847646568298995759867098429201852354695378384431823074191309389614852096501695319197888934071703998109847995543200550622230923386882738621581651300963437161587917898398640058146693242603393828326724021114310215432090298336247696254195804032132615815558794721702210531811535061746040255768852351775326938556006136545909158266847467166539851944508083460417653188987339778108860332074287422159267445160631272899445503582188789126230713116221972733190830109440127796456244612203883831665368857698320460715916871640384369127463555885825059233792907275378397943675550779390538293489172697293148241573847912742770520630964098531886127476132718344070239259445568660707908363365801647645585531068150719300709951660448318433117086961986293071521166355916090495163097362572734608196183926038630352814226689689697295271851255987939002199562826920742901458526098555810696799091877813413436765287702447639074547486800607772931006671351834894880690389541564480182800887349134757365194572969998733901407992977119968524928298533200727814678316179477833801957661504602584274172766409548182378038501300895690330802400260480817799485612161444512435451166321440518371154309678844236472666807038208459765237274691337371494961587428879459030690015915520023459303983497107549405670761365523938867348404710031941312023286916024630048641346398737972805087584459297727867968011241948952575897221992031660585873869672310156705155422047997759080052840844203279463348192388777291299449077042199946565891031938420294257748554539114996777355474796212474747282919983885999731653502011231048294978636721113848749802245050377656297628892637571144247876560060068554829584623904597932997512694865227144092910530798998654377812791805143493637448094919664849460681648451254846195832067822376982260859407180622893178502817123004376179248512592822158846004927005751912123472050204448098051038217216553043387271914369306607392393963426343188606951842572906427229428472922251104054307957550053107321204404024381555130833262778310879117789260884985394963649019838309693534069866574057308621793407948962706709038781945042932313306423889523912755101625379180060776329323372306455273385716432022330771034957813112495279469477796757419772133195157714476467755737762275217947150636163231178347174722597275607028517601595025555822000402915952385032628890003493541022806893034182369355886201402432445365939478582393713286896612664614004351712103683827596499902372949297293234074727206359254465755871699890597373026368426578352820386456527624073296013392017620704325921582750663625987251156176510318594698018121507409971165266095583975091467183552122566712429618335146599833279375866559802215335702469138473435670240565089709873395173757182023572446362938812625017709281263585956253853407311678543175805540863537361644798757074934129324737894738718525182941481966067493699237745533926058155459241312864349584238322696823482577175228382961792912042681023517391428620738665564712312757144471399848294510005459266709762657157177524274951389597642748939033318340506716112887090976180308488397348668534427910318591413445629953264499255181645014851341932889313613456643937318702820076724797855080431720774665466468839006118748064969986194177228970361427054149926009062631490303092345665668841646593934592450176098169740665832893898774862779663036664034029619650589929974082437298630769022427532378257545498456580935439185058906989738684169121205966038150358621195458240348610436767819226832266677160086460809316429525158797863306829305380509194468240389631641655016028659249773789191981019325715306496235307663240030898314032707556626325074226881209904133732269464633338829566995863073165049602876737535763960377969465202558988548581867665389433617971317483839703096625425337593208569000401059912320712564739498375336389003232361274916312693897954749584596759111756935649859817125526077591489766777460822770179275131242577989855339908567032780151713097004267379824223330214160590181841809057118218962307530139595894241259653764708717643846382865747576599380146354691611845372882880091419415904622909707076462533933334088970992221003147764254173776572485199056047423669955389003349939028843925610373428885560019744038367782943424865723918349543870526650333977811266084259548593271663435488968911719222407125352654445943024399952533218576298977381494394574399277947427544051491352842871092357274455247883173379034331865109651667458352824264318006816881109158094154759958786418382542823103661357917705130347099142307758470060130195967054144797023542176915381137759691415061381991603775072378652485673182725027876020491823455154894768362773010194559875698159014767202939242577600238693695983733067125173059822247160268358069100806543295235015939601830960925559660625327575475079458532138576451978264227366600430099630593016052865593843962777524371752643434766626207844463950148760173817334483661689817537621129714268500118634495826225983395921036384729031491148947405200504891635179862590209837640534595286286630396207389053319819007849639467057550512690559944976942109845543598908842783316232539716084657934800547533447411549863510585646420888299200709174950174307241917182052675469736772274858070536889435685868863945087283788244906365106635594397075031963214386120371301309773832091701299425454002468504412606788681215996668755590318904091575756212311223422786197789744828814213842227023488417024038488665934720547516298335890000046703082541262021531575959099689079801018382555585404759536793965322075115636352038320566331472424913058512256840620431383114349789751722334842655083949040425841935363117688035346808035864087237386769045592879810436096731343705332974565473178974989980685887619262021128660052083956320762420879378542914657452703581515012862029536501366747129601976907182799585256836988621775844946798510570807637835004970211098243298912051875267428297659040905068097456645787585423482792122846040505396996160879632849942527768604777079763088559263333127710719657233041075850985938424769927661977845958124258248156221825019650853750506888067093813317193630206232331545038066853760288196605848334166970449600149323976006318033901171868112597226205872804491663176963299172149136990938409513482498557835850960277287201863486117892925170501876082789676701766841100540184423741105444305659541759718566381051641021668472461581510862801310695531168337381596760274067512406881411246867942266514785738946355018929810910373246730017560133711799550140497240079334853313427723865913531138564428240300594626837795730705973673480321186485528161409215673538702416501429216729757970807922858275338889359979663424600060715266029929821764273847480061195847531846382379812804228886789004402187894843739260408395241668943022248296198348805020191359142645928240289180163854817157102926522039075023442846431871481476357069724437956461300409821076153113963955916624303839261936038053768221057810405209584337842751773306453025014457147712500843003381587332421649518410475839023518881237855871700822770409736947643209489220501830518591028719843855230589338208721643679391550197291673960210225141437941936106537348781231871392947267427797001684100351863361345716469680381507744553540835619285989282502447608097220371850136072109262847675270258507060615318009705341489353318307191630293781774037682561342658056024882680541743276947346750785940661802321182338326251217912535626489057697964909513282715344929878551898037695730077992999154895465445930964316731073372983069761297510087212695635241172410886394096606872498304755550864202557951131603021882168052411263447709664358607760543788597062412638401211400745522916121481252394248203221305353338212551046059209366903752163333048427724420239506400639834310057493340087446512370289900686867465863656456405611522085175393161799794517866438314297870836925440369253502010790517990778541645335547410365439652504976945220430936066551804395203934319247901327571899789423837556701236004239607797452290124003508621368470992860320950193082232176415926307606790996752728770545800121823069243888453070557344362725074989447079068811102849684490289654251281200547521932330509610577680357445050270996349207799453579883200089727805425391570091512077186371136292877353129549808609161605283886038198528425942669495886229226115220405045600182747342715774288548322472921541991982409626732290531561765213344737197083643466857035996298274495288935740791053706332569370197776145667185905520679865635807035406743827469072523175027602767224274056360008450474939883320695224293920682268657919995872857032804446247749182467774448576319132618916874538529600100546781911633856157571024974460076837229765420966466952000310408937184648746715283462030112418202440789448077168388486860411019360133022047623293338125567015218267487745555674420413843497767373687451478642241871564874781196612378553666903476561661241402142310077357998620436524900030104478457350047943160153764515356190816597662154620276491134232617296933346249679067482180590888580137016595118993593706171471517123661134222488454098554669513085178406415257878081476022385747597595943814732953953943888204827159553610834894569913035426011944890001389514233724686504715880771120431821590099954186938426893861749142969217017298773057686247061645928490185657197649637322574982812272429846635093024696173277381906443146666157853653716592138845402245103713849984252183984855862793984659837114439448880313240352710051023775465221717794661421688445094234036342169371250966498340758769925199544244941345074055430687848441899460627136048859610141962212201843978450444128221240524842682448461269569976085982279611765382624609311538957820345963884524165904201611621846456477806432609801955146798939236558589831136932169361509190146023990411125972517651672482554439266694785364734244104147232538864367819033446877036904635992345418706679070495395086179290095772466772495737176563678910563280645480370669128698278935323863649404075243298809277154444088992135740059095259128177248381799778621436075803366528796649720317725125060599876164557587120995262304510603839000302310741695466433482415875493010352028655222239394519784309868979883859783655820011334226763371695841789014022197513163039975863694054516107534498474450046782551751676462742705120299512882248531750229245286373152629746904172789467102668666756339242686477119289100038038076876496409840588562998726432062990269765640875042129808518991818960239080433198201491708700663438562719611425939145251174392061701770421760318870896864236111210459325568300419651203954867054417340561857649659834514570541994782030491438152312128133431896673722221429896161315975990705942516603357051631539257239245083665109022967256708305719591826516782384919159077853027476739874521682181386692991079799244978570172759801165766240579618381815279180865145121605741843727082822424159642141849922221393834135878166100523982780361361664449278747745162466295691132164128608299353862195780618509557248602469921863075430123602244637534195793548784604927006182876697754157056792715158369384018828043711830831579442420478059826834094392238181589372612681501391962996334565435578975824578583971386136163692121492850142650162058719120471454158665768530564142627057101746913662068883463172225395375722982915444831804693659220258015689939041052017364411824395637585060319547302466305801202289702007665889671845757114858521293500177188404535847156794106061511647042997465672871095975361206089489406149287659804635048802307424699768538620694628038564028015527134247574564599247165267923667999413339844189823478723946768122753215683184677437116554522490709910699942222501159762994451948468146990246079272116466315907350789212272463225173158667356862687187055865414738085796528064312324835136466106617190020879807552212621610727145514558789663842305875743620846072117870242190754024557463129023636952104786469690612680630416087828395604797635290861021137768721346671563554313194087699532575096201085033464057699416500777683282453093927830571483500014987195006973601309052240445927466360440754966301026007855958194314196499765404009890678955775985515141165319191939242712741330442773329160871849196350291802707299451749571838767136568205644146243068085476567152028551040645621204506970532128292061423075576570120542163245610771505451499366913182292765437533126439420653471651859056093954756537542883878315513970861993629651179051541130938956676190113315247051948462607415129171233444614652045967705836185441207671781753444746651877112489856010546096661779680133013984011561446303775175958938223448696942131871430765506428699518172624161778568956215621753300523961107461396903833882276040253735706676124406375186790045599157775833735936565590026493575631176192233288401377841277311745036043166446719911383275312046967307119789974573318602697134966546543472532852323133473594063734352575460468174113107956027288754270483491986272578379349100563150099820190566337310135254079603532241427750406240828116126418629967190430142149408752799463036571839335174637486666945581518261966027353669169469524986948457337123227575235469349393734197730838121341627088195869881932752091420604053608120276566422569975359995923505234612595093430020343175710653416003811611017557551327750588988530335717360735115913744695514348007686219626232783728158786450253479978188598014367622899521814388125784189095589431948738532633020494158273797493022487845885072666631097860552207945458890239266832336328525135232207123083902552798744219095081290611972010296839668012774996468313898996916485435565269913096182849527979491262520407551470204049847501373554594722441660957036966236579246493291360390266753831997357317651957417261587717336623151904860445756446076488207323887912694926635440615820817350276392967734951019740943687364112872825964554449965766245100021393609675235902491977019600462062631790848126944386260120636319270245962258645792362384756289405766224360337205740857652364020433794537823199407145200779448339298008874623555573817041707744615558093637871597024032336332697481872424456305600487831019337279842556664121414013038247000633107892682885274566424880306966115819128176856088520311328957938730184297270143062327553627887502094575521786397479357738819282980035320689180517342914850056748605797812991669247914802979632113322848432301374036319486192208163652533763052416627417343610185109848144922439774263269121324407953059754965653193619066407922703010079155458227311324981305625088740081458843025912015843126683472516711650121063952128037899439233859366679635282098411665392593543228005862070206254320990940987921999176203353928279304285283298976079225209787864461115163334491011229685963467625131002856319753557597186493707529418586577435294274599313609133547949856761976995824123125828777145925585621874140266633289846638342806642875949520162659815865915901674809728036994216657286601656225193212705494035927832962140456692657251110792257866123041371532032470199678455339870350430165389069476647701843998258417000187543058963618159721419685660977803175641211297089040585947646077728152317246427593375723331702506028295723790415965778927695417753505247986567666481466436958044941166923108682412025799842964433005542003210885171337439635684774198274154840347246985995211392644027724016184862777335289926826959738006326058036916009716005526563919978641517992991823992696214685799307278087414976403751664047974865715567957637729411339354699874931757299321204139160005599739081145644578444960006055803046388051408035803789809328014125070007514735680915330224246975326847004207757548827873496772011568280172954348375520678358285917208468033212484826778277356008208622347237877214462503500986029874184497024328741882317565961330794482848873622729633026673454694006156434527228015124083471659438977444571828523938321705815773865173568325692134744281114631332319260335983694482035173399580825052291107390931453092941396761735941131541455516963206317124538129895543947123749227904075637739273579834775084259752102973828641707133764279023527913917731230276709851435623556479278459489479719266723901633987868605036074981909297872138290266622032640266601282103889954059329870285274585097104183882717738144016709348601018921221822253407087202673034609079500340793334349326113255030411837682869684891871922915857989137890046524446317144453766704379367022851646906574504483056815466828822329695009472533466832399000129694775330669949929492176791986115626204843535622153541796917087925535703477321894516675514804266180376807046341172397193789527324367084021688203023100561541748248009995177534799465429645094492670402214909568791092871180513467317479608208474120190799039602819115480867001310093442334168836614670462975388475235092664997928755213663075601203179494101775082505361817546416155983120086113007204141103066406626900910865853780494603213681492515459568344733730383120844123190258052887711373791620275081637647070436300122416668726913728695148466358215642522895481654923480815264900966428223419945429786028624394587130759189462706831229236570770502274806694907532023496430785623741227611074780112937405077559179922099368219682577216188636579278529305881213797193809731582595960353905897387211205318209264811582462476009448079811667190079366152577404538598627395552689515194404530596325211032798670571032485968839304977650161068764337098976826700424422809294271761870063995278582056554514261726464305760242277426620616786861735721621553126309077843056363517667783790587359820866197869869087370164810527996126936819392740861006967524898630593531812446633056507066469549715902441873770912206149154800799485673213555651746680369685768523916320236193056787143390901686177305080023157106288785185351782503642088675003474146556603973730801380498350975584559243772845532177723602860077578794647495623306830065858613610678921861269078548280488619691139635062055895157829154197218733399216297054164417269763727322316920479676242309944661542887393274451577206023965783895852894368911370185841626522255599304431514851656958269314032565619063720304760163643280037372634008317375878981032756123499885904326723519670758549414695409647767183450970404850112966781278654688490608582867024889391825651374184620152618977213326588024975513614729105213116130121286444757851013841192104519621270571743970476523685961794253674951435745142519364727136088594484121314706137122316873217216178005466058261804003596286812385583575657778870876439157469809669619841879156790362217390276941404052573100425270915699575183651570405781933319945040470232071271095606015505433998543632488466878058185950532928520904888151167619107203547325710598856407353123777590912277721683323396456384322015821861265973436675895739603790612450848981365467500924374694301278855235460389609936152764563866433458777748020920134461734137965753199871289850220199071178684423292347972466048158498897196497367237884780526321278453163391075502912177939956799947548081080524349504160033891719986413533075854546211592823840474698425721749014158401977966243131879693138513323557942150318672810860368979337096243519202983420179773562246097396071282183826485013160257346367562069891106526846245861100297827773838984200101498511269145271908168759111763309513526937635650036924467263881789201040902319691628056026965105138118630953772407796847395332138612582436913314772365058504888803743883397220517338013292530331252843642081501895767241146870081940928237425821505421437783639660080697363641145750028996718234744754684511195719169967962052208066686018994837989473253768222288884448913080110321857545187863499576335172915583536501529263953068131999984607173087106050434087087998731417048989070744724827945285866805941272708316759756335359745443986081042711840730539815833478423807818877650644253878380742426440103510751700791770831186057103529149294047752113517098712013765814099741018320390584324845914686747234269233042600209428547184500369608014748718341309090381631960081734358039845709108336920318140310792401014888676498144014478744102232998375898594525528553424710527746063986477892915350336208191464877184364663705224165143803464499108560045055027877771764846472472023786779568745699565921016982942680476832416271792904425757158372465317813187506856065385782897968514170819847840576540015424393118711428984434895022199897443530016658994833695771956941993564652968208010876333737317765984256883650715846322305457421853489447275068540789162183452449052503820381822080282040770282474070962980827865541391649493052544616536180774240993456961994767851004901553363426972145031089380206616900833489631458481880692301169217147541327346427550398787867594560995952133369968787940377279248421741559293636993440623083605292224558234279002221593250537123121383206798337135306705485614163600668409283699151396274988768487376068449179555467838066290459090858724049132129965238326873651756915040042044691756644827331785211047293507291658039750742669910651569998391559846782839406934969703647266384458905055245255478126679007048677367868086531403198987691438225504462490072946365966544729150994059140455387345838092237019838206085188734761555552867347878039327551838648454683492517047063273565131569462104183036578212771402611777732556063248236265626348823226951667687183937181788678731862028287546611899939050970432462182043073711699233267037999359969863918838658080733864911764636286322309706757689793120613571476238572301551733407494113632285205852674572138843807459276480685985303668378445849276020302454549353557369647482349137189566089253843168366473967923515766631061115891798511216064456802384090031394356953797712634561835277317910876941969779129747263698456982745791303745888089158921118071425526576951584472246930430124888926086180204425071730212617095048865216352702541205881324500240604774930109560383073319395385110066851500846394193879718679043720111049928182847397122166193418143713919305043771435345676360950580813164187951997014738818293850114034123772167854025880667754338631836170714935090431839140364184811950677169833743987529803600061309947749305438716167494695253651370472875720146917894209062346259944737642568762938327387741563743075430631356584764738707445773417969919192439440603609770483195463300573664577799609365583688243905552228524080088022121233924684709211004647772664498375723790848767231906165990233037676698600314505115437443039899196951405308850084305495483831582061886603464978550398207902166735883973968110492546473001081499047695337784125533735881992664104903521405672871951867600130622371363759785145219262139995735864301543083327165913232209758097910146522275987526642068699157371293183757219913452831405543200961307187921611396299687180580551588830862731598837371561231937797863660791064976595857824851019973115397736798674689836464161812603566520815178692970380994578793628591102035392892590855338490744740357845025353019267067423047043000524595821425568564755595433191180707447516886602978246382493487879034697494014393864063194500838489645595344322121732680835712623717782676011974362673092839051988173376119164887273737821744772202499006530110003698646484597136503179009390015992611367154748254580312765220967816066915838742059807941106861574120329474632404906883952241035682779651759841453467138513545659668821416778759364231913643480150856442947358529051012987978680294813069769214569817416352969936256012876071820407059702108569750813150055057128872611179917697484832226956573370877105860525462175264169823222593136051109014049231116916581836932826776086877254152273237042010084180817231530822496957057389345482064499341882586479791410900641478316225624069001274184281144943940670349395254580292300146718551743151299572539463098282672681557583814790440160799850461711594031941023090874495392518262586147638047829574647205501778217839180546658730889674554854131657779476498734891418141452684584095269361767768948580776125936540214633049800599208662039212608449418404401595151334357268734381917060784933163665444196515967677947530231126741643238077241250383377315672080925279164836234947055873233289208985178958894158114863571067972161528929078134936092172754265838802534625924936449695210735610879360364076769424511121919079860523532752956555844893016412626747206881925579070913671837320771330511633150591891716366854269640449270881690090320689645513227688726319727631123089488866598386083642779788533340471085434776001449419707357309010562470817788305675054085086274215416792020082559426695287019421099720477995618546933331574295624238596594841157040241751232690448274669931754479942602864711832718408016725386371168724945498051778852107009520857377637485047064957326062751444366834564462861179445064026189401610050885222714573023160146587250531063509208297053101206059028724924466873472358949356812549103256203444265951726419482334161108321555582248241937771640067368093819405472986615737330599916355843236649394600348203513431800543507633669664509991960385498827495492775926099858691616180111979207484693619921100820195788820649137116838878463069787560428251199929893691665818386286529887851486255344779173560725280552825952826240737661235211578544317319749120413817696337426056952395722497542051708506601879581293999221956272704978858706838068664724594826234223108040612206212782598609095407220247365363767193419370061851761152079820214200051685445626460753205522197981222794633213034853174509016189163545006519785189500105632964595415353953391484683683770604447677862326770025051309799570365840696487490261154138259495711166888596785151238004765609435780638603561979850525755364056249332170427630650738811204224232174328636728511687037365406607089068823548934955111915657815367869885932843389007203260134932240486005629284597569667265586897076395408476659556567912557955309634932358774996823518828430142847480459194151022742197229585478430697223818249403736308430954512906143082436278075140909619962582483391299766662164809167351076543356862029353423464365274548506925371172335677892958741869656565018106838869423595292807180018354271931539851470674925700973144722941207948648290178144667934418311026315946071754080821177110905827629990172856032374444685562337700417244929302332115137359516029637200731210180455846487558899701608688635061054104473315999727915381558883401549727245500686332609499806687622652896933692459286057065549431992308338861524464943982428424906136953609311040269284989379658260928197713872232692487572924408830602611230553602804609161700122781289105397937198851525790872943851800264518220503989250433485985109349592414505211498507601697418423319430826564990744751239656341160176356948397375108158043621903062428475169670725036636518870508424778677523931466395128158641369911223619981983274577846020893401763485945692338300408612429261067255664617861270147438029969467272536636113271525952508183023574498354050124302640356188770934621843611017175984866785659107370562631160018270232353668456541737672590898011843297099214001810975153276008281574608902642961208188025283983274104453461512192926848114106655125143978664106675793156201938015949082700589404562596198521299972192571609523997982127360785311887008640777744407990077869773676491515191760203251812688022894319047976919670302123877091180509696798838524991542410408947200700360924118115788379361362686281078913102814296274954009149475694853814120344787476061917451064027101048275234974615136049373772743523659295208995098473730376401942729131735593398142093470967938988154213723954615775232120068893032434665284258674166087265343879162553522343407530886363145482322859744449097343004821566568604273165314275409546128204466421103684525654973182478706642250548767606937500663048462287284883875111572384328305813346849277804115268860144187324066122880139428906261188410822309225027118182650971306810847763197320686099558223551595563367492666590423709454787047685039335269175327331066732512740024567877161157942443915428992724510048720440930318302430871632094636778296707955415352980494764825285288974509357000448219495684001015524768444096136759380307856956664064998649250754864241063277106538146393680737773531841864856152351020930345737548073287253880808006657331030499966036017867400616940981292674801074490225265265105825882331809137685203431603390412577822831897004344599603905749015603027849826004558863479825856776968844084969663674045576231709436741133273625044360559277253928002234962419530278466072855350984103514252098724227928848706060229804651270210988132311141933313824441780906500866300591981974191493202802922465233336154842838096893978427025927936968696848736707281378705997807895752208333201953775928693275265224860910455704386085169233852864863289414073432576301743207503724865198294770631196043630510718881127103014375514911219343833693059790526917561719310926004561152796132336539298231181444720944841692812539149871091769402346904572045459783262483871767346845440679781151292115812090488611708091619987059600141974914876164614998422576153604344221066197791406620924018374950488912624072501139889276490212413185037955445077933268477756978475579356342747509355525254254983928187930111432314082495784960974863673435468250723836227219210294858303861903852620356697550753914611118890997501716363631503028251221729783044718665553735931792407533508273732173242462739500889037986780894473166778703093434080403049626131592304906921692547260306511506830788767377795616248513060916930603268904761309313389282891016357826524273398410027113261782797543739612281718406121770549944089266085280759427513084257791499632435897624433268647855032699919154405725936809119333079726395021804256391485425529628000540299196880645347340882039573129645793405736707375669373955554505737245016986702551814799273113345295283501105140265637968972974826942850011889380352945647213739822676264205587992398602888069808360447303560278552121930573780236622520639548394000912130212456286027943426232211322670828040262446097532406448314508414796343490786987208292262970344078143157979576610031292145932766448845676414358935117900402179191149596618588046536370594136697390250692736434162987591579615381223013420539630150422317950509107220039924581333277260431813947140074176750176187454150457841095689028552418863017082700965022974160102396738985929914074687876886459145011699691347495811410520748089838929115579155331506183086076730956147439480779591862563085399428487773174744517547305449954050666869968003124128807655397840021772995889654564295036941890599349217714968351807022577150937171874033664810346001121955306717542190598546397268828267119527224095011683242665483424656235707296039668748476735186978105874783660650071690491597241208219680834707931445780865526745507389539720896056130128448348481313945338561628253610125564353173002331086545935564865759826235233722583425652765026081405295288546733181443118984250345309961909049868117941468862141427496947497981908826259762806617816462842923019519118538832691875681859566125995284313004426143709057373919008866785220168349542265771026599453888056613306899724615940903294216163244339084956679764672278456918291463885009281792568800494416240198318113702628896533784280377297225333828854888729181004090253586715901749495525396786634089881849723484503753181670943054309690997121293501649080723288635158879956352066923576223430764093558337118801114348954664924326522975083275273852754953863364847463350553314797912146256041931925836465544563699863009690964912573739790339958788058849573415086742564797220063996739541479268810619737476175109845710886098798875422558642630614891020850545034559284830392600060903216109322181049363972684738686965694169975935320746219426060722723603550732199851444537551295602317886605079308215554264237437795305616507833179284772906818009009432878832718309110117030915172923310509437366677708580735303467314165777514472124579447662603394692784960929606961646089153925344793528464289317922194584049588525933392157522138092718125176456760152488175326086080964732380728652532137331460878211931302642090328573789605270874645093609834073074558488119215719302327977899169094382425920689664110265849542849779037896998443644105243598122990855593730272232007841493204255096023321745781815033079226845564258306543778137380453185214310137756987712690896870110818487360990849188238288205825271346888001507209469939732185119120791089548811694215524403260083397996487015820610317933853160082510572553350306214835127663068929827743916574394034224746925556301957350679522951519046697935406549835937960878174263152504699248458826187507892213305722362546941700877043202282230916720955723455572294151112029661916637180090227301669613182970454460031392641537589145933010494326667136292611574524455593551042514205705762733372350072015961379467242384456870042361519043946801350239107100790948279770307821272823690330320784168458935839496944787339695160165831382779419593123985915053873820469359891508798049230412429668602569041879078653590605333805106643614330456618302197616528166225409273033188935405145604283422454498180739577469694475542023696183708746223848769701109689081146419479342287807318534648594785382865758348989616642957967269433596820790343327556288895980232173016734258728752222971946392674616143235618223604711641597941805141769986601183571860626726752552056632698945932327638216255963146804217411488620618716107186422685297144337127900361397501172652245485602358760346388408092111456151027925731818999413292487223253204621380114420073738327652780990148217461862975309083579242227478083282500412745663909173629835389337029186409864406604186936283384584982814316154412361230446479553864390747387985002995261609152082512060934458986896319477825636248539502927838818388453880688795883137354597611822237538639099316904309583538555102483414919829349891288441850101702292110148363557579798917876640521320472261746105518535381553490036095638324608679291396660961578159818210752023556746234155748702573876889307240808469899020486639702241441220124044183768823004255651308337267086395751300414704954188717443286833056923310332967289429659481129830681296665171699737956420327156651671111903921598165735916037235777581875304850434925621778498874894790540189845452483628924293458224600998035731942403432065885471342746220151878478651344431244335837284300225002268276447958148181689780692349720141323065430208766089795871616983552493621428752146485679665766323331700049941753579725333750580082972242525484816014549956053685227620347971914200109563510150400019413761835048544339206945660184102982525921752836863681905462493677339188820726541345101655900106268527642908650478138154586732386209919971924571517035731856833955307706875957024104218953398061783553485169163165368792700221625442087995452107800450535126263292949862590502797458885813010435034876504565167570352411812313162210409223870775996572748350936855359800404533484758244666981986223667486950933518785594525135629704530206939930160736350321503642063103481169162055772302427471089874053930995573827217831915110887238381736164975694367792588728793120841914748305438873574039558317270413335888881856488529053894160696596377505470856834742699809292270947430556343375101262718557319917503725490406957388526146076941806821790782384808493204211349819127016738690396402802851281599843533639114167078837055587996431035565514176822571597246552767870504775281421979743277264634604168500041219391842253197725192777415719804536938323274036456284364965292046467840429594909841555301087437754016209815450045577887446462340764403062733418599574602854248280650087755483720590537138733551672878905029014122271585216148931528543868707819432975070476294820798793151851789181890704181269502374735157407522958331938812672099945790584131150081446510064559109044644604669450195414377169320011009440395786322796840301569692952103503971469809405236801988899549029451408936952308255386562712929456562320864971089177847869844306359303973392606033042598440808171574772284623107180605011785221723056693763795331425788124152466265672783097903751855154741020460855820624274619483270000865485377474078912745118123851579364956255264159658973576814894007367960959467397483638264554895803517782902436076315891753169797804871453363516256905967250044076094260875223076103724493858513137179586777968148225352099872269019693597818819852723683375597096793332039245913876838490372884207939406705545749749398702856391767905379436122871062623397112590276412348631469050485858437874518597174762822769987080935295946272603742176721827815511687069781092072368261646702072688717966456748511681077731486028901241886950855162689296532986526848690727909297647822376261887529983020068060096893207364829643996432671312378147756181342341168475973417908296963593924486648140875707355541065694650274431502033403378085129709009538495260465294378362351028227122401459524371299043795755803486399095708360219775747490061059754005649787462268311793688134387155773158997443629268297417056033677994228800280785918779581604390141692615470149108266408295807096041493545146778002254296098089356784163556962309875284155756977767526853630421252864799840695605694243928026520205090357023056700822646796086886729848081903215448332701090243675299597969797483439441971034615097375619950972653117709728505927379045685851440566255791402101315383439691830398692105229013962024260814654085333481153575744013328109618051108956236458630069694228908899045933892922035557858591772797381155383205818356236622344044686051030386277508666877969092629176575587270294904355208097544490595647330772942778408852603792639352642756324243004138571442149546392123952542328669636248541233269126367826169258970212088357947167899749749031906709627040136014646979244673608979937468816157541075723058405791987703784145588031973264299984842406260509731743805770398680482629716622020779752206228044497438131663062277926212111815677722734758139188571911221787047332303778598165424187231403400493972659859312579841201118827619341126157173788525384876689488878066740260606308621870462956497396845385376421001763551854629494116522752893948068080439089443203538673366196629078087930298147497196330892084060896145559816423575766515430261551129362190799609069262564476390647019824910547051345696028340012948643435775279765957123972450007110264590475091539164700698403575393111359817921565880819289731981927805593734150542822286696284742755821763961222291827016674491438879939162480175269077762382109422456462970292809290766301249582361441786435500861018955905985126635481948194797894735385417005048135271366243464184758417437108961366995439578652290402841226193927539826435058650327988267612493599939064869075744847795506224893647588455208514106686520674615676833692934062590864952663207038340803123030419184359869233638136062419215659048719285336692163378116919245476202181885868227843374064625921371491946921352686488848392084106733016593899387339181569861062078099690356058559968801837075895680677298080096099485458071638042152117382152128362545862353876689256837435002295012865616314782850729115113029547552570052127205781026262565376297206050385015310644773515543321885202379820559216738830657145842566317931176285309820793671013383931385588426594076828518116537626020947819911433845994926800241131554914222814338123189680509411086193627870519222275090967944790210082366816475214045012052754060809515550199555427639105512283364229001254549139042052303170674576243589503630380350261411564042168818204735332735902794471864140102044250189203360233438639357724471677799390596483150429219341863731913434197603555504095522919444219608201101168159513388343771007674950319433830549813337580262983348337614389138366594532568323425621194991377996948389078477336579437351229023227835805915742709576160919432541814175600662482754650204266439707677685952975868715675551849218539229824712805168677598809516445323809908959262353728453956798454410431298751621413703004965050111781266693758926654243003136575682321317381976046786229218569767273183787890391280762457864618926012372441677503323025489543824897615537741036775387527768201647990722707668211559895705494360431038040124504342743265748896436178723607309966855722227868289660935820591343995668230987669223476710854774958375833866159523063029493401716317323943235308851777351338537660899149171820227385908231938897626553315784953342414185172258934348268713429127890984180136089177449522913757891565377228471714210675560765711516536073828435939168494196468766756900169196710194657329690547598933902758465100458349122908756396473840601494173531880787463829357595725259476200573218484221467994571064284299681321376540943623219696867858334376683156957043447832236098253117107334766714565936577038173973803215360831083515694642052457010375800228470523993102574360771286120904647719257125476748006876514392592637167496996494594346196278611766778859158654001519969469966646172212602284436683897767008800398279315322092582223151569463258106640886132369719743272283990133519539944382405336419989608298689075988662247888653441871002022192952322384300937345173596292460288593599367827098272520081139700071981540094056763548318207060946190421844826320623415055558490200020562414401628328323786779576185203955017400175004110623807899698861048466861174658311970709267181346258722708527498836107842690978023142757644749287310627277505194878571684270757224568415145442822500976029453821130324475342512772684985141121107149991857470660667363082449463311906005665416505808031046090703727121493492182447800140973399639871830602604334265957215537422273924483923166670758329386845439301480982268201609710199170104782005675188516901005473987878719704927583751484223397643143480146431049878566502185487533849133017865123678455027617956633659309945715894404015761696579669581304083277594679072299904538053737506931837495941102288155563999268111155069628044145860466761465039851405151650945879126841363614504702570469215637517863090599132199938298768172557190838995925934444969954054388419209884027343902502222708738201727042851589539703459029729439508670540502822517904349828495656437052683215390953308470457022702905085235683300632780735250678396027730863851225522377346465767580259056118414379103046373903584806096412313512877563989596016050550787798363730582234593865359145149145908165143091002977843731885843865140452986225820038430917826643397856774585980634441371672911696079267739202704536225097716253653267235500401520202800356073473229261598790256292878897646633205116707604279378697552639364277599263830778509427988930245481382447816202734470948598668837991455955033952083198952316909180444522146113951732429911762016373132701228260149660377075182408425411174364572605275460860888056480237487321686648662804664672199245063754287766155783208639738401023873335209892801053629226778241086042261356624470439407140925145697465734400204255039621713536065851260220615893240744014625616856790763395590852914750837659632071714809035726994198204691094793829679449218838034223126002253213997291732313050013010414032975806526215722738756622508671735186619232062138945178135159485037920155931087381407582241395100395063525777335630004376449041061661327186419031175500114227412695907616360986919042388919386169150945124090665789618598599341329132654352592147168926786849967328138263240171920768569544888912332239112945830787773283473618360740146529355788103166797237150711858596001664558310914944751410733633912259033071691571997723888722024595086172228512270951190744215336511426177187960392359407108451620045761447743135510547108348982728899056620102161232160505420459283004332181869654825035987005379793985280293696911716986101663733873182865652553515583219299816827411248063271093626567953292276587132962380579354873600639755204794052353205541977709805036003615099714113624977011409998333711146085467658171630708243890372719563197623902824895295218954933101117033998242388734799754590549505704320084520169495805220661911142406881675897484972000471337551916975199701881027402603823081746746937025554171935100822968743347366894952693262684524355175571271929722703372090203927476848127286232311551211395395557870868065895850640643956065611025180887049756242913485890983765383023251018297275833626006485333169666391971633356836850344753057877217155731454922955350848035834671833655512505600272006305040109106681359715090978364244447784155800787357022013371527850292840208902593800374839827608964199031309373212338196659553009885583523206458671957743573398322722864784749043200122693422503156141082827575512211595265990526991146619436445721923628446695740389583701519178370351231794629823573759276370928735649294822008126180018484990051889915807255446345795471664740773167500498662264612173552488356500737448027002799997307899179176390926731550059321074234503992808852173101582579472109262755637251945810347952948090887210561482095834816539907845365085796641277159351968749182779904290352539672310675476733434453160798817301694842449450923111299711498112745943531908948516587821906045453794040059997903041357262755147971097679830495317631726605826895969525975451298385540033156515181733433143662280126590118189633100108534540604450747083348918467286524652497329971848510874305491736973204617544859692710564975684121489350522834905584321648912636073289561476768925693350141912518715888289944492731392642253355430183326913271673831048193373909141904716223869262722699172081645048135566185017361094963656484938530832941028276926228636492053834266971358770931825518221577868829841306014669717747276693132092469923547806899375505747834314234879630032814113790798774472145031852057496398637468778322565885251508488908834824335204124063895790226294442045653529717538014368423408099701831291655129491896327489026072770848986628494478802853885482268764752963756223862611087090195530923185285709936322862696815148794160559351380236496318043456662156949547893992082816889270680218345934762051332017925204092785029194393590695921979734192224351929097968482413351480048047824681176718776125699419293000994895332626261324537605292667277528535005768891415200803509886542314522074864948679440722524653963220035798375093680077206242845589856327162727120082828880255346404097254941853999792180635250971265957153936786196019653847803667841660121014195497010091599800361387392314543010845085166994414492037158430697124909707919380535683544935615338253180303504603363308992381344518384565796539079869170440471017044586632493592056247701953808980301465486118491175386737079997155391510592659619885175497806306138098376763905829875798436878173179020081642992018668748022229826411705967578092829623331787935806695432198698988283657082632285894301688553377792958237910101761740661671625681789271792355428414639307252906185217561478219440260922904016806919245506482006926024990616769162245753856334219162565314442924989899497313454060358408746674578994685890131836001161522201899791115738648394090339711877602506398354933930342428935593456372577251620558954871298473389254119628957603682598024989866452572797367287127171311918614200382558281346057339317208836090139443707224613800261331448582471132081218336700223373563456712550609891758161218617903652883918063386334307841709029340069814451012286040337952015743884484016276759711387974244226084612374420601155388926261354584157584791660398832585573034344010062289656833428949442696255022586606567309685271208196786180616035857493527305584279175623518666442801505513539866497137222300147139866817803454838132647449609300966445007987984013613995624982115854550732254684264753696182666645255603172814153516471305530082097367736096259115669574536086399404618101187257271604589108679167260049135005458401847848813864112194358344430321835011914717362728349771160449152060702588429263994291388387392413340734339713680617841523282285785555056566372825256513921946237065042224113723058871571591348975997454759235070619284526540506398341543090043003510575917388116890765420955856955684791960545807185163515745265874342580289340047826190781985043960714633490376171060294172924595054084599683110296285589477559428270607617105091491666245595819895778604022578695553977461529790128501767319673113150849095214640956927343295200158253736204176733109664472575056307492140450347076594795657849364885768085820330857556469147012873939360242154877258118722374545719739336953256531584676843191657997286986326276363234795161921105221663365411982081363405133079441220871938784714096306566533750180346525936179466361688304850040296133982158374321852863905516981686090095148083514370626356222179898210115265236276964728137462768693843867717419426318509611893394152416264979042610157751100727304644840814978089105692904118107792502608709112052187871808686819650257399015493871085464774724725672476279080053967136274159198272583812248020996648815594570504535238674819009950191060415771069574594917463150932173341868117200875697985114485184274321428744919379315018309256113946278895499459048850326647989491810353137529474298678201424628242197256322802278978299643930506298316127277605639156114124326117451358920507875583507220011952946296705503270518263788912571610667026530450041855200468273612679116683564540413678759127761956083156608641823725203889524651539212616934426469806064876353124809292195599027486448480890671293270294663920342961381889778342218004912126112626741972616424964424325376034924213402550667078411327082078017295846521714892993572022512105821497241768506683326023112231111362016427072943778379070621653712407954232405203223195895501104087512967142888030093302105232553193207886623597980082236233705378803029683538622179685302655455798432887926560645306311687579321786520814417164889466463810400801842645404123464627303627250683260141012471145166694359533372408910646398956886019932001413624451152934994771161075245607338163706301446770129080865179947803527563234280284196934359360866822594964670257258002096547513174153288702077153840456043593288142223879932432889529192113554400592895372260285903795129507336525613744650226354289149518045327890629457826604404498705719631033507371950655268437188221733118787637057200832996118344939118241903131128854054063230761374315783890420812771969275125565322531746538084402128665062240449808404601921504548318640670393622770153587968068440130721539185966787643359246647475395198822974314914058275245103696280112962114597142915685660810112846642197936040502193918695147331631460363986499297898746064656834399513225361365202905710131921761958469595041833268416474443006970765241313129111891659335269826739243971432742058397950781869070962219608200855969837104652647087134996122209629609063978283631520363342073962821335288354754549005624009944898471652393705521490168108718407253088253561574490740754809206241978105278442673176060197782220280862188231060380590465735791134478807062230395503845253696701778831509056950316033642391058662512544391724568115449214395301143903266932022663595540341353344725778330350999246050781577479006323321409498325875927180450188144125914567537264530004049360895267849681227272807458497419096066082079079637882367433338219112911085867549711393487369777847403105147910235902876098452358050671089896288827741714215522869753150019767548716688921265332422739356512939436983696587668476696576208583505854541813892429200972352423591243734341323141965597708443065452855509564280645189347678996359359285051810708110013122352338924822986389553795578199623210843679542237385314351408922454398832058190638515568707254798752250105342996880055709925897151422229405980416435517066957915838204128261876673765727137241679824997107936937372329874054539074409564702812661134756751250235110727012833198335730010393434996044891059110607779010404625330784099868218704911428578363106500338797252463913192695338498512533621538160397487443584881653908664065148122216617309558232840155485014490645767900258708675271976458316647050987121480038092469585112802501362280396116250467843594398540959976782836371891044682953925873042082066113487362241408809496509866227009887325581400565012963789558268823739316674488672692110824443269876496475110630541032154803276285189877217145075997418331227306907817155883640052640162801298830590594187407234091465030768095506871237975572228644464206295860825300699078498494294764956136313967479830772091424558040104835182203092816957533545667484457765606720109739361256024031767097549307700009770712881912431820202058291598010352762343849957912880801647962240345786599737957905114506943003308449184877427984290630864841723970063059717906998763873071211346007291072781830119101237784001229471647493676138920242755263291168331676378382210698727390301196985352762467057717198768745277478794905243906594956672392104560025495961616757311948034301517755304202437775103800372478784086131282727609151635087218623411652850345899663646742977265961862917131067512809149400267590747986239745424312644134241776726093976288245711573717448425216850472622692435455022366522059080201578065618537967576375473219428230683849114968927202068456863850747075239058903274995079180768830410526976277539353034196575153376972425304782417299398805991082690417497173213484772534017416268258316615279730274888963568283204049974319244157221988102601792815733096684416905577807030362796626616581114511714140495522994433590908585165755105980811838304881278191424563100738062443056742218246039807235873686014580329388700309037010678844134114423233818569082907393494517226464245816678072536811069704536553483201014394420987616915120912374094455635217266445584208838974295838726068992815563869735118566783810511342826642984649936749245658573178655487777673490764310356611687588536460420239758972924073433767850387721230072256184169526772029850228068716592239956709245280972993234433786039547510826981924668099280234686798342585819144809149052993421736827180302605862518187054929455892573203419643692408550673093643852455659050850456979567348394295726126099453238441834850748235217466675752046363353387493662361726928236439694687298228960056254141680216802299166491584895407471774427406286436380844505437093395162769144715269130915164045974367666492657509791475740939537479549170883419501251954177956178172402536599804208200469707791635911687591057892735352142986583670493861207422965152888809522519165103708081345162195011046448255867291123389399333214888848659508294214668437083764484765055594074846727531130885652533011458872336476228998962924259030752589330683337232650451685257640673799662513369843242132931451617970773557203734812890827538653042219487839056211995946997625776291009312345445645398643467414166292625218201686885126027104722622036040426438936834999177635975757208662783787893525381331287211591874613177617358435014338589987741069617030524508510920526619208353794396220020898916552418336964512648531823097851594385189503489503938457175846747802571114462687234139668682578486343424160520137558873831471414483729364027819764265676351125712082361885182516980781463216855602289421266198257821281065491777544109183630904220936056144026388915766719255896136365494591088274019589672489039097283044788387404754232135158669454376013582767445769264328168553818644066853458065635937566528985898182054139471900290058129814833073633723987819201767535684050652021606103447811955364785003926709723492876569227894381125046902787294427419913223678447393164831262713031830455922769918969593410551048047948360097816840079640828432458041767022674104123133690835107823181482275728547111898440787237159897219451558168563788254820143836449046869751321400048285703487588518751697810417391667055744416105413682515956809350500427765886191742428883757466794932188314205391183237187225032918654297216698802439507869022223505833471360641732754017044449293586330435969923336035571742726114656188175839727210373041600155089643255317101702864853034699309692734549903367552742932683737676488934403106911427770421573158291595822349329749056453695688897877511929235974704189294622347349599166373682281080656379704807765101998177616821174294034071703607545020442010319100382352766294556128385778283307668233370055957486199642731590941458913576025368809301907324303905497359934331185759563586555356817852713144173696612304299368320577763762453515487341135026053781984479637347770067933384507839432283736059347409113979028631201161363960741780945787625080583908074473486236722895809888280321603023723332070692843213577791320695806413143141946922182915219099610534743517301892020282835484153425695051010708347095995855855917724255779608885207161156253370495033223278970912293426991125994265701402663260531818040388688026135410869198490871353932007722041679429680169511160450166617366523039663541224576314588685620973670725750046139849100324748515015101155876194337015894671017585219110915486222206285997666293379369906616426721679806462321290629952536446536447223352208736870812717102974484833224875744523828835779389010994274592635577035706117346082595128124950842575770161776381800276632588820687832693226576873061414829739727230195811887489735024812493089678729273611237588371758270118294557647889382100108746803362699015457369055603287369818741296346761854791180739779859550387080515148460115922365403656404475447726137229177960322667097214783045215582014465520054501925799629731252294855316257109414053328470324407808170043888989049405976918610462678181672369405027726120685711075080978572813716961745541954060204726659332952782130967839022901244840400434549712469453309047303102997029960682202113312914505052737551245054733493367898384569758771254885335233799946065392116324465406684768685982179305405205504548299263489236595265149311656154595043706153922229713253495178078010233510802638232307279924276106733024681628494461398962955583308799005431766760817786935008270385211913113356193881111421158471439918070880826235865799828110247812641305170212403469797412782461311425259771216209533710133490718404248621261872494019779198638875631372831698845488134050047217350677672158393101819365161362604181460710718473767404429242237834495129620115678948041206674037474499463160582381602059805241787210737348818813289203539513754261012333919191179811478833089306237589277585455948482446262841398160371835395880386960593447057744113565758451934987471594497006357136364626565633390399581864150337653303144176713710953603622081760535309954779810783427582318736054616124376872963414520384354454262874285305559456255807908634224423233662691835837926555545598200387608976133741939277292119711585684273909049900222688321595195980799003263813764151088638117635100054899308130384262886606280136828468268930442017524724543717925818686633473253884487232927376154016893949871299490217027436929811691337914417099518766927734391268445681163353253700474462358916052022312974720606189719254562334521173418967536158418698071422615446468231393774999132122202085284861399494026016536469336189507626733215794830882327834389563437516144692689819826211678844378221963153110832909149460220317885206869686306791483473301859631561875112294245000838088275523579641869892515278387691096583267040728479870357480552552138739243148882309182007819788279187091454188471739223389969960495654043301736229797730031159716425688641810420241761812028638106862665377502394980404663040133319714954005176756243907063010807767253204681232391313258326541807524916350488414242969971436304263582433754006655129713782995435539677858417106784792415085117164067273382111978366744411744258683848124231122378097962635138743423648667975610024005543332216801220822360038820969524314051911165595448072518037199094941514846107094485753308456995747658994192787708338986788652738111810468676914351614433130051981997241089573624614752211408917166009021825004900884611443639996217838200098891118228733276896293300539396885262477386748900967445296564118142210337086158155368219663775976682012512302905003786565688504503651981238356194294495841360943805757877155178022821861998832906217864854437379152840385328852992949393979366557331634283643464734742727023997998656937573257330795971257897075583722415113296583303488793757742849419031915355786478341797546124182589027827574170519509709308058836051162030489544830026835375719445320207783193929638755098512311770039613573403189236055563606683290087339468781618288993968167261629891514930098232517544582781074912462708615195616406276769304174957485731380467845702573875064802588826567807313262890981692208594862814812400434388694605467931087299955678932860560202412624678612870187248402746201752873600439826066157784868111470153129785749573246684721791724152458178667670890547424535637702625687089447118825976424843608106473125056719831845169053670875776509250083453829776625025938875397825583794922819064208787405604613795794033462563573764589242203378287951595005237455423487947300580021143148306128978326536619915973163110965591196357834798969217943889056772559437645590131668501256321016976665968687369845105261703649206149133665676930574452140832604056931839653783413124350986876735841581091560240495106109681308141550473507704046782621265928007255675142928352657893988507564795275073386802679416769514661860686063846515409922833095853783047826631233649958703718620200415866092700626383176264633423360756359038626261406993455353215551234484662218737952207669904578757757708415963792290379932027492403757982227250614517686950662411587687095511268350015837603355232240912188715654059426086632648272668872233858207825366443317904478406584704827894961352780036868705010497915865488201675728397052029032142170044413154959982249901801635295939058868210141505606420785606745502682631620864642038199236821716577928502618528969474192305340296441123976353615586836721457001956794710215260341210641183622393769015389886827075523943041021487572082545741450647918900584111975848492861067732265479659319937954036877505720614229767708731559402707095056858550171499403831801570960126114426208348077504810527702450920179843768619495276870071022437601850589629493159394995654743640641566085196883589922241283945707641543152633374605081470225854720090356427417935760575372007969555364867203921239370196761599495667788237309875155611656934608908908364707923968283292356141001586017638347410882918655327960758069770205591697704640119542102255591526092078627885856810561163350788058568503135723619554100362263852389455758865590229389313209709530025576123966613525366515855270025728159355862330187296662792167141334056232196629838426734997097386537736893853750134564301287615778746409241321979222422017754364222145174009633676881899942993256266641598709616937736927031595847441697685034211520988469174481082032241972135519438460717603064104130760037575385736622825993490335481709956028780563813108527674139296451533172404735905256132345285076834145610282867343497029261313205018998807094933629254675017706343607804299810377153022901462981145488162731390518016427092773298077797583084112258772647219673446497404770626908514795243779737269158531425508552892134902578834705828310222898840789963227397718887056968537960349933424675925545338211858128924218603181863087251905978704571713566874511736457436131399987906956665356057272273665377770800547679965650653064748372839362612162072379166542451852653509354165847480568445613549502881262185583649883805781878950471953666356665129577953261522481284867913324434998504136327823101697499181799931533396963683455400088918478512366381814547672953057794782658553681829559357532841034104294958178705915030294186959015389841340468795511473615288973581060451621250579174800706556413203314893770160557291233103481542257201477471125770879349578480090218844222140261002530889511777770923956126614074346018397773520733638154929338937172633603777347902071387874826615673958075154909521233564856220494226523092010869981730471448843518778565867634449620458924062092225335858897895640093028437119603441965952219214828847771152766497926997214678558308159178311927496243047450245163211321344014887960738717352871201673767179626636261519346529548973592913920007282933753318827734153759899092704721751420614115487352750334436027661653798787203036017356681147964419972913128967987118048459811450231527274615447701497263024992135604439659395225765719756985271381257052462432673841428274345190412404275137447626253797118341055316551281727201008241572876213014123728662165226138976195735614007507370722602663652420361702786338513783021229540564467694085801026558139117570376758165932015018163683029457376531643078114038274149909208594658957590040816143094410582179608358102446439158256434210341941619047619061836044010481117420691752660106007847408334909206838566089028812472949727346928480232444521148563256924225758876891504914157621154988511532473111236115778152042653194509924133830589013385954537834162487999853097721594028443821704148346952718111582623439169849482459593732537966609255858171495960600951758519934808798419080862736842437720776760604186790455671716308243935700912592159273638887199178323404443599176665820962902971977605401839405428923570382393327864440517318098947303668109056258261354017287162484162687041738418392337645130118990121558979226194453037017432380931773692255054104584700099498257046144430862541617647466720790689143141353341442199823228931291910116821634578068430358324823822048820562463983081984297201681648766297377574631175235896319541298259624928501714237591261604159193312822448880364543398999879701550752453036330092631304361813051661037318643168281170482304078430044339728946488005613637085994739738407975929830065002467312422189570727110547662680533842562532264013736322048040577806203092620842649836779848668483396583175573255159844945629173252989068103741949977971883998263057010803657636333430196260440916475936448746150468048016875512834333376383895766679994520011412340232536004645946665938573354926744857617700663396066124842650920780485742769441858594240542164055674286715146348830495562520308219292421545608273257783685071715842704500223871766605257548695683721924108766081187429706772950297476097377447745629534527729409752941269105852850152071458462373199467632121821797001361325682605121878931530894163759499985486360500340860945886532315186401080341379547415298090998800931176399781117387346522568188284276889199841140375870160056410945239314351185652707096988818063292603620270385418443388996863416219287733891505271401956845600576472203209738311212390216329698263888445601579931500545421475017053609620370736752720096285606725096103199100501602488586748704777746203382844874535004211649795428653415239216536835361032255144084250309496045297391006690489205761477769237441868616398008211435292684006151802659485049686154020701225747960322609044556178713045623083457888344136831492017224205884538614952089858048441830701824912007620314749057012242658842444752633112440210082685170384185185915686470625453773377257168921035981613883303012874127657815043756713017870401161528662190395649500300105029004491721367483801132846358655082169756850603254068991765948046595650898168498055304525496231023093085656392683857717424694471290520312858213282963512469785925315643255937024508865845643478072444491798753011701321357569399721766229444379922030666103095720868041064700423774536043568317268316610747074537680601167883106606289227821250449946783739480285229208137878386690794594899747279780836447557805871172554392044139115410443394242613155194894773934949989882502735821536161778100285049449536286473919552429395726465581473184598644407977552690145715633616771172921154539764475522866730220532635652679731660093541153495235878844458189993769816702996794886208851036506422443148523784996533564562554777281785315110653391777553241723979379637394524418898845159214372280403867037340120056504020587079341906332584120122934442652030689901794563323301571197347266296202684112349452850570185964366278325079718923322547974845333956578432832438484762351906251895920662669971515627320381093136819689675494139601309123991971998183407151070932143133931657150264180604607910334011942248387441807915693651548751648765287714430159916297025712185236699674163848815205209291641133550375486041690318187157287772907286886671253635850723140568950623623624602253257552616372190794885221305881739256229340206743787077929487402143148547095700195666115586253421612001290170203713956437539653538731232666161851592930845563245537596898915920086309249655477891573707252662241383935433896644055586855016257144871373434967299254107906663654939570009638994598212324384418045546289958677797764337687332725927515793165959225371305702890379494777907969235132111810027615523142851266665030326627052631386765268248021733529637252120692073789468867252250797741786558989345783376146817134373996938057758338262995187640019460633245251618207041119551071560741307526747932636069115361912649283836359615802751887131980849724777905498821549330050113066669781754022430264958938467843123551492547907165893555277083255746460373621543022739020747279538614459414081944645968281366758516514438311793838229785715530488767950299022616020540928631610373936097982123278265591252214865825874993506238226872861339461580707624594852311646081915262572626832691773358317902415892398207099090630510000362785475302926628975362415810848362815771682646488100662655786218490786250644653722135131538727596822101824607013139228662408289488292971178239408131046438783275723184022341000198313523703141167289241450674980468885293783756100404687705477111711722751782690567924530168251292312391757302572773351002257189818771746784806555156779266911953878716579921714458231479164406249053286458387902640909956112832762091988229334584653650846485120844448161575160078751991266092156321410190393817821328571502069187525677256151099777804187202242918513641522887468944084315251174569602999266135444047265806482000939661288635952218360381381863559533566903611295581164413676464682085437176518959075790775709011564761451064603590879958097171548933453899888187502196531945654983838931352631871446751942248969421733939632496158937079144281399420783407599629532018523200785886711572991693580180169478382053507891826661192277631269661027275643773946582751112557928096138764993679857676156256902690195581761611306621726788829879242753218627518764445979181667311646313242077652022313666934904229970453850890309620398158911415563787583046426825688600828253626200261441117878731404463506376661694429752848446790916892108826987943575842388058284300131485158734449066015758122014288028448892304113950565422478574683579911513073270710711609043633375533974668685891039668879261534097325829508679520035028960539190110587303585002128429774489064965034093724629894552536227725203138653178057557362067832900018763575859969160132597955630315112277483533073827035087393403344687927800251958316375902876508897389785325148782718915488188948985157054061199441493690221121577149579518641578234927073126168896164145858134318333129033863511306713299835986723872138190157347041349900849114276381189157170105526638867790244257910771554451378523868643481955438234030362225416080360506656760486908471218978407196084651210378381874047968390209527676092672231189526830345924564663661238838616694751829376597255081871408173954047776038801428772624959939891718075322144831192237561864830525536206595608303324327444705086997234535436929918312069710437929347774604443603268190324458767651832579464712155281227602574578570291880461341164561481778992042032911778100468788983138162744160331529281199924618766913438685512205081253708826253227283028815420761622314962744385455390030671890786695043440628139316311639756405566633849735146299259805942948561467045548519047747746637522236102071092701530326372120063644034365306361506436088354489717908437511991973745410295744494728239623406398106050628745973403664992319005928536092277009678179826954417349464848950289026334589499056502226605104976628984528968787741876948535696184834337804499497949814534630057664325128199448689496336816832027650191469918078923932515644483842353355544465863622088503224104730650186682869025549500448980338675899975154012036017038029570517221507227322726397323804814255801261641305451302716727228206834845805413550964309761390103442476636128416645335262047788317662582488317393194145793355448279071705347172813687578646849602016006175804964835482247847855069341569656494423609212390800223602872569305885073936541212175648527733038012976909733362856670625526945878974799771909757742168823724850096495356110280901306829388660781615550033679623782317709496988386302643710017440768046899569320005886029767301942255828929503902414625732418791020459462111820320602976340097275229844375532358294627210632845435141927527872896376075772562343469014814908010312261536477185362957686732302740292241766218827858552047812617430553459196172577524852730774892099984424403606531582899700876004763552949806400576475880275575575177748187892989111762732242542840473482371754352928794812668919899027349037509116813523942608204093734087174325882550993098298889253797941370745092432207867793726423108042923434586930636483783777479333736217742664266043705084063036427750601464602180404011594568978114748562051767905220741570426695025292826669094618751718924110231677791947423497362466701346111542189186346326889472016097389212815598054499203313343486704198426552294951204781155366300227004007773675347967044246809411323937582554636735400409652964832080159048614060793640198443139026449307815807069697713852243053233907020905894217237326799829209511540254845562285485545127597184888875848420862538799784237566862755405239167563129120426630390772456476904159635601106859189349017962726190902411913426937353957774487697568287360528943498234424542620612159152507974523184132919015253068398832977467680139906585917313233906244359437701331264900542758376406407334122889013131131952149627512767810812835339688877040723305937434468669426960861571334835725072656739042374096838774146105742865365919943033933472021169756940967963755137236572895171436742048549790549116363476113313519037356123809487792077076482942324351588707323152856301666682091482855816700707410535928030723707455206784943937707428126506115471507660525349366405244258515944802437672084092310926430906236265508917213283887911762941516422421162195376142139898454815491464318135188466701458329290163665969163882478863738671055677030341236477189726395101868268049395487427337751103594849481861287709841946653899813743540530117884855561428946131267186464027744720258931799583772276276249356532202164138808530554392709341726270424992619856453575464746307566291658260565886274337571740120997841938258779001939769362005757064851981003360507081108978111687709796906898189475691385875588694735176840813759000667383214352769063639042029859427966045408155901176467432832907276960607219123221435049601896982394472894930377549103254490807637321404283437376732372640562819777466795225198233758128867557016202640997224205552253120466616786919330451744879986225914930697720911347155415029053127991922868556587218851276252817543222720042564756549568385996880234894966790816537056638554982995861066876476567899727177359096089954667481388215479573106558835517956391210725661642701990188517167072565565270580641388593946188543642616932498339332698920567015905280179181415408950240370199119080373293081064159853785585696211947086381518394472238834835561952167061813777222847636991224534176335693454959208853707053676558537515297352404066075453484172229476181052718466275573848825833941640274941131712325035680152081980592054555811657011121712473310966715427376112061448712851907615934918016471093307336576326082900631787260301002591004316684321624707264832509549600328944085592986746444922225803636074065088730773680154335753839387671765700915296840790972298081277469045118929584469477565452544745946468221897764429319154139994080773475517015560210388819394653621831920576339178238613458205984542498249171015328658095343821548550778194172587146846101282003886058550004577953940152545985877511916900597511630207353262580729648707187251202328222172596858508829127787823801037067981474725608497902450347403428114619917646175784725362270741594831122602388051907799999099341490642072990666715997749552420313064712436926705888883147043325573027081529884081703187698049478234541318275387277812362000844294098744178841132261029678143960029613485885431221600859760222699961168620717543970367599744273904978453087595565169062336013972576857361347075955560258658487024234756951532339019867404697935880153475535303069372099616118816051608922284650146009341909530596626175207428485984244092009159674965079439681170207705728719774046973329792089053752825481664490260179514113813819627255628743869259311693096713304683422083770443306613506630760667924846558193162231755387272390431312766690605378231227976989639281145002648178210335223901938851460191525870249322781182825633964378111563769510522376328201442449999050202438551112084175881990521572259986240652355699340505222965001520030974163818595566695515651264466602785759660130322367593521753403241377728705533168242839871733551572957952142480909158642252724576463160227285663468875873617096250526307802160737155775099300096269583843148702986813348969473083047989346647487522737443204210485813180638652433819651951187610985924446239076610791178010737689959770754630154040132913615432484811146445326410560354027502968630760160926206193092235354928635430618783647063617756933232085797687328886848946559144451285381106175732996151471038406949111813444849764484992337726808123612230337260969838863867849371544120059449673658858420040014834388969251025855874159265509856169006049094001383721478545040356796587806807992418319291234615098847694188775514645525439619528140419046301926867568834025303146253774129185801944253536559861281437407008207817722077762270482553187509772674762618688503669732380943876612228882301887892303047472104629461901892786330419792310094686640410212716294884809788713987564877882765209604501088495353322881605641466602808942602001134189114122475169604773848263852549298267736517471603709863490097318816284874932302127385893363253742284506946348936932714697004325245497437704000862400469182535779604141373838293610728803756681762745319118915318039511310700122207033342490517699270099664788095943836441729088586944080773080286440618557492331157031924504956132510396874753434950130169035397995765779979025048371075068495508853155640040419210200577393989734661291146039983648551648772096595789447633843823432540771456795787825235396634440305345685668376269036387231593112276193522621276539631294803173823466954819264693596451216006624720635602775927839673599221698220397301323174081898072418906853840409451782853729136007068524764195175493519356812336771083784858799498396666561848401950162649821353084513304042011328723911980111388057457297829913608986452162854952007894679859143172725123352154034973195326902230906480545414715822907311806433946923543529948082359084360637278666281793073585238545161447234053680864005460158623833362922873718384608717365457088596760162463812584330980711981872379376846894372685650724011882569921527484021052602229480129043231903675405067802362444657882520910550036808022585341656298595902472080188941859833501363810635403417885676848816586541850099462402159477916972134506165706385022154651838798873896542075672118656832766328052830550378366371425982892457779858135925099474045573781358850433267878707187772847604639597914663629628331149035642821079245264713317127967737639684667034762511609472752195625827971354461560271812467974025900758846100833931829650954101097417141996417030374096066749621778393227781978840589827394013105797946602508361236698111597205886661809936130781256644763190005501599045708574669693743488893997995477003302811241672448629084983197863709594543981308389046550433069196913877642305843831863517017794724432140478777085575210000990260890994929583179848145351712948653881569115065592670019920081955233858594884761894935874425496030991555751890223084890676861718569262385352422942484330884021232286785268190335057958198015558375474934781958319828130139372086370655005920619109252763125168947271312696170022601494978054741730625743201627297388357929206602350225509920865092211261318168613734374633417591681765976951283466975721890257891396730191475259137686889406922608328009202348768438861160079611232553408349523295635791722655074631957640057632611284245665642900587030384510876836258824809149376688132944021529273619647054012273423856623234888127700322837888210267427357807063416553897077343890589106738989772202385532885207117931469966976033121364342149289710224133373598872495480940727993964611721056343370887206983087514358967460697452954351999853840577227447370739123431166211452139993869203127696421251003307310427318000901760385745613701063912476082064867282646345023971928779069620715808173341762719606274071421857578206435693848416355093863327379600654283453510511071477121188938433671387047491967807094388735066515058996393833673603115477638585639937788477116408121285875426776779777724966614521265789422166777145639987233307556448744942577941472669754729528040525808282470990907463036349852130352792614508743565165214858807510137703426276600654143715542023418432688138670447322258949724450194167089563998093018811068549295282744564327819538551606161789407220653391995394486375714299639316336530261713234760562223645589100039056836043219973900359077324115954580972713695122017457152160208929725976103007540192789257024967264441899888113436031308435363630445632705252377440919913788420802547820086265838975245716315077435631103045017412892043956695912864693118495008049769534920238297692076331846546933105235374174593864065704308344641049877646152686644874359413510768851123085010302955910087560634729443863767371947922157019715026044380850246969646241812701458548968838737958440101314321439450351989136260006965560782907234254372505755344294254512227205736234303894259234374756256811255724393768035171078962635884942622817055653244780074858024364730568621459648733556426686504362047023674390719439563088887034703068118789804829720092099992563602368706247417926446513532626343415103906389720221732133642919266834671008273996009671169341142428240033655734404650073887600428544434501786744219339668044784141934643957635791389269376405609014190482654367356496803405906666898732587472349762933359480902848434071578635509667892750504735082026623638072477374415125053949686416039341958807642393161387400537862172510652019777424271823205055684615450867375489851696021532625665955080417559704052232793405263145344710633615138387218774356595232034083709362410459536739132954145934018047867725186649797398602796622458830866150984122247827422133028236968643597043336110516241118482318585623118894333191757580077628138036589152139422624833250471342114733562696923967141077077634056404315929106523879979329837146897473115768161773242272879326018494274012815799728545157597523213148177530453067692965684732844197510279325711449831789542616377595115832973217269563054159596284547310855158499305402973056743453073777255520804071688204927186164439614156063042327464769163268608737085301410527519317071251921293150903030207602724973461627914644447902870991925373950102708244759626567307799258111423322410213653932542231420320120702617580847099450491430081412565011941805451772057187535410795811095916306158429499268742556878101877916850923039136338291538033991200145608495941261783915241702178038152529210796216735354479320589920671024418509805682215549180727062023936345163130157457879290910718403992036457363033649761934510069784410186284430656209795598956974324667273337646090421295923368283363085521877447315933610206903105558524298356323304390634461476889051773085950603156468657787398734672196414091442754914490502867971804466332176055212479818531023391396797251563754740919824811182214850496270002520553086796725378938031434510122210803389927273226178758343832807535751188444912429740727651691122196888316622818252151097399747568039263763038309505751829186138489242898052395776940560688010248460633159950872905390730708217256553176328941987549185300348162792487839991745328597262295415179696437274125702028071629138560140028146403389061401991533380449918592721952541712757954897287164440985944976305609948984870367244942253154551806150046133317578239294700598181174800916564199872937260520786645826314419002095289976057033191146476597992549049953696990246169325595315033734034419575783189554582954344257835661788711513512916980397583796693999423491005079121174635172903330319763987435923673884911547162549717567531058439440092927318019906287834779942517239342745670357583232343169477841947999013701255437135944462883517179452262587149069734042272824890458557359442394457907768492217604316093352878026377213952744657708994692073143991483005568369729335409644424429529806782868219913721495454213078882995115444685041489634346418063245855201678046594991961861637442740707787654144477785622879641485263360730421678709809024652966969993214508295596844179369630069986787242423511806172249051324045459133360036465746580125987404130103373032947249796415922721181532785685367824270648144374054845202885994740794216032346410254489977002894360327506418041386561875565881579583898865355195979697174694659856946899175001789885229267185165964734169297522764578628960108604696613374860988922145005500801346253922132502143414927601879727765427617466859895600564489454344824872383665891693871111964670316668984127990206419002983248445937340112487641345425413571434482838252127303867441975355398360694071422294841252323756984223488412252085459642247980288992841098092974165229363498959056641193541264831305547592870557378148861093313496061675504808837582403836041503541995595350159448007490468586491678321007447695719655299249187461379263962769363663829279509374770552833824817452653861769483675641411877677671411676075593065515801051738010913004641336813008213522816130389620476825140688002130049791589556711175328838974724643163065396186451834240917984352381271624519610791846129333690982467555401002902277612230640146601139237005472580030415684957890315837349300869001613743563453441664859064050616739716953257361608535293687783378629207192544615151845647090320261994902480114377186148187304705522953021075807377250332130461608965337334221979535767366234713802994115450414406933690169367058179308836955719979158391969775712076427951153999406941986963751056830639736076543914506700858984757101790052985781278750373113080226866551223443407969163281970574869233474877342298850752767612864489157101569964908160827415346708540671262695315687714117914054981490591915384861369236931778890765857202716839935907368928702936770843851222650647719596740421642495860079272187829088133136734255768746108360514360609785939121461093981033427833452929297623165212602780253598374757884293371028144069948063984919547469989203714036030823880028425499057864604905914558524390294641257457453515848781737886466927088274033984066379382129852395639290635727872625730357663083071288773333983355580876551364237590144784962021670012162986170934395868740772547992053807282584783873322595782083042250638729050568809647564869934704412035488558191296785792168250836194254664667006744441439195993481857357842982961394786371162123035292317263121315366140862883119896908138562932756056146970070111574995019877944989312368272636856508944772920117070951842525986434773023170126990276762466349017131049173621169973449593431430749327550912268486346804472653480079782783922838212847278760061592604050746556357448514962057593165863908152563710167348432750536424042767627222452454014554943441633103166830994260022992176408831586022417127903450419724686925282456562461976919462582164250728884080729179750645654667071534908718671680760002171116556968145945333030924054335666531793888156115069610177014829454072927454816217333275281863446189895037585275382089823790711806700910710553818771849715780415956964766135120749203779298968135903811192256709939176884531048096462020976135640906377611693035525679520130186359164073685709308791996329308903672489591742049603409605896470210936928065837332299158567638570676972474713626398555397295073879360769559991990994105158039016379046426336706011141157412078165672562143772091494431843253773240753945026318180077481523412515916472326628754681425120765177143174454684098196265613877664912715566037725760931461069289793343387363699176526567651745802636459487851966722368877136042844335199397246696297378254765511594542544789590512362959925541170058567562050129484628054777123437942851568901264946163057618522793355943232846487848103425759482165690931725722997501165604604654048787441754259803937622744200583014550731538916634543763536101589316639476641106324666248597576888490085106580588200895458470538083441327399781469236751961684386608481181607179370538623175726335422797374861168878487153509927593045420068386721190454203476665661671730824844591645546167254727872503574440315981535539251322260823211414051570598876039865585326984768949719694309780896100592121134749904126668310471540613961101124884118329150125214445328382322108658335960304375694956520356368203740619079727829118057508689267302708879485283966773714506307906314546796901385733123857265067700668825089470377122911001232254162689731151326612462398656581106057680119174230367344091067538857611378260700233085511689706697301835097599889612963974829710356677959911457865092906817492753892427645436123097193307477850029222799777041349108645825792335673280622511052383714853613626759934875663662094442754099458288394658120874779959630872801007474130296075988092963534420852183318340798065310460502025544295673050506864142968644501624059701366284031965075646427720061983507578774300974321899807796250079378650916956710864928883459294922056123640963099356068439808179937310144984515419105221779802071277166175572504865861748005627906522132841779633216667653526666937776161410664176052289092007501548563318631357924619729701586487380899728757408283381018232132607371842119449318177453453522821440856953428294158182269583011550041297626386031186831981123952898246292323144426591712986804753386696660267577328364558972265068064670805149354602243767834151214993507461627845379721093596857375672493238470690042636044282472025420396756230695073166198104442664134377166436037435537717900720975443647304433778807178117918718802869062292241814983037268228661032191407290998462774172473838450602339824956833360746428763924621333791680424358967776036105841997851908328527845266018936174609446262929317208086620471581892792355107629343820511335290256907156444351836751567241065873057242442566042203613097568376414991996324539542759302463682829431968980348429121609408166440443400838483130445878633799327019446416997684630901065973480727604847441610454039693352398870037390995573555281282964173387621621025399750831239099225572999810300599902202140610698844480232940310660365624620576944304867842266807786204413370283869619417243855594423257276510464201058159463806194930383596705682955188938500145037668324839469116102721684292336959586385387759836112721684890477557871620591244744640352853372260099770337033090487823339144930505970388407788579605849705361375628974392607185157540668044698827974894555999017786999254803624077027556142572007718870162465820714160668685138936395899588973724496755422703620209496020243241332382155577489010167235803504516107075131739305440036384141168042612781797763944140022934453812343130733904593616887355822391550360152624419451121274793646364236809934580207517509363398045528015052157732409479682061151188623302382310631099377360362005626824885451652260566833603948136655154298297882864162327796924464445158633594301470010838100525327147825883473311786185591448902937520637734069162303157805382740441168848038172293207871168758616655049811454504113570515418703380352990506336353511274142392572707400376909320233424474405718198750527663766233923684654724798601793626129325048674602480949657717550739010790673987418728499039035150091630660256183860993536665383482788763305003401585307144530918015706039139723754141946295395467960205879635323178719795019062745776005753853381209159660289980192913035696158228801456533916155549482591293548772925698980328351683348064381060978360778044141517254338750802148803024040374508002284849027178258535637498508712638009287479907734659209734266053076212020106165589026852582981959930841914906818355541058164778134333427396499266674987675191595322231844248476531673114155449841395672685888411013674610301528465885346661809073046293719511729320043755545122231567286320524950600863255801432461828373037656142024208788376465720672498012568056051728151648329172180046270631151337217013109495189769806146614154111440892496847763838704701244174597800405537527435612760889670241792782940135264998911621238876846376441156472441888032739500739330649708540511556081695088124154358682060750153668985019879975468786297936767884232378319751550566391095774861946318811226022433994166071343069586652205142423235773525361147448881989352571097023506179175443276280976498485032772824383940637001549748900328520056570540054122147552502983990789994833870154656237885091236000303260123660436784445357992702660850112832665368959126418167411183675582697615303319942550584248447322535291592645878617254478477591403714026492159731933977488861966474354657317177867149164303187400860777659646603402976324856007832337140069889694854791132540354230915357217680690776982119357982509275715307894359327310179207070268696559880597025528720393156880341923553563001440870072626856946142832319942583030581113802482200862010862301108230976912951410698353587298872034764736773690834912504352653853414531866731744154358000976643963292903802967684682558137207303321798842191355624669229233751931975775382154828776718086950681981742987048217276272502154252054045111099874455587932836790585832721185509654777148599055798356997408632456262186018810294199740392115947502175861605319321215390802104440781464384214686350272068054088689925017607382886639089764899647104415354662119069146299541330206186915477776154881692096313832702900676091765752955134571131996675434070091592985366062273199625741755693023618393300244725190493883354254436359661678922350848316089041359285674979694134472817948716806296766709530936291424724928508407228741429213735072592355735329960950565212741586555341514649203487777107721031583285373025043170384876948173558675732279234684046926186985767878321926666709598619962385508459912040723657910182101088446477512100432805206822591491423630363616798160849054601994407726353091306162983574092119833127093893806832116235070893912616471736144878726718254278770274375114304620837024407685473145601340682845313862039580372913348155132502772373052137285077684965537538164753937146403467403743036766330285565058390294653498696784445082539714196709125878388346364808562254586604468511947116752804299049648447721266276396359240754977105218643072094546821633561833471825256519259953039743322209894982545114238339283919473199808309475444535937386430854641307980092783198121862114185366394350287667209055385071423739539496238414106413197761403397232949141555980068630255803904938185327532615108925343264273392986323838066639680150828886518370720639980008841732845897206180660709722634676634425921603597827423957410625627932937071222948776027289306276554405649598643273507830859788559609105973600670465587953041401585057513426522010472080326490763859663003884659454717782579196521172503650178725037801828037848056456472372208157696575113348209667917667993741637768292848089182472502242413522413928326766040217721013559098125256087537230069387701076933076911139159287612957650197080789562040477250911442722619497361994047165625910405501646179790782956895193352513943105165390499347117051531636670893987123941255333230024205352870140625330744590485049216331715889813469117069452897665041842487590920043155763377392364274216060204465380193567311916971431340183723624620781031830844401244830459033115861085086224126502997067928833802027391281052357444357719642860913527858677350956239390601357930687819629890067802874992896886363104194960185928515198961025306383579286343739623323867838132238792767014004892487595031920048915300883797485503230124913381369366479789887931131812325647204118265087167158922666074274682059884131110631609198109103861902443296681193292598329892353133883959877407770529929001486383719322585881424977733454950313574489374362770161962670377451055297962492632795379011527032138577573823956591500233281543788203505713366453160565508556844472603708157613673148793887585736146119029353423163632477022368441346356158039912981130474645026621543081859829805745223375671247178823195501854361760152391157748607259381276493036354234614916202013275216157504590475125757871421994835152004664090569208120966900595563029311797284660878943237774333466985307086890137862909858470630810295522486882386326806862611524856377520039078163547440542413327987715582476815126121186112263464693956876651806967746770897913198451547033682965744082836744973859416114029663059099277061940651120537273604434151753533321224262320297902680484236046040171376192017056738106838287297894158542074068353718178727300999463503010008318193733909599646165726129848590847646223213401048577105992433358775548466042499584550130865265755010645959935295385707311568321358953500311261966287072674992901334811562613076083190191379417208931108488131697482456642848581846853716328039724855469956520255244301581566491585231346725688987435956306368559696025222148149715755644254934220079603469044758034141255411111757932628558363912905374657770774894228166792311591724135233935302161627165310609351827384220757139332253244188180807333558481195293973014069949724285790483500388860361047883375194833992563986892095061880281495763135386610587240872233287087980058838231532585848449311637595349483505725493049269668463953895691873125034170201481454169740445154834239787615859553394727097655397525610508328189594364635225808271242253619692953403779538424487543068855385781022557026640705283488000709127818891345979616254612954228945371365815403237626064836077821947434485563476465387114875985492759848572199743195261652220607525210170005191494050251775949679149440558298151165699402269631087610813032893138193010210567740874772990666891829538823996407098921776494206101893315391747483045632287160018300144570200249608694169020186910185874727412842246627135840844136306599140812125304546130374694714534598078638039068475400512943601315014057928457548323783300390180523484679461105841824525301635080104915116743407255346516674627454173157315964750019263558259023821344523870087199696935458006567203864432229240923234597982092378622039803789606502757289039998243229870155793143402208992567801338815555276178696127517582494848126070021552099683561667173027815424577218183991966274133451422364885951354389756560703357899861598108091344835746516250107328243843730965136011171167671115686557844342591855110227665486571648106283289374958200694987173250275959188171123048239869542079050257128207758542749512315346851396300767992518679171268044526496313721755128843923562805507865897396897291807760647319714761657892408033969640733183668583797240333021211443538297061175706554252318171728191994419721158515621075767976271088618731473998183364800631231987483009410005759600006533838078085462673740250742466940588329252797624057761262939571405871084643738034428020795038912266186168159541316162951599932234998214077069010340497725752255415575069478951417269856549486328614359313468712911083483618023102497998366568979682369027369479075806260603050560122504153995204149857946736683242246459882115645871536853196263826564450209250133840377938270133133227287747022716473044115628743276901085747912726247601328421506594421920111933267156483629046013438940888987081848408262716418859483862652981297445095194092342929312159385007715461251426543453850461120475943938989395270562762559950888794212188370758291380915984406901469302814083432913309059073636641396767604321726826795871681962482118014759840152775400653347773707820525077136289573807943036911480395067073157654879791382510803861308331721634693450466093184568310801862626660360674651664550883203539382089639091168872261557283563719432514000929533940615565833700907954726553874743968953568417900648089953291600150881846412952011815947967645598800746436087668676746854339264977125747061310328832704402747907906041905015856029004612033231712180494233899624270320764942483412130806684670974557319560184759579957127759035499861664464559986165702097972445342497036567951792493604533132506219406849999552897113389869010563822747757293411185161292288750497175837819485347009984685097236280888457626885378817809971394088153655383447129828334065879975415141691739202499715313794474432777386176784961454264838785270031639772797416219429530265805467341950363436760535205381650620022870637519641385737471421566272250936296289896322719025208160570186238151896993613002189121043704373399879406410885921571635718441590055778787612568468782956114581039610648434786132549161813098779216071140447541586672806636757865087717525600177207796877007930888927938313878903269637587510313944618232946770129451107022246699138688157160304697767941258710465096813056635329581568013808374484322413873104585955763676670156506932297888981138602182168670817905210789902232622486214987859229844730426201717768239725167692765860077756046192842198348983708482351580636519468960080508891615299987857215614645508885810720165212470266140553648460325948527909432056577324402350719584294397992578640997043464106282115863392663086064517100467342977525915019580439333112553109921872010153507190884969239801609146257717757371992496932193242208423491954586818800201049418956457814371804982718691399066224219084519543125270617621797469323475855592423167863257270123647159787514483375872526555101174824940983045418724097269057427025483303494106682895115724689267833224792473415943225830523434844677760224921855982484476626195994140679179289928669263542432265222049543059131732643123626337087366345676785048137248665362391159877018826215012577675205760449405453119190486712888748843217869994459765672956733585592383755815493132173843906730806011671269625062951506553848640685479928875475941483430794140117763642984876251275295352400939419380874254763244046388648537861678843752156683756254371746096762268441780623429636080674119607355174366812640124833120775587966515567352427085223787770652736740753468380005783935628672212392086954916413883478411005194639796116243368307964961245210730567703423423651679955340351719864559697406042857882155566113669398418500745543336066424214129834307436695110887893471786366758101046768602321659927143013361634372473167255851021830607085550551813347822722834306430936927107728884043633701252022103924665871689019638878886963799032150437756419497427929252718146887031093218979645317575368462612061777617198798146127037729445399332108707796437469460478657389927440230589687676842763296706291749157439334474927055883222880323432853227654290243395983645718705440130157088871537699947092425955271027514147504912975447508268497373462026318010365872749030144751373063018602193541041325506833139293519501151224008302504746441347831424177328076527917984523805714738466765003211861706018773696155596805585675130939846274281692814700930016438154541367650262782562707798261328821469185064410012625678943482219026385264317673979147471724206247861143312284781291669440309087599453721092411846537393333666946651056277970539222908885603720165226761268596133466052076672720301226676554383081359063880389884481553860333299580686611478190778945974702714885863231925789176049126337394338742517979033183243979901171399112742420073208590245718603404684656315145964305275054161032277333220141879143169984664186387825959559324238998158073530793126385986325968941039865095079325826584581566775855576618169639451186653419129775814065056486086761521435744406560996748148180769931205128970781116540860489782918711908270800197110660551170674391219484842675340115899026552038169016151077853450180627575659450838655289350319632690272064334943899533429379039236231407243393020646393800757082900507165258319361620792193778397227234754724607109656783497202305250784641197691706706915063578958942277976482973310355682993993173521592506088329198620758441946744378195235579400599373377833325434685206165167982204773071945586941803186620195527769982332645226059299514458678413765178296973566580226661458211415208814623390219522644794725764677391438346137188464601743422843324251090983384287968149177993729501455818106034457632287170385166135366113277093535820466171334553640671468172317885065587065345916882309430483205130525862853302112613153858568719673238480023445991655713891196785479197440160965842120610788676574297807457164904609075920628494210523187341162675457601878645380609069948329932579090559690132260758753118087025375853364868718013835436125012454817514658862840174982510677857382689168364844320358892149778897738406990776471955793907146477550379713222538928336765559607345423509349336452843089506615226616426389848191829307184888003203519805054582717120299646565774854718648386805293592115212236913624780235631534715029530538357331650343165702714686566901390965470765359634501506857074727229085300997667885467753807609721147893437821724287267054080864287123760510536623183730832227593633681097436445574122005642158975877156551673736562918647509312289251339154487777668641483163799913962235413307579086610315915080293448936451847090761572236380250039957794545177322998695847159666650323036180470116022814521546295666876295700014728635620388439009714523118052725192845655430108366190884288498419532322395616905722455232200780968238393286233043944279792578417515905895019169261119528990505831731632656454293598126574709512160083664972034890600849825608175361088118097358809135077113433635209617650228179858765611369788490866066312559763663494602007029206635349721499846160325763400706850523824058278854384298909705590717488416803663637049006412570085862403792272104437332037034149457292077634993436392892917400924956291032380195431237837719210383839288884130416685565192072119929501801630984626986710834425234728241457769196969860938577657433665521922083055490439184606792401842670759261502562011533332539418600114300245028912257371066491758777734816330369860319602101943883464559423366038131088209225041366676372095534876387816195227622499610044954221917225513289285373847570394154059479217839639575900012455795997075711837150313724085175922633030666100001963074343866234289032371124133034444359107779559185191556286302712157454603690394551405882878792806119549258990050976835441061881327722796345452189815268289925246301472115045088583799713102092753296557474469253704384503193840111302047217123037635011005448606235187654686929989790694512533015222254356610560101897101961199411150252683903790565571771454608348324796034560540237900303613147888656393435665702991973282302111805768281684268837033377432851962476212403328160091062763719828983592655173921723123124750684568878907999133848451200781787121822303548886010393545813883680682093288731449356209137900024706787418139748173128332329307019314484010216533477192529658223816232504996696315066989716182999282398078478238355496474176682715645797146958840555722601684169411842616228794429757581287189871257226252125063531369406348685982526042002740159007610642415227284812643645540477944840078894700191089669981204367668781630352849149046139466053180463000368442295536432647274753230740658935040962997665961035262823915869035012540908613651856143204371492216817310285555741308770998778690545494438717478454466454503480475910955345798019078484013290158783692360419341085365641118469669515110671181002676149123089880936094846059984903546932510432471403201508721873914723368019182687450372879795095313921563508256828860922982630262290190375356980120966658030903322218593205143911604999926780757481586530714428469492133486775452672714786921460379373962790307089716888512525720288484655843742029764973390645228519824685432724202325953272460834223603355317169750599212360018746195980127895576336387954911002961396747821217595085235489668996195126731372084823401360267059935680640360053960627431973381505750605606711139163096510556904489838499624696576917250867407411341411293960537147788767103519238633318815936483369602315961085566983368589452721200727147763173575089058921036301120005561582158911820615604727035434438713719771436263294103745852051924947447393353003177440497830616103167352956258945992158202277092844531491948730522200404698326422481321339265850786637841712174708742034406249309904682527385858557642344602279526524137066767728959173753216376372006488664295994682376869946303287083383026738577574762117240615545029515034711206359669562804098267069398051085519467798817163621602820924360796462481115546139217962220776239470101489859063167016380714771807877074616203216514345516412749669335916755591882548941451965063135682766989721058829308725471852681709204394600340947800061195886397105235302714812528529878664569454712837881810367286739916741165428427343011279712793761757304346900685988710430032533872335616520719105349345301289506790883225293760556285979378083639702158633222269579770103945992400145825615998536292639161671625773765474102076279938332530252410958155658822265014062450238506556925914457601673316912733348742837399684988754725540288247610815976245714343422709012274160253718224489360756076289659405477870056458967121561481216482429332395650828330585433964157209774966877375004076810454331482129505333468953471098072938071070602884326504713323711794118403029226213678252004950723618533482185683486176528027588931398480274050154392932225477354086004861544251080494950732936672450126986521487617145830740303805226156595205853304005359457808261179081152118558452934008445630592882020304704125981839483943045418821249509418355371364340783280150367007891181973461583018158926763902940729270618517104368732160404120578946669319887938014855665279148755818653409604593458344839572416089250918737694298886164664089303498448309522390911201794112385130991783853188974331312643349046901311950277946003998877613575347709657570724464509115936669756024580410153274329027546363399578965172011964215936201274322583648044999747301548297201845378105408244330510614777507132044698715128259188894455060813915908643515523045032056596483290159100151064400609553162280409994227935881832035439061737019545668641354779525228426338402757927349583527098719925053897862252513908302030214513948442300444570494990101032223459428314780478689141077347568840675007294470837917623214337773219436261429361470571453547932810446443180842662901249218902156870002374756632155079299152514764255351941217712977184320827315475844468465974180275964092903939650840450223357214953573098869714248361499096970057353685153247271798532436966719741414659541225514346217231698283057771663537894218761207136997970205201562025673775191405149862657690639636194808697062760417662644173449604785263145269493522238479835431757072265696681470465850514139389902508277390475697902674298696481873015425607187560003360601679597284849124721250918788369871249979295619530614418190940019523148380149164928464146807708924901322008237080407601366579134028140428362649691699293972964305564172791707051742474159325538297156770347313820660224294924122564650256282212485385003401611055417380477081237472298543049489801197465210773904073192014040830987954412335062826448495477155780517404947138616329043514671644056365520389600112528218321148185572592531120505775520940417967024375350283343995784698686202157638236622390427890777799485635426109216382468569073990117467640956772910794341948058695229807659630451228752014260947128256454396218078647401906649595929454312531845240396891556883929179818414631256638612571710909658911308224758733454070204618174664312306416578036406567721049567227273408161430682257858043521105223473756692388302371477506246286692335583322681456524339454208392341840241054348041063478761558776206707412523714057481207706886190663759488176146711855403497449601352123846914000703437431517420762825443253746338449902367355689662260000416119320440428573497429855008669079540725311522926275983250904884929893293914838816758010430225949551941879901611795011059932582058080147169047007168181767803833126890912536497169805792679129453798290666253927339286140033141284296596892541862446437613993534738308807373815027581935215698420206777229579459408632648495296749142346414403392226073535964358446483836729181857900783627252340288045034243567120239700767268903932653201274291087573688476155649346462769438394443701832643913566317535101613745449348203899168508500687016462521128934607771222782688996882485491761112418054648277167793063926475312226469728365792912833914368714038253022461741712075428588553332541759243480493027174439185395825904130907440669506501996961827479275822153983057924358025991158108204278513463652539223697171923906864846517729596409318327445766715497984133914210472450145383306564808593143554484772023068617496204358038773976597304443706375482944367776664161075500333044628985795383504397328804541178063337001289969876329052669292535981761846834887826253288349614415957406360222569618334433867152852029478802584977186461127489309993062203695885121844611994646854409304784929732977643180562182266857289360250907199332580148347656708439592727396765343889599030981727943483350645692915194645793581005909457355999715631279874244759570150788356368645330155254232369070991049660774686722999539769879698345391697218466080740904901475682652907631460275945042905037642370576178054038237373673369348879049310341242096565528110603288200025137310931572270041062718399682563530204828470626587256704529231665193621403654734276318283512645708431874315216366670102282006192027720760459176951452107463682938012339028902884496596096256944727248118516716587632882542623825645269833685367244823063110830189926125439623777535183745896859016267811796664328582069701089100831916571693716848937181509798027547802237763186052657408377031658904419136042093978526419405231836511762252957472960604216607378058757734124516031621153919132166318119534672121352081779961522135890682394253409565167387824611630209281150429561560924160998092052932103287604654563410452068592066872310454777454807417061295677716878961655112318206392877116426694567981945065722377208035968065270217647646303754479745094785497337693652355720063248077558698352722940266414062782706489832213819471705317138658084813777124723572308864899140395062035782871665927476601149515671508739571366000398700683519744444760305309213085060540669480495860959032166601854648175275245129146154084156961221766868965315786145220812323590646975958803052596068248990967992981966237868272357900946232632015678454561996066785471803049766597020411034554788414571756798061293125887356872222442836866118093613586649467973542380269733961293661019701339087104578460747290690603257643806774509085371423385425182823612830692890570262130260321766407007273208259083342783218543298520104985043818190320052681394698895143197683638946450678902543481726922351076784322401513819246144072897760135623663492166726392256849614487407076181299331253924226916128810918612870665809306670847012289423946419597177973592382494260358747345942999683997933439114512076912040238449413904732682358779539091831387117127707060288479349791587361865454288323364750199554045000593762152391333724257541153597467496646643368328806978539830522777100521267214695073973254278728436663578735145711544858715485993623250329709321294055309674740439320436057368916051886845243287199524635058551159459597500539242436275242801538422571439069075007699644962192239120308358147342255413641797181377296983306903590026628622005946566635949903991776108960414425347404468748220645861206721057691881857305070054062240264239959847737726241450367113361768465928834071162791615723681153475192654194027268374618543741117327792503881582416699331029938759338322688712119050806732428541826883226732606286223136880918753633845158704721155700420368331257015916922010457382338772184725550441520165297628900661272499515451784919083292095174950308894676434081018073453109809680404301924593414333381244552969727734997784766955591083129122207128212123654727285093990091287241909802888057556916240359545878110896337219323273688753742682565026515297792526791834024366485482019426265194821457132299070075001692747899076101657161234011996153864984399173838931069146134192683225038325389612002729717886236889900946971372998124972425485402315924338464761028918826359105196467551255223980375081485078839238707028224613586591465967518422288129955417294739486049488866671370513452198027529653061593270888146123437178117161952196863696540503316636283688326401720848517904477822666735537100143857585704147319167833618388812698936163697687587882244512556055341396629555506005694851998202885556068550061242829743355157870435727795270086362273503259214376775525865277235422247034795434583996530326077466123159317792316165060351673194817090372941746230416569216667018172553643977390078404031592279211910356348768547138678404253729215382409793154117482175937155488598214162061469741999633281706355283218073149879978217207644868030064573466189439164187752531540333515218494401803361764049365025697006344742618215968828883407284187855840555740340759779398818472633247525210760271762433545478723986212540682288479230536000056038386710609468524479453643961905070324375832352731407701308167878656970018925143844659210612712384202232967601976963161526362424254676008983440703030768508042733596137892460946682336656943050044080238854353233213184955224684142368625612943969085200290757592669147582017414392946468257157033142944255490309402308089107111940009161308807619188642581314797426240223463711591403013793153565019073437025105948501243097226253731397411059253857946443834102259175639645309962712784102258904077564299006928938561586320258455348184377825644824846662350508950058023789330054197426471015353447010457132822125399960003908674615524039009967425909109662180574679302357799979674674183402470712625472656353917960020067082567031069498067607526288050665215941974902348985791795289141255155570787538030685585421196653692918558461914065424170444538094472604394694010191468964115446646522491371627476477085615550779900120235300510842791126916478417476174083617780813618079014258654710530347439451659753822600441161112953098504166667425293065737216449934499651994689825597120700850459311623666574069741384124223513537572671123311090851481421178840813827456568198745742550829490484727901851813874039155348714598674367272007774150205541142765529855641266604749883041294865973099630429831120714820282553379595835950155687585823404818908633754315483815694943757211897509031296106666102852779162376378455063779422552624925537441940467752553018935641142297255680504236903714603048508520565848773444975949254501909909416051505549202441881430210689027937266749506229646848979399442177462530398301845412371348438078060715021433653713646756614578665364121711570963194092599874706899317699006595275695730264358654063170550070334355126612420520626652952241092456572154961816955227719056522694157000095753566409689780766058235344516919501849733131329974303334262336554852555722020890068786344848782946772530701862394409499829949881394093521285615391644359677192301402178417668494593906071112349256104794991166395276765743499650703699211450807610600408792416134560739723863755286088328791177939248163978441094896794461511874988826417680383706654204094984282032922377819315796854587037660728101221093632876049116043576259700151764648090478079431329200866025509522578582238192704819304694279706279501422289765252274292803535388045960519410780394505369681659034956281113490589451642464845097453959642483045248134607998238988121232178744623908092240223178482989271184552287147959560749315123077971566916574717547915776111494000892918429770839151333669218511301561498287247228458121900626137208839035864821443280775741638811289827278557819120866631089997852892176159288755754932486716346229015899272586723209989171724204380468799459865312936754600992613458019947287345083955545397325091064069957683390958654043191322186185382479327070691817567864402634756724792148745374791449388545156882197425552960129622205174703859208481876065714235395129138040113553871515430400892041454361317152260266008276873596313407710346110344063989011444699616332732016312633317892359888279767457033176545433375889080641184852404710827642092812350979682027047120382797173208415095779393163630891924169178828154982448100861274755945895007543984703567248901047239538741858039851634782748419333127930836717267405520635429235243594044577119750045308556937953076041937874283108118687984676682306227287040624136479957633087644275801512451667040387507605493662855410956538214129825556212816016158449797560654322123853693062070581042880988531135747171159543456130864880146989297352653833005885319594288251454195450065732258301838614484737370058942071924919789241220331391612024913886852907136454210991315950878940788502389605505894097370528570559903961882303164430919225606711077955882134225386569794948823836844628467273329977094729708903480408070015575557054712620987155033071462664341162563993377732813847817545869713912045177490798533668392643806582790139446445260141579199302829824581228144197021446269565524722892352397019500911818910996908713383186514253736813862609307474361135059464684672285907430759155855052950446039375936997774727559667771367093127056359004626402723787100114015500460928736101129434958084376086973567097213134091183720078183843001472358010409943427803187624343634273275358010395860393560499977100841954559318695755872110139998954832070665104134152295258969446267838217628669796561445112946860906577899483318234131097763888092015953030357717141906726532241346418120379922210873559316149202589129031562135629321208577478579585245873152972454017178722175550315528676447493262908428894958903324823928445303364429182717331655112031266562208596692022728349630446511879357566626352805505988265119623749945870901581274372563846661240736734238234609879955217226409485157720741268570667740208743768967244521098680865750108659996212218691851683166765434505846906968875885675937724380491013897429295311046823078503873098716199344299621171944092235926647502526429168956903708900097014104341828302100027169264136953369508858944333313845700187455317136170722732157391283824074470832952279189572320706513947972742622505423332724603654327423247816828930485097722485218424939654927026138246106959066175913921135340462913579470146125510264148609891169301392832131638664555463574349798006165712983430330875782704457682189540899709449554646188453219889096857682713411002539784138981396713885166589091946264133547742508183426225555200319743201165212578911334927617746480076274473753838291248930051688059916229614811787694086032232503886272946287919817715683681652739554707998837615741104716494993082082938442936325897352839646185232718865186419395119089081862205629648124450749170767493277612543747532640783654322322379692482376868532902240168932402698881197847175782801595258373619983158525448097748103038587933550078466095467398592189798448729966871452352385801504217549779034516904075046087129407942231259758078457772756726391308480024595724901832528261851996605211101795588645252928476881883407585896879412937242244426132520940928534738937935032331353531550404523214984586757661413128794004681673962090682917888259370810459886203132594517683286988868875753400700267042232470557469696147197388941000106490129304922589302916939577201729116801183582417215203871037452012248926136138688663002959927751784463564979241222584209926367541661406346090386182223705650799663524192730267097142174568757145861453132068035887674937051331804480641032133874964316477905136368965796836701916367162995779826962538966752592033614239247788794041038588513312176685380262502932112129246237655070695510964249442839346909174487191058120755973639785212632324393019455648833687154581571582783669631951942503324064365650233385564467397159510961043819181702942202783207145573530680804237631804238250792350958992799295308932395635364131764458498679322393576911458021538100861671604494597609635628421525480261347876230480224242863682513224287596720585486883838991799255896268357396702436135941450881937222976153453081730660137026542632464717954089489500866024771725745421855538257855651783804146386751715832064068576258606076554326022923541842404266344317271329129822410224973456000952554193449254671804571334848108023046014636227325444281556825436049871317032496864707808570845743533846261957787597107885475850634895095382204013174659663741326331445649552765779901592275447996046960486276578909648581531323424663526630919099491485906423890376947596821648442028245682665596084865890433966137837411209769258840597918099836844456845509759608878878084964253911884066268751963594988705947236975822002424132453641012552336819808537401844397887645534813732417483664941873774813769770018639355098638652011435770327912553745276517468098197456017378462580544782071955123603062974207706050170683636290195516066607137267731184315548613383922730139689551562697916511637884278803713933593213152461537095857423395489357462432115049370109000694221974416858594732828491704437249797052976958660387615633995145434800644296389670757676677310343843499181532620156597114172989994485128737994544459385717975616854532884481748274349046741152047917905561690805972211925525786729409168509099852901138676236677153581888866046324733038773918890690860668223533925746676897302158077327762517847654588242437711893262777397079503624671220317046741384575590085638899369814005521716043289088737230915068632614050917707206461736725255275549760454901578220426100564590150938707583452578963841620505524278921775503916605911563195697662107953852990813779674580259709983935484617715390413395423545066836875361034414190516693737091858262751755343625842447824179546211880560282289629059551204305819562757788838184858473539787613603005963687393321195048575880001437945354541166790405217782407788436442656296296443938560852739693883562186070233426199003386429638492008974134091355757986938340243914609322273726279645685018608844971037777544174715882808962215495480737667122334337572195455956456193205892588134247231193062665397658147422896919314862304510514334352431041934009375524254818719212335049831410199884035478081376490745232999514749425026166788503249037776170969268014902389802553887136716617530337838816015570994678746951547097400571996047741896016339370580889680125648146787222233636624229193515837915495649379596566953168549041129940282742638883830179947020567017757439446406132815626417052999776531668239852061198460895756893323817897003382067373101778652401533719746959134911598800252812007193756732178562838828408384729383276324970271863390573181648682074803333064929776198670267821608604541084015782020795853636684615098718324879611177470952329772150452564777629337970771606055032459706886443636224678527778747203918706772059676200293724928359467575431901337401918484083962929822264997611397514257043849168891265004306224063235775501550095355093418980843261886697716682996396281598179465184911077117454091829937405619938681625249621998167696818694176804624641165775916076722217989670794423941637854319982430775581664518306292435412599994192389020083586185216348852685154018447515399139913608818044560841465203995037608877577882133115276691472260493457852472790312123661940989375786050233541176222060207204666161429221121208334388945451197166092564617716657403955191408412458088947587979788752490908306296231637882387454313282402985022474261945089101424895393155618278717880900788355143589996214682159683848674568401298507202215865504397306612897964286961461616688691597566937696457540536928558877232837560212852845694820892521007538514844559235980810823181981717519117520605563680102321731321311615533360763731743781820664849624424631863529003292921859961662818171701224314533765273888967057180822416872589214677622962987443745054123555971810894422982879558050243832699777436136389239971730549022259832793504282710839565044889328268343724787225188020760463656519113574724687987045708795222882563211376338852686660386977987478232087529708291972635138561332672900192077062129884519706417188637274368626593594599862994909637547117073051359224525728245557169616065418124261016553990768778575271022524189798495572682440705725844349609014053164829610146125216082923594221653146561112993863457786735965610722808320526263695959769028764745175299294531549331085818080068314198985516433588306066721934156214488332386580416756432912687361859823569193262823841809985936363517827419347205287262683188622569724104028411647125781935686571647388120058148758334178535322932156183275912819338932725488626705286625356740588260567012385940712133696638648923686662289480812406080797859124594736796091250153230096899175770116378596512893199536431706191088302244674234885664262243362805162640662793719399487046918914403859294786183167087407439929520855958703000142671884613229577766269764903909524313790853558481191792376914624414863947828740533970427885033087614317347179063077037836281899596688636493729641797595219817799634376457314219523810709288032647472464861094846995069483161293515992661009900759932911671088826861567351226045087508338520389715959069934801292273329238687388824569751342357330375920856388453552387369008992082850029957336860250093013981819970595155759934148515549717386363720031069734839551500283624920181562183282125197421391860858053829879683739805476353164919526308668401022165269469122418844735231142702799482645971790127988473497568623830370829791465927783537214376509210498735340188167865736067212454874296840817222040183268199599443156522798450221436268288216013894781592393137163323706647567590920488519117064843863136158239424909378991020788001147641724970516663908396497070150836941313185475348708176100396433571377508518413294259213974630181849492842078928185382000412007714580990445327055451498820480491619119017018665136565666250193002928353673437423067644020680535595363867892978866427068486769545333655526715881616633947448369503851418385633856670940021066581568809498902393248505275777879020975052077021085041031232835677524433215502202499012816953533926428132965274049552181788056258278742503126564156957316402726652176251531986165211456945293984157434366519736648911908183865180544069294824249749182592565851142180998227184551199953377096911776854512760740181284563635586130061906145011198283667059220272411439028520879026031862598590881132560966181741136120955178488516006459051747334651254839626013000977525632518390716909487242665119071109312401301069425966647863703625684182907576428276761658941934086378562548203409894870793487046122114633099311140963715568502696564439298148775385635488958428334507215296813740973934039314775074412289919954630931030644829249053469151310425117559793126045969606176273929065204442003248792858469024306290438490230909211516616788594584757385972034991542759382859938800657568176415512588413289825632926964002212235339552256121977287275781574318865872582465906567221446534380591608410846246982914592559761853678484407702779709409283554039529046513513223782082974291492649855187367746601996315545782123005726787369191058390926059787915490810807833662836608899697536410855299556242167317230431993461740301833471862556949404083895371990343185901618365334723467442977730553691030282531386749903824806112591345318655223866763792031413418928072707167881136331961621623673532666003450220240400306666501166163164643558070600729304321939604497603616269485854268387852021752269221959643404033911845371349402768237173026880781325067566637620404983522674338225536315645937722443134530899362592488117792904905107475516427623859586502312565021405607260133586216072546028698834325191950860807080332568067903258867670212841520428174154241704115118060889496984249746902591840071868814996727247967293320749968936077905813821803017937008910249783675386423046122297024250404896686664783838053588370451651246027548307949125147805830667630404645624033634455487084191347323457965745106625063045166677757501992719879026966679918576339646073658222763506091988578720247728015626526470656964535684835570957438489816100595212946362409400906883013451966402193011122103135525606804927308577884337697851968322749669520938070224509084642953676803310402918492240533875312858466104963326979636997211507593600096211888097973293783560714606834481010147744498302577047658429520965674940534589157986894188064348794780469249180490639820253188361450459433948049724908606027450277240294256488642201365569609154818530775991127037590190110712555944483946365960441018945568352169062043261080561045746033266166629316389397754542688926380936275509444461225417923280436904250104602935396473162477216411639805942799834144865980237594244666645446363139210336316974430669717338723787152638657246798697073429541858303472970548728136742856243518695163602974442494352055868429438373405760768275007084091544772750700513028948909709771106700154104171567566208947358272014437487408285337055521474877295369961258248581781485198595983074841203897868177057957124371535502334242959317246710636028172574409777557185586175325964462733488667713167860608069458803435214630522376435032146968952825017585297736903174609444364226083335006434603239724441276236865073746753393646581522057919800161559772855328387475751431243010707459740489843083192753168210481375055559545424564220212045779339617471822396737615691934366218423815631341914918946714218157549586413727954756161760455564799935442019750373848957045327223628800452593664026292758018179255488114915731828735117649520109511280792705331603001162035304458181781496459217657505170851623444808361194762170633446514878781616880243332454029164903181632515019207827273939399491611138192974854624819623271283939840934735368484341637946779425069409577897802585512239705415001150338730816220913694534448273744603358677541588880266896795329834623266233749564696409700083572096239160232379568366017881706237422835234102472074219064588335384831305536874181820931057212832487981888212159770075814396827840753933503148894378033811111781596686750888992115462575740758875176424363599154672383995217568537557383032296274237786203333285665083293449925251535556989828600257417293914764304929151291239375438280721614417000868455519162781631909619200920731181816712688174302398142216928754011893385066059165376842801257700251505732509576143103142637950515140146435095247134081401650319389314584182670915746178248266489062869488025290283495557615673268949739483877204896634556185821882936385787664234497088500049850832763762485412177856094443887566091085608066777847539361591037657747551745448935068617479648358669933478052260549670206022739753300781271265530496018055007751688790658437978917659961599424413058630329308963665881276402483351530773991909431249615290042105671967029219591842210763703152555184611681828411690907047482162849171257108577322423992525077072730141852114337330755864722674446424872879741651596018977252679935133610982530145252521434005751529008389890802973209542827158162775514584367115359980621053449303622207627597704294038374039909926272469107315382737959389406309216077180573401363290045947610447723096587161957823028281770641394992246007194637634623100891698270877905459568711187823966228808815756110397509880947944703511022898060850595890857618186062177008723150777218378434511858973368287320206855146954168729640245223539569733292818738472511507935443779203678537636590914755012943721825522442488604998545309840990391726600254330653954094526832516972081363868181627343751111510958260709813675919635144003549000448057183981703208259043566124729190991027093013623043836298047032310429384093623370999860039804250329498899335372463596273202574667418024493696065514173001251580871018784148815572809749185840301397172039818229202597792625444411286357196694491024863145983439586641685309990110413045960217671875335247352120143390597341968453196448825779915714068673290467535670607343259866386821802349463927375544054458292813771888189535269698006257074423243979134261316960720834354167576403859981962087760418416832397586328904130531458786365372426819163403551182614123594389737492494425385258955237301742145633860628374977154307923838301785077196410243214843546715030599957171714383221962340174940791351314301123316277083733825941349866850225268592301895372580951173472847270918967267548929729805167691745125394572354940274885465145700562410917968461033436749097221460986791935303760477281490405731924908799546647139498718172434222995213904304583444975583747322346898993809176895266587808862996752870051871061611311638618206434856050006908889477196360380926763954110781510502332349586971343364119078873459905658628206787017990858942479676559415888256970493204563044563893800604240370258866166020713387318142964917130353685759258467010720105391462341834424577543910074521214328417131414634552396554536128289203031787772970391722738056384111410105289399374408789732909748861864975418188965322959653162318714424886521565191988864882714702315754886617514543813869095948128392446650036970766676566011982904352572596734878523706860279405126243005801360993927505355962683877354566460459194970763565360626736938910275454326502852222887084053763254397940516242342899537988554586346408007090268903392613270746645984120233948608098686587638182279466297197207567697277582681259141326849280197635467910561471615620364308525363391105880998660497061364377239026551988045196284301512629266703138615562721737555304275779542052124150437367262395446686492757008976151907671739132125363122702550793521376834271731240089074828227036842506094273394833515131934946562835894447886970367075846295595121648084684754486944455642309538996476382383240287883486495569857412938430705261570303947995923245987143922174877487757162956826032325049142156934374340160515547423687174243742931575753444397011907028964801409722501672322485433967301039895389068929742455590255674598239581574549004103400956764850845388574867982936641376421184764572587100326865910185191759251582549760875029240814614281020867929396732480213444331511754332645202211049355675854010756729280806177279737337596523553920439572189436901432501273579243819082891094042849163066246870852600579534351781152194746951896961846674453395523866081245260506117020975675375672042551776699581821426423015981329892929553779775134345867858652281805209790313643579171960159435459548826769786878703142944044452353704728167385728199434093411387204920196241690377814577904443076226240324274946226673112885885248299754478452937346288254888759041155220821017092731333147218205051370528433606916883728542428015756043273959107785061412078646048353771653716544757042309610521528165927128430885962915276314150505802111690033931484474906136245586638746318286844762720349528969326793437055476344627703466327443950464342953917899100806152121475223427300809207228802406254063422469134318809802614214071154044536188432606526822061551226078473052431880871251896641782137421052607262915024046920986941873505467347634728200794367753086316762682702393754738280941021750855707597526485874629148884012423066231710106052384775146634307876011603112736620276914542402605894729493499456807578579397899072184396244049369544849655740585266534440546274022588234196869288080848790518793316033610321183283972704032717304829029106424089713218723117940208821199000437202191496192938008504746961015016939507123835785113333616433274566349268225348096619695990700128448037590939009980342446346455551360012756864327726368435345322293040203969359647916433866257224645320005475431120955209810726650161799360030081974817811526744467680884936965665612559619902376625169704109418078804500567542884888834473532728344233292113805605815013228837353034105023119072475276423334962770907183626741727274176433297737846452864568040857955286646285082581490649065402901689038415409648994086268017626830009435977767863877313427622683656813293834504540793535707525254684056882708713421409016625881126559701931513826813385058169268882190006204946471902037202877131918016335741960298736652206906706342826769989452529969365615367010805395358949639659812949866698117603474067642614863585944578484598226188797342364522531095838018284104203708244097726211935749408310216004245640891995364528303744388413079180642757404140359458212736525554090920957325916263128704284151208992458876547046684487813311996435255469770162540446875723227673098929986915055475266962880960699485620933157012092465040910266981897930101101270385612806444667789690605260725802186542325978345545951804582134790003304060680919003902188488760290992341877619249969720799244447155623919932840415108657801483609776534801117524429716393873931708222406485462092583653358343077220686887820296661797060818563003995935543862442766305870086605935429113371065142118949905502926950763742230493653102380171456392149480280886996458286213533996569865415478991473626789361519854228101816166104990925404619722303742752888964500961749110270506717695515531151694112170992243925183688934463293098885138428625150798333728902418452386956927205815255768746293975449006146789109675424988708412954740532523945177864138502991251188119986738947162635882208034383943788726142702040263015225966307871874561904275477020451172039648725565709610885028405026250278755230418964451766989192058688675935625883957404669838942533876653173395764797076999218561096865551338489744597308285257928972611426527661193530849804050345119122607628494963189174944899891838161064166262723165862348602969472311554905942542163334377208910869576968665631326045003492141835010120452771265360820332792686717403111009333959586664040170615185006277856989251370079523551983834474725546633261047618053121784523836570396760811556503598416540558872542191763634157822623193858493301273332219606824690488052744707734472085566100754471372319272847882099634544122246965509325636535594222339430964563518217451946487102205356190468196160938519741974566722515249904198826885630256603513749326027267991314688164547581841094093824875000693596025967419373404340943173753895640491035949253355384544996065793273491657506374528192694044347716481521785133310728709358019850037661633193210009519040125669848575570950150206045554948899982690764746925965704907487783970895673144188534472848473334396452740330905939950945876967665302395711465944423114664735836816659716600753293818296810478589884336343620063568068579948371203672785372759772522489530271585783011296288752203980691292054677594221154451868112737670260045408891654257556818654657078466393529492882490620732132250041348184193693960784755946637876838904134040463355261609935350381789155932873493379358464268989577012023423545639941975807168469622492288539310257318635058028841474567317997220521548674400350565020417318817803617249170209026691849003801688661729332416062082755031874360818224235251086334716407465244203311824015114635734656313588493591017828472131780456862541153063975776673113550081641484581045851667054160414219002438695935219484147242360781194110214108831838756984783105556381896918680165638730780394320769000011127873489359507430251678313164544726144456741250835652994817672553355747131322585673249386068360709521032112575234646047127763967676455113756834703021970598003708921112002612929920877641768335340713725446407853537713937801505698925550513821460183973716761282010630039616724678744294470642146822194536861479854947028703183926769378593432435670946465980222976419700826857114232602109907966999547605941789300983186230272024761185962321408340894750090968038690079903663134586765503702100776662146375620944170165590129149425594071494839075641025934285767412095292313757172592605927358217474741307125602947068194722893114772741584150186314216107169249591113929565946409041787529595710341335330048435040862902030154384020805685248980336491125529835413234413200481817692622807880827351833071536070245400075110979635689714076866906156953361454515084125050556105713045075308011224352955297791656025646063227993471251098956419570362098532110087887411710422302284193730805779662172357994861127839122125968395600696568854130976646004713153866118775420315376087679855798905983635310366054851123120513982040870335519269760543808906888756384899142127438358389589161724924298324948357214896732261627025543630073508863696082352594357750623034503869897340103330382666765743296249077875679636828915467725630300040327819415801213888860229451343659277530016271230349175291706184535888770426370530583331944936065725144936634966974965517650941716841117377437364629548659602344089385477510242723575826783292479892693847087512915650906395180858925355910540875031991171605436123979409428422957667010506078016476200740517117667099647945707811503262894666252623064583183778778561446846985894268214765740093122463293533298596950994559201000578955359197193393759071857955431719543447867550476665914389839878833312913379839973448173984547265285745448100963517172209652419689453621223261037148603683841568690282823523769647767515731208473765901278807654098785710143330975362945724133463013235238272834026826785069914276730604957152936163433597656488708487394572132372166615936882742201269288730038754567372800512955909840910645656425528602976168209600536681314417057556000157088594465361767534840595112689661361893794575155431598653689389759335057238780254336243319955028994791681869104896660036739493092967531484667554089061045814726004695945695281062966599488129897355848363566069757939482914514369179099198750900384216747560579402656447486482462962904130823622846104897621377416814881466784605582153202435534035817218802544584653013746561992563154444877032142019081802822434150193867031477586870101851439253137922364173354032206276757441869127824132066915274022606152054310143218736159596196711228525208254223071832010685344830899384461428307238905758764146586865047734537153192059549106457986620097028250704103794677488762490850772581061347858122115057170531663535906965921847575687086451950781898158781756716688999957032485203940872242984067606682751048556277441612865022523096347953196593752000612148846451390301275371706248998467209311172554767475316416468472035593376282295970495776179872712793771799590488767949380383143795071462070759682481853986616633179793559095326108043053655861750374140476849464350135454804682524063062830681738000151733514397868293965964284170719640623132347002079909157937173932142193944214550596518517179146850547306700392819578898625579130716342746002375942132805993228835668096097319744059874368185602789660679113440888454165185858411448401155665881294796296969367198234414067166489312963163222500177099696020383239578838009415767323132451160923631691176119542389138055072110042150494160107918807472713269829795859260146942983286008657453856950278800601043196662666979920210149918931435227595328080706012075709105974285563092991441549618906103567195139156970858308200583129229671568019296627426623088259395536403594417163541105359747622522244666205882676071852327207302431327950917644412588735494633893333961954193006441374007293426061841603034340317603261579718848515089879002857666860475426129322130896553990849587077626786891747987710393407110329713854964528518882500034738608938522577294476734657375407814247098486256241409538923483498315628263785230540681773078793624716776603601419265265582613827508849366007656498705585820122963958854418894952527051744622852950126214305609896593411572183491704742812670335658017085109072228398469122471401839580054270919724268464998289110868011614890020345542290944169590470800134136893714795660365688679060717284275956003845539891852314195221074584739259995092222232507047988674469435943198833781590555869840191294057397714649639957879293349024239651468558588856439912343116198537681128659124307829942533644438427593845978914715777145388008157153768814160050286763375253501579769555095891673681115533088849941110571524935251000333912932175179885329630194437659381557474102694343601585524322683050193992678919323643258679125419610897437916743693090161944423746409472805577314460117379974272475746255312143770913892858512525905835914814718927168523974011265666958468727111110183405518701732653048788881260048210239695010332563828324340164562168089735235046016302542186113612828901799281773194685550011265581184557307941169092806568317228652762724911867102087172337806966876063282152135601505284849478260747405052202414808194681696436079800087655290115198101484983670753637082108177265423353906315754601281935846838920205448117184187841269516721204354191425237930137883577061891683249721217894904417724437942507193135547549117324405062940359234645202922781644283712339794575033924371001927487243178354585143311596684782636288125000939505765431059863457958893087689524464650910545691518886588822541028919871219134912442944817496977740764573570860254674758489206150093937350914919166377377640532834743321406940229113247709500278824191981845707099596929375257971336948193236270732416997310315473447982680616772470124632212982868736094977219905116516513141107621106115179179497180303264308143954864281461831056135120336738765550197639922577676074393440540854147668129075504113565858386105015868066351104269269982649442069252983759128881811059299950618691400436251318193264362109477527840958045358245291054249903905487519468386916394860435608644776196893806888609461282482444944109862912534444938857253586685937214924214766161537912507849704008662111769452207966831638158437518599238365367791988819039306154661652205284927745599024959592179950900512458318971122794423819341419298088274457411637756152777590279664267404312876979534424097722705168856307482127323426953171484851684556438130057060653220074578060675265366653373114037319915099207325967468850395371494217382596071319434696216959144299816937049457219479050677755913149046435348775859963690613649954203602465439702781227921328901728450256559185041276935434584243337926990441604834714233799820709373600232061576749902205232662543617458285355981491237485764282741598636559146603049693772017971627106422597810142998109977447442204345279035312205633171752747947491971203137914722329215354958216663033551874731833568465440876024921778963088088722988210793458835194383102800887743506020723337456650590822999281594037147007669306577648221667100934002420716415312807898626241178951511766541835882268705072588226589207991628295448946981347724150019535462741743823300374945158898744333319784848844026319020999372678475675590117895400212913354378627541982866021423489427398170926667179233687627747246912254738872493877634088672258738354277301947875033573925464656156998261919659646443830030228214228190928146386333990606468452844431119169033764834916084764175382191895333028088870790128996838443965277044488674147539002587688284109924538201119713801143290513026579505971339830449563158319393902846673957704586437359694906207458076740988302809441886498073011343066858417117195163946121614971836699559106662662848081311182768493784943243761070183041974141325802372153090989460088165171873073618190220572364243227246061109050428586532976870655925411279973334959952261150531656403272102206158522564851225903001371086050460791343692396727908362180403090038046034736103038470470717561597988918602070805168920307435317185663401744485854670544426600680228379568577474665105560718251523167363583120985874154566882868869663007255292378409020331723814060366556026152827212799586457313953652554490133863855748539215650171499606747839429947591939926493198772672171668383344952375710825272315269636463243295451938364783755097924364445073018465874824083219674361188401663093875534044590773622856027939940176131200515036105783634317834262490945940282303304505526020026199998407749517589259365274202097840577757419930535238687235794926008880794339113858368211677263726880305107056703249748902159942918338581703466762186635724121971759635853642304688855102386033588026077621102804967402665786115550718322952627572454958530415657391781286653261769274646317147894259779876198463724494471445610135059625102885099754571869668604915769494920394377704973433070721795967055092001853044156001063981490417130100882359414679178770666966273491371872306703295787241218005177386404609382269270195652184751241792126886072129040165763075084808180821646241122844366287543466918031688370722000017649760549374203512292849086443390984551499102803413966306651175505067047111246366660825173162476453878526514364414785979484576123445651493374335414882875852888778925723299059147529559182525791161537557159648563863703380273274387230316161081205030561944602745269308598294824527592477117104404152964244370597760357212435322664699583473918984314473450627263160249603217322730138080673958921430472995528893269558180994968544581451858625005726617995718883746668995439975220842552723194605920057122349505088613676882563208302988257836406639409997985355246668359727256122919376239497450009472306816351559564944206705273651455795217685493266832443108571764818866196826457299241088775733179779560227623488483328075218308516860927124059352604706940219436288365081061330569473494791334213290685912044575119774380404396522260368548886367037687278071043784135882611347726847256785719215784023261590739799293432129796608359824867965589137961944568610167258003854758869291013720304361849396390624280189349078584147807514180283877518083430859268491062890172463808571232297360917743421327075160997313420312243151780522218337448852817050895102652289322011965970990943856205245136741745947823869316641866693475766953504398466237382996657685094529767254395007904429957673501846376315454708853347015346354919134334180291307448171216358819294301420843769756829353528303758251820462691216592360607114003789922010739270766908572287978700941537028475100853016466852977913448378492706778597097885831975654371310105386798274357540915736731258616614966204422635524964263259648758791878371264399922353985601382698955880109837857115783517103575136330529402219842250267184440732197928709208960353344067373189016939766691810312962623682870508302531526889987381673268575989728205341881777252820506128387695598677026174807252308308926586546520350271591674455582567384182684618799406751684405430842485090277997512104550308472709512302085623076497803837001946926299712445055620040202129931027545386413653446896615406805665131655249910583570773819481274503345579689903679786656983936319251994560183842751946608224460464756153968999821229727278033249981725778651766428985726509445635073392586721266946642965816046163446975530673845647490712041306382476745735685965674259163041848283288043107759789671046376328509684822029593689161129010520285608261924033937000678777685470228438344428554180237781305376242152269627209343269294023688823417313151623882299187916132854540515353665708504843230461154199570053054293732848760041039202373919334682351152368127320027461530144303675693520088144648317430093979780647606041203869716221719064847000129965329612926992336815001987812984361074452232165563176140355812195281623385844905720842689089116444196550745402853237464261190328156324022934843466482208870140492703853673062213161329867965538184809446752790439666235314226746204988332610165041832758805430203947277699919159113111070537814814323544234989013379908183737521554525088421823450244995054304604114654643254556465017903870788501476612291342638353094987706019732560582378777487804720070973676749499308517519015906052798499776521520519219562371886254933457045944596491276239966304225183723411631024563023644825182991933981622479504919128739914835602772263676298644873841448973581266283144889432990896633467712257535520790309991460549642598425743602309502903812871106496955349671272433613871943129012190164033628721419786650443739013879437165925826899079477487337958651299500791711009940147088894186434530123524635289351767449885227693838294511576183168805655318691901768782488762751419483965587015273226053572370259194737444867002811901533552094108731001072030580838702583229252800340180970076723371986531891584538515835554399331682612353626833803337078806755849429602122309982973873272318611716565289088121345002503759368601602673796852619767065162109865404439096182267585662768777022640949027714452389947319008392585860789106495640999975655903107464666125905518766832120461021624499814738986946600448980639255241769885880465551730059240001699232136170017816951545858519059535815784353597386357040408204603254718007520993079364651134839736577958927170804135732348521148910812967483178075421802112029834458449565821200018754456973040847575433047841210096076685707702029060951903315227069945797336612614230615095725331430402550093131137151126023956299824132337780701420770214872982594616685305135483736306549679068805230842883858068164171879310459568076900482429752434324348670714143207845353286993560798861885319268961036549457558965798695775439582842678642756967487069723479183344346253249106857320425328717478734096381551306254377050321885826059108553347169333083929322552839237841693957099276298895032490538644937696239338176188250569884181243180848391620682053346297599859213172074207874286437129564711547465687934483943692004334959017029586851230787046445715025828935843750388755182570577172641492131437264134366809219064101664643270437891931763589188527364539700290665843993655003957474882157445910631515255402910905556696040249984572090860004039120821416303668950295925603885934025477789742986525935321116747243721700420448292762921659580621022574951522099670692913250191261387163630334589405889215626638886562745645546440942428552056035502655666338667739986372215056541528630832406896893431560274597626369901577102770671103731037432636940046409669578504256887286423557283052192936189646066544187328270141617560975346399600962613309903219648414967472221469493582464663644887987064926060241566170709765038014953272630466619581262352103738168973053833839299674713773500559638812721087978135650528927377001732120799131029432070840411643020042006133677364073724380663806156421899158553125678205647103886151447353715298057720414330337471204219653211627064400607133051323440713665643894404071898401215772499304663065210199283954408181271399272852493878503559252859317399063384320256432931732328365917118803618061458960283572528648620373237959689263481828860406434060922924648347169494718294423815989161689637734038416645556304355332662226391814093061789943434452062014795640263978950224057193476956914044436863389005747373958334824858731197984734756956497837488184761399901273824789823279876432421647565232128126345395475131833573783970507664599205727988992400474433400930805926431084200707399135543757673292491761083658787600458853972503202541908597069498944857923208923935957020815557861395914635904712822525702451381713437220737171211598214485348440239274756610641103154519818747203731251627219434687691516724080718857001469392248098872774836931826145442577106371076299750825262933946638116517975466374335343275296530580179409345064297758911422667914074406963830033303650083307360730269163497181012138984562043083225434827872434579185920277860758752449036921227617626625378248180868059578234687353586631046179896667569736095538084497868610201405724170769620745878432210326947188532698153083018775814054964724880117072662286704027406809809499687093359295786454557992606007085476264004362685094050910506289808694004797261308847462961572432746799572781845724343218907206692865623821442790590880504131631912856784159080426283833420602163310429249065784348773491970662466696267692268331749936493701817377004427817813751096840813709039585490787591347643431209915447592995580065488747076381684549321661780359085293268894123868914210376889780030635153276652662475712979431575439782019717496189082343439201970138360145383037394961046369859008054534330024574861907564567296426508785016827020378905888343650800905492442370981653485118540997300401895593594562103280753603716069365305144484940871888312507638631834485541600561355488232745035610585285109759377048653324679902243946571330331550638552454925454392153110486854654875179517514360840671579451224551489682634060521043539334890995977206958738019928895914994784405302493674395276146256540430032070716564414471216152975806763482030524941216133783029940666918745745045431396529285033056197036356340055090058108619381829176009591094398692199631443725178484486872645107977715276296535516155706684122403345480066292171354432570146092982215864984966130772797031208141154898721110013085267482955408538435774650831320739815212730796967638824100061187791828724605614757787426567136652692545553273650156149925933727348784459358998531105146013306280902004963434244144065234751454119648771997853513068982750553882140324585004847570263612097748603671520146870945126831439936720767737807496701871305436458671496404435878501630229068874327905399466169633349162188208157722899131078134899536769196812491915583901178567108389962251848125890499428328105385726209084934208496805290751563125767236266610968238448526007502921607676341790178097924594843620730376657070345515174058663472590052066681396634305559925231191124987575149753227539520935427328642987770995680064451108911371882743465030903600399077564731272197154414888140051767245114387838950816339826819939755764049105918067715739553627534668858320013440105139045773803009068158685655538902992147605550854578499919559917490638211677937643026165579649256714054741461414287829774194858314971241933507593831411125252183966409907834430713254211060381672149384330220560084904714041317479140238947886048029550720692719372445102591789548423693562624812654426572082950627552752163025922970858302013641921255196080393866104232759142819056150661819630179864917137744827391183888321693355338309096121521643091395679513026103194225921841976337340576966074881073204826942096134224358269220777402053958559364664942977085165890573637896068957148258622230724241159915199063732236439394997964312824192391628792400534601250941384941652680368723937047388359613360322086449643697051013579861424018330797952787616266149767428383457548563543471064904879226998393389434216833191819468309520131697480657932751552948934776145375287690816233125045487293557928230873190359704276068325918692228720949674755298182886177931444142292536484220058601070238987240027179041605861156552283077796253434800831760610565960034286437665256644980403326163347680691584128234125970699587669015130541951716576167399424046369657201949126578380019234408376307441925103757656007596428255068610276608467008289470982839741323971543886376777307678171085561182572406118891745642613880151467927886877601335492000489279190834807454881803912795899136905980548785812597361749533281879167002579979319243215146523638496805253919611577924954872175549869713192591679863776610554597435838762079406518275016775232395508526612050723010801290511676940207661359508837348913077868763559102541652311885329559672506937528789159640579930859721035939421262237910820145091419746935872266684919727103704329995614751814187918144231197304690044529123555050775744210928517767060398477602562478008362496957851712005427106443664976729017134228041908085761943414819353536580431577015355007277796375475001349881053089753390774163621395202489047515613041197640535693838732158109285531338129810507528358912546801750530257363488398055146402881004339639594399403070392390162278093416412754884823251134091038634467145616443499750526929236993042756543944981273225280118360498657313283869659911057771027633263109989413049941616386308369813090288548391171312382909467439403161909504561578503534757642465409102332847109932623625048655604098288995866706982638130602580010398741534854166380304374217468230285736939704589723178757382822069757017866962340262667426975964024022840550984138136783192586927884519867043403590692188050060938551195799845671466427437500257370286831148308297599258312863948855481051922287682263207448697084482864901115840196187785246328751615929212132449291910707265601266017991425006653302412645403760933152923529505518122615021867670579002684034115325570261572230556542372525365703478346236043548997323499712397939632458593252469552757617549424878029603421465248857492694952901437766952862151951565524608873283128117124551763037955133538901074473124189706576011869976907170211038330652103524585176706926233458235480299530521823284182992951238762230085827832317362134806489776401030922947354594559287059369215170306090767044766239278433374047401336929320127283052190420072858508052678833491911703107195616020877773616029959233072183862858110915115507024827420105376940043084699079781571033196929230769317246338421090767096095291256981924008009992340239444402619984655838085728228325176735476904829929688417569095519494022225533294429093688671956686831924168939071117933345998879883681783331162323735212692771576587322553160215213183825793492535272737291489958784009987007164207836058382400305939941149625680396270000856301529617161327682147172495043177887140569009742587195929372811180182858005601030699992101193947428384014065864754539699557418326722585763464036684737112296692209490442812063870088522287619851877585903748160406013657770676042184765434164338643963261538523068247107727820571694911753558625253254039339960035172754476275763159535584027116897976665650845246849501570338806667907559677301686202655506938243584329999289174467931914217900222102185789357227180036123537959605097085346280056211521030067547739793747082427236715298079650192657948465794182159229869583187044264335442887958138579573907070453977923988260202421978139097577418124171846334428629332157785518536209105565694215693142335889381977217341105394224777548552285406981514546359177437123391577673499070031362525023471325205712061199997949761463931534126488676366135229965352588382499474577627387594819117453034202541286204228268357786959073833550821073358683761555749604805598506341406071187501691103815683207513575440825394334355531243444845631781288922366504549193467127105473815351240877603242640080690261365617084139389870108842113994853051601363787030821346161033767439243428910298363772176473719017161091344991919065783915961774773532055589828822854503649547969519828882508648559091695893311011160934310984921422442502213750081728996155109277457807909799550823372234235494167358967991793474585288152975707639517429366821051317856972868386645974003289423794798321757576774457567878715119711476192654747269124957487213447019507269616023644323339595941067904324475456033291660428568922547300842721236768282208679362877939578808592840412628358811019804950128765812552545704659837474745772661253488320485150076199045191494959420356689730309807119696540368072108485350669941881828674503904770342189288395697490727320236251918944695499361868240144072120286454339957507040555994812457099266182938863334894959818230644216973413696517682978815860843296345657623248314851198039425304182431274834287469772424627620346037792146722054598937680666607490612570664540856990545893091511042353449297982991945581970165253587631743284989123090202651799228217481801896714527828745941546787434224534824386821584142325998342113881031820637078868754417415562864675337833257417188002653655546661346612204030581062400374477474932421043813109600108340436775860011131077176567935740220508694997459872085715455116779297215090714496393946822957610413334578005291620869987820481211661963923872069348828597778325244767297216108057781504355324144192962048967684656249616649378372005289243418001618771412412647415406477183101758238263374731548181344649024083539898232743039525608880997577459877106262941272865818078221482627152345053315375903002657784470488558025392728806843623020836489461416036255040097633205873909341429432125641822168317408092691580808363233132966291467302656543813851334716840953844628732101897451237068465298240964686675667536730089237130217815322568327146507386082357239143136285918838941983539497871446030208691197814250304610642932389062539741542970947344187083066937618815444036784879813558129797636672409996071145849791441708268923343229122106455696009943930266182006651706669278313841136947466648240186540971428311937567965436664616796526171102977710137804385986525792238526852337997220712030366929747747675255318882158108895173010514035491386834005250147122371031880970790979985047790112866042405535856040504613757268623875657571510616793250067600480715183596477160458187279568090778442637422611748463104294822512141773339422673896340041558061028201114608881991706684958623475858857621114156146786750596022093381031780285578785403354384682308179150256115661899711746337016659133956475908670922235296524285296642246070284517113041683212465388070356993185795085007874036219543397888945638522026335068585796789899784187459866890475923828147155293926711719465702480218136285302791726750353182572800673327666508491492069178511562221934002724464580613439105793769016445286224291223029122536236471737136933265559043704387342606135645825341843232369662511787384045376800128636653259225333999702236638230964100703081465119130107254512923244474763302523992336907245309409418254818308049584009597546783391209725700212117141366388349556332510384458038401095092397331035681210673974147290572314754419649576600938624542371255944494979659531991482470958196630584543196339366482823153409194895260684588406118063363681810359470300659157655819134958199923442099318833484857625975397417281843754154365488212692865492187712237789392107261603163207038395283494269680031651799681665275576811211055866576894946880917185824896698972094690117431275554579072213510858870767845299998146409145757789746226396694503240608820696680525519844502663889062874928458216842067209296963912898833871117734415702326393594537706372864317912458580099416856949801059437888253309844931716960183764356734690487757092664520620075799525741533531264012513955888527862625792850728628487812562629060054662595944638985617750827428767934657614966169527126771670775843138938878173936271625675077397746239444127301422615548052602235449972676804927121609022361408940776339263392268247839460685786726811851434322048472512048996477097590154291418404768498469358326384438165218173481544036668298127454004145319069286378922139180598919260089308821094033397673367552628132268900663973872833037110433063203644979373902358872071500669941334104599756345977001633729449153396572718172239942065864543969657278893083303730307451512908843201275335959325239373447223359087761217242623334441812598095120564453936755148103716845332769647181567441781037564387769840796794040318648155500479646624295560256905702906562486438795937079704869996952440345838274108654171223482858050993600366221411574814870445413481899754960948908004362776047477473729827530275886399733901524713872155692565453421537863462256062825266528830385207299976337093637183473679014690512151243195603332547515465960479854934770258296962821644597233852740489261713273889369944244471473297916566399702953726512035077026159126910284995347524880372165727178362062344324819312618074832647820120550453183423658976989250385682344221500194916200373917588360745824751818363301778457518720957360319308501523937317698748132688325659710347585518996227945173479946111953786355482999194983412279415340710731067308788122094976770715122633603274089372733949754470282351875872115457416897638427848864880431594100987546325029129838970404518135853592989311101362122795123841074076714160289316797583027394888090026755934975883442943735458280907724227618735308184751925547873094168528855999977439976426175978258601055873388684810327692713743092784532312827639184073886789398334197174847519108181494997589303909401120795698308342971622366639820524098063104825394236785429479621129313068482602422227050230267024649509347290666767280817530037149970883817774413336238354829731678837313903510135071470525987520261307373197121198172522592345221510321531313113566417453174930984709081142596237802806619223506476188010789131313809453153247668326490432821128836270948897474232732029034872636055979944681444249849155133658593664208791411146148152326796030497485176103887147236289812241240601689080923462952293126517893755292629097436970499070997798634621263582341178240604499680512051551937313194098195840445915849300000683848492614900793155768023550124558672215855700041764385524406776074973326018183973266949934561710785640943867882205242158265100532058673050425992041121615698408802750628873730671043926523050938892435960619805543378686578917195709043398612764188016383890981680833950551153319165093307461058251127305036372034118326659829896144390586257920636985806398727723133578409579910633768029262264206492321621685299507312588403902652149659342410990355763454285826702080058596877791266192729414905084048934387006316209392036952367952298896075967537190855708183524407819282741507221512440002743254817122789994541335786437608875360250728058560296968046597656977865432313775540354650500159137694834032415383310324894946121706994544929759211601789720902669353347850006807987632784196287973750564179314441062808003750044160346401036151035592250853871108469065851236846276612756765475142943038701911922550210051929376884566483913342705570026526752162959051684673668845349143977212972719505409521700908449918494346592293738106057690256354265978171732513610001175941445661068746656288964225594531488597325623867740464383740928379431636607694701640165356414337839603208845148410263139487785061559298834999510237605506452704569545205021216839400240809565089545995764673372631794129442252140601364191129240010626502250978103486209939194573756946223140034831106289526433407660353722983042309016146437576446198753427028838568568422420137697783458879402056262972716637804860949442455295238485401786910434955623410261922563032018816585960786841376312153401225030561820616555624639337921215893290316708642837193269498906662089863237816982273064783239627548856718287116410643680678392297220039764286459275764852803193781769263938157856615268681353140808882294371873476365663742164185153526853959882683412624349587065186185283423561278972300049807019563081960260514048260530975857668973910370541465051562165156050361363293606676692677656689663829925890330445048502881881434372727786502790939352137978786245420356216831916454475737585883996189654539131350829891314476214284086245609817404138627019545602077154214966375815772689472655564330630844310265001349020888756765216607000326439174446300394892002206041034827890057316216839458634145282575695737663478263708713697526202613451658560924046722630756413715245301807696764141941821171891004031010149180797115331128843245537320206444699491160978347447752136595255761187955275311133889565138218458897016768870138809524753604420851878305365876732131494054210939558629946285644979231736652175880131676932047571348747690445481001680444495226187411760968757977675505979731304656726387061909141606239177310183241143749321625586346932286215832589624286135955073206089723703410531121581249675929903474403069631098483600407964273943668816390488549241073677283752506317248886484174369437680732823115316174679937616190479517001940711558631262983554030023768596424071475448208742805454018040135022219597725675546002103551965361992943430894624769579680436157366643630614989275892112061980584319948874064263520200635159334523206363006581426202360557406681772845980697286081866096372760117096423156185980980339001545563676852740625843994852739235974064831375914685999233500035274908348218138205090863474374156529627177312781140760486008473595312178348527684407315505597941510484757538990797600742090357812242568987357992581240926766650111466618760643754630557780280925414667695373137304574854363519089819928601140618604734922937036750596520106948132919636238448190930381916285845902068219319354817899293848384352263973042841499821916774107098383097061000786609296547387076438130567883907166075106754739924976739196810055859639326371860624306900328641348653145024008443884974622350228421204704669709843994980383849351728036991423238028852084340036799840145796559629844077760761967750700029624261897398127329494946497805099356187276882150251484197658112785043291786726758642381653542899136790285006714613812057027812830206501062737902660715038224599964683272986461807137006993739530096955208595200179244995208149291178001082241430115033489397136254722959044738596806739971131075182151612930642931892609239300885303573989277605474932947542945436249189958945540070443134149413335480748354408597472708365724908963299123778601142454604630933063427089844487877215001509041673523865471271249163996742838995603624109166572441061209062099703230667548758867019974832436079125239930831106325640984487334660922615221903264486743263031562806177682962355367550326066857997901496934145658777865984301806581492049600844867510625034116244635395300457555852575623386838083747870350176809460821245770634769366771661143151480594862996645023554977487008859881755925473696306937415243922920657839477995089356520982234375311367069210254361491186098793155928244277510981937818441108454353313289010516537315358906518200197562198566001688530190169279110737193166882307888617159987386800944222188349841809330694394963580585817452240798089437407735094805014298032458710034874414738254050907486891155361632549824909934367585749291431859080283336783203324320031102678934841777718338357358008200422667396149543119158841625751743276270099419320688659233355677771017453980582758059177171785327321116643316197918920817591462505810621955477052787369414064920152370248951732215196097091777202717056746193923982504955860134536375534464325616939347738781505032665631764769267804640362791520390397439839044428569234451378239291890836313937275403925381828700539516976984198287830411036845532779905728373895905665778534868908526856795214102927615528266352673199091262307739354572365050191255286785403474556818691589518710766592227875296874033233944745018227981005562181274090153666166555388526199672648538427685809252770802056918535785227342569672531428257617861996534172671930668626662921034608266334733874942676719307476882702260424666016315840734384879484951721603225356245874898722343653404599255647451021147479434275070879238116047663272467047122221661938471580187050399027511684510378900922307037550234193760758564490074438648257862134479385511547078848142110312297043603407320296564789862899159886838663030848678563631629950951416929233363324688086768190143310880103632615994293584299728803929419667000613224244803082815160130724361819323196916909627572322545073179689109213298093682970919430229123008153457550182295144185973557995531325245856248925110429902537436930229476599718387853809583062795963977661072538247173604127543179828196388504218963783747415566298745901023342414360952511960539474164491778709233555575376156054504101508440282458182125677589373480878080634436202727338837963453421004650197935144270036295043798402899479042141975063075681564896903670259197133961711999444102483672248266256203506969306464214886717021031603381356566444707006283871352276093726107304059312570572349032317377954853383390229929497549315244530174053541456962655021855627116078000257155863368893811135983657005274733127632917008988724728631839629476648204043089499997750852128820824821073620187943608854323961661263453330980350486024474549356494314578105555961796351397831956354918957063113608565964729926467945395048579485479196209959345405461133751759119937588716742751688825424286791700082545725168409247425321677402781047850881450071425282985043100726486673784659122226498125238945489665138625469998052221995935932623665260178710401729118488000831558936819167964114331644316651197233152213342822665947045314065707938707292300172485384655796850411949466777900986431755849913046311044939269682503498336390708841612689994611974323420980608790566167912993414334150157297234573616278942437488459058332008102094793405827253358092595980058264720899885992777760517060124516002114431137325001952572770685243467705717124053141323523934760931452913154533777471275959790410141253097697221824184904787484501657862270006944989554612291706676853048722968983050835531143079410640522830792446032550093386036235625546441410637630742877535102409217271534752536062815565370121863590657925460417905073908761037052408630102049451869520863722027219430385273788223249739829917223985702287480627221154346067126493132318505132706126756938089619323255135864826501993657940442167661301111250039503743900443682642640609468410615917700963638165068899198489220060054573399041303863039891504510761235120320703845101997193635036037505434813015677627109968567688780843237052435835372760950090410951927046690150795392533183079812931358155033808379803267652452114903931938435678367792386824394544620436274899986560836920069261005625453858993397333793744878036614066036122628397153506450324380150063911556373715753049138091778125495344567178334843935379383803674207827241543336355916486860854762588277011578113514796379891805035080594328977442174124784426421580287041305907617635621034328458274144409901567323081700782272558790403590235930517858556415502496148631950097373650534508221788292183285067171522117221353208438043437142193311992671479561005651431848776977866156714935129214599335637208561586414624392056664795634510344017921191247717250283719387139067573877809304826223822597334593545014082180636422279806359339335099152296473469062389686008882446724759637513310349275557447501945802530582138416321606531157253151689705234986238091717256022484297047152239396880232817278251519180401683623994731376758565708165268130799830227407252896273421693157086996684183038908184875190788921969902243076157743428763268725470789595841657205008144449266607453906291259417232159101763395229582535826015400966340183078113171702947746477817804329592671495667207911681024437395882237246526786582571233071561789203162999418218039288638048720571900090617863336971272164596666437681619954480443846545428766656852966127956372914138728332791367182440474794956254980523034748040577204605414360604514994552130846303279952739870572193795662348199908702079352997825534744016693960535921369733515809930594700397223962577016189331517516334276442556622613016675512856604323465714660662646917839132713617367288361611064223781037465275551745036227966760218416714411379881105979540392878088983944949395816238867913831211232595136894462680724274096194514221914150091984456758555125952872245634343525079131607667808529416005226493147808319176329625306558284595085505420496700705985104257526891268323388751026541616111535555011339811384639275963670636567584862583171978620968427415448399558343799048621105328221014886414247243990534004065234831449073532523024276586520709180342267642138090531937268018207864083803055728803779266421737571187024120105821399194901050085352496325112471094623161151656262152640040523860662038732283968215670705351287646469396078641615772874994213985850468584302001314558452882163666284566885348681696828324532111604964642342056693833358045661706657767876034177055771512573336735228955915573666274260672000262521884889142348213383352271433303067608845024826904580139298680900779048648983577045928146142007099515530553575692449211125600990720324936666253367080199467252311017160193534776783997813891629063351116615924208975057641608509958766634855912952213798143092439021830289120393290139784723245137855780924725470640279746975381335487029588693201204737384924004713332481751963874576308725028922589550854254953582280065877075981328291473621329124078124047429375899337078208248753076214434137749702527676174273818076896738341364075532798501139474846159530251096326776263260757910023954505949290153171099977622860198199496506278091331475906030578421422844518088431932839894494937200046359364753354302291261228909035873093336434395832194959314044412251342613988561218289899145343113399068257171771505507531536772391058018690925319978981751605315129501570867048367791692071882762426618354379515195164463048107699852547707729807367251364802411291479143779678904182030324907749429245049783487797560268866233373012390325433809070789083249544519686793885290432555271210954718192268293254828274126862924166405460985080506785338001992278536413351252519743371898076015598843944658469958107863369177312741481153936360317085957654681387782212868203171582608965630339287646287653556469943077788455250349877906333834082395878984418990064272601338349057646551586630669649832181956479583322135910293846493934956693366128652720211759165393664893910972435435585262530195367241512065235171386061486168172259575755882846723511376976069285639842628574785094194681308565760544039261341766956605260789455430779448107079998211584921977733971455711466165637018658805450966870759455395480852666901367744478062109331462209391554459076055863871487418928810524904858577664793762551989986259284546176804994589907134041702316083230078944689371939758332506786939840305982633142107856702908159818244125085573254812583976023645319515182581419157025244112054967767085346545037202498331889647206821817614260889757534019403288917175511309572455217835387563186061296233351247720828541836556142187830720796946928348540568711365567252992238280207966102135237106201682876288311918198268398140444243727506343939348301787837448142441723074844134604622948423587026703130223659793213593376900132734457987150822460886138386763640622213364590235025938438630288503589373995509782054468948813706195967852770115513584298946941428026862124650813026863484223721243772448400442621947377948023043320716493029490277232345156407316546205711365818457834089049326640375744655288071170802995870618885402931044811625464960195764556638257842319676054514888811087550132209493018676636442450556739614188805735060038442377564261784705692800716638499536040469246314283450706895430002887020052963875389751206636936460980659281660611800744563338954575755616310559407852316839073829179133975440773591819741518224276474523140441096028610173510019097814041370228226995865826898966745452349039229006815552494806010939688020274623971331096681521842757762535172665131243780155241469711244378063256541106439561765116945600673251738426044901186150093469986470132717594790989599991180872783433287345044927566349029972025960406196586517952743660240245361720932326020337947814311670298011890527311649790868307256449179212527648583282543403349506587894920512681605098148746956243087216908282455715866968833885715068758680947220435827563785363786823869123862506559232171703175381534266422701581876361567281177429743761149191464714907459660889792062699313547755217396050384771445661325487028299728213206151190688677900235287431196919606343254737156537571825648125116360881309627565435704571836980532061116591219591748507485345555576232765426783241322874678764736483893161082617481731630608423504496099658259252619466271798836830261033993430697822415646249266329508458106750918372211634333309021277279789761866260199838204774063945522863371613189886950616781828107350205964039116915354494875630997893007540572501940941242184956343799178680745661993882001763626337652873087743107691823595489086698514128933343380164328249699257419919736357855433186268117698657256089497088501569361109259402440677780936212195786300064721778018944417579300161577961125839313078974340147504862812677976719755026834279653657915968062861945237537440096547437879045545724382563991325821632007287167932800839988914092001499570786173858183336568498158558736982126794984465684303881961620023907745758737538089513625036179638139481740061035960067611145718996115651286570289868537532943931674670048171369309155630077567364514140135809438675036763958122695728728014865413855891876639482776101110461831962188105108533309446205454934301703925863076293171694446989201808126989458773013698514621339017727278846754808936860556628641881703864325195649633707116246391469296707794716012519078865881684547573515795486062825136145087987931149117518121702720830909345893253111523529497536332753322346419048707926680472323341646829550001623333822913134808693287329234981733227181207991080897891262798447182961073496343912392561108124477564378944799181782385540584008547947982316300737624183390360418126707938161488745094315803440018953129974731084417056144028779536323878169948227545254514487941678696422465499102429434130738335336649129717948525240537440619195280030943231070996283508682690247776934159416321174421816653256280941705022650176192150592716620211046023857025924751686398425750930803265214103941387821145384372020419824522149274441164104960628855236070664993805314145031384307614827196822114325031996113863466486133913657685798576534524949210228320776573561370217922454854996501420679947984614928989308784437088507482557445424858810517574121206304395826415819983681695071890365768521273162706405835843951730303707664086105683692904521372427657475267147772937954812930195793693732977157031342617769677395466928283857844001786830377521909990868628009484845507489386884047113328865952654490155612924517382509509582599475578711323470091603035805793187969537110884430730089381094312509302543648494967262780713493236197660339738977089360907516671356905161124368000916687296092761578454805821769211054039085758994818967843961468084611530680222427121559621269621747931149805236847352402935758681857728938156142498955781187419080911911843625185133082807777205801957203157827565647296792535214540215713126565147914810032627768422768172618454006874320981226297331360734631377437214672638263968671965738259596036260775476983408190638373129957818085813673364617178001961287772157674019725591281949897681504477419877453646508848691327867436770217128041656144312630509278903027149610470641774081184573357377019464868304890390855633725459640925342176810956417720835683789302562343568610627927065834255432105793061377488774824585500528740798694879588771751402159855450821822654516840896890844552307135893000825066286479618384263137774407489385963674117205149920682059617452962824583600961769041029393284092435976087350762354753422670781570284084086390343538571088573638488131041980176960136679876807271708606042925153435851485518036447904493905544784690992016722271402601130546873780985681684055741483947379425526528850223503556737889016241497611325362325087431945773244407970180630173259558839387088249847111698018647353486417551118430956160512966290759764193843877083753985532758937641353310097980309021158124207275521531953482240164190493693249678174854671390452338287003249975689011594533986183739766784516977856249787261344774259396928932947836141687599385973033063384317106767367588536362647989937839009339342579081721937144181402923431416797325882441540808146222642905289476086847689984113135158634983780663602384247096368789444607301891969334048616014035198614294591155036044440476376000053279057307170080331026554483171268077257372090853630910789388776796324528744409058354061939447486268815707087031911891692312707449402101818358904104880866948068926312129525681389088372836414992445331631867241586745842856269874560400704548629534130790811303986812678798576252545225259102425561759348597838195790194830582910915461677075255558804989301283698435555237684353896019237218052101009312902336221053949161042116705619747016956336029220900044225296359212592611572561714494742843703778797368833922914515268993349200429057261430110404259073784430074284651945455625103468177550058817108795585405138802314888299448464903422376484988494008059458191367272651285116672031899698078695688657599754652978193542024402982416766839715941808189595637926778566986166698050835305602653892878866653726822325118153700047870264529029008320808151476493953962459980590207783749581714964679959048880197506004835827957940305760695403443641311797870232840529665363257909172905304327729346338210217331447463057567083909939905026860190479650206984484101007963922466104634696313959573931623187966569694136222194257224690279998916892957327666310426693833173829623507876428276801508380551552734473473086720928297276870651276770101360974285744795717061924721411649279572540617575028431022797778309036624988953653104032602712500212289560834535011380778823636882219580015437926999157517532545382321325851525859591011645163861025057536968354509283664465578209404627145895915444423554174140281533331460578794129951958911996356347722797727542532336556635285629283521015825394049819675898860365813800807144277621933418618266953245086627413527391552880480313504637941570945539799405839433888394577369266239898305906646935198937488224651647249976721008354960472174558496112014032011833680401909511006600090554005640326856741849034029795948371885791798771988107924905748460553895637486634212486099526228594330175355361400846355437690857213760959560006174913261714446401976323247421693863776041182254073499756003057581622592587812212919149105559494617684985701128427447391924169738851705317138687280247171157530505503216769230281700817122836497664022900423850448949019236158463360183313487929917154420399454350605222459216800767041578870848012722817288123581669900463559755688950060309585082797250436524465927936302972687724593731207228677589037631107592918488344707077858178060909850027023374918752322400287621910497565805500169890870781787121798210712565867920406905207344928328534741379885165213189038409187715975211364992186304748890588467900321075069670576215450480929474867642477087817037245782910812141368934589643412087826522966834070243283270586972563030003209578911100832642432785720327402522878213458362491420515637297986580715190686144472913102377885608056368125638670524699226825886197990970619243842680495360619289933406488996235207560072446646549638897171604765112901381989688833374896527917169298208936178816932171764661700411273058546860338538473060779828680330416278845671030394964105621904021719662259663463224646988407111316587522181573333187353044152553829847800888799417300243253530017277978709279117554237668884357584397636843112690051174594121516480123165330006711834565655528715900524639404066903883534777045171619658395177212963406609622473972096056427947832461907417995364676842008161037235673556633118082601645385505342851280389641938981544382243002696580063837774503356107634612165790449697328579005056926463923358457545340475773789356334048333951052377949952220214272227527053732371008606960596013886924893292971350288169026194046429888378636138502409276328483867943574283190924252628405802920942801725071540679523197054246241960964045143672941790696935894974287675614511880351583323291733791401372262982459153812291513423068767793998089305521548284620221891108660030603862930952716508223021406197434785884163731586483202174318905708467754681089949790184786945560535935798105796318840619589882585054974355091242981181325786918483143516063733441064183414220429878195917768326496884964233458061271960739447152763516019582243969552004597624997025037577630227714485451709316234054571272700510510243673795294025708550480895412076490502437825094164181439600544003728566419816636842175802863048854401457654136627332981825678752151643804322859651889046933142474949363810894258917960871221525640566552926633361190195793213576657803245738110486652433820604372297119627365355043840000512122732511513019996637710506551751455110168255367360872264332432004234693057987817746744005022649939870626356188980017483447213072599965804119733837292908213038207728702664119192714083244701266556076178941461218367412302118802310624400283010137251206556952945471407082232562170937514602026388099566098808144379708594637212749673449428789527494984212865607413540059647157269048252101002206889880915516394665549283737373752962324023581286367283333333392921930022189473017329005018872791758989490553773412783426773824627302784465493387570169178542189535858761618432356807100116426529512604666998492238827540310035997431322055268684458918473811752156334737245915875628529614866624389826949607031927327083042282672389334373600694489682676275000743571648159392491390881033050855474301073073386918499718162429642690371646815609232119930048555426783300144542923940076927255268186800028356981503585509165854301691248655304686939772614229309528063590688948249885391310428743963531460364429826509028313244299002186101844684016019972073226734275458373353754277627054507759714302692712005656719295180798936650776996361414428354229727942311428909570605172043007017362666453971473708739054211138991370082819474177628328371242060508223337180430975374537256142029680344300184778291262379718201188585522856124688132746823441514242470979154823393659139839990816943213838635697510811714387628883849673198342314360652135891869378657465387687329946404922094970640914687944231476723077428908087051775528079046839253968379249615908991571271755775155808271028175064398178617631922182559839689849409855140042663739433486302647834170094446642520377558638277113686335288933295958581238546617831083107053378534194667409818854682570291767507565452642982146251860546956459706252307303293396935241150977540072185675945801360448880752418461591915190975833691079660345075064574255102440807886937968233452398686564044021481405483241570422891598264790155261213673836953686692664577499384999949430245409458716954709734194977878532047380989322363719512784384110343723070719786276867090041629290461147537799630369063814859901246580483460853981573935079478494882510580620156940055317566879051905197880278286532388216441401902778594065784683504138696215846535445012451985476739257492553738686824476403425412476185874071202181361644375507239787052644705880246415726835846792620614279780522709269246283815612207286736074654145546103208706069820194911548423434814101257165095805610713927044798710649010471182725635571118787718789410521010145234718489614010175898688426869455413229603766738746357083638186746124294618936463295834467719679065032538407830503354277927036708571491277381066364692582740044789870864229408337151492392728808750852065670489029719662997081736140356263660153525854472517310077603010161188073002496914503649646525762235219857352855155920357785907618224225627485556597395377302019113497393754643883412640798141078958421018160134396247351209033110312100590328056828343371713716330898839932020457945664207695326168993567070455780860140285344782492178421568513482033934893755498251125654634191166764852393160140798998962750166784612562397826782657055106190610284526315899868804219616233015780588862404120749028971911424690028552001551577284585702028901033040413382542432505744027651044172688215547553556322965638019378383129248711555688501506811296818131925460880561360400191477680583176252357410960154470986439372030436725320279400576977728454940558358978199166849087912077290662802375036297164314209436514704599039487139593113627521111501967346132199746440520081033779067521476927449954697306198341940957956252854127639332616267681076583294091410055040960908048521271634129889698106792341205215176294851126089102919342475669639738647602803722705686191058907426915449907784140311827567108740300579346856034286488425511053635462035163731556883556945176453395485474502313155675329757097364342234019104370542267875909398333120791916564810829587314217560876675426822452316327154077781407812917111587133898440481704712630913871631925555527627965531504659079941604661115198429213490560019540083006148154276834811248350704044302059218685709582225679279279985524042183568816188590474613212980069767013308703927086722821739299829226007797530272071541678567795635029034597373352629247442586165772174648341572720326321438153809212817035470438662433136590553181164876010631639330511688704688294485608816820896519278689452098509079320172008336261169142692550758753278280658579673658268753506286448835244784029598805490010500640795528783475141856140773319484808531703089252062679442315032479335824430112146394363872117118980223919863078750738887367216258484793437688616872520530238299498274147701733093395960288151382247467257447488953284010766625448541620273893225308924504117759745935928194907726717682017327808502723323400493867036111645442372647393451404411713158620652502405099740863768927816087666677366781234562398396744515453070814759777107202741646377504502167078686118870744470952902822223365192644530693665948814894067792074068477002920813340493470722693582651669497905802323401980946901703957871951732113852734442490869556993411443523482621421683421414609733559029370306518937457035710742951779571702307221040139233451745519689984150549709812183720989195163147669011974160834945238909939977342861998567007593407372346729148939417085311023345656718060067256430410832140027909947796609465586161465820905296223801445096173984205321254833412857051314251609272000771237652829217737644671707864295441042526377366764174872645637591298397221154574396313163997646922096834257341128970574559366897369698493035698234132812207081576219340482638330260030412230835515822448331496072574811757256274566720772391813643280999062501556801613106189859673509235174653092922368925659402240167615865531047364179528359151225138305962574558850045612259307303793063052849917552870564178665169048094617175519440999336951454081240316583980930020869752689755078727319003455869518575397093333243371981031891217116045978069473051596269607501525341497449946499786338965094542381898849836693172320796497957219458823353745613126937919168982470503095524280217433698944719944882654954612132446768639689899797463102976496531383349116571946383525721521954351537204879138954030035128174532329119853401839140135055776913301279551854177312898324610832938494006520146789523224429326080284428632203306647049384296448240502550583919329718636561299954745807717404689903357122012675109284020479141635965871325305029845228555186024785680079609183913471472526575346904570452096184380269120716546294907271547243709371092430866660239714038650575451599374310784375625007613090872414779191287480465538189042586466155957633925223409936877609610325799060234624193659657044241018725618783073045241862460143374602211168908076811652958135054480505988976199294878412635849328335434489367703730784214435507562888405667984770846577981147582294073863227715264462230336941728292250210792970549911921608793449218900604019821398520219684333133341249228971555229361622590455932576068846841973174777807936147218179563606855763686850880367354820764745889031216017846644810304413711487212115069230248378177688337745439120063795091984781325339335270730986885695523696590375589891152161836084269560669287272205382556333006256600088372661847722854454954504958320885338136315051709650159011825758836412583255369546384053834297363344537210889497470097049890177380348952326851806347794345292210037199823963897746863956280294903395196022827552083430660565536894330880971818770355611297789884586708209181784998032171542541731956478238474532106662150837637088900406271678347902819552543984412051041959638361564063693083083971101144474653283321711479174730472831700462713934429407069128356473133305423477065351385050369508293991075418753952914170155993067614035976579783786727191048409795126775826282650438778128069460928174073724975803432364901999419878386046719328118472751798506475475238417029642390368490335878626179784468020239887939566654801269225585944115719793275556421678395714754017104789806939662053060442379566838407100477921796521214081884026501133595253248883786244021612076316671066615216903995753278620183235189587111964511505930328593715886280527175042103939907278974973857110099186840944748709240292884971976419202823778591993202261465803954935877946990504993104452373844279708161972548453629436093866851834780058901565639333484172699784064696363865126105115788510836935507834278277721300554176107577842567223091054549167401169161746529823767291646875087074980181311563806939235122874419188194542247358038151820816970369097483851299471315536823108207940296186306709900787054907010833146272381748664596625499190989942949530699874266149575666994783062847400780044874623148063027577233737714605025325901369567041667068245787741040231058939345878691145724126171920732828938311864687760538874117857097257728338831887262715645593781973115158633263115219528481422606892228966162326324265046428351332259102948593886076252967064765913664837002003001503694145482074419776346170862150838306581997689020543544947958238327968851187249104241691058473966083165590462120984885362488619570017909728999975241917062352728800650276214396178958082323199049252646250705168522133233325291169107196335107918507668259501585206058441693416528896539233370150308624665178776040157840662497544055590667709534401137776688101876442793536638159891897887121660397996095670939050237985962615845587972831098963537666278796102060989287405275332651183752229677638838929264998800330456708048656658948241960643543946060878830900854893535973074123163168698464307462831595447424142464580759829940595736350433609457418273742415957212063586783719121664767576400826379742120736648240172166924227868198381386895876217221142048833631794069104537722293080155824355854392034723330140628265147682326432475174614440957515819927133866618975463033719419905876278759182553083090148819402402867187545019965403561175846144473837606087019257727996187537284680377649688023810867341257133880275020115593017658155972141559497800041602689823298819062144891486865202150024143218264811356580573629619186977428700152156503869919042250393458719381369136809208974985156934663756019862891278607980843804726083337899680670574871209508428464293070506940548041571825686506311766957176148622901904323144989381608643883073093280215192203550618440733389460130928402309815679710891659243091809156514580375284781682909097288343738747585028093099804812209466190634089285116822891827161270478530427126914152732474252401283721534571501718958387494468418102144056106082906030880919415069756477888805127706884592640641085141015768164907538057525850373415490933854947680591959676044407285855765789813899125793924755659063936199682514029650107990782574807358580744135182955012250786877164190152550267443760901779776006424621900010523536919587256792088612048373118043320196794514968259244219360881529833831026834790243145113734265733230109510889199524464468565354458337428486280015121455043867654067350605832792319085494831497925886695200126499740566283000431467803538709713078866114553806491396391923251841238848763546287741589932851866047502282010993846356521905319580106527743592126230648470143517203712759443059762056084353127421694743343037892492613053354189416864087501854553012817714902374348493121307536039818949054007256588690067368781442292876817253134189204928860832004160503777166571578007571654518205570249556841230753887804076697403360726565866568102064929288067630163026013120335437527442779660646059811001993100284106049903619298475893364013450977150882421179131737719220558596560746257869060064756953364398466924720333795132558261035091642431499422314144115803379476926904628837883415457707406678344749175964404145599995077142381354338704394711048121408592014989454972893291674451270430898412104224898094773772031520292880259230279498956807209955118729239289176031169608730825590163222689316140853425408168653078390449763697940357452228188966444894898507711300171020695984371331309926858525818850278168811181765939249263323538455341856188302631176397788086621922671633230830934736676764966491384463043077133321039437972678590666671410588837952371983800919124019758187890768222472272523934230480194105529833588944458156622097103692414029948804600270554556986948932747006310197475514823486100395083458411400166443241978936614335349581561062256306642333531353460239718801510061483267937768736328392224720464005676130324344866001794353059368115551639415790806634647007027827030657551429494241776336251016412952850563482485281775058783798043440389678146236269311840820903876403491961723038521526822606898465710073697525509658009427018707664792160238783619519287617362981808932133528340717878388097278849864987718701741400793852638055792229141360462857442000469742300728277373531059304224091743029646392906780584555572308346299872520814124510232650015771730287878266010660423507505487734097417642337506793396527760631910952007392214848072621757996526220217560282448759662759477906652949014724336380349985140827651091238896067572417679180723558210437827474046241555258778672119295295797803828082716718890894648635894719469715866480898687835565613824688920413668420714452010644951074751781686750613077558677397578482205035724660734572618279973000473466395972278510318975175697452234000756627179706835523913943750326607903891749959619784574948927045518553371378654638264674850997531001027240890290613916123368545667851688018738976388125858818816543873922612730825486086117851655342527212466022803551748192958421726837212936270388440285691831040122610559878712035358290042752735804365308894011881322934835704498885230515816075327516244958197010949676697122594232633208436081869290774010513965469950375931973144657205230879043167833051570344508462609558566929433797998636423596297977470063199722473803915291365752776595121286697644538716277539051908796549241308795072739514193025606960970758159170198049575889931283229507040779410740477010738147927827737646167777027640092765109821158664553905739704518076234752449098595360580714999650759051028333589469126706395866775463358465594422435277483862799427736686801230083198270424637544441131973501755426954420517449539334994477487908960796786004934360605811881247833545872828754235520204936315845495497593069823186543936700344272343027852644010120964112642993605962995475693885290874871117660708475093933324850890561275633385211004357781199766312715619353985669657255955486838620964626085343283222729633955199273427601996978058640484078461578151472736140347098029261453982275039979293316036973818407603495431352462094935654128039220369230842858833217419114643236380169833816600568050265530133759970890553748484098053065796145289672522610067289063315085485457728628828891916418678344808661424465978158515472324584488118128590636691007191317582238434208557911822713923920162951399261608424713368834812858373968776226109244251364073000795614276364974683083003684169803362198309635418758799188859364227680783067971631113119054842687191612099603058494843449423074640526364601539787268247503698642419710191601025418610602455235430992385999022956112045811353407703517118926897101171745429389883557754116292305745876703770669327026136204930254362732404137562368519897970745262581857220848904703273519390841698526701892421458546643608330648475388844659201707264477459025936618829494973572005860063120337437213915211143951889092962347570719819805651896542239669794888452103897579225796883913535016455751565673828235154376535404933981466409060646061263244517462174196647515538998221735525452708302518396773935258773278131539935326920857540217259698755893987650545283989519864067252541449656554253783443110023962376852319737937657301994965951659906226033440561129129420545698635903702679679070449738692265311879126863495401621331503932370315955088756987590805659440795743360285955044835071625068237849535104858800646312274622720751904358555707113621178618623858259921850315466624844369159826082527344203928208590480959341460268064673141070934934132146362439257806669425462078110695819829117823236697449123336135479375230914894193495063205807093688709426148909286975105092059304795408448881542140025491682611715425449663691292256016529051116161480202481246284722353537593042957010999151106356044556208415267443434780286341525076621196711708299556055510683483813431628669401571889170875977304042160935792050689252015136737692793132208623874332475912222542334272128532069706807380573971156599820647643309972740795824344391062141991581533371054782646306142778898268475116903001499675552419912265420643003513061808549638086421016156612080624743734912566105351430349211622124670857732933985427111667429569317382245898784310224386515648233384468597481364380945356108127797843972554800516097414727101304287045959514130249215558660499781939131268180077412204571043246966158431441842862306377023883092704905110015881270008781301224132594864368981494699769612301128231703717561331444893907927717878423915904947712608212545345650454861421130028594109495183765037857633849322608295659311591817451975225414845621028483289847840551961413999831517901459371792378198386258169756118477293145629669885809454704737299183210823164860294130834624556172848813985102800965947082571526281049141234912572566810010166493217134058494136259330466591594327715841791245589339111324018651797238397457822303770434507907590647363956592477099074485761135522109803677576627015476756206544707080909161878803545021211914625219431748908460734007626251684236819182599630393454188357573031241429348497943647514797501080275827732174008058622309240392238881584559303854693161104466493070470387595096847976173227905118234014511533121752922493546257346038782513857488398761752581713250066475679430288513956779653858969105935417490280270507078226611077309410629734582052078023340588272568133271380578367253249186822247924069934115844441387172010892344087750189873635050670514252249700731560092008302963723548112600540826458150643090723213643453454609127485711299174154322736846917003127985629340448255958098683947811322847427627262312709499948041531300945543279155520765527292823137909053781529631396506840463260626352345190696791852594724990670269305262177979296256180377085921497883175057929481152302155065863806215827112375791603879240925152961527881200448611279655158053216373530233889590254223189773654573080580704099946154706633181339051236250510164881615715260107703631099708651185925447643727387255071277892637998564126368850169653535468724043993217772785536959929539798207278874625761123112942257679096028019533876163398619084467124025377804113976006328950508247773238149806540769895580417431259915195910621045561449905902274551481393570183840644402975699276380530597670831353336320404102140206436139309104590112226959299490137125238384700342668174124735153232289501837326565954239238305489844786647139260396756157070080271169719934044847654640889326067791016306777919794784307684795876305630538273770953801775943013454632184333453767272666727440046752730972049733171935573681805125580679211432285024244371770433913728609825988136897504189040640578962486043107955160285804511955182472173751305600347166660216519636142225074017231393955450419160802604865141993272404261129653066958010209432710286525558036521159056198967554617163055999989803747810529388739064322316107622654866916996563589436812938805099378746909751350776464067120370439976743369667025205156319423577101495399983936096083725180840752220679632876264613307685622483393454837437174403138349192701829662844474384861736978907796845063410829802823147139292948428891391331291502902497687116088342547798243965118667295879046530775538797736105437090697120526464963386003791592342680648247676333620213701733904800628343148941475286240208271518544230244361735990852913464013848591801218293391506739291043250407165641189480316140155572167325208112519397263865060193687012136642711928004661577711375133825459438303085097070756573921045278734391608153431728590773114273622417780575598646026846032319695058565209517493135304476535463243670070783386008224771330400696502865099953109717808059536251251679579357177862580951925339193854983792015793298662998526828274874652694405498092901430553899039826383425114240380341101534659134967446490491089707947568230916278994583258960606294089926327607049762005088639494524857581266311407787498088352747203577012793709891907477348382037895760490132584450650059665376039181710869268120800505306197726025151969574522409915793083447225016620637638401864966565794188192860052616235222362606249863997752277152489589565472397203104951032356946391507235125902595046492626777453524696677178701279265090614997675962394057107746916503694595036574570640847670760878467230487031909327999220073541824042540430816856316931009555232898813315348324806940524038058646918974898890732721831202406561414756835340250884660007287460530968120288419672060462213226343206894024199240181628560092865664386088561099669978839222461323767706108890994464589025825895180368618308067044694795570712133076120438656699780716190502771375202929133470140585325483275805241073601789197032822258931250419244180549083315203565020210147535058335789167007228874769635253817537849938729931704013555494129112073109202762471239417631791507839978281047166840788844711452412123024266557532938900208289847463217855409440518098543176629152104437928937401451631414060221979597992281483079804861198614558509698529027211210045600861042747658495247737796180471097275846637547869021802166625438754286091421626107388655342269525430848811404017427716669240064350126648165555213781932865576713894657067820970651667545636293929853594698225866183751971364194829236972498072253120070416243541432434982876521177699436184883119918874996791381582240930811419529344547385764570877531466798436468616469783834230374126016832167400831274246003181986900141807429522413875378946612208410794875528753268716650141565884728303317596977803623618477038656672493956086126148082171410149276873162227790969367672004082747470274532881339124243173839023437300806393946232255745331208908935219948735109519969481385941106477876292336433967098260775054401112013261994921585200941209665639950738792322794333575840452793378706241249062886233108224392824571299791786038885425298628803974478459195042698617971126748633819627247321804265560942966333838805204334474269776370019547410007648898467825394143502811411943690749785722605690620311584917023560093722485620776476152119257958542255646139535102011323753051403729138721480405146504007352396535179202764794827659557261510493191220394797387299550985274756755394594342800336241667704645476202057548265529892214182005344681493022044082764615791590270928682835548819186525112412114493386244014209032244206067929647926520241961656866886675091151183465133092793963052593691284132981377216622487391227626975186680801274148742891301113214250884313325682287948964939143712308985651646511197114042018056242919774368775254087196725227256353736443697387908738011806561191339811473590687274361456930949628774952138314971819251004346542786446756346462378073532281601747136858087998248792611761689531212920328140104775524842478489913491300519608329848266567953318733047035032653624700710083287095684243387191748861668726490947353002292187107758547028797292482216521041608886795916948497455481879094224999077286332317668904192048711413860276710301124811900482312809815043560115092532178528289431302503293078089317842465833993282687737454481418778881544772704682211278232447203015000281427920459182768308670270320386163954516784195057706914061390804555908515875423435777377490708487528780587086795583097010942146687362740218867737590526974862022913398859892522249242073604771519562278335268900051595476330582101754596068473803843370419166711231387471964244092992419068167082000654051307345779629370664523007510155442045897774213898557513063785854513355042235395028178283423253715264344559322549935909267965314469666647631233871223697613444038208127071454634535435179970886181354960143929413906976689828547644522116589362850112300491921779882769498007393736810099676495760907467179697227474714609058082926388249446377679870117743088531652872133922893380332236976259627897627482035318384545842322467432329138856494540634479654313813694049779801419519814270966006609225331746213754087780737811282294879371233703060655865445549391847795439877940487057090785848715010319966545670907949908482497037441142100278108467724018243700669614945020618335023789345067631437089690667333637242044300088449953137914190936577098383207385762794247964214624665369972974808461046774487322370091888310312537350297078939854241940244899695936367545855445097934497144166228213215127621709732911338989806393546885073000606047868570943797995180049476790574121397598252378562977152361642011568246130724168971176110550283311746225772121023484713738417019975897813544617944007961611724428294611821307005747668433868485408652471442617875582470523540550071992973204270663386071252671694758638853808760789481020596100711970053315360015631164373669192170722882225285244159174956023364419465504362666392865350653782916450415379949759153656088892300197041971694799189437902632072837589229851525480531964877983660373432182078030860143068604343165838710689092215583358741673289024003275471722981890971001102710026941830803093317012929089850419280435275406915368771647669062984610101504029899485527297506625168203138943428457484688723811746477367958849884644529160783170247268240124085980746648608726557262472083355740033594661995493705432902999269904751635347737338678173790802805232913794288759248244342463513966148400868556839580300806936203284028796210036538368230800400087698327871783953930195010953763373600718651821227260132376140045404051856679501254298131968207737343927208634180125066781843876138563709661459709055224517891453804685162345977728650756149827521021271998145859155148391746827223771277221018402094065253189282662806880100814533169715169944552756676388499853678521946486676601820072291417950509208936387929049965002814491346672161156878868456852683116465427195056623076620051886505833648270721444926137631927793265548057642562284212508050113188094660960785754932443229581042299932656490575695410582034557850952703371895116714811663616515592677315640827509700631523445377878305678440114794982885797545668082823945876548247564951458720539032029292337014637502157585188493426585908204301474275567394082574169219212812603137896933133655316304313819616320418562728068139267475112645400492259447753004042625355544068410552720592231452463656863492305701627301340657359846920930943138382269815313274171570741485681123562968343019902056278562292076319760290876092889569862750212050567090557265279014183551476330828376833411304222208557679336687440785150606631091734449453545649119149062200244382418637693834225366166756438835694328582105603897057948805672869617115430609502073041196925070938553792703539514578708781890856455158352856930583105127318943074953511501692482730713816194480023106344861544627331252506126250582396359745924824936985127855232473437557654729885122002631957669741124077615486921938127305421490914059855976054239726101283139737099461383089321167424838152147551412694131124968968224945426874985297512899869302963782219260120601264158343483526392054318840979639983811614666660128588029985342612572958173644705753923721032529628840966148661167578483291519073741756389563865606239256707664579981482042822420959146620020263932588416793475128200888455613317399924008228973733164708928850532321908454864535676416856013035555831411498255878281817577333370617807998195938131731198607157444040502257811404272276909171142533245183442667172406960235464554938597908121375344297481550534584654622365335027759374526671945215935409541982720996348087996703693188253513269436620168537899952305830255624284202513269040195750719413447905606094488246439578800722825095594647193334907306179770149838497140689379156943885363765425077174265803158454186445499514207209069638664311241001727842577167287757997903105434023030738406045376532589023704865816302851112384427257868268322275024557143569111857218056110144563486264368873261570662532367159866226316492396478847202108994431046818501167333783512133729980090654677978956442209426425012710577938550982334753796237836453744535553017080163231218654065198254294104604017926102336289032160231778219256719625343088759019743352520510749417172743202942893886506096095348675846300996441553561826971999990207060139096266364419020247605465917106297724992239373096656142498725169810648245839137513962623819660660264808440080980384686486261216843155606030573254862564435008257920423423456400584576644937209936597123165392032526168340105888313785877583284788531560644605490772568749334762838932139582652315887022227652646847299496262941451468229176506497792026407760338731817078647386833332641250971525481778507273294806299913003454732065923258544554849669250450734620256544636815968934260147582738575406330107631818049923768315728601829721617369434396099880511482227347084603259780583928847961398954003228434042708654880732572359908239460682093268295915569454425868529644570618299222583561202302022316421676444001454875985327253633273603059468739985939404161494090844941727978183133789150187125805689666529465396731306484838710044834886668999721487150573087103282853408305782428924823759602631208036785135348938658581988431171672553842127977504289568090049870812457393902112293392211887566323451311912443302779495007158576725389154543349655263598330512930350169149479075542615396703836287720442213928457754409433593614476158827283409437874620095510473751307546510037544985626376193755502936276004958206722549588038402580406292556238007558904961305466473694802746653251209166721712362124840369192833423444281576452583278465946753493015257052139028500821515068137631303627270021260379823878903156860093956291751561180682662996164382241780065188369768393801614833566717848856894277413277274453934387264901299817525626778498241891389732369668149043788388837103326844235440926396575771559583736024706829082306226488765061299295355586272937898532845792531565316148593875625040908573028009308213456463362003791333860720533269305467960140629691130085793864579311902422813136099476040957111111765758759531706943385922115509832811135071683807421504012127907496095932741212655578254770286695875050995969553665010083643557591357293609341296888366551253714506959590108888515215125798233737671967439892158727752420300486401650064814982364176995953855471297217020414962867129854566378426243840448596102309749103031816963714890089515787326750042923547549738889417642271858998346993350879578313771917778899772687070465755825284592985371921304759963309291240422168431942787775117828863724267965665345530167699426702478699745748204792151504720948503434411143492138006554066507289059734281621455496432506959460264678387371856365681237782540988253214654518969692117207291254899904098195267903912272290665495570230650222982603674944103162999574300300983607409746343906921039706627880896605474620405692112015758552020649097739901105239558448914285370047229100595615040326402331075598573926712167724443411155637733572828765397243461754118932077161341190424157004987724969111933484975550551530085119836344475940669230651840009959189682479824120789463890184156458910685485279572465315218864877565064958351040948406741807982854076596110441923554450880315231653421568370891292055202390631227227633372795101469558407169937964835535236451658628566792673369684366972236925584608516097598920734902135263121120188098223096755737417960757248279906865353310893106002206866967077030498948651104848032178679282832059240533725966695547444590557922900719145741971717598813555610334253202197050419197490253983670253416167865138826578288727657006374184732643950539669749459049389974867121477716445428916482215174804540705036349735416137560752516081547308205298573950209244234949263994690772776281664564623540439243976288628117765790684245872589275848137064918066441508594208175173515970107661139032764645590994020709619074316548950801451211435855308277030077400441814180809580939266209440263293827924941300187829616973367892202712778494821213751796596523421432727896425227133149761305893444911766188634107103783215722720156067856438530513825332114579571762806610619294063711253450020079872152211427724411688955069965087765772971940785893425046275730058009522380056012039863423205180547581457580853602613490462802331741892690180533497277905220881796351341993801842769446841742761711554723702043874519587945021995456493747531934089955363755390923572473239190220610971886014677201269786785356370098724929714435437653090050008690887886920637385280816069155679452635699365348374307182310909628081296972850068962944887178858993993317427721081052732166794351323224732761418323472974423601020862101423533576239248219910587085873092682786854054930647535517199271978440013418475345851179594328177327758233474460443083177517601926622333517434837906741987476731714181167463033757443268231340940887617780163513534957763376370870680876601678338192216601641397218415786291910156254583363645196664107574130548590748819986762013397749407678073261803825173610924487994371246757977054555810241616558283401814325965914126586467942580665223781940870882391126420928409280378829905951797829082330091968300882211949320108440481543160178057842268246981098068225875969919226207185444175091372156398347865004105845721180059495198064715538682909030432328813028225254189519539747782234641912820610608657270013202539375982651918134608121956842391082718937027732482465527254912869128625157900310150137048236236569499471685770316141520052425443673223685891208121225655643190680862771504931365423336047197835108044309799569756522369920355408556461704069154703881616065223048878374064351674086191356336740660543719824327214123857849023095203848004412708259125055297481275923856439804121988633303772676535472383037128126912405345945749879687222969766965421653883359045363522675706472636700862638716591817342939125443725899063542253981949861814058440014700160509048725237486726323810367814847131279215363641435251474835858724594691720616099238423263226256613079337225920109486844188735237597588417544635726509050833235182206844829455023236981065107035455652810131406341884695938819318015335225101224478168176378848431742711702105211532967210184381431274455551009025881885019002702546887174665629016107331042254735940568735267440677066830324384691559801307149076807181045181594872960650032984885770849654635795595349616391672418556502368489819865474753265224740179215857577617085435957742732750887666537280676426903633288990227853636945671227329246510457632928934233617951105643778977460087004610516222286148284220432191024879144818857546517721129363463236358804654792349388572714992243133215791717094145695551001233854574188014836199284874933943467989445837992501872487139717864191402676691134415916522495389216621842230667233387664417857028201198743842682644255555349550778805543375788044455118405216605435028203108617989019622501031294475653000903294183943015808534649335173722877661405486338730781725835234423705194911917112500326026872801713175729455061059193018098011700952378748032603635793103071823360989513737079867163082394246030237568788730737100501522626795392881264873564347134385459561245972635952199920528302096197523208250693043836286724621649481008252307856318907927387266181560543906192552299778237560439752920221718590683368820678375198845382983584869971772552898954915085222619362673907342156407029270785821265084302265613798124804092782921996354744555012033787698068025526200150792921869090295759335978076316821886412747437754396924078977106656315910010959741044014015249569702077882414235602890189331552649375098338168711053011982106281210105083562460091027233270117705159083844165382951799030624929432771657765460426161170189807063155175624611155176558639607675775961168627676127038252874740533995300016981284446841433643005129619254236288241162623714587377511126644573220754584096370782494538125970114385614271553174851843101797938708409099811888102314476293244865729186716077731363668496930607499047030501713816599865400997694668780949213431025438042433308454800491707408539111972380631062753496088730906766820337182137842263082722895920539820011736161470250851257438103758061289948838195080909882686667047560983170018216645798377869492670604391893038034822214488482538022896768988838764941022474753769326619654088245134897791764472243939375207833695094370704036321277828410089561342957077840346737879281692754096731464161220001455687035229335517229312734171762171213698629388271576981395661597311824142987530054582095190635775168724684754789536124742471526005102197618136289326609727159588105974505771402612243843703729832859699813041016466582211529879394986069075746155587428387464387629275370807874446925255152247788184394561172040381267294797379969715307373700426283710562764791331814346573530833393159159154363512113684919951693788800802682851410092485323586008347203856623181587768459212173419317609285692774073504012976429569386609586977971156283057116277675866483367818491803143582188397172882454591776276896306339448530696604595200914775949591016135985385401646237403885244530714233423929486337977782427475381216626640465770700694887255049319830375620893089329263885774697761759042830795793717064950070713950444971529563631754057025505104076479910856811506885883670662839067947415108336079616509172623178862988471721079325851903241998085666000454591920154899422841637005714280520157872186002650797111992200684056872870143095706121858676652317371717024791364849050762970496390689407773341423182363506305763749437416422299523192552100609051294413834929630583013019876847970551547073523736441630997636806940708944862115375367029534521293814091284916230100545860900979924613160843024353532516525696418147116473697435425948111008743137289802306506576143832167542329318420869127401284696581508899616559175208132575385206020287533552678718074531966426066234027843363082668748721780569896089569204301174607057686237097791116620669482100308732076477236721525896354792813377047015605092606327633873058301857864998545322860734271634489213439299810193934767314328589643412699580041428632064145918850554533336608369110623562346259764777500733901467448464852461123970326988338895838356588502623088442951783198341611627081874945108368371767123714548106258211540256142883083646558624235889565502860376121032683257920474977487290774942987862620308688758192206903950986370942210482482247053604633689248835076874655298774138219509187266235499623500541067356563012259825937093581735992061190561380047697470370837348379273254432263644669571376360056106154589485057228084806740563313985301988874855122926597472064161083573080199116021571866172684174547523343258202923121470829384627951249048690204901111079181715290915536740897970949592540219694343484763705880964890180891245271175442284057185657724877618743744492369554538763812084514313186412250986415199520192745069763924920020490591733693128522004297366985251573768151349482447544068547291288998666497848253894053275077959934576273145584949726724050891609901253123189428770427679882078519974532940393190266900503930461073948515763395666321150070663957152310420996573179752461048135069165820984517447035156373225512129471863396515264960724788374455902251832620503039303492235557983801807127209234380266233294233225828088071862224448856582056608253390160495374002297416067837116398363488284973258784789032212644970410299403856417834442955033925446984150780564061781191978521973238101181186824763302417487994143907866760709015119609192995944028491245959908116845494193069198442681372946676044524796916733659610326867516559906249174080376383799032526881648847564534916520466462508540634928710329091080916280808980218548056118743542425756420890976223760567818601090427015825614363332268685747553904844776833319004345243430146439324569816131759546614445167035282904442520374258135925926981373459122228088347999141756438791332529415179845819229492813787036090774641914831449786183129068003953179766402211880502322556052599799784024495464778879002559898643826786067347912501527140789015156346041896353159632288740114469958058195983382654085247359546802954952785689158575700913611509970757443331241819909662129080302543585079679888910418440807055307084678472854960320378209778351933776809292965838855246029429874134332312815301417513337956807772047995787234217478993208494214519923422111806757716585183810109602858095182408223468368054017105245763634867081151000554267343521121893633731148859564364829558333514738697496000801098541069938735572307993901450541058311672188547399382181163942705912045322735365856108356592836733677756853221707268846278130865298635031920631112733022285247221149350687863600357016529430897763902082024290581274126521095823963757128427239817445956647026826949852267445938671740176346435629787243463476416805349919139786731825705665248682069614058086839536028380074418801126748404064220581503971291511669767094825971810351114296205580530107218219257872211465443382473952937827546264390642905384503961791859643535842686777550457398215775299903003222793601514578917487902455004214090814919483591029349433093817171370520428099739707435420840903947248416663490146891450172634055732535072995808984709284341991910665320062091375895682323703272004897344707175383764904026564945937477576982614044421582515005939728672753253613273185927362517892175561393812214035854274974751391858239364577851913810785825415992762145150267330408185177121486657517525678933735465884040947158772937227737545799273753169056151520376572772581725518726547643017690770724929613582683492427099286871469956699402578288694890432556477116445442229268600605726827419581566594754263956673010574456453698279337404364599331545520921334548837291839979424309956507383402373345012778715023981699885580254137157812296167075350418675562173260254109852598659478151595304101091070682161376758750806171667917811436819623289831598607452050232919911269052284135642593841981226689295395676842808376797310592392263147005853327987413341437335599399114940497105713925542730521697260511784066450486224202090570347616927411168688319909953662344765859678937787957137117912130265589775492966313481668244327788025805346162108394495822647138924546220872350765173160866890167674618759588892050339055021585230312973710929755221712692171268258542080463073106868933270473495043420863918869284055933829123138192439752095760760016406238724974636110470322095092771349479504887387705533447988393045162300572243047770615665199153148921297015407544801354415754177541258662229229825319089785748814022163787140586973432095096739929833781279836983284488211349533941304380777722917271471272267770223788046787830144639150536167129799986039064857546880517240709614349850706486807592441562906307060194945361884804569043486716882522960577655719230359153107290824375402077689971496085767738230094719367186762944521014890693908167822060738258366662099661810976819568728696323232756569545499361029176509870401299445685522026597130494092536692325306153131711760189031802562308979272497865984829198836722130242915778714574406893037174416854058496565900332083860907139426891316265853284826333574002100759127337797409626656088882096999151423062125478762661337473993912481958067025460716386506223077112363188146071248309086424393637260014854950143680478742123067286380350421961061363782637298933162685079293643339370128413052848699340172465409249065791349483629656902888313108430011051128292347473560176262147535995933623887935043474283419053433323317315253304551419428859579047764312371017464194141375618091836002592267262021771466833517788033278225608663002817318157849464691439457449311151099286335983433588167922737072299899917405628577293643597398638690592518489194702154534578002342057479420855672078482009268512534790153810115554497389251915158147711760351987856068996464829105718961145151310818844099900791738903883578642098884012812658138493366968073187014885672354081853844347315684083942337052989677301862421957252159665971634272434217970917223001741507318574080433962878085671508691337879811752932615440532346881006826865972746506697982191470976607690960181933847858251164391680926765928332452550215375110963618453898822511039662710634501578368383777052519919653592698816160091247231233333053412274221993914598151074517163429373356554471016430270300855676861280577367655329997024671808200855589950597962572654463966298249500240070146936523798386545656761013857098214544183012264195929530739530909518624357931667781777762793398541036243048815277653984310562898819203323934272471103463928323987557026794685681038646166033873416805554453796982355116198720541196898056462041740272968069579087454858983605204565674882528112421134325297096101021646622439430471493917984829511727767178375527165492951326874868035831192573981811293560963859327061187988062253624178038884348042152923282205904288800529632248421971942433533653385541697681505661161045771660063481183989003552510205677743263939490853039487711657923594024673916659669950291563106680256913115189870989458848642060931018300987776284654060996696265366118574271121709494865626941646816346581838065064954082150441088463192576301176830823382648128398645660978740058878107613172145864074868161794832058757518735309645481843451050478521144128369020259201154829398531537253975444912035435422252426672839871704134640366099968173570338294730124464478433126348978160722726856761391337743372695480095582363188996372518234502030453621826432259584547300385693588619793032044570935195273602791219379535189063275737461448252753662076138708149016452845112996025057624450523206381275164203796252255718362807498355765138401908257582346355189851431253759367355854680247799279601596757694381376041574119931397321871142542207269498712167435489222008630847624246508019242063332991205324803393370709421101821372599525200430269359479172620770353130155561667513030099361378361327606320023863242986688520709978201041448277986611351815824659719431231700640254244496170996832094563557938171680613530012493750332848169712277004602170334876073151545732526199284753626463901626471071350990656801384069331189773259393807126135636349669439673727206521637840605076600481050770502735562240635531124980260201291647040311056382518970772679953753803633974720868756013364023715501972897858927164747521596136661994424941232047766581975077139537712426544095481358164712960611682088584898893197530387709537301400606859396144845895485029826051861605702881405512262901608587289654053443450059954875641306930361005005241407004977614887672086636385596947985306921182179220185403915221061045229714945292510540631239736781492976241666682583231871680840551569838230626979850541508217223602780122494924723210252944431269828999101667945325086201745206639518065540525784870204139792868604945015021859805727548118006878965688193671804558573943925455151726344064792015867418695190845048531289502878691762201325184600200883792964537574657763584221437676279346155974902514644424116971161427438277267528300916808682477584514744664518334777351199718779847556949864024405516643012253183356614179559080666994048070472357364073841326734736054743443567874442515608433321299232718201033370210479086518721404992284483236941201059514683971967191969856230023703549300913086602643841010401976975557226802906306201359051207787500281179177661124970358428468464446618604461792780653056980058301180320509676433142673275863886098380427953321633017099135030670226825288639213077325858536837828526833119231821606826990521992982037189550229253311706255162404179144067583794513957582888672940460082023340227474281387105315696257496143443450834822038818188627956927316359745797841250138528515485171223885417167678925511045995407440224361392821403743426457725977826456644293109791801564524785793887458073635481697897951497948555276830954364907705091162450401183779005958310623434759892470175295389804468195863135076129114053837869696573668926348628926879975451727820705990588537820268075680362225974528237118571728967121798207062767554261045317067759236391035599270656497261289324360025697143634581793053192328447703526348327878230112400877793178703094030542755458538008300356776066435016771029419448138845157374745231614795886345693810735492876070485316949672311982243298261933214777829529627569705365166345894814585647787750627626061962724766410829648687558611102952421896740524064912700060637347958962085743262301003308208581540269177740554911017502721898600698667431987487557398262242974665864857885428384116329108058251492434501202692860391119576371592436798075955592615828975204576176765943934512808558430226328342130165514976599359174144213476289395778268903679268280971591103584998912655313970233047413280533022693871342656805171600228429175670738047664309892349590833407038367030581464170914891174464089638631143986115266675284891339006486841759023856444522139615081238313500716460078516054810663886184282330391597391933502921877701048252631601118287354720507312665714201096463867371729124916211944635773527351229111387796776889657567698260562604964015876626983095229843097004255050772556970059304466939664008606132835834762968010835220840835658150134099388577189849066602183775904006257753997816928014207180092640032679053503558440368085275532189848594740041038365728113957054299582491985850332271485773991389068594974914871982219252389429276335184018581230955233721518853978831808406194211002907284422984321453062040280778503068450620060427551269120067494858278352979363147515954128865098002085209842629539786918413172434581131082113871671941828423860441685674463038948828662817005345846106828208615025152550618189643532158236908580121188237901851402334651506818428915789428902110968444583608545336975830935505640712938959484306811839931441074087986602970103043004950699944783180854534433339316453490299923325903897624728640075148537780546786925755599543956947976553246001047899807950592703199670258917794767542467055495649166343522928362544473790706356818924331616791756836170308169241767973720669035344375775882642328056138988250939165591212306506304300404561143673688990114233481353866119667753931548716090046410774936020164376845443203825932241429467240528659817936785263704439889446534057835436253576071436171485083870519276190896279148452350269555762679245097020348904446734271082523888396154089947235859184606641667241451394081484575155965643075174317145597076058061857263209702720458021943586547167748614394726459707212404814095867990865764892852082717192928418405918822456951336492741054778881637781190269560066906414390391832419603765473217122527794774685626681860359752100907260205206768228124531042731864415311050817137410393048275198631856446354057093196907153193999721696037870536927359451776435467257502086270845308695814151397660326907613275759402725565322656765399149951423213463106972386919337880425158265246752417272566544235072596459066398266332752529897612052776727904981062942216070233036786154493803369780446850609324759224840448679637635182615881594752596992974401264938290168355213568384560549999070226215319657362469722775102059876120662427914318450402910887696473211787410919669468490123774761923013472853359612546454939972228133202663817658040529507527206920655108164513687562676821964070938410056217876485201376973535688506437546501960295246253280529380896349436401707940715740386410375417552874314849041320193094349024447976569643257993775439303781328889990777462059488288503406091474043911504201255363624006824778427277755759181408313773543453058692698138470843156232330413063593715622543831598441135714948311064317643958128909654414520258906927961723292547327821542689160845029739126532102762599775438747829188175260965525362633665076286357838488291999523342437749176944720197978811130122557759075187032632193491221484953401260808228217975668685648443414178262365674399826163815269835304687818215225198350989386739764019480054450243642966297078935430657488174969353245153062374726043822667927805330113208587093447986601609443236637797114894591020746604325673864349522851343097246906633835023043264068022489367673768616739016667190882888224401579079124919465863881417332491312200132490452660908236305544298053353516243614051323772894874677112000397118058080369965380748080180455292348385558927401453038268645928347761676394214105989313719854607398661357968236389873408165470508992843728602670384979048556942645330613050016246888698069049760063677175649552739926859979729054082603881440425040726117630769883502969398969246917982727809149007042717326214641461804264883196144419499794158856636730311439413928529041685570813861219720941929736366040589433872770960867037829560437419191314176669993170825198440908411807749443903441187704974315074011279587083770137871351931536424899084262041396461454965086770923649238149913118374070510398108725238881139807553877707260997671569118808409644406542766050215435446424521938272239927652234718634036525777220336835430630736932581852240534280309854018894988784879560512994609409211498067957195024130007924039183404852999392591603786904722701877107588496109996960041074571611573064044170918486095826576530710691796589966880265563757438917349936273524073683860140508942621771868088490412458981406379820840470501583587876587622992292516109106843678603908468370257695941535241032681297575469550587867837783315705333649497831376063481570332296607010122969609151447614678495369430788915459286646336791745557962472264682508759597373103877584067159746795374074399172045529618474506097361988748340454150510525871468516405524020292448239999971994378834842824096054597137579297307636796957691376542267146282000760328824116375793785470593540398193061126224193846151967402862188225924026244276741240895232159208055273005849675205924132712850058996207021127350217727334672048152716595827841179225487380867719371108252739084685991465240445159005001125423661970606730855521622478058045412254003860889709701251861943721411737755130195984999027560519878841204341156506177279985806301775945106808821190987522959976202281974013480958713516434150587964923768380656161931651712568545458566712844364656199950475510390826506453580289275718049617238184278262828888344855769022909358661850022421912020685877847631441537365903730846048469438278342242338091520348892951456528540614374122429652762916871994575742414111123873933677988704283795816073307774568638682724547033654417352564979399294426688963433068812723100350659218935735196928141790972971334857373478825534064766043526591635116103336021907591085701828065555437017807296531835765208039615740703135148332944560850730193305480777905668483841253397627123373719730935944451363123432425391767759895018670167788501252341925930200310006130437222077128636429350695889837146746329252626987524305985979501491931005248431872033545650948319083287685746506539653158997380645687616321599745111918527719632300699656182935326599404875641278846255044271416766362010015717964567570098850069628518681456846185352819800249512065435758014035068676497023031276781880862785303347719010445723573543924357151890524656678930645814497807232801331844107295868152079365943142843802228161711136551900625707745369160254500447087847119855187340772749429946403700090223092790480710211560640087079891379506662711611221293703180426513456670692764775428267389693346043907110679751533458116160643981716785608862681226395148295117040524311173300012151542024725230658609203926551044425377916106737564480975061248481964519733722332380911502550123794966675204076326094930230110179454881716787441501362472338923973076328767262605236212668295365768471565487910571529090467579736751697262969709271010819203289494898911243793839673587477946091804256011265648450861933237110905722678151781474092740402884417509448476592072594896513021345362659901991606970955059098615409108394896886205067028974955210474216286777750330991394875641703106637909563029865720344880973961902936445479982698327771209141327492152366700466690461522664757099257173511835492346892338714303638453019907603647000435217430140150774527623877707623652598784682413095625791356416078302495409176571405038335270762747367060059914968669328310984302636543455597096348265179116982216664165394720588338966789013425981307034592008720858487761294970763672315084305809897862308155529535102469420417252802523779174680712684758023723157577342965746885889396649746690778436665100351027898515976196068057626085191958678935365408526765820810336457377196148625992768157016525323056528336259411087374234297702182230606345982560366610181470198190028708905277007855422624612661196206312558860034619129099681448691410378224421023861696600597718650249425612831167889126398541620211065854763626927510038219110717964380969943238583587698687522614297916978334827712127546809122079416291827129627156212932040659672642519135880245894607384764204437538021232571725283396554871222628617527985273505408943119213589264414929233703342516331432107963224376462286227816972403604867168985313579063747652848089539692312463639980132612962591524253649017045511106283110010827797789594316321554058038717205452428292199627778868685684575599582192280531253508812762106833275229189880717368281969367745446091832098816457675083459616107760280128484598894667307792250844136608128733553570922395866197054148446957132893172470081861763089417077976925625299704141531367214607499385029355362441413775287859262199097776904198212822492525604225649007249864095214659912391146444458366953752232114088805073145844252311795726121909538356803906238984315248890253501282553879836679766309138199889218305643621232156964834401296970176454521147753375522155636315285502375947623722051424121815078917155495330111450944420071375669103159232769325744023962894276580305875329167839763865049371334379144439381701280373610653652335611217223794474820764194188068568331082673487383305108347229969177327940075553238587249610763504359867617946577039396067229857489296911384996853150451985130156552341305384197685812238597786140709650688408469250809592626241705900901968014684043491602014946027097516014186255199621745390386419946068566710416369457798799051975447739584918536578494689649629462154979382493931232682893087062646452434519873676713389298489566296593557463495795952720433089949966503920218235109951811862559042921914309126289013709313557201147397390821978285137832569351803333016617833542055471027149459464195746334674177908762814751841394716840214839667954731433136703792372197880182809356822435067719563191135174546029505853417079858976872244647453711402143390583707445311986663481009984183929541033558250147224252926830441622017563965466645343975378627133074768306736398346861442637535712160255064015977058767123202969879720923565694369190562459905272047272082671237398331034187102793170950311240591005100978999891256722227251596687618691550046165006111138602522336941982062781888199440975993343679495849174489029361349682450560429801374481689212062053618433969000465995977217692296698909085943167745098558555113208876265319697342952799466511879928556313951062121297788665292823613297635908074188721427167152426238960755203468433996153722558835785075131464852070223017695796783087179815883255564305482002007298141095996273622869963365737720144436284299088878851455847794014034913535966193330558592655638278137792442541693915615970087814152500853784408317767004077944039649599835295226457480527028380864811530313171664709961487822234330008404748768845098586353370285948620178446896153188009507117145773473648882584370565988085030283242867354835684248490761245582607793176464811890604517233503174557522807054222783051980673252294046822647261431991358580567577618783418927132563119861886019629770100321096181171469182810612748209129756985941715993231070166255259149702738602425260091593330853858125449106805794991190933796888750400970852315011038409799323639664882122875433074100302089804029014022114541178157740222410894506568632054187746789471956355166555450042511586350957755093742087579918064852207963053796769496471373431727033063072695510557886835177111360011561335941611600350704279869280629275696267874326953290747155274360023359538712928782594654250009724173862461039123354600342568353257709480849785601359134293843234805976905366562817595948298215145905588086832068017410217113053028095103384527387843940965733884780176125480713284559316064715633447282620411263025086742255284818832197987650399437239970223895514262359084194835395889138385330218210265912097533650985997031113368513034804647971088638086901508458623791312874322239694839224797486212886790550734962436029546120167893306581382024693981752246089159000935582603527503236456424127200087923442670268076996988371641540019350554645864844403389021800011780787452125598900507255579020994459481413517562018855446092934568147829987562347415488570509649444777659807031978629964919526804541988079446734976672457629811345958223354594641830143104527492377422452827767729046156589579421327073779433862945281634742842450692610887461499541077649136983227910718160653787385237646885680103446630521356651092242194297395083507615631287181418889263569308417847340312923833075909483876263449814811256743551850816256076332284199570510081335510795654526407734541903069807980583484122767720927136645907346629589848773667571047759714150291884618247402607153099309314430977977210506550020900191184626480870055890602523047454206019132575536253110482212164389953629022990219590389020519170043939796919898752514499711398408643564174132936426085591972956225870498115740024283224410904225627957532897667420784026024246747260693730513079834945683226190441799046347563227961729588762961849018056264601063841156914580926438798489440962785853914224924440177875201178487767051807637907322495586558441954545707281038242068219940087373686174842233491201371699030955060702188416613708612138276058705615863770044811529657606580839386179337348909435816200598140730194240994509320171905656848666460415965937470459345673081078685867742146249429805171989839405560739755125437796651381989327761193487312957068807774683492735069534400540044421765321065368305199256462101556779909116788868626778676546644580256008288638343436780879305106851240473388644854962490263516056388955854325387370757239642240671674662395024196894323003425170959776357579989557422832017343328979786786936165774474858625112608515953365985301238696062123129877052847079102769004935853492547250167554356308603130200575699394595552522857519027139010147233895827300460543960222370669871712432400539079470359509358354515751672492410903704322114891529266002608841015259958689050646078116082777331476231629584660806620957413791911798114407273761015817887269123862032451450685680415943308656114187598867304552621879937233712289075664877505652316620482937427583352454785710722590001661144767765222237598576979043567491437094919038616240746238819225267858329846092628080276422559468719132847008286010151540259339800941483677720449793948848626237346343936952971587851699613281632455542083928221512283379734836225127908527847485237542116769115044931536541452049089700753612547585514913706760485187331796882426711048080951823133398668912660949415093012903713778428495465259677970621941255213489343524012439200015576263610266236097982634980701676369296194622770748946161380731135574667143709806982225694753135213423104189068189507478983946841629823042738493334296263860101237152805086131862008480514789011444808962846487694673152870287283168686692064859889115464021553362447346400209635002035341499231818909782275281666607222946585082674400407764246078371046210577141676922265750575472892836197524711602287118246218695574724055598658104669081077906884240550232344900100588793677436971628083753188984456211698612603095059571021840750888614161435537898010394561338669220524850152542307900063025509971287875585572534598507663278836865323533040478583472284738063943339482266226182557839605733240879359125977195548575693351134501762629407122638328498682779650547950295392519159322659625343124213040337634918768570668416431651662011700241398871082583176810164718047046318392958913407359957992180318307270220520565674970393527877385142055149029610225418821799411503668482336664051124949112901449893109271262116557492254802506993475916212012457073120290794268508810490178826978046907273574819212111895392265142406368100948516997529187352309150100605925947695660615331386913959654226606236542145368523550129602192015010514525783278318304068994324955646933071214195348313327040441112623762748518481244656572875728726704297698797248222989991968673506290343080924673638714843272505674810223655117051093054772053496598926942334104034218582055767962401155966873969952445987431714591072016974004310658691426383371227525516965026345329303372003928029163801775522533730871988923392428012307479976138646209758842424636498739973162061641731833680143616993871064426479515783860192959498942217411654780407606089374466991217394657722259844617676203477443888133777187597975108540835361903637926636615314415687478591894456054555397046352028023030313570771532303962642662167722461181533901670510665086094008936107645787772513627893796076388654174373074382783787238757405742378921688158379806567201194397556438157290023290688587640397665464903068967209033177812837081118379741836240014797310213010664930845764489668566301942941250076402834867613179282888641381578501569926285097471149982636761670043661787343019089276953475185620720348929704914018740357150085919059673470776182835563190989903105273839503995705693898943872250204329792294842765744530815715636692671005749527606548634418647899373236912760542486262806961386848138217444759029710016128102500006569829901470150220664994392995722381608909379895487596231862975465549041103498902404080238272180852967212917229786684312972808796202726232049046687822316829862213277630303883443473480969818687711026415981822684291368832818709622544359990375897221577596173745791105169832499155448965569734806658836197752961885103469367278343069263677707595126025749249060196461858847539891502599564562798365618814821649337397395730319347654770504084742336950930385010340139685327484430008994947514847928018740413122725743748879616730295659313366771501761809791443985304996148722074734282866051666557293255110906372356675816009195339532925402592897150821958081747652241245727432925887696367878760849720151178545823145197488134762461958316817196672355810157968066855086926689822696532289981416773396384131793820286234567606064211722800426460868707689143200424051223418425614458668385035257396892778272448964770401521978116191125432731951723471069878248205888622620278590049612247691607936228641196613506315149922011480504160111644326571625134065913763373480409655998320814706667546423372693660845553984198390100042639114198494913659016377863763512337990977520850301760094657912841335461462048637175650994205490699506529734190505161683160241573683432721242704445098532603847009112561714070654028454635877548925289994739044993054247718826189172058822229762358998487366378566170003211920307561910363252672506692878373474635804560662448506668638092506270964816607649342587731864394524128478416987342451850629033123305410580573220676075265587346911739712545845088574414896686046506884675681528710093911263932557974969680921023494541425627406948340400266497442017872849293708327646262644895677007985223712330087247081100406587339273104852982699314124789267406686561410388185284289471659611669487353014331934228549314092989236410797479318049588407457063745734954244713000779664541266244838415304988240081741340963663386070433005958390880974219643637496809664511208352036015672118088831268065858188992950727022481986604108822867300309943791941552530562447666891390455481638296556982900152191999375835945854680749765948224579936575894342921121713479940240542085031136776649260583656112838313478015402324644262252954692593397990357263796490247931165557992194697628721577805617439657049724385606788979089944558394943507140427063663965161544094950087018119066293686258654814023740184018503885535011269069313985761655357044624098111576043414359140475469608086242693087502689188705121242365630999388851445995301233891596184656541221147408298104928130405251802883213660305220230896097854157860770006762289362530503234121510751267979620846136406107382839446812051203782313621035576638252059630044517462573488802572833419457500612624125810924918890057635678903461533135697388095311526831410057680009631824670489602450482761976642828406378016614991979395697312204275842598326952382054308033431330701118075800809375865988109049995480516688034349865637457689910314609434553574230376640634172886410064594728164655064146698940159567273593610423177583709359761220612368930936510598874261537141918483559340154405379920849743087232169780939269091586958226323730731506833520615309948842001228556664274430014709589096048514316921735059320462763548510823827841695419449010750945978062518375418433069358514219242860197735141938463931366218897883150886062751149782336988903936696771988183548804237533080559992420799070901145615909048245107712758584843599459222417658824846930927986607462007776614582032236037652361902318725619210442810500718760979209661619181230129132285774754634306697922036123466098211947509795824433741643288915928715141069353571805841186395511404692201677842022223547388912443726613776825173371051721978593415188588298683044275940995892780426474827539775876205763920651580813424631303296461302798636672882145661959693795300574591457170883676856588980887695654307883809916769469981703737559295164821222555565292900702709950367262074798431706023328978117314522496410970054526595196487084905688575479340168185641281196562021755795849821048594592933601188418231377875881624136422822291994977433632950339196020885662453927591108448101065289317029565397307109308187270618127041209940083220792122246195450277892802866464746340020787705050418926499883182403464933850890440012503743876265080299506814873881336240672772637664112830211618258945532175028979309903379892725258444621847860729677430611572901190023702157508883952698049786551117940041989473186780080883636058515670452382311252274483073020102208310828644998238342889422479721148514804782453573141905340367729472521222955947025882020875980138267262321524354853478510843862459810271714688461942285191109876672923084766260056897657874183565200051838023728149764927158986175345251069188319325027072248140350528862821394470975058361886307479447649871541713101232587929939659285582643901352673807636658241917422899965864650377599978410181518229169568904094374734557610258042106294510409757241483999841532696643366985327270735457848741181581244024177131218102656483147858470938171680881896719005426965882915106676486557492943681102232648233380635185724801331331940085582535884018535102202255501892948737789293313097191861784499594567762549848354606453127047519597037529416907181065456031540224516547817009613872540599775736773537200585501934183954607985129119252139851609186408499378051561028505696040011346723027807781093722131874659903232592698089705500165532623254745178366142151488438660668976851651189519233458263350011977789130856937796356073265682075041163623368803573504020163863341913080049884580157592848115034035961285624002593067273233657593143175269106674513294413523446243735255023667150828785962755063121975589349859458251795666825152651582813255564384813887905700439526901914036108832973552459595030304923213927328895173056167732045204334869452737470858912536188318205705426734235914412074089320757455294284292168568499759037802113868154429304126568275105456554850395468296270294400146820808650269700101146020975554320590585440326889151587492804926538086012904313939816544614935465632903766276780544511940390449120137862256931054180584845081839812198361067902101793807499785461203182393615242421683064004815118178587904923545153064005554346465575023448231650947292857627045083722948499558312408094548562832145112689011954904903361964383282201463800327328697633940646348498719373738108823334664107146003604593744892022109823327722791921016895728097991342136791918731308854069208032671046420877810263203520129638218713616145972564116154207601457957663988563978959776879433353136961964525246262823053329904482601126409836783883053153663138262368635984162327631173777772475570307495417273827790423712705304408991173207822542417303338637196794422423836416030533360000646490063839464131659975336957312979007274564866562802681225695370923837007269192262436445404262411429393626286426044765595220820984851946201855062233297344661749449781084476200729986512967269903565771904966401314468215030626630589933663713429337519199894919189966492568987719197891682005792125096640369812457138121418356023735003410392323277591462334607199362250374878160556415607122779151714604038100048946771434244269178052359519631966240265399600238532032202100260237331294738698069108017841978823978086685244119427056279163494034052886711739005944714301129476111134954598280731952713336023058604739446085993083639300975809364349880782971338036777127035900197512916833496560719378411569688603743624303728924737423384204251805609034036419093674059331655009943003993201860836518062043810111530411357434757939567526201356836231702198605829547326172677020746075914690799948768894675232246974936744262012299357548526586597265653932028912296095472113265128948731123771255395390539282707985577710712771010692634551629517970010315402796643843023570639121954147204718141523316706533101494793184220072324396542052957407041964968072136958013045229148097711901586141377525412524198638266825514989399569234143202974377340814892286519021873203759303336942768854937452711206243350338001852226383569955630473464747518102395839262195475169561040378627954875820807698941228032720872913206062490525710367663915803742843581515751082108159521448790500719283285014268227190290349754286757538703426169448319871790938191878405790499681008319251797957794477083995153717636510888144840199636400190164559541181443686621433224718223471900608723960042531796972194686983294485377555862171020083058249480963804574853552987746427230237158267068328250989439413957068102111574477394302626132150808153714852904644049804486037493057520615654439904037110639791780207195867246609683948697998316711761302697384114182069414878692572118768919223886904596557792500915001204210726092327209193635275540442875518885023541121972902536736056242121215843435844096612498809961870842860815693959507312256803784232836647797869345260502958775864542227065285216595234867396728939430592615115690316857830912464914675134564616661112613633410037497639213361538101087280808100187585546714004176998750932042931384546270407178607983512825516055622876258859705046690654477332945386233571598866153134111564629700682242827208018079303136251776035602512785479895542652216228033445371229082831718670895679620305392713182676670011889519451692558986863951834750911650635997293297886011632597523320983309312560655092622392309067644963430726348680303346349961220095902690821206330405674533305578577191080281724180734821348545126962439723798920491388501999090912021641030352850614902112737037262418906767552248251079783172340441761236655261475896044272503157598179165036542038281835584903898808853296956293352496809342447335976503733550581676805700741595512737196290363945858225892923108848994469150725387700090193103142354717383450391818185361074355864119173906074603960142215275476768380231429481772495193165966101679153430957976247522067786112922550207173841246055988327313437127088717329882612323818726118430954907903813318916110245107810407914185616490124213149498295145559467371677161957691811054990690681550948415491120056422328451850011070872621599760526420858134432443294865864354186022181803207206632387251673665089214645409963996789983465102085968471961148369624488968594015215790486942442272624178344628816008790767176822128105003931003655376375069136617713279884247632345852961105127813939997536299347905915652758153734804613124191480768022245608211448695278324509486160283656957225271734075306301983990228917469177445100978379320375505525759214532081754804672059154274259906831045488953017161307002170499161841488560683688216961104559788347891856521458434855144697813155554109325554648208870007035036092702620083961274495314576269332957039819451343837475280207931857759312742053549744768607876958075687550628212394525837539634057291095517335175709051294163447150616035370358933277147089692949815086983031847608518829635099444105666126210930479788755581235417185160624480751503324869651233811959214753684298715997610829735859956726824424719520466668593787459208515113325524663078280744170733877902461404408588485374696251005399503106242121776213325550059656796429428411014196260896927215608358130355826779591201847433272811377323836590176978715868352314414309495951336926779922111751459426939796950211752615513143910423967913007203660257735165916849476254961090679810715125921618588078481411140180556639788733374581223054288965236207348341601837490564003009599761118263082652563761820545819482812184608846948643082856594787522453411048606579165687288204386804499591676176342597650306001545091853382591045942395522672428658690172955850160582092380182730011509817412988072808287994350420297783836805089677463185142393911495176122023276341950681800914349830122704606961033953884570210535924009206054608631328480256060398205544614359467191137818721910263554596107802567074853484177267734878794499429980375552742753340538670788370337852644182010774580856159863013459777457520713896110658979442267286761627834008477523781392365878045638286178303949200421933305337281600124628637637979615272025908303141218447907277538535064352016486673807784556734257718695396423697927475430682006812821481790606593814953061915553406204797268884296568723440652669820388108841614176901266800890676176747486010317295810082160902042678405336447427530993025774967812020053390067324154131383942351585515999571014864441520757138580046661192554279496450866582795778898538637992748623361108971987937083358722039687482426853140392633283273272069837532370014036732340279509146377342251389493855316879239259013875082331319130389447347429890544992125271683682518024297425655907602829637107394617086502638540458422411208574284176465015440817431082841949021812317353572502381507388968959467713686080834990598148768512774540386950715145006453013654459146369884660010328001312980562395958603881012610072728055367378739436782538266641292383503182993816577557901554455808553500979297005401419366960818731737457172785533850720445604375559537587090630544075385756988386993392251332990951051126001467805350790919386070996112482509137317767317754558427871121320436812684269541860221113878104739823004042472419379050172247053945431794159087902817828953376816890722801820325377242505337911704403978705194060084559678478038803227319617625232522780750220417991889236757984491410868211622874008626449105934671775048415775355390474861774877075959315136298564900656151645601628799189033607983757840379934214371988577095131656191513578763219262342520782965151878256029569005362469049549642054543743192295362030069594178299234901141680524402260507642604393218070150270473120923360025781216937830660842413326208565370527821082784209168657455659777244178247890871037906362721042057769621483595708402817262018776484414386991678051412248025833979954255452202220980665336290595494510550291657106754588900518187233664185232073865409915817998730853160965459235461674151405894246390646292783366339174425315156630061659887986131425577417043001414650374221760198992293871404638975930932761548568251434345435554332244366570655783320738446612745429202006625504140798813406286566263394635394178853003019429872574290870572086492694238657891102089649726454101068223559213470904548025545423096869411992390511174863362596445850236191277970194037957006106197417593881658318637615478300394976226641845070190741975516319063534564839215720552987895530792735289234690492613300810041527962821715470343488092488089547650873270963262063538728434738060118570975974888246685084497716647792012663585615013127654932255638866604117915599677136170866364567273071557350102451408061187170562804582272810462952793810678910146044102090566183308934218484629458372222742533319684884650818278851533096110077659666971547679827674742655256159678432630274045644317886415720055631591185239568505403601222411494691130817663964874898597205459080091063021821708087154578093193990806274210358811805569847928998084903241456821229254023697747751531258491264280051769207565514354606504051374723773396173017095734446837886360113783184137441650752861735494526417150333989050096129886836547353196713960484063327986687519976627766559025024436001577326066507826948630343278614731380301869434900707349381485673495480091995462456654218705566723148869763853507649784162316586894561569040782450316844056498710869512974428318165302750676050007992274933288483596112492463980960279681085795795693734507818604390929713169179841335998958803522006916748226418418709792414422164935744189099805200845307229940922194411519889281849883821320825303104388860816505147494033397417635966198765862357807914325834756801995203623891664647957412186759082195120919214125877115798370905344822587510706855683836418453480256529700237157717422842978174772178204916812812422502325297741293505184054570786876105045582204769404510749658314943130250636373813535685639214256966951948153514134617601291895421705297436228969363610239372040411420264763631823177512679047299457095006356990052744982619823662121450397997819759534283582953616435848266437583799667602814719569111415042366739386525682087371086153679662327162496017593504605188205628215745610041480290771499356503581643884914145730146744682667768060020037335753302613949023556603244007486235601317368967617453112286894883572843670608316913609847518815958076833370068144518526409840392184377900445492117529805018256245097779650134818247029983249688889880312879349664066920065566330886852474438992549816334588722908564425167551804362322299677279715232137590431588446387263081049221173486051950814923659065157039875283513639824260239502179361191418742779165567851728047378039391079500406819903360495544955854289069956889532843843412256686401107990677883711989128336605874022417058425675548509817956774772815067014536663738242059199871535918526234784343570626716169818800075664753183565930353696996504712485478865156991465107366313786774263010955316686965201861858376454222886165536216142391646066523984462646428768422812461187232737017327665729765336861721880231542003900644545775465160723694470803888278081501441949745673172411763417480259645386799516134094114151341643561873564012041529172849411358543805024444998677654098186482997645107453543279765089101976643789128280870078626829045244825197755210488079027897384205311570227439330744013906746125612309495889648443328222918700114561127903961199608694312297178683776501321336354032365274550560275152204013512524590389295313814905443086678484205217038940519265578394557813610939922544646662240355223991770069864359463295550693743076330596127607559739228788969277592610465198241358034532964259041387689583142500285586309969243943086366621810371323924531465993721643843943633681361525264041851470077787061282245669011555457521186465468780587709794998996761363703947953359097620990316107822027647314606018824322913824311092733541406461894740546356150251757523411642888205130171307281048410136356082196402164853341125126820300608301339698014406082083271628701105209925474048553947529713592591236130245380731755350068642530365474628743508886349499850999847825088473715414289978869674295458333699684722574002160017871558425699494110075395228765175968271525547936603989673327889880822997551949315932610395713776107256471899299874936432535143126954574743361613050648961762072450027791738375036925909817980863647355638986547747638933344831118972710377231119173170998349775177059366420573154050599840086299956841310094029129882297718551600167039732308885637366056728215022306789613884400925199245854877390320729969372612335663036381753384895113727459516707832603894448821712056935482356635606398100433840607021408313886385809100262446301216739450707570310824291328592355010213749168198664353736331926853606524367250675508533119143937022449921170127967437795455977837903910094684538595869852107434799441458428463989289669796136471987660606978120315724639675339072412362129429457308068867135769522432252306519825814243090585552430975763095058837375170021162355726053531012294340156888270228509345585171617535509196031356191020332402727399062212933858224580152638627708912610295882109036613291766738081083575192747122982509103063232005379936342087754813727529133303834093959653905529793692458366070974498421154224265304713883702064226404699528110439209367140282066056121028707028602735699057876545509397704281302677266038780933463738136243973278236755628119967423229772141502179567318809358225624804516243623056981488579661997715309084896295445868732706024597149026813194949030782249907983042874519726646600536792784857955782181121741644150745952181153272624849821499209172962918117737769318406543288861847707100623329153115950341855065201543111332469543301319693584413070430538508484504703496635312337991644977774270433708624565186364296531722952647247689379469736816065782936350168653832681105062502134038478373178571112432629267115584317853805574354257720149794561293504771269574643260943344402213537685825106866762902768846560331601081582399981962256308271315162933558503163716568933239388986433731098022004263137953690880019640577275782247252788529283882659280931561974796264314004589942929187858242822609681027990955023291015189303955294257953393953463143813981510378851519755396589994628429324858690112252249304305366646256011656989946037316277646381702609546511935732989621247658923864853067986034299182223439932461017011670265804444868245634003831913586845689139625456833422455990628235057533282373404342628813477082429742128670221845270785640934781671489776272583768870395894223439317208841235787116389217175090749825081035183019108102410421046436799896649767168785302770717768008347097826022339482441706135692847995420250037957312064065920898604853618182325865379074442742402660857374010127161821080015460425934092390184080229015444735800471105344849298796561861299418352173363488934271751908488066289417263631546002061599908068953762518568514595503777755402425842847315354061443873691186701656931193193240860925508954324486813482198909040629410153199655234228619777805693691551552572123208969631216384221688607193379278820956242974610776239284717883104500630779574948524526297028332697121075935600145016850935589330534225726887578362753357699427874440034198055457550247278637252962177699502438170874084448026274996613527169065474148694119084276945113268935929605727320488928272116652115749131610205780545820520801095157371085010219497316659903859609912702585931897904426509149233118433586651045375725028329360450150376451388914460306420581638776796125530201364597184109313912937311940439502852224466055014847819366762589918009752880057635053905173225624267570288405634523556494258735799042532241172513719848663117677027568300522307245380727822801344756702458636746216170669558580232737549959075427374445553157798158379273835292068873099002816886004008531761107246923774806892048315196015551587495615657763215471180467146487180073126937823255723182039670938690340925002989091391536835460911251039141504281267001469659136414691596928883601160493744758110676841943668756492790428809471169759756565953407324866252891245671071781760203576089989456063840778424982413227539328495319189258409901352864547834334849764038576033877706958692010136122860023474753414010776534953821153108702449719263216662071933062097952037412150498577686900329933533904120842459417609225108308567248304804696304784611500354789728225257143391161617670164393193382272361428405061925559022621509970435072279931958300406343082650155543044681855675525018078991779451360916098482509002690889244343116678724657582923093800274637333860122622637962271847173692410582177060421095662444943821173287754415939645857075724563786647909781095477547844653855718655159496172775661929619542279641032560437341322266031675964597790771775280738723690563776467116674981917343745694607838036795088326368065150327946767340850450509386463348606760256112875980319668359746440242325162609324040227640042970875771605747281499655281142833518295251159451025958408264258553120591284280198023469915324206477289956346855016626268546854767922710620818022204711771000168266376426121128601707192649813934345347636728598138734879942191246735915657952934875756520374253262015463281654574476433290593352449665745275582835238853793882743560094168811796107752489481134515539713001628368236204538347332182795593933689755682450497698104839004832508363034877582513266786840770721202721707604597084158805490787995208492723659113832251225101908962455673774453005047964127093029454820360059988831637445476393853485331458788847814254134143420146469074494775123452084791970018976089433338793864427195472794292776178084094456658656630101293734112764440491901523733463820437745757620915218008523415661189412876078086990999375249960842056011646020463732585859061134949771494408597505917497890729692730898124906560351193898936069232898955180912361763392079829978831920828271251088589536800189062490988590074346067397416752252686704126795387188226490270220469502557049618597750268201440613297957417202356367594561602929973953140567775279042804821560303052002978909417909229537136716327035774225255265705160675867042976375546333496981073382420241600624205775948449216202913913174047704098194546746875669159102579296366669967062855774892887825994737625684629117938114518406488437690006844355292768109671210582375012191560853358753830926888877876613950863857229926970094238395053029104382326473049984509583852404528079900794229165535048894868865714625460507683451003115076280749269943042262226811346179935534616088103544566405676090397627662295166940735219739018118888053255631403873381216877606086683762570009815834771998824602029203176536714835143387869621598004616674855257682400251912143068901093007639191344171628771282292528116589053870120156783056592621705452349574154968522501038474560994964211348868872374613353164382301199967361076161386646479202828252416667321047823999435198594876658542593435853535990109492485479045517086308766923098130723062228467525380699304214696497905642895022857139155674297882705512910609508586653905937421232671635511447956271177953068392200019721236086451657753913098219691312287455827669023478588763756871602341587680611948214599530687150193553821967588094858840003463475431976326851397907666001860629973022133521367029797013671871432854030110598440849146616132481503197001039447339934349992328932457726623062605683367483903376151842424949877354375369194845368650161467045983096104529701233131248793152392746210198240224026142077485621588828859600949244309799291424522291896249859029083878584750117392650665200531173554766766131040660254314558928726741935195183107754302272844206692811778042446516893678429406790458819033322537099520241434274171736134305559723132399761621316628273838194325946897363312157059336642168112332213596449523218560837519022046075514962655253972146685643716138252597524889783324124803764414936501840669892896247848889834784530903191219938245030826536934279127416939145890366763398873637317836289761346566451913409362115414707502324637722216408308037291148074786780299781352484105015613849644277113337969252077845568835037932390009971710102658459978410330299097747013886895042204293730567441381541216748698884764781557599996175751596594634233146402144001439729634828752103286013733548874785912359586350393341749880332431754896556307344005680778449948187517386891581899512259321040482653192652482238478609368290667890564591073169068920709553929021901450825239806127564498179136495693530259893740576106233863174068054267310467518615017915922463912137299850757466411875854446936515813696857390931874053998754404336723262811828266563991527165892071795131081498586706477741362575589341554255264454079221164192704152633312063400964542032092865717344002327305683886737103181158855271641297475563311853744345432443570462674601167197518556551511768479759022984170493205306533651194236735982348441821375129423212425068216094709786237296281830668022940979616552966653093772483980471719977709270019110655479624577775400107061849702332115844323161138866193642639654363961411709258477509390145697533080547126963799723333398909523953791031023196935906858755066632463907075676741692143926633024845911591846014059304449973121658000449014174696168627863156994945257563338545713910503487174610573837315769855256072455480912322520115632728655960818438755286296023719415425906089947474165386912503113574534261385206460926994587589293337820864316912988762271898325364961230657987034938949948381714069791606727932559152271181493465545236910224671649716921132827967050196888362542530987970994032098430298035791422065201712841499436217852482746974294941418735005289767082804930800386428119679190853090025560450024923671902696053842251942582597071383463078360302554572711993358712136204716563714785435503745940962756790744425305804483460476692886316016282746839876824742476398667572126581310291450236283538540223545489412731749583284097827428550539526848794983644904546310360611036180762252889691076782095756976006710328159007272097176721617004495098079967302310787383396782587372711567651483761644052296656872356057864881668631254850675999408341909432737736910794744991294019438188198361401245408287676391969302597715348178689727519905066974294201443158322847974288549565117526397245269798422106427938355887587346809779703427923495769294531833343184095480593464584287317641587239601624956414108383578140706907888080064738750701379768990804672057838209616182743326629222387553366297393471342978088785314024059840249850279728445810521686211295234634220909308388977535995775750356041785043544897845898857215969390344847701829775258064473197740847611599297199220015113856940286059025201335406374391133890009989586411753132861004073426147981736339005339228693073527456053734654768152813197671687172861715391293990564177984026245163149874055660128163499890700166916755557122027062269609887973086635790982536228752948401615348162410955455334390152999840251180414762864570797604286019922556908881853020631536910447614646714934575544065401862658026255465345565304625603464434609265491073522336589356613343089587282615297716872455937692080922021955586526326224238913959352710449771658668407628780422291121092670183929142985139795581719244831228256863175453914392594926525771991980753729026223925387189061880633938059108225942970658453506291131260024442865559278246437772894037076287450363527677928455643706146026571042312552136204816111549407980528382755859808881432491133416728831701333417459074229438948835424568319920142734755516081883908546394343262876291145448654384951922166202968268771438044102611967439147410279228335707458201801426110974257904191243848683540839535420121624111160993214119198359173476028872022668701487091525660065992395162073080405726098038796010727664999174912705913458918669566852140685738432680214511853841473167065937056494893522440715840500019641317192861435355552864450564263162972269541136068799608316874494674938894649475499722559222770139002369270139831274683706669567867320336999586738491607273191889336376081437030345678384661795616656198986174061222452144923082538679866054562017758101119078453021871876190721976326747620239776004576449199360920252269487087261831978068723869509712439925839221987859448526699313631627918177507422905671324294040675066928547884621622118037565395843797589540413388166896524266866417689499436636053720799560853534541627527354555272070906410422991226523298823118042357080150775169657577194457996942389554485701088894004710022182049317109169377536356649878535629540928429220099940217562919479092812532572725051493992396462411653864811562275627602138045495526696136717642293650565104420772615684346892279034680994449789532272306350467744476922913161951667017027779193354914326417223366044492919557734274921796345237663641245452955474206959551653232270110873031376055198834631601034688951663131701981151665189208968384194487613445637542317533047490449775649173874023276849978755981380736581638740940999924033909737665489158140818260832210485446294575063270712319046766505886576013790511233764099646138310107525260055871141378923128039056347770682027458341152830259077624964000165474716793059735174952859981321949039190619404777447819578307560365594168920339123767711599492878346567117942857438947289671891156659427269946467583036192214370674507709977754445890886744374147906158057689425109700400572277968791609450471811058784903573685349069645276400999902907287332642497937142526278930578790828128554768309229651497841865527696120462462984034668353605141477623316888882452619866288098901279691526828578039510178945619987163933404703020530133741006702737903140257012495882902083569201696884965824903342694705407230168748948097986671933663147800187045365935161301742456453283047973139594212179896901953780000699233773267416694453561275532299886042531121255499035972659178200034790326458205124919843859024132606576188524454126151747071767298318168109814203791674190799354948407797284624455890473574432442317829550942002996140690627252579134327874553269300249149202231299386054067125424512552443322863855665379949118568905892458885461699163758268699263234013047171976673568144537138747724698711508367690327443879100442799161139237208469328910350303321258527586024886203056971318631393706364658241027810445763035445705221751214174238174167023380211490313938232249726661243269549017679155617247300750526891135703335632342336023251621215543053022638317827364107880393160313825703977841498230399299599936650599896149811652265282151107056553463554521696453062821648909121564352927913109327636992174887212530445310889613586319793300785642348095226263635247308141485773296244094313017062823621938353781191704724285137807826637483062967098620419194966548746710415999496474697586303089110900147929561758917954293246716584375350987965886150586800128368691569480355354922828536076918650153973340443974669413447538697027636711851670368294335492366803210190051817646202305504430711236951820758383024924122606380953060928590272880762162465257086977511312452986120013946377717229865610398860363313106817444375703625901772096472940085466028379205823367808977495356143712536976297891793332118224805579822155034715982499027323931203771630291563351105306875299955935083280285288310132971550539110559875552257454646337733324063949974126972053290924765781642210810955096405610063542987626848394342202808321392654742785363344114629516442574782281519359386791965595223358492117395249210957377607223034407913459291157601125189097282134255655258736102580415492415586306066786912243688107105107031269451689799178680945444940858773086206870778862950849265433542051054023446289783435107968041003393566446602373627119993807020390045924188244780882301953806277802555818050771550191804882759572968144017380670352957352384293039453326123091303367580284626918717572066358625527054029989744011210747749536685295969405739940216965564161829419064029429183618811126186661321842814177895225816251327627514588916925945231561941520132081899632941609212265980373883146899368270866360292990266617470606605179292992757179934133793873678133609586718803230784598324412224403053996215951475063320807085746358748942751053298441977346654563959842012841600425136726042909655014994412430177677431857887791927228968680741867286904931476423828857677603547808102077475405188338556197369676775607424225746965356167323768329195051651899602736728523743804849884058714438773561135744713376827392854088133039391857806596607362308106238813834145173666742660000929357847303098548556973665445821455488105522314877566100022256072657546487748387440938566051245199173668964883692901579700606618641466079307955437702543580415985306954475482474869412576874069013234780949058604196603648347337340338495512916144771469362988245955233060903485829252747298086227463730893144332741853913054734878308187433587692910367797545261136414821733971504032312868981134599024563907704407449132296968927105564018834371714359387805197126794011656439333893225885660266853972940882225699115491078734125932693483241677663420079445387637768742896782898083176544720810999044414573667908244296484952703363866009661887379245106557149111103530598540242645152229335652892357276623604605984021960317332429720124786305071542686488769333539476926669868475733056851108645390924875678874811312606694365591816420147701334450973947225354978210725689183734073500353012952405921045104468840234003403147359468023737827198747223948316368168780316397429169440079988330924675976434035401241770181778435846499700803153055709062288947581875577375157586959740969492415663847950276902785345584583496292712158264073187596840854859227401671388808182860978436644688384936354775462988680487311813515028804518635337563982106299753096979514870503852447391390444369553674513640358852010426111246156285049648771167994262984206158424421477531295436403421139686527095825353338723460382094620524769301413782163252281000531215574503699446024474774080100263440494967046481279819034636654209863332264696651410168402055911453806200192186855377092669514744005523059106855911863977958485021929671635565123543575553048146087747026552730183578496153946507023097771402451856839006533272220447810836280425879880655568031315049615283759434821093585580378169796140319374510765779431411879127201484269460900791362171763498440039406733598615820796897254506678894238364030982322238367977542454940713540073792943547294444987872170976063331321902736263152083521645755198887904474688002326989569798529708773959946799687392741130892574912562155375308234831094754938105981216544677944947053348621628420629540236496024793836852052818444168362987825904689380545732462485757626528038040502423441720505729728822990190787290368679112610585973424247198259375501849197833697454026511665340263230030536978071721092016438629010735899178281668855797214777185651480835432706068746339758795623010546946256171493496799983627495117605485450062447437783555107343164676981803642775718288006618818514835590207798955810876625148363144025945262324781286835177454205687751883224624900966062272761543065083254921044882227271317532299359146845465677922670032482303612637301319087227226345347615357321424282794683124074520888046999960719905285095520635008896611019871687044691215696128492419263716754481703038211319166992524369044546849182868454174969500082752502633382170900060693938422277924325858823432383016923452583270525899357859660762668685162222056882441078915450228065330215223298095686328572152826932774646087434732299981687291506005003670848945497597810956366968708353210192631550556496236275466117133146017196008403565805764432812412021255940358565188195027193482749995742929014537461510524532658212045646264362964512480761185042028802616414872063309761152323675840957788682225498066070123251874896085559214282414160041853330414217774584225001577146567437092361377767924919605333124729163830521497037638068042556697043327375859124827669640370200591203686009378027966646577957664840636741743288640498804947473161455476645750438463757329740678388665809284528551497792481678251893612128899971695080084573335243077859710602194299985669503997039087460164179139859851020304916038739193121343344636251565503511866519109556184480392846482117658951524363784434160123496384002876408155692656286880815238841525533039064102427727608180914697889226082485745351460255376834796170645384096108519760083180066133780117942468468873294829296767500304470016191980018651578691891532661585369420135570520225252299092577941598514104028092490713924138309072509940025191667122010686298549524617482388377274887932717750851142311395012637370069019420519360448942253348630464879690703549559171020994462832977269823777153447610702365773158756146904162157709734243730954441611925104088055791471784619466042132635936434498303071138265241077545147927014029639476898946565479264960100614109869608881133285861475838474220316396080728001670773639561628894272631931433095342722765063343106954666798872603729267130807827258407260100137439199299026427099506336104089170782415976363053360064280865936643349284658011198221435097992044994257517464293370268053075332474240195494978193295683715090170549821110786188745405185357365956562626615757837799440844723829233063101632921546866131711960982844913093909206128102189033675477575668846543689132813078618302166619451747396441667153127029254576334379076038764491793854395777024544898711132792812312317933267351593513975855914687623557978327090504178489078550551087799711313248742432196633246060206663829722115409965757707292210229568202266214027709697694904420177804620928091520970185101409898906386285127541291091564938437490170890786225683143618663459651161609128574599107508815994045150610417865115634352184220763380659417639525752216882554400346373322169893362775506363781332950993348302809088672478441649009237277648586121528090737973181455577151270988403624700089614162406072168186212776571307727012981156701576344280394399767843488866366362472837806411395747380584369587127049397534817538140231817212522153113760948507343824333609306542773356495566178003208371274867920239638808276219374446609443512430195407455390800847946787214283507088316866922148343764979483310699741930342738693926709456211132772097592433938472742187221144465990971916835596509715008138325117437969109186385137515929575600391719772130572488121167194899691205180840179639433136822087956653522089124868327434766044963946816114366969697901445490602388595121488422978338068645153015097065033937585356088849966570144363831698405966910388959469333407615273624704867961354772799071012423250855417051631193093504655205566653552511077876358802415305068784120386736255765019839923324125079781481720201108916468211585772230701097761730584724618933785088431792745015790671938219412662635022384513186821970913585494034563032262520026396640133148416810651147116266317286797435952372999727061924397282477354443439920214715120544054253820393903308145714222807741642808677180911070490156062194017550033267532650108999410651728629680075948139148608358616624882978974653310186167980268013831862953023406863606711081894872999699716585142181219744875492283857698813502446573045916400557058655177059054679420088625433816313147792173610479097371598473503063802019038105470156081537464331912538997992565874145847647980927376640675572767421150363410131723421432870961885589304372404033651458319449609499962129673355626931838504941184843850935763167166561590886328039847525932177185130005110528483507681198329186883620649449961185821361102921933484077372465641776327509118423446459315312369996487489552312704357919262367016481986747664719029133875391347007257418178594894045946276977830686879276440457479020601975532997067390155536079145345525966434791316739034294761620240451116538042560481043846098456605505308625792585590689350816899793030750023883619245358392056570572100689635593407534603215511796895572138942450903503443184187175931075640195393281905544748609781548429037102043390816482788183353509761118828682181310465880280120739950339244807505663437537836834510123026265071178817093911271530276647781154525054049268330839935496770071967765280542285555384065397387791592721847668363648334534781793540862793476840044138257441410983547299117150261558036890631149659725347127024063622501225145445401987697102473869011998703727672301295799010030880643123662087518154665992240346008950703185291049572275365519373032402403640927957527710768770895701939195734654417757672920600671027948198517054069999580690795408649362664770004769408776054981256673007579712535093764965271167831815647014751143590058777315561541743893713634665821092772489748839040410213041644706610198551090215155525190909628737564116414940413433014444825903753271416240272289868197761266117027792886778591306290441148002789394281396123094001904998163584199678776773785092057759608338112955771743361539975894219641951763115732295146181043430059532548607902287468924530671965740731514516442128157430411210128031409487026317951669466860367126642703486028485311533688822355319440883119418676358088303383841877973149361805536473543700230179484941923642302365712722148444634150183324812764248813208445780286465680372594548859441755974105012450584201076895051290478924853696115106221218959490944911284926498874439152076509229030027691964418886249600883259943770836867695599556370365672369171020539272293844811820918631689193716292207619214830223676500964558009759290509100037798245150474811173810046632171464801184326030689343130562008292942476441955176023686803712766036779360532240454975501526661327370090406086776852181695433209081078183724512482324686416877281309110601992481577810307093630081613251067041784381989409320987524563831607893657821164003646086491210433866113532131436435408233429537069937808409381144992817332254041632822091237068506315840847469299568425512169431286988213495654034415301892888995350216424930976178075350069087645187661148921385253780717537311226635359857988707670033871969173036564136323837670458307762774380108152382140866628432548456504401027898117735464310096499659537628449517135680604318050541696286500202318618158662001834511208546607704529265306369765997017855293325515676749804063078141625877038510353166507617082421290822860686767171317211109040749983984129457379519444769053396927564662565838744674923407151520188969596587028712266110800455010683667994424688760025924771836236830865312242680657881569414610011915189544193173278102459787210762827215047730701994529133491211158369215376360877568982166015009422442111727371402230852733184541720576038375271582798524778001261191721011340153884867878495733673860263814651080872120125611865332756880798582308143467179608405324048076859499115428651478096139790558638365614297235379467386569164380337643033948468075134895365686600510832678373837786617648181888413202656964778368412714976882846435258274666027159550072235761283167298990518454996900305065925118017716152608513916618486833225388947842462904019382288920731963271488425854955569905779968353893254057086121200117112932596159508746857653272720933890545991693031336157481600956990614126444512570662314682585506045897801246714633087985614108935890782932514496361224250793766783892808704310847718649312683923974718631321177711376827492219303629246706639304451593100223010881928019927446018898694832893129936426520743830818496930649436190406812430149331678039429541340975396300609772009287593434141463360527164042447715327821846228839952616103340520202711311248379335823480962246740330074208058039990327365076394671899160604416827681256403835993061708576139433893012663312129060289127538840934086860330615100226590751951753291247339761799948369409151050109659794459987500226858803596209925739643474704527845402883531541603626287309125376399799337805057516258535504888823306545052350928427910469954245003935102635085325578388000537480804538473740057332620463764878518496640727981939826961853952692930389925163817028711860902297141528253514374996885051533923404440401255946672845602359938161833969170068276809386839818608253629538325546673234450636074231409193631471417659149406793025489782052092942071160331071451778765216475558327002306212476222478177162520941547745595266171666367924199539871956018896554229295059382820474698536428784151494686684723195758639225966125572417552698447799977286488096944357633951186907624444037824763168992021417181720369151083723602484743604793218878059785441219563558047108176611840130057079881188147360458826589559205944045535533286223889567448146812307406792995726307530129169010142129756739050251298502268353358552527439664772757143527492926540508482125922631401587165879666924286617587024977080115370225765406351495252047519973305915861267209763516159523991964738604972618613853002500855329914005284501890561023902136289505164633608244701099381982098628858253665956447334189744715954987764989861304063107835964300597377640779197406884366932538345894564528810133806357523725072329274502816743464215542012242646000800619480450729613990351455649999641147508794442465153707291730728441849755154760947743819567370098825194555221413337007494329632760272593196180320295706577397406556492263914309492935148477589266607713707144037231738665306326532770448693938435180719796382822936396367594817794195385266181817757281224973037480668543514232941581047721281051261215795783821744078209657414579770359502400353655548536664310801253908482893817993710708352800408291892368351011137677446935485155639057235900374710049570247859138162211722288895648886982034138393386079639310025759513235575279372954752072580977747153467959933867455446260035143332802941604410285867728235709467663168271722594861793050965251671858382735092551067598386770250653400302736974108549411057581553818348238864823384044459342431839963372366784130348983709476786318285150788186789848106488763826520349759151959136888967554186840879694129934224759814081098713958971670415193930792873992033566542062790125571615585914067521181908936578344021674171167998817683022767078309851754062670846857485929351875812610319010358516810976074228238166263507223398249127091296389117200519204211580350804483488878454998246898635149831562664216610313680218294047426186273746645802391724561981705811182271751654983037890032644032717676180414204064163493344933625946555854494734282968925830384390032795934149881801094231342844978126246537665412728441501724855226446802898457866736532212898522197281533305582431383866324938161023386229170724811273944987896649584871587956218353075544584538366376396725666995075096175584157567986345263610949183919619094595898882708554718662187148615399872139302103758448338473479799757399148303123766081225877868566571493574123966613524787275850283660536136898056900684008989767378038648606033408217800067458429794953270434279429765784061925396921812262874196660590390557675138747565151671842628919123992888325668055140785224855583105532822533038937391619691973507762126653756759201456392377546084214938863128241609338484199283410151215549181749489773226457380241385349171347448089407896210218428513349235115331828361628723835882404323900646056794541768888069597214594393262218974349804325675106161098359116100118946862084983987654258469475744350424860491720493390475136663034847361059377148654679319199149798596403809781282109740237170214456641519360843551374199646216604059476040755080997562975886556427100527933849851427724265552780553354777072221677454421801440598126663163008098828536784368171303090643495367263294880973728383966657972048629100885649060210359322541123483514823916331804102663556356795760635310405517328486768212194552355291167856260796966390013137329590366836375940471467180695076770389527181754626380305178055255521180854970745446601769315227822070528582985736522927011779524429902099789951147767015543525274329205473946625625391972632072519123906976696035376187864735309424514994311057737196340001067483999310454695122410426641829067299863410425584846300219217334623763764014861329902764683173435144544073406184192629379838734574908950151233099310900668757527860671896394072769411772430986252204020970982730691065948841752507771406263727747833112946532110179160988103211080340207642911200706038639716533800654668717227857136601341903616402869557814483814549332416986281393868628963424771352855592550640229646595573282393311125560195373924900379154143185075706064241394782460284758199297805217909293775067724132296083708258580174393961464823089404355455122622709087421793067848339780606266667194625768137627246877191317552269453389244894673175805875012517491581881047117972656854811671591916085806464937398551672578699013873847104502355520073233515146799581501044978788399117524885818956410499029399952054854287765618807434677129757415397456083129343431211791865198116154992839496486307977385062946012760425391681885853928465792519923675367573621042606772862929806923283333271040803633067981285482416078532190216503791325545419069595418278687503933468744113052890454592354543836080896560085775198605733530080164967053975586962464131364356635300419699153324740360133540566164284067938874637098238198325225836157449439055514520576210120938989696456476716183107789283259077377335248505037732032132282424191277734338691964402377483215398039358401308672871659113425918248303926647981944470055768924588438832695095595617146681120235203028576825022454671733274183509558361186898448094186013330225151280794477653259855523189578012410048788856139466083368906422209859371460643760306548971533685203718914761046419615330020394027101641992860274125255115729829407695162617699729930055729431187272032318635677227172132798909870192740146034954289113249957060987675902501630680100832850920230998881412437035916864213730478849376328539060207475911791137519730224334121523662151463681253589981003668975978169344955558646625588329014241992576385150544190397320718065399590693060826644575105084061770212912539755722757041903283711737079780952033395323992659884201629517114012772063625700104256970717226627088393133983234655790888219656197513460711933850351452107754514374853345343373782058789720392973890473800685354025936724914805071505389197634843675812299194406903882330486272690762146503090404323205132130049109592722304519350792438532868752893372223294364801401571560837852626767970398423523940942022466617494296358272263566601967137306973520223123630175921635842622161866922864362054202007310876748052720018495229253448965611172240007090749653135537436505386484604818528991037181095506872806379410806043580969652507473014728777428562652692361230752970370752674304272907293148512846534319658530313352381794866676778278093862405653487228183177461636270319544232485167567491154178886887013488942852256449489228585303406760143958985382740154795821653599120412319342815446878026886749503942775152587249396188489001239675040484737216520774489190394760431143150022072603025929423814650967955167964120722998058323252996642145552672865134002145336915367307668984240983174951179659195335720837966325221863280450340117205421147854470386262107359180074716836576424211401360910628879025748010870567506050097898834570689470514414245366134423604466185697383964948054016535072074570447285481803774398283445095982614690753948402745603593836406512429548232475363979677438142493506101837279729197655152879202674128078580228280395517261045053013120848601167062119732112708038412616416043116196759738135951223333474201133581567578231166799769379517217323638296350323945704179724418898807919219650296862886188089225779974002709779824916434118379513023147192579208343033371951733062777989867072088084718280227997491135246227686650164076512615804616359525373712319805565634020866757861770611760728958421097364971739350652604380461608155202207621650141546406960224746622843959903659711732415623621213274672601543350026538913295339837198877818437674274287915474708244328455181545174614304078129884404950708754943056528413287496658112224095740021481318573646586418805383471316783979178889050479864867379190509603414470231348528568904187007709799128984795679874879196428482013320653416948662111703788462977656430330375473373715416910501307422689359401897151812535800730380227150041899666922155814376515068470736604523727449182574531479209390449484982597527003834578195770015762919804582145778137693148469779042323639512703822228432424067023592436600147372783407114248193969914364070935776969042430358750559412496373285979880093654576972882427741485359732249434568712431085222925633655710497750971408081760359408587297386347583151715613153677069056651079309269734512362118502004005078294548116393704645090471875391205528769548340203548644991285070583407461697568631735776981568575663268534951040106550866216182632280365331511712449508989463706178171860911902248422319612452989401349440173975860412080535074375700098923886790579891904010790640560784340307981530951915697104754804675545617902411939595081127021886705920928224131644765962726865013472472105990140990279102816636222530034205604691573509616634234039535980316957419121856133476250459115383233405977517274355659510931911412248500556458769768046261725142397492350322509990599723699058005374201734504285675946053991843297023241949345371701388724690811425258154521959399326934234200199402267322072609172266405547261621235632625802723508029595359453690787081705074306062336480382141747145923357212794792392383759919026597621930292517342496008371751331913051129968863784712348511460488156223123085954317792369666352502980827387458198184100389639953333060475397315671724364172178579551638522508484463213226480704899715019224986507034026593048404720300008589896545059686964331599827925922250606930782760584969071657448264239268037715145297466867172455703645645416634700892906214745604813137164108032611248822099217457840533383317176812155922036879745877923866378531102579910752693496889974175829618182024148099172976851565468958754529487969875425951601226754899503374915269973236904494633318094684026671728431496700402089150220434970947287386160216874721854578833183397843610655114183423116105076355906797027340927001601052903272711819176819196473087048299089285705650302350817337057703209530915494910919454459474592007079189543974158251836031148618023668561226952200194817453666525176169980545618587049879131954472537453721861621503752867436178049176822589825455134504229831563029339785127757281874564375528774943876468244099916474270368092097457704151230136317107500563909571423128947790689664398224352374095151987759028988336126820809467913123112433848078186652704627452976006453469218420524840049919169961218924192689657592931932998664216993122870477997810453772722521570056601399221133914146417382863488168316924893349558519591367313554554289683979811507637255654326648991689319602046363481804741453999538486287787682846440355638780048557920772198007748545009673779362264102209503089620076455607052086182991927878947301208978199708530549639587948900514317708500614812162375464554051703766077466461419752116235325038893084049867910339106578536347403085566129212805037373233131777899166929282742051537432671969865028315499803541324691275208650044185953157528111994828008437293463271130251534601876152265872651709553193139954102677459493896105877042049715395197744121396933556972391753928883396623554689149628587125376591940487775267368542296755005321652376962681850130664019943260203512769287259863160830290164336648245298037207705982697606376341042517261942854752294747739883392462932584661799338148804060487484248722207244276077690731617758444556698705977387349016597923500217001360877851250887895632154004796554463410609310235708594533751440210512922736702515940759224455412434045557323766249916930201331606647380088605126330057622585950037680103781165552166650937982006378515145556124058889307698634048633382704501065182913939464967393570563018464623130683639917394881373283601995218017569941764674075624078371154172796512415105526133210674648010481475478272532946470833375418714669708931903784684075050987418112382878733166125109261295090818156752236006087005049063386641450921951079738367543743614337957990706167033135822452011649252971050771308514023661194631303174022246668478822102508195259987265059676436882995586877938677684443786126587776567744825036187581242135851528156767516352124679189759254032792784548195620543889148831672463762530444972699735776928406378715262798093232941351611202958392198017523767883195948720823933688339842947841249470429585735647886882767189795832946017196918968173313907779620905675942641539964531239848475076138162803306678162779170090027469295570229122392404665900403937799787825593383885186688327007741249816069706588508264536848398653738573732440166629466766015873308927352713861613984238056260144360127210018393267287003178815577070607552000005628067806583177652019091652438444951865169662185620005672540944626080855104597127941012475633634833122794111413363073654744361227337239589017808442686565327069458983846676211868205514066255369005159988895419880060510495467278827111574589371459254102753112452545026820468273435092461016572747598299771412774491730960280233450489949635721078118863603068924108582168097680765060124172108199392529118761706849870757594006346730708785356017663612276519383373970560846505649726618564699415069469116390742175655289187622147239628907382970947204475892443449596913102405582323656490550477122606803663256758319639586351832118024108991043494377805038607630417384619228869655885111999194564415188142715787065152166016699044055908543150484250701325579899120295393015649784933055830085987526451164228896065144863577194976685870959375580098315642619538645619610867774330459483336761807853143143211510227115945470860910522540305910665980087839903904553753718486654982539067524708987763542753382329644596421699438704337860281287982643951169088270639444881362868092191731676366130229011785611530758393580856748682515479168618819957970181261669248351491976906711953051199701619645609838420101858477417516864972122521193944586716217970995328657906155711236877800520715153090841224869760607384473897955860442219396102129550046970288995483844116930761563338085388040156082236939684064621116741378498446583720752916152768572764197606225182744276466035953494989626197569269656671438062063299304785966297267576406610059020618750175081717330528935586072379430548793119385156492100530293136504999799984497419861320265672312959532352027511043038717615571224964578254740677000009514988139096092626143226179481946741654723819301520347913665985681305913762819884769558377603116197410951323392221025760544977123295462317842529867118536223694568548162813551235002928948343498967737803534178697904976425467676751460346391450940080918824267745006315726686982979457510976640388102744433966968411010578520679662281112051618018162795792835703966608719458124256813284565081219299579473755716816238459396153257541918999231526091528031243222939855618231496431750376534508060851400186744175610997062127356868749132080841028865696131653320503119879261606320130540860003799601145925141480121446075062867909211515242660535519606401136441926442559791174125576857987779269332403134051017536823426444810088670717971513397821894803356225480518868184920138101578476784828807530791831023783162358037842604356185477384057261336207845427099991843802992164367406528815098266637619919629802986025429575677871469862176887175328744109045571112723698370922377588267767881550239708636358712771903133537663548621531227331499714239869350362478510067881068604347833485251251640718804143041448112709444420240164992738267188787231400963842108566873276369563382172652479691697572230458454827096041342442347094322220571939884840247891390361066058366644909363263814817706517625426612027334952426963536639398550156703966956703576076352742565540749217338792240323589619843685439142160281450894109653775081717701828928392802182814845267734083881379256805475999718163639102713424958719756583838297248068174132708481013325600468317568013255274427127579792762650373253366167113467114686745984715806780945388531111701421710659810715536623329912012475210401199817189379533889340336893272288955222740046490680578516235126232372955362190643666765627253902788567576264276639935775490920094679603235764359703648575556042264609731600996531651926925204262428493327077328607546876540437367490301063196902036320410984866733879424479465140755388425575348289255539089937643626613521937595211360765201764354342791083943318840300240714765807713772837065124091976957764232559361432368913678338150568838176175823560060167955323738640070713623569893793888462434361347770015843055244172787160571624239603431523918192127760548480055273634477188371316025037501769903171982133169211097641313484276098430227164138108348833666690941622335094823750222847765079602870776203299913466428499378929851346129243233475705501726469712051298989400014054007791425933887827555270341334682609008344499051015168375333088781450486811070867632368834147258672891181976029312117840131536601718655020991034443043551783448042653217878560397346963663607455547817983147301754597545366370390466970395350173670771291614100974514521748910187423037401890879677145330619286235283860574465427633768330116970878215792231490943456761410708480511560800963507237538628317509820432274138999161904212300994818576063459181440768406913355046344900652460147830175935170195486643125451566215549823507151005911250048256717873323322337431563806374076340215891368210994709911476556129195305710850442761676291874217095291184613113794771705167004286342526027505768654979193988252585129605225939433337939184371582991782112572407782044886965593132312960018611067129754642590563640121634304995483563705600563346302882613713362822551958607731090362730635119874614703992110586540642666002273943984417880566236604549331689813785767118024562543135035132425392891755767994588901758362711520587352815228055627384719420923665673672256017267653563372897322836730866078482678782114097737038585993390989272617093217565069120606397032591060793714880917049878243209170133614052616186150784160136551056885454990042633687585407830715655122519615177402505576649020205156721229453398391950907966791986179726997301096130773439683393553767726584841576339582769766642241315809662122431751984385656920966764534241102100320047403047600200135774729607534083162427135694571536435614169506363914636706311410266841040420817500357942452369182291749090823301692943416354409481362120388819168473822485427331774735069879111485813337305404212023048098550068550697979650716729466199454535630222577112800951483103393441764376082592362569454552496012220483882254320511764216281086288784565381602631024899197462499344260555419563296505368834570871072243183837819008947752709402654903200056849369518640330086348088542660733409980762593558072212363727729683510790684147071973380555117322585604500307492997153298397380790547863273645559277539013921457150792101552960713341781624158174419311806516341867443267188717305702809099895644065288450901389308034062918484024985760797173678990863089569201482858947470596989100335656263672446935347241312904222074914073566073682304743932414217102728860359460772154655350998744627799268454438761182247137795190927832982268276808646948939975641690902358947551671688049913380411482518420219393679102935409686748507692470995828541782032761406049608098304528510706047981352556306564902649979751316852257208753336673630808252292655522367512878552006529880155751299968167660142919303609617968298849246241489743759917068804275832300643701983667074002481840450602640676086940358782119061685128927674796180054160055296727828983032019146815171136384610416401078213802242231092581242389110029841402266777115678531577886741837672443414543843498240187325846475855475502044318778107009113542911008545827230696227228868787875355342502997276888358164966668302249990141758120022977406909204989332527723466624119931453245882730006307145032629001702348469234448321258637672886400177054517128663702602874007277778011486272473399848966488731087404862986600726987910377722812837592900229944314653228661631638163512413110160101496326465207461368234731655051439941864561896450078036209660625421103041836001218429099870091448270247571644785545979994663280061271612585243312823758973505264407885501005015374209586480875080276661435389120634207387041646273186625488503406852591118824863481230257628893391282024871946609346057481943189593071183691895949985715131394089123544247938123968556500353960272224195101036944701170907340984826237255397887130598458746895543851196422870982877247004154125068834644637570335457976473108146064796603248323643058532701673890601302068954665931795412849483376004057482755043788882587986617364586097387021346391768591135153460417759160446881602491132603709873701390921786910000473507560322711905259869783906627934736889294051665744436670493205301928063702358389620075282602021665590814478744008104768143748663086376642797512349339286791086691576383826400225687423511268585406434532406221658608469294680379313249505056024750885216818420480919033388253018299918561486400491315889905426340036622726135401921628705265447752788486272524389437222779845149604099819241200459002936607530448653903238492465513882037790930494793878963186626122660240391679889741743315868527092653101801017532229057099316763667010700139469718002507113459752270678570489959900872321677041428634507457466093188492276839289798836569402608786682302125033231752702291625998201246794703919709336015595739750663003068843446681729934397873338138268749697892832584885844066854094415719775589164927255042637240700435222714971559527056096421346940855990286857160106033208549034191079776258235720662708879932786186199705169266003273768297912939405891584564374173131247591201952263671245738746659482367911480922685722390068812465425523725577618724083070020043174654789267696207763978676815807374078950823846292060173961270726911766254169710001921080035700453992228624643642499460602718548682314224689786695628486150867514610188737204351300241882214425006892206302726006277075781903376091383465282689808898559051470165514592862173323307087610698772362977486700313527007248860913075226714296630361777658565157565721288625376026960282246437777089695347276724035691659926341182586191256356574264296606823630162788255636351233319060101113661649300414895710287713388952406752585017020790249606641988471184670580892202797810903180379951753941691672962074079503245746220571695155496711964382797917350073891037838554776086062609541472638372607456301576309469368922577214109609292717196681298433626803334104919156232753845555095939184150229735207841802216215194897761067167871598472589417417756868165274156284378727105220451570962123491672520939259430089507935227562608708339797984831067165354562029861421791698333298371937123429800225359116094592356592375045249725624323539161701692616489614324821222786200123244937640249933967721765641833073242460793060988471187726163242871118294450990915617008674788708822836665661874630755717850109280130128799992356009357786554205563625918098890576151696274013329853844182509322646727775916556894994574330189648556898707897878131195830775632710550740715437332853256771185739714843589159656444318152072702389709489990591205587175457673404667927710752153040691543521389490163926158632223130292777503224131517401542493662149881779051882575959013038917269695969579506867415232582711167424140365659373894940387670097993854798622517787071820498320411307572684224047086991136784355850191619966513533543121476478054275216841748882203217588929846858149787929494860420314681410756935336249222581616286038620596602000395613887918355788427244336165119057840261394472204964261747352536027020828347856152711055859863632153152667605191774052066207816110729220822799141303555780655813953422766725801191539452139217896434666746417092933959885903859890813573717050093419133913919482508577492278209648440892632209613712277004872937315285108304105218624649067750222428635835029673740869887788788520909598296469238184578492284027012800980088657081797275267337767414003385332370419901618056388642234849349100333294578590476010597986430755344169973325590817685029700905071869404471808399109315936865395990873015181937763621766088067300642035829172393395445345256225557353804377079781641224458868909975782374307329017461279199136979742730869547656302620005364111069981150586177353397062868940028316199437520570183914469213281754700416817688002858206356574660431385942261517692704131449168286930272871451856007015114282513725661080175769198112197321808410400580335674906026724517106184916246775903874147810627710667264002759389359225574393609888962579780189605770120623356317453622216678343052629494556624000598911435919128326467772548810550457440312650165974925989109932547656893763576671285599360729411106724554945310566826807994980334902140112422622864994384792218638550076985632654189771907544592232517434093217024816734219396083537308517855562991476823665340868464549754209068910187423167504268794186680880039519991352836317862471502753742563773836438982387338961560476223341073416406316543645337298096102197458487972575836012155558111361526099674240479304240155903976579468394722749016824072544180599256660279308479875900512301595923587250761612398931512605739766830716717034128109585063635035744064897134527195141971162708391303974117400016670067437994185149272058228883950169435514105432254588943589948693017598111756508352034992053903256486828911451186725459779491532887941510094600852345550279997955916512700535161914305954221960366483085549421098046883357245647734166478463083299674376876249606253664788554215175254415460130117222447982841227373132247906982470497379986311474943650997214886615895161416859401434265394281224909115079917002473713542730423008425002903854886934492625576968125109261067377953167626671703110644835444384808279484136322790814861914162240382932955168110709190355898348716257622464296156033483027848895973080792357931883279739803776950986860501963651814210474632293621185074951470428373530168423946284569131316003716332776803206089766156908712042704413263721668459763299008953043666672878280212342615024164258755174724044054464375893557202451368214784506897474696408731608609467041192034280102340828479217990053259433442676675656580144385360324076513989559382337937341402806125754676991371747125454508727515946426805193488251565214282974223359665343476426483290839184813791360468690979437620653652856644468918325287169945820699685565265793420150303631418728262882174778717216185773496111878451838519894711497006416991379196032193183569615479978577077598384790570688365258461038773020297335501279341158896607829495817041968827396233731147699585686235912426488775633254218247700206315992249502046129647410484595263647698116759054113591743839425037723329716809873130883446089093550893958301727751587806748769455828266598215129091042144718011485290850379186656176308007273294933042707706763744162375263919764821970493716506063129467662407149641347274542309846072021501116019158957703811486505521460369735108416910291611384516543737773929588403404938537751552680752993830489776672156415855684463639341118719441534584226777330092923635724940219012672921873599377791610277477268221875217429800191252221922254218952216088941614891508409634535062426736539242762135810393186489774577880657538494375320026091250508367607584807807406367065891214407804154658791630206634389756310203003020383066267543836806379599526214412527427901132201925595989255220812190319338105643971030577896873502974234729073232878795589958087975972713835714798083324218697669511240452344533495701348453424754753352305829024107195897681662978520203892757879573361838091253635750030799610172820044874930880216213707125169838322310029123051855486983427520268346894127179723611841252317122408241750261189007443319589977312023527628780293302630645040042446754356705687866915347158770902196530084172536819218158472085388985089665199731441104030922741878380544055812247174728299027592438102531393332460555991195131855632204622360083122930911313501753364200007734039893230654117837289442876674041077322776748500154160593291818446596636766542492635151167337661967053518884546572072967313881559633305543678289503936626446831207554729620115330327844148100531059098851433201329046968634951544626990762572830538949471114772875916137871920158399409766383847827405176085233108896699875001702507542401085760891149512593344735743412758842847147533752982510048465061665267328150317006956310474225159836527025128538614928119740131672471966792477255556973154909087660680966888053900548314151945964787333685850554883697767731599770620972278953474099045773143280360150316889828384949686948093389927978855728577351761564437955297881486680513347810498482125692987959313784612473945390995068823919549077388907328454549814552186106223009681425778071172336541235828123342345592177971108890653276167578745084104886384993158599405663663128456494246299134717849643935266167211653023703853478288054447550462069245683943461035136290921784849803460632807671866650447425144327103962658376069863391388620349287466789900882234609693880068423649913903952799813061453587737059926985400266546558332070296998706062345512982132280777017337540713944123555269431407379779046164375557136423294090080329529433662000970904762433248380546962045831739521851942169156337729328457900280583395090158241190037611849801086716905365710092051049163254309872813679459902673276413754022293811066239017202340610840191033130798498327976889416815248967590259958922779037950034554739109046970073525256899978682911394082693850757460219164738831508661937634661504795123196577857008045931837400952681807639424577434840914709718433570322777984584921197216818409937946329175760259400492769897318374707397788599796557306815120413460481733519067589918771714049660982907256826819556170796926959411739416600333982173219286548411247094781454737081797803767910201790650926893354846656477304846286525620498775987914583192275963272550894323817040873691503817504565928910166007657681757723935696041959959309619549003246871619048071896835705105324568089958467212731894072241893094780497718659623067216115152381044871078290221901327360216878636011893334085873350506148056672760561307362018358199168575310500948105218385101798184562474663503196929684238060263372935570271301892123334188753012212063674424293788438376849350075417971636884287102944359226345651936712239825540617927377258972525441903511999556770951252141242093463036196013858942464813762096474856018902516599076096307658889782485734047920301562488006400901238818242884278134281782271935391410950591435303234906509731095121374704393823563627742958318138857681786762242408545970550690897906940585563674396198449997530661262921212901550547228493739130990413313263761630624303008874395993008241244089156147908361738958178284276978377218775568202762169661489189800786964400356195250258463949881615911441841307715181401447754609619275614597566160919985406149260330623421989029435973950765953180566020508227328481674056405165950213321575354915723979489248812768746198859102010589467008122934498308083490149564948707353955330691541018765413387682575194631694506653076470888904423327972633140459058229669790166771096166752838624682268990798738526175543053957038622738110830515788522602065400467456110901814251947665300393455853777133431556012197074658946955318350108663818201245364354256456075849686517858168118523067093761062957402739234348721226426702023939977510629028717333436760534369183633193676289648804886568452031684143013349054345668036256222423209329116198103789139913092447394678733415483011213124815301299316408582584052965531600027131454958144633992931604226075823648880437132814787871826282740472163298596502100201379363224204218623619803787939531587561701657942941249822424026518773093264342141322006168805572499529332991311107148585429514706858511933358103865434860501089767830968808293974865064097424181046348948809089979562987103570065599527338329354885150187009825909059043694437479533514788765320570129011804679901478626116574671963206636991799189978759580908022936542499649362791802005256257928720640664509064274821557254591308608634632003744535284508695036230648223618729019203758111033580132609364129170376878139950395901922027904012775403707578709740529394432410821125099907583073561857870728641714340209182014336897295812585758529134921493026614249425797246572161800860857704310607364590250277278028783828691652352388238867950277064018457498318147907334589274404510158060656715339596580615990214726276854736416986261907270622270722565602062343053729630542307731946919740196716295266617210059983403849569630382062364787320403315990766938993499822235053362883900680798212972737938708816200796773917401235281286172849558183735684064655702006751408764982091675590186162636939659585407580705162301649090597941188873366167853021145409237917238727098689867171599173515594838122649420339729581757165943138985173568092767344982564408460092122915872842126286095030637702261228924592566846157643555324589200180576416812684448996306009253414374113945274664065887305597719105589393983262059438060652341618430983383315398456814346930521722339486512867683386145806220659168801098104811399021393536241204521116975593547783076128736786598894800760397106235565017061588145305742860603289394030393978660748751132824251316593090722556624535088291109957280271539305708598556799178618489244630582752716843603047728467102257708637309285473491442395176658208696087853084331811815607056547523391916725905052518686638441057791569333071981522451529766246815973061310457939554585703531507360396309446312596613938516178695462780025403564472912954360745845970236938006110047313319219271391156124268668155195542146904732651287047453871919684898698030108484543501350252920690318779952675994059573930094276463795813821467414334748605425733601455672391081797116929550878206068406784229007692184579243200241844952477371375410529481067840251295235371169038981997246940767144969961583921621457633133991540041486506215229898664867674324586237521299898249488081711660025187904333810321854120695217885645469799718204962613233551898087524596742231591144942408897477134832158519610381351204012398555137004378674180148839899488065432229972784448107826234895515310895632314139556174226012539967701509950741826577454790332556501601200102648188361851349671067129636063401041590622633523839748935023316005548319034965212270027852340940437360058056550871497437964391741133691099889110313820946810402439785617365781033506665731240193152799830727766758178587827789717245028162420339702100700920010471159416391031379835057407485725069745750033521713143195980216269202174630470839778802396851940565049772108978485358498631793836709397478640390154486624388719454808102629487603274261717418799916130334319322701337655260328793090792888202259095289299370031802341020807632324560149925717030114229495347944689665671356377352059110691675552849067812866290344876112373314163131809818630251264970773347522353726451615350992247351100477320589938224650480656148874372891281267266495658489018358719438000850789347275493816291553253252346728309156625676557755651138448742697041476911794695380563440944585814309706418202915988567653034312292399789248194212092362157718894029595486212514110466058897534711484394324746888968709168566725142867459091103096968737838644431751684775952847885633583678006267792794559765379476290423152140744330139724886225915131165377741644826395017316627181917418078382851990393451381738693273413149037603917468317966509111297267078240159254214066839190679525131062225103337671461696955565355803861654144325926665282491849141436419124023117005310612743559153305664814513314194046025369832796871439932056052149738181602667256751179098873969453928245756571257059845322754510021281464333090960255100063527880519816873654178004014971755851640253980486744807510169904261732590914145691628724947024227931652033935236497659568145540627653353381176820533010025105610552666115921964963822788702437346845632073429369209798508188109624237823155120577711178913877743051888186217324688118663080388149023576413043482715796016781646979606143935199398427088489661312910705327485482836313745271869328576727819012024907604017944027562351747616471915484508440261833719516845685894401490715214179290729274692040392050436317950037586748059076991800552632759323847307515917898201101806068673755855487529515632605664954201587408965359126695996305800764877829902491084520415169256501578554794824728058621506854721089570011665547301631830248348296867583030686343174956148071768387023194933093362481290303339673095038155283649511657036139689741049097884648107106895991101015292547302711245087698213705891733718201297714315265994630766684147899645750797071991940066503978973729326297751297400189592330740342251129626925087507615558576825598953791026751871131996561050342847183350239729478592550591849957505751415535955958124573786662580145535155610120943759578891142638013635320366826441091475618255935045336606203251885214547981670036857534395449500381617690584203832573795428078082975827037143662984536333159220893118421982260230510529107820479422868176364052075059815209109615825410057976606701716832277118156509158829269131465252570543513888060888422240119768449423122821967085313058407376476978968235107337330246377647616005686961332466771367118790795096707813437760876458116363659771056379420678121796956692135717139537300604927677626903860752441090121012092811438799848205989479156966306324255480652217894683029604201096622842520507219328439445469010327313136862301473327536490326079431503896575837294686031091767942270144602423092288116381377937607775439402683050690690042689793676395118144865328897007195942331399084734129731321054569437114224532948440380817931228612361896639840873541697806126899368692765200426986483133653423271594429274609402565616758467208876893636475088557900968191491495862738769595510595698163139978060080585867679722129472216785174001851148510085194041557047188563199071022472698676961621657919541771900214757859131325003218620200917055630218790511640674852434137267269363096435159972865024331827879313618468291074721616196462301036498437939185203038876133069373144763434706815981951810971752515739804006141835701919113224766326511561998264505208449979617273375984638162586590622226776043986845658959304602374379158493993946263366684736024696655085620158387587368146607283772201367765811682193631140300203573843556615759397043596686899819042354928654742231312141103444397458148349306767708181763485677564627879499648375417767106744766476267002174990629857144171974714721737740138793810012136753777024399708153987093788244504239880336686633500471527310884501663427114918944089075489239759442346752246938739606414834759491198828871639269615306171111932558075148472862122584957189519387003049554287938073635963265031649713942236255370401652579073582631642821422887219887472492241280677230023721271220336255434463731706284181387788517892333406507668353932094602460820883222216532223039740627703563503338446614953388672921568795893850215955362391473176856596895277660404015834967670936453941262019983485291250870003051436591568534259523638476314069222508078566133582952770520725431877153688984908088247484332391419735345780399633584066138449247912301328381410311143324286219970655994355121853370864918082104206930545172937709740754614157231390136151806254822989746807325296433097040733105734370479918112361736863530361439291870656783405841151477791380579924163616335325616181658678903585554914852218231780686239687567025320688523892186018247679067030466354516178614593057609933529532547008348148761468579351177251749828779253286638818439491115381110677411651855670893439083796968336196581767349994693927158206824022903493988422461424006719285242496797662846255723760696777972258189571445627945421546946094843581360439542530538704015282979576315858922505702707199418795710526442498269431655502826757050480572909277015029911406783566423400997016468180501097764959637656732000168881973159238281497710579377115140901578440633562432347480674537950731410392860570717619168827106599776429060575653538847698555339352678753691046560224147823228730899646516939882571332392103009120768334008635370463758377930368744895555997451575088069359008339569594788323199329936192684013722056624138785194854564449022027893143499998966490282815916340759098026976922563893829040032473485664058104932085070907136879233385257247481545420523166016217470485483124417555758327091302949251441695910928279723172568837808101631238588293884069744819155511776153331391144691642301641264809145342671681617378265518970410170578943392597645843200399688949709482040344181643460984149673337939522177820764013261728336924474416349056454457696750073351102987426990245462081677847410164946137967106416155399046915835525658852234953066338522125397673829738630684032890046360087801112780119750393970825494002685530520086494857243663675778489845501425643599038055915618370501760762748971337828028362271781985871215169695227177444930703795150857403554097725205380357680987604771651699960106965704038714955513326828353268426534151631003192815288638899265515953924165172440193109692244467374445621020688005489659932798934404773905042820549887370422126757856724797470123227615811669133504547306073353999119579933476861335595810679863593940766571635732349892656970108861260879440113933505029080212327210129411944266487925097698088962959464045112053201073450056014845893119644235097978896121682565656045507760069038937655919542929165143390772452709910081444980849632450138449240590623429838415339724548052315640356149731138045085329757637587285091294462653677448735859955782923678240289204250421627113748240120996569426329885494397018681500274918222730300254376220769602518970528412291251085633872925544581599443425633224338025030817825286697370457730103511689340222268819516996426467944182844770899132411831701310523511618153118681226920681920374783177583387815114130000870240836122896179769863684752960379927376222200829356857012680903818495434969828699272593217274136389076057279974365964245544408996186714015188947847206600814433465545066506407459944704475054761235497151270092803036841428651012706033350958149177579893396730199464298385889157956815146106369044764272883172773455567160580110265842919294555386368859115720027281249617905373214219832901017476414786319550816991123342081869753703346196259591595257805105972697813814655856492185915993764818456771065153739547634520022866608596681054990313229293178959705931802856700455210769488320388947297891990673178080728218836379223638193233866830148551396082469900100015886762507089991257483488057713064250652388716978757926516447411368569651594472190020526261748255309922023586942950782450841030272977983218632109364134619410663385109377309813994659305990727638102595360555277883605256013705939652212814475961395353511067843278237951948440399260919954343307250000627224907676424294397944814269244789847163673084564334452100903979716335981648334325927267552740089474909981181938731658354014065110619816670283324868679637904790677243653557019593775616110557391830064007935260134379049118512580863161968203081581857590229060697874328737416056425212576392592238211580344712285757974412611196274587347618458465571075326591398954790612216028805258264316429980514608603150704351338712697221995685714496165582453478957464191526588989081831707951239799961322132734490540991891494620915137868447745531631625339909209570442495070633164488021334104388352094847527335887326724402658476327914108746410014886116434719185408252760872587159966639706243591258594858478750749479200943768053812854812339073972436844678726558040978464465019580584131853357732476775864486842185308152633539659804562484298306481830727249343511650272703800176819325068062432033610252676525016888869170827623657900784249965015684515655064844955889538270725074919513124661845632724095797701199053198539012401670339992730859656714023936807056472210281789089403910294564640787390502191515414003693596056328181729385563564572102458494280428530889259896445249599503562578199882454298524387784550797584664761623522836496042071518895489371612451306741819801361979093170880995216793042990592312512338998408002425226171553649168653042173926923883934224120467338008166606455403731594516187722520743465862869986098704406794973626195689715820578721274856727346092722754317600098317706728766618126812494043681317936063244264902937054925323914514084708964452335799736748026510102419905240186589674202208640766265012466286273996149195590236853444692328584624242880724303196262329171974814492705974722625504732660153421919583178060117027593829409898678143170858845796527689070898086865132036880014174075849228935218242590500627647193391257772140663274858239001632999856450798710695648525682681219713072480685446559388903135075122030090629662150731370190937817187892184779659162849294232552565021231041934083152797418856857228727064726821410809204191410072387773570039201945802021489046870330080470848478802067819724832934736970763832443222120294539268514646672809320928658755378980342339023205059882517933530409532033053226536586254417051757151107778108070419003398278564537313148156995631476301480257242906114184116877816456818283350188847105612533768548978315383591935420986936604571344170951387197707117717960372701588959713825015706250914087455695709066944608950383098956525092135101274696316266213505583577465216028949792966171451875151102257882788863659033626681908289457360926831543539866684992389747628244514418554328181456472232394746090121797034053275076654037235535623241725847137392986169439256384881899277635690571878751864892313800053630437065322480219906216901812567146450601820145376277812438093552400171367703447781326878440323307806096918275239509594707701651139131885426099503008117813176848489727714436605674582302495424290284827534393195314336871139607911456924623220176980670849397973988004872044548135398375951331844620375737468769786319230992633196659550700996342443268323167211077724298797877460732838797198941749421914016725522345279304295957331319378159501997061324287467100242949941981213982699546582495952676682816635825664088258637245906820915038749037779850190105776421059604264596925234325052699968893640665051254699644392083881274121963645195993129424175969450962422310691239823828444321001368772264535116848169816031593049673911660667969794283903177370839448081408778446151353278665243724300046805350369348147104450052518556974850268843876904457473216729111516799883693779643385308015445659929705316306916525360076415885849053009287469294681943602259993876770415877567411079623121866750850918051312404547060318504583977601258751062187458685959501347794746843783406186442240279091812191711563752383679925634303465922334836953007245209424904689475019639773899859520466635948804059589361553197877498765406313792552296624961180599779516197410353058542823879929121574665460499104270606231697063011378938619405659410533550235395641080948583683277128208398984113973478530747583916709184140432443923861182095581296629575855042420885496299827899814545578497649769465999504723104532710505956000666869979328193554146582614674341371802684650282328156739204554684451381414994157188114355854178363699346232412005065666087286869151659345260992362460227337017024579744413540771507758035322302848972866643106847283702553462900246977343634211207858587631041240384138106806200925629119939532127359914420515288922112745292645808039405607263361727802112574218901748141580641498775235073152264269652088944988804463142728724388634581907637986066541452947631716591754113994428015932836870082169399651874863022223639164735875103818366399658319726992836854757004487689360556739996307546827336897316512639822521090015828131413158821186119283250948545737754916981444418445525439362704029373001672246310654413295940221551249225415073981975300031658287640900362405954007704824176090062175162668634290567105575282909039495142905559858103620303773350487711078664546995700869701445694417384136944871321002549620704938772514876542569002694209257598086592516482661701270343296913665305930216469632914275283409339679555301347133199385593881352658707774893546894359665100295316771812321984030998375981163565253687411973052632235037558643269188234547369230020706524560964083815659596664433153501181853735216861100788097586337625253023994899684233254192129126957940346992422206097946926691274798957822264365598193661971553113026322175380362759881239766375505821616469446863277305468477911436076634691359885764381463222483449772132218559017941677895390635600644238999983541992312260675134197849318695998222825910087680549737272850515667111246485443162621264177675158627321530770876797172967179445300628233424432703562110178077669087490224736664250080688993478842178629287646370506130073041807480144544269488051936117456230712272213843745226956178302582503311793801251002056509714000310400289776545333172376166820801514119198599514386241604087334333629448825400877169941914317961846488439106641973620319333579898732643328196992290359912003189555569981643617239373955758269865227833253354645275294639107784355143250792687117423381162525271948023781060250805722409788515198832245552997426417428373816911298992937217117804753156308655497686660122686391623393218200401580830324214337735750913474174527581341856998471073710751318862569605048822911978042017224378728109243391633402318115888602481181878139274505211852665434836893083737848189393106798058961243850254230329980900012926177984408991285955350576753710425903767790819219701982858406279016068892603120790210706248630317263649417183680092105263398210190454145884014963406945956691411846306958084770629790959454629374366791388862805263781988877126522523282307976283332496262990792508288486155527338365397517525797053300199759708278499982395832429661942301051595408884615400634349090042732060414834773350717448086710509964730904120245058167851735001415256255428726056193728754603130227715147584131759769799615700295066987209423309064439013548554976540045897050571421691081076801970338334034754511091628007526864404895668189517365105483915971783100043893528660981230168222204596631495677237347977984009333853104641928118183747148376633493687177725178273880565165050865659259645666636554720823944191960763739888024930728119420197698571566794197638682057837837951291624766811419469200070699179482610239027218994039583585012137568714865466037184065025013994390538414386945162289429599567103500475228125119637204803603469379682203955437806890627182938587502545893134944758055905631466262352369781629067696872401873990440203618798458816819363103562658352154516212707202030796051585871007813760039988445942351369965623421515197276695919946052317437265188941965688173457868643819788522987911234987337172797390075332254341897384917392142310327249123874003583087049210827763216683177778755008419505928041626387369335674913451382251523295407204309102025208116250417490966001829102031295098303573741087576539358131357936542321336118063830550942979716930040632968325026633859608887442355482544651411485860648688418120397641159943211727046486845316231415248219916203536406618586777300174929606173351198165347839280765010987049170262897184951092082425908649219254625194293587922809595647134352051861489529808529391797840762851944343067627901264896509923668232034607272503410523148148830417691684389930100114944265453886047235436582976389883779300918564322558638029977044055671836814046094728825833307123752345192229726875852844845721658501570412401663375017023409419947890227017357643846974142641501358193490566414768815065039944527511105839303602101635876127388465439069320528074397127579967568587555698993468711415811187029277029150906545128276957484329807391762420719537996677469941020446878922920704674789128820865606699917573321783271900215451401748700505685500856803251979665354746723845141987380669457669547074479897721499211925145401836671116138854520580484602846685961193976653574136106510668897569648155209023969360011042387423673748797334830813059047969272261931840368382799982236849891330116205286136001137489147876878954131832970852330096078090013852238359856020683366630006936203982651952400707075674777698843295067750355794259299529703105412246934765635262297855236653149409261227900219156902171201737325091755000761020518580632503818427524079189661944173374612822403804182958905231967403933114054224780986695075919109345207323006068248447152107856300248109301957830770576095918909922326461347421711400912980384757734597243538568900116504360934090224608343190419893229066585596207546727762687366975935125303461644419846519782186967801485244374070395964756162562407977704295467197839767361970530497486543566984618137231107389520056841474837861015039068327455347821490187046802449316870321910779076589606617815234521545934723768924709171138329157448044861859863007503228760177679502702914813338132221957330095199059565021011973485603290889591716886612583387137836932568446707011637889434414353676145443274097175086975678560031067295562327203059640178565249740063183704595744511849193906758912320803020009902541481973248720771371225987303015290474827990705792595270761835914586466821925958248396619534438775347481857813802956234451180816180743269708684933710243346602921655699191955981061323861804011700037556199778402289522421358564825005835909462348590612062659772692300616170088049802267534929081431318811597158123331156485889719207666244234427979267346438978687251891933815197099654177675933208746179425262305785304402451264583403722047817106121996810263745628974093141445459011407891831857510661844291653759404411342331289537393483747401696022490068768021643805812418483593528686454212866049745290288754528259779359857744640682045813117032618855180788575133256999283893247889042814770981725505240768803887106283401127028523507947516377412241710080976472890470368037174892476649814579117091689628570080342536947741270429848413494815496792187284601798106348234492132367637566313482244263771938690922152253060020810387712685920163136896105976716013576963552312455793632332630929842884511859010722571520869774082496373211393964749810817909714619807253100431151936304756411994176118698096036752221042140090656303795038584501524355636936106815543500860757412944790692724988977307499731422734177976454974705521079616902974149341443832108862225812582893046655834739137440553649995682334512104782674034010444995883686666497192830611470400853617882471338892972369290748172821672510377666272089135909841024077493800682601785910919792679369268906569160456900605582068677976819765521591859424822911283183068769719405367846562615589754966602286421514473107651128726864706549990663330018701018585014252696286319764132077367278830669798761661075559409688472499063838492546858419040080456517279729077941869648571767196177511120602928086370757587118186671936355776292146198115370460826824948059099777994648954373467989804441604448769688868212424820887538136347289020386179729217066968683009679007044982835258058162969755724912460076301734987629143888967188361132808272279207846449058754385881091276502015287014913264350916716074811386117903160589763105652189770540788291864927622005729012589751388824346329385078358677472951997710993272675389573468033520868919774762491437342716035361677738737826987533466731538285359329918867555586530505474682649904679194146054563476161117654636736516836244808244155370316961107893611092065023507138077653977426040940736409236714142317376374166835895481690234421647055232879682525228136792194111375465452427344343577736241668706689451174737667278493446524575716864257417121370453397528562363130843963091275828904236509880970913138798739804304754377090352950569854190910025980692582129125097778395769715143429131866194836737848657993453372175785516918540265187250240479856769374931593706991807009136232306971830158709795217901056070664657590286287302567149993151808402169589605683180488151421494334804011616450073218256945337147378150173490621809340167466080643886247992709113760954775373066486997910906498185394062956163393690625337233674093701492594677935244636041619079742115869163723844524400672057336339213933652555095651642301913475557856754708653540981872533263466287301787806521081132757432027260188138572434776644931301197489651828802181209972388208187341407843506990095937045695026075609862927291762651241389188931684993608316734237612552935627479306140397568461054174823222219200305100202605075485109449030021493018807227861584332433727672140331403021379965977973041142983209846340191160813659047356780328310906732960818978556953612550947112351823276746560414926919605687774684318750934068807387949850349161479773728751315596778389403462202121558933029967201995009820059189658859841617554783917078340778815895001984798889054983698918122356428706397448319533101292862598569947850459500781990450753522177447950028199664722760032489876781220183116512794171950729627559465993311220841685289956875150961649304051738854109946913369643373767353373124267745034669089755925886211212593779322291849441395772414898046938775443131696235213751013560602030563310232293127808681555935153429500278456098259531615327935707285859820616409849232145285321475861392889728716170755473434417953622777359515097531172122729374577037421832697306650489829809779119101845384272482831354402370266245838927583421558034256297321560989404281225573620445435697434615357686663279051802389088733240228912795744340904207392238127027464707944934803438306745236876115355955925781553708545680885089189267824039343372891467541131980980068463247709102868343007591266443121038206092564588518843277501507637423775731344668678289955409880569783016891384206426373552567280080999912228532690144314680435420311477540449859620254485791059109551646824218335842006562307993937786039954894785271961347492705973278967010542758169363608125497513439648178771679438618318433740073049445512337601523776135874700955388645785806592721302821747951676846107150118870756593650522883266219137280093780246605549079536213702513667768013880546172193189788546437757438975144152641651604135604678368299430274960886083330719429541342153339597571882350654211341344747784458846564515307990738902975996160693071573930686870241388814001905814407192381046006266135461126211969173540642320161780241039609512078842591166608465101019988979252892984487904119021491653606759454601163345166498557260420753031227086583894308794596337616176819713159914642672828241551333652107378866742641628400258349488777204524988651464458868626015472595530669296855711019807771720398482436132642396537030662070748032371425312917690988399746311473199468563564069138083153039198217624982552482097532156377317623033442763846830968234887884002787656079122860408389550822377289883252438059064063377921609067152639792883780758725719955273448933681782509984850008296620619416057171576888517126414708000245047027194909604605244925462360325094366033172475563067679197057581302469478191888900448780322960237251363246512217866288985815729948649622469506973826593041872961015518468646152556294022443103654864802274111522233938302927136061902491822555845022408471939043064434639253522179406105115778684988863194772320238375862134833166757183815015784296547152481976959654144871958416861285530296164996123856133494940372216787882326964198656918594023315483783213228161526929271591194594520448953382420434938716297053544157760889696968103437025445107441152274871554327619606188547006219183748110628911485174610278100322033813081772903889063043867417182150016327052758159131181439872501191582108572795432475651563098105639252147727382155640983269233152776391070500583368596607826118354881878763402558559591531391866646934048928884867862464385108108755439715196658678155658814628791539988293883347950932162061060719817720845430618968814452767686810842514698707841853345882539013256410777166510178319324572488077895800401329289109475192020367968466025188857252840193304693794339482332217451684080418818432546312620345769871315890217339727701070731181544105673782848100074085588044383888749132231696173776664013146126280256476136639365912989174387291593188432446276539858629802786280852850686808297842330069066949181667651958893410821724912451170091136333504540303006659967995689772319933317937568560218983151277511999027281377169442163530954679866040887688183617460044187221517159521313818713871069213985264898877324768912692025003210917319911065430451909013116995088733971899298520406616164992020602439780304216385705752731214793192155709731602384156951156698294831929436385562961828437755421263894015196929066918547011777168395277689474695984559593455382434291563537742991763996791708462296164296610210073519064513750089577780936524459001782339759932131914239737243534972409565943493924162410206223467525445609002914469353686051193200267671298366571958007973332445436773232136391364297046915253962370077709997156867231444848923504688400148472705936214914518245402202772219625521634662774025019781716051635557829998017614815194543021272830031956664761623878265530902892003631258780410506102652882438343750179886894441507321770048530907847462426438764569961906905214475151973098721684985826071438472586821111975698609683762314491062627586743663545779813409704518865780003857883468259530308433227341019676887604887736696163149968286452808649169986945660464921152449076786720022121060639108495569694872842788393055059535010915382401820337011164487947153935310805424950033037701130377661196623018388572110731613263968411462742367915083789717347308108872720035033226616064542604958357666873082931708369615709832388937559737127443657156896107421473948379457219242118339621527107236412318453895024111702892488434904721963349332873266009006188732352063085390836359069380066707194141715297901692540830966899875896812565901885607812168819106802749984606492061958263342253274042504645658701388477420280539838077543790461860759193925079636343219201902317008101941097559778113137586226771599390069095863820444117639924008914871964262094828884450366770868040893063668923354693320642983045378720224472613142454862063159102038415654806994557652088854602838131500557950033324792793794953113747821398161358458961880234547641154438819753646479030724627419369985845129374235937274423614269985971859979326241900821408622306083064523489523923341086484895851708989415623156253325729341432545456793838507761967034442179118182175897292433469766007997726366090139981469354417040039227138148734724157346953633923135556688042049482097458106793438818035366847865638280782588552498884783334417487879557653437449616669643273530432024753012639677213353327082394523349995304360317876649759160087158802162493410678267478460199269916135469048683728544797265573850698394701491343004074041718600820854283458243875137203488088825519428432860264807854180152735147629440655081883504812237787726643245405595107496290487555749387578349809628003591797252766553677590508321121406563141557822633339186377830044569880559293417607713396501574704122455090960298313500249816134231293984499337185783078375577343067048429994522515366536962740071037685541563055987099122478168124233479221106487404971623084099548606450496599430118754481694258022250055182809943760388213997787778223099051123830357875628972256441635390221866230773888391817108360523649108461835123154714837823980874862997313844168128891921017566961945220387003786463389531539754001579017786164250424654744984525223506914396866106650100134643658487066993694331222382817390184182595168508338591233946186288097501747461145334522705486533254024218572519318437511308202326224120846067790931010706122569857023863732346922554488413231972581194875149714144394196937116538164310142587966848479723818397267803098073154263981603248124816111744585414470187924712007273639898193211140280165016687603364600944548771024089098284563798634756019291640522109114732591607024224342651362853890675639945517395746692212625302507457375804824435842899010838494579799039387998508952629831126699147245553936316553193526186950549948752162669347545765782175405866153421262938016654279619936820807135199377149071463560278430451999973019173307220333376188599875517285449550548082949144787517328549014294671755902786543617526431588242469116160991353438884354416879126378477653841710005855304501394137317481099158707233459755208472501511308121663359292789955010330709768077773119605269831010312144377278314282250327260123811173471488973158259463212121270346759445335022849392728599023469474126817317277113925190970551412712820360966151126148056095823017126474892031898465604046807264175311901614054845918959479535694252752245822691554371818391800696748683333755588697758023500501284305393463459578307604314818416560162510546232764746169790289293888992301045824212518022475619573644006300378549669018056949542969755320722668592220542499741635983204670295545900032939658050951546870790829489321902052270237052503409256608709233503172676035716767476309892810524365329530033790738228862277526155016128149350556487647615281147376862721677301481700807636503654535226783049246395450684570142947553199912786245733645365212749352934789988015805670118315946271085743475093910660948355284806777722741196854159331359427121421887942453216986398407091258703290841693981673413289162349271724064860969087958072153991721428432438730587915774994728583446288872501189103355782501642970555948929247783550242734661203318118956548980548567023745729483660417629218666602339790579492463160591356030290222042433921057734638485801949826328993707973834808114030531108948023468881004578507136701950234591355886696896438047903429079992148565641880872711302958650327886412849290977267741535456420979846062656841220531293034887564698117555334993418427285864505131441222136623484981642152527233691816190054978574637062645940206143692779250315395336316120893301042514547789648412798218534455711935874674323964376818018190182533760445615968453294865519680782962202830350983125392197501213059668193690621797849732909906905567982602332476419691274405330921941329380853304143842435958818777374245104560049995382151951163595991752762789978344863234299134841768325015968840738174570558200874568120655100353606789437122631143199684883212381334118331173487602548917942094488839367069468494682895972597938279751636611070493959617451180361675475327671789187842658035308783586512178062820776234355724972917937208541807007741154621233890927563390819254346745921972501694767938482054074496925266578723337923031316189523395247924776704666873856373352987090443684908639506444113586920564096955098997958858257902008665880895354857720195956001285856059714327469493896016436738138318678062830644352281877103151780349791629773598030148689943580935858609439274843548503387345434091371529935406830373004423171397452169452856053197318382676854635077143660157847917264803256621772968363026885874706919982840898470389371308285974684752624723197406989265858386065689286112404039388931541052249576147991179084794374473864498762240448687349773919119529055275877863557207450894801720968107231299312300724182267893662614691830238183738755124878270724812837080983224045153011291557849556780037116242351969872953761980746543963805909727983507050621074183780161513331973933781139071795951832086010972673635762457404639784532072419032868706015448776473734674025743393395322542456985034610739141028586700750910441401910849508311936515212978322080346033098566046454157115429568084452737687981312350329835929303696993316923997357769804140111625361823041118929254279266157141686891908012100656139928704992853382268120271508647800171467921435558658888587672981521020590135571473339064645450083229662673186391580395265789489391776922944719682939110069525925222335965983365440575250516859250542878736919748073208151174684322438747689431679370311930166146476087558707974513481312389701328723202061489957147232035078955270271621422705281963346151818294904871861291524862026914917027185784811063948025423122924933621873996857998249616573411265671942316774017249554609889266135871658743829801460216540582818091241656606125623382736431509251145653215790435189035588727102346033411132729641755284667011335420535085294860961157064803229033613930805010141465057221834472424623131567445257203693792896559604493306361950145720091340164448656707620296188501452311665436140439950236727560855565981244482534651203643086783084320193371084144932773132370703600749221939391830109050262568367673543926801558371625460451820006821581142799141887977630388477187449612240444582870107087443223353035084193639520769553653663535680231268595800785866551759261997279333466130000097492585615865829505247966524228122966117117909833248534441206176120752087864128615846398793876402452249326312060369565741896937394338821871281230443493374182145707225660169811052078333064763213045677431301245072196114355752251512317843073743756931054672766886674254314352568880145616301749369312980151825217832499763897144571919851142809988010697064631198413663267407176571390651876502295327204411475027274159651491486616191490595515147407626576015569314400665294757123934512716736226541329800964227097314014688265538025985681725239872401884983648930898415346533237285915276196982057344278308740199542410069418897917337125557633550651760070854823744275059024795172042649920868657940383593983337239138934662025562612424234197617888404776848610220676973784010871386608302232580151153041752067649420426542754674933831426179369934840407164296244667218097842786754057054128933072401809723862627548590741049756425397113565736973920573275006800851793351270174253788937983747253232764547376603583984341110856524805242417623473448814231893239245452993993063270930083213477198430871568573854620044626929008009228088021923378679168317358486775717706398904401826223920587274949920230868117906131104515872285282950838009062843747176045066453261527195714193303854734508054697769919730680328613973417069258074432372853979242321475278134130879637569509726557085396931886335190024956340396129701517982796063707956848301532836354760177752333579427680228761372113224986244232369532891911938798124980787891294213018513847625748381865120717766601597129039728483022284491674802983700030464968649183164284047909293377123421445671838978049264685515765369855781819904743397539969459313711501738195967892873382134459201979895623971363790463811239031166544362714954959276889139963630464111261358151907329535971287687958195618067437961545655946221806673017895865192712068513820575680333477592515948796136681277809317147674755092210968166370274039719889173324412036787244494762223594476717398603543730006657160029707352892657874498796484919110920774752933636266121880911821603669213462395278303047508356837696499138968022464321648126843281269088021224135123940646797400216943693660487389312230989835864080520665823902198264853525579685900471443970398767942721700670909943907087708824321948936533127244716663918747485247980105500104916497186573991375022612145038040146168194817465047223646266014576315297202966824369370123032233230082401745185376966947795039761619522097761945433171371424960972968700143672562761983603610058897891108402354000465615962734627028917729847929908644814720934696003739737656768302001344220638779765866416723792782250179462582065804178733578418729011352308041491656773548052125598203928301865731616066676667869123070651642666484369670007239645780291340147262775194859046559774276199432866946600396215782251137214181222990899346684259510210240936262929533647140550096999673946999100590315207422569036694329734281367182980276432603542840691040524671269168110981620536123557237187249941386523732927012479732389183232878073252332032457125010405485318991611737102892675492491977345308386755613906567195487399600708311957621253209482825071446511472429410574274731796572615481667195660136824128286132496333334227788177116454492135610126758683130212033569757598666545194254460446848552942676607218901368159697337804774626711994589742613751925551656960936884262806022816193737774418277120181782199295188695557771036571974833981052083009408472792382443114433894006339514404047928035288673069392560901887288816831821773355184530588919324085495568093783460325608121429521922908582283836462522536080507026222626247007818941389617882277283810899522857366944070635317185640654282778632822990678461912102875833113852147349091211703707309262056247492909063218976123493131970792722605078411627781157954974741382451644756573948027895891244208573621129101816453762203219800333724778541184243497971931543905319373005237579861220912908069230626570551291521244920985506964343809192585026239700028469504356072952764977177252384178557991238702801343242047511499127444413008894568762373151116972804133431531153432792113595974690298127402216125766965994397086649775347890736160538291988127415629057681927178080932761288634676075077998747895863020687930159508666427705522906449771627603758042827981830841892323726263767096244182471900372705994560017038927471576844076817618706092113329726672217513949748312882826945810390712493365294244693647982167448220406031024130167973950319631008496894842548810706162784253302024630723779919887544078838221075579910745667148151217502605854286362313186868468536688959503419153596453875427416012341701515246814604934233435797340423159509731792302177700159673982107968603229479178148360256030894251123930403802214319376337834143685567704169479509163968295834554559360398988522212870415747415871213808507416424187515549842783851427865316180658505689714830243908759045260630362546329187082560645899175129230566382921573575023026872591694782769255982745362622966223617290072047193256260359365509587642349010594738964953106228236959397135702930464194204943364266485395536003413116618105036334520791289538127158789193487944666025981357598943162247960148097348589565975395808293648672487512580486867832262508921933438447895332750575808096067230753409879067061519715712341749134444293538062118408417981492913291024028576487928084817103321782089108920736785764234174674222511332327503781953244135714226240075204037113977599302602375111090074509994834281681812499499267729858549994036638950920408526431951734388943945539035338327932280906878533330144135973211750799160264393173316432107645872490959181977667639646758167556861467832308945322270738164126581255068086811666519516781715447719049850010785809014735948761071520130462687870024430415004679717582905212909665238307656257057569750729491208657766140126015896517055991301728959175551450205504597302815572283050393139205100575916539636120649170154146773237124237403785359371398827752217658135114418592096572633828686972000176520528762074773282731659792220772856488690742786937403135999651939996166813484926480447496401500059984440915609785202368423387836069990364427945105263018415699981366374740052056910438172546263136003887176036916463901298631058937440785060959606774492081862888288350542667017639493888476708450262853430999978920144846138035249962962081635972197191044745353888916090078823265280165889921422676123177937612516172784236927891647069589667423374048741284114485571743223948529593364266604659845226167851063427467230539147915450108314616181406433438759092459987278840125030279211198805917645020742169094396029794951304422635601029825685010471471334844730629002745470597270010208768990296104938988386732094468633856966115794619256018198964709592490038944008260451097400932244851233779918925191551091731300968903685953465174299808214012726740523770762732518450543339869025528196553611363893418776929522868684387445044272432090386418205484747372234541239777756541414579797617887455452836514835139711820617278274710252336243054851514795883630586797960889514327797692664507199677174394834049777949956888450576971192642473008862326103161362744038146858740610342954235380644728276634895904996197413783778389749934333006927002170233674010315973799084410984407629304799284289635973148133973190314084484705247125141477736161912772652824609072744936604796917829239164082566889715998321164116986343503598049468723571241304355252972064127549446273088743677398321523932922698307118249299875646009453240877467035704959546292823872549671267969614277349265629699247181886432057801272057679092671678325733604702737010870757444157729776443166107931957374841003908699849789339980912627737171671941695194154516064155086429629711418076301059271684774857962392635510714776467763036406994075014520785123842110191533220713000913250534061371742488871774346762913792030808202906661292413491982696824862680827216461653315763498779082029532321727391723480469864978650238560124600366044961245773815504471035112402931991863301870588721784661436582116005887935925479422008557181874409166854686240982564048717642052373440281837092447363316398353851933369716717571297745779852704475301966913579968192085055781963639716636282738926473754574791202353566584477533203886777565192057808091721724178825455106686542803697851355976075983065843625417361424097934472835830562681262978770287323570210782284854306577543666796557905402278983752526151634312516832733699814391786489888442039361866154476806834457226256390562220137519886468071598849351623562909111418455709245440266806963946911799401032097552587627069765211839367817245931802375199835971750079937739664315698692689541560923580928579639425744286505592628155847670944514483685269490415491507915135253585656242984109589927059610306756658472671990325447548549693896989127974927111730776661399245268484540004090797530146063136205617765526749194656987382688728460515961436870297393797178704609996022962441437412769550282915243162280305521072862862269775285730180351201516163493236266275777797837469540801472649121719243727651873774909639869402890072683908218722597979822301004732882315935251813018543523556131596736117955443653194713036288022778704331828901291628680652789181263815138418602815498822366834248602699943760741928058396023949903444522355870915292363840203511048826085977454002726254174287046968929390649406014345257401732659689250120453054683704150156113478120365980863006851847205200004963205143286088844763469842377325214300970917739425504450441800325222618481585337333613227886493670522892840030161254397032657773516489174637516530385925298430731246712399224465664983671560609745850754463349899393572257020332229316520953417494599227084493480761503942133227470314409801059282199277507005313962637105877068634597121656664168830935327011729028044274462102816071166652859737889436079205047394490502876183448714319471907919421513365157543872622928650105910258843024406538139749214663866888970398234662247355338824918235437883804352422710807828696837887384298527090466751354349725154657461127518915980899238898590950071857308907820626730683745780998514117899785170836503982008785603711597675564134571036441709741633010132302753323259934154161894231164454639931843337819561854909583420933648608876399302134708300273828481975760267167038205303085263714510786342937413579327556956253680851338444682261396408936656585503250730309912113130823751221784013414722117086734888514018972596960189810739899853388252746655741785641366059798923762390318317380585205138099254194923537823759353044698720298549623239460025460101454012936216037987457870727536796126109649138871131902852732490555089944430986743081150929890091272282813787103288014854479618270323140291519744807572712543929078978693159918099753027741020083574530630347055933750807255371670954408716023245034420555373872388685277072572343146398905355374689043198063081715391426980767807084181434923940677634499122990105975563442898517071334740073466085475215460161530362697830741068910056470861381221654722624232626632029234203193323639938682457013058631814303031084549961118903008142353277103997945720539880610805174159375542357615633888011388056941377533674063821007083371924538616636697576554846442117577802385573215194874566423980810911797667898033508681881375885084182242879266749911997699777244056392818710923102070189587230677301224298631294715735957106657709298721065911760811832740242144371369723349040657252303343256828701634730176741272363317990215905451394933184523693980394274444193145056468957997371081248942971708481625308108660626396813321495767434895382292389361814490740635719262185042331231213766193088695146008500096968939021297963427911979549792132319903592777753418870620382214399866321246934451483298362112131051189303223552128764311881664166629846043644597207128797987039152790035446723765723048199514454334626017686751618914380778943285029449086411633527514419006342362254372163799696125898907519275803989919883995551210016178525288889372102691514400396644111125064906363000065341962157016244412962063503279972961458741967178959322234044353440426871516074374439808971867755405321211996724134285517070801178628498466717567115961317377635451309703812207940084245259509418315871609506331643786791569386064522486460764356905984294818848082725871557218766750019010238327755885810343584908007648252210601438160818736154885649858221367208789389156067733917524524334806305950254447439669950939265993292661310192503997396749242605683804771283553923459200647593419919352605844888352555548797155184866615757160882110495838048637720909573172012031601650567407051102684347802325789430891320736840141732972028404048882674253227942788419608727653388899662563812838114261708512265319274480883167455666641630094997541507760661372001769548142838861684583598724543573865053622802934121871757612605544781196301898960340547595908544500114120378360489145928168025737301233231979067574207606000125895652799562133250455954494123079699220602948772932211832731447315972924872395025355250880471347313743406701590965965943535736577498215841739364876829968954811780365021536905462186154081440671894094848421913773956025507745159606219792722528885343984519956559319728980582178459764405362101896892507558231825956284469756147181219529671463304358414033270487508985118822321224672666343209677423517121421416934001536715345233816807660644332126482981136492105472539340115477440578543787063844755825376683070267131437566245517747594749122293384086345799388868513575331625933389121082853374235525910943145998756865095761866615482134252118384547388248064893953155678503054908477473161367699491275397198316219733685766298670787783936263783813750898083054698899941509714334169736240085916431735699855110041280402730151512450556287625447176350366558171357415491757518408691998421032528672868439312566741871133922283399235468395158225703292768826642487496997865297064342201264709346633069055858028978333456404911447745199730938506479939973024474829186031794199666857521939067820393890840774906423126519599375576414731418732822660821169161552148894757015081433408600492265014188945968919375460126585584170409197151494217596125570886142668138953818872068804988052894992961037396706317304932880782570096976596622733076996191779011988859896933427516469358229729579391162336673610817282132412799796354339009270113904772617505369937599803250244287566098253706325292772450589143288700315837159853352689190273586306781701034140057374291947552696929720982397107668875055766412797058183021140448136581664016465720694201442648008670398320112756459013335483422526933898846114585608626361039722889850129813562652496468897522863993606146523186158360610019019026442219472673182460076575966748531681123008233146246052926207251074177400247109403345591781251907189316778623028289317879336763865073472773075964443120169477943919185959254527343309172671373021257812337754377313575619079214371219187248245180614131002705639945262030938988099688461272823448879902405210292200760029886096435830330454399430476323044758048409001272723376818223950542775412664131648560226775797258816517831621605073486338807997049494386275110414495381922345076116311979955051327898952151939083172701746955674776718782552668043484836845080433523522183618195036445527759434013827468347227741204932673124523673552480958466408889613383681315398017986750982864129269069068815992152823706563566353390583700798012630148983866886279509216298686996716658277037458052593866922128432825978441640831512988959730355310352835629590700030368146953954342262835485787850797489352312890739806528380176786772610837952406285710045959591305586539529205941407322276062124961507095005535961063085174939234156238013858416430451421551187349865909019658734702821618230083630061904512393471099969781331584388775808760356294719729565365657871745469151306244783254758788670858476560548457754675661309933705327876179690643337644266275441760550927209290761215246370957879938779946813548319846183886351324633931322441868235042286560822142314372242728052379133222822201927666778890159935849268411326362608120892722965152529548084657235948822435605095265673643467527139657409726957118860087828971607551063992923656862650116130427644211930258840596655320875784283068297686346542731603026136655016267888706333519492623419866523144489062316672595521780968871712397161311107721092505076197600587261546413921037406410063062198442646913873924573945839872142706873369522624891211749634446847575462545848944579204377269760176458921044183699756504510406728272045968387934631442221517600864147394037476852356046481963123799714757523226995224858843279160141385490984775151728728714452866455705049647593339071150080639808222105123466179805175402126657741268205580428110941810248503886003627816736965629853261955790521664840835911688585107409525870535633915945720365583995229171890499566009886955541740161203259863439636969175640657856070146067976355221992029064566702142637287173773695576549852461955175583544860176909677010124182418196380589227934531881940356056094216609087502963546350847458035583603143734264553806502246372267479887390774227033111309985865949994090409798483993391006511771146847576919013744701556497784968499671574555999700447072378875580985281129716403960457474673676105137478249017752561370305062174668966419438909947114056704513993513629926235334159507265728368243631710735426335413382886228515943637730142954089636186350048446805144921970639276774844739763978103902740059419984206262287335995037067722097844922609251432678905017048690164181100528590977642030022201427585557727523343875247872991142965914986218547339337617181695022236702071854607654110916065355270823902143768892422315933663682640356837055563490831821583733590903755832429275415599794946496755507243190639087842156453019376059116891343048427888463440993913180971577862696275805788835592150270303866044971313348943095342035521663238277378491615184913126628404793025941323704239431765545179637113832702880694437439061725803175952568537139087934299105762330674793804266593025018597191630519513803933391367781822985915531758414545339508002536589369643109367468707540595633952339002731678021079338014007797207747497990191064099282747921198180756805088240395011535659033087772109051748512252168601141021430656166846275002695935839834208923766605213633384428530533333256384083592477550013283871355698916163870386956923579031168929965688269616429370766659567050757817784090069575185255651514899513774717270150482454783686822955170325166841486637827491938553978595158277636008224765706465927892269903264468292555212761259769884262702319086167060649232481332562195898199998619065133623991547724048694180663997847813031002969632377937597452535772324237083900366132514876880496934944619209293119205592815759706217727579770176425352604479733947309035867579909727138007608297195917125867375368901280275964637335251576085491239042039501621985221189420439095110114271678366180630760331140008608484276784354682239340666210161800452613370606373506506198405539833634158446606264482121914680289746819805015621419992612042410793010070638050551631889702262994847310626991370724362408146284040000813727762864706217517192931031224889520542331417152277446317458367673816582137164390478905305476191335291617849080615565332789296699590475614438382798426084534368394161445919692054643704678517601496645316020888452642027912047209468706977011777327847267329981974249742744548398686371976940205929120557408566452368677326952725703750024644816427510285819372687866923043148975632145001551685860389836265176140289946890429304016847222573939106855122046384035144148850278327982926774233823120443583120146678718130635223833217216016220552540004779839816692983325306633394020366392588597436010837433419916583253819727087711694509450033352433282719058915358765666555177129431444510757172786824118201677288851385699542805196404098645768165940800837556536642312712610517412271809479903794345556605498074386906734986176725038873617257555225186665134161244502299989991819239316099979334505071255974841570644931913532120563277058254953697514384402485692315029460236485057305181234242290568913439055150713771214650683218729849751782716807041807301439132632900898582951405615033658543849822072120739365178489852511658549480605022063869542858948703626584465455052604004337781269815170740423438196465610369282228857682753809842114779576112626007217230181559052705411654535156238373391688664454840190286790830789314058836562547385333293095538419579183380764977792595113895537437514601114061756279476442018654155782149793284636040263874707576555592936528252945494655655856308605278227006347244720883338494178753678668368071970036395493795780539472268646303722550011371508983910185757138094809164137781054021810950695418071422871888398713472249968616428736630404175292963587859169838708058373774265548843273647954889848483982962957908284911294872942171656313546640854978140895477460276987874409564745402891049919006921841175341555371138178136178912995338825902277270058497327052518521320986472695701587964947719198901716027188001958601029484627523509064927501519247617955981184618715732285316385011629981916396825290710099270797964064718525138732689395705592360400235502852362027504370301465892817632345202817469932058462737576274578285892307735078684050203246714075864118541812402520744411089950414990639762769957276028412331407528266642486165903634766577004750101936500665191036489592225375927887790743058155677732646374018645392470230209592733658754514472668207931197408149510441948858664009586595737355214197760889102407205359083832373505463969014055786981507407375510138812544476308922576151664251300131565789054966767404437563546093322707109449685717547349445010738337242485773383621565249495582114642135383122031703172892135605720115230093780270806041436896174930345989429205390919400250861289953325131525163462315583685080880893773810284370909482267764756514257992454150700224888531108072703385493195619001626537772549504215382859121138193043577468251060780317991456110261726271749473134371768017416795160764339831109807287239092212984603756604758986059150324415862441311721015772936421701531566652566388444343011386367053149776986453339279317105293603590764503968121256895474787861060174566564643968742810699463675433780764922685968654940564415217260601364236753715197603752729119100985009787273132192524802748957906740082709502708262058309261117147056549536221862837233804364369685145686116591416288632131541546910012447235046332180267957001882578505446006881866158278369613323268955692938875851067659015793369668033753818537696672128306110925652801951678974599526790556419462680300401901613031975415683489660336065099836721400091357776988324188009499134798451783800583632128816175709615224933386640831022143882710680248111049199993068330419830539213416185020718678661259995639140701479517775745639910433809946404488881493009918691409108774772370089907492117704792405025259329103207366489527775337129454323475959764263396691789362330102874046347639677003781045765215650748672472075368490063765385726241833448649980040760900245892974205071146181599608288704764947093178131821892269960197626870459302268278352499469791681401118840253518312937958530499620526269180507156212454910122875124752554898143001771377051716289872334704031417430698421882555259605905173644065685931885018133432625963092625405092766909434361245392687689771036540493993538188569233175066795811106997422324997865283587622392524720482276886803322565792896869122766181267237648553570942806634041849656044879875087906167355955409483266068418170194787491425906883686699793569257161293675577919717506083322080342472240924123890125126560001675798257971639276359730851060618063851968195640245765928216347195100674734480192157778769013566211169702166288132155350791824254976326833381856334937444053053202379847082770607862258414950390046619668142911551024394318522806568970339274519326044051351211866850818816724673968638711131982350090197077467697431296500572046499141762272901048983070409359685071512254763075375949419718804828406073717607162475128912902713369141592114656106655527022109373089852422345206487239990633186123601629937779630236162521834888331070923301194067125227327193031089816848577258451694083587103318993238932996513363002912142365348897821428083520263048180867047101789252576548629574301763061498255222658386450317870958263335766268245172117880378647172509390045279564546434484598825650508302425601644286122662870961280263050874769461896811669759804618957298668944435547249088391657687147335438502071580704377872008068526778764812023010789593184494526599116373447328066263524050553270617343502997206732482035016105977021334523190830374241673753652229068449099001516903705292306397614112042449744785785036889061561082346836022329153003176811253532276004745430714803934098718842081009146354251073476058013430139183550796131615662794807577814953653176941704567855035989906225341650405295200341745704433388245505479513655803580002789032572381550309847449142754758460477822381497529151039686362001178944567736174066118245359352403667447968788264700008347628088742753943117641907397552614452797067461833077179568760789560753151233120394025147622816327572799263563075444625005568163245609933722677111554789997917037658289494454016977155308554890815499078869965519048038104554255041009652473879280262342542515352610057125386691482910362482617654816421657014121325241538115662545519253228514134391802402764150249058906692774752502971368984727142407250486799311252073106792092572301165718118561050091142434400091920736640750755698782435362657017551766488454102765369452370864225623774922999594346500069795423505454026433759992555139580342738733298822398932174128447700429838986162135752560314759141821877426419710147338797864769645207956676122962427116277012385421098734348321433678788813316964945483783320036725885208540380679653807243373606479941691913246418014821278935444912082428005428162155438696994073451192856733051852827609277718721518435400464552022683619665356846017779507119953808249435847104665379412351824530228025843412752474965226225751726417457197436583866404001036878925059190469224667095688152445212422164496636835363391104937043293819381971201043060723649133411268866579417854392201581636583846835744245821515808219781844942613740658234590404875153113205801804157634742594908025881207649564701612448339999855998031196105488240764734886240150262798174431699181291583730142181511344250382467281948972393200958545429167996229369482632054393420378007576026193345674453297571335434797388511215240823187741370266585165002973049769566936292518850592331377465182765009951849443346829262199403055749317833059527997583471663661720046331972974618525005140959013013346275468843629259913915189410361702751390272864848204889480906560406813424161742483866370849385011313483291445925332366770721804558599054988351902699522238566452208657724912781058271013018475901690370811495074873094604743748728931598416089217874194792205152077587250274504300117740663932363264112150774996498044833999656169732112979606844939931224401828371819479705253929097919218076360535995337817684494840373759710767651987749326012086046753521343790826182795293266021990349858817547543656578529946255942020068459087089552246727473424374176848969194526812772358237964399159219985298716486396417912468438383857299899225100552059500197533953423473958595295378941340675162303374744181038178204790646858800657258872094873677977591611586613161127248140322327533630269501592821416777777382873463675729046761118754032076126663152893647809837656210985557755234360047678063355172785013044422258811643887857839096205479543506419252424979616135504471541057260894417814633807138486886606612784625584381625210439561994987258119352785546667631682912700845404297435791608039206820023948279954404849056913882536402929799059545050728463835434198482053527651858612318706366203101391434891161810141004969471825090772613508881301083934500188412534872624184307333307858601879314340259888592145540530764636581970540036421392817787898215736684184510864785940711807865183298178898939583488654466695144049016866277576138842426851833709556410387403360610675469790328257571524515271149648343625043487220085844594047716719027328410224168186994879908866223518244855239954850719195308556120663241797260056992350253331147851485180962848580950811079522382491381553723624099821427905573355479101439260788027201099847501017743377378953997234329728248744297406485680291165101177997741526463233504140754524099645072861710638483301763491260072406547097210838618973321128736835835010266105238375075939679429982456695974477853820544487948512191405492035450070715219288939047990383180548362374837763391727910250518228123990098480786213461003621390411269275623205779435331750658438812078373452654981319739554975973166115707076065845615147299752369792589299058657946456421149679236932574380602130007581299171865735102015469328324318299033887952057026586848265387030639027315706098355731962985126742188067192343377288270196678571825725330976342184614960227264826317131599419327533550675225133521024016172661833418903893833870471232536172296147026794093367564005728717592540986210194156833291830140741561830029079289568559341404227023130057288969213869883428680443374014859445955625201051773004554165843394131002958016976211034635913287899259665112584277750360919777908882674073677887621123901216820862881022078340592877121320632041844283654770520718424670792034124094776540986424872246998022894045198372476022412778456451138587939226539125331841501961909991618803171290982014924956363501688367121636673225784482899621364647326779058985480082761252192761352069228424298235932807434065069287158150392847251738150520250080969126250878854790095692505924673206425313549868270031630046165110528377523765021015213826689867906242674677000585213058709799215941133392525469838424943070061526195326698271918161556439739494677380717342881402669782662252582744996648442909093805718225156242780189735357796420227308318711499024637464381138354060893381510741261682656547827716124749522022554882403219233371387188637012190512636080115038300094247872910383334829250230947837564920207381002273068268846683815106847936961861856556617435316399135738362247648139110911562189565450284975146177605477678903096860335659347680297702445207128723754726213442791039152499709612271063370643600795014748566202141757421531493797056282511911832101087215004222071207760210270631305317475157231001507809549650533286181310863467731622784855597282878176574240964442349727996233814829996738423696669641726080032937203378247425136695878889888330245835280680414823348405876337144795790097412293124948773626838621109609167882197479571341310100583767054185682054754600284117221203447126948483667996606994133514141228108044498241609808329042126142290765899942610764148192451665843895924135021335152695513057785088883680804204120890905146974407861822852414662053554740402824848492627566579574966500463166270667334907679321391937754000992510973989685217985424464407777479172489664429420078333691334824802795401069048420233771749623046852077827826922167385158039740951917799691420634361689010256957404698769001497913076507613264549382266957653316951079409400895711137459414211907544682216710297604520969634894033424884421330760335770099245768072022453103745582016576498024621032831912359975574643258022419314371317798808655872291882155759382099582215128642393587127951322478342923640188503533632328834293404372971710426543709697509504630211303269892663788665801610917716093211000958676380025572346395146991868878917843118881517511174326243300564484454209453183682412750832825136666713048058155350173831661493948665689566464088470714868718446464744378044236322892349869219776148255835037664790397498908668182716255236058921132846731569930205068874212521532745374726523538615764158780461726684273546500515974529829594564792001690113012921433156507821807827359331593954416565336839019019391481696155221470060664721905483181290312354446588335412731354182025430057110863866521515394658366377558231177422725118402813382320221937096521745179982996982461004806800580787583191032311341820764914216887576811804450493777001192801312315311071255841699878344381971123223982281974198567178065666711892962087820761569821190468980835991171624676968755577882323117433182509343432048309863680679333141943502333189898634357163678195684298485906784195170969034682748228718625918784991435344355732296880191714534954803389687754151668113089845844258322218166109344204240829555942934304975390720460679387242348552647016563449079838512879414167574883083347375276136244681598287616951191877447669888785714787638732981747950149262915041529168406279943021223519629439789675446666481204991128624338371882445782882219911039333505013961238425410200242170935209155100147716375851505396315733122263344722995100915864830205584839947424459124345759947335221522173124727224846764466854659481996975247547346075365995047568938573577308653567121050772317320818231210928117706818279129896482521315415748749348741078087970644526539664229918188661915755929190898361758749835944700523504384991373113442689312640854175134595628105326635774067664120773266559856828316625511475444978085045936163988547799637741057205711826011139750076714224168349052951469981611721159662111301472579624146850297531921721549893285162106976164548062145547584047676669928875382617129607303052444871464036005914799677851263076737874644279385621556312548173294506886144154564421010254725119842906745198305726514289588907892963305803462927827886437706274459233557665838347884835296601602682855559249701358841860065748995420722202044225446627412382728135304287225288123972264475857528126268935803902843337404861930584491451191388799732248741386847934836610528810356334090059013330823208911796801410892551961190680267828037285912744277952927707691966045590341947848328959233163345848279666620829124510711691053113288001843243448380437241360436063583586736694377647154174717784551073786826391009019717904859338700876596407814327062633947591444795974657827814974690118128798276175456452906909086072398137011479360617197615385924721611863978302201728661693843981516722043079637918283139391884626732504348409089502939147247032420409795006339804834810917022190767788797277099787075354981382738845308987985027573475024766976844682588240297302252507301347964800598459530580109147333688107494649917928144585894106588840810692766772116088805301689532938971282920109007821628568678381722232201751165125606615726647224073726273175752935025703811709027208789840534101482945540138745402943415653771371711546126101329628379701938557888383990054001614788780095559060751416297078033751789113284449189772786399345303355070543885276735040116687953865943609338640019555800109580674736181176276228265006127481971916613806779801725731870225058944138388748066642215016473132896872772440648934123542744124446117079946103595219219537093317121636544182666190001877720706660699378031401381195658582729861683900939693628075407681084321562698370949219612587656132160321085590628172454603446256024484563935766735317852671829047583996743549108198359305566671221122631774075708974141978508240702816486901466838428248530646357808348744151106688416534579268331727918144078634823582829061910547120851058534977547225525591020698109719214702242367171451407979654706521358289143097413320910236187233901259176619661843024654597911844634298266216689825109486301449768658429941754163194449239511292342443220351165107833708575310023486648956464490874835426065458408900630940796765592600567963517555217087750149786624273824280771984306354813600826490417178702703943116080268259776884892890641119397305313678293033569270741821408571508758953595158428778830861994377902418659736572220894490903592057261744183402717181398356894954510051372413450393421708651296841533728700750314841259511773354396184829702043716913586668947520554766683544175085563875949393978760893969755959206273793378202861143097216615366774539775955245238057666385231038624468332211821246130677496900624225165579108639268815423688530604395099820671227104021235255700797726942192780726891107117247031159158526375546155354121267783063385289084761957139718920955402294134041661835974488100813167037543304393388511678915134171192394569852643919648788608682992525850856804832000483091121282741331055795895433767637138947713328497665226210877158755503225043179683067866856067176051123379578208846650375019235169131409927609075495743654287104913580352277168241340097557575456477235052610345564341747155718171941167243707875994497348005669283005321984810830843152508932380287515521358849642111275157383205584737872466877379190205494674767619744404489491114364625642475042285462268013647534522301278598760877152838984269557783309991806084750679177272939454432538940698312353483472666649589539452026680423389837155349245685766634323903216755657315314319986519253423894578203073240515895610514686971944084789673171925242673693396832126847251193931209248259519794043665466400958383262886942699656357847640535811115212358687579095433337873344061594223549939613655124998224280901995180102091161290208362356434515438523636841689731950545241741800314952549555453387455592290214199291823802942918556887870816363221476109138242630990417661038862224702613429433497666530943332115519449657509780095447127743615966660181206633260970028929595397392804833743634045681503706376055366276374773102238234908378072154737490209613114939966584352223951454538747916400385030387064115414337057040595381521020873258516212999187829517236647001984975724818824377115725710773712915661795925641976336197896186929598424954587931231303320922128807981276159929390618165643914190101180165642843934087377368411832414632172414778910843290855736472979223938373000797579520745288200543682291882361968576667854286699295160918203672802191668356629773182802684283298412100301206943022745688507546646825360710434784690715170271033991898437293496539460946933885048411414927009067011129681131233387286844496252664498438736800713542125733601941286365326024640312832971692130026897935069707548976024826802353927907765342470051559759483046355318836496639896676564233152924952413808321077633788941073567711251398013482757110295402286452971261960380563174824974997859833380369092794447695377494308104654116859876322806440352578902320874238065558166448950704988186882526551536848048111465382178072548545489459710685412249741321967417624540212130186879705330719047178233925944392102344526728512061676394479342670414081513974299563828304949566389192443883809486364328741126857615904682331488637425185464326830784175976075974860011156000128704558093148885557553236638370585291055160187817470862653708270517359801263680122603571689718328445099635820600301416069331463950448816350686532321313765768976038670790758468395945367484412343023282055678668794689670118994563129331226964571902217717764753965540163341688337027678634382641747002103576773332752391886580834507236586945799850684357390538006996480509488393252326907721120208676605316619796426359501492692894792319019988983835725656710202440800588466006645350513605671617348622393489868856620465052237666634962580444276844458386700524991978797027696164067838564074581365038033983114350615689002798815372895964612244955965988925525484673812543281215862807328533957510297475484226068379058192485860964988946863615280488060497719640147424368322415839713612362657154742967634187131454806747837336360777118141392149843663144618400721571617131617587290505816382161311399390227183323064599152790721629341200031771819304090040323914996269949027418144832095069693639584039680252271696631369270215659413625901996801989294381542366199522508252936755454784717854783888559681492200420315209276715275471603352081996801063103307414482267721684522096447934686397040682031390522658164670583781241567989211893596089106101655013916395621009547115812116289509551631046888012636228786522723114159298796645255947477304990866026623601911440113170035387397448176830759388960346384049610890949990480595225179697130462010183211737568298278228231735890156082459331045151566864886716798811790700800693488449078665294197734059814850966781853307356151283623152028721441622092434413352256505105798271138613868068340052321513088590688142208230580898250867130054512223163765524405040386588681687230523459773165316810570683922389157023685702874180452830217722287493489528138776340922156841632419351644456815517508177425905717059988030767043779528575998038848568742745974678333307102886555916089853559443682087970314534990910015421804960346270847706282450198882375937993310572119726958782924679401720717031102070517284886302856894219535870608971510307013627144973602726224420866664384254077540931685829422679687406383981284955930457512187592722078427540015575298482858701170321329147136326105472601937194265355913653624421783378859855863982473264793006516218121642833147375096506344471781425518716813554073002386780690911177277313188621477690683544591440209830882360146947711394612531225389722016565505315557970254141230704277374936991386082578266813356947970386570812289878862436442635694832789825571232703647062567839875785285619718622743443252719077396332395974226093269751935445775843675632792435410107217850117346194268761309021582493698378450776291880583900060864383352865952006324863373436687837494686804134578765320383688136959840681678908446956187703889428907168982614656687209048423226901382123760871404122020057222418611223843184092175203048604103125757650205897914082512752796579349820246882926082178639499500027251425015789235797849562337886147662712294705180326123038194152482055661178370238793471506213520121570270766934766407795860647838131747192956425903965161704216736197209423377385979596527596476644941138219481066484114930795554023625548575417999036602161784681415003290106479708545410625302013910854545361739711633553718937008000998514411303682084154817092846311599989826742587778378688757541141891802252025451285026229647871462851838457101036414910341658583565879457010610516271331103595110079282913789474578173875599710043390243675028902177540996501103938934182404114615627190283617650941940182567216937240395751926708404329670735202031202444423336015958695818250826836215583757945863892517725963440311899043006016881090440559284301029981587767118080843427217339676170089758590207758094416774418635478529730076536479316122436349110366789903407700565023542323676232100377219307577237534588043710638452922639747463784317856174493667275484845302468674218320335163707815492085345527469891649081554071413139353492809755221742335424377476297766704226474437804442393099710885596236802677139945872904682652893811415517479485872018728827056679265728478986431392885307853465807361907862724537192674496000177976433217843139617214851547401056314885970274051438879366901568302051382201441754531900937720590817944026476747403799317967818148577256370104974705221283181201425046434848205240431583927065705327797624232491229665003720424885890551121152467605290171114933878919945445976847704742219915863944979061149163632838345800578410162077351014561368479625371349324768601612580404268522799607441744352602952764271919015515901171279794117716317842223511192403863758544789513236625546509597398624277189311485487525025325043135865512436518539183738560670721766543773416177235112503534649857677268088199212408427521792585904423177998947491228105580079936111862923180496555543084498503941210199558260275883333227826593421555950060524185726883109801906765206777500422346461548971799056671499320788766765919235874681714879372245674052528326916819569037135687945864819280747302904714444127860350644297098769307185304830155801109696822318875318974459070054384671028146206875619196056044162769437327985113035576655693871317138551555303568642262320941499861132659308262925691069232748047263746801759551778685684205804679764708121932819056046475389006909871983116732328308104989789339677662720481793733982008136537728737720276077417589126177647098457494878363258354413988385780274415011342173291088576193201421763461261001461500296208251105648089903364699291153783988240672568352236639418336604011792962694971505783920771072341760023607096798644733491537506057311901782562333923071895990585412890964410750368046838318229065910849208916234907935568915703763237105213590868023836681563124120041949411815462342422947839315719311131439379117671024068104902379792672512454821189970349513112696743557749082982138927381350303146516860145924474421836659762973745204272007975218914651520618001045074943571344827546088787784761707059269701472558011578460793805344373177616869834285174399233723207570269947147057147184309609276388981587356172453488941465191124248763063506710838887520259023643765960381193743806095471226191978079743368935552947911072414821505858830382416481264827613230311678957179656187256063757528578310406629218154665459289975223438053945363350224401793734959856022703961419457085588937864661715353949623475324990530039263645231747684396307846430524943076175696937282451021241193814382890999337860037678840721903637285576956982521685255786262999176499266554571571945789949114202998415064144323379446933293790061523103671181517045238736462698475250474098644216167675293718867885481697156824678785947338614258624920981218779199989113233705663092715653688958011514939743836990555307709420316048275666208659405057526376693851464828611889955141608849999903813577961940299157318817297562418615108110076075491409452972102109526680462119834015344254907458767522464278636630009019815159325153114124558944408834328379140611627014054816025637127975755119135405079211661340704330721191676857504857676748290346989902684844346148086846282431732326372350044215401760374908476998585966771848206699351259271678359262814686042592636089077660474841276756212322161381315729607812100106919935062775208668179276096835658949147194734713365173539526589382632953008153593660427768412160149685778558447559345829179266822598362262566189730764389505386222509073035013153450328823479182007550044350971047315243947263321796986400946521006229907776144187037659465735019270565119057425028658968186806654615467889000846648765138693382012386284406241139873689569263211624147641197603800216354379272311665786208064598597405440867859020467646084856437909119286963059642554271542873965909056283096363408288718650181570534724449834189583209575757568985441874860435122590686512546501770786487708136130339946249760935010004210638016100499709263462729967197646652658728642436701193940408131869868610190677970344394588924958641217495371215387502156911591622166204306886339489576691740922421563823599593207585491203147523850327343421978900416077239718868376609557161526458990470306231846645939169376065619941325740569084261840436780423286059520566795681564796180233125206466924762525536985655010217065103765807586059733274652379355069568131502526990787151216647164756958943028831059338358319549283588191458192901537203166194907897056179908041413745875603682039941231773814849978344451814337164117483788008908174741559864991978986450261199834753803362852423276855327714072985633435531952239881683349951872450330853417326300736593972415381714118958843094230408425598577333141885400637043787159765273404169219296172559688950850237095058487712139623221558303089605296696331451828690552198004377614479073601653064530290664869835850274420912559978026247241451483382126083336844225366538243547038946212829608745458709622030561347439380151067072859649220787040159741336560096481153288806926418662409995869196301149149664298975906166103782253674566612232355345948154621214233394471541088719778888240706180882140532619252776909555792617928385227157352035008176524001811683949064630195738435162866810096638442411160031793740411474828900158800229548066246222443311283599976975058347943124532025282390501530196419652789497179142537535945740144853258369802425106202435712514769762964763589723640904565589459561340449114179652143879644715510339658732476193349980253916105706455167157305553949676391924352420901361025823066313776952900433208364727292257026353148429874025424673820486462946240509265418305191997052553155807013175502624142309783026645568229869472675728731667241814797175864907656432402228736715476533599965293320401185142974296176748657950618691091655984830130108250768483831222062413716081648272746454964680858762837481002481427057162551269697116969652670012744221132493898396342570206937739044024918774707398097697388949395111403445961323990823823565295337305955807722425957301245596291138049384655973126185137078095399495022649762054673977007355892606302308867593896545295491289234572543506219924662485148583035970366265701872678559567995274619449754914080095501926409311672959707458223223041313299608409506968406239204317685437787166711368386530215223919889756288518269036531639911226055599358703067716797885739475951154490873358406024142275292123494203751077169351145991830542067350485757188203893383047688044696042719084306760585310199092322712889339455448241978777006125074245495419178594151892785574659094757337233393650611507324669574134108555410177264084096071763057496327138518444616106679457869842468801715854990556260602742538793573645733350707101142410999110127865469090452335538068688378738398675976370782933492024277362153501090982208324504462509764581013581371236080191043432407067986300317993008483297423437799453888376627108248342153577254894247502312611006318636168031326093712650873826894386699235832004130544236516599607585617061794239441833846514059237174254429463659424586804105324866729760631293609461065986091723198613732071170100723888238844518784426442623938698554189742904529228551421368232384600657359207960329328509760037640487061292276705398473106968532371550125815661846022919554579247839594367478211466329392668300688417268397702608126436357289476105425763532867712760275486451764430782130889016240951416390907072746932667829085724964882341403044220343805628781844974528861004304024408048127649816914252127222777766095934329334975465196637326858062965059492687559309844020000922165460385846846075166075252495683099095601019431637230025125750948502507069614297481947366227841828235423368410143429249634006822806201736149720026062134518074888261739422655875677231783283220710673977079098065842290671255009886862208591857481674182903728978902897698933433422384502276626678386054794816296518980810432967768020235658990157683702068590073349442680836457617582911894419961808241748277511176887831151685116887874105611831207415175917845383881858519046219888444390462043376237671473821888613781152848152170595186101689361001618403693572018021874444848387562352883301796892165115100452867882257520612387264889967932073917974018647721102944803882141671383423199312197653934834027153491672139534754669655930429942824926183450369318125256406044325924635603395947237286022002881306212878041978874969961640242936332239495698928197100624916343226412192904219991125970152784562445476110396165779159330733132632088245121075306295470093600538278448040467569813637429994837214382697328083102582996152446718350191735556608888748374421200543799040463408151078823183045181467023585329923267084594160389876368496100816037998108530491314845857712012832516182284653161076426765236513262857218933396572053160264313433349135683717376001904348620522170880355760782217661248121809870622723727423333814404871455391346010323758176419846591748889498380166546712873431994966898402964072423830836760410295338733081993538694335450502106596642310660465643438801231540499339510678890530463286238322418755708228609653707760257536520716287729093262652943708318274369800381107371669231021512531233970346898447320756360019619867839032179616032136239465729274643059501781791374957191332036021369425228701461597489544411678158779256426839029496327002264413225830927455232332678777735645837310123480970941321802938439160959892360865528797972100243965254038312901081894137231319485784293409547118290719661576667368642030789226237588643888499695339762432231064897254021973018029736575277260737281459111918973563257009297853257255088064741358823758031091536155082731294357724185757949165038674275336832103759779431406368744613575124759533180897684368106044895975043110736452862041513635825101890270298955249397162841588689618674500107961755915326586327816803118562666522608302575846873795335251317983075373267042441504830028716921654396850640304580026521480815327069526874871271575020178379036755626776740947744228193836510924271808766602431272918024942305951372510603463598307525056408963135357623396062218468663504695925734514057035884694094795381478409949201546965359108766044840659475441118319967935290684628287869989157548851449654551096240536605956708328699621200129637871006059132734785861860413704395275842629958929724274888613864947179991439472136293618411779990980866230797304831924558643420388415692323486242552390710534070980551801992518216631177162859234032253439505719728546383604995383240157112168838860157722783483648075678514932762707618274517828018943631775461414727869118267077753775631015164275904829237587481742118499356196863533650839287311366963434901219817892608088383717923683867037776749066634265201540680975626474610349771477575761747744330036322766185404800883652362886325649492589093645514615275074164073718513371523623780487830058421745412269404034442866997211962069046794290973618047063928747027679432318934046167699541169094182667181943831668664018955152303200442338046364945669108690997172689847826070580733615543688214841918440375939338966826505855756060171208672021957294955493128833722271860135683506641294325653808068062844035028334988435001838624159237817718534372466677842177305532275322081214064451281148828621416124814567696642135641512573606204500053919768586311348754592999955399363874307477503589615257837047172733785963458149435041840590123481086738283787479469639917073742242301575868246664034977157353431732616686904113294367958441204887442196572296396525989024420619737653110646493048974830617274375211878882879229627514239122891527311408614409790479739376823392740471644368789477731360934017668667471291599522579660854895280845034642679577968833338441878081673044338695208645362738729066262802661393913939266102674976930569371158347257786660586127862550615450911093280410027042969947443068127592625662779143572709588545441091137599541068167677206999141013825425160068184074361869163081064422726260332446751354430687970359197833155572934711067478500745309522792727862779590978523107776161765002909882370230781461075249606918969540686464873653376496746463622130467112877086009965694130011053535978533816691751637855745403159953936202055206323184463845008870876752557298310734383185289497198609666994168181795148126659442787244564358151251526182228815033881280059440455344211373752913637841487538050929186928003183062271534975151009740673058702673964494282225873587794909280752136013936971244754299654301689452280245490608284983380987496047491029006686693381679044521331178191619947598915825797456950610998669386882211795256353167876819392077299720180033817392949558140985827987444429311827939399051488299393210773532086258498877588589739016959876181142300912605607452835696574502260789621463942573382179208092772374408278799373100703228779772692868522701048904037941725612839935637698376801137421207743187387017149409948078714645446125324603350723970401712306453814021187965037110174659693993824897948231108149951166938767171494853409183154225806255370718352377102459514326998934267193015866794938087413032967277858036126234923388829884887152216580607387739357571509930167868977122355172977016995199282583670373184120576812624900451416603536108017887367387977688412704539801718849530954428617267389719891739274476618658951038109219728569824153036961065890420355567043266913166442808051329303640787570151011857109610989024176197899756440822539454624996265964930928965833299993416260153422697805254555374424347272234454886193453753012220284491862504541334266539763745881956128026485570324124622093936990399683744213450861773975598623812351150147480923518141254002103006990222119628955321506007818930534013974986991208052397604212633290342316140236394338927939174843983434988575376037634856256929881984296970633419193694901864440779354339249625622311506659681499314395101661447809526465255219163367199614758246756322804113247620538374146159268106684575502395431909685421627495301682074821787955189394555506367183329998956129541896517439548648400168137307131268883506005815983570691254844260350177986364404288341304940212096836535962938738303882170542284098963778136663012000914883492568060184129703725928495875276620196047385956039020652551049970227606560588691766897221863706837429724387268889221792053460918391003142233915917838903960825383743470025616940736903074165963748905777213335425952705344169986131604210270109681282436503064432885781783656059968328822848182786622887836549569156389845583085383527280899485136513570651544410988856685469767846774833476948798822566953675633286956643498672400331758120332362036392237713310245458481109584211787414211914807848891261660842173358852115830480653322857829693064105575350027142115267449655551302169804353028368110982940865616759676494274335440085387044947175900522598276664687263291480890339372866125049383277624217943938377114382811580983900890519909287792872557537429153949202783437864260672668283703340520918112854855681395338758260589076593775473001545088412680188986889767776550100850441646344449573019012783209862675101979953525521641760411185045456830372153684266691214579128794492904152900253284382485999827702404427897268568588786729012487811804927099372229865588508832028180130888790894163623244294571108444721829463976473226967590210249377046004564927491391411916958016011183529682240784199057544023593133095829454544081530104163597446346496139982544749757098910777619086710723188977394518261465441206821610238452182352474507022595652277151967549314557383875000958328435715728622081891581940763447887915428062420228862944955964410717506060390754230481977117987890650724217959099498099776778467569467423309925953074889908613747020529201514692759979111239059469194846047630626187397746405842014154549890364260129639903309532855728462371772398255532985462883377416790371510184509024936083635129295210009068209540590043438465735422048357141652388016725214488519280676057918704254997291880398908315639908487010853664477609747711397637444612872775320613275408270502699900129610213648404519352135069067776626547473845901752977554093573211550162398779047004483600686134958252788777973326111798241962924951259970428618064732699873141435321086392534725264751360621207635289578409813084135531915091565880832065561461171816839212864761460166744225438231207247327586140454366341560822796484851185698142354400601102885319406856079862984871365698874478223840508521870878714431061104472258557034553462829597264249659914467065038532508541885819027306391456263560711463609188378858128331249670507677525001874602467841473538440674658478489258752028286253483384377307940434510640801808931476191203179002912340157183775275962345699730084192148375582340215762702357924884511822075275812019261282215322413585547633514337620006801651421950942821922467054867603578365471514408585194140275265374282872674301825541120016239419516869135418365954925658588304630345394974317987816561528713963752882214090606540568254437910380144071430958890255822764723046369515889652785652109454546087661484463935972823034194777412284673784181785006118204861421830499927212209434154694354709616769069915434628309390584584539048642381470529202036919041293270840601544351848953731992293059084014219430244954950449119612909842001489137299180411614712537837012905986577954414251653880041377495021788863495459978395114231286524323776940276603363630920212935481980134036047903321920951667450455190642047733601411657575030181332092406134488038065424933180619899583121004615909332936334208854933845530386453186916214823884061681412108737699188371483156673802332203669037748345149294181824735268425588981930245871210179537378397060776724528108950555197205688998962816460132357654070481151824911392011232533862903905758297692237319708143652163218398794127198978908031934307383993600518922534388181888657675825244143904399902929594004664117347305545768955427935336535823383582243529971957442920504447241477307819546636043687593418750534967069369294887997952862484257481225878104021607753775891652817992912538916862720640224200838086164465441371768717407171321992472944734297823696096172457939622389240455733070926952946945552766671473378655021442278069367660754309117668057578202895333447223334612672439313000338878098021949147224526096156258611120512162655589803814620807855807303885232854352049540634258823307934640503715699905546026582182848729348512660682915472683268138785847063564065966880085836202450166343515650004683556551045973561641911246647501425819008565197943138849851128554451436772218496635033595726016515760338063752471625599771622462285662957771279136801736990585416095246803483175870828701090218260713564704771958897189047373673797334416478000428309476055556374589567096702819211208905977672405615932703832695697647453772683164590059332553305718067979036481923176567015383479344637097139761532080397404297800989058021058536724548760080188282048130376577571087045994401864680834556521302248024613227073964482163247233437759956772878896124685194986307633969248364645992960304641095530042907984093431962754075391043230868690106757878215997026291342341493282495893374862848962905602541817860299078623852417715179804206954924950564710736698708731772485105337543802608560506266590357298990353727205716985423681522928504533037462558839595450555334617092480873738486274240856446864506991020738272169152598427352630600463074601644495122080497662873419122377080491601463982072513074521455209911717097753614066241968394579279967299919419978024201968732748305550039169554330159848568654828910486206032929438962186580030421655932715389974409692943659961364367137979465831106686285495441617903019717405517155621950036757948014501589596906741752416745395648250236128608214843774392112634010158399625596062718469819426544415864298630108893505261332255988293119744663897072475320203744879165505249026464796940008237783912560275302167384362390671511761261830669161380867555195645819406565495818405415402276647879466110548505149648338209101244895782553270494797864099186771451395418507480261470529051628209161765834408216319363804073626442532080553594692802892230981444016984594361535624122807357913776927548299244054750429476961448957990076011404164577770266229224082615669617913445620371525395132377708632949596708558002538733691164178074715171969755598455277655328664174196675848453011251275472199019535240331187771804281544333135001930489946157041465493595888370370472805801880998593187914465017304057410409159080928171240220112744955025871935815502205944136592224665138744420335432304198498508266386514840530050169947881635369217542419590056413130498015048674124448425225542848430925908370385754987419924138270560527926505007509795468577854959278576732851222677716511914197829423129589668888707790692706386747050312164991184252586538450627310180387432305726691234942205335494556032173680863640772888981008895067783444402016075186938427641963317220448993780937536403257215516616372535115359671595927811521038827403059967511652328984004046266283446516662951124126276182225460019675566778116334287042680631645046596057071470584532692239017242640301101154822420479283334115591163179166091061870951668413624410039846923981687942221932424838733594701303793538291391615272967574602172998464537764782330989845903643957141438777774153416105413564568326325116555282900643819710986488202518564751088820268109992929061883164950197033708226922679922187282299008025410470193823353748772924564846242296287286456469485075381194893420762164292385840362703759195661910894604586600221268276435106690110742025121204299862957011212397374796327501032882831184295055643618422164180122242948898951929604359447818072904350673293923494141151004586463759648676620199811673750600907882650149412868115016574857351179438374895550173408289196031151278578997964422928304526714670708358577112356471283349833611459777042938028331879185719153051652778732800657925340552237069535203957046513121187124805984258047188404420730890586824149416559413308282267220642828657330616331101678092132100882677922493835317410160194380512259095978126732940871527502299727895260827412160078370006659680383948008850431043336862466108713109089703377385321195952257716320598421970490974264215482364474308987453138173549400120348200137640322274806106195999530878208901623573102647113962522265743591777570957279260547790077520399094323980304944529656392787800818663895946015999083417644407095365644367450006712904417116259986973011245526588342647963418546607748211252623221225452517638909555200540932322488871678172280490918758088295593631656803564942307071213673675274617513980143296509512737589406416727080257851714747732329486616942921763400161423243352658233936211228642696778529939353591485632099031689420804372040452959795279519438543507617312730418274482046384418035207938769026577428190934684478249662364460913700541596856044489742644874619578201327854757690265591098519287139919254160467375310080112830022879259408680144934857613049972281877283786625102470042338674929431183670796090998268319974690517875147987819393437886110551282987300430128250088478015135183915222659524007774526039770813171475291510539150505733636729589315648249854432991700716494005676940220578340607047484841207892466989709624495280252316707845284510415381809029548242981536752846999158011866644846815125434282110438487628493732334314963218007129085484448875706057705284094125537227219061083898332606924798687087471731819799133825179219419036473262419462663920577710050572408250792518290837712261808011452351662738736646654593500824692241127746652407646950926096007672566765214508701156632058276311455932392405626188245050548139208493711448532635707790128255683447385318867794767486669414449063341526225347639765710791152441403297040801873551749916301064705712591471960704047742278497890932846878413291181614541520026926384905325096922393898744335481291131571484966014659886904928301023576708067000429676135996010997390648151051080216016658919036696746054944489663448432663548181286050215830012390890564785712946231962309906959456079372439439896862148223298450776036454341136402161890845567002735775918966601245371495297844763872594416618947870777515797396858691361302354147677515187392707084252601529602080598635537461347622492167888462032150937372326467615579625997983132653870766903791047176385947010212250760053344156417905154625939272946484912821752387954003434980520010043962549849195140754917336734028451251772609162722963655141242041000054747306511427910049454103322476010512420784681276588983168263480476250969460949051910649848700236293216428332691848637794207070715434957048937583536098956171712960465075976051494791314925903141601987490974385271314471656201432237966620648586498169849606441704454180179399906250781711516762462945349091060573956082411707425816073862626422793793223334394373132424006491228493140696399431772096932530787284899409884613801730518949830529741702065117966500752387263994231968128216103335995167988587833602940578410693971749558692631127254701249868103098537503773343509401312093688934301502556433081694814356351683012238831207459611036584508346020054617265499036305568960417355031196919698684004751206275569574948423494834509785458259932522742707613497171928959600044079551889559867257691428916218792441485146310689715077758215891353652678203302270036146847306169392901114179410873327508362573704422165659118321268057717062999918295061166463643450685126583499787347316282093705199008015382133960588775999177570866885787987560903815258580744987566660254949085804284754261838512424052688028895590886746490391998564842142245522801512262659659531676933821407688249618741799488722434164862752524426636114222027608791405395784658109634572544416313235639914990875086177623703126036154841575298942857271154835721100266143489932893401928985688480074229845511160407067763234910691938934729510404363891394669680363823146136884080283691194865521676380961884763963004471957977272186892278261184999429958068820087404620153977642186075065876692586072551313993222341032671167142624565287164426981636665072203800877119604280176384887879556018307849547084884056130670677850074343561863206068969399071091145716369012979169094638085635756325927097533077515282734074017161596128720794554294151278020942036534233865043497762086903119880219450243048433477989502364338257505667501203452262116353166008973434552652400429119141892237161731931270322833424245366855385398438924994374643983248335236210088526673322529791592121995154843208021909885303141732074549500555765700991300403024738136634106617055779439660095723600675355217018265893054802266423129718337808996654651884990520910563251135263198299241766481985661071611643551041335063226601508428627200065387747950902455618576065085491636585687065689230156568518315958176151269476451080045904093156433217624492772112333118383675136787865884944210461425631639792130507921370155979243684546617702394080659694721445468052464566430137531351274241523936359536622746626044159769767216796524113309042982387039914844688259229267923201464035734874093831707937912292937753766503279568603757725560749804818411570883668905515689066347684625360623545158933367915170278948607770572350217594292507752395678348340658059918111312779489111621771432890727633422342096087499461716418869958042912595317764614091977058429180398096376486798926251222522696673264635564764218059856664083844660662188913556456923303181089830256805108398635125810796498572578361695357232697835456528195872216797686036886669010092284557509095467817913643199396747945169385012164584684255539507150528706317701566505015221259879982834357576912800041767588257239154616350887548148268566873328453419244321172073596642089185364306315101625392132451472759208150463048066599540296531166206128437576564513355376190241552773596860695009575929918337094121126308597322845306886340674480391584188515620589986157164684341543443414488535331362497701226374057682427053063803188847780899469324098725494946203375336075908090946616844281305988912938291850888978469888181076882411285785090218440061952692550953905352573431782583319264038336053108474716144671467002763082808500017781758982613398660061799181953033078851909703957141313581969794123519394447817904226835773999148413098267081743891313757307110024190250797686226134130289646810695930330180622247136069566873388928635307093390419015284964966200546308291430937272531729901258507458316447757011393135841230179130795655809248750563895193289951348198229285473351818160103442644253245261696600503360258742621498670366476017072558123255374076546194776376313231349567633549926371267657202151515945405413618028051189842131421730688373030425780684235511232640983244157086033269220709145594753032830926170498282748267131902001879301599712227662425761214984750334139371599426201323337610555109811229801873186582324870412160811325858413055991228879097596452018227132838064456868942542305870440900000232488554918627790326438226135683973618233038613383364300861703616421900884649727183899940920063455581318280460636261272346424712544071349537162291597721363848608199512709054589841307650587929446239770683301158426442594339837521365658923075183658791807138803041581917558635559582161067045119914116885508250022442984473106876599897394696374054333474240276655732815071708821316721922832022692540828231603852956617624601338428701051408660323511324599501615824094194163110371996112870757954651459337547405880577447333655675643913249755749142209441651435690501121860697799382181785686676683323220349882552872347156234755324713415135711978715602819148267305238617079884272342767323367577311691616665395661705631919910395861877942764582929932177309651369414470766744933743285776202421712309466400144665794717697270311844008849628122897638817571696015319948777238149244593499296822668735098710071622202930730015559733494714032842573954861874085942551617534710342726724771715841411112103791596345378484576883183003853947985182282219287664301384846652873386889422554150281909312623010798520735861412069509529599644272538741236327443058394598214964323926635813526162639716800354224775967932094252100106257568763576136451097895233929548690772513686784327921768390570024448783660067933589250252343991576096859742360997712073933910107535961425654198848316213149719672374879996012775345017311074015278565508531358174655781914538412617837159904602115148662518894935095142236315809092042574941088067621846727948280662383314883325422559128828611893760142958251145957378171869218890201591131207808154181481259636604649132766208629457754594570043374213016063475533214243894219870401915006841427924482897254532504590494389585003727909794701749126273020826863659285384279156667641480590454708647265226128163181635550634388133584477976235135143193827379530939169213825480971359424036027232920021622748715650834606659967370081603188254125509657979209936632583831009700641113865085957311430203717584147032320807879871257391955435002064499978110335284049898855529854128082954646979838206452957926712423429999746480062119832269867763232798487522373574891488068150545195432126672848612636640544944013024729420766485240128947839121165369400130790936626247415742611408255026965661683217561908972266233757766554960348781655772480839389581509602617910862627836506882872356495857334403204246798280114215862734496107249099356707165112417089901908710790208070254098855788300501061145035904123621311088052304785648955696994835892753180553635220082558387654734539986085951430367371317682622153131982217866229336695320677810415744222705687502956106453244338948125060470930503550459381141268047166488611743627068721965421211629974535599747007679810224057866324020522672023552191336723061493405027602344092073574685672886077754504230188756230649591914660709891383338297327387703489510884953458537041676897862794018000912746203831347096194999841560258177804155223696363464476100339908972648288520226866635910811036130486773665324669516700420866907310211790398404487926253202851920178997133130200611922503029839911714721797666892301887757502109292084082977519883150874191678116555526229109595761961188159928022245029216084392463297767373287730351166083801080299442588398212382010664954390481061076022791723009452756629773126256736268522700819408857624387262350283390792108711858370324827458890268867702862349129821915750011627021425408184686860805711890835342067675678861905237692523221282815015227215771444749734278937150164285599358909964580538387364650039493487927154407143949010579946684634592929145120615669361470569536866192828516234743266040526490479965176513452495665413189687751117743175894824424573430327003206662416691293350145646405014247610888918262052029647161115271945853699610205150269820423725936322091073371740583951135415237043338827979597349746033395915044483104137127982757321563235841416448997175433148238487712218478232921011422460372173076290112129650789283418848021959518148762025431158608249316479547025719905461809462718250378774422884771687148062894977759990659673537307608439122890247603636569615420264860786319142713243401807127984421829964800836931403757030225719564571874024345971399250458441390479597359005709800796757590179563163957715164828384581326921990823461485827822110912204886646133215027608397257786901928329572711242601133982769702039001172480620517281130507674457137510087741068248865940150734436700489681131807965134481348002825681626957672249185470079756219114195710992787701458515311402355515230167549567320740687182718873719630194956826209049424554169198349049115983798137264290131113815231286702386199692707854860332071983042741678075076833079406135249216097346089767243721365521739350304005232751507212311089938211277390756912383738203403766360718559585240682114590959287502590749805913618768225473773482493787030675250748160260483120544735790544696433516927759450008609388850586008683391199098610274292393659983227386051832465178554515347393832919754134208737636172009638987444341347891794840766492229443176520633263084785722092546049778744544424874142599176756474247730245182944058124177641548684718227181520871017072492641125753861194868669283331742811115971722061186153597040121641076866938574338951071128994042428396116881088235682194865814315217841861707284087454369466634077803302888439047372969349985600498865218660185440161675440887298851894306718771233714785790470771631362746056320082557080918072622870005050900004884903492497985275534871678615726881544481330832498471782366362702645186821242188846843426076371322539395934236830734525632489299941445329006367692246037944404772954772326493815864818725201058202519306455525805304111049426632485182317862151974570794854704020122161017506554360543135609204289071315434150597188391718507845145414381249944427547985101986338602581000398567283883835644263120953585017648494394114972686585382978881775829892859619217833759341550830530585920622038306459189077954744244996068220198201005232990984546589691135865822448414214853248102191069834990913539924710844869099561506452424084178251505238039735452825008970835226718284098135011317251924562692234131718218911587496385236830017670087935410537331158975578806747514436568832289433575611628269503815336434177467911336075722548928511997245943421779812365282035697903185254735665596357580255142243624015132866584862755414117765527165665475277568257808331066060695738380493865484262570105824172867904940619951857384463191079867473725098197518412196454818958567644762159899997402390665183867266747296049324712088280638335270029291530381947145668573418095982430400545221029086294459055465231474716028971602967261976501443440519456468941998210956456229889584099250304163793013576975092771905160804687874412549720044520944295308821609142417189522820432331472638258320128218205071855046027254127128774783771795290122915279938645901434064119175232210355840322787482242987169836121816332422854399918241678933001789581889111227451981735857273811937196079219932150217957720464384057623345134421644196013621021699086386815529640330087997216661501553914365578237288037464809503680514977519810171921198031026252216984663387866166123687528100915327533428612915216304774266426952866694391199295003864028930204848549953218304437811921373319104770168140860490874025227855087785404011103564142050761534848174369579708578772852851993339923466342419308746677239169876775751855996022003840073364760946688942105230007565650095847630382458209060899182418484929831308722089226498227453692340849105077525354504761313585665525895748526209205970022957536574885329565553037230673002670326637604098517091162356419084756532342634774962338867201578591359415049516437575840779241209170395190180893110086173850990418343027218393737987446134179795681017261421042640811637890977882283372344145514018159779422208204676169624973399601374558253788845841855078908879936483961154182477296615765291455721301337532686116304053795537348023152900647834651205140813870198276628768657285989505865937244314431373854531086594162580801509980118326126053530952153001283250702661505333873642588726175103000205063475338318716621628886599404071479200902713263613725569466473215112350499518728434888630928309039839850861383688069442624775764201935992056408284664505489466684068625435432394032399015679871534629534086073535236424264909062370718190538467106239168842179071743584458818931073104949386346348967363664692073862614626995210399667505579282928469483546809720985347326358643309953676767556512296645297653015386665297176074071591002722880933519432561864294658172487041676437733038503376178848889695018691643425968137618171500087753650957063223063633838819061851119296713901884313811117595487783921114605890828796953731378938387646181673738383295523919446080625366343918676620388620772909325896861730375929172213914925233286190442783418461712003433531805084331217021078602634540225700637056944919919208316712642253077646779572045788465195727394780184211469456607867793044573923798088209323670413080763497873376918907418651253506780321004602169793251824606084326001829067952531072688065456333049498529669440799531971984786452681312263556550694924686849842534637516677988154196270731324631325695823218176269318337762240769552137041887339841409311838942018448517614642390596012903498843999230631587467355631906199440816228024047465890959077691244175327469591445510943988562810427333082748398355934394445141445947933495155567082813997938722932487503989170557240001750729369040373851820538317131581044930251019416500512638765817432365472223401711211323751432218218103680204184228446592557895193166118352458082108018040569695258216533924955319720337323319494652427512162776530070198335912029136416476793664428842619259262350125031682027280280009392163696878855391305337717526301957257375411497845647634271705185336601599833778516309138388577167814218982148735535113970301456292200898486192119650913436646026347070607265707926609388208340597933039696463970540168674735979302050727058803402160322241165055247147700587758224444353439409592200599460978771384155514674403393705580552183134043541282554084308934383312663866224741805386103675369610831959679892809418719977370718473634436583237579791439329976589339034763052790327276837529918145093303303098424561070365330336717889787586600463483826458698641829411459368927645916242443194737957773198870339363909291521308336870950073840503721690192063075046990763411654360396678377009303009199922002766074385641489879932161234082582557200486994298890605053556103567762144065184142672944742797632966908106320138082172532587856314148634353422356299456536131748698467449822784059495220577731724643264469873597872141852796566586017921893003487612823375812883531281975285194318224759354105448423226681285607825160013795743147868172081414165167811463349367391083221163981411060094967569086501228033611135624007294244783237204166442749247400556937536460876036601171784035836230067260722555154041590657433027585006828050486982175789168604160064851500649961376731987838680434806351780122823809240698330221063794024250282920069563000288817514391178621684962691110634965804163311058296783204938069794347484463873144344326797459521320857697066638143843908619735993063376903872922164314664865689544123802423020817527759897562339556742129073859587412523891363299140181932094082312445063995080099118181014961628577676454430543371068985485255693472251235212376551050650902488035487537889865241187706245020189859995568216088384338083087017586160855263148851495330328941596213383622166133568170349636865066360010644473156811957657456271599417605303851898834495617240696131121677174983530468001114598868607444708320215572214576035528576556802230354012802788536125627542147944593398691362779239402875353928289215531502592899949232092936415091065060643606562569397248631173044896723210929332889571408295309933492229257086774998900455748081783435437907216019040233430018994902134382694334972970464660010642028253310614983220461139730175703640473912607376505891311206168673889562760350353679844037493027500810366365206904623604267065779150475207697938003930743736382104715463717428088142373875570617848400916452442470841624148280088519590726761163184062938589479957344079174320881035023793333159524881916603551791491446580913156916321208308812199657355828339388618748989021438628285180540451227609524894795454409970530825123188380812012832644456070299109826898281647252129542703638985227827565306081542213004349937762740456468438173541177210697783715118514841315905279929303680466354482531756677698766791451749711344577649283757972428198345221187069346345337787013042533536749392228140088109122692168628822325315120748874715516328298415366409131607282126108473362168224161516629566147305578355017037992486686227527043129223464395308144526798812865738943835293425706517179606809594141683586119883212466120157258713724275505800375368915380462057630480146346873248240452399490135670427031682414474543156956728811732776767168756992648629915739543871628875196225325214128402119354117572496076899720853674159694345318818711654698793853940061846518760795772146776219573745778627571488217153189130664161626392920925848520836671594885371285364821398949002453381652450778696577556711005205584990229812547525109705874275311782921141206823781423868198890805502988687766511692449588619650104359947475580077728792751018209009695094965366647303284093547360886348718044632769357290139764539074936103557318727129472347258128201355018205262244422574922216827655557658936921243381026968876003357495991210074008985908224517507795153580932185243389793450328105343643979170692319293832940250943659207862352048515033457297566498907402501308941908580539963412483882560154911231967743133581467962252196377795530956077457111335210524287467648132463020277133541464959803690477880294617937201345082149030934445356285645113839477277401039304653847220752078046119049846634676206187701400904288221868417576715750644972721241146649392048115651080014088863182062728400437038964798452136300301449811473364653258415863246826007028150528080003695254144265635818953182340550897142823738565203549632372952009839246348400354442565968875588235656395178309444988738607831609723787247360433212593285964564147972388388100804321806742151820696357157138342948746624264088390183934994149472409320153992605531145158603828687699024021147525333820266694720159987230085464715862151997950728354233719137206453367412701926015131511567158712976160492347537508950333970793616551289774611434881080287201134643383691440103004145353315208616484405918751528561520911438623609467941763636709665200618392290754179233348647552832725667556499350264254091475749246012998151019064116936130898238537167811347683703112160165972600535006299566694378315905917515911700852643157708856521108426205856112482644529062191762468774913530711261892159066545203121799353832055144400459826289102542679437236240893361066331313778476589825021946504829541690855111377653195767763387441576404529079008234321567570040808807071770794373853034714351159366880571895141250079065560677845995802145632972621456664443161350515338458932658345253246213765036731970011112943286071610013303727292395174824802958257523590614154851663071701009126133999204626369364482262991440566845945261884245695145793764745438146647514956807789707395127530403321875948289430901593996060688692136950289351136608618492480230247128660450409069311654504495875986710502413077161831407589329148815373048981906665212150489793401347498934259428584919809853090440259903170445714925223598396260612523092261472978040810537122127231102716812668007928636558230983787382408556666630811086158182659105903920518729582270882566211824722596094946468324857215153038970669908800015307739709753747367791475440699995436504956247767708163896492428791791519056452512379801151471891229307091030437933107160127228565713637940758825320253188406414628686573471578425145855700160556143183689643585470298892728748812116511896168207213910549528703328956224156952461267995230170758076329300467754255723560783728854308816031347691483112418206374007676211667191507640916466906903510344071576370799953473818175585369253045789221265861933301989089336767131167020467170342837030880857958870518502710201815577927861598011514124795954395089232132429229380774092813021488634985715114644349030725523758962054752818442814813834959304534315207054397864587920958509577881727770489247233374416649709865925532318228484197558674956396742972152808995553618756494051534093827912838431692474750160228816694393935981885448366253318433589916921569734647112756272277634154898136169102481121169112659007139176156887228383463459163712582572415411573256144130542913777391361740939156735956438008726509213838294356227481410655405876561048891485594036466581026423482833293864549069337134031511024463709352660219110483540156150826553907103499232360655418824756814157620686632312214990801899743654126906753662023042783289239736451024782060076743751302472034780859048711333951788087426218344428021519274750802444310327966705711971952505074209139465249017449858483726883585271326487208930852342526153554211429588133522245713190219191655011434967132579559416678265308679062213764999644240056334132901248085388891649802045564656947755402872586443363993589976134137852429867312504399435751976133603475981339475286820844368183108394958601060891065317722725168986528663159488769687400584219087251892574246861599021575291912575218410441833076432624816463587312481933812986912716283233330873582145027546313230485882949293373153386433512704155348651724015841083294618434904500141466322967112152149720186573385122271721146757135788996886552614461577930700469800237354472846642534270586782639365194500052122614086603803963159655035888867413728388354675114811491675991520519367570902346002241082614077502577702438956087170363866900562796401650035049982654640850911933264131817017810390471942106957323682652620138976671990762041420727612635390114049227080652039539307666312120104947260905535463868647548363605400846156333025812724658275844302430363757418758179962692585914436232653816761363619014601759366814479400817604435767757200331118217746301428921266083243329251415354046321636527319624186113954010929609664846631882317172943097629587761155609853548783587824353135325604180054575092180123249078090319832717326847248594288620806919892753850615642450642519049696384032228190468083214808666221211205845520977917331617324901672252479159884320526270007716440753641989773397494533459250489543912892365708863905156638288769031625205493088784717258531969210825769241971686612595359459103250518476739160494478879727296085036916317619474519909734135403740956263707970087581575749560648500780937831763510253312395416632590640803979271205874881262021635356726913475681853303058276626376636406396322833519495109829505153573043328473881843401687548449423190886359825406246268743734903997474556013599449553676829781593142941656599599168140811532433316951045618473463598541119119566249582375018222171545298722015625846908517900214635464021167378704650604352885914792445511821522567472311057766363750772864129659154610807738767338110304239117099955327233538611648873907347959690554607937319873309602131892100576413720494222756682858421124343621172271792178134221879303905442308020659568239575087102533053602547136702780686455404228834998424277183277866500113708980750234534071039779331273780362423746553614434867093891691232157221427282252363706531211999851342266135686783445482228042173210606569331328929020458247369057141816577004224239268701030104169729168977726890340999262276977701975424637130799313080643275027367916132178014131608204300902818192610698070168929637817881903739473235917132470840370978164389454917413691467631939629520308463699115580280008796978570931389406860517195888193646026202797437064715241247804196148089129574388136413589702635744614227273489852995301607533415511700171654233653559816608128117665303898603436979318269366025071633006722917243806528441161650358094205669316535322056627139797096070901496354026274757743797750324200788596317932801783755612651666092676164100077750442574451932257634917249534990716084772935797572380652703560460421080492565276094277940368753275907168896907921978362403408122511797513984957214698471210499951207202960088436240990383312955182316645209470273109986630118229841701798251753497714164183814739835703303431408146065592893710894313834154809760186328504544604199946945235686190774986135421507913880811186279890115713546121189333176641683202038539728219410410218028064150962601107060010177629984964536545117082572422169590762463361181547307901425057213228533471688108609361600939824179965267825686583330189304273318213200362878653879228844978733375432840773313530369796050561913191765903938919811576380864184367281587253756933934186496016611841083157705307429440291600223401356677217500300215358741576459248738131054663306964159943922584124900315028243595937828636173713773231426204666082731603693145909699414816971285351781360783602220114198105878898905588031297305559717845738494177652324236517269988821413962847887445689372062729748912735261501198218943122071266588249109231825137661828360461634552239091468012649827879393305718194572001614542448295465274280203659883415735722282475646417813609290572433196299703155403708391002340827001589870490652853283779375217127196655235721694074361543411409343763477975275665521067508364332585121953626520178375213784128472400428587994151981954372810810320030134911616320283490787889748310480689497663640374325399210052679381086182267475362579280379848760131551750897044206686154554733548647027832648416504343150336275927609191919742498146504486120370351428334424589067615470363296408327702490608236452272230151532144828390351307194609569488684784030831962786354370370131047350487472743381640315860734466295813184881355059973083387780157457678182708138492516867157873375078128440466697185309511464562563300225214126080756308246076054830864552533396388321629251793095839441375926025530390636730386434675886293557583515001753914922278361725873661927920298792607157844906821553058316471384259548769938002427688333193502647139056684046352751660094721824949855773832607413173945219249401298712745615979790219132128465681886165425428021204822375225274628145280803854396853228394755609301284935726699033318658318132640517727426789548931784967543320470940291591043673206465994702523168816372812359007200581407812266188023945163759179465497822464378857861955317589227726930135178614183197882626089089844581810533604485411917404036643299908966161755670692488132356382121144632040991402016325828633899788972645581040623897593879498979842151662409963031444006950816634274379342224188526315451194599297246491566327135256304578057036814245133740385917037241796267691751992405262284545611380751771611367772268280609387827366608477106631195720434861252306883472893499734593856369259276474277457215490922842835698751929062578014565021867996935004969613963311382691239288773216963184624678990460804564225042583258048046090313065830595295511564384467359787832971611426642978129888092240670531965270412488253480236518141045438396679814479335580287905302759529754917465801872393695840777165061760228549113010267144555550955477050703063959913993445764733851176329464215227368773167380475043987781168543213163934119373676687546548500081098487769498030716694807456504072418560330653817725898009484822684911268201184263667509027976625613310233250178084047708344287579009992260829575688487849797900758554549814070748885075403565855614588317724991391401136678373564840263682929776109009165676359754079606851617038289661106624928827899915854192367047868339623950272931137155386843606206423775352687018108958488203841153129481323092696531729881358726334343583034083852990575591566287417856750142389330466618300644163688760324963160907155132726598726102940719709499137942154688172652657708355867512732143409683447787695918196793528258475675522021452630101800808489970242995793620062305475439156368968333512057299907895628494426968880541020808986950801483573998468048993905790700048235697189414995878136533867222827036662693033009438822905421903264964971397796132173967173591169214309615869052792361251856736944861829631393182121871880476517162002022870604753539839541040849994969092569858186564795663552676235463435654187340478035973468350526752218486419816191813370564469223723566124239577217937142437357511552890873428120145607582691742897250191131659870470346739434815686445865816731065557431123392207314788256700799150263900438352134220570104934024940790577036931775584864196794815438983988404886534182814750534246137487129045355741451398007136754515536647370750297583095982042761858093960195265795861568601741120555026097727697771508795036210004317074113418429507627625951002045537528665430559069850967485944097815102176538631457956296544362344316912173742321363267543033040780412819921543887190106738361490523062502155585300871438051202748204472687683197138089671911986616058575300266900358256208601097928120088525594632322843965799622959504400593101767787619162406323663768090394284874337718380889307496807717666820673716468952793955827807637194426166089141630105004592220517432902601268432281697614409449316765063075815128421867522554605065013353532792334667172867915806367398040046923371132707544062126283585861289413931072676675021602533957778522493221087064449450239613982196255284194276466807757944051182923766949829417740585451225771968189294764878625517378096585023266344309484314337546850771548879792158204956234261065459053527301414697227540537324339450418892309281533617575299611543285524489424153519714800717589444454358016589886152860549753067864542039490733984252856786354909462177531367893997319107929012782014575634737169697944680870789227581002529642715346874551136192251504319582040947083205497519631471546984438364695022905748171253843422066221129670617140948291082304261834648914922113063810951379625293752656986821668748684242884930255853860511413737671199690978556658572352264700742476340298040050915079678055874971488407532497947802614076173472970994227841397459378280662913065146189404722590059856242081529937639811393016014505157785716528508233539453548450878270201899965020630145274746452073819891730840311264128492441998988287058707441287798943624876600450585350729297671006870452182561329233551563307503410292811610706070148555607861709368771302230970746034202702074230839098588093905071848269976607813982678702829829825396662630258009832007161325884504142980221258445084809730727863132799658537714235107636403453989015312791868540740659824663696609589731582365250778018960857756494619783828519410783472575487483290757795485111515425267467138478542604113117999222983502044027489291780359155431088762013740728406506904979432958074687595901022642338716355856813657802023558369473071961175571060878170002080311885480511386244460760194497531284129838494309277239910543080450745094053398961451607321197467922039101792325333647624809207503728359864825965883692402902172810776565492989692888696445836036851453469334744912975313857585799466727861359656786681308321335774921080934675654362329191825705719775250093519006624641774016849172537566665028945789949411340400940177426395449183610525999122509824911432635615586770070187112418045028459502774847085485390146407221838256119820887917307866764899996289029161015163358311067096722300763478252370473674141010161796797107619084236826723067417835602712281400944406145673863635527609853332610220898962098458970426398469044743253837191655589484172384445719487522947319216172760179441318014922155282204499453553218564261277497405743282497864477667621887983937478291737983441021303869555525050502057373685721070436353075669114568071192135412388159067759506723271241539447225486014154880493170878550696559570321113822064420506238837899258129759379099238057688161318508929302573797464964615571964738424682137971793771718147619046142184578262022836765841630364587988791745628752274888459433668816131950667741879071683955038596681195566121759642101278489015779933639112331243043370403879642013570597875624762889191737152170738229566568274941470955551158701709609271787778885564537936123384116595978998336035877575083472061799595360768491074079017707320340052218372877329300700378508090746294026286661847124580666495650508774921078128356274878388208708659956137550754838856152154211081856983810967746532668889731663311031640487682529889602824269738178359199478150278029580797891665759911280517220017445571455951227258715616523009159860956595165695626425130787317019611160191249315483973263523577698847550484828060195297289606703322659691139761696607990743811397866549438211172890591432902029395603643390180479807154937325069501676947876593369847568923876283035939094162896434771552873740006060660285606885346395607317822320786568411932632634654460765486114044032766921428983239749249410338388817895782875833483366836343889949710681649050552294964380205136194758053739715126681303192379138013703823548306494310642483663461373755062994020506508580705135095113308418894673021929370703720463711243801021203947542323410759483912524950253229614786372032918057164332928401981131728622918706059665196397530385768130391368030592133355294050332715216533633023399093907261875938769071599696604874133105623367172667826472717174508801749317406623646931611995168416880594246513362640855433510393339897226033279797870324977542371717132015420408372424270541400662752488379051487050158172971925096743295115960571781426618750783525194866286760047140784078350646599362324687491606126726958094629408635172043621262447808414735918393489507092989055905200332729085068996534005899708070160836900294102300781518778910665245689720209322902874782457177387813304458458810328861869820741400221378283121466461588209020930690049824047664879855245273999016222051999894497778350937017967048210086211307876160790577233889176586501925042212540129090844237610324139306180151050462150403754126181569159610095446319118636005422916054291237908659313524997552220193447604780168876729800064738919266544976384862881145073718147906421767364827065543150953052582998834712810052451785390101116643745242044910813391084249369523554446502014669976802001731227925018967783581764373130115002120341269006069036921570142365374867956412295052203650951857857225120806742739403635980115195344872511571296791122651868261206802312669990652556166984291580377941218964912628964497790885911817492784157984108407978484295078082646103854778008214587166425472165905457449769552430035090852402023668362764749259986425622728894176130676131622013159266243803009819148036551383565382886156979811785102636472582013376054904692642000881413744326046625173241820374972038599713247733533708478279819632153473768146492503528711815254907169044075958080469051883077884004538187642213236576288223014446061949589504343000160819159535419748687240564547394753211689258116418677358833576689335463802518642499906485043424481322313640659886349757563713229477528071498003584457632483013539032895868652671058397660220113408945564667342704989901586222071834775541183706630197209747273888498693470983049810602117585609038436812991873681734287307417431005539238392949224084070203860344356346514267380412519230710944133514420039380819530492821498656406379455544570072120111658636236420827558280313699993259255568491543558029328477892431032467264865133116058282371799151790061967940253855062864230554880212060865009015724164118572951462481908608695627962912801689196862353374836104169112354032275061331451565597518282577329205590165908832764826054017094328133648135313593556801942994192871299704819286634415970727675716489642045882230666031169141818701536318460121360887420587752273973699633349018033800367562191623202193812387598974171423371977451843019273298651884257999231957097518602565305680983988346172588055519039035538066476321511280117079960041114597067902336950491576053666144184676544554450178468904697539637931697671603188415700998512039789644818270611506212914768448382331160669007811450379023563791010616983791354791368208792968643608907889827129987235106506129537128722797889069662748416410242056892784213717727995171656080889890290699853677693953501024489426929115040694102027034830944383546998659842296220179773706450151736504955192123336134465822543797170006169159642229387494705260399881798158726245573669000462676371009790497719211629668120125337366927912076275525993223702548313905148005198888165892567995167439429189568028737156636637344872451349822778032220213744060370760584791965789509897058835321964673049785443799465311782025339688706255306552994077985234598304673014434292100020782108222524269632960114419038399928932126234683321280072950048360425343829417243149168310054996841442580932327497992479399365582093432257824552584082513132188225593536277810061513342376376447579178633256492800333698610588991095788405670615577725179165804483970297158709830697074431455554116677887189627806267441339747844613952131926858752272230680602909545054480721084952566111229643575628748076653662963400445836605727461574009003545034177187283678835566008267006811141456966615880046305477443208064311469282406805904691952867833731782387838627876751131400960954403022654485555285139277142254825698139335470003665419108266639396227333371971611163564842347546371088103294790193403815631854965324927656877443637054443568936702569659784454164322314999143854466348529453280501046961146894858113757852842944239342028403023190762324970623013429011089625660159202360193144509144801221308877572394360210975845061880632708820986398573218408644693675099216646846559463856511654095056779444361998434666081687172306917463497351542203951238230361587121148703207896344363747758671371820165172616170507665232796522159114084319645664687244832485132007853722878550799749557836120124304649718497605717853074157094523853689195462411009212474550613955355266225607958035508692207146067487491033138375597651649662313824588189825107919904917757920040039887796013667476610337277667258710989093349267553601030344583555027112691828689463415923416098921934174095248464147163964693411740137390943452647538790375958493111816747253250912999541888493914078294526240831270886209331184349698944392647914299916258881596040507141092025670757362260777624010733227962199913577239516171263615481018220937044623592950622712081867437455765615952198651547861842727314638659888292190751037134814459121783152396721752190225064870161964632014948611000389346918440064062189854241665144113787740353121137821883354860946483705450659940876302479926099044168468391709443505844764327502004661093758921464565581660834681408443694695303105299992983131554246724589113906715524160099956361086875178173082652992642449258194077167799403936345294512888549055079441488159894919871532292331542533760891397382628353312549989560433042565361646665758227581984271484416094690903569293105688684284342435514803373124706648552847162491516930489078968736682917175425437931314492819623929829675637276653345282805867009712779740680400542380581053197677240588893676957962355766242754691090852843095443452270894262252460283267145779767062182168380973566460054736225875632343865388464141297817334724437906380685848362464107237976909067488121610823769280296730250703383709679957684815981731997083775088393014026402198067060410695874566827699307111729711848154414547182968150393070414889682412733462122341651496514328895879861558975639912808626710588848219858672632887710512436461832490998890559742111399069800514692358829443255306051458573531200906280854156718699960226073406566572592996506580496969726948755997627867744971021270788823716024367872989492190159558665004174498389724486345757857398814600829229318424659668806794673412026642378479265682613439145789642173859440961553432590770389257528661800144102472473520084087229727247015867773665075284233197376322505787335963622376151558914279584972607357077708299365552594034935432894407640712964258044727771174205045288914210378691541822985670466123643797186556612826700829603127334434123508447686765782953625959165245364194048875448575477480136241162667034152285277903628186959405608808356137322771340408443620648959115499002610360133887660043334273290532171279201686584758353182909732491452885182945918932508829021734051826336461308380037197414135316462920600621010287351371173336765171493166863774449770419826622550651859871624631225171156633364222140198997089632411639677845313774328337826273298353715733308000348935204545036963996421090298034514327673705152667186896613776748599549566433888578861162221165481049578217061340048831889465533312786135815017800060345773507099559244889869060767318325262451024594871644758722105950406109367577413501942507322235721776127900024928252217504655586131925676662965408270035598947704705857657582166412182758749180334479246808697523726615942368886001996832780780973998764818173238925204099341464961189628075112173701620411794966286848382620283302410893691691080939995956878999134786580166907757598553506271372507421151394915349762184645184601055715146457824001049889605914101130877123813489272889915039992666762977873929279922397393295002666368626433397287076217862964614333356690567482843988769595874711502095116445490542619408531989306798212596135705158579550788113769348690370985900678011967803662772658880010051285716209699458894644234317708614631801224204742126535335699918638757736164905104788909456213570705629983428657638051723684986370418400797124816012592032065667453420973425910556626937471783808466972272276571477411714219726563954070784403301646748869644209862816822107590701208298416103001206296252681984018755086858926712888717630906812441993371677881231219934840882528684917235963141535202562519095461255637074246309594922281336787196465313935400159066611066877165805358333616731770209719996722303395100049681958467839474627918755612678212134269416640002395047633270744956575866023281530549695987090621113998092468399514746196450767930228503841303321435107517737301413407630684102399467733142835796605017898166450999482357176604146630799217427262043316800586225916524616513784902618116278840933592952097825891737014793813001110240123478518187638803592180194736780667429884405174123133672838287584735554243629380384020742976077226916264756782365878016776106284404139772413960459915657170780910955995608543586801261483116373261319931895685343630921456056019178695632074154825548590593340160287634979549001268808104671733665950165277215267502427380765347185870092995124289528219002460838113199779781826616377296826129367748219677869280811848665784704620739430672474757527111553480206632659132332392393603648859776576057046070904775509277330457020568661294406370873021438340188116284877634777090805428576783224784422599879568216352712730209328163989888081191771350083610503822521857137833157433963764202220083087298767406666153090721179197834265913605349425286504234632647483302142164842653785702061949871232081868898116529820242020374781510968265102904760538912110048885514265371055202829114415140680570744123694648910762693966601393368363060146459973835502600711821678367227709873152945639540429818725654401953489317801166779861983953182007986604593331120636099735342206227324433907059261347743632795471756448301589613984210176377267707308024744663809837782522115421060449734150676398833671382326424102853844622609777509968414001442119294900683403386088972874944162349651931526690109531444164688863427842586689405808541680859733464745775907405022635424816907111521446095109265747894344333403011648162550473009239820162386241858354308996848623071918394464667440435699790831634091877345325449313017943229960933390538517081083799282033292397375418303358968856975669505829356767221220492044455187504254403329469057296276245909380685716923898794170529676987040434843832340985481729670762561758471997062815347579138542854733879531173080434584775767631599691271326039604147991401109996276488811186398353344587320479207800273132717803035215857558972055321645984174413241960073374544808331212165143587833145135882009847109823914845694238320442368078128470793720368933490929230459307369990940409759437411506540189326031086795913686277297633397453249143729718130882951365305403976685059081814930848857063031489640393554575784650599818338107326082572073399767445033720976101898445698386129182222566750580709305897917076028284664988556353807235145295796188693746859798984551756654001241875722958912703469137078150497210128234537665255090057552935729737215677469182837849784510746756851203302506662843712407687652463853413660938613048121138781564314678388654999285948229995204826733387041291415439739211727829065711728521088241169212639173218974052754875786735756842088328671092919344473959479556458155238040691748850572635676355558468446301685525348929984618109197851926528707045860372413023824524260415484398654324116795954286637650443285555424944422750554410355366752658272951787844614892551686153796974752505265162500918906002471121127933929149336225390291115181443530202012877291448341071296787234192959341004195617856701119416332476849278080694506895939455892042987841717269828094802197385354834718133513745290943722088078690201187847413886971491041432305485808039830804415566671654897617616291658000232914308432094558671008351407349972402887345327728170801902482138995592578288493610471221117951483627738944017700077753227619955251459335910090660674421576712276355553573821559785711232929058047473943777615549650857293956735040275895458020858185066165024797240175078736755768323867455828547314611035101036625646009332833625752217717159207100924594089524788363417926577809861585194370497084653531742236583296138622906669558195897442309958082761919264115982773621558656185096159024096796311612114956639775974118052721165359264173968162405633027542534865931596860263981759026725178501993805405434185255246026055431123969102841789905655170786186015704160646082304389240855889638982707656081013329266034337842316263517022824443068585384723121614484561075091899811160753758065226158644541093891778210917838336056381772852731906601714975080772873425060236434571206128637510578769271566022037953897906328328084755168283067237460944099505050209056786943496765230267216997160318010056357358410476644226064787559704863970516892081081960313785815716686456740638553042809406672875702711057107850285113871446895814250761018577046097137554656849428870720912946622377691778207486140451280972681861154727170791836874713462455711200890105968928966439612433192533877174958340466981788803783938280354098946503972428934734428833003642774196713099174913592178977031944075880254683448693232858225251526033506050526707346683091147731477550407791594461788223704100085219441085120811696020222953220928780945030565633774240412906637154233463807812401535631513614012696294968920937626498931633640156995997589404335618625405379561464335466525648574351616968441792075570164718111729524613358562782562132062664566775348431004122540191289673097740683839543585720877290728950506288118255434192349193319082664965521934574981153414732365344326137362593920220154268646052179570408102859537010299383368043421208672559956396644175376542887501024355211904199016297752868649690332580410801102669797666931427492787319307501857356080512692724568891915768221826939671825077195798958896546581623858290896117633478392802950636294265380596160196621477603837941260349303518631601869497621638548183518860337375178025300435897934676212006567838343628100848592866649444962122801085631381049225789337713321128057757026586362587297014263648528558790614650060550140795576446700189121445066627659018536912762242904802162420239686990415364024019507288272183220277365523310159669724451527089286295188534631724947287619783937751898523810264380643821561043879322764902397602288042330282651404364356571390678846552265297773429205882856645174680588802452765875545778181686702354484082730098790566553943194958889978774133812762095651207435159327875924015560758206310482689087245472994272433016076971193247596865615355931139636015777951852611367927314245860172131366892536777780542269009352950380316967200934312222889549110763434760928716526846602675332371292235019220687377536837453968417817208069493657976230920698217865467169737217984030120561680697888230912008530175448053545548802819158549503055846810491317171258998088787884050814490179229004039573412339465237166512513769585813719110719029321939543597848301983289091250529028040195712349616899023933431952523691329735403068540282847539830215042853685254340704939115401872988770569188061252913676799860738760773281790936135236542777743799748144400069871453567791282061868479099907706883726515516089658963354847614446928329998281327465661877241243035214492770250748582246051101549055727206859095514261121346686948230812794465589870683369504729731395370886047661966282963035389751643377561886908880925483809129067564176046788238900531223724549268302559250753499084630389460190728267918967401996638641963099055864674996416406507256940835191319358251912199752299662085131897305571000313627774659814201864946163577120386490504877012968181041723296048130274872980922736947646055533529800398413908363104297611028129202977488883169617169842382402911288258316405808165826644241118411138011263459248214767230213295899580896115896952900522895024696092975352573909651721966519003592375527101373514274482084070562655176620492855484395923726927883193269949119121336717877036587645877211053505249735717316216642921628675719765885059513852016411450830238619597436735327582835203946120939085485453384318426707712081243698323115476205079479779621447988279479281560751408948891536939793279678460108521331759445079169487731931449161547637081246096360915692307421694758050843130985299446140633326090062818174203172581882517654019996126781593148772177803107592647245499022799375957589881545465225452277354868006043188589564024681779319319826012184858618363011480696773418062436082471652647259520097773758403264880271864047016455997793067248072121275681639819596149202091537968499107393049096597577556826976646081669885203611691064088066453406984344238938160260237102890036802888555977372327804032677105635891036620008528818071614606740570504322797925996036900398081527032016510841267551433432397937788359592752871271666362982624828109741680206976780956033764216977516690379218924310445389706359696750373035122098091496489585431680537078180017339558437470566056944515605276885545211056530278972542012550145771380650603365007948703379770208621267820540730708825960108395935742994160253829303007175488029361553089907590120359477559219148697141596879998542300354459270044371213454958886450325365696450290098292205854550029584557109457496921557501263548001011614745183913285804130049079346333931834677828706825264373672193326017992914633305101349540303039816451756681066623909713304117685821240777696313993027104084507220638066314808374052046095877925467105310447594759786625705897763469196352801679194961550131504045097708774871039669890980610880774048782501174691704718774228054612515752456470047262921619598308257436089478930639575555364412597811350501691954526131883869756813391730881134871701658044639845706730213810149182557747244426269385008144550439913894047661410535525647592186392243688234019281209048358887741752575679130851545070627166918630649741540319213807222288948470864617616305599104174737696357884140372000317928537460839669535483587648780503420833546158076048253803650248970021500933695809636454242470002585589334525478657691270127061864622154339495213747874205070023342235384160058652110635475378706256276475570138859560375701965389121782574547983371917564508003165430065613898663120235704097457669307199633133427543935381757824857405924790250705551429149695679152445611798669816002652426708668808541911271325776517510178426416114587401420700526843585134515637544198793601334215230095847230683402302012800809159302588764576440326049240061588584538978433982171470979114335993938154558719984114451819718415158544783044376355464855705471389543137800336073451932024718855746198582319566742570991708465335835885684131522824284968148996876905163911404697626488627392645897219948189116954264930855672946633086592615814991710965485230424698989356472197790931466698308308484624090581170455717294683327139183789320569139575204594088600850144444039818859474242740225237835397917253436405262305275587995401627812607871249794193939407711999029875348355609641811793224005757505849701598216161866755242101331439933044582909057525793632529295226858170201400057968703780464163107161215960815032586093076335290106609381061366276984834359404368777235198321181502414594277409623375796166483692081584131002266330328186561215526969742077778747253232142397125351558267198788714124015330764992056816163290136341146105884148270898732572115202120030542481608127692590586908531458207793223853339659333805524831010860970670904965668907879316314384214540165444504950604339097815283054520185813801436067413267743007460233860258642375094746686882570464039384873650619933572862582738807342122980985842041434755654732437728053707407757919926169785306701038357977687419213115701740674331358574520036768774666042430506898106376133281786959693262059019441023605358209870042695353562146776609007960661491851408595880526399105819476747899653302502846491777965604471986561956059079839361009202341070617294095226011498444150978006451386038937889172715532479799708180551816764151348309561012124738270383335461101667713875478928205233718781198611777742190211535914022591586828593545913045382658529434214610634937020430720556058693490147191943206030281777607374561369654770548419060544149899848994474436171671101727529309690769446371510271790218063435524297124882363893829748006466943677315706529496749813518405762776060360711491506126535059348494100589678163072085983224682655536760527311476026287693928367500919844212031865195244131388387950448224171941384942738606548800468167780370550096559398052408300720069500697595792782936442570824516913366224809708777234213946336048202733951534530601930720518320916464577382071680090150976705202001720965941506299449989961522598573792673798942210911721243759544956245126042096272327937676224144760114131965951774331361859890241520841451150731516933721036747098249053395011844257629979517226813912151276021044909179250329473352760954920113425030259220736263388373623927957763013600643358226629268046066058866234609243643292251869581416434549875972632146549086810472073656461501352213397330280825719787477277477072847363105780038766922503716671126606460311052286983383021648983442232663602479336569969521737319089072810156318516330204574546019604734629140513226910451904950311230784048993093865609993132914508748082583354666016404702958304219306931944862854572560998743452858942241692141038046788311796119196611863798276745373572667818668164897250836417502085644856535226829260983722595595866731162883576549920106182858853514368396652077171973158904668674486090563839916008627922011109346994859001388518253167920369473303576135119554732612671543027964812227205595123987082605262033851847832335958066417578796221999509443262018134047744119382937738769003641980222741480853085780201207207709657010254343364161010310954739602774772904428063899292291811875736602372388382518573573436843556333006503161821247054025249608603032485840553489766798084739951635929182338866675620499250563187362762077699504235154682565121636660071485692392957767862834357349528587035293512984612266158796427384727265390378612658129369759910012805699683897416816735874684170204254578406744394569574848826306422549845539403594999863180369532114962714669935169198567367519688770180747740800346947327794366105968557199243539595735093869298320577715377548511310891216103093695697233438257814421570758251170535985703670681469505605888821023471755529547163224985238983189713790979470329500307328025720662578121769568552881020583093453925036405897798579675264466881495349718096970864092071886120664123897438535952083968029855243228904839653284378084712112893334911496698894774480399732612324026806260025637875845145421301480773623135241377086126320547375473837184108265231990262064221404135575327676898387434632303578730140730896225445735377666622523456890952028875945822298199642365906006563453324664706857140499776502633658669844601870791452718600018500653132363624696279010655835810444493503722570774656642965642355541647928013482027385452120579274578666843724013234680591462239949119234215415262261582107973379466543040306394700907848426246863200404707925929869757592632634326122339298234117001520230721104514757555315186903475456963491610927583172156435696805542059335787640697630936838121584336191084180602052242654576485137894719276375023387021493054090541126810438555662932974148136956738965893919773733551632624324683185604288197642920100672936532146299999684210704245285071278657338536072261134793547508896389657125820859170090230572975588058379826372797300813536602651350048104129166994455533789380242947959846477966691863711669592329162649383121590926329704091745450128429815374106858009407025903136988444975016480020022408010884258564139065173288824373169908740541837800486907989704976658463372825211405546603143932994645636621450862099297542737727148324818417209845671981999497280281615894493098684434590275547960276545943576233848287174271865253831154300855185248473526473757278453973245463867427386374701158604906539694467890395921162799274346028507082759943677885877457659719169254613164471524412438651093473882451452471764468188221737477714716339986794993650365540017649349722711618960374037354342621061636295206349758307900667816153178752326243337937491646255052671353470384942254537624564711203456659779046891891080117093788815381803397265023996200470874256310750493535372445314894751186973215027180431388920068275867365011933890622395914727206784047447373106887378133758243697445783260526470377190010837645531585706295444931940737926904682267825482049931237452650874565800899778903104178665277482735834544068397790575047104902066535759976641365077730125339806695497729128170345373218864967733196466513054185242490129981136128427355545857203550105370088139230275837178126283484164511934359250450369942910977582030043847532186529258792536333476584986203396243525744171746060356081915712589312799431817672788794079853032498866301863477577591340185923726861277175890401026305162927448751055951872499253479400916180373277338780153503468723912206611883463419198178512751280967355932869744275087959598408575202001377858250504438448898174014136150401062239322169734481787028716868996355378046832383454111592394483217594410710026397937206901546409735491855125231436465805874134607119403569136607830667878503579147861144340523505355690415479418457588943346614267809336972936842656553562582075505796434202233308151985085466860584003945765270915544553148203275227659942567087889724331863323655208094974940715602988430155031861917591222934578069280581244198651366621383388195943524846200443323898803535006931040902818584361441878596494553849468457311831917123853212398054999636808430977941366275283458684586256084586371490704929828640161861097151440918676532219565200118915307536422869622349627953704034462023119949985416810454017578249105956114891882653552991750942240526438266431202693233582645320426040177173807776977143949600556952351856140684149567218989756173404079699603749928481555852482182052031583673741835898200498040880341242680863877188237357112082177683552268823980691700638465074626832003444421020757298216797351607366086515257180085272613440600161906713294608393600278084663131627473260470429462643168261510835470207002469975249233600009680489063242412262680753982185974940738655033209847236382225008678340944919314034411840755298864850121709686897629373946157275859626097243723676935165025880093111355150254518064287805859860134747168881938643752303564136489395392066815911920085401594612553674374738194326064158915858242003257340320730978578074597607910720776972948226342658934272340324936570943387185928577238841673223513200617120844314171597680819994834752630876681633096543178427036325703801135523096145712012916697329564945669136575814988305365631869417972070488706241517558650196832632310376337652958945023333876988460646788344383151670810640473721011761203789958930429678738113565471230874661211255720851000401141793113981687979561300907425278939874766444400471136539634635175003911654110473080422782929321372085451422993434381964974322090445045178851146416112868081970959131850914142812180056655360318172175811733338152920073613494146803606871925312326846849528448085162204561867082937399069695985025337062177439469463944042725620441759408513670539858084268153517959108555628263131800236270035043308759336855369730231855519752702170937387481800108658862600665483230251607318556837359437320432327168367653024450436450276343404901503691339471300697835482243519923673335420395286557286134666291757118700357016098031448376943844423679566705631854953844244724135962612577794827281487519749653927338393409926129246897259449106929824828650814745118784286330153110021283025857196612295092611169295438718768004002748438045231544301536934042262380961339945590627020881014354834551035882594725688815282057297825526514176100378394902493413605257742192247496158506187403081709559971175711665597417145075583098037475646071963094382772701850207461831783259280427939009586729866194916106992925763585758224729006991672953105263285607697411954988667071191985927192516503835969436271573090063005738155989653381716255774245002490451989370608505303399236047670978666701682324175563574752752157545097122163136217285070201391333545867090197214262835151838639810265986525809764929532692203004931773722539517340371942797367498481998717419666193098382875571432797169734703712182681153185754095132694028687110589499352201097959973592448195475047534704032874950589432865387862073314287639816849613032502009391360552257408074404895910799084035995384665276248543051906917948364078354320836356578724903171915466316680982983001329171679842417204337700281459010286692551131693069152360054442673946890582981067194164830058234177921418123493519001423761075873218014884266318136340313155462388155243004724522423702465323703812869775810525326096126800988781481990322804464965378530697001447469263179128365979000387448351952594428655082079926445776173247743004380052936912961633745721734737665873001480561824516846008839351296195762639366337247066920121114166820499362691665764845196575659725295290447924215513888527881616937166749617094329859106071825016228697237110147349415690205092854771081018305450741747304551110394251966109413530949348021624788713500842820960120097129864108283664518095951683631792402043081954244723569363677180924950706113727663324687126061845874666514282976905054878093699742581268310849819472065065526265678369623381074548641375744199737973937698083026133226409218006818863662489046067967920450254787471430165161925854234867832059688836154052827604675446418692594521859074730335505837337704853302315236920432899429146199949269553701266850947596197482237196925251674847506397646083763211913683412309849659002919688933248557286193026685777481436325077035772363680352451254029691398681037548691459839841574536407667206560827831483157408831384654435884163694170945229196949336051817670701395272862299967243331991347283962960760254316052924202570692357393824709764926453098379965623827479695614349278081189204567765074092930861515372430715206721149143559002519483866941315206229286471801975970399918528715512377177941892203566692200208621880253082909481231345742396577189172146731526179864609275168598495364511242847468267196935446362315201440248495520891663018402131518193472544703302094077250519087574828858760623375148908674732140412529022982104856381563489011581827335803967575090303161089727536467069113707841510318070626167608537661322503768218829878175512645687808503888625465311119160332423017803976755077548857065527235935026955832307592694193594514198305022631209716572730308770261326217512893307621479731704858692070500051064380092511373865913047262537432648825685130311158477345138040217252223535666148382538553320389845168422067719917995890418906797248222230737011370171500115865118871765633734545909098649786668483391269564448014391146113637767945512742547031516170528835934808629509694563044476561458435959267029777970504918589556239573445805481084942460753909904119614644252363276539244144172473110220536207015867729986238285303968676056458978871648558689556738983293684142733430752990813806186676236341825637588019567306977966072317734880788566956699422922126104504748705318348465353762109170087354881285222887642418272674509557796345671635559910133993910647517085077904780035651269854074929825509890057777781947002983384052184490792828776113000633151157234126296191364111083857817237001684564312738359830566426915727883345878255567588640099635991319495460546393643013532132573944633142390282249223640039381036227498422219231879500490464044699932602938936742112228777021013780740137023758773184299162153896276602056977095866216185948659607682507820054430423056495770347665693353442232220814337011471944122576853054328600520246666998030404518516913349183509560147590053760727266098464445354133794583001779252936474711622523218344727724657319565126512644632014071103633736937061507808202593245668065649094624964115366534798764660568555218164497227250217770686510474783890568206078797960794170236232785454239411837773448600864405778778226426242822232182521376704331360861071455667150361498593295463983476570937360757232400435022863467712120844169418484266190960669691387097263054280658270692853596981112426684922175699545252087229999618217597306161197740578356357079969304205308643452718993111533896333236420853949674875548599667342429139595205586799721483149999306404702180723793830058495727597736294366693913485392329014966665114444468738661116758674565437173965471578569286086903783028741799352430787854381610076945850015759939987495958648423353360308232025577508463875551467366744141178442004185995831202898187199940409474901716923693427348467919121609134819137650262779257575753583710028882072613292667091563728579705725823014216507995783609990866259956543115843781243791838589831217644006757153373337523386952857863253577328390332298127994391989648891887961201743274672464953128033035546381594931955103562073629606107405537264583805150453780897628957234197964306445424908359000503286925025812894694620382659400584304991743235683888748526396224856886310879618694024176120212996913708629986908423463345224227061888262944103637917331037037941153279394280198858648852664875059299691442842114592311905798203596748356359459487200438762268464160245795818481253630291724851757712636860445792488871949504392153421146418981708614487217949602375836343870650122402356581622244479793426008049608983404960832017138272283954510400404069978598403629659564022014482964106202090668263958201217953059536983860939324597469139291161040627632208269240316500182469022151502130445750180177020933603168815175828014010928210769760516602929407024694021505069725376759780030995019232708373230018402865667124883041474879249187470572901870193630723977869189351902702335418256582933034021671999679448159658879164130636980871493042795011511044050925633360962175540450673912059477859075856319827952377236843160046252106665198426921213046967567697620218489234873408641133869230866203796408866465933802910984116308006170692153647524767568384400184250323176373388338498131914884512361321643058819489999534822833384243122518099738292516036524624333161783731430743596782171114774997034704952206105442923835704931618777860706712785244455291958900726424447282247201711239619501795545153038941200863888726618179499305863600971502509240896377191707368019379601799213042479947092013708812185466295184306175698151677722583381273814984928892183229790990033518117005770357942262661105646612831566832706971895244744527752940621392545206906674320370854032195240812408500151490225451647992919551914139554899621762755036785831255117929886000439033734407057016192081618737144059059355581753202363666231094772773340885153201257325105477545620997258280322038975139065353208127895519820148341349016263164661087423196200431221562406120077759266111418543923458431781318818528991408968606835837579684822372150613091410239721661519155463467194927283680012238498589042176491680003827567118943849832542666989730018562411195690242056751196735942170815528228760516981381880989043639498061857650893802642873323832830501709151915762090996587529864180963446554676171582199965284419174122654587439460699585208555906491601204669803462994608487793755085949341866138126909681636312519577660798216968237554850069409856542006168734866110055405337221087451282805094864356647450902458364552730419527619732174943944498097805952844616631506482473981319195711552722281287188072312986049153103548366719555989487368225022952490396244637826164607520799474582034848760201468230533220381149306749308440647171582596078809066575217759107441348411241251445178727902054047806368681214832859218491978687942591871923416912103385892305514470435804200628651597171254386439995890421942894256102730828640670025551830343952788419986907255620853238202287459536128468335384751518072752934323803867211822371561166409833863500819259160439146182255355793852577477359901119498407207479624071817328684558262574361265859081088695943593983955098214738831873149461142973809933068125473042607280103124247164657283918208599088052644219964696655903287122262621635101827388730109968853110195932955644910905527044041051240776236226599059870161339571920334888682597970648030617131796796057764751849618131953937213318147013974706411115971643627316295757722256761974647778807106980620072917785710693639417304704417385233940634051040586929864152075607173188073234652910260691833122984962747993418587570492611966292422147162255480525898473501908596686281499757323674873673125769839998273667375173773809596277330102007688174927122125269803610867271664227442066126314700372678002230760052038562359927441402760975348677647862432384554043937548321749030159421753980598854059620714466200466862439837957681597248615669883482252131710800816660155483721314613085134810834152051523834803561164242347223599129468138739464327981771547374371441061855082635075870619973221586883483478386966162938383248953976902630401558996232255833123167097977759704651900028686914103348276165552178513025226872931869533870042393161194226145983322846370858593073353538047096495913577403435371555093203638205264887943619417730888725817948693825003424784017837701466929927483753140747586062641076559176168756608781729286386770042901148381813604865161351719557842273932437086841271719709462417930482701650401116236266424304371131268075935462188469841021318772537431672900495604175594649792739843344207344171714749053328836686102555984686742211748504584671463565910133388596192808052074445112422421824749206511533267548558641788163200473413475815730436218898609139562979958668497531579025788265566737722722000425343962686352589443511814379816874614188553135104928653893950892278178228285424935560389329766781773344439187506032381466443377077004573262006032285948266424106204151656822257582189068343911482520471580412421006315326457208556806426118549641927188185033356906485981541815742994500284246163935264256984365207137439111308702595124357977263859842659577990030697700289363121498290322757447140161550410993323886516097040819033760196550281237384138954673247513084443801761925539834637051919382912573807609959846087913666404521768215727469417628490388279953013839442056383709274665495706805762206831931410521242643822471736395535805118396509696349069680669885260217067210604722023211338363359157994746920503676132034086910917495148741793412657448935994926029568173508562756544230802366205841704119133474968489977316924239450623868121805192929044409277281794758610263695601471128510815288279556568991662430742344398197027460026191774697581192336479845944310814675355256208383329049118805966353210690776081403759185449323376772194329057481380404510904638850145317920462689150735482715708495461305789589767276923225310162904534180463169583914200778291202530628437796012043778602932278500169034467337960786486208675331317192494933304538704075205528066767169293329840601704804553208441887454888304191015578477102015339972932844634524552633164840683800100826241555334457640943725236131149548755148671859431458684271554829682979469431875902762220463674656858113784544630180605643685295029232273509411775509552815242881820422717135890066119540317625753852744363161152756757527483840556060079084537127078524903946187337103255130498686840564140644536876389385185609728421499469017889715860698396010509828358845824485389722357151270562585068355820561646841102474889932665831488219954976713592412410649940721809720030026415224928761408786374849488552393655513957307791580360245749866120246428313018998783989473228419215387760342763413210463894653944426862236384613698750247748819354410516208083748259629718671603682677109239283172494036930788502393282359263341148033933554805293111177596948770477255693344651459177234214394672675726876895642268791881696384089020938390227660801999570305289732279947653206017806357577697448891201098951536753513076244626455419183211788022547020006796616802567595757902120877152893576552194278996349702770027037676982495086090685785009025212661506149382337760629036953833449203984769027508831989573220392830617343891932555792926671468641950526772266541986049730170119865510072804178922593952466539292229020007074674724896915470349280096453317540758292623027760098799098987934554664832767258577666436636635161003485669162087396986857648742775465254319996204096846977307247313531447673627149616711097231203543723091311768159836886792337273269176862713960126706028854571788115262857612461253730852848144089592040035434491460134540978913063675338983099085108764075908832460240089176493524919946622960721507959952005724337594935831917171693142736203872141201613650953865546776278053350293071220590535702520672788977856688935278630357383340987566043813588654512992965807599425918513925059610084525833947224943011310130724637223041830939954604379492648929428024526446857767498713802780770617536819290833899105904634143964581921126614292072282769255523028026745525184465036771931567269058533082959584880634585055681321232370770418184793132670262002767287173209313273889377502528838388618717403549771183775384762811242276342160352731739349948986211488362779559108033189947391023912743219002895730878149147561805827639061017756974659020170909211373083422199450424241577619912229457274809577706948452398935906967602558624830217336471416502786075513461563128986296573433315550269039578074916975943172687079172121726320303868832133215880201920675019510902495941383458029641654439668306983281382158419445589170249508767688623957468753301401878078355655897482034994931655445513414803269829068992069748797744211422195320345379740263321860458067812132781666381124890196165971246115757159747273363635801586286098658973618199436535382869846373060677564184214278168352383458476728445768073640752368255300490997510455422005874507294966164537347172068554937782863769553407390977562110562057033415481687544565841341733017281641863843697819661471614347283532462638844645860849379767912963362827548781770028253342346259281906561552332334762101276921509236665148545280252337772215739481587900922337470486456335397184037255888855023507899149998547990927157814996017432202449070214294021959843602985360285527815313983029570998015601622160604787565701945547176103869656117476431110082482053714437123337572884019508935319964938642214057822684439880810204760142925998858104177725326531299217391736823244650212911344648721706711337279847621094281755342732282851063293157771742363040173057415333870639368360889657753426411476470547905431929118654490245837685564503086687544791665378051528176773397696640175708183686312961939809178810154958246400228685781818923747760754215819896179546583542507774418122285537008301729590934318722382644912127464076117667499451496088517572673477420917150369962501565227779321513092450657734890248981933057602908597026262259292894140639830275951826807825958514801404543205927377915261208198321753984666832251906015337838299905323414948988831895175460928308288802318393969754017138776824568560258853392065966946901189487142534468453838553673366628266212513475777438994304812413694573151558095942008039027896237152069838190440728873240747013743394131541568539721647450077628770513105438551286773215480682758379913052938936981269594082026939037001879086849163548065768971990162765222278078032839355048133804052306487672311100278654054501279581350107797806663039619475746657051646392950570066332467070224695792186211947261789404927867511219409282369059678753032546702011382881943512263544169175414365848348195912585707958545436478142615949667973179011037883232188691337409721639714212746769431675835765716690772788519103314868890257529244436600157361928459144737685959433590832602399880138187474697530608933641989306601085251570042950751730752352650636170649014567493069312596870229966320609549349712784066107323334959787976713419612346341646486520588153979384665599464116453809845288037003242653856232609606802366563866849780159323858346336397034896146201720347974391841530741561930729152218038771356403298043458888154459431931478240021669912322444417470684212617801057283972908330115979089392140698473996996279856777846092626991511417546520980558127012926862747363703700891733778742247046122609891470558112580121654999025708717628504256773068038522958426243280505284325734163822003957571286511620692500651493774280207022756375244356533104319347216016408809199530375023594488173929132166426261757984928065556546431494162523189658041877586418833008753623996204435172036131420880328300406937942214997906912743851159148926264623475973585791229178140590312428942342440403127289747213672227489217070661022362291732396390605522440418978838932781650053703690165676442118117141546974133895658818300527636041395680924880628422920356986094065023089680901524814287901100698670931157776804095296549944781373181481528556697181993086845715466674835890897580870000126528894294726210156889560771837483212693525770005430756811402857623507260939015785386205959691911795305301917236511647575065114056128014639207423464596332590197354770178541830471945470191585283764593694536437627626692047452417913346291642471894445731675906105654146458166060830876218242619607282606632883917304954367471305881212133928840830649142994740208520119419664909125528898762789200696224584644051232181908463020003711646522655740918890953400527465671802779092819822735508510776572097826047336996336898259399459199761171516172843325282738400072181372973685964670005974424554571868882059964923289691936421091351201268684198751984475773834185337777158149007842125714947181113347336896100084764986115007460013714157183635765183616945386463898625994084044915014107086254638982627951632053855940642619261420615881264864620069859333759172899278100189575782709479801901207473447224247000881009204747648864876898921963676377709769399562979306335726054760735642501279713321251009880185251466832728419507522252042579159286558248599412704475544935283514902731175049268241253320252500277557988257441428767673509567270570192022131195225200422220358104548974008158153121093078926901890957725060012634455073931222949694221540051476774789605829851352007358802661677621662831035241154957348802890140599145091043418920034917707263018099144906873644247834831238033823492304548989125560975100150798926195540772951278863904967624474052532211125271065846787417170562207953753156633492652554050160987864434119577737442176244613376773704307902019343025449609865561138563097414322645581869865938984783731948849271752669022541908712386732918772332923408136902789385178582235085016004719464369747901181805399618842627421701433802214220516958773833487546043805356768941367720178335674612526286446526100130595037858105652962355974955994962001061625428697874312327318829173605502175836514647061763514993329835260720870300192907980691322191376215462930249345105637802486630012664602336624007917324713219694707707043867513709063970413586431968920667104132179625601647679530374524283728563486849464687452119399656975404944775853381182420151009266592119671807082302822005655309735165971072988383930036743609507693926671719362253777212818842444367203600228444376084542577072874035644320111141127608561458409750773465184191817382773779143301811468440990067867408680947757113741381296494840671454044695227199371952947858178861891711012992988777213303801007630535521451771612304017954912433465889679050897319386738303871959691109771546167132941096410680618619157707947384568664680228352762382623721571512745612476198504590136941391566467715002672504422315383475913818336828940641922170886753645654540468849957010528982516461491779859430724929806740272614799387892373931263478981134927241357035434836564332395416482360660192115045072825209111757976708226688383211545160224255824030075598420316840171853399699244511368720223821822356115879084263908482229111274771258923932594358230476987874267777605276057453115422197060809703148816984271739752387140781888682377026741198995192607720804837931822480012740799078458305854424446472626032269305314393228910938698598624860628121377208860108685778939973741449172903566996477016641061070616748603857383681449789072053930287643779176324848903388277843194556332665485482969123242498766030147279746407234179646654629294561763152998560303999167285221553240940390048841063786152692228699345403120076047273734601316198612023063579455365451475497527805364718383544046934582683166927517423433683888722287604112201141553525068126025337811388289805931390043677470520863081371705845984287515017137908523663262048895087623917165346402477686651101858843566850986356282679720579829422728140126790532802568236600325298231271891396801389282436121743520998879767533194767191001439145273774269806716219780053862204552128902483444735346459495634720878016525421235504168165171945649088046257891037794490813783795968269644358097392154860107060224651248575357255394755588917334597318672366860139148811283057687889066452791896823819374713389824248415720503284980024854461308035157233178145340567913667307458922201890358339265727190248920123679412108188441917231171872389617393350974837243160040362019347995015283542181550068275488081428039931821683839208902791125753909066840894575988825326475739389413724256001737831484851824578659240264706878229473207015497959594468434178085611315299486526216110462487281513132910970612793919912055664299450923369334809027819236383592682926645995228816668270585998726087426545246750658984913120908090231343155677154924600961377259324942031306162398249777663228176294972249327307055186084704814670965277327833762673931264988634831842751893037502141525849921037305733854399362492492988711429695377031701356682509706324065620754880858841962148055675171690814270595596255524992558725763735847922862906778589712549010593419069042103179893598712238611361060595407133021531534467864865340746322321683249980310674730244707363017226476627153982449698715307818562922801014772140304209896329977534063739494929441629641045827369068185062256853664221782673670763394383082109018235201907279946629080716824444979033279294868172447697910117392772480418543702707047049352567104461070083592019252425495787399467714339250430673225267837623864979546764840206580252288232569868121424096472675324907960954207387664586918502581537773159000099292959321042559834225684008258414425583983202657930915594679441461581250493794027394104866708249100929461883709314906290752448380931882410660554785459074899728045066713350036988219275229366336824527737788771005667270040446103688930867541184830737032111058813317142951628760433047414990364298301399687157076147400266674894109513744316645701658734623509735701803524440972415343110446519824337614717300270187082960368264994598459470372322604964240001785262446510904397300657638771896014304363510763299758591680218627193715121260155754178754812268826865500129528505248215871846182174258891224663732751872335964421524576005211276778843492431330200688491774829484369139468988661711415794014741282272088660047750942553600591264220600740225056643586022975851693986661774285067632149847437543453733289172412074403480074412462822688309039409017762512933140921782950264334380461768488216162511572712150119421565403195777861492697708103509286112460747606785187560946922144146816975298473566870989104091517374776676158186135222700334441515786691291996077831682275484106213266897674220202990832070368556801062519622047621217916521961013878633285464419438031316265456971159927450197732532607875849801100938626500611181671001031936687858698318163600263404422850525721594512452140564211721252185131269972797087442916436177611777736132515610946679504968168621701787495388513460941040737104431598667730000896477885882907775411304069905042676364220057002751930799249820133391891615355587569215838541579612731619301780297440343057662405932249161718725934617871016736957813890710681865709739081633674103903951745492610720591623740915927433051698895841698880006044395356860804365373850834105113436540761374995805215415126811421500930842914294225571371225070034799314454249661603038906145930012637172186482800015665608510452090886170488112552169511858591746632458790736747820987310864640641331006016558692678399097092685767762229729079708730130299950633188467897102849121647009400316376761042532311858781176603934873691356898388704363341433396809208521073316996507646503343595680906295240993032442803226128855666108721074282873288233566842351563441308345594997745121092018507161219417412543329123606332603605743312520891376881201680196853843623263668544844418102238577874756606585853631298898857415686798506866488345386212640012687406766985360016912569825519811031642289988300036595824313185179070068451756014191250671594671040280646027849072785697763275539869733234243471000237934088379559075473868381716386026929027409167827077667383818246134254454710678566175198344225867106034908650854387757685492982183362075605651818086644870423107552512647951028488010906113824343271460401867259660800029998984137555697459285211182562755983856447463744067630132655446338616851372195341822021486367951692021312801846082714388924762826057068202147726212861125387540468940470143732435968313834815147940189124409426056561189891159693373487948858332042982150507133434768520292567638314530363739787451907569152970375004697229249889499774627304069116783725198506019542249343344061234928288063667750295841421492403287851528894159049315509304400956328476652138273695020327099628933977007605716900896711296829743615836119051337377960196433978142305861329934844681985017349688144126804233569852708690186883720893154719755173982167171153013143239855254886238835515993460095968888717693304439312271451137629048620630373268419428155667659491802079331562408968514217070977226137503390801825906432683185455906979897348400048892544579452535555275323874531680768255882535760761135459699906644261567771486042192297520946820955148005445805313165308062212790664153855417182147774536829250459269062208527294666815736398007297848304629204921970997542379576982707361769684780199936604405352081293497671817191654440264544511087442830706970014231840055009687854991867840205112019996278651364321016347157216187304215695286411236052428869972629567204682386607923230599836989031414157020733594051680090538313476554933742718035617734505878929749646922528318762508120996081959453328510504310235923499954389265786999420521577746538179041849948556094559272787315301933538164459850771265584377585261446796404580084819198618033114308071650517483911082404202157210288616387841726711603312645058816960681701102841578041075217025472296383548908475378136868312444121615401026349450971683245491246479383612780202544156769045113819112472660277147185730962696902123853715125272236940276322959479420737531145232446150752366537986888137843394127848834418814151308524592064521514384459599319241015629818892974501620700361974004901961978642189913229337796481180883160390585512831006477599836994376479520819076071218646722386385674962175195900708986703046221665603250840213994584619460186530430255239102320331042667434934771325802732280174118190834522747799384183436056540823275642841201986348926122362999659501476016119163086239174201058873773453388463108303950560047795831525367057297974906423510831618620785769629738286103084808357495835597690469866208597182884628245388789225542894959686303345800632150638317019116142685410096735677798022205029949416212383422286545196829870215390996117273403749031847329709040623845034324190164298826482022474588727965041192500028756148076401262795583833185209595275278307042263455501032693199522737091254046321317553988459626795122874690627798494723975550511852338489759364878641945113433863948949750102839358958432361620209193391743257529209854997308694310547784801758582168419941938858921781354534995404575447884865128497837450460699172623371649169563589258773216900536853103211116945796515839154419883968602863842759810281461809852234702576803560285071551787632257494558063250267926934997822051554004424473618546401739277124292419125123979790252164104951268939608389602321772686541708460965118559099600344415419244925130816156189177394647285206476196952194269745678134219720519794196310828167206320274313420721485928081334496909256615782525068043118161639549409118325488834470958001936281357255726572872153539494447809528337937350431909908637385759101890243137622827338959174213220839626956876599821901481055783251382507233303507376770834813056911348477596235852413155894015693001389530833117862755054902531433973806460736041467203748317567695854979552491106368300349641951466198683680956756787176715693949400139379834334101998964550662526345187023090446052081308132559936054842275119068250281109324607064533057549563465600497099749019927190048170724266839256181987969575885265513845471189626829769519918220361143819105492684318294977609060695429379497885557511349884727812806825111757338044803389897494268223442563744495332979354799008267880314908431512411072959270426029976110005809183406519620172584231726618103863201256058362887103491608527950274004366645667550983457093953871518830532821820751800256586571424887046533457837061129076625378966821466803915021919874708049669226819247730968585508603051156528541152277296128814768621418407854097356756603302234312410687575118715221160576686504718950128972967602848938987669221323324901980447726547307706986999346571964013621583799824719698311649910528912969211572952114442119844304325162173254603069907969739375150907830732281584962004114187971939545662061428416775476086660182092683634508999899863658929286140365482602511752701792105420684075196009494907614006493677311378698709801214724857185938382015334295806816694041962487507217100697111131215057291591561920247011421554312561835974396998727568865694924239244878679852465787124838341971108501135728439465956338853960611231326495620924858932686461192757558538260440924176119776055685987360353836123295949721197634632801886320581117953858979879490752711843528856074840788558142843138849212127571342955125550359819395601255982186961098911125491704885155778743512093242874741842501305998995947708458878279541196782865493841418314337770941041734237511559369174138125919936573020168833802564943335071853734982590835347901838369706736905613694748995832642820146723944590493563585496082210034580873798473901750685276719014587449655892602652261191914518019349904981372136897378054146020477744528342755200124093375636882597607212380124374179359678515433486589710061433827191059410375173244405581871413669301939276684424088126543165181836571589166540702459628511952298258179993381242370209448376620937908831092886787451536691417499846950430455883890512539309004310863002454067848516155513180907200524324452942013231479924587676149940028786830720539234258767536027207796148718681487154368764943077226628328775569087196460910309086831020633895611795232935047729678237971312173168452327884313542148825858083274039514648693922385489999475936601119283298145919771757631538938474521757390573989828679040462243345289901768471211467426724584530348634047867121414472299559151327259938685980591331128095500961339763739113541351175834912699840098943899310693337079697609121265032636135916264875359311847476122388781647286025490329239933519277044414584421627722690170517747017063617830431330424702676765354930822565764971435078686024791372007169104033123027885426599761646546543086071270993584530088373598202031168155882719967157452632841039889576332222978287808321356882614452679095096824386637702549387825967451281873981815057428339188473131838834785869803007228195500612189578730980228572725092389018638856854230814659052251037752451066867906624424568871428339707116461267799827554122025081205483324610909799987577853452730373490649324302429891747204099801794627569271716509349285821175477684991627217643753415975567911658031232357586816743432593495435411459072174731585912410466945184328043926315393814772258314170153476534695572528226400125316918165508108518854008259377822461266645215924804855179277985429342115111479653893606996994068817518591943391986690425183172194607767243419209484146329222103835325669396179878872050741810657359285310957715953355063825205486375030133278955077467111941106777888701248551169372554726399145239827236640648165261180756117622789039766855876792907843601272241213274564256778468743524731869656490828672806484406812457165410951493000357619219149192182117218317213295807080364301455849119754788511399218073298357554082502369364339503360419052328475748382033616392693844718563596978730589096658881878355677600342773084033137507876188046647132034460218073803960850875921138271968367136477853722965462124690546372412497509978512008574512753444059668146331196082708954360413895317809940113199379315575206670109803948754095998631162525706811659548648433297811508646076696305818863763277552176393639079331416258723122831368872846156438376385730784845780207265831337600122827173687711075390165920105450839139087762916433591144280856008184371844530713076472663978435966928617228212712830703923666133124136652101904242026410562778289036761411481367537666478664352633984939647394920599838948549977073556796657089570750724070084188820042000747806051369977433786679270337880292307134747897314907163691322686909968884646112702841989350666928066644269884628007492975528789260953996720964553846825495092369544787960197919614598707075405486788408279784509416069414755358474935353721549167315401229649821055518255560559550125802918902015734302379417512769648517204169136297512442564386797167262466354142501210895993598168139118008521966258210662746682495606487182729317047678129414759328085333087891114587263380116970044762159347483677975868202493397493180131662773649856589554652796257263442660555558131302893431269071848585532087227783079312978537423989557707933508498862833667559622375426768878211853402462417044798869118471872268709029232904019938001832527949769640341017707979259738650349902266900536122380740346365813521042763409466806444913025615457177730245915241989719779342461988627006341854930452311164862612248834416322379295030957555533811602113797311072103632165713984846446649497683550011110911130011676509114078325179231295818264238544486048248952591683014738942354972454735295074025522931577785301936540191671551590639772664561997501091961275037846471512235418601857706354738854385962759502063277305293704244705342926444856576083224173996809695415761641904427749863074925273373678565079447874147378877498088066172579304473682115455875948351341190101996867027530581909449315331244575618951709825613296108325048868664984957656332984444949386033930574922528975842401879844071370656760595670211649622941204053070930904322548530502059803394439034148914343507267649477925528059442665682490311884818901995645125072418790316687942791018778739274614527551930374450784599068960463071005541605576190049499839399209466870555070886834921052235465756901743164305241605138079529735214459299876257690143313875181435416854326505703943119242463479005776140330965694959592727863004760205546596071830048715702481373086802289176236849316296209520074753826304487031361179081046216370616308808435308775056101983563761608501074818258177566634967364496733439657584476629961460261454465370681569547876214148899635571734453692029675676119508219367009138779593542036944781607385779409000964554769930285356238436424584039686118358896365671479926997908221526998395131541171860235295266393758333088306013768295167938102834357349147252348901155888498396671010091317630203982306290978782234048769274087673948298156899297775173767249926049774821281479318384307965723596302975521560668675779708050341122329219941585719448417711342007369169186992335958112212889570976206621623086702895886644065887971148908320690251236458182028946013759671263786919669190402651498607777513066333741830686714806152918018848253073106351063266809518129711969468405271747046997931670478772583019120632129588392663445697189647148264668751629616101760760989994577371969206510860000377595884980646214998642819722131866274863097093894832822687859703554030753143154855139431707275570963133139117693275605049250646711200586635137845232171624846102170805763235114947471433181111072307949093820869703167593443021995793094221462230323997740616649308171297167095650842888742216141195068895054524836717039282115307503518492838651722005712133459083190915283881603973401664110406692019497823964781477587767108254053268898539400182789495865224300028046499783294023814733938304764472436859814171486490187110086577811042475430833388700412217406203486468060007205128161944051241050766277870396103666849247713918005307565861387040509351562121382627743806801978408573437573725249482278309858326168926663782644309285341081398842869159365603362422628393272246765830447324142487206305171170293076969030032700620571552886262303859152013896483171995820594723412627275782214764613218619048233115715706932728088815591195164889584212921231010823031207088057907816354634316975541296286293502265712197909388556261217831666123478184889199656159212350983577251668251927382813966448084186084867507914822015273319371364928111024182232901987533374846811336016500827447912283862605797569971876717705470630629746347597255888028394421506631574545366893975305285790696492837526537804285024302238553538783193764337839229850512639446545265856639151402924897921251518119231814913063309090388094828070944173460077042646552091281286693063627233270392664363339475604870474658908571600626641629676570813543057180131411592446340166227889187741616383488385153063661076341789257184204499032503386297441088407684481965090899290703399096213912991012734645871153262066279321098323816330455121018679145718102138780253434633229999743028332556560796228879243005085665017304810630208427802257240779872044882784202927694192784249462308156013158068494436734746300751316318483309183333235390158894856762190164609962884563497302222308300918854320126259024157873063303973594742104889921757335574483249444607241648896987068777159877450816853981752466245882927863711543072205982122231032829015840753271597551990056260090452199634214946930718221511865045990812935743652319195545824985752703311838958345109507850241036669225488885144082383618734982411203380668772946608334751733679473920978448402245534653869090090022321597638720450425856015025705018112349969224997478644197549453144547548073776286295909811210804690321494971289931937525914003401058518044877175214625083384532518012865964701596703539559667189744224555954853979839521482428635495493767816590983937453886314365699836289479982144312325100752088074641696406143556664071553517419733758393997223839411706605820555862569508096203124554772238721759336989865869558123701493551132401810964555403325611346599420798327339650881896463405840834511123338822987672472232322149257868520511540045230303668728431173040178202530247376953954637067435043918200047084278498829608006734160321091941063898018153777873919308302748130183661045113491971364959044502500867607620394721102887060962817667673732722891433168025946714509426837490275522401516930560146212786643408201995748908982314258744177692099078592509761220817049290367928493599546224092267933602872506944333916895215847398556727918366252261898179802002872148553478060805783841015949445287514562701485764392928911163150991722950616174043839878996407911199173001559505167839929158451868243338569364224356064950158128292027378857863706480223592945603765987721652684619361570235404288811190640184064226466895825586417499305229409814950626650589657853230733514266989260095212101381498944414838717844925725178087168489716386204735023766860601503489693203557634529475397588567380148139108764747860615816037603542856733068754678521450546579065956771209388593252029885529707666530764854727066303798365461417235456456319383991644508880759189690264540253110590309736232930184728881402029844937837969781734338206408451138524555081550717883117816743074026497857460716462721796847184401667139852080884511276823701774429133138082882147647094298866551643655719261262321838248997582952232790101503627302274602503110164118977952897260668780115390933743030879416497980670228908528714937012662170075853086039850498260438912580326881044695985213694996516036078515301635135999606067380342202407638016373937049043224821997797888030044890409911479085577815346772448459521929802269407503306647918831551534433589612222820941826474787812262621862343684908711724286574081067776089835510402297851300656611400391425716851497749739916701588064887582608180656383299913152071023838715547178674830416214562347253453460945935388737539343036228364661341419571774544423034432355376450527560492525844242758762725056731008617294902798740196337740297254751524701856808232276183536497665602659780792683013945222396155924932034331690016601485063361991733037494383164569865658227060847362223430634199037685041747624264352953316517100733534422806056705411252663833931585400331527678791344258576069400971411590153424575436882431467980218107141388763721690488372316039528565770892055644267367439405234710838392830200555886896343447275680039113385200725972273472083401510251932699139014413860107838206744956197602541910192736390002822290833183266897029981368497844559262386924471790159289405402871682812681852805012966840154311502382547146197359068563046842969739466492339638602346242663222899622796057470194707794445233253130999610344784945173363257853511183655043944342122924578235313681036610510096096097792634021074363178992224068045274450975869578792165078470399368472829494778943988710337106259407428027242685396779029310719745234111218033444913312310444938133252831058964019527697162124085977664107125586734361047909291057394498917054038246343397562266422707041209000276045895288699004112528734176307614675062403669445005092008774590559577453299507070211418634618990342557480811194433107415897627594106943699031806025725783567856851571365875802678639585994117763027073989849089590615503098481655071240020368625646732112288818184168682007950849898726466697013234010392468415164942964736070178012039701014872022787931238527921199526518491189696523242980387940260065216920995235287917837341075560633667715624901766963501758874557960220451246179566484066556794347258645433716218232375378773723077409767753569734224538378904914635049511659713868973680311429267506044961700483560493084564815688430109837212323153860892993686415761069232132369100314350977030491369783210060062923728723802636580226780143036595788511754624590572110656826962512860015996541865143085294190896114210973625455379297907251825228082118542777583281367323634868869686848512636803149729530732499794685849750110647814501368039262345133080678291160185709342308900982525120260656286621736650493921042440755739660441384460675420433699249858889244927662496528452163055071531448916314612415050248419910438312619922776979874076761406140830761849051432490116566799918202551932695630581540833530625879956731301476064755812617174467322580595045997495948187098885579876454450926412391635804916283793443625173919261359430962541701646839964717595433405071102516735050706924293603559693179025380645687619606645876862879528468383707680364873321007035360996633466927231782569596512874216061459085705096693667226199994286506369320537254740718802815769339728942641814430961578327653887297964292720621953920434191121933099927427442417030091007316623312796182797565797008498710633568870103309024365375579527256565702513453465861729265161540068116002618526983281273263779979317116147792196260334091829022730059243155689592607844904175056734121537259232721352826642992137881720980304384488593185343486379259220189106661820065963649709566581222267318895164755871195355192712872589839084921115815598284003761990344348612622222635450198686998578854568780259820935177189824397352287902920970983771805579341101400030418121197409726411585825500087222062211670280460329479086332773274670661680987602037020369119062767824970518032358800971144629658048208693534235166424626553852243567956618308093233730710393285168381291010997023169956608054446606675132182139138078364761630189251305556887075289087854309579309979652937896041805192891934303803050663876127931501546578054415678796255595283523660507326571611049896705824200608366501320533600833002640424732744774557151006604720614949569784065837103769902961220185247379195335680482758610143639689636899375477846357154143375367668112871008962433386212848606316335254788755048244061998901981087066612222613891084632676660346136958714897261135970701517074048402827067526010613260819244681374386746537884648621902323132751092761479043996124023651138721106959874222168122883152635381025969639093129235630099116808628002803919836874869327960536092202958576493429468487296843482124360542728529528005790319456004802981864598158722058111255399278070671727502289027126321942073216758168456847824710552758838178713216476291424869456740542482954282961188440902539979748638072841650104848139321446816292703726206208597654897571862943950450258221399090156428362290629892911530613824024309296440717952414881659314311777079559368099951244880050498239336290475181085407567356828126252781807823702816524624349591011072784686841936031157666047392200327263882394163113322103663990993396907405027481782796032134818796225442806028920936787495181319310248999499685067842847637134436524696879132188508890990259675778514349016401612411738325991424912707303467735832491399139094104063414593861104344934016261153102509161012943724946629458957721868314822282913841649382816562680093627221115507285889525576932667412459965667021722498240360605495851009181366799516088368423432565686431215072174483818683406318843326420726391057973195898644141910133227123099255215672865380618884157280278983868703938211255905777210558222567852876903574700857913392810997014115428174631556043049108914365445112294430323993920238664842628884751458610038096385449237564368191786336933989918617712705633216245281342897604591983704985029211893328840553296628678339483272151198346703552959067379526801759959527254912914279594196289385921497823263885031501738681973615903866069569052976853323710593319185532447264576613710262128946898290509518616460231775897540527363474856853148730387505045206162822125926936474244326985838602091129049306362910114659648314781441185577656431407420094169046941665775604581345662128578813213577025787676155358494012341524724171195823637419803379085409942447112083659918606803003250093658137047379530634392605766900151530409312173453456975670367095791582553105191997137056283586286961296092023374791202307363511867795305383311161256082556421536886986129468646300115946967334127194819124874536949700118123526718703455988931578592602178031790401207687422024545890409629388689924977531520380601685680798889993112528713146461278200825499252753731003686822787370837268171935674123401752518798901170582162581634863963450166513886329844127641982900934898792632136723731845767480600480213694212892471794762331093452279183609409943043698078334202087471665615431653898698054367708309109529406045510351173501080202943387546742627116374175715370844215767590214773327145396699834799222434525614411250912772592528844656613424340809453992040026986400112226553699024187918895594989367792363976135615922742541070245361281540096814472113319243896928187167741849649774991569173784226061932690099302321370210222921559233063320478883235339309448389327774470336154565867758871548665340265187787132261158995671463673113837531234258003259875703330787437262862513090369514245107477083627289991121302567793324900561413544363597614623770851148686409560683305694105153994573658603110164238524843688465967847727491310534900974005784541214938714378326557060899252929750599184852927382623346819149678632774056222716783685077217744593447887157727214639358035240367037232041699339032150263431860144383808669756762132214035057215248259614657973851134165890179763868768836167902387360365081470398726740731583908105356803812961952966026811090561900146375403378510358450995385107924650465901058370512392653295459495677346654325706101379789195685425569992973632174057808230402230791174344539085382522345489191901198382893683089129752639331046530218433194422474486670251589085864810456299965565639615578152945838342883645091688830484502181040480391223964066595507438198354966150858847352246507567996180334339872561254710448969987703895810056681826730369142661986537798415451932849502044086119564493260062999217936400198469456236491882506787971002465296920995751085689889841019376530204196653553653305495795016348689607510631727194027338759074428402088725491469791258606378588063561818048709077559345209833775573029748133524557844705873426850164164103012755115272514142875350237416860388358320191352908707213491306377895715020422028064080487644855465378395736670785622523227928056580274347130091547106318671296964973867945883732861970273154702336306857132789198018368249308188835238216349723926372954920407346476932185648802105687744528825685552807500289736966157473002078481166836990246116289644186120152604932576544442632266263726411666435823017800678158292534387494237101639407389989733589969945774573593461714605474727581089038955213799303569086461951532285174738235090891307418341952890928999966764074702709354710998590115009549068899704212380203139450288075237410232933180518167752681189037770277999300925856537204283513652594303403821623477684634917531953586456678772646550233967932394760326451936867552223906695916520579075555820697203860342994392018510467234387461116938726696514933435106620414585518373907986129010483570282371550276311368536520184676687844842016235210863185695422019224614039584438933894523629027894984515872128206636254799960208737472407781007593347762939269773056632679816835115560958417592026311942302016231190997476417378299382524571405778722880225551679636294554912723049723769603059749413556885227759644173428689193379089042296425893425068934043459660239548516788550718212035042727683419931396863407120434651405817607478757450020333230488661176377071135613414810528544624011435784052988576235350147131344271678082463728811966622060766558652682725638536088306737387590019001437665467333017768873850921104185654236536385029265904303187417444575975398690712007681976587283847254131686188358493483099656199982514928766740481111721910422590542275881993130532242828882672576135406803580750927442210586427848339500887107361339441165292411246162919720858253103783696153701176495365114035331482508004714916667407549185054556934770902659677309902957135754790005634991403247331405912854960951041097779204783400587920603885472981217328494247819306806906998852048808928894866398516455691260782789952482281887973335914346115175731335163256111158978427269960637311375369592295690870328240335510367025818026295080619426753769299996773262261543223268020003244781065073458777813403182773654880796866846481956141856933640485841597977140390339414345230668195474637929290014515244144092063542515801517062811502464740895152347158049907302497828152594538035107863342956862608276549996887591530544834820515321325185536574328080095679290054525475127172596720871796979318647474180493493479020888791578856554753196174641190392259233510405189648173831499192676588990633043058359571635906395751702073989846563595182196547708669304767272562569032463165961731287206751638441117258584922110316800322105760726227441483394818485658359895916419117995513665147411709491807237060231326985803377776646816692488162359967354807736640806579649496524379082787286439202496179169722042287780340532262068595473116613513746305350372835492003122278912074427931764099696467137760510632441904137465270735993733319002686363936122059980915433891269259213695517094323372075621680091602362425816935353788232414521239974466549575954574022775066848680279973606202395579100555545174571326505210547372664564828880326742965217371940295171313493716296094456279301412891299408288326410407550267768233121885898010268002047626806656475712468862581560919476097635546545390788157363467341859299115356951665910038005092171557093514791230203077214364326929165388238471285609600805733596440399191143340310094799371408938883559584673843182879046358450648429005289914695398625475946514538806193075581350875035612295937373329325255459935527708677381444960167267675848110663820417046281729247996400226415385369167790632471347972265204200348116445621748067746835509050635976007919609290584644812753901549385889034459564314448574708015096586935246753091024767253803613043074349712041541579368588879429806560074821795689733263300037150872030290079793597395986849013922965183948848977136262784196971222232160368564354421012128859886125033645440386905898442234005047884480551208927929359698806000517637436828563666684166432206031973818242161152801714372400186998405751785124306268863584594336568245578435617339210037384555739274667792684540087830430885035962856696774152757412276394591981018627718479695266486824020736816791907980756493690583534357351845185428624703108654413397096075365365348870086548588628865489919012097512839765247913433179818576830130631352124008284176034013073692227247642257042565544682224421765971316453056159966195180487578351960725481662244836704514444679040498332400124613012841854532253258226413093669745224117379783539826093719435078874947600425512398711058972731739491186439980925745054423744010736166459021977322978539611561215105336965626194417920422160734390199715964366144389033998047013863113323845470596262268794198802450025623377176624956572284394149226087815558237173378486311263815562844992909673120206177489111225767820969983249947604667884444610082333904843056052562210393054128182009342151756141260362163687560928217726487621718940831507393613268205235001329151222749845461918385563649889873951898748857568170617191555057433324335306420056013046251175703793289886235122245348321866342500949279969375922557776615469459065646820099004382969623386960101176860523415566195132625157673535090307311735372128475916980493955409636365031810601536115050090601671457784011302906774053024865003221293716928982819588870208451648552559754841120966476710915723307556494108498429632296592722357418290569499759408657920090319070449315624391705079030390409824430396574816000480638956253626586306750116542517545713940007482196444459418014739347854154285907053969327871559256758212758169778074957400866368549761181865929361393060480064489525582825126442241064332680919931949610550399420903464139159587120567734199242743387467422919823767950364167800529447848030120491462172594775337849063243482245435686732940801856404739613689547693865967545902263096052116722843470279461471297463598729963900935722322619877652862018248531416306496982187137541375819661622098428002508105723860779537860393006895823314109410659617782245523485384039035115227734132530909061504076375604691674559376211514364483755512422211683176072265075360926443867469566544947055876303814595441782079776099929821886198681967792707777834843587726838353214151053412558880561016737782903055412205624320932320454776010367664334578324641147030546747246710632345421428334649552895688387033241833842104166311803399185064892935501482911329662375236919090405462380092858389055582327631274800790130513457641642602410502045074790455096657797841800216723284837033468798517114254053476998395797054092148683999276413670036213559968098151309331917176042374657183338996280417198699215923202603899571579645742847583494804786541527714713802091700807233534856256163826224778260408438022417281433328235845290551576400615549974862912035437816993841867303192067857021935752508075827333150529844959507317287875229340342170907471304795698152086842871208067503324439856812461757705852069955527956439650811530231505939490846621128257286682597381985326832382673700997923054934438094531142418817909556516186406200712918459580347246588525747814958417284186899981442055111817362803049167173453268388017796770789160940445088736532741194282280294618595801722028956502166426495945302464887669503690061809464389908737599260197982121439962050224265932420421915980216532879624990351457147138971431864012129079703315624628810114975559324916013351520516337882880241102490030972478507350908149080895977957781706522287079563457569907409718861620655982199168506426735185554432755459440021620702201945256250198336948787603502052018014875423370547048755889896554484232819086300171000264269669309724311080337463015025023991276789882764293164996821298000701432586034875352207478089143128577828588643088152657703437280115629364454885234201408457315106201852575782970702126935491360919594738574682510370349916559891196996406210466106837271294483073211214491328308153033622383445006406727777994127741007299249488263595917214054612291117513139385524994981247162556245790027720895137554667413350923780001404544020630644298699242715933054664622763819581094738337554531844239330896641775201939193959704928284455485978388264368293261329525478415530329837074645383176892640006496728083094435745906287045571740580602025171993828638718199113521072515471175082861163924286463164773988468773368405819299086372581244693569610712666460880816190256816821503774220643997953832604621730878644385380374556770044517315803048700860750768746437824988785571742320737168431649673512034196856431466554196055426748209095521917899832859665082663542528093870874214517373394431581861631444455439163283729752558562055578310174842613000528888753212279440804729704031251794691165189797336943913343241324191965867971604692306814043104630534118122000699617614384177335012969020242228320368005040260493835896470034932183810367394111340488542501736736576982255986921782347601629233436369886145743132418161809832393104514421476754374440997510939899178766287259362096512910661521733555513539622301932303916645326571389260963367052132752204604563868403654940754894782911466216206550801417405050933070540182976553002487351536218703336529159724483155626344095222822319925142835386807701459193276126456227848549091512284066761224006357066684617630945956177357862785665491488388350819435824757788261210740297936634982885922018420759940816327280078342406026113892834620481852648456233993041535321067044153575049718780215515210535086025517336366590290739357981029685939180242177710472006756028929358161157036478684975390900379730527248510734567959777146513810620294631428656851123274226318213748865510907829540414975933557011423640112323666474989181994272673994451622848768843039740119848543870871049596832619116656397154312323645682593683017257683162000433898106173871546959199163943482204328610171631363607853025606647745654321243881598419366368338245852461250354821275044697631550980682178679127065213258008618064460819247696157038736587120707294740147788934602867991420896182469858796452180385181535049322558947687704384505253992632734073225176686938774018607825566251095453287929999847502701378313423530881490107880838416940230259800106125646229917675907949497603420767750920997001272872006118863399967742345578885717496516977271532296182806440251940701452274826830019798012671175103450937953133127395277739752359965224908308620705785230828719725582795731653093765418061371154702217016067893008164197147940311962581724118978214101998147412048850444462924533173574117344230128324402535870698520693409167145848801212320455856511661657031295885205415483005636387203394071450772658893282061836187383911236795922258828983868461241314828555714774649652385277341323594431563168198809736890862204530702315366562279082211866241329950530245565111228759728495609891200173207030591164665872978957795887817256823005320777841320450624174360552144471290953288909916979741408609827044031179307705847096813376919695926425789413120990611888628717263573294735663064430815210158689571032092684284917121032451237570319705639152744552864276447661327927784151075305048895531044920925332130854837032113457443713527610507714819381654001044921306933143790106504684726079411883888255379611460409579250313750456435587568488628544359340546071373928250833680536706280082520881573068436037056533666403310915289758665436160964708960295219165551739343628249320447783486912551144161255932204984084843337492317214730181081016837332332028902091904214782916249484500118175802107201724483093588931650772317749617982240233622362981812958794509255335018958637318790993433186534655144992683236319550550876030756129070827379261823726825681399975810991555080127538894680463007370464234345771186444849201380503422296384751068557740081830496436304307178309630289516734877820350836093510768333002869241650185793798516505612138762304954619182696738851331710585344541917353255573235648671124942952256532972917194259443455511608970336168302776192911611703880743356734945780003347727409131814923610994349221883117026054700583532866219313498325137686809787869711413308784900239483361291766135450050123550830233583141917562903075640706477361190956759612715171937469847386612396581609934877895793982966199839846727731446585592644570962072819765866345427468050887080452332097677984636870305819343868222248210725028039370348495581693047603670145636848197237678131957744060983437908195267795373271517610216240603566014603146694538174947727743667548861319820998009831241878911547224406628615654352554716673771367578681803251318541103686336740575882943488976024975262062848038445180468444523138900649852751269707751060081971177432613197537240431951763864935798996303414974493349777544951368048862683307376133961295112802040040626941898645251364713931871459588278915366811017061330811661510511675894107937520875951114248356520053888639711186012890686893838562747606033509461684573213331337552582669247101615986957771680779473713094643748566134643445349057531983764350033086554865642082077200254522291270613750620164753503250641572686742734787644177207699651544318390137610860834241449040584174213678916879755951621303669750680162172930077028804128592551849754873022874846893073757625872922508229032953364455974640863040164824013087965638340484249110095423590769818936779315362766673784494815289115474461298951320932696254973985435316311567179637757454580013150772209250692995136626251172086430558036816662444230723234546636007701102287162472894459368388078773413436806667687376720982245156219509064917177769484913088809809041724114877146898702499647353205892890162251596471562785885611849524982126861018693735069720218512528396364413711776824068497889567339734492790136569982111144969287256615440267592378762619277241302266532982945573619096126288205067311736572088108913571357325568234658835134809332078074023340103999300178148080934659185821734032109756021065281930812178128628107648316533263137199373454354234087656749742891276743140804235651493184063334310612185073262865432515023606572666390289363809314313760216637228849912975585042751727245745810706107041340475506426948152241579096073806862987806754607724479722616274956966707013405479619080134159494411640098223739598002007681607266833023180117979885016849739568059437536337830000280635699067682228997352006138636483032610693552053904734201428737391085117169372535696612500748666879400404064692960628683706251347475619425730783465081537211912080245397272801927149208468705486411358097343260202173976445785428769438448381555775606962761531932221337142968379167836238122403093918155378057671784627574863941066714780048675737122589089801750534292704284175624852671459994005091290430783383607813760507076251436357514335954518857758757277901283379753177815726317691116696099318293126226513240875157866507317804628262339028206843148789718972920793593311503605206691332106490083294606282218126087959848075882790581711654204341819787116443767748728777870766324961759914891349660082076874502275058897354742811926404616755462639485293348108915867004542373933969000536166337481616612751286844135233843270399108487742332441117406828638221428896199053236048305788593177838503482419511789908932215338124394901330517130107742008953960607731203006151350305351746181866748385932598129951873665208900251165313192129824154127004147328868214432552274438486529327849769780871362450547622158000193194951211031418479910297321442321028099301651161008101051169418921383950469401282520168416562679226060757795255179486435497203701880812802159524265454034984521867256487748109475493515401383062851738253478449969350586299389545211838705545041196965785933327696798127531936429465685605639363438499204203394557283089981372726796282868753252899357913586194363393692242349909678872812448793250052899858934405489194754439624262960113395538305282313866199283197602108499141976986401804522052165695749104738220782508086644909320734615556244854094643271299669659792440152506080707774640886058448391451738322411870222106559803493908631863925118312931509226995090760233811741673658482365484496736305732573318198049426519684964198454948070597728661422105191854342097011576565613804810162029309255244094491475744626023118796904599496992137948688884173941661509260634481494987358656114810661240053028368879614063282568385777081612245428523092155643196365168461450052891986145303597130772099334551927668554234237609259791323033778165276901621974677639604421380756889837605200615623376239557492276315012233275060671842211777444886500901178365209648092205086788865730108552264328745882871405117575945011986406728547507697582780545591380324495885395298452206136981635724833368004686263322764136973595798024723414359502838681708977033042836792586349889115850235899378619955570313088909724605685673587541014110968415084817751805937593151294211034622547001964768785766506850218726021490123805301746383100534386086461764234126083971786298633398534292044805049910902390675148205975374537579958380953919804455048007440190879269984754833736251083947217839046222980182827044283534727474797443119336642428322122488738744906305986488199517175391611839250854726487031565266545021809221500236755577128008999874098297610640499973064885119898885748051137673415147432167209295858158356669547017158957807012520578659832933899991609193757371916819723727050658652002388772960788502713448149697228651475535569399432176284570096387809231926100873749408240573680536818137184648073921645234560079265719778700159785770502695017719168950715824906624613966671379791252663478798861378756018838293395052626511077278815621663055322843289194769748145336364257775573045677144748086016450426768391572016128771383326078773827156713118766112829229128689547986107302673005113816298370141715648025855597251999032535703094894367160341233307627395170393228666413479618108024038582948670517953492447904218525947696134990654421493238186084617776896246292531758869519291108119269392529942899044094093928312690983037008375120984819423134635113239215707687038972705095304624769402330822276077154252390848120750289605955413383007036089192126397282669940044093993017992669772451169373184434769280365776855716864511148640215282882255568924857273540461627268980629969569630191126975347550994421140297161937745040101690021848144640421040501020011058771320954387170082343988006238736378528478204392020317241702526842764443486643475185673506655536317559472574547122870130582302137702626150355428208412037023535056402947722544931102213426966648569665008463548269603506005459799011763578069335650511922638689308932759047556358613342084783792811882283039832072706056929897296556669347144214531341931033552814236365952031218541107912997647422019035934781072887341324741953920941579280857772500522949944610935117743647534374060637538933273860002048142698261037564784238139470414271285392502484226353749776313493665577003309988382995024268703143653002435727809709508435760547851720907655458105216401676121515618851282951640371423009457151222312035949174372925702731673363015630967974519592720454879516768893980134570045776678779616041531146183489967406110767021148140128496691700234616142208969145735698881082571502134875143845355383016033350998280851545336118666916672337428132764222971262763057767699827572235780596902818252263346082722797865765409897255692696000187521223987804886627758433251626961667243667822218517290192713173563933050155080606494994155218666834057204043672610933139351832650885609056942779351901377722986130216668851965244885052241545333991678950515343136697076533005187020836803459303386860801931796095073714813382358442807522715766203512192095384907506388283776852717593390962542931459382790706918584489635171376198090644197884961134782116928119993085719630807861006233842928297308897243081955064144024091511639721262724283416190227149722379126720002456826144455305660001577816343875329202533821729787468165937214790665002468167844359812348453388824445587136838472047945514077798694809762622544460886162542447890795047631752240272352038710119103894216169351348722835708951869570315392649461624006289848970978928978435922966609883766269036602424083572281631238408129568931146318906555016483098597326742550060203373059074472405880821034375047975001091056625366860040731229165547492169088883355242764311081809792978660247977493470434260710824182451367065322858697216776021368274663884456010412391280870084601491375760605602106469689359762629394714768802034803384220319728733093306890920125475942718171346682596189188153818658265285800206000326845993624563433392710667424183704997776957997328593468848551647107089156709757533036200041300016800845754090265263495442861006682251448810362343378535597367766650351652368952116398298284039833810919159243812928763324300509546209370123828829593473703565469671649667436412989871216537477166135029989101078913883669053667406097369204186991188235704577992966204146735225115085581466677207380582725979090293337352796445288529599565314390390135352939050983910306053998502773728438144720391452125328828831371205865621477425260699811501400537218820957691996485518951197765424262643229526263529425959664755013579935178295023952178202152055456737628458379118317897912085174212077273134927000732111057798841361513870746679247089776256474477044590537770100340045697330130133663270910758928449686290891479725690660458905024003067757380853930985804999036360229172735049853801077845371501435395528589758628347331346578309602387530724653143013594167345199502149813559974688876164295288876094834912899720859738145949711923556821941968687645476293966235113463851339570539582395032924621043083445127935734020007381829615098528061160791684184642608533974533318924864778343158255582063296668589096028468471693122597437906621673049175288077996446528891483499223119676146231135493784879330985676737240206479220101753959516769037321132164813940766989596770730806889079154533362645970628502217083978173515096066760318267931263549125700663561808539806593272593851870290344764732864932699781590059010287055321332126683557915326043889878690292190158947917329259540910839256291747161935995075852235585260018534574897320845787173861630134072922321484545471074877757990709525216313044711962330312378490499314672555360691154048977985294215750133286062273768764644077220028150407021222608899724615386604859118496752464833539883003717377615870358195409445300388732155930742211826186173388705120423935936353080626046533106122546036073327995634977503728705891056503094995257824354399554470532350926896511881601089691340531871180671053796850362789651312341657880713605844775937065787638975757953072720235656820184181289420986846278053654282717541903485701502096905757226442217200273870613008273489813523938601279459466468097470460849077551257298161566775067178960427947566917034139624136115624495518248418867153507742147767211860090368745930703980045289637547397363793910915141402291786539657725886615024640848656531965540633401915187600063028479228052129097162505408806983606268452019614439578014846033589715743403430951245667627552403709136390357874266682662897390268977760738220801638737896596787562421421517582917934419412864700059858302724347319513806158220321997664341912982962717219236812363517098032427926957189473758463280100827387625417166184349881796316398952359132693538140388434443891015776139785295897977141686500411588689958184160514436132334429559511012009265933113626248870529634748188229407845174231711867118572798422368802256701165249619314883697955342206646551993844164263386403561239958138773883387978748848494747462647050123249280992277287097910013158530963069281585536788927891137832096255595216688832224985409843607843329304412398179706403632127176177208157301189072444711513915011487615418367407431288588285544740900390722992098658429342946193223434057011011266535383685700252235116701916395591533155432804340915773404463867545235334152068133514340431499424844130421255240689558692252144504666037101268103732042797421219080493194901069892179938790994772973198809803510599936383962308166850432153800954156623290630326515122239472322367870882674442050514911893679056479693952928870384635989353908126543052735942915858389043936710988634899257023378211498169862918414790083001385684458848229649951705724043882035123327984323432987951796718362903573683989890918360618236496937422528576700823233130840282368290141396426036276739278424290470457029350691973501638902580597355215024037832054688203050239285202455128637758381591528355138802231798388818215399087692553231056835493159719109285771645290186021133943452190620972458475848128245739987112148982877955092806426713504451424579794988327863671270246484715805994994832635446890646675981041955641918962552086107258526089649982483399295055782223167893366243545838007509676753887620950379451115270286042909414061135359798768833814182082786908365543219509104594904539102742145974384310598841004645606465150948543994976512708878337907817875909979858938044365438415156813897146757644082088259529887942233368233583496158900773614070058352011964691994221231018081143113645238734684038013866023749835097695624488634157667478154478334434605079682470102918279045227644266131209065611491062194465563002941375201658067932888502373989934069217062460591535844682071131957399310973336395292086988191336060151978850900496890737479693966066110164478722603890898420605783077224800878836478455753021543876030268332533209152431234006349828552711374249994899247995828000648942303392645336711234317548533070761132052694775646529393343879538516896741544234713212418093087566219162541048065455059515217304748683217631321226454710777246839459969553204558843519619391544291870350117746254622757982638371924119382563532744912370677660650080352246938886712738656871564743696141521364094170302198151396154179539875209520123278315976269870082414950676393058424309952730801363824542230376277099919885155971680620675377138303353764420676888453393680310653704251402173822301657803255678073752598998910128063256403478852922483500811544434374137313718575262211929270241398248573986783465306241478077334531969665640674251001456707517132649885199409633328125976977851590666814959116254563497785841630156046581320117843213137890152985926949888642969174022504747677679431915736926398827678871219634980657235138352791402829783502229979397931689605253147125731720953057228595301565262482293297549476430520300569075358398053650474955395597180715577539202261997977468261058111080848027861025167154931659826665305548368258607733797850797198538509758141843266426293758405348756668530567376395132030403208811679939683100716877743440655051631137792415850284686688244558712975165736685339058727564451675201058089282538795558347800022116051741513546525841044117895798379801351335516170231740220137675584822721597965019411518538535019768174129644256134100810348269160422446283116228447828341955119318235731175017870379624442922143545610082068357099104857744987963836324795743597968275784820882665584465841657138421996801437640137027330106669647739517335835195334627468619115524550922030250351640320532049571541996944694173089161886360252473240469151505286870458728220084171299860534363985945274178561953558808319489083426981547147767892530850267217924616131660991230685217689212968496451449749584417967360487066117932324729678490571782372593846569990606146683805332005350180331919872898617743702163962076810643278483911411776555756612063939191646285202772079928993904276165356218648013875900234600865296858079711102610584439884451552244795854264986902242932567780430147070493765683831793660197204920358509515347001991495184518930275472707791820941575846585440068248162841204417214826462850091961074067365109913471913531047695481107523806587120563713760132830145410587972709296866667878709776245865984715877756772486690852872622870216108167243978730022804969746660488094334450220928506139500269942552215811978503572288976083207193878430449041374332948823076042129622340795326679141008875431356645645494333507126002752410948152050829010510929487002922825831513329431058484539803389322285986613666795653097873688812370420581999669449370569407602366732426564956235279804959465204005043172956696369502596841532943424165609414926175409460886122894874248980856920346724154229166719884610978668610146136422672090625664045644562367215617511485070142721647720211798191329659500738138645165014086668495535531759837551080554875409076033364775881643812680572529542127478492021492008331845286869102882665271488972224436625044457383611558271247335697852878306157889275515220811833069295764961658710214162995567905443497477711000128946165561672913045729462192340190385705098561895561400389209795627148779279616353266001877978910143857116244438948569699610518868581678760248297138845000822277037744338660413415148476556676253289626615382273850941108428717081925022947862965515971193688621064039345787989937816954500035949991517472179494992815350324462041144269781110822265977664025228895784879395992410794699710148829436978364281376627997627478296440749413669005354972859128079393662377308704393149507226755805487669647927597758551965178642124273385519599126901219607049087390927584261301704986273109335520311517976369902976478535244712177335426806978560596092835198671689597045344059724292404786237292770827215203113693437042263698738082447065839263657374231378707952157152156341334260641276892663915534007697578497239742271934902561500040524225205234608738847005601132197318990890832995625117958518130412240655958804946354609420203887284099970159673584337272927020092232453399516346683019619271403533821614443965725118158435450609419781249560571235443800924628658842985780137853731489632653319816493804360973735473548867218006718458163406439917107922591852713909830567623102962266913959874328999167140049912154710005906559154211463790592245720307401586862242701214210844704014939236219135757121139354075623979879031640508610214779911573979145762498266027009437360044469953069854675252308037124648908166714668499874097786077273667604809594690478238889396244976601662459502384077860384337214410477168646770735303158932909270484990865479988325023547092667056574165828236392987254186207001318406546171722072949479088541190170533325035835701961279622067868449630567638315850218869036011284623855921046448970876224053248538987808698624163810732984522926408469804903611907997935880902841029187483355713910586622797807492411979538450828444924842567614317095528015455833673190369868928132556018921350704398908591233811429849015697454114023664307932288921177891197651498621536898271377655615879293785458566795561760605461598101382427578506333298739652570638407818064273688710502710926161180172198464614898447506792003643019993115036010968458012343208428432885035966434435345641799000873341021970962098652773201296702279827322624465393507928341492570168376042249823081710991142841186209550686817981938557643472658332068348244629669715680420922707785280662511234887578231778135481135044408665296655258607930321077049612464812299767614520479876645950200411143148576008201499609871959673240610532391165555228484131265761319376143084524738283210928662640677739473716226915196655334124318067942377518410742930800757109140221949528273056623023572013712322565033794107876500283402269980015882784894341064118250719454063072914088131133982329125357541910050255156690969488381949220603134516509279159184063524246677420292796481604964256676372947052782183233954354014560176302608637874643251281773897689363911490011943204743798094753113221201821049336600214370800308467825851453051952284715858494307425830878798613553718736182300655442526030061198794547992849367928104216126139355194066825678458076442709639619778156924363899444065453100078561507236325518923974560059176748168549093045674128114827986432523363060997684068748074782065137270137642350469902238376608321844932458650634947847178906783365789508308557438741254955963889051999324887247650268999727546089364470532253184993109834443735243051344228309656345497072180998558906176510369662762105749172544576399131349843531326454602290573945907832078669426185858675487123301745975816849009287469719262307284259697899797120991413295521646461893340801014303149914752725073895766094377814285749127779061661124956562907981659551979018292107448979925089564627491279324653152187378274544503080745640609440530616440634266099649024478394848644952441092454543371719542693464695477084357214514089048863599250529099258354317951103789833201402851764098211023795108549942615655481739705713188428720740417138350350596796743626185582783169775978224963084311721174313862033207617444735439955039915294603673527327030604881097111365514585228684147533407215869104909271637642893929457421972499654019862729473243515893663661227003171688712480989999546429209829538871959696052714722784977294746317770278205233004494800087496135850618271503849361066869425993397844342141175320954057290017964467582857227981284081872019902127071783340934253128919217603732229525966035216098898577870554938037221383374065281265140121723843813054971267031662460584534614361088018089285121324563050778578535695168493918604794803010203825273506286105394936776839937792643256100219402751042644656104497007699054462761214397474875809844289111943702750710354766780633026115852612337495891622724467973565024390181555708916841707631703599287142575362264742876015093697154698689252394741743561322127276752898998060921776278525897147105564120351892556804618422263425561937830839184460631088927076854480646649362304323772430693465913101764360551638251291964284258684925915453017244756935985989084746568148949819322530185762894708936262178148852657860351539169396844228324411173548386659925469697378074212308315551401272174081951318977118988906184288948622098910325101094269297372602604995250601417367775680690794338814936631498087276879364757816224859882798128746248933403763416049494624569601140794011664386106259747788651677872669359738548016286262216254415392850147461535382733423690815203945094090747526615414961067268893218896813987878779109872875777164977888715910950806774778818118620252643165836447722122386217708894777181859577562014682180044508528386638760011681565664008819226467327570948101871480116927837528192573194473973562701735405403428900213820162700705982579385326343918989647110609297029769959577068410897096939707607484534717117850542019259689001680596257409917820711283810802335956493126270145210090602634852210837943147190490990201808840693920604466471384586335305270824736456441481615646975987205583580241926758504866556570862103978098105248992375411379561275644648480921083540145048183710015188558894717142756812953236009303236027072852106570269175943292528137139287079536086026724067516878189691713582506927114911155185663450205648500166671547536676405254764496858313858066691259507769373074102525771104489048285620291293286842552557787911936258587481810277851152951087297542026777552112739340468201298728307695699855230818324442153054686236004959395952507087300785710033464496058003790874623296622889983716064128711055976576152302832435900543321460647774210553565976382245469106971659760934083197479907513614189463373633571679569700385117789547092241781788827371289754657495947614698427358786699380112997197634438746251073238255400525894704153457091752235283908799874488491009680933966918546219533900638007483256425471738843221207938535329888790345644391891778056286383248479000501803141157450231939104652615696394796506983081656787985648019574058652712909220578232073936854408063974113595949811684280919534793656840497746919675773854754118217715320304021866898094999065754932029463846562054479021163016926736692289738199767124276476900070783678454527450255125147331729109869038190879005122531731894877264751949544743330119335098796178171212716215061336939097406022890650414137564025020902599649561776447755889998020991288435454968124956720658839726714322096638245894848399645601699221180185477955121473977594630385963331432142901264704291894701390670153869907823643112487193969963225287745632924110058314547959068745413717230748256195856124857955908449704550851179533762532854327767348578725533096298391757268331593563472088071365919315121435277920679352633512804808368853161146290267923437820087818374212436279750336790017458726092798195428938543309755562172885100009668684657443364161239441957537511117052100683784302596093960904221041186851110643234585105929666089673725119089253542675530519916410042716072507589645775545194378973804405976092799656099444312653035335342886434849387646971025108431277851182389333609329448421353017709203880717534772175282161756931681707830954720859128164879831711712521815347042794099079060431654930677083482899995380440102945562694555023218535428676086057468930851745761974112491556185388320589181967338687340541844489031417428865001481650888473858471694412124690940167072657664900800054484016053335753274603862816799103524353947594393070913886682086759253039659807756189196217642478972375246022910532687050190253364314324063544879631699759766405252285503754017635386184162058719733692881669497712233923002682251093651032187850601337924981301211289996111839547729374417841864036379230620622787518402296046314635227778293442583404714849360348370294172734182850797049532394939865825504685610233831326639348368474739550732486025645131386327366357942408879211407797787343212247228421309013712650490525672473306356970467672918636823241182448354260309286744552530789678128317028949942304481738251545525674926491012816980074632073440684006343211950260715656814162566314907511486103442754830606432105792159675155753115218105339951569427262847849320575028722916548628928643548917435439180321236981813425089974945401697065069383903679858088851785696902211759763325293710538559506051090725265705724085388798179875226496066967848600550382683762388368414147628055266710032688808391225489468293907690622738766912295882408667909196558735849335198435819164764727117736808229967545523026613612174828475712777938798107774304516146905824691965124113008532847230151426182611205696113373778857400456229130875133281466502338403882124626660205782512602851997767447392432269153549034039934998590271327938604314646200971711497345961953246603647256497917707396534397839997134956803335784652021000238539387693855448514225977865545424712783538189393232552794428098662652973239170986110431226495318217971151539548888288982207499104351035135691892717893106535161530928745901414829228343562836502189021652330529731040693883354362788768206145529117332074280071740237885193887462269233623996040974779703745450305190699055443821185278536302740015868281715283864175375385344983708275861179807430451792984234991150885410883519469122653444233840334856328646209099589265683810574331703278882622611099545756680877660574857313822883633893746825732869994069538687438291417162864538348064868705350780033766977671379275577065460443888175423360168805549527248766090493390970878444826557920313027549808719552038386707527729701955780345384424895483658600529540215831769022571149408622601816240185943242942669209563812024182411246942462387331549958664568267868868745097156097776955781213650541826223207360552790553484020991317613462355207574945926086207920608410888559543116220495838523406517800334761435945550507491307909674661225201116379958491852850731880439055673730377668611641236756900422247879021683124785766538107953552394727391176056253465923280329466139852410131914245013076691672178249357435083841647073098873743185286122820945155389575228965634199340305739998134189717742675203190300226171216440181248107706080211398309198330077641993772193185401567480895821400020192764967342201796381168922742262529739264252208103974311532601422772236864971251610660496258185778901885629668300292420070196948403919756069589616448906627427419470419656666319375238911081921034848881047535168850577988017979717783014000088155657314290940227613945471764649432986602093361310624088371791583012339854051158129976423679232289137323569393910116884859752877627715924762157986160297785987690557657178707767409039077391118839871453175993100906266276317562678286398846901910878723699787069280275090674220106410024350425917398888583991576464472828206114521825840342848433809944384148227739578655831044721204947044489117773355601163188541235196298790622543102443624452060801641982726540100338868545040462223761293782977082964525498794770023723449495273166378460318739863212963039554598166826027389671988198585623720203025542476734163454014795529783504186319666685143718873451834704419561558961242726943212258352581343249095951405818014229674120628673776063078733015160273220273606731384919741321080654231723897337726377881841300708752680732015854081838483986423935967037493557148654406429342926905015691240575913414049389916862731477470433828377548868908689862697515729549388067111288261097550112594851044499751516638128782730127925771364853702109699032372822286182141649844190216247411410864881863924210060287003901476647910642120451818996335473327072854254793763024453920017832962685637009782546907045718847011017601931739924866494009285114778828661617309348810198877086415044573115561890028180981801586740382605175904798165473008689988028763826924138111601472984641197053389896438546069571600850062444507795817192549071472441458147328729933735004914633045364064649027312490702153308335825821901340290977995820079558881151453383496380841448076400539213856853768179651248325914473320202340062603419592322006882234544276156393193710787362507503542987567976495153132251845815985029141561941239169476328109755293800434081041597952429085219363797616334206566266120752270564680617439893416499362034805199438669455246753184313755760924049392578803032294547307811363426496338214073984899110180375018013635289409015228676021648452011196128178076684878838898659425270293771334069030055488915946597182293279630398098497985797225251404914034745096986586082232616268961943934765946193454363550737048876966552044676826664661202110920055308746445643163220872055623683637435197448292270307297359238746563637653501602074319585570215479893051462338483156974699577705946203961059780156391505672193747325345021996414930621549572230722507187108136691789996544723766220835964385638517834621747614036677700771247013815180151924995795904792975055976018335628802564938573101589572597106225796163968739867209614247065642089886455940778833802521840950029472256573910675496613239009406849525920565144275562032747985117255506370481102820217253192008791124308917537452870547491393440759139824603561962416046400873170605682973257501952251522203389482075448954783503821803415176007060423078213976075855112795868937471792115751280733587254166852608414187469648465887562834947970005153452174326322577798739596002184701221740491106322653405571607982260937918461448846741366749255081535485001208698054383647679417011014252921723969156448577635109771506083570380171340286683417089677402803263595474878812542849510402835730548528558000145761165609477236737016827409466568525219688140175843761485435445581020333983774549016707541806741185523744724571935397486137679877493739339716821490173696700707389941814484833023542439246567927466119342570431970081715296418984789658553909468047241014533403157411888029972213578278539410284017670296807895004324327021073644857125232475446595840213572057676496408279399840690857050703231388634618936300554559115292633864915852489112379045271821117220034046668352457908821162086514130660441408965755639079724970068565904661420382590453412869640473344689964031444663544717806778172025242992143852548050453918475790509662043009188197771734664613476622119648023045768867612726572629840619452420660377366019796919337412586807696944537949765756950309830575532643518792546732232617029784202337327634909733205409629869315245290440394452458715896319247283528282642273916146342069540316467163344192369905711677259439538008571411061494206716690005491824587363478587793293044150363082784405099633808750686698204412177026881287650017404951875952561875299151551096682499872979269191696822017422812726886318013483552799615075398687519966496525090933438516367785805876136020739336301349800732475461503853279035388785907463477763423069929024797043409661028611322162018245444015982986682869858678845131992116789768163555130858407628348022029760884670018568317840497669480325217335855328840875126258912994606104314159306822028417598643730462449864618604649632918992455134455341659296387414966692850891901340159931169781514914905312402603147611183001270407436670385741987950797533682173242705900058389561549736599382929579795226757874848229709934829084055539955085592911166021725537469456254728609309814940018212818255261750886020544417406641833767843445310707829748156616374762622620128555632040083039384251404589818254596425004982835220515002032178296032611898091392136917703165993630754136806307543085057913318926534787279491307027995127330660124270033200507306735745044336195783065037299494332783264871729980088342275098366319283539565737671405063264026713466911587897320682906727403387370183906428732647631260971718973258961567956584610895593726470930116795451824752570362391031204194444953709440585732525745314217044025977819521308565001852699641569796771833362063645745192716840944878962803470766504637832984072748402538130395859181323662133114037352699538239454093029397099447158984581038394392602015849541245795694996818923448370676484198435518921960743064685574869529865667584512942205114782253104150743292625587040792584331381496772010622290575498655762664039974856424917083055125860643493979574446332246821326556066773958714139949632752093114347078012785118514524765432542559918496131306584120015947395201714139285650052333491455455422666895646492581191066959391170749155248630748232989783605976872337009720141803578492588379768972139209951112779975439849995800504444752709598361145911641523985054273149229142661297624634921741363467138104613745085212168478539289097413746684734522620074045534327226588947789268690886482838417944490397039650471583439000892274565437386197318105870031402973741315556981086160217089947860269749487309730629957940176022664053110161113451250057170414333783373585847087551136436803753896278901264596940347648433835574375930901337371798276023574371849630100009300285958094040569726349452276370306632602390990140689634436650956813213199959975327871643417578973193906734197721800004787469650661511479332675010745082068882240927680641117899714382476220482683590868939580405022694012816302351329231136664931909880628270620822868289726701926960236264192860282144766700228996433210732045590751809847992659742592930138923446182030317985536263172416533336156562174788111145983046642144628006147693857591320995001985803741218368382527760898454674563250604155525259246325572550771893187293289887870885960310911977052867505270973669609872944506344529888337928646854604819943354237008613994586771938755794828359528329370150867356877132980444535172209606616732994569816876155592007341369621619929429477593610071304556782415294689717527842175332148669744056121043905348637280995194860275791028452344155783235733279505831444447090596499602689895680318277561159178003652922841224653083794938466318604829702046618538498077160793848567196703887955217887452189820845275997943622963616362190952973599363432800655740043628887671558953549727509601806073114241885160598707813937664456048246870245320082441508812239749134007192391277777123871680402638565579932134377542002809073613589962283546221852823725107866538889472955565841917296483686070216711666571257949511054555099078078073579718980325584860346545044398497405254565939934729012842287178254811863074632803170981442304090556364706516719455320988463571129541102495394346053343348415489306517033330238844171778963846741313932780621286257073454768890621977930216648056255632596964606964635562476882485467999261409791139980091089846982608106558978629947578446239400396023803921488966170076299782497922247206023944806358185697702732252317516347242678817048849604702097515026401908310298879907818043810842962325399908045587893943807175991878697156249566468961964018529637828194688089337590755369427042125892719596750754869943310457644367931278249372557162403009413744760121469433056639948158066517043671952544691976356825490433983567616257396325670009820798468546419365817391553582753637021760824910488312341408072454746277786437576554916133001498253330816527778092606956404283473149919524699155046534097262058070542167129021763381499161015131248064883276717628909287374244737756027284817929527763201085308139355241392850096306030128208232707775710010432017814260359160110113582566126631793383469498451127652189547877418232731672264071518303163109723719111094902046330198811427999065155448527088284568087391097358917728078797200225453664304611438904625274080570590410902912086042726135400284926862930364280934300150213981491597322677674109288215605651541584701565924500337562119081643935059891985444687774532416842347005784809242339219272519793356544546495110117995750257186824406614761457213898935540023180645650496959428935948668554274599489605396446960705380674217231210906211204086451425630846075286313486304602065293580142283753355071568080526914966777336337375283079179467934648949553978369419507569887808603423786915089347842674230673007707393269324946254084616135641809070988356829463833596973074777971919081998863670561469134001782668485395078820415546963291530823165163432384059358011248655923559244220346138280665361741229800642452651824714027686572016073660029522805508403494308575862738564163890835181431643545489245971184530414302324139881155002029729112747600240263246120486186068929145219064421143988338825051923266076518905651606487269176999954744441724764981978179902934090962261865989115712124554758609018977591108223233978703244643431861382342939545854350730720107645824310997032146317191907690282912867567709326083884057659889867832236661733517641917002881083886974729973630440645182430968963253391603704257803374702894103816967776329117212447357907051231793342398674493594800577004820599814121360434189175691237906656295627118382920288114306052225725221771901541317556349249512528855813805818019824143095426418470600250372024770990508863647783373583371117954782062064767601098722046496322245129032243748766947552295078042987530166544368273129547132878198538310737704509775086773638051312712960867757285121060650852498456249455248355724183209783492592486132844179967399624591514798779830960318512678064841032335766468156266662152429450823504682101941963174730589066141235775890892441344456924591019076200837767640316920879994615792192788606361952337497666720279812345857606744374486696918568734068109298246995108065057504466229811166961392065947337923111713328083821043535021592083789777333721304928492422460952164131543144679129126806810095283805913429209572212483036049098503538458158074826329990136639096421147276035205254957087031889159248846870410066901923051499162486011160721702229807723734859697487246015771981582471827757605929064198085945180823520508862612941465366807116945256628453960171750435597360854751348039596246766276724292781972243166428462163297477580979738835677516153370731625183823286500552239059543106568218299343690139580954719105006064583391480362875853347907682021029315978570074448138380969584790099697314699529985473595610244494761137603204502806036523266789713767505174335356191481467951749636925854404343823320534122264827526956381805967409948311530500981482813895847553881800088268390651522496453287548956601064778289503644946154216053145260260209872313592435393014516885654939700305355019907759186434566478692406962168059787774775367162464670205257489762043463601770902697729685337639533941900657924805608963390122548045473366042252067313655536848495653327379209464035702858197678346067065857807975042009786790513657937154487819543614257447217145103473663896038724876602864654176983242477316046630526166652557020102376329027135343232867280250792694734544202232755732304197131047076284587276692744972778848142790231242182303925154101011161723895255792211156390724363225118251539355790085259042640310230228461924726683383987096334182823022901658179774937122980715357785552292110361601873649575439913825010917171529193313792673292617606617104021005097934385458434926254063130368150186767986611615614598875695300934678340094379168220171849899176960727058513271111437836819054018928225258423370072982171015109919040153430218063416930040268182204223221095795112862497138386820343631285291189168489907763252648712503452019978555868697720543220429595241219369290263287995633286243768383466114372137734824726838785937993286684027484178634662129069733026497464248121375303449853335120766202290228371727173146740737066422360957339863855304843427732114146522444556095897577152515647181466512238170476320977482664134299473152752217312830733443274837795739735589423376218682403367602940573402046091893225199044037784716488389757360585995492396859860576010524938148428003700259383871551889896349712597343939999600230451019490217536030767115755936616001035359447902240440574278854928315352234891309732450361497949452242316740879832859899582247238467407230991510513123112581070590292946730583704343379223886315337281951207996851874235519043547219279008280414447272702955709334027065574226915328754399981091947147488429706719481296620690457830625085475629987976841655033484281843815496155777402153576065622777056793176222425366255185072421640274581934295478543202974947836790284838847059094960513043664858847358269538702270172283811761648175033389249602074111889644763490101671205083640993445082559638270368574250938856141376259328732063981720684872874882675129719527734075196448490398263588302917683274256236313522881505404873058059850014934150738439423714598730415540765810090778569362821163457629727480981402769055878666005432889309938002675879669155664220857987020048025503764383769521825235068597104788173687612426611366970784900221289081671809679583116056383157760649253045155513539712107040620508393436911578923814582007787511868360815959699107964544055234256619471714595663231598120392126584850796777628036652724134669404083013672719000491663492758669808238313825827203333865213619370003723134506956448482376651181670595247039564996322454370262563096581696762796694955047618640604099858057323324482603399536267625864080489061176956157185718702172128498234666229443272275639733002152062729396584481598327838394388452818754840052364159284490183843334996848310594035102656026616309850189146406249050235658099984593835959203306453939743137762620158294690950408817214492982631028076835866121624085407229633907531674513732879514815869623077366544715343160961807319919486694866842873474160551677555650572560510505390715589469354741428306837046158558540949192872303177066535728220739534860375832437530685559685645869435107078373469769332955775760369617187340221260175351706521751044913933817993475382928890134890980384193926844684758767628597032073878055155243770472510154521149082987904708483008156697993400291057990446852600701927994580897460639853908151469590074508769801849611035856901150406165400219928520844349323263155297302871133940339250247815761209983906620207097309034893541423468442290351591387271863302794399125793521353025452651503054402711209240251321035979035603771749985243856996038786394386793875597869847716461068577065057657153600289086135917428190145786207618117021621766803201693391950537613994314284361336120294785937407352269298434980480679015740554921784825841010624589569084645179057673500611587922659213032925900871437855064927656515218241510649690152141568462604184424147327543005332653200083865718284703489268163842116353161072022396960496935445866129284800722928647122389983802628452057765826530879643658033412278320909265596460539927125954917758549493449281541193903922372077357905670398383868191656874418830624004538454848595308629630113386001820558510435521318358172720097519257921352296193789746489185155081228202368107228886763804680638885274473564300654589668251429344075729889460391327264733229350762857150939149542289248460585125584773441227755894296487418291264174660045756137773351784722656874910366580896596625604064986978039205480167764480434151050356739618384834118282134646224972223364949974621393334594240557077415493290101045323371309874287470458961282417356885339186040280934962818209470793668800243079851011021129325618400253111065022685459880005810572532947296927703672675135261098142476736197064429857837035310234516754498298322648424365133734851128133245742434840288203415996509924482448991468995630214061668186924631745285427888226890531088415364038218056967140381729511513149547266667028992489647271131207502841740903025997475152199218297180434459818517591345191453978791591414096756461265844520334253695552860609085430364976334504948420666856003201329256655817339103466794466195562194365200257620952582473166039393252401013852271055518101133262405845093896482301423650464754091485119789547534141991429676573602771027106213051328139985500123985744161302216826174930248939609555657233196532473820485278714554201763278107068229861378692812296708915927852510971586924547533281150904278681285243499069489339277730231978440864789912948895361411363717531413145063763670026357585904558259171564019534083726044614341193877149376990971608906668488494574813325680698472310821484151360517043573431991131948776305546119002517386759271800075433804396439085877994647697188629132877375852965541553332823796103625308511398068364412379542682936838013732866099918444280275503268701162413846763214893257990145082258392816476903911265281901362487590670188480338322828025287644208647197411955069618222016275721631356776632015521163105803355981913613265706964773690151273496026779987053045062402800503280426441665395645162444163624493150571496449742808502994847100261461215428636498244032876285510244456935468891427200208548184624569127131260310233505492953847377828397500096987228131661776400710082212043061833254664568664650891968337566196762368754977961878927898779817725817324246019017523102512669384240927878066353879798877539248290721645528933904625297068579563162739596576994616275873665693726918136194116679814938831583346509170704760012048728936209884644059728530363903940179273394236528402186357716396431543282465658871342170895577282892123819011807046635113862377109899746228130403613659711314109530717106045549055887962289807151798650371983443307328304955700555131946710835562519735500638137525758432494433248807802391523615557652694772884473704287636409284950848762037395226654894585739323865794010320628892970460896756010969468651249004412852785965724631100547245938303225038964011718597237804955187477975431171153492867017756858152946252513971651586440936968012603018061441016140514330000716238360661374871930907610552486558616334221162505459994028118657883609269827010804995313804314789897025695962651534551397440896963532904730351030017679473847775128930917339622967140123809161062617337440096746217362854747772672135883929531538864084084776560297088636861243002956847840953984621587208018716979814942984688478599762798114934556438301316926046352700858529226300708825243065947510503705348307796696583067190899827955536314066436392375766645403205465555568285876567521651695849895232106617679892062692537554950173810915576513175465354091496206070777721168993818002583175420275043909814841037147084080937184006205589131661986320561996966846654739635830836704784392056166839092081826497482429253769418221142609652248662501541079795173271918365256359775986171855512310775911197083218766301286617119412070975770617958404483495534099419725855825599503809969880433511779256293479381427326597165170555370873988155104312949340225336146493335871541845461761866442938995850107137403685260067901162824567844967264272851879469537764329756588179586706276661369907760325751145542346371576956459873958314085646319257998771404831006569666829232547644829240857390287458283041196534503474365573616362188121669363034969098732157275295037710968223144882071960175682470674555516117090128851132562078290980448146171410141032942713220870782488942741597985195960956221182813132515909003081050930575241385155586111017233370238763503027522838702655591306817296641472351568892895146947442923489136329413109286024242871410110564843271912797744399918486187450907353522829688894814524970794696181443008762347836774730164234775295768348496789965319770392520389605470592673415101283739875019289515617767047791711263575772559183908366959265687979672504859960432653575553974350033799518621290219364923964512848887791808003779759095070722601609386102233882260317379950750484297277861340095370207132114643979710138625887459013896581996725901293382673106429680997834126540411995217142362093084435085430403364710281039595284621800783633861834103311765107586819433726190167689581145183212528170346849525599849700649193697927143780502854202445301011945998159628595299352809409977934709567979335089704450923576188787734319525603651289635164216200506971546765731412252498386918000733709347109749111385051521416217813206148671463493177532207599966417002043073288031511047647593242026598872777662168467171187970694481172556467949174562218392432398876603721174169299818487726653687921300102162701895217064618224377108293931128290933339852230566064406745793851531893497563683754247291345038745552701252762284164714794809022416377611006801808449686720001229970093266049936784742903670188872225001177612925569800372619101575343409195039543101741680216184686312239386011722538853811175141599032869910472943016146468339165347482160401714394203353840550203122465501456083702845021513343583751363455359285427235371176754921615140082370126002555326759905765077404778493100222342736168815222747140502412576334539424106382745800068597027996295450320197707042126072854508608703000697335125900597036331195515543944626022780621293083714772617440031944154447964656551078364555554082709234674442748517819979217074368416382419867034128421079975968915379031247866560064660957595772207859574352176188131929912085862605114004396997563808602828186459549311922607377220502411860596924911326712612014652744816461333988358558703927021220642406570176668439824255528779097031719652072936805050106885229963799942766892367510670425496690236383409522892058564167012413227253855799138852799771631837524258152318054063175164174102168911771045028444430652159477145504226241596541950930626919366739284938441849154446511225974971443313078432799601574357114554454361606509836354730036156262672611736750982665266896093194409294071886280529027867872259596947569279019493691614268799056500431805755394619511003373347981654417070564934140169181390906302017053255302935354032925707413607829897284850585552634796287091607142109846034800443782556021498005852270580490379925778657848744486157097684718858009751428077875718617366289844879864171003490879823704264049178374120174326561661206315367086456121121270841268351360542328504425049198558658006499218087680101695993291702019612866268711665157727688102922434321542736595744366199543744816230431354363618582607062262384777377641608339600160072583948115054590636281254267272916170065729670181937780194333020215364393532568163168757531795618884298878630958942222691843809580024906995827791661443287251881925348222828938414146430485841541435825236657994496599021545254965980095849272014577406581160718372009144335503192937505363168826155102510580071045637707770004670359915419058408858266381893153061534163530830487963623185560905253982405695624998849661856862820879002775827784571144773474539101352433170694714459426091686688098080088335858101252596170852649275820075301093927467260348811145321956234217732784569122543737679857150273151631474365083267858860225124365217662898431643601586261247953673245603635105826669275599848786371613455698674230865105875284918511174201800989382281813871732535326766980272311081762660992992265105583310433911092907051882409168402114643759858683846141404480658094488392782918471801485702167153334311176261936758852915011135131279436066188801032222593471410367161329189293190375245212197830927455097954716860612746763852490797233242603852288965030261380305736173843498862764186245105405789459819608186936059176240866011953139208425664488272771919724733927589853344414541908725124635902833889563706370333378624887777126429409821761778113510393241892885079200149595946290864005002971409268499456236783790268438447784234621147546773277517501174071551626870721365173580931018574508655279611527232242077300951880377269259294535513021923280217395291639386445870269329845323007488109348923399315200393056466053098739415854235037373435941684633383248703442505372353781642423446361158385299796213525355995727249501080598809581694213397565798738622599007294690128912514540055593268954109983823766878704587185958235012323086965122179123783895434498102938437165702760223604999456310050702853556928240530157730492350645159454799010464265213498371005110296458924172279886236203777181229220573236640110842634142587745626905472497063721381203667441469321804973684448533063422476273836627460606413961398557953421816807633397040742325025575151388085463708594879558420521032193078102946428473542322092856884847757855006345182021447294932441263651953996845785530056409358142164770489631377728998223521275926518601517665797008478158556001264572553681911998336561716237241839188095219630413005541235293912931136101134835631223678188529803451567493758878538522630119902826274472604215465108856891637973613029990870584502952252062563130244508667957785498536652212907541738663059239940520838263024667053586027819493744382517743679125713796715085859790970136433168658354914978286361539988534838980513610735306400771828852513243599671179045633478944758084532388151417279271077129996069012830694473752519733715570694697712080058527782957362790944957292414707205471848612953064049068318159784314004653211976087898541655076453591674282766065143893198936573397271264367854123605217262443426199961532121144036902583401824776800683972812790110927834271588619024974263710569475029392588823457222898863383143456930185847585914417335800658411682001509398571859927261309915651400258019831527070747977848018743985784377779145311369393520172278646767982290613679850492626405146604665999267336907902120185220188555418196001945448199562107266704820691741017164470815359933146892793143840525488811025146070057139741858119652236394082733250247611262432154875875923103403551567491947944980840331186017165001301996774114520657732966483609446004328176385656539817194035451266066799040634703978641918284337716301371627521048669704787370786783401862450718964880602479196747441447346486319243129529605864856449886938647015806683803996459863414869264718834276540718486509272119969180285465248361518606134277558498595535945601606729063272575931862590847725393493967055087357285225663671794185645147887786384807376198402173583904144773175969540803480231364625434441797532736810659048998415054863357687835409208877336850785409907454930349496462898661679721214012252098238556115999072519613262002003662147910261555682420918699828725643918667779769680031726846941322979357675025965018224549937171109662411898838135273464754502911632585073233697799210511270241027776876810582677577933941323794080706263175261107874922152702278304856861969645062414485322585120221546660969217455302287879900436200594492660479647395679356082754014287561191829185589745434398156275853981788644710896353483946690717386675867209530206000445934994411546688767341712007891275858974554006987226804319155501469263107674653934519838216255720177192803992887371590081348128265458788296165712400813552586807224064633700753652246779947712777335970108163293570996171410515658973875721223957170569523042191688101747664471252129989302401398425588037078678921652858342636550895405827562886683188027181119608798466614782636728851470194828672198483768849854807825170705722582064471071672101099416068208066413105985692818578543554973462169590554171888654821612854544290053339366107517509103231407143976931647062809662282189622637674723972578541880357982536119993166699747365139746493075323162006253526969362787509905202779867181995881610220669789955355153280666697268895783677182891842237443978353878559231006527020470006976905625909382288843347775775972688373231998122140090113475797886511317759491871205185558715019259801103108805274617576542902856343812728333994127119543839505737541238357456597195881289183046121465623508250884730605397330464964050195886676234138142716262289238171752204940284521199001416059099689542817895324707492031128358930875376288923869794481736778892539906071168356327372957614969306862507013100948134482662315603579256303811749765653423308838569442377146333794623094290328662445263518883606428962586705718303502368690373305579076437946243127399415930914844964082413048955956503035156144317692402624882473711307411227676250150436567292837859396890046195596082619330632506872570094291151670287005832291449447357864196847707493222656532942881299143556936342947237317065237325303188088032581798453161413126502221976176390037687279136377249178327202920325611074013335543470199155339099398019068529286439448365338410474438983065539283866654670688507842892668782508893688694419200602263170736960169574413612522923946172844776138461030930595601372513760516172238763385035530493172015271510572876356460531053394919001864433862397852471800514487072527319333504629968445850400313252819974810925540689112153700178038693082542305118061748105798818034183825091814681089073185312368887685401734926666852580789753148988401182177429923312558269002694493560436858507245612530711017365070420729126935624625987173439325605262995957455983067096372300143621514242124155781523680977353456254561219967627521040787074160016489993820192803485257289724444849186170281661798307153209882742477086088960926147834775674481158229579921268857428023727587123998392737563515117092460579223906991329804803610435987352416643462768534284136661154886371526917203319978030247468776988944031403880529160878576872898480960392472289830809539807799560774071469997617757127922266647999697796431823082415824402574020950778727294721678162517128638139812946738389419277605218927776372804980253119451150888326205708983317810793424317917586445796823624699932204463340370513291476595155759427110800916764238605665957368858597896976175315406351288869072450571406584259601063810720039021368579521297236122210838209171962206195629863445783695928880975632043251730169738239719321966845797227133268351775203710872681806772428761626805835972395215156134215864806270872734226242796774153946750199074748357245823345545221775685838291455111907033231801617162580868517802324442119809443972600447616339774797071671929254610388998478314819109413934422157030109268723827554069952063698937816651825739916895706530639331651366458720682292856219962422997267393234148246796656004569936874658004046301693095431309942349072614161828001598799527474652700404269857128024804020855920052332431448202459697317084856890916773325905819100128050703707909411828814476437367280959300449924961679684964139373404849323366778266962080743897788071759711822196309410964553335171745007911196563076410631353977597293190047210644722535930922799122785383774708439604826830933797479067351780139821160750436749962022056421110904832818279449549179742309368456646524751912758565611378851692860767283113190264918962749319806073536823263143636052100089100991872201803663719366972756968373001351390081712125913129388397553145439540783351650540573608161458386272761566254820601118667914257783158853157037023217630708214886278557086441569472489229893161986972052933804912705879232147957249911594368432369972852925546677916304552391145673282815568672680814802081986410195227482954021894033106811780037027884774152107702753636613942838688176383158717094890359908474564493927800311694497945651583498693825397748449123322273398789512475137758729910105198574721097559087740687065452897692691775980722279268066586741432026589777360401488715754849532908426287377905618572617020718163866177615143316058256835941768922728942885700714383602263042697361790475761003074544238240750627447103716216754904470814557821039235812523794925583853414154628442429088281258730958001017145112832092727815698226779255268459342984551304129986032059030713636754723785026702425118415692578152445381505129044165177845683428153128673567879521462677505657529630275705314920531793812248085221688066519799202068805433795330919254177475148603749485863349738814260393342423175091531154194157614278099037372943558502225948498119347919193188107107873374301005753280525022691834226718665157127158989532857080073586083138845126880006808851969473733305479435917135324341323550227978016946293640810058949427924320616754414009769449055338349739905618535371956828743204092973187889030444313989925372682486389818877209973014721080074930794676253591323338578371003025827929096623650265383349679735551931479176273904329261466589813994835727732185660638420347063179089106765460953569329340701415686392704838530504408177128660096261476541118401740834042322834016123058736687356998544342738325451349332531751135792740641424071140106117991710811766885320805090509968649109559466888898442140787295140775150158184174510838384080579367397778434257691724711625691210423211045535059437947162747318065842783234490890047828537765315013085899947928762596743840099523563375955934406952164654309447694357933107042058169457229988802207819352894890333947564025878038701181254189691015360111445443509559748501806939656370440894802467097733191044775430243410998512509094366500532154331947599400015267194130891217319518612949096501471995753224758087074021720515933988815404503135364889081354111272086036633435668875920111342257211410782544601022383671375620193532564346954366548255686649780993100269753639898625756700426259905214085242519318175815428267594456434246616396128253621622376636048172006793761171597944079618623543326059303838296102206874789532922922921294079176876888607767429664025322641884761226553320755872214958821975606182647734381423278786163587986216893923992008629531132845315654454858535759190076248257320775428103552997269675044363820888855493909190403515938071313756081037598467163146759153601164350639683815464420683324431142096438494096681745204083874512170654341589471496883334999491270524774796849427431195301570878933924496838554940175786540155315832203181862439916447350194038842199587219910275513985981866800870019866267970638210239895448445956603911141813803143432687788154624018621435707136523872827611057212865594184584668700013729515170602706819934553836389502748170225448089978201087401825336787646056203316821105100386457254946213694613947595493858693552887451050204806879304018270755320074616428269616443678069365447462758185269402534420602501441623365898102947574172478274235617834873325617142589422533472709512352344785442096042460636924488047291373170924283632345836188726941463712941905914430555279333959532459545727723861205823079005826691531873350972423295300568711650669563363339738352689614948298176507328929858251355741347247457490702914034268142900355117076924981321739287506192489819464758782160714054113717546884876894930422819450135223605512327828046766813717542005534497506197162325681543850489532376672395927295926768084961309113339094040844515856814186829969419395144421028414112731389832240351986318724951814857914729436100885103269663017045755262704792568430007343529028454812908850773606831463010571940376149193527337964136068295293720016775998725515287103578895193049958302998077101449761800371658330857880841770442302472543664709809747947434999893705715039209315185955048513101904260775587930084063772447108532500039477440900531021788494217513317206230597454643522566022164537481888550423760337847001603975831351845014685747651391047081628283942317139485936981426875291482793998927581928074644470862380446907582039554909862319325318564993745925825761194861016306065511321648060866161277692985697755122338614417754546390370414214495271003303913401009461236919887496736860635996691191807926059450312264387382193039274536857085002879559258882985767171122947880025470474344735945302104482214105766747405438107286138416403113657191162589885261138564212079521060414075792148103979997821663995304020008738940065861202399874152614024916892413851551195971831490438097485479232738966288823230468942474042333849619241190249965019461631276856468803702727994108335028003555401727284847345327334040672509619474435262161403935071307944906521691774784635838626367241752545440791636310744889992044536223881309682639065161437808099348006976332410267196223269214776804077687869723326650313640863237626716918503134034352275556554113472837718748766730256350627016929607375539818587883805392222770516259719656142778479542790213278669438418508263221450157363995741742094941416341308051276640061459191238776644108744587452443908622576162445263640523028870059451072845583748943463600967938722791101008238173805558072216686559630409315093789855013145223117580227709093787221885738275723390718590646098100623233084169029967915705606661343382984009987858257180166632512824686507796736500309461678207686404544196454782036797037096697377626119245175902908166945713251747765780969156192436605705600907933534633226246470238910402992250897223625194868857147685993647600908998883303240991408403377044216434169741108296602251656379527061728165905262140352255425825509650666030166416623107238322416873035453541822331842636934456167743671442584778084844849834288008300339036386529400464006703072127853308398444750792233312985420518385586160346238520263071352237637309056281121384481161195708552917572452139839148120817025721765885783577743198478098200283653342201468743072337294959095880129435176518219704335434302002459790099349807051132061404112900606284712042822563681770803283605344125048885527080583502420638709416224916646673467105186791322479036037967354404568458761169691014369676580538359522619737969318710374379662722335105531307973145145397105458947419888897555749563389298549638481689399372452795172180105560685532399289600251082941971332240009035732573446279753018747585741948042488190863341182762771229075051730199935303800120098057385098043363146953307990903000029807582379041607638804372220441802568947478408934078099651326250897580088114214229077958113035907086175635681495075956353845724643178781896669802263806592555791290138976940880425020972930120855926160861675138941507106551926167317178598549762737616500277837893704734513231550509145375043369398725843098419126920403355327370041623270684961894228811440904198785561213159485065620262179829562512923351569772218842070986837922938914454353071854883482455344785930378617178164676618067478864345418975851135485533853799972735169812154697728015149753470267174609982974984378395850417119416073598459429319723302949738818741303745828456598173346435845972263951410451480051994327765285647561305720901572940760634366177093645008539762423369458866236060290812213320262127772245880538601104886283041369150397236563812270069315192414461038713333494345704980392034005120846512660568280617468454294702534064114427866996093178856102166412373939479954457671486494329587287223946636671154089629594540720174557600791703649013082338131143293324608543000230883617939773884723442406282350074115972523022290078602474556590202700043978006602783564344773161009305573138251594242552095187634425511274068884180546649692983845815994348921886012783467683457324344685833981121652533757664759644709993012632545688695891141421727234249299618655265237644956747216546181463464423032531170680041144344229183533609787983423144209366105299886171935017497064726031133325690027015653077609071724840955452524276919214965166986927330109996754227111847919550743302926057810596329484738529611364282121233314246207215825352622112993423047556177488037914501113861513166116010273897710660722851373816164561381349168135958458887044843006948026450721918030087304586119880218068284299447811480119748375943263127645418023215310039624363936634073603359938513419042643043848806293818044535066163567425890843703026854649167557981010672387019533512440770766821975057110985267029202786966557732660495021861490100238764685732534972807143071710421770970273877878623099566049399328217374861673229089883254088759486654103160564061055507029263968151333969728876071637449588202924554985134095954329918120791665418505034436518021785871989430073815108909541211247463922793594589852377818386176657420612160757806676852346463859386776029742850195043540630924021632137029607059949889885481089788855438009152919170579405694515563425702074098129048914319196014899774166568386759155960588416589512797024135362639883652448340533926276635254255178097970336810026901745860391345280641125768444475123625425387900540875845596884614689120411420771600575702124744299678512312272442544596782742904112045582024488640201562864427413297809463115924711547785038842997398779280220531334083981951316296410483720464186978903169023741320091329590589789630797401922957289515904218196023933467185476073762539561693199547680814203531609027695411021554344555036143709852152665948959361449831007902051464953357266895998218344858639804898526387734699810302687542439906743500136615458909126633214360014527811248487456440621984076691017003156321980431113029949263526633430251502819366802732157284818228967025332151551300441731559114193320532159686535475888589631094042776479117129531748432721195875689388880175668486024170707671780147430904017221268963126895546402447795795964393812814170013716334731468463551967413835970663974056419133846749725044500765198822809520628169831504158138465678830232195682339940497340634824596154477563450874395253406402463892214680435267008108655635659751578047217396115729259213796862403781231894239182235464935254442672341623831691953314619634651196338037756661767862631386541794690438624301310544704394940831716569822266535266583597418899841644525370692417036510473093279694728211441412418785468501963132381833651316643210698704936815440325076603581028033265571374672116677822417073756812532941946463131583876469890836542794838904526833715982261765167195527032685344945777021472513350601633307815478900275847160866410408604542340486064925094608966681467457511556789044004944964327480016460619738498106236251192467886504173221653663147424413253986544456758844619330921985196857822138520406855341820058519438506609812146458960765086361083602483077743398931369747655921927914386730231776624353153335786332105711508778277156978347136073798265236713673574997342484337136660457136055274771571414018891824096674935032025083115122733461099877009702336183046989605992358081889648294846708818852102618511127145634974059994870904463751819484154843048767575338003936336467509274074016239900304016288799442863393642807860483979801863956804733285134889422608648200409269670776771291765763705300692129924711124350107411556046050027022073202730375904602514852647132342377822620320562324922967156234749157204131381465076280829832622640812830128597333016947601423963757468136810912128932131872125282449134032586330562374711988606191549858375404790204275015551379453166029016789641859138308284732481762459815296897494389083103131131804620601153942551430877348994781072596606389693082394596804585170741095794071973072162589246268255056029945119033122193299461033507071043866940427858730214616853555333563483973190520071182997062112282304487945570212543218448834797728281346308984620378917245409311394908050509902961447199155004831789207392532321962506492421456908323103382557143528914127783298499054726334220605388057590095644174489462538161595278306982863880893284861917887256532351273686756948187485484570168584676445445607289081490028977582332042253296684993943598779430751399500246349134357646559165205151024298491719175576035345985260641076486995434415981588879003282104061814574909704571586745262635774121241125007834011276192732957861921114155365037138492467092045056524389973020211845707637812759387079283449862382989082465623022770234581274141832711118071662230422886872115762532880368191593773988193087581275913193005878937910281032330705620888666571314627684115709823360850872805158519105837379486418741857081714069286010563792989267709862221872127802972653006626273594009821816906439615578107133963653617275410866882424885886748658592098337638638446747840619308423016817321909209888675058420922157320385149321956192524717709653490172280982582591450912260045907001730037198460239592108534781422076598782839991009389196127489639820916268409196797816193748225160675194937749537274030251564291493435271094610458982053070062689810023747059892122968546785452785144653366851222416198700254369178307037164104759263145056432267893950288760021228894714964729991269373220264110831631377765777070665684348136483166187413980836485664011612768476495933522643978633375751755670740034047563449273748987748628669232478150123567530545646065690539629209146015611054607769715240306166191983964731162333174442738806489809870060061264878526729307539085585912484826109973643549740710703174298367363502148377429159628677535571477140737749781458546935918190618607943562311195409583609657291733396175729649954561245224125889227643702900333872391781531916769230813140262778300742388259576678984211434583087952107524930091607557925786108654135650289603175806791231539254774077786485324615010396761057128717195197448774000321776983993574948787522384795864761001373435712136047690800430165049795474583290188777917451240347624318977262289266586677472537329265127889237602830713517637326423413731097184962726971547288704260844316142433190694169044172320877669702070236904677755151438948781474996894486290955148798168267228088023510195354231939666713111741943910210353841967588063101489490623801606267676303186015673241046500002974111094146770885177494521808775918427376617010630898910887412978042945980293917350524514743434923028081703931493736314626684761842794428471317612055011383662453404903203313673584683162706897773171803987662892748576805789552548647253787550233856068487860038796926346312943061702552277299539979026567366059241046636441670389036141369450842148766769321608607899129948268449960729653519246130160093398195070114751135372142410930250709166530196076275267414084028921098008592977530948880953581059985107661349440711604386922287572843056143261564666748981873469791989699320206402808959836640770887010048538124142111906667312996916549807089639663154335229707453431316575209307373232014422177137664525390621424009846557664068205665597285033345148176073974814710532360614702477471446783278572926382573202067530868425953881474915521181750502597775844439602821123059438960039875131610426266152199707340196942960661582776832455522648747980655330838681725994926090846909895913329121340813491520509549732135209421079166616922693655879896567775272198897393590420980823091855546912765866176983155179028659959722008164878623827937524291845628331345343217250051092524901699323424066622612391559851894817143163017171045981080968751236839692339445896361590596981823273224418575407072757652935284718990869110333596145388499934391757996214820527957482383203342352651158657574317783413090065401429286740606444121958196632608132234828384032837351441935072860597667988224257594756716450856345570629468447886708978653656335597090802313418938602619580318205959823399855347557473582963329957938484858514389700523316750150156602464297625252304249950849965798351287366952717298924769932084551833743213069307258446256195246090736032875275350501758312064725176590623761415360570385645617067500881100083978292666905778127766677582643387878581917250771531262613977800590410316308231658863314423976303721384526949702474189689996124831120717989331285284982941815557339770827289965862886679372198895269272418088892200652910095922434737090875360938428079278091211283669966162439807297752872651539356374299208253293620311376525572174134157031716391241009574810824692895441282567508397220825769443990787045568079882283240700898219339307814281922476237410042408323404182599544334523223565120809638638083674280985315191542271246199538753226287681951326301840481817171078685372559196779148220048545708957484776791476782164100083033413873082705089859775679540068355751631714088672951174235711015992975873549046418616856191435669118985349800226692396192883281607734194847686970389257283308259153377592910330762662730474290915760214176258320317109239587634537414099596102057892852779802069798413779365162276532490048582261103811403238385505382104129554623370734660121404847201791602434867247466532393851022168530147023311910529293012455485200732358557314154694039503982805731971898514650214541507804066003942602537208464632086257455239118720049454958445895301610549959991541568974022120904351528039923615764675670243975446972107254196476907666966670885379799720274134831848596614727729160948186819081436809225630128696316801229897758360925886670995503622172678338428354784773188736027879583576694727348947566783566954904642433581096201446005420072600414141206276989114164153910100485976605804495942315047833951248403769485418413118578212750015834624560280978714973269953433625732822234692359101281411765658639599781155115274271514917136866106697046455748408701869925558259227771747234508756133075606653434494702738974988876026794159773868734343339597336285373307467813818215387104160862863911683181580658971434212855728112139655757926973434615349956725846481317296654025763560215562415305404508697494277541600107143378992347670842521843811275212305316745349446111668520128605822612412454011278503070376580987854287246998280044154447991835838768111299143681380304290637935117022495492715833833383268457061471475584803938681762150663565514733357719541702184952107000939874320783886095681551970955837049933375126138612448216272130465032290771937035810294043205959758589794564337485633929796645561082467348223492690942523010996952645063676856594114090405409765352778793046552867351562058228143261324046437533162251609002257552099191547103313490025185035396641542649367147617764439626139067839590151002579733484421372970310679497853065199803265713716569154583210624704909149417763213982088569871772449725636561619819254807781481204036697830319606426046067158946225020615483580551921800968865030916104570648096950734084018019327653938496001241272139182136517265105925072204175278284031242479606287921475310663056666245588488793560529995562724810885663998218773740266600849796572029318154867379968466841421733172794750042549201534665615951742187497602275900348805785381760858713862879022734813108777619187266383777891751945550423435886348682440340134776088463181412970946489365823931214025173039180634618315323298835918325735232933486369848307003703892783163665944142306941911639539005377355855871435659754726646322027497549078957429745680850373227832377682141603033871637450709087106759978741207951803929795202464837286641019166112270553213161058027039316455159090613977770941479150408330210443572380822833570789506937192594797177194795140540981123362257276682273358304091986653610983162516729653116514848412486138181603743752195694335592791397351153360933959609864639575777603838796598232835221093322276654817157853660112635845580175215885097121784198408874243206811189802045687496272908535517960627118256018835703444755250472615434991185225947425553167784809952644819357295773026658864050566964441388774268420203175717561925098553817283069857849307143542650311922076401113583532013606715589991087108313997400985038969425376092284733509822973161994335276102818391417150552039608874965971616752663621713073928773393901209056124130077850156135302009027636887622036011715593205201182602655091411696594879892185290804713091687064364183378215636997274437038446770797930105425251960938525447094974749204333241674384453184575870601415232024409363808458557158952082752775441697138317218150423369020350913786229942444781015980945553476633991870308101350884091032496286533772943755911457470027053958868844935967790162231288157404311607564682418160908287014735639159692990895784162547971410039119149195820615963353473325693623924730784662395877146139431690523988407730648950912614447644872928593852039114351185331179911270916433307732980941169039719933152308767548859443303627595500996647352339011841073906919703436833800339544466466213454989473391189625270016503219768887299433102112553784658613567454200916298270724325181288185740294376511193721091924145611883258323959505332193112262265169093510612477561553522149600413409411569068920807410373108379513367955163093827579986946600500402668102101993991782225650330840610030858083879283129751985581158204754633714163179070783350998153215653307982872651897651053608876867826663863884882462774855575057622870583776187352354094780618808909018741116959501695070206164176884245180246553316716993275611962963042195007192674788848424626214074209250978447718664687790574464146041399381973645357293725041686262158043515612521838466695216693744625853075181009574118804119579228703415966118603082811537346294415343183594727430698492946284485986515046803951830063087222426707656864924552079569990320550540024333918623500042274870127687825249861538179377297489854552759231021330694670024768863153925813820435721670166312070855102780485223838253600875888751906284521431110594129071275320104837146155736159639704250091327997345498837568420164029653303215925785013271164840882177584343483273334267192289184262179583312980818627421533689922744490960112865664158148900869680355608727921377123510062688216189294437953889239464864138330465972538851015733211751198468417707688276802876151911098260634730995785018477468023693935347910411871165657537701216437413434833380831922323024543510656452275891670048036076281859904895840967100238599319943472769427318153146254464773296673017318954184219262895941329349275215629380462885604842325261904368128732125797682484532969786148874658643551551773251000563909291296207778924659380384824210400586146810283087725268528607965341705270209994460525594582472728922610054881526494447171640127289546350241294283745917712528373088692459689094817092715359376402646940388582806984333986294807651622582409791823258330347504478271533265006145841139134082409819657001069252326639220719805005959855835375195463804936452505447985102899458656621515068703205006277195871302064776268237994691537892486683982008953624726642520566686338144747213262314575117221565660757825323103537949094135465647345898567590001159154318957652836518995976521805537104674099522928501398358259719929857479779642801181510406502467338622753131058639258426675746068111441763830376889865239892747658620798154842628387249582302978119622739088177461741911878795173373079429268155756283079438415899564799954050248787960651706670838717258729144219266998673259306887123210669871009037117434954190941934976351622307643232212531042235523014112156558655555602231423354509135548112797599486854191666606380666180725911961960364826305021840411830479130815942065594181000466362499904416311300867165230378148997869419510039454045118309396967520539822390516403318636604565809062093491544938571722013259499145063798661175860567876012652169903844141157142853434250511624815422248754747946628065619937590832098840032494910134706027961578870568740874713359806235705821040814730516680338744037160143031878117487154159556207202105649448199080612314307614513674638092958391809774634200294628310332851105293971234029782119044592671068313923126036155930944221168600582993470287739225951191730975412682206987057440825655064184871884907264836975817673103286541307723668408840230273181942099165534007183313089723548488567725272675509817153131432528608268223646465725671715781536241430458599396570781822272968220543682144652304033675773759648186623990283725829949028421994722709902871590926076185706857935587968192713699616949703101897184002637697199086314115672924720845043799129756397306971915532125628320073800102474584631506996228908266440786001067931297196102537836470284757318761152603039615909824004007925354604575252747470846877693195221399782533314728470132256690505219328188580245574242291509649194155719443242682387643878437992485941642696854101993938621283474079943449506558379517631199327382778600438364562275944425313776027436792464057472967708812933616774884233653424112579709063125926662156935195073997390375527499745512447955489118668542562327424971680780252597373468113433763009054895279634571254459870331953234604439997454096381655217413755070296983360999366258527019306562493331907857045311124676688948216822255630792999269202006905304166329752966644362102418002550252339728511126778217564458516693102394644915576030027431288249786879869760338257424084999307744846725686130880741717851565109990835475627705375692710672321373153209613948707544000233697499948935468969213307081337458439698129969376128964118973895411689754982326183285346669073423616195249790057534912536385385524784500921699487581458847220358277367463488425435088747557245075504266494486649865947390504923611086398789334780014958298446522640101677559545001662785029594905590570152886137467961506846109590588829015249118735132992456329209093042652847273498724411432341338274729157950470719260865634203410637944787494887419742897091579666101574612409955505539235735438387760191954704418782641252062265149882033648629702793982011290889957145377960528565534855583750257703682443158293076558593806714427753781497269340279050588800958777878627675494473738913481603953760094011962314224397673979248721713272242003820947279591919232936602952007791520437907985334952900900689763727749837091156980448554597587280371887983578399124492978441313046300939025199370195031255380505628050939143100361524675949018012309730308921021470170846679046394513717212622737206743941455614954412752951377906096931126915793107261497389255115918838795966358826292127810178907048132578503598483233825234491573483377471941342795241380939435241724738670441517111518694842039050821841827107150230339772084232988404037687024507133624384570337216469226744498432517367975127330895059676188831652255920448255897299333614930859343421981635195353567472098926980041426589285510277814466766250015645887145421703844291595217312904088294172708997549275402697385241558331879004782631301995978382837287905106700983122430192825232893571453954844158721993702697931743059185918531523165132095715556729824022844421522854479420406719619925815914363276097020612627004741891128119380146371156925805413815458295582281968271541328649012867423203261929623689959497773944504577877501376400374535922558776759600703922377616865196580178349479730778104486786552465601571207613639556262345919962458264583266618384418027276483634237800947869432807036477364012651215252030144877560376927245648388319170465547731313396265874483944071297681200353616735804224500228881331248413785490009031124993581090004458183417111467357499786931857667705163722410488308827808220278598650307121372936861215697535534389518359067033695999411695924312718568814991075232506596760202940410946843029253564066827970132709906992285267498315146496608466890973559373257316646171458032998083001368465026016349294808694117149582979613363745742074293664501911909328728168994491798610057897761288031475764171958135306049018585618585741407075930436588259846076330326723573823503449591655721701565394768946527642032247290823957215572194004980922596958716578880420833710826902688572707309356985880190620578316850961224336275289953584900903534162070525053778898523795053406739241150346240558301533076475937179093144466591118505317745224045367604452074950648190022490314779190745388699979545460725434227925931305593320172705696251364993861301446042474975109305674704534685845010795269200090857817040684938478628652268625035598877523195240344074635976539397113372072807394335860673632778506975674885532170848789258113798583020345936374122519077119362523883980136978697068763861605266281167777838781719104885597363946360836937493755196579956943323287088350159462347742736579930624740698263856145386044608220084252771255021355814115548942109074419841559440973394651089980372042126130086282796112920417365368603965789617999105192942517788214405700880410790641667305437544012017209609499743670942246132249601033867149060238179066096683678586443065258719090516958943843193580242121882987388630590723896413596820369483208247694885448469284733631852942064140920455599307397898340428944389359883948538143910114730096674009702148809865636217074065099758857028687042062035344202249819502970869891144587899586208689751466062642713001183560943027262271671809886778828935686937499306790112625407855368905663828214413200819200342300346479560986516845141664180006139387263232854161272385952130184184949037032018487212499090343246804286676174800123206871507402036607929859159024616110175545349416906024293789188159470661250365449379963226053337760211927817839423315424056656831816218906022526717108859771961925431081614345104391921831495398501542422811479943102943348494554705915723028739441607111076780690073254841824928582275531125038654720313538540780936712201273991958246911583989229338965012412424796413171415874165677441203724577722820654219922532727785274128429649985958737653419713862258696633150291064115277476692318636052228491166944817123343306170213327578795069383326348483545968340048691604391078232516613936662413802174857789567554376938144173068194797207491318254479290274624200776948301552772647255925304176537819323228145105081367875360085727085122694490417463950311790320992989189129739737838359286082926663590444072403425580316576029038805753173717013913695508622125248940192909045698218218899032580291496023610519582146325472341764881366140279189476325825343666334153864389457441502450298623218569395279880038811938498842927293128209830739795326154024881471024957912728959208731982426643863407010135787370428468167263636658926467902463342684994960338124581286947451786464235186310342332643288441167086728233594434199567417106688428508710444721028497485396269998396031382412848497126449044892679434870880574469255794357899718089498723140067084352984179113427916599208107796756190285411342080841401753586953143868818884346315398282039466436832107882184894839389530583737363133092514980001396244603368072730882462249070420889137352903034485072358824266144906186177385517635921013645846133231788465651930208662905004888136163596080125416123202739614154105857795772298187376237943586020180854119558210678555574033464018379115247654673380446378758830713896692415249953666347148650512135587681620975263865099559916806270566007939815211527716362329342281019239565285294212075381008235231554227485942289094671499894183864447042391421018016922095464713055128690484706378416339479990008869082955807170159770347950517369069250237004486101548206941150657690811057731291117210145997520145299891529483222652893629279252693390271837852570151558661357815629191586905462224240715032063626266810255981924072516754225884183182988588879984719086461176652415459845459515075022822383630871092691819553642199537408805157716504321307343866253123157406433537862251560366686236894453457216231601597560666254877308840492363653790690348050793084276188266367461433932108460200097663506577515559702347125288334807253203590570346966917842645418246188922335274901185619800084437804633951080217641725346083681069256176941122316945535728535597083854050064416058936719140944842862241310173102126807967389037700601185054571217233914802480029437113835611790135246058060211721674570900347553646064091518943612469237425557640728143334527253597175592771167535761144992909760128457239310579616760063526052350969627150161750393905510494520660768247645304946595399793247969266435517136541219563603999216671124382936041927544992260880580184360696196781359442246797958690546772547323218278925468662777131563835699547772149313526020127085434718001358425563984819172771963875765808116460702338285780359994625884718731927145179916566214595032631769776388368156339710765161461475479877320043078275794982767506242506852822469639981962169640927796596878668910935800663319521185299191455268328013547757007824207342351562273390055774538381457964201168014510952267750275798915725718320411689127749065328134534564543886491228575233285498638423058058211573486040165331192328458186757988240263955044069391623829143045520766866804846958708010767375961876306182729323641502917604831843421321134695292412076465252932279010987442621743880010469077161728202870861836381047185246487026576705726454356887748893957871966962359062522069429797292303657057748301328111870593101406778201103326891793273373285688873118494566408207257483920091009004564111079418093139246597238011742776551603226760023975056940254899633383541104071375903914117361060372122124492124714257830945723248417247932063875261255099310055218875307660575808334900071873208855261016771045634169309322360320166501644004073046386371714242211975647936769318351748208327204343589632025599258943484752759699806265676910283503065658220727291206352906849126001935315951524553740395048660044790166460438371300559922422692371091673059256760175549952808006682697720308070989965832034896706304935923579139459031790782434865177392757166372117896493353889264276194526676616346096632166574336317062870201296167532794014555019199529728209400402235968995912701060400127053710018824268170835188224807452410737587989417140906537475254897077932428043716056564271318399973795398872502990319318370070598157919379657739901314392787707411195371859083889530240752006703735585515351665816000245370839517663345201777159554210288985034159977228268694424455035288322368833089816610868585688635705710208431364567161675847165256059387985322449679099833301227101618792578085992594433205817111167759860406103226954158992289224368983869214707539931019108484006619013227672656063457031886658401743713663171067800962856393959980958495615198520474298013384784226388528073657998811616982659265993738348339690089087594133410756279795883159556633897556955927701606369386971978973488262490259742885238707443192060769388432269718960802330977072768075171860348439025773492089106465626839304613082707692116296595397043349307417151708502722091731744547131088436304674843330267133553191373643010511083213875503431329925556897222994773688703897629984762577381130000926592467867850617334776499123504866629804981505822334686831781078722398023904446751105046186082359330137291283702781406373148878714216848152710858391893832324497325777518217599327451564455634976855225632915721841508609423253063973390322422696114650229228250625499742225495823107380123550997454104825406974712585372588514746413314845130008427990015569093096123475324183607782290064533622543740598313928121941780163576447074862465356076391330316286711888085047911819808557290064699019363999945047666759316225292241789406776535817981888617991058275067669040422958805269263246894386412935880057155127267831459261323006080409583700369099128527624952747083880403192634497761059650236921499591128750128905644292728486325438953064281106539776170116954482678937607123815515091902498447315553895817635507786477982493552418203013398247529796956695187918565747841513619194489562234907373376262069584064758535696901926144474999855892336980892232626928172318371645738719451140848428858000829174884919809923139918316191151097495897720840762767854973059188001172834710885386005629777448583844188796066186028510236773231584300364035417472016950264170461699293285583093093221406867005331743109703131541134119116225619818789797670854183076774425535125011072025969070711280106912931350096595958105027061230160709053072013098094460156278817990365928686092451527491331442238593253463170627730587430857475712421250907113505065392782387201860358857301429934998709722175334865167833199034028386624014424974809812536655993501013395562841836909684572480801955407193246714389565475830050264852422428272014734810114390953214588491886436604369062689322383079690053856070260469994396927529297545526210377431485566757331161028528409546788497062073873361500310423239338556384804498642936478378197198986637294318742188587714270005669416212559454827643965138052760501135599497484145706643420175534086338315890501635131535691746787233225105771107328196546323960480645472824361269526600443881454439721143306517415194799253353945734833321505978892781252944626633517440453145652087888809771605314509821158015076219195433962709565153013615182176125546019556805987339412751425648343419690157209390474804587834570081854927340802804732172431185747385567529979583410241228024642266095143977024161456611928646776664988787882682841415738043268026112630316974890227406995475160475701242601427077524095748273108495190488818741151820501110384644874626815438956010383963039390580109535621115638467060171500238171878611349582828578681242701499844555090564065386902116241598530821045113064851255445909164735712417394697601134311602007157928004752228737898655787827436807056199464628517350001937100124284693133167198500312044710902640853986327157329568918941024487775589017200985080735313941469575382512845174552443738424088749227881452769799468516226753336843481052340222398760437076185278568084019283997938775271548246045429574692320040900613740482940647078505649337033907162504356263789342166759424457760728630247766878855548753848982631389082820826846511382868788125595123059055618128242127933968652295717183759001133473761455608923460989324574239366487062878914484910721702072621706340975248796127687027903839190578926772723277641520706241436003317990516619358463493423286811396704801606117060133514000902462857553815491669854367453067151680773419181328704672488617108328239635491379628842181341536090925673495103513837637045672336575731880122516163772037091961613471605962083812306109199498032906915929415784088504745879274138319032420187828891715948053908288848582055705955733589090663948167068664795638877248192984126663669131248922461754754559465845476078776000489128762785011962710916245534937835193098801135243655218743537429653204060948409917963548150374764493083284070448576918006326888653465525299401848143622004814296213076838093452982900789441284068231356243776727428369070092276374888704314092935139252547220972461328642879177293401050413717460033385281995647515985262492523383879779938130509955808883484287389938325287761104847772722173555550596688621646993086295422690027247060538050228166580964937598150158316875316554973800798810099006266300279077264882347747337738119302609301725522354964300370209852978182729478239207083004699437557958375918892797754389974216187177493052254869625347922544556644380145172347415520072347830828633046620165397196235780172341250224720453780600090498710062526901288381839863638343314637735851849913872959753885898406381168654631523067683426184983373054628197603341169340025402547178360635584471013735961378652856145001030536983991883400644626661425737771596815377511067036721956949940599578327579986684462618838744749776048041792404090269762517995195326612251492831514748990628033085662094076577011181540958923254760667875509282726803708346060757046186520037375964480049826114834577889963713022284594733791040599872782764969558504100907688712013850707772893021347970568286153446383322846851632229739264057655391742005849554220007900498549586367930718609198490046476010107205485596505352768632155849989196983717569201554202211809165467075721787457463727757863003740600780511208601385550819025990097837050163366760875208053020255911244776935389998792899894325996636671605651906140702000950633522798108016314987995826265416209455702663119939167621070270583759444241759944548045102214958675775939012400532714239372832265709741676186988764941463232125832851310835801673640386102146606155767258921505051827446752105531210009975140656061020984836787198315587337767497156354822401144674115552784307857860004264561487792563483594713862894263440800122805723545576389979538649526272236066176583472484332488391272027422651873831174915614660390881573718541499998953219047648766984636618116885725017017790700207268487435421420929488177810948356688605279201032590938323237017436930038138345208140338650919683370825815481174245703681702609081913569305583603275853225752400388028121279969100279831086293989010049727740529957387074388045547596887522347008972158366090504339937749559025289543399186131446089431605870280474674285959517452586374428776168870031163357596001904228308084365718816808787521434093217136461860711927024987870486973022453688926762178722598888104083293051811289440575103017488985195743257438927784073045898626849480578640172712669461015093660764243720712990377574218668141126566794407394293989081496811472537849569353017265160127302988275965895926087011262975620336195637536319005958003731285439768362117223828782136525214943995206531383927243439989824745532275038165286778096086853124205540889463623392633451040744579671196170704891695970577608583727901511935314081663212982887587580711856652035586572118664730492858988926019982555119151758446375918427599523412106844863459949432967693961314897652571755158474618853413858699083287420795497915814547434652568326532049943482831266910987888573946557576260128889322381036469494418638508839315249275041625097916323526041318699316680640107454029824727574619262255948862935126699157471777199528162315431723486961279828837656071787150906751048840708146046236742197097779171919957388030161564621065193811129790452272132879292561792436025328513078726238252497082329974982835315819946633868638933827296275526320485580792339929618324450889243068945517521190719300888055954500250731762773533711793812098196091907932070823416297568227447971264374670685938001597497742894642244283259035125372839711040418843315785931120885377089258318075126236549861126555395513831641839979420673036261932700720561723316218611659399286423231615953645442344035628870169704365088170513657161632192089437343877293296931204901302038646335488939429234753884358037304450612589111984592221574788010424278842082815806856697710087184659227083801340401145984426698638804103540838640877858849809619289602927972074076782687080018040442430626239358095023646506429036110346897665171956522620676506879064373188577130052294784049040452577930525282524333868992314693723103676982516351544283320890322226248792039246127509131700109808469706593617206744796365627217341473416136297725831359440330452266719445963343373664703768193777503287346203552824572912891239873518607815481650764598004360008649098430646964060415472366413220396251398092212109012329291003859807307807813550889054385571733891017689157045640773642311852027388844472890917583846394515428994141887403825150363168887155510808611038915405057655203952663225262450209089940647929223287609025702487535026432604404375894541130865250424749001449537284686702034647480966609319164229649697507301272489701813975258341489765412496660906565508176410003628301602949046773417471383035287629285952614606215784004300650818337272788287931804769057822582465961602442801815271360448236434779770519234027823934101736128432811536927418907606959494635865754632182860525130402950245663100594680514351954024287002521855233290611016528868910655621215298291785155237663280960027828468689980599501730861452882576147688435042044135415627518889909979197821923726141870770992610016368928106202890199117753061438555473670999217394342753657296286102749299424522621783010272952741173702494572921629583164365534424858438914454164268010902492490789436395511242829368641148446477976521157234869529282274770170066000214932077464304718044651673342609738247647430742880305407139663717982977461269569591418926733672283184125675067751870460317840621356795354009016642149093884524481694529126093213112274395075960363077647869051141644278833001544974262723618251654821019528436407328918470000483548946943527974093969362936804663497169287551659949822128129199804173221288158760740965798974515802042896960116841593444781365832216208310956721762260320990238191173211702155725320094676948079838439019693545534258336836747084779454913929814496867774235362079823893583580427603762800204328392747973247933313019435635619917732869959872424049880916196342368442731592564064010344841558412024651397601491850538960383121654012857174393565645208522895096042243386945918842680172332198329898832227116864581700318335974457731337638168161637199951819751854527655656551999377617052125778142808939173610930147640664472210776448373250959488034127123640058105093930594034276255139734713154792070210504032163024981114683361538879852869527760118927356220123309157404807805334636737243765984353193235503947891950316044754027985704632266826186792650827180525057859020680486224605714171590552307368484065586902030428950933554918694838784565834655906660105258066729972535336618643964175308937350555043847189786176895225550486519435135513993660249713786915602706059142487737775364091219673602083230355293909168318844357890539476002769305896236112111394084297026119937125587741376034825470489705521017337318199713797008207915482665144034527306989236036122415153612677122385849894237741050942402104222387182361258180999082167800498335534933634681632917451121790409791630794288488565663862661641567388439573994499624311491890594100488762165193396777503134888569692151363381203889499797194808908380965590446206018566205317389061736754117121326044642691944851021274351547767465222115024492311281314072519929628991298591861255344573134629297159325116721366241524710804521615005244414048756606569141737718468979561240125212845171819297828516093042625574252813684629065536852168251730940288021629287592530712284584777847204684553408854252315184583595728481750685828889044505676592449794968359013812678228422726082225119572572845221142165770058410572317911313211519304444361765632905018970026685904205295036124571146259577075843719017881895740619310879943778492004670666589250124519853608551886920655213314004585493566589951848686878491611593145027932649558554151128972328928229799087845984086412509266692440522801191591527911504432653475616704183096292360485221464753594483995933011633718887083524124978191599715732521484572100018777733528336843454256342502060794340482379647749668033482689579661136416523093274889860507758777264619728734074274202432821360199271199412192888503250089760758567095858359614852538600802086487820304572631035561075745916660024814577087231274489732485643727667394199719745762010602275367639019485601188774668499726319742519925834860153664506441734327511661283248726721374728740123648239230796908921978835193037878317328365329774968962021332100380958166324613219134985412179673989842414548042019364038803315951259411984504593842536152534836815477791887562334581759609659294893971729648207189422511213302829629380411766560661428546892274612355272241954441383186984568989997636183534146336326379780240366772172652164101214699003457912786745585484074303508344184327158996678661910575569725049391941796427545052728020926699122128773935087837232477816108117689890638950599783472144868688113157519679694166053483363301104522809282291759199060447851760561066850544937949603229743704516360210686819097320454876768434296699336647387798020330791381707002320106667171685086380697568953863548721934633565485093669167773451076217781128213767354687439907910793556745617892100642408445422710231002715115130862624903856988260047862095100714954626271817474014699492651863635334064207933917585532007296915210683452693925634585811977501149505784599912950142663740901769275584239138196648464300426005907252348612444159764143375599223370514873764667792444499925231025888255706214222668995978944820815370974329563619811354410722150170063568186921154490877719344204595380536594109203794733008406935042782889892810553974303503477269346740509421678997179723177090993637286356643210010467332522098780306190683533150320454700437451793116830957531976132361847804362340109417307814833359267288792862281561638663296880786863854324732633007068960894789910016869148376888439037473646844971191405078384012388071021246984699940438384156156236081657762441141047276682650930076367367586482197219203927985493218990381676468104663502743210810838996672479113380117537194951814454445997979684624433366069764040215597661376671226733751902289189916971355006224499861740426001225719622733559262447485686463941706404186162649722793047884880942863306849943208454734662083201395871115981375986320323552504561714196815456143046934762557118441324085875155421071044617766476954365186964471322419546345717914165103071302176965662013518583316160799377071137830150936272433958629070760350542794035358216658932476477321204090837651399439453062222826225087074257914473614012624975550456695615138841707118409054963695582094391100162893971844678572894518557386735140776581747954111587577325335492628276215981185561463432772735737626670419420023958365077207750240054107501606922186139789175639551774875340696774552102423105525357394184083529769798619583508515880061392699520150704637172514435975954158396396078458616427803949432571989550218160028003890634772604722880822177979030030888250641271808321460746330661748362507442526480637599239196675903711519353467027554751979292301800276362727333482121634673252303874611611442753455922304957159170747392079240491708504378709200073645617044706573400724007303985987765153904592071367828737423874836748831418874053576104750983713180360060563374556583884171504707356918116757646482196432256277867339476465682521900507937496876730249663245695605402351746533547056000116715824564489362629579526676674100732987228879345233213569261955105321358536070622067649451442119130791946903842973613005457478908375087646565986397970521274529584481650321981179360611768646219463117475788744178928205129539789807315553934037928248196122339029264531087450325018693014608890460138153880285639267270625251581886974532639844688798138827188637590856055195620953451352754404075654532275226673654925025459442157316747181543582398681518181460276357366615224081291831127433058004622359472081988455217513198050117499289075945240236731892832796088837689581313418029850657499083647058158769154714970002340963817174373903711391735625476819660150205131050225206270845937599880244959095012162178796378596879836326607796763968241407805973274476351126032674852092418014241182028322253524706402238272857778663076059373767443521527263247005203933964306924047282182090202267278149395367350079665371543398129337682787770794888846585748296257612683616238058416217594173557041558638502714196529421717550024789720213804602481816360746168863003544569820823628761768872587241350036023196035844747858269445475399351210367002588477709100722838480807440173568551997741175523020402418692674997089654146218445058996625062411233209688353129738369214712797038463643674754479298937266317587383637684406244490053398759476906008011717085269367039226154193028094284398428420666263826356473836434914880117799093023941986587491142375549131193881671511625046041177807639061701509461921798697360653998828783887604871355331975101024271535290767035406218855335792161848986891899211766075568797085802418489792126199905665373815270233789326247988717020459563850016074489314585069717026320481903274773313596793530191000274519516963818552745320642689422182039382217941580464949507236144404859663741174994351373490466806450282635974624446044236811019574898368027493333422672116687991813654642462450170829053888784806454836073906484709956031981709772784552399210361085389844784892189174899226746395418912465464653059228426343551134501223791880292031401779171639494777892250198818813827018039573020411707313005096498886083648211666180434754324539949334141515595470030363295574547530540819318040722354286427362200870406493457057077687050661483385515476206639179205622314287910390517607520522859797922172874522985732588680605467563551567069909891460436551943229054054566612467801880520762459997485755658271940487117372809207267707709520359490585427321323807116353301180702088646652217712087566020751496428622506154440028017497614870690836743516857570785456815568474472862266099825431832187152681809967607522284327223356782390279513051352555526197695846008179394086571512679075495734511128185494927589894577880868930544258184721816713344111509989328342901802845028676369831238238858748175396870433348309909465932827318583641835302409262681179830779519442823478018978699456361580336701607000094340916176519365313640175500593812444958058819280627624258630144787916959567601569270230138415575739555263083824900742907642490554778166884930488594483811460498368277867134892887371326674704124077316052330761449924489298953052179187514455979682584123537464189548038524004222145188369552606295040911502959921044107302861367752643885355683634884088414392021901529268538521996053289906436397805041568668132499248432091087417895484948186391661964929491677909242501407798542183787168091234632637094995139762587563252620572162444358054338534231248812378514822457174579004225135556838235904302374519311199782897947967600346156722673609766563092145906133135861704070465562577751302075419714727772687814910666098406026263619153266474618141117287285268008404790946365969264755242920751392889999961981248926244780250635748651413653751513565812487189727278313414596706457942665465341620190448646329991896977314117071925233175684707493098970707566202214152915812688929335586001412130426391432680903409923800767855050755595519593281396949982085941759977565121602873594084167975319579187069697241242408989817907472239753057894664614274430367729395033989645953196138013254306914346805924354844694056322741511077574342800726676917380260392972706862183259119447228519616115671501506889557036376297046055959051430290903080083063506046680022991044780100842054189026661432305444825352267145121063239293571923699708976340452997954238375114168452746021066498111155567494251881799182149092213717074004058733494494434113896259360378525328738021159072666706127913090875754108985718967349568748923427048316406325995923186523065982754797958383519724822600406561957275178218927437614750851601446498204618106847818192227825174322438993582905435129418958683814333842566434216728709470356853044178691888932228878631166628338578181637453088407729446809041810637813254549891401062235208654524406849679217345009897053585915799008094712551664776675318009276929129651727635587814525411248086435569175067711400027014646978529274924318555913967734591343004765708635030645730942536670178101812101010804786744237437346326766062288817384326166214074444253866491029861991940744476243727841400944902062308369451445598299961249067968629196261508781188642297960272506113504094861796568769342846126215710647141177377379768981887021253028947806004781833342015610092777304052240604718571921786077340293537373527356487021590859759094893531549227762226577300264542797126876691528947297463798807411113548061025441763913086061176827435330653270527599334450084289442603044000081196335417537581759080965528944808695164191816247253906097655712313611309017243655640113686080211775959060266982739027338193255005447211160386779971368439745076433506889204765132864426896128788272802806495440701046276502753254064895770444065771590283181709386065515042359215807758903185578488891126689676031309871361781720656506056048808455395177127113497040224553807023078436201988780163314046247353549655389562784688041271649779633360343197340145866182128948928758713355786074622938874122282597548501442662896328923794184180181368133318489956162218086864893864621772980918754254983568589783074068655034676806948060566435169222340154658102938864948280899931634719701709799310452276726094625543663354109440435140255643157463726415292484270242264814274453665836359666927257783896669164924429000725814116666284414735683984673829591147253335273495573482380763653427749333562363432465259300471834508061853721408119979361018460632084664215346389527091183133857872614643788684554192990113728342865067038411530081127399849847068368155828678940274689782617460682822271544037249374145219686911394576434216112681131847521796563089132136855639081527495909035330836322439349655635530383382725866232208507753899102079426054380678827232001175612845772393686344436499451161205504509013045216373602802228070625259806431949432178885971001094874057438228322251111422259215622530293775472764149217944395606957957086116805501387799571087717020890444303179626123982827221422379882009098860213949373726180399752781929597345567669917747757396544799313719262264093296278752825901121329380318555262978110822602851078994177718004231510505334736074394580462664440907620221565363105117953025519022247148544857511328673710471923703361043941386785038912099057852828315179272639698870423847904218077625239244022019600467564853287528605848975915112011469019116688093172905659123876024499525088525923775576694365393436936423105484448007178156318676725838813106190515144442297103901257993534117803130105420187119571891337270928031011128975147598630426914082588983519211452755200598978769168230615159301723666541678726535705308709329388197423428344281233844862922229002946951717226039229377070862134622117226978641868794833916860979522293088651379613799778607958278002852541331029569991112922705040078817880520005235563849889487382067068665181754165691119900606940427129897547921432635988503615953565747677395166074523169293371150482125628819290620565915798254459878609528091557594243649439372320780673516382587207788331496763942788200308011991279481477254334886297421225801255883438132068093447224923602422291425731193923409636964018478668862271047070274972970244939013462219736334005097130670329775793717133333289627204778997665644015473431765090624296198205501487693532297282821780615059936791681519449219798271915443326366466976921932183132071434691076878549379170706107859200916657658675777050228951727997071118393452791846803904353632742126714228913539043524804008504346605866833717589495684577187110509541086347883871751588924264175953437900118521131562245163669676449437430760167158943130323857809486998587503496979949665367685350335833471081217083547418059363633717195546619467156601785110858031502866406337272047929222920592777032412261289143357767568416985928645794080293321496422779308207392403970396265424868127617852144520890982536601421900461845497429727573122827186237179316755667511418320201977836545802117312729954574588761535980245247142112037184366703642647893153864187139229335591758929925424136126893536746780553383327137479002562693271692656450037824353149308375356212307668145004342043725567489521997698933420258832294598253805310047481380696709219782481001737686414744163035960815250163883102856520255053796556754035401773910024059251117623168970803500943051009850467546885760771016908548049890499449753771999937833372728129204592470889015349444645153465241463184649925476888382511836460159541246965653414965652884825345603836508409784086690436098785264421718496659487241202843953790206063580268700885247176988111356760506733862795070444835798339447178971564722132392618910851134815785917460971806960867403117508251314144520175520981587175970710211712921893137379662393507161832419321858027035018023911191947688824383121612771416910270669503855104222687590351705700801382380267459514154006336536703497500631530553486791729890632474310819381639006835084090321928655031821583844434749583052501756229648942184769730199211396846467459460778393836149328850209169616829266436482695287196571603554462784010155896323925048012941904667693957539481761224243059819424311680480807677903007572595874188815089218720955235860885028645723800057393670743329276511347057258539764101141852186121683449088537032015380937775441525537361367622755284027462660296328396770762915643773488267498490444315179465604466005871563911321988180905492080168022873023226999381446650674769138961027316795771551894835842389007462329179485141157376854187557745171379866611651472721254642642570597302902388587153873948380918853350005144576510438851639478523503169757665984720385241293147255126783663658902306261103607944716459406023809969949509620714520744222798216279535411891082913762063129472956005849188125047934812688478288077128179364266587073396432806154134801760024863192624329291873152954278746425990157337749656454963425110710011149485987119637494817753575549406697566419964832775928604463382259359223066379106907079563761604421553009130079388396836259595690827093017807864369554920241280353073899357236471528178923639258987427378432509116388974925442463445124836834422384277837391457125869327294864263865477903334460694087496435059482147913457948034029981076353105523456934687570526069382311561580984330599174928324441814069478101973734180748875192740609290717110212170304860480362070040946043963374138659450494325895575877162038184085308045615869207582193236096629768288227262749132887485567821051925433895776578743222144509958572106036625351278249949171480522855162024466318599046640133721050626018643203060783976272848776171611714133358113863234240884799750832196417580189822591461411137556078689916672660578339926918575181945097005176065639492682337148086102500769722266571126203820633137547176111622826586689091263666693249732647598617551288862717743188662682659652873251841665162055979859310999648197940116181754710660592711495369172823579750367336024209572980294581522461569838212401421646667664158157270067386478430451265877320915317432756366444923961366732717753040543266937373257586634180467132457551862765202502845865723693372349986993897018756179291028865658449835965890515716874366384451830842861388774073481264797425563033105202275802901415433398210995187102559397287066758403251225553555428926755611441927760752418673353362901458504598806787486431397404978543000224975915205034667840976161739351155560258140184482903022460723267609458496241162775714730054854550027090445151532832346137621135350183884375050049945373878369816086054140288052866337090890338000240198744150882482967462627579869442913295204621573136457439831602970491229034331058356455074896998426217839200425622863083776765480857271932210216548065614387997585913706965429068580380417714835284172937452360919421553508691208540614302170772468658809139666592853029826997664644705479946925061103907430286835728216765150137356420267570850083800930954718551741170019678264211887675820829821948702655493429524038564024050815652032182822281301974500764776163085119653323901623641624601353792988573850397498835699325471543396883725631617221254218240031139063998752869650107813554290666714163933740028496348984253518179426054240502041361050869202024945957986517635791965683320817757400344993066681716046258382408409358428644336144320608840542456201743798005000803305905364490572269712337325042744279886307274747031849528200477700413074183354821836606647957509268839831826679134003262082162020669119053867644905552518874043047079949554864231275498783282137761691302304710374581444632110940880755676537815823701037617262871347635620169450747183499900448275265523282724151970479192846957742196741118534146119707847395161023026929422698201002902644744998793558518066995262192906048783906812952398501310547786576086732229620227519791453022796496220629628834607701858509960471071294087932251692711246413443113723550229442714363165593603415000769417610747793396486791423178120041844285074538011416824751975006020894726173120262672506385676096981332089726580164979068025580752747464621375646705668251854936256890661735041701703976141615238591493897165077853559572748068875687203277823791681974189837295209547108641962109915941817236099654798566798030926069288061987137817038837259209511750304925658269787248333164548736969606897539084829468337536315536474342151976015891873193814091136577238635798090197830080099571317400283402442042463755262572311856065116345465532770806287756544835825194577589495825259516196224465568347389010026978086712490926344388209894388473283334628536002376029067697611683195789023882702990890275080218139480533138941537910847049205266819726585766344773737970929354510313990414767390932254546399177569906846519291727054738681803703580176804736164893617618450092025682187004372571475529927798820947757604867563740713949333179860780300009008916964240376301927950071219083548561200662678908150905628590110290617633018380303718701335393238241452143983173646317503534689112580229240060641837040151066112097873017018186327774524500351334172088228368918785005322207123180376887178784398896885028350427518683274447801538777320000715682857493775201969930961771568286658608881106722624045488420442536186447584893881681811997686922025282673034793541639191650135005208303645941518735967477830969247678329683845532367699515546401752279909390696942681641684838510799104146912141794837130190652363253601360072865505246684148432065461307498854733575883961772349896737689716915591586009215874760439376881093819144214146864779636023794300988236025839603712938147381176770804270417067813694752601500168249715331917033602538259342457440738544598019727150223260202603447213605310472718228553242801671519998009668785207213782442606631252385032051060350294629024918097340002293003401164525625586301640898391833840886571905224943269549978662846890267467001709920933822651291422326781553469860948921194470093652778216289333520396790701076737222960947706682703884995620256544144189761284114353110218641575048451837903939127358252211942005532969932560122791817429789166260243809750399797955837850183657005322103228595239838590879912350681459340439868195886361666092540086708315269733822045200900686554019915094439250993709778011006302420745804153808407097428959860303533051721071477236753129990219844230161760994031856690653072323544017472197382606422342626249089636580503505788289413775137984905846261898844205071174820121854426723077493903113188336734696213643480481833933839670451654011261093882925150380815650880671246663224544427697350050605677003130778830133733895224248607533593542957155844989060534502348724521827155955226527634267236085114821196485449468591268049414052819330059064110470041831672227803156568278269988031352317219475086995588240288366629673276934649941782619753695896252246515588048459691015110247374671628600050179131429003556631303471870038115791743288739600121299292610505268433980876687953135841810091406928262097600647352580078863500160409192350394550532906798833502948639545889633512957219254132144923903859095355717147289567944286208766797337623264388951272453980736893304858373516441324129027358922576908369328434566114571035644702828518622276282366173335446548965119637835614377631447842095861328305840630395846620687310349477323650309604768930689490386009622667924766600956748815660509051861101764726760090995884815316992159325843846789108593403193089231993620656896908164519210293524572460156708049072201420978228744810435649755580738913106965733937331526257366267133045195609498735024446629302188078859177305220847281905129128800552659190071858970001538063220135277890859676558097978620405023160803919621532686641393331760459570125809851329307919920307641396318412353772276484587833369170842075767794377308734582240119245343890627566349043262399387138640329817778872534389006445524715637138095155664918398600871008246887713778667018537465582144317730529198121812726148576364892086061134856533589234654870270641286544836269300277766558101086963354059098453511429228816349138154126373020025405370804756695781459113665709827917213957921404076125303848116587526595019831657445999026871759919142163034062747516676755467289619961242186149021429330773005375803734760028181954161789462122785853162913378711212023151602009534997319087902530557769370804496226358133023437903480132355877081217689424763866052002078877455266947143775598571648989130256575696925929145991329756335960945358932728584422300264146066764365641433868559171908159234029573252970592728164226777759271062973883249086515034907685115284807357852793574482410584678576901458959704584012732274203276998594189552846998710190037700245960086830295065416296645983040117271522483946375524755429803921799950912397282992262243343406661628575359332533295902678643808988855159133923196052858428618315596119376779442473602533569805822775163233573157624155554334317134005618680641001029779413647730533218284794198194017923284974385279975211751813486832759594001048237316977702563167869045130569139904649360987024003259303182789604148276298474141389157176609511664872486583325558428413814847562607585751293811958199598804244440734631104665379940131668144536503256548416255471812478448349233824469452519963466196161396629912167210691064657637273724173354509138346417635099075685914368886652058319181558892995480587444097837901190507257160558951558568566095689600062695879304311621004898737055538513268342791341143921959490221206702324211137609974137425351957802151592322944853218967889882135476575710658590018510163596282567810903298986668893717598187603923432873780110421989143010365707947339810455742416316673836281352857755966335497038873784337773875455687308516884979368523459783655801715057594386487939771433666596540191520963688799328720251971139422731054745706671940756487231363906088282153630606655904774797373494605879023448195049247178815035723775763310770735554830978082534478614218662730758983955136043364131649200683519406582908803985664838937172826724155488217252220429466099959027245285404073329843118800791778262042461824446722734307470376327191209484966948692684547455795031838365503891022470704353302049975442601974729723450001293067618667527991042965146131680503659708989592547095819911191577899606263857919941086791235751079455134599930513759551797359523508275535958854779269067278807890590109131543284982989262648499464455465409852491213873018574904309723439007097086029133949512495792988294281491046557867235725713191737891018276396548406654415187963822189319992832629368764049439221973811305213556829808563077722087098169706597571928928663440836343035427303251504380610950482375264131249504127268861879903261621890141702358124609730407010730339062249139408022665329377031791758374196957011798198713796537089518186539032826209941254661768965351082521523948390326907073392210687362217940854316559055352123094513726874195074807990520221585736912649210007841525186156742356883612491526998756531044229668800003302909489862193267955234056720776438551905462864467159108460336553186554103886128749167187146798375962836206775872626764644518284929621092470578124178440070864688035323049169842626912557320680261420506248474738542746493941956398162918242051203558170132306189690358030965189519192281329675569229394796723890782477040180407258954878375322051353870185555501056345100525657534597219712619334578154116979161578960799898431015090219449671024165380537691473776184067152169037635086410643820163265293827898441887643231022656488205302645071713144565162615512681140818772644763260441206023748048476114486119318406678942176969528146033976861035097552498109862318698981654230556815142547961872941440812827882443156246363069528112719051711705057556410163190054261017794729074856710724470428173707251231505893414250221464683649015029721565065251812440919644858293222470818701171530493163806311839294641624365692394043841690264335356283352544135324442987453084634626650512535766146583462498444423794805642556817767310305037618492644902814206768347865352627005261420319097686900206359767669975088025346922567530148051678192324902862503092030760725257160126844537750446381343184599173088041478388924413283379088003668441394495080281121657033950749261291051103247922765156693881359132237314784292305058347911149680398797350948949674783623307116788507749242632551321430481399314972901431944630143815689555957090987988356060827287931184382120311783794493521110238341123237544476020260787376622761933695970842159353862147874512796746842909915944094465978731148998051276203039598619044101539536272047143091555516957324799474267149666603374467676076566501780658494807304270264490955710373584654187152630601916782366237221422192592607093116246846553533380086092701584744826321079719413737818132830391667605758646582636996698523820725763102623412572095734145336666246906061353743794746277374283117978005287607002027042661495967806216345582874913104915829025967483076457998568876986134311507518109530768439874738685762873768597462016006749660562840396664525084248065221197774624454944326866355802838767743139687130443876645732096062015993755490822744620013889802615994654519132074915132886517500721213568335160992366449482633412037988479566798448203703606087947787732589960692186774451980677413165203660843830679351509839166182800276982893073247398238932120239125737165448987825593534144798270189224373332205851330218357852336331594467285192445832452908625471750627862136560655890955716518678375716933019613628036389792174583537284803794523153524900592528371115598784376031165797675884475730046849840106433642422869957893773801405867091593400283032356250586771867571849806284619635499257945282929562664778481731884443145631000869125127936608223040523929223049163580487489018997752911125365780793808572518842466843936934193062510349228703797265857516032692369927697154883815985777740135601442247935081171688589321993541435873688635727518904379794048277877501697180564764024531845432044256186256433847373054143704529540460523882960727650858941704583721098439578453324877075308493907991224533107248336296608119315249898159039716111011985501995904239392323084665718905790541518307627529124919854558973668456320373512880222159497894718084797021417246305166205186000117651618317894523765833605652683278589142284965122117699338242007101141796426196751434201268251104722986896103860151300767348983259501898984293577072742741987265246086292452746442273947810696952690358116513708138788929620520787466275780495663846909862983723980438159456815890986299406464240450492943445113804934561819456568522262097769195911355784365935611942184654514384823296714831373102538793252989982743653012793801086360523424298982331832207685141194139695358498640273720949120493536113227834280137553038678553353550474574514533948712878503793237396350119292478265979238184910479488410858501096416953664375611449277456538841154669874958504983977850444373285576901018891588580461896703587407568798616474385748124706867613828574640890570043432148426185495295802475028415797918962300140593659114422091802197318769269057253555280010304862095900460251107406279824871056806826060930255468330819271308907084334476600652867056184368142146173456870875298799275066767965312349092859997699148105964401011081032072160524031736759158378451481271657576348953404735088260473669488545138542441579063322215842701264215982090426005306261595821523038804702667004477875327195797351043372849487389232258130425672115923658650878051976841977213034741400556601570858068010314236152383038806393492190289050640990893736197506374827306303153930360466499269713556508120083675425227094413455568195982762241575423016630054176202417625800846850498816841001561301219293309643033919112311204596641046973047818236056731326004007237955106617735579952258294615658139978192756012743613536828551699233627738731164799905260633507365391801211340656125435043113021121476213167184973712209515688160372387927417730803002327708840633422467763452092400039894847895716175786147380427320544143873586046967572435398972496626933992424863383575370464224650070872961227886849634965392715931133407795184401930732612319839084657855285896585669595665696670705531410803082478438816506672480142333967145096651326411218081256622109304600948605970165432130942119153305863818257778786506542219014810867213781203289631308009762431994816293607928374025063835200894291317252098225978402035853539674389582446803500570353152009744484977592414509119382843693157879595369515279735385535793925531408390360656634340073040285457189321951969519050355523133495682087962103830993679324430966191309145588026121784043570718942924733075821578236849325728720963151528152121233184797451097579231908688444526687042597749250914080377459620410859833464127642982414309688863409431727227944058598394985835968020059301946646825500330063627135571045706112293105214517211822249941046789189903489121353287920568144519981766501377673120060022097227769413822519758378258376660447482100189994892778559225105320732204536148030641942318120611625912027986464392072218382022532536696180255624063721369536132540355733141649283555566125602579557680495012460446028379228494007029866244473465880920620183807514959203314961225822780456368706525439006023794221643191095367064634535196756535250930871538569660083438510199076484187630438228068401371108856282786524532978509026688164457964753044009293310045486920166463351791779137991695596780020194363112347633460455279818601303037711429000611043627486266592135949218415130008532430069697605603394311444212653482170576177558347108289659202051168471113932142307201392438880655387703442787325217966130351489163602917506600451474071747191629744424862695186818237459582466740166807151034274084791738364989857123506508943392655034889283170201569761541581947255852678097929420992329337143049836134640787974343200682093995739558302288997026268406604991824941676965293622075967374085179928165568190952418771474648272458024403143555836110308934498815251585149942072341307194464127583035644736181235770324777887561544135064849241874883552917190316698535014462291654148425488366922740271263471475168570602240549616910592212763575480313509202738338096193125295993540265393343312732940625471111906399880360047162778325734197329550800620628151106667317869171914773296155465638928152357982994679728535492943516009856274898845368128811660240894992330290702445488421649491149913988979651214710341453917732827676336498015834538883144010142384044105479739645732905542609481400590958346069947871520589100017686336193405875827852369445734950364030901031820180834413274918651257700605379111248742847139403205839516132403065494474197901784212180889446988750659635323202672582312966332415922149437667718452766114023188464687447211224694111419564168322981431273629725034415260897195937086500960687909761966775402059854687632893884142258675140389631385815664798648105989462252294382859233717640573838055522738592685421552488550729827827604366689201342852521734297613643351850793403122428495767001316787873520716779341837463231300640170365266676897052041034605062445853738626032051456436466995063599788068536643850799923731164191855611225616254318808304349623742547433734385255539414174492096321067469494835342151330473855078408320427855815537673730909286273466490892093270628053738829699792233865525619826537409792246238257777020215810053985609837823527394460426124596784122908259680049372622286924952532313894560198886850154640284980987336330479164421137347426742027275394773421813856027410248723958771894011842940782801024340176524763035255615450360034754199179367377825782980573206260329123190836271129204920520286862876154614736067205746153301420001924466847935090754384522219180980875066496046355585362488095293424642534399943024666714748495743196047385233648736009588758975188591593380253655589035949494431599712968029540180689308064134659819412470326487858038246930436355728342538007503986040795742027445569215667473030970812663989877576223904673382138118302514991848173932341101503847903389730370146816512642016577579425369217579261912122110152969407119052904040018482025507071543770244216613471252689658502943126711645570488526679004711204448502364101656588772927412832222135143916893271524555433460511273798536107900549352954746569004907854522073443398517028204192902873400645074797140518819150523269600438937564245427493108158438493655087754968169804115607304739959303509569333529271986278457630481065193800988015684092176580012696175033416424376667599521851478714213169901819748741876891935394595218313758691065264376621982613635657506637249158531590579588819155059357928478127243846855570157410159467703038941560304630449771609971349653381929585038389623727143400561422767062183807362782693444663371403332092560896196582593178428649297099630490698741915029417168361373285172381809921039179461300223395873349143567229826596887850082068258153398527693815975020914848901042321915339759478750874609834622322825659532680340543709396776308499551991315847450058650090133320606278227171987265764404934456209800544573384540044531336774087625776528588150463658781231982102568176419348157647823901146422587166588510672695997285995309834106470644649592975034628021188079463792177168109126635286659170293949375689583611712458147063135676791934140190736019926882645538199849370077486301876235004589708393168211559053295062426668372959424294173669798626394578289245816553626252437458809548448686619630282139078760724997530784958956789193769143729466574868145527509113877466289447232262553262113103888016897919298088097136711636242739540831176915450032061521194592960167728148012227512733331293656602780423419442024603552668073926183329942158136245330458530334435961060817725812977200647638857545556664124382612868203611637214392935991564521954607142897106650009349381045425697243759943430581649814682667904882920974835938028037794343603101269743391293726747025801998132934747185011990534825425501632397347122638762198439080688271846665754883470059226608593540566710893257707931067096818536931127437250302832436312059942758420051527908523968189079918495183397418219829183313553726688391089353252705187670730309207714395538944388437704961702090357148835832906068187093527266030104134561583136594358746563756613616631716448095050211930474188426278920255763739059978846588658681665472176890454385276323167763451736029387379964570629292045126459113288597668826843041101491877313302361066278414112903123391138897689770894677241984313880021256132476173516617725498150544060101200562894067068380287567464932128896966848028644485463922428533188383939153690503680212367713399829191588449880645025268312034868798848412039824511246442133155455736827269662895739523015833238177720627891043270721821089047786840460986920497083581226160316408338109169509949642730198107331404805510411973653092913556680988655739694555130758529812646182460811504906324940078160006926615620108535473860379088045270698864235642924246772165557906050970424724213335575915737205500910232961727552368237003771038759928408624862203388844055467036138525956797906295841228150694492653183890144800320493964530068732897246626810504300520388544254881020254321727643732668759753397612170991554988074738972460053697168778679001426696209917716785346765843916964610007743577429370734760522350631047460413469836539252706823180849674409514130787350060122205803563669970866774580771107827796476835523162777277116954572023297681355286898811752664236942734469525431067765033447857724907149205900911101076685110967932202840121990547043778665297905402809689078445371456723633155736954685337805549764495503774160776277268856953124649046850465299473015656324341458377880062676518987356775819640139160847548897542450827882078337079996436051181868054175706585545483105474056077432721373762326996862008985347665485700532304647948793737341166015368926930113990974578761675332976901224724025831801947779218346138823356873608708918273017281741374510799926515975555133626150089449670228427100043305880466822391146467605288219009152710269116435114694453304332430315630940988812407769873820329697205388361945725802782043586508106913869445856405860655134431522492687729966394141051600483951140028441677251117660049330301990765602935404356524357453714258191063952195676231302262414220855051866839379007139534477646551246987763069355224401586243421798254763772859650611796791404807027894634979877966692737955130954051779581859288263817532617593676947182274766642645224877975101282221012471415022180534992821731754609961799861664569541824684083506888468793224129682701911784935576013269765423003861220307486473087538139955041475597564714987833791616404984014987831681862863123589840000368734800583473559397128599555412414404817425271077936880550836335174844540369753528029844960446888763743765915848117018969732668976304967085168864039321007108674828897710364215110956729411226305783877548191825820076971788850775275996885030734841998996396005470474749729500096538323058755780349246612626100230004200590513202260189476741761479873263487872522379034154453970792413051031586052487869591847400688551365549753727544202326136549363705064738467148919272499786824002435324473191424881556148267279755861305435738928690512778093208982959989601930420223082337300154073690284999957438340843125217877833374538455387925453460581972785641876922169962537617892789807231439004785838789001683687342970540552869755243571328020414153987952101597344348854950439308222840110037523146285771133765821176713675322650385609368430416716319091322011934743797727476290309329733625965632981934142400438457070934045555704109677635792977656844748402173806286514439137952335252593928306279788101851129890393912032520928014237895181060190524133363984642991650667431647301989334985862875633293894152763617284531206909119066933500219679237972217116489034745301480939792834190614199572033086386263791899424971197947965593762680040065033153198127791087119236128825240038408907157010118757366740233371386502798325746579327476101576027828981786996767776348244875748604295906834240314413497960682549780869628104621892863885944582605890255894283972873569331784958189114202178371651931948628996968145868245765901245049992701997321806263391829330337274639917829915799721221579123218808585275159943990393381492131912605613732406270636940867642032404680117459375709697132561134345732328431484229444908549942711075378189980203822227818708627711818459200053592295107642607154300510029457364259218087665738891899191730124911793711254533485619486494533724752068023261440079327853799543002506264957797138264667952356533980044427507816305430894459056975163943689307712809422366436998382087390176186424298279167070281305794199043563347713829940019771777363423212922188525985986836693738656043775675004270688519198161689219084521965299326172777781188611924419707371565297972221798386225516398351266051052320551916080405577984494612239772851881079972964802550829171251238327232073829032901907791223364309455383443518546180341694878955765928967817437320918715396901281491751155522262807508062280607172979640318110620235608082468587730208358486332013332865803669165543914199330970854334220013680513342753686087710706702302326650110511729005453760373737456462270765383288691246892217312482766356962637672178389722544260965971221950229337925376186104935113613618013289709993500145392044719227186488573265120714811444126408390701263284845246359045212771266610306062385558232880976298411811400334387241954462651996988875336209152153930300128191031075507140805007609246090518615928958672940202174015569964543710439298301123545017979940148627206126600804510169985009744078754892132411048760684444421387669561362319995972017516048762676923160818379147407706714277679856492717717011200407203378487460051029108332799392986178965043113969191433793232098043437858890672659441052753825943338733309810320446522637432648395253459687980392074655008899107445351695813572449996350576824478822144457157248179206410883588948370106885211069283583016965032156417483975662706872570425982953356399284886070491982833438805424327183486928037077396962542473133455028874903736335425208091906287644913003655872490549373993523622185222381523192602814254720395171586700768192684200217753286998777015270242648424881248728619592561769923483039054046732259312158160497567931606775654421677321319934117513791310256996180339922671352893517136420794981331369320440708093687894794611912469297862864041088200815246249630673002504422587535816800108801523553410508333393672313652333830804642118571865676436042511198294335740207448280143628360069869398201235002957930689438110737806668086658400769755847916504417590322293068915468553849144507449249248459264155821363953304015588119699296453959629696570847708321925911612517509239058014554219578446377100293421331814314702034983126569144629153831835256824256198123963436840331404259306425021110580773073509301078977224787263140469702342949292368714802651415569601737101895599293534468471995183086323049462411965394118373532614067449819445925201371567675900440185766047607129412799472687839809631194353370916354931475114395358863092009146412204437340801956481409603747227607893067047181840325243587282622619019554235086175136270280875073021390986305535358705256916579056110306352708772556463919894326415632471701939279310149898001972884524242459001691855258304942652379934448762553035994678821313888936761731987076157664545881572739153089715449823303644876345449950163314960200539436850623701850549167187987718289248639130008290361926721247828701546344783822941693604837316886788799362449914401167296522729247804186816340295551871973855359007076945746335681966841740715201600635417502705685275072739456069370813350559676186039339195972960036107724939526324474472746635755483125626414253109034372212818890483031507390370118774466499507561933800606906995819324628614592465172486238516942792748557861812298235031419071749314441039692370464015193541220785749466349159080306811348467257892517038888071171776985439788108671353729525893231798805843802300891337426617974445014767794555388901310546116408147133847388766233275726666308050772604319409636961647597979441638256991828723216636390962872293069629409110337979755290901930165937024011763187692925493562261688527056553605736461673960634419340234745851533133486642908581344448494873215248191567833843834927608762993821189396394416407100018098455535588897790278819893675478001632063955541674408424091868581453799874574645106897024012958005962804254732518051843425566671597812026569528930808263889847307465891624573684473075951023986126952596326930563326195783717037849381105907540380980025038268044453635446266388542721638724736637231845350840596910843808723876996671139792036281426215474860047171234951143321299168807158980955669557351936271757012989349208462928969279826383367695464762160141787320708054525555821486520010253076388466324376045209864980289317825346959097321334968952449216646910450368369583178181712489146326306378769490090599847555173912831985569014324305834063623455600546120239347309797696895694152978260698354468614491039595202013709748885324482726381398277112242742685656931371625805944494361435185796965217001245535086839563826649128888050127585468186380111441504784534195875970643027854031503994736682111053251118862656192787117155168829939138140984030453043791718988628884079861539168789157772001802892712783591767641653585432171353556866731750834391567694476338805410884852506033319291176943565517705311479132105658641614771822936706566670744330563240895462098096478068136518577405769442338694826097807413487278489782213338277481669080929033039686702665439868992263496267763715918679500292508655959447644262134171256410843664457570449289987290918286886117038667107133552754786004543251889193775120488926065487694907395456097656528310020770113614881910528491048555420565333366742525396419540840690093161278142856037388192195161282713670133841411498217270694971717626329346981654780331378593885985564194240562703115073841805924555595558744425529597027294345640957855009731939554088904905228154819319097050963165058168666320277050952752170651652363967129651824553944231168373859562888404144478246061035174170204841422217947881861027122319610052956356522228934301682761662807106884930349879752549757824154057723051779590260092772893256713069812787617562961152843958336958138915507558823911367660727854597797578058113642039437645363261690855512676694241585379062203986170159179415738241303005785213061032140885483049320350119005163461596873234619289549980649198309262363410796591739500895052950759441641553097338222735041664575421647214886036478056188655342521844520445697994219498625847436717311974230950413036858475857258458591451153609350133791087787026433006374292674129414605598276195097432447289729207379391938819506286924940664423385465494868108292921557579250252673057309777850575895327259863515398780651735231255623315171270101425641932494135244279743867520463527225214560837231227637504537051714236157506939495865200410296244521258832176805808826360029443341804691806515527632396984828478308337434101110430311274023883108214330526389999149030208287156996044854767150799017453227266332139687803852635775731527349434142735650390254636531538583342706387933091714371799998570408103269318706258212939153376741149714989484407338449813629507135335243668615585627755274679595789891358036346196006252000903410373077627273556580729045711100849061818334117716500402550587921091533611028840599263750937801285835135442054378104913555149673808686722828598679671625440271619049533910501933318073483128898262708801292788658084634095809283705962401342266922918724417737657078018704204142019357309054424321139227413142426233145482999226547473090956693552574770246028147223151616240014486934155833688715549306708043269170018759479929030637610705216570102008571123551480914100676410681140194141162509333613225808050035072134666576879500268825309250162724571943237325247417047859155557850992077869298344433921483822469397487935023546289557560854994834158320141528147542164956901394120881816034996079768020224352373745059303385096091502478082514965204605268508013662178241884967985473680671327023700658988213235603066667614825153428699346023305554926661163149103251873390016714117183745173769896046603505090980899977057197548616747009732596659378563954343735723737084493416865153155073027904057366385374916777440634850234953417268054549311662001233874376621601855645488387303754788082307198005200582980622857828748000446868153686122508960357260004916924338959242107466186949451182518183537301321516505725209476051428042806603906101108448420847471478653123308417045951385636068099040474036678065617784810496847123708294876702235210003493364672762395763549172305352154363001254498157150912256387569637435503869534800659507948778917728977574050147984964421121837707500473282545970528853069067868314729042540369278203192894075021577454388125514106440187115417544353913168096262165023682631769474952546026221473336702812613545568165798432475277597507155524341934836229069423484398702423940501706146127919565446466568056676496099454967316611126280197766407636300826972953775486476344082164426696532140527707293350196460440166206978229115666611413241524926306619440791697889909914270162617932088394265061444834854682836791155225013731242070822313108632231010246933387600144874892909425106467693889186315952899352105802127689938485868764997810893247767295218729799256721549458383663473866532669326130691483566924242227072582087501085600059754680171995257916836385671811335230828657889913051236508947465626513804760411007448577479818395960092295588709766114941595647622700500887923495433613071648160678545876618196430902584807551389582170984742121037471016902402449018259838168957646189016548429658009384994168256438597108599266930974227122791680767998807121049566072910016021462887239133757615726255336712373222007755710591762408363074334306752949788073123261318805710657519438881855629597061245336271973754286542078552224683840696056686853573265491258967132627412235868848101912228279308194695682586064170391186933864177389825728104579901390682642377469475291090798898182927616307199201561546240894347372852561016342726166029552201823409352410038290674961535363219406285849804085847903187010422716270737759559195392852174019051433109731819141379942214568689764241081633601355003880006250707688128865896972771493161781898688648898701576349703901979182830970494651893353065127088872625814410559187690597007923355708989074374028212476543513743823788917717111669323601507797658061594983178180807514536293768361492151080811219974703981454782369830552841275761704526827587678182284420893195690814227240524581787664798054628021241652224944904467834699865507387776278517540289197486610056871469486981895383419252120618770898482671165373037567658727703113785614534627598778379972250152676611553820771350440426018837456748898676876386566532322977563365900529666773173876126080663263101363723060979360988290271760822722695192506322881814129769202243971341450075470881610658120767557803272213859953759616554550395006204631119356264694954121175927122060302766676713449867191960696277152040145167218689398399223208564714781989017553542839409524423412877612578579714273774972604277960823159138177721354101915390536965654022786014551087307136749001861916651839614606607176897645663256799000512390692706461561129288957572642501788978980925774493847978480222210008436219381846277752563328653855117505042358083727685661673268197854242815670404137458407616228133453213591221891388957523514657426121403618246612995687107442102259144887458314892487101136829114114369434550940744084257997754175925720686934007648987351109062214731347430676132925803983870228194321023086358720471385579403693061997528189837765938297613340454875396741189290355660516616730207373340609934196300120225006134525815539392563862280639178486717638414845854581406883868733487507265467926380082405779667223779534719968242056116921714460838152651925470792400918143475103728094416925798595371924235028585449793234092236391237372866838910122090662035315205596613484463759191541139211930428589970630687272677185394114523726204325296326379648389494936404993457675069957358379104979233442704930031980428684039414880769429515167208956514848757043549360486901346292125520745250015671044061571054937471111461579554639475721390817807928637987207729739014072575343050109472681867144783824640755128933924883672891000002460458460050004858647172842629982095799770214513845068795141581564040873274988924110129523186142547414922647686886435740039232299415655059947790948384875906606237057582212907720954672694692158126074502772932355056773911778641415940812905124420779387310136408057054653203713992280386282010495028286957329115838114034431804226717483649213133156418928837264231065675956747540550795482286616526883672813678102609099881867371434909122692358232351008340240812619912789751279329675157519700463964858372432714851444516735345391087700425611861109115611954336886055022602843407516179277058996701028438641676155569994377114647992971450228527677704606149228408595858693686011636197878519116784711449680601968370775992359687571074155721546805495847040956297280256289867146862094409310820348651704985101496731827506310173225744240476474143845687608238007485256737482214786619187678291515402835218853824181423296536809768608850724363411406571210808466067631796645724996506642247222681711946367882121116955893909223124715684710165086037689260095963262538616524674763333332137559194780166252433387187800522639871293047731401469594229379378125459536622845647833065176192234361846771267653147826638017903968860393657959063493247101209825513878284802179697464484957157454101854606788668017305841542727004438745986080709146437667269471789097270783200950556235946593532265993876130838186971158752085673973249203921537756245794017857238419121700367768093512722310453641294179561906593633428353613455309653398674631457237289995215393918041327260071020588549838000205007535938053174610151704463085053075280977751938139937492078178662760099906648758835227278121650345498674976395889881692600361776738904188452077048125142062773348632258046313209885435435875523149787848817732824196131023689221963916746364213403883713651592944148391921769423518381427405601236533122094723158811197308032545370395382413340575148083243649573278151132388496073974633235825219775461826690941780316981277407380015683279836129655190456760772893595029662121458017461687143858764431330830013112711659569778348276768669297558906037886270746033824020425598994016588128024790984737556241782480972191842791719869355636083894238876493753540284024209327206302997062753374253457051812401571151135630530857400190694120287228897628013549962907011831994290241250504146697541881369812795692020373150931619738556790544436907609577439667687854809099338628306879263633695454119448742321471572401660392469049163563372949489044227886658297701285784308973036599416235538936008318546354800614820451854269436428173603020547285246530766303951080336637591812827106608987272799110762416161467767559013728162008600037076773155675858265818364349040768491017305768206962565518608153084826699503837863586112727604727247862998927187556979388970683076140586335431340983389343848123900025684362586743961208283612306344176434776999767014835989451525842106027803261990777523567713934237350326166411207933718807694370504491302157876190403334978650814664668008419033079091463465063668393473263495529534870258680817089829196801745800305846357530934259350796038493981588876452883986920376505871860549014146511830193728423131970567800831332536297746326902546685154590355828985011180260191722537498970818375482223490705784216695829208701810468009879941735955307294523186554213351032752985360900689935006592819730456100371388245941161845362723695427578306328505914666163519385040928361474719885277490481384200202019199763956613978417910268072015347892723771581125684119551174243332426480659325186649400080280782117606705255842862098664377753096648271195450625468569707830371694146516857228608560357591825417737289152953565807641791342979388248604176175605164006390603723108538905690904942563611079634670299115834525020195175105107258105781294306781049453710989850199473230270164475369585711299619336545169656932880388210937756099800916062575889585699948557383537943870651213602375559285618630651886404543787185776332244013459991118573811653959695355958502922922866518836232903970737930046869975837502847438371824563077439938310068358073723553285790792600939866167659542366495243181285580045989575878539914558747692170323134547797057504079108172444585959407426644189897683563507907962502073710709179045843038948627080346581669107100292994373795283437319465132354321663254156492701011271931049425864143631610716872669032400306098579238575261188777738749634267444963805202907962470970841807589595974206567600439379068202298993048232779815128573754138749248815224121258756883838510128004504550496422660141484858580729657296469186395433435010341544056927223730831553613008777869311809401352939225742827706190848942799022833875484284221892736174482505983451048665199537391012780349647887902415626048446116794019454467052755741244105405171688408500040996199535569652774905139919082711851333778138102941287835045537640784669594437238875165849646953593308448249192572873672459994655776220279699890203283896492612303522632893721109218422598149333062125122237384323976736214448315953907790389928217401231171913739360121585246988833168656576575172638020530958338524488643483328423055450823485178435889496782181896379066689562785316420106281656118996607033559601018631377642638582856155707556730944939046872049626664876300745986864954475680659222951051523943352443626889678437958277385455781476454501242545962687254410722912853761868482337903099396026101029719150051147779314279238189250351068055005829653761352158090216611521310386421204406792428212261858450237466251992337711554510079115934939939392986551123347932236986063638530976050755801854547651625925600641277089932173427176139678515450996394354423847109686944409734417255201242710855462597861122718381765951895558192463761627078948023959456980129548546408469931392265540947761312481366403036551735736277611467010457504443604182328193039987631082440655915251908827086552199684331099676183960774920675436776312264846177585975700986350541201900889447007422933998410159341761217673426167679049130891498539809574386663509366751373628371795221111762162817204180761377468865232037232296607904018030961235510571500105126111239643998289736883867743886823787958521426456706464088295596033113882451081599476266054873841422982406425231967245135498526413118228424876932414088911631021405128541532418486974172552027917560832397823102352421317207348300769308583843573603842725055932680183871074310356790240608729406876605320380868986098403883895507491902410534541002488534946394444046606844289744499552567427262598790167823489540647888419062130262476917764127623276208686369056160859502432113828816095078491398203542562808133969029554512907332446647304859556049132143424990513912653330791815169925271350354101489267660835713478230038406442164605032655012174667819876692684600299454619039064462069863200393174097478350715650252290509076014849940341413103951727177433129414046251433758674763936425517276490328797640275049630563667825272240384972186220348293806472674884887989285381534509777523096297772833410659073812601542247996095878015362194803321134481483141848450852136044374958498709130104776564520264335116373005920629513828534226074283654233027520355485608042211674659507169581402821702048976052764674627969964855347373163610361391783515178904639476111945594806745866957208854675234067358979974838778625350193875571398170604906359811364781639583857133229432536772108727772976075483530639173579244520325922017323548922160984391805903923983589168237291204466489426365460557658741302344842997059503012274452254768087325785558449908060488289862945674615936182336017492069505458217877578890146952315078471929717485087234866430829290536362317974786223452614325001822744796219224483668510240104468239422808820447394926694855243699040510362227940832089306036797102119250362205846146591461223718881356369382395250367186777529306025775611473977566906825379958373016571756378436484561034592966213564999619581050471205094942254105450374577502303326254860161299643237605394376993826057630906616657132961163114479184033739715805658958487662749265732604292227097563648480093935756832658289747227678466439553174139866264858531226449132158881870871537045539669883024120833944815279215108460073359875814316693681606872614829452111240057486676907905428886005894230012016567676071741090052898487108385306186025965492147170565005894498313549175337006785054763495159000364729803272614657636275591690036204576560486393858868085754866667503412348324710353891327579718698327407565033223654101820406687728528637174534383509896864176647508433484175081302235780516903164983094869163051506540723469587766161719166420927188815679782242040356625310818083026699328160698111424620490028146299508353693788889320394980775609882965404885679454746569712283811310790196840644357923143104663603153845733792007191087909585037193179459857889284652756379631676272495521574444613571859099278864209102955234153448663756659511162293890168504665751232528812405128293012348841333834272010260444264591481549091682268324254298417250768116842939700234412624336867124782016095907426526489846831825219368327772727630221562490465933354500021098843353026874456677719511541005515213777343490185249797569308277935618597667755990577018379470307355687297812239584518834538802747861229817996808591750071999984472527334805976246043900126362274030409768422395758438534179343553812109373382741996663368612087668734716971923864892342581424343721457615797804930561082550972558217425217093219638417706856435294956748808186829598062082569069971972633721384068775780005454248632973404479626460525721889140325255347177837389574255755463961987746890569413695455408056159540220516661010065556985436805991424439312001381384509341022896853789184611664995622309516290683546450017700249560389148126649311486856667462939426013309756572858698451064822468181705354459122591016634674294182901164753687452525201440975668600362315345443650677945036913865416747025441055432446377347341128606708356373171611872745957629724715480015914298285974047677405443991546022391491077290939416516416372954438321943086465862272535118290885290051435167180743527278618547419275381776479433632529817165432547586650832977871919219020875922573258096347268660283017639390106473945538259623549061655151265319159428017378065405239344732019987904382870221049572353557731536829665523178906543255518816870245020849563657633122229292030395981834695661295190219900580428651214791318990757457361307606011501465480364426758814863638000081755740338039367997230129565030894329649416583018792465804109864001721234601849866721360888034060110726476566003090062733242204896243517292392113234916163457716323115748342253045857223571223035106846457945850574090153827602303047908011423550297449065397870390730774994787746444396851144894771289651317023557340143285515506779043151548112231885001186330341990039515857739754495266797558688648169986272095422698531956483781904202995198534582644752955319301620162644565854218410009793776136184494924823705512334030394463975380686194463607344252541872290415785769771924099101388044439502800033226127081172109988336191364288274898459261122415794384925683215426950063539972688114203385559935122045370004846198429552774435490059346096451876891601934437862675180424704224984943186286941490322704078989913571456640901583111081653947989572549529020765562527928793084519573768344128415768598842280100720061867421423542720551438538431092170833511989797748576090135659142448203522059881672023837834540868280669760949642651669165374771244767481313067124696050801625478775964167507527272406516307551813750513454480077808322160584966574041844990306839650034485729102517352464070966575317706631293632585429643077643366888103561338863754189126976679842971835115659476987499223732686666254762508683468776942962555643357994428567546999730746686798190934507984793054592764730393504530750684788469411692426845144771668011801282099888299681933262002491242430700761114937043388993562039708073219007522443419096775212352089790980545291145239882079791471493453949404151615899451587523944645763479891343156136102662958408705141423266022623009725134832094970319597387655766619879027403868784881864352575510036679257852513319408058626946608333262431884493213891555858192742098754632104707937992133940641150948684815272732412367845134243884846312342308670556562861048425707274838838411294819099560450415155399638601834187157538072587679582301556182737949605928543137233990054261503792855556468020863664419150119483741246639231098354241057167659119075476787192968245901657847990790657929865211453551759817161367685132544289694574773133329730073272963220585123520964617915266368145483136740567395571383785718959777016021084900271243466604049687828891565642441709267582631112149713141515323470569518349723984446911222416083035673921696798793420770168472009636484831480423773909221895358393489375068624893107160973134938043942961907084047903716658528294765623518401722066355914496743755405736887673769055196689355099795399723656665013431191232993622865916504674486168885028664514769412443394282827729905389423331726894084567303413451888545943127352181589747119225140591756432457998774934831428721569529000908775501693742484644270025319234291287524494627336035398858048544445880132464475543231763688907654599765927405436264667376718984178159301553246469687647694381578136354281198581837421809408952522026512630630207807092807748875617906633743521598390579128349024509127522465143009365434117994632194543793831989635476836534210683112960674363018288077008532437687046078207875642181421805633752585833965548841869093108373996522312193586943747793613220858393172888466444594553103121257415805053533548447437608874413108247405829445317634943391112096798615953784426603956784634878626589160276697160373484950264651567156759746478520383276082250645409311229923064386829478142775601248402787389618310328405081748512291380794094157960718409311488871585415525354515893345950314131890748600588777482161746856125936184029281198701496370749334984295785643040803232942234826740394311112152839793405223479216745296487095297672702955612379683444006786366811996103298998041823111756538492944631411436387826353273489402627009642230104820142120948658910005693153783527392860348642561625014681558624921441411366724471384514140045733908710305041198768994378947479037267492899167353201745287719345887677343865714841016117297295944208714407062128718711176738878473655349960222893244524905312700080402691836796814195348664649660204202336530702799986429087870663676319449768309802926616236878728815076016533947597192329210148687041703539182362185832147058196847075201520144899989956800995316985808665762977342339139635018926761535853090372486715236680865096723945474042131513927132537436574296339789832541719385017978176340752073774364055999856785196213111782388507016217953390122199310702378099609506367118258676097130197144389144748632325570949927287355506310427483958030395518714496750695375294351561167251907019454146946643280845449416609426333364446348542151228251055218883822881370601200214588741960910438731351385036540976554928749987647507217064152539358696851492738336934766066445909842483976783499562022890045350380703341974832313561537341382762926149151852938604127241465267316994425484082267546260183154123373381231428001810953336130582146901191446342769311681303932576114159555616029172858757256088129902580571140790092554865855988754786305756877858608734467648857484284479229356043647465923089818229031688381034074935511432498846313048617922431885050823527939727094099806969309845429284572830916856411202593544375503795145739667334024046164337875028243050846152245555797828040825568198158804045456472630551568116578407888718820588190501353454818734280936413057631281642846858721919481844071045797968230422103137748650607499173270192746534074680575069453831182098635239067640483637773330940566835764721693825380383385858695982450012645780111516531516660929185902892893915576571647108130919761708363665851935827009068374281680188637200728568026539903400767736194168637086848065574173881998737142375186460775183480697236806031650128684629101498238274575706561469715949174620131966718150613466769850768795763246009668375319512362761352922474762265282493879876472158131754967769769335868418978316481581291435227628076790511617809796703649744316832676370070583836984680302417707799327487747106592503229603910012319615075950199714919291179500233452130397324338928862899273725772738625969753493445501927400440395897256714197661500512958210973720987063921784158232824503315238572994028859210400054427993090565073864447776822877525560810901778906747332183337465725387502243320713736576096936275733277137470606642256393781417539804595234279643106019916020933729897383366414888826817804119452315841374779267636391469894047208970287999802571303364344352193458635625922399277112634989904195301635554601002798984405541643831043108674850659852099377692385295352030670518730306396502910628997004240845789675072852574200760458684506195999180296135654091974062579454502591269373766587282737368447384577528669952105185627706553139922278358036797311249102979019172948625733543814114816387572979102306704621974568754997085420685689059621359414821673821487319793895948026871761327642415194683543219297224477413373138915811385738917174223823029165594122364193562608561235617143662747644955317550631743289561377632402221645760657919306644778389188245442877526514055557268496742591501793222110113371870253597776109519402216909050265470921313596302653526570998897750265900396222067654168198361494345417495915467250916765946864642293054827858571653609003491003631266339299715996960411288533487572076012223898960699901220764822203967318240582107869462012526681636484348766827764291846279002561300081121958011356822730694297073342836493558041626046344541652373084810348890002716973379641155563590692557135213549161083328649777398414574500044084588538228533323330501819218111459509072500726290322183763702231097642946223482817842534596028547543964027014851049600264381039243543042005132100912686064187485871645046792888878101193895232023039404790343379061618178609197719037113200335468672880404653741263120229222285781537824876987863953896492837985796974413308583956965449441444608476344853989007663310814958515094395876062508173805781299825926915912404671992642157505664714182892671424365281352382387485064828357188509006399265555532479921778255869201060257074092001522679765725877802555367101167990356370496636696255246396499468404363247024628900880890523336820859407680490652333513036042701381121138480562428030234274566767755707110583229253091359890235805450202269096068113945970914810250779944007300193258255582987029847995859882421203241880706795476599484448913491609497991892801572280841592864057040927455981491043264443281108616778305814485230109062682945150523684482527200378251469288047367739412518664412486026433709384019072657580623418325539859356699531445608218204476996250234096985225223501719440090583964964370098402189507860558280849490161637400193856668087382855177371043245692098471221695160838445921195999596960522920840697610086613687992010141944248310211577672453419154437187703202811523114605451518987394538384830147415192052809307082812989750877681955467694636841776299082230379255330832058537756113683741335340274302561634643960202307251999377214638551991884164533902401070635140493584547491748662102083723166414583694657600735561409305966992145800757986215010337238754807209160127260679090337954638125520816560395154226548196057160875330380198045424491896659649522200967495530538379795252251519818959330334065813641279626376505799355902318631705467806694969500861738641781665075669425819420294812224414499164015043444108571440498756879076030849941275176926808818289934585261107080285451578271644499167773342765560934328651545732407120649452177713075362432225182612758928595788139634344645309854580599240825932704312198584957991347676840009447610792220828107093056842182427497910770989508011771838577209073577326115780043767463915305224865266747879719295157440547420856307119945041797974003665601014180880020859910303461904446095205530403754235472830952720504741468195353030320081118468226889351044284297320871847340705799406000030530222252213192959045840642434629614312884204219618769373016778162508810508188991959788534104335893712532867356072977436200703297095771288408696785378064601094347959653906919833176529641339064994339297763349548754239657113906916504175251699163971284131301005863874224985091670976080548538501500042380782482430139324886996702929003278336791363425962019976443084195908210158507592916298665201219847483458292014276383716074398525775300593302200344685421568624930322495489694687323903168392110180382505964637391829408685199736824031763106589945322158215412371704935598921359938546324011722303561294772568829682268438572041736905839474835933366348576235136729584141569228450646331247921378211253486755082112111435816953794979658586746254562548476575823883271422271222625075769898819277927710158770591024307448387386921161520514359005486640847647968716350488071414427325378251503374521512579469174799874235453746776529812753812954319864353045871881264613340644696770060180230220905364958803111814159485105555069644010827087750048136947415321522869434152930343892314069059770588387673566937136771883273908612855143614383600492683353235569871412737618455904376172546360365089867885393556834363181934661960047947693294188126032451248615517435245640255030888115916941437496326340784575600402248574324477579453476693988589274779722866155026243061945236562060573251113552100467946426685770046533833120760245320484597918857143978608556424659417257258699971942780593791127672836722598310233840317048842325530862293081421174043892507850890792939476977223436335281134951913123110953218631593164495050220582218861937413015159901689255749043364218748355537923152150693903023323816292663596560612908536077879761137832051784580524190449053722253540653698954919782530985389711448973023068442991576135259938106568723504255654046294560674682234569774353419129547257241519473297525485372097951087960175581944496276387155099191672923838635966312833914097442852710262883173317121598261583578402302921221124364171418377710596804780028682122852529283806518804535256302010846787930034627315164740216191475749263269093720131005787475928758864792467014107973867190159534115331492060634064756388097621840138805664514435685738928616019319796145234697722876399972329101683066017707121758498533974910254710679147432910281596531237035316561695584288331632029774718062518665546575636349985895101864797669278241745327955173808535811292727296106874410157709458387121614578514851050181635005843763062687136149802503453320408901996884271547186867348192585150240253856534323905780836160557533098949238431200752388791455110607152052431537269500224409969184575485621172689812645181134732725771266825792862646825505669724467796697405246658911567628448455773042874192916989760705572496508728248162602040321044405902342552384056523934206143631409737538947946094720341837493531738314296152928640661773002238416701587990778647667977539421621264019397980245387897022154881738425582101161902136845914971249903228215636166829989894815212208601438465327969654300883930838904690882674817529632943406403375062065361014605367884383916942909129959898929333784981941488925590860144368587609369554779008519281519036816055347792620284477858131989655657474992253379455652194069209573882979481008551238499251259207479114929098973951337287053351281069408050960771503697076878259576781399866131321136336544283528407410763360849027443305229525060028711101004960709694659947617652388001497527881566383289200521682912086299014686848068847003340590505100587442136646267468090631403506494741221973090474675921057654052798427313984434832413502940967646455845139749350574036719979619187531792360827982201047775265583893603690117235515923323099379888957417062080269457968986034557986413000681740223268453073178892659836024445536944590888333134711687346263715908332462464480104473231363236417421634262371006608984027388848042927233106026495057624021339000328664072029156666480839156136396651131512580708529361248361422554450499344294341481597334182406513718757765410959460548956784117712757185174486573970654835236982414917906626372418313734823296532242916071824723053274494249226729484426904489896243756437514416397201884416196046538284331414550646241305284198428766554931096361826745681719130696516721037182705926088233275649494632395813226778001583752658664933119349191666789206029995190389185440824903804513115055449099478656080390549180427808956155524528979608779098716438299387177510268760849656274646657468953704831526800639392538738007813591897890129517967509388163674652782832011870894312082067862296142342934636318684754861837761693216207149181766135254779468644799525851575052754640013052208988668242705152353570811256888096809498918937012720348065331789144147136893382497972773170229594971528574518289840790177831648509949696136513123637673467298945582975632217418945514259990980543169888947833912700524644062454144680716079044237635881077992641521577083466242824311856302477124669209964755710139141505779743266749708730232441505492414992537522725415258011174550777499871915892890624511754268016175090246417020720921247598471908209481561835375950894488596882794905872206267765096996139204950078309446458849944549358423274569791551260700238806866316350851693884970249883194630382310668851253136797223887138227684909985900278257971324137876775250795819388476119050945542167346181393691228558327774550512942157859387659803114986893814123575773347330592612798265724300574721824329576495027945534849094307451513407825640196435097190936015681632850484480563084024933335337754500150880136797020748898388626246383153456419652066096432163428913771166042814328796479437400372783465439320489167308012536816055697569187812395654139436789816235913374871338302703484899748658535245511716197825965777249544649801381723666436584907309639654880070561092378596244757481907417845814660150345047008090292015868999516816863631553294937761239002667729941238475978041816027266989720252194258666463602849557838440732601920565387865808769430144450737368840829587085818667933539978573639614225195678833017247353148093546804277657718066012516849805342416358702984583930496691595331464865507816118362975625704542435587760913759640428427360158840443797329729253602781757773563861852249989654127842061544839907060709154687360187455488676382512084454168607009397022609746410306157584294390474284707583009450781928807419013053950540230783124945108110327504548731452669542350320588539791754878790718658613320998536554488008854335992544754644557651914722426670474255775546014996634494426958259214036303284991152947116203695041046797404211840110828057695786814390069616342205340280786349002640071563257580727389693776273720051147684534115146624681068913884214771950519315744246709876256946562610661163996785643911848974921431049601530589226147065524451569878518139397308073528294197810397281722745998981006243912232935430347255697108781185378806565218054909995546439154059907344601118989599182768707684776367041670718440623658328409121416098378758047201082087038414982917654677427085063668398018865375368181149714721592025285145483663367658906104143242501232001712432835511947191423694441513240742985155197405717602692334027430707891244862561031603326088831315937041966747615922246808051514375391191991613874082995339380765330748715605020672229477347227714783436469682540332016794112739702589792005507981610408228682911407145374922904377692931857006398906978523249411745562007832301375533665263795904634245088248817146944345056801956162556010463402554466542898665351717223500171933097421845019841048264163963787874364875535187435472030969002127271360450991508220861136298345843191250852432853422028323675281809309717310827024318950114069702002911135028361839908322936172631427396121847535590024724543279283477517434127498222818408128931352442263540761636756954619167907916702922433907176283738789981542624987002594471654428387701013050626354416214001682608128050777035976044345090532658023000870222000468907483465304939409444284251488250609498474244734401016476453586122812539721213982099575764142396896518214036090098196758019984501672695865066765587449779388206894327436129142970535051663059727609892416875099948134754954593927273196863760872780525882356604811176261260555313726351710328788319870478650368779109039651716658772530479935889304756057765409905561682886270061433720206604871576096262708756825454679546393426493378082586759269922930485076357763948726728121572665196919228270544847431214152218203392090901279910083208916480896697894738789662809619641458833158842487700742754284311615276899959858347286062305622212339382806020813595522750325713889523403661956451840475965247676021966635841512022856106791043281204054573071413760946158117581488870401726471780245351189228751134932155609027105651406658764734951181661422059063725884145284215215288553127009370746945024937875362476538890950275795944930833454041949644680730093699600617745447327264917514882523015957598271607455893885552315205878705125631194950255331625970834316157758902616955289804933120738083072678958440336176338892198193390874651268610550464156248500961309889916124679356940981993982101175292058231272758821015274142422894900599585993343607169900772964979927186766829228012417197739754027252518602869434289079749893234987228716024450964855967130189642368593087302983032125999640482916169218116750121328042424723608122280389012264513014194273165670156192293686309120800801146114889668523213388503364768117220711297982104394151011811878285797865183578438115394932452756771480527780195083699752873052065036220009592843700319535128351837767566828019335555358641635329353061125311281101612983690645596815174365596809317157566526135062701313673665383404749359777954024485665022238964056911600600058881859965607485181945762129206181754155642178429983164318522839122451819080708689225914757383587079142295214347377083678631269751455077088039417113889533436607181422534585563164733457200820517040426540453537978874033651862328034776068571290966345077071527692006851912822781651632827749288772645065612860848455435729438325186948217995002288960994116878170383839201068234728084927233573648522143778271222382447482810362815023337234965515752047032601305010729736148422623260901480069379980082408858938244209329732348627161239081961064272334542921824254275622498316272633095745385904285208487414429400364587450220177328008930897237397266099563342227300532908900646168038722921936524730263848856030160346337699799013194580806328541564936504678346029771059557563496065977206658070984575265784075167316031971304280384071955511420990842181057617032408005101772727702560542449338276359559794110362214449686337044387846662503267333925204811845286743512803685913990175873211132150905249390938468889829672244302795202817679928905288000213113154114048083405930457646476533811890644289701843589109545508429521496825099326743194897748520563251650814297574962706551307007078614352764312220707693666056050926172124440082189046320098152379048105491801262263793682852495277555909586958537127588706553858898846632342611836879627165012061007328341216611072791446413942908317002611142915106420978685699823980248053619746265446110694939026182408678987599451887522455167782994936264899533037051170905430092580662556485128820457826071052868027529395882886354016727859656658437437591369155852126608262242770240959300285525523722562309946245688417755618258530737495161767954316525396304072780683788435790798060226006671808696393387422706313917737902874084699721561168604773229245234121455401670254543251902919901736159620260506433890634906598257281994527149969949797545370211725762792570076687708364072931428692404233115403955637171542826867326240484994744564808574909832362522218419138326127058488474294089539700257037654952922112863468842987253547000282756268125452852637029698177367799767491069129795383089270303604356435065531316617013584041870706634675733109440014866466589708638784642305581167967052746686092640774447956031391226594653348501178803322325771778286605114698091076728003546008791169833160133808133191173325231109134049327557405348292329039652460449443838109734906377565899141428195767496517625617007678206045019937047253093700428026121655087907921887773226016166540497308338981241888149310127485028456107092779391282484368252706983296349500001580498429578270338482950896637557489098765257200874930780834019855855282845492753789553605375391948809012946941529706863789311824396749822560817141331731384112408105675664136971692989280296746798370293687449581340791205273775602140825316822668291857171221998348656489658389913618684459162181509312396931699255450091312987152834153342405845407797809058246510229618193355636219938118887123707710512301116003082122945178715623172151188218170929261173928294210278578757529969252987434612988882887928529435481379775248672718546320630027776649751187249536571730356601527464899047368957265273282116039512614958847504953879757445162930066937176674619941853360630003745129257088837136656499975682884334263416547212762439901564457864906628846341985751405981066223922631405016951969656464326251619499044296122069465703012851919312331766240930088093834763114035057730550972850335264070987955593022018931208069608101756727813019113658687746294170480308684679392086183039064418111030516673083539782779395150209681161616233143209159087636168562244781386556381977476896445126710242073857060956512821240810940915661434164383971478891355125765906553686787005319599179465944397606266811169978858011427282001797473808964595655341521795013286161728065069615240947933646611327284431921886259707065008733649799664421933787916274911395801963792113161532537326200225904413739147206958911440062105786052306036910823716808939746209745539028095540468493917757815770791303654368174520839447425636593510315393190877535162984629797699160456623470165228714063348437359431820225969659930354186674873696373717320409848678629604824538467250042188035242988985258644972089496775931339119807699346090744553507416320571560065610925632628301187598432870050271146467429504359595919412207127904140126063088521757786790654137402240002774768492092427648940243769855644239875969503508315164596748299332690620074574007119537635964602342689313028758954877021979585917064153049964658512494949998586788970956753533376105712493547502251245813233084599987461691958270333661601933897187097207984624990554019174320773716984814044059528785469997189057735496426965512738359972663850491625408760798611411704899578726584576571952290578363679222825587344332693394842131280174428754942717839849391896908559531132893626811565314382248296097158382350482917044178868277584840922321537738765805787383376298838989366748035667104849924607215214363592532666019481002063585673717893780106561841328451356848260973265429411691950392357492105306773274041284604503082298320889969130097327148011482991908561516662423101853710047251489561339229848842605699618566721572353205756879956052110062469537615816415069746288785236492869011269259184571830755000835130321497908352892385549205841915684291042458652466966780026242851692923161890475114507221548732247556449763118335644604693942537480648465132754964896984593465846804963129297492914566021659577118368270978602272219301876114750546437829268890951570143855915843475514078400113130705308539801795232298627218196284757601680812650752954665454958158151848001614950103900147264470734558111933072893753434020191611910479560962652243703877255207128000346161685504487702577095425508751186388495252882896467798634464265656368275914908813810746448341475199138935322615240467491765762482554856712952204486251997840584392851902525477441967666289912824893602154774548464300063323491273448967369311382833030043264148350134159015783602421588825338578948582653330320566135785354575518755662306055195578981575445018495484832797546536826900585569320541038738093891697137666564243750896088532255298782011897957824398344114721436593904153184849128926355620632727078632444435111072234430962073804050423471119685706153201694421878591951923745064853302569841022234337306490327995652626140908060147519273546209009976658324201298107265057489544586771191149204423965683366925812261865946147007370126890812208719674206973897856859437759323575606114659036430167766051671896780889186782154053358963352817955130856928901248118593498011852369684887017768958960967449521457342534083577736640106083190172346197021081175903084608479499611729569404586664415937219792583215989896780967275797905060423267679110265109584751390472736487910043660344995167039010971631097880048666969485929554699682389984835600279944437614485656209777062428258898735183387895307186190871931282188426552645126172474707692151870909374782840431654801053888456117921402965043831655047696554471447892850412590493449759304549711928469550859368571683473795028227407233135052877695933663682898223748481700692577360932894139358420312373446725422598788157971378683141310794612756297887351047485517091219944011101795079757099356781517445459184717346692685203357308319093163946677647390736817016630686126883695995447043014742840597653631141045108553383854281947070651111560081550940850220083273549190158394738993317277351760370774263196105497424816128910871827850607314406555789037590211646641651102715911101382005261385425417884252350861202700770653238609432369489172142534444316836780060720374810645099580487707889557643828649946591464810506079736464437855412966183494219846217466130439405833408626485963636058934650381106497116297005627053292489096636848386619452239536351181581295235595693097322932305716751926651828419998022438329167842246195574624037537590881069981176192580405792647265123022215617689668055352812582687050957239142504489675932514027062928498693706001403869946288500777771845589492342274595343554621304912743749516404879800464492443123258820963629366009377254216703469781558575587268247231098371790118589025695634289056725887310883552777010197320683993504809538284174474969362487903138074144055493735129317606989426607328216124418130694009915704879961803556363809071947956279132554880684916165264444309185150978257608739343242125270784088297940078924303478057818413600906555822355853390702267129150079537559961313280748605574374414074971467266618313314491427630283166295671071655056158561966291214421721543799579512631795682078093173645976884346237367548858147352965768140884733804578020171746684087617511327642222610807506799834584822782713070641859533602216990452973319528829088318447608201165144469517771228054476321749329696269716141684512485807718484797718988900842678543577024535083270193813232854258430541361287670829635288656143678714453193991997110340898918412703492225258717122463349821982131879321476116443044775223137753111342213279275191839729879995482115131163079742931041174435318051677977803413447337012475759308116335604191586844117224769904320168408501373818117192154621702927230671391467376867619849804099417765415826080381023349649736396236579287911854663107625426706393688398269380319835443512020781123222595018229951634273128800279459270097076731706146790647293267101431478938485871694918031410507813360126106076253842408356947916320879961745283012434909780606950281215471883833136347179503844311447097716392985185109742604766311901888816201129167041989983515046039312230200597084849197084050193044739760185371463772561521372077985239455087979060924680167650730079110258447600509672289038421679931521135000849154726377255737106216268147765243665154784116711378007387297729397322443666968450466177329269408526528476902992482582883111822248036660135964586662019386465574501610125868038716352486196639965435998609640269609140345383072508588658967802155880426604811666564769720384723668164267310317983522962703715695978466223560406032576994450073793532271213534133298941609265836896331594403853450766807144595406102819530422794446941959212277116277033632572177934589650282096564891883834865878088265815483440466399251611578016556067807764611617772832021944125640288612764328207896014773120611646709721986481548683708744823079408994167209087564094569090364230973648981196801328221862882061545887313033064658692104376243788281291944016327823060719938505233642763542716112086520266565453623044344123821229581086483640215110072268827431951808992820443068408811704272180722801323486611014535198131805010717502619429661620802851508257677441698262528388182886679973687664661149369415746295914203850307323356824939896090976913341259876984829952911174486953377521995628147581538164512669627261119936028328905246497851287763408191184993884018459415307123320034987445891827426595630148517549161610435410939098985696614609581430282580361620325410339374444552105603224108521877367725977141477849552814383154208184684020056892639099693922361462175720149561869534384776379971705968485676011202352013396338421932767578362974139996892444678203179459338016180649977147140500084230882203698178647053207048213925075497848855406048641470372995119912333885728884808300802952028394535939945798822510685079294331540701701461439466412172530741860456526396453861694981084258619289214107446677440394235184327259652312417644126018590932738749989610738042203554315426845758613987850845625644643116856405280872377943487185666907054176218928270417475848677768939159290006879596999833232451100503509638391828546848322492909398898388100245745016612997492591377580717470095502878089364932236072303761264482936542020078658368169874443133901561164695953136847759801411688294249369844302127335506342502327106302225212958863007768988585531647259101584917856477994697781227932638727881699029992335231847188335844050674262450037067469340119584683413543757466048978904363102661579501875024159853284356213323546850671014974234337663973682007432580242831560549553601591805036380676145175649939955121949590298298231949403498598536573304956851001355539779507355688999015407677252703598524321704275299371324041408489740722692842072111173750349559901010491292224014771889296785909018029256859309200336354448947602049338247026903428446420618131534955586592324874035724068847612153380656008000770664739468437078778866807473829348567249153674051373037643461901199736712706507139411216224192474467494950811592548438428631617575431343717049042115425305487040025397465506817570794440938342231609005757654116143482721112687826824103122655681495773478370404550002752268907545213847583821118956296778442053130568947305778610026468469081884922319686036675904032090838676092092926388623711390931675595108448590002190146132950454980466198234754584410128487744397286895450837108500607680001576841876593673939391052773415985818980893306760003399501875734138871086376948405698738938745807153759809904580084542989466525894433772543028320650485946943156489382854393484159066143406831750325710475026785784797653269384207521799664841823434639154870520663296850971817396364151809670932742764843682844446110535584620466824727510566367812700617892256878996395993973960732748621994481312537004314183057084368792417428745558340620935462977056763983819034557574566488763137873083234826977351757439999889724118426536719915138109019532867104285945443109625349232177712632090856575751009728444259277754755960832837475126335417478428444062596666877416619032067242558508432276790297638067098384118697183858106271661749877102343164959795881824016965058251144671383345801700285767873124207027847026602872575122458718927174661285687614547088406501097341425590365486126540318097123217660217709841922325279044829855655061574280371549190365870658791105866689943525576793023481476833003287163149352588279617706557674322929803966901012682927101745264152824914497085049427794613350952583584206342021104419005321199505521839463520273840607069474996390521037912742334162479556358123937202853026302294005625469060886164032960132371356354667041497730410772283031926255535168655812687430201501294514518379754953157157358701726697294810663558945626361167962068465383334313744297449583370923605433218512016546224117920319108605432396420682890118816050760712140262494061671111943973139056853889054717997873956001974933881661935765094097309502643698145606167229625213647239616649457199725870355060136271918166089111460168570413499772653440065698785419310787821813579316748994190707238888096498978385919751480320542346865552789280053778050844763808887000483699598471451690748328612848738594557921900459915107741713890570636572027505814509533508919916909184655486746780115539794675946596447868661025808429247718480425071245253342547021613648010194491370270656512401609545676918342223080687597229410861343194439016636627471827948609613664159712860966457388505900301086147523619798191126515550539798819135703620039953407202664868371260770585413034804327497556439891676862581665086793523413027736623907216348990726775657993283143326178280300723477787112590309336761170155931715008019498210523192627928838179774376755484373847999865551557507585017992358910398201362256735133254025782793065790091231362095664466887338226055612936320156379520891929880521218678559428427664437131835193165949932021948520117408381671417262838698416448805360338040419067657524937792596761946677872086412242020767013999755982581485979701325604616630145359581271316415881103372369138206894419848226096618504311874054056199245353413396805043097584311307813225980672859346100303439330251536081231431393244873177494084754881313293619698032331873333997833411913935063898526055304779272594324543218003730790442531261482348439580160782039324740284983577616565443958479058493287375029875033030905406783689808376944661946763571373040697955798027560807453223540453859549895403203796022537466820350307763147692800795833909350009750186735781261832155328600390124265902787155366544227040885904524439899115103511306456025046292755823358208593683713409623384849625559994829793881518551502245603801267026021456905330465948346230266348874271117437364903594605027115154276729783508184331502912562844929439530073496433999409698698408072601916644987966542615177449995353924330074638020668741916012926326557658845420644353232465443465978851610270289511889239900578064574943240975920683534565993168238450071750334741235854348792622512891744478106223684304165200897763306570550130315708648088580616039208706271313121346418767820145032397095068892055132102163291726960005795438053627314132383638772891548795127910429787924333286737049309351028553998800223701776861376435242287451709734952614472043955056921726176054888866159457592750900169461417598124719941593020131123692026045269991550799130201937388893459112833033800862233049923325386572688190568933964985134655134011764835082194391641343371356809679867535467039460813864085339553001014421980855052256431940745802422226640435038192824753908392433591284545152589612536684936227471479120984492785187963633573981647111960025309681261841724940491803809105541918750445590917784304684297658554340048481675014105998480980637756480367898293466675565885994408088773540806819787597019601285234797291968162520363308866131107713031228487695803685289777401908204944499670435633467840719378661668479337577310163757639683856938400514218811695957690561055998103206670372736105863881868629335692476838431590061386977245211423276559505443621528615905966358356176358164058177222306591417158405395498670500808059614443059233320790459068766546221811581895505141245729945842748664385802336283644170232383972762804884041434241264229965371846400920351678621635697830863633890108446996730220349718157138507683362555250858635680479737187582575528710150756999748407322615597362521814929911258996519735428791657042581470978432903581603417298903421624373268435615115964565891845407130453785514650799596595898025821232228167215032875486313874039430675502770376352516154066691141385382752135364643656178074314799022578011553483942991338781986697856983534249985841522173433690059591299301944948017779462794337737867614420087751897577391098898839898408840674996219740769736462890889821192162626906007523581009188185992973817438295522903528265135937620998346655990920346093769959241087291228263940859435063073228136853494669250968867611446802192252963981352973531633491913460742030598401779394608244743703174002971592548541275177512199003551529766591835350709088207474502078106405332750874055198540315139233373818382059202065572979209965945742269787072670124202025386953849192488675163967478857366660272990102728629226820333944569043539641875354638663953814146722668354839838254971897303438038096903601940954294491564820468918238148534272220221246659846502493741450306510975910191033255024564479943537960977352963020719377492844495523517054385136830996166518282575337795539902224411017775639537720327685006200532861245512454340081809154501765302533269845873839331635780288048432790976753558035563149357793590599897767388659011272743375335921995881538524865502494574294376764277577699311137057632119047345073639222620921633539159918003496776907202395983399373118831861495641498723966748691165429112352938652154787229261352703151734090114620812998229304650876420347468939353411763765893028153378069330353620037520615787780020912359224105563984794593010419909679753188293587457294319493126039793722486945910800511261590569174798507678702499818365095595827846276365890120860835399057699174933125341561457936499395913479124414597915251506507308836903639746404266688488272886192662545396083341229229083741862363351702365922125666923525934506580556470957873862502240054249623069889254798085677925877140970934350769262123670585836292892348431427583162361385503899912263593913550188906378492893810607718549516678084378655888410553958838273536234586444177913167110718906861678579140184525517675169266400004816843015605347008368651392686675271863771038363106360803119170361241708303357701509379085998054459033853040688928489709555832996879366625027364658619740293614493739169452299465790573671553532883062471661709101257465606199554552881594560856241446328151281804534677169774895776308575437204274975883815399469981804641935530712056249005013176118300383195039458816079506244005552362829481764586928065742363895477663092964465284693894999940426268536912104205704104162064454490961854212628572841299780843343933317032552652842908432458092743109950477240203148385126733991513396533400047703989567300340918742366875988849753096692419626702615941727259806019504678098778136343535530535136606647698307556277113557654789203123536882361093623576806746881224391788349561341551427638361975395174622152668846677181794110275074330501256966560675892478507769781928717174713956618333253045374943227195161211587389730522527677652764477847817600858837956265367006570520641717167373488996510006724510970273432726945401729768306887172889486457243062033373102463470007846115787079331669602882335329817030876593033910030166622317302464235942089272771218440039798604263380286729701218844084268110563525734667389751824084513902499658442529106361536817271848951277648459509957416833227266916040719480527985630300541920527890026261800210371042790367549725929070818446371149455820950294114416841895105765279950255265937554583746104103701004443535097542017128653392790773692413147628951778044955771020475387971559755058798846691083753626901805077478087309816062616944790964227956332031858488967990617680339773826377327768063849611280577535069839849014820826840511269977634202911775410585982499360219707913137994895394692646259157619729992941415779933520670285376695344170870525780345621661750385525238733279536808675356526327456035449124061858990773622412162245876011815861671606118101065665440562350588792062103149354607714570504671093759378244402822583273682504179730117083775828503855553839915376802763849774658888382944827795663989280389810995345425706515095392518994014625175750843199075808113269840365809190964339467209823719619776741530910224228867129177734382681527525724886430989848288173775412464317659569453200147011426049698475970448928150550344978958763387379872976429291160779677228978054015420363756357321652122816500089247496821006825512417520387952185407341723079664498428595338991725006269804961646753364315904231192861322896261796003021759916648065492475931449203005898278912405318277656289746937475439332111268395615413036279655583303748440250166013962661399773548422491344432251305078124117568524845437010900952921644221917641441668863191296508700395872396493184102153340770417262721186056364943826713910379020974324432290566831950838089110528613370361183410395343540167764725366092434320376283623484226830248405425773823237535181034898852608990118570834690575834193739015559816249589656654291001548517869492613191150534877183485211083091620230381801559379882178466029897685374473589345055162528326116724780952870371776990267525987949793424670941372744463991144861262020087436790123795919070859620883916800531906603319867141604767619887668629327100800833188126151621947474784698418077272658878866260013824923468806779571758024507339581178059201955959135689324723521804867721438808526233804541495559299983697201387103898343108430412394101775363150288694395111160611763365507683245142539495600323615984402251529723515252825981018952427915920238589241917186156384346654595297368538152198900889129528290669387827604896773959285894305261886868288132505449554953343802109293413749192670749687770400335565807720533050618612098764548030147779039225521600190001415106398123267541739193627375555822717132687524455689702439188295582859675974614707199533099578360566841580197021768537352500647557288048273589063729193869056625042285734297899841223648198677926040725603273498635005186742512201114387948584150462619111506414543353424070219001566533293079225837656437156652328408501214964785471338342783563305706783026431123336409862343911977106602411830848405075625702765962213030582420227426133819647184108586405960709878720879194572667391369315410668902493196988802755289995706232289709002130297778332993640301439084765658808437703203846850824564443245435555567739003013598639173776617358373459159224636580849927645982094764610727816014874218116079197895736346210172241243414197149070109395635377034607543233901344507917809709075395113417073272493357876739308100538602211164355723521149434156737757390418783616410359951103735590577006926562072664149085912650739466516301825840113494328052825044570752270429883301803012030132953033639265369968096762651186968766556889010684150533018670845138523456542321768898344626893921091805526913537973738478334306876150748941272539894839584513237792350726091837982895518484933475561520534196151340361823283286358308677596661806941757166739696455846211924009074451373564419110238308211135850401254682091169665708510865031593040902383609872566927661077930266301319886058752785532050798877228434109235963503771133977013235820988944403953031166998004333184819801198379702439409504470696518903895855082651193432394167813509608477616628341526171998789540171477557728518671040349029088374162610099065116849812250903910710060732971037000591907500519584765141024974353358973875002626221163318768501817335196736456535462559184083475466626847194979693023769421557628390548404698143342606356748153259503881990498663331880807295342467545308612685175524062782740598794411771339708933640250726345674393280226443883774674898308117782788849554216492808099095127918710831959714743228598055371551239664078418115222009240127825427992560954230155386927239616548830118959061066551321574634284671494789855104594577956906116777114391614370379249587224696594505624983188324154940864830785968152416018641195849644717223675504896107296015067400819441391191991173071754262846744503185581506087052090807431678651064882385262099706544303303708173604812444821961206662883349209900910093431674252960726786496735725968005457426489005655752706820365732209867378156737338803332499581890839741241409935161791378877518915664303283101858763347998690441607695186387590434357623043000407997880519932866968553393940754158187425240039265876675052543291150101114656196217002248031078024478977052424835028017903804741710139123594331690167744568600463923831662854777435059652820703414839563274167670978009134602596431390740828072678465695304630944165155848912731362225599800157346160841326454622281648726372040831130835741560119268025910460358702844403617084025722301245728423535502033904781599398097448518079080501342991446181057662990564017804866287370999975469887346047346764348819440277102766311097119604913690537947770831889001670351764863619593334528273381173891352371193512948217000178805562778668779899243976548188778963696173633474833700493258975901035183282213299718681397437674281249095558066579788135656904084808922452883778876919890727053964763696414940327165011615077080108814470063725026697734365224267126210348914543796535802686789268830915045512900148536342892640072701565900856233818193957551680524927237387115097665649043597164379160629139038818099737229778813088849595542269876595970306672589371130030015303420255034972712758039454561371386193126469464853447481684082389327714406339303250867388987930120333943348240353485030202307378949407523864161865927105200906244066172459859871470495589460668398539041495694446592855392080929210224241260080978884777606657168594296647705617273961376142378550138467811138455313493494164814564593746856743245697703508903874691041431744849227396900029489239441952516236887416393731892407486915587486713317722442692075859172656592576924992552752230863927229175641481686240944432965756756122057151551661844075222551770543035765908393047831114122222920027313460272955780635643800690780845635436783652480324123189434859040824940410834816267242495386272548225226991616113096630774800831857488945516649774995912076206590192681084053626843120572087800932931396392870865325064327726354521492896106357588925069279346036371646926264193307038824105105428900466159267264240876434525552137186066436672445001835647868188250552226322159323578419949832271977198712733419101967853918582553531704551690837124832772843032390269605555710354387164478053139817331343867429860869926707451592198969661658380609893479132222207047056444286722823713240830786470585518910584941637161813911146983772120881751746285620644010716100327301844052974995867975646665158167950031084645535738143509923504596832897343921694150151528814914230589998571527518173925046100618785949737265202294089017553544657554462712233210740154938008720110859990741056770219490586836456423571317425241139681379932923096125513307688254462673271701405463273481512708992591266192426146677918279708658422759511756951068069817311218655059379612256253274612485943161175604758172357199495024170706424221309915335363873756939753877008519853694486456193261748119648075284156201829814506625306472136768775614969512508858276535945568614332440277067855109081061917058828035794309854785130460961591012902640841108458167836954719002512537863432845471548074469330600961985784157460717583010695257561791972464382388111701950150673371187523762917602928097803314968538139181327393353683363229773954950304382530128095755648334058790546837154215426345341939495924703148430597335047280324559989239705324065423975878564577498524879229326173340315251461921642555997041040528337121978460114625727534112597103219270101889685394809959711847024870299474325342162653667837443997620551270908529575229108435369250348664749804674583476361625338263649498779510999312653410039626980606415715338704673489106741540465893876525392807219118486726072491174257159480828473895099046410418211055643354124197039383785667617788036632258322813008266821082059841094226213656552060679566727156200097998187806181463451202146149565579999092044134549152503408437456194439053815125244538973701744248176094876982338052071548408054696809015123488299717957250486640046347627613514832178489223147477347112489087288789989353214584674145837267485777906286462322664364364993696332368561263523751895123370574565726055645268841169120563320818927407190713525208062014034925912049271389248231331378280210894784573875539041704090825413563401709879404515099397887116057173549245799305912410373577482612733399681709529998954041744790010238256746191421076622660486247040033482548464872496346068424432507069533303753880805597986451792706825397088703886923193332772175920245506802183881809199924641823447413495578035241729120213859410939081986412583713061996940907317411040477458710748411129654465935680898192041052971942618370649227373957494501737202834060001390224862002391212174342228932980297378326525365358917733972985299422362675495366506554711358717280131505469366723831370098334960132154578714791148687665587556120658154076866001974645348936123326061396723609906567967888384485994526337130919900652910262825361559624224406179133269399656303649352637521953575934506543153907363367232495594011070713796887347419291284928165711981531091869624046821696434431870380719135367839783067391910925233155968228778501815279217181989934602253668988107926663858879577082647364618052391818026486101146160762874418575614202684763726278490150522827264356447271651745135606830255319907139123804071122459919768442632098700670664157323624245852406454014794850546181366771278899039627824250272045668037082546798192339804611652655526123725748189584635541235662823044021837207477994647980852714098566461925346642809070904460590858202714144850072121198010925226286310557962576623776441434780139217933430100652456121870776039449352062693426604701175171290790984243430076526429758242137926165261912689797109761521292154791998667677512083293853424693068041291489705891573698884631800415991976463097350716459297337603291379034637765675287889164382848187871662849225366517112877359798806103140517874638502617461713774475663359142570396294761871621240166225414165313337716154633429893670703411327019488057380964602519823324299402552475045246781000260246241119089965312349612530019222325174150839654868178068494391039770979100053652819293109723889886924995350846742685019527207979956414656110395875534095392629854618041616523567727871751289471786358463865990043800718646191969783387547067892894180753788071204049326725385949914120500341303478897205801002034637087165833659961570152212257116081546375823188546392346696461051428376440861491632719390269321301997274160485197257085079869769331690396731691208121479893020340367906909388756723903665093526756141081906650770079764404776941801235666118433981106256133817660133612726704892382360159433833809722619294481735428601443069759327910514027448494043751571723668154680110908638755583967057738969024303540062550613258988884233151924432672777126851660672279410496672732063016033385814142720804689017647944672184082796890122997010124880012835041464481143294964812809755866562219062177761128261880631036295774582028800056122946900865136078461637490602220448689910882217544160782326037679946040573764714273884550796566649817403759376123090628156452471121786692216049613952267505798398339671612540902879485185922271747301652185439399892427879466535464682619346086868995633523493975928154770702453243439726945681957393283905860605502476410977378795987748574687946542241236899988988060153599909067323660849738556046288206439281842485310292459117011912621765684226475217069602872967888121801194166576570944867486177969403426040058664197385738174070293512865873133683452123517239649668979617459390511180083165678949756290147299900981214187274285655000228440816086743614213878295017925269599821183911644674178163714268293605253287989696024481925826340862994268030083706740616469943645839095858118606123577510948883566673847344730781143553950080522898998894822124364460510368443613174144689860348532806198314786800019383701791737495647439007616665281913724446214507567297409723426682070718243459636017826299677506883384230495311808999240495109820049177136684397433968090160897750843009189215501778502928066183866643775372661737068544831136414627951942532971795051450598069710083980065688374817791837489693256639314608099927501124176721293213810546204159684097661227046685451740223916588816790791342080482038060665686693788209877911613964307704241035033345938820040173633488729819404638161111198034080444379308922258797613187586853715104337529768299542036452207436726072348045204988446290685733018590419900602389322878850337883734333128829790811628344834416345418670927006902463889744703587939837276101543440152358294943913973101096059591510103631303311297536978539173792308400647336048216574620711566003648379139893314660216374877341136746410889648276270500916042447992402187359670129504712680850943030646339610581029844170461394455665511192985958032924002551471594552291782394583683091345635732275352530141034169072451424522718643989237482240056434237354497776546775561477761595588576278550649139888104677301769889276888156222784887333683806465178168529349653846100401266083687666153709340955798755988434250597349598873135508413487574974158147631296050055604121467872858730915408067491899176667587992172706765395552328010537835008631189055805682365610492621399624692178570370543893104660589566752555082091509683585335924552000822406324316912609843619598868128901597011158712297117792895744941799062164999050773341049899477501999813472035620651959585237652244321193781363711272532511012930539868363373105376757979839474292493789634680663847581950020366564658884725585395104181911303043387353815849289025023510706189762444710331350935558818147997063474348063927923732617569534999555662595289517319336004145351669010377763817219154766422713374858217860217173134398602716454268283141414874447161801057529589912195571759545328344285168468267655096137263847879092741216549485984337931626777198930863079269354825134067230610186595729386528986565906605683726033236428933467884383787021614907359180853284239106233489994089199925845648846696579998393865995593532711504705267128379511546930329970587185496814550860134795420881610696051056773918402630879417323285697745874228687984210156424531584512715643426812820431002490094181363456649696054654585202586991798826370046243287257745187052288549955567064424689232441157372507583897832037875960912861065071561569534931665748442143727723904740348092618374056885044276111304659712519559647726001912198218319902905672528470243562245171114994242611490294970459588493212255601938458833146185084984203090069713301176916585898150543014394197294218724444137310684589135598498003646760253323949514234652210912504352438261837131301743182772622842857453259848595575679834806310017105747061355456444917345277712817315838404197986053425676068959206033925773900264719412338278429038181104665644771837047743196759101418210460349005821753188476102856129049323373633947439258530198284951008662106655383653313967627100078968878051502302115710757147438342322451123789332985999697049352166553499957319261630173351607666149740591551282078516423942598820537988222724604401694766914910391529510317040453078168133762058808088807699414744252974574103708016752686529285423288680983556325902592681910436809448878664094233745416077555321917741238364518210850681037465356277937349326458476263191996070968174498085650566055525883465063547700440182356370301044825938344111392889160892095443503027795228149701421045829183789419354873864972790394952450194706352288166079438750145258280322442497492179407505407348041847678005552494867081876122308903023923642581815118556279701103521639185837239111351722374831177897808345371139975977833567862679422464861580648581449188960338851044933669848532761643312912154952263321243433679464886410731633277153106158793520422069630840397430035608529920701281574781436915186142363728721764735305823968865822702593976807860311747401667579673024361325714158822916469468354732704460207446545044556905967874638073668110135964230119711393474797849643432729686448440498638584676276641368539930533662362728351899427389589704705714127950646640970362014845469922614509569309063383130086858441702242869508517573655887810233066180533723169344323934521533974980169769656031758742693923981057964385418150890010607265835643563435337194659290761656638542723669038078939087161607623454276325574352069388053850911241058947144390468704807125988547511073322424086897922168059457065291305822345918139033106150757388937203599826430757163651284697452631524959374561683281049272094591579058719589219690360965443823179579827147379039625363028173721962089493302041747189594574247483236219094071239278607205333465069260653749326771564107794255821614727238283036551563481292052423852099050104093882327048305043095794822355210754647257939937549164994895994952868791317554502654563927466115147830049204670112697337601577849171944506711505086911264825846881924072660401522355174676771549076883239650055462688256894158291081891036172445035526174603569291715034532134188171988145686881700689609959711500342098456801743991965671473039363167420308143620584503611856655547388036438280823829170178913686779983468211041897145319241369903576759272345247808052151380495279452712621541731033843713366703210970280532489262982011157828086538292248396568537527476968142019785723513853189843361571793202645166224627245611850966249871358018018857113395099677477671142662779433927211999910395933879520629821687732563850597162510532194174664909963399907040724244048407983553674525518048623738229197681968348378798413482324022512802809545470175926037784204850547641832258748118887752289771604903711004015321038658273435814439413963447212367419225530094191310525872197894887595978301107160258248911980193715485234574082720655705740168778552585071239649719114155640251786817216604974928147797474694418620583149868554257751357544221608208018724902304890284708247909556043507655410362046820226989018478623779175542522084692513411762870039594024553621168027485066786193386695955544764496200770631051385253395193048044696501618825880618711711316316981589801050890291542250144091258214916175478023062940230624705610679304171596401255138976497601086101135647703761519447252379595922865990284239703936753286251925501814649091441130904292743370621578830936840606850091218007698479549310458913597433893529752884707290982060822464682598904138747818338228169138849727652479739523073280836033472890488108065207847546031800027135552975702275249571112869209880579509038522638431421317609224971756712470906273520657897438381924684662240866395370602610366387817616984820415227525037936854118283437280742445397758709543497280429314586946273858987853030401609692220313116985748310496926829529258270260211595125679866730094233727907790828800026276640024689473529787886277713587777394539615785390843457065109923039836712910888167914754618563440724358706059833782502113293973412285698316268818923006710031403845606887278925951471213840558924443252258653054650278842225391485755280384732959208004372754356569304890391714178239781084099890369090725389644967596564943647425729189050340301586281706553539811281623136693562380766445390476082829639573543753425336404173438610521860673798526481469124042754888669067701362622211240704948256207518279258120248155967703795765318597626660268939016986784453263578771401325612845479420107444409894179025530842298130495629573644701311637905990074934768379706348853958138555703931743214494384005185916988778776938533705119812420976201568455028689110563544468547589705928109523843070624671010583945178944003664785965442218391320633185459429079397284487702660213478133343847968901966468642438161405588023158106553000861387883185376222090342444262040780177581028933691488309449885117153596937146508617128167288733079839593578481453963257064778927197736756985829474235359258720462369858263753874605373714575922106667485494033646055060843417477897496201909193241863091542405380811418481831787542034196813995281571290241619321949986388631204559077514556808602835494971888764907602427329785997114067307961844771771070339334886468597151692295538315800958771616452653609270169155397383944961453694354286864160114721144414094303514321876417517292578374660365444163237314905542395945308535101456834136163211429112540872419903093651570203697359460097294274136078105714498650160736812196554517798845259368940666437847457039208181389986385865514104933551120296057198460587222031176686835928352996331069826825770316014623533854373376488913462545974880380174538214131301429295701400416520870805419376412441537651263439038751853541133295511187313500210255431189817689640357392819722768861024824358034876749900772886759899905329296425048096236376046291768536951824149155847550030613305933288391706691060487802713567545937438576858642876858185423402211903020102420064401403951540585383595004660581364859053332170192839376754194931634725884207780977842892505933741994094008960181461758394974828719244428619072067407087132865495768433785504876598446612573154940813351833803892656664689676553062093696495480520716817549827469051925357547959505376144762447666038885751246048988972483392524807409723492460812003824385750639299835018109509970907071583611686955776569396635901307218701067553897317508335654776701042303760822922079502955223912591483565648312385591144282157442597778622193491929605437262374698358352729938503174184671291267436602894545180543507316889359805413442664514072481902158344192153744088573495620007012490965662381925698143103927445341196615093897202749240002106343321382791761199023494101302459502071901568878534979922792659197045787396105766050207628336559967957471947135350220499565033315083822400108936541974420475111172644868147038225612296345843831267823254200689415345074806214835393954900040012763937692839233277479022618793386131221342012512854808683573420652082439310166365504645859749385292400283580755043504188167045533724099340986163185615900969936103190924535910095302027713497329508639515977271349693746237061472970482954760704921429329479915621203584727843439763641667708094284594010580629382053043435459002382401993459584723066071142725177222285137950024955703094258236651138736535523369998970525832155203941865994075007937340961016289011219150995508281180167383347756512504336386359151743554393936968800633760545932057535809882356701311970191289098894656995513479335465374094390583800153691790160681894424696867660829319361468517438016340964269632804546224045312843480030985581183533673286313563054827954182632101519388336527667561029980082848734529885424767086698654228020142316200045783460270221216237602706366337386155516716659459804953509945733283492564712012688993878061819589849351717530713937242107380506405172080795992082492022619943425575046590464999885814498883009890442959648161197222678186506046056777199696216528974602337751903129385066288073332587053070931440875799866643856499056415607080613644066125688909960928601251824328395686269141438755757998819578834974584134976271875369384913393289020533067999685812376961841286778297548583553036103241177990836735082154135994866160645606524497245397654650864117963643351839007662760945683216239872524349110594609598984080386582714131686831907252927212520636984741399096741822073590043577578922013077657878241954574876634591812781127980794566751749614072401445827573875544882483774073544108137548172921154528166316382646626320739006309474591101163925148981994857053313697985885155235438764516078251590826168619673457266471028745896108165227608850432485235845060931294456203740976738970583130672542728691935362194928843969492958026269118785180551278290955239293277741618856122278008748204890190742478776414397390341061098897106528440373910151538835911623774210383510322546150765871485180725918709149946367728245106120829262984653571748431130899558791071210232708832572074408475723036122241286242500084845166314315800529078062640323296594370555087253532209258088111874259202604352506932800361533603182148777991915137336336440654108246902505647401983934008396093178125323924001859491837025801211520728504258272608745147025015849748804876399074691264912958541010674038640416025793278307587938812421521227854162382970355431127798681207854639766803745247479076938961019745412925671959842492934352703333972878485629793066660442171264273660682835557728880365329587485421170265027392917247033656676385801043272473276081950386009175091203565150395053633618232552888372327730332606092905823175459424165351106098433830023499381932524991585687240623139541189198511472171092574365367970577802304404416010061350056397393321523907057099596614872880359135316560454266943376515860315667950215008211264369131912911281636394992409835452198464843856006917331599140087384783583589830079317607028695929627458465979584228278175382591662203275407265092792521064247176606722955585431610076578241798341838167369966461911941240968986172932960496181929789963059758597828368350446241769018289662141201348707568493386772409059718381793555176063677487520433270187334539851808621079043722776135482677866707554006649213239448033782556763061323897148222519854893837684063777426774302570925461703348430572095522932682277248626118015876700507572740742667061519777866184077608709822753361674869548356206880788297276987058520207662337166984417888313161772470427265281285491865389056086805095082131748376268996349148748779664850070985679427336857753270190130653161181612331930978272060912995271212785256495207873508557220764498202912298213598953831184282174690849588103837855434173376893849905591582944157912620619324585560907697738885665771394388604483426481510382829117175296378888536303012567938738715594673368292699478782355714072428754927462278398214960586114166957784299450497265005786866000196834634967750216343421581811166039760461584566366860468038944975361664204430404907131536138825535511081414184679671933104693929489551739001795331685483091958888433533802291907017016191354983865094865236101354712806651823711337439434105489164384285941810334564273902540060375223433539324420637219593254941088837932650479103394339343346578297963170888055897044391219611529948613374425973135065072215888616772644008403590176800663679682444513268828620399667908682429646400701331858932829145140927134426969491326709740894836235451021669512480719099852559562058346488579788765937316558208902891012997324609840116222265806695130574890947246469914853983984817373757399275568918229489276882348265966666678227810034488319703919182014781408508235563078692633867994055002659960297573595489762784209514780712824426169360119871103410524964575027563363083491239491472951896817457022483195750209487833802754118378346449344848409038711448706275945367102198570869626943104814527159130860496396616223718263900855575730084699440615176606574380204345107513039226460205932873550495829861071051154394371165384139757840443040090184031650413699876919170679292598502639484208374729898371330614302304580657776074444035049386913531705146584080113075197439604948046375802109576374706352295140890930441359765482179629004272622541589897589572427576944077967405341431017874681126768916264496868021334231865009495507863839215756943564129979692778747871155395841321474056817881021253144599556641787587378395705226254015584199347260352855000525128759327105247089429855402002354535901580643381198640004331361897138706367533782537996489849874607815242591817870639154296192961863370701474192941434007426312232522287198222599092031322536356359931425246940666968180513598178975120840931915035306157395345580338750633119471202237000991301474836261836887035524356288123254266659575909052780335805106637418447277232196036040412322910110320530238552320212185819143430915500799091168868936273608095454530089590253755956328849553038927662708232371527940149498658042549590668744811774763042546515579064365148378239221120888909484546409361210619695376104259618231552838431749891447407932600170431997047363952089692571455636529934495760625364658165183117334434873168544259253375447013295232862058890648597445184625847654922716523177158047230375345775268520581250890128700661395403395272537183770862506628906778594528215739619679979313873161538702294515285723300846388924037415044156994829753023134703814918802235470868264112689246717222818233524616529703315651631957472956919193744915498397480148181119091574037963901056550642674404005590355536140161156906885865669400549884395847983177090467811454371176732271658424414548856906080554479295678821267778575662854412626441236947839489787217514860392256009744942977532234229652775114074352262382991605617278069372750520179255391111415659887786582320735414889878450884645857788757875061502784183078130275637705492055482879728362276058096569220018872156943928093679757074985707849717857719524242079655495140019552592138858125075011870016354839245453162156207126297929366662471803092352690720688161274752015359063083370641965141253680035875443193889477350897063291021999425843200857941868340249751952099057902578470449766494352794378116767370343093795556135339564857036829674627067840626626361931747552469850624775272396913519165987299912553857554999446908377086311558464542574262742835394493796405951149483440699933587305500808159642965084782044699878971028665045517742510508169638684961135182631055945344695742966036827641398827423074518300645404931813778312782748463501902708894251024143833050233643194623554600351251383708816201713812067246985907653747779518959491997349139551004918060996218964970563667558549484567026954690605456113697429776544767739011878442118703129793668050019018388622295680652128293267364379175046085612305505344777551681651061815645065485610532668432931448257397929620187667050505580770873208985572496458713335164781496395952127476548392477301259072781617834946071671676932156189107511649295158941764933307254322590057374097499188538247297427900197385982927970219067673353252025109846848175398103401774650412303464194811968193178021729768399128848537070116938391712395779782723849153947957122286770271526765199310463984156896008840549471149267985711516838886039996035063865229352403894511468215343867976984703364231095980691317949684286522081502656721516875504118981169734460107791810800254505736673337026579332178023717582845691802802898217073173532337490948455225075145713686856179418702541795288597079973734238342989544779518100720191875125061870100537590253855056215962160282744255021532498295175863235665633684871784606135657544838882769366694683683935685669259604476015329170701090505849607788083396931429499074296082898289955641866912442962307191566676544522152731550190713336919052026265887312272378126679235161179698665259550941213329735515337093106477384578268514505169337756074438923064729297327125233285667118355141297925255163221197476469046970798761806083444180478316635679238355810995733051443220998981758474206578091276241029704189539924635774067274522910999024299710913235279438973788706840039165843671579700930435295539890892420547342139237452021753377146054862484570013625539925294143471519715288873905509040991449900163825637977154876020373077488875006624433504812737222935873990961828399316635092501511015062568126017874907126157475708498872469908532118196923553655310272282570962425682805244382876026417141208822895647483298422218128069100694416736457517141994093511081829600197624089073083283248023265906369266854872589572941138597555453408939240364492864878232718208000345926613857966282604515915885509305846911488039710461977078986757020062871116894338762175970875829004572287770043489613281215637651321951556730300452620512911809805206050524413031360794458775589166191377344272581961499060328426880725191650420294727916439921533598647994690967392960468488832494933853257854195104545001071999405812529473406697413655341662242409467327352487927708981072296543542662612013433795877775322833523951423730857489023365150268866413237157671620840908778117141878566192626484023999068165111337491546299458144889743650008385519900497651895696608583658705031029375232939322226359032191105155999399063930304532561530873329791421097829274449898360645330128891315792686968947770573856710070223043133061145339839983309192131359338519277268618079541539935225638424786776592884758815475778343610622307720073372089269459858603883954367110475218931172709834921467556992305870406935789764873631460770872406341714947853168806204651391968765145198992579240559453286775428575154385720670498906451821133389464459406257424432016264386450711578764522957973806382586796005246216670510864202725502427562075921665950550862802238981933844363949443645190042159447521298968140409365956962891069078622042295158044163254223174269278857873348817266136041634884317089589792852566832603933738593320004627229528618411893133800918728161672775852888329943681814585233562372211001225774849317218552842873802662457870926791798991831982424361081667655607407663127550169167470966916027214590838031765593225385873434738143759995224997227988603201732584308206494999630857611814234783091144704026897766900263053290831541451459078714616060627903016096815711507940677315479699000389544028077810711646860343183001048498876186383854478206245648247962979676093715066585430532994998742349642614494633587202418330459538782411294111730118825448569596095594019387837835195397880232275285590873736867414760842610742886390224764971389156271984483440980297179790565607613355592156918581281145554820431924156558737196146160047077950377196984117704012523036160926782542787976200213519058500076578207507273046674082438912609566476756763617347903202734111072022081535759723424984291050910719537035909712204500378486410825240934882512805903212572017504710610654692797240312742079673954042089093751714062349526278791826941926815687066667646924795621188610696163667462897504614908500073279798495778123184807553412216525431565690388034544634821960664455201515894752042226883323576956992527676349455291996932114536645522513774522217097460737895858074185089812480421759364536080788658331470319845375534761860133653833616524374056231017756775019034489302454558398102676491741289589287458070292234744079680494274045702545558104543799894386533526286099692733280631822616167529166108843142284238332783052407106645015124919736842417248082873701644235851422418792211381870879999345242172219389648461097158208518219845076141154973686320552335241352331139792153569819214525989086942314976609057724273564239977739953208520537832708518113024093016734686751829555591393426077772419847618424123585508888652405121786847512345870440861839850747272991440824553307959053783954384661845099736795628639842812802346681088221736133830669682024339851117602488919658932818901390790906212822011076500289824942775589035215619266010512467032988489306834404916862642005432803105044413603281755988421942283377615837114414259993233688663175297568676667373598715029842555528950050374171385453554303891821921888104771178634813072780729613064626980440536713024442360040192586856273649303050306923022759092695664227584233852735003981081534695571343816399573124961993098866857431824415633012906603292750649728123270912340520674133688852544054357634387873997785552300243760358204858120687123271387007756224552004091393158007772654845129027898821145838005772897855516731435974289491842810985677994043023381982161040223642948101725148588082706464578719149892546637342926846627575199540850253696028236308706130779428659837965859673337160186019811590648826310809942409812701574603754685095974040260463907287905624632585006559424338691323714425516725633492712923908327371630645777575798957784478353507156133037486361275196506077360211894878933071591327490732493029417192972295491056994334562763717392831036282721383552860073168931326803555822338855310942368537582801620390965720163898417859673595198838611629909774606658830090165008691648852518235008466878547546935652004332965798130928039952997021692624486326702827017808973283285191218951103233827237727286498126888627486800100126170958394400654538810436854454934621105150093331308597847834248079738369587344493388452096993691540985640509671053256995016894493823762489105569215293156727652370286700883174511961513477308787045771230310747896357846967386588109303289518162642852477912715450981540346594376369167403680476319309229166457086055093038811760262451603796270820432426786967577925616314191935333178863050903854226555484241164056712918612988704288049609561070902751322988070614618869547193800005800528264709949433285636645322090377136292441351705217506439062930890581952222244712037061196724071996574798579800490927519460419765649460551125063810957701210632220603624565611904125174485014275694455122958806420361730648945736967991921290738749323374495767319286626970316035981125886055590059050421589414123106769393847666777057178556023514359415589295130705198656688584793084348210677069994374364684143058184431899342904026193336268458818612014719114114386285189992150405503221576790418501755876367596889194266430472702188634381127764544656295503252694061725709306941474007630870617040271037361024197064736186839786351925851254674076598382753835389944163855255871826991753286998481147896919551766321950305247447945497586081931603285056817887233848647956616382169143115672769926426476552024791987415598245353707012012788829926205281115958125741262691925602772883788077365074786032250668021323603783371890211554834180104577696044446754649762939237999938789237362145945006488307937567801158962715209707385023787866578550955295941055777060657676925799914362904267599538695225517602673611708563807279516589832022559957494722723877658228631530943802834961031812581660389721239989772056481343822804567677020489954663461800590625767749171280239390473438328098681603232788320075915522055433183258734742942875282875830882468759191510249918468757857707460331733857192596037819473702642270547144792907136516160621070129102674055944701013433458645584980575006215868542566959071183529465254585343962643920750369306776269376731932413634608153330936944922607135148784890016767424966970382137033653514008865095401926724451192787659824363024237057308209270316351007520698675491600020815377234341148600536259126802389903925974180584809710549330108828543027870268158796720022868033837354354990355646924419071517683196841433625673174770808155019370526522663706667365022728520100619749241057060612991972970943721737284219850663619710350150241432758417430735966017884568990319659396694151882106369637055196305683398242677045742470906384728327372342973566806928006920974743876333431672833241612617915102664080141149931107072227297418136665860674496944833341135328133300441686083559984838782462385038460899941352692645618733536759336888766712392325020404690262186524356307991630313431020498121157750668854128640522745594114633121449150218799691328049879240311886788090823529328703510161155911953747807601133250231104471453328250888185702280689313178848179300437685008243025136067458969356252784419562035603502187687627323225422699684848894454361810888107730668239284571533177201603148901077152636265296057772974850796883712369542841912584600976894446357922644981177598181372373627062956118423729726825702252824068395820349955421934541264666052999387287259321336318260081793374142800671891720452675508426501529561614258995938910272590760947127021603960415218919840648743235710647851158143255107197599661118071679770638541760161067532781612402724820031482574671659235670651271419753839739332359150792076134211644479054846625923489734978489028682332220472155792936877113588310525103558703456433825070663868903367536666931327187874845993735864380716529946510422801783184160508160235253600193547094967807141094457634611753354528468251374789009882807551454068651557228068934496663273242261940933095291306653126149233376987557306570055647813164404403124311222780586322454976910119468876344490956602136350173002202155705891286827829832670935364479309224546356493678858319985515950811963017895361297933287461252527467544368632306605447764931460671900711073171647412154987490342002005892170456912487730986875091933275208390833616682211006998251035476782911532252803145248352897587346261118577597645393873287407363931595096644150003135657741037647886550553876318897648108807579105767298749213578770894133523033983805341157534468030399061338672748641156096580978146720542011791109803341267668459277737578022768026219071539190041020879691906747403968009157983086344689905143566351727302524314295468201424483686774768562847870679795076334384903102019571935547638220111176969361307097645920278977496034343422117769542857555884261827118940077443334219138783989254550953071682794029279682566050720116470561664618866468070953264524698719620896412037558508147941628071883286417784174830963101079126455214159095096641685760575668401259322532688632505221900001973653308137894667585773264111976887635002421750122624607482476805140938818022192571166221574056376917888540660763814485505790404296569845914548077554396713916261010254313423079882149938206311354445434319823918872266298484840854769279066523762335953052815964313428996716109192359508347075916231451639287441311282278660132965942540038871591484388579315536020291608522182225060103592079172691972625740108380693472258121560214566166573559033506287972312840302852958486559868057124981973701983658525926018097097438405095827107049871873576935310877603868700002864958298819397395727891504559067315620856577134509710981407975641352347741160188588113018484240095244376062214719742057022442099556605249555863888536532105941017254467951946112202063560090981195038029430204874448141336250232459352253876688074673886204837728268181994705570878829063451142529436205438908164435411777720298563862269316619142380010335520414217142616181386468208285429582048533376503426296135001180038327089782017966370054018341739564960103838071929395508777515235119403541683342893319569364340354722093448207230941958892554941693592708592267592205736299703265829732540253294862660029766840901150721706360684541602107338077747726436133087008573633987575480582458989086075375589709716484513754058603134803824742497509693830187722897738830790415160652390611544511648391586772940264477540191122152826073516239804431448261992792057696517664790980468674347201231527040630246400177429998932837768016155041103127211136712129430503846352357824832516983946177415962704263221324857235973841998280986571733736275399211681566954564674594819315382072594016678267863170325936239514311557925943870860135246930662749343015672578353691566007311593248475456897708140411163838835685047584709077931302674042917550037334724820708431112594743209808802986106416961239201926471300999055213230779105666525424634471016149677340925060905584257916953711694999222143151000325546310353150788824649386830970329436085916861824821137097186448940568034385233491513213060757722100402402118161463209860650920610411551142502569816147891156285171443587735096271714221718789636601793107312839315796047048089933006332270886041352474866132372567924246722650973544950404447641278959671025510905565525313702122900727943895949113103692481936954196215689345335499462525415003244927795480738478662109255054126091466138228370441327723081227183911981673068470834233368204216561556847464288364633238733037904799657401854357822745635657610162749696765042339351926474359091983973146176603507283337737188675825229038844856072782319071733327358933180532278881795951267626233011307734464555503057707304085547089891593697922507071224885890274604119516172670905292680452997978412471029943460472234232875206865365924872575636722025514357462261111338533853901812266160113677141858270313562414786085380498257376533118261030239164777649448552128655233865778535266401629062956319981407337177612934934544746791753802835535272774465115989104276225235190418641183645825978433188046051144771920917143922600744181640358378794581594987270834754046876038749593487210565972439032033304524605465260404265613516343520343574518214787896007703357928358702040977318124183207887077539566925469850307308466184245007900894756516962195854391684467720717255811712994631075892209180868941462224972129871984521523941155017972833740552182424278784195714756443297626308378060190356867816304761674370971991421056518472937369825314226651961165196970477522415009386079651585110096429920523383756413908285968908597511065663006668787427781436689654130925289250036394712864254328352956448752900219959309121851469142180869763261568625076169116316158522031508691999795627682452896403397813993953167999439981399446901505294926196671746147742161030469237124714260800458041728535193458805984287666041686545205864265962629024769377432672439307204309975875990563758268333257507433711983137624939126449250171909482124706971557663374542438005998319204732243182365683315978714443563524500128860078000439109453935838001544999336304456768031468694169146044236618415787855206707888866261721894982577352394601201072365438134988860704509005309260432050314701984140185892842527209677853195446430707867493432030971950160876464314885097073630703237406319048211772581128235756015208409979878037684908346075701352794284386787302658328374857307389711733758436129515180725141272173012869656428655275911989259264209919374354144684755247404577254250059286208328033309762497151102302720162337026058594641574305753100562798837219435858111101168905709284172777151874037140690225752391515480872424309047125057566417418337186463743729912975560274303615476828042443359622171203284181189718915926746047424619774264571698362453196239467146896864453538995475754433568896240014192815439773774403658374267613500968013622722020006714084959615294084458635570196789870235027824210566290406518563161167606271298585789773579118738598566870451898657114872454956248732772522295726911331616791465769408131086653561885391578512133176779946568208327447510141371540997512503245219178941991086766781413256447671618952080265432849052280355705450036635764441176085890170254993581628496587056228795887075660392934598198551188805862120659646464632034444891860301426601854824750168611628035025405424886380045607624889638337734331305788070042411489460452401537713995064053004907174605553536418596016568961276464454589856087313204398869098575024935456739806018918930995406976513136788453081259517108401154382812085575848090645140085010779944201886394809551654718382662542182751231719989317946445924681105825026568447890550322330080411148132550381940637140385023451596311718448565707388619819534079719005729852266015369954303490480836167241240350112873451042153793619944551510084055882939223112354251255250629816726265236407288794810917827199974374138986758195631454116154294810827965700843003628338167593112342964530794052993041079372653717810228387636736384706228246951032727059638145473782074956497695511379822874601541290484349711136656988219638156898457546486175927776404831367318657177988060408749166420506527456855408813684961297004417476000734705456477716532507700588096757829347154454404749355955811182749849365640307645228348529297295867973149034580703360614065667960346064099384073180450769434478258839037573243599076978341685163993351939130273859752154258545250534330127893220458162408825168564180502350427261797422391831466490957262950444199866138006976022589739241028183825024543677606373995519866524434887932352464222240586102764412547327568282522535742210858831506765445247913031279432553873446919311859000395060902268758147483858281746784836287081544534020203269553909344714882342738258600272995369005090421335579972133055102001137005641007605409935376461528428997728942754565696502412891739615531340791656665304934476584164139867813358716974006427726684669008139729419354141126419340694414430456477696763092516177462158785120816880856371174487906667620462001403252171521116248897724598461971313341864616128304557398274477391372567769157093304258225855616723412803142279361754032749944610697440156319284945218210934349897818148488541952378682563096956233132796416993103406949341213798125045295194517871825283776564858035005169979928876214827918852778405547173626004214977831068856267708461820787669566445652823097352876289414980863858151132744252113259394961041794130726623982279438896827565380264179543749985644177799942998998141431115745796012669097188402647662682070658416121737320744056513124628169244044872630345002164196148181230017074552469672898076520661597051028510527862283587526614436649161355414452997922557354470946336151087307786421853220542456369203237301439801110944984523602244581701330216764918497091462304257663476708839664731902645038798483633979336196801442551755171282198088775879211839322165585037074547193764157926761308912435124303892668011325383907247304561112192453968256970052460640043875338494651013378152260830083061416973450608152651999261202735687374588430257424823274039863697284703288652453120458983735402604620825184614138634850667036125252491524048796417100482854057074424076373838690412920819171353809941248321119700451338324590583137656430786673614434892808488728160675300028394661771342519504400709255561851648933643095727829019689084635344213156783202489064089711080148632854095860425767762253700443001299005700627474982151336581183136750707435245575303449258585861135256452256939395765664963305963147221894071565044987858200975099763035355073741866944389638069788733692453114271595315898515210105334569194652300374981174250259218796196383486812528200659013055734185419156678654777404981726058480793604472672338873890154981371473307617379857711814686598306604995163839440350884913830364725196959563794528836793291555764241567908080635976989848894203657294849897104992340829889007465681095104846022779599703993166836832744358788557176569765440275914014968791791913252373017409256365373969358427645338497724229648339207464535224647180748938937431194717514204913620233885547872663560045631130499750328095550700086694114124035848258335400311132520844559688629010698573975177738269782810424179551396668829264693548121114924427578655459663483385136943347577105362836690925118118170749388564017132482559908956728146660705495343719636896752045681582465251224883835912279316914767867023350442921806085131235206374277121174186391484026775259526230993021515175920101952990201231076367302518980182838795707091115998494739462391031487346417106442835944428151568120591293147918988275349649334090609698194646240828407559597606319570583545615888171069794716116614810889417021101317528117193536095666817345784240650455982553560567247355935915241534771747060360969346076711440105743068924494954425056462656160835422044663320103099968523287252957853375795087728982850593622369600251583702695625241415009988038234363022660842015478554197229956966238374598125123763457258516623778771649509844888642010862559975425079885720510805240858137747795705471413901009821737455094770173971315402766227054546948317935851300154415523327031479976337865098709200770049035430404799587311815877022192331598987793414936136964689561168362243537002217718532552439276477155236033324645483911415843022823984559982569435704755005054682205514026415729995720882347486970566497389414628738345037410678166412948331728346775626118245781226667731808804262393490591350482741599360204865633687460880117828661960671549884726514424946184077960700189665195287408082179945257692965965641951966344542322731119678860225826259548742585015371849466169819355031627337846629504528858798822202130484923919679246071134514387186300982206721705335403325295416673724252618368521360687622952783104334765771881359079195627942720161382617922817825846508850478098987643040833475668917801591919778044419425089857009222748006395909250025179576007288888968179284408125560285915460878513689565927803701897079048545844487272889396578817747920143735359261988851799449146203960836314367543302321529103007111680048732924025434988663951077297034657117900233291419170012710604413528150182585534494997305105675031586518958093926211837035286067062942952761692173690205747498523486895462464669529869295237986821157394130849958117485870911087688409507902195460768319729036705035965350805933491074402757648846978098105853647658309857441744516093826069147283937712184832366051157515419212976553653350610678165386622475224570003778085073404040806059700597855907457203387877687759645379312445539552188164982367223777615607919300200375427309761246336878218718854151310014285063975277178838662770508862954959917994999862133529921994104713912659467363417582935365328352457656271159463038026090299805083041200944901696234198007949341571662703445599436430474846697930017649026301512234816666648878861010420847702402487199674380406789354868344553347739389531003167220769940838726782216259453865842584973866605395017223332086764775993187116297433509233061811962214637225644725070218803305990622243452498317129246518880227257227891262587875005102966663933575902896109235234244978643774055453545420043085852721558189570511213660603792169706394551905461248076066451234358385836403832039743169300070369462131488499892362642954509046273564016829435595823800360327446701118847599811941444442013502525709803471319033263319877516779153193428910123763910282407609773443716105685217694747454171959797144675635515665392858077061157698860095627857718917786333606970229528730638001054622915709211142027062231836713426149276995111119355604081735239972702098247603279027961575200675531386916886119998759791504510349110093562073418139954929277291342632601765910893249213250056319770546463791358696885440510566471040287479495209743934336076596821972656686477201254011452968638267433189849004156727206549142939105506481676513985869476495901480845745909378678442262445935944573929357802699255253674388608491450478198040147475368403214716229705819404625086208389005766641229633582714651757752444553857639181649987020357410294871829980317070752580398451062972326660882941744040654872827271072709158115202671144363412862160063334160742013734142485863680631529992682952685492813782166086597844105282944116511456598333914980784336972577609938663887108943270318728383291630543887344976722482002963767275900104244379218026673909504296900156360003546051559791292799047861124706378724998335512854511663219835218677801887644958532171171384239325992283675510618021072027507988547049643245129305037783693043318968348154796190632173752704447795639877912011533506210997357649078441184351567298741230923882267425360282308077487702515298579977307675803664667346239251664029710034071175521612664355333239315049316513569396514692664246437730523420603214482594244926090399377162022230534142063507775661723741796984171758752381451775867073431225409909063450554340426420776340948047609269445461313783181043465815736482455776664392250504693514251190763386979441380362334424541239494522138234527775954770790360814148198079294789539830039561023526626271574328530467019134371219419325654053352404860204812737221906069385360504087514127046462489185707858251754947559828493487633835604349264216771782168981161582885422342594052361450908588765644213862577269403716688463386259557065191428701072226589877415579658660566915133019175282568651420528362447560900454608682467340261778966761558975384162481243731904535873076831832738070457854765996524051337765655286518505915166253265816422720773116072097273672360292704668331897339494942572646922909711415767728709199829670233325817204310504021133439629854404347173637884254956021581947367709835558500010964481497255206914922701730476062972758388787015444396140165618303254298493729925704415376391656298088528210635271745353293269394932557650527719914932474605836874551667586554831045541488200948933609654226640313814481312573780673815075111825792063256822416170890966924805305638853005210250692500123088982190655890337466277638862554082625287316270737130976767761369867838470668339156441341328701456715286486931610508613408662737565973136146003764678256942820355239625561269905874077648612793379145889807892153990133753565420493852857253775833337509645076266792691498427610717049123911753146461322877427822079537230890784057994135970315315070668501103242626837538022568229600920266220715922855707606755763430537385651902021012673370759567862584232357784093509583301521184789285674959606945198179667063378964996970430248773167221467662617369718943616219390066249376872194723278753198615322726469272717896645697004886047779679439881842200940445970054704291471493526674058891230238232102454018671881168389750347350160931021296496589251504652441649720865790192922122332797750497565167598186183442768355360701074469685858741116185442692610388468818951051482675742977696487380574491430233990072001489007913879214485572216721240936632193312443145839381239479397054436193863778269141840640335624653818716953908033012023518170551241631084346419935593830208065886045064083892621813777168300354388925677787256734106376579466974807282582754145756318574934008123128106093695354263523301465734540996838818003014666731981915233171049654899756455388860996121240998965675332532679084824816702628502555283079522176831495847879932753604254031306984828753187220878320743978801289883731863430519875939031248744608639095240716902024599214296406414530605101367014145055824248185679100655674568952606570152636568733807918282871402650604294820832821094404524652391348277037651634711272231556638843852669945807737323039666076541490114752749555790129808354237463197700425504645097243046053027304340462636697175363480469934938711415451714280224111853112939296332145057911824994785665541649708174657857045182059365733379964301466619040794083178717511174495598498952220700208379321611177599891271723693466531059425831606879822501281808768468467194367100896172885932726516988805239125903661735740968164421129127750754481400868757382593412798463474445672944653634563393219253976219384595273774289807337096406183677088998981961102545845782015942858442703471451666169846067013648618559418388055293038378530410166110842421589553700770305553592994894638331918366896818985566756117504410465789316571893058119985685237684086370954528590300797645615480909072048170661319278632173720748453419607354398670878357915248222169056023204270599446221488352825317245566082177232610766667516346032889566623482072284601340276951782098670803454899994473645400219644561222908628639640102800868779484644043057249739315580029603448337382219272505571455731464276498897710670317443898497609415824421180834167524083823306510223390415438524963184035119778131055622885768504029308089175798928465731771929406987587775108482978321070331483496544699963975780855433999958580036169303489525797640950125219137722034465990880531502973918299770118900456175559306229570502397777934880602465570209099361397294491242048553291711104560244081759904644445059809594533454803462932685063772492726614243584514378843328736671103220546526007551015819636617760974091783114624122394301294382134650982480228581631410492987340458037376907384291305259372891593915547460999274883374878481497828745519173153202368629458404560257471043232106063006875280305109145037836048983441015609527738540710483203139313837193882985882643515440563103850721650697735337178443662135477551262034905057034820129405740538117568935424680836293173474527526805539423558787661015071629180537699166950700349915249609657001222788615490055131026518472973768685339936199802904435183838425787233722117579628630631299324703821476673524648375310290656633228501987503327276557610336132193136017675562121522355251244669476809035261824972112151270805590182351927684700575320986276643590341069052144296001245532536153326056511093424717147818251144645366789672215777055264041163607498132590243136421880677986251187825419121463877631341605161193637404106755644166637880446847847294289138214478090433118643996754781107873189474683277945741428145992383900629047012245097671061995978915699553223636524528669978511265955952458941707838040059805203381601268307836680429702865247411693874933746257549611449725278258082102978888819331244434282560993708138587488809506635341706890901725072439116784692976251010070238887699823584488540767274667598773166152274851628889016999526104673496929937958690638616975452262566406938094522435864035360550494866605265056289086115268372098113975119435914598673448263548333559079405866117291848503189841049111673887527280501306464148943515008387166052022295474516896667878101159499234255002633393390926313247478147077340913101503671603503152424497855146693871889974579288191058911126461204794654192487917369327776632141242540668036131519069236913187162470951680053876871660151698995472198234328107583830971524947303585541437610748282830632545179778658221091394709231037411280055753315566222092356482316367499719582458150420872975933122060614673473839900207885692263881630308242353255800984809476392598513191651662172953048200416524713106332109940063783065653739625755030553599684592017274034068429474946956879748681356957581464243163380239980721106675515667991621302809145838213297302057056634566271708477380579106751981154475021534761477972415078223843791378300372220385607936053642799130122797742901318979510899426780760600748789316809642051209052029015193840297519292130275879170740394144727749915697646424524898844671070098672112131573952736996860467048983984159645869469349950001654472456544538677715166986641861205969252707620622549192744609618028942190214203359067867962782084267601667296378411241247790601113345008761315296079298617545763085539625587837371841854465603450259474453356114827272579842510862917719736614658398744413872785076065407922279543491662240723666575474382767307726554256972109193547086226564943690254211895443249843578810908144531816282102833510217456746777064116633911613613535250244426379712293869330256174343940230421455258558279421306915761052041136983205088806137247901523329584392392474320551162905333134221569022108055643362688912478986295002680697767815474006838778332591095129243485353334392286179210120667146323238177150224794801997686375420640025945223501862192018419399674336769060886573362973688667448936604614344850341528893687249629620325052739805328077373676459481804547607349861238284622295288382953104767466622209535990790068141229762154275346024461449115480909787934864837460475723497081784970390578775770037196197068063533004636003206971127537966031945194529411508953318149406065735848492669871143002351523072298602893097030032756959455644883818904836290093605803252135023453952790124404101606221200351553729291838834123586865079165287591598657362052406509677421092720372598900010323187829337041137475270136142247013735006406739291020114116893537547967625023588157298506098129505410284624799048796540717607158964745084180177528508463452496000190517261366544884459135973616948028870042634300727736760035536751379257852197286505390677911023715451047149378992582080709854439852646469171799519906307328601348928996192164010573709563891216620250873532363390799975408064446241470843066171479682626757110918643335429463982551359058357238669655595134757598354552183197187706442706853350078463772834576279456886064090230767937978074230749785016358827026219030708603054595032209686813570273861055453935762105170456553907718934753376736094531175735941923039287885720311240897425907375384190781687148086051547231272381138690703899278423163290505347887655867815700021414938229914290881599138410161975464247017036235657533369735052236694407064688808689075844366424628891789126474782164820392534973771386984527632497687406447812397244932560214578502466446165252916796637402254283402749654108826402901070406442261745870564786312483531889252655315758182066118374838891550278332668028889294706418839651216914625075218010910494248460857190346274008049819802507729440954348092737376297568990412016269729069256392110509529027569672179098831975500032308622920812994452374989313389406036149328893056164459707233391283220487464595292735831407678858070886474513819764017057033420432318998989823782873460702496016305496475585816717356910979889872851761250169445730556081701054954012263954389772503453770062431251565177488920438559434335773307664519542946154550875094527407670950390133009276828900756038250170580098802557520265821358141135201183592895842290543806379309978074986501616413275076809169268589643876854598460248982932017542270538437692138442969792612541656100157956324968797564990508419336093003276783357695344448136726853323357809952201806167273624681458040145048153933408837121950956897959755448951347892324545891582581320830425975921316592334525450630426215732077289499148970117490573021320268299953415406254239810141752322568596440446470958343873459301848748920382928530556660440996519108015510609423172474994447027725580784490443918897616175623597238399190838207850042312578381433973736698780955804679322081060335106777799471909955859734706865469733783020045468940983520855844517658165802225703709572996132034453007812151579370278843600484009102575401015920186494020890723783477657723205537730397258333457064883304412256096766633001315505444973575272546477273152889252237281940037787295825952366269893578343080208551146766254280322756793269994018319015242773089025015601380903319239496762541314217180490135916000699082952068053501404852169657025239823476446045214075349975232825460866135176968138676819219422647694180856212744729618902236078428250431393013442111604657861314439879474964232949906500052048411394266879883675537703228387580152873643266704179802729356934460337948169155954710055583582146926146788903814662166006986439634741068462356740759384237495414454921730374715113391701988404399424477405810067160109107185033911972156650254459529121050420071335807025219148147273031219220030594849252486008554582361453962163927892270671312506492281685209163079102299445357854773737124043266469129722339130211324956776478864285885969406233778742690964769304469829768699268656265192034622843570524580145541959471040795908295798643355728281002249568635717940958148890698063236998520220289245584740143616601551535387927061179809151007104924520183303357670409758079433861362850983879794940277956128532350405030868173075564650338987010784984612231479558865217872367999387877671072002676480547500697625477783895200368466215109145133933486513942714763938701638856402625965572931311199357629146389176347002344092705783009294036910026334903518223020042326989912577962570003687158247826230508432708073149850256662244124017377488794556189457501536539502283445928587350513603227671671304162856806620837852339031312474220026857182867626376224718162684972175482872972296001822292696784442304331642471780191409516890331706468542951458335652403415112845498308712024986486038066068864176358314561362706999907620891529276343759072841801284932920903363482301460208793800125627960227240822738993325557374407239348056250571012344296138821035874424207258258211833407555290081521070121939414174962107188377590654867409336647803666007432325020423688593845783509398592369327096892009250326955246338720560725709082410095730518309887303356454948704106377229577648976880657084500858150932308092614457531807241924648900273305658549698104883594423428267974177324300793260861636751284069505049017829260588901907313427734387360097667118697070087587636680982517612156131625832741040039421602955072072539232152105615826723955621200075874956613216622157881494782321563784725297642430412877599067586722779950297743749085713286885995049856105105382550223257359514152933856095568838526831798038307711737759349315333867664759084092497947966117453538083107955094410441292302877117141296240139260299118464409580609381049941036529080177903952654397998217238005791451683079648858402969099441321574625069460119053469829066428314890365404522805429875432266892105588011149867735732382311593689412651307632888149751804391141770219797620792174257725131106668138755943436281992092593046381496888160808839725475631743599800208898775971617597634751527156309039978399200263874550857489240141604647630470582765770810920948275443938139280225116969474884841603751231499990832609006993192185115255266548798677107294159155570190172492464477757398123863325662435895873204402551809638218200124066536714879610217166002951913478938657140423923924683478151529570142779000861533663895461043903405763401662260527773717182257539855961743327592851235305821020919502557143025977249749249958782412912508676868547766733530519644331819560652589510586795783840813284392522704071590358755537033331817379751340084297986585921687530054970456563723158270138753764484269280710988911113615157543181983262310679523504944902867873205058044653465632931919103352012696277824695651096068359024140409003545315043958130662032517953511178500637492182088823357169340506990207704370250111313129221773192144645979859414915166935969263603750544924483708004501146664625869762918221747272724344194762751872313828471103250144636691444717386943123895887048247882653427081206823413786424235473704233686375815134692940992932990683968392840844628871561114608698309971814188249161740802634976266302545989755010724253481481025369302116658786912605467492709081263799367085174525052610609143956433110886253497328553819826541691978395287791593743755054670348466357831019606750586821070470731926146415511282423213346207324273927052164337185672417687056563475938813216099804504955040339655424764345603701974366730642117427470665499931293257500267624393068826807633371967463288128499476916391301878177434144907834931855970011919148340291979486393987465993899850781966282759722842380092069725245044635762034763724327144847487500265873621471630903546259820658345944650616446712805302452127407241827202561109341416313865399848986086465641791560570905812602012020988128760494806959583008892427057699925749939913421695566844045656953307737760238336643244418041934339158879860561864890300479327032696267170180428238686024405724244627998941289416411618207270665607209575591912169307499202045033895038110063962094432968116225128173490180974375286743326092248446990282610016882491358975616481232285646319882359551763171006229497894014886476310004010411379841561911392302986767985911175010672622051953575287279685062670951957093727149561008113020531291612866248481000620032595957433249481344242263601392417582142377008327225706918980274451103157334785956345552584138722194019480999520713670547949466671741680491746686005976914553746556393980554959464187623216866434173932034684266473291836840664219135998327393849946839111816383028451055412446967743639951791799894703728096868971900766819857946162142141457213996263728637367883221324944610729420643383883360237365018449353371052854890316413440724028629723476411112932905692788459458082120640780606687624164997271140930563540342173848550535855443912806892651915184505975558872453673919130394647758111761843629924285729732716166734457011568098652414406392450031840914104989453181446741576594958253913563017097517651873547414269380666533554070515540519262543988235214655232708185536270012009198303906512234419953229717768594641828802269022929231882110455202490799521587600250141361059649390567034746437565261775858364167167475810493224250179123217137434674669663350601799798772623153383254895933051329692669837135421243620134635701171327538082432243610141850776932912040415933371521607453571535672102030155004647464864978332689833625694336322211963892324939526618749643178473351899885665417227419769779796799630305648205791148528918524365396791241929749948802327877669623191640008158039417808520382808214845364262683233348232473500132213548582333416410034520319198231510453767168015186036819157351789329869133898009777668327882382533891916433514928633257463601383399168213492688942885315722985110124951272341135353085310131826923347633518011667120265311308442529087937455831475840251614325083173934004271029965029715267530559726319748697195306362512690771513765329402617129494429872920116574304737029313087827170560159492218066753472621486488162328877103252157978387490099465348755583535432209338668880335574424562286530135723711242606629676003309033183963962190432178472348594857527959954418606274472248745547863783000177846187271321966872493648258478404625097280551970884019104223848235213136674462989210946163708026376049768852752642624774704118496283206824425722263435980130751300594097605412762618130904424463774600257267866377645308171673593264185899420575739372065759548548097687560282677226593542641338930366830830976924270019586456141738123121739429947006295462827742839078391218395718305124590438304711365918364753731978602854838990025475846361069485671646887923635584756916402309051731001083426889994721312222542082562393737163099460324687024542818118354978146904747433122154242273330234252771062778726629131905474335071656873673169577927462441183739025432279991148477056419529513427488033602819185196266602206273544516930916107952088716912132676106259135495834829186799504402469597346886387991137712729313126221974713486963013566829285970576611438596035583112613755396538080300714902442072769215276135242022016580587118027127650607193232857429206256772695991171380549643988933088261998554599531042874545653063043751967201522107888151268415482876183378455995682698201199365836307292908708382066688678781036313462246739758221788578578297152384210206377969179864189424804397344250975726867910880797275561203647126627977403689978571608781588739168226905732783876976374969916055073026296847788762401238014049812100869693922356497180735214709790127888493014935207100390056935302704674014432131336402443585987264760992194210389050087956302850179328928991014372825028409854381229602156340420874878477430521921649688529282480152998542932968998815057184463357614943008147684047668259644280642135929853279470426383383177721929203842899766229103247068132583730872852278968396376472851979365365919058112712616673418302543519630684603198974885191955862181810133561924999924326833067263959592575227837310186344451161290810743348398235225070793148808086800211986890046163949000516382977264068418528013319702766075231900396313083530059524246140535764164777691844269519270407736401692974230700482337892850017069719371121329991611260831899875541411530264814242250670046663293343722317050458410724521784759062732660021165296429338639189635415519334115294495510382015302329652767593172582352755534785229059540883219868780196273338620214517496789479733741968365227721383134082043685233715767360306710158990363906888250982662781256840226816710830270441104003692930833108156329155884925607515438520506329557624771913529728848922908583014270649982063187270124175746020681153778872272939423176292835847907593295729069254280327558565495041806239544570970756401953456206799639533770783617523382691007845245370321314948963953691154701819024614111087991230520108082893456093714607876577636517678595510916099657727728275077194367977075733158161824562879293816811589663940914757709988945259400052177282589828150910937655578923250187099451654253476991976244054250328739647643243309802380312429474244798590873093402639013530185117019157882390644276702826620507200787766434361882684869989083837929057205946795989626012155640210295052232248374481169602348053607920246943577221268582896158417363840780655352122184644497410559661139875904868696158625076231389303921748652010064501199141325487916534529543777884830204301470095305582480936129848875152734925413112331419279932650082698616179053475723877681174327263275403930591512459392082442690085792257630332210608859950383824342645389543087510329645824958353800711329625856985331959412456945017782165814614998303637377045562851376353563336401097924922450859514883383820773109222662320575629377934144972962152369475411096787994495860592095519159103737999892755510571408806522330684308091725492105428798856257644990915297535293076651529907583823463519758734502118387438884118419122207015123394596866599497307685120276287086227207040081078351267126089004017649009501932166157322665257125934176623568551671941788281147512383796982092156852561732060465956363774307912363825640082515607692289818902714760903903781003779098237303025267699164251079724883827381247950731456683873278137270912382165835160264365710471511904999375183891601006937982324984605689987245709590111563435278380748654194066925759642841632465986447527302371495556315196159304291298343418621937585014617756032285503514971380446157393290554259139901584708224102356873204828552685001209394087951799156568539831809184654977254490943652996208862440127029970264106535861006134147757217483771137541272167007926724163759101288521528338005077031446422601227273368797305098505291954176952607518349169285766198049997919292238930893405051542778962341120469860505354749569196208180017624955602105722961793798845603526103220703725617997254576204653009215036352306823479344441425282698122550211053366181298409294351699445267377282503904179812202165319186468728861960835459345362546308863015792193938149368547901105302537391313195425094866496724160742696206324070691722844825965654181848082483585299542570225957180077598882975582257544570438123624263027483663576999237682499336373180117600097707202749529485258281042726842496916700851934541351208837898685830258011430439750738373225702265469642644905584880220701448123380771150412083396185917396194535640984329636038361953974340873584802026731719649728071374838104169533686702888991464153852489947008928139745704019479730926544773327338860550676927713344298550176013977330233061218594584344867595787097588265249712021007559865168941787244497463478497784314850370926295550845648855113525499294780694933935873909880824539012231820571033782835864344361715395805975795335461889501159100258522689906654014872076895708201324093773473164096641456256209465295225081949030008509548755962912300753746010572369977615530490621622386085296862626991483946511567626944161532206387847291980097511774503632253308372295721148143438583327829574027803744380653680567687016443709514596138375908717774381561352423498083228818001360115016363581554777162005718859496095162213753937119682771685000600897895532580312806482115634851714672115466460595416160199170319477021074178484912701916048750103861883727014896604338498972984050151864268286551278295842476077761410859146075689917773455241061769988035227519039035126355938141305656011642656999325792545707422917144356828656922174186663267465509676827716508082651600908472179563571512899669498564214993845170311266844450636471395084575451575170176278258949990243228524282498538086924678718239256917723296024161319212995201176275476915972126598657758772172004697726868347622069079276737695803670022299032144172749562050718991986693225526819322176120833752564310526516615380849690877080929857520857482890776621453627033170933701814140675310061392260185987394204769065263122414837150384607186365108555316483126273765514482205251446115476836484009105219015963491641905660243153506858312434321465726453738284398773211148565608457874369257631359609629735444243529152472539282193668846434666676120874501137176720693869369086732602020967296939646402921290011945420471296037962642382798805836497497549224647814659906592140860371582946366645077130799549483934918484207279222009924579042086325836052863577269491619873701109720505219996140136145622034268602626119203477782407460717422476234386197237104882291391006382723406060909747580231432320743348416230257524619419933991834354324921234990061902449283589455450011064070680642592334710646022644006268631458642314408621738369600923274113960041734227081674786896920828699919807775853918836478460873710388646485983926943562645863544346508830209039081583436715596830879996100575765381859820353718057743533915613157820976409989765355078168069110699689064720139229677305233045423720801454294265795211515478020483298579980819928540438080260680135256311377025388086633205198812671389241147085939294922816115727396531449226555746637190675684525288472652736062582527821622507644451927036738024873589824659264092834903342815187720498542640574720201112979275004446450691946560091265892645653094057542653123208925153168302635612247691366691988086612328599945633882355989607283029810217330672984534772560659294336874390107014046263830535359506065522555892081646878422494712281574258049956695024369741628954377057277853738831873194302396112433840005289898694869826144352703244565220551253790435043849024440809988925466090282615446909382002715043957178061341257279849845217282982940000165188740633171477113948753970226022328151912147773659028565713253106700733736721216945550661794321882369062519066240284695028493325405533860003742988682069270826171593101904272222474110803559236699223496639936121080840742262598975701651298250460059219482778722924695586318728303536174853158208078073940777008535217381855375288764546869569503897224456294554447105358041801652108144457629754176761751674071341215635644970114358087350208715495093166478336128426251085713769755156749431416858162171551399812821987037992688995581157773345669961224259507983353443530256188874808150957501474724556067291270106148623321689397916329911309405419194885532654084106393493287242361287789785582259455913537584353183326937460919212065696110368712558542689360895473254235581909269061194557600628500133022417578545686744254937231315064284976061822630878351489449026813251749746080051544386926634219813063463065478136080317793286980877825320350134987964953166649999603769086277983580562482298648804867676699823495343099750476316434026530099722339736696490074503266177457912101065386482443858406494875126058289115378426897833044120281279535092614846113479046571198260112029097936243863510039502852264321217056150029823041235955781248970872397164979872480249596604752152096000253847502283951180307469432203682948338031358459522978193420445528365658230406468135408671236679187975419099200603009932065276782129582136293400433823799289142994061262188331609960923809693552126458180709928221626649329015544984909696084385809404881249077381497031946624667724205335425146084738848635673416781406115756243843860014265102337941898166515480146620772935763348265908028618039105477404152682172449924154922911402200937456060162704347085748548536977368920885633376426366838509642185081686074927656994784948974445498091506935045383366047960185596578065192191808708307070746911265891205864305773127899923877904308829856691836115639930904869762078777878383648195310463345343918263014537166301258200894397224390781157133535641593020957267873188350545917576344981609059277386374982838866011164905151708360714371745049547835020463378083779444501629507460472320519368743294222899322210614687661329728937720834079094063216589652696030227308240360460732803258410904041309006488600294004279158738477522276784989950711115317804680423261566191245595247559090122679016157751615243188139685451921875013760636934936068729873363360783816297476309810633487305821634480718053963414619457826054490967415452938117559665044818286884538833811086712767994096419264219376666317680893947336755317864971990127768744066456707974319145328681187928051705249280902429672175884787719366896328559648030226484251280345249246047172234063771556934725863664178119875635337125927011425108586045646940059467720486910441421387008308261891505984475385022537766359751669599535091876916685585289360516360977023649002693669546740906084550512770102919082534668990011549295272423002820821159060268133865882657683987543878789311611221125672613316147360647138604262582502619312760470934967366698296763585671316265170268080250834928866434287496371077771618764003025564725384516179933353835526658118309455179459699995006552407132339179267648631418978662945898243936880243254349747598476512337156806227758643731027436104699255237787481873596849259894593956618671171785084367867329323851409674867733502914761304169641123296096442822823000562658533868920457558869357711514309018649586111091404436850684754440773773587735653135318768404514037773820429020940624480774510887392803897141893269245545333133576217953074085691787471868622530859953568596439531386055233662924481917993451483224667727731493740954005175778147791763074713378548744781103540830723439272316143440551488393307199813019752846346283779215544718568266505437928644120651211656769922224048381853472659016849256343865956945445460940379346008698592523643924207639766273206082356097499817415081265208978331799594166593800702527077396121852588157213160160976174056564202245415162286587553338009367514816224936224352409428954850626195596705945640157062285648938038872258469549866139938517436928089665976105862769431805763641074932314258097685701758734690014314084872278342496289973090643157933512465539473214798412674730245796801209878621237300871859810824514283576906596305509335152798436340221463450888049416442208750295241391070489939204166177276630429866242527149642570268755941376253939484477587615861929857015674636535751952069801923729807674968407167940095819028459598487552498990795056199325189062670875968463324350710507913568641163654703712116554539941839187330111475692164870760715994404857785483406379292262067580392340272592651172960487321186930870255614584130302322163249171988063997784466074249097490029421329688721910767913557537765272553269688439836781800736505821738843313747088630425139836447301707869926481589195938772322503307519600060407928606037542841456079113306708922918636031306741596394066040357046949460327415641771146870694553389915072620796632743433889937537227698406205965344220559773418739939625342902271711166732909627711557592183680564286575380875113211540453774621943714780286064182977715040901943173738602998103630563652993610597012037296201011713771257854511537005556758607874034352573854966650339935696096010640749538742414779702364371703104852763794498799552966459341107984917233235803728949750495731101444742286539523578669035193263198887975745091214128093692356376925323903991602365595979722049478174494571715991488631105458751109653865502482549743494479254957910096703605108879830156002934179616093531871087496225908117538210029020018502452133667281237788116934305585786872430552504708940772167033802018132638071826753722835509109075565935799870688288965806160222561696037539082320077949095543320308958786497441307416388451251964150368611038704192657639227865195272836534479948313606773275700280983628972707617677903937243927967763072618436887131166058480021182878720658629288019599402414908291761723296269951371351557745572886063503733170413796302606617941075432444581989828442033607287046604025182396581346526335065518062493641881294059415689401870378541376413614611677165478490599340810518879889448606985375798537796505163383285766426900662400910976253259185976779592404454412270533611512261366261383672068868364775170036472295678847558150956134275529902612307820431185033343224227796538005498911518863647675074743005377929640404737072999437554184333517130644689227560878792570628130727135346049668927966475527312566518108939007462993249953221505209167787249717219024911655886233502766484060301721603587880320837070337212302164515136639444846678871210316924593567597459359668300347863982057000851090654456050652219293597365448490641031686477363869534435018305152521201128902249176887556588398146270309106686913890497057298107565099040443975189946472544490964668085084566594474453769053404090861309655320518672507149571874063388068210518228665475841968402638083086192101364915613336022992442483524181100129600176216832467284179439339615060750223762560077469047895890196653369640053416274316707434307621045710129714200479001740110128146214804453521537913797836848558005881700176460020934138930085588889204097536251177371817505026932896606752754987200402430403200147697815112307565549578309739516780517016742691733438726376454092044948347258715600779261817092268117835233713841088530884293981624609184288864358826405510232426752392206713283828429090529194609703742676598644035351389561471781299320421221852742719773914948751512931062834043288463980425677431496659366698678919455740462764333251102137724293956979926139212731665407074243720299867372638457561002255649420913273869815190087731396225317257781116485935663276929935335468961789794471799850834414124037146039068138027368944874337620659972557450902614565809456961884889602197432250324947869638002376081977283620915235071930346470270688808430051078820894197434821043971553520350935581156984461076687220636641228611060872348684854755295898460613319022405911073721531279545422199832146268625847250817990329889572624312479976950120379969294935668126075542483816491470835941685340735178667417804792236900622303666144564127428620082039635493165850386920440390862294016781332146879139856921757793232976166287292509590500989824607953911292027551680463561448118984815216503883051173271425161211690192281728456573140269341777831540315388968878170390916257643289979181918037249944046679746237832278228715305134236607503614897878828842540599188142417767082916703987948335398934537850953257389200858107022767155953925124714720685830386861522758254677646602238388725567907763126711045965368936838117369106489585674633554504987928097685038164293914675186592464719905508746387070571038797366859417276691652041783786893529388064449120078834321827385874368335459188597173005804600215284858978257085756871010623882456214760828894944988648065748632719473469762690133491069540586175931793030799347290724133262263582350223177676267720465170841390768304332474067136700430954437166911334842069690356514912233664619981867841966665117423498223785566691394001210392135310315963535304343423745551506943202437156883782746731397200744913144430322396267765501876597065395507837296270637158831732983112931964120915235928134409812967988945235357903843382244732979924181230625438573524544378694920645014071827209388466719339770690152141394933220760795922837244274343477429273737423175601134849821947652046325123805758158365224644670440991412592727041479582529853682522820121614216579702412114190407366547263255478999501452374367945861785784511405993151068399793307866766473743478289558306713950357029923891875930527922077716912636477177797269409117013592478394850985942303877213771332729166210608125085302274385405272074759301676496614827110620221808075439283026286318340248017331996115357429981180710081841900985420512012574495713363353638522166687526841365592454460571231760116701141139263992649258507069118696186209383660439930353726050428896727355308067416831693631268284461084458783562350255194878466292319706590556589027141240485929945666694089053157097513114359611604797506968418462086084790318517227551684054729515381332955618650949771810355956572981843589679422292117018054454060573402921313115802162864999580405456029399601955767772642477872121208873754122056758205294818907167619141709529965385217066015935102422897531918779695864392889183098175205979629250627790640039554512436313313572961647555158964517470872697922268359990189414006022945504005688612538748279941449231378182250045519611004590338382931732809009623330779396356426246114839576721070259135886515211172452254901440415786580906588903228021894592255298529022600161757460391300302552303248216131785687899537623133686209380993144823520886363999767104315491476357683450724993298495126881015961340936526131072596386434231539402433299939066179282291912693025571971415061426138455449270809732942825800149316208268855012500554431984034526236280292940703286227591195716470201810770173573517344453374256896745856887733090898193945810624979625934246906600359306828293717907655945233596672213860079692225910079789303774145409842099188460635724537802302518675491346114017486667928938680242730856647363834056097580475832211425357358992212841812790679854940021233607877850798793365984057010389409167551300679938350165480480195137072490568000623212835848051492328693595270213367208352180648172040445897401289803109860433006693851957140164775541338459854782667338715610466799271994448943503698353860143166144983737630126110389427456395799747850787065117583711203668422585303196474183565811409414600033224053413437222643825368587223303637004632553430250243362293037910821726424095219682112002793795321665086910901962300268614119174331315406429439014121566846527916114670165771383546815536864451293339720966587682346245061798669639783440635393752278256993609997898284938808892184952600502877513456399788252105465968546396673928140218748587870948774477782985429024898335579974634881843529895577914069564463600518075826487790419736548758190546150291687864343464646458247309563506499070105610878186688246949279880363915427450099252091657925823634614869739298849878842694011179278529244692106865790239999139553309031450094240632917268276909330228240375493527003045483536244773710498913837687420430954328578066524138078362975347335984361692222055377551641506537953831937509380461990655996258923946924231772939468812054225518803189374884469621242454052756856157948204220611009389324617200410700722909321954269244808868639270401241669046576446400938688554393831608434240451524146084359578567570397467360926745185076789030469338986986029924988487781894167781372907414262923531625132034972832518471452905867020808531854697439560410770848841347265193783472290704565791710572973246767171419204941105128990309735465911372852777040879287271001334247155097795814160756905458403654160083422789071263449565507676745337021507541409964388304475332156953495832781538830091395862330096433501423119593287590196505805773150783072287283254971499879080082307717049448263494818435829959223460545492316956209500519969037915752472800625121831440988657619435728333023596017209018545418962612928849786760724545439545317877468762563389891628585270291713700994673032273777492855079488609358249523303421346288877399408856333648745786348892745925629783064967280746597154137657182458809177430022445804819339033840210833668240764298942587841801637728644743182710326654894355716224543164843268132894267311417983691868944503825989000820299813347065710563245165908552761476998444871580683411108122011487116489641215476771577158301747643130554092910341640368847478799514147996009442235467746287997023712789629116882529113279831332885458804214834392243872305341107394767767811096834785848944219562300052502596888705246364778504379567858653838079478501994699564241665811413071858140154036020226557224450121682960025502713657864358975587192634126760232319435925807101692775873262386010333364044446375223403779917682524691793427319007175541562309416980023083477472351818003858381627193855592504314000243197315422735807995301486203429362993310142712057835929199118961124113813251425812483166400984783496816304811758205534523795275398505022863128397839838615202688627162197940744786118128720758249379266937188336115400866098990947112439867854176909685116768257364539419657184737600796799001682401583512734863691177366341570556031441736019316140384042325730735870890778196813627423722217079126122227003608402726680094340367655693073909427800334915621056004081872132566086181588126861568559342170856308904153135659086426872619447307748400995372997416551488253979342395707659806288028320135987529105880612886350364550890375477241886425841923522164013733806929532393518681408068843427408096718883011412572592501692540888990868448361417699477952186426300487837739630316062394688071427829522001127079049553998189461000927234744536402665193366682553745982528855605418780565777456286479844754590252975673711015928212562633253476308016405812793304314505444730253750680792163693424519009988306370987107625328065025526373536676355130327682804323663659743276115180324571061707630133114989130476321264805596997363317858073009054039845223802432598220872001731288998626367654110245748589733896462285907555401521999359912524436949942054884904781750702470112443070301081532891528934545642743939818839598294079145462367676824528874384823690474874127373133081068301799495175427523808783914517441049514289168691303552070428863105381212401937442539254229666836314707838216008742416479585037693749117751524066468895019916955514507028474464456117406392202036438731406811913718164436413395668164178141573757599661779704737468544901790101149882227701005954221893584471621734683211204044973472313976691436802238022632612666178615473904102235809313969183284978356711170527280394871365727845734353159793557125652594915653440639828486252912787403041121886368164646509015023146145319497939073849021851899794624683641721415406281267574645726111504409993435746831485383975712482460872711379425581842563639939549456262400312217466439859077234474146680897827234797029169962718802792573474293517173014154895562305429717959841388980393434570378444190687970640962449671360717630307370861064166758635552839380693708047677610754551499209787070669845692802751256971460102471254012769293238397599509761128090364943573106048984957376047322120409661578901463297234233308588626170999559836727042258014600274164627747965051309698174117253961347946542166279437888448581125342834281163239757618612659358169028324411426383997572360231615911996136499854316564789318095372326287930763574487799386404688226710036510930235159934942567117507692914832994402059811631321289281658357259936340697139941231949726350672725206227207529595956170669637026287178717297304232885830855089140809465628435927175216142996784438769027328360980999511444852713856888766202789214348789609279478822799871810542780151446883306756986346050294194669067913642844588733052948370920012553248165600752713045122094405128457279089270421742453124273543519262793626447792438853893335006074571043101601346443838015503904056304797252084647581170171215863899675899953397444154819148829353031295292292998811772212387765165836238408899264478869307104768958851855812332742403813067723919354936322008820881707563237468772861722487464018843886815235989735541381363589667034403681063674386930663466092911276900139685562515382799808124773050865642686412187068985808496826780282398865296682781732984917232748151516285181705997689686548535047154033708878817659585037995602581539969290422883323621888375799387925698730553097492857337331267611005974990306067921509975483787659244028394326600536653341307061727689001625233684490123934152092765135749531040758521103622887818404695068149057031800974686597679890861634186026374830435083173205027519407750205949705598488140145005233632164805580850093206131710099774102335171118416724712740702287445443806837984098771888655092507487740642238378898759129646193994453874777251444843579596816317609761254453731409856279105610709563502902939637192760073164784477057335280542844068289176213547354892146212397039467717283897838899930093504767942069391991842218565060963120705836994192054800523798549924967152410035180433928244367753118433516374561781524687969556334505446457080757790471863878400850662176321442157261155279520785669447260004740782473957402251041011391469887142031873107853023645920092754473791749134720133452589865146532598095209223668338250447876925556387305303006596438654071457382136421259571825344149555154113159445190368011959266219993563334178462169426330599071034590814955366636608846301918562954735402789586082658557839839823037592964514777578916866622052460727055176710316371444185499343152372323533081658541163809556004202613842258384330022879660716169967333778460026323541389904592854337813891694284191708267809365735048141319708376968467472050250219565527478446066522313231469341937006376293802014349485603908487202233255000798590722259640977179254879515887679576552598637253799485643605186004817955261708848525460367708099813563086940719617669267122653953418602835425318366487300704260548973364958549085409272490215545091855181273899449069863973440414597259703583961627057013875033833430183456124073337574578713441896356706017626243948931432388473494499365139793621917645161091859653573584270274580788185712356604180554909184518066175291904102232026116484569389056893736585751701494665658634640052082436317120311286858599063939150773789172211137502075176917082207895081951182971397427726197064138178400938037295888609355019434828747262771780590004184573156879811908662475017005600276104069098930120854591081311004049443138162591278222211724965922929396818539420180379462427941263265082162992706767318619733129427666829981700570831292745596331868764211194862340970100231484973840730769438340930757298852841778849758962301896771225274802887671367645294237803708288827359169025822181773223154434916704772190654968516314756255320465023746236658175988833425835885377580384291428324296804482425711457243579742469503390447239175808392531430592317957548789852605190932094130166266800330250927936436828629141208646088396155062740547056624089155301613286943343650055315020562663056954538769281161180635251497724934093029403976109780828099580519944385177761165966267274326540397744628791162033111728402880041659821530582983779973489893429646277405203002916495851717687601401285073239586717173868155981338101499060888188385315561483288075789405098927219114119619926794224235131767807902937807569609481008736978985795333749842908376774749966158246682795861601445093157749633329424120898295051888954263554026753213186690128489364321535859646081796261951629686183719901959542313543729734255367060826594003254594251122475911681739064653520286631084290122914311243127689865130558939672446900920946380950092908629037981901678371712740587005976029643071405898813056221449915959987070781722061623136784605332384105085157692295282178188159442056605063617609609277378640898390089830689655537784297217209543669376385328659823774768795469704770439052475072758824510990178618747549914137974757285065169647153083105595913831200270175390406324880377696533522086125691710915948862872300914709918294938511260803698161872753891080796060204771416201312783309624573748532587833374665915678445504168124548055112859039703964197625218634141783714833607348289139947756435357049901588047428548182698419879211660543626178979711543527828549742990666106032724215240222937262001115897348529357169001918122458813825743312907168181778727391172233792136921030271528593488738061948857003773849245316173677041638429302411804645112698126906954777084022977535749951329552553068712032360554946927077441244638749517535329410015866525474348754416459471706368153330717521472970989822876843899808419533548312789225723189527866111074836642194390098546477017908490165503824151225383405394245252918336489684817960142471403904249360234027283853428981174149495982140324599144753208747108520080977010115168263873310593740584770274366379072955706224715671162934733029225052585580367970975856032839523277852624374686095320325759177648607560056639738689516361734483707525176253629892035363912976818241570257617765667848959175943569032396546057245024864322627133954835992143874019437957376863415555541847419119277057581383347542704302391582315526362742157457618851124683747701817232951178277660795782435893489621130444469825261822996023303487259165602449593392341026989519428634224608969133573785899187279837350883269478080036205547200726940539954559992713595325308443101184732152535914860239832434743654803633540257659193076519195167903905255057066505485372461332856746331272147358545044004888010850196684082713485607583038328260568030231792162150267123812709795222315644559381122963286787991160066023331539175587699537438892792622281292855285176345720791912946933465671867776917927727168026691171388606629419303315908426499967060923668629965428646766404536608180308600355222051149964786564282698376022537742956320808734487020407628571852255996115648327657313282451450820450808086815897951733861259280802133030610841135472129866967157209076029507724405033534217151650748739785975775003397823871336150467927507263999868125332055945946932317424930676310373799686588043251275161305186097678012024811216753078101336626800110202074166269989070582237235043622210475585587775428887172415867513265689443954195736481901249152973321437111258236806751000945775033645903426408852247180193417437857074408299223286565207734892682842916038240290323862262262407203358039321488599993954170467017818765039168666822593754310243598056750900872063518374977039265234258859927889160550402175976420121487474906176983875170358318547602602257788814360920380121626467601805463614037767071426593841684329359472410646701646678469708669403796727313780575331912843758040084592126535269569695153670144232285233062269983980819379335624887712666360128504816701573369233350676260676373512019456326181024097388325420769571978540356923573299454589968626793115807874670160814870931533436030198243597754054930058756626504750547957906099570160296623168966515030937030380586652035139690505967248285925155055733181996438103030922818162224223799448027416492391767886679021110344088072349269122924284206701576003756275520550073541747702677188879989867221286319410601179325537847595024600384857487197252658489236780624236505211697048912680218722975919175719032476775693475823753596988150580134117894288619621282844835997430950293638547104503167990796222587427075468086187249377505684666231840678600572943417924643569772831496976457631701728023875377567915116087018096725419506729593514130746121156828262070393221588237570679088579972621208030399326111559262811975257054554812712667336588409012025829147266886076633541023839196236459483546951703182716309610015661584395375966187400683317141677654916983832841336548404019172594918736319427109911442085217826824439793752926406408413011788431414005227102707250280251025965976340163671989890527104387140812532215695257774094552345124173080799416287740422321496322698107892846388321719224497844218234258426046441596091553599099457310158545511347506582592334777437880741171880870393900979537847929007663725945492191441427331586443803912510977478984932024025131292935484045402008325264210678699523736235094505644376347847254427169905337738321632943496197478109192534223531336541039261233422064491935057610655152360003736946489521395744596839926005279924446552139134794915946401934000282908993813777505585981440236618938858543789164572251417663160086484992089904135625321587709909956648582952764810096306166831579724930913838476822846071577160405633907467044489984252310184840835856881710049768636456415094439002828722951699625819375776291277672463256326626299827782722971367597804651071985022294052621269583118774707507410141579773794273094337626520369646833639541855101571261645861890584420097078781720068766390781223324196395508597650772414066913647566169038964276974978692310084072740061031013833363588388032330602001463191833406802092007018440561184603808200145711945846650597139895951834439068574009566215382292592995594785211340835371250755575537002190613637545155019301057365034706536520140295907653924709498066756992387242123077765323932133363246103121653664608890748027760972513248059270679986155569268981251593119810367889401784063638138238853213791559243444900142436466451052216622443163948811950708251702209472546724365068464902019995388981418961676811151426599142019655501758161018234778059715805366161859973112411774455817012429901733627046511152986558275699965947289492737686324006535752398508511387808212487175543800342224630603943818761347933002349639343336482054914324292513140198668912341325554318812354844109452751577468134217145883419668239587068857101058056288543307127596922545379339872119320379738862429367754069275728811871163671781611706539852317311946619202577654695360989570662170661937155852667341220390373689347631225268797058371654337991274350934422220411012895586959764256529754041532042324825314094078336939295984636226642469605107036737038443750140992227332947193493881885990509583855114340747903515439418639039841568272648512796254369307947640927231150593607904834029172103884240162736653085078409859887171720444227341370825093353356124656103211178423842026083331614227123190622236357582521257086987690343565857744937755641919348619850107373666879198838919538836363392526943949756130843887345092815358339669909453192198347601203339287550476592911210567969116607982518963673874677090608826535499430086831818358505536374351371017995627970582122293757072947336167939274175911051009793158915934622077100252970940710511117410227738655634977402284575328492592143189263127558797164148379387453584377037806014570697000591156473663532015384971817503186757520763102809812561294319605001617723489749503640494051731358277681447391647595786037616551113502406636615806891681970183679464661389910266887799026970981959451623013197226960668916977896569346138353965002118463190449913502598829266751562620817495578551459662448240543739832683471582401215163344029520927267936421578040563344582891629160612340749421783150028359402557839820696402126963810320534601071822403860289603144483795294691226973157670957273982003779426948621675906132971072963325381200798021076854954524292795720771338729253597670463693688721854713449270288325614123021803819759473431266794015660662914692038142797666784396355393916656148472699671122903422857230399266764224469824834827714994011074771510055761653985886895642856751563659896869053894305756938457403847558350389197492397330811529207098967245971961908521400313561639159687553055963852896101821404714183777983301510510788638079822322003526729007204455021387546790092057940873097731672331609809927565864856299321226404916884799707573706133846340590333067094755336906202622539452105169824899849527613512639262204864539722074112539648474867134850137456200158422823923265986862737390858371523440932410500128201259700359596112457174988701001664243367816760981672777125667690901816134384796427576545508725940328848605085964085068771348828130106337500384956313891001088653587109369236859133898179098114710060037716116817553694906233799176954350716007782658242904575531641600274179796872384888438135428979704667870610621877381148021123506692823823357154384150525513428694384291350595675329043673448688641756377073480663177476422611503608480432526352026299770458956097654033557975257788249922447053969143170587155050482988673944954257918693541247640831410281603718139076433191608818655954843206487079827767960927241363340784779545490843187208316907036352674737746355121932454678055614499164920201509645078987960050401972210223676567445285463656505907300236017690449045297151354624970118688929758814524331626278423908286231138344166874376821073875551275598023164805934858116041385759095455192884705817260296808768146127471890930900469765196737838119085708001815771825634326794626573034651191826554337133692298590723529257173107467706158593821455074854073542377670219543791240976910526545982165407877399566844036840695444428982239780781551873843779808034776919450987845454549844004477114812008113308986517093698362663872225171732212104419138876638534711719018788707315550640366312348093270934692507004253480748142036590353697270392824498555873163055960503297906878844168547734919488362702355142998946288181105679042093127978466359842631984693609916124400942441005347415934977899913621583226873032639103850950840432459844190634702651247012675682512962915653890122047570074284001412023897475391975793737178064687298359829219672386395434230089481423621750733328677678045949195990906144979274709525347334644565041734092271483059383104564576365607135393646010988284402217786082055532267575009613042997383588955802625664065802610265201173938731440576076487119421123708873878467574916661435310500977442936673070393282735107473834443041537823210481936640559911330884071296746093044262013185852046538770775287929381350060966724991051330047557051956102073133499918557956332005207533503671227443796753234613800056285342144074901423212454968423838336705242638868149363520291641401570657253887114405265953391802349097736085031955857554997682272083314767517490226075515155540295193359653321745337701325344398407212638146391617137556931438022662605026741839962265869851940172052214652663744463643805550585858604490276121259967053358463744645836988267714040128883969044769905982261581808282558718837049964475206453553970047431856789319244547002593323319907455847671601659304445164642588609307407804692550484450791581825770601521065777585960772070797893187141852743134929168255943438814227834266396752725767970792441990768087532914731292774346564018302815394225905292642460955263121541456083032727056205686849349364787392030782789365104984755967806122461000436392430390396771098087710101960891675734503052928847734439008995773851910412715630854196853921264136594860001514683462108781061250914355220259506700655459647970509843353842505889085148249268047366068876769273399800277502595090133889712309953302362532827896262938371958564831041874748455166784995990400868495984216360911354393334529385153487985459284737452982487343415489138000038388505989331416950741693185642740912617060326051675753431118568044701573845307132946530893614499136773839772836512489262775987411871825174732644263397265329175663340169945234984533354972020040399573119550536304831576848729848196294066624110036092297508887966695676055465727585471655590789573826789060347586082138473547358374884136330402412327935241003290384384984328220908888833333470705939891804211347795920121968734977479489292010631464772481480130176237092228739469869994407609083172101614824161299075219384651392943247486810157808432494594063409806488427599320493197891925661146813366988369640328453412911319040909223087096744852265458549619473509079132425028996703110362497581990121014767652038338820634833554534007785368661588960487196481063926691609867398662126318270589888519742365700194281109715420251438022732189727428404723313390645559027168649698325194974400945047746515685612863024592193220357796837151148659250970908425286107915716604912408332403323654924801873354911295892604885986998932161974162032920415828597570927848118869137407058089955196096333410361067423610699408125207730737189555182326226926615719569925619520139797524648212257960368986094304871207837009615111893372978636043409392481127460569905407197411674603811069449675855065002134905054257738960875680334878083881100337790061241386323498598404999483357332016311962253531391916433517450149641324872420329643335375673683211589721585254531691832606678992589215247854231912393808365698733543894588903592454130802741834714768815151792245279816350646614948413210325891530385326473301111268167558745777491849955392996073307971699351142313670708856673509334671806780693436887152239267075843265046666021729074446090519052326944773615335056981921050532956438518691600863379370205552564321170028774408841875412210078335157809966243646251593523493012998436666133083788465882127833983015446425986852313539738654611622835727089761594077688912769047419631886940121975019733018266717621210557931060210200254579353099637530656611732882994466749059057868577556828670072798329993091077586614718155015219097302012837675950771115421230103508875432406372595107369740740997354706716982921302700752862030128028657090186032310948946742938634375058132219156400838684456433202049390906905810923252514333145657930660449373980527876846414818861593547740203995517607387057882184848287086577133952282087820424038962705760033630592344933880745027003646051847554121993315960638959734379061556961578745396211700336015370598009005426061868833739435494642643290854421820161084757075584563641285074779558078898986592120500583337498216341575374719202271173472926129402946269123512339674663033508074029861927122366606480299397168844553612717934417098706032497677276020889682857397461082517217956566735677602528014682679985311009322789642631800123157595900952543073011792951649814002171037480684630463259743442337919728536134612333003661299424687432972652102559431429732650022980320816916604796663587835184499160920254911830580453108571582759012892508518336881636127650899433114520931916906190060553471428710652439785821120321517474231591684663215151988111125233144533764709439965667204465378694545556658636854553279252905812428802921350427410995123671739022003032680231327255331999293575402811771189654852108915215230433000776837094416629920394611292162618500558558790791099232209057264077212461337183551218893801149453839947332629635196342234948592407828655563783346300540776133523895542249955707492861577836490071338670698790163732920097878246670721173699676443279110158811316555898622847125545007756293380767601049427677793908808094515825422270938200908857535845401324906305066814615715817937921540227063685477176152193291845622600356290207520645841829147238800393117618992290572515444963152369093504518124656009507980807341001809232000313199625767118307006390449682085880170629439985370345592681062340971921427850424474804746768119945437619039925908739764596117016025544258356739293650978196615493134605808989020288934547843186700124876638587330608782499673112171799840703439839511929448028474679919004053676505548043583984631566613283402778810147249324345634946542291950271106852708491455647364497892430615151992962323364736039078037962016148295546743282425270061067051926426491045602927958762448677372166280258852357562386316054318594092775316732121494446715661031357482974811918800982996137302576947719872233998398547453047804783192638304825392056361328075104156014307216636864855290022313062752664358954204238126836959121000652311235368647549677703951794620060395772416370617025397462613554448169455979034959657724049424716814248441455742832421024568365405676567980207035183228604678871856157968430675361724187742854646129564279938205197757314373371557443178444186081550399911483995431822357259859530892822470783456436737667751294668595051127334248969647907743230880813858024785936784092666896605775698021222630078022622397776386591353740959944064520753251501108558013902625679734100985887802415749305036647878977923481675896643185572766799433529283389867325945230651047402527466078543827564069600131044415984466723938680878684264434308461166796343622124190377045124052125593230042371172683516883006899645187545523857859732154751849889593679708980209089485949882719240462565548505864701915798366658382248420784596691969955048347463670207692170483941311451468427977887312158633289547208298100306017036167658811261584022941328114605674169192169728536829824766656611199043793589674479245404266472201596715680387458741722080256043259189264971762895223821183370717653668895187393897714204366128959640781819864918356635192542828012658231785685434661594801037649565009615703516639099056844337070916016766628251173009233856860333671552035212513756334045481494293517318039166215299761079965091037290171196098063944728753557546068004095978157209747100639712940096735867261887926983033955937519264980507728851521627800643827051892019089227427082059343992616380729724576260720973130098562802215902593575752161948998749674792978203034084868697052710404585336373903500549708126143515138884917931328986593040508752491633268006962258180777405411630105397556814997190732486872760877845328434871795212316733369915405499006699937496633505847018834750313566973532266004773666294813409884695828371310797735651209876915444500374230565184069337126551437589798481166467536241275915538101199157574012841752955249172261891927779556447559909581891698019512847034620000591030094612859594279164083605551758866654412719895007377466927174560611747661010110790950754271997969763759626946331955836739877399169933497133758398851602179888916959415404407082052822242596799515874362576638284017946186886663184550788031372198220218013879433876180348234749808897333021782674267244066786020552212801028995078363067783751301558177229401562867573092530297692021293011989567221202797210391472190137667163658221903773565565141061908662015807824889874906722742304881408816535856447991465575207068807525891137420714713513083979405644869650784383682913302498999896570872588800011858755547498326257105336928318843607438816039193421730471911308958244541136034796446286324254628544599609208604890226610580675033835563198884662172287525080967502242161761483760151137002396145542058278019912771435400054208406303842714876184214875914787088359395366440505861320832666832055892476451230142631368402942302392048911645623425290957022435666767364063194956025013347307948275337239294932804151313056985963901845722854192901156531408947244052927915854681049064965955814000947779826478431626822741585008212516933891237849110345870749281765726507075322649712800316606575240697772164387089589843545393208766780413650431803190786563969733395521731509696848236766648423883355529542595761495291909562830511359315210075307866435288990097898212550392057191399849313104623191187067372379150752570220919048763866806916182618142890471050202470829625250948058175455230979934440203956586077435544851361774666064882022969024454022995686387876228382403951740713161916399963130026139797454750853717458495009264298255224969551554616517042832754087379056504200719969503276118968706989673671372141756598374438240468425953852839192877790807867024073262397954498247203665462027355696339096331464813949227532119487342276350084557414626737060144793984951162408918916096187576360466146337514705186482379366901895528166098069631204577088924705784745496327799060975130008887991084058785775801980810238570249293472279249808872629122997633323118351610306471514383708201534552314807524782595138396929874571848337452415630250961244597856411065024509558074254827066830152179239190829727791318952795980734092130027984711134467223767867595667699627373397375886670656283711250071915607451223147067328352780422741808133345168606131047489722113564609041829583618454565223378998470727117976777612898928814127660654775868947678472926234355959531431519434507193423851039277767209607350731809574133396899700104493992278748335539233011686101246183087670830014740885862311384241395195922894957035309974709434942196974055104525044298812281941291927981103626477448296217851521726997325520470325715858751272032343526943488010219609031424831405460653416973349294738333574220591663884435003726850474200242057665214283419755414435924598603848390495866217648574010970554275967124693513518074587403724911007738053002536820370351928441552276268024703382190746334011504676055561138730303732109343185245520185188950274152769624132527940793221702495073251016676280474529587769699143099341056742276763534666318727186069091752341814432790735875456055155984929106225054234023579710827799700641884754971286113692230789661683634151076694476949404959007988226043624038687480560754426124987555536738621618212237531592557066509745262324811443423630393163317653315147332003528042477661528575398743482836314236589400970879918959702791712046344276639222337560129412736992257343091393844262540891494619779839512690880927534690550165657308527510383437645523775605901344536444151090376956468630380160775501698873473925081273119515197690291011689002935603488729127248567556727349394979920039913368365937236075710895110606942868870499146019941963663455019090742971576170076116496260250801617996600555781159448630781018295868197313745941487855643198703209507141319392007499633079604191676043157188480377671851801957990116986942383362676976726999598372447495274371144074687392138802996456841506381548741527428753567888852875370135047501583378150261088923218061372823948433487493558672505937372854784546656124343279393756607352343772806010140730309278141455442654859105872603727238352268438530842423421301106279676799731123799243038941227627967037218366824917812381931473078031072204032546228818456933683615595620386867689880945081241656885975304633338373735875629757159411387690953215463305115048727209370791285700968772684945160156164257269629757564664600751348171486548642618171833420554376700515689120303586025761587195283746975318379804180285996486654991171466188482308010817946063441214163766457824170231191435635368266311467010820567038931347225505833335725447531391427806747717049094885819110387962423381201081581724935432524300848052010779324441509757935052792366333453045599052088758478497554178697146251474695930327593884507016639472849658051853536559651440201046477921132490091041316791982905711515432903538378232421304335464960336946083046544709162189841874538849396848500044847233351373473157393554217353270875804520384567667634912621527283060463681474668722369950484093278115920545214337161057522055544039206867004891442065562764905066168974390667264449544265236829200157405046843407030116472866670992591149784974452994866612154518046889337951685601680469582830403434005391144828111437136671787106957486360188129762878062073316764853535449631438170815490726049551253505766060565900583211851390156790028170183978108788181781051500830492678915512628244099198951407439216704187463271861988068056092014934373164936012617980378750686913878199589388002911640124209764662224639115498450224765858676114268078093407480332351094726830053702377237554557020575397070920893411331763742012432008746163264740050501033491512302888804642365583885547949419538499377574517163499299969613098017970118562529326651551419979004686368053363843953143213499704001860473337652295470360246003079610784995935901699352796352059390056951655006522076508586124713714669091849210543653314267432736349757231990491957462979135027321723742723560227935665786242171707561025581845821446977146206377978263516634513051082466153139588813012330781575691227536201944082742934518188847915185776266428266045316132820242127109515347771398070856708111183723998629666111626215752817310705973877942496516558026771202458614857662776255331225378676895966410707688912010246274298708969440253487566907606089984543305936261438724910987612910057250758630674952175565589741261880561874006433741827689398914373994476718149228936007211634159471539965326130456974496431702527608741730492661873951217636187954056930314347107358628852146915532563013929846618268337676312146398705489275338380130208327361509626253591006709928420980961302475357975146227294760861534420225702869864338572282090182641658884859291605995377880430496807484087527603596019350966728348200420705656728960448130154719514648530792605703745789022305192229172079617604263642245071738147139393696560120023134996939851215893573964909020571351170659815523456533928881580546273741740588870679272620412727032494583343089079868572430167742686715340919691556935287031595882934466560206958341301980610425567424376957351544937667306264587564368048759520355013877663586860099094615664567090426640083719870531351963188178197874069157942339136375442278464943557627127797337893087075677036895256421586615556256061546104906362890168017323182751762622216309593803230293567496072950475401034692130438180743801194129569027671885426936092144669391336210870257774735020407211792031061215207665530457362904223380426471225358871481031116316725676722543511488391708532121052414001491437953065401055773764469653779066861494643528920004807762786732835841046413790992396908931978215644131846175773807772371814861754443505861166795174544075573064618460205704391610581943965412142849238590341546729875623582417497838858534960474352412869408187501536022903581554177873784008035617377799206568954574431822169474843478347026814061912828640109668811482789479881685424318510928340681793451948635281448284763495563412246757550538925007822047932884043064750891575786993690149812825467517878713981767356601305096101861587797044419036338429313446907524407572434783256061687836021744144036094662578331371468759039541136205396631722298043313263528440661749616246526372085480504628387289124049707412577782044967805460033062712718668388819226359564743831278827763495464997930369512741542882969430220721954547719208950210730896460229658833003120399314000350854846755583006375895906180729125233945568823730637962460483610413861127462969443482648556575794812403463514885710321867789104967125209990189428344517854163443734149528636243533678815713966190451676044199897669741842363498421053702418495103434479672716026512780241869601311547331208098456722107022381371903984692523553709320885521055008010410244527653673137724852433336906254381122367510876965498475007097622948179594210932880906878372546142915781720783588925558146915090750270361351242360844240551591290631355399387318609047094109582721972818980739437033563137806440133663714027253385119745864457852003587167319674904320906394856344138005249511270280419306698484420396765180850108512814485256066653424844160138568922763572328686166526975217644089434206799471319110861011657366396106176741560376373114507280769086538371667553485446480607530334757979132242041772067523709183429462723755597595228600930960993561642808817603810920608750071659563931833779332070224604288480263936329526777298855995849136014720373563540399918338376980431078470953958761031339556597372310269560965226426380209070477845889718896575987849310148642143618727521173844582861991762440846066724690578914231902997220861639698574557917170271210928798873196520894410617343828026980903444502333293154142284990280101555112137204615376753742237020110745830697934122053179041072272612372616957873207154048110219038789003307352077109796007251356927313313535972981828964370061485746392866240908213141031140589409431941649192022248921929908337465120256104291356892801397405316033884875961411099145959227531607165511328156935725347020666547711572720861649140894714128257075231012435302892536952857090117715540137421766716697690196404061524433074448299625031986528031753574777665749753370428136971824178035641247160706310859840393835730645174503584022299084783217611919273093247741962290144111159573743640684634985787946664166620137670560349437888870596755104310116485984972259158375995326614175554515121585051469810185767096722732004726417233870567967246147854090334616082786846676049735159747160877741559572186330978708514645701949338215784928569169437150491321235663993923437050276234154479071258075656952822132045477090127178178585832243506816134112899339875925169423280719861300260817750140465226108043217935784231773954681013156750474796769886628952659991681220476234492616821732376160974236657176403112399699791742218113246828441866269784463904901337495378362378105963245089365014885259027219136456511635132634372726099564896745593914054117940162959917478396959573847737064304059474277203152151719690853414424421886713091511683989545506467620864430747299153173065779893542253539740649566134408031472451562542922535366635874144971799952785769984034840546284189517075013279238594175384792734287182470579225335766096229970525479442205415682626794229072223403880620240737980441844846726049770019425599670529286144557283472571672855648454781797326498072296620813942167785727596467075071518485100379155304696604622551715613388596591765724798420065365391408292692769268552771731681573211143664784274620004127540121973122758262123332943260139710090319923853107879847664559203157282540971991077013467582168129518001708586931770188747579922841784742032089782674247142959402370163972169179662647779024722675942463463404746056692669436294937532226370998853377043672787769131607108472481335847885793343988819648420755920390513569210748971861113780949408646974187405488884131438183398628622731082855724121223620501680416032092896687704327023019873729512168867740452832271861863793464663693581767645319139757142957549963260764461691072874537411821598315949873573530532304886421195686463870939767833493382180027460935784953112445964084943541676151735953180651970024317696935008165944168339703336717966918065229693023015442572027167400481828317919711906989906828959117629007006753404667143646801744116088711011297929891713683702152410781811238772244587968817732744050231395199038792802410434783139486482212807094537513192930316995576609196729681969352449164162978764169790194051302113582530263588072777663960682093258860340428975708351983196211799021655494807034515231836800402232277017777406706248384335483831877297492175035883120731469501983624368421275613531128650554890928016958948879401774296694390058878792252149030447468844575418218429927345350718876036733431577921461776519032451034726259767207962477323583404671208971039580256851382940768121695717899887240233795767623506129255342938597775371053548692196449945828334695475819373403865115747596963554733933702979308025176673698668265105501245469521380667846104628694978841190398712359310521739478799869305051344088868822680514621453162856694600470714116216774494550955488480640147780474536224162786420576696404539529524446807447632454117789629217977155103039592170828334365304842796829546436383888403282424365560947483479107819323667689795946923204435623043749243258188314848305777530405723031484213488118964772371182577345061606796292340366966192262700648243794141135422382631607315327013496601347197284801461725358060067800780795102238432982405195143716304906948226185976276776971301869710695353539675389407875768546636770258113438147837925037546694111161209657811002039969881741369115129431418206755450224996381092478652298362110538496518519602938640775128576775255606501324051510680714443649257454013632147032172151249381192951116893684518338332313260786762975301510742113138719457001182979398216031364326127140600133656601038057298177087623036600970601983531663034503551419806577331115947428404211213925247416417146892523888931391943456383366199084946542696890227772324663345107193679402992590110508957195311922597085291401278769399868422902858853771437154281412955545270001644916990143957309725136936744565615349961138947580564778644825851493525482423151768889746655617106082892289751900876064927004597512327492326207342330739314437119185744597234837324698863010203643492366001600221589885985789417200050535017247311978610425189171729431289775955541146251814917632416219225166833264029573817179181180274272523395970557974603713675633540996567502065938498495895205507159562255684626628850077115230372272029002692839778409662395752500221312908396656681876314147470767409276790310874242256417364006408848573791394872227805877957998277143456987393332340117481424363662776914087297492715364790424571350850661233246763491817822431908258088531656246885553843191724833600486735293519941095978563764252212122628562380461369601348766896223012935098363537864806616560263727097015250299253697888802754671660908674541966418064131933124947175729496204774573731549560266558121303340675565837608474398516325192046609437423391231509968801799936833628535499129187156882877543895116694909614123826050881805885329737625283148913949721858891455901793734529706286841488281393444156428514105604015629298146148011681544335732767067713733528850632171187665024750474400345645740578788395072444572524327113439186843220425468517399751332001261784339660377098424553696477240949054274412958512420219924271850355265051779018210537219325575841871265887529413671055311963364208688602233968281187810504188251337583109084063632218177475947588645247694049955295209617010585066730772212482649972258773607738834242764108010627342800324006786477988446560291923796387755608743615512839303392413123753670435290138428459036692246070667963530528151161707371127005357554892262895530629280080308055594594553765541037899435203979477177475625399632063737018137969131374103178026369478882154490264698940532024567565562522350064612465746297275095296979647099316588391461172988145016270641006193895276382013441929858588472784399561997092041570795660634104397064660857731945994952471349394602306599115844863759846125929614145997435169678826722885423966907694409550867389574270765417062686959815992832688015640599150928913034510475892318746139519588547197556292353116402671518281862870284577289837353307740723753503753222808727972134072345063535440974085838349513783538298925957304583722799960440743671634783679074605245423333342892977988956849368314079051121718849937342146203536104300455990017724347996106619235844635067347015604612705441940340012328031383824041527283618586558247215908439847088727546239887876985046565113916994355636966524686638979214971643167760284843095153335250421744573321646464463362927072269783455456526120397592995187622683432525031037236579862626565452982210389229968113990816834262707784364415843905491940366069208534977627916609645388822227094086503905161417816313052792321103277761665449933169103849009492964546132617864837192913455028397288419424791622828878037328319001552226146811313115463979184543123519985859216472445834634111756405430844414673869403865729178866143798787033922375943582218808163725059836576862176620719215482971403975657221324697617960590426236390280147996221411637693243407985759494435557244465762054424237937641029271000790710496549267187349924159354621202570493156627427901376888835935700221672522427178710256823276213824261782428943344755227259772466858664033693252452692396663286297802063152835200546481784366815894442108159772538934441594102858168035533040470534940351558466647513232341065372186956818185088932021102342654501228422133025979370163686901594954757596847605898325064080740217239227957720769428894442294975626241129767408704908490066627196819865420262283308368739469759652557435982582409238960023617981397752935588332603815572305538472105616674132411259165256059921659274569141499046171068656913357260636936269088632147004865948329656174218879579361812304520369420541356178665865021677897142237468868666358042243909771967441075551686782503418170666893307026546865544974143435755452658471928038065593728965168980228237639693712056161666235149248210220550737835684090253056598728865467556253911126203914189617335835560320399724419421402439625713475651354020254069781960975471016709569733183066381315384800648928787768068232779889538925608526102768896024838832505177058734823229778876942885440706620284798021309778333937769160105874487749880105436842901498691793994963610606626514502550849079239555066483412663668853406170075476599048128587278242307905235959175791663182196004084867187890454601747668125707608626977487092583235982840596874344890777597057597748268541564163185951755870142217556436577351353157274649297241395159669176694774284738086643308711649651732994077446074723712369396783150584234652332187152586773557945776243266973843718944399322450511306680987761556096932058698494396431835235618011351844374623553302812481898106302667971685456340012247780242359436544533088995799388139431252283049170745442046572911364559086827838095616380929918047099548668564723126310350804596659678971536122337703530103372281016846133119466539990582628841107872221176512439514960817763340150633603374617428660094180282627351814492033372843213654132369709556002646146050112684088011269535423945831711406987242987472758496382056487024493427156154075269359318395994341181383057727882646084150324404795632057633777629094191453889986516742178486078608032143941506673447766357986894756906453582818001055227842609436652034148189057665108376946720372181593071018641713851887852739468584030521494342553313539004681071442172822916381624694204913435408378171544716682556600440755897691155130335431741493721927339840838597264112897542601676486435076373615697869393043197167955338461244208379891879810212385954162810205058435593186437308273670301524994585382323926297340644658830168466797640083288129350480333132336361764600129105608236247037394507277902699147892572472399345814231403245728235862162770017158754829379852525644425335000762972667878271180370378678483695960358545447548114030206972692891823057120315292672920376416229102424663056674382262145795967789771967911588339561106349059231230660889067728871169272201066914883420429811688148266662612574350753231157192112637463510026719488340714750950058883553170274310468204135049543883008053111396795506291725886262449310534569775511015758693175305905388940479842528927759951508380373404230210553297797989018760320522985792983737661866514283263760363824062427416140503808063012389518699445386778015343788889936556816622807380451127048904847163613335194801866157226747149621290168888369376423751200018344747816040194656638681139190897621172625763442706340888845657718987489792602654812388713646359638892107763810984300371785649884610092859004469205925071282775874643430488174527643921760909778329177819969231902657408171107735696137826343783400058703055619552230852434194130041270945542611806924833063809191911276403614847565595180878095796176337788777909733580129605113360159369214458849204424991848712021041587559906513359768022061494768662614235939452935265484588076579578255806033883719820271555881002908822507361298491911315853810328423728663410819540947260242005814286352935267874699522261508401690786610101122377981877411604509767930839069715767475964328728750639939870284913123949393916920846102461491961728232491429383668900641156941530296742967400032712000852201135969069141566334111957193107668795004011047584743209316384888976689995723746261981655195533616625131474078449333963721187312679296787228994781901767993763973881116918071024685293422781683109410400270310736654159729152442580371591645921776182949281052346646154584893483397672823670638144193643910931792519278628609847243693425373132589403893389906923097856816616741289291278288608514250948445682970291098752709195130098680968427153006547547357476560613850630791129293947805802466963995826625679289758558787109616778501031624675319860919356577355495836469416459252571496552245546857648033063519835925481099676993246406268655939305319888913857588369860446311786118970217607466669084601725854103846000795899169085423269990340333545517994398971264050140601625645487849112151635323755640019562924526074734840613244741903343365631943163010046733155248288214874578160663422538552201696174251558048498884142568497734044048163124678406869668834604779190268919846139985789177615681082835057964869615972184133787393946740026954947108572946040862453509547750323012552403658252191612445162054004860319280015058250203062917619881765910039319421705159773111572944945703645482371822352172480247287281271227145151966488551277827578875020829058209016853654057865968745331055445220005700426559134387374999810202390220414626964580860310287903036743435130867896539993578743959404072228045371671184711607049238323464212634123672049713079480320895293830991728624646942570403982937823026460349457839944340940176792683054844707713192125916624215999146307796935436079154846312734552413023016980404536644030612768087188515497320488772560299289251344636113085154163898653081396294245641950656999761024799441092788942193408352380560523370417442248973197623997404094393173740706576921297524858545086153627207343303526134873826106665610123749387662265688779806009485856431103933581244153049479432486902602290377505210711933236056733224199480938176561313280051662121193237743397592124033598173445240868876172434197918001817184029232896614516025454400335262734215641619886515156696117716399698163907209359323018164843598114403696660124369117854100922152932754890465902474760709142323317400384147674707486799090955255089539667413579158361919502482814832863008519944030695644963464459031054261809126339127872494796726800935474654741885763507856541480936693917263226287312012294968868702255226827337663849437619934256291033144535885638504497189002852155871802302928346005564964167555794603866981623898069364327692669214185539881666703118482251303008579073232409985941352301955487235695954436928883910737116867548945826412784480381519251064560085115924553769166513153750515241600529064069620722519012012483419249885826935191848193301391489016385651484923762999815630875458162303214315514100457656247991665055773652770422126305134381407389077229210788175800545612612286264250844244830354473882379472955124363351086402001539527672553551755305076688411887023519721334214797650313770994069073800326694904891773099707899567352134541216983870172093752023246063645454898901643068690638296276186895863871747401970887531183355657743035986603734306598959378012382346773934654651437765073981070558133115458690235152530813905706144991937901198099342684805705393929043762021405014917337398063924656569572081751435830649920705374411724148538786468996257433993487085751863930836647291232754807086033050698832116570703810297634448003537154122860684608495607066892751272292978031055239485477579474112954779213750098903119951224804964032978667393890191151438017957497209125023122521805875967606954756756327951083580510049461838242739088285189618917792930478610433200983884618951889816254926882084116629354959778907014318726405388506428618766023069378445791559237497830700647339956088068984087071292359341691934150758832628428638939588564351584561037486285435528881355551379406975823443767002336619528295356661482663195027810444214453082581058786602024845356560529545698473976176827150149137756991355897262299474048659347358171303424043894415018160151588355230224429435491087151363192425753529654337253982918039046957636638482715007207560698094926956888767791329017488630172783281592405908955792337817978803016832413398950907485534409598023384515759656529759281326565066779711643053227999541603009072398393040737222207783282306278008953991022031542110754869282859458923366481565799050154976988143985352087422796367816118888511466148060443760234469502259668773751915811516216677586390246299405553930022670702699134580245492343181184866391720137687752914329589788233901674560031547661035153596734545468475732841017605475944903333914491414247296363644930130642448237825455919286766173002460155839238173268608421465489726669247300975098596937435460483538268413829090099681156392165450492965226076819644431619436784309659967477987457573190052297180327650174581999499108301604930734299504719207293985587453019646387545555878880581848302496356539139058892951607008308840181848877554962299680114542410213601642246403289018114139566944107081250765389687364448148414103393064683156345714556980494933722068239223907533044219205710756784937362749617630747180302413415023369151305343334086619472361337948119985134389685638766151384269453181568982642268102053790223586162054330387950229894235597860731564329454112368514467005275816418508321585023064314280453019238327410943254455575578066763293993312196637175335804042566622275930169401439735657791907805406269390386690647573657971209171388072949146503302336258544741375866058261530519843194694579732131241242832330469142438514585755035529377867680937647818843030184531580653695752391548257650433697836147042270873482574396595907546863747809326899184428544273364776438236856627930646942714110213270852241297908317103917781779820359900560963829120736854481981552164005242124036826752013465358783259161442709209460274755752225962717876428548212310145295765399745787086866657227324767422268615919974224771233217975714645818056100385456998103287348051886156760164504553412792407482172023463119353927559940742029379202085008140532725495089787426745071534069161399820149217180411814821336538537924500183752646044024907456867355284557306359602487338701671670572035286997365320245734884331788576567062100839597161108947680921995133169449574731979061586745938677635120753028211688115034833146033945286123677767395413082799662379849794176140367028165553955205988835229028828725713823838124472648066010177726727036541405343911867841888921123325088801258897925057839649174556915041609308713907313867975095724311783941831173615838583947830255149111985472579222390712193636590406759194921984812043391009027478153013504199028072262703560700050403070579823310598450238037502556086449410007541568473113136233633249239474199414853565653376407210180981627399146415320305396906616829481277949687410197603467570045514279978473625008166063945536958123571535619894835952830918480324543053782877450954870881454421844219250025153762349043335288272596832995300519465047859569556342092590636920634696397183276996237238705826326474354779049438101000402188616394424855109613857605511258807373162269709038953748512663903720982824376502770773663396434511600472779132315324869086806086884712033270069610988301086606723662845599353123886949540020885501163066026334699181122125684391251451799875575313352734943410727442919799983066106035839927649449843927490341303288156774283597174963635885515543572097280468558960244978542389252483749803037757736774669691191452662619861350335765543450453900407782763535000854578265861981104733569355127531116853399977489986550309451515907169725685365193508097384830224836520499932144779181955196031072139044608122159690010081744182850951690924442516639978383096313806446724333975200921045200191334097836867410521192084030682541454775501943621098735248537508781372624431138114103390703439041095061889668305416356551297864927121036833758394727580581415417220969870792374970262458403287186426538835478888853367683097069564709267418424937498429636066156845472785659620729415648225874541399002132612181145696770686717599257504971205265278935966533292503339613716738827264814535442090210353923417145143302531872999384870183228778307791303940196793890179603758062741326222456443853521491111002365140198829052384412737545015945625026106912024699707798103915578524281361880865862769338581154343285708403406188439282436708107855879896991861450522319796911902639673728871855430240706055756957960848911739759331335103502901602724269150766187689741380719797976903184452768523710828425623481302024285673003209751210099239352518513015276014273357410645801132863953609662659250438813333087139228904823727830299347266837776520514060370580073454263470990243089881885652167168828543493036152549074703903701143738751440628288570529538932406229856332764064828820605501060494999860192865085453581319224937881684753512435218022437095688758011153839191350489927082293581572107761303488649737241780699998696459504503906302823299243552102674345097570886745018291030502495336332314584430723140538831688728050367470781365463154763699433315746018427910542905201743654184566697151786724161803562005267383137124330877862824339566990711423625112187016165088498476860681406355769109143586651038178227931858923451988416909174829556240527842831692767132392815625075435960348292197407619468355840553802650538067976583318568020586259215051201903220924805740502948862690122399189811819318253214151149143271788217439148429484250709745661064072348911866715658199311403357106972724223419021548364277490864900948509010035770432673128200342470915969782272251972582586846230670654007025908987007703957112096420412945604498213846838667065876564097288788801398861539601298687267101308019404990344027759271044234657167244296088591691562086899863875973737676584248234763219154957926220949744349205524104274801752883338153052006155008845390270569795681630592265465168959686999556023088871547571194096077767773791999669035599547553846655387735390566559309092404984638396338205188259095746345568275978455291619464314533655637839929511167964626388455444798416763159947474767625329115445213337159506454345668761054032681731004696610339261995158080019043441792139513104035622554524961994043901510409069207565999119349161926280300149911625355116003547035262791418470086263029527480469287683978445435020571758736203712406736992602797434836210691303323100944077219377515849249629894085029061379615030864233352098959207748902485164526570305565805241166121541476971116589811597747049448906510263790847155391769746319370892714645713487693610769075817464957081903902999762470148693878535317898119313205263336747680797382050413864857619157630024760677450404813630221521416131837922213244182643142344485942470223449647597899376644314241923763975780001638015523016771986644218805498031670453399297898984059161101321085042919748568698891699021421976294625742116469763176894209905959279576537060286372202111608490555026908988365986507949028502190870580104899949546562881668930403361221491959453143678357693459452058806323507029709098093969854681971668611294502399926541722324393135740774319981688994899708335161981736716821659519928796985381191865833209956096898467188008798390420609502345291321502633818571945857882447802969749212394990695954156756261984233708559340329371115637433891256356713283000089326893438992146328751130340594105492158191204659037159841697497089302199936473884391760367172720961952777648348332505258273001184093369182726436436736847541839654844744725327612383686260951686597918695520951971594578467313383569747314978582983795449620053982941274268722509499911815182531195008681621640384790378195039139226427192144979298698341961485858641220373286006084232411847152440451243503745494907697651208382565248212292173753180108347192519091737852835586838648064773122056057655130112870041793270441457390065495178817437065986795954984189123112333170460348530786814708023941821000923058706797044259615144279147251214412909451823364112584699003166173431392181248998997725983336603042962360694743316732241492048718708769313731198289858044315623466256901716397207516640953785323233516364988030463075750802321819907495502656177003363015363310219019601477926271766422109264786376642495901346451296081698918124077721338501408781285065266408476971163469184022655483841706793879753776648190941458423524588884216824832164075223729845301458773212239209156160904408805648437571479167465778685891292534160095666438523846529671934781847812355231474463290834857056225213913898961567434041343017020861322061099393094366857740529790988079685179993078746883963281778598452377655660738424937448102393522618989381131606888197696658345868685576352891934781793534530054670070637007576823734978567148014805764465165304975716970881812520111478599247212778247406661468461814393939129816627733972140940134871490726784367808454327526942668428716832900063858469172673110802835080380913055444905031873210498509864514411844200630609261792371839288182710835661638473477993325016996700932904066868809403610867464031024887269644542714061179962647871753650810422703225723665471455144275846302100753354227672881248724072985585621459028503393009450669957650838384085443059596948162993262513790001905879083873668351399325101515887497246381773703137133211933447315116358647573815982899446305261080356809895012161690801174649028394142429897024887223631507160387042482127569644419674199066874952372885713166531795565278402051657575033556637109772608952091290899226766197491533271461966830543833351033991210803352880253356601319124530175964890808983191397717485767597825838766795514326877316319942517162170236073945326022037105179923582209953272787410097437470227703203720709386863826626957675375551821737999918708943787425044553324429572672918610689791924181361699814121569118114273993855570954420837492046514459256864094849151329355477148586374812294654239505113257490263479747334652776088346663408542183174107803092542439599087440017293284915008123884075445647268131721680388940233808453884886176549845411531627648207329662085656705286006238096781397940036061521597260924126881100623322402376145406759797760829578273985023895547337154425036318081696415222914335433006019095943861984717064062697328102992477241179980205049074049964297110157655206228309091057810058228340167304910638519676161473154748598047462677679064474462033492605842392187456801968862801962604172065441793969465641384584462344864330728627328037899338169506033832980963525535177627323285563793859054239225646916244051732582622246958494603657404553240253388313516565671724745470621534020184925709251897984932580893586316976353968511901401264709634133663476118823722296321314234072170407606580307622167751386897369763281915295466764326179817127649078286993632275308802564133487017828052914972088534672255528966589103634186607843952559864676983556916948464498556905915573800504146330462191907660015460002381658808676742725611797387038565031750213519228556944593823766742007597164739504699494348932405285696182420477611376293722811880642463566533952652900601424046500899223748448107664806823286926019388694744533445419077179755374263409184730783545506392377004823626324130712636046981460208601314092191028081487476375173528974669698197817301092133298681655038064022894485233908855237098240618403297824377888915798504007490211955598236087264001170927351585786508925735925040150936587145173053799423323733463272657777741766674562197714921594344832097238258192477849263881714672568449437663986173074666114908156401287576734849646609217080875072348499014481092107722968278497883572885482542060841058796360950062370112179356093927543885114991090205736159742304421853816052149491090474464065933669473683332054258117112113087285061011119261572464031060898201178363958173198723798107254502662753443602745850380391850839797878831762351470916949621765759448622847759862871604052101578151051591562584846673472823101961184261976996425161087173988632226427234439150734495106896243034739272465058502707578203146686632115320539043523024547901351407522366941213504927883503609613917416333098457272353190709645274050997349481227162808810321342579524854312216383448861476102613100170889796920228777692134808278437394763222038474209759027295777164672505902710831937750510892106031570553653479150925981666047131342587842447359727844321712509024482829729188927446205489287665352549537457118489765034353599692395843847191275454765400911521741490262509256442867833104092726468443714309496315669568842966166961944158048853528770201336243009721929882747571493849146015972249662555646601792342265834272017986833908880310569571755255792810179440340337322051079395444057282106713258549812950659594351394472910613615620668492188985471369477700984580122646787302340953471411917975633599726567488631084955073601338973970304161672294977381456879739974784711530463390457392176953761258363129749407359157062023216572464091783123392420113552674239196458806854258236392943020092358052820142936569337976719710630387193634037151748434662233014868246158075016998901859332090260292999546789598955197264516077790000923222106326171454890408540735691372765349009390513113115604984357389932241531616252654081218810670997425303844226651037718159317750664179171309929126749344854604225975677904072744792277731781139457139310159899936107072520726303958729563214450354943641975631518448713829527275715727865753351915172555600556195432222294434092855493560852267491632068458058124153973057476195287025077088295318112762771985548254181750083023305078688840768467063648089187325295507275522164532766813564811120014817582494651192796296071439263899032855319129204332162697127470778345860689908882903590621805083538434552638978677121369514257517542552304038299104575883463267905307896402509059011243422960699285590688344156889388154325649203370229495181114360312172703453263394083297391707562131426917270686561727478172095462716549899148127021314378959180027151565510119386205233500076832852671232323050757586493229228088492665973583872536384824840440452816957896245043780920183642916363026923711103494749304847410351723355140116980353971924305374107346837232167348207939380110592091238638592734778008357723845421515292574679316900479537634774394535388581955908973530174331645177686290885977351874908374915438776377660522665240320541161699582640750626125455358422549626772467493665910710298358628268380523554491184863259129155376592255966814744824138238424260904788451899759000425232510562383360399853396374765579032662262948316072279526162332997362211475614688459408914027294006206898266919834235380158711868434612043139287847830337018094278498721967681011915703171502567491863395569890691561319172968021946036433058838029365285125154164128852073140606808565691723853701501585540484441566057663012370569896034811243329207013974294483812357902895177240011147116313347363227149724542627421505893012404732013886672746554086150412731009394067540406975037963315747706781924209037271892316765913255065675265298479803964660905300046794675823098403031521884194837711561561521549344866856197829221046763931360088381083754270331360206393764840268512515112471127152586821789025990842233726044255263396474473551406310347492537926518979203351942031937697843880029040297913316577927084646749472824439409063933840453052585215583574064470619992103695448128834742624602714095179280540865542441842742419960179673086662573666060262751931056552505767510225217879706588057464724958696316058694350002754459928024512556111342955648917382482294672801356875124425291994039605465357071389820626866556851611184043547409460077367460105480641561235840057809645182970257934273147134689219583516375331274211571369685573716927599700977920889564835450996798037696985765414144132464184698032974485421108637394715865906457488229548979317805922515357419002077731984866903925634380502678400709802046579115293685802110032052885856888601076299818314423029768890892192409035952697220563751040108638025180029946402760654115828618907734228341365889456252138678630688972500789695815030041510365571661349562134409626183520122168886964204392430239905566612089156157316261016385444618606026823718034594963392621262323888405021498638651709154479537932853844313717138963976377408444385299480802921121044982585069952736255825384507369397335527546751696209133164075632983713008204188370734894116601094432955827771126034006790040619023738681890142172930402994295768764170387236075811266459693008398751791960751766538488096927757369571207751194781606209942519397283732361501606930506896242856593501207032815289316622451533115607867358760643948478845625337965241270411058658467321635495906964827224556836377926457150881367887960980855400283534719617054911952422258761413552569878660160114792348816589457274157513386724107819898394343744156458918991652659034786270210468161017585270792078170581247009985951753584102191576345945203261057322336913367943876068943972810724079867986196479946268861086258346143184711113822053407797866832870452978399576268850938397573644716958276327924088403719892114323827373746136862052659331521034215640636165219197199104670721138411439959997658010182145260298122473497024732362508369447061103355331099169667876736565141719509656073406286981853374650051166594016985204471150556890786443169325270565648002822427988518874977457384882784333227290591488519258828911687431331695593419086240125888222410783029832771935827300117248232238975512624774539882181925956013497362070323139368490083231226241600433196812481990642707598516527846687886955903403121150897365745512952509395310746539097212750604535798435020271343122702485970054271638012606130075664902417903822238121873996028726705953367495080610647709157218230945754522662123574986203467104404738226330363125889025276247329217821840638961573181239033072761153198692109360877567201961798777495846876755113499059186582810509374240356959120293179846287327194753701035349032067697145531486853979730570876371084322890483606064108056803203644223412635282231305033573671697958493429587733743694375693591871910217618777799019487343417221946762046839833841778124220132230905814160560894649767185718492029957885002925911894405561002488098221221613005906220028687580753568062068353277240498831866274419049047702247817956287796252525907894935002190628810157651712078641839594695585936535229932097536979726009132641738966999085817394905541192363705215593341057989271185248008387286121293682325518688694153132550659204337556007072798482159213084481567691840061148533042984203397434650462884901062207937690308138816997627181271626916900925797344372424639521829010373270718884492833037379206704467387790303684051880217638669035241858114033172610948743807045720930809392478649787693733744343571928401519269032558297576536070746175323841896938770379701630891741257200826809831135303038029358206194448999458359709903121595333285420802108088413339374491586656463897463043211380671094338863182309929225115345601655727827072746146614397724633873113009274904655947844613643946525030920519342005059514432402354178385713617981953636764593504981590449429875332063498173282814951685089772889456059654426506201957285841423421297413547939336670608550144337251268125288196893746729068875624122821381590138441369062126018974630935853874233290568496631028909613548029963401701606155174917427779755416568698286893575572170010608307717097216719362809441353228799492088124494461547243760677586010534792932188466177767976960887986622310774112113441112403153446235818044970637517448323446716652040302959540466445299949023456138005066732513650643455406823802728551464131861332378990802777882214761760994410160425265060762175751986204833651938347385033401930808624971677648619732864110697822050081409909808301406052067507745387188628089679773584058482677470617251709071460089196130932331021904337655172462858597540599765078311821568570339834945176293598540515553436101904916510638675233476557051519787664286177587047562477663891496153035576777910881838818850960789148270906762852701320385760564348723071682964678007530248074581420448303035241609427812602951737151797152270951254068452022100845910596602686692059351578016081767020601730602809982557382370094252971069996567233010951486425703566569427177644694402569954224536419022610942812796454308462726598883074263504747452174436721296330448416111399991674950878487054159445440818422612265514450982849963851548510465763358339685016563917229094572574155149956078039837362929809106467633591119079219861063675970301445675785259777441732229395931737998060810296396209081479838247312846191510185213722924400797901549995699938083415107359834956969767027520075422104766729009588583333523304277321731044364319911385362083820606306430927503715247702474339763564113012023938512434542191533928187054256816159938943739657926855491640229610224124453754267316444151957866602527471062853568316085888095470282437268656119615785558616729581046477903018287699586293593411098696867493660444653825205833966094783383277887782514406839957692648858657466279431755183092921717263009868175899802606997185429532656077482001863486058122777140504407801111487781763694503004739985326168515159836310894395181611144657040510748459957065616114563654561582431275413368720752540590535914933592628340957070612054801201388746589672356443818939830817606290373727682770623319160639630188486009923910616241569171989049449531838037520374353848700772988200353094995122867919641441884686675941261770124740648332606455513773977946970470555012168079655454106825350684952068585363776371450169564161288764710088903436206323681009936500346481357651676385418257378166588683798831328616376413988154183691107111060915223586100060152696276800384771358123761834077040134295869259788969759143464845662623522370645941275683705924246130597807386327846069137444442328578719839096206800924982205892001147710091904114895636585650619155377645072006957465260998827883195975907797143464161508983247842427941956217701560061391715303524022882173995243646994191127648175321756274817923888559301543580907512855545042880227352931658475114513831483614986354010918216213221778866922718850338175432425272586050512422095321445169216258848397860489878541866141028717437395665333764384318942191060166326239167956933585857941240267568160055978537014566145949863810800802156603335334243992290436130212279257998587674264935898081496728581106231770638695493044631828610532416614576188080107821139046108215573420070161198096541393860556608019317635496641548100944001021633764995198252758503278402663430544160755786837290515367441842215457250168849990616478809624548528397066675196151964254715503818564981750560212946182089129602551061999751587029662909084421475045040090529709139806539867800969221357242566841238636610202229521144491092686043327941170486573776708291646587397872119883549230716146879257685467233827656667190094960566691400831514513544078642730058210056635956610979936794126276610012996594117941402520017088131120943087895785991580439771563420927138665975881120447036546609329445019259170159330874035112147872331971409127789696023350613810333803815090938545297381276413550876802386966130376195091855381364269001518523103751855455808680860522105310354803330656939069723171332445959154552670541286448757353726951976184233504020628866875596916563318051514101308739322788085956712879984692104512959209198964830460859331108250155233207016643176568743475077558018568953960516710971282902825896286433997572689066671759149634838342197808389159377662996304904664922906234205023410712723972044240274378570990311005854271813547023577624782032412302032181706981508987971987785458741087726458001454612604714259373646876371010227538179850113029469581385428758086108787634345719448101884591256209198086567111685465010773300523102729633340267279475945154338281982450669292142693654596764850547413062245390675389987670303566157593232492860007337410050261161396584763734087471685125077915757269299727315055190778742884308568214278230799089877137094085519404882395810222358305816495306528151044133436873408708545295807469863604832896314524685716388345463805872403513853693492137228617291261604207240859918664922884611163871874547032687504636109738810095594551753726441552606395501764436563637669068122372131835337740878255844405001989616783303709900312555672500238446345721733053128313079320731556317127167324021142474174628474944281794412026702806358736455512127270830247695418571843647004126628149001779664912143625829342851527004390980230249625469132425105421565292878199371854218785949690220419221035655832051213517013002102957951195330455304695246832635660990653435517836901442541427046760762820012827122602100082580824537095265547446619096902958064844762291485839108715154764440672918509590078285011434054439728762396504147727595133040979744885455473054974690033010923220059661907484084846978652883834826390266929590725726954524964283519954091129893624466293797984583460282679507614982522479508152984385930537655526807957509302034794662178364040039903983436707534955643653416400534691513707509001792815983976537888915641423824086508664660168967781807369164349302115364039386685825948345884029277920950125008195159708164154140294004609018781290132270217591618844994295855006962159784519273740983704336456764173263062635109523921922656274814028824822651964605187761713095088012501236103629220621840076143464246441459206752471646092685456884280957548760802625757187913469870211692276445952418479468464043449752852448850969249635381075193126130495834814172525277959623609017144349283654280239756586019278269629704448275884397768781582287577748959889092168538811095999592424205922381759768109157223089272739633885037663005198870789538893405180576080046537272662665017631781390759407801111585797694117180087543409876438567104723225160591602284158011042575980337582539886882509369443308192134360323428553773705301229099715100067405290805074130679004533053320402339326324345709951606616301434887623202520903169973627991844212267972228491198330892650044102830358827642530271302469561390921556690438066140885506125827845936559264360059360851765268451092327870091450800683070831871279763033498895033000901497744885225448648847621904687821595991716773061392490590141156528407374319341160703011657525426703803016742688356965652532396787101158519259504566380661139384934197489952651557226561318123452077724176203444110406571178750148997572341522120946059269727061362159917809878676292697946027063863944834069967865934672313287780523139572918084679161752430696268584935016727092597986643443724928826117397158483110387626064234641274718112135873836225067321870121814928793263332653959952969296164574582840497665500641196021277840489466162103990255811448641220373088620811488122986244403751609650105381274386129341395087790534226911871774180784237959615170327307505917077969224562436238572867013871502850002808144761465919143290862388623948270494295018651758596568830883315965087002821522167170221691214833060702718622024932274212197297009030850875351101416612825942942824346153887780083097589768921202949476770997689225620345657383466544530280958445266111402985053885512741187603777259926435191691903515850754299874044152453077382964166934611191045964971588828432764963124731311313181747104729638763643437784772854197302806014213007270656579937126659758919429676607185098920622799403448123343367155343744834462842746229758779266848868815783701789980334691798328427130731044258500886419546563437027230275049110849772167597848903401794924543922104914232345612019739906789919813321571004876082750315250403008927919407788527902535700470330547668011302782167098823752171206700454504087772028000917857636701146018426548371348814720954899019336916481864760099936147193263822912943880057706133774034179620937280919423250623137868558705558284415622545710746687422223254986658646144346224158921504106138675850543379147256324436249116351283806882721439203242413697850702942737320167150993501869724709682726507894886383238321409929962717541425415397130748221116143691565014781737527261378963056459182511806094448761624561210669204331495521528121749997897316492253757716786577785352227575894002337280974455410362069131711018905596197385712597365522878762378786147320629670396365726188392317336761620652405564898380426255417176597159108349937198824092419708204808229300254402651523585822343838714297395982910503972399814764951221785913094031599170305603249086398798480925144040791888167975472641056001641148273131508194793520361792303063031471632693718079888730683872083718229458684146817765503268998189606810159766851428174091905344886653378553731190359502140988193169561016934241231067181929357551873990113276936661423600266436089604282666257968031161611763047574773790859284550562739340966267891427808256572603359393838013782515998003939862204379071788615127565933434791176435563372141202514847812979126727683793000127784754066199120350525522484150308410340613581370822233200652456942238736112645416692181375111037302111589467983470854565080833041857745327234412534906310930175135995347650800429748808105404266663919158018335970754606913867123786330892630703449674098788268932345857451416892776367262093565517865126460204697952499299995318526447847715890013919461724019002187880755087125055280358670968089739907469481224182395267519142176137192486861677822008894575269225915571622810988443671895063744745384289321230433398690359151078152882038095085361386015212327807408102274590883782557467167524073929187429808683328533843766170371695396386697905261816213775683619137835563880426451085738408573890659451658363244686616427241736905305611625922194545024129222180853225618003810339218928474468383646866748727534654336536017004234426534127440160402236457308975965131250205606526610984050967550534315861216411550651941211882967278985700172841199653163616168014174585738039200569606218138196434964820220916406830931756936035163583875625037666170679036468779171721116540338259570617228983046666485901211102323517924021511062537954928578499876626819346850852939511584871872093099076021828011786143492202769787799902528218562521263956305950864885008694862041580325456871317476111313385764409481679575679273688120708692863260079820513248113886779991203628036417360048538621750606183130393192506108344982022499396049169580288636870312853196971231280362042828700694962178034209446144061261833771980286067626288253386406119863013846935284284911086933266464880598476886990027093140673137520430220422769005570459828759585679618975658254220076011366329017079563805158465584335040635936999553258299497271014970408587575269433389093729267781886915969858488215629319497594074891000000828816243334224314151449471788710032657440619639431278565462393676564196072903030974197814152776568638710524553905606027896960947152784231788230831034938984362539179097043662791942191886745695997848063947986373641388225539347382463034378806108231001389891408946833429007057010572729610654939223758192815960429459515076707219111064781775025455533672218266090709928965719895616073031311666588289244442932261808438150488934067861902140976203737433091851165671003032083504056594696041991308489474857147970365315407905582638197968785885897772005405527195182103469160911131977536237721299399418704292854180849441365097091448300183900766205266103231341068455848628769057686291445653126669343025672144916714714252808954036008425995800152267849892669405024691896370152092366774210723838772756446541821567360146514703401775085176570041359664951302182123066293452490095328083314125189341365530250646734929486652262607526500097106761243035630283810800339299296710307555704090039685491663482433577638457662625673011642348508044660995847334353454439742114230897839418783502852314007959079105144353281096480127635769505323734339343561561002694234807464208058527591029990407684003082116114417136869930307348855423326049597001509194470393651432592116077357393724338546918209402350150130860366667260963391931043294161094823298973547550880565471157389981254633935706605005388522533346040960811106621946073668662881760090065003883052093757745650840821200115513673934557505123926490946758929308358484807590433909091147096089218507091769707723660652981591112915855203548061805408064423474291508168877661922773477692942933154298378228560275921484392636730436016856831753046396708193044696126637587659235524350777607792610976133514423053369809880497250876295993308734789256312846585524701768836850796183255885822807648823916067323521926528277655476578326644824065719248972174709948016297925429830529385274332256463897839317800805800943362759427070486390514830045497609920092631120918182193281584270918173244792104397593997587110313280527465254975819843813242207408057620685194245055327276381511135226290276271975906118150665550164510856705304706474935039863477041263019950645490423019448467035435005000491182224489025751588439840530708595200019293239253065898184711633054713325855337858151059913026395223876147201717579224141625061130426584596671043983721037894009510736298047748502107966339431241312146070935962485762258271637737496438368769758302902062275326364485038492947889973294683999628498598894935777867251365987053339332405853798415407718521602986103781335428209669529808843563760034030488288937179622591187690109027089367389761977612146403702851454516979681934699962918288118989055078177740616168670569589403902268830340240100972665647734006180193126383621915084845176922147722055946464388440714610152744876602518036877555676641752339863198284824053298976760185200798364125850384579276432514199838626364282824350102119726967983304746640210376531473567479112091647567190825377931098810859620007871808090241494262940759650224845224173633122018212758161416996524112541500925441739101401969742037849420794830605022587401884917924968996090421508798373347961743770546621082088942191968487235644734890877345699396701455748932158303659714711835475208802001105324554004416768059058256864593950606978693523574578985345805619515298646070645503798734387055271779799535578301380605699091288972845401122634383910354061219319843301231964048410095310119943028007096021737669138995736617653950165522503351894985324965840678094017154703466214216294091756098317706609323974708135403127665992417166624630417399151121959093691929071196569893115398244110708198074974286448749304446476758033194977461155741302742802022542738282982119640091310900164224756484706865675501315980638575295274239762198486195736337110496374940023249797432085584256608037720857827460791523626296178529069284425696167414090234460167950052441938721332410960176178573968440808215378641740433345371961826914868733992463934923871760544063515363730011992929936997550832128785901300686027970502378815126181562828438648744620754589841820885882686327726640907568314327127266909552501537882549587759531438315277232677782478354166315350397310112200158829460323690668783131772215797531803252701300356141210194033296596474889000835725081376998080952293752751306844226914885525941782752395170973813140365148947357001622019949858882204327279606974149889688993319026178654735927009944990578885851756839586057870042399036262664901470249758067045976865243954610879182856658899680031330417987828622125538226241608059025923578895022690787867893935974445950783686378219797260325991639122126312104580409169169630054693204672892024956043868342977377409023554753900809247501008930697267494789004607205135647135204976413280642406550593327615930995821492353729303598303311552600393203823434221995162172233532095574569909027545798286919084496808967900296832805978805915027427229148956518767667420467826050802926823777386057020503318235412452802605972467336429777757488355189183931081289231741495168626801570285254235071370731935347493633069576108697195790023194994700751237724786050814230555068694687112454338765692823357208231767105761679046335909637563448351715082179863219113637020936816138472852901267678831284735072526857038708295291539958392981540207698700886845976245949862340330661025052728320644881284342361805913060444880432288742899436906138143559225366355156070509504391284072828103748870990244827254815318120899955426888197954554307529925339234960204115470557221747406648548322616611709325402472878168981276474877564904162244274486108063846852228483746370410385322012274770189058981004450220323418174345831202372063198654665198879541835219344971396461476791260730985413211295817023031010589166667070496896563752255692947751443456431516374705889135070020424174524013082122498606366744735794032298087086516563308282184129566242123784260081379546774823767796112218155309432749248082316403268985288298304826580318918907728658405020726172146714868693366650952036775932411552621522013194836715809465895231420703635313579221464708502057606993278393209772426606549640467048007636809232553691656132732683402377791216271920561573682619997841453069874566730659594474075964992390517734896487423153711652706407610422094280790947873639847897997663635977660611754200587376645887753578837797764654892362224015933005147391933286067750937912455693945471842875601469744562965626855602285377852334089301467045741680794384512084232139963801962498227382078073838924631413426064133143692336663510865069434128235242628605319869647310727353029286395477465464465036920903109318070876605322437471562905424123247878058795092963907644969162446409392048752562873160000182732025062435597993721158248667981482074042831117278761957263610407674134976086460651695150674170045862966738131169291250662512567144092338461419287824531966263710932367526387375568697699627172934967798768686174748740531160741980291915733054265246091733407387120621307840553776917935637202237171564184311872780784024006218068880472527446526576167820598778579572708215225013507532485250509001697745231012480807365696357172591391346544699221967463687864150339465179973611242880963225045580102591009431566607204825268623201128024361944565105885846984483729884457711777239773109913590794656067773659688347751279687769257900421271346459103172962940448397334401911438835566238430892853401099094656181336348131646301457714135927483832566994428153658181325202093120947248837251809442132762717694159736131637486541804120032745523327685052185083782088140699928809687152633372564916211470594417691133143400717842416607271426992583854712574287652108130943199534846442998197046038427042172485441214070600146910146367920650273204516174348533285943337346330154911277667170458268823599795405785351544488352707481503032140180459505018799599370730669101118481156791345706466423375170796385691343857563598853533371014058412584490722234382842596365677350529085886416654196276180973939133729632358739307532655702077463311760516455847765212949923459578446401226287846836526573163141590072294112596018177243244000861699131181440802860030274185255503307777049462212271934070785251755115585857309098490371067733384084757043399198904017953416402174081822038590272833983359773464225082059499002597916197542213444884584938506407256572576722683449455682712902623169413393644095141757677423164883135751651264591702983901227392638967032539871243966196705693925607137235728970614045996282074044303347484738301349840722952188379721942088705061493624832936490525812164199450941234988435041752550636970869285078396624323429892384171906955914910087914310870320884452196965808415286573118600078687572498323308489681090487854496100198437790142403779543797692000243321006478682078489269376351009443020890084170477785067147966608125688324386486253220620555729586628432124316721369234083267283433491091740564548725316684751775979082628853031573563157732660644331424561316871816620631459823127335129024670386909131550875918979117734728754550201799675980057574762927628941331584552958175136864432778653546120756823039027540234554040813821746642873830881655732685504579392845706372919253912029420671469703520770928414534882919526595092983270139280026751331006035698296791874775413600810043315088073187337771607815959223790556313444814191667109032643288935010026882557024146936789544020662259303521408937280838135333775778602103122309489661923230877192449622925772553566201482616338214730469668318191118251465169816506823400476777073382216463290235384804637183103135981668810004820906135933754657059931026034141537830702102871235071921081596022293171496407755195807662420993353006513417168421856884231817506460556844523599993486410135079934475537078342361083790512193865953987796344656239807516001845907269570185736341273751475998614566110415398291466606758165493779314543538864125634401593996019042755242313538632001159638266504136699961759857811318622554655615215806653263602566737738008492270592954296688244044865327063156759160440110994069737362006137674597527748686587521542927060380655445883996653207845054890202687872521960054845162193259017307355467903082689321452423270575058953860765688957180269185291165680169257929356411487939602112604984802581846549143658386805714150677975503803444021136704291888891497475169110403600809096136374466399394212459202087354742926732085165880890224220687194400470092386340261807993461508309860528338817450498651653642524690174905072150700627790557339820316459103187275014212502842201153704932273660257823708844609862828583975206900270301838966585302081801968372884926864791485327296847693272230916175993900291704357345752427249050778019445906742532991328412739099314546198547177229639730238180592186117789829222653907437597503870531570810121706037282354391838405046608692955554494410561379430147287184454021579809084940132332553467917751811386544302529194411057005806727414546182658837521670227678813351021912649567065409256749457978836170151652402816915520142122758330804331125099649790971353185764897844583622745150878154404778315156947578998097477286465917190381825621136909665045263799813785712713531002773639124568867512426131623175789317113136905865531132590132416806284347064451542909322116272103260650314558921855308272721784252708866867902251142804783705751753297262086158300914577961029386555477146441736605871734790014004123129460999275518209607949236483629721736459081955569486711255476935489979808059181224846269967732499096485865790329339401358927444310920891409030325061086614865943541580103376491801410440612829998995274082002733983687895263983183032386872914891879631652352073489291552631177550135722872809607478947270108623772116483832103686130707057411499936078391689559516054221399171868618172253675032962375830020816250139804487848328153340389482941093581842212141308414515337733129985268609883597653255958275481602212034073783495320671065281244038991739926034919293976924007598463017784162088486280309386507876259568230933813560349192450852249670271923535848790402942864223637681863956572763949090316151499361500643202358436606286635327557903113333100682193611002369852101613076843403307495669088359310193099550386570007902623684887835007814900758025978888681447190064524910159712101957152940562593337070382416765473153416731450007822786662473500907750749383857607584318727564424030644052280817368386470164318986261264323644227831028130474384334236294124955572000409884558977978054269233160165769172933989788554769900389045510933334554055049039099254305365684918766665205089081531383816213341979467890525713525792184425920820445961094412633781461062504356631175319414919446649445795290518327093439259031206718805583450511715425124409055377468259083766306345454971631131759527884170448245739043916587854202400479594455751966728853022103319646027114347420595153330537707401313995860986081940707929478424842444182519600092634875238229198534145254689509535275817900278216186067381134712181131326492053738435768321653721253895840814829112569832515901893890277869221081648530433403243587880364991331959843531303871351972547465467232598440250551203553004634827511462735141555892607673183809267997974121283107946804499650084026553429901716123935443637998915403559356220866236509782020133130617994122174206021114578207999335337888300736328122750855980878781291740187426303540474274619195737509463820489246545404770607226479937470122684643511131496628584247709944838139628847120031384529278685640913493867594067295934414563541374964382955988431361848613812975995267009747803342095633448172038278329809245350966790094518316141825545030131345556730181148951917115733669929280627808428136825513241431423890085750185474385253105938999434563338054114306426403418663322655556368068019564252664433004014326225543814793913676416249128498814297221701607727813685343216911795899302675861381742354848038010893158205264627173275189559424739260799878943516142438002061139919696107680199729895855969375050445966976951801369434731411429899589919386659799956561891780554946156587356704535707785852962877649830205260156243636512353553062033800595193767007647601170496420849371827649304156644122101927114615084240574492112378768028529121567738595288546372464580240209355960023278931773829795264521127183484154243521642405577154020094431120279275507976960052320213597165219409279723628610593823708813962435189514466097498460048518063095075337509443622270552145439211257780965697026162031457112379472890540069550215857085409189051651643937356988957676453647698547407666974286389116943170706450460265338471286804634226263635997339273665078086432008695092983042705448562499819558254723602992058298732451850195879642788029650635758310653437997973713925813509441562650656454174309857240693466646351792297514937927996109128868702524727284401996078279202543491013528384047969054375674868989674232035143539486567665045408712880002179699543249497407640915037213511691850632907933496500235524898676880233883366168668721690628461237348399582424726814057705784870259690198711601586235111233440649324670478628657809656636668299678377116857269779087317935911486231011270186139610963373947428024645036726538453162642787329006527015858722662538541094073018371592489649251638712423773356022417418068156385870896953034018775557709060580307803588102100541461077345781900531367590393275343239622434333893029560212052197374951857721915564101784976872478387003737344740951657929237837851644250427019902519250909573204172205932983294376241152477766718869599727911795963315311925194322691152292426210595744076971172079235461482017077362244876441953691628993643521281303929370705771845795024719602636786347711735290736955149469076861233654810262596758044967542036884550199663985686323246399539505520318204822800003540718428296356372822786266529327151645183932340779793371063793105513034061037656072928536997661708625152277177456898031986302724303662879349657499178659269708254650951457367209454398820103966649541127069676845642731810213448341676609300044915076160142880828193861434656368860921280800620337614009874207168630277571451675715074458562850544041575115451290169098699057644087126059081240220752744434818427363961048491429950166897846874555018764821112436818846011232602012198295445825518635195250615784161426064358763982550667783906337170669375529184500919441706835398925738286410175051322005636302849338215745470455740673011637357076796805698891078891287289351480859439269988938039493972102270090201465349215767059530914863878071499274593810348884290571877988861048192406902901539115604229810286283845671252198448874494164453169288948057476427047427520456967910529706950311163413928311561137937869763126851718397261028605592571610612683722377516435057058003097973692882809268911703417304709925351723517936237827269678721116020871824500954806285425584082866794898370947353343251814924957347217315692348421313692474584233043697359778574998711597157255215895461600248652813616165830926444605141243570138109027917790444929818608870570838890700592630014379783496584168473579063442523631929472019115007655095973832822184977044374469344739325015272129928397812667876366751320715734538473425399215354675347543753872425064531160267572202891459572228992879854351043368313393600337824757639775488966544358405807909405950420120335530996311424924290857691365930551792818356005520801570266837552082092937629970720723627376583727314974838072170473617892720932388088085460990711885862888862367252447908099809367555410976325536520758297021455865833787666953197157773451389825807478824328673088134533111537943649217851332211613989259367413837665957692897216144596995763845765967748500758080936314287032845165794741369032256808740884456451537845774054101061844746857988911423674402468415670050827329160656495078240113294594234998483779216721348782701870201141027881674753701799727371060968858743430176305692064951410543539835495842834982524911817217857626966629783554964002001486456670060572000598083053045644089788868117635584889487374196197869207303977042259732191626469340322351052240972300271230230656380596087971815538735742473933809720844131422680100226247099978727941992155220711907291947404559547049860148475883263690256195359162980677483877317827424741558182565317100671600503997494615874161731482967469883073527875586412675744581897030620272181204396921786266928720104663864999927847737024862010186236114947564364497540558770614844347242524302389210654288281722412260275684112244302146303613981219221041955538862797111278333105099918573433287982445888810360764278179953189369673706811104746981560930602766966562773870284717614483256192551310917247792264000064853796607664463962450443317086900056543817035479917887319110284948112025433453793601212283563406798546639395020061221558550991708823253675780853790972045306311324340073905382585361495738063366457950998639698987866469651506255287592016001756433303397606426641631007829333811131031559097104680124839742626179178125933808836684102474585725701619991661090488771889459934491590297623307406079932109111124353462345693521103679872798945774020139733642915212482973897321824999009497371708116975680813886290031647664031826967876765899707354449098772866161134002455686265598608729576472785995989600629876157388958469831692772501741627705099328021800937249192777385794057454845562106292344221668060997517824846613477428527600820569740232454310441142108876066982344791621633460465822849421489792484687524011527471999562571827796562805970429275853059369609695451194392592317222227718441590554756266492087539125416458001341203129397086508979376136704640142936558431789457080334467205143794313397290283852437526573217989141608142329074637596625000720175612901453753578609734500363447295245578238856248110068263003667751781870531761275491084065523151428161717478644942378212785730397392925199699138345869947707945115512624530910022577390723490659022639200933235977364370086421542733441555445682290880264867321077798037393311999993308916193619650430641404573756077265522570036314682663359472854847301535351001867655054882364721659707629041349566196777403059286210128879956018772628677369629146969370289328265632145958335927933373475346750865597307696990718652777480026916718376569349150692031936986154473419598909409030769589784714184786905990944378966990314111320810069048932201411276989216485438515405023528660766565539566969663433775767476937483090425891832605623748289946286706224735289101957782532611132073631483789124623329567245309259028254807647282260619799716695068451340870353360676618828359798328321923944995463930924502149319393907791909241049579209278075041060712428135415044591439993630581620497440729868088319626486745921727333934104718752622247986738397586375292689083446094950193360097942094225131058419347684328416973906800876331572196199493470661666925099470242136204346576056165270394936115390765511830743766678236246695584907096544668494275701265015547383470175409533665071901980253953102386181117761527615800366492370217237978360551400548237387569139108686672254488483203424232134125667722435911507317846751124422801340782581516255000646535416157161158831394225254207522420031355821113514934314290375183740859232153445450217351883659751799461968830254084581545477097700063118288995203845099784433453848730956812852693688093822558719792334672339309543981554943321165951417814795373599445299160800799250228652768560622458424464288425858927453221749539596111708372706919111139197708572943588794816706647050834353402692567242102237521985075809354328541529294392741816675890401746760734754152292105515530817769325443338343047787253899163554767328479862757198566672042656524620862510536451636047954449394212931372858192723388434702937203180333588331770690138627890847588813206260486542585640541036646463083249108197244089568617274013398155574769902050492966919555982297983544708727011567641223925030266780120180250057867026087247819086310327270014494594233663027408589172657748178116984466853140722237231681455885277345598386074440107506393131976025489829425218685213343833162061888665100992012293818550787844671720649052347580056483076842032966062364522325194853277343652229372735737346465255737906898309765905266784430316845434839497310528016081927976941529474526465248754115016161821582271512055188209747366677690344254818188201820583316971360950515627679259395531186239716210479843713303646690643109090205165675088550755899457270466472104804967174123894262465566948942120081812997534449771158983879999791946671326958260179697167849477442839615315778252048129931550231692164159951037848498778281533128917411297475267600944649019742369320435358096009614118747543428849067064478660008661677494028858563238398371377005329064986017291094418721661937347700671795166660808514995529877159764143348888580939192998224227352290833227064680184043548435664692918707167533863626937520714272730643516240720656856461381732867844968825783075096957047388314010012266707149674636902078495764973280634764152224280335566274942471587302405963140125353782611205394444375519310094368170231234489790175738384725685904259907267409226055707422589558795309545292230091242320868686488528860792938965093981350502334171503411471226771881659597864262992937369992653964850870273101963281400111424251564359184764841762527627494886503292784955089924779691824995560351125764733185863501835739705765428367254229998372977662923121908957215559877929093919154859291923037119658345634739567677780784282546105135295915107892488232750441517102313620304004835866032510131824909687660074171205017128775319216880218632098410087058202053331113631414255384357840406866226689773974983198651456049255113882938029702007516131697061262950391175818176526248958884063519250678141110637722967374459583098462589022961114950908673620784944723866934319361791687911722465466437637887735632058708985136730279181860723486833497239360142766226379868026435021826448123741285310743786579165552686161003185436707986162869842661883524177246352770145903650425868434191088715134755504215068735292845642337371487165981577200335146404394534035683731811123577608580110466795648976602313505616566592696871072706085110834802478589711257299964822961122606190979173930661265535053111116340456487788858076971685967043327442338311612358374572123589080342291497916146437934528988282088858381270660558887621965669002091618610007383872298291391399934221787376114068235394823505545102604756329954265475729874729281107230670185363717653972950471871153118902050749413742318811640215136891225510799938622609870578786782340902631569013172035820342490509957169038389068021371269054049368493338927448336671742646081909738919713901354858028654581832603972040089453209966035717058048828774457385758657958333820118845688219065428658541336076684735605454362997504974473760969605564985427784835601233472742245613494308041227977593983998403178233078792772079243438020351717603356939662320837894852222154285472836914114223470775642782533643284559755777144113676003459645456746849941590555857893190377842448390616785912751249288097219886742711113954359830071672604594481185192525747070025721219175371555717480636380845899536145050471894600402183355944912131746659217060159425872713281289557744305719236960471502207449826853936060293990540346086537737809175525078564394654065637387741239869010168967452800732457684747907618897871043260012031978533990554467846870529838489666293151357654867770896609898135094273869742753246126002387845122585032854865566008221713547318717968693170977840651206171977551350159066568034071983212429972352193794280981647706986032982073599274536572520825675057803482451889560974179351854349332300968507413816226459904751817017938869505801068737648771560542464903509479042456752711177963645502503489130445365979273840317242593266478560054687333078637267935230511134659252510224192349690491555334586491490910868854881278973290745304723088067294505091547153057073591365485196715412699508758181643681020026945510915383617238634377785102504776537934704504730810453102895664009910363049962330676387211493731276453619016203025925949524736590814184674977830168222479686390582134475017766345683982100991026262896659522313649693240619463137158880432719769951995396977468408296458614548547965996010782407207331982365147721026739511429671178045426384489643684827831820030312365077367197848883273513605709313107990709894572059308865135148451462344263351152465268389901563626373923450291141335497588474548400300237914811649651994718347031968168442336881763185748265010927246230108740365544635209888908891121015360397439357468208187157591673749625948795378664265247721434023373020728330503574598197346460530696088702774561309694490869584859206063945679584347164604987651552683566914580643619820002255936602284853090739623648669084545626228343847990720713900060288233154035278748277152766233463522165084451116022512392528742630336920196149705360259693598752494430673858306683721455985998591069643113350203693433072175020904589756399177435633760708906132571755157651774166976045525379744637957728895969230526508379595278859414096052402979066050516042796728427749653172880631385156752069245497274158866822636731227297161947307643290774712621460105531885908768598224841656761858833851119693654912741596612158824637955774132174094193747010916459592183961781262032117392254981382932786446700507953026147073322939518039714220062898703073875510021958461387362463586808897978273663504483649988873300860409091946816103864627477030965558217299072748520552719322367471554502379574569322724767677935259501049859562523281963102147620230946088973797778066108715109439123139719112026889054381942623096020891916110549965796385792323052458314051971135250085602310014907246751246210332238459404635508237958586384281566522968053629885431634656901116319130594351450588411165188283608260824752506516762853550350195618128056908765161029706649017574546726113562140703819241477341021903099209345959955318280808605054897353619713630938416139011597234428808645188281103194085962994268199275343142556467260475944680754344983993332646074969672117804425995022585717639657693894177966884213321455185569244366247207280021243558128341918717365455972678012074958167958758373295546193305478367024072299894583039894517282254713643293659130291652616912091722478973398535519722625126756936720784425594280989135366586182875138604873585855881125713621240691967825789730058581768638364469566707292680275333200028604849291350399028515348359420251017068153879294864152066234430119369113455432763907376358649144132860120858295790458661729653164158076771324390434067983941429074594691121559621882729370677760656983021631459768874761508558099696653477535102351280645832972302649476739578922098099299619619068245481977085039587295784213043554400344941051736363481681412717263254056510942057758974151671683478334591409683757909222169303702450839408371366972962287628950631413601043724339122067038906728681928862379166266142398461593460317723169305871469913356840748006745312845101349056064144627620358328474753237991238384249360802534695372933507391540685559327385895299270363142771656127293527350550191275065464286104144032746806336734261141265263320068846072267139163058587721558948119484959894052755075960194402416496290623488397254024062265555989063555867844031733561468045787003560728259054421762742095378747280660782014254569844931054080793827275981534023622185929425064546015775752115134038039752504254893377705736281441109510221150784135516569576808214545674868196702417632075432571933758202870683884183317980938752848053306774119135504179238549245497159268437717428852471680991793775727061825749090800223352234751694756215498750339185462717383173047199547869003155434550728834977321013971088283538165126870208997787592355482175053648602324341147980985810600757912267422512393714343342053227473652426026310256966906346824214176284488564310451667659712127131304296790685706011906226709572586725270065811838552491252278289564959433673950888254266841306224653750744104096974491429861262418633649910476852808410595880262288893689218859154210995317470641559329071049060064524826616743159591488634742795832380400686065034998701803798752952105599615868560135512368827231042214650319452923693854083950363733084370396182503354064353323838422442897042614255114567491464398114209398101000039711060952059814815364817391974418311581378678411511516304805211587087916539042787331810169637487451153140189001061189317882383290381301330630806684839976015472446393083166409509203467571229614007773623039132844619146949855023958254715480255109352755325900316930624507300510380452650887729614863735593436292957359354868080589465277197602753326483502178333062408166310933060752826188158968075216927982937280801519235130239125432017868327328238020365985538564195924083941910857979806539148981903704912914953458471041269913821983853894110499985224084354521518514945010119856915531597894313393198356498795325631813715843544260748671819199154977289722782428869310220193346204359308073599153649777763970150575661714242286787918837798127393527450870594405352006736017056138268240685280934000114203485795516585120469957820835394388246089801951779084530395889385146325478679474996248680083764704386419953662818823506494402983450802610585571751315197393178889413590068368033004501153294410997295268351369043644439661316049177930772876886774011920320030020255668303170190670771599422571250200202759952743603043955179692552231297132345594058436618294564283825634469053096765770897806936940959979280680048882500848452352272106604731296729890201153091863620441047223302400472612040782952419305537960240353941716480613436635408614728744860828194505850887930985179893156522855854587680742587668590538648447046688391035362137179395403913194617338236205684582318245347500515583983661124985482728816369791557517783246682873462210150420723801245099097654784587834247301501538856777883285007755450242201743443085204371011656881652706386028493181336570020832534417104027531697937197959141171844994570505713860445334360911140378405282422390359063140851394889734232536058854616830686858081977924244507365928481188214235547127955341648533412529321907164880428748455973107632669250733674502021037159852169117837775372144081672456060257358890517213621117545078302530853226595884696063991271926755591733028989988355726364590003902770489829901315218107958560994652485327958307180437553456207488388574385485976872729963472759720328025530986022666923314312501759586005423898007265398120215346924547053958956799091606828277680255883306832266320797884669906110265286338470695889792925708421040539943318747815818450431707889977396967774938513143085288959236575509864363484129119274777123180037308194683263869908968674092602278424564244611793050088346061397431679685448825594832716866718397372424134331379781604799458691472386461552166385388016258974251504410329169707846855869938686003819429269306473065858316573942742337212055004768184907789472890765316783381894160035680781106310006207265613617129060189354931652996252945516906527981370312083422281182352196456922925360318058760906527047409662653834636519741897470165815254498522293403546780807389619188407671135695583353198017533510233948477027906565551575848427846640865536540326635761547545826652863414132845778692121149972533280852353783246103081443771558725442824385463139537829093820061343832213370234219739172709136765388164910218590513865680433485606393579286388081911803562637506421917709419633101647248253438611581082644252124668354998148782654034406221976500391676719235840669912238257184735763646665270400640398017625726321736667562454461432759010184667023259590156017715088642231801452670216397145247270509579160331169302861275561840414976017800773441249842932213076465853399864677531632378593691113238842924303284636639273441985719112184251107639505072906816914587969234344658133036750921502138960540725991937017438735770330828490267621403427172409180589178951895099712445980297510507583073427335044170563123686123223851084835941707798527132203103514181625404998444137770097960850814575817478698134159349776927614963984392983331409444512158126369956103523702826128016512408754763084932819926668004990877866143121718574026724043075700849461796696309002358339864509555171799796302840497117252035837826769419203379273258258794343173715849222435788098023271423226825326863291073107008326995014069420281980981649179319647320206886818977245626988187739009464666627258706892775046943199649239689472587085588001821950579766829342271509191545982620420970949409884979350599164307305285296636106208358557976382919276134313728711314931509235333633243645911649119248401464500882969554878577089220065312546289113597088214106286320365742635547710796361064541155169909295435281859332232103069529574093223911742794300235899581130395065031133915545209656433998957628290235257454268300806433679412114757775832692456689736506460427613968189915751981207356933060970746527466897680143936541921663262603481755500064892324383651704568993080028428732090220472401550539369051898029917143829604903656679087837545145765889874085462513861360937702057597704602741802550860358909457513857819479426542739282484225263006465457555868070151974294593578418353365782559363043057325796114750770856122412157641134132948848787135595258482144583629089052831605276532567754231116631865221521665403184005766060552726806481852236721454498892074947867171686072311776042041041548577848512838575053509673371224380978869350845665853151955712792547858122352163460889610571822318647437278027341046498549535939052665204123218785187042704107328808610129379127232527619631582525356117495656612752063508955553611563039660310736384169201744729373698803192736942589963329653812428186577343682255319333843576132082901399654302394558819897414603435923495199147354174279873554835014916634537546752827927224717006452444114546582436949482369534074084172367563516695796191286896100921224426359772860293365978495510663890242355647582095331601357326381741261369427843389088132123554114850707403202288012694507150374937186198984397807539248656930868555595704834193663223313918653201707985772789298013529873041297501867450332156812876327450665130050904320194719674103636346062219383775712859591610820243919967247230150592300912783964517949003480246397794452597357861550754236119595682973214432103541862295712037503395049779660223204692074741323533523480649178525490348459826873068062160756328532653300231006956020834356906772631035451195558418166850827013727753736325715969516109580098274943282695547964849046571099918038437620818206319684221816931531587140888845412556468507134212146391202835089820167562765606764853287740850158526612296286550129227269748079314057187714971746951568844411182451609889186092566054945398147489972233088103041477881493814757676403545111232793917578644574279652196887970865143571967409755564450280715020392239034412169480044592249013236502218357286889167324980136597373604516024965525767956272100687756361243741258936867679003215913176679958779006291408783524238619442661712011704973566035716158912845834390388898824858789596017496494917504770615526269878428046690338030945139542488943184830878034513310860561871628179687368634459718675305152707196076742516708061766229894309172415094878409408133330984586879312246941393881681006165243820876069964327819108282162508934132978712253756622993360373649922222710589424563465398992226700524265251227130180417172568018042585817836174711348921537700690524171728958507143401839335783074897051094530405400015952973673451466898095900214836823037185190356750206340336280521753124546488263700780827094048295706322435688504916940244389937087933529174539818934237770993916306373867925629488463713138931496186646221240869343343077754623457856323488474665110831721153101843419981849751853315636353951668549926802272022436996904974491227683483121817243321935592817634556954676484878970874536548454552917564161988576365073338211252329022733135764403206868551397259502352829843388494066766083994944817886594878894834621377682309865754711022332932844688939706057276856494047412356833935635684601794596530918768673722564147974324577846467297554311719059746107128944546343933438287173192019083601095041185055246985497373364486308940409430146192167069198768976484670570170982750897239418694687352781728171280424701491746324053656614189251630541028352007956996824532327000860368023016233556547017972562925356815576875622352694705224966121918081941273787898286883991761329134306159872277050843684976759397790975711530685848190933278934711186581513666094152161649686248214229533499464187359035239935689479782538530735513287248874248277744372843759911799736654311270212262025381476832813744869590796201292852991115504515241115891768282499518333764591254658665470047926811071680006807057149920497079466076015679672902006170699793431394889397245055833613230885843383640491800574907424915973477311897380390748121876773041940222383880796198544842835701046773053833423330664776463176582590477332437392096636020564675919662657377281970310952908112795322789560946331325320248816910924102917252681394719737317501148655639454169328102309407614500036352031054362041086763599060184390801572551495304736678042586058949277201896948940465113720202282922315000573405254979554113843770669238320092212650219007722840246498978311284729088101194290599764896271743534739269202058132968491879296442803536483750086168760758159861073039719595508448419148620080014000571623520317605313161817475129049891044438179974422086519477127167221353300022622263700066612469578365412408649278477474648032005029218488963092174050957346890978688845000963183122861471587666842163392776103576277530116925123155932730959004530931425303014098038340549985748145835686293891407683789365114454304928438654084943681829266467884625128670513099499288202427915542129161431331127066144611781461593444717744210534017037299931758745183210453667288580668385474895832194811156142779866883838013268562588370132340577576770868139149566610266703481772726241616158648399101620736518444473327764547077427735991463172871133092313858993554576695140683686410612192788617443450966132811184727415768343836034171424519225316102452166205086119491718737980314611826784351105176167057314560591797924924576302116192505804052543156167041196668612129149475472033845496048882987700250507626571374278497403866672706654707224653152534333419678013604184475819080815336765645472692898169274421181522555005300154205671486902179963515225271119478105979535522459184202984603764417045024796149867868049273705446376587694834824563365690550664883620759976372152452481788882522897492461418478752093703676550224927182653940634764963729842163334281557633949776090840224733668133070599859712430153842647585284755750228084427797558992485993521919564818177372609129681129038597532740451277584412210030643084008891741030797040396875157549561602329930055559770248312067416257265731278054441215664906580112032461981289522112786665977182536854275787455290569279557297556000753768452475939785399882315168078919194860484835371397705797460152750697500472475646923054856370602850068719469396848831059772441964085323205267822328073352661455381537371757710173227722837569656539444636810833169513339326570106228847140298320330498051901736775013700186739134133670851116195848129240651356315224209960842634884801238470628824580266720223490794417865220228810629281666280198129852359214675065159063912700558161346754138499686134383538912545758217719791915901518501458989170416189649729225248491632682943284406225254995485402551084862487139359637677769646958912645536685122258831717773488481313062450365237496889099772032052786588144896805994194865959359060684484801952574420706542568244380029818300307142334131545035149328121870378633372979117239064468808130092159993966958820844539517365075975362875363946888885375634713106672464178987804515021055777925832531500383007770015391202822002877974080241953129853024367211731507356134859904264170063050952954716709103264324034711578578413920336069482969463450386857525929173146825034357392179022580710306849247528208404616864234515467434298230222095029978967490617201547964780019494715994536343301954763161989014232192303047218044117920792346212933852228809115802632524495670233029569937750800689228829084170438807742463758007688713092170100686337970087522774849779706560004044488665809335132685206610550522912341973530482022750647025133166660685587565255635149295402596311756649775696856163085220578936147851346177260239400046377634565369921935367043330510238828696761875048943554139363106258076878321138778156218209763954316548733603301610510133786002427723517101036238020643126529164672944972739125348371028946494558798465981951750341002841653122214737880444170493005053184707328914240575891590033461060770505614076977142702855519886753285803176030991896449866861501433557563443871925833192924362551573774905435821473809690833557603295699006909554112309430006934174455766696607586289376865603097602987651722030719247567684110692340719909127431568966918236276118006280108045024094690964262357309393357042477144509397633266471615131289409289696576862034496402351334349013130390543584861546126319033959260416364819736531800567879988856293522176566407098271680127547776759832539534089910390467918417007643824781370357876110789679654051815633576945345801330925727327861476168541600782909162271009340187696797960020443472292958657950040150339486055275460169718028052780101771277849060345366660451319189768110561496970666958980055201171637363541738551116774230983076501028632936232859015327668840386569390006375377437550174299795531438167612798594190212578272652991724038339740953918827958242154882706017060893232615671084719052717646934943363664657892941596707000905067270997668878181487777221914699524892899734843436156002050229065091175066429203655560694428802057260962552152323798073928660746277346267658135899527580489710716046862804987839265910450592309391450896211226557497580855624491594559022313078751792329493629148910680289351837210452727317052612560411708666781720910144257805132265779619029677530169441972001888130460740536056632699845519123925474778300274301427157621135970397538533974019346505477917447538433862820070460960945646619767560785743875054893686300684365586528416610028789557769103760370758901378766829247564826304715798277888599105573782878426996186552428069371291003403333043007854711191897547676430239660645225662146577425611723785621488996471377787967748735175926762978252973911548832623771479202727952507930380315495038698859522672257478988749659790996310562388989119849894350586769206711357170339627435985410617707483326502497942630961540388367410368400597508701886075365634498668999164266582276548395951197790950330931496719894895248404633461662491317850643094540614846120252998288201202377166421102776921664759379185423790342628079525946662181193594289634876937322876813824798401578223176520373977231850632940971385398248599111347679328944801534377515842478792565984554114382235003508545948529565242431010796703505218360792526469613656116482020523189661174486483016943712056571848305854725558763921484252651196024190373337540634382668891409904396165651813778183683831352217617361435814857986494774076724088850842958245346393104910469833847351128721385303342119197803220236953968652769339328915784387074363386665120213092802427846279144503280507466641125562259373925286836389419202464348608870626057303588247061586896304388431803833857669258703830800343246985200083939427193517222517282261976801183395128148370827728034820073737530661695789341103646529002329312909894332568663680627285954903465510412800607505552117968799800403580729385775997341050732074479589462579792170451587786965623445244278588176074918210692122167259043853207663081801028625476277136087181457506571950899039876599465180001752991131973091590012973010140277785831220787271423911410515295116099886974123252350553069603825044078078929375196922585375822972382270117744972438810787733862727520191762282065059184511919862467159970619069480665300533639426451445861081895776645558791235722746857766181884114699700427136828487927552182557954541978336670492998639670291104139955658194871018718719754949599969785790509809442678430548250160481169641971546320623786840743661886023953310807857991733126297386617764882048932599831319497471546878891512239050965761667860160124625659797872631159163296176712748687375033763185709174252107000411025527281329017145105789918336805053889644028085947073231582445662467816537772882319110145652970566167198295271919302925290764616583320164034109159659446790344129771256352080826200206310929367656512156795149249945856774048708468725096251005744457129496936236445709515479561786213267897205470977400403417763919585922025607911070274299704919983786717109157551573837468891940285151249167037287075519098980314453661371441589550354158460197817244013485881042784092032738122303160343789400322987954585113586922579994136708548852016454139607646905362048877162627865580722365890030508072115541088680370013653869194084909686162648458996777713903494747234903499819999367853843243649964063209791062997990200666723715130041882811937578335469430731362868294463201299554904236626687604186280197266361968742693238939756050990211527791288497761889151716234734436472066341551437273191795125138101036906437515585831351466682535113790454074154727188292945714055055900779655989943326679806442608268021363082485069491830635528367417618986854108945371047803124313815713365497668701665781250255799723100720665338420982601147782859634635061491558193480444822418223104864346988817740795996022018288616178931250368484161813930246207467454692242171673919334196886943967977417227561469792399364742242153491315145437884740621734624942120622239982194194014491014201614163197087036384810558362750936843080663095612749799768950992222953971331517558517911615721164754100458875974815781599179492809868636426457418469594394471856500606050821267863579330152971865723971406770423804337249372077826940094189659869408982497563394980130491991360034556744711334438703969686312515547998239567891176005629255992867340509853944211997968364470247539313982263097034293025630882477256220453409444209642872986250100116952138774593036639478360313937199474239944931258202053368193541142839163019918909320145696391827412501259311717405062759039606766312770749432752743567003033148599293722925666270398219325919239259301607812638671175574292397428609301871114974837658981586953380958835096058065678862832460306361783958081869242199978928575564197113345371874403596130041185726591204142970294103931289654171883200987183563418356864075231058237153921204909807992907259815618737036797343356243271033418378354306275539126950562468340889676787113915859641896586534807397523363518328711350131961453438779702053100197693022707683007935787357560644506776175316653949735063357019209263533262171911017837336589477756035626637700022801415557461786805715768466734254368868580096077588869463704503744582537674693970312005013455515593301026380179534153965799408366469773055408893227152149100069943104735019359455991955694946513745140977555121599897905398908761769920379518830649298331978301433740214837680619299925953045516716524771103331647848562177669243934637249152510572448241950905490217134864363293749976832999003623166757897575191982520200841376919557323326074707144853978896558023093906683761183346305836009434275800156023519567852730018822832852869713923788046263065451435880457610938515899037894980592424374699282604629476293286965128548704395193530770982617763394355849463749157820197042943712808102243503030214148164686647785611326514622714521137225182215536193866579602448188270953774292284742274112265191318640736338509183361229228721984858422298454749332568663311741445243944811317408570947673366598326364559380797887258362758943163758259000300292493199839891984399082774737857373151968031940263541563968907802866339031595503041475938584718245573436445306878066604087014120005793829757450324037383220821554022760452145549504217890338937978107061218250409916867864045773839021642658309112640808079347237052824528867161372397044341032980735339661982565375691029088816449530368820744098860427590303112670299518964431215270126444703805799752907246699475667744292065609324190361266547787988654138038880059784981144700037472148599425943195567877178258749777591577726190539543167049990715701951095454355732978006974821782838337979670160552410917020758633973450406095881189875574274189126278027248202065615965640797064577831445006636928858061942065562936890158682845680977374343092617899350632521202803222604451524428668552573258757908527517582139225149999771945392907010491895747119604464065578249896497229522350854233707069166891481950829751335081156247617642780622911856843738136864569258526026073703770131108732209708898734008082891014052667052924370203223372998479961514154030169104663233552230009217748850947722682484296195473597730697147329619154193664339374687212320025215924943986639606815598177830585596654130460102444683761059777863387870534470107662886064866975450692497584706025682392855122597188328201761929376734769905615664881764716663085310195865809642231219628809092135267830443114441378673674548090847783312589798462142291249854842705313096599598997890865358972291599766091151157759272698120376152110253433799344003912961409875465760789898351245855117957221889916254186215746706715068596089446154516529491927484950659666064921653749279626119249256756012441328760858025010911121138826189849540137142329627351636899152744992080499412343100548476151242327320496543712176576567991253288857322616037619847632940754259842593895478381737719855619322066826686057908769899379224406479836426697024366914791270126979888408331658728545975322449934068658663216461365019543458572033590164186501409104034003467597863159715256239162160414161576414350652541517633081965967461805944519115341847352957636730079198950488350721262554463134564223381253357906863000232375512299415280101176314018609938896889852486148676637605035887548765963001989425085080832023665123805214788336592736642479503183838814005474972028441867830604904347152717800536905827936211074371066432322455486470285373662482682483437213000208051666999353734328350351908104157307250005415700646226599528327491044005934464499484100743835965675756484078764311302273937075656624832969410285960509743927365142760408597338309229556429450024052677991790191091191143218038434650341806200165639855351505230603660055452183661745851900604074231672947119302310827143452898226006670901017990118203100859002414642742964151753534781182043146883044054571492014082357431339902986375052835224915549459449645847405770149556351978374141543183060960724662660316967257412287533010174781723140988926590740261633922694181972049646807328633185847705591010801239642204622326088913489062521041697433705510265688503967229375695832530578498293883217422325321431780688795081102277986804563502136491513530425919831926198787601640619176090121419253554996117631041141028964625793172427835179549826782723990963544526838032823233415595143815360157565014461699156548085050412633383335346406010442820573941181611383615507714579460918421326659615238053846993224354898530649559758403657273504857914731720252408114241566265018398193010096639102423375392410250315809819148919184001596792530061184379431628784373912589832251083565185020307204660352327974817751588539077155422519618835590075947166155507294935725861149127252367782065819066497101124821349002293929071021760837682845014432720561018228078294949167891761113980186691977135013268709283930429359454250770476594241322901125300850128594780025465538850922145122710563652941599272760274716194331519228425876802856493024728064867533685491782278196654906941280350492965785747751375012085731827502661325216778581369526792852790900815261854669982036434807826814988101241550451708021300368035844186890060459207474632705791308483380516780306534353287137868983975669139585493539943611531958088314902765400536975672295649384650008688562211746817323946032663463388320246156988678080503664266139085026719349258242201080475280448255360760199623090119715854264135486785117811056012164464429031403927930306375281177767726465360683650508186532164464713759728793328713105503463835837096599707990850421111072824516697267077932529600619199519832579951345594985151392319186868805844934260124897284737175967107141301112075977301989210771287651903384289198342314396406837159500464625254120177415065249566265133595457495776654814851251167646747975438305777957569441046201615398698246023534817590486395597750366040073649404934735283662435096432135683596680213686896111159660605202680965373161730597818601018036704493317259683649144261500081062220205720824374363636965120382030656654813300008564925220154893966191730743774080742045439722092991518757558464925856907156034870734726076785655671637532943947062170764906576232757802189330943086162466121393323040782289032196291113113931630219574148072320875823309542554062981502807939803184958520260707461729301731569943118697812698347309165210051333618353218969750972077799478106377468787485616920469306820699251418012987018881836745670388489551811107338487042912042303161412475582727909041516339320862497383059841662624724691612758876395350402338415229921033076761657184030455578999561976617892788734533186914446712250747245880618135366195607428172650233533648757430830665091426274046184325023601145425853706153016647227805959873369875719034946718714399819711541642517326298951209169973666560100912909150791468565422637621872818250323891010023331140981379707566225691568404188378238419053183143703411006825609349546354340809804691823368335808393075581850412381262267642405437603562456402406919754356876260438019865379161404874643581059222394596864097108257879689003465240786432591341465249777828432492778518054196870389124198239651130384810945114711529873543744061390744735827162043396185554692426083196029488038026235061469099161552107782991451097177150066765559313771246505000698224478126621724005157493652683290592852263209483342231484635096543110038796100949995045618465368527714630861814039627311427382005892747957826417727988115391545003955955880102681697369211134723093818891670249557970397733623333673408718627652441988914129576935987544357879671824223871831536952457316546436147823561035921691824810699171617268698473844902349229599236153756270318818245561224857530811343546747129355957397544713053703482060762303362349930491733394077071962348328289602556051468965226843765834044848249333640834834902529607586598979727624145502506785217964437229781385845541039775800305314296518273677986171749298816172295179771498619081646032436719979628535547536794347330218676712371949150109096623429085221656105989836679763157287650127846090164386969956481443074106807018507207435280921979443346375967393514719649085440147877772654566747685063757265089669758777183544467245668383544666324837045799880039314655017154806504587305434963621858425075179656330196895383181227931805686976610021727081135696690480534940355692866246464773348636834075090492844398447117519840027708712656472036832321023878726869833169087224347562000661775130670717126817181246907458961366604511373577488773755014122003534237423986621452050134330673373170226968201353828637581045539063341572751422681746900444042233005667046740461974481611157930244756953772997942462561452926768363457465395139631982775099640903870583763853626280711600419871356381385255029561720563869262718493156714930420248936206734812449505204889418635222908998894244964059752161265313316551853805337051939596635776359651242908909602943621128578006836043633925461099565831572160077584295011485615296614480625373287542589863990433464301513339297117621517236621820920469801855750922301306640511524141310941742093279706654453284195158454344223958578194079120549233383821059561328451331679030327933686378553558889712735160880335181830638016297185906764641735837432179641019531682406684732160940414824385894948587559898092708583052930839281732531791143286524809583814190816871831994102162681027519842711704327551380105059595925066902808058815975170614337405907779543055705105784277017631460417433698844400812048629581488268126448787239750732075290664395971399180219204726254779649876105402278710646888058047256052823642092175684099940261530226973636855624339903011282064400909836700812106108453993948604279446561194262584853088742554815704075691105133446269903898306705877278304400820454352054738654229817943575605519711883182992152473094639347310502557238597258945780211306585893025020260642918115877280094969537388319623644517214660803504666192791872971525960186322121547277613897546354870042575561903370217876445603633875511343080258203954536454523100197469678643361849929862503550357999993906820343618047782654220118526696016160595409088067733988310979678349783728495220125881267934319769751144879312916442636928033436392764550542241382406929963268850457457408216949069017023454199579081082014639647434115662988458977637086876314499255576044221723253708191625101761358476188912451379734272008913449746341314501841689487994366129266092982914104506262377902771238656335767578189028496381050294197448802036227972322786942457508564565308651840665504074867720685140620848618447604466909642813507178703764087051723126091116906917432514269325745790293950557444409104432430110433245617343053241158174695420095120086438125962728396135437816290426992125183226828219378927408438537012436194694512669336241238672065120755201491777101900609781550824197594413648118090207545473989503273567416221280430992174779469308771247816839365537881997592591087811443240893425405046675193213695439070578177542022810965906635919336322722462319283114512481176823594928286530236865952920497052734809534116330457466223682232700059747379134569904112857875585459535385430762092988636390089985938760887146317997783169872441674673791163148782029431769033115333798794622140620190531504902342194988602996877885713829021678309620763335475124268249559576677075682513873241973583187009077077145829011160585572974809824232601046856808734797869085139945729447023365771592209051990594250004885775602803567885006789686942763636295446036271170259843757288716333284437667113172137937687894952718692363957804065678901248616030618789687764594879280591534154214339441293167785585427855534214023750993510588888674645395771741864233992371278487890471117420158350520786807184580064632339063019657111807282506335220547242936659418786382075402738984638424409892210176358707116727793424698126269251306111076039939347885912367220905396820192878002897809142387895464740642316048796660905486702530249853259944560805136074909881947029113959886336318661168739491551573540502621478312229668095034898994120729015097510834590411820221027109769599230790083118464555610165125417247829089657685515171499711107760490996651380072882370021048430993840086756153707413896856601437460429813857292468377117199387866909266494501846849440109160326792686282631760671003578770966246434484542422716830283246962382823464213718787985521603912234631226844498480505159061990916157847932284030201007968141190656466031259332121969893053642367650588571856381886469570262259755569507789969357458877372230836356284128750329878027505479240155817381791295686940409314153836398216524118625785116062218090717307499761795890938162683925396922759335048947198292133757834797754643799728375018752404080840674354298114557706767969573550704382770077561731765117322726100248086960794330971249687714964969193157924803658727119226052374543875425715603468365665529746377445175375159589285407784872562122934893835752608668863999215469081948041200863766373445800982274832575460620607562928247170048750032893851675527409018117585720763316673688038363194339143920138244826622813971960104802182422353917643197651342501885159804970283907473209280091054848662856544273307635378422479180085118477053201736697137760363809594349766738508785131313893394014133487100632216624045634439245650915257102692350635303496381539308212624398583237475403985557975758105258466932963448038062454665583564313368666725313865971001991307391399983506772744347610285584512983543047600707590272452471556893492456132237486435711223790995235979768524122243938964391376683943952380200713643320810386561362569582986268160196785275823870546045666201390151331512829598457347520149195156385042240762064390828740074225787777326106194454787705903451886048858996397344073868574497996235477620612038385771187233446972094971249021695763502357619607218736927767751023693837874184810553436863415630277616368246329228106585926387731346871765388874197524299477137178694841423046832771172864515330042257081588734535595475648587490219690125998916163573436098230286729812718439080333810996634220048262905248324313548845565365543397179364294090461808957395367479407661968361028129121148176537367426318229870820282037369510688570607150528276604127155861528143934372995859615198447964458775512222799237787016588803445760739326750853056546608883443390090561148838749511741062191922598323373993272116180266655966919757035430550735496348018479901816130334093016236014388358928033057580680806899542278754244115368458960674367158187045943348680275206779376109214204809854404289726903312536573485096203008694651357333274534045983486453052119336678126102407683065750095502325497520477776338309892810513584046721202697363284423965939698052177792205296104730172366201358519022685569392899146234143879834360338730204640568320615357316338067680185861537786749833820922157331856265611679328927665230695407093049944492976323248051558970187425346286671001954150098019551708100267785154846543683482485530737703627060279128253062434257177437931157302596012958848153262639379595915470004813531375103077390607017742475198042068029711265236863199144570829776745181628138766150101006425438879036484482794676975237893919671063393603300374296478334195535535579803621190205992319283619842912640932211546891852975331498636141553018674759730932098394056874314353503771855588615359649498335213245352125968099140282725722002458614796686492769521477190724179090696866760710640253255086102750762768956111634595738057285912243625825160235765488793083578520317928688835238643968744071778436894710097495485023248574157455134837553911298977650084512898618227540806134432812614738183449872301861444560253323610736341293600806978742427223348512618300925782618361513559228054952630331709913427551771557662620254891319647927819917171370239529577249507041897373350820684575441347785681849276713157224172518060849534802870357459748791573414960261760579040485530367815551078345020976250106824552801742866427590310646455033530506033836722325349446401577572661606542107838860273176626723460373849125247500059534771188307678854356034813561844006809017699162340135049010859294503378526393136385364804202528170382504704359647665063490837546156309887717004355032645952484218214646979560300343991176296256968461780076389230170015848236923943697961253498954485912093737438328586504792819144184352052837674080376226233612444400046379233719100090358055037123442162239159959665644479227586639898421422581320131522354099534776362263088595964580421557742216122370229159467717995119348187449854417000136779757091523769883844808060464887405326645918255556557476233189238562240909923489199288530488660156366626872588559713548520284205544815243840537312312841600525596059166162226237586313010525798290670039315940316653889700016691967378907125386068022599246878534721159367951752728368611799860324230387993074253627608927625015780729213591263761008871056264280921203300381618463425546398845806506378351904365261152743556021049503404148196528299513798879622844196025687547742233472933499313706228274454504774225601383776471240848485835895136633780126637545016213969934686617856499965477882411033532321187764953636906857220405081244623298535763905915207560545946818797239685136014182895931708110117285577286005691843080513748400835865840287981843922794394674445450590062222904482288951117267441116089534017134307795969580432012169395674205514185327825544872440039421516320224236237447808194262989716942047421482225949476598652653763396171991804573756215966847672174994646968288313511229247288698295077014217927877171031554625214858219027532390278770980856098716809659442782154480094937760986014194112142733232128607988208199927404500677984390116674788838819407186018407237272440999508011563075156142846771946664559332432470560838259920429457313900115223288113842644524794727217370824350865591597648110272700640256740779341463482928108296172297189119440198360202271295922517042735061970849433258867533453981370224018619609988663646377511853907042929509714859165888277243671648008745331975866722625542301732048218843761107347042930403732264654159514681678163906211277557498355682473846328999769187403619348538495962526496301190152869182133850182452380181621415437771447571735491763443500298308394261616970132800010192676216242427235054855038426858108687897650732702522761614147183601755810980968158242958239797369932944372171862937467395190719891067139345815027659276631946383575624581217838079482757212553626922834865461912403220702516810795970221996835554281077445388913139104609163996859606088590197791169118529481609222608684551724924537317059266291378100805792869472836976123150124495339520313843959384709273152889953355475706907038573784373891351661319559494618692580580264410882816028931235675822507210172905982879909510633663280219738423172302686663532812226243846595921700932795766441576718256409571618935044801978603100756556729699097618953448228833368778188585492682890857363200853168888389135069456198189223446535834142511317937140191069856369091173836723962766713875443981155060353219061992097313685428684034087578053891730637076634605031576412827350222453297716137660071399778290814905195934017008258263930510123759316880496289783125901253357211468736435004366360026047396744441863733537568311483354048130639852605505685236723440420230832252752658466233513786272905833607098507712356708383347425656484078634709879000875264715877117975632214370732462463954956106493241006197148184261909549120847826777935167321521013810774862971307311405859951476770790142200448894659842912507951804195816925135916699219426155248472985972465577889278507896311365361638270883214810827612971824561591921578499049478373401702806584608176923901544199030817340426675264993367258733791412488236134070592526482641970165808766394728309970408254064135888669582934471090714393286527869891711215811685426340010985537751105079872284818347522501153975507094252501829306039360293177741495864685857556812108267687648158703318365784800999163779643919722472432121984808288276143983451853658037626921628772501338879173968037302412557815575192627104284918052149660700111954896884629256002872666861472641960302797680852790995606476252787506793675361780292354184453995454955741999552782055173106413586851469969154342978822461741597039862819594861532232531169315215702505371080227802858923619136171832573721036808698344348125513113511868991577660832573101211723336319847794015383723130487044978122846226751830753778043265564318460152548820333584685461812928879699300740014277253357249275247779209316724808350468486860491768848546507514149300644706747986214912516867059754012186207667393631900740698512409270036099366395411864521309664949278586971028384725769298097230213589878828216146999704946773523827547728622416416140800876251345662988796630709888803138890956487337558571484800486902727390469785601156675862533331026934249469944285251643272187637794819497379110760172275409867590646019060157287246609312347446781219021330585661916638170562186327708640805319601214961651579649896767312824477983422967124389105037669236000207188405857733071871279331765429105147448833590539257696625024765270774146405209301732060562828688695666235872553723165757615005426582064973223079061408450193681734140412947445557757538071145406175454319776515812198716824181864842557511311598310042767607106921137591457533931381999578229894180165127804861399954625586679984310478387079691601762435559821973731755907777858813328953531161798862182327163273365296129506744883518266016706013146276340560992568063106759225933069619260192256266062246370774453147409173463230109581988442486747905995371294054128197094111564379235186827839211341272835486034720800945303880339510898552442170603535336715409051735739245883519474785541497462572192134175583094782211897746232443446030480702624432131171358906894982471607452750500817022034176470596022957724989581839594852432865603739248593947538745099058265539979954731297138740496937671764702158733309151151102626271221225332709428860326230942757677375983309556296664608260267311476598779046836586109858046122414681293734279734042037899476214377369269837286173915082085436146801859794220060711028116803829485515485277634211312530878493643348355285410433108302297534009158186987091783773504676954730091400197433583099655629149379117024165630988715359854873123951773580280153872862935669094172697189104142334077035890549196928322554124409808054378994517423579020857678051328627751144296983784508322900114738632912715473607825088098142403609248332438582030396427028115099394893872283851143497780167668721870850500010799642584374938345834924139384680122481585182399471215772500946808911988960482712301372282496430866391809385336099318577324668063411686207431807186341599467338427220993249381893789409755392089685018917173869920595103265822095452115421338558502069135062608462772268730754321297012280236014188456121599454961894619591653934715912636345069906168929616856155951694448548629776404535659550287613052490880410704077108308863551907967577163106487734499394379736377778914485401760730454402537067070332984238773775402796782915405150829639825942859779627212426442532357489550945380954344324849474068463427788745491731604838085662808815610391777031175507311884658514027830493973596903428683144008804427823866624025412215154516817876607723991601438574543397455297989608398740399746743948582487268073743084978768803994113388145994481030795506365323955183917993291413107001776165621816418994123407517255874509361751687702765557687210301661244944774590374484034963125990660827508548252781648152402152532043640368185575224473669120280310543408679780016936709677296967377113681777126460788784136443155260933456192796748664342901384486553037934720865745870640818425017471323820660201721650025201596958130061229195356741400170096715552636787797679051110371738120155292493033436628293235525903955796673366906320478987524766322541002563692126236782297346295814243279584999992188697543008046785162314285815920287958461556141863362151682183752159402206812979342556883685282009810535734642000256523250365872061106301161598772351062305553962192282911650513468882244090354581775016661612586677685931593589020484031819349858445365968087987386376759148834498265916153646070366644654957146499107144861259197348863414027245222099307708177025488369042796582876714590811001020467200810205590348887192832655370258333835056683983610399763090729833318563452290912267221649438693846698084687715491189494052438046036075540169213378990489019894130567194983961138733298576492149249208186436384256285338604922420310737094033984172626091779033474012803148599741712393594278651398133321697685982487447426091690403447408433427965695315865426985327387092061011460934339157547420533118973699904940634412479599975792227436194811015480574407163504085454380716722253481340675219008987542021195671811447950366618141828697212962455973876391890551818584860653611483365113684054418921263966543377880550287551203893805162016791865235512806053868340332027410084963693620744032240664683131798855603341429666940840790183691064788264851891526444217131654023157226825955172368078860566772653631366802751379149249568855007756843578241376975077908843334266030046569364115471914122168194017775359406038049213433999653739757360335558359920207006551228187558590801071824213114512792563285516041938660392073134348148561529020313395778130305450877977680912716100921652101371277263377570881121781698312501915727702791980112073560982085797286537152928926609659536710723115157418944824618865991795978730267927618747469753844285351093515756700701171047715088031769875549924984909805250576509088089130023930157920962798299332930355066057535528937523997787162769344157668345977616562678794112310101872400908323981584382488500092575729653463487653482879712166865537357596714365288628125894746875295181518759431314937741289248411589291982453555788553180038215967196095894736502396418360151290337168147561436230978030819611104107623982282825450747156405557108702068050348267442014861634920651104831547874712498939770090210338659958267018033532980623509590820384980065998294461120598692080771422741504290032514107223492563584567301953262889802523027531017330655303399844315723527498281024583936587954123599122504649443985645497426797476446135038058847451631031550950160632222293497680258453903420734135175914923713647076799477994855243937418415662614402732234238634863247762085784075882665730366149454966590927800534645871111242932163278956257682918244097283904837238215078325532273095357039822573152540202746235952690414545150621638198588716375037998250285864289647388080476235802870462247931130823967256623240954774378518727454126089414763354605188166086538462607208323300114710863180019362598725401134193113991486342506427470075481206894063472437824980989592899939185079979990056839035598342779990933806404021739646882168078663464418835293459259479300780870096384203428504811415875135009789111027000746852933705912506293125607091171208408598189134092525721750845405930034370621391741554595499537026072889207024940630058442395931070239199335825947861587913198202747273310364998588333036614126470724604016406451309899103557901378620547616078060755558083848499622876943302643004512793276894734967401504690899661369275488668591033231241499749113022340131663126310880184147183892786604354642426941197301516496358811737788291626541106357307668669541813874827209304428694920799636258790597954582800957960783270500594078190276856125326334434320021241941181125838959745965760169556036501219800022641134256566249963484441994300989361568228512611319969839572992757756536663826813906073601684441123851569280069572189576434123649291023316217621994396866101403312358675911991756921135025215492618907814384846038338603082925358394978439684631423049986978861329809584923667993872592561397813557564786670801792725744194753006656024140687832439973300686164501724702339897932960425209475820282038577763869246723187497025976882961424223853919080093300686945277877687594793777369815289924277622628359330973005237046894442689639613380071312491955960434647162502962531777046274189437079478845693471545631670481027048485251133077406783555315240951514473393955647404053326857581977234831340560640443393784147322430807577981250796939786690565260403888859450779080685919900160473440129298506206928403901358123587467760709605466650583124668590769352597522069602397101560949087114972451990673271033698170704880293394363455810711612479288100981938272101888315020602382489460383790210666206640149509171777932245235014355158510383630983654792296512952766039119848814875683675129988896264902357701453745785967815027609634949117123505573198030467231909202963010793142834331044193243792175723558869145337853534651871693955358192531121185218118137057769375787087159600440588560258558143626717436344403833663178724867721972506229180685942503217996286685169322770266866101577711542745461031061776322681410305130295614084977645206163740970427603922146521165258006460866251960327741902144911453880219793350200746605400859409784467872227653817006126992067879332890305616555581334880860987297161314863520411288490245230686968030604186728177945968900216572216370408977963281631404310805402141727628965172216807922511121455840915469323231279401043677627770176534498926477967138602866711352707641453593304723761487643083276467331140105013891532984976042070129014322810007980233399334239825605659647077282013764848762443330571363110169908349706375711145974309752024578450332081932107126111630191161202833131872230615690362583277262281997882780199700722999837212990712708081678445258098688461410403341068240759657552182066780407486796718156240801245556157086800154263393730952820997406610566051580650599016909073307738293859952313522868628986677776633955898596910709011177729978283593263454504323415334093422568640353332577897620632295911517378399634562194344945029319648900234364863695878500176550661883206950327312898951799278374701649936192563709367215698607322044040033512814735944457062019760124783279701795240479486950200234143161307134951735580465699307364515448105452165824800520034722150000630999206280298208336709553344076357769857646221947495316428460928958541551484282279996183037883761655119369971864910671566606704880242844619020028347200804730257209749409961271932098395787382219945628544860377712526315262887925532200951482874415372686583429489931714802553135984510795183985840148401669474299369898162668418159158965437366621262342521884836217072517696875921118357857232207468757634122456570662181601331005256660207849180987991390712989509194902204078897137643910811972019495606089510150322444489406517906171208903145848797223045422433033992572482992678803889803030326129656698583912442227342354531106587991253325737315117429410995585110762988281014238000702180964715893578129863950417697802069586798069639385391735580237873605583629393495951780572577392775352522070176239133409117311143705906907682201816225570367787448709235146734840587446814499423824119011106072218565464946392851196683543424313129033540076972401739664550390874207244396392867191349061429491421654731599835970840557030268569103887782243978674493195451742827513639236283738804796158976902462721927867172395158317190775136899438675516044977354466418166149335842238510119063805711864613462769513175993406637431193030086126513578981223871335663967375392561722082712941088670759737203728794368292961465369988704877968230441360836115667046850650065530015786173927188236451719056528945596523778168149046051462743917936475411575120714936835760365031325926853638939966187399920793933292447307090953072569022868679292672943906377047016788177121667087996123444964717584060722297466506888506554908618272797632664182750327907144560570252952587433878953623259042987178551455938210453657222589345777308743178093766828156072665812347953469936870624046703462935183122574777523153074542665215440168432446383905724686684264480435082938749812941049538042607494669570105955767470505121838961907826165129588174395637933221250426451347660444739110463133034482626223969931344822630968763839526677769216350252102747534990553630143525335282414860960961525362073907186687159375486667366233960459813700461908448916941552027937820997215992974531803062762261123188621782395595074393171221759995184577651635534649775732365489431142372546015909717654188043370424005728820781818383115535550015814712582640253177471143458137582282047616763901150375551713622796446744001238707801504275825764206220561418197758791053614123483702050655383664754209181746087149333857933551614152637426248835558897456498062450841863337773408329254124653765161222250160571250811574961596828030970260693641964061462510143418907430398558898656463110204754451951123914581950634461899744274833614441325987729283631882705925725882139885441219197369097556418013260908026715959535496669774599844220900847560375886261282154480941924110108226268576139957849249296223526226220453280036045831605773298590775658337913460377220319923119128843029690417114043492809388168672840650395897546493558875217242136737962578287014561249775237712748666603090054013845833695879835329645806605849038799628628177112425259280045254933850413916848221648540046976883588947973655262161340130289938390762082069764504967361932881294286856168423743301085684119819576934797178953653415312384210585844514332800299271866019538901302128606195596299451639238576351368150020707261170225723075401336616165060553428050156936291045425125339989040237031686760227842685209678977540344744148833986992411168652158506786459403117214817535962800448003081471345374707527551366974180732609168182044316826308945027510127090331015937559871178272096204851770117383101776628515147305459752331926704596192349523377357407619163848089462517160769659014093555965316442290704584378421707078127421881807059625645552597999354110017016183322594474055924931275949335025285098737427309275416490781304031976807640927985066136117531514828347198985784013326875570193192698378179837554396451386996188619984491763123920818336204146657559816896632981080145690924991460468576017342780161096298650033474443512658404526193338028682470285877295586222169123963600004175077529199431281386832292524115492656851710514600757376842658115981145758357942278335844357917538447876439520498978281788562081299017217951542740118910266465641341013737106488785852359395659395646626770668039867500553059945761532860948008787320527408351509879534295889020303476277038081674202322663072702225387589965155950359239913170203692024609556123082034408436530113130116742125099368045208322921514594447933201007359515475578051082201492008908693876626381778840811367939449657755068168507527634063094840658855230995268385224012821312262546229735963689287871007007430012911010542588317464551881317749558847050355437773275242528224879177508735334429810192563399971792866800914273772867845314175025730610886239905234892091592466876485109161390240843848324526940980091719956052782976848101175422821845314157980959805142951042142925258436288077649560035382417436169345582742761439108255575037858247095404345035473225139515724039815202691362483472284511675111622866585636541885879723489132364083179432967185804456236743396648431446838594717818636136619167801553293013322987690694919891332417859013715103783510741230395250990104384007787558443155716482182875430277891926803079217917543601795622550400720160025975361415697735837563522467383939167339021666779964602232141734717929726649378718694516675723479471245583751585973005770057004395674440758439010623389981238412356408252932972379802419658428124907659284438277196093761284461286903763643364020637437375040290856885608948699385569042266661100702509170392813226201434327882501485915731230686319081309712173185448776253416019193468919337097083560899483848122980712877926348505553119057637970206074684090384292561176824923864969443560351008181177006801114368670605771070688268754232882482021673669950334903011963651276676703065129461471097069848130249066861892059239761179434886442243504794332052426455818124170540935676299820116649553069107063720841196598787681834404100096593792700255511183188576882332883418585264827803554540397066215610188952249920534470477407264951355928763463744608664565336154488238262114577224307725101895511956561065364482944140655479126323534526928852875301781269728743068580660094560721670181463327576561641847775476125223376526039988222512489512811905017028432513096872185508738496820381506655288541793604116562282117388678817493145887715320013635932752769166259033979716308728317149797593231338938113288437661425378255450231385876879350126437207838208095014446798579373683076332168989699050063054840859745793855050960799216862653847583948944148710512601357805917343259397387094061637211355918946935913734348710186770336797236667834590902535063294137904275660181751206542277985972838023310876960339845104312184860605071188924529519317104246370502843690157704235413932828392140925337949966553050156392316054143647494219002848109251125765261610755549780043136137147489780491573728031567838415958909589199074276831848821194197780189480207527046939647236217227732878002545911586003469968136598393185238564156365643411536647858633800540980267342519658578365224038170195808060270013691496127996214390657600469258545155090918088560626282121752714608845687069379769887366681785178053834303347130730194991760536312137770173555533886392905921682335442941876439941500022016587389391615502989054891602733796619001676634933819876367598666269673096243789278327031131770404574635475406738929330904814690501963372640472826474249379288767706830316584626108110479537938725021102792298131008094525700688207429522499568127755769880235679124843390847992187999606742930955640060465038542953180433104414935834375505155332730927104371525330716649877867179809564948786558723009673327035427282411294436595848949170016103081918688946774103061421742863887652777425318940053365094977003284530999350732617239812833431595654880596691631713824779740624723651787241060088448189100151471607939488908921523652331038404464782877239525260113255717744586037150204278385647642005254690648928222867797724181134939070662252085663214177447516797176126836430184427290766451180512809346569376933166581798572892341719420585035589142986373469501677809295360164348395698718403186981089682518741161531114821699934304242263959233078138702874165029172055736380553038893879830607870547245550523763226975813149170376375831167796742926734663511817021296020143736509637503573908868029857266359451873662127276239572971700221639597794929580883930423537157919261490284348695211995656848301640235133565551671779710139026299355782360376978198336031625568089350207474201714019608329603552133948440220957394145757314880149015885498234575693349146095595400171223003918347282662903350971968759702264850434737418985674487377136605617645233565737592345215093315643236905892124272751554689807297894622397014880948007946165046113624871574991583370944121730242875518377524088678942768422688234349418739799834939511365540978902420594357211399024170675994989691101582264173708276171008381682424205022722863872971319738578600909206895807947482561908794951682825965495701190842344948135484046495479742027586567558114880479304648564170033632265966355073048873518085466991225597730672968301028916595458130928004651666275152232883129036092755341856302628549146333254997537103208856564331139622054490554295099138367447896807723473676152052458062577774647367620678089343839025199854052679849625622524721570915678175519055185717668764925125014514522480076697873504713491025008147715504455187987428824173791378956025979687276572516781464239911657342199815913483921305482297027475780018928687613771500282993334528073045826033774508433689892164460451026194698629703058035197639634753355304209156941305234772353506766201993646889168958321036879900527743918566401641366047132936487298439015701073891229649347050082882705192294670976876750797182979169526958273612036656655959452886114019280807428139814606576568740727767609184912942576249967180261525663475354945387630091131306055307979775501705546723528662257038455956625715062635006936065864593361929905059250069682323247496459052351262413339342227164828197926762015066271815305716550796566122257239149344877228744708571141465500809996746899395840771965019213424065729530414976078862670952989339710947539961918942829976299341606867536203413441839134209255604154886297753072019555529729852666076358886084028844180989864455031453209882383460902506934474968055348995623747352132609312066548982103613963032789927030598644535211452950758414670238022906167236735409105929686855067217172484800391225291256754456303842288897549674293173322296357190856276539693539965681642091540322174987798133205570725952148170675595190296789249189431462458574563489336613655078118824925344904592346135063468028354455901315552982123619617487534151645956781911331152601275867110691692369421291878357795793558488953048413224482366713926943236783630187481524987266693186992355586082439045837391998391202883520157819053650614089421517334127856660421506077375209715206173163023981817604990195736276539571386320377037626481252493622808973076473275201410797417572128724849210972698262975513854222416203424759652316750149630615035378406378835890126168666892294091425141509998303477313505920684998576395684966554920160533268476384796427631062265107195654559952496669231740435073755568929862912703012122114798004290019801036823370598243455466172711924517444497923338077765121944034104401097645757150447496829783765872201703026712135599916766712390163349047947338536465449599425358649417775469997695120582197186427925034562236763581322232876432886021944926973934275704606649889663761369874926015698549122867383932242270065561802616120608169486311249086967494869910386911701863953083923659211710178649941639873345441513492309100407282018234902624329492784929506802956941536086456985214661508970298905314479355569255072228487066550133802546821971338767231595132922426997790772104218861751835502875091243409442928104850444353563927651792294638706012050548026757096668759926376878840029099160886613522384714427751716543452610236720023898969152041956062865211173269423260223183958161443816085302954878701344816269866281613320515061342157909433749370097120307143165943158530737547915339681761158882233553181949613259052231543462601903183257237719762232190764532437428610441068703843571019743953221204328170847957598330166000370565397351235223416136772935209126525328967217319201214042775247232394466661931819986342721800006090365326993941777991903350253980580331910184885912659493763590499595120412313426424033911807037796926607023553183527888809887355838092041677604033916556278356780727884805007730666626896743697443477678177863745188986698117012595490656472936563749732240068033433695289181664956318894321110926510351378629247539121611261562809856262761472012090307627402688001301065283771176704132600688307452160279293255285928779791081620933667827107010233058521911340214104842231978243045265744959212092272139741886232055003006041193937467660424423781149956105512133454139518876588525566042077192781050649330176211813284667906525430985457308160459478687860425868638463238918091786912135456520201121853182355604231496935142888724073816251041219502664509792194126121020197673098314425188262901857721821175001744973603023999109846522420886270617328188191393444497179641525939007769540093520445779535751057466809285147792036191380082505842027130141676662361066471097774228202448607694045208554137436476062004832881834582166417576657039727034639495956321864955544662732113851324716212071899909277143241712130254572092357706572870388991660919642919687342320338622453466046081237706681773884853205161567698750253251166228370194477204487987316763945300554924271133738977656181536307160539712825093476458137871857438692139894109302445636133652240847578028313276792740023504645249652078221895196760984936050307502863289151533636144730796035954330561629255615478170926035092588051088163261225648798269183482854164146186528114015429510696913917914529201499930901593270693374183171023120117709976440006072593995449410600675263834334057652169691831713027563461612047919778545630823507223761719542486593682680849672158073321900650267633713774354085533118123821326766694093712098684029715273019764952567102651168362282069997560198361571630188923815976271593092139965442039050289170789808754980357732298638302023989341791498532155636410376880429966210098753883520159598834645376958465728887254923072058579839180733042763694319870004653151656771744150607516384359770824234055196059442032468387309490760836281091957323869294696007450296455126963832418876471741490838804748982416404724862392480536772311881145572210763495062118540242219980008006961800178313964917896475119680165884487347481505444635588963775240452099998418463031979040421997967815450108086571267151238495592492410154520631869753605359458703955522370312282807186283331872462775216728207949986578968591717832493787241073854127981698095534249549940838154511354250845245267319006893773949586373999951322300120803454295671647373236587697895419979890939728709644081972536136788385772245843879535361019783663656186356467416217250433931747462999980860005363069667268439654481345504658751995174001449421830752909584522850516500687828371348739482257253463377126175872898367305640410824995206906358862830677863002021120725340365697293108436368484788626829983933385326454507043708852379472205927993061628107507520568498592586928070884527017710919211570225049667668383545347190439077225765244118338274350591409404933133991853170350965099625739232444764579827180418159753037068446170187094626593995364623276632259530064440539485192780900753397844084038265285465087017815669679343593754162010400753308115735186708104226647681258145504890277640563761392848232158496426359887211876201285755146012032978038699998895112296854778513163102942028290612110897826786484308607735406561844970370162503330949571573908330092059165120088081652137658012923151467150271510277840476831551193922482322584524037607331622236899813190818937102294136521008114343218972968193499155930667087138036199080462238117297626238091465755269485586450360420921969069539406611911390703080689343522891030440064587371411938169334886374943221996860240482604662390162297220349842255498525431498471443749448920689083693694228934462355421184763952526653516138748271523350482949782428414867258784596287679103723948844099192988012483894553465818427554938517308716429909978594804494200767697627136258179868030448845074541392122705123058679887646403113129549900193524166009936381964595114436785331785812437623288178447625473499126214064751072193093373441705496278303638680569663605556021866699829580713068110097270590879487548926945280012707775077508332411407401973838762944340789465553578000637652310540459058187805798497375507538684218636807174479859365193034516765415287320237909995257002617874236566384122858161317732321552401005502032625501085114503581774794225412493232511849387668458593682184938365901642478505327755467477289127514735788216206463186928494563725815826177257926511638603232096572429663441696745388534979786264215364239438109617228073735492293296451306526062439998083992141182431764032447630072895876769315371449811312330389555577914868022389673336110664204391053994996757808798286039698721837443063890439358192597794605005825476088376532033602319701817977223523683685626726110972082448814179654993752683972608161494818963081038789211437823071171745291165719211298059500104589973646853187620654597340306849283773196319745654134881331727989531929567175701846557070654750051480668164322225043045579678723389238822801191933246362340821580041736222942983137234759674443536054602212157353194177057007460590239362189033118808080050972553906195271809490694532536913604085380215598887452803230714750712788758806328800784850936500540791059325324780151987837333795486666745470860885110014997766494209756796151191024456010291323778505245730883898221018715923016280564169117682324634012532487124544610597559237841056871971267177943023830444199882747697861222612251720274199469444295694974184364550582498409777933197233168304934827760410629874329368135800350958156309782884887871238256013589176040551235939386445902405831944405380137966841433605293275574482006035672452251110170732245328545877466797640462173528489603394309804726992174822286302540515752437129047585388688641413136193432868095499644788361419303929411651964031024889749035224205946099545851307725314507661079393304375817860998493319214934499249568889295009776021223862285888517474517128148636971546552626656010936634167689249826696311101980294736749355755717250619817325325771111885587125331839888615839405986463478505718486588542344940540418196779913715980705123102770859419671588228199885076831607890013507920582835553184037261855569379670201794305121388216771734842685831299463611233662052096371292958774919879276066302896060436976197456241784463628985019522041485149285101222012697574169361432504691953267308982330525894399622323407158933109511479657829340633957615956692279634453996248169942375708972609522599867421085328832399815514953242183372416543271045937805830844352702237976170912507848365166572964493125760320331942725693627287481246498250825065192118221236512046215354545919665187393874313410840434717732710651969812613807722922693057519558147198494508178201726320232032764977143502681628605104634521054521721378588310589496937818699178165119565310215277469021635520696127260149901291623631209884455394555082456260805608822921110865777275821236455360602158505032511749474765577343605682248664032424949493311907403884404052987750722926670553308607878967631329189294844025211301869181211662516774107836410857672043811474723261106041201467898346217600811427245759808447487920792165519284839073545193034124907744083661594770909990810446854686877004911903983463025982564659345118405152744900716724042421353336171257711337542752494354821049961156296070394452041318086215728872644824585616296336130511989393218400284318231258659115094886565061904558620100368218265357761320843197510553783552190652218619726533049772589174702894103020514368544560117607740405068846154331766698075604979748405286847933873034271013745578146505114636980063928559514525236268614401462324461543475657592796593919771086263524906662459328746795003018910815699003743339672294925903361878683241054221029937511582483138224529276190186201768050604584665085051714391268651156382233203273547074158293847043264242326959746610166070201366659957921419740994166090387033901361352269980192580974142855007851710982097243372498750468138930173063483316913849257179639225392637249304432831633021266255412205752391324684520119130504537844266346944670328963394659003972341214088964177189455121126475503893174014358110324632603840054326207090190813562785422789769661554681947670413222521573064384975496506567724219168634041877416537630622414687293142436287072032190506306000773532008030996007056367406184780232330384773371855443331452685905518904032332846067239785629336970357855798903282499562840280621652368894433810301985583611718063523305565483322252076658794710526695874452770413046417324190724356047081196845104868723333198328617074254919717815786014434157411159405023869594496543337630350214124060611670333130080944291611498610239662538833104264169033154556498089822399209510558498073718289790166498792698518227392724035606485297410064509596450554412147486143157996297379420167173057021311469520988361191405042442775586847943868836126707834013286979054091454990327987500861347051603433392890239514219430355721524711178513272785177672279567546286625368350546448730977526022188243172150376361450591894902332504733447558294855208274740467535633170070760848979560071060746784810034381635329480560711088340787920487175730129406883129902981010541762982140172162222975068290431569000206991208548632100744045892098588521920225179685276824339959668788951856055426440848033730712124588155753240893931792324282489575868580700337641032933294114788526101288734771656906107525366139098676809912955829454616497346427485457287616772539876756305452594321378678148321178355102309056901825228751732643202636275694043272392596537651858175677155148030131833971894901866850391921300055998440951942584169654667431948137444278785974437597161322116255342256317961002644537153525528211787525422986076826108274098629611418644359360713538177902527681529382932886654615937035890079141373539363357064380289029245809105337282161070534434275071744216017067973364773552593075055002870208101775167613139540690698784517530490617330034710352335749446988602610460534774170899728920465927481905872374953270712300370844758572051710374258819890508642447114619520224788523792431211730869170006334662805294828684203330964627508590880969008641374631709667183663125859878199959036568448294355019905136206526789256981463673149639138495887489182324996528414688293757634772952253484060845949869579866750283089418640859332348764003255902197563108596898265072681076976932777090213979798219113771169419148139401739210000486902443605143210399097821519245759877883469033773272311248777427348422647026203605193511690863609948637990212589022927501671451624501883452433508181105008838785940049918483439536709681356455230949196633220823614898926653823354549071851694209588755450029481465966891680067491011657747323399295267727850521400124466815880295571487122350483729170358735669823449209471152819785535049805541907632353728055782375781320105092400471102757150141828459560138703447639864241473627347658849315938702852232565495952656154918406281533604337503515487193284943668247232587755351923016317306928618560543738154883556414629335654911362197648442501468618876842740756756848349829591695697692448523998446329971829837633463622946568491546112276516323778694524090515215363157402088139095053797000025569044282282773624555172148788692935631004368583254746610272756021421184507944999336322392924606710394663150816919814713424024516141517026775035783220051070522486780975759984541196087290605441114416245584559364315190599025382455136476023226672837064898171721693154800937178343233845229092288352669044659720441021117276247114930260912712955427440945568378706836194016534184507781238105356852970526455751571375550737202167900379632562616226032816038484926126202764265426077269862747454617844006911790075231440028249171867578995182480039085098601093497630798200926890606149016171239297734275689427710779813095000317489256978036596446109958281309404389913074144708876804040306728703722313694867355150085072457144739024332755869661536987040241595704612660609518045068951590215041922200381599116392629672390964174286329377073234366690401963512440106152876386180617486358154045623759150697826012043401011854894123494667718157355051620937901691415743282504043717633172460628757910845434526496236803601109893154939642587459016950998270974157353624654944895437313811262456506212237208989370949589076697719212461634035893260163123038141973103206898339008670367853853125612133304785714264790707563734939801823584801376853618891080777857375343882557208901096632797712095636010954131776172772421758043942632478926302760744581099495142984627095903862385427853822982049727647967206230236718954119028052652813504996085602441144461946971845148323006084153617722783508554024201242352020203891409779875706146407987993170649557079819875440425532759862687569945507074994921146010852874913116288968841710596579002827019828681057175984200465402645385973933394907704749675705605298946136453231908814058281989294635799646621028115749010213898666052664775202942080110299201530291722595812330785261275390681924936444027544576940730708025777392063517211755655973995542502001445757332941995372000407656953575885997346664163286241993993534040643050622875107619123681318089316236216405906739058892355133924726610595803562486986356319424583411350012450031914780226697129584793263561699758602287064809163955031630188362578345697974162820249119064284942957115510841163415204543853959576924119969374878922432972902700991360305280432944224289916273976398283095408515760657979321070170043423066234857160963975675488572008774823081752231765146317586338665736417281908459367373853965935917634020187508859468908866470904411361687509196552367926128700803514375573064328641961163131131816950608251584288670909397868090270720630356234551243408432015794112187267277180733681826277371970226076301978903415073521624965168768651541594876077016164847506719595523473194882220357933489290550773727018791268032858152010159035971083717078745189228517365555736118997255536948866658304389386471118092423075930577433856049822389792380465910183360376210605592842019480002778883081526354337074715269383297084927649302806754967451822675394025788484637980278215218188700205965809849471024638799527636861103552798190677174456352047077269725552387131297287552301639601750411480001833496167154700643035299996935868566415376711599606807880732368508130735255288858471421323819852715881040798083835142193020906244859954162219935280098042327213387330433286677707038260706445628989459493455631385415327375486015035439696461954622983700024091505444316598596627669728506751544774351911583692089337261216734463596071844440934610286116378657609601617398661276968572523931198559870818196236921578511324306486477746303820981680010437838547696686891252297315279565042250364946705921623051955603154035611730784825624324386174943176419031222290000735113341510150223872600104833474820224637417934254453736485449092781809183887361248077284180852265801773953524432777653527867413517537604566528155694203477362762288876979960156578802901521195027845582412612288615778838928071030214429087772969596784197938100671234339720324628782969598080066453309300913843344185364395500326849351556819412198649163548835306368068496754836988105590918340502530452772171335467794976031121968956140854947979695218450311450868951176492106540823984688011711755078429474338302386602679412385332388395014066706632629322698988127343064174506920642802562243440537215776148558880714588349196583120800376297154478713709916966998815810229823416546166958456192157248590475631972902597998261665998985739312990276010962202661816378544874154646664181005602231921877150074713412722014700550234105058171207508622719278636760427060339635806974550619430827789967366662572522535315759943389771323051714801406247588349681232230802337021618515554554918785306756520935911779627476580634912380109446535060222996777578235039841696496329466817013841792683455976057798161263031882451833916619311319792748051518304494291312835901060314499190553830576354201970454381262365183449507437013589846657489101496733769260973664984328126344375369606641124286801043908950323866187755084563050208149883615771362115742652569787124425819434810409271126285005848286151727873808616881651966391947420991652571616825979052357914782668078977956639210870758700701802249159155349670896988918489604763676342549792645957375548172859984455174461301780819260966228555318044286762624955880450944122045621442917378620026596772918618233778671580866468192099658491161486879917301976855551281890960451263168851688312721016964431680439789644106634750043581435491526576114783756577602878570895007485939689714753968442269845632703635841031484771209351959352791758552260442672615294906422363117234119210889840049716977075884127926951113706042572005615935320872675205352068570814567426541755146405549436279764226470261170727399725864098034033446913964266015732078220340888336939772679063654700713359443553288901952960154640205275989406347185328538778513612828804891143252946242058996863623407088140021969341079895986206122299644196997924332597259136342963972229682860074971468067289252590977957548113727112163229857993281954854756078943396552135431823493064954295503648266540344263309863001468241780032931584763577845341172276786145424857105089355165118340668441987820879210976139076512096948830911705361429880809208223312248440454567488946000757666902818443628731674653717555173257000049449612289656609258196978581658763702578916213797279043729322249971277965881022689396584282089676307473212178179039691582632114158185076621618490924413446185027334936121034897445394303805131583318806180448796227663190362234383936757267013391869844852828638610661244468858730619475553946684315066688487667263396015863823448726066474828947974014179723090590995447704806086563917434949439229288073842983674280673091826552815293291543268142969295713642794722246444942357128144334894072504993147133200893690868908549962660774096471105493281379571422278417127967830769937453278978902161332782569649559368389235584849064840738325992091392716992757116020044623143231743632960044891957401291894558026513534165007714353196258494116735729902549752020192213702718988102687921182206135495906444278499818757441306105218440003090711983772913692676302360747276032075293558250450245183867755852278310747544499629325034587532395989611965966757696318545700314999293652972944645218525731675334806498833369166175092496490530664111369638120262726718077022152281072249105280756964808948199811969733075104948888791138118416030677241423652878441000121866432581887843266030750610439314629970228171039957016273161131169683275277840482807937784308309785446493429524473947807297826958515050675213215583015362399050580530976106397300090793814820066035232307509458595308876605053035097273897377919628453576349329570955838124479056812173911834955788050066565170252838598316868524330428013770710363915262803459682451607971187572135980690757289733364972842494501990982766348923237010874377746284455163215863744929639054101049754108079290420365911051242190369656072310002525347618160057485532239456271262128365579804192859600886526367790033134424601852686076855730200995920015997312731927445128216400820253370017128800517976546071681447548205505332152215245906082765798600662930794791366088042079873821056715225355854383060122351734918603322426555287500990134509641297813369943461040297169743647815515405812456927198680911370637793045855939028244368869507561733142523744535468419913212960194363397192853783933490992938916330455278663544376594261274285819971052041802732054219578075853588288016933757229695252689531900399956390400873828109103388608738639254261310585780904953036227841265143688032336070570305943762254831712285928814904426577035849188401627146385080570041795310000701243686841568880114014654547844864303287969243790745092133884605345169118096694557878260919617932950782230395325427191541304418718206713246766340424565104263773386233044299250946738242401293462694702570958937359209957675087815018625492190355520377128516439315340760393636785849705097243838556610344760192357170246879584225140185152240010672190262369136395282373858654404486319222540018879927916331954415750386956435396556665086161762225680296849324228557859466408298576072642125202257858119068899743525072709421450850791737133138560378332316297361813382608894149713985195697325443702532520293752511906269526008127444383269014964065869451703410849209228568814955835848373865970742087613441414022855211005844869115498258658376016217156124033841517370147623483306348625131790732615506975767610757368556963213859024857355286588782206540996661639236205222782311541472800291763740611375866071480023367501713309434518131622515591448578678131510129786296812048898562123878383606026951151673569925012817693497023581027940159891467346918125603778227625124531816352148652675923385908198949104488006131610811403713114685404494284509968308708555285192671541834104255764617683908545193045812665836120166955762883198998474046998549912259272807045666136153797971126484269160908581240068748998745715034872037054209389272411966773478716044152543983179468028712735096769701610202097002217242021906539127120188097817570381462118332804343222274815773465949426152304221498558023182206100821505643812349839448761614284657485674870600453777400243315917583943854695653415122081386782350180219151357777166745219692022067671642686750644571965509068547568025596504704850769004408632393924000843987704420682389079835654867158941522691944208614016128340966418906711083364138289062305197620186716970405288335688350389417497046506379734296240855889015313713230084952034905641668255603457978182504078962586320372757083442179067114843194410888535870752621371929345833697181585109774611924845596932469629529257649470762893913726352678711293858778236274438466552601513715547344982382764094559170578843173848934404347258023779851167705022843528973122086761857638136520395660222536637370436542376160843730334225353196791607688977338106255372086811426176270900709181210959224274071952269230762253562783265610363746732890973896370399031491583712441095465236482718336830418187997951807853342956726131571368509450547085334744340987908122477158358873309477312663387300620000449335566508299884640626219820273192964731769033849662872755516973132574319689579958834516542660094374762126975274662489549017378036703557284546171327767671761105692728888889535881909261233656920259018371608820345696216295647120200880505695305471574733564132277018419875537029391414964833100487551680843768120826021567859937533110854060206324654628684759879182569636310231344358896146682481042824222755664653423482135348733562550424363675939661259167964557411907078715414259363452294538238324191987730562403303296053884722906665882308132699864493729016925870216804906423122494182545982061784087170434459486527530152349966699133660356757142238369136267704852968541978781226966888134839649752337828940400790023335390571858639094139372434053087626981712899215945937828470122770798790760691029269960911528740468093870809385576474309020974822394643557490472706800463753509581411366244163057052845694554268326055577098071501014915914347244222949760574997737623514937151237620894307582562084161343136744837401712945857191496369936612766228235797528091692505069773231267737261635667941098882320282704312638262288691014209166351676681103896494974155777382504851886859355580993170505604223447911988216862754344533884767204270042770112854713428097350832024535906700229089971543159420814590237467220953290015050159046088805550926940146837714907154106059611285515503247934108164686099689013192654905364187694268203582966812120017957037835007450250385994406111926675621273503406741764451190434047185947924338380520792476019315497599007465009174885391779891703141086866222683381792999703937131621451868853439822148452272308691352266544837025326136724733342347411590800997513468475495018353463131978595230384420018316261806869727253640500647729313214313945114509595234592657185236450605307579200374148905625019540903502201541243943700790177784028034892211854878365954439761778719052226464071687937020363705671657417456083325307510715313460098437574234016384956669132835876312000179576683039377548382452107332933080309214048865554503181463975020688275776627149790875292303821158287827154680457614632592863993350633651779145122008465807235767700561965001206621487724183597616530399790350099407575595864785461279200285815381343332404463373090728409661235129819139210808389705068279945275820903457353807654881296907666435889201969197106473560755123255863342682336983519765219652315700525266015667977097278946970965843666305852662272207135622628623486312951922541171587116415035526056767777166092798464828590918240496575371312006017110760697302720131537562962802343285303672297866933895691333324503095446698371881845310635009564771929052472702930800567133723731233042530450489634253842548115209408697877691604123990247141150758869792606189304488806071780292046747697591650401760357821220255660619608187780229197249830697673205826442084985489787569528431731118295507693694192503474343735153427369313643614778563240541631612799961511031779479745203910819656722909214483806156979897948934448675473650536902508579234416147869944210126296393292287361252551082133394383235346911457433000073049576299165058647060391474597660604039786593869323618119354371309580649808069855663506760812842132555665102882836569500541633216148911991722469117757316571594179028797423643258625269192855771599533123791770817644455598731394103551645426433365339909398961277744835222191785354894207952353925617737601346117419831131705117149948172360938782031848389608014907130315763280259110696675443093618527943851232177323671880247714717453493494511323001223714236652115515383134208177920708610428509030779112677341640587958391363299728697309477483323953649467204691869443633858373659063036331275146235887383444032959273399907065982874350136839736346541755312540950398590962759377952861301555444098910283391223047556418243536398965770781719125585627150319238989993493843130868455969902086598180134219288367823107003316147148731314236840299323339487968405038757242210645859415094850943004381661072268871511460965412624955690203117001277776042646802695787976364849286597908026554445086546214540640067601238787014933136220453524148839983459194087055843640034248344584312805958500111858764892576906468014523698510943982858656557961633752934405097348388292811732856320117482415945972054556772440517975312220004322066234285176291799336268651563043241681930231459752257612393076034393186155744389484831992868082993100488483261842342323835057060218952744088011980186476954384910010803208793411999076243401476652318596125655402329372164364185881552163389671528441757324992109068957369067768926297675474641708947431128584271372623106661234123151686498864906006932194671663032593207096604560044750923184051530985919159268208950168922908742051120007064952048002426388709678820908138725622325655615347238167893159272108286597842581239350074454570318175906703840341065773793391755309065086935485660512745914742502284012198567934495722861705414457320345358956757822653638662453707674145268300536455693564633889757589606966889985001217054357397835238805910007026677037839832393926353672763942858110971110423582640517073407206681115977038954887366060672510156750664815787237060426005591911250264574443400957781474970474193504519170490756709159729546018558653390482984161717876081909895432232305841470171683249564905272627663529369487772986105771685971595167557959738767847982896924654355308722469770194339047158397911124843918145270106166063910420354762751026204062546843377552529132833021649009410990906966543429698695498733308725799372738673888079458146419449858974033944386568750933715630287038375145655385656826411247660954893503777437332902046531476753639707341242628098144715500740804657990318944924830260250770749903305310296625485140579982720732570450038616896708129716050713932358926529213058886250065827087666089839771385704564281437594081684703355443122285851844491457612383443225544365225420518021256957731794981000740781144729452975594525660191810666680326150736079907013121249547611490556458604532427797481391064546896137805593939361882285137457351242810124673241321766559568057456756273996730323837261526164535386955658915313858878734687499634400685927741862907318105466948318655924441463236672644081965121280921120454613913634820575772697944033529381068180539477061154266329584703062365829950988277417344714860200425068407375868593238560217462037268180006551286247444587967083791319692401114335727077718789561584249233421165786129580383211060061453599124952232845403549009655875064881253463336606884096572790595165790512956971318409527717084565778376972589029176907479946228470009045295094612192071065424952980836943231319778439929586920810353330111297816879025288254936035611926507983463456814744714555167617083175135476997767813264534403536615143402146705963608275136345849819941360392598849102690082075268074651633871333643261386236583074400391806912428191726964293209177045989027129952413033434421828391254329414990855698331247776980568654383648498768768563793363699527292092896994219732677215066706877561466630615154764023666333667225367426874830797213882558080241922059635149489872201887129710218780585993109841449335764424777946009282286844028676980003586105910673354333097124453127294783169123573621685311862551877891084964447130900322492701217505736416450702530266972340918074047621320559305306222406606898655514298340546624354002378108061525021885920000243507142693118826956277139894835782689160211700059608403467217375364158740258692493995253274066878045044037007051993611964721113388992550868812400961950058466606851072270694345605191562620733713844118823376441745724848142960776893310821389833573277536233585866926344787387029488668531882905595260099844741371837511492705405637186887092359736647333282344332788272826708951979681436853287857426118399925715515250387316266020969619153847463252698448359471045854255615486251563700293507851911952948134357739020823321197102307352136691385970391716228537112093966125529841834727645807033986497139593299471920234650961151469683456711809877681623167565760754116676184014693400529527049852054057500791469588885962087355635018334905937455506422969128727333318447047770542186706805202867768776693334936296071009638156416637621844730921327898967666566657798121070859362970935012427705502642262263278738561346589847212124242143243454411928402013023516937957899302100079317225810888251943821164291412088849290795727114582986344972460886192961125522615065892868255538916482758953829937979790673993828922128159689370412175489178439285006828909259276965914391114011040518352699119023930281164002522416858305090943018702587197905911519953383912429101365580043883276352796033947282543936191967054258785532820273499137897420241620645694308538031023066920881497995006423486798531134750263660180817457175118931239726540845738372216771771526818937469482202898754224818030233369628614747010180193163172306702746624798449581682002194575190243021868274905302743132223806993090107387966427572299411487565421024910046562035596069986777482073642059539630937243164307015325232543745272130003744474613184846722786177221596518989981783310802971460840279636122688832795796354684671382992327755667623619599248285664232483228607720684134683432608117690524813011342998521563411321685182100882993530827196929336659074641895711508151296739748368110442055983467345813101105989114776541578611283080071209475912516917563388134690164450875663812343493283718787371365538661459239127433267475806246362469362423931554026214540680102941487413759513211969781727788517220464553082807969703276965640559543227789523441627011216099002837607457685769791694321371411842713025010896112585487919365877109632931630768392389228131903066857078838201773210351293645426300941796318147388628880738274021620513810235902467978729906158802077606629838616237718103193292862533768019339157244317876974305081524730703131711480185907757591849184907472509594351918982835973073642501901330201710179672604140327132638495320954777361658736091767653009301765906389270867275527123924246542362676446947164778511205429480725980206145408010593512025725314541521006646574020002497799412224243344089641506279454810880136389309315848917827208871657575091829474493541335184001229349236050598631867405019816048115588495269343586783215624171443485701072667915729663620617451468329447342783009401481528750497961225830971469264169356509100027327927243019640634158896370234389326601618564712471223757718896817851620825546178679121442794660177363094868554992661995351870921127634438228283506543370959739875378417869321031475367034489966210430743082472149796841440321905572670296782699705998099729851230124587419393696743095131611097616840175330483445101070866218591843445984262263486329355964240505881144922412566981968268988227325329046980783132101656588719499400279912512999329136927067160145501794439182802786711604946811814708224902596926458114931864386825035805707052795764535553925037388919683284834879037229705997670217173545846833046897522567188785458259032994310788225673672647430063461104351550005008566751956055369133776679687811818485548299021369519054313661899015427561678475281983758797093622791708728692998260183451461444189138416718489167534913512007277883019841114238581552725449591741599045428773744923445434178054813737537159778311154732906861585055686358436291771045138638699945123853081485177792806374781136996685282893630574416743931942280071182913480755613284247955905542452445385901727508817130295495734833462447790302671489737867930201993116004294127953755194342103801219799882924281119776413602372290564026943097789137483473996366612028751650823633894763080932621006874645078359317176734442446559410847527480852360911592940251543499968269842138981542427405999758816761612246514318216796091212510454826172411350323046861894717590479071955483274069425759651955083593057160271873975147281402580967770667990314553195688020907041125367873525107815185749525436373950186656477724637038815087079791789869859688891600529552561676350121809973283865415139038870352619886334813046631519493333772154204405041335176820032288917029862613781231009043196329182552692900734401855610611595016407493293529964438925393325932733311026205336371786922243688002579777691355013283362568346574679952901647127091816541462549060232482541738017454274049087597326857979414985701328732231647769080051022107293779192381233192832548738216658665118314251692645427431748141284764604100564586995638744578930028037458391197369017126708657128873351182408306045381911979772839541616166248854328936122069937517501974554317665474814870320297974616005372805450228694708075803420167515175948536362182142584302050000728494388796363827868991132879741587823881218022343047767817039441715521795569234496358701490670687767345256092288320396264699875830616794028985875601795387201927817380456226599590773746376963665943377014057187908128070118652606406841588405784023400529997230857688407585581832319150439333923085547931535918189888919142268219508642392150841799837160394818537030722653765586420459687950580335716949764313115954154534361000639424102835250737191449544117234824311350553340545686959912466719792351446558381623365962234484829783048172274288535589973887819883363621690888709248337041339725511836911744505381499711223551338165278037079371633421726135269485725067795634883282019921755736348797562712741609019318890389889779035769338356469862560985150771004258804761976145640615566681402172866082942274520690602779370789963734196384778220791381477399732533614909920496266995597779493497752032630979769377526913928229117421973773137074565063331142759119204378994860064817040094219640362881825787891282282672916429290602429156093687344645637596255615604255367317468455846417185675742694149284187762559801794028817240557328692007247499477599638608606628146813753406901243618375773418232378176429002434619335677256593205598935943916208645732383123387236512100763742613023347305606886889279801139452855203401250287511933535766407566895683181023347831342867599121541488578068344443444391892377321146774031494743790622071315833258390894785557309366183407297501890730877789357803413311422121659755949570661533502498131989800993136437752575934720681195743935208633772013208974553546679188183966140172525790669569663204347411838977429136169204147383387235638099404785616114465825211776528535006641453943504934037083715600623410575773825004484154081357794505592752071664726663762458287801563896849143362124310652917619179294733348060737990000892131944154632392531459109545292792277887205804119691683204338478685913541050994836869469575930901146306825974890110288185308552574820740871984750117080568848492803518483697320832066838523783838760120336041898244611215087926779044878874601604374126185337694705185301013247414117376728525176231115753421016139681886829914442024549306747429607400210718057374773489633798570489464324256800413579195499580698037935189292405012829800089081357633389348340064093977251979012859226130041463832564845009179824554715588098180027179102919937390482312647332942362994543543160955073347109880044905251552462777727651515652374063121928301808370426022849717894916463157271647127940165866739796678526472145932445589181099099036750759401162820108916866000243505089403651422329952504101010431178404658202772721075244147709912742799191863432621923006293115025623424225060537925683957202066231910748843570092167352219446991722301642442996470719044943902663637637368389803175075480785601904797992541497314460151295262298140739377794252803734622385976448386969071249099490357507951106953923241057139187782935868981184633856480545681005555020252483691002028212440464971563260652830069638905085868129478713094968157651739161473644376363394477467168723721253051143865987314204902491986716817337970666236289614576730660564918036720247834780764294743431515996777334457169069502187771073037980385586012678029560378879818177073930288948340344926047040554180527346424157746582326301440396275644684914213337443037813837197441941713423195209743847562158552326369007729489660586867945969947920782787121808741098275301559528196879880664732561234825731238607333777488682435003837563791379975022867243690778124192362525160288568521031424049111905531758329382299472307956314921123665382400717755842988620996050166169672697602553450569222464935018773069653479045575609174272536721209048495318809295949221939601648459841670633330862723111507316126206527751545314730297937017678827122330729228323278013001983123580508278584234883293810592273949747977725595639119495896874734792975033745698486058865102905334972811216548637267316116961031023395343555317053986980904625997077633472275240092606905573422228979623328737863342272985472156278999374146095527142075446082960706208495055492268301506054643648454774938703853908851814305066888399854842316158781382217412434230209369095792078395946504092766753397830030884495717674530571802961327183326528330318345262265510527683353620029703841005656392473449907474890353753385413962631483616691129621890757257367421894199669154179385365202619368001311790266327011676948067015263350723761029616888720094930623373444055448108118837965754593882792394629590349038218362994121088846773599278678405114361641092057362201077927200577149685679102367901629426566026246171087847337988779087628112821438734307805603492538424510122725320331644724211214932702084603748104037556042271089023484067055931685055864769999354841346653676567950965605492904659613606206283002313116680385386878732671217063881346159017770357759960432490237949394367633445585773237989407190960384951745268908670623928203887865871871875014965102859292979832586674900711102810113397188668931435794910160517271557013192250427300850045853611381665784744462655203839056822318687320451307478925338197916699724487088091457642390684938215070184947993679524995168017151160972781946592194734035196120859111826339851708129413251504764008818026522652049908395923141991612218890156534542800033937856395571985723989271627681809780580381013321653210182943473595028862795700460060647802449558132185162338993266013021384436200910722830224073629531925179361226751642821922093468443892245953158831311662183612971648680028248842990586148298213886370751031941993051744141628891530136640744960928189831899013585594600421440175622287786433825807887402808334691567080009238840035495695694828090808689410927211603958432600773342096591615933552158362113841312835082224946837399402554937024279034305691961472363109985332855984643660966929346542544171936953936494248454651677689824557716650676956918026932343837804179465127306989718976999925240546589353058063346193791600570068222032590412582882944098051273274787233060287811241112233866860803337090822019043997050794064640787459485967693922114610377268230789733511052729708794355671405884931104202619781613293611332875184995934202566383872791026605779880223125913730424417955070621829747249454001788762167256411393490990708111939715234373172221566369801891368042434734992469106017942366986534156255199632541048990303116382407690097287660814308274644020150243608457231887246042243463997573628217746822755168081586595634809253623814582293112716815194258540778777340985843786783445547460541494068181188913791364910255690012349539513514357066093384493646165583241339272523369731092152352530329717864521530873323622737161854434012055661341107649184599969292143659063430259709767923808734853242807542915214322380211199556308527776380400009044470612556903516246920993888829987326190608667397350310735846738327205804715766338105389567127854840054249314966311082253133775449128945132930730945506404461172398278648068852846738155154882093434277184812837177084273277778111154202916964576695071028817682731005062131271450440929071190344144102110435100572051458353939712080154266910022020346788609909763013119983560308520651783302361660331972824727851459163209050390419125800213162131805680118374840471100388585615868263169895456951148916064576538883241822126859680917943411506038567250581469015685881458105385453169272242516362900746263452610085710174493762699346961131730714008594638685506830393986482992164366622930090299369790565755981040864737663886103350218021545936901019262286560229490487564094185129648830231938747504524518993545893688283692710226069392409984137730035791694260403458435882530453815500457434088333256862528071982611661315962183007151536541058524497740718660573119980035149266147243593362063473221439674058801040860634762660472929410813824901057251161787425393708016350594580001340296416007402136009971683736600994386263757744760237084630047773129633484928291254215673688335153631688605517968892994414892257522037625581745628761843170694998997315430422048746655039956329009026677842907906261188044210634841499123282672180428268952457003903245795874673078098948216561496520113478439745761684362820901506344803649414659637477628590046862937303523199087316786705251040250807279722162647276944809944732519521445526156642866773959095979016724588126586932053515662322239870979591601782697961922396856055677580152998814466448612045463571637595106069439364166043682188826598489747937133045315606779086141924942235711753262486908467321200616554517544337154091517719927257271084951371304650868741469479644200139534970222902434345001166117709246475782470179558963161999261200339498499429163766959150363390297264259533701747843351718999548181804123912927267730689325737452695424528394195174431572698408938374417279779823607026809182197110877468087091344779502769436400763075909348891579383824679824500841344284554960557111736203120123786369761987530030814102204917386126499888587259104791543328038050030525873728030093146799898578078270331999354233654599828397501917607078440559449203220724311835119759214073001153580573837313960384525489510071953399293704661325414247035821686133171212855641762292004201999659160160234978255971792281498975124541859314076247170668367295566254634449056218971105077456919455937801919152286740378620054719369231856431810751512218389048754050265104440494060778014267065629717609849795257519326398538512936643148492649616513972405349458349678117115002444342499359629722536830820869750321273192331539192657545400523527981245264948277744534516121933170061222564128367349582966044914697524457596307399316419224651295418132865972345180538244018732530290389446160301457473727245038540158269977107570094042858943429270018317057081632954909651324620365170052482813192988356378534268351967860041360153406999991484466161738818258558556439705248490189313915917675535501008108366929725538939172938662640374394975929597531995592839349657409269742468640933358963805308227439953288333452559171405111699266941276659034882858931301230376174170335043486606429537091131040493323397322508339454824355994744162196865164990702693855085447831726799494958655915203340525321133746283373133790514311759868124398659571869887951507923590054020976463425600520579527663077676761706354276667448677381858830092604323017371591718305258482088424703589977107157651608450094856739323887284589710414259278664498519608716942026999620867984207627074047393495170808107321584811879017237878095430944359855391789711433181756466875515803204992918755028939074119104001617736238780366869265798019921750721251726910223511991802501867231087595167395119040774714499096838962081341182983532409241158206686469915252473482251899648174236234179317726718709858326949814161986032435231144566226543811366517161124420624008329838267506042514805708839680960621823453316677584544213777504462816658004354949060955688403361053185961033270760392948229973226554916597848266106029992382702880462092308298051710019558999308138059880920005650594112276375340992058376905090517288130666944363084031857033093332604512770863642100040863183066800772581915119309451089146965126190883546399000739784135719162280908133097789059283547234058030211778143769712729371709709259846408142349862717985487350971398163515078738446017539145755172537776178779879061977321448589648467107196777436541061527769245412392048145063262565939970773751666902971755818138186243031000004019333665814624306557773312248540631066565466769138221436840504090975878709485867963006659627879135977675628117013779410664371848141516385218192109030445615424097627486837959328016812690109184762895162667525278796113641211699340982043656414794097825900308370036060581633156364224962747394593881235244629033794132814072746929303509030062469779162153876319555589046841163625447215991833630673323694541136663127818986889207523068948568440489513850474423033839410435067021787861282326199939308515040474836767366439547166626069997500422999199294340166181591291978223405501351178003344095589062999753678712137362831631395142059820372022797172406683757260823906701706808212306717518725503331380707057949722945996971876497127720345437300387944909857679936544843677307377785739692573498395869800166581027857623079760601405786890428267398807042118574274140308874859020759483581967159286065966923658593835835969283713273555926413175530088201516473232102657526665219968563000784851413660904940709940620037124915500558785039113990863333995788824082024011819587020833233990251684098375275011253945898648355746283377246469434422516100635807701230484643327238227312976708431931284243759447851589674831747310388193401530928972678492231081391828574786848413870821623750717305042298455388427799284214266476263582269506836423807035863679595087844704252771777904066015026043754526486306445794543705703268913155599603911277334436748296489394812069255766873216041542697037511531946775951348786214546435466407950568830375702898301078674971306099054268582870790178879394806986948829541525728578409855780117124368522935427878585036096762367232633710741139301601281749272803334179741533181565061282201474346501658954380737981853951061571801966990960398426441367846419939169145574834637266417334169650652891325511790047489599952573335889129910349122464680336360833610349577170082091739393436845743587181738550717084884846245246329774727407961523347346026823374873453930730033616504425212561516466593994922464884829597126843773726882468947276775879542484270130838529949201989235214625617100785570945941240534086029711070072089455728476108344874998247561267876944693105470864961515955009646668104324071943641695281760950882529788803931539968850142088598040226247671777364230656920360937323075776030822626267377880241840733379513162251519507165552670582597731152271841444013935250455346881065187162670072828198311891886291021006798368079391432563575414718464856889238893680332794466255828810929438666962292846467841773092719853032421917280573446922572794071328766165935981080815984503040588195469104186456875607594572061968032628572688431841057642906733470927930872723430371946513344335918627101731044288036658050642370637438103948045493149157413814495440738695819618476669177232595264454168437666184055629984729361060884355181938449886567753648080116960736418255977271454260140447509119424337702721240037411204146081637185901406232791990830429148190781382031489865519477602353978282715280673839851335076981183261681677693503845378583721415894113017705247750031143735763010462791657107339986728745694274426270702520129796424664106998974799120421750522075815174129996543581259063007390239456457289551825470414579421670963623822007852941963511449269894352327593238624106543505884930029339637521062241815615350233204785873174712133311344495551339779796839412050878023926433078095282999746889663598461859755905951784551599713018079263649755695497296028478254882965451627159308276349873283374986620766712751553415307452408186827994197293950229815364607047402057579694496541030028440112738473544131088072082449224918281803451664424137539905848616090120818005026470809918435379692495459061237380745159553016915822019293518949001618527570919619129392697699856695195624922695929526462492182242242659412353058573063317465016661779935286320070403389702627838369787890970399997978650283588771655996654449000168366071764695339253908123068028647105054762247948413954060849916212570668695352333899267958324602806922429171739067656605277885190067047020940204898363277536941721744788100715207832961307053994963430592802614955909435578531440607751723790834415112842275020885302463669011150457249414118677904914890216468230916352758827607928155073106196560664188311722776747837057637332935023953825035621617324216521077532877134968067266668527597477202395815031343148917948935105107613015263661009996068952756037817781130433994261465164403322164153652098336659723484091236401326398237910809727600326401070305997942087114471657091401339949179929174789493550562828927122086355418416583063995587641075000364420925368605497568386972418528420570985936256934294863900693654287418488658931702264095908519714706201902917924892099685093774785249877268107329059112876841389899265019369299457339647203108564261699740086843573858545113258588698742822547668357852653146489707017039692150401637731056107665906041090943174020099687234991396333493960522261692396375378421467476545487173905097869793321602535155941515172850222985406291413906573586896341846875343281501442365178298885446194942648806644053629983557638556481131960065567623848308519700885570400194380553463502027446428751153548923916850056496864894743806723096881565627100589724025856309936066179845048738387360411509718148425293701371258957602059591459758572921651493231418280415960711578523835314012094372286387259476331655897242253586679467854946035660769180852075528654652466987700203470205857010609370220764068380883198759821162184210984091757748743518509588612277898443804969846224029317467780027942577500162602544836621787713352324316292890387242594078215134689278858520162996436799505621343468350821608284578772655859370868527045213409222510386914100420770866420405524137904519234557358673721322828992665706777756771923403925432284414234608742338325964266310091312535842971068037278934343077655733169237525526811493142273242699207923564341300172057576254887279363923677756684492162823818526465389753594321050363261391319991299889219548751052806544252584374899071163524142704721016014098393285849755983032232302949600332232411052785743566174066244087143364767119685824312915111008741886987754461660660381122320362851122911229214604047122515037473093602464174019303241677239494887952654288452533677921891308531789074634678873946215084839430212112413216621419424250935192434748238627566195095446118662901225001283847347710560763337052868102636149933420366054141544661319922252509902367434813495641726896963009952023391550916293959810783060729450360141003368714938118685219346284992565834790050983982182816757317856923977468166509199799020432933537553704311800541565003021351368029937694268584634765125865133584109704351685885234478972707771912371938700720740810753268649669656114575760803056526355573415369196384879809858511713909426504957089948849732244880925216922960832160622898558220967694252476970349264540587896611186067315827926796057950560660349216791446353553546639974598462499337874146130094084405607961754522620484024301285545349242566052877622082067272781900165827207914834513114307798134084211488074703085566935457082742878545543330203628191839939377007324010634468461653446765133570772163209369597900580972313750001289149073125846275139294949406695999335274438294764373287641707836592700519434808896827392223743777326269520896039376253202281206711417578964070904301422434117191250101344383314676268202490106796288779610837533652516249896234825920117550421048578152505104929388324302796309368490700383995893088469984433741782856227093769669935320234324185120686431302852351848958068142293583664296202968507299932844387342118867601281294893190859335095386577059303732930620487756203252669701552933466705853660163307611989719076482463154468012255220283533076555180359911253545549331287542543332409945985376438822824888802823208276325035038721653092961356004645302516868868141176966865622004168093778129876211307272983169498321560958410405513431394202253206529621524875290749991845857644681753114270909307937972284541167418771733480714497049205829201979206778704244348055309350077686920422275323433053024378045627105858226117442909837993378300345020315056521139742107954399410054317597183782764057293943090899458817257374007686476133031600717905836155975037682220128076332494804318357106586580074657163353131812032003525269763389333413716145406064330576962185122499591755961374482035771346598976174650957703189292410645866057521700604630698801596200104755858282145094186816763494027001747090269712904186070227689989831513356370486270735827988380356264414768092435109905030215197480687394205239178556409874869792034690949288768129177183140094168721703904003241230681182342344307814598102570851839254030771846801812360114738862451923809398037117198684350208165762394322699021716801622945214620198009416467806527411354125672577612466071196744918117890131799050483167238944317347305445563128223698066038411665835499166268198307426281504335979676502411133476492087767847195746141467226522074682630868690384086673346928385232688841297098666977509795565897868604785740946058623248330741076525563561224733009839401321746945141291954616702831356388942009439216921431265948211408613458276943049836236192518091952846483344390183112989835331723205034536104660423580791030283589062824671034521927247763887674767831165293951165786964264804852402790918872237198923838096169066865616662533110515259949034566430175724463782694956038343889175806856591747646560731108899030127196664262988894693078574033976890011641937859554874097388661529513552518790112968869675710487520721381404024698941440342780572568384811005478295710322818230236631263638035658849430079668597561248896212268406008274799295902144597753062435073469134251353455736475379434282987958767292058921881897222866000035991704945940864992669333005986605006034851993218600861714729500829623385644971363907334122761726069441027737571148116924936286527858186250502660485739550800581048639085897525088918889185875174542840585418232473636406621765755902977431880706817565518154264467456938221738244596038329841150494018214441786963682358562225219663121488716456924716949598422372806488494660394748369355913687152323045869320817349260818473861549393527814494805192522103507307147449914619083061385947917582723118247601403896969562553557687332636909761388891544934897132377564006122147342830643494006594146367206497443335254087124202059528989061971694559023578509529016283112809503717316324580310887812427112097105174004001407941897997881097295389369913632132019713359354857196189440265226406675997677504944393864095078797823686201783384348148326593343043410130198846505752016149316909462063279942844698695255693933472012205917143582368612943180001078884540979675446356752434497640100765754932329784899516996837177919393831059000286072135013804403082043064374494024997059525724522192533435623118009487764522840514222741584750907456884868204351461743748149039935453847364165838391653905554018637120048399732087475292624703721245273842884640556397550855458488225657174433350976452362082622501633039126742581645006461914980431786362724350295432985904451245137818111603129660088957633256365133030971125328442500745991870831964986692112396793997881077940954158567269772670069576179761789131299262468637298955727162557491063607715361503779784927717351030414508237151444730232116712201629820239450023169107342098677063368231736086022343692993829942370461871602382834900085431615524447788165797706414726044966305313535258515755625173131686424785097667826544787586329442689483909023793315715840442648642824822877443308404728471229254760401107296284612099062966030698159547514233430386434847111395340462949238056375208681494679432926558393031623409491499446264167679339230023156828074973459095988549192874128995095174087239389109923649860516343679392693145693030204356401673265131166032485055286834008634519890571376743569272120685668435391931964984878861930252621022794113968491776169217116631479630938814842127151956441568723258535646407128959860941463812591815841263641774768847509140074720893634135378265254078491213402599090599791391643679440291857377447089475448057600308976703720530219205207964729731222769011723172142433776328936193798857480512381431348165986936436154291282618909712833332989056388913221894907914642358287576557395906366060577178824202822582327786763606875983536781525664072535414498809572217026708730794324993268761472032239626632985270946847693983022182496758976002489659072323996206960297635764530882769707450376449965460269353321930254292495651320148245667818416225124166683493445020368998694051965342227358395685264179182536340624017436240752155073314217038816738284192532056463782758670532913475226804121998544214610387348736662875310333421061076243993636010212981673062887460873582406807311529102824969626763695763668678877240339100365496872590728079634034369797509940675651337665765012342984607027731686961040675148357056367282550221736762738785760812944521249081893083741256895640539093677119666271285290734098056344570070738636322893522764613437467922549705254274939710408345592337830127830930933951431781933393773225234183166824392234849530965926736499735121403821413359930023618197533756991201062918298967606353644397018305335775338178889329922132151285777002386946526827491829036813610281709771699162012302566355880534301773871538998108141563683576214518001814519043709334273858851340664611619694251519589107590691284617619222282578199696526912768032068013598122893760292641140597131831625404233205695338303680429073407679486064703376242266221586573586895230893713989883914016926101269460725564724835782331883718419764747370300142204318823932336449796193740979073588014163505897047951148767107631840588228443359221792786251901016208845836542987778022095717731435927557910368585584866013644730339173764009863386732113130735465850262684891024472147235622027300476647408362978715512129120545233151330291064208332385273357742661626534262958441759692087694215593322318489582400443781738849790579184136570446225872652886132016603278368793028503238677958621199320780272110484601451804442548524557000809107609372230187523300713341258727806132888676967353423117626995684645625645855471733998923359017114131096541874959688579753304793007912660614906702770490747753830820131125173116804168820315212102352723969994053524718207928354506529926505149528107178411141121465016378239420284781656323443957204048462445733568276217392762480123224449370077572901817046932317896390349986464791433287699210794751754659693757289451644610647770615351023831204156250658350081578808526788063454019922229848956091872389759116479781696225889375476323502275718591600731963649430445499179717653933703496677808597189104034434979663918161000648742719141924178207366606990741182278190392773391151596021810036584320949676068371665817684997414252358656429555620593127604202411361717141040382156644425303328850812695393121579882240704607013948999937035007898307829284776382012403630144296294425846209075617044236148972655765635641667664507923757872441786844688418002857766663687372969260974684056859070713441871886218428292215109973504363269178262521615122537112382413913306081328351417939531627545528072181144844318617126576281790522985405807545662712692005937746472052776074362159957767090433013847047940124591147632713930618486778448408574082949795324260421263520141212273281617440644740943268858935851123034401382319322859008718641330914574039219211294386947672564060377253286488029436658775693718786478143138145431203178527082764269745056108625310519450042568480183805126809199565053098142866469505580838455592753742871554827270026031527209888835570307863246803355418662534803410174814307523184219158216739394812158209489000309323983360984545870566122568762782028232335081051549024074558530167466562641958910754726978447212318216924702464899747035900877039262274137662613677971588175950829354350890147855769277980461452764228789945271709491455677331849177653402794475805641269265059002972156284065713749862924157781782947111440414940204640544272907813534407398696279196855510064618723984946487904071945643195981475798197693197239280249108124073314348778792457670977570590642100391641724843337753790218419308654253573185289030431186390277641209917843887710152074947827047617256552718128159465049781656568856192737977939356834114053697408973310526704736637255264665438975522974542530786203260242363341131537305569752951639633460731328348876487193596655691766558159082804089154501232410574124801323245920188980561671188937193713584080088101477061268381431694515251888609567368148277475966275951764813525584554011446508411344133481503215038288694680060168063354644986323842651987739313010931385756508607621378943289292096416025039144107360990621582526715190190763266807675917068135397037862027356086579086237204113359179077497730385508918422885399206717295721115731173871683491728502760833959366642203187444105386952458417146036312749502444715701163266949842700175358045281928872089504723840137571731993151365550332883777912458402121103286966652332498531301884074511009050817599860773586201456947751891052650892163013110217953660280078596702893575379122967436374468734108702348332720864705160373806608622432011414940559383033938983803141274324221389643966400729997838944017687340755561588424786358793955263771496100442570157047182562156707242623139757086459384616426189925994275623802534717648128649574994194448180104995729782238213479693949914716324302802421684412991470803936111910345267876530068984801053118530228264044835145688253115432331332353407297289973899060849893825417326559174051775542079429079344474170403162793528128746620515997890095583533407496312592739373137074280600898938906391415312515998423611597037963550775520554120802150879626807297115582185895763671345617480932930297315598258289287945308408106211831934514897012868945228551575513906775522126842036345530432580444978098485226715044972791224699704859156387920549638496977835352006130540542719967229839366669693635130169840535709466607453897155357641388905867379417131298246996076710085057094076581137830896554124548251276248697498042211299152109993692372604023123518833132286323775395497942981955848836770126357303812951000110951561784760220375813000472738205617080952463538954711023441395849641276148814930864118801478975613466870918750513946087214236873400878649576798469967438248050006873635443917454867707414727647037710443560166593478803158743670256943255595833709673861281488412950728364443671622118265598446069915929777024945430107050833982532640166173404705728187917399250483628435530189649388793238378878260194607545905749602811829036541885712070333212869053307481185436402100102149591973309130169836574070038033115044824224564112597184524463580962873361836389385664269237029421952723502157673719814719411783960737941843367992897532584617317435225366519925571733542105052094288659160200989347837367841937171322733742789383261091900482705727855804061834537149879571604226257910530175415045112400221670558354250918472057743110924674181057138604107372260168175142183009533746912575603938048589749063963231564006065895532719450869615626639912203688098308070674718775086422595720162150638533890667141859969174979201041267142747511746455529280136370200675345992444461893928377521798924299274612557416982799254722017115930358223029016499896759303959175649460484498254307100124658376166862144600252721779381628423314820089579880814368268579795261800654884324791816590597885258251374117776678352597777388841662174296508646832352358766518925173093700129197151121960356513776843065256054561422389663232788555680209585058616561924284718578875927382799303778185933654346681189300539153908431884278965503416940819810606033320883445391579828174185651223603068621914458066006668686613116155494758676517615703137570243569272478201250348181879087670438639118539455143741234693915845142704972690159993066268656254828008140061101940019376012831050125965042386389405693805650010984552775715127445372340323312216373049065289270098411294343866441492104994477094828936676429159132741116861470208516324296062489932344243956230225480771044100560091190459662752947352831448543527334254044757936079284462184283523087875540420396094901901287799239557686612352321031260274911455963905019558157886391048212635847373643295659818589128976998345291752411101422409733570490266401751415295386494625043191226989890491785961132287759901622651762634212009122709552944117580396196284553786092807716697121907942981170084547139099630819042598009074772948537873180619275669387646936130764235400679387592625032431430613229793619015355758990238274998697329613176502572916002834821645291400881357129688255215203312711914046299813366084100006991981411858009699405494636629602186218400617443416537624479083060519117043027771456608599354582958053693802769803701323258967776082009856976396240368963790201009275075319250610655952598681690257049417468676407885814688169297515845616674848450286835062718100658935769555257008209057629876540590110926417833861697231437230482242222287673593109132510838257713148346128824228444085226377057214731709132053793873394828941307092477810398037605563087653627715470024813986319113779584965833583182148442151208470473812172432146623349328824496718309624722084914059824307162468913680072385082625029219984358009465863186080170482347101812752914416423565229074791084262427896826859788484197835196477123595557105011044320293183792048335120684211620698488895709214348786900124451506493201549822597025453368529636537822347594390129750224055928408124514847837240458597216697513058733526567006110840062073434907011454387301023674791175322675317128183357389831680842433929420707488235330892481437174376584285754830187932774080566047001712338342679370420145342612592905919377817959770762366125283933724765698021601881938759547833629454009997369002994890628517214428449014792218823331320907983176330267971653792410320789773022847201437237494830465888512326370228801964269253328794319605867731450070728814348144390892013856844224050151364658046424253987925185532678416819832168481439299970682299366072436641226730812373651465466553755905147629125660470401137038696875158318559131830740294128758231353469529831542561649726163630232178324080750460976103521401336422194499761990757332636358806967822249568508947740855108004117918644565464478710571085563149672111539799376111832492161486667275027635477006198980661883510192652315504883178827030015661096294408927944873543391518952662685434895161383794245659370617147942343783624241247837397076193453286042373947489005874845074705329247712858448622137534903358071047340163354424863110619727888696457687833854000032514356304543353987404725397431629931076584323954636890520205293325309029492099543399140918171879163979576950720034755673837626146660185231421931795365290060195484578459171544500790822735069892484873590642810368506056682466104763156277067825960444718881944435893125512118147440806126470576803236642852157180604004369729401933286797130167052270366387555953455093312744843266748134438479541489957260351823819466341203434145136289964257964759862704800322226707539925013114240216391953681517212741631512281282399411075149676669698359102602696141986577744492837169338616829435838072441871792883384278109662721086400349758356468514049730456481729693273341811803482869040481171067053684380898544428712841413768608248898474537999441126847058738340490706364319751761518344606171521310142848713194052526292565351920836729813250852118778630733834828017813373705322498273846659008988954779348548460210486827019643264724950984651219289185148944997061867838441303715667077013027114507792721716859571728258521275749157559458626441980578690261191603019670332295339570377186544252643851364958562929252142270813561344727062757453161504905334028828169005559926396299875748986512889587323634727161172931187790970394059235048787090549965887734052735260852249198723005753326042932050201218901227706648959744990889119356463031881884644568944777722557759067475360675023888401311293281784228196598759890781854203819219888443990137242842654241318736956374794857412535107526649107470717900052269143966975093528052204555957031389425744043509812807458403906273697327295950079993197704662369965802006714057581544472460000460768988141193926244681499229360216585362260092619409798639025674760222351722092402173954121585498974752012373510261944874196988568624560788655770570833142804240515408974316881977689656455485822813931178172964439764867002083470324629838229999715822600900223665276834476917821849973026667734113112415506862548727149242185368691113822203311291578341473356249135035481323842543991037006207116593212172352579550403932904490479022395038296083994814996120015641200101174814094378113540619769487219713135334308118267475828984719924668247390393552406785325591157712418497782995048173974839711604363086855630244960742880824723763235191440215632819267765950487738388989664559553224016826256815955789520640490829978578679715060539058049374284895584188944862917534844662891453641055432879512139886888836653601223430929813632300053311881750542211619714484793001652238189030618910292790393679088503659256541321014613146629756669999149783299197112802449872956108541902297658073115405743681383387126912095255859114729174408084303851525918143305445950378849851463561833197899685771387175215767184165002997556219502977097662406744580304565079304993443919198946447939654092105690790424713816260684011794817838525577481480458057503212074573820540027976506525571581200315990312593325539235139861525540381126871763633533053941306244750640457810661140031771591950078447767619688270457807803455494381030574366557347132565852250523894026422185299186260831930699915296125165370487017119631766034932865692950055998574313861082483477307136165032415619256040593629752536907762942767174922129736893288895131421394744797993523619634821370049427491548824128647057590662777909200755050712797571669733162827154408842157763414818787187923465193659407237462058741131925675649328518193762203414263329653256150195126242692088506506600586911311206737535339943920335306435239137248342167754147970648782575572180351008089782074625678280795495373245805080284779456822821355420971587888087586428591015587074420650974493904831527077116210204037698287007533422597800908880339174690106897241564935160712591265959815058609945316546902669511998728795482359028401840989847622278177484304105970700933350948171321700570680512461950981738415269627358134389216561662137761757583900530372317355490382508998586325896879336291679626956039638030038985825289890827161675552113910274249180703259018773308874778397769799532914226388965762620952718897768729615835780134274268325555879952414238315947616622150042199015240001602136846107646706022565230275257349880808475111135245298664623363914588774051640643586992769514046945878311809810272502975836880227909279904599542808872950591031313489724357645131347072392127614878517979769194333312412252003618773858509497543215112055401525560080474469149830453235571446786733820340581239891418506943988852173168879539052674133365769430277331609809708328912450993531132126936576723628177460515867550412570897431549924599240119580026396613206763158034359999551405248569310504295306348615380211202694987882651816070308727899252616389719480092196919730520045123863782350054295950812117644250226011415042071127345312618548085295165168824378491608660112302787780009868641580784775483214516638329110055652805039542185130256277328597936474161356478534663075381865094727399777470511159694360632058429425388852995616720868601655653851321228308423202872097443656735405046748525833852323886311708970053427227132147675218167661034792710233255183352431002107527119925349663579457304555283263154319679547448500885327184693347355556911774570017116364609450276386661069701529014481466950149731836791213371143417498937048649317465930623261250054725363845802305916622378023926944622050130107820201789675605149543849552017441885077590585135425605085442016319339743791623018876582938851378296090438960441855101432808010348471254136383394430946680401405387684987792733271931082864343973285183036380510019538851826834740820127318253924021150458278004712641352494760828301172828364752995640615080300997686048523239307225153909425315101041321421620373692005712583883592419262188990971456115773588993185996597647895195502087437299268867194286890341882982288743106514643042896233437537735677791340005573204991015285494431959546392151164145806936392207561914284122666637701844658537410854810123753661569024422650592499624729751599326421401096332484499845790945607728277852297662964119759208133335681173293226264523764017173114194610094462961561511991789811985717915290514291083560600552093985417024107817906234043457933488814414961357827205738097007877689418765938468768539726280431791924114729313569801224157058065151374565464151712004774118947581588955865302259918710880767784670411913575098678141586264274397771982883802752051378550953663627558278106724726193011154755744329883012942794256943200192888792914290444200618451112643264266502325590250719360314535615083898358232297013508317001906046465669562165359635515441377045645018444879407524282836211601267048598413013342727378096561625456555518493949339142482194512809923515613213085337162913274634036304253591251921379199643213394830541143692877266190078897703140005353900185677342861596138927960195536955583278900987700190846878366677645254627210007773082965875265162479236965376357878040127286793742805497194146818309162939918865423605196991863360219063338717344414222075274854307133570004808800120530469036845908037599824055382533032823697042392518688306225976972512886206463878859021905405498908328722000594799186955425213516174404305372345120426691335132349186837438399070345332545790483618234895455327475081624288514734911613689961873955590222825679587496134466539138680135346450015197622470092410833855784445947800488156127408438081674533834965169344317340129094379279633255802876175230370069611642355292039057064178364723149564016442207504724685852004305508047805335898136118032133556432619541464683075292468688327361441368540850496133179863857988251911579204397948010129180874680275248509427435356875404229417226527979472819265023600524086360308617941532613353379838208523577311068596896201961482687459998012343111393634583375847810663052318965714846420964437313844829037160434306402022097315544105452069897629527128979004243554725139934458628708266016042745981698662649733454391248531368418495108813658207225029397929863945087772104835740649491061579742261187234386969081881569586918196024445424318417938753375163219507327789768484855147732183889594975136714298334874944746494367915085130123354289254444945390964528275348559160726424950504911938162145968402862057418783368316275592818572549871055674621565027923500754577840534438359133908248314096199674911665654211163002975353531885173958938161111859806239880706199899006369138382167198468077602477397061539509017627830759942888563037590033941998297947214089653334866072152817345355810231145670579626463127395607864818392401244101858238363279290106790192012111025624054225504216370837751864459562702872011555274406738867263587292600088786481427786289287443552410553904615510933279331372820592315374114410788936432778140008367885155606211042528293300691256306593893109234181730798603302166670949634707140228060051303492208343158978735482023811766804037281740539653167728503172794351797626016952852797893680190741127506318339315491103309326260341410380210833415770825911136561438232938772206685860490795053110395096666704345139089106651242682396781408796137023787110747374570394729663315696631724179675793820610322161001309902435661594836757789585467472864612719182353054384433329302446866322301708888893966764315957053569215646599237693837309257389782038274429213746421249540940099099390162874173826567337018026292906878587661960671776717257039751597862059527331877268285268077650789633937016099645758976845274044137042855295500359301703368072362145020404136525870857844985591402299958160222375518381435541434373730307168128721092826558482579085761307208652773785837321180791851079919174664583469860466922130906012155019751314331870392591478484670214944108686205492203155163417049169007082159810750750696676561391016464031042602246146702771783667852753270529332565998512976056098415664854881988764500921327119768225622190900048305781679579547152294352198815029619889803845405338745161813544229474436906334549167848699764820027757639421886308225569496637796312469625875743327162359266951580489620408921980788824325340628046642689245889615431091883372330774687971342931988983100417958257593560286877269369779960894181106801163267078726026808844467597680081165373652476189504438268490103704504305617924689832965985640440776863359587100649809027003355890784532203704122279855118895410448873099132761893056874380657562406047128614873392082290512530283923114653086170340603581937133192783243137600827360548554365891234089456706409629373618369415718253468630000875901422665911152771913163460892790438105693550078951769105074843866379126055739691681319766297631737324355865726037431474865913288832246329082343168527455539729490214637902083069151558839165902743837655437367469295935885445454041133182687855776438388250475480959588255719806741628288613344364809163716686838501931155203501639594352000616339830175439141385375728182728108886370072427483547219562484344211558469743384583986261756213770102094952251200013039202294553823992101516811455163738437785978274720353682885089463117235467379721695325529058575334891267190566668642724309077314070436918314184496148326628364493108912926123496608440679945497821725588794876873622997010770168269653243838895481964568962986988668951246855555107953083107820331088960243395316556816752326466102093029838924802597895328305541129074605744967143476712110960193100978878291301131028226523491383329904921166749797336134032539587048946733529117660552573642228088196500733798504819933918325843957188828294472994107382948207960172238276464243783313963669054687259092237863599721430390712419295133016691247159533178797692542878884075059044114834971747275285399398580114044271994628088336445629284430006826425749251262543104750181743589255284706300387138064055039943778219803640238179844145427229336809590023333858289413072615778885536170137527969949326359563342831701236957960121730973932806142543913915730777847211325616067649681191567170849223872519055408730555102043283655390052326191215665524035719077299140117924875705331543338991197262686183640317074058388507499973009106289099466709168016841702744859019312555945693748975886591236076551662535631219834225510925418446948409059485786689582858450051988800356996474337202623869228956643946684736036585783020622841774189481064127475890006872966000462914523929904104602512294791034624404682467151814406483705288214998327558826509330351858297203333832261909937254861586542720262153358835669575942327898319345839362058748496602985096373902504291265446651098055816200614688114161658545868049526608955958615420815961694603007450406990376826749514830416480407751587278651683380272661370189158130988595357727532074505694058680462013572433554965031422108072783830924685443370494008990893498176513168346067469075884211624345330214165767302504597936327161524794298256055514094802837748231190732834821559090732029807735496901464217205794259413405962355391883890773374478564613158350593070788521887142505111087487161576986895125415742263854640686322674962179111902103050586957717347590706514989262170143508724745196159806122482434173588486734382782821448859607288738116500310038054810584185773014114478403962807090400555557315426848399100853091357309522250834756707520729414313340194546159049400817972097044291680634026540094766066779042605355535802001377326012308893891946741864861168122504428813538301673495749545306651716870173140536438967462273932532137948858551371293040661273073747688458595232189876906876070200694188797338121273681035106818654047889487279717722996415820224899196061924273865800049104308913324821912748905914678377632114640403952295473081054773169103619886093376533820333007867403862263431914089696265466426578932092694458118945275104526261530436695705577840594976914518574746191925800332685311601092870094567512784027946262789591090944227083977662691352118144312914222521758030611631863919891992813983069124197579795650376607880768876738256405294368818625585249761792387565287278842694639596083927118794832697135607364827762856559610707064326525829787425842961699743007675519917118121304418031109656785267651850852743443846849777957392831100411295034894633868491114777766120188527085749638534763637431780286969458262241919656414521621842143550140634007628938257680691406520891217660000307963049216938816728197365729754222691127144908584095427164814303102743617957296546061309983953529980909258992063186530089734561185249563599791402619974746517320631167045112681310140136947718348086063157328320398056158308006639093669020573042240254184118740690823153995119353311864507350018231649981760911746432666687351182185752157609790457220731875588578337524057789106438590110245365648469778609840490805327047576232487196559616292071821910541535069353706457284758143392081616069826022103647393865356471877837520247052172878572567901419942616556336178688185786996638498914065199404183958705230245275937939379496286799148844315923032398939283602231680307303888222485587809578816671356234406917101743744087313714151307585151471752831707669875999803024776927581530659677477403458993939243675970646525255151082331413182660614538135663134298447312724267940844415936590736915829167516998756252880140778193615750878792867862331856148753180431355251990777513793503659429795726654933996668938834398224202303472667750505786745306257153894369938890949912245839087121581523048855711160944647713804566421531592370335493735271672348066235042606385711768197840120544074350884146529703812405154205205622491698062110593441757765267477352119504872493935802481920058598261858928095798412112941711291063326178663374553214872388129319732853883060701718157063284359700351752518606116222512114208668415010396641533646848869259121185464443732523070138025964434126083568455638529685060020031728926807065540552930899768964161338700160579512730223024466216316912644810740105876995440747639655481602794334136293666993220166491967224369222235873058797743612789965941522423056763848748507777209393755894571575921598784232655098497122941322472084879220586481190221568382134433159854582504009124241717476074778942726055211795297517695560123414645165198466776985020955468877698298765620999618195005127688252053042574552712268592623441613148317817568369812301568373431289739328802492276500035639148802996419112708203384231310197470931653769510218924305672148197212039172874882359641262342383751582736747517262603163077323593210183268417632794640287849818794906965064103276657056718978580025248119345546175180574795830561683329876329707733611150083327251916541312411265527202185640982913594315423471348279469323622450241691821803250866856028542556971326993994470512488853342758829423140163102584876238512796342819263450196948480295135747039022908517418210298179916202328912388222534051350684225763170988432173463365001616014926518965918766362797767120468338678135349204223452917767953816128548224133037993154958929454926223807823972016122872574586726883298850954569324146612744298257891351962166378116829231411908378867760964334549351895511156965515925295180747194066085434957518951801956234916399325486802338523264527711983075382814015669624993190034224390177315511759412492934682757801333510372603433293418503776377296323786160380435372696342141224195244680127032938417523544381022801194230222052916345417021690459235284206326465928701119723419662884098866223817322424296470798608030450593845190353481357457892036905788114693786910131251523640696169384373448418913061698119247734204596349548908508830005663213771929189956507254290880778124339969298078604610722996315015868127891197074700297732287710490693478415863482861266114112984839863992486695299254418469450964934385431872168478833549363730900493235592610969113454033728149856240640885220160063722876930672904316446622582060836962791305161699191536713849908803971845309992984392533568276140104959798359077531668084667712919903548315143100318717530964723087187079544767507694515676768220814017334826580484153800275630086711701990283572520749719870564997340467475580600920972097862830989503593064918497904851227798245615328143865560233925619594139021374775966463455810740456009237344027071699898852150557528540199635366959566185085652906305492132846022311191764925458889707580093449630143241089891919769602367875776507625200760794850200335929308721137993572103982712651375853047477808034083442357481673039977051090293659392650118642064598147836114608958984171205272996622187768597648135166803865314021054844326082403794171465081987432252050527949116478563584657265978241212214773962568029781122340589309570992841088204996497316053076484915547801375509126095214696214011768098734594818710100477393097506677552898024092375808627622903954267562503214287886095667552470834001406915920233794176637334616750539973566312660121468443245881767812855326993913525835883222781329379223458073144842114676449611447283170303295859151027577910225047856369645927063370302337483737804777254192376982641983330756392046729059996100964196028377155471939691811942533239070221424368018745287133558109450900792574566034106848357494183105598744749087061772777003299918745838277440088177400699532109656929200111095953217906205171190117905579038213424442351374555357636264939739763624968585828466560796004257456562916187874984581619332392521658172429777758997178625793883709089564620906271528738277921169430364647032878932941089205583084437989925765356590342117324496875984283545011428064235295805465029109377826120738378983610311026961190520895018430234347628097820441799157839098818136637638779693787698001839596407496752719129457172419274711001281048633103317788113544758426029320728945017407053888327585777356454507219653044851305924725796136632739675405585415606807040929139582913247239268997612666701522924639237440897634150741498081216278736112964588268207085857918955976114540261517185592114243372808980855242646639471538573972522588382059954083542649360180756779333805072539929694460232462833897690534365918486433490669183664716924194735066514637071330677736996293029035363207167061290204038674336673090129109083549554621066562822704907398453789637732727041871373948679436307094013477722321782873578472452563564742000185791836801958894377583026761901637104593214927713076508561521577374492768673220344315633689966655012118551439595413752830146767757674559610274618385944360648781915228541941540404065835176268230492913975575506462072055013587894312467840579075293760719051728970108961263343785565816956600889591982540070918554331207706708023566717144741250405857794867646241944115134639518396923977441677389903181267618851360186156435920500778764152561412547583185868714932115035789115071436401035756190970426218481440817674087161982090725920600816979871439195291360687530687528821235003800953352062043529032510508802873488587714728592292317733423767732568821265036257418026888986793729604416220666103721690753683799660975275615842713883386552682718328846678511133321199390811659553773869787344158446822826826836316351064563779013635035613534588602742574812409940041306396531130185104740031673312216202769118845882058007494278510086187212361532501811237488999779347357253520893859123573486353785833725262170417636571054016985785140916432270472367956796186388860998144530653456426833644684697710913115657973989028107053636626054682951273102055068928706020116218175556515339991207942549249547378334835264887615457466101676579553264784492112626336824711383081395107666223835525122736183278381554152575859987024211297697942638724385324760940117144349314188539731189986700828928984187866136350830893237748391735952575342653076585377921084973103413346116049845413034161329679255310131075516362913746733077937900999069848038986744928082310055006619622902009652522564187725631692095546900696884256131269961708851595999501830758220908765609157829741448000582450225250780466874933024664769602851979568283779670949359776053645948458986529556911002182862975480427799659753063084350699548380903503176843577900714568432444453074266875147759650275129591423825689698192595189349215397331712245701846701362947916102198511475737762770818871504465975566652557534253874119827570915096199189598229400860124055867846597554247183165578730835855779179083765919832301796775193814336807383150435901544581242200745233545719437708846931357556329459459700202258166342715808393353340769361631390060590108012289166074620887119310361109727958924207561963427078047288847253093337133907562987177027296708267012942596230561420236043898665643142366505291324846548807683149415529132896278139316094597503688700653972997037963911279528700027664952170455280383850778977353131904055775281103206896263337441198746197701158812209470353717002923580612215645531791253132328686442701947838348580737742282681188433404506899744140262098054276685065445371184066873491519860675936078741359813389105368734182536617172481657359665996165473185733174955528749954353742639111470228248271198734334583231482814788172828042381271583264412359431366500189686446648798257974386024472954459262475394039715026020761041053798184750098404114908833429561801887639116546151213158980947087850388636703674743557134639695548434815903069013620048966212173329075872160112476694702225733430933505312074203297731650844911573594468123388368395938029514634615874594559996936646960893630997960677654643374589021119736207345985762521658227838898901177281243197442645108998984165839955847174526568282285725760453257591153664098427594406506577077114765494976978241855419582208753931067824739058752821729767978041625223970257385605797793941935901900722774390086882486978242708337191457302394711401638558089562655523108781496185778197135081175404449931836804450548073523427109680142128962248351831260050777782406372920689236071907992582522657757722019062203894181789606317684714986711752553796268548979809719145806550757126901171867772958818280619592279151642550946321244882717459203047586512341208863041951405276861131804442202449932108211994663157216770710665437892021327530657615234487108405833198103423593094091243131682631705754521624943244634674250074391715546551465453878575243120362188856935416700829034084534614397420079513024776956788846413796950831845912931702114069025091829325766738937701741841207267153758823874643918296970611431316400755789330990536428413048103041064558884803793011878472468999720233204458994604261644168210502859734002205552027549957295423793175588711021650186660374633076361831660792464950026276001971293956118965973441043859611123422906267884706568477735031182290312723377973097323269562829584189966919225788206207667805379903112514755363974501295250745227001158680595281657524537279513344034551192199987315964093879187512542678187786845876339442160025684704159359077914335557326676254557487815912358823731945692785497744881833918118735824396375361773295678526212786750684030961584691121883021662096900354416074799476984916789821998675232266717425220883974817438009351316113509617845720431847757840816769784375552527761732107503222032693172905787813674375663135690564693788997827683148328069485490306996526416509916487506129594166339315060271353143289065967940829491122561765425043640305401961587075280526080838856406681638130252076305526137072991955128178236534199275393019884501217890911645879794964571552096424898876003860534142271271716225342291037031271697135103368282905423186153042347705224613484905313205748616736651857888232906422560520314849334525311597418239390749825368925046876293904636150123957710140700344391246393245141891183159590853869262101100896979566741294757420109119565910186286875158454053255081837713508634487761300183435545787478433153974296787071052116675037967337787452129819128761499833010397127279749231579734817084769057004115827056629685988482111233177826293285435779494895702889165011007439077637157278690582717534709742100666002830815761400664349425672321326478153032185477429521185145997629370544281482015112946067209033359060673772860109579597780486081043921650969931551999100519356233789668592340859594286497311467267124365443455608638357086316969959287687818111910488713613968753498993104137709943355155337742804730698483588922486486295098319710595783063933643954088809372094101016580551783924868536946980980890535154169180518851347374982806156251337013441486104918913487329640184255680678850130297380850167415748533896142069816814447656123962802045457975582973745748803348036038961499900218019618256890436994550962996024791321313435529594290745020188281811412732087825804845190151051653228377961664212343066437421131040407701372168425652254312246905213264319143378418235848666393313608929492872576899291172470779379271071528554147394739063754908402542333457621765306450589741308812860398923176942561849537473510572320469307920702177182626417101023417348345706468240149304990551066233681648546934109263340929317721861539411503591659802009111856275275296645520422150844746233025368471227232869935673370222064819616001080797663218280426044974456281221123800867990533621274946497080802987341215502088136869839283120083456247642740531345004787370343350514070314087346286006070466388207104729823419277362760534281298085565640150632151692761642870903338650576050867505848961235514479696013301572163589054712840186199767336687653853571052523258015167151304170933001552184882263449924343904807918023201156608429180194731678507822349487582671815405543956493219285495138408192906855711435284428841984685441239643869476462200116868866315374848643911020061926534550751684893755885186281639649181624680714179999082934244974194623949866262840967290049888672217917258229537976578126858163155725083537126520400101683224815742575475809920748801599630154664553182235649846902646239252317067686121849233887758778675719209530785100468882645368361366226049521981051551443485785322382256118190452715572656370332884258667061392350529806832659867252331745511322967724647819714687035868237809009137492250737103238761833077617522955338683383020494950688533003984024359567425011412025870224947685170120122539452728544260538525361161317401202012141452510900960518060100131196236926541382874042587517955739717397003411298165669248685733475753520542221309783610327780884358105150364152810419282763358411419024644814899053959382665073007354955481071811914806988395141145287737011387819368950544391216167140038791140677307489076465457734698404519848760230558931826184853371156640818831000931283498256763582310205718859954520165549305293342317531442245053526118108354676349401280224695087309763224648740695302699386712996784538965665741503286775744402125931148916977678742076666846403916895550430610020769990238654514189267370938028044386030889530380944399155150507421963362070467480353967837530138385058434301982204916040804703249527419147582408751667016286632434727036644138485880326430607697221523088939703196154486186189430054891297690506682708148911747717703312664166103437661865120688739877523496556848548358088180117670958056792848060565943306331374306519969065816208236326572396479492927797479430947041753703099021736191706477411245871819644784296801640020357817186784153573680987721536254606668650843699546508772629297699286692575795289118090817088781169186927616874206363125198061205551943833541267686303279740842038752402735515470528182950644869879836096627068079186805619460303066781698328062002663733941645384524073626390249554832235207963726227622383387876486816281899566390074466585474327498462203913562639754861024913640753298138002592912440766175272785376735431586779308240782801026350401551931371596817422870319199337018340542909581372943632208765886708032511099078357480854354894757396353496972121473729349557422479800922051265035553111951799910452273124441528436214986869239830409508103336611581756408186132437749105148074376598306219638941853284156268960732398433160749195860489273569576752742286980423140109393259448267718847665828684951278451062727728020907577612143887141379144424694723967119987300679526828600333949598474361954774954168559063448064272421818252263511885590881323782722756117852025935715541915729254479936257014059445684149619761298578607424857432182177383039460504003424230032349193945075253821581488033674997606020100263552986069088627343007564973577090039928043543521169777725347707946078996542353339774234122319812804888589248147273814899881335795506916053514044381788494019063555098149074111657677978314565804132023942138181659981112991466373116751686769756914432550206503908904616508391428014362585872757182511756913574933463369165949298696068302548852202541892887732760985568921920206976170950530730677933895566954172159439796094577938627493431416474998907321989381989507967866306664617202238317603450821136862620229839837816072735368932499307192963690907215019531317332551069610705268800272526987100093645564504002111307289904424211244021206276592552615786687313185473922946992507440839187368434831805570774545915074118826840506267228621456376869604184540169587070764296860549327793894397966005648353265948758756689053881055750139031965839989377431358903167120680415781977292679258807889493267882379693957436159099450980323881916941966852666418674667520122536226053582086646249213063033306982081932498553163358036326220967080298419001148847349116607584035035841786808289883679184931057821984588556295560024168585731663995413732973628992241188410174090963152415121149098642955538025953426200933804380456112995244380465568177711775030263117345098835165886076720044673113581231195283057474047403464406009641936183360026474871161905880474866540626432768800787969943955821323306153920019076651809551312383448873472376234537442617080061741758015422272095976983097353051286139205190615279172382337319658346618030208340288371428943797922737246668102729413604287180393801586567125664847535833797885653279538645008844947070473964514770230952705688095428361548341338531351811280527465253084232045662921691069892162704135960996202857229046431040664111347174594567778848840857868304489604733833770567586226810367259707494811133446358255867180392631810094293233694420487114950955651095972133933164372434921411838876146317539890348977113472321888266205166510796623857043174342534204257997992768652826893099048297046039134631461635265698299210845345509437310101244770449075432069054578929048552345721345249250161145697337323336495627042774323901059882661009827558146484473111312269879856671336938053646067842306673503893579172633641489534556355059268312059943850745123465931534887549252301826935201862772348715993148737517558119895683290942668730427069083436852114567134394101065485881279694491274468620552319244282403158417770899576804138651170957353718097111195407295702106812857191521454258093361064848792884051058899029663686238532001700411276449742063406799808821447111998178531589035264623263358209947093143237573864904352647362697899535134187953304177844000288194374235753727799229498470367662075958739190286243258311341256363541785936722997621706951566386088471267551381978953175881117003325696612818464389043014833829001242864866436629225656347532107011448738049411456592944459958002150839576841126105044964234879113621618111911699544726204066782927670642943065110288132470733607726508135210921577641752623995250382639143963943723129170257405057106977619885242840914464836184423510267861805898659228419960267730653758463164004515556090902092476121879687013799538502208440033632779582469489118461230335384963175767495003271749220575598876999239156618645658380346125597661710546089841726094082296633141408787392606002564873150221247825053186803121080276610593425327933463125641008366308473353752199114572580382903236696709173088377671565517624391862044837011342976797951505462973033661407661122489903632002875087717688853104470441497148914170304603164580074822083521540779888342782257942612076439394814321856048361013575278730576831915224447077950175940591907151183419980013170491033347401429890654764006069569270604537573572038241034130470647877126700243856273274782657110701388069919763189262044470883913517625787674033664768404346532950105720046231972105569717689959271718419447140852561695159027073059872218586305333597025404046026672036890537602339755092306285942363770998973075444143119619045434141867735015301506213308814983924854090935967967823317740772522329614279507623205520258050379202547127841320540478865491333466687607602908524902496735764884870805912387505726117993788043827534632381846251202731390410854373946112967301759021887961292449638773361257336535109316762389353791141375404141497895407001841658131682066804811137367906983427559346579117721649411391479396239064031935531159427273653957430007001896396949327420044518807259074071169688541685839301985836795052177652980557884424158151408411519274082080848369842077546241363154996040368490965381343924330752659127340061537957636023393502421036356701555192603731717602689524747718126255363234394563314436774099628485892984621995750683306048927036261406577034663749973915411628999679068790657912290673053523591498574436609520253411708791864347557010758777246880493542112969255456414117128382735259399249582778339550965652638316709066538128903019934583961385340139089041606592337394889091802744589089298417498805467268758698527239854559404184219068123189255492919031369835663678449712816656694401558056130146811823112878906256326032541588774514016432867407509187724609451513566149790036264964905043272244245356052407970164716517213332492888311371738794852399939856648971076033463924251252306896964820827163888322846206579884513598862864996828216432417962518466080636057352687708604830892898837779456629790398839019935635365429442426870406195101896723273330971221373400377154498055671005049942525368153846451274419208915115151581377149979320975525522967110227998751527360860857534399987790584150807874057067765245435937540053075818984610965056261085959092445887707556124347329550615843774957674606552747320051318727126238108084800891807300474302649369267246150238022127604196342579678264428719200414385067856192722726131278714256562572784678625475471323191614398970824707993937492493450886221422472627283440542744274771123254976704012551082911777042748098314323414169949003721445615432172142864084910663702497292756055014852471384740305564509326925538072045341055801449009450310227410608382485615790003200323491949825496444944790398896060981996360709546149385494417363542813373280882634942962902309126560637477445682381570526530988268662755343822988574457108138181584436984006300753854534532942911647357201711859706579278234994617130390116243162774353444316744175906482522775697863895639005203050601759908885726230757692461954260393359589431860941322615684660354790304494080183596500516515537355878965744476622539106125717593254997979379548545398433222961799329466632813919578755134860443632096590795097429852697572944975686900039770089222241982099693186196967142499999758712549850570766892992415173306109330028212683341282832827611760004578840048475342408736344012447675089325838871636861096946124277597266797293511542792703915035652677982911598034498001598638348316000585460546631889068136253103398588437277600284937611211535825418769936287868399266397098144729869131877957954537559018698909158897936359105087280951249736584096972892592868932900524563011363905273650630333384415802911180624560448119008667831643823073573332917730171898866115208360651585223762164975353312592649551018454276711807179521744221706008041562941949106313033747216759897513864705232419695069123699711390560881858585173324579317981722857289562561905986364058824163499532654807377288616172124126210138597353419142240053358848525481555807200092168773899990488645281260164871793772560599574638302025446264644001701242044161321364333621054702345770860390759354376407027417715977025382985112706382524065112090628172514055616960131836825122823996045438604549392335448525868433826406752937126327102983184649100682588531240728058033214764260037624567396812602314421004623262881859151758318212755653642467211729712714954333412864405725188376889900604490530666420672596427727678346071060941765475844761541922619501656319398137307788487076442103260998389147804348323182429238179530930905611097709436475240286187404593450619848986444562542472062678336803670735930037599640367342988829538266647562990720617824323755639305899174385322070848782928228236455172672681154710514062069903464310388249585252607897728644863926343940673834202701344255216611026260340104926276077150683141549187048628647258896195755219401150816702491918772415752916671558396444882496981086848137327340454854220103330722430371296570676084174062928957299012010737553445649456796805492276870030335051193392722767900747002938214266189975259595155125297403827095481230414447194509973664564405235119828540294862134341326003538095168576785101561410771744692348994609501717888455348296771261839917319970214226447700507143795993981563653754402459222734695846403138888211557050636783893340660217575995908242959008695379038447496594980696475986365374989189494505818638587616313095685372043078292641522545005619313816371900106255693831118565884837644942201650107400403174119887449166994282104769612008738904290697239214457041123480269458305466402617200822135153278166429522160816786348278489157141078955269056117902451149566950923077251639639507644821111322571571713493207822993877185324539233446494576881544227058837522008673337284584808927895092818129193472247566590895443861824036895714405108355071616157008490874300186201958643381340290745840987967912193184653093661035996633790128372492547057950231268582089665217711270432028061496250701912309021190784383802224855132061830911316605712488120870645602041613246548480052388898294936313900996947810392630713439354822303226798118850964972410116448562486740905867166932867764585164110662602352521435218846827793863692986408354896449326480640421208788515572133376566055776321882176284055680522002433466292518843216169359686998574766795489776364117022038078792478786416891879608932744499822576610197785780817713256374290779967559847291133217834973155502875514766198614105569346411054261999754392445333581155556383082833309268102512176056637772634822249618084061045209648920605397966594036699169193969078433921470364009973971592243316152864547773163376218831237844700187841868388269459472208280249889165719026195824593522159676072572149318332173865368696879207811653361425283555467353861191402720781419591428208918403467194456345754817678447835901349836603864436530894322301689406066210012648457492104854803452894826728283566587881125890563856985200961405816057331584014626852262698191057245543881122110080068235738754110144965561457176392273872115009576919427551063982755922010305395203158152252480497215069601271148061526158780890078054401965977901936305315898905616175157953414045959345584522812402662296551711767215774111612812527424400437547236943905470195885785058779590370440800847138037670214552359764493336157441177072883470382459213085918014237148316977971475014435914561469255397142067820487827309162165971292653367870814674327877449614075352818968069163761314608180265674730001601134967665078928089543482524749009552080662958694316759954235439672168421922712124573740865988940821391857725040817310265304674631915759290862551087080871868954332629598711116819801446597029090874529716948661829357524636645054822852150181201348631386563426157475465150264140431715643574562815656227758176243102212261922776743617430720151071019681495370472845981025013662777205099622974176422442079580025188804711019216491012931450561619929445403468536244821273832397910318805938120404044066322749127937509339296004987309032238500080505255841314293919274623773306275591511427073860971493690604787496304061804404729600505358015667359970309593583809818869281495618631827533547220662065485948830739652474284082839273347266138321358171849585971798335903998082945545096379544410078516457090993974446621926551350301440593050331167753843492796709976526939505314494468091844269775564309616663926911867310093721937754596689185450685641100525731074619831166335665284508930821192778340125468220330425561441880445948315344766315680038049407746395918660430861297051720435025381621218651770179516000608489945813042573050030157827032207394213062025539459068833132771344375171747504174362413984899178345774250092383445400749493568193869172577646350103990820893266950166760810530568797555549656362155163671935152557696614046411742019287856726731510039303530172031669387491551617243341960141245735996602632515874001918557124391229275949964131265766512806834099591197875560297404332645282346037083066378332000442376369360175177471520247205995190238797677757063451492275947522485164857514266886655534277580056318511939909318618938839926524196220740745993974723497200856229819763367057855330092119012819524713143760184000079573195615847228914549698633720866290061516481852702988980851267855664996285160624830469882389005334583853373909406775219264039758661811417902473087421468124673236655639860406356356487372861846190802486985973678839958142515711771842783515736492461555326340137193165191978940445025097682785156235796227632480501895982775105632958267231318497365012830767588593287758341460619793409114036363315329477417978225400638979192185898316840728193270052931033426415697880773014774812321488297633063419111243554880669322283617431417240823234230986079899537876349038660757110389485980614743736217495612900054067566096687735540353316842590264508155493334108895309249283959938626044675067131134259413417387120673509414385329651723890994686456904976702568547154147669765849625829651572563345172776424441935671148107470906295987688805763796554556842711307788890840248042708225748896153175638608209402744302857524203384427959753468363741955318932892183834138682465136150889127396585883895019840280762933118315934368541626046822608523022663244901044958327641985206876638637350269252174933748971877722132145941538092102704528543827927769169954955180532417168248235863710477757612005399959340050615807685132512624929350977705445944157721879141726233556639503100737012117008661719597797328903491046742425645627408958876499366894441480501561546334945234717192177435663935057577344360116667046839825270631288388425944209046982951071188034090311494200461453709380298721240744708044109528181647423479582412798336424992512794895796460452004859348823582670168561208473985548241865790336514806060800425285456009892321214792284304009517192407342527235280330733183759721927189106474657282835327638778474761864398695432000618841053716037001635658846486016336907791871554461251754702298128115714358104097064325235334509613016869873595620436991367505169783939225915089367911875896566066690966546154977745735595074993675020240667290306728953679515637831856108721417906414797224859618963041323241210206319500027852380494335333943663886015910871011013307428506243115834359581857244757318241207702002422741751928217697148520251044648800532387146444421691621790124319743137958436268006149067493693755088198980121779734095782627014698441612250404127350241136719065784054378849205657561007232184175325630681978199977756920244553077086087578728872326008983826176923876025409187218115025933020062211963100238042009388577011677736567159002584324295788662067505539421094263106350355098919141521775174422800846865447958710906338391316543958599286198328353061365584127696984655015835403360088433060989015103108279982053355639039503703893622935514439460460154014370787292622794271915378271376055192542228685314768491924067090209874426705724054731981755208732210786065183461153863581949090975810550324412438722742353642940870897965431790514807032814667166418463315296817710065774205233985375761898520481793593154009934320508855931452802055887094731345936996224363369809998482665504915175415624395182578576143016585989249168463789509212068891835103904760593683249061999052882450761324747416031192822945590763806980198194186711424764581693379729256771890537582093628738650273566586311201832225265360975685535411497982506849156280645432933080570205893575448491110231675319754082294527264819508660629146194196223352514611071666629503106933215735501477090923766569659899812274730719942126089117133207728180418542629118650347402219152246233970868446033096671893921490611296358270972913729934938740696734272720041273940361643261652678923533695440935527615982360374342453107012885718407985776919541596848471894180425793667602418424781929011479423901263717438826112538478832233336780321143633487884831075014691843743750033822509969318907990605716729599974584310423976404368571721109013719191823440211469876834038349250160107700056463599389447732367319588533553608221804213363542172103056375819114562810128468668699511312263409261693331616534758230646434296129026170431280784047535525977342744779181448869018674416228316136530375238820331653218485506477127762919489118608006032084963212845887009149131726573730005612896804725199591567503947673570274382490114041026602040970344805038155791640799465755572132125624908618770373976442949996898739052215353125318271389251786687193179008855881932140636567334095912643596062373817968040291130875853345319428564451629938389398473881278918977297886734126875430278179951097237687093151525033001647220521419903547534975330457108925835848398684111574809556813788122448092014522421735938168264992422634793738276413064911174080200665516687488989662369384563601538341004079227276557341098531177465659753489225048365281454709430445529741269578036402555070773200435554257754866523684268783206590432389955609846483596768308756991983625916883224994983159538056464336614905981915870428117803162514443178997715043101722268121572463927818049867342315852937691255134071103066457301434680270503128248856678487144793846124942410703189942359454518457230740922995905202172721938339420991196870493888732914395924773537861136193672892280864725586362422305997732585226858646303793598321727454498026700270834114041080050794260453196379742559222464264537459565932457010588576710682920235173472271531250024382364575534629005908202667680734214794047966717658851264884197940595625035432973062730556389350849762784930805805565816181312225133987290005415373551345188551916117921397255067827086961673918703403689230038340867508023537664751389297851460399724953114539032434966352285059134845631242399675637105853950305438319283741489944216889748308260786529795440562503765158083963035979874891606024772365075383990150361555466430555515131939017645652800238711034461129604547907486883779113337031521455551829475182402206656059336838908502107449617214182815072869634141669015037680462185955719221898729550740199171984344223874698685439135566505639230676854895763633265640883502042031932156046989284107620871141249455914352952062684043026947434270717059670954381088080499559482014300024494325575424671294533756212910911302576813606150080973325537471508028572337101751395937352687777751381800365434313723770781724757216714975876921690288654984502968745756761535235666275280183858284782427004087339945762612186879099103272604147686678122205099197773968827257964238379926071225795880349636210147625355886316099366891883750376888793211304252563626734192121112793550440209752518572241324825843162769751552544476534580648852462522216382146275063094360014686493887997741822439481372857115094326492194646643671651691837435767238692948978103799071915153363528395792343951329106705685089011221331796336363064243085652890804435251579351876269201448876113067316207751647868621774136859955729618205601463422436301288635561677776240292308276847216368583701975038634307165354287187902898996126477677499865229540749578745461891545773497329053423429684618792886931868039391392595731812842769666515254985382682331127490274728534291773151979594077896696008335016365642238209677760261868015347488148804536213677880997921678692494876547772522958358221830626909196440459405091153708821891787703952452474486002809164290869752485381596814928328972750373892110535278822205603532489312818953961747353201658260601495716191950866659283630267000533675147296641835237226260282117255156418162661846115705059880121060546506821209640281238036201354540157441700996983536376767051367815441426190954486350074965181088196867070089992973112389343634753783436416638080307996102882706324751538810854077843965641302714466583910606474087013171588576724269419616180015291707029041454495718397045508499545469274356248225597263061952795706792577566344369366581612202670595946333288805629205989475765264322244395543517190962232213808271991138974642686971649917784276030729999159047072380227853004436862952794443303666476428910124557993847840614016873123404181001949320314158069822516573189509671123453253465292511983445387369881032278931590256018913076485162246419800588547323202137850539081853855643942272115936794687030543636748145420979441563068738868577189867275936579565883239477100918863420953122347871315075772654551337930143168381944123585875551074174195981496965452412226314861753853755682193212921141215086899590042429907220853066198966994117796382658862629811010163840972153844271558749433025165516910283948289651090519134151213271440401708897832786371908826520496352644980158970746895475909294742535483810220000756457661471941216179480837653272670219708646316990539734078565400648728561180331498683004874807589816887125490175152817551657691338777831716514516049389854531860245010416779536625443124858628763593589278846626060949319420707551289850347666423950742245786389712637665205645534231418239297338562678574931960646135222199300500081001988030108317529438794282744921495208337049296740381850061892070386155796042975218580352745367973925031426485922662227926745840825103021817297016165024243831887598589403352892250512566575517133152832355684754372324532727302356725763905130357070653893767113876278950097158791039845687600044036121502004833364912796688267627889450792936326253394391933191745077996604400686612755675092900266465340833189099096736237393065044365784213346894983450524903610753546217736846029327375408379923473147533359474796035487877509589295895148155012642871980687507423077472836195633283412882722007264779058813937857772408564675582589526419685700420901674391197207470132043209493231925497174325361571870722648731180466322414964286285999069447976600359096498942810832547246147585525159647331069606354862325092009068110482335493070375864059711438559757593820825491024269645093027971031675666433743993968831883716695661411889110808605063316432785587591433540882446037304910549236699343301827414214698078826399958587080301747944456307802348947909454384655306345263160909617478107328761774685942521493880094291430200204830355146135764222208747864556766358565153266853992007909890338472714114152440000386558037977366389084090106125078576483188397032723406629566981460180291878978556402422458005436281772833430836027233326607630470283203829815049463753310083206101038559256846896065615999083522806325416637861308927706136183618074158511124812904762075954339355029780914174751012754780341736414017454250756490002222483732398183318878910829694905378886764268078587073010403173270231339567289957559525048060294167524702964077439104236279030618524126077962467709168291270283702508205687505323406045956912749234045936813427414998809554026698231733554817544126175610186962243639236471481078388279232457628117606481597457680472302257926844879100705353702488233104998421782345380891922634513813004896497163260958660270689297449531481693700207549835539428947939089645906339781289487049080549784519744726894479769856629167295341021986788900179055893549124337604352037373346014353678421758277256674083846754884553743030317546497753267986981300677949555867977221025817838864763161978220341623309330876564228754165098437825670808158590038229889697697908828906515097312843709949416380511807684316499012028351618348675934096206737012164358549206589146990968217383752177399752920455529956387950227040443891491225809425815676846701781276314474258415272596650882139342942434012352444759911723581676879927691124877415834220040597560898616997029779236620281202727532443925334932476112629581481233847087240153799656923447529332727780511196138049352337588200726529642607468086358928148601074951859259424990884783665988017002097392437728827251663490810745091457945554479977733507490069149122783038859572743447619646513733119425087574319644420440923637054096816549848132034432567666910783467090734760964890081502039952740192249742826195857242284222194722897360742473687419804190812805289671421223352426911670601522065252845301120873894203168947021269710642021375352925082334866208980346297063134646747158547262889464869139367506617829755514004866827244258467532869889383617908719123554790976949451294124198355657979229176371107338059902691072665618148755919430050010753424719471698007226894110710253708622940610125805518285986562557243908577103158789684443552374942250913099380938497280353377561599599754166463765967163376010426383372313239894779655434616005830585305444691787216328439573163633176159783630306184048357183692022469492029473020607993075429401985625234005159237564993140113227843077563958537582222726216932454267257343899645659274923718997797794461223248485869856189046839887910618862060366760978286744189563264739512848197490807695815160884540631306339758827387224678157001271821048840186957013619976562582035290218251480822659946761452476776029623757281697059027620050702301764475082074802072022198168562262917963626078640128769441978878792066447913370116589856762826787685655500266181668931747462281819200582061886210655804134028268791141205242529792979490808152336287503529175165070061815636239515268972119775346854050960768821691152240151402470359230061532553870677712124850760997220394859608688020394903045364975059733754618990555289730281608797469641909197484836727696986497479895870880391271566518174049961115553621271881053675546480182473063336178137686373152337689269987615894598573852668420582644457305283371673136085465784586707221813694892864039516493821294639828855584008484695742423957090886632574487037038406501634857261341786763965357371843416007619947074986534829299531212160347071820217173274752594441353360127108858041094241638341384348167861776716545725928863760226912364404549786587340973611355068617368649064427079585514474830853580643476195824280108399065924233308637922880540762737784632025408795796579211076984344065672209424087562273836715961758629571531671398492612165961094268732710052231845741985951449995397858835990272766896434411501915294762912478714479700499638429115775778523713220444063076536371783570357588427919716148692280764214936274051442499312322295582981142590400396489599523134696783566660916720217618286836069500934705925197928323797017518349187606895638917589027977290953110976912229882147112058856174153142066860033692622759157920424013843729810750842929206845041894797226470048797526530965366970290849219701898270302880871996203884711441187611889173730203021810301008043315013308401973492198636459719840586404989696427039489920675313364336249516725555857973949150840461260688640396142262862593014096091570188425504178759852148679675471573489729238011168483667066322887516973313697515374235818418922662996520961462384616990375358770527880072645359456816215975466881577592986674469109823529074116462685701906607654552703552187798750426707412572174657270219384751642914881404815290869194249831156222772835083414595124793444064470016631895711623741112919347664889182772962395382609946984902766243388768411636370943050387489031832711894685323943638518555389124768852788182969890247216950664726348354309131213884130100234583697122518068217741790371505621452319230095523446313229904695364439267558116832628078403385113808701178288594593419791707257700907957879100683630051787505764384753678964466111154020470719098577410643115415407338754012355486326686217673592001035437137984043821812018162209033692747801091825943325371847338147083980691587888109647771474191659208442221307904584898841298970218881019674037460106416855221862193980119513640914137185847217622435613640256096866735656969410163132425073274857930334437918709826187179501551006989521557747938320411133748905246324104496914563166058399374920820726010231952453585036877154131342688748889787659992029997827561539855280668645942645791691406272212115433240434570890376707553302642921731810955655864330771135140171842499009676564645115460257802474759668420803417954847042299496854795943589645151750297206330305592683447630367085226870182327145629333803579138680546353049386708327005329663189038645165748001431009596388036814650800912066916164760084051943736713607900048015564992411758550396729112110829471358884927315114904301414343433329621789563852964509119233002500436297459309964658390049233595258471222427930185212661142488450884997328362411731152326640713136105162240550139220203720638092334556008105410506093400387615533438521926402909741595074400982630308293312201042750643412443774869984081458425369425240942819470314122308435180617303243401374402354642248743447898542223064522976769415283238367429189044342259005219692409022295207648002122793971030448452617404656524283340208414540340934830573181268762480542357463871077598125427846132559822725980605440323822609042883618647480902140144428879306320152591045817327847726674948067797147723933402814597666658132891888344469277261691092907778743476422729278928775595904046017368940971074848791841188553622385511478784136786373183948503904435038947690908740968883056365121618404919633868682984163249146432026687983714439362078609706227531154764544392135885092506294133157442129401160199670698812204319390849740813552801159760405102469875334916535987602040701071627741858363653778547272949302383478898891064766363324718195146561696655096172888589389189785312279348668976200071762303495565327904174438576076936899717790910849487144465765245555392665520898568977967472096008676606684271549746829658982941778097792443899342450590118925139783471814749649070140987571317668622534771137386738843682534257114421549832992457710181889080945515699813371316551485447799258095535864158534961446764932056148897174347122940964970371708747399259625234750708004326407507560389908862733517327260945357344526268709323535876780519541295050388014190658740554012469117704413460808971952731753043287395948508340647155504200582733473978955291842496477343206343705409605904512001930909152725400537600249907940210995393037595835694007713958344968488636179578403232986617218375729954565515312495535530692249368310107827248833786478488765433556081918704963090644086907685809888723163239883932735459237071999630332014793378777509401633090285810201477254586258921744771473765681664845140948549296690659604740685840282915948710386904446487242741474802915265128662329136848729066716265039046258112853485010469404478538306427414179424817118624309809582084018014041124051287808267902499505752918500081420955673824839801515251841238301047557289202048035422840358294280937593984697166211861929063409143558209983475191695602187929440300599284731445242329767632644705408207916767626025753911226920551320278951981283619089905523057947596743183517278960805092678519967259979610075207554051379312169337938925565610992850596847292337700900832337160129417052754699979856434447737952450496277195548755594297644047236763581307448396331302418372803406644338583934987521712293227215736108865600499770158066253461086246229247474984249089316119314287400299427796365687237160211053813663178222865593866522296164349226264169884244428808635506184370753491819701974056464371363268391041803722891101948402375628090097023349106017904916420551629539221789212961546294003431676016518911349236672503926567725156019755688036685415052961300314632533765177747462717195818359976542502632193764534480133781763957793440926929709750514573689560848244133864161197662774236455779112539869837612619766454686151965513386052244570487213759539053644511094713064116350568873320928885426239037061342389630307954682561872576681503674432285964183359405631122393559573566066488602711370382379436931040158591065779623608110594545032648077380901829252849508597547990012729576244140134132655211359231197002226689710231708429626422842423683993605235085812881202659019090179371119860721298674780668308124327563874618408887925103355353441676898673571742727406210499778118421411109821153831701429997958009135257573592474295527142409559527881967785931775710785543280140703705879918007764425480093408349948950776606627303684984248591241674237050529667921446242214045718877670705779310224377884896923884407601455950446238876963859640411865996820233511166343247562183443993490307605256369055691306719710366517210400027828711577702674278291330354684818452703763138244035482269469837561343347929305701518971324637200682580722743667037169241281173434537212670946572287265955965847288208012847305995433458960415437746020523101133038526265415013278179647990680624959685247586715328162370198602238898893197828189823012959841178802837555754526959637680933325406540565818136809361113878436000659550032209823765936405620480897910294296134644422136439769748220758547258506119255395370229457987762613865301790062259013677101566251942997731536255192186109416023458182674469422275938333524648391219617839160075080432554307274345578793261354358505827840074029589666114300372321358946373323701082569327178691779323359380722271371162842744118124898313012842796841333420279488487877961324773604701317808490760078105854578613473011682285562774927006872535023605247107255188940844146478615275596189241542952996484698076548987089561940702871537305017008532909877305253136946952107648158818850598454621113343992913389390534741005770312597456098138177363996300101421979007898885486184455449177920495700305161064899792100770630690452936137859732806793185386836225442096457722006118930793935432132318801240050446390693093930439060183011866619775544677447595424439612002741272583145002700371605581451038867006212879371285871338612377343170618529927051641145259165351564053966218035383316993262141236172808718375713478595144221899469755851513711861881361316007103161356265992069627619828616616218816651478508508015661657568290109217617346236567530407400919035345178403988487200770320330932642915357284597781735685626076632436014896649930975734080524366209595731945104379684392372451996535692372040995042381583357190504685100032544371560941756386867684597450133698425605156503006037871471802481023626697406723582992966070533070350467640529793708408780958631457323552407859303905779632242356893947671630040078209807966208193326927009971271798345208221457456899277916907787775109820264365708805523753144533640314821647073519391209324774406771628466516394353540932752470115544359360519784885823580251889768251408921527948600923088367639828806061399353169944119326964980626831893343141817606413629135461854492277106822199760831306397026305246926491290680019539946600301404478862488097657253223664157132757557112265167353989579659035962300440354660999258253611302386563985505168193870540422970700458001257408200658927694073831540652836682496352674757471371431878003771965346587984087606517575229552999735402731312038767719843825800713126848119334704677044009151458235246385500123874634519826855733417814179187067779783716068165802829949827057851302223699918996899326410477292804319717960812389602621901221592802798133069303957665624879782908340899712226772857803943076642562568966555142092378360223692554104694563728121824637111735277332771057209800524540866173546472888031478101558382076450694229184888958621859227621907886127601559537547683756208824036233638298233128699865122442768251162758881376654166705824178403887790180869579250930790765714157423805623291686565067103254228289773020190608378895766182751934905130678275297955412073336566343907134324569446396091022068748704019531495857619143488183709991240900547539082647188166705599487499073227458796601954890345048406304225928360459489027560760382211315790641396736586339921714351565663726158973295307631920038651948661938180122977390003442575867254236614312180464985553158463597400438669748628809191192516171009389458753782114172573026985186742141752315401348184261562709786983386832205171485678564646081329664039025488225365059307095232550845388552958374059360575990830563158801765673991835449646264119421842607036315936365395499756961566471833196347436683272566241118674974662989527125202781453034049762863695937676366994855996612953755343282163106523893118979397964051749350822423095614493797751731076161250186003736602056700724353766978158929795488760435639465038804312220806290438745044820892263365346407562493395803284981941351239076943850009880483936946062074791824869646634116751531267400614128179985005031314643458832508136706733350458184192759156829296008623284054072401687722481291368284026471910967968925636143184791039521979518457905843850881246691635994958304048102178991522713661375501029293559998213392748212914724399767007473858891791983156737292480475793327165646413605832866097643394989486194286786388836518141891816022155366381638374654756504377563415101227408225383861578959848203039775109365225510307499158487574958548225081899181282717753734713404534476184953669838323887566199143687288102310223679398836530151426812081013795164505692440068410289687709199772518621630375392150516859228101473566482104819681535621080259208022557662963644645565790000318006206330383599708547509201970652227615864654716681567004911854800962842167296781184574014821619501515032252702038549235819941848144757331376711976892549718892388657404791099445672479055171506077925170289532220872436864895821602073205381826391896783529481558905714933685722578937360836398870975000849814542045201266821577742263575524076505436205172176823200312004686752006041841546287113869069085526510272119980142340320868438587047704463706808167644745795454199942117585886900145068943931510873847044689355110803535412892974295336168568879486161255419059861199354018566959843921427153038966884837953884529603395023063685597915822446169823331733553877908790701741842206607277359844875599198622773832723075811418918912604845822565541386736508770205148590047126197222414398221963689099877023876461757335388277091977687701969149571331559408676808986723488695294568771525103338212069835470141806247370600956988697327660603669675211533215790956919720665415079202335982010005358366498197968403495864628681036430126479221690426775339133560300383075130486883280926007316174957763995832046350859351270440672889211263150674398955135624768687076035115358074176820759310569049500607374269543614863286620575204569614755180717434533875148755334361691094992490160947242726504628072256804873209666741264365787321943067830275877971820355921916084539463254108886614401058398486315338506326830100787497476887056589727042764802589541323579070097565281158761707284571462474034560270412224359281843740821802953788491225558282442553068220753744434525388727704624375880234134463139421992900867431203414326227962404328146358189488379633377987858788124421928163583638346659154625333778609174076061192649994388300815562707136201361486161478248668221350497644784075327026794905761318673297770670745191840933441003964899728585592345702910045783575368577326585815366385726421711776845908569702000501887916328286583802870741786896092574472069506119112092086608549658760654982860595809402998399801479480267233968466687091911588312777744990123949220514797508829496030862552129402734157873853833126569094549692457898774857007500623352249309578859898510416307289270621590053506982481581071636741613778033907581486518878178279019920906154975392952614901668598719154210013775260108886945592851139885119553530491707673408517970562372078829877681203875240043841171844003876591264270793593168271671246484051515050880276921509862604952760491365530063490685376359539115875168149331329573476453426409168629637130110422136278639177922766823904643534891396955446799664776453611209809054219743708462419832547052488807536265432923221477561025137507783397935128062515270593450119986640151501271542218121908667935155668807717631070301068117168328725904987548109514759610662366259295624138551557512931883426116340242720751896231818173098668991443208951719220591183616076389771393393620803756593680682838093061658708729097785665930746353492954033337637936505426643734632300083779965863231227879551570437006398356176297090395512848439472225078387868411655890800243182471022838946053848386158492126152830540942552575716842917274302536919342375710037338093473386618646232810754423597571244458253529765318166804355512738765344652491032293705804832069953345016806807371622803671306020474178623990891450860923018983764030009963508568226504350411333580534417989887269832904936697559945995511994262180472504748163985885580034991640738039648238751866603668961100769989153504794564364102946742318056269484602282466213843063815316597092995590527744334806328831639180075261978289762647381812253996693976255382255544292718643116470368556666664834113758600260398150829608032052842667320580245717496951134871896937971395157317060591047601560309972423628469894300216287379857995234842497493624508449381239378998576942226846230608394532862958923364236193894491084491281801761937701757732533326304023256324132486167204919781833440304898799865573401846038160720902341027075614458879250586723643726166848152190032937480915044646309663553364813006267322150078473449450655162154144822679649352646086620741269863903138706244641248975725191441896897234238055604404821133238631927555295779519885361455326818816478152125618098761789774471405372928189697062779989563408874120616089437491001692757929367053589199757343469252325951024627117128003804611779903305098949598703275920813150329247979369670940630130675800234801220997724269858309448689995012195969199726676217528643019203676302804452080552026755805862638427917709690144344539594941302652035139947680547023801696268197342448023750972944295665384618935949644606344447427977576630240510610383294375557780255596708763951425674254257522926174819833794747290708803977379058125182088157832049342881261864728293881765764641418090839818280012178641778805612177010062374840578322209185777103033776363320680921481508279721226896667647199663857554701333580608323961640297547094008624298892187089831878910931960855059604028467986910225285378386537446289368078682908724868429120820816151165795283389865969674429471371707188657367282649688191690000642494181071499839172939980044661753984113758552358058732236367393682540053666288497268629196378859272692889323998657355614513311912292647793729547975516667591306391568217546903971094680660786077669234216213805628020293914589373815436684420537635438413464239720834789241498567832402081778203230749696572754791082555112583621451945492674194509092795133272883686801766940396390380122564726686034946517291389103006493395700181172841252733723760373935393038356084984756445008108636221149152236617969442218591267411230748326121954796513727678062459528713068314705519314284994506637465306097931835748443334790379058765121875221824318830680170465100813309186443905254131927157755982917794983497105317358682481067753458996090454377663620243544947818857422902194109120757092120817535083881324259776477125403595287011413462717676202794661042709801174693090092707052771618963068070711005244512721980710368564899564661898310034660583656546316788920148255067100053791686368812569746646027263823301138368633721518947883942697757489193770905877128991897280256621272797102671710676690680274994966704028235275191810626123059970060438689256352402263402171746760648049159511436876263055156415836146574932812661219584651331136060631429709128753350304450673715208242027840856247987574163710447698303673087676710845631930376844281311674753926046615266243108509796909362486706723237941023521925555030988884673657612127920909335510919545867984705376693520015223822876608606846477602640058626018450762849473822567682170101082041217056247699858217172392772175262179020434922920306968228901627090857895513510626324432122101728714249586490269528473133751395064169108536674864876261373066484393351489878785889345253972394373709616246566253511970420028325919819257226891663805664002222814328684109233105196979646459043283618566121614061959713667639403417617232427594348695768653961394321448046106842003649694782513760985850181200695857229322230281901621272542900854630980401193480523050977304795125915850041016325701231843477133918378852262181200723479639896966101711301643730124141044799988820502993882559312761957769892544056555128481127983903840550398401728483832811665009455220376360511282598212332900865925671036938999023034030074886457077306089286383268135494740447235590478028703501648910621848931781678236862882525336540084793885378371136649412177817083705606848879389467190153552177015461293842920761857755959768086994883021838858936241819969807769078662198255737660774058889270388594536742653496088376323363689491119189388463070238147056979794662105306041157066737821772848142839305996860722427196632096167548619918134320999803067438795062879858987256043742895448683789370638013773575709926176976833545776097990297755689836454655548373177836128826797773610886346990817474521916134447247771634445125117820092124662440413550800845514608770656486145048437637819421129238184642444818218514866110595355444924974954366519176436097569177064240778238468441752310849230536660197169935095674524679519669877467078669949688362804711271932900384220914780799888721690718497652393609595437268367793911646297175866202553874179318220711940274580893814994923031438705672411625362486783465273326657158862360941324075525208475514305849859965604922065397608986036968541562693441162662942119501200663963795665882308073011596691217493738373938226389750019211273589705821971363447786380817367172771579787379518669144035548357393055844748699970338962516892567894110784465458227887964910935887549402818899571449429762348054847560845290652031064001262260519934782532676899741075298502061990100746011852440332725683181586057376026411444923468540752565988444094036400049912613087443411473002362865086153074506960702863863115480810251578685497384704172053270380900529247820292919875978591818952033801640699018116270964157075459640436196316853109005884282507377696908625576682253348949226572881053650665634779120827228087367040896525766110241315817134682476209967096594765223765079033410476319247843085488187852601233004659859150713101238685594995053127870471966446453222017952966223847341653004032052413290478069600569646471130788793121335121605130167391217327619181655344903852104695781857503262192798565644515405071255351500890661470243361510449340729273755953303146714685403330323460808731007242575989141865231764075033698966934417158553862762949818081056396413004021126061436512723030320368972085472563441623780639147348387536961052287333784466622062388421662391227895695112214019505286902960845725798433010152517215032509474757369902705001393029912407962030322434970167511007534660547258473314682250170931859819196118954190412897506121392263265340246600144157067728551436323424649425109503901802676600452241902270355841843798259932193304460693845397050617358046478939936407132055920286569316432276766163410738090746199389228146263050822541060559331964097382862262045875899388139582180862827241184296736209130117116598356754702581348999315772893098134511964361075846118133704106072448186892012148515406241246246499310234999579442142476086812231023840019759976754457490879618518157674733343571082460454396549746676692229401537676218814420905384248473802105335686570939740633032031009077298060593555280025328093048690459817821576863208577965739569841442218394077816218029639772277179619407419251598919139343864366566002352586418499284814125415098237854434807507334422688648388621298292568193909217052603528326375599490437160294636725879709377883261762092923811300325980949952227505396042820650390848475685449532027105581675491592607560792214356384869756764284552646400727469603264601239365936192808863800399841498046384381809245417904407087780772015311417914313844129112864816004680440878059410735667898877007114610552573707017825892669237977130361602368335316412621078069198083264863952792712499954304265557422413397387826567547946581479622064766607128120959886005266465911418889028327208892184488688545377908118282879242701213172161938002964687943939627362362928207561429722759361658071001716390816055236399850984663382603278778377535151258922439995416659404765378671350032996604455568506932395737764147173456269037063769541509932421281273128579291647408410749483498464847388013311191388884251118914188203445383168593013084036145882709251488208863564503971342363262542632483811633753032617106228730991048588919286725035458634918437123757974564766624015942738915078031994871750587581653826698962949519049019786391522680236256878418393628009995854435297325176137622430783209054002278359039704033968675667237806043792491045737864749544422966756506930803583963662858237174817284363511692798256373923734170379615144479058673737158524947192642983497527746131820673913040639917904615187707363735119988787056612178556754868793341676595066960661561198457453800814427436259605465399588956752457860992951125169209377729625680388143545084233957464120886028838227817894688538353891069166056244360814931809334892442806157316894969825313078454928195744753693408566972866361606029223967622662022962063225527732703938438119555593125891452825854745170623821487131676532425381055247660642185267755695638869627371835322751014136781522999210436547646229105249416243801955904274933842695667489063250636140143923315294677200469725505679793788919770357288832221088823362664772378832073313585205141780858836169340851274504995455789772859768812352730075887788889897586036815557504636572656053898023352317333101509609773642391603658061825085506804023943266717320333421052138378095452568555061940036761194141855655172503491421181034610597695672099474399033800683948707538116788935360599726442872446641746649513569534476394023330432214300310189745683047435308656942311753258175553965244879792524121321356929626685061745322892144857499660370800141476454186622297564013663749591253629594155851374796859119752786257572747344380218721058704333391229802254124954391487026575383732837219568102958686177023978297506502344480999108252632444303213322582655536441741971297656566589359463145532851124024694624856147769377343879785012327067793534119752194575894725666669064578634217964805893442346122149483418057052514629241164513741495030798169862520194660802786710233696709209361997120413933970437424829354583472455608877051999809074700489101939716469756855862300248397033419922429629399354500700384131874100659795459411458626687842827206376304011373118325781418333589427590105853088573958310411248205365116395655611447139233529030620025634233231360034634681646145298740824723790415905082066009050161095239843570128738364828419754548309704878892073840281268619557828079021328439144989629881440382921242675557688765277546843625754098293193003196827798342032231715605740951106107173807990366199145197645618956061306955115754706762134137378348152557148354736979415785937982935158034109575846074434525100297440880412419658571111954493295393113436918735057865154450212390432953568986497017287530361410022260214956662375260837557977340858414157238416963828853999503504267806572961629684739307345488472080507474673240114075554906632823189554041695121158130496168718283584322955344284578731307826791773183864143643031780116544988759283334652895509043292861299533654356985044272930164010122301770013762722246275873735029332765656281984022429198394485702234275105035680755458074539063701707341026966859413113205356910207591510417769056988043330712992732461718873650831740882916243011751733763992829891363747050312468807547873373348051281379200135129496012562676978373465841691905993143661674596299323530535761597153829240878632679837147415893218015720848411538932376198134734057706242661780188913917171221636319013733520503901979861758505809682045877777089193386839473758430194171186582746303015074435648451112291931692434476937686429698831102031139597230628184341817599947638709713705320396422788844828613430956702880118642590878704451420473372456110390293282932869799359385326784872442815833067178460982197710505804696743788470039109090254742169835421169196025394453193552143075755279631201280786419872579262121757200027881454043500657464295621189033073799449211917105984602761774710599818753638166156963795077755964012469956213949953340164771655417907902760602510257134677291127382134352945729504083005165746363836903456938123266203829140681299996122419369970484561645259944233833916119558273482844794950915392737206688394342122898063528218243982275375588795677508748185991474435281268399523135618518611138056479472415369336026331653102141111423224531353862179925442272901997540588845595635991341956769890919569223307003572742905815263502634825190322080317593511424157882056669199732627508112547362029941977967949291161869051203634453770124132907327360580175880597570086530744004489772424605450958375205138609970248121762703125977922355534301314495053042384774005403404647053947952194974250569590508972449547756587143392349205370754281374189846134051503745419835796171297347849526208641451763973232005199259100910550840812120355934318613219794986775633693418268229611000936807790957232166903629540629779677192128486328307429977008256224153938922169038992905894605105852790864217444309170948331132431718569606491860953104296972823152177529836299734343499051391018277193998387687133692324928073523159694490922487216194551127162874317066557065078614310415452021381228048791548676258732043460898470390173123594867645848167382288581658610110018958554499817283217845803284411983025808404517264611404640707415751220911182208048238930308620410995247710786704790734203021872865545870550082432108202452571860667609724504039130404388332677767488752688763177063843873600523447891941113092288794947860176877440347110797067652206279437781724008521556567002608479478572106179719514923760552567307165791602117459639883813334560802275899033606993480822564750209207203756294086929099265117598757751209912835848523466991443218084952680009173384561025606518157561610534555837145272465896282845298349723421544749685353332142283450339473791061939655118408785297100375394326466666875781681214441578115663119725805309446177102631674127537556248392056150066395638323858239232823698285886078331215845547727733941199030219685566782043314476358248018278451293206362327204333888276851297346795014377289653871745544229225724377272882185397116285144982501327709440222897207424756244281617866278699514614477729024563668759145239451411280028370208667873953552828455177140434168699116097558769103378532826215716936202843534468038745758437455725260994835753326668923922300217213511809494298834983606750364687509596434708095022730341165940310720024930089908131174355851852156234880805735833859140881201840359984180002253364391307548930698233002732714359703245400693810117779566699059349215345321164465518938438300593910291643532154223129441078738465325087756057916734494008532288902504276729883111798433398466459215265006064681055770493172537948460866249331361861002925145443351064735876774267335914228797150810550907025020010392243718567617783537208970817041762748939950979908176674034368049980830552073843125412213018955899811341756612462303943297426276071407100487203496516954886109418498197178326030589631423021591863448779999835636056814457515869618457496349773410071546829135256748884452350360536792964461071909774477009020428371875184386247632890930187244232030782804375830806470239655673162235786052623595723470879612792209314051018756963449968786735304938172981305871798563608644648679006556761342089370560390256282088211769348089610239425621420302772070991172420323385017977636449512952784508217717493430525691399185594874547332578469018736634729369049058281821578240665833406734721859833554773198173541713003821950922493288691520928740107912559860143120096892863243954331879138398419541317981984903379426946202273437062406759415650389365240956388258179337272416449279881805834812195978485943860789381724739856647706678960649538839372223569952852635174688666067108576994042900720546387117215327280377028573639827389922413670097444653521441466756823101163091033072559001378972069874070884530158832548858116660114532879570031284504005004270701947522537634696642562604296024417408443705735325970909393453683074473601443311578004648771230631991965533236295763919537460690691216101895718453991260774843472496393504216981644478801688002339402218133304024270834128871718814641624399875358514690944396420139455135884929468540355394573638387339590852685554571219738285422138424447530351493161697826987452145120561219087972398953315048979509074193491237922807296725602959700809162011572402816703753667842764943953803274378135904833922565725335199991387861669877344154391006043599855482620976097687996799982164654691803283713380698238269834306749454980555926359635325781796125724312444691844200207144272096172290903663020460488898015810224366782360316970026299476826735763884940778195617837704440760484046975543715481595968094942064734278549486935870364799560600314678776391229580123215998449846657501853735462688322906989183103446908773705984124116204751176120035745655924578863125338887358499271036797160178904451465676783558576888286981106866531821203761867969444355338089614887777352771081572074141333785570986809312878840248841960594107637158025601175541324652693259846654436924261213829832173972107913003447815866193095226195749994603536038826952219205961605259795301878987158328525942180988890869844438061726972521177308938300531917538145676434015720340306893366754775778440546953625680426410932744729623802765642947935509664760179510926057548587762067813066852062650198075469030449069235670649145791973658337184509928235293179806241137932963065371107437310491227859773429645229811744995909872995832296471213202057803708091683606517374417753305015872450040658802543797726324874848235904332868430998910872459719165237893783351078761670049366064662367480905747837590800658911997232463519749086179932664020075194477865481885426424736107452511497074303972605322385662523290716405771509990159207942178777894539849358387812491402956928554545271663019330673769105018001566485287943633270086925410622472790595717012305392992459078301664527333243700667135412036316464999088887356170823741426545204606129748540933276435440424493039488874992760092976194806433077840711561345272615580329564317943503435748259157375421011045561704835557495518270413687294000555101317493286375455388363448662303393616303638900480030071081486410898642963217563695456474800502293654643424232164894839972381675433967498829445942809444398801869360174291795858273194055473475376574802343883530598086295336323425374597332180873559358673027442789943774419222327886826792050442667377943578909791305248666371881488639980075539954144066076536720106369514450070566294787729401652247151820480393253951083844348101019086009137996947680502830155241877107771176090095165213829166955308750269971899357991138923678844837540062378654817985895567357842583509310640807299867153904834259982116444251304935240660491216479941838019254993909688473252164861904162942805736307388314028824877546544693623170441156621523122162951464151173516399171904912665634891047718062487823301310097081875115381541341301870879793471332663596918260407443261666700817981813208801067937556187155057387387094860999205922326275389826735883380620543910112069677323275766272113261282457831739491724213012130199753766041695307681261419576898808350088991683059565445486417387754590245125823281672526191453143089125628353403829017550690471523324947093548525991943540267782893941820626730278572034262702925035374226690581106786525097189510363679673713407506279739125416023548826167470281262267443107445669280174900856539754398564894928141174392786714013519393572681927167442519210874922389210826246329904511909517528282074917534872432866210782402822254081146820217934714768060537841517376487921928754262794154641440248255467454333297580939613187473272225342358371423482914946367389347608316531185271686697653610610116880570987660774143314471750812983908959556854834336610167239803248577771212313519204699867885996615589437381470470465067602754382775632515605958297372343318223294046026306232698403068493546515939194517878977799813395667924564445050514972955908812905143015868386950080474406117575087652218736194025182134494798275824271261512812512820381201570877925262433625465927512150475181828487068587152081037267336104040141807828739495249052498277017166728724410159657578111623671130781297865552814510281164597335910967651805276829007785375449167357653780949824968735749215370816302190218661893341228340741821438795463918384552220892303357956908634935826559548527701229106390730428529069851871180853416612184996518858683441476456068429336517532691723187430483738511348639150581664485278587251138727369516228942938653170993158939833441447272727847078566490378258017723087058105610021861826649035929627041818131056371650223615774474421962082706513634892626090896643264079656485658621378896070922117473985493923472580870313973203836284578665564563241264184935961449582836537533783767785065483411113581868775176134854583669632524831294393997961693572489199196005398977692547157660087667045973568860144580900057476986135323131201573199296072067380539485883516412386650077890777983015146479929006723737927903724468756390866214138966933559289121656279074971787370052382650197211697506459780928645290291567369805163378655510859991390285891304043840109672909881123676775943367326833422609243372850699803980952189667352033089820637382297467156583613829106023518156109303036878998049500202948745225930973808804662442969382378996405799321072374125445491760843401015935434510485957630220982734985208726423340546791576546942237652336418144560370338897776097514974018924289215637569193546916961612009484352515572446244053125637266083164938723772956271601169237504853106731118718904374873514636726710544344303865597171856656381327569911148842731446506259548714772338542292021553669588052242032219692545671427967274765758824204522471657081435437863024027336388278460522356065879429806581189341031315683924613237165269047161099480189846329254896338904038769226988208220478674777295093085757407967317018966466398159516238091102777700264180104871378414781897023426626139925826623734486900400603886639607489890147100834317696989012503805828453271966274098190913568827402899763820254262890075453633139748916117974444796318142180090809156091581356297400948970445245409211674346706603624353460905613469845503123515423231797263459547582412063253318323667395827280815971274767359583074915713740750798470096525573442549892179181264706999289818958573501830401483380646259651271090984224721745290395081890943497877760891590645804825331297126377268447295432978490324568127594760346041867138483195016940017988849772737486505495278898351466664976637085794067231983370706338773946807664016152476491163147653896171523751032901618051130784676687699685658491703609038440567110230114795128951042211204713449352952701455538562809875062202611732471879536282932156196453965090867316312814424101170420207099524400522486354822112475910842003859135519939555057901580445632035166585244006912964534339387497725571969587399647615178932622218842932723404614515844202720129662861416677435944117625294714470243036913876586159213863719880402945689621461908999964302083533552046630775675103263339561184296009049796726944757534701335290310565367060402380605470544206552392352502456580933353134946555873820188165171421807847442651960681009601724381829338346876027432071132206732019817985689004644070378964635610045743697942406367759290259050381117360112219304111147177957968318828716649726174842327594185278020965760443433624180978291545090874019149237409405199499293821132281422678418838958053429700162083394873769804529527631734129840614928886596108101780481402720406692721828713650766409205214970287878512934241278767865619240756804557896068672317544893361209701140377357781412624663749603131052416776331496442602315642570990810559025410215671364559806880686513352864882582622049893743000207035053064242663267845868234828885916967780487391277199010701877756221866263009244607292615177084979816939014096286495108589328591633989528090209033515898485473670997568237673142327319477477196605463295134110432839232102702537566868960177436221427082128436758893497383002954560571065284489116287314673589700002319449054874542144774535466000735082275039155848518405624586450454194230144265451917947337092782384918507095666944514408819285159392097059094466514995162739954245463429226763449287740093843794664618435758663307634052709115999599498734087564788848035875954853670604138193956472693867215526533956594289772516145468052184231576945641173161913329360943519515196975677790045850767579882686582469696395720173001791990485552700499606940060138960639481685097834841709209086143440983568068750684669814849951679160115004551079789713794120726161824144395463670374004712284544809080241513555279325234751985276980655301378788509136434339418890754130984080204740001483925331906275207483969465962627820636221392798588570747470201679085378941837846055798006682946826714440346383857914392099917665380731088100845296357208731130985219160071384457168735557222041602572337932230640217465257354712379676076100090388428890706900425514893909940626846390686461996924566594078898512048592758796224091448041493914865401541084591806136017797217069686922986289032521811190909691219770922344623440475621405237491276804539797096562015364749852232675450999115043059596385009269962641527313810336627769838586561426903480678042139975316790088462375562467857731033313502156446735545920119145869496623633345735290581257618199128211611410015722640880458406227858415270535434905812604146249308380738153156322375352055299180982059083198634098440070029465648386095878537113715510473050909690305101591879384822422861732149348834016325484307599297218880620232949694279635032595395719789600105726595790044635528482556536084117976032266122971592368733242839690129817604814810256861655416925250780907748799714101452480922593332533040192041452534387137415327659194868675143533980135865662009059533634111203915753681524827703890972743540750189750687818434612617869172709978030704486979014283157637966861553073253616619495692684394618104906730015586029118568955025558500807765330830211595736771401501836436740232360436366643717020215294384923477702323502044842190163093104075571892988497182791794554926696987777627662291851174605197095953544460269324111645775839347557124405493529103240704530589966593253927247413662543170125936025306425378532530894899212327545420179718841873988752458197292248533536018285009918216945155156068969585910334158228971995732105108730035029608192189819873242472478782922646259404487467498838586477031630558816379857433252985480251412918008936077212634060449419791908383511920440342902172214002511551548054884223785638137422222331821229144920916905926670977647503031514974544517770770398333994375996847848647699399267708933435733297586806904135984658971707588670656228205268080286858554063712180610270234373273185613527408436865264886010122653874234380179572104866573750571307837287041057514560277676499698413324858009283357802516216106882557100290746084816963049019387566832184050410471304337811509335909625536916601673355950686548976753304888242666050426183703825534868803439092729470941483647668727319749017386663224866763692267553116705551213673482813013954292539012214327283747556145015769249636423925717988066441728474611815889894089612936087399786347823081660184157445117338860718898587561096566473381021966854503344751420814376294671535689562566368055024396783021896517486464792935218467681397727589465598517297489227291878621909305213172066680493525878307441895773303443450333051461510534911990307510452738886483565145520525011484952415367784719572041988511907929522134092213330995037526942607973535931206644245323625319188474983486514991665363221776619925421945955659011122514371156625223377916379409290766283651556958161861188577562552472697325669694922683367278123344233399039072801370410079393028964853379799561283148228268866487557485555448473533521469713656401410388985792368740595237829928132736034116458654123601861446117166556880775021057814224404392817658841152862635041008663352744119254090507167801348696569265677876989766088314510970806404490962304770552551754651058387230596445293181479969362391116418096938937258781205973042537291766503826729164440834033897765737537191544982007669105712024834070768794201160904931560380290882497056897529967660063147004266828389592383020593985118368507824958026827617810484870957360670906058355293839225638992847112463432768495069412480969178894034403301971762613424882338939728915190095105103554863116382873979621578272516099568925443450067095110661645587935958667241424036554289749824723552317058797101485457659712491632983692496076932836644802525938533790989622352194752445734262654201778269564501282893836171493897938379072969378511127984394969734487228101012869752284630902890030867415698645545672924109065565542790894344420755741907826249892567390347166138552793627003397108102193708620610663613407055980169032938779287042663470866827490903571627538242086097737349608133648921255851976985826373669476419668765930128022788743445446071371837718651727207432671917460806401359425764539014859078817992110698304287038340255477516174523869630256914958008118316713412108010809551441369946859180780700668446074883085634867019267628905365298748351278607500952168492630764968410638630852276841188770239183801035074118499207042012578588842543613569676127519879931311765533374525514915098004179851694752395761468062042086465641012796642903165909484337872797816363884584043316347701325937739555038914251132200180599950786990504215242908517071073626078936906398900677735653720850918498957027522464060452053039562448645564108463248483392735577231828186155201019517745485536337677882565385166264164360020427249420535229993840323184219216084464130109875301157394859085461950869969779032872497144216678949219422783596558628913135946560838127160972578287239117391317923293064964336134870879920213040419946814665497746308591364809699412773033126133127000981221107797322873505282347013363002838433556017679719035377138733972888215015502673426995770630199813998391418152781892864255761481821265412101578448462397351918893571217560292396667562372219135575803142943641126641938941220637177383330680140809502242710941474647870406241994560613928415572295116276102022685640594597167161419321626868128334045902842580132061999802884370508215652277020878536039734549716903783203687563343336832662352883521442983429221281220595509893971309366500525220003944540345226933185244431231488220552407231687991600160251406371191787186276267769533306652405020101902322186657869598132392467269834977644129859219674181279145696552061731774258330198592320056772919175715374456934883411875611074033822710997727566011626111943625882012326900855719929991905023387487305733228079126907201351352246090429672351743341416276524322474586751308096087291909130914834647408740900782937129795753692449088725043355554044040501228107411074893230509632787667127877900044831091470320657176205710269384412377791489771174323317402822570396087020184853443354482416809395963829032858961902573707012013391819201445172453063856391400050386556625648133632748568790237820743229504710964869385754484252114815452105642245408192696282110595245416721668095264956438397615844304563214045506179653054447455666977302123126771861697278489081869431329453977959472098282346465866448037319884822002749987748620223087664745665088507908034728618038275473105148867018523238260096414949442352409273575897191525975531107012522995686395514951318100850215871446222065615378339663566030704503491939938129287121584898261515302759274517516586376980774791276986550055112595123576406503582823078790499118562395319500530178512875294107378972076678885170125996956781956693908475949369491615629098134530413708248507850403406944665306621943431186539227953479602552256174605768883875109997780431788144982768000492637700685787880640797704027574420335799324804931524289767159292722595827533093129211588656285297456912197395759823759675741394252987519487573580839077417641753266807097899334895361801115427329812156398216346617337016817778430798446558294166186835157065896359426467822046191556358997534640127029357926662987171707331396044417756303265381781468383263954868691470539765525131526335496711750566896738883429543848108650494354412960215973081938920038306841080530351751565619447413038326225822696893401157414401708225689784482300526054228169957770136973371892904641005094629269278025874263008515484505564837071426329270304293486849502513720252110924200553961375584385100395201022248468535591171971047920310826349718192755330339585042165776087832289998870029220506929495117452719583021635523991239313650390208690489767441386548931153947971699491045313892178415738203118136126885351623226184168600129139917363464782290148911827941253382399850964079593333505595140878168378056689586170782809307528524266195742701599619063896903926446656756936024616250244215526555237560512303419241372710550240347920383314793267435247567952128321292377584564555394283566464762986979122872611483779694155478831751659052057485898077124587597257715557606535986767516847421236947619256057867604099448286702090523634615257785924726775871366289642003922373039695124919520888079374207404968393443970239440838971277395538413409790402664959554608733117499260950230983169522544142900201790722112077984096345517684241381208880426446268912636848703542653035026494337156448941076076919700596168321210685254795828010870783349172438275723919457017106946126927182428181858855641337165594756589334660780917618404469240450702558161328342410704107708342966668063091448248501236645369583592594239545814924393629589834059966136636442898643363822286036694684291665251627114542487599510785315632620854472869236426528057022749667095628625042492419490453107224857632299206332960047817162481893861942304894730382347332795065077117979095348109708187884783214835357603294926441417920171153553080551451410169876437240950221003971123293528444610917055739437413301717204331533799998408586533806776975068459947902430070512168536484383340065826533022597594997710693543205347063295760882158715337701386910488651349328061189095607184837558369763068337215390645644453734164049164397817427908091735020631281747036632063431594056882081673486758977967945329037086910508821546120772028484252186685814472581919037370871620320050319496310523131602374041746246924945244438632820914504905449096973359188824492691442606163951713530506933534154739149788195984711673232048536164847153374988285540565414279378511019975353316695322596644210954431112569278818551817940552072881342921871895740055221394112302310774038714307483131650468030462812935853570601154062793513090100500037572915593018310181904525683125302365122732413885181734089000446741123699104912648685713000589406398992972896411784548230460175068742088379385517594133780079883979402656032196188341275320616419012556966052459267917060445186128138656363134745486144984410935796374534051867244026873090607290086578079892809298614344129711785487247177725615757485057666165985040581570829969889767516125352121944687642236488257524635016629617444526295498072097168540354047504334794074506591880207327515126217618914950372624798775791904633635128407369342525647955882293839427095526286175519988789725767947195413590580909993063278853398652914663389149595536884913591537705994790857936987884492606718062783490142335310076655152213335552185212914949251946439863888610749155017347516075367203095256860028702357703224986343334790598875630683391586057523097902978359938336509974913441178948836754109701642097005393321963955478576371941512340237452892048219334604307766792129956854522906585390314482436195826937887230375511109131254667981522071633431573973040918570541797959746864038537242217133567237431041364719631302268422548145227864464346368641279128672938763490122632029428129768135218615140179862896134141742382468082084596948655096581322073152113879701132019411923632794488643617637566288948477202549680754887254078227559468384609310075149801788519046024684384162702230694752510948297154826773568514701347348820443878321470361678008047675056493487760818079023467498154061093472421267185573130608969315166557019923714385581663737581084535619293883649853275574014185187991474894148316300226662129877904848650011783220730498066097989556755380705164781956251649220367884952390574335338994075410347255970266501339556168432876679821348996975645838609578734899351448746606163878821434752503886304557507247009783722161033932752470558362945156937199083328424173619628402199057580278353827378204674253015006761191541566385132927369161556932547747621754011548139953753332222052479641096919754194213133692876050251937965077021302437565581909502477261578020830732044689274115600437322111125603009322405762712497101348469668215973049204833375275615490188062044331731106265167057492171753077259318630376482655976095712276992187311018371882087725575966246296935464187536911445733149413924592110490027737823102461144538155360431382507024109603116595502607105298992790831972345956875504750733911685456285624834356147371513433309892449375763859947339728610624251396053294147365916971862311808595440750005700783466205643861650117867933946041447529305489963529413652844688093386536271236533393479269980869499615666402283380586207785669342672861177710188233943879961595746663735410057710390127375081692201929121119621104578539115791009377078638262544125306231105964961033342682657467851690814589264866528561531916716303257719992003149632481912449957102174185691299928812238235569593577485580175218409884170941939138934253411577220613345955057608990837576782327903902535809003270767925458207675926022182276861550121947082088885677131269762611530543561415836656202612923897811556807431026406199462049078867938859229769496557007794609498411259361807784244715339911521903144434355003689598779138675833386760760150390063023946530545571712550108451101887293278868901744856381741803078260755952027585136151528555724069070417011787866320887465345864687052271732487347696818295558922100874735277943487584048777368421708720270845624732434553598797485251761002300257041387569708767111324226531994451266614793347808385197886246651662906649597581441817398356297822777931630030569264002979127229597245403269316244693141500848828946586242546197309986262793295392278137541496633484878442359534858864929418711109916431815326178951670349326675048994037819978382331591521287632464283763828267882723360800743679247432220016468632182857840354313978286156285432819125351255310447722763086209537340724658032005674790693222496163237053724337557405102472881646096262840192696492161007815373674331083209049233015640050604254593361304118851904959532977497026548970429906160094203526376792451303687309903351008487573891814013075233588305646646733996240280789896447104792323921788913338408399543509438434431928725992553655348234706780603519208387636051881138633834909413272518850674872566977085360118382813797321286125289690582162914086012467392219231915663930332603163876497335615300431402019433469067804341680509020535573499979386237760745777520246698390629177887867808206901768800963254209949018449368336675086186776213988504854084097685874106595211050158815380091407955871597087626258775550415609406664641982788828708369924107339091202758113081597989123609787111701961744352893770757642484541427598319714586858445181198900981661002952242468274299549978250882178403461242699649680310166213255994326015834126796517482148275034235785360610315553619039655619029331325585607965323682768826973025373959199105852870685917191098242224104509595152350886660219969539569444715450284416971895039550066538271658329640344929849878862739961710108883985139987107941254214162933843290853133124365617628596827749641646949134183609622275828576106234761473482495370327797365534238195260936756321363096301908384484625365514901584340878248381617352813017462839931071828392275888412009225750215888922772614860808501181845558047412217811495474936585847199470561690271622611548891405601026076115265648931527506053223867797959474313453205671160782889411843705166717988456073311607417182941548288394012094019812199476877427333421006879037603525336892267082632684629020153776734885584671625547857615180949478459418969248829737791151083343508492997362917220530958067479444991276264887908354515607667931805433038201871903797407847737517786806756920120719020531916447193861072071608696567552278644965602158428969971761786405693550100586760329519800912631685778849385682697837070822382017512045098203157092453869571763438155144319358474513788558070303895924856447776009809741096160959397204842678144424574194358550820919841725640652440485118893510198992235002080012935098033600895547796966120501946464183857162298039319803896597178333338897023395460743661668385503746107809612335606776956833238299444625420584964444096579066990394325648882666505708323708096388478965974544807534756212293375115027549580859661072235680106288777392878106376694403103223069342683468593061692524268074263618899231168072813337240344919963147612527010313938065405608218024831315880922993427987895898086652674069833184302007421684720775076082352348162702908439094781557576490666167365179268053840908643958282667588128952492502610714528162318058977347130737863934732237410041545680939708050480070126739131589734582977465408695772232573789475343226278063293396908870775628277447902262389731603965201599910026298072040740765991053555698726304704205159543494203033491576022497051735931530322885058177456831127506599326147013305035784509635627795435370351603873832866640582924751437410103331042459343043201466073502624559008734131299778639969184345840268045085203886539004299278846728392917700254096708226906381172936237309384761623155144595972752018056599280626824001078597378392781741062365863031548510921200182347065975320746635701242785297305043303090249925997315505229004015219323762731601073367246344052982672237223056801176028174766681766472874568699023130474107929427239771683729218719450503264677791025429989531027220188167197741152730189334851768858177289296465576897825546430521352905534582606273981848519558739662762148400303827808664008928514283344716399822642645831476163100181135976187433709016630020725077061275572283619254181942149463769522329154668872422569799162396466274060512027314087910897243668252459954049893200501994743347686920989878820773198695654894558407315740800717879328169156798672471271093094326693876133522129120660887866116476489079496643177031980749755183936305045014972634152136315277258127365150099142667253100621527922859312396276199253400236258532075037060462508921198512680488326095586620673474626423712661500280412573047387564059735047645675974249886103336834955375559036979882368156031966369352494943806810376947671143210818601364524431039870664463550511057535068743081720570685500584060406375901896482533218607740062978768791926928706383440136591647111500006873612818197437867121122579306606965775256244007801944173144729891006208321595599851229581250127354499014283255475006359224858752400618759521365925749265151690033122922034650325007553578535773790262811129266013081126260188133970273019132726149203509697234630377177699172151841635037092195719033214585343670663544448896609782965781505478150655427503687759837296654188081381777831609730911580945432244683120503288875517205803168591663790724525944290625818305718453343047527418696210169352602940110050317996564794802674516059750726635339478778965509674275322151870858171187026751395532108648983223485063234839814154846970548549197495901161032163961138464758298489029864174060118100690498368376684102915349309673286947786607636060797960184709996004548460056630500284735359892625651623917953461845085829774667660304075783302337116038261125617565606780882793477666804003449727404989327126839347378962161220653461268324915205985818770211467849226923641055459462590882634483938307334585192527001476681259408552314465102996703458583246853356958331815168750461692877833738964312552625179482357437043696716373326083158191473540247871958995448021380710739605630527502487623501677998072788867894734658504028948167975964231208553967957956918228538176792605285325637028531155973136559106466005230118644449388202260076393007659362615676272244496786395102867863538423699181881491522610582604749383628032017142398945341562553310805090694699014451100015752179177113366043703140519419662605018582746312591318545682965935461046492781965009321757111445037841152189927294602209206622144317212147064761983914717671820300857811678305974524502030289192073273240627123918155311450948745699896977749953985990857847848514214550011875028196853455220288828202096958780711933828393425601968190702767709758768726438789612711667766906086961087397948008992336724694833639357355454351287188142523952313839043379605685135120321901333091579742015500937230944115016676092750432508888641714252629775722461713034267098722635559692960178767595342682457302178343231645886996799579308427599714686379744087065339310666631174164678934223393893629870978454775326269417203074246094798519419686084726194358659849327405940504814761956233495469444291606397772804246045108624906934782272379119524717306133408706750813438855409689559874889465723781833171826745055936989402651290629297533897305037389661045867833580703059218475000832379985545825670358704738875789183849202531720518848016762454871106023541151534424634079528406597251024786244661780672285162223417813627639200032113133224516976426850999036105836389103931662773528540698728231099062091919831948412868546659469430476763506809775792041441550948875893495671156088095217069456224922455988056364492833284199117775337683331884046752643461440072472208132790952100698839516345189287417399440922204266269112094619385454101382990440476639571787784248565321855562184657394556988288503287376484485092408414083762152570794799575721952863484238406687587397987175594520524008590889456568153676273668650170773596535793280591164552642317504660884265135415309563022052932269937156899340862974808029901771211209663572090273027668242840924946217257844748425321019501485764958714966099647225662236808930398415053406414634331374640950369804695597647093825722647320491628782862510636452663335821870864876224622897845319712514596794103567233665120591907302732009061882492959488975821541237714433091696978041370762661721966548607388251608904225276993903798964696787406473850572831573495220486297301958682097298438365905735777928495215185480388001131886536638892236853193527669873146709300017707997885603467906914621220439997539291415105471253112177310936549721958639124592593371667167593236610978065197696207249207071725460456707563594644366524776481380309784200749545771823848797694531751132485882282935405192391876597467692041078755846573243064038632867737623441577301915438941428435609743909474078575620840217501239304766716844321668739654420870021281087127028692599842175598981681639549782021847993880000164335538122818860829206981207857544230683916697519015963588514662448565724834037585356005355304193821162094952060349493670586219135669378532270712856822938617750098324069631479750582562073042544666934148087305903040799375479043605194962717179635227387420809216974738173808359684538054545501890315632299882801546938504836602754189444202882889319654215005267701424364040043426916406939339688823635548739593755912339031342631380702252200319191359307401691482856446452973634590112863611988970343497528867497073599978014748316978364127657147686067246503323345760351787291139216469884651444165186763927747332321469057604281501487119546327851305075296138860342797512524949974616139730817831306670847403743256699577691744644805339770144719694998717891935158817683857596310844350313493674174753936999901790921923466739926999831776109673205400737435939275332009131589628847251625777379281513019348819418006427539079882947593680776368584235022946849137039271151722173361961384536621696819295192653989695861492997565785156219534935134973232304849766322455390042966020025293125718935832019143053916891867073543276462440873833284263169596200283815554584977605861328744972529381080429567831787629122177269001801158944878263214989832634246977861393596002806310132973477371674729495913328800083272266014001679515434559302537077322276739719194645592310759665216092230834087948816884887205726395397124675547085028397285627955735843438165813543334295788277242068072435820961641420980024290627485548041616861012077934273075756168756504098143701557289621254347104656813211254570970878285367459734112522438553512860824984674501883054002134239802544612465806814697828075923004627324539730014777919177408312167018232348306946472300696769093987179457439827387131010806217977518035960562186450740839909955298798967837715743406290580281628480058835978420228855106240693263944164399677292259198318317779655731810343705095314106438176106388878813306856375612893096373014606307550442961598426277900587414737399355229277955003972536031791882807797681260571465337963048458265726209515613834474632008471029523702609709449797234333361525902804325028829945895712875831566784529809148494511382555773181202598483743656834630246101736089329259410361639449710862426110590870569271951775935073399119224469436736162020196747559438587521492873181738606596297027379443949046001690021675363231191891269450422550266245602701112262013225886447534377680155399441635948421651545261660231801026451936187999833535336689725008873446122529504775926897034522723312356846763870881391564272244770581495202282432352993805009267183567960940250673852076648020794041231781690908676441611352888136038736751127317816406407620100827944810662219093246566082181866138278938274720034685692190874642305398047973455214295939705713744315833419290128105224251706599186523090173495877749829488227126891979487827215311760547592060568006643202396824889716351470125655017537596532138988464267069426645132927629519536242081893518499645195193886641327941104503559007328042198385429258050890403707073898362528587432210166057478319771883894978930944648092458480811372907928065233310769728349785982642383425490178953343048193327760226529565168546020862941720211296891175438932011778171666448119956685232648587651599361590313150544021231473746923675335195902105874524713607045778457150108627454720488602137533439425674080597131075031496854417420199874624246568672464950457434826809446905521425067806741420722159372723375570485678977549920266461898873674786871266089591840712980119803425992396967223236659409509937559680445651801055320245655206259400209395092265869693021147067903383145698021220728438167196817261207277366446432711041955288968532079467147849147253105110319855683727961332012701281749792861215136824345180525206705966013184929604036034541862578416368503922783912925045682488508017800271660471758255253237817032745978515842690205791206187217202076661512723235569807320576771741869825696664585915293937954877636706448437181508500778383098522012171398273763420973326160404276731182408069143363794683920148968434996921487135183296505417199084911974456903077535011420992799239234266483860300978612011338519361800592540280689764150052325186033687362886514995776018866104206951579242486175013793266619039813089774585001900167493977703605950877082959902504854230104111422303177099221331248918013362862678204524527770934302344009666014951185041998883137696056284574533233392440360525225325947406616379805863536014314158580692872158407882733156128605067282728918015336166981331775711856145949406794407208050003364396353844870988890342057216503226847281675956883262034202943593372033476932434713288082482463295119638185833769120784207135790713988178122400113769692515839744802948245160716574245920364833600940082144653618244145225879914734595719782960244065313243239448424136128015007684295490337856494622345096788706127225864097346717400572631619107041359427047194630183600637507412132394389808574568797881082934320880280491429993112158122935383048844700163462729225668218762200802249815306689301943145822616434868277371314226793189173311812649768160627073881615696878467444714894243789008990574255647170166137055575259427987122064646162693013453912312656294506247478974505072965773992315697955060069987056672694293909168786472000437454456918353094562001840285770803568922502781245282893268731261205255774191914344990977904511191616995415564092879473315301450377271934335637561816211267376716289459778069740982766889952815722847770588399568652263833134907406840596233430410781666684818807462782831534297666130916311366008093973865742720746035250876951839099970097154636405964992460134938630889975351298369131328113903284446246525822386851793856852751368703554637683039302729802055353698266265100714035083736899241235606467885784605827547392847687631643516255971490426039912468282129456233369807079916082602877830390249305110560600324370528953337533455037199896701925990831616165581963250870292737698321927480261369703780032574210003240030788524303004352810332406959219196224959186123575623404648392794370251974176286559337559861208986808511552439755976532464988861121240349830227644926965523656784364536863747305960519471078082421360348337857587097766391982676112518286029779521784606454366720979940720488507676847027184447674530568610084990034407448006013012727271720982347389322092253500727208603123755573679289645188678548692193538903595740553260048496788774611401560667462940255602036395883822791995682732942996789221191532148179527766178559011579180883736374900057625686112875345915317052157611530699898053393905292952896948599137721050835999958738053451603572107047464305189849664552351907595896430849091689595322497894657783760691868782758025678258903993189683787019062182336849725108854261043126382421329437805032636566651216527665646717129143642611212678074403576310025275319297753658768847571272559850523405894705978717294473712561935224677597687347476222871901381665704382700129041138260931103442847153174863029528122727954917736188265371901494421663352911523659950647164910511926315651937142458679806015406260843405364012770470859902662162744620385870166485585328566040760571718072919353963771694694018672480947452458205453697497199688687392619724851682010716586807356498845023868857536851711217575049221351389552461951617709499791100515118144333043022729255299692294165128404423427757307532465102195332661428507505730842092860685818049384439180599919920346482372158568107911731281784542034676540914693120317001443656412025947241121303956242436361209759651009295072129039305619989788202691872724850409295735545394969819492566773938009299569257737903904660515448230881319677538222820095353967627658120420689202730660781032045993771295094093377437055102328093294274844786770826535270956629290685564412708438369460122713387897982564399188319193204134996142331545714060447693209473238390415780393359184644630606985711732117551015533428939630875102758580205534466721040531711258682658426374532694642681553815058500180027552638210809715415520992492141514331535434197635467888176571481862760529343082454797979598968775989208302798588582043461127763108195766049461373924775698378881846499747301459168835548271301285915341882423750379444884881786897216463165143050228633552367457755777118937315654877748854039391401331783954897978049644929391020009334901957588598139914510494304524200359190516165211357572218498040610154231946274037261701261994656862474621109898297679447435299054282251544325985926787886047938388863472015041524100965712223358212741815418223278359261004278949170911193612840681959321476494004935603143216619613007074318442028737364348544262767272837073271706044081428913996511025764473424645222954355395771974467580992736523855363557409992840138735807620931515626052747104034559248750292152769000176811967244098745275997609691724721092574229538491200157502059060430017231460517399283349581410703075623193139898904334723104406643753995443979321689688720145876522548387682698718144637273511864098917940144081937143461747775391404743784939854301978072126479331156146991866458539969271878472862454263168001872322294080453582586339624690426191331423595152432011279532328174675186348193132931465441169022820377271446564763446399652055116481623027637259210796042537809538001158257690974488900993552215698871652972069391242741531417944160703869373909707731423612854692053498017760247798340455605434377209217812716157431337753792460927332722524218188993935687737717013848868263693343601498893197336715795359564470398835378291461539174218351220586436267920353308769073114182514466542042512396886220118022236811557561690392926992344638434404163821244441793607514949887409834773449760830032318101603357256754018532251574980273426311130868739959342119951464860230546334441168721022706354145067731451215924939867204070554056116400072642946166308192628877666297742683545749732685435352573672303023323198799619126228264792871041491007294763615676667238092521863847223432381568040972751619612539269682981228920044232339242812375708852614398799062133413250065620519516037524657556931689241196223516075505438136917602560075202672327482155470029023750624621483116005616279124895683010501399165039306372223430697387808874335490833690612912389805300546412655533370481723016283528987332623877080498041860320734724384715226686014212039697118159441376855123051258150273150903392087662035036173541124297849962106063622036981170293125345139841470883363652843293488369514937588710178231381371876524008956972434918760893026606872805582980312321270163741387110478820576035167651775185798258209511359801439861905497906310572406295979464568665033843061931236801903205303176162782723790256414411174974503792760174920847601852383640452253999572708862260533270620947059244969304586037059611686616086172485382484118789897865308677443430957596822531394133206566738506396522417889476147483143783687330418338014178301572071638438277741754595403124362264743785194264010301906467259992829009704433027954169708994096184404484662943764143942041889203185195552019088177571904180410928210306091742180337313078052981129129220553868390401917919260114364272556737430470866166482509852193885835204030679357203365466342620017208939556548321662991645926483753770239963528428845272098484176738933686924151335250647212460973904087439813734061885714180575751604921310678758632082216791037949945421589733872275749010268945058976278376424142674530095530241991458367995385746399658734837128645858550148051747390850769504205552148043047241962193741807312397623446661951434436707301550069772679846668026359036131263815980073942622442079593953419828818527400558920588379840092377184531337299562635063479858349526545897011978439599271191282975741376274446829163002782753438922482696446103246476704052537418819919183233674402111412771728910286858325479653292225594724752898464752734595079026542068716218314944412449122186220431757437520590339225976510843999502300783919698716281862456535497457120587657595349195255613087938603302875903149780854556865579477293215865499011062490488879793921707343948489419679221699325645134216490503693372560368846116258633966554713136899592718311135677767511059167270979650541150807319591583037420034000710137049987388280686338375565707836546748225769390676711063349017021219734669761955559426586348877468491227751814247756035130911154601453169618397935939533458699023801120159901608163036897828369915063899730837080127816854180755872707309205306957784903103236784102802734051808717591609396506606210039941326083923375658768504220440509036985208666275129112137817656029777132940285303133123271105275651688888087182891014207296713233542591151785564857914594137489976263449452742174755796455190814232073271204274909272837914158205197412621524605660349937588061786417171326461029337740324870639501000140678592750350754985568174159924238106910450515081542481686098380248826685219955593533128051413648113041203730882932529642940930927681518913988804587284027314834506116597554418945459606976279387183295088796348960504644111628719782789060182597024944082452042814152985136193164406532774807758446915709517748544067177279583179734151991387080038206801996450941944687797386839156628844052980441239774059364767359832584805206192024154206431513105196642372451375161493410825497446316449691490404873319182445917955871405158393803755610341948146718353765361186489365397832316484629794268255115237320971072898702724112255851127978982449827231978169395588461625718021333955128020210787471415955494463722865486193854239637968553511770524139189786919563602402740867497358802927303918371450547211210478651140964726202892373074751253150270006430077961643727124887127359822119769914035150404687380054626905767726097300226796737755342934368952023633038824514471938308086383065136414279990997019348752219321712868358426903753641886939908604858469005778194882117303621407814818047384892709850440303686415523649150447253165056997886792762645202623594576315710503333805448457412874643084925396354853973032375319909818644406419422188135058259898839529838264611028335963554783645992692442873679684787923631870404988178467187769320844655726393397191957105962281898863236571542571031082636104155553840678834519393058026925240836948183790746435950013868922042109955147937013156984620947032602506005336237781139980814914594240575543197394636789482597797305502381620209678174827624304003549886050939446115591330793947566539625885957958246949114828756176602905337890814158056879828781298962544565245442174871168971058018274980354518838088877557857527734097775109418087502613630145945507677377104082176773296258068372677990095160331313910538952226897787066757950557882357677565279117168703700798908523506673660240798284882269996045594820291056884242361689754707770221878993831741056623225867780281080579853385886833533262208068832027121598036118452973879298598421116023170672222307886477373165584492535715832360902327454934056750737206100267253795549910604171928561526912998266407748417517230724994628071233019944056242592940667918826209664298280775124085471324477693145194133368167370226486198953347254269375516755340025369937727521240089570842058164872774570624068993508874470754712417111577233166965053171986920208904709264077408659775544266821918533275418327793482177288264498530404401021481748866983670468651559314048098264320893824754625315253457392310907379035543058768519916659710014479182902460836489854617004048529461894443067576420308032851578933800582407564422591136272824196618736727414281354405775513133719729730523016806538408177171236505078402520915239586694769974497832039031991109740335200835639585078319163150735276522758449128249212126006973550012717928782128871567394688813488006397334694432614300056500244907153082738347265089219491832521941344751624503915560478576751223306430079275453852844544725297258863254794170394027814607872576105614574622842215167376184251512121312213091011078550940889315530596932677442218401421323617614272829546860363436926499176649010522234190798780780154318343579583912776884100772222483799371814176746783859246640403419899176993968843962126737360452685738718206562527659739519911000490861974615669828500803517632240861596737836846955901577974550644176569269689516154711006476434514855612465327336511892579399264006068272566067523742713023070377953983665696292477220992445143291613209596544212682746024837491811947564684366055070245255403649315133363631604560293787959631686063161468742433789996713031465844848016547639182613536177661584585984218881518936772358662012334896488465722352846407150335877224102727562562098298488504726062096830716183422694563516371800741024897447309566946775278314910402353233636667899745931580281688141789732408074535645658528218241017516269622668204557042536630508859428299745361809325726849477024311527065455759646895142412936512869994871441121314235150608195583648173877186646721738612005875659665351506440936575111242756164757719903644214454033943505636977946110214946245423095172538839536837337682355733309798181283923628990134073976178776555170508854234578620915256463155466482017883685375734119830438642648917084935646979587992754339190333095043678448884995560585185290115436472200061302158792485180008159217282715907604657164028666969255129242383516359790006798218061721608685302621392260253424205974753312912986229463287338592627305068006038166873787264453703145470530884142133703480156563939167298443027804106295813763699124094449429917248925786621310610228518014408429496003286693105884746825188901770784582084840513454606981831597031396469972572194448760517350404853910078721045587938297360189614912163523967107561407855285231029697383389064057341701682972379498555211674712751228823633380519067987409881418465429464826050389048239716910936916395698617892104466449174786114519380133857080515123585424424992689756054703627703419394066461278098841099778296629272845780763360169491671271667163783705872026433487301675008815221530366758701636021961286840791454954483766883158435648521725403198925729709478069485921151154267197284626460078498797169785641931609980453852551412166606914920180155726577138614754629007429669419871561787459807727472204059183610780113920769825998152559425190792094034827432759621659921890939774082795108191140642177442861585890768975896025867739089427750812451215783372191225743083103441811945305968451222388925679651540388071152700923251159233503541392568701254306937544023813943785195653484389066717310742596883298382051206671206275375927814436425974642615900147512061194955983681119796719170232219403422547342824780588910470920642710704278767309103204604649143189868280088645020373396238899686402767413453151992845815341603676579195400293591643598191380775362701039531566936280146829658340160998239286219365629465034661734153574054275900044487533381010189435706514801968094641146822438151845699628643281937113421158148356550058886364693158202362542054760421897884415161599328265082192620440592942324059300221276959996764827707453731404504831255530655852425832377972754512180558276257639237670543540562132055548678455148940666112571838778773814495587723308537420874852224617233575698213556097396418189033181724079677360828834434832167985079636039613424477211390385535416987344282785881576339083920365232677036270993061132129553424388881022292736953263042563214890970372393344499940670696305958315288393928600367856369460572160991139003907562404554576956695799765154830385177867978629815057765765326460677800336962693118738561938192149329685098182992142751048013571358898113461095764550232126020511818699155625504160209304123234430876911287015539245556494391124731914269057876001797444590318559997727227874506143421622504892443587789595727242528015619078277280571266254275651788671327177066340962135959648873379620325034791203473048270314167820629748617561280197264315941305623787088139926449677128499216161074299352979041768419734427011962371165153536229639937379925503928904094373204515814641002056004835720994251882339964974079573004079429203720949517490673174801124643160227957955658564485303697800218353619040224574300908876210210700935452464291544802280151277470588449264986271342362214468457163194183625249240558316341231674365709016708845364970523660553123988456714008029470056848546849433418056887044043319480754396526869171088560339060354588214880475405036704350708674882349494619332778305388411848187853237860542484786536908756271083841567515827247953282076114251413128179179950249635530451594381164250731409172462338600865287574133432998388742300991707667911610663751686892087608988195160240526456017682833719116709602222734807980198991573081547455699327581280477647039692177226697954593544215827997353711686682090456867340886723232567014096331858106708617907275767985803324948441465212455536802191124995655976399687057191186842520387085813243402957773671454672850767035792363385962017518641012120061094606047398570242138687319106573025900686536212615586366616099774439135207981660386972900518258514298548342882071299507660104179823081266588407895767840195508620765626888427366645214082441467509643823856034084250533248252030123690685935570271838226420946514530538857410342496327949679868136571838407446260516283005023366578511180656738344653754805012304007013499149889905259682396207156248608428510016638266820000909667125877718158353519892557298325096874338499090376742863954846816901264550271634525483813369365594649709705223591897302172420818495310347910699667748113461548946339027937911128585702181218929017917992995842266350614134459349400242999973140303567799855048811843559103027540105671969293256911994222761264119043265367578038117855068471030597253796158264941253641843924866632723315941528620444156667316710557443112143917224649854141077960728141089512449528199875544629982729298106537660482431552992931082404409282755066901376148455173290894253344166129818452924647632099355986524860141722751099704801129356752214557304545352844473113459659705207057090289955206261480641301141719457741372635446030221021539291688443775539578247184772087826639733912542225289185603943731395694935316640214490042655586120666799936470525529992416467709731984925296089088930405773488108926191783297528878319755868133058891144979294362474760727388931717770259659089199049213820807142235608385142780506991988261041915128332957047933116793917072314233187664146537872099677792531843177406296924262202700714380600186219362406965212564350383744763983320959707444043890868815762157640307452203274581770025365125121135690281980825520035563845272042057348717891629879044611710921954787199196122189548677455552194954445164010227206472939068962333044260068121450236921015453559944033061342666851124267840323149532828623578721815862081676706042590729809449886876086793532539462559845861837222183774027551934690669903634862282663637009510117843628788490144141751177384896566643242445696815973238325975838173126602016998390850219981614616338244186231241785076236337800191084219102717994262199902885374624953835251307240341667381132758919099794483018187743056714079811915748126774264854599634276626178372695888262209467799202706260557737159564948665270160942107677218880888522699077463931818483615021458373470806306979112099211977681153719454984784811350896143265316609862773101447603516497735013779231455781939463673385478009613468742424956379384310312042177529878190120963553523386083177329453903885780006827092142380114475853614855369395082319251824099091824703093164738974787007016573790740101353583676438484420313440830442016030320612410963787632502647176778388380620878941381228100855710231980098458552955270409254585660007713921261320241548373559643652801274214238898141541888721601670162631644517495670318225426099907094317952720769977610451013641188245797733334829343886974677038338869127647913942475880881944110218539739601597384339187102737000896258028468104967673604240874714248548549181214849670422722583974509801930261322897106985460913029397195554096243513469681698448588462655076170371972656889145356896690619077001024148356711586411501186289294812691889129237365292938082717871388134263067637256641472275050725705301397335409162836671609210904700386205693454495985599561512304523711387627009293885671144416859217884283065047540970198361709637530082308992041524553059759675312013905103722574001373008502632852965255256772413106811037256563235378825057304134719496388004002806777203383156011324488926594367455149143090585904983471043613912420053408226506072327991891251122433862920583654534834464689202563319565903788423852008861328029113917396763540254714057293777872218553489824430545808196009304400863074235469059926176537620697258870721576013005665545427003445639401359136639772519490646454132369822327730664390388233636001084937900007757313835979362807123450295209136170097103439295400004743921923543499135695911024535180133959087211987394217013220466198800207207999999764911960490141067114511768459129217153875199594232642618476893318807136160962321885999923308840008890053793477547172569792623707511321788054498433272039211844383470116499400299529325761462483004993410211068258225520681904699757482796535622773903470341907891775817507881870221799651172014515035789469958111721640532974393772698487909391509539846692794628668001213520611966862211824064351407685016861003432097904052185000980934123599855189533692403493407883564955990832152815085391855812851826711584456551730509376078362282037654308569966423499170393332214576186079216078442110752176601677231665511175222574071660116541765589925333226045725254015031639790562633060040011255790281448780466079633837763826714883579054415316876196782429712290500433858487787319105585847965724378218573263852740390209984654882008366205673467854502903832828461673532948912615914444499295890955188767269849332561100426298142387273223536777339983263703235200152098392304901548907476258377648421186521257698328499944514776793703682481362694623078495271663701604593200541336192493020686968945901209914959248982396423779320494594499328919889381833428576231815591481598267461491689272902679026657305212052431032450441743125393985615549314519275239813706897640296070734661684442078306789377768405028427058248019971635329463062488983454292301982001636874683932428730936189835709692886501880274398374317353283810037399697514100321332878775083421812707409409046888140653125882753576224747949664258547412420785878648075061377275138982881709689974871331937894776796959451360910852462261268232179863278542603931355042700311508308811183650359212222970897930075373992318384584038911149805659244256795109439828931720635097486013962205698775619386895241378971794270270386214012821883977984842977559680739115684055552515612478392351686848064910530676875573073282053964178929441932085335657705080104841176375236931716654521167615908647220888283672251462585808032329634702972236259907269565664349949091034717083401717460902521069681174862673048587002635390414714448752615019440915135107869340311802669748322732850356748373178318620185272090003971675547280682162951671770591701627294091967442257424950837761936892357696343966222222123349082848231769838231403919199512540258568571338238660314132212503988687795746226511518615635344984248927775481150792510731931976205981351220193049290907061492237202467357159208923736842599795076183740720825143027661855618399643983021572015450197804556062572333841726896485701108518981225672160719915806327766991387487014601869477650684279684890365142742442910174131021255560971755642559718784003849442948392834064805914609982125868918936435424230002114814212671663886423400391893090129233782265567712599710857459572367953478143155579214354644726848615314473355204749818638236161507002266524883920382974092924037693486309174209039009930143350526583834720779551398794647785112110858086441010515001757877619287719668997169371870748993592187775448527609160461110601068035993852091794350757050843012386122373536325656441759170096679252386222403066800363266136165735715123164281923697104802223662434059136073047897597045558135550320161734914729085005395926072415188250835039833702855277983603811513856884336693778860923714307873955291268867036622164073452521150326270510110900329043788066890938165686533075575103271290673627275719625674837223461481133020149043325348168665354517806573070864077478524393251757854937594071589889316943895530664812827965625496827161209958759520035787890797413444020846804527209502816777795087017842124636249544242785889038481975142546762915105662185652793731355741785123157429602030612756207202940597489069404261877305823112655654008834478399098273460625374955848275082167199874813013131155291556638039926146036174955885427274849336687881146983570859618760120938022916310223510359955688610753034894553753400460016766683940994630325467745670098880362832648899773516646870935374967683387573843230035550468985632641240132492162616630961586997221743632418290558739920318577462488286663680085980956967367923170409102770872535362985919415293967878761091760452180986311084827821933285664497686812058602318174834629240765449274051597024003857820073896969468209944251208162694393232887631613395764222748858273075113637091165834241122929302547478873232749902716544752019141557872951974918103989006023225798903167411203727536884631930460074916890061472891931011986023598072091028188360995886216760768313423080817662361095501685526614612517707334621745930859882358027736708271448941110566277516615059673016408840563302403570839107584547218182531836057547256495467882577704691751434609971276822492763852238812918331845287644129175603472371258790389550330706461652596333040902619161984747449278270222470638784898811261069184217063744285862860911295253983382349982242311031062848018822735905143309137486639042843198556925912153171749102873993942636080876263840424771702647456481798955221977960589465243916268521774976886127891427221277089420203160614208103176334364439101492309135977072532323948682898289371674995923152826691461358799727623925387123973731879621905180004351401616105430737341952311580921437696560688317303008242629317530108450485608059033176954023977705855947849966796338287291074633099058239663636755794500632126409867915441424096070327344072807949187083896305088025865727219424785985730118179579614470593278186568623838479965761287551275225910036899749302940940374811228363977472841961004591566107220573518415914572286969322323333108578796385170795229033512775541575938578928982273144999991647172452013089007979727047701999925996991593554572850717999477880852399341561305886254838185168613445473818975417003571130813470895247238902829354522314470366766006843501082031118447896614750329437772206421675980623364319199053245007917119237756177920544431096561445501749697516476329712659642312278954819667193335179575876910549988595473931192855972176807650270906778596570770430049147190498003799056766639371375384942458599144657613034829364956048465316477461627338990849129022402034374270986466644895011011560504444025519535654912448134030978388084196499631711030184389215931415223065989482703521936719148670315673286841059727937395331287308789458018301146268556254684609375560410112775708035772144952672812750060129931551383022187457009109847534888576342858244877960664911331847393589693027697509485295522959586148377276472608838843020466274993777628166718126686181801551027257334816763661173081953394315793098807163474659393502342607920150713109164598957398232964309165845380407460723438774082272152820782067974140432004374581760532672302129329916005895425543713372407326985400687836871253580706885393899549207621717277291855095495495704196424337734202734687096844844108035142593029636934463948168535317202630692127344118639340183776758320319065199313712811025379223422976085654911157296294715121973204007797112021207953708765676526493824652361293639250078849077129513489818016627938660827701402973062807572286098396769009577129320442213569242130274178872116908994826270973576592816089366825229516932971110686420030609908382692182412142816994636091007531031528577282842575962319461376283759798122022935188110885593434170447542813490302863201596034960299246559280371124689002809403980520725785579119139921014081161883967597773958723581145898640437979560730609086503550273037633937097680286738669808381941820135651336149553448372802366914665391941543438206022501557516548614583971685300270919549521261306271737442737937690032060045745330006808410490958087613283285538898875660726746794920625007802977752671077540533368000499189988483039295151123014394317038473667415901646497963720451247724228464440472057438964001124641905432518777798028289939139068617132108176159728706682965103625441349396589298637776362139590399913390370800133048874530032811154097214572713019953747324620634684605773607388516376931176966872327336800776097218041118456587388134631887854174696977144091315272989298147601618351533230491065802851708603059196207763081278842167739708712895907869334690927189846542929001032102222071815895926142298237803842446535582925898252348480188421082325103881573973473175278574526495251818773128201340932786681048520058503320710608475982240669320847671955775368815824404526088935825400622310038198299060428965392478507164692724643122815601981326602796189413431073856644516952184610704824620980958788037634175579647703461634821795488867314369230659847869667231400337749196911048590455202306912739037505226724599680729452886441135065853581475392626333823564379920790758295587161950857167760783978429140593533588044884389295847266857543668733601369608116468058641485083765334566759951064238528483211306136392937359871338877080959854956798392015764499839980590694404114715467332153726156421160511795736034437465663062570125757709262383523144604979653936906428655042431898140196077791449456020991262074629170204539122827055070427321138436750213503692237762699535320591008641465426361143201920024559716713992863508239744559732089804718791376483753047537194190309241241608327610460615320863252461740325281734084445197491933290139978596805584113963753188705803695110337068671269292339410673647250548690418776985658702590267819377904291591347309365031024354628109519756569340490492859201749953575494651911844748888108961185036315588725276092647800142942736613567005492872057208249133753941265070374577260431904857485359715723213272917927544773243658137063648104850385829183273730243906607219722360795138042628338154768974726837474535031323653630270461916292471930586005282279584773908621512937093616876870731713504253388206396780558484932714460836113651175532494632544857847363521593298783468615346499064106284348783595673626782530291307601134018275358330752965619530546570500302948369840343037492352454140348714769606255620642152903449504853351004061766296993865008892820915591547818979534862719450797307445189561641454870000452273294485715995761760279098265182208166919969858274836316533960868464764193172150408289393430347174654617000742329154628240694118760981200047978913646631673009147986524939718428303851303235561985736276550059363603845500273708543584280155628475217909031608524423180340074263571228537262620694888808344680880279731129303373797885628684058471299745869588061331899812322994860012623967532228268790311536917870087795203948342622671542331078694787337268976588309263997261989040400263953759233878819883896597986159887229205535905863934624305941296491446020042411888284207842556752756106513795659139281345289425310723564646682670275252512013497130880496172033578857765618605282585255078928369346129037641167155367487841916751878994557118864632057914260316658092902699988616902388694309307815587636927394308120974280561847526575574772041696687314451380895822536162026799460986183799884949620704926792652363289133418578978221080100571569907841863841231069360490845028185995391246538659696677520617998852400357093938841518611278205458240645670075269813846767470068649615906857108574869850761447926097192776255688825348781505463805674505121007735104484524080252955719067360802015966875687230155304748969948160704825241145303562863801493817921803084680984135135863292253092921919610278411257405460843561568633706464022940224509812482182390089613989414981175421077885645579216894548534497566049974956368271257762423936799642404253417997536829651365860045236950530977042629481483052366500501413034164352128228047362659166939816459134191145775030467121390972884808227940782647223619004900140589930906943777013772323490150455468025304851061009005156350029876661137062696225325554286155396836020884408761043928995505892475248704691614345961516128302070619645190988810177239968121239311475632266311275780141150611767991557374430495164895552660288529075987645682668409140681855303248567497749454952351243154905205987745731411655565888992847970559053967623160646633498532525706415919956227794972618825338265645129708191498886180191158236005754042201010713142754590991965386381983912521745708493892308521293730689981892318829213312562479327596592417897299151931131835787820306589926881558727063233300860512353436457848859058539033973442609679014074574034030394831228961847469843301842315377654336264806367296148688059055372629770626209023624523900960457013504055910143541869186558795915561747701024229889969220149148321251110945034599062458335236408200939529411202731981878775817644796580052278162969171270646284329292350984886682010671523927078350627644470070400315198755993153741015527018572710930053381222851906507476978127198429390331272015015643749848507129624740171304808339186658780939020224482327800815800227352069933064329741682765564696506043557430269121231241321696174541165949753941918814666648078478763400414667085262137229353731384445268214166480070163051452298530772929046975340955645800075134462751025936933317170828039937063898762979203745090201716381262559118568874418722477004988138573641837256922381330569686926772579296036132929547820011021801959379976485695367297267996163487258138403642976300428605906257024091463791175646317396452171656177915268097102986376170269162150597325457313510672040834037391508027919617390658089087670613634405743064729960173538510081885744865073385007783607475290745648762698130520696543346764520399033627148089236045288693240087359778953269364673017721949110293631220356223475489873439643428258061901421639486758901626419452392420874047479056873943106521273626933761981378564333650924814991913775076397848862159365781283569388134321989073343091533368744898643898525095191644940821463273761895232669883129246136026184715751058709323864801459305557990343757716069010775560287061708603027870761381368767494882616121256103645836480235798436457475350865856703474246138966128170656048808325945017941544944763407951187339217828330908520951000405787442038318842423316092590573802093714580761463975440486397562656148870188558302305155205335459787503853887229705618288281064549029885109975887261656689079754126759887076813749028212756967531617387051151876152526470924572023581554913280534319100262948652867209612897189961264221840781507564545688626117490214142391463564679714224806046173476246603329381142026501414070852280652880748605179582032778253247598898542466659164372407213988424216331580826696109231199487741582195297674413346453140978840950149447752426602377004781014056176017146103358760171745567902889429137428650693325558131087728838759292307934190335781533017474845562728945360076852530954459666395317293834422768289789008218014053085316323827102662421990032650209664805570557777966256441812599250221579990235654671200404653723087792764973618348120457721259808510296965865074546565866991249239083944711201592411446010620052426517863542597896849039465830786527086884423413518327398595183957855796088819929678634341913612217300495356883237781622134871414243493692298269436157289932942902366180510619758859957976384518345587859353455008965210024477769288840788555846575963900852356342423221903983830310670662991741566142374213334029150186316729996120709752828578266986288110066945230023640284477976416974138161684442218600432190062049977030964364526091854413172309896999293346515732026872773882592988220173757361490763763955556407573809527943884484334145479613749670588278509542231162391633597939262572069668037647061094718403796211200980164544285319747394275883446839911845903369826548476330037994066145278183933138995594005867178799076410165672147019593722893113905665497827974986858583532064333926285528081257025512038906955067830228807459872309415474781817419774652674370231269574443986703828245324724417831057786155451115899843959924140324289291651063669282807744852718538772536499167723692107133101078620631515453994512183253301840766101195050201426208283124335070126803339221009251843429265652438991385319059720242087371669798571555480029780665048460797875264849898053804865017792860416014849758938538922355581905606638585232082685413829810839976296790781520696290236049045938819920395622118522234031476213383639914305262180696328171847895383945656595367282186455906060154041077202764051118771132948713350535430775400951733678260730336440378064565565761258690644575510564679559891113782251457894235063905815520788406759480570365948246377593318389797507121958914889009189927881043297075729073203503355250621366300745053922303879848894040376250530654059237907327427718928543039267135378948288176350370587541985719975182773712539327209241129261903902662192092296058155358290858463162720879563502687837038293844606185487533733867574497964980117337773824920773875323956609893755911284294355656441512494973062001765778096888749672770966046842684585088049156130009767681189224272287510255828188205122782413305049970745330024039261875588465989702653969022004811545359950313781177641092875340021505129773625703377289027176890124924063667407192565520472500738613640319035814912625431802743966208170877123654033917740772722301517658606305655659256987042737578842458510731719253521743338617206567794020396641967392793539983335922974484941997014902510220496891289971185550268230438343948493822032801378038946604737747731525310308626637233908627631218410406346380857451521466372415541888740229350519742359767803158546012827909384666529873853852442834014119181845360813130499142830506741578469264563813151508592601676719303043031802928056442100511194514299884294085159521147674723643722561037000205539348381557479677931354586306440428855269172721438659341551456432307313632303445654767999217885230045411747436191781455104207436889873648304864092071966592909951598724183233715111041009454291708307681232917383366210816107530020265996573256341128493439466213275866996299400183160291569232688335969456774044360122170049165598220282745991136974473195067285237098423270870071125785010200732044431938770444573356566345231632427518134264078059451162893546924399048819771714338196746521555606805110739484741031354166870194681475397451507363385867011289548547416146368343325471400377277252049159734001316500216975680965291605599475222823540339382245597010077746935002868593975326393330931228256118294130921093700884969088938059011258440419654409382709104376564062171140684015440001316299374519618858663680337373089549359858142590270141103024824046725711342303341667569880019040000385175720361711735565639991233596050309281658370615906492877438197850481983155313336981076471971120217244229900033239768445862648340876108979647067096611977186490811508457307153290092465253341218210631105870062033649895427018274409385752585816972721659707596428799121272802452002887242936107642968545237104808828652577368828128125403471756599368604264454047028182356568905319673715110982554314642994035764903324573517820980100997961460279295624403909499141010668917511915000483061488774731700839711982881480198110036695646321789759356219152155546958404969043840952949369395683405676796283192793011212704468326529309387697473374566886915674180290287091174842189337421542538989294902154821035237886466780570662991793406820233004930624360883177876733773969250694578528973326799426841206849730516156848443857105075354145420447222125425461504097509343580348181946091014409574954764755630713812078154948330543263101891788293794485312145436868443662684997663068801015318155682000487877521874314410004636509533315125340809534091249860059029056497870981305323355750368612251971784394002669935009761860834124816204205273272220538763772786649935598949593837240245771148155385866616056492114316907195784808799970910600054293569251745766299202140094516313614312676480603429810193770995401590455927025845733397268984369751296339624938142506692290630100820002028879568630545034074296648985028852339336728407165955694037575119739479969670571582823662486905963725119749992269632370428846645855897842835271142095041064479171706818749843689971019867867954099678193153968607381901992357298749523421104626423091910494982024152653654055748231242258115839126084367931680749871353464993126651614910399652047084995306032964328547376176430865031188691909680854146519154365321531156105037217391681546534899048531329980624894357118925751600104687276258621386663870201385759445702176429507275952480395027975198391277849571976232449818533817819103521681711508186562292171818506938593038926404959871865430396060901302509936257425697040381057567532650653967790538111878283388233942602268145070248696696307590863367830727054944476927870410304072410476022828149045990236306390452754875258522781368342299360111710649947702770200465431524779058608007124095263191499349173492824390586790928185590170398138915344269130513955147782565589777172333982832360128441679570217517464477467557719664253673196891476467019633359139450118488311509187632372911297153013455846933697528993140957407904935369402279026859335237852885330359911864488698783759819937409465679768200108052113057362980859989257195864832795818864682517113124788179908602293292959182922620329185655619645209398853631805827802475485044172374413930398379527149551007414190105063536744721939181099253857074044292076766190134647077192078420369015742803005185917689931066217502678749949672136999628281997480702514169399109923236709549995855789409359567836288933750251043819062471148216375900147044600279445056802830121531464561688032148392096225798223887386971041034813066822637255970922350390593775908727034771192383101309929955283876490270847455657991189670432245030456346088291232774949240841383985339143794952705302009969698448623642080576609311235381154363730533941882246620752695341752352034322908522177341481755584923561528005151569196126434753697450235225515994134709051079058739189508543126383242920692042392958559904856901421899408754955738455115396058150831316116220316367534220486576523713905611213836805339820417860984486427981804935539932943425093116108320521613323637749407378962913563822125362442890162034055857363801181968242291382510356280526692091894380123820472714065014779267709380856423695654575379258394403859146038499405550034714461011730296629535047054614517688838521123811288749274667116536488005349964463959415601935337398065929238899972240563500306040112222693911445568211033296786055859471566093757365908895779463884579495278101387507096887115977848573884318329138613870799215722684754931726881050663681983153297034440315425486937303089483689763161645037490864115774256757815941254284464582103361819982049604975586143382959376639400117052451706988955954858749900923686506365008006791198508593863325311010093241097371666650072775493737594978440559255313033110620845268586017357749493208781468559091765832629011328659227223283982390943121631887389711248629905502864204553077756796281318529999619429018639338094034299383435426827474369643325808484007590112458348281217729650346705070011862773147707530540579349217002671073112115153859923411284381459270887021854778468523147258586782023907540356256865552820843699221695678863307718533465251495159540298824470466748790288607001417376402140421668454683316402539807044979800815340351893582058447897220846440183176640708570746399176953511465639571366470600109769899604442199725281284928135709181246255938853986696774441466385477878131065665853549599890560816417380494170726294759774445910764466805668568122082332347283461746428731039252908096300672735372087588988871188432764778989472419457239030820051432189377038281874790893641921880297198830386595495598015869746724879853305978581625257255322216044909800587988761778944723274038617409244452368934599777635468605676509125459666631588917010642803766190567069358756795045981199967061963440641118419696219491134103979751464187123194830020423970847285633568544730302517238161175151066121279034879496243796544647705174732409880937147450204439342825103463148797378522835262434963086284571254694713103211453704285116442164382636425420615916587357195960044723973586564307472037910279499597389187129330398012472767652911645104775122954328671966951014198967790258277470903174564453748670655221836805612009318687553606712844824499252327689004931960855516215557927195942576421811988797054105921291072691145323835824865776609866170745232842687788387081111334704178226970808359947748061713974310011204705251569270910224560583421884287906302235307723083661503230954646981996414554027000961424566823575498250267769228025272994530683215161038957382644542760926373824224287811752439923280125788856598823279236313886615895728904973498672898273566885589431434347934629639501006763812304987918658142648487350638392626153297213845355663003949719816517048579760082205802385240555776112222413197237433200467388729898326914476401487972604522583679604990971365779186262821566720397852494046090891704051552733994121954963944633604235513383964247343696173135100854744398192369600336969117455866225503005216661803237830378516651987951735272389724710278261366983885284759489200017412101115708489237319838045687093319492417793661011410690520998528267738773731618143163548911068767955918287389435917170949492990233167984694030403814271300462278726209218743973543872061983457733424767239499054501965002730296867955893798575332696958084926377723739631955483377987735002974967545921885116266523164902945561618825623838157168523034845796498437348146170179411747274503932132709293911621863285320816635464576263913530791795963937750665689210480400951709605708059476241072785674211922704965343704185426849129742982552198853177140372345210654358979074236576479901264684852610121020301596205980374210077938058180749382222917034477010348962803912614283980568149086334900454567725071146342207930499393006947211937857234908105046812955754237508222133028966042171848761354810378945499610822683548580909019782665355991349524095257931540902300812207878217340052793843742111896466264624643807095485161743982764690967905329776493333069677742505722385236730719908681640365514413222423497228510158873570999714744398565007168559918907173309765371156676963344568140176980455568910190507570135480142803098979029440959381455996868454153104620068814712853231479983037051314603220708275172843146992162715936793171272659944133031828391806131335939153561489881930224445565389123373086714493485843070800228238267570527775201664537183286982460550540301691623532734727858140914135715698191023877848633076568949454565678116285309732653246875386674322709062474828401928088873433671261416668559078178032224829347232119677614698559837234589115035072020324894169969949670884422390703514516404918003348995514038837881411244758411795701183225257646336143715111588312485966796185461508643184120867595064983413555398092980592462833516111347345909861624301826312107748750408998375342841158817698726226690947334194287318357401755052078169213384522744764445831080144934635181625541550358830886247457945767506324058415430893721179466216126419691407520037012712857719847451443931143268904910585779322151546167809312527947512885149779551276354574781325296184193077578829643094793256149930098205362422115995977903710563042604077123501881212945987959399175706048001001458143403663373437344722854760172138056331003673544065946487081152101359090568651136818058281470536419450258770375598921604993907611978269656093235788220779939773618703293804047056109324613290544926919685458079675382061789758481208350979978766477276876476034770964090520432256181142180056646851721560916684474527267510627749537172412359131137430907734759825163720119534346030209304322497693946235631964459108239338818771122570215846303344508898496746150313515551146069474381378018253334536122732318097085946699661796373153592625069545304713268965220282216460779058352720702034863389343878153634397916453377591631571277011834696868840648111431285559807244496122699331265342764319616581618330257875397298643145414189934627719526532265813655240121255504528430654048544997905403698425024155827306555486205681085945012308278025084056866384250750093140270410750049117518605148099956510394994088319679329567806261462357091259795791074197992182073593256830601930337936596471939747656199688643258078289182388212922487397173721179440902867929277152623975592356928530678821664038063091708966465088267934680190277176434756852971896765172348898196052219258941161165177449824512738275379483301731682770799026873405502495063926989405491759866144781271665656184817255194822753377147021805080347198572595968518229558923616533843597825863765848361501813846128643460426321688077956583728116611360459983409941188072308603811092259140773901372003676116353130016827174029950546008391184134138184326272627752744395285412135911295695281904334311991235893251254926160443283647099695536194043504848808585400296385946980815325287435373841766054832857859291708748575203138325128644195090184527704992282115410426812418685891199112258746112114828730010058392367694156517527431107539354056357652291556334656950819678990200154258214008310366330855513369123692547551818755581980719754234976204164758010292477985617163395075645495183876364717379230101865036022554985586110102081480046403025000952911691314822052555773120293392049589117663681894147916204592172202498684187873652299729965747759682063888549808454276541199367995114700203697543962613725841490058939049313286870406233796753702733175116265176354051631784028574719241945903376320181253199880810068331747014534450450227450939318395088407311289000652374220639524957663897154717468626190003844240198337706182644557006520123621363037974501258898942986170689903791677747815800925710641494758997079941150907172321671175474958372722951356387391613992472570438122574105331871275187175277407257975273478643059444906599787966158772878906819382544815128783591144342822878103185911066957577471098548321509887836876196143854148888141552327442273166666693747461294567809417032196143008633757247664320034732126389975623541400712102919851451694466666272366095141442744449832763695203497253115913808671281572715544838218355399068277051397813791092951629739766217149632306063076610924507626784890569388676876770496106615567877504818508435499833526331487891511226618428162880185998180648767775275143470207145355840780385247580709323732207316931278465276334631764271777337762855855256881046958016292076028230661999438591478944364873004284803514860954689775631247151615492537863036198171581548381931167601781405905041702460826544757750206202929673420306471042505340827355622974947312444725183151380763376727138303937495271539724585938089320777390026993952629892700031684995375863500505601590234397907806004466856289793378224342324589332988310995436507640984006531117818137053644044397326125883348314742924129825846498771309006886293161054543468090942691167038597501463748054148302271863189403404261958438142467639711318601865462014380756632048070867957902674798701420270201371547335949682998790520719565124368899232919673092327193588410815856393606323071534246499924565765141313888759677436039606630665061510910219014166139889633898209917071968072526230137770717652521391468967392077447402749569478768161589293158846391747905336224204625332744069577416404871021427480257905553001762246147934685517115513981015055279498489678090332496304050493417172664225379603440492055612303149190268662467409109327892804204399359014232800461656966876045210580227305283046834599215551851511405441431685979675486730046788073746335258922463839901170485353674927680549238341350005250806404157691921973112976046455532322142767324171333322793399654692922400644145870902462183802399710707537243574705271048309263815108190631959500849706742306842300708879899756450249933780287548649942172486725636259270584972642684449017844902932734561075158026024045720693727396154980849960229527808856349667389135021808411733119794178096659406477813128304178599634738927543797167339236073405105887851366055125654351198014800493364210020581174800586911435697543837278961626988575515602233626776295309788403274345564651265102270290912870562390435082350304090072594231757778020867229336154337372897392491206965784941031509951948283972348771111066884596215866003185835105012217125954078200318632610425176514007346216166267580637844550635668677232959107384950874822940303627173812981479259844264230632336828662922071333199625998105429741100717993483520100161403586110084370750912408839008324978324590698737169058083922969401854297310611239678390911852807719753071144753190598862438591298291674869949280108164043717198269768478280975134678039047036867524653044195369566517125016793337361609758648974024186397508344881679074276797579667576259733763505720508067028148172373112773615939249602242090407661288311260528464510242093371999094780264490876172918690778180278599774049077005628104794802715815590103971677778004705618369763188329100961166800711000783655033983964157495207859068835351690569491137416599868616889222408325748816413799673096982864412143518432965610421610682247608354156213493013982459774757470592195577799698086402032029260060378655486262952063857739511216384785234456797908016153693124862700201312423002286536371704333636222906208340442394230352288432961290614970763846571707220249912360160316069097180925549852634970158480706541124309599803663258855716822621751383054012047621930421710156254658344074487881107063167748623788334197006856171510531489427163316692057751789804120005208522957677609415494738787667377088545244228002454760921144058167095281501347444720803147715606763430228746770744812940534506206001103723507051445625331488388082985165814098239951651830617238298310514228485687259198268167648562193876869582507632568743123722524996359439721204141233012050941055286500060542696241779410507728482932695098387470648625535090188832013212712832971546119096914113338171505014668666596915864545310104246823419850544304443831654539022022939772970001986887208213834992858164634413527261826944836730567845094733652261018506037132188841907155918527983564726442058208332243214778217965219856708832920825229189372185113524747924027071573050307597986994587479840607504312636363311072103986392827759807517268237412634534678649546475175744863051321656522755838619061900758789869058175912002031406852178604180470790734152506384470018650368518067800040729628285943594714379272465459758289049959204055332180671302020120292311667374327881261642365570367196823081171366404129683872290491201372379927886426907188180775759207861047179012969091318305335499713691464736246033594757110038437686930479391148775773395407761585113565972802005101528012583375853568087573134239311639882679292989511983797731501392170819846599603345888825436784397847495980284212311395743006062588565750103279992659017921797585629241412011261213084598590647894369044312118851215141807856613786240562726726860353027943513344010461366076486104533160262465462873465311253824813046213484210647268858858864249328316966496627192144764806132127619336108424490380136394872860698167663763503194920177223222947442768642818011710575487775069496435519459514773710320226868051910735426672663289843819998424333533848365373087022878119657343989808480203895006838578745739311246519193505613630267647398024269605554042964396971234619514701268439232601846860105859733070005791849018012645497272574113805840870570544714438030949781365543902894472916725658565524037786602608721950316889885997760117236526095793992357681734545135174729032622461245466161889553548724431655374824720023301681435567380821165021672342682592243749555544789015479241632767735173427234252582605447669654920503282577845218879837870878474561361126694584368826211491663250731257504045395093412624239416297829163676545686728196603367534980857958095567389949610392562764690979273266594809686131838144348584852650029092133412691894023736129704067442799367133359653421708085208464947561871916611641863939256344810205527657619257551672200964732446769028270376048445782001610712247753022681606135837626449900551366082715357285348037923196038678088213619619693494862540417864548423990058168718058394304885236180218298834994295757135658844253067348205219632721782278585916037652999622266055850478659514890296608513377540257309825158177850983539880921147731462617948426348615633173942172600127978228884231452003532134698237461819717153363082176062923521855531992418493034701268373991466523616565090546122322938629638486607715486076792316837014686886933853002957255536256725560057533355126320440947885205814199549197958866762710020822968157842748532746118215432111742347183214910411811033905999103223074347592158182969106113582653865724654866097861521160378164917929201202209925643715006352125840726229238675652693811400287264961659811814889898956415063430343596591305298469585964154570843520575349491507124108227551661445206320545470974109872621213873273287779882392548687069366330658175224246519414475540125416585010398606208731870209315430296685810701489229971608201109897838957289539980093500262408679321733759814753437329939010893205727260022588737161398867365175232868751570452660260269529392083786754304112504849931111419114299451986389592077295884399379193939911657495688517308540198208047182731780149633802671287984100650308219861095349202696487640022783987985635397195039412290156355592685655242333252180693354072072933859277306802760072834438127958583481979817200219414703908916773591517391507175859383131847946308508226298819041268001936049661569754755448952304592039312097589714354658060108933189045837343967461750109495607276985935916962487581457559488308698649050651477258295729380638630141104202033234561976461216845136467654945977412844747222391938461865076873889425349068202721617958276278196165262341235780458326195660918583206548228264661334525314439858718497797090769604692283320245248755327275845109596735509184517109619729284732951935923618310036314893689147870447370251840937444387756326162642060042205512867272141566811654998368258377553449731097820011280851251657495081545548064488750348408954716205687948604944792990180360345216328739443030793923486263917254653924504518121474701955781489012060593091847105996084716589315007643508561652292124526503173904596146931080900030531249460093684708524323270409592787098748058094718313788967320679782165673830258196705954552409224349440847516916930670957091058065691866852807660415851521093022294900788836004146592086090873894002236184608785761215353319458941547396800229696434718876021956127742256724490175969724082380294008722925941700173339848774082317284788659194978362140360052553960469582885068921718195815894759051097054598643459035575879289926635668536048249470132974505328000305899524140353645227971618102075447220414477528051799689784344760077929743648774133146257367715073800870619967217538015171216594746437331236376976918433628542264664800986326057910280411030562529494465402606616429806475313370163639876684311226790846265601238698580209305929083264603584566275222585849034159283768872714145779894651262124520960445630725512263842448099249336673182796103388480907432623811111432880665054237555509513550875182027528981100920083199076676293519818300035618714034880086071234383119373021536137651893804736535503049757181009890370085414690967299692519694488407061718780237924353649088879121842557746445923546757259591427662020888026506726535910709562609124949140733028332451545723790813553178432306233970572805881213893553446518882377870752885074075842232602050791804554822923402635305673175699283843179139962760272766107413745352188915522822562776501716757098517250422198180990632845337330996547539616364686608575604326184482237719278582127853649098041129442808857004020427532095753351553159021257350142273890507781369345614374393551472576790110388475048896584610969094084878536931618484401087769583863397032237314796870945179515269665884937380000996576009236685976864287546315416466914991644781101888096853074414116839278435015721915763679667792255759925656214173098823092440284857301146789465527689342785644796861185969712609976558926287417800430798491419613957383265626353661787104579572143408082039747703801136994533819764275763754961279327569812689998049200905076210552225692702535469922628127787089108781367630237526771264571236014555860046881332877255159666404393809040136736691067291807329696564819924430670198341694494338166371741847101218030236550816424933250987237191118474471808112096057909087605130983700194742707375238806144343240038913959528394548410264346788758624798555439777652297371081506677130625843838437820538335797588149767998697932093860345079513116687521450588926162895809775163350735987615649183453006940391957212643343015751160968113330475544980626874705671653921738340263423865514758368172387198853347660084337153325062764089314341227866792858686010704270019904386161399714069825541702589395693153402851626101093789883229580002841118468354267829809383261007982099030775603775411504361061743983707688586733929708335512749057086351462072823805291204796606603343291180857341588418806051940351725597725853730824028696813771984393356075082506301944864786221360482587782093147513987342034980623257013264481712696340918683278121207733591845647656384078090846211399260727476700953748026819544024137250669402237371074318603468790113261581068911460857410340121574851105653202837615524729414249508215666538837421999719881913916850896748893209588559064501985104629756715616593388302576760769445041817542096575720658114430802074459521292684740124941538432191065655220354971511297793230361806692798380621687196370792413407646824477186613036735705665669711592937479589540967621953685276894213313066580774166698899164744494539498094907493407999123746058681650962660790235909307302560774926680575444952586367855866919854141894068112928517702877763471943029442678662481139044661461023143435999689997213201390405526339550549622480904534774901313274602796178611713911258242381860110092000817627347681128869930500387783959096776972642153856822421534082166750697473410463531987875743433379858139642008893976138247063346169367348298848656456073714687693046251018116029797947536826295302966146590237104135064846945054606285976208895019129423194450452067160416244565873397038791805500888394934133135926902823689596555123248510939528391336100832915636622910946142519080653491588542308941417418238866340622683070528195818635048046586759765210990209412156483045509935239992714650182494528961099460205825674546320449311006563494082492175791103678813793286910731590446074950691205860363131142146119452092103510191070545541900713007784393684838014326352809198634617016684376493711793220093537517847159698188355609005278520764999240187922253746959739945745075303190752630118599109187808059349834771443695063707875439859075761219472253118580586762373833003603890340369575103541985963697628038633338471335103483247736727585333406360478062458683917805592947683578448624935252456148700590030810512286823150081033485562107315856297194393514514350768071951429043702192437278286227438334389697363043869614170804498436960420356621375354602273037103948428810053020722232031333109903185664068278214861017930301214517451145672161821611144164516059120288960411086545575359437735706576229216689317961061526516467480998586746791095555720583724575888084368532643314086474603427630921456733541584912609776976087988155906237883427216617074820267787593392990455175768968630782050990424061226309953995335920653394470050701591809337748743887826630363687476706766823462924519932794892861802465489774926241617295840252656686715502765345135282934083746926565260261036767136634451632710622255907798206969823858913754392667186111334987416384261644308783278166588441505307910373801342858296511284328916469426930703471195622135359621813827518137664940402406136152679639260964503753710635942870894581418055486358634637203986431758466551964084418460076385255719257879673119501827305647209968154674459979064403831192238148104654904010453012912081230167892897803247027402722655065354754631372956936891229537539744669758209663184200066849059116193083533767841654187755288532651059511615175910314199176323459191601644808489384629784269880100722511306432861424077549709373846058017845224061719128354497930661275947611961062619625378381180250415519339356458071546437609616090250223946378402508541651366791060702496170102855864804882114390761191364390425384059863595595598048879478847301284829971009163876301079003419052846064738365176076831769133706194105151538406945385202834088472681681406517093778548425391387263586023875845068542587587029401242813679414981060131371779786262956402872907551947066765021631036254314054855966344815145461007012351662312203689561039337917474531500530991065778626140716102950627115150027243467994062964686548757478114431895580016246682995155194340086176412787620475067835209622947211684698464028912130964990241606121263225946467406449496045601252934264236100331102908492231630325163718838318329426871450782797105882219343524813689978324276334725055404370972724611271169793605844601207206280468325424993005693879374676418378896888915835125188475841102439926500476904962934427049393813195619888960301272249159977643975389342645219760952679239804935733623807304743123264863412629324907927515944141066894237631387362595617956197452221334077369776226995349775654026606633606623056127413554247606701919031108626423007704490973128319153920848484854867800019007523421585259474212418980883667539530594961831636820950249679298711851827474205290331176837640781228072642166765803018970293370181227585319512465636704045410551678348809654995641975575445095016497400580158939521195632009798561261175512035803934271443901475294090278190772912667735418423577028088288982555174356784667839188918293479556823332014304180037415041955561493135124411334733182400414969630990379201836757713003003933523176924553751586741552673698170306265552886178868541689549182309390634250730674523431678813499847365345791008825456713891112646858607737147474314123030191114962265604218695345178392066117043973535495157318336425717293664673772334144824918539151568931411970468278929039182331271566562148627461742493306850192118202293137081011175497670532639934111386746796794031883943055086554626069066893325674475336466749664155501430511984884304283241949971556556290402477257862002062428757155368987769168744400435745562141838815544686010938016782371368340100711035200181972564710328274566918732299683542926598019880975170688954625489828241867269145191287623590411251439343559937351137231469694802896601976959687685452920342222178525415219509813416405404469129026523373854178538080314262071420673277277238969799475344274651466120421042785918523458906405338242964445148561712652890829604056001857127971635042608685900198282368576296338300483300099169107077905437400421510991411404186585252856511321295622505232951302956796574658600658711038231486151511897423215119188279347729580864174440326354109599100808935046295029076892988216471862984588793157477147892826061404204695156658701661491817822373391049404200530550504641171668310837800777445344908230117651683857244405155735118173550615637714260288071740014099308554983917596801859929385510161416064538906027176176073582823050823912536129095083615361519743831516550422295940247771783342197487623133870163730039148652080417936997757611934301284830999023970509832066194066518459881991556878182517257595467850696216147741424156863255680511121488689178600335061541244830115295918097961268756722678596401978708503733071867853127261403631196433184122059574376184958751214418435828982929489354390390247342936787199301431911876158662099114289137137562975350511183993123066186053609825660082988902406976175033602439253210809284422634515838330302872870247431029116070436453488476221220371108446190057385978390026452407991366450584704062643267557565543803695226001987986203127230691581246270164813194191469549472502199152708084883929123084792192908697285512655826102505673179238546455561689996752905638067270880791692550669160600466403055469255429902789838618218505381546582121873941481408878243464444742656106278972155838217456558785560377595289620363971712870553150989354006602723645306407832489353735226291528682176462555444544565699104267899159268796588503904967059600053741592550586477486105932173222455892389307022715367084743014411378044775294029817900442647034736891167444627950143678966791649528135634478880765168326759218653239884870628771666395402910840662323433588677066954276796391097820099585993258895114931481800365969803454236229282571762390359417461196231869079686184866856627755827016313781373277954146081997860437916864229459497145727073149324629851107405451092964616069153064035107543335008942045976231140818509561740234400076596230850065843789878760328888280694187709013830056490487526462417335686562973685018272099975185349282701528511072260968168144385627611418220706266146319731804229326848594249941066696978491340217152767124319373131524706445944693779186043860663256529432834075396535561850280002327753983963898774801127362159130564176343613462779584848752782243167040524582275258990827545781922356227016801680237858135064877122790181267889539205358299307470997430887469865819914379624989447506600276993296128422630577221058955352967014531838016214628945030794332776619447723467054651176552141168299598926129403200777844446901496083371175102048482894169253232376166604616119704964804015579542806083640488838495600408631897790646492702562634674245946034660028866069471941734418394366085866934371097227513193048914801484187650644022344740214418874679208732585547954282493826918490509178046819596819648274790122307183325306854812219341464235365774953339045099855661231505960386699292258088342226023653460751128696233183624518026002075252696546116493868490043601894817850781928892165716444263655978960205811562015912416526720288829195818716432792722724584457670623539973030329765815694832722801552294759534478602316466391967697668890652100791183908043333548601758533610572291335066505367528214369467621389912527657947495049754538258882896467391998154356579393988605486209121589866995860121817965100721488759389748216741179019421605724225134420993387145543929883532914847809563566117245813470398980651510130396460630026480829798322423073452229688580189867935012711412944994015433681801630393467628477972694737309842729900666094074154725509862685947919560324489919310662656857132285752029668340960429811899346431858298701568462254582005664259748405734250268728677883474438901100699224122638373218198873363633842532567179337456242765486186141076493028920742286209288144629003061790235029242378463192848418051189494378158304593858399873454816692684721565053841932820094882179763736814209239097985997884842634801967890056492471161966700742139494583038644458200514443177961888478135244320897038401533297063904120834468757143210136885685995023885297772055914874058126693493783296376788050745582548018155393890955683968385130444264270251170892456148250006432283631287943548147321818701973310994275213261874229027853120179445937290875274915780338481914715038705123165231705450098923998701902481225750491625757788394090313798333818150298812678607981276837759538329241001078672321116898272805329362885180847322460584046994987052553376712244120442053960335048998111757847888224038599907268621298568938932297499276016543834236981972057173396515894874267157210832532061488933625178175464050991695047611196981669202872349727611008303539275658638320760421180652699772436005609442801974272411715184816266771241587931705077967772121630533254128792394758307306729865101130108670364788432672988591409518274575160983156588686447917103396251402038459296321457918756097816402262476066419067585692267071337690297925423621746078687009194704522166877033121047004859957675757660620468199021292039362609746439830192466224514752973901572057931141111753822888682602727200600108130290255568573864590065257727856590818293899998232615425651329770095262670352813493811603693533989289506371493622916354858102072228714070391237279951913061451120892719367224007978077860528750848951470081728758255791903715722648558393832694689067128229510216718323726012067650842757031621794322704620745065232260004875055511892048394030824489402140502912544063701464282705086123752852373895296834112028627061612602780249568194581449033396196078711911493138236572179529322458462422821711800968336201653866152641134889337163986857163548897635265249864582226303099009451882244079725373688211935004345530696051064283266310527537970871107804378555434760921628429367969637654659676376767526653476308319068716164017947936365723334943484325083473744095186648377342531877750852781882420323434031459828851188799142187209680293751899670750939822909080060270993582254236000917276105353509290567527988298443520557732925944439960072224003736171374411787246972659230879753299260811356821624391711561329686920209351211011503830722832178968022055446030255572463289999071726211212249537357084687719243523878002816827406833463304346035149119693254900450844604470930066202386455125778992664438534744629002142833994893311606241320605244987013595392795320963157816070621243446577992419639370805176027229718526520477838946904610091659782023631967810409739930169845143201526434712206683513391170816799672102269120845729642297305807118918692467597819350893659740364425408241317396257718840894822408586536032629956465976743712918674952060116102977825157800760024157777282214359376789483014847733452387167492180268510123095381066236601433022163517512931044073138355877864986989917885824796853197715040765901036218999569562575054955210551495038603201999277190029580479758417440939384091658900680035981511541230482383108430706814025727549787811667330699052112479608496714411868671306535183263551816587120956038774008444002916825668901913087921431040929106299464601260393986438211237232520191825785778916251588229675363142991182846146972108321792691593477427780867984422309744829116603114971554729922480348273951042607211399340888481640254253221466847702544034805327675610774429702615543200590730854130825176996572729356217384814011609736683953368951596431828664594714387091279772578341921468460480787011943184610485047632907961797745935995400782953354023265180858911057900758000936942833724874285272849322138900623924030908051970238265000592642163365032688651431822003492535949786354495921511851274882690024722354918342480185461220396178620069577493292004828689736783772522314536195675864285145426725168637834392692034865875189855449814282200468783311398580719980417173196171618646902066552268921007755100395763937873507584193363375864323826419955378252488100158627308717650607707117240077626263449219728165395086063936557695415852927965089979909536828699558007597655124635605500370588028165272280273472939008595813308508314225963808103481440526909115752672784061945480553199843052288178038336105644791690347186748041202368223088316052263858579999842650539547651101688212385504445222741846552707138640830276624429236548670962895987491366499108205479158323819354827080098876124733305497864997273656829803862531738648927873421776439373842788053703256384673462674824070374245329846724150070248758035217889755622019715538554840851724634953714626129993603272860871902014655099110339772610650210715386538729349695541067208621015477703532610819906334047991250864914575181007063213151487498771407747116493105891474020361601510602644152822379824880561739472951385321647058220406646932152175964574011453652567026792534217451605772885166791463151751922600209045931765354120613381586227176211289334334199843771769337030178177459449346285285190434296820305952424652559011925311900847299197340510326620453992942994417908039209160236835000965439630021984484587038725998830279428298066876161072195463402776114305913364121325942371893475649733557138173115551987797880541892681163706852685707070290999881570875285337520233899444779015634779481829389362840394393763140336414543018041690144475193729964284059778817618873637142672287168765875629746676314566080127061743942672531790725269094554252439701127589670931133802548424246486166911029343202163352859353299075498341023948109471875053723793191424310073148874832486252061615597601129188498657200590801030815866112813182458352672627047319959843766887918071784164615169037919102594516806759573550459361783746999704977591737351373596860239492766823576828960663396382802279497698590134692196788176130038133768720717021444284069256596851303923560409812109631883582031687473955838803718242577318748435553394029539380191864225225391468850382592216033072905683520358661590036558673774067545057643265867241977255183734059325584697534907320521984065328665392273352312711184266639338077751003690563737439179619162951952066992987297841505758767138488383567500183008472668501510321043486270289795733532593831488585433330075935865624381714855521864895740422804215602752618336251980891952890822295354212239781058034061604776103576926622930213550123312426185216613151645450895388410535067389282543881720523337539208216908521546211157094814466890646051468652021313103624238272966968931100538624211438861418528700130005147887881148351785174834206211745154173943588453267506027477159872098725565755334739572685924691776482356161553847106519861055129061003884187373168487296191962818486597571362139885230815116894175122919119771042385537883388540906000236418602743573063681051512233143853925471752940254467563488766393654002551035725912035239636270673326333402850451791193396168045627323523556021710332137638852137009161402559239218945917269917924353449501805170334875704419550152708327970483096756829685675086772571515364654976619127524975488835840024058612321759325236218424002947280671047019355914176048967809531551184315581002148889830964077947672166775085348790259274838153842502612240639150296875473759381743411564028701379700246641740653855135922224089442910968105691705586946149102177065978442871402355644241904535619836655624533822544454037355620310670055188078633855665446217867571112232815954964276407190681081473558251763187783020267868831928040655169521574836787473044803915740127032389411027793302301763643229556669780184271090640807595676437417739184057014246986113333576123997373256350151815210272644384852952604427052534509894264677958572666741894050138280357733735948331271556202791313097501332582360296085646089671299315375865413423964765799530775433874028833126539115608317227658950662455712119816220615313633184201470604782892396109463039002296529917202735924616426554037713576237708549118605165948086791159795276729723717269878237044240730515950431129499042409039181678716375861683272014720453350785458998199387511901264893965640560580983459630869576670312711487956392167289445375027019173758270426141248968469265863337347322909030027278269241816827230900365667423270821396974636417380940880831518315891372269816975310194399804846246535072614009035644806707892887272152962344722874372210333627544289301580260097813939222039606823762665349210642858047625723060954752534622991642443530341197462975663990966312518876521869475891893203258175402826431022116049031679855009878445567014904019005931665491318527824170655469416392597574289656774564485919354568268756237456909675516097412150344306968080824774027622730618442203764993624134815637471226623257349804295291142853949326545444972893701514363813059002098117318624374772780832512654040330430862925574909224851279543079922980531034261399513168938178115623526086982228287368215543199048660028245351293523791373417216638271235462927058514483362483981254742442906880347763239681971014046506079933172402057921959897541732640840224390136441509342226468714570188652289452278996426338472091818066564165866288496532404543554783876596404414734799556348969898537024509603956465736703093476790094175608136033040162368606916620726508062700207228913164755221228635952261069016149247706055274810349478027110796591913985291937927131685197453057177786080266014083565802341970860679035175481026670271165644250345939369348110000914978508228021995438398038625504469158011614796484480045900038496126732059709415560157617559670733998409473334086629310803758336934006620389227559522728924165250358858312316077170831491149136117284501183049669728489183838542780847156302830284570621744186450182979291612249124516544119901036367973071849779081334359191006767916222632255536014988432348885595540403661436571290794853913201958323110364176133529804464714184024086672939800490130692931678937127364422918342459820029079456499440080641907120319412004881850383538242173055018423729108753673348717132096978511676642706633089757566318369617858519572492609819920289332578570782496776246648672804970894463073215308252157776285221672339964707536693827010235391775142034502565033505400299372938033423493084024843462311489265725490884366296810047947932601035328511939497350035041966136940950760693020975743345367942676617471721615044450358236260835557471743487350562964144897072355014218472994192127047016113023850437420595670455090574583700074498909665841211333828436487411281385555796934579926367186098032276477410018212612168389514841464556756057721164367164473090983939561802551262248737992146492742431246052139992627915311523602878911747620654990823755276394265496401617584493696398550122299382698835277172837409372083540003494590266767192347148485599526515067228028406248049174980190107608601517318192436419395090896961480794108312934127143720524828909755313406913946403613533406609309015690636102763328896525895275485596606630979502447998727765478928042431971274965201279829214693137319913351321686364350373400561308313587708044623085130054826202671744463286571698700071010127177262647184271620303840723113959397358734583795531635061415020486788612816845561175857794903760608901882699428705181974734392951601919914125588602055103300274120290163684175695351014111819178524785636691388879353499803070356830044268518500563141784713661680310813456074508929934735570325727505569140744437294803784842419073476828345284885794999464193363749312698271753119208028655788633363753486831402348628292916516339556547418096454279207307618098465281950328638238557241226249823619848261764783706569462290196321408367744548878736945519780089223590937783654970348229759355011188575672592882352221935082030670054624886716578862674151836170650111733347885243430637746807569014391081093404108897736446092504754609425981280953505090084433686709069831978795369850336062449877389314978136188924546328457532930180007492750095763177476399245550695527516219248786413075060211270150574178806503215043866726678217106166898485496316539967036659167830611627501584878185429480951127042673446653936705379151495361393592891120529957433347163014739571160082771930667877209285088108646905402133408098013100975031385191573891611900478197274350209091592153140797601951600007004488710489289318037220295656101468713592388828595723155225749769513464978532776883181997913536007667014450955625061871872467777863198640537957378429852189941288138550328203421661373355312880801975878545005685299968706271708277892659147556641022309487318233304359313417596980977678290065065087825853525515299836269387453218924835440196247622277970120613238788986944002073999414040140676377986547945774585519221220594049545515662287860730686305374784099700393395120265934679633661382266081271017512579910556165580312251166166789556807824369241036693609998780890691550559351207627145235328852540156489435013859868697295125132080288867526232018872963181002735422331497047225061563691125085821607007271839222756429911764897006389396165720390727456255119060889997121724953689628488490202222364657688794073263502653888109205998479513517179986778163371124225003272700071346039500239819613725890179960854767715217196711710578495066144278235098409630875461109977872752563037768175091869743662337793898324368008848926582905305569872995219050908766916494158035909301191411956735038617295423121025801116422307266558927013682500148513132924574214218081822980296362380158646970692683153321360636608265613685294880828479011851126676226625299810142127034490810881801673665710232105408197633107838344751777336509343782419539194631775768581588559457038117511823752256519733063605107134660761238095549480890836711112357838861637641028459615744027365116636480527189972303258145858717913504352078148548015813516009320578219319155862686761862832166615211476247440779853218591998307197199455048871073472584222307210919798764182150787447540825590563920153838719962216593191534943405567622781936273932576383140445544894803314862578957865733124022873890232599746100211217234616028567206796913763737917662577931322525921727160075235817917164345457669821553951247742819838996758648046311021935131845560100062594520384404479640876054388839653927838044835967427765338060066377103998941699411869411360839062490039785005612126393336539489012165488232696607186183180006808654895619582200621224131774968489768209032590685401663564534181471103714616329421793694025975940184574667631195451018922874121583503466330613478803938353896605265312344067110045009149216990963204650976822410831093448398235334274300331362940535613058313723836939195376228271262513720274600151276995286741991166234092102914998211786621009276235209356683281361841859363561701534743409625399549033880808086482928374590808402892626592072810938387135450749455355574263087861359564417604352338245537132886281654517789183525060649031482362509243766529788560637805529707082100325275234168766394428809371254660075801674769435021357637656512104558155428554014456243994587768441527316170658615914200247680510256319527040704396152789150453251214650685221399576952547682742886845373275714848800892649009035303491073678736480729039353565030650527365464630920994130247545280360687529290336204251377146686561516881664750098731083771320112187683493780115372243718383192461866684397696005784090735532675717423156872767929658082477754584368312493605927017964558255428424125602283539381917460387544497425700954544746901996617647381117533404122994488877867890718433235512306728276368175164352853424866064232427182810797777652274216968001346326657671777070707149718278189322289429049462413946971064273653070123032435992623793277749648576977732261633771815702231147514037508569578898606350750470550304130084991187519140634894446283465804615864005308307583138619239730742195244845686364885304226765766536221787233340328589170288360934884478612434384350563418063111529466883270738675005029160553932954159558524998215578258982093570901342295110546930312003542534341910641568217130540498676961999268474309145504820922565300587971067000199407323048635489617715665886846271359623757466921095130246528452743005904580325585814387914000101571487354134017586178953094204883727822504499716440139921944061312643070699323986261205264513644801790805378194319312935002855688769195341995367357279165217828052331337359766893801799393278555371983360067032328977368117290855449702479477573575046485667080438183120984672779244301165845698895577083958956506084828920051713773010898616538912989425639858945522953668787293099137232690281648688427134987688376220040142581365118317534965303879214260680386285910553480059405507222915086187544004490826710271375506212342228031738778591618427557812951315514080481503276706882324137690372790105695790530902651021749070701254726723571749029581201372996488553662491086714955573346639075145264082732660512254456885179841285860810999289196413605125796444667436935077319628105194609135580207833501144483724956019624782885348281461608710707322576070524112572425584213960680561145676331214123511668135818060831333676761885604529175899976026713826812411982346290007559719504004552208934746045308658485695691840362982586411860482991106285199161898047938944372642832602670918368562491366579131435353058637860892856070880447949217793167585093905493683484967558815803606717855538279601258148725655277044261437409656880709617124810020240150832571724771986605046153743771141614592886975368236261958177887604035406651855651896763597688365780829721445877758508123781460034065695806228294177443571706712619488640212659345339479013034335387033239422879658989224825511842074144876813361040106826914128056162183480082446339767159057406367776024687349561989839020996595454827361253650604565970809419568681768714213975949754807240567402070543556161959881598043618059812569118469801450937919801211858939620320039512336427859173572113364211886597836242125568226267515615005867858734470066323678981215181720001633547041095597649561326373412060178978724743039308720291632981245966504118138200047867992401434601026531188312229822898231090843611426089834283210977452926926098493203764903888385992381406678990292221548022413520381421508765845265809194988297082445287429204017933309404168813506853983421680514249584587010529821330495558587032219649018798184566822574658214057185959761528855405074323726584283046628759999617178812350731122617603222333694623733369447904453627598183958263802039202009645589248066397869324047728008421031611128887983595251974765770905548350287330635254534140669066686817270766540675328079992619652413933174009118655703000808920348935711879683009114051811352956722819433158721326353824142459405836023750919317805384960247888121710187468013530343187464988968977185205202875567698927161854685588936731129538801598020827643821889083350760585234808378826695489119063669581016966428352805539430166539432890166614099560950007439745999870879151466216615696911315438129563630850879825261825430394289438231322007247352737470716550729835733543513415664070868529214620603466503142783055133403081921445042213143625091132058585620995223404339571566118568013589071681015876391641297708534102497174034345771208512162422890058142316902672246415468562165438848874491384765393253642231315920980018979116006205005715359837318940877484118388717916885164483933761006449115585249954212985646626541302212619674632945872098452593860325689552298996179354106457142146982373259584555001114031772645507408530007462628895264120602709042219964119491878516556717571984011020859813880119211967358930256140357215357476392282308582741789885233407163695759078824561256059713950341310731219994515993311447345902891892020036104999707131470735569509303228515270785623066580843415719418135055612969340145721332767847859567349483854939954727718191453630375976991180389870156524842747627125391442457755242055842168626858437347421168815314713233734280000512040424113037347001040422712882120578526496052616762752247880563748029319331780765531945854011086952590892601824705069070718636571358727368781467262154447606971351703058522397178550971693756621789366738490892640694070009961456886173539152368133607670217178875650720558561768671674266909579445889721087942844214085149963219349350146565241804949409115073363955185502732618079083498116066823710824901235913493397243921941805966143523213329638970860081988324332810212328720871247490210458015684482347214566498169835133674048444825172618791965075317605028738161936659353369639724500585301583757119784129629954398880603198561468338310084101148292038922771980883164946564679210379613018682354887791680718318137668491987955888491666782577753964077467384442502295844576322570498166012616968168903996878040844152354617368950511806844116866070287021217012506389588299935502625774030711076492149895353953785307486853694307177283456057690853049217252481894896788732685409709111604362885054821504236385750835557731613188591940605337685884309055077735940002278276321548039463425832976056518464722102987215963498749874862321620695405217849287348303683801168011937274162216013988405950466198868460039578959521041287443567012604900852947254878133862675907282551801343600752146453239755497530989942486438662946873301988512894960187802724238278279477746737415983490080283151539896834179299797585889409087456693337696546549158675888988697393900241159562206110795345178893120704609047180670947107813604103376138152922685042434083430609412157422984152737530685344783395004900863067730322801635353014631235245825811416586196808905045456607252238047020261639956540417121910433483259287613741016998688474620778812581769794834603662170789006816839406793939739288335694680848545323785733117811522735777534873790510700752584826537694510878538953480566316511710213081970930801074183287192130481545181555651575705755637320367979174369639277370452580413676061249118951145451833520889936047687517051454469909514156201306859731684626241050266570958072495448984487254402091391146824798413151478240282055744182784891129169805004731824599781261892344064581885936842129238188271724724805360666948609117423412263323231548467317770235747225012690846772904161435949061706675822719177680518726915260578094122358043989160336591893835362091648493443974400715017341051648578958434864028712410854883391612134144769527529020687726907133405168988902945347730817962805276966131072321940911180643240293457734471140507957028797609762903343771735987169103144751888337958540185999936168220552090352490985669316923521165035927058447057845937288833977027880780671171419665654889516773422093080126412484178824493278766376305022818292966399475900681794587267612172460265662810723060547432504792707000447670177191583822165882255243552742357223105757119150172952904311590207946048033693631277374680556482853179653950937784566924592295778250505790600256861988628936914561873727082140323552413686797981972672244037118121242840320980297952417099194833331064428849842622617619442266200568809117569838352436566232743742597246383402869496165131448654358500450774401626988330708302878567751509966368078949267413218343288602146885338266744421453373481984928740909703907742282884622708049349865129444314306196159944620847251543961729840963912373025460063018340412423387814048706065785314365740825986070945465615364217025319120276832398183493849941802061238457196461531300220864652329915633594472768361258652449270731213815653567778106320489526849772011410394511059732139791909627434262985583723046523707381640975001721493560049383407175437516491562147898823781309605652467324289211637854614051982401852637861503033496230654150238729240450577747833060517332032117073699852049849409190530135875879458863823814132503838973722926480405309006670087210667941400701001237691601910706278361145032801770671661994722890983981354575026096133619330580833622258075039411107579324370503828564594958048451171022943921731639752012165609665080456793715057609492553310120434655214436461251750650883615283949275674105283819451556284811510483932518419104974816959525988304826668728717672081369445589446485963553855923518874812088514595984130095784768442272173055925376970595170386574820433984767489140059780674805586146666709929040483140368166051038703377298733786078477230932023150263408685143528984870404220462106146904410864262567336926832128936070305816273631453890112583221037951369667566377692705026007062944508382240663842774770653110767528823162728776783928619035305093277951686815844196056062824202920085855118395441223565137896159606122170385174934780832375584724705197241625675090136487313302524473712703979489108434133241485909388975554705510750140541706013836305797361855584634369767362347659263455658235138911812791292227672059486222474076942958373085481253224825215067091030469147021913801901936305558503894276971730153538492607819739045442665380354199728339195540433020666669206751280206042493162859259330086825160069576898039714298885665785287546085491552439736731891800010657771999643504929789271087941355391230861082116839398704938148086813716882476725489514804156895430565926573415981250550668447596132663562268330606960409937616392311030877942319351406438196198188603738272571365490761693746145762614146238143028153507926704929917533190011029506662295216925850834249348702734844254088565553488699813071530120550360799613318250389176157404440115610493176467887768347337895216795750833471921052135113506432993464527560511460513831846678118231147133215764085021212768536172620834434703349605376838951122204668310328815798671674620291790454166899907682142983068468676983565031810090582903334085255364810440324586921366928374381253361715406910459706494748858732640377959875352806972800945932330692984135346818314674931071885703667288740744591371038600313740474732162841456184348188973579871497685139821654205539991711430510369655059527635293916287785562808941294081264297678808688675393036916544935708918758652666080473152659442584480181648496628664130348283811843085127621999164008483531732159801412372051110535493870286119948416880599552626167520541537454984729460761605581092283688798861915495683378241018008748538990560431992784236188409608406757185149490519774292943462225536058393346976174623662734643989422893369690420943595597932351544102705206432292094815400705770622749744206989999344092419812347205221957855078014577904868267736861227120033342105617664104041510335428788955673693031250772180836913951646330865580350531430739604249483934202869188536672058176498733811625937956270744492408781027028010591493592800021543193718348808040475928392960721466455695708718449285245347526936245473039400218802237246616901736347961972738173734726485373944088275449892534967184167782754323521855633152991893178805116351610247192686453041556105290955365625628321083957839742177413357724000777032712751070597378864797611911174024188576520974865495458313023813871198461933153923765584917606386789906163942445476818700936686785752394627563475995762662478535826327495098074433157757077736778720727010000990411045507680618817012203387982395691577006968332638237629168140732325724248643050570541911093408743724532151129161361594467727990606910313976763827486853184421966389289264568072926573773888387705729109534737105519721917528612463715446466261912380184056841247964710617193783620470907374523221760713334685773582432798725448362886539498219897279549357386600129882712200709489435781351351387473134404335789757779379880515721847393988315758202814568191097052263243466699428635626067364928255419322586943403981738875537983492583745776955922049609740002333119240601985569889658836249251094168862244901997827021800892554941506916948810729525856915718392454668127241016962431635944560605522745165512583385107417760297145949802677621015203264966342193652329988870857471033820025198202038284451515328134971971006369180224797462072444167513739281337432982725712375812518882887514317443896831193258662993068846765644709379739183891081960884787376335885206227927749308342146735632847245930724909271264231399704749263443961675082534953284320380646799104158630006975814045235460031055923485621708723990481785044544696441829230902528813678459461099884042744077939611285695309237529201256803965294262096430097309154399058226850948819119585607362269080365898927657439582690962909578204192249159423813684487501142994233517586058359497208965888373902073502974953446260925299338668393758368230776726377630331423606124453172923838723288236481717551052154143167704409272770107658028732044885233496682861024008458037603424787682980738498305064971366086951443420759865560527444646920725928888908472765627243809517438439094263396432093081575046983867827156443815482730345898672131789794527026056994817621078555511467972077210155101434585212773028263711555974610910551730553979342940751023535994160567142123525823484317331338588775559639846374620089612494572440973979570182735875706039671015392162190214692548055769834438672235190073506969383785716722867992695664060645826893736440546623909277457993633275627770973365524570813523762768537530173512195619163297948525165291356372623588242008660261650360000015008175068895566511494111690161786980349243644231574857605171279803780684655599333278955152028570535021425543929130329782273208228079633157135220923024213924092055546410827137142029234946127918459962118184402120431849984625733904056568326332720587044857472887696419229410566894045700598142937543302620887123813375668002600645698831638660578041658456466778142997397251997270110853923787371860139551431295113112096064436226670252356571256566316104185830321200425475521551783605895175655691578275724962201750566797087277001267499611166533676921366096428536449533843270191739565986564587504381538923882416943778623911996554643609862485594557734860252242252670958069144004509509729187892888570881068790225951921887676260476119318127049149059286684938765033337057248682771593326692981480218694282718245116881056932626380314283638117166573428384547474974647445177155742931151489820387448940690284098659936263537434693370223129898899883396287032886021750956937119534288535086918325027280287786469603649906123893781797067297104739173713508047080426179551222555645683214771475717656189860271425940666493863299867946853435775444891099967988836104870491596636794736313194741232441278501261500325382453041900572037983807772750913724164439499259529998214767259657722906781185205411782523865517999673015578012272276862892935318731425319234455218747596177427712758474361035592308598934028087623384111565426507928064948852326770368904120619231618558883068177299985730720552694469638628738523094577712409973315566792542969898501417833275144990424383048696209596595690804654945007614061037586590648620405880554099810294941943241618813849384535810491263221139589850422159646608375013940492098671252759023793886235179452275913197326900304068448388637738798030910627975539183063797851439916794393305119721500290458830406436934628768971073551919019806955213912412021259025466772744729310020739023304736916647430396912326253064657526039921443324100646642888234007527561804092512371621376443287074871855419580735921561777010191531512535434426602250303390801473378481872964881745737371181375273471519143945908361856154857816610594133226488629227495938851818109281851092732645551511356525777449137051593160342040817793757743134386991227371749364596169801671755266764581019667387296234766877926461493843142830171444007422352364724571577812500572089339349473079922394342247706408320887956888767229973579465534637979318699413238634772609336418684989295240328124295780836494665008491204790465585216904129256525893901926372040742541733950845458525989077201466427505156284066697106056430458489468409629039375017825853218468898150623576017908152624072446581248989711385090193168133933404439563236022844294902637723528782705523572308706072072886600752889923662822728535002108017921956540795802381909611370362552013125397289864638834061532229456300769827242210717709589882165080838670898378677285113626164413307966422685658328532470631907769020878098498443825021129216196430587247585864812854210942368491479924152928087256226474081563514452616689083068454550670182683458892271311702185444033111632613697097610139198760370111498385472871525021829469318482848944521634258992890155746334293635773291983291627593709363378353005361228883401597334430142413208211720403599665986902447162449658117357086098435773856703070703465435270476927297775877019142697038163390071305380741708581687241967284625912136057867048006310233867190530985741076843970545911275443229929281244931308130914623962973883409049803111579976946799179532259983916328084913611072393405536121586509407321856517064170469780479175439791170600851041135240043709468924286529268306287104004106462361451204485041608930656735237256071206845738174229337244249626307595552978117106268529989109968357141478737343589965792794499399911065485163034414844359351171878529420145115766726122053400809789934212273397075296792226614089743777289147531812835887649870436005454350995266714704844848863783587782746253993093957676162903677164861306089539253179297872040452042147881481708661460883927052705549925407797961819826781643502129648018226857952105149073347379014769867361066134035535092047774490214895736322800472049921143374470376857525798223911972649655707047803359744734080236367299211482066414635382700020178122114898874843630904662451120503770181721096757986573210674958064899186960414895835900103970210700853139095385681642751381414047739723253407769179116435222733341586173049720355202090720375389003585066208320366594898507467952333023714451518581472875402595033545526940581026171065387724870351251133359939410551644172029451690670519216201405927539861944119863628834545004103186415096587508440258030642957305290276026828920244954453563692273367108486355695454868465906603523098885498164524261530001868886425255547998990773194551094212076856258747063897096483166604314821210758748721618467122280572551413588002502366484574880365908301635376292103139722060324671528349325684731891587212662985448696862279736983650089302197260788940583833684287687735185870562648134483626180475559531344311010175761503851200526425624504453236318039013250002292540318808226467394113554830904642412977563214205687022293641389674671093191375439890908151212094217675721999931546066408872888024956224562390671643740333654032985239716376662348336246994900912208653891461297639082072808710455870981679848000402295756590712855592354799963563411992774920195273316496516302015505764272453275612655859092136733033793285229942495175966519357726628270190674987998089907097436061440558971829256021988044005863070801671834789459560056379546989235669987873779955372733761156424322846246857232316241563962021376815773739509256326674349862452274471965247580894331376377600418512984868931929108967621542030705292078764189403137111299953545435219763811185379847238368281054736706556222491116183106090415751004379116426663160465716162700909844900004324372719022171882328279624540063106687504009975450670750841151404940401938787904014755317658145520325937457630034137083867894872106625802987304736904602012756349142841452694396060518872336602153838219626841197610871738480949850740231118078602537324499278383864670116603085874117653696454529010087940339405427234454687000507961727113213517783511010354276159942463678117128769819164616316055208949833634727407870937804560851799984478926983742978302871393826616069762588645446692149937943527746845967655217798531423467600731870571748235070741944880794016580356893692996046952414205380642808331028799155890052509918949374786575477587994464233378153950367059927428322108857678600258732519060628600418753425207535029623530207595467437674531470679940327531373174555319625826677730452180856368797045930089513279046899498689778044242970458409811121642066723161461730422190697735812929502061259838134652940223036463083856819992940452044143782176187520737435022316617443838969908799095566875324157130934182357430162565338280041684425235701743939491762214535399637470208984485649257523220206142458720038985152375039793089029703794579108004754371005538271949539746820242427085883999560781838933539973178606315133931615277892188436178802135493866041292026688411290557756391802247006957376621107635117915441145986522006614670041393191985640560728049128001276727749495500146569275677593714567657745046770336470357961138432679507437115921324478262118645707191616109395939985559724528889184784950401323817827575062819985979369352960529121677936692540300008564395608045741611165857135140290795345934041158591215640217935958442708552037671516965158796234815357105304929030558133504893451954033692865524738368970133873280157233108550180806712218789189607793338275451847529219166786043877702515803140535736013830939984898233487922700683394739684550410117886724765935134882562653196209598714416022587338141617177677123032011893557095875819037164781785235522872426887392350049396073940147971675337271461486719495276383311872796708943411209643549522528373964636967737452539207040103002477981923448421239836762838910970553541041064647212337747544578087470634251999627599270079120064065414358859485939676715447357976221828871586495779209920391973478750873771683473584471267977830931013136066921795275692903706873221652684819685438739182395771308163194630865114263672836968116585970738030915076369751181835998232630795442547692294808398286196834641228265240580980069384401912661850088558873875000118341585310119233143090430177573749895783219455620432137495224283434372648384918389962732706509826536593547782594063377519231913674985740277364705428620709508577447888703222476895626960726867133550805242595357583659637872978014333515187339968852660084496788617706705590359019837183940566742443966877749373911715772102698782555032969608901103663225912932501250263059951064373926499657728780637250448722521867464481806910145864293365058211785604686998939679823862083581795667570612400782670484244964860848689764464520286425899819866187193250325366862097838910062423508739486826032520017283564850232614767535569132867698346521112086713411422368857227536180600658086183053416406379447467596949010422629055430451078155015901542203928098875410698758648871796616841860121676243280530333567075954463651656250244944623077179719466848870648379461149734985934263861650642492311003466457702621132603686488294079255122851500061255967107330529992501473764184941297784508218845581358428544724567537285317241972341871691043694587062099475873112010364350031943137564489859396216214438044194193801958113112680464628590018819738574711547553629440648981342564054093615958689646840336559010483907631483859881100834386827265685671336451768382820814456229703499754731905000969164054137040312498876612255920286130106515162897353268757109815657959069328079819584435106873606236871593763393447847679300332470038713238785739185015105016685546179865519118125492812084323021309572987628320043177815778733792672316148267241567230422253559342902515055540976547291421967607736347911660086527142208060043764980608807646417240380585513648316636770100393161619141461827642674997499616034290213851427452536489871606676189917816617502172540415325225394404961564056529523944798814956393054305435669749706124688789276463973236696603657314635313261063423643431410942989483211758238567724781837936728129136615662971389876848802705830580194015046161275779272195097060729835429900296947439756032203383704049011465633538886888088502217839261790246640626301099277930946180031654209925161656056440202465999439772928009850869823513765868000263422643540253986399615094960576011879683951020642702208080230029930866507587817210798204276120942563464762597587803105459164797384880698563272475211651836770114672049199622267613756086743976631624653816323100438881510204662578058198417071544556975543692394333444455335034603906257731456554550534816071021532017196358190481294740876737944847417600398804474240162563168923470736774581068284736634777580696983546672182649056490146064762141409789081011330751171404517464665970119111754744214300375952773838955376360549356423661292355735934582663252044877980377122767067640465572371673198232291577001124384002705226076164149011376684938326968028745107497952782612945347121026074121057215146266457887122153166854840769302231936004141660035837419562559211289126618304488617986930994483150592063666405063445260128455441911371624496921703544180414742890857539711880943478199060468724250069995927959767187280343752755157559626957998973955477953101714448766639795003850353353025594569557134820623645191932818403008876903676562322581902773372209915087905982772965279783384318437438223786874913534383296138227278696007741575149396529830323585380172606766909774114503001517534406609034488772313206410201732331084275248468137371911071637905223436458111318868008601358434825347385694043306709689010299454899359964780840282588474521179113249365553876625682053091656874736298461108241896824431775772861318885520170554619849831794436699301933475872951620713104769056627601224197893017713103450073010275718609952573252677853423509303258269464949997695346919665213066145694206040411101450438959797691698411221788725133512528838091874108537101328283935742880378729911469752322997705406747563808828847829830431737623331756354965605063744964873320228097358697648311111175775228936089133534838210202609183625877015703549869843291233750925014539707662966920890273172826849626169042883900184888431120340185623214857104069965653737404936148332913096678970589386713509647502370603715062870748017054696151197591055114403901143751757682419482822346877310263640319248725799218186358564977987910710844726039404877141372444203574949339049265925193224356617652720343844738053391655882155841339405342404398753991636419164984733067092604053277929693580278968170807755264971400924167460046134924376832349330566689532059074325619127735929114878896025393967145309433039312210784748625409597544323325315245262165275482140215636425569250514771869829016153159314978804548310270818139812026358295403729666586027218915396333046877900184791491377167575376623604457356216399787725756668042735101943491546956145301232852373182849056756645916105453685654200765808194412931590524474699258369911115609242247773741200113357151868691867650821454319435487465445145808765245356021397510912030933711998058297122202172237154061665513408513935308808396394119947288028423944584061429950208411572013808658233671698868633006862051724183380630129789997680159012669509697132266092432995354344001290136091459827716272392706941576569652631686228880481926324333230263144813177994282036334666209191413823319863904232797453602898847803173738744542933756391116772975949808401980227167643911741917547688179987900486759053997317548861768730811239632961133961938149683622719573850906017262391608753538144402333309016581955299550065218138730070823008640143322653265750752277448196051409985018063200580195012300795513260473232835188856669337384029207988457270568574539658512523957562209821147499934234621078249311581642290167120035810391261695031595442844230490074504108236860530880888830157540993713395644877022876484888671803345180554876463425594405960836383343805444103368817699402055249459231607840073001681202806786469995675918212626416305006550173618318071958440627315683594853940356524670916400830247175406378748247141589403540566480729754728383403031590630352807561323501642987406558616779872488386365220413102798153162788275493892517985506313706912241366602893902354561462049272419707459985342949696366731631238069137080777257278091233981994555696011351601739209454522056640430329166728334739911249311085744372281790564743395511661203501543895298387629563298323991047000399056434435129708301936218082895929303863385556692266666752149559584152859161049336061425027336789201603913169968370075387274960103603021891152973053090564749760187920499102078149866105513591545685449337686235914830839034950562511445154026576255535559214599197218310542275161386999010576361058751207041220948498035666933245502843924269040480278168336469476767836695381555830209507130992726121419606857187615390061064758143051935052057719261827866669764776126558222080291591312005906717643590363320757426046936280863338388687795530784966020082754093021207607161818461158990347390909462387514955513686991195274971511589679118929383524359827447085877393751509474167125623933866877636226854970409744829147054036512689806660444304412587209853983892274992953567520061654356536751307998300195832120454377149255331560458763183515484224441842384577112705224161418917112573802442054708512465675923186674018843315570981400289808815167995825696535375024813968745841060638146109599760972347020121056917465217438067942177893241233138916054333924680403180938712357114185278837035253057404672673249964136710738156161610245557562166534536702766316178975588714960790853453896709346632432788368805785979830716416456289702947366425275455346567898484428813475814572737137349495835354468578715028564251043463964064544722038144907447794074404248789782519173550037349051056731176287126655014065244634299773987805089661644160770315204656518209110367392959134927345331350148659439257561633569362051315183104333989229700843765210226784163275220460703671165230999201919928617881907019830167430818864535797829759231432889590179926984519807468159567166843603730673617831459398675002663691875920894374071507257062289205276154273507397618443915959665859951740971685413793028224823180115148944665073280971146882691419986956509762085064210475821320441827131442058230486043410869078492231904061952097637089336193355462455950133399168241268929902189829344271749192561544951384967980911721302860208164597795073420696666315208770570237957461549168594340546259140702323431963258727313350674326358353075447701847276075904056861101932388935711872972011088185093981585611358762503406035112182515492144093659572813764189056010708038150990395608944922109881283186983715930520131721048734491672983568562177318402082090280361102292804006144617350096715651068909823112235789124580698172692405960112032084337344068625878587928954424014477100528492381272740487855912815492356555470020062282278539192723444033855756520567516825757738439646062324951408080701420776907832426952082042711846728502491258775663839384426779338863662408458622464196056006069753798021506924156563497972200556197323500426511544735904934723352835130758443071315237257666285640414205896346883666445191753858949133910132405514918236328400583024659254024369733016864150658173024679539769167252290469753762299953464995642582038938711004564708955719839952872602946905801596804880103519169774693751755883995621553260916819789674486187673816849224576436844711589922513468315003830606033313672748312371178883846412017075057072876006060958738640510455417343160695369905767265423007463434779047464498553188595724308749591504575546516744707683033894060826131924606106062927011905313962554852874329702514030457238448307859619912824751117013786260389866964177180877167871748411875747182377931064545863935783470231693819834660696647467804126065094577682752391775014418713835864852491045646111550856659915848947730418187077596451874389251844095803375265003131062306836718214186912516219832206968937138411293343290737820492875559782189037172182375324210196850105092107495285664317131562744249983618012293721597290554843276531070032310795940347350080001825167483660022312350316670030814847594698755086292091669881639790881440995321156485966736852539022568294034298809857665421700827740026819256225787903441955432368825871794817189858216727372146435615609855789146342704301943115658410088028477063489123614898871256790537424769413942886260916957861311428566558472416382554960205878202538736208778611828893285997824738446731298267590227745501427155199676054576615297221198299295499412610884546705052803817604920947546678677632066473299129385647568094579210466013077789602987213931772106526652711667693341116279646227604127592268859903229662054687682286495639089658304839065486298101724818187265637623055794167770017430307409267402223458559406524462551130639525915072636972182575261175208134822606538913105829550426210297619596976115987493296949208474708552041612957716802219951239274487905360252653828875556290819717526457765258524728045825060807913413192977626268121349418581804474148090927717927638182568083894560013942200851621864873233891284673216038598132177306561922060559481247642560441064982545814077324654369452421743595043175092647408506935244030053614365562647077554766692393354724532586767401343061080907666836592023248916699911548492169065562001556089194705432716052153811190965261797225488795083539172950184480299085774246233980584183583640854972075059374662934091216845223638540721733783110333981116937613342326593022603687664287980994630157613397536700949572068945586340492320028077955996554270678502658444172217658024811392386329408353049038761103622544700130592273608467486982103648927362139771357686228636254317699997488604669420609744751254470556515303305192822459664812590067114982540405062322992932408785548995340917169211882050039747783901738790895797319731933823194544433405037850694671074820487532827528354881772671508374443272304716554891078754020702645666291694834633887245455407689037032277304502020227848517192657480815398950451917812127781221208718262345192323031967782695276796790841812433709463677722538629069885994457069023908377095390334291299456504782739651427836361328624625337967367477315117644179599205715577780271588026497591398836866827892912045623793314875960899447380313427218305211773192504967360712507707551957012587017390750173111273862421340443281655283224870404742399475208208781870608735879584136193287639210211966906012203776050538025640245267036148733165290709219864903970272371778628137193117873659698087732896472203073299501555696424419186731571187614303075963381270770186537426063651547709806894941459669146589810164084243907775830566241901174422727888031336589266463262729442493433627930668624431033416666053056615888730717171156415965506239341476598255684814253400292939547776172313742182784736620241352222153544811103551680918664350255604994280822905783959778344110562563332755512655286168736833315327031404613594664247873447157004434994427054781149008418389254008331697879670457307129659852234003777517795819520131493480235194757284097125525815824397813996965498365453388270245037462400249439641049471323799919719895948164250217222408130300452510548304785118186987335079206327904897759503520818144939781806556467416504634587895629824870447367852273019542193081103193350935880968496691087892456694455201517268835976212008890110259455104543547407700300961884812099912070878319639465228646851908508089530639323931090874147979917127752842788718260985678221198781618686871077965755314732769490142785363523761323926774922313904339313103922048501801463272280872188808916130356765303327874967313331751340864747089521598786032195143980359022205332648124127170069648132273203283185637816152815042543347739715659613490586638035146970582389088580298152857099626810261484200519578793593177250830225343454374672875738669844653647294452578607251860322235644978974306293555237909973191122346035611793892822491713343936291046329223548284297609782543440016398694655315083411992716919233990446274968699704720362002473143273796272713749939354384067210141802888889150567152048828582969153994135851592102863769248046874037406330582606346118681838446922715242729106928244001727823525957103591060814483807907440863336987813688039913432794472871425229310443756543388134360187690630893903257484302971224171984418119740542207600038797274697944522976187015122762727482103576952078982878189232295428272694772756159576226777578210868984002200519866765009714897313689479115753575680708806902801897244077412150646048105709902901065228381070241497972963147137448035671971056207282774770556749980012223808822420177823045323613813013136669152824258898930572976201870283157655490731026905862503158181271110805482824114433905981310638007001250255978978976901645732827672831999682803323169755612151508978698694013110600263792648320002310942136433373383216173950837910068942049768998331096214117204575316319967417891079347326415901477963851488885582366117004880672180230212927499858442531531392593637060005787558670010652209558798259347827170629939426820342296609312776361821980755578531339679396122279815155488317312508771649109971967939464967202648062859877457256992490023882416897438475847655343016596910404718554589967317077248330734124122426118771477407666780469984671939651597830790940865875929413214433485421286788504870431821872252001204194070711677783804975026758507905096048330598852439805247748425019753371719913412229778884559776875814250786917616245405380798122398523138456848039428634286471778194278192150665409266037117301255988521022089917861338177150110594366489917707843385680250740707642689402037628338586984740822881782255087838302023766913002252710286139307778233546858832269399191659910831202285728705522899876330259230869924671157559998322653985139603972770169658464005946217016231687896600207865241628929752278303669487086312380949803104714687531960482385929979863543373003165980080589536680550876114080584378213634198624745870947261160630566584708864530704593196121235975966385002858260499877953831315561192284947179893781597529639423571541341976489192993239561261380583065274503491914030725279389168723620233419566711695353704992012703816871277687707184511850517436254225327004376908561382445690027322638659473533562153342204011343096000106838061821670586268068383094087992540911380388455993534154418230776628802708993170617916785866311838226137914197589255237842538556356834572171257046982657030526999552523008530075496640366433945037919095450657060907249479499789953031886478562181844042134535333442394054770031596260725875894514320903377178575310324248384785821006930497398823960669789972961568096261944895099484171915467314811792309992768222701667126917209916879513903406919287646863148009442110588224685243864288373192583892710353661578328890884158300536312964741161237450601824117854016507964537833438719696479997237242998712981504438251223644742866849090134762097467288239508905024856685817898583952662555822226045419317637675128978605924506009399828050673478101583270470646225134587416519725681011970463708109620950964533194495639614998134533252707163650546449482604389574094996984314062554987322104828222870910231423206712126609227879047256349487233912452087381150159177716025728491897268588615001427628233413925667244886596415101142727325462658131535498608427911732694862562948130585558547258296460840773444542097631060695880017533252267594200693144076289941472104879159735743530925053825023471528219686239967814750833708072451315672387831695290979459677011920033757266509068014235902724380655462449651650138634261980948112539327130551681818658771189986433571616169146025775924215632206694401471858035412038009070217609597113014709612646206825662739241012003105481259619753038185215524990488419279865197487703855772342577556512018491097647340285321575853123797408529983507172753826622222401324010808846646585034981062141767058618787448304984159354035210324527226497870394489921188834379185938506904464425722211739010930623781339851700684609578701079338370946694233725571039663999751135287738846784936556025907805394744706470625851521196244655523110926897052758284318592065939392449909744268506477854459692306873979857718995823149856928215064679715421290927232477452707879992095457663825594406513088460266769395385786958991044476886855303585090495874525261280185025399309724530631040531419990057694434773365381746328984069707111957449410607354208669774604316210891999797794084031332393798095964605154871769068462757356527608691934143069133486270628575132522756929229450959452352735912094474097694582603727207466434343459845728399248549606862295125331210912570787403146877213308544741095134632950491062634245539564833212463529361667711947990342633437596984159290101864380598998645902159082912386342750618463750841716949876743217184228292999396029529961394099681131254423285754001087773965485523802493985374848651081738483588203126651554847304348549024235992409702236939970611177474300911109554966100021914538602253644617241775910075035067048644312895977022855888721821202154178091531785156599667410637278840144307382074751734738585974130408676070803971013984321780396723477225448005675275352422019547450072937332868610750463094170096714152519260924249819905411181731063290281534181546049950584634595456707986051729721364199550023432973376274472189387773392968560356138349411384157967881487553061855494518299137273826472782690287415463965242453517299095897262288126378905397863795780279586473392909641178305128011270455449260046321681300468190910117980622399031419828748862381397817635336935656996061141864544032744881949303150386310370287619182561911407489201540723990340525224149951477296717672991356873992273598884527683575676125671324319918624200050608414006762181484407350103531501376042825266434415914407657124044738235588601102463821066717368606267983171610243799581401183378225000883986438458826032650170264380052887607252111891558133048678304522443290484110264193299641978586377634692475193312423191471758679300219974827488788132832686715150315410821944270949049392914131806548845844473431888949426921414042823819904463646053644219529395255720462648769355203501738754924460234950855877776470916966944849444782444209707621845994898492959751917777307955377254778019501093994431519308578700164779279084424088232605463891256102334179731760295034982112946295474036129737297266759083798234297371494351173924976745081155099806449190809511879045541339514275550757505179852446685082972021722069568046481165783340992093817156822440515248719114475834172794843203516683958749958501604595648396101714746492287302942966779782963691726188614999627347147448711242142093002266777445473717167059884241113342841249180679257749285421350502078206993205739804564814725134462440455395889579510916139969999549652622143476776852501086379716010782796994058809350315210371753375930918550832902609087603267174461183459786290483261284174391082235159887824072905964235559984950802197295417538218403646466707355968655774568690562281872583316998642033432625322821402310859931776550757622273229691262960358681433368216487694362361770807364693308466463124857817995368749097202999528841796116293077335253927590419349269001677336926716731496086541465661960583651690857954893706146623561622947623267394181586357294566188938710714539026579163971871032801915376393376057911851130696943071055412368446135394206433345814714753528883929291386297061395815426813991765573344847791235761764048517043167939031843175623636796669327504285444524516357798731656573754917455150175862938812749199697268157289909503033379771954574918326689578404681425883682669732337966505083918275681596669022325937206861742358148734632413539970979954509278835518820165597983690543828883309070180546140257369882942203054973381513950189861868563182734290518231974248165924912367652151651520576489211515964775173684897994502071084459613822984689392169975087519957596083034793819096622224182844387377644471254088269268737769308348348189329701391984915782267438855692111118541236102379240994147484208674631221381994981173980350701364245280170744187375002325706512482910002774571717385164689678075701048053897760895912194573159798137392286764818342810393285122679615863825225281922668857599358421497354125913642811223803061562234780010996311024183445353649085073998136254968701346357226669168171528030654152827613705146566519837720145582615898880053746388689510248800292828973803699567423237163664828514983606917954042126809345052571566527729599521700081269334666231822718937874467982482246953754456038278424322233038469892911814548946793199735814893009627730260838790103626950303526091635213908321753480669867102777905757514663606826195169641405452043141657809140800383004008968698162267513670111782869741031591497659687155285338587176573238489057014947192552723845850052333593803940990677340324521686995615779429275075033933993131260644018597479433732124880596956171271075179467007547385815667447054221460030449868006063455508504917503197204990432956727410885788822969468951040858754179124165436649523097613312224650450316975855003271089702708033574773110016911133028994647682171861832809579883834650412579908073431031993913633752547852862126039713578226356147547559082698478809277845250367932506294370157620577385061336947787893682715677396630013757946417431393497913831875615929896226730670819463157450667724916132359599227277698473175735778391834100901362329901446063566415815234639762203309427026505767487273753734567813395185412717801115199282163836481774596010796986678382652757240051799821762985297943242932118102089452384373131799061331310013123832577892936529840309738496454939564154065153019790614002266306743596999403116415783612780417459849853995272253522870743437431780664405315877678216418593978205136042252789655260200463605747551520385253967573239413184759351182007455697464729145950895741154116994323715047899257390742809203398996557125171204021573531567644932849055759855689629681703658128829796416630134066936577860078737494132084250014178713819342853222225202966822101592043080850198071213010843631996006132376007334951183712987691020515658872018917334025646502616649091990932284175520138406092209116402297753161110341658430177774619760737320004062646205271750511340241571920736183818536170212751496943975753601739179373259736846542651592123347216861371682995468326678958977811125811015910940420775754724980594025727893574432750844319175652270702419959391792931628756591510366982758598374068402678242630818018185927121526346346729316556062428992641579523171212473416700370755478185179772976768730201926251308218128712451485867513970576920074896302363845213888110158970643772765769690504386239240187795176349713187742822836672781866721256495672254003419636244138679356282264935154138575951354915626549504973059135715482697398084816778783325549973704728843990996168533547135165848476654399270411473373357172971368931322125789368381845349549741012121084347348139263776734858349016406105008977006619409565436874720137899337413750704401007350404441391329392868524695293316074839954570889512941006120050710008291768532706677718023150454706255120372080341941254681512526408674229324821280530185250090661780317139742321184983680068961776776377356283957841600082021092092568591539402433253318822561099052837754778504533250308470975649262411005261028433010062125157121190239727882629027299105516557336989667145740237348194535720638165398390339193196069398739815063014514455342985444845861589199872381154354919662337042119163352500574698749126792133233310390398225696493641388002446550882264733071743026827081648278108134161487432329085364825756092367466366861960584632770837161482291592248734280505346236046633746946929420808383876980693112989223046886703720087847671724040513263787604974103535395992705620730572524359832701018697179399443879635187029609321849354938420038685643753720996877473118643585989592031188171801234449689627085148278531314504391457849735284265448887306580074266343792766935403481528656608438793133478689930359020172403174356631049656715674169987015529253264997099816919672716879740745285259319928845292404926629413985768530037098938561040979851722629170823514420302328372425444982174451964746819127300745907915855810049957068896014089055813692876974506965687166077946019689181242829683446463828144154550185852553995559982390813812968198605572016753373032661954138721692248092866691812894107316667961454319450866126976530228780419861366286053115501885627228233201640883674823776893204502342605168457028169343183610388588630404541513556553715550942861066000065880155906708833406137578187731336069870940449899994962553665096639969997501341985253407599579482690528488998078589349842167085801531330376210971929980435917613354010179581727089705904164414733022486002060779140077301476478531267102710009047044055749492141044868125048302877277314396799698182866261310425627885004608945038317261127166726955524873404160984746193896731692122458897442525589268029255058661038600412218244589279627613930856384029172072489397063329795193430471865583925076462856087256953716607212066394959634498719440603268097368738976871054832575799990575026270144270569957763891175815321356044007715210992605345519728150807871375491985330302150653348945093671843998508667902083093994468986018425333312572409043075137230882543297331416124013268462420328231192645557374585344583058277863588678322210580566949178876221492125868607443693120375514720877876760040324965294100503035495786912903946561248882911789955712883409041916373020958614971719792647326177121044091172363131313488443883155813232520247916671223121679998854821819943235594394268299166708676374789898048699778794474233051352449482525060649739503768256775803093003066707553265347563714444512651506168860757473357449852015021866846951471802893628481770834489052030554617334692885852288532934619820317561979265424354648549003310605186127643323314159611855682435790190485342050226182057301815172788887869083575791453166921114603462026292490506534043258840419351617086534648941047286115038542179460075595147499690216133351671281455275768180924768024404091399821224413943354068562162866174873860826642343061008621030825760845736411725122279954237958063876726427568506943765446410114497339102291014827430510522480250830546435673950110445213676494669128479448493197048284112648490839628933170963811942097694704550805352078951183177661983091271867456202894908787880554577233224555137174835165462645168024829080199841115757524030835120882032822634248113295506381377178413275390183565349603282509458259859543677518129276926590198021936081312722674224373924210298130464866952902390819104470401193184739402271021151186481325236102963009894905491573101254847924247372925309970561576038846838330545152860820249296358691646740174445188575669805627721139845951546812196156513569303106241327709794926970127305267222264849365454555810771949948447036800298271750630771878263669602787399900466138962178044710757943795414800927025117964486407715165948753000547663481268790189861753896312695239411012844254024421060642545863461742641525882237123865686435483369653640007075077497356096798883089024186896685304603888729246503334963865583116186059380301603427835876747290116624512650352812178300726698759843740499097949248971827933132219121936875083397608787152039471530138837013444786671657070791951672050275067972011332717103373266691742442530703921420003769024916101346594891056966677811401466391976967050280713022670444461192360744732919471196855035803551451934140513258563491760418178619033052853279744334320409314855178123973603114698052324839238813503110989110665163973886887679515189642553883818467599530634047274674499087872992994772342159364849905053974055630975796590753394755671713867507928671621313843240039641298491279429868018308065705977957029358257018084705824798311383277074822465551499424885295559461489846230571380209688504384967421400015265839596279006274790920337872021962852277916968830284597646008467585110226415100504720642709444809374048828945351067736679391087070159132376985883233087560558340070548626034634695928890665272668413731928248643284563567006502739780052420895820567326164774442767640864776971142629839509097308236165646091465316766220889623540613391501131035274387688660838682285321443385574911958212053551200518348801756917762495844657399191872845274460232549265449643105477448310393285185980611802468097701002665576538203719571024473233941441762429050931379521805505504556671863910642825862964559377618427412028900538651073535672681011857896132063993222402368225348161409848586415763814348116875843342578389347874370085729432091726103847421930670814426384927009758509579631987744042813835291699390672235771900230040962000170908172725038810516879838770349658311457079257381333961197269707596573119653106176746145726707735739434171055122054220291838909204340029808243091177017538307200148803424922918493933593894353570988038158085408167904173026705762153799492752060986117931020411223861755743613680027839101748975227943341964513669568680965663682932111570274661576855285199331884846847305231592947733144583508784528464069352866142250083975454982764634470531053469602871675553436200867267732723235851910145691465476314183070947912853159250818590003943682132617150812826496804528567483483425826637286353998274092069613596725337530780178161587736187783698463533262096467403654694420242220066319633795308316311629169125529350624132102499675381091204898432978877024370716402150155999773098026775305741298689713090914098008739480247562509662513423808144151376286205935837214265886180666666823958523266817744798472378068587198211762321384630483536030888276065026850505703480586451385918073985656225915970429491199018411795011057311241108729222592833322276664265256518010342836676361089084403134283372232347065065093312105403308318555345326019038468019472633699028615022711893218271169590313066156116266461919451290307859137950823804885767499825328567497440060117417569361204165208008821754275849950406747297343411269174311239115752858528151340419218553978662310145654094360822738881365103779795688785283692569572765808657025749628371069781245410438372989488827291177098406853123187763236416883089196284097825467329033232250287308329913995613280062476941179665801482380957704257505524075394576550273700706392064393334918872007167509512765686109016211954060825223506008688609437131127703604494340917835805616917792511507144486681226533167411736733187808362397883911549742646256023800655065101132931435019040566465996176708305923579165332364457607681976276955208294512721698078010079195118530576667503777773828193896583964165731325279968155109087238485018749219058705929153150618888254617014264163992318372797884391689107658825720999721632743280905089474544385501989612820533769574693476341124428817061997003150835618737266971569220596514233238411695691673316093726518396577141432248592399624579790243164478548853012575034877900672455144421952344461472925284334110974322000545304638494425575865034164406873583250071201878652219252363434030600391947854314395883020706571494388395875680701573676951133768964308326120416379542380261217561566441649818589091353500464673134384883895557851771213198782744593005343870670605781314897951749683246771886842984123884210733398240559971776079016229061052215637478381500102408960249263420984957593490260916770022783826483435670482711683174185945737303655346760733615906370639886964321469070530061012941209766776495167456892502972382108386806808107622077086159854422968237964203639294196481885853343133686934319404500388544642948170352228867091727546892322977165986219008758712189060273278248232221199968198655491904728531302490770258115720182030487122895800345135096615185130945588598167527856826789331380920405181388015840129923412307698499870199899669639830074292355051956778134873491447496870250171572500232950129633313703569862468848103482408924934051164771238334433071578573695037712752415068302427505867320654137962643513558443528030801439307771806983288666743620379921452294117646406163222712535079325285031576934766797812004472752536735305412682970086609039288378911107417068637657618149961160045267195397059549328189917063229856140497059068477791486764037224424203320686599276863137077049070801651387282834740370807841339648414923462280241345067450950784877468373194143870014055852970691178112783936945826431701270372697743178867149355966469403806346082144044701731592949179661146745685553992487331008095551301575107376380949880615081589761504647357009839630204185589951616720656843185311820506228618442637472195763598817650187859599005977316142455804438219431580099246847801905188139793046336049914281885598743494824409325119951795846982339389216476193289936486778005312030646300198446290226362488451394638883125802364121713156875966857398934581055914895892640154930315899045972459708012541809830465076574973169041273448285861482939459477990562515442578339768452250661040329564258203198013697391465971891893051606798696046498194534321019378253921501557907700996921356856161470999050980725768474754308971680766742815347354611254723658224801091517347101825783499312003014354417921273811262688997493170411174478550220487436819226141259368689468543497996309659702630838418376554157918549966781581482271333892597031944393164098685692859794882828993070110059214735789228790954203196039141255068742489113336564492695760241530675894956192669617305632665662814798146085319614533437449400867705482735801507193526623924815713769935804433825522334657873726026051905947384013095806864816812033192258163370313747809138946479744889273870931164799094816025480371689703680039123348357303593441610790038462073839955811870169779924296645018542929404506675196267248116137016590175437697587592959984041398619317540133535537407314270038512321484423401537925421702212422838820885143499377677808944674245974685000354379021379714715868195097566837405169161389075053935109291151784853527615407839920867847708864931602125954937282583860810682224747184121071005598240733212953867501133843609157740533802060893924576436068680180262727754529876622122349701501939858414206476871364205527330311234090309170334304806461057011882394600488274060328058717762434041975276819002664615758316874431236625230826514011663755262655642154723566693744256233076959875171473013368494116577954434089668893916216465067442230623089573364777123074212451430626001114469541646276882370130630264866456692350084444142441600935189650367489385612390245524073078971558984878030518586981761743532346147964539238801638284991440066958532194809044311613668312408322611068327145745008320345037119538690821494096293005571926708297665475908327957266534025447665820188092374112032532249185791878817105102440427358610916652961508117272610549209301932320220932193253785419078014723706833921239082977451698896268104517589077346585945021883713047929328697803034125181040939609204606930176846816613978418890451030993015896732603667527310109979322898145483282757216562252098923042902541488684803612231582601568309684623222091896013248484725604387526481078281153831440520473206417193199173625809803173561950481879315313985430470405704243866949069706575326825423819983843022876629307322733645671264179737388612103396572054477180080467516927929770938129966303204239340287861515588395354339336984168706333148251064992561762004299624375898418564825109003570714139151199813623731550405510949281275699488030322971618324593143856213033051251486970780626094461729437985175232813851075356320787953188662287143960516863679572211191166014193719349300025611839736294042548216737118558110444387489315310189953196890271368339640867802971262114593972924708332474887969412345592448977512279988008908539553076561382791709409420934999565689830252096703940378311817522515049818579353459269924232256147504601061468888619051703814138618002339371181988807434967444911067483419871925364481613661328539714415597786091582606900965364020448673065359806705630728432620703620147174429265076767203731444323000049706633115118491169642287471691347847200015555401703395670211398986342482080067948251453267589384831514892633907229584908577772673697398731264769596873809410842413663814197800358611369204731041332305073342961833682527705242150574556430528904687660981118850537667300941634775266711114719699858923554105186870788754030941229111948315102607204383704103899758688704177199093413574735066187215795651240883995747201163373902021930902922660187410891792197122282759822885093927357535602508374433245483550897722341511563773720848929329418949032104710596915550544464598984606203727751453059630376591733348250980160785548267279383645541703153925367370508459879131331377088894970806859658071587643868102659206993623577998731632006692958710723664188507348454968196921103301718861167601163393209813298805178221207728534671912192072756983904034110822253930258349527997271836127031036982595030901750858422518146886984771334513779544540957550170046632174049277163858099083768947372502586208419431295630956632095676241558769821150733393772518403728438312448723239894045777925499402628707626425681997942893804170263953514343751495750351723295415111878312610895619874024850905239167655680519883767463401550012171291394534193714760112101481322818193951536999200306428849817177825822618321846472042960761182877430737487650176891722820296543528784624221641825735084124202048457665401949445500288217647960103218264968215113112831253053626187541927598017452827428298217727644903772830013513127392271265495873994752439662147167462109237157676110387737609822212142667156591578824085462013263289828891112405705701664092777679815611407284393881913759448752799843208594262888029999312711167167311993567493285429955405188936397383948460114317667119930582853247097960646472704418112576034604529654985967487663812965314312856489726086863942864714293153012541339481584586007935102895989183782549170455027652433026350455373946003575022782244704148195578110721003957807443016984805584373389779840872961064233477407655751119477610083757629701455320173251733100137087996959804110174305571741698874014643793353489876069517360193464316364115695205228385136749199202808654844572445350917504120860288389599379368439825594230593168920672206204521953786515935911517279457344577212757384104310010043580255925066710074683978095133434349557241632141575262756774491956199588476046126128571278115515570510356012504356564981543508029895220644849773412498171735971049866186459900323370703257976392099862253082373396989352731355652433481948668244259341965772677603702633606699030346246091737406578471541357943250091270098059157731920409390237675667816062849439046422499540822602868423129998243546113642298952350813892467385183802941889944295671212997297376155631038799005430140055835412382598571243869975308344297363538838083389734855227862380036563265595263778462944571953546162517290556137962689317446348407019375478454902898770107025410285466581655085877232517954030952352907644031701649306092159415902100881672604988300384499967689359096249288558474397988846453649680048163412934922312946045948722461686311615269317543926043917980213341200696820491421970603858076933357278436391741488006965171919404213862544755240830484154941795334310042738307609326160566069936997407026050654143434799924300383828261832078649410022674334245541690644884611408454804735683056435614955829970780404729669068096068119603575096555512104624807559142186576355167027583321128885709578550603606277707950552988732127203993340853231593463826795912047313986496109435676380001369085649495305147395178319949788262963869267326197181537544203052205717044517714711217891506486211176324702060919632651137751424126609297916702638554536369557671982808757122149670078956143397714864942666998469308898164738505124044541935541326948967145962621970738856171845266098427738332577581140622185096327955764146210938922522803388117530923330468522884551184543490053156938097387961759676772376650666147341858059183583187204384484771842836552192018175810267522798448519693866441500560883750554370922384994323361843327821838859645702986062911540619105407165679580874907841754251292095902622533747938839567060547926726869601118012515114488754708994348482132704071692036843622232827469405538337743539375217442820652563678180806525423147446289507913572629347183705048062623755661336793369042634282991495998541897802875220681996671641402410574775678507997758296867004164336883681735840321938109698426267585537515868821534102445301623956883586203779450576447045548269736884422094182290355359466890855626861345493328296289368777183817106905033065890937131485569883371771226175357354247770562049128829768964607435121394945979412807625974782408183283065084423232008450955642567211615930934929963095398042326875345332885765884651120980577065532400186116517604160432330836158837747643579433977195368337411019525890523718330492939672816306343541172694259739012378997234752133411007659036397094931649446296008944125445639082031974550774033221728536662059034598191074531301099558837378785409579810626603605263451117776381725084588560482241550051758586164608044129961472998162367709183188089135783382651476029807991047646872279772563159144793170250341799834921825688014974176086837762636280515381244883052167579284167627555543583351119291698734535921180100631520581448572920827517207238150688284915956461206200089620743694397952497781541102777824216999524010221783004673460490999639616010159242584572723140957643742521028340503373081572242403367887955539567575264594375835016031381996625623587295705561402051761457608009649816956187201556381029574696287162729206070395435486204704502248093222798587588255437861812789377895580021745753709248800868664546434731127008240991781032426187710073893547116907831134840635493735301185071648965048250722078118706705147370468024771788961387274484937708490773797858264221756959813304086895326855281815252850921579766868151361878726871715693364780849361873026667815648290843348491161444926095598904469324616350290545884028583317644857259312817478478978579714395245410427671467883608567128589109151916897694710977445907378073974391559136614166941322036840392892915660945577218408622260122260580171758144531469723716864872741661698410728871852174634359398995962352642444969828399964133920679797373089894379176219983532559961983018921430643873519351990718878826722683693471920308250763941806211146783652901973641411580336158780221392343743518881100903452083492327235573804904978662595824328099834926635150169143487223315336988077850195027855501669068718118761636030839805304446873072053747631388024366601127276711251094395868711482617888876397342815776527481745056025631124203745319571233851900901482688744621894628925906575829424241491965334463232598677584221424840923993956470225735188100815228640751967279805817761125625696484198192064061842825933458726211060843802622538786475948476081998637926350336194423697634737164768655521689995072655318694267795261961896868606876526667141182968568947522880373543869476847688526943257298367631213041970477786724253023313445953083315635022965138870321027495472681721152580956359013666599913884402244945846373953244989797533738104402414120564150787481398142611966662702453272937744727524536675152301778569441128670642960671140993979239512409911611017914292076288321587964936037492405739064718220410988063312079485313951222957870515062895220520414535320237960821234130491669935682637419321200089783448640452962213539928561885305782544293444022443884007832004152804495613441405060643655935369533974533414873499171745935740575781236053956205312593572714181487251750538594280511809834091608463715841120935709511821839123263107582500223610387641792537461762053889425551929088569646880278955746059788153515834783631342776512156275840166469322692033816774640472483495090412170680203517686443000219095834665229392259896785059255413233339132946862009992752512529417964134164467382414387930313395298656499348469024583221923815640168388895246330522870315365962552421633610338031638655517101705051730018621436669137072039690837779691139235126115378858867714758653669213704880625352445542982671793414405529496047092994652051666121472715421168775262748982614058116606447768013482053862666956653651830121764379035158657577540533483929186095512097000355747269347372793765812295499443982450469810796863817583599631161964743744078011374041222674541538704670624513693687184055098615502641807319844379434408194233453013371095917635799725140919530085744886689451165713188745507584245725020331433462311188072200418002946594113424281035050055567509855149733436450177726528921432607412204701070574980342906499015471956930202049162503470034273643871826468995086036119376573705458277300519662535904150283101464529342416409475037015959153732249933457093598842807804477975091510577683565892697897610117746467552626271477325319396100911559632095966307655351534375423239507156146116739514214931744150083885180366252872757177263800859706021440470580407364914371386842706734805132798728859244118938984658108500059711507159516686045150462381028497744969602400493645656607922297672290953075524204348114398063367590329596645547212765736393421252678221470923655222745364009240082044962423316672037326591243579976119240816862944611806764789670777988787887727320461840688405378333798585616466680818273935897628550487010341737396002914799481064643053350497746770226050213285892009978692093096215565717014512265889102679384315449505385590106070848993900875526995144956914232647210238554162947701558160820069431794397087906443120910011547244663468022642602111383283712672377340350138934792031477590600219861826221585631015035697240418544629424826128427516199640373514729356399455399643154879972707055156750540790567033876336972564658449735565710280455440341141816748833138488238267626311454850867393127108639351338058330129745527869064184259437018774823855000410450124788561933555817686490942706110556919802233917441476362230556672946294346724534884681970352313781869031197236833314735920136130688607195668072134582571676124206135405284526862169660865947724062836909822745776871924327311526360716744736110412060896889233391717475802727707369872833450444798802793537592906217212759671390425147651999026492618494413389199594242318178575965081657327658049942833277924647596248976538103310137896839355023133143384679701464176891007273853383398318503738499289478860351320707789171127016371265071731962809366281630080950673079478072901249045253999967807909951621123063070790741541637071813610912194561095264375109413610836862671271739970438650186542575811830560600509349242365809973212936268776555221978386857326637693609861670087094723395911857786784902024485762369984633058087734586712166776374013885884924669850097528230124636344110961646306930944078385521016521460007060999860183012268314752878857618681749267193040279989385355338821896507823668901411310369655415858507781464559509337673720715676867017040286812322671852202972581510308243818625927628392131361194922790115936700882895533928381178965811303364996389778471940421684312429634770608698611760223272976143061729839007654361929853305434677236200682964818516127535568897102360940612810184831581062133673543176915926179511320449032178025851413267307230154679726151015718765063546538478843734458703272046782975608608182573625280721616532332753377423263262696616432795115722510884887042318566609602056671603391163240344558657638025120088738743363820303619342997391459334832873505800704622936664104183084493333328304827580033553507210199937260698117616126500002109066530852703120537595373350549739183727498085173123381484091818349393713249835121129243608548904877425380956685787653794746565611418822612829847399727362242585850025153117085438912931181054384074889545687986422701640974523714864778378138237968772584559801025508371296518898413114898834823406805908690502764331759207368679381221636468150104556705124921089720922252805744033784657146049740627948738830309341650948214667175513446106664173870354494331394433287312407768251761967126692491571491306276663725130954723551806076045341158865207113115830110074494050411779889020736394940646712983714118949401472738371017703150886287891071765399411365073239515439974014196758811498787413828367268982282607888110748242167327731132700346786843885028625948269964207715509647215403640304803192526272226253232576078274141681329934154200470484695198289782569901941695063924344690726445260833761849825324210432670741857585433099430122532774801923424229908139674632328039623370355099347718747993853432035791731569112343859170072420415709064741959537257383815716492863705269791294046282365475742544924092259014525268269473775038388133239399634537266095682619587041293549023131024786064971326547066662586146454679096196260277472502265050731005569354856168713622396220586353550926605848684407186116999313906336402966661560369398517414524095378912321213084019337634934810971110231903054010554675899860431084322206735764302039922398995999996356864885873394847557720451512595323192223615849482548017140458753692087994833648187476048379653730202460145070650369895247745872630512889626713304693603269212171509124072377333820972239276420970215056930871570910379515520423577130766146725975331827091088080058510440904426457858673740107439193077479260917578192620075374047674319159239586051650985994813053413449655420828584573441674336139004310352184531019325241332081601163114038761280161813105042112660273587264432291238943678128942375515444421407155093072751923258356687504077996923323990539626944366778653620738853835210592614678635647807238480176411909113875725011750025658965862499154782034572114100281310773761946505049003990203800278872283814641546251197060489389277563439707361286781707135879442186029585682286703843557433288500441942538406632598514227579840555894807393545391185517316891792356493783414215227341366100214224744170268462061790965297341744958754702550055206049394451819914396083872517035180333590124094377609685390213567943912240109732722558820285565848433669905854709737287264190561355217630217276382626211662651397762667996894153013594879797624514780322082719104270103044385743544862411918126520353091328986363243814497820504646154894653442060521176741013739236443939110763283150792759193487249879019095802716888845641368091911316695023600923180294283997696468852747258115005364282359430418127525478032625320767436093039120915076398417590745132674418770682206424795370782076858953980832848418249744507252355367855006230398153662844295725387817472177520082517677259906238313611543280540087149619087256789384687402789902889659341602080055846728359246226271829278633435425499644275165052828106079512108262657747257945602010713909379740961305701110509253065823283874149045851089832470320682900080877337313712281738494573787235430022727474755888271683255268540966348159606039851431360108988474077084971898785981731768024394212443996497794391157760945047544494456457702333738976421204192904664468294167379868276679370592476001566635678646627175126352773388177803268469432269903640025235252516836441965962033411383612240516090306333370976106463913864048681424817282352524190794032449727341209906604058859545790909650964686532288301035513172144128247921119863965371556969613224778789109516134312606967928736122688593067011025774372861259029750826713036523294767358947752553205739657976866007153551745133370839008928032943550040509030328618879096503070724166823974739678727054773808440393422834659894392855210880722067788618207967511672450964005833631981181338124565754607292001399805166179693422793927205156517302099614170314535031158836963805974082982384117348636757392953316851847726804076869286161155812716524585030695296252816608593721251596747935570302698293098221045362295249748547292211708461998216092498908618276415577196967339777560562046608494414475759382454439943085890635532698085603432623228797123098161893413485528120348029794326439072815250376629049421102600656623501100267765534077897298439669774719697206193531759920358648889715900252786544258744720140845932836351849252401957648126507035555088627818300239669613939343343284879903294120824543784354676624604111926238058864155440556195690834958249496640194609852608250174701086997051864750548746641274390277800319227048830516849313350501650944503258845813522366484225589862822405741490944390410329161986920090406491889587960508448725405194993422898296633451976777560069386979572089878545392473149250980165056480402845360668474734835457474716151843977071951905909263869696127339977145699975626701701685368727070116613928519234453401812837628079012826594589962475094671347378978224128256318302197851888468514094146878177605425632908238003179851880946390499709022006938169134496731206052501893477777421329176982691851751689933309180069077656654130110755700682811916687453887142373623455949102153638419438220103512777658805845123343100976308277286501634204933939445754424858783819614507287812962346490728478103734285492509872771743728836848292421364943977478563701637610250772082481692340458746180587524476430301646368300383037681763212348020218962074355832769810808129192497168391542643728533793231846423147699276214369067826683636375678577541565636241926666529860923840529267146543580712412068066818311661409289720354263000192221057482821019413440260379087736542076387417393327097219720919732397600239874408730507218253256956198575676927037358882973131455271651646305813480902461502261653470655292825910508839347367950886055648945048660913202107787636961033519828540724246189799199150572421068478850234626858756282244607506397748265289582647869917872523194593692954664454119723167552008269813424659712632855894293823662732187488237510128588903467324840941615329566150995213457319459043725385368328611391249834823797902658979961076330138429866549298457752595033408406248371169255218292984799850685059101345746113304849307693610972970302666470554951418983627118338436087169024055061640373400694475291743217821312842077981361047288134524714843530756536057528879845977756896060377216263007629731239672389494891983514539102830318052904107565094901368680209454332733344737680838226947033158687202650486633201344316577892383341296738466262508509226854740616148571287444841663168732782635433735100457565119874208535733809176028794814704032005431110770035456146637305589468446120675115513437070497062816627753126788274530473767347741217843784152692957659567749987949716735982875593440446567784662873850443332620582669848973976696350940134941161129035037847571391578473784816990035081118431013994213584466171826400290231825576794795031313537001443628465452824318976000429942392571860738816832493811860393187753593482404220324213264241436363968569860482232904374066789774557996456712426383775948302650965640949223384923370335791833569693449229886895816090921946743808207630167870564476389811513986153893252923397882371110027582687726231772129505203871012489342479421815646161334260702401489678365111275477608825780531040896409878063052305937903241680014478781117424867112503054250268996734427621216145912020956565748469198608762790755286366477862479432157509875538818701482119499243403041200887001785372608757174007922879252667461919618120489178783017146139078762525742824811047827023900348882611239147178834250178177827530334395708635375344193017355928258383870242248173181770380812807141042308871411889940834858986775369364907572955839204450672849371566422605084268804580640694999220167469846357634025395626617383019004839464488168443614536264868786883548535765538089319871194230542290048219686968392311849964822266932870946319413602704163461622401982760650889012528951846041816802415471382486962174918858907036932307073260722857230241618247089131083072578636299325992097221390792767885866893930682533419648192583564831635472286643568443921729708417923317530735377725256176998082012019223140091021007403904338842065247768350597360338736047254985405461629144318554934833297061317415756691921866726197420686526834737502232254157361166786209255387278977500033173005072984144044441687749938620321301382419266243319459792784200646575301723370214004416770173805756143223479744000001408638427013825013672990296134201406301777799986208640026124992775406126643007837754631588080730531014018055869959742938173283511867289269771282697222632911784097188385335809961225424134327357714717072034427874644631456245794535360198631171011518706085654945769302436024835648053463905715140551030577605049367710161571776719034940561284957506140959462565106658900897697612235047770771424826870875855273760139906156943952147215466028834018574771614948778367437850043943517397508384323448110509859889667709001498807333957384213426954053913287889575800024271820849366669555446541387913210790785449296659640712442663903279996134704331324751692486278785714520634770500988015669987212180666190128627024693326019738475567323494196851526075742284437680417222872961158959580755612580982183095205612273162439504204360764809153240692784540550362096656747992343297173431387348107751920194622947829668593223166680482222929656853282749905440801385573318636822883640187159110080823309278743682579107460775605049238515738911495017332849764508491057211721749057397490959839112254657680587537989951653639647092641369907480207472136337650368836808446862150980496298990216243703974262502145462297260604237031744117693273730047139450139115045777989509736721395996593555486966389866257787467187543071330426064488795638117480044388387405533728480530219391408808897941947111809635768644899709181693940835031378163390816546631233451098616286585198197037787884721888501009923320096078050437606976246585334729111572616040706475680838430049552382049234574736306173196227046464501784085717512103185570419557390649735268768024578135735235804714207478914711959864671285349017457649291504542583185179278262887635100927223217817209508686133130695119485303282903684013517720428108931250876647740252199989565256325839585901942602524947726224670081808828976147701558727103531206376708298959836543644638384254443439212801035805053864976900810744741590542959062201923280270617978812313655514024856907761178919545015997192269038920026913516090314913779332476722776673349188596351882728718341896292930234395804925765222509460659222632109432100868168363005672044573418160747677949968327147393477658823627758481796473607025900582058624329016695812810716500516585617809913554388610343879510320089566267069378854051426928366121941436966163401965879920606096306801758349308317370576343063317586105305582507870046309843274042505906447794577492689496521255155908383485115251629809659937360193235556057437532604582487232617660972283320145183028819554868315945827074143949749720932846392474317683544388818514782899690715617206971369383837366180730593136553220098624507061016662049395267486808631313456311713282308035809994273852706320595175934077037724777305956613289901325302244492395146496120401201198294539998399241688597332097362718444755308907978489864472447908856697957459868646994847168886270749043932972484547392898941093837866588809740125357657744926027949797465356705024459828304692501376496961612112651292304887800912665677154797407584720228682517449064468297934514077676496081984845241040332548699585707165531055231380506964257261569385530521651689693195602670351199569932050085713209538360410189260440825307734480086006946962506450284317398077021583382182829355121768040752140498488452841939321343923699313753735994944742876513014921168573645985914719666983674664340192895138904402839034210604575838990164794491143083636230806405794036324716493700633564393813471934855099080631371242878147108970923536135586055666185231606720312601980144301036085234478461700619841991176449244644839466506936181078781508991814436989373386010292318798509584454336453222500220583018235520062578633312196615259073284778341963803782565187195789573322430868622143107870991087312594806034820129450535602477598190626242955057461279290034050008063087424542985544361829012011735644125073074233758317784146197871279395071915704492569713062691714238782455312946364455501516052570613253931802134053500243129611732609063830291286704874717939179909538831376282677373548712415697464543863187634194558779332543987856515315900791843486551488164199047722727542153801529785800459927510067754349933187222247100639453418341642765071870354468113781620047460051810446870893587616729383504614038540544007706897611913468728263355128949143483527409891987013390500550827162227614300189186531070667817478523258918009693937539821995794047774504367137959412378609090945718081909042395346411263559229632258970831032205194183678672884551924066741234704360130134060793603261240659954544617166593064616781920211044651763868351384259811754782801000880379978504648445989886015970934791034196454590781573716019365052842208050999242414349353969317736399933136568332642595269269861582433894497648395338799549343728230666978667770825845320348661039618047491165157290707396556111588149430965559048473718167873282538024748378205797254135169126331388834657578333688432455312239336477805187977951124250131785908010914535383280508123019203514462658227986285006589331568484842237206971220131955628735551212551187663473182938795467260855437313949330312818232128268529979751161637226465432327381897142681596004607218762640786404173174689228174246298769096970589139498527045227038926442140883009768741277396883652714545494676425743934563388346496804319346181265111477428695744803061539371085241713876150705586241498529895144754458033108411904302771992812862271229627914056697891857378139109269734555510445349977971099606070944371242344924262049587602438175899159248055103353878372749869265466616468893554893073770533801812923416918017503215579350622520480276731237303593049741181488398484672978222105654799102991722327511627101477614621212269680934112680342734337343347280321265369728361767513024546652579309525243826848597361737108063430724709321690025414062493050051294431628325903552404005923579759204706538844320742419436233014784888106345368872638862183656558956815669581798664585572227601360085400732846330215978559317775738877344414763005640197559009768707697517425805929087990131474200223645199546706209430824540655411584637819882775604579113622072919675711827966204835237465556625200448824390739900550894335885450272660420302000172966442321903678475180744323011158412345368534203652016062626961651389721663653619680083745034227635708035079191707643328220930045151584362565059779695612848123106244752106026710383307074354237086606184521108489758503439120704622383233586240192242060741005617608588500088487119060711758873135528169349350012312413175663499445089448163946350715989620015083697982330110559966081353547757078131915076928195981925979581634728891085991935956928850318203650807042807292721100443508894383710572615678610955482903258663687475519302524322760443389896426634065585081460196409760248243925563078840829471924989483402050218246790624194416952769007836519984922282814662619583617034723067417260788758104191311940253334144123097010749744602297923936910353220348913125487174174547492583024000777832860995542403011058547644509808975555085650452350493013788574481456707329787002245708087384804034541060668943120629668718847010153962384704037126100145364146095518786119345273511435145047366883605242734809551914896971184719721786625231104814057814055514867121412455557319912503602463351106104686219524847022691044482051770295089236139763508237535416176691630783230935522227581731039075293868127316983527592224859120714398873486816395944273986312458078591929871184829245968675727735585868542206418686920011905984494650561504991150945578096149978896169068926994968793045870727613674778131450393790295039887920450356657273138884968705919838182277979726199687602964575833961725494952732991367532641501216103258992043335614443427707105677840508438681572430125441479313616092635642116378971485796396247980582921791811174412210997482195829406363921005279214933777728963022783631782240515508401890831496148528606626454122932940009339873557813975193752757715878416754772102125223107743791490761674263212641266054812742333987700127850697239047042473064734033691828304582811872587048488736537577924452393746699368555903075851250752693215063721073781604446835067519612441368021311981782266301267822589506915964377861286641012290023976762570126588355526787531737677075974965821990181015971013499789075592881771343353895292303150631752658196249523990282037409474979195417928245882591118491915744649119386443588191503879572741755958590488703980626191676308031484794813797294266410333860231160628316808034734996983342104071090053014408619155422784153001701308777664478429107598902990255755317183784961435929469105254857625590187352135013251893311267296753849865286549034136565960611019152675433906412618920215278310051144088798804313163811625756922189667396714104874710309864328387844508712069199469582116974222102177725356148628949176424703432163862164168529496525037324322810257148851551927212490980646172378673546378776348323593267319636515035818809172484179189396409420328905776852656917420896961541282364910934285310649207415036235200501698057805211672400993207431901545404369413880385018223169886826268650190130173721248766657854400069173501085520603041330717532966425797296132357112005114707305380716709249154204874022580687530135294167096055808184237178236423782325176893443597321441276353006206818570169454470043127226188426543527886863169679409546471301028049422445279278943835283384011072641137976692747631150134332351448200169640627199623591655987413160371209623634938687854820635629881903450491995778739795034312455123800023866244653901572295344198352052189265571005381300763506805579238801606060365363235573804596296128093969473392898905969164673694104258377996283480569389436099294199304611960218765324499095001796154520735742938257895014911009753546042784027738640445655463974991966766747989243890139878582845054548467903309054856630550691578378793258589287812931825141236005381693695207216936510719929912757560931092848507120134159201847094756408914957951786119140378283372192734684845051849316196036027915718571242050270708459571267553279384238999258049456489185810232277524776336304792017654938528993452989267783167305535820515186669823237058528798354769297628971238831070957726653135184215292606991880366586018844182178649635920583500178395214824308376836757924040866470242339584874682410586024040512636442722415939186425979693079527491185361986331024363041173608721330604213253650905930552322226446181614170785631521658513056378922263016291483886911369340918231376682743010768897991007325486587788982591074668895981852737653239827645257507831289619626979775845883935239640924407994762324212768032864533355446435009490507539846197521864381044587079947910648887757756005528690352044619009308065529881776592674954970181711839213380125132578495469756092006065360384689853722583168594896645492229229696545616499758930008431628400091295382104198827532682370928917854418605883568497755847799119620822770629136727380033495009176630476833773951822654511154952982019414724613426417096525585301509861018725586220444335748893148730016437872558813439088004257789564468906110530759074843892447271554556799509206197951149857423734091091232417659476701357414993240176878180091060411190278096499760091718422028484028352237150633210945970093380769831188050888033371796569590458999102135611106095396086232664416693878498505391279652499857625318769636708085003624023972171151751956818742794951306004379092734769361860269597721097999356361025092818028457969197503300243203464301054474999430283900788935372038250093524168620702162486210197560363234247326059046616056944228332448993750086687280467184609197207675019656036215489749142480074543132990295309216456834172867423094568308318364145862035682784032582231088067001305789817217973448112129165158825940949055458488425496872043524061811431512916597211054837767880152375177061569608165891719712181847215340906888914250414240232540975389874322014896155525033272681597468528642984953524370204445956073474191401735744532283468166733368684668086220405179246658267518680642864708577505616279450321654221304610728296735035986586351383605965942810064987962992744698107413663365346540915295093408173859843152358706398915802048599501838261929256033651484322428585685586016160487315717618246692027254928379164338170120515817175471406597275743060467915228724674805134968875874222243066011244127004844791802888678713176609498370770199634346799464416499685906919788588535460482015371343953585399616490732089215967239764573931669649191915858054055401900669863846553497441787448192569941604353936128935787450871758894388941173508985877566639601242849959300737404099742511637154546948612174428479203613478809830612560084010495401307761518170719660298072949005825197085925477359840332204795563625771644051972772241883956568170819931676527643312352426396405622963593268077491237291479577774583384577877327512806552596235784186443754172626947741112173674823654147188740705368432261731385781977714065544829518585253517805964545218348546114423635917108678204271747018302333897315909285964158573263069500002272891183438845993870848111855633819488008895819102777861289097450808038567444893427924586021731225187058341250024256484504669754782701010928481839573436564865185105633568471628979314921387008128464131555345113028427279847869708664489792919764921834975587018572751239657932478679257872285965523724320747721594329205731186148250555845823510593120124262784120699411222564161623546437740608762260752059775870187509405006827808802810072594081924710743240628550775946737921866179776520110632441319284702218753955081003025144210300032624913563531169851651656142261835909929014729634584816674539513377005258754854826979159006940557549307612825692957449464206724389762165872884500916656561187614182057672942217441767698330260462079614594091569759703488192098815964039873477613320974127829805568972448739471616022437405152366329683379623062314490844859349365235726036953100471606501109432673241550476089896153604428708820542898656576515970766662310100689499699139485110578233967588229818091477569219638097911047687466087905457412352306413720816264088246229547029448165919681551082426149787141873207568832039543762039973387555153277425298257481854607197671544615148204056361492012919831742509925278089621007108371110168468054914455484385261344281918840894672137689086037979508523597446021120300852029310780601400654622852924174459271895099452102497823026520940136706254989125377380836237786862483305885894475850976291696849076062914379175341365609082898759332649297356144542770885279421379190934948348762991835737629568716390294918556005724560831000304060587901004988302251219363602378634012158697802959857892068260352642227308135628526726728927034867648227573670967375706566360902506441216022908332787767251273270822515660555346264290219915421871019367836998888873987413545944663885874700700748923159699317050123154299257547858263041355528843863780120873775868226291950107765938465663489324068508333601954012382030826865163076842480255531074058442379799217675960310865448198660689973569276685209296733138993911702999640754236226862487999363783581273023568103283912171800217270545633574538195068701492307786284822065402175104169130430361442314279590566868083678471893980835425677728735210109230268371682076787101787314421587348974347375691771851119820584125537741539620376406178206669520705114520019940183789816513416146097867240867278572234956160966333373642810416431099564803558992869345647906415999389293176241519540690799846215980718774905551450973022528456485359151846499302872074260348619407466297711080300266151106699828745663487008960668237710333840736245639692778876022302887841841422176991437273659491210252506447609571476385476343627366529758113941290227204294095227752476368251825758430143089063382860509460693983501791935096391043339529975324048578298561413338164552499214397022435675921067238567449709206128358453892492539152768998809156474098194606840970120242610128130131928681079966779061084503217627779113550211012470324875868097164028919865643164306634899729430533705697650049670000864491986072293602687039683619587134212977275322574260391622484936809670441413515111489205237085907993350413048178043782791219528740863549968438988214597041089900156428229646313649740329571351932089627212308490036706992731971556080973870375766449074891489853774525607522882393931383344380692495699932223201248404557353760536534517065303110444602159088272889988641939963454869455098453662544188180888723533372430001357349443390799449098463575570144475407087806358885578457788422854742789106391554311082570374800237042310163693041023251218596217535354281878823409731927710519789647485129499436484965468092717081098917809034408687268740332766096788361775922620349515040039934761833244024649815417686095678251705939837726043682916980666224677873890957031665508178621332969727327571209773322920900208792395600746530380210658878435736409246683480187657341459337433514053859012996802120867135838335692337411774046691340321323191830394461343694589752328610382471530063860448940945034861562043635928988682420038056939693368027027019728798518930524007142077984934234805108937225218953253047574876319351370189743481887547217181793026068650613583853838672816020631820018097307703245488287992772266193612995690374000245560908070044638390929202236941828376785717885181966691566377408299055026108579187917078183866777538792262702546111975463524701766827233354499060076344747183718806497986918772820128037969483905105742849774994101449466863922454810204094847573424301800831155036274587152744950815777851053554756757749292928019668605745447746623949892019194680141695490081198033222963215557461337090306467378889902350616540694729375976714835205053687787340529767492521674507147993786151047396531334173883924218383746606476080634306336782946513747533688067102983864261537448354212440290773729691334173362030092094824553957605021791383180188642530365267281917656157458034724247523180109276889158704827744528736480714055771567548811718096146189647722425831805755939878055465460873724279287367593682553941378745198719702479691729371645236908474701330022241364362029951754582362659001652631759552494046957768863622176475982195764833054531094683031779397322783434583363249065172808814176875821707563163943479642648478199651318387722026474186254202210645900789856482336636507721484100769519492653934192979846726112535157193844839873911390856826022848069094089303339729733772862839276973346640182249248499037484007710163957161871301443649722728353009869787609379547121758856500123030791616222577373275054071222968281007035638069730232513745062231371295375865055770620194931024399342903288932564934782412126577100584159058641839989568072366542216858519344856590682708894069503289463193449929300998200950431574079419567832071956059509779870884058999569444615618360147480688955190033412340226278610376904775003547386042059639322039739890810454203433916997333166309998729155091223742717085412445608591554917260442327567201960969608697784187932793449503870968097250729821677389520578079176979666760852781068376138021920474544384340373710806918085816344864971985332218422986000964917092267814384409871705734558120886374974651487747853214127956756265532702459129072304700559455111019513574349897630225281243503103623064681005475329003009124318376681633476733418263276941428655715821267562094469425955275344696420992906687238911952075292522082837704646934324275682285800579234818718110061112343173920348819889144800676927119057128678210292580311268542022613724285407912903959761291089202534579905674185357220003550980611592645896864548478551466956509582281804703551720664835919308305732656764915796547548590824711997870824662078558779458623437618690726872944368016767905761804248119531408414903286011666454045444682039192941512657817669058096886987844267585645479975625682795311629414635696419340391746062151822767030170050524900858467154893163092840319651132180025060757650695858784136758556979990197809613460174415314996075190648430713797519670191299673821078393990693674652044104919235111097987089297287856428626067625890692622033144745921294500576554569684163960453034624764307851160216489929635832900773660157128411105932495742581711462101758458276441542217040586024779443426188195049333309246463178589676031167997389235854574045299559497425977987036337846991487314228369351749817009560324817943614580857031471939624578693780461077203100535753360486640089778996324060803168355919054058863551565768909531750650164804575201704367980069680071592144764799869622178639077189133816910623091178775825777845491607446778777261751058923699032321438193342457560304733009591492029567411753068358339573867590003041133102016535714053375163885868789607139956865783160661657346397065283101416483949503485701040647111004064664600778672626921579341329278702678145701003853079909116820932175984402025985728105907690991545986656812745042858863060494636900043413013561870752932390755274295743683963207432323079576703775877552071795437344178771960542061477095810391782583079523296652582580427315576084163042856228787373931171515958069297911742622344483531242648439936592956381399747591935117352132701341356263850135629701682161151692788637622930836173852235632149476544971247760186219868628971624140249347519636698366840459749393537940436868542455677360977407295390842365994246704052333532078854446398766246613399816095235845673762879409383720839023274159105430079503098806071152239457537772926693277734997477294366879998364481623833382744953149253817457177070190944767639547045742847165847492835258512680997195176624047533614204142745810172690879500479842068887114477440762470040761801378784873510829265103942033089086680912738977313311829639931860662344244240202259886826237808969989080307405530410142642726860151268531526072370613689025243580446875846472153204393067389194906087184104183365196050720641974825402400426353669939865657910549180858841545237837883291864964461958642013029374363822054382606077264647409275940777992792856709542877468780423484714513066266526069343009442079869770334294586821223362448339931388699747170859545530190044115794321312395971268160485945483545321344107744967635698677531499168249306113287129720056859203859945631735790466485133323988346538787427523804791715929892329477435476578378125131558925048291842232085562239443324696780835982803759646349264717090572118657597548116280679445744837089941423921910205114449377608725857903394906649549515881171846371281793493240814185974735003831843789957756010260681481740803518513637145536570973215502776026996266894975538159100389004234604275092178135659646661423708181606054838287122584906271011884935597680652557053000432740598390970015009458410023826320999102892239547968222346991990964259697309686655298702608930487257672471484628893901798505262907407882760666438713477469728120940313298202254603024525030087615733092072781166925561370879769230249984376076706884309718570240559564822768342796515053434305032551341310159583235842122924789491532886338860778324942312493386000188355997354242812506985077760466688735405301089155851978561833546634816018071091396624240252985452155234336773654938563486823053180540184143431154486242854155989152396195125347021516427173494117903516709821627856576533451916185522509731415585154177337341199042960798516164697236714102694390592513066776718916923706688886246945740717075431165695755398108712351703831762350911233932853380373406321986713499228028341366353459114252460361201544835894110712291531910494642425907589525684059518854651946737364292471713961325984391496688630447064283666153204175994792823968007916133363800404682697194049275319738052641560226476780680025811365620706890094932359720676464743247679666970058144802134962776918009307451219936801070979285893545562743560028823199777531203394335324277674834125135061420382180544631602785626659648592747650496341136891176936162220466263746495974812532411324651513282375880771959017982752656724763944067629897952487747367343008352269975564260984210152690052496112797589847233766960103678428035923335241181016195220505340002885404053009355318571845062134782172355979317086344141315526992738455461888462188002798616637494421287834044308008130540171697807225088577940364969492795187678658512831815271822629695514701268009167415805600581595484637600888145240623844982009461615143385984539557381426801330497110903410304061490506731871944207352430895125645271223838903036336257813338268902647500980365572081199880867640753307212368613745539906834723973446981413239508572787488066670793743151450530347403624790608567836807827248682603012360041700540551909672813382361491352901636985968200893799888721257257580446849763585354623933352831157062275449599826620761010244381939391619574072741644594380905097831579427309259910228113441737219069615092277168497742850145996808544531784110441748161515993371075445347420697309633910185481253584574979025692670876074597616203946493863105561725267167728364162458466424721099926376476877611776140838691406787379227794264194388924871533934734145717950384347625216834174568590795941455147171447437929041640047087869159348172196975541732899029847518021033567560360785251627524574132456816782820366506053435112826821795344584125413520074503998827022856256754039612161034674990423987416328999323381306788033075464124094160243372523766936498146352485119509542648279981362564134628765404959778663326594928300598949514719387641399099999501823028962214252856694743827916003628522138551939541550116654927005818593925264824867696062155463914293297838511475703017245620319517363633951960855814028156675911473309064098815921189020478979964010867221981829115978827238943323019380045236848515159364329006661393251618431630332450792358841050571745511877651730075321923462895911231911682252218081778842089482361330314389825449400333677273309450736266263441239830926418923861331565061573193959953333228501241960661627073276009936682758315520444357102107083588357443031115977451850721202823644087741031767210712725266012496990779527472924572080079296470965373778577583637139637190288707533303705470408649765099053362818186277684214333202204066405942565497564003699102808680717173014937027821498958474579584541894216202311166187077392190538195402703747269338436365668188984530576395692043828071672556814708903927217160601920644640303567980427267574768240124978231288683173751067243923640893842275370463735444765700273783349888232772159820148751390125233337528488564254114545102429224601347755061573920204311090569597768601122654411027366541344767865992590843980483819772932171327620481457169381050521850546803628006784618977785021776112136461729867522478174140896747682736721216194415318356122168098725252964144365549448585309119202814570227006038647774427503123292764720688492674700186294112064960604376187997017787144736797600660677827992142280194638650683669646745640961600017315640860315619546979585243008468030609809378850907748874388696273450301598363720353278484276671435298089889914722149970271423836371705564716727528410924507432897953776162697495313164335592439949794940595499902920243004709829960603021949006183569665176574897775178739185161888883863301827567828311979690547882906308815080250608168005746616726906695279437040054788857733217172592259739673069623902767811703214450885460691218771751755998078365978389888272828010852380754820355953417109084232993816858973787674879358203555029587567012224559473973525772769356661114562579259563275491161276962474916517034991068617391991706187868383172387298379702073691786280886078715196619968749707932331613408074888311688136693824351082980559219960569184867222100643747426050793450565847421255112250854795389495460700113705894894419953802951892564267747467871038676972865839190935116476354020181697468480704862240733736465864919950076783941144084768960020081299606226086558966260099185035476234802212927537824846987083896396867085974809124608338841459940284608191621787290404096395286109546686942629666512662007170665171988671816333626795718690443194034982347811537263840423471699393835668493254103602637797716086829791685779898583027393065075034293361054959110912940544667355925834982784537663405845464832951733602160617794692566740826998689391450648683968361031787513016954530846871234178018065631545732649913715698769941808441067403057722909918385321963269799737435736177849159387664633061006881629082238482497940823155129096720207522719634595578558572442159137500124255341483529961370559886009650744362931982302978970004895401135774376551904361624867967736045054163067669789890746870844215568632403585506087295293009965055568946673179442611954593660791859446777835872606454294842040311039891785273795280919578598961681482612860901018411235075855500641899164721652672099606130038733534551405718513915671083486545387973157576701627354139221491860928368240862611753934226043718182636647523768128923153790716828003173048371570301701422876502727778555707759819732673168748231499466953449473834097381408324960171053919199635254523351277754919508250602903805916671796636496504304027853219792012623486990899080313366014165807266555826080907031330962722662285471247645445288483150406509389102991141077769571620956171784096172017067769208929247413104307336916543632547442497062225936278153549628915713475819810695492943524169384455466442690831796996247309639715676670505153417487203129456374435534572233938137237740373280014727992582921276847390667430669782883757947566365343940441785693475995780170375016319440186751559482425635972775075973068726184303309638095253421622483092077383566081216113940665983919432585123806712310982679229320523024562709402756520891888520498586320708207782901581983328349888438617714562293254149562814685434592323424608756550869249691666195404542114360898560853718070894954770952000701130994424473014500336211177799893204688772430134073232303219197618623304521646629784685384707863764290063413114110950862431178299043734097150499599670988683060436518694932016322644671011576139510083284434824875265461500699671352330879764852456554848868243009796270182229460411875335850186468656699558231880072745012782423871868425128806757724765499855014050338364413172457444325179338573251879010626849373569316657671021751203946196963354300777155082395669928936893419222597564091041292047176494026018902061486552086354844475203016137885916946317248530975984841556425342764462133388771884356561764002878181840587137761597954819330993593998149674880008641287908476082721009167449506204010574804731465447565736606115372707138062521285148882759094902968016006807778806091649579912253072619878176037407657239352125431682635494947637155529873841917833656925954537124255369170387897103468258149305710460920692966703931614574617815639413829515399494420538553120610523094578607718372982443897601483434481414539847538941217379110938218675750072881310282310825331514324822388494033307484411284453419201318356419910296417480466668212309679060258716517890054754646792116242915117792632039862811026332659043849597106668732899380800607652302177998651199801317262921016353160540456003053438011195592740035462458448845226603343623698293851842997220047419863538228140378566879954541042868392806254248932468618040547514049417815438698626051013510254653549692836595200909909685990930202080431960584554109175672556378123772571428586576650275901203989113199619355987299102746371215507927233921531714451324462715099993239732366247114568523613158210653654232327104013602907013660947782819923172324722758700740864979297502726797349199329006061534035847137207838088578551278745665217399958152443925067158048057069026885735530477759293456864825412810583988144797808837786221279065433993611530365166279743683942770161963716939047009973879919973397299707493114003548801255579432417230109626295765184087906190897346933525333286474839151847522300751377949630135213071937140779467292795695781241902315708555815354549243676478361894787149960167426805654433938420431189681039178896988091939830383229274158168146886795667198138949144415230389133666898431252627000979672926387784927900791179341033649868028736569322254601736270195215325728068902132506194661671692980148109871043717891143825060853593405722033172420326053831056361116903762067260276596536293387714779943426607858458253500972175334862983606042949324615521469442171715536654929417386472392185144093410015673162924912705691983777007652460655341144836407616026652752975859661909631763858401599576435248962138803944154844134174426071097461189812817984271589698379915968912333478574847207102427936231419741091705773738595474623182420991044015482658263849993831779101276512087242453979989346274472597931994923706494764118656420452784742622900795153217290183302394677662995212999684895868256559288531314168054235580381606288275593564902334167633416885779955336272087245143281955767504537705653589395310188726044717481640714458397399571384970670617824444353760726896674638883714786468826367236370224832181090579784963662658379951063266912442196590171260930587606417343567022564593272653359746285642490892917993559009184532732717069268326087466822855106020599654306807140646879502780186799566970916324771380194431336107826190773982660078534575133808336373580618346534428178651218752776821511311268689116682768197005959322681226691208603475076395310165371102518627209737319613492139101604496327800090763759253132735345377140778944898307548677465935389107167196314908195168449269368536685598842601378942102120744017035281484463255244511915161994701839420588522917023456189050536800991196647965225975716572454734860227801158048892657660721381078104167265401337882307778574065748043858101634361942939826421153061019881895735701555543534106609768891825147343555810203374213628402563414097805490098173969953310642840099283101479298089222064312409945486315449332984253068019591085546610906220566792031842912009893942426357567783834727479735197313185706820610864884472577052042934248214902869352469576423050276959910369423973338863501027800877648556056818656763090243035222849934914057614268038760309861007061697199752435301380596932116431885687462923916512877970242327941811049073843196037280137043795651489814532396465937375845306052057149538650905609170279038029952462255624644685806158846609552776021403487751338934249183696593655419314884798335286015718310373306607319730371261444658281328574476073194597260821284699038147226517190688914420106255535679144950770032140509027308825973993471715796024311292707554541354540762407022562803858035987545090276206972993718096060906651506596372874311876767295905431163382645833979433698504445108581959491387919439927243709983833790755960833827097594195398501087284542827105890618568367702714914782332284387118511731012759142862881781927501365541112715220805825834737629661531947591681468794734427873104281183899964225120701627324960014375254865415366783718463668668365073679886245195441745857697335960400574203153455132664791754874298062727587344771033613814343043766195995930383520522287470890903688374124236328373254613404185870234614839468119442155716713661032797123383729974876662450854776163492856575045801975257640864925449137164012435359679681798185568473194736345721149542677372576330735714141408237307297320793299593380537112251425768599018706618085688887791671589296794526381580535758112977137331861382796127332811212848745691149127660752938033359078036738085269098256942176485516604988644819899974958850304806310353140843454769892378074715523523739018721935203068463834272830761597141160885017032090729256590688773826912750891989961185962846445872115397439061725733452085357685699218821353179929333071209120555701151896776652328948570256315902877101693134628581745496694591119828005331745759392760281044645124878779902310442865847696323885878192922786586337408294931185894960480771313084236185149866536879678299236817325590406638567173947700661596558288747722795439443794416981479883823478814033366128678258188362573536748006085221554404970592804192569689395555758370481071415268206326648882677682084046394571033145958983935065734737548599269650484473918686639681974985333593381431944265113437499260607388784489912137152972230230963100718241036591156410240430721623970948281616592269693895317696368682208552360419207705833311391894164638869261241116402566754707811309530488482365592903177038147767745796891703350100697586654490539229765045268484079310266331930129191322507254271628482594344600422107325080098978264439883477916016158682148839326039967437169352487258086540743074032531387120484883990560933419159642814590571527346715442414702371451007031288318937204282143920786031546524457284063602025483584697652461296710048699610441754653098285993160619767414412692303250448936242063987357129832932895218243692590342861344321634189634409873248206040019215191736607074611497911648471546697886325734682773842027800540856428444047670866594229177942192010802372014599021417637631705065834626485826145162670591538272506136615525587360465424174509146260954811524703187900097693831728818230697936258327896223685940500211303942590213305743648697174776071902740819703052107478398675541099416289988741536803345962452711834286523638053201367419658206459039036933897996006318416432567926295487349560345207980882680193266549490404498268292814590265757601042191126917098440836507147826438037459627206216964316562686858067342890284013828388226497794799627253334939454813832001409230270359940059882019973458298688107676560660503230081049434290986205433525601029787687893093057112435032007950859009048865355776248891135904646427595886909085408079728777881644526743879231532087338974714856928496432522506175168125424952522006508926872394779192773930947766754112963220955024992864650572582021682301896040788663619135920358285288938203146084590314116827010788283401929433425128945420009416488667161383782996086633359253512665643484601082930381105084928622196472222933417222455579676907739070295438720343979307131633800482307108747501319891215045437125312368344243889894373870147139383498308371236849854446429771836089949393935989091518080662835287824841260512316099399841831048104071502917681003567542595842755389504547777172488208385435562622295914317426357440612389448947711428484527822447342421569235512964418787500034932263980108238614665453421323370358161724780612626235920757119255311997807099294657100906883128545010298355915110198519131356647961513592820243778772447302506587683994245742932749660833856439896489758379605116621512649366921541056925598902383898958419552909901936820015187124689720833684908109584927670686165446830361088632426498247422065235140273494061794434048218586517405283374381212011790660893559357313419214250740099830016728334513010595174538873830046558211885208573373795507313069890750434112644116378847132475291397516714685686885908021641103857359661708231311541690207028834019621813222799410068251846386991278862943891837043575317814075283618807974125791835153282079970236887331786199473551777462851769775681917688413280483474473817197943773203774292114211491364269454955464756097810811155628479721942578707296787936671471697953748867310117161334389711592403822487642937695881648440282713596214845564849787680248575150330812395842336554188485136391354645245808124296723260770072561048581819805868125901145723029326091988904119716032838136611935941807089294307030928548429048647859897994407326211193729089995917722965145035632213824775030303485043510584090901618358424665553288186142835228992550533191468397053731912374803515760402672246177844783198151270329778365492775777693448650552328900991470655058318591258679854171366189506617505393056711631606070623224400360160673238196232130475780244116925797502557783246069664087956191146503055526863440565087761019067859323063606675559885952458869310040739911081228162509679152523520099117903463219014918636262579891706536253890700467406894268394858088850516983231306465817606320563692269096573975381113182662429511603730546353402007384090578261922504195630988681380142117326167438123765107481740749594739416058847517668416171127344780376396101160005244888946018053476283127859207716160058301477474418033029337737205267980591089500423385308042218171640167867528805247146231483345265267266634853809653366096805998539606561631284624165069830077417672340650845023621794281605266284479640307856425851134712170477424568355103049085849831543251325474139207540046392220713873069150859759502043187639195642966484096310388795736638707173519906576902577621984581515915550140879805871431707145189114352667400553173545922229596576475078574222750572378522761117658623749958846741854767726748392047676941785395229613051921002702366752588277324294568023531077606236536839530325245690757577363406094388940370637681527625780332374541204931787502747133319965161963441721608271053844091474821939522532712647857821521769916024508266853489070813897172232892222358892566651469848727003748258218096935331268070444554274403617228405594167900712715765566671152433407300540603733591768063838516907373061073217003629641715119996503041435256755103684439439346608781155777219804799945003817708409166630329760788989325788917885533653945792493046374248290084391521012366086173848407055739127233771713586551985004698690432660523337389908568279019235391111433472920675491792795784648282169658885011554941246746077143967397102217513029494950257664680917313120036644798071963640991020296172244903608440490758420053286903566871401121597704355350911631085742037588777466713332669121783180457628112505008283068535016360179771216827440762502215722206198554439549986236695938073991547692429149105094062062550510650935456153378222879251594004707132970403910207019408530624329535907956261802762994030763927192910817955821701207486419977244465768720412268534375274356571215943154060664665688686433605246928427829820076928992856285347343681880036550850387153858219076176528908430623193762789166205700547647300123606776268875600659060423069410840188939936308738627265216473952169965622007275897934248624844744367660159520823392365913355827140752378658043443316935222446519054942310018518519115854322359374490783592146065602443351886270759411413459837322853111271588409359324298211950935741748304818183797400567243035592208319607214278256254478346883388348726442920482860737976442634752205456303048044843359477729305960675078790926429226979409290460155588079666092953418818375689223417934368473265502252997877279420997230038418995265299594699267804846390890186585576505473266190677302053858467814984685233201544083788715984204928007968666932196461206047586193556561030515845347848864873295232105632268789503331713390293008156032399606082358103733163755432281081642634445624079705101878385853852810285484423731768545611725813521830811710094506478220486616043567428448246863259549747137177636283691213722994531901154380728269681759740601826639456143686067305722460606350583921379439120522925451389850545457429353838409533398922555597127004166755247467015643532052402055553337150429194817224781033982123943207125245663767232227817641551634578183625206449886942795709573671264623146805407300547945622074519981963273273991464202047948178808148481525236882006819231325485674286488104997061734852070738389227983672344038917239674330804394072951487766089054208551551529482079548203358987871813710413380881292013495259144205335568346668761670179585603588066598002706439476364745473001394140063561499091414746593984211268312856942182619576703026441041931493656877200408133250878780722426510660208765383217529679225098558073166847647092715190030397654796612748991818670295907276423767152567633917598012493316389153404104046283922319082237923442380556044284638869102968241421481469862009366043705550092127646428406673389127898895205290702735391903704130420105868827852686644950319468090071779896758866256051199708286034531522945521995152174770383433448799511498026301253128302215336524803345289338132389520382873832355832723168771254628113071336537692208770292007797568482862440761001656966291907541124869651948042954284470392976633122575330439383609815755717457587985196031432146009122024989185244637492617047412669859175522561957190152206267166978798495388488485644386047791926227080795328541273655467947507088141520689620011372686411130240025585434484000335342904897767452679775011917291180429560749037331495705984948654064981341460082504120241418311953183589012269038658912340980544253625086033970564744089032749698195292561268872075527786405488378534667739725050053451048182171771652566627733549715002988093063750438360652954844012008705931238231753682347754719074235993851918867650608561846300776698247219565794509784881804334357955346666822932121698700477434095624458712570148790693109002677386646647813397769167738041859552409669060958950874567827064240534740227775456439019028303674472088334153565114165345724988977370032491723458585468491376478138118701429075362096204292945598744066969174317890588772110380527237546674374611411648961613735337001386977035924851143997396014240797759646774773895046265908774012788444854420426307372589133110472153153502422488921528899914417530851938009398892177736398194652298837021764070065784405065659434539230495658630152504152018216679457353115966472912672757169357764062630167369643340743939031325356920514264049516541681537119741476141254512040056292097573958867727156412166016824443263460527231796235892839794282847021965891554529370285511548446642829312941242251128586583561835377116592894951585885080961358772162927872823602477360715891728460038772350643371022092685813533526777740305723364414937338218027393543658111715867738075607006258802670662918673546795433085791842612801154125748845946769443384567764121468899750559062277593633442095074349247770858098508249946437769961167353140683724246197568060102770395845447232815954079059844133734454920359820098801164222603716540843457494754677084418121211170427505014686758912256941507669283261749785602671727379358087722381750456481083973208419012379399813221886939724132797595658690677276387016165512494946370838247439746934533295727801849879560051997849756137359935428517139049167006838166360823012667850447559361606305311483417699609818892583706109589532915754740005752408740770865501737424752345662924294716350705775965581871576808034789016597273716531701349775770340393454625405026578747187956630678396248572868465666836851856352642256753194642479426525912370181261396976166952576776496962836754943903590865416215844351817773862657286155912088469126934873752004259314028586204206863850845384227243119173884904782318879949030620769902426822410718677893631715954297492997952580031789438564076679097599556204753172080060149972963122284259470682578990913784539227309251025227182959023904622881236416091886266935197533614136785222202092346498233368046576552522524124206019838736441396179739424638386090788043752368270075937018193007589380386776734172990180724227938733879848173692364424449404711594362723744262625394543197051301989342636903276962946834233420236745373814405296865104022722144112827687222505199811872194546781850657796865297123429148699831608943428391800212941961271286161814344744310692815892894585496957809351633737420309314594989703622959006849334348167821363594631365620210737710375245917899591593157156581504303823402233930400624735946528604591407570790623231748885102207113994005112101495091601918932489161331914475616334473487175513744089086120137856311243034920417595711868063064541320016357197976016192751632020285706824522628743703845737864411423654674517329866922156677368413902490713993758243489460980179208184269162358752008578350577047369570602805368285859154026949209176962023706501194781355195970130986494903539015091721004169297879871022961626810759854152590574286853415767253743864028702511886077071742333817754363027436184130273225696604246553567656797991288710239610789110495563051649503733317471524997951496558554458020333233596218420309362723837400727261089096378641828773249086567986232876597202883742521100597270701865794157873963083043273669989272393738101286596032303614322017706489313471500323841573065312501365478845971837500436673297913440471886153658870402815794731721605959112798361075171488042901530267550595584786822087688481573464891034943636793167177259072686284402907436050356251283223157617127771436998434578207394365139043705730126848903742436399007281201794805467594860105368273372493200705840092130632352585648389087168581946889270279086138628980491480997286597905974900894564447449908974846383113897760285396360205648187206066572598928524440174451898059576106185453709607457013439201953995726420897454518660348264345732590284875260549350237803363631622342850607938616532729157270332709129517436470960278040689824366420972803208354827205611379334657911909164885292105215491681108912813954688254106985727759730331733096400630089101968625414326567035229789279888682166276825213004359602947552191791679511437048820713427473361877521803280482127923748365647514694123655613616384436168995791156521319894897077551939498086445289450452314150334952207701198632998344012037266627488626946618752924186382066382429608155077571716451531375021612268152616654878917640758821217294138580793999447595710497205333158027995971754973686439813179047091718726233025922422113518315152093526229622938648466690033873230113129491261910208597320730516635172246989652310436688867679906033686787277197570057029818861271911320783312174384743699182247164841870281972648146579334693033927657015686317734639946828509394302798219401483611258246772317523625073779084791232787880150725994223115882990470589246343426030856214958929452579639937779073022654037879523951730493287184653463493262547847001724030657121482676184708284385448372512012221383016380380154402529386070450032648224474862875174082304729612224491948285117098888250280116476370608523227191854589375203996587459256833360623022942493582852574888927912454937993617734694250817121219169212245592253061242136452252582677048597447799070183821533062603348626743146630644496138941414299774921383731095781003864755627464954300099716441124523573019173891123162663337798961253386114120185934538065094450078311297232524377296504850716441087695576403095029180809033104944231812439770108005630756884988302490447268061408038183142656664775220492870886792240740164265577427129035572527512423009589611313979613057032205099330876657327289347477792154820694501262943656352558390017810121407096688494268021024469518635711868124404856473027460735206991365881202845164234042064034532603338472680558848126254800873686458969580493691876403564468375149453430118777658932396668202914401621246771831698875690392179441958628734061113106469906108692327242343402516515509692029918163490405711190026828667123779812946269928041629612718189809557981551499261268020025795990327107617573528693646787764962076405685335701067266704471866566131670893312872135160386591938940725396158285623685828697258587530435851257046586030147598374733009844706639322681262996918979681398707233391715911581385225418134062504174706484455400874871390852202856784239775863943449135194892430629958908042222768183396375093337005935308472342797580536413838055790546362887740123829741378495240528841079644643305509845189536453349428634683346345280947060382649685260902009713970207929404171737624924189073069342592603233687167085517407225888178919347818644826521229600644177426439981237124929970837554138191991610198869391545235444525091110537954800819027846562103610283501922023833525471358961279643532395562227452948932610394749568943369794039867739470452834810178485882460633884923781511808588479338618997601618328667987567524813073369008921120465537556715003800165706104310054757825277919471911820061779332294999425148783583930588191694866943460295087654734971020825898072067046761801217633737734899310483718577838125874134491028466305465427866449246277206010356632834672945829935173587723518397088104529303013772231906844275457413115251243477324538166175256631508654934834145575048875156182641092642061087250260845616161566071094557851654854354125001489717585051421972556526746049391488522026340297288737314749729735490918143185871574094439806112533434292074930828479745220044091760467605195077149924787231308731859373938821182063617472146828912792680463804453904027949912869959721091597305581002435059515792768280589213820250747465777115762599207858753513983100379365505712138325699720641616294532407344139286443818497801389261769633230986659035123866609920483963207329153644254026146817453194148078187855387467242835749827790029083393251903822138415485241937504249836496687452188910640114590849327121715085894052955378930208962110811029352256329643968878153580209071362892685081281257433980396680380071130800968166782739299282985472088569864986379687098748918901929935923233358242562028535874417640569759039604211315028518407805115408245474164044097708370776414241265836491659708870157146014395293063992874813173681122262794862450152901434649423545364654119285163398406639280912685405412323765258805525924736250643902482462054481400523077553827060605162518184264815812148571643943871027950360025956640023174115545358834662828494353868260318617517811688359597393161635283207391843465438485962767729611314289150004017925286928312221572706228492677183693078260177933915105007825811284048735015609358538525898423375646481895402938358395306471368572586979546090225413677513020147721217648885274848678864444595414178313630993196619992314240523647062011701587898190692797567350780579852959197144138060602951254067859204774156584678320160906037682901771206111553104077029589114239922460878562442712968169355864988618121176528104806837831249465365608932967287578579363772954358341532518613130487986259200517490410108909464509255756623156745645135574206007587708193676935856828345878239234097050093735691161847557861734988901093316684405064426865128408946490853950075557455725742368260949813142742272934756299744078454536012403825618981858010131653561735506697342142265808572681632277165381323242537929938682853160909219552373925324481888557710097131435287349653136590143798958206106255016463389403436968487240429766339965747112609358603997430336639205655276527814438054939255042503092911744906424764963944681120737382244713544746618644463450974990847119749796065374948879117812272828051042278375254667385106530291201504199009628180298656820015160491398136273362638312653523541375805236068809178715726406195913034446374244865344918645707124983970025748728229691226059466916211521831847896516032776135354492838689890558192143982025086240312835200510778011021351534744919157702515867982451981774809921262625792871589499274844204828329615626660925867621372884091908551610876566504380109273157688691396013369565217024919483421936653307413971810567626037712972518624590202016763053144120264258283005365974605690220171082462252722582787512875880183542181780210076587769693369969829055535177866728696301951349015016170896925951961023827489297429436511154723168799192070638781254224137887103843383249487628703900596980178009197032000117861892780418060530059984743284400753206574239932660855575736874596901405001802659730237861258625488896447036552493332777481844912196178315555016329856160312019644568682709460201372866324767597115774280963039230174460699175782920248873286192973800227922679719078621093207540512033807735084488190526690262998129358751822908694031620210372214867609457938405087352744830999092141615572778108297447251286703896555144770021616086868581648898759324888913328717633566572432976171354339582541181104717473373684526792557033458819578646032035270430545617059046099786478271920538322887160804134409242279974633199381324723148186767521432249504637434948776299146307715378148658158566080532141606871790044560655907142826550172560289226309326415803698197145319478351888747595214153631415103697447365750566216311570656636672712250201926057957172998561929673538184713886109738462237330048474951210782628708357470053627978786917274403645233137316017942348938783505939155133828479542406266766214799915751237824024275808018516658007326260906560852309350786737544458298588294173250105841513315407270123116922374647376157735181254867909581233613328380915239578464834243943739181051490922469573750921150951220103888145735358407197768788035792346777259494964857735721012612956676188346949605235348194079232069420414758458625925246925242382903527362409025355377346429421136711764056730436542862464650472944655987988010281133731689093399642564609064050112030640981217459143061486785293224363396450022748653826877762825430373373364688071254900366828841034615771218855449194144183219082681227383417648762050841825073269930843543669768639148286303531265964432016374110384549267363082258685992719172632936389044296431541134489055068495805627358936173062178893825821391732789252609394273734806978172985148671364523383616121135294712176408994841984873333086087945953060980927432458123596127569336121218577142016548872991660970750691737056195912874201121295097596879872464465286115781837085334554770508640702892662766101903759022939376931287805617765588288776790483113767520898957541176218014925677683743415861448138674114719654458711295912418427665111782557236685774134683708603733639042311174082195527035349382765394336570639431499331487934721184645933619239279853149571175171681663636423765042865393076130930121253915256925791287885610718544572675635406256561250221089758256722143414597208478518041384049451880539373617471300346427662727787707286575604510850791872936331635338856971939296786770237729560200531382925707793565607740889513367924373851947367177490975396310628157149922116772060598046574727743126827751924933006603615819097490083544943152145675110778031033871269019893054197897060172015136559295252934718049362843114556109621282622949152933280726887674387755718994273176911490171159194947120131045773646543718996792303209216299116574513155037864407800471361275518008078566261778840520081043435512843125604159265204868766177577246212023291681471544236598169649850571201803916707967514181241053586998020300996798074518730413783245726151553792927033946125002070206550095106198158776962616739895882589797717097239820444848123288577492523637946615114101914824554236522221938591577726480848958001085639555251968321378557295345681028014968152112183472848881040445036553830263191161607193192356431918343131576810581182680674141283972303325799615422442005816887133146113885799154237238448784135549920511189372739380092816459888992833269709653951273166134377791936363322294099992839560513223334962142586949394081495218054130724369097454913020595901670068453136740655505928950339933889638322675339941579964065036844714475699831541138424706847449210276896578505565194580779098072894482765721170756032083446716955763236741819570876276206673750445686837507417333083975487294066673810820686512534114716674616441414272686263319801302010741541164594301933059420758818093420596742432591825680877494573019591434567019450708964918455416563802227932235725722306731136470459099870333754299094882846035947164928062677003302737147430105974794074704802003603920628432838283732404049644128838717567114585199406711971651992295559703431610164691159893781404187002653836327969455380324502895738602697495689553385865779295693131437992571771164572149620300526549928610692269795851206407787268222962061238303538524424971888830292625543194248122246949663818486669459455672456951956724905473175383120206967179776509584740225453070770971378085825952421563751079143048984205351716585477149745762216596985459716666604461314144575606239654207691273787461226668261951655909756160384325266852780848532924458811479111892934871896965389998653271282748956165069651537323831084359776525414704641244871786497464117836923392403041154058925447464435785887570625708049733224870004797158455405426417927200006300436080507907418269315622746753814311768063308187457434342839205483891572617397395904796297098947553141033854978020375582262908742190727971538420904044165596790733216421506537460299087684307170867372939779336381667428533691533224892789597089292627914543731760944171784670920839730294745968012615773755204927572802796916760330551760193312071493038682883775894994710555016864034905773703711274765489739355597655622059722125722064065167155822749884365069960706160255795730475902910121688990005087952320635951648183480617932476190345759903543145397382876078430438721401488602405221789781728651862557620469554488127300229109474825519575188881469909517295289894798415692209979831552010137223530632127384926134194047293295693155119923449592919893752366655925788588716346383394270157141453121983920784809674071647922218066042219627414032484423416896055706726184636264537767608607501672897416916017980574198222649560152067147534215320396924538203392068254118236719982518278384314914637565983625693797220026886136986846279335194701993592435910110958791555404695758560923048102125841356476866069968835490678234164531801720169073761146740641667912068549699731300463047135494528153832048872721773149043741087488309406456415616923402447408401215990829510676056354692516019795546572319619229288662467894580722282394566910313307978119452338690173447530805594612843397139801566587268088849052619465097934629275856110797515227325931688809238843866279142953666267275979058576057430530789136878929359250261997775035870427223908941865994529201278241338307561432415894868783732190654487460915110130424880157959163254478273109381914412484924471147855535867958289354073892245297222648225876459818047012882235758814940541561706443335600681672598068608882229327721219941552915943316219227391424881194765203455415961464619731159569410553323465129705788465824465860603555112468788719269567518479154986926725904027693098329507495534488486385587184914436646897223915066212988734117488574137687225072968322609741065632209992898556034733061978266656870481397116069097138165448814081065679999352636308248837411340170101840636832298912430976703949332018253880429856216347098597543312449665984018192474854378861818368336066817614284832421315878836330982494340747909124667823191353097098697495203551438770629622423225145431129612811625298211376032542189398420718471070241958263842788280486530004689133721881106718032849336808893456144242706490673098740277109615440708800239657077865015092124996813406565159229665698733817625426134475161596932822212581913670910682720061226863842343536433476536779419261320345749484240892892777471194549241034406619971251375340270382462099344672782576937845960955550496967191739497052807822919912406738705726124265080648651378579221488971101861235005375493487795398571637413396094327020048357745092912798446466591292410411251195533440599357301599360688587649561040125179026184446831249981129022698885399788867809657068099554430896944472297691723828756723427628505032797218874995490636913415557722771232372219446869880824240628226121256663058735583865328995913897444466452157601728167810746300872321965941647832423372108577876927039642011004975913243410900461244128789768172305684181923025231080100733646418856240532620312734938473698847480240156616228669585547021870613702101098496493637838047483018682539644855359422546451106949977347567823556938885966173602166562717619361616489791301935171285845497096248788413192776314215629845938037725543711740150799940573526916775048529748028353855554891266511790051235393038190115595973764935539188277458471686862578052926827321540471590454600552658515783397351487716910737275150895632195518468069550267859764994995213642246795340989855874138570691141534067269098959868962771450146532297657970166112055409528201921803668099732314006978538331610279465045467862408187260724928050662415775434355766724240027453064645599809507544700506016987926020100208510643456715357431315987376853093070039026231770018766247171849253861334008170410037798653418045622298850835275402479317750733393397921407463214687300600113063611255991878433971739646093573228576763017097356924729755944124667274314377972291041868899283540223265455721670079626764982238590337545154507020010948733941682300702921637228000352849380741216668781205283699907589487625793317917579628242226729609980863738259636735413611340332567285201962946155792088619960282470683592811041273598846337131925974429751050115180913800866323836820011384272444138664789033057025094868993465559631493243358135683624330204977900908919277027337446912575909161589486401716163751084616073107083908046324784014968555715395872300372282636489118572141071765798401461881258969242745108161341244631464440605547998395730076819301030775237458035667514821053472955855099659069944640024180505199434291860735945274913540800514005603648854723619027605329566924111402255054654649144621020072476030709091205269138547094052377995090341070231442888586792672209763321426183297316943311670814367267965806560480576306678138776992811143294103264777549697036286117148322649948749788731793221356537128353152472394332805339984109711284018406032570671786870703759113897089602585402901563891081095377786662507338677408394273743959972910808898199382469524827947858631718873570610412176343739675457268784958297618492678508051707442741948589166136394407575408816462494554569416507296500958238847587697964230643941769176757753636314343871159197329269326866000088541084743600727195644833736198447100635230018838935661656941609644782856521559162828410047782715565873163023478191663544418962536846130312485897423561493676842940307334927329510616530929404688659222425080609284037543121371706003187631928398286897570433825835586165995489950091665161085799909732581975462038542679242897427702466710615480791739849817590805238260507340051447303534411720868056031346209668253241963963871909583931536666061869875531574440549982533734215379441098132292632816349081616449830695540033543670029295635991766107138151283078242870552078125606204377071367326646966817912323787249386305999369010538945673113547827156507372525802634992442881743167436328476306678449688947565776383728565647703976850158204959690364239424181255708703676228579510305036833432703695094218981567953241055194475757287948176619519246173883142158584065332650277331116821125352171621881727930134339868995573864418525957710301935476259363215681059751863985419038983944742744627973827478568906777145337034013772433337922170084215698340023093882242466769873277720713390316566843704670717629460181110709199989533004945070556405221031766295805019505792175606190771696142370854339628578134040200579835207713779487823222338533512242681862596319803429713440645130631928404269430477867329860656043496988803115724064161530965580980512218439434288790734856441501243016473175596000130071913198841042812174676084729111200538645841022396024634743848586752651893483782119368185152054245481080619313623213319372302993729743488661398366723202724058070568343838047634007267606906674332104795552099145532761228918300409849252221103709734097436614961018906919627844021621184466342855692730242281953128836424537863806317774415133042199301183029905437382563562547352704321881336292994621649004454998027501438805479936636165800607777474847347862612942369829636043901718682910334223783659274264331879632641247514920265355984846281268790279568737980616074410209546179395567426250007442318545373813045827465718237700240699132737351955546361762614163206880497955707727708180812219633180758197546073199949638565331411461712228568423515925417502479142665634885623707136625005079798068391952606146589180448195123111129135719098127674676485027387239638320768285343669031616269232606495077786928220152863612972311008303940089704606535912460921475253660789295582958489549636271034773178713821989587271119614825111073762503773570473356438423485651326556852957014840753231475297230031840027887246331926894369655618693797100549773741311002401412398027596987421605743162143367406967847929493915375982626064846753583107946341121799694433398418588638347549489591303921469486010534879411389340581538093384396017559844353946864494416010042287328266936059562305388536302556570144304537826544468413633837355926308671760538042814921806135634114378142444366734839869662407606093371777001275358646418495517345881654322108123600305522523610070661386038735066157793851909815837096774782608892769778460354453553251502060734466117570389144621560939442829213658788779973138329490580015921147572827906651330330373618369833431977859333226589025838370345354501083081414904610415013241929312605972750129480104899016497091148684142443096722803646129757948632686280586649203077443080348770960613193057670332950358792820288692206004687729036106889980510080669124097748542804650461435131900193478008029139658302847339359312462567589645596784202651015190629772662743740068686495615068206159526595914034513364155352382679955850444416265754024734980190865424719385165775303539229886615581568803593191252997830468134504038394992465138249801755729276097190376671654858576032993036084536161785773569311961708199367312145393961042723456290563184031213615377183041338917253804234544187051767531095096350638554676842298469003176732820913479487965563668623987673232963124064683230130686525564482219665460660616602284359750233807629853946307873513128700674907314070002328751925708240923852950659164173378558832646432126247120989594881866441731466467907959952236512656264171620304635428167171363604427057476193752241023917086927850564347582716363804350786997694087277303606035585304204802789517555444305795583374416432329438599306270831803128015434725593413167644124305489610359382621870779520669643037866951030451916327975978695655289040123560849432594386941081243620536344611694090518178936945872079912936442213296022344886468513435701322437833448766072360727312005724854697188694436941826160712155288179214709010902855924987662470087674540185911743353375028474899969983608010883167758967191238667280206535288619169863973959454517351260753146657735730310137586059642175301039444205677890623348560219955745745221498028468920574818520739699749989891926822197796043591754182554145390583791995264742455817124487539588549483367561395943227196360961463959519607165941712295493608534173942643514978207145839106486174161429050467276507937891664357741079944914012450214465800363103481530154375460978118500350359435997351493590217193239565049772806878370930929284061468227687462230182802456395789559981296370134485948466315288051342548725409595506789876303870263855341060683970010205853908545447937614860358638681857960181104628939486657224714724495877396806197924639255118613696234302617518621092667440558082865641805938337418432708333862019873411933251719533626756900801111747256652026133169587340276002314344372670159537832040838413704464738208777480910293776438965610047920524605441311665614735769232480819429968358973225889511990235174081399897654847643672644776776309012888762073653915638541938804441160522722201022658759576136606743226349593088824887260513466948058807687825720939028872465123486381490916891779617601155567027630631533072429285141937290974062598268676606452099370044798790812225696075837198274390936496065891400668188069868426924285769771640708649335025549864840925062569875451983029476403842440977151548640334234306875985231856414809317283918845762314944864914278290426268224418707254439240333560620707191339891081418178518807243270576729916359074006539437369703401014152194262387677106954722033575681797996350726604876126478852696722153974629223363796028805352347704824343560422014034716018006309962032231587756980693074431825649779082307671358938196784581309860942258863919474202584079730076289920697963348888306997991858907677546946244949673538268827088830920514773269592044207029556862151365330666030489236284467833874087333415274244246364571196955704168916664255439498338642104638333633144244090991108848498470082041445565119439698298690777674367511190769574457653123498518271066028868575169786672093579433129906936993657796888137119927610939205650820007751984426584522903103334494085976801081639744919888906558020807122273209885071520727980654695149013431555201911998541630419472482049284152905985122449749936863089472171810219585702167045210610926771990423491676002387385546598497263987571137103763709649399528331859072540514211274004214986832336853470358652702208866832850228574035343797224180400873270639827203823933397902471483203233658195372916499320990895579135597233753627478574220138585542858085165263162112924498401224344007190540852596169594146648676630296058735882089905020158768756604245987982562731320280274637033340828217612548967583091204535461817403000831309788274089982875358369556219394754731788338193823408623950272417821965926339446033153050608210251433298050776924154197575451324141204738938217651414573425551333343584167316786783904306083896091340457168636887881177678127911943956040800835831411680399530022170634045587536208690851023188389690846870400528081527795126534554853120855254222718037259576412792611847237072587605966998452041915998085262794116292743314512591778394422642887643281115772511384674374275195732852141478926372733071658403195517978658113905720476766771749329794682716564865623707180991937442830626343011440437256230823960702364773037611073341669903665128673241663865078822601215666548690255774428182552620671747549470681918988612846610799064779167476081262285022998690639168068220825286768294336466779248787404498093380901190981214397030804389277017779876447400310357420213841577160986429099318381575182480230921079947901949229463133457727271613950519764190230687571482152457422911111449268359879958176978790776823902970006028305124934796284063212546000366182499464430653474846426587670500251169985494832511523184427259049497346001902868308760124053703257862423839262935900718783480456912807891286085024229896802648723088203697082741095413840960006006757120690139278252978842879003012697121815380510628135551250811621002570903146632044106475662252732968876982826391461298871280691257804286492214026937449903041118995233379009795849391823237545222938454711760997855795752781039312263755709407074008222040187710344611638466438113166114472472134654452675036761925940794112749302679515690368152616108010198559110553973074939172036913065492916342040850463256737984531196713722302546150549315673938711037347099907549628597323782083358973799046853618799785271335781127895777518025440002226164250882603541154794722950733930318153468146905753542928414930916863760823585995326730538052970454365806509431924178768503941834067915330324691638912569661656541891135222914850033002761698560614749142550809969199385711868978313776752216587469034892651006465558942696320109338289423992357995092855295712771118810169334007941190800726181034379746083984192778814461515520162138364657967008562212344598770527174959449738396881703018654738634508876459450384536181084372123667944523986485848779620232064074248528540304712710381738692685644533048811086388852186469761511902321934922100902818583457251187205341524384479344324599770880017823995684103273209150977574990970740616053870587862434329674286076473382238351815677396022028064284787088546920664194319349602311971082271254153299435976183163635329768453556123842124907712685916106001103565573950251851619583070125145046363507533321374026675667699842956361485624141505500412865054247753602564134124335019477764514048701316484094334651605047568197873997257955265338937269691086555813541206960925903171261339741465749988248111927804797165122028310754757496052265568706833677775614226868992409917728672150259829631312044708647892671647371888080068406999309000620989328221888772837731117696971471776030570515138109100471855770280248328901488489289308941217935378341719233203927293710398464539810303287022704202841563713027056742479404392410669980077568746215216865226702414306698427917761647167141981046260765258789572538016749483776427439006853252397716230320134501917515142400500727266808350032061267721720233651463468312587076395015474574851418989947263498384788237303415614747023606126067211692462664165113378287424762647571842519263129355264886331228494096374978812885695599647458071524176948732725392115389751421083807214724353153733276418098322723650256961967414922376589055432349448403357297223249069558363985949335444962117183530902987789400997108458544530895093256049331638449402363028577918991681377740248240472308764026910809851029371451431403071225311730104257812881762911181773242970449393154936977067610759873222665064685697744837954731785530221535357480542176449970011948840777457259177290005209425254959578989004142246506191795009432944994649225872059368592883120318003476800985610407065836664288796232645514769523603125846146839725276420109293474951655611298117661927627877152916296246008961274701818531904060849698430590609186572448432941197497699860138244113510929103180623145115213491732790326972788311119332417952612059961259779337730232274618374978536850707699383455241575089297359084348335079596139943631895486734326667911029580398537371877013294686568515506871637072056255367282480319110094870686188826301319136709544704696699903893944254703869965908268602885952120540908183515089826021447312356429548179399188398013257230640663013935057198921833117175611497276308398415918983179027719571723260633070560949798988445349973823121182596106962366946932595519986965259038145076377035885497124971747253237346103874105177716899989590051718110657169312165608033927594624159910518377894551850709587377070945606274556695490975492433147464033821313357517606490484010805005464691202441345310260364756606012140661944848347617109462946306827062750278965139289203710392280411274471598277838926420591171775321008787218556223279044598564092624658527124285609401217578893949270238857735844964506407386312800156808642797928875908739626500592880438525156157315855763284430822681952327052239156068041018677080577447587316113160854162003100818481032139359756343716884475429055383150498130020350933007675573960700770449256095665018282566516147499154709402527386028413219276533953177094862530887179850870431589675284939635300822917090081409718409062066626420710247795129746357434577835921305386330658878156906820403046115833257623320959159564352072302064896080612658498675670795376640759598035087609769743921015593425038072990276769146230837043589874936254501349147621751719289533484494103252934892451058554332080359065419283658450638943911140743250242678727949105037699746969729292020008061622542465509840118866748328745942724572569529245504138669122094798578447844350014032527099043831186759477870633761867163736368405642858231657978422132908040612754849843383621256416523884903281572009992587009585592920154625279513373579169096060412905975453045583744864909812223664923360475941794837559398126530228680485928553538270976307764181386804939556119759653152256400851288630221639251420096721709606907627430943349502704009685537792039725665593929802792460692538434831358017416866866549421033085595915196623851170287490350519260287079896209494550565854073324812918178252388328395857730391023762787872153487418979138618125153911676251604587110905708115571374829195565019061041431709074233844493460036243313045648919599630618950402535235907951821928954135086777287176386165749462081016728360754181959077146699124270375702799873914617147842112981767071051455974933686731495799505627607058188503551340931042865356386033167997890087101406638218013149741675830603983773205064143177483323320054096803603864424123344272378850919029295285927901701830020805547396598370414912071496428449320567633464730999996535506500892941121900591660649966541020619741499681194820941224945242154216367548664729233140819322015210036232677015439576664980578797525442607291639761367688125033433927376543342516912169443675290732807048015889168521352661716554895538766314588686715267425753592453463337994443222180420831971984732412168330814143216825322883876986750714283173556101895460191237725256396616345920120159989140765734173893402575538531322973791932305315380367668735528134436280966103231623375347673456057887745451056056704990561686210705825038294635714635693254897206911193060262080326417731345976506861970650188825871638925807340541401445322825102832512265113754410998708996108913181380379088980879211632535808153794027760948391758210606865473625758275500200743276352191638804079222125281708287798381954030944656807537013465078313822689277217018600390067300931232689194760443722587293298887310679392407257226051553136245711965923996344567010743916664056749595747530362735646950111815539611662676216392272797414646429562629933930172407765600008257768737656187101384822490574093979181720908661763479603669098512016344105311144202387556115778397150524794200930251317542055992959747440927497332492243574269615090043647306126869400965590224782188296599346688318397958131606565705852228586739460136441224572608928547949744335480103283750665240783986109318403317626653477926053935681207164465431679893564540419955879836477248780471219698851629791273546909957115374774686834150282217796228004113974789813796744783731899408883661219700393470955860664623386643724953212018438104353564242616534767840358400726919219766531493967310436197755627289040300700492783905207621366173546790818838923880757577761611110731203398381749911844385472403192279614795759065552454216997164135173588188302326890742070722984202251682911120271620490876896233616316420572844522804941380873644453750692833490425789584738462143915117615205080169231849807779390612800365390739776266063136280936686071406755658022377707579535079293846588601609947815674286609904294266527788652444965617454717158528275583976467695206335334048517124888650176064267737445190480294019138368027022030296877234955637539646024750375012468359602361233858026880621375156641387226482604350231822696482044243531171323844169395299945905019229768713509086468741604288194280641996736826963100770499294037832323232945075817435031441800470985369441805001238879713086931609186614589251064917261863415472210838049487919734991240033462126268785022112915618947139123913905187843337250140133311074056428257419878304766120977312594365497478120858671959591724383025642030324369931547423661211573682327116563695320877215001893135167984759529986588194287645586201659098883906930482020512323903719195666846375073285538635718715243879435952522557634732197295914124905775533217660683344296440105414745803060510420070695628715660855704508596614457531490788544169287471478920833217477652397544358139131135431233562984119233895057266342761845860028342350910985227623299970259064095606062928195164374950547595543840235213680906036760480488100655208859228942928827592823014403278127728781458183505131374612694353129961610268517769998729080109050875088934627373723293163673620905272680681806446680611807886557154115852991664415411276638753812721773576488328545807290285183446851806524733820840820774177429995373607443390167273387182459993572904970550295996295154406507052285540373171550410832859448635835811379619575853535073891499231395394874061984671514842491118065748517850112147660538862865984387730579006169366038574386063639000001783167152315801888052691551202053036549800178265631583821740021256807721325020174577099637415925728750254746922846061107583229092731079744883318795883674544461298179959205327499277937828128845277106765499327021962594734839277454862033628296117766298358366565446711753589633604726676310983973047859578320056651862040259048663759175013744743810782838637637478334757062514683730760475991817996732633757089537274769319727102143504086644330228387275142072397445374053474237605436632008838144785918870042796151583510073635969080339258549128926236730180538115044444610526407999446688372649260669224792088637228783914988264614618627712651328625973799283033848671209623787765841989943955815013815839732820703367534793130082199132745205852726100962110362214022010898910632436827510191844941998882068637365261162207801780766882117648929154778465042127542186504488753890054636849644155032257265332279705876806359288527883849351807886954480477751855371353643025119016526588151850885166651670647635065679502814815734484725883789163433593899263783898075728838368329574337437486242855253424221537829803996616520741534937392537087487955646579413955893558935776221077687660557700002785618334235630718488605356800115243801390992259593351933294836092253033245689121109856016945188873132471549263362476306778427980161852356953624228428830771780668893004676684930237977685011614442277404039288263148936408806638776596883894024649868214161632431956611719314926007228331654091142662241183031046120333230177515822285326578763720639866799400988362434286131309568582627254112945843615787467715445489287141534376059325090450594146882548412125973290676110257269563605405672638386072845165573638969913117011973921762291339922379263611393709669974133582935579709111810892624979446462530875872916101788651502710456677686946069341511913109678245273716208731654899525036415495394880348669359104910559611808897622179402390733204224681418610283579693498994288061890612317805362519085746786510465341471993585772356851055902111033513303964141614171310730195629760785811605155040170265040393161056783401066111964971311586591604524559892158656933282034567588442103818007688011379139460447337315918803239510017160887806685094750219781183901075133647840367566329284689377986248964433797880978539217042810390631802274701061790760659304340340194848062390715623199822232047266957700705488338938283240454552458156693166311000848817269158033842370025919198355557445201852739974666690165889523628002166676985652710860874612983872827529679310803889520213462460675876103756265402646668814290345605380751790237847844313365663036573653314401315734239189650163744012829052817402131196099061150043895601357960808550497716894107913398672228615264490210355384237779341668830803646998420781445531138334291135217036500109405478352010207718810599683601903691987441042819781940207694194337685235179932018236524112313151687746829995287134878274733055029561352185786550692508962515271498091188389472121873007579772168510441002702770319938045337578129792869144950795770805598477290543619242370213957441767310100613009558756590307954434838710489018672132674207662537492798814257542021362732776884632581020814869102675536854918712039464153544746115358600808930618013092136794018903433321621617096162012138265610016305379044727796176865856956604090593579561040612542450875438894579156888127464077785054862561108602752696406370852381247329430820220481935316281399219632603943047871572994605754284843992012311944136238539542906987725063831927329160751219539610110605377904672823798111266827785854059201858626048803912750384109188642489948584424817492827927033333462807728393268587362144182067774951780431576754134405408751778011399747783188990389813851653756825298322000158063161622647154624654050662054855731342935943485228998505218674828430544387756167074627624365692436654580165792441809385155461233190045491757065826277586680685954804723428357342764093265826882074433602960392473203107977311782692449690725093169328069372490246752183794826696649285306393453949296991218245255188830623748472017765629985991284680113215267176798898398224254730815543951333777013308703304296610473754037222401869046593190381133346318216872209386698665387541371803972671646807104456279179819286361324974572470062344956450939136395621926219547851227823170463586835728705819876123702920038193349905992396830874729814045257491728221257358526918565811605037576770750888476376146422511311041481036088013695247468162735051106454912527456880353918346500881751685925106739382299777563355726003706296659735953442048766171009442351063611688249234890796951353427359814101172193882871031862627346373473098702800660573087032277834263727023374956272187444776642833497675708061440934446555257563667861312316658990996041356442466932066529353380997592641486530186452305859390914052352001356151795401693389413117720783915350485277411782380727784009797841360092714132112446874343144485266212514041392607226016107081988481370804285535729153756076014253482919397243514909303475291103983375414516184195904567386519237545047930280088056958568798182813794297207394030880895124393619974278244404354022060521267662325272003085176059619106493578368261738880943254116154966022483705584509739427566446174848621353014012147735331823349501021212301247194181710277356319884261657228775544207215960259588450985668873078738043683989483915294130316478140196458695934270442188447671167656498782577784153024866525121726048711590741736688388770088195293060853618565766092654785024991175313627645676825170759004393882905378711149410746095694434277342962078299410166634513895159852447517858099139717625994677924283176878845027072483807208395825335403994572219383271721240505800102283544822770055606384122983176001437337530689546847009876761605677607138396684441337360557202671590762421800596432156658727607386247049656248023011669866498348687360389847302606074909508529309007090068253805935611727159719745286335014695925648619082203390185891546185197796103217687917646548149403758438316870243934185602731759987919643158925624299034136555729305832202230256480210843811110148978770959133813330276167378134240066225489453710047253173226796523135951211202411394864290456261587551580578019324302837920141321341924261955951121434787367679275209687434850370741403058444916132488600216742682262705626952240109595443978143687262775248583842017272165107456654691842961281580882798308125201888202769013426668256548901140187191663446099858547240262812930784645616456748027511191246494902916293137014171339841466280942428552510849185123590262835675865237978575868478227728585363117047105972714527849682173069142384625074449195134631532338077403416162217012830380422677728298885055871394900088456233173874207280661718308877754042784906479650458634747673954647297899682574030820265136862256081732504396497849634699278784695309104842374965504342830295635885276782562575665929844084052573719952020855491333660548126511762430769785307310745022256538874089787452137821958404247936631011344120064156903939389553972370001079007164361021535654802831008340041965655549587330577331921169874146021853466343120703385018784700336224579469367407838491506545568159913772684912306053962055244872761694141748314248196086243965808888966885995269948833699471413107060959814483034671162554629489858123493518085233883421130038360535769984362839789406534167494523656574480688587254107668356400188165941397962690157568271563049719554011524998655762567188472148243574885114342321067658904632051239665878685825900194015094920886379285928496838490919852766826980057947980731296135865387551517085811036701355955306546836605784612395782835201492533927712501663909593153967059739658907953033183981071160103547786515796578256602259284199877809455326913331040511911120735891898748311589327826681194367890668424143405453497914878570853044006938565854983999089125375509013618707576657989425957506644534527527204190392565630809393880150514564382459885087564502773584128144153778252143778752764314379865738452403558361861695619765775823710971745041355286404377714237532560594179533633656035751096765077611199373804520854152779207376965711314226553322824882489015162975900969774233329065895126076461881876993737797546902018768926502716020191435062296663904711416928242138543696439789735426163942955585292098702421620514193826563421681554883166056751561718627892019431275607055963862764340850605352067382586941673220716554064853811651390894170938132953467054557506260824948284609782455702195498643009200543577110573349552275356276825080772273364211593834691479076768221545538911551191063277605663799201437315738987960798519795676347720356256453972225273972659670080735320262759756544889106052016843311638409095134792905814976058906341476445166570862351956236432794393124686854984572885661711256834575843680372359458119500061108694896572275414944502813926355757144123678256318179355011260210523774603040797247950875764282686636292796464808938705392405802999887997153082487678660331177104795311074149163590065766073044220264987317811650990607848850560421796988812967253117374846447865567012783789798351331501775359779828463249585085758145818808244706213792484270516046851988166602174539547128911212809490986422344448530042860693455090825594912791198033273312032561997003480330245075896058996109478450375739646715836920172829834288188120821353707632264552877461827272510749969028076881736570174721868285572497404677677851303924129308883178871252111824503512217079760337068472102330367025290301338878820043067627384012614728933855239600427335467681925647703918117165894842489691864076535598644075989430349980421790741157400475180876203942695874577692281118488022569296487191858948942447032248709956183995513342782444241530012385558055788493902725216220052051818541511025728947531773643016785815611600184055870166043112498705644652447820612526279726539913332531677982724149762304546550182866335389998013490436331445186155950196539246295011268897988711270331942419809857769803949031647119917866751834354915198819616042865479853992987137115301073082157384421926295230106256346467146572280708031351464266081074866248743702980343543016837928875673257084826819579810959437847050007722439078524869780178613993928395064427504733061471971626287172120357070683903736401567285628293652762796487257765279377513028379700669430485709489486321266720621842476284114011084623190246043034016696451810046385536829146911120354969679796326213991035165859136790153218237977954460778062011224742950865020416305612496263019866168117373349936235818298897416556788551856043536428386835064486317212118175391172775238840595982235565427581447940003934033742737417333295856891179771732012142283855568539378901075583524053097789070845874794646980493263546283678441200522396604630614586885156893763167975621163804223834368490537423405855183042532256645732677568118864489190872767671593870822723695170537581606613149608183820982271062783782607007987611147149296973128590161190245587599917940003841924485840381865462302655837096897862646234137430741732297522754408166683304383069880947266125473450145886693598405055777660098033103144741708786417317748221353146300112300951474870543199884036012708641592120534675869961168361788844303217785208862027762841827833718769697082111098520139902723831476998207065930714743895498124864077613179179429314626409437399266993981529417081714287639844911560336374620098385976774518830875679205083200278627067648250587131338147121041194354187885920535884695965070630806941082138483996462191878621792757579967571445804233981661272703061268313443706594356454493251446263483385208302230043609032827776162887358915654942301005087008920942462016740961043613662611483716287757557198529845046213348137485817904654024375028299368697695561712279306253292258842213181368280703717147164204827428393923471300672111136409404130655230281613120089018048206781725115883679629357331439645254812961366601745690160193046494493662859982837790962211414064136902769016700548415398201161499670508832551600511031822108249394250199329511436277855027102177625913343647753875769691906779267061462751259307283562195301846583699673614724894640635290894209629212616924274960649830353419756284046292003103307539562046743973142923667162695598786824844460343273412075130300792147910541663118564628848264973607126761091257525820770640797484861999341457398923894176688842043893908388752914061355411123719145536548155423823516128218059301694252401237227005890351994758229013844276323972189508404938135372850199366196364114189343591672534933738153599724500190218842198826906298895720488123116134107963358177135889196980794919049229855098657675199041217385841831876118804192248252008980535397951815536762906084546954149641214953432025034176958686109504106896139944726989998955863589450874236053971760754690969699184322235782914401637794138420242169972799736172548460781770685304328096580136588196528674589059077087952063702946604075970342998426769306168889785932918004668152394958059865616100895512889408774313755096426991658340062584719751965435082171642670621382812152540076803018096889810484375158321159974993554243054205581791279176719749604913985636969552921008219010105825225792591503121208422694878450655152970377487832085330797977012707269135555179917492429504244507139218047331094020814236362727107737540938487854779873400445392797526684028840275740812563184679078217538874129301548160814219878813578236540195841445839510998409943376977224417038431840395907128079504231805893172226289044980959478303698362474068958342122163401372885318538262534337014297621198983837021132990472811503952363249769609785298569076866309167141699669756182609032798486706803757157043082232380168609832188483648322370835334527430880524991269868012564850997192551910113477910143105380505980374053760946579028367910277455645012019678348508611171810188573938126443225672601046274950976360468424090693788249403375774856166125251825481714986345226058941158029589048778871173126070234646880393807164325222015303933390678241357644892765881074012051807119124233789240975651824966437936328956891911592099719475737708495809463409937058760385537377881938753554790677677980448597518392546482436875098959596573758757616513161609225386689347667536347915224447317614163580240345692129824981733263469618072980826646314370756996952006495688573341148927574322785417328215057762340778699110360816330727144864124239484529769602871034388067398203741403006445774433013950702614142748453084940854685113019803708474585275594664709576052349873232350141813128596224656476219173425341212926684159055403086694544839960528495565028856058908869909476545769168669526110286241325305868426468490370860185733214156032499877365234413683677695279567439775589554690525115056733239800755234824700961339772950980572655148165970292470815396960696654155824548908684181485443060419644734817970444670871865025643546648189097107760345937094255568816329480230664858150482199913332510108567726400352531669759924100585252603246144222851026196627358511446272925151404613776563895446295971997211491255632601767346068123167639962124192294337650242033068275827144503579382433596060427543264212611669780970345214570483971703408424372509442999937320412941561493808616788631164575014132146325673980054850954463911556574526248301291980303249482051165704750797909759175754628086816902675650262826894790602852815971435824603506311285831811440569976905227631944282930477742411465780663280279999554515253190549971546484054157514209333332362131591421305694220619995020646534283395747963179571146493040584777075174370714087453054021383554025545917950050040676223139266953218321748417295410816011120065906936741945087876520088897285719498267780529882862625431785130275733792014372807717543535800134473201707407288889215312384421011549239723149848036145468095487201075647767424173087139433082664322265500016099704850740792216939244398302417912854218082793856834293419742840535873242158164907832252712926286533419795680235523673931015592085707216321439640274256013239934492829265358486105977383928633754433582430919552549154128112267321534738014676273586833304374585257422212022394857597107419605809295414417457222438785795809669371226889166091222898849108233788574197063583437130813813984594409369530990867050315732571684949627269846182696253291463200630566674467366753262407755884516159124352736294842068943350092815538379797478167367862982607014973179689664893485134149617997076017299471962061924471310497498552315447926428054688558539144195427432563139136722377387380466066839701168980754383439846196183909758384204914456750845231955411837272866326061159913691532354316904036436084795338166817781067184640297851230389506675251778917010855489806122349955982777408496519505566487944095396569376032732553839409268913110975240982130935020087889088242481894581176201693409445016870585541871307638358890236240174253783811883409758695951735264039164780361871738645761288233279656382394222413213702004491586225405359846445035163150923872247146606299455389504400384651988263477922850808911058757142849878580258716197536414940769532695953384501019181542161724122517768109844933911418935908237864289282884276082472627668723765437684905962459727857336227899818561127137393371809192418711079803017135638161144418966181763618296812981961577491201925389301407213085375034965190812304740868336641976799885809624341031875389481465206458763823240099358690097365420831514636050126775594920472022407542607771915819763108552291272774550668300043185094260573647853892306267807390497836782515195665972060016814401794915379571994198613490992981191590507968853841164202024216118852076546885473238928111497986713290785163485453468754316395932168756998016945438197283097178486276749952556394333245905842847905454949438706962945349423171450333930057745571182232707078184025113453596104646442727915442889722462200468818533226517525620978490900717386759859487113743218350268753320961022265879979658983519574845981786496087216135720850989172417591813947694381630738728782919951982882128405396930869142502102175270719677643183776397207155842886021907496280965535978555243637393627069709849852685937124305989751399975491779405759322678637989728162582426033301100023993484721151358125556458200457304061199626572129345661996535398487688543636073498710597024951722270278817995829889156589396057114483719273209985805947633925475084573356383219548812712498515409823968480956021144821923092621905309516451604105705290044907646438766513084304362562015962616653986950271512965556688843596502347565665181964593012884368724091938448915715807113376544320326417614713667279134582042465202794669336354141035792383936376317133697006338086413062128412361621033915778980627208879603931760668624480789157549572731315132620282296639556798798046613149192679341080727856705047062516479508789837655163275947251873812306261787029110953699072717903980438673212047395434824627364972280971052486526260508846927001706760574918640467113124637156945551070105547378077938554899858674061370679530216215810467787165794611789880817493648933467793431571878067468616970359894932452649931413997997269374774219438295642158770551429425135177893498807792813013698851865450006325813633339861170437432580679583862915528143841566170490519166902340566431570714070160538150137666294049274932061654534132505394166458200856177261717479879793962498973580733625120396097768611388973561489189963462660027379466434573427541759293933178338346986408612792775773397685907495522972190249999964051032569684332165026923599355275969942928829031224957389122463280288076870771819574849762211059079099165773353913534117180592210222410616613166345668962246558875215935137985313685008378129315721333800859113516191554653680213972389155954585238540855624722849415244563907364361796720113708489808577404492293869127829303789057525641218826895536310628830166530560361454033931859519230062474885020469503885398832139155801261351401122913443502067141557454847731395801072976770698161209931306956111892241191015866396207585904460123681411994452258687804055943096316803882897391741553503734208348397674347263317438897803448337167962238654425662496726758260333298157638284862096158578021312051192045371173320097881575731681077407278610437962944947138181252466226677289900483325227649418692631131881371527367929040538628395554727576618834910910851395392981697654275848569778539070323408123607374670351561252771447702315508355925087726867299148475618535922249495122393443396251482574962563540320330621646931639129717943693559918345741938638123133645812769214995609520275478635212083288981338383762191826934145825135456278711668167420394950949973743561474079640273766444433795132626875074193835863080827393029807156744872066632063028436627322678678953589233420017355163502465749029390352813468258028234021036678144850208639473306159938152856981930161463838937324046647924159191699885752332248453917021102652607064216536580763537076815466655124251667000420969089119683303001462367845936332075489154030707423793096097214640223026149581417727941457837950949647502432917326719965640880202706860620178337859278399108325600771559591947501182928519880556247504191713323204128100657770780296753514633439612961375466580477139247179622500925810774485683695124880120166842380391986672039442798190036585759697155717200472986902325028009115247541955484344187347608215398798438335052375642425626018738805431503992890907957243250244666781117956952849208607919710099224468691225855404733312262726703003148664584926384083158792299260356672342275692655678407588920518830753622404626255416327176434901883061494083664966738336595621531405869414466902516048272754809783840737556851662689631853031010179936439869981370276807391094515662811391854856786328402459743865813822452170917343032805000972431132775454357909781425598358127019302364632153206092469129469829596544467983849021720198765942947673904671808905848396654986936665316904358549481904999807088438211652666650781237409500191740770138182814750111639158224269167811782360159783006943243445118829206835059739037986705250221631470268591843649070354729896750618719927108014152425880609292808196495362689009936133683127082500966978944185441107645496362304659443480258667643152057374234049056021556686566436193538976039344648775081386129983222812543322553061283311315574365343929343206799531060984554970289766119341838156580592275989627914051746717712456135877646800442109409663726563520133765247598581619615433159464899226320873528971748103833639052964158755455807184541399874507044965467767820158908771121184629399198918094820999533082216807840582656101906562467398152067846347100854887848426335548859503238009917463663704240128399255385998715495362994288410852284523820728431059847042293567725194430205730074796878827449503654871074042840413261704073190592291092883585928087355670329887800017915417471908878359935746974880116035077379089208699483743451382499868031914008103285608093952178563569374595004553746376852132244378866406031374635527441794404424938168375461437154727186087114688887460493630750017408905324300192727981308276098713373827061038266589009732940783773667840552244880110075424840824017132920182034778298270204429769970175672198108452303492641678853543212034136675696688463607059842193791123996543101737426979337211486211521725233063288625540869102497835685598468862415712065679128564611516650477035985392470092725844663520695921034127623697418973783532147329242114361861575717450621638512050783757541497493330477870314360052059619039988133441149195182005469429781423399173429301659824994492766422842912152857975367679309804045476467486885683950790089402881957009310978333178416516535654951026790456641133693625346446514757312620293966801283500855884525257850251677162396759807423404567237093160606261721696734075906780682161338804626604705789980904352693252722894908557076437466572901637709157604338896397994293033311096414333934297478934841946763543120539457514330634970000304535417943602845095846814967453424824429990408923709261855454606720416500606108244330163942948397878258194627520120609738871514549697714418805400315958211840106774436002426766080911803844756337360350415670724395805531071769881008409701783355455885400831946284793178842499444329871303919644317187504944451433653670458045643410386500537139396754736365054511413518159992167473791140744741053235589486192569918757379699776099915478625281925972314298207853371495851337300054438303636133760518001616382714288652895338809228120386402922824961433945921928814576710682568271333916329898209434203619019397148062711701461493935044327269635193788433295432951320723434844239122440205972655052712344428975394838674185853515235586897721490522360135308329359201887089538453285716948712078918785425012643280779842554867414507569598362645232820836300606877686539581273420131031090018826315264292645541684294198153676317862686925713922475757236178985323911373666708866572752664315893293744560312737924961467291045535637601558891827976388479829497913193843394623123728927974506141254226762916930062411146063121263167813847763134515785787858089783202428296571714947520603487676403563493741324851614499386342992615168887974188460095501017414560514519626652846460165741453463173040048099089070125392125225064507988783673106383058172714807188433040368907013909566250295211502905910380548069835460216285185894303204052520394107954957241860231399716619272019026376970347898525109332771369827336107078690760907683127193662411350690213347855000665765653694034270562541785597002835864078203918647643648177671927718180591796886119419643716989077083886802346896370743786574621509256070433162069647983390189830949309824531110055949247470470528551334375855514406189884034911011718485292748316598544724335581004171745813203172106104079172482171944833414213616742146201214007833256605387373993614071230590066523691957954918982194393912347042467940150415495810921138199766229037289995618855779633334934593314539339586836164242712130031636148890530615725241264831147595571664649493761077877475246302902658768709374561507981736866374437028079598648090877741019548178546162572196302721395381326046883432742654201146783212037308883693347402778217383785355001510089551579708470834162674476193195284861784106907706660776748668444717933796096107769521996412721649674755267820567609315010263804905064578381312102702637413782883014151589542943413236154138328108452329113495888118466656628292664874013565637229978380642638136241844580791500380815935462427035112175085019071809361390269029563047392397362576811693347269285937610765425300409866749549549063232323111156435127813258991397543322207321743096065496689152037925382077595696670117356415514124245178362835041824962278663599599059577052461789951532331275898045175326475237128793495874462332760207848773884226627130707784480407718476553182232141206427225123602713815509263051535768363017066177368348794200047134609044571710994729631767664292080745784573748892513369298260765062424818442501107316296003458841557219451659946766677950316771533805137227741950945276254708591273590368524638249379760440833144478865429973022005496230959143720950977473688701439279140675441101420099629861678652326147091120509952997567027076052836074323098707057121557422607478151712629563900941891042544764627353613394744980398623289875985111558962300896876063731386894540449286729578619001272738796085060944490422224665262435661306638528798861743841318766695561842944217631973559683456130118125134909629114640676023310480418570956550934513461127237826585004005014658132265225767441627329398640484454694665347810550029120477575919127653750177983362480751906628488876355916748990204052943501323680111080954747512715589085654739305592013195267923563070692801460908878487102964299412071389119899563765520546064931323768358000114899075203401853163634534812163946658056805338065332356096076107816747909693820486064194777666930385743321068087898536191325670569713217516025198481462211535587946184716368025973108885511818606514140690201461326313545293055106069410412173408175772992153229969681899781988700617225232280681398899180156921455974953030053766565825548769789293748926274025202114787827336287963083053483587684364469401238244412011149286561893796849479572501376602913810655558731953059018342504793577413928191029622961168736175428794041905520443008477421816228928460942804979197943905007958148527583428423393558292983542006281130447119030983025315289193561357976801666944580594665237991248190464794294908471714917261183341979502568367616061770913377980194360325902801950888030671626656884865861018993014701525034133497688819658400575173847993413848129086112494663498083435488254875083969818522094413794532221802732510510731332466384310057522447493774750598075663487270978388094287390282991386254310853680724228756292977046465369124122413424620752008785311684037432325517995554091449652730172496745444146504663835907177995520073196011976142892415469369591377322703553251365061903187650960125986288599483430144494559688861418767096156122170233981125711291647423770476189393235341004998956814830736821741420264097467621619418187627863846285447602843868403255099550685733504447811114054563457546890368493705353724913666598214368241762664306146088096458100034224909703987619657278489304797246216770219804409174318382725010591828861739208408350764457972661610939550672807854488741167972122965476776584117074262938968314727437304296529680370055768628484455557063430310358632429479154811105815510932335528381209394615822891087899523195075931024144467707273430656785196568021514385430288561846183535842099122979606336090600174432337900715240716571164188923662644246891017476320504547228770704168488418319039543305596121815374211927289652352150489057453412102319793830438447803406805599057019260080928477040246930644304778255329601222355475775477147759333969937851195227740198943191731165517237709610725427612731418523044113628782756794611265397837966150849110535926640093115158540353108509413003684132866962828989261708105399092831873038061436655543915422537719379979622569123540075482879032288541835078958551446679634320456192830562324132133017782388894270653282973588690936688589369774144093831875000936710943586167379593988072232289794510898261902279335979568088530872492651763743998387710280446960693401962654132355883195763919251016279951456978273505458157136420446968307919509318315033336803993089873748360985661726373341726437457899058716889317397893084856721083333340152135123318005270901622283100715349679337536997573970376962004961960328157369383623513317762425150656700743292330717466236927637061586261613945458066966344387874997467444723553577361636611166142244680192314167840635570345575656292590557772172796267799685099914052718976766904578490975885214933200695936746528068858172858913654888345215651581197945829156624355675653897202096890880244406645797282939040956775735875012675402170940242451884450764249478775851255843369283484371218269693783136226812929653884662974351826602279158649780306689040075537113647577876483698191892094529939213740129146510639657290599476743048416190069132794255588383032110340657697308544772987756236304441073569042397445960776488402009508684143191004585714721026617574316906516482340723346354870953205255712468396208367434094546022609150779377270949505717455371887365903248688925663659647894994486415495954027217036887437086339180881181695855091346359723984711357375440884775246383755238825708448175082369374366099684566404680583518361184233197545494500264386929340565037268135313637398845836176250571771782897714983110950579071247480098315958984525755970517775818607996570999750699664944922376934291936031430891641664622750368716549269898408586120440107583093653911994677794638068463398109383046906603881733718904834630519194649000451621118643717875821249099060732021269444223360915604123644286779257664992031960690561576228501383657350965608138628715920952185476787109493394153479792493718138046467118579065553018839015748446466447081818742133737598670316653003018164728082646278193308009035239044027532079424288407434718690067477577025453172966881043413920660415830622264388629456180333069166131215491442485836139684633347677750720113922342814705442129593086707529946630033958899062794696717332369980962890636875194988432703055764488205168168479096912175980791376784626157426004230155723966597698716265155062216135787092415432127147245260746965228206637263854371927685012854707650707108781924281416131088959115734511903605168446283231750857544844332208150851128577506289751819568260958083235007319264233247136052635671308176401519268639686228820416252277051386545100203200463721458870324847736084127949972604541050377789580058455682419945033722936283129064203909766567508853096700407311323772146585557408115228595965533232133522979951245370928448154681732800504664104958169133613982984352402196754959757824457608258326488822682901161673620235066434415406137514707373547421774378862294537308719335899124652542814346056468869534112738108970414000468062650528811180431781726440853965748280904398286184347362486877792114620401501956061485881427886266172862424741461069124498760711195745440440333427917848539065041330671456279054880763759169811281362117070890173444576678946101848281668017291119962723727686980025921178623100880591641123444356886036238625445547641420616307066595928997189226139418891358367486205752103852291063826475790299938060282189007049428596704679442522173539124393279188879550556317718921995438204349880772549584527425235737535179677425751468158557389447446560948395738932216101619289716346393503224330987531664805203058074305022322019924402261816537567536809777407705146167716149894686117771255333176323962208264373815883708022954261867844954159914323636168112682577081662260159067382191065406654414207824740413577806693730088964168949757997897804715042011458595476217929926909372528287259027086175143853049140773506139872528648329125198157831178970593869213484770255527380395974466999400553573580489943188161050869204634644794342967294236253741415247445759953871987138888192119136086237426445872624194602637435354875826416796115633636667909047893110056561644069431471815520956310994677887141537155032036663544511848867608633651058925309061356279528740234381460998706959675193061896729947322003788680000771260706573268371531243245689908963555334909046831719661554828448249318710644466763971924177703130700443912331452643663415013785973329082760449124879032399821787975787723619423685872400500280566530658862792993601732094912147338395152539451403410896104583900469853319954110029370912888756391901524907514010259653666330428586915069815493078951056819523539638212024192305281438772285827805387929968879618062862788458995952179794636751957631421091147702352053087965674547173419234238206014856530284859299103860548915970146346730248180209800516449087040291491318859525845185145820857816072085855200639134299776956399206577075451416518615309019480638394729497524297345125955169361446439835095856676996931725444261137243363978702154076669726641558649852448383792877936758495397006675658015796437269319542431607540125463135098603069988327916105411824725491383419721607963793433586411348462918913954603326250269908354262752406686135904497678559766449569214606682214995735735724426093548101496540197238928295936168207015037612183777573556778667115130061229515687829799765752393913930727226051688852449862673213187414111802744766145731031176455200883102863731058183558020447252529361153828180771348942255085838549391371834198365385683001610180584208943680192296387992558050017660884243391948536399321945649862194091185385422761680395334129940997130109627817335245862205315364575482137459981192607760228109838669519084685838183462839663794841194116126992510187778345872382059752421580642722338997608988498714106941772155955477706923129418528592369986516868850855302626278134360771161745312520159001557131233937781401811150920269702576285750070713979025078639386973100461449450821897772150644816064348211576046724838232248574149235548498001716078500891538443136320387687071970752489681417142007102208073437351960992504411892861670757231301764963135247802482428734107257375437199834972460040694848232480575358384587923932618636478986840922997739371908012531064143546828714641735332307226775643200155516009610007878011024719584876218528585692025374262729913810573519432267067504067060849424939406554697057567012479335201860911180390120726421115620449170246354625374125823981945828859264695122894162329202386672173295148633817964053996902961886921252262449157729025839318481100491946147060453759709068130621859729482842423341574079212644477533533043232253485696484614896384296911003569882343157582937404883356414483895839257714258210191583826655258537912134893764276911314372816594409761997640949205639474603001646525455259583661758471888225164487133713343322014156245202889507491718123110569876911056218824164627709844547733464003284900215914314588346392361594397201530515042486066989628809347155911448807903040624797391800297153001346127984267290627141478433205093908267676299334429038101727968653066433700382243570109978259309586843347638927962921058973734981541677402797865053291991169093292531363704511740645071152249355936551623712720215411697226805064287548018965110785439365171615582437992973862130903212622080834462385683346248867591082625066909449311375326016408900840775556380117606239236579863897706413709099068316267370339251859970734014887709403123314518452162892288414842871653045405315239829420848760470343901210232735926185424010283877401423843831714184171595667670884296221030045095523933065428478764536046595454679008646141597780824221582963032274576384948667535197027891615906571418068794766686507184724361189962241364415626525340719548725963500701567611865695658858610405721579319154686225729870198459906236282432058210257592010056860687991324873306904280967845878287839710967008041439912387831945092054765996689238263433326127735189813012135408028235215835947663996824123746941404782416235822336769854809942103065284201414480762752237370429535492928099162320375345366122085669502552701314568320183496805918923931463438614384791804092198478789304731674173349476552210767658495826367402779003272701517411226107842696089232246882871144313860273670722853686592817889764479335424280700700746377700770174375828299178025658101205798434127643012334112727907911900279794957167699803542438679585895753437054035030840141342059916952526058942124510775177354174180077859949099799942161586277904586619269956223954663293187155529066702130412053208248721152487873407107136945835087125008699769277056705559245614251576816975221935871507458252362531225439139568905866997028218260549057516806482079365444448108175408991057100362714515281930802659920341870409607208592150799012530655616871012869783396976326911536585962203158197673801056395987089044163712278553563639589213102247511409322942436636187038023558967956219521038151302921352954634348718839374911928344177426578344155614892973541381449753498224623620161159740776882613584360023183587378978337834699399966147788229866330990177873736294669994023419287914137033344989336045811536139729686503746809220333309219287156278237566034407613488956741042962105690920348863451331783426339543092470485805495444458542610818392652419197635150143846244285748709018187849109922764914168608673845583230951647602039389459079509435992639480134578620603506018531170980312354679461853220876220845646693386113372057639018315201829723629484894586654859975959690935711055954481827373288161653186118686738672975400171418882182440433759739929371254893481837261642006034316794458721211821164451443272380589439005579507883518748667778224640334843949772387054209093703935491692136187476296613344231116055253417110208926515300539654414270103974314310099178535232356977833180715535158308418655891088066297442042418222194916524665919160725954654743229635968874425569773368597682888642803091881640698035893210530164984851055514882513112287132590604650729312386355279704702148231796382827875003918918594306334288236674108491560784292637729377882488247069031758998176643738913401697670912400821809584482583649901267875733490504255054208530089875528477795127519049042422599530644971748186606882636450135946675324269256236717429747720597366625059659520084420294773822688006957250508725969469764283402214075088502097481506681793244217507022999625799032763686322908431521853722766119665760639714319050738959008971324192535979113127350954310570316542508365358386648244586880679931270609581855771973232772387618607644838518337009125260866414764901825203992768411204584877349191981236857020159129197276079449762824008029815712010131728950613917941276249303728868452935717795985600847919684605106472243822855873616548804394767228382009867824999994302358814741627100364733017372684510758794136170200535042233104304978027771981308240083866799899810741783051693909236700379428653692839555218133552290888485449249589582390263506767626754498018710220111991642011417483593402361708609134203610237208100314483591824571144969403336182464269106498643578049922846555773901115844562322557556797412136532428222855062319238021135136390143973248932341066466674015812068841098685109623994410831221753714862746191026639235257238075588411382852264735151495770942978170907588533792035145111180646465266126472701848937198458816718215120573737919281278004889620440605315439244174462085862485957706005232153233592329781355255261344975583240361076403443695228802357059869111712920273046980868482322341265132318101302307269593867800008304808617470672628227082828485442351482566653333664516471173507340114944512716596789872769393610485240235406095759830365530989009858494831789748992913167749152588216580588176907450214451060740137883082956158651570740350212482319057634361480756602114307037023889739057807938204802612094812610782819457161438247575401923092539890456014426489766868206619543025029098663395768038762453407804888851953957593144665089979045876480686655350232068862521462845158323072978565688746946764910945488308486286249527006833268086548704223186047204271722466676198468860187035480494512869515059060621193451469214979537246313070436562851024266132409524095595768867055843811769553340675931621284063631592534136468462541538354693918279035414197901394408567492474837989601718660221764467867766085920877265627931393648583091572221551293672387229815118302520617913306495455626376206123694122969324439224930197175383908304097426372556387682568405208769006919751016497110067042159558441374325784801132723548569216132429080826512773130435538290140266351752689779649813509836750213760518055643975481028836823738765794734938425026994048876573132696538177800798144150307597560993203977590746979445194727955275729215030227869842860072455144366795291443719072083939059848710333095794992045436469860164261904322889174564820220569945568420359033826432393085411091992835854888743009205032230166133937187839643203229801615400597750568010116922693630075119668746925476058317573664861000623411879887055494882698426073583310418114315577961281334252595648835237859342994353983158334169463423331493360200910296536342772358924918086390478047412856575282350146197916077460861005178192907905432919376259577693211836016361067905427247671495166092240790034964576498211761494480074915805880260312799462077475052497149986835656703400254253668583896446145242936526870314219585498433501590927854580122968194264637723682200808021773882889580976661024288969142852411731144334771108545194883736561422097083744685657470195773745978020039080230984660295477162199983079613857081801556641057727879116626396542006512617970642973881122996429462163211653619097217562170799009057571121201290519351723825548984756656307426942875684955715375472998818756666139135144858184380256364176412489756920623844757279376279268920349543709270449252101767962519265923177260957738486922900537580383469028876966910844592969513500676018511216393076568034007791427214631313054864770776987160049875665045011060801936412181343509270283015250710112978482141594370440314921860481173198108760666503999213812207001857893098690631518262665823200311133494521117875608546861732532265112348060786116937053137582795626792149633479699087971341521082669026013869053772935119140726027686245166876834760373768351184007426335794607975064741191724210551168165044744410376376665140754365143850736647067760023806284435262563997874306653790414711218029679901710210409381142861658412356398614317155022708610107724526665426570632135567035382991394887426168360485289001950737547612514365425422989051489986389078415436692795899782382487368938989778439976670519638226221123452867777647208708865529801946602381048831408692930788140519368532337039391721788901986252237023322173406380063783459888047306837469219655244444432983969206948075508133004649571841606836414713254428104159801150069984630122829559141442956809257479085988487875986191629472137685724041185480149750530222839236677514205229219091972530896636381528394712527086848150169511671675137608269003423225831796233598744093401544306425772097759566381667875382854328711587193053781444816901359972910155100461268123283415884937054667460546993277684529873325121978518214527051891507850476852893685041261944591608869306674054222644315712674512647080418062975105234326920454692621015187310258973367245557129991682338773671643581761086650733916569722281292980898202493055782007916491395212601734431839256885264941231280212327265755066992420488123931254467366873550447930738936658953162529794492775918413007515008909272895813816157131294110818696155660331323807127701166664209451604214649330520617435689017047239243937085578042130786869665742248848824852958394815710741090817100132783619374424325205906123175414145489670152912390730037458470517730775715478474080085205190374551711596068168883343311443991605192907410090624643014075547235117216930678676254578282742924498494265917645083056051957438012512760816194285049047215630472903240155227034955592332040702763435163219244244294476981478965793693749376085560568794809791780262980993199385559195306153236019133462817414198401972286090292545794635667245417771014942688594200898136171359673890296238117333767952506442751655064309160167039458563458730342946038762187748839212774497591139932405095120967471141320559851855101823903661036014771313495502526831146643715812039122186499237906643616938030924975987226229523945573348047040004513870787014826272869410217547960000069086253694253106679613801958855661243601982810284021320610167110449749747654905297746033683030123229212107281712266675673188125205850882774318851912927633748987529321656624889764397409693441276848381551490334892349069445013401016643139212824007428865608338365974222000892774273745644780443142913294032539332435645197439881884390777077354929265444753785531465917335683444184032813377620048621910163591541206391487531161153946155093256094054040897458802164899327247275794969110587448745522170152856712123844756862460473429603894451568453594992106565545561646332372966983715245947212290895853486914611334034232026184344701973247985950561924621962476588775275571877405931584021539961178389817065183166378917223782006909667581244802126932864206169582005784294191583960152707622205471607434151177939936982123930151750003445644642436805500508061888738239397142717818610310598203082297819933724838641092416256450355826962221261708189922710662704161843300619344071131104856045498201182054682307233212218833723790060480341301319822729733429824924542459272658774039274577958579240726057994122054372943149503078085245708281797171346344143936420942482524088622117910846642399732631958288926036772722388301935817949733195346213477552429704818784472979732171201501845134625519042663213572519500193932345111429088173656266674006899721830684869305480394205060491457851878697270445930823372715597298395137147870515801850901587135258065951490780957370644749836024736039456432193859120563157630519823569696606656800980670400597620921258853063611741240811272499303689052123352088793633737614677048982821042242060186521616673815156689024754625123092721050827646428886972263495219093256942491199905961247296298992167770173606575773798461212482970143330511195722324386338463882501535973653580512817367966684162661247519070301229881636543165109552401023323896959818831165672592734379920373730210582484714367312292365823638750237389827133700426258221409249867112852561827388021390716996667510982208622027907077857799541733931540909329316041964442505762061619141344104296987041872601156434327860870745082242464891372533625074002735142702911595037374826212163520466175195920688136824471826663520482600365012196517113765058085815390878911627610677642557753990488100532486994691427849733634425141402644211410183823369104307472032184559746535229336838623688588760486733172137078486811480427598165005717554322697299379353998755822506869833282803518764719905685220072605362309486139149632268182547575032257542345066108133930572596734940182259746864584589945953425492218733824148327374845948075917330409226928091582015963615061092040597047847344663303289900329262346341450052584845103512422676318998731087465136355516098296647449355991615319816738619457227897865337404758080313897077859667593683543248753562791532093972005634927609224765749462694935052772123351291742968661946484317249439121819845895911854029206084663909014028280297936321464263619934278259535828020523936696050046996659627189013022492453456911743265197741056176495183075395207248656697607167844237161708438840841922345748978111254706334500812971651166291679127658051655349343251320562298031540392137780510638422472743322995498965827853062060581250173913346532945819686024004064666681548243741872088534176932826973650699623509740500629841473795325932970910015436734156484814606085948214539843519350886782486305522117774753325261527652482975256646783337301672449478399031347645606450991880890239378073717613845257865344864648122941858007073617862065381789701390534271495669241201448800865416625381547592703718256145874169734580579906263686388402462978690887010075795654064889047118456061740415918582323784213039032867294182036083043354436916798367611317239905078659518803383133490628617025759028129442107277185844585450207423752363809529113195348079199028026567309068399324193107142464131436989135782232001782935729977499474675255752386872140714476143001454130588307597407789485484455815005409884145094367163064397841686402945157008404795039465923725219014412648150008099120610978818241790609835754364941864490939421679539665354978327815849618455954596300551519504256508933415684665883812978383838274449482319330769240654255931349350592731394661154012345924243452914320300447233701992791317646674760370928974476517904622315340152741969986959919721721405945433567796074203200382270954612323532728520550535232832218558853146443377635341100849131979614126511561368389935272859027304317547163045248663746304976884607188479532837160945774492004722206299324301508303878230237206773915654307274251897055981354885288947090928296824785745390087037391580686720404695178319151400130346536310394197648906993158986375264808334328440062313532637726693240105367761259898217954889404846914087553627985159867328084430596871258674719416641664567639608433850921824660430677536100400062096885085657994828840844514431303521682786532344747686763377305755791058553619246990240829367379347709176934700188745650757045527597931477548290064581435197027558531632895394338984310167017815960210597041896566654745700024179925323521204201578796282304536643579030307124644682712318436613465078297928611222118919185595031392867280497028923021165785965280485556457128459621236740267036905010162451581691955118394796737937374607106295225349000785723964119898792360558718166144809906395711381339196397572716703173015639148982908084616957741192939684697899174887536791646361901782184900825829058500134317524637309835304191428385959922710097891960468075402510642223260215745554098225819623254823892919144212675900310310264419468326755508258278140604031179036247402316832341090647452545282407839776768556146870042789575665636088364690804338269929816778241423697770280401432690971414088657392214744838051113142474553165073979901514244815118357790374778127099871907576031153229757086846052215792903626863924099856977370788383313718170795784066316629616404394732746370122596047249639111033065590356383114166440095427044768080232860179185015559468510149686949981595942095344927460949588831708524234263870988918631073022551513844428173869416191689237979373286424597932512959512118831613949160406994427722802641816340084153750885236140100802130645769297464150282247355269113555569374180030822190869758333882401570265035357908547410880349747583720113057040470434095885351044683019309716985151672039345282325848994352418621696552568856118253639631192660837955709703513945057602893740959857811590172894651331556539281635517621468303393423912526814281642022586933223214383788047906889823651845966266012287350774765608386096274150941843412394335813286996537729674535042315167078778551384758355072266672967484168919437300215856940577586716257514308016891730001190968153094309341284142129200246655359794106351492078102267200409028408262329529136480510578640397222578413456223003925119029983276181860469409765124945480095143208098241830353695960862540054836880253332856076509674195273410241589973746191922961410854012160673360023167027626405717067593408804825162610297302110150910699730207072098431628888852601660197975781427976350354191331975198630580048709920728947514478681118922535130590870868695426394519000388912877327588313685937751186833913632122160102321961177007094245130873482476838685619628457419001669082932631047235170026189841297074931597373720510459228829209203203053321099187985305635833489860830054943905953531695795578778716439223114520039732682630466885381048543246816013369031115985897158892902695081242458093197814028064268533330469495827109164126181310377294151378242746469607842515097102684947167503664107442474757379140676031774433831756535253805366213326993866503477515899807074314970601844366063134975674144492862062771735846320993922884397205791339461265613257567963529357299033698599971787890747684538565640005107283094550902426886762690092541187335097998435917139240181961068356803792480756362619823825834601938881953574126049465053964087792156156521298487997903765801537015508265662648130496561396442447669221097823697152912979115648988360571335079622272453766361153665067410947790525887235280359966427574643030232180159891782736406082958749681693967029322574604647694446863074503873469811010493332387669967177248393805514601940758731911173390064070787601788721024587460253725337572492271909492974277070335485723441148535606103457923165103335993415333297771374314300909059704799621854110155119385170281933787667348894643721514124003938578544068727947642459874931935630837068710762779947295667195716451353301142942431647220589262060349910764915602305195543717261448898867080976266050478859465316493140827991750350501297927702375290343268542426808421204457815382040766292637051208818682719979155554356016029324256289401491282052278644328334052285794760850188010739897254269831405315081295416320366851529985108538830082747597699081851302762115985290237329421218564723033120623619999674759126146203001115898232619325705467080017755645100348679817396012968322512349673835270136785346038540057708835220066211197367868148919565097223330292695627828230722010991520312231228229425233966559757633096362505207977233425328304038108138634439709742139119956724593337476977623497436779755204357129136609396870346455197624524373717571304199606250058428161879781226682296254609521761126228023742720156367021283298888055774191790430972556525741233549070841955044368850600652576383655892500667532027968783889306072818898338566113447251635148664559120792559880369878492963526843573879919869635574768779323879489607672782014475352511052479966518632187070680956515179656019544622220804178562258509505408995421241675372153772153351019708658756124821880472868959221542760248794215578082361783477055693735159132556269696187915687019295554717464364728515290260771641111445170635286055468100702323672907886717189923083690272948970691349075135218160396273732240473810828251534041855684776418781994194973404961605310688029931714193782598161444802630542176445899877668725062228839740009656018362274748258209346775572142711155062250485875008432635905323527665916244192154672146302309880966795883250699268948663367983212087684052470509453434906542717029854850961532163902441715570118497812522126452587473512755254078765820334974195405689751377531696226042449313984121430354109194721390451682109227079469257344045517812453675035630485476659686782660444236149592611771640080655865432301285231030710888123247179246097425735196576610563872941140751121089931445723985714096738973866750542649017778728446282724041918227633639809889489069467686423662316657399590855769127347939456958406125515920257732156310118439510356546486468678134403117764928319713813498393904588631648038270626716986871076155589341722750049077528485051823526644125212328158321157500075798719311351173661721946136807839651526984713646989046982198589962282722044735144253951992944109223231045018206939938380046764605828970816912695682178891491525117803332099074183445794184190185742725520790882269957750160129095489022621556862111134526544064060374406317262880476011642304707939623472107430197221850850495761943627728894573556069003825856071706257040429099557787635262338290828680767316087721484890575111418649622209083080049103986394873362964653964191259172571481776526501480274702506935848521012802482700975586146936965821030297605160328155232959829714121229837729792193165161200946983626234500976266703768221851293697969215026191233919358354953644878001908062089527786753176397995728751124671771065402645998013541725169001634382009078610911294928461227407327192806121970613337607603806212426966976154827072444530311348115699977038901610702054070719645130097718085233751946807443672025635782126289491998988417167977677131618883707474740846379652307297660918335317316436528532248883105386309860198685161525082693692940196589150843821383968881839725120286977398812854720807234097261399386278217707436437893044011585455532812414640019471629324664146655887906949320688283957117655248670450591342723333780226291108713653305652694971822873805531331755571627118158114897747525901990487659334296384378443735925080800867795973589963287931469618355151502349345722625801835927457735339344735149973475470539543466000777243100285561816160873992105707227679483569527175661715503243596980664123824963615868562545527552643413080034647866653849410406338197579416594791073608183077811476021127186609374325136866863853078837642918170251371878572323678375957803681175013653543538663841726232758184042622244317641484718161100827571106104855194104839882321063096470702045831289784989927447612912353035371463668487449768945603363358829554683923398095646621772573640542534162635168990526184379566425033803225037580324098922438034268019390033443588019382162244429828245138466731636357903238438610971688106728818790869901279328947748962397131397024335672874512242859726891491600135519427265862393276796853542689812178655300013164684653802226077108800412040220762424869095364376865650748363431958216139312059981132103357815880319353470947044381106449764239958384243716989978728958709474624578896777448549599539022927511663924032895371427993329869210406495888603681859923872689959573524850008463138367548595755514196949976165432716405264211257811150433324272536914388634787404309251993348567760134967721176322697536277646845544600386761524432619380498515197514492116917578478033361634218953331007054239427665653695165400169251246275484625343178267890264063411221727763442102258730852361823703293787477054396950576719887370574889123815154434538769629686306678721309378995646826579348583010093774641759764679325289094737229171961292425591475491773272515531677781607017468638531976692931072173090004406668374185456114765711860319407013828323641015960552198891683161402705720888921030310333789844694914842142725465150594643166623927301787423256820141992110251155221839783654080698665655958677984071202517814663553052565010554924804579242800708354104207250911165650223311334783017469946389986508107037224004227138595990427172051980550505483614667652133318642749047353715107890484804357169755078296222486534850340926042599866633769293097669963174681093603344511451196197860915362538175011312680112852398026839274718903828392081174194797621059854536574492502155678874611900290081058267084536382594922231262840448860548026483241546743807935305558899233736764328131899286189457767016592662376535644229295387626648783212853591920175799905588559391246626612013616565129625741136082646348209646648982736196331913212790045377146329808483553901106359960512979608008368967792409619626403293015899081658484867194403285825152447222014096771565300503353304792393005519799058680554713621558705206137781467994808223153604015835595515674293815638841263470254828593371702789591403978564300464319827034370153761700228211017351207747657974550370404993310903684694279062192130135386131201760058480313820765386541592187332441927731901751898878276802356706308256076618923837956520499117538489580573285891599086011398144984229976763433977048915614872357713258635135944543815439577022340585251486933611598834090882194561548584685646934178806162355763329043331858934037346678373976282374393552071524638146941870696806386370185282816513212266372284282403964340549216824437750243300090003092591740588919058144674520126772248620464492912101953166695647360193810031597867833700513880456447596380266039055483232233273880679664483395761157430788526368394186901947148409121446286801889871616006092404519196742384223270824549270174781847910651612665677922608734483968323161050325121564209430984135307432615217203106854974133506020812671587120710210472710896477570785760295387053555348681197992553743794343665064958231545782931185873819321506786436067750486449166173736407286651999068649544946831123152708947704744383640791704006105089808580403089390829033050745810657183565072252028876562403237921659160763943673081666197400138155294296001419447432135672424538588219127533740127345153364691214229540414540165983946199580157156712946117975911352343904469611248187205855666916134053573368717873496794202392881630561099585548541453728517077753801515138747017182112427983197112105730171577688764332067642177106781812412427746387886218935096322732176659959101294956557066302439313413618506832285881212833997993137124574066555131905723609301753479478185223955961200713163947618133559022622386761686576228845579906038086641372857449692133202607217328524059067467757219454561836345762020636864975245973254137896058435504462605496139606229129755568531446693186368307054252100219140142356423088303102639820218717113295812418123374723361364332608357327738645039972909654854587511714394154465067225758943840435201305169606020731048754497762648126935290493607737675197713903236260065035366278847856922842429639804871266157833539186351108284749905693277699776292446226716819362347886141239415634022343153076953619181380314027964167542305390035604541453361163693811829490357430957178781308300149710587668992236058025824280531897648346249464135102971355391283093353925384227361041787322624556685238367461385311928069148046958576253404029761955963133204851752171818607593651180543454087944892283329710854542481434025150599980338518145508822245342693944823720534462130005594126932147483646791185495122709375239361174547068956000687757245900281800600404645995595405492268841229260231862573742948663836353566047980241319878873981672592555412171924026674435397704920995276966385962149500684752712386453783330557151663769549862528065603404096574100608124944170409022657396670616066764575623326375131090812984679085155393684935878276471769126507981169532575754358348832146333238918753877835376787305371990350811712831778800401768110435496209644817360056785142820932450414783919595805649923439385078849340474761064717692275890836725681395060601740389023915232308995091576338326794741991133566615722739487163098547484153807264579824196683613120380837542216012145831604115694773451724985307682773330001301075263150658861923734163012023007844631936081003298034739108367711914536941666487123157977369213209144695026094975186538924253053047782403174002528647847829295158368737431499290312132977518877832120266806256083253917826888846907236472182260263691553924104488267400252572440344040880994904852786828598193583022197885546785043416724599017054670035728090738407839844089979102036387504365621051542373852822518788323316324733710793293466780234784684881009686758035490884606905756191649339683751391574932571564273110879840608602154462331051532315026328905573200361080173658025911167637974046740805952319196085634910103878395460277752722901991737104376037726716151480441727586251531077312109319105481229229400276483279542589767614347645600947861841783728598241118525677291287952888777286549205868617248995567025694414661874900475978474358425971013013869078147767505392270943064207677448089691220090093057444646902140343113636301094596337434266577941356717405163969184326447482468033082598783420593930492788301768261579719979155519107850954329004714897067251525977428106581138082056072588212740509276381669500513840260190998879807226332899670290692293033342136763864474947556928986601058043390712779753962598586278136484082834735078179855197000029499815507455747682034799588004794644616589051874434330580369555419097375251958054211282988328070225800466188860662666372604094854124464475004964463036603544551420692372721665863374233878562611272028355945495599748971661246295168883346653904130951174245756073198768361758227860114288813168728613843347657049749894903742815248906432804833664068342284794260663450605972471577167986657006736871653809226497214561456272637121991481176420214048181379884132363116357302292414281841197750737255722696796618710644947333301226426326850612616617620812264854258836169289797572782057213162938063298529552487345279556009884385724674394116526539430759427436865158675413742296241426042422228331604560332225918339490623600810751071368236020650256973094655854406568132655331816367905567649239964540058801048597228190961608559100756303223379178209726824657351836038407617890543182974378417194404645844164396498493666855073200693373377786502170857274720501819055897513253253756385964201783806825143940690132162375541424885300652582996807808604590803355418516983030543488537435704707732697556265096480187304574545267443565819953770071839308631401586720727946261204057629019683102961174324222583859664994156181027466749651799082403164173451462537450611828826394510084550553616381995171324467014548461533144016759568963403897008839928332460880138605987912503349219221245861773926493671018831553284329258056739112320070414838591869145613023673752338097695648118401087950533298978280192368485699317977478257664209881488441070743451067619345684837550017565078178913911034854799643831225240209807797352040196226081887633537292994088074682336726069823915026364527080190266985788468718542776751206546556023360774422523525394263500647263298899352417580484308388321456384959213387616479061338603184218351758442597966548582372400804764653893388608984412836439606747543781175313331192058408125947949929099582072050295812762590528070735163939740014960303077722924265079271068182772917776988236697622710301070053894102031938962544800632870591605006831983681896273427108442005021236114919282921479302096447126722196586584383923528006134974901971808619670732078227827424498422456431525899616081054016583569369450433276683528468929750607053058799798970180140013778072103140397454293096115905208952685631476621685164244043883587364254039747218855982961803442260135157595706479078632723460305712420000688960567038015124190180788959865945762331105179607674272951732561358008669095954066370082399579180106153741556107877880820187622380028330471569803152565479405617720971331782464644941564147671915949401073794615969085063161074978308021378233967749437135178448616723227026764203835180991071412340065674151963313043780534208338826044715539494074015643958203635167030954634824172966655735074356420413522993861624552039250448947855388649066902371399149569296096102044505031819098283905078406237324877327680234434640998973389200384551586001089967086944400237392428511315453331959304654251299687538386588973600906081997435201617315349930156805941906724680067492673332000048289773679195979385130683364100330283847559420176803879037239456606059505891101141276964088245900378355512328164618381324939970071457719665468388271567770929405679732650816654484213198478373421575759054249840808149078216363453372481737483371668477245942751948762118667055335951534796152473332664383065637984675857368664742676521975407715481710968523096571123257893407506575813951042759446552497462052312779378266475861950949029732865482793605660260524477450396161488261805741587511131915425246408065639890657550295086125213577286568837057810097024437205517807176084138427000234752941324668822305916740626581737930916095752702244319946444301202268831055430714088395875535193050923674271157009980264812875026043856016947729472139479964739180602895183097349392824900239146180239393562710205432721473421256968314628530674154605890631949076675145730194193079109901343928621046939213273603830282653401867534111908257324201834527848530593221222089726344358201801130981415324542478620433850680866902914907527511709901916485410078423282155363349910868718306013382985329663890365327562008882442393453146580346723070435829180982461827496191435399401613951661015256730550383830883868013102875399218768810618907009078160032066416682119793164136612276816610500365226140656771892477868444478940312234049167983101390078433559176352066605517273214626052601554112131499390677658054717363883553542300446113222580667483872727484632066198938319061571127491936968649034836781688441971301773432177476121717440048744133836151778406474894183035322946058806540203072733231000728248641755063546384783622017694365851967489730641449488204183772651765965338259101682765380685045915327581656055690157982041700021576363717267867689901866549603763945838271973150375394667605259423959979108826684939949996839806186403587736053204729616982241149538446196889486336449615700280908753947633225298144602077169598671044201052098996990111038307248760188453501285479840942604068845764037527293244187574078819469442746611524181138160687127765683224777439359096514616081874951708440510576440514569116914190446216207994257436169766444378582757794451089506374495530126964218236109176492513951357313133202566649159837434225752740392115357414064312663327466303074326237945354987608072806933500754011620638830933104810065704182021382843514640415524714386036798125629371519443109156708439605390615378757762184717420287186375723124770087101134548055704080801485640452303839415154562795694825604636400588269768156783300164227948355324568697054200986630907360710635862216092199947809581801509039080154869103998731426064846741158915743333543400537408871305382461278412104358641689741063281400068264034666086954848829809925067530717125179477681575310708917881816007133742202737692711045742837256435291148504662880577234354995363675623590320658052862841453142461585662243311070146633568338695582363400226875971320204320977476431509770813736117779493474154352699803414425735137199008264087854591406853293042191626981081441121774423103801369545025222812757674995894659195063034770698161948343980342521135320846189961409537761961470785090876374656667667216765858672141387507594049985882150469233988919896526494424172971998120752826912336723578927547574836235865515089511746111207957651098384109205127254219890203747127065879907476614447952800042050985917574693380263759176387448707314075438910505647155354075363759479252201469949217591374286784047859790681628387889278738823160079598591776997026948806702826445181286760143209300946882276844963729464024886945774199095085026050000652692361148394363893345854018674140596040926890771491944467130442240632318362473625244263015426978523467862810802161203707241266737638656567981858224990482807273655830256156487855085386322895198006619362566382105861163297545331180835823364396531659509046585492397369794807267167097248384773623063448828933478696862256813859271118453448421082291945924234553003892373418472339845157478325189049774255748851060975102701180486907485946478432354675057481897917187699754199740929998405387169070096910286838866359894923613300581054393240143674490718067873680177238042476704831912350674081233202265938000978025368952279455428188213291533330566164271054597994193095887463222469995296682146042534841783419154599670287814022821786719564406980210104355571700357155084448282019640323546908244547917464295777058766439558643697332360503020382179759934597800641804479494440828111450173213156969585100317659245434615061720627772077096088905609870998086563053468150111900094478030814503091708691173659155643913001966470887693904820803416227415719839305864803054706472427436530189737315060596972720023501264911260059170906662817429383928902794623994325737086799351059838552947573170064338380447870459528589638506149584009345789459309519775228466091215387185504515732514545915376858971459707000745275706781269563186658101527625847717569162595605540955479311542345608482412224332900203930435081353210220303706138028707937479315809250174022043804246120873373014951372395459610586336686443395584265300074017522696796550450323266675614419828500480735737018672030881525573103722713791694030694754698440590399804629153688784939660706752825158156632877541786545479731570829679804043208060605552515470340012167160784899236219057601211168971597918434429292844286369838449718093946281306698222246626892261855173209238516577831538360404491608162505545434489289957163887905762876895258769184390730411749882713169362681376411108533083160542156622136331968925807861301157734514511979848892403184164738876951654923947185250946870610599463273494029097835856439882302961170305238873604129796360942407014802137306662730139757756320074624048139593470024504748519650264707432276559360456916908373327536087272499300844189064108461522486589025043731062431944827626774454235564655163679991623541226976286759039399839733258006535586408776402425059990638045124630348606830673758379966233887083685486309213951850287415123396979372612462459522683351809557843444862509202335926555037097429625191074253682609776532353803276192240399171059079107719978879758552552679355019285901173825245032417282057797184865270193442183892484629588410675711761229192720055027539724104277824425403406496183756613737938864018228753768962422004827461883808475413549053491742137986641232987309030391995377902185556491845460125616851756261428408471194668505362520553367021121725833569574423293939296809576028467959009508812600610349764743510018667666878785170986274119934095554729591765411286976537723205915539241944068164170264460768162529278400107377454031893941713561584974059479177651128010196292585112524338369348007006850318461247923022292212334125027808873586800875598775641520226513032285359540030421492922223346409254217403544475348122650922964398946048841965374282225489946155556480821936235258525936073931127391433324666867448998085954890504040248589884832472862336898337988404459950260013696648164585931451514602681541995578721691613366207236735395280695026449118101897912119782123841745441097332703938425622843842298144491661737790172735862712444297771262344122409564981309460783133274477558205269579572382516028985747665902417532732479852136532256442995909186854186750940382958875103170237164039517838666808604100831775222974721026578173413718056269177280237137832875972619616477824053271766464880390974214194555760207634652053787244280809915984010610172649936054308816417132718049121698612848956910235075976726263369768797586364508786694989608970924217023665971994181864111179091973762589603296735975783159016045414931091229841632508559713068204007676524848947171682709116393611498149893500618546382233071834048818614889609710203645482292527445809796232659238227186828459374650704538280739067333990800406934250716726849376754491705651194955959837241650521590392293823188048104330504927689345417793200049361031360424513722658838196655819221674309524425364450480483414034330544337896210091974338210401953356370475966178418417297611261394144631370601712383515562937969811702061619027454516432314525308523419497508152167872462580527669977996372410559498213428997284682132402552035433333881345458340291611290426890920144902429300809760301500323905501469689665438735042846860361718180260126420464818812170373240409408447170818055068150878019717561755531774228386639255378995678099812486996942080800190120139233019408154504318618973624123847709442552771825209805981824043580616805101644679886166316255095274863293901580205665764993488891666080535726228320645969884527129889173682672116052823675855695519499483102227156453300494612302055327005677609225325553733707201267409474975447766874535858572074873642206738043337131795224101523051674160907041212753586394369953531299990359030692874005110639497535825267526449615976700491171121940273183584329678177986442454062277416281358703221796018913135513463047418307728690525012620630763194849119773451422950409955018402275243959971593774008449328676291290010426676981444198812561339812711898455968053985425687581866235401778585545693249563668285415934698094751566578157338934647033533593605159087285763667360373360921664337490606070966022651170499579862154576935425598799038199208027153902048654931484981815633221321427114697896165110089636914638194687084531293109182352409090778578325932584453278068661275427752563315843531766472085223314256873361323717301334150820421634849988034380473073038030372759373478461253518884720478573659407605008463893312926549746646182440323613981879660849543950352475417643022883778707993533395486113261654262323653074366744766250644048941594572343022570567867264253401646132292795043875283541530141682183313616735728870904525991560728589573359372646917393354025246343001252100084130023995595761651066611954981446054703172105832271832139798667890467614867199189632522185245992206846932134408212144826137254927695470040362822754878819443968822879924427719971902786184144441484210192592250471006973973636449001419805468624090084363575020877599077163411157342013595868189424671086190331699261608482037248336609536308518322266584164097072200219101730137094063686398309941541209756215475626567969901248856693747422517036741194244357664151617864375928672495101992856737225978391881156623598054449116024217340948584154738419648476298063891482954883683607833882289615830109955615331613016147625106544087632280498336007274449505574705178399314369716093661840988989642069743999225489464746630156517766011922726126699370751182181131938286440598804709238303363273031554184764776882056315074716742785631370014564149294291004554766669831663842345329900271558798815900332454763083956763969886942371103777389754500452174428357871603589113313086291202927102922930132862968070784746576656901548675872174249199995209749737630837077668024124338220720397255720831623355638605330651534495856537233888028180913407381195803067500144674218126011652164365995557221163075989622459959231271625915649876854745884628331023436783289565019647827165700851676067343801142194573958749525405275929565727413878436668986459114151574248131226154751976552907714833323460367943155672069831905919409738342731782140608349952981206772975817624975138830501774549161014891411960598570885841088109681696933510918499060893747531748880013703685459059718627316208159020554133004395349530521189493136369382772186841734523008758636152438227418120179333547002199413446460691277349727383428464414588530941016775336802300804997800053586617750814911832447533910494214407356068490005004382816534226075612728754776897342089857826710428402797088405977465807617698636463449039645801470529669163048833286654733566664201216340764134548416955898817716464901176549764487906542706675581553186336233778316816883990734276099320190056371185802467249218241607696194853851381948027799245167040417284603062306002676475154912801042033698340980593496669609206187632298917872447943354389729569030555422286721205316032144821802736284832897498626831342956272723959991364582300014524844012316712074718792278314369029881373367823822953286522514785486669680030953798804208966562453210860226264473326024671106490796242856859427677970036436385885724550013873760781775501926164836641795634054688419722048480289910947821420220709748989982659883977609139378436963439469496205174372710991884967302637154781305591961993667076596279473180565246040077879362223960285976834451399826674201017402516347509777656327915479319811851047465269666528435328389845054549414287278539060146275227150401260816728362515695949261779650870255022065462793827363728710611534360069434018095840941807186980756048904427314384104474249637297048323699543550472709715076972306288184730437295104648116047751587924143849461010186962402298043373968803656592920185333667311421210759131999800198071227854726629467029812421822727432626724658764143096280359260177808557818097122746964290944629120885999642391962683130894338205189990314573952994298143573003097968098685994561576999481227679224537222964873754505212278527049687847044773766295111898828715764346764873228995799168768868216454068056479495788182648132226334731454757351792492621764779898013410964427692578372463942240869392375796369970763146642318346949680315775441234668247734350866344478414990393001209781376297559085504555467599823108278136570801347146181248710883165564943730585029683424235474628050724812406826228788622352801252052233496005914329914152504608938901990419443307660977919004888232218123966255418788582474579860256738671656754474978633068164049146960226548891719082362088607903769179603499949902005495712377734242975416612327947856082103202700758004714963479887310484606319766791802811855935068009792383894292830993412757260941780399553663534932406611488589114125358401841096091624196353812952394048602967919913038539249982316045248749442286641844655818324656228592055529064016952496505370918381933879879061087301429500817569247435269126151535623078234106428396547741381986786848479434786383519843327337408458522275542919699145273396655193769896205784678353976866762473286584039076260104428549721083675638983865829924875174781489202000052842750055509408594251637454416847734168136742830819599817407675931223372798889174345081207885809791673076318967904286556680797056697927132608161002655415807260613242773483685170758886933959801092859945699518295704648992439970441963251816555936983741929288899428293096400271104746926389494746245295698060312211190494194970374573755267340181169243186081709051587399365972273395648805964482508201927553701167991338071136422687894070587826843757749740169404076463029863889038344711219199632313272490078203059604737245699893540124720203657442122473074370532463460174881332715374652089804179006584608571155110278638330949756305106664454511692187173291166629299481660278893992424581072747401552090996233006821792061250226929321116878979335521064156535857127939704342368855375847745681396163452832760800635206339161767802340376033298432368167626313648751175245361237381843831132176670427493799033647213595309666113350873463445114790552485095448792898510675427207277704938896955248594646947503820304237696621888725587301224333003841304315208324156028841317892058414212083888891995079012259220378355732014964478246078636532859088537022084419342697731255472873802783903017892387457030836809352010268960196653487033332159260663432159678762447587863798244151700722899182140683096698844785534568179961634223763850781099996727823226770908989062237715462866096345522653254932085025449848608329177701672314869439544330892615700414237238994193869540117390082259295772760964700860865487576928245559180380589138359107068256923665396425591976538533697331572672995489964137474586217688897132629492639858828104991345228465462279746793632751067269826872034816611851482885256534815371170287612177321518934679904355535858521423852560865048775496200851727595033939971628516716918300598254684863616276931675450752777472994463981958806508310522798261677890997820651723849582173540163476651255315944002972103011368488062633329881114532519735648198486089631155719450141006942336925206021248218112816482986036762569184426220431928209759710552130651479004425807308113909861450099829313616966292174689315870793580134161106518039732852441135477140384067945674773828696276161778109593511090130221200495644845540095134133382579304887560791021869461274040405439834112947686550016515524692747410975576671612990995584799402157980938748839224586653458492884669449296763977564909755044330796000383451687896857711806402648092812847185415413074766489581943978363617667292220562216297821095657949620184029302523272530506489120204987564632407451288012808035780709271007342350507694632689319617709236417379644901876304776169385782335692465590331343503477992694179008213686164141197241042010048505748215557939830897046530091734840327052491319226570657893484368877242891585706259233244063001830839684887382761721986103721297142910043975686517278131559302765425469226166801737779693008059620858116176187193708598969151318024069975986559094971555216342414503898660851164401277625381716925963445416647162265270288531367485605907442797658897481463676826388278517365083354297946327419341434846153494937457570680329943692161023116661216416144658447308318219377965932959500259915391880496769964665149335530501052123584272493248444971336736237149724801145860871819127942990440044083170283016337519899252297808146792286110367117381533920463061783843813293862543084362153606051183147788530938595308137402171897004282836278859238921634411550511361843134052972199440404790437743122918698855595563483014249671499956892712141018977531641129549121153482801848493887440348270194680556638104751710519566689080142662475260478379744165287834040336865408813428905659953936106348390654401490365419164888304252739012075405477223828341360131091113702553212284188209854434688167130946442942249533983955582662229092135793570679281696390171413202405524264261723894760595063172762297258194570998665150029412880374944110212986795982809466686847808420812149003323013620137527114570071925701009672952268769648808401768583118978405163737263696215181997987577720275413231769683305033958766175382549327294709643059906103752312091451852056017833795897402375467147410247751589272140965312792154584731199305230229917513192175991388951763606295297004533357599626869170593660140494649692051947671263428169526751137572140649523905180959626759728205377765401957238692894757753219205783365222168520152172731035219523732259624906448942882226342343308117864940400032818292432274915076659959461037132170715201803980884233468768464774266876434211443054389627075419093144392208917618847162523198501399863688397579639368545517566861150060808190961082215882805721304219520376510655299245628316184610098442618029866181234012314413173609140944170867253206810542642832843401999169376854614033204950411916709993969350057436598272468973204113647148365249401475928046743332725953378546592322443699306327069050282876176906023733964717024301609884777899368625395714706558422392700433521178659493613151097432500156088354417870260017536050423635130739121877946799365704746662592371746563429484501466867027548881699495503316138774323093192182037070639453235529880974346962012528939886612004045661506514798522195974201211372399772407122883104379786105974364917061327688528666468009440508896481771940442803423010269913680679608387023094030906275161454266380275584120855257952304561040134502880116723621713475571679432952287666725483846938030057691952278794862256850198386351580823007324120016044797915514371815157309438551063885468530958218416706673267055219293638819503447253027714802456319598911469096912697751922473571346243349770255993350702881111284711479280527196736637598287411140652864222175816307707899734714364375434972978365327939422265855725995881008605282405965578222969191933740880765175243783131571127975734480040243319360268388052173969926546241519170645213938068165889245206220763543803102988825024530840713614952879106809706314315454246320830685246228671161569523949933384898921010761194915561913556266328918006642634781853461260055956607506740187197145571700483343075858138339293772448983809787251074867880910027610019229572317838509241935457221957193917736955523665368754736417103423153250748830156609266058075287839095300244779074706404177373701043690447769914613620308081975631600296285197304045909151614912255698065485151036719303653488629647120386041490543115624960011247611396747396414487796837474052264352521373909591482021569943296131124332368114614648495615598739148588090324224305129666691340573178336110784403516771214522909701750755131456534366329682450796511232877945152046877118779581350055837152348846964713985934621345258556881199668521124015903892145811958634616767693793105134435395752259504647758924799946260570676768149838114462129844604825401685130036772484704839753151209175473358801651605865610627932754154971476840085313450243801246017937988010851700417696151063610036645435705458667021015305600700413863055095295181782145235526538271438335113069159420511650761628994844175549213912075606841560505022783974683675065412758382341116628047407912754081118960375017758410682115563289160407916590762982205330304880646963517977673424724545260180327977495212946592332658865746497567365183841573992264911032543758613972377805669368218253786534700039316102345103681912410918940756911217275704754961581423796173249173466479800914003062676023301045983297991304570331922717417018941036782625182295750117755194453788832989602841888217157030305834375874139706275628534896641432318629863341776387748970859152659592290869160440289606677370179954374350592548970950371019899309360846208646851130340410295024562529314726764950216128637971478362595000470155681432293554694415281216124381324258275998967505389874010306197278281853681565030494912914920673948652778992690559191674645567089369516377471863268675510980153014644574971790645754557308716225922304781076146459562759629372202601880414089333311305203613538021326670566011598154093784094972338652633314136970340239380821216153671172884853919662920370098161241455029126287157760092192999761787539608895744762326738719515503976523606065782809009827120971493972379054877183310735067366962576214567396465064944331582546103523623227683763854542137757382014057554922175792197449204557500127330568069231587853501277498212802740604118981467112060953210407356197940522113102224082645908975009524978717099466621651988629805887925694676659442526764149923996996792060460181159466962755411977573701564225917834850021731543994255003342673985525067897567055181118847978781592622573271451608251054763251884105902523086875128132591989765452615358609627713055334201215845673183702660240718614740983845314877795716629557001555222235436821682476800167454887186045838163728816734072612519536608960968730387273643546286451878908121342960259788282744970540565468361572969868558821745486951868823100120019324538833286375183762523674328902717733143674868461126769087084738460107534390514999758446404322401143206547801642319055152045713961841598200463973101118083109970944996905063576088052321532864277388925183323609038873363362311879326282968381826543059311966297368883453970137037774132276122570784829163949092236258809777404905463999400546258279110883194931757410508215679935758519692345579085960371540511286406988447760300450592762084200682448003854755640014523155132510561067707564405750316342294856594460474547919730169073708332467158190064365903650717096124822064199643484305920235835974916662185912751761037142992030158312557147208850136128893104266203213255959862463001124309709015792783482110833645913160400478770526495801018929161530683197475930400631676766826346106371832571974488150607189878802242646009590290418430367588911588182742232180788633010527450110761102373326076094290130393185515971739174348240050166750398503670167128388699157553367754330482200517879668948364289499578923468997172807218506858018458814245486511424709359026345999721646224034970355232575297193780332733357750230257980850117818657566033996077783982209586597052920342297774935285626941563861033761034838772062895329439068548862269431113480213821636579746082589089505523169509048278086675812697980742205562281522218121300127704215670981565650461084323440014699350549877221520016460029019694876703378311615077188039987654134051522556766308145732631524603952803893546763384646034043414012307221246366442098715522417520234253570754949106066194343487955283955263640309704723918603767165002292772770898843554355667507926098833357216284998449229406319366835951331865677206265635858983112857753871545452103379458855568800875820902139005991321442932101178579335558038129623428355006325124282827681573274242100861815454554166549130266476139877048598321735842917468984094587370919222938620277583888681113103616495457630892209976953885239740452368716281240414175222675442880924125533887968569881491971950880382398322467412004551170139080004067800209399093889615021555392049615971809207239729061384734585174317601927485295590679452957836269597724222513193104884685684331124864414806590049526760485673572435643871132218679368633599981290126050714505808347050222195793355891166662477099201152499737002882081188029100282280422993898373721206597569593500377627812018209227724513429537036809466984742554115582985757243025756382020437101263411355697385370217934283313908341966244282268114018139208069846289273630114702932845202419442855755800857172091471608912841015992079531659988873115806967086311514924623933066493170737613100835581461523421693185491486384580062908698338300001598819807655478971852556022113458380418066583418029808626769084674230731683431871363628805671828875707861956661835537203944669238240976657024203963771973803894824473882417258284040810889861890230669964577698419025581740437386071799220086054746712580115512315405710364224856613129762949712514540569529527944732202790891788456632594801579555332289698749722192980113251056515417712426881465227992988732919502565863859627269086597522229953447823175491008973342478403125129690352340706063298629902288020038915201402682399222044208884425710465756659988511898898388562411940258666514509618748687134012034173055366654180175292966363329799251037492356365497604548413001813047904260620889087220722602495955808351309389995381004375179113550519198288421225059577066634551013212611038777925414598135452438967539489631613004593691123285145556171005704500302013813881610536621704038621611957620241439102410406736669586615345195233628090393881944263846629456050717860688158771039490083683898105720108559569154145815094535541979653913595597937992598233092736303220770927754176062474217944262941839005807059889880834704748070634859709975524968700261477224942437085477968316026562009833131245296237240260677266382943762441202640734027760631411363597213069134998450500032105594459482502912102424248590585221948955236543425008021403786740671530779802725459176687549809373588153916892062582981491063529040277768239367579075984680014418258457590147511555036123352023620336526090299839273188390793546063137495340944937770644546330081230163757033660677938710680037211196956714129009419160163173962542147242241090026250305748847379125271806862380382514602177845581440865711058117432331952695487909528023532616884703764723057509950787013692636079323456052527807530984246104871673126605902460676440102848598021783000726076901146381454667996506778817095086095915497276546441186334785213915710236349751075362680181516918878336950368511449935245918259492438479222461157777975168067008717502060345689174342577024670343554797626993121123722189449286996602536969526149717851860268045993980936577190595503783272995098043779937396164514114392528915050381664426049169593023237471543396892405424740135013808088704943675466917149821378422380266942097870396583133487910941679151029025131501706941580618856646830699222482281864233337281225409274534194118942951275653213465483809070170961823292939214635438846454645979552114441017402922520010581758485834507133867993846131791570552176242238834287750365516627339448927354279368119735643453700083206056987179349564349356285938362248969025553592663872623361128276245456139732309042387223968602491785623196097599608712365144264592430287935020721727845188777743422446581834723288687590198676543734767037049511542842155511445170851342929119148181229397582279830314870672295164959612101919460147821432290114812457154846569542976270751836318022236864370992713919951269311046062100147419338443376998039344169967431772530627170353719826184197879834596917084586579308771109301884079952729571281379256997068016763791709600292485703789470238305928819034308458650011786015188809958570490609914763470507908964274714470742087975474996056628533592910670866735983037121508824469449192896852486317812403082103783261973844306644523858822988946675783600200761874896671440811546916068087069940740075177527153901592536774457517691817103657138548875838784249662507036504067890686090213875029029784507885815640982909315125276769234174375192333274623731855785144516860767511206533979404154309523082859625956203038626293995401358485611562876129865598335649448304731090473485887544414823221041601057146326281493906656772800095006670365809229469581736338897895517945309396926183788179994708812996740414166653413479991488952832905268116893408109205345611126873383861476939964584905113129271879247195979596469701816827798939454305287792919154990735169238813166575877958036003110224441152212361620176183386006428857243275029641123911720112250300224923179328820378300630392908759481366268763537768335485033102628278578004220506162734561932139755460348110856244440810281893310015068117352300158349565591173247287327146781832974677115571467503706836787358815275286200582250674867993023759818164550623342747518462186899878214890236211261667122714020766239240453992223582288196499278216729993173954869046787318787932232059578021383983787870205411217096451633546069694764939518815840812054338833857844031088281807009351508641486074682686326481295023655093487233333267962389371813113923777535355772316505570866391196948750542358019964550243587043550607556630636532847215003575402309941532767709957516015853550209999500687635760680655054935507313475268550992281289265768051574403882692176300631110150549133586645909930526946857426151781781511767408768197445148655018961263045688499458872304481188092978952914699437802854490296194324727391975068241504746924492608959647071865223116584801879954234326395181606104581655027319165495577356379751018128641133392332865687301208531607986282698314520539501262718603939538885252250313685883407424488362741740014052001885048888960084383920936054628792975151719189798313662101050130648792810412398065229470678541450242272046936991342276545767796407262558292615654236502711571305596810742258188536880469898490455774448992048697274490367153055202464762324852342729207655413489450450319303618637898503709642360909462880465811512822946201664608072474453409325001855181263910297149394745273687678701581402704760859330127062200829163414817479639398559039896955956521586424627845449549775591420962992940571201951552835058734867088148228130920878345646668320946555718339724091366135072724968529784532517544770346077307745919291325508827041686617202704581545513802021169221486924384943752765479607794930222845143881940094346441264147780084945396647874860013515058338180568087019439644711418340306635819769626134487642258786287465372020414464196360155602415212098661582513193447218037641217920790320896802620830452737963882260451275915576402245668020895168347922755645826373887697044079332864204857797421330795811517252481678519712474350463943524686233138420682429238998477897071850822150131010516869204779053980357051687313052700244617395216825335118413908039433500534250783681790682918488828963609933252098213253232820231369316150277722473788368443284710974589512867487880419750970106199318123632646337575681303160965263523557725169250425383659329456001173610120367915486525495666872930257254319372324651989432660173791907678319782346718056999219096167214979191058606867679379601569270296843471009780912293622738701535009719714754610112615717863157006172464036298294430902308983117021378520354922994634319416578708292958152694480708865952703053644943836946624018071008970744410822373043924151895080175631322692449625151561465945079658525089855339371379018967164882611435261336370730948917608057974090319958222793638364148860390787216299262530277238538998291371113074675199615808619912494046910043708622833705394189127930855491205130418134677741909128691226931655642236060163538116326364297125564479821343369234326883541957438014654418852049773357767171067452763993477954352948187736217312290871656499289269117460456195060761191411463192432588649503199655743392121979776573260183281505551551307488042908176823914867564156201208225953800309435585475085517093123533759315996433405810330594367665608390441175013796731949050732973259298109520512448305514020042163171895928393884286675972607189342608309999953135722375632364284920938736013133326936750105516334610164127316424863028064814876906647814284674526230030792509931568583518927331457234810612700895061803815570294282715035260214167148370413903798064577378306568986632415335141840818338401983235488590858928053232960561182653459735572773206057475878423274880208709357971973946318139538775751973896444582032654311687593563117379616559877197353730417227122278775594277252907512128147911476751403697558148998439978807572755216826099805130830371113968924255522333314874274631734432257894614661059584331752344510332531567786885083394041490131039229657146290066907218607625590330737255185069389282956039789739359558152225109722195564233888473170411844946399696393818797185958700825679999136188654633365147839956415145236224859475984662293497964948758679880816405070500720057568670937932401257547377158208100692188392824888162955046620355075160024779170496329853809381273675923358868691921038062455016164346038454795717910557283677132191300412364712458569808731465195836005996609797716270988496461857703285515168767605404273208425457953252070666479038313949294577441233561837796452327455642278620363753552174024261356595938265303626728221965135223581026464389607197746124256952580983619242512445097873369928150656658838010583159675074813591010997599511607004866907900069475886906926059108723326616918026313353294954558946643800233432601566771836839753489058188572087492187479151212970281359596960501793093269862550586815478542421959117932480699679622737972629898792552738803023948693115530078123875081486238726019099336721023572080106976199095112364537683457568101900377387433207230580442547885461852026479611844412421403601083478417546108170014766169807367025447248381090722822075752611592985361898960259520868330297869265079395770386742597823324104530517222429452469699209421357728500111718151910226132559368688348593757098343320012295028231962588799839423831936710202193894841912703252776685034996029008691195502577605099325200569961361127659905734110882528863380198566535838282681555949743778691344363265875846962757394613205720900021220427725660338806322741709695417407043955929940120159018084665368715188512220158211904367308438321390971649564763633409002585332353383475391816251798384614087947273676941425443627060243664481329395522910690887243446667021990599683707945321813068336097127718933526348176581107197109528554590146151094844545331367974074657166775962260211447458524440548049774481641953740146984368354387026894814922668431013416292088739137596245103235119259749532096898449458284409923306953438584785585513753380372872780604112761176479688235300558485611256473640814531770030539291811969394470939193028628639073125206329536402305334682199132275366949059557626272768434700706529358177985424091044393991702827712612149784323948456472417372887083570166823188160645482265968296797764406502137882955025247370244080513480266846024728407338809266426833746710092833195991160989657478497570641703767865139630138100597033070727049901668030354880186644654837002002691835348189625125477183639762380043418671362097839476944723023400875086024776397130978459393014780687969973828851785712900879580652590153974235517367584361059714456639309282639630914573905379177876681466689405341546045166860325836796653728864281786291599268150171977542611382836656227616875855759216054315368911479972426749080970970206706400460515457342300421428299754128655039985798429799349601532439122948666803205661171192150213041924533428205677853412223515356708130214142218265818293222239625970639754789320344815126566258964506674077416093279873254790874021789450268560264558502538985821569371504342532746392800098835514275644576709718949950609680854471539467032022100008257256324373071195158260326511749960751343036242845636583765135585699952710078360747826727322012884707951027486514754168288648592543999566244598296628911645521970023074946183393559473676199635605297894796160809161556705870917890207444380110099179055898109688236534652363792119534426248405283099642470643796954691148981610009231807570314114395930826909622181517523612194009423093766712210695776205484781520981695922749583122291252508924106294353201825188221801934515304797876699042985422826402930917083514760471253356845434489103165763005149098339758716110111346537114162123175896773533649208432500859065531570274709230559582700531426149655083199227017304902673348435608155016322817167616185299782182588477716939739771734928133629401338648638650026928342711623423153295818741150115515707627666386240205757440344076817800978246917959215811021732456601250904690480219794786175212836148092706335082130025350718785701292400159773103668213754029624583270700297514274165335412216969654357302492569057337331383979162185367370392618028441339849006547293784459723879433038555361593581778795552436602359198909630076923333980136809717778468441354815152501349045231517120391203097831069844591039064395390232927537194434787396425855877556367358455731836502131145224838932040148065680888794189789915552299723473696703118162266180963496498151046005297570595625820933087749096303695118277841011785235017259801861987297088148394623779662085332868547515896914702138690577814722566347514418770752501548620215663799330500941132701167479737330523438558917610263779800597060209618468697635458716441614766027967072637666450005230337954508854279098210652488471665985185289825883977306695417684661418038747305566712730729770101628674335095644909558397099218285119290355118133810220555115155120233422570444024942181403685890618412566714248273407752034835312567079438371737835356946283891419263108202428946832392457515072511005035989707269332512628050282826530828276944344528722703728547287424022571703799707332720559559977960890607974785964849687365754206850328558752408236157517909533763612658710236371872630021109847405660708092651057195624086529176627496507712684191082019916690077933234397934939138388653892177040186553769728729120548915423780835523813056988040294510907513434884267802137719168370056395883362068328865396865179132045988335568747740307978711964325760747693989865292116118373873187586422440524447061580642797126689099946000743224464096626164884923038289912858152187492084166135668794710136416343905386627378403906405386069130220093638762179020521126276519986213008461190829121697849478102517833454132592668446283583767299796332565091126306839606909966438802024087282397878253697341896843595328361787452630417342358989221173888094067243859900984625935590742080610234968860700316124938466548216971564301554728955516611360812010505625616466737668404797624569578398652735522108489854327028367990785958532786077694348780585080299393719620647384053823242123188428435095956324100219587382715200481744302910142381188262971345658407259182545087157423778609268700511925664884779386801634126972935725503640471590388396283805666737669942282581476819276731971061825871906896198574777652694141438173542332025395823998663692233181155503481226498975661534597080600031488185652904795842418762193777451953364446277448017143071864474430140996359248488007835931283481654181426067830806616515131011347839032934942588336763232891513315189278928684887951238638429740013566424963229778656599194006460360681769947699927960369856096954220165864999788985599914752848209821929252659905179977381341299150739947288896561658342242480620919338394054893697255733097949600540422495367419497488160437968349082687044668076920035574230857924564525851836529330060892873727626027169147475363681049491755253477482929874190607254194338440859939667234325001821062619845315754156893531428601042858143883201133220297698775011562015402133407835801863500863506964071103186934378048490546251482400178155567663869539105726435271399652129566572081445035413381194320043888929368571091813324340451091441102500604100763561877021204948767420240150944499993703368276674415066312031512703410010365508774078086189174180567103788192508674882868762947290538901653263251673586907991763980080880822204562005777974261619701938516327001376562423801916873748188966463342617472587752056305948579085891647080984612622684038272005618601403882974652266798926389997869462853252632627902300492844852248772617772782996578961147449621912196996027737330683984013075854109577266234722002834406947192398888416922071072091346057536113760010841146144967428692048875218454965303991772720016808698985008878170152782244531595084399190055680473943226291231877142120760856212461912342773715294657884503555020843392651841119496566034928024626225608118566043581864029167582637276204704857935342799751187193960636531160902279200067169201135396813273240650836134328673149156312800415968126572303377702966547011769194316523538558732867163393606419761283212890987195736110680866610541441381752459734885384809347038497110964311872708167020240598787810300291972977074235297229613449596612696857625324330488329571871062360150088223404151251169343593633288908568093392551603573112796610492672206663407075252957777940023816653603744044891894341538726856599728330222911499647275530172970978246108452168729147825174678495474106704245993930211879011005524824609316034666382384650926276664764164095124222910570837371167327356801552682104598758409586212407541611997558625886347623606458906267921803929001791295457981427633605108466998345983139504271588199702270582568982677024806962404019264692055493928492607031442456463672490742353094008594809309029446710393390928696315312782367287249631293445699834148712710174646126292060430917613514658539244109106891679454922044712198265278413751962084212984363482448222011718838706153870786937342504577141894457747771299171623547172288221181880681382891328340746873734829368321689043104523034007018150687909900010072508656560259250339401035480928735593149361382364039955336943503617592929800298504801849184824276983545683911110466569928952470685206431645547100869949396349738574708653519367643706726243055261449079293907298695909889788684664233101483260951713183880224838942007021474709674400187742114507483787626500283433342347641965104671284499018373294440976445025238678490656230356351145356066249319144094507287617013124687864531990827318268581623356410264664461598308664338504094920080957514137365561860576105317691110419519931385708187732533057880658813609584262958999688488450322957094871850009931985605736454809839298532717085396209852876356686840324396596818523229367316827893573920822035974188813559609517592392658682317198083010499178219307076245812033132496908991072221652790710648141594674714346018370515641132891480032864149606531633747053954175753199534301045595870899049370869769505841504630913305206537866114048356078331289306040973543848053354067033607671766475973017804279636216677450496598484004941688346433003752454907301968098208137930641496800887789108810483157008968810110505465431415557722031321675583170834113267499247388527215453598193556855315829408226983047605157520318394827287905346163142852866758359523484300477103752869101393303821946752295233737268709210051875052672357057091948838088265254739692421679901583703933472994771846441130471955321280466112482996316007032068217210217886091030838220477137125242498420459668978579825116161529153352311675829231303269887646676045118715604705464399360054401955323288161392597131071146426767528396950503498586088931765446907067742498663088680112884574197236830308160375651527024303145736241519091771047293577219124790924360870799326481058738557530873886684529931247094706587316297916458118099201981140304718246610960597610502062820727088313546592701496833476071197465166212331474872544601979457087730344233813188171948120115759293098074597847023154341637861261250632991585935281198758747369268526062721081342956743050733195241986630601189109398742382534467966361908355816225354308274129266254612067310193586361877661851598607655110436324233738618975483306658687471990905705780965151369207095549051140662886696020973540663126074049029355321855968123955701361117709575228655116341701877148611241944786338134629863384863330249755191388823607182792658219185064527774012697177863778311649039458039256645526863580580432357042146115335859312810714860025205895324210993473205638570512426009897323964452011855777781561883936834341232545298812961502095592510280980333984214981715407968412536339164082643269794362643637170729115319686924594251135921056214195397938382225954564808091242353894719287577064119221555346231121915058603229946725609899069147060991674078837476300478821596423711886428168783920762177515665767380996188645524075671889225426275050317035750824139048763947967166158534407712429058038348410654884789137497324987449505253429501118087029835281761245669420309862965766275446548893636957764908649257608233755164934101010915619004504407342579489153955630453956871772120510486892401513381188684227916596459180172816141783221235200426862917795662658800704361451125642037751985313926567789751508880129074583944224416813404720844904988333414887479897235480787959699816860634579445116673209636416174306140019180061795608950294097096726770472354779840828711364019909723380832063296104314167669429299462131257444065582258115434678011401852603237763134718692126524358939743394364474677706772564805077042495493607199434883263652861712206213601590581099115206169252853226556638891633940926619007249201722365289404662577751983405479282085583752280454082956158926461475419513650736248514357338451986884212657808373547626823640441536838777970003533051705268133558571640739017665554269009849473132560917259884946484024582046179748843871262130300212804487187326426853774690467324720677091052178336574977998731968624719679787888951832866566573615795398960025268186972434700059324059871838031698988672716705073027781314574178270542233698470727097889659064094434290266316070525684444503438058296709386229578741670708178425146730816856465176704222047703656615317165617822858246301823126447780997482840365319732295915403378308665909842620449014635960074874987251609491971658043504181272814057121660546532938457507058553291458866595734002949642087239651075543051340174038228604846285499371013285284079833821424144101891475190085905274168292664238593168815214661508836982957944331430292283231363668764893822268357404382417825090839485396604839455990815781342751214135890753066872751019065693323228592609888531048982825812229875671968927835204891984455431993152112114174838866504253858441290057211502688608689781101308803964389306586437751736638752422850951571082722739640138474247747119673173632853838608712570142422053043170466793709486380561612371269769490633631924871490711348634961206130702500856846517005766977780779464551535618127047118861706977868275670529868124164211545589428465099735018935489406296043096400596346007368782359919973450199522356833603175082030385214316289908296635586331850444663674050085718674229065840711945812451126135901605141026996187994611270765251799625023174939564611586858620439145013948992535717585581215962371246442149989575853087454534198625640317407007844633642088877387089158823020575477486566629343915837522296917848889518625466849210279312867872302959681165738666988552858905128879688679364198157082813982868020871486854387852356444733090753470558584492391799547796112566669048731785521535413463232159297555572849791803677129157055694475910631061419395537350971992967507677419802409936144219843617007172947628806666894131628834727589328952310281859422977338096901201368951457561203930589334383480249658680631161213979225853301863134930591752230013809611354480028870043389256835949627180046801869107302396912771483312092233404731923358233258597614552937821469175709477929272881119152931428343520377988811016044833612426628548954314679959935758023433370684545992681331732582732456721290606717642902917503467862581065160923488040412476217470392069584360486221288199571468222039402567895228230480510501735427315497680732107947419723449214463999547754512115177613729362857102942099814099493967607822204126318064657671520994169939069148567470421651721230376699780711980262281239533948868218391855274689301579350296162516562927451140027209977736259592213133710984075156094704330789321132437863623352535216263258986541899759034186539309100348163685717257922843230332386427972836868720744408221452433167523930988340374042936979259740251220475238108849993738479799802636754055430280854725796978463378112141164122444523773206341640768676811837539695140988302823909342560483577173000488862255291585594519028315102288480176024313322163362707993289422442046876627496606391651316421670095659970220042198520039809465222685720990919064186463645686288672512624039408648806788916695470931717163539310505213970882430619889543872284797413507365382232595025116075534441687414794559388573558298031852084045208272542961726697311762824765986006482701525752071420053704512080511755180272449965649019111124782777578602869413975316063858811487477901324291402721769010414364408281814474942547990380999317927323509955696159555248086197199447911526097113745860904739152041304682916517353897190920322501662583080891095121542112831845970012812768837786556585619908690290156044450063945241297695841445341614228924905163477398070509330445151466290203578444886095323512902404028926559487016567808185777722688886861991368477820995961164473861555018593364810541977216931009467701551628755524225473905885453017544270272868917487717173903464619137217137125892551172028092141860225246036735886991853294948432745284016761281508090757381882592742466129716316528341322965533043084721113684841770911907243716203111111160774707078403433816201829875639331153828181413202385557970227087135474001089358747379952842818140446139688805618365582199074290723725536738112301603227254673575484004573679626962858018281691318662242797295881909829801850183418056713919660768677128078758983527517514400585800577431894424015160011155769779061571251279771376604791055083728912217536692692575310112458295743668899103394605866539542917691068447319547401933457563568078596890376333072045386753213854838719466430840736826395703165379146586922033530460045573079913554806769772343336106461307458404161176190113590213093871513971900080984040411818389137357130085383086397360604856030603296304326866341762204364546112017146488851420947562126909648069339495635279476928282916037023629528216327636737446681410246215131977182751128542496357227492656609280391038779098655552981790262324587345159809471000415575909414301746728106176943030357491431754170280124874973276588650037950812809252452623059277389380305557392874516480133289454405299504870290618516122918382982827071414376856327414508442157224704554333404248274105916208980707446570404730785700010734208365178942098683774416338395499455908717098879957174849028478920595440588843349368718495731941251735448627398166342534122169183058060214712616442121400064795382947246276731628581613476293772064358748286243787452929494801343324902837073643870548659494585658027441305280345664497917792082917382450839675331625710871713137638892937614367014752034163908620972627122786305425228077490325325190253904242084799827966125807374216081085806649677592398239899194297350352008705718709926943809560854252770497617520590843130021819927971952337221667920638221832715218110618167964238377873036879971330188471983767696307923972204475451935585618924317823417697135554283148024988798730446550307888035968480482238443258194117554498903106235660709298434267274422514209782577702762007799224574523175944730556988072738453538682763188871096081574154949908911105972719940987655005829444785645001162176777988298795342900540246446598598382949809307070352382756299566781230875245870398684757950088987680807962903255489264098269527926292029054851294795728664561620758680592609486233253766946999501139847409920123722965414356775800986154767429887443858290459165608321433378687437051677203356687126073398402784462565546128485121587061820958849599144009064116623655250910273612789817451666325376241204758959169970095346671673062586729852597170579277497228523782796075477056117179903504794904432031699440400590692492888770374718202338723376087129325186087882000210265627995419334023807783592243774866307404253041358224977490125099808555260759233000907645444065220602822491685928090201727194707946742352070765730996613575434306498833173085777932528226591856364701586499593546401714140328353935299973366935885410774101901090434539131409243781874380510931815479902911344669992324282655380538173245919445719727542902816047902303770126748141483911139248673615670365462162208734833709289299011194233780885372034337019718815959365846683769813515108202914256745205981130733019786257961328240571400417728396135584148530812810766999272949564954810930256171630875697709220304374080827322929785487032321406686755905919836291532788636139840209845405807237569434868865321527519775056071761831339097865300929625868944867817427542626535703064049166439333921270429686625674141914962417743217192587153868267731610343457447145754847170271638270661132866549475537525751710114677641949319229235405170771686140718479217205226870038266347646863567937529307229271052316463549849115419273130536255803358445641421286072467897715709263362913088103337955883165903296836526995609200541293485395183940760322072726873902975540798885071343191032892495560547856462063660266641215201004138466789290763697257752381663296931548519859670273156207231890840171532194909735790602136587976467091301848314340630934643826353447659718812809284386302791430087225838514870214880036952194450652077446920307757253445155394255827371093309187953692052638008603790194684885866872334413915703486838283558524070387438099164531817851766999896473131030362857720675400170956359603729522311104463266535865548431301423435424069057254782152029815040587132805361576861076383314007468351436058039008765278512991933452997893424949890821265066813631587329555911369210286218580584915098248908317695194499309086861687629338877757682352823704193734259674545196698426777544422697232997130499958395391139645515214142122282772595006227105876510968121387289741730511826697562567587313799118132753480108240885680101059244751444574449856852624280813627279033642004387387606586573772540904529969741759054333341960509818262498185958901505935987711911851634049069762591820675973579902669457814065587689198138141562007644039383890840168934335129671072450083083984495216816078285573013884504817098151417490956185900221376010842809349085022471122717371443692488081951210445897567597855518605820226929201220538448661731214484432356141301906809710078590210214420861299950028520148647253358669316368164412078284047065108598337848458378912326637293259764258627894611422565587237622199105097609926623506265429481096601044116585947426623387545845199914353289929179640104643578739199203927522956891502117816592311430010409153453543488181140394051241169526471634542324561385141533047203901231822861980584108531251613308778230807836862314155446418456682999516620969104912630657816097979781692234358243316562515543701712712808701909203029222491644237937981439379182423215375013110474825360619377709046603408805770546628033076818508911536570672482532059035515508279666583943847675612933730415489357082706125609872367395499390713694276513312084312623956542122718536686754864938768554444119667643531057449943590621634753377178068777401720181787826398371124435843480487427927082482031525627058792193148689079468403816965373577787063515731388550728480945178544822091101193177642980141716282946055534826531804722668360850605400499575099675936104305019801982697728114853678040503112197206814165362904298880715955718775291755675660901096705483653950813092198348146486171416656684190169846018073725874644105153539289922250596776137665842951559391457941405729767070674264406014378434609206143926724105857276957787516877210419255529439745127764648405359183815083258707301202125517540370686420055971166753608581975153220776218642400021787154023129530071009403065834589264396426754377575419565781454430433511753117319030779945673728569381964244151926022186175829877136074876629803478033677358164865229602629097468445857107365069191821509346626125813681925021164390806236411288586196155488875257574301420533191268770837963949460480340858510160550697238290160321142690916365859175881842278945325416454808341190717074314259827669064048283369760042528145289671040504216182276910885903211935461236111108902625874545087599105993491564033337329792527584425953512123484885662516250390308117216588823253406863483410922562522215178442339176119795086835670450817124048046764433617396912214292597280006350736397479190629691444578103752200506127120604595013665779573438252271897076329989848731763475258197969321740911005343822828996764586449306269706117566853369453407954147014415632754508309192912518128288324644932837018565524627345072116389563067508356464957329717078319202264121389641966027106296863606837822537539185392926229064882241417315607804042482054862979042478190499404437362359864076967286442420575726373416363230430993063470249614176249467930196049405450829030608001795227101689427737030686169711341803820683324023086543750165892508990328156701204599715847938255895854281119343297495676732391155634771012041285658274375806289462549670119515958712274028194560460042902453836870702315631701527185027847101770105840173985066177702515055414118283618416365307965635131888041334291126649165961748810931633548134761919228905460455503772619542771236865772619598866469371741409863130569446290009127915909687738711075817851693775580931787401493226694087019838059261706719870048364069566904281221223955323282134839292639569756402594665180056094090526002796126981510062617017662583944023733559804431102737046889601092169628205482732543085581352102583964889858384148016970365128292008261130310498499765641274513188262335371101554772762800162437371200676649083067787592634584911327273262641978161852865719988659588674038832800615485738695973067875711777388217290170237802856760176495118993688486541904909194600906174127924346352072943044937552531889290328607653169646900145669066940867206947198702215443826630152054735944590274732484236118371375592027207687627144559794101599948616003807622405565401317713912986520087113806953557048033713378644317390104089627937414508799323456413705977846612375697023823989987926594087766667211598692260297027216289430777066520635968088557076934865739855390806476095808049933550871182535364748999770454181014251117747858469306874545253377546473657740130618332058042118883050407858505630889161267044862174479812689543712124714439841049692406811818839689976064404154281589201950887351393719883117328944060845824844099297941885945555455409384054696794240420222073634778130713724240906329479986721291326129543357407610351956860646542760975225042978980058982399040283351937145006420593778587596586838859557599295689306798705544067864660284664733021778058520558826206959964353493136794679022350587285067027327819409493895885746694493336523753454841129351749557335954475705261687235032097163727235722513639520211395951076546940858440317772770599854011615779999552307168942150485774091648331503661858822391331328106785658235687930095314083009690619094044273059162621660017042211434692790349034271571242596532534114534518901946783902457296480595422263245348796987790542491781464256957330874772411401864172106718988927140665360755756896744983924021988441459479061608586215827783333862370688749741783574435639505383419435961383161723393508393893693317448279858267034049501326458621162140004753120643677661365084247368654804347172554364446129604626510275723354305766429318932078388894064148382850922407860212281131085385781512316498241246830927474110677432485210167485177086965198600803058321357706401897642290132920880393280243481137462478423049480382565903430857023324410091371146958115779177509411714018955768014185276060166366640131027879056477639930956271025804318006960580276659478251521454614733031449449319370708754613379388891480802453211815475515565311645994368488164329416239233111960156594708131840581300186607446136868400920355509695029800387393380999085317580989179709156077026056865480801780984767149921025171628282693584982476299788090443986045665419358557289274391309239238989322030281532253957452002031719092304993178595307068698940544004263988306545532146360590606547330080308818520285858532954161884061616106104753659648583606404385094056117299842948891403253744721988161511565735301993500231349991687613594103511885884266287482109128667771952817274987096254623590434514041834274395849330999197191527923466875047527023291631940188846013441817714397061954927449288448713222342076385929645895466185053735119086246592256316282902539182509462527069702247156398682259491483346849626427624617783726053062193151517096534708618791191155067396105817602225189824997319169445996766748054406499115259297925597891724514997237977354188291565333401814829464602792135676134828108729729453224283189753225290217170356248676183339608822811803310283638391671028923245802899459412324059086690030054222972436158739797618677970895795794674206484872509634696209825618841862169371564868208789254423026736668263298214178032849967396951222536383832579124959289635518443693814496958665421540912198706061626147051661668318141976516331105784075307810136618074056120416397810300347150655979377388732539365627673515687545803962632937453487615340905700606999470538072689013430231238865938709209470420229119648562931597307273690467860622733725366416384306278210154731823994301022308185057384447333673170164243943615724003066518619441540809549791178828815974114523794123235010570099697836442983423425665031371394915458772342561820444811438745046909682652401619720318012832768732243608991989102326913715981629757805824708424297638894135485524901831059054024511251524520300284599983894595022598822234799051835104443063392726982981911252307803479915113266487993888361756367700682196088686244710791482898407641232969360443048822203477462806271270543796497469862933484639976275379973011592451242317930678375866269370198793020187025182473142429021419149519356186432271494041996323010001236594181252777193787398500454261469624291436847294094191772567342867573098633271666077360593779167226650622402096532609215107314575953992256305837052850359505823049510670127691501795215195034837352476159454251160987202085484803226009559863346219318265825511120582370568506798173428785558425272639309606683985111433609496238439426662564410124533291550332062243165588627386445952689110140537008021234191963672648404533142584831421196360935536324971589463001601776807120720654329908715271687486052892159011166481526709905864687488192168307971567633232832456855795633577565710558852490177280022971045612254685650486294145535902818963504496806367573054684157878583208400123399879117272702775639498637462584624998967870400622649631357454245842240553831056525857425255008019669604699466536412150691640499642770696568092800007859839491128517414318712137953060324397441168062501518320309652641688453713068606332497996611443996732258001462192194631893396749681069123969503032065629010153895436052610654343175255380219415469543751617674792013210321669388189069182475578209173905596065226475375990459910007769931915761429102811933965147903437355044494148535809687121730939366538698457558550905854877929229617281130754570179758739424320465446862970394480503860866298033623181821098240601625186888935722497914996187694886121698775280641307513367555261099640590089406567041524337884217387421008207088961915431684941409569762376149150983359751770825683697932208719475755001526786695872552983978341216812324835656941525041036952120981379606755282822931319936270218558308593323692377015889804399074292152977304864651389797097437379742045718317836342227016434679686624624624650113142971542782785798447278484074056363423740750811415343269246116536270896346933249115130894967758406015580637636997138649773338466586915534600166030784461520083665757969914776278869304875464926170018148371049904974570386066996123827954848201018646040816564050182998362103269694643492066900935812368169472584234490219167696177825006065017875833116485742782699674933213459723342439923072431966019569406217609526574299088141369683923837125974471421305990936510423086738021651747849151725866632313117531388125062783458434632065278404234766655543215939126392180624720085395844251415741169005933281075473628525471440176336505878412695337171649825009479890482394452898588028510341090539585573441890459191758560311067923180505782769243162848532833452003225429773000140906863366131794894836761424553170059099045890287754655096338738225453890258341718986789023829370535387280480664758949816770184938653954674998697599296436503052284566961589462603712443995732657388545191332257751715717821497346757885510325804440311075345330410609218104090254146558094232134193891532781670548815742674883934842951838162986509742265661083138386840170286936728719621646067651189061021002970633940800978679345744272636824629196568132743404275359720177595770666827108708650513251031472372628354560002543676196505394721333869351324758379692892044608709653265428414686934865829509490832827557138148903647236475718479485738967607901861334865943506112941671161444352988506351270498899022229875363333545713283286174435713927903077716555104493227797384646282204525428727747492051101997948860237060785988881921488038176108489878521246179004244180945799929558207633309908522634606971884623640893652027493354969900607363608349868205052579438772379134320095995008423412897983797782386596274363472492709738553663763082138504593288358708601857505665587738637292278047726102344009743581182872725074465640154034895095083401695221783739554348076901546548070185450169945763900766804002918024992718918749123080706654065086418667227831896279912130695724877203970773822296919949383196934036967834115249599325617610841494712341461101802650997331662467857667826024914856570307281735206403257690097056842821136768955595844643507790024024194402153794276003288675351616895724234156003703630249601715938796284774003145143505434179954185395001725022225603998808020481544239736825680952481336046151787284217610709632511662806025573863254517871957249112588637588033134086291953879556209272571268806809628402791816225401853102214501951887391702414152725794282794815375455141830434326389710491768749732080263874865192810999278160007251240456664167826046470404699973244084931856475587378828707773058744687743259508609242471029426779162428379034222630570047549630230575369852860162560837993227873809050574469876838774187607280265852432419601326555736075522939484323148002509121462126745851184924870717945677903802516499210698595711588570271759165867267473142036761169673554506481020858816324044441964773243723570450155703893107901275952766765420998405933775671243220438290883151999974640761417660971138517427863913836321900725546535062668351183770698470146084577807995739475494977208037638463982468222640913381785338444039679190251454814698585950523887475869483702800429952444898435209624135967650983783045010942356747966140038669737441085050094489824857076407853602739556694604663305049767131524493870675454897150126308126985638175417804194626595884218456404020646031821731230181278420232844853152053434693235209338915816140986110135917139201170391486717510689292164564878065236929591556626725146068423559743457358046033512934220171561303450234091588369890045712614347737613819909794220698552652380878917515778577253911574005244597584230567202885709241472456887220162534581064812466102961848494367583807433663577922262061808252301848002225635518380225521974268341388596949447133185510383402385807196366435881744474477806128322599123942373537711499174127042843260519251195677727215862927602749326737881221312811659030768780247183677425462036696339997658397132870189150337582218847778748104327667120162719603292420198925480763639886878470813887649792068715669653117721800635475882334291779991667311983126053760380467161438323584311499746463724912119477826376748919367765085110616930490249328349347979526276320385809469941052487574885690679273466282084847435820797899980798734995280000870367275727562660043584002762833940061259730525496734185694650955955462406497012404638854090882901850028272827449765435018502254850682474433517396133284857295997014603321402016083839562193634281416002351411382393483310922095306328629921508748109124604550588384722880270454376821006486866734469605711421372933598393634891926373827994158013324450739611009001202624643813961423853165194635890172990873598850245304084253674415268560231876906647202077118106539717616777151241478861117812991942447753945785858210712632887640029268536486643904755766573093193615491705341625191455056480218079801840106979374045146770914627021704976121463465003335590230160282527361055491627137417931134440610322672647237151344028553137992165507362230684534130490428311918183420251162521632937870807767994761342326906938011678710560910124143578912986978378343272768430608736127221310995975978378932754844052020812340618120281514301408599538915797683980599175382124054560490426931199066526045240087532793772040764006838501560649623891958274852853388564591686077652143327084952039105110962629141092101528922602051113036252653891056277077853533020971776523875138798229739552044413379606491947749523743603127027804739271715138196180101343605671199001615376715669630695755038114798989014801211967032545933483670579730826651277303733974347739292233486012098315500289884278884281249911620957441978550248428094257125171290845644860243094406561297301544663600097762765807529084011514614119601667437128891192807055914246025684704302189250022671907887384764390802749284892383843842390154091448018067370120681651586581362356114272931595271339880234371084048080121407692878347773693814215489132054837552254392130556023433117957195773450854795609453633670086835005971893537879088464011227981072504430788908240893385614824943969788126709636873084065457148858708505317893828255415157144868695129961661257295034988085544804676277912744047065344527219365348686074944315544197110960953875093630996943196244427983518668166213899908561886349048661885414295045585872231961671908289830884404691956382069913850811934344832243053183024390855099549272986644070956375095788921183866462278663885043504480629385402210211619994130014306700144187304203422698938921693562259535833842887298835864612680190246382429283962303481448800751608235532765702241035958948300809240595417651703229281752575515004659055465339041828200968438668487617510526614633385684943070807444910622625743039393039205014001109365388856311896802921964425809692023602694503492940623367899440965490234166641790742129290339799675783765678779795398457707796601135771998864242629723055113822114167343284507674845687243840971939890271391336833634151124473902768287299780928263443010748629230846908424910620397032054021814400232872945015795074951683552276173954590112676282784492897497897963429345642831466788790527641128302492683806582296326527155883425394051377050922102113728650657231569930445219021695042136797912401166302077367231105332035365973238674359836698010876109111704305201929058102481593147472252746224562183445494166831971994012327191164884302310534456509528717178074227846715147730533980392618589408577340411791098487062486215002564090460764222536780807665323838563907820931915151319430240949363677194373504369402567599440410913878786853942785056757928318876353986010100865509868624970507860961102557094905765325692793125824520839419709612821431571341585483787946825807601718128300213673197795845150687421771412707046539917158506854430497373003404673831728015998646849813181487797517961260434653356700827480850092576843045350761429772520853443834092577770660301293191688268959548580341750987249518895573703647159936041452774048774031803151332845887885016933187259793434829478622117765991882322345166420581953236766050619474819668864438256398923629305783486396428360188631168376114460756835739300322576731447847340338968084958706219006070606589710544431543794555836492389326769228513082052504219210063512090428448334288055954061214258155501575065364345024236926395716990975661009867735347596597230517728431345120767491532992102468668811256838931783731407178150633727135514585093254794577169051426459461118942004987394013683556594198339664619502323628714852205706149254771652961328515686841713490921667977852048987566633845143764912424095928329724832809308300536545568693183320791816824328314296219356129403656288434087058557839758654745281902001925750727836660538924078286168710402103553149415060145990327467723371457305826117769336101740965462572353722384011332879948802343839179768472476262528227344722302521650898327658316906573003000300419130674467323857671831225336040960742221350937928218577265118628763832646348434752281030305699633102353545809182804450781156588605020822752011296223166518737310359955644014496271287496804683241672134682654133367407946589342555908445810107453524468813315210364964511140681416994654822421945229325824205605838780834458601625786474133133552227210376966713250352751113482045003163014761018457179981151230599351560195202322373245807325767278156230229565395913588011473127913179768750462418150524204766795472744543146848947285011809277542285954953264953137511440281180888995777040085041852214551647209149748866058785749901706003010434928015114162625421878612745794236401027085811744230857279166504159974103955463686245371160949786293327692497213835253863907782038353265276475356593103755483446255048391168541314327643488648225266510583146554574684856407761069531893130616142873314902210746416095655911231968697189459820586062794921661263359788838721426949560416100776447423246243691466759719827063755090850385418845417923949504532555702878152578251601796362430633891256129970602387717077532137174220556324533077829380088173716679127594687929958740258555938275747413053377010795653653587928982188430919491906752018017419972450614303218724420886714588070233860362425648129784743314715218827408575156571082755059576637279313039436495897141057909385338387490068569508453474091408771632809478836703386765291003520041622914548325764899188757616676071414238198600768291363809326844943005188736734199698109620611290158200371948035289297510557975650097018807833486609397708856872885779052288546567788021830651255753593758559356104458194045951843246158922081672474399043213252735101108563659720760502414108697126989528994876507932143874331215141746398276545629989740882023800961845445361671409680551073920831952054742842394406922343332719061656413650694639922753959121501385291824525558274585987371096261952585912784990548392116883891224598061920148515922192660001698329862951120235124679146046592737627374037619986234120376178842585851735036436431431953662387759527126393815791493169804555258024333409655814920388662911589055230897779953008189405064466068562318682108081470864815574117775978653103646159405589710761400301220392470510402512840798475512060558733052299659026779078840473427367282563176606200238725027270256650249752596206761874188017312282645512915512962048067218193248298617673539598279090533879437102740147382589703080840561718524851407734105455360625636074962494885840429188110471019265077759623597865671561586353589000018701214786489328303703082407620573332891753850151400576245485177320078733279518953875058941599376876372081661201982570919047746296929817214371795998244704357822608725869222198304644487045427062493828212243347216984819388250964511391349132182096655863395825285022308254736914450057329748748086087051796889779934145177981564866692558147329091574659174714881810373889326657875940981411653022106133812463424385250623962214967589423453620744436338874347859392411089356179094510310968061265478675106803674630148792616651823588900248646077284883119738703456137978425945547621759925601989747878111739817983161340759073029743165655751686789995782895135648009853187005121265227033944001030953595219637598508474577729012321807956406512007054009027233555278933284101567007761415440512581480050453114439893510494405808644060457474481291269049999134331972353257555718684405367974103963272219161471381170756966458629649113117183934521993173459479707774883792575479847103115440256794360173388800591015775643457771277028777791063255752678750685554043021399962333089920042491910174835024140397637530251690509365255630171233036570084158403192934203833960432209011248129228080628998880224586911386077760436621938695447861038907381275644200692834130920494564550139898715790442378685160497770995503150286976395348378956534392688862799644403517128867778804037691895070380512839291755041427065173846573898234813871827996736916742272937621766990168150969796397277085414090142314676617890537689014746265395614869610610763072300375938420052042112132822396458305617978926669545275234451266927495224660566233585539655606664898490810414034438301831494356298261361166233262215082681113637395137334660486831511677650246936152749981898052017337278831137481548803239403363996641404510101120418178470703443639289134535470609786280229675908985028565555850767114122338182587187740875306641463652516178989731675313285480497478089814155555477749221338556020513415326770591713906269931725159024638430701206984960829261257984396524843540255621687054920239190727406519384587791681788118777382962985641711417090292572977131576032073348616098504969749083400575828146429554966886719799716066245667184921556954824873275590221273902740464569769629188075109357426630427257007926892171407240608761214092023493977497962481655107333275831421748021090850595718373563200459221085518276444586974671113809047161455210298963827050533449505571655466051307711371604827811358189177154652263563015977878138276698047589469408257944339526539815796911198874006594387074276963806491996765722602400126151307649008788116397660217481619791517632398349479460851471904887056353117681932865146620494088970496051238800680664554586405102231222506183260305746974795761298360844962814468254687194435261388518224625224252551319158874608200312995318182706160064692741080654246746947768127529406014390747198042273986146632885299837919215062713593195985770316707675387650496581487257121191610908198555626231991010194114843829966972150213992949657615718355312465323585852785442497836651391476569715541109070831095613534412508579943799756879184743318548446894930374602899276626916935113530814192038421802586622309221580217494237705266274041546549807954794951523456009146222609844949145671984907132891933521440566781696309547926793573585329664656865849490789440712318518230375855021827582648350603775569235302736783939274220811905007315901582300582435355105399719209049856975284958441909695767655078667726779396190447480649952320760075092102224687282898928857602532779755596069177131523457233900475894782555787345958322791268825026233962701722849230234218599170095915716343452227807847906966359183896197061241316394668467989028992182681383684573363119942061198347636674061756601469414490229168899466225420784825454782995942136583125282817773289881837496837135531342453386548477198497719685814803846196060185735363841829518069984631406545766426096264288074485660482385651866207107921869616013401117138926229876221559530458821936158300625815153329042046685635877760849268815285408493051183741191674368110387181260716130251501062523612150205969223079115638543818816993998239386808804248258599897870767798828040145388737085137284486225835014954368076464935896556711971486825113088958238319653039779546270928333331675146570678544333573588220178554220179798462027944283495911967472188992798671525546173279793584273497905099763462279274746291242302442059621374269564966144043945640964725658857696032451112251797371095424530670844221509429631084444717976207120511995134081004687376832431235171319690208852039066762190912858315871074153744351932587030991474420343988322935881924581009269707669247557784664481686109837262557692697015191105050193013328438526679069015656116395416313727459600675046001755502959699144028740560295295959501424653540070906399794936238640028183680142337057470179025634487325524658439154727324357020730146091233249857773923107393553154534931332044406963475696797455182855314143853710247771168703649851119646724508632372040815354267591500930699296937550965286510171192487003212647401291717254967740404240168486488471480224247263001333053929491136282797048519995653023070680170614360472670669727813191542279868278507977475685774914057097103739169559776938648257428560248875580318087912393094283114754047574355299531633879374672216315123914475849396462387537998150079123306871225805748843596908661507065162834461879745214400807750645941289769632587897441948220836238521539520924107445922280078839902301557281488285422257339430552482055162011665418279296776167483291582049258854909933391926188936527301830306472677634826773953305703534793229528683424880314091998999023386880890390673854775811274067242680123226320120368614088589014302190966312839975816091022505920852346879069914384183401744184847499749196975094444581837939145850115637806692758207228777663953806300194344710758186092657592136495519378969111599818323615934320404704267166208824176280303559571456672643827758267583210565392623862089686043501015181527046495109037561269405890645117216321585585204715770867277262729063669906600521343174099473647671825124584372581014652229710338703414515767261789979807409764854423026329810181300156845618569358738573222847711995221466764891541080851663449777578343060290776984981981089135297028765735590879648268067935578116786916041705857405864227467935420373558329344755541375664022474513367648986888579252391110815966585940067018132620982285393120850046806562037641993449459807378260762353680073110198944920245793525377951607922992341494820838848523567258025165884053069914903197878180345702435763986115652469178518431527905396797762380876442247236348801366050529127091139199219714117832354435951236472144331546810198911354871005929453469614998817067834405531074013887628000396459534682352818578738985915055921908646683907101489264637060823707782131958790730381221643932144107005710947570378622817284968238181071435680792784864117601180374227493172065647469940383843179374319131545114806363753899584625652462769630609031267075426379683018128294610084279792916239486934616837677700085504709258444245983347709029972296620049686363150770340188737086951330633959987985402083103015772897781621535292127126931165379820383197813295202226272532698067894719279284726634013979433382068318298461225167284529418835206186818623655487931687344942948881424352137250719053081746165204750406183228877225315652801347619903010449805196855599989321940400206963441158842051152062183773323725649126109252284116495718239560828663644699541167432467464532593935783621288282993664991482598652749283538731765777848148470253693008502154885391847336837542478583263182735996591350019532826553245987080301657897801666715039182480850703848227483282959248880996426303140792674191698770043138169420330111388918837392041232152874739957133325479101254899392573243034060287480579700457246614703223490897730985956234473856374529759156273273277309028833946551371288893097077609061912069511547132258216031486086309027999806239949553657805292226488075291516072844006313030525318759675191029122002592338126233271246397674145108931825503151229501966800135391206755774065719402659506218363430739100072619312423295581678610830602329174211615801500620551456813356500578308539342228166633616842841548447820628650934187600571877714303282173585487959745817347440908611002047231310839919418288950589454667438593671061788626458507860455626935974450109877961281148002794496680162340957136864111518539399842092765772817566163358177682794296334239239601562571817955830554576379298182033547098683827552859241546127891610024319409385037317171459015726527192071439782430804489211426219797408362975188576311940655788087016403292365584585778347084409625957750410517519795028808847875042339974979050767036763926645451570505787943888746643140843765757585085689594573448937254989874464766891090839744229645340541700770249275473589114498848949188327308253837679246357047185640923135995185944824713497231498977802314038362134589468230992441675411538562586461459873461623248888421836127450796651456542169563172819924817935426890309483049529120945742388958429662949593107107253461948669009494587446700130760546835881764902328387618795635871316586491223427670046886908892245124842642794683724439219870982448769332076016691252120917126831523468649933421114918104531481981356791383897730777300758433456513548282783353835236450670859224463237656926465028881394251184396306360909626851630715362170481077215349885629965039630222764890859169638137776158336039585621063694781784265644701659952815853933980276021113897967956279898151355290965871956187229583165654981354572445220865533665044790378109154625290575005177234126741669374264111336116295436034802989623686154909822200050908855193184018944382110472302874716012594708425599718995282004827545955213159731438782145559290117988997205107965975279882044756972118079692507350488217216910325092181454813086491158462829905826179493079432205378191516621424631052004005183092787825841452006487793437438599165038035535043713912463474186661267982322780453648323905033954257916766617212574463191384892232992755947998177547430571264838887468512290847352730436168403991126994857827788798289052965865808357018477923490205678974200952808762254356264367731784539835426940684375938188016014426518393903909417532546004668000199834590842562613368434736828811795464419617341783694791009176559496716979279928424490056997588185069155064762355760953124526429241629759594079591516536311200456517806062688827646849656180135852813724773662594467221215916071326132172565779215187908017058692711961280805278029863767307788643235653833690367220219812205469126798206662538379280634141731570432315535351630415181741862373675580816213693566785389304410939636757833573078330425033102884405190500945122628005307276880006398579803527294717173919710298452101257769349092869212023534919408149685091347550511425945586665821459858417082953231848855526621297822684516207049494189696655250050822950437615652951050032814645114545086960173477870882165799994290714123609612684025983104603730259893726068486029687007009656875606348635710047797251036653638186907481511641966135437066259386654278198413262656030719717618747359968123805340550835790179795273228875498090127348640580825135421961854307675721418096825346559349114153816791491095255555467702807966265456960496803690952884767228550649522821670275059423987454209474666326911736225213744875540875815625476317448675371372304427095899679044029309971524208678997132854504211293284525555994926459615040795587635779414063485459888766487643109650143907170848168692029967338494643040678436769861079718638880303411972903143761044542639868217861104621395636868660864100511116118465276702996474988001285934030433402134025441449751964899501649803127889530174249734541052034508582129096154915803985718012204403690633237128184636615106937277998476128020168636168127553932556925204640536334807582428548713752951795860043730555532902363152410482345926228220696821653495135320388738705275037251128186624834667523431886819548474989297453504904427027635387721654352810061406380645913669679619545624108202696171972453064650511710747518200035634884810422825783760619377766332393625569159546890023384418506069366166110988825884163846275274867617268465173572489446568296588039858797913866805083462203392667763841715286171815265821173186208109738406533054176547612530304741777463591734614975621392154099114329213906782664441435329590957218417033417168544968186000783276565467568757653510059979787041844171916594528111157963794607605563382774245889416940760196201682123269218781379900360783066589691818117219603520307521637060622384697470404969636077044546925193014536937800266251965653939774635998528921092299222378254480878480995217704329499707717230422206780929834742773487312720552663411307510326742898440646056826036852924514534116981818076985096370478083438822501526900233165848870984829118353660178819511752801849594689075187736881970030343494801683473083043675809790426093385107560051068995267922819811028122370772888075859546598208508933382770025291631134602398027235378438449592240137965985511311664716386915734989503396402435940851987160526688155832315706335875016838405987910114864514088244283938994162445011221328735950401701125479041321438381298973931642550622110831582685208808196474592533506742387844506241774850425114821945211797710433750701785869606391711510004800377903842446769077081487643203954768104631758665993899570056014880822378941771660522344707679288381073264854304649700500290582918910891534273705909769070275806846645268774488463244067378920155015076607198928335423920186900888781201824416299372096943170646375471103589212405195356332354073692415370775488278877708037596911841670385458567562665550085032360409909960686180874175097956671811218278207964352482980612602265225153827290303292114390527925928153475606280302953370833395050891568374648723661248333181402393118018495599998919454127942081513106005751825538880153774952439005038262531862790116859264997267318475922477737895337279591839554376059961298871442198141590386656310337265287499617058201767596369123016160732016816507380730244004949936009365268315397828330635569493838444227949681416913469656815380365689096868701006591707372694282336729583988788237167252804656335222262168085252706745444455626624728876065886886111418157367637086467275126768096579004248235967745247618126080586380917791876487211669684068923052360421199386375240803768073831131263324172000561352232028718413104493508582843008411023066471392904693545303765507210801570655279402144845178079256618820105195339686562355355627374901369810803145329307742249399888020808835092924205840191752227654409699960232191916677891768187756741903542111041427512181230767791383442578946643696718333977823142980100177933931790322171596638696044468758952160356470210610198216091829841955118969237251836579183815859317623697823252808317679107180414219113083101577968776987212657060953709992090830248863828613247618340482547552680921232775543714581458262849758035123474242327203488460959417375150161647409725957018204702996465116240383443712623388136724926906804357323785424814178793203599305360149777320944592806826815590292133315651979774613053408617636605568842133049858630978303769867507911183170071485114914831249353485982069772330725571075701076856287973197401255507668840398176065590999325088533226819331872589949467880128187008820966328765028168449904163925320599112836213367904912741017794278235641595329179030540526680005831892089037602546263747996700695814980455441861820538066051425847618748043820423387215452087864180239607735049315044902907715956767559346681000954945934634863421115373476652765762906879878397367404004003487513422129703374067864636167639023246114005383750111225815964169865772030281188348804171548071604565653471874661915512141741146664790232761106300479781224050185973097684302749173924142663017979995807108053157836303432249219588602862482340436914436869032272309617902273971520412016334000403292506307523346668040746112968376803400430038894347679984117446475927022720042007382217458529993391501804772599069591644828254161117428174096779326625181060057192316316463182248056867062631772992474803028622399599205678503527009296462659115636453922013292331694277372725703913802276779659493456483668867546200097290971710220218039609329587814329832621171389863668400459724349659704807315834463645212983387894556744542243402975420652167253100127793523075451295130428708957287038180593566946973154667938017600491278142905531603684863807620859388426075150508599617869769260022722049275464449664442760434734749582893606299767351736207933451080200620912411451482898163491432826379814135844881539314213442375755270831961279107940570322018110475992543384129426595599603370098366407125883260582583833434933750650611975653468222926319036181143691633583755247295214494963887061459427519271934935109209064530961274829049841436992570798723941322896421410753669570692021242840594096755282087902041080139471322431270147101312698993966530970601855235548269094475902339074089602796494604118474094197012532106977323463672612080163193916469865514635871644987207732575053826440800519537922000562953922583971058606352442542709651807659974564016226037729944901446114078740875354273228388339687650622280731278711634628171468818857751219469703042247163862006510552331454416634744359907104612633615994624270636396740522067088955883082124448363158901263254460149219845393638964607821102095957279407214663285162778076079771619779757132086873483649023136285754480061037251765713093535734541465349581364117002673904265036448805312667905419222560688970774793447970103708709946906802541010358721310494085741944425400117911591694917896217898379069300035742719788714061587544893929095025767862255227440597203724672469784724569658504797427474620989837842920069659305480508432255975779086231028114181886165635736614798524606258186444656601426026060835146545975413817779100212305997074923410045510945063056605712164260684262134349209934216693905029241958572191014965779304368497960938980334299762354586775635516606547892652908420346698239086609426438021200759746888522265390744321145971762503964301752669056186474628525438310979712992015610870499692268244384043418988975712075459590193199463381384078755996130934568497727119281371986618368823157468445521626857580855037823793455784349537328792411433602178712870471713230892623148966669298159628811111209586853714377942884238864551051763620767392639904451037887752194687366179787429474733854505639599726091784273766300765805401256387197491819145218135221494059924558148226990220046749575172594666774425384938839986873613682039216674832942452572937888683587957409402349089139113690961883805759570708816400500262785630684235570806013427140861584616306096486279565263030786514306718988353682324776516142555179773111488713614812187747582202877275327589606640324911639412439573150475992817429997067348193822693581327337789681977363658852725147473313249109982423411856567522319274342027545860127062444090411511543119687020400842535318792613446765970287857745021924689157924639921962539225057408536435304995331297325228443940107856497780143719585776584430109700718401557079663722489578507420563298044738175557636452839018737409144520912184538009578490738357583793735073551689211096754530020011791294227532443045690302447126526915135842334611489658923976164263694840812806613457692043635512605900244820434758144039491807087481410848363059953986643158947038859810360904529930862129045942221619774352612599770953857773853661647842572605901258017654571158247187841750060317361734799039867622717899954208440337541819565977302403410064363637160954298314300532760269358881768859873084596354394324051405435653292112338842559870229015889926880601592859146807410094889982507313391092449793480683191780640397553045353609994608876443465619934832368075237298837650931511206073069432304425435525403245812539110015337250038422666668885412171035052553345127839067944116297470562106285881161082045985934512952161813777667237266375865355010872163978437249956011984189710265209786022657320586075390064688792412409943305987264404004628350845948244993990199874498990401285900460313069090668060686574943915015045628009458752281032376907012987326559045215079465902291354363520681636242112145803581383163204076118662369740006317649557936026818429765278631789624499386618716510879805264835644714210360171767814411909358566742121569117723706840544114561813059289849023772788241390763549119414083541976192827713930632092553887920402020290404680921551604773730757713899672692877485956913972946063621706636357734441576714228933869796628044656786941895117097884639355667781406224396111146767148475163881111818696513218137169673036076264223180359825662961161721832239569440048584941861154148334892999936237872486994550603622032443286251850641379007732539145109361798554813415815221469432873640616431206022732192105027200359531045561373898185298490176311412235030067501306003338357080387875673024809126457907325810505089209886686852732829174907893378370213353036562661517516111561157093758779320942883553403886621632793105984358896591181736441898392222166252388335362691837077609072923168885402295030037340428300180914892004610479321826335484925217412925266156672598627918257472509666519277615630718746201756845638626732153958367795069180341231119057988383098457440049586381617651763842154982182965495074854001566539354018064503736455335458106394813567678562782966117138887232248694877621705985331881465239485732651747263948467988171779756078896543215288619621775575948486553522378313891277993717027292950994351740404844348500488531533276229029062831525135950603404458431263057250367301768586510402153083666737966492875200747052249697252143747565012139923634720330388272442805331765645858691204556457096535189228103860967135499703433153986392781400060031454364586892459045186668966444645767877024428663806890052600327486668837645729888048991664608456211905921940337435388415865021634789090264195444057707838374282184963553112550450739353870660996269998126745448840757283267519140309536688553459730258706467952648845635224146436882733103021436859752448114836074661529680498346127848067568613976829281447306444894691057301890094610512341920179658024166734977641371794014939023850669490831024333315681748468776427977183060680031556647181525622153833816080032167100489620419845985567026356999024716269571006047015525581965387599356617799294518499368336639669658413771868765103779093303145049779824131406715685629014806383801589621367217579079166680850819896520455245754201806701893244098329746129785072423588061827174966311240718290556815333158232044881398343271339252085937202347586762586526073993096460403408862937830118043571358004456725979956885711371690153325176864542533740271791900678367334921492355198072776883233483040379953918381220579949672978390969226289541278696367440243665897746346977980705324523028865687240633615709255723834087819858012115140941504580035852611381354973287357725291063686079620327447112269314714159315504286965576295859904798700040141897089021807703186484839790412725215421842561941907117266625251663925002030281923068820643691705613974319212237588790721213964197573620569733297713286261353670763082223767598811371718239600687417227405083262442485065635522457255386334660989766088041035047414570504065966209499003399383765459910628329800284800278902219883997484426710509420444119593759082541946561418482365043512338638475013016548651795601944743992896975551847416794998702180709847417872229401835106376566393762051464142658625991039156661118801532701180256431333841297074613027220927471090353297100501964574491425521954455889712898598897859671051454937490935715385595214260548903492729092001483318979058568603127552616441829973514382960166673962738908302472087100988519523684845335095559621368811419549194219723222985491875232935349444082541632531419641973529780460459714592258570799012972980711464549836194467504909917663701947335457598743701694817379122833241382910970829599583276327183821106587916580710096775592664876861599968691016840948808346378159147576696837075857298848742835712105665468892865589548413250053748814338571531900002588105499307168809932098695015292020518641299925151423931752988785447003831897941312805351646071471064570055345047021383351849982611001535525608334409368060480059487055089526295962829115368750403124196599191671804834553937674269392914200442666887903553935276890699060079501785035133004193960369347675821490192722818618479054102909700681343838463411075504515533427096740889022571508060884331051917079918281872466559167493243473162721730305003913563368294919800623136548482586587728942003167706211034835105224032495046024283501322863777086532199728400579234020884148328422984858248244331334366709421854337250647588815506925555292952485301545313185498110946161138738341336810599374715234590809922773270694921162849759204672682001371768136725627372074122755081109493743378564200172328811141175830717691852384890142229958022097887787262466082583788767983801174632757196508378175419156950148642152158068147483392660216841821818394121153973584453094142047829727681687478115253748648482840649093256720955327742549554606913271341889510970014104669936630212384386807752946804019100537981640052639839099625496426466830920997344198006460717958213134623761381213234145300482262941298870297131529406173275344706733859192793741830430252161286078460972414865254198594082742196713286638061857023038996533135257119475380293780821988048811721392692140133871064307670609954741378062139740359228329765487960788478458125428191026942931834675651570589177932441986855422605082228228425305744379109187687130181954933841869828714784349235072204635182509400910031163065975602426514470458809773430336680160401514210446700738532428142416003869592249539825589772935943311701596355324771276983135098883124699133405242050998412245733722187257794864963482799727337801092922174981266035283473789607288810540097055411722940076113273873115094517712258801458114879144912565676535215961612218615239257784058850742495246664747398539695746252192357550437421659291414171397594889616446652842857017151106530606846388323013697281071133075417928290018598636424226668487120066215707940715818366351928561632683105170450962910188701289123552252883676535983866457871789293910494392079200606217272952917140342360474160041869296431131757652123728074953915167382091977795423106903462447618933142366353300391375287319596494153476203378552167467313212689544154360492112453702887647452578548295417079304290108429356915276363457342983018593642494948414939172895650228958351075045351745884525721746510342253350837359957692909477397472008189871593058843652809335493541487416159040162677517187427704867219077240727694685191819017611725065335578845863115457920908242050116055435299267854820333449369026390836966476318234834176650146650131441999385997424386567795318710881705506055893962553576737329343881695091539609295356626835671623794268647096583984314310562324314657740020230811186850257495853431188064372717814002116353118588865178622716770841144957737189718350296756400523972339958534207178597135459714194937063942468902105405393509790615802644936434780648282453720453580449209018674584615859335639297600899966796805601638924920971165560721190542961642077805471466575571209266752244234333483444455202311028187209873398772450484388722014728362487843790829591335582789080474262311251364359017717348108687794070526320852426026188480413881088110032005483468232874665586460744928062701061809815464338972120623784092658425242036600420691186728738691988366976284411748822471267990806612320141639723937494664320999841837957601072908493398202211285612750290715456813748392611312140638787569298008532738948925409462391394565828080311667679709738329146831183104451040663533525804985500736439148016823623237714248455267225635120698797144984043206492480283491553047231250766333969674461968971918363384659173784818703588897392587281508367574950562789358352940153322350965020358914174916936557559557311080672411972176718465755345764690328466592969478022138157601725047368190672782846905445720706143140924600680520867168054546536952202441909994672547690095016454839176658463746179661294978652587547565034689729904710766564994794031603270589482310309981361461483085938180213188033826642519446823852573328950108365807358555958411953111168225799891517816039992151692675934221116444380880672011754998324877850004470035122281207371845383737288411161937201479470516735795125353381395758587417120165397967593528608886256387809703135930357755047880497089228119801691286718294760343082218889123069684964538564338205256284331509464846728947402267353656521000711034712170726502804405118363617601778253332660556697001845812386160727127823595790574862420971940638574270279037229617228165800112652018954466090387027103462816467986423372446295027416919726975422725971618550258729659904886827002740491010958941115070016809449537343599866506011090231510003395271412714016235185030522384635994610645656042905206105926082825793391129484473387089954653004790115906840259819810309948727195281413733068027698422275149138084349203048206428333273510080877353983041554711172941415511861541890688986047635738581129801236531018187863021588980922330261121915279221121361004871985438978147965142714349679809877325729167933565603449875852007233402086452708567686573271708847134061792630680427478220449096767052431753349433507631033406045960512580935103858796403441398573563984742347604386596299173934026583461620651446495543808295350617802316109646883625677433770734295976361254123526927745174026878491321850226116863071647651750533160997963083503100179043945462284113462245325465907404668419781720180345306234972302402069704937338937764487850328261675983475237114180088406786149302571563346648090456638194254462646048499850695535050368530813681133881006762260347011002915120564388918938020240170739255810016669895241280878840764637141068103758536633246151787207624727163801050619000745153538927795696612353967496524987018053900470390673975862412439565023280226294107571538007376902148489782033765382993941650677480877816057713928332626918815384699553825654480258843241774921738774010959758132135377255228869457289523516794678298171687152908229333481937918244260662314100819016855226876158522222067218075378684134604639498106812107166902304556683940752819621711409204696030174783927762224100776158414166195009814991442186929509351133931843284689021645583954616034520026341498603151003211180247223875856219394172165810907394948747423881639701318113079151876200535633571553827338760601142445667832706709907998220934875783885988145376341296847876746401077547311170621140482639502438027187147640821196840126260617809611980788925326108281024753752759289549798591372291180714575504883766375662276318579539259099645717164800832872753211618137806295090874572234470616519618039015591086534144350001159106358208592218246196343274679138522632498711944998583499377741023205813682769565918515981069844846972254340985908294515722544804027842638644315182672386966417289043917683668207916634319855550975725905661321700830531247846436946143021755869345940223806434095515886149050196941489399604371343591448746666004391285008525088227649001813294004589123383236696565620491459229513082144089649133377878794660591985775932547644570045612660274134389606485762714908230254126663447302503712255217488038512100915081111033318052584370534182364085048678177212335218183236990944371847666880312339232389419888317582681198797648512573262590267011542767196854285509199934845004663700888155011043743287510165009113355210686353351221108064058023949326350572434031365916175247310336491404834380898060684272334792699077015134341956899559982321569977481527767995785118321458094128247914476199213129340421242585897739174592690067086886928393818759349058898770740474422799376772216566246605042068992460107778625137100333559439388305708832115197682797833751785385761870038762401992970077140184926849694264966154675190933909305326184509116208819472220586864905021050039350192355091424756563441757799176524318717066952950880725592826517881232391533737666028038224202232838903607983154335010943852169325847365404956145249698062859592475449887382486964907112327965765843077978750245739468950131103702805019364457460527399524790738444710360891384484306805331099825096760867624297272720899731952242034899646837470911814786809979864004828922052276446290800311694517074165983212332612385957253381368039057992187582851737278928221519137607536261061788655321142232706788636570497329371134165047423408925387208729260950611260516270892262760724121916270535572719146111954281058913767983205246789918151103493834307062021133437358664120552447730825008301928628541992214009826981958196607483601268998061967878963953395921146032297414034013433273263163283385993566447229973480487545464807074790105299533459032723414630146067331385221446174426998275194039582599746610812208415729760016858291051946017327724440843820586842520477583854541338927116558145179246446404983773445918876138184704094680096702469419049035985549130053141825793702852297806794718065767244563657443075808223368622786842079469419272131853805318441164948039341710001333016972083441502777924784877132838838055647963108953169224757513034893180748767451984323699678635429263543649037962579899552467337578829576999925357932132615554128370452174186496030598489453657538723402965180220386513069862019930656113083383536103800635341656056344931434404526737569198664440665406158076313220105711794984828151989744299283047687636646985469234621646328417067071297763061705257859133442894537147387135448177342850604241799921865576075510486560754306439010438469441585432754181167864440993531615625440944655641724024748410837267833410615401903946117675733665493786771042819230872300115114261788860707221442160042385326082422518452301473511775889633360942501992614081526938923357149071186291265971989662649553920697227952849342720650771347349645125549305161472520341813127415638278598961185989533231981867170581523097343963228404813623574463837509948402504011638278201008508002617065937466997908265582917612714600389685245556938957527966085248893761365265896730991880570454881943967896931344131376041546795868678911344009537316859193091803170549587184530161809070766143042478152544156234440076998085429587576169426787461484157205759445612511090866663097720301719075654799069263073847081905962209084486050189405393558838815549791701757619925498478519707173351258282051260568893507890842528993596890603833920106336711307819224887331943006947757904088854468295817425728277458270400951564495056429592561421810998195516872118820763753530392751213888485973957995403878520055189471414557127259286068899819668486528082584748505504563463330776114814671540745554214169142827284759782017943381979684242476369332624212682464034953875922256207405364030477761180839705083228033616210009388000664280201054029227348339654318383827648317080511146517992737210834471990272230272492923218988266260180784235341123762252470762114866916442341382502740625909402252402020512412097862422551472888986694425210164496167589180490235391000144657833710579753975429133273483668848674197001115744287100993154487179683650658013512591567112529086169235700019720380561403119603522730935795003415759831374899075823793886839573621511010101434211763034859855354741517013605791425560996498032758117401824306938370444478527913382452976306460674718755186003980242166060489732367723032957838318043363591991962636353303363162945952149152085636340631092815684708423930182199746504182546887006807358636283054654580697821377779410052002569683494506555568989908760355703949292936839082355417955619214219051803646560729770966974477758785257917732768051721495972643808425243253688923920809568205276519106482561276438345262598959668450453090508685788460390831279400419494346745264985935601222554473638997040486417898754435519049636274064426544220210430356292223715819873904013616298718155312449890784749357890530527105202804729857908435860411255820228428177631731544691361849820983304112545047852390939229172797984803573802783709343653958424270490792117650310538591406353994013309294761849870295424049909733858044290496310282872380364437357853659564490978161620806424909161482360642100089099521111697657448568674049196149016584272842167213906348224145533877595197950675816223900144404788561351873959202623159248065896124969019224821015370843428219037676991127579052708934286384033118681262653583318757986725932542065141684657447376174401426584644610410672221393242834894300025665855726360361997844749523460734913763876603598604368545505764959207820192795998389611662286341671669207557345717529223896877632967253001749087598117049311799299671239094159881381577443046011397935838202791176412195005204383681794122279208425715624472158232276916055437801331191144325294032608277432904458829617409663958702218063282934930335202815517276098438498490484019362230337459163603728760222866619385622610696733873280473046134011999512761655005427903935615003654667803635417684907960136209661919106881106401997181289105302033588537944742737775316690399838248140162540209426549501114661686702196574956812451593191602703506851716111953130910018301943600256756805930526812629499483844581160464304245540520189117745981222057480108061330105722608642796323266395340010222792909464818216250151890375853331947530645373340717442298805979719663761962149553081732239927582251799466913774898410936856094535612337425005779436055125662907419520714070663667947580807550442616855008286551506183455158903778800024866386784672284787683668438724405458005726463891989560077902930101572872063586580061221444107089328538493810780767494876706081093427063301977052474517423551672296435860122700469708452397874241927305157547169323291164742252537958295266168323892220480121796622319906132118173572385140045129623592930947205254918884498743848398558772088625239119243111424934059382524819169039025130869865861170780346085998833698923874498136878872925344580949171095422206029742840867892697804930999418090714434036150633166915057958038162033366991759869063009338747773430573643621852514302698133177921050444784393219680425414499664255133787867325585358284313155784799280411243433713220853685837831019353685915821021977944775370897261017927660444043766759860534577860431011251026187258109123876120480393042056938445087152450872584177957670031583317200482253396130513031809292186526186265078471371791828369456308949183774536898301065598440920360835626288844176509889920225833009739361826306675326248465629145830639426045106139462489373249427190696465880283409091323650810481922244827057719670762137838360022451038564501192839324493668664893101108239712225043455941436320089906523582710823091282087737617754356385533318947278624229670088978582858658560170211770931001552870623424824570450765183096575869049594328396411736006356682039658581626031375328007362196293138718864579618064276657450380073815521500824826735035886940102314441738518651737063739690087816725714185428313581711367127047757515298268365055086200901501309523557555049808967283314881221905747912520398331162000001844043703266349588224842244187299706442108871655978483989063587008641471317546553528569457076060448589984348542681922190428625422017150610323214627095929200637373302786950659477262140624464034115319331476113995691000994839821908037383373677807899041049248806829683499074773363038143305158141191870767481779100867195078780980720820908326379466229690923307506261629398959790788109184546860977044815719216441677812421044672689563925610966550191638719099367764425669254024081908150289623698603386837048541210762452055802587880214835945043379084830603856282635635991161966561905300267041501444634788997610201635893829654711279839949531271704406475833737569298203115661500762717136651765945900475797325770818402857354016327274100636474616785985868536844077682242211445451576834391691606776023758247529428976850626812484631804930302039074577586462885121443782896131480885134264493987169479961260335722188347315675074180349465172513304591237961152172117894978852572188594736873599842427697599988794395030182852837628889966484517658225233583655697521040949306720832860454177141029215970334718377420491703380496588119148259649437619800735053198390429290082365372070726065491683025485731835762900619475945376697867097924184750868332252532791371536608225803991743101456303500082907149985196495577455940160768707693403541093792992298060404604602012933768951206310964107427537896492389530309287101194305803180770389202568976591720746818711041493205459136890441219526035309502914028741988013718940524896512493678600793950688766194751371454203179040083997211259933522460665047800759342074675671301049496187719031682602566539082796353109704876923919759830068898606269093697901997075396499626188494723418960138941372096400027159453144457026068488097750908340351378745313099224236554557319111707662039733758029803803007060741484390673258261101431100842776660034458001046462159574197473619243927530722177392318250881844545794426186234553703186189287359892604984930928892145668143318174831657330906576750580667080269709062638865305430280767150982364233732848744739299387582312553601932506186188005235425226372286833177543220867883657650050896889490778061337829724305049598203488300568144976937949092267656956600672679975225383130035061204448430445622943479685880671210578934864043442096147304511106146749432600541542469326195028300402468614291993408600862912601271851150739453214771661750190425244350002726516936504370662895954697977131801050359201703820046356712140690775711576303352473693904234578343190217057238211401675806798811707176900696357172342091029085428494971308935410599359119082829720949723075832188508587391953504487190549206795281216338155175017271877946976900151455362348151996299680858608522173214472869669699283773286657540772088156036313818070807813416813046227345075955851195302547998214253710273217840767205224958068180240711205771791588754080764025200800672799209153125214847065739608508543148496471917161090015682457152767153400295274011112605184504423213861070649841382660098103834476881761938257031099522186348408689467556915560514959923897619581250337205614442522289216831407211462459440031702465901757892179368491869521193002510505765952587490819066569473148069795302030072781779713656257896032448046362113724080811160330528489945939057501369255129036703510179402147137851229101772652285985211561369059044328241355504712271697608109296165770227965815441627623007596108859048177171345321398495517847975843078982295626846585888054999433911838654298914318035545562680208131501625032696770891645050507397282391588293358288569565191013029085206637159408989732026736722992464430965719190602733833003492174022903959762564900031228309185740620369209427404468730762391005566416150978702059451985308894053643675326548991950526624160338656948247243991805671327529044720991442194921499643067815141803275344817319097689987216476179935352859043612085817779340548111559403057395431176802103312572524111768920433743518656278702344430694039293558520650641784698918462054818585183121196710987589872088261712767711795800092389655558765646765104022633089095017477906184466201523386504908901098151245050974290292930496602742270653441754549218614768234943861095278610091823641794806156162778263105476434547903257898944018278050068274768756154941969367959146956722963570774728758474338961038851975071949152453252528576359545099681179115771319810865136397861234196157751211415476413296456816026799072499880151342536557928938623292275234869272515169652278559354632763785737108751005395370719541896430374845112442746289250851049577566871989094013424471442597932588327388923341786486724175036739930252289714698344823756590832031390398089603110177482180015542606068880857590783840384578650417280976098495536403940141149368073550128794684892578119409805196113515183158644161173451511285168703935208578860186845836418148157485221884471795951192277263283802497612146573576578443924696936534724751304147735989310050996014805741049287774950139755447774543422145847831258006623952813800044967379979209728885414085951497692512996031464871965466570407725320985066323067002808539342877364594219780056335377408228228804834631561920891558636082931861484549845785637302351828442224353267135893715368048756797095826549944248495097615609410735168576828277957946323827242178467305136906281393403923532023078128519173740843585706224760149773239341601171806440706260786214165494228995656462535344523436313438013778621996907627322521612226255008870092552858585296613869050633469072526593404944104758422520511803451837939666496801202812475583414106369852831451888153400375690279198159687040945148438926690650261136045788885142175198469397840789764776983315355286650235252685648057917748390925838653661186776225171056743949364471310819557617108129239284647938186306492430596478421742737569510004106541996164083841346704864263235151228009951491930190434505253479487447545420822290884795867261911107409383734242728131165515001490489747944568256437479816467720713945941985480247866459924276594626135489621066788364748477602954952364632335207775761667136153564279839782519262035276418696238787096363976522930325020280897423666959747061730080570083863081932752078204846491899703298206249324850753072178866274554448164997583485073369605078722713015165521857611436417129280682670938536186698311210553232381696115938122919775275072111926805624813617249380657304611219607178366595460365921779877919847484064085731387700834820426270883464751750200232979340993991744711293635716789138840856610101295541424207284386529940581840518192510127844276048689851771786408926204753337254693977560309830117202600402123336083583068074214507977326093866553360190649845306263925065821991059209481936620251384486765726230028976890637539801900606494868720038675021928168939651064493702277386690727998950589786857810884047798650982497950113551655717784793093664212210702805941164037063726651747401121592131172161656143837714075353183185643538296444338107633271360061268563998323641518731796973630518738896302628709164051341942131242889178703906222610370362589814979795838021853762475247603983380755122956325983074939807405805727486185385817776601246234238923000386918042118880213589930222372715503025114297767900861821630890656095190745733929176806654853156872936917059528090258026924561559732199318605815341541075535158967594951384621264156543690225779129846732320804123888143284229394812982458041541627176378123072214144808147244922017045986726820788096336707748580211749770649537054164528181988934565514967002160873351280247855763819559485949351996117471690360605356130317051076565744672085040429650732312866795442199417006870643020135500376368123447233332783965962746487157695576095882501179967757905621174213813888838622518788844512729715254475481724950019881990300220896704922702301963330745437900645134850596042308223909065970545166351333841929514619689613669963483371253798741135702386512861478008686702815198634253464605712066820972547270648489988916463259952730470459490121100452154320118202702754033189441349586851717422707159075191504994540176296060554877156575392665169420109817040990918005642647560497608536453444495094731740043581057676642867394766116677855393956882872497182415095290285868971150470086551402318460638868737632596723758750738689366568021997614709312053336183698979643398252445819212285543661778651977149297630600125898229622097956627373501166751136375766675321129897878760893918047852498344457780147083748989506759136965028875128446936474580367795293153740668419500640734403685187725056166926443196078953996017269567176911817567116115793405750105291033219794387451999238994473044382449052569029737093856596013810791146025938918423314462220591426529368374344158001346972528901198697128449362205181949827998910392675223573150480210848193109070130357150977412162687472595778252271853611787216108892224189527817654011870736964768409190209300034898020493501706140740595184981069718668846761049526817144730415593508934773488660256553308607241357740801778543171092862759117182797635309620314593315357455115475778901470444591582493001585662900212814852212528973836553159803635492679835243641245573920958650042864010385477934432529301918504930484229354648457307025223644235128545146785887583880127289989192708256186646995866547045615940882970186150324046904009512494565758947212465876879966012860681043168449668403995383584661796524912619735064221201137765084351627192996245905949554840928209081955188501209917088204234826881146659091633331250437188800879393999070840366460948654411799827326076050880384807565440070530891162467345612240374244196797903455659337874693452847688280471141962223696123576617199278891292991481894362936338200930047519351308144828342628079797141428770397374141319335483782777774430521287405360622891430396147148576990475610019587111091388467546371443063322504626956986710237387419521489953920953559654360174891365299325658398297111598917160901141514445366597155406563581552812086774919902605434185603253571256544424432780870600433978023737430517046203884271045377503165807753171994847330155422340084908663912821173949198477099042435664963113336421688895841453726552668749733142752550190094428451138723627075370496864723443051435862163177214880615988241005494323196097792101182188421311208119098325018469217175588402685512825282235453172908228733335903079486337844063436373167587038486344404656230937068950534995418983106145240504322421966101189030676776861014566120078984794739734325236913226308072399703720954405178864105757910656875807010916327288075017193460701598655149584303009230648545793549965051445256280796301563983246586708066963619274550341123358981391190607725702403137095900805443949491999036630661168303892482915605011375669994372644270530415611942280178324828523295114749870435686937816945783477892691214893881575501700588721403309449206237685250278243499276013554739170374102442730926375487215804838104404731478186388942406166891674952898959564706661234311723395797587885206702624000575978195063459098675217868688473311503572287694599188896151502089418318462176851726006049236557291147972127703893528284794433824003896032803623846113943834656824834303150163940569900321138652900726763401500631529050345543747915394491976078757755068707704495385463405847375135717225252363834065034813769625684942479987851810287447575861176305838669691922347337739465185157592686868146827387396993850718808691741216843607696626753697911308314277262295139195744578791750690735390268305642074761496505044905157458727578618886822732045399417843856633660008472569483765714275488858072287800827075369030461988912410608403725717121354557566526066806741617748392960957510407968507263431778023344707409779749264060224808164371900560302048535486423767506335718880064117086749671278826341541215817507472815449895136441540497575745000744143077826277803616363681417015263934109170743760227581571467781361229947709172949184224999185575694374945173017870938116060466539013749127972494193498550021782291425237801399080376714511477870102414117685006234052979431195554348786217130148451709295904949852445597993200235228892188593197068932239589574354515615123464086555109687213450540825234670714528051758200602355067371684321469297171998934365865254809525566039365645494950226009499918128179543607730461461009986237173971887532248726075615092374435930806492784102732081935812935192131179970311121505430449712824924319159778587634473075933170300167604984760185704564674571806107930194493384072441887955685916220155341348699103276910518718275287400587730313443742144302111565848243357354410098608319518968010978453356769559965256731619090569980075443882192689264100016687664272857623747245375803623815236699341622305338411904521403872011434650576139947681175867054957206517582203809329825583629667029623782002222776012496399127146534846403722887396225080571151926325996137047446647389289110247895316234852295044452588277446085599774498732029706166415162988531001678010830849456637779585204799438154580758861113218976748690862535181863379461899253123906477592152594033875862393131001372719160094737726563390269604329563508431310131169016528606235370826651597741927114953099493569196520166726545127854304586470084069415527761301312135167440596575662560675150815557741189638726581645557619819351543570206982558766851232600456267811253269984775344482688043067380488736960215367156523837643132598545586971227672896883280466097260026069446316337124440715690235962905617574674764199830064398378616505339189655577119827798335385602175756015949774729515689826370399546650155517754905553846242042634171639315369324108086535750493356658799934261976377618648762403051242066539432589582618817235596296435104083685777050827697237397666289059958447087593407261610831074581624557566985654207854752969656736643687477830788722477052827970761528059665757732914208657286239961302481874777034489585370975561637506772310071936177330548324196683387492077184009545030722630704121116246382573332040622804216413510504974079352462106276607590526728916460980618138102181009991426191976861062014373418281225199236165715440474808936968640105717143847158636631474091814721612493189190887935592948754942616288149564469242912704033062474127404117333569159036818307914475165573693640076989612017502935481692834246546740441188644188335662367755843664095247385562099848925128379527363540418777681846268209231566370156302689213467905861615523118904405658346219570577604000706943559855509984607494204230012690950412743468698798314049514248544713434803670847155026212957845091984835661305423890258586234384135465175975614534488154979351101552717266860706017799379188779969744195101623034926967600043098145291144650621864003148715326942718670302414771776204022620442760947034566146974075460875913036586295980443913172778525024361079747881326306714732745017741695468582796543836969298493622341892998847136149808263530428003689777271479382843655265763984760046557004994054864434597858200796971765935754814538854053642971053226492333914377369203225695436811010064015635710239206776445290589647825489720785559010272980592176681601726903733836301445453860616666711406937513811047470095650340462103031371346970963982603792095928083780060460604018911831585858909082068295390265383713935298006543161566868340828800837737917031877659419819423007466338264848944215929298293696932315844728413689729472419476167304280495884816907351676257193396158487670591292082959852383656946536223166724263512523308163331720324698447766511981519825300293811070676284923234917212228114088662967676923530329319338077152366560142194913310597658828716237703912569900132124885677532344500721460838126296802675804011058883982929005408883541240825320874471742962549690718014197391069450905225155080590896324647317465853718034968094994580973350390951937547005135794800966179451482602970345445060582844673023609796125470192388347365952969894799227042579174254633910421751569539664127607319750990259655081616475272836592100012459907933514235947555400982134750295856214000719051436255130955586876995797297375445145357884228958212026005112731635313083585223829087137298961109820673548993166000758916570397008493236843733969292194690187700025011642922610414216792410713692720192898952715671054635074815064291888537694707309685973315114912584085214508276829228004007347690672235515507094165625762108001765592802895744237257712797324318553234937190396968858548702664466372248252315653043782094593681597224414706190745574156384094795494076965992539972401461278033506000217884188102005181038397478213479523569439201968608724790464103720861435626867394859487041256895411575396684909528561445337121499113072097052454208542495590834874667680013611564695025908858699338238933671022213295985275021372861956424305441137276849596571151003639279657977968705603772990627929112634802900403109280890199369911540141409813691155340620647145718200239934093150992693775297419366873959661396871388082181103705231686076472170592195709456666066295397842044670573680542110127781784619796740093861361063749063077093167573690540107436637645966614905243170829995217095711195966626869289492049686070609389087945632306027598139917864392158298283689403155752071528709053988127267324151759273174673332306166588986136329509491399747564128295676152186887422533500378940794270645184138994862411896140612913429601073658710754908190954124491536608848130293168862118892447859309302987950294642917289952059904464228457331017969601128217768765792780132813237810050693233197000787945637025850120933857558445245297674752644658552274476223717561605619193142396558534500928155916440660874471035605289757606269024515627003294451059129341920863780174057908795344291111656157158617575554318074002427526511178228205131472444573166312825282711700519414891143946139330170314043398964876682729792937534644860348711658558974124690366819780092688652130374587902778954842073814643662430023677609948198848111226286652596964459112678460481217946012130314277449743207271872985136300953096261422989917620525715301437400831109000116528370607089665928773148874481825022364590576141134778119052061497278219534881234300967615270431127425137357616380817835794478571157356810464202373651534504199039462234119527017218015427204279512827666786694179456874137683143620334316364439901490453928924262301180690518351928987730248259307603227831406450700752400134809452846777638735904663954195506008537486897098423531034437936490828579480180368979262265559701517754889710272225136378525188532202939188776484969670747418223137695236974085233000282542186039256542780492658428646635690615616422974676877857173778264893988462404635186064421837627907011769397963681144570217204078655246457231933516067300328399977836593746713152594147778051542293852652296869039655960782412172105580064876412704429883175522411355789455556788066530158671714498372437290560941405996797957893111472496101288713530391278491162104628614660168814483157789021932683797574515952768881409134350735361873953581248288910948376582811394766972157892427479562143426260852485938447878918679691677039119171919690580780297783776431116818891754622114048223403888929959315674324912238500531403435444440208300847809427865121108862925055734414386693055789039642601301526617664511863192441842397652037957901128100158798430931119353609388444273886407850181743935066910242636561668337798788148887831575681670391836733201920544017202550855109747298816742431912537202069020694753736253115724018625088457350328867201096436832934103998975338077371413253765955015531277735011045864817248072999686705149929180161139667902766708240884856546434708073992913943204049989700106987153508482135257406537823915431776355065584062817995989845771281257615436676342636123649165051449777204808911493621256154953047284759349580243865143177871065351836480695824398718596263298086660944909282468234907892697467822999513049922057903759031424584494083704942925353474326703593858121178141790359226958464897215101897637573109531059872986865748890753422226829927423809914721854852659199369272603560540895899918531432798370624661527334405053923112012857614424338635425991669517608073732762449265854528153891716140750453484554721348883922530160221245280618646977351959174798664361511203361845148706899715560132153662497131165223305247832585975718732038018302008998489228848599874441986153584139820476207899580912965302354849182559563661632712144038708926856297307694230419810473761958420148328923197592299132024144566439346974762304042273512099264543084465750137780248087800014427717178654072961270089744036344498650788208407817070309665633248667859839767846809356792992792996421024580530075026578563451235336433991854464791485878464101849277026209134566373507222927889828657860039309001130217486212080569490114245130130487063760575410597658515364013303705880657961681192032866801757915696824335001874976172608240126512819601869952665355558390760411327440201482837323708966610908145488218003178392443366013082365275078008005107584663170757965003186258428426678384351680553279979654529921083793514720382945366544331972686159153218903005279085403413490168033760405674915266547743855507208189336116920698854270454080917602085133677151269721832224030176995364724035696023962847172365443689252395647270797071203302084208863008007461275586275242562414120958753477346506257207809629441418319463326459603077377506981097171829232052219136454418766771164521589445191468573138342673550279618977179576078912015107525264594369778824671229903463963870819098145568952792463377081924053797290846961960951041616004415443993815997690255911508033623494564457501802046631793125736787386307951608330284849153854585999216207393894906177718213321497002674766678309167334848249509007730243644787572879831179129905813920177864320919876521105126993583447172430192070325509064885445813548947311141991533080953371916099742534531671283317677069842593244048717569118838717837681978671181759715538865015498907963958586372846282804204463851621028963262531187087806106733019028464787219014897967194311600432902333622495461524977836534527077883253551303452273114433881669539072288015107844626607604692161640193480585154116962669351737374164918912527990344723827811952906054523757451883813249153530163004349857404288521718630287397048356374295256887106886984336323985709154446391789802332722297309269892141980595758383790437582528391493067604029285037714824486363853042285856959708592054597029481068313826765609329539139446633691719555866933409985374111743215921630005449923907525910260562016808777975415249608657382387153848609173114896576242369367926670812436852407177592563811134854009525102098256542192834083071388750223528749538190984910095709703971493936645588413976065776643250533432642170687555854675528591239406709514229512138071540311200403737126845046365348928934566185477892009767171137131978919881061846183920188735735322814230862312541441099096348099973210530585401827492969044364284435170669766004626150471618791920630902065671080377777669857827529788726964385634594146780151222404613396729266180361509041896244681090892145382911734350837171557463872065149734355433342230933832753525034786139650903800171341290800428136844192415327995960922967975096675985837788178637177334603547909324933555768917481773286288756098707209969009998761901825228917963865173454844294937201804149667694223354755239030445677289362540928254239792912010709702410771713632243308249573086762353556352125085007764342118142344926675875482299579531089693639396940223473322142483665004395333782027910675148529472428056199722294729019641590013594755168167298924484314072080361067001793356685838402247721468922260817345952351950393239719738268562444869858613173648953311407102995276478629105181153305315373159392288021909737431910292621560685181573422051963914767516808900613514875400814977790394722877429473821370273784496753462298900163611050698604731587278922399103195008199805893225794321165545148263226847069939659545958902190024255573759071039218740004911743401390455014564569269928454703215228712186844343540147628955717299851338893639389284278103913807921508607425231431287414977500413579022069791557147732388292491495261359254905099736796336751929768969555547388336428899083940716591695653693478729610538027021541675552888546672318750868432515047695515883610158039087812895287854403674400065309728186915590576737898210861826259207546256188250268900883837935695910705434052508806394607334309716185413578228671430845271503088722603968836234820273583091636005043752398507672633258877571232922295046619874796849275776252165462774889006883091750615765028153753253858626505524129332204038894862007923219186973642725095804765997711662571798723268788692259926479862153391798278794570683890532070291659525883064641097827152951416469475601975280648203401901544903329989684405323397354583170846040582984443248205309264174900469492003101023250619492407866675775794691930516484821900667732302045022557907329436028531955547357023135701622563500485459064408899873234322495980932666062528857121224824598217931091961728103989872599870370755951355250047761718777887383265024313349584814456865114029684879083071570893339174609693049906710831946593553981689475932604731958489238533799362441736722435670258902969060906654312453607581420112190662244417785467702410045280840095300232252366965948306565880525200202532835894789430061349990847014132137616312501589327328817394435720681279406293214156114676029491640580527849605772662544315034602044550534377804816755520118467832632653433938147631849201125751887608482654903432100877666655798437659473042646620984722385957802021872349233591715490082879499747750818518527361035067401639360211259764407127871867137630572261940038263887226911158947833933264954503878050226274286363701191681097373974862852246046519812433896514143173541182318467077315319787803408802373679237955312697626094272016740620677009110490773325959102189917068973745938256790556901010669374270186149559455902321388054354136324049579388944939912205045569405655861620214138175632256539970870230090424346350650590933772819755238978237956135733711168892414027792250233417969636535353650274402628463532905544949011308015413061437937155841882607064505567909673339970096168965341332426847995540779882254084594206029966501557949646966694464804868546619714773184004780077082795222522266029828414776943721605988604491614539565283054350486340756259629589310422429603330492924640829665457573367913832496163466115066942312200833534903295393118635447077011001785412303141892528129278689921149367040852168554489012793473822228816412038507281126561666592155869899520291101541632598818105998713384524914749657656108761473212089319878450210341363526858211717902876238299151844060936438994263046018823447075796627579940200264247718295881527638339637355994848232889739522633500694317403171726067079954062974743753903921057291459028762622979443385552564280891889170299889618083012952636276572379059227134290954981508275739444311514806295716990945637490785140878708528319219213024876977297996118643709451483141445783593763298558644834385841111455728201947252175186336396054167404816349916419292930079920096639850143606337796950719690271150347811063115277682481402110675291841225157467491507615179871271157899809446117313792586447641640849383364053712709593307033226373038340234119648035192938029633453890435300943021729107121985740034777274367987771647777165279649640701348947325706732104739116020784329404841413683256297913393835611526762604865077924036767098465410508485669117009175729747960619305784480182409071066519843204148882072135215166251254523760658015424331674067137254424084511340305066688754369558498881513084050815744051203475366520411179773006784894021024730269069406211099292718684827204456560818547126148270147559265340554539985436267301508069882826363250318712621345726163681687043313890671992099576445062069721648236265364272528872041453804650246350188926067441828068203983102684373602067040023921137463781580641121285107660132512443976079216452866795489780252576140064479922597579877744616198285779224194132069704573392294881063503025953790146564046209900444104798789683841836784116239853661425227607884603958578938644951302508834185897695621865122182989399729024854036258030072610876229345291297387296860686492831630869776294808473914460359131406002753522261806100797919004234954572360934174081517679119452589982344264088817778660415630891238975180211090557399575380499601647002805090326150911369759989137462501863799237347164655400690526910029511382163209971825870520370041098616959104818355310736129500866551769474040702130657185554076696051807335326649675516300116009146704445724880406703974075004826593487250566549231527046299471141556984840175766235868174226966916108739627268242515214308944070779007074030719849497351618810062492411095319469040104638286257479847131959970244507826909613110603751273099667376188469256495198268023149718949562124206953346219081904205091236711009447525555787829705281395019485468498597267738522961961114825014974580012059384220604150867583547879864190263808965537031155424701658283129229537251702620564514074092144911814488366114633724006803920182816761966841199398536382957249519926831458381235183060932133035936079123848825417023097645297420264064242521461800727623918128170455673626739605812739130098128244777510753656106456232732559911117992113291528057964288883373396815565779469819832851755186105372256415646670633079914512788570236275199251378048531789479333047672955838090959759535032719103603911097801617552142454119655741829755694698597275881546822572673373664502518192208994794181787445357598612111151281504975982066858063470750839907413470681345376876397814310057785061660214528834403260654532628819045947174613333391542221781730653464009848797645789979959222039715150502324953852680001083510664326810613200766000252769650736309211450609764648394676652804546096672914532488546861674352128248447493387154430098348782738287628089336018148513620757329949120970910714032069529840319515778790243138010900981990202653762983508524215079018340428323771220575209006210619205180083940504266729826304879966046294713888154584355046670665360414329000213471383292550279875941255834290460239855884486737607767650637637971810049973860287340648974935970793393951373403772635822744328917349115215759103161930888000659477885381163354188960225903935976705408181465910258749069445751488268849754272288298929147118967539081035873161634854743052115513190222402517736834148027653284398561358916526675867926920769638706454870465213288321979058484511688885951533360554467274132331326822031528575994957497440081719713122844529869144528571803080045403222438261219642310783003114468444175143776936878653643657990918265893851452867346694972205928781450550141139162478043331001065173391864869924014351716981898289759675951469443463581950210758365642969703565746566821798811558968399248037799369866894515139345685421235587717236088935584499689699504561340477621645655893570635583604618887241901655545396135327279013956576992061819139588649693720564379793137995357514886275942222467351795755004877536809062717775393234389980658657716098467130403142985952605827734751985398285804858611782440851190299514537307665240655887453195794149550278111694289008568966019619705459909626524329926421481547113074569855064882492147276630099164042074489588737910675823476237931976075283741047634725310541749204543199531721149020351958099414971267459069881861050728632035978604196992059787155864012218796149670048048960563382769752075512143991101836571269221900148027955850253926914382937484004650236405382269339657438353839784777623852517648160966440911235314892824745418779074178071433500940721030137598589528258146247402869717478070028564425412159485944902652383246548139066423981308980773295857958727165321542577562445829131908319012682898453981136310432960819672799812466245468757004123433193286652017257763630747511895781033484963445817208238402117425067463859648623005826382831877486133380819047103493473157606904774313940134380897663505392558193874845134826653007216598855533870623358411534206396435828279312503175645515385115256853596937347130191892774070932077940243640203043748827409708246657084329466710238149185659849721805444419201992293541477936501114939621046927833022527267815595605424932729205348734554992913276067558490418043052809745360503799905353659653225462267460877132655884881125437869626264931971450912348094877024564688640415386750896489188263548231481992468367607045497412856090880152586107237337310875452721292640531377604511172794471303592191240585436988209032772330931072050420653066405081525705446733989214337638680897766015553814590196228056220729743655932916748430874872993404357525935564024781484691046254959619429624436290936619030382623078584706117020077757096201444937512210005364668937091526753939092640520102035082116446558415969264323684884559930686365372255998824121303291815465830361262139876264854478674706806372918624438385936457013544178089749795918783607184726746558273713245434907017614129155143973420324131898497646928790440644769435587707060061419860637007587616120182133726415196756594246159225135496727506752111937935056236116108693629954475160079192953595576214334809207656115897718401874433119451019133779197229467672938932442220445555754657954989797788576208012397537880203782480245763702632562628943788997065823808860710584912513214645866595412163424650377473551415118048886603930256656652306615128617217598335844510209068220837156194737586267296760055381854026676596211821676608179713121335913501480259346611527927873608328906123294757559835250455365769743958150600683969650828572475950496185798605030062989706171428532872655673482726793375713979953003107846688544892914630751451451716232617855075710413423393968799512271763762179412295132724644613495799433690392330219590260184704328143584896742389764153846632678051186915976807487170098377793075018690274640609810310229747411065104912963897387444096698531217484793619641178799389339855150198369992726335785023327285805782353398832799032930360756225622681523277831452444458651574857356190963989799882474107653374487108127903783819759186821620739640574859535512067260125373471762426666992586779573000488122257582025686993348666570801261725857440176386469031687565312619690800409686800773796472656675611250054802087195406429726005092340225840520069306186744747940701904256678014798585014201172259116575555499002986037093478667951089403106769394107533012985680739538976761654633564364439655746403995302364813847050813336650299700833497699117059704912457818188860833706015754884271741627095420251396715287057462007271832651539613206520882734790219212528573408606993328303207224406937413634776305797781675414351445577763406580594862454428034020267331498940969289850302335375681654601086917196181571140529741012563201999389042999911813769785734479684442237586292616120924772599485400799613180835746074877455410279164443688404884180142573552293858993834331894915900451684791975733182319147227315712637057156167247160669567700249935946113071414744166753708162590374548045200440929706925995136616421591140420843707415814667212388069633775516820152296133883083276079205328387287449413495502398025348288029376663553680780124971155372738714707733152005823835972442577361872315226340464742356294187177565225705150460034056528807977163992716159079643650173048689407843121202459748003011861298769406560328664954069615418201389160189556749164385083607862002652417773415122431379818488215768928683626467175083223118392825065446948234591039677572559293489340152759347890955018940892814791201865753847420870261536158462979662779826237579583559165486865086178504087462496140179315074146996047789799990318427129520466819810027148892769257960454850566677672187578153481680009593105506403267036110529994975468174147619045439515230733452706905900661960651238572425778242928966543622653946950208939195335316223031202325260263871594919371573206787011673139463808203628324269119226035598495043945091080694486421350594217606505269747388081831925494757758014233534350224882157878106561736348356025313864422109609454216679582583750722565831670654180062828683983757639962118409720062015288487693868377876327480636093472353402278126423558974500805871616810793610223051987842946017182570581874329044940712473720333396885629057278689732038024020171231188171780326831781862390719252971160728215182643416473630365948814209446948339806175488703252676386583935948845876250291895777987398013401473681770775052775102328480489725758640486999128490843356190274634886613073547567166499803775230912227120916738320477588566364780461284934017915519406617795224114309288870660375135795079193416375795015640290637558110925516163425057432421032402664534958433296396967264040815953823587568146339309645903994686318661153602696934786292596661805455718647896284315846090691958532738337894987152398267387412489043936505509757728297790754215734742646891456101299023726147632879322873404498211171704983828675836354114023564492758223364652670290513639826362990621830859564853745957398067657182862448717593142628013176696489966649210305849390941566694201119699547837254333860301082022169395631706172100776336754640276873714758265054865036369728067280787951410422407088338062292969137595399777907805592613629749332535065597481038235771856300089621741648594491710372698538229456722494337997680617918488282894540356835672006544199299330289579203650349443159240818981110233192625855182379073028830013703938206511440883596726080863095775848974034332647539438973178984509008841025919168190129714428782669351555233096534689755284907091747332708810398779573554863187497363295600814500204288062573217842253329373961543791057430446310729195863601248793445678411402804877289264542968863022213885711875136480706134257340152491986800735788557120776407260075005332707151504363353513713232814032110028638043564250757076659198628465585155501454925668016119747010319012534361741715188081363643991740620301480305635461095815386869364860214065879038703420089979670471126271580839739137173059302146194324954288805657684442997006218607222519837779003923711007944428159950651286922755776773218649664578411218153093184070496568680113995526354373788355748650991016579256239020061259899474457960316339830148488848961363156496458945951653773851969076198698435146280852257436620985276727979685833620572398109656059253971718369189969372579889427108016736284101222941488826938575252601866554122677667448147236390645837219041149024925554551703812785733249396520038054593693685261617180987408254058496038190686221737698830620957424402315164315864791253440109023500772001309735899219209320333105854517697409859919037806242843452079098518777585695666162575508931910209285978556257395012947145586733160518428887652769008200342009954033238418483760979387393387482103113380650023535193530626625837627500855193055779730113909528473022147218677459047767318733900485976960788260282930923559968871138076317248160822042390792842160400977546124771890631268626666182964681143923071583077807286634975150193607506462762170784591734522136279706489744398103965374281977609871115009771626557043925713589619007011747009213236633431331249187983296361608196850886993384945525075429131003325248535136971045973316194971541353245899605995093882436659856650193844817438305419683496146187760637430307368770864627197117754924385901627069838489223083493390485275906338069890384705323303238674914591134712017948387337386510332050237214603592005386645913801127304058255914934415305077841607870183045708742670669182365070668251007105434367613793342561261075799291375664838692719043325991324593623110481887856667918743721401256492770624246487075977927550594089593036961459162539456960969114990745230960967086483636923631948339702725144279051337577225472213224877948409997033149015723763843023959777966771035795153988337928281840445764103243104530531366779900331354331721604083840834973138383659205984109825187793686418252397602146873233947146299577379719884738742798504622447356919447150157009058514037229615219284383440277447465312959735789277054791591464574968305065868090142003606646455447068909989323397140351926876749102105909559098551936368200796285803732594334208480282429567799474295832071753912379838330008482231075529981442391118121906943793119244410394029414955063450553310939363776098092783676838938791827553201363522627648657606016786428243614243044520207025998490473081789375494336571929473057587578574941924502647508165031066448149607428299426232228126834128064885903851265592254436858628954353982506462302074224637031367567240450972176378823437057254139394376461813146948724741543061447624603610156843831125289532576530473027342375003980873055747012897933593445558557454046225022841837998179002460798182070340445559356254891838119391682441109703485780876707659474269306180882058175792163868355492877569999670031367477456019573932390409955067601902070423099599651056492376172598183221799998526196366948085759248185519651733118418226262273475855475180707173322709611922963334839087572390977495515158404323373789947331616864885520926231073727234216742852164003300337669255625185642002276633318012377925796777289548928222897653186377599646123194644039221636941593601469563487575577697374861729250138872502567942700057128728267178281765466552306266591126373067099623667845666293666069472183776438727673551215123180341200669798939928159200899270179457925921956221622060749586894340301405150258382224962459096499397351017978406663312830996446049361786581529305932164208917457189884192008692983559270560725304476944103509957347962585109230619374066999718901386443679168668922748610377568271310433491262134469289963283124377532375644540993429085395696861496957723665100388595006342554480300345252848802677294223498407007770449381643807383053412223786382310435487143528985548475447020002552587140056196874244982569881608783425171554860411821043484238488099930515827796970301756815303980667505614911683616916265295437813682077622874259200971864709534655254966425048806181687017696272383001982773469058895064362405655213736754103883590631147315359879343130322401558075362837325434028689732073016623725836129666942596157565771293080335548156627191340923072358575478071622530377358138220685046903516482758120771958734414392951708972968808728457520195132902174376214705512657604809319960366748487793155445208060835166136502710176978041477817202284711066932516376414357893195033640839463749499993607450869347560989596402621466358122064716765611666739868952593635287522603157590922521297211030166669740744543499884095098543048524114578512573443989047451630417894352561644641212092782590621964293343935907567090862550404329132967928856082965395455447226181590682353999530279883793861533886686966727468598961974965877253378307890918604782750590601126693892563160568072423965138780105492149254808093538426461728563440829063659672878819590351906838395274068798145513719994874186110652948848852985552071275052907202528942534410692981316110142905729200815317276142384182964744382968429475609623713550990400843731018016510558339161873721815085329941783953348987885558711872345670298747270359573223822379968692972812776695901750695433749811401095639133648252900922352669686332471866459351829809904634673919485099833051530160554551184569489199617711788158422239560780714525500885760414353344573781933629006375578985623121600640358116900105007186474127187015362104399741949973299880819319372364141777503995642454927254987066917648972942036818272846086134688710497677849715863219100034232696737879616498779332000596064546792875568396601795055703877437513741553160601638424385446604028487084146891853894316397666491927123021417609207471705558995663205114135732980444947773535091551872195343571869807287790951823417465095533776254716528172303919203018972908255335629581516994925115972844254504725534753947509846861027165368058660683066967986011280652514156865579485323525417280765182271013621178173023742717868632522285527469280191297136410072399590369332151629416377427413347286325423625072850021156838351984440426055321830546830228843101242848313709383385975078797006695934957576733460185280443947138905678666228208460658350688816707452171929845301595643714449141627516855173306769802571869177070613586339806267876683293500780780022568575875794231128771915319090189076598283010868091875738499466980362120128771777601227316309011568238782465558683499233503620947833178728750008891700564172067876068624604325845567771693685557306205067751616130645446946951660975175080812361160827948070346593610511850005365255316132411849053204741527722354981118477338584593596344405988568232172449618039199672106235621229140455998740491252968928979641979949212871615310042217468255698277832017298186320751276242201898711369133575800927228446816645139411559984568342416407821147007617894862449118000213223126966376349440820711415626251229159847317012263176649103096947929502569774122665436095242681735064388646086492130089066277459111295400753979170749132948789027636133672226740304548650807999161766919260541037714240457549760310206051863902283942508357585672303813318898151527885166294496862785907968811318452293761257111255958754419270258212418446658310145611337674902076599731899786452944364536888801477840015874801332494249696322485575257705288563280048550666195812504264376347690170474177581322850797575606707273054923280736665084969490799832073892644182143952243182497359466059488605766850238106823701944553332738170495409163152141762645181895953451286652543879060760542565711304491120305956006597441660006555060034714288039843068759930663898448127871249437986356912962990121115136068554637400592677877042787194215790434338123598923349378372183797043636498512873704335286070010232576029426492931156063434668859904519468785293811578329989276906832319634260211442954981054337653044166903426297076593170893785761093858330069148039407047652805299805998009968289235791589044286188762943330322723778900870559045926309999059092118309646824426690463463202240709360769826450693057794166394178406881375877841700662967575331245312408415117201413146713347802643073172945598164629220096971627811734243884588950016374489522641353080884122235927655187117145123112940036292302492917253099482169597446911761940457252566426387757569046557186895211849934706336198761352771939694292121859294752575037917430314291180422735945326232080811134144750837177744626447251422150814521531790551220389701652600208937017741914726543632642174584739110296980885974075760512582346921722277031382080237278409269193266399090701645819006135493844165148159877761030483514640869694511556062828898189932549693415941068507759970069289719587204112263331298894704014247768034593066777173347161393684895377659840860206192992690488469976746760129701686027026676207549667327528704072335449087200641889883967029221927085364053641429102580900568318463006662751227525926470874510708799097865230362030845541251897549940219973387654802059074022392941254312679322883742031381658612533513061762772835223063139218075176363451337308688209550768030362021788345272029230443705814773430047848033010207988559438688437439374004149009443604166617720902076164819367680623432810956427788893551810653594614584422146336000079475534515209624569456490193973147693209239324352422071486373115025945673220239572636891791387577724259766614137630694437020736048937683417379516470230175557119386201929242480763676349452609606669882314950518877593682270410480422393593152873937880435059940229172188725953912759328527823566945762120707841334526504565176811457878343321181682366614566721007810358888045893275013427745228339287265357637420924673178645711246109442259382055625571839852058150421337175549309694050073601695508313858728189581572706146324934533047782761661820531004090966368952658465627745057580301193464806202817337223306014146859430271739476543833610850111173613357989399887959534806279969047917184622314561831668085222276985718957676473469519725626123655266802816376672141716569651878449441516743071143340488952811899109629202713064345402950344254018606699481471872367524650355337981491946561406341829693328442322035159556198776179628575410072378718852023286778512500470490283762013761418362248825018479179670332164014477870984114757438598151605342033199832559421881833356478999251608814232710992734640275204588916434897109688011356387459828404058921971747333867818527854953965697675100288457811181486253639078417038387527347894466593856325635986301410911276377937290443211057146867368386257726446624350561149201591840940261696619155782398570323639080741265157595633525376813311790155496551907973601464985758285939269513329191500634756054745197855109076039182825511024793004146093169809572611040628530089420865043159696881078212067208691459105689769138214185161938441583721537043813169606500023826699236739885464025443652544951431440982399809476765548255855013550991361770288420261006864630875614492872117783937794909566810662235468159697968567935789363428910944122150270287615490005307570189284003977426489009744355781591820325274277051501419503653378407328713511852086357478595088411491693621626847163990788467754582598630830149466808944450252193652460095029356251426376732335759885336838708973449392200577444196846524303208068809452740281613928944073448044519676017425237878184931217826987573420824899645963163360999528182397595334552777122762718217093441567171276331535619779292953556550897331914636688219048519009881862908085244641817727094114819733591403594706974975025373316952967819778309223508545575827811517755953624305226530402799651944478610001978137627499635478716873933304854675765368423213355990901803914183236642982631439182063225944473828638505659928717434015519278503401694125731048377690961581748115868356356779465911494507795983219257107918713492110511976432122102970405937316847247468030278352346680336767248121534184886092955844868643334259219174228350465766688574241392144114469809252155922038937567196024919168553556342792197112561831154916148191050009795527301359197843654956177661768199973722890705248202780158948910098202982597428196151269434883195470684596672260372568460344687271718170991213578073543588380061898230896101479195387300341715234212228944717599616232236134021398239559410907475426634392563284125922192659838925913433778473886415307654925205775714111148348226442442768225257397307060604700801634606945783358596476008805162998593038019030785008851331379083804306137170184362870872257536086516853343417482796724035586918520668487804487792801211371943665387805123181135879799343614114419933599327181906180875672847642216670923820345182932935428107912565070348960779229755883927141331470293003511488066217011526777761034322714046210768159014499260510170246677100902972671900309441592975562401287642897434041065424276206738492809072541704136896720471335962751004019278165853854526914690778294875680986363752117269120050503831703297370330211355416304022596265410342824021193143066543649216769764907625827250558542137623720542584170227243912347190221955747893267987587757012043108370624362933092441637286208044430527125636247788994119940181815259512406025628517775519372472257887259767749010653537121091903694169242813135159746302847520328830438082281543974774332070534850988245646195804512265476559931833216635021374471545118493064664876335172693272645551421617931232170827060923860846413163255934041193281101292147303138519736236249060558737320971646221460738600136154834040567014049656929271594781530857399490117664173721142046509086807850799934141063667980794552613120668563556715802145262387028630580481325803354450912206540082489051903459676820469476380918154425770825010565706144671592245666654580451683059194082592102709246776722406421323723519689298876593304724994744327483750519459030173634885909845474655009376590469858528926757507907058983728225480997171075879374960070318216305946702659248140590899258379060791447249793525473435791704602706809306340661974579076531780951833301245139067433991828472178641690413287129922900473165080967515935323693607638990852851373721336371302018487677976876013828762642794816865829811945771551909566072256152925421471330286771704480969542140070887390786214288987991061321303417922859900848221466663552803242962002870739525320400796406350542702220863765679432775841043789338108953913125090883405909792677738544869633014478723986024637856831742352845823321143877694080399019735212969623528732651525887313752522931594987225318897296938957233378114403208731709894032990815991409702267049442561765738735709346841333626205692450973311279016622131348885042040454481584550134437339519891433464810438150169970905063631018547690991392779634081990532609911544480559250793940402465351936603176424647957227219487072752754807437826465624810992002617785366511413062874346768650153819822880395002384051658615755945018022733844899613043145012644277729116108437738708923123645212641473164989808762415870530155094163544279228349715216785953216090717790930989621256869998940760648849300748396649313642175229508022614601929119732490070259764711949364638483576295661984775772944838094533302207306895047849701847696474822221889881558615411338231589685214094672444354309874641128490417889414084113773991570019752255707365964052596148521828165048926955156813415041545505567289735321514226729907245371317313508149192305896727733454607746954902357386291334392675288993224487168490964385166508108256285428536229907189246712823138226837893277772761069019813791942366063985381092033548708164009819470763861546099926276664536805179975234553028885958222623535474473648167436354096389593544752600737573088269602480770242616659549370627187075718770561409234045831674392103796863996365181633142106868118731771191559899700514168472171751189572988683101415554743679545842652437671940871996965464678610119139369766930867873417869695848942698295735226813355907000876190281727079501379903370251883406566869985859625462836968805386925971582387213218638184615566708521717869267157056950921557017038334014583761312501561180629662889434426219175344573705903186794251862449216132416868643740895995884841065297567412752085349236383043093056457735288276253547697571990415015315010130882555163835994621259132745912162287329113450458694739087376990918036806665431262180647103056293644978075710515295557782983997019691391145548429168036541834785500890970983613065160802469445384051226494174459530435753705993601067166343525947957763846169694721003702007445900376012251190786517720120049032571311056196291013264040828424334500418663573354834131008421048550207477553529568215926321860165162623489986373994061528978091987470776122638526833195615787635523923655222262696092356236323201436169284313518319810395038539229126537385206870291858251964948820158443324049088104266850448789048012317049714596988102575760071841648221704003207801824646381561366873328498531636053737801186749351558386601937862369270244399440468449715712121759464915912417587880702626392807939762953251664057167728082808188027726599374104585388176194720716248053091409317557074101758459734332503938214336358476938853058327067257439767087132402160258666600436177048366450578901273636215017746090501844357720893367736783485166481684707825801024985556304088539171288808930716474780975445384205393984393922151427490540711569720641654893079259463145620747115220661011246236377485924664366031250109583796719290972861998017429781509016176718094356140943154260928462107980504910211742650627456041190319200577614608439979864130005482734365348117619976671765219748229984024905118091384988814611297491558563372294688759697786267794863895245792887559191043241224392461422891099617763311265541344218828547367541027215429983960309733216601481831413020836280130731436143275562734474176213733079435981410037036626374857037364462305078827573726647268112460281131686648134553411299551587895046973412914128064208765197628844527348484241762734729901893902042650317743724667226987277968236989081546636258338319662495332749034922945485178899454144971170595402662616012042655380444832405602402043041201384797544266850785319343405187519350393252008870181775238372377211772777260339006903543571945676392525695510110412423710552172017650865047827657942431707603189782953060416157658828589335533531427733648748794311936372022764780435690438427900611464228392676426104409163569070984529436338830471828225346015748539847623460604670569194434193940667466143909709231795495231839364370039171780824952785900355831580486358868743203729833500528173744894471707823196951737862463258311751162631720611639427625786158318401161334805437175840945019322000535426566138501854518432782961291398266599470305378660327963079375775479883367550064827234895627436192086986473305772642625390538533179530114364147395399694757145670508391529800174664013982897163406885529715812153013904996345278320817866149511531385300463074973561838927247576082261886745058997631486853708612423818035931804149125521061040644000536220165610908528043155992019796130562101113727726265503355828615527905551224484857202981816062350211216479160733933222465322134910425823515984286192401923948888376311121631633750927298979677543627001541070601794124478950376427544174365070286307288697252814638311765583300925565365024514013218333418625892707127314378360340919409605101375826551248316658123982292776078262368238175600415533796936270813539676885046630710295701040214786008035417305216387679218154139752178027630608371518478917368801048425968695736557858223966325722182066796101955828882152941338526809972008576401571299187856924766496439751492505533816735609357890537515004283215126334497519760937396955823417207974721484320021646138003112092567509167856819899172945945780199108398388320021728131213167648675929665788198828887834362775359456141129819086840308321956982597083160270125077733544100618778262927165097353485438957254232793979232028223016241564837862014790469817960006749964744832572983317510568511116081025559517963217950076479289501132592114434662708975405984574844264594656680099640411185157760450902598975241943256415302517279487797327641227371435223047170411493979348370905029079182880359354196830752352957757598937611830487011806985043230537017200416440838158060033681925878074769839987443833906927456173691084561762807547192530234979985216922031774379963316714407842825195940780151339915149805278589879572011827695424194199283756976774627723826492811530108029781211575065501538713487286217738902173066452769626110209608866270710659884974411221497930923960709918396218895439856991924207295569930375149475795615474846763742874433308884883060102804642629975869037631222406687918180380274113642017481400603929495321807720814087163777850899684069775748845292147811685962009352652187530614351496880458139124892093933909216408345040197945749936112336578925292762995850134021876853412413743319897561907522448233733778347272075604449469609542413546901864529173081016363231172996111975169539476716045310630711551685781650254734981736050342741413117058319403651096885753788870141818035879077685522784696686581669183038166115853525150918392084306113315937043613423852971984677951490273021242314213511417347667314663184179164915354001428379121204401791566565677713492459639990780443582341075836350171069360721878194469010904177793924403164556367941405079997046649397562929812583316704018726228833019539773882589495028126442403574640866517199641210692482433182560850872241425337601998028328955810809881582370505554271719877794215518891037222173902908735312393116285871957075722152159135261911174682362560823833405722481179471488631779485453382054565839653313131746301700057305779525017782427133069645071252836123475660023197925179198392981450922784410797055241069392131472556300691475989228795396566488048927491322822895807718701331781328556244386338678135256428623657677734706032328740034440307882196974242470070770075393405332414691993205400387992166169817345319573527095361395426557438079484954523691165751213404428090955974827288602198562896376335756224474197577603538818725881749914782940113151168264046040160765591603024901127326221645830939817040641652723996192615635125950720513935179832988476496690000497043796807652117371848981138909882210248225725621527316325236348169977401092510088065337094368073241891686134428250476764705553318973719416083143838372328599133963323798342501226123826550280426573723951075485051418944172026592036546639768837693451197014905826545072579231076163853159579673358385460929922010328425727323312186207856392524004979572663859371722654285036496679089370948692934217781262670234096209739727009174515086150251014182426002074744152811309204992765104036451253479309274899438795561112837052565664374502832390480982863093539518771576413855734215652697664311195524534419019546959950332693545029843623596580434783822906750339966030754554602268137213078477734827964933233550009502330249093094932894606098363829854018309121082560627267388270582496520679596549691841837192996591907242092825250817123841430700948868759318292598141110756467144581116289666637039652580127870139939529504864105413242912218200461319030921105035937538093302891011850841625682202120661394243418665410830129065567583533345498344783768494818859306537918791467444848271815786514980975107890615243819908558784116273481621643103534852522652642478231918911944017777804690677206379412081328755529185899880554677395591214587530801828968372681058989525888572202354192612274384259543523634228155797442614629006304560764456593125374422339043848321743190875502238152434404367501466175632987915434074342459026415019898907130520044397360742697845334723723497241778067985896641741451161060696187430483112148145545431748688337881532598558757996745210584383534373648714360107145288366123310457000994570575243772217723100500192847587027603212831218625878083136492060393739107462827448348429890760325655205867539869962990005956981567500577487059545910627147781771937542966186338300613435560780303488960079275902744634654364416598058498312468538094046016521435906750020361157003866815706166749441373344536945531065626318395952215632384459664557756105194597407414724803126911591647582982985831095494479314087702555303972119024956240111262988011795876702230059058077999567527386174153386704220627526565502900446874174139052372882424489380728478924763104871610453417140434393458425869675208424786526993157067784602614051531355111386683238307670403238718511844257612656017718282749138874797966316969470947409347072846907480467277585771505126409334034801633170750644315786298585950596605087953304537459472868859631333679255835765105516294109626845509636368767436673070201607176857489177624565971376513440818990797780853725890725970126091792766238657206021410573747272624178230559463956477257584062659246057322500442341372425091339028628265648437839307832202024848686560168979358458244017200265995324733800047357423408358492015068518527834696190291736878857983780058298938613980850153981956109383605421109412598464769577703323719649727785121319756764553811609552355225961405205435056578208865887682022627842803650639289894558293871181422929336366965997092515684027380697249687951397106019173294494380273723625819054167306537272167120675546308039084227564271839781335400383446476776672403231620590581913738920169166890156010987385110635896295446835505628957632824830928628512945943281636767501115741597512130211453060530418644902486696918209818742166519885586139720879617150334033485981004304852295262588997941228144887101963760177320115312891720637520478550533335420887279928874383464428516974159588003386823141078792392031666466052407567565987111429690083187612327647144044497021759661265200262707029923921246788880642854204305026612972877427484126260921786738419870666274848432825280234331513201045478775149514017571843273230150000956953918731406550890168544798584647970601852697635360581776813321369229031351270298303390339464510446683163037664417689556771335044693214132579879865383603217569734933956231486647046658663174836536688838396303222721028869722460532916163180318529705321530235287225594748219018319178104248182165599780711358033267970142903559725279481349152780036420475547354110482883579581470099746219259410104173889665757389441207857215691124041643020708606372193078758233222668998827059428430673837104803915778247392186796130265841414732273469051160592755908023607893864025952201150061491317020778733645564159422817438081840028719468568017163390974056772035525392681109525387528470158839689294213792387873085233979991789781245699989867331719653401246176779757515842028658984197161829398548783255115031031289761486064260468328344814416096779831261233305385485272571851394485242813033575963431750989459578016758707698993425404151255860702855818878871187369070185927765956141817433045077942663595428882972372540312344773561087682267019534412007688153618086309563794314152656009036207342125508008631521450923973669260099676905375453059193127403700903561304401171468732549722415724905215902909023307104951459121729334721641874424269565415919550389689047786556850960067225933406955124307909088900643035668518419588927064362337333454092353059314828293238200743199602934752533768377977350078933505410411720281651866592412864263426277839852651454049752372450540655409983475363573993531755345799021427141108153751731905236651674641403637585614351200372706078829512540642786391403766735264017492298628800959418469404892636042361860622222482152948752577216998988508003347191684903823029598361064719325354312232618010116066073113695967539951028550980953680598440799043902844702529685969630508720390884122662621841489987078025721497860127257890958229438664996102734158977820816306591952173396359586260385843048279351070884234180518995533184518333212741777409065350460300614855442409518455713725936069543868710974601214842730173462202676375337768432398198000071041647072793739006707597145267671426296686951445047174326616282265571052676976193798462930818877846898222970113796941347152722146794358775038371106221141146834565736459169241258694942183287786631877368503688151731955266311418606271973184219214720852550859319301245906230410009404939029910201618585831467891879416387769642179253698768416927831202244716471020302527961005480550585527757398650976460514276703200483870747285913316193565772914751212732888090345480491787992573608359469631390169115120132788553655547957623336882160983861954646686590197388778151602929189770850572288584015594284229589056486478186705523299455866538811722611478765620086192927000755824973773704775189962599930818796950103046351201687496565547291148736311397430270370966822894584314871182841372907751504432981665661975558887200704048597308966447064206915280970347541804441376616166753109682588499215917243073062059838317686591061726401630670618343246679816701620355358605819936191810992611646538942658340453831775104300841595579025951286958290415660456304881366773177226429976846186165267002165282522994141870743516802925840490394994367178815159900216487526163144395293532791804067689017566545264891726838860695964951647912777838587245939212406405801716648912662037223519075796954924852060726501051399911679834470512042044516224565174638138912718676220474693946646549592772855403904121629609053419088195388935480782378334063928134340352389724651935078757540071312466865446387858101874297796839414518511549618528163414593002994070834749146055731508176995297487049409865473086348853368384713278185210841262620158380865455586751880777363253344596697944026106254646314664798896752693682359416298073864086732169037149947826308830290836080749714065948636141405740276634872671655681678819768400376694661486136245911567050894437008241620511820303864283818431683583801252036510143958328210473787131642337165886140390640944473151677555414933098030901911134397362463752991087123133813880810527824542444586174679814865504576572013201614217092767720432648313456274127309133926896170389838287987124559454914273739712849083955812268622661896329108761347301811155824529797252936667271498292231644858836828470110459700162075876464793960649256069695417554445766686940088915971605443935408253377793002075159024529306570177198043612844422579786442745703369682239895821777137081271699270206291762780751655891956035760085945211754874657990323100514328751974758477928184469430466972508311708545034829263049382710115083258360411371645527861950252773781276683253876195809441830823974475812344395663107066177761655644389530551810919578737473244800313119438895616889067489465615654451950978894650370138964722583997704944648381748804341805278125853855413872119475116908182007807524463520673482538944280214429833862163431965411475808114883775783478422271332342634842114651535899632507666018217853549962299256903235681471304980240155946648434713886051877240223593619457060024910051336653380676782241929447063323268364038706464428712463437901774830168608482395259299867906449204652414506086446318915805111588504969854144344197605109500215282275793728823809457368235740075200035407215070021652618323559319640096589581825321968676197449927141436612099084205645176190207737846576550882979717069825683649748132575376169741345003461609895818716354309662190182090744680417353294252352767170157471023989558439304443176249040734953324768755855039307758173161151361596067419465981610340033048988952852871206431457440272260639330390892017273012148851536943772963525711032481368852964562414177792489023833723857413599779421576207229501458268969060312910901730355915447981650045324896379384298768329759806077991843118109021063774986857197453679470456835274183713243865531668701258830320041801853743139255204394382599969167594590995688167942117211725170781829093465776511384067270230052700293042423113305485457359391936043139996388013381191214785956073971899752192587111993092942862325798623063920350410173239222755968720797605331608048937737693600171908664040554144536925318258024241743721757209139126842705757937393485621898096327070946776026660864429103662031932350040741966980918972800989356756080638624666520397805465974221354669471990554407129431416226168642803681934215814552950917584107368219662108463860371100721373089467928690221002502842403209500114147945779018127717701176209891269151654418761666388785387076496730343133671525097657222098447322552521847313223130095505043873239534028292702386957042833005335696979554418656072239097931172967548049830672310274418855629443732529472996736425446492884736768208921475409221710293016195154194411683238581487957948295119592833180859658131189869013063304294655497640825149201107139655147063403943909204190400468785160883912183120737421125362767804042898469278966452230799730917635357808233203779354317491179640113500663283122321646871758176790406559638155009992611601348292450530834980407734904899011628787764808379450228647881554089582461873900755259327291539963433975105418896135487513844501338615633129303609891629847513773541925223804950340854505736652235806830503955524088429964728949848942066325704299462699304494533321936689142077691761239115813019749064712881183413965787147085649969882484181744496951306202529406333713802407057603056873917635997757062037791097952765033183197219163947259866989313911036446333575282987997632863645366071266784335367000661587895983730117492992172286387546017487773374440937701529382281095929085132756996461783688769795898984881539779930485706776252072085591472829526881484578866835721793658739177142132458756126648998646091670921588169591507730150619845959375742937800691201466013336085121005569589027132859464403537278083607364064489600308955776363372077674739275163313254328482683339940138463240943018142804742152100556761673020872205019935312097399918603846884594664546028615523988294004328578635703432872887671377076843998986606419773838850681929318983769764584981018110404790558018400383238611796641829192059806310870098780562594131426938000395686082364050078116102069131829626233125504648243459577991403182142632746719377533017962277534541555189703616500069688838650963720909033032129080314340340462605445977954394908750501297921813943234794112639765564973333953479403062073293795759900583373184885304098439493399958841806006744690974058193375527669420442448027052587809541671370917171153025690377651268739621141856741365611300942625032340459097592833190429738350432146995135881521818831421212593191708520017433872069854567420460565423996024088171087523609123866908337453063524771618430147293564889220080071481880022263003377783387098571354305416115785027231820211134449619517422225690256281461940966727760991631039159009816648466358559094269401972413437806480650203424499022224394267691137876389731839808516066251305254880142656413625709059201309158699442058756722529971356984431761016523026128184369838436180139021041273807734562197236188766581793126905877136981509209190720286396476018174960494879573243641788161426832847179013715402446700475176935105365877880721528940714770119605133333234838955315623315566197144163881810240587732921158688085236835286877393637412043755633713295360351250279218540087469262877146281116621823232479509899542362106157248283194428730321271891565571487523519609722089725037757947655556896100737008321895514841276109326287931315290626733097796420360182990612286760784010188947662293657589265450750694568345854914353307450448393360719026203825611754659141707719307179244783864608350675546898967249158811426250656474007611599269572479835568691276995418681259091150079149924227347140450621706311922619287095847375946786458600263117191276359913140217087629924213517192584928509679645563787974309507330228141702647447693704913295698135861282816103152600861438528356967204402955063846578281090028624581363536627565092911261285293836158151560474113915327624645331149845353889013966474924840135145144287108506466077788368643300040557140725063341312552485921555743482252293812491575242216473627221494497149077001824180074622527897413274017354362867221774992347241312295233187247830749642532390349721968131427820749117782898877804520177189413272897878914039523814484671420071928218977713458352642840963333316552708942029779614974881498668963008901828242519276603814436945092264446571774013588056701054701940718356396071588007747519925709983596727293850810249500285928261004813184609616794544893334243678541384111841016969616769643240839497542790092906317527390896224783275382726709531370989837797675823341451602076864597394222033598181860036734504350125166659616956028800748593287193959351476216519032922935221652451305180459841988700435868157596192350547189464952661321273748975780614541302150394265173445798666154074201347755091523395629404148260302325792619020927665497301627523701028024495673854286778446008553858361363234356046082252730009859612422451847888422132017604846500574904015296276257324928964883630810216109839197241658373471870818901048752202688542476357989776052400425919397691420609657328642706419470238965518611864940391669128949757515291784277486076810564094527918463201218386121319614932867134297096793307555895996362819570106441167208971424415677212284657170940925515263877787135932596038297004799012482772665243256054101670127048388501865023792388063043594888828615755779253042593240954928107599647853287255603433323795492187184942938166318345711207857441695463049216147694388920983950723479770695141205416678485182826137553166937084873182928358692901502811952142279776724558550146958992755525807743286686118476710468130046684488314224294512313712626818451688991432392123007993275435386215766581436284475227956050932858915112299935519911895590075504131688568461638886574779938676603950109784473353125591148655609869231301421840292045482310795841749589360182065621634686145667898357586404097841259188075478706477711093770381368749128550290572098561955636652445156323422096545680142921524110354019469461571357693662550600813925908035106096469975679497909565986617277831567637060507445255885110894880689579200086225552931169962319453123469697056492636627276387300506120767645356451614835828653324101315526601943134608162422975789663830398995415737441773173518895218788865955496287450486748409036497336866823414687148191052767809729150861603309502416644168181896867954501462803222735846377751437922381116229371038833649075484224979109216224823522745736524219482636576684420412858942366002013084078964991690923529385378089678186237628908183487180088914298565969963421123289888724113468387441410921048260613967080665469088720550473627255766798515309658078903061332251678135426786561160471591081909119232520182299105525653703788652108086556633045829654395014185770821368901394958880314611975878219866308526407505773915902697847088500754684819034847601769498462841301556107520526799136818525027944736960638820287961389976976065762662344967967028959086483609210379826311352549992740318009625099853728984207815267411382162668121011171071454207325192557658094048875079578208201598108601650116344869437491799604185139397085444421283529621380598590789377319761101002423744109486380389231918197066635476601067110855475333422743259711564402767941357892680590417519442244491013165833258378694977450834988691878748824890979868959939226082644794725286270393863546045025309301774008270897996845924543074021203748177170940806517378614130477577192697159084479823912273974599174560542712696013867214358598810349884603455659194746572444792932542575960845707723380055428880885665898199231878231743889986251732321412512922642040016741054303230799658128849051650276285178018826891323489830836766753451225117490489682492449255149645267248058282409765849170967253484355247323012599108563571367638088883307326916148477858970682706678382823690003821533453078626096957398896015622674796203244045943294875264216769195956830271329241316639955763468589661212893706453207647692930039842223541109094147306706949084189283992950375103052792920569503604515826692255249233677600656326939461853249921300112294556933244088736071215837122353875746299506501987547543897274899348704427983845173557289010363478132877702546744898697237780321097610979892027344509126558393962265260127800383106194447206904757647598194311701311495884729820020606521269243332457176973205512268066683285245938288531059767722855120626278900186868315865508567120783495629630612851952229538900511345955343783913546358706163617509589789196949217824837383826140939674274410275502614354586787036257503562642142919943922338865362147891269654957254501709673477790870336580694355769196504641789388819770782986047236835591224480128913780481833435394770262784185329192499764152135220954051862117190752704548187907187290043383913662820988087211017855275019966930386153441181082390899730733539558394850715643696420963479572403980198401609848680785584229581659101082242873355862788664851846224641955790717883448939361225667811860350071667725008926083127792184984289456710982802145556371335098932996920043257825683045832980186569876795625975275557861874301396463519689604261899594557332547230407846536384230253202659693730848909442739897403426550496533323689285322520190825831090026839728952078766210873426077872194244653346588913958004351347639043537399588080933269752283347372019331799075151228816326468783581857132451736458249948787724611010780593710429241630047682975008816789013959050959613173238369412028293207457822755984646341989149541481484397170342084992215206561799566350051592939615209060637863455277042475988782776372743502661498390011236520115629833916924963620415455531763777203762171323007793865488198100767248217046362984251769185087056785428734940392863249877691323180904820408395117555879899118188289787371391029751336259982683425640858473745571976632768772898300751868722308477611406194714074765367254119722070358493763285628397967677896350977780418580946756171098956505715105945175872245656329319566963105375658020536779333008721120699792362589845167624074972218105021736736595686017665860801882713904303243688314573687427368619781125104375186441073945497639383653632791230145603260165070854115475112976520673619471040939366005866346119227488264732683706340719313186127471687816563508959638606324755356225788991265784782569419013079579949455902285063568259074067459096499567052230899157165214181438523036330535909931539266892241472539493177879835205503149651833951680069055195114782919484825027810792076469560254234555028492732393746179638949286055381438691785546026701032658148581501443099290143309615856244879591478114893539645253831182384891158563642065308618643451794583424555768218752370268436005489289350312336585500944844981864636383682969234644102646957360563202024574576885743783481586837543936596069310277097725010937420434384078690995908639953299836088243506691131662976321020004862343020652480265060660297432012109213325305237078742329666527250232809640676749667357671730029846147751949353860508793182550062008122667973090363000533470712765697499002702565401323436443797764243130943334294589774993821911567756825780299264881999203352811219167053202723638175112073629433543213285629594103055238486870535472242370864477389314922929169680016530577125862854691093891824542226124228205960592327868322307681276112573924528286086084837523279915436996520840661996756962457982868451181631721868943746132964761761131351988491024057419089336460631389298709583860513436241859479566685144785874864041165062129952036193434463408524416469791419617983262550198353462021763757506349138327853317372290744701272781823382541908719055558283238000292861449299986207749152311556353717859587386209719509803130673732096028130476924584220791317058129538700653444162427865909499458697259196349074140528728675225215103290920369790407678482863498237625865674228398081843358665687158936200289545800239853577960208600302312866793646303966707426131531831289783248579253397134257783126662078358785449549405325291220093486948517756578128959381727946840781935952327272588253360554129605210283709213554794359286933603303382324908732190992639205992397003914410337951779799771666391017506522996887831972772107052975938186212655112812749591919492872080805674511893495358685520034717171022168007145084496080698751314833678115488662040319028296540544766879474458803229908826249354734549753899637909947524934598850587137990174364898776109058797842157983098677033406469488029118022628357151588411847071144692299738411753927462533432411591599235141644173615011610400409542808371951532034186130322849330084026312540541233077958051985750773759105361704773242049865268567848709416669283993688667304712383955177016104202840459274143431156273745908442727323722470118388270700462845693288421838932995894847204321721947762215284527767651478471180664132088228021455026415767694906849689686818849882592599300486702461964684068521759739638234931203906804499857048851611669353983074883046848730749413395314158793948479753996082514322684316453028576681743711057319642681578909168691242433338037971587194034169013118564449441940877687225965513604834210399331134265067060808184776784322572460377513471173420860934929623038965253668310076982728738065515663332158294094956455215220332756393472352632135348321701718642510805399452398178738658083489138905511845341825564572729140127956798202105522394606244310613086793131789872761718139214878243476489372196660009784673040239555115712739448228746169518951046076700182601553524094023372609031755785401844850119444631404443794237656241493510708420383217305224143295395858542159573725556024245019839150991141272493714557185761974726999015244350711029747295918290145476774877132784099586979062296411338580859281721903072621784057319612233876323170572235625465582313139825213837791495345544191667596167739562166345444782892656525951983163167315562046272467787556225308795230943655319390480986760029054613642400331347354133037103579869198785524762992549550451297764629823270145117770583993304658619930265444281907172483421487412846591476959219318656311137739845486039551878221201062965332339213260137293661977594004215818040098154884258331206253358143262718686011070257602528530217071868639786139614164067768045477325034921577498800105929425005918438884213082031811889011902961071237771266440458550024000127297589241421690327632983984290586597612843186135170962624320990187111494865286479842301096349398420572606618605772779012562633474203223675567800840792625522836476492667755470435733153547811027371379101799936737379012834276805347655526204097182186640644808036357487922322059537337064399915318840447533562801299536290267851088709249805868904165224129820792172959187413781052476986384510249798516882319518666439192237945332470266578401654286928130957710423461372270791856263516422039409834593959817455873097473511977681173046189319398003950630831256208852475403699951203948475854602476133166767275217625849916212397905551116556063564385412159676644135120603820952967997308318938233375180198986104054341619229660176615512419453253738465450122166436445661425174092340547639792684344559647071039666472952769446056080955054499315402842429748186471626722669490420516331601278699975423194418803404419897962877796853488780225290346641973062263858036616725707450925443125419581714183152096317939406067635584601946390667727242835609804961401392087836773007168358977879451608747232006318316147264903169088009293091156284110221205807921870634221365050733199795509932988105614955312137921749429704306616127332801555388091413018233987188567851206157994598362645086752338601349487311650028038328155340980709060747555506528446958265915742620229753624155302478420389935529246537957290861705846933743466219488092196169957651277598206940339090030288335280920835181583986055426523654539193212128322790574859668911368484933465489325793903696747307186004875833326910900435976094721067223939697776306045343103334695769749952448086871625894928322026401144658530057825739035535450914311775406746554175640261083650580001307968486711505830652206366663428086672642422273812603545468873480263008901702442182477770226582179939291675881740327940487056240427236112393635331934709090756006452407978867065525624636089192495302247717165675407638551597288433317589394991621115807190805884015881827318636843241088301519070706284456398171237462311731222570271183123305775320916453052058881258215190611841429188139403572803703228154063536209057584944291321065678600320831889827022525266829809317694911242031966347348626175788174531301758724743730993315988361435328422472006084293325153742556407465156088863196823644134247636623534983463678784028514007316391954726052075856129050555189487205020681771041823691962599482723749104311945271756690063671776004796489991389963876321643029069003309846931115019710438810146802594758329184385812944806430222651785139514284707923200651588096920213989168908389170639008858030252003498098010715241156211488561024528493648250002809663598099302192444203183556342333140513502838117318210082878505072308730603273451914158441440486019205461931697186069509694699643155807452527999634302454051788932145654583080626422610997151026159926452329944485477724480278334097515863701251625370647589554004086140393782730943567926217517925648366293333191089631022001254624347052297450800710547650806414313793015038828296920797527812174217922449991784534664196876765955434519479427440886291825339245542001498173445698663745920628721452298175109014390353168229341519136239836349713904913910006130564555907234776049551964918123740501517150960780933720497761314482738160544090622792351932395162709013497138388844411304625141821156060139578884534774719597530116568803797554391584234884779253016166916603571325970707823754850644717945039765316634008900465464723708114869800854270136206222253669864522211329800591696197192765194228918345184491862808315313941457622481063419451725269683630467570055279204151975661217699781943720217136008151295298561109309823112132903684681650585712678912835416477478708438221793655993324073731515117105048882144869465676108853986149851970826289669882627701446196547818902960590000463692387556826627647017867753004068004664841776162894394166740637219705385851187796298521774430384354961137496062898621713585913487641035005299544907037593481686844457379945506080934622893636844283445605043273869113917797152433566709824472041442352989340369501885029152746397337809429143607984445976790957805833192594592948726308743816726763911160038054323529892574673525244275243953432663416840624692453740196051546689557509795118115781827551420400114217034194445164344659694996550080960149675643716773621622568228667621278324049125525136756630653558372945923922730317139934905827313699425902192155262808772758501239059371586240544500810777376106991323962181128808742357976061804290844504200531764426710919461280940900555895154933954171530450300255602493006766451426636972716073554767804619213045359690055085980434104705564236613957205493234482757077277287926061030074860549336475574440836015348702764986655058655260531818367948763568562087529740607799860877256907265155335086827707173739244345340187482807944469068946132752880631403018737794196649337621789811893811163764602678005369869905110763458336430096581244292426295817585495717776225451754656084675336004479478352260710848801615587836696229191658878562132119510285976362645587192569478519769460666893354069356889736775721595136700326509238445321501003858771446453017420771571244132224557869672631106918659133274103014890585018201589545564704569900135830987477305523394386664114742919812553785996079435073287199197248454571434875699144192647974069121465889194575776574721187019909402253754415839373834623088811137802142378500108402981840607000781479786222927308440008306307719452633528960261003119981960412758999214990120671972275740994993204618626071690360203316752025232696883244049146031975093207933665723150334683996747571393357762848654895301611710676238502531903046581573646473879426172140451822604420655324956328416147044950736800750634185831683531533168821500757104152941279916056316397827291361256688770074479916323487299382096271258006661982933367518288442160899891781089130246580035711007612192840631958760713405400407998247611310942972950304999495458822957348595351033308782904512882165915564236976168497446289272762765464051060555873532412018806139294640214066630802130447934106781372426042535347761896823445532625707650556058407429480869259614285112065740056691000085390802451701721597336629069520088280921263990800222503153591266828961423936666891175646572390996188443153531187884334101951826357027116582038084521668654312448743455030466591003553670005838975293917565764742312948237961207982665634794974448756405535405018644251868754176427063131120482515318011127766380275482505272243742916634729249114638708059343700578775847298864110700638637107085072512106564134259968054753259862465225253206080044266170023216916719947001403057937582554286590939389025056346937447927695629250644876033300122723336738411160375562776905882806984415198378911754029249890815426685058313011471653495644267191722233765890331652440801557823203328243370283483260648622559342169197452789899979474900104716062594954350544509070218275234265998471830293019563257605701577666622744035122200743577512845304003196832271119180015541908531854175662345556676025160790053550585862498979434673624457421197946875106195796721767573839294018002304093241767118747756294189498330915929902590650884979813731321191065800761990766300000803193565201105435690196945597704722208135681765694977934330063972862775828502070060843151943123072120584997346141386114415936830395032038762631582866152427594120494338951774726908964012486988345747138812601683984293464014341408532450013925780015400528376294616857983615447521337617279266285279864726128245174470294766096391165418102748265442078690169062084988128838188139446312984237547670021835502752689829627556660849446760126936729462042623335878948204714995005474358178268364812459272800103444699060391328295855286733919486432478569698821012738844066421194013701077188721199362406397363488064653935317508818908477754706882503389747882593132267162598929544521409862015152861042637039433269544915900903254070840651588828625157140944129306517179460815111923450340470165318120641190114122788303973338754801505268761644062264273882550251803518388045693709239028213773093814953910396751740430553785269566779704873310946864967042496680166035960360544348827347600914616789459287638352565598488001541305448623553397437238593035124650026136172791847544961876379460670301966096416484473381441198297740075816005551398589834683446099098126122016517167564094077225254588827784625226113020686569066571006955540724192354770434957775251919433906876367779494875069069038045156259656412067419233552372734768317112509631754369698073821514766103578728289995982280289068213430479002811386519336150370340322731417991412148934195414573378572506044887284137153223920691889308117403812576750633425479221878063343582514706578471075209395003414115308196987151859498893875705210875363267965751416368860284730190370421803877600511826711379613265762088219743131088072330618149994223120725534255988882217252777083916864812549057806925574895339620642985114906052196725609015153803153497020312157818928732334705569523606054309588623055058490847600732652912673219815041612351995856518445204224131031672784985876226767102009153337436054856519994323722558542074627665116231687442149735511017620409936412900862216307374160388287779062329824358958977527428897331552146246199879288224963395872842221598996419403219381242737638209781016908750487525944514850168767537309228484045210460064492317411765486261007584776067548420727810968476835261049075795656008474355288992493585149836304145871740415302896982912918759209927378221074189364452175327685219435043925210318153232413109675277294485682890908658295569157642061246138703899303840709831033271262216480645310950962970525317940569067747665398746922234796117414162073121093919020253378919228456052087399032413593224144231744732423893367404188959051804334987506702288228975864617730483011666423244724743436317645246970681659073880745625703963000948203120877827445034616973377298148255956720710602157044036116331804628155852699908944358778907319656417197452546121629008732671197555849232199523620405585247189606440053378243396184230211334825137291941297742761096905565169775508133251920311211129627701691076073478366737976448639771933741415402058728667482976896315914753883077169650030590528418742747752140227116423499206423143484845499847226099064764445241110666694782775095092348707366545991891228462163338385520019980990452782943078771517549314078791923340331053412199132530216332692177053326602378284410507489254676710434228326644485137091293882569429071998184414589657809896435410296518672821397961403428908033421932287986241509427991781525884298974658817191617509821160355319717288208523594740796642862253995191140966720222821493955862208932172850612462212257299454445199768234405715032072464129341875324047862954997715131889999154991867337055120468881397503425910105693117021600330637634958677658486619151771420306497793876092750914093363964247701097183359486121961192987805280029995109841283370711248566170125541451016762768308930155440781402756738433301235922296637284893815917896366537617892689835232500913451035525420911564010966613326452942674609179131418965247250528177992923064917369713442319130026564172995290705064858564639851957202564602169135808522273784563019977661459850680462635322414380120087165459245380461963219836045725979897695763480908306521325736242185558776550491109430182463079408909050306107949805792172632208389347323638036226101203590519045664455358053623810406820567756286139816680216553135411740845952476724148853551844759728012209796109988858534759751059178834570474212712115276444466038772427100536396209319211699312934704446209596216412508203554085626496052490005601817025843446955199893855366176660330017968163126674793804396719047114433872561959615771677914449594507011998746981243506864847598296736626474596983585795380452804110128232945267282552348083728492580792339468388636549990733223983888971189994761672666729234983237681259784301549226362608688384562861883574034833984341057528801804481434612943405116123957929736866549670253715186095565503221069492824642418967014029959046917661884207463973231967318435207959771396228283418782091586378096821679077026705194110284735753148865159938555169896115549632908395716807455549442229621791511741657264861032812626118535936139493700644657390446508909942727316881400322081717350408077711802330251420679511189790815552873086242676194488914921596305525618502406536640786329610091322644610324034128374076022886866151006731482977120654183538308431232410624562176160197833819126025716162157332971114948225200023157371099713387406441405874480489702330871264186431918344400982692161615849225691796279092676692896086404647004779154590913851573857708147476401404132958629893203236355619205209208118906676506353509859082579510831695224594164452481277347260441169007954944514503523682706827464671878433513480868965176323631889209503686839102724548021732900528217726048362575562352318922999093516630875611812931274760060868616944563355967783005301056463542615012903361270101562118581408546734235479705986018672769010274154615006210786726936454498870817899749080650832229962717855956032423376963440565103496522092772573230254765292326687349085837944582912169779332303300617076146341025571593296021935088369363603111642925398822656943378768233514811459076876667837376289019728590120762341734801495287090924599121768176988986782905848873954962764549191824378494420362606507164255537197492922955131807293592095216557216531353333418595581481359973593827686643229070294963706936742419694700641377407080054913280871376158314467414672829671691195516357622390790876968432351565006311561608004854479181185658665788609980201796870243200991581940078371707646790172242235179437225514139705473603260462584881800298658038439953620093654715297736139224083951330425482216211900218535782990722809757004422753242799816300994996023198717951636911952188791180124971237367169091868814653702985069338352268833002439867687793893269569675025819537674006304336227343742699310236327911574980876279870849873462103359286402005900707280389233335013477681715758214637812071398387359558516696146702922222320591368229933954690692870119584244751136166615544506308293470843360463615640717650184572451805062266564020879059241278881651652314811519408437335496690611613143674155403143064580565005893374580103928945830844417754508233558137206345045268273846515487686412211102359219936948579656890341186282199396893312441896250415553245418006603465404556794762779331622742957622561037417682141431383300702831329533196515342959838951149221345320983600204487121189712066201983778843733323425780089305146407123675659657245828817516997596610868180054995298796483962116428382551194272204916780720286827750848102234677218347567436672632856419678788747947030948381589561728161765682251529552533103886922693374579329612657993968794633444002367178782936085229506991541016330687078884000295071417768923048871861510688637414473122587793501856172050782774192035806397952034163127463848834980798366329844557303821011560374106922066601117700239063845579969662848325116676427478661094548914386636139125467389080477427825064960008013821477324558969859114455681767277475743148503070302100472580124713934007662162540893341227201290993469124968375723580990529560501370518664943729702962383690140941189852983578708177183010471488985238775539097770924267490781328622725658556896201452421582354134609810974405464063677750032901338298099241220784153504926861788656097134175643466391229730295449704235592772680398007212415646362416412425792005615857561893864268943091222798778942507118251505343271878447990472214589425138453218756065368257935835293012478786847316130464374117477708566839452288647415653243084453289258515627276496634526793209428240285104401641977571190025500880434226219789630793642902871538224691345075562476780257013654061797949543539336720884775113630411041475992061693938704784440660699674190871508906629089586310446314037140506935503651333771495158526881755572347226685335970380650497185902364713486005788488112056024042802447457241779691998275010062639100616161904203447458608996465559302839562295338384803365619677936992316943291160735422828054452839733178960289846126018551895020187814542996840929530929649977911448672289894661774048944284469214800003224727426028231887343349138076453316525881728748184164744715456977900827647807621419754186971682853305479434906989634474300798784346566773506588047819768514274185128836566688876766614700812511700587091673802359048452683719803334279076288258231578359182195956728793245828283315402340855653074615007386168808619351641695014570371753397594326084639341961167668573021948358641389893279052964167392348504433218232538104134812924504084632398740806589899884368096600789376564997720896559474006330311181181119702279666879355455312620255056699880056741178902115857032391446912327872142102036305168371702164738610245796312927154083596306009291539859133890154097537594707865393120785439676610886235031946812849747979955801425320458314571323614655183033836772800712344551323608347681700228937194388538051944442767392777681640831923875255576587173645235539699886982942360443016903458242180310237378624170958630607552275105971872203514761629901985242903169192258368672323723101242658705063161665791500984210051835928369399634917783581677701301193882504573424244033310537540937343531477401626544831744631516887650797296847448144846630386848899082529644736890284896852028784796764788039969566773006329227410684784675177156526199750679401665338238643356482061706150528959183165037635379435604906615233045102877483843728305938147657683174789320982670106794351011651857668421288905667815952743815039678120038241498416299908051333590244024875622221158701092255108320211561951268355382282097554636029836805061734863675245983303027153913489004258275781587821619247758624481111424448557126556327811734190133342046945155708129658944042260289678775615569837482484846494127329510540863747639596557999716750156077653210067589858538695768312941661618941776028710073425622584493555961738443829394064575626693014044396187778423349254655764245417594708354978481207388439581193198249897715167465085334894655218329596161802045177903491843108394120720205048743396816603149708566346937747099325881012329156804371389673792438458987609918306839727636882994824430565124950516178517486292783810501067110323984825850881744844447893352241683451226351774417493081046983905123327002213559203361086403794716858401636463713333214084310119148048549642393081464867929809532911524197028772642288059100130218221866780625349625856124447967189350622403134223366902290710961942390368011947452949038987247401825384092792600942632526285454437786468055043294355776823596243855340540847507440641488135147769387625863466103871343926244942729488877514537954803775419091115610478307851361668300645503170921396769085452940159296487100350003712044797746169527149601509688704468562370992267495729519358940581896169122260944249232954273236880308352047034929462314811519509086992941645211402463766922172568949334506447365005321471057763682188621583860226862073199729440885945436100322703539237231070439064126405999258006934817833552719059262738676431341645406042865627693037185075685762987045404914416749663769073315085615365888395859810878562487667540433029398206893631408954898629905085132443771816402764111555435049395416915586486197722526326000871162213601304305312664277234297592205388275182394712517809611139606585174855703434068170498393128227330411960268836596430777015974724472116868899758593431499121520330979508612078389586383483911508917358921474234581075097902730582012630778026617136802109132769819928760111661549917272901876983006568446852581185812002871085800869880502596939277115192452054866384537594961705336466768892638614591494898367661053046244279913638742852640449679979160658294120201659404847171507667568832206222005583920637572263033088444640538094671281324900143869982198313112072193206463813291846285610587897801936469244515302366523792911477405742707074176082890451756156941929582600880104247739184240897708469415532072301372837965494144986071838303476363378559619051250065472257511996258626384430915839037619820022647958540091456739011555824791837192486663656430774002779747816868139763323012695445421293747792980952069104387971632474703637725886695839523147738222421377846577296378236497863871604468177914281026582199170011778855600885516800865274111440159795252420110617759825836250125574926627341998500943897419433936586265637520009232096981514711774315301138267618521572953066523146473623417855054372919924745698883147943835070279093441061052763475905992036000330272169305978596874264970855048138012188003572559952832992637498737520159243036298250843931381815026465373870915725315556188127339904434180251108222222893171011978572534887301622699186757773501407047159785703087500423791724632056917109740473083836773309924982327199587016301999896905856371889010065775630488972257282638160215505176382473771840243370822564033484895781939557055740340449029667599174086154154972307971630046203175905436157041097237632064392660470739135584383122084540976322978579726371116704041020712091263067441725455217055491946516047006149761659580726072036541994142129091984469789612256976246745356726449551158628952047617652967689457293116929735914643604919231801941251514116293872708394878700901844494784033203056379550821119662831986657542216799848742109637818711296164363351758674273226113196464580505251984869734133954799001363712512593562458366123506471770824531134775773898334407301834368434080537817700811101887603602228073682867967108148944733408728729876772923459255609990086255757921108703585964084768374544856313829138501414798835463606537501642071546847924767371118083443013482855638921069593460687058668886059613682834568038768851685458587286218089677631879569807247525394459250693699715298730232146935760544585329139644268121948909760484991151352466172750005550795630503604432904649998192557361575723301860819236676187673481999929559256391071195548021422638321800697888806293023847696793952713006253513952421399341311563562055104468076829162319065644094727675004942030678078416726965604835688349640174851428475121584040892689692191085052915903256865518433222507223816316491241416507847713001909740568455112132602711484971170021136985393963763631350480910327732734495191186420044835475802650910729880840073782691225106986320535676139065325905603617134262431564729217265535169019825308225785899600792031835482526561486917166758070183820274943853713819002024059793505382661921321506312039199766792117683018226214430868259351139138453261351991661069171894963616120644809519388032419080443391798261476307285148280135646912521707796826819390086168222833728136981639443728212188119407764875055879498787244955489615624004330423327645482869468288392169905027666967639591002114714037080226445890755020481094995386401860910571314278390984386926418627888654638681369164965771912024452492773299280729899350619764440338003921391414624316652854788901506934547492778260680997373715833858957614158371461449354554195358764677413111405887135068519142916112128393326216009747345483754595635106293133199231096257647255087740863257395157853266169754237532884956536168137843903864913085660008724811779708774059397871744788726517367755223922803538532684652627079793891863453316318248324148914675110717853294135378681756161702434421385394313051317439477168812183773306471953808227198844775858804329172211730936567197753051107230477712924168350227086862316944002252282249196359477512918025107378555304593191408362837868494660119413350245619255112058123262538804589857538376228642786848531425580839924797865864722956911378051087045258634303747296530340513625914075206266247302794553279888373048096286072885689401347697451400294541422285996376102726407670354562625990798357925795876166216337362807759414410593378162699130339007017265788778546210802896825521069881463624860616281143734945539805621476432352721740219968541440265826100191856350747733093847433325515030346305894352529614702351560125188183857437812316286253580777677343310046804850734598287396605387738736190863746641684772681406505333286241416299798089897558438110334093647785981864125857829179057327513949939287645197370050308703633654566291177525203020949800546061993571224208219005995218040595738263791605254742584251072480895954074447116220474874350126364167572422217088697490476105101054073251121498124436609670476096021724690545728371530470138049393042382821211026648255730912535687919723177067150293551095523177416141965926875094578050185821039973950152707184456040391259345734126441045008097843629291589480039770909294366538428208244813103028881001889688508387280544582143164124468698044993038674464330505673237299780334146226809097641561695334011628722817253824964553482107272762647743162612058508735266110262420745693888386780399275324123218644042940574952323036449763633602259473344150472462185461203101916124900029963826932276928988752393727999763092120690517096450792325212342455078678300789852836088409363755198398664756437409852270038206209759658344735098499129924509854678947287231984391081327664191074366255003074786901517222101294115789849150576518185033645746375782275631236172240802056702636802907700779498364003567844940617302077606224216119103178148373033228117660321574136655660379306431186317656229554034126498765013513340995713161511928101131712436724297200344329231328439149475842006309563809690430818074267239270924714784852813851114137716235277690196624529649405092204806530276085193236197392674715911270655677305997146896362015983321729406518614067876617289909749566527156116192537549407422332473113205333682821755388029978942266948034732293054550379623123817119687661442420295944110172690391525932689757397514132686378313073480814018180226089274773789711301304510925633529867884244597133858701013483474593129404832605574441262240297176687663574194943216658887884035998156157326729298046760687654416765295754557068124313095341574963531809530538784581987289293397043577847019325505941698680557215529855457277492141977275885126827926886379443861423769955517694716944651024293126753367630056995087902605882666379322219601037756235265905948261448514708194880136175259434123691589502650304999920815340719921143570905699299031255620005684194998963526381360688460342367155002187193760423490485836454632165517091361491997987569204289233687362739951069153665941891697432176197663696270056361713545611096382529081036622305478420065505562172525761898325359489144169159547042915705877391968856266359772562195028646796184933159778630762312409382138851567918136110388759904629966636563772825252109673342360060778503135401582302599276173475274163173473515010191384548234668988481350906274599334678304836631011159345325654856314283955731318227655070121216704181662781232281332340596374833855696177511479818809442863420333559183590310280244319606602832148117844162585298193416143057816877831977749218209001552554086358186265648039602288436122748162219352353312954585657968851424731845343417647583186969672102108253510485857976901948977284856782840063844851102146177726575768026608464313208072035598320682502446904225976761855391550341335377634302278094687700610252138911297377614522706206593176421312488355219248552900281320550713421922407843695894516889953615643660612597186794997346653293297635228249629455152242249438373349249613486732244574430345395833735459888178098065922580479863633931909283319380150043614074197664644325062230793344925199490640762605900788515153489619304614404699272368165828392431243760962022288260353577476736522958009861969907815094917041985180325346827904504239549386708999057508800504604697551466800203668099156982537835132575413424922989151999632673446434774831664617457871850950559048079960412352384937494284973319419360447785079437758783112596234242412282104356667672868911673521146721105153301331876951239662274188173723888386932467868950964854783121401119445318063545056010335727451011665138818502559799468716852093362504077599353295324069657858794188621222711548858344513229395866930842272341396693707800946223522934177199547390791016433219354374905029693141152938623503397016406963759181083857381786295956155466957535631241187642717113687111052753476558925136034652660887598163976441623122244013703216839719156266280497733043760727641732749084195759467279110860764083355499628247145283714345900589115926703834760153127458599592167372606656309179010187517945378230848252918394752075508672178024637821027296890679325711929544665061010876402716582255202969074269809976695278852520099170466197891394656633174279816767141968262754429202949311241133833310435911554976135403512292685062981523816630485166356112559861694291031735387480866506955488220504489351038322074660730366597678673348354988251424442697414605015206530843322248936213869867332092087326424765973665284183303014353092677025400730894267219951977224820262324905633994027795327878587042166339196725190920753454917828616139785768334728960804201643714418790961482244621452087769153207338702102446342871614592635119763174682024694166866834482300981965141316710539588872975696121650640257480736157715530174826794556652573898884133426923272472218379687861720958762672866970955898651688151136289448106585397196637219206994612675776610917259144709968047589933416082145831445089706548777964158734789056660285215282498837054261599818125395116766346354434242266656143095024429525097003896994936223722214488446646613228441871824333203153790511945551880721934016772130294042025256315848832411461330953871264356818694061907984337797965875254777818538434832042213816095627362335105140191289845561095861172917517111046409930103557638165554120982456102248698657512263190714585669680237459389153820356646923077976151544056570329830324625289791589323190064132265601173212601489606674144230484443857791927129065997385095287611579929164311614259453539401088216752333350995775273032193915052682107289915286391591108809252409729253084804390252957760250409388825602570400444051227894497108778885298089531001600713929985615212526377482258217994483856616621301893366248738982291602328988430977273293216501895769091947224717918699034837056718826632362654940198741034465273306780117089482042791332143290572261038637749291667479710916620196130908091136600992643733389569782406498814459076140745673550649367464508500947568101192814783745130414726552002741290985481377580501118970692012460894456935682137958373370621840484448297543847656925864338871512721574922949916823650362395084238906036492490056158085853241653497097629423545113373741460241167450850336222912537299169851664133564471661665858455795263996244609732807606089058435263171040702997008064049770307786403656064493368380981369082368164453176717979469166616934722637155148751939690222526240004252008406037751877994663811729022280046002834883249301187594658447780767612166222986561012478596050157595996680456735239602806277758963069660871012703344294956411077683768289641504170073405465795648174747039977795840701288071002881998150576729381040103380040742809762840988586806780620318376955791039513042356983172884095451422710416064189718737319547649127150321884955384734194140705350824137087567049071279807760320285394611513303137399041883060796592712532456242290644428931187484312971872037203893833006864790091047681089165474133260849443701100709041586149644215221012403707979233992679829581511379743927247737071139709260751435158996085801883016337339809024124012278965340245084256403323718095934234734462611157144856853350001726182069798053537117825501729263024325883212812995021807050976320848314423363826595085474988061996242696119394841527259832393214462167224185058120401850991475491258125048281538936141719341999599757311452620633943503909403394737670799914141964265416097013238086193628984101645926362657602741987847861427793312714832720864888428496136094887591484459114096931577966726039515919891962975244214933918034415168481732861600761734820567685308856176839502630380227454629745623091128687390173914802244683157961957628778152093508465769151171411759593279769485434022041231259088247615357144856829805505076801841773674968497320506356718828669095387076638532592706155543505545674824794258089197303700584417337647232600168819340142394792531634125855895653677261956844985533542325464539300381072491168725958295152974958651357612514936235198577026241436086066530299936341799197389931169887025974861715034066383201554167343529445488302345915472831417010538343177316675314234794555600442630348248618836971686154777025601601962042320274932930741143672762235186605981908404852695100847185150314292313944241795449776406615170933411123809418514942888187254966399880564579701567208137814453249275756328721016843068000961320750273924586102141660792657460513457941139605883857897422032834089951351886842296938587651008555589248625454218752262539781863940282795130429636159086911028313889033517268765156427428301270273795474892797262621151021027245858870527224874931300916216786661395298619464584544170214803206433586022643096875987530861757424983724394626029570833265212014735888656935190702971274462047417271479371740244951144587682570840306252354119614090740223750556714281313397926161318229044295697065466796825473251571310394975459982169005909511087980069810225206240183671472273630976897723278718256696745430575557132964629724774490228204804330446365907144133999273859589097831823415363033274957563458945783382538551585860204297617156856632761836742172525473334285411039462200712999619601716342168054436555400096766375187358347508448602559545572498257779151380059784816201112358677671386810636403215667047851582775522379581918175202517519470082655280785632292664368092494300859901116763945505621509951748338839899840187845547757804437081739165987294932242818632411415291752855516684467648870214911613765690332184571352508292100629661902229253765374312209945437171530697246741505088731086544021136114934488593885882896387560859731475087583625491315427284509992545661528903492479263616998274650673949376533131271139760382394813135856427098933672211395309269627521163024910233009506232483037367022351691291360138917048704632013376972838483545562996145739815573042108066621346722425653455810288773161728863804221104939522259681041391404317216730791733130382333457589973563143368582238665931262915802724138855252086404192174677856931981936009388748142320974817565393021515949932334192355661071479960271928209960941915418267171444246253491122885466462113493316485010125401636318768029818919798967852290603538054023834393232878308487381395482063541753066445952525636662782717732689759134294992293816083486604547632547486111932498606277559741838574740101056472816083241599647064672856480306772229517254788794701590326612436750430919266989024171875878588719993872485944632944964728550806413375365543089751241795820263942107720897234176084877096457852698081660554201198192128287994484347699492468716450354398472080568427464122493370163988440630188292296148955295133790240715586092595354339051107508917267722141064190654138579507879611344178784414954984841627131264355980095871382233940658019751794099651838182185385929608453471166902939160042356242001118476630054242525907734341893740096876172805951602497531780389013465043394142773070771537755800651161229354655106280360961687360816956663717364168417118380567675624790538704193059614368086466080229211140301555404412658063006825075919519539892046610237298035116280736779908354894953471976122278932556725160487557429304185295313347597303934879805242710595210106705441631451821545911607427625501410190284122920917058100279601701238689842002087020993287597054194896752314763558373565925549131922091668647628593402970727699318633192903000140997852643091089999556665469729739287524481525395228794797149941781884419080739019491825249062149783361610105385788529034562622326746129608798018957271234925257284175993055721283808512906573309653333559892310381277703877303569704769223409839104943542387614988505010617091795150150903854374226396984971728545570982957132703139564240273740945448233512521586509514262837397049789949014963020410697558719196040907660799515047194856750066068453445146674815987465400726591428238409396284949508202668733850563335391172363712630173795375066427486850520898915306729802352050181132224937577349362411735676439144814134997324181219823936682272560339078975593407731004006890405119396842568091084028217161045836241968969780532724992055667690770444656088759616677958291037291720439644064585533040754393236246932873653171508047353827591207264292869188355570054173546620509138497859427826223371942684207161398056980102171378410480595675411614805018503042176251531038952211475513175935985083048283067300174779380049904169488006664070146426361587577526624814446676344022003680383985004972984140965426977749873465121214910951074651336704077244867225377850490972642776238568813993140206907836104343155513427714693227257936201653286743420187128273798218796770347533669371128094208441268675151290765754678135758099590544767074081952960528934218725462484171969747375429599159139285130485985744476029865492326493294951910315222575436466738138605273190370674008221772940161374057215753140462469935115205200676552527349401608285763864025025800661694286568979655493826904252767111117941003672721200991052931490963800278021231254746694482461046023853901466834126756320241090407039775498791240625405794484421483724357501006563738767807559969373310878931622325487031966583818388286688476973813868733189598469481221807759148630317269281046082323062654367201915388724605013818507106795552852545108722210100542485061630130095221984462949035235603373000997957578288700221688641731893175674429162608511183328588046158798779259946389219258773651559094466001112465373520220779924185472349309193043782160435374427390118122536679322786587266721609875347219406795831923109852218647330316566724318581282371722978214323568132780354553478164000629939475449187481380837390111164075510827729780657414182305859519008415019740800457825766550179361665850161787420530330700061557611245020952609904201985868393265043673115932359496259581775436907189037660445942283717487562788656588858717449047466694431913242926171591153533558817070720431558689134020120403586314946487918734882107449325222909511403234428236622120154112712695378608972886079641148183058727271716499229032170650643610328908082878505972054928775924085061330113223267978554797264767983730486897337616475199443201766517109530761672413050128225259448161480400679489986806108787547044606304539680639358079022340030210284078871812773220988856440992616979609513004100301365428683968589471304074256606159796280322519804269201621381461303508624266334194237516988161707472849671706578046005850648239048701717629149639643005776480847476657180588820539643363482084409402048312456458052592227551055876671863892559684415000129533508189775822809578833357821452155376203383627596353180023142237614722054263874999920474829804778188369230927371413267631034147183182633129295104307546232244627541170439459564848211631479513923549453323129322085289914987730396446431715500306314399750546519235481471389795613482142151495136313422185209903694194500844512404356042774372452609575495996435584218192746442776884562778102868403629649152174956204192133159537143449878794513170952030314388211366232478023465416075568621636544049807206026877780195340599482315905660589116505081468620752219186324681494488237086450048642275917180268278745406840215762009761552732918727946157930925881507940051950077685297023432376434956180739002468391789709304220644767240374917381004354492108792967870271163160015670175243332928357172483873828837597177449569899774219959425541662539274038700828093022963315620829718253910451376798846673897480394323191107289666898813305963484555124956162183878359952325583127479871788596439028097528132640733992714611428990933633290900128122099346182572999102746929233906292658848915491709326686250213874209092892181953074236730282366341952543137091530530948757840847951266646324060670428673510092355643103251177998322717436354497845223299699593073181685152560526801301379150523713148391058065343102500264797756933305558491710191022156323184679900173273935884559255065607713536851599859693924537221075191634453909198461691262675016647710391070871775521761266135100752996755577754725586307994821375552055330573240076551928657003161881849956843790054836000814665406541503976494768960178563162591551478822005628236383694108899986466746718571790745064126408300532053485065478137250014638317996811853796771617099910372977582435336874322730374763945652834370194063803951069057040866737410987400604141200072387450921221338897842777658002820205949126526978058226127664552208560034960541213893970387962257446031627167568977584652250133441516736732112253853639469197836139717194483679238283861115926549187068968403148576860964254673372076708927067274627528332947736886615159043588256893233765132056352265038065431837922940184608501791433025283268479223668555394254586215874043700300542329533152503873391239348865804434696796012510032921273024708308862240829595343149934145969990051222751949722259146517276207947292444373479113244753050546454645973651459340347155014830818161022370966196625213632084063073380797548947931975385850286960088520675184774647660645764381123057026870950441756064494067241595937576107903560278200738835657768965791223079346337508304459825126457028163756807022356815231536229951811072292438375367775762885726709801893725440284156212629426749811255186895040553686263443776999690951739859925333608493190413021717553585915535572281371961146505665664670936018234451678494977557984024317617036775122279168620413523200500132612988291759420140762677271123219212684640843599757718491683537526864226055975907571257510604853427619853647674952209369769833703496848606499890112117056801323325449652616720075187969823593914697385610449147519807878730619742074721910757109618147888110031813898243759221128496527327866785313571254024031269473501418739211502463351640474849507196166867902573761851344308815879240062738044371233538021836997227918688941070137484964713665737469115381714258747334614518983743848833402841113938999503758172720425989556026578501205878543941406816719854582847801619106173239808239913937445372815467973280206224631147477035774785847816728952517576641006705711987173154451906501865008227434553993201581320860049592862321945407653643411992500876798579374806644503696488392156552761125319321197066446071163930355502258592416660127820438165093399837836634797038359049459138663105446892740348960139511317062492344170137218960580703570552927006207802041283729976114860898453722769338826392867987507889072247751181040081502327784391330968775694601872579685542565152604168139168935518056220800929733661792103794614971132149151390638444869349276520244364757638412147020028263569785678625797804734967540050136731324193039759291310867221139499897958990732972359029342636310922876847552958546139191287750718419638534786873133105178500384076721792852472970188641818745613773100072377573179357776564498253212998512261875062251520099245688066425696055256313074962472082192148692385200405846521013773090097813462351370296071886261401373613943332516187046789865506265253954109067953860162974625622858543182753465191103761463751011625872573641090596806460825033909506681706153652190228271424424579268316809380456704892109471537578480862036443777698415103854089615173594664747111187126922392847005131949915596059938534352444813998403669807528059865213420791832585606712155737053329362757405800304570241925267844380380115074434613446264937422225737735982362580236444403840868718235981202386911776195822732433953565309608385441363351980826827783699342161593217540926562933604181324194291194616320214733802275544448585658521882769978183661408021131570667796494934529909842482663041459354259067100559991691746598984995226757176846555347983704364066817827857845507065295432927169175710892369551013826423957191353872627371001218030118774687112781700748628590312077629076293157508513049710810077843603079282104123482338492713893157433692905245532085360536382569823764709135095265902900583451739459521440514924531095046443287677230811911515997369213790319185435933582577413351892571781238139115322076388881223278612299999316515942963243677666070631838073696232019005618770677788811099493784572732559337344379064854067638474722650287147068969837946753469300443178107150424760808291216727427371028376173314238583745088459173411069823620760207336766626301203086705353570698158514729964528720020125209859432384918989087409881591419429423775026657222390993573272335615879490898126054434475595954057704132395666847420415310634718399463145863122091709431724625105936589317922588434394929296445152759050350140385126526025360692928030550893026723121736270245385805599651139891279385459173336133050273817272713538199566409768135031319553206331293865458860225393911053938501447946107675995691661300781383464934181881704987745936638537343923170785123587384641496166719069180815212525420927286454867383061447412380648625680384932096687101902993495332443095770800366718704698024675571046002405666323435103881520241600731744022831368514431468862164790653827297518572354060832217901186083924558178041594476809323748478296283898822075377070079242641128157007385868998016717188451213227503151618145627427134214240607768835391010057803608007201740322936696888517430745281788083112410021962547565430215382531325353001301050503048157328969906620773041532003213883094261614341551533726880362356675093573279744869428440398580153813272493424105721092368264069987043622773234127812957503148876084687192075141700822413522867131743694539164889166403174508188323780737850734276895133536722899087637775945178366004774156210400354755383622942914559434887159092576378798720657351459330276755940608742356082892478953444028535783353323303657750832387183568725433359003845865309074606137996279109237893391248452067375347605772639613878443205815327036462593090909754399962732743645937821286876209238983317929018006102398181610687785704049582670996183287172669781962128693470884465755083178515701816519705384297805829672617813496791053069125760376934853104597649862195115192392633967107111310745920281155831077775396592573306261720772323431474865110046474045695343233479818254892568311678555904060142886610347045976680784365144963020464335399580796868745214725688198255344203175119341216076742835318819416441820311348430664863927966245690103944917007891368925412564576847213264928268677660924309827965612011966888505522005920765113775969397192318120343349552233114219175933107463661617706164620833788074228726694671234952916910835078580857691681016874575772540331943933780729951393425147538768847604114274392698988594884307300260704620792270038531158503470678894841178558323152633580733306503534335203629824181258628014572436038078067206585377525873704056657957643217003133992710983878185682236909492801891216049642334667437375515273642213058043187518660650570189905039249319539509474685707110985109111601044034775366068436217714811522177978415092186938644282888748984208286505080048211758291472816646434035105861334273596669100698587210200153641015477197616572376676414430716343712762362914027708416910625475239245662759489705138757508749246799176955073037835037098981930589873260613104465935953640782995105751254383606059944957246235016664158837680652820258579547082394664390594698091093257816706752150109780449492082088669735177628365812009544515808204954122115714424798725836593277722020152588846720254408123223083611529855864364740234490907658895583958725108131660785033555739055370595717046014920723987595779489241891222740544483204885759842987054631329915378652660493040948948994385238743721895579109360332446356713200348566057873461853531686338178236220643525066409973246245055207437344363736713947579932496416996253031457859332947278616176936405789371915945243625686593795309181631435457325154915642391631667870911480767182313172829503505988141995331599719613532594558911357557812156144411532466933277625491151471159076692676780720182271371032281128185157323495961489914198320102121778546425606916164820677253573608195414629541184960898255775411624252086389763328183385513762197238940000464626886931939957236241926849456464529109294174591097751225700762295085664655923005560469136944303961271552593890910187400316332133922207179876071644962324972467187474982058594416718243378301238941556803453448962352399387213144726316852947753759745952073565932762543296407483307176135420134005216834223341344349714139301860859276603640820503793909790877729560296542150415885191536613623677180930107878809643310062556058603206780031608133160677527499623729646948277551860397655240941575153251161165642601418588288172923655386138125585276797612112943239263431347698836066769629645855500205956613357822646364430995686651035720173367639074205561340956861957007562779651555092599895563263345506772310400552755136918442834806713823823135124629086854070265966244164190292454007644034848532627226943536149616992069841774873969168571337775650610086341892883246726552993231246915102541223383008250106475738419417096392344996053002064600631575266209613995741230785729819438358282441237379258665253817041978727068692853680514573884698223296186041262123243234222240646713946070906370539513846124622837136801064694586832231379745640623385081496325889949280596522301171631291303410455637623250166429004612651454334426532972420143917117499419860616969003603818942429064715666259137396567811929005743023717765103653481301977833996699567843762074150986184558403690167371942317446950275448713688134938999940458733607614959599464385897280576190489677745346020697701363057833800475554155478792842711052004655347671223986603091430741994806195651759195402925584790580097429031536016138059739530360958595567667137317260618401327302943380455569306811617213108009559837035719302984269352741276911981690097455036669056682330570510347887967563544414479086414513222925088854575657164832626514152438095404349281231741389606423078444330375377844969992878692702413673807742838435227570931161025953666178854072535143379333654047725535839493522386384498945426853275556069018799478718109237310988619199226994003540056609936270904756722021517730648192456461169705975465497487437994250030297109207466304669207163731408451544675634913939639208304407836010665794327981277348651754152641354533862110951214599831628505720647612030983713593440509692989083447717665193984823636655659297246434680059275894031101648561356565496788828332053688165266640264322192083924195327185858936237766229661444088720585862152971847640745331255041320496183364582109236155303051446904468860744658854153701876479572629164911916415069391079860511737306934774257885049439073471171770974468522695691434895825513268980999947417459169473539476244203088843049801056237356336433661625146267045695708656815271130227157105952054085865720976579520648985805618790255743114733613316436751542926550210141696364245498536849404942368384542355174036305732143764965901507195029759031014383806187812433710696075123464732319988084240743461668617165920364432153111438157064001559535067543600624224675093832443362805956541149258205076481601568803810888579412009583004410544243079200298251701266365801661934771686014012556712024057885902904793424893851455294861513880738766987359480008153247175438667519955236798675564891699043600477195029067909904126607696779206269734982244792527010671541719160868271149602032135610594328832928699674089659291646279386723337041697715149367484921180113221979861382253818520272092905168669336773216240359568339187165476815858506217635201220219379887283950228148818733364694658235810861469770316807837529007538149695259753143863140235952723933855512434536437065604954993482865538961698474465748523249923679113095773885657870260996228770883443897350412599614994634748032394299909423428234648007719726013651533494991506569860485696694085542547609442998092710349027873333148738544022162160418944528068622887957368241410881966331102455770530392136551305741378262397714181844261042926504547149484803365732732604669452258517479293859147093005260914843146292578882617024006642228744905837615937562701327393612492198232536179713106443593972100698793017372305564626354698703613977111944738293564677460815949869952221541469017041941273333460980264787440688993323486373907017853740060226095686732556978331466537272995535474064993243191249630043551963630623819924440982765200934545456263516137003607501824712342187957408515269162610646707378437657271242679092743992887937695666226979483296330540357435578813457988765061374543344968379287142023588042806333980956776547036689225867229091071148072920418541462399420420836729207952548425395638477762499685113071842377780658213768740565066451369470981230211358960338354129676362367522499316939423300637354434724863940306336137562850172938484700815558825200118172937869548116244722247047786306083190400424253126531618034688304514181090775372953321616285666981420691062753138542047190555844475287034519932302881121436758641385596016808404142208449394504430189234935522901830143381241528791747633791605615332997209833695418113287089949955322693103799411687783668142543282101880575305364659582112676287936572375725587727989277806988055109007459942385251366861382523756261278015857255118011482149281530336123941220359173693283191252170661120754543118073392766892643318598635057403540619002037091059931521552122396415244013593512947973522087200755464632007405672746682578738987561058840685864551964093164993300820398601544107009792254412597989346152666764104315500249250596633029228681544533746998516859116214916523629414740328514163940337604279257823826908197901095014633332209825343554174333166035463011552518421733948889728779490308419106503363134871132223051063334044981342429533735069037212630757063764288651588514444470911976710292775410762476786820631929394891416715339163913693636674399396994518466480358043185298054911348278221487315622452867964897798022415812613789304219338303483588459737643446929872322964630431894707483126882521414438113360020861390428377836310535741528496326336953545613053539268796673489992772333754136646469735558662909399080962300237533345368167046812094945047342131952654663504022108629601308321241614632005163806955672478809838876860387192237201439978221401133849121480181032816987143386833435912777894646294271624257581938675205970830307844978717067635331629321096147085698216902067340288035563380438299278916055529295124152871572632922619869753331454170166765410604233555555321617558217813157599162783479069114591257395349694875900656091173143813343045223633572880808252441693073248261775883457907077514246237120304689568648558393588434398605887907069463449180165176066517662007532334911813572112839531849187439646232830293257996265185411589973829546659207072666038991016946978722011696722219673818665519708059286386358148209387896631674850703090944919048594061709691523886113360814333589161706020191954587568492763707485380545025473767659422021960442456879922461035709603586041149341540418349921502174223839086864473032692811302709085018417570272272546242108175248934306256279853887304341391730690114968693792452889120551734819985145011133454565881479521907713057936199547524018419203000378840109170740149151295736491448989346516078594210028844284244087743904445799008010027452674279147131876924465008432138242849248057860110627046674990886227178879990839373648541391397731213450740862022980537814788814837364612559707157728276001329411115818792143663675471647801411187854697217415856000702353897053990622229773180771552339383478151685191498590126997167570977641827672909360923560071565439505487476565995578597574490698648016121499202507450144615410553518883201886917018585361610470348359622208567686178163367090758331670022220836154523780786306016450059487578855817334681312135811671808282617278674751291345469102014093035596314315771685885080647873703466119922734354290520279882358154074048406412097138592002166529133333025435333082792984738833494578639838446099520142154174006932306413162125697718318598720836327768459091103686115897652929753810213549655268358394121026949606685640096627556792388313777989126384443381624802742991766818850808583469281067349101587270222685036852461838015442443390640552984361326101934366558106104088070398501580077774682471650269912863127998927905079870835818431099092286757457828720129759093678553080079088928636007662156182153817964993662881126061745528700716323739793734723151650124515568782133610979168448994406577004025763313079071353845505718743592429694279481974975138861492843395222892495644812141208202967628650516340831419245120093378036649547715334897433333165462210655181409796385608415323701911976035669126201192561780774574130147828518796076378568536834244426820860292808328777280363470860210196526484374999747108123234430414771116340911603602447030488481782419976848215699657632759634605738159914721980184365175139384811006546942441704836489222418728143336976301339264761515130720565627517549221022858256286916286016106830822260214198185874055064605154188365628470625200817791654266717364406423810893874701600222832989558162914320300618358149357162644310819821705018550010039827725627978742156265170043176456368128973000925026759871489162905859425573832994197771531830832181909938521716284656410975486458278578192715808510444753381316107546420192822374101278323771863871478881365477016034228417826745904471285639606188551671292584360092549567601066582060426341697639679636147574146517786109000842586620506209265750022027756642869693667708956075609346299583928015666687680554588083983587695340119590789009847366930602821388380081675533927344694217959316058249494883868893467966469843966471044186591025655847476181902866185896117244077334629887256121952400697274498917578772087487656061683313919137985617360429118009982431561731773152721319335099917300322607451559987615501185145169225180399891349377817371234158176292671446861696932727848985037439861501605559826545735253086505172859730653122855652089089842566102089850992417809644022882878477275099137679109731466165539758440377772941145643841569787393766695819617076435182980743137051808328987144808669480440578157159031386026977301460991929485623344722082037465833262937984923763608300932803049468359314957461649056584108043335034613427252327737217722905347170140209840262719862640504282636821477406637471344499580358042283945852895724906231395978586789234447271183980731438507375169634464640390737852403107933549143930934521721891682865234240074195576695699137442958809951281153656212949527555709644976956154079240012829144997639460121791452015201116687344273222196683463970463733748550401001625994023044372470387642868104337065464457433938240997455768403248035351321529986569568966997326068999083246032770711340398760850582847515025355003299796854470914794446541129483915325432076982628349863616272770300841623542812632290140740329719124314353013763053532413340909544063510189760688630624055925592437643115421843243528088771682684794289029589457837811286162892785526515106781072898565129916698052804790162850985837345210365211714310427599179561237251422531055213274190378747936288823330166378711675946505266647398397105715733801166531111985599890105274704125035815360579701669875606236267274519744978710268672450119262816443623647613920478981641005749776901386603974008549187953364741339167853636535595603521064333163369543535924710897485695089438516165932141487860589991549749289087714544241294591202271636528553462109277120404534199549036790326616673496806177523268184338264840625512416613820814835278141716729976358326360366346699584489769924006002898912738147923815608151849640514697212399063387623277254813300394539790538935742632373291981716970015172792357765081010917462204530938774530051229135861987930835222931788812981572928857459243047604554923279614414126091643849152339351320622783059238352542647409929510758383318485155472341692196353730607939985981804498090032743958136432678084256213965260677118091129768778871397257378637269922478776579743179492265897301391139708519539558835909373950349772032759017892234851467970719402423946801895427635980663443611230953641088390373320801629542501224385908031103435477509960428075999831856515269167503726091790337848694455375642607482606677253984573571052188133087898707309227135838857207633831064136000471214883355463236480343990262940371809073031163178806304543711878278826873677590422207037731805597509030533152240520820485173920988833832866159055819134421090640566883026883108926805607523728338843118820188128434919580915342370362978437030547721087972599197617779244824958047415659672171492543854106734025702923706719941117742784162748973438047010593727445499701701833848774703814417317076773015862590411941992080492215835437632320836074316109981126565397182833882070924942655029491256221666525816963509155741817432459003041561736671478602905455565653753496845893517491837481701755670331771569414573373800311040811751416969478379456401167696256149984242481815941393781649043299952973991721736140604342608913049731694779909130129253063558758378002113803021610521956894233542921472464903307396911367695135953774763365147893768240713937908491884638152726329854761887275916138404692969698752718860562209349142237533640473950486762628743248707684469397065914000602250747812029143850125881384372640184961020869108450608543135263204501323251196390796766671680422402033358160094915382275050886575294436896670771177477524081641254696973947025482649513090959618025371456669980467649402953751676513026306699554715306643074782366819144573176602845463826630249293278195724825160727244518322276013816968023025834827286587368039914701300417374937961062277748105880889833317081627605772760734908633682028321031981811577641044658538893346742297227729626420945212214609261870556208603634245776956186842793475763207071258343623552694278228709711587821458933313224144856039282387566893369986146764705273399770333763423245346948534521734326757224723966053780322969082466970540170397720658826086243020888902605338024729799842659700262461389172687264203681322951129522873523945109162584099951817013558246301940258099955338264611668198083119294891450074890141175833469116284762533289351669437314945030314137425000849802315918735231643907050688427441185770507456182695402619295392102229132248875691543880458767073051145531905380658674190743618450029124286401697150800687879628621728721424160197873753868750221991805224320109397411968499583416535167226381969741157401636532659476345202237643947137884989187637887138198338347461705422512264798798717747020496230128029475766216975462380002180090256539491550325667951021413727393508506795527946500475638088079725108272229021665528905511521113387464656462043434693996166179570934912703828561992154592223000253351724200131184975136419076259230506291320676789874651704395911448567279424011254249055689892393831828321972101443572080627577125122383689898130701352393641587378427843086635849312001733567857724050574134635466541530316629049590795540059235463216382849084420311248047160328405355434258191914861483630864608322578843963540561782207933106046615212739510541146374974009169728937599949417147434157237575844202216488253527849759567486031316916209568803820542567677200996170981413957337045302574982674534336756892254972386341411446784756933704556339119871352168102761419859316763645800538771391822881024487582465353051163012795005297962455195661206106963084665126729616210125567727916073015303480429387917572938200305259126671523613041453369918443757504417215957617250884290549545683133093024513380810213311928754545785661408351583955907623214168876577975256991098487224262979720784851277549209862194172882007262612328987431409471599570192825596617674918140555417232190194445092006802628243324842771572468018662913953381430158041927397349204927847697714966508260095568841922358629251381910417846433756192033497697394801254340685554420224061590112083425101839496050463767219501999294959272145329907643873750702764070916188573769708673801139781440942834796136256272763649365836433145125960613152864699535893793593069859689236514272971813661591810309449291649889319518181648832508236633191499268593730399877759335589634235844594060272557766250530197387947913287979300948442439969006500884890426421514901548227861484887455108761951599432421870398582337895473542758821068760910139314173124883900217646847091707613985272326102920295253658150297400391462288912855560626290915231420994753464610067874512012163560105886517479080762772585885604202799037523620959809570935526305582567341826412687103947081174298820197009747095298287987923546199248669602725021960376629858400277165297207482746656653567880289540130725963019152526524125733082586970892862933355765071077609417566404194609684335495134263613336461079355837875385283350095926599928112021485578543619268275237503087214058770692108645807392768729389300839862150410615398317580263358813938315006086025252955769491257904694997564123999133033042825387717223830130940599495752816180941824442936345920451692090707308953360832673966099626437630036906325876536507560930200127700510144850583166923695396099395620161009612360142602118900642220315921955998147374526301068510838403318253308983427964590549955899463642071647432718737624171229846793511072995193412039597814956789488540953401607923708347694521967329643425301368403624285470147282810484790048447334573664651743474824463023236224984197321379829012759158079056586594140388499611207121036688651972669762389843904799546616499563979933390392504665041442880213574996958813722061122729968222820720996588388783784207170030028285822347060278382001154259861451122240685310988181644582446100244589551284064171145285143324167221813505295391776404513283419783416708741837075327382777615608576819284427957638075542270499772315309683297251923315052417052059087018122730180803776362668926335406549078134702646156493076403128887153081833486726299708289230507052363874959840306514279278583873547473374539807822858199486507946717615557940026414587225469162703705327881893931303915512270015223037250963408133191970101874821197874717662494513928855361298036809266210464359495316012155758616371434826304368927855502484217568003411933427711091457123552012924816989963389329498098703861648978245262107752594168062053109481569457090034241145604923669811293062389104070546567413327597303760822561784530524467480545452204253291460734273138554151293914381424453049433410609247511028322542581214355032821482846497838402842761375941587055466315516547979396483439350715874181821922012454712970109740134004545433810262702502056517390512993162544450586095520835601372821414924412884367334029033687092917800084624957985570411610715758145844270745674942710580811707415057704442857037372818956795979077014303154111143684285432086908400314418088720988962182465003626535878256540852929208968972094755066403366551342681544297946459036394557079898095930020079775589870931842697017369874461472464582399496611384846348772423687916195910277258814697338143094568523081670232174393998744206094809025285966701145823854480431833461842660443997794424290456926284290725993274667073494238415234473590438077314249176104780433991585441726828210919255511279056696037955334644114575108415024159688809115936416029107067246201002112586056221213726668247711373437644887767681149927641756145213884455488715373864596189582256199327952264372435285774751111980065874228677701558649352236767622622806477465849452549735424020069602976564346636241000009862403530820137563128891267357452849450598092658751772237570151800321718655456353759495101803834596398074787815840770305341564284137931175900163767709801839770776414130008641384894442031655385501319026990858041178616574661742739122477519825656954427759375697269084354087781994854792551810975407935069317304755003547074031324395609493554232260300637245927163163715701627308450087963288567824159439289468604758856123693785543778095651812495889283008517268393032409467787913332965213516669202067818181711389747305710525798234342858741276780147905795737603335041331538757052301143810971952568558024535719271102376638844321105329197585968171741241555440861813142023363503126048307406973640678134475191779380097305860116620379803859526795577726848183384089005335463040118663985739448336521579478049979401168732752980283929921312962460559639800182476360970060807847564969301378736021770222487766216020104680650238124283128101250723435922063418651195838681328470924305337659379372602644382741714034641339759722081620163502192884432568263693429881803926134202313566074777328598352194450763085042708446950551840674165207606759341799216289911515918953270286846608348574089265068808860483869376258872366350328719159569215752449269471669587744509788060054701740484045970140041415576123826827015001356989512362245209652331522018148811183999718003599308722587273264864797958946776777947562774869602419489264841831417412881650149503818666690476701620869847732036730109153781539782708151297540569602670474906136630321202985125229302240845363233344019718402845918394897921714368406332312373260267678535068816943862771971571706943959264407311191189041850788913302629886862185770710846858761495720294701684079131823582450945329962121295030011007292510519539587273002347819951751356387582345752184807838281804962843086490870511640404118215150792890540051601275423570530933328562233900102134854393877595100306241310097722822285528783717924429688647198441684804251413979555117793621242823627500689207476377609017919677781026393128802014785427506096280315459673916922952841149652894359169610921088043178315137533807725371025566965160706885987069118538566173779826245645209471198106419395380540214021514971058281767160625926074104770465192648169020532536781831855877416196777514527767025607901956455494180812175743983607451080614360879008356020268229641536532351828233820585266684442074428156562825222417211026608138369993963096027807097666496835794526238018326873712096537720724617332950354275575475352786271277529138491723153238549466324600867571498308276799797616798457497678585355787371018239293229877489546784480472157576219992313162653801935194019044521205865747581480980318339739946185702977147777808618658527082491872432451484331709309431644774451796164518082994876421571916258680330341829131136140749851133499440733249324858966989414171702291887307746450777227670609053317831805965861532128216201676249523935366257752890781203621634215590275684996221125656173222734224922779728503218869473098240890795503372534494381542641984674477255172231271161454878007456679892141622759561837512105920772986018110147755681484230823489726437072653128439526807739811745627409817460616141021179549289612907243386178258888527212546069707427006181841650363144197761081407099564454564936770409902019164796856604775007478657448808995117886980236653965249253772685301389926794427735134267208972264056386613994658979818985867190112598781363491778853109613048558013299792032118523794497044535524340722760288831941187062959178265731532422430101943639388363595966594046508852030928634678353668955069904057601843607116606723099487221043400878358271882650410852434659854335744034344581794906451448927806817024758421813022579664781014571020071415800022462848198214185894842374159187835628981472453221267057008378378728024053040429006170935546043927755909775145173272730272657654450536256872796839941466905191811486541392090645849106007758025397224039209638213530105195826698839233152116023105819729878854223929321012727944025006510024101043588636807890379331684984136396832665316430826888278431359716604065944630957147345569396528314645376413892079376839275057523658695968865896162492125779556376007469721311317016018878996222048194408436026957107305397242834116787809046543801118158675814047399946465069063256172593855430708413437024396508368938612493667951108317087577364374808889928211390916266661228372764947469965029024126849890492968877014786227267139859097487209260481925501227095494106389113193228607655502877424157453723832753412141755521378883735306619145411142714675029999377317804286999736699673123168852502286860936028361655233943448840490012449343545557791809468140536591301917044427598480654424780387419519182303970154149387283911543787115346211175789842010721512165665619152235530441481808290533602199622963806915886208253191252993205331096114765065150572136684916920597242873278075253954569238935984613826717071353092631864482628932233663941447789871335659077012635859376690985443570204401941931049067433896818216357195099452829215271176193490105926614839390151799042391589651954037597918656060606117072364806810093015480547376601655657515950143191423634549735476223213555539880992613757923659607201506631545577789747897125282612493465311358076979101564719533609764641692315992246659026758276319286148436944525486935125812267314435231516002355972403820733634372983460406195491895127726303442537582823821828708421677223172626538305114571360079163296712811794668288689950879137446951109746925415621226440473502728370134942319489813299368888041788416514527048300289841339255916255688586098448983827961671996603063900140990308575520285424583542764023488406834596158521647942205365267958743461614013147299744909150323472131967192289118284423510225310335825025897688013397940063310622314558800102736561617633175580085402832581338744257861747030252163466161173781001917231193914725344617634762309066454236883488847563266041965605388967017216963832186075320189375389059747115514475028693473844426852615661768602706417073932011869260125565728704517381854398737494729973849098199008646023063445774461340164749951976678429547913072037451512636144247420138290644063804703977563737389173179356645208751845870440207991520294651068646918563689077689656673153967757250835782419706538010482903451739905395710869593828996066059133644587964871093829121225509950080225258928278220222517286591989805220928460416133893710317531721587206141845437446880459855745509807656691500322761135042479534105463504770861195509045076295845216535160238865113612283078281236681691220708175509830436979162336726359820756681568981260690160075381039353146345762897859236129148725414178656275886679205571805786614578601951908872074688365485601057006714962071444311040018095580267417147403907495702099270020528418643096226515088480216391605084141176472163773340283423676389368699969995889402141668800583388042076575385967529399669401030521651738418690870558120058733191803272375541785503233452108106797751766649843103176955156817204928721266877433280278357180347942362093464450808262596706709426970148585343548903983315828654900119426203542622762615262442032282967002709457961870041615909659764736089477468826437782571872784650165039963968046171079414684598597641617902260872519760236017280745391266874467810526274249347103983314311941672312638949973068117379358407124834803193633609045877986938850200353203063463886122485755382989039987149927807371852172260283247708220001495622465416431163006924246789161888787343167215152142050825167475885271958532470349972642893808846137438867629554759294985373676175416133915205362245013052227653225196217363481340035451642655277335601829474294585321898890341323284190562338395731866850224754677172634066192542062350985762360376970802472561175908147257765374908965488821724473785728457878085063110728155915215337368863091614382699974208300141122556959485790799610430686824336146956676437190463770087305057309141536373518334262043050860914120444354401902513624465515150514081217387010105262878991161874527704180169582400362157697085662338396289177098366052400001628606929288378748564098992821654848356436562720875087079884412885460931992896544478949749948992702279025442179298595457260528050376056427461518451932067511271711255171794312098791783711335849948220620522158460721807408571227892986324313880371778199593246748641939250728511452470947221567647662552362531365463858253784484439742196202023478901072648957554216907096842163899388085650691529305976456866525487727511681631736607102939029269416384816886349811734503372025402090929965072051192092408101223130791347093000866695178499283231728280401306179081173802132287084309302326385623703932347670535466042437465815842628873461024376382302913254902552169676954530662709943365691547114780422887071812006565027816707642049063350432579401143752886922391857457331401638232112237796784046279434543741799381184582696384114028824489170480140507081983687303072937832202653095912484279998489744883793276604738768564405593708856911811873907877201653028154663638458772295408439345317195331563860523430152025629776877419349492967509762492460078590955884302942699794470761188323019571320696906231808148280113529213288022667549307426189398879844779841067153315720741422938439755085460142765736751227890994725806323754276500548479888804113824142358474482506142202158110204300688249154989368073247096806676160150423950325744962887643986013798759390468472194054859987609058276127648386319628196237557056482153467040092428068922730353978515295779601743198481779028336051865072272475101344974834383278043973419701195659413984274969231336108009584511721033341969864702635177922276680114644271755165811204605187081267885205221520689059843146305847484551671841757390961324467364956488121282415023265757530868242399282982847884976573975339849243624414722959835231489740402194878921921366279459316278449441284822397557638494727977117021851867890504439171716858235706893733553927495514431818672479349677888412655638064761665006692049903621172644332890017113441192044143831448924429965735133906700748056487153448498352172797034458047943791756891425898159484531712304301514410792136478593371508285337290040879778225283469437876812041989696386741236164080108997618091448429980300075179877690659497129740907680217488485894446444685329932703251968037483720165971536470658689935892414256687704309740948290468860918868082619263055022056157457290331313548159758690959800556159097984822394225682566893809469095718022038318243048420741630601432810581330166778504427687669216653715178940128309861874008447829411732324791068037835350533585249946825917716263387815594120491452588301851560546984144255680600877601037281774299762811874951379803601669157714494375188499913158923765580769425116847946387041479939455699897099535269333228553964809289867470401986933042143085599460455146740151035724804857031635651210749905681469781832790895652854065363411942952694588044418919004729705275329792507370258763589388046073339332528041929631922952532899247310780770921037490667428870369309691929141039270132955079389535493146095281512917248576389532055465770098182984039747998798474395894769754437038338541460870022878795491801610427501598082499332455293257438924360637305473851329413071333355199769996862465640965779624581676602082182853712111395394014757696129783989609232827229656510941318642636044017491970224759897511452646669659588112733682379809642625347987570926317527879205067646458565260368410582371492117617555514788718672476788380461759986452883359118107135637718437218558315394679299648513462468962381819091938039518191155493205292388285870275996551428909576059207285215016923162070288610496679457060679872989732805203445603712223029969671564877954359886747674521423288944012006488374390275234298839643282075950358786714914831442885227538650237402607224192040306647460000632000553997662191967255684942629343020451873935688973816493563965565067521127320849270932180745306904570433829363178948450031872333662908049345434238586637825187849982964661526185601964327680180349181770015345013092860634254650263854143159971471488982810880903280108863876584848910632804894715405060059047907167168409653495608140595110271375447063414337274768613630941387371423252795689359915204392914920850105011198718176447405488129789210209176210433697073978282384859135777870120536082274129737618694287656424005087564225703675303999572486673104124934658641975241526950497566423336069134152090878073460277466149824875354046852764804664284923368791932440625125260322690010120380807759780496692708596191720576903186004258783721321805135334258742897663226759977087184004641871784130831580529174417777263827449086894832630532840135703402609460656514765143188863410115954408995440526950478765907992473626473637967254581416891356390036050759113713872272364841228307577313875382283732681719530720659587510515725210241679908212698654600559231817700518208419848720853570865143118442724058102886791928932809551080795048877407973305244018471407245733342781388198445806220682656008074576538275756997630467573724948250704492104153054595843802125370129341163519137055765559669160523864410720690365745860165331181949960274744441152793081829807172157713070235738004902689429149005094807876009998630255623920302165397542967396737709981966233433649506311810801631930797766038589792680712023107055857899722219510551384541564584618727692279290595005058861250498234086097377780138301414077204108510113219130388037933194216570367516859872145091910223670722260001002702952624506824502510155988002721677744873037096740192035071183968994209243534610736085351035190469197013808273714186333480306598734335936920717831468803281697466469525117227762747285900312738790525649333537944109412976394518538957574994376945169996023925478954303109832191754162166682416186456296127222458617782256488225571004678968218919222272810497246367461152419269512184002829707563927998783375514951377319290890688126154897715152773450891546470805824621764165593464543868203634695930774592917338413367145132255707408660506772093951182717717672300674145106744992061996623038368508135933704334752216587783596130141002844605701126051350717187395884094431376301332344354278918333520394010701597767209823955934651049138972800950400348758742829614370753368317780319546589875369431962028651984588191619536212380323687790727659827932911923199853946683059800508753638537810305722088107301292701801882347483744847890807987648198672371455074026871078501832294364475378676745231081487501425505625756382497807392071860637409962535885436512295491458693607925694619900386016441482408088494406635167951848531205475907708124990231883706538591043029861880049797407337488219505697327261047995426191256703872832861684639278709227706295877855590940017550439723084471567281672363740155166675795490695450371306086354709018689913389608739597641650633778578474216668306420192627021052246020024179863345588206994951375229329572975433707213756723855467738998138452211045535553800752851679054048961970755973664164669269957640114299641457640292036781531444565957186285896503693691552878255402597722670591157804537020505845621403145174770775997702620843425092229397554271504602821345302421825988488698128847672786282183651405504619666816562132857392580798507045680603928385086251723096028552355894042990271816971998617016966604526573675168171339044644804405977940927742498035788339016824808339985543940127840316476586738760124447408434822670193406436403556215415752587597134704275387791248263770321292513792959514580047460761712669704409662047616191458872767165424607061216595980529612118369544615888404658176002267060526628784761043560044390975091647886153343747404000627210698792271165826167632122251646815171688499339266546448746652940078128279065801879353427403206723207230749166363513468612315012681239921169502574465093288664464330016815322846734841644303721288803828241129558648073417641371304168672138854221419770348490159457944993256601217106425173857392789963421905824003113131045721228981680672067338712071955662986309084953262474904496804595550257143525308686400529756785888942929266403564414695341075716426933800820060902336731338758526285073451696729534162506996314046633072689050723559272764827488996221676413102596696007923408610034070349239969285360663898466233134795561466495217623312492744786428862026290045342011459685219783737688743993330595246639930534663348332702570708897565262923191365401627898111874473642765895359183941140572399116173095062227104106381473572875837660579091039190653002755744419921411352139840223750411493292578322831481903047648413347649521425221166241837278429243587527556419122208795092970237683824335682869764723575421715478907261816154693670874180326213471502837892877711034479663781456200614748600794316586444586613127622599367110788613006302249723856952100336014462228198543842879359429479367335053973112642268486411839793176747613048456635768675223708242929025161538368572691276979458986728857743522307926934231146259489225300444161745846898936623824087461443435562050909232009584577508803945639074833523886604292910282450652931312471830235073474626309831295737619256607779130026495205547132198109132060636588073564234967906233509323819631266524306040838717417506771510984536771383065592394133306420538044348920061484451233914258044074967617155480966789388234330287690617996528999470372260017938112283464632266753837225177439557299054844476431049350431674280013216208168012319488754719851064803792342242765390745840294061616871464638765320081532128063184604540533246753526333628140146672389251551041316996412033552293619233543303830348479463046592265517288085106512518012302316534610968519318795867370401326092137271478729239849119246133443361113954120976205809112667106615735925144659738108629598122027756220107304373345714332893712609532200513570173895653622566183279517989168629404603089945869746249075358954587891276949871945420637904015064610223464400900906387899097319333772403749249994940796800326341446443385977728970339581947598877233132722586946825274252697984985118828180221212889031238007202901997458401045234117567744458185854263239433239107047601588056719919362429108554619094711049759738315927946360112082245433293096368875523813426051373790974169098357578846896556691998685494485786046567697624374083169786403087343398767741288976055030210354941535656719541717860797737432939319329783011366374906368338332914517566566067014907526914981085352461771936955648768811750271901486271077735875275873285206714727408635947793768374435987626653092408451503056034417430298403756876142616988965254424161343663697195925762692952104310550575089550408372425963213156659104541446792082065189740912886406626128977456508561529592809298251494731414088659973251557382917924115463261810316896179539855501040243808055121062418787716531802295640084996739512669531107102160672711648354310167274950984745499287901864519465907467858826190980004803130004004113311402892584770613020954644858806300387733986416890681464104060988997136040250534567057792255515831684149759772579196693339925622956152204034335989779577987597005033457081650419189576488793007721073826809854157335334697981156818416691776124870668288720326386364178046117420212176122423121042637523302504588052072775300215042529692788260464909635160004893428884809761214126378412045298120359748107588921757431264269133757283627004464805155646365097575484449167067446335304676637460587572820761818744599913952514408276544234524352994913935717830864127411486624753110474373463098242397991253140875588275273610868292524470855912676443186379315305552619731587495004573812267191422368615855878160762894560810255966608898992744053664927835854166555976788282442613061671761565133310592793438165426035261571666877132715392138441951839709491898760496309262974379632844374727899918370837743971062259170406705730225287858296067885156586027899510378617857076943642712496208886598863219238092745860182341040910517391479554172762401315913896466091144825470072986738015755111655392824924853069675783790519150511096434977055685452853171235404444536831120813366370581386408715598264083194929513724437628929342411497861378678739470054494740497156353337957096610861655142622902009547736371024345411250646859680734800841285978362236917917711775913367955339054710557816840583203804712568747725399401802077483178298041258451886475357206409205567520009174334137210568283550839631727326065504113558867062878724408910597971398539162645144590684575474572669328344235626763893041420157943201078659399795953825950239274731611143268246397464653617419500393871241512271213214260234957885581823327992235568754226388598171077168187649936366395687991087316425500482710106264797675942205239774896879265500424196637658685233846364039511849746746787401077234992368465493389104332071100992429538165431845521711383298626458327806173575191250071873975722987729874786239550717819062173767628408197332271387272892073002587767172919860138422447491991026031077036762708633852240075055654160467191852140101113216163004699101093542354899247960923535973036367712670566185670166910423205157488253873435978229061444706482902374579705110183541156498429775020062604551960365664615646234530749518645980689653324054476624552617367012601830558382746491786411826564674657181702422605427505607766930067041879893682949831411034717536818672143348266399233133907374339275776586007058069052755192748599166964196170866239194187739844596533228525797090993214012190607903650356641014018675664896918912093137040742228923408761587345809446349378628846664991929250377160620784523411116216386206143774535375610114951540009565629453446025716763859596329902066665226570639462159905053943051451437265716210575404597484508442967182829896328667988475018988435869957173725021055208111589467208832855145213401042189563611195679381947638242087890523468257287851068208118362959679136400248200416752598526367523527619844064558915962178080768671151463756972879449604199756670183046856174594139131101678866100949725878503696989806284666882326755003251293656614234311964420030227538654834257368221229866010843685132080128665489242301140838334144060788678813406442239708321579343132874435882290107761284002578414504705137866110584246841070948285006572873096254814849959391796421918165678429700742736036456050956555626189978124594084782664789623862127028423787056365331067502443626368476991518013724770285591763592973824852976963430093597291912384663767801184526564904937733369124390252344916304816315646168791165759743038726815652993490733282292526440864875445740726327372753581200302095210579393685792728604060624150249016974463062258343218377681070347294961478408756505126807560297667952790940244792076365653951078003934014829572096864148285846356915871743409618120986172083271696389472064048476152710117414429146608099071129023361138708580432197747678773459069642435101601926347569428337019893902469348756595410930284177216664168960316837420519160757931432900543995941288798493040393909426698975492579750623697084950491007694527589022575201447654448645519853913711893822930097648755850988026599333209604219807346230955547588620433084756413201260554775374232282149549457058076076131589124264498048771610632053500531783653906074201955700988036771218708593067783091378458052059698868922557552815046173807096190601650752772051242688805910150560837802094420455346912381207826156462360213837575111244087557308420833783556438556776336616414101241779273930254563470297711394733667698262203617367740597730547748406445788785444698428504047087338232227570351571528136177358898210720120165858644426767267903900974915659912881584404620588023866146024394464895024699840987925589950522705846034994817570357607415454704982918204963616994500419784642249707035088590488316847162432057045984570109632867947988264374252808300836665033214379898687924050189403895163163996942579551662189924293616492135239427565418916890367245972238638322741246508928127343128694096110607562971525793923791793895557151891388526717352924709592882794113883325433684745766593503159824991795686153031507524592368023785669596526157296728364133706774485998342769839408336489895837044469774584163236835590580721937654398147297341054765591463145312881500588041612333722762582852644944555214526839316031225793560363065046130206869304372025337681606613736513763964893985642560686097258524446297941449688634726074130296859220576014401869250465157557776210206905367596723990102386192335514401094668668595423676114670155350031096680086307609653292446153578592834876156082169767839699816747187634406007385701980853782580397989272291537094489602707400400811629854547875476553368245607589697234216771643621980753056301528700556508132367071500516633297431116303075612650472362095217007753754449846979724182708206095576401246474443516947869294304080150306974547930843767887113971782447182142720581757256561655970077952959872729519435545880914207811471397077684458808931018248061733039061359939423693861256630186376766417217618509422377460017143593160757247181879488332338952860552107161132585375763993536106124802339398636612474691541731675564973898371475075891088878808553057940326569987308365148826986988326095149955478732863461923068237603801719764063201284360664277930864170135214862679748586937719539872334139210143576111376717347588555201575163786495874226101346082954871691091945791273784805137265207059762450307117368893430859019652285754361990917550834048089478899729169138283291560992675118889910238712804524293165751365131866557315677467627842046325038467352718445743760848176792134997613124136065748380946797273783089998089783110732493105451276374944513759179494943948047661740042708626269830737097987205562024459322158923496291584194064909227978572866559589621887441738270803999334837548362544399294350062907285287227646261389580569268862417067578009523228910442339595099965118046767996938480290246458036494465753177488552844968218451530421588307249825550854741627947717759047335510863459939111023935752281652599489790188675942500490780559238580425654946545159358030788028603565390852881831338582558954791116366938690423181658653454403887122384839447177063477468594581907426237810156413453741000682869789913901486391574625881808638199851884999117178125475057703563879151917233285775299108702888557103268810564497994214545619204519783922857987167086871731366642050351023895143617291006428234305036443052485770382469591039110611569658751030515888261845625315272005371376236265558264325649772265018092347812669158815607211221379937521749280307737107330887900347675320799483750586342782781387815240731884852636371694358179967292984536776781649345102642529959284716133281364894219072691174524571542945323291722336273330029515564792409720954389794575559117803060934772025448377382244243604100104851394962428794953131166175124888505822036737761236157832151417113293455017191594453198102329307419099352352604370102827774326042406168235591689827782601783310132545576136234416223680830249865319729432111925295714488088902082479792110948008052330273115055457125564068851130470447817177334161588040716019299048470912457356727326915905168772879892551344575760434096812158413438653728043353985192677821830484791906421666399942850453092009061960438948113689633175255125406901821590691992829336027064664440256094702712767597697272658690223930372363935831527532214874065839817556571921722787504994605888312282959598445862963344936095823898864518160494075528602273848490854306684516045850536813191072764370612656477452066053742388853309028167755673682185511482746401157953811965661267490843462389305463842213339204191096933906524274552773630281436046559243845525994520057040394009201802303612062198610332743885356064981983002802978932351231689286194870800457889428254493784276593986182868831937787589503618150731013113075973583178150371490560324366465492659082748637437714537812005257679950969493544645199815584597660129491722826200318983614205167395401660562048620345231858168967527252509960863059530180733845706568198247047155173553124750047971240130730106233673841734837519741749539969697881500708651102104689892278881471093951598662351513422651071845105446095413881411378146043689673514277338930473896447910350423714435781486311410092811913141055216525382745713650424582236605239627346884594478360281790789750148995010664999245086380903918529323032428911171995009677937407039842516188765504507717858726703933134416874934702531644330107330412752713695608763233730200344604194474783962691905311216233355750200220723236827370110808451819167522742211134846757096769239456598342077689209176013643855101873045992993465051055145645771508569218123301387254662090317078120978464908711078704583025109744264294648805413652575659044645517680555532437090775697947915254712538477113557555006900771271262981366916795599145930863022919208825912805933020251963023119149699124559678918220383369276334762832784110678071976008443104021955988672026294395157071804402581831406891949845395126707763363050494349837371881679373889909332570799994288449240135619918422747937487641009855487857631822188915437180824111583135505745649281220806795851949491842445458651501504936137445671571626353936005033134713318477673489772501558079317985768742306265391666105991378923408057030167815092829791598287359557890607469592334252487643208041327011709592157973936278801108349398048605487806355782985631937091768671960209711689862991385936187360409646345415947265424172009989484202574493300163118391347911384534083070713084215026130865058803689509676894248708777295995870312435335396718527204061640970488152999737277183361999277875594236396163237120723651460736026027480918927356679495048313022866480183718088881906604962328500160673218056740573760186797573102070316081037451614573038107177795305196562717991998547539389836493505190669857099850041346822169523407285283145535922304303620871985760711507387876562205771453394600957020553938957791509756921060988272012408545037607075056221374126700218725720455112042496511804345344596685606878365844703043015129920022384120771392856234049658182475643513847914617429538464386494009433881340000595431581123297707499070214569499112386879358349271309379510281273382136650723388131975407502763220868754287441519254341326230714674106426094103334807023564430946752445049791488753307357115348565411689256440227793068569027418700396112543716057535530895547944987734512348820603112053254274723898854022015542518236364584941073046524736507878642497255824022572799052701282564454573700750745135309163964112890489933726081375505439496780247032621622480732915788079855998528460249107867102325022626994303209325427643400438729391255529908710696078709755613507307143165366781597403774549133244926850645461151432331305682620105549104840742698010789245528375927266322609942095960118238082645089526861282125171779916097967569819036040705573047497014056604938285307738910573469792755106829751034578457046719151391725219158302022270227226739496870269723697279179195198823720955703318253901897172407246446914330495409019917060127196403039556532866020667577508488276201640957124770530245375125850348484924861801971763280912635974373340969883295582630047212211822150343824681682630585334189190993634382105303442823861503123723824369170840306804306975371591128431217102366757116350289405138354137275336947132591724741509200943489922912320470574065756874397692863161465446307887113259830628485436827545618812529866439613894645736522160952755140025287047918551164459445135216861179878350210737565275381868172193284982506887966856086456974793190945929466889903431682300228943374657342502256903477830477271151858117726684292217817402149127550699766765842409130913885288031428797601753601086185085673392241200862276343006269490866267770942756640680299185352728195595060867291872408967476610263102153790486876305370633137026074591883551190917959211397212689340429549210942365113516903676306841651610375037054519799494469761223041317476151334383194228539843077115049101074257666950085542346364087096541748067415752772036260707741845738850915104083345074315439767837952924901046419200099646832906523205517740821352300963299037006066758759132784338337568513023825228881508008548285451507678576246729390595985704353592998905716341062036329009639351865804394485005358791639084031611122265002819729492840907556495377755408180224212469735539341947309473865388470987842636890245074584591053067523183279323562203108458085377782479203341087587862597744399604985160402765554956877656847941704001164018659202500668753161987817121358666518216848824449509175203874805594576565672957442953528464998517252331469089099388431214564964332101080747994518210573739040021736939952325802760164603418052746004471311261182137589442992696592263402197813356421595201543393528574047962446630036698330929841691991518299041439281893998790086599025522137074334065324155973818610589423960777317963924600162465273059955261599300496548491878969005889969760476443494709116349237994863975768261036831865010282980487086038948109536901025827902933665465027582849456198012167820846302144299483935702968643743834581157258206196327895479699649745566887050136818901514194924070247152282994588450672239622593562580284195069683094688511432676376677943741242817686700758344464820664381090479447559985030969021398277388713933419561163053844599845760962835785546815259344495206136247219828383871503752479859086624566190602890154257574804736612740660369891143288382374031205803996308686883265998246458838985211026425953353920142666142001962638737415690960149865500462382777108852541408475727925567235163060857048191027472926361246367572982214728420956276690501592757856766888452494101340618851043332486278636217724254275099789460008987195971199508195182428689354822166928190075230222835315779976654742666381586401921123281959447290293187215631500981267511126540636951217385244016253075064902516618630520398984407473945791718428608419141843326858935781020060578837130498373071270677249896949702773902227668462858611088479000888341818366706180140794678628153605421490360598950608255498317960857976818589631123245443396439964810001716060511329451448239862071157180003532111687863788196338829482635311298889138456008565816167504383878437501271405266410406542423181822768009505311301033760538236802657483899310218687885307912703020394895989435693782646241331942125578933252337329437142915362454150341387343426199597602999317735908345043084884835098889355788562861849397625248049604888491136838901275156887720774319617684241132663178549795681103773685197093997256819679693566619674888993630086985985583065184900663398850825539553762220141541198264285021740066234915898479874324306966901784259531700305491342823952902989260462465805671626212283781048403085459278790813965667958401295017900606369823265942377394601288174436194535686684862521158515363627840360840534359420388390264848002261057002990841789776226761683871351848650120903387017249431471234444173350859103044075949426042976865818993136586734816544927047705792800202676715498825731610146305842713744336333302108951513556294127956029498682887075906323635909070939074239404644703960900582056950877416793153495120654474727152095554733560838228430130705332169050614659078103949581783607863792291017237977378248509990312632722727707559967719123482683651653091513724440908086152935648376635018039049107473948120364739373449478660210825710554740631032054909677088943126981223827685347196914675784969080551823332694798612285385737764415495808132574994927805822717231515775609290174054581177298751019171172375770958565053021279754919659313476607640426589533332750947444693882638404304100302038788997995205786589752521111306788841437336422546101641275267484660599713442857455625513398668144083538574678996188760040783705133106927061273570476562671121512536745210466453219165858147896935912312413491749588271209273314668376130848422272434515184513669885627916187841959910270885889118473753224260775728893559928480826716330645318306303536754600026882292859877197983494731916520976342110976488640921326079750308775566157326919522263595781661258423200532273377324103594991147014871104284575748595761057089945206105034457465022641040797578839179918179292621396470002043413065011880658762820545990727947941027543209044082558171219205447700730637412107504573326656717518627569574262490301810042217323080586517761197925911022287616867050543550154809020690846555520105612077891523196515908083875628309008391720733388805603303907857690375620069417704332684420884430995471604195583187910792561370584319744124316533460746488908109802168745747192342089951629529743054004042521293290154129457931084825228086752850756145091535574471155855502512753053936205214397025794600509587146534986076524997639753807919288987127444660898829755009177821543801530672628022296257201127091804921031238145715900366061657242488039347542675353887311382759567286773662796230219483649577099299786996983224889128450309897227848872438597511826803650042095850810597743981262114725991093270657851448051007063208380096436281677221645984844469329128054675720806249496615649620721973963008065211044711037894605470299998434374025045793309622507601613880277921312500156914024262407036362217937954707406233702042148242902902889774469214122157001149819948570888747774529995061942910769910585056799451387797136063629476291681593501069614551560791714874967335572362421993006359226549675948152968653603972204780426709483428134457385767029477185541272838344434517907409016200332216524891094491895792320724184437135869471672659712328624122704280594419764412432169013049222003676723271832125234213556194837706150299080287856084463018320289135118475937386464905911866622580543042640195599304526926973635126065258453563239429751990194177860332665248211679371146158070678308173897729641766954236886548548934522653220561721659907578644220271604021429261293939021897001195808632902996541222579415966447224972974468729407850954016800854158280381824107685753769736538069569261581360622819960182035209651709594439541836916910702126494704955330592622424628239749248928011388369692759631299353480693575122534412624742246543470872109079894984127213256703271067395177788343785560143210787564226958606228065638610314672949472123739151929056330774444315263539731761364397030639766863356459669195558832908604458812068773541990066077978901005678765842359914472482144545518413349394926570690047473996080921567359733413266411110230009130709699506701904593690864647238361370234093121496343750671561382050193348879377667481842097136475868903776625073238534411202434624329180569298308716357015162785817409583665352378981185153102926402884352898415370781373180734019621700163241202297703652858785781058225016776917778643730452021748765059334413927337895444317808480490786229460294081833483236582754698652459718318582452146623928599979968501153585654236932269078462395414477704633436705963241786033447475912721050124164846885112493490556102693432025350177359126632350175431998448798278511956302145526409826475880679854513211567360446015812024820914887620153053807399799401129029545843121548201735077867625369915086426659837878518040254589103927622571553857394383569130988390620230013783864655769550349012885074204581866474223916525282391937549741152437432032894329336301692312123001794425281421336193515690460336893826430830100147094344895530346610052689764118074127571138404387505128669427448449199297674040298895920360489814922174200424151509813199706019850914535118698480295132722994506005068121414666996473192147290217175988815192467298139295565605097471148433433523816577593825964116820034025660737107832702038309192179861939521415141144691577753880320895289596756270881708984248221558924269418540209722903797713226093098929396855971580277409451029581466357788482162140812811885484572462281119733203554056644369023736105084124155982824409719812900591984339724892716751085297640632844984866103117440755918324741920161623518038777104352786721952012727899081985882420868010526604400610751873633159400878843880820260739125715961678258143224488367832753109821937123962654179635498609240702861696879299874784496982543882159713140228563975880304264052844115935953184200859739582590404782266248118945278228621879561099246099152301173304561360109202152692436765769856474893407562850566296294343014084028446705171435173034553348596483953937597498145713378254612312442699838452477712401327565889736735013936912198882052782217671717798444186184204448199902204779115100313458776263680783798458114319253306452112090662637053195005378937341745613304172492772136400295876143743147039943825775329667938233733239185935056876659897332568341331824237762464386430818410108341500102853701599052709703017070457482627006391317299161201199051434007762395002620853773723680889408345240636633293014566082259657475332944306093754397737931370838888971890047907777640994165963461819636829898373707951152695065738675622403234386249726954752566710772219745615449321689224799910212750397827387775209400774213160011057573728668866531086462688440031372741907321716136360666156961404962351712318171390437342407523941299101968284005518511552200794375600529264155799998973631566932559880021819013463892706531659664711094310773635555886688498393852808673994862257012091881510334219400518024993303413381219153705964602420284311656375331844615934368746705374704670684444998865410057377651578742981263607728475581867676762894967273268725170462844021622895677115629824286086601493675146514555480851687766901862714441508868827808545557628760378365750861048938981933307923140713169181725345297461234924813828378129084116264664764323743525197838333868248402780089406818718414799315112541517470344326987306043168705673755892897515173031978690414607360245850693351806277410491180993939428112746347765637739682453434788529972817232932785629373521737531799898998527169994555920669665867608686437875446027924875831485593242249238606345795606575363506306904176811553125152963396988468953615707843783971515172861814712480715259970435609711681385331460180381614186733896390160950206746530877290440601634077336423484292392240227535067019529138641278522619877183264194739603982613589586099627750924422140743498501632261036456809629977460607936870153478552677744839640762660925303347005385917164164797102375008787652715653860596650542406551572892729121340054956138636590990189401396715599882253243244719911097210830072529393637934172501640794423293402493180242688328090343408295980898279933250488418116444837044586987731820761517083494461655824398166562235340556141780477036424530862605925319433927822485587565830160054237965441497237021395977293757246345523764917695867254148576478117681026850484964875949813979256042307385392521190333450728546235670180039272573398229212175392443436413620050443525203368852505326631376972107170111347146588718168612796926771742813836894954650171215752639847665022754279580873262308685811105952190028885710189964805904400776657563446584061896905164813227852900458378529437954417574096696472231732543683920430055667105821539199713681263322912398482742089251692249803322427116494832244516071773929220677474534047297372480535777775373913112016309392759560730689093631280180791051521972501436490083678938562963445917347013112751509412128256337932115490179250143481102072521803468591405420482508298100217724467194403755275235021140110293212332516540980081108111998668377147147915521877745215872327179423893727297179901090783718733334866340402117765229828357422065188043701246614114117680337643229933331032721864307856955134598257356364773160770121650741085310899666012655817391247198624360628787942092109329420405500229176701228991104919207651599372492183237387063993866350313802570745650352933310887339882704512895512855730268283991568168826129463615917633000741132033946035153338304768765674369158632418255325625833360027638282271760724868499846861502009116398620992768068234408370013457254256311323793713609293774067763804347271462067114648735135738905152664201590578177001239531024190878305464660638788155673679551306032354198303831256003749950511523357545104533715445289225852807427227828467600681540123835057018246619876738692564389569600183711645369146585614255803386948097959698800984545665099487320861966991957092602363078285463750491881716990035991927306991934168975765787620654116490348564762949545163827642397296852537745384010369624123487051898642053612520839534499142020455920160557432421190227931036975695040610771974535871596175364223168351663074730480334238931962895502945628412506090063192157281500125554364995438317493528467547122305094279737045084494090509199381860800261529676764266870670384233191130699074456475346426043597733978167517055684156140437955045421103106438530368486288075006193612525458567942858517218054634184112817364360441496998536923624873310085546326277527222857156795670242164835248136331182841985089438468845060498821683642224166222378762256783410953322332210730772662734008306927040992731636930862191352897568169075987740042202170016928026080368164016610459260137811216067003408697641188910737172921820111323189118185220263743507098737906257739707450752151987111925779360070659229867556576030501525228135951880834837859228013850385413082401181238053569707829945467494366961614108033766804989493831368621399133183551296108249398032644579175250213145970064093621251354634304489118333967582006065343637733078683004800181007126800899422291542491524954249914140248422210906053847613794127841418393637700133446818913823714381704392627043029090553161050627253408440778111211034855346530303628872521190005114906248357434931221651397198686318588727967645028871012282145842348925801216752666095271342888891849749732266703595427774757863131664706615469497068031599246950643874452041905891180845591890623070346868615021381444913517455888785184937615710473267236108035176562252679970630195157908954384979127207344762196559896442386743066480290394682879072312331247296758935592845536465003215837178526104242521587695807313804899586766888125167414805023033416824927850170123177019091025871556758336661668130209153043596296346691767910136384575210664112906612943912830698957255934917144481064552813215099610892776790556720675118311951310805478210433001038352440166362352235009318572934768509993541814746059005628099294874599161403049961487880002608289556134955180380911606517068729034913108293564633047514100430843780566971838864625240199673348061038080610716883164668660291971412047964697987184189038177995511922016126926320623745052359770889641105204332584451355425627604814752810823202862560917188160636448590623540662781481036798933276353149640291326512947589636485802839419007538715874616375907802433941824538214010822087373833022331984852997807770956261539848798103815723063595234837539464377440484139204455356724369803315219140703356397591632468864108491236520554331334176296880728546134863820854171353653294849935674934194131914298113675963265732972940435136834144193555344830156305751471974719973582899274834180450660644885802294923228985999887629739381548240099772402668576813265953258237372710785884329203490619417083091854792493649795220637359639467084636338941449499933228838637955148104204765598164305298200967559321850751256585705621771936143261069665896635426321161456196880459479917815721129253206082704411534124548076470384261809819910194820739155608582132829126975881845195404358161698102430294044192543735892769606835007519647218790824664881716356907571382410686840665600047263721223354657438606319840863537925472893720680236040470929939917566044772839872350001932733993698891553270835282122492778659640181436172568711679612168071715702975808740856044361845685015333628357895178923890006947991743274872865761660898632719071073731275641623801591174168742060924964619144108601433634582031753436073347927528907261721145199380870971803160519632911943292509827304457431719596942837065863577510610157691733987349297428090411552379037026160559329345382792474192546505359172712622116947961327978325921197987978326400568730304094793148341198733767590375688494143617947933464446508619836111705317681055666620760965331119183204675550792386767864745268296433404258041929672215050951927014511044316551143507584752038345502142098672612797468966313718177144439314557673204895303268194499894981249526795197411186347170841274833439570708107896659779492864179476600234594429770213595690183891141103871123685933692701257991381728534945598443788687881485168723616117525228255236134274031641319747744592173179784157272797302776334255081442264999681716060968966302122916599798405583155479383618111618149813416661270366626287935533467343107683558136348669812313993831311295422364383151420626440796919645649746261412235855195129575466155794105742135161429760858604864059750381556768222292772729172339632447917851129808480141744915798985259558530549443335388269272634732732633398626040365627897377608708070240250491334257125628278885135247293776591909630162769199627929178955845723946121008506405682199264597480958980123307009244623783406910573242872557014668870307960575385565761064008374930187645203673880591524204184507435455025533278891875788859835663476273249435193991027196392200877486611374436588626755405778895876374077539677318627011733849706547249001552785081774869561712491205574965848035681207056563274654449252826674025649120484023354513635166293052290745185506771417391168263596114872489653274126655238727611834747166845289939773379042066457876772723875015978469051905605375765097941558591198100703419643769704701077010534048633908897819580636583166102976158311811039227010993099428980980859425914492625125323483658103523174262079260362653557343129731811398538765436654208979866927194520218070665684303997196482832772636755356938581370940520978725651123242820107447722182764452994681622849670417575766235307696621698583724125054993720349754955511063068303350924534111122249866923393694983167736586011012083964838539632394357262011756165399627683252273357950311067196935860960944275405685067793452004864432075221543666948522621004724454171669064620365623405388834513737815859745762216148044969017844606608498518013355327274693599232558744321703959796087809458252106993521196008728577412465544202872436119552905327187292388781135996113883902985534481727985714304208354331179550031002923020562792558825830312363682338113385383767760557895749000161600693505600669501181303283150862983969681605545809327822905610247060129104601013518266011057924311155731126122196208358526824495801105850061218319340009364252204730477081973133545170817408151766899827675741264230524483764322163383934429810605407914593561719590918328422978441402916559702334500468027149851016501433232896537042781763926133091693869403142088680672163061661909942604192711868035441875441387789592639836766971283034492320985423268361655088246554896092322378112418946232063760275778634591214572477097897713076497176838411200046806651346963067583724450806928129180259604088206452782073472939569078567255002295448059313576438219539288621052581048781946935684007950007133646409479518864687934897789454820240259889491960833979674712166288406695216848104578182173731451454862110211532236683781036977478361907476351803688175012397170063108751188656679278171751940269769162594924899230048058003202482271466539017070445906018267443014589200729203439827101988672335509227779447577815787941166544761106655538402326656303881186949875678061402298877890905177491910050184291631555034876923740923965941981167899450460989163698371278654588164567193180631464388679355914812891588752678800318541308581105333205636383168236801829163614527380021697411512886115845201739244506140055811050993958258674258365256630542990568344752811467309121359426557595389724166549138545398551569002099715119418683601876299943610734044993887864472732684913785785541191653693311705643537804033338128092649127675004562478941461282368173648766642434326984593174185917633688781303392299114545104261883323277538262713167830600738265346605533274868310879001156751223166163397530408127767962150678144579387028888685300645853762565183150968707152614759773773412049323123590833084022353323468283210146894276272437507239211421540615307658627331168247788875713229653887339053106366127263852655622449287271364600522391259640671745898782876406514891327038870861775808207902064119013023593499297697871056902878836852282768294468749309292538348754719856643772502047424653975009157413891670435633644999741551266946693512775153695075532796369573017710989099368609149509379939821946043428119945268059475143440757909763325790636361418198240337706018566582187634204308659959703778661770276043393057624781942837515989039215304672562056043437776337676956105932126317596990072909013628592423669761558284508732614330293800802471928053309245384638391886785802758479930751488281173985559850445848510309660842196313455611002970096736115108968361975265571842205497294771497539531558844403785671736987216676441686321903169403418312637849897959174168091637832161560478440055126723940252649779708754122551697665334375789759310827985548648401615992476364558670648245402495628343510185960131098206551354050142161540307922461089544463624592449323744516480179341998776578445450270159892021245465535704432915458771345415190894452514919453489010668908365475334007223130153154641263157182445583187965516750732641485200446792220522895651307213105274396677994889761618174938953323601931138298032727779065104988388762004213053526097502541465766319246203007372344895400820661130796884567106548075925427934364421954231839667410111348784034882194489980944102223940416388488306834410901379643098140423589204833987522440436682159979056193038446958096381525189237107335762974542325079498746010226665004436812046228141141685888661251619648935242027856242714575759095354380944412658584648909510435216210075862995935386927232661909169097248337062959028755771759520890029622947570470634883142079201601814828669919342035250459787870166942976450275837180150780073019560364152351800773251584372793560171583067808566744185830437626636741067434641119739091890002843657796935977609565754206555294252877109069079339766481874255266484762357732880708765863663722975037412246155110780233194632174836679401325772612777078763144146361107830848149128912070047450609124340456284864881917123764684055611591003262847624745002577762064754543466537116206429788566796864971326078268139896881794625002126853947428857835435461264641863784941840620197991944270974926593123329801233032550412916265568648632520932101428341766905592655006581731891396894543963264885480501691653859272454864848540477717120252214526289712754236888457923569386106636613254066767742978041590706764944009475183853987183110760760167546165750624699761120592057015350627079371816411429277696059488295910460871051496189247369955502518812822503454423024260580620146893533522226137028983873637325914810734815714900901817370157751346099662015396627816810314827887482831824383175252385818946511671445107111856897075612540693713681471250087714149857661422013844998477708983420458842765017868869556670870033448414881039009244019631723197292039197470277919782116038660106423278642530899893885061679211526280828024284102919804777173240397576524932721726214874398700446295955888849498891706469357583543288837719240020938464958639589490359040852233571857875177780433645447701248469651116168707582931715320955376994045759429700570124681962984885847032665037508808278904719568993376562011145159251324583702686404340597950403598665966881433855850714519234242805171034507559775679091691427269721143003287428208533714392483068429592157450491024778038033257648995594972774514805589749915312444683816227720264022076366851005558229834800079130887551022968784990982421380195268248457027755810758565266047692027125486197346381635975095240721171707268056252698359049627659555455181872889513802102870003325746662820475711544841885113056431866687872764050988845951297504715606388586231095809924463176323838289144192519010434700991328699852960685084515901938621724819203377704256209312857210297406922572243043137014637402404465144036057497590423334307390695654911581390304948697131864145985937425344538403946468927161345730305061575699312095104929604172610965865400529304798458094088220190838644892782683910624786514253651578134169121982145556865587594017113794448283930429634947448070921352314924302259813456636482540871919031369660384609605224751508700023258139891242219229052826748129362303224372746160768212947467838236071815702006646967331886915665893675440999095841168480799312512977353124447643576886868603309333300716675765190964434697818611930702148806786542122546723184964607542943254564588942186168825202847645627455972449085675996383731694737871623944629262674709217924356620722736718721591403237450477589155022616438612576309577402585646938559399283846251302017774057542438023415126563080299257547825640259257859659189050221545914411665822649280666989337940937547430775601355322794264282632837402271740590260232233444466246135178097540681138258559419177058763722408923998166146493350900707165113930241726654534249790464483076402318125537284584658143466214955190225401781891513439075099990376319966984324341652334724555571033419374487984796025450790507885465744877670223257401002383200318842799260762822046215543528511983371647701816634489725806318842627090045730803558135905130773983534856077924567815683056731031503190682161177739675740974482189520606501421334996022524575729116720652447839280885451969826449594423585526704706454930929323217024052576010015643651263638552660474499595177649294464291327996327053035381794742050644536027533559350292505195357854866970796218094526522139221585032794699464310510398481178468515174787196895332992387013595092175843462568887588289761146341776418803253840959840350857775219285342397244990236497666707161695792899631528381213489425312704244931390602805209283431294976458425414092272812183354615797651011060488692585890661470967933755091523360385158476320470893313544874261131847522573957604492995172773174215535672864837959292453252801012528715653561268891928075331439144480663715518941668958066829893645780190977076221994968672036624899035669729164928617580418022256931106126620733061091439336100565906926006673011222951890541517918106316335856029731882461877915641301024858751342831496731122295749054239119874351348114321937872973242168390237757431430514207939627618133893780018540086756312906012814336475456166239292503005518157799757497986904138344226993146662566659906464181431098815801494365503515495734644695670881584420478060832308610591199461419522372196878265830144837447319794229296831888331390450085054436231099187015851906868584481169023274970951786609452874623775602484043232295274448638784930642838208922917615723232037379881745554839323065793548749888104728921500758989750318566196137670310818854031911380335070184651846098858634196508849308537314089953299230321435187999501266712904019323455731714694727093624818531022031305803543501456774049738004318350460198338645913940705262527999921227791331886407469493469924407684581495634079958677824955508048772784627784900880760629575446605291831971011331858978563102705548720105009809710266570722002694803586649250098362333448754625834466789382734291960521938056014173938534073391703613011617267978500273135535452098744596734885906272328674481154399925905963721683239335350972903204980303843573831193482067471899203012577421609663495204581446482766699040274914805592290720038720531230394468787408820733708896318101886709357845149251190816078687767188522833523698457421191726328410403253926370698670413404187430542270965099072085030565319512953110739740728446802118152672154029952550570017918173153508875266209083357096223811229352746659670429767829432903293797334919456069772019008168239759996791531142312925868392222456728442898516539107829350864613718735343722307176830598814401577320426328471931347682854674666138780924998780033766056637388331045890937115680858932319852769515793650036825225213096872949339666382315445266501040997850441448796350231808328294713093812765619780120252219211060848604933541822730868526567443727245844783626590018264344435415547939492869666569274917455143802317217463002329776721144786197992410628205061975969618687882278042138633078810135603909235076963900734241595114087958309834172090394584125278997749622360619679801458204034535253728966512947304602319947071260849763679750137083823857788575530966269271150368009202425321386058368570503134889637180025840636946225640226811393134913715093570362018170864661242571907211832828498900103359603086321490361356601449481577602313559970045352611146605975064371581905994984875829048595722225806780831261651905934489314468496705277763361448887851199502154689948079631795018644865176627425133814210607541789486018109040113950093223001200922470249468711922044693904119549906518892695418992740972479754451026157145204925885086174003613372973063326209027120635979551278537420565600312204713185807226838637940654473197221532973490844115567009570679562228203610033771767776545992237655911976214374012213948636573435792525090413386005609325997005237205550429810169477346731422994556345264842454680908289044584071077320968274736937970113894427489397189093858352589474145076340340967220053719464101216621299639036603242986619838685175420334665493071001177456430466258830217676666498975213916948516313736002863505649021457996642343133583308707047076867485216323642231285764450443073897480583939075503805166751036737685824881481374825682464638439924869058403749701013446832391917344933731485479623456936981370916362427100326398783213087214830243155978602954259358072927865063864688538098233536830349303158040208481636871950918848596221206452616468156480376627921635143552554678817949585018036592947499225142622027766079584726050385509387645738561172393130564764802763451284775974789118166220340976013285780518475092450734259295424991931919198491252712795772561710680600381130260591171634438526763825505448765048897840197454583715499107767202170817389157658109051083875629638571662995240986022724105244880874066641188095185554628790301450721512015755079158211032342817421545242318367634336248538401467922105862253416456849228361654358459769002405104757056096808092014367634668887245853562064439272106733267708801164396598255591979314081530838221077957141430073201668516349760608225718741594585066365901407734093616855831785350867672858944866949271124595388669436198021463437685771403965028548701988035193340304126763778446488575183447347693170119330331583086930000175761760441885769187361030425674712134202182068742921456345476769286333413008525765742743692798599139167445084228097234126252290646651194334141508270830752354567029538376919844236852987032580338826064720192345425289969563245594098089930154969289129750474741106209323267162652280628321382692001785830840939595009510758599250931666530396475165115302089345892587636496274727508772883269245161127572836977691203900084473446014628907355217475926566019077715689879635717090315790058101905428111188075293453404731990243192813177129595077080338594069018860601071666499614287549573405698024992320051601080100524599182270683105125128473347800483922866047550549693594636968830123483323254462096330984812122960840996794215213507134613838339778446512947832303073249666020932318395920918334357066350535119545646759214287059547132076109633009464212294680073802594051174578480600862776070717269697207291996042588267213809498412181472817952292560121647204590135903580072014698311167075513812634354715740871364436828329793118587330700236237866007193736245544065386563341611431717042960524276057373930816041851496288308724895100268807698676204153834220852271381403508746594502994817211962620575548480482748668757472735491875534800261241222895733586315116983501065248625974478794854383079849358495127783298543000815130224645773618073361726333852902424444099712345630238850683690171969673868072243702525974749670284555872093937353400461880369594927418705430430353159552473119462965713613664995356115461046776131906292577545697200974543066814162429370787993558386152533487867371576021320329062011642244234747533912797455418075515593550923134244313687852153778032604444133840381302049495692781839381137961490991633375795056805198615427048636350420179307358161799416547397623348081991085673519330948024349461771600070155048694152708248707988613800504151104017159861660821389847823232742556656824355177675836732749175851445408705928740798805564128781196901268999791210798466965300282694663921566324842531005973889688602721399676465012221028611410309269982706236853158431172356849685705191087920362620285563438411748281681995346923838002323714122778535222777922287736169074402458141254698235137326116269187944973477091802997026283373002022849620178738256472067615744990766838141896631953042426238441783063009563978273930530432409525878458329302519679174685416775401591698597361135013884221511503485943066520304627342023609567745490563955114847136860367412179633915456459818092644353955007303978274571041031253448640353193687516886343471526366473295191219861267227996734652219613488070580147682718131370271428729949781884602437661596332340954475168490514483899508860823088587800623018609818018501546251341215069363539414601360334159948820813887798415812252937288854683416642334313523356932744885648145404853136554285382011169808162856487947721976051425094755403025278510505939750949515356111159540563595320812367214163260037282699784784882979869628760825523080490742286028134110453738453683785743956070605564289576183906285758841269301287640502086452018094901149285774671897112885654462140464553112383741341025390664256493561945382562974147447131245377577474680472679462288711177154524144451533812243079830971127146458954665333341139360506477818512060602867298649984733830997197703959606394211369905027687322103522975870227848449782671268416974709215709535794451137731383550075029227253973683509953881260527740600776992207798404627538549398570537077288445474708447032129925572777558027688095834084661513560110246625092053172564416949597771482263442754977339521190191312605496142734872304458859434045062039034517918935953436802740751138542783695240781293076493981925290506216060498081506534916582891551897938678852760253261948362115871234506548809957853936853309960161279089862368924874871142223980694303004978608139933087757390907238836402871745290135326469097485592435748601279705360828405493196866158557644651902806920853667157287466508918341658300868049788504404862053547307379113483654185164372259060361635975001057756227625750856359477609032670905532297300668151978221982936403136584398317795035698706423317052778036542837730715003508131292102611432311246080087155587169036454284238618323574057087965077100968354477331157973742543700217741787494472634188734511791055810777117377052274876673859059796300249711139767078885094107522335493684970796892749850785269683027832988426730478176139186081774828469286916191048783847962139307427130040055622807616002252852293611961379820239293111835586902640245402833692067917475318175318762656178648261245516027263270654431456782766578532538119041503187807835112099642719659633076594401297188490133893176509400747238235050047116519581517115881814394753323625419041437873032536996523471168488353165716853567840267876489428958426335247009990044958969483799186552328477920440870993684362440691871358335047189936697360773725248628152744757269009821581376685311418587877358194784249918632885672698522436536458918392168786268634839824589697519324894836900571407406728638887083819885908138780024218878119111105599003532035498625113920113495999134300589797711982454090762636234017032159413701197116406651923823323407098998735201497052086769884172205005814773135110941734728547205872007226725356972564210133886419702829758685715656508082846046717414893326432105408166211929263009453474765563993731153340594921904063001378633054153712038284711757109634741224070847586102747039015430071060622025756266237744165613982364441337839347571737762658322383838808188903425462925382821978114406183868883897519380423968011352894156551959596852911721404050475683951714123974986860184014215979328846693797665309216867746828912824391748898125176162160890495079272813995676859498031588239742233703115631216717140632616722051501278686617210444112563001863756088228085322037989872258362296966106180137935343822406032994446801935781033277335023775847748174212733610079241772942000252004569857830460582272444628249040470227730531112456404452126070488359851272803595169094479449804464517585616618097637656082112541154267223818524092360018657839645631960791762178619347808871059623835918443296728104186687615244178920383897759130705919277151964586603022753007257024625787806357983880009917583201063607884785305338729921328335729972847668471556409670009500642197511682487058403403325791235827919409747871384199861708785293397201346035051067423991970418191369901537389935747952343959166635915733052363382126833677854287151438031620884784614116157014304631634165947694936789160902334673115271271148802495321122492317039028452979212284040276767194705434826203765559981217963380616593181479961867994968284910638301473446119990562546342225073694702916467028977946836042433796708614096526371009670749366950382537157635528900271548904287009033794001953124745085514732075335610816621641961199991574827053271825444690591808853900501040204436238024282654379879834130928412799131468928991916298979734143941287798869074219039698359545747374570862859153879650350010356415969058098529220561050682990494823335831909017041407586499038567825965871325699444288495875917241835556126347039399256201613197331846925351054605597661547882828728810953807604139250681472460659202222373830716552013690413915750911627664057588993307220287392877005216450131556160819922192574016915008611332860378115790845448525032845306250224488376562325622122184272221023752954083375337278378632870224220970184050456125547022936771543658986046415226289598172391042954562798725705927615475481706913106423438383227058336632472120837290406950378105654425632794994865238118630083417432591607196264606192133860023344080745785367238040406547146113150915630586254622947852126459050396213176886911507636532682471534040288779890464652570601067689990873065219273009876680078177114377013249880586936975355428238523877189198857695899177353509825033586993504625837667027685320069096199444345692159886082551700403024224074490057927031288363247531528974334358114667538217678516404388460397851941483721397087439566741875909752549200461530961273777466830103472278283893259231465528629406188405032965473077121238217045225863109904607788028988186839288540351837073679552313105725462712046187513773849474842235343884309219456262500571122473616185083816588463074828082305160767242936024557605306012565753332081003016430003139594227246488792341739101236813778342712264141894700237425287706476481623776376265629905834144305881100025175700284271290536724214315709841305242822923723153610698133613265059129032407879654694921386590841955512777403852644994151840687324280801122455911011940858508595152575769294861271340514613967223696847062516584305173039418154026769717706582070637747522897957220877634717237463649339455812309158234467576508780470645344940781337130029945123072221322775674178948123004479354033574537530956130128956302497333619860710799825709989964298113302231258923571853788853975835487933800314306830712007699658732631557632971229396175885613463394436624433247682945528579894486990581956453819326576632615223462510253035223566602198592799180129497749749727305861630210594793102307198198822853144032876716097274678780078117903785029449178543459622127000707435047915888021262790808179406709109753853211078584114040645082232435929989023792703429327842891069285788740270249288874528972501814995238520260196913520469111060086346842462014129979274951781243375410729963454277815010925140721522029966474785477477250053479360619321487886718411406815322644192075127106326112508758255674715812584114030728064962917011377416541832100968536410588288456995256095752844615059949377935007249210833578244721944209621451912780833338498105486173663577273528237972387386088060641054378130959299584671747281339394744509944874969147986397324067562042522695963233456920567781464058411633222428605274495338954423959936720774426754827620513348311607656831811531951872501830183291229204624139989713486274482520592796109990689033944794194548604654113668702249069006454248341629281576993787282496857218702071555935237188044343037132295622902027880902410321114813724931971349416976382183101298876976874136237087915009673997920206535119292226568954888534122848641790144917274525201230664301745594510104964675849273656087767706977003782220598029803547336745432174300052357861928435893901124317128986931060863655976895978010035677053503395728673125743781752430566472434137090324733457559731200913706078983020462379218866934922068019079068759225571745281291138330879968683604317537440732911355591144905548488380257917646753103230932623778513868983444446574291858408486296155223014541224535354416421438170076164571063448217288876996091115893482483792290929937353700433154594607753397296649620145561498659880166680154497421869768751141603641715509835434672817675901625231823828362070963067149096506330725990187119523380159775801266011438984176447500205170206211328897078317849031272100186419611339850487192646674500365579313247002434143710559970497189100591128820794658866509674977502720070845407056984029308407157834211488085542954554486906315615004984305050553292680652954455852966553404553756803202203216990307503028620788507701844092247727924473922832878611406947220830470172519440469707508359304750328783786674085006706106257333333620661360450306874316417687775720868117834406096460071557514159271487854557229260044728077900217247710573599479408292416219829143162119939998323420698373110227434782280683716443703959493538396999504294477280280825817024589712134197105474291184703136556768340445300218424898097594706132914811583856822227382695479576302469649961453774208731784515772544948278206305407258778969520162691449368601414253219824609209756128072132002647797312140331007349267174394131820117783606746985282496266410680869698081470535059703636947504239652112245511023138612749031257396096824519861633022166796080335180076178764778282080857270436093322337899990662578959937944517105826882203812119015822511465092587524928477819063555262804560282603580153445610568314202854914179766280936156261124482413759582934269257933744718845095973118853839149738143751628874573321130009888295306911068416124006692368573431189874491679748100857545151658054897710164322030983715448420317305119572077999935938907581249766693691540513525734453679231037953846433962527776118000956708194753767033698736084371972307414332760916782796858443156463588339258706570492783519496052791095764559485427985701358731378594293122184302909315988173429941565740191038986289047858099044987310772476564326217370597783690624179891326181741597534743819521324201466642054516017200507214916290826471499916637494336621008327884930073609861779426710855510469514344773862192663952020264148928841831973206071531819002376532119424018786800018890316888655422776109837516014913826192735696691780318273906156024302619140195095371143386963865496348412869742042340166113873232830679610944937998200462621683236213894750773124141300850699366930542594569227097198908605136989573737298458401285306732440207872034896772485803138927169862072510931207417992169459838542871537274394639232111270191220455549660405150532507290116141426900839938769115139521896828162515705400166132824165196555614610648002840586325741403852176489143374357871123519108722841162312026790776627156285480793739349114059138952831211862606941802629647238691370463766895646777266643386055081105535492859947805932882287999621292265927423559077256440821903093574527479168651088913393394150077484243813295330182608990111554244485620799478351167806705911217171015465324974221194659145404745568061489363022011236001391714699210523348530982943334362626018110704929887241744856081328027375255220765138706972553949365786044877626022281874935898846475045422614646856967781887070013666184900533414675797013580080580041082592253289720187393019873053343802071810462472002678605140129792032122482191662186422266075875035283822897503296328339200912950421926111712249673819596021832696529088412730253477828365255000014928118506642327012570081229329028229774426022116066361977424383294678878854775542895339703795064227780999809297178367975490089831853276324280920417628601466775703055466011872143832280535177339595502026612398110495262710794713434242946946843023114392509970499823423893714845443705867274330763281609387860457652167246646853225827292961920352724983967449883564706989643152111425829477615676251102986267223599894545801839894154012808789788954619178025266244236569513790612123700918333650418812790348401721172914745392679553989647678067899470311975252247520847409068525718662240924814641019258589554135683139007053176998641536127072767553387967600559785882655818669856501014101337538709111340104125665974689502929921475246506956278902770628640606529892585143019087309047598966776586236024433677504476415953193794659161598081980449255796028497547450944549313525555369426815628958717393541595140955658932556422271157115630319254354985174750311842536114660379970971626443079647072229736750077546403409886415397675115579085166098633305042981035865194050064258093032890215992476411798062333965434481491168085319750119587465150954077625792372137632833143743534853420624279535755920962826124997696959954542648990302112392397157794261295957521940203033411730391336436281774220714931721199653868271599917931660928690973947183573213572459241672938782180957331567744844636116635890123084919754945403169454840407443128792077946883168747504641088324821650723654988914094297814015596135875553642577384710869390827854655102786367956310990413726147324407730147208561023353565340383320419948932313844259978671929287911087119462447670483393814468473111649031775861556065372223690735167703839987573992411776608298819162547051408933766145552704170690079995555333472856536364604566243880717050787072995914208690292582397235337535794747699748286803938313906355492943322598221875953555735059114554380449081511208478477750568976425622166450481545831181712753329388311707534089487977857796273025633738912228420240955366015629111883684520079940559430339115115410940972034444412738540055056218792440442605083706155350045094163529409469540226690734552281984199146731111386504628117158199012532308587339765866609090300418491891647813349100675361752362845940116060136312848812727585561411047415541002874605846078848040765825503957633215370675755167878089215257676168105198765023625347427889019303494648247366482045942354584866279709120263657290986362037248152034857071371257925784139123237601517926372823734444921428357366592738987203821786986447291648701801046627893862281635034271252000626397645931420850086904300230177171942854232915372774679654726952949712886973294022319752411104208556062239446130655029813377382744563342843196154379022807051310198081211033368993385132104212705028145435972731524787987971711067616491305977165687162756396460069572653084623771895761221405606034196375656296558646866410287755038583812000983895949438875345624753102165162167312858660176047721362772984232530167271288564690235068490426088669508521662961494525643034558030433008093225926646803254402221871710943019680373577602428376412659203389956053030870630096591188017421565002856849801305645785725327990907803967604306650313021568268269752734210848943326730681194284063624903149110512579217771579192680445566960952904977674470356198361225857139652287482280357994529593796779021539805358781567034533859562178291724281020625964818850721883333019282221386860265421684423238495945654147742301834296683477691302303522420447606591488283642910959535743785252898142238587175079046978565244736077134415687738364285864614964413376957870998741321887683166369021771635043202516577512692252099436910584184019418051643457054131232394557032395101206800710955030985570776237394608840520650363588223214238797416044456155269669549400173599296160442832562030391742157565779459573570508763871033800518364326297663362683907923567097882713246975756333899504254733504760211786071304799202349527499928372452022087575013888153491084499140506200225198361709514417017794831933467047475445387675867368083774945144144701417194466537920817677875066219598102767369632569925529312638628899152006209898217365021141638019476892622286861745544128219330264834717091667449564272399218545375197455073011879572305617096778280478024591379838734069111599253793600562800976426313283626545238961486161707564237500080602902145354375668950260907660615124368939076906930310554818170796688282332284876013630130699660469075888417378629695798531488007799054892823494640303530623555520428328417826529342702158638004738108181171947442802734431783001468522778413330680355945042206695032548553246228655394918415103312571643249194768825469251822642390973939087227600538270599610974715350043028024065415820605382573679843585223616951185136448033917100547692962926961944368896868509691203147762275152051171904475604699715088470173768636228828054797503943051545918320197133780511099586398799934434696376236154386755802196870392807104620487085168539870548208227897881596998981940298317487148141496810707910221601273134952387631429493885721045521730559509645448709737005874593170719320748591149303959044144643793720899400856014894109733698174053306937850719189598283776321155551463680633308737208821214856026492197054980644962922672986892371448341817357649096378866310022519902381758777182127579137768215047476972250288116224557680522921176383037953316478712656343805185371124660983898808228866699948293145607059077057221535767431930645836450573304802811535730040643384269453135694878628380615864585156444419436636391210309254201643567719258722559457480229070053654513315418504386820910574112736362146004144176330072871666368282214565324497957304869166169098711037763231103154362148330159943785541220949409829736566653685319729092953770884859465458771990499375900365144446971841047845552476264373210044885193820186357546667619471952340629063000682250903499570032256711684288517172837204803942110685986269397209627075034562158271735550313715033871744160578363331186167384374810309310264144521548030474363387561081931261539168102821232629434611016297521806362527920595588784734464052244936350020303047588676927485076859699403843191281122545793657809769428314393884723218940417288863191914297256670724106515066253871588248961301862014117996283492304850078363195080867204173968684035494351763637893563119349638441163663542090611073021518953850755214624092420358169692336137811302470420411179900901608546512563384785811302352047730109609510464079535007474254371817319716226006102300337885737322974225755446822013979776707518674190621780480198997759923707256654347027332600442988047055421075488105800798379860998595784821606988611211767860593406270621360231352026074249934595647436014705806790885597007133803837722701183252897319385911827434014374287125985608383909154394710330051518484995189976024210488662908734819342948305885113310408952084541061084652237306232267398732281525284039277972441536415460889702792816795859861192711266175941999808606121826696834239181504978161124601357441574014970060926137484600824476766388668841809965723002254940598047207756087601593560139667074068530739113295912919547059416804665063911146018381750914577398959530437136996459710857577618776701164159377005243062005018452814393929529390364213460997619108606676040209325926613799751868869315161317020475496649418763810372002881283461176435072472334958875012068466968465668390551481221952109769172549157766248800046854205268074417453100811608819292526727575502481420663487382072061254246438531022396232068632228226358968060599624516856292705077127447462409845032070465202373783884350358840304926755213526406832280043125499892672677414470318676111074244383548934345958213077974604248276769708562493346475165556922374201953678298662152722771364524816556692112370034188517709125817273616899891570297674470511646725159229447082650625052951731149163571579584935123950476161497071105065419123797011305165170669107226672952735583566446897622479849307415052430014171538548348804438239345871825509374460575333711739821045118267365491392156369150870604227228092371808992912235501086194163611403052598384455654853551656414705221133082291595196192880983258641487604638790843644879567693141431377107831555680323132920704522982217388297700093649717488055559671631043319477069991030974363900643887159785347053512181807223737227878049266301337400794732133558386414616998868898767481318083378028648435858447525437403434190378952587716429738601954812538482332494225467985042155772178401207127497367273007305976711740226252546428486398668244018094241799050717873867648146318223920647429233915174022020144957462630881839233102033508698754061092279579077051837518750483246566559758834205732259910598694614481319144863327861205491403637701618931386945453651376470654621628015337711681721812942372098923062054696734388325681363955087667002386944198309681800486885397949897933089238251615589244971335663119227852982696471471101296846089635337554334537846552703128399918640432606824093269991914020251516850196597898558281413311808298323435753636439411343384621084088237594409802629075756671053838791029421419102182844688438193657194317113150099644182750077077556697137120729388613204594401677837168327190548296011511804532470879525249415224137443716585353386487246074101358815008337404323466173311712908057708594129623346498671624150908883214774348796820482906912988842520381893076912777872564792714157626176537769398776429675368700965027279148996771161210255571784304575553646179403156736495793034280401100345490899645960942191188729745881726757840730990032647092898769559061278883670221328917729022971020187631272323280092313256736798478686462893101384994129696489869918363145328255657476142304820807092455922115049187989265215498073401329045240250519739757678124032254620038741921244791864970778297693503578518474331163841764534053953836912265997184516262435296646291176952578414633038443297096601015900664899727568166829548804140687203699129325723431719376352770900892421927640759083748653072382625513703271468177428115777045249278708814756280015491058943082961118845946409217272854409805808644164186823714359479868079318526650326477596845311814391060330878685312747529995855096271370557205923148830744879858789552544706257982813069684861601046684193011443147403502793844201329466141724028280270819567124084761725085459596944606350934800602546858196565541115111060973980575525307600208508557527470825816503632344001501980908147175427835098436678036730140702976128757953083123888674604016031059397383622329396058820713729077788995845766888983137472313984295578209528418871822930891716834442845285277250908460920758858244100868033067555101017390410610661919662653216537821625323237975923390080630738813381890159378578972941744121408548357786355889635310684122795953037686858462944908086362876497614989135547386621342493125130117049281779046641292805808580538925178980235237110640072536834880198957601912109848554795575048790612074366907781419192431770171810050262691544740581289719818508806331890872420297836930760653614441064432111088095921383052933234853413492252788970401346187176864733003791401357807736221684105052507875279542100409761103415495617445565915913531327228005789521304742857035915437363819090727439362034787516973905120959706217722154280993082624795239471851433060652320933488821524903255802934460098065533781390057891962021019593756910747459833825454316232482331182778634721732780453614944639892961689765589152117609182477682807355005049607798244005907128496045019804286046182511600078522708373525519291893784202739590163203053164056251833148445702563633755793384435421867138002603731561696792341682144057026083731336063347720714582408151290500862769394356094153222989314749373795126174537758834740587210044904659364003980303040803686461554760282180201796844261906864241930624380024871475917334138292316500796854499521535490831654419724106269423549915557819452334479600893453797544558358252680161750821523995317014664630479106484394139009039814817671708987874098577231375460832935516014111520520641511141014913004926054979510550704264607313736778068124200085054798021393465268449645488192203736150500122473955857690269045589436834223108262400797176926143679290673035336739297077635635485508720410410665913025507367048497161784792239029167246205928267166304676173280892679954392612806073968497002970903188951364425833173944584900808032790452544507158627402117985713863360857047905504597499337060791219435357245016644804265635555222499047245188833968262889088220696587637156293119461024371960380716080340108528053512662363885845227499994859336447092327091159010576908571787757116007818064641368317068728965180590099556908581090355751459241647087612296301792691887607823018404687955069682004562948187422601177210643128428257304823276221783815610101080973265113272610217070961925179011254199594635825491254994908475045128093082811907224098063680767490982049923599218703885957567346595423619346996741415808672363355974374764304512102087435619520730768321879023267210695623263358953600259874967418595988916665008506807151406849900255979344580642428674178091119281005972625922345303084645691259585528641592292717752228190541774662366388589532555175872875659189115876652249402455678696607426170809459490429979226290318415563501617132338696207880832474011656202506317211931683769147309837040261689642792130690286900360165635283313085601768716041912911771936741837114468619617440528056550304662400664442808998684163829600031264665166436170370046011580730799001934581968351418306610742008687742955914306357686513829844176049553353522716897909992006467201851123460350313768404184693910997167000600123854638150132742957820380086497209902159537577642110078122972155327722184948486901545718651589988773145358582913145352566985526252613722639239381786748718846191159164824502116729794960058990213530958322874987668216694833535630757317094671820959304840549329041342912296535948618566811009565627180462285931215837403028666567478237558283796964498099116113594884228512268748951550458632622158668794282079613176326698590689713221377633106679606701774309515859511049833270625953226650431363156598275718941627288085471861651270296029890622548499523643112679284539881499244704927142890941255581962370619231764053915579436194335283767285526190781577907235137701094712742454941290463299755678900513657801950035493628701671273708735181036769958382205000285447344805355904094273331448202488115816943218315406369746049845800174247657356913187908417952458552456517002520495945008477283099764802471900331436478427232886634060714999711718857897650908475104068510128928620255624620202380211927577628541905956198552786329295467330792637491390846154561057065046893980433793541902310876025166189953831765478921260337902376761157050610493486857649331092629539895439414914368121461136521701811869113301202735322317012527175564510104204185048204258124934131822583470407777838525540803567309151347438664543969716163280648300586234031633040305573227735883883893524806093439871115945561093742159384320194522130032511488796984582514151963421623339389018357563732275942466967295945680111916138372306868998261704522356975341204241663631745083885686129414211739913099677010613512335128286860942996776988368223418485400161533087500106405733758398731138818866044483584588686683506706381650191497281399099314981158822273609969102023345641879100190231757625849993012378179357303338835438843356620732685460879987447476909792071729869325766366398392823369722142823693708065389591044986462995274135800112052107470567517351229676809741537920764315151119578837422499775241692826416060622976172529564444202577451118865520646483694343723762943156266179838036784959883864141606114755841078081960310692210728447741723097141858571450671866458474793188141728920857838436554652492568027646606838597252473404314221640406414051901144014635854482133046341680217825252114766148091438357678304386652655318374807735339606201140914778383024468627190206465648425766923251250812084785431146039478367171682882723549496722329639425597046811693954526460745457462468295776791543562088495024570258676805756707927775139957926226728076379384310310005290906614609249723404933968694458616018780473257919740907045911277685346890859624684962200397265917492429157527043179695542124796441361236926932126261312693389692411777021026643047126196662430387636651204403465688862729253730199063329776637842515418543809717110968799407345033939918658968244758473189512743310858832318266623872669508506188695752285907730344357216174951132602003061549661734250992440512237742300217471303814154538417789746916900451794294290657081214609140221220590066609201636304882199899035165540649927835591777229176600882447790128636592521383024068510315768436790407410557472117282943945339453209784324720610723937201700222692454273808013657720624894548126539502834542502486295576740779030844937067579065741290684512560109292619614141486279749096623599417658703330922852147515212433304723312267083786072205899788044295967144754893090842906977692602700079448189904411637287186323777721864500175886621648970278608699100298692869341334830670849167094236080764841756087877269905079303634863788667177607608983067044321056080476770811205084568344940562355570566278576692262426877269749589875373959674011111537937005116619632669100124755219372547425532312440561672883322154043606600950851070472411867214421528073099577891766262932924171414774688604798138627489787387168639323815654653670095236947245390740693807982854981317744795140864765779854481383319000676391100522342517657665090859316863781372176175280314038610463347805247919749855621979010156029479058276326661604581604417795548441760194354907488069290276566717601948767832340851874279334002117440414113908922045325247873922437041116374412450632412928605482701948741360713604211549924403097169618188272135095010941570076797197923320470337062888427381919378321096886771916523057359105841422194699362867314452788609117598838145232757390297388457847292676753052746835906717860699163509203138954711177229463973209093593045377492692305908518898194053284089266313739812744131640954194488781991298708444857891381795480365272538062163603273646010716922601592664207519625645813279745343418329457295882294695879886352860219100190753632908148310103983328066082625396342368110278363875082118667000510761599510136108419275242454245360922560687405366444735775547058863677750634964277117098620370098711889772704663681659544801885389375334894170914843200158771788686957989237730418830017045404619924164145250659152359012932608931502104643956380772351274387108525277593004971090979282465106761720919952433208834773682133010458376429055567921437122136859692797844178205327740424954745418362076039202859312603067353855706811982228150178727511999059655799111790596183046343876333172514921473877722641674088788661414505552690570753123255349042407998411808467147734636758262398367410259721129407244015557181299576238745502286098348760607952320834779076633108890322308424454084685432779931322329204294157564319772752117088856660775103572442022303027870200031162901069584805770222714527510190606260496362620493078513573084092423163641720597889843288804498702442724974547718941942268188077145576829689253449422563064277886520951732848984442476272716895819911740825971430899043203945665987042252127782801048112298677908999903632807480978431033664607582317374645575448526822685208658414602792673800288687771854392979555182347995419279565218700049672323225964218968048281389068318481906647273875954345062968727894547121646838772069133896889674276765262258883263584802049678458474083224864028854321623887696607324171126182983171137333253431888717959911925585301296901587215846197863250421787943481262060396406437969271299622307577697875973506030013557398996596731327270205043137594484997569130877800176896763472310453156659664476535979864302824687926965528413494523493394513728269328200309629673483528466511772837590889505276784766927183008474685071214774591014394463009040246018971628632439590571841085443294147655238715169597250675758636667699655467028238736953063631492358521988994862533563510702228020560376004139984078110466357097129200595130927326785825892469775035731776756388340774776745732754906924285284726871574057517191876913218712767236382457513817049749592689763036118497133484773776127569850826009790138376427333650987247768214874073373949138641376895490655725595945944913357214613660249660732836015335192803270543400834856008697568583208999238846253674693054001623040536277593278172222910089689240216702980093096159879036047997252206065369420693996617579858162473255831530423699776993768812682321925373962186062473703893799294492588174884683955608778914308023548385099020904533178738702388841364461787361848108890889862986400650049384704161661415253422713496112207939698859563610536250897602487913201206437266570674058441002759257912335686600692185287622407203569122066589920862778051153923028054831358543726165139135855439226340138929614938997851443208389701752677606200793926594675228034394227370609202638585437844924556833654838598055048549288266360819878816774366589904384386135856682784394780931715463117358271464933737402478801758344385986461584052711047065204072866177170457358319148725173116310792770064220984332058659449076462640918338651211589315983895432770516286235017447223649749762120665720212786083118059254074022964723148062144245211722631880384166830452492091231625767573952077762642131972941867093530223689777988863445675821546315212065152217853135357887628721674267405244042751252306389241641731599041896931048479294037226419851400612576760984579436423820215840882963712112353650293150840332937407749153558011624454452491719419549137973237760073976399158893955316991685925661311395057509596500167641724709889249909438261198504471175040619281826644066094000203333848928818928941559870268249858691181159468629106386302245620513280179877415261145989071329626802707879136538965733233066537885769429446393174253610743100033000981720166389231088620783631784315449322412708710218288411779303797758111207121231754672735031899600222246414012407207267619518009806014842869809682042526582215905557931968417388532856086840014017018045149767784324664002624271839388114591474623009623481393177700758431627120243501911979953269684685437220339232942452542190384731462235231406684265403152207450895530827142878571610991013271664249770942104843188740187071268312850719526469571589324366977026585961306315591113578472395140405254335508912112034229433977797334890576871353041712019725957507944521465927912338419697536470669679211749995288964618963020590722093629603904152020075073812193244947127036474814820855043924347663559073177791978409971040552342902672240683015658570571309922464399097330697817441943759841774271000703261456201018262523143494965978425377301422929409906717644629374785382402707106460913510146481844599971834784425366160171652749858454694422660956149684769774278107853769817471855496444135004077332313827519364155932172076925543746211146326211914194413866501572492690266016095406740073312668808854760698337963077384658492369936098963463036207665286488568266070513514976058080186525453781799800167738695782550896616221867810496695829948415961914921521351202252239650784097958105361054847337574174059522910239949384358416613685942719127177684319736019926146680986327350685764131953119467786343638538112046387550762550233614668293765091193753038679416969449185769169035590790769807356445806415201386146529104659657689924757966691646927265546962289825653786329684669849261974317509277472065878320751955212184924661849919479237077358305460292002974806268071941153429310939808889798038557772553586044673119011573215295295044486525719892768661208530076338344783769936667651760117531764292416103988040195428910403360120788151064846735920777042709503352257022636292229136380886473646134595970070800136248508340757227229046856823753390421809707109917412598647230889911225848124440308187754334927016105826342232982117155616085846822417001202581960262820067523197052518122578681388855073695698763810643778005961948000481810723417821796924718352032392885198220665297301778633954324589651385734930020944756387236566387834852572068474593632779873910617824443088197492764617586373140820801522147036723516547101785678979661284465223710683827507210625848651219365197537342886094284553017123755272406148156734333770727547754796263791479058908531653983649293495047466408765019547329901112184912909521591131703139459419585658433162235861596991737880040870866099086564423990842683911807035597620073857544474107057666477289402260615990196656987838298099413233295694042145569444092338935355429246176860802688929911216252363405042077057827308514658175768167215115220639992923784787345649338001129424079929320432726337042502414541816793458802248331348639455584387066094172946979001422203028399537248106623080298735923575218601539476678877272359557329447557628110336819836855272720146358626439364149236864929892220316689056579734443373074228628399808782336915332393851695304348841011477056583305869293185949022411700126576110173757325281760921341559970287294312052884110593392886104162339028737918070021025014209552870525082792098887440891879308402220262773127260098147176047886723962243295862863322527721941794058911428049325559757286580908394667011750784237133350845363869855274859346183265473940976256020043454443325448546421027625554347071245072408667001576730067331176442192261255979107178833502579724467138970682736548714383285341991168802061374542594390371506703975514047015085359577626187175875344646000523631148309556478340297926686909371411052368400259425126724594546160328795419320300137930240748151300518848989863250148102826361768383452585207570949648488103863186250658628699387664509428843133151514324661565010668272288472145162319713987968255784015198351331264126766610351361539259464660400683960690985074335649074000642383549349991271710692504112618248696514932430521765661020730209848335889074790367582633442414816293000286506959521627414026112341928206672897792192506161280438610239413839188313256081062993121660750855616780398508798048112197944985138415155908400792951125981211687765827912897184969914837937171956358103743816443274759796879841554689262854463638943879829321692114593045084714014763827304072747062134700776654847909053712698869691123439612126539364713601732926675300462641797823997631255903884293210085438527374365605199130360262128263667051054045953268317631837646637336836701862186043644797074227717811430367542581891797262804825059109540800849888577771893949105214230734737658062704164020638885031122782142533312454334593109498122101065173034410327162843051082348912332868265825742954126525363975124623039204628589276059477412453799230321721595169399950207276027238530943062363183102365067783661758808926935570576046907672218714723762537759004978192166193012913585559751887232205559891171451175596744341323827926404614664698327585148068023612875732724184749445297795151307568042733699038658245192778410570317988754151361349052402594605693343831901573385152568782418683983113589442072798028183327273938621260668168312691170498552317130834199326928224321876487862272241600046147619292932559855114120005885782955674044945055632323609392269343383810778182721494376239599614034145261510068392895743552933075059657668375661746436797306066503254926051409043793190256455134322516883589988125347695804996035570101396023203102618356809327373242921592855953264091089527040426786518031891103595647663904757660707216474672318260742434689568694916653453213053322072306638290232962779973921479666209542459792913038334267910297127177269816992896863806214989000839128076995187705282993813022853964858410669363974602844652375469419717343924427679625848490995550129578635777695870019528163943929597469412606300547493738271594768435185493158774049706587689474496176397507800950554586496803330210373097630580965295172449422975638192635855933589134153223074153453040978061901477024664223933993714622225990415168897453336886722554941240610001514479467419131087835496453801048789203240361828052269786860704062384958094729147499696316769727137076508997891482676024350835933031625783258736995587043716427344799459109108063562824780876536115555590922037554398954548707915967305212427404194106621486651338759863497579012176184229169626776236926614548280612688127246239746967399634089270179519461163685908058510700521773124902604178199854641154117638950900609092154380931380955753232959909270661278165638271716239215436412142331323291458362961613418471064268797682320904579681423068542637797127540171644699767947029809837745851932858022588089884114587366662236963699168620470692113802569517158420842097106582289829045729261664871561295671082590413966747114711848930211689045539120382828079626886175894619064720990901200253333080761382143222342883526754543580023158050865051483622019095460093733179839337839548940534528369582120423472962512531956697860916756128771657768445996620133802504541731960899752300567053095066574231368909345256408990084626052799434637364849709309539214319701534123335237674955359974287690725482961620930549109968438254360307608078565011981358944723937495346925563218905243315433635263893569003519692340126599856912515672422299728687425260149930592292199451072070178409071047920983793584591146472630075179360351131795583597388907909512729838095488844276471498068351700422868060907690011626406130221035018375793103275636009580252025763085215499867705662474534934505248007762306849320627141606285355751517062018658829640381661486578678754908129310819614111355199157110242901248792466476696058643636760641887386202869513590313092537067191925365841572610990721648425890398087785032005668749826935575757672643877429587992141132543547333075995065765638753318577589854027818658071628343645089783691021893355464787622693721680348089455913557921830704511078729494438083662412057654586609872923978380435348111790636128298695663704028857127102071636711158405610745176997458564749080207497462764807811919754111045004920273081795198585971527105155878685755495358152543651706482882807362654586353655434852930288535157171410900999628802935593678516871309507338494080721823403723881404273515702401562993223048529797766007880688022310082375212691814026055565036769609294451237744086219647325471237531163585422259845484756461357389913770065784087445047422592875758061256683260820984191254922806244975367636411226313167968578981243565008118522120694891171544590860901058040361270851240866254089814987743899754111387124330484403584486259638730304051861501190570546420570585253126772573910064309871334606133762097027607256118327193103500622232636430316668896947261778013128953741999143604400856819658196300049063826010228744483837802058985323264966790593688572368932794899399517516033017032716170346781438803233819548276130108142908063719726516118797567560021960355077070848593741445704926075432360944922877034246204278462221364002147865062113803489841662497556004514023567998394362827702406877441537816453678160821776274053305021349393048044463621075633491447248197671868015476433349071215820399339450441154421715453289080734651889644097563164407078718578463959366334563477883723601686051990467392303746879687061303829319197706983659430135032832228156001876353990445034163715084690688681220958164777115377610572164849435207985653137407007775410337299363595137938279170044322001197140341273317018678650705873515373477444101432362741596301347160282251562094679602439757689702492516146107699354279336705628005487901976625134161085467697870321345913245765113337488843695372832354621542671942202811482919252507734182371768136040163698577589066381210791204227993812175119892101053078747231391290877470406504207397555226148867547496419876208592241339210218646017824521900772581332204639109166636407509674860370830288047065831197373630772260798264040168335687270564228766894123399343794720958590356160792206077668616786820443848781377974462150907902443618829323304134042465714207257575836438413729783486366714867612621591040505883162477686813795539249279398591534724917881077120046092854209246587344229822393445967657163610152959017659074566399102542831818575876267107081476883331986196201698666799396164435575883364319093162297745330025958257491845059364158959485532981488018777738923094754378427814218692819079750203157594134376383539601632704034527189354381592397421913935989904998493428378357062675509610730687153712535424517181056428217544758852109866092528592416678902250349874664145005476028393678496943084858365318779375758389602290829557042053512745827426659576104090804987977823268394895674602609117393024804677552178832026699048839030969863798334745811167089503011953404809593477603196822043365291068035219749858905004545183546907530615839568246224912678818552389111396526102934495469075711246366087672513402370647124930795942906505977428778992468965481147456854569527244702256439397851973648910102667324839226906200714336374297790000500761269523521182585994217786243830585937008150666289095510513779539914480232178199906381850447205439516377803129380029714971897715571967429002559410205182648304016005992270962544650032081817191592800420302147319841487512596958066483104143707031990158162997899965575496755203007635760806388419143231252939580322725862253843447988850546495805561771120813882473912125638602201338683927380479358037803095582775462602374433088978549067555312892468619496998137561017090803415856322186482106786341493237595722761087824658081641301095216784626706357207583371124722547593598739737779982242554153424989290429273826841234853972963357179831502606229766303553513200543426139494685667445707990938461491976174216576294511221332007436004111982375491965844355705593187998693816009734729488781850339402499731180539913281723293050595372993378072543591854940584220853395351439198193485261698702025478001239049588993028907088382405300075124512662243151299705428079870567287356331119406928626405585391081574823902114510603607199492099593785865736836267664640213966339579824463506764454689156951321354599386149470519036022640521445258508792891023794646749137386451406819846487962543554226604735319696631472520922527415623842918118719377139124288280723131111714229775521562221611779587538172699223165630390097188630317351843208322842773760991190107600421154464569633464308990073465332731916404434143495782459047421041504406762479509500860481499313194028180335409632493142667963515756930512080913985813419104717270506286378349962762147899813454230748385467064332776197949222288239633143246350671340835193161964497265679797695919229834508384698066457715211316456402123361772208093466442238718872147852733607927887706137627185726981632903530467324644405089600673594528245479575105047960898738694439713010682038539168482831502307474023446920642845969845535447707975898452227239393648759236544758329664009098835771037670267469258098856763499872215406829556221584567571401587756455482169364280310636536481753425454174262602635476082162481028445365109647332010404755003978180490956408419028510416398043802438211661639639474723890299615972065758297867477396453546039225827033481212024531716513620380370363708034199367229887627552152064703012007219525765949254617785444297077112401243071790031983229136922721006295322051093315918061143412474016725161406647261808133822556596263305046447770550777497403738934521251482831695399706122857221475171979712897431989787700878745197544538661215900233878505097610148924413904909979069799946828902322557642946025595049187995251693871001436839315168069767458343756567822109635448084259701754309724996320077933045349188808756391182465827541220321119485309086511286641257538212549513002005627383355047676180011656570215486111510239867959853353682376745984279923420637149955080121715382522127419748550809404827548139483718773521762487231305294831200889499376951916552952240996059608011941464577034640404500848192411539650718549975586887215547178387410981781502149538163376695794441534436663566962841668262183052307929470456943819217587472241266945777113183329530144226919710078564916054131182283467795736600726189515966611175383745318021230849431425815424265194626131510792388212721466242540327845341973187963748710623581592095486861587478333450692300277529200495806811111276900838214061331221880413522980985456300412581787694730377046034218693179778850770590403644307726417117736154459587844825769618659463746350227982313772437642681382841342910992933482084495670855211651817773518556703898382557792977096031666106826517942650093402174482940604021216967356565842469523542479321290338450810734815935381066882007966984449315201486720109393056831653972934322094266703475367267931445682537263016429463342285604287786905435143962962839705148250419086367124401398908687739969160654736462562664798396138176173011187883654149080686106481783454198003705950799634849458865594079111916065583473306473862010584672990605704542328217851869117503732076228774092793213142682281898476564232908325359256726796723781548283952300910360044614654574214287746597659891868265628394819472159602596925173899018692454474189074646034184922885330633027578582694259410387447490856896560168271467441323408755451933171387823194236230494650866605393335004845753667150080733867473529212889630490378267788419503995797636266718421100484918863161907957582795175371192928235269491966375175342392048979051649422334000670238936433430040237415355291035030329412127862739115588190240259888257922710388174736709730345387026476732472424233777505250552959237472133532599034562598732812514954329778303070683200516212529796721226740786052683328628336080420855795374210245270217501163316351356007552648771998176470403795883074832823289837105816085935937965132999904119377462739916511999345824426112714223189717955522273275657692924684235151371133624113783830991509966362796560148296637236275170366875749208781129562445319816790340262419283279911410887317877301419931450652585874296640642338932519917215659819070257519157267058565770342170936713383238118055197482511079869072332367090106747269122398421036640823129122537478086036812092777768936747516599761720492625209635813568268760686911404737311560998954333850603723105769299723375433284883684147434236146311365168081660925706693146322847781014593025776049332340710031815814661381507636854511366342640688713870048792792381094949518176364493125376765167713676771045286026700441887176353558342422650109212778540039130277035451542080178489468911952767021357671327606407939666507364170558697479532445767791013391910979344832881851722549549549046274785190675924377128317717659795203468615989048655385419619784058785488609083170883092967221932051270327776502167547357433327950048126512353908774625145902705638228615473150505494782485817712719301609615932709357679364624372868423959982937481885895228288262846244578059960884021063965080781530293627284126624620378247518727631412286272424033658647576662409813918290306098502321344505279195134734342329441357030503393210365686184377405273034146457791149608545165793448091964989423605059418802255512251233179911680704420970518154522878628671245155371084833835174344475190364347215435624527447345664045807249510595923284303761078785790978200735957729231230208377864393610568783369787686248463432479692885836573764930425768569165845276908797517998956097084350044164019909579668449160071987445061630543086633431698177962674405514226206760424093750512888676384437090680019905548725970705142945066439148063048776704830579327075796821177751679682484588796091783298093093834318974854636832561779925360742499441220797878655170396190824838099519578020046663182515701361438671467695096059626436243803284223279858793524685583477036249702251674140683314159859590668688850066436564026690841617607091303290366721040779194411320825352047690906823186940306717782176367710030577767556776566296262446025228507553620950160246875854280641890975611922999162885332732089918105267373850139977011049867680278204726111115462688727376273798452218470956325191207289847596082474959981574903794364959519395600102669342348616714578636578698721887968939028474465941216984809575243054678761892797635688956406433403871382376941602842697978983947835239814498900921763672519763064611687754978810294772341307487408996033973092280489141325863146317705801921045150460137040490240827303927785430066704941904473313844705481052577464693799100110823782182752031794234525749860983950165503772167874854732872461386618357029603298987814464602738952625224338156277762731536333812413710621950003423692610970931563303341302888616026501716903046008567893039604156691343940902423961049311296044740146745735433065948344380063506982780050880253522456759308330143397485795038059103219161605213308626236036228894165460896310049352478213277500543125754425727948633333828120034257054803556674785036633640704850910339422232368431712439840177951133333518584064119940302645566280784980991869842908758621565871156523007999278745478979031781154771509885131507147721488402920854570949362144041036197069485912871149598983629352808441784886248776332480841489736048115980515129117243552835972593858966022015416061126420705730662385136398005747503553135825442247364675312543920508098914683757697065479888804602883806023624615760686268180706752001394111473687704378685356813715967260577911909939805021951584284965337531796106961993360005945492044131860622983521398431627866418362057049319275370052762634664548885004008864594972738949860312388551378014534348470450881637111923246386293537920040874477133266733368680904548724147403947777980798615648430381475911014200444422949076059853579245630245855138648452859113419913624366775001585792500073983076994228135610091801459259033665198468855234616076195707531426814422356346124169139566364947419064321489873539555636181079842397819123013823770659758450876440450117563591741696204332927707404824875537497791068610725695468737520775643025039564261444123848264380259067338917948059080358305566534303993022255342411783245747504533879738836104370753412890849921248619460881628438060547235391302087992996073212566062346809985592400146221976967031490478845942513809466426862806880213131160131217611058161623550840398575003271983882599923592393207170682945889267004201323278025093285159027843088102551035689031133910804843796886562426722881765602126676090032482338106466302504292935257884042164055736101417398185708129315931223002883858925101853935071076182370224362963460243582012536734032940043639415526265441560912236861307035268134432958859143764626940372763187414308891136580638182950289303237910599077003458601537864051294943113927410856184564953757833908046947298198114612326928134592302764782210290988817316729178724083311074416818425276481124130918443538546336283022765093889785002351976842044494533251264525955620877962514213091498168642541796125760945309892653315936842996452520497538107586713054886620381518995228207988015216546336066758481107498707633840402410889736286766316715390401366812340563448676754366187880298630421304233928355302176273775572239590235234315279666618513022492943946714485260463864241434919427651578228534669920872072984719725109382054382831151381566086052192664851892994113035929102623874066414110114272197800224905691560002311746344987049895763323366889136638233736101267505982511294478772511574727593042601056923379134602152232317835300898517660377607553466701597029009190429696668412544949634538184905771042729253454553836256100413686503114842446325453607495582210841762733751578010588349211424020262955431909977654426526597787234164055019781453459167481260790010396791573130279765164997790589405283245060160546839162314909956861086077835641769471780758816717864190551320370782235531658639978386254062595949913963583876730421530448692224091424234867057415624217914534605656964807422480820119923033500444123670651165435069457527777710534990011277479778588523169057229290434083941613630758590203965324931149999340932821551749592682925265156251409990972884355892491239554402036576417729429483509882519682219412681323515531882787864680460410347719026828330127900918119580923409897380817515220626114883695149516372914640504065236733814592498826996330796180216208239209655201610081245207514478193481967964083491805634505883444756261405097839542351963532644113472883007748971085207137910513598293066262116969250004310265156796474688737931699660608964417493978461477664019776444198492982941168184803729330290171507763234252123012716753909770817287471809134618939582996401265998300679813906345852766306377897306752898506993871712613504312962587316970303780047405005093377818401456211139178622073531338848905351280524954686035428695966243555599228907597175944332998818182545369520181121101398032054620296939540609744199582622878309731554186737805043117085460010329138201242672451974295616633829499620643189347887112597210470773034374394292299079017594799000841814712011198737399022119761142172601983596978151882650024706159751563662814307412587185293739484089789350216257692710392428235859627307078306040860748363881565195623947045330432431600763190628202114973877067447416456018598073720827055323814004240756474524163859070732525714929794327557231428487017311018069407936740670181448024556835632020344916272376724034638127963729830841465042542801764570236570942961304008084487829978233069005627005532618057342982976186766357199863363230686435536227556324545851633049458647468119201713873780787104147432555087795796760842931396597761194389976744342320421512951613823357713789824597473072468223259642252451728352657114653815720750305628265516018628974845568811703346993470086045404588448502091709625816700094583987297965640757760363139125149307871472160526922151234424734043851988405034521755801811518043270786681619938516342241548620629693637083338012098247743103619040268303258509484193916456755943128892077663019559773339071053864487527167381543751405689426359933875070167706132838300729763963504561298345362492743612411555039631337137577555276426629238956488981113547036120538237857846250765653483770979507377371096187093742391840638276050135298802248095469615385995128590241291946500325058234007483589666278208760153357963825616206076864785285179915272879680216981989410482518598575060957430472402864134351505131488387437887240450899742730169342920140424005542780265353082751961862029969899224290109495520321899680993309805302416769235907372556399365041428672179321385229578039763308964323875571188247805211342884219322884654496972670162927697966360218335084308783910868130666202134704446955665469186042115820914095477524845837661675506930016904290017502696227088977017299990226783528611500507098606406726631889045004251179783694347821433538296429209418760218661133220698814122157025534833208020707376284663183822600488723172392579723686772929741823037746062216702954739020559554383870866336674479877274759550902025972223037087331468038069793669043525782055829036249631849251107386659305006803497556392411691274767123172310090218275939515967795603947616078491876856626252400829151692778846169729627852248094449345795623174870058783245448797629687074541283527042009061675651308393321132084684380276041990334246267707997108909504049306425080366739796456599757507534919979587873963874836045959478822422138614277498360048209819451430362696631761044339084416217052781560840010802411104912893033076454357114989482162693772946639488526887997070649746726776230414269951080836579406967862653535988243558579591123374026089753062544225705926357338687092898053199208380396397763167528469366938797284036459609095715783053827246026441944546922756718453701689820686876723570478248781551178065697994029686470884678688582148871368609831612623641191519504182826439341363060326569154246730626914650742710197682643550810795085420614168488232531279696028989659492901442803309324879698071997032119838209568493171330661809476140811275171952820855719204147843840720130437509905447788236870121924398976845427225805166408466358454922430563975360643405309231311552116723009412230539703903759774237558747157667994268551613442346168004327202274194998814399932255788706003768664359063489931672628813026645880592751003792841012943703932571310280521021957083295205453001013435649559987219778329002262238752409732187033395820922181345058305056443513342742885300730165365526060176305955642267655163385521651468872892975977225621288437725551470161195631277651655880189983803724270035744621337243615228304335085620452898845390610387370714859371823437148722862067854885687212637616847611347473040939050926232413745827259275333663501175366487425724065550650825690495271797059701951280267537818425510904747275994263721614993828342707046237895093578215107266855236075636244696703320912650350529235915977390681454374810988570859649068724893794919074109795672259131426473124687611534619942267760349464881443804736276975872346103071059838480537215529404025296064602380749427897209387565691780001075256556722904060035426649610791708734955842938677653657052071864016438012617081507989512613176871249861439647567631139067992549712694044342842856821949922444614570876606954178173478385443427728688004560014126149687452169425854836216459615843549600168955197207629454693221663993308135126501927656497950088820858275374042082007385521664022024383192854092186840536075397645732794980666971864025982761377308871077430970837271366989855125416719154173432453348817592547699648714605641328674301025319632541673696196575196073531213783869762749451096601692894557379641051584070901089041849436647399369476011907564937611219825975978918647202200179637759153251424500738495400816152076340951769636558370057526967457347784052745231396701017316802598552824399323759620594566171215823895013514016970330695458319376302242200688915695476899755752092044326436373050472062349608038418194529345713271555600274108386324647845914111074952219132011844275664990308537965998976399485452739992910758493213103242746209227827273800461205643566504567159727538046174600668163424145239279692205438966324766394979918745064476250843646394491609808253989870379646692473020846542430544054676839615442350099927393912097042675635844835796272632303117546621586086036882674425232614095736281854650713741487534547953164541084327774397932239458373304068770949699521194839734789043717491127686608296249839670734414067312177749106111368586347176219012843965887105848771663379554421197160197322057945463483182907703025077722982510995537301495887100233094947226323037587090008122626740636105021636843996599711375146797612900640143203289145544709725691878579391853798476409574129507518092506166981990064512486606764058416932841036090421306751668990749977541183655342870983768032614685800745246054929486195487364231409465352555668020419507652608438869842595081800453234438420654101175007016782647839578396106111470950501503468498345917060940091321960935359622693422218577421551019232519035940301516837745033915541477055762977810267347524873971818591907077988108929846942705478984956926088686937954279385114271864691606590554427161296877172497633693723221320876707718857956106810683462899252324793439560364720214027688497856705399727782797022343235632333152843972019832749172755791803612862755010711353583266152130080057639270454376461573578003621425760450756230349758845644235398032363249336861328932337025136986664613310997038895633608740077686203582409439084810335358587753999685802831359059927724301175504446198518108200582670835719940819185681158427197335208707963378310163648699472011982873388311650484520871062909075761545089993273191929813719971544975057680646070138138130663898321410422687991207119631430309434283464219952544280847164476566292787595729930559741171413981745583437428833455725747430932221434715036205119340662315133803817815714828351524835742345602003838352539435530919375047840587829819303908645859741403837257348766856529982769511923929781477843519655393379898523387175783320478292046221792248105296633601705225955574435190650586534802827190934761213182253560926957213269362780184625733387045763995328018046133438069883924319171955607027194712329563385506109296257208972040512875401856022265150629494804744178824758279037566057217776430739341859887946846147119650111362770309672371960111115894936263079302132796563521256317369670580549203222843154532533635565649263416947056300785123381483057812706341739820597423345258158806491234940355756564433640032031757643986683786915485309439680988106952747903144237844186074898996095118549256858559276848893807978563017680633634235709805364787552678634874801454862949451133847204069595009973354925940571820466615680601710414902347600850032889973994158294821014333261366418046200186367335739192079182169219786708246365191580087024052769250822139315819036751941054512772595270665379174497064982910286723312589308222230543763572136575733252002170816203668454003886136557892149986644271830541556585451193472708125350348333538673177695688980174512507770647671910309556359211824815765299678874297651673273407661021191587573424875891837806032893715812648027184684722629238284848217573323628159624134890577941153041955538003525589961810982890884585752764411948241179380503647660100488517903607165621649591126966073075952407678456901223512582279122196841615383664325847305432497093088193141089941876028721779191798559479801345731115425611678821688247489302610831989103783045006910407219683458597020810231602607412166608020885604332025678161842254440679566307757755147301304596927964825669081586656015606692411180113426709649480949945494521102291678920657515795304733228865272151757855691065415137090014278259312418176202780791666891327236032701976569035785620420917886722758320157334872475185153196942503031982034422097268874406967596356098518942665160290263245173054288218034705233571648372113292021824681431154175100061853838189455353460863809957616674838660336333107507900468940353916507443794641877653757245674675475859255366840177270788076431034734422454801731662376969358229614443894983741544593738646996147081918818461499137382059932687831940947750808908130575959221809343568088161032716577944421715705426700193783310919073084847230432416167958977462980975212435111795488577280492096718145048832511948172047934109233691058041627114624384095556455853843099213063909521359517439881412512553884996250526806049295857131813040886730919003951058829433943465660338789338608192660438154769756488494941529985939084627119165298288946861784845604843041097051714252955510169176500733237190659187707137270169537411422155718194469294916960724930692560888073747604977786183401035119137996048813096443458301861087624081649580713697498700127922848737559433039522457108687638435831908067622924001504044539044467132443666364236197427597503815909148806124523700103861685712563287257399173829649626005704758827999610267889930430230047353785916379506079265370261786781619825558198789424825449453888515873606208150893445020238335289586900680934233247235218619277240906435407084325325645371148676992516417442904906979749183126257588998135834059773217848312452832966442484161702376028538483978479920248234448571419513364082276482496284503719208724212720572709894169803803162936574094839998160901517254828146201938138755800884320328112882565347443502414099815058300497104060968677621874091173939492435696525913603067352182793313976151641081518339325086844577085052831468996906891824509009841505298232984986999396205188735525237514231409946183465244254140346952042349884814042538221135444516507927817738210579429800124237854696443013179459606030416338337515817589597459383530378854459851454585465546034258357584003230462590855031155011086293446530920932287530298995690736761525519705848018420246018190968419893584955587458450010133549609996152670287170401262644576560080490170953146719195750003855201411695811706398887740921233078466328461880953871977811587339314187489423356425388277377008627412039161435094071875801279938953624939010791332733101471442807575945862472813428488576123099818890945815450549048372160581543062019172216458543962337900912657861731841686117196328130486719245893192717525173935242854561977410870313928696671158815259770090324067972721721211797041789169776156230106102072245804556466692713439174581719481251258435255181897409030342105044228667524007253488218131791933435555377566749370340846015831472278971352270636075260906702045821663477312358282337248056168056591475933577681657502222146117487589521884458153899531321632651086261032708431729341771227636987521324827678435196707347406160034557253209085944737439208945038229523940690977632348220536045343597174241320058821324451712886588978138723201728904958855990899232818725047592496193366632156295114559897732105574824348579178957527574047999685208952178917268564793606019673771543481592145561277661784611008893016618268508268735521104210619377105553434146081414478791436759089670377899976683481541495091551395319309619512276728540652199943713201939689418490408232001999423784719348696616321227545651711210198467018190663647498831404687598337514435875644043163579531644010894587258218907119479367934688244820963681348743932170836704080525789988968854081874610297096890966837945146186489417103300230924399117486885198669988505440882031062909975445312088773619991499177478469504731789211357403739287808257866426315279182802076773316365628130707653890871791268610950796443385663991018801242265432268625188176373095003519264123149501146056665672020622560595019179840700953085382297309029176735816157899560604226906074963023670549082422592285969768227892740450784547182354867829706228716627710290143274011748559088333970821770731581147690251622861536939623576029691230894596911529100357091453807556861723985439142613589408303772626793995478441409828077904969994826796986315089974724003843530456938457670690521104330029069884803344568516785748967978841844007229228907161866337080112155126011165062613600321790759195625767759914777464008159476477029576209419209227501800587371424301854742349208201286279383287151719079234526725210244821015380009490562447778704062081181815106460144784763450791814605781734940203842992996235329114521595066282533952036644226808507017660189637233924411516130151889233515439873919192510482993978702904214864725624264191118121151142396403130013397016298881650910711769089394688270240471356804207749108153996513803614171436597442504861762272945434372675921699918109595748699147609538600287482553139303311023734482441927487809981816880201822891168061525298799855923191207881903280529780806477861131106133546444441320965621101033089158164865644982256899001982747848433496031275548939402658280023952399977297269970902484917253860447907283748435873998332211410664560274201478418428251443399578672182674187022058335174861209335769798391570154519293990920458310707904569612027524663820261988180780634014455215809259752719646527904795291547446046387847956822366496196529099145163277974766204849698120936114362814667232709181031384747999936357931308347334195155715630733036108137156793134383818507462584744717615296267370957305236561546851660914010571299061520141575090694628429365162189175633762547000128275299156290643128509737422712932164513854290281450518993334390406234347068321226052934753688856075097675294174007607120726814523079565752669565331583152325612218987394720197215964950540914918273271935424797892137010482984049288987149464869644209892862030447488692227343281370306738346103879005533808955026889626380875710377677755400009208724924731460679121235430409595283553348969066796021739028190186561562738496952444086545189950828616167801388860381504280072126441755745692923782572150962958561564092899781869216492932135799418626611274656160660861145200897351268093862448552412784967318469800651207563317413318840875137117206297576096972128840841805229547342042447356619002068981121521738707888937684698683033099560321264109253499989907580038680423893351609368650898381613007086929900114646380631548296220567187492800680466623693357504004113508371882064135351289808290161975582578990481504307686830093637230174966115955161194464063950364213141753074362825549386380744683614836051267426951465645622031270080833509714060024117108385912471631898425734034392835430821219353020409266578853300362661241477645877778860817515195455330504148031281631527336950825828126365195416283353370759829462735222244435106857119535897519332142861634859945401054294735009729436394989521994198827417907565962448493795284742244645964361977958596103769857652984545395189506198635025951157843950791252734551059307833684414165916520525801685561155571201961097830449084076476480000710382706366731000166050287303045662911189140833209060476389347979004040666977507243515071227229949799318219822847386639696459532289860667241452065013785347497537645985304140693487301245668094868789892072684183875938608042980214809013599592908931124333550112851123689752235714818506732044304198024012392622667564821410692100813429838889699769607041437721441480453406060648245899934037745281362906089545039503069760239429193447292291534757083463272915128980004850566095342769023516689988850066475479778727617447363585770018827993208799034128822219497029809151372270004072714095322893068339415439011952759376504279256865205835054225701223186129539198083192235550003275096277185244155184181031951372336871158374284860971303536684577457274292015206817711326293869933078028939072462362816570812180442827013348103888664828003708326316077804744461945122083063546310698767254270506320207780772669367258705218779646276248806364064123610958975050443131180434106640032988638337129854801349639150781245469528648208402233140307964078232238690457649900177363428618124622615437155941942069142202508566653476917777364558586133522489412881113701209439314560319092496189835368119506344744993258468902181789386181497042792877021874674750210864111819563438305207104466973043747951224302421741886771490242409591120609653233177720027612726974338937794150752857265653585067119301945726386709947570283193463985776083211674074506145049670206164686218808939951182671803270715310021637847550185527706179582343656360231419015556987616767805375919528910766724327152396978718706398313121499687624166930176316339388809922175104263494573676521589261938081891543576378456455646780330567416112898551066899687145318899940723782981592990718384124559898926354883566584021925915064291849250499648443308869247749973148455914820366936944952396856041609413994168380083503433749658698035594396795333332220563404795654586750602828733763132717121247700030067160827060745521065629802600614522447408106571536970026590265498894726349160648562382012188772042955419713113575286168289622168178257923514642839520608299489799526652949499044972388370011354806636351320820311691518632918378382575809004459691080474946727877089668663261102717794561050112752689336608391785729265084512755224712816621327111766082905063554340299404364895284472290727258042869748628855195826594984524911201098520603669733582866544941877776910640283613916116801926989986162759753787528738510163746961959390691027952515618817557756603007119624890805527427077200002590446113579368325068691731602640544308234740725352086964117127358538970327572845386316568352433963599346941703557128132893664234723235078945338002293453481002992508493737156788156834852258628247914750400789445691882593782464993869071886255531865853649210951001721802399648808121694749535052881393616633265845935947662495004186319650958358508178535305171101191027128948885446830458044212501189673704346567053926100844585267550769700184396391826546650058721488125509323146266265546923645764251171359162816743563884265636598651255032396546307471525831474313469368345983093993685481082282676709590587072299317302672988828577324185815788383425857991639358705909306254033547873326294814111912085971424603646974026816564372210246448094921803761003545356667366780480526752941817700075230496496163562520916690067829327981745136731747638662147930305952577123996973331687549553460304431628255571348539153703786497149321219044530102420511003480302085481401945873719029032966532550874340797362419355518499617777530529856514716796500996457218816589792502907721660894084636604613815352257839403551162925594824771287208452435923024007992872951686723890337535375809439234144622049061674320042842027995281972685798733038012661659139789589651158250825183004173712860796250505306994686977876124679675748235287718956348240738535033177155592203395916463813179371924388300066982662453100390143325179764878230268277502023437224177715843950038485648662385521155479910726417280477303547216002193341337904873604156109782680029591421083533408851047951820489071747007893069267263461304885495912924829557317431267869135815017689249032263584434298490423774449491060671808624621097196327362130507188282244815872943832355969339674744995366196896893052486663313897007498311082087902241811594200799823975174731424307217780423706929117080527431765913046411956836392855703500177169375170391682812970735679128312682113754094547594006366435915690208508877954047308926404333482398679662623181323480371490239683852153888095180127705222706994860789322980343998293646514608656041765619396934645225866411126832134106903617332621780843267334450477404724260731877605894470162434037479475421464563142117531623012147835517013501614679710318339334573743445856772932403572942185945068935654887282488431842403213254364501084189912666982656411533060160566347311404391649216346064357383426337789990874025372432376263644529866776653734964447755135607488935507733061341778119926952721976486258058358473725867496626374943908200596455874210907767437769613594245416487828516613023033650444533235835882280820506092186832940283979686983661568774286821199955300965381211578430651512076345889381810476331717685037897012874975713938779982284465115626820101676918859788528962011617852293406475236369506378021170456785028075194139570278157266351446166907102266984732028150769584550493847042206335896741576368419255539331874204286427800242295540801328551177199452049678835696707660856842634574850137006747899847162188672796338215184240550015714628433142295251110306890067792992527588261253014841197182431912525808544638852067589995266966936786659561722258221717375695097502842818235091013566191631418207349356467202334944218543130922670428554809615538054974064709017296397307279992277425661865349982536979526956902366447240586510954517546230537915070811829208248700057552347421620625825972840777079540538134459557652079198582401879683999122824449369953259466443250442257523316351274585611848226297556213526440644250443916141752256343028427318274928245430330293109350850201848083565410754426346898736891238764207345689113930600810321911607314267360184386230184524630548965400664343810551414596391137633776565908802701694325184824390133600502361102247252819242478725413503976175699455288699738380861732777969715815359368716285781508528479024600066821386415260875538647803299253532597110526427100733209325159285344111056387175097654941201861952120146101682397815449947947903174826490983975164918787817024818129457151889269603641907890014082755252545655617629893015956775097391377264194370542758064700820085497839050736361865447644148987644325241062315473638092052712470409747815309266203385631946339464451525665642450656424827235764000971355354501274856339757528165031585423760021122773790188657065515479380355188428027952314580223469421893754856080130773602601138036603136911287369911741169491936285068273161072233032230849350382288801913172055347103345603735306601879162443261070032097907429350851210987924515935767801516485640626455103037568147742175715043504727246321251394560212550542068616284810043517991599871459601562243735212380538392047246315859983848709861925269016329173577914817602640499624175967115738282388897439652116695494197707671010121640281181351542130675296012534192159589932605804522157429952823480397580003351176702601326696887708254753871739521116307631368766612100577128360083461214956657064679325556762938264080669494956619913245117112719799462933291687335620390686416667525786081611898694405041048903300403799996360597538970846816649397133246010971016033969340585649230848749141531048106097979720988196603212553623259745744375366416199585902844718180332177584375464650052459420569640583319209264584330466436827944752985360740700307020619032147185173939316126303246981394027674529903022330410473556513219326045783333231340233037664253128773238559312471614285713687871966179886574106608010151668961874248688508443414577628223771785705270579264625079209247947543585171411316650689901487510829896754410869678216105673992531917460107383651718657783159502164704933262631779169084200048809712633778879376565520032759046926114486251829252842142142669522511202850756617038952777310761385037358806044924500373284841481468407984343917031505884449358435324360567789657375554217965088431729548104194218739094381124738449456295582485133135776820713824603892571686777489530219381410280792933392531821049100343535129211267583086893752197232040999078552248027168223962277068974297598501242735269619487045036286692431880055117323320408886061800292342624437061588144413062040430671608514233789375918432264779438866652782616251891824821561956268110265535691516830964617927708163441463459305305901998633257808545031351274129384195487552447520092097189572470221167722254115366706739345916241186467153594738269257061660897047401680001795724954104836591075460693096985039440478085935876378658199223212253060467448980333961549522246426728968395671079684312852586270186244037793549185152341401785639707574951994525218715227852355194555229387765601994800082745909407291071315200086221248291746514769227055805854857223150270819373126730369026054839864505346635658722085284067629741366612253391827843840686074818175612815116332517564145921810790313063741858095669273543098889737855627975670342203795690608651897893158972160850727396287130134162067607807711543748603070087919503918779811940256770991669719748672944807084509116936200926211389158396441697962311963447141469850963545192869717673203800804786836507707904411300254060998608645012184373379420631905653865610312311551075346262136202025000085066456943361976849648300170774974921289318831927443957194180764657680360097947640778000230433845241863467743125949803731434603170595929067729808658258867917550134762188939453444954987060899993541334342769961043744997369986155157905306450750816835877011512023017892934860777858430268608218938689353647491295782196944658548736729918912449081899161924359152530074198685029059242780870839614021763009146210000703555067316643844303794509113860865438541231698979483387578686390254486926200425523530079934971856358299631495254570979923179963432109799324347402635280249761382932254716985183042278532924641086719776880518040999850300900069663857655480952559544573753123859073980994183554156002534375979826343469403175272671198620620343929773366765922835256362991196013796716618695431325826535346851828450365527732919165069725707646952345948525223959272581616738613617946341218764021313327633454108803358310229477728234018101054137799966279323285380598360972682285276443718461627273966828934445748142321102600545144808327555172000694896115103500017238787557609268503433964520269170734092360359150367584038046630549828705553028465209112258621085660712372324110578466172331975192921721876808606141994930910305458298859593042139996825230489743778326750496241303615739473441761067465508892730779525739866344386761469060680454896387448730201803816882666272640227100123432148174181817528992932776812731827146244366047346907835445670052346269885522362572997426032101170941143865402452653582108532637939976462151609225901153970437500658880974272630832334457568621303922956020475997701392630370487722508725889713345639611648030184912757362179660364440942662995151727835741695955450295550193612803329498923810797597091223156007077313350259683600260526404994164047389168085503605836524135129768877599016810513535516501506910124975097619970441597335910818239886160523534936901878571614185022565907021691257195845566791807039355889087468347948067289471619363442047386814698393354338047506913082857296743305504029874496041349724518340660928944890772010766681964754307963305018185258129478281074452482623762465349044993702069252667516835173467477786038862107950934194762507890855631006293309045615443914515859377014722415808602636635641474058993573562850805430283409698826631166702232475117819903002226321523063133574792873065724744345345215679886097358061306698726905107193760667676204425256503077870771680092510985732641282136327282508280972703557165952345450506610109499971376840384768242991173414920070044568584529652028353917349295132126114491933198946607164889326711693028835261700021314403248113863285038537792737889693032580036564063797807764585118929837797095278993054635249949923635375571676323272905919739618551869348205083211695999796509329202240592127352348594222709098362135296529838344031852179267109047685926759346434774210969626879441709274117255064151953972342517132512594449400333367845101984504100536089886195486246498639186247489712380877306383880681900636087701475425569242978497062580080480726520801722757474253945415076999445502678059461281833886585212847370478732939883669297835192956780352688995055582279368598032996112488785371549236634078532733597353730821063075546626734957683475336808966338530856050752267593523871191714859125224830985823382613976167157871476769428274595533038278039774908246340028625586374598242315001339491468512685861846945951626867304655114032136044348855448318500733228591365253289359593196667381254893929035253823828787577852669416574704079997543044229858484066478294284154500345646961099517793112326847834849976573855040789521879958024997531849275071354854436793561043478463622422811696969571641631387719689519573624867408259455634716365715460213137680933002522406899690459484480801181148109597445672949614596596053946409804160739373802028924946908448496914995104693050317026587959664566150282371195691768360474800269354744981083567390696776029524315457313650001602420028888069493407701055507530062005564790164560291868166527867294609423987120917946269429555301959558233243190370498994857614376821779225930456240167884815630123369310203626131015983443647395002450126814948919272331776707341053017412651809965502298977757624806559806781344587787535556262573983972677297015039170625104644635404554476116185258630414056296980636300605195525577779122909315417875934388226509539154403943607592071194683511364660257894864610575399484116972123753019230206871119292429707140749305948747639573442665861284928132531192289084704334835063357160448772130779689270464776178381065920476259930437049909873598452853678708649273396222495407833729347508441473301606217136016757379210793200309216531075358196642783222131181697949282791690598862050401750655130588813855265592624544652988464524017898679351080563936029937062387737216962208601713291356730702789697326308128829925821078437480867463172027633144512234638183478714635281501336571045893301958125227906608712174958047233263176287267766219576961548640101835589985742020035749627627504852600673216181791747480459394393617030512380623717534182358492964786603351325221479896960416299728080492839205641768116683018674428188465624484654970730721388871145286643875636858536461643354891632431315664831558579185277368184688158184036277827055104409424114951642981811939473754377242714929104467618604421549588078871034346253765412004816494599347975016807569243579101892400430707043868578269329080264484246714970750902694903058407419599410762559222777188600779529280146573960099805517625535097238075914755177331422517317623152587750917239879310106816133208773840941909586604689288665360679762430261867032287689537641935118448995979582856265905784885210963315744528270656427280047899576914017257097982738183643557024044032835873858587995281469823525361093443295927328853332561309378487202844590239736146697633821837382034116829869207055559044073191184979592539480471953190404081810281187322639497667117772541535384318893366515368161803114408399574200679593723255267489356711649182717079413907769579540310730650387232191490620636843077881802295796541508371779961873224779896694370316989419161694260792681424662087095460772012274220416070433369020512501597630571408753146973981039574699818934024610913988431660429683860293933087990051691587950209611452367281790187458050574475617091263732283475507586150230552859215787215559413953943105503588735709519184158976149035290269802256262234629988940491904448977541863125920171623977524379027239223502373301763544161688538198869176740922386772438474748969671799755746801570665723679246247542804980600234990711172478354134478085185897048789489525793153957286385599124403660838289844396754438209354976952986241428982987593102875110854896264250994970579057795292717874041162602334923181382409118992958291290021920029948903161504169824965241568950283386218790600066023547788197084682633849206151603375299189366912089817574969213948457720666753597234401211185076145472871292197329283241123572089176223377120097712747654557935850578702281786748553499540199231298292506708847058581463129631729726886949107792976356095253875133930533983176356417493218374666544414992756202479926126423088983824936817258004148062431416096054946136182410334618606337546766317787652455551987609591789018716436126191121266865710107259950431409283064087770032628688025626428190157277957995677756077167281845856275832996450291121213098000042733676944517629526506576405755965445569800787246257401511487769789968942510345824080297037744058063303838113032943937904798416420198441129812919705071927672587752455429547466659716947481077015315023257161264564702538493227412253740414417638392745369443036869037885204899708846182988887934643850317492924199506077441911101349488014034289224296629612245924662563333825973541304541611227991495140827901559366173990619441200763518019977033418338007741119650808628047608094097426293085966315699881827252012155802787249307418422646492608057281610369308586544611156223046994898394248654949772815932018882612233253117408605388739197570089238012264301478193416530079267809825287978761764181203231165437248331872076367864899362090175560416748985249003922466838190036176056532162947429110321004243636366316190303017016618403385566219261932050917193453062978913433339697332213521206778768928674916151410669576046123234663780434699987506963375764230297820142993896803690765979880024494095671860950142889985826885458336646179309355364577354776121355708174452588455024567875820771819575143215531871288705337294209280937422493249180885951579142333955781688886207818166064773250267897036223597770849074027548229150937124419028471300516462591544011901004110740828190766732371512235777353753394006117440420935014860028275448553008828320065571904216530467325993572597403228586493808987074957564409212111445040896285877059031979076991640881945637127227360151946768260594151314914759660915150331052222015308291916830326915016745231630520702529443081254296528715030159601856502829115596279881780776031829678446609591390987553118836129568123915707176892492370348871682759090196012641355623278663241402004596602691351413995593348130238839630151047523949862166380994954378958114796276650868288832942017074210841855417658535733058898031109353177483475293571737643415136112534524072952971313050607530520193060711088712262151410131498230943330214526654619732336083222023502570384757542250063327498617625553440036968817283362222198590898721785258889449893310704174751339271223080985874367217137379311698327967912833625688665685693865612048512465296669783882315538792618383827953957317454720123793971059583660274104555146396134713725892200807827910811461392238705718289622307798738646579013526318436759822143304057487900985266878445141750143252806305970647232740599995083132480198500845253381694598444897141519446859121010585148011263804665238778658331047049517470460543068236702891111949099538112528525545682114258366491222468066208337982269980125542592299582829467332758372941625859298925596844096665898955623140065344115843726918910993398149953757973962255851684749653751856773538154116356831443620928024598094520373978904835726842214439540697568733163320366920285700929402114047954092768601420376508190134446874812573007506859155998570340879858156654205561884840920098168478175974443968005166293836210304042410177492419931522401358938812639859979086937664825196365142583339842807374702521602374034461760923948426473726929254463926587329437961565186972020281876378875932290705360181042680225121192521910012112657908601100281113474136111932323546236080583551730355196836196621617134575663980073957074599018358287773838927459964882484422696600088097565494286371492756043456380171887039762448526038086735155123000938137584927499480548042584265475237144410651171666029688328286399108054269905205456912210672532644767165934151827380868376244444749137720314092646552168508160827087322598684591068598966769662872184153484382738429098387699422667988749720450169489171337495394450986600561378136936092391737795930419094050854136806325335384002065402439209616954886691491088306639632479969917638337495880647620292307727622874417581151477507522813706978458259257348981085342225040776946645654602318228578712764445075011471368117012910310331801173512588835439099800717868968103969321615673927332657585468231871115605221826344521892391426405137129540481027043560986201456481618577324875814657834010421162822706801622563890533363651443919913123399051122842416135019923176504593934519122379146081487965399459571020619813124395314571585147058734243524641948137417666371269475063328699736963125644405539211722961301667514822769571788724019879550786172317927009344516125458047331906395271688619924567636344666173341225829144338383868086207996959950409325007451462882008730338166500711947843558361283644932688992709255240257412253713518709411586045814269473443841688054247985668680254726791153360141733992358277294701892500839928435667815677566307607145117260712460586966024327774203098908461176296705122741967597001093735222149310934093074618995953025419566565774163358630715446869817131080355247830974990723315736691455974395789642872283508595798365413139370535204044847637867493556998711679259817985532481858186358988383572871027380977047630794475756768656562592939627331693060839521635281627374971702720477770678622715048591187706987550271135702816762513870980502423290923133347663614006099891926915350553362661656445821308784581753073423380606280637635226246211000260435649333956650396003346962704505612857272207606258504934606435527984047671090042687885548916069277301270264577391810125728497455716167260187878440648968691812783990589120881272243151601228577746892911479178590701999245776594543647662496134679813468844728853303357494913140541102922221804660060383070697024512526096224924955936500114692811433123478514802986547928247690008691033722895724270500176715415757711440456053991012708759806675381366936924535942596120733041208199082912574765093240425280360372350239236619349720731741279892202090389044055468599028052072673055111002736972438230570758386488766190040135770143369259145950063329648878359960294729281816397479853409572639734227383630163940160778664724497622154907952928205251343206978672629863344826531630267130771305601078803701589486393068205491972212278623544889574399629476251466111713082778033511762871067169252620122693701242549606332416030938806940157625447806981799855317139665281432396132285980391761355205417899608793096724259270999351415108662561250755731244811453747051619511899396409582842124526324236504840140693622472887779868709195700745226766742381636779352684234087064300210681877649782744745349745759086978715786197962774181779201663106428711370633332426030825150601862259369313926656041898730351901744587086578849016086693350819126306697408036250052671967054279452950193303589085468719572632870791555021667510142495978529157478602496333697234768761238774642731648479572586468795357349740193726129615507459975334173749257379240120012882580707456835520146215595005105795960879793261492370684670088544003556285787265003271650949805329827723432249874456955592510405064276222583708616461756205786571081322866763604397373365686481003348304044457977081964502660200704462391087569192914435979695231864742041532418915400938782507423247454821677945510510609788228603189686195784096135876696095865363541171744317104743606508505940830087895905292696821930148276045330869711645375032697726934217291604979816051172670661604566258229236219683153741101753335878025484482146391987281315872280401940145024589446663965245070524838348567177578965947733101123426587989682934151501471056495183934151671725235428780044513205976862877861015977590683751408400743046936254568097576474078882965419863801949684858478656002489408478025731552609607644473662470997862472910594984098227448950182451433789649469813259889397513814029023054794762827694106304724099861242190434694339582841590170716110563784708098327451257038731152216757734191717128215829315807764024243554424066738396511966633385074605909297808388755015527017172027516794659163852539796330404509115950028978923449782812887030030793122419784058048164691853852156785364518929809717384142540955004977913176221654496752114393289852206859148227204472391511263156738856118536513541412676134533061934107628379371644506168846136687767688777804193244869479530042830455372873386805047375305576617176491342857199139549936864312291704733001573295455974580766361129222560296669055214411174461774307878150339455763777272957480401579873898452707246873031463294060038532045163522948331622317886714460085715991368527202508567448510028848914382747546901029562238700600117112869884333494008557623100166401945526375355616627690107489484581042038413198968405617317318670640393364393581725839809765554223715131904288438610131281324546044091213951950619356092227535929755313366931960006146880191795465167816222768455418835225248258682970975154430428619136907183073621759684803400188574149351206298054623963104931159779727515206183498490157208236546533561920613809551559556057008037147372791861076921936180410909008436197906848715458811777689913109465159352866569625078562438220681071873338716665699982195737459202789362832073294984080830045508260777932432724679675219580617821797833993109156617283814752674525680561497753197805378608376738275076116129407813848891699216698555670019034410987277968382319415955016873950691841512369355088785237766009929242590514654919841454626187896738996863247706198986881228688484237502508604324901229760240089484093857416309350580855569161129251752615232784123515616669689169350690268448523633955861932905681959331737469004825506545817886735804550897560433758501273669006943824734591067617516179935393524281211881906307994881180002496158072341275960040116682413838406539663325452242737954000878770933060999530833473718561839122136645293288305756991505082435755512542281417121674700137015393413561539638919747079327170255261251314924895967905341878317986428570247343342592501427555763986019507156693243586508055776819240007127072294000166870201501712339333972261713787786411079313124429583850357104928722244798853019372883806521980509087232354806028100748253857162754957455854583675809974347248791813130071686210946167443998626257690091042081839096750506030543831299983375357404372449248698568837556356423156965877636465661872211205809071530031975047685007252004713301412663162370233699866876447959743505273531250108482382851105987861332957526690353638576378034822401344466344536945966158769118095479260539330995587626559582355704632594597617740701780344187321816256323074777580448223586476392083687806171526808925370277018326887988316190506866207055561858197489828215086229587934973626139548698820308083233380859003520559270989039806644265329491186060171348234456778710754032314963497743654705867745841341453267786124841002021278079419811644991469027805721042599253119604971879845719870652682301656284322391124898769941044620195470216757208339600458971561191375289291254178198505172276907448564826148714548959248747531982119835748047627708811654057581914775305415871641311267673175254747932069082288194425170899813578516899337447292613893435301390805254146524041880782792878326817771187486947020526190620634985401672980459894734596026606077254263321804626958719125868090485590974266703684029880353111621671704756812243071273770056593400119631154450164119270682992660295908769818382359449688648414483899932104294476882612587652643521905037659104469334590390758360450138697612700825639395113047366224236437226796097464413288578263957932550661632547622848530756628571152575151797943418127875085925284030273845435953945932482384305347643492493506829625427762973460557139272667524813058171328176541018862283343918709785688752709886572833001689439850652735674300998830566396868377223856514285727760882912092864137964984999061539956626837447012154382442290609908241701690712261410249949134541993004021113820251521032808680331777497448618200623293316323152698844804673513103769651506807085151142071871303864048809395204965838783314388713239550306849029140840633436102813903285467078604462873751308862215710194413346094363330989906799432847006695380112156385223447698957794148289885876989412043806870076603764841991072019399744160072726050933090145156337636644485175401393438569007765016394174193887195348841382506924754340266513383838924066650679677463610742381464830015400031140847169020620985609085340913038860627742731015969020535793439903326089234193720863141435978734104657667018829093993534900735821200752724910423843329586541129038478816317330208167886807849886458532626059201433279631532408879348961191731857365256172671146402446965247049864055845548132361231065311566805485085641298445657658357534204820445956871502105244472647584131513936368088163937019105264395455838606079808010478575677860747606686733332382776255103937852891634453238245528481568075591749135056497550216844361143452533682890068374223279773042559587579384166724957381675211804908203002132750712417933311079438057419070910113553806539847245867926457624554593988055176573339406421806529490058044106979674508927249478048388312030576814490051540189960088045027610880898318826911832271549413262877387691180529626329999718471871083379300626650587059737151183204888020288555278434666193063738330001139228522640607581453022340232890258501544680350818935155664856717130524791626585111185325650381271590082726801366403654789072701212242448619952891283932391175948829434435101808842029646891583209220699058881131938315851736578190029262998759663244841421673672157820523991256020504718788176617274658186202259454235007690556825719241793764285336392644150110085942840008771176569577859007013630975426133660161660377301397484474361519022629382615800985254661728844738449887109819289265028776345020805817135754759127401818676617049458423619811967250310859106948816807669978335469065142401501640087359531150888222744706658349803730918247797485332039297288071733226622461008996728987086961471627036029037752651888889080195602895574544826807627161138178809594429382627194487872094666428372072839625417832114038201157899568788123008885644218912607770596937076280924897397690503481632765581728208249544218341731769435950358026839185797460205516992331133347472198271236889096277522444489048993546372253814650512951572845334719750042157853477485455976948469439088742204150119929569802297640355683290017973402096944142440339016900851578380662447524962612794066185816069041221297859666760089397490759838103721973353930176477283209829639004229508842123382095032864652205415931096528827147670996208138489885022338877829651202494430701236003294157678621100831411646044209250430858811296396972553209564762740108589874879502096298323516914356879005666418274298204691795380722544446801561684655391075046495315157461176223829597733910636915960058438236180066226829796335290501018706201266670528053066907880877477491021549126636225710398591054626862247489277735020105051629944619807238452377829632216528458765714994689123877764693808296984497724986429076208480759634870790240628918975907070806272473720086135465815280766538897998093595711029838974749211575999497715251676430735110803744230748636464621509479815707587053290968004932559232844386572258495426454448415482233765755623015983878997112633109841255783124588271363699462777993686461511245252502497951903540748752924059091453034111159481889802483169830015171107912489095192915191479222424479076408009135704138710747735195145713230995656271312831322059637964357059859847028274262225521136112902267277683023469838838040202285349400378955775346884211943387133343585961564265112301634869035022778869801587912956424067166179806683584821576517914883609106684737503347871592857336802520884107969609149994054914967385513089898626894825959308231085839195673912380325384723560679455883890400943380669476024854035264143294991777191412087973545062933989643980274068488027253356643595662635636646180363458862481525448134747971918196337779903353689896764403718783876376977162127173598118979501842455854971055282594722818953305443199796542132102479085588405803285353081188425950555621422600609026936315535254302909300696550973869400153146777369931230856835409769703562971493371796435877277207366905071704410582936805997851201121007134181288821180977799632832184902816829400009957758742409440817507924833597296913064751496564251991550842458841510634176978907928034408470757859318325985897486689408995226504989623523095606424835112817901919391382540837486785455118577923551633289365336851472169786709494118801297125785047262426196518375539777593703784132356116048785832871786397700183860595267476846651177005626529903004296344142578146538692056818184381888620684866900796323182050874308346747534585392153099971862865567121850299375103545821148442246916253836851715857446088979125887356551447202902329201837183982598829439626823319803289884063506205598550118289143900125096071652651353400774271622514692037593480573522433232614992056673446258685506338699785141986318217548424401536803245955234887144382845402996577482583532798461560820125840558155756745008015157400521452675618792101319251823537732191363738981431638830303728262918693047656774763214939439770589355749849575170719892752542376645134324187263207076119934726087343541313794461428660793087770627184622066543959900387357643138324132118754871273924050312624315620273229458552683307063862650734117778522780826223038343561975822826163489773472012522073717963687670726866222456561990275903762070756502359398223264406499206722610109141526656064950833363082541242043784526111920058188292236278607179743020256293506490568850569797621856651265109030915404099517330423053801848685943279610724294364461144468337552368119382846737150735876498194838216571712318190774484415264838607433912171777960652632565284455625995209853230401206205041995669986290256927656058543562494962155915271814686382199067222626832284669893968836946930720675979844885942653986854202116082807669767387472139779580719399491064465254560724669284346688470397958712827489742871166903922220524650863507284757878282015138984701628548219415422903857952499445391513201422159915365493147541178623510784553591711432657587568460925484047741488341584061877824195852380339157181735628306097325483062991033692663126154014972843101623120142016533121109786655463328458982540732658362138380050770086358546956996343316628407615935861593328708696002683404772295334389210285407053252945685810156794804682273352437123135510664668409304620981209960182363129223681792311858977522802649980229399153155565897697672190911755043501930329714478448411237293756376067237442828162594731459681318817426493288457269702520637923335617795594364016783062967578483980759544019379352838836201893780659544293379658002540336685744044373936835254141072609272755743703356742514903944280204820111638379006489756626850439029139939176765693450011212310103464422371452693022202586138857859329443154198695878883988660811616250490837560735110182751363798846809566598954057302592557355616786787113295131977383950272343711954750480358783692869696455454917265714031162007177841087404174206103937071449580491891535423433943800453382014351431695246742865964973944164730852498456788710927929019537755109458951939539228846680679127772005169188221282833820864439503223068074979419592557848277959154161979294358546988822986618835686669268623932124573259731793421403549351114594084671959773337213019740300713072582211223129209060617082246075643202056136568778288720186746103351071359956492056973075221738424974690082948313308510941757729539450019568094403108626987125453089064687019204838457751184331335531435191120533048437002419754891771695110182864499129057434142187666354394241397723070634117488609131829050874548036275637014527839992169775393707655603819735412800253114210978262136723375199369420621349150028062477222869456557682967270893547692881766425290472132784781647632661923071241949726218721087527287628498645019728408462365240099560974837525592839128796688710978774237339312418215432249660512561034138518402362688880063090166458194451308318196722853186614545034743464777719418926392288430471589979836072845014672386465042482155297904865205401434623280359342346179275902213382996057998734408666448396892858629431055314617504129219938321366393483597861117682372840529138986049785320644700230991601288121108211737759224114891703988518842696287277666000227429779937093955031390619229472726738532950710451616535755627178178658717679826157915449995138022061987092944055954573999535058551156878767169957406710373388388513169848050686100344556880695959396123614706090027944575470868519429656857151102883930750164929979342222865966465035583071549388887640282354400609496911697867336961480725696709577401188163568483371800893922502342825683980060233413044437138069581238916440576065710812477345626100709857110476498488338396321728877670229776071915150370852547101478612897185987014701891028569675955865573214128265353811422560325361199657297106903794435886639072724569168991749862140270888956607679617785074917590658700764918623719388986461297040454635468821914411698802635226076396958349754605615066164164878307595354651573530355982312833587590929815257835560407988095020178327311403482799643792924410621776340682133604538359552161265034122951050238432397885443597545502607607119702142742196193138059211197515849024358933017899151307757005771718693330432845664223428054741545555654567280311421282364652320964025123085154022757700213474663441730331450324508905168610512511437560376369402365082765425075804353682737896583131621925903169967433935380378430631275633969693147035369523793245591964693450767468963734156990436249457577225410390134625636695903807803856790777361420414478350263063081147037917096849876238268022569472423174847629416390402856994727445114813278247869990666522095214804669018830727931947589701293415725451528867918307426824104803879068068151661878638920312801073740545062379302212544059677547665259938409481098894142915183718937649177577111154053341745893986605995830577814039594002451302441117164267691249352783128627319878524670414904277575364048103510404731565734429073694050167091856192942031588101397893460999986660902207810293420168828800979076866675145910633531578501870368211192898742462732208030878711380915510823250339635824388108470900360051638624056050047215868589589775152650867721090331185182644854560168785569033525523701041144164289505614443155522891388304088474549994570273523209718874632266643619169919782277435554890582738512937862156878494571323063895300517985248017340395263453357372862588423505407472231694997244962150242924683939058984578782183657677416004274684418503921599247893347188424293919976668410720554058171830865520303572579019408099379865082334956670185308705458868982230804354070325278474985839462297377566584552027518103182726879837356451534126462652340874866975728326730341432856289901621914940420135462996386580290044519125324590139602029049845274876589313583909390334966700593942392571470796799027744434199784667397618798989223444477523555797229649408063992032735211465623786992429689576068280596976327446524296355059547754595414390357827114258332608557952828829118072163425010072767234638825991515167130458979844006859076425821939714299819937445248648436344838248419639570792872129900726164186458627320704391888361254563719792869622751330954959401912201070339896914919961721375285681462310622354543801816912378490712694670913985000623139436366116633830149355274274559656859484063324928185076930640031947495770607512765544402386065061314154383599392298279635932884756812900800881168970089115906791973336902795097213963944816168193735345767519053032319362940407771243092903684265617130749853745360254561907162202892553971959561153132224255412765664179672653666068475837020275601812029028079094863127176150035490256039291064618675424934041935974949989696616731281563740888038040475748017790433644478901427586706508318619282328482110771063967587841741806694084170078016871888239840153031195371377221133941201221137023934523130856470560415325211535549314886881651830216270169378304334604292123886739771390468898294471313895303259643534515716759314304958944466286634408440870256688486823058217256553017644627662250568349894096701182850320143268663158028148669214004382734434557522455745108617234247072312267484247346735418268678094060964045672998713319508504506687771448646070615171114753591015992962682602134768314946549019990139063222907689766927653406918887320386554969978089790664860501776534827382206744969600767494959792452401583819194441854342488525590535074238163925939604387691071949359031318891283539449335275692869700004865537039628160704813568537336627220240773996677324874919793173010705097553398279758783099655169248786554161026359986803152881924061142612921569970688889846747297202980664473523291607737168784803037747972743051694811945063651903322393849397518655833941756814059281305135423913378335818037820182808806845753364650258871098055672270950538823337869093276448330946778039983313534965284995530414307681457550615394016625561746668663946101746342181535320762526331699380439467850137496309418226169147484736822459371639999698901745452485983180405362247293466901264032747258053697122696019049874856206340257871645955097784519839348056747654370519034530517342967628076734736083538454794427403916187140847299511317679571942575685863376186452260371847680075627825374855233379005774369284352531989663597227010306526302626873770365034775340619480808822370470468636263965127158035835851045943056085817021020989852730446077386374905702945209585943421262898331971791710846636073057145972748971418104729013176792055254176839536404511941794791620683046119240535531606081400432700511382896746934408390235713079785704251136364184265698914117450246541093438907619938896492458667292452425775497634986131469371895551523001125800985554524540259170437767335063391651961714649320908811053438834148026875396334481407116099068654063408346436738427396585410975189343613096005682488765819506591812139393200836788612846140191663601460486137290757856555828345174634683650952696387296985478654046910781895994965378682002050842413779934880539974258024036070649260344712157109445789584367105555480273784091168516883168262818614279899076450527895017567871013862804827071812747732800014647776051314687660758875674062478228379735393687597796206484433335337150960390610429610703200459155414035950567180013961526083018252837369248681623426725750103266227854442343807638318493803328662737018483579108879045721377683656305357422827646477605222767986679797427847129562043233197648267299022571722385544167261472982609168476141888536686239403125549154550309710428694452422150713139401839577702420486273961228464094336419306775700960517380863504675092576859717665819257866079817603964676896760742927049174947798187493289973636764280979111964895666031158954985981064479784009817523896709065075793119637569462896329547604632955024786986365651573397666009194017359656606786957899651770455481792291924793232928808696686487893768787993478402288290149648282862972422951361016528973836814256096073988191399784809724922452907162615952710216182061631740291727407466585279632506379151818140123494126245570985416046937387698090656685344559841327336486059471210671145948248682001213595099004588975239868732996557611710657548239321127129021468316625258142894109829076695861070105878435078698338043276021175786965021213243142453858792881363965478227577005943588815123212141521664157936222847007201495889526071977080778532434094338968361836785327864342369094770766035339892914251283764314364054704616197697511660988817621947821274638341240409988032047963490171450913597681421517318387736444433878042150948180804218148589559413784969902793203014063587792182249310134313598084873690768439815025595039673733741169677941198697893818601020517882034759102576159923026221363392931282041352798014552503727014507156613035967663538812048900046025417435032759034646751889073551442826115804729850959167128914587608193214748767065672865393136004751179743101022405351150517106495990050090814314418911651919058484529401505002691417024117133915371118304339015566611123213249134855594611424181533962262676405764145328847806179116678712224428400820929255088754029972463541370030558199154990207971697300860928102146315367136562678585479952796355245071734701626566857887057203092156190227101401270755065172079848969242558304362736545046775520849859169963293619368153836695673419242255603102965799728517552854762258307360529635719509548643305643205868533788882629322251717212464791852862219976097186964982122362945611117159781348847583373235768110423667563816142939877482093640239673438219746149748568536155544542547484242371954399225898622373189470733097340997495805911294608208652050805535489538213156161208497471660381705505920774867525081559469185052865639572075309168145151297984388124283095766682456718938078964359043368419535007396154665412793695561580035798255089251649893068515847573767007784643141908489002838473762099227266944231534793598921038792817684453120493190254795049511329712140690538572925925895818971178494825874581412117054869219558682956048130015412258113878967219394895357023874356336622599239589066799230010206042650347743872959775563731579653409640051392202595200896103382514002454732953604508199822225656514175284544871296295876386615974099987733789752217033869910876152030964361814849999566119379923655300298465652461355091445237478269569461066990209906901778625166528523320617583873947492971450156203384367293636755654827998792945084330765876903022223345103729682797595491977412711499951537002190731148779325356505824167097116145772540719527196261285687742409225103427993813314268762163286280582113171301931553772222692315878692304647559619843200407532142937914885236657605301800544620068376661594960550451881858678474653648924723175213543173579504735421938584794365610057189597165368379727207220672971968189043929236433860481588598320750185315692022836751140258046548567596405580430630094824825016343684613284654616599713048067215655478449815922701937834666769248228542339368451034276770634080786800938873169834984740925784924904304424628456750804686176479773139195119384967655895837579546520614512902547478125703889596681076290652090550955177992436786910569472602961609165134201449327487791678562762830047076833899156469997019441686008238017881383409018208152890709773425621742390381740754630546986177478525331126803588529439528366729305125804359466781525265997785169396193512940976622243016181107164897083483967402683164983365992217847531456928432492716812018683790575822493016779946485844655966935555197962057926285650472035571787818197690773334926621254317887594891867914735970255434639210089595708737740845296474140928100000224156819965713070974289423708314724971909163043255058282422557406184777518969809821167611539807854581255854077816165491640940198635759278438376149431107759707992773252209749779939285589344672922681892408972773185394501064546634244781387076303834723930499631534934169623054221945038922281152234366597562488020980953305631998536378890930745767053123217788808342214521212888042961410663914015793924585536803712760523651665173237758365767426144491708501028657545755004632289435991633732948239809080295705279681516761273615812585644442692732974887658676070135286438541750581208001304235134505618164804253811893624502290729580388361556030875441771904520533226698803509145480713625114361853007532140947023132987082323949522980467102325994938908975920531521062170328278085260297948298754291092148553938460254639918975251539563261220532435747229728351647714870384773687289081690090190312096008254902840234921862622723265634399106943923016487753841131997301216751273387114382802921351086847158960589851529962369670991568282418005677668369442470020748960847564286984120429129672764483911136644329509340608881768690453256937677001596708800308905263452998201237893420182268416937084102113310260488899609233955580408675318501193283301996486228962289951182475070563465046627304744375106040448967917607792511156635246170346732991852756635970522042710755858765953776192672293488003681870875748125664365604638700370046420730342444210852031612420939618054147569090602302744195748222871633336517255193612113220254303894860713245087451397805386839858038606011297683045392640715075441566427298585534090548971779811959411145015430944434804553803100124232545259528375458992085179655700983202954065517206058883343326355157646595859975074578493804812087462463807024127055558010466582374795022166981407781351946889374728639561294246818465763035855721781161910757181277926788272466914868994536192706291382996569978898640095381244433693034391421766490573125009757114224012082235001184540278977622546474496321441069687962491721398608630501045747125532496716126002839186917565765319490512878317582874300033822543996259063538875468933718252346342672515396673754422794235392639534355579018650592186396188222280913961350499595077733470566563772873241887218907454806398349961962561761110370362677795070622501175497910419954276813434480747665866581038707192908402818001215574890052279758372467050710654770403721256867468777466051471796863640689511253494619678768825853648350789366684585978409141351328457928129806634111568659290789181055815881587626321477646706087082288240674269840373971008690164562643577571307537143312857741830087669580865419851524119400748242133836995418731109184335256058622058542255430982068731520072505208460866227272543227948156862543513777769102592716055026812466599610554246842886204423283050787798759558750126292570956495233749000630327068070304451950695884801182505312729170266994351985861013878327906725913154200508375956030099010441315181281286373212174531491871730256762823119920322853826680577463093748149557610755676296238363735676071381075487796217541377694167481969232617940081348804312420036973623107292030608945093701020169683785429922237793016763249899208698496124455374568460580997084227969193841197647900202733301534100106486788041920576577524867711534020486400343587806903145131867475934533539365581047785259787701965213080335317575102983366545906767784022696737543553395239979333244688430197636059320601133546572061602134220926702651271836897518124666882345040333405077589512545973478746458731581962992761747804593304964812874112104259212318494983041725678316254028447031967446692893598005034391107664663761008665082429340415380436250193775111882828182557685263567590735076646617160824538324939531678427480125313963405113401005665776995536599500717077630072129460022362393713616000085410206298424276757913306200096542529975193930388843153286902151985077627270688764218907881592014210399989875956375576939797158714715857401080166135641887437528782887246471734824612926588409492272424491770683782262225223627481381204824212813332501661568146106362102498984149753526498157276137905074770972091996118224001926966166961569882150245749675871297519009154683203505340319772682941610748730882044894662184508876211661634767161387015550613213921962772625580705306308006770238194476216417006200466988805544271739010715232085458064391334953226802021263807351828487625006677232343413831707019906809355787954629055256065892506170344686452809287925110438109495272691480104264823515416677632397042128148607223112183262523332887430364539224755359453759869420581409485476602301609401598269549871928422484461515944959758085724866403599169316843299595843873921036068066129984463451229159678548611766227739318915906445845773294022045531254443568495205569854989831451843446179567793256268678735995598043754651660413096772318582381890348299718633287211285519229896644852684772861191291876725331494221392755876235598536569718622485373239813406193639484166913946656873960728378818002022258902105206581559276273574501365035487196439953184631245456214734218103411297602145458443167174274959470322768195493722065479571107836036174548579427176073928932230268201239412454665741017485322575653367181773281762940821430573502004745530930293248465586471775657893748013488778032307453650294841159032981319263924517380592457458098568869521113372601563219588915914649603326885261072546280587169491425446048006919090395864776012142300882255481869399320135237027907271134834667476815317454605937799849660507879426850080989132258969349246422114599353027945127822548163256078167930528953981329177031389670478574902069810663081467433293553038743697855442221824197071154160619357597583699366275457909988683475328484460905688464107624035398026947381512809007665831445587662455843180127332755244994412340642853216633915742491387046779938451854759859742090001373652563274220277019597085555904288633704206164515731801783900051496464069201455248372999468173967169722668184359343415040283741410991196622960778993532956891664253465426836232596059239135426659336756853027814814300203878812313563034471116623300429630319615143757979958369218430233717868373397216500131202646636948269934060799284758186510882619625466276545463539384566732828764630447739034332715588454215818562814189471498928739503806735135533881101430478512802404538131697702924844255355666176603258091489339379288774932156904762516853671899792739977673020194214929048108313464182202020546541301990844179462229905857966900056559764578508963039195381476517824527691752007765505018875771839375109046430326069810313996333126765215071247918923123376519234445226826155986791155763130254723900782856684729381692472830075707388573623533573466652337950226963990784068488104135581715681937302454449177805089649040774467066401407319238199159886477793025724077367248733541650956298732432904216901576598035405620713350985187146149396737549935589334479969181640470078238086494420945038151335053338434341703672506159856575196385224806989702948552172653001212395740843922176352665170244165494891954150129431659011758627504502017838341895709166554565429411101242180222007981282432245812390257929855439245152734899196744763876267110181122405965159494947690323461998400893833358191929320354310310694538822641210713939635839262404031710104683097785372624069514017776937615060897364032298815215590957045791017451748477836125986154204437324104242624923423733082348248166702004548504965501022615643618440113347686786735280818436129545544109829900647805058981644763419954448311405916412940358138461774619744196012058781118578732098191709358715058302574060831990549943182000342246294512697616414420836592952571765061845413508548140100411128577732707587416298038753632268083133638442513045620397015581236720993134544230264322758577412152366097118733218552909085897054502242309925746195746036789424991608179475606769392265486419157104481347267016702036475737207492380609187047162520555890211620084775985834954769040359290948731674167061348450467944138381968653560172156939322222431306672440209402368194069527922229282714920639031524729978314180418436030877531513737660647402316587996886764095832834893727356952693579399073941831882776535970559768452831585157616971800191909985483563593335119581967087437763073902317442891716638038341305657153523165197984808577124260865733015853241763231480629658474143190836473088243654323564025011570638101477243443765036624485443923078169484680431157107716814376910276130004930218855143988380210355961307978016353827809529553022728290538296520142307116096831292575100010253564053488257073823738604479696173936880464944670316434004848158264889425385770986731834818751735189721663885907356757934182686771610576076758850736264817248277557777631326374817376036438989383589953449239785142580356424684794537174700839981723159493078033283918854669362905661787905212959828702302746780913977806882490437052713414480203716932587695301226463305574355490926048668687474615027093682112060543394254837021428763629464383214612391092966699133773971485366148933929562091849855819758384555250131305680472244545911746674943335441862552110556468531896373727050869656785011846936361625425040794732292375993234190309943570681504369519275595545431451251098533238187594258975209727107646853814029497012377994406858270615016762166267216924133651667126603410405695388888609184058941555797090855061404736492451493365060366091007970723175215720624083448170143232393113486818946046357007868413332809494177752301890530435857325147068886377585427625224010333085078493312693710282986288864459127826750978224728105642396456719909584813029229764377062071159890438192944112834245433534540964767556424960822413980013242926326663524847935736510666850466988029592443066470142217444478274237094898491144255788191558722120897107510929390854443562614651497269692811132656150486135918955054562405816598938876204250856090310667600089517660418027961179202610093590351925931275600867906893976015403817265408262434665225823133751399123727122758914388995653690744104491456173917473812441894905169452282087892743891824680985889184629602306301344217761802532671758816772972846874116538449800894087068589756721166598758717321975870476948783887448071958423197625400589752461818890401412610926210286018482370224020321141544887467877708949734794553230257229151685156894295366553531903116713698604031167994848594905201653105777022339083774305382023931308142244494627770156227678935863590042387526933499901873188454186534557300959593346063060419439722680129966297036527836798226355497664433102675375896928678178275349137912386020274813292660236124870091826922355154940075288493959856112700965892557346452167703978180297158326004630906749691493937277618456717555185570077212767284013146022177551134740688763619195329453886933973748160283249553818228953144316557869173620632864132247724153232133899736302913724599727447846369083041439208614720434617985187331777302260012776679011744050706397387502105510193056461065957003708974870972179617939257229227129527199874863783425861799106563063389852280415263766708816526547118525830089152821784994450759042404242146393258191750350169877035910967839501735279671203924660651651937313522918438630399851902965529894739347654167467840610102638337962525331326118089353253376714173055573617998846272851554402553887062066540388610149438047537648390732350698207474288763115978974581492556958165279700445085726888980635554248420700480351322924210604019185202943905497843254206355393310781388973228977678405028492326675863559148955785549113085808616297319600624353856856971469559119272401992240736580742420600842436182362861882474890880285148599700936387567609972487107982750768060101899492590635842202554511170441575537072866163813851692245770420590069643532981895889234541233763058124308718969966682222175624405836925266521719729373478256134156510085547931801983587688988120729932120980571214603045018956860288524176787740383436754653838445104122772626803745180867062785189166326367156762894112205452445478460316473156410931745868680618838419668686028152374715818827333752694429861390760045754093739076589704282695859504450518316127678747980857765691527647569401808446283477423947316770022584607812885401789619347322073243187170913206536705443160934539020998427427547296414564371441457545896910841071883576496376748269619808890992537714553055446413308749429379575237925866689061533669363524276569817341606659623364014014328201159193047635318909533415125151432783602381443894813277264121655693286494514516730017816085792012284749713508659880843192786377442686750332194105197364690901766027736138125826106979981752819383930940498760539320039743237951499827264450383438147011642879483896627341465770893763355848667355003028225384660643488373837722720051459850176265074005060996037540513039793774959459135017481828479449548468379245668188564269247767419113631468439728787047647294854992498947297738939211279291531026189515169399835424986224318128277459246977183086654804361088450460968000417266484478479702161833087003112076647805701700220717029087702194178730887915120560533360641384692309001888208940302542666446445739465695623324695315512956886304798507040191480748654659068193353577019313400031850761152521475996694005049508088835210198776270139856830269168189069697583597698903264167196271160269115381145884881463934502681262700386275612487558412798968186230695943562143045523223922338252848977222552147025979210185389132772551806545749253814808898128085791900146812250120871341180300575919863743354439089199466046435075246086469798696489325594079668327772342133805922390049567326018634746412354047879143922037838619979391077416152152971815045165000376823309198331925426789588699540172980034917308989106005146884991194290296325323728815215365192558485638937860236793098648488719962579494701639597215531970050052819010539217037637837446449927886510796426839337362512997428730487780565869202956885438747598424563564333737527886121237544634823646716526836308661224535129040920407582733825250086229364485842408361779434749788707653993789278341295332915640172803436739383649785294944911066739537255128389574061758355109099309765435947460538819962983669226178251024632463403026492480022127910784144931825493643780098827995457782428704104313278622175580658898801797851607180570456960749235875309175043289470191884343147810222634543204417395433040159302825444025781803885845867227582147646212501455211292961084613612251928784311462487986989524683610160607663314538299546102297127507060197793260148730028206769528013290387730273183383465888902167840433167175091728769545470449023966993186637255905191600307241420488107456118158573909628196644308890424979579368240100016636361056378626869000136079793666546340453081235733029293281362815610825540477505831767865348449268337283442753141211217981978428046836174717375318780159305774227398035959357340800960765221562792615460043785820211953519366286328423869268007044247291217047963102611051767768358470440186463479826728671885818906738834001394809762519730723302651753266340766292498766234216318266150486258144650938141604321670335409441009989075412427564572005944007354484961881793791614685365141406839637340931636993066794839899609108848970387307674519663127696363464571561115108649529263878824493655472766867936849084920596328884369180136634307988600613373447523845809811618707651194877772512051223911355898457809362276246995631224000800992099645081828012226932457956257291366940451044898501597945006139082956296858183725134374351177077026728494679920648426888904468706209080272922059370123785172431875607919466365988832747141589894138605785405219346221626687637897050543600008297048168139783331986898859410219369802702099807718095632039389639620130025596293604895649703909237586077499457002311962200943585948407901195305756402871079940488213515420521413819489682242439985962360407816025615817397971142126924994816280316844050445577476464964084813080780318874156543190492430757236646098073656328226554981879632817154348614894129665507229723105719048370917749896446297054964078503578645887300710113917434695847688554830136469685572160286726361384576828150214403642425288806334018978044812156206088855563677240228291046701944058014349283804865624603833510121858052914232884479044923564502480769301068205387989249138882755074412295224165563449493329703296043477329963450009670786368725242189061144169836872724154830391278985144727788035019087322582579114157110360484447399360710014011742332088171072765661749588336054332837061525151509160363216031686765359103000086329054788330727322597072507289783707491815008489104127741307666072683034566489978459799122610281228769498978118742597449666966525586262440091240282299239738764470887097417206478378232056593860728474736276966874456124329246271521037139890800876238551089128076588454196725695654007033365083109871267122319124868429334055333662375253216478312342310432796080817163655319427164245723588797161970919571344772968697410006583861772556150831844236513487636691891154917622839611961377768600879077548069199350597012984401232899176941317465825236154785963751541184059561338086839886742236087060625582033399957404170331597226509574774118671125709345617644969954411283396468195152876320519980805877968429480099755132268131925655876672920434871831518182074743142824350409380830671905121360517079975855932915766964039063288058959795250335015399120604106866793165076294431815803016519647295080228400010099385718782583541475124238930150806666407829309629367731636159253816089363742868359108238040903186189482828900470974467738920971398818360086949768636296717787957311924701846382349640376082722614659823455221329973974343319774127992319171407437587975931520835673238701098249965143388120284639038041960757525799143902078520783861988021682650950466485416302823266661846317763366988884432051097205768755194583721322423761271485567407879137561805776222415505613754682753864699782198898697462723938516126233742127724466429832110984533425411078630048789435843144978652523712330636140896309413424218724869075627046314614709140423974774121659533397539615807701592334876433593294462169821705671504612234168439549137606945398303473602100093760214566269700620031526894797546213085006993682319379377977067749352751797449469682957771666761336965596715267178820107485326951047132538310904491647668154473637749631665673541040998616626102072159698007676653899530707469277625127803179857914646107403763439070184794528301261091210725358489795464123143298858391357204658562741689945621817222968884867704612583353957973101773397027239905397825203972344990875072014281768704349220973923850735519788869191983726811902189892823681004986767421244513544207130307545980128274702747708419489343378587211971346999364072581780468211328602264892293858794279210516839750041522967317783721907078438595520138139208999406027519675471137032059803865689864338198546153995643795607718529521801188984997948985145910538100511680836568690000637291024705155004703314408879423181667148117478723452651109030736458761714134794571091461393564762757253918383338542344171775174971568891087467147323842970068528092010913149661049255148397022275178076184365395640579814483004854589829990564280848646789982754142700857216938250276380537128865845340433633063139247664910170972587002844766073061692894492368637342233033692621297648216744730590024786443368505520832202583306265927732788944128550747497521304011077207331303485292198849291976742062839110340037087822211297648096589919356465937515816336145041443044985212519739423305935424736965123619231037913631027973722518555165586989022990722081076933556746464138522061663907603375644542435295869102110856377367568442481497307092289662090361262487576536768070680174810227547163865070269084352754036757805615251875079103083339102408029452248530241758446566696860258380062356569088540764652563955821093351897150638421636586189516766015744557928433758294839056164851428051273730765097595460401952453008619310455670272825429263479063221499031792708900293553298579517856396771341405484431401062776019287451733011086616433597838208267916280860512269668762934754477698076485291878419655986799285883789230627638839078913491985523929854737095974896939662614251193913128058435789933052729825073532538898365349329772489444119260558318053640125194091128790788095321705913348121587455350967785633644236172804315539733529770463640758084544930175247431701505794323993044295165773188442283266768674324240905968010590418924788660082748137060752254180855358194873666635821713354331671065291568307390300104950487358570059543583592048168503350095576434309403959072512136659054872662455661833058289637492707650692499469709394680748221704314468092978762492244551641150560680347631687997206002425391721503741317882304337037316582888879448665333192708718008613404977207963169788962075947773293187265386032815154525767639242934619557022439285862393040975793109052738435602870953175198492801461435425719561584948742226755131160248746991177353548876706145809010139103583716322870731835231134406295131972541224924897389298445614609577825396344148707555878671281938090164419536760600046961731660991348134814046989671801329116635519375805004367876363896756607466937733635896681239048738444355025801626553745060964931242894499329351364552676578287378122315246226520629685834154334681612687383671533119791319203913832004247636479565583139126069054116787277565252152708471065220946442541361646802732927793797611244700589951971608141156661290767140835151314405567478461812633647996604565632225804376425398423710559559819340959310605354850648583302349289250158029650065546667672558253844532811493600693597835760062701034507322143050552886385684882276977531320696726196193122599028019146100736454777262507616007340119227871663989715322761589799412506484382984715270799760196960298475069103627764251613822217128700291413355341372409220708250157296897084611887409076333434499976543099031227905234146508384371648401705576699572009014597508792003918129669081073012858417180519964946038782968268806274996233551221539166259441835822796016367742210086638548359268407783416881673983233659412409693607179814648675934617133990305299173785024164281967641625332138563780838742080885740067505168164557185407173182058677922062426421870379891962153311473432357937015035187079605740912908568052415902667251903020629420924992788578280126272935033330303338677823452626116018879982823702945537936442808261383335451397892579516809067043946505213199381262258291478355720863256344976121789772250844479248115928659929153509294853339056531806246264747822917432956422109307334961591909525461443013213366744017047503345686085472655880748040546367166484179552107176006974545222184984838820342813022231293827679300679935082894343511725833350646126410878587503056047319444869486068209176977010394908160658183073297818251484830556649503834248518702335247123146222936367333608229950190913190124325041722685357639870832071153316173126610818294883624031880218469290984738751478019288642539565730029836694845584300563341444151849564886752028882261001878011710520562963034112704015560040488195827660676030718223600925745761578144940901712109542223376321236797619958109476327908601986803005008299700420941844026377274155356118975060310509327228431201736532248767213957041742928778236185796018404231025688868580524858205586397322504061198718441892466561198230797857434100645894548892319851552054668837074298452961726039056823671588226661425781194663560085728840041079832487017294099329475235097526087485957810241487343490111138725143671281304431493635362434839610164359303225868267977279083636090264812526785922493093832692841744433644341861158835222601357036435086450643816597011218960535502470446870593741636757885160404764284631978211666156498493551044619536571228050792948894363257474224070176814636169656014028701754828984966477387715149339101553414907004406693861766945980055210253917875469320524030088595261396443938663511191758964410368476671563113370219831949721031216182935293138360603230679858173087903632248321616383101165217818950268562354616183996518718454865522734551058314399529164750950194394958431120628674074655268382301688784628808092082265543534703697051970100345923374379559559145059726373381698611939887852353616244216298544310099433058038780967020254228594290552091571083026930040613512274424378813399209694052412013140703931692999553608072271332021980266594845142542509106432290671219810987765376561839136513905387350176816683353175063074761609098526948501344368353606737278800113578624908897728170548015249767254710224781241155762247271053356422331988090586833745283861489060098763737116709841138087831161394286352617600989154681146602406479762381415527661874096322547023812019457814144203898006999737937024992765505084740464673752956825856410597365996683410205830551696232720518541696189518001497248986724129872796566935574154616071791224676731585997444599949344876584214831679241814019573924570516758580785434912229369796456892664271582874112839661446281475512729948663635667832081319594248537650381742472151085048691630666602414507044708175270962225320491415826389376610241031721632112615712422148577420579021116213058313837861431790546674678426530207628939899640098065219122108901931817205127521391164764903052691629567781691848876364819266103686798611759693551299053557015247944799110421516860907151505633196755456274216506463916756375897321904492012539663800075130348083207862712261039963111618610098321541140007998282838309913186677555893025263402943893183574577040814278552381191974071040800047164864935589577797601040319869790726839357444695926406896927024707040539553051534035153672221712612954212756653773142590007326625981652706189125988773615436407895267637684743684362565093062384021813151311096586720303575730916311320649605628042032836769006616847830323847662746466195264788353417297634380272373213575174738261746186367033908861712614045117888668506931777395079201728735746333780871432488742240371535045652097691606077475553797372363967280341023317089019786698785640023616979668286921319827172146302008570341903497525324100122351965983652536794094266888591611265662168974673651176757444650510672097876477019301498010225820543446251638936105831590294788691847453149250896209616322599573399401494414816650141799440135774930124374571931857302943860369687187107224653501238692586274237386778937103132127139405318205529433391186397777563443003567685794063249932741602508043401678614031464047594626814985615808967399099534410871282326360508510484974314150324425178775949138903101463581960555819619022551926007386765591802520050577703022448818947565526066109230003338768059226629048902449130551821568357735909313068190671369449909934428910438395754568406253177334490084914337975548828586460132048817892185456546799577811813783697574153853145154545528915848473225299952809804853056962474984952275748258143977169823043802410610276536383939507114748614211547762139745362519089180348780906760038124200614492378220118997534233264037100110689892163438629239800021500078088324054814981781946998392590534078670392850949707816776374950241831287002603468307130138190141605710358082115218725526973436180176168092946640598094672043346863351814216381261168193414962049872321921945334390311485074562033783675970193646831603223474764344007431322050699518808395388935082015023113877326384257523650770492198413583935284269177699887293371107653401977555783310350365583949932643189990839455252439682477621572962570362679598199487417943051530919880660318732033527335609241970497289484691492163311348459447345917227590485312174479648046329377942751719309253677139151883156630132201116252017193722269719850169579986295663694993932837911886745734169008890449316509025383649831282451966853913331265645065590660279720285497481191543889254357815092583490696323234527524423971468836951080396747678015609944841938881543279748776638283008609831608701627345006164763186825400463190298134508759740587931077069030733099405275471702697814461862511850136597088083570271840238708822576414080641792895008982438402497946662953409761569470518135969513764987035801805255940896851430918786784311854611802397929091026131842324910734273553931857099397900822471385112210058518821572585220116271939495959885879428431361008486231308330831596117711136643647977423911695844911220620952959254976897068226615720445698006573414860299471581043957476663351237279098789967624071917826979426187257589743241939058686218236896297550290501339212585968536154491968981009129997381590777360443929466103541045815226060341132317743070354032457992155096662631094216398831375800586686408812236753860813985038281198135059721549402230158527526295956271109180649583929216818577472262914558999600063038932780931045545889231655046466867411898304572317603905974715497000491448906318541649615490941995639028803859474144588398230852565364238199753046317731628122541338715437911520388599449404819275306690440090335567415746723284138888214979589157056073925981536714901546736856479624016251514401664194795846314409722799150680164087097612663474400447663216382940954526791912852691266165914244854862991525858759132272903186431542429377180168860591607888728357378762724734141490679150132376303063034912431136654381119364153345100673533316048744498025997540557414376821581118452217824206730828735632592509426248295733789199190815369429458038891131634711917033935290051992220134526219900894128138427583478654194927914923923486365371493721817647573035508798807076745944158448462460911651179947652101937226170314259580280512620390961979447393036993049850892723339618438090695130168641232459010703974551300252173729694348442440599840423040504585821198577045869731059903400161958136171064321754300521647177619315497452561004162565855313197507523186460502230950077944257012888074034019806563600820540044005130993361876924525967355024653503989869284981202647961763369149842379846385426856188790852947191898380167634935760373825773898724651159156767637286009711660481556658512996024804173683261912330681667558891200736362250025998968537958782006791377355086938837397103107496929970358440847109796110204393210278515721660116349483218840968091480999607061917415325567633535769496422077213683835706444711537236431134424392862811091376865184628376308826581461732844066501668516905956733731111387338780823298251861239164860202076360432958842013013982492994253373599728702879211233078583550100264088273960542532385314353303763538168380765378980513870387630720853422859161063900819108653022721849414341297041720233570308540969361539505411007465942732829257763514956535623706407744209643015591668189840911232270776201734061920669253227055089835319543643569302499059254179103363973231692512281826596635138592054279056208731472494610742906760109891992736118140893137898714166033196837168900620753352448205606401833781744977021605361663888197996186526915732123057006632805903989405351362742130235559859511660369652580680176205662607153831516826181662673143736056877166516884882338715909947561201139959382492820825078885023653017094423787689479668157978903397699972649170433991194184848231262461866502159042287266534239268904734349418377099565669595344329685276675756758959788845832948473357529569898265457354804746678859802483878707664261953579406853571752929819420492620838555240143251971927646909182687840872723933485919990303351260249720406953403793333574132688129561159648248633344406225505258876212173404413727468340245161929744285915161478609120207801211343706626407804439230019480419087438237780024930191002960123855123345806055171158596179789735020504044677386429478146098998434605532166540448011915027543933790655273252633138589879631299110979369280179234354322866993319990912916878860447918979785711535841210788234158595805579487198584840866547738248661176086041782368304047954312105328665061328356533869261119532759033525601991445432630015877781600030519882221936069057459699111646209384961956996623657478726046234835365677508976948113908532845582253685123108751655459134973401114688626656340851055930927827899424918060549301085711481040596247369574102475132891638159017229311427789260047422670499730733937003799792036285698206542776563572302948641860547334570963916180606184505380490947804311442481034876511418947565454497212359224169249149108129232602985741622707045828433177367975748625670871571601566264993635858747225702750435847892797109839484224961334460338983783113080055871511144045581288155372956297181100827406414964897706368944312629686421540940834317375720876935734797293474713904706698144055864134351193166659832107408810706717812933704622098476645496955186207161753814080319621825012350145090154088626965931529183685317794356672084643093279353516678751974204579827645179761104936353542547914575610946668817572271045052792291438844952954068929616252342725781823963192936108524850776034347869092648877193013546333644637988225310461404350462456434224344977619171129145968344351240438946213138372639584276971209326841747453047210659767372496274224820849467613698395441404163550529600252820799981919843027307434132174363600859578384995617181603646820872824656796709401174166449370954119566966300794707665189272942730360352759754763603071384192419036152789698487445476604345865611913013593035843131091519565978902845319070455066027768596927186122450619219366510887418400560615992409351239844446931953064947268373475631435533551026807148500060445775265348554950373919398257519244111543695037264275019207175235672091977569683842132050696371838021739136373205845705123865787390467560850558758271366167804329173542263296424182465503985671506679882692138397635926206490301790979916056799150746188179160334194300536324271269555295884122700108508132577822339399588230274947930275520933780868158267948817218482831198657092728175365696130201628590891189909105208391256328275118772990491738491765364937432218236783551088112623522377129823967386265024645949292619938427841226447681535949162272203655840430798218220726031252018146600730045699981701718660075114862797194802400468034405204063008399387915607429949539813723382228499746586147355754832767768805331632307939607024735330675054507034691762389153341004672171729771711763223089807014819015875082448025610137238452018379227117177691182818040535096070912813488050246541602142838959183003501107738347688248545509347011152120622448501745245228072599061449265003843222673655420242324597877861846707318360261415997205400270139819442393829260190868672397490783186327989817562223519945017819339557296845114410947084525081836204042902634746435849112547591551997411386988072864090145704001440100025374749475362352500188888168784580121671741591786507841727590297725687629817645690090395671241197464947097903195156038382343553228436646160950284582274961580979898498339542288625767950941160980029308647911707385770891381127970071277922037662882005009831252604279127162655485848259916464811633670539424375471424586092180823958594818070035205843323215810820261127463612186902686966913247486523165054642846945153477251501952325177709155159353086010211924338176505923213789032507531062051136624962814854104793137117864919931408612896023615492326867140960911244092789936488411450913309479476782174010276636342599464854450279465651060654402399947265084498086113540160354054363646762978719709419652466990623437638914484015510060801330967532348139178381975623166185380147953314167255322795554350336544302354049844884636226788832312214904966950125001107601415635937207360966280802520536063889391267652951735788703910987669845251343530967735448900395605170902838626851587872528235241570285520936529156259078619113072063714012364098237040392204221292168144804016556976387998007176740908161061162743383037368126736981891402289417664644255288289749035915669038705740357885223875904919467340360847786039916178304785292662204596679257690874121958477639105746168417802080946705276424895429532674503866047086445447651530576805448135655103831372055744987960571092163095222122779124566250215219881427709354139114140982241259723074625140559992035495050057826573483992249230312292359212193719541717178838192685551574254808762533159657078782654981988372792245492696869482197529182219624941380007388908160692249164981905564556210833730417816911163772679141137003067077255630280370452205815680025248928542956525818400325224673944597184423715134616820381848197062756800008453496790843350748971273687975459051480950488341314816389796447807657403763051070209654736632985655518274561885594857773420533459042926538257196493132504246988505542289655255491530152179448094831745968685248402782531117458926195328140074224895478520214523029052364981031020661135276621282056463615210127202111912751720155942380070010378113957112729342049677931963799188541959223781012998103629795248862084704669345548573742770360428179991085066559060341685087792358137550513994842682541613798716029416159961809358244804624477583974999573226345425833846384978421343202783644205756028696829069753936846979167471208483860780818854765805755059980280635510385130569116586934370567961710628236376762278316823689476085076448345259943559756216702539031740608789380228730903863745464023193203978532395219788645786962686402438269001096949613613359335994502093679544390077571940677414180882805019669645227878017361764113831721960119004183485016114196775222462564745657276848752225114165965540939767472841533993359689824349901644351055782224371859409837585108917424302310757364211019813052479536723748127248845060195832522158754436135619598002655431689345356319557370704574134267938844426460054410064946475322226331053180442313684060461054678516624273249511887800070166280626403728446403729883628831721521007906006483202112678697877582742787592878245353212193236932141356651394054816707653083084275689230118155046132822498936677666537276463018102882595826586034042439080245124349794197264212517006810742418577537829656501925829902497702287617333301030052698856487164557893931269490250747294470882268509389358807679295785331554740701588707243224494893901977711177170353105556052285522822670790961070476561713838400425068311867358031986826625235254379480829100059899130986109793489423425975753561271585299448417725158125728359973430869146487990174375252373494143558652752220786494848391194440878276335042944870952013244438737331094835732972509409529208593761598432862284026622357728089700061745321298990413004874759471206926924688581231277155748527809035045764988006932648367988424871570586108159897137147956343731065903511029162091394248685749291211380300291121225601391476295715403823196177396221441734376895002046753358344790651031864643535707557273799255672524183333208607254899970093875547601617044702457673520609333441225686211274466668176845558974702831868555011262489922173031725797980097635021920050538514180374756557266560634847640443974838377391197057735844539627429582742183102465128724558809896095806400315191604984816820105756582790621107202697911607388212518451437465275152714269405576484246595213760882534578590119029092033433370953338738931746251738543391701982618538249168395657401962144576116351735758782015975281219105680650793325991404424418501187494125556911480860309415620720696291383668024570741576240032895081954757637007675519476155788090847789809851699507773238139940253969245572338711544843170715344636526165867642453769733722902002507811423572748493192017300531460255051889815416744627012029281325585438302732700066145296969086300423789354629386386566535050301704583196677548888523270377473486881923997304327675750808520607779984782831018914955407857710781481600712928372464969774518565473194727238153742486646113092969446282988215137364284443117618451965250613570293706991873189818369592445363831266377774275814186486516622681452798751666067911912902984869484787343494619448839136118715022567183661605588283150984560539408522975987185418916186594692709738698211069365635049157750061048096158956957140772970481776545202161308809767821088793380936781614666983898131634162031661897921797132360033773937998615114099079272552495133437592854774487993386798982781293463507918684579658972881692535671917318853482800328856314629481357397858272849845000453781797295017982567547081685299426487038692028188934844373857440981205595593085777847964404930272238198358020457594442160836731872260547276392502120384723217927054890201590183273467086224423804882254965002755461748355488962396790213380086454654567413074596097775960986091735409656407943448040759435935066658157249559325199954893841818681149448287971872046433454816252305463322684448049930968946667467131316704992567319981872814531978329323180225706808560850283705229035796643866713587697456001635007059669509570195082711194274541799598998840570749589903390611908097380400146863802779348497481687786736546197111167203773690836319952341661980456867149849698913052923388977422886545947863194540842962393997330806108826626445839869431326653227159272292557779606182439281066386315526917704249413688836092711534149368121347526687895191078581403730464915548537375184553918209153854426341447545905343289620803254576391820533026891924856929621570905761341388882011385774623461880169925579713862211057308463591241016394635997340255158035948223009260175037976468296996807245891907878728089263004665921337632684186895016272723464611742931396054903052202983438952254159945094377566432432994455382464873480846565774196323828118186453594787710343964772055609404044907921364667177257911322500206202444530801351852780161282892050898348184568873609836760519109682944024125456348437783711642584406871400661977903143122917430840268575203994182814704037788546239918398195696022924657409082098512247266101075057865404531721149081643168196460411544907538069422262541750436776766182663023874130362142733575011940581865331627173962658298076135169960474795132184184943772978551290842097509922779878645154524576219453073582143083761792059658839065644152556231687794746452669034854389195807784611575190308531239446376505217950477105265563687233690115465404742139768924851944521000515391348736161248121864942693294424495539186731606348183762513086235298479128316144000604369370903590215099683442085992021255627364423777172258788893175283779554484110762621532458641343813866362699758434782778514168098817390420485442614814314444530674796439018894753855914486860326537886002150256077247817306686094384862526346596600637539606401589989064770125703550790020197816580527750254977810258016278739388266424739512717735416997758943812604427680675142632115255987865416343776297624681193895442002125897386018393392859455360970873325394429869009365377171859529069723285174002178207437683978102889824991706332491126303426926213555369213778368125309962664043161922500651594807958760322792866183927746454332327064897046468864217229803440086505965568331918677899383131681608289550498040707341683448137299592913668602364013642974909044392835308039770069621729613671883593112468674650021523518155944468783185408178405422166632842253823629149001007774650693925842805576256087107985052964370115941397072227828270763602764760768893652770202830453648519762895395292874075738859458103298717746748852997692360920101047036511715707325470841306473662201674972416414330233744695057992484531630281666249133595265429607711665668212460549403754143060025510919549766979613800737475007037678548721839818940057404176105019354245582068296920946834875404945662119675423402301213857699136725899852575771213195632510816708343059140115620539067687553918634686712766672912148374748664311878842814357972773470348588904701481528695411919675920234715310066569894279540054643896854362493953672910867499274985023249383657982276821848552777588935734863949354937157304404581701836082838436747960590317128187433395756585599047780289699629202017708611365429596441814168411718043077370784523308252038473863523387648185125936108568640819000735564129466057352958263521492847933548563845143611732896362535854971623361707113420582457703141602778524483428547907357716978547881492284476954371920295389561498871392175110325483552373463204488176463178533508637824646305288062605007954093414892347063407310492114699626875860940822409530909770747282668684263981607586919830135199091364709341949826995508699385836851686440416046617745873928678775948220406203878859873284293632241102213886948981731110576726538087013108412182832816764586705374803073191141222144468803235878819812880110835533653158163098767275698787838074874487021715263413816546773727949817288149532717833220223698227682766412236355543955424098130675916598365124977319714023683471550354967681799109955301279550138144768542667170999420926262579227204070833947173100535311314428039143335080516540521948414538359288031338676040616917898538260093187245090119417668550608373720836719705436971453746486758304654705223490195384331898826858009162359500507970333258405847541597950190109508814914438224310351596225017546133111082719411862248493396415031711378480739375760362589670008562610501638390974546300467907741322027492038067734586511131319403403122679719807719964841269670335762618739758201021151441497806838378608150030818807140090247141488220318239786767548255657834168571036543893100431818848399839507614304870105119483463400535797582543943565557704000287703514232367517251186653095906730798200063788988061781516847163122632568697619668713346806848592472955828477686473457288567583170321898724894172098113987578997645657990732920746818903449824784617370846526190749325215030777801838414842889465425819521916696849347832494612106436087596441291498614752330874922452530383730547771103094469005926685855131736627084115460803608324133135065876397938580051060538684099867799859786294073324000222666423499208210980366163151614669626040266813053083669823189591894918078204562094500047442863900440578777048513695746549599873862428876346118981608553620381192037158799988034383350761832632218784426914046109263240986951453279645109444426292675828714900522328290375397739844577317598472638212026460597718903550071737296546505433067440215169298835066834095239550336378319037376064083620433153470561482888330748636423259936763341731337519855864352725383105854114958504353339089850334827504503241515055740059588063247400431946387795407067818628439248581782156252535982474467481763385560649438004239321482921525153306041143387119144772852211557855339233428871420616459182243561158691479489322633683405248736675196291923135978179217498766639822609262415259401330676506035848449280204150772475932897175215075242075500085307102027082237946670324051951895204622729142595752430218913856649115598154250707969390921138559926390207068658271916284570170589398604393510189281273114454432098791939023422464750489686825450319079068370080405014532056468475940244528996983541293251357720124227827147832790935597070512687967902696568405240992401071876496639863853602715771977685440131290583734106744450719494204481903784862604846420534373352408280823156565753154131812771192295874155500979583010379342082010459931424538249093682952848461690315286456442414309542101600646310211614931795723463151650721858771280818334445306889189233218105743204489280761431075401015453539370843622308863796299083443584919365324881941718545023547501039000198070294144564405409055367804228822536004071829402114160193830007205919179083312932514261415554455891797358688497451875184917629309191220206880629045147085382543187073304923479615429464848723140935402013585852690694454703561354789183459502903237602531945351740332831925098362853251520500697211203194104202637051218550484556233260430552582500191091857943619269313433238556629683949512542933733704894510284614679963941683104241891243425536438921252944020321374719657772329391367055081106474820849056592348723855265694422702243302799029071904731731404869012475650146847822259710987116927435856881195621734848211283942164466489321806271260893685672294881140130240764701856435785898841568121708625808654178594558278017390656640477438582271204745099541529642384262068555088107343734325898363463250116804101490884576330880763400808990338037353417015978358399035522400528674730315772305346689923119307143375754103597380069097101756643523151045340245118186892788128788952927162270191486329489111507623602515578867427990079419640916460766789749839519034122186999339824653474006565349174171416318171246227543715209809953177308718922977300871733919471562763548393779021457062402626738487003955365157147202239563924179535881786233047101331471818741369985330381970761921265265004632100093556455575754220358507888056741952338152718995674122634832847870168517740197051801071912540847522373704153888048990445761238156229099036840756601325956866729772030893167288305971135264320816262765965859197017368229710880923968865118285245517570442583386988504006854139776169550453398787813929149409459400383308254132285729515044060332667575236662716048535640498701689089853380009277614637717281302524050781643512284033151863073420768254277813707776749568180881878261099585842034454281462452431723640173918013122014290659855103446556651067555455575287574744067486190490506351140276807670983545740881508387406600173909657532882479679921175537724107859226425979228529112778310734172196503262720847325282541818521794109476460831076310053888642962114479080187670611567795058209590087636271203778123244921825392910620079865059800639087181175470278002663130564527734876493408632422062315788333503534948031992026275067366051271518459388510457016894067268741445136669344352836070863030790344074784192748141373188610971033759501346638272745384745094601429097525471468594716470711261595154431719875205018993398602470900362648999361520297324221973228022439944400862751516762474962936554949857512741727060689499128772415879441255253531246906177359262839363299906877339720668247532424018009428934535036459609755162690508240607374475851813280577388081311009289248505378227716406302698225755449563391071600244510892558489200702407451970742509542270662743961499902152187523070059470137541622277682184385151564634230369785109787063135669690933502623191141949947714258634441162907830919921536627348921014688970530216373705038540633662567697393679479437708721492995550281094142621932766708225357513639177607528299466999803128461924437682108636228387860504976411021292372395656513826254855781591996195554864457923805190140450764052215885506948730571371008627104387292870478231515703587650474324608112723081705958259046577239726663736433906560471602580302681832312819034316613873820865223791482589570375849166002282058186418097235892198903977330152527618066868034918875238631292452910720651058179540458763369537442267787985785590984976007918259118677439714834714672750531294241771327374021619837892773843806741681893275307306190416249930271109800829290044357137910210154221755075120879790003936274945037238286350627278583490220294248736255351472078810757429106676641347129154485246545325073319408639010230376818673774153178257727932248829654595981238210670501856162002986527184171340400742803705204409362518699674171620243956077326742532262987086994712211102789679293409477023019671829518072295299326229336060777383197285780945674566130919143349941856335870451455027751991899650437924195589673973485149982821092854956408556367676234917407198319542519923651309772809954769289727978308361414102926167972833081313214528318584378595033160879602572073352567811663994929186200409459678139629649974652560932247801734990134463429363374780892538157997500496272488468561242667129012932201382177178052622358803064695788309659690321947644823399585220950028803182717300606485057793346241067059588432340840183069836044540526850639331653406843847420386321239683325097886910438600370026315416149790082957877648200446863240363046500763526934816625701230130954824922226747590501703182209689487821835729611057861774963440838160530074288263219784913173062240073255389960155748424532390171219217337311313893949727033665260358370724269942656334940069843442356206803833981433269244196075292464108613869921583259278712627804795158600170880425351949133580605246981930249674082513421174627102600900583525364772511221205586847537456332679374012016344098526190199338168999732715629415403779173506352615644984573651365133130476138231145383634487416091677872562285585295088409458455216165104383453907155610264471444820330349647815354183984961778661589371219413953335597882020752056946166981737598703288946541368138979311371682751429966329080828283193913328498764971454354804415244583417092050003469270676121278059428242331077536879223802694887938385826396845699723593495652110699513459650881416270115366928245896767803308118001590884566584244497666852709465958506818816627031813416497471849040445870521771717821609986864152307120438245246403660372839127121114744721214221700825190394334571390437007317108853547775183983964964314014049257511048928189659271639454992060210534802767865567235130488038412545435106680609925460591735051724446974718368277958940891737344853974791474367006127026103480625340688248182261881453619782120383675424987072729529070024464197374983451819697388358117856361393492567231221865500592571360300373428808116294048005841415298118430430374307451670302289090787889002237502168976772898537060091570141184333830331441005510742525180270472861089024554404528706075418916690869797822984562083308126345448698605058700656547941661548362071344147227013980728474132722898615805495409992124858765928966854474958909102018468273945502204071486390420047549246030791537464139884037619538392946734441446106162673299654584925325527512793559431465247869473173796021626916851480932045787066428762404835332648758728441104546747439353479103071240515921566718825910204434434161211535627186584986078746305481060469239517530575994624747902443349516880253631876192754604754819473776574789663732738867816780971256876149662800600324070543677031039473430937976258243641317126656111988038276735447805867406733703968778350080591907126026485076571921670757760020406903869383220226074689354245842929432312762748667284021022814378590419134114492188820402515930980160680087347098149867523634684135445182155568763896783139787351559027870417112894430950009673969482997819487576181960925730908407981790512272803305395282951169322763634161536558226419552449828797202054223752006607829258838091755194915852564184690057717874705563944721020210550866010057854565927457226265773593249709536665382899992588664109969242166982230555977791317692510636165649845581806693091367359731408934419480184879284830818607783156421883606916226414760486979791989730255201519707190438844321574379712237662974380385549048570705134057175275767615632310193462090672077265498197579877826889147863767123373246629972438797524219466747749112547375079566951644285871495322329536532692258882357613330076987790389583601597513527113211244442465054428518584379153241041469850470768058586212042273083593130863278537285368809364409893442956402225356201362836318255959440239781125008308831519483645188326474609234045934117026733262289760950177421267374561609958380873775131276249615637709782934215747460649546776460415368901137052893282027687157557303588486180136060353820561923454238116751007378618086661938993016762794540255472229195076310528075008513822810155056539797130630166645623228436040490044312560633672167616535513818548320320689112678788584490206492095055754163259709974167208158072605398970093490688747136656468927388117584200818231871712148681231804926484953257831449955504621437598584940787911830956323666741382035120785972045547709109484128417449681698858075389922538286361971170671216891980933777049835576915811987306825332178186407625675592812285863157188155664027369897558684881875528272059647672888734479782210672151658931688507479694864645373061707652779618119773870040342992411729962664197284116192649168046979578316043462500193963233086390926922589097800340457431396460452260856694493423168025921244416566919264531152006732482584405926217146049430217620252798190567254593516083162627999182852392883657250670150239262189916925680054869874455682538606728861342198941347638946736502301156135220000044936636195398547437250132570074265511893269000902018376462206002395639676717451386876905902680223593487912629902834312059579743736668831206770292306406719187442234133860535056310965229394167675245451920201118002556550770130163646522757296859911696732882213739658708233276479386530448620774999850609378929233789027424888584124536968501168849612295111519339771682957798017077006599750880677356752048856320943334330413302268978272688806225804326163844431030015169145197653873714417691302234461610709994532493756424002277650069396227346627230627953911485678207369320938677573568412352736424056860902678817657771975814936571074805870483565914728031662606633810380598436280468453205316286011803986437325970264432135356630103768477136536544559858081429670666356646369679313741748082789876764087369860055152097115601618118955034214426520512885656787142219674948874190750607603980733889758135820044901912266195669338064807564354511396509572516435292380208505699519907561205508153086184364117105615353699275858370453808177517064194334875830867417651412018573823222923042545801183759720690443275227905632720590108445800908135829184859553582194501139263063594872165490140635939017460839658296455613668708362546534154049662967253905837989688245821736918803042422273183122693790003460105880402774188388825712042178621075315170657046399865934323845030827662896903962538932193057211289430466569319559476909356285211184756859271073330401112548232540419250846713567505225433293949450574229090567426564185105064692908569743198971349250164221653655982938627023436591731589871455367077082823223598090649215231720661589878588828619308849190630223919801904998126440463991224743236640203072927950416894300182697371677273777025787587404156518195795767422825161944262002776205049882302003022834396173116637052046829089126545100129824231671181062183590659470344535130700293374947979260786578207368475618138575787345419189552092950200006590579220283507569873419160372204036175311467933236711723335069298928210106832575257031882710755939840830991155413384918422769477070536158712531739001756388735260097823541530682992126440539708239030970516868549752114362553520761138765225561317804962119578091610126194521646050405731493319468732249099151799598426241126213481840409528866489429581296917876143697325472855367271695175747998960120540475485253909638920366867939099961232654116694098060137975817155096842660803298820732031379060151505559845281730405615356215129053778065004195271790420880208786800757299645317885747741858377363098162959725167791938532169801557673336578368503949887682656698526133757069732676512501666112780237043604269867004186636780138624873627867043151282552201614456494525276679377338790423919177053764833773933431782145011675173961246448941487204459816204650607499974755425619099418295684095458671261227956969986462518818980185464182926450877218816058308659594625176925647841297985577745798004007792246391512874885794454450306119654746513382950194467038554002876182752609196030108660319331473470638779814670650051160596923608035980844805737558563643215301824759156958492807748517083086110060266575631590694629520254810932896772029318072269797763582199859302508255053463989503811890199001455036051078955031689587023512420848451400757837887831684761797018325992760620295231874986227218464289880698407730357272079014931593550277582630010324870298747056855535648479645869361806481102606830287078887864362192952416776869412233287408106856856674284467984904941678255809735161641242185807698875899670352719206503682169703007067584025248584715749338349257883450468121892905872559527052586559251107074253887310788232966670454125607240484198600875992786846917722687740219461915332341860724050962991438408399321526398514514167009108849773134671406129943264864975172809144017208094400502499724372398722585267752994252236342419507966285291636404377466824407613784911484246472683570405659347044651942973686522584797791473867398715594446215811693263970928694556388294835996611148139510464551825115430671001021377965325712744317722775444186683791623199721628675114152788208210486885054926538541343971614335909135830089839849905365064269446328350053763365214477644666950124785620750611892068458876514707038617010846286388471140784674403640268419769013478517435022448917275929623808313406071593809699691772413196892732476127474195349438841208127963028019889074511225610374468464296192745717810237030666806473741755581493868461297502104193924889484818933818128419382650567896613917299396547207892348508793380912466605112914115900301454424889251849053475597951505172540455316716021795898286073011271952267558541812178554513287543073719935016844331473186038776379502021798076287616415521388735981816886984831558147113547745973196781668341443216258618402899734284731626566362279527454283352155571519257985383545510807640666083287482199360136209564819826071997691223619811806108876857517376014168789332566629636282690807289987142333277707087784455337546268261129783458781738534329713627658421429460488336322112319300760025358044086469072762833163980353813074248237791924782995640917504000393378403167116944194403824177137668502363660722947354891570020051591954110505534776453301779259495062177597020425659902852699877384604369205950247156951935969473835408927912758509559671486423059880664584152493824664860204748519933301743212791642585578121886159798684934978822034077687330258986898960162088459589117580571326897685478740873924498156624083658584685254038196254352778808923307396539563425390398672104377659715735508141037767403488004895661181569079800873249306769398112380495401504291533897278753916171744901812348379704639999709320524290046381065760073425459901628265018489116144650595193325045016926062459825181938844195235474988153626458818230479897172863162027947890442393194814529085068335364716851772595247539649984926838049756421893823249352885208273376148944380267218319924420107999089151085547716902300045395183851113992881113569504094866652277811091636372115614478438093868262818785482810399129585898383444476676594152789353963060245224619908390603557007481570410918718800085061176753163294552065401673071128178203013578866477634852476171944712691148386122277721408765284817345199279781720244350969535537104044802618226956555447627952720937985361136590506937520718830289048097119313473762348691492513503017875518088948327483178559111534375051637602807717851721339186354490431746452227184790687713949601320716966996010640088821081218751008743503369041094286101817481901346509818352334432379305645662390816286871374410297914295083489336095109638339442901350717455313067070941416892009366923602115542234270822696438226718831885739549004221773632413976770764020508018318854926400058131668945538790498782650742401470143951185023524544215985644838068545598288047204671539068058302686542505732481293163117698315229945814354678865573868902172731159489894686341537545075994415502029821869457671865509426358094408065506362682636814440947085979641511881845557264558819699514922311491011979902558914192662029773506274310674340811104766627987657950459177408546934792601453509914388759525579148596208091249381444272640758805967348699371370635890814110314392819574475469953820491766812935645315940579317097975114751516662254116450028831585094917009081353328576613813426210353083164410253545531602712862269460764914490602220852322874444842948348141456779917625481792199796762185666931970939272347890734956249411194320269178997788024430768483405239472002929588051390196153060974746846221175550260650344562798056531809133647694576976316699182499270881112269283721685523082497457030534562847375398638499809984456849068080895531407247002422708844315511643049461594218403320699361480132073671341636163172116862909787253264102784093615341806272096494855869798925099229459225549800301288097009347072117817344027229642948813997526353869561400272609376217047385463460556043498748343156555477012006674875253534869018470140178946120910485222548475488952610689797929168719361975562057969500707016510619398730068378356312238434234611214196865363721921893614394623700673451174509828102576838081766091994952915417752396369345750836908986419890213621124183350273470395936287919686588420487181683329031101961884176719522507681951454646156092050900556477178922761454538738693343708487192709961447704985085761360466798036800820297230026781812365357548700581793234176111713026508546584741241488225436907376285268821489997140701689791907690118370071811364909380687048567988825235425785677216129945985039044565043435587308650911000999449716649390656776405587302049111990705743258448555627970318917531778802661192438930065243350330289980037417222794220664448122806173152729251256920078309637435235015804402934658420371622015079610894213282701722404942532078166018068229580543121210198299996456696432481616874978290308991863390942087487327722677370817555233521397470521392514546339456720235949276212535007725440458116002481098708445456317991024021029767758367548324190945055011921098210704802707792916648621620155154562733984894412428396339230650350732877443748935243816620571717008952168564865178265963082986083315788767579784007093044163087153238047120359159535008976511346988097080846871848129067491449337442331575499371986945050588897062118676034364742588462088830667208865359542276789437216980944200231072579103016519199206964923674939371525526526746970177296444908640889606517532625411316263818763526045940232536448097140291473513787907233093471847548911365899538216190706495815513051767260429655667006489389467751468109776776304941045399277064669257132544003103577215135712975140229623829519007911548773344247378236629184620492805314242485303873264758706945199335649050664885080594377563685977691666454174976117074440456999531906449833059800665759828909009879463348613176464079974172458252178954655258323838122002188373550720926301259878373683235153288846794762328034395250790515538235212884864629510128845623834086830368909657658303228362715802436976200747079479437271904177547160515041184670015998622246778080084402509621133096904841259393347637265389296392893273344819291107597996702601697292004674631373637999558804388368540714590399046892639896107491375435856059686809270630732135710777988866068486032808405000337243683728926715592472188925702511400152361486914197170062414580325582755254447275252338165039992121622356614318282193524550456027157595360741048718426601170191224578117564115427075173287734712734783651190007086603321576358303136077479728550240295417438797435680926443272165597977871562730949326745200125502070032455450330741659390374167583336289703030593066694877698844615644406300390391540314232617035006469497216029540770060572061503303826509839459106330862286680423446759967135051090746683043472167521384676435993226926528954311136939430947840777351477296748290862628688197412899509018237673482698966206091923191248376581443775600127697386831742559256817676501846485337595866988912602158957626665102536006968104284234179858725941441683041071849903050820174531196874847263978454055019940754163682550047169161810563825188365696209407887180633061236828487534763837611734543398063694897030037623580705217149254834766439394271706674839551737971716250664406059407855733789746426083039720963999525560055445613931427857682714678557385826514346915926669447274696648178768989135344142920044999685779855926819385049092929816144499738316471482947030084738315081069782204073315041545487428045785231562791802240853124675167895323882047043481373651513492166753879328041179509594202822266292404592787435719825022137973890749713192750374217391564410319760052940234731644403956104458780114434185143488708980372183344985331013089437021884295367187522255460394178244239159906652077775677388981290578876258537164643687516961148163602853335374650601094134727463859663358401430794055699388043728272522093382851128712082899143553416761225981858811904334877925135684489307406711788108733462929261509850984393797189251935873736141150798413538322081491834335236455576932236722998625677987890979858577725773492910371577756246677962173238902428908867721464706529860153197023455814332764401192796522251810860305976707771596265888282161437793712989403365658417570719936301557699390471031153548930516855136298357702324948179764388890803704608728547592106603711919688963803186626485695249351474393209672062399751321268916474319834452140274589535209695103818299033467977266626647128921093200643721364674284117435032196156053471033538148324417530230741304094118882652391560114883925065438364184926089891052393917500259367186944437064350364475049339234740218108007454817228898804700798834510113023682899882090549483760761978750479944378444199291629688277232928640433945669029622512295061927502038417361131819430097029258090311285473588327203567373499829374449836118346925188159241404798786145994230267573400203818751013880615229001402565986053636792610547076022850467128156917530803163542654356419038321428830617268170906430976349315364486064094830306542227596015780666529066732520397193433138902948455343857458535693260570364054353934744638578934026811699338083209501967593033145681230677715717991127716688527737046552710653759809939202416589785889611008573840315523165309492766563995588594689834018000549622550276646808098555333647985516656837851385168733687357138181142834973970040492024353986860333409292886126038966768574666918737263972647876179644169246387287596111593751015293515320950350704281503926905647246592296676570627861697544978193664385554980133424079229478132098572353177213910076729464815317115416170638297805497077359972719912722710030806861372538835892519857867967511508157683591833576005453669172374061230594135171399420684326122345702216139416631079962272967397305502149935050858374592501310348075312858245017266196735369399770391152830693669575023190743615320396684655193974731958591778474278444851248204405667758449054520448594246314316183868747167918835836450461050227170563871604483704255400405312149293614948971417820520539554953549488974566870077147131586429785064394944667160823665008282462567014081321924948324805757615545567649880689395216039434848498964841236734915112036991801625322867826249395717534698273668881394513824730308487141628185801009257172735143766316452995483245917858291170226593930724938052955278603294602129361417465154195830433356547268671183882905219180767291650719342996504932692945623018090141875167617956020476616342025340952626741957094063764356166540479081147775758404547860406175432878057411515674399497635754376620725958843723196076988011825456801336951672558735250326159002592566009691500125269014766640874857050483692581200737268176348640854987019098271798403131073258929947585358797715432394462966788789785717043326742686566261777073835806888229944128852111522006490115232667037464418698489410734958521780028484081050128977201816124035822567079398326044426364791316393827141064890670660324725484352661127079421599732684124930508241617507677329446349434467957640820839344902068461183273684664569644418305388559063245231551648030091481116389536895547475191365312807194054653376913462016145310410018332475972958795659475111192663943713429792945958628078266859522672496479602535829448586318644040643029795041926542836718528169063076477981346032212131265055613835571452724083788279475669271684707389348758222462426972983467888043440588315497184823946329567795320551441676528867319227763270073415937367644302692635321139296664099288969705976889379524661468886205754929626771141856814784354002864837655631120950282622122701759596563916437131016507535097558082449504320750678778903435589944686839455822063185300947035472329335875971908511728838390987829228335129094762229820486344371913160740265743094435720233445271061604704365069162609941510466112126448410591731919185549424449899792793537996215987733151003416518990423828395249220705746542117142759816269068145332207405307367894556212724098642288816303384622202460281463186038860773979546872520427477172319152721633711200035734313475477659444860855746120657563330850885782887526476297389724929860376577097301746370402437937466273120861485665064156995998514414259383795701657250039132384354455322939987375645605803728004458300383125169292717293658116339889413976446354117897610962436792203261073902806628499723573495222021628495158048933400018835603891826625200724183067386615895244788139845807907466089785771002677605838861436968174187467856237745727118752668041478721976319336230012637984969661960973192780295416161097729700346149573800101668751066095381005417531322748912740126706573611372250706848238230933386621844225718628236694192196864083870457473679745947345385969788511093411087038505386376499310226222916486328042967634776907138061114105696290289092985663302395961251447944062316066291574788563047665213370673456497980824615073026870925111549698376410273801511715553171571240381958408350984513045323514774794838370197530770266870904287907291841840605576278740554957759685849604282907163747949033335382849071091709136973469682438354598718652145338220614381318758923245887220300311879110394342300024679604234066923072680054038050257234440606658512524284766360744156759459740111638675219932537192076265720710316525650655638327516469277672293702063153980352369919417220548637021763990752881442124183463381697714723515602811486349371007435409203534788476458945020528300527675156688378835116955741866647048449879907336802169272475870830664457775034848423656117121728626694405978516076700533780024516104918783057694761627834837115030125873132943785634321641255033292546711233880470529332749110835393220780606906544253031281155446629228582335117370706489037618808378562875678956683145512704724103674379807849271521239404074708208047701351724689921386576392571477066918772389838271413039888915275352113838963315236127813077380376785867380405664377033836128420804785822496077025688332534208274059814133074504677490180088183895857736422068545553235608053494430185801338791284829807076494245536982781165518834512859200751144581313025009601841100588464358074936272244741594517658005414656543711638105852675891863408812986837608238780836721633460260376923595485728777316203000891752275739152083485447826504668870839367717045034727676516999754137265457238949254277691664540068228329975446920992935178465438439925940050020526996886513994274741520242548016295427142512102068864004265892511111622896163838071256506323754441767507365648647841795044332633171434729995238276513032868180621179237245606019502105420487833797606426426739134969132525658709369881374080097248336650330353887719269302347056150271611896114006564230944415674343432485471930458872497710657410881437087295921170020605590903837870745322155754922419730573374399647865792901900610367890648167221339965926707998200933963761574002156370641523647765718458612811565688360859538828403545438983548241526584749874373767262732469009957574194211688324136728514961510037656162633596141982614341050609565997623793163040772063025903144005766448407082677044384496510374189624722678509650299536859241578799189691765815119056786830046875709497415435750974371585944193487594442130646376945050785969434168674457345313850508904587648347741055187888967318700114778150821752543991155189411861713678233120182784249714451407720285859507913470791561450612477098003704542950524525307843987584396436530573794406225119263048591907669579149098598995503676494768204241201288672381612026544433400843272337364421197994583210291393149651353709464171043782362984042292539061012374125082541730881255446159621776977075444260839080868006743168169334014542110099523116823070907331806370189539383907661449483910030872014954013474459634451159904064179856380435826507731944018769078017705731363188078599604653581954951751866336881511653074737653195490659133191192345559729513314175075203846365706669727802760039997449321032544298554612714222534791168116783984306162501068520481584057747443136203610652721642540942708019022714135542314147368091772965266661443806521924849622406913290380952851104254178716379316888663163037814222742885644165439650622534741657198210432344477065404599287390671183537111603650366512557488217899522512446585755542080255718718628094821948507624360446148999604411001116840834955040040952068321395533044943899698111964397700216294779684356782338201959859441342852103384244736589245656604082547147918310847428664486412121870728978120896996529649630679374212797622651862168353822430061142055342357865933738256496864339105717461003879546547386514255303431365111515899270120697631286703864601352526818732121956615921210933356528081601610678500383239297969091913205348298766391982050491272024711578420529053312467765375561303574380671292931081867453507695286684027719080913060702609655766680673908075949076105309446257736812582248984016548237559263428813881487339377293882272460626065167134281300876597226620334920059688259341143727563355717509712723848782649030937635532857713147961794943498186922677272615692708755834829493887418629904078518057259471256134511711358882511210513350318696389923027376590496834287134260101916614333492999320137234535038329780382259104169193967331334242871990309568522849162574004859250241352603615721861261258049438152405034913056488476523966403196969511738490695919657050333429728138664670139280496935550935516965641613234243505382882331059261865950355575056384132707640839427439460215270541664804167193611784961469015020627129197199815302986750531237282425803069156281329639226896867226031387125704323773365595302980852408363115261188060388885530468010369681974515579217868821704509486551109766168242924297134446643239950667560958468553285970212154263562625286407272228380921486255785680414267342557869488374291599608377723344060364425565982590628492645365063286209118770403760700895883135555227609891407293312835929540629043424105747323903448290920763692285190787480252708155758459345275958618992165341190185801765927586884176145553631235509377800357042517537374315642487343035561372479422285963975609622506723171434791661287590224688320962957526934608472662715440974919269897193265696264912121562247392308614309092733877750270827408353596539147239092382916784965764238948056345431640760707553037472917405120255363946456127790487344519836124682654649565132385313680231388863899573665600555773777225643218882437780451587671495613031428420846509751358093182452739221702598472470418448975653354916087300711212192392730401048179790558106455171816316863169896659289016609682316259159948232409942273801049867684593710800771284981758817006476916418395790905661968156900823070735058720820695456811945568891035561148444369955196219445366058269762183405230383378628105865976247357264093913274760604513106052621295774171193720087236528816363146076189569748604438082684162560724464868466021968198056419396223802647349668178320615914530856147134635183696013088959440020395941090594467433105027620409983188562056504439200129354119216339210594720435437830364299612730711987306098284034796954185404932026415083846268297201796404517725872397789675774435890964432435967942495668359844162341718901868231655836409194975127161302523071238469862031324816983914917955936718145903483726918176074397587082996503264163253435342921069430527899000949563926239392896191995587051844876335942124451122284931792240680731878145722655121938556404104172057231958813798103340173563675655375018774516142193182193078160143763586364199325591765159854742867895706213605804770736863801886452654601712333683385813704382153019207797087240740904766729640620216013667912836143165466674545790622788327754960972050597368290666715647107162959059929045166022718254779328195153362478208141394748498330364262285862136549894423446300320404029729972221540322620373439413438041976976228299335661591936099657149779114829309877052095855951692013943505130729544619153643906902061770300420580022956052416411272214737410907022254197282693700659575706995481918387285214110821129164929604710234111133646464390209114004473722560615540131323283835738458282046193703385911456432224620427417922734566492310624276204363047847206245946584204666339097699407211708450899942558589081308283304881824028777071492346218998879115971397665437557322333445624734334447666415855812980248425156754096078971697873993692452635980275846945103035087106835513265525671482604816215933480393073465473161840101996952488771970450094129579328022086267579101080283794311321819619969993567900731077893495243564417589239917341523405395653681055698532226267805471347984293758460326545349298350771482530939348191752869141198529330066490661005301452352586978177624649216897184616277397158173484956035587799880852896869623603310819566903203693816695288079852065916468339067752530148691799918333153028663958197257953296377755400666348608695703221023770561835736897321746078189940092599483421198866804107484136906830446054933581165592257302168160268042655792193286423741440509935120275854843291016532445222113548305068715329797622314170158933329135080946279882782348714751690378999900033691369244963565062982296104426096292097774674208450823614787893237385769507094219550533102720752759114829746276925696627035512076214326075755454040744967047115897996807069098855715779528721036670492139563712193182168474171074777593876991536740231058537770349738754305106642645417090481633809637563839894986775432533168908684080333082847020024662373577429177145427195342013830820141613168735112910135513365769140327851277437544711858113134111273241599089885157400355557905136297911843571861355949817016048473403469422713230673950009080937865950428425461180793781407941004073269183755677441864097485293667728992482114513605261615191654341526275410678535326270759685086076874970296297928037405984605891861355332806487381044396589620951688884617933261043523034198058404052617476146268679920310960844963715645133324382076828169223583383723071420070862536197677523551355760243101572547348556919892324184046040712907266766004403279349326734381262792672764709067062447629640958879187461492095427129733136184256229320407066786347907881813326315478045287921453820454177550086842403146915398684133094735180986611071051256133273798527090277275553532260921933055315907495354913573617858511865204120669648685850226602891713714589683918310282050996536310822204424292177867414169624773527584558043048177766102636156425273732741444750058529818766471482646780860674676718005093922478989902259130003029934362791364451402494347758629762863918075343457484171549697126609348180471423670821308802600614428353300390152027977946056667881128198834780405096087375062051825962701428490870848977570599758062811473908476496527554949397591110209884451270666277579086919174669290635839764439341773444079927392846612279988634905967030190402683036264526303703997866419173272271602405667414536609222543801842605486044833784404235866544721621892374995665938201316786369941032431480625600199164223377431117072369594455059584638039299189500544504110039304473439881568476833429566097330920692421919401473013047126246789155713707518057479504877348185920298288834552549699351993336456578706487757671146009001700611755216548338034027344952608860345436822320198604741567612496972259661050581949078322517770881859124742215324964089933946272585034847049806177646567688666178545026704994066478709496270071921682507146819642443953485118182691022535165723619782182501411089434222642467776974490158660134898366831166601255983082963810493343022261221374515607278085221995062036099657224397276233004828941296985301443005525325255983550308167028472916621632183520427778292984685413999901839378218238422167272590267224847825598490749042628392778025977034330253546307866298959936394788322005834939083357239137719223844893379037916285323472825583534986628970000563166698314184107489718287448052924443008156935223099397082897084162429628300078667711400680621602054810919461039740496694491932453874306013137018958614226926124465689628819962844063025529973363268337499766689887012728876651580292892087714409398102628660728596484187950077462002173295654161445909831551900790481206900385934590043720968014342015845721734859876358479405865251192529687558363949755814394636200653050662005918676948737224589962970304575835326937773380093058057709246940038646366481870785184911930963110218555393613805132587294914117505194703187385276020344093889828371456872320653258921796090461226941157146232075441126409860439704502167822409148193615171316548741601747921778326309255216145309437176949660767411960259023770661385064622060586744767000457587463821215601007633398372369932493735327258047942567964006831703973385211011215801344877340083197589527293802547700346007510718665892149028805786591572520806650491414385459145033398318755701123294991735214784120547283842549978713287837481520901767122307696135499926404263259519447423859598625101628260094801812131018512469103326180848274922807734083971728881350394306940853356273216558602772220053838875060772041201212922829158555247763232127175474363161022202701156452899228598337513625080123001809961620028652758324344960450421513620322262722902972972609256443531034293845623310516864390631974282663482712366317567982728595430086484421875573624656491775174234490421681477841113401164491491774840322204714654938026601423740217749703207409243432776137595668962042112188498019380873273725186165667374230207542209885874086281302052818606488681054287761726076217382757621116857225798344830249142945844874050581060518022862216012055532899373660603065789941249677683605281985690538741663980750792315056705593840977565611012928124519368871126988222512491016847390333584215248925115297133255750796889234058695464454059587538269135202925589591308355303092227119390750356295044087297786690979302207595295344087646223848871146229663534005381556734674194987976913248715591433620202432387015061270279127226073768343368285504425330789639313786958487030327706035279080561135329361880084377326605863032859639831765356862295232656050341486287895558010517258923548565352287752798371255564700776106328790104077024168628489940015372823608581782292758077982432172062850948148878028001093305124232212859190767807757402425607922139287185946873008648146730452429380567722627615775873604664914681104995533992468037941211572579235714582975016986544650247119643274005159755659728970892173474109491818566071854575778544050940429220563090994694166440066627098392416975048961345697883528257724159207459833293795159436006754842170183488965870435918736597784590433957977002263591060709995226811375974344354788929448758873882883917169579118134468436051458142574990887281918097627397344373372475888493378410817333838362821814306843747257789355829241505059466396677609333717860254526929953125430417395684945897176415991624345888399929254866319691718100129973591532098138603085157930695605364658158144135406235768895182559975393320253695675240807590061332466324206698806461522967477920770471200417129545156694171062167429759886060507259112499205088134528557451084391665689213178947300095898334905414471044381967387387122372362168647259597337395130306234639934164667657091766426270919441774851922145352458420400357621394410167584740656897686471730642014780262495405315607820579116241685874812647255858550018064333945973194099616226690498412324622598661492045795583267806552843880120700644488943546896588350158738948604957157782589568596600109823729777960410685317685693526248635016320450763460730922747175120071588189588866123045154611476216821701843686625899594128109563717003174804912870771631679163188626222718100483937074141718525701932404039096753640300328539053324152165818183259104660730542459842293214344468838518715318955627935851909679330362681131052470945252606323558580738031913013128245559230621543663569754971332267773452253371608569090474457146889251329993104121915063281113177620236984913479534201189544438102271531280303907375863791800106852794689355905946536551546459230122939350595278083312464724030986680721136458639184246848735563907060417351379203321262724875719842532449178678255075617740628950124723660859447284388192799698137484195570005738412887307651499931757870665257187245294731131270165720030206102948638392045489434978155001533922727288009217766315954103165901903783056081906511258367107232807013155386598241980859562371893326625286783576645724243405431880236888060192799018653318922091480161647007949766018778908303680137825878670447644512336917684442893820034162545965379947848451666798305264932845891492364546273912459483519174463914069904686521304080405202962711132292470660844307514838397506801234344335738640250319143324480751948267549973718630988706326147962983725094732555246226726121166636053716355451699588659403645771715093876201827586078185858915300566984357372848811043999986255784969439565146868649039367803137860083555368613640048196005048903508423141530265398381606603547184763245056678345235432539217684945162822522325868868112561581956889317073492140126818847886813535815725640746366191717683761632945732546861933590871856756534649590270733640073107503258693477909593674374570657674976914229940570922024668163172846030855257684906252175811338286338905999452881112126961348642823243835621282055075428603206137227935346160412099281999044773092483793403270740678086033455461963321303933909553905077508546180318447729125585026717610198820388413713733463578457841119467802425349785429201404802553389573881764612602059387825826875908751167596976848788643070777102893595487175508514627949185068730784213933950747900647766159540206276853251267437617835137760128580035105467413881241716508945656332074219699165465785224994250518716243244087975047454277409303739063386932673338066577873380638495993131042372502368688148291150460879804965904471257441579053279279784736063778516558643184459124212216894536671735239608990210648832464441585496544965656817251987900923879984103975165595847979237037707687391951007080070213108400247903311017885341108067747038582325726978694990801545176559535726466785340147058641532710801828352640871675255913785123785612784268752476241512720779607609802181884570863581214376275555523756581345128888178904207770286301258263464649817412701473853487719449267148214570269870695719640812918582630689861778276100479360755724664571585745892441318091618416457344117257130544585377481427966684291235304713869850367584715443682384794188373649991657567543084917618267266076190565770489586294806924295874024434883381086642468111022642187249287584351412515447894574130733809508684570683319489552601856468898271633031830079368980844985973971316524594763467735312326302768235162744043869077701408651066863830950234381860456934174064985332106652717557422974112507865175116162874356494572786107092672787556620717471648768930522223036017522652448980268956407761628079737587103919987092460606036287355343680173252458912999700174614068515313977531984041940011330007718475983100799642915942147406706384720996356897546198855060877401687236057213301019440014927734151754857022787905537299898261879088263270360689134619652840407626908477956492710742353951919175055572895213909644467459223133158463387034806436369498725813045026285230852798005571939145697234864730552408643629484238424600215567449923411567653174483904572891721531966925416527128062967418259391076246716278395615843595427216885189780548938611539652749128096846822378345008821179574136337265617405045316196404615971096579375763656151134893961373123534886980897627838023678734527157399715128037366431387385935048872212613136984653137899968457332848397305088546752118151629536449547986367567521803884512384748636631953228407385199572629692363033454867008547501850635181483843007158397914285665923436779123569176938315066896451246549077604898956083280661425914736319548026708319711152773869560696029030440727100002033215305613296884262441596748093092455800831832316603785699843019850138434356719241428785339361088086002746844859121354975032036356612502258530070511440379043034614949265429671993381432171013031667727310591270559284556175271311605815101223003808052145743272921718648915886053129811215442281654513346828181541844493392551125362567848703130782215240130817497185032626336014214512147762280085200681957876590562933426341198890479876707616058964884544287229585549484443096491344487474188264243967544463831279041971892401776076067991376834568568087688660998884359910214818329224177601811155295807404329370215598890761211914063363893433824919300712500180879283871596887990977787976745382700235836701165323976026516563583521432727919906620145086648982972138797318787049627516306493819448758456939771864931390408840435222905611208404048625505915803879537042014423579638213368617894252308917659276441570776843285506336342824292670811562893824018993865345740304280062243004062779390415444037762608063056515381628398005897124641573576332057112553794638219077863808810941191716062678365045746960598307848555088397715647066584908515092192070148489336270511467434360555068900522530989070208700957765632696146284167886295312014897401379927049118703084408363247209104167123119646648230125841422302726032553806731178926036086466949992905291271412857321195435304531507461404695547231289734834963697471041324765751002188619348792233483160362270562936767791820096426582999875511255576255391412535674101280081031571891098703119551075571847297508617370766559567175321769274446519230704342212601643671661089216124600373989095780098523257085938504523296536376578916239014911603590817889015724065155374733713046681642914878958687152708703933998680687871103563281868430561939892345218245507908124728529454786718767856566338941215635603862860840293399372488067774806794376351901404517105289978435597015607885911126214472733253719849499559964302354440735796568204704791198938484452881985995160810871277069732864947955705992041881018182223706650229115445088701011810254683307173423293093761552194295373196313280782451851220462145380563611353208740748392206416569626101579535421108479340608477122898231117383936042467706353510753867206259919584120474215490916395827253695916835228984866573659929600833581637797931258082564871716548212275102414226112942754572470035478606215102816383837026622034758448020423548985245032083420667043881056894484055944886161200686688902658121325319081922441265646926447089593221720790719646059986468234910116826935915920590624663396930532371129213651855397820269564702731177540402927067051509475588340141094565117517308919072306763226024095955090483781809905154132569264715823370063133443796980135561284870349027548072969430445529998469708414200443481930832164583239504320682244374012123458058438869116356989637975966019464336702592338323294431857951694483353060482451505193045416479279933934374586752434355594065750396010919309208959965091560822576875042749264533992081522683234826563676838146704379469292396888313217654057316934634976986161759591488943791547854181490883057772837236571991560200520589749770188809951772788728989387405366791120395794829224685379876785848956751745533205372794745612501942647204849302987624334123374704038663249995389349858869413086873614701449967491965967831645644021615859176758089094968518160804585623536153485786376578541998746065383447150413609719152378913579204533375632502945181565015564564619570235762604789123875053090750646932453270946847404118983737935241851083569158124948102014192606586683939819105564749065543907197533010595702228713345174082558592779628279201939674664657060864850254087837743490217563413918831373949602460058614060350537348740700808625916680259290349015400876454142675483672921315562688072681383998776890982203149119924448010841363193755078669774977110262246866808744817255761960858885514566229641850628574304330707557382299082163070454931973224938040154414918272796806266194437140028517511880701737496943748267611939683629124335307164708805282055787419085930797600110551272236596121998622755542570334547244433122861403867549388041541822688322366327266496854870489983871808929182095058104380913957918500820820819906774292251265868990724934104212134645136281758984257596886528510431476860954646586651790941098331566730054290787546630275849338824446066898049348463581580076740688060671944992882251966078964489055003316005055049145502757504811143170024571631484843651631113761165281603704599070159776581434594933615635949728598692997522793307873924085551757074749034013848403867653127565214751262119690998428356710719998284416153595833048626061132776565699790145305377057343341056857351457675166597008574760448714054128178380195816588622109258773036894447859863350975009261998601346794457602394781362223599506400157395471846583111895011351652985695948521386654369308487085882483703037093674246745196297471488156137375104475663911722697423382337289063537850126611193410599650640925555667169350913290291356938763936602052790174143426834850362889106024150185505096563005322572245393946220237910561425824356012093722631751905025816887343991158333675900930372202705647314051563454936917642577093270041994874660020122199815001089748675621598593269904859699402495084556072713388716164766502791027828410341069864915101865436940902074453409111135721193252803051433119801124563048588910753695888672622149651686503296161709605721354743858028425546741399718369141922438321526428722841307423288051567711454617463162784661277201989125270741150530340089492116481017196002452874242600135446540254764982675950668828228277268427662862362517379515008747892385435398789427220535391487573761302667753009625012213096651436087310416434409306058172696967114796498199628870319266430051788456764344844887506111875933153224999954705704691960389805378972349157278647632965699485176997252829864899052676690763911464584448978064582427413401650249468823541895053905507350850674310698964508734966484743097846474146986459950945487211929369837894113731904773956772734742392562797361198050998221398715440659330490334762543231882417000484384922280815114114245472234398677614936528438457307126831703953063571644568642929324747492872494376750558891762430115030309417115634388595309884281738086769076485068331706086883965489100113867513290464707941191914245365635111357023384262131872898083877685670029407567643831532333559532942185765640706132164864309761014988515597443807649271088388522099309376788279089627126281462150980589813522260102088458633834467302450226548803156984430890220828440988500825500663917418294025029464012038700046625500307754513965304602695706884887041582482850432979714510506318252153069231343899129055872642305179095338601594995865903008901011617147508409439087402947059248822819927725871788232535569311881690150128814896069685823270056978256908781966501226326771976682920375885311528855392990747596717820033102201683722685334568966073703429070265650388396246179584203388780272726315328782660624339986053459183213207775401425194972649757670779506881313127129529410874701448905823773614796194251440343505618190677731468163879173819044245045504939968786902202127472460788548011550628781092631497707367895946964180073366026540345982436820726163711191150584467621635392941833524364107489460652041532363655308925948713894150288096724851277324927693670271182551306915337218668383006741437704843755943614826206359123969190508165887764767945146285316963680756246533124713756076495896499662824541080299721059262535275261066238107934908424497693787224097844257182715945483284498777834215985115526464847400911903996387529079450206162296728059347903122638897652353274972069407332214431044277298351570575808271853280968904673508393547388123222413458655353933903054080934786571271459495262813653368468825337467186804999237471511072440386405072348729237388198872982184045302298160436882440179483374500885532157398612901822176826423135042948193400445020943765671073716056287347621537022303387756011301383736368435839420157974853983883191041899128266026374061321602967890634864363241849271521750204413152606504172731265010623012268774968007247235494693976291144854041316736134956914644686393189483246109985656332045773873980825384618826736523855641907469531844089501479148975645301900916496375602417701636531661074921460575936223282166915729158779523711952666336551867610903672642367574154568621452287792518846654125785933810450355437770549060888481270779652676060282387269044125381714322110861052819957471702195698873528334368586012763174300301464192276659292058108752090129504586113266095682469071561343176077791951863710489781661861402119961504284317159604059166693025821270341767539578824725431011096088864437941435372908208775258942989475961472919031251910815613039323805629775130361603871923939800247495090628948339485200616322980483857692248536347460884725637976473785234512703980677773516909907582045268389804789970891163479622438913177697019959634525796152182086969753629305753830307657631677360074111696163227036259798863312261067561648294007007489637625128315979171735139039664756821553897561305094750912484712493463449316223008608846818939713363088083515478253527327184216170631436537472809936488378313265312794448353420493746002660408249263313188113622004364842015580170219757257519801211581172719624486392930940233733160443266624988501398605006551012365566093931292868690655878685743463477867531204774530534983357742425803066711748712203153378202096235006016959999388598141692450201648270761488916066097560677571829589436434849473208378997947086051900561544190162483010526539604369382459894075113403492542207209603030734948057632487785324362515046684192077834237074114126047806156736331431868224816312685184454721659267273664649735384772627721549704637097940111104002330084519103948746978247067567054406495256389312390451305465431306527087577578257097570853652500158813409489930245175858752525583071775464732168831965790712571910336572813559575805758611829313173541366778532713294628761058065477808041554525193674783946703498942266883924048364645433613596491177979491886002928986366967549364910686470701106675145799115851378039911787948126585288610246213346379170388472117807616550437279754943620548749352259979041547157599711708340728151851894445749938681572403881286062926559664973146134067187098323991290650586034911947090266141437234794386477819720650555919781396929970214211766916587034826652658906662078525720786049033347692628058398968015429557385487969969639979384037076113033873905254895978478446997330887035281994228950064786286950941405752149514312497108879873685700930910806026009811552691104745036903926058577651594581616791908799585499677043110414681356320492931351924232045937562352944398808815014601641543782300683504868479051841185373883859024773150342696310325578009449325389430330701332469592748746426478061166629953733744559592962364891499957466583204130895063946434092200872688487506223812409610071577653507623780309439278061593748853625109531285626957783756772223760184075703652281353124798356839876894051092933226320567345625806167775086557928025490911869554269359247520620391462680653922091230628164424304765287135469490294055613595068609839416505151219496337269008395661377195522824630001144144592638316708464149212579027137465728719854249621952859758037288895345051612865906509214931077763147215984009144752105118351060769058913268042918917839825011566367766038477492356953170988271661327344600201296925265615243180212454360791756839792682659148650307188350529897308525101825264883512452652739310885440241630893855789758731658876018214585340932078764582166706097389338937448834645342155308251877499773750076263419979860162596231585346285336522473231429650831767865072568212620088452521853214015674999516242238102544611721394881430276807790790227920837728808523721401524943742682943238469556463442242845769936254469509784295499091828610436306219411907287829378308787371350661208712202434775857412581965020122733918488716574059617983145311268648763534983456319354078434750945839020903454470976120057684846836972512094209175314078219829706682956826721016990791839049900422595908689022333379086925479992086105600104687643967594146441440797258355078064632871751133674971329049252084781679634700897786346094354807065851264781815455434784914789916544966263169601990018458964657643770267805717465185871157741637154319045593777285056843698817400971413344275528716442504797680775605873133026507828992687949482986724054842373572206298716008083693204162160276872270357489837348578343004788369495894921534785172500238523865211392700023868034280624048261418377596594462361744719616669604374651035192927319143399986542709762547109399964765744520156025601241224802729314148445944857460492769866620248359442708821322252704975493051119633980960586785462982648384078899694584926145000336141597284522066066943304273351051592342767892064746643779829898397060111662612224847707729466627181464780565363455856319935489891680590868559690309048683279626968841593595444056643168379209421133492886234340072091020530611286345946706363593400626742261095559969129697410205742261935328154438592054633826438486025884407995626597551414886626981132661081723400093935991419427533781840256135517919451007608585389571299045473713806363949561502137459483953869674475121926679766231892453413226632892810044914866990761528060927675693847960968262007441755063350028479487814161374254612818811300986539069005308170074285261852205594925167458839436024211583593671389107552886308790544778305528303249275211729517756746303785373353348544149633931967166099109372352327838512307362730137525993704529505943509179158645251657717466559594052895177189651505354998979700066794026440725345716920502247441199983750821165858972088355151537281475776373978462079454350615923463795208154547696727057277551248493845196786281648437747013968840657539884871747358954522609436128868894655015780421147286978592112406274058931301443551653848861660772343376678854247396492716390086365143405215304395992392672315882383194867617452258491157093471504277624749742250273620847346552043865431792026750949458055186749296942345055816446731744311603060692506165370592310616872935515606905471964909861857762004201447559103974639497226823735031211997254440387180280455046188102644783262418950841105170300792975479100223567709960209212822702872067704584726085609771419525245553416300261292273521221862379578689301580961175373135660683794243814217221800081618643998024982808481941027646090457146174847294126803847445855723564971517600628424242539942126028177161283235080325868279161599354556685709196818186949668213509937737803310650332357328031572339716242579140566215385752849822233690866519790440611874405602467046467191315080878850914330969242431038560932552863554297341294127085728073591651217226372904942747126468130370000103058600298087412741388249824279193581284045255599568872343901731416916874486404094299595498427096457860100188598312045897304158130999167277633384418009058570574862594419989043086243689506427750199807919202661612207876277166052634574251915556388625838367968722018952509166187151012846084094786431611205411174109101009375479957176032042072242693181763578291125880878416698699712396604634042652989569879202461286583043471255018791903084292899142865947541631697362111523896231377145205212187977237012996609912488887157712456965967142034867319934559748247454491285252634961221273609873676160260178103402410097430213625504401724317546931810360682982724793374767939449525812845686590638346941480904569698510782229274697751805143703946722069799116632537453737895918143813540957921095579025719572946065045708852527915150022498958387239172090227606293211597448661062292711831624021685208899175350061169137339116639112382323901563480001566850968946703209068716208331737059281781691847187196075801017295228988370895070036126630046539114669553748702015683499934554784523910258639316261059156119047468421510134494250490911067236787783491376384668251224031599022316401647122442529174753324979248348589544708074876921289624960165074318347390993681725711939309260617160675595053679024643891052178202555361747059067766501444783863523106965516648442564064326678400124616665401063631714240974316060083426855473104443566072533979108350715379111013373325516917754789487732470372537335064053243825515658363566048930497502534084469487953057907882170557593232551800436335512843883435146710334716572419222637754460288346613436969748410249514372343146019940758869591334646464488548302617405576713891272983706349494091818907348806905532220599310151627489819643838364717985380528222100723987573912168274308808370908421602426706433752642509448756172728849632711381605676263849450005024553759082691495884326323154986973399147209905435045516687310125620904782285981797598152304308682821016026482685765887006719213440146771549930589196809229686180509765335181676031032463509503758023312455148255271033072112967185438879897206438245605519559896042716597642219785759368608012338540115862323922731441611827167815066475261588153062455793676314949764103140439408030731304926122010619334320583095667988845029345181061861570378704884301334097634207187841300479382534984635616064529742662131666457821248353256408861479320023922078075355884895099512134406335529567878010692578187435003007573512511297172366140900639927489612621896761430075995602260180301336909705014156759674674704967709154141444395593043912490523521752302285618000396995281867802687074983095430124183352160041566910044505609327314957955235617437423543732840296231258467643130994651203754454532745670657424199412887734525442920000195244434952580043240778096922368688517092028868059458832040508455868237253241167990207540196182614439273726785424804981154315521233963182518212448582270431869511780666130331231941331110502212981448112321178005759893459040124276435922306849560687836498298342308152334535979918582349505245754064475734870935385419786110081256152450127629337896537554742735200414442147424542070333651281554146271349558385730254061841061465746044405112496344167853962569458704827739864848318056942118158213271190272682372297316931169151205302038578330837079922107202263897706748251885189704710778022444063623848004525047070464837529422336359637009066047055371747930856149350834833727061525533638953361223599638320043895871067119735020922102005520294002884139708346966654730252849061392655162669041904472949191518876343702444724899757991143268701450514013546169845359797741622697969417705134222948616223982860206723642358661603284933615486738473825317433579379273474598266527663622701197642424925255790105888119719940018513299615780258028269647959935800772431489690261769082361906918486621627952404649248995188507749985900085623777531176282843437015823530308087395342611493381428160600051835122136351249346393690395682064991350978596191606286226368390697542272506289645327468598537830400677449996165426753858829224089779483550294660070947650061226049739980191813481031228382801919582757964740487397372613588392431470392695110313421133190349801477737795366096298450139670396210438484424065716447597143125390701905927813187713024586161578623161857728211349377338472257608562325788522374105397811581987110481795164637988442312190356122850406837246301520845785401239942531187342714532167527759462437161532078666401548724960567613394961854506903576411286392629377629551210693409885008449852197314972706747739799711540401119364065012605058060552950398632645775343179863740475758968005251982590396497183111678998528548963046017610606535515777433445237599876149484684139578149207631598267241286756113661985526155572389231575941597188991855036793086280948834545107397888990099139734058743451791919186972473723018554031652100920430407292968559901766016440907270034058231440153319455181246389026667582877850947814178228445607229403898189971470469626662742373584254626961731187046957048821635114457700590971489034164498619997504748975329626984358160305972644457759485206583141056596591170456322113487015844021028532576185298576458612045232522557915285611623523979982512259516671583589880351857546232336546248711910726688227699086952578577261090281522954282238587269796933872884626986635777855598145960333347331323130335680037156997586256695145692990016596584781630822668006169409560563398043722691642397123416144984549377956653339530685079048273944938401688893292978382592769839812919080080026196098248856743059847945920264784790550026128968105637706096636429735976993373545505418983923119868195028545031919514764813929884920478782242075010351914542980401588145547726075407274482250863301932989312884544793855731771038635222053894207935340553998017813039219624120966148271156461677691366019305931902639966237802460672632561374613255025607161605603204543558083170169752168110298619774696986161493120625448304708857713840970233146902604781845872346965905749555659758141568571510591365383589424448941167872340509673836774292368477754704833804039114958672474175568588094353841430969890940505300917354760263724885165317069109310595543779367313916334047403805469336541706141553994348035753617159496814208383166484459017501705159935045130168438233557538967849524613939987154331232446332448053391506931672542898178742556075971273914351989482503353833336377229579261011055642061222034129598263449321208643410941669432203873784288002171817811330414326193057953624824965576660304017611557687375309494863749009746074375630487576769002012030210739236774444151652567408597334686719579032420119115677849354794347051192314820316646969793951627368289751198082785450706089319620507315530967465069028974356985824885387267808544876795647589752177326844216169761972008094115449872991272037398595183683293193638591019952739525611236458856318747531736084228799414624955773920983053955573656305851513679378606437456796583400286628054722670977059118221228405335738411805277622538240368972738460057651348954028908988853810868392873110525335626172544838784627200158656705944556622389676897056714659266214469942905899947629421460651388458670941124790910351422235379079167875703970233339549305127590675472781158867270688054703837831520137382560738930687326829185805551996842122285188182049930720841466106491942250165605271848640854998627125447604745557840825517103530381441111302678556932371915804621950906199885175266051567110375043934751458427417548472541487721111696345937726734279402796381275209064143272814216865307856731026704065388377173097147540787209888436483903735592231508451941871735071373268626949131586361439353011200466556470876466058456919400931789554883565754963687885553917066941973967648882662437883634410487287538897349368419115373927784224860049287242886869940728917045854392421568738774135759633671673762208370063655605636051669031779828239166619769921434531655663956575205909623624718983180767094525988965588749926651077619672334091750089936234693968174274482693033843775544022938986656853157966213879241675740865499581884240223838314011153290797724246888566296318888276655822877025420999865531703332738115522280558842742093643457381311808174402632434687584681441364060529957815412015927721424029405006763065113531273559540022117805462018749534570358429132010609126487036477326475821255280656419858425584492932259830488426157362111589584133550003971628240038641252673811772809903713588665326544215267214536793942119002081248809825559264196940170966777496988375293924931994211345044598239969047960821328513330686953094855468578310023010347472283155040037957711628259997511451736994790481615447103343968724041652304481294643503924997193493594046178087476076949007057687523985065159317946230867910028228834118219910523843861690747843948458864300626636673451624505322532053357231576847493228055075113895743841268693051744070491249322236519394376607452094668267685193953485434346294859124705391676154692490704345713251866399809085246365053725561558529595924617695632971864139079391126127173434982167121440356812774806682816688340991139088571005193210235802979751305959732150823516753156848760155300356396259912491193764734021141267917282212424199786516707932710118811712802606942294097285343439087995150725299657224423214864975797521183055139572826842635031912231769322636324581905815838093147048324033186961823439814154392718086562521618142554291294989112104205793547362984483905524749840561056995537243504536893893601035551491128238405092769993259326751026240936704704894539758801269508042171767253470858221567964926037891774378572959973775757743120197148201103905701427176851711521063418738268585883719229974804368652722379459187882269715278259038918037374756751290480198482281456022565551045492701350812396308062355410462262805191169139739780743791125894282434734434081750813300796892781992359106408971050154095217786860795919611774880610004232344075656876607597620008114885677103336288933171331819981645792646154922280644222532167849124128060480410840748072379809075016603058817573871229145825713482679399568894746042123606268714523960043176974083661483674706751779536322388583291590920931743821457864370989287687360825423655943030975270919427374886027023654874145909693287123134157205473450368250577904466604541478719566128888473696281562950999685159231709471174719727003014908192244103182959092755185501943232708622889122422686837761513636538751235051823296959994925201015293660913675767232606078926099277681061121545172439519701327006739581291602461629987281475340803879033609859908535893182193298661658616889209893646683320772712732201867080546090758252980416439334928831290420095397382961166937194565330535945276272961677205919756171267481996395992950635575576198034512730873504399272105316607786215870694838689168212078243505352823234798955559546860316965595040912583167188198514656925295195407465335764698129777258732573689454144812413313067445251753844608741574004386849501169400918566242032112421476765114098621220813288348620989365207529372418920303222864028763992568252855843900828180760092633643888055825281455393082655389974733072273595047063898239298160386113904873426550205232684384510768248355188218598266347401528315468531787604305475324507168908994288948562431261961378876748886078636638427733665159288135336805518960853342703474058108956675653788030336669629152381765656438261380763075266614051831221719399196939363584446965725124837941242583713438090984679919558135323323676373676890952889502444991005026701963801199463460621993812549813165957851049232830281359375516413624292848648120285544163208581330057527146458925010173963330759996262653118429293210676999348373797066964977560186806370330203858431276024468546765468140444678962042451722893159448463051811709528183354935792555499664817561945305748955099543043404187656158933318646346732619802441129867022943456800605198570261189671938416346737768803226192969636382070848735960094950148129850359768110970403429285908521093462908538157189439368318863251204546697075303829406181409097408682532103733527160935178713655385901550839982411623069363693002230257030919070302414903025103883011139384860473493461634047357154911217592773282309741476379472508699969842149272402128565154372081226399797230028143896412587278415841653654869430234358586211856431726301737096646968951800585486815271955674455469616541680785735387134854890069744536438146407144705357891474042303734753278991062705388667207444460608412508833187757893748312867468581739009188539680348370154299237178663707817500694679564206514416925499095838208509470845915573088650458452436316862817245158438506013705895365732680134806634472222362881176165463008799724414634008818564805091203163646666732803791706409330845219553289090456203323491453538745731798479515198783392567268517383500037922983850541907810788180683149254455514201835384010943502560995476170608041134745824025434062430889550404468587405925240301802214173354768750100596858680188432106772025514485111226133231977467860651832334394541938588035479584839212985541835242747420644416833673845289871294223104961081937608444981964682178878890167170492354909203136441045985675528560414614266616107335881952674243463365249720210077011594826328645933106511433361499698601450229700229867821733803557282334751501440521668740662684686485442151456545967599185516505744054472855737053863453200365229477852465051392302274595894964112587536407659200305485198409766798126088938055681922684762786667722736279668274732930435710830984166622992490712742437652496170750585425841133937827519483090977206144118990626365617586054087908647584894934195137961921810876796720454854000190628024613162797884106140779395995677751708060976488877113679507239013024511135430496028818799782493912470195770686416318534409840603106949476243317477421603811395309613469425951426880211540229918887064030839089547432060677408021263464592186257614818671067019262891647696578412502509259083117050815665551121754619741559516992605528443527116296044842935840578717065519685326294781157966577707585808591026193978077611277283758660995922021653311583387813443670738409220191911834640627328422833578767925500775770152646465540505247181223177610904086781758392386519389631180082382442027377307624799197677675517075275695162946066652022032179861627237447114452783977003063433239719398491600930316369659633365090890326452561176324635313838246888985848363944898205778587500672871081235080687366673704461513130830692678439219632859004294134381787493671286712605442262989895735328278432618763867040669163601159853854442149955060239557865358867017564447799809346985019576577438155091557828642194376781310364542628765483775208813265932618866016157169195345343828067904915129004046398257542539132807473846714459291010290477627945985646693921278028817603113064817324331829946611738489915949320106575750133555049619351834391401857428318035029864711689850611072775656231838948430087431107293858083146887746196573654457732975581639230779466020202267084037480449222211918146006480089741949210144162053920892066335415786388145477888141350660332530083448392037060926887196951161261265166421574397363702568073988258819688794732278424128006655909543364767038170531402956921513715991518796400126862088996502827683231390918804144448324827093665219124365063150784082734676827944374728335479819242531270059726598530927277201081518196639353101279318066419039435349592393613723802609532396438660953448972602722661110592552750100632728436066087566381633166955613831960366299890953927040991297775330940177392728773207719261138517729808967082070421043473470330222188715264975677238875192699267527537190613659107650925076646239439159866930937973164016490496781773718127972605714796706472785771747173787272671013925801774496213305431270360422975779831245027975195722211684758696320231408590913033577427523537164731814197896265108889486765420194474877765406965239333732481929096494685672931211896313653945530964722944814355253991547174132519073771802810018846929796243454448405203155565297480846699589716758908331352286847476981572257795605216506707578390778850906462598101825530587416049950036094979735831740219248603772009933148468095643925269115279059812348856015813261493143013431806484496415943417166857362376777573189185215723553158940991062898281875910635806069689397558880125274451843295150515067151461841967197452191874565987066209292486772940080037550297163736501903586367273772531755857085085986515794066581196385175049453448203240704113418123777567512489233451570962606331241902537767044359857648735300123094953833552123320867423465877696225840393240672609894813651768664198935506395135090557170747940559290879822030111416464879169919673364482653328690192766726046115132221473680890942754579141489420658451245887452171201569098624409341211988539232262179143750617479881228898491139081086938088213267216101738332507898159592670772970664125188369078241585160484341355370191298306625935653925677549216778460953813709426546954921243635655980115483138346014852329308140695197803118358356264901648494217987633848347368270706937958651126231877555117508786026437679118729341673357939528369638957943846128826444269975731521189036426609608099480728083769999718855750386809220198565761635042368687826919032188244514184925085451456713916627581274357722669159930591668131859985818370066396582302148343425690068570584367002915147608752294287919649316657310393472526190463816039875160933727422761420862140212512895680618146072782484120295127090486104034132025183265798380395133019711573886386369954226431926449560857077262017443968019219095230374689866060949764754477642134643113411872119600284792136870031387125086453228197307033207628108132301679181551307313895687491217995693630830569339886826550201977162127233785353931953791368610147906343481905168796584874406591272689392283989711279165515638941588530071587019617915493659202335307453284544332416597431698796553282068217880587934215756207588689404037135196356759351952125556944886930737981702059247535122983074473614301865488719125884320768359294158640180647467051552649822302316972435771457673885702115577641202585404864886481926549213319232115860330449257077311270141787814003238385806095416581627606945830602686743829884976224245532390635907930618365019545834074173490588003270952676071044622381614475524353199946498599660416540078524665542958236859950090652909893672093530246197327665325461508883361518162802576088836983759280207495126157293046403534021955743719838801851732376827998994372595655590422747943657532014713193354462210359874845321652963078446646582168614683217631884192490454944028833151209127151117036193046902260608207406247996554490224876179028062175767849713448364419479888905018503148901062268467057879011022255722290892875414341393026662217077124598473580664011404067308055875959271878416576235336621906360068141084653314255678928390148913704464930819044425816569079800138521061719852871238739263397759784434282867532793408309153948060751324840728958846768418033732607591702135390935256931169526425608437367669990009026685558322839501523855805079714561833363075800782873404948200735739506974177023838191128795166670187255921189744332134229755028053680328813731629474308244236301671114814330717151470980985764014161048337453270515649509706711682427864343000411448370606333527828498844100234548419295980007652117650808564208178221896834914835459709733578992649208829807033586302539913752095737232364839113402833229221924641304817771924362902312214633883351800667783217482193764859555516791095801324741225095993869879471062541141127888018614058181727025606803866815510378756054793555903633783790699859979343943138303577026437090831016715241714718629132757901919732061442061602245774801947191452962557682571903887057205012853586056900051296435762856124952979484622691792306581043018131336460414857369463154446165198770325683068042458988326764362981633799846458164396260015662442495676992649785583871067233909617370538855554825219490609335429550560230565512690667663013389926065108780469154539111622960722001159988287691186487607805758409870868573746266969310132332025691007412921497621201637868815391076596563681018874132052795375306903252508392762971467748954529981871274775117315030524859095236328171368670001112666228236956751284541124377067429136948200089178888227096802609304986795096699454774069915403776371686240959884208087721972326175431551887827302394696790411232161723662607083670355576617826326798261014247199149778270667834045084095712780102621216224036228254010887957665453570775740109626864243732334128840709322448866832123854969849115833372836072911312082177223383171894708526853819911965310689490711055554614535692220776208834775609589195659812169077160758674115814313008106933931847332045719599769025442764634848652069163587217412998205235421764356208523437621553243188114639090493221581721594607756788057896237100658510466230528507520621516164081975562609030059101029846104289483694331617562935510767769628860875029950549801198121898812978429369885508211217858886329273278830448162512588224838504882148126846805951669177052260251448651644832973828272932541684743908967712204754309600852027252867135154600942902096631466216717217829292113892705686205779366641521518745219449821054945905832660359459948865469364596010044025585372106102688620462117483115815919010543596204954588596110941010120589017723914596767419025697925128932541844935118557582139923745112489505674695974643226826588700016625221134101779299552255241869056170284021847999529637602465904132868796368073646902842226096154921789602072304431043758765893992112816653209386525570359588245362817058875412943015841062219287790884803850587560358630571261422048103082449257649041572954776324719689223918737110517055972910904625238148658595104761311513923488389628997854648332643187656764388760106832298621141679585575760946437073722818181129370983902780137615989274863259913969277060347136267472697176383234941406078155394415990908270721158918431485192921396177998170116615120600841238209237360629157889969022215467924867784232321070939323103040673086339023825581988019843389215069771333661009247218938426958346641269972599771175683728871513321922463748438355903902190690047261018913755642691138824720047844852783362974012566250917270814087746326327045208009151749241560135060291320240871631663519179010561610491615870080610379495960510516621389056321331134509794437753537132573487568278956274937680195393578820551957215193385852468576410809472105715994606961580468480358069827699160230547665843329887859242048109147873716461556812983944791417949027439583028159841178834289850280553076952656604013665063302997884689222266849636120399774221948476329562126072677599155224109369716004412363829976900974517151870682612425787733410871441718701689178901068219917564317802516500089214650180053737529113193179762492711489735161192540264847667751140971907488530245230808791257037502986568063106813890397945331555194272679439451822129397781896423869319338817226716325583737010363067020692843134791370753015567012934045433064181107489010109083891266574545918795218985466690183868367802605777794396864276675335483516500731299344687654036124313536843763740778920482015659870150229493985461614954744403787003704508243322926093423239047642780718230103616221049537217345267230009084292511065691381544914680394830938750851080051653043350076383870261271075064337419742080183182179079811082021343862085977715834078438755398178850352336708672804690169744147882609109086123712075887235554440076252990414760169703167860288004623316254737525733579713256826520338230171610439218543337515152057392205330100542116785083383608224945187478744872790173386445151417784046861320446749592320056223208569821516285712064942140431369192198537204372451925864276129583303949516909685605261672092308053777444758338675298526653366658743175585802511639806942574415092116818677108423842267158792906869860413946117017708996640673111429521450609276435980546743866603554892831435866990768981734585437520235557331552780545005348328781338066810230199555101719177091592492294308542302812191697974447431147542470384771226430426985328294989150116901682222401365216140758912645822300475435021839267055711461907217265393165618269091385232248169053651002734413322615711596539873671355932824809791363427584143797957628442866713808667253325495760092057615472869295728666019578139373382910942872272983688456867706286458459407155817854400526851185378252212252187167388845566045710320338105399570777140559145836757079780935335911226930280087590703895751428752377073051755703171959798891971911670753210374517323154416529468920490498048460037837054849509669478000783798152386555396260833973303183578893141286354985998116327325325571320077531095315029318002513900600526338509783979141203558493815184148760668431699472630181861201214055386556281668027658808398066714344657399349279930804717786061874504246550478365391783035975936092056251993052373837626760243305081366148005800293882607822907823194889361413371586755720709989498824868389677549754252714602571765382900664081736564790349084334656498417763532761250460917169809194189805078791451283806652139982270571453314661064004626162489131697887554509869689813256492088661250524324110661067143033025117894747972207531583098047146405794668873587671561003301527854430081395873546392088542740567947300756822503809456805968187031226306785305238457116761676894549662544226240382283688909815647772565273770681776570699931012825055364014051816696306940984440730972552796895421992167903030334355892510356291403852262094967506769778146647618647961511618873784417311607211608518061005763418071657115529935225979824557155650574067128189235016399138290676574433929453791316432752751818351508787207877229326881088879829870818639180150709655996755361752588248584207138906083824061107715273439640133929877386023997966613665929220247864831810305227853487945408540128362998764307295543591637776197454287681275803316391770528964805238211505466995929876642644617967100775901936579310228607537668434258156383023347510124628129338213473706758031852940107586656667159975853510732062075105489201881261042387730826985216342503664762404104592537846277856327977183342658743326327040390097512179409699497016118878145899356487055840005863841881064321382719197497734121127018571284146100491056741394783393964519880223951564571752095073984871507867262097578297311448490487206736196462937875759854965011894077647109697121888469883526903098000790066874498928083090898087453122904663112502764856925870055996873066893888903071117691325059281870095414815070102900962722998498491771363052598882139953342200782106392168666062702327434945634988976801195761486864348094560299440147120779502891270501449165210031545693394623566131220565607410161696869250052690938780420523886481613874822666256179902416987417460066137567927660888198224734601142482755739794316387864965640280376398729705618450239893604490438783354029807977547981884429208699478931142277567161757620881054324857625769992503055756586568470352592055250416388403105553220928561513606595145689429684657825409416489141776523884189544606063684536852304763399184416712577022931442739777935078136681448179647699738824327838211201864655680015687765121274496489439158349495411152394398682801631277979461808868188370919238674634093662522937772272294458137666852549416491478680255515652700164986577383684835272212215047440091141586190741688605858484684731280227533498394979015041762610142883198872390929790339683464543637152774879223255556783988796863542814764368604305027254925587487085357676605118743331416128600161138260939791723697524128897293141475619895656079873650223132481007400210348945359853996868937490874522854511107704230258174742723734420368600645262010133205032198393142150898152665371557862598933897066498290848402187107796860589495075792827858007108705864248167186553395531224159533864646138280953856239992793117936241270545263036371547030570412308445537274764041699346320644933050527253620976130174473714344780922269860263678317602789704297380323142162496772811339674342550484560501528171013455673217617898345263441567371577845034710292419460045928874089838338558958396398785546163247264008706418345949173087460944419913596820954037376609323952117878317980326224050148041252837261211949081438774352763824115098632203207293928596555558862403875255690366456429448569045675531052704899395638296733836414996197143336970393274514182164922825899361859836428870588314808474210965537990187123736977888512020576622003804207282438021241770654272672575374405618878357382855574855990265629977778178504465442937587767246689014877243895554838521798383826782614598342786965713381824999178164409479247260150882725762791522291999051046855550127750002325311423934128641151377150474296924487369756661880970635655557365320522020423450826430978765572846547387236022220733451333822573142352896300132791595084497367402671936711643706258338660512174298002797223295258470899252530647758608057970949785156745125520607302539886103669531418571681110795972541834434023032193745532285813442899883880713617251041461337045476487173947826462747340386506579808635934289555777804766847830182936319719803437536166635620474197402239793994633587532556742962599613472640839957647483135588937841896768906011266655058385370832334872842331709520197450126373206106390606067360888754479979138688447462412666713762688127982465024882574022323828878279981270678266517860957671191188643800908678388413786030698421846825013579526196818290494327423872657835815347103927417140085526958494255436203802900908691127584547935952602950825080739408759456765120610756044668313644089983555935405503781394973039306230174516141325448882889021290654144952765796268595929086154895280847698189046955419549186450936620928906812851711467206098191897525127764842851521480649210907359097193323101320051893911557473908077690996108305684627488628933759853375557787324852891227535816280889413037017063379750924096681214870872849405591887374045587166472220910033941992916259054678338889102668560277276532019409584284146214934634494824522903057913787631751267409734784296300246886197499209341957290210718800884060087392575104957813664952458964118864808652692494538320465121093762985767138397662805685244319046246146553581664935595566500016122703722701769878061095625806058443577165838213225091159870142827331322450176190080971186576177794715765874986381961214720748531848724226797785484539680202165272204130305618916448514889375984165464167697652922209884000694001589580487778118182894984066203979564993935554256052175224911829663268940454123585609107519416748480386563592902270217140210258283783621681531269528402602728959617361454370848907113468611047742001722330803623985334051775264618877828793349106456905568311979391971362545171641463942281582191824973612645383364747868727191106862533698635620954598137022363301650949349696248357674040201686127776984256633810689038854282935437928721111675000851661060214109503475857201757968935987774508947018118931153902150594008360572814513825701083267265229028448333488888821359738240337894649818691617805201055665665907429524486117957202814246842681904239727127589965918169694413239370482804137741751852756514019014996024028384300686140973463206699869970788481483616104833210933860592472129851486320512911163116842479189507091091835629648525422741890279124709154137857700994385466383882012824156925457118631606107283563494542000913068016800840101267085131491160301809184051523366141589550310554550410518685193598900360664529320778250568929054532366702883540669734968534463689335981035742427628708637627233592964790732296177087026631963167976606750158064085002701575311723598600048899870873646441548409125476577806123244678463320456149813130166085746879275203555409237086595829477060577010560722820720039197147440322545884004854240695145796968078846476833006943529367845146953484907580789283433044503313639271302936417554125540593397065264079769192484306652286767676834193910291073540103937047218535871480965550089839991986722745446486356105768070709559217622872661534231821619738222337990674176182631276361159483286365381507729294493084018561382137714355273312628030067668312923441424464166248011453707686387314585168894418582137976981695766503768490068775623638956951991616796413623349943426825751597541999736555652012520122797777694610575937874616908526623673556428159459042810825865499519903896390523753226467981050861843008283645299985049785922484462928861984815834174889120807655758847999208085420361434235373588096605695841500236956572003594443960602712288266390599612261938688944886776348149212943886710992884006453145601949026545648252729107235489982463422383712636164040400104791769126529788659313195889078403645778934282690963907802759937237620338382617922074069856381313028660235555439665657803231008437329330114624027282731344616562778738836925095101969474724852651916729076796207559131632251293187815574037007358882012759726826733049890317025476326414782303206716127554074781371428633987613329769307264985642112953066964080692843693120779758634465477644953156844424741794143389419744230385629772748967536363987270233803693182485366996655348060471071998837991789506256706601016926223688316287789045972582846446678946362164577622192165028458421540945542987561638470292230155092403496861031297061753265897184958924706423121760673890416098694775909920278568842629381217832452820529988261120023186664441294665805077497861402273310009660667227034042054836353001786974878452426377022959459215677051543904238359990750106097084587232769919658196021621203175563198576932130723714640994307435643770770580793142441228990325024850304196863659003242569676418261597398527078140020011303446584246110258085907286719713128076165031310262519799991985479921537933570179360632915526356431050077845677957154472540989798115241429766981602934840933011173697478625158447922349690611929262405488558776431614112997786441348181333148867923096268136357336400501732103376185044657561227166222016687504358908751231693351045330631995193112625635854225598201167586508539291678426717069743774897612831322539410739658681497107681982935531104724288142275748043767436803138392556910108257739180189351232799845688825963809708201710030972103227463580886877205922167188786724012498538675009437959646773661637521681886371691018802221589402739605038443039755899125484354209791615969692603594937283906227838049072042711423469709165734703195266359452713709523899409348985597034002358005037832738463016352853820715246623231275299965035810833326307540590663984068186597928427985464916869191910575936785587833548270122532429047832704694415451386130906363447115112599827725558877077171726045317938384342184338977021269761290271888755327409735167835086557125261583004009659189813729237540086471733618284795250682486275949818371400353915188558701243615109791408778526542965014234354487933651725039990278288309009609506220396811987848816787270297498015358288174481308526276393945675823743692542091649145764639926971067844619843958991064836918845164288564712972529323519627861937219416128687153991316947912680486370468564550561601768809215035173215620365165896731181247657844084821039594407435445770330510103835340103229774571856425438056865623884214610305600531168176994778711327611291520614956983397513254644448306430290950990543285668098882513467593184681556027823199075981049145775069645960736747357731507388192913818451239572109107867969469061886748329838572001987009227302088046579090916206324808861577081700687655009319198951930001365460824515880857784974339470654345374241123782869836017790286175812147632593394634872809819580651179061058431694176990417758940106675012220558370924890074607586661693839245070458954771888374210645195029483695725082813114031100426167807036896602621844356132958698958639183643655949630324949951951132687585017873595944265800839746162347786414850616465889748799426669036676944968017523706375220508919598645182658365039010508241820006575747374664825975335515148472699109732431209515597463013227419000557609751384217300089966256045361932311240048040817286886607557331037262198300561902818150647062437174003598578273229556591206821095483477783506433382432525288019218875873810203452100506444357139419145309468080215794125184048501868745445452294203412114883608250440445208833692473860897233162604647947955552886127415454644869652011611594730348800953067897276033366385167502937137751800004479045061490648252341370933796670198736541579596608328153156266669756360513644830802535091857794012586361944423307499381600221701141848573581151599985690585059250156622508593357914942451801282296526982003318228022770952672863190722363273217284147284892196315769772373933949902838616380610288612677024609678395295903579267800771639340353101360238109724807429241987154718972774635648932093723698397554253079931977963573253817893149068501340410275297698167961107618487868158602592837193576181755590353228608574779864224379481137539840718473826920185419304478593046445618025910340007447283357712775043803525388215265417688609206724408205366494654961679369864201989627765864322049562278745463946189062063762424965249652367366558629288147578362863238001219269047591341089037193517831922231681827710794301718610174902813287744769226586791886561461136221481454505748145582818464080178887513309011335591745581453186374852613294564563329329846932178541950331696597349717335398161656142587645014758658806395910848340663075488625585642809002449570496390906308103254013190419204975571427992206228264536468717068985394972467856827070651986909184437378648106500405869362245793132894154105746147638718040283109902228841850100258459651619627989948841259148871764683547593370541818082968644987574431534087209354384157757143543305272648437684655554438910131756731416527448621837292152645758468721163973229245893877710364747941511369113293913354147542121627568374816474207605718063894613223331153297901390337523355586543580266428881998834710278935570827126226637491271585184843414157596958835972599890655973845668706012240944678339532407891777709538786258130991017792613289928176683141671672670176550900160130032700240140451284225137612281651506916406959040335253108229477756932550597557340898737919996283949517560867993127459973968876337510759906865155325307833945130464422988187128808621452740161399454034871072016440250331631157027589003549124855355602765590136735651284589010711980898628290604894097942201306755081262281947424022983365109558805760497708357493936596012580451009344188461354594292374479757101722801495797762692535692557917916973929700948498585831625177803259911238481946463548649797226822988034159960674735023289460864599728768657654387473643110001788169326040177849954532574191833205917708733304489669790116582905336902430776345487607457150800458907068493286649514772251407748130131057831145249377410832900319824518942826814831874306487669362532704767711197011461375764823143952017273326784831954335811845223230014909115012600762817353518612483001958308313650181401031593815083537721872148238891731290558773711394403508886578559721528836551101683971471137829315699933225527435457053013876592893397104936062527106862378838078645069507940890544762426321166597209257817144398360785370097180688150680996499231345123808793167898119958346892474142460860975909875797615710568049568025323803153825601247672422588750266517217268372965049947043903301062321638069899714397315290187507336637597465455072671740658679276892226335976976564110607578290124187683680217835462623621546181939760127345296396144305624570182125677242980257619523132655151857814308646531841945249083818087562583312091424741843414476414201686495401784503052541747272374644060241204920301842660917857284077086996269733059870660436233775799459630433126277094391250774870885504726333677137160037682008734409023208938646265281899425885250587522848122467767273631443107694067650378501887139751519678169552124000735053830823474405613978491741099291757111547626777688157209175673401999482568583469579469774667074725091892316824920602922472935772128709208135064379652687947428307260161527660146122508719372652715733560363261812475418647760450159088356977047175545528826116378411524099513313767948852552018186031474850246321437902456877563634293555203132134664458712442423144529354137059220795801767024436478296096760636754524253878094886839640914287083393617064810431714366502466228013655840522976726596458642242400964864316258520797980727268331164000238538975945289477793525617972187005528073258884563743448976865851379552806584923109525318862852819750926543837104596210651869677683202583521372939531219151215700681882985065481026846902877433919427523094060430897567665094699825983787423077603577793174766385910709792889415748151470350793871752784034745272726776803058926151291800690422754576284328082581009280378762013322343970373101528836285333450073323056949827390638299501460551924948836230269051741327141102686120541642095072542192162822426097293174130910872505011243648589920344054622238029960516181421963862073951386445655740076081168778903388772925285108007207552012745605387551821375818315525241080934248684408106393804322614345788264549450641345263158803900993889420961690089290246060133132167763521818682306700049990225556957275159302492618389188138547238173137775829760234620979733577373854421533595022270298862361921733343964236751590361324105271957785865004570991545084238565328243998276485987805638428576318276615779367233690830898788798642211757873893261596334628719922919577471733117983551758410078419878892204276929614628787509192367869143869742663335839901028208372728138676461252791508367128705062344654105377974586039784336937942137828705238292396967330092947873018564972358608973942961691641415478404863433306924733782264509164820478004651689390980725280085893258918798289953585761544508457555719836232842679859858076695854353824134857994319537598407007021243674555740878141191678221536219437035386811009177178600208945363994049721447160922317061374918075952751181689537735015223076602091385562786668189466718650310798638268285049029556438196055462178630408330866134800547693729566957605208005352993467901250603245355788169636578583947645665163903837669579485342645034547938357984870004667972872603564382620816914349443972270329887985435292877552522855669781153137382839661025642743720852438446271065171623008916553170801148641740946285065370800388763710620733630081609454803960790173059529338689154375858469901512116187583289629103087071072984375671791676028271525598820163692950842194007360134950960622046214883495262955114120822616129521388737354939990992867213909254402693431545556465883939261053080392186778214855532363518031230660919449872314810902093844035537267386687130803703401604044399773738906336049294000440704531147482780445883179247436591746168279851041588422869100905092523753289654800562820784628453050281289818994693884972754553322267635542625555649929550986563586692486964434292751689756301897690607835673964319764622960933283581417761081273910534667012927568855296641225886632743936756081539357496453590480059326547115216962005804129130037411446479676828348694421736465449439243690797379577416681810975463563791269614404844540840709363445056473206846829501676424790985951497143730271182718021831265374192308317494439430169585849737158453521988430982093225684051289700553337934836078998755420308086129516709267824496362725878421791436525593469571808555348544141304784054847406778480565758063417426240002048107675693457726065530218692482681380602502810205960097130849167761373133236781623361247399575932444008887324847700009543854796279495297625741833775516465560625259964145064193555572140622559551816829570278536018450307854214302922263535300925925003365316579188458667292625410621320672670561435344712644235980192363968461834182681618968684908590680301114944986296597968182363563160996131291783572409584002573509612030105165119110898375645798396290525628316727562920420582614607480245790882904851314671495211258442168687423734498862237487990221455196337168926726324635564273728991665519807775092284560081127104379017934901622754069524217945038181844058317167974376427993229629620266711332803319870961839341236030710016893722943086883543449091151561189088468497284488629050626684227704606916583298119012229871440537162065568836891077875551223366982703940719790443534014372933079459820753017575492058039225952177509210475421868601664545773757357109356613898379697128786186476319692701395370804918242374223317862725552175589432382540798875348777962004630379246076199821194395416604247798475764089852528026615117430340293011599612554976771651198306474978052565504044675478150527709487463174956918433932063733972306235815511177574558404102004928147635044644601124175523657077461083835545639638503660188835679300988482032907597082254924903767617048502009595497189546102621885226493924051457944405521219147965373015263276068762681930635447225188262955027331617305705047044879773418518800085537242243099486032257995666670855156507556153111948469170264947579534969176830039993517380847816650196634292481481935505770620051425930501266269012154966729150027203487313369015812903960596920373950806048329883187458369230483104465960115354410886400761975371742334079392946766972826879484329391154459462048887523674954235692350890523945451286941381087606805867756088180916387149525948996847643285339289622230657138643840407466660480892488497090628948324556247472795417528009765618297530062371668449029639715314470082207043404456631805329317463467620232568013222272924507550801284118052808982299547648631684728452072095524624661709671555467200387748714259151842010260512965197513387756138196105751048323972495795582937793150837731453492991543411311303130653544319342559491762260935774550486295131505418805147982332629596512421072443717610747722268530772447074396249819780642852978782337630811395587468838871846390682085405468852234662474616463852408540094157962621294926839637151007597412238531034112338541747457445037498807295190351169015145754182858784962654917811942196903244859962795201083482642203122404921745093749517449845941421346321813727276700480419896547729719858393766322062529414180365005980173150687645435729515740180806049932016638757529345129121895099508804886031916677229288400898329266138199674651113708441584030922594375739248856381748701937148716157309025775935941143848428183670752835416117990638816858049849729215819416969485397190936241477715499313487690609852999276143201374363610723935753187346028532132376859317836829303633242776195597583554351932886544101533283011092830794733523942118000904566076680143677222317412106505243195170354252558282674384018515272664878898541258693304533611631284292047993067765221028453990000444739017685572286167121402326408662161253587880738568621856910700770973735596605243963014307485491451437998098436059454555025135194388170335355114280017649817305878688103072237837168398025183292609179818926477034358817967351388915557373420362735782382550342427080751593583420514870340591229706557314117857995465289693138030203284490785774356047120582873862754680858475379237616093700011544210350235042212497296996837080380564501413673580456101677416175283307508534456646475729839688576649022842173684671285380282972040159517634666575970442300748428886751146121466152948889277093258413771212652808753544497252429768713657713628970306113848182499285726950881119875004558643245234980498463245727017832345591095904468998138765438601218393869911805451315591526680951997773334800179838314337034357807679443628924828981269857393371024059862570929130774524976568605685365141082599657317854007222538717577627498484502599288890619778315101123259389064194559854587400782533948706979126934262250118651243132411318357936453031340661914997225892423031737429045052004012247341536906910844102899924737291866874482142572222455126533282890771644106066257738027858793944815890294412214730750459703302011606990768218174625013822237710525269201569307619671378963492130268616733280197324379380754865531170364038882854136317819708090122947219904145330933242054806453643380064164936874314664518985168773304437537657322512137692325037713055354366468214080148019739772695562914573631990007900455934023906610565515536633371660318727928314060785540401013898996400158508861212505833021709400165277830008053675923512798065269631660163388221000182799509172097524265664446361335692234693225554685060470428891311988180414617900109593672070403542692145128297432734194530897138691458119129356912125209355210680799917181347359708983999487933873555750784970461568545182683059409990984220441082033669661143846559797113512679370453427321599515369738694494144896689541252158527992440879264045481269743504448086650299989747097391400385752617539069952344026616656805139797636940032511857861950239095397331414700970006308950433817976385497572889332723061576558118076063045516574176986017634375901125974528663946974136138307146931454559171838855537828069995807368509457509980039413269935518365914276878278681411235165740313886844889580199453981977970478990182212691217710639783249921692127651995629098419361704540631845054735288169233782911143005232201183553018779560667015930078516577307004279054028690490949076082941007158517512430553761100545848594402608994088889593133623459125053492137911772594118408656343044712230032863063438948391642308521251105859747432754516701041064086528437299042066586450845488589790563046312046652738556668784411142194717995583374652443046047257243531353588187159413427401577003474724651884862033416048152691290072655210168406652139801692428119376471790690255677774897416504094406303801443047876892847535759831130422609060785410964384187253703619273334908606362382827412747950604577816298284904376682577247077808910831932286084915126003718375357197650973002890636659202612196737929452844312388187694131818335230650624342163260058384837211426268664127718970149511272753481357272294641296500522781106220300197204927573899176307066218042050518558696196945071694054436169609380981188818891539945968558470731054243943511779630844660040942156927241774829743984298878231200424402745576203456693464719048510243750653419330171364249700409903589471569393149751947598049803541563238599597328349422301290461447591232959179769938214268543943649372831597656036991161569719857393964239879898442002218814341130047722299699042591954604567897029315012780077639038744140160305496726591883596251910493899196095437230596683615320816016526591176743852695415929604150664677747607991303916750281071181552025732363822313736588156082102717976622057874938658222882957526329795864955069059588749368975657406895154669688257298431274730140389439066275401781765992699250184696209714177198619722105693830833023747034075448881649858872831316592157827759611991052296576552696215185154857724975157623555509129924881541629033744443343197234008725327634577581287820932334744166897132007236925972813669149132059587248948337150707454732884752591157247641167209154737980388970743036619923914505367996260109464642386888010916628964096004705436496439147562076133794629662590164376248996023204105558612529273574398845438968193931457541562301050650984452923639881496158727924998580664357409332930787592494811359857727865585997359013205122096287787202473471791843135269936440986899165308268116424835611679576151560508758525794039385488000300290382263957889182155699120378698477238805221649837340068554748260406716663595067760495664913490304861930532786631540180543012240776354410776977500805863112305541550435501622410780333860220048380568542348635593531802775883217349652240579371075528746114956558486289174062360973391635278261038343623861159748734956612389253957834375595983601229851840043751685086669425495450828393146812003975927346963586778897870231754448729058680667607994872338059939738182603918677784015818583519697836936140615246112975146434015988440278273501185985164176747751584721079858628474718953264496481876873672519538294865514034349620294597898259394602703523824102699699788342620349139241914926050708121857487627655682128997831291756639435068090102390825152543995838930046766225403460978055096228649095369166956723962707159388290236015780755846539904437848261201721889764386288657900902666551665453061772010991462061545116880848774998242602620797438386106110375870069193107509480085394968752077441905629467157295511904493061320547995309775357381548479070635576746567323318616310310016859555078115145324576927239862534103876872106961431428930179107954541735785308032481952612347702673252228317356619923091791199184757552743373888872030994545166241288695516307504367574133716606800692371475292212805337976403638593331633291574212510264193838770033813579259170546034884130920228317496829210097888376468653226176380006090581250116124211219924441578894942477813873304930720519731288241917589446013999057242185720546713036913369507622097835631660236044037923414839223820563499072748669304568389404322105889553526504923262205075971630319802833899533010982537507279555581697333820034972406957807422531401992837784116739754252756251406613466059037656843721660675921516012636870103154387943068954722733104970020090064758890572715171661699183464852380755735761533417010512765543767141304172887751789904908705678516762874657948200890997999822937604561493128090823300510084612599897891831937113404815370579489334818039393272697259164105178934653005811446803948502522524107948387856876561030991698236864969319616601911863246037464720260040948016302618375725647014842502900945780663496108940338240614500331175076466303443702211014004590670322792194691248072187041002125566097154667860689622625313741019359901637612587532270779125017852960726096635439226330521628867865262048437404360961247310192960083654497036783248651624448016889437129619379610236785550811572106988355268202268462616478064219553736553328302354010203974049224270305397209769073978385322218433028837625029014897793480250373306715802585432043822169011303583369641563447405582569226844696200911046793033772096348074129666316435694409860040596711292326748285628796012635205416026222812343979868238025913398253200154022456157106526738919331242167491909644478398966123140306475886348817132109479818347363979313386394752980757861510447833855670515505143746951805776783302898001602699149642379216212229853371722668233814648296582405739290879726027042694327028942083129174000175047034246501707994839581256039108823149271029043152984889838935036551800008911516749336325823320769920143301992853827619203012236791899005038537270543322599110712082954778726455319808636887966192485340128245972277280979168661398226788253362091628381951621112577574933852705660633887360469055886765472860876631070349428751594745165583468894258451077859481620521232904452594588402156614522057903840003322274580068947159022881636484117674944548898613074907431686244498865099325877600014984280835992780520048864917904139146608215577140160078528182562245518252274852606794227822584255205707378583998594939450585463877419711313272385321344153755164568850343136313526285564629719902112600725820867172563341075889398962594510721737478813494029853508356634481619539500220811671069030940865390407874522661078305634656106305884413661679213024537396868572643099955053955452079373596992732439943846115694869398972398187440566355678952902454456795387789759669665932594239311754684293723513399815851182257193456915287958308486471993053917386823695979509026553525950068329541949015490374707658583353314180750717622014974620973395210969985328472318144429099533597075142319802394120919450907503168770098046072409428775537220252669490750560318608408052008651151846127312918188697696626760670202389221033267133346322996768034344275971093623040201148430382919079827281895707996165898301590110390845613650385602202292266932103779044755858910530875400620857854223621552215747648893914893065917123611413317575371445570902116498163497197780228330759057103323650948436112901170533824711890707307526176779346962853485223979003754413544580606159862820651298085658867101856447116496487582769100719436374955590576694334720407073524754460961785946487598563391221657486592919949111786935747763571835428658362054444915574196475127684313077563455288525265452809756850369581521180207092621473666309901660111668123463748545749824559600111135895742069433702936531582119674495655455914194990719738100984383561320620785403637308691903955210359757700373267896440031495827701198328141907996926612754517369054503350773341230855301300084190626678048072386693387184412011702245736278404977107985900101379030823941604248682054790601744390814698976037000522247494147569092095343547631387061725009038833889548586117278010338715706165771860380682805729254914511692882523463046555473064843163345280757161038141755153201328606125828825015018554732296839196168119870104865541352700916158066829230818601098056510820340471459207605744583566493407952812002715184738548552957737444348957125970593534875038730865440300925015521161941089441476047216619439659344684469979197694894940401511493841306658338535245297115236104144342682493221564162711576834833153838128410956348087013491255197397018691225520192046806808409647977925231872839320999613165868372542487104529597152547195796099622928239867366649305176593316774814875813668593128125403397110068335662930011198895021694858120366815317419340581621969601153639151776542357217833600895503863976658982671309230549131658454551581467237725298099013445373613044151741213568081087297448195281554003308722209346778937923114179921034756282805688507672441123402892189939408654905785666549114129478242111702888076382067807745327995264406521021321733553320722367410838757205588251658524052883475421099495271187301229950568175404275929956716494085677057289242184102967647213049224393906171754047664078893671516215364766171908904586496747628048389271883765357644172337760782070506476913742560270015105437040404031257335895920522277426638829189584068715225423307004222337171322566203745164083806367781674198110933479655643408105381335839471691536524160450882300628964633032120312513739205896650442725643372914095321202369421260613787357296426960947655180405654292862750874494002480413606940804576949640472563990233393867986103868267131914120992487587396545321414735419781672744844057086583837108285680884381526139616315560373044720407030099404395375802213822789785371845454187983662014446443702042239353484590573126226354755796962514475288162445186520073293977926447500224444584894029328570039637648539697524310579346966077482880406311927030259919722725716822773206893086498322271189393211145014881079661195707015482715930547684918083263227135179443183569757306699001063573897386967147063515536016585771787904798379289175698043264089961798534144709462839559659468082131576393847025955933374540166104465105221186151273138408756111554103910280969269260785687042141113299811428024040072211960170258722085145120533552972945834135908522902650932169534787545941968725099911345620817550404011545601659169649800728652057486018136567242765981324021925925722696782647258819864010270472881623274755113679263095298549259011992611479514095273760457932100849500800905444560516667616047991095967837733669336774633584099339029636947352475250412737549254510452175521849062592900714457924747816514615950882585553531792128565386720195303313214629051504075701743689820030397044055896446010527661810669987608625367646514784555023500122688455531146791401680327097984393878027258300012966048273499679739441637068258883634768193584557865948275980884153393354127524140556931962409950443187903367848992889433771809628854410496469773765276430709920004685248717889170176439740917717925905082218043019632048230467333335040784790907271469431993340466246962531126868659413702338860315489159818023947753312050701445224333763483974431306405469526200682594456739138016754047138581137152342188553625561939679888681466387187508947136807164488061479376692938296095212050006298577629297709300350012575102366677627032611570455739154876569865354200175130582571232339686932457674523254876330509779986755274007177668461043535071124209878772610207225614102040863315465546345245419745436218775625505222998063506532124274583038864891312733205014859522463833673326984430042577877049521574343843710295760155248300292826219143720187874977022186654421579167703612076856874545631046800666596118520730718935874475438956837298981342978154156698991202084115155898408899162297501460897291824205666643733233096685364004024407761889521324126048887229917734453066509953223453517353485991148064750531131052841209332319101948487478892264197228724627396265248634739654565793919682197477870028065706972346647053125957015429360279588333976338277450915451068407403038817500656639189160555140616918100259764014204485806846282905667308179500246936302928628603392033328967090143952005651909816261867729013516439571135961871953935196606106110533794270803125078460374245256145865322139289491421809837426344381314960944930413410930186206961259643580104223331937574063503351639647440653071589507691392507007064229910452954109285167088073985953917010135749098585980737569144759021304124621813598134010497754403120435534484489275452489787743990702228681428801074721953000878966815228764816705617870038834396005587566844540953719803386557364593507913131211202624162899482279221947699520871668041594788102032989827560016606327029279309848735363600140401235415469486787104654645350665618695203988423189395960789979691667729812333876668514297930458166564938169711107730128126219599721239994171666908525361866951526819536788236799614763349464168716523133786659590461825722390274706532501700243356205597044345031121801587164711823534388959236543332455505802606850549620675372324369579242812249004398339426653402737812325950797321656047738756190792622585456496396238075186117565658845993847261248255530743514117186652383758570112982778926125965651668251770438565075882868596240529787367324120273913524628602665600655537818837872091655839086355189918418479046890995859760396978295684069769110959555407358495964860937210367810641677663883007879731315733861914075033232511738558656439074069195041386686305348617635040484104164384193650979356423008880360023438449205087165403628599947122243263720602287002729529649785382913479488919013846294852442563820945007804011900773045654456220912457566111990835500249719331020316739584614305872958918335585046330159015161520174579201955519428655236228261058322301510148608555558134123756283674378609123266433366169786594363670572989640792314575008806408745211484182538064456402725478855505028362419149872553142073994225400584299971314931729639406842558760641342744892935602255946298085417836224677401124721838224556180591866535319155485046183983468504602852541232932423444623210890072466295979891209820717625508094212615336953219021608892398080096020059349886544491065449269017077679511693897864571674416245139583919464091761414418721651011621064426934585810258742021701977529921554028382575120845154091658637175163075638999560047639237664755437967135184409893568782927861381274137017036049167049800971289087988607884237105144322847628716801341362980606645352950824350988019369674686271371934412251457795992139537667829499965982029299672982790348682192041879516327369801048543198292620894957685759341474727362906718460686972323495012844489848167016826646758442800509177762208042433591725819060372281959779638644014846815747573322526402373681073472517528752060394724800139590520911291157170664050548620777425905398216080630136610488334306274413002942131619500749789850112106531237911584235788015335954340753625058956401691212866526901123817131634225569416928925351339865711059276327456330345053907978355343576928940558844942934536427178823440783371254234863900350980030724568448762512604014278108362499042297270621094557718385833929909883397111326266269908718301772240113357834730921394943495522717995149439222939850287760581491027305610976692545390468299355010093002281655978236980576893374855829966680710422816706522492483946828051907845499681185670053685365747725017215667851940586028155079193433412657729474358346280102983405679858360422412250543066912921681227251552584087743540790483024117580991554522712342897018993927298120499031235219845289206644359188195396913355457831077189581574535262569539937611087611724602993782932204402891175182061209451691502953965322894703985511961465881644651798425576783620497393146952840231406364703771367535004302874770686191556797160494202939190445181739722161259988795505258983901203736158456373259509986586128673641306871106666919098717347600813167317158361883918108318711017220779876823227908073364771759367611588364042635699681046371521379027751957721904712741207159869368585438164387039264771209185276333433127874825612112419626734131590623840564997441532160351290813043621452872320898569113571456958959971932137392247590446569312486093265383968018717268658800561601428255019925394382790996277146480915165908928351802176563964565978419030396875626936161331763888738357223334305348803544998972809406914177940691908353417445262613743739845274621374588474958110124780413408623387555760870819175350098527761689045610929810708016296299374915095461290890703364574199383914799317510416823514756159324321100896396028484138348459969356965663997656090020222716854196008324675789575995261626953956092719436534742608569677532448262277226925372068752393894810582317890373218858554181588696683930472200592827403823743852546704797207312884537275187220191324671667572764427147476649951226556383506385618886281738365769467872351794163927980950750489700312919077540348685818255920006214029558930422757712682765757809655869421593735589925793622032926348661100444667364902605677893934451219971615062097331410301823172236849287290367344772047440260661942749507707220054034424594808966299079701089191964704582230058442596528132759010858481733010856365605277945328595397336883464717653189585814160111896602143620525119300875724675292694275985785726716058783048382104628559182883664517559601830897501442901250198683116054724666719993577686048732532634473091449437163283652808710272704403319407571233116250274537508869383981807726958090636604349958875441497657917358027198767861349747230746253278478781829720310490480329488068240247527015681002990302353004101419924379920778960566057865408125241057619681236212765936230866639106984735414241279948504575120984231866808548174608615964884347279942561515283920165487737915120812276724376416882510906676216928624646215197813589664706476975521163576269027918189513440016508450687738298232571748883888819939651999394770526747174268074579872665060373468367173471360790257276917732661591447838243570909770114218195850658804704776423480000064384626159256788168784028359075636789476099052733133013251499096531564717692319471470153589400617894866744365709490393994766930255052870318399398085166291324927210684616517549553276252350757155493383192343751697546489210781116643809810290250057763897374773011478936250723890755898715138735943312835961607790568026696445134189701083336133040718132134264985045157145405720540653087544065194940375506989475546730666647287192604773304044363774771126595440057141665455453034068545514868704344471962152687323405717909367398623064317837085035621473949894017185961859421910030540134393938007445446615240946088871472211889511835795943012397746325513383883191428353737243200253378995245962363521984194690537107836248574129546432011538570376215853237598326218381880067546234893794734903540415652928753003660413526249754368387785952709764790069976052449254894883583916575035606832742691382488629316691925110778422646431909679268628509890325689793986925372008497132214148043975291615687802793150126802138309683144122279145544147504774195484860890789070771014983698407196309851986226529142718348981842001021527898544655909908069310372295061221656355241393964752889776467378290267543078176714070007190701516716231122422969504625332335023250857740305463345332803051020320382480638600470777050488464448587996298778496011684133749403451162733885252333935164750226675820106955674739327022991099013760753045734232697972739535083008768945880685522646987935478649657883084084103094747490235173111902896807216822662918485033797658101081835500315122739513583749585810177938021720374374602212100421567337442875806074726155384008877327267663929757666986399993973174909860714526373206357155933702129019562820458925663933920944968941321987466695319432525546052935815529478000174859244745247434752143013683221843453485415638877449416207522562643789107783439845294367365439173261711121997124225288170996121710650104549665674507615945186833129478026087148703388675255159181040696487318524242088025831294813236686714584568208646985058684373794036741753328353528087444416085468483525689657901576573682552567463196806580755631737399203599953269585991090527676661423466959422437706947139966148537454817965210574224861187562038055376253050475801225949809916477860667613185705059919634959035912135078185502251506284536874451708194915490346991514738215590984268636574180089745614123440237788954020884222186345171389310192466977415866535040759838900013452540824804163092044016077621224919996996907954045854467514954274997176299216343154444322413986034557493498625881726264524105402256556390196364059616188715957294181736203809681550240119086416882078870241873116926032138767598750495538074311844405520689511096473809477983329732608966801921739275058000664696243537636392886274418737208752727487448497970396445554783598440991534645835896546507573401490183355855453292652017589203792251572905302423706621311749225120868223467841960464058324879703417177747620050992242726460836099487950168863933641045377386969861972821227817587947479875510552861498140042388011582509135644872459839913645653819016710758966701800956874519658223782955453154519111095828631937711250238989514633874344179729908087778983529563054485076009040250334280528299472528098952449388435327452918898754644933337889524543243952587640200853211805870143162720090006754130188148889111293782897114823166244407820315358663528669485139944530023590834662955881157269172999701638435365725099874926013970947863821705641851219370334713597197133534775710827646193712381744142455154547913689525824410385320025455229632665682189060372749422964606661091780870995030609734831643312582121704730764036943484495858018117673585396459519152627371403357585039953775173388775315088485691478813703874293383306019012649997098482805901638927808816349431498023422260278738359145095116951199106507435700835555732271015183584106325438460495940934755946691067741131230611384296006186517402384891312405463016688334643403568063466741861742484008684094802423951820123753591156587754195218711589228156373689695478177493704997746990636170141164863915994710893987035303485357101661885082192005782058519255772045653257102204131562554985767039228132833850391120638367389443299798178145325749870816115067843037200290026804803595908789192685483499132374322539311977445078869928493432258877940815755942210260114690378374243165286374580922116329953017717097048879352436889038690883321046951360562795260793742359658528992903306903579463117271417453649455153130557042176483454586151357893881387582075239069274485349213630453975085331775104501767749734117029196844696218670850538082506202056466406674599053199451426893257267829103852422862034981363542863136142860900208926217996309862778855185989848777693801944602607023437210435376376995139599394173161854395889374630744992065450407671421453679172953506628271511937616676465555116776221153389160114688519157049110185024551293783231668036516909644135453757635435140791237153534699930814409279058001469436597654415464216280535751092885577850524224810108100915052022699352808308771182725640501510635616859092368649190882082371629777448306615672651698179475579890594492284001873390927643083673161160051099587579810045457374867002378099724551826334608607588403352308587897926323138401070184934998489477389674119845879604900921226097969530015048849814182984042888896677732121111100353799322548225560240337560610993567276231986575825443319876622852794569779455896444499009112760232343075059573610495395847733010240887985108599986921753397296309265428581479004863972814725909488540067052166131961671024937483960955585577477436039960954100406037329169620880012530362677020949863637310112819972278454598295755959776940475783618017029999788380993053979190603912020740530873945175172892003402865909521886659167311549482465426907440491147412358792393606207204096978538534625490624828744229196745085609170463557984875482500255677606841030490603558060026306855819524019775317745264117964950642248993074013059951368316186182365325390934524171021049495861311035124759869707901941325040711728192268102700554641089394708968606428072202885362876374115564276566704712891262974625113856966142910656272260509514879780375596024775327593906136087195292603865878491100921891539985935427137004627941439019847241909562763296192083669804574250030230144541158659420784125948501506242662723353891095242746514492454091262750765652474440421964315691066702104861429203531901898787827465494651330127068082077691921064962881302869544255177525873971867825533249914255486223336938705334566287330816560323612157134294305092430750309484421368534860787613285953900064961056544941646323438851397367953899155335337141110883927804066278453247161173964058623100194898557949545337170049827600953514702510585558275300741315301417647655361446905284064497457633543274913735770098906110142850952916674087496327599910169304730852438751590244301117421339561131520079072660575530206552613219339475388586177771095153293588619625331754443408446324220458244139760639521115352421216422213983233363384530530610703528616211951240518267938373954348271465685064326617332953215705048330413797588583406282532530790834577515754193881246965406881168040880529279022140768707806593306697833985436655752139560470102095792249440151385295779446581204799474683048200092960293782355533136713251050419664709635798243603781281587868132267275019512550131966035045767907989620770480168443678438166473387069143926585829054690839400498974315372702885879367696821292541123226765252852427575465680337461132309694161195364259963365751325760389121473144596774934532036527608060457111770992723893557842360903372150103883871074285212792275980605829482308781820301671172360889464481109434615288640360893066769426659435371570126088474143351033831221636876560735449656168921121766598988076015019114920534291844405884780073270468899392967991232256577016341076393353823211617054573079826949811495683528845449187526646101191855055151190490711888699207553149217638503885070982567847890003273949420067815606338414082907352905749881041073955894024655663296641428445964426788042827088919111061765795448302977971367470033726387308461921029686116602370945788216775768799188179603170016850409986635839791618117978719747312328630656878904442589043915283420180115974992866920715097142066026338487538468146074953252348431765119615493627849584144254297669892037540389752537582032063577505147286822334055697916671858439963718242170137826419975150736056120837069288582622714804254406292871743682590162036935278060177389911180998407014930343399083916060321255461277154821865082086611642076207697919138265262996896175035695245890894721718436482156228460745382640914999988501986690712769959546047784895755973707156157401740793198922775229827063538139624098403112340330684258980072481771368724772461105684443818244182227732670610023676438014929851756345381891825180791883210740175945410183885666122798398376880405096061906370869580571871262912778516613264217097099387515347435905641962702514566038131513278307998317897566817140481349959935257492068327398880627579564418671653897288521831842211893241364186902780260773195353043889553282495634459212666587808268311526141503039100727468708153782192816556297412726471532836148802282426806732212339582534370088828275082931618429818501002797643393306550162594171231046032567620239806743589306733578691895050772668563692560646675793517020910919729792255829418965195306376714549497774325657887853253761580681651602998819010900873769172111319211452491498100589113993822003648170107256631604936682614341647538455142157953304491498626621643678343522933543847642756715087620580838842481137105959748249168800344711111708470238079309644781211599467163786171521015668749703977734238897106650258797364383657076646647746624562215058011144934475133634755424560720523883318744235497997583279285824195925620886525989045463243709660107892952777099924104669826719540430563218478627741331643593018449907304931345987231439468196475621377864237400251084230403916998710158627870171726050977447876676531955209255447896009908046135534170410648000328489871796782219301548596178259690219744552479075288235222241124259709616296093429032215112001021285961567850460848760506125272467987639997505075497086217310991590727106124129261020814425896563527937261681505841027497182413506636925503042396813040352729678765455125002341796000027625965691028710045972166807266393228423266473597183969558573534902013199996410086606905070770667107714015701127431672059076208025085076446405969378011150060370161509311814349383078253103107860154215111938065995131222241125226295466197557486051657752137099869276935417357395382281345799886535007789697863458121552602100568479079999431530727442422575654657117658533767914444884024700450844479155459271117886937859044817561617621310734211763487102592910673514153100272832069221146526519948088708687459257254185566077375130505422094064467802473079390305780165978226242289218677838810069972265137392885831871424689475309510712512540059605727534292921361692339914179838686464299851271383321841921725929548652839430833523018959965634749610537934708713862712278926381986979173142072102877694732796846351960367329680855578092776455573157826099986206971113006762560926790889196390639444300653592777516542151117437126348292009849384829284710168840854880540054830203620549484517131461126342389639493619448568253528922662440844591607249529903142727152316921282196587862716777747939484949893193732427040076625664012588270896555160185855507969470534075112656468580154875223996801971835307911990878050400770252291376159207445117074609545150682934341081849529658201600639318448541278617897787102320220470327736123096317656906295712248681457631162520943467669585580774343488538750243878326692780311377985845235359290552233817580676056630882139380000336206072353365631085086710001926652581106550724694642269466899306310572034136202088867303748340643214532436365021254962157946796341467955268020827748844493079608178806297743015683570668695658194679378168831385025450948612195105098542055112344852977058780154167293853670376710050609300978667939312524360333416005283519080351850432476312570662717383694245336818798811975101863752491864495810510433790611749286868222950571129272216912524916778486737432383242641281177562782710317240217691219093022483729167100394859704335324288049720144735535934975294153584224526033436952987726768832384551885959826985788862230053331980971027163932945812021817381782645713521880730728598088273600080636055142469827188698560894705282657407110859210097929235718859649435657518413316813450097974907626571098706266767369373716457407620923069083382863444297360333481496092461208725384151348621023028818075789308551905422030543638332450774844852796212740553538680158646178385497797628394037449401772499873360559629090806430066627239232498888642023349546010320919589269441800314448865194808826764855060334165723898015839355633846468434958397231367432997889713745420490730639995667478004031540357241772506989377337152261261724789813120036658390280787906036887964460065207540722770319442054796291888862097573525820442890215242174597682014136374086157744336189894404243176791323680739713203050811819540622191985706273646241386166152640067111380684284924006546937976810322028971174979884488263078942259686701605377025661618121260136964564722686999227678590923117832765845279305328859097801801592352284629355828579062410721280999463350504061766368492182037460398401652435025436944763195914829507913963335082145149387633450797671249035602169702677086686586634583225209066186905366193647158892522575277848340666318445416617410540620547267989865562258251119413755435567928367542861730305650295402831385662184364844667690534051684895100527404511753080629625083326018942524606518599667022804269114412177221282634609089058354534244917078839919987124324066335174118266438155591807975194913632496295490923538319508801462433181927293632456810763818795561880162481203263540411541216873220383447115751820749829719380219722254792672030463111484905227620650318451275204104690656513728120989369110724974880397516138863665775479268321173502866496401256897431819615457585367134923380946330173893833810445878127953652607148422019782443745553245525209981576301388456712861174348494770956778239286103089856133897181490381824535073804808840622006710313148541022104262272379791501751872039688770383932251249481022428092045898934729651425172744481169133171557996500331889670899205699065952892427025201342477594245843070842119331728185955570649584077428953485496621547929914431386135204090598310871259309496068418883124904484386115065985630570772161371018460874341950628338419736404877468100408772961784708922128483359284809772501635060069470864076508239057660684947453543079166549143051215598111096995124868841324508512046981327898897612568308228842518516934177754154037362391671887917242021966677420746621954457733721994104001283463295042605857399852137682514019852814648429030793924730391390410181630311470809178366801875856114410869778372895193162541211985330232394801311047930630222890941185367086790980861043162857777931345308883464058176701092207248824721989590003423124445891722884181107381232735435692092243701457646595369690485363184729601719282207006452945848382653015915031913149951466811876725386492908644353874285702894654224329538937266689241700623498923794077632171673457326871611240877960948945456180499525845294923363320668163820773115586956696345204967071090425871919228145958074918605774027225874292537261806713086021032087292938727863004036209663595918831037541289619601790616425564785718406454797807117302074676649945265635684412702388109010144776467303472321394986276059701777669460895670985635855786383095505936849016618949471593059709458436461420515227516759501153413315533214897363006448843425772703848782747842247386797125111659828626717938632914523667741990051082421070178081654869346241217804934350847100398199457230478682087417190577597543689311315735352651496735152983824915304898242320017799766022340551101255573031895776054040642250959462843738368333934290348954532367968008728543551286510423934159266634553622408238208453546886914896135338623341266201330276340674249521802145329263004903197558433417327961654363693114998281170284602486792869455936221755199801403560503447305486961700972710571289329815791666573651793343009231971504481854809478319472153499271799484153701760090255862566908370465307554205545436839228327316639367791703796999526748091659422302527673314323422305811496984393026767674667435486978853441383784292672212181122680316810178960860874499852654636388452018899933436538948591072767735118237289079897770816077140783514114055383570675503066796211934370487526280630244874768643742970998265720835687634370302885603842388903496827973473135279126918189812000569104312088380747496509567182433454728329859281865322755674460961942743865978149423215055297051090989450519326009056691603362619178894959185352603972402160999859802301546007946553181763779566630604558328343159726404082958069886800072043929264620902172949129223093807174507415860049028000999111697240252525513057387706673535537031212990972139549400150748004664873743953136962110685776619268525356004725387064573360587722949758362432210897947749658963485699615933667222802648240221945528812854165802036994881661944477369873439317032342685144058746681031032542693549775156145711195266954971052223107012697377281839424151974500132755482468324090237403003365918796637587850869677896520934884856789171572150713144025273672811145786830359414657349258123954136458648485485869500849569914483848336355247746511663119522111787124497335041067252853620587177037451501839340579548377898895755243173621989174186679722032771961000573100950248508949178195429546160437760729483523297509303737597650754817709919851536110103022115873316252229024053312522572722110791942169320310469983766771004465069297441557274914938164690025905754771152511540095980581023248246862543125884695131224583232792583904182175404781934770259664699421758657370348297560926450795176582866469821681859586540890412013110733841729782112643205697909863772274677844475018786361139678120585662416838194316525684924023576642621226571702901188409595900294634128200227205356269501651714173223909054820330961424746204907021847841487315021017657505928475690834132050843638830377367541960588703213047438175973797515717540054977659149672890053548306431299192832063977796106441280453801930301653567061676287695447712159318259657108753250643558484181527775140719908241854063824986046842578100587645642666269513844732163219701042986056818993489907903302582495855292290306292647438578781277797410306120500901429901313318113810353049236573776647488479988616221995910817735217697193870705077987635322232179800760609677397336137934799567266407177655794801087509387468471957019131394346252752274287317470861640867354491234192929040091787120142568896934504839075445232364652881584646846135759620071238631838409151049021755741400002846833744634832101018754490110890042747578884373664385265538641048897858687718888230301181420943558919564509163240262502499817367453564691172407984387926518215576124856648680223199696449824456727956545706320765678739424826969272735697725786024058191265633342680107783545530722882130738726676314902843498210058310651867927476133807752045115883549910197506751037236834189378718719911607990034466575101764558610296010850635016220602287555990432686709911833646639894674331221777635609366910439212792872607558287497033147147641857060767775374142959768449316238383101404330227038174151553829447104758398900063921648321142184342062241755094871578971353217404897208356453558755803096330900769644129399896807348191334849882737371021197557459974284334712753445899752637784396123516421854401150312729195865111844493116671049435272384872870850620325950931402003850984026623581882960234232304893400524827482910195150022884437305613646515292266582101658724154498036573447368896306393698496817163808912997946121305069171072591659527694553849368066918249620291706421009664880887206921468486875778993534765948159249624720788306366965017796891793904161705515892053220235806899895629160848049012093733645267314713814203662021656454668807417381129893373916744442409164783904389048047229485564157680647840358549125682287507548133962506536632722818820264260938838259058189337960496958932158686427077320196036336059862997573256129039202152807582111453067103721375294760509003520039565918783828727431896793747960223646261700119167320236365470024151677798139369533977052372225260134372893241168391164322560486622932533348702512591968196892948814189891733433919250008749821069268119277617491996334357817778781753178076440406994499079855879601143645281035104876188969074539580219283159551127092807295576011575237427062785630583885129121977630936422329888950697256273712864243988598013711554097484860759047538238877997370300410172340185504498871058686110972947514543903776715442862249313923430356354336546564190712349163611710253826726197019021926412845943202371918678625589466221428993957932140778195116118801384994857028834325552451214846535670326220661198326471017756687394647746788870400894974545119605527103851448220098173062382188657058807653012572323581178775971934811644526246012755852810347809524450196821384038279537113847793449619456401746936791122104478125130910657196210111135257176119776826611756097059272325142075901870982086588774257448283638721106502332120559567383334419557311168172249916163276417356768004121386743144951974623505859589829284582673739178441123655433129866505914322404472936847234427931378349065790196070906964687340743147136319380665431728464059223044422863631031381097113350531319895832371238238749682651198621228892255482193091814665563014739753778851786538837938849694389669264933091446639179080181516342116868999309516456895258323682282599391994561437622444101529838293482777042163198772871837270023773844418423219548055738267077782490397079447733505635967520212717925585808126618359206652619304366490636286831828817034635830775837126242017269356980589949830665589907189149455055784652702805900668275335810645399975582218783355820434124297081526948218845147280470425125680812715857796495309711891595437003482888564368961912787899877114878466096291885534512720461116705746697386310757352290616184927551929782072494237390193788263537791746606788746082986634048988044652175118091262183203254643393895839259851642182349709091618721470548527600870745402899516780656347038212556930870580691790196223181287480819909011593526618014899543293982763782610638273231514359565289782418802104499251747351525538928129425054475106103283591708307494793654185084722451212171082200346498648055020542580715441707248165458937888209118022146090131325619107163921837649007834182562603024190532391893994366592179197418200332853655325186075078093812716343247143432127696174700934627968617207099381750876318387621204250788817178422752542700001072956605770766290166434004068353708807141875020593810725801380095785814952754930348645040774874167774501473618397131313687288805170191802786206557202576104991468293861062023397344310649965294276218001053892606408448307865228006656042091379243822953816357398596198551053586768117935398725773480824678718074228971777141620995900315710917017353902605201200510900155165473130656687435382043113763650153337416660703088404014846212249075137528710722687641872367107579334760501067254307037712005360905975811850467552396572646910243332933552132620344823207167877126981696423213990049632885344919274868493296005231766897395642441589787342140397424747261181969580853858660908071833890537630201291025899291845844563879512156368515320786314371006736697825235053659520388760369006128453718950937173068814114316050663156684832389805924846404467635591501575577172125381617750070173170033862925330719948441486365761017860547690939215844632446069935071153849950316473610433502927717057467906754552115988955930783274820716957226337006765383422980357259160291192275707774298926790829684377658982967399127416144247474655922512678622405641950295328672135394927768893839413968237727526043151206253012072261735833591496889388949733607528192567216425284351113325490552378607265134542315900056209042340107404278740028385016149088439101374473691641025691378977075245294797683524098369063854098971570877853542152047533995088920561030424293442101529976176927602959821043995950615757769044192541957430685834481486598067334839226695677986500801066133969942222351264240486984267389644324997940223680194386102499827919435180910795544356247305567128604786228284267956355129583155147265791949097164917818056537833430393920111776455563100870476949276820459009939205475067778040618483756933005306222720620473955178656909399108504592862642564048987691060619117984021516058360738298432700757168795234462971131750261394073599679039926968882637348509902115489890797532133485875532198374578715238332687478017178602154180347456578982195382983800729597957043100133460275294886254341967419565049798684239748221369979378079161566149890767622265611081246081025676307302182358060251739793123824538396189792074409385973822123230692136782851460871763060223902207897391493973268434880362391939703461480140133825353370630436887599808795679887950504296128764500411089643923833600057505249675207576158062455539895998587408958625907620385803368015307955466076538350552008517344982337966127884262440781450371340056815426216238483236923073995742754520032304865993194648700273574037546366794208241940049352121828178236544662253388582512727902308766599423344543605710166736464174365525903307390389912209289773041340555678414458930881470608359082604650508509397944626042414781600182047390462599136798978244260303896442848052671716589787857724462463289079808096079498266691962414113173018262540333788671055770125883151634927181718151027821419837208812986184074320971817997951282901980631952706986220228593654169053203870209482421153421144028451045198640680674542964984377431836504769983026627836244717391426453551461788799702133087413465080915938572967769187401050607089716633345216414340456928750864258686529628467455665279124552921332303308721303903240401732642556529059040690404870099333034077248454143698858949747624282929993556980456437572623044399887656826875025984683310879608538344569482077439906309802744450374142291786858987004143734257963104406173841033359457677892380681218292686440608310728986854954987152362865023525741552083989466359675963278786448549713883237456562174689363477999047983915817291294951600460825172533081096775954266513012587057420021719064450393639069345495850708649924996736928220322141338180000974528852449964407359568645643130807427426770331887621667285262510864621870222117471985123152873490302429691136798914232664866209446025410311863032038896015737772734645431524545554429134652320353254987236363613505103717701997452767411858485824380121685499855078170162635866665256213759254471833394612132478047547895012534666572914761031482843351870977203369864546985510514450487844495755458972382538428219872977855418095504554869353443928480355888040432673160936569142480079780454152332921030537429159674255990662644401269791173012884522182165628410643265638994753016767711791349201703153233278243669040380047850032918093253155147986087661235953447674480571630512806909266270634422324244338694706122873486565781330577411177463404677307498874516509255640569534490684663446892368477364771212721992202762162417369927520586219480083654156797443017829681420691527239553695089621441428174999349098560760362853093878211678401555441481106623006744231459519112569839353358562965019887552445558712887555437994307215657366726950039134126079918883740028965540585234753028661999065425690210157176097975355132863764472364003802064946501096544968867074934381556614352016206072849738120923875187488596444089520354479929956583326378634070459533302971338445120737812590383699927931332076396383276592916588971750164601330922805354504367455984350897934624757997210716320132719025750082954726714864617554858926630170852301523816233777347969537617373638304330853860745163230683958710651097061466623908863850981997962412882898080417048983999827249932127929054627025490718843282898404807415292070019882912503874192800262739058478590709269023258571769877338610075871786897720323000331133417568146055208269983131616436969431123979223139636213129738022497170178138246233748180491531135870531944878559646696701733890685943488151683030014528832685085403897583187674374965534252575937980164028876627931785049223633686058062406722555753314307668451433120810042271886577457032469806441015181440819294808095428467569712974149365702658072454972422594026622173166737278713646108835141792287932263922893939747476186409689386132434855935689212979715874409179061100145714600811119693088094501394428976965613429789084948563071698833130652382600023405216476965035478736258227747034297433033574766775665030865480541266128395461522783958190031186237379523900655914534211389378293184910240916163541296631494555337593498570996453234232980486099138376149423913744115443697421529897795061121666841966189745328415633574505842450927517888116960779178938224479156871079997070249125589411917237347714709836121091103842194142885194060901066888176346017114856271002746326877354446645069485418884524956696236703296237626337472852815705115178849904734032372565186559554082499406746881615957636817535371872200769447749120827773934569534071617250827869698260054220497460766564864574724866017818682316306569078973182731495750437478646707479702480440726695930128203552344940024836465832870240944443138724187720300620367351528391025840715930721351719812941527600720788465532914218572434861140924893218243142805678746812552515881461529086030840309349072867189654343174679978786412252947967308236611195639959636819407651513333700745583233996919720347095954096406575222105995810128121882204741144965357810093980788071002207317702334984015421464761052821605480693384750775200503821095646626762007826447849573530348876634728852750239328104725156991657689530787289858315571681011624556915804593024472369096724601879944130574558387567424869131773581277993581146184395415154112235954285962895057285886246782065971951899015161035292098992240268927585036496030669559807152876508404960494078386324456704289649769305845091891560191034606558054755108165115443856299830823032280561877081642281592189690185254368566152593444576126470777061466922568128689500766803745598839279495394506462654194818629076744167745579997736163903388497345360451374216829525877336130428033500066790224330983689558044446301877640094057458220009789747248230685033410908674101061447966385592641128786334812051148408794970134799454514868382536854229700836046907863919266266502142343143169284663721351204699493605161584147448637263789199855169214619249644760500182930213271278304569810959893250509053538888536085613818422200966400404532968890268071201957699636868761617774763254193207900486494091142475106527303863081126924255646996864704155693386661798996283755170630210622651899000079672029379898259886250617530588282378247213363603412921364723111560370507462190384987186375509806302961139613771018720399328010662461857943973940180825568748772668680186721745391355599591264580820569173002976527250512295828114780787705867772738459541861192706847310401730498647405854675032323708250524892371458910842841014876736006184766046339512366531884061071875377108173224542183374009418276937654365030927746786695561709874727337193143898522824092469638484758328457677961519026400949522216671574031348113727626364201010925773253791644555594613205000388057572338028045650904636879739923586172233149457784979842758162479677396329548977589559673451129396755137306057583306107434932017787178688223673200261555908023770144432166844526381171906550400440920548929143622700648624673796200547278687044574839464601909210660868694161801477879807255878919329152282084300350361592404554270371721194945127567872455530323922367653184868381385284396594122250039162210478214658789893483069516819092786711873588363428158368369490998735864358292622204312128010086495173674271336844285319357885960302978199737346838514824084741080249010637191527281039794327603138947444101221346039630975960931439091507688150606284806617701010134232075824009994567121321540885982747733635080197724991836828583312804724796359146084578861805426352319536706038325173886674067794338762737748465639817884832493479714194142454485493947920275989430270125484982086788809068912937457747565128989096610023861227281032556485946544191620659890479520016123040527827179379405427747622290225514224486538459367746608299758314473412263728870369724104908813563752527216027117515490251482616648380758283787701421945186794152011472061283515728196803262279798974370247703014901672580347148111733812882368646290026838910833566448058012566651686173960723449171164178258155129098153459548765459696937036675353776114007624786167269790553878955590176383407897164521049690327968301748807068203411553765831688227211580688362258424414655916160787835913604864256451115001336579179126434680640885162927477116442696073977345453461314323255397121624892639388445175451929802868853349795542463480294359114151244043461555481134028299921645873895864936003223850978804828145328888268535654835082693547008041940212406756949536536694974226577925627922963191006900533040434601673122705904677895245165054949441306036356975066081404923155008491108654234768962302024568704436889561391397142912931122459079691902327366543959352187680039693105085983279187234779094116487222864205670470566197000409869832393585973974053162642441700436720329561905376488211847662798872245289131326992746794955532834309036079733416645544524662962521553201489018692855430087497654818156869735940247349061653541134811904122400023172125075443043647529326769533039252121455179536156175019455466874604370968061499014177599876701134746031615362482590617489398305178819890532238404673435090213557627154909271753123998768580272789993550734364778806456763920036508216043473806338913468834833892600004684495544118618924138325104790805622937734299404521788174988198845394104449687556257200431564379570735318760876749488148339061440784034906386702434361949115429139903767645723653264573934885204403072911909430723046335382923938225654016610825683103864010434767563119586234903100876485356023786334768749676874213073772660632964106617542831622601264138142778470088140384890203306585972215359033621567346679589078105938415094036870780097367515760191740426179652192740216952349863313678284707140242037584384016081322703168986685279651630011707652154840947548681403966760527248507995762857402115180511329115937380613898915381804202944993505962650734475651438276744579056612880057520668653875463656933476573019728390794512871446192285792831004270012518028301309316853895135700668545001183442334959609692120128194737762046886480109727871706356966467883126652280715035444258409816230291876262973785400500868931110116054934603235515659754093677270154679633602987138296081192318983809138809345961415717922313091719820604894406861379569620557653102664308548048171084677568812687762158137400596644414306043118568108737182090110945477817798070413434079116453190130246650136217833805230304976581002885332781804798791630087416574021692063189722324434781948235983362374966300381244074135530692309351104875005588726611579214886362638546070371219744283111571400651401557014120677062919994070630405134369021574653110689559039974187397622119236655440245173312380277189041015575212762983789392391736389207749627075012895969755987386633285994485808504153294992461295021624230535048208164682832863219056766535355043181128898778615748186193066872098197302093424495653553843785846145261855895354360115427190636977046084335236731721839832568651238350001232934875651832118036190837628200122218793999127956924354341887906435575870828070410898621492987662494470881687535167734868280505982990579747231803286210839257152358899719384799650886437698150217158004224698552869914493350033971617035208729777494525788507113550745519556380626514097761133676272917739908593543025933705665415931183960836123571799478423670169965596539054003284488636175476661507175075794451511293106636455200312485084670615926314070093211941620143544299179334639697979021773950005396021812825037183565990784892839632702161930314987843106673004082774225327359639796360604968547682812430537744312273452236838151898373262425429121847887347999588259572176393616872534388621262202253016157887295264510868065144228033312454555758539257566176161297813509109928053155375640429471911829837720401409896392840718944252229119074776403464511266145838001922467332020557940155280529026304376593881619398761034524389052996608129634732970910201657145606808635991184618216769935978773912512438654308695152174283715994575957557548455799891589417134221577870062755014781220615535334979606862949754619252100970776893962955975613163038947383778658293990251745930564983855164147719016846854215703408490674423481593359703344197546469491933813217215180976606259890114034802396006610972520684751534035587056983119314477633164887693036695180192089600473360263401896195451560701815421496897254100232450204382613093322280019212271857612806554545976283735279285154009476354399065205900183464566850981333891589734816793124668611370271936365914877960431771291870892143093899735930086896257140466724483672363880219537297093384652139987543418145199193002620140658298658823872535283354240492801188921909581484195012005948869290737057109442538047752988644505895496175423834732106772076215936083891483446591074259739027748570624760843099910142226915811271784755343124047559021079969439712797971304856159531679132893251397719635489438861240637341050354578077902951447889230665109460305330707949927038760353035076716411273815090654838645257903991924756153632393392012065442550102156980046274430142485024125473425033377184477961235087436846992488723189061266732295141347940618373742022847763036288066986219294599615862237823961428823715370364880347086310811034262285316557899038949856934330526918133339189722867605759978116183016067944595678837102961593114035627986529217379079830241522354784191737885482138309509266861690609829139915082382377889598816973083132032803893789068485034621426348757030492345662249603320354886731827188557467512197107043523298827135610031458824531936390646656128328216067952930092415037786309083486692085390544700287980981381325335207894646815587471262377117187284018432146977395633814901255472833341017134589349585951741183819538273681689891467593125773473855030178540944191633009833358145119807581143210544534421751294331156863051946425784766575117448786843328321135689099558517807766298523935992114929632802579421059939542215078025969607500910867460322483699201805982097048316021357780550679343290471879664926453274768836249289403596843409208557437230128102601691929880407439951715249391269676508390909947356229276551500558051816718567210984687491742737194939356972809000581571696105849268949587864590016323023741117008624918711594182623264438796498573940512872041177450941968065040002254293029070199281892064133873771328218442258573373365218002501737341062726662148095788205567062336600001159228173885472148505569737105502301172667836558832314597513290268729557451463223718771840468774744248458579870568559959257908041581431044857839778925868198367740930812016235978482617599320139893549161406897300777777006149100331533774621047437033398131136662693284673035562780406728426728978320151201800025138328765365970549264305622300497032814415268950891518864367442214702283309725406465664084240953303163661489452910130574766974123612144518706310666324521684469398499536297700097191579375908386360592354489381846122973501233912106910787910435883171978541660259540819174411531325884803915815374464083796010891097419987251742034880743299417657853715618690241205645282089606295111699312265350563499556653199090580269903122151334251406579548451918383823408905811890461692882970662084207447709796525108581126369041044600617550033564929538679775790593817642286119072038609416215774287267263517950069518457852268717407731287508225336088732228657088957157436208951938603714315757977319971267188379049399856889467940007662740927004477491730700994199965650456820393051358890297876259227177265579551701429154685860883434350114844846745192317708724876799963652248949357128702102389841503905257575801070772966752510362912719201805811145979425040410933833564282727801658279088549688532524335306568891165948642002262278347755019648154827784558425283481686065113473625724608140742107337539923726115982222158778169547973338765435847858860873267656404380177363368826186310288738388679393109143196344927316395087434564987443369687776652809952862645271775923368732055529863259495772670671361060920901844224042041114103946692662918457707571526684271458228585538714172047960057609579512483337454670239207159784620433832172294547229100497521584118602768905841706235272989815821695525809228131525359866386217884327987496768449290403479755461219579577185635588067811317136963613167212933935555554828679238158691480065829766293595175001234760636514077063617455915430272408383415686935910014964675507024561901954221098978510546522111156887898394646138036795714086512159549215718727948595173181568784499400156506278562277655863842089651939434058702402152295965665007290413709355293029165502510145681624957313366403839085318116379608420060375143275685519651657506838623383277564972279750044935976762779641211849651890036328564736902576035889796417157334382058470915234613901099857198720037441149582964497515472013383939702482547351911954372727371376928420595821627535012724667470211983836919070492081478688406212569041155123174456902018995593919789328406906365291550360863427782501688209808792519767779117567037469040071190476355162296524342737724953644517852878809778376248536790281401916485778094350271796812736871398315712808936456255469286890030450135425368948076680600811957376565659857315384946609430885318263469835652319352410589981998623777246729674890730253813937709108995418156591824280095350949720474476228717172232453345597283491730111091111800240088968340134537372441661558697753812110856451963571581960378544308712933115676690971335545517392232660920869797198420003381216174735518909996719656901667491085382658205800577906256119439970388742839212608803996154836777886454037463473431095528686910029896570597014733789438809155397906860769658325979347916328784777971482525727895213669306743183020502706470346705835423788403084345548791533188517912598976151016682856257111670143867968077316127803813394799668053931567128472168548869277731529206734832762605648367930211665996420073798483830697748780686317915909001156331910540718730730632224456327765997268279400387269715027832991992995484465426441816933932104110088298014416009570737281523953386630220389542863160102697123320659869612033516813548853883222322836464021171043643336759918769835641302652414736997292787159806291318280373312911658422192414041937201527093030785903904833720367838302290477272288921050343666082955706112900979279044229010511184565978061394435612985048947329061393843788189990203135690478575429615917451675095262067803381649080839463945525293310872619497956926967632700292331724440458148263554525406491716985048084534208937513214225930715503198340818216921602415439957419389935092198387232795644319727161908519747304608662389973005298003652871799392683133316747543003408092698489027905167388073022018334824955675344499616562799704321900955891202882236406390261580257569570308596239510599503480268713423887327374621178108907310786807990926325291358946560381199643014015697046278591392330520833714890110711819724981885710606307047877988360306458574590559118454997025184663922073486688157513588418002853070045427660288667684810116297090512338737608582447075224189159701543851164237422600494994537412581756079259947134175882643526563073629741550537029870389802977917453247688704645228054456087455091552551519637800319730225961110243486518900023210948073266474998287473508495851435478511036654775014003347741524334295207512018053703231532104610090673202488786171902343067606252569934201346556839870630576618581775481818138260139397071980650797322651501807002444555776275472793368184621706971343853897705897124146288827869367499022614061467145581939495718330915628153413615062993141519495882726558020982664816345023914746905668600074364201678367390738966817538697396141454603759670149032047023821456159478689385418086954849576467373065739073919568458869476241339301294871964991241193886596115831331575247782434127457718741722434063566591218144165157988433851447418641318310448640282748204934986333455236674386526840789368920560847608870768859446828389047884043172576680996515740091830512136529545050290105372379475373280925967923176773332088904736726538001444411491267469272656204634498294731731520068058344223342395063647818499119992659005435953664304272990357526031785318005580563032905969665873505985174424419977709297085561783176472463446437468615649042462692312044510564230988016224046243961083970322175039217261474413823371695056457202648116694413244096695188071301346633979958865834108047533648171613795379807146253334727663516344268191289294093015565548632500739707525940041475834010712113593077399528681495287326337215405078084578262724674736821170819671678703988117404547004305667022866180355429106983252709607156828295796034596147525022979039258784978102700472619729304259828844594406681594574886658182657568060150771757132496447698599508682393607254326877758315609209679189468952008143176478773251574912895064129675891302023483283641610455484293844248511601012239116770672249756298896387076380644269536322713097454173364681360622422968969915056796399841419082554985548480217431357937497410166613287061683690493403862383924570195153060318484864716504210659255342355411005860137922940375189518458560395273945602770816794012369854971771773106708158895109854947370797009430865416039503213728021512230091107703859269399290741795423061745019591821095667289735164497155338468318367661287618758141500647110036630531119754846142765101530604924535890594534343997115256512288733044767563092179224075258531261366194147824951834172855435581245844874606843602574052200246812013683888868843119266414010787718815262188154363103582112262745622379997184320443331453317780008041324731578564783109097622617305360079606131181054203482086618736874259533703417647729702066418342278906803005152791599678579847351130808990784436701246551682135194908304278731452019420328025930061819555744764210695230920562963203651476213953368699240447024550117541747277575099906198725579040651397416693470009359412094970305673816198884562590035751576343696571267941183187393676624128843719916835631927556228361996628330271247248433223035248378526773421772866283659021953977581006671594405327563053323623480496692631501735917119746054536516170565671633485667330923842591921189954167667131421968165466157171486245453686809754834050808541298588820037911555093715402935007859222960757311985098578671502828100122016153394782295315359483561798557956959840163588245396240128122242595809733174392795953993947490486246115667088239472861540300449662778928677267529572274312726443413591694120848538616417440254932754678873065501981151573236233396254146289625387482588950771233946209579746405103317554087875072020085150721180044955702791188075809147809369404689288580140570589042361458698772116500554294474504293304554934544435024160707179268031473201523682464658754073108270803157268578802102627023091814778179329683901681259697457347385411747412945359406621359821806084288003808298477143262637134473871231919772174989097392825189034524915776633767573120611507899571477823148585918172290893656415981209384324477349142715765309182316959958729474741053398177264092031439770672091074741091289763642831295274708391507074930337280913495458259691387723340309298585479534209114621054298030688480878839757855508877533398346502244788450095960222276004453322344364241759672539643861900541143192594534328850380578486405203215068148182285683802662340258726670085284195101685975202064065855265262306013266070074750332888735048618012839414454823039756433382145740790998605245878957600104962413024170293158587358473261577363594700378840603528041809320644362047825122591650284175879108175742338902349600615534976391983541626109859350195585283073817834146351310279912465220196623795260396862511960407024555624484445071092538524224365850614215612469792910965241906017952050150999933919506686839109149344383021871049513081084209798890640814579296305564409903449244276419468846640111478520727404037180199214771454128687136277757907931441736186694490649317865371717058873400972891286242841194759372422232374152401853328726482955947965224274293087567811154090935722033887346023064249892307610132650301856014981875863339181669483606226611093039336162156392397539189140007844210041637802318222433636031096384425769640538941338223641561716009738095925995840005687156833860171079229659152985053093422160854319084855594391520769318046888385842746058008220511508957262339948707582956798294640252145729593558056539711669397315918678112024497628119467946293003966412854464295869432494973665445469039205058406838497629098944648158207911294907472805318693043870334494715711771137138153794360577658191072687414499397467676348675926413437715182577050651964945507023888108811894684175661012950320749173913516751649908130162841289044213711346832849042940607125558665331597135963510761208559076883372240208577408875604621814328014362157853500466044902158464161356412795956355547026642584144343766544732183825606090488261494330497169896006287709850129168979797553923039473496422846620250522576635490622177683028313543361629066930868175683112216234265013478274831311180981169458328870128108155928373917913473268800912221846699350204014932679432908528431466278157813541901084962495009897789303980943306115850520280887040804416358243366971914118418963907114298779158484269279847551984580711677171598960752841090436306291373117878904341296487325662275042434826589835894101584087106177112519580863742514189304227486588172883748147199625650140709329890995837189372753869906404072215415772015533030738153082973746660746995799228404717283613993508560096411524498199224664277605987430876607652568070684351885608712516316412400794548233309715870463974320181715008387306081655617265358224514442356606930711930813311171908532899322333800089125803240427022653115961539566478247339228001131457117857931002658150551972566231191685828503743993955070146117813872305547895039174206270083129595976114719919215598957937088733454179134558266495315155104576671842289051033312545001414012810168326392289249845952481546151510906151556957841443115033931762020728280559383051547085912495181928537803995092906129543825358474896409850612618801014502351524187418896343946153423449290543740160670613869550968909137689775169882846706238512515831802982230823095661748014998570997856716517855558302252949264256088104483747556145336071565555250151907737017098239078631880493906171346359489154785466845642981101982099369962138042815380871775704219087183206161956770213139276929226473455206030069091281388920517185153775166239555414191725624779459762058821071155251537010417145458275972236271574646091211199667859009076320680339547401150214173129022470858936066806311524781820853275849807303904872612305018863688044673256990105207831371461166309953963105250311067927699955879740120358773606669809408539221066789056194180167124484319035333609667892447916290255215770354832074946172199706085292498512605698446669236323114734305869344761448249478184121160752516730161091714943482941516837003202364413876852058252865548679504767821845444739864098949473320347887724252816282302496777456293710758913362373163100901915282948448072034629705452091697928157157239186384069130693676003236474616930429735205327165990942791205872519256802385223269811128417353964125315270470131478797775545555303854146898082622470297596710642781034573811436889252869895884749133387227781033366986449041748568843586969112783749937273632339788325089197468136576335310400717651720575446384035262891829086455898239623291303514747332383708918229829648935567700690248759805084869112052519888335863420253786902483310744035618396701498045433565577644215161910810063898773058962228259556076861018229261050029919157622858168430437104138159673198945571737869832883245714288148141984764100001654396808016488647279216071851745756350895442069594557512393079507156455448826591455080935932835638134859879055507161368744833009167076997501739146325755544062705944403903178731040675087504823604341486027591008202321817805816743866807998746735235984778287339164955430580892812433745879996099017741997516427320775365883418648020828214015913348644291600847856425823314045460432174004791542186867808948271291030274679583436499799755675477030304473990178019596951860380142226400508053859269717329486044895219507734384741004115885000612754115291545143934020963200559126265243033333163309535119915415467894677020995948175536822792624845477481280827537161096663329660405040895240791838708295973942726538762551400378211734497130488428432255048999283870133003857913278210306618297499678726870117061011150058171849368825817312582653851047549728042579414522866705412668711649833176822298784048463840019254886909510118920560978212493750138018920492908337289531343465187095696789164347241256582117044192269777893954171459962053437725887549024771690703984306282661408482412533958564153404489682308748022089031627389229943881411124491378469259540726191877226117703206587985787683538399167951919191773136508466751371273516678625332075241682709589888938825155256100048311846116091073064901865074116281207994572557499088260104260463467101299594220277108807144148997390733036013578236901793898149952200004625670873949208181200041261956463165122339307914919970927156076440757128935329879717227546476941289030808865812074017995095100574205466208066858630561943020600790839636079771276120100894276084044954945986069743542882401122165548523225648965207389075100759806317047326488733807450198128644604061637355004141004518063642022564438581617448239223030825332035611160410994256892587562553007626567798692328512598688223507841553275604551654738688224472489248393865620901273845238883877659302012096228395196471613116733529990718128480065091657674930082208246328211092239429792555579949680118247241886351654439469284530095414725390672490568151560080624717694891823729412744624251065995330773193609620129032462966494192532407683003540312488582981405974225927643967445235069376018282355158477759870597265642413922512029723756084594423777457533430877992527276190749691320403115680713321277021111082468286759460023533484082902514942027971725659855733652830458895159705982364665119387074452814040849643930441597982893350960914893906671871246995318849593629142140021277116391014226741549854180568054029260013268218193689973659560634931342091224177622415684376738433280494481457378756555733518760734760670673807434209981387751371159141442210609068567777943211557114918060358988966631360812624592454964760287805713280463190401608747625679522514283774275322413535505729952585406601360732692258642509696096690654717182776192648178921002636000572568881881728665035923850075603415168294869215956963841627620455102565499427191962323264388184349840419555879318704522783979394299729804658691401993833627570207824920477542713634866060476725936136915393941126870532309273091914105814937948394918974341664635757492178458422434844566876008127679580233954435550576074628874286025576276401433034051548235406973864333113749459789035007716614283459456417642509810806517712380776819809927035098322708747302354322731445743996614015491182638928113054513733520081521173426099559796657483358441548695052335544686319429999586378625031910316223056831642907172088649613441866106059672256497845805761209424056676882604968668594427567407498804088466306602639205393095057872402104077599896925362242206510732442368178395286163843790019685499690628782982318337872730874650356646295237037760644833835702718619154696179948182595547369269616305876511172981504528553380765698253578641972563140684397178622311526944806632148182857687830413509895599260003119260643673689482744231641530106079596775708286282209470877444288700703907383723115514533411114257167652118267314794219854666242778265672598001099408926037370327390755593722846791829390051371293558707351848140678163408693586809675684963526858635267098256925973083629486088406874941441038834919280635028873133583823185489051288025520197895633808354496625544637721944621381042274638136642987658524664110685867244008310343695594681573883522295778628386172449296500914901402513015684638822693401805736903777996341394155024796618522347106367784582189413951497343920781939786547697859316084631722147208282650121382092532862306122373787402451198571765338648545267676314422067374019595734522309299505624423061578524099016493159652261779217951576874630587606272901834035063071327048556904039401717451584673118647278084205196934743091885904909311482375433793372337400931518269932113973661011683364224040125963139337949840352019885439364334998734688690394724385856825456846649778091571252105970080841171475241310447461147430880785699985852605237213440993823244889202316104148445553241712514081166407123396491260173700982825758425485695033040815645569723797866043503776774356097579445468886452597730316615827661411983718822534127445056521191904816699510644171247340398089216122847292446653703284928201199661536109612263938358691632611564609668196392751516320446651658240615718119500478330322712043478263685636666224669154808618021064497817973992218308010093223942844216375494128483558495941640311693057876223309928701071243612676858521555781031121737219829699948093391272581944162164255948165818124543350001486492351583415343150494229501201710671846748678303013155774462923792982423135101623185085374128062342541328077153728275269840148750766044709465921579897938005755191376083297159734825220283779748331894894237757173525990043548033975683524823207980212023431656431886460859870179289434433286610477695894902653733657694077462055150772173604736794056277007603576861513640561375842299955356325546348266461914264679068865905878935766514482393699084597721576451837038249476439524825931691888701398915546541164839494258102476173924107389862473296909806867892710782661745972238529443892400342269291993632412012338731178558946611364084789701701324869390668230312188591199346733421264962636646748995811044154489625468487562085782584543130269638866590195288027359191215965691079654588943426039710090183368580485926997018250244075597045937097919461834774125186181245818408605480203892514754303395926446337128608463294583835427155778696270486323582349400805866421406143682965133571509911929149594692236316912190265596897915039334034642483113687438199539153781892107010342592414128401410556540794245438467181976527174714459022132756471125508137449058461076653785217878694217735051298652048072494227248336311776110715378749544418526127208568286875525988904259863114298156868604783435308879217996515538788416161564800944672017254044978241390520711954867816889211713884966948620889572264455340053698321982393081358891206059499291054165313407782338709885175755284150100223446378649644862639613064818254104231737541217914999171426341348378634840653393934411356418766618466369715149622545304405724408736400564123532433831233327689848758289291902518621915870828495737182574273692008233122731623866748391242530723153154132516134030989419227458781714780923851136756095979407178969115028527103173603577512120975697915732063717669404169802584794384445738951417046015115671919708907410103625884259344485346744223988614031311447342124626196628333507318943616878886625051629844539181279843769580818564279333895034581236377811736747887885154254778607222698261053679300661616555901994469860818735808284000594845960132339808704143702151042467355147470950437165128597701242556986008492532148290752017567484106957339317617676455151670277018824576114685512891770573989537780494564850669243887933424787393067572693876882322668712058941453788170258242080581275243910010655240070120282202125708784989879418341365586789160617328409240534200271088268289712714751959363452820474796159832953257496590466266490334298330962104287565262308917251208055363618960223138661386495293038888621765560641776331269660147772567545041623046411779018456482288267802087172048247480541398198571997308206120083585950435375506086741706376273800032859490245775024949958667999008094257388910666771581867721404551232605207671402368900619608071453676553014515518401842493184342967702800199364850151475104949362376480086786492177781712860562126171860943471968323998316314424596352789717791314467676092101187576796899127410239761852662553594148097153206079167609621627969405562286157679000172077616137101607247103358519233932862632220892176630516235060374969383181280089384816666986544227989020734041239650550951698395454124942508201010505626909132336795940899244939541808064120512367290324706868180906055872749349654469660265730806462462748892294700996517579615711699302595163949394836875782217859581882500998961881328748531974853741715090425095121603680760528199509855941548752340515216138827770917411254655421485354971951174729271649888611283964193022349043247113897347502518119029070614701679903408995163480245390819589946155734149375525419385908332762885418549889551935331356199712119076389847723764551731527234435846502427354013354759110532998465302314462718863659424885093242520918545254698004670400589234874373408620101370443020012180068189341486828754053122382568613224360019214878394850093255750737680406534023613425023038314789947479592921659787629481888627109703286802437435759938688016170670544868451329971659065947426673845781270862138146316441489300171176184131090101278595949471821275826497165855627501745164329986165276134541520498043827218876030141953400313906884220059792812647198030999997215606418895796849938900918388908015389936105475336306352670430643297025412092236989605073836992399763544663998953508012442797175499642969378643249168954100460914791173395492243896253795533446502983391744148017952124901545616080547524688618572213063286557463249914594737053952466717515498049797933242020166732104330408918011938602250122293723072329803019057728718133463512992559362107036619875651925428221258256658676356395838314100504967659688054290562170157729032531781846599985778499121815858872827038953908183364226937138389255167336532661451928162846601429521936390685195437063490138641477494647329028232782289666320828764160707047874825363777152727396470079062394777504478841191779889857322136560573069316527185471980752069652197877779765009466836477505054169202727191771512731542593374662681349430321286785190985894364952001632703104765307473441110099542128260507967734206548698243727670314208764190494346171417058475884659008472942262063868307837951126738307685325381870941707414723000674868916247534692862843029831117761834391677810126548250676271803712741523704816102222439359196253159348436914516628022680838663417983728571409927831835232444156344066283393023182644164209642174039889772362406373284549789885316192891503097905932169741099700665775776541916262020029703520450969927461715543219124504486975161951393299436703216698225113667685650496707000254606730887187093263097107641955453093064616578175017848761975278411774904944744075762469139800858705858142561338791097194496229409275372203959358914528774601200534333395026412773934067542767607783803851088185359505115879854459575747592148175845648989396137633226859972989547110963554828070389162080300743661461645385295760486943752500731599026634182124710722390746850373678034314481457636426749765549287741479901455470172110175782518043848898700976854600933533527753986037900197382363816082044562787770672950541622588293362333862768815669712199955815348282712251027257207349691945719924339849118819399330086961673361473137103184246877157919195536955327321114419181925312526888052575325828987850086780303740221135071573457768390390791673409653281508534204194840742355633813102709054035754515185775601017354293848309899863818518113975812132197605793867507752620848157970343522566423084877287460040706910323190852897173423471842054823777847906283868908610713613055454007121816866711508716130774201631440208381167216476233426873845338387508954373297534564654444540121546100369845706926346264390106691276983477015280301634293053481700473684115863484308685067169498421183177733782307548181209778699988241728821590196133207147973710305252260609087733891180021821011479497564783590027504650218388508092411911198647555428186895237770787711110020168943743944788376804763256432744154546830723125698780378464399134313555492497174920419060234213047577981546869986913449346129039311141639391445735763114984572389092133721203844471887784581113103264282783222169988782072759329187951601390395353877879480002012178652657728819053217428766798319051832012177751706191363310824037567272225309711541802641663964649390139861722646538795587615966091816673214331790192005569419178885579368924823041131781355817889276141082424005257218529558159909043786145113404096001146642886204537614817409759231052756391592594467049769513288278948268302504522481807463284182076451327203352286143102136993508339137457504246648745451058368746326253810411992278763808859446061599550053993787153877367168773123839147084070326531995401002730599313092283241713501918214154314259398954170075502771847882953380857829631826250199830931435618408675536679424503410041919822156346547185354783823633135487361082693719806999797434818096902126961662383153491274516960421129738685519876103211983204610608400749338382568997838853616296395063889083475676188035996781435970539255794074046469057161715071255828319257510928273135210724701175084643656583508980062033633414769499252486222970157806418145865007263762812288810395439927052462008800900934156904788040568859221969926444035581074521983667121546823685701664121330241491699163342444251220484061035304831047577022627323085140719867205478236545259378612690144086182902210230753866700098424230779340495671153256114707797535151825855053629115546344930811259624838306802861803715342634902902186284715103190519534827900084551649515694351384090032664789501476789884246094293826503190831564726929868451593135715309597920490776570599926729887688982020299437000312716181039345879440651145877590544166929759554038529903388670397590394354808071915871724080882880244424421052322766165788555061204337881449985445212799724295194224251919858609318492970606251362910326510924844568523923277315195781745947679258075208694436827088237426514743957738571227725179894703403868963274928703660500367310398959004831384901789614039643453504348050912069036787156938339664856042581322886786698944042245018999423708703906929236352656102315066705222415960311175503208150656022975144895791598532615610991827045488218608882493928029557328410374594140112686595681232553326052935467726384968215781831836580173773180527236168380418283943202072952321718320314396494378269019476589642595333893090018975467110275745546578767578500300966267157577768076571265089677581131017511802658257220411864148718501536115642672827924575780871780953843182702609436816471303134844066785714417958508134065593266698680038038491590844788446134272356623912931077160037126509740034491824616626977249952302705537404644657182818628679712726813121163804941664669665940921245636432474367455168148638224049448555419790256022645873303309882979137978010485408393783102532140907857523057658623191698422151154641972444122103544196657757823280354373406174581061081209439920449442782620064804808013679882901800334341429991960439684456449223700202453544296143411439020980185990952392068853001573483592982806687900848171599761143812336245889778879391950216605557485791496158578165672383470812599375474736334775021464524411938866838421932040879832699033399545996806064620351605808340711654511744221497616441278480493878285317194473247186458160877051458922956140330632415184807320426584667599224524527196970394621924284795296715007518431561638088738155039010650935586639795641659288554047516589834871597414769161252169606639187406498561136263350849967861422526310763413859639108521351461879811481978215462913784330861712855557466329179881776971288872562405636130893453917949508217532703287993472444671485266678963739487584786004534789507081867879030982215942082969416279131536764424322734110269012804180635726081416427310978905515524014513340055838911298660176229008601746641425146939765835169339864342669922162756666239083426209724935173961487488636362996081678509237657720901582896801125678274752885082358164575609232441725746480343851606660272791297632078970946953023012440160146314915055596994455390190806218818775204951846988869833460594579229092438469617304983233019085525692108942482843420289790430189033961977135957148422613752980694920817059645533281383710809586612356940409610518998321047731436719060141713529203112204606639417825771154972411399797981518645454921013702690101566695579583437747818396607925785869652305659261587569831023035474055859049422161100137443159551202536744282050289102931220120568481407067459193166662224470623895226348807931499410850620085431076045146036681137057859920015812785799094640086506412350283856236234491983894797264431343104179870769237050711529279357384318504358005091262790112554709280355842150593927794257279942677668152221827824780779843381241076133954372569154231145487448804217315768953370234534035144733365915880290182129518270364657747215282822096436081608802943755092771577913874297101913788540640391200676118303645724342724197288996455130978591206628209532906153402633783645461116642207784743620589826943249705978008628197806699230336470342923860203010272752119568481080634459324045534318413926880548163878531751039157433558896320714551060900831721820841129083291920943784966605783414907582604505746386542238084099576753613739910452223540888020616324001177103269768342984570551165554141366174554215924880492948853621239691302768641246253886069000989415245087246904119747350068192697949309375865554548222424758796235809378290706387924431247212025882797563348635907163330482411703280071990083164017895479544926461639859742770838969305126572159179029980008366245828332658700700015736267142363608322363412727187195929141998985206206629161333174642820301663594445498400231475271493243833506048732068347309093872331167452878983947642443067702236633821844701981253383931381807826096608078845971550937193134141271185646923670183786528861307372075469623090760817137273199297850422502383152173364011320310894354233476663003590263545359865738401159310282970372995076593228758822581863947894351665371359847595781630047446461997147483183040272799037974123766413374096541616138847716759011337962943722107572737512835543734718151043451706926439227281768746983304477115668815300365978381780508440181522591577291695396442905835001017366018104871609382714888933836498729674420708398606356975604716331148766146190650058996009311428886323945616209648996888954330954525489315727340849729009144547748656159818774928072320904101577098796479496042360037228569790784850791919897782631166828839414124949763384846792642230361918822138944282951014320787114107156963156305738352461586729758548125044015347489862990263774900718710692412258282521060749550839989961284570190961966919793541869476567060372599370582999160472745338029201754259196639217891910351327453010673237574904218507276732491867854901604421182662797990965086821893383678128865618298290945725190716792260610213846545972288818749943894796883154204453080308024814233484411489523085036933984999714825601185467223390303659044144777540667373655483478273496528412864442299600753048866370918823745647744362721655269334295459158648460221387929853332815299740508106311242675246361907335200427634692869100535943577497958913780835328099379470609976027168148379637426922036047397045718991205006440299548776046579960304951017772901807650623614780994752544352060098234143924293873752953285891929023147519578524699256082854409595795049674543153164483707045422460098562657287164224334231646932281346357435963542841191943139542248219007832831535962699189874414093841111213762705580312915103198710014337479433586145870937564698617379108341354258303332265654637503888735544459654673660583776081554590578259871644816414316859488700943668380852293990612444101658500810331267513150811074570783695175464099881556124205700172180100021045337452971655697758541380497706383493533917065284130876974163262218399570725167746798097500021290451842624881214884253170507324115222719554293082027523466326528171889028545435458975113173277814907495675448416348678680083242537896976990043911382902190694759135469103514274348864604059616864255554309361721383698785481729775086238149688962780465097765279010590436188340074719003107481423896592642087061526204456274407264696400841532017285722088416122909014820804638893726372093650208358477537945621916273418373038904138059517908083942215800593358192164060127922313991964431892786896013217242804758661710930794952998503721868708488314953844546635370182261816791825413009133786499120084734483881082045062497032722189253508336375635175997446529065487323771959939938755807827901458479782479163931671729993942185163667867931024089372625167516596391972578028051240813654683636669796843247669768158795665134267469077947901006318564461404855998380458034554557744483479154923676763816849150771281044764758722680223051179167572330785404902402195100459416361512124003723035681820349342104612181629671555476417272341465939473279129385840348038169953498987489628417699075181436313420871537171530567998667991933345948761910852838944605302234689085192286207391279342747367616848538959860782221449341848143006431229379469450397002816403930552572566647680257192600143950242183574835447340978378310750870684864862604248637851441724455541680972642219608404720526152444388625679015138406367607189977087572309809428730827048136351289300432925139821865029566591007940867643256346757116337553450765528012785168487141279852081332700242782793597942201317742183198123179190776988811400589825055514924546222054068024466096641151649517236686760433867637015413692253687171784611553973599169663607825020626256345432039043384611753659834741994762680156135720584172952013707369911971180127959841242752206860460417526633454902098467093689622419520507029206305169433439657118134247975844323465943034593552375268748931157346471655666038833837317870242774309951296837557609039880644424535243784286576285042261529792560668576556859550746620992977791597698567501661259176255856192854240151636136055134086885513554486890670715139341555538926340873264224224971173687968403590107231257076871727970685361095544429910159145686896350781796486212872558560121201773702805787907069937274921213447290869191305636672189677760778161315250175186541351513833515269735525165895057905560825995686784324541542267352042928146875229416909726788833559340183020033979047018032719402528995779524455383648058052333393248495489887313950099379468584231571891072636309701417670886894864372522384924482983678840459511136637660601984971850572952820330810695850830721170390945377000079922523419635621945067465859329691599181032561689356740921124481170074911068391406002512795407720178837787120702927563816420726992331666276096110554750989217762886446311953971979276644788302516733902561812845297187365845984812259225367363004289475755352809725763036804763441903204215969410831857653448939040009942369316038927066793932200948859017591903418570056944357027390766116486899263596451985244342657708714868104539536506427386427720995625957892480334873082440205442366288373928800632598857478153716947481466022321559502559813705513879701446350401587511119617865793200803430869465554101313906706906874974979941027541984832517045004695352248760447894918240303124221191828277587320928261001070447659361056700578289936105979402919137846248741863257804764769282294448893340829486201079224050917909796097952782305306274682837986670370575169558945755885879239436386527016675325506582856203013616201107084580803186906360379108072425820760483330495157834314408533630896465399464229792106396262538166352897793163170945897240496158223720088445577793915097761956714942713905235381544092848525366875585664057869651333897236964481191535866311697925716146703872612848582844655651001527100315021892967960597991653696686939826683230620364586012233944464090737407317210171765576178237322814033056521657659217339202552418218019303854842038759093244322754846074181798789305120870932251961189924908691046502093480370421195515302454442733459409831186834742722250240453589000792695673797808730778175731041275739258384626021302940643180261077891977337434982400670845179476971958407268432311408402159941788885085405302217279191946836101782026059002305126122305175318689549659070398953382528723980132508731938486631754355482582991659741939074936354233896921072891823850612581662890710909317945943956825166103827230448395730013935008931434221108616722009848367988891895647719977637570090833356585901244075714540306606328149207180728678624034819568221174460700939956626405363236383485120842215478006562337990954978520147266174886517357180356521832248714251560684319460428895164190501076134253487693436666888254759511514975671258271588529194388625294552148412844218361545817938245182201249084136586788141546351628040907148409918802060647616865010798901997800909765710388351674528023620396970808638236572581839318718928803557098221534386314499323336875919583807645222226872419550161702025876478178113444865227528024962355661937357016618038366438485511667953856809820575877870212959732210989193903289487735374411726443422452603926712958350725335543239880778797861199093727983954841925603630273741923452101763377300163102642612275873004595431988080970044745275655658922250624803296984748220789346728325984362546787338013354880774008716273501672732191657833682769436370239498246469471462914915371589198245444770521049591210714657995634135672634062058168265626608427147844003491677377468495772204997373429980495416729496002108316275541676577842864343807866504286671267641352939089714941143478718317330466588419260801276879123952765962466230518626905706084555947690768006334457882924787202158453985673655199966440861363216872051207546045314618410844676818820563979451134102431218602198655505237472725171615152518009231010749258452633623784632752670266868980387470582567581128264323893096637496458440098053551074012734355910714613510057887671575225871466914221485785938559096867685986525148497698047919118077788146803939221993463874396701005259254215974334045866437791259325331223094536109176147801819001476259227428000076179915627272985551839932869018884664779223956267614158765281450650396656553070061874554932493084620021995124002804331460659832806265370445198579765494076991603498088592221824523844132065642679528369220685658844460714404260004604641668113879484378816066040025165945172597392958862795779318341692309376053052435867189568795741682995837498252087227815517978897408645915667993480675078935960295498206866186677231238863653594429389039422064032016179210735353629454007140734278119524319619334335658105375792192233553800631704537178893887385522966391375616249671955246691758500473696676897578406355936129508237731758439681456120490251720637878809973068767171619199857135793944277481473286228314050535971955891527739693947994473541230300528698643431397560277723208542996028875131092406264319809627641716554577995180077169462567301257964241012275836620293743579868559048350235493929124644745708868725377207076180974545315768331929131779778836917869237097790443433900744523397120908076301727532168003140385701114215529393258594107498951255995055430169189460792232756252396029488142408295184941428993210192587792118421708151326297610254539127154463287078550360338520489229972234980626072152592746677291005025282900081581829349218629691164906956144163879102473476366380839444323783844539956260029573641221409153329774706280775060451788599929421497436826650031159098617273036939161232989728958087889842517748117681691535258783417745987960392243548703131916505559573490976978086546404963656103324053628165360379250031785748968096047527081064205003102748023855325676191102363935670658700909157359433177534472045446485408999729562736432249918697589343893722544592062071732350952344855208553995957793829791004247311098707340933184622180842273060603852360968552883541852495111107865361216697822187076915242362307450642668524931650892362780269894336953225559517836931679917106864324522342401672545753850316610598600566029197471756492054649959834829416115443397503096806072734054386362983594391695628864627322152195372771719662344575372652057669883203192240193673100802012460414569391814255118416812241171940544598647563803255139234151745131325511288013548963920249785493617771433164394712691761755502431634340445850659110082100868800789307650708787061302504438514088299145612486942835323185991766250411372052955964802440064528152250622200761643393398036447899993501883401858495250320068582411935295266941913250147587992052873598962354961144516080300611631146246818414721648734265576398762043225742078719905362619969408977719570880020050939720116698867260876998734074579476395200812850513423780604409296507968196276034048922919891835151832795835424566992116718806211000627972729510052571350434583982262278909770096318989325343095217430351827723024639865692813698480501097543073026047788232916838480129809215028675549721162268986543717128852239053875904792460727787203333624126680148190780933853447546623097192199859429859491783001144754738065438680552921046376317340981255215104968357697919211597102414148587589749997073641015422519899701646792463444630153100536527938422737519538281544366598267952666725194985091495168575928177459133494552530902956661599805417274988398385399097362747632056229455161138601816941810359371458565372083715051874963926879901847130938073113370664403356512507828379213870584634864063103950442026196547411106432624091610965531919160142170137595009340663157667721251135737141275010273962256233058950114841512953086220451210050370314544892281507772056435600315134128046646182843552578454978415907929579595069053234958480273614810194965248645697240669889640320665955597426378984036226457382733759395266669281582958013402411354762388679175148892959132843998907770700614567391532804971764676828703682390830629598528640294886941754007723819141645014658261511857826312077028565138424752080258115352051094381787255830635940709009158080146089245757681163778073753207693964490512308234039525392948309525955708478832788246308381412452938188686706090528417501648778273937216816113193424470955890526695635638500574655755857746639320788993087206245550812626017062452699071334258047573425329735730275926931565541162628037692257193460914007784426139160102537125522584053317528282364771562312306899456349121617197755697025487647621235626279951946775414592274910833463450930428902291154922206873945466124081894554173082026195024910315807480147847013402160853343864873328770918206962306558386035272992297572378835316693068726897382405273057235843369288604918476881109410381834624391642336673534369344460811906846464221686279396579560829328066681119337935643447809534847553929519260010147803670955829909141577923130429993509807903759046683279016906823930191237772823618394407939805165497609467640816085161432975718607218935883168672990925594746345189013901064065249109122117832073421456136259247040549137235477952295611718255007738567891534107185025248186061650748653484701681881716200570161986867296320844199704405002706772538179950622200660057670912397546432425563552813938405343356697752675362499725746819087464893669707915440126182836037380585876098811768794297971216795956487220529309953091325987942390190598931899694316931767923867014724878047326646034991915400433654864897892759783192927274892769810777176806922535719478776858036963645001767900911867666668465837685683532375014524820830549123856150388465153800355338097730526967693270637667033865296255068937073620664389434779161007519126067514391360703959119227228420849992413987977191794697864034880018565954709191241839566490972408429768384886013727323802743024212606272617104439110488641796213555979667257633894230242009764872113615318980366085215686049640056040616249826427097632030495905775461849362537297488082680185490589104325004263969246151657256337302695010357250027398738126575642459225402979994735697567500778473916112762813586798440168058700185039861587569425391410962682191803842447468020106278421488861455280819167786869235925034386623448754643785085075992657289471286204466731997066599930625305527355887596456371651347923083194292351967847141519415389122677978315200822580192824290432584266728941899129933920071701132242608854833364991538360758314410418074478905279051096610930857653548881231769173896982445068503505517403859975273519242018023159862301405132151223545825972706519602519633528688047719096359779226382258284108550930899018605795552748105688746527631870352714265389254644222449731218582386124619543959311193406613587152353054409652797274710846408678799372252765640357995773120397808480344912996142220129978105134502841250598980050361705181455117181742915024758758114264341135111641120818150527171944612124433844689372045827473680887241628130642717635300532763734863395059035717142813863704647844719577667533008125335806661945273752608938056189778449673586724828219103094940243414421182454835442208913721543012976109188288781335681340648574722521582886874398499156220678637304664758112143671423227646100234330834367966990628223331596119018715128732952127426205853127697751765501631368393988548284487891322518595151738286507738383933152564792010793192679110344559413196196036918382906787014441292610874337646670544635573022920942878914519295237427071004671737479739740341119504813450310192269267167312003388784653159553293851001661720969498499464108741178572104282978202646441072566850547504670533279909940777292045963635588750528642231759684163990708765565631634835378769941010671338459586596777683226354418956521503398417393771180786201244959534784108213853699985021976236685349226474269491747852356256362667557308313159814327220373086585370885074421704184506729966607745065270294526312303704922043827364359604468649882039841449976126705229286167459622837105904556205538875270785974266118491665212160711082232051117800100731836252676404874818631141384499258917617178616967090426300926235567983983840137632166490245168784936430810105066725668935302237811260329745226243999405543808118467408069184119012880745420644740192911605750656721587274223893747741142119874861432511169786040086082011428926229930215557767443464233156855572481485247177731969435132195927486354560516192170100303399431836689557227232792548652433847210489282789825758257058133802564336057194393867727634779948251909853207867824539955681000188654661431330964715355597899405593679217113701343828694636374063736725114049026822719398047862310255750779655321603505839235882848360453185077647332917397919644015805679568980155454145862151879518156651348434896024247917679757886363799796764546793402229176080377423068674449411547248324736711430173752763134066659192207984877725525768172516590193320268579230754608234816693720016686911766524134357200924108462404686944453572166967658713476410405335208057256887905895381553331539738436917681529355194222813997622774398020402280247914981676161576929083777180326302280737652564933400775473648941082392880571014342363146276967432870796907445918686379697119318657614906317293444392866749509029579073797415155745708264529291124106123684847777312123511793147710569707263072585941669583700074138837245031018656117289360251003825653903360950403545478371999382585484389902032661626613052727022369493411006655447732086256242155513636355011246394573237400609380817628664348167706930846910493200140117377210764831504766616503495112389595984397312213443201015920941503089112710833556410326632452980307154113141901144402617055826313107536910304716443198403642284377803720863973190265178983639475889616147245359885070549385042036458557485621078028070604017165049788396691823972250933642646987735803820149580724906486162776011366638183301920798385216462465214314674879515764622034294807956682858569484230643071966323715459657186806651823929409534336783013936093527447105314945108166165640376584780130443020471070316840384869007543208516452882583270195356338310090176193257095883616708576760169562636249655276824418111147989486122421292621789470663550121139234319885028438544097430373220071673886375110475569533908683959928352260297842319467889690437434337666739450761457057832141468591369337228074459045100610309967282545870539555485843232251854227468131870164241720774004115468125244089233991307235953762300117122973812256058773515810647969603645607962241018740204147590212644755569966843241074492145921166710357000149098389956521486392032000879270914846443519331377904588227889629077059217752431572160953860515252630275857571426129670045201701065482633195820797119164877907200739205201231385882705274018700531426152482295169678731678568919908800203638309124149323185331485259874612186229954019091759892243294109093539940828048859927269066023934225327367709941258836913645266602654888551113548073741644773187865884476741495229229358305614045892040678405386977066444516645483046279120604087052265773173401203243830851942220348965106145930595396000112075397960949539824986469974348970039713688689576671993347020402309507600612036745766869925910981666039105325560718060508565718280542247551413307844907972651100539013683159062254125246364923241036751819374221877077011195584059543198959140433799648756245863218224279232679487141078065993063276851110130662757924462145231810494148968830121004822038395098026806262252068256008008085343835497066887658239568919933006676539680131052140292941788973013564549817531736091948244332586844215991902366391257318904918856681256492655970279268436464254454898736377055923621555971970815433487799198454024340747386320123591485083992041672233407262588086493730754139323889302445382736578616755066645271470598851204381345424810771217075421691352749975098954440654851288954725712681220642522259271595535837120814415871714854619530512188626893953022829936740936984475788910757920457308798000664172608542148609291004130882696160038521357588991701790739096386892471589603473206867444324702493037908463428182409214642469876830168825021857464356243787000286506129258330625200496679450833927571798280938202241747434378562754656849721438918384729016985577578651329738657704242141120659755606731140978677495372273017188736551371600597972934969117032374115950566515569758947959650632141468952102204883565008988661843594980970806154831048815858192101583312959597621092329635851484874440233351090555624099603119574091901712574112509533167860156434467789194012565576581777334340294970681862288682934729849969391123740215295572339676521765575856395328143592092918500056286622773536552113151344943239286442224215523023178299689752688877148167800772699194424658089098275891295425239911892902005979627398065151234037500475882062300415993960242095222722192598251582972077860321429861940179808692492439256999268160211958083964819551127866376702378545604483913852211461435092008490191110958444799222093505838043567507273477057143541765260784155719667323398290162369147764652350112741099354745955229973671313228889229953593788005496727254838173672229090875021219736808030515382224488795901216934956320181005296017653176262394694068578831997089710417249186713092059129750673229165903401986528427397678454188069118137263384468849918583907594981783708872070841881534864615505494903691934426627017663056848393287714691615292643138949051068913127403773650441035437744758953247002159005286686102760402944702312670162318606285886542469950520087397234100686408175085867019409710445127183437605480910419214248210258638538143390469237293995083897557665264436711573339952963885579971587869256396966727675931349419594824843922596482922889105994666252150794728215194331724910465407157701276026025869399914784638131098976943828417438193607491765425152607420968387108522547225775178122908295194450417191171506883131461727217441678103786180516695677642476767174347183260738027952793151891295885490748164802294300858378918981649259933854727181031257285255151482485240844851746583547124305434930010725853866134301457265552816532534086442602595325135082447044057986208241018364715596369262053767848529683036208420479988903213328149879431067119808329611948851979324601801441755631665510668755591504833960217172751584024051689768289443466228283205708535962332994678297712408271266049567696169614148594516393178476192917565872627050552858587932929792748169202023388833220664719162790711687996426807987819613053909252390787613654512078088860206293145806677349703406522794786075886216507700311309071928428909183907592900555956658079846045474485650472000776537320770680404798468160259894500034990799902621148216754078604117415832452095662564068924662865570455555594078911322776217056657658032277916465778789242156771766433779606948636405772492668255659986218264494881207997668982640070326993145583552549013443251106984325844890648293492334267141805525499426141883415043369673958819954372384368576505069057801909463062292192267310213242254546974156764036724468498652031264905431865689188501953005929094558040928507223807896150133369682519617812712497230451480105688389338475418338020041487337184836731540083525125106901744767939001250539896713738949189090756438568525244497172290268454598322468080301899007678679810085840672732226674524445043991737789524774218438586209324460348675087761894468605329075375377944457482872938060632170245630421526765486079567969897460322504162172420197648694127132257273592004145719784992622183902240573956546259954118239698993058931050633890952575754879056382344955839314045509674220514874889769981843933266441802040685700317036577561997403221547672125338292151291554862892093268743290514213537750035613260285875827135194077781305232834306627548819825492720215649907306581373748367842454147645943025174860216068593061590245490847813514739838539267168611036450551659064556394404202576766358125947062312516369023596498315537807958254913180049687613762578523171393053181475618380088690217174985001593225926202064306387069504083540260981191599750741133633984624534401302474230541627591203638812473955326598013991575466874551165245805960735372297712143628296870448697539936405185269892243761984945156294552694476027505313540654342745840746195967258261791636055507123174265659888310719107946425012304581720203032664892555653888575608333904426411748674370223912333569200320460866178819853907844477568479359224518820866896214885185697640207719275552261724210962067087139651123395959561140897825447150696000652175500273661226854404661714508892033862658251921990842012903019140021172516057959723181156140152676537074264008790589622411645688175840440865429577048581523068038154802121673118747117853747565563314616016708105605581991703402372923061806129132275304340827595331431671725312983619402778622193581808548079655212978325179044306416939288378161986746471174790309840064505422496497436000264091563291061797606397957357961605699892406398848954267289444488456157435701588265085731064927763216356146350878975586644353076061896067453654977510217460121627882848557937991499880104668417901145634771791485885288973339405974246284886499307657258318100450430289064448374916620861135616126033622067077989582723413433355597244475172091827020623687668868529172522912961687816133019508639404661262743405026786470354093524790271788143781396829843505493996412566959222807819366000674640532078427417977213285342173248831547038560132968556153815523149420947936053954419643428963183256776679824700758500354590350362763599974130746202338991011626496115605602122540316726481881446653280989354394287616097631173551189578670241734742714182922590582484304651117934659222434232111866622425947184592554646570657081635924187454342001837531239321884571454969474568409199349719931315302247120294431587151140267450492997624654670905050886077876407268064322631357130844625104011929964183096840441744950791111581467282330188644815820970268285909389123829594801374199254009155309031283252132744940598652406905167662223103991291625118120838506443624810939561893508942363822573644774786971503285852986667383662001660588006290324955220775207408923717326353089846225905548412559510312347526448406498994723498543769374743018174153518726105109450673822626823850068913155750112366050682588114288978642910211021526445481506714048158468117117362161578974268739776073532912585945113089841683873628470632977121821783838325510986551292311454774672169868671413784564593171554704814654650969572401780450136356214761029945118139738880932482635328725007611513592969754167089629920301554507346935507935623362954157231281095201879982224202244299128670604019215369344960275794112838969804497313173474727603818326846867393090818243106882886632550402890762014264559044768630686610232940585351596864676223945576087433576207020344900672184450867427897685004934801118296113940483046653340404317617837435357042475926626321673130324554822892342225702989958799588587364893354623830467963107842646757871000803487996467962386622723964704089006707762098373522881261961280400273134954986190647494135709423400985269729361626792872312749877621320873236203088727101250987041511936904967473202937557565955141766295526570539038107770055761878280814931584546388593130012700324810787389658952651614884291065462657772155323248754366019152027408868538755829081125470309530065055229061801670481224063956952686685182803783824039329323810034413830417918040114041550673906613882682425211824770898577850497328872834399637596928626900725809429019971618024250976428542974859787545986190506319739712740956625568863050057989532281068066620583419511580862905057570880661282778265587498303365899735219961615283694420477842233784257856494619539014592831989392687262448609547153132872749253807037913532006299956188498942547839125206963440773103897268234718209969769321981073585514715680225646464729294489179187212691045234575022425794007750887234164086242673363824765130771842538671756986936070964071010471341040774311003555628623172081246740632210903589575100373045185573958108242521373590057011294507866715169984027541922088153226187681430128899146661102297886541701131123304438873119019791429342090448369240044284172455008180119392984842977171487402916925573890616481291960974293083970956812212007519758326443316285599921958775781231092119114727371607674346226736949503219195153024544528622312931190701655759796455542676966990612418700421116692806893950456231805547924663975792724737562570744945369649284865438936392808057701999658992912370154844162693386886849316112774486854586759887201653970579658960979382715008392402555417381929504344900405615470897362661025256191182144984266789238817818226232586424934342462103104330487731243318951284658816993517070912360192457925832930491285608982485135412060535805084498125712520975751941435045382936897479001400205787826346738561581055629872225017123620988188202484990157158923427906225078859243349995327194655527864416927264076015763095332579832433892230948845991086003805171320782915688640395654468300455291325790646309001694792533613494785676489053810845023004356367564413781372746508377706100695974424340844666723676438725150276797352636289581446028666437806746423745395939475133169483358148449564915905754840428403336237926517120465954570008537841223437002336613611620287749483812829191328468290271576559797940429916691400785284033182212544528247593374647538702039620907608852255819866563143530659996826313766470234038694766319119803809161405605009590721885468079603717489985053651589312339456086490176043978623832916264640591552313323008914980872723773793791978684138616319741717713279012166540448096571252869278691569670724958326511912611784786358709677665054771204417986724943536147368357699059139823147103192683588697870633857445351111383259744204448103620160946376964301524759671515758560326752072751598134686694990065239573179376269990121620558824307945416177525773669540132363351845588284106778521440047630695781352745258482946840782582149075205488700455168930823856086949411172149618741165291900729838600106702688852381387741180726664388754689121135217637628224443867096861397171175747380309469287680835789872140480525888667839214427859387937725775461600244208153639958618910516759910058345455213818133683564068245258651091885425010102692334560539069451872475810264006226229901935428896278970577758682221099740902773047534419531713592093071455482675562353109687257928037038554568028923291613597617497939949513665183505906978014020194106253832807459721726281802426365877065660434149296130708809180318063614370012890612086269306752796846942669806290584261582517809971285149479802369541840956728433476338276174236446169218134312609381385435680457720609833612012635172171043026269737874708307366963763197407036520650291811729813031672443829417827790159627444483333672108455370994480326353180717837844353091517869331312159691410047130566216464932075102042270343215764948737168754260315006264522904512351862792287524292118909790736880253598130328067846730329449579102550988640236661042341635226617567280126036677222218148637465645462375887086013869760738958433241950298337296099677425397234419223881417645364343055118488511199413872993727998391960635541483202483345118417370910699648503383530590114447779488950665368237292241185715841210811086966144720447177995488570152396314659189024083192036746872256380076143562971927031014883027952534475819019760647212942555268166528880254961551906416092022066032149480502294219257428256169441362349294301498570475311314804785238217405101560351420812459282703119033237641363286954978176520835258885707842588406441918873898480923713486864166782879766864190967508337485490613487141422107151455327714021885819903821740066401490217850757598788210914622995049074520835603458610895368018327106877666635156777566177077975547705746673328490175880008973151058975660839238263743382378520056024687714892731944457726454453035150230208414424523250461276476224473275264032084597652205735812849474490110113855459825462611899009385630703048166953318112740702144552039456820204695514757283918386515920721128570499494472545389270580094832242833733015884898808129072367814308094014739146551873317415480265139205499827612483079018519259104959998549920112444846844667160269669826320320307190711096665202658352126980701017527128178240091998778949754387153501926441132171672853064910989194709051347679966595535150296307571918889550550563802866941389999672740116609693627744505774605876548633980448889862307537879037163761428932192749201996790549553764331174220099443011399251687674490744983319449789841387428980535450680975869301379437092104214411037517141830244585182574083880387761341604465854082423125262972252696434438697128008199661296024171962710219322599483692355095662410104675729969264935830732726326951222722587439869343582057989644670065240867700003098993007105957671392419649816862084482768809641808486129025436599075410892282288133877351898768331951425832490590382118938581439940032433209663039915170986196589864215977192136265158845570891599415536476719011215760065261421693659953297778061696222056427512661404187255661053997225380740286304681883595792510132133686447077084689435767962802499450564518768191471615132882111330177161784782860269181601090468427577319051992711318536183438539905727118780276316369979622495419764923205172259141678704956777249802902968493786479156023557857033420846807141978913099236732991125423391118796703049787623554473279289879698447087652757975580596483846432367802311057651054859757083532815894988503266146542763480902656465070961064691560567308873271701700500606759962784965972050031588623793910356507765152543084236477523591613218536712810591369573657063199777591040794850175322217347741777086240508138921974478621792779866701429121350245548516524561948287419226587258480278011752616845216254706226402312342402286312609533020607108285656721303996045613829255094780676914837589585882223618427839205413460781984803555086466036062582474972612552838919984238781232456012914873633461589525942395125748022451439816028642252524620847170506820801705613032953587307706151676190035084229069550800870549914073031971316471054730312852572975713715139358953907953532911107564351032124085106880057513679210294146618009931210667606655495901786394291779956875061075968697136850188983406340119913096443147638579097263349823827684425980381209578787264492780123297934865518939782103274488673432189635413765293793086501538773885376923289913996738173687185516931434276952783104585735360602833366374347203340874049227187079397780580679464655694276707310502261631315273262026767796730622548120314979917757774515828569609665676267513531167967618181933430532491566713471681648440231623994452450872456967339620114454824243005524627024936682816873862483082485966969908006604344310153732565963395223647334013717977822413324329311395515332244342163912754830924283235411643648389706950108357064197779730205519505100201975715083553590791895510143166806577165286513902094603548442634901949586643816865371993393153374671139265983808956756427582327263703451737804609673454127793938488915395379030698773918872663269551494306627982336877835615655177882182378176733906321973244792584466048822251741415515235865515533709465178089693074935051800264256545707845866904161676235933988800666843981110704510981633016898922705226146532834043118916517321504795136918529604680394031160716897399779522511287645056096397772728215522044925109318431103800410135905489336190562909711165457165042407032027276490473715235808966919116134585480694258695610080047469738207269816225295196804030442874469408472272267161127598888323680217663346558228789279578983132830324575801154175637832379469603103181278281091863084110188726867023965765355600451417091253670006411761740137577936726647968339709892255468691576291439484092916420374473351821701363017751494861455293760248517253115835150196865079120384816738447597640636511505949846567227727249347882762344261277497556605920023925107283382008143330343025121793259279266991291235907722656119567524526389239400874895957604737484796339015772895356793171543167073183844302903996421480687179337857355586556969261922525358240041744791269042519234373035159770868473425972045366596095998587393878744476815349640028392274120962435773229955417481117724657170410257732239799852827968954747188324104549052170536660480535397744742260791878193372677344955165448975427626208224002180720464066876284599939868683263122669408704973818193848515096650972129211716709415412492071823240098346140251859205427374352957027293127554458206524190802443226918180783739840291587263215361083055024874369588551803685583445807134236469811415723514766232280751784424256532814088837631011193438189344844857518166430045945577109835672769108179132418280281843516307731502334654674500121494123747521474908961351150368297416122068573935291433456656429634168992959474888804078403076397535188972403562885256918147103414166548078839130056432531775683432103290313542525908192947409415755117106417920060329820316142525821105249866111305393476375751802730955227597450795363898189017483389064071414066416659446747977833074967953511423117921782146788326032918944891031667447490460055607357973280947380758355522098237340709871217825945456546916396398537878996958964370154623098480046058596150824186132912194021381698869684194892215393891544551095605559853211920224217153847636849796633336180133178046354126468596840220185885664967513922575291412599285583272770331497482481116062588504954782013320412476299935221390717978613288061119137549643402183779211128190046283610178039414140419856641782315403577044273963775589995540576493085890575824580092681366538058680487783442424662812282881068844188569138743452767737334586114402778268672775390945512961728053938745862658104465763341490180036235159262565654028924304582720169298756174078192218219220596500587634821327857711681574193598596513527323603190247319091279956648196081623602226004410769334183012859641014866729628347185782843702170242866921685358315742315011056353208366795766960657789658852394761179945290650140274248632009594102313533720408305316116731230232567504568660908812590481640179124540005313729140643300620129786587290627700887792382425871332709097734441444717351170554753540712783327160816170677690465936726292726399229465915043734015927986219661829331381890671440855082983229253486135930659760467046532389662902307278323664303572729531473713486509708737026095686861145831479918575884347925563170277183730374579382308438894052424491783893077614048284293583676467356370320127709516491944670234275291969406578923650551808879156007854203547317476917961499403453417786308027543090986148317226427870688340859715364921942016904309858428990624276865244167277486810751473514786963454108231380654150641961784988431241427531856315077932373891365726443867122568651297012536863213404167841405042135965571510730645062809131099919314596088728193177776194357866329771236010498159227277854746242793635748718202276803166524895297471953912476909629070138494771950507792149455288484222841198162640530870540106548469023736246123751560683810202386192508756115894386892511824430156388496895347402692368151927779564650505654215131622307632030556371629363077315846417815866791749587441739266419846404635506100817610935506718175096751858342296814733075729573939747268927372758864759633906326926034484422630242959884659685370325784100109254116780714208107435974617337613389754317330527086406338946473692632875014619515482624460210423413550080252481236883674302594075440321169272948354091550392296393308128438587075218428444158984614751012552818317860810424178834141303739797232116255208765030207665705588493181615938966895241880914390216460027624287573540244462629733243727881032829557561073876478137833726952725785630180096102498552677967390696363569258953008398140773140859565850219490379802135831500060957565653186213120167699234204467334066532904527156278390560309707358487087824282208969849991589358987456116323369668825535855710244203999077684668484972249231439407629126233149308239094323867495088089902329895237185882514252481053693781975583165109619856498569000336931520639117908860203936272354927348333367476765064259230641133270438990709374620098574136076259686597649384366789508656423514094638319247373288739001397605178097432013682850895118785095936824541395925463828916345670480877812468536986051333689439983665016640026141907162412276613160167300360045202298696851546760613022702054476294340785966885821487136413745771823017197027943296158884796209409612620598461879826478868361915661580812212248183411492043611514980206447933966955581281978236888685919691909526228603405983066536663103040149547279751996844244549365414860676172933627423878440100483683959154097844983331956864104274104206237419703671792442389010901730301876514790054529882963232633244052944035932539716428975112092256894795952066195963615372868843992644762596387026547149103156289128890958174247778099888482244086617329465489141981982901160564198002057940808167094143820806484838846953169190028050793422935621962053844413905839596455123906841666955782341895281500749385535022879358286446548556846484200559303519107762435458539645595975243620916628055890024639635840505223106800441060864260196464129547532229661827693433156044152863965489131520206699163551778758936103824776389510523091125137581694662847165817101793302761948864509829827212751370414160864945290549681081087875345025217421677851782870993146686640006067913938506157342624869081385983315013409342437780518820817411440986631139997485137943179458839458855727116810274683806232855486103783998073545366955240460632289490414982649667351436890168646391887578169660572217648333738366743573246891475548814104274142978478388181175904151312888227990850165516522094929601583151576175401368097840122188820103484035123226140207372353775596899954009908272055967039466578840101437744852470894453050491929531874339099548475148369573396757523063193781688386000982060575982676519519109392116123392975876857451748123698654737704616214740926440070513291011466962673942870641236317062969439710006355719515752069342603552704466158645519963091208833635067635169755536480925698774686473540941308681061721327577854726410217669689829548755166452821750250208320764048698519843503871072629469272539057059699098770645517472919582652514921281620760445235045758352174960504543097025413099082474258537174770384956643850046680671814856002300299711283411196953161094596912826112928534749637276277261472937243813107663354247271250449406351449698570481376092806827134687669816371359047926559712411090608765769886673306127253038465437434575124031470305865562905436753163912032738374738179404884814614472493736755715003441692992550951787879293803733171836886251693203333215553926931650242700829665871567945562822451425680152361385650302045423899648305370100225301886998265541736347095676320142216940019289431610974047090282148991913412141445223852996218027142355599861069740287698677381855743917527117825714722291235287303430808286732430824475934293378190314327926982677469385180101103007895259912416154771493044942310390062587396085258901044801920500478374188691410508177444536546839620527307895149262316097106569821475106648803945271623717522213258303434568659889998994984802628399788477014937320381009141842562703702511148743887848755894250837927766624471717575388636117090065225451127612793766044231484576516526412958172826477101552631997305078316056105901166816071013058343441505959536572603071775263221553456498558809893158403557355560888583699445952737870481724665813914779462361313467059521859877039895887953192196129892677354695943955358063304022319810797016152136702212418901031323032269446042369923454624706813149654511893766511049529215513560696677952582060513124998621831911789734479519781627171126864290581772548192845658563188951737891423487450741817791333271942874431857814549025081304684921134497683291691519728873531947197898460547181914489041330439843398703381740101180189535883835042137662427750216988190960133404225623828922782478834962438066008670917947302828222469777264453551720273660963560998062157705619176305934469036138695895180387571689203979246211640972586196426854052524316986937544017143154543779947527307949032764992563138544119438715431447774522096922492165547349041828576417854089400501377123526384512845722094026484513276406122116913322558280850143064190253328877721423871555009835604099384672168141253089811732070721441431028378093681244452737781452581451985448618394093401843213845399194660069777158883091710733081545399242570885572109574573751184636725575867492022508634662723948818101886755873701977289550100896254262834576654393516780217343447374789439653187558240305918687870969863393355727645024584318016071968200673377025872262517295826848862963259612574860865177001785209581253737144176804732843523728340461103912811009207618716380056175096620870255954619488926034194275065976681843357564020608046143582237428509188420332840637337720532323156998324785953421415551384513781733341108270157028950115046375650376441733560743192112207386315661515871385599182006861929129595891084132194440001880794089612803304885074888727139130913546469706058201251648520687916530940689697803679686171806750489947998282539670817076350408234027673949434046976878571834010452460364978770125202818297555965316893427002820425546195772805740115226293348727888398743358513298492771661638181053686670058201579987214924291390992757638327250247490876700008623447360331190031490208278295100825952413226417158936276405202886967293336431293143370978135268335341910461288552149840643590911362775186452515581307902917145327024163856903959009496269981847438073737201403449179265142347628140495510264890288446656191385430549018377618790107825398222204558385752833468355689391319471575118248096122859807878347537602213364447915706385926134632330000051931608697067885335307184601073814353179987719680616561525567115743066878086295685768682415997810374255731022552473015412474713421419212849325498135364996594917650144965055950408406721593030352989446619546059114241842250137910203372639934251103211790453993551328871711216977893741249040738286575863641470592153077799413922831009165125197973157139837558619272786501342769226720733721658874664445100643196695513262985205671480448452426182995885596724744601567021725652220048347622138332845915609905688197453862601479661606432728534663820690758855649746908772085467899510979465633790121230043137623490827600130370238922303142711004300419438300964050147010373879582138363246775039219244029595634290477295384520786860853415641226811384340962162206565124817344882572695125300224948874713394584409166090323191194940811684060855639780721247510882652664008624521494427797362197270138229827146996462321621614128905239283056226933244228556686681513210103172540696653597341083514283888306280140216035682674529579236869054776917112127721993821662743867457369810893587154818535442908367799520894485529812432482506801487280121449884035098192029487591196396173841229188429674845838272838998112968748277030763633630005219642670207103954746739503305369312442648079760511605237507751010860391745000303430194466597558200254051833029143564726209680314833493287873630700277266922348427412014631786061843652875417074782527374738297180658249231250030775457688563332498320904350331418584471975675297444865653566775713627103709690978829669079294467330781697622097831221194624993492066206679234875610836157096588731833343457350322567510910151068740566438516200572935365040043921366963081747632256286285654785628936890340577336357776252652465481352658738175494805290054597455121993423614935968694447409264309149704509166432804016462169101084473327369569102135245182058833223226872612570705271637779644325131965209259428205998266705106062241266581783815478729225878112527680489338241042565445145013538022176607360911566804345476576555962480428219872579799281802884158549401752116945560941561878553967572298616977259296098770013595697432575327182360777107130404337444372165658057608040119320645588678025273364674156533958934344899406441189757610192517669218115999010361273498930248333866412904281568665556364644513296781618237198093767682927763165415412902573095365028972234910525768497077485214464271169048594882822550952794170670140943851163648117837122661273043172681420544203347941804644464406310866508575913516185781636573232223129758921138035736835224325114771924780464073548758652487993205901000489224925640638585389007099618416627005336487631690136313586586604261770327525590577924452398593231016228229211788261556769411284385914355962766103853947606815989935589607293963905083085279714556665215824698839043093510299205885642700417731209543603812221681855350083493746068097394573478924351516099174059456254977215626515418030773845414298132976965459713513222606955979331863651829389164906744545301707370236182453900824863214356042822440530218532506639707612047568481449968515451086925833546330489246979948159871642804403719172491402196607610781571938056596665919056350036746874371095113507321142468107168654188027828228984475666446183427942336578239592888583199434357819039571377738184088023400610876161054645360715320248086001822035437704560995593060439980101382675203534240467916900143409505812953219698433378930342371888160068536238253790173613155918708056205940323424481989282498367448093859467713760595403115813532863832795872992462169498192303014472974118151115788631796310742401054032644830575736625842873868437775379026838982526300528145627709720202796201181415334816616691454766771651570841591170062521707461728957409684508007139505730391662725104539493692763827605777746062407895644007065342860056308372409505263543861214385327445046338129848069069207286541498461504636145329703771739584492118787022908823538985256198789887543181886192548604681162056360690875196800860670254185724580513139853258661537402533748570847327875543715749066665579887773239432489875734535133262039392023344829066382049735642797614984716629412760052980642905857698439674895835007225866191356581690520580536862698669880737425160114337744114668610126054808256769476956283839458831720662703000725081071730245431589957032756465419249693133128684731125407570524665803152774973643392160026331139309330173598743883095279957561951225855092443025698825404012544466755514896054199119126174133525786060779071891060788468748771648607614543641161537230895704523740800278215542989502790187828898806949466689653763762337969491685485367892954255786900899137678775313302187766669998731175513751066181721904497243130443433967592511548432781131214997544239516811704580033749812495221825054649073994947621236449135028998969817330551697703482867422488342352961003263111138888983072855859493840193124164564090315584251214649816594464056938274749302750124998609301519782072519730827296151998405941369397666066753946753706473756436731629138118726117506702384189010574145973874847900366129005749505365285709967555648941946533369622333062631261263849077812507083911871174389382390877453650587774070980748270701734835717703265365022567429407642799791575347879388810565207896519457977504609878288761223827295407898858013341109406092576759154859104637625981444219341343968443001920676346668782631301927956629798446992981227999204832437128381818694172150777292746201768252949219091927232424736722713488723141153727522045327501574305807450963624368216453052330644046657795506947550682552179447399127947489496865206828914242001159767889267604526482898199460198767735645206491989667413420336376310576241956562219557827310598335242739276957858958790362596941556579914458267639684974270715086721471326518743026686994884095815264008261749641191544159374165111379051245460078607181807060136616583518142905909716944809397335119444881229550069347840504718036838864127167824751658661475125311119183917466628032421814423099952979075642751473078516721522603959566441393923961899478200183947101188039794444288303568640859591860768719403057611481588710985263660914208876337865359828166987727178957356871285628199250337080920593134083156180883607662975615716477723251777453739089674154378959586541725673315910636958743596052676898817267482530683782716234622009668058997795692539751644447237728756305875535960934150435266867579976236165037099159903675152548704286991704142031793421709465534174769396325619452217848243409029900552129617595901409942181093365144870306140078683509481062879398509897538058631288376447935898758928430558277396785263177316735449984811928074461680885977448899642554599010070115340890482359557252052186327133352004360894555473079447017528629081265146870459170734125454623548612290257519666134547400731463893586211949196591896225010698833232962893910930536942504889147070278500397049141972806955341756870811503790055900270155650433969685653080603692469774279688767025794676051318352615829215731733365004969021305034911381986183794371226150358401119870989460746458395943923052057555118954338866664270977655957210338058240132450326734103173695230466646289172045659599558874460940350890969541015130291917409793319422676248724652666015395446318939407455338790223580059507250579908448884953044779372042769983469213620626404914561515615778767458337423183000499877432473087980641439363388784121116452608512631648956656766579298067727824385195217374711128646096415434691776140689763016748089743635633849675229318532363639687417420864421546466470119489933444536984152546626476992296680366878899751554545246313488831785844351388287988671451197829034792718543445135900084036964956909043609214519183159055040209472075639681936407382867784815935706542673253935654620887412194047491901743958841491513295237678449619461306911750536751301208836353492766691553224728617661535161671944037100768158258177611484566195259041591732326941148467257839938103785585550059882234121249887714837913208169969617615557271477267161069717550074197528735546713009178322344912498806403998875917395662268035708491058146360814346432681147722856670464568678994568202004073078178712780252714484569944476192146134818036248733771790823206019943895504540278788016188573811771490010931266475287271232440454114573902118547091209094801237868100834748882455329693924647951169967593501508721793216069566300748384323221067144204029091985444093622861855441026299766859688647913937946063249097403777432239092248359392460283720448643137547966313657399096802383246768676426155925397078172991186735649664596992426735469914848248349731089612254088308598461124838018545219110834773227926533721910462381516078045446707451586887130293513711920193677445165015105053518326308507431538452369963181145823501550629861873874598407820543836327609820366120771162188886443468312660872998221393261849352504944103677554253870540718000606320354171583788704662066568545337662783558240758084133629108920982665682134937839821850239710590501784664200797519599567013842249094438310614660048327039390458741645532916859287575789759484266921071625909577703809005311990998563203832765427865353757533118149591814033433030197321789994151948947771645784898702435732627551305674130455171784210139116239958201790970078641627381256216157643379213673434809557025811764446787224929211380909738950752688790425693021602959048215065814572506281684921719680142632019108786113039208284199032511395114209392599819087967853635212061039455998081551166903011783380773842036151824978352145534976903647693341840778072006409110358888915088516071168558966425295841732217315646753046597894675498356515973569873809449251859390087165156457896495907328061421312537059634049564832974643702761049950528266199062099056130109611958136322534070120342808100054083589581056967098715810924516718654811010957818644393360448135296381460679609834722710451510661389930608546726282400126787497796511637125918631248418006572500600698199405963865247310117452952830523528454587569990239329893121585094608747267625471910135333913908709813715944207815651694160192070493669540436634485623375597723940011862586142426508490855553785464874415276022831744737409831430349976145118264937092079580275195418891528684062534128832608030326464043225062065886842450690932592016135120055508409596617823346873217625664503730581464069151357297671464061272563116232267537598953153433684217437975372528517844416680911924087969322849768846251626429843338251968234061473025951755207090837559884986187970941762472348177494509597745487065280662761168156342908667920789311672383812617238615793799917880338353832025142956744984979877721997727140579218932261315945813228547415535320665466775510389508825645114661039863435793194733425582768069272367458418638552284929922644069766221760223962718724440618192540925798356577871986166771679611297591324564846017640552504116661459997249514226847584616509172606680159375912054722827585157436493965659013921077308686968343065127741588354069319807722443215963756620270441771932171993191958290692897763895755119302978829033238673178639753342564564926251538908301093145323504656073678337225497802883379822701860709138144439564964060626199609676535789233176844922126170252192989070522588348007148277833222678298606601627361126549133539553815461265046852659965128108170475499528000897707086570967006588329353948808668039778785511562195961608770761293188600394394221951161353958769632137150658363997973807932442765904095359904912040810564549431393930011021958448445106085623730028635724076506233142115845946361275621467106397755021623212253103594202248013725319668425998587842178854209330525827782754747024191552667341822670610745127969324122871086519383515280335019985268229561894879729298650381367627614853628476540945519251631927523972958500612403958205397486521276143254391053573839116131388971774274960025114661868743927709710589045393082260052641541986886349144463283471968281225906578416624788512120742651814322601309807155684592042876050961877034333142078954468353381509829444965134689052921642136946086920206003587777128481715680820935015086613435349282482501082035141886928799811033516959398624425844252714307205080938608663756098493814078849647915320283341454728173285956364024377830184245441042388485308663579097335669281999441623972080096718953922517242915227284955178593691392829658054279207485412259157838207213499838969074786422191874851189590242714700747757222713772265249292873671597966192147196586657489696367554317160790645263645540122531732973415623380061804038250678889603373741267707242364129546800601119086887780412290848690026821822085732193123623338195726170506994531155045397581328797307556676176537825718511870897787905892674147570288752038781534727956922450755140033590123232555488679334358627965022133136753678840095544404970249879124921496599633740769749678171978982902418439600808186082256842870335514614893700730812465629776178642409269053340362974477315162567980792860211054738840840671571899340280324938064737711831046208228765398471976379093271622590746941295222216242534131806824603242860675103205001337314276511906722862658414929778010989224598974749614237312655625658157321195917149576763477069385248321485993635902527814475288483401383456894095464767780736304003200906353519581350874296968862709954217646966196761898013987413898827922872075350408443559574955824035332629710268244849679296318871424606739234003849066846277042138484977965428064813790319274945356210549955126629583312638193448538288524638953832829817694566424219307779092851537753795640256839187687677117436872728040898534494874867379853664948497179941715126373344050850354109726100896402627761940816041629141722005996996548133532463977117199969991709098788584750366219499742805081408117594152208190987345510269729574575689203291477929296202100878242324707042503670700680823886130927188283602272619862298675264377975168431804927528842322282015578632877870537299505039536824459474161498153444338953140526644762361463474783677589430843251819759416256223678370177592774963938190288430172664930033643585487975171503061831184368833401335688296580496962446059005167175768837686460442060076628498630468923431263256717187263306268293129879014824925732845539034533895826280112564804887093943333110087880123056141582827900689442920345689353763172761672454580466401279481775166547827725275258694758205140805650664363848231672579198210631865906513247734183206960436711554474005749445841444147065316678727805382110613282128048043399162317136168148094691861440089772579757243420143827212405485312475083903316189755837180276317662772125412950697969175723276103729879228676698714336111922448176067951175432116156009828347674607686280799742538837138225472228514207010608805720488314941765475297579028095974893432411080075009746391994676373687665259121716289516002456886642280707564517145882574450119121674969210432927118544996592236944649308467908566684333401346281501434777228948845233906295156843617824952495880032018860186641176510474635444346191735099332883897746232640421381374756139644848067175997413815171820635342564047149929320704979187169322425086640874864400844538922555668660842762198240161396757090064238979619124790753540899112378872704814222628123665477080354570861207689753738013905092976808607505280766338952677817307771387081116307051406695693007972627395729608705446569443168308327317133153215404856483010055979980667720173017367748284450340132141859113381748498934827539303995470984149420793334711537528735386928830919590435455837430127718137805105001673530583874661321974886475950656335032935368255637064611112642670181216653520436144792851682099482511757324294854064131334640007662664859665620899542675133082462565772124038206630492838303938555166700585038374520831238612489118302626871362128077495557741593173265205505444875060283047074639635107174531861653449815294188350220178554339628037037714051995031912147005711454220262662014006189370709805947384842273751963122810241521093729127297585134826424351900748802910339494888871874753913577552874309337395568244576832623476583696572420018120981624879448029169996444946517743911180818670616598731575681367494811913866670397225927909017434923267503856794266145304892692955542254063166974446818039717519810006884630106263800353113014122875154109256915063789389251568948242221216442722559186544573384974693532072251265701306036404753713283922168613599454988039152290963040396382817881125869548650384112009214095092929635922539158052413120948372748924993787979832493639369534596554605514806980772382994678526589420979827856753348154963539106945182276685787923845448932710143731747180170420467338477914673682128445302713092762924579994448522217002244464286168155622768420134910358261236140534947355649693295197396730304269610534245901697084215171485663313788658244473614598417480792362062192673147246761649681120704370641917925162589926482158171497335042492885697178914483291633540895778487090124895587151783623351468223068754517712474489954059091338964772667782830680111144692391238286684488465534785380406368756784303434886338692446765400411200961334676941394680095685193546757843269375335244219492284993870829084283338882001149734261267290266626728573734737953147880081772116071470145886983669357909339370306455881542582014496564278504046937055886968773043517644577826300856004014000814287588162030661497465082567003946247633462265609632241797419141996539500923455159841806588482439793753265917930915614923786063323396376451707180211937210885570848131661884836294403739252480542841586714874882666201035283373166691454003957270079559521927609998057605156181386623664635417270205349671962732064997738014190969791472530899273345234194861985145468146412822642864237571367825346377823613392763037869917094991203602948585199618100771406100105082344168048228881843030187291213544916157727291143353021132931164505008253074125898373289427920758723031269620059727160102465304260550729464662650305442931986079276712189260281239497084556176392725340900561975679272460003657198073474898247789994752341744359256839860809770085279319184829396386729091522660531551319730712024863742601960141746781921982583945866116260918750735989361217188308843007616611902064143339091717429449317074249602746066584093956318727318965507761470137753497198339587195758886317693941117539144809378416541358820525837977966795060293998645475283697892818531635113364959149978886619265630043698900815974381395202648394670231857193918626427732073703987379954549660409508224479989111562428952145495770629070741209299313173476941520024649798571495479841312864753942224672435139214591409916927287138908181602407694456527716178058640479327049162946164161624397532123091079940792435566428743720948644253783465802470275312310732474228441725297044387021054491516101470717584659073512077243358548927007022980853065983099602608501511051731882585215542696966154836510836338788956694365441065355511708351407485802889747500700266758348050285379285967293998422077930584098241768191136510043238220264279560117306352345956184310714427137450305497208527019324231196611907020832290196994807457580713753411742621026322179378764217565162573194318126284662945528376142100167726474132894338514329476299873313696482261325495005141515528595085737195339472170860868567772652974939797129929275995484151942639112722123725380528529027708021189721347385532706879899320342634573719984047675219789988605762786319788096469134375183386435801450679440565654775968896045312067905353817704706048236507853670508680817736222117117861063034378513413873636033887161399458764273792887186776550075550341822887777165153112598491022743539427791239734441784157395087322796989885208620679708756169144083732435618371778745485204399445727458719637105506669699458328335410741311877413687525119944267389501663766392121724239918960569620922130680244867506780386952981031463089337756187910323682078832889335166665037855811979704695135185087696545933895459212945821588185049300948515939220119276075978191679167340615908298473970305223758068741330695576570307517316342478368541072059200228271130466262951802310684602074982361534581297328936722376208161186413497939238037689216583189081123994050566440541460542452314644840480547879955336763427892309512139672381328547799662894044599682689925371814605761799440375192187100507104205772479638321473365408197867800594749268344003687806278069895945784819114276991297743688943514953062865255538844846145045031427871661396818234201230628826634179631295980127118869923740603406429465751503912418773313766323756978711527261599623991177290502280934733778536783075047698457298250439878919030784381149447946831726418506994251105714006561147939445163988900614359831503695963942698956085364453998146424715228119743029375924987096520107491969233811134546321820609791743640023412842850064910666439642091776154945873841623020596404272161406385714754181698207768609447614278259567150241601868007290661228263184026920273256351705272735557472415114163825850113714820528147515135660171240155702528845975819924531000540758228398299557406863981540227223864998069826840764769723730239267732665581243933584668380840726652953945248067252347759671533428033592113870393276805922214788936345865273470223979157084373778727403027092489913034351490142131259435321920531578255100965749101180374342013860534629688620990968688065567968793066748309924086814079411777216355583331935610416961779985763334862048704879193951093946374461089008046989184696785807167237774720626657274135741723009774222769731096764247874655852969240575794937826333725094243020577522389186958272322582099535701330634148743721335287937060266249304670391265493978992844489696500242311985886672419292731727441625688630724458738406646268049360397350039234579036610275649728580736482103097842201881984668779005572462322884705327286526539818095810152342016598415971947535238892605580840694190640527047139416743765157369944688367254420377452745111720536994411422819843327759719088990689527278139538080223410552573883811820620061928736171731595534695504549479036938398973975070877811687745394358919572650370204465116514878414662924973371074266357946617843525044671456432151759120339270954722937743978598774690792534882454713290479295394351096124703771428162552358452589086432307292626876468782584129726576841539360178810620347283345880042427633841807711071010220543181024385395907464070534315234573251099244234863806845237613842702276617664055080785205740557663007564861454293804173890216507342012172610494666264057883481037589638395554614965593628011086408260245165681135726274778833602699032026274638278379785688690229400515102826589923412652185797157414532218844555070422192770860756500254129266807270769997761866750471389414379713758090875639754084896389248143408759386230903389571148366227379089456865743075985543072078215615861837291638567534067321454619171378153616790062733982863135295076391412190657522872237078288519160137317959198609752012176174337330163959181826791506974842037063668975048480322672854309417651220158969161372270045898427748787377068664237286534805858040908020141901954479706574867339658705920822690501193976351565039160006383479161776313777604077393881115319162092888766376976620720508063771241574350142538155768524494140678945157509113348781453472542840969898316578825698846188140453289034489745918119529628603297134128208707588514674291787324175568596690460998536636223569485055140352048086971024926963116020138004865256089651925873172746316654570435405206254092349338063563531040014489847181003100962698115413766445300602212844694333556015541667828565779789122065846568241848766214146900190540394725922869677859481136634454469075577262174687247171086211818913530999721098202514565041151347655555165433107495557125954056852763133377667723543717907448748872898187935332073748697580688500937665382676295555911484964090932136730667403491528724189180934488899633963070214420850408928534319271430177334560494658970048012082259849625148483522929570464596826357639226189966636682356346003964311241289823331030335493464177591245619172432991243688942128327941532764963966768844559937329230081459224254216477232637172662331954339971690966689935429121410912713004766124623208958148499247450310872058485249308247829548001566500396568107323487360401233534955959329954060569007149295152529057229593914170838877043163895207159485590458383784575222467321398289658024327174117612854355270890990987608579355551460843065944784697455234940506211565359023436695895834166982916936053379740232074848205208599153607060523061701791636527471286983336542565374606310881791065535695556659016361792242496064887663476869313697050821909963475378776854377039663467466541441485945998955551835016573781126697759143824860483090143704090221493198041467857484360097730451085142253692804656280068287467592813840607829117130253155828247462128645153863681146540160378232958582607362974233467268186742518251284304588966326633563257148969799936727267701833603463294217404196383843332450993700536265063656458955873828765294247124397709075729827407083839671383851318019487495861466611497022798594612112425926626336284541037918983157379601900450677432737874227399182144284326022829036474664159184243666044395922679427403935082455689859285339421530764994757746221959570664698554390337005832296279146355098815577025176300499627561318561913327674472697926454050697718838260469528295676503545695677796865794882493963945778653908901423184873295954089410142965639868338233148783263318414695164266497090013011889566714883696449703250896220670845472207080732016393086864198979030727535693057728255066878143354001407430304610765906977962102024800500117157538279374819122758314902278140660660455160612656853108385388351363425952919116980097267966613993105614209019933437964766627646529818902374391335913965211175166332233507789668387629769829153711756190965366374600681855216149303316186187583410254068621970653889338066527230932097194461807389795685236924309573902368296503658559769905003905847487657484612332658421245147176864625770246957790211544001245715336792466611091115917974823092015552414120727557693911620195508469481264655300478056404707939705046208183502831107863633932000594213167641616025816515350040613947326530554448981461713306600203508178522267871916889963653311080940552074386108038659314714561528557141367973118642501616697863529824901953428554115461403650572146974027147098356412796046523009733482963288229212968269185840425673061242202991102771187950032296088750723024040127216785364282391653294834652277983202189984359583244930854492531794845540511708360624117530307126477504934641227591158036361158067960922642686843569770659886063494220092680867819994997813670914230067403561189685471832346404167588878294108956511381752918827054521516741948600034206241771693216846383431007456355822049790938602873093204210221976115167573473102058037860040216380291608163518407506377996697388727735152275520081356655413697725849092174622911558853836029860012797376113510962909209776121539495816909527263079111841220300620297119154249246238431798992033533839653131900157667231398662917208609845480124327141736966090103228831158692923660572377660916905633064230045854710475856589748802015074168390380086800897957498156669718211157559072846950570042661380980549949802656784755877323146308239403843670325362665627444530730131605775797756585572323129893576315677390547114418782276499272368855768707907364458831559736035333099698106891496654631498703100707312865499012193281465986932682233396173309963263243726039072379552482319431829304281913019344785849933711630741503736024391422110090479717785331430157112190457378151497205946777166199811057514014070492807033352987699480201385125183952506448293024802608686205406833100456689334863749296208833120983875647425450920597183837768212857577904682828894346139096091985207565347610633297657724903720451774999538380774532605868438789414490624492604970613879894085506423027188857244033939022933842164021269383739925678519927471461905456618101962015113069418505486353860115544700398276785473102311105605727152832821151323067413529516726615815824003737890302521824102118468933634997034822791843540599706170132475287591908959320635686546976141929565344640201094834131568844342710834233239248463620829316900099277083567910526337398520478820352521964821786882698017917990639975425471218436939124021133950315431557749220779973984929124017848521121158346844405834174452942780849814865332426201465398212186184322908360033314599726829574551567723795494854222383766242253241364059298210857095422466067960462291794658173757143321085646974837545622756693615348407602381373159287206983101305751384583654113543529361734241236931993528696039126034353312947636343943448072196364864621257164317511565494527232663068868059753343434942771308744685090854764242558860190372892314731581892469640326738740040627789505888282812781388961427120380621166551519148362769372129469078151653482959819156484942062678610400056209040498085117793586858522744188272851206399582574645463571373348553204601812699752371930064803215404429532250355767418019837044410653710985659243120944398862781403741810496603188128942923107692655783507635019128823213907154397664285794015730460409158345940836783542123717094052542704765899727349793185821798419066479930184387969552554087508694461208548022167945205343844031953160892924982889566939545491617252113512501747295337601455812689172769869573482985541075729350074183282171864402796634996790571366765485670749782084780338969276644627166812412614685557427830647844329177638230654001598602210361840586332293238843018255308806408685080263501173847281493175404817764122416420024266385533869477764906664386791963299119846396780221957405663319956156377740542212310125458546364840092379477164477902008697524391627624548623217138739139664461244025897342441192557186640351135765345547205988770405441606034601621493094611748288885236488620627091529429354825324971428398118304344419690335171452999415272253749583512262577121362796595388468687026152937608986104022200782886841333187780885339699838441615084342026328039667001045980780779404408316536835245672545960457306678493693143040063142131829171677492824985190235324424386796351906163459358660078727177306250228661170657823275777287543106295243793297190413673771555743770447069409688770450368874191570401949410281742473428877894105279899436817661837130409915634993420023650529106614944049223192269826353982681966903683663242652025330206933261040950014969511514510636816009587390331437822802790364506108304024482531150315127072426364598022281076688452388439654141220986215189480777656178550774077410978255737477143988639073755660144611646117943797347721278192069282843436952592494524876981379599457845951549584824054649608546055391185478989744532458728237165571003145300216590808241495569446679739265370331745688924567793955410079596134756006922328308609825798479369629043679155067434048166438151861396171530039513782817850079417334970860958713606730416905802333247705744513258932509335770980603787572078845792489750083538264524760608249852834158204518010440154476442475855830070378609891120712079728673604345836562815817059012915742417848451777926180716320938811634055412790161002133280987343994746116434759272126243196743674398634355068423156975750391695953774255821376420465901090806957470724151487037216715954143496958347832676353518841998058185202218460962400992121924034582884565541738878564911614702447942262597386477269625447790289847203533639794824476072619255864853714186359360460888919141646429546813361495310354055036446285918979310911959858908847932774005702501474905562390957477844871795472343332969316880710998667501774054709202744963704984646281217533764938762351000305536806193177208513802133806327004345986914649211720314633768614427302361853573631462697650823079519010945916676446879654874603507730150967120557845796733085381622103380068987031224981731552460865301097878620846711847324737708467719777256466145756382368505412214264283965856420625417944012889894366478228779604777702004696747072357268184912505132948006492534523203928657854436195719652367059716776827606398216593892445160936123260621150344625567894779090833684815309966643439500947312529471691466979126395854061145955383565024629996992209173792833393250771092850567821564647733808481126999886470565112509767386553916151194550312709360057470713583405893303039644001239713369525837010975908997828362492728200195713781749559666240532407926141740320200327741802949494248941321825433298931800948569825410780849296637893465884507785678868679374836252379627219563106413620199654206156778826264809331894038380093184805998592492545551981164913191136123693833398567725400948114938514841007384277554193074613431116214713548603878300451049476082013853576158991158106887400531520059714640863896296069203155023377147401749493763509872686409475862301548643383037597722801576965707928208308750345181220126257232086550222653125406521594051048814356391537078733542148662791988622553273982435585735402859797635771882279574347704551238048417561412084205469746766709108709910261894937809263545698412655635441049632085169828225185257994465692901842461290082955114187361264836765815343728580200425584844596722788123090749746365819702178562911050370551845259771808679442035008172126007434693233945566663209052777846757778898250318973045863435344470179770127539288711844302055228199402868975353509964752444992064381616607899716956169316100216580767107662968641467698505550423051063139740085051595711040065646396202495263032896212857968768189071516530112827455922203030095689216459687635167879048793414729951548688665720901896851196069489656470268734850292773910212573497289538215034646901130550731668960909755634816673693325892045999398794767649923975623633374756971802205208412260144769652574627097423486695431954887364048545857298792839619834161626818699965128581638263855021809932811593811175714807352520011910232767668449635252759148939559361105201335811710679837662467054882397482099468619324926482853371120964203625333918353485024601052640583373420878555662422430180118619404087651322605425503067335175207398028628632308051303641129521259170678297823694822300702319274050860181277669826009981969902062526893629534053581701160625474377536413755686272860529391998254247613598367518632847068198949883912556619456961720253485445337834700840890066808800690706288718646715175377425824288546325919920591297215980902884054945902944369414418868561909110497501569734518795923253147355134624623186414779930214542017088261150961486022218739686418780017025257972413919689080424102836696724371361134119956299141058673708706407450030152321078048346022053866692039970325971597260577524294179570069575094391627162821460425013052023287143720406368550260876720402332078809761466008919223621087926222608037810537928120501409736109434245492485491915068400565887528355616625418443970479138443969744449588292019366308877162441871561915218938328316875372866380194607774644787578767251611331812572596901623387562461775525316747431688723788422798048447704477999499834617387755361911682451932003552113981827112378030536193779039583541053981946024855996354748697583523831789581074358405145689223605742010373533500970799136904590826151468108849840717130519076385239537274173203336768308840148221320378950912737124611662304954976406892189419267533353206814755036307929845272583236710811032557487157820551994953722455409554546194976523721104529601741898552826392719403162214688010432094695532953095751667822774380777667563592352199310504366102707670282415557191602344398360452174306854999449735016991382216296161762223513673156752668457691071536948712068525495604317656372834623054785495248073380215003373164589298680272198694207020531578001058266395028579650666605860366463563711706344468323825927593849974621040188795146222656250497433111281847355953707502829737318784700648518634203225093492075994693728056452230372983707970363957868975194847458695927983624698868379695622420507371439611209251765932858693673084103307414784459988094662873641957093154626789744716609942458606960843661087418875801885042885774841146393122053493500299146404619823668189271596459061193253705197414568053538936037514806044569664427839428379044349349147399983236737869139521737217068629203614651606510939410597397949484501115504278803007396368655115107414168811669583790252047423844987583407764649183214725366523777557133549271503733916722995642527498767892324949222764363030526898083125427412765181608647458118992271658151805762469672376206909813805414958236775241279566865302106236222302221503675110943765126733812801245715379610963226963131249670520699340768056105839371095530739124498450353891354916278572609935432199871890779033609600450813475093181463552168456094924316315164897706391041450355519791240043305693245991893481270045919228499745761009496736115552285875736245016931346854577944654423493357434625189884736482701998730666759751328310500418074509593398069988601462638417263591304632495372792526278616855979928866412617113084642141665388066753686330566213455500756834532141806939642514007124248543982421996208567697520239769785261628122971484516206318786608622282377378021627191120636257562850552630935853313464281963995919951444601060807211849124277871569756491698060924263540778441841165416420481845525452048670198484980837715758845798399516923401605049135923232447538575524568380905688820094645243096472408936344252176916382258345794882022275396026978465327496370357041906876686615567757684505030168879881156445164882494604509440259810310472522131281989965927958541470049388804760509205983921895877520597389154822204134765710569898179665577972631688232314368567961435198800602896454137912813693674972758099639474602673223573417387368218636287525743469289336147877053370666551799513946844241368923237314492746061515149328729002146562341702084451071552727439401183276014568391610704746918472958282229773814420897786129006117023721754002203443403580563511705787038172764561804746160919260035808139470501621317965597010272053165743724071691291358254001776653737616159656383135123787753411931156034161167067166586643593258755887757240486265266349500911347680591346501841280334407825337952101183348806074791319812800109400571397909627533751372904467768057556798619287343014850936305544049971726393316630071222235053894723295841961453944288893066406203938796762216143654982024400012779904122498228421299843342918979929207637806786565959792746159685408726470496774909423983580646082417624262594304197126644777128640149068069263002337294964735614392875002232072818969261222838885528063191540489884118577543857237647569879337345195284526043973511608203183266945611835654954545244372991562503459589408761116361288263964265820304753392706848369037091222278563602240259741179553051364287422071979558679652478778686579396845505889969539705134367425972644197746548163315246238131947233174541316464578199787037578433853248647051665360386722046529471329329341409402586781867164094277753391255586090182293155751490714504629066809973646844145063832989216641230866721714818924412042151572853744684386862053785073110534023038728715631268753907386671241919402222492434855742384410548579841954440244998265660587932069396726400746673463706784366709281560495021897002127302363697271104553080176912138358429882473873027423217123733080131300973120387550662316149705781100932388833239051832870723497296857769703418221522244800881408283213344238470749991880026462495819654674848203319477557543310275826130696681683338982556432635326215782952775313672336690831743476314808972986649528398946759372901198258354924352742517512394728959273979691770929948031462192112340284478589637574825844462114832347266174501719456139944575624593194112623705768616330334985797715879178660089828003367507142526228905311320548020628605203436346207765767356626405070488139941489184908311582341114709938238653045447716326674307979786173104199817648731763229274113922221097785412477839830242204826731719964229364972476702500257339869927167460934407833651707160160995691374319967404143535060763660141549318956038247435916068818481303958427645027342081931260709235268012362587939074529050202497985608009048545920031661827020691059913367341093298537816658635190807921821527005607673661766814027030448197628818978556809081470574144442888594162552065461421277019630729192642355918617727211168726019672374387890870784158711612070877120278746608047425576548767483803899397480305182903148027817884791130675741107284852906779268367635291521977093416730061283464516078406068690956765294833248014623805680767040379418862125286662176598081496521821145826909336030032581693869042392691129304183897774647617546177653596231724224654507063526703367845980631965329587324580020714974423045273379304954507139747563663918018648273876888900817958740285397428957045744084117151094970676842450299854556093302929568369530332330080059617821425797767097292167195590679270922423408566270431862226050775174892906169312625528432953014555795665929811025517349921084752052565602333108031424662629919003538247630022581665264003507291302020658997130975850201183400841206171077557510306592436605415548049390056781098544010906821185941701242291662427552275077861731029495932377900919225941543940959195770741975650384546196021166254483864790444336452826421132742243096621661310251771416249859834636022675601558473349412927482466956154106094161620954682991885011024473027369587269977336083764245174262596887272374434487569299009018632049555393382194494952230675913083485001975652389487320912725899725943501689665433412259446508706821092603180009144074831760375763070160811658614071747687899309202577523666181324502492616123304646388157472974084480728957363869392104159118950597675415084227770350530499130845629251360295821768732482108025286567168481669136978421591494722863705069532948225483339359888561039646155248066510351843013673043663191748637602860911661772848893214019906785215100920239803250370596116147376167192659970843167411877501387884546665452351717587969267619789705374183260901548537743355732190252792558813904957991981571948769523180682876185280212211281017511523449827295359873574832672247418245254091859916120509705078448839897570117005269699776973454277628191923682887149142663888748649647881108349655841060685760905937937433128336865146179731213244499508240662952713995741179906845796385847109310587407403121772511875366817793209336710477009589028510462738571096040732848580932850215777030306919951450287113353886774375696984638811109533294368431192157572818693618996444833422018274374892181429598572599861599957113750791594113668262406314426784857818967876236065184348572805253973085889027617508522221296605073663023850658113486830720540528629466066007710674480005535130519841511475238601815205803017663422188833968745136943245979714523870472105486600312364857639810043498097547986714938037224712541614384259154013796020290722535390676432498823963103751150379248604853048437170901506636676372133888238822311084800725798423706589549010834117848907527118458834983171584337873870547148390603740909221928562140488163490483155832430819945949673090861888132966019915787035516796678578822275623874823333491618579463975598417231696492304802246939811343919250094231122707965978506341443925291152582327985650435260087666112893993030548329120160696555832307588084101560947438055443788500480087801406074244936930193033939484620135949417255251871328627984778024636897105120969283812636717534399404673989547109771201553299186274556635644590281839720174947144093767832857359325351504907021882512591912537905213791594021601759502829665878258960615381518222947727788474538857698660891260921109730396615868499230880602939837765369994868457826252805795936467749320264984244491090265122709732753759708701349565109358402359902375042848294327629116706156614397096321346379475918907358400839227747075789088218542797446131364338542165684642676256217453721545336112046554921665327673124553965469448418623038383818636391426923543359239522189241237762474092015950839544227368355701042358065108422961116435565737359057667904212726232634274227043180346357950691709368193122274297693986617688634199532687037744146915959901440407376669628777103611951045300595827911859699618274757459814134149353231995178377414530668932834577921903580603168038005363940088842007156806921208418693297212971808148685478749649108860538573297962119193834459721081275388649411727489578955799416337239461824214465407815276816052386443633028124620827301365934725224962554774597196262867800739687239294960344959038567618007849478204032055722163070232350872167794976166686981249035815562254912620328395334712478338639341157403118014877062720523239159202253014177549459739087056476227677753862536637890785869805456024639483553073522379355624682511059362658570537969257085643727376945701855612391654669830319982127518364670245087471320247672214172421415482844484577173380546181675742707106804564409460525760436018219232320982336615190499142367548997107767678241113290556641272138425145916537372097507165859202349245934779818808725641756963008663234178565735314510318517764257954862322976020324552178687298423568978376569730886957601892411855040219027005011242375663035302134958972900451236428691483104555466622300198677685823915989366628774526830376363409868371120522421777841562121719158246385663760376112700319663457409985204310870698220769256925935124916395038153859989875909509025364788606836913409226520986742428148807692275372355936557312118239686207392842772054454625777947519516912747918369815910435880933452152190361869006550267433735830360858545249307241887777125158767942732883514786987932877863442997134109625102998689406233088319554205423099359439601716778646196140692004149397085997997075792227342951946531325439470947469232907010738607407349045788360829207983078371621370764797974215122068075132606609758374592247749009252405270565584385741321260102509560651476021094590235012832353528114400789873659892422167520320865355714503289699983696462111373933230622843987604417709914032403703802727603255564583452286795268478163202880853539291343391796766805157112449212144905518210013486803962009305187544014551347380574497647134763443702253844361500759282188612295183718978888560023162744413207667503659342030421909652402407833177394131109030735764401478792344834544450664272362067824127426389258359147018087860478587617787904989419170037284560662588872505871972132706787146053798651049488525543858534090737124064046800013265461306587870721766515551951112251632352820063212558034163874835718685451545392991912631041162750243177076202108939097947323717771174460052148951643990717974119114441524811036554006209528972986327675714629004168482645727822976694308608352755106251657651586429660472148328811777737555475835376370825433470535747191056133279138974586040516440873522097011044251495123168565975289098650721258880428308209354018718997488787152189770582334740987029968662693713100481225443145090541867965071664845781033545228425940505556775852060680843830773742879182330357693398528437264863077160723468927880986366401211331400904208655737706580875065173505804465351320961707384967906813683192981130717460315546381607405474501371742125339068035328019417885770118798824988209951074565557357007899612875133855543017201919539860916315073097032273348932378420721275864895042778522947791879922690379368961282697171092132630932189978734138747816758169307382027911127651017789580416821906762292384300797259943556404229132545629914069871084862453035861605735307253755631955235840828035557661652142984204297853234746306185435843404127751032057532185739181064231846986732911491224719096873909262299015773497459918103352125421702967334476913243866877933163889580557708806436795339346345626837529413438751660178986930088252130679428858193201745583643009657082205076296386318164478419875234148925040455786133594912831563195030426278724379223152039782876018611620276273037695367199969409170924385987410166989879699772582098480843421728366024556887085040780659897342182703307738454014144999608559348495998686032720924955962514103587157700615617615838905335102734526503550353005526344694190935643855005428631209459355030054456231452616233943179608773448395943576326830349932670814079174686178288034865857270287753869149486198666808820055458200647314385819928206508388317987247511707573488432067494392324313729685999852767247047757572013759020165206899848189139805915274738812239346397056899092045630292577371881979509131951326268044113292366065585647086199185545128019663374142262101212788330537660438249330988341761097234027411708184574507483074193460808536903191636562680059393590687025350136854735876899756584615666342390115167372728820932715757464298661982609954586825474771230998007705275008791827888998575055473547251457157321442736630581361882182614124293640351229657179822396673798104265665702009351733688036080315394046026053567385418215384167674685827924887462222248391289892430965558100895879583809194798134235959461174871356700883592636360710048790798356748798248287619711967430111282241134115383729970835135072623605873955224824783604647457061456620594991158695951460725470911706068822667427073039903870422922779094777826488085626481260750069905963852217403526620308940892650227041145547464887425288484036140691467290436341862173031888013916776830537236467777838273778925379816552511194856357102060632845832006159840310853321736499798387168115519057125726060192141174763281397554122050537951373091899420482861595857119637459629117253773698326746195566810998981114805491675475033994853979361731534586954268984616588860939763653056195319611089988881260526241458961090316091083246653370531274344220172048557508548921042189372749328874676864996813429526924591720740733355079553111853159800596730820259299494559078853939986113192836545579682516693243382605922960890269442284682867071885946740667707338435402400636485888444147408419397221759925055651434552339268027347975735007601791092151622154196999819960079638488344927202589303754030553092266759335678087726594912182194000489835559294191885286179949035434683977296373648848019099152265544749241898253431567994119024582759681906074943094551336982362950877460751368820028118198752800125461572471360824222827126434815803209243353789085411150917523526644789172567434621308704167402871262967550450244872790577076226616660978425531781450141823810874970951115027606433481242381796135646354656412379892353127370237107645233386097774529917673214060722078519641866198332847878346426256647329953064298637407239072956833570915304207145211367905310655525388406545507123490260627445566201852812124989581677837221961583325681264373307695092227834478900402509743411311502995789747400199310644229854155864803395521191428625092254987567815423867853733849963659203714991394986577780729194823175602988757414418056808332428088219304000055377126725111210894992066808180130672544297415765182523993932784850959570878853796938279985555232865828957976056705523904362008338587453713148355132863951352785846007301237020919030185153287201769293321302070842966810856596733484984621261947855807824584606833423940083694419279174415438504206468510926538362864855189529505238222235308762228705129938287291860277325768934511988192700753478702338951184850603399843906469755466723255059362886261256199840709540337026144965851638561539943896296957991246341548326381392933870022595412451629628736980180992411047504932035845584807522927198067215130119250365098630928858290872010266262698416485924743855896775427719033710348189415456866516308648422086157188496578946458072364649629385950226225392959740489938539862816728282937563740829684696529801500583052548092629352468862342783538631921287386163411813711305574533337373981099582128797690332101559997771861601932949610796490602509640706190302593100522353392810413448852522371195755034245614893602522243637149659690137061950333979893699523522685029845391622256064035201886199334703928331137354372848866716624663805957388866134357995253938012895111839085744307408512311370297939649163189798407314680894025714214419687953582651486185983426968788153000790093240330693816821806377658468100596218877211591514402439400183884127009535995541594313108545333498486148920529978986805868187857967494180045189510303438395082486654826790638466329574276030082755738196668291526001260742830201693345961845609416788269125124765202869575036293316777760531848442498402013715829487610019383521611832010069384531377005422467188323755202536810359784503018430755120884682001450394375674179170252756711688701770532011733254393470149115807709512481897766239084407805315646857066900849832885339257201889983791556578859108594566941979178599234837459478835250752216471640816618946457841940644259020326850897778871052295224639560943550168699905890326440318081748160989556948041437512717170016786747288471869647015962600181971099986878716263007716942980712156786274956839703553550625936136537050262836471689644794711150885523957198955366110294393469188787080297431052757187762076753793676257032116341017664880809339205904411727531694656518297661863024112444271947682832314601447568335205268852332078236682409095553655404195729900133899766882386282034504203769140847446386053044176218294014681804232607991728507147323531640617752073131358582022371675438982449688279096614707884563610465170983684676910132441746714599408845531431546169151292376161682385715141590866077319606020972752988850121998951961837338244445867372370889091823878453102992458394192253743841057604213662535794051363444328552493358763170962046601257150979947197589377610818546506339756886485124648986829462110552993476854422068440528259204300457354267724344223069709408652501368007574841263998106481260490122384326643631178420905691897057489805181674888183205251859526870605350118400386772685338485271286594871801082882853056478278395731444090054821396755504726872676907713260330533779517341288650014138342826087498771204908677906082355695518007302994855232704808053713445943525556626760513357802914613965843055933025907976336179313110676170369245119438617913308033337131817697488424755751272742767916043157390841227975487455116003745594406215292622283105080954633317577749829140268493179881117764114351346252510258461151932040489713809608381611324830882124584077156280895899788119753750170739778866673399377287401680541719063394972881043637736502145930330181112585521893070478438964681868984976942205420752393429674329906169707536072764891988104092213454011252840052863023897626168073388141358398061104077076827071353225586851450681429738784937265007540855191453460324308326965087417977011567327456748668489664543630158184471503720902668164856603418830183193363202715007183526884247625197279528608495097135866181924151345275989093070661955305258298661447813644913466792942025415533822508050107511881856938005819735089481976860237452430520431039578554163745665863165093052612346298664855396171004003243419719068549602021643342604201754367472228468546772137420085340881592678645275272420251174160541179049971153881476281921793216313884454463312657556470389679729882625479948801353018517778725462698271545081918180194083878924372068497552701992569536908353460325234252085240064089055706304972062060375854224072697653963524382312202747333947052719239393591579120181063163766091362691202044727702445553720225761896094543490986677892997646558298623822324968413860960772137354356436873154148576811268701094108185869737406928788518717758897055051053845310068725227143931790867420508569202563655130314173947832541762710124349269000924036651423487663632699790667272753283900995199144669871926194831314851040181224794914991203240655815340703131804567466979987853185479651352111576366165303607127927575983378242365871650302125743607370903898425611089777511358794917502884321510636154506350948346399568910978993751327496074471998374465137792025771849774341625511631205002779938873504006426141278514645038102557985301922689031963221235446968382198259828452869601231470562612573749866960908779844305667926327630528658565968302463857522876081151188378909895843239029757855825504929872178352024310261148278836615158114963578532187803289105871002362475402507167184547370664627416535210534276670493538413240639078850387256591636406783197828897213403922492751015894430665797262839073150397039457301137290101975515649909624446190207990654806110225281711521510691836503850288530159005602150175251200118572514174126670079755102998243799735505694697595266399892532637334717314479513629789334942579915861977389282582098662350587270609523043641146506641562703845440274515621419103343843153901264785174794630755024210696319869606793069884444147395604466197408089320507668859040688636654815570839700678775628927563315398654145026149878822932782209715566750942720755292931186353171920397660757698765752001902606968181197321724879341165519419494599255847754644136830201404947929091436088881343770576849108754169852606624611339446222845535789632730938270834890903538301260282887175666119785061322723015405742981883576682327492300325164508525092140303954380822686704657597806400729620019875289089888637553609515224259837012757985279504198846003847996686340594723526354530279575874750964272477396243241020140377014291199548515931597832482130967178392741451769661336087199836040442366143058343548041119278467415070258964611960145147258008771695919156206548626916110315437089601992212643134494538381523685324668051539154139991251339651326114452106364086115945028745538890813134658304589003622406670771955446338726686078185721068013456841000170671716081863595994388796917651515303616586768697613794739229424986475241843767453823709974164547343858516871133487008521857895481583554418786879209801429506362211946408503680307955878265511433281812056769061979627429003363765393047094968600656530476781298168942020039907966177057696424109276498494599176161360275690614946841136394289878784158824882410387931124079483884296414049682075660804628545465891128565785321436050553453185175401183270234876342430950065162937784018826510482036527940144579535763071829303280153184801143629918297108236958858952698654682320681681164861761170881710268910077737559780929744642437038621192563374244941603986427533852570426200906783169091675822011389092758470258547035765260068379036726291890522932526322801277336296780215593307471000859746204791530040319120058137776201594348286863525894401034861337693219030246436192795671582363808892251211853891525732956691185249019192896027230038471755698933140114857895623290549644975976584124251198157729176734629885114234132600953946057278906908558921703836369020394459657835072996234112829042990042407609408813771514598742714349242748428998237786995872970487364807359956047195077176896833629326349585606905244189135414412007566228045487985679692525728696819456814319854448937694517706223564557185867616039180428691792086384636891980607836220109341557109522660928595032675219387001690723280320510461553788305575072776899247317688260855325428615020715773452734117218166726160707243649915777679296681483479984650181955168554344680896452462163488714008469146056884836515477503851659424150586806527443014879619894078178188682400104445284008640658568654771447302207415422330478219920936740042878418686416602436131103483157348090498338579901260631173372148742685521970589953637256659398806268828347855987658644078480625568571134738816136129549619189874156990669835919393925495461974513667694360060146824372446647096809158549040916968318698007274916234120546201757591908271137808843903769413109384544290401129506420694784290526241354974637402941881498179904745408989743273260500999847524990773898222755930556401107344248167533624946491515482236822145066505459230890368533524285993373849273646300418328370088341818085114693730781448667704547228107333007594367569093260357972082676063144446912390526474429603790201140116936921136003447885749146287640734641875169688684267082742803955246411165582962507934851625705135394602796264256814382811514820610842344035943375435254021859389809805575294614310201487956354083674751474061159497909459879014589194603030602926982748115758433235593922300839416197240539734773714362740275232304941697737855631895460931970685854818443789797524351303497450249320106367387082957617951349742040447026919637561071210927844173671144306361782459018927357773136389409244280555079299131524640709168526835713733020087536622443530074952845901090809550396750543300109042138851317355279166456634971407423453586660614211086380922158581864166050927899257082899621996287623604870572873012144991697501113968244735309094649349607090878370793645720044141791496702338579764061598892929654388453573429366184957987670403499584422017535369684362673030374293245471995391421038037081489436949968175700787136560265347941239395383769697417086844492008696175807191332423522240841306932758720646931005008259394928864417137191973131138311819934862181670671598747016939385973424621287227148724773950514681054710145289298156436546223338171190447444509873512559226762655399670532360958771685070036675486388810092839827666702839337337908118363722744053159140213036129868043267021256546892162060820365844370825688309034406663486806182191201680261236974148469927318808946596918130971012149171324860715116700395383728524209536644106861026534495929835483755582489059035285876905995572322024067757386191979978810070110042059550084124861428950919599488263173673202782052529965816820853467566955179443831098268167014462183002695048188001949357298476905044669702020454492071499578390725664691788825062249278508566470878694422367322980012686361869143314228583263571514024279449695770795804242270584322627629608564206537422952870241165234603384363196349786568459036607759365419427122291474709137079410505474456385303424855511840612899441780092784491342380220179338340004769660216019587251932951354092183349952316525073639417046118828252049760475892995246638854282817954403032404991626058216371663713994438828801509555459854151812075390112555051652674009913985105015089227944925339549550781013932086903685112673325041797839131158415810481358868289768957784544103654281031875581237288858859869099160499446738733177860802231263112009196596312345271082118151460168685930163721732220875719238300026794723901207871803752490212338246256825940407250844276870746198467411332743339947808038494669630558624713878297835749608192508237272752119930535619815319803393822423393017590377943503754192429416819723513120433108325927793322714352372879984479221202833051217717695747590687902282730469593534436838434730307870402196439058404822544050619022393287304655807475827330857939410974218749431075193957368612656491211039225241286834032139711488505669724514147543541681878091382223387216227460783051081678609548250274285495292525008478400170704063033681171388257388399921086612488030150177981019358253275805794334153342096757273900176502391958596282123951655237616117444618120798294022682102178254532551911319485876119054016901633697089982630865039896429850215340950886158762475293331656075234034693426768206305000473823675418892354070220836510929852138296916996683381165622496967829132791888187121096123218126431487542532585353151276280563808989947181472766720332578414730760450405811084623607343291067743951407419007901916373697549166042104957274715367439823418390665816332313625482708794462392082458444036825747294989748043743454028443468831196008724830620198751412910497511451934854685750149657621100466646137855937394439565187675192504636889431085209424010226171864011625412360067130608835655548396910362035996353016234848549114988430345607697320893519600575449017814785377813919575975685372064043564458816414969578898730761334182054971947218724692299783889961129744065146894742790457328290393046000630965092984470695269742085497589009288665748765361631579190202850038800509063097842883773154687258666319958812200186600459744357915735725199716386463048515630072604390666130472393644113952794088003341140241140769843333002095407567325281072531632109080407732382948642827460494757833263678485572026738760775502576477583355508791143578164982419789999086722357161831617833169079732655281527324718434888804481244087920139378667782893540776268953922030241060028611719454562245666409259493894502545382403920490472281403581657363783204811271229464903341272840211385484683626756425662308430846577178396563220238565034141140543071328419399136147236753178801020442530535155752219299582594856261187457657678002413465497625415671406530547064385393027227059988409672054766943844755153112156566259451980564340361877984024541957368117394695434087081569023918307241907867673988755064602515567822669263001810955440896308050055206683743264465104168596601844735094029614678290186050243084236706085392634446832868309930480610559219658734598646543831419139966394915863761204034249838809003591986032473258519355108648795249357546697381845832566626079815460115049121879633859495379099404223138929767674719748706068949943757559353027198329394798516055248415054707975864661488265468840735121661752292066968825974977936272191056292213178668941199264831657128960118285153241979332792936055014811564573553745479919614335638718634737500697106497200002444964480608667734995149628584889789010509784701892820432839194187753111161782499807276858248823347196284035134512573792451063382966731802313782217467951368973137016089633445370824306212690520912747137462641196586706668277204237096747980866338083537509883174432140271890347704917053027350945538232885955232591351939500993102438475553779020860048081202925351461309406706472167735376866887291931564321062182495298434125880292331849476780716557625533013053559796560023624482078500840275576238737195687672135394067396144248875985833823561846231939835473022649575342915398229924203350303547810064511445939571372805382489635680826192714606632837458587529315711267228609427032455194822610839858731544135452462933094996495570905646860869977456472703491290499163358334609567681239206135701636411975765210957006700425542398971646199910026519581994072205810017577611904660767152403926207900682422059994316714265324341120465213063437733326130332427929519839871256190264671606998230818392545829454040152340809763944583684212726753916769025211831315876014943255063723963116967595389589762300799603364078766840636931436147483341351996822827126737762297201495664468221632519149186089856783997152202552471417990750067229580982466584667506653467472342563140081611565832983323271450135318885005797334927362352155616479196348449249543431618187734978056947266212520737384425050137331879957743970986335351294296605961192918780157653089803009657699001673411479778858369760235070204529285684217237572736897694699820520053900052900038954051337090958493507197621618287161931578360118466010760941299505875199992594319127286572941388525043848890474941785152793232464878780564276747595652432293332356901570749379815656023014337894999570028047209850776006123496076362268972869431569685688885584131952955102668075437928104192665152840642369953556296640883056776934409850956133757685468985413564419644581503000050831403905250202823905685419248905007202713254393315581598978522260537187686574222763374477864860691523344013500743400652106279872706192586227300016486465891193883509226326984165112935196060136786512185366322984195336735796513073345933586767221483636625771648080166042040724719108368819695931154794409570537801580164311603406936429934912551703750615684789535256422442972015885935707455734048521479583960792073358494972495828534103680460602619230829226481163480285017561147250649612554893838079625607813928285492445549089603054143599905262298187716703927692083803774792278985710768626087629411603141988880891254352655243781683803982654337616052305050170449150047150897117824422165999219734796298740482714117715285470316284135642856124201931891786607373566379205510588863885703200053497804782351464673208356496342066461641957157703855370674409012077017852356297556669622287655671239197172955431441093620666069816502080753965999374800279363702090316324261545256123224652445431798980206959289371828989955355092102750474550643143833964286958917813340939335011695914691710547949495273986361481542936782983409933888028504199601053427630362390863242852447930396088731662532491667597671985261390849296186060840764710592292657349933901510586452556311447993854079263320773441699750426742793897334429861836344664816020006806103241676236652374504592022408672827055740888136503448612083781909604689207575762152840256073470994863663948072344794873615045179817113422549202059667912841557511546828663369414094889166611102682465555746771979019737449898030335999108616598730663046390854494146902027623848557613843366748943788516051573313510886841675941587512743192141386847024307718487885768364275813578607466746317263760224472993470756702377602389249303136078693842616461325145944344971420210347697443940925067645514320404086101441155897388099434881376441433516974047475356353959164141715212806879932758561482393545203514200621848284433203706336744749543654947166611672162097136575837490860038648672069452104722771411085029077387557723012127978427933532865910413643016394659420627567393093654622566354422106520182344347460781540572402205390896185720926449072497944871178958749583869819698700438597284627899554307799656571485247779005846188851879138140337520599029918081084583686677424564338672348881940811324994922131021168671434657408704854902819898510880020047914533687888627314347640639356932416090378902037631468490210978799276464966972161735832400219063746322553143205246573108451742625407879650218385476394308961105687554776832604770765147401320359792066456611228778924353467491077092087315384937957734038354357566914284518870292139551286132343594960710625005559724707942184045402105892094210743235472513432065931607584969330047931677128226202061029754540703890716767679489317427171057712850028858512451194483868514934100064939766337817634340729476718911795017070876494847539811813421084319353128711771605495002017224161644619029419372132088381493840291517425918041054000353334865651148793537200093104180761841486422608164721354319984874113700919539505073219232601530118737623252572506689454820905978262791162610058009708162219716718696776476716315175278951685714079610780769210771873252217739060159681244924886339976846141125349161471399588278919017820499396821476219445850688185218413412116691749167559323174222451997432505983932723986464849902658443590135693731295741404522872508143041927759494586428407509955767644811497177585322482315165144295517004342617986916351241556740432008598870384572410088122677549715708929871504104904982062312153958345866245657217102017253290355622769390301972070053294053327534944291090816337102880544083891079287050971228504406850200612841194802284076155375659381201946140707916432090744316093030016758705243016490054508835877451758278864101959453984527060788389418477985272541628624360417713814549171589779927726710773711747534209420861598615194542782869058971993074261838359008749628933028320328685078598932924819500072259559280734053195017894394565555481394741567168505605755126694349843244165207360208982797785634159823131676120336044598623722946434798863301086488705814189075307323789719939255216745414643208663392585973856296291064162691752922581226340983973915910838316807916301480479856909847358538756200544021818153959501039153064603486428804880770855907315923890914982900721971791882503347950223304628932752219484538918922345554097863709268711735690904406073892217565466013830497641178542140824198684883826085193572631182900803205134175882176495230506992846921115010909389637606356175059738903097363680401536676612079069291969101609126693860169920856429492020523512053694308274268992687041606528605054087769337223255479070363453822516212338788843283648848186053140726287908065065124772242453273521855468529024276743311960775382779301191197138894989676847116670520187300291445773057420477262611969056903894328624362657758496390523069421393443049232103269106337734330968724482757563448460396842401739285256256637021421815095812174481844168526181722790339478457079116976644882971706730314563197977284971323536983191848802729919315330553903368967034466781922690927547886366902542436216737947695388739123825486118141050021927312489653219602535614016510410653880195147626065355265416169968460686973073007611633421293316617719916256313723013547549153300384842828754680497835406745149480567628160700784671531344175083468058906115154869963400878077035689727805826733734457615462420658248998327223417066938833469672186310476677026467877590185860926309198547232549198187664297457788586137574633962258409434625906163825829722785601427237671742822028240281359517963890090019078721564713587674474480849687708440107678666280914049830398460153438486821683515369021314855056203760134639484071955248247465084001937673332687032681850230130565513310835925634321540770030285952499184682008990973739924384271253672957436924553593937366324761189042930397582837950183948505614295160655083259313894099791047841345473075540163262501873748792092521039733735357827059139611130432203284086585636336507198384317440151314308835623941060423946609585752830753097627090922403194615266698291149289254983197056517063103495475362470861422340652564879416791587429342143765446801918241982025086203640452010821327654956808606649036754595537807101707842258993505116624202040791171651466424097159219912142201776627673666585560427555014027333318251637034823563928020998186393350846156608300941056993976969106855580951180940689629024555880082234953437380055676792224335193388245290388329620379303240536649975987631573177315910383361156808465552302444619800856096565116520085782584870724487309852532380621388671737166771120909329883557704141727265743542981127615795733928146433689052967709900820400501449334254545434603836934874474744612012008291412096586319507538516081738932478413745524462998472442428672808778060193848286195445769760743736492126232652615907893986592542123784966905138810291131480923664463718674980326102483711433340853701888924337503330343476989999185410559499306466122691855768555730480578076616841684466759399156140007174722081847205302433552139191785547759938330234841503119959936744562911855629440395951370107351652370444177492424696912132234324151214895393346886110665090682070953815718494807774592492809272075015698472431574879630952113877528304777285090936134508271905315728906135874457855263052463701601927183934742919004724944645618354272724808744076035026347305912463972024201167017221335253640722110525170691286564381332913148764902945845421825953914886710117187325835348490976293760986142103840840932630985553572933110085145723583169132532597732384195313587847371965924722844363203194148593452047332431182043256719001744645281229491245443952192526106931792134036793178523870057304497013409777852574854166861637102561811647891742092766417352493946330179082699216890947197926107194809859812741611351248642945764732556569516135223746998286200969872007803672236386858179338833319423431259125085352081647678296068910861756521581686001084357167762252333716980270463161954949103752062057323256943989279498127529209492146043951474157947376073505508757956653369615514376719052381157608726749482004377825530868713387524605101500079143726622896333742262286441886992010229406572025974516015616514477627838729975881119516496074663169053273471521510781598947523029235649999708030733589873039716114362256553149370316193325408786497458626578629283746818121032668192395676020728631761306156828165784139630896250093782807105643004344213826598577576115550278729276584300609399658295226920975011647538086259487819079982232794735177646775038927124635610412947655663186569934124719967959746308251823711221571849796745534291356119332936870000839439046075176314734293007279770548384261026538261274595471982049638433360771044619100186946350258734606574824352406972615489529407182280124410742872460221802452302740309152299627472717696932203402766781632186991742211562636980985812080956727933321920069050781794760647534828142865634131656578115167478604692736878004757954958464493966534566897792836756059071779960062627820653163574096869345079963495644770991198980132553943346435643161415298853671047660532644234271366119224779223731216006472514685723806067101189969164850485293370331668186238069634984807089111710554487795776238397447657617575828043681380931093435003786410771286822049584019688042576900211059273831992252724411775797151081240891234850824032892169975300254523130413631251459980759996262468530053173737536635934693806273257209426081411723241174865205212369220045594178042468245573913050613298238659805050269997740927825612798004373190907915488032266210887623147322118575613802846329944705559050168038060451846160552001791132607214182946937490947661859566163426814713958762288054727903467822978414700536828715175856586849565704550555445990554166613654417574643468292322037871764110409280737046559801817395461160031889705944606853781190260659645911407958218721157078246448779293265744103185694434028921557312258167370905180473335674263965226933467670661242347858477205541303253771501861184872884461474388209602111079967594156157439196159335303060573684340350016383974340243571622438488090589914185219418344425693916299931516323956886994790445330687859380452975185941964884366944534271006204865344107773400074641008245727514865892834726982386430669272676735793912522969308327797745391024709509744903978602177260203221261451953797601177378101050911251700163546009833745954621725461040093221439638920027122337038084089572154000980992140060250235994182470042594037197547054054376046482730112337134532963175923603748869595909693888948595586222182254739843480865111542636213018298142888187856804123700503358588211111658591723146447881336039781965140430301336856255677488324236748581262318081916074847300726890661546283095845755702605921455613354069259716381271472846388100948604537753224057024513632413266943388064810633208644852835811084472601913051724894812364355712658049149586019820037799659764320963478750480242079752607616544185371678041181367650861180412894737460492969647487013043401351718866745652033023670091702354972655518516248344300412554432951306276669113260579482872457889274608095643408636681706005050565195234700989497278311586719678013936005355153958085965411318551340501726733605289505540332951756559989479196714447533454514721392768678865645048532879638635061951269888034705154221952427567652425937636251368233355500636575408525649067597204993257227539579035725503893621883478483204263832416959749243066490051805489164113406687924533926347699957672005302288432696382300874949627286260791870693426752974704794860774884258151106718574199219665059922275184888641819459448023835142305044292105396926483402079402224444443519724855810657340135235851707237216578919110821154731891475437917503785568245875484983918581471208184768603337518568774336745611619930357702592883826842143505943062906416240347559867898588830415964157761458000344921293399098454473018782581903530661626039929452947815728918268880716384491063131063931030813831138551381798142983580359166776249407785811646448541876207301391445870766700082541281777984711724942691013500126373274050522616809407935279295245173044543402705855610444315880848943996784255451508938674700837079691151880018642728816798287088218192820077865404731931888492589438863796031296977861684846352868439582098269511325996240574174844356002212504585815204731295138416646891218943222213762370242260324702866124162495201433869672101923749924805467905360054982944458530554016841344075776818303623059456883411546048140804832222745068152612120967249140402410400206876540269002436214133057700103947163962572666785121538272099999898693526738495015007877029265050930375133133273847853981534583789156121083557777471751817367179687749982018738580514116815748785567971806451688498677478626540516952386129035118919924661599815375232040478869461756528094587349859179080206582698602042951588601286112697102341944199312116666300505263175358533559248695293628773380823343834717204932292830971420434121310744889118333976767596985134001219743079799018363791294309931049323599162382672514910825749171098530625363002581206548437055765525910528727933458229160303454219832184097268157780692225163188484052051237055567857408240521487398528629873213329870814700208361936793529558680186693471275808919453368616708463350040118496351979878804127018792346742802048199989091493310362143442950732842635563277897770120133452018239646391126753230515748073306124596911278535761320576634330527682294053288072994734240954904653835485031796360007691072266853107673658803500726550058958935370687364541718082762169303277664207173147498182595500820620337032383811469121449071005616756246317801885832797663987558603579650087888857226121556802674085495828829056317364804668999798745517375479981468341220737873482399544846840400914558593017031478392505768892560988824242341493087551910688330072969627632779597409424198662226553563031672593676578450955966510415421142357364443173238140231448735092777613654469759133221419829321896742032017767126526490864121372432412575288611664633643736708429144879619964497955822639238161799197573692635466755352379068383108801030798364137216415725562764662432454838134868518726177540427869046482642337017773424171215124744470345316383724188809215744657402231741917010654743600486585798410547607396706919541470098826043569513259448080924905173263531549885719736523800933939995936511804352664906532313953400818743963721004853041908766207109256711015869290231264277310828238818935834811294850884649737769555614135475775107673645463133744503533161086535336549752950701813358707110892585928776301810876815530380407527019761262406950792736092858142275497409176098508122203032872286371729373022957581980108108345197175644066962949002611189610511611884453514707738806057063199243918313957875369635435318976031313778021590155995653820811896391764025428999619420745653144924839152380874964646649432048488537624755905055938582020892043176318293659592824434486309895580848715554961175678774112664304313376327098038256743079460364969685256653890138806872574337709618659397615281995818822295685348791924314568079690124163493518775121120429631208255539275737425301263476081231562259819631615462614209435738728630639718145768269049057997116735343313098627000457672830524253469160442994141892896033192967787330845400569563445295191081790232445358557109180948924570717181751144978409615221319329264887570266840535988988069528553226057910553831919210838511372736365421859943698780803636441974112044892150764817718200547010591951946227564555245514195882195655218258055713563966242280212995558007320578797286730132576779676840492279344395601073670195733890105520017647133924212480580962445139656320602996000648463018779288393660780927266657938160589239699103519709623479146480897064656940143154047880262983916755831750148701878671618351767830017302073903565021567396149528360430097260387359506165667475309799542549409675037349609062954206912524139013913644206165006916604153651765650257358602552735108796970023994546826061346583833549405666112169765927312203231097128662101113404509814784653894107847669394058438860355844720635706550723652987890011716974347544160340056994470931958163818817760475882392391528113732709599112783872473722098871418315326492364277949503388757337548882952760105598845735917019627234246799844586943335872059050739933130188706004088075796419503363588457053527905410116797957657387580266975492822369242468237919923303136168022951159146056147371979274259636344226429844961478682020146022094298288885752108850538067980018835883869657012934878003819372962296957889212475680813708384318408831742645128220243389553485973578010919314058226969153302936405315641344655391162575838959701326558788511138452745049591546043288527704025541103760665749074229408683073157333801800006212189128999607618559419965110762651436531930918393769843396015959604149371414238731450795175075584579517343654725856522059495400726217017327163344894717026350316125133740860045815081172426969330306604017803685926393064110351418261819333540855673912819442451101436864429646383858726106252503210666847305832322740401396801670111121145297628489952977336444578954280997379171431905186883406383224739841966129010162054924245719546058794716640267156124257587092399783115047193412635012947304910616159682817730526614599863099434514050454213893256027028060071789618474141373363488857404841454270839048274035453547677558568033085288866294035871602985539407274275890087401432452742377849779391782400913101748517165715979629993217458404322616918902601011672635405169451384456867634442356772902961681988728122650865171556501032835674395248063063239565452804724058522075598738981279971259576051597985845329887248257074243909534617283180887045404365156915764149848106487220856306858330628877782160988040585229997080404189817409145742373637597916667296960921194973019677526702834697018433293072373032579297961852445970691066797501418985968528704999464366785495054604933141406808348030351445167289422070603490431104413320212255966233767630918646896717750500071806232932409664376872026318106276194520031838580072592476162640353624167041777700734752658410840858058874746997518302714095255327209667921520586858246040722741049632186871102229264969544377775336677799236087539510249222025972094103081772708681256679612801584076143199224849160733922332699012905693844277829334871601589634452342915213398342712695210521219952983257590827714508221633719827368247293580780004856540753041720194801417637925724589016114963372254326448231671609003851222498894713591402723017460209760820392619003872593748516075037265650592054347402999339311790900257276839699835618664316114296928200856440579455781938706856452900209910673349523316309855600157844632940088389969947888009950706698553664887685425960286025850827258135947366455220523381926329850258614885918043301906778193729231927918430355827668183111785623505980042617970261475447482856357476923668057436094354929149080637046112065738981232024416057397150196710303141210381927927003098050627932667462188934952402781648606764689863766171490747304894993404825220977034277707052517525793881626632108967926180942342905222237887033649477613703198083031371937294491813574712713001446310825754736592605228054647250210803779058953017149980836378160939253532430773810445345406501524309416415643264632456312093484911996671873230920733650152898923878145748275070643733220665440605724419758577407552471004012662693706496483888563698304838502101106353090128635781114372045630680836132740317764597680307170154208999477438473045196721031595244212548908270869055783551578019504372376012255321220860561105349953885070102073416926299169967309994972171135268965209247443400667115624517368533600233703102747070169841836601164821361243186553936226846935187166477212308808868762119226517020016632652999608069311268223319169016281615267851873052815482281812047246013492977615719620833953009717994630604893688784782258292738708330691556548692199707244894505674854818060396449934259939479706485833776086761679326143898444029567881946021691881807275162168987298599350107196065045160483210830510990681026070002884314794252313980942184487300076469698729382574414092421683856791395916309343784918929778968721141535769600184720735339411473213343672720679015422430605796821256073476149755686830846164666416259892757924960592481681779441563494660914573270101321608481668835368942103631172903630534117142702205861398304893525543431544143659585211611624818253324819221249138491681849646375611210406994047746157766186387486864717241761000912839508731759759714249701063046518723197774987795661590479501777307731738860562058634559770364237361474996741121208508090488828159450047687445134967203717801311043530278587572375600359160575706290126138019411034476232250262271822644377031844291840243086270912665414330730323622565986492933429818696771339076850764940817442505216969239132613966275688310128324858129030174518221292148036655910987558565507783498894207104844546802514128659047195858598193842706121415658705631984963316159442170772781360052802272924767756422796956632061573849803140925640626002782218586559037258953698005762565932857242093796298979205493352050442091494057312418593087061063134621721345159954926276811497712948343461482874156788878644512184299038101040234848349587325646759777939488102919958542233283040986190890288405258188053040763983391251270663488354693834090997090738777498881533758867282852595286977037983962104238017567011692373704686555296850225849108915878394788986793584407483889851449013123447160579160950666749093277539289083285985218069467193169346185783800752000054022798218857493681742088635416649877004707905239448158898212646293974719680608896696862201117711437007759568607122933392894862346284812631205509453159179449290698157747274293767625630548540618257382489658450928877948122890374420189013256627482585813999250236757256844209943406481191985713336810498613073172886856437616592925333022086695022212416757153610648243404772342839152819594008035545161727387675128230362938986273572207335092225071440134623121088670286183670867763092278950756363535315677568286686314064804321749445126713649162602400964284388966512179296054958297795074029634264432645638598103725624471500427003848515324330998814963187781620235986804607314236581897972983878053437441366349818411568085145520814841908651619110040929354411985483786408796271515744665578571975224485841340630980089422432409982674242053005791768180113747438616929795848783259341228272194613714645876324804469961816584054700318934164818749243504647844932661760484244016687445429795355957748646378237621063731257555333954736782622065719236307745428138765879768546445020419122418053046699548922211376392393504070478299770254219074873206511138452748382512470773793310975775533009969956042614125450614549336757352551137882445802544176732325280959910898560239570652516972651700475833842041342722553833559553003843549094045303068212331959007507002779878993760322554602466117954839819445868548390920739322558955866880813838615933822811267516209426248597324219597109180871055871415613179352811833515082890104256830969873828539710034597820817774327259130756426023806713426113363958003652163869311620071536113328107796491717203914508956302450952734354723597516538584486244087658890921295584002183903585411169414775496797708234441090080927505678846570683829893845160936701974144101213811298113900741449660678994197791907254488568104267505179168708429517096596543205802612647359552914181108831758324556266236328257520658952005148303446136630172688135144699639858861859997293890192311097200728936517436891175888762799484924926593420645902062903481928605768338483866205952326790563309287494605120490312164124110082622020567060476979415536808244293471763389344087393184814338826036413444332058551254544126808732982467187300746451917818486766804931901427591245996609121393233188225552556714438157560830269262471172331405021749657533802702093281618935225540185654523994407277752546703515621850621671643014845205834590314473810560715626987581938518267086205010382429005371995364167323620596075267796624061003606493394160711418857496495350384676564179952371769090143812151409572950352984440248617192887200863537325606081976228757066987551269788362528656408356034987857582327435768173479607017148494186262831129093666920144011901768890886906800242295294911094686752804691369159660575434997363221937108411429941164655947211608772198573655420597462810309325337523687009534588475478234576204326807313759207916036868724439116565444602046489740557832980151206017797577284887431627074081414265845785958410810361648435164212417069419171398038839315973277737720935892204404037601255285396806118871653474214806592547013597158433495342848826269608670129284770440573348165723346354055594750663200554851209412473510581531787262227134280427556433183159730787121783373603564658191462889558232611299252029681079051435635631039726640172942831147929710608287148906878243173057443646939970777750063682154395744792281072636550352714725667977566124060911556251855739917220409194636144671789472697817184986004367414301878560648684793260536802620696495890881737408068138368607860564229113406159979439755361230570030825407611394900318936274630369318032894609731906294504169851905810218631805756168079632957918641217519914831559854010781511538238835022276803725900911081322252448047461146184278807075927274165797314006116930308070487900529078341756481510735601875684338276893017393451695879629353601094761760924053247978634006339919172918033389362514025621744070804033696299098472580101147323578453750668495832777135063649199886303900325225363932971070404592152973054086491011403622478956971405948802129873974932826263637062444647746588902903511105239587123001321401349835804053514114669239738232987104583987925934430772368017389035935754288391549579208606747911667000056643012758404444969371501692785599786376634201349457631643151628884790928150361843187541865355090015215278861220634266963248364483620401744642747022631697343944178170866975107836647472023595902295228753499175949549500530848930040818686162101142708016326280863377672544349159304559084727970107389296319704102886863464599733610501608013180217189623971933233650080947249402665964337499945668842161817872344278145227965781899064366987724808523515462993364172144564679046627354863789373003383076885488845398991782147033959063933521351817979515513754344335505198132615548749819899296400358338309084424245458748600171105057902342575468041970507589323488218931322633806985229175837289631360245677661225231164921083827972388092292065740250396088282702599062298004002206227858253605914129517330114413794701691983173115429120686859224008192424735123483653125371291956609592977445315392021726635190150171661717088058156219620799709361716837676200561284092721262343137567252002369624554693566822383851060172916756480322065042511876534799247139779781706114335629799796941833246897969125942687336857141991851268030952980891470400572532930351324442993830108735885517085723155086019474287180347428241845300464911978972752068612676971986048969418259662761221530233545681739093416439961673131099488741712363141952532761596118111593538977205206270213254104889317123790051536436400307222638974259630586424766996364173253352948294809535025094433520546558895471692968255705140523732183178775024387573313396266563493736208544119937502058214720787273174022629159563067066951914419523983012197159726099331515895131937684607136147538835159422796355576659964223435331632694530473925375534169303256037610513348415558338475365706990392543563485229290600067195065796134458211487209385112776388062968123442078109195696667427940254686397346049267512019165456275654167904233073049298414399525363747868680323936209936718724455579346451689208449761864269131515378410833259464787570434776077848591356855143492685680201798983999226087426674692985632207140028310724027641391796339917936524072664898192441380339110215944489491074550712638194521509307294211299771777148031846239920330955635850203139460572074771300171424676328117828547011279519413570714008845530903162953031862976445709360046572365681860789859189613973882258672010140556449781578244074955094964815561890242103496835057199278010274811990058903637495322593070420646510093821261177160854258048078478696279800633840496130330713062824054981423972562754767125709171162002289523923797784309874751136898771194701716554130457152502414595528842055810030301003912725381712503339228939419241319997847270700300846563173521925724981316971153190815010068660503372931669339528938729058989504698943349409098100762519931161217343595027146604151026465963682739492215475097259857203941797579773991791750602234236257432882750718402688103601125119965507122686618134468854803402214878842886688463742155963077284219243154922830520643165155662642854553875902974457395365200038946548956819542078206506003778113691952645304695012271864299019876879410984513107974770788835564595166842926979541797418688966344258946402174345033601801755843214324214117003706982731750877676816029730058751058187961873922621066681642054390501555213387807061113213993285403975809344452159621358751114020591855418801208119637272836642682621341758803684579942089989144002039171868802826420009988837209418530725327432903719396011128658379658069289947331164163414048530668214404464275588993154943389255490465014759930057353654861846958020953519485387814816187233462101711933694960457103328838252625780590376130723042795605359476709702405518799550869788469294813861624964038096523951825692555020148214730819882248707228720075012680982135636338323892513608009177652627311443761916908339686514085578181202813690779764103656940838695890930377885481337961172086083228241970188989271343458669708954392218282830312388130574084455311089065900300448466209567202079787606384809097833357492633923074385984972310752834206953254214393856277995034391409976973587627336903044353602523751077943098739983693202870486849971766268157396074273678429214208710406807876340072805678417529474024724251646312597384005396262771256079253468555929937339840183214530140222647925515012668501206809849570266755929670439676919752587874312821737723900390523354909833985504111715621829799112762470631324805375074093745023196759865791108982563867006141776085066359794834054497280645322128450825755770109694373673163768947728067276984083908922972013413563578104245938687810916772994958347936217060977930836330166509961308576069285418501714925122106826782628859522584540529944568563600661092400082399018383282353869614101080135388650506589087780210282166412251738318794501985213572971899109250295935824677193395631288307583081843474919484239514402951904729840972598631747715099336769198232438068251449231989411956216408326856569410265984111131011809636216661025922805485078396560952764070220789369100113902555877311354631132948274517287033626973209782187237573866067325488182402094447074272347931502527829581701144349532422589578896273032000609876522866930592245407225733373281729943947094281384520600578654452747974363721632095604228931924210518988580346218311527333147441674699583192260451729074110858179853759424592584659305710078021538816978831334230936576559450149031630354620244963243735216833394698426602321810596916138846802290084293919218040272650852820179208045250105566298978507376595621395021472034538862131664053342330341379609667292637770422060682890304281033319324366541153219819417273041919163001905592679416886539578644609924235985640281962248716039860555509975649539151246520244123579850407097604146329644252110498238973872207010202615144655467268132202758185287807200870984316983440379714118925762598069871747197686567088381980618695423971681137011510837429827376822512326984074581986525537003060124775615289382681875721055830691592176464768713581456130325491411334639172617744920655450426762643921055313885064647934437791570135268454210400561277176450354811691644912716664132651415078908570159787749116906062869990171613537474632686412261646706278182953906441992325542090976236339114170543112919247636179823993071052197382130725213181210373550534591865757357652152055289923024132419167843865408814656390385626430630396310718049144399502620073851288956680249519293947040411424995258074382703637985521693452331680755378843077196686267036302379527478427715899367271135294421936787336358191990069700012228418390777902773587154133878993565190836789714721465415095343461633904577564197711651329962301635690386664863257447333905269092958190279146729490532429157956273859780139453214259879523207687258239487849907060129548605978351368147793159649698587185311456805071611011755230646425621989095375259325187535191623720745207356145042853015175332014905052740758921852537079713537934713581763848241331042778975765477703932482735508740894170682296836163202217447871993993983460083005740277949120232451838711911211837189683234225396325296137083549309766827374385012558550860209078061520821817502446437969087793700019641459101906438293718920304127572346758179544112300210889329785236866795698442086355328508713194474759412458151070126490034291178502673181379723705151978917668558884308747938727257516862973435297030171087918434040468209696062688633758699887786051380008232459708932578211567587336241072997124430508952234327250898426482422203745165181807874612380641583787181941200823166987198761811802378582718245198310577426958350947571695030094489127516144954989055673189360200005185579965964635596709480201495822827191605220197505497575959767069460973011988191784449983965725790137084062841464135969919988814015453236425437024743665554656506610812115331764100695947463597675683958694351444322987994098491095059171029207269370571385443427893944156547655537670683048213876099618135380608273576973665721812713128449154439625524783877007364534043228220725372767090987258792752894118522344987879982132100413702441871192045431213961136237379286510020666318510469774649326102854876458566197590389592511039472672815986347785314069308011522345047428412483759075714105423302946795866392782178768687563354745531791140710818976078431906583388119398579273526900589573068112339421178891679353740855738208657056734799872313421293362100621245308373520185793373120404738808356587167241135961757051805557315455622416837981617929546722557139196231984083677235185614670610006479053843075350334672703708065970789649398106690630982726799322904613502475379577860623326265540004970765223645626210918927686883582379735807180985555653690536321099108345134165307718991432210011133141712260975985892157219673185271377253622836155049881662868043641286647803502565839931600106272613806847280554554456654530839318085536872016877424173768993364402854914090982766018983503846444090117637191641122717822147897420990354839675587896289563580403516341924243766066893657942123541157995687747976195667207338856822682233732225557427731146244949662497051700167594077715358590455358430544058750278619389695018049018652125575522224897139197424690147601520828119330497512901784005886126416125954622575463988694260861346838852820498351461802912932517583160027880474733118381106089533480813660208010966379665600272047154475139213318423486334663546686044461246305965970079933989165413550818506547182884839638418061697700206667337058392333534415480026683429423707673405584528338040437870876914312688873651209803591615441432159982409125604233383617003176616317057957101555450769043504752705550997960117358746392408728488164871949885454291221606038126130536448068065565669533784333554454089718870595609225925875320880824744581542246422601850929933382958077277057004899028371539781494673845041104169389080053382151708404072699953418544653092650823437372034620386504950063100887137412647546303039591432524012532993841838380369954998807359286312982756979801041302115953013634982256766949272624541883834471815791705878781049250659147361167143372368454920411881394385164083514536646576953386004160405799184923615776294995831071643128886376843131623282074856932367738717501087040400727533132346814625161337593338725234645341746883385007502714417591400537029909266417914358616112898663156057373491521422731064003778885977418289102453319260730864717976677952323878971579107339565749699084273352999181770331273738934313084385300916584663587502415358472205455923378596174768002059203476763573339361151719570180571357496752884535550434180472391741118835460103383121808642671328423483127860974099799311701344870721698243799368901315987331169829948331900244066715986085515731718019752707541179206813040046676572926285200395708334937251821748992756503581212409236819691655653401293064403530297506107084612531779054881597615245154600250963523769531874122079151684817174541955701205460169866398277453826137683375896228221264577564657706912359723020685098836680956710256903456731229100561394113079102986370048569972421655810643383666481696073855179645021560329427094778358266375776041376307408127880641444063125437649933951214213345750221772805296592943851781163211453541742497450086799772034961399846507498026293687954735960118152443412122121771448008798752127338113007710978617803310283582572446798251582185193387344135882734315799323064312494607071665310779212474806279669743132946039600869485501890974733784013392684904560272141967902065304948779542303857882346728786995792424423104361366986419050791494273102091034146072385887844040316410868345785463983909474536776309015244236289090515031087939600503268960949070697285765642518959605224907178019455384622345920415048706076159192814072778348119030643912354484732693356197660870436466876131484934040574079492849980889459340441745282617805153929314206786119068641654619805869499752611746075331558215215756172037197344890720640905333694687055592945453302516118285094336143910236396282050659077166978673181943691246309929530868634968482989298338935239220782359500489479678381763314277211889060789737465640872016177974673992936702725972177650257995341942181481027135722752067115868167456291480466931242605336547144494682488763212736024219650261953151782577780848276021310399141242049987673241338317279068574178404772802342469294885682586205241034332553331495463960830626848458359819191641895217287551216633576251784952522050301824706911006045592455507670186515933979178334944754877021966294669013613616359747561065857021769597123987096967525834247771947234387425024669761002893476290316600928575483116769599437386285371460377478556992871163089318872175189634255064142927151777595082417127805829267021891145853148566839666460433401098510655791968681430118129358183710661488577945010174073355859516680357497541348661576057395299434173828694653629680728511785575665646689058644914809194568099328327512186674348822996712497760839115513138962800035787302194079296212990061552798130265191812889822437468869189327531036066042327321995939004312934857073624918659628776110519628496220404906972451045989035340308904562941138721633631844200887025345075932044927374251506682071935441022535513266980485338619129709834414552301682262588089483433787307211490380639073824289169640515357876319327940788435992242074995441559985971391281422425021408272599923236712132824884137726497653331561213451448076287894405455538965780460861558661101056696125239271639216752574484619380160158072808368159097298616980301098177936272495960991329631190712231893163515995660667962398900960798726359924566619681369362411810177973083037755553931964462920759343865378628175833552218318070262923677459994468882141819617319670087142005696468105237648947212863047821798425713333999565434139639417471828956318919573331361324300488562141527641882604653176076755194614350481544192059550750122139343806946166312448549881442480364257697593838939149396890473975530605786168665421717479412753903739475021523264162929170766655419088202763176894375438013034368135794004570086659252391005917418481888720368862556221059840399552436270779613555712733440085373547558310197145564115724372293241860863957132320748157488113421035405666191404377406652051922523415038117154615713577388946152030871797225605611392557666836730844179192534845077758605445207228129501128330773871041068013811444792292100775602064874425777971875292193477165132167827437319834797468459864334625237868455344661288684131099937982523140739638397166204166675467212856757279791385059865284945371258555203504076824429125792328356606749088635393876190345355718596808158420548030515117118873195518981491381431348171916958628301821536352412851682504432740782507906006637973362577098319423261572285804603309913374557332218565544967458519618845583254626197366148223159764871512514404953756816632063347383785401053952559375167420054918956734665128835263254758936555698984142148574516929098547409827765837380943241106919506125821205492472379650530139159381826598374520787584148191611379044165249584059030126526958501775971911716572495911933672693102765763280415099239699381326740781722502437824157584173879186056730898955445108751000050012943354385545181306018444114337301818631180066627976339006144388628349499740717131840994294659051798532808880731420117560302017768611396263235753201146203395938072588306339512415612609381898447149586854134282234068611434175034417264776224024298307877525462836578933040951880135700492959273408887745211883030969860308443984733269828345856009234368376149329367884657614945075888431773876342384436298404798086789060198123177468090548932915514195791593259185984207220847865745860877764208530077915735849407685922353140051685948706017436178685471691118997610435131910160435173835943635974225353386483456420981130319051936216184789974480332720722858429596749745716441245238840045969258837886092325284633397001309504466104289725038609271500940972074434499960351415060781720634315570443228857989256410071785258430898464251565766915316129834664397894539699987358418272492562281344447688052981160250753536050732363189706067346549584937607281820100402015153340210873392252231392444720151026939862223155139457779674385622377364783683993795888693929799491635460084623946422668528069666631110148089089579475856270552323518728311778155950591646600047104380105017015337227901473351446907187787489652319020470829919367328295213591782148794940992121623853497961089574851990905339597337602013751300748941747197805293313314276852645656659717326104809854802127530703164032479707985268354097303338203653878111571561691236229234737363250200584525208869432491402840639839012709469318717041273400926368583001762584879217000218996982108854635326944280093313914200683587005819467295192747798066180938734421293464808351867282895800542351591274224128989423432881733294114900104662794884160789586298950396151284929559096863401814593688701196252042956921100762230087234519260211664314069761258441765454109174899596573940732660787616698504335496440874211893644460245421074593046263477468918325194607467805023059311141039353021642905745440939696931390106071836108535945410867853076471490134451300567560306376934362658100008272239286681174554882543230499236798017561943035674362959885388260592170801026264781739836133272357096455498541481401107997675791782602453148237811637436430139533075400320659465649089043890267332131841174934592064977328728504644279508191909333676435723324135284808561205168655026649174229674016933123451618107830421199679504369218325983381978576711482985427097776908581294525518756601802871312408685937914380908169324718596593997210185571146243015643850899242503204565995686701910686582911394701191506018229066816170895627957597154720805468651708520850550116588416630570318400556483352170543681451383352601190966998581632176554772049202719537486569374886960154671555420000563551604387562070680540316055682325573126966913318931954523610234962031830692582284644762953371330826218020959304035396919904386163191238295994748589533793402807652063882688168406328624666397218943025059051134416324289100052787104712089873604740503155873852540273125001961807679248933669067040128608112312405903331715024743861368826739629199313124472398306247927346392701363321706199468313728287819365047519347547746327592541963850872992380919685397499086064243441614280639796214980282901685615503025937663569080082003137507200728916325371887826324840774340587820452367151906693496536679259872700426829936778545016915655362713949423329112871522822487914591119699429107142346178517243309737162725811298329252519357782339359857963505331880808655340657554884803846634332210300691227386735629075927739392756023989937044963584119709762114749070000157803054615514172807536109666867600453833319514836738848146466420547586831962375003855009199348724569793693481966269086585463803608068088557580047087791705061399033186184915533564785271701789301278079336363178936036772535240914689378060128895024276941370773592765701376609060136302331689045554200456276423832539588212735840757018462310793726406848619111880479456909208570211289832303647657509929983577234336499830353303303856885947735515667760842631101471088205490906079516382424135686845711087734469091651821523145341275771034592943502031140543916099805373687006250818564257911837060523817566355288873008984468894842398173776391345609724831593672673498378007488516394129698292705590683100944664738209255736244360627807954164008487825655693074300688884313170749551877634623204273567223383990188503022907507320357291455894250842612514190558332224204791442049609337173530321210534948209670301549323841776225787888314011522731825835802454990070272892013663583034222789594335951300230540688085209758855330511796994134586178016618095712428652083674925958483861195431100168030928998057532988213320508377215277127584927808162906775298284719753406697146857076207463564344171972960078051988531306943586871677852070950351502036902875755688899633819064234300338614436449149245947067153251784747313644884633054659582546244991965823680789964287068462902078234799175730315664777839452597837860082943357593997330126189992997794424429557801344602259871950464398955976613953270359966711301440651581286061089691878008973927900640276411308152770110411971189774595117882986720283923540937733618658141427263854327841037569034588879287895513156170549550250757809289864965690378691977679939718362567111890886484467745740086836259648578903113180770847447358175158955425401422641150407002902926200794808049734195147767496817545083979139860670504178696291999018430998818578981637792203213998162092750186030831128841530437442873376653101372624299946159355028135214990111610276472842214738316601263088971431083748595699880922431770560729732642994245493517916459474052360939879938011338009820953166420770579836841609310075107308676040662950895972844083162590335808842477185982594431471332446495392465625251988186003712215269710092976091874257651684460251874346026898478373635876001333582707779693982189424627387184090561438160178858792617373380238183574210801757206687745987171897357505823422370159399463155038113064883939290245652320197710392827577079891251276651909604530390020869081117890227365486678273409800135470027585183322318815953575519322380796902610376212822529128930526986902254468057686303676662052867323619170622915316922022549888190697861137754026274205532167991544998719669695959342418423961901905208743897274588337349720551060572431599770696743929932004301953679605312190086083145355956280521273664338294769470385530936179666127706767447497525427935117427212508128874045572211881804058619242300261115045449669295254654340881777988863833759004291465646244509735831275932843287157603444986446585985041714414059800206772235376929298628506739272315544163985452387489449958937442643242661070196557513716490091129387736994434950381178006944891840722746821450208455270340787389238693295405413141136804013407638463644206827442560880291070940687605004536347103055131168514198365998110059700302228498355569520086726482053449261580584206765460327817439957833598469456303689366080197501822297906587990857012904265591525378000194361534785460810286599321786632080046197069826020562837118891791382127685262333489195040525451897687585142823335450508745909189319341683326827078647530859485905468441347980395480417629223734493190599254347534080363180320114168040859259625801756601409741134415844271728830890958598656533270206355874048081425031141576614282593056952446490237978373008428383384609173290828744524972252758174350322923653747620306208765827196201064784073641521343697055787738513754455787544803382810230056049650677611137633931645607304271278024611336882914212539893562945770082524178217471854638396988469015528306697070877331913672037901879823769153086694173319497382005308464199835676597469139407216459408729839377854536158499896855210616210308272988352902048049949412938407960989326980790853909454457277176100145046581072943015507332430451769078779892965162404935070039018086940403656867968726362979853491633166877520657180585652867231011616291837301581522292607141296296060015404616591472853521296620589444428636517396055457855616281853843120938931524844604621739874563704336533027962089842459729410905795386913386996403697775767851350438210881343910429937722683830188178189815553992260690392520610461880745028785151141872710442554023783876955177039116194830039440424300611531578764358093878980484705932294896410424842419955457570968442052446569600455267254137405383961309854431998985909265930278012153489514471847789859412092260205796796163194301310903782901853535824109847155296297355832538884661426558005990875312131316745211626473753974382882847776248296730349040488523132704258849097590713559866994707005631914695458675234169045290824432394559211125741158727043288108924212488328164114432779340502080626570987583820275890127737282277467873877343033737254734862613708371100259085814927589724258192879630246818789228704241612176032217646763849983679216756631127100536588046907784350827271850768803870607267298455081536985787712354867531888521709110765246700438180110191263521201335786571322428386593756856450467123329798942169519710632442127817708195049972465730996797459898559891123838516326384167707317652434132489821556561121345326122666781049696302525313399097966504483491457397319381705112896727560054259954420255819417534024469479535732766143265548177600795435631889307124423301338430098440970838828607473997599849531884618649718008075327622751128446093717884126014151054610871300022797515395564254536531425616602426417612813579769164596432208073977385756435802102842671746534708835952390713803684149290119731785965954182456330134774023031688600533223933383301986675127331895253717423595941214765668060436136134667846709272742165402802753022162790784840189226437866745974602348740291949112995252900557235930651232534916467865463129041736622306582064575180925980234500287591572414026737925232599041322670240574104556222946143406122638279199908612674120429481729902161618151868136996859873705647154445749812126662310029408054906012986572380333520403465411850115544716742504760618293122573240165589263867978857705310509161230138631209073540098204871737915375695908246796421181796895529868291804853357313392768826375319795280608255602038459257740579929746163297016130645159764252511206988770384424762221342878209679988565903858138324393441921792269884609251487717176746739845251135750712821940927683839497640489665642996604042723831149841400482193146786255003496954715784269563468000612090626778080294552493259695353916102387645956762689361192563338664352684885197497893554087096123824887123140153115539606092871728847566251069698131364228541599608505121922149983505821936307194206548536526114005552823480477374204537751070562064262122785518782064469294706848884854426688735834479434055982806006901011679363669583170448320741990271023819631866251119257664065965693003396680284749913199888389527788981676135321344330100401727987179056461518412885458773055291909815711894989170914146403032795399563037157563734353887412321129112323610625739990391899318979490150578399463569546758673930995615898405532035133352960730560258000553553426328082119793977984312628007796994954280708345167521667190847093882714396374019136175513377824163200677603956333571471063630344171243225280169815409379832929186521356252097503910304988316026990361930535124703783151608014578418413520050417342662436259346254082165410399687246239049827390756080738595964858773307724932643351772321852992453951517409360292080129143856046552432942981074153194109283886209366084397991339843198328606497002401522074891113961147072339499727190983264293814887651762043447261246446022429837384856412433684585350394891027853636495373352904169484623498639533328801920258021988342943457928805181341643135818627497168640504715786340490178000685213472332405891852460275587601856896018423522189101453540870410647876274396837694443394790000135176856017667361998390840517479851090271580230039558709189808211225180956712898988309040959245142722060470608616304292764425224253279128481372736841745624840730425456669506297318223068676819949909077486067359581368268842387206666345771833897049358884803115792193027184668266477009230496578552530118511073859392499396921251410187555191579173064455291762779551497736323180693099651769298916943932082683986074370767839115301523937330940036979914265019776951395164689876985914649743869849990604392855016857196899171629329155711289170868162852823241760381572092265778909809809497108483313751801778078065192045055302655415203172530723539179271869590828262972877112810583071798748529019962543777095227103366509274592798033095523621623128279062658769844042456402742719767751044038526663885595961609278686416531018238391769258164879511771761790565520552616789991313985745950066283672005575454870666634272329966134571401142854079185385452467892948984152981035434018310068423939377477931229891654543561242635701548462743898858455270644143581808423322659105803356337163597762336902101485132286973780093116345348912047638511909817530297581603102407985999366456276626751334761685969652491043782746541446555792992438312297156981537637109665419668929991030374892312103140899531430243618606737712551612463595279240471597576350382837294405273233001085245472263362115413645325627117314847712638009512901738533150596128545834569912190491594308788712114336189976468581974607139670908553005456208602170287806900878524312293170385377286079411592065558636359813592920238139708569526012179712162632267031247539174545504003005277163647862000238091220433727883854981207743584099715138784976031453013895071604755714843913936891025172331693135961558184320509505827986781498780676603323315146797512669922774835771913629107020907998500106725476519547177067067116435738168275267916156537336536176869064939777852112943637439199934582752881528123266626415803742755674773322397220181497068717566119085188685218494595731845564431852664995078501888477965803669249447707076353374656287618116903296037772441566859928067696812740629548681449264256821535017510058520975940551436933808671745201622555219479741397129117059994731122047017136895531365103971616530210411237692383518557103162735554453695095753517528863856796509936973816118746047468636591873390819471494797835426837484666231236400400160118220896433608702913819606449349799104563646471407477827563955856454600267491731988664474389314623094870484858870724675454434449902218726268198506275376525354548692621942793406700528379233637207935607068090840295166240923236507656152837724909669788157642692667364502468885019914089688345247133404167923068728110069775691687499659780850822621303390834560425818703967750495446062469469509446857631766255678972165385128069450706604035491991985857968656928043059255596659512717820113447841198848137905926061985478735237387654714536992642037556437726885214572913085334999510188988889461757923903707249141198998235736881235617729240475835974720142519020440233335474305534449983905825771358959992469592703699021369582151503014089826325475838256837399752591218211964434194490509973169678228602478792221465763119957358782262460554933828716426146498222595017195660646510744497477518130728466213345040154142084923865840483701137699126793123576657880661938604688439635500041561281692424644719658790668676637140175432349396698844616796477959691371576394035138124406592263967832897038210227553546741289858694658353614256857623453851683302196142605617668633497918853050145418953757491065059821331989261990533595621979098137501465860458249941938296811059625772184377746873124222052360283896537220247671611791708775885497580306947817156256205190055007154998813661505908516185279493943632786330258580693620148145018003827684470195551651735265369650995059579269982760642594685196317117125010038805809000471465624700484603431623895979088418328792557116558050226291952034139537157739466949156895887577255994553539492490523365122065173208048103839888836815415232599064190487665442259590298505966495646027904596443279694399522623425379467457046809683669705450952024564178735362042792278940073281553131973047424052111596785579218801393012667172249951554700289662190638851878247234589180836525533230006141592977139934372841348681032328946832401685529089828727639329934463524657196579045147402729709061549022787528740025385051320926551583973167617497933927804380347314327754395981943642846555823500233629761092329273942245939617431973292642115176843323883955865848656810592469435284885031361070443051953668224869625292892227615791923226050287999357195767404489194825966841468782550815886893115730246628049874689969528074322451662189375657321658040199611781667330722554896674433319028071577517950797397683898012191357556736064136336989681651385797329620631669895391999871630361671943593416122051234657860404667070941943306630769610603535481741836336859455135095180851877556256215356612581790416005498038421199009805353072153963942018046385374704562949305988907542816554837461581704586307563019172939730822975066814389597243315777738646427553440904160864070938922236585301797732306544487150397554649614216013126412459053316941686352141899018770353296806865372365362016676007691353589484505069094744044742788270371573664141179668807375602579523768466486164627854771970987688090865657713860197551377583145733845137891760656303438846486968738616192938937913270922048672611772815069384958148361709057552345655340742107953309308620948968399089991061017021146767129665473239729057273656747665558834950714179993171215653103623710274375515716301999264850452450118296445914485068049625390047201912633508850032758819129339837650862525712100983862635059685852087970757800534896304073945952906060090551668252020720633475573086164879302815206700981539099476089689752554597112808924608075203812548788669085939456921728274266467399022370096421924070617855903787659332292917551557460652732408358670860710459434675849361505737780703028219297808179389957515660995858088707250964808619143412745407231080075855293827318856528864783347303943708347530066941555386129643732375107171029977356153339755383605667731604709455572561393710096123920838360777016312144466869552491591029191488146853069025878729095083893154528439721613129499602633701732753891697543816068109064687132729121167488441329110786256576646583152014480199222055405760117081955458097606453404010024176123704869689642128030653274399367795799572491879176714877061638535782965178177086525246083727427551540473295711509885533212447411083856621433084414951693515677957406620274937446333977636584140835152599840761186565268855120375199887435418737571328956027294737162928348064271362968265444098841887892868572196488659548908220092492132309175305949247234389154015381375064492329811719929039471423939774405343621361950649917778515456039256883991743839172150258037204891254207367840253809254691805875430943039412702080818619536611044686727689202530689444149499818466848645397190365305659020586162937955650004799515566640904224918909109083123689383067111022143457927166758742217376031313454438210270689403832360529749930883216218141325815257641277297538922334840443033210748445746962887531618611487392238669311809766564510555074927016853964345107732440263258544979842136428446452035041335742774970644648219709848826766125090336107086777337730152941029778601194163030234116374730459051927186758038094459331870016565085281094954629620797893407933722268974520846573479156541728956401783727204448763244542124226375443947730676322557065445688195564367584349145691159306214470567883247343275440295578421016575474240117445211258136927162863012207248925288611589588550716422731185475201849737182052286029159281254630193615703882345792668886616346386300398782191564963961326755285579068624900913101645550505994879751951745869727937430058122642795769059773824549304521101301139233711907429830730237443918503028686011612198504495616618148037218054099498498549191862742928338255099954356398026151883685128713289358512097483432710914276899994979333616510906507368652641985652766006672086604766350277371831350621078552195571336119044840066904166008625141605423010979270539377014864746761504634810624063707321600311606583555243133303747521333900974255767831155973265404294002468928209518082058058295152175364541346983885251769918305348715966285362654621161279234111298406675956291618010427615322566064105449811915925855004211357897343530431062383734096533144537363473976496539569281625831477974610620748682246690435214157268353478976791521753772865488950741427986848299576918942629119768930579067625119675657033213648936278450739743164652589897387309442748027517851815635710331474414040009731386173454130551613008962322445050660569175276143373149138271077609315408177320554008332874233185579804993530610533771023023145182301243010691310086711640614940176442262076226422032712601561878686857290003118424040757210935045726378811288027571139617977085336045665673102163362338630868815308074611857566214718627306481062141401693277584521126160726848283303714654028719896175710089630238624727588284456516061336513551988964226493713536482609834475414138602249280085532520056074032402780603278196869513420140250146083217299481287419036103975959530839808407461144272100830039335470109598340927172399605355251086837312013734605100861589057049506976399131181205540862910699603302682754183082608530774675225793333970973919892834476291519909643410236007082812108206516762954089851048412804200314250771659437089933044981248391335576194848773515437910641173471927960289651445623095624206686039047697618573144543525464363368459994810715592864932549802020624708268869139779875906811515097576806317553907678089007485648780742926420479226056449484284207778708268830688275631876577834302810182233422058360323873847126015648969915046480713311189520931567026017187058134481252381749609874774300703642970515984534356403063444086730347377485619963392605696452144568373509175575189137668059675414169645063015056057988605218009401141504831670707049615735022204624587151292274446600372969297095584059229040243599277106830411285291905950497215116219590363504761854929606014411038243548412561073848916266691179534000509138996419940661866612532208738969587340508963761689782976751145995110145459910086291247823021322408826021844086796438126353783361244801340757125022376352877291819371544762407499917996164496553749079376507923659143540564284718898675732603891662145595057504538942070744627088491453797905107862070351820310579940830799002949232790256721726282402901216955136955705515551864305246751726265910250591174271235380113243863743872743627829199410831207910736012903693387363128631408457270675423816214121055584751514240092307226696087714769866329132536402141510089846684022779744465152323789605202475010223363401562682825339217478552677435663525756710243112917198734720814911993608751712195792102953525733315283045317859615493224320931068250107778399201441692479184420697142184126490201166705888234007248412296679085241770218925314877809457630288553212133060558711687484002236477883645347297142240385083385150311957975509560591893554153067727587299092395794073930671799165843898328108983021365823370348762477830208319502266116163423590131613910673851928656238698800887536856039062198503141634542636108862164207241460610736530185217371987348243385265449074520223293393573148464151182140634533002077770045516428042573903268785337789282187670139814373720716401641146458474048817554878904584751469250692676518595181398439075835676140454015212086883096555285088451616954900008517280975618538213737582338204957054905459839441033420354109904115454636233441932362266055165238190633542929273830507377342788424175280788801926947890760008471792190969572226434445178744232723911625789123254162764355209615064637895928423495667193959552918514012991168860030513222467534837518789718948511971201943997941160105895891703982901352537733354142926499751916576129558963980017970235073659950436420240097066109933714413951387680235672280789988383460642719690372656780279385667126369733759172552996485192593274792461177582367965409945641159471731457435583805354520656699395917866564973185789699329611109863741378030440525266294926236863822825909008680002540570310875811601585877935861021185160882624320408721067762039696528737517445406040444495128648171823643363266920754488850352825627038107413868376019409545109958570790088755811010493027650998340477015585162744690402793475821537917778431749529904183321011099698924665928746499648621034020198108311463608998840423898438763768642434639212736734578401768009816146136020855387937985285149021482392216546675391941236969534210237213809298243331544139676181963523106964056763781029872845245993165032026905672642008058784484737686565227184162773888507874343955296139120750150534582295388546325938242679491647779995271093307773378264136176530246747003176692551439178569675209314373085647110691250206505239625289185402487007461987379963306683391490575793164142491227504878729895257701216476361003357909520268287039011803747648116895476122567664642823451829046047448029789705982609625695710057934484137500969461430079035378072564965998881551207623680184013679790456221883173035466517214144429275423414155900456303891954771431387579653190626646429462337383324358365718182565409745578115258112832018093073956462801197011847337038783380999639472074714195672616761487412602248591008875824896412979241657112346165466622593307606499403242708549227062995352836441831343941538514493345280528099723101501554907489789862867437859854430991102111578139272625045694148775257492802982814860898639694702122713790199334376841603785307983260286490633092659107890219196311240141966337703537908686205782381127165600615838805434452416968934405774175471882170548348441737579941128208688374632338246595529183877242094077448314545107838382277396583581199118483902126209364301938576092792107953937403281446973759050514763246561418820127844858253284989357632630695425995458006450607431581951895374271019963223447079203298981614006028632649156667571307450393635932136177564610505459258771802878276093445192063217810521211112213107678491400869619280589019950213700243762140533919286034174540348290116294730199330271001547350889846614228474467758249891397393301949708486112741018178851243660172485676015976051720547715844251106435734756612309999538565229307944938766297556335079518273133043981638772228951325385383678116598450721156047749160906104154324497975465718585257102677585346655520028639006934479675293856368868564951986130167413473693960244260821760584471376763588949548648189725941556586383741509134152148480391357535560978622381041358223537800102547478788148079255057190498593451889368253734418100879255455973281762247937892492625233786937221672892306635143304226204211064552118588405581923645442624116695728789126787708658041980733404441583288925343677761127575958802488083501402124144432699492924130110017638999112688064930890441342213071192958333677658965726602346032469395157955898385498384591912395815460475506725530979276590099684534508299359229837896166668535341799151248171406750571534989856398598713640358066829681909876530512943442553056487941772631935951611693489175815695277194261424698249998860276424849279170694292563553692325885007423675583868407821054432011669682032653091707517485217939720042745300350515054693693833180796302301046834533934824142753927692715202127871820371421929077330561699168213310965976086949035450314710382070876454941765037337927207423423348410823961869995798778888533730675809804711238175539020726402428572981839551657444954580749102820354470951525788195388853716405821355638684596471755317047783554720444861732572705859074494589772984512586183420746691648090360473189267039317246739942894838287153025655185751549930785068385873563612165621012777843131387680455635690322057749674304945327671346651667935112882643709299338316547088977876286262278216081980735832641641226963985051710563647870667938817745788604191523626127475216577088284116518440024841314579265366845781152958724953549365922916923070869614660763668474024703998733237624730808281611830394160800476850854427909741342231611855319004818510927697645333280656220173318187241547267605136732900687534418250615183387140556602044420022134922866465876640202459963563677984404155864199493126641370132600855850098102772828598111158359011712805350314390508060078977803094857851465148520242525256313470115483931859574161814713129194132255585801466692348252743772073784708893010688294064250713982050577259632041519678504376016924172684388240547088368727441688320638771462291689791508685895467500117524812120150241640736655415015641993038188931438463047973257368409213169573108557933190637148537330635225251150165251992079257126036776830218189302524377063155823270609802109813442150270804094564557483525442215279887143103632355396251585196421591020146735117945622031211063227953174096512466704474732740832178190274223234872050299356705109961531296070277941494448872476668142496484084160958106160958489850253813970722681144889190771104972268862309467650988147481675012085971534025435692294399427198432384789783638941402388727499655089970493065270504872478639234405163425138411298739439383670609423545445591695102998679310475612265634373089689557958869467892404402796102819426504844440311131229927281364386851729322188675898208574082623760918323754701383976441615382832290587777425012779421655988348049349333228407914476777107927531273080700207748253195416187152593940720311755908268941287479525247837797592398424678951436335885118083219899922220870229426039357005215262692972246072019731004429334145991229808484152012194069061816816936424752578250046995753079632405223881914341984336405158450607692212358382269774585809623849921862967503238509712216733487956929874681429604033153657286317981335591159380185610716153659403794380843866750229389275581555104157322027677600826171607164458562695917369191915622746004508224806448875300679173594601893787608806923673852071197376621971547925926170178461135279470725820686103470118688058602123602486425614741418851880620623419484235335444995272905601560159589496582779199358607652950858356119229462014369912580501654470995903256750440009761913628896929588828592584311385248129563902833724260114509855125667767836526382133303641664801838356270788511751205472787771671204233203487781840662257107700821744217859887204033875092196291267854121055038606656021676371157852539906304435943994074472942803994259495262506534652198828424200461417795856416886552526375666659050959346901801360729428838707817612545690842404685552342631452904057474626651554914422529700988192766309711020018043326982730701558937275260590978781838658130679347547037739769556313397720696534919853692566966345569560976467857291224361463134628240871487591199832380494900970720658691326051277232777995227059533981717735192090803562043574422764119789142484470400887316291275419959251290150045509818150756212522479705724585325156899753028835066856110684162160639866083830558394909961274163500661858083033396656060852218774383190500320517191333195661290147409759877200647192323276828287693126531237954941257708470214929885614508984588861039444758741967022175368506282659302966828899416214182490825589276617646007253384500983168044127390228770497140582903346230449449594379295313237808592721287702440328274024968084867882456815666912045657339172629600200584009132934792176014541169370794942985662149922744716366526014176967779290726200840597260020140308865688197803287086615189994949990455052721233850643673094595404470151293642730813075988911398718502883457728447099732793415829617410329302374505736513831002492025886863312673116313134702730241842047531975661632719067680784325118679106780522553216434537387128052160953655267330844589018880933977451593802815388988175788163594217995384288893793655179559783285964750422122186907119207781643390646795042393705757622698984518582368558533150745225237275639759056611413122679107014077277778517910753974695997986842380931860608030558499299609110560633742628107408393699036727255801439011354988510124155370236424775607572194184354188249369727521525871440143143318565579912152793165345451622084196566189057315982519934861573562385460678798437844207944759095071969902820741760853854504606910039305394797834289617601096011582799483877566885459475031086528139353598866845182208419377605938389634509276695958677348264268538920396489351868892896893445740523068150284590665923420729672635933057379319620534459978210375441015498181412705114974376538294810617817889257230248801990049372157445554300867097575369620346323668979839997563257097719284558297234545497215837304511882528600456219591595346381209870394530157762625520335840001881381870683852812017200098080042322415010598063181241265415419544344959975247884452211228980867045264488688710776000571033542983591181886423116131761555305656258947005362650509042158829209824866243130362470368160773211893754296715438011845687412730812077122654353677705799208841925407179201232246864857851433166885550260647498541215327174219853885826534655885372667442221223223573683563080249019476807040888034624698741236027526520603215764186609733461265805737731436148549568515755690011103721867095993783547941619472758608542811066144949735909028918980282288655918398024210135044278357940287440596158856789140474252140172700495865439502375377812207694892600088098213809498684953545056097839615762277260622964813157043530516306479976105861422374926536099831124456875389386031337618344401564312888424272744766240524719897060674587037127583545769337986371409342445303443768754401721898880694338092888704034385093402091761272384939522644168049096498861184603447327748306147991500349192938718455344257959388357982503964051548975142348023750640615605846901203488007788896126374834932372981935132775768119343257105591032242131518627642426605488689541958829430231947898434281305055612413870840827340584288323400054267057584434740259999233949528465590027965601739153531685822480222211607068333248302538399659443454522545785215387540673620572584350216588017665288383738407623818654098725592303326157828232705550814810996941199613881373701578073774632499503102588954688768598199701010322613504711000080742941822216763441422085227332916218169385612492794399113549821356927003579135475264089717030053950780830253446019269966186082866712707348346567821785784190724938806375881608486989211769583390201808251322740359627246076210153043152819843914588495631466166139781702209104686740733572315647713263480607990526383917625410382451963539948365721079569858619593763676344953573102648011174323879703100004877616888539620493565745996977564478341738348742271258822792509706657126887600795594236306141066433183279587522087946133467038590230984787338942561453723874800157298578840296545928240657243552442269968505610759600046105831124318408405808228178093202261611814738489046727242614465158354876437377211026437554078381070241012934072952467512946026252747354217012483288327249058286033952672019520010865680525155213794789211779375677638170474934788502544674236982384811736406847083150178212871484534665864123439778024799719604809606474532649727690819905453131649329545668893777112783472097876837732342838630480416441131705217928926883290725705478745001016841037666318820066742745014704078935190959354422701898282415052244816645078653903591039572636890161221635525564620739917175795486577219235514855053550235656789781809268056550601251213961732289485946240668699317902231554867071556741705756133684235306106356400929402036728336386514534535955599785274100645544995786930940651775498953200238744283935261922856936170584065202810450778817290564077413134363012525458266000877808943667613229311398105000713413568800974759660017657380472058641146194032917016076422590671017944597744231861637706827763359881422146053156043640226668619634214632435313003959072987989764243226124673861276704589975579164882472162508658888874428405317703955629547680460796295756498970576317795943615959788650431543957069500486204974911585535588983945620155851873223906776813887456563977275051877025049182426197434273036215001839687131460378905730115859438877521798081518142052499853926524367910176138661556725951471475651161820068945425675902078853831411858077250863415574188504619856315758797843311405113650607816886760777495769904739624720571141050219959495806777165988104959439173398312900885080573245262150691170127831122966736002402433415344979361757276934194981966177724275452973678646146909153276334432213226928538446900611421714043509380752931566951265121592080639739956309979543862394747922620452885188130515264904284142060561222555037003150141043106845766796941579198285499483325841470313190587986438270933254708430907523242180610705840828162418056398915851431138119771129855128892559645862586776199377471501046280990477516753321894496197699140211789263895337452458747351781501109915128410758042684763709642372353503940931343962223278490254931830766453094180744391203818772187107551453199644090756579675939320240735075052735450869176579770725485608371282780261161742522578145987866250967614518127858479125849213006294740359956689901268002291117627753928281905053524668290284048645880085020854245571974052858640959363660566200846814488882338154488279940129917021892682007307614957315788072834199570569918409433183035149500410518762326582360025642943128328440379385820545844312599383758298291425640344607100341309339787678209429119599969965194604512936404116405128970123503603277254259100186799690341350302126462294607180026247372860388939327252094795331874555231561661139844117817515859972654778661994946105685343581894821854887782439065368920712152245831109664235155373579961719090663663589963288927741262150038608516664930327859490427929192245435380994979173431648292692579117985914797478838623020225722800417557145527163400393961756841031441253125173498643572937495161146268312635671053987148373561200557386701433154483750988053274274609547189860128850331140301796659612513798744689222120488109602509085236990372160580338095526187611398729350581820209352868292137907700665305759213414645623039900013959122150788773809345048443845495154293738187060436082382368474674930821130981608651736183765299278225173418888464755482940597987233883296397955844968488153907629250183014491055970392660757893289181907768790292763639003452397953127037732303358346584838194016115507671832791852742581933215927083018765272830694674051972173124486481813958283458449320464202617125211711969681020487281051321151757044818204247319301733779390291455491823935205821767224796740172758782980640074946668193797380577623716742836577313938553508313333436292016548593640242584732143982641246913107533293938449192038118013607220550880354315974831671094268987329110907203724257141758949004399256511690865671358059503702830482861670128157457380351050999037588828732961842573504218979708421171198806245641369037214217255790764170331420232578889475204168605905146573506099895704088551465131002670719389964435023158318058822223450966187372218424061356419360494941616830828561200639336128229785585883818505499641899090423797946641150839115387587007504239958335780365517792903397049208714430514437824599706969773578056367464499187743346294674899404762820997806102210578380323211464876823289427736386553810333922919282830448313834563424486998963509620079139421272489914908417651809105152361203503803128229512073931077515600167902780496874655967667756764395023410803081753128269493697431679142578313838665349114010279222140812409426903353797160101454945454626984525384277172979228140287702895864077423750632550509300336552165821465206748547310355923823654459445975400877167854210479977685370606662029649992771499932690542361078853426348201086611433103451243990929121125488899409354500843721471715097478097375312133175779824239889722213530561940814859379934744142752392817281534432211511476279959236232763174125027204386227038595061112375673422932209013364820966273183566948328472236177324036254740528317454906439967613717491510763309822324108615143311984638799255747660707271974798198198333130981914984932163935385047565007009232559545265323360043205370488646819922240768462990320596330522238140012349083898325956007615848180285748368168043899034779008383032106412047144901306506874146232445714358545615610322367566430196374516388627484918902180164160693721912675700614137552438668155020075866463812973500413271326402518797658407397942475402307603003841063479193401002231878191269016910894165584758821524326163660748787589873306127191176167543495317761594191179690397341418661976172695703062282005311583949350143309350680577242704263028731357283766046192647115605621289826940957185359220231148711900202956167539804114703788346706448287727918814879052188786238505945224489399281487627147180198168598929146128571698126949614859387414157482859321947135833073728437381862349449725367268810515699005266646449732620307296328617791751257072322363276229706795321691082259821190786425294062909799416402559803856207656329156389692832164896725293098317444562763444192202287760403303789931621081207598728897265039406820373769692466774668890631153597242477017355354800421136219545253115811569499747325518527099103767163235551882714321790176151026423490208111384492617185807227604041507366955097498769586584445898449580321378435648929121799291937703517963265918567175044845916923726346643551744384672315869678356121051156980080399474632393006541073966021726273052088099392347620901868881703108523065865284641510892230485974466376960505167848392717596665337937606333620518086511085489058968668943616101940025248367722757117518520092654288390420382759148977967130574884349512082992268841097215348589524162356482348488532997396421699303084329982185698917394355970078883121841206957467511639128498441332073637246641615322145174073686695142102690107856044860289553984798137681908982147452498116419534914159853874565303683672583846894155653743227027932408164719521739902176460534693618452440111101353253204891913702542592779044025527105338979667234360489848956944358768267123701974470366558527813506174062214360240042085087229270294510605258688186554851476839732977332033480733072438918207993272645253296204905966241483446773094671241961172774053737158029222130116898544313487252788960584378179980772830064956964201114138843419654367125053409339482046102890091253716887348257416597355351514305282318524329715551484781787899876444116858049455840024281252001723084873285682447188324909696129691241612012582718260961061716391024525648660694117649235967227727059859853097300863901680239900671212006417803658764720456758490792548468367066725616256956595290674598587128540452300421544943449417601338481812172761296917603810549659243264616243559641528869739961713837678463557805535562377034105666764013161357570605798760849697059792558552177219377367394069661465698334613628084211976103047695041620120878765323119895662093270850120064589590410576801734671673844179424435043080942641875156697758029892219178116665723778400448129623580301397099788523255069796282648452373928717446941323459862645618780418985588896040426107641515549623938350689289929272154171244970468452332131855342699869702440425467594162322351288926043270757150783231617149434006298145648125196082882420235302047912004324860174286926712097731293089731635522676342717392550865291457895041198773397784353887327464098885436298725967155273170208618238983729535699552801331928440502358535113421354958723286872385977267596193199949154426567792472619114615152551988446525912589188779247407494775358301723882012930800974983077476205111095401147982654859765522548315101310712657869758278920606870464858071734295081133111860958126192989555445827321811884865460960807178929883325687476525589231794183623559905049454258100197605836811266602665061226852687044806274407337522779523378375670730337595259217442198672843717507536919001560440411972206185305879836151592329234912613081304394238444420785030158661578320376085574738497274342440499932139703013099517732082412382121179615245649968731105424287000546130821104084728810128749555627502851584311455393417033049722849726859094331940959246163950764644899195206883310136839114731304573817891317603767736112500922728499208310666870643569238958473946217499830998646850892614995300247173271948637573521661719350225363389983105111928771162240888165760843388527178283177549695630212128212271666566091181052155596811803205576819313116278531824572987709091883035075431896797385455571237062117674202107890004180747055384431112228484822049694593087257302104420852227323687299736561982575759732361461459477573433863738659020302452579162255724983607185474310663813836311436698967419900768078191321853919349544714841037924674070728501255945631116457040996691129625192815570588816106122860558826688130583823162751168922172941747243311467783113230862887375269243625864513581366435852042174882660936633065005748319580052864811290991655094389678057654830417007638630128094768261220275883519852495742422850722041203357038139967711103351635011293343292505591485046648486617761014855621624442656475865814307927088085632006157326238377945508316289896159638680415410103151876372229606441621201907048471724877192156628255861189447917955099629816389384141440194003708390940513300347614166282432131843131614235048138463035993377795886310783055095761196297657124290707922454471391806552646603091202513493580867446124135639571313039760733976869315285645680639314840556142210419848418066982287276659138650808188011065629821321420161335196829204225206700484531829949501061541532391119690317756639896056630933702373959489802689993883570188049650233284147412859908620822206593894681734065734579596133446728575620044986830941601359905651337772646279498447476786940300283708602544854826359871425229658252452181591705650711961065196601915702190077129682244074730279133184213510168410974699957285664692327065518461233158790583773371523869068149270569846457509239715350321719233251002799137781286514336995612608630493822334345825222226257787660644989319197608280964645837010023830768277395793388813803662921036253327289409231558623360255237280997820197637196611490676730364441115391688067990172930983562468915034962583692222334244585703529240768261406498808537955783715609742584968904442066041486427241777975266680610747489597830181377879925829570502864780681594019324260381608696078536061325768184108275445610918734142417142550043882514753337745510741169578578153649739395257453360966480964902179134654125092451576042179485352057727422411547256910073084292412372213940481632755126827617621562534332158772359743932123264940844601200972472461003166992845262430612748972509958744004933172895408514501602237866844934173190675564986708822155834490564530007916281153079208170796993633412612031967926960418759471484963307830929023968342130375221888598788384718231911793037228378708626487724207530064484121687065932245041207118800710313690035400945060759064863714074290681275073356648864524371268528548762048815277913156318002564491083620587050035962948952874486139872782257970927217653782833924492426004549768580364504514208150296205006152531486981554891019735713355047956696430295517144946250499256159538253136715832938770459457508800068116103923228182439730484004657624042656099498696082492736771700399564783797564680295797575581969681385278921983767456202728182664005394137031013469357832639190694451909526418781055264233621271804949312163153910404598351516587733782603666311424754969016813562859866611219520569849780577127969132346889438764344903553828575660808820684970984494370291630060752262689948061025768874435621026767467811380040827134307462376953328348959268164897877373544898674904000864850747381388028954051118317962527090748909916240269003951359518388532567792041403803327638663407893751414595856455027342039256150916113311512470346036846910251922560377802045101035132038492470256319380418579307078631518089415800506063725901024436523891190368481114586121877504548469465640967229935557909906893862939155923815467766884916457998937582490539824988063942758315849479632298524952714753964406670495899990104097701914115587071943126386624143252859184700998984946289203220999123906330391740678180363486664692951325167715508282000771642020847778102293311478258362213149364673138139494018118328783508964654765200000442919793921159084408090193300500371101630872524505941494189383897447543186054589310392963308134236882611420833990636981498650446183900856411050877137600388850614402788802098155534615674559471767888184632284474423141272824711410940718354011939739401071700877131521473991254014333343788772117028238995298271214743348147815374228935835075483884227525409416118362672228649165687121397135150449828461459005100987840474408489109459616793969824834006151426029411327074267985023667655916765902917764223091484411173888430255277913527117305352146447656012566127478041645561578430736104449279914750384057106422969319870155139415998340173150837147087367954391677368063234820734319376589626648271201165368853947592288723128808155051409106836924256214701158588634476791396750417302332520856329497785013689492772869941262722228320233815116029020621337627551492744722915572269081142682763079998137477977724279945457155102080222261862806733139959632996412364721999015786474033321524005644194615340454354749308519999405190042346190858228801192985352847061292412735796797059117407344549796782334690888033876912993194634276456412994581199377282128050818634261772815908118876223098095279179668247463559866826313306747828799550278466047337235621959276374692130636979801935994288278762492806999970850394301489821620974629208630233155226016355450787057398050881115949302619977304377952736333850589151603448278578365435478905447308612931347713349530795720094420073581829731497948535396038034312672665501855943076534055006608960745287858447651509595867987331086056307246806073739943625419889504892769558040285779934488766707496928863217431750946242453603233331289867358355041018639529540237192474551836576712143138277419489613228603369568314661611152315651350133887971262342016542708676471120999520297665585453105737579338495610072117726825371733244072909376550139377626981218230975399029504000609318839757744565747176670761537350050098743271574150185764812135325785907407161912574285116556584257155588615882802984056990878183883382813735460287350546248685611091706506977170251966630626499766361430790493217201417147077981222714474495548327420088038424753747592617118092095004711357343677073137420332449580622261634476529552132905992014998843421076144387965004292728021341781086738880828655854353912617158979187037508708586024349347622519261765022135749908502090344207218928936171937663190699869427939971464303554289481742514304660975147524174008060278747879966874808044118868929351111156427386866217289703668534793660963323927812455341523195251538814582378680550739592854417779196115932360094714141033692841782455671189664071396591170388853875550975889381263382733530569453604073964244746879951366721252827715828135539116228731850121405828652193009312462940990694496880536671444215334458519208777612810915463745183770035439910342592528190520188520093475190892921882277736983348728056223522511490053281457905702515678161993049046484027856022392859912237400924240189685496304256076872774804767614903320876819314115674257384659943345404712408548902129878084984507486514849361539980888647753001813498334840140989800413251822761928904268294862412536792196842016412650271197216471751130588064542920070716586029138311335221733688682028878541185588235073688204773046160920176810538977181561761368741976302802976190777661473926355348894672794058822493183113496405321674157684350629987917553409030248071932537360384231322490896278765941035131348094544807432914177151790547338440939019638321950832546956071121877814184592685466819273069684606599561600801336662616048429801454169453867558424342362741588749158587414946268499499300718389577472946250273780623311419933673564612050745740432861738003611497626101898915692052500490492577664443756914656850089117500183227936321302574533239847469983419213620982533052797112352725553441058866056609512614961734156851420993450900437382523454274787260275566733044306662189549949182082013039980297432505276059909853848396900226992614524887278139825250660137474816198799436425089440760403731626858537269920753501263035061131580539191305561917370771242602753996528386462250995035146634985376437825828008165553696172899759809671232027039157688435059934305855334169152488474350137876298849846080484003840394998505012217771974996254105578114268378337781610086378964266173018918708197144176624693850063932975113128647812750043276736435519470391593680214190570483602055692444166988020107583452343987229271617976733821371666220235150762673622300704452485977275561683366184442345842526204587368067955163050089558593031923956404620640877922081617321806740813207925881630801399864503294349280182709626602269548015377871925251185508551863098495797419597847066688948082145470347851023441173141284372344783609401010023958131035813906981114581090726783769823001892298683223908779779886585074319049564401728726502265125748792949707891440504385968485488548608152849570840294738822790838808532630892521981299452591935758058133009073539437221828119583611693235732343585719960183435229831869315178476064408662130824641154355696762091000245795942555667102024459552727596051146072625043238354304931986635477862919955576894646100690193997125463054192836004046117369543138455787558360973539218553134556048648552866293692433049512691156198133732232987313305049645100893291462260461386822895552421286245259355215427874845395458288358396615584102793207749932526925092987121957379854516122054327557264145032849394554370091920514585715166144178075158881077483119434159708423271507562009441927844786109047520308812522303553342432047620455001314348695686643654029296716826514121865599364107112983804173811885013945121457154755650522577110827886054629985203460608785227329502996827235554854988853642548496712393984452960651300622691912678192721158636186345177337477976332514751835268233476821674376732286021827000734128953479718344362536152862792192884761362708417993906990147713797391471774860839099350583522977368876773682107270550216976343248263229237689462094345533464945525053633803298030971257001318142829988184606961043126309293577116715853121477599181028543962418486788323647859348978666792427172130237537651728751088539503457444857183314684963970547604959912279258536765139090327387875422343309759304361118168264977203614713334744482677440892202113523477894487179190386106044484079430519711966953875881747671373259546424846384503501363399317356045707699278368328775125867271437662699947172228864255548330601296996128269295296165097840707042829001472264147192330138122479478878555313809625271661409689810965878069215572442000432426326108619773426066891378199111947258704490433194642296470846163185807078419971015440457675587545225153858490552497267371783687201104437627391468306981077071538739128166861213787622330805901617394451251508331110745898506113959556168397466898888609312836801593271053417586938106099499769727383972784364947736579135685923816993248348683308593233853614621938889389349549769877869957129474414881669811044849138646500393063251681226287509954238216645239778419078804557307778896468893246510080559355494049342584641317675365853565836131110635335841979289944915086318932988034762263622768887520538044928276023819774137598008400555431948505427431268600320647850099119422251909613036456722138651974633966302686127579505483121322140044459038544305644692584908809189297587563442064354337690377270538126027093675707905807478126255035840116157706083352290576834806039984323789050715238686274644007338769168692326106751187170184837525974549740198276888427345015395344776282637441648227257355508751718750439464988259596748649362385902648950185515402851293019406023578467121442509758526665679388308930313642647308971397000867500881848562515679704737465406504060642433774858043137880510006809299325613669201432221388988825527214074695378644273526218884725480463985590576695757662794464219877188076182468525911048922423005474890937350546703730135394227138306210216247403931730733892416388465642884673490088467544282646547261767763932582399359158364005800900659711028516503305619940951967509367683989692618724876993461308459834748981351097963697615175325975014183834058802180311449483802281255580250283535134704393076093176589940603311251982981572219508943268031254588068885229103516468942024714127008213270938707385135176299726788372487404928314245960380549854185141220495651379190035351568374393533148905464698421694916877931687616997885639946278951958759569770131935478990644708120322020751821657314244224639890108005817969211903046528729260640669211859015300223526022428880729716057049011183922213994129858748761189509400468538952401706582095699667598427219495872699432712759351379222971107858526664068034319639034925907392499223242370996044485043311250929174201793563352433917708541606896682587909921735940116040222138163762976227047067336657921960896240381959745630593307720557768993652522676106725464588634562113866879218024483723391547810652834745116871528455830006316691481585132407373212460761348138228288956071145791564721508863353960309409567295342711587105474496705220569654374180888640499395910349323986111285708928884617679382805911230566597926500957819059432709125998496898592637026144342600375681775801810724638854124188392773469017541349814486542854210758507678777403417229666017025233511188017548044966442457522996767728282433390690415849595678095121481739613938426403677948392798572667786291659676968239880047174040974288761827930673929976264986479938953681329834889594147497222000793687009039281629576142102408130402243119075152668117010227219091569114669287901709219717193552047473545399891692424708421847169283754004970665159898572941680582477300361724447236043009167334395391888009830135742018376772258456901134844099246701105159934436276612047933703547318257101376733235165623036290945782623878090796521452764634167860983541183824082102629981819690699988260252953139135283509888271351274044460030338842219202879843774347733732898445471475066012292664053775585086928991501496437067569876528316246718012136868056887565422487788487295219394648054917767425743314287462937173698009467701638046070024529318925618589293282996163253328890439306537300407338791565034986535926296905964966274367033768801109916684307481610739567517983270091979611067879677687054395260063379795708193480233791067741118091189644601755091535958559934183284600007007530287770521811001948528760545550723073972750981560570901880439435334534043170826590964910562381933928554468116019786691759917340887652123280650291628041618774156342613370177085619998008200882151527090991281584331622939956713209592230574503123522125808595588737761580626577435281623182843492811419354331131807511473223454157371624661337015808586523270343650054323026995068503483831507780807667904481390378730281459763950544136204467646150038327857139552825788962356035970776318048407414245522244403643593832364956049220186876872785762495831606288647398057052897224295743223949726634676951738421365116711951886098491217676395505135313757368399948003861369675927308436625226436734639480994312275219424199285573869271865524078710548553114364720339438291885260262059402844515902131372817306226815828998094185444474451515296658039650089401955649885263120558359057936051137842911256227127805406038515745246584923147813516273661761475236731755047666386535209652858305267560720825181164041407057298619139220298621742792746984340881642743955884001552577563789552929075696311510850850176702221890512327660883684795450837281436965562256046170638808470757264034678228137735739234098065919950660036868737801264774066453757835042790236561491480358840457202038503244576074119676093267967009578644828727227705808555039933219249122839414014493294993143520253869020287592349875409572603051725909315279065209296624784278298380948154316429838429173454249814950848600701131457024232445841391268171828527259492768424721246145355038994770884363888308356538585079241566147040995864450183507426683488591233368657378438023724756940875375396182646100367074533100612514658179619125671699759435301766880852934464472412064385105193342068645925557576162933616529641496836811405874703217261087736581298320090550984796905772767637182505125900398450662698343002310165539472337931832886862881885841590149772366771173818155244018846773933124280002073208628794010797293296819223706894871365604208100655490748878045182407972589151792456365702599083026764197875961373603544653930588767327851335170866412740174245309866874102538778752737166616726318447307154803731270655287872352893546320928336347587817822777576319863883024767657815686405030247824474353451468870339600094299624806973699183108221478123717113420188099189979997121737686787502984013085951510743465296047607785583502660314911755702487399517105044446711726187455701511432785009887804008973215268291946300840387038301418301348571141987401022518425002113566898527688835239515903110699431918342589296356469886441959482046233406235724205376267668738415087518900496198982022580542407198935187460986363877415725278460980772642088410248526417097267015185928047488675267698271689420743596306796471595762717834819260374527859489779490133073971032535298785880749819632847742156639793108158240036989808878561163976488822919406936336680233378586096114633270362985295699191793054236795800785412277614293881600147483274651429857554704379783052519485294680740187324298646608120504792806357471662183375506023328360126990231210398120287153186319976011733507210651974878851184629432921980192225315637334757842701337881893457945524839325868320735845286164310490688046517798756560683289554694933234528006796868592738519773529582323328041438791251691072301288266777167242632981083395289118647673347401599375521669207943957960093269365474105816188884076562682392291311460279771393516901253506003782048249746316249057999459506644565432487898354782185599550079868325855574724925089540464192926651896139594815768021908019053810577522861680897494870390666040174420975401216925464612436735923666227186600956628257344125478217142748764027699713701756689649031981818021162287298372315115760411674426136372945364087811439878603787828197803207790623164801820415695371722073369677347493704420121993073266963901074298900605489987454924699866277195711693732662895269871497588472463803460396001122878590563731227180363362829588986439387835634124838406086967164163039825973736800128468353968565892763006361566039416667444778799181450550063736968759426226625708882187707518462833689092234267754790998118558579730015418416646602686120245886680523318838937680776987069391177643610008554015200842645695176916875853561796719361618974850923279707866174118401256284971816300690445247026034808935700634111668085493667243185956533473342486694063312937000292670323291693209787957806661807885693715717009723707389172537893789905311509306441335668344066083261560118809166387687503176488116154708694767989294871418282373615188113128184491961896796645756267709472607274826373449173366630709379897559474961181139071184259037061459396288485883076919921434576312074308259599188663946534500714218573517058905637331520589832643671754970395495734655503377539406475134701649382787079443466883184050961381846190034849151377610444313919162564181140740155712560866451043564810824293076236242076307984028286476106087011616613713905751326289920339393101248976550603758116304793361969724266688152945517884215306234755068533911915599042275547020612221768938335804947785633215522840105907579188309591906775227183357035388458676232989552231008353379423561315651914726592100225874417450554242095590471048235859420238200950967776751640492874144141715480374874188949579133189703292600311759799443913995857770324555808690931942329788442867572989811371782681700183257641498838839542234926756534004856599318243261755461743661666418342808147057028291512828121697241538704218921309350382834400360078436041070475428812847678310836069479458747509363683219391182316444285767480578797417625686833048317110497654859284207646630768699503541626930153876413230579274508063386815834684610761126722787611883722449478696513864875713359916721646145986824591610422593332497265824524692937367199702017846446312870908212918582653334493521298078982639305858419660478261479983854357084940938205491175594288711589377918149045625645678592338643376930786167388564679575552763883684101659490043741028658111793955882724547870448593262331179371786725539670696697787099061565253050139340245444555673007369440762648030791872316740609994652582117586313821273212220980267152785164310581447142563013956481949692470479474337753448957513923847539905298642605459032764361206039626138192443732445418752105741909106601083814469316952459990523369431847109458748123215313300514444694625375942844617759357798425519714183725081572950645868334177695280505571594321661967894450425987755662709860687678433747205583387614499602987534104703139135551751100135439581690478032062742122345562848415313917965658655205370242046098033746922098396267061173382254794024106855077398032509680826583975610936680515138674639931479247127585184154938928064994741261441444813404817732151657943265161275998082220687615662289249315578342912971485153518891299339574725599344095281708065558575116720935464397201568610891373143785155567937323257205340039077780708107023719568559231873162148258148145478801683056597726322125239470734292488712650358568619510576030658967335358952394900662252445472249462844363979072053701142120588522322229881153099641013925565083474289267975079728311492134239539738240034970376527751692085885145428732128244179616525209104347286950764918263860366451793913410409727366953583228493963763127676489478590295858729236754510256113088637821213074133936071097928605338773080476529618390438583036627772593774902165791351279580808940552565252289775705355616378650333660830869952468405458927017654558638923363815600860868437901555428856210026179247765374940918617283518781631621285649150755544961141067561439012983722641099497971200531874193283785278128317587368608065472876200599109367290887391308676142343476408134866823304516718925956125910437211699347715136294458943002965952527182992429614143204864608400820579466891443121727862317698069805012372408123506661277364986586925251054010179044647481388519919703167985796660429393341153849358266163219476590565857394570465460743537331169632320847008688171174938821758966644193091021197629938126547918239081239564956448277050180106508167089396055866678515712703244688398478979549942519056483989929961936261789218631297529897663598550215321249337970428468235676969682039290310102999646727944582694096117282400642148411052008708815031636947659259468051465035183036440264034238205792332877003261414734869556008735409301619325845567034876671043599510442558864779432253940726683416162388662709545376787241667479665246903692048521042866645219788234113935635899988918866377445542192443268096453089262291066485039143520836575947132088870891319372308862002136417245841211981794396206906456773479733596581439122998140656411413313167734761592197302128449167198507361094599516990047156732646762545342952725216232082773313096548058142664975394509060217579072033758108527187496738842631370854813347962288492439774946852640624785401506166356782260127586374046271168674290990981254393189575319578837142146021483969494311343078420074388377629311426158739657991027607729736165830260328521681942643342371818247083776274914288295927181548733115065621339309335418637397352487534875022546563431320691316502043939909224207818621125580946223389162852218092085197443237565776236261961804810083858655024561274912072649737895233298151001344071635143289748213514290720655578607600173116663741806171318938554200438689978792351236758457293744802712465978317976304353725762491903566970873925869790293978557437386915324240523590784219112839552896691760205829010335420920148073939759052864453452569756966004698188844596190250712404601986292868956815969447362514862765169686424312368879967867489792158320224353061729785725353609592385433475227734355793005164960830216456338192264244014049759284681973317630131183659847875622882210066561275452236982305921860709475658057394624707557062854635116373963046884795299205857123391640220409646044318892131758983562167805620387649218841333081505631846800019975401969763489222857879287638096128428637644769631626647489732361086857465133613624799157887199974680588280593723828476663576151723730089274559493037536434147802793467914323427274141866187090677006147795077533124784533149459698024132866480329492794072378289227537223036394572071456063325175062447290411270665701774296222506189724216218838802428472845691187260544672007429962921614497403196071916827762685054571342364940176056644109682836396150488729033219270029599035652006443821543887622168060029506663243212912247880347094795884169555480230567724435253418978463090420807267326055705083952309346962380336006454741996792544073940051062060782398491949092882116765538385968881899324426616117888500285827642721210796389609363691882490829370194309617106954605637851986205722156556934218126037621093059527622110817088519717815096283883861871223648607445355703712883230606994885527021437263979676463930832226531933837189595260429379862445660923127704369586728786994527756471098235460191848977415341661960000847208280155616450734614430654093980986445220231506827883814724247632521176335655409582819416225873491494745422594167057361655630705983611335169644450508928753043269595892426618646425473670524148871714626232490917699262113938133567328100814060685279961119241378952605283775049783321778980567846022927961105097646749891432225841149934888462163388772353121617675641158431021307667244480683989827107823102069501231492813950697024290710569029223600610877267791156032849529222934430721578069889667720194058726624233339046115448391767444778128006979525379367484133437795359155159227651859333936830374113777338892448691897878051242190938915638941263968784678694661199495937456953722431971791658902483725775187724646702540154328573450198419588549487048880844510488498090458035399460533201771760019777195913022600942256419936482069250862928810287912220902850663683972178224003125708094506020521931579672426765931489585957211242555909166909654125990089142072202134003434169705064855774937681139876207351536888518040894427282227950602846807981252047609148358616471972569167947817068668932859945883498089941466143372396034208221727850639415077301974509190222799108323271831070346113724523321809034239472011402433565900169193518387908978849780284818854389340071517749345635634093095653786089305380305300374189893033363107958004804359115064479979577769701773953136097249766407811154141461836479751829143970241577173654044642640727115637563846283371255443964662860959511688159080910642911018551548669694136946676500771029488615804646414782674020191082141762539586631532634188223835251563481509306318732725762466084925085992442586592039682091611285843738019420055063460930486852992284213123778347890115118453354575939816857956048708750441971608774366298617873449235953842646071558005596618511207169742158335318940763726692572911111409124722767828774561850019735940631617718980239570591361015844022280547305897487826502540037425593783186669461395661991263518456677626606968472999656970139836525891354930207234962295891270682767350044571365859355026474627294833478872814844246993535717310692347411596118922420466278735062821507919359662646205438110152530510150323826318153090244274290114731847824308177187277961994604060649494953304416308848528855478537218342672956698757456298021825468763504964130759235641820843385219055171283938709418307156827936807282514077877273153919575825614757839809349019275024906181466073710254319979167083395891084937683653568637668875911043070219847886226383049741369572666679349249672948580126548948970315406603474771548331819121767232828479747708915367465603518067269457504425119668710885911584149579730164594696789377179506597360952758641351122949228684555502952453357256617083250336846106666420687931346260310611937921146054973904036988915647466739679402627242523508784856735670138375282214597686365628006890325084134598192261854610085852902598293605489991923145292074724593968751877114077495083911901552435664360475705730977696007892286043408963180752043336800940445944036335628926245303312534671557257177249038109573430283925651753106725871294697140218672460675773784317629412269932922095034172961097290762695734029440022774543189199012716874933065232020989622452967613094111866758418104771530437495351342671393175867780023628997962753899139219539003492648546771972094538436826710095789381528371380930649500612261028820140994418682101304147994595482265798112501143863810081686077182102688383649551245964671123533048300740147681964097014430616260930824757472467208011113521957087240406899953365969972045236515724240819104870536099735593505042225320333969889243618907152408806848963150296170807977605564707793895463953671783621668524462225840899210254130923317658380261626116707351425908828797857090605127585105590655295671890667746334316354467432033606205943108530785694875849126782479841353914033787437117273957072775902577343540854364302001728964285846046692991292369568425981391410426848287447647091920746704525134210940772397509672925695237487794841257016745615576457415094935900201485976509029418652243428559923065920916092817890610168597063207052578992016789586281927733062527581745953979338040646960274625041150474158331615021789327923428364539863230739332829369397199868116674058216700320441419178952039811184008018609873978271550635668370441671486059463360819678083365996752979945382757512595592705277064782000416266562763442889804449353524310579154645254171994491680847142758101708066897999945967286399646726044309499838968226634448042385644550306850377898494843357878992850024705810477461257044206740499107566833327734518668516463942971571528463632586468395770946122575277940725104754948356661470243222852510334816988506663071653511003185433900984840921088674186430512936191443136057536839951437792139229742079494352900412841064728521852696585105665806993818949761254269559279419213655304528643635294052709695104197541139212028007765967452208669252035050808504118376334654843487397491530828929680424043720334601479111858702406194673330745106268860773185821328049456796866050881788358505914016573623290670475630586597837635600603484897772501555277472050047564809687946108208105240187973554557693350162250608876003813178068158179417150071653713065701655043522487269726308159079226012924739211014459105870903359488973382927682753715970425974401756128407325757538659840946973665014938647934026207300463366669248047651854755809259049287931501080956449159133713316345092391359075732849922113020995134701249786695509142782293251564421286280089637900686181112605375108119645495715178602336898044319553939049208812587304644756923254454759270920896586182691858787241585637140123408241795626791088867354036299792049140556787448864322337054757031067866053768785522527235287746486241333407601958589096263516457762786085413705373396515034353782311218316384164184805302015117680750921746587039139035274367945436102363605328340217866762945461709407285920042131916431802442628862891069816725042492051360311179460927580151992966960565771560315093487911633812089127639003112534713705648690844309008965230747275910306915275976174742238677849891928114618139595943504157356815263259003301592670831375176149489595170823706810271999781097972130794542497032049454065429641835755926514975394082994631732027748108325866246069586107102324607622680054743501126015477213947726536737543348771548011139907184749744163628698847244848059076882237845333138166906471007791223680925299045331393018118300627162036544003321468778358833039290859435674964397247184680158582197528932320214416240009772065888095562133808087839994826267654287372922376386219031673516838280060700043811327916515187058103600660241309859640424802664890208749211980892408389679585628501218465144676069227771678474060400999082428504753676214092995646207206417966031397406102170355155190990608767019221792955659545957261939621254454922710078240122590810682155853154133049638396172753682118861643420629921666929340845640443570442283835232238141010678763728812210080571976609755046997290231756682525310127755095649239117699601533454719147630773772170542775122177441926971635912960816435884191406827016388256440645973289036393736537081420292732050053375145395527108042370330169544356569760382136861890962448708575453457616156424501835844826674379616812670376582843326468714826046526338017838120278773197085303535267029397209257085782524642478841834061868364219099687658403968388940629302670585406875579230808757661927927407328551574454285757539514177326799756905112157585521569193157245577108424263503093356693457362013754373645641335653898078391818660386738002519152770623997124249183851626343504893490363318779894757297895766405753379456330995350621635777661211762851378330631918989748298654911784921078359308260620229644437663318549311078107157689170451101040030215284349975830756419367830754501173678684691400796763730759622497338799003454432838300840392005123010090925646745958688957576436477130302219761924616802968351481264856697986475645434561053747276928499747023043484188325522664187637623306429929906330273565780626173675164369965951291498063071296658765097099293945096638257980671642665222128988085984610606897829078925283788944941375177549432180231128014263825095307415608338631173439710400517053031956020031306659027992400577013335422247226582842700119791843738800659367186211558296032088912535192598305773367205417388378559229993703555632473021710389325250751477376139552601403141286816027610136701555025555905615360199860043325722940535800139399569978665985245872562324701551186859643853331004032878851331742151562209342768748258839241637430077037383766630000129070392768126995888259759764364895882806304866224936087684345807004894199026611409594422889226498259755492183410424654594811686071360485346343608769204109512799165722602491732516597610548106563113759531968068032427603861720611342953724465544621356155525949067185582795901676356840077533611038615517997217853191351493672915720706294699915430719425198535847654995464538239973956295641301868545226920009900547844186474352733432448467479477257865414049059788183539657040947496491151839725149855648708556448956163273149932932376538790819582470613788415426952503244910886211820392359771090938394574959210583266933157745089224222079499134750676203176729108663600730170992996638201504569738819495302069215136051820033275619693512913471866416912199248556865082623165323906590255807859835588362976029369767574528635335915821001019330771286028342365569484450312555379147944564034171409984288466464360297238781943572208171860539817085188254981689713327080447127620700471627058384345420832353196384457085865671659509342610591098847124988919601077370072379508788720480018586665881711756808459939346780142137014462824032856531656714564613918049434821892601032128520862361489905122665824845281238134870347262851898708920974648936103850542837240540431742715852279754135139492144771197700419670900382800943309400274039780764819686236146054987035066467158761348998258675152688385316800872097376534554988154670368448652698101979289006772606588585717366567313454187724942063293637778457696743226174018071031723373741833907216817012253243623468515754346728271160264933452303398494055479708323199732984537319725624601549420308627721720134241891942447566234018926122664339160560055673585015198602708450291326364318776096136717635718358382792196288563989905129339804824426546888356410582595710815409216575358908488833673476603413737511101128770475363458509169233168768999305428251844861087415100032429511233184526772544934521137868680845631886556567114654316219880310363307172044142872905110677646092492352005065760358182626626856298890490233608690313129747375861767049741371283604462689248644706491286739707558053259383559690874336802104036470240546237827144911685941431706580744956885620040816053391593638139440076068456444837336275616081221334676590096472613556503718879870905786356413800180738676419835936978116393837707066740787834597127709983332052759200770474349897042181031893843492880798773971744747523241049981880294685956864841403815679455021398914171848163191896121670320768622375613780402765113565386106578130217651308062216456368964895847597080057461161299878115244098424196156817398388450043057892452052575229594908282584056651468513711324361655759785200956614235365300933939277055056844822627993844576986687237391333908013791446082468204135761347274960102759857315296091543290942510652126369391120716379031678553026364319012403179798535032689550813554672253061502000118845794435067286412110842548702274240406092941574534818732096108814170473473720454326117648123935193331255698929047692364888085441467758155584041478835902217398232028205552131679732579903595336907717301122324500179860718243772078242622539625363805694411639920823046014769703683817533875472199306326783196314574752637178541341587644016142952508035813923586697175765476984860150930785889978141845361625290226634930996602968219716913548626254127862159264273116235161629615561402374817374066120240148400474856806588333953067890158734364557476791135505211978346074699577147101357549528287101979597463827442824153454606025192265871183908701295597027794877225242075571544754065555440725333203630186955475829235386492287287908570880403108967735105646712682415147006777054535667341006379092383480835592953377551709993569087513157952551843537918191758241388993698302469760345507769561213660112511096788652249464018702161790418085865978425201021451142411939612697003365566536740122907144145470839725099611658117889879757308655447691861316435586841880621875592937057995453097597055125387699347781960688989106649930100002586345399384377253980555695103945900016131609578555099172165654486227045629041017247829538641666273910299627572144077681910751414068804867947199542148916503960856865113402075909960715401483897311825290626266579983032871752317964209745942860817926785517755315598388740712674743313213385379379064302722967832110421066900362909250183422733237360851597984865974477432711481919213334700485690153536075112835775751787880644200304067212552040091084520511850276023888574887797917137293720589166406496969746537375739143860013916917743223099666887640641911215762500358701054248296132136556797336715210982204776613989518594245002777148792923268485573936530744493118110574571699677960306810974046424993069681288723481523757224785379885888202450209095721301269271998884425986676132411446405810366395860373900951174099209553650718381384836274259643740732982861094820188569614076401085286980905974257597107614541667681730480850225932900117145745288461199469234947750238548261932122996640960896431030576403530891054827835182781445641575114035865084046001628758313758603386587829125138029418633659185594822366145880615521725062394094148812213734228276946885569542443064628411394674295918671963596105135478321056090078892799535171471202425103385544505702624099912443052584301494838599980780812937537707431898140002302224813013284378283987225911912136590232036956509362947496362575142003248607141469611633720692921299235978206869557795312395267446984292396660458197496760508727454418585876518203339131561713255309145348454465684930007432518039811733933332531973218390955028187435704968358505973003414110051377758625370667017385175436115671962283956971018157027492555293588379144996642868027732229798360098027604346907558155894524264853093164797589734480092875787583914841119484130464016132189154491059267453094789999204072705425675749014891966691716919750464232560978519450044697562360871179951352870897737454380070197123719606767478969188029294333229832390229088485721778343302860948123180740719473936098053552609700792054927910481873476040620427214098745760159263480818219485145409255071989582094634103105232887253252820715747731701721581107216833480616867718099661707815013713850311750089009990028181055630692486091193751878227573060484230359440590078391305001916575982632170959635438472499805879074205763447420324205538072865109474526154855620844500151178509887735675008793701259674584087916507820271686865780425165005692847749110397550526292743568959591931347516400522756841853341964246931207232238534721030691043806718155172856949550707400655695574940914718175744296140258146070759702889740610744674436899429301251454371079476325412774660002286568497041981614445604985674469355054787941626033591585945543891816336010391287491364433669309047893569093582631809436037292299754726604496632583750623488405587520857559369197257259972984881240175101288374345869096235915154543845460784429065729864507479718173377324850816344977958198798105319771844571969545175329820416579341453768244875591007240155890943163108654041106544625088844034687445992131665660656427009512179202038777018946171116754323216724375830530226703718251346523689061334315635443007074132731459632511241992896183188545988251611958582006306848437465760630777357402311092949249330720076239249687430539118096683944760018944792054460868268581471928278911718887689496102424065379854183816063974088756814334194601876710047629400160032716494004652899265824377965130594169989353750010417422070721165463378631325822010923256393396794557534231442990187283994234758510263546853952776008060253925589813838656119321459671432988195544529383742115037198219928846005652206271760828100486477922168957084312384679573053955916847589594425247364182263033326868400948636421452979889547092571513690400305525442064702772853200922486198686127074808151299424050222940437176792301372186980666895057685561683007042186386502753232159099739748774437504188120108739195647129329645497568331892254450307376925137088053865996139916429324091806778019557906159602417281304097301968982639023202490002066347456805669159481554654743768670300316659679266486445209991783977830577120904224773983409976403198741275815566726391171864355892162941062404222165281759711797746936288443261270386610725504995956712283477285181304938283473453132843914597185568886250272357151862494395798796097625324916237702897859205618435494785849265089222704466162094826896445863165023011252755442858836194074969196926518620411347293285315097255601223327403686269419180887218498984135255835236067476048949038066359312172480310726167149648278363005126081961470777548611675247564794326068272743640370097335141783655021212145840592984161302801632589797710152069947716681646626911019418762945575669392721169177184038318283581716561940492651139141654243729419027178501814224697523885842670530354165795416742112491721367426585244883446039977090406269483026542122640587840858049640732428273888540750609111666828975642591549343671738251229754914447325064256679030020392430646111589810744561604179640001379481134837129400004552187271345929649370216664873138711477748068799243795252620350517605124996565774596341998108793979621867444335267884046898913782932196832114382329143171945069284266247291648434563692285904081425214685106872473141104392193606825440833583899521172661615718519386820552126457746053487146062862694293996393836080619821907899839487905032572013703267382508651962300188508431078805648829452505514581910060171096719945960740925800500014429352650231603194730939056677666339149340758356815021876287065338844132931235719201739313758692585215053281517092311266938057697829159988451531088324642977580582835136210177186502474499114073784980789625955032579940919260008078130332291910733622687839382918032546185404707216847594430066370795782052029162875171235485198338548952994347136074780293391769516188399206965528113078478296168187152271859929807642969954172815402589113349059269643294375527856934287023574027632291230018797820841233616038732469796025450185229141376382068447466925693919760949831332691064387447999296867601951491275235043899089847424778936716957567045264260357622668656802863873442129833643344919507125654901051551855707080508061937949059100750483102742752525002055305257149783814530064794945504053964395715684824030848604971886311060241964325421123560222293714622334534201230922914953799019898561978125934819406168606274665616659041376641219985839912899085184010795589622987452395212326919277720341249929493012157918513679697016340290232761398220642855237638934278936409473599195889315165068227846412906997437767843056343968304705708313665443724118815432654866044943888380304137348278191345568317025937863427566058005269394798208565775212099817832472441868163851468801598176859777023826994191772316165251287285709202762877475356643516597680319544637377382448745614327963067410691414340609818522200843524534981174496082099011660890350737520708708645550394081400322895321661879860378022250521373741973124908168650114531203974384027380717344452468257358702222960588397042831736212145291714698107914369328747555442077900837792652321787058456294088436896174034297814507899229225773945252623388952911215662954493053634715738642833431406512323545969633749976937829198246180130285601909958512005997749818758830204422346939175646529131304903196703797961710060913139763536641355903417857795580879207624360965580637015139406616607749087979330581161398056327210924903825864982456929137490141947539432243940516876318502691606093501681842757549187294309296263809952718660633306761151591233315359955066905972604715429063289724240174627453779477957345805944891993951859798972189720643013592428721164479573593634496644565550624353437654198347259949612268130142881399201213007459135034752439877120095664884920980977702061701997416256048839982146916165573589064357648297419472286247635258052169905725199766172806011588244910855734680041519482591101325078411588667581752615140906519412281819020228399838871040585798974393606596198065847388542277866083371072296943081218864652140450297434913560288038780341236456991756498567511497203819245081950203721464842356106378083865122746572272494478766613583513499027897131579172480809461420662904809042971329040147994340661926139856293259964561040354341851055084045869387470330035728509917999436472193268167468713058004094124946982585449611286309536164234160359542122025788124425940768468734105229578635896206852229342370173268843987239907102243517389077339914948691758996617664563004610459070853727121568675985310166170443774313392605816316951735702698602559591322549703804663301832570065579881190464559704464450636357240766408992580086909180719705611374677472903104274058410229263132018072008907380769855956892308540419747126084779942525561989939384618411093977479254044613044688851252613472767337383776408800460949483867927606966582504152393253443619547629265720738677602001587388083603215288936723646519209468101494128624612862907806623860638699704766256792159180478077720960331898740525106953099687137897506399248703340495743658218676121891117677914822335693943149916225897115831883411584599341406990881952373840362842866470385366020793434873589124166405518573974834438756278554060876396669530155183574469537625735025046853895590683968200264874850310624463260911459917773341072468226501005298233908180840302662038775301363029989600372543695209232495765749578591863138769030484019755534053524558051290567478052389228611205568666337422528004259484115360725850519522026155393733969461736683399197335042969630210056671340503090064454526911642955743027681422037083573870458648322442033689944728598367997618901989165182844291835205091900045465096412086983067440332476009939724744400327537164576984293393898768203658407377377112049859665641620848598485281060436194032246793123861482721873982296028261092505091118275145852019162891804204572207976357918715303952741154128101529428439390115895313774613795887270056523182607619848142753209793899367450890046174870014566819068793588114284985903288153319938058730843443718571844617163459765222384305838066654663350406059464295864678420227152193428992155427377102201750960500016278658205934834688391368374220206690334286553134875909939980156655251671475930676467936028341496025349970748936730269732265931254689418240369026173421367457580539646092515145768495918323479645513270317685922407577643280941801765271969243308145805107613980950476002024488731071289820009602398514497668355706414396783772828398643199982354856998065555182174279625311343546009596733411251845959273961570471975276373342675173667511077674158143140818568188428896078142329284492546590175676325722997562109646030838450453628786025110655754113364660740391689690896898330462595237119817982315003206556967808933588221798759080575008153493915112999060218443288343589648902642224922101278582328668813099204416115987733361249605999994270463030736018158745918437672316918062827687025023720089993322661996435184530028103914086106933027817846415111832792966212003133298888892831476863307104577955745026498045626891597297870967562711681677749126280902958460040718777070238404323096935723176223204292223916516150704412572223695238129972790764247608873103251882884758422318259650710813060279770128163015258409450663721155818721365309423847950091736469753772610586978625828511824210828608803422232065177414136576605691859216508540399897217049062682559401617365188248517586630829005737106849471499544976394679602932553755574191823523840648992320837749192386576387364276406946523364788611525377983116193527108530743295694605213101190141217188172706570786468371244013448371039746580844543915624238628871785128115719983347557452049235007204568514487734267140128219243396223326924963294876759358578414588475868747689457663551010505597219983199285475046362066764578078549286535275997385958166261267830850266779590534236194299958460063334963808932361255456276813991860807206461208393161593196973036250226716052732485111491977043265511365851937777513431560888218192860545140009407678994502857433169005790223088787998937569080149848690923728864192193890672459671785594416772371877199943996096414105382334994262683932336517421367803258446971236582975025929509124382190679538165285276860232373105150568038768234272951230520956114683240791503372899348817650101480024085884141953539893559112141816007974290253605786354915385679278239386902491900634463833569975961700332551297232285005824629839148512408444184700671352975025633582915972451636358263322413709321300542784459202415010913337034112240056588404054843006691122786234936226481087329264389438911126591458757340537030504591595695646528922551843694820135069535102768049285847276966498801660856344104522838642214475474742934438554170832002872782268629616472876704789592487166888268016277226250958465321633980166200715345520683281290649677624790632718769846016260784414847452113218480737844005358853219792975703851430411655633577174713165162115990336367069953853222246896927675188544151319719286927071130429512255604870972102937916288815319871144123627004213382648011266740022625056214013587248655292112803159314176077878936963819909100207219258117236719542027707916753906312511563756351570517722253975875014222904082430527382181184876038961573458593209856798441194220946341842956222870049258093303290367656289576885446162300641019938338563705444567813593396421002955246263390229607841926634174745769597985435405405677432710852480016828435709292582165327451645422537065506384291540808706607395184632774187512839847397767013524785061907365782353751783901357962633134498788409859461501292982343234094183793962762826583874344279653959610741814374529783389763438998068900203513081767765398985659332614035625469138568680815566882681676826936542507432298525256055389295190215687873311928663576773280353001364476004492713633206455577698076002698650797418159567734346984164171157740571186342747105941701884964837801672608264620616604366805359861046222538011075754161913996742574948834958464627911469982805764287647539143089753963131447930726199685804500128362479520894449631277042922666873368755834089309409606485679099157168077423890617289945309992510498987164997912030942002929209593008475541411708629600864768511477735860410049743076897494543893811116605362799509768397618388107998199790052868254236503991663842794807457670518816958163444188056940100162603587225783312517108961433176354454057445683769159037730116128756967732613725580398115225457291066013352049751995079489750880992836026398155124268242157473010703017098588709077313170927044665826768628399044631502970624882082176335130570348891534781111694045173549921319861248960652414079309299694270888165602061249023637234229032963528301928101944942932396078722249284554349126094746438327951276967467707537890403552473576062796876818329294776757408532897736990671189640442849845745147699426000873757895749494425248739388687183551282721965904640008918878059055915224477742045397371478231568197978829431351566791546275922248189900058367732218183553009608829656034155792863069304341487887964379665789844956231915202561931675107477716770158810512727517734146542118496998680144615949437963318307936541546425445238136345622511150405077040834131822727908223638125642287176888558812615858609179466694303830702238738410324445807850870709507043426886091359209959655646840332016405871939956543340412146120363842383539931913210608902400914339846928636030938592890784291748864619456641579470924082770342214529224805884205988521411896343160167078139809839364567008829897002441223680881329306884740191714071644936588266595045277225986714932104311811382691391141269796746197982596105828650899977897415032050848145414682859590796606966512699528400182661107933296494563976939253177443549421921785188754138435912976575225289146238291441533454880723658514703160347571853002793687565494419980138359521585267059083132004122839658694257487651907472147092276466747819811125803939186946118834755729853297617316896004356017293300765890489024907825190390735168029870619019249227305932581449105383327935515834765165666634565078312415998886364798571261175044512514587244616909593182286575251204797088234612816205663822589983935177567211202900864166539533656716445169624133766455546594629841584973437130768469740976682370698213883408506853704361290108834508739956091205552821255779232477346184731800412391823076617037838804221795090668106090771918191125323394186500605613958237214328284656234752836785158845715497742151067026129371930280744217798637861105309189903093102206931591284939474171384919850176316947872880733537100134605189907868172592499557227421074214875879302668618449241576639356639444741544508907268221272849458623596480392825863050520469726656489565233382437280534391771836970215599434053344437651068956479203256109540862623479265119365248479970165317646554409015798056522690879657271328511360650198083971024301727186010758331211797514440259885982843484974549018544940389215859276598991756288285809910398291477374995132379369772823849864910821985529455170190477539768913073571046440250713960832150799510982981546885410550669408749323621941850050928053521605173015583014557805880746512415347226461251560905738788612803201055667995334370884019887226531781025840151764144995312750239310618513681560508417342396515996854237769371508290726123030347827766965525004580895323589848782340668815509077756990610295774949698158537092718563339528376926188061569459312747429813509285483464324436189315895037436312406432962794783971047624656558877117949828641024477926872113493019009622752106083398176165807926304001689168464259279668426103793239710647709465619843376363837444484213700294198568660099120435916356305983168539954622139319588927338081819721250065746823752485852795033891605086510237463145131686608362444134918890145744055770054766713872157255372827256493192572723174862997815875732822127795736305765975999002854618854863211063789348814706100992542121860390472632745090061896326013808706734227548313728349020723629236740549673660029436791371961743853753061619501365413842302154454390977413898069758582608884045837870092287747474714633478451390127118742652933879564863099848086240577608246449679840290393453849466459083975190417164937614561520484507330719663780302557319286284624326514711880952303881951388198052965781352611704671886440785021804836031108616262108622175279901332564109108247280622861881100156623583823231868895217140621176967399099305898796269771992439445236411689802008771154225422476033440091960249169233341211363592119065148843431577527638443247468683541749364872924202317438787446801284211748140077250422623855832022838581344994284471738459587917203443343063025619255188685180444560401234842028805542228443813491684723619986398181805504190963195079410099546034490926486361828490359149992777733237690024711749860598112909156525136696130748971334136666674536330437661811163613168419925570913142687628384084433302371942431413063896330391960312595995215880735437929926273160421043264118661985215579170656755379243990097743762646720038923778456426660500521041135805072001531969982499141654187314058568170736831287103759064901456454719880198722819734087832896001006565880896544515293580278346456498848217080162219669552706542011452243826260092195232882334055396322938293805781055260713799544321739067567700683164914619357049212346271374190335731296384799467779622174458371753611645927424771457193474433041461613828959202359616816730532887425536495582619922618077849103664544814178600713618519488886436091093590602444106865469692908836888040951902520601302534560154902286235926299106845177010537084689185279689272096175923347817852790316701880154229714648780206537856525549701202361953435912967574813757662806337424599588241176022263801664353640870076804995012293319549496031913257911966292518809745158625550117817119645434635787448400911373087098545151292554479630376766965551633909223372232866511314007348222427056810718875869967711211555381247362369274132960588689757396545988222063836675275557832185487878888696657433963736199884682369191483357931501322835085002132256615190403304768838255343719060116965688377954215324730813286364583311737263870563276374683329518784771078126517214457360972531445593996416221133386870422680107893870273179667054559288489798207717218343656221176015444037194844431262246401616848790792242970467350759299594875221026033794640294666998783834377305147450700000420899135285615176617728215946838763318207023756178443554226619382367307718780098930118778831466477176848127879530787816511872343160658579297889386496349460657941361612027940280504509011401981830052973446374145591991968957569987341520615036259564321104840207221839098168463488767599035357658504565065508177112192023049611767114574716064592328977666773596031372288032053758235795022527639306435709409729874028986735595234345728976555934069064740545056826888148382727404540146633431087679336934175747493656099461467076958626402993017319567955685298166505004835947272781320204646215275571170451631650844849242527303543488076004549862839781293653097247471601058676099292401719491824778978713086255894231724667955254880316670914298670010479117918275214739393152520348404215547459351185485974690995055874446582691844852098689311417769429588487875166771382759980048936425663782638557725847480838397780651059026202887897145648026114010907904465924014926821344049473254464813572904380199138920288378172967232880373369620593548497915521957435026877551781061010648031177062558102648850762385985800192065888984773695972014498254871556967847184903255705696714844109838778282568998109106676734161708126832810477992027795312839269313271015232234796741561921295052884252201779905844421390859722093859177073391876662556297236162548623175204707486164306476607374997444997318639346766807132154175604479804205117444536343021288073065267239734504222667414738874021763612518416413192511150019035914115379006863829209077109878579630800505534387506661686205266859095518606126411641103875988067257583191032990392466304779566416707670096766990805381015333595540836870743078031519601445296874032951181399685375642643479441855543540675057297713863715072420592216981314932541630948794950091609125111828399629352055278229312905882261025442324182677721363185883788962579532361781547460584648963014263631392051727497637371961614968471050098744818890475809463946789203879726723308723769426579877938908948375493053012517980850939232046230357652781391829111078085387201342721161584731590544884121123162470027318027560584882547643166177913794185691474999097263167246113660220561679656324843371509300063638771860283894584311302757522710810008882017027994567384721554054740846346432113351270416808440609508152949570939696771104199732994940464607769231233643691607614178852736246453253894644391178220416824597786917731204068442058910336130152150653055914415307175376489973146302262673205070538921142531551396749362736184270574796501785955432609503457862335363477861039850101603458386600188248653411573242045544889743010961824429042143391413208013367908429248463509306801938714019817760254286989322357373987089355386284880744910647736099094940168188420552856937887527157865321794226074720520783051467973103796899959368186585998217004949530832125207935826305336560649216048767948719690652203306240423543851976587827123691634535558521111778783892720031718465158731632928348062717039205834770554536568539726874038222126695435738588916720460780700951162077077556131626534597504172032658774214754953407388281258871480830328328470111722889703925237741587808392200238543340439250801922480632813607694272510198049837831946100948018128844314755979757773397925724217345841355779244100410972044299712651936940704406819137171717600809342673950283757518489946014489472549275164410009148136629665044783026582627377395148475089877947389397194704743905520793668406611587840528540303316122089325537140669553097491700127988366652967163921993421418242451115881293085979366807866381306190057006095995599437694697661348705363843493653008979160327562879478732242826425389302692614698741585756944694991093029050329167120516362235848605201221875837480520016448185444389291049187483539985481493500587038107749805563622031013918682582678402381998347035115885902190889690668857193173180605159079522711984266449534138490280215944730549975108291452936394224341499389525841852419001400471410531547504992100809498175996139970871142710685755772363767301097020659628185054383188195522616957038294721124481423362466157993746159380960387377958596397893649974296752144496673226683421016896752555967878417305289854875212388781634408643923915557579207742342820285096060900678185657178267570857322314417218099515389428835707961139853583767210776253439481461879884886057955849152630188726378610458574335227716104984136695562483625603792886219359374624179583495910199979620850083020870395400753513659703312650708610992320006025649601497111527420348074553963154698917365388406998107410381866163050142906589472546623044699143454694458133422925852780941413083297360690156887490847440533198895266355459988858815086298340411743709210942737800017243880300873099035305647983710583619237719941582748982257329017749267188701780375431463657690870270317347547105312167614800224807611674887559847520120374845263131550107778793587807116413119937993344835481364924515881482495531475501604907940106644934731292356459100781375924996145148953296352100327512092114882824673203312828729590112171664005347816360152761842287032862841767487091875141711633668450407763363087820205863028733884459399388322272312077206458870543960740264919681892717163915197217221483081143541843711408783503706048603006715424647362084048106370291969376580824309655167298985098704889839811126017509195106318584378485145274124309315346572907118197672219084538038821802522662407699363567991427455952240545818894793048886164150241776507315151191675739128710399102626146713435868787032120666526084272771108048809015791586923422433255864661847451166516379110786742335343854345340085887330043726624712007188079356192822131479635860408489204135628135946831381291396273706243999124426504494420022959790797805097896915927448377609918342911872073386858183448229419499003775600038024216616904083159344093999021227969730424026179038707386557181480456886368983897302868873978367090311495118077881425027990996638844632899250409352540845715341546377197483193983618921174932710447046295875485386531580976039180070316159515032965754959797860355874445962007326322881151317539275969662533018731879031922927745819136748376796558998009068892103805971766933738978822948126392774871616612062844633875676426708824086206306368554601340480776244518141745751656013568457835179715034807913636734056695869744280304062021129874211761186780372126170497722032455299106235211540835517208688787485862057222227861152430855695798305833568340792781014923734291798415644468865416801723846809185631963589094051116707789883462349266941069925991710158087995642676677305669756547245227741328557624199207229839172328704490996024532568157408399368310265930208550184514480541039249171235975155022649274981759251891483818689048543503476361632299464828569681814555754462116980921529441390248782849534531822753256074518427883058842709640183174543015681941202726448700034459240736734296391163833619486328194813789965067487846306102598781189688955715377019883465497571469565424075894393985495773579563150411199985436935940898275185856950720927476917196705870665113631000328860775410330230594599730428562757732103622876686014729149195591173934574756533884842310642251233062153878263407494711181285888436067541844548073262207522005471048752107617044576444991730026220518660173427663750623858528524725842792470808604149741730417519856228159575577208860320461072630889598121806603950403463021345697055673358083953041804363210673845399923887260386085379193234115977450026102423869003343692401118371203061506725256840273093500673620944251894884036535012927781169198494429394940080311673265475566724578886138532480306282338258676218268287697867911008949097583982622291751283618720301975388893266260143276081245564987619424351581956894955175021889257017755221044549729826543431320944853420175913419845679654829294195217760788039764746997798163124291302313964889439789831079160378785974145499799023006121234863649594491623890638660364776549514630541795736698234469972589990769923709213333101271845496891387738823410784129129275370717767481796987925250237029035499746840032730623751240058991496804403697815567162809696301805276088600157556287603826881119180363103470439573978096794509342547842038360894695893403050677637054402460342470733405169154414696862352731375027640615985563670676675380074570701639417571791839242683998059916342024176489761381527767042322351154635328328107517434864402002869805919470459436789853781059046686430915376091046072192472427798038032293943667770577846768430823604498197897572947962642980650254369406327578931080480357700060329346657369422766215757655431244738455035956046277192676406830952818977757628550704395459615388017471813114084756903971191983252488222776267654039449088132630451094290425361708771664160882058215795397098526926339078083406205426457821540136851915750265881410337192827868994613542939487319646958781651923492858836768902011677303810476308156037494869660304089190406704251295455612142402588847498562922192838601200090291242373461265190149318059834175757279862363919730448142262743690569463617167237398754138678873278471612677511504437330580347039269627406049200554468506294165023224653418455104065096455893411165511761037326200832148645179144299381731360613340296182659784071640762965795040515631755720627997643156613418650523738756714654991094740647655760281693050007287597431636624792859751092882951941141754003021999597045771369016279917907336142882795048790048676631611125259105876366749731290028033800603236533476741538814288077366526187539501542255324617365865407842787453270828142093951851998548160374496168435330105273811348544749560468399317415755673551028522680750813259780393585812995826078424758115062071160837321895109896333279358568643960028635899084663063681097940140904318286495381106975877890309862100377901520370184859750856943758340267686598171082693606585444938728473968700460571726345141724926223591323235282302692046859762158664719607291894897135192268128487768277705599371551736948273999663633909339944536844746365363458156971090004248394256993391825310423085928084465962119513324902114098948560299062453192164542255669380042049466767439487113693667753303370663477959599137900656117078503476742380903080031424958091757024862494587758818482977562852020501074341729557364686598454572167213204555028600830027438522831611313135551435473531036094469446388851475331115982358243916383747360317649407772373852781876973886009477766177245183609158873270417180672270923097902938134236019345077549947822134211371163042770363836113488707536639904039935594570188941654835464209293921196638450661154444983665592316267322315071212828020585154859982424171607149686688802864617996153275951236426276117680558701366179782620465399230750479055354795715224056608411796978656397569173124623987445022066661324800674007919689372647781645675207083793307382228271530120252331970357324211852585864039451472924145593166134111457880689889832645414506653680214688990312464157697896166485028518800550765474147903437514154551000461027352028021145446703983488411163942970013259317890279162537143773312427825520045483259275303676547518666198040716236738867323723334509368919324233741950754488566507021963101233595881835282242384995305498857404826555892322802060344621111844961237512278678661560226063966017828003973886265054308371641790831159903089330256830326245675748959096769507098020792528794170309169638588283699382353077894780300815902269944812247558650055374039413648666219720152758490695300438925378716097322394782206165246745152954758965475070705053485856613810385558465288345292711544504934259506291434857862548431399801780882073319561478312650895520060611100521025004927666839598810974643360942938347102477111703269315999433544060564013175590892818736449294255896891878329962767334616664796107134364062786843477269193852621557373212128715825297794252073532793281443664258350393495133337292294383433101769860211145589568200737881046014260306340021413907327412290403332158163431396118869320222138464439082201917958707184363212111788805006063040295071777601687409895809779253382983437643290009866702512937275492938576090778087888588191627436338155131003904357121362047492745674460777305982174574278774722955164230650796389703280157998262798428707688843968020798354289739568933164599943287060719518284437972933450716649116190417777901810162957777947271941804007921572874682269025631832862240064853076465749996151705686488764765604428439345635055810677306952130997372881275798478058968166376222353393638075151402031894997560032841301466003743936328608975079275552507144031936818908050907323213630914360861788032476429242251605355035230481194739254177836926761755212579986427120189093665751495147743107713881882958269663301214972365334677921265836447373780541163206553346812479736593749433277205782258936689984560333967082833128560240226449343114926900248039943113531354003549297636026387522169662825423851838360450737322730739685648405824123722268180093828753877734456226148811220030802362233592464371027290656167706943204452362240015011764451124816773473080023517050168852141757778211049447860060921422384492701551738716302157139407486683078102028222689486387765759827924844548175677910190684059182239753194574658852961418907071432531398783271523276163306090680033038259306551036819426691759591676683994662441073293382677019273556445851623747583984525834964116291679787350022332876343223815320982715583538411680810800712043935302932322265371851036598302126237693195110146902208379624696677430632520424466526546638928376051839462583409224136363518789487621257194821761149624725128285928206277442627747704749050287934132885363715216938957351317617998083294592628193111987385077793456488770745046244755062743360234893321188283994276060247156055271473913888945375338502459906874089756953708188949413573377123902623038309148807376444005063110459153523936944065755185524205189636707216466405169556232370538126997211706428392935081427360311928745992119861811680657226337077020450743906872083620681908246145375510444544257082038899334330640235960291358430069867159357142925522038355063494789898754567641921917442517817223292955431180235092956585119501495398368609654912462341272774526806462934895869544363303244896234243387159869215116884679077366363757073050423319691489319417922662431235096299297999387642993301791304424094126149117234160482398102631726850700268367969284210380658214828319316191616343189900831733971032669061536599903269960706259419154005445773037493083480988170321065208456482785731683954597492703747518634953548221455125942501367278904152767747647469299116162652894046174954636137921128378990209587572137755896043841185608056090545282271043644707905023493716807995859934591855054014857084146208253229711432555715427016622476749391671789511910138686890400955359672275542611894954508023824067048598497350677155186803938977846264370954410179545540194579352488004469161394859974742970966030567783923429813824205435294941718617196148664841142886014779011597054626699264283482999357326363553052210327448604488317271073974558475763030397220770660517309948827242600780052830766992931724537169729199384137465129745141887475869201506355821826989969227528782193313653996822260644514713017285675295763845191877049418292668498502149250120514483545791969518198065038230817901397886851761781030076743233142651010432742654655277373418363856220392673970783651695229752004672782055957716025673355334985863302724657823268904319834547358181825072842751634890456422682574607505728169542384153435930122930832644318118398316627883036638160265899949150735446320998959775425172844521394058967491974419958750318674408930243471002390365520029706821988460060767387886276682283794835080389039179151556016828673188665450032562625951981239767584522043181320106513438909244754588048754419092501710454534068354040194065505440365426775342952342535438777578867414280356436980395908403692811643854366380214388163912655609203132967888689391217830702720763045386365206965347254142415710734599582714753924404202179500087212441872544932155928557818726540292642630051959482234895887899184503474520348544246464944760761585289487779855510729052638228781220766295014003607517084709223077121562229598278448796038910752535264775375274430468598606444270955053001606105444364521582003774394282606795001584708735564925660647926858566711393232454258615297293582764423437431984109150275645609960759104048905489085743996281515826348215277992246876528275181625773403013225828450484241857052685509438431898513697694854730529537621540374351636131894595178934212442989216966036385354103391591145256555893008656626808204089704162976494572976674293432229933402340819936908683598383032698336741081358642664314014530445946764156484507455443523680498556857297731825613392370604749056837608304701074045247566009395880509851174035551128514511606932331921878346697648698862418486311594803309512801766099252221862598155723566129367069693840072183489024688357318216481523638102961266395996075587557365427002037848542756197615278222131739057641806872137232230625320527560831464826736849321175296195671525589696621194996409317752361560484970453599802756620876966969419760916210681075788615298515784757363564738094880210082465611140666999412091106622055349458483507814426672256957730256091231057783873020512867740588183230604289576914719871865905840829759421566155568219467340853807772613979955207887987984311321594391370781491753756505914533910242808926052241196337703689628039618374320361572864328082597910875493715990212356259475390689024139943145844560526119958265706789424335008074736384699633777659076537519707054450544194973387938892812233185624605587040525247614048456716472224396443775911053899783311395883937590323173882489240332501309843513976129404135624925266645988292306085037366791598401884529951683620450305843341249265210894996770381296073041099459614735362022030743063973471669980389544236054422578172618042152751014721819131510744247967568028309100417772450992325360542867600384870721261652970739139905902148520454993135824352705009198007541647395881384230987172558164451190151965661348429761208220124514799389683131063273891880870733214711755017986476742220968719774749205441869579646406278267396836633946169170674205898485205695409357602095934568725380464220008129396638160576166402109568696835209726753997055470028822721621209786534752783787892889562086452516342202358252598007917256034250176362391028774097499890991087900259985193909173172695906705535025501064780960328832870736217770276432739538008012148626838878636621810810296132931130570190263406546939110488319147999608381298968957971819776687141600631396978529008803133438500100520108602553183484647697529609410542129830357543713648852862110553847964770262015204274721384616351386602738827714918816045188940416038324493177803242212206489185997207610133458385247667841842187740937023252662183314080204658216203299615312941794522404889567480360599716016416352921650899398436776516497127786265502498233029553125018486857655498103836911362070755772693547132595768612838294503336353622003206551726703262791441373110913751262446940918131527580475085395315918045886878652608046704798045999677701032059354692527841072119785037859951577007107982143419581501224554638372035986339155453167365359315670597925907180388210923189136377604674289523479162235585077383830237730532970870401324558507741571290296017339435182940143868424772445792909019091860905000384952347622303086287723979538542521604202408215472851071626408049452777717671397394543984639398066641363357541769105451910518371792010602584843813573519191156208260565391413981673569674463829741986068940055938005167539420058643491701952966103307055059848532808735702798725812114497728946367782836923094192012159760471766688849053807373060356971631023060531694785733111915229087065017140084062321460563366172138539470035356107315290057083729010546901765384527706043570317296875249039758547532677689490102281858044998495017883584606881841353332953201745767302540465884445547956979948182244963473811051161754966861277295629230382246673195533773520306502743517777139264637263730964351057332385916452006816656744055335235870185198976231197219524069048148993102949515731868192637547745995340739850920601060069593093311620487674667888349903425243745040460970115536241237833678295893106842033602869253767745207700783033232926887802224585486415012056315430068810094045059729985883495316316666724435714869168500433622464483261756811508135042468660277703356470416911662768589523170043989425551431236832707756555501133380145508224793067995574082496247146167874473970623060187075164636084819132526994966666053395636284548402450312543927763964038790300611452369394506566754311869834479393936748667371551115662615366039968260075918490252768638845105125500543686321072517304535285567354231174059593757892113375638219780166635524518079780316763042406582482894205624471437538913832337346839114030143568368042638317532307781202840424669720118699590864580255036014881241475309026275258825815109889961482416882494620000387287330475165753967993514014192248526232806340925992091146782648596296168550266796362145720734571620779767122561614989788385931574628419237964669753918609444641717500361448970106112921641832329267462402349068751078719496309263276483273060466583607365459918833507467187926951712777230572559183561044779273984659447781869396276680148803082322362798817961449111175980727621340026190704748177284427060106187395552166460599763808244674117430375621070937547244428999707658033444672177233967052092020989472879314195466455194771424983497266300577345770277650787697358743925958341937727969504464214294038050493536990891680971695459933636204030584103021180097439301685184015777195459251482710802482519850246076500456498637294459552395379558688220124575137900885675275342594743259612113149615612421639279810478873891933914758956164668646039751155582572289793715484299268553943639167835091703116532956131872786624674077086313492117809944257671388250621160196209639408745871395234668371887676714113779673732812387709863092252214234079857023953748998409309211793156818304357463964599644318862069181689780016897080209732987666784838495501759205017648748874061022974970296280367258606898367214468064308998079825845934190622185869116390699791169574982848422094548985018549536280811299983532459387151093493774643076669063832181554766079000129627902306385124025243135839177744364903936285740162992254284074307583837516456703456904502950533624123910627242900180093277427571508355461814684925202990364265895712308004826440638602141486058331660754397790049701172723654051715946783853797437758521916368519755833916689164746125002758721072573886564307520246051344920830361212524358983365606613269367084772553334100030032477410756430734554118081758747697998227300630152107784292914147511744594488633569719178727806478084025761113921475732728237370471160951862077276024036461461602364410526281450208530738765589988422423525775728584231697670000666147439235902026764565050612521499295098069443194742275615490256602433107280224585772643656795525704032702256216922935916235963531709949954147182819244883398190991576757267693900175798426777775580139418358356632199855897904093264406378227455474284501849317115397535532465773649288239872382014440431440885536143414231390276269355154535270779294239413314034691980801213655311573672094604433439839456823064669606650092559203448154456167155925531605988281983498641241481553464135643432838405456052469896519872563750801174935585455900163661935067970267395131142543651533125350023128894311481507510433578166673310203327221156578903503230770454559354228714602803680257516281970772664594905063755586480154791263461792734962055178159356804513292132744245170148978169144485916503413756947894881005564676017433786665346887952662769918848866749458596276781340339755648632120382394967126254398653395285253814449242745569261956996978161530884189787309661683313189688116289502325626737081287188486078626631497499378475029241269882144228560144227171170666416481546212229504927597864072383942751374319602244447424023167037649192848817090862873043727827010381957249563627044134425998418478059963804972297414168063679783410318768619833352763776163147966856765234410035949606158196118041611904350677429595447581505935203968829756985196238334108847101679094124864367046714735152448959390156644866431153690932612043766697389127514106724168483670569154611992834855402446765608695614048170592150712949369206700816740549059235864688745716387264488795656982557314396792263945883486271667715904076917777714270089661155080738481621817884778417563095648466404057452867673073585396451171562709151943913613850334245594133098576450504414937903088131834308855207849053900929666688099401584357005034678495570550907430730250091885881798462658264834630444942500148343580198446238915119704499999688550840088586129382573184890765478552479969888793281422500665747353426938755081571561384078084601038669412549063958149646860620772374272756199075726755546749032030630936319725894998623808435564183012608200053470816984561147996168697329128649664601422807066557739557423309738278013068891299524318415215339659707513297529693549551882593793206177973619522861695793506684037027680073020557178414595829489530809562296802578579256989227016339346193164887898563641136241199426482862332796253310356271114026527567998740010375644876328173437533136818088137061242017481708931704666434185527120324489263743492815138527930762503512165744523443172127266068500615554025392103714132919372536297446905219131616180455617775355190545603363952103336787007494672703036797333111027181606530428647665689923097464749573572823247974507163872419028216475415930553633677813187202265801193061919568235488713312368506268743729069420202197154025935808462361829573009493426110063073536717133014169497700274472188796534228798891076329790751609011049119625539019804093692635313119759695092800408451066062555143860701595840481549864760908777085569534874439852490338953705479756090785678416880896023401513259961032903670214867760982136131255168120789930873734188268245185011563704270543703006722680780777674274792919314929240606807365665159912076526054405316233948903771088196742712588006990720901259906181588321048680264229171370723442599948175507073581767967714804613417818152033749185458023566700003675077323625945817974961977757703566780083318106790019048100759804124985978158178802078825774095042282350575728208051058864781474189586721040326492622504189578218999856669633971404529509284447649029643890781375944258633727742453382616850672693924470565355938657049405447268103644153013772195864076086087129029981709469309336135632211359695479235529866691399686001016138190961487694246033713478095287301400764804365979803987151471692664729773667541574438265835848792131383985012716278036791262780879972664218031432217709468964513701658358012139232720504148175048409183256493753069713331034775268267730290685205650739710672987883556441331211314898528800744413258693650831295256909235175216189396184541449852465504652928006694708171926389749877577486861178779755265926040344830052010292615863782696586561730838575644542957646948965836148442237831096730466798002407463260447687867394210714700221512647186015666003003744371612381942201155429965059320636159674677694425194591124486797059305065543357296760491046619904016601913186618334056674990522296210487113211941018631265797236155591883758992341445798787890644469186253360167397633230685938482561015346087861640401919072554464887583795964879551137995187130256011785212501531441592788341294147103403314646458427653222725749607740768139870675874151673800859884451333531927982073399860176404318696494215657455502183282023025233530547137661610845982489149761828340370627160592367926349084496981584425110519324017346255097058586352002162296652682321141817446906004929161412485572637279134640095139412992044272455604970144009623245667256014985426306984788296280708224439769828949888673582526135924221472361680388373911350983446426808824335960495412890841340671145304567404660129536134079042581827835619166715571040704654532790796643595745984476628739946698118766661102015295952499868960427577694955365823982498718236171491948807871133050534415771888947659778566317674789454612143896065357458178536869250959463855776883270107189842407801887472422622157450560223831529734900850611271282880871973948221186288446253627476051607803121166431893000845214757628668195033272974946692697596066837322065390782969085580750930252618844138390199300417020417756230909310026890161793111393286699358105433282022552740205216443445717417741080355329596536457317845270098626361232180393609635733261777653963878579949421684351276905241807462364613966629642936187683100711051155570366467429122006109145592508723631555931321038592865388689125295402040348600903850530141897092860695895647868392477385241140855964538262270067373690369491860247815442100756462025438496757982344141729151196124538120591423573826476868975655630617431188408633992520287148705910514464081067990987539165969189327181787288994407316269111239534989313876307969991266053817588234164702803623689468450328487716410634317487383664295180417681922426859638910909182449745012177626949124933150559020799209349411426085211351371883530866968210784276708545715364235559826998981122685862513100131433453097476480798519385867993942827803290209471905534654502543466015299046467889594373431267141703241552830065958733415529016569737266732156806104061082187490639451824276471737503221191814614531694892501502551038224377498765607831932725079164766694407368014692756630841581670939091099938675261323680368712972779949327786779179666706909260444607878874491229471264571420626023039550183480415887494815116001898380285240704853803546621434581642245433820166826791009439343031783300935586539866139149005868133343132628588045806686819386911163857459815215469933755626866516189744266256759813215123373865878482287585140416244127766001485035451045579851976290475885176216102039274024460092895834953105742262601726045915768318766578800073634113256008155307530602098661394820368272206012382703321537118185463058279304792888924788521576853649025247744155497720929608129606979553557102267668503573675357328766507520835920740649240718332222304669199506339108519325794320708787631775183806141736103419973927470396870208203766246331614720078173400593377269144830550971563144496857844279594429126940900675964885579512717603399417771051189548025657510577731984989319628302613311481174674882165864087953658063450534890410766623699085212887768733324933100912055375767049122890468683142387215506003241440912021073398081243441943753248121069089085278700350405818785545305352550852226611430130892198733877076651739161170938149564843068104885769032885290622354328447999923236033336434857778818071535916882058551170978494522827463513107920503553014866334718490863745324645667040477054036487184181361475333121676799576075967512430920518903613600015922241503820507530261859196031633890249783496488724495098278859141205680907079053137617304765850209686956381753308496991315412992150656011342795440515589139694563280939452652681153709692707871560254880026353409187636491290977247460946161683638328237862637794767666397261958136656649646446886791456332727688641164758850361122567806545448346343175925536926864527079064031181315262812891749209634929171804310718105775379329226679726455782154496308365936502814559806760881614560226275791254631780463644252264524498206362573116228158960116916778579933058593008428883628462984361756370529966408154886767609895474529067250042816984154557300046691245693592580292505102358922103951126793130209989218495467460336747077030433135388535189551160720605291095381131492065781738265325757927178880215433871941503561428931967414717463906950031546226558062788532560663679580223526858954530269710950321900015132576789585197571867210252270750642769546152681465933429075641712359019484947433562635061581518936176412651764278021288865724927717752401150976895525154524494548127266589267084236388514006143358373843115857805278115718591241848154180654784120840928685997759808297457083417124777030922829254731096908017179267883715452840292185605074318160787843132361237655208985559625427894620313728812184646460868823912504158842634635813465667429842593511690786369234490770463649010409874501851706447970601074153794285377552264132050060533963252214455914786886389756285923204580745872422631764641826787739817486909414865610701579320722545735167760477328966931111389247305394652068378596445900561673850694712151536121746005586551629983044966001086959646450331297289569779713261326201212999273995060283433563578167347075279886795720702560937995605952522569760145646604764509626006953427396444301828716709564442223390980305136291602228025292890489005633275026927156204103637666853963633002670572128103208154555712705369964882813467942919755474190688873260860605223653599062466256935742034425634344316268846370676099308627667218287268845924609160526683991064998591082827648949255853224525881464416379660927398131701993137956338676659343827897490238411972921138855271811533634013122766669599844350250541952370552879886643169994362916263730937066482699232374277280703236553922654629311970553937146100788917575652480614869996405708079937023862504343144703286525261190039510405315037503939847631070417204259228026802081046263323678740776013217832708338509644683085807715205371662977429211722234773436362598002336535318570480530561893132867248279613874609324484025234332896612053309603031238078906847877272074286834006884498831775074585972655105356756527959556710129468983810337447013603587820463170164252494476131708009254955826126792018062738359492802155097214699392986636680115950738280667400647067430589489246921985162046379343570122015387318781492926238410274851884591514884627869304095291674773758403837808652132045426208885760191565170705325728176871820821366986625586272443820488191924518117759597200421559811136876557622906119400198851275051871748077394300929523868447985077778917726213436730618363053844081220366411832262928973350481845809352643978777600345817367629143851896304702544319293984817576762897251137540603197427943803915303211022041751780026569824189591911568041032531175583155509366312978308345789780682257790897499491158076544459014134717525251462287128403713871205318027646433850624885811430587665884239909875020676461216492850929905945169969135194902718086863237991428264604812251775517872912838532414563305270931961866990220522293668917041961735724520551146885225274762148326346970380764904179452596567526035041747200698959165181677940203796342058451709819669466356506600896420815964696212077674119733704731753747172114003077468349338612622432912827683355955784898567008120410957968896348581010932025287434975887685095778418388381817978855785061959227418816220488685866330799106174371451844107905921866260534619019317047505843527591548901382477650768900532413191950720140273023608243085837713901454943347362836590485563728185564732454445592152579499694584096533211032047957968352694117174038665777925943625116954257843405188677105820873057535450937428082921606471844054840014532301010026245780992423607311490499353020514629887326037218757738882307678084354649381877612193605067284484355568096912715886249075552521260697650192594001004148926217097144318052185532479196976209513634373471236082899849577631233449724304015088741180452817869648621910052728116344196725295588936537346753054232172951607447752654474788779410343400217131513387845057578831101978356755901201304441930323388470804601110242381155557422609732885968199827864604012703707895645902030485887274839026824471447896229934028427465066015343564112711195084852712914425675643561622570611496092209198099025986234103412885442631436800983574849112928002270996737178506914877280373646271875662103719328244161573062044411422089854671720737079409290743519600372738923755227177807065335017766166137664496355965239241705694325065933403562720909304742918838635599188544194433987884341618297893392511220835438823519759461909381717452887021981333690385028721950236900944906665184937966444229777791001080063788440016920420210459336849641133644775966461295606210223479843185165093531209830416153693657446520352549293192551086645597326822686013548258904513971624274207648637090107347059570281498301355158085809358222378616220174615529820447897410526533685741768468958351405234595426360040402464923769918591157338769045312942096017336370516935882679713160970353537602503193516039649628480735192503928876201975868084886783034467209393146612863509927014212701422990922996988987748815350038746999144352142625573416130603117512171081483870859546720636041586636188614268858776646534570590633262978349170910738098298049186855151806217192804431957551037568470877506267831317885542735281783089996837012756723745233973021165300545171130996436936522757521941375282779600161192940977308753397995382243909347248626008260381377491244875301376370942792161855802087706513244128850708665612498335310674536612245520791516923366677692900238213299529345604061612755552959883630385514562640207441898727699912998225788788786634018077575761087979600269134719153368141989874836525457656906277969477985937246916744274128124293064400095080253047991968554249096587309665523649469242607752781299537118585429772860305920927833934163728505231999231556490425537640044437282407232390620900768806544514106741307863162734431105441911450975069529235208319156979733005916805406340929000903753693796465668110096644229364826605572456109697940425114557842757197964431096390188071058283740705608367289618299519434626309233593292234383620872608076317297128576977196343361489293498277651399037621451693730387617520583035433103714114671266185399952166500518967430331264596645156434224576488910439230641651211441114543271975432382247669376345639757821340534839811139138179651734166328985758466116309602525626291754324402417938208096509138123158498903283130122700288504038918088980158781417301675203506528373818038549185216922269473541900504108437138677867191608419617586029761140860660489282408705228889737827392654002126366800802768626005420873494655513045700520134570873793725668948850744818283513697905573131702288136269262167600634269982414430261769019340676215663193801202100574705325668753055127036924929958796911490126106139742085595705927601534797010241347520152506935804944505388067857692854464978863706834795170747290722820347367071160641488032578436186857282690760904722604174448923635015265493777326536073008098258038738425918015021623998842821557672044305516380828026594667140098011503850487473042513065032014122691819899868162920121427179533536961744381270282591881717593661594793333495531261528237633070001068592267575816944393788840655485901796271807776003287252633695630075920836090899020917981076632469581149875961214757291307474720098767080691945713519643263846322727325039480553138266041553363510587782305027370488905029134222856472567029705083889873067847457171225781175019017126884361685534883974553498409385229810852742062506178079136467444274613311832074074387906876761703741822750848856040380442780803575182413701590424169155668233550524010859853620070951629447300186059848842302130584976157892681013409614186410555365187889460538030160053266121321920149934074380586666689782123550547466774505000556739534890281694808899633091061488791642089904904623098419990373298315200787622574600530125071347838245209052388123967832411251238217655639563711636206350453517491695751899304456576679555584058849421729557303009068575604473825870410258487818521717949473348127494252862809623765891840834164390758041396969100596419146062764432592714494319653206492200485352623208505526301902106767948685515097281039466769996610205454271989909813980695690010453698491668450066109591777136492109201017438122538860055081422811888898029035063582767302807281278308128287149200877496606684914695563164221931210015885659272793463918972056008608937832217560810397500559445898785401285091342890389935950905702649783902790782499289198239180797320298618748401447953955877467058168962566551833799166616846091310386476711951000199539803388774978846235221287997812622132003857878943440015901250230523127225176313423004043772440713245819553328587421455837042165001710592254560175327458845150960085689914345542218625433334152228091171350935324547504493177375744139428955458033022621179027042823699742178447266311159550214183173297466610174716485461209190205654581302986871157387558309855793865472037889062534522773870192449286197073149265649865066971799298980588794195605476105626191002279339579901828142215292424510239067955145742284418758813467126505192803293966927097226031532658991971458156529189808381436448884168009938811774923105763969545568797400287498665371681920671492000486010708900916380443432922082795428810047654456995659931492527699176072882187499556900479273569046480537652417111282296998309058951810073191295760665666914271939696350620577482943030393050282143733459932936059998442336266322657482077968380610956983739521904515185603459924547569897981569635754945410338615808089287394884810331622483499933002148931411125145642203389136136482135671659672581416078109011301935228492130634136006318407651213147970308758997677408977737178950152841750631505026307566344840498676514379762215314585253870604366766691584374211511770868274637389048662459963581719992138248381072333479351741925297907513763912431498272600904378064746574578907422017726561849562856973677923125995566440859809510717512595745368366914611782252385254549078477928017653346524484013861078709237538294384931800251423573139663545678908807768258221565982271059468410214884217867177682641098042413894116468029962577136307925342887617613427274744036888707750485779515351943532080455157812280488334837974580715318184035521493019877827912061217799638661373071060845273546888513626414080318811966529864903371693015601694047780552744592817182683298258075194882970050898153212591604763224425723967350748969000766356398002484706037355130992907132588965201973521823972500027033568033837737660847249191256982760138123212033897628503735802054022157021984822782008991848117350172595645005297846691241635180065251684007195582227481080518140462216365165423708181880242923868841186618357875968878184734012571578527614224555967583913431017588407754652901666564922319886044220669954561953307718106594358329634285883967067506336262930172359550969562084264734289122394726862785471129604672203832591114286842636291230160954576144535499125641240651618190639228426545385989940379040815405732081235348746169830979786091953700822860149241652665016901647825717962176435638168055495871820197163639690234390731577769009006514651911750137540922637369735624379312286977892646904629194313911464393133951948201453188802801351965393283669074868570348926578402311836747562248090815682775088122718625333898532703142523873958657849685017003176758233566516566698917783932132040024267957789329260987169095869642790718195366871532206868498532006053993551414608260689614382536485085544077470185166942404206141254265122964356027007437885512903059412527966427996366452224651649797218691793738106429151061270162217229043164779738334786235167401605335795375414227211427678758885492345081778766688396719612918109764646936525289104873667916256189407944487840361919480722218945975865041788421284084099572704018248378484359368323203509618895720107261232352569295350694123426534713472513541318943488569920393459116162922691938902965026728499116207986978428265035396925330879881866485200687978088732697699675282078817567211448154546226176423579489666400890965471315422680457538073003870754796088377857576851741930089796864719823127962259895180973629632855286089862397414570294809627972561494276749508047324172031989264230496878250122493958001409273755020483525585325778817704379413182866655429424102254684768853791329226981559902453232429842055751627093780250693343622284772439528023973116360231059661922131266249654201554756519542016755326441627438739497232547035949458755287165075711222156831698470056398637138420140419042742085715922831191634575931074315662633730112363407761122827141968130857616303453546940078837409546980123509842132606407553924904761080438372751336060464040541523752419056686673133066300245514319774994770388433332955334282356395602898109128243919229475208030320962375833111139123581202619422865931076911486094566620305454255924134411335357039678392793653892430090427282206295910112368530035035747522105331887227358353593646392928474491632370407564586869250916056139364154852409751043196659084729307475884538189622599635674019378902809210508779485848457427432039473226706869220881914889932710697298143618211475952739766102306668958656324386285480787551447177460182431121048698090255056626556689480296731422771981736495325674955456796996694410964039280747357963517880189831781495808171247379499611659211010035758596119696176105113545514125195454400426762824373927092891875939131959227979678628575951739696144345018535245347119719667606964451779476611074150930317111556539383455321673880332192004667982975603671260769822853949896950058033193297074010382128641391244449816284107705681129952780893415457545650385643911371716744271393774262545260283648521511184546318658830409129084689477780276747463016482222576669883639542773775353646917358976257405958608919236690390007914741681232040013213092433610329938367275121035807185309735873664569251029835640334329986378193369543720186118721853732985661950385165687753119103205014335316387877379024538970101883371280539428143072903635291710874074547920017479089584381891344687859404862149149227395670718207368697651502825167056547885462596708102638102504278827147373017704368112376587131904210607862840805691664422768492713817084022247363193719568509814740212028072102127024437662302620841890872927042327166570488653784440643317407592119045551525313410442759833351797919751981047636230502767065025206570953521145435511584153538676088696796515440215881621072191979381978039910282052057049898879603831974054431598608293979970267630000074917361346141336051584456511915570819752616637149992443140941099556493307868395019273216943281518894452979875651321019350192201860106957032526100276929322774991633750731830003559505972697682909854765036508889596733036898607936888838169432090815989318806751227117003768031435893315765780582743882469677973797407130740233106926888323424887957206102619020341905216771301289128494225046364353771736458495710615915010099177981464412398395970476739907326248212029022312518427490968996803221888534561700245509679409340240080977817445535886642723426659957060764711994114961695520047187621096964927823295035983153129751627021664727764029316799169437352740675778215261204449064226100794090957309260750849512391229410429349365338933833601143962062261569219991532083229195770240032117538932082303367143002917742752979585367649752335987826988274547792219700530976635435386839884040851240064039952076277331974238078262276482933938843113665292991101458006353170907023039530496662786234970737929154358046076506385743072779206179214112131161206181141266943775440993619983005379179938865473922472860160865538642038887054669057435823655507014660260260205871425809070118713917632000910209727948364895666955584822908992734538576675134754878214546374733741418562877219219249783027561000984583239461581723362727573477332071951074547424571751813490042226911779082002951489234908022271250919223787157889128807922870157786248692677915910823329746436452056378983694309057478027321752061580381003567776646535437728830120116564725680910744929066217564549784067307354585575095358855648693686891770892238041742655437132495970215225573169854464826663977248001532113315235720829404657628539077074047570711463864208210954737389209589023818143518995238059296005897121352617974894471206412294306649575663927583186166176299383290832435870866913556733970387242206187301450214681079571412589717840164770552739429532033823699082367161554247620974744297225651805519228602283270748662040229807270536018048813164160862506974883116843961479387521382888005400743435545228268519485141784616467882544566720616330178229555295003497372331936457413552305437238017516912262670186767764620503442295072670833655685479932903557063288055476870207463887548089136464298473020331856025805822011381420099889204282637987548681857085447861814379039543769868855143517038869274497489669384473584131438260061248614027033136459469489748947425574597277405774771428339420572873449999056787541098316037944952903815377688848575618843854003554490275877636375414323628918310714934563039534971348269394983351654213068492054208676872089821538972590900474650672219570233797687418711630731664339318337617851377914693473258838050542173491116487888788250376794998255843753503657107841829276621966960954153346865784171865536958166058330286555344859964146117302443813559225757100193722738047954005302315899823708875332662259558400789586852848466108624751850005998984257696596826713425821966073944855989025672691094178903486020945830482428435541403978558478225552077569926745477254516370348591962305124271573922751048091423640039861766676489531493619336525939386189005777499429198371681523540119472607200038884901221346003512906955401263605156776525756958294467873395195266762901281363416725417989238227744484612310618640200422778086446520636711682163708176721142386429589845105399850714320195560940505044950779596241105111034173361459637173859764080038206175895681256570553107662243800120197896821646516786303406146289428150311267502058824822223009839110862772649733839340163788258603921255211483019889963696938019707369601945798731906836470557633028874376971212663673775855506625777836547004915522004961610937148676343644875086954067580275426813932604694486088918583897379960499657827627164644186042046724802492744032366099283626956753745153709792993980470617151568588372847813350991331034657984879617916272073146240581888363984328927853482140332549217090770631804817212584295483882439986837213023171503559263724669232421067059378098365972144388245672714411852625114088815696889574307791687021382884221855821883449436143379611709968224031764618322550101904669682782374171796514038748343378640301762497308155229377324827731414904784564561761198755143677524487062731005411955244510626656052945482739905924514991884069313563930428921675447453842306368931403101173785833428968944433832149531625653763573493174142149845685802273037913761743395184052046549947286116525444769613013503377285478879978369480488179683979090359062135381443249812126242892774217585500173048141245462461448661587643387930889042138742589088697074545668805952495860685205672976814765543385223915519318110384522302040147438876083579596124574632847898424345895385150527645900964340159955529809411230681689784945709530222559241140077138174059918837026745584258499067187543253393515355068194557404295399747630822725387245343247514772349903681129859395090398833584990246481959960930645584419667052696583418361711115728848472553408998876572273402257557117721684055212706306504428191642789125920883690185439320496577116234284942415629691668684851310597300146060066434177687207008681096450282099563228336351938543157994571028859632306168146510780862505465424957927988456196628831923845032768200529047748633988558792207313589511208193470048550651032593325244471702510559695967024931966621600459607045458133326666918704798519797372630939932791978161026107197862012491293555832452513953940685802553407945348072646377561241919839498555151096512727222188184737768514075405078070879047003194038987553527115539929424216986277788780296334334734319040149323217462042529694512365572016815710642987125608006132405175265583943472732408649080690230731079080535647112376366966061292806477371280894156200191712827671669075333986651040083081356732540937591717532458475577637246144310548682065151137442184811244987097264064367297366189104717620473181472792962130717283746567332715779302985898666063090728567853638081210757412629441231288994738438394859827106003521078229403864730189646656181155934210272416412103905825998162404444751731748162737908759301383676699645614522081631786806615143734737574830415194462003475423543781226188543299441852811009035916700416855069239633445536116178909935173919527165364081227576332932449125658524524639585928813818848590805313518172400661282641965092049891600086521363490584766950675770217003725723107426716754769488567285398303346887365950408293204550552208780849193228087076376046504306118055065391558383294723138927397702678584510410251530227190917939234450104557810283151306062769828299578593303723909320757903704048241706108380216781021761049866400467316754072903233363318107491045679354512236935119407925395300477864564711048429115951731629114323535537470207096948260923344884412986139724225950052561974342537838668059508087496318782844806756689939256145715818546920389697670539879510538396501998511274979803140194072472245873160639200778954211488167715268744320304136659919708785758911780932387705677965588526209253815887683294419567776463976835394258952239961863081754800149771877395206582086366798384736830082069089892705456603818429857259689055679453616041359972014933044943509321871558114331825976580818349979624371528275988284643179135662343213415525469321343925445357106816648323976488578736754420090390827942551500667301671447065457789106104886490947712531408253432425518008072565652567398389302375265972393443494917833349605169466421218277046402772231411262928255771587961544233294381491665649776486823882152614303832213186931326299410509047419974822559422855843177824534990905638691637426463610792690552439594398287948744259077244156057684684000251980192562776411873591349844409045379053889230610636201256497927671513358738142076912706203854746229140339505157204376576884667167660920679720280917993055431348919935239608752038051168743290102111640484421566593563390148432532821938306462178416177308200618403037452148411847419837537162768268622083250898230561433741916942929337946753230993816560946624260376713357885010497068382619169191434499397608448067895616741161463989062637828074645337753190181166479947187208153692931845266156220279145331812303515538423199956272990127983944835658194557983630611523823137970972887942925381592280873808475269764064975955330585026138910733446549485512864801801794086069499953746930974268943839162437182353846982381149659923760404337861587231726212435607657400191383808405647991577114158775318030080791736415417301592287073981522995035905269015365330297198050267269187155342433695116976913670359704728358383045938327231307294514838109030642914926219699871015385372898761517544141996985568369113472989229592139125945820362434544885551423733656598015943367283530753933849427297578828644614680162251737900112609057716776720021574081606464897823442987562718089890801894271209819295219023554441041243341771460513264137490048059558851722705701158737363843715531024837506296240919227265680333439153760546526028683243032237091506273943207441277039469997850725209756712355403399223932291649231068749399562677031302240199234964792440345141887706702953682591666893540604544444470100092546906695243820529689678154912886623937481344529870477246049962427845500876941740472364955993107586297735443617350304666441903542492576159632059402152426053618472755803092925322776398321616167063311948214113622269917704512562597920225319381528554231188947546806360613108381274843322142589754273479001398483279106125597391589613784843019992240010259183315602256489669662892478309494551401104331603949239276323744061022090307403578803510655100969119297067053939794858474545551006552960025392028280081293986699226909555578765356450825773258019839805662127634531650195234132220799827263701211414339876972857752618456439574153043376092344916300909780952310290607164250474341989474167900894922171020210569678719841526398296008193411285622696747791488541349293659812596813209222332413264312402222382678449639714237373424489810380747390095630683345670835064144281769628385474063502637405378446192571378682451302212529935414942594467641417026314989671402909504500880498716010988262115810565091634779630859255651270257430944009542194026521607452685004777152525054499231363795071418438358949877830896898849628800660251156811214909712212367749038903853590404051394352744791859489889499959456459120369104137155187072374903256420740255925679260606218412199882225503435391115589115150777385179548448123960805766519856869991336153543259448276181485696134283153823574211494944633096801072855226789912182158303964708766891331492869253190611938307748621491134545929489940544261388264976463593330731534818170582991839727560115772618826309886962583585917438753745745949223851710170629089063206158478952621487181638734956207795986709969976323923621277658502143751291771049309753608024625331079762960068693765167949991363167753772483773214230696647862778253127259885806942263404121778369995094136787499121963508208812020202534589785555757512870603999430373294566093464082203885008958306093167907878711855806927241015889049540885395173254307621905620218875968037279380199972801279839900571746494978869565767509999540917605950622162041293953373452887377506554758625907144815658009917555646326273556429367440597358905114818103822179866800661680768491952170326230965379834476382489926199093761551136602038698716113949059967132426073370993030501379011517146743318335085444796145464164080015381257864124922285206490299566079897093160462703070781515440566964692535947820601607479862053856719417145789861880766753500143220260441007991290322354699132377145685028004320627850738880382435746391520802686983959485421692499149543382964982285294453057508885869679145759382413162689817817486850476039240911329167101575635990111711001649785917018579617045590169769564177749850586809566563352630236681666347487085460282897584208247354153024634095106952471252614368079820757858853794518107163415154009692637215236217721733651590563907157704591167081149263920561205457949521319456917200591556218269313439456943708236691701772296006521541116617700382436429345994712570629373012505280409970314073719317613565717867125165932549104002498482846603108658750986053673013073524879017542088849066466965057679036134099420206310741102871452474854781225595911975381963847596902875587237535490173206543749974753620146829309310340571160987823918874063846178082715971184002107073039995375888581432180064260862129216205481235261661381986182824273945703996552267835189393198765037092383641223182432481579697049731378296959144563420240367229265601905405977166313663870764535715971516159008159338579372389974077354002194080981949524296039912615928496109633364040781303994881528005697231840824326319894920076017093391969691102286147199559303386839406297067578826118253493917860596416401872371161216021318365090471799337504831520671557361535214412076746866479086658201988950448122310772828359086913375524925557901072856819656057350389430699797693906627530545422016270702547074081067632571877515263913374534843535162187038733531925011313023730620803222811649764864177156365363108911709180041848883846092631322278910368401089749001816400643695471164360043357898636126155919396219046381702111834053368925891580955428176782326936931110907465965381541592078555456216860335532943154702237882105541980506727065023705124946927108469157588278299925843328781847192747475908886094255701800754661552819432723624612570035182451840435127312619576276845988514950685707125757117041354035990805623091410364000756049334162135324425179731444980161359561169154277426274183910505165317743494878677052424162209409829254296994988939038427035799135609590222071012338626504107094702945870469805250420574787433551579210645367140172815125914191424072719949068105680995551668675813754112367623343064176655539656244555072375082008879939201188498095760001423583306420695442396132433676813332961279089544022064749428804490943699458045366305206184152853510632272958982280473827046912940047749233693754959449528046319905466021979462043847519222551831610712240144419889329551074181932190137908091312322818558405475810750047054622462686324501367313731190785879599520756297665998815026629586105353517768406472796494432257234355144042534963383800608887571671898446245517058958814603157385925685479990490139966116283507195259647203985403691720136685929710480730350394168946385594002855548569129393283231118766662794874895911515028102759609992264020204017141126340968206268360464208381949916935658022277065229876916675806587391248589101430798704887477305676523256815374357997443982971478615851314359688914961749241443126978945721735257119474089049391659706673128191946855701070934925225262785106814959725624507953234430162635003519546501772360296938900752811640077034894745784880244678317763179896914923944027029547703686091387644126392229759635620120827315698404952052971421843199017366589996769066795412480682826681423020142952891824098173689288176240123329983314423375002585768599923796930057456995248508641276561446352050500004024496027145371258656909237904664215961823011415129152423568488888694451663933494961825153339023208714763974822944354225259666390101741462433026327901091257037845256756690107695140205295457567708376183236894933289602026207355959681116288350745157493785366964330575850227041762121165891016995165005965543229760044739257273876431709648687368346232586052727395114598730165513628673586869486126880322136685940178186958588948294386531833025554515206726471944339757492389088874249306494045237163656462015631764214817899738316190156928182661543952464642669442117498274311187961916960081373230217484344313847030335690753606779818555099960986051608123046935317932706509573959200158374090878726360602135859128267787996103521815475985012867862052998053380428122497192062239732689453184563743905875800837268475996865417112677986872514483318968335942928700792714844582442588361522426319059171979762176430874057730647085561729575996278416608781954866878964414819317615378644902485510479063512173251083451744001408538057823260611560547063761042636862718440353615018707857416249616656527644727928274392473288453914266644738762737975404647292893332939987277728807476543702237310852903824449372310082953458340228082744074539891672677217229587055859794521553688903706639260261122173496100938622639169395932403570357740355467834167758020693666536218524927560176917872455461061034419777849900755573022085761637534310356164692742732104724484367369634552614178633873934487178163019791400654629740691812809880029654022286738871065329147777797186469883326498228619613762156162981132122301729558567572776454494082425309545764330439022000430027005441402799740826704183024317380065740692043650054375371723756245723973072368181001871081248503525527224337270162337648374626587950783294674813218276805470687591413245559636943559343744875766391544326732247964194432743078985323248792841469348011104138532192452345223797364898361959754848362049175354675139649080047619267417177441163781357523461553657186331432313828588522473146888185734764286604449035405592315990651750923415436496827725374303685153005833660491740690015582404546222875291145787890957946885913450723546075928880767468828729310973490834482078335979120146163699533113281198730738394948407568334411768501553339751137502251206064269861391014195255113866957255777803315024076562278267491277384591040640514661890611916297157291142261984792225279659318382402555685293795422029581538919312692752282310463917982575677386766926040740035049927278458826308323614975682984309662057613731860096282663152773084611388367544023551313457548323322495360069612535124451490827455731774580158102591874332200697196564817199203103876259989439269092822659890728189396999357263712959846726822015948328245643741529487665150062830433807086907857907753078699358435672921293356807723882249834165574411744605371693077906964363376826626670546579154503853204538890851025828394449836358771502863185981047124606695478500380979990662950943263990757942927821454326610416622601960990916148477701110041150431108295067270908497885428376889840116817579431250941661767741720397161302838029251107629522326245671132953584708350616293329841426360269646928679284466150056110540897300833245865116720867134915425351154031060108527141447172004812023647256843964774409573051144000795236152086164414706471370557136412889567969536622560655092188902009681115560731533169826383937128127179977275272581057007928084340917691976654540615259156455673133080216795599301495517092755374022745655770939420757450250384024368966980311963280240059973915239650630972785827966174316123753433196761015065535469121865297135636381404426261605372727361676329673867909778160227086601465419068397746273038348825826065080352073087954286156937360018239869571981439568471471586052481205940595482467995525016072711022855400259693146492889350523500934007047022988346561367546061288629098518583621482201984933103331605555578873304856435673937811205687226811556754384185254325951606892297952636909971916441922299272880400851808991163214711897243661537585589213124925988792573290041462917025558233987195708789433539645167804599275915977946976080280965333326191743479370501077179845569738043678431059384822410878964157948405482594420937116998355529759442956698715946765142929585793161948485896423336564603395837051517032079164724205136425580216794704038047120079747247849374963266418347818967820735192914931018644474755376953025850917129973657157665020568377706812074450823751413231225614948010295310661606678763522759827440536427310026495974194606009379588608216772378206203151681782664172645909382899238832310627187100021721391951034036205105623625252002114725717086292726186322055542280854669596214090094271296500250502093627078668583262238590717038927432613575922693783999563249946389746749307763487065908282808045953481605815025439519117051851575016703508214074820087144719029387457451373243289159986497261347590844853887184044778255368436651869782585635870241592729558850177959269006135046595418533395565152143841470299534385559249360498430078333558784748570557468309761247754264933898002456624543383814919755832083595039391716467798296305542796655312509192537280710159373153209506177369410213208668039499455524691149054382007035185535117664294628689975679165660249352345716223489105647814405220508293063933747238154479294533282071320092344095166163838219661363102307423039438469919938338064787642730160309454114575554322869762874972073318441400843730587571195602844307125239674789681057054210191760402129497875027297229441511101057994983358099890916347729375444589284943163959783959019087738488697900697069209510037899229797592372825047685669208896304620284079192081825435792059818406254505396946580510146179257180209008107256198741204992345940669571043400388396096060023227864774416995609676105939349348362549135251726067875037912510000367087435634229137475190582565467882011884784034908531908742846366577617261959250967479032236555603689179231578804568774378489568635849708572187013736006099251029718381852150968130039748498537109064068576625643052633050879682039448940845540665468290759526818427744146716308464231487253091156306138402297775633048088546086684209172676982607475695133836402145927660876322226199535710514934901825630663078621382998097254119366083334563462201777459903612656763465171657873117946816131440857248281096485057168286022923371305247510571132424749433124926015712070682337636279166884473531914656404137041574824814346485797320160194025789863384562228938560236526632039149480563141650523849776012909131939928988844355906871575671562090805872287677684724421649239978047094220817246392307260595914736869581569514228038581952695267942821742640136780637644244868827316454604038398108811200101722853014524581824024109564280765722641851852778977777628525100815163210943221691168079237851403387660998866612980860701637005458772722093773390856765044604261442010499109719060403479090293343949751709219398777623543737615476548501604990250914190073859267354965954558994787019359120861045538250348306403283212461547688801887575251614609010078969529396587319806919400749545002338971925207082007822648554996158516095419877099649020540714854621879326134191722455134798517159658679825905579798897742310757388950500903581057932355353415452436125328869884593246564664142300038687825953575468382748785303812768021928719398828978387151912419874984333270026918496470579940444771974761149484829942649919463989133477331519307293377006326169631106005532643665026113983403599166455550958030586597322871818390114078111959182086966442700066280329837623249116793743865532618331909277708799885381679553888901597193311942487536039901293899694460932242001949269081883416125248045366067736513328633771074098172693115642735576799664730429012321070307743132885312419263823735320321099189123378394324481994846039504878810609687964389769727067790016594457068968772527071387969206326199591012784214460743611172197880193567694221941667342541109014364037560366686036597796339032898679583099799968568069033659717808082181855353934184094535534999554207042855541710646774217615293426270560850172607907397204693937647722988890798112301193583697717266740723809979686748041494101353870464942938655962158002662351107122661919410590968002295409638391748952627568611113750569926805352199443142779994231295190036998367127306424469722877225433204964998723062451805694918127748734280479493550437463425593290997298316732582827687738613421680070162807909050933804060596956074482043742214460759552118151659128702024803450064898939193175341559585514355357287366787729911892140561229000860295560183020385535457349908343721263934456330725414046783205993363620141759910671297338869374249945380710912597095597981595566149163786223652677348805388897056976559401253757469454658954433641261126407004893562121708881024011725906518401087291684400565593901149263429707324398279187126685478101403857055919157391938966202796749860585974049307434203071113750736293801244872934066313739583193303638258505031520175193908710299845877846343444213008122532558656231234330423078003433925467999574143636743940375528875277735305463245865546440986755966616910920422717355309569164186647976955480641940771306318346643599384256781606751335094612754116324456449477146284927069219756727910178822802285809084420345144750755776143426153671898417082042385582182570961931451713085290403628973273064573111212757905021168916496122229751770003974784684410330760442927643145028023360838168284897542350371910050478565618233706106260336798380785204113915604571546128751649344251038404511764378877231331678859963321917093573672999420470362930972615458856062167753843996077173758247963128235204016029162089646343507351456706785014493621632703030760483484420228882113389965626681421108476651685076618895237032183805291777191538564711177583649490867591106629907825183344056172117730984853540972566963116274734541592355955137538443201027556070680428096929879232869461070650984667352520057943565435685492688856107740025993256215430248532978278866281152097167195540555447238096235532799605891514403068028513092137355726404204413760812438211772215078391414059883713563203978417156018706710817276803756029295131068757973907032672264838216219231029667482346135526364960257262237459853392524549764500809394115845805681344878775345235638863464058527926964795717720287568283066748063820445817127906448985151465603317165620902797656740138308730129243574720961338122068552285803671533890334012499256027064857231988938884110580746174135133277230097936379336609170715362810641169359072160134740536970371011365775871680458711038436143852232373345430998888406754395322350963293469772045131815102616710408994962400857835040755653249895008373931387297589397290201142812122840680150350177249866498325044790838870190419621211327268133590564875023619289913576492475863237151797708364775125169306781295632292997085001489645656970767892486163470042763007854904646063441646589890423592133335086916779939511158926431726525502824016572861082527570896129752260138403088014167974709093884762587401495092337035822277393708806360834578400074443902480790321258301612997462365405097497637293171974737674944826978567924190982219560081449932926450846119731630558825032180868994813261305313636623197103822707807409492935422764659169110795050360932102029443033110939652575486530901531989154498906557894368982794486888549220959968588039884667856339835194911913010373545036216214852539253198757137070344526339234949253840491684178246988173331597071545208083369145454982376417968141445665417758148782191489503465868353636311226626948790572552286600028105202997824375853804215472935465942803480234921793794124483311118103062447087808882394462416498779007128324013302920979819470989762142128072499320350058722155731117408458912778731821142413655886361115505392702913148308067140960067564213507872805216459871120969839655200438940945631352043589300128065513074010145057392225821172151634961587053424005422088728281047836252627565044910370775368433384068801614589420947726326101146023545698377495392936767002185376451239453124397567057677887479699447595744570934441184008443239178596492848319440882040646788395530824554709806362432480146705838998768251438597989947288060836825802870228620640866628692705163569119184864659587626621027447705414484212705401977259790656166689584990101525731395071985160876628137640751773636794879576875521210339996906011689954877877117140650128578575308532100514722697357913233113991114048728101643068975503723190381844501317365913720243832126300663270332180887799497828886632979618861726418169232451412287228475793231774575867244643119149203844139199816199054784593262110411599653867552860332126161903341499974677941852955665828743124520133905413166517806639739024514272287165563116035942195256369234199675058161778980028433758772512582550586816515603696934848062829532926524564749351968654374480977609330071762416854023391322762254055534617677083590943689391221673665514412989825753594248645139030215487061418161998507391453547162273684226118625311691159557388712244339228964277188562743708396612478955360602709973698194561645268326663404536575289950438928509975365238391507423923859915520593146763629375320686475435623151830424281089335663452871928532465739849144071782450232893759586513017758248794138836099538765957999691888546850847895563562837329212080554707362163118197871244410425034470649947514240427883186557337627437480728868604265380974016516528925923356061810148243132231515224299705156287581898476483187416860330108573085196208467320133770626886639361352082090930042485137711851103167877747072019471479565669752446989258883399440703816153090429789299599417051363128728609583895763551887669465851341520817969010437036961196315859892307536029270472301031971741190549711686219335920569601523499319583366757315024447695651770243441015514179382150706163598956572477510568945368960647219888890648856364095700097676004523438702566788632053735587682599702517652281916658277892304210950275162691218532640675761387444243453023075067827849096593986129432404281193404517389850132867556956901049996577792071568613701468051791473708560888774816930162205373758005709049401176568053094469261697232910915950974122177903532921366633467607948153643245302910308687055545960148129731700612756303538446222305506388570854411077043445876653953969573389238102798774262699187188244313653409110733245348986552193205979985544456813560125726631677651913831368128959307382948440925348926788052252747316144672611088804355622713962180439354675243693063511082094565656586433385697976683924596256611791538397462587409398548375479287451590213588139275470431046546886485624227023486045101408842058496767365178889413708716652994779296812144074876994749544219101479921041496572246968118806953382471316512596636634303557240121575547847701392448648137062158625234419145542054282365362189459445840839702754990301779703614601574250267810487352252194211356677511122040635621599851694750197206039881484465222217550666504314346702584809264325688528837736338119983895829559302615143562103153586175016283386069580916365742181166282057263802054458489753481276615777632461332309485685860374334878930773616439863224635393863775869437516997265155364258081601992108724613048409074061520655130989861272199923072651425109993976987955384050793940776881878652898941805156218341411573565763312015396771668821220451773857217207823322575451723592257554421699191817601856701855738765139729857990699565518180524579552005720063638520767738801385310530647349270509546538501932327166695257764286983296915853448637605076196529881157864123560069735515691900872793080004776802419557708744239519349599125459829545256376450209868103293541033323167732417646002002469453582084578889764153519654518099667781709793084796114186324371051696009237147815975579163182901765335234956308432587833576870179515925411559936713700949026993618732031387643287315916130085838005521349494434589894590377360752167408224652123246627503599387151473562865669313646291257906604519149519306573485934411119388326052090165840735489729010571305036216200827295572362218950576851853676034743002473002659279526273436839562495357807408765209712001420460104959426826228607667691410796910480726963252812212112851741417574629680201372935698950296787310678743593946676823850554370568384914717096560134024189087087390567102606205282444794789433896343530753128881892639825702289212054336908416116523993783835384096038347388160315951471303814187601705776081472123862524864429030060870212422049389849758993735412497847317660743688158847796293374447638020165787725869921468533943626953802091411280636719938666168449080329206748006847132489348358147563181576073645723805181203550378405027618135494013868130422783085952196282336030730048398293133948006007908414761257297965030656954641341871019662312430984098265761162065481725894043430058945753168055902238321902728489704053849254213378674981437618323685171539056209066400643833600666336200051415054448257105210078592029768057751473826848930717318684972912973261520629955717401284577132397861563100819508687084616455906784969738344085849800999060523730425799330053317618871120474942883237701335340567535486338519479811746000455550374455375349466611314767196322854110375692420734144251419762565104836247014215926244957848452552284823346813212452878629638706868750634726607971655394088373251960839855831334111593731730358301416106030226998284963173492088118473497040559448262274560864703959543651957813205678935576141018939239955259674986970949589381404383922493422448723492491174880951957888970399723441555062449185561457463294638426022956453026412571000591669514210140366514016712572137887261386764993153633362542490970198686139432087808666479107792141759269936776025289424498949072601084570471441233181367841016412349269505556593298394048117536230928925427713371595894089487792163278687481957454933773638966506227352764850372236850003579120238604944911642480057326152023409783358834429368059897303392718823576941739663721926556387536346426239109338963740397445039144111476442740233637414835635070772154213389627903115236924642024979567603898982789509210079588155050960168570831194856851884330000796074112467611286328571863764066055193022433198378390875338691906123150735430803952120653169436308012873099138206331223471533310764420723350024241383947443131881193404070446374286412093523484588094323821059004032393796925790916838943976037162357647913899285224439967667134445547440850411444913487729155031663868471097184910465749504194707156664890152246588508537867077065104294939929947152092361310326659479626069623967629003200212765403426779086926558750565016607568857585128613199714334857414236340034983383224505238868473693282862823318710394705831600254173993510726270721093967211497038367560748077010010858765352411184410808251736358119526239101593943162932015479622402137475192041934752931331673917623051878951067366397400004141542219639354409255207540511209069496238082178927830956770906418662275261257316243563707156871631457629417777382566347021994024158407890125764067423176132377012378687370168281854426523079597718546977126373075473143828092263864287700597937614264763870615077624929141854715832692347145004684841686172182736617070973257438649486082922561081520070951846104607045000301601617681860054498779582872091417141836046302988028776664447947642055355195254937641265968868558859437586736373213637540018582501551758744523304605629998744579131087267233789160076031859459114336400155910876180828138670905147296427459964469847603338057358552159595623745766925168140533055913362506720292178668647799271213256057699379041555111799439515481450325851164558984024950999633837302239501908151974220291331685354964655225183818839055590109695310937752323208353530459052514340542391140542330759423138368423668975629050732345382200520025122549173352778536560366332173183672834022948632803191780509600413487424412671531635068789671366117820372611858384213482703940991851017054179045544455225648689187419867654020716040727731941685031051995951143969649193497250591712844869386803693912411682676587374695279622734337209442627748047317028587397884755139965645320820702048732405925291269799053682317038890537397073049117783413217151430814850157213409824346841908485605052253146124058639618108366825382392699768652209059000193725888601584896127698343825167833620045417553688909875773496760021311164249939298975675156012887642140882842215782373302174515337814549400654614935230753033607044435773332951787278645854822303321817545958076269563431290282679491875520402926550949803553877610440658482890669126639741726198948448194573639711468572252056951210853844883154402812002630638392170504004824270025211802856200264130100440157196306638010619936164264356105653693662847988624606863669394180178510052312183448385656328708781233683827802768780874225403513419201602154731228339566365237080550443926354764931695675228069199780442287295043519569978534467183373641077540947803899525970159889846415959093489914502073412069075569768803413256396663347273494559237930592627985079258046064839757389806023165457448334906447954054384284414422660452788906920690717716104526011890169659352715524508999387440841038372244825958850239327333000364577281496429568027121625936174537125600076109379409073077426672585596711006751235009269570074795882525700864004293317064148336186162199940440867625482337336485303508756344652215978080226890985529333781858799755468239858220168147273829036209353969656396241331979477575894112199721779786495063098144874801002636914582207736355243999933657824556799185542872117174864518718526782101468026327631018588177490736491960203113313610900594817359632340064267483245601775772607776670749781137638993082117308723066839281671249087304635274889432798867736099405881692095014588291314459377363478202402415021229168865346054178390007564247424051160072808924137517164308678518915009618179919824627138895035299361665425324728788030691588975443557857714013220796057840362257727704512619899455066587350835060075389098873184132602339834587141075949616486421620322666482895466865824638709546306916000530458601910745025374168631948449313417799242088578228633897246707066899758621327912217152001178652961372254688138541469476530037880420387717944369511950210872325827784003459204977852247525969784655447413744808897546611311112686485860778588517731002426254485327215172792565463581042203189690824484668427082609879322380642711440330176812141455111667922233417846942895243680368096490947076605776800044659612064773665354215160892631066362372966040629382057271719090074631017429219713007540106175557757946308192271776511080112348605575349032317744404156056748599952247188338230509290341849858839022822861046727701606642972689128902413873534395699296351829030637017732389679284940642652091072873528590559350259250845088002304251863014249145568057141960141260277956522163062258224515984242413039906174394498147532795183626096289897264999996360161719430142076353970078296703946163646257359654595875072318105414759708145971743900328313329148828001892083541675111142082717611911161794167538389015474230642013914549333375969493132993411054878952391303716920060118909261565196862146209058270053830803124312356876181703441696883293235303289230731946112836467034725595074993627226524199835093375932998670710320555864693340786926372124350827186801252331025798714185729107290376327711109109930445846554159462224595290194099526388524985218501310879139222337063079198056737861835873353037854526940482709422438957083483288669534023849521333255814343014850747169921268002997658493097203538885761618230698279728946514073721212881702482444674751864900894618040302834813518663341511007094935937207909446346836963075490341676841905625832413905832939925089105983255816412253903049336911425971552363039105367018313495923070675475770452861270877303551672514238397376176956309875459492513010781143911265366843515954871176293892550050787320531415551729225321783354695146684371917126521132742496720294905602875516925002739270080308443459169571597131119429330360665275465741901195922335077529328435998906283875590678036171801761367803626272640442208882374922769150845719678274370619731370059037707048653434978024840439338796591563578646645742882287279194126778150189745009690588228231651244001579806192831552204229828083182342859061517086378711623176904866625604356894093871515530337124751648268572724133246855737289635761620372647733963690949656773950518687541776812882129608688571190533721670992986975053634123686722877518460620362192527096677703135379545998247023314324230656243945203611009512162943750453952097637097894277116595513488414499869916523833109736600289678942746744823403879863477060834195855700911986862047328567679856697736377701728704182752497021143062026299926685240242946085613683444642017022228620692278304946552130535969940230871886943334759964649502873736364669421011181993900538358148608845667926519770613741554384832636111671722592411769266832875014779750359851189647505972513585696821978447947605975694895475466538541644261001399005427807690028175572448646497932552709639133085021807497596786172422239442489191639660869750960278958039501378310546823483470585271475729657139642977822523958306409561974993087324869395682219649775384790701114106297232547097305149812583466888294461563332743111870024192980826148395541783135576082771828260918182835508431429036335224068792327881555790612041700081379677673478200848257934782463911100890581089476322690061167915915064025332628152112634405674224009398062605859857527697821873331198298031482721916567166474698163885329925271107801423376951601751337986202140371185428848068355808620090721564426506985325284370329068782724790694862871202821703428933965862920190309242119865337938169129835623222866646992674024804394421473728838044108019374831270385209914637769011329648452715028175616472861060278014557383118875931056032262919141588188485058664655586938352386811726314077176719227761380235128828476126850411245950423390418626128255283015871852778902105404538807013046485207248103228993155736231603430399194394820735017238111911266533613047930380399021680510803910256000700874258905517782486614920620697383135090784817387276326638782496597349651194722706135680180348619309744673588607082069482985000817414508387314591423745406118011399891233863348135715325060634302495447115599856006048801772634216219263638982479790722421869943937477707047628422003901669069995322414223910045417034145590862792322586127049637274036564045447487568492549439587790361112988850361109953674918784899403748169921073775535384084068088069013509717250815317705324788551648058671060839934399935761962286783290912750567453824233437760451913585882311082919735009981681955296043722345042884267420530266392464246722273951025951563402488052291128487606311255099157589471473243991272730295415060944656740552216302247248555120897301268061283841883916167853869186000808463194549656726925040484268878001485786843006989278472492421578756358155562910816315740901929537979929115372464509036909546829533592059342401817814885235860748945972936456250442951752979874870597015631324288395301406306965584057282616237371761262697437224167106959256985264210248301988343684363478608453248810681372710175243896222362055655297856399520791211506682248289002813378634409167724467873556027706607833246279768724333291502482065853351819636882052086926111650522596045675643768267982845708168083915518485590041670715121066548549770792437042651999928629436928640964397408770079433320331094728828308783407440170344632131111582330480365540373995819278358276398547114914348180804565172570089748833596431327201794470782198238150449273284388797315277135444075713648957542313415646459248826827050825416979878737800195683626127718419771505610397981933350325692574414712410071679265748793539393144276497175330662365975072917740410406133159194957594213110595115966350673055443306802305621275691252464546679114890680502098488591117416253104315131500882448207344247314704236412294974857670612518606422718833515109165770360228357713554376714728478640129090443227796138465149486074371035944903846099941494675300812845470266633366480834091339090081820976896771160451501058049679799333330429113288464976017207210360804574556971664060644050234814461021215203529482366114184586044611904008097368151655520220122441227356944843766543557843953330773615117569430596139169714727303813423832517131191703610566411038948329449837233688666862562828307746344640522446225822857600174583560927431565054668691059232253209090071455143142308102059546879148297257057186380167400823232802086321517959939339951427408483133438721342921708699322029174187622826083183385395188765390971500862914912456521753314233285218611871366690482165927490872752269847277291698874235592767088169478195302593915194444238348064724606536386058289680437071610872636218847556366189723333701478885668898073592877684272845528665648289457388737738603639453434126220710875933606565585056761415183345727429218986681063236020627152944519786243385323170339226566995555098792241397606209328450561209134858597223849532792743970668939887373989275150301413307397483473367387816015358227889769360041402513015329273732706131796742123096642846893947045672371957558728970880017692637549115568333252457785596171844980548932275185523152747518844085995544385966133382520052433748181703792227090712315242424657467222291030776574378384028946507061309816039850136699577279820620382269742467712320913264652656119436713179213961189563174318974148173014118825859051356704756554942623335300274903093782053990407873476200185589076320513055627993519622412107772982345177565896294553948171419965155828476778661607096836771005508966686686354061258106884720587004281026799458212763758116885038336142897146134446778267084600301585598633739246052423165013812369455120080749635852839661869389652862098300873362240619367284765855367728191193006232070931842817813391396340096346548503339362180657008904589654474298475226905675046155879883148288677543744465767645976690866734339197040262038230863048121126841257567637564181521992539413807724253957726390989407694777075534969818015757508772740869753361782473589087167496112254955699772794728378501365309919311006340345487813300763522268141565673497383923135913383119898752457720465311571527474820074642966137207132052384373158021710547997633313078845833616693171431603873574893589680395726719918837059889416893070197254098642925487175823180862369118006084116276635185966295272141017765384179623576471714624244942401156312966006151113046418348628931887882653140690081402375424726381619430727977109082272357371697091798789159643413062544668927837464695927595769612131727223494888538848311293941641849206877757227464199153944264665076179615118964014967778616024778603744802774377553149825450787794479536959186121366497032689533878893753975594785151823648938184100375786645894618767989258977895313241582913356294556446550829328404558441242613289628406973209160482518079092381254291450350241950351642858953186897917898734501100020406231575959907202472226299378512083053544406732688473265287804935589225704299271347955073908295751691291498227231473294723926708235921570555993298371992524653116925440201602768039600278848576875818333625627423152614467031218203117611267852621104146391795093270748604578881533719832817406648710003128461337953554351585750886834261012127416841363509646172329522567787881650540627553490351561577537479066369574344780898219244583260670256086264925348611594440929861532525589859792837434137269702280375369302523428743034159133958928027993113842552348756864663662770859414901715848935640034225021077056833538541144778967963855079228771540573799988035049134246027003981712234326678428653385687872368584464519799927251837088069635968086617527580952037160810886035729951827807094185823532938097512082227869244691548443367637650109033282772176204632739363893091698237861479358228337030330507343132799041042696874085036256101794958775684033494771244077582468708502709249712043276205899924644433740209707006240193632210614234359944641249342411806222162524233959936426794261488820724132558973560958020573383077406042910261831716782165408603639406042768874475348731052200611052299154730203167277346829001079699171540935248316168295752325427188097205869577683544899354338429345924975928764721647230189447456313548327104170938072690884702454147548949266949508687490511841012241967348147873573191714908848190718169629651104830052877317289237601000445705766856275089642374332419968728795595134288279017841374337434955357902624179723272505788284204521926964217906921071275324858059073527638128939453914943025957521101225233526002958910237544553299247578887551246875857139114258349194783966897522215280716099203401316945149690438219417612509907820525067520000943184574734623895060621745489104623643529786052255984591763974677181905710171861439971388652548153439183831005474570708683371535430278916951255574614009015944523326653813656687964440009502345062018624027624153448552739734619691305880688012274158326652569725044979111962134827894270423207806352606028786966887188186072683866766063329071072103150362845624355282261005216930873383932756415490416485823750718715498110470992088798828367707747175260020342883765267449349636157290959445959578941024727886165632446341219247685426424881874550462722031324638997015292565856617758673480127752706736578480504001193158992967619808526581614522937525551767732929824685893071380789612273969756195430801641067795156258653808544934041794593459642604837561776972430806667159394888140763566951818326698482986755930410131039718121662197563612715711016899062404137678404204019557428558107108048260905018942177104565864479880664847351784203543177351332510484139614498011543932973805414081314945981907367827086961574548858345981141447361647581316422048111473127706943201027472878971790561740496331661675725218497072950720412498497648819359573218037801255901012235079216545670520568797536006576480635852220786096794597235344488858530632482917658594290992292089739587144911334971529192450070954083070124584424178722933701563543144998414437948745710322504480152910925832707032597609475091902369105496954990877940848332628063078185863104844513485821465217175377236535750719665167221985678129358512203191707139961597542193722028171599048552786895999620682327268564556310630738773401158247512496057252317128329266312221569430986921090734119847899766194028915201185490889400265893697276756132186449504454529462389261898825803917143413207194051424572510007281243768812987591606743602491189903473439283298422660154119122133709218920714495628311420707731213337358093280972288330410210994427941433592540568088961183379371873372660540708164017340539781161053944935647847843965524107393693889730122869340907216138525379556330058007327097675025800775403301107356388119007002909534287560464049927190197051669730545461930078434340810361117347525214178017710250419529326622969778529367061655682289752001407892339209675848930209633021819018489370827414366660834627738481668561168848867793061113689781462752081346186603940423561535778824827986773944431118335948641481782484915142288106100607882512306062478081181548988661221650767259876834719158645211610369033974814471493331506375173713873231182352620473652762467184481687688619927383770846366460847460171824570524683935806746052941858652979261730985588565349482900774649835350002265585989939656429012337674655280949282620220301403095618380259469904560669213341677005522609888566317421752118860798638591675566676015845379174955297348383798580594140372900823977420433332911789511359649218112591914524571580725661636810323428989121991269587739935766859192166934718733493618578729069721170775362020847206717011516460351305080689010530938942131160723427356412674500630922582890319130551468209579228661465343001382017612479668056098984117136359307506488473634674388280760701675026552269021231712412029302455967089404707159377919626442934893368446553182508346069872102400544722332253288539571863378187047424132167124535606531076687217159982295130013152974058271520483281002713922830744582630534325310679005300129026109067768616233707286630195168015887288437378800728301068558678492958995419271734870242131953976654671035579349400409421205362261039609514304337024680806394759713383238088767058071472078303760076801893815642041466069415659916085521369172973750864024067307734732079217019912991710926999914668025636623560827945473069386439527121828564619298432611823536631956858304052942579395574804835530616861355396205035786560524689872317819445404077163069970211416197978805518629873457134509275669719862830713027876369673355239275783977889561336189729595832680658310438012854320056705374659288762768801012772681366578874114836718589867741518942739962740461555464577870820326431546441682788819491599739761015628611635336640075281487176045523209345225314281795894906928390324584470736014755461451687407661048177200799303740645492616790211603041018217940196912160315635132520137895602953544530844273577877184462684488317920084705817298438224251228463955319127093524966439536806696424008812605442219366459393449578594410459080909585770266613891957236147284024913207992977443222237880640149018554139959845645141036456601959899776625351208241160062655837814349730129021577592535117175794164633505804129452098654539204488915356695353249657386791729596078406861492103482545494585179325848750485901509958031236897028421840336366299075152020073843785704302401814530264907672382123592967721863139115994557249524773631360762814658466085795628545545657221404252571655991002923902646650831761788039263597107969188311342769348797303646042100070508002916900048655631941011671961576241535660478771594950996071184091831309241150777711971591565087986812038918421006846337577422781157667316295559655181319311741449012223414894971760296346747630413656299530537229670066524825982216978023828450790692605197571361684484207940338807072220898005146680055682844990440225005365225906150776585680892018493465279351752461915874058503858883420178334481845677082514411451689655224533963014499309664763601059163761347688528767301937901532273725069529627681593999555800776028900640123559765411060639883895215852161275746902243458850625815274571210520089866296056864442382214003301275583725963565790869714629965386575307854983724964426834851002134052172267951893961880262147699901652480699597702227387121424787086781760983361326338255470064313220994840949141452834948076684279894701878462484890981776489770183380020565279827453469543494579440766765820404457377210737331568590234619574563620981997510212349791443436111286942254726207087984174774675980219905676268470474233755244285929026858005302310764221300883787694819186455407072289786201838101900699072010060456450049491701366626661377706167228858048909919042435845043898581806903765064500705481974029875162239437182474218941256306421815926436310946707901879893659160199345176706254125602056718632336800961628597847667564339497809832314352129511669480766612711705330070360864076268303811644834817241057002861057676793811067361336067157382038447638683763535952155670669024274106312890257159930871538304834578784220093025624339270542903373187506631928227960099841335966153964915390030799726367426406212618630462331471226490122640684596354003055562140908492224459812810205470364550423106720941425983247025947157263364955701711718773858451661548815900092979820073516510108029272222657461505590643560968229695003330747936892651398771227583582413187094974772991750948444006236560690989533929318137549202657600529999073232220958909269409586305655014183204331030615808939024691943196421324710801755785819759098537726389059775609442654231342894521869575047955810630296415059563175414486128589902471513577190059601714844606606899344099998203132781464683349605633512401079810634563142033181526905091503753313077494611456663625361138772706422586511513707632351083249679165927156926575175066520866322498697416688740429187415991818644992380810730969978144733261286846544904283056152130800257856033934345950473352895149027770174022610545952334562684927244562313060923475898399227118151810022326693733364596558461055715725688786717481420391785300011814072565342023994804655791255663717006562817879880439581028905130345856400038886514709189658481111958168210474997524312468093527575642771347981797960586632167122045889305537082322614575922587551983999100864593635636219894943865779411850394475789166096673881442008245835264157797008412430509661115271525627754747180879988014819035294195019883190436952406575217116066290243905988782215352230491080546989773162488898368807206308972290139096057048029778079048363304833912255889186096017397682830110994334725834477447021382580482402942313817515698731199583717221409127810813648203373938247952533976414419151770992772291691720313715833479220099848466089853791524700952718552144441358922938613485672507177148804859768061450440512213570570322477258641211976785544826381456713943498483461550682795296488740871630836590541413166087044062945489416642890693195146731094457618752852329740659665533327709975886341203981074749310449288005067852530991923639984179777020646233269350420566698188198486545925178554634416602872637199038658575288697319885818218944055408817602167268641482613314203901924285353855776364868935074548431640701929886077303351877878517781610499791990352388444132065515497394960861309033045736237167431740013281037689770327855269848951756129364712411796113565157454394882738585694582362641772020441708181092632207241959083488920865421547486171099548463761684957613601571386354837904540531320223319093344218269680310067140400636522114741858556469767848458680002557881722850936262670863110487446800142661314327032943764849163083550983887863067495935463834311166419634396374006852045674785036514274929182554769388339717439888200564831154269751529136361421182477246678640680552861175125042840727757965911675701126041527911350212369915290236992136152129419003069070148266140891155538383184345486815317297456435302909919700654703679285138033694979728264561430649532437565209404913708818914152537543417931079960226522431872448936782287269058833394543847440155102384975312086670942688252680108696795224516041916012184106595068315982721917518367183965679123370175751096639663675115260350681680829402568012158651085561928629354214985186269193436371690758731341602384294243558437572308517717714798692384687063784609091122850482768606914288179911228013650773263242990218477731430930854574567344055595932439268105521863781525085067086290615170907405331625903626116533074681287618664888567573438431822025345111010626179421564348544930722106659190264626203510970964336524293705304870121718562664292145741692293536373213047499622467005670104984039277182219811662045631650798229854708335775909561882774970810785595207360112625050745570527191194146090213623468441635818411504733515409549039061251801586722167241818162916577244520291682675383650735961157748000726150033919394884274128220007129198467972995432816561744769142860928660444226803991709910804849045195006090106778549240696318134898735218898112683899291975335772054114556850548037990760845072857154121828684302970922036255227889203046636439703517190884081660002383029334498656726829254789088982213505523951335852725210275211361736567723735878194568422578478921618135649128065146651928756506072381467051222083293540632376232650992414348065162692261033407858168805908427842349607272256105998659542027710719044112479620413634353113909673828220197742388685642535645553043878369223838084026405255009780326238458169218746540412677282086357895801922375041145467794651698746688509940505312391811193655269066992407044606191826110163414952903370089896133701655771788868720112408244725717814747697781052797403796455775826459725019517275698049786670895726416074928266270544331387232003330364955717155459041586419311851156005681263302727280437850397320524441266149505187731438057818649353351422294104827868487129626428136735090284904577234334399002008682507032930042159589364187491144510309875669031489021879435920375129684711529532587727756853531791485631215872436361666513233243172248380222764928317464998562024856450389498251037973668542376616982230846052219855206303369857956767824314536321991628703812754672776230149039459288545550084017216578673495378849114912675705339321649643213629787062311729994293601828542948654454241914208650227253058257609116309447140544601261535510288787322949795042777203892783148508813301166086780670584707238353952838687225990001428671121789227632138951968098125816592161620050467047780990056942852809531160248216503384995815757768281697866745096467785818538805979306386564267322487911390445203378935662895839809873476516936202168473226432232266129975423588349000952568041051632743351254330289689423676106170252573180454768746366094279914695506584699459556341157313845088060840554075581012295097142629604317480450794826828473756641433803102605315945500111963405745590675849902916957916508067920043373945120877499884499841356192653773370328407907862330421060287746004541859965684429707055188726138527114420555365297654660872703132046720128210729524882321232007590898467113985383731802967819540095248303409400059389820146047072209235901279155876362215933112910345378666765126029618374838661259241774700979000896210503531725728137462298020854878127787326389908559527715322508362499781845840160719231692489988443878086315046731604459929465213981080180037904212555015353665387998880372571956602753315838298357660747980920673223989703736377124124534359253374514417212320475526002987727830113161201150453315241373089372786866782940089255385240088496901048857340685835630254486723226054893185183430124628929237224718722876464463027958717832324045485958459065203194881115437085145683321414748984739910259875251867716320360040932426553932821109003700643540900549644097392820573565328117945674366408652848037382140513978664277201882518040543523698769868313217847644320375628712248974246493164787879941397434168243945797588716030390237545096977991019109387309375482719920796010234943749010485865126837041075308551129013312971792354583128760405777825633646308058004613059393948126801059711736190380956105810162615528918587801010444474537967219936209887153176312288654006171811725554955186355926672678986497739271749194155066193355097053736389048231346440897275474103662753278174823262517292856128926119022467243401797301883411223312592267680084710396453953255014856033957358875451026470683042963384220037781729153771093524908095516024345956816731760486674974434612011447018176592052288026923860479463220896822842031784333228418866931174066295444882672574990022611885514820397951442606771702305853567374674727471836746059891471861664353701537049732597777533371339505905685962553965472426461523764796792066949028670225025229359581333215724200712335342748812917598260348995778670558831156456413816641477071002430688336912687022475552363448498499313947081341576583469865919140003980436126179340966678911001077619004895335131797281339691477345056830162983398123728848646400325213041895603023274714848067165979749916399265327212527908837241073163228404026948364728898006365001105820844180184827122138578625860099435025435025472925625766021659922920139898868811985072959689212924560536457785769575032226111363915058044410742753605496125271354682452099291993412012348394749441404480539071838389223604760592164654722888479014415005091115064983637668491554457576507360136846812900327350005755971298245930437709751991878740409041534686127204840656790494280742620889905963188958454591568200647347828768942058222758124522352860668585065315735198528444587302292611303945611152503140054739089284129279812388516385804192832004707517033228154703451631927947003746807455199765925295658429432760049428098733557906544444873584099206701311656020888422835185076561845464898289968127770380665208495603250085678095183015979235967729924249325393410717956486898515392667554540331595875186446327724804124401225963211344275226114415365626491231609458247039614157101770936923983772751690567484942487955339589389293942047425749577836232556056134615625506376504514446139556845543140098286817077913090147810804702896298428263021738504397166699156020673786805753843037285779302651223495198460708659614553376066652835314613819974869389508122331439399554431314847380492440916704996751094547044688349439742548724592891367053046889086345521928189437905838159995558634700576389624979273624302232631885264888957557417929695019765801124857786473846066371096175254793270032789920031825108603027556915081971682648918177463543810865085917127400329498604253221074910766494442969084042279085603489467995745844370322271609405843569105254433247844404825885839249378954084150858045133011824115560508031460829550271107611447212391192383665197107156471558137236691741492271470407761681173122854095145126933365775770668741453244737337317901328885706854639549991744643888316897949514593942154595217241142920017613434530240959421159487886931871670037112932445310474578838813132867762091595657700593791880370669758769738206156462790879831052826684574483094176952397120706239214252307184667205560249742274025231860311204084394981267844846706877456404071220439186673830033915500721079974754298577533597934413380110262985171906777188733027970313949426550312586657272544979075771493021385085557583381953778368453545199861307542329835648535071825753203027337488924975988007914792699936789600494339865089924328319579380726966390799409675245290336534024587502757571695686681940611077798855565235018232760686855013517038471391796835285156642150031812105415725592906763910108290559368112134569680565416077847328161507051132625722425447720320547428865374404979191350584708184123223797868667569371347866006117872111852289626093605653541466495784500727902867756407007798896437340359098219118229697711037341130961133576452735720947746233089492975087512944179098689971354044081364214122500140364044563260211187029763435768589206106317297414051460973689735034879549862311594102298450466715649259515764662966618865935628447026006203497163532739253119051003535976884675233411879484214473796260195030573110867375443070755953633600388772581507037710715831532889836185851450774068413220397627767997262958015347857185590613295664693423344448382159191238892790308659210229063662830635256042674335883533848129146609844715388028538576407021174891143180507277454978200723727428571986265796162723776409170415189460540811707740334659236854506002468034869006920472337914615453607394970441623277405448224692842016915538649011619137345958744320604058262790563324402222653312067095323513181334615933441856358030082026570189410764674040948146605635201553617115442194138603346495601607245417088749335157781708858784327684449590547527282612383816137493808288254104140214049154291434711315556104824850759612495260155737013365662853169912075806778579713706313337773390114456430599078940618094715246933460662147467758065044855987842267592329753704957116209776172166135547442749626210832343067692726808851585566482501064086028271008704575991794492589166977991390684796153715225288471565238908603770047083339712169191089071429617608961572918236411169066667212775066752818618322483442255666780305414199325648090229264046014690181909996637329495033265272129459453126217604803562083245619458952158150582165112018564278871391016203231857069917693447513228907560306494663747826102982288790254618414197502663994246566840702610958438551427596000242610569397920544961504801546797979080427813469238679058705449064238582193940905291553655102541220654505212993712509444621365400297199416812034617751539958717827300114910847219426933137431695241436041265526084749027216390687873045667592563673480517480864813676602525435629426976969886682528034404807654696146816996573352273572123604438840952502423120301372942272764729955154041038787255419922915525100197201934487077831326419993031622942096701615332468431991145080271454383374756156593069998159272667439322941202663474898348673401782468223325537315396009262368415291735809929758011251053121219086591074278239019315668800877794857859148516427705480911454413130461394492087538464011562987595770799853197569922345493518995469675911902867632383328065847745311963435186066392615557277601531327510713455975280944995837156320716660066070732526066413337196636428330120775787241168186780419857641486066526251679736269531221448874471811379817222958550388796101211147111572019844338865972995314177962490685071127780888852366669412554857041567759867197614835398207540194530601245889405526021847736619666943312865777642084806317094918895377033387179479295081497839536103773137105920921349476116731503072222686307801108323188052304964932454186957656995843478679938906300467445819148614616341261866909842111394422563459751158359310923947124666250473671262308770482360937593694835121698887328483216558745649279960648995886231935495761165476588203501261811611928323454092778216751099364226573966113700867538055476657560600502254767096251882966237451677258133292205774405674072412572474402849778369921798222522734508458451338388573610425512475995580124234407049451793301139096841555141789709261417239635900432959638447575596687698169431861497287783902194697128975765499741921047097662110193999185220945319228501034974477478653495222807530833933149840872810861574658514077898645364698771943277296397246639600593166351549942777642967143767612117080587539830386013857535803576306485567298440128246652872313018812907647083826561002389911141686073516379493811500870477139658918384645291277857352644196717399673210010416194005043967246750314217090225041429761204684591217816078869375907325777830381794102275592154173342803799316806828953455470172005616245873364127897487956970464633470647541693465118369564422799772046205841292379113155963750247833385451408460052695619718962234093990499071256446095845502945901985930099276672067857406312753563274438085408628025482215104327076522154302629923234285667530163959111791913907108132960179402406975746039154010935726240762293790534806198664818071932416428769745001367176399639005981406035138221918175369794642844933064158460836008219949187628228266083246533273245976030609662029940231148025968119152769848368555736011378296019275524223379041595275606465346448169649527544450949060981713544249424451526751374374727033147090277039870972854174353620473799019122458739522878714211545237797593903162929594515220066191879065153775968567028131927352390274647235193116454403593767727984180153311564550227212038826325994996442213238168593518891359446880703291353849477694419166271947794165822093240509031080293099779205262890850505820320934635895394253111396839652871702457579577447921225407738615634750568009549416583691157320880736776705749853105905240199855087737247617992140174661659444876302114207215302775824952251323382460044021806984716923942320504894843896273446109101715910095902961890290327330276768638970880740669349490954818264654511749741201921969404628635429707728304388817890433114065648197077896419532253941425970265181738708734358369325719694315449541931817029649851566595761170026808160119247500695216272152289856198292085059348297675518306504814282324434658354797606403440082704753994142857854167891081888969040522790354010284122717843536999372558868884932813387963912101334327605756551254350107420766472280749409888559424088334313039931948922914674216045537200977895802853403206778232633836919661308686905259546483533075997568864521735980637449590848652732522465001591965869715615497077866980941196517291826568199128517375827274804878164692707650967820639026868412568048809931401640750357296459055463630858727915388676916225399014892058005158226672158798184095951298116480456657842169174071421836642195876643724739576977178947933807242479307107127059308070977896064283930328165585345593076524576003548110778988611768153092108592667599056025299266063226505905984018595945558766511979962002243708239177329390246438789572309262274803593832327890873723927727166702108693878474148057716237860524844245379058666825593841384279202752487076114600017261523741300839598130288208585351156505989356228885246671273020843601289018087911457208905594529342769831274023439962038937038482107129941456528340309471659837466359379077484245221096645765182540014123498420789076103504112862108722051798153760668646251119874352156711455362465923054601819405801523627879694779401647115674536438378794298118523590542043266202238735771086190734588591124662963306188343575711790275825293227833353291812941651876748263366389416349229271605663965280498701570705349286749536028480682112306146048484940827074332661849205673222188815759871076448716276653275951581128481711162787279793579068460507938036738686894252933451663550910382439630573095707775300503810691986122322955111381754946161024009334205052564251139580597119411926438561066503030610651730469809092934782490999720388324414486913373715863284829028718874740276288169599626889168975458281127447830605082176899744810703497753756837940056566034987834047034530861543993726634124874772793602642216637059344349158296095606859808331820709111713261127202786820574575188756367357732902936677273812864195059888419522286980034712261742259350205777227037789390518470970403096528139885546493446827731055249893344265696679479915406991907164752690347892190254444853463101207138185504456888106590022650337909940540364271685890984126744877942487917495497187306939554589402898854392269631840289651197143758660824706601420527180299211389231754274323262098946327488945179350210425708454539833445141851711402229138145102382480722444696380499590328779926497881727945755442455442644071708994286129883264160433781232967206167391751858974096047403479080629999605762946600439368340275233828427325996495065342690044960681812260113286121850722548676748702945124087575517329060981891740164469748191104002155014591619522083992087692196712114010595038179849306889217581208232304267764573133469507808019350242630729261992322513129270436254707558346153189215320471250009505218411529157976149487905350717968877699814214555365989671015942244908792883109122174865826950153829887721551027669395801563657731723849910264937340649670733744856588810630420575548865795136731148609756050920783792812176509071868662859845278390777412412986972892545070332833912071755802843081192048027090497356987928874105164342356578291140361809118126964989832274955669711150995127925058425979263702886886076099722443235135561112903095043584350797755543675942471529710881863350719175839833912894436303079000233713797302100884246544293981948329512241294600985928981106315415681712060486203373835546136219594916412066214334214682161726787223853700934489582532094784753884925239377349482363349239453697215096311125106761190684949282839046961968964116236049859954052129248874257973039097977309284625769745530252760280163842155993216747700562657906654187040817528321140874824673389201755006952002829437430796850934647763812996916848093153106534179044413467381374853664190806891334322487107674901910757897336292143828335384999786196002604422284529067888136892871285869200625903045500246442195791933647739567662812211620688213693431146048349761855660947250858436216851830599343020521281021142291208733756414063282817624778523010267105936073271932321552459453753154654043367699529367465769338556165355903667523355152994122580483330284828768449922823553496332545452678320172036130361183278771503841994508520611919838019431173380681071610919644338361150585449472615991326398642481468477276368809558489337285255584047941100100545557360624077241144142298453737065229410271404341925556266222443649733740193558388484221056584672519522951183281671937136440306249145554405191452979293387415393167860385446466521544475140993530783049223069132632270493781095295374560911344551871314195098319576080792699085917251869464994759853490217333242747028085187761381448687910885943988136675002011062199983139415793649553876278633172966201770073754906867226895932793654561248431884702994296622408878245378465954624971809620061099184958354873173210160521015298739229959145037631362818664575799656667468774525909568442583460638724512827692460400812718697669276174392497841995322863208611317957250661926021328108358423666277539671775756009221094675098693628648298199261012148079756159881469693011286427450184321409883452751638827561522474773677062531157744712654393258996237219474177093437329519415962778127755737046814767948763660263766801972229476340106156216263877851587386550520651237556128221621862429643777243944785914877390536679900013478158563938946730143022395532700291454874945641195252598580883673306303945249395806017486429496995817322242303888724412830586475233826470744437889135655062054420373689818614600050800616170673976885599201245990934986150753109809180538823426570982919481470229164582304073985558672067433977919284992440685201521040250983071730353055600849105991485251484013281479369760369247060091052861134314389072869130327446355174851980224462865984175035962776207524759406350675158557227003785450424252713992634151239520651262979110276765591638384617957274781477013518686371181078512312636799792963877775972830588571005405062765016415314322308058888750170668119915928863717560862624761514718593218508621289826897484064900209328870614060392261260614458366929833557722241872449413538162214706922847820082378781698334337618401385862610810447534862754120113445942134197158247906223864375886901373704962380668978115057790788636734592164303840961502996721382574777715308755182389837494839491925631336108403288045507366057545379125792112431182409445692428536617953671684445162882823385701151009718989072092743309660088438832322375709919301876000099161142579656821795128951382846792149030343780933247289220244888591275438588704618509581233425575580475080714209117072476066482191918948729868282363017443346203508430647055806257884624593694372982945685480976929980298805419293113718699540338242230044117642848401526092312518431851832786143777661602785846155162814589340337890203719465821422044244260425204826828679437277610881549236713455726727655988589308952620141609534089383843966762283683544730053104740316573985969581650632074625462893515127763540915904112234998287473969034505968744735936343952581710611965979932681627036524697813721367373129529930333740302905455420179313452776695662996109081748809357961248602376229496239921206048500908963646505950058912392186260001536320146303816637051593236029261939069659176564498202368764622595266639313876334327283289679701284595128698762761302818410503752518762271992424498036137157139650489577209909695835398475060348403526835782376849876003504529079659795502257350044085978558013854868724079270023494663343895677225023279940222621363798527145576628845288765332397378688666988126190817470243415485951680115100038886490744384014324854252372394832970464261142581333022113012593940076434710058251504853273160754437620518308379886965947767838501954910958983557015097821136493256464691390594206650161419250200231662604179914317314868942826570933472961836334678451384079177779552693374292417477961283756791007939038090665558680201989742359618677237321623355154433284590555326400348777445703301079996589880021426446402484219019205762802927211726193347748877258347618034799482633864079590136801794387369362649984449678295665378070820203327070341168286758150303832252874405045891484906460493111836350216050587376365870776034794706700946006720639740804282573447226309825107319259808466443476853669196300459934985098027647201891186635252157070765035513610214684715636633622634628490888086010954027407636713781598077465715096365598720866498799869011410691943174462403374196241429134704390025050131230990634046388741626950674376479706121943244604045950976546306397768192461219059055370949527568053552391316260497851970976093427963732650737513183095603289357247422593936509646831212997295681975662958509831860218577186701390558816691344791810345596306368456838039440379023759282753551837434708028913709725360748648814641271130499825722809163617240831084199873525171119685440871459075407176709007083381842603408360252314309649005170285317794278103341501959956678802025071629544869763420304580929230863595595328119640145701527704536847000749719586606249725045542911534005903662549105158603875907550343847661236887214968526971809744493633652319426283076375414895949455667464786879987210959915105546253898587297937514331980856388577838105610702476760074630684549057236317320541516739515845687341882635366449722471359284126373647462465691453083629943349427546070176216436072277311493394314752602677231795050908238305375748118852895990737945309657284559779595833909374315467699664029417184966203538343049011765726910288025620609081715862245203142147433780463360151211154562577792167615235103965676550409819202268081747271747690576734866243879928328849798331256285079846461660133495779231251915489592830938655292924454585085761268345450411584416566961393701119210022230664400505891622228843942225085713904717199670165783345396392268190099969822654974745246149992457859199977041132265472863829788921448378964870258644169589994262060136254069750435946678738144112387653133759013398902896732190899009683116742458405694566626520471803334187355223717944827959076314476166637079470204901745182303188688551437551696292298431129497481381199918347935966637091991970087170879692080972326401315261488930943896887421272890705111349848422488389439761461308039568253065823456433056175486456071161317608840052442315078637998808039215289116615334093178027663941356116392714065961807951841161064060250865060530974412860892480158127043156447323185648451712024050979155379541102143720256129220275166851825519122938499203960554014675702497939025694572277753649417338150160403018148955861459419704885174935780784273806607146266041574918348436555488498314544724052521838556355943019458521583079682291166266343291226742782234105645197533925426750840180592022859141973183436142248179876587201416793118527233823527771216543477790651425622401889207953611549076109761509348045513712614435278277509965748700526616358181968777103122563307811033301251549802251063552313075651476028437495082563585970764373627259119792104613181334447981666572733825208822960712471728667698836545020583067285621257126938072652266468205687006897527576489667410186102498817561651702743328401737788637163066905078573606805404278216468250599691816589394409539627118935356392284782429166785472878423392710111848698354060145615614388742311964611585004610389818687183106063328294927847649547929571652790755543024350367441024228996806285671224406564393880348324506869653231780982849774120826680332930161003848362969311864237687268116829393731062293066531154324953154078122005777290059013939682102188407851829622462116238873506767285918697892529562290065653708147392732735006242681372466529432703820929020978503534776988184045706206966635030450036079214034706998779208953198611077912117838766911383207925077841559711391167651928999456838169508199578075669952273089132216384387341569399436229738619585858824950103972274454857541112124652438461349273445853580911858076584937976796671581617444952516279836587359242436810811628441107791520959446685263405895051369680046293861450750049535374387396301772947836785917981482052293402693029519530332697831203209376391162988627960520455645480298846204550653977523383627964113722983180012568138029508312307933608614454145217575939159697662186960160732200912303533520406615992094033546952605904802908789148626646509991461313552120348410919643856974345578794612740680854539894687115996624103025212056957412945907213065078628554639037488023040211659648914679103403199256244356750132671310340318892478505863370399472016514087777280828008769536398657053354015234678045692519433398767373617708932912974234457225891112821273376445723730689011922062493435857963540627082171107861686143656450406486769392250730502171556763399416049702626717656734648417204593596745088162896999587375110785434617176419781098978231506916925459144154589794525230059735502001807842303031083915374391427612053413894860698414683131977179144090567421213754785066870556659336242946415771900378341470821795242111224604817116209002717302553517974941929383062196731159191504823061789209485604125651010757488014841985149286455935386075994960179644054157591991238857449246056498960098852867392369966101757702711663427848075962961781054767785794584820477857683651935450266568111450617542381575438236096727345266994636313984761211284642799341478382502338000665057889182806079233173288997644808751596435160151039090236568789538961747767178212628126488678872579123372677901425050169884807171164326390057586123540181184805744980724196631466971183219569675911168694201748409683335749413615329754567924512970950345480699051166597144159393926457490972473784270448324291778261346519953826350291544762617577250665317564060532856415507373001198165550499881399866175441116162445697608781427233018675805071946055936320689086694837789391396226218846143277480432954553038019728851799398323862367102569378210128784363484529271210661759865008372857153370234118851562320518719879989147583993083792965315205085572364997296113727647728579755099887241014140156517769222087433690920015968697840248691508574330360343416237601202387072758075740102615311506516940970860929133493407024724765206617225373035970627302779641991371476840636359091858720827664459053423633323147722414742181116200300966800132431210906323010114859744293401745677428134327826641165358145396119326339875016498922943518862809729372577643729751712647136477037017412850134916154232493092063588161158050162146027069182554474514655125350209817690283577993368396588263403827771325013406662209839297419546208354347015522623231034579377805274059254375169465155179181222519900660502030989918377247107083342448675392918474617645549489398120134151078970603668615407436058353071612409854533065445606229662448312579969251454732146870962339978244983815756286952361569974854059470592681215467646760211245054792180825465333276013484701936263455328634073423369674199835216779865931865627881489430331442168139053751984292186982339371880404357832549199297248673908513521874141389264503477328836735608003008533918939814881657467824605103277130810253190388883109284949311822783552658334435375468610909042898944246179820794088475662561369300631146175840303424824965340983559638519423549701768235811309124537055547316658998055042780097293120618739917130495360060248322303341640112992293948830378736945520002716970335303333977944370190188732061518203447064624840630923875035225666198838201079206499588762389176450264862995323735091634573239353369145690039102936155782086796816657576217019143733124704587740777200957016822542323228342382008471989631356012756072743503097468963338615875389101924039146615859949405223312129826538371956851623847373833450395631028289132352588034131353656468534490625057067063780716544099663113822939421859064517006556733695432141803540646433261421307507946058136566377486610026801036099510278531619610472994056059706301779206772353500371511315997068045914391094570125850551143639612522322019828963623802874767139877492106966661506394991515446777707738163846762132113591121665351011653667437669631892373299556465063995566050293622341361832326574689334136063191205816038160714841967625687416860612885979581523264584344007486217661212623941875641727416592887864164535457601738699400999981504081825494940655595877469768453757772066813743179133868832389470783804008818216616839644515002046565842961563054827560945701986192630637983002493079447970614642269579420403475538174044698680105897378978856840891772496898335234656052956566216448174889437221202220179250382395703144068325607449697733934504244033092644417569099719373134080661487636355758175891708403881454729625178448621107153193352046135444589885349759798871482560931397140816686450462736261119091520643228321485872868445049521275715163450050886733627991703325949302755738167618147298245185607811970818321440603222053274989604085151126141151229904286213227007575219028756432032616248130696923570757547934326213503386341342843231567365550674176057051684934049572686376809348440567864479100729834568471133274530660407321850563101957634980603914278117650953700947027989664411684266526280152116283238074989798626077393424820606670897679136771865587605170245147558135708066725795442228381594445505286633527570256137105181654843643897654818156538310497807593254938345455570397792460957096468909685862301261373982289525442322176009213346508714603260976548593282775933245073383587991376148608696681644536551881316587039482530448437468702153843319475728652772019121445843789359400002958882782165116200285756133342677930632757446131032420983070335740990518479128785549020863388646978461412195841284282185044199512939605906498082310344800697625174775757999739374529325271722982015236772417554641420043521249951637957893977090326650398352565556881513564656102172696165828212613857370534926792017371256966706017535211699318021514354806131145522798820304433984305806885725541295917668903560736100002078977880865491405653083447287842028430316248118554390832038383224431044960336678097048562438760458975488822481212867371496186810549240501643817477645592017710725796927277605410352571327956925383856469354524556094772274236795600381051911076264173139471046423817022528058585216617444342405033753601469647996059417267640757065005482068718964764996015792459982727640313352796560947795962925935388966916549470926095906350387275531088993340737173638753612798886071045599533783115665178035218670382339798530210022304058903990201285400430468305169352045113551148027190417232405706025855461117383133413705560742885799859785420149882648276130671619377993978569384101924312488634697595166719534639777287562225896491290722295475494641397638682608471316103926415509040570200393814425375727939635627208275510852456473078597958074268008951100868722959319286310959663542712683938019370434234546352733004441486260501675796127157039499327355135983507865604922656901780390714328565742702371775239227911200786940927637454358461634571385227948139146423481131930588826456011785369545052107088166418563201665566082905483841048212582325840241143208937509396719315934716522368605557343435145459277071980008349195505790852042388596553215816243241246294033818540840759409365707488264206242884872989473571371841879578776252899220493023050197697867458407740616788120840257420393252130221959519908729690538847340601124271756932493543332834299643538251959933081823853087369535857432885977732650889842717318022598886843506740885120642197596597167061596332762797598067639745755898146720435840871314574725142209437944622621162703328412000905477411613107894842898734820270462088490431864271259482840553690296813247327656825499552611020254518816023939142097613505514886825849899886571976569854666411369184748991877545718805902184598443526049147604144617881097179196322487696870092961964410959090529912091987982435107354114309159180787741725288177433980958213452150706961387831929316351126590350662086286302895086605377189842806015775130520943247944645685137077287633610818583462688840949890158875524888324156335289483630969317663239461700860605447212483973414059561132845755251455563955352807786521946984417983558464426050463057981564954824937256155402796514020766762956335458588523934092253486781168677349224417389072571008743739343906632930224213312434163145528257268715719714424786596884138044874704711898486699843023802866156096328668994273366469175163375214463513297968306641173430761206921434356124998084530056928943189807179735490011936548185524348201885060191202557400181000924335676984875485236304056115580109602173185629185783592472907659566762577853770556175989601385205406697632271406661129827689273788621789205891612808333305731025103858463886252428482584114891958669498975059252073680389134797525411029039016591226696585607239091955339515852523084016261446674162146027519247413544957502537938669998076882300468298233503678698813333076961292528812137697412781004235574273521878065153065998317183509640223667968715981406069391817465426833696010658810679414194754003076939677727560523171925750189708305035737328898021416911367804195370753320093313334546010650410199278584449906369355212503716479354718460791317878994801383487992805177379689769009054963126683317362804701197674514366224807319036752344124194422904050955668408827046450995803487096545172045247187923073269216420357882193721796341183679291147362270631768503928026222794545619064283343511709661059725552286197194868924325501177212640741959647694389102247944531595665268928405024795385927256344247349470185904754212510051780483817799050976494612762807115161245772684734282120987112477065040041443337111662498323524757123061857907262323149559430287228303718833031350789890960852900068798268786465891734539046729153493079303699994526036685788571207581255178971678861316556831718227414501413473898499819050294667519899379490189331616567619465929623695259145274369670403829688171291039735662238583727481013434617768086346274752790431041867076233974112774708994106470061119415993241683851887939265959190121972065467045457280045339375912214822857423314633327001683829492347469643829387720667964854389553925464101840408262562821402471065092824297262172481117013977074270821726652514315556751408096818623922169276280828591819868450489269651634433387459283135983023597464079372014494828441135076591570031274919565829594857692127024844681918393003279953191158640658692017197426380676819710133448547444401377102876122452594142896401243067250804984945566773155325260276271859589895636153736040450724960770213860142176025390167310059463037625964171943360724394003906838582038195411264531925202203378870844017819578992245767205177718154285296940991972484641273043790722613066549586716092482708755157869311595037645590172616430019221322675524234976566550172503719694176018992813427378577753355120818351542372093601828847482058483540166135844554120595892889220426936610066301720017793018071338852821664485844224000376975322971495531286511526793807771622818165988831811298384786698605974194606364061799770997099814032763630345877013546332789298962921566428938991818478249165908280630058489496027185386849305897522302542527949662486266992099731699207940765202000203493514107020891441229820916952355981681671050033094150703145686198118970393131901864948701348113815215886229943963571731558646166049154214363810954357127648152126870927392551741618332802047207949019372985863862549192528399704155528008526224165283640911968523246371001423729637736211407091754010603414456767374562282986809786856773487885205641912126554436683536716204925280183465708772152568062765085667533408168120183892289702124784051407686547509024308751698975374073062977723081077326238851650209368222647066029361616607767939567880728841148256429684411480993081169638276724209415574073526063133207477608370560711638104152592908688874935217472159319447950792131619934802728901313263238741686429024725412981282962255631379103688757819554506504516515181145687165684634553299639815010940228284382888860118966075088557646125188646693480456370864817523326869057711070396029525199923643421461444819433441415770623303359814826954718685505736236969742283589922273043259156598698954306918802691395328203279122460611002101532742595651326343778216865518605952515925216361365419812036009336146173797319973798504176567767307840211266146725666926982328682364119298986328077435747589237809414304775943590911737863542555634638696513988380039349313695055957949172234182224386061775383186784752819880822983393126382273045619363013730987965996862708222658360046987885227117096152052660367729300461205448594128026780953079575624148416553487695768191154133847474474363818529162800987625118095683566796190520333462512324652003302311147124403245068721234064539267492176583202425184733333742821312281090114834540099980970132176466668827041772858085244605257078360989023263746968655395738565776678596079254970580064590064770876297630688670730028786571674663844879151405259624904010050171102726967301409149965042995934794543118929258386342386206301795371025636006972514347594974518486470784840855516204299651179077389963830130728813677187189345174117180482011676427703204805753376299726784742950170304794883893837763540172191890425424485446836929002077405859825770020680812816261155826353392757407176340093831529903338830431718598265353321371964265653870817771183985374122230358332852173222609905778043531300261370971995275402129362172585310058999298564374319574007899806817191712664336842548405486249662712783927300380507476128227206539700011350803897160477181974287119176192209473544752937659777353901514854682516051956117041695037162052305831538944861670075914697379718419796964032797157296041656682437107625517466310785240409364062445174489087883085168648344991349161390676343748936271681652984256580709776183880690073735380174603349625486193410411182459397108038948361643597166023023553556670214444080442533408356357016811272250895884673061773007897152833550800404580607199539629620258250093705671547871081936532743370437995481343385134209399706982681533324772805848630447752635565447971342783176777676504387727667207303829805225648557846695874611645464394255881787161599495442265357430583291199496700826049541667711173332354997719170740587954075235030028679861116297972988911584495398095213761465848026957935908690132432250856643220937136385947629390793351593214114109272890637355144114007599390726163029796186667989856426603511591652446858724729134479978133849866167010153732666298945994822778378651740495259768351946142313137255600982827211609290071658150625353938425388007897618109996455626932284664719466667933839538843731245819167632273797269496637537093937626309686164440232374146719200992091948324804625516240909759112638425168270900483729118605112300868984835936230576123312964629091747525442010837408917198322514990745850270180825793355262236741736784306122925383676407211406375832759675715080747865980778624819945115810720511726031113215596532032603492353575276031885257264474246373759747573632992083344939331011010421106664475237511447392044261389680478400921620377908877775611024625847206467241453424549794446188732804909397967870072875538010818712670897473597316256490165106581167045027087666749615983283103073201051342951621974999619546340910167688735815281155437549195414704201407287838770979161144126987240832204748344131819954225265002599327473610139568815178367989578121934114032137124434398766445501453315904036504053089240127747775104227725791910420228884287872067596790268503982217738243665164607569967416691792133534020003639110176031414016287734055708284196682955646603162057803192775098842702834466446627556819553207483393881709746031534905369651818410875290445868534768252018660795556943590437462642237901586965809609279199435435254751430289387996833600485997624919839292339075093913473076416079558210767773042384716514379522924843165974278945981212785325633402774286291073874552065319886560723832756736695375482342353748546251206642190783447425820748527678115020312722984068080050901153331984555752219952618812876808570199408925395009351087285502587990534466350181087317684596627776299499468704007727679334737096700936370438268911465128876113420354531168394702838649316994091166800610148903962218711857602958071012191985179413329007509788265388765217734312868348368245373076620305316757576994532709171338250870308635385951029816023832261346909793089349224855759317006999004017035904698456638902671178201111484153986875435412729153806956084755785744759130897912596682556623272365178873542969233980521762260509542352781921461481696586215093551120612644499941065669577515188171423812081978238626056088591521250930705192669361959776558940172454152828288309866874191894068160258744924029256794978924734404399105161380370637658783241969766504116084323430942276339228022573958437540927992815293345219800878956456585759162622066166150459341807163138297805516475588271004282657946949466879492012238390207950095176987574225814072508577281315032542184803779504244110703879932238178134779356001819233190490293231253048520540005219976165778376074898672082628756660185489477162534212804120498277981928449002170294088656034650351372762405127298774563267542446867051668685447457970585801806689750698645871371942800806164163730241093704815307833574364907338589444571453580763636062606293790638352888124273642096013932500569676550151369543556425473513360347043697983098574620271406187874043175037379863503758237954751076458415206465040155790711741396002774599920797453403719988093728755047907747239569202341050078218390881520084970507930231322705060872561712957638372421019868052802799458142107252665196093823694544431045820978891884421177815979671352205661190867876579430939314083546182131912609167136500938305008239798835037153047734874790753823515872950253398726657992040908731001367155165905187695051353947155274005541298334428356303678153059812790580786618924968842196344506087712966167261010530975956401458782611666742376935608658291667863852083032659510190049520703262394616126749819847524484455853372792181622294125096758319373530494310418960442879235912348275660551177997732098327114225391425682934262992915629183967392256367404914576225620952478208231704017426037325148884651821204747327773035533358310469831406140530085066816341575741925581507717531091985566958722075881978674991091698285893519895445999237522277301470151856049660610248568260997331557886640091393842151129311788777106192085453230119939829195499234200251931105208161821939209265668523123782088977687670612908344088170577060852394941230159505850635753834695179108297560948994746020820174554841256424220439151724111290953729924698395069505474832064314125304205424674668301970838113859700569681382415425820473990841329938247958811651759411392298181460751271399732272426352234640510690982785526942150085464238118107331290316053078603318507178549474182497028873582033132357715992826000062448864794725564353980383056337329751854018045766858116088371674945112735683739547660831963169725685449506148057784099473566503274820387369898416986412199411681861962955786344601577279150765136245144667771885067656762493466601460362779123196217497839377679262146760310667283726864841175268583185095725089387688427091840126218207160951710187456798987927250081665671898280481617824618015197133044381981200213105481053585177100081128219347698678046303378191199189964524048146874909470444992078599276481938929833612810685965131717519606878207826348285236528282601460004445014428748582559168104085820505622406681600474621262909123192138230379309289718145069202997042915789783906450937355408219411161887462217040834837516483224323192362600552257501308005598837976624768941130964725375849125189725088096784665748492385213693998988792675298156905710503733248403533439123338723587703123412033550718621469103150143865422498711090489946718360841668757032639856073932848041109433612019031815512421263796195553700973338001084081170341080582279176875380199582473324545164989886291749881375823122617397092519556363033862654402890937692373023274031026834326937943109678509907113477123162800142071961274594656417884757926928120552233355003424828695986578637343805634280607619413629030005908053517425509547501543990324303482508774008138324290011283484711567253669339445130900551023409728286858530950241444263428384444760690168694450256182454613865143509699452336951571408571774745727817424973747846794824972853697760697734300757521665946300562031295994171776547835661392326967704232229385778793741911826463070477215417539410203567962900576288624033772836212226541284523365879737456093189050769769352601145527279915330005462076912309737721108972056881423218492352115008493511235592595864114327083949075134605630144031286700045716767877851397149915793761338005325186272894048005131830227857137247291887999905304388427783702694759856438725749179288555419144715928224541832908200539154558388414175631099944656867940343851419830507638301041450694708147860662973781110668789949105094154966933368138696989228875345148102203128552707792922144523290405290487853279916501130782276820114053195037876297161762028544539587017999584771765511543559662160365530135935504757757035567432253063000524465577893463048224111898949726432012337386619959114392425647875147147997379502678217803515751703055725119491654873177866663526871495244548607061061328114041929569062534416494783824969705768803037506990306531016990917571433677816332119222996702343631348986531683926672311474531057792995583646601086632827491766433975640543582172956828671683748436566519146054201571016577276952947422648159878294667156655655837076202292630929174288841660967321146876448135597671394742535902344707706736433466680487023371029555461005620505545044453982155484682771747153517662328348085736946951793040047644337436927936693228047538118426179138658318246212104702893644801144168592861750222955947379720604884074103444561889087696531826092639564278703128488305080131848393113790969336833119085915056756168010435943587279098225076893920085573073259035242650827894216371007968480792578435426497300186997684979643888752542257593263712175023654331053932017851093388476136185638211238939433495098686504296319643885790114407817662549379143751366026978464092154708325789103144032570006506607635723414753316128162028185045295281242531696195342171727793368658246066474850806289402028577595811084874694383716506681670382893094982488363892933379677930767035077131348315818924646362922395750182909056034596312885182798758849743237980782024581471851759595505597417013768729296488816645697021821803258677386436242953143507263945709333344378495711059871576714171121380472391624419070095800665095459137124444470192792202731762834467967817894729744453564352789381052149316745240157617073966691340943693555314589611584340567701497280418478370399713658581342683774469640314867351761452496071320040723145902341474084829508026972026460709361769057359987654042561677761803494328626545348171068216998365103859392287468549664871622077325572448373015837382054092596684105872839988907619846520068474088386860052219904317529674059574702780775073052155040310708037989459543042944668027715830610412486285669004193249891839666044537132760288447395605430720778649585181255395128580974483082129724939369214776990476324539055079723641220401858782702039771588375997786312514704594115997123107457072448794665789686240715336294558664647632443128476602130563299980964827245586910625941586611728249310404334850988543108107116015287513782483731839559375560435003174508175759693144743727810340433477167965146213639645529122622071644638124523260743424215547000132785036426463584146829822624158038899815300408888224442878172392826103755119912637290547687815281897038713537538903668670702404349146394467058200919533052500978349692115227980417661946352051097414500283957982045367987816010585123622939291672387530729619406120588364183868939888030106837992736012385290448319226422237831467136046613178388181325837276041129101879607955931131248341237500748166937999553127757987428254319286626963847319713697024482410347297052899240124161183533552993734800389443078980469520181313189470017426729821368204895605494776416904220237662359467664772403856434333609942077298005530926169981237122008016427556583544362425971133747400687225620425622701146692690751325289842552559247726321370074398768371149910974163764160933878056262224951286509086790577714665475877417722588221544097196075755752822421357112467364343691250445302596478290290880398739953270628283832665891560553611769419390448113145181103873279776881159815064274169305394571727210465135618990754689567903304036689230445990554935186449161994154148686840515695175818205667965389311925950394554533211704224238728392268427249073698461814427420820825213912945225098500422571881589418589534230717143887151888766992928599932240879841926858557678270337343833760756625415733170785086694434296817277398381871120801334249865950112738734403238675495246192896842859045581380993630141918489374715982773149702209830233632181985756049706613446984281553518993637924604074358475199964800153134852930998887171524999536325066932014435845656284430643729583258378790330275283070316268190474571964904400480993208165494492432571604027659016847161479216930297210986184900841963085445311895662457662836144755373219774248173853906095102146209231385309832125333245623755267409814524643099196109150656816448367608509872458821833342724982570626620063280273393673929036491086357719207013849072774010155608410530608144142820675512023308024683765162910434311500950604675311320173466962389193314457140393573744313741627394191264536811657431265535742334368043620528274593271800158286296640128894045817184245047926083447356028404840451261058697930261795395672540235917890783694234360451092020326275329880365112866737833558667117923958573211939452811951457763886556046687904613700961433326380299027973497606127225160585920661058394731745126203739019835355211496808412497597753667063340995245742879083260452605207125909575107176408178507147353903701942933240554583866675048054411495709022226949531943305855749220432602489743470166833239960732165913887251244247994649671954643245538153334453881897242912928086924020819891141489755679227533424298927156431475728813222973702609951800128824740182992570079235652883907874392811218404235091183293649775786753432608642111663841968701415623554469994208861200405879145784290248991831700819881861853177670732686502584084782264897665421975867967846300437007787347842643828159650205105181041503844523824618657943789545845887915381470359339482378731299888316861564951873657962990277747196249748462793924409248369771780029773480156505499971472435983254841306715861397619448829856364547111445249876096973885561989203828010260689621754814495695736284706266483624252061222752898226004162448821751169552398055429888275543473905421084017448148667422414442841241412350805192894057047680037949744262982069457106461511137375295230932065064132342587205988776001968720648725935234127452079392168445343106119736303972416524436429167971709366361757414499137557735519788152657396706710344188631054587552668952197765975190658959369137768456803838966413942073971268112330863290358885153306021200473898081319689171271078524600564823741916824216038338835848262056009531050438154775587106065853505117071878534526860137447394204787245971717878659880716265721059146516274954911413276057596756907664953662549411635204106770676439186933396224085337176536569276448676355827706450772318427898002017314165862710305397750724434173780036189847424159538035823816808291176487903418228645657618504143814946201625285771132213177692745241303932643823811027850970213827037406080979705832772308551184929553755519114452577743390459167264104299965792043435740347088030615710447966492984643410377351282798370999656654907002148306313800555442924786017217362643521734122119433512477388989832665414863363045475878919357585864683407891743320736193383860874114234436655124837548049986879616957912944475353804433845478731518994226909176780851407952887000192548078873747617538816096158170906061280922271877543793318722207052395633665128503722150224212196664238239439462358362187845389732896102954933183123198111072709158813938239595806170293905473456247107110988601894554102189405011933782153650763337461211165093199072981384510248462057542028792539930387523578381228485768723814441789177881682367210878981674635253896479949102247927577326823664835512729424400226840319247060371762714396457322575936044752681001873534312965064143126536142590811783016357379851962415759824204923200309886205745353270635395260984652451620621230551229867739468299318433411117392542400318962649371612751441682439663362734419046687886858269658524857762973378137901542881627310364934741797431579242543954460099697926984088874892650486456144689733260886693019726098372457171506963330059391367625768741785422582156958895879995122859055024289754229732671946953030756191116208068488264319934442043221361375523982303637494463724994644236005950533926194778608831475459618460208045118455749267364259049883153964440316460605635823302552420927061576684358432066302928834149608017334049371697376830260358394416939804019491279289682466965100840971403699726745298978027875147918576798997149821564362257133518566141315682965376837138573739762211789925508218940877183559514400020082206318208141880730837355403534284105976367619910236240825163536714636709557756876503814625123508219381372072576961755933414371560829955302949165522686854348801255716695677418797321845663833131105656441895181867366216228244627812207194965094024896054569285234035468501250908742679519387963985832065179142938460025506481664751045968643207003408834719235858239778026684444853513926373907461917510180312522072734746522501521688668111386383059619847490933178387597919167688359979909095732716716371437758543170107788696851500105294828738640753630625203057095162036813086123037516616639301192509622907277069977433805607434641419821744046638176832378327262692564014983980073340876511966050076330441142730507757186670204629800836583287646514640504795936561435460125983586894885398082604497562521949094903481967558330017641150730552162012280743042743956417898509912643857234671592885694417980899082570341934437651403526698946856315674263455021450438456026919594379114085754951297936354101782283657554155882214141043857443367270631095416236808320821969643242827526767417993395376881648055974844674535668680474222167002397548410941841028317170107092674383648932292175678703820706972823487363958964445254824687510664648365896827574992771179346396019216619489588417715382886004468497609925175728020182869128707438871812820765095063427948085424877687417079750845892365425835740933551596491837132318689250481957387801842680769710311890388620322771977825973023904489666918641961149191219735397228582695787257984331884929713810669606606264480746291507057429443789331291298353189137714869202084955746127192540021745425504175752819289380396931577976042376739695207550888965266254631757260995693439393207995995676142305008526424259474852601790733424945579194927338026039782152065935617288087276735310686086487112013243961249907297099489652144784840292467329309602578373718457791841460879710872271676611768917940769966920657826033169299993931601228538742891299998872976827695566857705116466267392574621648493191391668044241995852482077406756090111138156765106751846340908822292738418347593352689109453518682309303302856360561993962174066085986679934546754472214401241024529960068773423783222340749170189076720861398987989980693904768235797192535038152700508230395287658547820359141699110114444923913468594766898874721823727851222857955774585141710336256644478728634611025818722892562700068499199501921975949949555521727686864894909311642213088905087255718184989362213596614674417843038390102522527157701989272259788032797708615089083577778543534922567298404972022101206847557481377737423880024556679522924280802994074470202510081634333982332294543689906875764603734328093634032374971617438779963701973066679437489921849854012390025901993676320671235928042263924582775694091377765120954096703179941156044085645625036972070836832173556822814017314590042862714666257185964587851578920561802253105417248334864910795044605564914956965438723181782761913806079725086500952531758412821093693463115569758802341373777920574750070634982741703593399948055181930132035647776175957479234097832556374989306179261807663483133434873681664676026284505561160003570025030336591513047086588078706346190270010754191090727100745218165471272384386564425112511919403698615620697381561254432622635937238694495464091673762902756227720470043145839813571681872827541524920545699893286078389400331796919198182445676508916714250684932913818123693791942634010481232201167180678449953204275725630365625587898571137168756611017803794445160820188742932923124403002340193357240168808348378641923503822764607209106800260900429260916288686879306548685818983944717163538723952787515334520325280580304494320544941372770186241298058028286568525499726642335747822393075549456872450062213649688134649812224511208111815681959855966127229805852459283874991407395952751400351987292600352034481790878656204897303592185237622296691903977161083079297516998829727492379718335662353660300018319069955889239987687593145269699377601187626651316904940139059803714776019669488418058128588562915406550188960833608738330533813578757544954594134720409549310515807123565236363275532497765700083806763253598917712148506333936867107211783752167155746070604639462735837927276752902542575676961677222155596024834769922854617483768716393396843146927858904122505090444209874321945798630752120975420785790637686928580499725937618352644602770109691279917146903478281365668891724571173184477516945026589526180346627099150364805842141804281730884761466065440758605731482550594249949975097603704812685514944757358382811113476031448044412294543189944014900261603541437593190096473357865200536798232467601419777552773457011249491158492171067977026035239381569021755014195272857190125472654767281157790016228061506214803767853248272749327899416095651291654223743285769407672616102718006085656689834551882583234427390281519245775526690299622309730471728266685321621646570468693553770797832965384457410237147947780748949447452307105449112088617589600992712454945377771449921533577680238092477871914061185171222776415940009801534058698923350702360015686142238150514737099049046854436271388840322208066635139876801662528355190062752693476068964810367087349165897970818722169985609761649371119861626965400377458487232704573375733298631217947753007458241761639521375931444500658697007266021861468666750012935964408117539463448921751029963526940155542531536792971853107692368811904496915121585812679688297397830040086902511809636593455787241328655145113522677473138309832778804080440912559909619787588325831604571064575477888054727130917693949771335771559873128687946736568753531532639459508761118046929132670405404352195348787184068393266614201448300797183057838079538306728896124238325159455705296066835766031007429401433288845779437200418570356263165024274752348823673789107099112515621619757185655442253073455618988499775750880856534664823530779277769292583970485708134290684761511564774475956620167475819617662198184864759749826728695624924504142759838723491376612162299377893767964259235543437716733716263315634436981916984134480382527678981475482901959229090217194045638218983945269025507279780817055358597922697444712514532420278618672012714308461997275752562727583074485946615890569512443046409574213070177784553128781209073575696960204074248747601047659027566790373755232893135579295255371585668602553974910468359750881079175854223419376424763274113121449656711981960372448097452381990882469337674663432140311492746907046355266579897972828344012027742901847698317430352253957143467104964192053357622358930733552153168868699914693939283305678406059554975570865973942666870746446813298043775670000919498786496577712192531406843006376627864373822511146771384484714978969590467136925522468837374531218824439316201742437641268787582346078873254583129658447961042407227906745324745929151459618306637750970816351339062087286246819873812248575684680955383352055125834357154245788008744371733003963654861628414821341099774801412007877653360483454673584492753800487346968611663776371758569252535979732378382131869243055317906297385872204732809163752317513042167517312597861694469581435693947901989494089996863575628444356845695984585310267344038527816521252463481690945600146556042290070397279556907453364810607909176627936227213202966601598402478237006567963325862745772904537613580728635707094629122365693439942502856846398730360683133174928764285689792379601996187665379833902900913247426697203570249757630313802150920809931553595546274411474583714294010967457142080384384807732352644431273654312082410322906475224941993747572290401663039164212988192639669828308093572085318060223181727924739786053153042287714551673205046931419905781027656207726799868760798937645223713388287274455932068218487139961573562610176543053192982025139824440664768897062537725525546810736784316365646465722520438938859666156190665679155294683336266082380952987136782506268451279896183334325698250094524622174663868835914409315844109785801877460620487865020790780785540490458173585462574375704750383830451499434150915804897396696777445122597215536154994594653007739331926047281267600153348577746553736474897297680527398664573499553468187057093034511669678508931487983090147679456073084419190699109817555738660690557184319332663930333523320832126676225714027494010212793763380725154378665939762392971660463737668515303305878795235140802304502162670588512972032676181680648660280869550301510761951873167990100376546146188507067592545529971943541641621779934873521182216153990714546461551147324291831915328072921315954532538045608129170325554633122231518495216082004540679455541626003522763305380163637172356879707975172511110929549855775436415666614096401094522211860748769974498789787003867034159196451067812150747980162919069584658677957429196479873810053478084045471387555331210842527476733903943790578874669737891523594420009854575889377583238376774406115772026418453313263056269066160232833846244813957014128286584365410520983249271202762111989041482971187816499628480185091371870595279613373495629396026110527480853119936118006366986834026598359954054014159164928725219128836140001997240816165751328989656743050176179915021812465887701454553583118574351868220113650602884767253249810766996783695665847244251588094067546386052862672445189517259491889662277920398025432233999140882164915646710880981701002135329399116847976373519664752015833965829389502606516244516468800044389745066027241861174110354130253981222827002310477007543319203359159095199450918419539432580324223297163628394014561741917094696572879763707577153191238083154745277930197543541765124570195290531398769577981001456009438498756034518353843257870775312641737914906737667526140662741521847772202448619427132847976734957956350882650712436145130952820712572339566447104166586971754074396117268305633102390234878759351742785339249276304597938307778150203715848980208362942487473680296524833620812177799611584983396818211941361530243264651047628962744853129306417381810988400836431203329370007648920363495433439732658453108519752682387468449505194629478632447908784152641043609053579624769308037021132105975622649825019332472287923004700108008687029657583392922301712158641712614587914506212783203628467370673733051389454644830041444921072755098035685344885888051701935684167694711235411324455919411671861729705619172504889509873525424704557376225544229931581377434618980068449151331212380310966455739778178300843573913914268772342379212908055974416176277337529440379606153344857358691967454617957817467059453710991902236720250320055201923286036489234655403592412384477644547463065136516505765032172303062145264067324259597079598730955532164361107834103233364921795970249440645646298910777017966571031939777578723696839619942244008260968590912405642588480671883297524851058916004922153707986281375308630935735135556761823232669424166438500040681187969967756255390929740308772037281204872644869609200451584145855998822450597504161172762421840769285952882780008919241200981274104372463437543712410049447440488091087533478376040147388706996651737253471727559279472309518337034810757364870206305958501231464511607840387676345943053046374022131170675753383733313498742371798094897500347299533388208308542324457688842948604788160335157451361696784700708418462786552471615123141418891622209634000973379316611267625813805516177462538997386766405093559326758345793002939353759422117067115237488667862373726655016493698857914420081383611798055174638646180902925522025245775176566676066735819741537951148736735126907414107374951590017041180025925146362222639319669554832141198927796815750751114669891568381225281565733914752744239856409239493397756163414633670847671008105089620060241128292777607802321718531396721723105342958319948224582418163556128073500284309169052380855659223158451840820380240017713552595112509285296298065373938779029951777854967056391433533452530971019282973445761051204862635864771948992102443582459919284902024189386437207303777979804243927376875848025572088532635985993476644529734579278892160245953542629833914042944522271257795065373942632716094969930846954760466022122463224728633510248787746707831571995576135446041290095396661131238736484253616721828729514145175116770556580880487905353587807940363683032108901848904372693964633826581523515402559501329352617854150952562786007408620946049200094504126057190435406726705407597682588519578208589722586467655283262457973990223579603802617287939137142144110497237100799670039602615452555205248838251437540284417566610879195757003786305806458142620759153800951446505558320995266216109568770305482885472540163956570820443217260695493848652597380110605553401238831541330764527610272774632563093872699654279131646429476027914345309802140934939485116714608965735795046175120576146779267047853153625794102606287427061910293940575146638790488494594417143193866696928194608524250274688941347574648424624974245066967867504484419648761949938482023038380800549071687805054836806291901975116073490684394642265912652838360647015881042246113050354758587654165175909435361583948827722939495849407704749885707782973375474158736262194129458940309834127569154861937181891702957646564180109585160507819646762779386330890929059231740462434205689749928223403453054190176285599833628599924902717901937832279956600476416805884273885626907062898659538187276299463881936259251844467734824658867649465455106826693977239488249866283187769298581395398846082476980576257502101611019443818782814128594045774638394916980477311660260548044798325848531664173861757723783784146969989144883842820198299448082265176835960830562361273747903053043082909263107505630602271175517267836786749893061568759990693740534039080051978371196608559913986390732613947697465785314000711218849306274282849384977269708843856041136149357913046760573301969684676247291337761720323153207141327736317065498431787742923668485293920458975800199500136086949707804439356755056499833587497091030619987733070549875007723726408765366695201728611483693683192002646362075003454513369124202735185937947162793653042868466523648982350937929825969675400890574722587552636994764812386001121002224268649568997616288442737906176231811464334709156180682181320142940372051996696498088155397786033913348509004529857472541292901431136943814581125412028443211562537857301912780325032407706883330090855836946114182380285008855691571967293448759424732396394668567721593447528808540055229696865214735007533022196283719390810669368057603750727862831672047758071862101675815412255175958012508196174028233614931446072100767965947495608961516390758400021962514630582496269688628857720547616891807303946925781088784623626728987865729653672960023458223776319944286346269394271481451135265813289553181965526511654053039675870395208935877113102618559905731829789661243133887435732156240718536543201519681013072478208903230304382514952272386152953648386938624372277205935403385429908287100709470150751385727960560557903326882434853581334189938484059992374150735760741897364288674044782713388853873855247299780639582948666812959418258380178400070493248140777682657507440995959904253150846503420141182025222249609608042441068009308916545132615770917815898736641407084925710112742498112745806323188182788256445982780381236025167670581688050747762958252840275949930892848463020137344811784632615969012816853805184518206712715883189454993951755455230195978945087075691852068662771713373934219389017914224059908728209887279004882894515177733023909656763466377377981875780838682675227119563616818926494318272908186704900346827373419201496248932676713364143243852179945657192347710319729152504557535571861802297595333649414335852845271901092283073146719010811547807317709244389795076058062463873020505504402405070093074711179865206276623428969126506750658737843922493186411264355767936635727865939217955048120125591058240886361502275703056111540049865838150460873165899064992361834084221014923186471950431071626617078575741778466981110940094393945991893645111183525462520137509855155291025642716018384525302562285953549738693581426023675973449713625044990054736173244248015383169747644080090374835872739781658704324892070180104101353759927171114404685466311362423065191488596375495259558671019381229395758174020539474700514025852542332027813372999923819324790860267539982307237449320148513810827911027279965436551209953668430974615544713386196339894670071780621517404719619944193908659412745493248968747392287712192108258126862397344423721086331575877816647666682413603483267139953054191574233087617421112417804836729660272480287951821139308041004767597318135661665709882495556573372508375695033551293148374788294325203359045864351434087423989784923167891086443173634572374639250321068120299093628824023787106013764117085992137699905581212454330895660106949730261563642223446672517723392507460275610051205863227461500678445996079558363899867859322936706647239772633899396146325193258415084243581393628371961644438345338648259688053863734480461065301509946319709104510261499522583373323664842130835932774332489587736421693578152686261057341102055209988086233448046761370557175587422352685639920709963273929504367318264634732643251032755670801822068605911679054457273658478219618378344817912671008634165716250545744817616323474921964639045803717321547504303598743017002920986445092265933611737299110177573677194322395992818736001987963504651404345270784910213294769759963540095063100676117233923401450775060051793784124619040921145332067392418601183744457294224311657322247930477168195196867308433046809952997239269905054343869045756143400798624517878997268741618837336663596494745604681498272817185332930544979254043218929088986790653858488842191709498652870113339810513420557408929525586525505521037939750073757147573790331553791303546658503565803805963510056413020201760125398031972716925105404520599775973882081890413944657225473834116455855454958557494859349325851705763830469426700975295665109475614463611720864584900466186622789509489296679645281845313103072643812476285372620863761919937681183852905993183258362367329005671030292992066360159939920950955240471405537371948432088473289125023096878620968121875499632196727405074703006473612920791834499881227132712042350100870961964434498754875623290576620338697407426147454858852181358956381421059909800800628494904523950428212823013520951707270943775277022455720017624853611835026867949931974464983747167951973409112572853851648617417388690264908003867137310208918056024510917640625810489259553834329087859894951736724645229000351578879070603608104788760360649026890095101593242779369737032869862387555835024919564937087057012173588339601200779497663678001767692108404597586239010557929998562324323315838441294943931812242670390088717181553340577079584118501793908626169819331729791543388348266648787202896018396558657808212313361959944883836075607905827351750724178267077508001264535499559815156832751051072336974978494630258727072878580704100631685808034000626575251190393757532856174972780093343075850399538102464776274361788591707389872150724935343817286946467701283800082360914141715855355242724542303445645573558941266676097415027857867400844330436998597624067415911662689244820463293879355793497340647646781547130753975926025504424051834408882758076298850398930896194113524583472878353882098746789644005175687654545949806022957899314927438959291946942199174559754383586395419223883255857014916176755725145454630153097795678213584545022130319902724135590330279748327671759603176184300144895401343817920212587271069100460058568713489554622579195109247703204712878971836668040154726057872424513846303194851006025399410040276219719436035403595035788034840588529713111437536926308313437981768775820819969800624249328835912004618383433468810180131561556871581723695618011033601013497280005334174285579741852294113551113913144686735758973859366047424574451400369576761754130838198787780809498186976122121037159449410982811948500959713750188072641978254021157157760836085910075088949246127914374310202508112899800852760932890079515821344999376521541070619510749959729286666623429693138361884759243803281981292372623311969454367661543566566588762413404297013563379613600247769008031063385408254009018318879523560646297646866610979301687693477157070824687882624308689209435497991354319478369847534066738361667838510346980333272536313362222817786326983002365335424081404605110626389965163463079818855973384280247098627194573534132231281040472185432680253013192911794957933501908519375908950858380454994873424134452513986451608510009082740058562893802880998901071943437933281917336130570663247380246820996970141808907236218970009359582455118200327477187239414519306439751919944970245947103158674978618596469977102394405099237530924737762926079209704042231541346391984470691589825299170068404681145991738219922408965353194134636372751460828884600050574548621946284460313439487981491487997895343975389348375558307560246746671266358296648237302730351253829397288726854171310944057738903710366108568281144390113212908752539193533298737745011710758691231642048418000174093656932131041281854141307597228807772681446328042515672644287560301275499167803744748000704773368278742549296235489341117953052538924347240549975117561574142807786615893064886746569730426517611294170803051476967204508226041433273420046905977066765887749550733862105624248857988187047302182212839122570028778302969020908240956841070314446004027442134718382652614447499149217091442116868776130495506004502241196047818219154458948558811406364388503512465373238042436788864349734207861663546287102653765450792731641149381400730910434357856735478693275971703865376292530939209069083314965295568945508363693711604692044082746913318751373662562762970887126021092180966108678619482591354550779011470911298116345150917890926173781392186322499297754834937730468475730560991230624011463352918969949340796079382265861848618908055726908957562309088486537625795697842264683425443204698837570192119447771001260510680138266065091573121153091864382469151909391609946686694710531182551350117285333963485730031297903363626777035086726352677884219002865158342122470180706797018785267201975696207706899476195204008687945829489126086699434233514840534382123680913109763259866535672965256472854814851148300999738385557051934730825043736278213618242401646679091742011414405464053383015572613201460324801295431241759324580914006283467865566325534746228702547867620695039829109093131371066194881962594079883433003400230409923924007608872508560840173741121580034402855623515870285390593009896761940990293597122217627767274878851668887556997331499443666690686557203554203009852005699828129282607985859431469464623756584017289340701541633200881368621286822210863853149512090553821900766654507665670019035766335277573482006441479263683242029849417541013163682722144382533549713548977507988460697070109451608893135795003659205984472974337890924978588869787810300035695025327836688425736221197184561018692422461117404647931326933962180290543920118461421382465376051743090465745047875042555289674963180985651498948050654592089125022952606989942690323739197577427683106181923072237718141661463081524809782446676895680834886123778310755634183585323364987450704872850756381912303163240368403185935853887667633136387347403445865319817596075553968115407677195865635227556803964707797533291067863047774209224555689353933909152976792928306218258477046619638387994786411505863067434872141164603986486400380183307816916031014363758206212186427239441970105557150497455329663080323931754411908776873350817539953646757843602279293221809830904606959266297280574007181032923314266209113249477678901353909833940900765609648558094150618421541685105169626987160451672064184445442168463620773786067469913877788413320557530407075718675602580476133823778801262621471141215925996589268776026921225817292411776886382013649999212220496700205569732821805949627300325397648523213795029780352150886533019547375655673717939695985433919124325813965044490036319153188401420155795592480526391031285644416095106827486792490210220106781410549757056113040759824149134051424408506605440758667441328223154124359676429954040661409246345155762235922626521244078380547366846411660209977320467647065258033811315714536033513263829523288103883953716084795696698669856031549208190768658354393130713392269103816529485811361915765944752680323063957300297823649854556823370959508645020646288909596733669580095019432118633534409538725871420288277459869452493943953626791232390863252419413227150954915913574720064154169842198309821502911349773314415773307308375642049317538737516644312682451786255860133376212936143695584751412565170567053969733275563892544452203850222789922506512773834460381652382674141486119298258857458561841562224100234285100682934296655949344961751851987406413361405383083062625701492248553704272486815358745306003009940868948657082220652017500733091032215794232853073422311836300497526154334956571320466536939558850098066024616913788956849047393259774998720704259668619569946342741996951224739737289130624935532755067978648152270724927551078640054571999483652736197257504072777733842742401716289375046219767838836572997487087911496344538561224710002521899931217376769202128787773857665366093857244006073678944515765249124001973258752826605958108371113324614209838674122882421907604711538756733245032819269635411020301439792123922002930545360524716016993773245566780018905177747782825586923870373926947659368571745300641772073339867132742272142071410024243623927701140220274742045673453677638338063576317934564753300884181205001710167987130765638810655129148596360002306521427449922055340201649300981728879642912372433465116440581637728803708319491657095132178537590030754964084728007543500823579959783693431627466295658168495776509140566751725612884939222493416161330289546939962894278848623411089305006399529077672193523203313201134034665549476145513676772666325064184882173843148228313051285849934618363296809592162003126258142675573542134280873256024529358948644537408871834514600076439348088976879595304890056288897658388635631644384542484525535775762599346566928564339728347475443110718340035359398127111912292296312202352042205098018422054620491056928284440156905630481323250662672831976385476807059976580251717197018591136819108170335893316630994569978787382905223030638994461441832504087091719164440541029581632546342316237839094651226521727230773106318148422405340138733621638356471722158386299560331321852241582372500605987528924989823397021869854285674122182435959622492155782223142727657855321069516958900587188683643017875042254510733844141903500818658853450344945845394062013526015221509921277263548122833826708216411372641493008272458577403520244439231173501455041048217182982992495036183923112201552696320817467851960221223486712076964442730143519473405959775699682118058243670233839549516958601240790270301850319550583288568323392262631419634497330508193872074734862404494388858348884236040496951579882728555844948907903424384935986825358877938101687554991657029030209156492652502704419757303611743967827974255697096231404229354396545592326207326627764387421732064865392202288165789434819826791578344189314767748897393959202317029159435756457025812341189676903678275119642578549072441582070929846184937159297601397064370024802543283154773137112880610845942373883662603707779907940969665912404811381328803407660214945183779133659131386924736528870259476117288152765740602490535236099994830488772397407310124443935820527603323538004654356716714461391828676386622875506046923533073716433957662947814300478360230594092234275628467725499301671718890880140640194069831375092124699022260567874179572055064141719987653469869749508893555340998639696613635281633823441679642361362036601878083147744036752956417075188043353620342400404801046804169710198153035500445713744604469605475596196169988073863130147934436672617095181396431405291746416931875635652610790703164129657794639522090947953631357525526872050021723140870395817017804816381163364838844756624990157228265877537056667705307315358623539093181330509161926684008195117721098966569773208352955275471120706267287067128291982074835969573009508802923328343428474553014633429312786016602321259105308824627763958125547373777732985295880225477750236680044610241231856932528915381643532169408465593009953170246013552401816604044048410702353976383532247997079523025945194025989356119207534469892955484957950761464549852241154630019227057443352229425257661793803063073141637031167346269199133664727258736053118850495987881876257399463119335600811002557053623515564532623671588972415555596771448848288109204892894185242718619732980818209974792409527606841050009225526776372870494570220886555553775896382153529734690235406071516865979262299473084569118350301074157135208276222439712112770263609686353415165509182195837753306820748610018169377916196613736223006256811422782036131189573816002548665030915669716367194664721038196300216014209792087129286402102421316288800113098043000858675485985143069173956294909363839246957392317892441706884668489374258150158993867441587630470449566933240812322575071410901877125996403731470827797264667252258709777643038152832389196783313504139340081042446442432685224857090659341959283560933839793681092609846339457198451608827222656739660082077166922151520250318306712493737646715210924747278933784892994807468200389848148789909488993381302318228024122466137595243759646035334666891233677988957602145606045602530811211778829222938071598042811255593202150522253220814388671486665666483975781194886488652792241878689747507334953206001019721728161735930060949207521272007121638953852970566239755633207136193856083905678149204409126506854712511301353378278724519763039919997411323011625930963491317448511781114806761833486986710111359491562214960454607250589586803584463001699412189197145434884523539212969869250888150049835583203267854281778114290251302005143376516361537555136408782727155637715300395199099747644059121982521871830146237417098888499027714724758600017605651339141577401371858146249679558241065473008937788652226286223224316339863966808343351469821362343964449709781580361541268961961286572887735559534874148002232939149733464891670964600135592061754090951733593298140592811381487626915531340339320403582638805036626632871688560997707156374713970152773612053721230362473887217480982716636785355064055965411998057099777920653485479905001587427229516809921089679499096435418675376335788986221795700340609023862675250136060507890537327947675898044408884664205950138340965473940753552519761134960772128003030629926796843914567026466083508436765688531752003867540994864016286257511704354154009009325651200745212961202630493771141125926909940520692827353250917886703652199525237265298061090537685681650608602282336244945394033318911578198364907527658377865966851078765717466632357428069528890732125740835425370505547309986340292059014165442425321119985154173406318990196595807826521311549761925677000259692421857803803613552076039491444995678133471501423788679657218714918092674436805210419471607555925336539022890911860107488130653874285119778012355938141645199232805166120536793603584441378114682965854623251952966542903246730849846531767008586122541051800055012189287420018387125317173288068280408416142326314640334822544580550131721745159944178053442349707879464323812330379773712159418662569643737658577725453998932992167314400407033325213451359874645411888822509884691006611237923280624533748567298947671764388936750476894040102133841560788179202779456765798515436689453103801216012785271723691204412123812815716951082838166591866042666333272173073043610122533948231530487762320769068673220301541367351091210121751335821636000075391887965338165075170107282682278089139924622208863800088760327439049500435274719146781961977950513178802394789269426768926762999343238588460665134398053135066968352740843214556462887071336410542126908510112464316577581408764263157790913143192334408527015295954089392986672022866206565533409217769776865831880872940685576104540809553618098881743974971643078500421267210492929801974834611083603144347567514635375446855052923254718132051126851451327492469042832176419855442127658952014123971788518771234333182848285695342766014254965075756738343971266521626748366376496136742906069812523254048606464473734258047879581022919160622287807723621406512524712967762435107380096681519084720670879856462871116732989848217432439901690587086269009933728570411245369310593437544530390221479810718397360989850379441553565915738417218441867747660132553333316038984681389696399686479125482812945019413892841748851306626113315682322480595760046365702450528704781081250760011335454947196958098557393513161510612034143419971669138963379953225859355947268367667753537939916306682408069521179160302099529431091843723247488037167979412594872507564247017863420427338722719413366915797667845558006728945429906854986110989884398166653386821482516184277197606824030130507853720411010672228353904971527849982930538747669233849596086919739502450007083158031711913771696413403189100507244734090945107446255374039985602915913362104094504110424125211529914202122410326691695822829047243709681049288022408855434563111271483115264653500780780375395162792970576566904932509201533738851632016673343054262018791482291663512767528430040020118786562959180444876075048939131867570679426831043609184695680505948257179894544988904900735605127122387263815638196933536863145606193234537343007274773005742816742558973882826006439196988487834194663840386142719307409392328991099550914344882852677751492339972100937596094847714151502716169080768586541443278360896842816275110514567099636576550490371212992579509650661559552583643713160274913819571886957043835356105104229725086004922770743629485843185393599400325723667168268807963038096604160514993245611807532408122636205634308605049147003342358016912094210899717600520459160867623008582405229799613765449676955212132052314394160438231030785699683485425863478388808993323489654897307156101525857402967619798169782611150447076104118751274405017198198259304604743748526790058813260830686391973880897243374057886082337292939819519853829598242842555010196586460957841629404384945844822186504500940535101060790251280873859276375899790208470481546303649963391055900965062104011864724626950038677526322266584441508285209066205458004372516840400461327130427876009595545367459030522373427684575515013649993094671850074689365180740660181749185441185732307838960420526260408171913268457671577646562308298735577494791674788971912644158952873707631520037841046273520850788549509206529405892708387504272531464558266554960405775911031481853346399096513712334326173666584128329164100700657191687951867700849818188168116517124037873599002344227922494320396939121559312593485627217489296766911859940029484776656521311032109364571693981469393261170021894699084958998807058445137998459260874771453223155978967361971309709470487952167761012113862440398603555874377353441072655726950322152162008498849227247359895002589103857550838344062140484349850955344024752998051624172534689495420505222709147236111716325853233458595366948565045797165402954895605475739521155641117381423841210990261923223913168892405153615766444391916120150310150937720243023761532918859395260257479944425738602995978207051146005276589232023086684004121006373837959276370708453429103629452608311226900995326362553329335581088888076965444854908765081293420337459262244537020578238411992765496516504634243303024027906961850770380968742929725120130979034306435398799760841290330886464928611446229164911754032015238658291086773024586331734875616340501941620067493903415611728890249310259028705314716083809399181531725482216256461789738303727722533863899324986878371588158968135134544654097641130023214479486872608160785274569041673981060286066093065911695017272878800483230781898492932949941428965343468573693717572899740111978137664340329934801188998039823669053420416186714906661967614254072861875027466213287009799611170921372575244522891694675049225712487930377166109392033418802435072134890328312174359232181707706708372093777565602303220864011684774015798505663105512979958605345263159812748787984608415396347595109783648180550581263003844670187449358525316784805993736374019925555806668795507911185312085459691875303391807565778598491416070934720207505092677450617369156874751274614800384825831072184068467901258354956160927828209046029315657284867485574533779659318366895793940390173913792495390726955050547650613648372504573815113054917316857326795646459447911018466374869538695643768412049067360599658781633425301682983419208267225185734402399231351619441832095305437669057777621266184760009104323643477655206713384356020769419228928393624799853093569657176440933734844717550027628597580947126874835596130425590887150580066180419144175565839230873944057522571460551906543226515724151432398383606739269175171234824227638647291770490982091792869894362258470689546859216470708685686762347954484295606809773791978745560776631972170744155480222579672213679123252772628139330162186322431026457379702630216836755302125059653062783523162355505138403273934581872063488878492519860845121869532866331705013767619785981983204124184022728847828924792781562605413512496070105783701345037046326464601707002291293011331432854880554821628986264664947033491780842792472098638281439613868134729856726537660989367140679753246855807022801758076732485310426268493524604003858036525354157958320427821035780018047552585426581368870065652804789157733478650647359112944322762432154604957889446356269801393526738594901204039946800736747509404384887692642685808475040332930188054734233228224144936019665785624279088172236348927807218336573963031386422846459397399765863396336102831322624029235155585516343427363724654675729251049796163938909806350885702506060947153631324680606946254086877836519397822770163913826499554308633308433118184180117181868911929758817786837866456795447149039058132775699572874911852712298131284005357543314719151591085760872105364509185214005192535916679968548256190196584309958507397054099938716193814670867156142421184873086825176823691949952342822780474379212727826147290378963818035343241297517456204847082294858296107082560818580381185511327499074793725850140688690558305384492165444802482964951168917506495387498548180708775589593813188843555558491766440934326865097606691526833958940168467564774202117825553337824601676806313826599558952191965536193742718906700151445349491416966190118171684347194258003203396012871911778398257861648578785830856644951188809976538099605128688191510181553704125548711555075479103444989484611381404221804022320542799253185748291155787814113180102721870699866436377231108534311588899216799353776716871619251996537084318400735728242201644242394649233830073520484328579680001565665022221444537554916684492124816447731517019898345335080027928720064670594650014512301072233177183197939533112382244491431648058046655938687402759824658222427247103069115957306212032051128165062288322496019331255961557865841773360178397319024103438605766821078240741131144460083095155636802265870322751368176551335339531414868874815648899448350989308947543304760712297060463802724658633544828963352940347094609686329572784172178419232915667938769255898814558405880707485808066983355408587739014121795570395197280509933603080513195636243265486774419481614427973448176583635627918791557077192056871418708492757367111620446413697641596379179547159888329854373998255772065716729029150779129957698243088144153041684899696804607681433808158180613156568402408413233493295888220954659883201043854862116777590293672356607769861322489729955263082864232317017993821394435200837282659977142774977983939471261461647046341878326316417465294081407909083745187926929236515445207962507098083763814066391840419673946972528224118584700714791996239321397279347743572302742735077917749140055289166124274077367302147117378290389247346079048616586742994771225458655547768826610590135602501327034278504209568440934075081032361996682938405672212578068090998232135399159043791966605632957500885964842753281339105128061618376501723098706853335547832604757123705370996950539508395107611819803226216993824991355745483327927234275390409643724924873194333312644657606963141141802498756175178220553712060094824995241280811435445922831580294216389373261329117569490119563192218135668165498504774586578353786247109064342586257406690734104570904256572555774724682019141713340061884058151579087427603344034281651664836725215714155404682371624014288104310397547363967179910381374727136858439116268605279031321368515841903644390620117591792707916672499373522944844018711994175388308565621994654342361595418528281232249065386489622582769808789392635781475897581634578642315380884746443762664440512598835058997104016879961240442004014977542801978775896421856530204403993579207740123826505999289676284447710284356335452002566991483990140934448903220815719328969943728788697878113452055276778403935330416415545794806438630903037661866813007524561651590537428097173573635134850726940071419315753015597154690382859719888082517260236887435010131412774070687797068362727313547734646757942516660322418936794813396121842947799350209571634814180382172771800283066574489722736798048629958582935342332632782332828032354320660404017004259286847822818245453802688932522576117919145313265552575136476118873149883771880386410456392860710991962920116813898902488949491558018845909552868460341394748582675177145000516706891823469196461856712036565486984129778667638878942535252090033926680509759304804447212933992250893381056027828973388055095436033462969542020249036432246194595212987512197941562009555938116362951585227665848114067521377501977637176093986383309903804145761412563880192923639334340760220036499430190892733210268495342231299305933311047702080278655100135968411113986828249100752716069442208417259087650893439560433920284924691218233553317974526686932943000940962765544948262197168280761878145019584345986961637585030970850464833356273270493136909881898448620830428350888221298390544471530549319181394904839236121118894629233596425947919341138158472422940938114739680621941248167041053275037032872424398962187623094028774493275530140784289476922335300464869920538305681565134935553382035214825311349177467759755746346777679591680411757304798836231292858951603999401358630269871627747308849801452814123650251990122560212368033876802802504366303250719791371710301651552689121000077914151223059922053319097489166253134811560284096010292950925708196447062626819687066538088713318815315781536344348657923177487308261797321523560275884152534643134351441199532869646665417843503837228738390591716142679028402193528942703907548494383349229888117983224047751499087446720593116790437003167795377665031828873316561657284667128706368292333333664634149441351637179152104479611474040157510166459340614775995221620704073307071363429075056631152246239014806357618375569245070202294188274631362171455687256446715106848646505141164246632703218623341205861321797856366276658068913417316637110765017734389628468075231954464547325456822407030712028828970609745709073927588728138948641624293861817450762617027861034815811517606770122247589862813134018665158844549421721849966398581308250322030496565660402120257450944149641584595739601397987545396702840442529444346070281726684730836374740977224294617443991704388859405847642401867871814092573250222825856228517263820654921530571231150809178817541761703069113004899767637798078042356266723232728019101876485578727225854789950724720913706810629782532408180829364407077253394016057384650685239599052377577826487604480103748979374558853332566361967003503519949050548158382737038469226374133886622971192926198912090793153055605290457828232632583984528024891036689437672033812151081390783746136945416034644125953625320084751224540817463524880035694192104280390829598993119620659730824984375579517010811640944729527107037730507732816957047327648366637499003356345226565028250114703146931148909700299818333890124605475553538034662049209030540799114116791254740129009924590142206447683338167795671325903790678151046533941184541089835172080884415650780566514376816997258346628237552867394261612465357861305576214612000628102935738459870884116186282610198083046611028062481786418994418635687180375814068179442981165293574755979393079476286337672414959419384021333336299965341734242991321984401485935765963377932361447189023433039804124249883723189005108152517051049921886136812060758169659575634591386665609655933806469540650025360503560175691761648585901858420565036151482831518973807456606879266510207656071846851142960294656913881609654475963475755789668247911457296668447556041907163300565772712421541276432247610129519117957638013330381688514111538707273111810586969603687134205665752910621629083997888720645029295227258080242720678636569585813851189701044705683340514782149571109467439213735009885157706222577275606087459154900115664495987470447678004193661163333669411817600454957885159100440030360592121605731611382198925757209422624469903422398064130533152676152498686614806841404604694827858397271285618445560387088797675831336811278842113918988960652003397069023095644249413079232894720912433449253360396791083174804170441557137034360038271778927465358975704737040221455441253128123722873342640597044684586982823366018863070150696743126015353601018167692473548163655938649404985357570563233366703876340692758100060160645990759346590915803219784106155604718222987960561768715381870294866549737025131830788428359058593024932534927485656156376597716738638329663791559023271187020001889159944776131795975284386617580071378775186695076857604630796313903644571404492955220554493044185815065576957860836740822578699383982403868793570262118919174154626661217796418529272113787650253458654491433092991447775911069375706472294088679187726791999497430602247952404376264212243414718660517388960595233066602747409176432590301972279549002028960902164281504045059477982765755963821753789956500041171627263167879547370155325025742338588624803260419174318809953970938707762362875322201300028387629319775318379252042011795663369971888559927473103588575706566634702522552624575255008952926306622998836412793639375648469654779744908888066742725273896161199088433250839976859416978302546781961152670528460318180771206442084354207974048211692832396286522247010914648996363895676177142370223390399113298125285817199404566232337686042176442749543329454482182858528445369262090609425412177628564715155612572045400763753477453894560505942969968193274231572400899316797859575614467116008235349941219082157358230762121333067689994609357655315843746888679221190517832007051215601973026599607417882048096381931681846766082695418200630396638759155773462681131807476811017787858668382845725152810641548407707195647898775490240438598713986227702220739090352881486152387632980878250625879925682833686134825491596950981702502115279311013719792970929524250304187699005646791566744334514504390360923572662068527248572166040980189226503550843256857057454806947032189315899898888377606489001030561285012574320852783863433734874821902910608736522237371314221831638957904834541288618126026216170516296707144971539501492196616843233382030256549297651055513273366942394507659080038222144865540359459322503510542387891974441775426419678797453161535420939629241738563186362383673912501992717519040555635894736942492170051465317862377430736486432773568013031410505285689217738861027049158271478374043182730373691356265646546025380433388775298554401822473587387361765221283621924028056981599719690717268326317135412104564297479113746870103922323715761664867764226794297009166912199919485201718347961705912272874373957925278514413980989964488905694225780496502283328776860972199933004736583087309682221365243931207696002536601508431232956188576376083852372222248885881057876699988109019327379652400120120359439196335886544213908625655797724288202487882636047938127437245468144781066347005680564212217869439852808786419899418879509188102338548485014900824301675995639115186895188391877765647385528781502614712691019328647784072871668766113564906807063503789718687848207048372531559570146568708391921667470320403392186191673989367382839602790227896419348232348197966407126901291383866548995075274008978683174766889107793381719570855030036149723080837029626835591607411544809223693588806726013586704845243266113107576415390331960181015321457137023108044152555945916083111192589197242742702721526602664330254239982449462088111597495347940858170379381008815367463200580038991025326367021924533947281345945808051626086201746260067232950009921174228343832189750104660207812123116341922445785184955524324806484569208583659474999798979225986978575631879890251825663014219555026937446012912184802605061202062816444870339588173365969525919116998948762485374557159170363830518881849579016054278358586560057054194387596306813476867752546082314985075389288803661681236875351814011676917088377052843805187683753184887372394051598820276514917343617675272136405015768339966315875734661890136486548783517930986091013532863085191497840178996964883599567713856459183157377613805542933202177844199952264818754494133396295382756322648899530752092031090143078411682556004853883306588813146750218145313439098651529818090569258066758202176742604326766099089434882306292302441359680323693679719242501605223754448294650413121121570098854005642105165971468682028588226931797599418158765959375635213977406379738958815092577088507940638816018811961262840235895937253518357166347316216130154925878545463254009635796570533704050492609939062089881390394110191409175614114910625987545659514647483111875133634666652244716532272320702647448173802923857632680661171353478598514127497438851865279231854843445293535518069067127589474251694073005170749180453683693282758504720459760793180508592244579450678163012014496777798214914727005419806374488940083004020095015754764520726664257432481002700143760652068148733557051124009077570364541254671735021954884175216801603284334936461300609015693177948826372505856264538289909922588810164708819096486478789518157356693138988489971467785875841575038800580299285290213294555780432668412561232348535413600555156449785002735145874094791234224180558872921256690716700227321981457278109040866929561478077941620156321507998947205610579855704307272761163587280369024758943568441308399903553962809452503424044633381639482427128593905613871859967733172840075899504598126771002540177999185661636308006782331995879251778459561734958047702374329508040732060050515237877494468887485107754925472358343363943353900567551157029158745227963760803999294374272976357427477482028048926066950538276486508044101186911178347178144200299022268647379749114034002481866526079197733670832888351295852128588833225824869667878844256276121256582901391140678735749917657088423615506133761417501542426824349832547195912612463561058243444936707837312836789018771649789489297038575819700486936282322698858627576833219934218296546300788790298165290688620995738794368593542836010519575356941927496397868392998237811752554137366195765766274592168164748221132823270967819563556959118104723046505681278901367823733507028634174274035769062538844624582691467946281189600360011810434049930644587191775327940351796073461927764847613412877265232517067120812116170577434455614582196539246064781007897311198997117738702770442837119220294578218410823856731748328228106759932421638638575166088109571216517928925055217723952560673442656271036611553827285007047447689825852721510417158780385240718967309180068997400974705633778996559614794140144338838280494242530745873349441708643570712498775467950715204936426746904737072295604936119421063505590997129716731948208271726996188070122270275401378415199762127829312246068971097835394493282789205319428407845203939867038281882616892600105416860319633821374240123225410907243879484531153636355102381585717912993910804759015028658425582620468506778061827511578611259826531671211112552078569345807866720102354261242545167897149266809009720493028204283882351664206328590411927274466413185696021665103450986939666228147902279986559476257846012209868465023456631701208623241792634560157118365861035329734056488981984214239507852776049330353267236181024951627640234614226436971275055382151335395939988917833352521507182061080305898431744403895218563181397927780331475958974866749714851439623670893062541421928419459421645584673235606487102239621417233538215344119940893850811189864347834508444798642204585712688178965518628126004621320582586871508553780418854080017432316559450098497860646159634373217720043606162106516464917543237491062891498073118101980559066872563446050516901180214576032999487365613402078980986135086033743889020444259275828126511913569222194749211610360941021239242248849030166175180837748348237350635590626434678288013369152677543784076005441669285969886139638428640765153588032474547186609036031290529846438639166248806802256932595444389322397220476727667152053055503401492598497411748535339381769799586881348646117486262732391856614093998563474868032045651376156419936561713381549197930197891438964182771338649117162106765755679496959980991520262125233530640716402636977188015577303189097396443940696024303678144587478736332342404310463277833460965598598262522402281622371458285410536321759094900372367269395311023183650671533194433962479894534967199092968241073446037360465185653812407958511750516461711185182212543491340204162496256609354369987614494151334424246602716753819385673840735318958469001807617696901798032936059579632252698417082328468321145162760312683018554420121648915878142238274171629140070427125914328037287426017360022460470727270837797540136043135192210539415386467703118336337875625369343491765506752718387200845340358948282510973549379879837526127934490792072327958284229846877409776055698342719021927814450462853000525486843471105817362560546601102793711421794539906579925817634875300869876430282370170873323820461037786624983556509825401113038200385845772814682790579531727234078434613484632960661543560490024776737853583966144925686511716529466086009161762085243289390509462768283926508962077365755667897388400354928677637673742503395811461808927795580170038875846919834020105065854817209782907179973206899061762502422339357928376911049922497658541184377016453005278459843739757963238653334222461878846852664111370622860643457659997776760379579190030565683714539352831055386326583785382809406231232932043912044493395971093556619759113165772761645689369617006509643835969697637209126894202849554715935568351458736885770741227790657917744659108302313574748903815338380452465106225777668309926207354276605947916692424239093539777248240711974465219408664296464982702008544210915880569427189732392732296695685752005275943002414272948058718733007735664357937939870302946043643261686573545367703197834294163086087927416848881860579476797797866896354697374694262428636228623589835324364754610471420900675322967401564870675203631994719199263526212064106649150346099551518027378436628259056729980253387287367946637296003471036124968423701486467967058345552177946786998293454948509083611156999204939994535495773877503222393180814084455117568397359688167680177028458942750804065558435212877855046947593473103558052585742705942944383375073784785397350843689736279188863095889219930381343362085729430983009576307054083991456101240392955960365726625959256049392940884497148100258449473393939395730671292347834630477343282014077319771730151788431857087851150639541449619441232445663638922787893448836453589640610426564345413943821512381824148909561440691389955152486841576246049375904906198796269647524891848094016290284804790172879065636073967464116333445063785795142057780939528485912814248193239545619774883027764791419174192900883830791399279240403950806068989197540491481048627208524249637930790143085036410878871397375337550361701238153136354594225765547706666615641659526016977251095429504042472563387491934508225087827212120405336899503819364642596580893383212389589372257000127047432242106909686851130338500293657595171789115392672544673479410221561576350642770608725452569561933849016061129502213716269806505537335734063908726445047435150595133766825249570060571873847337832095583865522645443872699766666602023984525142191574706008637883760774566491582122208258828620217703170241945328052187286959627672139561589562596505764312353540585680439531560640614178229420649634590535572923004739987332576153340833548068906173922084749551552886141937329165145438082895576493680034516456005753918033401194562994342220836216665088858438261986748983611939668036542901172334336786675833350843986423445693814025926006311465203583297469669731812805436234266168638603228426108877708315856757623907710274579254701856549880517364251228030471911224761406308267760452911463861939835499132544969323589064625173275022652636708057265595404455650837891153194100454530266474095968281326704947965817264645570806770690946221477670145645314259483355801443230708083967970427419238338871058330293973385802042429852799455649147865721919710075687955096107502376498265246294517006405698446849960225882208824422110916105283337862252945760727852395506640390797087064489900328031806876070804061459185027279521468876264657121621326880149548220100274195316661500151887893706344491590745943901173251640965554060397889282739672670241622749340780928694960082540266141759555114240803098331810557583006205676315575019977172057969533919783281923233587535840431510419442700004667478107317959281568192054118712205799565587015964980882062079916397775002215716267205551620149006800534292678014774416282951910218660197559227216528699856994954041824895251313876075148667891598904298692585120149907999251389569945323085219503433597571094480181670969327975049002648399900601179036497166055757338973344249610990112913074807758696331070619920978157230671829285244944642310740699186639360560333663985482054072856116239871508630793904486112736833457985816753567604603482833949381306444710218977678427292086787789756214669729456800134997366794480040938774968734243263158061949903468892039256709810988562700410751608650915883390103563791026488547073370480522692451033124568936824811959401246730933408733852644806672667522647927678927211837833226992129880402541511202466987546244110242140411735758746785806494503059346447433392564767316507439137815904496936347404801059332500938836447257993986005748481075434794953352309073844689510573339564805826116990226907235287519723706434804170425545069802398957962611476014599667483100515683473955922915471309277018988026560542262654160596257855957895303829472726632672819618195738776854309104982654471190778251292992616409658723352288175297152742557142557566821962193084733350083988069011214980690322266140522302530832840471837589977641896930253219474778837972588915338230555137699835494493299017270139534635719645793414074712676754966625361738310623725198003052520406601502301133910971831472118288684559717381829628276251658297412457431508010596054596770021638737488844708507782850445538274566941693108887011165769345110664121970593622401071321308730434108096663053762499244151101606091983688933892833707660093254013012341608025875999173101197612407402059519255108399919286288121512936329499597546257742471865925807600056368871148770865929768915510088937628508019099105029951567865268026869159579365149703744755297822668141918002258299352599838600372842647352555687115560758259784533454544304605488484282067011434009667989740395055990873892485078158484072888809200367495349285199649683384884706378574409290123162125992379931100969678421846179600445699552278749444737923374918789363144488926341685224585947011756340060865936608007226179084855982477558502373877887567446865357073065794173172565266878693599905670594030515645371101511687632807121466314473176287479119609335191179270391851527043803306233259671112817520551430227278999549961934465631647459071463803418568995302424792820922122545122028530271201649322666769266893927124567774990138560880534340051199873791272631229776601852061629648218102754533665467064377351923506095417883140487076708926159052733079671930389337617591797367292664851319375613878463436909080902713685192325180507663563559588516534398866703784023924222307661316626537288636834082776082725437175867300703244320991928450466268600581061656324658060000604785279592416704978162642601071939730943632275115683869299253458227962350213247952005195354117989716523109299677747755547327246821904241997412462248513274768164332954631102031315471079710057427638930300224483430361809924785334270927088542354796521808319912384196177532087132214594215670936819439229595703071947958198914365797957406715827061435816111268759373447951511282839517480730055546054312402026041601893632817984145914586727228801287870981811371325869622856094240167213303527768013702115995464361291459049629881096243791256052684915325980610094084209545452478140638737914743397972639285023863073043317576574950396640752645175340345858006424839368959614058368418801776872013120571632088968579883533039703976955300987629526397222056624979317085021012419665880202046213786149482474700111183691523378141524040530220370794330342506636159308882410253604719288601966562519447614775647003293818661210728928801630946523503640033455776302098375124680856694457392967481181116327156807887551425666019543566475999857512772463354659722670804232267263220337347918039884207908675360776997460119570934728681161954274786960966178016023263619202460491217410925719742340309483598904214971309920733045552100368783983510767016011454860135982714529792042480983215579314219718791962201738557233680194041823042838427826492067137869818709543922042364935963005209800766233354477075373983083990483879830320600074028749755896058517078437136482579226742174143046903723077803825195384773338612267285035373101481812057003968159231361589227724811549055482654154418123612644337198264923429621290693446902264456133564063716377565094142045922854661861282865693545806341845281848957181387346233931024717102756085719523563860463540505858424970428207694699945969389957886641430399328141884485626334144337713853199819846523406409257940657637182140229181857853187514917096289968618425011704984133394135930225189095156700985999260654656984839170136201386644551632900987795993095079776255623132537489701046381099506323417109168907551624983980456666659171017244230354551816274972262355842374318099810878287570951246443384303610278000293643079816698160160244866792444769251994945078146086222231277153312973225939756860349078314712971857639131721044780071442050729655213665587546147901250738997052034902292168497025211552849057110704957888250613323701984724230917298480665499025136084197467086979616702194403677301116953608829642900799742023456866593228467417107908762790543243222507402355384518235861393863181908817559475717036032419639132133551733321172109852202252556926924780074843490435978645808095329920089824259168576019361102392505758870344442942748738349190579591973595080557903838040677314980709172353024647020927657556929232907319973512875249037330858384814118546151026466912580584112732662997741890658477283842324307381528991619766254890071321640507584988645630931056606732471024614501650779244555911174788236993817193383826309530448930250350645609427450858302230238194933641304052230158707044826357067369628094127493023976742047969103666173247196303806629984167193844029435041195829189361283594199465863799363607998745131443514918775268276863824503918968427803635410978361653325727052028794995935057902312944234447179717455108808419336671653471580471851656893385736619095486057516784945928011214302939114399395814270069079435668328097470598189015177504508627639583171023995249891239859586801450073154426582509710117878726785938670774855580286028806124984503483159265752414007137900721208299579164825190751609324020888801050337979513791799712164198956348702024163578147500383824083180922264746557760690811736339186044541322924259394230252963428569567935059877339254072175763282574665487762332549570479787601332162470617632219826603617624172695313775733014064505403293371510888088628300817529495898215711767601245216145633810499097945718961857076398039214975579233567625878605524243492155671186826969712032420484608887084859198967262943238462345520406542168644824807805145466942889727477889739119890921724842670315941294533744593199891830251723817977540706238648731840247815925967613794663281622574829160868977995172657727572437794474986280266922034415340624881042073936058657432757335812915706980342137767362562353751222319835210004843407866355133964303661286455602846477274524410111042735309206956122458266076311045488124173506966436552146461533865774063183170983344843740089396668690259326358918251804494544989423895224894964005040475899517429465978376311493492037595928445555679712723784096040979449730305179841596478116923359324838842683105579663228858068182591643909371786955602809682706371952811436700134501556278996607113444885349863795199507418098318182501442905565002475456830346027730470176440047619611936595949587773537398579213403551757496247322631632382283865355688378313791498176835104336239408328469089873445829023835029851542854122489657974518739225003402584087233680284785711734325995150877398869112590604235859311365646783464402325009682749485213454964320711699955862615805275132566314091716763819163887934372632848246546662454870815991214473872759119370511308542084985302394139783779693805063805593838031673704722366708241859250283839192225128220714330343331204249270427300426417748063072113017592300986277290824148364200939654549057746278341280251598371494627413489082618012888463370978537878384258430851101530608804473922296105918071041085163073065188865731428575513501054324920322344290451056655875301590542834963175861251225422625297887205356537324309496052645048250382135533899601924020228082382179180126427612845633111986708650604719603097047610066789015528097319695295014897907915105113047493853452777464330268335198173204740698952024370158330379170334178000195016472477047980996016922915768373647857804121382888701834709936188966590454550256946299317721172621812984502211435781477747016568891653959942605301688090630368184058384483109120295140987253116907957263562064509074947920705595582875350151092905431655773955368233950291593684298444498503704198657494835013027104813788071261260421587508281176892687921485466991114359983641741270251855432572001696700520126855628409240682266748175048666857373124582188595433594993396901835560898348966219086351759356732231213595045562390603625280846364626995662664688423544517347936885486424443182994255515013172241961402521283528223192601136232402684155338923251340691160969263285713326936475688145733457326411701552767268039549547103850082912348476052502566911700496275649707219834227674711340989397780881750601692801817493630097599911414180852554925676414279568641384430589485507378160036433115125714126791082528824316686998135427126817097038891187752006749466899824456818323105267382851669938930592515122830913057154163959768796234284747295060678169853540735669180789336438449824325491818550530676640616498485015742963777720098918693347376065937551692199376387250487429996198584359638808283127099088921936123484114759452235404155463727878757942752844155495197414545250072734387875540301358643309749847970119240401112314831981105079430949715430065097558785968478428282453463797633729489946939805915781491316154036164324043447011723267716131667864789478939411050202928995583844147074571857242077859533152365278205782855535713163329529000082532225366933097365992602964440271596290505916459782670604790286406750173135887408101383209177147703316064906213074328144251627341383410309644188295379531803766109721873689990609931155099400961546623549259929095426704927816375069616519982891046077381411576174396040613752880993448144642008206556013631865352266583654268877810997937403744407980685529222776697821116416306096681115639080362774663074341056874366593720629493672343924993226370827734589472299346851606017439493205190721664374518216180658562030282292610045412896361196440046789089451821512170965152553711314310573673559236818824017683865006408381561584509227698103433462851124728986526931425978724520658793338201945005259144045939597877688899972930966497876197724349125572040303515989495786645625525852877571792759947649952645751482332213848749962750265262005981759630069358297136935732434616485130551861051331172779758618646117083544314912616539723961808607909375907138326798726038989772495503747708361653167117769884126065550755437967387074004227422866198453084583010708196772138413560485743745808102391184862569863415825367475123194097385891945744012472331596342763367611414250890216609687863223125842633293244372974033269253425229444213628766001695915370705704608222990278001868435960852334412120647092821954201641296143814928283997239453970836188815796442660802632852983294750651291128040368516144951831965889496405646668741164370451792003733997951270220413580561443462593415751165926656292514462343587213833014875584821104769888511814679005460409171170135209913909645180401568496779179124542176102709665687819603299465459232834162098025623027252048911123788801429055373864205895993279152850261294307309174061507821253131615867140978881414643509769197127788085849222475572987518564210946036725103425722159464904954525922175758732657736032032474046040131653235660689642849732399197404276052445723630309941850898126101283904975622898617145783101539538381428817871424802630785040070906523544838273533900701219396329237316859413381511161385470168273885298418794672104831343691492196226835656122295775647687383186272907941595111891604130858353478000083889535394993126169570350506095419591998509097801620978866269597516580429041093809890812824325096504086250398004434039076718457235129077862346677744291837462087349488717180598097209463195921572744505704674363774041560689311562480827410934969643714664422824483168388560615420019055397894339680868009049717295751162573668851852718930586880251080980575839633413531335194184238264056416367476197537856500580073985933203666205397976048576816966160443915271739424224621002696420373305665758508727023897443788197381528981827367675007229231220303945877683042142630002336865164569326261310356396242252240206417883457648089081300586029974335282143526369764023246104762222160304918700640349492621489046962483366571183653455269150217037203082756880492794303043070175401501277760378112106925779114417180440308071993063646377393107658078325343570999741363387838642394159181071463257951487344734738446499000413603133248303680338004875863084571298913240755589199471283512773025725785871500256414293149131692837312789400170712925398725360097918312987849201129479392991537253746934032499339953141692426166833821996812402990446521059193408895091024485784319866530796715749610001332962826780087838038007594743102887847860394972433231500584844946259483244281981770549654153295487369500958813948751172605761283794285310614077450148539738146031913883474950538003029552617522478881344278491169951471255243560415762333948508883184625046007160934653952828880418745058390952016421509250964299845616752923730105704940936436225995686128343607694735545639855829102147643481630842101325091337824698346231539660222559818719893508103769684962517215067610815744506965832134191004774344275937549144893577509550000267270294717667458163085952512724363471991334231163633298678370097811155952933743082693104837212296524852032371261393826871184626671538433243845063113061459508281710214254925328734926365248612390324310370189173540165740249704764306316981851019251282817390082438945833906327667922541679974435912185656743739157192870487263425577343112811682509785708249295299686282387818526295679164057160886835722434693525259051299185580298921992373099583537306215167596029427750139471899064171235016150417457998879194885210802175734719781851744633188717756968038518960358643239055958514732740808921481717616021190690183545554352601436896907179141988673157261037339630253401463291592569352970364918008811492182951760226402212195409496544692345313804433495901286356805006008565106429396245289286777756712642696842820605291440451339276395946281256967004278962630745263690658492583495692961000021929747709961208790145017669364344586947124297794045463379809156010474559862585362006211678160117532167435468066303268484842200744105033544778276285269231326639093854625553540924624164528062130440724055305784589073346815808496147683293339531228208902016047630124470087375531371737480081109189427440131363778748682355802172777662288903144540633133927590377573873683194862916349931024566669174054421960213567457566747112251914133018992944661935011346215097505142282428660413245888300037176893248107374647272104826179228858888755064763037227076097171272062491986181449431906082684657553609118449561545220987177122671040399491621944155728473006985467620096956868473549378668552012226152037330041547936010970193895731704565727737676358011725486594072103998374026462074879418615489726135459950807397430449734818790780265988656661635616631571009197470156707895544893570354367896389757553112799610376380548736572156777024840124337896606787977672596835116031745427246013663374688925387217167252762925097097042036202399315602607742013581659631256734381787000916261964947755132921433210055276781430349265285388542009149248515563204205476454408539216444090298175284099116550756303549471206720682149966223022656788549586348281515231509184768370132145937337455940436487633942038911303385052202250928893091328443447743315405822428368074039167424750523158904371424651422889610003960768117022315255929139293382926154366689602316502074739021346361082862585657157934714525578664722493481216500396733833148821952349973823301376178080488798563004415932810800335333539171881019084537102629147191488430484100260109132311906950253103816381072105858829212365148089461223968840439423204500769562195996294779126960384882589415782532421482936240552091168332400155196305498402975620949168594466514451695729954096659172211316985581981294620966670164513434351643627788435480229507591969043683528098519367336919026097207622506282432016005183854270710454129486755024761970826793579901334709102667291704535944792860021792020690422438248934790538651755421317117969072044381456373641552026202307375413473749532880290287123238159359041608247578871265955549456470941344345471206047002246206875592180668845029095826727832452268907950835577229265657314497106997835659596100967022881016424312680017755565933213509318815246388696451639135793053689720179281353040220294010845734380585954292477697137305952259702873024390122920995540452355662581577390420116710402753314827149641807056604226317679600182791057954773640404150325185732190134542193703834102355525557281499823378317137977859474496185009616211420583094724049915511041083631523212894389321754127606660744108072592463768689370917311042437182174329406584519085625207634236148667957808659746722069739268781307838293053450367205404547044661043269798450699863598686023829466378655775403848916226834241289077671503194628383786598794173226310485265279356907181616041128749941789632480398202570521390772288436427094800677062249863782366101040802765001647930618214160928389118661622006656597463300989595194658560042857367288944017274762664134044109214181435800985030177791630166805539390606003541706831180554566958550969285444246893260810699783636938319916446198349791409997999633195931523681057948831301968849078852897882215688309489387724651307026540347025206199552379739668254043224003834450210002630871084756581179957595214210513824705623894031377403119173526070296692053853258527416484666869474628829369731612680689547743307048857010222402482061769997426075477785081319978386664849249524722670105824979629403878884655233551634111882418622188347193805081370678869433309060965402644570557140462505063865724781786134344569921183090873052829629017096351229558043425631583192628408037222838053955425483966149842545946491944555483088038451245384616342899929822822483012464634038602092452143613063515570934299142895343878886421809575327302270223574838428602554211340913820860484424938628145711676105457779295870103245570449514084779645686326760792610442732202683588360764810837739645734279237428910252302711769711073259938199714936103242297612336949013645714082199425804602938048434089278822752897740303189393236359878286826692629276599803463095973400503527691409794980607140943632384243484933262335230696453911814184098509831055307317382944976039870830447092222908413134701487999139959894982661611260091365910575633311283214907815070226833549126661268476239696473528510960882453809977667998375615132844654369556678723057567188454941339833202140072358862376335076896611639847446787852767950173445380000431975888249675111665200581981128974333236402920122757167147368291177859996642802548415078045077604332393953149856259743049781426562728425370558445657759617463308995705190404671596469150111734986135569896980273868813052974954295149840571338889689446249506461136504542759866352020535443560381746562956507359088981882455033385482229576414342078215072782224179939025669091083645093006979918367120918231870997590519244615408726653521834265935559265059409622745535305074694763721062574603477230348612132302192694042745145020632966450627380079011237296969529800086964759529201419671079081562557065201453773777990970220411715582417797050814158942999897808591943993572368193539414970102189267412449139913382878057008267412695695298632747942934648041155684313848875768735793754593996955115643697930491790893899933736036714346810102750126454616299636358685341214404458539700981914124461505302608628877466999704475254505750353250118801691403335883010208902055223114183589234036107906142718160519189282246081995063937515709580814381990109140745245112854187751063080766769979539176088068614373154718165365788444811903531746036326106935451327245611275875090420731245473507370793498506829654122559284643485525237291628663192228021323539300444656275696669852637167077572932554453391933195905844772602665378765478247683190642138376506245884961946991143638741108702291155209263512090996465961396325738499271528178104277227084649058627254477629846659409457964068028369961403551558708448862712010504078951897950171490518721949538933840093089468554745875239192485955266987178789477632838025765671193615919321523037306749075989775308723993071587252349017354665650803697481132045270097428810943407973453039595930460765317434875822149445450576313346933602618521882356656048002342005128505330225156727369553266174131322807502506842851231810814076912406339237165766062448799942186886670919847422960188039295250968434744827751238865071287858861224531558523835578764492111441504618750269843943371813336396368012656999941095367305923828813594456483625562480444364116901229296780417066636090089396500449227095811106574250518226373291640195484145441214679893593132409840806204084189112104616766909537458746074091994703008114683657503749664812606291627224812536515454149880523800662011449552361446489705341842136094273881443858737893003287480343540796857132538057975906254906043930340139697303167559634656136570115449634471789789639494256250247637554643261233564308188819826778785816225404110738417116133734898624587233101625621634747116960002004937789115158418529404617184251253850484223316418674399142982417786562043118592042748302771718726105889903559554818270590647578627563828992509691947356987068125367547744175375941342289439968753087454132016351000724475298713208046567638998263167577213297818163298358934177794034499440069120619469321523952046137170504508299183382289902133631788313054822834875187668012424902280445903607183521491062625402087353303880548690216555833707813617208156265551199454771449570773050280506703982092599998471287469201176536077704533632538880112225565668437281630380742909929907206259455787392469197705919609702068293816389503940322211544859711187869182043638968954704791441035266000825394648722254856642113849230904302291627328617092653240375266870212983644718010014738160001755217263784483215230789530802488231559810463315651372519029724150004783455855548773978000688576730600939806244220681606982736449553163895809765719917080186259784523444053070873880861411056904243279438983487645740964875565319484777744769397258036638583615000491851991100850478404429462921590058987480721516019003871832149182413476853025513115383638325305928851627404868745409253506535589034059942037955710928165206730899268565092182667618927336505154766981006836033313888295566555823586208318117937781234531980781510291697201044849090196338053648707640536457303201052827053660518165096992965221259140277374988047978935171230099438792539053579308684646929389361135680996523845738962769660709957264296093192822388295592780271894709953298800767020254398853059097672389016960249584913664930920870537619378138745174062143027480525970863167562030797382425860446327886603828710344766522183712396039255762000405675348534258043140128510358669208784670782911175229590253757059713117269807411984136971505069117561652506141716680348556711144015200948439139230474731099113625907146094494429714551364541503519598781912687410757320763678645129767406816701799484148953383295881652143977269560310625732935719112260784802631413707931935132837347952418837882233158599398499424520752956498347014700240405062620704400199772320490563288531524433698862193266133021030473768676052202776621702238274012843649225009986146372408599427160860397259238217067758311461166416596340313691813452670291867123449790993731234286985902321593295495216670591625466338643919796621088786039747397195212333685328426998279360388656076859977577218637431106546668197560065276712047973185003898823417504229565875117813446960345726563357609791941190218841572543310357148445117370145998276488607395266413667250521657200008393031251489458255977731627122486967333293977661823403653629564575986732227477886494482652488847625991832356020202879081317381237467926219340868331030053343289348133523238481800983279506006259165878793015086522919051994916324435825296065238273298476834075156254530607152912768528201360572201554919600523641087729724927731816363731047030061774416090787896964623088226148384683414999261834026994705605863469987094791047492252800690395909839823697224562091895846875398496118033426892977721433587615424561472155354185358522861120442171777329268979280884591327327575047750513416374413904308371913818009812602592688858986471634327971873140865758029239601210493456921256746575084755690624248578099513215682067536647287023363600584387905296039075268336235031656069537081457183423090562513948088778936239259054719755765115344588118716762892061445294511977242534343243787930576838947530838183219931672403079895012378312396075459642690685279035566165907937155854902365084258387875083451464586991413806277540640791993318140914445610168300024888967497102047141955040907607045447350035539408582178915980211619870972954804562496346663439491438193082072654871488078015695205023570373195891523314078072032294327337533761128773629758761878037336017534571837706891671359076056697757948264015962015827032327121991222502023702611692924765133501857476701501761044583316832618504350218621633579898099275636615384707574901787439559393578065125337920535297263136347978517623311160263158184021786896709641107491400035741652852732564717981735178551282794920551645126061537431482437879036206025796968092266697855076400042145735746181506189105965842307309271857887774076770559495435693893699186627184837706379118483203889683018146125823210318208393771792954146003727856550182929617336138551495648637438190601636692150627153601429816422238238122972682150823879834839888401118587197724017370067666732978428095313531372194289717589551641799145364139365316663212349112949765330174613906386364769778469062051455789425905336185658029782730446029526995160455924478432483938018871629603159587005272692602224841807526127810909946508543182256434394830727633273324117555169006462466357530297259943290177446201583734615684465307745057425733834504700515107982235473853709155209869615940294814847366053375981740329448942863710584945062425608261580543213719585628985426437615590806561554179963688504998018873096365896984119026718734226840162871764832487759621102437018236118481734386782200118529570030855897980986865502904162695284378420999913090110654651731566223099076092392646412149379021311694065953944667242368497063764064649098916557866805580156576490744594505206523896795384686755150315170408218217966138099638159843939692872253753370461455202398065603121148804781015266694544636855702690198274050145447106391427470219282375730298264135125687542576340009427195097377051454907254212957571345592183132946418178264267543179203605314893354900259144471291943357877029800034807909690078789114218802069608788980867721753893079792831415761718124449619911232996886250783547431975693265047207818251757850590388365078190272788062379660720276811056823549122520867926908034570168253965715878809876631639308496935602517476068782335045351722250038836104548846401385531294327342241314042360811957839834537188392921874924663459047752953854026654443939221974985876898789767704635307489521216850846563002025225651667076392652737786493007475835440677821622981399174039448548288992405694772361462788336886839950736556540574016345872543071158797687655724271982006425535048669293940738106318344850261719076029671226613711435602830864962649170501159639897002781351007619227626390563557193004544375396837458759173716735702144922277769590821645733754386548853095963057480059270454899067342305080953457261427651653802432952709864185930271692138644668350507339718644496611023610480562494788208002926093996479678643240875674575994665489599613305780565680551021634279070736816929764838732454780317425851220996438237824355389141156905943590339377053080863564520874074500972387962919846003821422953506527962950738965264373235382485927531652474687125146503592825645438670852616817738472772839991358694573544881749940806476458386508386480370684516207097537231249668066218558129980879874533032633626697640149599827490604566184789749072203791307748813516043677614256087101626097793618544384338275259209832981546809433657409487628098440660720921924302171200915526972569814089717655748540128098341960623672393451720532726054225508159473707725997441691242611979404845824159166451155747004895954289524969476283896720923297035079978745508351055637773701867803981352216470868406041889182765104427602126475839390173187588957916454677768735902869264314244368109119714067297356402947249825984049889574355255730022524883219957217973989669337149370398645021592029729789582526401059486360948511464340687346955105750052025115528582895670647714994804539188628887019830849969909072481736617859928305369801265553805968827616670741311935065058416886090655782071208233255162068612885477264882268821058403444364458395058833723964319121787746892759863206193926130265936449598735928755467653537665544922035302073998611307981630006719665787508050042173256772362676530174644615745403444347923691135659299971964411337685159881598681782700474093761724867960784416376715283556661063115542988885061123388353474383482732209007505124143016593366651269607816299439188106987065163425092572038939452323386311983766597599426812912672485104161729965493243159343280540472118657785895110037244058698264085965153083837277755909491153171063797717808128859095834358922269708179870888216023204506502589944708503678796938301847678826168288608511152304823736914689032103033178419062696780349415882908811917823884049532384026008707521265786703370067617497673004333586269882806514066294154539134069485512348669075549868588687227301404620443231756832423697373979604583062007455816286869048334391749553965214930848489839318633672262516922049169733676438812362719454207260437297903407464439001616311462466457764837645994037624571405740881484686368963950882682090354561710509570596436023201386716033488399472173219464254227732271518259227007047853393254563975444037231968108559008213538133834066014843051741827827477994679484208159166773067003288650920653236742585841852871023945397618912235793298166764842103262369111480882793615793574185558613697780511908013045728963599505595288409789068931278806933367973158257764020568533579946788608804813020909476198902182696196490907115887471069010438086424936811507534144768233345932859967329259645457858974216561503629068311899144398916958808354304599142369236843037371594978691466898037545626345966011443667831133508396004445903218629870598116304220942299031032330605141098850749122491516656043474414027286077699458122997532313858010725937567747546234590765977541012575208556871702766990714790544004237320663630564849600071006822320573982350935648482679492098896369152184099816831967860618591119528765603795749951320410567456071288675579710925438815439289890871612818195255227547533886108813607816235418613993055027058093558610421533601692817860980634290988862271792261777523417686589156229222591621585558724480942755925487989147876790400542515006049997263229710524763014216735742990099235040052183267056353297769897481131347299957305896632976231254207310325140842141125639727010034567474869883260656330782030201565415437529942181545267358047434602447315884173613445050849267382241918635046580546444756302436508248180512220452763644910932234909973004697188662972053921800938579941444492299630076038029269493694791045070483935144370105863244576870118883225636513691680161489078474722136382048447467515078811760033387829585245616130037967198138274003020106278885991370268234868294874273826931806004683557274122500658949479245334293262659823825587901345182650084073895903118908620453941437691630631545904658152262667505638614702260373812756668945483796924069763836456629617092799526362936115479584322597344416557950397901946473199019300752976530296751243891611509583169913138937871235671390023130061221509110913249156328166078605096897499909805750225544309210487467760246328650626764381199430980640987892568005198942171147326551436872087782048965034888636769928485333737875691414639195204992942479415672978508766709379256015378258006868949420650887305616890047159483827864300402877237347499798573892872171279510879104769865283866944327394157132344342551825864401991962152962620198609218390959178701560945425670435924690669436749978904028372036137614623609307690124303595995503103272735177844961645120513591530718643680627783578037102780967612802250611632845121108442589633937116221368259859556916379370918986034804926294221784433492278488472975998735340353267847929505094311649888531600335589822724888507093517653623912422176396657012738207512460266915319252389578134495693515188318427311829841760739195075389462754210448086163344885082231459523155080724512204854302091034953801493775158802616029910667192637014169477235136605485199672577591034587291138418826274499432408699116904738929654536707522516272572796252832310488128955416008524797585233443210608950595580555759281067948575286467384222703364657224410558560172993986224786195140718276608866791161326722405777865112028351085828669289416031260582602914862145152833129713795024389366418205883088981999622913392438496100072571612226140081440243419216904034522466953276564128198766440704034591214872186792896965253280738432719838777873918354007507609091326763428747609457400950761917594180125522654267997598805694178363503506529470475114349166650670651768056524898800388529877660581402812791237428633085353759761035095857195727838980297914357199550172472797043809537377352290404795895519403281265577446377982649573298595379522475912101724895899934446975860442979582726865682016299541827043859161249713783728574621048029190131590204365489531079256785941169682194121081817513643410332310894055241396808744357958453179346672961249407746972937455250454532670623301399060256980174519784162607120799001940146186123589368852462234886496774790256337308201501098835569332553051376262166089212286922691342836061035233615860073832573235448464998587411340729519237685259168822336962920402617726712131970611960914540754615048285042321665665567699557073696210117979811719017369939075607988694629832088391986530684590100107735899038526221504081115483856541669216062717698290778519345881903163529330368051510684430955074718117207472841242183194415614584963719929475841492263744783278854846672627787580319974354594636055594065243949414334674537405156332425644117933642551595665185484488525967211487341707046103557669548965764050994966447265501023584708592272833498063368767221504503164493748260628287854352955384514271842236804654411590779585199117433711111066725704095468899643052145855109307344852496735585623107460607636832963920384698614249563983665931639276530877232596030368699588715950262818907365185201357846458269933756078300797341357441142285427505353599684250600433897583375019749274866982218400683453383292878772685124162696255754005873587402741434340825004724686384898313145771806341242534823544752967545891860012659720773429304118352745057858444566039473336444549126064113380803747655886344331046469212416842441315256573143602519975543526982559341168940093110391352850385263745542608721080447369788956387127128763574377920571870866265070002802584384754977921602103346018785172703164973159599021004510877144563165546079914089929920024607902378871130470146466051784518841536089088858544389007008239620917892905102211150534740120655762823485308773628571693079955700109239513348239055235481299214623087536114305722222433329831784812638312314818006740936000006303886090085421721698797627976038214198943773845670302326965249270854921469038769725547107499334255553390676246091747324581258127890436351606743968867302051261706383163801793087230919416458819813530184114332872960906935850611243079253084469752776050358629890804630560672282791717312334016278133670020744125694035909028237470725564047200529723940566151697657159306370355821207197461056970424503956455489808332081687083551911565664263799916487111150742777497382422917828221904990212930877935766169086336290276189426385841112265584706360284501159802588031810802083391211274946707947248572512345583904697089928738664326573236038297747499967638795563399426779867845025900015753991691132725630401292527951587108392939174140933934269220760273122157282969288576043229367329940628161687617308473392545732400708831880997671449766097786576277831247316430562816524468779417193773692754795899363291351040222783213319156325613257752815811753758823498397209332424050064288984263432610252677556621845877545324611189618986944763774333418846490580672815913395097781358728514186717466833955586708570816179008103628367094208725552437189852644834443102464518751457823597242102954391946651406738885530284018220885299803901577540557495460960580036983258357426349343510011633530648975866021793291955366329647955728149167344026526919044820470525310516715876484437533579775865952229634043052762282689772331183063456196031074933324026746178356528365244541995353073243088553040514977069647242910557375821811429369456649094284888035442133223756482661516610783705429164331751707484186613994579798683188410055456484649846010094721024385329338827910850821093925480191268943562450838599680729595173386683122499444091270669026239487483312266197293061086033307498392382238997012141671425153146795456340990051564655646683154454957136280884484013097638623035043205510623123230099851007873082069426896007575524544661222631277059849391739339235962473371293578225595298224155035621244690942538435678696155066012735392679817672115866720913291252655601042457006240258820007089912629610160647940757989374441148476349303660943858294635532305642803223400976592315036441850152681171383889507759974292463301328160619688098253464958989051528934940244078676903388008877424082242467250053364319797083652830410492074959383686390350820131392275426093548292542996356140790829221539043003199343192048050318679742239520753479270469735564578503455570901607336575410012193338338584074793276745549812190573586051306481314301358963778263955504039076174614285739475736716626709871454777414281406979322144770266378580060634811878485974189684494540600498556588003779223895119486328279604663919820006532140633406924960932039650150568649514752821815897086498070938506881411638877583879293053796832367820543570984569284206388563946023989558133974929156105784230368488481848023389428221450099590007284919092452268394345478084435438460887377536588540074694316609931077052719708526680783680258495186408469921834397246005251906162591105271231552623275515781459506987381941113584694432428508052732891540111722575025804131045457091385225055719832689639145514752431366886111316581695502860537203547413723023094024042825876993218164097686368247195239628846023420066689351129547604697027973606237223099521403408481271574713897050402693582948331795481193120643700252010994080677100630470169633978339830252640278497814429091713323061721194300145675624038004245241369285821832602101802777189851026045028987030903055917252911087581427967027007419782413218400701937317461086696848986408165579003842720978902302843475671068623249937669745183513293682661171601988626988043058154237209288305134205928412237780924255014760086644159984015314351291476760299498722357373569560209243385720183297824712180544957168316535934772326754352878572356714254015654082229952171739475783246467591036765142654006585719276667460741934619836995290829752722868182328826077314211362252817651239765151638455718785109217536413484867577496853880241010642155923085012996418708016687184961470675362373992928892220157439356901716311995419645869436822283232022221653776978118116565100486001146826071451329461047928462083673929118206266887060341984720415884717775540133416392005532661698164491126264480745322984649986597664499576349376340830978951545506906384699091161726052375028641486063098986406934096293920158999656414603016083391033395386160256593188454125463991367067589717390610128325869801767991762936515943294451287893301833997498531215070296316941927863765731770245889745990974951279683806449840968925733352792456867474462494849309078884964388698197492272622081116170515824153596593784275048281357243305067418326010346952966957506476281845435814515528143322824408840287972091385113673106887216284394886007587903645029251947203471791388431760591517187955595068134710357191602404103520757528614299212681687204655114293959270821215399686209175217920832052525474137582424632679776273018294063586807386158136660434250029446938438811495268457735850778598719631068197546133186860632429744682189481900900838557505247682621073272322620533488342829023979926096157973729105910460709847391855140649116590399878984558882429592598493769165869550507702393493218882864128615876277143103339198548937624501951711750362999659233159863886847351498360113983195528015227519143327035603743957391644988356217554541584072532960626504501345540551505642098816709100354281973719792261744350681568573051460137656834544170987102915977027705896892676477431257213900551371909707824340036601249313499586252207260296351312561129933455407997528520051125636602753726167907383430632171321195262358821814543576738435123468086410660990811819949754688850543688716909176031232597072122241791533813566086911423746133467184219277231240015644606489155162599003127942923752145248248342562673641976005865303225433159572313377734627608028764779115267890990267649368792478245845204555823270773458946418550313343466584655316984049507324210067368367899505229379360182187913061156679458394081685508772729087729553989607535388509724696762218987312204450878002318972614061532736220368983450980840062906202911485067586208270040372879626467918836894901418656048569857195634572558733116899942495825099096347074073216878864900503125703871278721802796697796615101564595612089183165832855390927877705602814260705252162725194901330460605750099758300954177748087935155985570561947211727687743311971538723543618805299386591632841468385395671562108229169660309707764084647074812306572726223598897908476483273609160753931599749710495305098188470614790567321336405940458257395281699371879470670584658041734363632304279285582948164487211839914778075345376961590673265878865097612452201601873612753933495827801511790159368830533532035672842945181486918156610726422293351311423978179608305098772474296208799868340639736674062570390336245074602602889118238140232614510334153604202650301383170847383377217228233670116684697841541336789120485032060205092024126918469448886338511031968910269549270712074408845752842077630784883416098297310357004890634762392498374930755976089151720454577921658245700056083890456901921515008386012179338668496231185837893579578580374719748707379315028064517463353912242486417173521487327898199987092280669158324545911349978882368593649155581342727273690441830415162208146184588502524138841877302231938293393643256355489897636480538429776958060870805749025796021047400137683817942835723462804072605064174113398663806953017626248294230878664807196690595841575989822507580958387532360397347582849844068715090690991943323912389856401438704396625259538154385398911684663282158021482473791181451557575318766132560411113585663676704645581050726979976369676247976749113032474627338015372689080651078434279688584087566187518413214217473799912703088800917800303855840198293729071159465390905074577144510435380344950338496561837278922085032827276837356375117006758947284320181255672834941201328220369008651481021257700248319517752016909985448631379454508618908352682074908634199621835067398578377236656754741254639964642725471956341246477568217410088751860206059455912060887277484352344165236979089888357015865130448059599226864093278756531659264665209022650571229123837945773541576120081492704502711181429861730044401855593620557677494283069061895721160652250166861193050058251328144688344803807272039486708328707728121066101396335177226370846062613794893889992767559742629727915848611765679638935377207053426895326940083928424287244214412386623511389301969675665033127018186467656763242830595145823661270099959035187188114573386749644784168481420539380114617879312638403816954795728628808954311674268014280854064344624443685234521075264806943278532507872495308318881054893676055781745598861820011471450769726068306176631922107661362990420013274076728444215456065973682693072718098754085577698786168270334362542479648942664665703329887444429818899649768469487881516979590510434884962761260596592944138440336092910451839746521886827284860134396291941534251870520985494721164379830381623871904113051287450752928248254850863900945840675176507835123399349438599139495377827211221681193206158120541745886677104422156724846277432774821520034538745159878506517757168318782035615497321288248962549265206444301367321694522092800480201302323955509408806675514174466995114629085488533137159906881947169952732122954665663060308747701931796074126678774510061957767163498282014317649597706066966620463275776854907459505294209244523228290746624431749708649473016006217461380978905887674520501739016265544953026876926065576806356332793083468597392201103719077633161788414541494101904613720205452615163800103706479698782398346967369668362151836646542671003590754386281618022444511465465671218367966813378004663131131210649764367062309924628513911913692758438611177963869815908120513146458640497589386380661422479884347501593048211612725308341852092295921322614893814811972261504877729176248209738069214486876139302248483537832054898494472029360286003167085073050336048098278579206252955880001809724634785794661204982192922544188186471252264524232186181714844462397828436286847540796396926252397082219091848732188085957699768620905902649447806346542631883007226681491308429428130599096543859932531756061937909192169036493993066835193089476072862240811269961741607140865796724040508231525073654150633925949156178845695318913463794821446345594288124648637444450187664680436465971424114934818575269876208704379671992178163365624532997013071972343675239537840003608342152735898566201508755718048222818752399768694303593955314424098612826666160350851427350085334234242897461200333574283957795992235426115379799674592494049453466175024599154103089929210303867261776501409348733394280957530257998482877860912701609450381399961326317291536560526558516439514894549117962703821572196450688052735396077256978002445200027038136800520213086728429886823392565222702725788938623336404358068828330161935368511150328869870073151497836876395977995266413978802067833306390664110649070410687431814310324944708395285097380404220328156648497628042045060509062254499865914401203229864744664582238749460280013610040778490922553173568346960071722641897240967492535629061915851564960529605560805509653481119120442606237260940634124216662190988831495445375264362106977709678387673963838363429318162990507789703012740688770108899131893525404952944129364622072266155176827534811402538247648653488489053352155268477707903195954522835875765480251067142390080198341451178226737396788541832666971276178714086171715473619838548822844984371013546239352443842824485770722436351992021515710183624262916659195977592619245600333428445958872901071261944758313244151535295236925321791156944357769196515430784557080174356546182675711351805879813685278607313045961847531100843435033317780654954322928374467828936678648525769038670881011536215371333768624315966681552787116701107823052028323320945318210239027434824379484171803730250769762930754142349259732033446816389021440233418176737189306313610705332405860626531636515489456807676932148476618168028191211871593779178243630888464474917807572264651362368143889108870090598615048223366543394627211255157546714395480064907565855194591405039480076008075313099900776844944563473768749981585326117927297047239578853665316775362097339185847744048473237715713510190116151483623714949248833872156689415084585869035395372622647297451616368153388446735505916803992618599802944763352996680174540240463696762641188625219525760450203355253329367131877691240223759089479912976807730773005946222448211493627333063781321484751712569901348369572520305119839086225449706665785736663781431491971831145299857676949248144587195060054813211273516111353262206403722783918532127630311665970138733456929478476687075956438782014387711438480795217402902000270482826440199015670187260529450482564309028686374497182206701338927545761542598442252472216576247076430096032102990696233645016008587743086256528005759764700069666181642408201176497536625013227957087673601519166312728434413641766374869526636697009427790525707754485665261467235463749664970192385466561402031066072032677330189403634040283945172583027268235835856954066890410067260454469568948662333623795928331774862263154114832508898901352722558617662449927095426783054750954812772411553808228147959283235473165844810311493564050006173881233189328371011859034738555991195425133595761154450510220258740950586816878919476860397130473695143205093205856281330704209235689369628624370954200834045739888440526810782666615368574898430721800414503958174834433020868637955573981754112301536259491832143074031626563857741444287906926420056023891972868899770269244516319454013964881268756544586979472943783769137894151258433503685753265850901254226611633121178664189418378564627048758013670576899536998081709533596792114978261441533513933053714403274497507619544241338757005454144583250345894819500294750904298255608105458832815270081176360979868234234208280055178723973539966153430311526992777468124211793518204171308886697057334513500545870613573434043072458896576968835756130238598055105815660205993500338529173821872488678411000599601012694731865211284573045854766624344237801467119771162422538342574613619197569418689115679938877712812338987976963829985297268590818745682988069570906856799249616901201572264760196419186256488494617849744438315028274731941567060657379712770601234917261632615523771470897766117463439079051561974483202694034683245432519701882448925436665645732134282351164456032174716388304320277657166461343885021185378734430727004352887872751800677493657240046455804196181886402051219422931939448421018128699111846482546254191952903530882743295599750418389852406396332755100502491788784310284341535988151164209534944224484556684790037236375273586405708526400899536056141301403914905395466585785900612653002013401901920106710445181640621774643622533924506715783691412151260937469652664789423075045435975772440407681579584531256369108695366997631575911641670039599073775232642292971863190448386986954216540089215796821373608293301843556985492642301587621337185355092130323571645209310301142635639548553329941316078461364158867272016168928943547513958791004859791344450208547085143779145872455796692145121326394671670253206590857356809679334110293465224558093638259353471630013752178166179810984946555267698784625406994040167698606327823752339627563009917353456426610200048594219702579280597652017196551025702776265846897993704137513392952169919486138931165191308014157958864690119955659377605685718995356496180987484652057374293494148198278985119255626415461533565153318650788870309642547673756624207539820931872585945623784552476837763729980710541811871405301423496850388107912800567452996270618569780477741108339020106165916348474555810002224618905372276797803178578151609523977821823899618935709433065675933145915192853295092324117394040854563050871616531592781622862645326822239609137431171589838535446472989501595705637908833006743154321055406524380707955452557865390800731554052773648210887258756071544199039778188796036940808307418556294543163064711645406483711599005241314524683766099724915532394415647246480649090271301302261388328681443364183628991343607502146766607654036560487278873392620918454434485267685528568884852509580902765991840733237978766174181224716601975677869054744969619046453309384503799678312205054678794454080808478145017011228964186253325762207020197524524364981302685865443231761006040297527524767603077441914248897032059225823584548893676806902219588924054307420145845017710533328213332385656252416107488084408261830985682238599409606857376593051619322045815559042032070831777853076215938045108441424568829785948629287880245715645987523690245495279617790178558726780621233189955228269143751955675131717276392165311913386007797342764746547965818239413274596302574893393169485113553426797015322190958677146733352358138443502529651341274303855896351796247857682432566855694520553474911272909468708140027622902317840986730729068454335854375252793489837235701441134066084394833983694130477335537139207395333862053821674114387884173759991185236486261327521587279941029550535055283351774990190724726539540662831135553478853197225584129328409907944134368729282198890116849874240314534719259007116540528044013152652669680019412894356050563444501569767167913231703622301752089087097529438547432372741733383062177544430208154840939870804857902418643953337480070853474849184498777669164148698310116160674003448491221119645937175317301878978087144174783012913408887077165105639137880566173727582886770337429970445938570816802951798016856953039029539712840314644924903008823774910810110416653846232372126640761789859457462236230764573261642564194214858009523001564246351706159425918891201522846534402700649627315343955361539957150775285486729308509137995301639851335353675181801451284851916121611380864499734652714257210195166689109855605163054510451794233317059710903123969148407646221185743346813115947595321033593115164856125916566644833940609890691308668145429014618714155566817235704872198378177805488478024839591273443355559264998260556078729836890284887717879318355313408645489802090632871943170493234468527240269846031380974245850271217345581285994875176039571118024570695549508238678292493013595298557330310762426745925919268771942813029459468003987910758231720481669591715067230418259867461971917832840532342253575429463983153087255892395760072373912072524900123501125849751353591000735767056834064089803080620294394421602209717371389389771449221880221900606772197220097125074183174950561329553304619505908352822788815848588312700711831270613100392191231761867519494027812249483779176334068245717827792715153287074637684686692638199349952775858138136990855434916482664653998383850403325357214848675429105975427160080204347454858977132649233743719482698636537600215099340367538979770215235864605829774369940482019382325879943039026182632917668135849581796409677832559679482351348618137468263641125126160501471687872647878047423663561278378384048642179635864072590788795948531794200705089254870512104857969775954373667371030431242941794248889284037737711815308312746671929835811310723455516796598527528856559044115433298348616353245009071536206265343760906947236115171973886050510597613591977243307808805893721421451848304830092568052293773531686723956079261770570944002552696599243718931496626956909226038992983248580828749672086653440490028688610891566191704029002083410244139707392730040789366247270920943531831558654885192031797491209873808999825953029618542306538191208621011378521746326636978874592491442230676814967300473736995798895255808363600080559027865588320158301648360598275567162996200636699344392821902284917803581070776878376558192724618422791021907863095906032381091479963753826529408480200403914766643406269536851291949161282851695871549476743514298120105115764163190011436648079325868718042862538865129916682796579971463370726193996944017011157356944365570964913068982175169235853173964585225045958800152134935743880872676931364984031873330643633824782040359803357461867673015007361355619636750334495028342729606404007234195824242092652901713413845554559809553983832335077002624356681620809397508468957721204722218730783614649206231859482616824666945663678802414861851331074710995571901176014803124483268254374930216378306691501355788950789120774057165317634584508775766144174908691306310659397176727885605531305986658725820308863425550163252129440174610381035028834998637307748956499046404179695556540775772606962235409788441834544236113084341953975376482683383359715531987384369105655370748763140042702186234078040683773911361895479064332628497866005219005543784075601202345659766959141274000511362778108055285460036827467777117724090536081461018689898251033648968286847561542896798924759422271842787113285080411336921184042526668500774065733221864176689905620394115317027272745609042384392773202166598349409444958580720670661154939810018138289709927975574227387872312937220939323487793058365254645361989207953586769795347361717920015011874618235640514895486597640088906056263268180884464249776394338617131561624994775652261809934137294436321705159205588300945922150419424980144701497585504029891460058787141468585313580746678542584060204661215516520142007463027276267142190704091692724192291410925533234010994271088955511869419283438854353389787795007013572639801536245241197731259967608265486548326110149380954388720829286757621363954683748170394779092066474912590638582631430412200094930954035564906588034850282601663789351382759813723318718151547577659214085662699651128321930050613662363754751498630638655905010605233470034847552840239450146726622065537275064455151333886701619132342843646399152978037885495989581260787078741446172173049262859838633217037025063004118397873202333922709241222753604330619061037635849474013160104867632718440680351126048058934548837182430808702777542242030616746238288316446262601446575291519847462870650424554281147203772359982522984947657470147973596493488485521725888262224635137231740527963040181960682593477048895715468417907652729236409253884140289869652327182465263012698236089627927680263412310947073138477002884069033171455779191184258393589439526575666909504708626940457107367036779071037707227734160726601717760288449467823673910178704428840819261636703482090986684914243790218496419843465946201987833826634920924647014569635788871255216407482322280161223604630906188545403064211397858333662490455365772566085905690097269588000963123291988387021128838893194349193490938752484422036601437000264487897667784884716064935911179060300979092720263373812423675284876906960540743426828414215959495211896943044278880320474169658624284536843058717719820449445818070003260922881611057167394091259709861897560713245201910358167547574191521347302692917241537077719117105911853682884942872084575310402034999680526319189220063820997274135968848460703315903074704819078095831820576674814093809366954482890421837550015727208841944634992880877128918763041529668040658061300679355543694685049395455843844113282513892942042049001952495014084612651645233574395299529307665774570956107068766702331157713544694888667817228106392380529203068408444101142572752457953904479009171053500883308448918956983682462517449662633592964887257210699891017082810696189178757069498398634927560890074199490760022819376254533327486730021599021601916327488696434603770252877199971564303261438923512612633121559984852562053934730907196547481227894979428634998715188703450050306800796756956256443309814908140661019608011266109183421701814916538814988480113550260843201683841437582070307675308271578352869532953471763792690748277451975909205493850400734919316841962136656329851545955157116598490689489019715514233757166104957487752575072919134842183625579914499573453685855463049355060475436100639323346907413002418940855183711029575036390341835710515479282231787052127854482912485674830521460444110690501900095852930147131833367104560740080617220132199920803045336623376030470344233047132186731357220347981491456577978657078941976048817581682771058205116639751149887817124789783849249231038612760334269895878139068867158633161444936299959392240150825838482321113377034451578050656515000664044867802426876094680496953856209831783773403152364544155556957353546140844721006447450855256145921062264259390152294291078486045904061274015886750495401991454260087305708443128031850211852002386620641814312184686478847565158902245064139599973605663203811410860978720373782305110264117297153511167001400451180149335255479022114380863848831046268409570293370632915147451926492054028328902161170379005263235279114930989905902595222097338227781140592350186608449126404797814713971914112242263319408678329336097406402371056420342490374223769563092898846189857260321390395171092994764670329473820641949350592868903012075609154041690768315917285257876350168812525548325475142799271915254770532053794242405183416905840527818335455930356371140137616410806512730899150114196990291808712370425598847756180229905746792188359919931068630198429315858169875589740653167847311753314810145034325126667892631600754010231230747284238159665307193816724683124252816434668753637667802464304550580409196799946896143780286774321643613143079379747733739739386058053826056897917073263242288625984253547142554843473878960154638806073922960196640757793506450067131419097058510009874407895706316660795715151371713365909250129378866788398307888525732725769019229194442055541310536709358196905098590970897944708544699555503169281024861582468586504227978864851098602970302448595276880816204114914658957902262539915450591648114581231508746492107227055750818906600764858076831354366984830213785976829307934287072539030299875418713087766864008344546641530895577272025617709755394608734033611255822122881737476112281590560099701464412724013062556072941751297543906920276177879843880488629712828808199692665806514863852501267532079308780199339468698709727782255728741787782592985167701394844427056578818301468135685968891818369728490466162950517593920667668727397082216042754358657119346417901724375014563814965581989827676905763349210707452022437514034702985500167384009617703200065493471684567407037601825218251186082065373488087839172732340070176312616140123542556833634641435749849378796215656045694533649477342853509520986169826043852155698483470972858362497009873100001016277161842424242565322913557080962076885461893755229417374273720056998683290978399903925772363314998046109430188862899825454189724952374663328145783179604412899091158343771171180151834017976637109649177123138729398908210426128905757097397226165128037761451402606173660585677588042257851930552824607512698087498286791345290985163906272288733950261704786667744516085366756407513506852810369638393803940219405928384211153436432798211973078132901255999794116688193732508584733265604831289589719724298996620860267204276596868165964299040256110064762989142396116363322824993161626551862829477249696648850062556096079710786608732451188330212787963974243859929311767754948971535276737282419650507965247235522909103933563895627054672260564556735037213425026126073077312556038460144573029794655297573293360465777481353270831826419325343330768318734198527445582726031137078253406116704450937086570433215220487950517119838416262803365670402720819533154935351115885753211106424795000674412250653828229487746473616284908246385750142689007019144480243942843161136244649916115120514243550793030228868978795329976500276895344930990006053479421070339327547634668347176643177257168587434708020670880010701899642871530623561889006164309952097940856664987317664291299441490364207912293880966282665588193768971378026358170893545989212756428894712189392720719214171558079571570320015186366334913399823337335846953908808646282244697701054118081770320329280767918504928577994911122649523084474618774339891056973296564437841786419753960328558521717896596759890842895117263234694940276216352701770357838988991316615787923116035472900204669499741407867464590533116059032136242568476835974857068197259037158139771741929952031746420316354591130933517241118116197388790120224782919099456773087363608078665797781312281441958308289748103934333180551147459708706889894777356146371551666327702623862354867613357995946383062378735559029276322850208858414640855651926903632517216366764913048027603904856168697347120167135742191983525579066130237417556770348175056469870656765938245571498522638619659313770328632192158404931757544939731492793384316344232610162884531336261983362909696528830324745682444814235063534176857560864527054865968996209447457795037207092660447197391134259494216685097644975665313193622929980639027984097807649089830056788906067562762188430438098211037286087574878041383379744954660668236586458833492470956951430790297627000198935792665462776603666247161534524066171720058961374551032520843606550417359494011401400429232371885206553236164341084800954655932866090684240379580540133663514271279768617949431659654603102932983041839864860417520548269087905079119466895229434011311721905210360808218259113582133552914376262606008658375358038362919429754355362665063827186277806482751813202924835442944198608634686170872869555543397875077014705120576178281626972047969896316555718307856645346386730404392728312444298813711461612643101610105503067912348703580155702954212120663085985331563306913348583169757884125692408332739962345213470509429346130053971846673545039389573578500316357799651688635158796997137692825973869366305080145572241371884222989394850807749547508099148099905782323667493771781611094078460041955116985302580098768144752861794807565417245485181189538385666598658307553867827325339178664088227772869810820273328055857897754045070809812507521375890096607099185056018843784050179229351730103907928556372009855044008865929331268828181537137783827528387043619913996923049637690712598563595700511474017223570495996089513402520738425889934114209690261063093237756622386975320092574477040662488056144324916891504957448359824060009023383548457292827237496715370781052566165484031555972001938753647900115404938746496537576698734207042458031734135106213404006650170752972848932956162246069376845979390799487562121159890144454523316968726125377176466764967728379132090683128096319360019944483449871267075201999827183097107369977299350990916288688392899206682908006266122789304972121378816328995537566269270294030745382440077704078518518056317102747204414101433124508696535885453226773274839499751532441780557632259957820456873905436501572846553379424430120034489218854857807014784978510171900540942816063136236111601368448118190610462411910441139237208828288492659347472397049807930231445899974861122767594401838612310592878215617460038524856940525741329507275142404709096477383787246785775440239461892075397652179895472236818063664706066437873791703351794252795288238122099101164121835249032098633937922422175694741837437966350770685489866463564491236679401667585591744068512131787671176090883069161155720921433098102389034422583079777478253815518454993945004011008218721514416359902732654085212048844178637712866191227174668284158461087249869216099218848480916053312367340974797365417959978264532103496833544471454089798329390698700144758892583622679570713200650448184817917244340102125200760520567555223418298020313923045166169687611667554492493603085314760443695566831887898137203891974368029279276387634472478516970810083684385530026469998916855312343507733790168793223515232665326164778912100913501656662140449733370709161496443635394073003144534249365594039623789612011541103523011137125945999407874516460976070565632305380995387417040031202847808829860958364497074490130664181211122303236242130463729454325818511161504507223058878145622464175852434642910420879159225866023747690438047930887195086065097043505162346729155182456779397468788881895134321276461780325307483352644878908032479113286555663861360809234326560687946275554885785918331725985122565981231607226172075483966708861051237559040246784989797531139738423552802855616998620085044904661297095895672601015129779954345970531087241404834088970207518679827513079381198099526288307261456985546605734581169928863320349915100619358583523421837390230850264542368697355181832106662576846890004712060968764763082327839890450616009732553070405933905019616267146711949633767110597148113443789581105036693106439148655024090776650314526277873282351526817864395760780068066532488003488893575938721966300569967475012936626165638949084703380910474439039558593000859334032039860793314008700626845083311868233081658439554266881171553782912365924257573536367898042817926177618626597863598815785231875658024249287917230974134773819608779133619488978706624817351889322830697158683731543825679062500041460686263671281543190657444361124493318234217676638163702886804918887672326217182894922078486620550167924588635677390162284264009150587505267839925152455515579154076580678602333006905393565356838397203575095604131634660466114032651935040262901363983216088065533436738137163087038081520620619295895516365016260917758092146939948212108820736311306152246901355676905946675162625037890821732467568567089426826600703786865792376864383255320700352864572731604742945804245490571026403300859533854576321019719107383677557960048039080858017677310337109281133275497398104843408515468169784534685009622135616228007639512072156188612753445339731015017145417124082550119175622917897144473207042892343794992272251773410854046031973226591729512992715970097827481948634230760035765210771844044673146851910625805585154156439407421025084498093063517185015514907223961358654800522400096952512173061395730984463981212035013460900349396846041367366626415506641713093710750496788857044729879169471140258194836118047497491241645352235820414329230965292183412503214832009499533086356792965004075574242469618435526831536739569179528790010736873657291269772778526483418166188441646581447027322734280976581846639427733223222398207828190827445838893137532231174412075446330847757941173959449540344949229336131148977357747784282683614193617666534838021748091210458351782799609925120563354684070030918976455690174182065051615148323641437934827377106458353338795479082987842913352997894348370232153402673881587784131434555979870514310947340666748822806927509915952540567085310068422480806273017108135514158287494302564823236647879335180449445633543969045605224008866542843352894582334698870949517422446165627543676011837393490413031684810343291143608405271222792107063240715407197206475626653705882877938882830754402294614655179415709927830601480668961319692786121131370980434359462257799719515790719700163039596008584355785772447377059077019171972118364496910491892123363996665865937437532480796903704299757842076483412537623086207315242166301767680939599412960257506067261273434532919589577243829794063226144393552075240318205542194791394325693918754281795312240520231952078401392474983517152776452170830102189977686022905832868425898504451910280506987625220301107057787600702341391878449382101639145891434137873080442600656239889730162826589515365050901170576505145621060160612197674988047799464131017717290269653472532281026968238923470084703573412230069998695290099108068185197091758598068305461609609045842765013736687659751891604915902956244838261397246738515579306229891426596980050015004778661177330585952618522366852816359236734495841997691098223078682696919209622484795995922627789670221351461058396037033329876805737827247990280265963789596262259633747523862066926752375508418362867407034570627358297179248055025018690492216299642483487246893905488329308311702780150398042354215136582554534744732243037981418500855568492270797431739495338288338499333592390247091924218507723835489221451743286949322951533164236843788255222499487026314393619606907757103264705491425359167481242805014273076507672788476071601658315161094146010702726203886259847337181945806704790114470854618511945978389285508950565775420555331557311637637542956305637042375403393966015245885336001284629477268471848477836732053279805641780130277539623505599798905362778863491740315869568237472892489747666484482735168383636373421050808471194987799238021101029221567251046628277674034709635783095768325318826598933312485526512664612672762927978989550150081950515471482842406389342893519830968357848822052906321156505472143663992432800946099175394146845393435697471714099625608955975226171087531437974912973901284427119068863112426373048582114972842101043165481540718837825428036714962808715796093730582617231296161363967200459646701288843967437467861825629001107556912601305314471465219431064105564530543356365602642806904479235638803134885946229100119807534112364808444898625095936905254912887484693826644072192807164924541724301085785058361464176689917938953417979384337852780597775502136735208427037774820204461525426945698253604245577089191141685750392296432542862872030017131091070891930787950373658962443510564057574273235329469541190418657634308581835494097179458753060609536246970265943743806083179990909493755763833989379563492899531603161367992901997558542774712247313821148570154431579094863621191729858278103318523788543542693772155397483665710444773859667177341449557746483100504076822301928387204483891336333046871685469716620439503342028955788803496675866351007549124656248965100870525553740714633289311186833789981761760403409342123837539227520209923288899431732167948378653553085197715519122749724355067058294403017920196422918498600358573869575308881784993032404503808715185664500185169957989897803537233739092210780417589203875176704381112182225038731790309874521993306059303629356470851990845587599961674007506562763439081079104401328141799253287405516560938476947706496948344856018276811872632777351892408433499499099147507858940836054752128774915673555980212515680776570007616757406463595048108891631404822151832225057407229530532164925462554608090830830412118336838501015115951741508766343295372737580179962627859183373225585702469268208412873219972424310051547556228682939619820817960853766921781558663591337726253383574138103141441746395886224393612064407611904444058779297191126868950029127056178932678342189843641208885819936281522799654450288267013465275597372277246122030722451323420544831119656735804518137066689472848448126255099226535636574381702691630701533418117058181279991247400839756929267569080501538978726701800135724622154177602999608323408245572530650688529853051969186391404431033123814737569715239410982342529203908790255325232603609278386928955108265652119333251095649362531759635785403856976782693088254123449326836022471496472019954974383706572926910363637475978972037844836956916043738299031591505642545202392132170781030598271458520003712358579876313249544076296563110943973902846887564840557224754443632305497887236553090596015596807075114103083842734518664190874227412606077552808176664625573760850624987502742420957573116247643559778411474774373700959756022966738628531233456217455248853495012413179138414829367215212858804844990131783154372810517420187303510749340733911496363708914411105407047007891910696932717438252679356524868464366421330315614307415029456543801459648880103880426932535871403650909268725923248204933459845092493037964703288005700910734176184517319670156963546239931566267280501919908929987517482099329670471296171803119259144606897999041396928073045467344151102278964891926586788580550523754302311759963953910456903966038200291892521753105837511380340559810032578795405978368817584181783908526080920352213755630282390803238801999585139493377721536783899511646482447800429023127743927776402381861922364561724932488196923241547583472828982358817606963685501811413476674566209512560688763227059913209915239397972508403483269104382926013131805196382790294798342207508032502145592149105534434495234048785887996233119809593781887880853012353372416181055023364394634054588056810377894248309364280076749919833094460696959016995895947406032990316099709991471340477534850054641126644670289156696793028575226268789265700676470109710666086135161312318522154874335198259332724295821702394980009371440106573717900321053538701496787195583126022204360576697991144141292100003021816003542890461194680834645809776130563886948942647084456215068546880920535738311289114245964343938887772757559227772065548457204700670099632875341516202966041176624567898888497272760992305486876660879824284348180878880516245246511461523970609255573169100759213581065296920236835516298088347897890683024693973507956086988311305286223037913149793532022841198376334461605907010681919004457146647926038410841494742810642943018253369926896227093873706482245909916922187780172430507931537613542256107436708376048355886457461291643918630240138561299552246999028151428377474620856625834634978500781116533625043547597943403433409342242292002888210420707040844084020583206418601751570198807637631587893537693894051543180975759775468817857448705965904454580125774047106510718063464468350188668844355988694484614134143652459773802369512809639410120112588725831017655680608266896696750474474944563459843090728776264413623101608470111942807970675628243686075592397805049598538514368636081977530369402051769225183784672871690338470247698328491355334461227975704582300931385329871788047366464693096785752616459114479202587501837494485364416917544965258623042604469262108283219773112453282529047077945708953045085324294696243325887077060872118557394276814135583074758019601400086040003302433141794680797730464522295238668251779534545924256177487575203414755910716968912621733702745086880590589804017709623776242376859053437610003026007651302033703960253633255353593024748729985571372651726993706223797075599250796823202416549915745178913225109407886655664775682820980407330382721359350480549700708286548332716633278309439253998289037937663424856396592932717147135402724045551898449798433029195420067405513397700790717138745563573842560817709492787496771306776795213968516540072381001078614373130134488574349105282934107403002496014941126977149872684584481336225240287945167328091091274425728355536225225481048972721690893498723800597181298356110720310561098259915883935945376887937580426900868846030754252396626782729388888380046248519649163466316634828984376942887549183778782084430815000913183421278954291165882357020720681497247524264573764014296008113346659067239421919934014389631265021872374841348858822801831078211695635327015865829369970238552354769005625709388551019189473671104413841573339617493735252836547615771059202368774340940396630007984990918392975878116006769382907976895194988661555976593831207644585550643486030634965233279134705068073461703959336324569548492234980048305567230388449533561330464278007201133964476039742500024271385695579979683527104345118918381808103230993191347946112856975444642098832877380869821529582977161775430839755354603903960441339465268673432703177107176134000384799162926843585296299070292528743753299161598757441940283730755721121340813210155994909627133556017820526168163641727753596288116574433765092179636816006065527952042803561931364891748289520940331479752113052578034523364679893881274401502177217905493349137257971510433045855060782746237499400639405674455692323351316489450862802882216165930597042462754946628789927993447604739929014364289852565914950197596310990052703823129089846945272029719833304989156866353595519252233954368672370202550646079071294028865338148490869198581754417437940039340266606299927891130306681220092992412320006359492078659303842805248840893819822101728971106933045104037989421317611379621484974086154628755513645403033100090273585584504991517414201038591840865553614704271790795952074701618945907922419722554933294052537103455221907522611078361773171404712817672831903210174632210268519056958817598883728604209286095517605346820667480028983956121962581352804442654001152208913823592173154933445363649029470422889349108351845136211569261446817757431802893687785646002812047786575395341460769562917014420424611763377151254442646068685508397700862871519371152785678723330170321995818843967514081457752715002908284477893893074146813552661812489436699152012917028779398480221281122329917608403183179105103779564336230583870279893610371433109180593917679642241821940952767760767041529180353941471481334522481785614953928812956618437906835820251629481022501992831133034709323450990944574308649653888604655284990820340250314764800689571968122113860383994175120738881410257347234367859558362201834299073120575443815466752048272889969632216720636032472989123570588655591943780308697203620590247567649276834326334949137750594840265242008763650310303705957249105158407645092376950677983873908361563861243269041634669924134535122316457107140926641613986010449458743108398186928472446813975507487285891295894333215045106021170141679222681490127125418552671994517135974793132071793387044713248367945323786606080776536022450777885871113888273212444745292727453310803521323490345418603456356918559662274031537205219430602996019186903942159254748915454532415719426811820814317220464130058085560262629598062531133361261750523314164349572175996090475189760880862374940685767370370251366333756625580936606277234504435026273106293599204591509273718103732585200879175419288512307952182328405302631741111737850842191055056993568345265656628004203054097502053783787682420016017430187897869255801859293246645763974150079678920933602297678839350884083474413801735937654472933433502069455311040359482556830613268160647642211715672645789584121361181634853300531462599454294094858817362048641242779808400187112648633386511195830697418926457585603767465807918321796605058938170934813404044213958222459839212837971333106989753244044582759983796870727857005054402502403061010995264333383273403518207563466066829975526703975245561271282652896723718187437488458042925773275844621164854961885478326627918016899031370931506236171949689818492981066709373918094503157340732953599138859545164828048605971045098783662250957433686852925187960510768749245328062510848959280598538920095785576144695999804769856917786918438158444907281663204826758031418475232035307784926304389098670245835208559846342477541512586073056266967445363077141308096785207875299532572107686622422023691118467268464980644183387918337975052492388474238085159784420562755611199137960292903979200224400735743984250005025150686745299605069944249221028083874540443976832522870463509828132948082000768585949761177507818802255146002022040570284543525605764047721344896487610183603967302799405935677492076704078348406082007065423779213656701107211250207558518649491622656742834023319111870524097135142891038835085502582519457499511555930307086218412422593120106399637472261744925185380026733323484217062904777292058120621583729440033658886697443325328454581825994915980617733099688376124085719686259001411048082668742688823249691848379015057368000416749071732589767956121996492049694284369715319608676945268791206645741849723990576105693290737804731509297496360609537588485799380364911531645659190640827049799465814521977597053231581600052967896929910233631989344889611186473368323132102115734101117970914963708026520839200689341504742498003024505529707273314242537024560179941497227884971700363485093888698345160834793461635243001912613698250958782403651360132999237620341066199580680812357611752129642102022775049114796829800988709014525013652696918797449154330462428808224819638849930146257339331847634765261292674739368507513364284923073432758489150230751797963277440357242052391198274579043406984058862439923574646057939919689912307676941828668537966960453376532725486890095021211082181817154114304197414082601125802931376021832130630708799088008746077354326819426197517346757186020566279461453965639803548764305250007922025328558299095831057321261576043338726634169634152204462302359408288114187330466383318504458098462947260560449531596049422262489261187275978533728368972561051260679269904469088931908581230790660410134427369729079382216730194436486628121240166920823593325595098597470687773216442978406312851534512133819884212880992721350024740157416109040685207122347447931653741268207592703669389521626599771501994409867151609867898595777052701427594430902694022634560184243802511881278549266744910578574874756768299560191418560861490446027140305918038352521666483810433249185508285812113734066135109819021993663813246121668364532421876284397610574750580415047163803413581310536928562355939476386961306129825893959229342165149917371523333103544468226740774168865637730767029153391392299557372354357816890332423956894111087731511291855391836636089257218162170602630007973126345226149442937301212914265013321588648001471959332931877181838683209263553482100839229803090981432587834448513952973359494615761545499421895838060528230480719228894546881377318269213021311143302486336066356118269532089089902517641329078766339971701709758376011628839538754364797237314394484409924337716511995915948677493843313705260423765376702819332395416972147142613713937007668607013700645041540768718759791550876897439808836456890125314503913624590350949499504006398764436528392989535068897941044060446378641744959631050347724711394386304426499968118392762717298321540215582268375507456998960694509905728460039638187905952748744848196424715174457640182907284192888690054171743529611584745935424632464715610612917260853288369745518100196330424473159854486353082912956417604355558577873632071940619846220627270877587528096783332255968405300727493452719194281100932687467482475177786246435180973647805408894293799330605762782543433651040789526806104523971408400908977790030159264320781297574452645686839002097209474670458110261890663765925346569467572851083892933342388298184453969687655588713960889114156757461353671852114773295242267859572952833689857818979616030641107533006852006050371678684412419728264854316924357827175374921737124563096488543355383223563602173798190686222095189373795888123503871480535701666125889938391231309410965799891725230083172856327088296803987108378211193376364137806517628530806249572102627785985006703238104789251999619229059325699183339817557834632883468095165081457769902187626878087487866206864112859399641707542727130949039415999343304800519516853974965622936184299326608177063532411880406061481566796242252463776423188096690314988109776209572370869582296361290747931549603977739770990726140187631834670863907840558758549000490110145305690015296450723654999158620658591364146629094220736064011985988920454447809165261623349969306088077453497932290361237073784292942047152770670964089852806067749028075381258851067269880360298596158862541750229736878690570277833784296190848258768539431050869090514213498986554234573350724446787793849484876499321581193373623518319263791413492838788530239306176760031307266051645719635937870109291168541269909223879654490555745058245404219433909181893296365043947065169668335449074362089052697775493713562716853169149191083508509005810694718469789566381507186996922424707269809964761986955822075721593192128727360160322161966589007925919683209028751915010290206620813820251444679762534086219312605047562524999549579874181543132938253131580428120588423088992149904431336641731433831034524077380293063657094025684817014474694480649551670501856130625374394073286747871577370365265201740929598121401414638941370364602132222141879054017952609631348405224880584116892107859657310681321340056242176228360678444142348428600365651321899437768412264449071800703877576200243658323445480710105692064442224833009770827241760233461347301317352748429054378042384543185473882299195655677526679061700514621626367274213331154252085354363128114830438627915506318031104001069635480480747141372995816643615502150959096190172433290465525974805735194989249763025196190823092862879297899943607509927690212510601702859511284833737347176382565859911259738141580644033757374983694304581064371972195736446696655370207346997591404089506264064698928572164485695875788501136447188879369609087634503553485669480879108339106112204695243379843068818593277280580848100683915953385132584040574321408759932826988262441463297121898408215769318778768904873012632559837104508805200753642674100469490741909233765366110902467617993210218186779678195948593557226760528310544179113870826477792739415291713937190087767304836812200238613697211483422809818345507114492559002068428878655397192069802007424704162708909810030418281477212388261699965317252430201782747023456138162337611165437134949276620651668364594535212574075852199520688675607172685812334181626383634127911953527334709697447176786971963712803820328526353695001826547614184478532530533020474778538546814488121335445328703645343764666986141217349568829754888086721485019971958157329632135282781624092865868154206860332114565396281564625250691896200093645873945568811445700226107139161761006090548471294969821570717046257312924207060426101664164519356752202947101375595762609650657081506415334787596778523947739698035869608493142383675932245257621869505519900936063007664299718142157413956136901190692799826146005199440127951208365849588566778523492003753089184506618510441607490270349813671383339993729733538759321321623688628758142420823452943423420604752111299612399621455429500555682848938245393513387201994069587328775826680466165585153879742622628342536711385256814496952791040284663660442176660352822163259538574489369699835470053681649480869165902019927958122805294644673328538180902422048347048619600369038074674599745746846805435648398033222826804999214637531706275528452460253883309960616475605756182404232839290441561403183548285235630333562271340512483016100988343333670671814518978972452213857821482355084355799216255266299855414176711032643093077882709543433855619328975905318120775045493462451527162460472478585404443335000163577397989105370401970507658660870331385272721736951542409571785142897221489567715452391354773075357980758157444236958716185519486595763846360368746323853074476318175105539515593802797635768490915373677517923881836618902487225650122340420801542956619616201294830346330064086391680959626490525259451228678485888794545167001699474579427621073579560125305806138617918298819266226488068099951341630919727504012623800704569823343906826247308299847191315063483671348781783894953607959364402983685679574099138454713817290273039006806711259270009895763343971669977971005050229825046309714000061427718157536165016647079705120543960462153398489108897178452806078248073883324399606921040727232549961695449655476494470537894413952127933777013650176755595292332087273051692561595047504429445332141798857956210165228667413797190774324148526732607236928810176382948036910457439601550327117346264356215398525123264333322682419324591656211904511393479890206570653667735994209915095335582189465860961719489250384023443389412949016417437599692931342606548629591418790431907032570150929865261870705730308755403489498079386198612112539441290213968918628537603773311754858390569193639068983451043123156435520394852454217415399116245446836362235560460341884897290856867973828720689132400445603359966454157217334773673523333250372623944153968914486613307626216238607628492206669569659928843283976773129426925152383825612779289489798406986446133366603524520195931347536599306096185547394263761474603172379824843909512771322896075940166913095991470233883075732288636230820486574717729864056441800836258823846117527337704709863697950816564183161052321484150063399321785811785617303049620856569645985018944301257222680639224145512745306151911875643897494862151555408929982908907708179122822450437482709078716154586858824967853415037229088479631922351071404650582772782111182056693069397876482195293932950424682653081228100029217669340069908824711884006419447885106319273075675629428891701973396806405370727007848101642178337476802684268436500966751800575900063695549006306845667788577134986491638111471684452098791851110350289001726020856438294329500737298931597963549940029919376902578809223170303922872682833191434298496778999672924822078960068043076269102491440486553808341772638499658818402649889987107163885165440472538559816996915954900926557181554209837027115630854086925815821108468830622346410766124076826503702765629600576069071198146077588109178212497541081850905723577836049771977257601302573966116120099037295439609277192250735890897687379314310718046914922739896110449163177611324977959951779498487960127743786602045520833268211286902611836446318949113641916009902603313327269636622823537256197027588681490070255844789957734800922393699720367305772222534578996306567687905680196012580212090233251889442100797039908288981998588690334627992092608394969949212144690482798698371929471882211610905196369381998340669112552404571965170250529464191806179271380716788604741871624093454044901936381802432668366969095562091018306648061472247558460852761865425850015454115543875575700505248820042988987581903191606722412338318910178958827274830354161342214639637183626104138779814531346713070284275187979765494743215645830712603127422928300207794294269027921045717227462299288760402429336610671285809412930721290151563574809549655836508996939958842140467411894564087182859382817601929791972988606766903426034948466606995679904927720258307336139472716335515938965012771359378831702785866610597455186861872937807779046659579695804209060142667235008498944216457505508951921211636057672290743764642926431609639727569056258047666294351088323175977518853591820801425278611800625544428008640517625231574660721663180930365278243349738675484738570343328008682307486092795805018058211472106156287117224284838919020078541095186188602422918196321233170936679901544012374419672313846708772994701657873119825579973464113423902965079747272490385045909533937904522001461109223777589462937760860669982059828264744690421736308174183705028229085551454697048072906106669802226724107883068817315074038824051875775481784454452485185852105328607215844135718446073068703923280772821714254680608748305698623951610344817641184588341740279606884990270084736337303707299851888650280601381191598586902644184427340846633542897779040365606128337684705748203036467979234354462688407738067416308099863958926155055097052359643068061365839844570874486805054933317984250833934065986382981922014055696030668097914806395325029214963354941785529189412485312681674426480115225853131274488286503680284204464836991156423721668766992110075805420911878175800865079399281768167687837809164317446862958155740881635991962699640806845224018456574015458139962224143059128073443542389027490438986394612639262747915256156751469543703565550036294605023888832671933164395973581195875477969971057180435162010376907522737244155492994647964338258626169029517542113996108728618359548959958174657498063632692693699451526411513801049381306125252275864224914985896299690440814673082424498467067293041500456495729218478182991859192554271067289092775591550782323033168822173739693228619069490594984638559719553753789028180155321918766871379628079049353112434361030600394163018666546957697266848750756306491576860849460067192700605069283790332903108091337961370141134036108750300069558025796502789993628963284981607536873292344278616693110263468134863159008627687218696778003783218783764299480515436711288832134012837102624373151933869215010565325009602976005748199330911581679863270196558143818499401067401469756569439621776662976103170071575822246245956420159017360732244464889181712337206449380524626276498224022730463464079910160510740695143777064904984940220320244961941097019871167474993953593000134082972930431375308066997383202830104059482793779658907345768643836561577891129959820548941043957126747150333607769228449529698946874392964945834950814773181538768999377422303261960970808609810085026818053368378821610080519025822931305215904765406220463446383527408609642149196853438675013498048742185814080513262526664313995626826243729038424169920981174289772031543483460093667679272672165352924531122598282417673410560561457996985190379928698897197289416637941634578767651252088429497250645731912993510516115740454676539359910308763002178632889718424797166349920750024925960197280297110129953391351452926169005426794365054943434217746117622651306805218535830379691480179345401698937009609413972711297331266536506710326064403824923576242795452708818060563262366764161520579419832935886980645294610031754320184578586021721397006372220462623185360694005164513666304388122752565204184572538906938718115334506886124774084070233355208505446068690887277994338773159526581641044604107966902435830511241741196341595143797465102313173740511637223509542506958795851758339947454434041873047996845642926004557049660201933420155965048018854746998658784806588236166994744639021063130697384656608860626853089644255182682807826233163963283527725462969734173221762197191037408190181293517481332195478927677997603108820559143988936434314036283779709576789168598171648538225211470941227573200369314043617920569153481358779637558976873735644959020374988674385359951751714932667556176849996458673225719428564785281698626473120663925952373772776479082155322681352876531163527766763740362004235098299310639751125089849599158419634756518409517000915780891644197812434293254199731367330622428977922319879873382385136924665180010649282991804314407195113858068246943276999880686249009538517678611691847125309217994122696524839696635551473572589192288709852816245776008313597374776851102342206153366257813460816308918798654346020034210873427312022243564993572083507390917439247901309358250992024742998473308936676020745083102180683142259362877073567213387426315169132511510865997083498778326629145424284511903998394267288473678602192362830833781831140454420883061311986746529524785960514091314512490893846026391880834762930939884736635992142923171342999819021602998799290720156043857719083306503883094118548598561437000575846651136236422742582675585282786606152795229435575787937704692560668243868794862801051803927211998454627306053102628304006602002588515251893659023144188487701253817505024196723804400011008385533524425741956728419245828963641433446665213858107430339573354003778843877419258628117512086399841138775976986270883284809853320690715503600352369615766906172667257949009928423909470892533001510998094687783389609555163741416523589341564168483263645940895059118723202468397386880219317057836402674473622753906395333995425182771933766742682198692228036455967132608640649261257182761847722682947537916008449491319071814476258365863914249185651766611383300326453121980771014312520438195912446571703311190853531536332615378314781556520289390383872777659518228367917718236884580384280250333362966889009110307204983680742603709795502442261108321383442657202261640274538767617614404668908601272311061415509871380943421442335640159526481366608617146966706143491440843110222408953369484612534449034859324798339025680170857699733972564584686490502647698879380800371956484620611702661394596719333660856353812746827807230416374622754369228522265867587523036438157180676065180034676936869350887405181117154912758529946801549771758478301135705576416710180117363948082204664009937609478839526604846941640783899355546994216257495816019051513995881237316723447395511910557097980506423638191372505850462646065318383591104058843866701191852880796796874563708863006320697708458170709662889257126042035570494867618731936531968628670898568776329467254766390385924185995350943219304180146873408552791813200613413107729578909294698245762215771527079452414189701506275068438820660132904925192144428309627055230659304833331024494255563716679500127869409417124231445991719142584224666070138358919848044414289247559587004121425528247875628839729464570874303657722609387972015795692763852827469911742814997132831541860399462639617052028931950942917363581411110613041314886390210516777043943860207406890437109546767157413157104151802965054293490779572667578536895625955036887863958285425385110593820805726527206320935134621348934821377103698866784911945089644270148305763760092444998788227888270475902947318003127970020072126109259735429414166369219121263492663113376504129924336257923112192523451804832800798955827431029366750356082260892256587939097493089184675321885747947874934461979605153570433068932114276235468608496272301215880818454703937907985087314591106251613182254254828767043974774213058756340683796162410395912035518770761161110115773416570203945681893096875308099323797806507436946523355058087389345851332338664221481239633559734659213355530898839968722507347949138621137567283437302459793892483460150801050364747810342694573851339236082386819218772601130400279040205956137052283035949090474131764549948497273527709660281681180511012275456234522005788979907802014169157258333661828999510569709867706006520316624267741593307614962646303516331569988222453957034119568243756959110438949696006490470822083859064864724500553294031159684465676762084991271598939364972061097375609599776639658241122609833104846581398008628903427094261779766734579540709910340836545063353109198216412571902641111705244130493743880348727887158041909230539933913749367905352124816374091418379459507444610283754551303083978439984559208294345224121691532051729092588683856778077115665401968154765543760151475067254737995189553742125578583541567232546380827154861574100906801069734296358136936988886146078106789222033959863572952667497994178203894215508065354732660045045127450337600167766183802533740598732377626706140272421819591476880314547297273024070010795651805310917846616497972755739675675544967116295644412102277738621639592046861309392877442911730049221725591980574794631864888922531949875218406365063214896803798466028209155657388450689749968878167830896037825576140042548133288586254543447920810372739800707176289904023719187879335823461648695572801809820771225969695447012548319268339749987206617637425827090805553364449657889301516106851245099590746063898896465766186485959387461711104283045574248845810125294156870664477807041090836970151383212188611718591524725981612900244104362728429840640067065443298599065000612879340050184162006041028512980479587405337397066116994848030667980358020915770311172569454707893553402642852121363213119424281129755972278884033610840120198612407807258767013613206124460615654661545815570099588893359889040496238654396811458889775428103253258524780937538588963348980290830072788809003379052200526685515373780894452417124072926146362135435014328897749470413272327942439565144865264650935588839198693958113950725323380612328555917857390848587728135648323426347915448422956288968598532984506976974334490044942775593676301970370076417420939726515160709331843552869984182257268157998774244998631445258847880705212321559089948681553223234088211683829509432037432006745362073837689195421941951651519463061169613800557035875179853875602524847239329568061287650521093936390038572015607640869079714962428650232518747648636283031038520214536141333251461219731976907453831240879657417809774897834859470024867093323121090594620477394368710452513363039572933834982046083661533930473427879648689314740499264866264520431424345977974490595908595609943349104199719224308367583484103577189242140313862448190380666255224226484396465826687263128767384513574660628134733642223461160390491872985236776974899385763373025279043879578153380552481816176551265736494463231810896386271553255912794853599864854837115036748019542264468487561741591227398863852912930747590706932117926431767550677248513062365785380804268499586860170926155672253696154482991022483406385752916368722626457454564696258510742985363173709105093945540394390918805652510505925385247368253182922850731409465430589012345573970506184116238836779989413478546960773227991431707336496849391493013306064925108783836411060454227911847929531217870082952096131499889236525362774164564684129309359095007035856738070069091341106556463025488362484401759731545360225265356096193490315693492905740606957754705409804825588055186763756340307236640174929463495984263621838791715884766205540786489272098288603863439335768169013150057445281257107430305128736228751395654757117386001024907566291923588947639486952775342495845600383859286740393092717052233285532676217531251150705395976709161199725086632593251844878221577290199426445341510129752591006965567917241351681097625443325835922627978890922064366053292686367802476073523762862297867226521903478436166552152637186168399143594309703550300896340937284563500331461200627335932931580946913892577917444878053675161045996316034295680563122055321951531342202050848811935955009033340718762705286805114865084581804148442427494828954119042111247208546190483803360014972182352651724107433062619572474543158607686756740185601222390576132610843229490109987925893747677790638571290869843628284776273461967882721992206881895465994961983035938534550727522301252761033418402668875893945644705531880298320151384208019332051881007603858229827050365259456894614263224727485307285912939593372387300700632865472114623357460475070810955516748505524453602600261565127563676613347957173236869958872273652699579018066778489728500951338178911084867112806907834600177491396068770579295482733487009609255921299071598538101674350791445411020067233913896025119130338017970286986254403989611737415662616796207655248031195797226717114253808821547179538962669411487490665995048700134215572774923923500025220498278784580679358495176082201440303712572374781852072347956866138112260535961251962576259556585909900414369376654716727825983904898953973915722458412217911429919248096924942159701985149715262680248662983656355871877354358892078529767232355789701799957325774502669363302823802226049141406016847858020304582657852943327641084972782951968503518635562762171580488595559426805576763219786283033575687511438412167712593957894483553366141861199206004615873468671748263781022762631865330513187714520324759185436267034757614631374179413569319098053942424113057268156322709005297452166243467304710872513235596297174111102633652358987135585037176688609609134201170715582077405355759999135962444160947244526196867020857097168340791427486686942046947629473139495675866058495454467665108728265496793994534336486099279201896593941591541235103610737390537733968300937556371560958563083942833681255343044970497566617393852496372521913236212288962563213519049952860312779731335346572347249924719974572339105573692157896569760849784046134033570154220966278328051944735913860007213469923517401969873399291917051386385237294438845636896087165332029774335937159439980533373646743961113150578195578516760324568434486733414957430281618284155679303842244735895345093143673359259655857825607325041112165019197949203313208220794557477173534318684426941564480888013535633017217237777476266841364808255280314584747442072477062937563984225228659297656592768592394495835589626173375214183276393181532280650448186467127644162292255307785893461414649846617916702664161806691034181521084502542115706550808702819532420653098556906680072798862918677198399133250436105249070759791426955468806813735513855551835502100383339284431265393089620730823909508231162200141122778903774799679650176067155174419805688667805476752768334026793239908605083194670276372453937636985686912041057487098309391895762188643250010434569576152253054500469329292759586360110118622499693408416672015159717989225100485938737338791866179805132628452781550107960521991729804860327312378720655008855530503305678696233300448399503567152800935052374199269191222388148311060870952336851089004574127243564789806367855622507609643351961464518002766251566651061003242432831918990214250714237549499195492177044643498999655715437212872425266779695309639967805026127406763296013288531738338111846561050755172500890414976341935208412316959727082612987909274380417481549586530164873409674847188436269029848414691395070912135641143224439807021586945452792439689289190538057633010864221316042051895487558989080750394231931203571702042014670763603379759866001407557607305992666869303336165482684283827081710725723026427543797896035406470042305237556196096799099067770543525616581223467003881242848955590791974963474409905585182872826820418939844868335231613624060079187014358580234652479570659402197623899215344796626320231423852927845196991232527806818784587455970839153715213349186897691708633134997233062399557892590790261816991526293632287982540909944884940040990850969318657114408548984832269847565876204561675797700124372027404955387232183791533433032089542735061556277435389542056488521170362662094331119696265346994025952772452574359252161105793148408617701497833084861407593645466316857651346985292863494361521991120019778303029144566056634930412085106810524075901259712040855494036051441173135179220475332208979106399091182737687526192061174085645847213728466710081316015896039198270064628816512016640777501573545328266143588642944688989856411447096946802714266378549439493246555004958824131757080949318261996998413433566729035015308195623284166182548333677323470654305045830744266772267439528020182042783627055086424359083649252467897224076806218073795707725958878586592052677079793199734517514152494721897880769199929794046248677783798860894282155409795938293842389129726092967025134688873091938966441917733966910448422212014542655092181907322129355155911385941737828633357621574816672706016443791275034223905727295126219150761827411562625519670563195190335369526266636190576833040181115308891278121895971815541254967982970609851771934935133906892809298104216238510413370341859099961488611900571485191955782796211893126084483265704204525798320170081143754856770660949042525842617698487853990118282273218796822424709607187405944424000292591554139447078961943102230772669681908414265705441720636573288028430638378268448461077977830276623186447145038958569201350392538481085537660541634739899294058894316558738235918403566155672827184324262949954180716012006014651616096705865822461236671985435351047685514541736227068178017500082663087912057459652800331799633873002713616520215477285958137203491610248215927286722734978717761390473416301062666806618868063533577015020962660843362717369733649145000921908603827650875008793824659595051152883047623382330537894175657732410627010321087764665292488113806114893902900183276857906000753245711578769850887405934773501027625280343190348613002702346897453120352899668569689904919551038234977358859974328644330933535192119927222444418564287176777299075217398385035366873219472444089777207795050914506801941807807748211914734826992817176469784094724486990271632220484049434663109078535569635344510858335131847212611882548120191921421806998534889419115519761562606087788360113018638819529055085798093214725720460697686971150669481029237682892341181480479988084425260507931238750805497925420921282912896879778238059826370503458513145493695139135790313024809473737837729299395944752877445559909553016923763181877454096246396576684812157105828708607107002014963432703913066041645035801356469766551979498640302772423533837083913733422188928023288879854106821023031367546258143929648912096290881193767780914010902796981220498618288055983940212193127273293599929824536755941544778053512954320071230290034325111941000978667500421950941493996562583937939413409134225003943625862138613079397238426729305523007104007560356052508863385433470989225849305093779731696854859639033077727656472065642343270388181835842237961075972888928455430293902071680897400181219478725656381976815074524271535309644044141827101164577332915210321307215975201721460485236135327667145502661032765785024332458132806854309901883292142522862330338563945179090767640996451313777082574766908720109216260776339525575337637177787786479467228874799534554290297976808425892079674979117465933498774916284601336069547709787302255392100330564171088545537531501284909313564044665217022424631085953191066019906626965961712862916417104776493982370335913838412795273024262037068057388084172389449252535654015161652453983488348787239258867369963606657782279429039152428753691878580306169576223230214716177905196161360854818405635297132349546897420545631455791520279456484161311109063316519569328795134733884150376071105288386775562217036874788960305093774224133904715941049000737636818710458648340102955173035568743970949470071484277962209784452715364142194647974533272749515008105570281860130391164499315323969177063339185947280443260885168467732835211652736992877386191626420934912631260422155765396015871040430456855671165477316889204026380746596782375356872332163220882302495208865218536531917126276852092398286052909612147234628005037124271920807346400562405254397035618616668497741198830719632904516475274692015841891040752074792377412321340793718281934385079206315016658405019303619007536483618818683303705292154951351603998649440351040722375034864041041544967540477564419862356483685736607328290845089201636566799330005125209025417570812212957944409924602666899490268883145700430799093246507726706933539908412076359244412492866686280291924670766076475745188735681131565715409763575662562300422516799743986421379702782937268128122126332100781750669226490530801523146474151400508539303173419479780238920820135819287211817418214698356961788275045915840981825178235788341107161968505139220459989677363224588515118892053831627658864054878450238761823053928952664355120602907399994523160260142753611238339426512932498253579080465589915906516741770002521852863473329818345040474319836428602729632453325276590033391260722060778730932438043145040289553891471558219189672281169208218747050866391799235936422146333181444193701160339789431221176509836262755036732094237257491150138598596186044209164387681276003236347112550632985416432351379364685126554769660570619102359561714377930934175288433333521733784047388049731273753239568230225476054125971849391348798621847373187685621920710751580996236833217928599213233139632295383601773982713328878295557207312720067338788959778657862878849052871855488234102771646293105265664092830186217254924236897363710502341748018526512654094737320610147697516626221083268614153167930512623875999656796343033388319764661450174223055832487785872198216159381392108268808388483704443873261765318146633927553699097218878149455498012524826634607617959703209149699084635507234535291130991108847406861198409461751714217744168380503348913767352700688454266002666739248609740966604464009358562676066231830864575455344246677162307288403808764562398962001424618433087893540652320496752339314505031647592028320629364055962986927725164140042149704610859403480708134648622718358868443423201811002938501550002134015441306381023497323760487111499307215824842184651540417414134904765960481193352467603573176091222140086609396072291014420017738534954764842738105919642352730256861627353369366693082619048079087483424732610873358343627303086800722782014547774652061912844366822190317760276768341850595645590642620592864335700578456241882861266862433673453550314024123288622527920919721627082934932362890782390618697628236744291048713295797273449811720574471206311559492147862904078575531815098169600678180329838372643611489231300028545226891908518141427344977702952906550836023368719715531187644028133500322402469611355701540002882772176988056152655641628765477462035090055165464138420396151108571912436583456537669194331582058535077641680121959067807704811596909632961688550151295205317285783609434342124786047435542857682036747999708480615186330660262437877794319643690039868252714594462573035128118947187150163227870598883923848930898887763353639309772079185591646470298282752418814534288346756022046763496157619602724193117303388908883816148914989949871990545069998644251897095914268966302999716227157139981950818142843646339720701920200726146567410900832511143316343293039910648147807603841734894348570909863218614903840461923070881261414605557120754387894253251265859825597864485567482015622724714355062864153045803653208171106244381654295611334235650628162526453900904748322118765503512578886109594148416981426758043226635931102540393482463295942275946286585343818461361660055834637296933714118915020130989503904472096244694619137176734805784588463376798132172254243657200162295750402516110095966960909560946096700775229359856478697097587267867543271743887633818503641835083720269950173020340773218938994503152729746633724800093231607895538820385939887539782834078184515302872732988882501131673466554558324837005254716525062000450352054671644321399719865835302896421113899266261902222081452316227417151237329283617496207737603266408251307470063365552543050100261622550859476602121042719172158125074871166534361624273788358735355530778764928013545136311900448651173661253373526880376859712043250451339349748835432039281968578734332976669894249400039839530245718435003876275855500102514211936836286022421994384766751027484162411550905389836730453048760859794214945837296715257234073904869970615057704598917164376279335317272412271169000852117230886364176167863198332444827602612589700233181457794385767631725004399515795615334563845881387945956257460733905796331964912025190151050594148187796315020395337521585023414155537166867522536549159245813180749758059782724095517819317834027704536709214926352697419946146461341184990511467934660118963675228830720651414945247777199990183974841767378071264238863563550902635407624936583225302264071094873854123827708439515229346825417776222085961946925555298688392457258857135313361513022687884922232341343262424184954409370850596046084052558132830594665637138344607992611469946773951242616112155271882991797291879659238746767455775507857414076244519509009537851196355286105398891912443397277319635429302155253832599121767489065925667292151813886217534389113355386611098094724660197693968475265031086857017437003258441635976555428328717554553652761807162954321400776963912327674855785824709856868730636722721201614389139146269885759906427413058498518256040762582135323732857396763057038753436156448066361181504131901724863706603365668910354125827489118294297923006265914627497376483158126226176471119703837212270839605557439302711600118872824515618128929700157044436006582239011921380474752238693186963530969463672885069719060780139755029572920740042841744979890650600554558935270010580508545789697130642303155809191992697939366690533721424921613209018460098756727947771846689272234257744441708462927014649244603666211229466061484995805931558029825204093720114524635590529780795271668842237283589238143386936948658704018877385308193346193114141177272758278709531346442241710261015249620530594092041307084215317713198370393341436088782454476299001434679349002814397297633687406492669812239867525400976893799353981158175020227811920950484139432969071649959530998517097141853356290544910222817710586221907270324253025849992066156967171604209698648241461717202620472964110743788391936513167747102602737362117822406839770446294373267402421659549394031658168768416973595388629724139194564048025691631214110840309153519244699351380477416804335810738178561214948065591626127521251706509161308758638295238784056323725546165723717358671249402785320302786984446561468105463750509476676671982056002673346401087861445925363765522649579034314660627064100235049256870916695903894045783563287173236679521959970638240286716596570808580715645774686229818008864541605467890536747626587489939717513544777054490141757927552350501602411440924289922213138994421959595499370752180411618004166108672409764740776356752576617921665927148551225795239313305532898625538203125138987302713304056981661010917674874766243373087622625233382857474343958636152121275577789416149113178866571534077325060157984173508860616743550673418104105084788231441104187668493035680554291708500778126402662635457662781277875141741567663114998982829084729846252055548131182145703032703586580960155444956537774962626232713542970281541874291594281648139352852370964274656749461312995724312873670099425662842352493535844317026697817911688696684480004723579503968504857228165286843264828460099309443975557624556960298972858024698772741276729713872113246236874159174204880808839446661742336494189880851689094426856873932816822998587688715608088359832609070861883769192721866532196241600678641255655620360398582956593965397858179569692990804260226132721068760710095474781926885102541551854007238666057695518625990501299449586786835396527711616248626097624729763768955862570286845998605888301318791452961553241119588574102154727643371797839669283530156543176836241911901904009313045862614674376088366171209308634285174264474441363863140192604680683780360029643366353595175541754860198841644065379525186488274130785916207176262786427201589720727471029965353189093820310674147522885413822114422434240862653177032020847636607119300215431552024947665515364949815912614759452327649235662178354794336627703558494810557800591243772596272205749930396579395988716316715993283588059803405745873839582656160660862715685551909880542703884619935318196838868290902547082636489533755901315412482224141184001764716087586028431255655344101958926044410937815734073417035862437720131973845679301238609429916663337369739465600924027801092936275133841842442602199927630532174207700485066776019216719706369929839369155606821245568634996890832580209833760324582322922833437073385897521179015275476073646021054913863432691164209921451330370348247788774259329135400732928404673307882167936251751260536886908004023088036338930961831535985958818617841464039321332218965231944627830311277553520879141485771633124772022429575823627748357693657740480144462036994049575712310348924023971447430582978565202359737067506108880449812675508345757946483777234522514742114688714115788388440617833614535539796288160660637020716310310387421923274058792797343072877613254963106835318260709246515631051226360969732922682947283147146059879922034133936131314723563512564820684625828904340253914349325108686299514855025023437233063889083721042456731742708057686747749239938043946267161987761207100011415548972794640570752239252706062111379115257178886979154507869169796073217339832440765047390985863021159236603285766683483235696221912394991280291412997205714398586727337867806496508845035144949550060194157023992180991990005641987922044248419701764042942058262670255509612622734738892274851012711776516005718085277531096699658139713880951990658797923692833085006357606746378363591003388262047515843394617436847590143357792930629611906317496273729724093571017983918252084877784134734244194620477411634675540852735657181180950034045556366837550279983367381077472913920757470384716635244390215684723616286449932237849232141080589846389672977366940112128989668241466219571044059283794433976348921646580593390335399169314698971109943398151948735699742977360753668197598688957434802960950686328797134341114906540299711471571511671283985233067486803748812483405360351137197918327700611758353985175139885520294849514704051241166486519954578948798634892318556559334925142149805826202086843083413462418306815155882214726623861279518979487696818099617561559317052467978005476737070003287467769516468691737049833347902006205644542992167591218928088732734868750239618619312011482703857898934463323464396011408767963700295314436173613232839984540607203713268932752499005440183093687449693940051864017690582232471694713077587207973856969661509320760457378323973590639134300369606927374970479331071030877683734348110100355621880316022470086764210116169638247040488803120498702004143716548082729861543685797974396136592878503259333399906438006524348297854535284126741018833087541173525524983499523856331578179398732294332579641704402770074443450810890282988768369744299841486378901515392511815848195310452909122245923507580023984799488535274481282562671941712588729134658890865193387660655670088242357001184037794737972181014537204495552101954842498694078651563716259379246359535373748359688579126494652331454329907368728432725843623800052446969917800299771551508164763827505209589496572438510571257143669170719049805504712414577521760796419583210485024085830479478970773011215145048320267063739489195435372641750545735625974104949009780463649114540770805800653403512522130854384393104792257284115008763238317710436466443370545686534151206722259525523962091440870925303740038548151201003889604218751007787611655232721748121082539983770749205451187298511055934278953798576352350529452169472244921899958651518149713805440713439594682594919220100809448228820134005028369384922267264285310197305794169294072853539562217978869287762672080074251449808025221427526327439088168042747863857237406987102425973835101483535115767003830066903730958785543145174807417510680630013008832047057345595141057966057044307865099106174758597259687130809593383124397660825786570136741718852839752138557890354806861096756023055483956843109290454088146575440638196569775178832067491035601152341744132173073667136364668188618200823707220905712005636364376820029980516916667249335475698694046939815326892197281763110965645624786901911514879797108979354545615116240288842167387396293933775877637594050404970290340828254736046981747932405037367323221994296886392271640803851804694578176799783537482210033161942002756518843788941948836770131067841371534513050661829517551917081406992773224968008001728977394736515646685906439223127286616907612663529510810029835130155241637340291365818266520781774227239721627396650068201700169211830598513092536580623117507147813883907717684977094305927610579250397585109447392670259273269913789371818466597970100533581386818298973763038550072024217362948166090535160763275999106332818329472679036733523286244815623724980691875454096720029651248310384968077724248330820300134474651579717401593791138646505747108169701565033169735169237050358508274557342402467676573255094090892823062189953950324705046645214634597940303181207128427670175669264878113707344147142663519353520727485835230254468427990288544417703561480983426171471915887184917232373171428717884214765695500317499181252022587663837944401316357672381139266350505529196541036588953041958292257207069150604138588276503242813337480845329362711182736152105407548811938033169411912369518015561894158702521826560943562783262115089610602804292344234179393642671640325740378088624251202718419415515376279816878931415628839476485063669052883941907861174377600598850609656316926323609157661477437531048907333651946491032625649562713680518927925720997195773328860124875249312807905781786778089076239375843551200438035253367046475683387456016768371147768180285246053888683623823169412898303347412810209905909165280259081133283647349621972047550353043717941542785196211590556198257537560798648226430745708518425240226380103699395361075454763114200989285852942810273034160067010911598853504085357683711873625167063546679367698101632319802362897735524454015835890252006112213488564985614054433678378828553265705750006085138970522894200885560912276906976205089416061765615819797007085865716312973833065941150071216370699549685055952726639136432622685880629808175088333184016463589208545426372003641393217890112219848847731265050774076274021041827261209667883520984792886049831690589557121961079549096772601251642250505837934667118338763006280022006645126089700231331358982831326275885926822571380937714146899662744058092644017042190207686871194494902565710568538956577158145409810105309799994230776771235993315334824799216959753843928875414954301595912690876598375249324287416314139191441543203411721824718975905355403627387844145404220731252459064245428735306679750691769658724356795866801973941051005452518763098178944634045410097132443295460749305478120765484376233187372631674165554826815704051502061055594749240684670054503659720006188769254181880240373802123270379422661929098723672798004985949036687041353925498609570882382759597587174150379380106165371588779544819897079727094526422104578890438018362873396881468259977466105836119571429102731727871739611704556907334604755537882004088405518576698127102065755864884464407706789407529695097243369626561018323224220516816697881410769252547551067481512782135447175865555309896016192299087289138141611301137203250183110262508155062989554680886584538683718831336054741243035863381659873147160522022517373702678031116534476296757077418375751144900956085546847371148618761223006552606896094697295423038359988467649777517066317425200998215432681639458817198528026514288894527405892863245020651528261538168714406196442475447575801472619332251211644633875344505617782939054883129340286372310021174246455609524513748558851734559487575231720875801117330437795036536292951702348648781028677031509179798952511319764094298903895720415480591109082264984624352394363132814525544903630283524101164466226139371436850377267682201075003124925732862888330038064045812604616097924424697927141032212525434569097480969772037641241146199728209739583914843402372545720949679418234402001214878509520409455991907871564745403348398930110030085688429099355041862341132665253267222343151189436401230586691028149398995953073104836913705796761853554703510042413399417442150701605780403523259188369405474497026199374776618977863691919461911142184767120429702033791695226617733949098328376889526673337326724895818543859155826599260340204779458403672759423022764730884354326866098919876510741007186431220909648658525878351312466853789028062435166268134645266161790643235614770072927030700153148597681745377743854894043704618997814908948054802471165336535010044790542007717044205973412535510626268525955304868566660059867072475729903978681043506578492836115935159310460175826665713019934548614714636549479387594907097521823547697141097934781395982279120968206658614842385138983522016440306055604444803931014846011370523400064161770273860056126769933119077630414281848932261593158957121679298915305842768644649292123353187016044064015850050817252000986045998971741083936995586710728552117280143502345566785927807071684272280903620979163748682535411509048317827369271510991733540744405809758819500422509384909550740548110430856206908120432229837239102559212485016516914498209078523670319570947296013970666872517118332520109056353778926020853293034464530628936602937740687966556482237860034916480125324770675644539825690616507156459057822911979486196612382387144797731616915285236772612225439477778390188425537183502496880960819026359006478494211475897875841743528360032492512892336649497961213275703841990825492261038907503039977096269011806891533887746290651296941660833282457514846470555648295935046502266654339099357194784758181451330972027615453706522416456670545820599191828228821814106079024797508204797137502232313049936664973484643475315092724554947430357074001522166923138963287255561481147506496950686685890551919881740637986397370644834560112881014877769108633466604594761244584062391960105103557934809325578688523471043456602340481662084218142390662933918404706365493676284332638385984605900457642507908324446569550294525203893026693492005086056757051392557151668148941596881749093847009651361665230012395569219026529912983631525458590602426208717548309572904194903809828806848060005837997921404881040358720342558935733798267732920311543701536036882019105342566515163972310059995029485559116374436291179418401933133197970409060336430519119023323603322940170421465068936996523890297369564260876654574752318991100538604433217339959727020630562758039571899290997407059532830335636221734800112163962927614907030868769048877701238805756157231492771680567504906503667330101532727286873542008309364047112529292709729058009337302118949635554941790349173092253213877529500757617922943617726199489554098413753330680834863667412838149759282609650267068001000463542974182021891121317650515279386337594153819911089107126497025708168077228368575856739324720763813246052986424282087428865714755989384611879978357504879682016678364996168448228834717262798560087947347680129452856130253773904895660293590575006501607520088125061112897785177458342374414688313436844458073263199347971051981847781986497124083411759238485187581415407824079105486235573854490901387057835647914285033493983284610031343402290569125240487336779545840827573299276565872425051558748776959679983610533148730734099396810308241162197710179715725631452366625571787203888344569720193266461157154888960744364628369319726977062054135663104105752733508871358554897086591205585946132305029060371387903643703945264800420833265817421684806923835329104832058253360181542275001574128877451640277197258834453840160409157071861163216816441043494875968219433984443656898325738097902671670808273284080995821551185813390050795222978455009605562067369091388078777766887514035742369641390309134287430679356503549060191312594094290286819885989643628766373947100063537550835094108459549749130723292490522319666657459419698871523907198979038355965612304129664237494911017756728463563956168601136611482834501272483074384491578428613804542891773484546913289015115952812981252338054063869878010026214639279323142784809110618269724230634028041671993646802532174732847519597188322537902274074422202041470447592556352929977806659864049976810929742889114332159048126646372876362744312109648099703128445187315251809571667779180506560906167682094421032649937031891301675193838324343431950939169868001056364570341102362791616666883510115908260417264865905085427556376585370447206143088772586444698288078656495000061094235173164210217827102333844281930311336683200422866050105337555585150215599278335635816683947072630289691427091308940167843181485906828927593242971815442957402980402333830667655351196536042419278284127084997447433906369389728238633555365483197574370068751965374900166360808225620840675845466734301303885552089390011834324977744945335038305098194553971513606050535498844813266281347695017336663076855281222443627252718220457914721678045754682345939042887263374404414885400216037122514259736802552675751005587971094457954935287545071391817340094807312342813292595918809681274469827443852836375897199595705959375635048960323006899297532324579588228578526200726662110359586415291081980456323676523838227485441524063482008293818905770830142005700631854908378451546858002030286985246518583098612333699322660066227765202842458493772419044588581741585823046538717719470297142055952533922526794127693629704605701487321779983526987816114193301029985123999733493173432543396726230763090037037945664408013480322423973233302903725780175970598313288263140845975832707180098476097556372051191417886709519507114739798147112369997080764189043596043147093462552703196727964198743823784592541624447226564468524822224240638724638540002312688441066477797077710363794534716607095842548678302646720634098589978316967367841468612910162195369812502607633478596952287788398877572650407896293964387142134916395363337038378395230833817615696530847609461120893584588601952924682012714785666140445183766745720726103781516731915919462266177967871581200290350418101005042085561669958448994903959490915227406553346937257997129315862764122225430296475664401669851719059128367714976444184678012528443297032843206068715496431322065680816196100552790187637264907442619468999485431287631111308075744730505793545480476559902606394082367018976115512281066033681036530249569261941959274294259953894254522445933551556604796691908377976800240652528678867760517912008687922830920571966351108356707588552965369036628667322255838719594982673302308147083332290471698906949469923249544402380258624674824589314899056144059497344668359192638225335677238954819447846001226549756525633510824010720104614220261403795513763460445710158025507441407699190423618118729335466205049967612448133174302068930802509055625342603196818439632268947833679391726799548164743154475292234253526784485472803630372900819960287129918312585089420598329076693778968225252400090369955581617966997434927772194183968138877596459999382038380687585409560439139758085029350139736183621666972422083260349023038152342285161205934918031010427408619863876296630619084106998141873594218222323776635421473649535379430916140511575776434105033659421570287058298937531374884854678209242128551565018677387579783629081669418569390890150400816800887059352605782882349070317607746616512495845698261014732075623920071342561702796612012183443625213163083449729616327144398154586475728486337290546300867705526522962148470236698041674282872476536800289520022294843756747504290607285273772330284224521371169522063142468612194569104333107296359409556359018338814461968795565936401011955777205778237451861454201750354920956685101959789842986298222045955806085228736830169165871171150213707559229850868238461629629323818443151399311708212071115309568915706339505176102449768241383312028131950445651724602800769832634309518883557516575054782052983839929682292934635104937785407684711224967430012750748466071078899205958163547915409793820073867029803381523495607313552749780182211450309908281732522509261701471811092021030052801299777416338457037831894269873084905436222334389268528097857926156920867686912304678512215561646971645359773181542690173832816373928685189251496775637857196820094671719176646122396491710398923087794092816266328321426270210189477515790798156812480921220590518030734397868912154772064149658244784162159887877538272102810955814852801067372621508508620388471848320399059931022119956924508566649229169883542719476670043963179236001486620737918630111114219663375492294699749301641147093395529299801033480981386432931112287407252875317566602441037868741691829802295086637399860001364673054670031735345384726361669879695914986824262069269834470149889278571867956156374760544755711931811243498919888432604205434095757430772566303544670811740005713129414501571296560813931203215390873180496971434606145430521134303932957238380048432519752662090753598471611078716348229809020629775856862510272640827408130807593738008090919338662715688911479578220861954533877184769051924342971413043622407197593451286427665765742496523216007465882392390774793557008507963226860328515810698019680395102606857179261149514382684181099648020420087368886899399657829098690007489894651877579728714486176516440124953317618054641848264566504916000097296758571143528573306747875003863640154931973714479256089623006852664709010049268939311529235504030499131989076595021325727367146013765662979364230049805626309072123674266698594346336084004920064655401034543819035035808680325840806512144087784913308681033741656789873881838945267006444761990071022670179451614380132668381063397703591668760787757557755990304220403612092551703823669441687349875203758223421838156745861609185150235791071496197074367972424364963270442236631362961183623278433032938962458904398042971237403348114023385219693606622916890825463755623706412350449804294720257369613021316305993136165257024039217926905527803156054568197093335064703072651265505783542196715541815002866868236950686357237345626768505082922857010912847616196698742650696285254168835114851623476419571475749598660639296820089785539307609596712849407629025813503704021652145165606835965215147475438057945566714106391444790659848779860110965800662824558676712100477708254321414542638481511461779874664392480376321213173162627159935046265472627788732854102519143491231064060886199001162286821104666643620336472506377984700018453698303023710936543382109467638208270582473501284311242856122298513915747290967480959085101897921550892566542826659257988408369588196264042884269462211422459161516213991368323556378953766371061907347577234395492873667746825609510479607348888056193192289810740618058936442717639222529044793766072892685671308313615063692886494992882348852901028779944583560245516046710220747419584204322534033927304703097887051582061898924533276907791869434025999331992289698862650367687531268424577880816616342495797536641163667350950132864788334763675471534105434492684105022678655743967134164857854959669252841888850991561982334702812413537166840379165628640707219146434262058522456014187139345183041351545609172414836079662488276199586642086770063306540758998978237671930590254903284904657369115782099799564136165889237462196877608962453427335386162587719868487003960695108526167049122813732809290500119253274987090422746425407252875074796666179431117089485420210442031893867342375058904068202114757884300938985808501330955239609629062054828467608323549553530802034382908167666937654501030300203898396566814286535764908710173094816293345049238353640741284276034742124312947537557372153742175334527396061415996093434556816249137972886830695521243140919365814946144757521864862405005908739058290757537314968613167065935162193133873882034388384226313670632768433473181154354778817719122174365981185898410321017235626381130364100158192344363359457860993001712965396252828333050207930566835980354699525726136426459261291245338438687492035387112606211775130656332046238091648057900428569075979669317113959722717988967039739355855058872541287645543121849065985249250671464108845648714093558911092228198535363893569982581226567376959770003495825613310274646918417113122525928449423624486021148752781865938120670332285271975282176606858706683977869017139962348934872641520696842924950107612627083714137038625315071679215083569745547719483832491089812970054737002912510732761742398110487385177570083315982543594607367068241427020180994243637630125387976079170040733297876221644678041873690844578638642236195819292997830897432471991574010055154619202307366092660285286928060769861482517262614872296878459706307816554052958513263855717689084854178712364193746405636809322736982523246362978052929266097160930076812863004299296841990921288265472233336100526884523134570332694814748449276958176041742388041906441931055942368035357881490053759073643360542260892889449669794965822169505041468975018595945302994462555740884630806202959372626070359422773349163186248375855941191222634259636221810431307157330048814456021540787235666805888652902701214587251585433150015405381125864909028944489487054053285366435910482891535211337480730187436453319349133371149449308901446115517339164134014531410840565471735140664191188689475696209908370244179283879650160795025237132931544710119459855551948247962072790255601022735628576691381824573715820078243922114277854204627634282606003769880340219655390799693428048775488018845305649870514186780885319421242016491121654504822213389484625992649447222132612451426520719654447948520486723768878487346657238566607745037297126915174152563711965020682863375221839303844641250719351945710727116119746454009648485306093917830929541101779339998873094731613124031689348620283932922720241784636015817155569501637677149252468264080027450116053048558399592911526749780872891656838093627884835881174223139781593754865193993525953972229582970851197622596206375273192861857194546079721381444303392651701728792470015379246298523321800542910169418174100900839910944568190284025935835617289635291753169374656765069488671230943164823133060931070098887590040221878696657146821612333862558782523524486009581324555113806997709050192018488926630645271444632415468306753551485237883058483346311355592360841955887837339966898217049924328698536393892268966825959944369295186030773447310738964634500056134919888250615869021688428190468493063594589330835688658942676643644394941205231960415600883529769553698766399176931261998403646056383114519730772002984897605086258916387094805975301921289415015551874220723668677707298250918235280059857090664075314031815598610225540547299911499354371755418686377804400773480682309507053914131689693523449741274110563932830567850430210726837735358155619049190444760322977956840161092973113241094462815820010539639900773880760623314478112587815938119715419796446745162370611185389227499048868303913260030312870299147574005632609373363043925764085657543283248175278882584135357936027993636305870087316195359987436630812710091702749731598822341982217348264984925536738077451501903028225092712214824433674179481870217281988357612441592494776034104345047885939438032628059075415450984442857269431478448985598102059725845332280797019906427069995915829792843382914740993441936988875174284519311405983881458250046750913057101478806119179315159621345191444594905206990381356476228878531172265133713448855748955036760575005823919359631262047646534806801934117924149606598184479005644564572392639477620993098473445821558255491674182207127351485053265254605871083614200987127040483376394608450459091407023244184922791858793485248752941874315797407948073654450608802358009730069415769534368198587752099663555457922092728809713325102332594427723510560129158480515459107111493402106869362146981237891412192231968667097327782486854997871798465704938561168356174772462066835071137883296263387897969289356697238134339766046198819647799724332487668591493397700025317428404290981481725835927967769440583820404263463462807447098425481372257033602478531981496229576367185601367860844217367300750015358637039493967816041739048704068282250062110945133114194828417965113238288581595946991719173364789077636527312235280526734158906685503173834195060999417057735288889036054674353780894781634960729184948711739273141483930131317626750977199089880797366953312079435456309787765846870104823852696208428087571694636634029007800628762846155189093880717246205492981030712447496405420877231496378780925370579143950756340369114065089932491011685544756265308550379505812314731183194073865268000684555205826554627799746569877162555536642027630433421397121775068026049576920224613831648840877682091127403361081910414936814016161573440942523901625538908990403864665212977868963162495068976716007106111999424949320376291730732080246910777809136396440423003049879939968838707412133895981970683731420002411633589378456072455833425259711681746870531210363311177122987271414982680608363183515395734134246283932415855233480890670669471608162773717159158894604287081791883538024030703410385499552656755721747661006324237836919894824609280273306357637838969637274573895735782291426121175009892816443675025269436697265007007947107912155966712707984753607927002302381542191287376254603779925788866389856401195552972600102021729225191794563810065611785684198745958099731823119909498642063526659601982281692158927821692953545166113690353363397746362277496036072061663096742564995051685798176223860145364569129569778703066107038850817903691586849747598966105757889848800476825978105618604719772700243536592431143438272365274956324345357201547303687592294903059041620709672927253946078382733744784004129749154197904960500331301814720218681171942537533759328115873683167373142412041751665693167764680278637720090060311880252335524633030967068730579685023317115188223733114807801570572188296977835263927213786881772658858732757034797906075430698700294178061285602318078952056699058038615915273361583287726484468268672692366990182614066265625564616925658479775136971817151352400848130937291845353835986942902069087439632008834943690658563312627478761848558446397203247911354232329249446667504815570471177029650244363333346451711761087299678400610610280551448250140299728810484481297919078601179915980896485080985063520523627345476282610484837219389017122243798904738270441605397757484176344617365197229705393926267788988038589921744447956273614568617020031314018166464866812605333945150219261216480508053477105325135921568926721353112055948348822581528121326269363511933727955381395049825056349586637800709359600116189055669997717210880094643383537885855475163719728046622800769911926967800581961030269186599964273391090281264622502117907996583267575997121719091380977773121082886801820889656764849251251563671370820456573427367082935023347356048403194913019389376803772596713636570657221693280616814686118723951314771855521398393940820173942204105854508211346694833376605977308867249860630067037422712818673198629832368824267338709556872170983657202103499107101928926181137658382669874577862076726992499661584785499433829660132722446928896996242337042360062597200931041203614921657928198983710018506436687026044362890011126262543281971995047991425509857307512070368958491727172981378555912348625016126010137015669301217809128049011489362391000737219217890803197270983385145967793486762696602256889753932099547622142696492738656754957324497196277043709832738617199935197069009826598526223963447513329987031937862460480470905273904179411274817518469300445281632661233094630047158463526048571565002819205737516356972231291824552017244082583864226380387015605581045116554981488574455663740346791225634609462740452762532850372959717414446117691827880561999719016140201485675252282450347414672363842792843960721561301865637326988525452465295920255394239872352884717742381669357598845109772420159274640457632844868878193153528387350168960161027500049695021768049013515763048080544959572302736279396563469012976586199652188526799884264600318688937200353581865705952314413162928026110230706715833815897561183727383476772967247616687921697061297504493279089147706095956365342688082704955336634670587308269034367685452657521904160040398890776495293910816915261924215410898276407714930404790332844836207528465810205853652671942755260584077311335707425338460854671496749832956385139605992747029324735388487410200543673901408655956696547952417849086826326486224091767627615810635837133842693780358918513536265583475180001427408626657158522551642186317776157630991897999078405451812831040281668902141612919140366524318560453130300734071035798508135658918657796075453874887954580725809490723517969739859453538419282653621911474531789607784128788324866087938269851869085064661133424039047715308549494982337413132044499118358578382431761836775322470596071345837858714369069726894650660637026559708007068248624770934647153875708908614050809481780043188074141043438443492176665120912854034510822581768317305779321643290880493223011837369946113223139178349468580280309554234413520205143648274431709211630179601197719405452118003982076901218330323739514830165856583835488292686238408294425499719442996096568217622250678787062497136140889947505304228719907730583370176870543240759100036682967475727733763965828251153516231399084682261413821457015892146315245486956210480007338842506391010753489164303045109451306871462739912700613379275703445256016913993176793821186409242249821161366054090855990967086580665405375491531424918132440291999564112645390502215603781304825747836895056956494330237449952272349703618915598430275060047273964603348666167330464566096614556080622142608312666938138515857830441477685108943953765331171856093182955924513670658568045651950793535766391355079800101243363797001190923546671996300486729405413098070713638178775603362432140868356830696367207262552712585802338913919145740568149802487230119245437507152458666320488228625358221171456640853596275967524794095014532168558220314685855670678563801531145018592646148310350105191092735647345739943816686841706313766747119071865101608867873698542766522619712836940250669937651807200891042661702354057218435202784511907558079312438020943621803544256627960637772371798247364458972880126301616037078409220041893868899822194404814223479466570093217752221573121883189900690951098075375278102956171980026533185137247923227164476434217379187792549798396143523794940213634605832050494450229438913607373631986242722313544476828512493905366786217841580578197748843583599547667369212980780709427289140125178339651887957211228687183303970645005754444007764819419887635348575573010769803090085515082393262237291895392803201197768196877313252715590778332398014958098632041441752222935100727805576061276480312473744120471259306201185478047515255825025403467491358974167909660222943008956022354978549897237368942731224648364481794405007269644841028809871382577412617852089652983695723102313877332160763375127712326232787079720807895252487646249576490839368497092740129716483022391756945444224689325869772440560436462037841796076968270555827605026986172262295884901192813347109201702367757091700968297732111089133334921214891875953443733480643847836905297458745061462566399718420185904170561602706901388288915763934281079687560597018904519944335702642984999153723645731916296059526588477947828027901534773283532253589040346707286736406158395266170348941075964301338593014690314829561332940078075865574443661805588226018577354991624701935156363996785635852098011722267343344352120671878539443688395589615046079361160899475393683762925224193570075516401154563968436354865342536284312786360928179138735845111598450345427836339625155744033117859909225146065139833220468295605838803313521000321563806570800821081066040297350444042947242102209945303403970216108451230949018454355227285204031581359552523047919120362257149701278293656252685244053735501234033995624568802756353024405602636816712673442617365021329969316448548203215105563774354238952622862526443952832019998832920964719437851515930551367579687335633407911064259845586370621067911514478546685843650572568198847994702295916056114063429426192002221092641602232995065182961903315566872399650091137979309234883065979179018263222658960916786637522232566609120851463875292848239958566981941700463966929260331091621418034476770174510713291603268527745504516422007220921830699132982350224970697907316735850072351038391294177642495279502286900737423291097700736069403507519671804796577169314306860824608990783440299086384044463679134284030324057391424364194798828764207377858865394840926584137248330548835668430291161797505576618276680463971104239414370593895612249681119388526574862552021499272148011505677105880690576210891299346616219881382372728556452605030517509960911562024728733683723292711376478610079918254666990790018361773637470730099496803212017474791534331218865322641761839071073087601501609340157751108226113664540260312845098403918786548860070403306862449249866646759086371868387875983461375070358676534622877767434683208191899736024596178217060556189784459423354823737361060197682986434445207634976125662689709059356980142183266754543777407811986204609624009363895361390470054219788426117974062682971989770912905198422214501348843554299700049798956364796274460313486454413031417364885420683983572514040868320385859932106038077767456204994222995283331258940553349500053462136909700717135252543098063093881511615607460246223981106703942285472387682031332121321893428978021257351184162655898960249705689104355028493171562268769134662402140344268585563410036772862697337471963809712385889506302094781653486686515353651847968578982329047185508970186076859186232854520404751956175392712127756236590982211836458147073814812071426438065022004492471490250825135303889484009076890085887085570350697108762051741283273547647794254132513925822906966918919961874578494448890519584089727033273960958873055104925257245174475918612791609190365961090062165513952356853709945690689893693692774327975036032240168708298339041292384249726536224866689304173020514140661328620775997756540580844941027800524394270315244326496070731639287594258594309361796857656614145647790179600276993949713813469133331628811732169679102602549542117249500724911251462439821393454535827756109396449837109049400849912756313023046728714053801697610477035447381278086537857567699675407974888407398795400627558630833923520430691305648001035345678881932800422814034653844091449179421192549083668983431217931282281827732231602188321380819743250659010414829932537608004214054129349302402896634671304141539557061355060984643529284417513184931355224914362365178394008640579146293328792616152345758367687652582166080205417002589618400309880248742370376244444267717362134883528578508250820422710451573000642025592656425368459033418646790850927829796851161158364303714994769055597166965695865119842148181627498234253937037616363208663333791652972149897703960045185867785793163012620258553285144776864311099851808855926930539361314597555756278900607646730835446434615110876461568810955691569813937800799504943248208254670840491354392397080306697352354376239604157903833840744441431171766496662002411786385344236488099141445078021419438166630370923898691094666271216463787644560811853579303107956201913533063399531381503865072712440751242241963825531816565906890428801290836135300986301080577178059812768761342017559048900726224920762001536568321154722794718095575447407921875803833623514124208397423463153977267940427964550963203809119881959877441147138302766796520912398396276340895006790816514162798199528744763375004644072808428448385230907665140501188614756429093575327868509271263271662575254699238404096448266263547131579149919396625367531414853803705555948669636587774875400416025061528780851600837746586570935360394588982889046856707466820555721824589340838391435877895125985403238768047178703325162705823205863364848753272672085623284191056464452919898721288581764982525458782450524017210523102999854997778850336352946327555286852902692220818766218290637749083433713574923570572299018148300407087088681542817006902353278229210911020784436803638176223759816871827387714120559104344698843299618833396891764411337236843905308118808664858321394841237919524739760001830890123566462949686516353743904292337780658292735927486607382251254625224420281254169947736012109021768292110512235498942828986618302845607556344865457784036082680013521008789259407171443554232225094492350888368437254923498250154507319504824998172015793303787928141843182040572822976797443081694543598717967729376618044433720864244086364416774158342974067878333227864245080435186749820226577860742302640918494484157608666098576330750693089628004337965917432037623032680827594668350083805666627844215039120586852664432970467545869540995061471306988801989183272587212816812156048169028870317110766430301787388496383560600236980258390504096518867516877894062036315738117736534369938142462932633573459448359811349747621421624617412587195036014125502522287872890781317387923538141662481382677306912560919641661000589519496975136237090395080091094802407347259178930010960428094931949118747941683663562782753378937490007723600542899762643922840971917448121196497181869930260098801800232844897170456316524046074900043173478759523769122762200183299426041389136862721063618472931810237851459826422602501503408035554484265975711734767765881826647348407091544206707688914441410727876150990735438440936738202276165602430543749802842834511143195182876834648375847595270383826622130083716661520833360129417489828097078992349933598475807542651107288250106516369027768447588455461522092682500914849522686771015729874499283854892546326496193523479482402881799355633102208288251754928885511893303929222237542183045223059783966111366071755856453824613082757111112986379633069481470377151943509905290602348437650642894075307164089975276106231646234053576644929659138478211038346691108948726783270209762583643208718660138320310809402384679310185902996052978253808007844301875699533417384456890975330744904548562132428478707543570877638282154720582863409132207578662461524445634070220396937381669242261885440620783073301484224942431573696434324840996684567142656559561847235538552653658710487287244176594419038554458385229850365279824837653287567324491067446355801412504318236420695367034730189935999146936666049720965772425600738525966839493390019899036766188650259086601018597026173674974544066608783717352236126880885313119447343617207014784787456131722581555955648134766955011326228424053660558307056442099487046737412583686108897035125607669763381880570496101767929423314683760053533918668076681375687784817199731097984008677572189099126835199294305472832673685413977508770093551585787817957085497756949445663407234254235699374307151333083214742496642605278752174746533015836201694958844795363363624639607102350790392372176619524743715927377708004712509512126005039980411379258065705562925028852384816985175544945796871258947671689211567322193151097805473556252455568173861086731238125786664463193428314500996453876538521953815271558328419265581264276833177121460886310071026010495283513976339289804157252728043516093145986513726615780567073933690425245482626981796918871302670075735521361024802338741150588198309395462627242616392873352480392441172823227301900288129831396252304327313264294952894012255316779932419390909810463035781950787553878950221967927457542468545290525076586302096305171143420198624794702191934606052350334049044476520562025249128999555702625563959289586922767384738976276567484503974784526161087798207190787829922555532356328226915039893312989251802749811443769514930048178881904418731579633901328783969785931153277486663787288617077956305823336070074295815144946582354527604089173424746131810674596668695694917693458118417473753559267945529185987679193456602447691519345719315349528275193104687728675115288397346727618158621782343751753674487241024307363842572927256707234767551571535362799143190752036166131018047828690332635097244306042069007328249635203529245146860234528984495819368555626381199876781945456309124263097091141256727541210331675809352019701713464461567562830245270431712940282814128173155156970449283015517390280711565337122318766826127674114283627420467960446431741013691769810981840848252937444098929575416263791339107864246389092998647318332033906163099957882718499711992195008025014753146766751337424511560849195142951903297746442874424836182393335421820133049546113784128251040918008780460842642863999254803147302328231720795150899175869969182626796641734090708728621977662811936652755305197919540156967999272992987204456001023998434787075334181008920129794388433601727704001266871255955889327119789293992945623285425237679806118433673203882425999307742867497941863671219283169411590790523482436187930560323807695449213681571143736887563034215413973924772376028173496705474789593986279181276104738716468324238089646141627173594772235313740511111650844858228549781001089769523708050233604622800860462798627418614547845264543805579767963407544202219923845605567653427748497979386760866726304672861452363222146915412054070527791552768367510500512891781649911450228289107221127744437465660810173039961387031625344216064532880576241075588034725567052287338710071597447153842542945720184471437789375181077382551678048386498833691654733537920583659991674482482765385577312017332104510579778498479087498975408869861400794352653817714451944784274995072871798583185162345741403560644419156656337921489601722322394144469219765527679539118874142508879220109410953902137774882182373112260691095065632830352393787010720286524038227669756276286950910522574649349763869026264982125176200118089725126895313106432456502545206464193136746456506769370419917472298374247196303430158623300782924813998379426511179678026295800299180754454955550065652079410368745876760686288779951590855182603737141538700605696379203440665973036321679558664813863519018968607558971921486274591690542049798105700220959147463250343608228972517063041174277759126076902450917053247330305019979218984911726193085488388886724361191952322316523640965688006643762622198192707796982634550051241587823338229707432472319498708241584654530840335992406447275520635472882006081708656423798680639963147845018760085207981133782695236278787612007456733387553846952434699510558720372105806081681103649343704450788548084583044813624261511133123874123958540159777467434686028323120698835284751715965975644242671893036139709056485787953987539330870158465461359577441565729971986434788434703564200744013147847744633623233820310358323541139684215496316516480160723402744923977403821973888172676873472802623528179099418560546100261995997805236408579555270993062190524219671343374453734062383309421636916209837180675298518072200104195857394435221848225448166135797163815950112967110918702727793712209196108884941633058202917313479451081432346741063230369315913971499140349520828442972469196116984925928956564690641658334102316941513886787499218664586327160171684814265890223914308140074388266477488254783564340347919789773724471671319457262567284266350296753475865995042521772863284217403378315899145782820764330368749249714134631745867137726628160173141531742821238130308087559444549040364184202902768840458804529362798230095433652321958700056219805734681071318241022155597347320506084924764820185919470632881074964392483687030090094256175095201482250804741227682420519669564804105733572569741670563568058665379514900868929601636250052744010027275766878267764020761284115928806732192325383769368506492899578522168724997595678219171763457586001800603112002783240795952856728361036755745210946536158150537679406970043039727346940352556245387414194718307193095481359749057779923033465359198546608375414120059683180067040032885409911371154968799876646950200551431224192178672109380240487974837515679213630282143576426272629936362146300831547421455366294798728278786623386461975143353802222789228903307770485825559569590488461849604216889708729150501786681438620282761909863012972650721347993123712434439268890843565955771612555083428745196743846799261690244646423295431081266824317227183013285509491372976838068376305799482669251461552162338999299864901779969505372959896321530840154424622860535709626018055956634178942980907101624752638822954913728806009767007754772984057099045591905706693415189145813204160349581874539603197380093700560264753842901587844056711054338369733892167494300641168321644806779325648899154911539907351199962556691583972647276881484865522105053559176081893475484830247224261699569901746494189416836155783932035592194902310406772103285720762378463140656715896334521496614583326368265288207677386257617579635505983154050794312889667643355468170052734543007218569047463954801323304482813784052291875740867249540413714572676948048671105542938233646933697006029623512518702492995785226984858741541529996665327674527474906888417919760274012308819811643505703080006220168864513483451452513518954385545491063516451996293986022498989809125243303373426272463872792508697050168003440752633890223530611503267069946734686037565305179296171490725692995419699931852026093116174732230739563319639723188111345111369492945130663478109218360590736818202848284375057345735818505942247233202944687179418096062383313185203433034452849745908679596796053996191534354277099817302006557921067544590295336637534038986486914315144750010428414678857127838204251133178127961543088875925977642587354987426197820814869375384153688057065061097540627674256931477929989060329514914921067344589461636433944954149537897008974334384512596110095362200075621638175423893266582676387496200497547098527425274170037906477033171536500126238669867753746433947468017231751583273667278350876761205845961620840577604916704043294580189124351070204587637812171339336969455169711547829806078795871274663751846702255785908097693214255419312747050497378903732466187025587960855456683373703032157072402129312989168366565332712085538659807851557332634623509779244737069427086862606947666382392983665671581916556764483277032158826363716672415707986199540168980846817182179864717647024449813001047975885808513125481654536701490209417356164417049368542607219816990960358558187556700580851572123439702864577985901679180953707353406073114404227624014720836004875094576885682023981839940994294838388278929755000901216688642608995151892623528156624849651335913547770435715961107125073755068573042790626178061756174881343381682531665552690508470576950591353867564017077053121090016477046454762832390838810225107940346406879976466590337462534901610476704356116527728950493137802276429273368613052211322759398968182496443823942725125353413104745351284717772488392000730758481897813596833449438525350033019567938674412112935489669581900864857853289463870508555191920087495879690464129249446360437107529303900050302715546031933885160285389983235381627372341334875182275013687732869942823955866532042739312887877317455455599622698422655101929243164322346534810395072006434744631068730719470196730357740647924846251299839744751925119439145009789747902412953728558026736173920947947533933659122132228426811718494822694382529089075193688662730656105912014715166649442108604658261041612385984854729077244149836039387886226619864634597246442933231979739326986138957717001983058794289592358043001574559786253455766044686361615128583169648827144870360257495830448524918807522635891588095201045937163542272881522055417426766261194442262532849173881829068945018165807358105805341382878512356328532580300772327991411636868319328619420558225393949638152031402713753207368093952080848397967563703240636120843085897563894503537958271154127581603096648375250912819440953823160988754026144820528579403960927208104425453014028616882476457946697358730203175333047094887029401830338590465122718090105873325214991646737217705274807125335578751446087646901300779127112017366308910176288736325155287590069438982153996504085292341476519651109365886455446417418565946369652592261995390754525525160028728290399849048549741404909178816824074520273061522230863055902077039049302872970755222041739112397658882180755355827216736754774994341928923628638113007956830497030377150521654583538755036260475024760456471261845106977126564162207040638010766738694693455695266824421012151094900851805397014115804302413584646523809281535473271345459425601638797495578029093892765899965269645346865327048619744789536297251776602335802925573647678846916030178755168744023235479874221698442802919509675528749586218413949027056838468498210753571105181864941689544037810333949229249899730732785009776478987321002845965525128451776853038644774095659279324403542124020694851698295322948056514568103136691145734621899769223887210204547392452528221049490708493318719816510833120383190563411978890645945580677788748453806819977719459525257211279394715465717125685950184657794554614853787843415656285167829504758311956642494137602947490112955095406679119590574709065758347271804046811854423039287480764470272684442270620777303210499529677167086266872473683654879674477656352681832797898851038659544948831602385841107122079423215701229424896170609841461896091591975434828533599911913392139534472205353483984088159166151466651599517996027626366049345108540161739246524969645073939920929780013308112118502569872444486989414998201415881023114682394593410986397558720524400020446207104854872635511741164764670505868189826100655456642971321989294379421055983325805477199387041212900737645589834726961415620498291499332946336382515511322974574996213548831425720238280055929307630936235772302488991614982379886665459118181701524107008521929974954617744416010729130711761729658664370142854691868034364813836496479414962963747435985944871212687185116104221158243205537261848305349236380450481262851277456585760925437402815758684756283696120308242130817606531210989684888763342519100310446446230877688052695084260523060015655354314523879670640686010672976262270359429664064247836610407802915345807270309108684210810912548640119858002884713204745120888294123486624856699282048628897339870228245173531573228342240783121263724021254995132272015024788397911926518431521611049074068089142355129831453280829128190440202687617778526089825329636599298498131272374601284040967309310332216077005073096370389585830783293910017989676671824825078104258166196911522954304320345702582547212385895315366096414501090398103645726836576636489621886292802967013844063188378871594045241720142368028224514009148263550826869683887807462318122723227337809188487422570274172036279070478721177589335691702858330878126005703695503440196731723819052284298688598081495207139806418896688733854301003986645887237294304289995436069548214475900540091691340843426345699390488632347386067241508472336294961189635758636146855045813966196560264794816798642837595587051219802628872489101280466201804524848757114083407960671171781359263490100644472414436134995227010945338541692009704476760554461606599572257424345517525186503986375576706107987470385005531437973712929965056844314862843736531387438618169558677320985163400097161123061305785441199492304842437975639777915830243326816982441529463706337631730513504883168800675465733605848702991097766161961230967062941708613458343815924419391621000649102922240346315117925213637233203428013420086964305858555880068795232163643784604434504129610476548058244409529828175944526678582011516464312300577035581398015609887591168696954767404219956042827409397886523855901924565948265866419541287956772234458512531070246847525126654497417039282991761024234489112084257504507901209884919974560168214084525808696612366059387501664386044838286057951635195241696719984478173566669262518699510669384176211894373803939598081824430316133828737042625553929658406240134659040536695779931414023770703615078361486960487845992517536627764452016366099528145654554031739529863379728936656950352589781365300630467335174903972128001705011284904601344852443347109657277305780630334057647341694219531327968872784404729075488677546685669773423206875266080724642992901006005528359065502378029523063490266659540941777020519823121238145041197831958894584107222114775469456599833591768556210977996016841077197153801284531913052728607807152637655740922058320943920304905882235354913307286139677671330936769906134386743358685677638505860626196818637068725007905411913825135052664831858605822478403119234832191367313489700025842088026825312159867281341150373647244663611260900578983215635253104209677476076406775132525803260291020871185494997007508694546590365505403501608856780952707522844791194894643813158231494198473237528905577075009299894467649935972258933508301403851147772540673663070793509300988217138966635971528628468870207584329026648183523302311979944187333024563989675788745108985368660549670330447227092076850683439416185596785859335387108721176278937372976869513256157199189408490791281388001846728007857231089775799562719022792537185594438141001098900308310749809029304194914181214908667294197813909168887583774635425935187531255316770104885869546963998135587319470648703067447910491446205537770812350712621324158527696061866112932699801662368156397366448820914786063972476802267886204120872023543883156018833331838084433066475678301176527820855564486222892169446050429876849283117420614560476632196832579186739415164416759161732794468984508484715184670715323194993847727465016911009541419857248342281805306567891025643809989360454052787004121094511600811052177859923350501386980075225560561264953976964250871501664128300086436357131756196839941638648572846272728262556893369363175687030739875786549331142507551005752002062972881867965278902066404668200273574668139307478156535187689141020539763236677516175903798889192987911272788706873473346287797892937499804812529008193958303881221979103244580494830770831983132424218387375114687174089193901841700404948233595277734771781190551265527744655305920666156582046258304880555213834075542727160505846167094400441078106251335698651613010552856796842310286444387609414923625577141074483048495143634798687842496777249704870661329792023444672560725471696368230887427798696888899764534345384126287671792894596008946012974377966539207583691884610797859181697710575174467305106905186221948042243885893336067288827543487713472941451230486171913736907565818677204121425187477982481387719643939327574674672187168966585738282073191743814403617951220518915605731712568957365771116363654531824589500133716343602750446248938066343770633989173019814910048655689378646584827563627295693269887327915538516218174315484213112017590525236577201929233957228896472741450897447104452046014308907052243343516999446813184307660986810090295704301744465040750903671759541607653077049070342276010159568916130613930498320942266773569710937287374844179032697707555400934433256011696254033766943243462623827660594836383538548763288086589258021300189336990769108118886313467188858205553934702582835158747108039298304572589055144312058620407833867861594507876595870996642729397337305249212405179652688839084612409359200964328373021597319695845199404280630131837599564705537346156500167106270440411359958332776526957122566619541368600613061205985478099675461139564946899395073853080604629031136917539216663598702695765627485237461693960153332655625827625460029121495058421865788626283100292594418770256270918844974569886797358555601757336570080333433986653291837650418555186626590649648030944439168839446502057161202105605720584953935452487077639790034742760049373174551806374913529659586722624916683644896905094870375785674202945205310841924638622069777494749800362638088470043539807310200109401020694778453173733589808284489282040740958535161639201756091566961584501077404415530592517907337625150509665345102521652407364016004851278229017726229204044007623544575636584340073649960356865557295486129315752492443012402046637106594786222015338714264498617212885691976831997634897815837926245284141011327477177450277094403807845415952021116236058710326844661381705999725313998508747746469933846449679471145750888193921882321141636273892532384995097319923812341488709158737621557697655484859552319113520239425584536238096715450405595834926209134300650755781664913918401165682840340072661797233938708023745865465409717865147287815647563571484449165367968026829646983897254985980910637115073743276839222213735014805763593800817291480433230445472679045099153159782439429265490824537907452280246157517141626574987154273472694541921308426952443461522162280318733056854203755109018123850619608093265188245602602402735479792376345695222880253968617715617132627046258757492741133110390847401774805484534012772009620772289753492291318223596906360032443244007266619837433049798477141937337751123437777793087990731040305430779068401908509527511913055111824619637688393575612335680741468471558974699741389103148469709511254768748678999380850518398239992878469941785882325352658964442385385023550751642110362519914826944052273171198146254701506872546426983371950041752222516041321536270313658643821203137488085476877017298046009525899433833706756878022214145503622738598857581164240256504109836376183193697962306230411851348987273982826577664349417764542756669350734964778027201277600875858565255406313352866334799420346341801496099289594926701993877154537284879735092720779569973768149306170739440921809760565418414984014249948209407395392577895740890244052863201359683235806516471613747164217881687711810693791719200544080192836427889676953525421143082963631303980006596917785258757699293990201945273776875619059836937176113220211121998783169839232430125911266216238877800904775844489423936661484110402079872054347647440068749855221536096493649581771150633177133000426026106978091019324806201368663892484834526713115126655428853182433791672495445486013376763610976574609063322528823996262082442164279132011016872806433682656148409933418739328148196534703942460531200537001439048428680988485330924601057422943571454589597795418404444181231842609538515526535154083045344051308409400378495988151451378341885758382897921348401926590437161562472887838060234616525742253049939649398635924886109086725926451996610753976285861669621664490092538098690930668242904494873878042435587411238549409170121376961685353115910244427455070111569264010240181663727662413074051402544562092414820209694125096284108931604416369744988372916881361670522715124657062344658750703085731909659746199494756013138541643680051987979823804222896868246017637678985674204113357850403658637632576277903805294344028604881979105057581950390254414110482087178139066606818207003892917534966596334472530961633112218944214340487279329901714086813448740368139189623693193522512504772865463253775214849850293661207821236568237637517058554856471633794495631958612688461824922366201255417239869953555536691968026050973526354409305969351037084403505174400228049272956010640680674903804263828923200152739987405900106473709661115043870228450801969115987998829363605672197012490073726624547947563372544617657588926469973627204422651468246312427164801155361600374420097922168269390963543274729607401248772168103065207170672474345017128727615511079235897006422806669708958927877014935408125484764087920441961513069655456886482410092989513020937050366068887287344908304080785148442386866943594652625758626918425430571799016576949904409788271684240708777724158335879376022506420638397261952847058338721759116392637485386118862581265349475339747444287465219561835279976314640838531341089944928241834290996196361057803195237652070704131667726590533532128883539910434323933488093271368348526787898183114378382753106783923112841612001592055772141826547668818133915379969922743466141219893495529157405279663407867269339528552097848638841361282610647791534435873684134594716194050154947653297139098387374243524780293490986966381361110069934693163760937189259960558699208239434031450208100113605116699019266378253712275119320930545064402572004367115319680267282039851507380976385589543953523353821732345130660158746277178320216152841126535806020151080856525309791392000065839872782175756925294643239835353016686701261041409062597374634694862534391593474164592835677735436948978262477241811976877262756899864210516052669848922532073597269992271850052806378053740961994297321988734480105794568905937738126005792406729546438629610490101251857654168975510767446019634301207847577764830158257935096075924747256473821011173568198384943714479934765496327248919539574880152317080545359452206403105958630605660424010003840528682120360474614121460421877338285694929174993245176129288027842492478657938982661005196854449846855486631060815716163349573612289719434068203190942701572865248801691402438352901458883557881553735222671466471442523808968519791924136717083386127539779765666181565517999767801733614995487509909267343144593514647818005314411871982989807690487699818283295129581724047624365012619804380720062418356094379277942670230143206907194035122832677650653880706512061662628870177757703055497803137547972102512667029662118953411725251394804475351845537871583078495904256511292980139104371291883720934138079895978543781749713343438758184542892467039688630438316507555547940654073730757327687462194089609523908805415435618296444378373632769813041577675131684391507315884346421279028370030003013114381301545640515855522466864756191104196705967538237361323603136096499793149031494755662062904787318991541268719506397736303542981417587111804737223732957434017425420643641053137177885885988255256502224069126009500263649522154115899661992164579882716064935207832360879736034554131640288867364812501834267881109107006643509918971356095713247991073640465199196681046781395050209940831012669589940854820648133167512084433729670340581293545849055730841979882876308934241688374215873640858299968712943855655704953756141677956987917434646729586512667302060901288233556515549020806475836183528919836709232366399216617129160946109686089717882319306429921834587186250481241489331560752549123434443726608070324563258809496214887512376461886608822579988398550802260567386462396796021868647819720460391426703967234208117611098232727670147437735650696628326175570004454788825080896885574987447256410218732278010250911262505089646474210666740600284272838148929185197528359016019364290537940532734486126906586008931681562945018879389907501975360992569656885952429605052329897231126998264153428339299783055203945875644756385655831161613666129569597872813249889341822352869163463766130340266320268246287686135339912276851035241788574052047982775739472259056667835406648423264704243739655037031849092228180003462358475669581754939395991290034100855247727757782282723378296739466046180622856700443712880129433822513253884726977610681720680022290252542021222591789386112959532662976296564318173845677402835113216426892573728096763099013507871759599475923062588282403723824149862075957804318226776733301534542115832879185363710409688485045473696451588710107463356060485207366581347255786131002814145106076831920396449357034897352211993211834480031483420517961778529761839334353738316996066171714540706784194291025539445032274468322501005004217726057968515464993203717985532872286723043395013293975925285658441966449662298819350249206326290612377325059406658779396223821184258319099111831438606839757775235459538132788434879815147832762103317651601370487070032576552933197639397606810325205878925142017411466066517169077577409476105327962392031234677685454679910064592789914856732101369989594246653195115550455489726009981499882313063080192222385406102613956501325057461606243653545481591834339330033016866454396519176808505760272048558245110697989333983169306428307326115947672974054244066843312658320066935487636187811737517637783344070378968758964185535180120911711510647468474463167777303579775055664233572383117452425153570657606799154527950027598022139328836989202542268353680618475745921529065804581276201940354376354681497498096735933529973026623640895217854326329091596454638981969211454543452276571702517689372504377012777185945038813127294196866424228578682575192906766956212877975897852087313993789575760581793588653209204372676307274820127598014865969628904247003390141901145432153136365075686390443789619537018277896412910973724119367285913372729136060348938145875304170725417993800856007872570507803904874143697065338374310817887245953643883381664932663951240426676110934942343838303549126663472013195564819826324305331419430707522768641333741779636464748697495898558789872822400346232894192527135657636683789125153010343939565219526670468317573831701007184701472584554250210551896527271890000977402198418258339899241384615252249787016617484297817622355268601974012572131154701497329793176323528025851790997527294317202270283011989486006023265612192062282703766000563067421971910160106872569200085963884440709247894749930912388846333700335248945360013604507505988282142217391050722458123219253802754777473212225623338839060227638785030273802626179510223746207399030700768500879619519208400025055028917899412285330327583916498413526271425018214339592600354395701766383563357147577608424667406403195054294155095437237516347047624878065308276724113330495389136864702812473192731214005540145973418930725867834822485383641624222159756683920923078912815694132551394437258651765949495372057803236381985329934931528077324094546387028307003858692781620410392698481497801857177293661274512581293712676296882551820812117649736715217438853619147401944354524872778055987520382746098610054717756856942794589725701639937526370705331280708418273311928139014444385864364166075612226427888533085371175606178476472218710428968055573310129183652496626857353505735525876680827650686560647388834482935269445262924305201673842569411553419266241889456874421571186753877083964861603463042100469603324111452049579403535283690608521070554335752638281132008263393518325024710518478992956061169749070674938622584070618448247457509626760566267226642197069251753775443179750300659408833304350963533296119129572997725740415149526508811852238837192021517475692244538692726179899258875623718798580356627105685589902165081202676425272572375704009024227585699638798741982964131792689362520217964490276892295512958417424791105737151506299065571846104172846028884844840096003020420323214284231037024898721165608115856265630490449798191417529124818691888645929489003545992594057223634674090300216801680849287051338192708020349959272748317378711363629700831530082314071143613203375886676738698767833046824683518605647164090541046300165837428044580370714240910381503716433115246020817698725120228114153090199030891239111930053043124947598934835910128909976263705598139547791901336633380109211374247560840655377804480349775326840694552476711158509108414946047347197131896032652127476978722553651895461836035537360591311678354718610869173285384689297543922372011673183059913888103356934072391620590089338693977915089103020816438445578615187739693171445122210656139477042564450568557594713401585576054398569527096844344246508055117845868777498277533722114591861645588335169161053866385145046252848489575177981298087360136924271091620650179475290914661011013944424806994605258531636699805487006278994961292721143360609735491321934020919415909559602188847504538672773587236885141009905534899323659405217001671233793390417262615104081351766894525968500253006349158840903197165117606011896367304224749286343919842694957453020386770962138830414798971944218695385603757142414279135972228851050472848227332828839824751999833982173531243006079852019487470246456550395753693656176185742548552733197702270113817278918013368139097084143209592595339340781342822694236306267624820044553056903561654184801038918450383314852546291986825770204658850356391984445091097923388677605119483479164646235239950557246260756981435424131322728482419332772475180740200314977757450959835118345004672864788935270590716104375888137783305991440573357292625822048490745353928859647353933237960012520500369681461849961221262246023540862867999187452266466594965106004556626634264305792194661585917809403133715253482421414295134537576813746756701967978020681701003473500351811999058979115662808527668413860682709682842927404864133700192218542295767263802954298701512172357152266947051974506755198060177195320892696153474363609962185205638474430794184906309964344348227352459804114095548582548619146787745189331059053651870077859838687070642396119346447650503000798415016974226106401661608138234375049271812813064847619804034551542837881740847930883256758117668961728758601571605185146503457353177360683455450456865203309237206877055542119680925784461305708124209958542371042964479684660343086653011859169766215974490636281125076403839276795876184823736996641141191354784329980550603722258970884309421414217864016632831987795911823869691434758817630788953915702292098782951213583120891143829698402416150457111134068657091912551428186329518444588936641601199754764855182064963747345087755254559826331917186009983930468177032288216072922827420523584956566501427403120453740085128539180562715016946082217237377519862830344752265564950966075462898449487480451822263231200331346915937794930125980663853056804123985521713983664753963559277523590485599761945047813391401839851413287891529316354237113768363230455386276242124679152727007983078450807463715545514216995945508649398679167360516577657927067099204894310954553252884739416690068960013171859644451385158748793893411168516132867735798571734697392417333326100585810227990022745781028693452651760862538672329087612939916510098900678343347666614708439286481432749860814787694976732433115588401747639781255631742106833166551696082056132212420689470205337728086853365686264545544903921213335346314101938520738983044276780997364391636347478873881058653538246423520427542826093987984041588853471364675327797156576524782581704491429639458668897597046757443021100997331000936423105722271185812015553313006902929340845226858032110479973814334568163931269304874578332104087511353296550912661148756660288584521445557269601017082739658273840538731324992165152701075675667860192831512087995523287966028443242919389723330572819258865240124045949517299690068231683211802654234084066726225944535769149560801459211510994273117192025095539225367861748662040202239715780643985285527074863718973468579537793539068414350657962834364068560732074880958437280412613029166892224061962863290947425012252768014220965479942975953060272219964829868524892062194998280172631092908821164411632027070474746887030528924366289162752320486826923784915083114234399759174272926673156186679040683085708587493562759395387028819637143839338564077983254716049697514432232772437584100130354968731521222554640978150563335842308196420010480744337741970800933972880746966351973610018230951561321734138957995334893868318206433623142076928925673649333185746336262408649965861413634887092550475531994989658881726126620269157821091099850667275935554029338966041902182887791678551162983062796515436304552821595413815616100932838315538986873872859057137572863893806602584941205339422552977202958588693367123147896363957323454984554432193576699252251490733983860397281495931784775268176640984450396797885527732505287936830412529074744899078138669651744567973816406092039955194762227287600571157322952374597256326387085674903236273830118220566554030928548961365297399214152649135282171456122783369083543486047452689837260577529268429683859158175609631185225192499528274545684359926927141788013582007194922244485727739520498148426476316762538140523323862769814878081782684004734677579291603033591647293522256533014795865375662270111398058752836597623371799618123683162054747360920405114594097714776788038414396904499655671652438140836863705586219281375473449502540271548981879810967174699238979074128616975411071102714269013157849914775449704809283449950570480655809837328781939910794467898128948550281885096474226860997032610632530816109494359152219677232799702347963054374493727072899163379297666107289133798744934823069925189924498792256671697883231690429600596728675764160952625257401684589427029603700781252630069431837513572086229562835906923648350433732439655278849598460835751316152417979192378864307250128151875108048531103628800922186510874625213915131584404940714019191299160913832087015025707003897763386717838522386131231535268679730202771628197269898131089895324150609447521768035714190698466433905602982500097300232311945855820834016030844659074986047186467949411377547017874711148720957610935030741921009705057857154474462785882833305298748255373167725266627453298291787555760639460496718418969625268089894400137705787841900738545380975445623544708336660669038429442935824624727999913318274570423524171332756117984694898302745392547606290286791670323016805723609874238451990319305290390734226651887638350874193043833730986457148677646296783228879963654759093092879229111304722084786417935795729009424057116509730181553356021278901497041663495045706777216379240301514327761670041220556326425300338282253324594705460770128605940450573465489448675743223234143786636464284425317147272438946682878778059447119204935629873376860426043934427716747727539664016122120853276717466781228390476054196169555246917694639596796033939845071823142228846549143730744302276812949223596515536157156461699174195763101482158536187316898986346550239813630322121053711123070744800816814943505588048877814205287827561954208380630767181519543781125427281667596482631001455316724439481638852998833003731377131843943150709792585838793469875590218372262067435274504106258211625682143722524052302016968547132869079807535400565525637382205208469438031075358890691621771509255115271488783745703113967737259058875625259355452965917728847121517405875526401239478966772636958357143299259492513901773504178934950884687748641499740340500047319780425150977392076773461154343497688582207304484963002851407797080623701436666523908614900144319652598443624748420657067960956202514751286357123510677553521744099744641694377290284299390623383627155731901849473942128982033496091386653715730098477427197730503977153438572180962780265165152581166049383293375820957450964971237803709347524911308220052766840076731225519595606863370117708942390383318569054679293965435611765551122986645449118309110294984129956706943339663457647083511006406384393252708239762886758612561553302696321739144535054671650570776873997396714686284869730292300383151056871052227799869276254902381622685192840458736055329227642133614173103169427156529148255108802695530039009837456997409617962533486051953360192338847052673843161962845614872199837312079173753559443660622715044574059718182579392646325741055881987632213676989268428602202525845581877719162624944797842069389899214022290136969337061155302349437048265538290929426249242117682435114856271373897982797001188777670240513317306288559161554751403944832061434347091837565205950254301863670022548885557985230581134515568298335347718289952673793637585221641084789873354298205022420858479144186925957606764210199452499925597414082317814205787504907847762646127199848733250369293996442087318842546287000350338943315950110619691513785407878290628141614033890384865596596920455218476820375406928569438226931786251549409798971470720399412619364832720372453039455018430490091020654856082471282357894657613704506171949193541294930870283042811043983888528026972499033292331974407814475966627065872863764969344823289589271546894744271812970654168748595446906920724389228040917709026980126242976385232503923587300801936084546406410989500980178455186298079201938476480557706773242572313118379403365582530888213282278929005400267400042112637752720556805040713211447522864635029392333682316464332013432719205088740669021427725014541828914451320879297443117699280485619081150938305534604378410203297383881117540970052971248906687546229514991368510487613134097161813969067485971130922021890120834267649360061726709016916381500414919320385579476476724548961561780899722893725495385378495750051621215288698182046378960660735541184873553429837064563732792276001740534020993161749359944707183512793154238048126713602297296272299560365711776935596790626844850056218988803638614041068541876941809183404662780103842112280533617318339798159662238215800931946363588968315675408900898585557001911629213613104813092835730926396212976288485574667435977857208034455027663908352702507561530144450447895569879061689012834711830157428890566022466516203315772217026369108363488573994942872305933489064163328660761470297670512753834233104209066737096449603846806494371247499027674756383266822343036925774856271132396984772059705368422406055777038564608063786210354781292046576682716611868597618152165676801593842410798685871795787912579758030899485772458331989118180203401619399667255870187164376487941307446766040005048877940419390043118889813167113368112109266640484557511428276544473904090145080513811651216834879975452697560094655803859246358745626491961600851273745415718184120336486961388485236562744817973585426464390486943483497832830951644604309067689122961674511777482365778522622384954476896582491342120621911836492606915711903574284220263341843670851398588294533213800028688741072897843540848994840893683979909009431426194900129466597266794164206902777547075274673430944942537954672836574880169001308674252913430702797018760591662061685590596671845031432064735989038362123255433834481979821159884267164249110177664380682481060625386105645946797221053502793773479637011777525523819635725471443395949692665388644262610099617739181974090363490606175743702164528516546536002611821150746085617021318117155668128698384113069521736436886598536701447454060879382893233783345061580836085231895596572719080632314634497451082732534610790650707535666591358354048054460956012683548567061902200749979197797597715222552742565940976666104990945404114919987920804421643788485584566407293055780468521860946009855312935415276783055953913364509516862575225842869311658566581961574111863073412039059437148956945073216287504129174567123274280015612973177591836706810053668435685600594113616394559758398002993543863378641914902908346775976814153588289431857051125687419202337064560547429751113918895856847098608320916610004255156827395396384857342301780339858339080431546905235118308444688774003269189782409135219581129956239768586864690518471244570508964251802139634576681456120351506303212720293772009129410187584744526669893919997529587118562005895394498030296129896196386921476883399323090286877291861185768923052279843073087932776944058161863617967814322622778792868948847870232885256385193847488098088460527555662157645204980666044499305640379530016623096985212596799565646634224946581905505013453320762626659726423747972976644024642542557429812902609971957978603954680130158358910502283150765865768565099445970645728960439332480186758018155654325948300543730649735337380816792850786539089476947761861524835494550371404214215994552331442725661890520943627037675047763294977831616142746958382820245967279439571959914855541585970512526379580550040763097728019641621018952492877402265294735163627216695450356564936636499483757660871877358236455592842794631739233025118625273103371200103164107175085114040824729739513879087600128731437365217868090824947578250952246859277578452232669856471581418205420303677847795207314914724926593424512385509487174049904169412917378750927944711405939005796877766219725480574131236816878322734726929847474308987225809383058240060510058510488734413443452026894654111535199289537268150206801984479203600355445215442494385165729710387480027762208611413957969121052638790112875696841821645236809536265159667539939723858457686495899718143918733088559825303145453807348094523826835577876079119974766468283445044179715370629257730606797779848174943548996785873933463861289394934878616558574180354083091491321894310802507726581912214573924079091320405662225067515499456775240120263438753906624249703549617539740059378488917742097418893616072540730277484022332989484812177643386868430524883784713597534808246605696129944435892829120001371547175582965483690328489917372270546976769406002424458174774207054433976475806978267592046180420396855949605492251312672756962321818490327142497934214988162061831336062436928395477975510789696369410606495915765685090701507941462216171100205467272707866469392105484892502454026413906514516058721136724059884614329298068183169933049070481652893625516349940911147208552743646333206400484857377032199997915785954061499405618309317412954390007575215965680561100635612065195390210171496110946972862587720054570331925630440679900048439538201640124273969839068340098590883092425317158084188519734934763654170236313022514636260530111854652819043443715113539866132681650359068288296971938418026138233073628847375998616661384242396461884279121380347574562463872672259951974705516118477359158384566915847869948020325949533436206434010271656156682479554293655894759901363557858360281075232469722826155900919728937087491868709086628115945921548528588683601385309282582108876446647794287890337067212287964684336842963871349166015440311576574001156768653101153648125797643849375334992710596737080005051893431738154775120717817156979305549097646170059713565731970746332388744139896714762970715986640623352645456788812095060345894959820590460213392335097794429923923152545258000984069162284006085534436032196975084921013050748404536931684853577485245990179580577535539066768307078174808826474480715402621421014415595389022101413211189991406323591100558933013397587899440716286348198155421420608324732400592268696815616846727454261943676641440883074562288859294383253801636003400745326695645256264779066048456202733494280329536927573314181556705448138684618520429044919924628025768906168938535106500913783564152147345527305582101508731176792173918574411294308198162338661431407498690068847022761536240841323511712370130127366245498988409798360463617384640029186642674613116601458515829617068002821390284777867832084838260056657684873088042090028949042605184491879129590218274952573358238680966375190330335782863706600441620248161348980314405006929200347721234786921652761823209399110724710085633314956646872741150828803662977374451020644833079867084919639517176009330266310600331263823091012883230085906192196342240791790727977543733108636799560616519714653161213659057295117252903071011006876679013478405010869213428795102529012241394146868586904036139995121433426757524831361181321230724353367788282892708285111059979876207411656186706702788930531014111193255800520367667548754143221814124472668238454948562843415853867432655638982593962486359100018591356639252513534523474865117777299288026218363357545026588333649494231033282308426300522741008613515553230150232556369429733767876888180251304429368149136139373457692143435812990306357762343832669736863887596354918638293738138082886950084582643667688104083749400104299386250595415498499649287315417015814552811663710906557177445834510194454588609785336684846852173166808448301546851718387559043530916423108131434483531708764765949633437865694427123052306467263221885675872547725022227127438404390593455828353656000700540288023926481325097791647803382461901792325035784677086320583066648193924595872032237458005348198939700610423107561671558501702454566539989954240117959333522470986212662373766770410597647688757898076118711573888992649421276641569452827731067013191031780367408157717524934376381482612262132377859631976755912971742896744436441883903090124396344543543664553864631299849206331221906752687102430032225631797466668921875692101068575256756601945836051056264473684612876722456740891384009684051479915905725843864132913950987593307447911710575708746380300298653857444244987678231113800269649198206714123151445083265827158981405403196755708082558425609424279425011603427585974048776879030913125830641527717792264756523307939487270567595823200230483161434765751348569773280154902374254132790653363506606768431766584985353528381286006527288848557282987923469991155707954460231947103841944070081914818306343605541673279292189513007661547233046336224653009359263242233152205009359210709514371903420752603194480180011304252685772487546493224093298257783434579787470498089967908805829109773412384205639207510101054472497032713028939599768226899335000235350272393226601806916540388081646940055068385599005632101661797538573477294810118368366521432579354132103716123273176174925658052501265115132996658142138793380643453085688959920802136529585175158138497353373001312670476749556305526379765624635179049931041885728811103525994010339821847636012939613911529588457110679334453204559154920382087023696762886938054512458019954618188836353702648575764939300549136955425083444781975708806487072555782759082541795215221438990937167011636584602714584814419040729113877148145539840460431720471887571860343029678389210365920625829247167931540707566346541293551584691887059319324090248473666201953918824866382776319495849310238382964569892457363160382409849494908143235316588952154710627932397814237867891637303273593958838232417130495060054056192178789048695014534324872736861270023658461189427490635081536276950296632563901454612073908171350781791536277762941046363708645677412142742082146719549607333490027135712028576009787955310460526825818287255053313690270491496831221380125562715798490776531235909873728594519114766617916077343259829531455129037771977902302661661253943854880517903750685577843288470717296174156592601374878464099708095577608881413960822870357009103153587972537004487485655498791895961879098693723905130885390679849396405107196486406744284157677118145417994339642662180896272279086689694023063286784266720753452729347533871770898750072275514471394437652061959682497221727632852914887022145025985596065058657867136040863721812412708199466097412593326074182154078275997662247087877920784689888240348741102271701743975870766201867037875004439442115363856571071816316931260703642488613927985207090990375799751899380835290733604985099159902257420607093295325570241411140583272679437742303241682477169306373237315004315512328412100146619576536109649163361011752337306763423318889879825754041617055107646645615262412921063656740375370000566989615157218421319206528758946219320880917934650725524155099061034248354104697449471378162772771925782154991672562162858527449128062330291363445218378908636852651047685017816243339678248250704627363761573832301262972527548718296350517000831682200482849049791533311264966421025454726519634738186797910600083387183164847427708369370542358570720837041672199215532025449490292679181070722609004951197606283789910219438730042810008017275805210361183171104367215564268241456119081727667648788041893509369948431868746466261313373378609438863936177888159825659367634790170498581450191740350795038033927374854472586407518690251586302295958729004061527446221647750751620572263187820355132561451974883084289304523996308342250969299248967576125001334659283889512749277846291277086877187028210063246229242090200330163352223286397208210263649194030505460640892785533873505081987211478047684050248076969137592035436071341005572569656702668808247715200603950997188424568611670056267208314540308434869731670246961801987724736731289581449793452225069637982159396084471901039857845011238233019213371925924300941393238286421802183000803012795605643225747439054668580444719953710177885449456283231871170738748291189945531799162584952639196651885128220271129998678016088416021479449104206159566844195537385081115089242674562603477915928995220057527755723351560879516784005128418347529817066200752143757918755360272427352260297661093433945559217457337916536425355459544870651012430111797752764946449844086033391846516416376648764108841266033160011002683832135539958887831390400407221353065431292291977436348803931324372929892036357354498237500226579413199104148764120038597520532456937563222975106892914038329580947545169349817600545769852942883261657769417968588164466419821947109345854915070173411583812122120297989315041145646864524296103418638915987170021977931926651441315583538685091805062388191262471466991862394113078756921276126038674680064988711015372800823235747240636051427724933892947695423217960088307801252366262130291344935697455037590826573853043019932957217950459373884616956062544941572205493271678437287186811169901009331197371721714595321358386191269699777232761288054610052517215435137613615097131522156751641396223566148726855794251558756660409945417843241739462050026511279605706406662060332940148760842752048798406833076898500355799325381543880143948452619273821865937409833053151099786911372311284563983705590710611715684105587466317758022610622525693289812490360149867037760752382917994186624461256348865038014620193289601172832601935671586413653615664817921091804894836089038752069639224472093442724472523334928770737767271064441557845388421316177982338867366314357770345968014202377640798846149512668601721295100798223996641720654032354120768508620817017625696670579727086530713287398004535576005590927795676046261986686123986640845075237191201959922688541234343135520307707197917444986528082565163001459973516693484974088965297704719550065799940060537943200365646457687689174286177292988195627321981263885045029587678417941910926703062940123811508142302937336237923397021383723423800528640639306170554602652770191704367846096285587897900811267353722544355612791730657584170090794985615323425046266586480633031331189250905078013759701284343611447271768347574952395463187998336746443633959085317515991653632921062940517218093201224744333012267424399953531036840393031005920440615732412838624417941565465920763502785240532424702829705128807066296639742361830115653956103656556282820953772824382102976031227431521334107517486737375139851227658878954865487745142486087010335546867048169748093065108402299442495622240086001359330318444082159008270571131436039665540011098990855908250737632169159668792023828225398153971108968797043049502467163501643716191503896687195072772227083597515775328594394813884843752831232222670207513128699997114861579409153105672578392058873442099337282967508023661057888483170970706160333792216205369620678278314005440505601481090574001739072633953050626660380057531285901730344422452634430770617156013565603405305794060647768274940850466988151205029808754899563990335912183536890449220786344890239840759133556079269366387396622960071743725566271847883360155585838754653458349187991325594937801092887157839886378207843812218802273685097534635745503357980087206535471660625341758987758248777680010789129098835716103684725121216042674009119214270285194502000477031313798727982606460681178704127138435788225847724194316427132375353854836749405138484844853664118418123495867509886351056545528847137281886858215709341278368270996868557857464023345633354344132529842335058579505479072220439246259590566702280689221223591885367327813562935062453028450490807463269907216208362815001383270658778536780839771787057283870128771595778835996570619671471276186043161241090156436658442000571330024267137136147531066479205629203577975410214455985207782542792181977716227725477888810354662186879079720327026097224920984561347680308604635190062920339481003353179102186155107183270753347283004768234157529844885642302545609232915711840548727740321408126843078715460477576989773136592538944774036540762716097156260006555952616718272461797738610709028832386541251177401464763432311323434659417454909072713112885755470279784419725569357792863784114660111388511713121724086902709766961650993521859442312776489977895158098488502574626193031859422245825741820131185946551494349120346589285259851076375492430952664895837494113802304690303563688160366311908754759334481082075063660732435569562886165960095822815742712626645785172829254818943772044745052983632892124659886656605663799318686597237626253113199554167831091921314735775294065073426410589385426573027450169039223719892510612068714981335160414618287435370583357925781221642748844212484891974965851830411160261979002341209864288257466327226212255004890383663403919814227190788706309036894522895029919386258713147284235985350056889498696692400569726200830335706531644517209853394382058617755950243211514938620569868142277430735035401737503925046348007165433392971081564413495535102275991338207899947688310739460680184678111503527983802781509193020111484667669853284980056155886588899360755838172074248369261928402460222775233913205653578133965575334782250522477940220704694140368537295834500939449813226843851921256617205503489062344805920007374977096591610936501378803113657312629937144309764712360575299925018275139409395504247251588300930331023881868856093380275551429074315849910734175044024950687437817507056822420363677929340815496585375491373145933070326050125240669715352052115337343605294012107178552533913061934344637155400046994784760422757347085698038890131083093940363053270296694379185213591522380357684895941103633211710341269461733578179277350368332929248083781796825821982013937098095385682565463211321987030124864322700498426132397951303693862272376592924397920768056119454679523769664380622955879709066636505263688272066013845676684495068330244572834206294336399499441095639618926122788234835709051225936691749698557013563862770694412287508286580470663436639105322327675019268826295388661745627920160625617499937332125154174281828705463276848559714068575731849925655585823009380503091744433988092328721000093489253196305331251977547696246698974570595994306472530401520720957787050309565236981950150994219648518960303613769427391620033453326831715565889673331510838080327019724289719675878032278691355959200550478988990632631752634617462191341931266151945352409572913604006696988820139387571458471092164182752849021766921580727161277444946552912734227650591514774349530214606725685713050298646738082923537704585606695516705183538195974484275814029428276048475341121823166222645905943507302459465488494052550225314298153898820014155622893475632610018994363251460453174940380596034652052930734742963127083480465297481902007379420230930095306634595772853426820883970934489703477101652146538492920229350381431461055855990632851305605845099015313983737629226290700516149790893033235005656541700055639092159133792008301973335719925651969882353363859533353741975795268689803350062081906703610857592764077554036542761318764770543783481104292384640804466487133974550968803775323832638524304021058993636681416332618990789188261694992363371450505388584840745344878888419922293139708599999514138047177782513743391323995047731931271845733472042108545753049060500866400698570124297667994825882080699476328195565361402951942157368357959563762285515362898890054032440898489804589091244575392997802898201823181415418916266370992589111814282857192277365443617149643058160004243279312688112467734937625069037099516841922339327057197875008186467507354347939678019016942132403112130324506694520567193831965745046803421549157497418520678123480124005306311930720189682579169270615935552411743238993988449423847001936974234680549750634937539629162452732849616674917689296951688127652159762911370568884016146483835984851403638789965400345338116268714272969262858673200484913597562467817405821174051294202425466619474351684185253824411781575334279602383835562392541013035530808978380451603018064608428749365570617865984467919202705887659118229097299031639370523619743328145206020117489777967867551466513039600072296888121829887480793059891907684331228961777879860034770968834868736923951876495835661269639508994892947554209938327891391465476862990618203493067548588151626334437633757256656638104955731617296200556719314766192480573659500691407410567165317301202504534808140984033928768546809627369173979051509537415252194986920887086764463782338359931611875710624846283786518201396860117443666097749866909267860762784344788083652982213297114910966054928588966801173993217914847553394260828766495961814642010727867555146161839556623937956650862740482486113146426239517881843005683295040391535049497324272546032908847704633089380837041503441695230759049423675122016995039920562317335110978039262165672502459481712485293351619208453876722697874884296990565652049006704895119225472226952031422861314754785741821631991770082260400219364359241794841436813428876357845531416373057095081672010407699366203760232454937573804399732311208897479576480049116163389864627932454636686044061306731345711129594637273198498679072010103856717642591000479936146178564896547964127258675637968377785962519043231522988559935356597717954835696846385484042760097092914120491678681679305952042691864443637150881474339044367069115818734267719525214176776452098280397016664182606692474374897014094690926116840245934155554798573733286305620585912753458603443025042757979619304883750982505818193676382358141147173198234578158883325567041523241985460192449642175198823969080437176662245610143154644373918439180162277054285686679632610407338434827176175537376974194563787325586010766890834514943123767089365113841897498405533648520577225921799332418083709578844142418647795902520705664344482819555653788273470629352459836481521960067953326668853233337116014979960939690713195539893517346977977784786327326406090185014710034146874335989778727687956272612915505760556143503957889270522004041487185269070304449433384641452581370432932110841307732124479625018081232783988265691976268143115148171152002324124948990854886753305073480076286201452361532162937512289402661168026571156529174083002461743457516408793934302335368284093633576509747574492387504137197335479457840616265340342384137256283380186070157369823830160828239212878204884556192050422324481825388307426284808749131970607885575786343349230791008482267841058838981413909380385025779895065028728355326098925818962223950841306114451251527213599990848159062600191115017954356885595244598071242251148602372392871721212008542711151010256879445039283267512180880851263915351166514482343095555310253033481882691907670787550316253470066947943005728086496275837507185245265403592306090103548400819251448900645337799602415975988118554956283542819905040393967784914560197387431120615750211266294389459040869167609017977038105835714245596467294319674584680294594545775069950009278255389651703917209542242043951251030220443509854554201894424923216369405717810100840767530989690817474774153180944133282210565550619413267330396679661112150586581260931376819198680227220535495018145107404149397172322332646534613684274145135474497876262395866377753637523579545478056788815971614093374248168158304923081928280509189859330304343865207531375137727700058256151694388269411587040352599412350781098322046572170862807126034583954102316772011398992039897953998271840626813956906860995392622510354126357007298893676400019310515351557439467352433707305838265861398107393175410236502375030250753497729384740127207565479289001862814700982221204405269783805016689942641828826611031047940696385986548204054816031095216465071175719825145825094349522036894441503086373435333826594929837976615778286740920176269857613421599359018388710151317888230804605224982266232838748549900332665697870512127316877015803935182396210732525624875361330485600704210578420893071928610559818026394920391856617608344559071733161169071148682687980633860816989816024630510093062839280259787893235136329307369482249810733589767910104683249354301715391420522188887265453987939108361846788829448358863523292674747024472172860711799554083048718704794697000310685896359631535794232993845072777697000509399012687121604145217518864657952733224147920641215540985030847903450776127895916965391234647749852900586200292151240149013488060033396013604578111795240079485790399715289290733746033081902803492887031720749958279263609354692069503606292555369483255188154310303224761898504973901714639569714170681409080405772064781037541678656357167476709141738555107701573373060685149972816808940228810148347574984320478865202072579481332061277358764398143953635942079267116055556054306000089733906299066217694768149792963961750556070384806072580934558402409676752908179519512779475755982651004422504116110506684390029755387069469277127023806119019769871656655588484102023428408968405691277097770343566940551217504244839241492664405679816671460563449696652848065796549788318981870768778514866783942838513651883764684628214543057772338751802997064865482945212329877850308078651932862181294795414007733534067356326736767207650840332960040590040349853753407093095229959834815739208886645026827386615973770080790865410892815910977912286386023951386703905890748244805850657608443295720026767639132913615701266411580709624893466384791235495763739961349512338616184345250454764674794807749424486245874555076371976000931065003992366759905576654748982258110431216397713070618437123705663860983517171149537956979759901719862556977321877027723849494881836912362188277253042553209709834925950133013477338756531652437389463080612046028839313708474478801173867917659109250379109468871697262313397566474720636444968695255932530625117447142509961163360698442885704032490881926369941205640475327747044074552736048164352987339382333107368658640142744896763532363483325851102328007266510260058997252559839049372087171470051845329873423424331711402871764072904454022378579728194865558116700428130262105283794877228163168314315817926538275092060131452090522094191138659764915501012402380226919125082448664933077068902979470202059326903459573775931929537403806372091030237253243425544877883513708831978767789801506140529161841474776989182821824540073669196746304221290429132537812375245332905912236601860009642390319152581467438953846406883754728274882145901352259116241526843382591181234194246423678240042928802958200842794091709541035262736059329576725509513448259858459926159776370786563586066484725200190735418903192496279682021101968058770695649412890660904292150536260002606302619038979201651448815597232304617252385439839785435401811701833319761471530148585145606366880819964740706215679094205320630285104541125622945238720780228892396991168803388146906423193856804532874658385909615835579290639247012445209635475189062720483350191366704761346292067499577119326460729861080663889738359183953528047519375089504380102018872695684003765944950172216252086603105885440678798227807178715641098859859277150197156004702434869331172290539668381796000736648408733846830141973211457202664568369990490397373272508967735021480510042843528564756230862195970728636869260808940088684078190668582488151043399440764499875104945965009971201827592273641550800596757822595798154810010694870554065846972558588941225797476726298319620028982980623005751332837296968354748784073009641792224519026919763881886957761489502134546472831898535104757482481855830682858675902716648618825862289852467973369573524118981581064249403895991417035380238858053085117160461629543546771332719574331083789398181983520957414024712394887700522313811317335494661381036794449432112564941323790211356811987675758855042470255448611086536561296495417863359151722997360229002919283683817646221584702460634810159356287115406882305734949733604464114555464861265538786250696438714999452892104881643038560483938112740905582887324964712179106403703690426858464278663691706431775180994916404096224026623961216539857705668601283817556949945761328491183916811908792176629654689654958615302204375629961317401324542807518459530749669580310798159842865044541966658124185141671863382330609508786206276455138942070282685491094565819770206958959947203431618304710119554103143709423672442303770323613202957068759730199992076672273780696376239959432759206080433679799879492515638682534135606645546238505504556724959516881828761058777352516083623099872698364639136746348934190239001452674086277945440441941242776602213417287356131430269019384003273138367332425058517909907341064828004419114328091218290772419337622790828919847153307812493491599771866888176258083452324380300127356256274340764553788241853900996940805350354873422847973676909793898681548923598347102529159235348591320379861691024780636372336388067468433909884425597398631589905887134543553206297444703898945903249511066546566439108904133682460677187985112502264623268858636615226148239656149132980820019156118476306353011644041386308641448066655875961943186441041707510735985864870245236637345660762049518090653576540177814764561844251900853038095689559111675934012712352223151476782507619395685927926925528300736783230099433804371498814809701320116913894608044449903399818931055409075161279339947517873916358369298554954982220350010475316645029736345457277367100384322978330259234536276179386254190055892266448646609161287618428319546953147518853483074878826806269833957979170583097653861035574697564056218253793852939631041296997341648998925902797912575713178764646757082107882315621714408575348114241806593196286903827575202722193321293912743813367976105999773918252401316830781529757158956086140238532426239436501035293241444771362974384825058667700789030916893926009965130464106747468654263462602173109733663079973822611648541431387902887708533611121701074167331590492460865602411413595568725100590878569205361135678061799798239777506466563010485330197050294203834397669102741963140214121773991517903630666490414643972762505065113897371827104186285920879521138812166694900681932345856922494857913371929918294771382129885437741683195237544377795156126794914911928706747423592911537944641872652777554561473183161366305922287891555718553175907974484767568891769478685874254130202151197849307295012874275136284895874520346311144143826847310931200568891513436926057821746095020254012798093943151570731761922163707884832186218776788810204602067653103380670343253139574112760999109728001802106331749736722899983969361849569067935250299890277972306607074619179274029011315741032848011217678446781776068722094749709461190510647436790079164697016630423358391404150841425558640724760394689293632878464768739524486214924919945635392309008720469749817486025566997719546537271485451995306477954521536754722307806196323593707358724425838264992338114240163825495337127812149128691051459385496248609927723133525551852595812782152684142071812754225114986075791577266393547708021153052977463742356919627718480093138726481592258353010870567446034481609871145924089446805473400186039681112889541158562775274037554902999392982961248509081898062713811201178029850312818326796681331623836428734796077828624579888079271280050781200694517705737492780757873300684261233267699395868718830108679508310130191798162381866980299378905928314291496846764333237553723046259488411016290794717179208646645909196001519978671032778592769002703226838603778255037717459525778757354841766082570061383922065421108126415410032499306842883808057349391376504439985036945406518359461867788800747151905235584857258582516342476484563019390613789337890868856194227618832479496248718098438016307649902395054154850528174065051307073148444593550354887133603078710088185164433156458651514473207347586135501495174567343765318394779152679760555786001490692950623188007669049964888130016118045367663453014070378633062267537416127734589563540210096790684197221911849980735596105514000184843539189869808418227142066948687557335448995344309788103599611686033858513092368925012905377326253845109948187491955673739992769250227229463263214848453451967876700956968296980148650053053563861088875263989053845408265220035361482513201740731141868993497136110345466020933050947965461696237099587338242489195060641370137172661109094459569638051307698207960690502539170268487465565871294254775884482677361088096059834885090882818663164929211919596183646550412761947466739889176501601733935645602938544383346358234447447444800869152419073804010364940182115818186479798643083108084763434787463758572026280753934849270847970170065539914157050283476875149167829206660214490930915133826836176927259161327416486217550233355755333368279191423154624849110762011357946383964274360864257487079196128307488600856223409915755406532298572701975392406342862068849172237636547214794990421789680191741190652054145235509946170308024840787757416016747800683801645312308553100622437260882677052283293973889939806418732367913091692547199493934469575320504624681512229343202612704375391030592317106236375613661979344500741640656725171010485939446727222955995776463921652132499750866110140954737366534172470451796234518278912054341946533688932824648943872573782148418437981854481214128985587067486366414995500905349752175215350031346234540924006708775438443361116095196967268183031027808931176594460086381957348387811352516371206201780075387477631348028567865355884164247117856438651197028697231352504353169449899248235083010846406878471293546529887712537169049202544223057775760250778502000193511383653308268080449538934874155544946227395806123436531623361234530750944038903798073600526502832269924919966338539027683361011702093289601023533595156046075395739277257962225846240658012398527816384845740327932201174821773148248504920592620470770669124215693156430624733123925866247176849759849251440545489979176177715313976410769168114017558646758027536840696834685362357964976454263487098138691357091421159666325514744219799479397122435793530171914341805607886199919698482835779895295352809213408950792625145235408811978660578550218820622379953793160899569117054990623597724418005467379062229620745277919646620050354650226863207934340815357231450132863843966280829646768337366842618434984321891853848365212691353988718572597501523622904761864127230671688303894125290177576034279066217854449481523601401644938433003166610905371011678335943703813813692797727504641734441428146050065112408883238283677390658636020637764017882035822275169313876167919533665184951339276169539734713860110214453523728656755089215020090845744230224546472337734918048641949164944260999201359147203078618603949688925590625933434335542780336384068844346458456361575269329156129571432284866725577616994541709785542654688546830616373896657723258762888095328746218228258989639247025157348260924132458893331968556702652210097286171859384203102607638063295420477866089623440993894184518459196849497161161905068094360920391632632301827367228986211036028377067638831971956745781654152562065911000026186493418577610348711310303476319468110434640067869785221264597701078346529708814279378839496976461149786892999288786229758704548050811580661915296564394971653599975774231068768230803868610944485390667754408358747620411761122356947448292296158999654692277457504281061549534682705287535136167017767909392573946520350737037030510930480220202023196805426845243407180575862530208011872017167728257453393932590419864220666483905962294549116454521619004433598140377565153134224734616797612889541942536031638522374782573703988881522353200396612183211621784439055730354685532799325061231300989461118761263775736105110551130747572378493442845880600584308081984628225610593794410926960949931693981374782483850421899607100249672781084699506644699067129476763277448121012040964657733518454563611980932643431461605004922089351921052110067279147467590149930579939940244995382166207355828401822729596219508066796522819548341584215157532280067232459704218707606127425361386549505357306672363627088188753662336112335882120724538230916545499107583555153694422715835953014136055685582763603715625134794817670331164853553326777443699349354944462480283407573211612617522599556399325815607799914025792610552946245691244457949585488282628433654912656897736856083123874511639421784695371428096206329923827910928291938768028125418938973001693638034037914916015313602044049812803716621959993239231184649523890903237482816978020133395141271900774803086560333132619706445265780878296221279684490101554239454836771640194454617111489326451579689375009895318571276478496348277675106465977199434203299363013277161086648170769255899617481179403215805044721406098222822491514248303117218995693864319436003939937994083588434193669695607344972799684384309157654081118955756198361257170037691861453661693597924798287077774997491691583385865749858038793651978594413897104359679767818374971711238399090843949201209983516583284414322481322887089359646932693284637743239167616946237329322877999898775280259101870052740783637251726889782839617782080421617928060875806769841877959320363768971905198295131445193766652753342511909767023078098642351292387741495528003141179636243184084499307646025990482556887189840311133961825845127783329037259976289865746128702364439623351070788503850438580256173232249684005288574195191935260481943845309602711871049037519186822330224361734263335046537666007439373356660125166452656336418967696425421504574308847867693759541726381527833261329666336615841453153430468273884735347869022952192551490500581944964364428589759259623694420040962050515294884031392761393995754241856130327807691938678806887531846070831925541719512159215433020067085459234448611523140941356511269360973879063219721385111354178109939679173092512931556629909339393682334207605445145924923018740982958499390957483319663627700013351006596877028272406131295406079873424343879625687929661018617279049386639699890166196551917115846667541133586216126714375010610836328813847896140039154981361483782878816561723848535164900297597422628751763427003930893196378910927914783099276035540621914034860580077265628115427003693393781652089965342294820153521138189977939678084674615755209519496342450006344288703823313591777188044609292950977995487390864592154555487757923178602870526700149392332191553385799142088557585175163862314714193161096407638125853330091875546038641660530813611275289526909247917407721153642844717865611863011089707495418827308364058733162012812315093591455586147624144450091405275464063990456299740468035325277182407673003463032588261692084610325977972096013292905373750732634805810923117833546633020510903308229806682096830676423390223831222471499844117535453071702722520180016583583986307080973850382861455641597535624736153180477772223333508966775390372275287291274746054606601773622957856020162639617281789496794421148250357241370971537965396489173607370381350141215357918584975603732116142465925383909483380776603165450544097553876882374454455832438410346965587265379908337305271540120355950487272324643285350566003072595721901822512467852068834273334075031518154005096551369579887386407688243896398378958033697255841729262918893807968992461632855946981787838083307051053447101217002278893620428123973822849528057012388779567101669068965283425440042465762949738113611559956861988783824379396085046719124171067678644558131241977718403005477488004765165917066903510492086801953730706157047568774051035075363458835826401695054855120239045868341453980659405641900239168058529643686625118404370575305042178630474298313492102811397416880920911132381652868457018074091865078518067519908677123037301783017893425155369595299345700776606218105540278294315956505461941472141082955434092893894836339016469261476439800762000314800941978439831920349895359244883663034442112396441195729140456097392868036266610702879502892949933243627389330952330482756425333229200100806855778479716399806031443744294807104798953216645534989854776544655468076943456823236006909202171394865992620554540595258568050266277201771084580913587660872817543381027232999605522282573566044687025195647619209243124006665860415391964093651239249400386548118697202326349947430544754870750615370089322861989939564964304183002198625051177703669800024886524628170112067483618042377570920565525860572288604583336791224327691149898821874826983034562333772385378383382491219079528751864974008604835175016507209552612480692007398778791633874307346293334409962589950719887116724121251905226265121020890140391608909089885245466112499842659812866502367353101519113902971880286724714619650317445705006175161965247210501289114559933602859841230308941517741257171522215563238563083050424175919212125154002170133589776844059061042892850374992026963227772388282612603516054059186775110451868930661083176438079061956458349960138235415638749569894065140437052738102624350649274047860256360759606668841042006032523731286856050942092703752909283212306518439253448182650640412701472008551910630479579811941718140944381089529246054588007344634793660481647913383205592888077401902481448880011966346493909853890953180047370319449136859320360546716621120201831958291553428767118936874233896676588560397468892355210216402872729702206822109776124722301816313570567093798313730556245419969696991159889104497041642049624890496831322338423281622247269785511985253592869274169349964337616713965013771833150944851157062289120929950903286713578989444741657950046707836054156376185408712496434637891183520186184397456998345296448464993258423818860714001791687383574345546654494891041640345642271363304870028986912223567086466819780221012460727023713506686178166967854123032737234524570170386170338680700603706527696450792332780717882509551806499970683150236638442894552277798304844171988456358337459274356626522281068554245754301041632238699578052953702580199440361975037442033616502539089023038300010251860320448907000971656711705981787727339297350737346816887721141159827532402142906146492625740487741651012696328763070251399313068987957076156628769782417998572834243032835179369613444697837959301431379897361664993321497853337904747837891978952974495656873732288680123945622678850066041443008325462217320691616327468477419455511292118423657164200380548040895766677020703874814737262635294811250561951417666263027602361227260394838021063327602050109682780542590047228254888329905359412351662184608359417668091875222247868781911146606481162195957846962457288877555003586826318726605241598063108739307565880965987039128091100504189211602125573351655755893414279725907903099405605201047247607421981464381880203661544132274616553702608138105264953948958579851707889963540791293674910123004094488350882865877477240409934959440189238642650872552068893945461556896955844910471808940793047514474983577380436948836607879977609532917759256164561843542074820990628270741315682705583453822075189461856380427311293695751208414611048423548871336048088885041735274986489252782122824634420182293051498069597335331244224977217013398450118890022148786773869307753722457356770216200948234310384378291926294901332694021782496001300180663548552779015763323828872850958808524142966125285799873585267997993264522730131375742322119439170922882886342466745606969649504715150212993438795572971707138286156064952320164280644690409511089878034027424137621784020462491560736306855565526511548157319414674589076380151284034684632252889540935158232030850350703304773406186336647696917381693916761936027711535031566643147246680644566863441099659207890641510728355145050358448130116050248916215608983518400755958489586807838042131914299921236906476228513398971636456995748537167520263775983281984434646020472432210079691614085489309411312023979654894221610079328037924899643485787561728008765593961630296585941552036262861708786727845850311328782792995013797928741253211838021231954550218446738452265985077087855298031444127829155219132896643793669145570933382814876970506202719574815793469038020625486553355669165937689454839467670119413985807725507890714632226819955126913457577350695315597848117633277068112848286124619630369406488116975062045320412214798500547355123573290100598831486303018748372086729471552924775577674190976142728452810560916389421094463925072996274275117345617128886429586615618956838506175004602018865373926897141177447540888451219640018032430717687541540003182123887731638919441866771175089092961255200118380189394098410229337984234649326067813839804012994650095091146921490229283438919733935393851534308340050682360241761328204472118620436526061209841713206124038717586667285506991360293495203914358108881808604567236757986040620939243662103842637520684775099131606456510830916538409097014639549660926890305107751389152161109512186897366214560450048941310603820784718356994446973539089411023020043078519534628566790784390172602802488668543119685241326419529826112402166997880761295007901708368825807737005336142286281833182728894110516141521029978164440057386322520311832958595035897922725209165222368225765351543551743466036694596823557974527427071298411604628819224449013575143017227420693091919296749296009671581856374508506972340489030920345579563939115743078337526114039932034381069544438833331443504409272268746810516377812407904896434396970855195779954455578652422635822840908409540405716105847351301092272170074475748738527063160096876049368709735995603585540654269951063136624190626683596334877484627292027909377812629304883696255260189265507816284054551789260143238032327250421330122056197804832498653438992770172149747807921667427262201646241068372251644258210211695577298858507935460069664479185955529587978333070088815461144247020529051285479439178706240880482984435107827072639957426879135906988451162752312750366822102997170242082252871486185473366528140476889818743125425357414987897103092094108649755443799841735154663603633722253993892475421862727113832999858336525742235601308001181781346804803130233637350845990875015559551325337389773976823703772002167350490676321226168044639690782694614029912365458594967856607807250556489921236483637982497774575557463487083758853068730249058436328566383699443594820308051381617827539299789293392521496520203605687646711041388080588056325317096822268617383792356849737622630341262912842074807389147968774248535706865830139661475168583595313031309301039224755748508415076982340571744564576069064220003027588976386298539809546777131317799883302894935917194667900057784440113866854528616905166934122987460618646498807274438638249916656729906822139490691704235298238962255129237229773201080957904613896619119420909431676514723027869544760513611961265770528456296248469548614850162060345046780239764499103939064366539252189201898182250002541919637637564418807403982667623358993721536596627515263480968822834348240586858665647719489481834827340283490054547741681780634988806130663707161333891101164747517552009451252361550352505654589673814969731997164809928667252618048474207683074594672155126129473582698667327075369970549417019159256207197874001872218753365268650771816194166424227997522396415927681441973062349164524569470920669635946453635162356840575757234268620623669874300024778768856205745304065779135179954714226227926142289101649892757278288837468465271424923528435932207929642087490460385781097016214781168847632165477076261043284190510749425666606472010998295823769853506426560007383658799765210021728753233994301333584202792112904345040438779794355721283559850164881375668468003635784426731183608627523491273501618913989167530531941684933357107034100502429603063681939892098490285705985280121552774934101311243782910939359710867798165997009569731514329397532769856693908659680149161785190678570043943385275917832848560555460741114366667716748092205195889716138207232682827432266702337032701563510664261368941314326945725668935622826347317714596942275480866883820518384999746954800604667311169086837620203462403086515379699393443830662810836928382558964540430594180336033646022174975880221665601618506021275456666480102938202114484886119761507301635191439667580680571629409529043406132250920582535284432217838843226597600583718994006085462576032855200675481461806097533301219405110323057788978421461866878424266874456269717758460768751753123873372776459165813563643014270458180233016651648559917735111149891860938322800507996367416165265974340016915005466664679050167147254894234798396475130919369739379972755816911936060942103667816958989785619996390258187948187672910449659109768353094365464976179187190096625435108119239174237035391942398324071140129456919467659080403669880435324504271374596804666069777660485987701320310640648868806535133002090526738618281684539449479642862571943189176827484049567441142588246202225398293966327534377417647243747802872932854992442317258176442345083910269137026005112014641106802823788460076050599033328391442615777427087422083810100487198919886579338680769221646394663047172135082024963608088994773845091235395234260662101292823134033810118944128742434630290591466472686862413137039395569860172546379902517085019312047405191084003011988865517424863431898238071051277393336541617525189731381472356603634057967585017234857575311562133095093368164690979037443178076923828067275988890865314453937119440597989801242769548910804986362625759403885822476531694755313793543334109737565086632647168817777091594300892555154964155974790691575294571443595980685923035085774708498170010535782315691094951316921190779751865474022552565833507506692889233981680680013544921154484611898812709946507520304648586427869847864861848849036399730446595380940697574905475438946454322338768504149681400160131236389404283755774979647430141981254968611832399334572233823169867608437108812694589887205157607781476402750461801128645110499728010376101851843835627028614405046217738093297515095263958511487474769554912843871007693983694143554272799141800702241550060917204970836838137813452670038856432804676009226815852192456263384246360144677320595498187154281881703180321715456642964107429053734075366359459191067493098205086873378367433823034891916732653912610848775520097222788651884795622171912143870854508311302280031185167635799541391449646476012396667659707813727516056974043261305991871811696184146836762883811872006584596504319098777494135866481999023308566802980032129344580817327356078474320138421735113002641953246589780361671689528620923262056178125612253486892068944685579701294864000589151136077537176220925899400641713516568427377422568812293450933021781676636985444753426957323068921094088828923818295033413842532607684381285537251800820159639649252769881030913926536201482039298238601159198434855535818482148173446236487279926917795274093697241649016288547986185247342709331928834475664396660221353763285133801110115827369766858745353948953228810209507010151706468053191350352103143106064088709285233238300850662547451316999095594155355235843239593549896486520323022963820141460386487554208333592478030941493617369300353920401197396437536546512884920574370883969195128668527433197572793842736857489385487509197416185501706434070331017965880425262109758803856972373315635384320225173357198217472838272862385669189728381138573958415176240604438905886917042827732375096080516730398205356708164322025224236047573191531906587319390292869083897099182300846012392648354050427971548438676092227388319662690060626505301935580135227835838544064343633102914739748560265129923251758311578745950040602007547084268424347982202837008213775231407144167907850341519797431788358371907376853759514364024963037624302245681404270705563158842682542027416204464105178207592465778950077379079424898592456771329355466690838576412225363313517666646039884994988207132116217350867802322847127793583265470913739493148087919068648592533453997324584695625593242136221460237221069090139367728317694016752731281544175779518447052649765387944153697328961470834089511222379821615815571536778333127481774627012018535398684165902121678863761106847876818575996665675890257796626774056706964632831685547186139313531674350599602452153579538550378904198814500911915558934423856755940963316802628060296526216944590447391290295551376373878613125045671895817341882932653946863838946101001409832423811510514738569816589948495735698961990479945794055390024581249353459338340228674287805169706913052367214642748630585257429187534788172722616726936952616818430818295940447472132089330995700290454677461820149226268977529287533282772723287145495486611475817226241552136708571822435562395476504915598516518269602155640943287580384012653557094788962004127841532715080506820344331284038379002086713548841372917323747972792775773207647426196795060903998937189286247232741150712787932326436678278039835236770365431491530806988466276733585237738263221769448143087729649939161813321284506003760004090619474777543202673758929247548891210027501341601858298403060364443169926912785210996779534986068461085069820178101250139417969460670565320219588833566228110625218672693198230299273416413387183639821451185589936597392583516247266629604400199468749512758883499361953006312718127659980393407765669823469936148378963209716534225969249448054937965352931758751396668775711055017447917015672619034662734802222289651549973840121386343108747479613342910538672319822952029476168035438323664800518645956757870916171084581863552591466707094153236202650156540530067418460849601213082095012761007313165017118536910743694851907314672087427738191623262342769792637035978042112984046224269518878982845299437704864415578785670748193314309147623458342086490965462576250637240315287359955914580537443273606856628276350419906402131489615902171810562485335045530772327899185407424828879757302311941706199142856584083490897182684825296618749800080395133882699696787736524041878207575782512764248639296847941926189760471070523769175798130341604859532825826618179802974223111086211501684635432107885751262885954246443693254115026870233985098367573554307976974454560026282376425894681533401015738784882215822673586704665552985725270954541693595177953909866600066865537195429682555367072118924527243770888866855678829276831693700968038548525517764736725678200798040069909587049580028118285404477827753230417941807605297956785581234857645115109905712906701365987414990773227332210554812816557717666437665868411708686367165591763537819117187069220585809557250484060757730215474218170690211014607314845011013699818543986032056576332506362160746068686392056434303748546047708460461347812758094457817420272498675440629021390826042992073527236453879927672449377848924187236118170074736400465721839646186985792189406747168246589785104916768142872160260189237995916217311075086667781465429664127716087739366355981387653284844511559358477203546064007339792391302490914404618151696897683624624823989328096803457017360509604840545352570788724000631197302732766042501278072875541309482868459382554398811945431084783393251208057519963183290298036520636136125115838972223619278458795090307769723910860955977582571708053738597669729447797892354026499981812310594558677836609262617767788291114250378829322462576398968836675240694331651904329681707726494838616007044813258868656328792131700889153375011858074746044829031073275488463891826764874513126804493702060524599560042710997555557445046007047365238422581998193815819071529130972391883671084788630090236113432797530339019792163753194517200755724142847244770852780131772360330429004801257322159768992392530919792804773499904636848271272682007927494728882010942330400098687951463466719346917737815858100462339563710743014131562648848040620507702800072899835030432915585209849216776267538325994416796933151598423594161424333662490281881882044405710558362694114489533476200286530341143985384409490398532928297405327990421812892327643297906059834588666170485222235977913367658813289188821864510183087994077615162214092171392475055134775133185242660012480091254411851613356921454058031292946166761563729316931753589557832854707676866321356979148584922072508826685653242911226457759589725643617572908398539908022924605410025873215143616016811205176778597331509996062259247364466597951844969235147691498059031593619414015981419942934867734328127896078313331662097481757319774411669937255550542627429301616966006814448332558919648178643201542203779975128587469181827569134111154009050203554179261542287282442780582041140122868244826764232484805025918405030442706990164516150274079405859216753438511816149599103772930232227555973843349652237277140547113031138560504979120066405951145894644028475147462702203697506627220750883153382235566975689707723287166078729490222677916928085479221225239990034858446143587116333119107956561860386080694763149584450898245747838806404181469142481186772504231401428710266286326442027654791054356942632324152366154736888344689101980085125466213161689192808957873351794695338323039771240863383375433233597719209291678712498553298684403438133869453656917016618357420992773324042066769879138129176798175880997007786454639423426308478927599892499172984421452612604347098910799304472499413733157474230891835032981956980972531699659004842355024715649468084873650281312275363047780570786834897771392268315846770325957898568356246749703343490477728017682125260323867766459565927514676192925476719428762874156595683641707519589588444893958070832568369195038336331018598044289081242812356232161113642161745392845820530714426680289597935547674345069404160540647602515003546476757071270084251123522333938772954432012850219782690757382529717606612749185369418797656219322642964703212513032078965638537946203267623190453345061873479240785386819621220284981702528356083212753389741042878852088436727158260636443535126826820017675608285607068447987369285390816257511932734870099293519564406842546201328442420219739823115472493097739373670757020547736349825900545064729108303806942789983912230967553161607106861825636040050322050817302810876964145588344721749857623115009126777032798124762427290830907035469593400970624992019747779180465991734269475778925520774218676628556472041094680393881782039715847749370779086493412339551852846687355696360837518674641882243967968298395046981859142064865027801413971998669489676024867652824714660690877595008385607000497843794904090584694071460270411593231454014723028449001910437424488710559771045599691531780500923750018402504940674255697417880478127743956253095203311127460472211996289882166886695705462370746724648429972432672286052276425827223613024449102989005095271456705265808778216895514099328929270851600371906296025915984236287602666119705579258018426380743655318985521148329820915036155028432569249603760512911723604265212092976584284585187293597505999955124301469838149561661567697794520259811792221611189759899902432599149674273153867881008234681409187251534782085070638206093226142208178037511568096138430159913830989056800984656681833582840781735653742089005544083572982693954798119889622601079275912556481994057468184979806268588594554278916570422645840524980276911515982926723200555276572065884353044574631382854908425974565943233998291401913253666632189586286400140809895988676921049189237041977260242129831506693298016893327437787496357365714755519951929991832398656846672925734949989826970580256313806968050241874795761466833582103643204110298134322728285751482902225558085379319146532686196628638893442705017039347379203200503861837289604742704474866495156784736988216056744682289574083962755954385693798733756167664383318644383722686441130766867166011710184298294046046565150995220602279257672190657797521002487182747850239301412086856378355094518351418340486257581327720593772307560716461329642538570745937576841954780524677704370153750752577920487150826992589296097290707244832771815523572526110848910501465094261938547697313962062567576401856855073813827175605794492831355410147845668478932806370086480410161393348568218660895366088671388003517440828879145399817578179586955141399289206658281339459597453270769352033336943538916377467035874935664801818590777005680556962423248012628947527540330680994270053456417931038056291089491337442418763693127340939385521292068400907696293956750977826577761655445270573287653450030723945303661484739692066862071343677202943747296181465490195873094795093031910797392732939520801616622240917490404593537243587422992223881598279967980539603438402974676705452053753223978675532806554706583166238421893590907572659287548233393180256107216079448805126870359900350334864041079810015698102793136068053823200311460920883974491369607912906013063369543967259565266710323992605896717304688116762856258395750922656262715687310429208899175890202620394482238649727482364411596789059208946714005527586941013472471959741383187266829694878594773476197488408469577055080241524041068971104414184945092778931736076472758126757490473075419537494187572859631746332349831860052530343842154501266726571090874515027465754197110865757512232539272228706697029573509237480498054528770425750141567166171477716321756423575127667710129842368901165274549222185810411758805500130950483641364919636326209670793307581194740576987832993375338986808351270120500423218075988190394737993016586821333413584375287985695024046979897186440571180499454269717660766270076260986212444273274290190584553557650690642915416518113766896567193637483744283806420268682022283557371086278529452867245737786467504959361410924915054357629067117789439467521835101981058034687400240413935800772000049862581255388488071983067264875633140603117220340087259351952631320956002626762437553282862796175897394539562263765854610927009073231477775346211983596632999107977975171421621769021528564750709688144840502108204168016772393065005748782203653242551641488784396674899617870611036048941316433172723838221262488059876895025577482817525819810536845675717534234490777808681993891522626885143382073959798808298447238256386769465280173960682182788870076719832702976630268913970081667356312159915266315935098085181065909923394782431149030820235896529063042690320062394391002856558476424002412586970265389578596811047513845162674003779144561972610657245207895918022787884954507319876745385398047091146409545335060382528050936206566339099529330259103279830869570862791416215949729032139129248206193701053140266557821588290625325376180135519948411017413206206573303278951180824008483707670988158023536541411088859597423611327070011176540453809550674550847112924833651593889012107940445415183678539048094998099258993618495149924397621351710078178286280290665442195657059451095249151036775760133788104553793674171746142806505181707882593279449004529806122081822426109288594100474461833543719099058088287836306912739899061442543172668311385430881504836189482864612549655855513700363782265541411990722566706666754654730692682436238560248256494375278932670816335210024252149236883917789958701433135105939894553766764535004564104944563512181699422781594951050948543122484906594185514436922934057892366962675378014172201216969770881766029128230705933857961583883765918550903456003615929020661812612612734817737066282806009130319294729839505183673453009547214878672889345015047131238254437926628331997306128052615430402137123313130863683141234506273931411806028260971154933504253912669329883242027890396057174701491881819661058352476745669125172330157676266004131749354480198108410445131932357121762609379753076632027074212457736831027592559147033844294974215533866199431032188414209420243497466511415067078049682576842282268684164721632097412127163552554544915931291624873166322695369141242341169332868279034713088942387724855807635433374793120902133648072184249498182353469978672805860392155014669437745964002705571350926283489290519861821904469604221123609492964550107993322214086013749174291138076993811095477033496010599571044201915955716372870839461213882763587605133199880418744565605552003766739932035562947414195229006978993046963869865570499068318639376243764011538963413819395619000658178051297893035979454642064264683065239441164591285975282349871051113718098907443057589520734463134128842445468013800363542063450506490155582830529886128138398154077197770258906190174353327262776813632070590081647567117643050636340275995435160151887217631687471470217260823899491594430277736652126084581983165798523350351926755357553390720684945451182747984336902526106507686995321164713805632876761537831502894959359695898863957974972125747766685352806974769847762191959312762000168484810320865956487451429168117002884229729665208403444970900192723719706656359323776763105572632274933172607942533746258948936769917821338810978585919570601848851555255295456571536549300652266308053018391449128343041102738468568223608448600982964852584412270878175503433226499692402973966923611917889419692086078481652947432466380788170952211702122967910958456771537747352333756703120881628227783781790358831652810893275181525008572002130989570796304888423016400955789041775224950837105081457102300518023720099548735849493135048505381876646029779311490010594258057074341553635343918968015774009028228826186034778504227620035443403134879682799905474402032671484757615416865913717120036777346972950122051834609628831732268038867714676716427394221110976036455732012325317693521520806755022655425790097952407207973628171141988567911177167145066749730768096192670136607873280084559256842718843996804442919868191212979954628692428704424264457317685681143341209131040780949064738481386441891481105297234842472967710291751251804388864183909118199887839302163435978992637614790199236531452977558798699834807648052053730790092558472601105241805620342632386957582065995771025952986120287252168636107987489363142301727032246249153278951774795021905689902732687143378637668835451233208373332297515537807541696892474366776563526577888192956661122662852435466438361966904489111651722697017108894553722299287281855944201991429666345727245988475957856550198820459024411276318572451534817949515309388167094244954558272527865249268262859518865331314728911249908902670036814439942049321775363317812713864828772748015654706980935752477198977608806498705604195912301233257595887350500196744167631559090757958400522777262662633458246147708593251392582162284210408117891921341059197050013304968513101648700271953945312922090546502010623837600567925254341711500383305566827082900012681067642440325431799790151626073312609715344282881016591494114495836403538272070342899718447557665123476691830821614326972302478177675105534567358591337882556108765324965845909341517642992948446343780486345265559072247462187807546771348781292697237181371793573285320555989361414054296194227019994773880584779129576637002626237633472105191558249615251401665186271186053872664397149149339053096837170784382094146958245391598368960690309502953817640785636967010946795071403128015360110106648591110294881179400040228567940390101260637140063116187730529154460601227323071032967659698848689867065148742734003858703418646259795460857755595267508313730984664747591524670020779311326265848947600105466696989706870047377168607669639644083100842053822097221033358623259362090583635814488802144869737360809976065464143013277440296421587789356799303424334222815581215184879546455890345987707835055810176874093743364505674249218227955541123125441155714938396266184302697811797731904308809015894093620590336934851590041210798224878269930749965042418555916444994561946146864375841650473322296873940908752942496778765484043715151338650563840886569773421796928055743765752892741055580780802316993763994521467836091888326115043891206706852852883452447193204610876087922219879162721581459267305567645273837474562874890900375815226901120614728643428713151710939460852958039799169712835418783973709456666019983146078583032846410231719340701352587582243084271441166754669063814773692897737436121025012462913893850855523327039931513846565778047155611320492676143251644332231077353286733188408922588735718362548931786197290064551116166426970061629087901612305720467553332306367508800835977535470377607035764523397835748109500402186438384292727934224927943786795149523925796342582371825903024412519301432660302882793198270548810975330580256206268608513269559729794402945238943348563778852428396867381496439316677483166986135646358440067945888237409315519897987770948670447236226188359791090950010567075214519283448271268386494129924115532688053681062796276805324158556632294470572268114715512291623354004428032050249526836118702207307740842991400820575733916532959224133081721396979694640032799034398680429303524253250944539171400646090007748568267720487179900445831519107810106060957112352884373426534413661013141109897205913226362861789561224636011547795798623869072673187024401268655755448332250099915569332790383555457354681500059284864600259907624053564950517344992877081046036343333110411610426362287702696675246629263122073372098856632139679741875019515738814393358767888787435982857944392346319336804786052629045167357026222437594913529175023380545836406037276377328972614630798252165209601422409560304864547987188296178985930017104280610216626320780282199081025262006782369954500555140677724434745736024500890221975216701667315974154178936544132168812719034724389351561241064367541562877377942235253288192519792184087878334121541429427245853123448060589665205855019670201433095624805337966402060425112210417964300010544429302844897249837692731550903079189395463578922743257503762623648193782510841463542703191695299293615707704721918616337001853182691293314728545945491404733039767882762884505593026137896892301388998745342349151037519640148132413943847127432986011434160222175636321352608563042616542022969349468421781230124473047991571568213594420246361972817878874304084463082501526787839269692681305010852060205330248703824400250383391507149428852054579523393897926137678345638366684731218869900718076015125276935387745226080220495739210506980510490254045492033649536954977892005434483303849880113194166286577838728198261250520934656671315257985650936898200189619728476912176629793066499228775221382753019264804268359298681392925811426107988059635213086564099502637550570257998073923806179082281848029412036741581757438012496536917658527301438017774965043543186839579577251202911157671626912573961061793781789657733691278577607306713020292830465318060932416679559874594799588716215032248508552090573456534875262443004265420535981870031786049750787496748526088178662848081409976574239037539082934147931133994004083643625346351758094938914116609846159404516121853023704088432833440207955119999019940783547032246073744943881925028525820398564906202601740967607712652521405139502387029449630467628104183584540150474434821373033845396260029029490183370269361430838405754960610449847823468906645356345710373757345969882522784174068862943748620044383682137241590639140626048558397062782539355721944890847847616220663315182959052566841879796246376539504688979135004859567148030756127969869395239658868385784699856073751552707502369559894515700499498297200987660822965645054718644597290907712446839243585640101233134057000086521327519163087965745850099997136684703868608304958081717881424648143597532885828798200900195517215009740230875870103085742551258354588569423127977814464683005503406174652060854671352744234340814722217346040693169715720600267545640145712810688811941493419100880631183170620903392533540162908048110989535556169720057769451046882463620496551914854641332082154146687881003620507361412904411622790570099525235546941324220369721368417974549298183080760854502021160212559607656023937477403470453824902161381016643058512244901319518255843070779554650049339877002660067360210916918950456039994927125956738688360395010920235095484426570472833371538553001508152722063064967170999595741642982292460127032812814059234947304916316004985786117201722803297157897929320001954097666457728808922948997981768824893761154336216505182059133198108849793082490540448863229712527174338108489106462723236378795321977155678953896318572692373814104101179345037765774025732243869219731670313244723757644543523602524659205278445860908066474677835692487947821310332974655302258486907662847538422478820430251069810421073728261886007601072141889852485683226767873699943475620726741740793337677788677344163769810582723597629683525453402588653944427874958939743186483485912353172032443982391248775792494092475427043159366612155813916112530674606358007607776430822093780684901200064095975060686087306221781178508951318917195285197703686321888766694492977718440955070715877337597020300297232360494583594760395120611495852456317463071983470654341738620355402480621526377658781104984200854533224674716854889286673705952950557052127739865672349723591394734793748920619667152626657612750475372772780478054691879260863220942465959301845086658325221564319988740234482070253971903363550414312508895286151011142794269000551718122472435119619754691844989634541000598151370046508996743918308891058150342195894014539885733159308554663587467145460600973855640614405585284627529883854002589654575582224961336078009917156848983797580024551531617143919990352862007817992680833253026847333852488323026876844010252126785751415285089620098914044652857698233763254062238326104809550905262422284645208595724821348929434787901765435648883280320563981310711944798539321711553731432817516147487354526181407813850134220925350804731665028211084791700658733603349643978432367443133681330917168499347042138272968196974882078866910499185611038288039183056534432303709531392796011761310729195385060297773279512446189544687367972123113585119095085048586364238435520799453259619167576744606944422728869719211525829279923104994174657602478080872008494553394463961874334040341154022106411896185691864893410252569236391621264777184291122620065390409145527422922554348352449245864300524273390604903814077415582885471577642283585092363524267366551148837048041246451175259757520985577540326572564898774549958358842830745331478285775895454238907355274962965769386907183488624568836607756683469834925469172384308518473836834984387960728517604916891666015001907746786085127772022957757170135696902980387390421994912803212446984332553828046825641294464458856648846699140988552227875909128669137058296650358654721393217296146908450642461920986345308180188231666025316676103419815272280456311326646265200336279325886455114339116817774296802780107396052383093634599696504929245974771481085326347105931276125807191575024207368636364634827791743970050082900114248807696787024224624376461422959250269184784019542920891659195117863611647878426262249389359965571656690790506956245492649699576762742536063890686973325719989022048752025186494833259520892408243788835236252327759319143633946037544654590139964872536898834692144455069757338557749890960421922579037387353051899946403121597940048896121295279547999788138747844673372966170632744402393042557243463408397269997991779918189001824910363620618105362844595003733832132291506087727971390996501501552120083880948325063411037404927516288550770637593186901666649282000200416260441333814312756222161110694640404015290222888500533821442165390727211238000750275565584497636139160668177731185463694153820745041144144152339998084330284723484932507846352306912343203085292610233602612839517737219713452230905822996490119684207033386114043805701495273106254318918550126185120665412586001687103153851738726742150151514935382979732032730255631394395046830134186635095337495233106078229651152618653821851436610475600370980345857713339711407077871473095329584831965129652247419031754982543976685498186624939671081271390917303162007470714131074126265959944544650288522031035269153197516674416826321795972516886172874813171008201260487327594789216702882975816114556395171387509103048540240895342305152916348221838490009983666946007018130519802888411966577374499934710303589371997634199590775265151879727148451776560454077382651612113255391087693117364702078874390223609325620504594884814406619246013440008394142154458959557402223483048809112600314462900744219150483564236890470422478896119483293829745528473258413302737180942807398840993397687671175798073046475322217744777561750553091343276798744815451541462430270047935026928932920803818248066069526179501385669677227177736129971726135505971257022558635413645416621899901948163345516039036016701255251437419918050072992409229569414030133141318531416455654734662110695028986236444734374123081610320947676967575797015114881180541324597511356620689558128277035521970272313126121054149389925739241938405214279303816416388756493017065611154587369146945879575256275337375260661011114140723252485284776344590963315470495031787359608686330737331985138242399392979064434015602376369986319580150827432725924284865586092687762548272058020420222892575988951654792983493225953534455225941456108137380357865496624280529946652758249330765020249226492749819715244407085310143854671477783562531723191385997114144510679276537962153953095514956236985290437823496479958282252292698395108956681565167123200994166178321571121979528699328682669727421323175032058336377444993673913362237547632618587405574277248516497589910677311621910088821607072769850559300015750097702017641755685046296759589236946338372947593459160462000850483128088551979390597252217405688137358917129123324880556197598179964073890765087679530647412880648652744405348434266381944184008844524789462616644127163124290379707843806215386396214509587069398548120059302193957660949057528517177492076918692262462952351585095519562965620722078949236302076409487312985704631722326278813851144894179074244276023062429932023346733881436720575046189934985588786459715827856716257796919060142826435413131170805863874281733685563841628497589980881081892814197285524776726900656737793891972750172674875948074978319301322219965796583643574476107931478857577292133867498129473722757582880225774688044591628100349819845164592558148116545225130529366132749136171854812029483105137196687798530293786521932956935328908715855766754924139194671955366780588772237341616000953985719946286550810852385933994004685267070904146899988786848867409438304231122438706285158320119568910617343022820514186491572321659622328774558212468075117018915661283631634086002885344261417637149962963555470917227437310500893203157821491937285270800320444047594109910623623301040106087999985997693523128842866888825194521026076789636525943441703881570629386975676943593505261128419254209877491047586954112834455243862111543196586275146584421091379704245070762644105171677049062892588502277133539607338452759007122720123984741231100567401168521060386696016077178465652511168905292606837296717662595161857341612031333728066474200571583154550135618279842772581796677062844513261342237115343337808309065683249549230216809129415895149311403105524441499028742335105609920620084857037133758586530974703142164047175625561652679089804017328063713657049914814940885270863233462263983080761573579187784128978344985651427457450071054361724902713854072785604771975536095487238632221074402828103452750195349058335668517958565941274818173521040464564605909112878528303704218067029284570987320644742775558359015368977571847001454051766226019107955747012588233427981391035507218053568295630450388401619516743600285775250221695983838222053333165433214089221114722181850307645001414774882835057482628074502396811777522937515458000321007912163671164602450969285640370229296158023290354176981637394576199457543693569468057098763132723533116029076380754510677445110247812969124047112209564257226683248634063324819302014385721067846011266413439563087690320565056459486271958459718913570109680160853121689449639515972060729885703525509244928905178989309600129674276444115866347287375294033981614243366699352211967718973498454395608586476646160218085541390731758426930738263741223795589151824013980767779857891433521884495208962150839004180948825978694780020999825358750005850630361816932994540667382340770922956156587084519021223390627781042064285910042447014305159551406944835924943707150269910381860652011388542547452182616081704800556907644554591551217540342824074228957886252947279349031142876196117860538563945774425814137249881727973584524956570708266940886928548110700514069226096570740809435806792398278733613461317628585390646412709154089299074510060973228074043384944247091786002504700239597134262770107654104500203212062051680426389982789898779611744986179926591539974146348684968458876965613418673414698724770202893473351331456204065092330913100714518062090700274129822873501023328816171469061510667654960005404748914737454399844531403208568643761152461616949008108310336743756445779491893449542718612224715886069785493324314878471392162842273634834205787790551890497601479548370947639486471248698044001272102556443115059752907385340552261529403832369230895714233778055352009566577194068925019910466492251800459966960467104473827021466661449151686334939569192041649423759140860050007426773416779615978381761849492256527301038626152141173606587605707541378856226939910558188421785476714133404202856828835804801127419776201289711542846130990516400416951606099043177201447968166189151149785572490635106353407266308881976496328954988463391224058813145285393837972949257688569494275364521094428177832403322175230728987137963059467660445176586633733283019484143559721338894599017418521777414697738617930537191690525694119359421292651304988054910002406473876034385895421531481679046669106604407485917253292862343910898942102236132085289391542936547017168712882999241712696363946298672293529303059456191937396844453440254235557442766863721155959755424298790355100731466377900253102755810951077843036261325416238699242078150377780167730233601029243035887300934985978311138634869872458311218591005017349835521603271587688825419747920311901877813348753877494020670543754391727866243715161926907098491461077014484599179343749027519867810277012599593901472417890213685795340585671500710222966064548053745639272313400277848165356388293754300162014341603545414263837290895780328821989178773377385975840336547768401391385055225089358960625747681130845571723481951843076869790011039150314837013528316484188738995547149896315696842881491595091052555258500996530648426408715172345296737634752816783404213323219655210137666792004043794192564882156735000276509806163963601797066047068671256327965407083176730932173976489101296840884737298403589006993644762596497186041132036723974103454262281137587241358013946024175075091744019642807566963533922788098392110563123190869290464562808502738238708528788127020955736008689075252413493430085998874791938374428194739424175901568994800750954823449354751588218073239375308779013254792852555670656305162287478707394352126736868661599466285899533743317799709828091573498785939679511540483202720160665332298907777574577767379079017320006043785426938651611489600580772803575849212164651743277278681008343602558476005564856156786992642696451895714971249805130267104498748739409744787708172786868025321026995773619657971576438654008001607814333079476385837249175420958234891451583213217300663731337301938178539012988621588208187057335028245602892142727978512304493586576831594750166849294671018820525094619236935866143903356855612992659007882355548753747470403401055685003126074570917677129931442532494404679234703731692194150022361496440482077614719119750881154233242467351260323447545396172312975449313338951859422149366700655600443613736504518293534990214875314703638433162938688862911113170641487886393804488397698126348234733251256774396048421045727351913030764139666161809381789820214004084531755984340293560573146468275494216568950172606360722283071684536950054486386232950981076894156106631027891145469413053047720696056290794525861307269316150586227563071952965230627638639812677804546899172371569486529549166237419371614331393972536905870459004907229229945221138781604725319958146194548868302350542884126392236944839389991523499433045470911423680250554864017779129106808319362133522057254455164592264338534394654525394013185868777994929360859691322296062577274614782348322057079449170357375037204502720688611942856093066553661430482718019490715759106051233484016740225978070369207150140431871214853969732751684885674903330239074075295214852232683864363758005636386773444546945528013153516104623766632823119014142372782818938432876182875092461582446391765870507544297014921389655931243447314812955291454756841785383858048222249689980588442134499394457597224525485256091838970191938569911169201648300494785194528684062608636765651247401334242371299435839353300330074497267171256561585845814801127943940804893901560005580567602798726515721426622114224293405382374539713903289194723050873324044533024013938797884833769976775248363093113524715309334115604829325750183838762644757638481020895395012870812741580748863447428692627416791011660531714106541741731799143801290599112994084398071089273866618690110846465488078967682836535405212140956830871904991340490164070190819075486336817177363055513140796920791715681508392867004179047926124601428177794689016185274693914865817481644615991963378250754877731728944538737927365776590809117621253624662411791049555752011565558269625808972177612495080240275752887666773540055528486524926180240792399976764899261361365823090691779970859265922042216166420668517731021137663175099403466785384719373729275108604549455385065017193461551917797875289073614645808082470173883440852898124456548373504259681735013735006138266205208986670746036181774334332361961064370370348266797065432552233462430850138492718753520049424521071572622700710756882189462750229375298904758652861351193967907042343328923634807093954837290198499535984316348718550284370685444655537507985524075934778148397573172881338465295721134517835114397127379923456099715289198440631588458146044193435768931770477294485877895017375724327204602230390213063880379201868049779249781083315891687878874194070253651514859145128328576785808872975082985047112790384573101853965953430689375192712601299328235257552961870554010919997057997093416563649061119191314083745944876344417401695924880057690394223921135752292951522199368532027096283400658699257497656893944896502908681125351382058390665544248739157430864636913280908949979181102410037644549243076150124694341414065292460212351380708734278642555217664078513500761043017446135623887966202939324976127930048563825376457725146136490637418630010793734953988689888296513469942746796973280777475340164005035030869657441052735748016090830383890857119481026427828783689443871984681160543892009587074088415338998857947889134723237693237898875352086086867983382078465053821701303675743607961951076798837605665823343918987923223478639646111627549739912964368778074003817536038666110247016155748182121255413057121544596479124473015453557035434314532565168495939048858742769195460792507988371575852266488933587536034755487165661794293279323441656461880285828740273154860477711133904957925563621356277444768728829278806109963269906408178020843859389098271183626483051140261016148575699853104020530144255453951707162509729055415383743785387078209880463576806531915790375574521499461412271328551458368176627866747016006538770308868191960350446601256288455058840148127395744264284784754955585333749112815063668986681030095415013064791648632274710585772109694783825640510190224153922968398026225283912534005051082815280760191886087942140145315107098496066905092988351296883899952266091318944747541945330721303557549800629724146438548834011946863546176809068343239260700646099592671834901401265807966525910975236445758394092563109526090227548924437898321320200356827209357124808513820667664294406013554569324450870592638940855183824025594879640739645008759606779785331094505014625213683649205366062455826292374751626002308229549130654344607396901996539964219096565847644737878844654564836006122975969220095729044270029276983739843731156725302442560430826732668297884094026613565372856671988294782251795623691643107111195511515175456546859708668125248155287668675075043914717067141716942514438581508732505540027746242659252118994302764758643800616340196724475058622685437792650320582520693068114038770006697444064134582635039796777721070833443008495405130668929576552584448149529032666765505828342180034300334489650519832531025363591988998171167526561199445192779113143018136361907746952370749240892282685462505411930413226474062924611977831950708938726550943814318103567311685843652852755895089371043263218562618937836541069235084703676074738385744359411295543760691769228398966221496779944292070761628860735724419711477667712137471937161233106578098993637794591679051518784610162590068143868588518799788712850913598818161174679699233061606004889707196469054835910816421045351238349545062941551321202695125828497759560088822721862187359974493185970977254562626638377740682029807075798013693838756818318940483344096009968852913025204231641700721524340472863451610559682698212346085389362252701795696010980791450667647813877945972930993697111141697959090650213827154892457242962914186876485323234942176646402938282711352990196049612153506083249977815444433074206587466443868853233605491085111674464968319044756585214428444680098714074219547296544210106850799944878852016880427135065495714893233856138707763634332126344722564878361460378447449314251090169470852896492106178103700694121885658072829873452761087256664121640383659738534695222461967029387745936338599981782584972513907836111325937575895839083804070205274867556921620514130297267742306663108126762307267141590095007695903885415728301151139313243448310968701882821381962781901874675876065578690272626399433079673323110003285559062124821590107484926751574887899607096804933654266155843181719660754137792760668245310730265378788071955424090494079294947736054597369481375510493127704662431580819655049278087462553151808896907597287285269870775453205371938180223521830607744431786526625477693835020251229417739520288756904157974205624859697676820634974682330718512419061053632403768291928723845064135735842322502245659269459305996161591867652631868866078459553781386990969022108447442272367712646683352770285945039096364548861238613405461093634220846280659999278746865957537262875626664809078510067892199653983667422388161502325598660870814352429313018545475327552678485706855203374130546272043462022838269914275116571780920137637492547217542133278092914510933837230734571979496325883872472274140913542042035468890361381105407691464878629629220542104446035798594434853846430055883418961093102854606975981305173792047311231012471438445742505743749253590021871449953024504721582513305999420662281940178724611695782475150497577800776738351093139614873830173362848939707039158762986043991458382323723626099250749804426389615940142898176173303787356019511181595383631378871294558729841774314820541496667802889870637489197873091822493197649561925090758106220189292558150139137641639330223134111671477869955584998989814591678446488265402996254568707852636898865770567810878997591137897806015280403298860298913098985234972026573985122509457839796922198704403519057169727685974604449667281696208105636357779329085888297731431974042011836227368926976257167353449203153573086735722643349524836122206480668693872485137226097904198611593096326636305925701436652976952984123129465463412691160615715590173244784000337984593170116031206094401359700665849534848564080394958405803920788489825495322083732115129223195162593878797898200591606047880738907795010973088758785258299271622087222041328404404378934706735298938903473340589773219662255607862570655736264090359056447836139774098647826024890787472514073420462619078487495537884362292991442205550569006890172200331644803401373240170058408779733280103783359217551237127236765239003027063290235871880541087661386014561243239997719656469542970352473522587969680660670293909685277094007539465099830846373647344839376869196114599350470715692401519123432697999913775370712473553946085544451078924516772676907168348549253632601348070479738554890713843591862799344124364679457783321032698741740663787154634578938518268234027331034065358082379278509212037369188613560297047380627077640316822168385701545650934696493204915038598354177339374802152735938429936274947129469608655639587328769828372584347416628995932324503562604375726312447808608810394276333293478654625093170426510057079456985126350954887987550953611710245311788030613802644733317143625628659425720727305599583883253629436326181263021718059578582091166799633020381485111743492856621702920574084328242663105986319697884856664660044585237347954102215746446508682219239755276084267960812589067793134093262149143886146901543109810980019713170366435283517255316452238943470400610192396420044829196908257766187336896259842680091575881070120960078344331840266362850133416225901963876025838910833554326577664081072599573450641014688874950649296750852025069986545636602597132780571484437684810627691185995608779487897834831596798798616249084249929951133213750393282842313892440915959609766198690194929599942934405012510727608579299756428071604409717361095860333558701724039262096295646748046645045973600842201780229166819532539487529071984982236062221227767469007072806906171111673785725542893032206864252643962368799190933213569795618381759377658815330405304818074358263709175607943267073134352683127226467932200185141678712773172670716633591430381946304255421501672147142682682116153251854919836931986363689905061870629207244467574549297480449397333815561886750711039872960243472202203426403662799523636335318653217604310973770569553674048497179428151777814055484451601918070298171192227274145406937620581987620891327262818713927895964970450818500194537354572957309491788106028590913413630009295467710395639669452316081461421659373663095966671985803511072040616305691311235397406982066302789591558379900912909200241182556451844202044275168508092297901653411358388827325379968753847437946700399149013280033593541393464510339194143512968559536608426759139670167757265555296890867314261230395289868827110368545270877066575156544094706886442801758491408462280383563184568676457923914989443363772844335549032532750675296760880119117749792370599469658749294779485065261631919649227185393823725310873287560098309027934315906807012452388349049365687102836147766050509663798835036031480490973710621598513260748385975372223348495261534272299405120653520830150467363229723062316038231338240631860992176472937039991031970630651355556416694102124420635046092582194702036055038699693124105561934327202217594033438695449736821121050444126814791463571271307277064309695457140351300952802217073140622237772117048739552155861759646520733182098783109150413773542069398718870363194634000313957759783940585806413972774036468222766305842205166998523739125673304979515413070716728488482619980274778289679635131378882689475169376969109033082886601671542587799019540149994270625417812906234823700891347144444366416468930539088269065331285924102598476399757005680343216727013693543161931812847588773656476463337128172109007441029440399672794876808283329890932489991542720300061057152061246763323887681417053304938457254042912133300013947676571405192337276661541943454670556477783125845828643041879816681940303242292513497323772133925927831750002773711098778754825455764873085181382684772240743797816351422054145666499677845371453990987782004585314446027824903950476372384905284831259246673932951535101544773661284105924557650287876225074639484241552254167545560232194480146824674318736625699547559604923312811193142906321145628555807185461899845968703529178963314503114544961230922764206824799259259727349856115344991721453637846371432506020120602895912320717573552535126516358924473894060232628794984696408451347064302898878721902991263669967610099606606700664742252941489087761884071361315786118300968843970631723404764644264301044292017588707741671662911657086684194576767092494384151649755996900310256148050628803750870875591236009527508257227151260928191346850302841205450065558035790179224503180533318633075338778614082768359648563682813866887918804266436766414734633684300558886043987908564728863087219990879561483292891893165407809932931104970886660588245508617279964876794951346396431073676039422366686572018333163730233118030067724158015861860317444075383409353395982346197419905547197648152203920465291290898652844451987514424016084918535248370220605909420388510335297070488465083038195985639285426695759286625153172310419075352934636585643223173943005774248243937077801124108594357150821850284317898161802473939087793020452174242978482608430676986883517831369288617486799860413288667185684440693010214997730006056387648183042793954817691465613738737097203895780964768775237091823538103547771558217916290523671491609336056418509436283971216198709763617576831208156785828285724852968727620044597023968970101521743614348602771327240450703124913918076877909031913411579398086277132459566218515523262402464175760114417061805342069213153946628771830136897181107149181179368720549177530906449807735596066484245874026014402959892786478812906565016823466059076065163899031583784417915571923907648380197452139823643997415898490395573758624765878793058808166347439415838664509007688823337830490975471538431039651896591055034780215864353495068641620422322813478618684264777350367512487051700673757225828580011622427854489086214519268430407104698301845663211835510758324684224590914024703461750970678603901556719919610197890687317334451160707745270573911480546906859336470726807607285483239700390717761563834914077928192620378843192050174995576348535312380826781548457202247691901153893684840600452411025403065623527029568902584066454406995650390088410306584733754339102024143123375231051218571429399456730950659339970710245912206284159672298212337402538153591995113895500990295287170686926414858018297568347316751626768585147090289517043523008811834287394171214362690878268196723386811538699382564753160016402262275099725318952676733519202830602803003984220960164114622477477550466889337277255062337721119075802096311615110127235396546249935554031410634948815896865931357269261930852126510328922863254328771621675184923190848114470544618204016470554765244852556900721177715271905434231555544079178853087285732644634908099702197692906871726189419877006690202089016332576194588269204116857798252250984399518017439819833873538975659104889023520477719497478497937502279877920663590211164111271522526913887888361670475517207133485249382933896929424346317331096505476614673908325787166976399083374125959359123376387287969334372923899586474197462305414402217497441794207501888393387255051231814333620464246920241335433936842642315258084060200592063745854679345263494416622869742867864793898728458287061696054758479791259918480336869819934064954713593081925005755037755578518007106390699448222086938489583056282997638935661867622589489087610099490286330480047677737915634569534365786176551171495971378561766498910008210729936731652527161821545286087424823302252843356894171380672033272783971252223870566357406771680195837439159233533598332301567965449148608168052287698352390798141771879538490529157133781174928897591502289333442442348295252283860030193854717425307838732906060710047715990022509619415876748835616497160439797497858472365190421716139739090357436053061654916396292776640883697637410049396755764728739426336238014062030176720791322110431882724138925784267106275799792950028593838312414471563781032359728604909956503607979987420522186429450891958005612617263957485687830340741519146930528870067159925396121213415733473014709919398689347463754912569043997812483160285815972997229517797237835522345375214768723370984205170787885996067330971316181470533778509959118447031070998341092190026429239412519130501998200895703705374871332034019670213283548824590788056693509615303598760613018796941565985747556132918940868801900519444786347947479732806090133964146058921197121886931661718128471301383342467197408881466652434390921577679888580209153249303463711716419136549266854375548064192603338240589259495283419238532566534553601924150476043503556899785767151124909392780885537313724133261120064847696989253954848796338432041636959468148806150083267246405512141028123233565109830312654036058216373718762917910099398415508955614587784695495227521434194377823855478292985019581293721174904978662746987678947514857691394390681430395939702621956335230199994252662314088362346823984555529105876928909294691182308880170497410485434915043936413417760185522859889365651191672915198913233764447301686105497308695490350583491760998792925411459219579907530238331877451916088190335567316736039467572041212542807324834487790480354021749741437431583717630353391421484441729850341433096620266434480489561326748947505390128369956950235691332708475059885799052068053678189870208826411255112542247122955104916041045291868134898360969440373145110597531326190060698213931244805810688084399840990998479552956942524834594847215774146396181318619265709204327909665741158706876095089129795566721874277522648852870075769380950198168370207245286359778042417043687998785989574963392792985453857525498934483893913048394569543277762711163906077558462195521115950600128039731690156239244552047516703842091439387547423314968074882695287072566835638296663437586446046063326526216873085877677930969006679188888800781583995264763242625056737112194372917531980817185475009573215186279645495378872501511969130816867853113480523720076069414207611612603261335891638089988393031195369154704759677251405641427425542132049175223945904154060901122403840021353505603369590666223389825105782943336406865429627821122978796725540158775924004103483747255582221676609128037690176503204213293359378803063431497099140748237568580521094428720419931795549612637626552203932446816507383999195051443680637317698721765469954080291684861164734095720960297978491191138275966683047609442962725613490420549935351266184734144632984709644977779746986279189093256571742495819620215370373858281003037217279284132404649886345404322198029361781284684551083341289812288790949755808128585102465291339137098171683350207871204566805192268266624952946525048173393908932991026110957458020858799546690740806868783358393423192397378903420650009859528957472063554012336807725314488103560491106368158274513358493881754731953622200280146016901734963209135397895294888555209428293720951988094339762848067601528531002629687083854403541029493132892560135933849781826339627722281621279781643329116307823299757736059951063750885068670311695470211814262543161597394848770355861762071780768198850796878027118173033139297071252265113873436299544153390117046456205110201662515107488538663465396099538900505602108907012010441905216912098339649660669777133034345867164029881150484700864773744760194664344998045044463520223856989238514280500902300999101443212881482971279693567691428346398199815875009898510825317493888811468266730461444752586669970292955986338157291995595882511196985189120749655140902027606147709360974614722771069029281288625011163796625758091951251688601272914567131335240201592812796578886631348770791040258188294599159626047197010799862501997211188621459151262530446826363229776150646342481180341600166521001386722716563007797545107377030159848173669816550526916431243622021031851511500860487870445855886098361219890502409843861327002617694297664457081637019450368800790585226126030448236266871990958190493663678191142017601838369751908342586465256801914333108334697935811418400988487485546300338522657673117058276394371326912796701077842257742085839997028509765716542943762515737625373287439088822724362044287324749768057119867948911037833335299314031662214292671087480205241019889651505870441894885848490064718737226677365442172546533823359583166095839201104771259501878253199705399655997513210942812563580414629882145680070545243620999911689821960392384382657444120864754882421136962611331643007467947643603088922002274184556115822511054267497155149691495984523310885372041818023819306888409620085895907505373730471351244368787708250833836410320058731739180541509950381252810270164982112223876481553438079219129503070163732115435105767805075052094698125364930141568110497143168171248847746119599646077328623686778658836229885564605507123815862965102079209587665118037308025499160684360380909991367791477766985395536369289169489730256080651108001933136131008635870783772382697688890943605461648849650267866600473645038313669478323484988287289880657098933933363125675513038063958015665310067870240230314763051402231617606116443019641928332020346358096289300339806867424934566687665748295469728664228256343929039055336568971180364645700966895506472078211739639876881659182057061443703564202581917912730775493999716299700055175253697630132197925525089459630063258802927790390593295718166345508707621443936179320601612852534980758832071642450387187103025061881524621661595897614315429891364712148779369932130551104862620043375707356176403690293044365944914427449719203294573259991733698696409336588812302335387981611622856865667160576808646912079636407226646457850803988263490473942745081711604420250628763179916442701219360807546809018420021301220555937517104336258411469188334109323984430099887968718604492786819277763706211877281578362962245042261353910614436847887750896358316638730380571275622902384774348197967798225422187449330663807368582423708185218112254456045158019697586154280063709685341295977031899876049912438066168411933045695207923618065480413526650284539742477360847760728910204700820122434799135417970665350061225834634056226521635372629712474752950984252701076244602651927787492260075832482094242006830562423477481203324209728657514272467089287962938623897008850728476413563102123526607602813352344748199970189448213935349489845567306190248556337248825316822134182024650835052305589360465880280628021203842226867411126510662638666896898452371240655231704597403028179740270724072680251499413412064569972617192059613640642331979916385850556228757384040051236286057660716933847060530379444381077909582071017075929167733641604840590342176144005515211983653840934105557510044320022213395079729909351033925821154386213336447278083771790024145622271433412286894311865758532269251679721125598141480898485721150264044569815022119159783648965447823716683702255855587396043676487481571441122930904082561711812419965490587488882857192221173378765914463591351741175439623389043955058831880400997276616261143248106819008520807508369645123207820225510176899923876876497799899565907890982717380689277538218359188540156763160874905913235464680417168504391308137424741980113428238381513170753000762898308226280789670935632098511866855878621263065529272436493195165403991351647177810628369295085942061650542913624386305068023577865854217596288098357760534369828790017156325324779371254066381086820224467710910260024961718719695427003055718099107433788671355024131089272207925081654502546526598964993186802142780990185425154726751330254105344139927893115170057306490586558883590274843102084876062094163380937139292066573261752490764530774806025414122301308262853665475773091950263139542747079744323554102360094673298491513889225054341354059859651963455863239579565315923156249381472729854657552616641710826192237587683799131912705915887121336072181618047166970525376640081217731625714356881948450695023475582569790603102949704172155138205456460937378824668846484505285616373918676199105019629368256457744437302056084158098255925233314711528771520690643468112542646203130790280767103582285502900369937350631304630469265184224547390658985153975406521757116001120559312973261489086689852281634096247114079194737877113836220892689451407681430619443220154261336182891220469194564186330560853084669341863236434945278796149319635916658655477669714869891764947219577312086862025054888171783199150842142665782572247909703987119751842854443694533637956108458893811457336407780796303284281636820877645803928463566673811428291158500525260984387679415109173531196156180803998911901508655923913879350398373253354621260112510183765706678905959567868903350472873402314250583384984549535795008815596044640158085614285983021573600711864373253380430953321447978933878696283899071649725206106891037776353691154848958323239451417172573508588783311154690046875278520707744000701118637105422922154097502949864499489464934680875128256922222722791089757367699635620294887452170140789634332571345204943419101908198534206981232116788411386996115129829923251827623369101323963178478316798050382128536724532018384663666125674115738735849578910781721726392249381407956588345534339238703580829353728970894122741725325212440380619634014208709759701042896971595273390721125817054214641725829853740848702410400177277630107249126873211253564873853314066361609387432066540515643545013901237583548629845374935381875254039506379990272042385765690066769419892861325523561288376008816268920418080572514760636695286546520969878136763536130534230400989908425139474731212680358633214337609991392093433270027268961808165762962109808288517891546749723725104878528729407958563296397961640934907258937697251465888197256541999922366820255007964642517636557596197255961877031998981940262363398448632005562001502950993486521762759499315346472915814355016416842516312618103021522139061908546861812793427926466174889116826306062481578906042804686218299765778310695181393329292573521669928987363964163711090301826401968237711978947774177287559450100332109132444521785300998149636171855280195422696971072879149220417966229531992946711930887972406122912484262320089668086341601629884914655690600911669823378609926190370693725233694815935926830495740733049951977917804625235308855724211441124544355067999023930718376481172250726917951452112075834103393757809377846568358422147142527528862753181283770605611651766727264350847302238971531194163954007431145016823857860682882167105674722058272956679001965485234636976358724343467552290621180360853854877295630045559680165103588890704122712017514186514819223168390213200863299897659048590384918425563053333098137398054996953157231129541808289348666135722349094882415823518542087527053070619581191080307431466155772507334522593558167619157227815425313720916209997147407612816690122392535959322645607436168426626227594619855447999011249751540537760953578811297106403345750383032078708197554684690202728439126752815231992272841419515153486085782759165411619645536042216667121956543962334178133023447256830383819856581592180359415279819252274560374253212313565878669595436123839739901217174872295069224460885806469099462345611911153602093240863865269573393664210795286975010638184489241259254898919502134441838234350957201197506547096774488467818069917659033354554573361745502169184466677976385039468204342484972985504457271798792035922180290973051120613554950608114975906986580800676102003106474340997657770426192946636526025600447314641754070481986265645688662166532730001402646193573813613142289731340037909987648197185940258627505590862225878901005347698013904706675470711765869693592434993410205676463820330946078364761843669669587240474147557775187799791559081850116075378559534614555445507277488228458876805983086743243879911435448811793300607554139398727997912909755245606843431117724245981870548162757279142160383635117853862433497663421798651116276355360210995419349305365654104533556154042814071448498650852028748485808572352996921677136053220861247162085112311951385744311818528507659151536201497171669012701560983420802057257541460231612079636287785772195567544104613331639684468850561371915008882041368180176856103111800271693099021328544067208933689434513389960513662430544409276435660788379807606707650086971211871514667492130051616552054475306404047195353551949226273409778678687011658913764593486799913204947777704176854363464395305998003340632531085101200139631374283128780718609027804504890485335448576614648933284607539733248038142339468206309420887606347672562212391673700820722604077575402024531473059207854074541785372549742129662877715256608813448671429333699807619367327567772166579037371267405064689831269966868001274906699940395535940942856227084802246917320251823207349223902226036005206076829333168565897997851685213211614018416550702285310798042936613530222881839335916109770725383380816783657833296799615407967106713474846763698161387825673525650767617966306212312074191945791242968987972588225385640191400485887794279513548314568840599436561156367277264287518312049139220610836482667208986933086307748679689780234691402265947095383594569955019749731806439614447375734113218680394792398439314818961543903230232415559137585203923124915078392075599794674981998130960898866395919836707600239140115024522570369564925297094235003394692541620163420218007603985361135745452910871099307311202267848604744279276845259658235019651999733865705539726376128176512054346289408954612364482481665316773331987977824542033865588369129765954105538864670335769728818929386135024259310651429062381670803160521869081421446945349962236476898809641331829681639330087211713727712313806297974891932780133566778676791991577436991812855521922035711754944757661448986634335904482123558180412897303576293916115433963758134570658778447928664336333564492802610212867586832395253157904946738675063196448453727298225212410216142395779363899976929623970941988676008854206181441205409170583956584280621240581289481565034738257170508835220352821324303167707511543788458205595860501046982578691188937914418091651455432221312939138760731558928106575082799314730849825440802811377631152489978928914058346644266234607297749479125101824724748707704860273920747311665725401688741400174583862488281373033465884891576387182253939833285295537146227098091114644977696061621226582023255832611690131271925255837825878198222144639697166861201516584832158535226876025219015723926166658498963724608595828950840241642595252745660971122988911954878739591582422184854098468558994194206346134769073046694096174617285334775779979536380569777166981400281335841288573870928101053125468447133000237747043624326530449255512380707910452240913916544488883573510084970120011631356181981986931981259270811172079343988739307823840201417889966386086917409572447645602147924314994619902072688442243219647020688439564512761498883462335372921868513707253677041512510583982493134870205039482610867239672713678161292371812547551018312153412707491997169878772506982129416372146870122745753050039180137917862343121041249800647010748551122215276867448688233965233552515490564087950050688550151895857271287391988157234429115673292482574099526684620559373206921282557066865809659534440188835991315326615553410571979289456006665962970065047415818472740520422425434641910446734394292118863635865288338512594010158616602832348544509407109780680232602417016844028480100775061783779571514565871518090629149622832475521595823453639937255166817777533326243059865810135699899878006607752703414372270126810423171308644188095473700817974767995826294860192038528185689903642722564300986290070069501363524413670974562254288768723551991488701306428384687654017773840181048399519827752441494832208154358917322417014267906322695812603631336304347445983134616546809417694638884597273706652693127671249278893083609948496687010660932022868495033330638019711592223833756351756757954368277321865987225101731010514467741725663013072543922927450412991270301226633271284794735760655105880064554045425877111613668489919291270479727024377699448084969546838723676021689685032429732621410483282434711479360261736953493390839299375617889929023532698229555581767697762276277278112892949846220239106688835885233529757320097061307338025545279531343654526151920201399212247333446348722351772788344358452540568507329042725446860340502457291191634281458612121971481601497930703701798072636681738185555904301138554170195588779791377411964166388025975778463822699096374699701446420940607923381554447319185344790540890407647329295749213724573397942434246887547959840182455649407154207381670885610318543666985928524261841388592048790329308447939340048585578214439685776245361525856325108379558807634155259876175819616748419407354876673734358405454733524344687375713967946793132595892807608170429287632196138337333507956106363870342089220022771769016437356640115499799786082961208099729472056175402323630633218419504901414289197126365750021200207704949911027085115726682949737725717168534225627376989852694798536471835357188459961022046781046652370428824282599463904459986845903233717809264850335454886578661817954165359756305509898384650320199808463925619903345392513403627513863038075065652760110327321181965394785126610962853496703349160874505968014838216279640100909884178897415919829512882700309717173359995873604391324456944272503152688218955448940579187191059368634036895381140446632705116690114191640996414343936217017085584232643692419464670856617095599579083718001457625094263194071965050718236862267998360480438966943294883172605475842487654591226986147420330644598851722847159342601487174584315199089889559874578297546763614650529156218689637892784013633447918617668665598118623007388172523277979925221516470563137244505091610972461609481492638833034577523951101666232454491649849008621205633789044297456112238946031944592016006931857246503754931688889980117344012649856004151627687091650324564349184250944220841480602837770260575499985555577301302131905513750398756605533051294161701267014500342449370298581935029114699947410703474429598927714133877871929848317981067697527433971317993913687002922136148751386139368160994962288526923072270466803692777007392342098371826296286338668028367833145702776177959003573595224957253781926102013304363307927251304214522308366307196864771704342614809309663130317089493805518763428383436824632480018919155378231626031783907659910717233516834446841208923496735484417025891988211510549362583957454967938844362504702760589261663867403934483908476777490017155063112619402457612427836903300751815474626506733634400107441501763732635977260920039317670202540489841129984254084843786151196773603236654580268147988693591711509627247767135877283689294507133770474136278261944356667373678398538243012790888876050549602905607758567229143649269474314305319851877867580906425205432028174129869025794965935737058760540713376089762049367436267403185937700779547071232779950571391295223390859176187456959584163972235418624134697570344727225714863665002802994479682219177770140695819539248569759956480565812917949946388692311772542408527632074989829811292999179484591313826254598898715933192558083566869463053723784528975521837326243604530577148956542040150223804030009478631463027593065976032098689852010235282314386519300357740609100017722769297780287219098387619706776870123943908315130057318602697896907801909216909021913355289945821110195330444522020476729520328338006048309542371558621298166659550840810074074389590673742102322808494510074273928000207606980665056950739822440120604136928962738050802022849804264182344626114792933640750818856264378105140400222790757768195596242444005476191033424988002435514163079633658649268268419399537660569235842611591074427925739750508234845032963499667502543123128172376800822617697992296030780415237836322223130856202987763863394517652717392172871434061034308398274172140576075958323500874334660168354521982139594327852945137055118038386189534813245175428377483387227328985599627252209248073254988348125512310685226786451587979332689325808406037784984312175487800413435452039108238892091153731867320649062680665853083751747918670621314081465030815440255857317713479358547142378777748499633297747144165506925550956018262472996066768878020786884453723594629361791732723589623802329527018676742709791707047691114806597309404865553252055531385370128172648138030013716374205284749210675163997522233762126899094393224903486971558785062962748191885622578077337108823360317246444023664729389759502786120014747916150939546804510815929482001610458607040584551782914613173393167893524197835564837917806414781151729224952940497371273797714986096950131938872632748948028275152849074522175317270283104543788278663950000063619851188583761543433639776512295731997071435073998716995829508842456562669360852913166846302975927298986984994687368244088487581482553670468254711400793036778507403112061311324930649816761910522129671082811901125324530360651872062661040299906430791402085667293403869755957228715525974455420703901785375957794693598694908537520870432694849231737860506176125699309540496432301346608825006796228711510875687753544955777037779418110169013035753005709349238490901804720548008385330602608020652182175673394083384173930438219056260546165326837811318005952954284405665318031179346299573587803587505219604373148098240375012922630022203118786191309009594075027804796888363274211652125372504193287557108573654875452079489315661384174721768252272624521622005820875266979542048523126245910396042197797737140831572704526982855455959931911585428985670898785905626422138419499692699325448698128247382593136077561215012451422845524017341517109034891866321420907379126677118156101151296393110165684492391956299717361540207816189498136253275089935592138018512119647923178855948579503011753676842349318044733282733079352050149446095029058063990106661353393073588781051881408142473652237429905017806421880082098188061929037446459063971264689242386048410502917360868291265310813063716055602091979785169983218585047583086105945971746023423069994489270370208375336776388452544599313995063289476978073444333540620915407638785361816356874184179831484431267018115956592471134899872291088196698460895028680298473573181896552117968154973245493221995800972825305600246270348596125011639654502614884489973081360873236309384379846401641984086435445429457634831748120594270648603550887083364768594091113168764673619833602141971268062966683561478085955527864049785545557500698546076697904752668745727161151877541089239056583615706521875502819629102677223711689243948324859436928893962498466267590638895068146238762753695550058798542141224801164996557945217433070651216494533697294341168445490018418049195116766397578835648654001759843295829855602290323559631408209434215730308863795968553983242514783216249365674405787478137244200291640021565224610817928809779845295314004528503835259668197191798743451886915358420131282053707891007090926850865127924771113846915165931189159042995166290138595998272122704043942876220059749665464357405786401425810966371309516021218316341284630751505369237527059882884361234253248470130947120265186820480434179997600455180779102831729102177327195465905516779104351761018995092524977941724710927127400210936543273496033396192911443896275012703917615120868518820060253159971111996292986781796409223154123247328122620300135295671637924048113858028430031388568284338036612581798285353336887432333382637592418206686677278474913611076313613271108867958523388084989771137334472602822770929676255406140275189759982407483858562055742348324650419160903487037367250548762860741416014546361300608177433064683388953961778944330065629903717428713043030953284881626142978713807897921029173912425486620426669172775701966456080925680639810354517111203148536036545706831515749064972041832979236278641708870408391712510692210990976853330415201142871909350025880767377946316502276936072559078687880619727427540258965901230931960658525044243681493849254930480792866292515437119921289507453473891150882618684485685706327207924222573048288560358024234248208158048131607560450730013678956878475791882215290353209527489632713657583517504939314073031953977417769803403115908063820935327417675234275386195332695134043455841247142587819806578702308542044680842133964675154467404391399855838214297665537391360145754668008520646114983677087222005707957805564324719942318852502381141033568044501143096405155476529307723506955874151818123747548398542796312564216010504016774061398865682325916078113975220053698415559261801994255915535380093435875177454974078641440749994584082576352664757323321088576727165738052881010535164480388617210683910339505005284170726466021238147045609280799721964030023497373998959914369038360950257929367372082742732469855407228715714110975323251966199036483620729479376010849692579144477375770554716586337981571455644963171446979765114522820047277927386429744437951044669204345337270895187791166756420046441672157194537398085899960960970358325587289397760366679830191197848300895562528881613958780246146086673838344670059046271397400844573462764955271119593826375690975974706415542092681836454586897609934537778159514916441260877595109824772162539884274550469370323860579449123208562971418206388605891028857274924453940529013212290450356710154330155298393290175559643953817845378648288585165962616257837587437965421843809235694435599942866103209924656011314543378255596773266254308879063154782195361524362522223478386878848764803751483063145536178119959188320723594809126093865982825593725421438126550102620199406351649572707974170942670828163124432139353882860082636635387846295316542598514492761678738490767669832632705477242090565810773693186798986995521348273470675961974793279750901377248263823151872539295092424126823101394059326546157075915765944666160078151458406078063737926935941494791514081524124829475458482757878755182878644285241369781687910894421102482996759899630378501675730799548594667023191815552297235254888833882162768216353860303169929485787964186115089725126898810276512782359882002075215196714232211657620115516838137557017122854575563153984218401951157062021503823690170219001201975777238935523368627661105536637742332006889165217525504487716919850196552766134692307321425898808277273893764791617004544134432350609229516458370469265857111177657665019552740217848144611468527870392404824180223947408989845952365670806032337164966039569233463379020529345117517963561345319978586345100442887386985723712977879826993766418848555852918555496856134653068119019563356798104869409070669230910807539633986019897839568162426986665877384702326276488096179421392907456511613460294294698584891701575660424180685118933244655025789663471464721465514458506868520228203237234643549613726954792199028111323762392566649647492107689062156165856176812269995018505851089359844389224372387800756765667493485326832880713832263085819781510553647047834982648517964123601791153328341405600716500007751244951112932892562699363600431017378327544123965637744065833016364065039156028391920330680650615489097190381758828057626549924248306027777924627105860939541530153650757639623954247931939003548933828565444379014129592377159146684539404296833182803364490304522728261821264584126531216177053717608300462752735932501665721275924067118882724821860440030023979190822749091839397178668446987025699418703795623078813708719191411529109173017604239106960184317080632535137609645922642128267860063104579224247671237336852231962958520430357304896326938786521941403721689510057864966397505592318377018772392088315549795729619073609136772425816960280591952593104243890780121915704074249450443107639206929609916729179955434213445267852233076226330346791410560797301631538033859120854920875818393894254887102642265314005090294895643758508327824289748823475629979490302550411586056650336118137123046176210417143069734833151439808014963043556932545704829145631366593378861998303952776464644008160438925651551396339052110188802552005836370639754974265864486879342048462260305076716016928576082234152401139653668385046496198292452906525049793428229135526208204497579708691289802559789791695927313546332234653707055702626458700875009089354022295778400406660377975937712015139950965363354651287587110685401143128750419675268236771264640203906428643946195702638576238190047114924627481995268037672969757448211886367753305884587154384236070258330006265889592455296453000503818183052482369943842830671355580745940255813586016095551489105191847880321304030698231052040533580457980926172443443825183195238070657112961900987165316245398027626678775215012971410266328221539949623173089971001023100811867318838306190863424355651060259875268148421318555844125450774473345974207126316566986184475798019326693621992586754367899491455852692287689447868419768936740986671843500458948376001690521725729556870668945959699706217734032879421039411118536112414589779034402885035925893645604785202806705528724214077460520802217469276362425537795119736265922921323408430530452966498347376872786608213940489890088928716219015793606447630635768036184861231720676588388934188859985682865338216220309719304289021607995003166238463728559781434945002729003500528210844503761540665382951085609357177776489789745428797223988306988075367328783716926945353189638520896064773992208040995868827711730830853423180564189998315095055547489488109387728886259889194536324458045656511302562229435575674812053550737467366794380550455856740321800806178835848399355661161966793899409663370890387785976298556348001623614592109260545319931759625307418600314575143544345826176578282631644762978174158440318910252796402997823202435452657028900393695028879311856256926913345761673883219037349027665688439445834575605228025486330189570917192636314983610919519353378670853333138921220685658763289345976771573655599327530378975084533355178975780089058303308546261467496543995023948904531667046258273206019648823704363007859960563688341115277527528576986999803861456082578007411231640031698555512578925663016338268989277261651084897401596233263688924093210527194638755039261406715025935315187231040241057817571640735939388001241198163142498882800595931976361421118103879905220191456180435004614477384833205993662130110619902498657981809616558853677520635201936537969508610636360087086992667238081801133258283242077280845979953285143880198298132369224217361271580328159671320277330935449740117899471589350825358243534734039658957187129787896053168538672491421606605733392362411952231811327716636847568544733510989795777579548453368924218600308611853101077912050963415583817485324106271418596552023852015769404221795397580998578943100233727685894201550509581096351514164234146664604595410802932062956928540973687916624329133420073051598681014921293912135619079601943997147601187769935922484465347297825337493140446152756673502058957385552693416962963065717791056962240103018777695417699938583848764849960664596633911298857878133115846783215865217906228894983658485428299206157224740850390828119216011836473268467212217283345675909415412663899221203488763981214207438221879845593736007873722229110113554826571567808752914588247499903301390350116978953274928046945119706946860641649465438135335388939933003592169777075789052814127449435569285232164356309897412861986711372138535495552254883473929077668185561177592117307970948970000499226132321363715776282322280230607465987599893839633870941143774562874871304502183229603585399165800363540280410124576883243427252205516770421635527605958444932112523007578890059784631093477926626676513778786606049911440077313549913944411917925937528660308797570891669250091784056009572329636663934072458824303265023148203374387862697321849421958018741245190529747695196330901593143637806207798892916265585612549915730944412568189522238505176283192960195065729235370684622045907812616641452181806404151504680177289848082403857261431054900663904045524838144196029895198160910935787255660607105118341042679627362802451511176197372754399959169296056945055314992794162000649637061248368711390196176734141132177404115286295506187377799518628949711107856163978309171039499338791917071593573090930889267780140014374338957876733626761633344861258503900380319381297383271594109459990601252984812098138820125227016490662285904565947694843545058363577734840093701150034238085998231269524424483625451066623868547216523469732942818598924537916852867681234708770520223356573792880598429648354974016764102790467475067092303182547950693053509006642950829120259779479379213016700523601277402840351588039162124843137281309789065417929593404318106774356919857133187950798415545675255467896037670519008867496876605480982022536346198105238440853798261291480814569893429001814759379622108749327505867844627372960587354829544722339503842600440774478866314759803133634322798885944303175885555295801301219420057117277722603094431630614205752595476580082533079853480705866260512543306813350267009485685175918865819372252535055771532158928935737045193970247583766168633900777898753280573189800407045062062924383305560848999362294434010935403073614248219754436452711293283784933931628435396523198543443076269513107923765195830541591416136227560066944053593871494899945029398315991359041376631600230749020743380566794984495975668616341583935288772638300942139377309543262365322609565185232951112479890443299577496902062480888658260868021071621533452148113505489370012325822168978288398386223780499381317288924067454249955641837062269695231663479189236286956869469606004994803814300663572447565140384766467320259344705409972836477937299034633291993799466949338614127879275133257523467798278239871423722668866781911327450008994452236697379704601105279879020002457071796027446953521854346100814388854823232704271105600491581949712762735955221424582167287241495692344182073938962222528769170797990847586909291056526684927178622949730464535089016269642974325153719375428564042736350223742478378644899644007906467767234166385168854567814594961189009292926067746920308581891217372822789525988079228494658306462297266408707460301766948190371516881532380577243075281895509875788610771301353438678675280515287862454360082173175028969381104233891795589873679415251053065179619058150347687904625433131358423338614102584431593678404705914333468109605391439858301099295740371676033709069628960006416302782334959702780062723783225631268269218973432828913529850414051629336066013113773245220908915497818235988168318185755472911776205978336743002617062748287307699442198220037953870343314870531039940662545253552756077525687231054220476345785927812239587723645657306070842157068973433540333050348911430988507620701488168900733056737652776263056192634389167481893758523981903008512443852107991333032584903102069278059030753937583341996047041547116212960104303750945961746724203582867918756635387483928494116375521726210349313010001995084625283734385527933228581174508770381725408857868301303073831899250461055857371119310349425985442413411965122911463697600781829315237898178034574260173357896480726022356655494889620341344297177087283913594634385119523948675168362233759959034467908514437563922014457632283552104866944960419787961280856358187900205250843623058695369892709318306039995300178824889957986088211552222145562131491039919315126967023146773760540336545358373580691192566701129949560913025836323404939562386947390607761331908215558040961166183394789505216829419375037818106269402098352440182928008299690965302906101383409229601861813476650218936202585067856310476623497970001746250683140909007931705391572525136903264291147608227453947813383691401210900414094693053395680426390580870443933745764920507811743333498519526267004877438917565965751514268500587982129357466782269460228819429138385139706313945537142611578298466691839135724586025768868042833917318225983823451130337983353690503268606842785194592338836376722928984211119883224496964360277563574689692482556444122882760744002736009075559063289721209900428414002990974129639518534875414101704519730412485738417604657680186183658095768065555688625752884908584434803960158969621564956624587137686479042346101890440520974414275714209294848789311819589615815399649077412623828384853666485974286744923198024295574446281120775394834476675002695751982716434165112856207412092752558033485072782012151713279266071400490179376263080981928503421784716127766698133982861526718765222083229583825382410779131896723901487952559637583388110580128308920366613023449290993890618346648256591821647372133534954510396235415224487873073969287431202613802534177482696670542664070135885685066287902109570549176733931290952219747018494582782138321731051623246654042332589350472394308501999992126822968870714899134209316820427170495486127705559309866891846308824260917864089549178237286911092963312908744782295536586039820468311407252551606871058248793731985443895337914915488524060761189623861346017825478851652688307622341551986402757355505169533335738363991433600357395888653872565690722342515758697404729844996443443471330472915405133162481223913612004668348154090002709865694138418597895479817239513678028214406829836296707607759483095404809195466851274050929130725982111633888293670626746244894421933487293374598900718328217653768019537753859781247217813397783391143635115058891755480008536829333433746134720295671452846729841297602701294313380773657628736590592055808061878130128163921920591083886567540123322825570832640635293597695117061460880998551869323281489691755753097968517827673885775254313866811302731694607049891362119633813337474674734963980070265322763438892646817642213741807028478114105742221772780722340889847169216803150929116631318422185572674940728007993032827490873220948710343158267532545254730748290523137797451179616158825710525880957756745428318900511107480205248280823075647245220949785815633709758040604710051118462085096329985935212546275131679076123678116496371700827341411029434146608716370243802039749818905505508376531350830775865046036555222156380816498043579268364550385348850553362356970978798459306509225286807312753088578956101032709576640388911156851138469868361468599582974333827030941566100957732354664823291593637169732132909129231696683500544244216983160910089520763185074857643508263760383994787323017024490345281436270388045432473868196323475603969927422547240227813406071504075236317405627810430291541882555157581334622192806360853699585796427532819999636877114285685827733063254949338871152196061560995801161368911186902011360417751274261706005447536858781028844975632394464759655853189731219965153128922536434700458663358851293122078053808167901899455354178938939975702452633624326990976109131473296596674015844937146122581521531788769525198228086161440934813231397087813567486463326275704437885500794545821137090282392152816769158946022466462253572400353278634798572542512258689372129075382016676561137761195880695748013261923843566166385673070397637582170476334488430728157382650053879912683227076997900600469919324655899114907352668762024325773072094967182097393365503054580861132843112393523125410107713721031594754473813682656429495489460160342161081304543743546459833103408936990445754273396300050559661488824377900548453125363699194708861230800476345010720587927636311189792905084099888382298211105794381061130578674963019994364505125349459537817282002136964945425712687218492580303022603518699288060329764437837154604165414283145270156775128111627765040649923617217884233941977196070747698574315410916633842108550748792004380090848861519323868556868240602871728473312516980631705897860503370324464169086114531309326565094220865853179597315631638691210843047734582723154997230040980221746000303597054645139688024288520336517247551652307266858444735197517845359410457929704130511413841593594593767891738479042031998901257463442754900688910168791615222004093297770853539836226948505166257320494317467014226358015839194137699332718410890509132422701921846808987138944256490924653368813974834616132887179479346306630255180564733012170621151409255730124976258584575311801247552981547064143585752790752687284188140647914425441021961134757061153127230352104450072504801805695032527165825961269434060624175105105644944075850201197260524732817717143492693113310002941845775870598549381298639046478407886326536429958875159102806499701738916676112926811512236873032069020157598356913848896091863614879934697230212558777652332368263140949455165366213444845335202853392513437198506646925179290407762187700189824114518798839485234768566112285905385463734793169141057835713148952156383172265663702460798783416714493909242979212929728723198329221934633447047463535633854848502530142348208719371506531670877244467782260404665541906265997004585982306667334155065958710063396007970051035713582130395931702533827032109935278824019280268394180737934897565487075225514977349101174444543877429257149979495953995638061032277296178038583745774337333902835306112919761422985500414314378907810976714760548928425432164393380857922083061834054550904085098697911554305658028861349506117899633364049715818923896178889023242586141099640598638680532909173364962335582798674191701730561409547288729699577350211730313971839495614815979892526588821162272093408242219329742460214071158897924577792034478774255916260407411966976313729964433621882588504243836592559418259617953005517244963835200054643920186545823802043839280107999155687269203224167710856768842457579437492757418456578084423292997907915748600241064823996435266360938270057826615243639596714985985206348019625373574822809732097592117410793327437947225368492738098992530426865710125007691233705287686230945120507080583307643370635467026254565124972841851032851524631565018313604082156059128550954190761108747800725245370602249272556887505436955280140821369197488085342631403464859895458945072466213112777893277267076541562560207839039346720754172906924924020992916038022143210176242661888255718223164817464330296105353291733772750070170925548222077305341900323424374255169853729022809978816091809806460374367638028121074785031905631177936816550938633960210866100452375194041081445541367821362323981767732752532830472978495410717818288218210120010009167106163804474134459395447656710670372497441738985277420841709717393319185766874247897802462873251640354404698700302938819265276595637666899382671970055776927620036397072844623473421930428030664954037241030886112546998493280857369357613661116354994762187462115127230032988063056177403116446093829048563170204781675065523266095803277810961524889488250579294246871457889255908068953691328619655023753183322459132812257261374833495983464057121928602789168041113456682085649928803091186293676664317808305504289390728672509932554235237958153140281744368960772382320384579929484325456846894520696199616316593932975150604511344612371130685162505943938796943978723210250110117247223322056485580747653907210469974263250707478862572984115296340276908117888685050796257089343992538163222874175358197824515752700563976016805900918032864094499678394754677774454226242066491178545067374469502459855439263815006941233655733995172845684275658874143708020020095340927959623614797413603552657129004153702285140411706503904235372799299934191818237471206672985243019253988316646939151731695142473302973458386494873058212228992121299769532289637413415925389693300367498514212654564684220793844467241441437024604473045443123363547577682240087884730335840880405765273520642177937415059601702707685332757026676568472924379506724945162450839574283967554151855038923588993669626511537872522514192804311586195083255903557662688946670713967641929617146815684261253351381933962821747703499945062535639863752438363964793324103409133022687355328716580719900708629269604905749125812453798849781257207326636114861672359683429721859130861085001522881797590440423915491392639939894443525060388485375243374563143233322836871842753540482658050739866765252597047957720660225652546135148772353257445677127603540732500217168721013671724873811144877088943163758200551148034184397721772167129368291568919219036965906313814462161486287584168899776445008874623952400209513500762692614962472032333629477732530826394654143416205279857597875117683769301420680669726836164591456412801334274697204718249433679324986025834263665560844914035422042549514178206413504055290025051004131319986237396438386239766379498893860458943826664954083504759230183660100438393392228080347424718715624208540565514635655499565207588986841157667557997977859118359892938928805220873695313756005513990152936625396946610969865170272602914280090978241319451036800281179303403443582297911694573676620279900105655949932626394154032943379725757152233137731503076533846818753512527063903113172420498147662250891584743277993365862124928145817125989111820176974415360744421105687393635390133257787616715184449057313483635418220283972212255578534137978259871441249531141767889889564621298206539522180835292688445676101659861586957907552734271730359066478780951208564557079368731102873763500904807324634729016653566278210163178140499660133732726270551580680380982118655322754844933088424889574952768963965355810934718761517107607974920097792988148002321080798648731960361635615619551390669774338908356969723158398424557267335353608541659100974886012971004652496442630672896827236971792553221142457025649488405158140464374238373672192481661838871758210665246484766683304570536319445722523582578120410500753915422031767338023230925036534707487685470392837809132902702516705663467013840727887657371018761613527395301670565029980349373184557112622537749363042208073799345309313876728017722382965475999390919586354167697423136074869843742433716571833458147697446238323036968856743675079368273594663767085853309488652542038191101555957859131184530530936081814711526866442896462233611793948630813062792594747434978088446143155254479370112372571266782740476072590481491963511607560694173035671708619324499251535215783018892632299118388731675986594990918147856880852279189007505759313462433640974877499849463866212642763329368586319227168071775013857144309897419787927674130782667504862831241805204107751611682037671315999393322292132098081977521561132739126337102439324412864392259337219463985716755086847640090195812398928495957949644297586921610413399090782916921779194406031876528673689748119225096724006743921807960338883523553493535289471420624869588589944349617956762482954338676851104158668021883852677002149631473594085368966617257958116220525991037584264688626918367787857762859041274468015214662335781102214161576753456063931499577700512817088918672816961875300376395907456179537413703404747010496624110888891863084241810708517454464117796745521612986981982983642682418192876909396193026042749800687209807721568946596821996349897080012145651108703470282934331675716007874291806673211709883692041369179600460370732198006456417823063889726028549079163558062673829695943279536700934503195180919756766880913750117435895222985796882417253892271700162675430139242709714296075684582884218845802968281008867788882169687975032724799314250812010783012678551169910277240072478288020327278245654807895745642948261659589955842472727427288509663627642387060084075500536102985474094986510539553838261360890063243147349422379800895824368135095330042043624769674871705252217608137852338198570083200436807430825273029255101180196762813174467470701797999290840732548158339717196384771295974109762881935832172578523220037993710942120163272377554497614082506975508369449935664538133284512617493442377930502749821967555349749692795845945312066686335830683392275718294880269914756789505678692676333676004981093242507230303612212717738928424022830936151454754886139979626827541576477899905686098256429612919535623087452220266011453590808756991896047759945006981742314866925062192738067065528681653791638627547852920611581794099545711029933787015794848703552543590176354081529350097733306128587296081520405233095643388866337266640026161671467443221859357465161750131668504423127378817276906290508987286083810279976783644456865936994895233528295462805509032921476452635781203581871060993587451907359225040235410082586960515867624601264136133887139205732878930069545773421376219558538888066106465506888517746741793656883678442728980092550298942539911443944322531266881473252005853912432533181442545168803672820042423185126564480789552132437649809473801431009291376191965316808908846020547199291757343798482895737691778420958068777743314830759441806283562500278456219179461932873727754287836813545651973317074737789072341447133084006313375798282569979519791973832290056911599023554030838127030359937020997340857945762847262511723330307098945919907240106684650160273177784715942127454661424944030498479404041360649668068688509889780179631646556269630434286883256231431317174818712883880203291853664319466319698110095189074090409479785896017006360902317419203956816430184370087167617220580464907900565889757900456038421133046135173696475074570690103189404482716624718781603050976298634669380071689600533952133955972913940548428316894088652923373624419843279466161699318755260825595283646197023865037910744563043138988346395069104521681510063650736875439346768923094456022003281059574793708432347775824417747090709728567646996887789789474590883879907824876980826553108609600000687138955591927424128951471865746954633889439423627399894291100173132391073217738429649228887119734018189076480249595648748975566556892474354984128618992902252686691437355237977390748064562517889380804876868529672854799811709075840530514862367669947646635715455294192931416586627282931777167328762703411164851613077338118479794058546389963994013967023604166362822472626892319547226443634964862267264787196843749691868798161623832705634694285239203279837550785770352636241127522135174888844756248759250759693525790554849571045226738389067239379969451592059242366652108289153604903422857105225840694560771532149723200304111649013526219619376314701021789810474954444315893701458582305368832591280696437042159480329175705912493502290135202050093359172659739904312792168845325610000581012923801944418547844466587212345700897786325928872959935193528000350896832900417540829300356498046639063662731464838877820425723389773161667387494488221764294961684090033081323437275526578469633051567376519693720337243875804708661498747213643874066973298992736869459087349797693997033319779386886050852946559321804134477626347374184284401754926159915657871865448801637327334900564783298291242269214569124816639949589219420109209516654146716490185592331133753585090677559042692932289944864410308829511532736817912394839343949119836462975159523899995172161444410421523421807808607454938983387131179794474751469523808413755502949344403604287174535372953699851790389989631441380966509405484764984569805729004763021030528745665981140647629047058736675756320858118885620787526332948010849445376433295739237168079914940004808039477961635907992979069236011048822613949858812166919963601273539693653413930039511342656756905021959929371742024301740276714645023531259874081941781808595829646410295867906775946920724992783025475598298764008906269760259609937794402314766564520385130187925225290846098207973010562880072844584087023661104155877658857017009110597377094049746594761850257950363097363514402195749338509615361449063133246373180033323747619099975303899029009072573520159792929740454817162327258779951324880384978751388604425124600703126239109256962927387165870672459325303140154795094876978879337768037120080815515921434297085846922061719846180337103872521465536575408495673222626428099002544086387469397138241146299105778632580236938920233222005573091813302559406839184310672751958237542396217025697456348778511767818015190481201359886479502380284127107540139409929517799856651029046486603086815643490365569591661686997968635230857311898616464851332783556909034124025589038352514925456234930435246971402240928616221173766228695798922855982674068490431492684455871116072120004667480908497789509682390166529381570470891438923954441959748534782658123945228232543251192399678459338404363098851210926426623808333438772908643614853612542243882006083250003468989710344926432652900099471697882928520790406312311557973120523664460641020001714064290079252453324571697698611655965968858171915736922855515936478251877754841846065211380870212275100684108145695343566884769364324483068647409930855684104455948660747580130995523678536060617818490235950036118210324712893909438867589454213185053768072976723579795235915269076909130940619449610708032384141401154074157394610676055282825030354884307908231037617879204596714486055935097940051415671437217226694669836679194166363406744550849041960061358202952960438556722894418826457304368297508299932113929914860830781480735726607613567887148128804593282026167498302852131608635195934012945413960432967624588735268550168288000685434575481916738501595497667877476964614557689320174505988893114593632355442542807717789792637822876661418306301341805568298881068805812803373010810768033195332678465684909215424683852525769068412786187269003715027123731596337166903836853813798870846861624840435555394057945750749204551259938578344591165505039430598009340155482268352847708145387388777464818157446778818306643012881664274092491956599906233053350325302242112167088583940678610755865276068946306609242404759406811502070628294308479810451281056229862283155904758229249935851143168487130579588120366177205723648077812918539687530261317615202901813570158023292707211991140798955959041165606888466674771085267145629691884953783643401700947279966186461034073057929247347345755144523785348058978170733722910961755858765278335426540769776614694630705656301993151280821385059966772378658025659981296472168558559119056221707985311536971346748134632397026348685400333260778641314162706028662170615357763015801807508058134765135823409893390472470196647500157701325799262317367684054051940732819906128345018163339757816487143907465445959233624336255789749395853359658680385918565746160982275770258660776333651013064223305570539944013158876899725128625412625840045815380561085619112108802647347868871298696968925152601380992845994154762097939843004366098930467302611981962773677303971918847544325764916238001063841786179938341678301569703383041534903993963251325005597701880874810610761064301234924461617561202398024664226252346002623957523179654349224260926025887602633248989004629480861490024369119829764393549268888684600535800328704575233913125364291230319363932526441001714062931458977881018820502577556901397520342369513227759230826544611296642829000841275792163314057162389444067495061921824400834723498250027915036994717938160475542134379995904368799733445952274752634145774922100229810392649466385362832249111876374697758298688917879122077249069358344147002574000098379496074857027136178660405260278812872068799975187944267368626342956801384916958778509398827951020132265116330339767649394062121304493050189265175289315261487465453743660277335822429144524377229039123574656280863345041102266643202988161974926018262575544688296352748903188368648832626582977000168897369632831050049443851596891381460207586649942496216954549984305065266383948701871188660606251507670893118734677587010452823809142836024061366986963316543432298849324208544738990448065388430219551088036099976593187311784818897506026906539567890806956126339223268764326207629074454319939843722995752643482730402809710370791092198573607141583709532321843203454686851065731390992756238935289031991505543064854647958967287131049083069635191371609363518302148100474303958900332422552092611847269903083065470886397578067714052562186024029496374264829297688608169752732096782672503080621026578481368917745232198092531535981647174040052960873395767385714793138025529479358752665777978783760812686162175671586555048127687671726258979028572507785086396201820863927942814182313097515638647295677518387847144434128099859984082252045137742515771388502020012890386967611369780226093972325225343841708755176728758051725437940555268217433286451813977058042457391513284943431875864751224329437943354187328556670103817477988173790525631736488459143021377237886750466709690242982820580162480923004792040657184115749470743369941591656196832690456367092214203384529848981745888015438664873979915907900204034173295592112924777223185612522005863277038372501603479754943273931378915590948274151131874448037418121407918471171284387142201928357664490858854123717692709491776396417452741335912352411676682211588651356551049739569497047727584166809518815777113738773261434951330716717444673886629630636806947127052119920600384590071882593317455736419302150683380185780070443353631812319553330302854559854396845920492500062928399867209005107511082319267604429235342696873751620300257118821016309859513648736970232503269421995019244054470334440671898963456562433264079231563613649190533028055641436731370276296851001209653566949066083003240524641332696175185475685304268461518417038624767918065349709106750336249486506045601909396151064755108885512370881721098282346239227284869780287433036301368924949276786098121150026106811659144932688409760986350425986032739228796610583500340010929956423421203238295528407111551696613029299871969152903080496210171043629212009462181207675592422171014920218876585323892074730897404642812983632860886700131727321853223458944954933882637151026813247646026072310992881174765352454394920454574601655518460144587689686895854031168963562721883530184476225268940805794936142555331613727481696493664481188868514415844198574368958476521511436145485665147986521190841163749899058781770192116459470500228271952972104524806994505590199401342630454943101514852010177566342219315104425642666273778950240091647166916405973394830643633459640791127993766345101796843281257375141495458256240779380095410072398056446868877730706079196950109434781444814165413961082363804956624670732316069960379138333777351595491463197200934599125109078423891356077584380112293016979042892523884362331571974923970669534892768314469005351753173502062025894160702264077159997483047858487046367341041339842645923778724993309548869584295628901808962740696018004411172999981376437601297688068383057642326276666660978132869792293548762213553659722282632546457236713461885727260878876417766976466374474871647170040599379542668821138759013619046643904554319841405775113356787367464833280746683564846819706211918965401121397601761502571027682376128114152886985593744999629656183940396306023856323599511625529489323271333111101671981793650229866426277958991561087014497264388574650449569846190832924295205870761014235707825186727230390944820926544394329037742925860718302346714227566854488076274323385692097442358404578948319566609231931612574805436511535252454104952222759540756747992279098774585121870301600757107601774904464692988820257657403696583847832118350782522172114380526674458157527726768427417166419220896371038440495953075824772665295600437245555477325830564446333969819584548927769633955339557278987080692108008232152909564468326354643561355543442385407237031836086524418798649283408052634584005548829411977095392491384994039288306955350096959204888187406505960400947477539547557282325054039372679890529060886084122278860624365679297759386365617167658727263710762127773438172398099339263262826487064701493319488404592298795847639956017172091513929202910030527693266539697198028529406449974778026598653657799806773211902305268430484133226144230114971934197497845902947147174427790352371542267414558330630138251281965244590147019840773361501398008230261566086516325114376356580251256799808341568905241582602983739936960541489541608250337980288184744442599383288021582209301332307963119290840990931709795616547573734371361247154552320428718395173807759384020132806002890125551497558011167199426226516674188001444520283929144347387447066231754504442001543703598866737645606775350652241166847541844920966144361469911729716676733282262874886273174563861140893826442783497146803369576014443467412288199047414479472633608892134128182809154567392591755454073909945982205235303522994087203670947334158549283786082458115063343483187843908505644771324595359517209535428494718278629546069053627663166929389206595893624919951713451343978710639149284214709674424931451708468337853529679939052652604176079814256946517311892072896133444727817551859832157154443731070194614221689331824007046888994594987837806885224335796352531454886485523791514535586350017894041678597905483298319399821776016542590907396498770719688553402735443130294993162280084269896645631812035671937062873575727788589785187643936130820186043356096375100950535398054224923824428656116236454760804702201994512640227181627699419888194020053403338013735767803334996068930678738110631420603724188959123557547546121683042471159728309137323955773303576965535098711789068058651428118999862531477281650864550511684556486136370185389864059523924331027273495174586567254891011332084460022297360257445783313409787815446201249881503508087710100630957830619672597605936992765343958422781821123529774361518112740314941065768568670781648209223239133640977960275121515773489247892374731183886657335152792271240981725857650945376862431386257497953946340801132897000705250792430875338703277991864601322102470642416120788420772128147169203935531223559800611811512782748721851191259234442598087636433129714024619830616731735770434771402032564253860110485927730489554526566921365978664527692068024556969870777051658442653997983158986231633954505181159920476311791237458866707530761194120049045742056427710595362763095457069305418724291566806674822931947755975200197370473534118023232806253469128672136525599561596807416143733167989669365608032477219491552331608781899666739716036388131314917446867534786990168971463916204694633893826425328529043069359892117812559508913906332264107564266240726508094753997660675461955891454849949391076278364315840289885904412528268039232200128262002320371859474773442916185569017210535186228148792303403594721389452040313727281066791335974653435049782229877777783266712160924314326696012646882333069583566158752750009234300253912721454723894221786464306589519199458832891262960782912308281815634670748875825195142673130866632191691389291425789196715888459120379738193911168456156849294778340273636011888217780373214227623252168518264412322145731943663009483333974838936710929521791489658246757296935664221591391047354767538783084751341133885627717605441703660049789058554970661284368788825135311720888625575436324466976682401754910997335800318365149730713338044233386433703118780061663019865110711276966773295608181725058831913993197673073161427973710805702375050380411869653295367530393458420634880350734363350672434621515249339292695420347440715118404245718020615182647571967306347728671010656430521703252447832115108786948423429094494866590686591098657998134854595647040243459852543282036573394145422147663687126985857452891632598996167915214463429454486140394414332068435198393312836918044557264233809582274154970355962382932995534285470035619807334769451305205629425355087461072519840465185494297717058597298412509904871315424921566307674533435785473323292423473922346195731864932673458203261894753370372624709738205573028548826439095361540567178570893720261352866948871939501982558140943158891257279789083282260995088050861259816005392562497817167730406531094021406284223760207980132683946633738936271071798785664574142669218048900418507147744723836265077561715843357417233600829452880413378310983782831856491294835208184343930106591497500046065174860459597320418314655235666338198344558819751135292941747759234924595270217347660075180598879884632042628487962407399138521639739528161534271279374694313148183692754708761386010232152388751881513026837376346319340424067898687935638739913126056735599908425314781987689456857655431092924811055724976221103646348490869690953021922196124628116466644434935907222405884028642964655673213193758649937144694759281820844985708977335420591069130873408753229725414714352681616172587583497699772400793721587599215039276209469218425287899915037274348141559873859834244558523001854354916566231265038293033949763514555681270090403031641379133275744999807680896129259602091811724300139854771820664899402037725905427151054927954500229776238233601544325156999128158172946503457693408351500083799263098150827237069665442288587983062417297172606373449616498466570643972342450866208074207669990754382858563535895758063602052869830932577176501413040268534617114591818416364732679273337312991420234944188320717117517193705229704342753958565717202502373742038069538182624924408981920628481733358494721003931864825919850883858728383648391474681698300914188420245704186101451535266191702948101446281101140186168191493310719402061433610561362809303818748110694860733756164805029916505766974329872893657928968117746986217539107363885365161570949644288773516818623294499851567224412831443693649225245652722976580230216403829394894585304878007462905239960837661186249895120355249205945584325851574757546282764369919930610336152400180036615189479446150636360324917964270415814613204729977000022885542385046680674599920425953653883821638780050651550129077480550042383672264727308175407375797760917377105966434407382920239612966470794070430292768497299851545996405722240579168210977294725736840956048905033040300305969018188968038032434815357050899025925354743285931648609091322582713208456106684501218335295241322259047528414543541376126660060310091243033918185060107004695291260675005994964716238652075739248704738355355692150663106325503094698007837960371714098575538243848747061417454021650033115669379329186992790328879444882373985163070876434735778118428833528971561713508859572153782169607988479934298387194679932847148953775802838665528038885911572866301693420952240265084198109956018520100057600363801538522983966002752473575714652560862485944981058207748441958637911109695315444300553905764341319023704649458317276739440067336718690103323211797318980671456362011054630460284665583415015076453249977209494245993844931748998614259001818407177751294289706746587893813604184504496672772795610734565988091884124580004003712537105135125283553116341164734916240147670875240181371937751275670489104374822255000749949300871494631711315309742623613926247234418848145921030218861221518366629137934230997803136806853595453317365071944164204282283869742932275556412558603333345707777142878556336414962366381808748059112496883386383056606574465203356405358886224219799473004958869220075249231077319682895339466402146610271577971742577565935460469095857428270701837257801839979127285378365867228842897143695326371987397469496761468430691714001549511949760096935076515139877643305870526661942839232275081467651817553733717040648824759715294113461384329590847748771421583468309853535813255086100077416396896506264485489600945813379098585115460346459272556006343739072251142998402330656477608353272112631110592663153286666562240655181747112545792873501500178165370515008338931293264885044954915886316883654435761901172501274654712867513591964792160203398379973694683169488879542071051099201464396996667507208191891379234124580648135641662467532290720243905642027943876014250379251426700785087704071702279194561604967091742564949237229230603796785282903189067916479817527990371553973323185228030297896906669012277763204732414910681270338321114100060600288961376125895712807604726148374230911885864885435062844493631273809352240340711443537722985356682694254578688160037709448070316839099791291376012390155260651962006728310363050974576729156123489300692324346127085362908269593208622217210133928057530038730566710353720691466859644247480675759717306624491893059513877542848410102918880393956117937270737611876482480263994922113035335463008819765276279923067394430747191276255616234192079493872096734844799617352356443349061137877001864265402201914515902180535640910806517298869570238714657641068852549829295893567723709930802313735631695765907998913997257659677847246959479095514982792314046298218802738082442336207513482995775894679077465876770795718548819485453845688035927796446979508615824623155725386305495980956405370677708863101870862662649052232863532729784241878375967705143823034775569224062225841120480745968709816832934371547997033293055180575733748170154139952049201968985531433631678241431561408584756102372625440556520081069695788909289629767447245522537906791894354278034973527838429183051515612408378832938786190574089994704649987340832692894881798581106935236861250535560671514527423764843102134794235841251088250393815564134172012516677049287795419978942069451074542789316420928190683946900017359640860267782753005813661666028622306287629140147910541138424912183362816584673398861620259648643043227681908764014006123487105944010667284189318000700030678502679770862461375264222382830880334097607560038007623465345757885369901581567880987672281762822227646185533241528343494722288772644844159037806628559173737456225816971929311387143443176914354603542248829924455207839589742204956921857050952141920974335293558746497578907815781523998395887271331853210006254893542126363440026232318039637020524344373633605400273294012677009234630083864315848091894666057834470344990524364899644547239534405501765556146632083000827435224238225593114827291278341034920761919477401181191847373178805245028254615252600280070196682165483391917374224972018543633997516707439764938760492338896443248303527718386892063191686048602124309676725746531476259457463203487722583845655208768566960781501580171443257971877908657254241369521368234506465827978310528027785809842937011924293215067694730269175127973147105487989665455109108049173886389768126617516589129853692471702929619494186293411432331864344188230326518325841369497415172453029620245721941287044021566159171154274241549494608345537806403096757869054799678476814794923853965691794806890348414288961185155801289526183996615960331409783223381512111605313454666916573236017381290981104255432372248092124238528409397522748389775474885977656698910695977599893540051889081679426034505799987778062012878463884925523776239544367058264077745686745124794915159906506110812732375776578151261793776652038870234363414664276712988289592406757430643157392816532529028682544108941043021680610464310237583121690895721714338607560378009393272442176489856713917124011854733352837220811931830796665382318980822790184529374370602222116355841883666364104072136538020800226233393560259681734410369000778842656945555409775249797006407729560715063296399679432135306025331088793623118996827304691848999260066835028442358120408904418013935995586779635184137150363166848294593422169001551474050624135250476050515618586006144253067873473273750381607865513251356514195634297596836260345408515312090927422997605595805859304550166386807142338321141159626013153076392685734718426841667040701987877242392317238972914540529102280076044783360949327322644822255000820288979303506127932395184492564118453388101215349151272120472944975863753118236280196844705339437382321252887870514254116397622206477721024921495602046684451480842330803608565970714152012457997970646107100164525393103595712879290277918445273155995804796036058381159252977571714803084012308849992786382912506902718551981518096393023571542886920646676785145591262417890624903833429520358006145099941166205071184932658669843628253450499381853481396180283689328772057073496563156596120937401247913507286702660687083808209376317201020457828789460997915335711287733608090568432822346165148506760857086324579941824373390126989994328121922519251992509074484538260703434907957574616300290109665912230917551969240761800299542802842740263842908422283763547310494616981696806080425544336824945583686377015739057703358813860948230147490961451540500854085997537053502469943248694036620388118923775368471388448969614201859311373940220743489408219454842537884767430070192948177074007693241010960266063835269141103540605953507661760923189711738655762747200412826172148196463374661367935079553264497638556165453365696187651618381965712837746768493429737543505075012464564150061766843790431961093155256263225407789319248792963937864376052651987884562610419789251718287484332161447235666902289658427646611683097511776248641827353619850127452639850617537956985244147448211954925883260237290278805797271443854604131487982739928797947041422235270968833890721382818129073467976238096070279794614064081439650283384792906425183729437400742324688359214735495096588326332647839687552421083592720055358710507649709433444185392908210613159418046289573976349054862471539021550990562458489523269932790739886585589486345698225273141812106444210552519691925232696804980814468436318459176444269345393729505264862642932806587637478721307195762154234153082838355339745671706672515158419740836902379778124953973449983830654592773461603287257520345376406094755949662962437815650758022242589674104448799512785577184873587061611935931687811068695415777016340756441204271403329767119383577963847054747871395478066851082873452474461565129673020587611539240436233205204295302557149565856172146473925967697890833857173947132236307522406226211481433299566087010096607462765318260345364189503958753411435915111560706724623804248160570621721774530576069981995283595936654680129434841621895199803424325493152523445631664023325051604778232541273988225056121919915019979057250292151288597958177970928541740371129750007920335887893007934934847020603710199363990345830911169499065042285105828476888939260146772167419116634088288336518721640678506309630480755376330265282389263619579635316435763308927297950913498740342373662467014891651363949880379191115208993195622852482941778136236271530878722183155558666326613477293749559416955082219670680853752533100979053397857327882283741695026323717676516345973380275237194063842411581594907071035644870261722845929753478716079907656338335804956819283352966500998664318165695724963352343194513888862011720034203279835419040157273894169755290940337937771133747790200756438944174526605377487327709354836619701241431029249059715996748262697781529250964551276355492910730211458786309900647983034338978129142010416067820524890648398756490130223780971845311794729158725915247012599389617098275630809164533288920946225674365937489038259212859003801898012765815796797898056873376520830089635774604572194536172391893824118858446329022765143492432939863868609093773179207794599522820809055094033623002909274674219051029328931462299684909896992273656828722626918391383456576084237548936810177845107260740276358510009471600335012025545085458944057418563540745722641080403573374722400669508623482489429890515860676532473968690672903244542657635999459276121929466356688294672219965458421857521035366507836699826223185013235653700599055368621737816159539209564227930023475193123688659678053712055891256769466063554068197613253784307155699704807162727021406735838149315785921765347386835927976405453028816190944013186761822216399306957782085139149809594850142124376395926973460890328400867727859998674737427907593831413264274217058843895429160103936989982821151131648358171558408401025300156597540302971566943641961599474999589332008721637684462820795183382329306613402838590594038445062450353943051313767190786190878587266841186823267864354929346525154534534549424153206396491509578596662697898878861124107588945297189244988354903270171214989755973549244909414195039288369726157365452625228309638397189700881195360029060499225621233511116806141011224493285089728009185457298652281705416279146580352093905890444954915985238045938538766314936451671121393327522833558143036026592088986213444299020335013495135929147282598059627651686711440053551261625983998538562081711216754924621801130912934575706929168788274779586644783616546380339711196822565064389314305551575035021434042761106077059928053733331412371117589974227709049902856997676615440069857627607751410651037924860157328063886790147890873644153929867713116568083946307671348828750888586352699800701703514692244140770007341908463284525592720869762309987342517663551284255101085692919136406219617191753850550646011640208311831230182477578661623558465999153393334042088436386497819419607822582140495082661680141524481748732028148230214430410576196843255688826941988345368006305919654098575231279800630176426959957976675607828649289387343460324692138157990604227258396226747725144802721540180100677044430431656329891510923233233949143498286953737298329818451777736111300966746529019408411716473751167765370046390346385795417371973638429672896852757410802848740116214648214475912043411925131806534154199982004853006375040072556508845141314532634403265251520020014006538830689169791447300302582610149612427652489834680812975009324755899260244120917523649502668249683219129995097318821520014389446677670689361628106152786303009090515529393943320283384650775994887481527739524919202063060806315311791862933341289146896379270773615106280587978333280010624839065327755013078236629365010757026390302663030630148487421051321229104043305167439805767563557820238244653016858972721773329630867868927792120389447874542214032117556237621169585793614152708060527526699077674425231446279136354544597815118540476264105336112205909094135474677449969424440322975549422636298029828860753100008933534274624340090410962483777116684952121416302439005829991028952923766319261935650859197120090331847805610335629935505126090513794111344078278924371000277748956083203867693832795065013467028295662130552387611970966104067273744697430663077682726621254738892926015660402741671229184288816887509062541263816674616696384343675182971139226443202527483589768590704889826195016392840186284687153374905738542457081584344040266194936237134913867065463711754868305327796194162117881189938808311038645883539400116616659371338750296085784984947559992181207931678265227554022307661379086103593392591868720139961646733162588959463593122900815816912167853003266172996828200014849366936106769362787698124556208075855460466803435964668227503626587066942846285942889158750783215994220204548073039704363272316925566843949149439579608342817359774946869678060462381876008214759764879449883092763139603754109625734248399661067638063241005723383106619140173476406183884951721069709387616731288003882211309290887146670088764593177437957393709567662234109000959860536243488875389373999489734227776607111259762551898989337086063456367373921477553580025853246554434995472777498452458237831579954041346728433212119393519279187421182674372620750509458248715826584749938810729258562942148536239377059026576635679823912065147843431617463469662989666621973659993952365043739809652806848492787083503352197716544075965157820285571404697397767436016228038283907188650213016877033344918162823238981377698536080554288775420969321910827553197089885811842537755501059884996042979732096191724594969951617386230086066355323305301293802213888016031755455694767806628361605822429891649609692015256901512290048387650506785525731079971079348209571659518372421431027196915333078800811723011139831158175015382764253073191821506192679499269958896207681069322880841082803222685671939560023402622284668058597052885908513697708636993272983781631785038368918072714201820387201302650712496640414943153128392341809960492833011732068668327512130341687207640104892789929462250736580346008577760992955198019975936811106822927292199513995334080058095350214688076514780329521504984648794243344127601662580043252351076500787119117310430720037031271972915795041971187958484261603757747382822524193196711616371334469389927185763940041715809504596118519960738935307402526770120348659479535135708841720708319319492773019320378629235307464495928766533988956984840171798626575545082083566343871664933234516161813413758215469132493777896663039508161917853329506218157740189092225647078392507371664289315318586166633766318928384146408874259114791294742985279491988496197327599144248124824267184168457109859097190271501904450822771733795666957483044331912815536643337301477639686142274670743724382329658848783888312804205675804238076888033985618915111638148811012973475409429822354247394849157059360024763610497786193489868971604740482657706411797152058982364809368797522813363931256610326274586499441984121497375018384614763367291596270745892010114259447726362907279390994140896512814672682474877235975202626451534203494999442477819744223032652793415548414312290476627703443360418487992068017329444988602532869437219219243412855263039287563285102439907134808185837399478392523138326242374834645775155024681637104094973427313531094930052034931647959662656147798875041883949592256428730007610423847775561046334052441145246683618245523452236896512049379140870756419226418038299923806646699717199394782881086899025422396720500932904974743022740367427826489208663376400629593232808262299112583440740961282211534427080189530071988786762855509803794944228178130396506707679851226286304416313012589894426029461254989558556174782175878254767025770226706196662130958174647136606339939709965985490415011738199900887884766225521208158228053572183806842019815666915498450675342557269083555037938377534034681088071115370201712735574056411762600583923846747269517902571286442112675797978095864971065506486019095874588920373175890408721284756075184633779547363282176098716802718070593281415420111060626090232345303692629797449696940905118415729875786742486780487456141671664483913392165772205044454963214234960465896403163256770761441574423631504410765541782340547889020031256214073166314489974211710235732217204398629856443479430796541197540336271686450350798871357097005151388348741361546364721585910937175317390097958184198141764499217090786753516414190304622667419160370973339603114072285162651143157982357416510352181580514690748193099726953473574441812002742885925419439671411940368607085570446836554377781959341353700827702419130279544577693081770746948896960571007059535252805262046064960696910672195071016218157784469683598370285326166178246646027475889808094363683940421406529895504138196322747350919433671496123968277542782466315191620944475352185494408252438449410982526799173969251076820293349953355336307971221073224576964249306250895648107707858504242261895909430442671609386283494536380098922718733964699339428461981608236067965989384695491935506510881162035829273669852529493190329790080110161654076482441734611332713891266056319578451453554548560790244107679959069280494598358777924451403595689909531648479182481815965978437854808619933087477335686800511397955972786977851939647865062583977123151331135008913077614073820750650048274284259516775404964952577069572559205496272601508295997258314996372684064210910254667655498540048918370389828127630178525533170747306885618046788564949636988659645797080714522423150819645076482501524919323359020970332976165116150656267850537497271966229735096742527835696794818975182544326141560740996177401809549169081003081037437059097539153144377837610498332181985364725419196023804087644596979927592118497414332090532444875749260235347359512844767293598534318695930838617540752257479265747702316416962887794008367118444576385508192488018840806115122205832647869752407229873578649922557665946303771681414841130837711725604312151396268877890593075464369401544161508830393738386328268766269743733249997626275517170352581868448924267144937585917152140069038238415035272350817635040966599368506769127425245612472262270211003501535087917621959914646460056692354766518202084903798805530721102680836553759586844468891421639135267843297847636900164823270240929962043170602916450092946007737641060228499529511346394340803919233180526669007445300970914910562438877746899599737912980221330205441670349999020135693032823168221068962736777311674198433010240068889057978456159636020406933311088096709055072545414852501501863311202054815767937612187902426143507736272984828871791733190684295156938136962562412504136970501257777748567235337854640343401911687193694379518322760416792681152364104000291669620470814959876325257274584136467058377356697605988634714143639646072182327698939256958466144039114148668455787763252028011510358387648325194471726878032407655154161479130122247554034924930763155130859675226112799410005293867664591777256850767287076443743872703995379419147436966170982356316780067557712188547851032606397697962954408267752993088974188571151626483637420024842509561442384948668678573722312557669024603220422311334497218613822861743625117167332014776633238252857926462182153184806675324051493203742533570892050005221687354944732444200737114263883670094297477497357392869798855371129915990034746263834834566309029738750792452001188950504459099725577883831799371688315663648094688081528613186300276128255065612220814078125892457229745222996602607894557744336157851891462303357713642116389977765495587715248029924470581327461328605676291538577914169086986916857521181475209497085534994328153440984254918919529015204263412628506087687668779730753137866433302410330719127638969604803524505749097296087944476204387888939552151676208417884996487214453693355191960442216896551427027739907685173516823721150154490117574390583718130728138339639200007997837285000130724935124182754706887656235308434347310266573274191509481779439744209236467143383798791891630231407562805315478421544957462991182414047652121697368238992187733636971871672037950605010535006568152803303780609450344765943713399041090664027451535407451843594554026652029953486512136554421574704895344455138170392392753023467265392070295538043087537420357610352680375733784791403903595038198116700531181808892276962417171679417854941608598218693616363047087918762093872615383919919739799396334493975266890659411319501584426083884797206553125910658077951166285964625038163356821444899816955665246152492187086927859148065459187080938176120141279252106993065906048902225299505581598807129053997628590861033478009027884786025319102852534415363887327591699744238826493484831237017504852628199362986089169980308311715144219454532113076774278180477455958120884525664588702239499748604756368427421235259518815844430007256972844829335372577220267230714743479870345697893326490988812448046182311578806867173955119958379265747304742714580947104765743689345158887809446938495187541236317653797862589552448000097529269625623429381880889422779444628338537139776920420273848088547750665859213272510534549693447130638478425011414923767637779819186618234941015274658515861039972779452820645452144882596536907356744880599797802586306704657394595023064202690444488816208084293482610931038749874918257784284951990772951102268601538884530966558877903208897348112056847983884245252508645765068125252890736905837515739958284643839369917458159524652676942060566931890980118667287575492284531410395155889515275749195228459080562982730588576441277923255263162606818593075661941793478097174261301722459453024866444360079161806890548788389669484662484277304661755429426827592570718942752097156793787630963937013615309521547900621705551805006752821363063404928128480284517170356329968014450263936927537290031226993176414779994698998655474699290931047969146749167001791210028950343563461063595722384961000170451239121652152840115011374519635705071289238108941615665940765717945908521078536175170092714902776667736385013702889814266659832343399464026652213645186825947735974063567305531540442013873033293549919150344934623056613560388962225667171934750381715846913921126114535695013615696915236754130032617172479803233630092973789940421466408737711881204291539907995293515253693477667030029882970691114182495971670034692417879516753653631002338048299111753662303258294843378313098067935360647942230955721144860431912733902123105923814974981057921986544949194812259937908950508333909736922531298557662690392845618883955846084070100796424217848927424742230355613689872962715179400220114067940220618889074360025193260232215739090809621819244332676209514110132933285753700026930362826424139713381861807567390023853634157231945071551498940432086157296760346918267059528137736267746167734850204930106162605219110348567198999928694720351303517684278644562658635211118535615482504992129691838811235312933690834656847214879842838652814683810788208794753332100094654843118371133879355423739041517970237195061482547280540707985247607146841550580891667487685864043481176588139119602125502550277722490085550747411707812344046482162790077906164235580417011029547173529773606659362236730000190317939743096032895816990482810072902340663459718982664227103140198357579784627617449304608506219728714633027584296502924648039406357951137631861626741927795052400936273131874133298802215073263109476813234783579620538959709922003512583787303992236079936225958571035371572553224850092569098547915502906525642978358395449218489683137242030964368852793878488561329434823084689206737807447691786810793481568275175329599158367697868053539872259626706626565298913401936725744696522688118950907642795227501452146225792050252601156349086407451117340740081832159188241566485849254407289967418402871263683442642288437923852322652101696774827469570432130932203664304768592884199394322099600223621172158291729500852269395791780209446754026263235096618429073593405486403057185158718815426212889593544414984458045475464529098556884032988353758462758330020514025393349174445787876800874520025896746847802982885262237163001175838494520705318374184857693926803445267147564666198126036729683717052825926197463261501103870218221777904717274802519499138001470862150793954461683650354583412141545826134470442529324237743775366020722874997546316692469847388020429880997467388709539328228794511921532953684053871137781972279584339249054108482556455277920950352442823488594446774110752955722382205337734915097407489383933368830103419307370595428087533484206499433692484689351952083298390314823612152746406675387838296401329072554158157982394805337646604875600221786056128367124354431522707043020972609225491640692354545455576631882685696156103965782263544203364297303522528439749140722395635647937825884296834912714985952603391954129247812452638780454086286240653363830195818431450036866711823926261964480771450873848897169885797648057839280223514781770790931166198906734800402097392091661425858914477748410509229480516775614669354816285301310797293862636175909739606462136816410521800601993104807340111568274574417563760638109587332161192587375628420807254031835795038426673443802312094526206753931560993601628990919174633530382217353514126990866731318287191063284578593241592653635055013993197745667108692769939198513124939281394490054083862214646317113243435225996923367703407947894925443744560776843605419993485978534786238696954921709450131842885735127813345529902628291382738135226751939921011900790838695621041737152952715686725155031614414308638235156862881920287295845303148760938445398225071169198299515374027591915891323177119036047559382335897359688683888247867730131323326803697650425960881156646261661183953562125182942796830743950098459755971440642542426063228238960863348981000247780839779509405791194155397511270287950472127671154551084614366335949704143412530985686584967857088414598046304540989995445073555861661608003148646273761981689421580881902550075706251244226965001193019973722559601717302194156353092429582936331262993873442832835975262610065509997962458594842896609018636146393863827088482841514521801542592738123606056666236058050569974578858933603083688532694999137845966769104644650591724141671266704712333249142057497730782594871566697986325854488212251612376057516265848559747608555939113259068717678216869796323758025424433967272380007176381582160561678268731129054094166745454242506447380631954044220596659547799049299477349463968360260332046494626143745599781699626779807581985108061110788249644064375696479630533285706987813271526419492745346248144818636791346830095744248121668779811585532867470919006396090107874212104466595193344305877679947992901138310306286034893715936563932041455313019641460018951522970841514413215615847018376665165559537978854886686061014817316646002114395962931992159042416671018395783149218701127874750639841461253168967438320532222982540572486157972819992913016788998271664985012042885309822567945965873941259926007551290861990389224452720719025037581550658862581444632947698463411492534383831687043751857455322598303879734081330021444096325800510585527144593475131040594469137995333385724297813807183645537609147415626677118645229948252435232079900205874462926023855249892905414020451642542231471096582075987703607089719320371016884829211918647442522272697175530197904503994750381818504738072724413991264562479233734140106178389740316788480084634003608540469781191422486112046381535494733301881132655258714582250582839159014675885105435886975352697476430918465192594485751349068752421990513719125494027232360613686261347096675263942242041000724163035314186252427698326584420362831972277120109865912578992532508346641387271762021963766135290118814844211062371109111799292386673384317655153993055976463861732382938569363165914017163181914739876524968672776578402261759064667130649389855791169694205542266047126537861977945046311676418903033801114380517683787771423076704767031274849552788404834728724003757042873891164445716895867098437892752430815248380504881358969974901004884069711849487560480795283263867924412405481441676814206377585285048611915874723520342839122315624796756634931229505576472608267364333893500850688150130809313757872968623237683070764732440182912405972284094879554450766620741398611873028930663104527038191738767743947340058104566323379895510158679491000812379389528601648616139478218970954754627370166151558443917957122141189885135018066428583961597820867228625600243454857948812614537820153972843483071458036240993324197325606969735033778831663826534069608324353792966953630306583024649478983044300915211848358470917437124724847531074654762236717335499595600272339923681928688299477506796213742483285177407885236537703335697229322517591735933040852936030053110891083669837974852058054410002850703145036852880820229552630425897759309595928849058357633163681670044043562117024328105396992933764423035772861956377019222039720875352807140067558871245886771103075316504827050168547353264705590159302960649361414814861675352026944794500100730966320481734632687971613985100169412822547502522479216205328455274977027137793304150494333897304766825545034404780512018352195258257093854379974432541988785149033086211226920871888327908659182295461658531927731688857630799887484947296035631864439302370129027576894271485017395813033464638033920089452998833472378562551405392273290058704056574315963804676829788743650568645052232810627086426593673570416349070780602670517321598030817851725847317554381959231673775933503367098085530526541380844074742959295704601832714885301715318886304532521874132172907370213514174737829663608716352805819525776253040785383341588715074911226030396115361641098523137484910931848242417704647784997627857303356018392579223825344270083816211495735699461310881522388988109051424761767062297521331082918118012133466767557522216861460927833612557775771006994321074053874291181958639702113628004669153721074633949423756404372916629023861574561957295932714622853693977545752308302341346166757351201331281801040383539318499359818977659935147432859528406290923878667896073420120089444195869810085877714998250290253044625389322318056325957793099254610125357861505490523911532619572876244147311539273840655900694905325236043107011683690084541618191282746013660898302170621391692737808729036982184906206952276955717710067731748568453284540528019792817130841178602216048476307962967257666604142405760681581841950598997675039058304539837848258977102610944268154742800324505891239096954038892165562408274736215208672276825600419779316179254040033944927112039254066549539947756368967932648349564115514059296892441361798437463215696401213999752665276323618894712655537076414821459456832728258856051041495502722499954501867083758203882898285124176471745999384049017772769586912953106401972316113983581151172763777821849560932414539958759885268006455395780482347233323705731729403378566754474212947842091765601733031282475845263073798732469774369484089911728358623942229681677224016618178386710978049961991807625643090098596766893482039673744669466454747205184058072326039277771448686685726845734694401266681232267654377359768667373163887755025258804118270656222611817111604712924748970576178686482722069392817464097546417921013902909264209919069776310611427480961809876174137421405341234252609110238149050681867983442775060278316978004333830784498525246152885166666766325764898971592790657949532273851778391574197956676041673831697189230596235599736661694259365382451657564148693913537254399607175269350083895226799684678276754292690812639473878522157507142710234830070414597477033698908576354724965977843755911289413320178502803532353034065500607702305720298835891637653410039855871662913327878581227017489497501245750720627925890172054293155654300339906781441821465171235699182714024245950491710319843389966692146394104257348105321286557280588744169457285525450876071390391041001580492885756161845261361092126278655687062058599568545293769732989782696601871938871190347944085174025610896499730724442315853967294879749367082033914170436640808161736476815818406037683389519691792116605578449121542699536725475889008716209486466922326668981688736052585123772051766480919277294009839745553994179875449850443624731231706541105846457757581990155716703378302461846627921356140540754610537857232049365237756441057537564892973557672300765799704397989181733166204187574800389023464694934920386507546040299123485096419760941332710739872006013939620088855619149403870524400865843333804787474863168474202440171566408196087523081174001256607082443150830874128828888249228408142154460573375424184467432427806413982289572746847613698444209901523283951439916270780999566436581357207898346745567729928919665105903483663760875084751334724066953902731078803887505147621053692012383487235319874521288078744464222652223771564282867131068601099688714689595963034390865643283349607014981021240616040146996861930375998571737416877611299404128497040438468751856543944254491702835923569064840573959795156842610741443944714941708955575762972033603394996497980199732507994095769663861775099345294984130136646616190324667442904256014865875928339133689768589677570994531152635157449321584507986573380200893384725677447802896299429208473191097779023808756175716519732399513824698530350212104943831190300256429874799367000337073577706400281540386422260074251374416416758016394769526235640611706553942772888026712433783812148302909818890402056572307501754009650110967210358382182625856548768386024575916490525431908689477343558254091166868470135949902521352244734358690750514247534663767397502774016113540369730670295586341152355219098719705237182562890096478417528643881796083481049087049283989883643697365918796353588774528391827060696342655331900526470043189227770193350068623832565176285410674976821439526022877606028088476676936993035674860471545291623227371540818517106851053760637488869566470941393958201455558748896300785062760486375300878581457617278055563476057595039907191699820421269798640371642282654754195203822931207352435576405062133937775499977979063480937321605230795434785847059981254506035643594145706945929524742855204092791031320094973923976064617768973577845695648532840621840065956229887409579839990215750305489750616313831330785908916423697020887293750475206754336912619747359183195179266651404585360632184521493526085794616352799507698706732533624461383979096890077148081925254835246785249834449668398059992905170049914802480149049536482196992319712080809378267471106897930139400904867417261224180879529667730219469127093081220807841509414649355633422733881226608388002028771280083292849004251389367569655682913338237572770416218710375085843263861233885317206648851967961029276979400492367694393736889015427939015748187763223859573268607986393069826665278102390331581725907694423924706475424472560432388317783825014054671850573379754523830027152379066851238431063491124284076791933273420954467296574029201403226901316900876750038261821246510159828047763844447330524661454936296974365602672620069562837050061752767030245209824981424839824753769932918151393566160199539483701634169239073406682459703715156014264237519606533101158427833308570203870178931958515746109758141903953002082455418249921977274308225179013073534006484200213545024687917130616695640094218287902509090103891180865451654076407670079700632499272121501593973926885871568169687606763935413408571821354299206589913074783648575524805823075641728106085303480901834043955185679365058037943268088368910395664556288309807946041171979549452730802351913521622341550635185957280023483957662841929284018307721214114883192505954844426530226703490952009925142636909750446883041327525000222631482684743473945366469943233911842716241274022446025915838358944034228073934559560293399657328069825881472901497245712908127405595677278078970614984758256800387504461800741876694957940795289481230463798294727686263150892266583238949038216295859791302082553299030901273117100587924494356017913204976397203208480338457465062426242088737679727269604801786420367852158184771903977576326271309408516711598931127762020868669664943311582333836477131127809903164755077721662328151861321916291512764396460743334370668912052967804101633199345633523665503745704809276614084187110278403935129963898659838891672792257400245115129570642451197162485396207503625219969920183530515159929047364232911135589372456046598749680445045070030454742181417865330083235549613012821968387006877994401762869200580626222493700006355029582672043202181056194350418737990579447924870272867687965135377027951600909505309033693078904336791921118392372866767187313593779059301866518809394994787754544308425970176546560622133397203023156673472983906305553449796713780357055035089778147052300895564697006970416857399044665340382197883577174350285481489472409657646522832111870090862367467442759389226202242492866453666990542060372333476265852238480681274799372970935198819800215995103743617249204727482296059201944107299586025418606885778192111769134069256013586643269262159696430509000395910065140663026704995877144169865209489074273818142392226093384434156792930128877684977464323845624513099807560278204117576254252580283169000321717194191442275676479340276650637772124117476177063779726003068314590021404307195759907903811287638302491651162565827205805990968615396521303793277564507563887678410538709056646677226792345780826539092675586509352030246565051406306552117362796598724911792240102217445015636691435915488238882099295669186291550147622105756214492416413287539744390256456579177118591288774932190160654481694284601347099745746680816153137654308345135169488226612947180616132989916441691307477551662954927402651866458468623500849895560787011545046289100062957115531827373658546100200189834369475744351042856693924131958407529182766014782365906654103433965130201622717033930756617691035978800309375132034657064293304625629880267007007956554109862422061936067068630824189160961532767100677791975434009354953412632015154017226369429028556773520121190831673962011262335985202900074320575500240195927373217236659377353162722405596067876511113371338588672719800391455574038124527728429567744373548064369933991673201728162418084733326130753742140452041264058096683134196287400268529712313259253291848090652524997997476112308315282636261610469916091628320516312130479217875329256031533055312481592458124054281601478183248431951895821424567686728103355957370209173562900913762831068768186192036259596918642719329926334406950254638671184785936435030485576057591205879137641840475559415365355058000940382641575223772317664426364383081853735562942014226168433400679067722588206638792342756559202163531105512186301817476344115030056987255882061185560042457715599370066366539984019283546120767218265135397105376637680104947840892414919960255124910918650334895956516730516294096284679048278582814676276596804738451163033982899120747562480668174578747192825893299946366766502801526764046822923499750420934649869145631933549951315245601111987846493842172516037660313958104061237585088912872816854432050290937247217695219508282163205624323321301772650896973161420208605387065686443848429084543014636646346543923298926004896246685241834320588116862971018743397452932388424395534987186521692634614180685486183598897461438528170499775120770233288217733389733070911363619665248992103207439104349105470079885710160418627762024152586139846976461824299495503267285141314863668283275260019887610912171357194990171175703473100426523851340753508869382565413928232021644909717817847553791468976326814738540567539752923882124958977410810267270817546223402711359425223969888926530142174063025300680085502128567953149479112523943463830359276977042935528466647621546600876996930831842440124863313658990763400887753279270784978019179330936807318841845037058757804634938241621206110997305968678122017756415109713749908746498615632794047163083478515160970467339398767385521062628321569669288602990909626425419385012823386252159496738346314630146194658189446462699941626921826317065058335395721007852747292682948402812006952911828184587464381570985274406576615429792965253306206738369120394621351132084989095635558558743645962294405338644926169787646948282233895819241494541380480019973962951472813423906439157873674538132904585495806180206859934062903555137604118900632632587753225222759077137499497433221260574944053256538971127451011428816011503257657124062763785092457317963149558544305963442580054436418175259090861719364891265673960252850970733420307083557617761624453095924202739869288422602506897126059567993176154918360411043171856441434054491945236504600920582983607397820535605207912004502265994872676443093323053538223370782164505400788116974129127783691901954978973844348738388610679376462686817260699739279689838623513866870966558537537711445297358194461505497608510762529939472085616137113594796002063103340288346808503741740431229025510433203909661587466520530539167766354334774779186461830552341258523810363024845905455877071028869047589094302504765874353815009724621525954564835006185345822027540390827551751518010149990639837402795860127879301127064773584423725809657586100809288398909214925790859913582758583399437459779048116334373445145085736481102402832483814924743325241605547710879664732698924865128652567402912676871573926005924665952064898404558312723548011369958459175705438750542487901113476620772914702116227869420641859098660541985408949325879111082755739358460822881372407201228705600214387346428365088934907852256927320448971226720385357255414401199419758959265473928256035540370663051776695636058995755125084818157330542623212586715189759975245479614623751157782782056414553904324911273670192485440127871521632848270347589912334877157413301857068955177506819781686887832086687901363333642464867826519523364356647950414959768159560603089586637611521913103283286471197528308699973853921059786321700002665542821424900396044330250478998780228424332315322233490976948707481031410269068873155142033350992849107080796544564133906188551453686030764127618474495313703382601171214028588548819128517494400572561538365528846999117111015914383040433841327495453490158979612752788966498719263242909987784746053400378949601040747090704881642476842231348807198073768453186710474505724097017221596613170039189682313932618659795615350646447993623698030571611509533041469572566859622022533192959068519966305207745043594940080629155048335155215558072095834017904324384402615206423533654041191637632592283280134174947520061943182250698493603761363219966292045049263011544888550141928162719863171162246923485965097896662612950656440676792308786590479521537881985395712771906983799350669500177491420323214176529202519736337506972600502134085364029666275570741136922943730569199182205609945289303993406928563004838370554108209484852217436421695609920920906705653310993961192976264188023755781013225813403636112639073388363195684489236559873214206614566001824864242261535782117414029937813532893545249298716479037232453255407147452599767376495013449257715448987929456636053095803749342560190922746024351540820197489680623428647026619233346932700251728045135667194273004403295742710920621181285922886670648348700538954936301145541548657397554838637962938333661727341859741543041146492365953177241629282278690290376472648963409788252747832766730974142080428734528865419854971196858567654975828531665822203380357576205557940790766301742470736061784224115088687034823137438129603441061024236271549720757252193757006397981388410942980680974666382130632923056262355624045542308794428911994653091155591053242648576196094372752324628434241079543602693638473837028884726464024489831149735571467891330331717458321350024293272094334126779327842997175939480635550526165097857611753063463920706660641502355473417563012410055525862759315451192843661335444558241097274969782184799762882370539036909682285904417303206303757402834417102115393272890412101782529971711976237023002256111890075853095391315475734606343427775496304275767437295986818424893825010339121264389118365648428917932380337203888566216552541316594959975668893585706024385181272520899517514196820182436453443368666674379200052792817699424380101883598062679581510540432929203393134005944836370860888873748461503059254546600650846924253896965676553734884621658093905006129719155061632981593667819469590895096803145609026882596108061330401809599122641326252217197906575308544370882180977221630649490207438457532888982499735727776431701606052871492283289155458780794944498416515704507833131286032187856866496936192491461696648589580298852924590056494517695220399070269536101501832840008887446270839979241505826871062951332093620247206831879633900782183730127466966832340405636365100976608225093079151366221270931406061866574286223897291222986731243810590905973231366966426483211308114142330671088474931441765136441081820603142624732975905764036610056046567819053106391000673907901110387294114550084084468280800689854124646214070279145387754509075496026092625900384503843366789475671788494763775861812191238763828535879237778114110975634722770138596230747697095091925549296557982036552440457862453092083932020738472413970008790684750367630631089595995339006513413245537841892296982556602478706453236075217169328802991824277295259396524550031500778274970184655118743690725457626540491197619049984314914435372366411995425734194843022487564369674784060198020970639644517373117295044698638139929055458683596530491228774212842738933915381013652925286406485650324904906508593954510918084992812937888372991377145160696721221701960332171155813774182158650716303648533049541607766981347513885481329077558505314989442063737379364680151024139826757713034938801754612989507495237652534864625467453831448055951583078016838215243735900133266895540501215865815446194413496648002106325460549987255851218412979916673585100771571000319845144676217125025406104828149689851121207578262879335735022830597684839041687663838847568717438416174242994927671768571680823453008958520285859667615532507363497922003288075869495874637069251669698362312750967858188016360033441737634814763809557908288340167943847354012905337855401486106131217182661970692130934908841489525964578951037540979580104761653267338186739250702183092880817895563450207630940869275264373141646976126992621809537644987909770341021517789197776261642620290137667490501280429018218941463984319663241200300950911570948307539574405281568421794179322536964957676862299796941797199765819797442406702114696412015685052428560387751543760085645423135096107324148072011001961666341083349020171438142631268529957095990954121766040102093333423149246078275855769119606961144616444728208138646711904473518657481998484169870136914992048453283996286617111008408107441483930182659733735344136040179777045773230612456008137811924740418982610967533991688328849987852796965644228857014987243095002459850923772094197299499152843572636367160087300324991715876096816349742692659146252413348645374462746881943894351195072444370431988580513515960004730241567075969686088190430709004489858846664553156140757915141967414188481188194227797035043548934558788149499537362810635996392076359268300163024868689595158567283849146045062582244271643177448556575831616172129272717234665818897049271959000276829022992616884356147203222598540313635910364025644861876127131922948715456079835975005464677655297648724063575833826973401396443962168667755296023703889079686153611576647391541980783825134211942011123590846172269603950803887563872838471530857543854679519618637397212173555071563031294622899925453244147507267655029442931118281788453504685027783210625661319132174132404969631647223160955235241102971492546463811541410236117721130362532523557417631668039140256288671363643460655249344205232847317091946315425844082914672750625121496982771834183360192966216026169916896091718268807048237513577381706220690292046431699277168228622875338923338431717793995778913246298787100122895541794271564997935025407813388234287280542405909156997920229512706145820999269676893589421222955342307916746794405238681346999003930724667005540102898533801445575845313710650970608155133648464962174728429900888559722099651177009119440126265961808727457774457715942362402721044096765235129842337886685048635841146532361538334297180232225663152975293814028110365286033914226152691306475397820786041151133344754494850906056769474781637733564227884241382173156320782078579878742665432957257077346351187340403310638337747521553514584601241453552666055301160607476215105358254997873660814447230998405677261287484171368925062204262975159002395506512044535274432547022209603718205381627395043540833876096872889356330177345904985546508387909817050602359909085285775378723102702738336740002792863712463957624007660823551292697831036734727528597700968886381291223679263222809819865772730745289103218095467464790674615531354627685157431375401002488066723491094883106543214507799796015983719808340061318864360234263473462714329822250165335227374957050324086812782675051484523577316301430281879732372969944002597463844396723536370969163265430336463379850655263671560692957115065494410648894872867936032624531656355038427439314443202559609932138229887986167757120197768667937649953357457057915093140630622563963403600965620547576197825827868299911647881732343872862949240420350304275184478534078528054938569279376318496427611403135719870545085573419855062845987223069133291152529383252771919562902341503941494570340692842013805947933266266127087933528048508012983465372367266276043311316934678954342388745166860181680728989646453148428835673229110842326920038514175348465995801520644326596946441939370878950351957543053578264631772000413076458790756799722069444527072624592301544352495492245168796713985927091345528331442529667713881766788762507251927389417247770551949737472675952197733209510888953194894648747845535799605101291679989789547688006164918414694721766827429145054998878281007950925639792392543162264360827319428520923153444310542814052865988674224096617202977466520714488032241392054620685457228398010922454030425138867798439372322803307034523099220950318003575545863155627303601497404571254380330408582935283887126491580340556099364618313140158715930913902976411581718766236383119705626357480625691450200822751933713389988374895053703360110571555151081090153554680163792709784014682745099916203062269308979696160633904903572698265474830754708085566228328915720562244377702349245103446601326802269532018157617394823809766593358678759239800897720128945068817958025206023935164832993956743651470216553077024789252395055979529123168110365249776015842309285551715453961560697644118462978423940013712280821144996489102731950077438668068077763764199324413732574657430714759715318914910915960891155993742677672624542411905283211801527022480340269518658205210282718356950414344849059039316477186988907282745784542321467918791528906094115381480518077927108669306709733073858745916642558349962860679370284713052820114659313013628141574013322881423417382719631072463488429428178943666463989047147715660438515554435139848177832945263878730795967915498747193296027896826736312798016498100127522843744624448366199982580987322846589004175725830774145840657975734513094074135358198018559759205395774698972093061640600290418357158272396575445002671719127252559777100718575166416282343698144355025742800485481471460504814103952724608245535846540704014191472765705530067291958154385320381646779932228096681342575234022548306998977728492493250049898143038109891723529859456211209822344884641175904334175907971492875688200834721047661819207909476281342674132454924353174021568986933358903035521603442096434094933350758856827594469828535191752810101329682272480078170376356888664084928239643653813017895438999074652636051543263714164888006923653341478389083198202450251376291570922611598079766209585526119934151389970813275085574371509033141996225914268601081971777699340747115502094357442534037829818004235440096174380673550207065844678338547594846340495893431546735353382651492372747474887155532536318328137525146718674102533961489976167780223812917107170411168236865089432569165353706610343778072075483463060366590477454817535753490769755960138720222348817563717041698133988760468422374693576158383147297084317147039625729003454615644002886264848678295006965231476875306143013191891740352517584648382541370606946051130397773350871105069460883222806909069413363460510445662696393578446015594821043188267773592265730387964588366951021030486435521999677613778906558059472575369033675824547112137628425456250566027125016408603815628500925607904637781201236391691334199329937428694188103348607994115469668607814990685849138839276535149390178747448328254591742111866220734137855730099706188684024660197544004439215231494471736832897803791572237705947004929550053315832190634377384949402687307620217911427661323694505612765351432230987717335358894809142919669088933258802597262613407881565956262968274580099888100149051217654605204422703372515467903438821195198502083458333882771468168871874736679411789778279993269449599472168686705041260701169615766093281725775974320624410988297823931363863603512179703901440996567952569889975533431991240838651028285774671138269095737766738248564425174202910100989368287365183253506209205171670697689814707895937370749873270956244194772562604405787643270871088557974868696460793951404077769240434688700639509435197854909241389196255293789307124942490212554585300828909339408467927799890262978398544066684002370701346084897460307146708331390082822191676429418818710099315777083177040217246059095661046626941811874520848299344842273306700343163286221623184526279622225135502577261509306038161140941773066818469997563594957693358563638806027840506479478297353641981753625127966292846794819159862439050714585380767989611170345461321859000900841143739065481727885944428392548416094882512657377789911908218524229837816517632354343995247910138442387399353173099761446704618363141517465737473333767284336810824196845173042277052903971521530971463619345721143729056147081468712286291414107121801106610598185333221077969529293037013280263471253077129402899892956002214602993341606813196476633891394823182536405599441897784125000209773193563352511167603516726252556506038583690523353003501009962621889352517216701854314244437887577037572945864481521563163009019253184980730814609458775430820364227756223205062092174127418441610370502359130399218545481468647843763678645489568565537690242037571030906262398859019011281485029406925400419468540120937916383689047316483887294888632753992841291148615087432616139897309652704515154227507422066045050407832704826396807497768961236735263491766203414969477809912856462890649033578349018005552296111456461139942931621143027154122772097744440078366094373968339347810061934356738032133600725968724922281040508873541298123685839428024964429220437088121498639771812632099976938166062983826019273517572842636878400970489334032888177179243266373618133510745959668593523216709002789019924470110712635997977382185419222100633443790700524162150966139744643829628405272112190536222373849481627143161455202625170239377526637305299203125008421408104592625448877290269536529361944222750677818441571599583594433750920132145337703982084650572197395429920296767726308029176582375746438245666405077664051470844079608946524199098881475747191018064434175955492546527842460788908608506681086673532747971429106483093668995726328700894567544881846492370972269293934616509245555878739885592681346103581157578199168224108779400490137865342706375923607630645794880265003994239177844802295507310066315606487443651212679213115522117079974293107433582865958902856454648960383071004609360269429723415558384809779617116434459631203629842542244911904840215296139871171171011944263365104070638552540267939825538203040365809201461821567420490522206814638619156991339420135926256424464307510869546964307551726087604181008416602776009227571692916482734781620985513510968078821540746591181685090364286015279997136095194462444959215338213257386304580943116379852696005376992120599542428450162881843755858163691140145409082834669588594492660811533922767656858776077304905876908990743442567311753857797649797693254833823834699664935680513281409879414559604332403797642812133283098415408864618318144773640630662199184942480815587210312736947499251448629932624937309314388175235437801275921240289659356544993295211017158059250294356024239956324292785038978543123720402623281123186341375687147482331870838663812854990630297635694683863229830040107656925015678865405735043990796729294266651037537525675989361273101083063091463872115729629345966165974945036501718768090204226942769698427115564413462191838392224296057969163662250198113506667888424817961817340711853968402007309715783882855194396447439153390454254832425518778473094788309394654489442753576188346667415389533896518748641600944265762999768728240737485033197885734849129645600200618594887123864619128853258328109850831875996581829085427824710196418771227002557679551887358093176176469437271817213779120102697104532962657608905876715628663477497122626872651031807848914085511737470151567795720420765246874547530324200948506600157946368624895594631272396563207093297888161620342512059223279842454394013090383904941936865291194894168819457991748563820600758738142621859389581644167781464190501681096510821341211764273118859972009855836562609306819083967081330089523114775644649695022363179778701616754969937302732388096937786905766935458628900997841882338052052854845141694332259665939144828267205848104127323607356414235957090296420143827607912027913884435822104834604139567678645399162838888683603180834151749626922966353069620095700902669960277995407400196836246991584693990322677299802117234545420784008233338446016557145698742837822006873960916664832487055447332845541556107589121476371129440822579067451029404439134502921893575483371407198299784590373684937655048643976067164905167554534444118668141957663573728671064676069265363309562031366521264792002602231505516183225908580824226429459378760599933824374659656308876022880410041776145327516315188680498856444126716605788800076398598336346441704290820722550560592639179962089170468278772330463870090739205875140362778952274692221213714348721366184552541150968504349678280658720367080773703663588256262288550232625866451380454106207830291371470290897078127640231795813262798479169143398288030847258952553369439265761441774164446804830871830263926911617403783374229782687015514537547005318707492434422426989682319800715136406649529819564572178214377729849580989189250256280723087051291463417479705836497291419891908121540992002268088902197185354751215445308206812323303190292526176362841550108469580235455677669105677388485272247594490698689325437183823442106869355438799895258055834976930052812933167448207341236911611930309485532641378685272551203772914935924833265378359155806516558446910608148256892689667895895091890271876098659358072277049882393508575020754708028080426055986206232621252362413018979946729775663240386552968395073688517043434874934013660645533089563798794885715828155436597440421414982310427283709049703626269351207431104886288540208940907883320320401404318227074652065563458375322651130412864190665599310108368559589748691983936467458419317024757420823124219496504841782083027715941168160288389035384856750552093256029078282790020857496091568120758588995507783402330245594058478527261967655183408377100485103535695161257006322584762861468809536748299899893963347417021722211236720202216996378600993714086697666543086949836438961059415890318600449885238702785501524956080688897049745520759452930569043192812348082044072580335951594622443176635318001386634208589851280937798395500305777211110034275915243837948973677203539361213168291754200447493435898624576941509249910301771000611939433914657735522110587399668153912017033766154347404139170440817521664703731810490538039227048089865551677504161918409908160900902680878581723720205907513421467039544158268738755720597267596309157961828139497790011396233844095783527029531197577076323021987375660924022507354836776927854294856006528526503820985507643005491042633204244854809366407797081438675511468927191169326782263402209172545761248912650615194838288875917553672753996414981780099869264985200033041239564120324584818448044608801069773409115930281577899878410305486531357947338930037241710489494537984300812763117588008219454058511259538819444246251157889122366280526475268151281070295484102276496642353071233407710683832407536880356714489135268247921065410468788035363030768982975961092147487198329367286334403521621632625117894794661745627646933850607906268466468345413275887731109061694142066259023430799118194443550542560878744776474000551950745630634641735226170358931807771201713775076441908605711030558537280519483137313806560899872857978877046503831326302397220256480063057653275052203627628642092955360625958617463806534632063673636572892081386087788024487731357834980973072162398053537781311429379900564803306970685886014083142834744854126501799585889644574762043301485176558568434992625395773329992036997639670741308821775905293641397592295576418409867151241508471178583263509119765666296811032983811611694229646310311195228653527054986011440667593044035153149830687345954143593981520984468631100825432834392431543142765863647329045772858687273091311778766633912378258128805148703246947404976941995237388537016608580459371051433902522936077914411894422869155941411440555710018443821022246636455748829567083156588364060708156343835062147616845793390961940321216447210581446947704554313876694226308004777381346279018385817285039913104687016926951289623852354885498276628747211612758874322864070541315756107543056459998672120567321480466823439401108836436789700728781167966797906924738021350850053760939553609878010917047716723306738204215360652563948749059661002501191291757260560291785752627134587599088784251423140694363006145093186421090978075918076834599718277463135399278938122700926143919157056394563775053463102383908871333569281408588469356247948680858870831258134016282435937957083795681625037651401985162511125331494852785038174283992972893181900548925275704337569843494157031362717746585817394940373257484644428981985156178179149950095340442370539129904972941594082705553096241722150956016948381161364121634595369783933917441225269155915098437867619983132019634982105159928105080548650780295660206647553044286270802314207224549695853772480622915931667124354040121530445705881043003908361077578430791974227931261299680492676752936138454358140719091373698867686389604343702738807631551528287712017800683637807613176229558085561803566248772702709758242670544838562898297651751997097345734770885914776963508492717193115512196794801708647395348187115047920479813873222861844956281391595202427854050482834558875465271694188073224332211529931689402961875074018290052240337467444734612763551087645513854245570739584158858006698958433237652924825903801392701922780888145772243763592136427603211160466246040373512114184310181025997580365593914671731273776161691967511304197913007609023945383151247481659927369105899475557946754265913982043721900059223777961089928417564538275619152790160333315179076372236536711197518158147151532872972202700638895185792352281602527229704074506539439824509962995120744691870859175069341159410749498584956150649704385990101483239880995321735325910003994139785948212031416497753764767216160938786634476275288434261165466656923947357312847876256444540156959122585092237564279215744164376048324897685164817313097583388338264601005730622063248537352320538585693291172875055155040379782372743307273830840112529959293640919571822306381697846345579077663223136071874881514550444031330105308033475575440030931366704164846064818614569803527489258861340321869396370637163573122302552959165494743949842783537091136197301574160285742499312785188618922948680760937283642324042237885947379853420031835040664016937963761350820112872078998715593676851129643048372144959047448852911626909348675418040003662967210015833337002968107338037029005553050905895062693827263025177275619745560028619012039647131736259712525274909252534987981248706820714115159992287609072945569820184868588823607706392819635842060058939834376558958418429096860369899760154307092156554820479068439190279857045132982615546470692983699247296416696225200410199679570544048159026864680523266531312809594286427792383355543947879320368245888491178178209275474027078507485274935023492615905279026358081753506343121261073596614323428146173306228755399373213182860827553560242595717924029117258419307235770896174503147233043669290955095146293201079351557063235525742924521083434187216740671096375882140225157027941754882732611059538382161262313985852132584975184418582915524982986547434305353128565303787263753172375127512098792572720040984156643934855984366054611778135161373951100792668772918613973643235631621393463346773854384219097814492793039854126488365309773144672014983214180541384066743116208651391412974077479827680253458461627725623004946208388998035973906683745952831610510692810194154941522559243611746034457764600903702712440721835205558153724348471352779086954350397112835095089691050902922815016387376586839094171899133398644667231959859384907209005906740489243672271837114508724800741712407434856733498749195742618380049756031797975098981097925749519615376942622061789042858902702768759462012891687840434307058895755353171976908703355096274472755201399506438587168946386106275648815695222991892319553195911905208127607818249196072405412799210635100029884603997632430955562427484813988137955464195246397010967286520089761376292974029697593977528500469123774979669414967529867579017634617894195530930620208183714334041322998365700461572148955182963528376911592834787666668240294388492396073833266577436750809932257847528145376048782643195274108138699177317100747471020655381304672645578703397961829538870973904989950342177140417863167937965424228745508252717047267889571968493843601701437226364325139720315766086217475121896844348131693295991124055244684324254507512441187443927219584509836316239772662988644720973713717304850252919408254599924043923634613079995709232585063871822687604483005948554544567027002561369448835331737856456095133352632348353851395712657640695500379593944788875727621615786631497073490795183689939773097513005827466031754531415089511825171918433656164998776114189843498794897624409992890329908622938786994520647915295099881725423501592908214070682027175827504840496933918240381369326679609452526666561311320254293634066323064709090208558251034391005795393223644355466124066430651830657821905689871577982509306991483395825282037448049182336770512874848227123539246047793520189121889220925889808719730003701002919073600048606147257541620682008322010451915824904417854961644417769266561383586458933661729110142338305554021387244451075038007615766461123608340864799336947490358144071154509860555186467032174138633477617961625937121775427345791459700236681113655302460689430447328911452807031537863466198330316121306066646441035422786797485322741631583031537590362489514326310386829740351988780719647836271437367733104069575819513423348480079801303727966845032571233696818097402646774568193175950474080214510698462139899075691668963231048934245628643903368496223382368416957304123379607154590453053213697018287140682554133988972795084974098124972664044728373097156230672235852225055233882068258970406229823904866087461226356582707019121718066776631145392120062940142738150787947135106158535381131488536657207749217079458844120293620240472566048683088550451213295138569503732468173966307762813931283954355070736551315799946986820537814889673542125028223892568245875296087649368005299343538023327474758959536931904384405140091504648913114975613920582264050435969671529894668031098201802082426107723330744422834774107148924486535764099849780800084681133751390622924568866620403736206515022227159586178191779502433746491847399190128642948403174058815885795175231569903921803706506614368907708724732292381165721190520861594754475000860849947774014304723550442585152321803218987664588478032181806701091057859741339540845796344694468620658179026035830592674504375675140166161737015972463469520320636184188696008922272368598435290902375502984368862892184044496540765065124607157454974248071285616946536300091816882425774327871111826754940789555886699679917190754656465945000456892307035558735459374844142746949453296410228181424701687794879555266457071042018581055619206419471868405325625697069041688759559156021457388285640787144783907918350202766476132790733038396722803222025438397219485203193336619093346300121882771688742251230338288581372270567462086646711254954221104062006613953194550685798414889630276050712310094799798307269122987156221889389259594844060771636840125149607248167051239771523334636198106635234450206523701476471019297104657083606603357673201265552296862698590817324596390282771827037169762778725131084202737085233742383211690360488524775551722191698912658642325806791234737718118467174832998037435343169304177431303890134712257740208847126800463714105448370408168841652907070724731913774549164931093115491759661044058237583538396175123004899783683814471656878526828052970751331383604264607889437059280177950346907847600714697525006180621922805573674192959003677750524909958143129501689523709448089429682457321464979975772882744704793964863470349730437240934929142100754847188856832505824979802546375684603034754517517450931927066963349225748324264724004892380141163218232479700733096313544899771111334390461481869829392102085703977795019501959465296082755169235498828715446509324193117204991357814825906840075328691896395200022587604188508565399360969338930799018897777136024056642519963102242498823912093310957039697365143510203022929041195786042381893477462177192512686777826090383085640196896077334014910989189034944856351428166176230063876748962416435947328313897956057407003230046679429836591216904648908353070071392509209279284998466711960871772234446083283555679875382546083512885272000616440578099979035187274109284413459137529993623179668737443616362690171611440511238346761743135793609517051104900343700214383740230240747293334717461881696604517379921554285263319338813385234296000842429526909784993629026792977106954279450675185415881800171167439515841937673850874413321887865198196799534976452887610443163055471853403853617608149483680486237722354463644782566495627563930587411702246170033050818078597436886173660722660236122292413207682757274078635323076951827442255241623534177916163005061406061578898160774059905453613800025779820183954889801777788463454651321127923442328086970846420161311490435992757500272445425342540198542917581282527411864704279384940129857702207128558131586078212144165702080533756221785256606318470652045099163078337634179956610560349617759898580485322111499729992731454675218895313351329855117322827050839328055247480932183899728105388240243716370678584062671391405470523770943312082045426148355040454933686431349042401248556236255548338359598656450509093989781092467287859972463165649167766401841476667497702758308407881910520367648856645286657467111904616578919583437622962929837721494864455546125739094328881635905905659503216573531181674428245350424901253154835501650951400125551997920264988956919409633378506823913585214615190212243050846955207369324287535321839055097958384422499576640736700520830807056611327249010342122413122292673853011139854633437620250338303713605240404370984439315833698630389764468680275562684869764631405967831238600326504608333452420401814846115874631174861160641543666032191170536285404155484064883530455562144744623930998051411627970841154112687677736336149230381335964242956572078860178827961134604976155596884168926958769415490495893246163852345984535142384746176736430273719575644350929230022611774375548710579927597979198639640986245325391902563882350364180116639885148371684130285406491847785989368751853772658192911863446441122144470631373051472695511267679124815431508495464864442967779804723021785474308805558636128562315268199002889220786548776298260165441841305033881342398537280455051589854585823857806309937583555284063961338128290651334811470359195700989287727717684033296354391917184031307403325131920114116483804155490380076425341704257539793477667846326188336678516528192080647674863180856396924522627140024218498618994336580637041297126333405903284081516412061995548288000555643646374024879490618091791119871067088309911293251270540757142610023184966523658513211621327666924796918835909927466908107637426383246138650771210635909178617419655022840848108312652877713120933849342702187214355388518290919287807365993781323699303200976480504820095715804052321036064283123428418281887282574240308007110470782237787587072956207478460497725648274846579323334026577338542862130823945417980670126638096788469347013375329908280286076722114041066601870942407238707956331224705482262867015501589298369429352138551096426486589202301500552804558276769840448737058152508249340472880516271549073565570635976526252212494963244769470365266479038766641366168771962077521371464633787928518474086525462605487680136447572423231692614245824631992273085788569450471596834684068940841683715184564030292140999450894958861353270016911374362344874983660945468415568378059081464219202978462983312720278769824265426117308843549010669720985093894117025571006973760709529326610134892102191829118222372539134019213197195525771623663629041152135135500270445341156099722898924026499302974851335735138851057327199729671712435027488499340847771248068576234169127995817351902853368312095199597529417478186550370748499517194027131744835039744900388322822796873636296235407562118975560903990898551628569339586211248306462294591384203310933590818329494891961876496325697957836560688237184976660412425685001427106525973357865146504863374387132101286827998456556056949619213551005902337104995203675963346380405656856664654469898463135923075827734794414242041121431487983861171819061376951599658776999683060782830724666670288435366746202826661039310599716771864965875944849436582793696723850438065592784986327401174958631853391709757000343446552009887089985367256886396068205814972823631832405169735273601050057211271856547483884773981741984162190291497540630854583943791444044102577274747242170211612666725738155737158075237514196130904163088679548666691339955052699811780941312800740175654023364075113124597819557101300047546852178966147973909309929637377084989366547820012275205425859630704007275651319247048034823786866149495908585584651085370821917904242539841610496332413822153019785511382505786786130495244991781384309178918384025881093595243598756211089269221544643163305602675542163631412618411198317520992204991347068311159188550464876403907777601691257658623716773692860578392730113840966532461810553534262762364154045030738022853229819042715166481164995409844259851413370282670939796711666086301269485065659523264404877592954013658958476430694744954816036669797134866466570208799646196779773449930661298929186728799471593702280347556295008105579710730569565046594730827827895536301855717346777944914446166760275775505573185212052016138214359052569079609503086545113530304029215195628914997527151891661694350611074035972095690237909044357350146071332531190751963679848510605565107653003156703490569225041948876813358620336053598917077224963912361467599604047041463346682974220357863647965920493962495336220759497644150240686619814760082460863988331699044909672981816616192757381016718380090232473307717899682736467104031651494756115042138490361144512179817570989379121086561197371078273843771374842134279435430093801844070125375158779974114768355687807968494706415136489162815254501583022554552785284751222041348409356974466246545687710976567724124344614160931192402151625349477636403514119133010297805527226361515677277539735994909855188466496506746945501374936919262172795420891379217865671845013740887114881843779782709819839374366174356389611042937438117857556509266779145996310747339486305446820666131099977140088181644333570801268329459946736633927997419483342627362028733427118939813927370347417089593682956449531686364366114872217136496133119324139830289157082083762971214823039444021267504508258273201183261007355567598092090878287995272177122518415239764854194025514875142081301744431938974412504400735254111429468955491530244647996840121769184403487151205231229092691368106739892045841004848222217003501718424589833627888893498477183813928691806120535406250299931989984666037709501436727049783761027692075288974769914698758310508384882825071612214073645530797667043351924112186318342424965943338398677316031009910167606457943057388995627146740857435544307902939277783498024106429566335380979947518820410990126833149386906570411800509700990012374892488196752427948003441871459280576335870179683319707178889684750802053213378213394720153223907718274535465393448200170907705140352631139074537611492553769011889622021407604644752779677029547873614357536307276863250139555973937275552674487767516581491992558074765929593784752166579357389490399427846060415218630458599354297006340473549028104343173492804219060954885489354458808551721412010024442586962407518978320727509459903500669590854538199739206742940705229783436682698739637207700492437283315373922492047554153406042170348893654312920905472891558162272554605763052123007488551302217804918200010507077417545486652323145968513444407734830063322757684834205048626003346219205098224280590416051079818455442867043902757571672280539004640575965277465949071172603592700298457998494616312800307438301609562144718897497954514848284983047213423161498792077913093331468105527598130903003368019352425958141500292973230697510981335016760279029140224926067160046580289626742504005674765642133002175080992367262919556301911595654874507689265274634665426997884291376408488774933742263599247488538123132646231489787996907378335548639088224180652162032097320936378732337126587048227170392570197734956420522450281351586429637711408673991917944802797146567489121520686304101656823669746195667083966245038054507364580648771292330224289817585815652273671147213880724336233776526575525246974041877817004527208203534175446096644485903157091001917360227205909276140484535730005886458270042390116760961043410365839801715057621439522846441058310857963232302128900263940056299965124188733573542442286108789070271462980865585914694019102604957364969729227063738281996234889403633795797114012309582135560237622398477164156442400479283858606073822448854324867111854892393442673073300190192973531190844332369564860510451652863309369039496970893462545812025997962706029891683497494544897005005546909507413610015324033691006457541986753923300530146956981245356812306250142877818904517310185872357321751314025618067771601889598294618598447960938596033246243923377233823113334988994575482278697623950268858180693907941007544006095690147697015625747552024339857789237502738354965856804007839374890213769980251011511348693692401437512099113850053725619770948581722041001819491305277277165017061179670355698415457185427070147791178176101909700656051829769955936842023221022232466278114417951259073109903460454241187626357894011506119107144991581459814438695799065008412714480016019332121116521997395048752722853727478324664838164437697387830791676173419217731484905015549996076012929103621364467436441092122881076269959756771511509179337104072062490874325205586633638820370002535230689612666353016062439805092438416926676934636722922262352564335417841319759715111542181613059829137004548793530092135479345187666235982460467142860958609590096008960130725865370413212628033105178175754152255638478538744393252191362234586693741493995385488676537158383961396872716573618915639815955314358415700591597974153811257675071743142810546897006495647310507060416704619020487099686839799611089043489377197133241086528721034727064518083545662067825921701758999432968057424814116200939303189460120016791538853698246340187342607293191138897144988970842875614398230119022774806149200930067941381472971773301617363297593593027556117650255491817267180981221356873476782613978962418178593314617195059868428322836333769092687801958363186625020680497598771771572750842552702852140274048636119225854482467657276378953767957546646399382060777531551546786794331705396588470015930644371120166875342851482447028784375308191447194397079574329128159014153694305251659247245852780966483356386230342917927310088133714727273803919677012786724504264929241404893283753561479720021326548894764986898812728961047494022755139786089275170142985065303306841840194994937895131382688474910661483401411705885323950599607475351423532953894435893173476251376854912094810498039581825140347098554396351377793548808634102591218142808018550660307710620439369941547246120444289872009801043086923492720502204798654087683302056776237833259038817056895536878448094934452276203877850094691910130671479560130265661705625011191574043240621206237848191795069002423671474467985119690552770932961459315683325681953082428982594632134161495023863378450078223972695411293909041188409527769303302862411692824040760100902539971985519167081785211113142202423634755659664626427823530586052018889889347836620747509331677142913743745646335360324601284064201140000259626919638056399158386547616448234761561443798757060530247438716816821151912232750484558400213099783888656324002563193124022051291579256543565254246496248423407966441500894717099399327156867922075050600741695014301032233962714733990173959205904581010930761866083058881429207149040864285550520689441759374608532127342990847057801179510096099239937484335381082509706423493935043062985103638018702537932644200597927845994114296469452945111422589024040798091652774835541537889681937360653291278498656438939086940355841898054511363371362483043209784721748295697044882404775345051788539559613157727364378360827298296206939832539404156273721895296639310893790840992849863096926934944969773873853544447926843147489564814323025232442616397871764510842264649628592982860309161665078445161882168169578672896668954396031681991425924972857231232976705160692434334435759285888403816733669000677770450394249217794232761359547557252294431170113649265680369611235579466164914912415705741080416848704221670583808128683323575112449766235713652843309101328356958225207391784008319993978718954788236142678744628323119582282823465031201941828000648902756951975018995868737889118503201885062332797046360715408631350043051981428659225812236865091818761446101735463552907847064907841746848552048731031169613031988503530681146153673832610023657550893906485167257809878284378659744243618469759285995086460077833003538194842278242244715083515170150644430394758986347527813059182158369706473884745155676144687850479832468174464049119013987719350434529482935766742892692440369221342082977252718948746498001254406750915110949314931487366880350092681005165290484265337106598978810543200316528880900097742517228108584869466115268505982531063672900108999577953164070321137079213680420033539082776472469510193051931587127291166713070081643709820428686034788801387690961123331127326828917506456330794835384525947479545316686818795868250758328392629939639191585189453453815861387788855460859533476592512488902215408759124008358582153103918295463168115261598475686227414966175329236738948462614472967000352675737961056740888036231942587222582731108225430562436480279799584142562234762286023870329755690048766661468519464581600854612141916990735895052938446488009308158008476219459189645674110055057783990666439207962029835029232560741946957034601160178780817204143060740153289063651911938897163090856988314573223638149449714131897556499664660646463848643321302225115929333666414866729037242935676037257297836385855434113776635801860438398322585726714278059858041951650886520818532539127514106551009475156277673523314336772252921591086757102232824457446494455431740446633971436692982778436448132442968286158715722287543770434539141513849162284806482031926918767809069659239239202785670487839318657139110599523389013938979922345450970060253627517898856538778972021970988695683517981848705640836474885428279182443949562553971080373024314415214431656859863763041541166481031148014758502910936462992009152558312214127062210203769554269609867895061201703826752277659801580927809326272273917699960914263141572117987223891744323612311420706380761939669729794702090093403808642853953288926886092523228643197257639193017185391597308553961614264260614864229130789894160817143871291768614971318993248221075261169223442213381653188103247841192422339815900236578245608079013781179363808632531710060795225637203485485418587385104185850853239133558459339853164152940917605576779752273899060338491217307792543443717962616085652942546685431337196128554183628016609693986559036124430347809093895087303518056817784549165315515000421196344799925264181795538720878536535517271277066709699803169645995569676659002201037475345705237558347820224353819789290965001682644559595359084966346788389516904533649018492602285660590689895548908910608775903376587199811980484396344470153645043032594752434461235397268833859616835414615442739109047660609486568399264317946892423499463590185564575213384759182488179956363274782381949021362560051696489931309721102722631716234778199594228444773275960256337896272800335453925395945714786720436334652722090606661154200867384452996041403648599343290266569619499753199701480125517050519952141117813774618549692776645078427344860747400642943130871322769127133703240532268065458507567909940632603132907105690169866419226870926479376157123925043991590747440538830249007000028491362455321806628694523094193045085204439748601046453568439042699450791703391525025036455823267998200276032518392070114406444052515029742129147563794792365596253335816066538330269351284021606204543114420281884318503112974901079970700739035151914429096376100696371837677872027607929857972233120606947013913434112700544430652151047081653690800055052560373508652663317540575693182190767517448646471848773661511567994043639609910469392318298761167517910111998475367594148547633042700757571500582685125783266994264251812306612733635382169003515190253015384687623285578631625669148001644804283168212151251188760763819934728461199733013668059286542634536479644728605280782343181760895001704049607542164071989557348829028036988447251468235183802757968319418412436300631521736460383149411890257169351154834143928344557255934491070138359366940894973527718558994152826521489204720687576847783993041309477489685586149360955617328971383006270331786340590434366303060441233943517202862406466580316644529706170105541248978180502449844467486784186882485560962895768682175885528076430225962057347516674016986737119299356426235642815419253666175830210698393658201459587781802644868260768517918248251961963178971406969104084482433128756621770140963784545080861485971005658179854659812166039435225294702753328874416838334277039867567941900509246515916292940375088735823389162193487309135390394727127294274969092202986605802431765441914694472912414729654888389234273025383046343379164548614462365985618275587453842649177532507545996849350860543851706460565754220827389491771860052535692962415170899760102844833193641695420835083021845999396676678005207765831336267646643944765685447829470405106700308958877588503913024368227921006154245673049256545051546123439375653924017607605903328927982364284017301929628410757343798527664563197565400938256762228323187503888688248603246029952870704066226830803071160067668563174298459802804165695440768423943380006180501843687118961956834380624927277250395284808633732787544586817804110752473201558952814411062687925460818690980448917631268252299716077955023674982218528393785377492653797508913677230940945534831621911916794895934920187854154970461485700887218642873438484438986444314672450071810861167761692457594798260826881773627360860979630178359103429200932704866454248081236355032017492714462457712132959667409556402080832616840920936091099747887449539097182653519206892859702384391076392907438949605198254438376939208150627030632985025464636616051321120493571250087630692241442670729042100085683238955638924708396461734860593681960478529670867339315144547170900789821743965789589604196970261625120717317386698638459502886498751734987412519637125630160935150500461452216412888434738210790567487599117282260000522341564923933095665337501557409999184345123700340821112553520028971129618963686247066452895865038297022525807767496997221680805837533489776076575148860658173205194577027340843066865060556347544165328269273629505932485908999725077843505468435861455452066175428682509107152107303142747743808871189365949470942012763716793955383064209806545936610995303972121523678844880631405540695283948412410478676647774121772106535617038577402565890509636783438964459013964575515878913143761915098227202228731197254502118287436264227256800342553743180931924723642357155500197970422965362233107615474514916512145041714309370546849701809995913162719195385009383684479105652149663993414249998044864123536927561856763852166210823605755163699212851910065115784097512027805881429912260602468551927105744514202930427373827815283688057258536278336972408935627460551975827321322890106021136806917859552462922854847097292334064784631859055792867322203465622368354020350862454369733165767012261013687083678627679233847648877318646745250149000843183062000979319318253505619841438198626585973170491027604144822074733696088873300649394081363203879940136122403894730328667392319064258155867805747377186561861502336370668216287972472919278728886166870405490711733490460404258427517368457257701881630266664820750265424339241552461126379226613042616476427961929060529088241062693975316007638875466073732498485856966867871819756610616832318560538463454862180734205356330839345003596372739436421930719038402619614069186306777381546665949774012072359353372747232022176488946953536756648931733883654144850508107388279670319880046524688820452859715289001666699994216239746527612253937229611694077306811287843832174720606904837362911593251233392307819884774324615974410494861345383656428599111247853086890559923875986541769773242130234748492470626301443997442377173122973934021179982260389651992759582873302264406947638335933520568442629217849829584272676521452216897977989195409307731203794333396498239464459881417126090509548321444112261944696140501760053358989506277250287175482703800370871709080572975818117801895915668645565426847876070872954467210523750978356093752061027549307220347217479076069941577645441539241896555923931805447351845884276962916923055218445943372125111017697943501028219950148051189944735503412641164804253505562620434290298687305432452519547573043772320223877065787134228217744849144672522488555061197448721773341738187147494644079783533356821555207769826361649920881097303897789113327532653439834545143583096752440262813428987114929377933845265805135144623354017142280048953674421345944897468188458870625545899643844311863868766338190670754995036349969106973987182553603818100512042235648281129175001849458442317339300438531867684611156060141467557658897618439055244071786361785893550672827672703204269978267786049786870012159810895768715645103559996754280897326936372581186705725703900152716192258099215895058760878266921319067711868498478830709357056067462217427349275208241360791773535462250682877074260382049002129901736909634084483869198135073831204219692127863121169840809945705966740981649357755112803062015289641372459729398233174927026683535903184007093801741188295193868392578996927552841074828429725402861442967229631640461541915888014732530735517503947614557703148042135673772347481456958815850906512752582460767873789736463804714931870098102413794955977353114745704414063887722221293475794535613099527025732625212144031953577090753601882456310014913182289428169740103262218235575629505694373723516332461915190732022223098657856466228424317141340327000103503657592737383834997317327975234995680692750584800483178832789363183204431758739870780444000576359831922103548743754898570047192763771273021187227220983606425870311310236887229102475170963022801834596102165036749479121142292470463768152392174518627768561637325233372417756168056018525574255214720191628791467105168065840851043255536942445954103035078107733472302651549727825035290426311019945187823104595464130346426197794787429910441638025398533609686677880415293106009008876964205578546872431436820759815074667882272270281984045514602008554067233647894665731156149950912769488221428918674862272454282177591441259728691590125311200693243698946998707449180048367074859316768599160693526148774560347277698898291539352409602849088712028250776210811654304961899142683707158894150485431503190475136537965877973284335117283445548614587690311569618287096623833450733486667044905550809535482035678455113677404021826378245279127453749792606513967620349699291076902011330846597370057159822200052025548952491232400546730027002329646964079482517231673713242175856708289525473875897443716439642610760409245985396648637542119236543876244221042404125668990919320196866182029726116247339903478455392221367865671683482027985923672293426840757397233221979458916757861381540160844244312497653792145637968212015200146319231906345010760457581308328476353868758008597857166662041841706983695205302748302756286274407595752710094153749121063498494423904110963362183556491666755465208946113373817514920789108722702156472140176624995052521465982384753378706929329065609126364832873178612133409375667895543182466342530788754499431093461854595278462345139273039832137805927686487947836938624611114255278598644848687499247940304310001054037757931998262256533233778011092688289871416104898245337359787881134594779768995357018951481335103932531356117037151830000874194462707910664568618757417689756908224923416192370889855854937742077087885554903715173186998901229146916654210295783740696922501990294196846087459172501186689971286975714105283258936158510642660484273184981082172640773228003571455891644714879401171831338174709506192055431362982700143962290444741695683512736855954714825203772115963542045080576312136220415837126907059593778320137011399194989375363262553106956597899239106495552559759231399663490608463351869458262680167431431338461190665276411824452341469180441654366506184544267886769318825221411803650843255670955762342247339408857731928126180331176126866381545307081912461023172516111443569805868750201050535197512890769818162922283351213271454470241435560064223129448424629910449334338024749520534781091180876366992735624791864362951020774665333572515977166357912087116848474604700868009162829114842400512312831868743878932914748848907640688109698479646924105415270226534539413884936102497232137333734725145039948992658074565130625931083773912967725809345832039718741405745074362174747636038212766545919443919915018144004499338795592361492411954452846318219849586484279282030863071250564337745647521708637317804379328672785487700980746149829412583802359899795553977663143419065135441052797743668109550992945078718672913413662718827739864624943544138524283495107974969567101284749772466057810718150729153179079597395219703553174693307851262952008875429352514018043606237425281862935573517618868659057627530626436725510954734334449477889319660407568024000649843825738726692493845567026458865070451192736202797145948019376793306478600850459466769811217766587027860843213842248885966179842016474241541782844350044340469891388173251353620282734624998292877343361636916425834420373725605050238785708761262615048646069410245612263743905060795810234845853841825357781647226795054872590376823899095499176030351459651445850281088607187423171658079381149100903307056807287200221956189465989001994261012884609932568305840446570864644244203304778199086858646757136903439281417207579677224653033787874534312557948562513423037629014464213885936228200761795167428806068365553370144748631710049771173508674849832369233405897303251333076093261082924152744695318619559197130909368664692217674257221112700000459290265107619511097153259997268807566721026562010447360773939691847088120335984205415651256712334182463935082707625452645756024103188387483043037445161984121400955762654978609920626853587460224798124370426904410551947685391136427993664947597643662850947960432708621117914509274176333686991929058576147339986919249707157897116637080673109821951218015820328402270272559902619060851994243348711143905918271794413138236933007508630051676541551630166226374703751649105969051553356865713595578599660049755127954041911623959835978496181497902759867232642447879125264194972590795431988163666673994815291014519544765317463388965091722384550634341193703020483030005589617993757477952269182367681468532496693830003018062771463324990452607157718574211080174167280985601265773513886433087760757170936843475871201864970690066356269531718237411064618815530152279644402991281520414851268303408361776559361764583621788582146951823178999865697471816840429288999194235335627096880971888217867160534233045008415474173700770749317429912618661092362254826842113247995651557729400193237156888368836533476004050440247925536406785312944941285325796333970298915678502215573993834483109442114913366378039098229217651858643527760531379398115637779805926465299482729557973518155801748730152784424183917471533011545789704668029500532565546199511549428277884719599589951760780304745960227583413233467773149166483442357921010963082816418653997667484149057527289734419779681680162850775661917738846479713908270602933636917536764710164142008027055300084438219093894779779362962772609216583850747341093519699254663052066857774567930253387170963676627778613059662770022100227101334951937618399912204472020955307005399921845154368404114474864539070438837691145700744864450073803883288157250413145755793978544528884775923865016758967815370823289234695402318762823025717062770123428505578983425505648519731849910688763026864395909513050154134329630368555087111192523526631097371111020606110380087684994242479681702792948540927138138967199188757202581100806910301254974156444651816372407709037561235417902294761875861353890253314435588662394602606973440545051335515876959678940577857724584253618314298693041908668226083226824081141480830422320804693791459952911031506393911860573520967983382259982832677498283876062621070394679249446394912163022995502273351417796223135650000089673492939473297181724956212383871011899385004811999720273393752423281393848992674771639594049313348966452317238890991440491797409129355220434915749888308734272403683985060051480241467771513178851851167613232090698250750332652506640224507097530564169551107564327770210487432940148987591005818230514174403669545848483289762737793765586516053608024816933513140249936560018760247744182636894443689858619513238741212123726913171431769504085757529501463833127895604643860852238811098714964202427377916996113952707337295000778089252546797762234462613023406559073985844201874801987980995411305971662461562950195681585983782092371751823567770995623263943150922667081433388421493109376320797812506790848134809797901905561528910934072857681782851282550218515788319587519377493164949721646127299741600791855956221191463858731077638586157903687920492180861578508119212954518596876455781671927713128892757623275467399102066935947324764479763020143673754822579884388347897068914135768541953335732297338502401932850517083537209213826921841986148160095681454270580710996194242881713591394516850247253907748271857225025263282316958326227856994035552969609876936492384843996589894687271892579073317622679323076222842827622915457757927356428470331531647519330326097812259156498071165429052998449692080195532038296271329415409863335900405731427461063701285025042070026508441951423165035341313420544246121853635809657680324012853429887804054697340788544166472292003480515724795730818590228195171514643800624674634052107164308026834710413619249091897964571956099551287322400599613834272796097635266717593304452572910987383978581065872487508148117954879909247341233982650851100215628033864741162421766601136417161474152459311226438743648985533851508595035225605116530951422876214150984724333682213331101346096592199734773758674107278927365991312171890918691341847684622012401138765412519146887064138122281333445715204861688794902608107812637836656464995013292778756882620584079927815435492020497071288771435297717794105450267218643649915581304465103395891709338696254132390514565647069531254402978737225399451817487624790266490586681897539141130701760902978030425309949720134235278846563678306844939815508605474894857559457892401048064379220808528713514092263631392243834376946024863051294863300100703461013554258703728407184886176630963265297523662166268147551028806754800325084011041856246344250223652248903405140195030861641670276145597649047767090370304272983718268196082241995327552662041279659317951567120316826202381868399893335954651848276833903966196580452413616389020449531030177529709029011301453856235309601775411894550150245967124688593956874747822837002385846655805725668773032584691509472755582450111254034869332302316673706582730292104872617625052796805639259435455737049299578863934367054173583621183963438711875481461371154002236141682237730729960527454836434494108098140763806028559743678425239786109358516155326054307441937026406942722391287582178369562079316077197914511151245494332767669193165053267603609337779945951721506486325558779164274401108769183372527782151338656655272200074877204649742273881632798673631375649164167029934159034702251962954148814168331582073321546097545640743479846676418065617635925070777272632120113475229319344341083186365503014160157523090753040466263494778568932858219001841361019989320603921894077511666683916629544069307013832955501960350213447081625018803801663681521739874166135856327502176031605815175596717409268198952803401549489840658333884079931320448560207882912132618225975230576074450969211872794415866386672595030094130477928821318533495801982434732382142393725726528769196374005319473417198447332496271376855270226330735685665803970706111029112498494671298788689861115472612043775041127908637988055367250163095964593395142308219469958317762476211797867338552395430267496641447728700145204838869800274465197198232036954472790782251346940323590659857777285538149491193802171534264524744702844101232422591905391753052125095603232084705861018575998728534047086864727966468308945398493105727540511314719216897039535491029938842121204466937952242368960832309097520194956474844332975722959182329953593260386734834928054349411668042085311506782005345981679593430555388531402852152270310426926675042712254387702908016442960706554855527581049396324736207912733797428796373370215149573164340989206807555127574055305277836853573800769573175854224130412915280061641667964358696604252467633605409077777208444239180992844638275296869770361140620092970781808659202148739459663302275676844613790865632679019208187290012024566813731612188102845732392072449580596980414069820167343291190745012910989378519626192661236736487382880504857491441567646411531974760992578089578620273000058260779393988392718328022843738207989866496400378471667785379813039634816016157582678602267171822180162054571008287264750587937857834123965901515735645375025392486395913308756912935285507728819805713439917168895025297477274554197870061576293973043327273771589430424217656003948136973216325520790464125834255667284394580281667713935543554267576372309810310718593734200065835242044187878017946403490516259612440603979767491140590326543431119677038407628572051582716132550280307540339886379534694554704053704285171850297304625621079999578510965925621440219509623000440246467016200361723658934113840275565596482804787629752666270973240024746496820703650678991382387409979486516497895074829300866523891410738616674755779808491725629701301648088462648183883256497352148259421193794820844149979174769097599892925052873242779114988655054591487481960915445252596508302455383285143354024788028811655522652559383260754953008388734037914363928542295715521063401147953313106003943752682169791796643129147464313951873816377930411896458942584270394909476709283165397204625945093684324417224432733889944190051071935512706837201609228963677620916825246609527189874642355232056937040023109054150891590938456821832975885390205759788830531351835603697408815086912756981982785195987117042844877925206747889136660958472605901756294766735355668170692641598844411958194857383522406819353723635596435294314923426040360929684177462583063347054500421658379859758170586455060738870117890309787345798522599467215506830160767354435688163656543169693912999488046819814805501007286879703377260071813129217413571580036869811914777467387540531517341730244397187278411544002329795788816085455473749155153967495380610119950313392704036421399398623766024311003183960109613943974966124295351023411465470617362840064018187282768834887620219133485991434014439664483426176541489758313729136023332658205584220414734783332670000393696256113561782442635484280663690564424939835603570436345342384467838534027526700338120856867464674646752323969236357673830671368704312762660810716442015885199284734780635536106155291179927936977055210984932315784736482766805982815279236464755544337943879287546800347667086771519408402104732193355011722991248837434106077279509081087204110395429784512625139424992203182839308996694473081450242258160620852214786844623021468889819777198572760337266328522096777756445024604939466685140509733240740913676083867551016027314131452833794454256825514448856813060322624597130123821751292478306067393984769629390937362796559305312351205677159980759916894132364759972042036095389595485610741551879456525572880988484834938107653079451740550590389048560860620543002853126770201796551356733858013431839783612896398818344953946919127569851582685766776253798515381913187204930002947177202090239419777321396880240408306368000642078688094604238857253006392143031206526486879936235911826687512218561511008552282502236635315127499315912901835116655697433707134663492858513790269389616747968390959327528912838557141244537468105832273219081462572354305535275705939179318413518155346337464657330696985954039142630803743159096391925255200221217993795916969937106729768162029475638811170301111242599987857867551731054226698556687626223713321798008029714618994144489983399567811574882814908593683507732225419581388172716153851004166799115607892961600008853011872357815039659107568447895750842156349721962711359434742955731739456695552815792731889277333651948867470345786790836898813814761432432867000284626439769741377931582163894445921921844741518644990976305211155822309323044198653473068824729050587247651343264934360567770943104844141174519165158067460054954754152411188765056079662653228243352570267143238916268599689892439090519056299266646742450621277273292409411119320981584395869528911103446403597196369273287450729179831563135663084005036881938860088322751158249888281256105806449639124955856734783507575998570833128591564175136769343074317208870220480070404591402657546262474155470577364397018098882145929968118273634705358071770171613807612268537129384922016479043942380501066170793818005811943834543347329399836631417085776284498934597071168248347933057913042664065012163410488528727096169217081421005580094376773871748118739376049504389537693513437717466094368464916124082720054367571993308174868772525666472554575835342377034653083117653233778206823724339535545699786941736632007934541510031500434728172414216383175193346266928746329059999196696454051354354997397533870859630106923024902473848689156953858602215564577586102382752386213525710359719182389097159305988391291370877894042704304868259871381157855383782478084783502628075774271165990055438008217398968367936097869409722795738741116529699546161547842071808551448016695822621231734221219986046274463341596935169038812596914884348837131845725473555734866152370295103791829556054367213471165321243440090184968751360723321984862719658775099483895577794107340639072967406099331316781236568513238003955100557546946943623546177439061897517167914791754772732298124547261221838724555699949273209715448057727912409394450557678023770847596980237372729613304835965866267389454013949753706002178941150579033535972191112098643473384747976084509202872324426233543324786927625310396985524667823524488576112086384205098087766425732175381200852339447321089661085745207304547748772644761006571467843950654374088222199738800841330749079563743469597222686735060731341485803988679130785632281910094630992569676057947890047008906946070425490202072458080956681169341602457618861340156475228825212159562874499188232853508826252538184323326872048177746292660475232099095903900705393607546165717212139995558697283445637083052044739267328877564963968679239305567209764288516667665485538130219069130985996698269907178551695300847799167087451313712964357003676842789386983317904133203274042445086315706245621013262888415222180572762153377367660048336211967454268995341904818148686209306099088392469650547628414611836650638928624232119958504351938350949865236331072233518019579261575772002405451035309416869691841965896067213457848879950996214965742582792035380898751918192062427446724021720361858079759715968248909377858733090909608438159402030094250634517662340542367141821922802013187002764866364843691781592617990796519169056853051789737086545414922208053736706872453897440325566392597182823998837198652266912621581617402103921776395298745185156323108547192283937306702341174766496852762822177418641686682218653875420109960333649295922968959122714932090526611592075706798610359134321811598571023906508412871329461312014215593385458970153190303019019032671796308882865133163622665968320619786801069116404296605353526375627253099431917446318473950953950395436139158884804103978930260874266492332896722308558974517900578198374864784818908034759438419393126729426125812457373918424751024393186827208892863744721583573220921876382661685918331985596471684634000599137956178795388473665363364716919850229529932950846592219847081476742722731335939227923326436815890759135427672148552633516289068946640897316798245747307310264513941666761929580531932244135668594884622576573066150819878675833355989717739095889478751151783246362148670947478332018706255284229688549631258924727208580442603105245815717445286771259438003840450535815239712030914941590337287543687277146342733262025192286114276454417815444563747008713453432279994410461294636661088663203536066904287111778037583226635631882606177414923529411795651892297508409000467888945009805762922210777485030615276998668192738260413982518742052969928597229347660250212416409340120266500810647086694680832890795151067834454224864884037459151426022679952482272990720521946889903061907990908840074248128589296312400554226778159430743601307697441089592085786550862332860585226324278978104072687881328124120349369713271287562400411090327163391547068326721418238695400999523307101460512460252334717941410485991939631421882525115420908691486649078622213522328879314079621594251145945886538721188451309078288740061442931412743075710640924827425745274005784513611858922474448864504208727799176604662023423638144999970640918286218173495760854740158148736156288346049062067920589152535945585319348123715107466823710961899522544473055526757245184533778866733204630136959576627026960557368067191256400608323503358235252150480408224834743680796304725181740671869219008295256164267566722343363573251522508983275728915676362286113538958742149469105034127802094732643813811423651506753052999421907134788846008617060852069904086979566216511494328255814324552673193038084316674060242689960979305879386489610443665233575691858730548669628303800688617632013621188003039584629570449483828308507026951441645905094881534975964347061953893721954309898689988437677307780544160163353540896061272522442293850554468143445162391883591148608789825003703102002978221076316877848568234223974904349853430058091979210956190205098444115801848898788967259709744477409223692007329635914044842105557303390722817529719198513333913427920205510602860475308739607220326162408503356595933834600225903729690018456384773949850419452328169611287193951848082005378173198874563405095403331647777047118700486017666231015971243775636924181869068241382193831706988328870293549399858123415638330966545232594857437751674002438215873522290909519476193615246855341446449769410959671110194812874247826568341287062355474293705865214305404154886010204337111777111828625974834170519872084671189031585876046450306366482669504958082126039998633007175855320321769004487971460006946025008228797833291102253518115473855276644457146163375328455892089289072365394977648094344698933320481745643832183949297247985746207289749593794508683848746263807424376569788078799214179135171803458609145543837465389708576721224142426363562813984783151621119807657825078154248083508104933537591461573785655622042693733136431289373663421926152339670820585610450356899858048701037942606527812658011578773074581346003934691126980245754095649073356595201977377633118521588193572134705972914246575168517310433776579843482149137141299626073583883858542181525219830306748604638376611119717735377718836663597813144779649154924808112632069362996954911291840046310607514546352729185350472947386933688356930862571227807600555384766360518109662196970035549081955654269940567171065743575844587277546598852372515586949754381323161424450801070610770775465649730232417069066382567058771850445933202648952362903744605610948017822992343565118814592312015595394301231426005322007548118836818480423128431300925273939749142530938825251845913165398373884234012117846052004649857823319598950597947264419164898899426777278366052677163195072656940976877314238753972650821374329875468487341896950395221159494472356114518697609647229631918259916369886058111196200332927895470127301762134037939282655117954677809718011378153610362459459413612271418657588058152817140863297161014150358788284898063498274504190603711781378505958135238667891687578251808586182329031723453003956131162388446580400956533929152715086450862937073507015483720152231403926673432470043705920532513408383730713154203584745266526374844654882547216970162744020875620922368931742532937892571947873779501493994524031143518601934530798246645321045622491240297989417239495162745942558819521636847184677495800261521454745806120091067021165125869911134545232702106747110106616132479417445981572731580344657113267685848211058397383499919253856833349555259863185603237166434730841651915179566526410047732708390787407780621418720550818684500405470874034428515011937597931213609743788533242376232059123180971740001009662911548441137732822044569711271090543822165719510911652981755027673605659759288565397513144756404308189727986061719640131197394706214326572598903036851539436406872189744887367839572133176791359385258986839087583102314963150967543973836081998671204744689275447577048048734175505797536115212559907056796395911846558933219988595199796449773270318210815304625076914643668215654909532707451935860134612616809462958838037668456066993039675003964734099513520874990960619169004900066410365679896727427140642269811816047814943573116142343164092383345462464396066649217085254363298976682306332498595811739985818811520527244221577166554748641169204087189231082437141317281702328290661876721162146071690456340651372967659085803971866956332818386427226342976877459756126786643252944051391903576910287436794187028048240677102691249497394770455654772373980707885189970807383722091612387593492216840086131880571542532529010561281271961305454661282481972735186820764764156327308070514713971440364789850827889282377925647878749798583757330586078190941618794427417261292581342965016634996573726318028219605625982822668632522920772462651319075079119350105494513886468855837380380165783954023730558242731039986593008599731049228537976052020615388318183031032388991888994612083355167981881642330237651372998637414444689854717373240640316333610903150224512581598975950409548343776765574627228851083373063034850644434291939242974342383073164766871457692892557580076647939177495681818569527938839669183579436359904917963211680432249184128133966162633182787045423332722177850017198909405593418538849421901864425920655600085263257798518081608530552835405718188194187389646737440978879600238879478651761027243734516461274501379268463332960854895996620099099090568207854775086610374396882741158650018035765909290694458032729478081688696297588118218392226661464331441285918082108165944467666137736629307193792065246771361186926447462622568356342001025511891750939156667973125702667054118127131001993281198312974386259286715026257631039559703333697163282920795150105412215132066706438819028083697958557209243179386511475311282065163222268874805794498760348963897804310703257961848821293632701776421584077381995682917413223488444704286214002824887175054971216863602746372895774373241394328607425956166736962535660232189191686653630305562425889585543644993295775583195095482421803297060260010082615789751610410695943168754238200310973598905558271365397895602771257744613354613379229611298986924391005728206664576906131641798716907938900206430680535061423581725453256361623302710251431632056494168522679759500991275037121259559255967874748123502767101476305999235690730307338040857501585573972763138884798915661255964408354193989377252454270701421463586309419227246967366073365343724910605044121874279891574018933879390331303436248479802842108706543865626491717295962419927723703162222394145227552798683868722502610425828253488940662260001781104920528556527686011027796890597717082915275146675724643745755543543235904065528194649283045285138656928129824159269012042207371418129615688447404269515450320894427421134304240538191128453922300244493090888157749465493705290958009255670842463527004680583171703377140326804447795606235993198144204308117185743005919762229554508829351692306916646407076672655732578773213963383294809248083408622806632323107371728458150706260357004568416647215502381680471207922310309050048122533483481940516342870175117049647491512016790226795295786582488008646327872812713619921948580145933101113430614228140971668475675480497236534661145340738872146537416104150413700324215774347402993373923672402021785560765647986435007785557165363212938892259107207266022208298523580608126468957777930541053825148511164673213212969856223960471624292386358845469781802828834397269317246773491410460128117897193012554115914352726126850401341241488260430417877698643559022867163241176334901340979397124362152703446477132009069609312120750695126996770377041320901844917934084799848791756993800729934377027794734906738641119530618934670341030285096431350890023882258359276117343071992560260874005381371552246999728145049393881037508030757062016684259825539314466485746928772612953597377001748472071570826210639196307551098172361838841437382099551058453677067084695917392168887292778031555704602672341402258710514277128159464434141066612627528152740676098834337937186729285763437247459709786131950497377511043806257131749174851790100808129869871423876151130843887666920558748184563061710846900235757723368005789228634983795791989085664468594690970750662752302806048716535965139524566043477427218964543894882740309222783337617839895823889404471103609756436495477207302790928733298741097688262507970653674543407941292153179038908133373393001012832109630739913703176782768063092943185702220432736253495276427817170317690562267938639972403596553701112289913823212629285479436069841730799226691546544343019790986363660554421273453028537643127390481203994770732585126167760080517480337008357602576856662991717413006914076391090153594084835681978181624127631371789857822828622922611256576092780980530024247295999806644948544424390005529827560023068761239327739528108365268634165744824385845051910688746640657159846326126195840689560455255094966189254252744633267369187902506202341179840281864361368179778930437989315034995955168163707091403824955727424643509720268492637283251227792796340810728402609964734140217947083811911875586647593397651942329872912850533616189149753177331618771454077350828141537121746985873434874786191717156498207775045719678197588248588543220736682980442075856355879784463862452883347853695291700130258399304699664668714263415557230476111941878180469184943724564370607348142899176989284171529149285139305782484399510133287292850008298409152631719454485433690620869671242188723671182452121325679271981573361071471194392905438529163875599022078404587036208557696960882959763557528500611393309523273596261983929287313177479154111326636248745329608442939282041877795706759818581278758099726346271740434622835763940797121925361918308927164059925243733703279111270717863093117673598852339388634369246864924457553181261597425101096622848315557651902445307445252989231765928375790501160698482632576852491615010270749265103290130985539855734444160786586244808562714476985346696810752856508321943494343481025508108578221569735315384007336129654505062526627092314178014712824549741173489611589792113101941624843230822449867564745865535934846255836587593403159543733284825579299509311869499891652909242034530023472435866528818209523145677504303695199331833899276022590305476098558183005759405989669011991859973943251589366594525081138117089519350211030205815000533937750030935991320356531751775124629818962831550431945000152227021579016718399575842578622176010188379085294116481614620843428370551123798158391207987552404482416665250449784912153029435979713518931191502601993795931557506926645620933018017509499910049043832711477422397256835622774618182072259741212631434769868935128945649528914000040556131227139831855933287008844580237434237325831763518340286694988304170634405183526348747692995323517446986199239598262415752331620408199915230297760518196674026760402732968639065842956180118985671797894030655176400284674264575165747162868913654344933009164169080129998537720968732464710731848945618887153943492999538727886083073525891803903031340376725643014507655972640100502413442532950363712972956721884577385176571189108129321975423052548283118323749786151653422571604917628425970960103275905221199904917373446198285826372349035324078718396671548187958433821069126134765323061106715767366863495536614312937059212726840614566090217221611395299652105892199767623516633227624874101315836469045044627647836779590352873594237132471078256346110163941938595624197899416327776223395062451230673837403764236293465951131085172463809913160769826099565271429928920813038256874595900288702590547830274456771764070612528347479604881118266631264844082208587167445908523629276496602402241526945887938656203082571634544225606282576929210600374919921620271932451736681598283113181075450730093404542400486415289526951193319106268635619674451199909276682703660096400649575270120957548321377261523858066727029731035386290228831290367025614849965069097296379179999135654775388886063095575737908334559901904384768600963582979893471216081445485785842230163456990535839470587315680054714435962968041321690479853150476045350019724272739443740360364262836584370234736196755206526395091566576761141744204251460247213648044107589157560269683971505473536430103667649500954798527515215162908768494779661276519279312593572139746905534073930253345935802389296171710054501443597176018201608142010584838420378446336968659615939549712191460133332308895011351940396905247091203678906017556393030004760763828784489592060140111079239799611307963517384044126525971012930678828116091004760478766930975898959663606176410534593625245471818105481900363875282064459344341432821260179353652519037288638499623995412430190670074705838061214312296320524847122733363849227502928838278461431036831511140708230581362553837062297110389201618358096895177788452276274814261925507766195244384425668903550901686367793924006623058454782627435675744738944731940339153995009616638989514785518477129092795698822893604126709450956164152181752963304745369814055317162548296625431499619686423247216837199242292648687386533708346041984691400282013097240347765338944612196845925623972471563869876429329100218761507028171631451446646097495373390078336970968379108328149733527259712744941167876288808153361532466119567462944504485395113080278116172675123357563305458931034808496308865399146661795473994232975522347445000704849049793152118783164584542252572376045616223176861550853448244046393087916235045757149392212235954588345979073729689679869323894421618560207988118790044333545993334495472449084586636427835369523227146176916430240116922705391678408187310408412612878796273096112043372618706458879204241099653370735614696133291833380067455413543897717970096611891507970099584647805202596538349053729024558154028189335065520447308663957799212140061997020283071496249656101902726477057217963677950275077931735169510275430431390829757014349849576532461505215738622493673782874177388911927313860441804556112381162975830847779129835871980647050446298260007152075679687414624528464264532960123694167010395465784858075217323037543300088728742392127331096583658753476254162375862130897237309626754591544295331741657012315393942779405510298492594821695623644434116677379927771959483646751160708403602696186929311566352037267096400953477657379192621482104077090947419437993924365007015041707715344297117645774460022187224641200703251992458748510445850644633181948070586504073730131559666067579562645777474091754593628057053247021117869485816867747191875594069085419669083851271028043183269076702136164103691751925832198147303119870041291574879697498107427830717932765143740298804591316491368424265171274364890045442127816208562641139786109824297101719723176795190905386804278307745460875871741992694099405920146157429073288032288124494556276828687525653849745061997205515041235982263578015400867669169715577016800922769169711513678248728341241261537201922000352651708104261874484830316455509193612558516027676347281313888399498471943013497961449985917460617930246038494568635925955687763371306349768196779784779325299806965464695995877523477183420726985176359347186071345441043387579006621952443500169753127220064217628473809817314212378323983063860520155150766088398220068300048034295734042827109458192470887797980121062355690543235278155033798317642790417328253119857336942744102964546429462716603821334683988324712670353450350634973912049204844581576352945067301077253434439065970257236810195854708027099232138280010951638304662781372464292219408604362143915262983730149056610294567100383944247276502534694320889853320101308902909315738784028079111620003432898281781716505053256106559000079548942825598468697361804178450434970994205425552016772245659655710602437561011124431431385103522184350731442008525337242779049354971402544699764076973648223345853989027764875338382678291249556527959488376022326909976883229852183930272173754469602720437149720578578197882903546110921945198385210154855847636219054724982603557139344258785940429086402750671725461227630521325421595777052721299836528038705693182775482080678564727884856837868372696126755546010006549355409430624963995516331630541547910757487809903612693840190786675667826445022309229418299394883918280322272736528228859110028184154476358505432451963011025356458606649414356332790325655033208968617162020324182142724106794187458735758777504170799655061631255533411255038801815600015045556432517717518685956852513377309811684465111692074655456711282443292292663426243108860259333054338345757331887422463437984510147411435815971969603528346255655916756676150690192918172829151972466705524874881089595814552272659015429594538673440485117352474081164099841389399497234212520825503407035399484902568477810990262238831371404741982441710863194672323558082545416807509421256579822116654446602875056913993486809128035451179920014038543219486610598088312474652890940189813544571555712648062270208482686692647030271040351987536297550085590115383470081068970830005341276163340633405556372729100868485061466009518461702464650254435298244139379584667172590920034978467200549220549408254411816246833229666012863089476020677584741653842410221766982615849288417022132126160990428870729562474489964702383510340820504654967218651857107968866261334317384927658080408345816521340440322819042231329717590102795515299785603465103083868849678476525649490841696873030177580251819945787940991385586007160506863927883823071397419863818926942840468029697656271122734166370799129745295873825623170811283483689242222090785952023379547141274425434080377271157469528781583990765218223795948074682000346132674401056653840015522918487323987259798911902645957242485495816911844028723452259289430452189854505012976214383314384506770435422034553580852686374343666595011341292595256891386900962399107284127793604647341009367670547355255149329070559495933649910698093033733423550495348271452749263570655763731113028593849896624970236395439409022607438975184493808252107034587426564440455384820774695328267439893743335977112966249954494248104023546866050052733391397797082067668818577125116332072503117418000799663714752327958707258728898148786015553667174597417456573918057541554590773653619833598756614847287181068784618336369315170962266003904469867047647807543951080956197790070782897724410821329784417484017165464941163694238633570028662141922820015685564910788755079104620543311609081556902668510970417918022427665872212105792168790939932348466839623853392940589405781715691402913159690890361520961075765442049640026170833114486320701348034002795030486854564684834089733067120205227791165528884015745517501313426980387215296854862291559031904620297636176277189251958897496759608807871885323032926967037586015992290278542122192597968777924078065258839507718282966895715520611964351634460104251988796243768888804626895127841691523190249872288518640735623575684774862919728491523701055637869497914866327203627913170735329895770510997972490837233782651663199046700019372662196583668585733659362362167780574097109879705367229322227139700772252782175192204944975706668046231060565690109907028115855934162830714697190317140996737750879197454876387781896152607448115114842244761873161743532718638152539142579779933772662387729233636833662485307899599925010916102610466975023713741395911658293872830306048136647210434003982451947170937449065158259531346331222890581972993018523247317390104371486175334691153879046378970304021054969307609035534213096665541045433818964978497599598275386352811816209915090719073266314763361057126128306292072185087900644461471035412264131210438746109385272744562887763511819820354098171262615330996466757571910273487319381421062948140793947341112127152712507497715366043521448297238628140879907750667887322128477814000207166918283989039431073529337595883733404539964839022744965577088137506380074342623901347045559117180449017785379553505343949622306350903241348565896699311873721864272628473407590474575463066911086527134407045685934469979980015298625764129537356336148129370077221551051539359777560122532519519547583480701595623274153089594291311105051767329699536233857238611308129107597819358818342464843753786434884521754237649002211135058966147583633525450853625523519488142268107564615953070166526220211774317588647983840162448915021770959584265866348894287340224284194339513023057023328594932101641135428856383369142271758358257460014401343704441224391935364616019672364231203086249219962536976897691723103119708359733730629363886941616726850412083515953193628456808600361662008554750285483445765258243161010666524038779579014524027173107277339751633495291033352780909527885218254981180071557998722952031265486701271073675161242513502748374485931472679407019046994977328613224053382211961023302479359794612067982376545708131998686540448992715086265989957800202688458031439452543051191148096336320485620977071544744429153876277912831607589507530017450611244785722417509135281274744659730486809484347005694917784537964863907036353291405302170379509243937747794630929248517345656555836597014993171855070312785762620614460113946220151684139199085194255802104641972120145876432003626652575143833245534012475919759766306508500685664089566965660486598827818865846702734151740914845620044996819987794747405919119398718695821562427870808651365004574433840410857884828812526882615584252691126950715950781778832239122805955152137316052102993076752672180748357921524754800619804790967601147238519844752840277213736306650098012617828811587114416189589183701615412710541919701557228697855568995796691999422507461510827020431149574932100922196315668089433965004593506444114464060972584334852571114728839309268209340648725193694822016232888231019005129451657905387523413914701839280207872874726542297624557566491132075857283440073204538063787396585017160655370082344786545548406722911721558650416143803799163078929508510051639960979701631817858099039687903732228289490919799874828318863063062054311577728077632992933458917940237917875301172610906471540598345529752503299167513965381214147315648420922447483107345480556918469775723262814557101427466230001018871266006456792913359376244352569538299128353806105610331810014315489492847159817881417504580709601756285834592539526798719843934334140106145671678294377586213101651660853898573924193343269608328981026540302589285419522987370000015426727705402929810430848910046898502209422219868977766441675211524925070942423473827384714002967887766509071450776205517250083549165005873816911860397719752450763053588736780341021150376436510629905585483408534772582980299640598454531768371481520133722848981664114886036615519642289176886966812027130446688835215162465299396964728987281735514501372504583104902800723687409648903200790344966934095731544415368813366598870024521800450343526276972174276385598512882548404241615669244089919337284209263926952451831235091789158222084324638778768881795219724854436306678206135337417417784216720200939035198723483853929384121701333155676497642953309633049213541203633990275994705317323274566418317940252198157478725292197867828502826774429146834611361424298276144173461495592016177429915838433123860124486779403965203289980075160149361754367715116592947254273328687543452179204674912641167691125045088574156163160937733905655805452450866546756212579222972206033807928850050801920522057730049550409466415854761392594119281875678290226171748463920417754003094498839808203412436871004258018803885977585322987834018262611996756116254700624570428427329638785865543826649353823719384616430639935010579394206116941952218690930300244046780348189683393324744547350386205196910431703025645571884824101511067016756978833798846258467842147610543933251038801243269537481272941258137049536260257116620896907068562707859481654764894634977710032308551435556468900330104408097853820489628995512324946598004413706002590708800352706603710405143214379906295132503649156978337525529664389561511072103870170559034683452504905636039459010521632638036935562664829697849810422400489648914988761505669261941506105229122976374131469289023272366383766101079916453122817366113637039452690347734331354171067166609563901261791864870686778569815085246253824612279638399837664101598101028225769049960483597092678689933000392568100313322425035841054313523344297861182107031852701364044624045714473178332329576107986705708155416556993932685932774843618033749482575274661859079836978531198094398136206167927009377096488338009827918279882901898802933540187611580756838701477400961280307005489894496466873542879471060397126539867035717537096649479542370415243708958091888309286607695555922546208138875400536214339521385557425759109732857345689080313009312532820098347713591219714639855980973779944387191753866208250692757750230592723585090095232640684390696652964614374646395909827054455450416821488544814983471711059321680112238854656252345755096451424077894150852372801895381226285983611075333311041178830733078644092983510286018876647584554621515978716985314202753669107042340439469757306702506838149050367932938503247454158986374252346739884462427235748176833213868504523819204207824232475111009739917545358846968537691388155876044901653183444554479511480763272408916659271986178654543552427286664174216822191786361014991873084205969253836621857518090178446696116623794618298840018282157318076400038196455688453839287221148813523971556863155431378957379020280269647913417525810675546864765694395859790538773824529220476882423502857216810535417011132172769705283831664315360480791904660962290466211630645698734057744470196264123747181826642552990225295811248795769285993100113633569150549324680943103858302157258789512602622818999857709854950187814782953824780061981570377986690076918203511703640619767664130326207698425770512840445702591740239025256936898853430793778580957937811943860186771353108271728952911338554188884264213273305263883653088963092628175943076932426222891297997140288780074881436644563683184622855250967856893523837470457219789026645903238296601712629096542959147175328957803587612058825525249337662541792553331380787886103190474982615189087134947594570952109876139845133451142476526811552775099525593938647490546739199238826704186995250386505206598448385773773802182367661876149374533138261315954732868209664782321481622424327898381985460789921329658696825967728680834279386472388719905395561774120248870824188742143590564798250725218124096965771513560888569428738688568173449510691645359849188808592800416406378383313788354902715660568847845497624114338906745316068402440343425933683599490617116799278203699839217665265575071699706620139402773726884020474956341326578527134940876284320567514430406676656892860343229588656067921767674751576764403898793285626954026929335222537658990135413080623600094584034572373015560188717798280607805283833724723212124516683919842998232624105363342115845069515256735416155804900691140073021227269743419845764549955488792324021201110699329649702671873060150368126549995113441038794034100268512920451839752443334489744962991404392900791739123365999254499866200118436962842872005166284550139062343444921793078335292068181782151020844020384643826064120013488174938190104908526881312201554008277431504802361487659309200444851582136637284421320515240136128384957598154053640091119445913808254804513212467444895929335451154486554448741401855627238210876109737980702248001874451089004476642718230027356571981151838325097337369148393292620337442774266929745499134901362776884288558694268811583402567304369834568940726759926412283748428815396689044561938348171662003344910053744061050827189452273529748458810349714538900692254824267427963340679335507538454382688804002552998099103445010212089174477535040135143814000969491938563174903912738084601008239201411984760846364464353012749288624758914783563193903040128758207953043733484065281507596614028684179043013590941347983588890142693903938707845653705966762765700408096697048384870937795227379512335877866072066914874000516418573192116586299928413782713435990702661978040760363480237342996603643607317460342251622704116808300620825603391579725966951251644857468031619651375895912316508639921407269089885384086410348343268089411742699413440530023321625052253421055294029023487354535283529213949128768947910545378233141165699465395068321562723845351639330795844616931471826700717423754040351195434605335677633904511575878592360364311470285325670446533732469997877463834873341536793357861832229023625383809960995390569326825728754160446559445800558601076010969161005730698053443625459944226638474760811208862211560454711408627977381062150012714852790051842494566283389907140094591492987961240040221245165640224616945597362096085332144898081206314457249777873524083937633490491450748929487682356263016121379511104080099902531595940182562643325822932548091551218148960989721330812672690091454963987965439516734038639111514944130994941485830903634155250507943115972366599990125707644728542129009487840584490849493876500899670890928118072831002957035813492281294534627448161825289791771738666904328391481072677342941782016958995040743161591679954648775126001090720180382593890006738278710301704557452806426205720098201975830540635567667317265107576309625795346401213709333189967418053574207565639034520576127666767940931857849267123288509525700313258219124246770923481019150051575807418044251790103507945324962183131080228692196337857599792272638790984595593152267039610353522618253795707711561784308314790608562072021171433548050861984979926301613970936611476055930013772114115047134045185223239141739743664319772112115830619301804158270311601326849249026563235414272806634671218001957735342389301950999011024664686521624196486817159583758576106243373047627747878096099960513012224715878652329467976394567048312286311899639989465315322052171859075663454383316247110755547111364299551613578702089253140936736236402328085171564369274940035490563620140416208247534575283410136212844877154864284240752527941747619719918908082017063365051710046849597785895476410489223265141197258034103367937735564025308058096214905061094053795584487321930823956360775728918252139332478025762436908299625303646327598301775449046058876688775384296617600108064266493640872356120583508874181687250978983894785128639098728730303778872615266548818097174070802899241598252686189624373238208295354885964845204576033906369215590537712669518528794862195550605511165563669229389877069725054701462314960936292871410289913634653938226362970332646598543017922290745150691004962130906918060804092909303654375926939184529718587012492164393825226349538972904199327022275395623193849171273463804580795396388732385339769995189694259592420665609346642012536646005759020731011346938579999945835068360926093827211944368379867682939286604399188374711996057545386195398218764022895392392643375328452343829576380417715087972729290327641368687272114221438040593880784501048398694511444836504575902082238280003692650663961780405858296913281454955281353560166001142061104846687998907414769231989379818143641419226952209766215667876547407434883033841661200575572749085922538831132270345663510342209110926622767439924056628203969849571179752110691039946540497159615014910637739501426427690335233127615707314012537059255411190252555017947766627210922104668400252058845568563418173447265601973121568125769880045975483485519628763447466166044058672991714035927943209708697388342889791763138268083082226929608683949850806249127513560833360710453122581483083214330507098116072098973364671863834090744382701344291654992146902689105631452585098879013876973879860201923979012247419288479675753860847979259858170292428655168851818626474704581867770456520293196001873694282515041452691705476538815347169953975578643184842458666928699814150216387335522154112502119956921273157186667170008229714407179975720488088687639590780158598381022665369534850961498774649363674649394940549001949347617764337445085544463481156279004720287429203654213162808169356440081007907655199720273253372159078035506571767178643761202596790513681056227473695332962398769323972285206679019893223867323859713070789503942109814925345289320116959236624945724434229926002427598200935061067112207602656444350780087024127094804284263096515479259123082629858532989799711458896869918759376159186578158705333940359329713548842282076610570979541309858687191704003099336605035684897713153862228397543426923959917498091095226300200504460636913191674951405488240069658183597656809432099939081668328738163052637426306723788887603379903348064225513119741603889312377098011669864294730139946071356984421945327470836083707935549466035330667547897941030377806913276946157945727928491777623549645949044897183286317429225266385717828718502572467917587676487740169249715456769806056649111337095014748506493823688660258218072162846465708945067735661295714953901940296151999388040184208951983603287896742977119740438872056499827640370624206668486856888703259663680518127134930180265229044584325797753651553408466300064661716137436284993209710980835959396311039400730617341148503323130601493870446738573727218466688466711345724479703680437625141367027100064745199791242148530079642123009734227181054654352990993953704409044871487133293665933097725731928995149719592410978508284261842601257465831663502120105077748456322130422175840661021627045810036219655585616812108747943556674158501451064457369520403749010911904487094867842083870578451389886967719740921696867500378718879027982995952514739579948184030528512692470346509112431885520746851802087524647870884550483075392421760533616543796710783794512949933809241680628899255273603984930897304618540125238439622015228126624061613119440220565879408451854824363692005727095331803002049155471599085251164241282564888048756713891877700476500853113329403778038593385418712177989972536226344749354310933267133258472047399199614545590293494405663695137233979748626809106587129924452337418348342451644970716131649523839920202707867265940942641041628121915498004512874008016495084979148034435310191030002453048937746608231423614970892601554529643738829130844159038138789171030240167105513103210797086528255233414541784894627232770533250976199403096595683385774190546349266886283021971143895606658589460003419096867732321608650597457345108504021651544711643688928584623255299009759525214475837151120502088820412132091531901999926034038630030307029774068871231494202387597009153876073231016471378360266632029300365822506376910350913497254960129516058005739889220533684490371377529838917752019864152464549218003721604752349746982728291978210349769215961956378683594241174481183368931271693167491246528396744684839691740922060372553372950638694173651805300960788745772948641347792160324081328820529496012952695187055134756507452844554646457192073765883979403835508680633506180266182342609788607678203177306677453774401840680703646068657690250345645046358583165126273122987860194976074990944891862696831462038696567054140450734988429546690877249752390619443966637007647586486795831627872565475181554857455955094857175437705252370544179780946409755944691879848766846418666804809790691622698963800522273947475639519484769666663807547141530820648208926343462229887689043303680552763379095739027454118606012869101457702228231707403364246992500936879564406846397393663565718654799837468677475578207037482523168797549517317070773173901517199186890684313679262341620965189861425688432235359898164634054691593782428422163508431322871097743832662520262754017673129366088551204911148175332711854052795854776742296853627700517359667092576860645235505545991381548408014876408837398731398077835254950889958823604331360889808121344205185540429564697629195967834113427248512048528758087880731075872897812605023082854123156734768047948871019684168998218892218195349100223870046521814953006651584522553977966185456201335639559856466204401527389388074217338318621262827953567223203916925972857757839785584483188175696171601862600682977494270240766560142342423758611915116279098856289840766024111343932521351642309793293804791957710894144386774434637049371167656843935037353553564615458920690886885990746782439703751616867065979175975793743586217288878840223539751656936923853744568281895513091357412522748308645993953202061221896215678811303637853913534718045920975613120259370779815788338795459675365514778385852098522809981104453246705900849131459649283137277593135270332906180550518689344485113609096951888575345312188618476753962440711819797476412561850927531361339719670070665735623538364063942858067772882451400496145050121312906221878273903449151920395407785393421987305061351015443534432260669506384274091987114576181241939846857930513182755063436574060296516006056675152998579616690228155482971340961682177141031619390499832492491639792193295081470195450381711216214817428135592363316745899090722712953855173276868233536801242716504891327105023396125318330257768671950478183114375507422807501559595671279970379212706808966863406840199211482558851345172628585629805524275254229552251033341518028117681562933804001839582588997839653868751729484429441276718536432975497128675696009222568046614496315588508232409897567005673977495861595427712901898212718615358190538165942961602945577867882580917512964003217698954293659779844241725939921176358287053868004690218333701443177868797434076521065791547684646170546844937085197569540615285010935118438921352625960679375477433810823199833810727258631389182273304168829493472460629824376252910611704778940502952411920523836918100492034059020541368269043133021397626807551197253278526529730072043181378424444919502579530261318526734427026673209464617989717761668960342280000740811129069162934234986628474288667108882482708750416321214570088747930785053570038184035378651820303180263034302250048044661428560088441102780578669669136905030301568920227515763244019727104906642792564107032529844332821304364154557782281640188396440749841703055537070947062622310056573557944718320907374168915541566233441514147175228887940041059188323931097388062591477787774382208739501101045844333721784125313416809373780188959423295791127328816246535771134701187433479069422786966874015474674939008336640411077090261016650264415542845206481162913771143150522613539195549266582976868542053759095148171955437530380419744710173028449429821547017155367962989592793908238677320729910771820959377400655645980430451265150722975435566454777162279991847331352638019162447041487535514239998061100860646337081175076130723534857365257575703739364086289809553375728267175895945968896041910615118959280486823624921607111731297043295312075471500398154739217067987960402671243510139676063514257397483034990204555283456768595882153360119179204263021532524024042833793313891747315781174303112828639251350076196098533255236528313447078670219731769712621118129774601250304507657347772374781229166409452022725049360190964561946350992816971791454324300488841996360185095316798106267682775711602543091519048579301907984068504415611723408799975989581084847419909656331479915909328306929289967718540474183889656020205369266071919152680820492847106410776873680629586146469631379052183939686630569784785274137410949405695451851794110922795960927359859004043602311852166911917354428659916162677051641944490583712673848420556867111036867071290534552399457577404747733781521340278377213285267177900899249097845309339250454995805805969889312540492792284004308069276146183221191606528080598936239386230283960965944083607616478902894851365058432257372936021257807615103998094425667301141790941207571209198455206837321927929380442974464131163128813101370541740199438394260509976941603029762363838802877707613093445506900016929305858251430783072708398560238453327534816282443154759063443669447051222496422792033482229209297906224959966661294484928221420372218818029908740381256505502588332635433563164165182761834074241463275892508440291732206217963827352957806897529744506731896035822719210879875655937559527767064817140401496041420119765106682246740510626631415317439735309877448204571242207499310407350950807287450529993399257056168176612908355729394276196624038941458145329652538123438384145179294300368541431186830314511317714963581580547885547294227308243922859372914396086747932042864599494207651283791847881040967251910478198909653476336070025364447422629089380651281511924642416866479026834044408953868519234725489634075156935116457368649373206563567720741271343115219746659007937388829179173839231085331080960518585226144711684395034904693330053679177405908941437330558372694010881934217336171741766985412152029253168253792910253604278431691512296741101179948621960341279657636215579562476397864282303776678258694133699747266067707540367528056850210632118079942650389027754505523701139175178179179668941147100693082590713426847892860989803072176164159430946793857638898547235439524687101185222671770418037097349989124480420586952677757080118382098876279810202735548340627823474837220601000311509540044194667952773215993240504831255584944085375339924853802814188492145411308422586905191335725432537510634815758684489268075452531614324602817461121489185908652550109666126271325088531005145780842039626880820469169269026254798391638396631047533664315282049411970798873785716171315059613143754155149510259513168885231326569071642320559514978812679690706535303851227417686608882884537355185779514576291586105600825730845567487188274617799833292293341191751503079603103666787948012598988149819598815646220594722565268231596737637471375008755989670861165846109791822005457165507702772148979351729390950905062783651363161896657453355770476996128077588008713085949407039338684003156841998621479887248571018047461273676847612300072945747897565967991122631115873450950982858937269235015606151393770093004098835257622577174260431250252649621833503011118106896096030297624059627263767365691173636163433138351740706914090144276789572274876829218720897992416508649904026120677179477802106264310285255425430179290566587229047840932786386026444893327043519452663009111895245107500673246317520796314703585016268745763879998122414534820166848332757502565728995913413310171614117004870632557753043112608508160369148037650496123641617694441887449428545939099952769782729005250941581774160855467649310412112479075048296708670932866372898313776941796783550816957557893593928164673217379709926615013055555807377834669448233688739833063110076233692365360262746854398934379667138160992008321895590071770446387740169633133405604322052405877720963861732968430900257106963212395747853791833770909229375073910557269914267347948411195704754634645285837373699132842475827410489616007798602555097028879334875075524342378547937552517202887831013761222372079046222762481744573435248928183189142965790761905011637820937158757378138115902181741970639048234513865751186864100618175067110850796780123541393294690978406092247050077271975167853343369384276514028241737735428015717348713630645910122955914593204734579389407305054257309737447691005110469152158588929259634730066917739092686768775068845516992828473059582803738661898830959255314793549137668529368971931206009117558623544503508785941991897405643242312090078082024191436118401049204318320306747169920661393707329560527186307540751291524471828606218835473611716473927075471189952359556354143725848827543455504437967242283343223622816889227131125828702156845000596287207435401201399896738895390263172477780569675426825214027902195598203641254242562014259484471441217143722599201065931297981062900017052177513263568218629795010441769185286981891936340204569834833700567828392871138432246428728885658529181816107710825797701977255174640669218804648922046702560586952934070194889638707391953604596271236823003393974709652088370025049410649081276562214789843804350769097873300453383276910243285838033779807248351081767584915056832810455257350428829338642530787435451843392523978431904974744791270387424534816024772095943226389101296214523514822429240087238126279482473675381862169602982278646690841160274961727250880319749699713300773473795256079700444030938923648675139747115835830114742618470312379482521919826506125948936563660818168861962762214105016488065499380301877003711873083075183098356118337205058451676589736295430568274166513286781905684192244001588406373757256697084986107593234289040396293095604827581999331140676237032266223640699590672801716864521610723939080112019487687859512681974903083037717250769057850688134747466984893541766630599287610373018333330261311011542328869162423896741249624780778505087761062506838010537640951071380193606124422046701392623203183517591383114101564626261732273605971546628565494935425512076527169319115216326010560028618086979486095947135686520582515379137477919361623069069644284361317606535299164505686960184108864724294490086271834497606648933678163704570189696302770999859790550443092107838160166635442953275607507521805394562113360509373685448799657388636069967818967633328550825634637823304139887747226632809315729351434493120355707974632601051388682731225772753739971385452575872852613599506386361674038878464805988529492156429630381709639905076707536866833930176614186068888493954752828640698286961632841465466940795273377342848262274586324702887960248232815629003195702090620573021591307694736884175022224666998315653529620189098530211458555974780823363041495794785099095017536252815353043760829589602159061124499175695397859198418296960996039145381694833365716944024223243116332073785993510884916224535855951107443386043310517800466527995491809139543046526860473837081254657449420678024164746669134052375487757128673797613085848080168304145432988841248138713619477474928696968461856478545993474754679692722537109132895080766398195074439245064141514386196009684879613560553050944739283229719771760562615246069520796771590722791919047521016378051205204579930680032506169822085492828707739493413225036254337874647890898268120869591697721558403434085635734953869334908015894754743501805037013965884674274296851124355875255768346156827992722567360743711880480620550143163052321479436758837024640605463477419083779536678219937733714607024809533679694240534371767462001487507587171487377371241873245938042642366989152736266258833382543636551466792321733571240382359165535467567629491080871459746990033887132483869991320842044921283158116044183712531320705613438337139926416879447791522211856741350218537175575309235795006755975460530897583517546855859223609429507482303404320596929439867904685849788073968723696816979115841207264721567897883920605025018889576049665246871130675620616844129677621788233553175260811167524718665439003451046815281062008925442730284102173152038539223703953978172851382289369021866253111145974595417665289681709142698393251677141879245689388626492603685376558201793381623041423579983783247741162097831758469826056751228140826575407255601040217285033550859457940958302434017993845904504465772380742633462300216518811638382672322344681829016756446208423317266386330849942748291912321796523093592834987991721893373284075890934755993604344813874742238308302818609001753101391161844885945444721469488884579650246237177624317885331929784236689077002004611655354637345318841801674462626716725782488479260714391587437845891843039020444282645708832808421732319583155765291840366173485505220573742093616093082021589835936265290138118728228518026403059068808408512012746707646921895380756119375989534418749816004228892766887106609193416144974817539195169008221329355567154187963069389385417927153894436365148687306134509047055265791045624139292290813982788769357225586008192966219990227383271636545009163460932288727354007236859593606199288491510523678277028424259279009001065867202423905231906438986722405389470454993255595687070510833920940493497139323820650292240538825898131836572195543475243322328638212563097177319878087262618478119464021221950922950551179720788344656215380185470025699432822507261429334330301470401329090058686978638407451139803826815004191583499026858610597666044661258933513217560824303994714442462224249764890723261237518147040580220963540467724740068785715106794434802611325506963555024953252688766996334920247626174148207529992035898262449742678009398679629531219961481863049302113207404390160028612991992908826214570043361558685402364155538782267512039222686012716559941487160707131444959852949137624080367972890229932429901932453719866222977181698790077681483111479769289727092947416401912142401307793186542438638310743268084517224752386231414226954055714409745056101019761580281281227827431118733555150595050872499769806598596370949762134012455295783749860807055894944555542859182902486474342494974992567034488153405168927452129637208957903976980626283766372470290796387630048157472930647661594832637649463751901237068140861984040393447817242333609030666206797567357638997293908345944763162638579855771121840301692429799663173539127921989342588154451139840239082109826998330286304198762913204239078543230849864309481257563783133951566000895343480462255321254800315266373533328730354508388943648709480387621293367066686560455916685778799733862640831359305224882700378167449643026901256906852737891126219306802278191997292361221258114735870071457989757213562409758022906461837308073572351117950184877887807582326676389411763640281470089850854364478558558031048283032797672018291029297133141363006814140106587981749886425750007495534804290593303447013626746322830628147216046728260046006281205537319315950035030569267561932309298049038554523484960603504833371942998414417320368730011601711042193855623782969520681111391673579177042276183439263113989261410006873317345076206607314879690534035125622650232082177660250649330007931974602900199243001150595440275975111290713822129630185677168374192775138617008042657076283186175268281305627942787750115603962572028735959505766839237392322683617718952913960358527797731145730968849033820745781016798638614641040277016410401336130701374650765172397715738933597219416340479163779162194205503012549306226665595957261616667345433154696213696958610158772320808758621305280879545802143942813151455917888486074805078606590894394968642507076471526621852924970330168331355447599239333046969718772379808282144367773210448675632059349531650601771347932182093999531397495251337173740380863629959819905411573258071653656535809174338377737108299540754226912216642721301919649158315327922004664898664998759612393023383984111764134659720867260805206257545890597012171122111820821840966732219455180817047739194673699828149845065136911992562475223198686829337258641916549797178958698129672942445841422430562495581050437494179496130425297542837053258245424776477691073654003086056522360415167977951013343050790321753823537431334386153299897290293315930457295244219437748790605809614179127812563893589057829041012159317369516838540218723278779136547479765926425517344515938208942567222781101187993850950930973395675245722727367687695338101043451577831630373887745628931163239234861769049530406231610172532726602430850471110012479014230878441447865211964370464328124584994280746634268028626063578645133557949905956693880802708628865524307125824757880157453758429897238536062040992320351210119667995900263007683488956404428920683035253853195367341230704374360423777330691055451681374095989139818967524326338288201392808334675096784129004873822241682924249724269927305097292062262766160798928659288492234519846451672776732540206628548301763462540865860515644511434517058226062252366843354050872557477523179579338646042943298258480918458676995921457430656984646245778657848787021873778172358862853506748573813860627238570387122022043760705445528877401536995377615057139542515910590826431431195963951553964949588687751284624633890156839638589649509155842533849099563185046920924027358348078678686578742253309686049126397129842265821718796832124956879135681908375409735255656571159651337456223034718120269074120282116083203077974607583330586691165478634106654104753878130355531006604637010584788963358352489769979838024964849910246959338809262883745495432604137795779435410342171245504729664405025677720876645021363001151983571978514421100015961027213763859887086089578887688757130195787096299821405871159801330560905096450169882126189526940710322662871241693695492356504452953058478582884715973740104472534447312622934718953577696765250434650798438778635757205474766853758467740807593641665570971592078761122953189865656729908631178621685060333222049217684602844579019052256339481452279473415750742991372376054532308611993153028671333405694143604243608933448364770797868754364917969406488782281270645928751513843602885246104626108293627328776347907525025823170263945138033634924082344544180330789233954979527800630243914336407795522814460059699410402353224429137106082941491270932311665801130210622726357694497651302929877163931201997414998028257596334242123324897631637058910228510339496020980705755829652976793341609159080136308263329021868086116779280936760476994993637584236960521441617868273587804579377688464403506784906031994852278114490686524163575883260419582979227114371105379799251889689599549679784719088755767706186156375394950200578254423588708368350755764779765545953624729152400825020160722249364421230192588659411289227666662196165333316720398769156806084669072484484037200707596794875087766772431237243648439834554670187776492436213874051651838509255263476947525715031330770801967710965803027120443330016436146073470122940600403447915340376878637752751985490240270003229761769282299297280517790174483342678714409595357930914692350516848583060218080087803367428809367296073368028119520474687011287225540722287372618572786732598974946110890888486848444315868991580146412485129028302836061778217347163741163192900169857314492485271435729878181051425330433094789438411918481579140576126759229031263066294171025919974260836031887463431171094355596827046660821602512662358207951344641747585489428412481905725043386969033599756252545602774987902964479427939607163166598552987747953384845660815660462881483042189333356467210230227870078500624859792249525129410287889039660687336450823749512032569495676262900558806934441489041621016071203834797116908670578409624874675146003197043663177935530624841474236768431861795010892909061790167678903163882645403309537221676552493356099844075498940642779879584065407379154847001804599372046145022541119759091342941407272409809675680562729548699856670672025282453523931916653014861812752938594667049879996785551874606508921038769236046566516062937742012637196923316688429603623062386686694493548200545359231689776550947610868335168732514414076382171095324014733101771060300417360701802412017269216948223904897803291038150786198809658687652259727842246530247088869906222292464315670031524253650152481712628776569811259147884802693245328432151620109105052584011342228456503057761925784943567972111227929208154072452443519235319608109057145692623726421711337289523208174897786811318226534955888453495284299862953599985386230880323153907489647091170103918073282578657889148848508469044307236209458026126769776049532746351893475708522953312390895863964400436940875079892155526482922745141918504363306340323695457398329240456203000609722995749718659905289761783618156697637256931653798626900461016215338056606362467317311089449984308200628210670934402897285504246425804939121704123433476079475755291995944803862472350877056476401640412917628678877847421579485473116992127995218749260137970269222695778182708070290282589916261166480564558618407200449309630399943281029631374132082990407072151391631660786792876846052600057488716764078620022956255542333816552671173448126927612004557585953356123633750165047103573195785506268259681347622373704972744375424322976225260490835931493389655402492440399009604097797818542048996201220458440563877910376933305409992656776254393160609129398291759689964435778854400495861827823298674583447727845780098010521545010660543118646060504299174790871117551643634241922268667891387726608712332727493611827153683436141731636205182329534367996760600376840809761937797270000410306507694287170602742513992988865588233972844807404636189725077305676481128414464914306562229730951157774375405395939255633643731976061551430327494225075613558131797878049078020975519495341749233744590176300244539653704451911305453622979034243333751457749285411162902653965660581256336491461813969590165460398482166237284973028233466231529144916969496232202672126624055286844036808383258545190764616147418547015537592695806057861149220736895322987680881777959962980143081707505602312799255240945728778446202559563014223488488508157590241497482289412130836774133954185832977276017722989914321021633207641938345740019479990953482878089904095215267034013866787835314890590918138406603855305010589713878695179463226771060341370070539067405279019097789614992839497122357139369636390555995718505576873849772482885025589919223418322262891036059025040698221189536262747254070488518259635365918263824770912896213022126137706340294713051974659806026880889123917525897457755950249777958783139139311336730808352722177394269529996099209563818864922728904473901791248481069441501301138650051588444877895263741824042553490439192920248660554315917846542078773142242657851309402466118428391458244385124978854992057510361888347041980581244833633187169866831474179359729248239361740296921055389428966163453469113975187429618674896845431449786439764661261406409027138557114648843464689582893084845724976502556136865083416070571421617242120339915540918396387652431423938960152611991360474459845788272539292050809549232481477098214748594405975684365746424625571520057831090465260862405196613232654601166319066933289177485612235153347573626661981434752164073455316444819574303135867832683186142421171179621647026989895601669714602418008284521209678068744169120109323506402165569687145491556393640151587225316739695825822197571082648757722687408161689828708318746963146311589720401910028967815076023086535128809879702380977698698317368037597463741121482091174077462690597316593544479693322727932760728950622284682203107549528336451606525745832397797087730586681898497281521305045905624792155488798221553831331242250258825519313631146722603872814662362010188413392818678903886651002358950510806560706011469533686247390393477092994947603925610249457856646633391733523875984667305078208035380133147533370425359520226858457374417002491815336809859995477443838801858092216937045927974034959737974176050805708445603362491934254683625334761564088345288969755703520914224423009132796325652317536249422200385417766892109337385732890033364984550178536093767408586850432182853063708538863472213649892498035243924948705281756633474270096531824486785132091024023656086896872360246807929983539541352113394746389901162906777308269633313871248495326015604939720681890616333993503573121472478358912725559480846513082484556900765280744209847968637753829782901765118094729298319317785732205343441585497160367300494187225437130610107638421138363642213246849188334862507238099948566211431900216195371825523925831665482835852808827515800913289392114527646892976148784942631572639670902980889631938201043004964789328312447540759140550727253677641368619555868863634448905777404670454769740509880929446474122369243230916555675556399543853252621784470855886970093209623391211067773857309302485389326618911197663252075298751181465961159723369535285902741854703119914593921359328126797858683831332804464963593862223415328185572277477459567741466971483101843871815423302929725548831513592273971590848285678693034798156194816223480014033999737473633344511052493992658364177341471303750679566288675668707066275866170081948816315282246378096113382151184545003397696217423017855992328831036316013364194619971065406350431679671988274175470113061075156708415163643879850063895381423842646928099121846153533854324435849630793089671461574265826834818964065193411969998473433538520808944806823952518860011748554371158958818856576929610157331064772238350896146493839746856262020658438501190833385902514884024694051462453412622312050166012103895469348047835938662534686674299634291717459046244900614129726235605381528760006401514696849086826946383949993206673039394936755765882202425466630095307931706432322810745610600283464745380027649923605042919881324895141998596902565647101050246589472019611362762496978448301492221989878412786688039860705041661186523102680426348250737082884784427696205426772438717233956220757841523955576225123672346975656540374300367318924363866889138412694140655299842741876966681271222572970139579799280213133310629910658354384362106155735648117400017339145279495206432972951927767319420223499853325129893771250284305129170113180256698236403394814764115906055769025886754359620613307874548502852643353401067150436607639528569743569201316304160150878761470123872044549509373738320872618701277322759111804216325686030081908976967041179753905736152136024798579842863238828926988403154445107108706242343464429017447840376131435828687355041698371947565519822952693894934383426074132260498898483864695616400866021604844178805842977052921630396020194292093081232747400047518862584803715412099307577079803266536942200008262011567343227202383488498750209267642513701183166353022101051977792878196793386598204459778458543584001863252750517643955606343522856703776390443888891546626959680036997502095805611140331536726610438139438145046347985097296300799706394338863188350484754354845530424131482570417849211674248596724624327371613839041808052690514266018818474619351070242710041839956284359884752581061859409090928736962797955691221769158665128169075778847324360084577427522293532399728298598911765269421029552080096413965868374277222268480276733207292844103131441735801120710914458006044869342392862603331035240619522256941386554555453240641255766262739935122704635256756920007622909670858561361454471271855836111269918227663021439593530015167245280721683581189609200732563337865679338200235116694558970543913826702001699525571278588451627996709692963061029912126172116087889912194239725578994288813016710686225832098849744875942270114045831795100801687201096915617854060167535663044352854882104089951190127570207425647061281934418124351171385615564719208714040150645081778896749642735394668923263228063959809445863831069724122100227439810327305329403404772194387381933708743366221237315316720494749285251942307011146525452579037433773354379374632478588777691160878705497619414856753572474482947286514352892084558202354853737655167639055595997899907396719175933445206610423994690149768809335896787755803516047834365947041587187967933631141291667506383879627717802580109466841547884062770295391047443589420532433826261707654725145473971774727754835313777646344719444159154622290661053786252453540552166170254022782508159126297455908769378339220330863059812334800114573685804301911553229888871787835947082253459682809762389313250161982827892971645639784931280121763910801058660880433612132186427578583916086246003019812918204179021800426167356513793645676638484656074241900256765504331320023327734487440037729316533164645353498227007385982443525567376000182655358897827813635850754338212330875793895774735062066598320968813071305878121392056967237452711169983507110752429036478413744281463953074774421002698372323581749170715751282489195931309997363317345367762903619051251347750955386519265991483062574365965614512955120310613937398016511524180472289970277434727969190370415604806950648456663540894556216413541741230363627236101040898219621894082647801834402524255691017454982220482779073805430559508218763867098818128549292451535307555490925575440696130810813674100603454937737868211438784125895168295781811739601330451564131859060078788620447569736812218328449247033672127806746748676738743205079590316545583065636430689723708531179607738482152310576290590410188272718983214581666237520366720555480274664364712030045451334245480028331150963231011651151373036035160105881359983828726257393380473289686250359605446272416662601107097079769371032770741798399377654156011078758024327580684763399604228848061601695422246014590975381175639913688708438531701945534890957092483243159636324074771728280103796477858351917149193846171049726114941018501674540480557588045300097015918056056385778904696255371829541014034468014101828750559160553507923273600202412258484670415846336940873981258166877822844709404716884650914603542505650886962106133469351973452201910799235922830779360403491144245814631576767933431639976713243116134232655611273280860523184218126544050398052299776442389975531847576449054236914119632306936615920034057237302095382779190688683789404056321985944758371683620577196718805930225698994945550065642186010311934682138250251565291240831949548468525052804718596035931704391999145311842972642087663600181143478821206485854509750369739275803022630658005932259040944237872458975459831554071019170265072377401777153175025257219524416080092630302256342113408744159027956049426860281197269141632019331847813033484594342493180408817286952800774465625442743789563810115117758236972849910115197514446708523052197513817107448246358717977979547900577984082902176518238354063990948188775594919097990570024752010737162188974294807244294785506366643504197104387019167611383588136329597041164487079240485661641157992440048562736992523941003981218292224019115891460405388461831768541001337823978906116049322609670688439303025710970593820061142967334321834661521269572267466784925965770079179171098015438930570209685932445543755867312956240326250972785751673923608230317456128041171463201843261026550978398146456011094580783092449425081773993154571911176719187849521419345934327667027068597819972019895691099522662034543864255684528946567999778198225956528503577916713324040083411483989566537757632342833697364799312809144672042640631465019451826879745736142680024997640121446868987516791627341992805368110772035893658235821348829232200176041298281421304599794588841948855035750562415699507028906195260242539731520804019661137198557084400018546261034954896328349994030312602061896005362347962760187963848151058196674936542085937738071296081054785735806544913456623581026952896716758036887954916900318696246408995141639679468378810382498843342007449380909377998150152745619986061377878878746503480988256464137093490155011709720646006653861472109324801775464561605679400192465079314175241486714188959787166420877808078011596415767012892216410686986771901258286084055718477889173774438257308958487661451188751253928896569023367000715688973944002126931112097423046895110298977003418479831577287493837410052470855825384929508877447006224476243741244960586874712602770678034456064156590714207392249176595903356400735484588325500884846263749769382711254730498651526292898223495746001906864472383751945989545315771659826596464272495140540627750819114842164416594285648879402914147660242491383126215734901178474761562489048067796382972970077211440164266533984053131784629028242748871959537902388549548879971880861355296716990123527926224789648333108586995062278469634362531533825235642740584652375370928344038878833863734402848814233538453717934095031520450723063757382907545791533586737103093035322899205905855181797289241666907204432177793156898080256108033301030197522359011814352233877605048326560383167505945861853554659195143444846930662564104944070418517668856059736950053055998512583755644176636945276954828945920549245515711097634355640293209016254863590430198972847060424837325283507975012209822618768568079229612452933125797635869358971742994451827847712513760797379797313558367352716531995157596827150417625183978060988421648811217402917666544843410196855072250444669958675101056699696703795279398215796315908346997266563267162102527586449818780273520607653907272058636700060815875892151747238086983846152191238503127097276066902055028084828347164668859051822483923941180052857616716563614639411210975517430871403378178058386657077212721796912866036623360707621522475458777315731027152149382901198213177679458673729314721084337293517327283259263459928462648814299338484386681296528501797861835182209926883099948237934775678529551925071411851394622674667658253156227915161690346461343751819470777945160886640432118373987312332469609113283114744937464029636427968762250569440844270924797136580783808287763055204908532926213110089340510494492291762238658820056141741449777147974320809565353373105071043737961617894896680414419650379059808434602224924235550141974122496096406967618349900204956032845768364194930421536831173607095544640704900587948539411024737924208814715372192055283869903360292030423859105614893761888764625982670996045395897238306321707606702182457524017455659129563288653221739913360157072457250540912955886396254167975895443243910248453412714987200659771829757614135291667327238619294825106478793331676074095150513145616553592615611916814901575795448136037033242033019759564855268149322027933580418828537216292333713465749894508939549927256444965683755551935631339821822599398251538855811296378532734529359677838321374778590305740495083763491098531656082213378399183479059585505427381083881335277373037171178846469381911276709338201149504884965590408843199646890337432079385029134212872807011414312717002857614685415748987364011318689750761447433539759362704343440755798625765364814467573531417209365748868101612573282834890793621779709472402359566506894295732713155237764963416936950572025566617291875382740525539860981649628477125040165423434315238703133881840940538195353873659118994810129698338438218524938078077015772612703638023109381791832485605821110979100646578978272117098825925242821861936820651322851561220239830435481440210053253890780592139861831897809840402438240199602659003564191490624055192301465325035411097312137559613766531614200372697630289785444471953255255155163452200450875795686847515106278762202968996196336532053942161832284520123289955153703513966173944090524061021384826390602891771807798840590936185197713792419984134448015138975612188911254231792989892252387338485943718459136583262864301081764972697269842374380883521076879305141288100696897012585521634079654761892055983126536550386375548726952020554559533571186283808078296620496581149160276203883771212407633094384163322382989333096840550604652296603329343269649899612720983950755581866119416155473892064611521844700592521336369869532822355439581710941029426659388254718785493106186751006625431509517716956559609316732626711660090755253493561858919048110742097329919112188562108064643343149834065400175463240152926228797914658423515280908859219577743303804584925480127146823923140194940266919983577279542944302082804445325220117613447377966879026869579119816832706596911133483906677017160336263668039460790152066770602691704351956691032959222625615299729699751264975358751922798579686605673585289599522583946698587358001011098872355036016581248284048800117324567977311236801317122847561517736714456044082364046622320088249441101508509306653834853827648964717554781589960519775599406800772522578857809995205791212225443419132489625671285019095763028395105638243576348877883096663227530042445793149074696634707857950431400474086892719890817945432212539886306126501394215112448668405869395021532716634883141138559736433004514008384443651481309000204605599837803467415164192043120652308240714250245776979383927108018233459778593140870461806175682856011073478008363201256341717571547189173445164023989136320977206653767894345641299944373966473966671104080911925162244739309679639002700347956421396403082913513177992341097505916509924406213287513441464272885560541878200370125677743250494342297410486224246973915083403007618948151371145130318517990699507708623675163300321833855834691117967273120953428065421829095230534861991506545081566699128803678691089896811607204347918292708754177306557733892774734192486779177252906493689268770615640174009424488255397189558196963503900148358258399318857906314964297041611862540389751889382632839056218846601357004325068193754913731058348356218493707462712861541120595608403254086274099412461617461727756272670754559509127191586736572571136707912802503081294740083377409101986923640614517220108195316132368552763220244277657785400201488770494300782091097717860622266237263878015606615274916893148452465295087116442273017095583787576579206676724280384669655435102238192640252864785745577634153453551671029978411419005941337492725619896950170253737896958226346279630656871831208472927470968045104527441599494443651104381326953976150632806920503920661789134916640797965207986948745669324748821649115326381289979760240415863225019007786315467067007644673402017865317511426877604719172129423710824185179388835670077672459368122675008209659778920984438780673102036678196335381994096734782540497189226822683377454283908779134475378192447704565818442227155549727097904937605921772830216568592072671093867313467483904748145913176987082505736149395829786990691022021003500106412919650486026645422246241633584019420456513107239349612041130532645713755096647882711654377343843876286194418940095882153253713451669025754171033263635376468791589704122115846818325572480493409574343330835573892077926235787756027415645246442708308442801500109416120143640491803098260343386255220494279873803515493744024422262182354316268948255495489912365592399864644349172338172562165453306291688482724808508393011572125545428500187928463469644493195568443124100811952931440088120447725657182160200578353385741448895569392318180724228476723067675602822471668224010610839514358493667082783975083131324302643844356719696289209967393771173945262190850180539047268380228360373715742766824782176021780138069973440372245382775734515816266099848268626099370691258310024201612357308577366367802440928750499679983062761164788231432596747696077159636203896603344349906893181384279800492428302444984079962972580252597413242763727126004288174444087583986817036088488633052749597763381525639552963551810595791970009951580978059150996120840902542838888981322955562304185705936745412237217597341302370662111869413331010297701529822525880806654180982998067777643494001357947559264096630649008362389659513402664666732324138755672059319696390737167988472774258800435971169368766694921076215326770365509826014037866237196390892811402334500118332763038109419342165317999402913122410830757180730586515857071639606758932486762291145599550132036201111058173317036592829232759270201248158641396064124214498423202163757500064166534621118070640664057321093491910927750727066025491454476173881380463913479987330367011217175471808804390402186372329558271741378735513730238919509137059380927858705869001734046736599994647372882909258246621332511781028005767910061968853418018092881641477575709847580529682289727165762885620408965814415628063725408649205139924320742431644379745007290770372974555235097432434020238885758439380140285422214282121263445032061519335833443664314636920895619648074644006260013578003193988041572241579987218719994081019109282884899152294435132309202063521296546794419333744183712683613832904033821210623616839439713991003970451252869948789695043477532481278032311917231575490504424330006907906616435176024521341200854218533704042318887037856698452327766700680803521058280786977187911031170240261108681886872307067746046374827821314213473705320543557374847205403215395692954533110008362894973294859106047901827195059403365461301972406628277008220087075584141723498871810074261115107035092034106848790719309597157907966772215768168650992806934560490069977059041915906961040864779033632730990230680125052642238772548135547297680676981561481439985837356911882431629236811517034339766207651292639596986268236201256221999404761294378480510187543414624246820343971996471456627739462869849390641343942784920162246203581749918378564817782927172629064375499394451651325673171792301750670081053784202844634438702588980557614469466269680282896280662151430869846928160214957181364261236639922029300123492840557062849166414081011085981406017830889361985330788905033267928156982329110593879743463139607437829765825924505779896135261773540433467245417261227743738672075154490289159223608863554797800612160410847397272551386327619423125684144917175338517591217593948947369368490687054046213524551195856336007149346096984144347107081962885536089664192663478378968455902218575761176846441534263079576568121234546126448716244343307408125963746254889432930015589994003475873578687630767253638826924908371434213338029595703645867022389769217683943513203403411654769346038872406927077801953585332079372184331888308838829810671274120722471286223762961018917898566312811327349824935721624252319544004255541996470017665447402140317491563318994417327006673212992780195438775666246040928188072178700675138555445905020173311909088202778468812419038295712593551302550775392715864660132361902072215409700423671160127863684669509159318081542635814991017456233316281719353413540316636390509327434527722190423797798892528477879313794848069801031426688308042628795685938013853506801233288508595384826115742515777392314275680561866071276042176107250751726927446880116289961290750516510968844310065997925792202277289150405079280175428997090515662187494236877865155974323076497806647143498612528971583823217554690020553427159361941489226027925525576980978573792010868769325166936612639575969499210988417481916127504697110475813483651287767945261384420429056651108033205414819961510686670720162387428919850695366653928282072705065696021860261291067670607566415724915530175043420171703457555803803694111288406550230381253196075603037499754183299174776068797765135713673160492443614624747901752439670960681554241743545759343596099218853306084855563201109111464431565445398863730076859299660379440398329201946033143273198946478278391460029691454171990014130575510160295642187797496257614206004656792835425736614701517209892919236382277114317318144297300396415293252395531913979159088405540870104083245884631294930056061776268094092243045764385283363723286222889236885559931681888480049446278308993001254789734100788501827126997270015605648097641888884779590522872837751953114934968005429744219521081692350052436220445699280803824669113809481639777886178907209045040311947446723089701985751621431758349788993837628450947213476178414006164083761883239472976827328482211659332425549636318030810088249123630205608358645181770926888769437852278461617067897494646318873427450472421737270022226729589671513272062356638982211532441557165659703261683709693308785743081803716987484371926789013563957272083849260238520063163059292441759328925286261615312984778616425033934960873859839329580089851848234362519789630562539344289271910273059693091854773594332593373425400555252686668377697450921075722153080644696822425935880486964336279869099807518492792185434536374658034466945781718349370955057033589177192125921013708202924149931498763376796181040245875375379161100945057305106805821455758985081705490981872245199710283914493366091434134149865972154512061375943826283691520926039136632740223387982089684548113990089370778452800096666209643300251383546364477480198374265193955085613005852506945450196965071461532019140309039339196455815493423769835683503261776689494378250972400762569334396744044779361433815635249736104316736080311528035365187184139279141129522416156634234564624459401996933041411625521360608469261021684639319853111926600668958651601439183099347224771321403033378196014173034987002292320146466852354449840218944756601856275875423533889004380370524945352713953023280918022913078769216009742504579013150463910369384915713122784408152374623924679726173674976807797964435962579937548240574365049727747898685068529273632927388504961835868609432508911322923729094494186184675297676044032415268455316746262016753679706079451343591383759354519083031660098628809248184688249055351240664155628184490455232528955927058912867249349416513882738428941453205744805273455582225693970459065127429438615965976130980687986823419547328272835660292177990880973228342313805704704859933624999157494203661758574520829922779718955530017441471656452004280536749447026677439271373199643678583070794605616150640539061632031155855009151364256452938990156803739010244478795129716039783915461057047192330067913467073644868045294995700449390989080394495189565401837700527589258674574291213417398805847026415342133784298927147883219432954014017144677803934362997885172746333774731203548088102198428083914303662042922347441529846890146076235069663202622889441609888294967727429526727449416876951456274105215394038914837504501021496234191613678501118521161217658407733906337039028535290333057506446556704968982216602978045703472901325047791294635098553571762391185933962969677822573689924485708320432087721088877757893506029497695722648725333295920876206172516248675576835049488176304353146871625314152263588540581608888531320890343645601698115713041121460359938636165360168209557460472922048699115510708209746479241118592200465584089463703056348983805735774896204412893544173386154334522802494498447239851495207802542944587345571222500930642783410860002800408557532085587901594009938565745452859416483548940864218508090577542699516162700793238064129145025477014034016411836836576246435658914108605294008377521181041777329021786087599049807809697592118385501522844448930314898288677360286099745190051518409367432676209552972257867443086421652836988793054436226352575398299139361908590750223053974640907142970387018977975465387838969886381944216031770659456525042688238454824008542876378376304550137674330507785417130771917526362491325070669488367889734971106887574236669884156042836963530934919481126231647357417037528249910050371584040026156443125613701968441448546659205609511898568702049949538716862773024013558099004122056546888596079176374463064928865136938588452310883972775117265113575127346360493811242203515443382441824881010006469212335656839104986492218475288796966115215606774210120444437105897499527627314128131856385464665158184965861740873722550868707675063886545434310973418115279719919829886670536737528660466116452120117357907816140013179993124537551991186098538839993050656883772750376428923822999409193261216939021124536160868506645502455811970633982950423645960825395482077375302884087270806861814109164474104113608757599600092328084182031298047624106367567932489768289479542525416780459483333528363700711806994123636008958330028694606642779312990419767378179396478439699734516749018384432321619754033052900932942443209030660503676564516441668520076597992614807324438813082797262032115241473068525807789864256659040328781625542767131594410134003249807745588292544208974264550629480446657282718417400068645397326033151084310792705629433133166153113572541073154354592925404205313047784223148878229922465995066125115542585972014501247608956042264923616871771238171533954536131682497824736026448057502960269776520120204355522122272224679928618566567726821696965059487981541750133728339970463096772758340332813842790691523394460953703872615268764137824094819414140399038934021532019764859313021727100935572333874984973480967335802339809924138922662611566747899153286942529842599427338165856822106691711992381116955310723772986284990085051455230720508055282074449181088941547741144168612934763071766773425998652173069333777014688915491386556398928916595668155098191587072516323075928152165912723766621972032036242119362191317472565347667336562783637143272551335948264652792117349452547655643316335791791365062611600134748551647445329946499137426928167383205504379947321871465562611743418958178542699666324045769516279725779312372631558149955646941028950337504050480642776960810436392921622512726880518697419994446475641564939723104060030094073731627586445274825688037068732097834605970468034530609392095859700652493711112784550727411808636165046378092140090892258396743685425255401821439596798096347459449963621744770538637855068096305225196756749540645056578025993037940534664076284783996744628201840797143549521691287764256940225672311644335525563328665800985308411500940213675686722652013361785653659946400857530127312684979314083386496882245772241166846813805243827408165540829073707538533765882768914984792145403493391942446843228009804042696301913951902084239775297184716348981396756282088306823108556704762530559833108037014956192974568967386082025101251476624067563179646030411166422475760321835539842979877699161728617391018803856208136632408149449128805632309907448318743623268864698443636038563527964559313424478411740680763566834879981377928448506577730918825760024547382836266270097994401752405536752972984182004901072304557217748015289875282211767788924751790149810319975645329089125920139562777876236620223573140883351313885646550927508578533264941184118650799810578868367561360691069858449483819691149365180736998788725707972786330218733296917200414893911494750828743229255888486081285708020232126345575102375711992455915305089647171543963542388155845950205290801186130855674353367295374099036943225455120632707385133255907466710064525879401429027556026995878672131187191696254221059490946335043991291742141668002624290713499473932413003186333800045605163074389115261514157707549582489258858422248220841116248124283434768736596541316698429862180549375832187243455224110889511824086297875410225897444657558167124171780486534642733435972505327684895555215746203337807284107493693697670565644317132866615889786779533985622377318206449160873306257490636405533168404869027291968578506315266540194635278305451073015900183995494768890437776214621118322004214355984285180837685146046853895088640709960618698562724804397229576533606021205884993420724809881903407421664885992898523263944252575839759560975764994515750498017151070262560257943520734648682311628958062256606568586533777499872149373991853817002097637842361367245843767896222803681140942380643833787489492732130712344928688293912469275301498185838714962265754293505950675653641599888099839549393575100885037696925223944177094890466099043944766471814207781122496872331056354691769006429439194691905203205798454611562811448178018352315919063229270268328401057372714285432014718394127719630583514507568133761612700784094819663111377542662395648572027724034418622531669387626347837627671369953068165606493940119963203550121988453285075838445851486786386454773881153980092308308451148343196314293418798092309519565331422563980712850253911002987387273244290171538852915185372098097201166122181600232547900705330852833091465117745974700082415128915142103991976874528140752129415764811847453957067815866311081740263588184733828385889833132624434719260398893511374632767112896773366211431975573401793113871307212312191288591085336451002295181535743875994782855702916818640198771144188763037931000523678031516357763634608712106055586332488730918794845157559334272969458686931888844045855558561089493885290338363049821105928553509930580741402959880854195244207187883215670240427088719942789311540043179457317941227342304538145872944815672530455251993422577212607576134557853440684776438214028932429852421542473007591967698870378833614309258869051343046083632253744384939046624540857763497524939058107284827309894429357144324515644186536473343720788609718614314498553266104668460064451946407423080614588397201587971740535863155679143302557663556150878475142286064826770290934471133937722064765516276179334624447271891935249654451825584736342112808198410385427558086233460031324279191973114329948086838134663102377643371067522290688526260502361817780790137591163807525392634314563197319952011496925520796879861251574279656409725601797700639845577269703119262717469783228630021815318983133899309449503562730402357682386122304930148300327642148437398421082193270605177042364928729462290893804036243503683869781864584052609947305491296163507449357470574236043681016246035734117794112091939366724956639598886701875266623184412537265858771846601317346731984351116711547428204277687301811052096906547000290547759466656513507663868008230442627986038283799533544572151412838699866985179100704972228280371409514809311894888471193159759781088915248764970608397783329189026300392599057974505311188462472001591214468587161531967697233669529810601856500859020749571910801300282828851465638342011440034831250954641721180674951289936349154135597089084880140807367119402679314741519085511438388688772504666917896927038093719492455931057527636432622433821809824211597201488548709050336801333346405523132107009831751273260345397967421616039911773059993095912696003090925644947073924910424540555847873071514322426227881375663136205640685229590829820581551425386960404814406704896251020095562802328782627975786137405822911285072920712993694136923642076727016512570944471761414727179858812382818957133765899995799155515730935267034534952550688503883062465130875625606059369233943687441291158268362632391905676586984496834412897715189715354832821870997412420876068625081749033876247699767924276961745854147251124287588812119452451785928000216517936630800301368319374987170729472800137635865825856046135853996909924732649447854243488700009304350053748059681827908409768464513865142190766152577142944673001152961912819860217198410929018932588388129885620177935423156208457197601977745828827642900414528130981869724263490791239882550331913696600069360391496355111346328135239789533928583032903653305720904027601497746424429174340612857596524726905604741916068177478100695660380114160130017127018146931970269821368802465620105596890358480943496410611444898682406317518892614897157652297428269523130975093352274810631279072481443043021634545001968217738531588754619991490140689197784380289957332700573206713032234158708500806294945254432664300026799089429133221055756983907989618677008770349381666705467974973828416196820801182239890314132247594852197082649025722457226946260746790483690469135480547943899945000053089345830348532471819260134681604525853324118170329652833858384111313491251669473675627138452486287512601587306997250014901166609014843133992960811571125098977403540174197552504359592535972549052569783214870636887945874521203675468533176204536310355491442316039856412535650611010583059366218078902815998693602842307725680887213443527422782063601579632206637380148323292365923428803832307015937414610765775830225903864133442916431594119494871064709077834191698365366985562264336196377842330108136719251700121092306105383051871525209132991147656529161924207777315274185586886685735456734772024032871106088263237945963431608216515078445981816739529154869118521791052796560639010321193503995228311702781431915528642852103489733779505993844155291512568019657838659964450932065550709127328664010972753004880220632520439958846534626513153299526306358489496386452482277566457175403281128127767710976750855435567329694529396926796426430983166276451361827941003341482759356282461371397459389820427712897856027844149630085224398573137774213082844908435400765951470691269476624975300566570423526808748813350892360541734304340941025341435024061571167779804089432553611694763037406613286872551081893792890929107130744434752097117037511628540845452676584654805801019172887600421778879490441051033539627028103477442651954451008745693921351127446040101893166362972642850554774855598149872995056434978865705460812112227868169468199790533248340086076191642578408887648769065614651787165305717597818787376452356041064601502170503313317894551239153075673859027583613675360267687230915366264295708579115228237325826829731275359019718241612513974499545722970653594032121800611670422972774965371174280693632129483173828383199494471237413388384603716258519822767298297073438369356018291878908130301311844282884766637874493776566973828818888101989907440756741674443670803624305590064793356189143597211435512074123973017057798395191640674547502229014830847430917621492753112430721505563021210512188347511009046275690455738033730679389819159728884657029388008430663481696020237048028542958986746812557388389823261805587487259745167901608263771362580181229508607818845115317123000996411285622145429614427077204144965269070361261615627565907631608949238373142144842068527553377386831501789420776534165593654064620025755075435873020213725704446132736235945142943282507621502016259260721940502451887114095204817848603027438570102990941196177490970726456620292944308742013566693732723481316436360773370535935229239891475264710896279911112658614517473747362169517128632725226744866587352354685615863244906289461016317243090418182543201299829199620140374439560838353887964550504241927680032760074784402007739614503004084899871940271932226733988639676247041998047481442773690623014386364040917290718506917319337412967230084381944968364556671810491087287452073926871897072433164957803474798843525439268936802622791970852396501773540067301561303494226657182257299427373105962686533409303004306916097158482011311749904563263322898469184973810666832944429015925823329958501569970160717963873992593787875818300446052995720515876714216746304890675981793492211963371330153996683578146200205228309441570957700672987893152735438321691954642630583091768579052690573027713097564987772952062847319610113388662377532922012463044791270217704305501298910236089590877500698371289981560469693906108427397825330512691296034734690240452062952234191188747002024933269333264459233683136189052770437637849438892523402339664826893904691368026946087094262401262036312241072255488947461444969305133150231814694816778184503989502408082856665663769713227558600724305232987624187337664087400889742746378743334510972144078795553752528904136423905806553281721582187687512803226038178057833550585158751846251741711800971583787374437631782916302883466267159740500182715241318337766685763809869916531421564309782082964751186954315241397463487449074415204476341585346528011774913230050251219476057727606568371489474340383450821087849804371477491506854304494896239146086430809143175611143645300984527273742050880101950236338925945744154603943049016521985873922616014212062135996899072203325162675162829629258285350313672250313479087243518849199250264194887351004412714805704384024088617198465269113174785870680452114421011533202035556474049396709153080257555662524245064742576561242311382542101208077236335091887293019337329021618164625019219522393035359505045008505055387639881998009502155008086928823172878679265345881111582360218615756322934537103683740882156855876142903051405491492183097150336082902395779179511153575384770446605572659336016384089238628595776528729656297701583039992835769195686736696960840862151606965606283310666936080323563408030075920483354959076565949118230358200894403149325572836630262891643833833773664027720522663976895507061539536553865631598054883063631917087854443061640449853732517412996558901942422564087991872977266280463389687801812644273707035699092413067216904699935386200220016628948409065042098035956338284690260219577811305610730790237060136102420053187382051968235079724686446066481967893415407757289007871515380531253746388741083664995601610661042907843559195548010458942202797465475105774809615420544344408397338423245616113266069703656908571679913150700127119694055697378734323471870574360039248015233472703834823176576690382370763822099781650483613395431748866250984422637140335603251748627026329959352890362766474036495275219097144716321667938770960959009137973725258420731177237339206843010568961927500552578226963755006689676459716321877448419711847296010419566505150015819313393873068053556965575609936055895324110790889271747835920836491852943718913301332576519996426480903275633768519512766634910103509384071030535850912221447402968501430046361995200518398790778474333609186699062533220280861545426956240440125343778010922988896243703472046706954140957612973773715396427732789850316199293761534475246253771550225686390655607945722255379947267861984458835945691134503668608515863288339127510321142160199175180042459739177306320496299720991567906697917342138486454510452091068268707110279766461649622333830575579272465431030406967305761296233359314199344961055311030982167839585517104983220514824885850674853887675746640588058304234971323826628846917956902956002022989859341123208684162084204752585945115544998485387588523709649060215784154797923506427289242059960257826306162832229575839999290021747109348363578350800543771974385794996836837591336183853200156997632875272159088244954919254797082548888610844742763742984754320239924385503303350773568461396127829811927390253842863593546628305895394781631432392303169404413568765836904147765082391933752463695443149201372436783276613976777504339397623910770358482270106679577680487065919435776064642098027006527419890842387793671070711478937280840676662673699284776233208590175931323468421534294842248352060584668775007986062792768023465175146277549912775222992634422268992792446528334496500584539958800123823980265834415830924011039192308187090210684022095311279859036563876978489853713161905998113742852074007288274715449501843972992911974609072306758800897694736706474161712174821220953421768431366653349566280576137656526411543172089480493726309481646559466561379634457081644431054144489459859105260982831201630751903664050182345073510824342310415029782072417816608049862879370189331307365253794474567800108515639630623779043576383663493639805369810786570924464783444691628689336257361499797149707801640960010627053535210460182253397862062139360729052789326009912353083382231387553834484698698885105295570879637285291127580869592806687201007870251006415959192102664133711487185395202344763310970980324781316561005303677394616837928810172058756188080917993835466875778916871377549342351920557159090351525159425593292138687297646412981184782796312341482435789461014907848745398219725903526305761673903682770289538691364231108395416273358732309601841314058471467447873388883573889424482378095366853168675641389991660959848582503551047008609677383178004233979315912956846322335289592533260246794670691359168042480374094173293950420966188647363246876328037029863749216820293166366706924823840986226549436555639821540590027163536996519737827574469101174244358647000221279965438842827688287314836590959448018943350155517538902112990479664815670335917359805739514849488862665812084953412875990963009989139295664950871194107878130328531723518951811108240399441446814931906362876691545676427443427087900722590923148282294456060038910686592365845341653305363046192920099424751735529476622272225180850487738723423315105596006435013622564328233316538061311848745979682954748209971906686962851192957456276943421326411831360647059288343955111149618315520849009409993621148119209225224945531937437186242355293894260026515818818150475806928760443858735586688009639147626710618389934830583695328723655654860311670147326750474348875616358202454898500360890322411591562594871783735189511297076967433995870077803087541430523306347700209573268219389198487360906698632917304542313476013301221579592285567383545336402856653215127333878986584944750689446948977471399542498197852362077653743252137476918178400795337532710200216560077572830957897835804695983944749250792057910019315385869996091661851471520831784747170710850275593718472180081361945766433062478356327981476236809300131603027633975178316387629749327054177273841780652775522172318003037138812682715546099396682925589918230478399607824709925697474318613217060718150361266849836051357016811500046899432246676877597535002754698771514569923090676019837142404869209597884686800365625449369949937307345720270368310978634752824320961218842285253156024601281829780896737312217700507773741836420517888565346242840868235691642081531490474104248880270868214004306529725098493718107109824360040499913328568816221144933069430484217124898100286829589962002511808654381470904055101006508896452089440072530787894216772337163212892670017027466941064286813046619867112818474475358918736337358202410191818931070547395026705290172659821311555094967549221162321667452801882111283672917571336559300869000560515493571142103552310469505265518508675715666561895021848644706115365518439325577291768732376674657739200998682135318055875528386285127020260921557808768804706766912983175207025511522992667077089726801416256910466690122982060310575306288954527762521239187179802300478978051209553621470488372088630113127299130953826463329558846308617052314605040575098205373248722622927207073186532048168213298684479621591468617797458301628184155385483224179827181925906381406105696476466073623987321185786934998814918098447305359428926535595551999768310355988770017237046970262389331813869992361364571340980730600118055631418012909176900419244265935259492663882977476180511211314761310426342872080921969237726727161791980550195722114789524638788548271436155505049993161179438839581525673606508309860799557536795470613105510866243767704313862430961786093088950508262848408131705111862868905860173049458422524535215546585763003172003531627890704169735726029735884579831283029283886684534593527621547527681221287926223061215521157653114729993251224654949856240460052880130310508587808082284043908249574345699732314269167470894418630051151811057621415784999846114055502089761781310747692692348892517222863111138013051963584876454839175072503576096466530845706000934856346295352431852278398094344520228839602481948558839092069265884807861619542183564774363224799674051696500726142096584104853270608779472886034863259167400692328166444248740805399525742644057674635436449528085124036851270192467962553307043827961655548335484478640540876029254785788530546261870179318463396788013698093688230523786098673642921469303105774212780806015760765549411822199079601264849735713838185782381876391375546288824095176137084492619196304173540859025329907292351321662632815272172926927263392788326857422079838275819969012150286210859863950865525061728746226557262536348527732988643135075467838212881452787321779517403343133057695950617845705636036457058865997718613257138316939545205402198531826813265448727625704833004031413476396580131982578845534495053303188515335920268494038759628911651698558745533030815138568975587138661437092257812068366211160091978927545334085271085762034714976482015988911139261925399978168072506529681013407015239001891598269954500848502444654843646970098317031065238712470355219667115373112737317223463578874276125907841857595325850537211398747372220909787927444003564389410395192473892561349082812060897431246046538985039518771340642864723471187450060895713693293216900193827908855722504601578849950059788307112151647504310882224509116405983743802404284638375823955808463207962266506144188579306412320069631201410445258753377519525871953170188984780303721743058527781037269833676443947751308856581580358835484065253886392491716465459395151675109457618521070443339557918851154976896035501453389359304075375280701558605134947112501480079956458810113298015468176303748846168070527437489831379764861287870385791803500118210897799000477319328658700526117843551669078508291303513174305414681193069120475549441670298521460081249569370046100775456555906213325285197482162948177044103183511788380192105562698919465873810389603042393866422258152252309989387905101785823866771543505628130620020765829875267108592522202030737333465343495896987958862481008765072080923211054564916676337182748600057463567803018268557229920778082792197253053986556430900233431876830722998934085235594065858576674571603061030442349051295853814583942817769611261307829404326500140123500126700015854216838672778290102833344238132315255451139608965426743813469971480416438551239877427532449490634762221660572034148535635947684210079036647274817199385192154666448012591613072324627666391736084018386119443827389947932806358225075823362850163107484902244704714707289223862769196611991135725264210881787508175713726286298586582168434563443648656876836861745676658654925883003311516967330645573775363147521574621615835269713970417566266618409906412859453750657409683108157978417926768314586165418719914878316459247497122416954364042554801966811540190526941426409469722767411945938372530694534295335111608027679228556980540830467379649396218738272876918316175445571047035863625539495752858018821619964935138575112079806664871108458521790015859176988950598887594004231233645012874004415211962851847953201769389507741171956028476096311739302428326657757212097380943937169694536308572343094534156679080541910112998461946697636026622680808358921464551531165777276848391083057723008307706160292183936649703822132421194793688600614692916356659852902033351200972216284355167504960599171656881624840226288481330662911042576339427235831725211640996526891252779698471767020963967510575423065821342664530276726035243030872911800708265533224072016618398544450710342201894316150806503027785348362743738927935444272715611581842763728339203512478073759841699775428054547026786005905477516913593182313527785145826467481729951671438256873565020346674429826820503037585761322984420390445948977506065589825646045501559747420523186670539620419184289335114999627153339328134933303197374374195106826583340799655909451772277970231602977687772838348562583205675588816912391960909712872688815009126241263023458101140244939520916712432742669484367146946533358194363887960565703215498320906418982205519499305363881242986310634833518027951472328715987445042764825713747917783404351475063815508790051017023983393272455939896283512102092778215535017883802366891311238091833564463954866621632489819294522406351816931549734975871228712472499711156322871991113281871545230037924349599438684071436480136253048168194845858695521882676309730975052266929570421825128927214852970040374754482136748051753937124961281926105682544961731662104959459186796009636635335145946342622870177616623982759477111907636503856415756762690272166000393912784959586470071344929689605948979883745451824581084602451266719645872425402057904367917273771184383449838029563930110083997179561657121580241039944408637831369923285571702077384263056481208766982692041635024811507340810294743702428659266846120267577285359574791330696960701245534488207619999906852865270348686094348716981245944082930824742594677444750173947154714052480568812783193917308104602856750990054455618630441398809306907722670203247417011063417559341594942707431717629835645973977950185858527658841321675574065147666364248638358736003675631598180532798254233959481357457014716323081123162078616818753562897527713064740374744569027543595296730372035224788412350246707577676807549600321625766972301117463573495697468403649057292020994882910618382031081073237198929714893882737268707016446116949106601945027153888218993120956555925016703759073623361839597972335106966558470909725424280894435762932418368276235786358737889409869819699000094244638887869602863805077029674993720163811026121791820263617365166538053333523931523798700084520596520363010281065226471441595300421673610334363304329017554499413383253129824403476448858574495966394856982696708923975851851068826015698540124311428454740218977621061643884385728586170126485042140467634734132400449012802852005821787956060495829762881607099772033630304438269941968647084113857766737454384307416744404014646510727023095540148631915856402945079297052087131291397398009515083905054772835757279605989588738935764904979199306556331544752890449257050374919791268546646206110307839196381461391539099542075125267929703452660299493641220300834864577924985845611023391863468405351917146700493161085023765108823084238566869385398654709267883832732385124073461343278225627954077053961918532810960029936149177676778081022821934625761910918150913929691959315208636511627521303718580983064044043467112107485209908224317876756061033186071577656414340321058751538790195571461328259196511353938750285095202242702154338410506421021450074683931148147164349263394926962096496416314456080952756367762266922893609238360365823817037106093544601698792702929695650391961293188180239374824618441354146043579913901797783191238214634506463707921177197738926925951025560731815363744671197573154740491185766579723102001865992446896111250762247809652501058130842923459980323904161285523499655241000414102713285835454288769386907940699084993657365159047417026775930408308774368878477431416137963661344257525195998790773297299131289884949304211856062278102423715414500940252531568954581922030404197226627824817067519418302155957327373297060285451107180818440588458935019036560799091540888870109294095433034475971971469409140736640612358149433056591735905279256864811533598464026159704899219670657444612871060627967138728138405884788416227254057395045399633682340512664401605404866102298080233954533178547204595029523264744758868229456612508824983426818120658808922403092815761721054957366917269657665628039803133327318736288103496767905754080173379128469685381954700759326504577609169477292090793957476198141064845790479130829890903044727933794132281322148111696707125390740594353762759197548476837739902867214452780801980287162027117518128762015674467078091477552817092377817938820025923289471735038926753033165815171190465746232144985039007192369492913780475108926826495566856666409511307281098592185670488103901809301934121489312162586935821281701399682955764000268762489162324173319893161446299783435263676723854610948966385469708569969767140675724387286198069115512412463449190342404996949756753411844115463151175250470003095433160368259601712106536649676346242980701872679668907509322421723040532171348071220834885893109548088321209705919920714472460937365746141304567865622193187674562204922420871441594917822988815256924003217050759815268191875903718852182132481357200743381435140549826572985786590019982719717085662643824666723285649179237002059109015862630673628494356325016457454916940814283514726577408924060067122725810543579552930523448540419095832630975566163604645717287006251214960277813922430260142487317565193412451202771114989671129503243603682985631496845055922138757132553502709648194606898455166831018498005213364757601389429099933814674747098496968198132405678345840594726205808268041902373798791256246224653242896775027621219093199282336998701153459852563341721346278936546059174770915353277121278872964852798075564971443908690584519507557609795973202660154372844062392203437866868068045030355523068704437678919400385529609903854526093251262598715025409998225715389651754516499684184319659181105988357879332373870538845087606138868127612510176433332257481466610789650796463484708334529383188614910891299417007800524421152936389594655153159177117493226784043976492852087309798005365278591933244118396215541501474761871980125102727369616018214687977642778643461930762902342953722260875854439918566910035461356530098952503768605724896125754943879719545076612912788999444535315552190154308502882403401438666359012554465136713053507544727748869725167247929289141602287160581676358006478524515436536982800624859561791768906045696622267753700832635737985631983962451938292693295453109233388166709206813805771041779757661199223704145956661678244409802194991758127561799029228827146092268824977341520521470663194055315215986060853716386768358867061411297208176650414984964571930344602158897798375891275973469610593072990845120682642627629253276878289809758912187865474139941499899688463017238216006898087819502717926831900378403331327952280019608736306036318510177516086615973793964123646918951846530902410131802364413491612466826301617370336199556470218634904249474750292839006764899460585419670682921456233726013773806593666505059008345400705571615837583812431427304787641347417754147889119329435743462757458293694150670503932020944832856974927584153065244649359989861501280296200000120096756045341386338150723608306170905205842948783792072475802563818505760005142864918382099581481215410239676025114672254135111656517155288382312980425941339161567734746562211702343133952110785412421832476872163396060789250464291982139894642931875202019830611856857269096060817618458860384001640714164007563296369137762488244767939053466041933883063772257269576833256494561460606175129983303391668185019742953306881086949290418451773522021046531542312421693203785073890000589023249914691947278705349452054211630128084626452148888759437129939524100421090180862175140692908804246138536703283885612120528174889887428338317793668613486995484206643291635455564972411761249540331708146935297871631087519671762005876443372329518824487567155621741850530412922032808500330065608798693094560764169615024362423689603227872401573816385190182088423083280155640192065497779377938151169897055926298573899634230047703274891586912258244366154908367032160063750975004903292071226612017784078196588791015057908444789025200051207260539538205835492842647768864568674387227645357374927324093304599557574020708897177715734790237409212350629548513474016514779782874744098815318351795136343736962739617693640784491447108276136120729368138347244018955576403899027931448346685115488209023925333165140400654861937805051177191098848085850127004845711037008432845491217260796460806966159842125406391811413476924077263312509593672814714821606325180064966436444221656647654430745675881791767074019764687255499086101832104676542463616387922835668505667639999933170091289116439484984575574467490994242210968752902314537727132533831103915330024380588876463713581928853778807460713190806216664430327461820211921758349308653807961764384874215262888928527002932200773852390902190532012012918869570420130124844361627187082864502300355705228280478877329253963347113652266548121772074848471441587286468946220954105270824356081311537467763082549358650270493292091076563690908604667009452708580465661611730860221139987794725395953038851759676650824902536066237752367788405545031690461923292762327141361273595927796825230666553282769413389059067877437954966613916974644241960208571158503754013221763319123792045138267808788109885378037846430044225875297620109126896236480102007323029077341248414686013119901571450911921155413818567442921021892276465940184640218384041883890913604163200768029382259076087778338309845890222964628014860212091010829079524351844897950959917382129104327941585867801444084757675273138946450942623101468168083105276746307820397332508557210010646623708162560494253413429901954077197088532873592707547422569125047848192689827392937425116406430192238654675089802206121857970389357324962669252890830113750301904517817305345285390582650237179680535011906722316588959214019147079722599331266678689921613809054873900430589150050594060282050993199371268200600501704953876340557949388536984164740132114307254438221699507100956522091676926835549943197675976995854285422130428594395963589253653986731217438249548852383202764039973008356834173130928073810755952234877123021423777735434486025217046020373936862214009135096724477892927438338083448333739947448082373634028912239067944784942133908770760914958957029152746904225182228952842962384416114072881894796299442684276919052879298507371566387026884313482776358048066328540340171805130216928752917061678404310714578711496388148212462763492282749966318271910212243643693912568862212857606877880707663204709348078978892577555858685663492752669771527975212496184036583610906151102955577693385232697024905936378723158225450972894147854421280077490303716312432402411344432345424057440895991914150525400964859314015648508007413383907902905999091616735662114273106068687526522844669523641319781836372772401477580685836812197100764792288715669776539108193156402070821433667317602529247395830808696095086556492047667789605090125942543890719203994382063325722673350444896958109157735118417791460177190269889481229301614681322381573087225654027108899412805857241563486474916528478126935145154557727247260711317034872395602477796767373179545617960922833114053482747575042121817105590237818015255173111113143912881243072212509178944452803399579214331964983259260173412830275392010123609539493650792325773056072700960973130225486766392744501271916861359945997833569172819947388267242168444551497608063575576547925165832428444620093186634285065741636726545950124907692323202486839564879417148577849208968277848839604702354189690521271555699992537673837282509814300097880384350776708546032379129560989326935310409900996959790965585403823437442168064870535341428870269886594283077763652558238676368943322703103575930247126311677456650218908779874173320199819446782527205811899849425846621656719287550571178115331110259386315895143234383107475745057575094756179248925733046737489649756982108709301742218886183200096023070925374528910495720302714938761413750546743915632934814904077338642125504280488252388904761277695370476908494824020091667995507904216954520592841873722394454282685216097855329194470416900830830731826211059874384770096624424583138284883772202118449052026027671160585953568547874357180539146886613311342236144774648431514594966103943267471181611595976581937418107117346578215593555119601676246563297002706818398633723553043463929726245098615111889223947391082772252888165379064368656186128077804493174347876678719984666248415140437856167716720086701483261812561178067017147449116464361800606031362378333922163290955914363777818267398024595663179484885995414089949332529013612937113554383442105978418986412095146170136273388539929697275919770667223965137118513890436685665834032593744016483932451915645126169112651584565407450303388251614218709962143492463595018221118944766285128870255147869943149969079285297056962524430765956410342301243072095027232198146172344864476891743175867852037423686064295032637810965446801812919049864775476988982361256313967288710706058636866770093339491967821339955146827764754195412567374308592303413147353908317869161606829833903652401978089158379843887077446544406956801960174184527519204347079538879740348116714097158277536547865001360233954099583023221577910309777228644549303884990268580350735729612275059271921879170346577067219059342577996657924109184887908949155454042986811848467159380253631453095266381308443977863796709460721254461078766921038480648737027128443597712660253944091537701463244384863979391041168358176216161254026102015719318229403615999813216072189024086389390234001752439384251088490235061927217395742175260147535111912455358886723408118072686547498308293439803568936531714653010961795887151927854942846288054441372385729604271431973899755738400023258220176597045699365574443131744750279499067900914116342221179361207991412229993894985510892434507628599272953667182871883756081392768222863873742286686878781350263732318792675632482798364542459373651687747457949249038571797135330790942173697805204284733485616534387971121726198086140340703491624833327149847238066044023017735675533470530692573595268601578115097903537380944554072710288038913525722833493098292862705525652388105930391730231911384771152233889065362283904989259319350322022727016350679854040982034474563416279906482221279593693054622070169981116268137840263942070717229596267476327435655260210918979849752751590850426314330991373057774958642275149570535300677053859216769224194307888221101471934185915890220271946046541457598455368331784057611770170105270622586216829798002967849290418446897527953607356617677493493786354758565268209850836429582575138162809934694929658019605730755979339500927839675731592787248827381533577302397667421568722476837078029036815983218034546337768313990559284551789023324993275484808732452478147690585119059697651807636646123438666322112839501204599124880221943673513997709812051152985270239826155804023962546247762801130082383764863101907461415363136525233965108763005949600285366865364585401318184452641275754957021015912480055264279446720329482657759079385161814776256321124780455527672381436303098999739586371929889889556349077721069472645568792119279625992278474809987933599066234568975199704817914460447808885178246575238838847146234318001299098383715867927402637374885292000339727800213225321963032424064098252368803346592052268177029258331456144043690026699031882560242830372566301338096103565415600323650757434228233369465514856751058512839130313863001860492596517810192800462488401745305737850367132498167330721160420926737980786837999254359929660963407514608168053253562028358658244477503178870032280367727195986908978114576226334677263693513170001625239914616286849989255407069364406298047652127099364448223283432650165411325106821639798440153943814202429604554611911655083593614190652033313600761642137696553631887020672181247635948416698215770868820849844183085250265555870266019460138824872833972737381290335866436318294729780583127659486332369067820465086526220739599270816097710182800680383262907619082782889674075001327046098789088091976778552656031114150325029967550773653935596761883337023193938440392406092155336496333504307461980701563887088093431306873206736671451771080093196879383772914640252174275061462564690984313310476839374213478113993215151321603197716263465368153313012381255922428354613050581173698086452326187140553251082927673678688188882363260291423234670596556647147909171652527759647914988228933222057233682348413288339008429917820350314147481725334550545732779868383073326112575349235333267884771475113136633528013557310620425183725099024798129786224366023332049154787354990057983892353077923495737128351793306138913153887878183733609390651987157500070340540015457489323313407660173207899637812973448288760423021730902981517593695954214594513373044891377941968180675103383253457254981991248585551727137358975920385021421397086723030041282613444867562704968413679725583489853584493620206424129500746292735913096414092780585053765621804168095958325331187688048644189945296665165865447574243362164517976167264714971342738396742857846681278183599812671453393400461796405791033229737954647029917954389188198134699527450674067800556961657850662669660328577700018615678624083295439428162221474221795564871669705072106165764065242759955588431376863330326224823011322498801476700181868236975106498031037621549009430281966537210275611314898389768645827540086148345157540451436513398669835464321505988052081267259158632146242396806061321627778832546243300953464150003732088053298979354563436424694233734272790880554524230052557209156729722516566070977295659909123532377914114270196743220087676631336028467687745922714077560445344755495555548630095806126314883094450668180410328700575505143376376577344381613305686642468132384056722452038130380276339659972930918022239299971236875787008051695143342260945457794712700670990644337179374249123014458824574369269950980337296041614262460986555437364313522379667318203709658811770238654677948259497473557608248634471672040971876800495791466467994943449236269076830605189970039876068522028611182986794942527198998257125948576832428514381414328413553658132979349584151201583420774850716235945530297891290030008764156379632043706235325784988576824380473197417633746382078448108491126811465449034541683417827044730033343797784118223547841378631629541085979201819130690422812268035946574903414031673256883527399761285828744394456841494123272537549518176684676025371184913856985714979073599440580526737699358176492036484659228586171130252511578342567572346880635954589546957720706498156226456706079634625908870738519517422003162609140436621381933782732905292088293363975684600076089202040110173842625012583951660652713719947352075589350818731003958419523876435131265583471272791261454712552951171517324777795292771919441410867497796361236301999993292552233037610107000019288895916338731622841777026805341113061419350514751578206208894980237781375898210579729000184870191015615450174349435104627406455614104477996117238371398465205678146519922336320282034595783730802579096925233926566247062389890959703172625559349566965708438566260421502630650383714361175684894991959902470794668508541011239068875365066244349154349087977780238356491696014551428587111587681935068440462722311890820795394935525625232721677538773444441690713922510952398247577250783637266152481118621328322557405486862581056073827032086944595094992054512044101966728924150380396987823587846684467638780854216824995619747857767625172873938689752349391375166058298472749330530417991218844868686064491149604207516435531273957985562336415803198519524095700427533002084309160791812879776355368765252911457558669052713418641481784756149437539836793960219638124623813896644010271026580798561685941396254382560992667797545981402471820414273389775450513962801397628347148143930940483577826915196743428546192849988388813582361478288555024376627524718148372029382646345296181040940897945862976669044037232616514400763395377295681768377632643370421553157902008822444570753944633893939030566207974361855966106985425500568245316042980097429253364588646776142418926907515121640927400341078055638069467979204410228669962035246063929500319261041016830656583043105235459305371225945678982249701032043948296618121174533440770956446817503350216549574480139404029261782087137556790634012448182795453805475353461774820032979943240291543271243158258035234296462197535446985712748745689973067075617093141525131976863108596525796375781598809842217675169944840506255230972175433818551825798115473086563652612824319637789659615303571113261094825106522315543397808343836995391806882863374138821426914660400249939956953152556767319893041605431761585005853716447027664863139767193809048383063754350979999505037373591869164163334749939668414614557120804263216628207403061443774020310642074287333567313493986604078179117812157996013510093035658369969520339980939117278510698696338567826573757596250533385981688104121040829036301844746497457082419517146193284773804626768547869600615552282651177574452329135883877110991509328218329428551871357244965729752618020605094190941330282845696207844071372044573333996629391863261621247648132508454135071426630583924926060590078135958305367257248058633895091825453959590550093184519972752678891403389518528462176590608851673283220943264949771929657026233924761410314555784008144923481296125683318935166350888043618378441730966093088490506083500464265557451840310080398492682158523821905548789464950821496322654987964616807492156154669452939629208674774416427232998701211616715026697459907447310709195311513485594054381482949267918744345953384828987424743918827762040201136358780380905884837275018985024453171172543981862559942840579582287342283291920082326468250221497601809849023217484520278444850348510337668762770793077467361557535903540651308816632078828932493456948446029669336099474399078604736974053801268625476494784406943830560309198281955895319612233382669370814390535432899458016888490681510587838929479401469753420914212481089676839020386833550546689532176184721022593089049703012804660517004249280649251076678311130422053510307174839280471810271891204131377961789675285600663925266108158955102334269584935723321631714730703298434751200732317669745792246510152408729652522178436398611301735171568991924665194407800313817672885305221633932802973743545736776262039407054395001395528994740628032294646285036161910298122601226386275730953426732260550463115538598597432704682705795183156412092968931101094351497276459282811506350510210995271667024538169647831044424896956628565315671557250528123311295485468094033081466193035212332035163114162921117035751443086189950573298974551891464075983911676669766567721125942983650375735612053501106293435580015845184271711918870631606312019940597845196008468429912692825552307261207596551102761673101472576837461211525921632086291434154739347573130075748030282914435163703211356778612470964779630679268354387602354283673679682649689094154140962075702447459886975057084930878256396170515613764071436784977372489529547850582286664684409149380775137111657089690566817075687989910715363918026391460962657774273232822462250157319108835215498796565863260800167874133185596101337273802491045796162934550311495978267544064172320645005675743578643067212887483936708424962803907033932587070824533926331826435808326367433257365298517026875862675897433832652113701102557551109803964364431624112625093097653258397929907665911705457091775055255878450870530858922619271881207336951805564769790857501016105808342262213297494889113339072581144770165797421250800975049702766333325234620586468325362169813642336362855294967584498098520783397673343952140654943499816536616194073103930156641861332413491350667957106514150863079204579891459986495478409368425490208008037613177966975219897546075031202444052029607463504654774665215149310060167722071550500470637797993673615529885412309097612197704677300283148641947926143304771259585752277377739120725823520655890446346130315573510180728149627338745262053957061549859397566072504745839928723024302886950379589028235717072187473928363756613848466341952476819858306980927941800860572414168577811810481954838470429695680913458543658557744688664052991092082534874756762466809647839672867830531492746491215439171196935167823631459512020566438403835245784805246797208678763756525673176325448260615020468660161041829458717598962515109586770510623143445993103295848066892206033523028820750524488734052489744080267523707658904336535154604770743658486380400358657362576273226208347639216185356686617300874344225823559478441075668870478115506541971909114509634488612299319219007527142084359740721033523949150314781082801176838735863743222089563556376243664519715131104957910191949302887325334888861818591599159271710188919819167983033201105345373394858256340072695741356032921841432299263742487950732117950158714491697242307758325309865582116875983246037436837968840193606533881923614780161796609737264490637063106938123026251884681852057125422118818805644995639185948050189746691383007327710731438756770583673897343194726787443895739040341295867646295517154825100627155163444381421444601187093025481724462806146044525883581220522465032973141597367312895212580446619331529891520916054771956253718750151292898868984140595930804308373891732888298433538147302507423000729051023937189026038090476368380961926866681350761080466870353095524278459866992528694192546225638499897585577894732131588060153986333860631903597525548502115448644497996997837200217384001394890171039041759504815348189809207813521167483875572718834799518265681736927871403509788673071236033295131960356699525625272920584295143758301359566658687148120237906843606368004294461753625092307192825160412608290531280850320698620648094489817193967268594741936695160431815512253574225705611779960040623752057769870092063871122376498166074094016919385644784123595755317107133261101845551443828073520902467133338009288301985053546550637405018391364890194611101938502857986162335305534911670744053921911055124863938764838113661856875194775664152674977192232851534543896734850672974096474040851269828848471723828780084095845583821149831615772477290839571732758771530691357716858361956049118809332582238331271513511493766870852804313125986865269634655252003745261988348328315795626485145496477189637669878436571461186427568240639030659872038371852694295586342911360337649524492042346883992484795219129971577506060897370188803183532465878591402056057563504771410393795117699329680905888560998907727142163127868787508288181897534738799153247988233721581983108458201172349301677075549159469726574885569290788913254881088236195803700081239005395413225664133299784301957130723387905387520259658345928012368475090728512056857647884799920912870506730624218549430657126417329065796704623545738412426094653695182232265501146134132631659390834869955419372023836282815511930568961790046613617800167237720669780426096764789742894754229160460428407581785440610411303518604780186009254450365951535814332768915801388433959065197271778730590548875171516367107529491710526438418030826865542500193458728806383938889133083497356122358443994968069302193793445806766504019229002336331105906956396933707743548374646161890887525615122288012506906452192742726341182069632144886471478465466078138186321026458281049918322932253444613929266548544451828921123334538054660168577530469364245673587070478972541387464634365635127920553710203131095005402801722378476374373980965299379658444650327359051625760281938111360041571513186352859467718168321844687849142236429221545845573066486786241896746346051068440783217384750983622720903537496879454583243300424846518865466307642078513896055485450898517201804781233758991232724757049386174589850533947600278285057234319018501360660663294061039759564903195417423744445352519732544868371731476980924212712749365714005182521755980182512199577487112794734713038834530851883680239768808697080892614005139189552391171382711678885368947351893434489948172472669138851620189065526228404500504515201698830486450514282120863338649487345742830790256287428209276157538761803496331915808245106294625061755481855881676695264507843820124041513695876388493387178339606494554379682847596572578740595878257469332735379376548860344939133245832339720641041813728440638897809516040260172594574221122059955057760701604358244238459289454113291316443360117373980206573165563185270132188626230449715351697923138700452489959096634003398384038059818096035491818730230551386868398243540698541356002402083818481730845843344007496805729252769379430900797020763895009012547518845416137818731772237292563730674920066088763247812446282498508415268971049937780571878440675944441473942173753321979743862973353309153199238462093159791757990569540171517366445282842937090107409121937631301122951240083344267749541396407276685676318348388732792349033021921625889252779672660109389204995304410196378480780035375074089554035090124275473655281661764041375848371263636102765197321554597175694021834423062973375337276549367609640493482512599488206615922907570810748991095933203251213827216959251456888944584564164506369996609271794084170882298546154793871175698136638289999773532661987988284159531647222179933098981916055329332246970945900514037349757209643863756176768492743655060113069336938099845331437390194115540635144633587827776935229141534677579337149681218298240694092389275254519622188559583216419067149642216862218959885305879029108210199197861054034425025603147978959387629742671966488584034002456707940090253510217551440126116260511224103094468753322179879722427863357638905899815230880146813264583474348094292124390550659572954027710460425381470134049330105632485010877059968725144326079916981350701601642155391163544733844876964092603783929004295391286054226247573128588798365461297854396618290956732968255459754015911542142670541620787572372649869706659255123029344734312304835571881469161980377154820262153197001331379745642655911211058690916624630025222013548446969324214574118752478418459453162630552315117135330672500958521565602876003924308724103266779279235259895564458273893920912150380153555416969641277347645807168947191066786776892386118038861424134963569658933594143973823878980053990555831161973288394405152763929425705189005946736572419914670465478596979983262746088234916397109625388283832675792031778787635330124981293093796604302892404832365677044232245364441148327675147067354082608097837973234136125539781724812061289885209232227740751234080956926108207198289153820974360091399993758312118526491031169618712539747503446928438459886931902327874103125304008593062508537002407925013816555747009874360091828202869052677920602006014193933954669465612083664118804068522490821712410258181200530709014832965284024431942370294842147935119273609301725331063851106660585598280852588426990738334736340159969252865235459572854397236110463350192732836686689847825503055820265594690714193350104181336089897829729604552567540691443845490406888661909736449849586540078554279749793266865890816684065175208030786881513844567611281133762666727544368437916422064739981782849462962229267593366031699171785290768346212718763773582346038776029136567874296455575787829740795008028419841950191980524269559506046121308462691841235883217645611238841623266823342882673816623246389848462524092206467612006901317906055574060710034440652360562569491089042443114231529322852682736181091343067278372652644671796900908419643344207832456185089411893639401149818419325967158063792298408570497501440386643643860230302807015260803070431420266938950163250978548384057548951735448261060806732927041426111913351200559975654271852179410092984098513497704982865345696084459258171068447212221094616132512204750542682536417910148508817193747124825871204268317351268544806863532283016057047523152834476854960608680051704347270558386732667510023378087194676171368414119881945834863842999902848791655301975523934855781218719558737723237175731851971737048732590265039733464443339572240613118666440995283734120847191329554351266905537657113944023715124507788800762937890251669545847755299826549157506913747702617496931465620556369673294994611620816287091559438351876480749676803376093108941446683378655287491652418279056508437096588629536490772506387173322556811377285437478677325302573677607792268612009316205605531299113521063173235311577329542114298693911399328408545642756999581526280494233652563177441710641212654913945661794004663277804705813122830027903295839658347753682619147369901435016377432059869627666910658688484278635605631035430030294933416989086960749002463258331147220626795886298113791478584406396829708076029372483893349939868144731288525455095516414499502706095243043430074031300430583281237872154440105424698184597750723720096304841122492272284779049720673147014420294374635787596831211229656446017034001968901630163860048718353596408630261462497297975097315654021670851107571173384512108520578084849471130867986261633522050875917085757622424080173101935430839002068756536618697522788221451416781745898371285768822226646673703645743036082038923477145434842577909342969907092743133339818954111527124810014960919030510449628339355986622694075684721604165862497148494644801610168054413850171926438848858005322710573191836220016084596677487278289890726769020581144133628443613391076060453716029993144384242904977228241931853865339736552749346666281797144328083841489472488324395644317362546958645659511706026496072106762796090689479357271037888007217815342870953594542495208456901058716226493418068021715093921775683960630301430171266685970871596649173745843418207041708062830150680030577327818937089022463026002352024505236174623547173675877941731032409958230510182388194985741421522908013602148434211716849747031190423960306331736834791582020960359107567877431915080500400153119614775966734431573475466433069261306705865239023449424231758999466268582995288816196197058437720931662880817311513284656548599511392266141641441014205674580771032383021780269192635663043367555254193811186720834564299422416661258759761290959647064573880449224122604664849886699931000260598108342242668184382954611218600646011593950242034200978521607893691876088932128382311907657671558281754661452238226949644281876786032046124556254450579410872611742652275533610446779249270061124209591465120274026931651479189255286275395434136045526400865805156220694021721721543977585084187447438400320547676719398145324774544930451875667005761701872967148672030606065372618561165884580688970089011156978874313498075558828514773999606114629776340382112633988464223961492013764553783267283601013217889498435346816483130916944377674093653269071145415325780316192399892050114840736667686996448303986296506670700987535096989842660204505412746386987141829984067250245748442486024119890952401016655865392193804093103160193034252557804252366716683052010018984434142280610723685000161459687041943383903781536632466058569962423263701535528842645554216764197903837353655084905768410528155944172622174188569228015283473714549779592541768116777960449123763557304844667130024814269592647231604073875096861808492488779655533995746600472221985454549854656180575637373037244051214443917941773492198352518399946697766814451224364025207764925661066906012004845544918081128256775386683379486292040460149241041056343452492704458486663937675387935602047410825316268586323867805845991312340092382507115841496668461742949605238525958382808845295624892613146398711771353803918197486961077441511401384120390471025842935205342397773487878475287960065604135395689398260164000323820000862319611492311600011214676752824077516998556496323932744840961980233975317949943677393102130110248822521304416942463991188385685921769017318890099291601508704662690209644888228514849726169909421503378558812289957415367848609068505203838973649170706556821631385522552086316896813032955281661575346011962106482522714084410700384484600680040669594103460966532830015787673591460135461796014578717139596624014429718514772110535590974415054084008619470131377710160767349175454350970487639344306696039110461164662359828185591978044610051324435938181338802917533006634231336233778488538470806649748437521950105903544576370664459638256194633798745124497237149190943950382620240957852476131582272983778803075710723574612563515846239207670944739325046490569482937402657429685906173650963692976147346346822766485940867358127500268005597127269338261057975339230482172665244489258220300390855620284321310546548008106979408842322352099221857566305797580671850252574911175954666680444843054109624988445694548190167900678043775507418285831926921800781922597109663004645198867400166523131832403600333435948892393838754506989370698368054439264834561169506719130204021236204553775358106039007103592898104570359817538650880402407163838907205851595430001314980005576611420977066495802399021130576653228402108838018583908917807370540744154109985391978727470253035158446437354017680320196845810071012524271978378511170260647501608967683757832658092078914411702222192385834272038668153809909759113132672218730981320732028705572231889551202565999869214225370995242030179883551784801235100993305355162034798372753510937079360542473145524005354084111778025279308335882492576453008114547408591978660239340995861697729481327615013521124425316413819174416972140816485716246654974973583960240316365517478606449376155326002528836413012867303643976989757824274374068751180319059698065254796042112527545836912256612637787406608789675420792826189341767720065760713959190270943971854598995167446117901195194874122417162496704807550559761171302180659588826771664240159695020096421596536396270231650475524892980835549499227473162316602320855163787968404973694309790249839681363795104630450132902684408216657595688203805104366401880672477665620294377621742928109122421491625350887211816377703424648026188264689470560013698487660072957794003091837816894590058732752098464491711951561035937444975086321730919702859803047679610415554120517125076331056813081663399387496192297285250386683063312036909280514835909331761727190722503061666359139413794393623969395133526719883131597305319885148888607254549447311716064523293317265212802363651620492611071873877608759032018824016833947740968562856699214460746426024301699294306862074763026485819344231644393869654650706163895510746356658142426340962075671895808026307475073080502058943376055445783936283673545333040233355527397838440427113842087305022201435665347335125266700231105179771660239594072797338389275573919424252680401131909298920468298053555255502228394076953726891232366912563456439128765696361671230199724900123164667531829110122419768536179120788153771049193310168344157263864905661129719513444733485087088110587019529883711541892347949534490622576620288055912151960729882377141096104638254248363526272969848278213024647017144995316798276787163023668336491086221790123451584120579784415444813492002815133017795855624557675709841697569106413491591772186085038713502981274018821312334981962170955941045937531750800408428232997624892818061213053117988831056554377232308049126924627101939603476831292246915633218466279954091407153263112910581511733914392274191207351399184028769674089465112569804429791737929886057300666562989173897936694259349976339035518394987204569791157633843194667736684605078216239792025121052982831005086355015629515594241232095832324804798048993110603641744684271748846995447627705536057078255730401483074223387299748026323761797982187997949512611399113410338093168378073396524385252546971524330115823357686591875718028884413585615507657748127547719529622364603418997854703945085588680402930885697923368718602480607771150691256852827894763553121694873145498383606991881898301217138110275642407359626166589022406478449376516671802219020571840947994988528338373297624210249979587547985513819615517602708270865069334497474978500135031791270234982547031642174396465240106552302723657282926113254236820253955422400245002518149487701908447838331937592346189316484880214276191008808788099441241497150107958221303248111304102517217783429779218694096709326537802874045851780949307025291363062444486595257645513443374927531945002847690664245591835898984799986303775885949625419944916389331158752762066681080114777052474506105961626941421944691856514984525851275284980293083356115627922673889315635784612279307887252778853940595230429588602132324889727613458787110278619242408244152748778459576257561909619881135688860868180244222613550015097096231232951515280701128690691428356886584561494826208838170555990015740874426630513515441776406540355911517297219716816686340460400948563274009565163169179891926128786054929097053853064098110516560105456617904501295088749611965031110006145813575450198739182592470126894855872640786832774565645539642275997305260053349027899501342454252734693849378338708457745869682128904407800767090513066132216552281993271045778178865194153371715061426522947420508910286550474758388275822902387414417376768625206807049243651144429256576343154197203059152232697091809495240747237743779043127348042676860794077066697271593739846011562641436457933545706326326324769463090343214262314239294166068755845785904390192833869333250587985121468405267573422590254252786139068352305096890531230924156848226598501202921253607021636040477393484901006388091196256077785571122749896054884840820072801093092809987391653760834650424522989236845977200118160535065259306706669112086389619224229752237147523492963507995047529176169198685810231186193391120720810255613287555751157226405808719158706739033360669955108755012691512651572344116017977002827546282724343261687166475468654902539186545872247760515272214536578230030325279971966064402193499648914631236092321104332506938923441003249936101943421977104958137695696138263673001942552454330986245451320642197099324778108390916417979004490537388514509098235533905323993345181856851423884859308521124732986465448134299332750723974743521176371169612781353818233356698126325957080886987609698295503386773041637593945125120646406636429517112984772075414492531101836257810669867474283512791181765211128849588666874413481281292059786477167582198057483335012200753771464898398101701954170383427743248222344313606112402782509323299671311250385539689694914915337982092902392177739467112345385512023357742124762267741436813368232387481482668509518706143284189852891665157926360878879509041095170329449929399113469450586035894783075935366103111260180965113770629741281748705905935302589552051277919094313250486079849012749095106684833052508376994844108223807645675541541821783711273987891479319061377682488057363591467751605826983509646704334975636615117498566287687107388068241655184942234542137897480845678434423295541521286178587966914046645642601802687245718176628943722855677296846586455341095299157158769652396485915619545784434199151040148758285341344329113472175958553986764412490028585355755045070239179458059013922366478379396813987955538235112576505750512605181181346739663470178866239262570959402639942341452925531595045341069820166014341353653459889257910068470408086254291000595905918429732602636887291476023801992901249911863823959724908519353310312019427516405068126571484565270779465270993356594842655925929471385960777103357441417452661610393555642016391038129706922851373906257094965172861535798496830845474185302769912025165206063667331818315063341043204222772527426134780408125458591739078416909189471788730284548996267098572308213341692342044956768090834105828122813820709945246262693442608431988833437099682658202971444846256584009161279754248472603157572628805131933228062421204694469647584614701769345074370227824584385771695813898246929296461125560559580299971072493147392190328928255086525126907881888709966477144651183114819645115127295993541677285386984251585155675842740574692164005362960622129393130341744857817683731773915680530081827734969496862697774823412358827177694268833204833673435156455060788265550575997707117214925742994503987156253252153868978281414777582147610003945509790435365497910144269661373164729062234492116093929173532431267172778326234555287069260945663187308468690584943363560267272812679481907605600927905146222769974055575034108691234450688759253310336025149312442863768910783594669801334615826529630209306304115776531074369296761752028274365367265078918124689497321008913855516899940218639171753156010229646931757287609357637470697486043621361729402047028228249183057690445961751755597017311423900543717511464316918667683293149993397096816798952350162095599605246827139105743910805944777636009758862526617085816665800672173178301248595983343349858644513002118004150961195663619499682824447532622161286972133149369795303842473040211839392287031098052629819522406469702833567321948291120214606134935496567166316201488957879154535659068968673667362924860087675869943881210867284919802603645712328082861202247293681124435109308975593722348968910450731562380049677860459291108696168121581231043329846107922800886371071257609314177425477173569074825784023916906539244235813463817149857557973273899741488705542152266555995508198653998078333185604404752869250304523490227871651846675008676147546102860553560468341897611056449559028148681388466667012742721383705553062012279356623110046332574543284095211240845056139797129891529695790930308214617759052912302578334697036946453241321373734800227914066591158771668261468524764667726365873175037859927540458357160428716506853436382433509423276898648224870068623802258864184017229143129589642132214596745462740884180443228150689320096064285501040930318978005567177994565957292442759605071654724186707447736950447427845170093165820776728151396767524709755075901662549221051959469923334039028438231509569437093400179540499926836171272674685393712400643439633897850270773478849366357596855315955103581170319844101856011858016299571112841636866758202201285271744529887615058075817557808465727331182861737872167744004132157002061805259342426435187479338571991444977033756417205903944780268992490562106385444712207511927217331617089917865807963978772300742366981864534105398950421730103073876826490345526273125538608370323808001769178028059086777882008356016100292011087783945011508790172006921897520848921513351003144142720427774670053917623655016904568619182673430284339710106005334664497307065786179366475139675075576380369404893937573210497797121887495090796185510163704165760344044827461116448710027865538496823071274034414406752818947354125264983496351208217006824801669438420476522140598756619800106219141765905114037001586626406342573802596217255571750707648951140317519325787490938368632205757295684077100600896530644452551428159114239789782382636002379534853565003365923599875128936688239507751201857306099975610749906623031704090052494732117917128226195282811914464104446844843634805346316476349777929171323906195540862685365150460662380280245844351802888669647315837690439187635050961992902351674682970576838607690181836201708421136909105459440934874627950893469412301295437301173572215419660271368872177977395658496791213611261536308758717666517870114724866906584090362080855475274382014562905666562961414026245876699580835401666729477862159535979894883045054753477176038327968394972042358557965819929733779275907518127085418560182445852595667607085791523105857769565843287225700864610960678575938966381422504656666628943414275134800070444311907265255253392263263612109643743026973501937984375029302308767781611360384869446185592901475072646124224837625282469064325558011483035577012992041317381491207502483861132554958329496162994330360275720138729630439043185616204253071660225521541371011436270935463392498617420855529314363978640537819262526354586645633399282214502613911901245144031791302608846263136552672712764254514162567229815602743029989303377680012879011768057014595249997268699040190181136428018666675472579922233786839476280825653284243045022210956052501166408840118217078586306078639547673402584517799309345222133254118019128478957705310407716972492349879954086545616497067244436099782311195757597165188655340344533588451463030510038469481774978402159052180529592206389110358481491541815732734929090003338511620268473352440419613274458768629590807451861077003378077759600186606039236501001414189990573535424349073012836537358710260432985122559818010256905630568228842096168796619609291338632280873649874414912759988473070918497915323252201044363066889411360263789913054985612886928724594316420498539721464622537941048684089786189884444010773270466683017607337208595171375429827571920768686646114978376359138925763045132167195402074305689671188318636825111310450583192054058709755887723646551196481759822791880402122622611939903847988594084062300980276053428928116215080292541616391053486546232733530212358482565758971141325424009120201971151782607623416767794819126448744033538044716136452485090496284349154157653661600034418182612434090988845733714164860174316531518092097480660673876361952858194839240624390773408233182830871226480468041891434252339669454261540918209320855346344385994057970583581811806005712409761149860998160733151668490198462535314633867033307766481229470108870519280693481594766604908314637143688499581849618477705097421699080203314252673259644224481911694219086459333533152994668027061607896469087581780954840486945167477218137826521523330583409004026155373131931986199835565895999376206370321776863164493600773581947960970727345974499772617288549932434908805912432285866150535203315405359203752822219150545557332425460753515888732424264728498604296816320339007475592394055212414234055472098377166864693557048876749261401104858957123072846003575545756550524527394822448103071462318369144093495488156169901776808925966906802381612612607902795762486864716613310878405422318503909451713096856353866097450569114496180005638815329989241275074310663023421115304582463619763258535536088604131694599260966678664653515677083303870059557742521591857930732798224991644531671723377060949832812557252199581196801154817674974872872647716211897891586950301594838094303705564244178945171079259922073806272687999145097135524830377719613005375091824092881117468449933507829831361871978339151530387676105393004905169733076526918383024183357327564601522769811905394198141232911718867079731726011097712812679822766801575919419513025398953089982141254193661720026482531083880999997145069344234455223473118144488381679051327374253586956854441686894041296000669853329622590862483992610962801904142159304474717153580466309582450098330144130195869719026475141781820287932402282196436205496042876684847365315174009569828587058495865296643472895837076993800140722601704940141377342318305817593059114143389532380723805427751621187130729941111747775284489813616503991279014098537104025593026189202621190652996255706800423832517673339311536143781130419711250055982045621665374110512232448475421494910572302661801023464663195207971492417403150481731992850143939020232336129507530803088549841833385373659379940337209419790940109148298714100996393836249084635114616967340093065021860664450667167472582370092950538856670804092324839212071205837567569591720150453491141554223515561148293359005688975510872675497518752947027383116648061199750283920830398352191057090724147365299936981942865893847615494905487863569632670483425184534401266534171689165258765727475849131243980264314128225814210151518359082357486044283298403653505610949311873664019711148181155390067649758713836318999271892836382999036618339273431557896789926202381906500872465565521369460830639729361278229768410333750964310426879458136923440626397438531000052579440164602679371309627959754202216282320265955607303325397263298901498206936288769332418253092975192028520130101891130815258328786855094889039935289100162463315868664787350644500655700604846966548583552029945779059140638130075414055949136286172775278077726921334823755955858545017337626324325865598178649169991471505114144930359309281020165058691893668822171828320704023414069879622374389177551573037201391007343875256100127225898183694022468916038175088251344583244925168353653977853653777245349404842254457475968816258022558558363691580688146452037712154970614847753027164621419108405734064024172608507962884169658073354234615318013152161648054303833606768078180097561345104692267498474484730686027504734864401969880658127679342005287711817018682694577472898736930035638485129706703854176174284276684217106306589108387409520287023860097927131415146125173329059088311099882981094910962332931663707706196512777917368801225103248372008906057181608469122377237270784715406449494178584258264244641925655147859028582222872398853612061822345342349124805063177568497798218688406100482642857707627320756719776920734781089138650857565445686159732877525598113720026869885063887011560275977054952851513937671196663607368288761791033450860764465722313257037427716475167083909157066307522097253342589785840245609827155173544097184968285236590091152033296425052967053153215699089685511500055578864394265871797617694088347035962139219919221972028304382068825794070565400929823752328330649291412574479142988694437602165606601377636296557973291434199442987047218350387954261841748826660231663747741349011160848861240000496790523703039986152679049140783392576986030758602311165697044920427276291921964957029932881898826412355436901520828839131907660630142444966967805125622116447652913962933372250291386982800485137422755703412879301075902050871348158991240026064886966578384693253276787283341836608534181256042203449621801063590721831850560553297191296695959701214042087077293950329505879806359050917367433993146808608010119465338505875215845156938036003235438326400743582135237024398633441191029486605946129107482926563611017671899215534507479120815260073849930127927183504031914793129373778117900305534205044168655635564726936268268496006890745208592744401158561462689364182552739706051687935824811882033665250310936223094642985881837221852215844557464593302606420957493694339560107357345658556370186782620478809193950641654174566336745504436036201982669960703146787874607276502843919090545139516931966145956499559271946706660815412056172722338074214694068374843004765893193260979852320979274087374034595825950758912211819579482610658746767267131380926605918014641368390599119604209937836165263760802709997534887395810667593232846730137735578860622956908785921854076658167233471939240487555513635496821897207660554710450733281978013631252056600163841077291689541413766349672043567809102311229610562326399298478072546143549712569804168462842299628728514364798622065083585325592726268605469341539498284940146038768936255138043483727092693273233871441999793198727115978460622253428606713887127574508102226028672248887868058234706892579689875189925794672347728275983304449328438870145308283756306003790025168584024253538463203743067548604902863667681050431606056193008456293169786268321175537123157232430463398799476496877479258053960181123705256271832643458279072886557168186283276859043413462079885557629037856483497979541054745542129011973323830571873477969399805905454480395477881091013928665214810213638521654015495288875294007467418559001488162622279877759418062129051588686976192937644653274371338492314173383532308835387552762139860468264787002689500051602197204359853326802121299623655955855770547223564401784475029556791138522848457418470018151918253989766802637220956855704840298069411090835573081083213700665049597898171216742043541551548371666648522661318294553550883120952912840508824775661246044653133427630946439023063921987886861603307613158622020893043500459200740816344087883254415085128765204254587085815490969931676739296874227708523451294008468813642927727311400164287587862367614809448815164059782311040364048352987420527523176427143917964367435582926175046480673383245109693011174588392249072582441258043097995195070270950473684712498270611976453026037863011431208042879488331276023891403699851765733525995847320142666564381419218138596891695849840806672856901191800061556453470933180402282733971768904949138390617035193103418493306571741046510922650898093687967074839924080259941653244415760852103622611400523464850388574379427390011606248828149364738649098357693879871146768670708459313128458857565932378926614937916211789807630679359605728040688194602219832784892865088567019556212707871331411077865852701398551940009577969052178590046445682410569384913846365869528044654681114020192969761972317357317976115081539476535764578210929403849629963099936786915864611890575219871218052517006217957414567601534241391921503111955915950915708476203429193344418467672578293193659523311961606059395079180194909134542415324374335401662888954686885223612001852738584751549454677128321670217369347903771086652447213534026581205294402964029376170965750551613563282651868376479929296676905796993157156751364392997439419728228093609413944166628149491089811590314688612862652599565268322057033958030535224861504919459409313736607016085712864375142764173966608407548485444099198495388845092719862025429910892109406077509725246474048534926342792083683864516889581497503848248146478611093145731427143085344423262391050739188361654544245270336967626745161829793778365987293978979362693877328236410939114973782081116100034511045317576748511148954861196186471252761178963302419108649631498975881029412044330882832850121338240645189484408710121916374007387561456284446844315525541430715380537851297521406519949889294677013678170420723681494906612442768906936762671968752914375656670578421613770817550815766093727432185565214587678769256102271107342155452068112446810075290700693964154361224153772405148836530459683486910913033856424223349783683618985599117263484952031715671008767275663163955152685723050715580627527148983781702116725533981250067794205851027868709632477504372763791537734042091792413530865026063518354534320128468069620803671759876416259755760970695283624442092961422636152088413793041150002941515256047771910315555713388594756554737353413436041610005623957848451703372886125600653302561230004742514409710832894456514149480260024652152159230826709201737999212387579693461497138251096762724863931123570361020651238846004885322745738855173588354364167245037267947466409954643858488826128240368445297295637059583460782004530073582040520256948308123942258982507425263274138610760711358682884571521798290990656010753140908377019846326293133867952173329220290723528385200332567134684555748141227739817817457982139470664856271388479127497565587387690739556440061070008690328772705326002086358676540854428937019042662567959951848878972167969789057702661726168148703226657453999021197515872221906201400737508018324346131158285403585368834399015417787910810117879580426515797731877337831242285414375900992070708205917525666452502288848864879681223634669120033136517349743623935075387301089687504390287253074213227866742285701557890501299432667983531999164136538155925082414529380921989379681769516574014449747396147329760771431979460279235328256381953783394554785158870575130620194683389800132777739511885092809694484120558914317374932241134384916447638987027306400324140935059125104609680723665120019314282821575273148087270138491501750660009378361118888289488344708722789070795981461004394001355972184652822711167971990028551851632015156495451314210197912827982972726744532415788629343514335532777236397875708431739818850084677445191812444294735866151919641678131358688595847923516478436414506941498133879515857842247012421313566319310707696172051313128499966957602892652297189018380704870654394818726515147959845206903964023767750181393050357686260158334227972308101161498953662267783178241040477556825343844876730529249076588631843453692452206559075551841292490512915150181916827046912664332057196895965059110872305648962642747653518998680848898357712288748647696894977484255309244291887752838784623687922368594966511532516406817012893268396253694218266735827511822009256987670510924857741083311534494421371320238523258336433462814906001254790353974087514419976820015621089722346734245189930145082724087061564149426605343976625553122762789884805611293163535256750647580328873018524682890669404884264921129552080208696991842530756063978910163053109495669463440338246685438882821102606067772273832587655891583498536351448363814687594875775343028830185021387640148823373253709621544059504704379840880290639051101437288254596726955733052594449573176395417940395062377475765290220338276549213506903751531706896753497264705086057449003024409480254222345569528851331083045662209189912492493058918777250951012817186546212662582607520947215698336359328118881899323865848134584443803896199710036794010341988260573440003922784703514943748627245709205484368630160347145420498186373460289086506864238133025997928715304694337069482044543799839662763679507715206091641039622495297872217811378448279508307320262881531395972876261414087391758438066613061868179302213152207879720202545350016098203050678928626912567283862817116673247292804240768967442737816463884450120254329906369393277028534774995768198634836515292011369495080925248762831202150233138555347770154533574204446495110074281120227517177960323056740976207196057393120174976579305381058984587481317535888456475278714252263827925390765641361212321422956389139107432942217460448141042998168742547236383162448288533845404792496185839889712977025027601077644332667997866897524953692074515068576329196833848468013732743871239209679624809061876568580043515018122388229635150834036046496388522615836520387128889232078760914387173609026680119709103681995415409266085792595589792083496971924724985078539871496677688181840267984334159284047898703508773901557832446802741858534106990070292211754122314687769847016649649046394298425198992634777067988869828471031299709935781606298940426431909030086187603284091700384245561943364448942261008857335345277653931276402981603624537062241700920686361111535906661881022969400619449094977967632675311243636824911142548647298129984239343779189282611971952300239210735579962384025349734922339900169846277625745794294490805960709710067041426114796791326047554804652277880421984663239888969282207480130715543172749231770261612826935468227025761663290994537311237421374571728029510456544722297547477722930131010690860147072640438072299026728398768446084924820565557048840349167248931909264934504986630078630716883068643933831548695017973450536372279974958702704803703001164851811810782475087255710889879749277016901170255117367307985134248257130430413646694619999075344958645203993464529300342516692663307677878849205302787731518795612200787921790454284403665340705160976244836654829153751858873092928075199733521863642766287115303836615051048081727110140157636449578571296634188573618298963569720899475448282296997424093974116313698182592522599897249783963995600372318283012320332050432651790913733268312762776781987199117539000403896775497142290580525131555883627445950730852521782775795194775938528658147977889777089122292791182543412594441603806560665407671814782268500706674142983053001945239516916674470380627107432446552062907343441923089028522896801471374417552233966398275628122217965592872461266996336610782745858401884903392615261582133347498523439534911861426991216589481677793059987108561466498739761843883521211712060915052048540626939877347900363727646118625278956442778255879324658589828898379397360084620355178529995182946189102237698187323039856215255312607391659321569943954786663550096779865936575387375373283398269579628003671953396976139676831377551008164895637301793772812582820752840405485691748261061255917459717609811702041848302818559329692869590809950220140550816660751782231257988358053090376730837027004531418273021923158733405704534652589251190400464552512725313952324689923098008449402985134681659312949749637100336360209322336982325117740959257240946708012553507082732795669592828587995833054065233123940499555041883211537927984981562764686248301346523514803973188215698134939750973422737971880931037730772445427970187390567021871122670232830310437882723647471252005988977518144061772943702154458774054855695955177872871153051715904377042525107644430675946624421674982263156826550448867645536688763970048165520947317261177104800186990248053607535672213652837689711559417948785693746801775410803458527957839740796886549193009696696662407341333455104603919006199328958491624052202316044410482593891603021170216153679797823033013131362556291420921124525990395549921855401002217354899086342322006147544929794303707770825918436651936113860492156474618258284044052105294555550652820401629312821446734632203395867704027056923697810078079262416643902569648615720822312043752025029426510048020751372050194340176013454030431052098645839241101919029501614710102437069254889770528805666925055771400334100092465296986096575122476111555305029665715187928884035849294824141708425705996508680331372790178099331594320936161692332641057368904584375732154738338771916477147767605279781400835781831265312200247040667223125275242727078811719094530013849558279037499203665526106059634213031567750217553778119150044486569845174615708797135416024949339425975267420284665520420791462665301888175596817086653598380758280749084917480559155457920163826573233289408579046504815249282359292744897978651029180855947063807664011559408621675815081474914491720281412848274447332127760152890686743604749545619941857750558943556906850592446022131782117027052384240282081710978129256243814842539495909285344859731098182041428353323758982902300958522408039327967477876423154840066930274991623908546849814970994305266567561394617808442098511746545386128999591161986108762659155334874614720346507248680728977896801585627995990235320465021923066649818010487730905975508768153817272475894874428197699235497918424721583705742569761849519013468239724289268552140807938983031845296704607456050759618201490200779521530723319501262084389795045947196277354131355715139083860028638071467998859651412966007720025143754784570356432394553448199952466710602834291252350006712322149442072173970928356957158351909380714512934512284115792146150082489725413560592553751506924517161046044617764775753472648274643034427213942059682234990558864060988607734580614801465640823128108866074752947673664500561697330825751441113700751550525561136139814433237429443239605577240486560142360893188432644508597144879872414614280292104772710352606855540196426469792400238124045605386085499207978190222539610320593641140212310011236349617073165367168985191884077017894031473778175016309103322233562663126262074526105812069590430172983766097017689480637987944679143388720179730338880608967265239277014482431823132765391983917068588754514817415304006190203629738230628229355589288047651861322707405517988407413308428937683465720870765831680045977864334006406931406765169709472194260245794322237155985699563764157629662983585939316908259684670661966244018916256038255261373776731127573260796243318884639415026206620303510888388227697871024629245436347744162306317063765979867793534147654245269809641664313453156592533149363755436011006169243123333311412246834391357592490884299794204668983317917807351023304555820557578770038966113453329207540846217654384234766646303096564460712662600279919402884962074212495161573098320125335204213532572296207095346551296922699615021169372110638343210828057431798145586070396889843920368881210681571291444235634522465831134114103507987205873363482802293214502019687422861505389872160030790376680386713956027975022902514246767418469820380131031901185595714313266706473860208683787673616098333682964506223042285428221968614347471455775426582883106175839065627301944146320823271140038975709402734849310959125405210250087686075540513117734364083319117452605624189871672970198577505856247003814440523423797935043593071448908108455287928975649262405570978405949112739791322871065768814908896449274024099227045997467395974184443127186577566859502898351713157691062828387193369352855326579138958393771862295778107977737280434870204122614844675782471185439256980130695891425754771044435785359520615183367660217230188141155329006294408649864090603519096534428235219384295606851693378932735913409872510789852101172517037676695013856903139809586566732774574393529255151683954902004852360045651153850948536797195491796317000044655287336083150262180390456968347166739321061189196826055816733085319365000377427941226358579182653808121755460529919614319181792381245961999163441561822598741270864876977195429040235721039696981049280459086446696713196219492060640974096604062122506651023745360729699197728359640723727526434189396999954705951579746833106906810807859127627314963227688914769115471256976717901914766281549321264843957702474690792160897512129663660537141758603565059134797519255151297934276255082041020747163622608528012333085634797233659055263986734217779929930354400836364812429141671008587819101039591007146262561162440243205300239219919525164108236834019324292357590205217951620951715045695193135725917439682846789244838836967295197965336208262983994378971068680964880264438794712557940060264263375977056824289790169846717799860171446214929334781049315059625766298971634417168658363474022658964454966509129972084116231491833762183275768212849107871236580436062254145387192421244255765714158449168971016239859358209263409501252398266474549009645293020247015079546648284709421979543182880952426208135195073401113718819495869884255057923374482882184303496395950714284002273067072763749384687042496134332179668488189267868765989681817154566609213404530678838507639918332622522942321988232792662462930052957059329968011738299128370888686771070790725858139252149402000884207007864430248887021091647556436992103207138982524960856418118706476209627591964421104538314757283491463649811239032393632938325508952756665524586055584064629389129896103913219960104905961508216908356417140852818535657750121766680779652249076573789639007180441180011052591238164512048422913201585979702696893066151694732799597617245192387079042550000822858614781715250224939890430616545065241233634462258800576345118543281627506232808506107906284500095062149182241621852978224444004462673810824691629684616623216667299197700142006998464251918080976275437247410670708204832091263355558309989064227491570495066501241928422756189711298156565110134202661292372069883106255150605790462268593991107566436713501307733252465037556193197153813032280546267835958064304039346012301448743455186395989164213853532712478523837801791006511370201267765412775772606656604994635788154572869264664465814954386685714711972605792707340146457129754362939444096365411486984535973293690880243619331401929705790596489615912948901420783880526125036266895014131618924919554758761495285723015786673450859963412624795189577098913321081739037318272061258520426985388505828051805078628586054071922767855067346240847597531971898512292169443398500739982645554148350216227441959459090185183877409797156789502741179607643934762588148134416023732473831958415666797146676237135572814370326696361224248410537397835639057365761375880439162707994561923008749407157462599753249133012598615195421085022027893159270682373284834716468155228335165789681079342698372099023120329136408205957789500877995263365479851519475146308100599850181841501641131382234119950470603559020762091310489565748835106382028947702322689041258736740829605519010287870293052357727326897350929065557320356672283657640164017516141500714014544164330354015167456651204273697712146437515045440057636098042485504695588596213529600852631629573623065728393861178976307718128877857965893008188631975212890474181279233098894528051526534061978489269755607484662078002564205586316029727893366805607608548450810436489024743941748033783689427558030079516628082003552301645400098946411368185895466819523820604268980860365895272322047908386842512795382834989413666022991863617028642544710482361405208165786554134998509273693099340444705161003006840624597933407502418580875907942020136547867861599391785311030275814822454134144912325949853212739871507268475883494227926963272979362706996544770543327821722139368446264364408948641310324171013209313813052974713509633603074789576956912012587564396183424154218922612270669704213489892112458956040100843996273471371989689312147183820240580602496382389572746378757567172793887765364990230520636518130200539065989620808321647467747147002164006653504006278245844354819925482314645746840995138155330299466646934532005413542284432372554743035405145908142873980838827719872194123640895157885122744011081292185862789743962777906245298621991251954909482962819074621816352521680368565838882873450980487482453793125640254367960970163452780735828814132115310430941070441476472582482558623018264125853570462034311832746969617185760007973088652707502847233739711501839310530146744915858458889072808897034270158541844016392673861212101795249683129485693329429333606053697762852125569172305093097487533904986276566936849041787186795480765790678614406141900570642522142216278778394321627726331230931190922161580351395235383993147569848809030397615963345099095317807369726671791756177284139370347958339583927917858489245831647077744753897890664363849792794161695295062116147318118537138668369370201672233283479651954330551700762064342293067755527242676113227072816126969643617883674407176847856492946909964272827983604675857855601474674238460456239055453900492341632847875382376784924203812305377686028354693668738414360607813632505199404689709394706029035616357669006909632057763972039549821390108307208290815965141439473280600086602546867258748780614387457397246942420896482796136109320872470435026135830038799492011170259227021327959787800295996667779775013104227725498999382055794069590366152765887823221549850083281277111312668601490213498802485998159451040669393444894368813125602713213347128330302910453042996672670137057510894635607412158659666127624941488883240594792489893482876574323417199250692279651331253366915523174579884972150532738258440604087244035278304734400943664782357496964793198360178054380505435198703410129401436644252779926866846320814466563008880415865899197882768613224005429088277780559876598928797183405345708327844701174682467093339644088135143182529497141648867143578823004130026265222140458344245247765756319325565776789467991873645900996194070034608340349511897632008824435449148267174331712618848756627099569348345164044164557938150084946396047234124193528523696359202617025544491630009843195410300881740601734559578419445291370513684410578127156973946284516907289203130917416266018175224334605185915235235721777233509779879152718564767032269229460216768738152049637796391452052765387503965438266420309922099429353776417972465750597985569294530311457405817023705247238658026766914939276111245601434865332984400412950184458655895486941670282039972324914278387791836818330498051538828809040773445817229924423448562016220106093945775800545936184264497640014594116144437716911954714079206545657100824122665830763952889773558424968967475850311139850169506944276287128773214550718438915688694669312483356817336437705913629072173301388553285084682605781817091676960782272287078316281304646061929219110160354231477512169445863499266747813904667769141590143904068086049044935903550839549168510511843561887849464059457611296513876441044229082770776955859744350630130280753244963262690649824531879439125965202670975716243890968648430976166797260447958209847369839348314679973356545746157632915703918966882352328411718205128793830727605484859166865180675245810683865935101601090929845973996852041387953612695355572633283064304538316615871691829942399917440222572321513162834562822643531651872139964664535242741740631739639794591564304730461546338645529873722164750703520331081036165353436729871960705405973405567804668584335810896716827223719621426373517332032723387429903908377242354973188841304424759189086765901154591389749397354214054683375188981699809919585551699336837065658457450232291782037667684021460725305188933349046055776854515971620837475126801236301824854241022315958632116831343495229761066170417482516346447691440314360660021163557663002293815628079312341429400970813520639135432194214270216950115892510224852392183120889693375108828377723784466557551650521201687354136741645454339429244147775928896061941419581592394470608379203454236073161985263515360514428826144232340712924888470754067940313126916619872570919798121231698018988143078179727165934704684066786847850142750939941553074605065652273375468999876684639831305232752222111596382530475791294711591281884086800942596484769288373500223102690964486638076998891809078011866761460275361847469094200597732954869405512182439810220573788343200228196937499449372208984423457262578453238735475790622011967396371370318733785097087431431406311559048386553060199405889608683165037514212597589017351169549561844144332020674262893868432800295666684554803831965321147882138543721352094242252355920853209426958720257480580431153170894973876377036041143722132209600197339887693447500683068373443820741995345413001987992574568554937426198712777014913466279328708482978634262661584587826546834172926051988072554008276406420617918273974619879214989497808168851381957826716096352928546921936579196717977011578071001777004618643569228543422348131386723519445496478111977842400848211877718286204660215974321074152001835177887083269536109900513679366779313077694966419282649060463588759611212062450806878320941346629675907941863319051001358100706423974133066691416175894251259825811519808948654103865345202350557633822769743972798098150241090192251168283637389762972715680420434023945710765189956806273715620597458946136085521163646476960769547115719792320031835376545831106637350244555981378034776023645660226292457331379324512671779618544348702041306942786542128397695394049321202725706144999860324424641865663803197620403650108954860552170670023187072498160309031135738247602390911755825753779444125070809793048544781647454749505982343472076137354229170701723415491454406872771532396324819615140191328315924554354603461971231881539857859366879121805691948519233823605096872030038950394060985101696750265640910626681499754348119997038705645530542124795528087973840012388481042013940151129168937110130829952278371065495583727764367451555434945209785584781634795268533266435388195464854925020114066231055168797247607288464139081515087025786761892435121413853233594147258641584401077272978882629358492360294680000863725114218147832520837778354430159167407164030168475375338748506071960607536388399879556487712777990874204438134123290582063513727473694062328652281970297805212865555480810312983981241166274560957782435516897587798421337454027986637228372328428772418429764463813721234850192124080565339790081317530663376925287098790541624906339730295016057310504110395884320249334181137695637495155168515028101050805152217414123302722979182414010642372964679944734330611443619194806870125684491751332971762773469093352508402278797824664855323973738419775168835711665522775139500152334887371269517469050159212715252138074436880199136539911549109756865287778316030542623170363775366639665659355211643832631072613797511622262866629726714682527083823182875817707955310667842041882915712523204242792344041526125320141688625224473143236856383471191454265323120541576565981360628610662609653922832876438380572646371274347055471639996377308483692051042342948344327647301232951839035818545042684572032409516941741985214560693956999913388976832319797444381724439282718217836661283296587580590751372979471512624401152401419311590178455974486216863899902317906555806857583348496091777490534558871297436762908054476654011505385904957100453187504698168657659980932176579790218625540095761674503896714000528178568188954540728266104168137617552051395274570602847825656894371147756573609472015211888284805721709861336437259406653272457329688217443634648319253112467495701761461064126649419229617964402674021747172039516523384599703923741679042772034212098597565908510015142880521534080769391117606730629828653760034470073553345877446752472017313281923641049398077191278729874432410510551161083301179960460276090349688986304280224286829511274280211769283245320942491740203520503366962779242446584665298953843606538442922460565136591130240378793855323556367098347526501301296486238559899299235815777988913060059320022007727452325860911037930497030265323552617832049408302868879089355947695646292069033978928555896123313674741095204431231807640543234697880344366725359495921366825097060759236643788718640555057051777037603252960116987601974761079242286229624059436435692418300414323962868943567068984785214455612295308565417431872857357038277479737082995628480101261183914324125533993636436167475718663003623212304200062049858593365405672026696212103332482963472349570657096327394059962968781855431060488642860374043348349342857543032465933981241773607301148502973353895308697944895728543344203707204059099089332500181762482639122123590304219484459088692968906387999846838277704937647389912815534631036497465002498405514810256896586310896209860843184055080274265186782142247185725021093295081189785924034237384830880613807940461147369086995757951802230610667242265612844530047390671935704195910687944462140865997604067066005314292991490993845716705363198647364778892380828786308826962318364413019059033277297321320513458900173945293931237541014121442691944126074121476988642038996408761001343285018340791039864301084938582584920082295335798444191700137875711591146957921400891206727852639256109102468802301820222762399623366883518835773850950388065295878265773324180089260606935788061478360420648763862791405017063546306232915737751791074387362306023851860679638671977378146277752490432514920294534391390984815396803879712167620606989456072820061718297709549084949980490469968363457625032211732648509969915679018910678680414383655194600236821175523515699399045397489762538687945972460782470313526555574188630562081805741008129340128042627046832928923510184857423649357941400374872309944182989242340974675770098626443933260389798904110312796163299913671091517273196704539197822500483869739577238919529660807978782656094480063468573455422030323147732666703118175387863931122140715185496341708335964570828885946512622919030679838571611649599890628144510852278253210180207234317530931771555654303599036147669851965078346409363591685162379530922057791843035930550457766974950959491330239674887758963832094406353605963544309419775550030300094261929726647721934327344839533911218737521526607233987291391220221805237630824780304818482271293257465588321794842597010097925068266569913639196291330282936143949297655809135439779206358469622989735766362488779500440979687393116471458417687961125713280305971490311576912888992581486447474925196004959675978964857696037035426090179888626533579101660305319485676354588855624703976369194122628067593236432819942228707364592372572056564916058899162871872798625228602113458418670542905613034685347789699781697650212132457324299420312061222828507251186077951624603284308496435678806466137852199054314238499391414930604909710940163805501895095382036099678216255433253765703545114682923645419822561795508109818882283971196446950809653594269304068967279887087276362090237080685364617588798202258412239589511718289089808649330265521517318926844250028939449724345393841852109709621801726558677620359002869805002738611563556925299035516105590176691457536964503516437484041720117098878405299117698434871783656207828161561444885423561942063548088335478829358825089640722069862616741543083996797079652825601279012402048883835064326722307627834262779666338829976799962598249295963567909539684075211018755928073512026376865499565207406399066899398691698041497466296078376252100197107427641137664371700124145508809765626481718080632033954022400557716328204370951249733440557533745629275895221931884612146298168448300614786171158188866937947200429812362596072695127627184809505693687101572775716677153632397043981854896341274905640537232466456757108961232337845481113665244808488833086672951516240954188853665246579531649029256915420831290271158452403203237399676841702179011344698932183534791228046330886318455079088717394988072166487308849221234574787681147434125333841472694241655251093986489877202597097857448745018776071056103839188789351754373084665772059639745362270133741758230249359540137965762716816730043012746965538260894450254192265231943810870791923349510728700085869527827668717724962906258866406402232171105995450488211468909872414759832289527434498958615952565728444981551517392710229627454238896824184076930703982087641406314085455496817716318315289711815069787877876597705822629180376686196186149521175891207008600996483945518967791445800942603586779277027807845898309196613499514024400588302216981983173749915627419716982203314677086445626779442807274793812688281906605742279677266960937300806936628561148068944267483265795616042440434747528643828206248244613398717555388722102165311171302766730214176440973660538541018377575011766057366602175210781502908048161050958809828107422605044852893439088973527138208323696421004383845735186228924912061432385803748275410826640312456673903717733041399380000742057447527292117612660113311788489084811494600619842800332548499605512464727936060101776671796651461789841427232336481442048869651492439526272764871781091026157671527130682054936350764700205572967709842925771597641379711525162696986754876263440869335972707748720455552899733039662055453781747925016188341642966637821465948249276491811301043577323909934971916643150527055980596031358171561247117371776019055061130181023264275709579625747029311841381226075881237636337284066509093548067431598845598590510799578481877219630583164658266505929841421915987011980808989475833164998881525315951381599652431075658759681602451757631820775219487684799169595577727652847447381168772916589304259408714496869124381118210173303618262724694570865700075720934225783080790957022281004073623194251646824707079360201675696706885033732563641327836924352049558097630306750497989856816052173235108988599022980301831872746686355678753513795176672800845515703780433054330422802469326637504244273742068615731632410830417262469549419512077582143566166292476794341599560629537066240893138600920772861638862742792907555842740199610848619154493530842138283589018388773873985690104680949540673373262054797288579704774321882384442393738723303079341378287659329941319084962406196937372798723434777899221739825021400547977887599958480096377178035212872188239050112782194414092118311722847803531124012956659303589234561223664077045434082381023997739140887141580674627097873250142926325443867429334270920593649969248473265572269392036817471348874580001399297802473204017041822138072257991127946323568024282407135660108794956201591551185673270765636100191434502089645309496633611200503073469962007077864989199123201675198392044587364983831364548851202941615459421900330965634249092317771494598691388256905139806565362682498279594424210137482064127637903512054229118719201289830516221194457682687525225548868032238353092405777830137039089458627795686542094938946463067999171788764055310717584730402328501636015835507603053216691182547029868720010263234048930056290970557300172880286912994258308906046892801132607251960410021738420454288333658626579939419340867117123007959181273114407375891573343662562655185030275395088821581026225050129858988491859737036257986882188433356991481134454342754772021579544887898496662939673228019369172779095032236205566582496422807740848364722098902538635261900860203353288199697343251730157159202327288345835891026473349212654658175605598748068501070333440818824632946222356726185204093242883314112356354971924122498038750613878542830257149255722770641827252670173214836377480438544203519937537244517958376037097704257077587799838462681686365872098979887666816224700561299149731277494061205631357207737813848228772943808245025283634871836253030968202962593280699992398638629385420443832166321439217492689889666499643318420112204023658276810441195381289635099701959845363858740301555750369595519689463802538960559374267585536732691055555490823963008189847136183801267498748278237789840352194746359317187113581371537809839863181815463907655750400387638883056672042991459575600372455024731338920597752452665363625229470145075005750089502207467285906289463881555936091527158178078068897014503093453133898438742058394986493530741411223356578615741085603961091560524677722798200710239386529876234565914730172734683849373650367484993189180720419944361451099634018271889441661974202355041182918875252582138264282336463336667648500348705746127178687836194172472572730938918142933602961505127577098631277588104195902888698675390893031540814385095139515763468148314450416560402776828440486796645902606177931905101248620646784690900711532475744373188449453470917359644272868464904562855522123578509676165942738197831931534807994207456105519444344940967329397787155376268350847173506599134987306624287695668451763837436165735410079943072137802059204882355578158190717316344708222428373381377561839935066331654210923814922193664430463131630774273210757335201150489235136639673074494482557658537935282225432942197414692681159473415271831306214907567935056639881654128836235344559621905331732920353137304658266999837116135487379370714225514345600350786054037741779824825989547118897974020478250542817231290595277086752220766843645450496607890460311280516702548752503447700038927058576536348426488143829056218797012604752057855503290636166846383773766158936094665078309936784413091545365389148399704036514002893203647042909215255391242389394816850868156342595755961076596761502561633732577206318388842584093461046360378378950534393379694299895950077468393590454898466494761589601872587064950351665492538955011884541396354880509224830129006604912533986798103178173780700022102472519826494600959085518644379140299298974464129552817357030487267286824113855842189259419397917977083100242056505799046453232127921662166737293045875422560910004357573262129039171841090926444733975114775746051319453580399328011664603224955164177509549894756032162374315231925145598271644548891644067823376769295859668634378668771106114850374281835371890755963258739924660234921957047089719066086695712944664304571042753283012401218594188176546117906747686731184280786718009598858014693895276458972266391412790687820536242977581975499447643066632324520925469540750328450393283076468378018713751185729611337859834324506525552605170762528653858361761282167330498716660048310017095608295510383681596460087076466627828367253133136648748619797834650577237662065441533565748155751952107429113751263507413896823579346946653275356569661016101672881720234812260062941534507534715685599077703439581087326427054508442609618694395396814764259531561586879260536981780915171985296442316600587529004762214158781183301350630721920515312223442526938343141835509570417636613645622362065260057698565934454031321405284505257678694728512678345025179146196948181814568813156767267737173603037474388051501784722734866202862133921953665717671949025337791103854119952266828531634593031328088701016149054270263655595165173508670421189609221306609498469034081014333108666241207533505431042094847101519683137296823465454766769021955771213349930088602662365133456677066458788293409497144085102214413883422079122002177770977781143749655574215926687697620642974495882985151665897474799540150677330958978269945524771508864326734635340728787098420359540498763673128566028240239412199629375181386551925679900185424428201463290919212302856565869938925831628966066594983905494508240706198212236075721916574206944724875155570758896091038316094084411338455389986648045188699378795956522777795170199133293594879268846869839572389177762224253109515957133666066336902668638273637411150098467394479756534997487881294418014589297312846907904685954925488385771352134194583920401242077526492932819525692533373689376049583102621317209695856286384198466951716571335092885968287833533432772264233628814619676366602826770001801831047762902242996415359326169213207021721789659047907416057240451023953174833369137387187404518737064275817833639301499227735977133405368324733814542870872441806939259708466123573385143561546536636716757156064888780799479335535631655513389712430830671076253852327226076929940167878301345990770565866282215614824373302998080907239842863712206947250433178344697589041381778167131424766360764420252955820624784266474943859253440617471915171846122602941911756968296817021897830406315730321567856292366770684516534450434476406554434036994158557140239577239210977201458145569141138553055335369618934935809627663124830388816887425222589711733332814759094107735716328933867975165668727509683579498482558569948293496380024335940222716390741858039382403255439082596466331113193449842621886360078316215645935090123833245441784249047996964182090010152508521099081773745014495235588202330166566181763007384856262065162035302776934136896613121826044132881651518208603063024386317733425038238546713626075943144262584927039384758894824399506611723599778715291103633213100020781881709907970894467343041257951033321676897047076339699798755717589214317820526308891452957998434582760604874987543632338831720496420320137942078816261110401053928522999563943127757646552419309828082629686136056951689601243149072453248079753926681210568297308108786106305201637550760521940972612042218459625714181893870262167693709915644822170827462961298842267160824570733231124552623849076332073315283702272274683557195730816426724853033624567719179818341289231196002089138781013745350032206603990157905077584952719614437590526904729007931979175520933426861791407161994554503257841081680219472233085018534638838528661520276761409394581015667907418254777625520154629620791326678574780692380768913611568487156028267568266621234520449927524545300091671549139145122237451106387439175984808758645942084208843380999114835213425725217817796135190042318653705426889941015532189032574077542357680408404694326686674819689523240797142742481060259889300712772232963692922067635951633130701810948105247780171602253001594804417482879883513335975810725455071795375295152043585391264240619412564575193711103081679668828632957189064061362573311251201011017688326417651549751769906298568518916100619955074796888449922669477144554901861995871052819831365707477484138427814554925772454576409155252596040278299318603470110913984084633709079609341748758784678618850809047732128147575052753558817774614632769479347130962810226089567596340865789126133058615954040855493469095776711626349430229397383454855961797206043737504379253882360647282428703932957403596488586358709595391919826254251885423819938146107747495453593231819641866216331035424423088111262610808220238985260074511587358243185664459603547937921932300268324117648068182896512141468224933580415716023372986749894454838479395890258795149975694659633399515520661804435624722911692036289893873614710862169532677703465705747070550993318944183344882835665481374006512386636408624704261746235862974621223463783275226703452349642390813419335245401753200287633079913332842156019802654010269463588248068836427641251150548098937085633082167531785622811234617722312838517076970606816394435608380728174384802756823646452406008722402761679820972810546722654707790308916033505834336686969995697701425558707272091948523704055239346452347963856532047652174283883747715065393207624088652377434698505808981274652725125101104335243468481197262535955713552687224789678573863845962988212005190730777290789311367624901294975687769106882661671901578534518675621596128487376818206987589496926513158870042819485005472106207226310344853262971975293286960565180997751169550545205630099866132793814076559193189680807552621900803767913865954282542043481145553085135213926255890492825096298530668789516572028524326984475216889611035291580051068189244951759645416114850749036081921892913701767942884933346554623402227281136155942940155959767208687098221791488255299864594214986738314677071558020908508696545517687683184011929092624573147326687503523026567342370847700335570540660927841803794608322689029684449364493008421250569573145379681377377423280955352249101591696677616370845500393968228623252275007184960074769879493789909489399535060782200859408975936319434974422308479246756240491644818166899773364635035020796604106832731958213622256081534867556374576838503221155888275789196096897949058817299747869057281394514160264223109678067405582057150215100948764526641732920416546257727948808025957334171420077429996929518700728718576958859301072493032770299814796524223944093871289405930242194383072214440730142504237790529934116339168001488390577228332485804220192050246577519495770703758525040552010411246501593749299820847451545555743446475787507768691050645532769787347812879573354381097918695760152397818593999309163656655282722608487809816304561299024584898472960739963117348916846946389914105025307213170727728443486518466730262459659812918785567084825521430288046872022717037349025944619723686397028994894381446351319937239166462283467585348074963858239942305430049667599741914870598875767150824027188571397134811928575251412340101544829378917268165598859368733591403566813600231652421684291744916745771852285366707016862801626646655727241652072856824479727639680159539777866450448581465332059240256590720089101823157459777583533156189910165337886965922948385682582729528917440313539992271447653978861293021833454690325990961860385469170396879483021545229245086203909405976421323315438796575168245441158640417321733894227609728531846939430602375384896607439616736487141023821588579200705302002180837764451557431494835561626332344440557013787571116130514764852238477796342509836814752254065064860855012885662710263383420311377926992986059592391427658680154700476790607772032532400000255175351097222821184002895070006475750316503868971151228189380822924261732973634736890785617779945134974958578653221107582671057655465754309702212385126216922802064359586694590417254739887276919127688256261225329634326616163702925369008054619180298386283540204053817462742054279161348177707448642965630029541216159399278783896453147549567994920044854508204137094034158905030166056911603150638074575018819890419689071617231166970177898797239189806199256007062654664730488784880209527452619678211638068974376209151224977885179033094887793371844350302480723388602152080004943477619274178800501879070080499030970972178368437176685687275089466943484691588763661719025077338625214374315346660789422643571073889571571473050474547571840056692887915190699650255237874081088944394343018599197686120320134141355596564574279630946968999402229578874138433379793425212161291198885447102419765336019111080260872236444008873321212299126968282527393416801703031959005548566195268389933272438516215339511031310019984809351368919306421947112680039252045027959976764564862272866817567182998598381537138384985911581845049590947500090416687975599730739276194696893431431696749659198344541426318891143739112997762457497944996141820440885390863699060199282987546324142027496837084715537405967099950821310673583793199122322078301961217835323474968197166562015266161894056120481680113859019210493511046430236806792097573941048987438874583106882038005411859999922236241450443607881318305700048778219356331826343037716962543956587971233396324395326588932336983023331556142907981787039843884319241823704727971747761313631394883046446180946108186437508297959099246766682775123719281644144234754615990891902656927878737022185496884544369892518564310025999459429851520115793861250361380000922911164455700953318822829986166848239115243226270478139258809005759636486386888018580075984635139282788605097760061902003214994226243783339652579766007258186845575651323435298967406714070954386298574624866982242655338346438514838439745552940791067067916768812166757815568202740364880283403397567566935989510063525452293501482146081889180458376393510927309061530638258564945811277070694716517019855046728746520948341039542257608541297122223476865735659549185055631296692613000199275619515746903359826402073022037864341046893657728119875749589422266712584545533787159289416506184329885891676385794220103151038995089069778301773215152582249685023488627652068636452010664138476406775684454297322011717425218401735124682513054616440688820413522900166460072380799089146717924644287219971375823749235090365967024711805869042144369460758634529320282576360735800904261987447551942431090626430024889849050566804148499918342581510208543317852819660015218488556275840640498915954002958142528681139710967766794537176517270742886138001000568657348179765708750739546438321070695667468683752509389498171888948386399165939117237672752248962179272505331663843665674993632268319994040347030013077274080468142123474494972661042981178478158986472947161035169527972316811357618358423283184843625465638099911263665094979560186453187852730527086689366507132676010384793516749683094846242862383324819827927350070345012029369386497261526791694209323920189338625136304786948287399783655681662438495953198413187962693456769821142400884221053218540239467466911654902758413983998917099671610271550749826372114976053061433175671009679744280643288849379805103218247325174334316770272812938109320317594135534373460833697417836461133038958122633199819696419120418419736276222767703550990994666472419468709208174620775404668630314772887636332376831362613715578372880127433166366373605744001696272985636016884161538642366751334141265335209894572742797148148990033823109471160851302365864127409116958532474436546238408045556145301068671221282836633607572771813243323173004595971279008888827965959490852448025552283314848693145782644102094513104929297116040003115369218837345614632298633385328433751800561415099101170817512905829430906595547790568549976340036856741038442961087715971094112836666811574836744135919340757961800505356951639068620010147421510627805725997920535448452091290250011546341947006696232990756407730900028619568937108525609688769906097083605467269393691113735117839868361723739962279590339613602071098021023618202353608362761788722898676065368348342578359387276619597790541614291496414195942048270241726552415991439213145082445113108236734276983620589307594338135742031532788070544987613579013942309659035473789375717497622253967953334603457612800872706792886930464432895310694242014154318157784221202017023490402270781979189942344811141580572520781541452592382173841954185772283474175728134356515501030597455568449708659771657742878047242204470996952521556454737572583574754908625521255673004407977123733353217730379706096241112719782221641043313276012289837642649041270283575205182955148017432965768634718058007446107230080461173850638946419089405429160051752423682841269641473063298567817954720381605555325412335680610689627229177739292002990327199442285721175170809858775815316408945640416009561726985433956514321434496127865312650372728107831478514947347464258988976800022826865289736419088369401416052940761140478953164347068073827448176230519031514813583590464309515961993088849130369458194850160264150436768700743549047085228350342477877659292056899184146497047285460141348408671726104486925203853970520143458341601763349767302339501615083015355040918942917414971089438156088620919380245020595309569627428765014338592513064867106460282425884881587759097521765905304586244338678794267504373028800302422812751711715225760157429151322391167717926884060174122466946010343855126501865033936216289542411105317151419574534759582833872356836500931946268700894736505018224996339860839434280308811905769772303971222308307455353901603512540327762647996871152911191653149444811555066683221379590139887993132624173393190077875222484487224914494618832083982646884275334768685700569216774188546909746790238631918876447747536380018952308499689002179664667252939116076115741105946815069157468875357177033838656655668607546899298269345729977133202139881439885515776138807239881569190778721848664108442985853122443927821303344688927922921535339733563691818021415689036970269440270229186777808996828141914440172031844136861149529993354666721200309044748425030980966657887647604816740988024792676433925144475727087443705730474239628661501090791308297915412386999819642805531611458348815367844910684717818566794502941371818977109827032218501323843215530069045345417975320079295654236616723175605048517138052123259219003941707078199184611098338510961771969112281287031809756511814867987606489385714469472064264100819309324451375375220352899845915004602926873519901962997532586656867361213050917768948239199633952507792529808521504635242352800391767159435956765729961274595775282043969893026649562867297106813020973288821343726372066159702107029545046431705439515914729160448014803310918238121918710765863045164134949002272194409589771195881766201549249375492887591037052205617187748644030790474835736025787935554852451146093458044249072301481456366105176921785305777184977475304540612164116903540934983405057275302269282051765785259062370702650406974105945695236737263519182861962675258061541164572001207841975004813623844612241645811841421347106697973980739208285364896692788943867954161593578776495291807917023240305961635864839775382322886180161530443308481589611202062783589723454183144445030971958583147137178506955850106966098528887742676619608015494868081964337437876098737642418509713321877766660536654854332146023475801453079955073622931920233181107344633597060693396016282370635952013362852919970433815186615288213697499660388392979074004841050871818724640337041440584207169726009178319860377901231458887890534945548152281050693136604485848469955066946340516766816280411203464969399467509665011250248651214912457398343430841980047247358937286493044246913234091663446182375406224756641417270312691478185653652552993865218216448375934281233894142510418819377957197962705770057960391052218837631998088004873147129233725377978854188148353572010792858170621946012270461238371326892682896381628623863574533861764493956835222114633695314827632936372381987381480868099585002486737604897631600502321151945227494152514056483585880638141549500593296689516204911275274902376066329709026386913560206271934882102159208171716278230070730493159481652368395571979437035516360979959148655635278379850063122656248419246503022492249876859798688115902277620949276333224826240536673194310999447292796706671535817959370109901270065164133009685459034757801122548955859402441334178982724266259527849799523483449474303943912543067016359413810812784416209008119535304098419517618264483721962175251081362557110426225781742843017513552293340244182950685939326931625530979087688467138233207732066420209527330157252436083651654785042781922203107881843810816894282534511052203104304525205995794537545557163152640236319254261474048051699999595410237140452957655070816803832506667516978776947129499472711052274635972025299362609049972413221870545724007165910508612391687867374866061590317072305059976759727440446501013038455093773061398967132686050886928110926781920167196934001608141843629252236075910800542996187355628193324410477041517203843724498328817523570325267537559276257513864315582824651713538944139230825838798399398967434978562435719851318863240297383590826301172629182418194436575853800438646905107460495819879248900597936316787934470157699159540758737826064339171760080934324445802220346098030264772460177922740233836366376323435040650707202580677922035476026453695284073874628128195982300779651677798539883482962058191998171536753916838908906355805240986193668838575498543256982418962250585532424737095893742407699522271494910532358358262787358586595010981921759876196353352512473446664836628532207041420598705135292627882222670423906944904350227753876613238305612664926548527912705895839280894641707819460182439295512869109010115541106424849546725841381359760578265056649665778312676096660696469501476618244006783347984416418736229568349311236582938639769840961623854226630431790859788028846722417412493433895459269570918276900669965031097327402562671977845125260838571418311080128451798007776148134137038534146422299155028160304340419931080246354524087004883080292153004813093718439819796045090760230541175410497478522451106346825862001887140050627979740894015012741329633681183980082569713731056948462558352959999519830122178264582497290362327223553085300296411004547855526616411592040173727519483384689545290016567022049150038676975696014273902347472217371651407350735395865949199003001526846437691713790164630536630878708606725101781076265514310535471398962033685981454263378643418956178506756567283279783045470779127681587812934569299450424891391166397588297194781415696028426530183549762062938349533657871010338786690341783972657446596494968189585166252671792921370216696042999727294149286646138597459121428591390863407833529813782046885655500068244549858561804618008892452886668699172588472448875949525576625339162663272953259025866778794618808732931582429262687289719871902287393361668495003045953178734769406248052660784442208520162130004804873789114015499520450261867421361684516286125673254523923438621715933109216870946952124141013245770492617598594460713147674779616767822895510330455525343105923621443781097644882269186083831868347349594478699258267332299859883970851767098747188578427188920812264226209779553907279698249627197560070099629334956204723997829142762616374243126799009375998153380822473220737123962169874753427907434732610114013044527363056951389992970295477125801551263676729890846402098649655198133318319799860718041134961025991288637471446525859126373031938139260642385272204163122974401276774052609386625622511245862803229662090049420834793917302153549752764351252688743394831727816799975127100280207042025495644725990318063645438289854885428429780993582967769157882398280108458748538593769217259068284417175764005837842486228396353632583130472766250730416030738363978498014024132942799370410502609341133658563843497148719598217297381215734862430282206218447421080252895896971599911511698931109166763747019208143204815298160673425897231281267395374553195476963141756732751757443053768307732466462760611396578756523180017642349412602881494051744380939860165315438291638786600787530071872753281333237867276299470560189368721294789705313820857978320329472815793084332533231442597583855263377614029754549282854698325091486974657617639041600848683131789251417017081971125778080182408531468438559274200611627797106664367424594155059545989422051035355469422183565689331345880152743096638664586346232188480764840189546767719210820853085415757471012928099161431211963616272157009937025398122068448639064819511265847679197574660720655836210483734867962484026720290514656762837498626615771659446105139795078002030307357821276610208045499304527230410156790548577924544266691318081544579289751235622813197133004827593149274241536170683442357192308574906854291764341361465534854796032229736394040672739273498467658539373664272279766499372739184840941948980927100000530838529118194111876617846215387619361909130713992477528916123477858565039087090712645870207101710449595984383034867155937765504318704738386656426546655828726651011747072152097670651550576770698174630817982181391351457825983177931236464177932370215965640810174609743739514143214090851514810856566396949830417936631740318035563493150882249160511193801172407301846230509212062347457321683950167875114254676871319029973314904302972685624142553948274032494982436156718600495977781235182133354292585084371328724172232538663075425016525112068481145145993897280878422398505349853991641168486804162599221568902806728939802424692618297310411769845957870138054464003338398438170717153415995185986933929610885608035544911100106390454292518606513414827365119048066056570823021166897219143482950007591654216313910484937484307394302806457051445372632765945675710379894359214476309726321865088665932186047893278567132158640832003471965331997980729049725862276848488509104252457293788101210676482402842200897310749059939942394131031734175643940565879193541910731932556818913526315510318170101377261457035821505193588205172248711696656392919579656070842313306007214906758892081962287626053590280410494751027190691169786365012073870961039118417897474042178514274552992357633379074196487225997385260544958406329671511907420107976652410770960615950977010835733492566588656102367271027554157002583124316326024742322835223412361485715204354183205429312770221283140814838276352026783254883536859896654627954991785194402021099889707740159604841876078475916973347024597348122159914617485309730122585010615942422073349742687457909286053491867687035104868376629308436437049338839872141556521605775722350742966080921494782484692831877264642450192856096098097895337411300839806569269761171705131188092255425218700269089706128503947029160247670561067603975908154398484710935266650797481148734362328612971109152147472439386741454249109023629386100081135291487331818705400517772913325980484658247832943819093051803441147201127503645694011254881194745826284554837593391725835117279287766286212815387857911425283985625294242272652537583769647664958621103837404023073615387912772337844149075211867255918094283716779251233180212230671354847241896680623413293476502827851931371849311607346438970302124826111053636447427599402504961553085334273488770918361156006277036203986442174368146417777006273065146061760004797086232523827410132121812072662963829491379722277318114358783175912718695137487960725419608741759227365554740295492356669064021799281752724741857333233091566980987611207095536636874132970035397288038211056040165747176082026688440428228701687123374760835048390445175802803081871868092685999665697360894679460448842235325956530321862404186790871708378454348485876393727006298601818293295069024436981160222128941219869122316646110748712928367737426630349447866984117138554450104722877040987764735149611303923499704754884915638760742111121638605845245150726968893809871524570453854580455693666878843509778281019649071361860488818007558166503505885804418119027450111450294605360693306500250624600071274640663236694740460691969607968394207312931212288133597262684960761366770866308376842329029836840704024798383688595946846892014347820487821837400766707658733677302202677415815713616001268192944197252517573702689374524523820411122916582043435938446091627940169127488582751808442842551837656722921627666350444875744191381411564129373463665211074871077037226870226504929681657146161964867785949521528885624955409087263794723920749453330583601078327556913935601808233408409002776775159309490548637669070674662827056829226346274616581506078619890985243436730966449186175167230461736173716896815408363327269749911744765307338571566259625899169025372171860604707308536295110524559572720054156044452007677605637723330816316825015845489117252429349350810381689381709718021750944290382970345701373964005487474717713542299577343344466266421812601909557886048055432876214869775567545424902147793265620104697269836583059364725358136678883153189112470037179763271290111524819046670636667494566563285650632371927484553336742823962922051293070228217624939788361995283145978592597685895779918067999575361375456541968448868633219289502069261771596878816147885580579490074690216448208580228757364963179868619003910510910809162410849985162706800019474273396075444534858109818217449427709456855296127624815995074553215307584067276800330493590193636112719639858920929580730860092879032116830465476269534351579460711091986818737326659661887686129808860269817256010552093996254340529162194976985324515647583807165113217207651124839479230710014893569319872339165979259306255137890517936460141238085912155516824946368588552618524152765398207088531342642733360316242102572726869136491522178932297726872188985624510027021982764188042303177768709286019237058882978332531582641224927978757036350412635216634712202224819462626382209782089234837210904850838076836882126628662190141737966309739195427084897706732590667300751605372324341778044107450851746143767687237496232765909432084355627283802320428531527076173148140548738860107048781002265107557690572655981994846776463628205563922435530841843810201601603874728283757775723424069981916556060289929112824673686915084850488099133615627952192204742692152692824234882416542460828116961929722222485548265323956358072958204162848973183414588988706844623591998293469574557970144712431327765315517946925492957008605243974971098598532869053086075264325392330992971196253950507074611570348917272215096042438924972168300165436144775911231170554793132161032875341433314452711730426077902237906664666660685262502021248325648411516301131593623709033810711447664198370071809582329133928292819786288055863977646775813954301778134838453783320465828323932306268662834692072515421152806764473311044409707342285882282171887769207382159824472280923673418847956346692258210015134678298581819276219254843027908472607243236964525017074291656705065319493579180454753182436046370967917236353373896102063785100744013416612026759821256226375192055358636768925079611146008155602551521560661320511988991575258716540036798051383354132871388281860405806105419341456381466878804481531669267563521760100918343185689265744701719510133783334996311604956786435864887752597052093721878535392398188452389382477650167800169019563255841100733000974897600569271315723564535592450719230709516301538735831730050789613331507677083059871036637936704200824279100179609322605230454522150284870294581787583505005381008313565204045637421801027282496759020265010447334672645672726887033132677993534511024726672972809464314382390903480720416379928898249299617704244649622097422559804554744914107503194590892208104757796197955125204950443258036116194765434538185913854509202824384720382380623115799980840343154777495098940643324018908029290177949831424797951360660741424596590098677277886880788088881719648759694126342136379995056971836754811433847899966912820264258488283452053876907593171895689946811093700096055647429039192762122177530752035252812297908935551239828870447191628561300229473458434316841549992560467839657011148575109413516646372419395142216578649607021518456118490607087033216338752673215392853524147989307752617746859627744627542840658366501160875252377395316703031146097601067058359206963475481309198449245826671409920300331840366930387697574332587739544832619752444544511089274803992248684779484907874562647871045572256751457364236040557169305482783813260469508989880112480505507032554342249790401887451559061992226979451067641021326511054388664466409085693931926922201614114895109223206725039328151728173290180591039661657694260583728700667325596818984350077171035195660173134342229140499988999629701431428101388876872752669001067986250588365776714398946078744802687120828924001775369864684346137753468611616613689926357525776109868130021960561488433950822638039569113365732648295406982384494862245531589800357765550396132359567656421021575757332792632934163156210256182231726951573663021431818462716094986275456277549783338469537459048451489630639674016679338053961268053434764229808307815742568762652708603370848771689767250011300206607529706147273838094448915389798225950333689113200150200099867798261144120137883403052724239967786274933442552825863658443583613930015444645375847152043773548842563235240829015078653038539500511190726902205745918369889341182576549526055116070051350386630169031564419464506409193548899070492231555554479839507657724381451863660284879943731908693960607786709217588256049772474048943753747300033829235729563749836082317918877903770359752874906519657479823439125665064907380403510189781653913264612373923780767990927306745299183758122291825023944399477170406816600903166538199903621022343564365414309724217903913779237434831211584516722898359909363819485438881281236777310176264121632723800551839219693718481521916885617717863165320001784874778267429015918351465525905112267369893334241818044572762497009633251063953682779455964845437385733115692212791719996201170903640696756816538688781886555327165070463046529330721499106861694161858823135628366244433973981101079585511203947409607864195347368421679735436034771029544161665504556936179415077163591614743919219081927737080645389724692029079349202299900035002813535088535216581047496770458070930920251928887061153256967640957441530610368334722006554907755997278206048278625629762898954424648091541438523395022986065349816091251419389036262053657225765978150610713757401501322628906993871898711895210998684717353845742461872345245136081245858584509252601231118029099074085827613269374682067201540706708505267489503723140795817791022468780161699142435728719076765780823281897716295214574799974312166142052229930679381893711730406251828401213321439249399279255722449958805593946595685232341930028322324839093998183818874088750902395021537309429260412764805531813131344225981495125827818366061916841772960878321590974256717716486491608758723320427059038032947862162107462265750015405593332529746565426627824866712019330143152755005711369779935939503695184264643257377667463363082403479021564180673242999942466722881675690472581439981096869931842448470431494838747886469734374676593562464830521718893869469974803227072636395642875813696908112647216765897616023367233294251654604224990449876441467904297321632923384464834973902306634403413988335605771532381427134137496670768400883360053158675832304842764537559412014407402977486021337634880963604386081439217831114935081063302467048382248007078103032885290634342417718328546843485574100319977583397505772120314432018071134105275380173280907175042343932747743950410978102012639298274434373242966730100028837990632352150840035182963976844752671973213180749124231105448122491280256713964799440201365789736982784497577643599951495537339673914385492921966580584650858092523617905150267562421943965226921005519951998767437985917259892097815151436258459706679967848970485512641571875722150217486034315256554595429269886857736496805754261182216641666516645171547672848803998244679966460839637243799061742717607870309915756998581795297551655662867395381906432053845026119572690599234033264690711888551740204693633239737438607685925478666376204959262152023662280159961737863462202372656001293361568900013673989944581459845637106801065407580254577810568364134963797884157414168899891573637011354937626745807148413986961109914178945522966950375237642504107047854970193790939006168960047414130183042190356525746854516269221086560274331922932365879822815106197881533716954009161274860550046847258136262961224792898972676872037077714032464761558489017077259063829208099320198754724370197855829660729195605654602477800872712807316424335211881482458453213413233664907095071932209123122828175302416507797445188454989142733915009583619487059599156613537686565004984044347501556083307480261850217115667560673612939867496124756833554486963164311047676554585232299237550113021349586849943139221074195886886540902135338072134164519967671902565017957152421713331718920618333112220995283846671813372241146689494944230563485840455917389992526561576063641143159524005850813245921839581976066605091911852728619189277427504725158543679513786646953843497819600950478455305200899041864599623682893239413617711969247260427648106092190062706556458344903285651104049530950928080750855809103588298596839748589896543076602951003403854315569080304871899440118005270960009304149277393807699217114143782533885021266924583601298134756173201489644798755557019559367271029560944109371030161347361317155011637467719132114932005120832841758717208710441905841076946029427798803836936362259551968386358720922667693021925271122698395712414039721738229947710750762812478699647414551394535032180056064191124070078377819777321254613449329044479677106945229323845330759974430216209394762952606861535499632135203136928536656844171592694049087802591386869294670591015164483543479786409467909734017053213028310245349467557522790558170245676393506653955337966668956005528176588452589961397932230601569208486055495779919272028861338778495857453936680167168973453065681552523511433910489036651200696396662648576122265215500622959032511637010770269162239562815901394396198707055551916380273679358171636969633194516711049712557755992298495945275867802123256525281099802287877805289951058978423220741166896486937629163275012883360323727283183703121477259224474744732580817131173804795182198115336933260892840770495116832798095588245913272863264101524742328245516708823351976747648454260852127669178591874755765726277434757156175388841593380025532831853999074034220781552171022959044676966115347450954511289927377930978989733825598837636067490826109514527729800840688197907971730705625401215464339888580333352758557603541886601768318604486054813107161950929310457293972702634048306325225181491515893362392279686083498973357607915859053186822323456457658035340238975123360419041844723357058545965472120758781695703582955893470437277394850063482885270548472556001155302023587645057787180709394465586213543383252506200440956933184831848538542112484820351333420120745315967072777278967759948257112507679755447118594382713661247995002582127746235632340321544535704767227963005677149643040910280300513266118646772409976152666180698190492856477894624051962703937768091073783888744896290032940864709573737473066891109782288223857013121972640913562842382588195799779137926357721654492327809307860243362047555414140650815189232838155572092341378664575330729591312117522069464160571264227591892783420261121488156980621391398708655479244526555977400165683889156639920609109131715971350865948316247298116429128592553073943334303807912639921039864766173056381207049204565994917262354457003816940792214161135699452201940373894808210355170624547558944588670590488141092115019931146780597451494122225763207493985572876488625199065699133551270575356380781230555565532018075959973585585212934365525017893228383719777305988117874092814522334345004072127955666609234188023857456591863759815776318513962091413343260244424395822410792635210864964893035294088535420164265198350164067012169379269218372763449451209941216131411833106710188244309265844590452006481831771010496452163804192015597267667225571270598808042020985316919892570532348890502774626917693785272756815473080542203844407204537630548938918172061755068856956077819776325233551597248498015949438635287809359855698921613752551323734440421811696921422645412325467990564620668297438788343528791003083497997922529522242398372081048495568792822119743400009107027461323663943314924923344669208695488010710698676426969599854979831884071706118361910142902085402419089816939685317849017973702506659199375610977423251178040421992872876445156595400140422535780865141865864157174852508548026000930684376940865561889246984227923890157365263285936341082560521203958207417094826818952731155366446706137111450611827115053347541961142755470809061404251975052240169652835273037277617166648096005709506326060623560795874385350191320426953092261482577673402052638934016606961589729101208644133924890924981140264397550715760772461297924382896639053267670163329616852813664837705095336507502268871939067752738819880858156715554552399119051136403680043759465262748495483536510192239644424545368966149542658958028127828417619423562362030735028471554430836711409552664674545449239574209088790268903071780101661546935602028163161050018504923899885421004672675622486165927951049270315493854153110351382802078627954978661468356780562991335720707270172075143808216482465246957418339753531923220251972902447852403935775233703085533570903196476145482203090491551845016535415409929546895230304737165649885903827238742045592846554454809573363568679475687083033450326673616052617683035318141547306029460688409623015376478420944755950704115283548233982607545680998552197177262395575379087625607493035471444837807126146678105805404730349655967886898065615466555431033764918192863106619648123960564530977483814088936660262119485161868756283247614598395817477643370083421250988056156092490830190735879752602189473258816892357939333539930176201385637265675036971931185077242635696764319961690625772686993641455408445502014037561663640399549479746768333201864013705561638367223199736457910513502834808140428178475729840756433207894204712663725918524008265044994627653269671592664575398540949592259874044350154885377182452177615921933407363428489899588810588152394554372885979643215655559519724712092628775548496259069072392358232550404046222763071406286225106520072730041980927250532794590389533766370011838017872669765276490488150733802162072620560848208083547638440823507911967113436122481002160705584880415084107744658394245336503171653121616898237233203653390950083147634092221535026788963189926033821507689315713076397656473238302628479210698737774609263469813341422129319559452349641647771176212371373330503118471250474485790923983091824316812839104201138379679744375956098127407760662756960506036396759011912289788527293034593384521935118251213446995037509513031863134325313039366837671033376320028892961027087161745933117536626412893886584984602303970109423685974763409652616653950231400219229167010095887178602412296985921974437494553410764876519642027771300858805140747697600537194994767356953941135746607551548971258100588691968528791658334556477997134130449552158709357791527780336662084258979085710190685841823308519464187913228323740692845728034483241231035051499203155979334879922016571592709380991624567257067500886960347810384405159321017776441745404117546875783884626042375902030676619847177934448528180336227989157647291255618928577624452576977870723717455912333062830404642589192138071650222113264053457172938002683918823475958856796040228858998329470735961134594417848297441072062284531577543698401345264499758791184118912603099503999057624373787024462020197859135213572115929987735056715422385670432255998060553271950402606896216704528956293025379830399363476371413725438409342023043249114470205713182512871627569950438225192647379911344756815882104372952738147452163441377271440281829710200485007341328733316174392161989227676624016998022075212406288929913884168750627197565638630730502328695889885449820890151938427145619538442961501573188946937891147105855952714420363572940620391866677710764326387131299414326316548673916156902629074993425131308744160116329668779964415313544528373292277782517980253728613917768800310883748054280963565306268678257120936057307216616297726643255021268975251886699930294472819668517494820184550437701365943837476297733189039129889373374130466260600927692088514201401726844417607695338785322260299823048738247971422716245385739420618426407979772269050884855609528226702834084401426278934040932991837326352284488352885161674567293965585533072978496578196141139898292692309004707638834810113774160798043981426832591316529416336746624859459300804463735700896157474002151163162422704241147737865597134957332353520957028241083808600872082564781222771730697031469571611298389707675293840909942706997076374464047051355924001751198472083821079448482466595944696943984546558119653307963796440018841244283641009573635433256648774628432619441233005875679992242055898575081019448393186819250271757567551628684305030946180205076398268655372660948058840684359261137809529090757727364696500099803339108255051432618303866743279384299605226862006605309255210410686456935091551203339861172327069865118392454924067942110040508790654754447620784613952725288241289647041226699276527329959482927286183293848651320514599186369020926664254682380308007351914724519309077679776004266071467542123609206100018805685193716487378548886784816268461273579205484028248214631897633684368300221637592205728601995197272106095046500085459264653053910365178065945628825586206240760901569614622668800501034832116241145624421718261082313512395844777115525230360065138746628929112292402675394411792803483512044212301126762018119798749834744294473057616802445078143477784480455078518191972563865907380852546225567669899380232536645957984164057358790742187928138654540916852078065891841601414070692010579062079524848949708934748508863724174221900410558165119704695692733489279641461531945295712999430359127183447392586305373104399819120037745212947842609871572397845395403991678048913782852838181058129299101488847609792830389279968044288619466903993321842521981427153825013540195977099256252511857660292931433321962452169578008121351853333627885137537748672253457974787535148491680974796195535693994842937963962091927945615823793345983743268260824701825139482868029432370983485544372001697763609449768148466668642270811080160431195858810121861282839723185695831505848297357754561157310285393538419656764732525780678296103724690600151825038824430641751938037654631931916306360402014834201333236180068632771457922161980120050469604517279198314793590952696919638195973679577138881573775479619982414504547181850120908560889895520005801473513855045098831517287420324258528578282510116468888778036185892637975866739274368673037814034086448585441013918719927169065667966289689129738616821943268482597789844627987315361966296099423862532902797726827773189328556131756476078488417957361781814774221719897348829944057722682136790377941122824626345978930194806417200871081284711668797381253051326624736598892979104271667704299437551577054701213744215786887881610914221978739300287336281391647977344221597074340197328662151192865447155309531899567614730307573446380192091450281767296378559419917144232400800886626061641505227116336121132761842688565817106537214447543443381708423733167610210600034463363981867905218974824495648092396981924903704639521741571547111099306356095060460398990840032006512305768572611967684297146983470369997682805211487784811229839306994542914549866777062876304474761225668389014374132949270054294522728626713229931539925158243348774721601008951967636627857767630092991852196137495155660531324936745814108865881912675705936515707618737362346377736724056454928339704590099361987416505899070159000193574689822473525717880997621616740093024011706206312153868311664245252285776294775501276915150460646750948182394236562004368188680794014856410317859349170556578443777794610333083387961451050948399022856200949385241063219510927277032825152265152456096523605485055781441799748323469884277621587422297130471672927607805491043463156217086843058800887912992953631913204811299557865516156532972568200803792692241185262337750519063279229945624131272581466034974986691314588148503596065062338689336787629339920238089712838125234557418920421655495775976180901971431755081628789967755162042619008069400646219980689210036477041927001259368678852876627318740467810453154292658870288513342537106564538250640953702388070827201785885180628055620295350014656382400079515800521856795534869602237084885631121691481676972376120726591643296172211784253597978671279942492282109599266958109229106038333794438330176779476611496202542776353383130023287010647005703180160917072498562177696619047117287761906966847442887430134619323342753127522119044052804098254617567398441774925708292239331808679372678156982868936035877209021209009610342698144911965933190470566163960934034109150649815628085758314554825523207849492673584562532587551123559412646790183982699143100601013047083790877345310371388318693401764182233685679873579300827903371068446400921232217875340012956388463164579873855098333141065675739724403887674106664474838884262992018164504691345533227532852530393787770479866554273924084024765140517182693569103608901518234023015054630139831853484388137237732528466546142800521607869736981397863434395050746315246193918413443575056859548964239768265431130634120728655320377107680919127896934485284541120075404916504973727567824914601313146682453879345984090930369499083069519999044271703175340348378265417563406513588314767945300271787200838723826117313142547714737187093177011818466643861415846996781712541521647605914478056144127268277146201754544963581217954314467134058457297227521576763617527616798913481733208864534025987131798894022035025726514133469368274464206255644087060637203608475390548285668556560872505186464035608005933485728609257755628619751844924591337554439458111718652195458748536049687071104907626131274658747443011677434994445607086848227297746141829470309985198451589576353461987603623798179584298664688625423357903626584304266095718488462214605642411932912280676492130557502307009618834430467644539836896982351430274858744163975216214998356191957034938410868264975985258134885711943611560068640318428169763251161164057349148875110100329458301105692860300160757899968646010277507589382987160097422976685962490816241353072610501244919746537530672263444961182098447529223622290604629997436726792450823537303469816564124090223643263032464321131596176191937398670794769138534142778563090660204460968359556509248266932133927283075796391742078452516811543162602049603787568883598657151008524958225220917911268012852073161434048095506725299560337590054274946737331916080216174542103344914514318999029322865002191310206118049048342278269305027292451395562796508755644706074766513475001451138144379344466468177039573757114553146348684049634540742039174348028665009268376385704591653278169284150191960319053018362229300007053778309556968541952176937183449135000022952596295774108390269706102323932789306134150401742113184371995174644069658540590449360602294525766747737917234870223932154290707215957668065678098948500055838885429985268315855642172755582280784350617937760402845258864554461614564814735888565967260973224041825869591271773232850048913948019548000983177773542264578610379378157534988181221792771767943548533521211620139763158423664562700565332624718864248060757436755543513327614902430358749930782557573533544168222867265229785318603778444669963695532256008219795471865455705527820473662568520390624473281190481793734822061771218671458408530463245794328333387585686860030766399227648430859091172120705142895147934508213487055950515461067920319738339450541325404539742663805568377944932622148087276767251247250749071806831230187985057065236118696864496693224221892558449537002039415205334550409163905611812997638011889638123064239145386807060795210451869264360667825237590302699356443265178194043069834911455994011135875149090090146010691499071343781123589310036143540093266953812339926044950813323330231113446048880530962746552641361165178959852115169874606047077174856842540967173465883515620650167338665780772039026539626263493516554785174961661249192992873205308215289180597791933610485723728123197863695466296565826042105571693015877435815543629988632095317438922531693368617949685186356755554692824466768609040862588821490474401046655814402467852006785089914342747442038267802033165247210791503971539187364691642435018349243962869213675137994110410927878467091624355362070904372803146636808304223338860832371997023899655577409083388898145008644606509941126417666506481962792156883368531988174864886365206819474867890972468355323676506096387683615179826688464457351457423569854901851655132602766269747863881453212564172020813732045222365912543476898234917266572129437744885199880967668060232301697187949229852825932773663642951113635085578767424727401939770729478664270261006721984299178584600468910163316732353066807099638792599323588612757389979855926639628636213998274359566985069491256985570014594643402427119741707414002000034641253732192900621891635818053641650301945053091362985390013573981724548167799743657619066637746846329667443318952953699650010461337781336289166178944633353856184086419759293234024141310938848116508560396738502978788782998309077518441543438870263817624893867033726434745303489957622559455072684350266224509022469788328057461044106971945635971946611649865724956714812033853346921502106122779212142692445322405693642861324295216753615611735675521786048693233148014075494565662291476090188347911074396176971496417515734214112651110754072800096694726540212722583529585102640610549145641819490342412324279123016846309383584811790206892012277219986553746599955329911987100929384450996761567274919635602664341164575991696355082268023794951391748163789562257143044914505372506742121874925007059149582922898359079444634704425236753243490139935650464916001266258286569143820037397766936038177794797485811566148888225313656833714246203201728049902836271285332045162044175896063280924543861730729770557528640157302093095798159203153496486971962822658010279811194390988756298634772565817993831398910054896085388989988264161993089301388587463082867549698847560341159702568699167145363913064771217111852070493511275417041377413014441654188758006057494972019199180992716567474158731687142828186936012216880072158466186139960815058146049542754763731819683465586171953720799608511846721245153580808814339814019535005000084647113170482127986465210787530191129117798154107620214031774231624287631382526347358983339416098256883823756392578199821930792386401976745551356099782662324370312214024980890770825418955028764885405917813197533893080755278311915855761073525725956309015214729369201573768502401262562994376759503923278718451628549184700668422657873832473829988715771692751333242625440217050901564296534603417364234561746516463624868746734601859512370734617227826326413553893526533947827965149879700520612834564249632663395757370581896580690986837656269584113935818696520232510351987628614878113187316657127214199285471348624265428058709173688783052079007457561168534149321777611691700604496812336833259896287974333296248031880624388950522051941478551933096343872047439102922428534633981366274595410814896667982349409482048332651780936599351778263516120759515085713450123766013627750107344344115423125318980601014207137851821974852729807428683664506554037024854471955174613014228222030199456420213232009901602100334576196641266522152890544272581178700728555038226584706945361553458983828232635135408682398083849692051165399511283847134936709054089150753405942589183227296663926038942378535354404860331592226371168472279242631249004214366110636605349282697063736783367278278644768645183173161983603645993576401924092202679946312185402436555075213777069981311654038705401042879460226273423480387543417334994635452503015887388339245420602051439721065789816725012613440942524583375559325137349561706658621250319242902132411544603268354317333879756530173759531179070011522776673737953993218845737123633586151005673523262661710531875837277231604666719444130618565403732162856220163496834908891058131913698136647480023674152873453817872777369581171270185775940041070184098888531275016607586988434865894964695038967479927711465276460333458761188927906131769110313099604050392927774479485057724729859209692483921483106171023388107579249199261760269340528148123227013637848137241211759447463052218166764867589038278892009734328673107609276434653608120073014880981090466256643186065035748359984989315925986415760192679563465602216331883007834542864010604004585675701797211542869409263150841005249730671300154917742486604513296758425103906500607435754224636439529934348335830246452701175237411825886061558594437102640808896059689465431433639453860979389005087663595903329215499494000944810963817791208419658610632707501482734913290673567880102863330694541916085009391822155563073626811113520464565906201477549956823851388782863014865356350325886733651904611678575575588563375367754490809700677870590659161153324309305213521516558906168934716165681394631686832914747558479193060006550101849438057520513628900359328764126544882613295781949391350930952866144193222706528945396225740919404234215114158563857317096951789415751662790964657524061257626964653808845238791271038386502534582327443667055242435978314381010947136051167935938520795735956246517111559633650410182007812545241873236627055009725620247291204982196170211932312164097651769741770607565014213540524059676049524530486139551311221403022913949361313269396290952596123021880378098974685883765462263456801929176386654269348308503133570127843415161236357925671488728335611801756494005931500511904070287750136662280245357093399564191445886621877118945652628518281137475377110079313551528029500344496067697482049691253591872662022574222482962325141331519358410888502139240370238750379164085042411239888519425209119482143473800748783137004849906513349328738128387969769451949704645754786333380939499868914637417224433704330019890492175351345832031421905898822846949691379152197707845956925406047610730187691041053306828028186808824611686089342873072143963905031360391705759819945662868372727710801318310592496087444485791170867084447686105625441212896423889246653276668896442865637356924920418299926207193090315991642050202395775001404767093886584348506551806067524098319358835548053868159675675148311573917113912596707642817426842935828646812942485008285867525711282924611033826010194974374551947697865877273028405958368865401468577454069142925848530200853636302948147147571005350124176852741434538858370764353689601288022686226553144788170217342886088683446957835781224459413882062144346183784677955101627260230980645871782877216653363724665484309209322521224314739927865440428030309802226105995529038416410324217832758690374802896906747564905390276119023454306548724924616419285610394463398075083036092292685883901165018086376430310825348535651983246642012845868818067983334982301152672567645327697991378773801720474249265891428022935568746200082706574694136560619970006400955356936483601743257860222269232399234974612664306440417496236712138668550384171316354524883608056926743054030871227960746343609169257733697847599122870925858296225475187573919300768859094007903786799030949603038398538874087543041126966044843205006807565912627124975229026744165125655870894986830621589345282211526768493682501964733331556933293606383566724758498012822479520314303536151300328711053247509263749802827527691677791952253998778817593929783591235692098545526998180489914842197923109143613870944186524921037631387441283353254304609151969363602032978620543920041753407315410504576003271299963143603606941152426364044868507939737670120484995437055590651398009999795629637506131929436999548474843689495166904841199791563976745854920394062106502197711721627340366811113449995352957440172438340912772856824529692455642673419793219861636346360670465168601874629095263141549890823659937694870057960488881289075954066024232882136901036742186905619563083317050100370040334094743434340989899590591778275149369694273377194267410767491237315537713583081985630561813600325932359547677142521945763968601959134738788578797784609534555138204844926250818623557140758406449837718666280387062640563091715502542933383200130786160405459724538957694848473228294460476626921073993773477418434419416849877396874004481837316114923629212539453753561304933698578924487361782487992058902894956793100525234408853385911783965393300185000501594987759640605258735298034565275675434993750165682738231654713017459644548466857551633147383298889375472649239738585921991631108140284249022149594009149775746254114171850053555199452712657570022762590131119931429359080253800467546319029838323560428673031292145597279905057137707473463173031987394087490529168860652020736150598262930326026472887879367365652755969942226783142867484584428562366912042643353776059102293655304240394719558384343475605225683716500258185283713242473184567495273739602093534336384633060908124994849568334402840862420243983763682327050853269259735140131225005221596873306284767520593018404506197749026276033215932917936581388165273919433188868535610191197402020535330582888738894736669254081340191032556337302993067676634860013814424553053427122540717737015914567078450126040520901644687506508837170606704208012562578534175040387081616309587024287439574782360803615769613790312886441964095039994932222435713439860322711036614693259523064549510375677686728956277123806300335568468122376068511601018572312616988735037483539121885074101037603345215292848195950641845298953284506053138501849385893996319050096201079263182211617357751813012074533300281361018199478039644860183421437673772941081591919393590471802077671979203923518176008908191979018097174563044845127649688410357161302980853765407288523460589318064316152625531274450951206757669349383681621285416966984207431752067329155574218883354161583580387238210557295543547646502358265989763122921372500409558307624670542257086101246694496951318719923443118234376075396629508995896066440243949052216415081266248114590095134380696937947269667456366063543688290184418798904390803204710706366065079597753154523885963576777187287778739801484544254121355449462855817793212375815208454869740150892265715029737612437697360797385281030649302983917181757711487374832516262332920747034252602821518010023121544945738141423429060731943005749609072422275639378204988101894471878881422773918819468475652857135145238932736630399894452136481512155436067665650082239560670958336548219398700884497681372230283423423165613414865616116992574081367418730571117620032581804325286498244852088479014616298702242151242826299712080179615667819215318258952726862628698454158442758274319867372116616783493425107282264917308695655407049871394898303476877255574091607651698926693398650296237286680447740913973945198814182271822277547833465134002375047836497965907060382650584068097832264427746928995996879062346653526210363764556483159673165032410241919563993095454472381267933724486676254896891709513072872128362338214455179518220809160352098669560555180454829951621331943928902505801851323668872389816629792294165493525890451909169272225944851411175601144959857464620490441909176170684172058454933759606452470208187288328518025388930890446620182103137532631400318372169610149743714251922482641425306989459919042118206821064128740825269057244802474814796567673346006658117598680417137916291982549154142695317685206603373056835186275688589516988502826128563075681567145848361042027250988116989424874217889622389279017038305850878021632199198548735541627964465558890167961088073317875977395438820034082172076608837218019823734050665501104647829136391174057666758521218159154673610845212153885304610668789453327635889116836173352434145441450926246432689343709685100027157460974858474828246268620864826093265706305237318932041756380839519775559037291322973046974772166846997804908533617741276185420475493784295849570119970817509891225807304115234249718922476876172238496369522106254650583014299439808400964241381133918099413029715257226211702351467991478832042676825787412362047839455731213777286927037683488382370375114643952255109831774380041191576638438407864439616188816395748261755123004845926107575859428796083987849187374646962447835705006003162957875663676276300175074303479352449265387161343344064040778798411602032555983754073663528954613126209978934765850303345095030271093491699184795313367871938492626204860530749023740061946276707128812500780343986712308312605463728374475317618578351348201997641238503652680978389896542305493208314171844770262337282629851739812507321858068604811185214317760986847537475141917839181213815819816130520400446780645031032130908354832017298865036770333304329095725092459015160463564064677863012197069971388886144387639017784058107986790796194664605529193666003260960851347215143702264087015440929028085178143090025084989776972000774127117000343615280782055587239362156171487806989371332323664657432469884980049139634864596701716312951446094743109015160909431989274380628295894507102614467107540698985181178377719036404853066210249505057315181587572948144520499566127740311097674028433522202569083402554326088440607115021763075776537033791207873995503452035744014918144752746516383571814917685033005805623484463389962619082720129035407197161887316098580451136010026531194869236487352324656841112517938041813557683648246479417510813389130905983341472888994526880698949818326033354721273257124335837906659311911535837573414455886186811309344973858948887071865286391511236476885578209372468830230004172945271923887677423300094971669573607218015554865571340155272712518757849034412238128247627702058835686243761046693782860347889441980898509815891284062469741170076717834939575220509261942609107992128902103820533237696226883425208992535034459516059444957245326098775472846178624928351460635686064877403047793738387104385711558413358274530481085584068167232593166322577061257999565130863946823214566609555346509019030064206268627971777321470377612740148593062708480818648504301846345222608350002917453915466710408927890396733584640725457044089722184140317369182033019456771977244509686989028412390578367062357375193621569675232469679806235486304662336293810945592698190232090804931670675484822012879813885702516939990731331698062817156808537320142611278977902835359528449906333598466406879023620127099393821531240862080020772134347335742648676031030932381872425204456780785679694879648590249015482185933845326304084919252319235919630156814619245680699751717605325859545199688325062030136844294921232872176418832420046651649468684400480810897003443904115253913219658401877913026704237253325237092783427949847196984267039302852614391234916824118029818279923565248772066521194988011536539283478490571057686491911562271826770040195305749456383221212428291247949737526215710917812396282135589453137687285235413689179078808133566240394833269754623911661435976179450416920223971097075033667098271495154744140154182752401495864260625565057734566977581461632344693207069947321614497286134749219573995306661591312555576430159725623502579286356471613757168444195867139701402078231153463553643257609371836877447152247964961091048621895458043466088310565364791751333091956813610397706492737408818948086322440478895523760798870849029131524911986528210676425073756082991432170198113682459901422265373649032228221990968288607077140432969752654482109434551888733504188096904959367524776993985534237880965668645322882118718836860296515343152145764226534836501886195377238599311704260157854624758686341458022093386891860512527556078300920977175962262782168798725201950338471865535204007995861482434532008341748881286032204446243582063042056407051163960195053906696539969238779030270110019470184014685371873240078725343300229838315652157134314627648891603462172760262685759393257323355644622549217606216434576249940052037784258735263442048625463535519079787996827248549512397954073320857025180251669113710811212314116560945675398405323451521029141782745581709238164025152990812394551407553071901749146960568229541575680310507830260507283177691769872029662952984267653670435474562706134888546196429848367828914852864270925029897592113614533748448111292647721714068477214509812052296909360826725404286908143710147238088956572434160658703730180487795428482015452965044633296407205649634779699371993821306636545385669070535962631685186214368810839794513202873826487162445884578039356630667816135250467198703940268028335465770258048692079692313254440858248572950686324034919007426198457000509019419057606991126284176306030657113116756124938784326571514054489506677872126025984375795856838427880212358332371566071216563308036520620516210791682479964153125627227909585936285955643349648958019922925532543119767079128878826297410421762823943630179622818419198931704674800955082844108366611807556516554240636098222813994174059649669077604434243376248809642368182113158595640771019834440460480720821494673465446999672194918472547640454669967300631817088198322987772554695658348428449594350338677455293053775616195658635990217129263509004850374384392249180326085147855302484885063028771409965697607495827647604300490582696146686949277998620314112390533110651225287775619741685663624268229321360440507272409444865507438057765300904714627506131875204223848598947682483953787574636104073624285660323561131694093010963001331809574470750171427062157806561668404238388719188604628101933520323549763420393787729979820859274478635927065636984549845893092474328563387308579726857999881142474076910367850336117988389973626517161078316105744057317144884405450883115412736312644619663624254431455747859801143253119733424193189498333991875530140007429064394235292656949682064528559149840781264206544018779761983021856276691439420432261729225557933634932110267644736998836573875306879325513630190460117865780713762933923755207351270712624867507198775606303446892796637357531160778557584782596172756266602725319109492853590640433191049746703461456593662730538580082121204352830026335797475151118845131730746382357027633478743549054365748534076574457355606292404161090124488256165253262596595783540641546069429044623353325664007118897777805905769591812083914466761342347655299274733485536510746747552801997888290554390044080861080343722093606709539206001352954328600053722157704493345385487427250601635545085244277339176559440375150571579323460381307353016663208164576922447031931909414764564107587103661767372466005944984473242327779032792277892847139229504372081069115643419937870803020351605365755712893695953953113586768206281286562638038340506183544561580418110859622146194903648530659479379633799340402955581487822076607917750794104912257949762929942152097142660456595617723138934018548647097905806690801750152099434918166883815465004505440492606800025994439377245847219631775700271271012520977652403588001288256498315771654017567394807461871352303446736386827887699774151663009720290860572454841993224237778384956483911969257159579248937790442041027561750443116779463172588200005054893049715532589717517610653866654010079075102484314759915027704717058643500948088264237447990329383626343182597579470319997121323133481135670689085756343838440677148213329705699390603438538750596185453696084258285909656858652603027851608220385804716165828604425260846533582748202369592387286385328738869582637165958046894048444635828298290394564711317085741426803560544724508150433118480509485335926733681493722912879487626192564233926459709378180645014646954515623314131234186898881447103671714349066495204111530185752547274393715577909085216007011234835456427629403000203362714362804470250113840410294510307609949912158638070000830282761223342492763637295941450370982499081764642763875171457367668255499433422896526815160977705652379818698672068729817947540041110862056076286103128981665704938790447556381538143430593395606885025133121516610837296110098345278852640418562701182166162051824101342767577239267185062177718582815027132597660268127107225675563328910808493773423961514659762744808779528211381035880022667977405120075234678220720615286271373623313474945106666865536657171969850782013905565048046392598444620773611298078773574134435487385001067557864322378047721372034332423253254344471583305964516061049819237227269707474663427939822681328317516676613271338374916982943065732322623039902535534332512694690587260076551510099739348901896427872069554339985756626033528145979108591136516794840842937852920842006714131973325317356925281535929608587053425524401293469518907839773256857821434268231862135743846669559555193958698473626286716493524234265363755810528507961856683815508087108246520926601856347112667259560625824052590756938857544844840923634000729695857885955083336104068724432128700222996583786326722154759568357428272555296803900708171389890082416149202899825547035897820613877036022408275773847165000220831889766088497325374491192313370911421543553373114206524437797972992891304423939564734015277915681192044304187692693193027678737037819612325202017722579067065902904733262215175217077453099751180915146822515266736641012178136188293205241044188068755128493331638334471307496749571677752994090273477612076693212506971157286450502557403788386898146583011429613106090204157738704671610384810527137505939686688233921854890253185412816194546632147606509892324527329318769678568534849401340679750850862622834259296378725878568798559533044416850059696637987119618667671113658613963417329480386540358176495472532284137028189132376129689288609192906265362156870586737482642653468193902445450398784141989828675231099853672230359456857729699197859584683431304497737583937387686893908040218711585391770584500895290809036955715902121600157278627670061896102963276143714976208805827089245501350261715065661246357348176483695219224642720820425061487414853665720814188942686896313578641489747203949782945396303267956610182297013784612423010824489647512106307514952302745413256221970164472948320092893786557722046742245677707350518012193613109903148708482822706263253905665987586283442809162569609737780932937985806147301638184347911857160860790932245908656926067022273443810283732746271115040890012986734490280356840883225507306895410843660445701851016211207825400591222215116406795571105195872877506301675314400806538013492337906558291247210230129898710811596969701592418812551800807330707777470028219023661151427960373804525342236351302492018040595144755641827319769611204702630760151716742577634742577926137657902847382658960349282059755626210304780849301268896099249177324767431896263697858223857491368287282433209292290601114340330544663717043117847439685117726435166879057476727693222198629282632951553264896501779093880609037445756681310535071619553145286213815374519576000812464373512949649574467648377523415352950745972944938549447037147858675660594452858627174181002806325295849669578655426762006377062428445488262905007112760827638674288138216935715944641609564188117780163960423040776531825750100593033070477887154341364040465903667821571741240635159679618261075148752614500652896519145610163050593536983319557536106495451674291088223377064699778048707307886335292037778874747400957011513193492536390278585108768884858945581506111127654123741850131539835163101432904106054634481511263228096502550755461515259571328280163957429520180797306736737733234097138027870656699865363698711268806077567813901506227930834063866346561290861158880300224302708984878791411170485483371931088517769932641822540948364284258880205478975107571637232228148047622644615654672565004595183689512284775852475698133206683992124048621632661238396625012697281045389762795636780540633079472113596052633775420297200871294467228833909208568966630126021536068673570924232886661561483850890149749734507264808095011202128695670824992210829589354445363812020104704999547143824051742820979627873483612761775171887842715241928712783644391100045231955324020728400756803569718604632969745225800298705549448659368762572135281321035917035089003630461982087181130095791394744801583013722477141572742651283045692895416441427622652922265406821798854793510221393712707023146881686035087634472462564497423212751348886174313982606973403974326270560545060921518241445383355340712071078060579448906125905272633049556552772206965187129778470572495735905375085731105775059082915489283095629689998911653425496748651630077407717758446238295930260060796118520695538261066305925682497894152585371205738177036538017989990241347490400593762604650358280155212165232853751518055648762040793213689198946072222105200024983469977909225147133876623447719856780977930180034013124903047431203238717152988951908024758651108573130775816771144580021169079190522030427873633007094198861156341521372482463879440137447299632818897655931273936048750609888867878380068040594451998930820971794805133895350493321124193248380267082637443718913293085685914427313964411143522321640739701511281110499577858374093712013895806383271130063313377426064810922325042004728075257350134022343099557357983609856527624054939370442838739160441767044713029122850498949637111648546916826917884013769617599132749044472051090384279800862231800411408148139778282998824676992153970841820395959807316874771836388012904406944259955880193988211237254736106125002864951664975374199576763579603752990148086676640601295534531079981062163148636787602615173518652916151738600181920400684323044842344393108283223245670697782099656122588790117563400281302293948169373972458046659866316523186889246380789352888073214534132253016323291295939875926742746345344406753757147869723367466076890605351227197455261287417620748954169616679947702062817994813239100729625213470744982267331398722520550429089549216406823912954277679042049046381233941665674584075145321041479618292708152413930392628079849306284155998964679514963653103467820276444433764730864879029808889421139891214633456062475780777113566393731773942334566148500309170889107681694183879780995293746965186746002045061650661052883171947779711784780258121249973188765098361634852926002571729484458335863587693334342873171374917530441740068681952269785812560394837113429837087964278991631799495570174705607756769010433351451957265220742227560382597946834207768410331817557834634941477956886374789950407076139665489304417812971487806630130388876969802594134541754460795256791774759186059044077055097430029918255178345860795790713206595397849447182435530586400609568729477533124328438142755261380886892815021612035476114542727090762617117132577403208870601954126547956463157166137434556897604680490938765029648727352674081921813075934355960330834694535577417670390912161374490279414893004821988692028143893141991970588000303077506493416069310970270530099160596165315982821671633388154388052855652585758530794532105442920124444089030587204350581847890816714649455449932133736549684692033077516357030378494990198322951919793373155069822307224331912672335386768489761737022282821185352795710772168988135116965977719738463315072997655337704913282442560985084575572476470324527493153592835810089193890919592748163309653861004414075097408997185828848753890779003743714321925706313695266515913236093323708500975339356610646319942761058548415868889430120619791292266817852833246603667332730575437912853876700882000972235301239135655679818695401972845417396153328216287078130790818253678185465158951032500721432261328343151077718154015486244231670275852372198332605499743080541825667215110369400692435942779460845303610219033633056380011884230920599351039380615516468736178255531440487387780174416824589889960788384357654874232830210429180924953231326349847298724232130680422063030204360957369488878790524720842094366098999133391612651123003600075681072415130516748761162913813401247278718249468988015295180919181584603728773362266280303103144698465902718720651520079855302798242395578482631434877897356544467610546985616283937199894775167464770637426089574893304385551177689983411030372859678604003543358157229031395968811594984506014787907731886711109527164198544867015873900091003767343340312326592635115981700263825777418792457020205714184325216767523153960046200284367734282493209842289226675861878530810980340386302532435738929015233983736195667903128097168779454247455628811302092352932275669740544146346554461749450239001686718062379444559283673190613757085549619781260238857133665203583031080244417403453547216368987360245969254862786527108983664172803697466595198128989425410535150506014664723077885238648617217251501952694969605079771082337644761471703161533555701604294027744763457802472215850906853602666695670793910183619496827525953303181005190892189020665806003443025301673604428856787639664231347956385897682332159626000144415128176505828357224440569786386922288331359079556830593337052676149395168735453855995945844885153466592313686246867260256537900256072673632410203078581186160491052210019848603219948418050387436059221647505379994818125863283011254822656266886399253742736021017941022479590325558241711111106062611871134104700674472543473729107207221195468889638404527663121491153039959964257872084413913800113740722451590901410579808272734167388543773065506489182135848497137842626150574792190379770282938038532968759250462917454266644218248772180990227412175363806968518611484914474439806411172145257656954399721740405089489479586605897869090565388851770491797170863768941862573284023989018178072751459389490976309592997396085171977881912535194927101407672061584228100697116452564290132954696431770708286572061920924007651925578123666750391509902359760210348778557137541076048161825093366683438785353254498850883089007616355951700375089365005591017150288784900853610046116650851029175192032255818920484843065861331108323560792653498755979395451102866804825038766694040451202091996089359332958669977510841829247200492741045158201071053204947023894793772270567143130348724337507007997424619961436031896307905270802790884152224173451021676131728912221027732032309838154042909531935110951346989646487352575547619503429747204635059713540927187214393915740640244836226065159696810386988416646552380509469455294774945739789745235708578065157036446212951009224897112857909987537383165460730385584628016069722049146557204379528518526447951766097980241455732931632148709034335891916314747189541637325522934970003057723563450995971138864578127886124162295224972109595454124636265095310966618665562874855666393496555351325662047413203133652634815988846786535145559059863619801132619062583284924160705762393704696839598127303654770306152142954894097081740664220419833962685042949263861339984817302643870322999565790425622893776522941649648683033003804094592598120853202464511498414767021555168942231186229789606547847106861500175617362489186411746951366097232881003167812371027972589171213739186352267577818961589715537336968938657318587096207331993105169726350360366184686227512242002738339788640400114742326320400055954600957500220563580777800799464830059696675262086236358873454614675328411666701167287741339860434503961651168441279751648079156832467321506491502144741097629771981881529223980835448663761680115939373093069571101265858036719377621705499436914103642999662860605033332347262579721909509846304742901362741251522127194865127794069019243982917229840850229691687555169984369122311926725472338763209948994203662789942365023376130637161982820604063642953708444122488502269859258806600747194247592000409952978318567728222669274514066052360483706463963488736377458068043738997144876952499651991748419476523010859980106170434772999617480888367822759498761973841771385750813958339400468417675131348824153509466932951674183665914858291370905234644167241605040866180461183181104777546183671456530871056138464494214231656931514182898089038177213095928164834964856241242267008815249530391042062975528470672204060236924764274334348417653376361499767961974994083189313640298648918380354402056198928264867044845781663125052898668965088658551831730296814440685327175513330204399066637655347935601071240250506499795273888670684988668040049544230796577312353058886287428748631687448256788883643604957979748909750414480768654432600150925572873692448483428373425083236089823619699757434764404465629693799066889024555303748410856501778424863995263180682645709587925713892055842893487553626318570074194686401386100825530949919839137130304835030143487180133520186626946540408616304868418491772261880349128814549905829620751134068009818971309732772526383920888939428136391529813987061030752150416297209295357286490434663187408570917466084070994436177271308733748991010666162451097004064858393539265926075555957503542294615461804688282140114474195586927260189080333606308675101564618425027183958227127531419808668697413348821427662233370578349846243409641511435825637072934337884733705445951579362541269679568224528935825307355564069205186707531572024337089421122163457397122828375666498032802860836114505823907127498688053783417371996431116982684653154094675142197081258285778046790325930747424688328532295284580449342537976428243160134638344976666161013209708077359216251566387909678008969109735410676840092370779594056641048863267901343143590402904864792676719108169603536951867701079814747640600585543974067101148876067379085824101310641920173411928511595406103625086653099920134470385636116763348164282402919319840512979026902523512942529781796470101804806827768183521917565776617589676916253337662140570388123020965609219300684583731953794798877517371780869627298965456414158496681180220423445065605815524564462305652726517134999745945490651646565268605379378432390764954349163123908943343640248209041701193500783822778863194471611105316070280551730164546416279104342472970999875098222308572449803773934214920109274265123786014906923394176321340798136048232536675842429521414732918986702078999185830831622507999849258053794457935869293957048277204260151609903216206137651820072084402796158789846564847824373069329398639422788452047067961046309843985616688646525039829269342570409450587500273903230926359413874666042962113944730979666980264850366823277190114067882495165900990138312542976219305392729098895257316148032933811603165640822493561654827206390390978654600209990008396805727727403914558970219139446887215133561133828835372833380024574708714578535274017071368350794153163439638542148653064792461930399533016756826970419339081320995479338633903026223907251462775316436846780779798830851030018347013050184490562273632433230034125908831478390343186292533469454804381121346255802719774571542718044206987016573705452747592716368162591995600794907480124066917268127379159989374923788278277809662857734957178045605846174519900998668654492417302812309387617019291236487492423835431919679695188380729186870378361455997529716644226818390999052564056520047039120286639224650192845916844812562781507398734427524379642221803774135830119134876464139934438632539080235069821324211327018636971189124468569862906528179459687179879864057033990437672569531207826926649598704530081339311404470761377967543438568182243467425190381388729381480384538091635442380497795637016395065880529113695773559822018085365530370396088559562484524411440802480697985657094900754207716019071656683537766855277275823777055363433213118410016773805893012511651424802064605947469154191108921220006130126897484803897370548985218382807802912587998216812729126715563244331068499784291254489367360613751032737762736188263063493195453283945878052565763326275690542353467448774061021711945207021825758955113278907304141282433134213647963912967611037360788175044141754143965837691684508015656413356262218889623193238612489277056204807028180889393915060604368448706936070045468925962375263577795603392892880465847938050220338837811208080849216327648494312511915281467027523848396118500765169960047950690101895028382790783655706727622088908719603391246137216123149097992008653248417348037225634351651960030962186707793527308530411402782261641033637627683072753722758581268912214206755165678073221426049950868698003524158900655695840298884637287478874894643953374007088554011933237796823216109680495246484847776504175456055194992777778409907942529405906489439110069778044829302496909370203869433332576064904869481123408686966916596423222962224836586103750543106079028387323618758125403873968784969263978147735592361170586641470858919511565344728560890892118941335641035982282007833181001599439209365508985028238916842210852021431334161884190997093593450324581991835467818064702566496226396797398715111081717694821902996506172895486494337393352295668744222544406965767944443516665281352393478220537198925055853561025960741345030120564130409270976538839914691734516220728259039420146152140685947791776380874068086398018617778003853214851561610958503320230512903144402465797488231774105154101949348144784799761928921542825351098355204811878225462638612148268688389739754661893435932661982664419080184564956376399513275553040483911173879248069009194601475234380815281967082819098134795147029658938427851867470017702755428132622236556818134163872009152594497504096644021517720828442264578260507130228036358836729219737867070117889187206564393536085912038467634612463255128848379164766313133127094216874564694954606523130358439710517653327765470454976934279414930860425015235185052409006496801042811444353152839127756741270026940870184605517549575297012613256354328584817196919590958155807449419606872122205875038432389054179807134350505351348243649200680359656608758780526003168202094120793645562967094023437897292681904206493491326820161482615418268492648737764732626655635403338662195652167788046319598002927893496429679422750665523409630408044643351763111074684553668302607339728433990086247008630577258058833012629977722770931225548041985734731946688745974184002299521578548833233250109570312175598427980594946849536753875261302530136334133168980407858493404175833908140484974655281640138478146591933000453729827038605265425556743378933808374968688201301638354473938336655128870795046047335063826211861957931030912940563671130815059198659163383035781554489144199799865357648246255075489580443389670714034296642729068740950203456970247047448634789461285257610826040637502899914245278693527629393469455454115579054575123657434043712757391996538181828952113248473598139819582388996363745640034190327270919053910922881282685521857215647989897484309048740451066242935008901323495078635866890346699212785401360106695542068167082430152367462719684800565163805516246254717859952870532811568804740552913605087811323044478194982750610695434671039580143651656751435291071352260924398245010941010722927009541550585534352127107069826769499778664140365130245831149498071617786289538846448187061551436342902725899178974831681433943659232758561143185321538226564852249770696938017050077492522873533180573786441609283828457336651456282143632075810467473735866903624494556701211039186045138347354239245128308222678804865520228022160305914305349557763024075431132956437074994152105963390993481634398922605787603762642802279150002049459604646590948415247890577598120719196650855303745437990790741416582340241933549697553690590399638878464945996752003433756298530884098852684334471800586393095184679360387662472334510188871406053429959295762577322976244971288125777706813203622901045155338911801263556549773815283652899973614132629191364455354455306644667376233861453668345915149350778653488227920098933984416800415046189081038716407272717239690507536600539569071682264205074344948685719557809118864170329318271669967048899869176283128612073267646926672833001959300008745516880480156077572236534279900541638214484048525563556915851989730853413003900438955709958347536503921837706032416742971382649642752640647414076651483625747126686082023782018468215295064136843559342873862121631165063679281032092579712066522633751518399146032067849924096403300637163257091398740725701527921794499050134674867246792200459197788109796978533691160737942456706300677043759916031751706710425271774787367898775956703362880904140154452226315759293624851107519914696129705245921208170817830627580912265605100091191183253532498117071156308636278397671890147317491258899061496750513757040433622374727451096804121377497523321217969151318332986101104903818429425337672060302824004820716388760854563755479771010807569345780703554803123691398221462753706071696606016044981561311357022662194064372653840197491375643646062339556068775824945103168872284541854989202411228700609590667719747341063602153995022870426159283430403496813181831995719447116932331270554784647901719456662005018466555095142455734370824526992320706353525614910351731334165027111028730318769002501307628047454813954776364712121469436331528906348824883817684929389191030668653756077389005733915081325968285466762143102962465718780367769111874542554831997697736164074631492366908317546854677149964630966761556258258928935841711981850311801825710892856465149393305360262835726464537020971907616934053803364058265363529922607840181144257100729615854475632168759149365907568933253614729097387300237918149575173996355728807104197699513669010289125377970837302109881627878975408392506680705194238073037908278624366654074157824487015542955036294468083379127683621624615595823059736553013182853542697629637743632462025431493332014483662294144003680129468072835511940941875595926544635563735162339585491762372461929892342893908832088538182229861891266730130584317804615138819832398524321087950442879509409503474770584686305445020943595641416650503512725123278817690825530370228056605575473636529539261076522161238904978044486432120626270785082450428251451744279794911937625993224251546104678447871816724787066750365451708539823953250181814327987466597168608749137873219257455725338104491729568793970166232311312513271055086182076734071187841652884681928296834989424817747280180796306951296359359637257228648502068889910830774556430490538626321028415225096177532451635479899912732343772589969587049045042740223041485351862988529916575645630405446869569135811913771283031451524154198347643256245089958131974637753058302841837836153435188846230747393772225979575307902452743390810273204882045310030399583802251072816513437201885515711385625151870392738981305895052555563655379011454325270617896562621597895010060427402431107718892636509810992390468507793991940044374531372008904556674815484158690466930241227804716246451522098089122932726158461223840660779661953872698358239563387699331269169801623935868561566884286747902902467251709498782318031718540858427474493865999901367145182790764350892970496962010345508947931060769882139244397728896790993819787487381756261047894147989620705876708254264507181207155037765234245424433277803933362846875945949540496873339517351132312744704660204019367815354797345390624882379674252842308430296416373738223223042871923375648485853704288103652962708985658160893370303608259977808354397767906714327818402707014602908743553100417275431959614106007096110257865446022358399732813183831301861032324258057218445149161182435564447780311778704275878988837651806062367770659130403851611928777518405018813017993976572380288695661195712112463321068220862200637982758649444614357345004764877118708944590238807675908474707327622732522631969252893753760433859232460197750401861377774879131912111316291996902850243357608744288056025504692154418736721785026099144317196398801381623075843419670858433050186655112081443081240553496610159668243375959000196651594125683427903013421413018957323416761025516527221215295399370531770291271971708595591402241057017903092691790049208222999330075242186933534348913155602161019435087695263353295588634119397625955347653388806418885653393462013157361580340116749324657431840192805996012748944527634781284691702272985832231820342027482719545409618030006177348923151175536518728190164105487917829644152281189488369260542310647325450652435871410138429815916509123514009595023284919316394611702136494867219885501296092691775813308585682792984820786085305929264096737987770696073432025028638736837989647338753085102882744665536970921209927057427583609494049872464879680853879936284649057488829640189513686475310027306995170511942514883315920961725802678379904862980685892423262224279383741006639114713288172841722122877280810610935159011430539452849632848857422561519473128567545440107175821006454559838182141125562305713607788347792614972072576969695274037735233430734283628989034623858203156098287600375263458671236619406235410850300243131996202239169459332543128321547972789659615747851768624429557145727941067943851956613391546779444577411513092086930063588729903396424418981920367770678773505282037212640041352164142963096052838669709447013108338781157818872453874453364681827518157633655630327960163195718177827312721719987655468228490646467007447508376735548053456417914196982942900962687541723480496976835143202809746542215073500605866755845546841648861430649758243229522996540900053460723940760119107876358040694562213903699877148554782798177797128798533340634788162183436933471548209182234827604017757771300824807827877282884194243297088970198184207193137343851744910810030916151446042529186026513184132560804269682038117019978322515465047508822974691564385741374973583923781794699306749409147107115146743283198050928949634262496443941552620173450248502402663894973893320045535863142507937579201872600625436317268755741497812167124823692760069895187888097495058988047699231828044902251278011800847395500270296702985047473868267305296034288020061956729282603153545348470142960288016373173638967799456235055838078990355645877478673643753869744538390362581774207234607154612800483978381560449774544185777876859716107379706485385906412895974066151025888392400795551236935929436092879122344002003051922380423026994112568283224169428380099672112280432689238975585180433710407144881422835727528950198811242189255039659161959881981858358954807061332591812431055492888953922611124415438572275591919586608749053474962992923116008073010172943100041674950970857178131091294117099133371764224704110264302529468127000401437234982446041405470533984648179885435895428865084748792775860172302814701929108684238772414893634057346743026094630244820358893996549604741147274688698940932694920425976331256347420393364975236144461231779614905148622363146463830113075176915450972615087975016550309705708941532446198354644859921600598725749933998952926430709978674804699486130152957000798114982894520077761475368024684475602466349690055800601167994185885726546608096928143032176524698283081711432229731149695081937975406757509232630873657085289963857032920069915918845343109761639869676357984781918752995152743849213281587883925686209999958188835028160794053017366863743881255316057914352510388966647665385062197991521539762156639673522411001566787143502408190360156035502826807544868428397528221666355197345867620762347761720645376625175806004557264630879692918593416154428002416147466930158730138550005963105729871873066102767904862737350465485801763717944683824583748434145715900564876544930162223086931374008270106242009571826841524509854057460634188867851895471756438205580904980061252302053401035159707478699084980970394042627961836107972828684894648088594032775962770470907090261994555325894668083713076980344750303883999155029040343160965816637856805413887228370019077575335208424726681183957091987117044653379773948126751962072969775609433294571360778516582633055610124809828114870176048280456334495897876725627480295511106696189569815626383807571656099952738740190194556188888749128989468029431375497220456695698745865508863417100675744583868904955401898613615249312042980712723782157608763797578186561587495438970260408249356744104741902115657092861872307963052438532982290553202107398403330528885290447270180332859536957317029459338238757968635847827650333362292311217154586267791610819699923373168981759132813459749352125848814171922345259749777960916572833384107247495103676152658263970338128548883094612705258579500318949763358810020532504829471977458432822357494910374822578547463505833452766372187279945106705617718009735687226919155287624952642129504094044046848470308983177172089404761420419132517993307552576053094976434498784501706911382598554179142449326751859947038193237970659452967891261367069086375806915366776039170052705577868231550345918391952941655089120575521173166899999813145987303676801462031631710399253631338020500078229518243205405246446718755308780784681136314561652365843872899578272592476924793986024317661021168450188157081447318771085150117375547671459063112466737330679818868002782141974291429036080645353626404897707535438851696687965386211250805904787627217125168771850323295164357367409901762314855885565073374329387617482965448965752299349899100892883774232470857571031589203671389090702504733250109413285455594345242018309770844774171607424111923091845913483594874388781937032109670529843882565606292357537135222029298142347138835215776983881239162031449446371325757845436768514886549057567177960408231402205166365448166085580415441103899830969245824357102343941419074656709741239491255590724282192436164269642106584442573632380437188989354546805376036874806444902043978712864353675125248191162683037663069253437095056799492162698690755213809552978882491557398748137953510573915162539757972808348826623724489995514801058938232745910343506619083993818165576337479105328392108987961388461712253962102225506413191095843876514431534550731130308914936468849246607909169786392932531716857224225719439720436938588311954613874082915848360469156936418774327496289256012250977003635783256347801656022872924283811737728644153030075173263257794243176541733717297432752171984479991500486995518005402476687182918601803062901729759885283349278775894168589870415915944358232242207121065481288727677343714188342107671162340762984460180415875426664188644793099280565476111816887205565757414059224926136400343954175802155515582341664312575820382462958046988883982041263147675189269944723580571726225561108432327395800191002035859541314234631285617657517302045307231740406519249614588049834002808977741129474476175182130827214908629501935325138004079859348501184223813597618554757437221799711835818721554506648473814313900078835420329980354580024767351849654703632603132346649400667482705054729505073351070368903231105826785506370487216526546942815352170128547904762404768034000860309171607235988769920651315552771936354953139628795668384704832736917001775516293831667762612867315874057989633817131970301553798928253538208712938016959741240032478320942544388208227781855866229793649046076900062405510043997213202424836606798967985551011631216476667439063497408746789696267066708734745575842746915605997946214108256203843585865050286947341530587879464258161510259461874978464564304144377815921360955073171808396695726061085348931708977472577159423239779425846997463518119994391193481622604173473118238456302648362670609453463467172420682663183361957756240111279723410339360097479006185254581342058256818328004607182600299512170289334038134909562998950566738532401865650522656844952185947652418749347076458391916628892992194624500278526287429228397998830908008624619602235900925613851351205388354414223129371046256027886343694728763696312609500650824171909797465470790111574032061394937107696547295922296785576697792891039707490345115809337550660454367329914712286879144120798271365977184514206507532963804020931869666344125971948748232668137126368937754410600872383762580989449823195849912436115661899812758121436255297845203206751172589422932822608248796301017648798114384445980385204595298230444249579967668606602101467850390991720994367478776282916999888251023095709024600110097780547479917285192451112628906145596188283188576078324670972563856494669201125093810021264106803231986257104300474452126567289395410317685180279989971210272705307312721862462439834191668996990825853537504772427138109117191636076170906410623016640523790408920064802754477212323681442228958628384129939821804936609797614841071993741005468185919109851354035435642690078121012870061574324909179794443700030660286881085456460783425637784187985286136184247578840380002324038339182506686896902746146703195310890564491521531196426426832900354460216864121161293654048982799387823643726015727900112454332227629250830744284274850015964258101616254868963731031186748002020933136762029917864833370548916271773017286687651065832932178334981588907692922943837216105986678793445290716408341106359761313891934608283754712671950290353470501595866862263927830941197290824054125100803802754468294468420104287138797793393310610202290917561816377664222952573320395845678390736462480892390909069204520321798137006186803292174461543613936668155194161827578574877085347563371745048162112037294929347876659571892983068864956150353767038536044318271875814888842751079939662407612920627896155554214912041819976239356536849220289505053174817745323342724411356582860852492740822566865186505491200759855892975823879093019997739681712333807438137998920263094151073980161634712059751910479080516246517836036818742094648087651528597552391504676745297069739143178659623505964938451644200319959375022909455892719516664750005377460212224663516275137114480746352176204507309173862048020541168781567449865203265920310929844492623459561956630583590835714270451475836306872354007687681074942460802533939108035319638203090103931219245222466674909530538673481128993736895082892782005942692806039975675984513001978228840255734516081892480788494461640078718781463455965909248154720078969605800181652670773720827945130300120216111037298905913429139641452257388259581699862335029445643259629028202359686783524019285865248830873100564555765197719896947513666417716361288644108839470709935423350634353124592544077236520134591771338312959775213672591545483792489976751411721111202259170940136586263324236792083994040657364796895568660123092980256035979704372879530965130358019809303261626090289231265097118252289006141506366361640563591900402492924818031121406318750443590205214400621193423730281162067236915422905016722577366889456854343542105770965400393257755589490734288495609649534017043253092278583269734950465795984268143851945039591745272538364335608202920954336734532021021156927552222285988110568555870314868625861229373217004863051811912272298332269813926222818514990145138466467478694008311906287613550380907652196855395199599334819715410313933509828247274250381893614499590773288843071380576629098023666509554962756770789898772799210007677352276112434245839113703065637263790413349147342404091408905296957856097630567358837217103678761020474472049750747243471702744110889543376422032007143600482709302691775237454664097798486481576832975252639601557143860969617038610309852273636949931012549072132449662787233778075456796377999254367127173141556706069518001341751473299819982510465348517148192551800612320886097016547398615333895617900307860747814999729379326104855118367582733668197192410826135967055081361910111417480872592595146223103923927323711524047106951473764150021995385918585273300202497028764239931116815044515771950423177160815955437751576487872833400214089864474678664604088860833277075594075520600996891176715738383133223663489169764748934429293968913448983339560982751994568723688945510316830760919514180907072303455484953334325006941609668653077849533407624739876847740617920681003672275450206264350665873261561746023280697094410801169913795333291933341886258900013258880897192182239209732018688899922449195771667959589045631209124559846336026903181891566848593474936374154072932737999057545190100751921666150810512333009959681958592950398765705077456412805917577175918387939289002559433604493828947908636756166406186646660600746604656078047605319855164215155815845728129879726958782859638095830957356364928612057267783760994889374612183436788295763415939643522361932560335757867207811138932334853505731086759635314996383024571684099063223773929227895001285465965878694745180153747383912607889948109235431816663481060994354539428265646588280427502424049241519083853363508190083769695638985389035238335834622250878405873002114144044343852763927476546305365248040509040621062179157081775417710562620802837131767281772575262091667346897446564082622169300319329567114304575275726400220194625689343133580500728055499404001084708444992636104467759638235933106028855680180164238593725094547505682653644415860269235287317598884228808387778696629719184572129955339049981310149266286354546256184373825481052566737599856450038087962906938053464346382592767279137923510328776106238405507970890089198294687340351285324739075095789001030937312147720628372292320763386053340481876140980685861875293594249074130569504436740731290291842332280826013709163860317986687647541876100876894395228987986094329396464973281489842638674943126633028663743192017620859200850250236785281372669219987576109223498281333713828363396577077942692219367825510347473195087638793186502202032237745204391228503601873557426496814266689964230058015919959641668730565222075984480309575340099160006636562988936527835382694726831211796490237359899415062913012722284353061250583536640650770741974096570918931411292339956366746293309587693914093825300666218637413209919642449760608696834172917734491872450037053790438652849128954047052905120912159952130828240879887758343148468364338951928864100499861897901241227746106260577229529896197791634246986846965549875989486642545398501513061983398596580973181140716493235230726016627893254357375192987476696489683072804801181562699544256662264017117611386431599077975257092614767038537141301210108706941748015455519035741289660671798432208297681362615816559907146992289943349959913817014411244384361786466557337125170000224276220461943766168729057615009427060979092796121490253434851655656576303055945307179747651529171172703845108792746749037989279887327256380585672562975843313497482011675549436102413870356903749285392057321370980679363058822567137572024533604726195995204784721558774242119674286850737120560644891944003508023351945959260025250975735397668903876273117053832287701749765957317030788859840625919354594226293409015076182518468241787493548890200060384430727546583415567049239807389276123267473138389687091238909969775674935720923504861779572315628740657177008029482535128430356611403095004778884031503010617989634686194755181548123402742631790056810720816546969921501100250573048645151531870799857993493150814999712941966451703831614701516243641818753516476020897893413885304085046872974609349234655455308291700370971325405103768123670271321554468541986905994857858150754962845074759022337783434839381891639780443367908530349960546744517602334968687311469207894550319974506723689582067903773339679015745242329031599148393928827100525730636827967521071702094877414128059921344305062003489031850910599274996847852373307767497056089288531829050424692027232022237917961860000277702403579695217374383359078772740223947088815014210532500191975644656954283410311087095203987658428006693936905488520296286572795286642679142405871062540171510614609421069849709248806144564413328296138499014037626797177960154432882724411631774107799578912409855495992005074410441757564338331160240624143590133171435979689886444028794604291626238504106928766904210595775052713854980310610407149701033432359517199356059949722285814690640818860905589167950502174202024506082550401154809682937325577793225871920015852465069044315939062993825935725138535296832217386950873093224001409295646583658330972987648489061971772115965352917684886439767077399717487696251314977367702613993704692551841747075231129285216278126588805165317320651773624993004383798738339055096240191131904628629930946053352551317166669025553536257032064711675279998608364707776064790983057027131444867126014216365494103212410233224422769851562189815082721489785587346354657705566870332113962738365629481985511451847971102445570877604479803276402615362238349718508040869644680446754530479905401866662941583060081791808981626815247766758053963590333513652107500151948983696818359760292680150828725237785513829610640989031009834492212201033224923073511578915093417624461217454570360455961221146026035389459575904994683863897154233036665540666359918866597745105210819602542228324949386778244515605139272227850595435215364565872679637128587892223440627474321518255012758221546644350931508586103263429095825741259393171702130087651912918498241121873022923319204905502941322087829108843887494642058460432819143031341305477385069148522887948335754076901833429228630838146391648208937915195051835415914346463467112582981157615829608040752487190179663257833429325520660034905421366645863498361953271182605240797895243430875698911239415789192938931334855542317310414312153561726602943656952622333096274699141853332941698688760379521344295789459845040840922393595289951691492553525977795969091057384450341522445536803660954660613881854907805265744398503318939182969013805503091842265621112336870951860512454132557042270534725121510142867242620058172231302419987489456826613947707431101928881966533157940073387029833031744416841954300883582113482807234262096227412333578169263743025414677767547154056092286579480708799007727236332586045558705514440632803433071624922495371307287106275127995354356581519236689097809317694378410277478377470445086493181227197807189480765649757719570882332285299594273593626485650147908151974903691091137744883039770055296667466858899364568267951263585486743817481414010958051279233479613496658952836916466022819360877980729549389452261669363032287482909558237747323856169206070239959420867251706796061155215251459951385412575480383139447744177445378771152175915080654814652392211656322105578182686212477581902933981009519340644864991654140926105890683806586607109032036980594235614444710530110680262741189896229755288704157086516024857123166790228057839029104244291421789097612925864404104439038449104010631277019050154800879692711456642944638546222564112719545297634268145610299805499898455680360894317742009280747760286757221992852030481048824197318785088490139385529468425191543715388520299925483666902285229174475054744440321779087892923947434266895673993079711688490315551344831983683399440756774989502775310219740632574275762486426458938867363950072002438751762538794611313251259208050383214252927567608926259124222110474819603101264610367699989080498477494558889007961986065728119046199530783283226431853228948177148714141844904610211135553366246060217945360756654379746630665847138747593607760434290687303888629481215651216951281689906163147284909987632441947944293030428366548579605888595675832623607758821234154277110551197046686569521820555336337365068142918514226600930341694162462974248691545595017996988729997870206565921893433997424738297288573910737690197985853712773687961265110620754128665165318235688288353319579860943143827526731930216067234768727593655219457926112629888318459486621659075456168339163539704639558699004343006770354210517045989562696295856271241183953138636839159089860769567570954756259462265489036180063680136519986051094511333817285759845932006828477647487785713467894616673352740767023743190949240166974821472882490327756595381757086360625019736312838173998237801111264806233017217435883440323813923436353785350529661329147032907575232847217230358692835533127960790470037561974141559852084669249690543884927064141633247687022244626246511377622109772270256783651836037687901012283770016407549336137532175818091627986891159860870399349517181782665488745607834483956829474098883584261110019635799237615365373724879688271503552736819475287751837223201941617366065685462607580040436749611085182108631128827222697193912263095330499461212857346960771051900463669388658944099435038862806777816797702971459783540851705516043738111941538802378342095296071170806021945424047028574136894121780297418420973720345582130225067555880906159713376917620622265461669708094853257945969929405388256027573150365121499715900800070041042903883574413004657653901706114052694654839472481509483472044896728048957993288049120378767272412689268463072229958143642926261761551783574078606344363248232305513943866116748957985979239082399743998224116014317082179246138710084771907078070504947852199951204603950737790185579815788427399555910026812790122739469155597633870561402061078959542099291233139494553705881210985240770491899090625671342147143319196261934940689948729453543687631338063716669029472657918432510537316416514509330818118963948533655860658696680850884151198462962214197246539962175643562746347891862086394936402335475107336515832259970010393293785881374564467835832832447015604229367027840941959664012944161012546762289704856471276436360788826781174598917231734574796158610637307362241496865558490875227535653282163097520943830886087291782818905340532708923169547819803713686500602942041258858802359458096371258177265443260175485684721731299112866916803096198551391881566832049777423491155552626530991561229796776146878008129980919186792085559995445456385003181915685251464393352824830278668296801474978373337425182184607745793478491038716514350039449175060117834609944394430366842829952051809721203599949133589992868318777291850887098791584006695801921275685800260750083140103453539540024843091206484816791572462189857693238367605136372728834069369247494277805134977718913347306547964765822902434047890239083494569350141997118638643189206489331656385106453903487745151663600038916195412483920390711681517512567992848692858299172010947189373629875409445286986648119126453933936994377348361187224748317698366653754994633958455835196068492613061775630873223556689316538938049777758873394217309666703903082939669768691493649842508401031159453276031608388715772781101253069014142677877386007278578266812534269955508226020511295976118628326688634150400734658889674005296643481129185843924192150196848829531180475313801657219379164077634411933687307433158199400230222961248727997910204819837896801662221966159088352874626430267312629171541862352155392183106667280739138158356939299676649241347778123688888982572541031399020889526920142672758690438896158626134143159363801142802250489113556483414054870698545429030943795107037883505017605018400396949670092937490851357221931988502024720892753222029348124691274670105084979299422947011084057004720552991708891404316204951821321699349368617067870840108630522558927627316326449150677360430623318788210146145545900347601266584051474153377929352632647991431643126647670417361427851762600877344555669308738152618095669870869293566599190520897272104928564835297164791350945755417584876627387531720138005223202371729544942082622772312000577885843795252646534033492897476460511624501041668358699801792188876696300746427538080535334627909777408681390405442372280793165960309965345411162160786874675277565763244899001087131069058659071115931598315141840860780998482153908190759693029665029446075331120751639456990929683892644072787931412812843738728197315783012774230760859779109894872663423481243856076457074164667952870987889448718113943183617140784689934444072758599236797813214340429912972476036960330550399776892449734126862066963019714175512627554767916855778214924071193996960672913772358087128413725013443708570851702828556719401818222225705338123039217416062366350310771488162541221210255968506223305923015543108528523301472887397995483327518047990984938892882669417389675868021547481464120375682542879306357532719554424139635163184244299269531033580140353906832120404803077154813505058802321219601513093569133419092055216099615743511745411905682506982322276927139840536747453598844864450420277226392639697568212871920362306066877644792209477166813117175684241694963671219478654587305099297427517144120145651099889989499100223120800046734201482629816444320784729887378327115438702314441660134805008888462642979976172121404629239435351393357265497117459673746970442772641835801114131401706187807024451954907610060374163622794857683868183491761062699855814761122379185451413430392590461947433808839905079630301250666832905964128294818522859321047479737150960367493451599625390652616120810199698596127277606743178563187821811124292105530233558471863897986262802042359665716406306894152445261059701073959957937429676097111583981081026827265732591994905812823563988556716385520018035728398895953133128511201213515279872897390274679994544422981850005465545640569217385484622910970317709917486599772888945092703765511232478631878219242439292629989638881132953819328750167028215327748035482379058985610187119864415224330768476748700135502186746121891952049028035686912000665907598200738696412919868788681333636405528494766523717652720807453600835950370135383953697856981549301301583612513060775581393159949709869304619730527674916263838662987762037988828578816902226441952532200923485509366786232027168156336291327815396314266885735227980453289061091122436131871300469821324386218188425737935518406687675500885259264917285941178629458967477854897941048259005191407585332004349983566009932596100154690198404015835477553787720002644469263589585254564688841015995185802412792598532494017039902927817574916068983667206188301063265988144028195641166334144876453748318253579070280039292338177428925220180379007869562359308194764466011519551398598895051578776120331168213031558234264745773116125148679361671904320752710118303713504815977560570504508848062155040232477289522068155535197112578473918270662936184855638079726842384528370367701866921881977786925182724051297902512611569100812162538226882261653166458672839596923910437508421405937475942721746043100229953937499850035315122840669521818812644404764495851188977639676289275578065438541566565654261463097265408061189074486914716474199245070230283063919821550271396571655230607533254627642811007411971309990969029097255359297063949931740706443037907778550683358692710662704209365660921885731326647365710464152599572654887628328272588892807925483339364538760885699521596780758792641746318766698854190929941041384456098596860952306922048738499183842221063153151939448538219414002339324624418247158691130426569693343167023770578061795568923450660896346915546414100911150702890028634703184275198799895500240826221727921403600006857305601690611458906576670339269859596784588842905961241411438322812848894137462507667096338937331956385571769139427788681642659364281778734042525958082880217154246014289756398480253246712547621435985299471484990516974727444340315296966507803838837154315110483694630798958285689940473266975116974978678382996999014532426054052613017127328465865167734463856866450462189048355549087950050654151163074039639740673798262268793070629140135043894622761251802353864594981751091127231163610453474811555011544418915825606268510178720979228435499402710160949497692102327719710972755619346859867041166784976815641999096019737946342941831591144065272344033860175883515904280245667760969893615884322070653488411420350147784009577030607192289473156128857545930187659609578317886846502386193036124375138832093905194124394848991040359324452816421048143806706195905813288226145736931564665419216690514038221072418387093563591629732257790401374114316410622061679530862317878677791075116999669477814455011196343982437725673443315745423956433170125193249662781223139286182464056926954938212052998493591309844939992743245324455207880420833769208486633795454464525253568200478842229816865520088687751031283412004177007361266330978978941159769435509364597574461622402743414723071951489840165013697984932857578129455273024174226474532111041231852654939071550334130125178042012312900501114482223732653652707195258444605612171543627741632475972701127546219806337949230730687636110650304923139312911516067609099635762697226788262369415268013227904767575722249883202035159281420911669056129011337332602539540510730456634957884425403698211904665138875473375524726484368729162801857187770034421540618574591464241140605417695191147174574576247589122159496699071244654569310815195536966380224823420095536152481724534073814087114407820747905132453157558513515175636460118511554630966138440613997784455921916041356099214761366667537467640557799385410616552985541094856546409987371710713491572544315572437499831257043033146394858423387751735187358629660674210619782738169114251382386809457851601527013658269077580579433630978221624964407930361170706025277253521107107340402852009677927918318378960841610147281097644253371952768481782861352216979900514504287587441920618721840046069713307950850714672932657729208155436050530263229096044541766221872339216126099069155788121847971262682934944309796189562928891491291252559750708400152302474159579403397015884031656514417292010066546375619877006834590923002813221371680666449401992628032616525982114672475801636147280889562460265728223168803315443117252132316776311829641837747066355022710699398443585685528857324765741635293046119463151015299141183469811865272372251996385975228825698216522786051937929680362767995097465109866977918883279703378606147231313115477053527156685020009013079927815060964849042314518038909618451346212887586673382335987958617312698690317039308349100201335268597949201296002731614195461458769274819785534545113709928563675316304977182728297396323021437124634318508988533007633606815117726483688084383456265134978558079063194670878958698778858575863626078908012293217702103412446356320012630107004856216051715479370544838307605495665458230888462890306879183218602576474800864040734673261087862705370521189600284012948335604649504408357968796755952011338211445795542382435382329762406283726574879424374120447885359602485217175257454614192626326995779253985592519160849896543877259587105514320807815341737833426171420150723844694826690192874730351467374844848346126284266449208639206794179812438382882298504215195587138400161799953650889760704114724565304615748698882034391267442184329603599925512236110405553244290186094709324369190510605518243300920059079257347668672330346960495735005289325473917558685712713673356620378583227622019839810095234019545980230519912054658309051926004411814013629629317793860531471255284642916313030915263814466330505531524931848069860089841859965588293038328245952737976492919130071044101007506143264854302070586779519301688323608362513045898025864355253305021618465767271710301408257879788587530354171909016984102468941107913901539721539225748443419918245324453919055293181745682523627619974106380800413343681060089635020576965168208294300585215889542020430163079570462777150525865509995247795690847999747057419458843092707918567162995478576633535340006561886537135682543291981428053463485666189107900615115329667990970488890800385908511093776812584314079137569354392438722520820483853478368188816636456308414277828528002976958555881876026599715090430381776946172438304990479421069104439210239983356372248588531984548968585824249364151990275361035307206391457993524072717626040510795650716196939702857694404639002087873984570227910310520550002253307581501171619760395395061855558795368874006703111079441078072496964302499624636324151854103761720398614308144463277082365635950975881175676870146138876644180925178989194009697525160108839775352542392841326089569161537913323989920433305991442363160804970734704199000829316542234170644806490963869781749254350752679556862401662404071466355579130479605907279935578872308415727233270916228753942436475003883217662493258187940639687108235615960475743888624845570710252551838016558435442052278906937890851467172772269355549715859166629300304566693410379395229053206574540981221574663938500469861002634819322095700079791544148701287819646702532342712744153070965633116440547534213780100885176314069691744097294236477339610315440695575468457277666075197925208869396817702962968630360800146441052681496880631385250599090106020786872394506251004042104407426252340553655558059371938703131335034908900905026969587568260044898547328385004084998818981814571000578027973396105270297810229292114115229471831426846382833224304939110313797790835791428962404114112720201239480128623714308246079456305561162102546490800175369107338108001147390684037059747142872347657660349174581892695198760345050075678672422660808212953724479675254229552900142175147931182048700722419580042817965367260504478427428866974201377800699681158066843814747019208123313227470326435213174888494582319709233118398716496785989942754271242092328733344385997763332364802966652789292991595005558912412403578064800676507262920064141361387191584277368682016808305861727552172994176465854171447908833296967915070072886707504090667718045895936605677120991799046729052169259570851600849667844706222648802253804149269268657129839960767255751051825117072717539377019832340661632066878436659869513869897604547601090579102733053130718536179859752879302858711593923073312193843703547121436031561688221088043680131393651779964054478570312274739937174712992199011823752087051784109862642385315566896624630088555420540806094217374968731815360889489496891435144530335906944451566548276608067914239888714504004700227877339346355554368916534784888635135231132393269828460858107746906649673875876088260072703508763277407732025443825407894496456007005716803344980167784634508848381234349353023128437871302582183380087403364311577741439365162012688377362900050715593130991765655206516810489873315364194270332271696561123906393190126929481000176364591354504773519210168007824622144840924800071698793701018484358457630383678814829340851037148647234224258332845580706903755302581685619814089716987099811729294059368436152968033503130666508495653531798902197962555523759866085280245885154343823912438846004695713031452951446778029064290943527318150763927570193220120454764264958200384287458142386997886549825902626297387783257573372240745802364895797200384244112753060216098883589490270037832271459309495312464223830411634806751859711784623264693036410173777020485417647867102742576772138249968763492656300025240136943467788696145408895872259596804920490931917294835460876407505453153409603313585652276012157170934459929565789071807249761885614551954149634460949190515951395772722334141904551194240374743692204030316761837854740047502303231692053162973762295748866271706639462635535661733868277743299087362577344881489324655752134801467481426951870989135438926443593905854802516122893756875055669057189860392731885971334656093185926640882090993902382109903045885654889187858714782320686257037403058742435281419764701198063654176605725757637243013696993318612094955759330532492604398167000350975248256944415472449260374003833520111967404383115265432218728330303718301906961368065385036324025834886193316000000421673303907295243002042216426068976544979612529181113800905742104922912275840719419536621587011391601167835348704101881185339149071620697260551981659878277228373320359949322434631897406663413243543959936596132596547652294495775518876553742933073422862295945096118950308251775977126710150888314582846628796299133057686046634692926717938231451287697223025747486162061014615972314181297771412224148744694062251606948860163928245128044195323298712508542650978084813343386911020600200144490543768618461461767780511037238558775131706168234219626589183965861547301753088396954895851470924452652799061704707839976769108277180186459419067184488708964285271019665694569972262916413520305259635863156066342565449332767271496270678282642785266572518965272726299750794220117068287409619267317955519857353081704619554192499917868000662672998547688593906567323970550181223247174965748143593115887311600020003284573603526695133696026566491903718128707451641263701216590567514921467975513851842044654880990618123591456436824314068579374989215968831404601357590223029227189741752412667018190748313123466321548559866967258219659623035312462303318738593004285465751377644937875190378018497772811590148454680267050559098442793609966981612054191121855056186484368302552708322361209911547912548056560666251047935558564248086906919914890271611474792015862791231246854017206179068898474919885495310165806305792386685761004372539009707386066961622432275625941962167817929445278666976571533835659742889437715198874875709726663191702376984678436224744405102923984917427506786492128907987047404589005688593661136073362039235094361398211540179288323846295002634911151337731315299841533862313337653588300849106881736389793154275187535742817285757716502190159579833676905277876157797918603607948442492135519335382499354885706456065165179249402422827065173928748484937474958080948893989459531331469586563986290759305195725306638635372639551601475000542803099773238672806052174075666872490034421086717282663554734242666118914252952963977699034549704281051762195484762442432500117820296558805072694980681879860347333853769094403212093173741571207800430660869166146465809102475095133344884553112635572663362327665207359631322631327638142455343135586050650949262987473734924368087513366275993376949858004892783453308028481901988731852037665937031101016318456501061181561844302573923407855176933842218991674328861564547028154090993685080858458620769693896297223580494195938586915625155795680349555605285962745319899869372946745396983177188885858557776692590390910197070532826370126113498278319995961974386186963452489010551603100721889164549845939125512018865292343177181522436336013800225195347154042187333231791253854093650811654203422323189647121809806755431316222329087227249206641563968083832784702259611146229821283135792741400417950870189651474945412745325920939656901562633714614646350683388445943516216799269879805369020861461196941547426845259004792220898084899547770679384832519099687137360242110186641889234356971442219211303908487917726735514990581790309433009831521014756089989758619956730808101222130503802692298003331244516250472859409000605009483995308127843678767710886141652296195765032262657735839307850480082797905921566087129104474084933340058464723469350864230832230432956288609864889847198734971660036677804506407913794705722898647953015298761985320838464869323515556648963410000649121012790582331919927746311431475427015271832286384780721661673658117497300467497484821346742814706516317421350311754730684804918579795683739182215759183880288819483855662786609099887684750604142761391361942956697799062598510785775072404320809282114317847487882549848600594435738098842369180007489318281539901503598117227703926835387785869062220534517587684734538328415465541962412044578476671086371235570237895800060736388494855979363516577350791858320402689140731493788682474028974669947897417454184313619740911276070892761548197244099698193248479737698962288726850631681520311973696984768190426625730534724800088257593510706328770041447798580790830733582179431722541525188028197420039116827193195619554950623931550296507788889819697911791165923798173209583756826274131110764131640238817873956003081685805812996915826825052050581345818798396035975662628741070384221521371192374542517737693934459672998814119125989378598794897676882394754700989716164164455662026826268032978395944040345192186972545825449840294092449362117099249090339733826817432123083063147089669888475336056208378693684374579963600252208019894721557728844565586528221646868913465562662140489854244067900378949103933249553966726149704947036413597721464117477075559088302772245342111501464685897500783379836693896726140124487840967819214191045073910772416438433995049408845238985557171842582422991040776168847783547720654904424393018060838031707420008123250282968768987290282088892322692130739491863790076258456436788647884311288783434082980404970309484312351908340106053120512028426427520001355657738543511914540092786381896719793734965333330613553402382140252269197848573427641549754881206170087531057359721176507009687742012117379762846175407023286658967209225251822110837145287381076650560400496841791928805619892920553788357432147620030008045766072853726698716429905885630826070077529764501994068759898128112274247027472076200270577583081107959349699217134846754106880628386610183006108738373096608117093895046193106606658412967029874212308050739629900690846649000253153979784210577789610125726445976955243436537495864613772915500112340903763863150867917061871087225053587934024517784803363012463822903104512085335125144715883369239270131673898655839784349305846041554775517155864978529992186277995065453406169362987858370290102681628980462739693531038586768923658780342282488439702038808816543101196753435067189525103056264509221336363325021913467816087727370562143935464053700445790457935192163887726572237867488944453936908480807296207591452923537763136100995546976046797988066461548344853175142458059003109613996322824894472785653034018315524101790000367307275060027671203551191955871018484166238152150537143403490795926612765567562180025605165357696192962521301865568914441685550228584554118869621031425226491081363796784777520403912835994541702722430534069279795657766258215139320614630437475213422815010922492574364622042832499616141315593710679983346932963298632769810091626836821044312710988998994119701461952759406245863174084729450905618187927585323011724666778496579750256205259375995137557732278101720467464100699323903350374249899571791903768151227327961253440025759648433241276789014343044300860327402671492448532824584182146366960194239282422354716938684177189484836500948981248349298202592988742621948287422196340215061965509161763771869116269473075192785712505989672393405765828188600597072226886017161103931246358738303396653422896196103539683729695270686756229022871959345147368769756327585878859912499223356624161877015038278127928093773508029397747583936494281691997720601070700186982248664402018784185406745395069188100387481437179625692512681106643404433711037652895451340188096131234123539630174444564203968352226887136834610590069930657698010099886622754514513455486550911461196994661278412143387133433277469791072838899410279963405692722602433858434516360828974935457881727300868158954529667694983228062664687835085326335511415114743600266711519557412200339104410347700690819585534651819743779813873513946493043146938432036296852476817124322827511633282322936389917696541281989878174398583069878834998080939854507399965788295670391516281648592330430806127821804671766149807200690617606124243759532732734885842748023661501114674764147885951951305963796829532807317234367720310172550506473434498637279627741619680686096363285235171421186591432249215930332311026710804718267511109520067113403292111410748527868760853017216104022737966570550504974719332183674355942580517414995895385133192819621959063092244680691670671813166573054047272851641861732272406723633841042126298865530115398396883813137522223512864923825978859684645628881099930238795321100157962790587043410242106424258906187679526758792796944398066551629582442814347624659669375347715514914456103838993643024102519412339809950479711704340728852195483566904598836513936218977836983455608622462575721737302432016497116286062490440806718994264484189412916696534224720014174736585335437138584610423313916507772090300539689436981267106910074192603801253961602764830353408836589229667708154198795571664365539413658185639941076742644397169918502420750954408540148269697003319558226506696436016287634165349194078544338617379786701005627740378398289271566741101302824600945781234129743530980635814594089184837261145748743148152366536003434528176183460018271142072028270801656155481895813973184874998685060400846026558135215534920296819099688027628332815525048615892358261255866262455815777754255760916635198783903015154788752433060006422121635093274106591188496155137153771544456363391304147669236025471008362279290115519750699775327283783846605983093994924711742089938458016935401288049728976987689194101584772199656518802431907094032487723158696706820623697017966586402010457130401318575023838251849986579154463710604406946364405683693079763234739742288863741501710875297544568494212581766575815275954234499097511638217343262732881910929630661966827972024579435964866179020465533409375944050310484802019706009943320478721221852854166098217085422051811751724142276873517268159914555580131660023495598865030283309392817557302361167172125661486787364823802078540619326925516470860429594248542074303275469918975344460254618921342999947771744218445838528536112589108618219586018540895615157029104464741323671759337075886695623901389841357467592480965891191648559807000063766554856853579671647829558572671413834560642889203809646367336788384803293300529558894431531709988616407875252596320354586916606134646097192007583918188819599711084420643646224698564072699860973750687489274623953207269673743719567214371704636882299340104594847495666558202718768779128617473296147513292441695646412671231322201351666602521225158320573513044436100859385644667146183903559582442334808855288472937460433603396210794941056838430256912963792197558496146711974930536639219614926714709342202264565682867589413863087370798737866426337820004926939007806041875690394241563929219446251922728274323169067500389589780426044563258466926814386031000145332320955788471394719349075817614250080578155860806525825241866962307696974033098112983916975122953630570693006443207553045255922107284625148901116865924499122535798890801141682462910388342220565074045156826565895431026327700110828648694128784453859664523351802426157041067826097558800209177153616445581200628382569188926170742069998494395892840220622896178457238857214543580080261630857786959395892596419925164524726217473565262093104729686960473715590149792781960286159113410194884236822470047378742868014983367420718072943588119381024107711261298177067772618621569168356218817807714792823094013242361295130801088432257746862051523533407300357882774304281499487456471371391621905538196389960064650654211105850032334504961464813947894047798276679335642602204571993449263691928358535387783220512019868746077849617060005306771683646377003826892432110384019664881767086523252717258133087910710309914176846790531661246171391378424523923675182649736380476813095352936931966849906677516566775370066422369843010563757809227335209045794164359004403085510438278261806481844233233373253420915673418506501905020433305499448512851967100744493997693520214379617766967267840782850509751261073664694446739354963622770466098401590607782958199242457796713276515775314389569295529065354960653481783864114838174393818834126210392057134680471166580745038829388274213340668608294203034710316583850762111063939429891405345776897887619574740810228725787631417995050421507521214057112989478133299331715619405961110267399706562365099834779317972625375619573563476026668559700787594525776794208372901693549338468135005121370963132356014396383323169575385709333030025882294465057203592985606788521093540263784579156192137805363080005577324146540503230380516814016675423373222087341858911988499514608821630685726457086158052277211067747526807673529416967415367135359847867233284094038947665486240327583172494207785673476450402856890605146313340654362222071375885578165791306280629441549432351433756390220593011558187687840586168952579573010783056098381380365340659069303463908056118175539360163688434603289630934665410575749517613944813631228161573233140669298250293898306407597313221595596189647397057875752593313913230274485908338152025383391481036408249017950330888031028391684786092524094580197832227868506337530628604759676455697120497467600820535595900266457042659020995960399569665468827206312272827805283857236845956920349367063100901956501286607129285336389839389010020253927643534250549173208777182651425301413912023429852705166654858088338821991993169162418671326459054533016335414557627819901050412095811924447121470331865705535499771994264043226287626383492115171441704012301116334858450061770745987167863886537078921200120433650571759563175381370848791389231978528002742007798715518415742834007670582251449429112411045384263574954961274848657415704181190844783555471415154310022538971405602525113468540209803078629497079142094806336419738767987343656829900093767308478903977371748269090303428718637689050361648838409380008298847302436469151024570423295824967929281414701344389039034177275646131549667501954035308113565126795529866665958292017748986486931537634215204266763104315521837813060082966884353815988145193513071598798222763470324482134641068236750996362915315199527423537014001237361331155075590654230026354529467631160449295344531164744127628958180735586543146550497243731884231568676860214820119933383756935845949565084675425221783390491166885662132497412802000455221158203080040097729337836712151814195341099343210908461916718739860414073815821642001112794466585629205442551088893984591977740087292898045660016440784301007746160310503619101066084738534670215267270711413783270371730600988811083164550247207290449752592932923232056857847236202695933621451653363975914814115083015911717325373375268352312183680139516392105343513101918645261125706760290417350782312697410796782957351141691949738061515766741236191901119929065358184912916106661419689332107517947848291476447398145557952801872387852664248657421328350146381059717155001257538572641625644141887795974939042006328255535423393059169262897208580654084943790232164803314011716553634688486527384888939409008988470955165795104195042198198845875053741512301287602705440930514019712958947860470868754618561303764403604805356831307935861281590936533657897725271407510537282856517749124725072802453228187551297159084293010061385549967109579806577023461948407451907537141820325372512617202273471757457123003336757076730616928308159961020462292054528688908724343627017419194748625916154018126957482451649365758519668924767905818314152663512927961517596914515963947777593192387589656391171267953601528865214356657038795176651324123005687008666053665448376206449825942341516943864380268117036844741355587791309459055951700102836144389261389270285724267681883663087190488296514568720543851382569219523961730947717890357635548535524432670618557405617574612149241794453457290502348535248654463311541981983496846878256571917018942791119926742009986317827587357063488814952157313939849850432746436513783794245338789585305500779528799700205525081165934222615256493995417924180259896918110088001321989082266708804232369571261164997560112755360147933392542634799614508259466830220868970415710919703719204405287414610253116577469966549894744679506596907580727243606495499900428200440801258796836555842176703349019868938387441754992022219340738740426877054561805118226144173311210756708229746611760401071535313141101259153749092651767596443602616979454842353750249295567051692049922618496867583344437140008695040055332166158659049607991108555557941584605878184835694240276011713715174288801848091954927999307067437821509325535792973546216597549920659128340271844106046766820438518894593301156030607258713459218143107693679396817435421401766843581193446452985604208605090206740275620386807560148996101769517107394404685860346575246572735901385962616846196513770863276047360025514389446795212551592528611727528561064980511988143257625238930362715007025972807210445415998211805973051268646143057036427393400770453875304254488572451766788501022216956237374291702447035087876708145965909519495020255124834352733458373007463315489441574911075208044252730574028510222706220256599836169196656813466396076381632187775783833693429613209242431830593360396782998546587220161841443006114867656099416025549394878806150839008275194728609731367140952552334303896848661495335033733849311125831518253134293993787057312310036727833645382221682786715686006051804950614913260015238063362881083759605850594651370826494481478082672399281172480674645899361579048891724839687933409176263314608992482124732947453215111164406134491675638888629268539375892652104206729858267443249956948842421978487339393675108622008453381824734282461288824940354640859162080807493307847856419216348567775404908348776066459796096659217260160301305295390991261904454209420673490502533303941824406408158793776493271849066701365203341290896253437653470506015594388169922574576099623362026887230110970351199183044421187489701750351932783370624731025249642888569321106069776659254707967993594298001290664714064304715248307825504105862037387012683858915936899726573165177227576556755973383268328605636595416853403716529980133403465377114689751433357508914171372746859640814789034793235090324335703482752029519215538652509287429729904999668023674526488826720597640196442426874389299164066037678233193266870373925569119186682077694408529092999338507520296213590063269527634210770661179131761029905583448376948142765518802957490020042346702301255694350380151779690765667580350901838611602246138271469607326778050609602315550584530373206715740495857966426651682757233002804650270785722589365704776294094262288274068708866688948198701115614203524452636643889436603117920152416042198143136355445130596029801455594946470514768860105114595223347898802896508889266492236789011829360085782442687332142292386285892139440097358383188310828048972938135256865304484642288787813598859889410031336497420681257065326380238473633902398884274323073934523196377307006929766019210765333240348102945355062364766820695669046645422318983836764353270628356992704722632497607468714514398416228310960368607733333186286631084881146257015285167331620231336084966639173295694538101528935998492938576563407650994518757444538660962906951467378416733831230643283680161331103318448613849256817768619864711016591816845986740902134559817378504377227000974016929206930806134184521541632471117018759757340033154099937724433985767263605606000961921793054946392037504459683102648454097199439527207375399622938044207924870809555040283286578741821839110799389698653259979420744270180839527765378407830145093386339617396108473952874530795436402327633218618566268694879733102031393211169996151277401919248125689360971428235046651494153105361705039379173972727053269933004959303724071341678405250417021725607857266802649336955634598922410783399849393260914445474815162739689529785302986503163618280309414087879759134777383067747462994845971547710841442412195705062212228182052251331361700923119953831592228210110645578704077673618815546131036136564365236148537399522445618475769095459572085709047554769234482826633679609939752219327640764320119053644081721381147713219262591664114669505189598662102861261836675403438804676457342484604014281910778527993368789493162159623204702578356746565282448903694547100239385367947245484921757701825861467124022919222253150582935391879411217427238955585053488390240788868633231907641660136771168919803435731883621603258853804550566719434347968794249455007084709229832400501394411164523896394556237593497208373593098471677856278966157250369716501166078989818833608743396741499862915526898926192487882744670229785894683360062971355101730051744885556152580354585826133315001548314939900412617590541060674229658539967023524226423328132516652492872502561987436860249999829878630840616958323186933999643362557301356848751039274792768664379607374715244791277522679578218723961583748338181816448945102822039268735626266503125568491644284467880599059403766916253397843085496972681524843495756845692008127394186252730646853100916666952292689460515273875177447710817143297422910080629192166089781955764464632582613878170583636484092560046361744740654919480421878538870066904621242699107685687101067551586004726652505577972715660757405145300229824938567372929303527243553126272630041755555594739656642795648917654645684634471574558894428532656522665212797519410919995032549718630594823444072380955610426549189744945379336598253474700162668822385193174516633814918630858345308436082304969437393780412224274115444049522627185933984103949712394415452542647776277682305268377877474060140163475901384956796876676692979286112835527041650704931828685250823295206792864750392789389564170374309769315684457391589401151099360674831407007990420346815489112902612418551209023958783035674146373922396794228062770663580296729928947407424127412757782059375359677751874228644653318038841728812462452957406316209381882350774567954976180336447778982342892448952948393399109378980082383373542765177640217627954581505599303494152043599847927799217502006019778675826841874284886085140027878116174073666000021337410184308106413751089883845142168623372888338140595571110918699834184372667379551212555599889907165821483213331538521250687275714001375696032950197020558323497632727696753436035942684514414056888084772597128252734751760994727218972532594292588114228667527965769537839289109356475143253816310940046855312155889491951195182077618408794588409831075618067965081636764122442291315245650107530460980659572533094873896843404263509916826100291706379498789216723224525134799211575208943086062943785605322431728004383557028374753563227978864674455688556659609700626205225667409069247090204970152785229185790178206185098033391943395106116620239037367186839847209244153673054583836146985991813251767395084339139753029691855147988422188993732719397205641543206867067306521749810236125147949321319813818365140577369658134672734218707505020785681781399339717927704179803691511951535465278605340098480942829099410508698532313045711730969685162125783388849430639196002490210342999237004102033081686311941368138862307892727671484324145939782444077853393504287710223897677256956520292332885199919394026576965036451748652989535516031413467755224803554836029608371430071120033492643888880019357162201964167345326081167553188440166888691882463598956462119177201869806850922136443457191950324375478739656273761889642492366466331687668765328965639252377708766504022862556546173977486127641975174286532798195923511891103917630854076438810671954074173684594606245807916773638029135260818449633476687879053429097289568517837975071068216019887206884850174848065443174740909005169985262507879139385677104084920351416975271299315934897915693189954792599293433510318867911151818503389430442011491311856254412007020331931933116365420866475874817109877437850162818140905087353776961604749687510221688689459287580902535986856456377271544528297651318544741198834443779691553297169993517193597711486251361037772885325173772483893491268549428378018045040914520704391239324124607199085821006476539345654274802505935575388968023550680084296901730920843367231782419038695901468318159982434200551244825312815321684194970633573878735313917941535934939766586464854589623577538194277995424535028707171726177524268341160514620710851124913812356992121269238514926078002330573510033504716381025102034278082942171925234207442300426805432285651387078895761582004210564959072321478793209761092662312899163981198117949753528010757324329364305807204280496573224023053689752650738503499322639716559816538894024486987936370196080712652872583352798898537218304795332695719191528047990813969512438405005468796483155536764951092432337557958502477523358230490354314850797831157126822669713376350786963587681414653935423408016347446657963630454371335461007055314099432473118916614683923428101837919260005365809016281664282558108633529942782840865623556911731511368333822476447580707385160977924574491959861887175782000547567496795660208942889334011072765926357653156245009916988838732042586970235214205167191282217436335819633171917798763952168312635604445614552853763476149459391426248717960770691874556455683711131358442245609071975827839910480397712323277802909644044077222113334370218758823954069036627220577091133869988253879456012491712486824582928025424830825147924786122251368786753888608722525918916807521359820436689140690373482723051180733693822966916442203570020796000184181677809660536128545321407198206978907902008580495018973023579734876974111113330381418653277944851844970610765778747480344657172514074536052017639342752393656189986183611753715190105749679596443999536120226869077792438203296532424785738802448458053764349588090854777112621660865885509755576464493469893133044022581821351933714056526831947860301120290507437672630107292749609363532619767116236649658114654499075080487137971698554011047107187773251472613961117746874303447851482066877075054306595300871122937405555014992390699907889351675522536564418226824412985629818632301526554266427176059423605005954123972135447211058379293468137322789691429167873131860643970969004403521385411971075004540126098319484962752351043361166156022021747475401940527711257267198615771597024851117050141657462099498966818347696205349743779679852171067436936449240941119732710241243492997326334709806272872797288084774799686817232604133872854478710204534167508840848134216178865912685201365409374308061737097081833087129680044869669783085115622647381294504193624227683728206243653938404614952960673573462477961618519827697506997115310052735050576828981682474420073437342924789713554550725575386629770083583219515709738147116669636138110786515924894343177722428842567700249577017719313408627925055164347086240169603409193616115029750413456265474860280839339335966729555592633292210624035341577798394558932608348538865697043510240239983484107387694609300431873516064102444860925897065572220465261426903458103064960835333102343531756848372574343726740967219698182436282524218120740752504921803637263964087711044291208688724479230799433871941999469766874722856587043898420489272278843298171881731399377145235208414388243346635086594838102949582162535896109891802525188416129690691210006008781774179616120402756328777175973844597331938348360428453252058381235462601513171399245731397472170901305460071260612181596318655888612778051052228892343966284183702451244078192977467047205296409217947154549288612189021524230566485369088261786541242172933744872032606648078333140497835473660633857362327143032384366983271087588867357409214715437192868415506036966079429511754005697475582075697708983542837919813525141093068701534308023326199283656566710622491294604926199695851238173315326073360610915789524709338476228591185324861895740453338866716179862028183892658078357596354455931925534527085982340656852508337323599756029497498475564696676016825794261513468001178028912094602265741023431421748713015645907102648508026856200850338153505309899392622824998021516629706726072248086326212303028168790215194914671138406504383053666955649477202963518873677652763961857683930968216677814224072630028515121257859057225931198740556290261400579626424280665100383593541273355675408236987324314300912124610718801406589248873612498247972803344629507887866106806203744148135922916442467646631252115175763433142258649317183492134233819667755927183120266121596461959160102384111207734583019805948153518886766404663209980955818515069033602842286124404799587172195155326585987192564776685493349947578176220571591143376193966512989190432077766995018908011816856667593873636545532819077103885475915964354586145928616451576342931125184957428430782747404712559475362096515507449179005681625458020313058829251402373297345754101327847281294101287127161598748604005433802817368183288046550396483507550332684921596177871229900248217059773248594145785659453420259063946530229104946829472714376422633546582230378553909785049532825575598527942196033266376183471011745002760939902568761435566142969013950008955499876321717465413249969345485370254115967768620719810240080129581250986761436750572371896616105352720891121068689873240036571088808081056750398108302526647190930541579518207447928793785124178151880815517707087256805273844380740296869889648530655865172286143827435668105411820311722192816072989140766770722049873048949625771435299398585563773774752866552319380221511939871771256686959323206160306690020321912282481899518507682188789765768463326189204823026217638845884080055198268631356145462248770250221005963506759440742379982294257273216125736702114375778024693126203364872370963784525648797810406785636325644623727531062559415179717710565127728662147978735122757995580933236810451581703388217294604709098742263182435452877924445803951117645076045016960211058091588468257533952789809708482197644337714289197566081628588753472799764834929770576165376983494414628685345858993318560574263582772828483476092255186297200154572096013508483774619962917873846623540546252169548082686205485793640616293108287958123587764008028546956761764838424195704895968652632230221017745537856095966323643028327126649939294065966369265266692449673004935708638979705004735284845042244215240559603380277723489138723662828800078713953699456685780287459139994258708837115739726404988282941050186039673405004672022679957775218845632087182226131422974774235390230590740149014617029819531309233220365359467793505181532853331214292355614611333787270368028873032332074299167031932039785425639022682729788724048047054267225749022039702848163959872155283499293904365200221621321098788144781787902677883954103394762713981635968486770641583870364156398520040574864263109106100233602737758695848533512092428680269636246503830497877358525628341187343088744293445724617367695649876207755326766608561440493871531883601032945125014202705992570765969761933267741222443513994491123221998266012296298531700729402402645447227125484249011137243929214402689564251706610740721263835719253852717989731002016380968052330185079922680039792012572743019181604881327875456495419030275856022941413777111443428456730082925529302413219258935145369929364740035315342287421899900277007788664524211123960526340308487464141491848732490203361190107924862129330412913073196391565994443060363281893421780598280385146789765637311762961411258395884908993014586849130816337837511225057724155119517136208817687125266908734325719650677545350929379234468181369850692685749073957353199826138060886139634203093244912544940152239461421302363192106327345406308560748514235231455973427576905841034304565413637274013386836542710451231915037684457700821806104491544372765202007546948020035555171491803878283352200310617939891953440434592784517679618749096306942574649008906219979978003861712811042011677572533062632710512629820790270627405190267081960081798284293376934801477171269854594344344094704920574388287513120362830921306675485126751425744803993502970397521672932551289476948032832856195076233412280792283094946697913136475394545675280589365561692189977591610919204756458920597602811835519914870419727341868120895948074334895980442590994961910381451430764069773727043636412637755722111814649342932420977783891263287020067410012803683428447856793420463573492339949921157992609023626998140943277054564417509754404126334524575360630419067289936899153969313183200230292983100899834633355953655184815442698901574119534312076513685521402072907524583336955817461645562241840089253356166396943442467964409627246119215171223479948964609980992497288748689928244679796432479101462715937527510916908609005779984458685824962282855734581173946981664403740527367596305076790107972539168730845801915172576062128281495091046867404575506491996528124574286024136429096936726553427835831708503333474323807185657549625369071465527476642077808855927739029653418063449245066272975949944219649405429123873917889573037133309056960931468898744057923502729255108773876271765061119029561893815006637724384557482307406541034290364044950447269667965699140837753502827409377348385974825570721195314801913821411664644204834245599041299029356398634388802446780137669457531667642045843058536883469427060615152043824314791089297895026550427323377577032684509725198591225993482882402064133401338695603899952989755369794663671056585513403122549152750396971147493618169123715283409900097569805610269658858876733107646210122188348808680634728042961092127965116959016660095761823908257966370087740890174101819050009818711722434046764813986437246545043832550428693806385320529055437943816807496867348786632212609681990156709936296411125894770696372883667939579467053330431664787288735682564049631690251006004522984087575381433017526799247964385428814040866917345929983994034971779950925825827610843206985732597540184986622289252158702372852211232929099620271843975007710715760423620315986541658188606296289191971409840493777991853847260277047657933591736662037703921742989658703063493124240546637121058150110714431505269279016212504952546923049565533584760007016690560696462943700850912503353714158961838709465755747357774762774288685377068688672255064563242523755411024430846137533199424914142917676970242873342286640042051072725037032127657035373223456919729388199254249825108418143158997131571445853562685784017143227719039618205033323262944520389214470917600887387186536081237913557569831873629940938859604336648752205181866666242323312394124865710185088843760792071939073038984605929123771633766605418536803837384631131388247976702926478783250410164474382283928115511624567425186088744354030194782362857424473673760268464404975643155136101805334643735684317495011789522392301043697553548074431600791012481299856191779864618671958028827580445174855957586133308759131569706421448977342263898589780898919975485524266066476254059476072259056636757766814443866950065606649773229831092188121389245570102153174122311486979177552414518711133494401562983947807072886530744690147927947109629712558765805186348573811056075199996557784199494675155051538506724983791550086311624649081669433235949555533486849810801884406872738304210705032782634642493546545151146216210254732271597884662032833254223771613292076315235476886279563653185077736762916597513070861872644787725741264928463741031045895230912430618824560125722484565749125369275666565409817202852516415922568876018524202502132024098038129464702605808369933693340971702400367294112326891676217826524695902808206176475678366050334291369641826019364279464726591041872701297485931468758132821376658815545891698547967755384352189310966194120694385793365849579350568371891787213191559992224129834413612552359621918720159430550252193254245002049068339409699607804257507244099233814760595084111021069155100798137610475664403159054039812044237475258911859719813466177715438585078541843299026754184590418154054989074258185079723784331486712735798443636069385171418037453687852750705610342588733963711026578744842138839058561053468066974089768298237277150835597889099004681020375888561134995640216575017058615399560311543564248327445711001795654728569488992595214925159889105648084330872818134232049233634853961085919468930933283099308466026288600783775798687530112430672299429942444048624999276713346007610723010663843393643801050880141039979334512700036741076193082995250744900691180007865209546175762319680546843031375828819209722943500449454593512059312924779853061994268958527295232193738101326322418968932029929462207759698999362629081235825808070338280380969750625494937053570937945637236920343675811865061691199766488803820234360493779195053339211678842089031811521346895646517612411164348819591860259159015954022614440806098182932666925530130300007221504083346461327916169807805746264109923054133374186000417320859728664741542267734610480816296064577544023572812664253418960829447275312237329190952721975934405754888152882613812221257031858829789070815208747141589674267822662559732510575582391110926923719041928762789776252453752773099809905616117088394455929988159727327542389708800217949227673858479532011550311355332601120208369873069548516668042964596064396571207210038900451025267454350826036289669037495605940112392986076168263801218915052025957291615500683229413525653834400095377403197575930770805671181493421590297724191427197558996548183909724289534861361001022799707178398066935504094018571172662091692564636056191676464364973877774360767581914008764469187266959363637836600500551295549953842060553052087421371342543444162183317469283756638188463170371596937274072281062526071500604939398829927013353278150336899163092163722213454195431866807546432751804955051454126397797675504908443864998075019605814192318929759217561841106108734576803668063877269962827175536265883681313761816694135836930768798360202868231539292213605702694934074535736336642613829225360727537866214852998727056758254363281281922210229628419063105285615154854537125096207719343342968598959069257232926240251426379749688797256251077325396909141719145709763666783105400578721160418838202092101650759687024769262134677096785557679810595425748204745918279879866507431629359883251534046445626484024757611143059791093968792084519257173284874813447379732056997230788383476906025121152500872663038453831109300411048491416561400015314244067705999346901520140916345616468174321959194199592928962749127344354073999521959360923978827585466963513899426442220770673771540875342335148307560002360169652519437458371871708890097215075369249263325215916741787545392923430884792200563728521186862259412610607690289758451889377166631730039721156929985529198315364652803159830651287909819094766379880537600343609600853251602282002640477006794936735387776260261939580754845672059935914764305048585538326056843233215138130655946755366041231712038592044206186055395828062206250154383459140071015586229217966389234675701921649518052617828237445253590285167836438940938516834247337278085068946675477482468115568450134916962563731110423878756588574781343104513615320817712317118643556084909413658818657137168247251386305511861762828985179181354602146442789575344321811621226452228734441966931725789947889124354344143741634150810701274973693029603141561801164561421699996806979835112935607354196549723909181631195966134472544016899946224829239823326797146369312592282699991315341534675175681324526498398750617447998232342739545072820033560034374956055042212431807774216900835102260228249116347687851433458080944034359397193025400344543094237103746688541138441658458244771243278234588330679520226262291377308277383641330820691794067890972419173460272228838248610513714123975189495090992859871859330882697632872018307956402944216015386708597171074916655961824646648717355862999753267730686893945369219721181216946111163459005993192980948218426639042247275171170128551044831027538389566891783068876790926104808349156683625848173052649930646735136075282459498727717380674297246520192309822844541548667884897706572074572320074234482926959855175251022656260914835751197124292697886056009196268536114611820127727062910520031764942555563043539825088984544852426118355405525106099366364949774545922934667749700484309154923822929424060636335774588768657162466338796796481437389442114035526689315116931993788434352536374894328333745506419949857198380187074998292453854987976444779065437526019359804269384916809249655328399493789180204974291721059778093235855347078930741040463028457171973094261369604583224496083249035330149028645930900889405585471195929638287358292866973163520638837868602372977176981527359030969327999000587163038893819376068023719062358947746876687968917365383630685922247556689936192423519809486070906335099996561503321231866451021893146601524882717332470823035733915749662571032561322806999707169622399711541552235595712345929149361602423113179417236397521706553349660898324385623698462288294582165302074463297150279413318445459948828680006925294243676340741178700534933649960025367501881533505391707404707946737780724577047635640182285156445315213988871723055619107004674656726360795074940850570789123450508065394030978616550423538560797208638073972124257683526783542130544399027602509755481701133361393226323992469263916322170706095263564294175499815088219773446594162061223908243223182563327540400371926386289563714057799331931011730756353729498556638705640159814052890946611055516756800987323100947572746942661446025563992404755297535799241489006847490107325613808550735218102001459290270196106856679910507737192515253223551584352882881118166176451409812581359304825923895788276010428380992774315857936365822744130357690137345107097477806707209971870051263300495468771249659730009679741017884140002942336341725167574424328671786092042912048805122238309689753727667205816541687919954613697190537406071920067965769419072387568096808489247195118691488358294980482876492533924765657703379161827326062490099089912298866807471761518433860050061141785125369249956621730833623662588107861397887561482833253261541353915741375910208435361845970762814181808385925453071855199849748338656698228693888667432534267321909989416569409200977481241205510908304631889633442490118604874405021858926830868643041361283777706403187617276329727246246103204747322049319522652831083636984900296338816277976274807450599993870214050024974673491481774860892524913645512958746418085039496292543681193071753441089043327385357095127338260636832990969874131159182804325776115167985605931046369984995359753554242472190660620258141451550954141947076632245002889621601544024085976930983965829513500674062273062626458798817943272469474544427578171681226804925837038861921529968950572819983097684491641096110210010641790115286599557969086525560039342518494128193512048970358026477928824293991221452202907055759927221931529695864732501917327689849063193860592893294489335912424728406988938166737376736203540881735636288469527530149899508735391500596508609205823799349473492972898382633965630344345222427749186949747162452249558832912107766672975431604072955824136372980585310046237969470481989956456256856975979886662281438837990530320475945330294661139392201236629944133959360077129817338495972890011439671003681692817495413887814587199565580411081731093051323690754346011906420675711022319081230466722530714332661497834724254303973190315455414572207656443132360225596125907449287833450463742995474789941131001712383481785585907462987405952279788482845810048713818478158735366889961998806580954633360080700030625191008936363651292568018096207539860807791280936496589204325860148268626032076335702176974993821337631906128523260817667936571097370225573000981126481681961496453849198154217939894703937620282435434765964156300270204204088556412822176632802868908928545710159509274476356695721589576492146724760141211716002178122314525996341520909231528379769938653263958799390239272857160471977810937564467447358133417154002440701596156762236030674428524238971905227763732131225308061434369399847144507431902060805710478432471918020920645600039995127000973078326691444191603483643406433857474170246970227376553754950414114424441662766626061815254729670415416287012091482692871211569754108932570404711663887992281202568866534497260837480856583243082111726218750551574842053640933282715238863298838209779355289786556987712284941778153679721785053811777588550003431098077836857026222386167429935574409756272135161318747920441710310180514973422686454332190195923923549768717852376984120321643085020075156575720865883360079064304807291237519320862457841574852764473334659713631083639608330806170557041322228112166968783359290788525625101185910862169151005078940018057162401406685841645878757251605519108620934650836748567902236092333513918840184074100180976941669415297845064150552075746467452069896346571278252300961029416304703670939013367366314443481005255657578453649155384537952416117002834818422429188415855877796935405199674739363169346307160863933855522176567881404164242816600161632761652838456673649873946738518546284544417295065161636373500918736304101148894550959238328181516623574509630633887507186225459736845357908519539927097441091477993350884429786931784201496489778788716051930942617226168179596150812623670199920379609964774194395678673666438013533254153234622372055857168812187692266796772280819264908498152934506969591069932480831951155365186045638323347830082501407709873181306757434281766855622034617702007340614730916598981693630508263407089879332590923034867429289991101988817554734038739600368976526612268669617629975649246572887324075746048687259194522747343845509285895445413332295245993085852629382432551578223140566912899308208606135228953371841278079867856317911718008954629207032195067463459779666401608891700969467871909825400281717083485873003749703781116253698457363721741426982734526243882171098681867994961709915257619615277797378054728558602920549456803555535871980771375224471262118348133223465581168443557676696562600826574278966015027787188454034300162977337233813001636222188359199329621153632518050710793502736238163643021492049441128554491561730829597786658124081975227811862538145174370230397215328565428935778818264688474182554465899441976219514343867179517110603274998813713609017099632069456087912297936244037029853232800563086456889590076388727890686526170810064050805898940527166982851989726944564614235608044241188289998792733185470190088890837219210993649988223130420988316554637243850542471225400789819918088302315565940597254817442782061174940939516686753226741662953897937015960300266159297332722868576643641340530232295012137762166799092697642841479131830711736932907082046642394706786587165916339578611374356653294203594440277828272812019401189994854494849393320685566181605717161145244454157440886218169420254064739366074322050904939017840120341723261515969727415338797910776022331089681619354472235791457415836056193593653272757908938585942603578997924904175124159466407243417031787967905502100810069656666587752528468820775781797717974450545078251735104333977768555937884533397826820794229264247903500085789483222845834215695343314719721283287096293538882310653056474349843924728485585488937594567705222345973914923211868266129197663608378236482385461215646553371260361285812109184988497671948397205151897429266637273457155316238281871441746124371052324271481880612055419315642742360193986952231116857064517946340815576738772670990519160328050471006650655040743503629695063168257807205482603291012154829438680200344192520993751486023706460828833860109209618139683756482067459946626897667259640290224556589512050755940120586017724912020341440496656250762413591026291855484431540239318881440858446359836716754441265863154097670107371073259740371914643316674862918767508149924728793435961767660334080370314255571510832348599838515594294860883090658979574254594179700542810513484232257944552076213343794823609281761062480084163415432838847698722579489306650466409475268374453912820796833118226143452974993550931537269529110452880264395035752437679580787116027432810329018581983305074222347374819310155213788265778488786647291833574217751199665943874853860571611762642531845957951428347234753671434997621723791001309524808143411709222422389094346369937761206975262261492539287723719680400120785274020070260878820565322571837598253451277008289942115602064667424772536065533770611363307082517625278728450608320097712683942699009140440464949002239393298863666279568151867672919415139573551118948346388538254779708746586539847163168577451543062242130258950441526153952626476315551392166082537758549333970108364226548720458831575313570801932727890536627075642425243312763445370570877041353790986316155949247683751758691186541504503648826069666128099810901859243900597748377466155305396948660780595576810615965254192884107933989647828411167269584035181311374240602421170769596242470598987294119446108297876691780097132249426911682684662596856709044414615150179896205646171869105086811139353951787372197004342743582332645488280963659977229931025281215403211109441389518906849432196632435447728294513154195869673058731703804900171573960614763510093210653482151129415560098148839824152855394349448906864923550705415169195403943048585777929661523012642236813400152006516295480921832556604481456063894311448102371916008802023647636101540611348262815701861010920980784006295573216039820384341908809317138222393325659090676348477222598118927373643040866732700137680815958424966420557511318716073643127057211490665540092064171679644397007910488655743295340907064962683129822030089342267158325927966755145645284521488692143439656835268149305453062841381392848803336359976302338326827931199098973595601313933886029863922021572733437085389596444430850667125909973148543401897545397978505006118610548694733611263647785241228576088567948604669974875975713928377210426975928374029071502665223100064076244401245244041086319380198230600997102506174581534189652099888088660506745205526205971872443092257531669501459284867942717285725580685887948554577087713051561884669273446977662276583711408937629836716846746798799055382686353524447933622516776943485920642284170830304937968820581684191716857543294781135067190292785094432002250105453459383722464584999841903445845787303092836379540579223295548635026251392907760859168136049567176937130507336268728495837554219839616753028244275476570669233564671377753510220671310721802408638406744327561018294014916004060483090392333714308716222123416504819827011282233789088931899311938975269975996720513834551512149351511784499368881983574198178217816127034050494190034764727592864471651998819057566174828855863345748823369886195307674643980397251138710116237109871970081093782946964665495845952089838306721235760993820372049800619573070572918529694101136301634851331195870902773352430628820042828213614097341741646693704909405324323154143749609491481049020376595141957679114516089769162208605935392414133936455936410335106374180873792236067652297675469408397000975884987301152072566149627845128845824203354873559539943139777793686200425406145454951116154783012179878536866374125943930173666281876395044750825565893418528472470623060899219135361820464179137045873349558458632391820600991719004843874300055450856203984048545549516867650002827777287971829617448313530279264387573422036413256662077394438660453310019718555760736842880500061802311436963469313784007832458046185677500041135507883576486568481356797498441239941390619566711818760963856031892000161137778041932296755455647358776198130702615895419890388624594331425948484746748016574604215315761301919736907606042503150210490774029089892348811043362602477270936242114512691697693646178809595365694759773072595951410470743467660642689022709255523443562885955959093080386425498198295399199695173683226579926020986744707828970274116777735029839017079899692234533895297569619017196134040796663303441643491559569881143252451365592897641131732897697623447341982430534304379247777481017725914245554012792012459267330556652559772778526962205755146060301017399010979907071205118317746054666657745823816835302280690723306596200558222318908541377208439469877132097159351661541311966155735889038729239713562421149284151466364797402594266319321270742968358219758453415169176636587060801435123802059061327102405807580978993141393912981501546668044959020679431280693671392300850385784520991906736559249625774790411369097411226456524252946374707863739453550330484638949096511153383769132398633747802956208197844953148345161750466802106098468839212559324785637512991890926301850713789374479339939471267467541754542878941656821106465124740909252021741138558321360267145000551483002180127292833069517914787817624970624314562375442285501223429825302112272573123520149393115609229921715004506771247275577609891474580178292982729475595252886555320159641695219175809195300554928525084604755014026882503740709703644158757065865809522289984470229752615596758111211569481358474436291213745910730248192800537804776342640814184657133368432925540148843564498648180314932335834569380886387268582881785358773325505539045611219373838560545962233779895876349561110161897667469970373913039126471795578669353606835795444614062309222488825124105933067878839285675256103604400848814911742072224530529800133467011188345995277974161011190956371425409567740540548422087823579963825423178589983948931405521163535421880549687300964148957806711458750124369393680108062368182313870072348927099420049230205066546984803226202904076959009295503526893790193511286955336512704819402961499679853010308302746428851425001339800165302388191326343695362666708662474458878840384075113990445399899605556377606437746942128109625412034297916466076671626627332068271117223625088073709814584380727524262475578359096472570436197195992110963427925811676187979723123407572037545461608296849763951995671201561321060230912384291138872283858230951446302481509676557885684694153516513746131922792762970931271169238670630781173846361200628154140266483198309503546862608203202561853019316026582335779510772295939534178462153294779967125841317939235248962625855099893240784196336681812516412846568483837276189444085708038326547176303486238478129276111519415042271823710968858639876029464611453287241930447954352481233938744783263895212195204953755138695060339401405273253634012467518294438193541984818099798386930740824187947870481969239443683516979790957290312454385998131904944271203586680020398620288121842323121854743879725634724423980168112930463368376836066482708369978518099973248654172829883081452018863565930425276497815088490649981646363423389702036818949839330589601985697602522470447348007853653955956341369604346048474160710274652332335711503597425818277467090342133501592834051293045369118639293118397879206483335895912632356068702810999840132927684042455399766530343935170505503586882309701246750294841991503531559116798523236775757743558760810364927973216970281701773886092193445920854902001952374856591110783948856380768955076206576508280772786294568197597242535143142860944869336136006988385949188376389040467182571401917517558815519165239958778285535152003108072538702917520959265823189785118378271952508353328082439062670068491049194955934264183243160184988921160915695235045156515394882790816772526548809509112563802000616144544721193374543953986866818925183938410489341683819045154436637964600567832011660698922889487618526777281838225257412971364674207803100586464525284139654566295611270326920167651262702679215425965661313481213978233410499132186166859363901337231386748906879095103448846958030775614373260831027448935348533173658729857459707611139141200179284513603939048503205592529319180685807351937650967277403730002986750728420355708331799466811163513250101159572714955761840233393802892265068675999670765815750469163611323627374234757542872192414203015550488008615558091100818342328276547732061983343164370753795677313555827523373519261575430077859606384723697759934555711770165791452749358271177316854728523123548515171873948545105287669681022612367594353576593485679425956888051898230750748223387567910553710811474539878254499786675923800745320793799963193210171301451326051231366311067236173923588583657905567788983050700293002697965138855826195920708486812799020515667550875569648671508959806180995407346142730403752749389343918245338981198360819428295046886950260044876985557299865062448340038106115694588481591612700699281184741497314823071624225393849139946538142177917690377346683232159386916507883481249900354860770783025454365292010251794718432215987058551803865843725984319953032063207717015191800108912379676004634371076095175663081057952730756283800871613919166191895826360704721996805792980850176619536680370052440182196091460458139988429526424671008866212439498699752276247728817140312137112372860375594342222063884478549679431060932817085853603480255440979252678747254154477595697403112779021399761182821333884136692004141589832846888100041173827684931101172520075613139377995541597402783507730212435253216209756510707940557605182542703164494642551393781762347668523359516136863989468513944888304413412863624203723288730899791997576183270549532470504181704161583705464565818631949623470105846070131938685750659432211472996957691249110869420222857005339702204859938137485918550052171389339304088606116541903489539367860455854547707116114459305116973716116435728748917884221777465383751438596479924443199167293965506047335657491763839430798865420077905225179912436447315143856149866781909121507675812488500542970555353933061730665118359078002803951260800895527495148658917875167688101162953711076110633079131824690536478913200994521825457946873374101300724321554616817177336195813299553024051552518832807474706806079394503729870512920027541306211583920559530776484858912095047632179764059493038697274769653258541741339714987489046650813511635037295382736662469480513438192309821161393800795693355633855064230925378095708302053258346086212770644891050366773003100205879094784105004990899553931817282361670526241186696573437735921029129025992152779753004777923238216600461850886838994729211611294596883298964375530810517453342585913023217294378033204598094346261632676201122407492877708367659766933976177940743841240015737824651596622706030554029069495614487491166692671305812189125848792557596254427765200432525942906865094966033780037281155007929770943334921079089702818429842357547090647917712967455097298485095030110459067914628474567216516095885342237752079724873608873145774540110975099525957288502501880686830266371235875827977054674438569670840912017020947682685183280959099267351478859908333018014699169633756581382038452945486834028417790791742553965024234721312222249673425899290696003034729760264902506416657458927338050264510287381591959664663813754168553395618770236075686059810699385632256087379039132844004750047399736674922645507123381165257593323007309860989783494948343991710436167119665473302291645580227140785184413527471006322064181235158720230068044443971370172550508179464278615040878159320153807425265349925958959100314770414181352876633934047369145734930904756346775169765647040762446733274236929234608406260158409761126141665296853326742478872659121918844486548704550366967944795718775321172872009718602539977225167603721758699403090490182834649848087417417495024344349477878004700405324527326224159548186611472533356832637834413734466751899927915558496414157353752408352012039918645502446686778242720822644565714374160799838679728513266324926183314032154331295914984622363888217728678350774209656159051551381283427571380915173341639936710068558937857145261326462918587704379180331410309694722829517991770397365792797098578079809223334486445218975830724242649861975991456859605869333205645713833248331675036579057925123403741588402547194206262453991546258530730040357143466579259939930713173904905545598963726113393719118719483981844659568835388669674143266693828408985583572023441143091884513748358920639560504902700422001841314381921436048477647376763377892150693555434699480311987455102317112483320804699445801503187310131071659453383763512249168187260740767647764217104821245461555716762069624174995700294609818894123382870867245130523759750519176571311578873216142503853885763876934443805215690898977871315597222315246478841050369100104952248785702956239533905348996833485598609133903859818935215109097866495239116471234146513271959742768063427811403170573419247613584979609393792639324807648549882470413374869025346610370718822663284583533591182383118261150254083374439432226305634347378741275149923251202756925325787117745044784154340025003476295190453119852433172348442348545941355787102563353268160192789436382583881037936549142466298450535674054328336437800080568113203330403249933648176788574415162101639976302941526031250043697062218826175737084730262288202547148123156802395012241513460753083504249410798285669861739647716001028644601481902040719836402898233364528106191354015544616609951563264998951197888576278488011103200716107234662777594897361399604983854518447629732946215278289710409090021060885038255895649607093315048369224128833907368255501571489881986509404964228418934856849794153206143152889821111596235650070085227594425858459474577032137835173877939377192368632847266876172723600637769037316922940254569325697444296000224031207563277181869290524029724226357620984407123985878797411893911483391559449415321213069762012868538356849234645684000462983502164241496793987275499030235798345410895742211479500524111989902539034664119720957073105507568300914092454413912164645934538434852969657700985008238341379959918430854752138594849256421509004057959198266554473359810956807764358159197184711218516613407583132385287119046841036141375093754434742612093717091795801920028802941349235228948741059186327468636887086252860265984492562911038173162834130093663598201057633723396234927261283286276874926968786977480948135926772416699809617553735099254905954589496997586723978925611955941269880846585178582743436907675603339053416384455094919941399887903343375264241138907056275624297958083914499980651244815749931853568552821491237529630479383309373137870871297761280496797798796937481136439987487758337704105263227166023209883589998196327627965317070293524027974552345423843534290212796655604478835953965712855710175363612044637803447470740874675425422846893678674856390754603116374739534293754613849415492584448614162217102135582199769102357066651028759899122182208435588584643268375379765811441994355657526320919171257752918983112502761221279768036716021499527453049737774378510171857021766088798408852943426624858732471536652874068708772550288829118031081834898062321482796427872993558154368652032444015622502177562685491066000444301648919098656938931305998868591411883913635547794706868491527930696329338509283255711563994162075611550234209616535122961208705005149549276915338946079785133258219199533098280207364111344169943130474809934540512707443247536641327227248335402403468625286566935723022716785320107660901639729827780067002546775131646985111746476398440014294136716469150449796493114182909270268036840978774590661990287759578741112290984489214258849577175315009444778975869386378532007435591570972994875377227295585905735772505278233287594168698131344436467016572088952803958343105977051458869268444796799053940923621052548245933690811477834844829119044019315559526164710084526344761366646858566096874421068043316353898549127976829329236567615737311879008553565754046273972991345704546392465886318639854415190098031257351379980299785247183549054227944310551888304248388369129735159680901967508551033679016067299862015576788649362740236240406176441809877279726788923560005549795617549976103121796058678523998687054674871020259240222287624223883836718610383139627841733618002532920051138303423004576437473889174801875773620266305423593465385390201694379706665194455429000869615999294603132913475505231923582977620868389247963319659801593080893652005856670469258022087923731271231110566871787274459294381323407066875159355625759412214901959876233927168904751397104957693946368662890960203928997196067650323212922590577489046274795113842594557305361444910862401233871326139397727792511209304362439902190465576383969746876030125417946454188289466451807690241465368182547545462964056805566819617725494608540723745770580654278613177586565308210996928107186948417981491186654015861929299952581349332627784520835797561805185542469544158997318703376895444248102404051769371974452794616960983825979348229208136048095266493443516906922233840852733218215754687339070549780868199691096062012896927891163824432139495840869799665914605375779331003863087163820212547451334015879036039257686988190976714974583529050208348363354534562600100985344094390072533737681223379091969643028485616066748638608340937488429763077433030753805930853658719200925949089443685048090960080699365284582570417221951548358359338042729085733265127634550405774163420351870054771161039742709610685970497730374934100811339415333491560595740100530075718196830533619894224237669547377648629592175399182518135741633629748107151807951235345197426312390619143308526406666770363691912767750926067584504089310309661265333962345764663917487041169452884202035166864676375341424613064736496519662404198806742559537438836894230345206026676436451048692258703577721294422391314280471921705602757210329331920418286237852882799817220907049337746094430504768041436285863185650205051951151041657578530308810877590084495439321034578206297121261898283238176266470332345779526279275923542097951218340912940499726706728624001227706319284923430724394575339801692469539549145075729156187086566378504669709431604534321918166242696740920516380646631190774852885024229865575553428047939783673349012926043176274294329776323232691136181884034063520107490666994528676249384002351913657332801976461961782086467225352922166757277757160733531108826802223439577585721749437127773230659552292666720553010308322077730674063617571872558363694469341011841805686659314992715467249894242189469241466745530573646036604393857035870563557129156933423441953532335258639716226839254876408656228478029582842773220321970220611152844119008474350943302966165039775150421958783558949158322034268207629109934622574569672797410467368418702095057233076483605794157554549545816918394487687929978106995230649787757197617811914525450858192352241002571396850497580884367144873413709455018919430462430985571628917890550738630003713685280574172516796059111282534449816005427556528833728837593356544071394193081904628957655504295698336138697341694762812646424358625716653629276458764780806064211231565518552780627095837209053077491805376525974396685314853190722994746903082525602942895763291598862849678755164655987435986957605151631742667094818588083177124388097028620634149652389663759721342242560311047241733282304424478573564975428714466241412859555078056556243365891803290122270274816350757317140578360991562695732107099082639071768147043592198381390716580049713280343299739692561370711028136371133270763514226490998815024986273231015848807513167405457756207564971882695746209218776063941873779213365394767021918043723478964919667815306456467634535085051096017676730436980853253953751814648220960639011616431635582398989035502786738047649852651830251645724867374837718638736637237133000360652197219330059766385310559701743009979131112052840212788047426983828274230090799575887810105376458327053297846994176521481310354660975628850191414702503613286109463237507495196907918173634478935683046126327567783043449553409552715167582139890369920265890724030232817205310759341919496689256549781103951317569206944580527379351772877865114881307506015488291295998510289562744775099459747651122123910056876932200451709918790773755501474800011785745205939644993299272300404379557548796980902040912549676384336003043840017761473768355026439074977782285993429488457389829067207025892641481082344941591405803703904955305442586257889706769098965498815246381907604415013967101394663008189665056960722594647691611871801329246552927765870135001140986957315076016421669247752415909337028598538932639065000834543150909499433137676000775981909772133639128211118849862545926666658060803206015910816305838389419529926795429781807838727314076482699549223580578910555185567876817828816831683477156756932343314201557055721321278686198368608932656074647809059701772111618036699132465559017034956246902194769984605076317040400781250715017290000155739841180638914997612869058858670384922661015695910499909359140241585143864577080791651469379053399283847553722416274429163690783247951323253783791022600390842866364871856755401561823053806812595719140748938543759360983791587725641882850582447513193144984527524239513154197343988429837244055803515713702402352710927080051139242957013982725994874571689290107125640190709482911223277202317043398880448388535428212704001201519091522114291226746588398815780219597365859471456165385280818009877731449211981525767172559522820194776406924569764182956105123393363594831114833254598684423129092838034885890360866249053770657078811745477689315786123922208894461158207625903795746727770385599305972690302029776410266415072943451546447829115559575614714090773190131762043537340921689962564508096275731912365609549736172278315937138347754528866337391699098098204999601930594676054508047430178157834965792495274246957145596716579756115229832168016163964280954607887368130907883860976273079692170521626129477159530231147035398705260839938118240914367952388774181540784419158717830748933097941656895707022221200814769661068777045856778191360151155796644029555840251753751952250686495181058398592102464904240233924651166582549576432530390810232243576081315191282976364010057275745000891124573510837877344126467178393477708288706338450653696672305743592756156525426639497142005511449294571227565147265893395349268026973119985441065371515477250769372610857116055124814910462466015291203331371385269572659847462088653571104579832448110328328080473713761284774530728904747247968343364262114231026961971345266028902663492017816070260920853218255325911519732130787607011791317354372094244533507772227010645684241162275263503106587400189558835816028934246516284330677528153316402579158363146289285736907277713904717275693713911955282224805508820683078913032882105516952381232475836046812925587902260454782766303136671295367038849003841066452823933517590576080930445606699520833077869541563302287738939784053197017575214177054051900762940282857320769369964314337617048437270402380920419772332275323634538773201319047589704155186945919866046958707445571758457042853801152085004622226580664406613343364041309492807766893775412451854996307315062759366607501317951751798948899160539187319070544646693265218274684423155810516326178259738049833460307731752837615763335917315043067920588912772098144063306707407697377004845388190502569367733955844979666270541250058084976118954158104156065513994708619500411070678367402247081264648348777502382989024041919970934420338860299370739540695027865396439489451960714383981385637274175935350095973177285809068725187897337238215682310874261843821025598379360582730678781082680632345722947039912233228387924717863859211910512627890254847619921081436168381401056731114688477231099675485838419027459996952719706533433033376786842813340611303940738642916320264926791097728666457570344344118831645746698153856586610932597931626431282102465515812559292917190257143749290001109254672441426869035234080414449396316148459695357674743159669895614219779956921802147578390942001400942004739103614614057665760811976274711953922549791976256796341897529403473297227003278971026457126682821127631751403001948334904897819676329241544956728161370929961244688490673731940398372970189526783149146729745538124458272374038777963047179311782286595799950136069641486429711443018188623705390864185677050830590601744447123845972195378981752058401406200410092385824536112846349581199259343527842285391924036439806923538168029067044483576318747331882816977257322192778676245445077534945312219316200604025204445279490660353266999255377065433504358028852681555372879064447974783530597643055668030251503493996149062024493588287289381941883533603138991112592131867822756032069226932767319498336580053245993776626609504954390201431090137918922425366800727586685030469910780259985515116232792472246890452225590849181851340254450894182794345096149561474262114586768832423013141680778427058623597831641838064255747482096174097327293995379996527150393233098364336330125006064966984708708907240395518379042452210698385380339663952367613783971941077171249292565608313484935724585086947995437598497000895212228208947874450809482014288898129441554739987126079014979749879474625306997493889428044391909430921848296643708063296483983730256840716510848534513155481852745569655383352385943833550502662625793804262847027803037227992591618281117924764757985430924168829036546457963917417012355975015086120956390409417777970883229478538616698119442019747422614992236577919859420911576837433973895638064620671291083729424203958872858686278168319962853111732811620541307932014970240586903420903527636714974270944347472299686928792478512559279104211964705532091019792356933946329839017300484023687481578171126515788180146471994131218942141525337877993758919391370827195887524108952930823649260329088599992253441038095177917562908987901782023912606406120160035641405155783870144665920088109313861709583436841066969246269054205126771230582268658267700942165322121104934443452789576204505686552174662074316065512533478939207787212116756727129475347279823448173239735683509422083931904194743330913045618685551200785347166689986655233760060643191440721326898668596753981267505916061875890119547072644590689239225226209250885015555021369588487041016218499416857786819067437481267648228140422088607873382350393570666766964419331230858541111148354025959893746330531557848074786313742531735113426439860584105590545599813654696979027242092946155803336924390754564307157785386174891132659119248868777430554222986269301026215510557262265505595932117211622173478233133446962965494863348890741298604294801435172630155758196141237208279280603484656599777621350710930281795820112612671509406200010554159876832738989270972871371163200960880556559391072064799370768392474434122299786521852597438784515447509091218993227550148234387534786875345784970445953737568263067727212651869260204089268495009338397932388247488459745191447478626724283632455557606710437480338062044318385351486658679802920578067053035387901875345048025168801810890490283128261612004308087556783673457394463761103441511133424083387388642855794354254364735927746593148066335415829911737558591160327434729235349458495097248729905935604725921574354367034943059382650415273302378081854798010444271956716716446285530528946783135594304430383219781018899184289164170947256639459322076825916278634493693766997134928121734144671325045155056325840317344600421979430510054549869764722802485103636011206277784085270457826655149189187766779521954362022806110336226244539442818858221741338096719959858606458620180256347959686438245923504149008619327104369491394101621060454009097807868160245343082639879666460165480162069461163907777082767834722674415169717489086222640645469103205639136059220455997105586679920623421416256783358853614405882111972339929037033424507193486592783883396443338360121414959641953894832393573952978966212815287880913514725220838484452982624691950221422874294741176193401854811415365644617677636129034817370171601968167520866807456544121880158202731735145992709783535162049826794415099510149403709668399403212175436874036811241486966683004640479709237938234473940705017001197196024132141729190891569389121056675493099206444141431678309805246334332715996814727383549812577812422557756700860795088446963858066459084892981815858263931345086873601907681098016943122020744446016167449122663475402503860060534344296685932859031565140431684562226209259235070105277640347053038104987429278186126951870694209436685162418927685059978151515999079707919599841386798507341578126140857873600154174586821263754789387323018205959274538762972847405271217015567012875092657289243052697066720446236596427265003452834522674541456252045977432013454923551219540231443869849010894162972045958491864916765156955143070915182474599831532541118716690733847153507571130210273221671186434678219775966952658799811502635194273503021461083159884027724732385913162905174408233491308352584719426918832439215697633432828878069492350051936215040165438844820391971775596678669778992252446714759407536203273276337485690413997927143274705046136066636419498814640882214701470275774537065575480419296652541578878992740121100505176874286651717363224683894681842218739276712738222228110304201587762314798415116306808628690055844855485495093949761312510465591229648295041027625928138448895894864170131910666448811927479125735952480842821361484345741510323951295794182897848045140686613786201654170270858869365517302231656880462089593867096092582566159540898356942220582700646763880893399030161696580797041284719356744984952707535295825518374712247202317823140363210864845222309761661778847185075585351993102588543112506461589369306895839971185626941777777703610409456281999653948155628936086333713823760799851737076344336559079731207609409209705828106340467876381153887720531407389221891291320737392133844219567320371642115890096148522057701571972558532349532620564769702969442346316809350495529099012478441548633958993615344014131145711338354358615128629777611899035521992365461451205541234230154335867639960355123664881683808935859285985227781944272881080768186180327932764049139000637983987799008703826503768095927607515981347810992540024435177976670870079471108013749199868925573727602642801957919707833978375134179622146267954706624594767574773880936202437196989729119981593814128531604256910707977216728489985694166290284613418174577415581214500449679260893265935696752035338926624089557128123395366555166658094123173440093861217392951028974199308139532282275009724532790229687385223935301853126283613441638768213963977793453831495650434260630482070428648308643199528692594155976246387227707514373897836163333574860189475976420932545625129991139313542206146877137898759162224918349583576756630263122773573655733433191295598192201424717389680268242113221844312829178836940180290347355778866335473565336395000823318247635726611397546368280561387995605150371450523537164698928535107579215733455778276027674151121678492161669355990355581892285590231387067094167794572987154884541438711393214485208160506508715658209653886506552447019866322191224502290608724412054701233506635028912856750556099911684106822677634856250166963317645585114331020536292675552723892618734492956080987192059537128222214962709263958879794016491279212770875793084864233698605583878229654124966257266469954821089755555866566606913913952437893051711785408466735427862567700524006694242371457129020540945037853367368047042810477782882441977722675860340589494183957331329503575990422584589241087254207914876123283829821386307636603655958349937175894712027645192095730357183516481859058892594222052690609278355285357721707375923902804040602799048324120757812077071533392703905624502814845587305174415426644299787850178805049093978094953868065038375265646946974104528054468771530292087953742876737090084687089775759619119595213948163744342322544518272926272662481619092024641523427414036072640376576544284171901643772072447919671031979830006260166499044549252813586467653674994794617982096735090774477925645835914934901264977994834217508621465517733717186127272736306939412098917774149506544260973284930808766945064880148322124191074789970052674798416318849954529708481782720195405336344493370221424224317247504840884505875843476430611885520080656693831057150783378024886339344840381840742655192159451058100468297701293948573248448066825463781071261511168861837095204837927350614935729159353555981742298090994360526643251253847671556091649428494061909029012823803932653970303140170980983695820704701094115014898680194752785581483104606624108692689364675029885876237769497395666893162079802561143148102210557207391368391798450002839066972821277456384053168755211232458236873095962965401985499187457615187319248000498144678121295831413684548318639019048857343737617896229138436074137613120447917248697232833896859584421219780971933186737888106739131876238869905911350541326876125302602669746324953142687486884243450909743836505664276928952779870691802485708966130531165658826402998365520310841379876913744342501658864944543018102853291275246239492632532845987384496522933500255433745485700709665907171724789888080999628852635115648449321881300814505153243764044787262443566546132032157391283244601664936943203956257269391837907888914007582683748607596965821908278245123055347509096296545258858961862395031607065939332995034701318504573076250991317326368301930773393472461573047657024364951613741329587536360771173061279514945736879950111719343378403300085589079775531306430140820592484877697933395474166044654740679081256424074538139801472822411467518264659945864025529743113934250957391800075405465433860583396152160871185295769683647943165904106430020568889404042612567602668684781574828478709612974594906228846736281504549280767630481669152903831336003635598622523183710243519490783460214658490210989410094928629058995138177298578807876792722385418674928727229932399836554411658017913440456173587608894287599564462618473481416452762581604346769423142767248687852613258595241092860700649006070777535032521555575121241521510246077430446683446386249496792614774429642280864190154772893057585467346270565127705713521100691329061503281056585801044112942436735522538191952254364353228958313441059677927591415757233100868329213474597682803400555559461695609277483721311116232560794831099798599276148910480950908343909625130173469998808554932644632994935850661373814675884729467577095484221754846584763214399117320711004704942456395164232115113792840443319687467753897609702626838481715853561797502049374454766991766005643027609491697690762450109139078058439477068811345128728561665282159568610189720157804153719079955806430141488698840246723230156332332352801771654777442147851939160771249522750406940871842069662667585684532885010339243534083147075875359277536843487317125422889780510805089260515159067625615828027394678619484112207395268826669412866252715193342513029954887397199977951390397562553796783509685454602150453111800430256396838268768498910744600687906561143759151566363418685846598447658189410646591559545506725386437638477384262376883157457603522972186697365857566987645835148776385377275985463522850803316479197111819011505269245295942363057741321534139247944930756505013513391285363691266291885815258101101388733745105390053619218660242092163416052992398881709133187374277887546093850229987547575622707371212006961248409254925305817087984216348983642729256654813293602566229432856118591204159975808115052791034302714191095403785817677733245560238049039284700250587447441376699855074502848669151833849834891221194472145547610521975524232874603289672614876293424887366033627680128232063454845356554767367163010487632095300288026959629833840924983490097010868100963989106056216542962035766442096350730714804135256238757125164584748170359374219338359710048340345229100507826508282207194471146872417674565641448359021118527712107197393648649651590914546387018442112157230455867909934513999547186704808763912096300375997203727087187527244679976121286494924372794346462616645465273655048184125869563975464431442981057240876658301386325819533727494264437617422418318283252960955522513264705637570936887618328410168088016347885942509832652870995175206805732646001636843894717142167442756762600210899070159935440311784215305028216255195303294165169440481563334951577100348907598860559635679051375000234144448963737090561542294331815366167529816667947234549461630299378288909197957819765199263465384885893083378677102719598998704489479647018853172739349935216999302398249873620251359437741794437372154703977997295688375811909125938483780260367162115261011178632866852458529514148445651231325934962936683597161820616856708247867650734315722349688966985208656041012416372901616153781414832869759023508025663935820172102213031010824377376024542680422323049263812306445082478571788403909509961888418942859837835948274266398591093270167983323297680637536829079062332840289857201132372040767316639775332862943304775926055391344558836257035210370670584335185160437107948801089555424784209891652927641299861389616651536622285206845027333547796320872001686620885819602277532134611076548681196964169989601348136643033140980828874981480973332302360760189648874789955273762709365956726774170317976736112438829290368093285260420747424765241395675904460788535161241651606111257131465721896135591065905062813525197501753014714329494891094590722759941358936078262091364623667838555719517148008157572756254632713770567975257302691644839314442176569634911213819008584295489381057162866940619631556917635716586816129844802709777571311379106112733556675690441846258237536295943741439787243306968912562821086249545833043895776661761855199269107869013410451627563465072532842183586124483433176801294920014148334893197307012150577254616194333250666386729318183764141782046859745806486724333908781899322310997677113289780320243542933715083176273887740006077023723669562954728233474667677835485625261012109388273345441950897961748464861810025820789719329243545454860564926056281085525037487562106836698059116306544960302234576655763843410594647619959810646682803655290003374102258844319221684546303012289237849783347071165045121857370140565313010577992772650338583160810751203645996875860730164716178016893832987913822463664668226038134203070799104528618011966078791616325994033165562730001960909465802303718250903455907772715531058384798346135146487417978270850002105382715747260653961940048521466376061901678743924014006863286243955185531211734806150314736088646918309291323939429353938740666289966760168331322454330675113750390230525722742001648841282122400265188297354576788884759314856543785931108665475720733726500142643508713696022118861748146226488741120303396906383607532589535480225978774719646784904993107079993652542765936100052758949175142442510854492075681337254382727204948642914115820945978147745667654479727420761963106726916054099542898628010552048425455572075315070995115688792468980961388893327846679578983583720575975971111423308366238958687144921667214268536266991415503565405192212110796446611544164510746151739622554925211937748077990138143124680950964963735088553624072412801385003295302454351920451753230479171432365209586215067001884345518688658455106116698468089221930704066659794223765892227341030367154414915110668989000460999586001630426345276242014280668965097088548037645448759213118784619633846829704453643605441107966303830762250089674517477136420182559981837197257132329700791904056394116988843151078886457216573632511361784565284014006079515710740322055183630022190584282877900728704456080640356497240486820455691304639309552822177562433649010561478847349532433718645516863881703039882336955026928516513638921675622118243271823110723546736577631412343193308384104534113819113508857376263468038678138345020178627764796514705822083340261075333927147498916641434465204602726490891677047160957988197781154120210501236302974152483408110289405537587259375392858740494804973874469686533448553577178688765092553960668660520977554553457410634847827473470200805904473014550654782972972676738267216254759443055317047233462326123809974715269625319422123172038736499245257825808418826354983405275643559374464274153179087064822683971098551513104674822165477708656662733533974906793456727807879358531604719700401191856533708012329360951470160092057368490683375475055241012575372948191770632413831873121541515215449946933966718424500487261733695576527034864566419835851330266175089548201612929775662229675439300818004399856568293681294323162507604532884332737619962338495471986649588112947424152063162011271357047399707207950477339496049569760320140765476284233737450383848276503249355283160314271342761765570707860769073960664673206567313828164453503462611596516597590104205528828702112693244178108753589452945211749538402369106523539450977051625914557901351812332369281130532950006938030553655952118854388672911556530168249679111868609110076258023456448371698715756970957262619458684501570208645781024233344628805271470767941588574552934469569822895779643291126135279569413829223604316005285675965684087749197213722097474372091638491018639895630149444269312847210508064187422925623676271340645198052042204801202406619702042044885372600983859897327946374087775582952664220249380769802948272731522829467295620837436445207314002742139596245516659861509035017038011627295333195370328065040407522565704029009372148468032080450535742932941800411208419810278105884908113737221636828984057648846072527766547580618618283176589395002390652712326806006148283769163267250008932615270022614959305988433923807482045454957376810778081362730973709236096899292662250649096886261620395948840095222344318029496559580268792532730458020271279174622962480522249598161170078672380723084805751048992938583911080352058492438224705139702748405799227768365600486797197402409257378181341483202184570831721786590186360176571820419319164051347991909637040140351030786587064360792679047000805280285943398112180157415672224834033252544005540060369620423819245031332041972836256208147793320218179640570494986926905381745812720127769402879162045788647291946600627494853819643361954869808577991334831274265544459349360628821770366076686518179779954679176158038511296487175512203784795385906584210455676116174322963389388657452649534154085995436199093142786776504583824676820373558086620090697134313341399055231108082531156718549041196079817878787189616492416777236994378391027698541979599396623211049260028157203156728645528125828971120168946605270202688711986699404697949157056615308884258916644791417425175058968560842502528163909292152767982164084742675505182501432284190140683163079773458911766137515329849776141609946275255020384521371360419158346201874310504477468845732910599938768915289247729382572185576185413258164807881556233683836380606290554334188276321103296288845172961236659887517186797315970667341461171820821478276322180092613127250425663870924887468105353637883221490237944468063142599219702007798530531321955127165702226992548095301241400241119944622888657212945514496646960214044920003949556659511888624931469586325536672184718383715526665630085569458066661329888898141242414357105664633537140275480386878664664711482359006479317500606743355585002342002282879229958395265481412127227925403248380663733252361700444815081699436543210007792405456752990331795416261241820337076449138207140395929649582715637849811431978150377483787537316073125391505409632965418548420051672704018498041523126619311394537306291624839748493222840621872062710759100462749140969496379835061853762075459297513822615605997166488260584372784022827675036738113949508017507917357517598481850967364657804009650948449630310715045457685330762068936986269684105764450378361466987160802842114311522575582911366297950876550343879078151572803029950235468878969232445287134088024165611076669717001353263498147723258960603614370272203577692708913268170037328506301799698533049328356476974796057304642548880405951015219508949186531367815800437569220650355867934162668103019964151604057723501533867740541174245189494948397587153160176764624316399884662166300221207636436702675507021608783684947856737209151654866819180097108473309573125229004888981576304971154114617028271328672825148473761038174016717918211256004356451101483521503034042388147094931972544137976302030175697866949552500941242339817465016474699292634493101159882514261839345030950780183120289683626845182695771629240619656983159909258095325379198374765092840822613491418770677628488370496597529833246728818540890570837841599895078821899366166880377179585544258615379055578818638770094283351182156745526444247729292393952926633160456888927685351018489807602108642633074587010569619735743616651015786481336457968332683521602535329956031528410633283585974520408182704900677746400812753985077559287530580387469376567722330482531498078416311598015706863453612819450603109308945176699547578786756917750995923561271584405225174618835002020374156378055472120021914615095216356791970337794173995168227145277287825369686337816227030755499428807756056668452775101884292376697819777275908254678398148904483377815813132139528943711173260840502430330600988882630162037280114088363151291166211345225667982454161925491643739906491780422406986077909994605701636066509764795391817055300027933793082688597447757916658209223013488645495855638595546124203783801382442459830974663717992151194281282314283793841078981743079883186777308383891724625069360431047752948609283152551260145071288229711682375626558216626054888355799620981294570413884205496037520205837417432305239468276947977106679117980703381400919716237083741058559879810585677540071831741253215124600089758289917829534887328034862354515452735191172936829818793847563326339257282065978622731866831430015986438010199374574711486104599341060264829215072410110387867326079038561256925094465743570254106569580043840478805855433909860325414482565631558849577839650463807419396103177895743516876610406556717261997647496622963049350817692479782241491527262846289438670386362682593157820550595046422625666011524681213100527183011596100217873092533213037302886909321901666827208337730661224089299763715116958496053008167432173445396221075214622802442259619600071874671235460023177535129604284542605835339796443807992129989041806168766513160608764165010378533631957458186364966580758469503972853497020845145724629963329739299404231591009745604392967086517996643072613352879412693125846515611310247633414314017973251424840004951381669903231842306586336892570375258778019720841800801284921740421644115170537991539942496064136177830917724651637388289282541978574988999171004953975659696074716326375530647682500975093731283105044959914972496228958088539447276328510931248342471780897382121787039691336174254043132907442623203579625009753004949005221827557206153464414961771900723792228184253332280946962675967603827135227306210669725114475157706969768969465388037437512116842706104940010387415680617028006889277835435306819740429203042083678609537002455271297228239994826023856345291572681281059140189820791439325775407799182026810109824763624458886356138015632579002824157581792043380253958091312591176013774701848785551125660840833940492878143600285972509710286633544968758930893743528896955179063792398743183950607247197750254477094321343825840224144273859044310821371706352029629458897833690412788818368031720039371805610669081214313613976106740078116846437321198956227691290090630223188027104129165052613892628945594590526030764510502807041181446747536268777648707344469405523244053979066703486013001983615230702583511089191626272101052042835492310613776966209862043063900993027391194003630798160898427803234958142344616048237474897080843933427027171210737074624611515918096799606524597653142912391169856699003427111156393416953199425941952322910374250772579646251185026994204297661838664427499084075852029815688879890777368125757952998881945467600838637044969848725518185662437853188912480810729619070017402130873812159830877787282461955523164459895812882149163630059227009377694266903176358838080106534412701719935373574081681036507325905630947273713903947372884182916070242583074932782134619080321324773550452378985707716092978197941397272773628860034454145084642657132573368157778248114574875436089614328621656199117158120669810057108500068266968455668724436618247925425993727384577963062085576503019173334233112632813752872448013449425317405644094950987572766832723849937125751305904467463822138193532714691701688831747234518095383243806028189949381445400170264747303271952435393890704003763794424104774371570204640142219609802811092244719206559830310857985286603982747335510044408362721142402621474535467588407013072164117027405530462398919249049405452390262810005526883145043249619147973216115317055909684719231988585484276662153840701446572080332733780267589287236120371859281465665337200219147582068772094220187333971144519322588999692102483266282487301183576477375705901842105228017263532466678791640263448865066244382231469934984247560553522285170017038908929810270979902860137627382879941666408512127616668620058707869551411423687388149797576741828254003445954185029488654997115073846589351037463864394993702078853750108435006648518349262061731615348042010001067478448197022089022814654212460561822854665324218321089297749593893964692327761461506318582328879654544973695647480705320785976973753830340327669318221266295171813133842078045137627920954009138880052484372422158714991615551415097263675344124654258164511735994275386843445830325899563063342612851223458150352029540416213563959339264188530957565410354512468244599175784868431183941048746922585056898153193591224824924466719405007776466258114199293342960693846401466959842852590578228503923240344543485752968190267432417091735884334116791048311863255699967037080757862590086226408156540766989998302759926014391595347867187135198863197347527335407341016777883334186059166277010887824578861543162860645152945448680270084846399182491409997946627419794543542315418586219445663403746457686947108017625100635913157712050496073577585151424881902969693050562399603881362877511944393216560366552393941696760519598485600122691780651388433222123207285934897085652669114758743101782773043361974170477667662358157406722694318373159217775766657016434843097232335948131158143175070243871673050672890468559077862159790781684303259648536826711304688144600115943550320079880156827389831512181219343972641188727304568520128968819657395871669954082145803686297459981918167347945198484643400777880891094543475304288164512360531721798392463413536479328143058242434564224664543979280141988774944590586929874868222075256763090376691500291882738415010871092416164630976427429136667808694788086367156664386011560958674559388425220123209070639950658105700120898816237638751944420764837744393236084603370642376562123158897529961624136624397947616009370323067306178999910240093723059688036730104014801006283809298160356617669935905807090272646701811096972189024544548338373787216096808544179592933200079647878967960045104943678802298352033438376910986357441415038623284744321196563803638629827531798363021741331814762448021972606322319586491453748095372339995591425269490050205143563221420554967799109893652290397038013617404018956736795687003631565754444543073528821115440626159344961304909477786135162002367695416574066962157059343170586619173683161420467631237443518506202747443827833850473219166462870751002234748566326026324334549205433115459193598299807092047914366744951479117393825853996940992199139038471244389180368702784352208473667286276371097171995174213166605311394750283691990267168989485295424743266132512060878970918928433738662004743565318181180031245031790368463433175110281230393832564753978799261158819689866638180458961552664202182467392097900211387281209789288393363518143856750627068770944279807551283489430728994134818425430691544313598995641681809384419033974289670528855873578888850569796488513261130825627474027932977671048244326206688449661052980955264041098428307719512752185150344536376784775756565967121793966823128827525394350057241321723368412455674945035074517675376578074921737650052284200372712175962040759235842440713952007447500980976521409518500686076862950134115559166877996027756870312442651744076726260512128376327047065781569901762323995767169735902819602307956667265824327861831814812897139553224705005090343214685661163391167482649728926427802707048038280865794862304430326363172229440511846871451538448740294342820943479961498886437828745933251438227078482802799015255473025377123106897567172387920060661591450680834036205193546587107195053617905242863246979137302955551039555075387563910739919921372988205889182442194304309832210253983180189298946793493025837906933373065922105879267988991232166951043459067890939637900521207517118852309508009247340940216032897049968055990600832646857939987886801274342445202153269116186425371006103265652586330602950144224101372797598774140364749372076346699997886123625824898426027082433113519878151771981315690279719905353479836900913145191447576977457388890930784162303722681010816233435553570890235375316281011781519212546559590410365063569583013301317800353431068923473660253946638363352098905860231166477758167578513270849036551058821574359250271872728670061080911498197329415818735453558826359338904581275463358227586168450602926112178668399017462489804055295848345145316682944951339718949997918187594012099209283956616870745774648981971564126023676531880762114365696633221149311851564627006210672609328353738390679608853957725074577320299728928940401116166258428143371082313970338684980825006865784998432429946012095523245250912864044835087436017553885279047985630114332724600530234886426934135927780301526656714276331721622505493715498436904357408498638097044954694819063436738039393939613187193717809492715809862268275325601296382786343270403424421857579867216446684101078246658428166762127002399883031696893166207253329060142999574311766974250566145115961183636906404574323558138515788790814353062029910079880242946573705236478470424331755034463099549577382347286927220422948661264188263675571673347768578375727144745567535929000707744542391416389131796227160815943435989799754049374102957012117953822973498279467212872204189949976441057532497088359400513868305732501236046569322563670904170782954543923953991094667821952782544234375231951571978499304579536478310312388710076746594629646538887578324258008057554648831436004895848347578029994057297006865628597664079510270885026695636261977879163681629010112514944149747173256753495566395472588849936263594186311137591771573572128490864148892942610031113856573004291163321986995450524781077633300301286457458629134635907664395149401727831868321228384942132115919672160244134817698090778494937789595728038092494295239470600969462623800222506622050430004340302384849476434443648019484003042880621143657827984698286364740342201747574546469329262498857493656635350178480473521619241980343752625007016143952250140554927472917592594176364106285916772178744644126814007065921565745427555707606106671231704099147417875040739039868709600905294632219746634737617580116152809788816171867602644076647038271179429922033694153126087143307178888992035791304686618618462628267429719801010791443736695719361402512204196251050421279995577154452994838928582424259192332636071367310645696657291146154630744610342315396194014369122219156025965516173444731222920792878949262027592378777766751710501881987009606413022559918413545419814053388832775406848387985820572442539062486139485183670102426278215423052898460867466424324951740920631902264880734611131335270558557159190660534056575524489500045525982428056453879976841972959286603200525016453855325636659433910138694198840408065819755867226454774967533589322040158065415773980034083165804064978039637120535533021599571471026829670966135735558059167247683800937101873794400582677958158290143517736929494613216752557020894092371082868400702090442883492162806201209443770427426922299635125914733001390414718889562137429457902373999304473999260750146247354160302500390578260225418421818651205088655625478572423081602083727421952597483605730888531934986968632852480918012609157158390202849515650438782252000626615577754107779521757715861688819123691930087158595321308261847855603464966753406045178700739445555971083506237787677182233626558648026963537856875716390759487685476162646782945084953910314653754862911334770903484844511881224902593531483089826749378981013864436608838282841437891744495495627484595545990249476121934670487301518720431860480967296908310103943152116482926979478729448462527758604145900286065221522030518514319511263959775270574021077715253940231324617778753396344649421221269463212438627206587738474256559011733412245034846625609362930734649919870355012337981382348724310582443559478596990636968969255262296908879937488755757221809563928870676241460289402978160129039812867482520454745566576198552503171274374846395279206108171183492962563419069926374037978976302651998192175485952227181837160411100902762865694591155375845873012530862008553805591631601899042149283569432981439523129429348026856889599980746775684206118706281687557677947012173433820143655347351343396621605709827321496506617086740162772432498473444106420833120178505399818245876552178613068259258415345407398606880216299381811639145618407661347877570861064359668545533188658051720525553181088147299236034521669782463308921341493647400011409423443534704662181346265983379384795946023127655751040984908832599927213224299390797626585798458573943252810979188987489927044462082132086123309196415035595183465771577163135896877690860687761178500803517370269283588808941762815665148679599295470985518343943011987699415973355732780901277790484956604688757064617280652379733439158594408862910955260924957946806751795967586760237487942002909779950837802342630098085915280022605892462972026257767235424465100470076928576666664731009953495344335439507267558092394552912493000359877180633732778531467838863529455733331799991696371933730572795116901925647961184243038817528756711948801634927480227616647614654919658723716327325901571127004847408822871963605012755646005439663799342046072040107069755711193076930960583582471616419560120347550820084982489840196349741703812637055437960137986474761520646698736856066125386061964591849653403888131143382282693421501478910194977055836963947289169937154472366162800885998778892143768764145328410505470056495765020972668430822322665292226245779517065759311933632780262287670246040187693898016943645632594802721921294624239457995811500250067245424956205314666121435409416871955404920719226062795047406329840498387766512930392841263634269408357062938746354626163102294578332426972862283349051824674967107434425408271116904650868571624077105148425356420751681493973415583030131776344297903163375517665453740883990600390096739964537951306059807428312578103366182697611157214429503283367551664772856432486195695431975581826922991277813118730255557694608264904603161999890482105749362995084374246495730857784493391631199204381130404919859982142885811640368517433808536723029166281194958754283795586055462135578691943933033372640526436951779556457478808056763730294691147076492119880450487617578488018996234037011856620692610883245296716927676196637885586110369947973603681386143104957637328362506554921633603602192014911142194146431829488859905390170051646068858765532159849555644613344874814322546158689064314423366737652831839967878903078590103534882850111545776481979480938026750979891109246575258185184096762399577652427353742967601410376096959840579651333908891348704268323638316156115342496081196553086748666790125960042702129289935645744414014024800850384097797787039365722658764330267544197818445401346679893434215658689733023964380137739760532708029064646883967543943964385530728783556349401859061333569781883827313206568007993394786344538201944059909202647462845512031988340616623653282056027398750324567736783723690774801717814419951845501180257148120925503769379898691941733515685448941138671849053216553359912569729749934650550437648850509615595939017628504774450367516754199103907480360803305044702014197693398038900663102433302839943185169141731592553694429704475026133118122848184675047551134642722285733065998102543461040553265844949114132645450149853128908401129541801251432205444329723909557317230470048478720247709605210899128082840486391968379492828888370089577418890809216035528948851822541816030064243873315377348088906839499434002563014991557107683731089876230628641988844898574496618015156123984617745594693969975651835583189132715803276220389382097409253073513648426305232133028914880284611965778705232820899654082262067022129633990144616220567393943549180707494379512434934853509564506163450654244776144010450800084569040888829219389580472881482811082206780923549126592769315875089971440229849939806981491242485373718106942160407409648680432183726136504038372456193535189002452719886832898230123337093725660098382248429001103390014366582757285983840654709383015328525882599833757626342949283263042098068536201591882767030355337268588174745501132818190029335898096435317045299092063066881596810776969667491311830561035783579035395587214239796621373648587819042218921433524402427226188587938552894117615819557699845953508874401311325552694746254735015933544696581602471930541998535035976118817676431979636247708402859125301859808224391832109390588654320076683514696637296054127431235101103531431533868192125525965768904455116331044626300412005908147500325047661036738999488781984988818660904571780969138847692218820538210833834208024269676681140143760728959220014800936694310508923988150287156759469465765915130630091234706047668600143017238269040406999008066424287467206009189983399808818178815605906245288528342844407665661673582687102444698169417584670737940463017888014421956621904177192689270416498866520272147839741983371653208435111402728591320905961577725812210713585532570106925574860638832824966970271037447886599854933983530366444089873470814831397281592781251005228238342397285980212034716823263029172320438293161087740791847444319276723984205462482972270924048384206603096308280238323477671117060309518625784808566874255749594395229933711783106228634845744456586861446079061501292024611664664992238241372527376319065786681147496030498752030614135936450165548724793262061456308626781057624209967161187821462632254754271173594368628423143512974946803672196442576893352749455088476511000934769534174254364667542673199452019207961521349728828566086136575393041550898204378807558911220712177839816504763259822232578417395663793907506032040689111398425027422794657512145314865165994090027728140104731557468288243747196748357191435580818516382778507150094681795597167726934001715021607973129091455661131419576248440902703349480722799722288043826783496322111178856162197456155724348872208555135962409214934418810999085910520978828514283558551593067127585445259043350800236632025788859119755645863576939965819995054040602687831264791793279728642598497343619657096978115867852022514575381482783514663141638758747652139993370637807924485061551104209875554060411913897013041061225243256181000007194697109076916401784240367553783656528573193314852193690839444582423302628428739639495665336511483322829381688817070656022041035725794235168703646507994352927542228184996526479819168864014768422076618666051765118895657336843259401397682708978168427119357692582228268570618789624321399186757371496447366469603602010239277167131590827938381567170655953432298353880549757632670376555830710091369147940405483576134722656163344691508464953465724021530396229758891526452756459147219318899925611604688303603246408385162206530792912133568573215058261246353863083938442591298662150222242818116542833296685011650126424020615551748468608112286215555169273886194845148402148115527645944835697517330008396276450158847011766465963233837495934633410761568705004692841211568839136709398116898209961785647434495561621429107676623324450755966016319300909545264725801837076553276774674335037334212337427895921814281534935578022082424375486621882791553905389279336403463481103750827460580485268444313219693567605210003016462051929490708430557220933584254889958922019977927130061039053364201826144214886827643489197685635014313916168761781265238321494633774220163900992544970199910798594829651157939011460002824681449243651478132037255962674273382276323850053020892186553865667297830611542671218176627290086672499513065071535446524328942887554472441280324523336312829501778884748450716267624076022406382315793776949599423908976099779516087432195637260750979965385076083080313427299952159273301079697635897024370678046111331969263221022984637425642073484131959789520063906226332373838518226174442176402912925644523121829637009200460366618834459733099721058696663692559706673043646116141914840419887117852949045457285251876672943408886635250402571238939720546368338724377298120613881266252159327205283134581890286420642612189175734199799190737803522724929283968506883668052764917636206057659165168039112788186779501925223563798166320061828485161158104701474768617392174579373504259723925184799108635865003311193392195267886412140585820069105239173560762726309545977492549853975747432760182537246239739511774648067102091290281743700683758926109844511626109181656372695324990359969897661431541776697402841825422758264947798453888074131475634705334520718763376834507120867166581034842945452501825821029602578094417936726098132597513350938359161059794958275204242048585170719925643010728844058828340635924086989511543711961223759830783167432612372597226779189482879377283630990136906318461834340634060799796373974074906592915957427122670789469216659993756601893496180601754450890442743952027735146874491007685946547492760584564094308120292752122054335156660681999562204907644300159289490365251622905066840081522822013948301021105786232179363119776456909227191490455856159871782975250304569108994444443406508603252157250172229615441880129850441941507516903775105041184305128937515835116982789919229591774270051234303464392517499094193993541903427747638385245563900608266996418668099706956998880035855076219268840032668463538785767771595838887395433366176334845555633402818685980843612992439717578651513512915063807052005373274153116240981408885944928686194254332337328428452866402634382805027527606317933500518715179679314943900188628055921168863217325079479972982704990257666877810986889891639052292833501610036293260062538343329400563355579780229456806381651666641252946609232702721605712995248359567237426787104283023800003300198806031811844964107665459950511482493598585173898947236910879048143706161824731414173280067244091187948347140953164039047559341776369064543480808356011572520785282470603027463684158232096113833944215495011627392329194594060833870843995322171567006932929393460085927904654927780660117402845952143015078737510769244615344898307013447016978542770336590305111920746531582341993299287427015720570307477006234411007603075911909663018497457989034860957832677599238352410583453737408587880029082348324783800736679520511204010957852538666231466891620429756108903476500522871755876127240361576191807527974012270614682808474002450620093409163036596219702529226821288465328580818827051727537565953862111861979662351202352118215286437634616201619870186155949806238072079534083987211071768292365680647137187662608462258993185816185929237808412463416591112887214086257788936285834733714425998773024090172962063654883536602253618453689804259064938007935858160756789344685660708879452277001335623726446665086115739216221676177114749995487053129102488718013651605307130552460221632204852721724692665411321063130002839328910184625643532708290387809613638256029905036917312561156724793482850025502954875812905545854374714578719712716869856311087756535722166155003347146370354262582697325276373142312130532368827729865587435602846305200899915458206266051718161761016639480589093678571244326003836621711322542403061467410192808102908755716982778596737238364650685523212197145363847469331456632659402705717730744644900776261282807698791582827655048862776672807597793431916322010275520864589317834854149609787136963167705932328825424057844106157822104470451300864161263701134152923847747882591656749425918266393964794356685686902241246414754635495079146352653015624666834468838375830041328824080917417537796487937431110595417653638831488448639904055759759707458799144505427333492252636372414457695092448076966801539327298591081234862971768598452482167516465787497408762442611774051093178963365875854139113568065147221555002564050541475700747024678888460043362643196657216826209817738497852613610560143021650313774366371578246574150504886702336235263249116334074569250631322768318832482025355454180351622585497777161532976206429834609653001871971509615288302663230491991331982637541977505491565657439559963686600278709212226335683995980500766537712156437536918379329534568752304622051118192950995191187302386952149412914236335981565814468841818182128493507132458581771503573005339255251531099411767083808261947491785535374987982985544078444022797802276189013055126489293343306353241803915552614793597261101917704753357925070867221986525901428346428711902155540573541448221351540844205908303556618157745137996690504283169946794005392012249206775939399113871403826066241943373163905227229853705654388395535885907864578905857752028813682973698180945755081246943250390624759712571847555196510525468863765658048160807954009419849993368466783953632861588773083715927895086815295097861729014727272351612733179756001554319835458561400370634106774078050758079391898029095691071572743761671690760171238248748784464672002724988744081436546850791086990019377560438035403753680335273312488056497135901842413444104508183499541791480480866481336006806704365620279645403220869223788647535277297944010243159680252324764320056994275499524505664875798369010369401024311247694445431373309222248034299676749783785220322703240367399070325741534531679716227759101499791507995072392246008452887841390899437566106195421878784261285448460710233078449020704798180093023197655809917798265267068751489891487721353518583507544235403554086476171023983934955340512880820222957413575112774910601116960329217108297221429200860300462719797951083973504898891172391325418212299909093445187068907582283318682444218848605339255927795318140820593553021538147525738986875024514066546231032612563985590301567079620871578138928152631834920353099026887345960888927557187248929273110850951618837478751428919025145307639271785386390045419430610902697719176029503205928203056138174717020171977348661346954599956640065876369545169129199164984457695996623685780296510873525815506950002650130361002363593163515835584035455401265353761563442975270375886730044900357115940929753588176668184322833169418090709904222922443242256031814698777604042847496690909870141181130095048701692465087522425037934330275083438487620043590013955128085185368095216616728793485487721358117153519229327754917002754238551464386255822562014455801186347952190254283300248029297487309851851157732871413058389978096463762440099373708129151321590751039633453784110835635480467890287916974868532023419336924269979742098610529249864242581728831196671515654098270585493026571307118502541718922319307238421332977476200931922073176115721317844796738330544794314120400266172377115195352282927539926528133357275964989801013865945808481746034927065744677127998648086343693731410090423433507325754969908291607076858486672345485663157640534958930562665318207940192131862713520164968112460144963227404388447277447565934789447463167106006381080519995481770937167994931222943401712080610132774807416088555997982432762674259629841646950477455282401434036815881266844389481647982052641745841922525891765335529940607550988518567045165639999231588094968725728660872691698782805000505583057493296995029333739838445877307029535416014069481314973113345340682150643947925955787811775732951108449038513317413976684319092943568888016857923025139175171557245040802290333501694933993563951589543608402440316612560840217135005552249657849265245450117903339401229537540835753316553401190357326283487428994525055220673393589693292103575386693209895554193962212217730799561793782367573015107546638398935491406511564820485934125955968100806594203897617206917660257875024804277214112243450520164301894362454278651017355104378629948360123330956383741035774429050044209366580328585926514887372111191617117819781425017482333965247541344569125748728489693875763701122671265529020863436166113554059988848405067394904771057259972995489887226383414205553830878511965327900689934316763826139210695882085175937115688864540981457789896150158023583397239053954766051930620151037971485384615625106951091185656523111995673725435493656759668502642037771137681784689118508476709590966924071286182223430892131025698558454743496486391373988817321083703682045367266534839984523975133490282573374181470343595659324430287452810157626329362357965290188843264773585138941058623374865133114160700031203587329187154772276954945839988893235835254524818619012118581802867049296503978885843925648995704958409525068392387067156270181933670429053159273756370179329403085250522322165833999019475230183068461136581835431093687118502054350081630927787263955348402161285079138359837110791963305523578353273336267547510353765903578101583237427501421154080368618052498866822737604466483687971822099780521642206454058280623564269303132826058646672804222158486004413542177995572003887836722492589115676698154867983564915155137352682801734618021078390808420808043911760564956439781766264850683423359964982230904384031905202675234823882561143724592061178528905308190077817686432474478535334570474355691445934373555699621942214120599759559519429079876193490917210477729282418105509539799482471125760495654591935153123920061144669307546987699130883349454308204037500761681684147032859321013318684113279352267755180910237592716392257513606279924428348042043519218242489611046330573609184321513530316533563737300002027847227601287462566517606709160776209970892006082861116694129714863334669122179236534308888106988844846091957679144087746542617913863332634162179548924188980880966066752866056314675161888148713782307235731137658669915595723262617593891640647914605884099440193698147508714207712784022543635281014784324814983375831264183358733465652312242751752494261819389308755177421205387032983981123061084857000663988591429395531604878380532096508762593577498526535618780976486297359554736494307699017836421238873269707549571486003209149332265334017247492886085994661329223390485497013838559636021296589402965211922378698719505024073312962227775578673259107686729449416758736231136887277742740109970056897674792773091781404383311379215321695555393089649863063783396849735053625032421282598954143395231587816661352982691914148597709879136732637508389085542067415405637269092370985076809535054896249820868688404914438030124823761006245196798126633875710919475476793447192711613746925874844519238135766089692934636749953027603903860780165807519075047172139111403266115107393740559744482097398538985129247738763196201504346988570797253219887277950652619189436434008638693232716101226839347078600159005001874050272328181738792176625838090510742040823188708194372433559497720177184759318961940129871567096514716217304627651915435411279482468382930649813838546627515613743510275415904392034094824746654610307283614420942268080679976167446985652785187830909045643985727035310834134208789576804606417522486285494075504638415287921022877031999906426202763426280154796404795039606986998947631364634976266237368797119623173336356947813954918797199941488665848037688367012942191286242565541790197846953084891619627137770349716739444986358662943507513587756062716583874630398563573468655940184557112695502206028309965230277866313645225663900197362112256405805497160119040439408871380567903029636076373918639492940443009936315771755554467250692465928050935999447850268412357238006070700930389186832649108212166295605769883593014494002263702119615804606632387233019792524705350672888953489117003186559733606364149781376716494181682419426483329689256659291549090645921077943179258789686855578866360253908848157678386424639585456202752051480411658214705267342333061564567290557443991990186470072412743534779220321614770957058373587999371562899376885485423830538747777920028177874489844642010352552362431588330837430625543672101288548466105171085790480801107846921945215650433206911337009944064787205588746531030157140136749372011436799531223944098507024717601993398846559170690694483513654382805155989329635122701755090040910057216560359692138098104993251271266435972838286104556529249924816012651226636082496478854360962993807401650867895190133264884635111789421088341872165975183030677352356058494247900998335153032821469817539051200478811488615281936926848003777556782242701802928310911669627151018915541399883207127720985832876498623669107338440214024999408485830353788795457950678010128557832909696659885595820230781551710201503003662908504956180521848801620561785602804973278478017499690681550070518072118687572406448475955705532400888207639484183563854215417975224656416525819475075065407425594942606650401997450286925521061186323403110532842916578141230252512986157040179910157332823227207642775549934325527389397010168975557769904322249982480438002074606335389404288319704201806980612510233170463314896408043850067802768015636752805531228563780018663002802331966857557821082305169897570797735327551430444805024505560919289833412861858302310908312588738236510898154184777930279956956537015741424536584475043466632777325219685511160994094833449060784213934793127907958155246635931571940837269269119608962715100131333685796178483403276835021187462404506988292829489508221909466695980825161893647252093637309932616429058288163125168865536577291297858996175788670830320038893656311709251264116771862780048993685709203828717117431057922999542601514838814928227355961996610975699514167879600085633450909723000794132639232445283111853878664130790779842127710400820740803673332178716766013278430518591229898203452918604257921144220341903888121103229497065991303069828648268433971945581530620918895430475858578962671646477304944352204562147831807923690093967755103825380706367974521593941186320670497602625325601143183553206615489083393452035822060867478893640084850110040468161704346535622302571597484203898547999792527147171162933125535915384653443552255802368221699861504522440680574021391936016018978576515556196843789047522928802646313917606311923411755936031012188735121252916343483141417907058926863522685840930892620194552669514436722525787654834593221268694807729156810539341160102063484006239359410312860895137527141524768523273253583235594059316837478740275040340048371741554199999153697031817559311462563650498720181565157680304285479697554858509707205966838393251604158519071121572990538053145946246874657001333298860862057703618617972014473573608852422334843000988251229119997977300339266997848018725357212272041256835042185183318337020307776263817794644507437728780174366675667241996548630985629349694822634107770212437225953124349739924597881954751471131937430372272300579917928273713794859589030171366072940504423645899010618297270239091917858558360002428848203588765361559131658222506302405436728325704421238327829637113095457195487988826073361422958322026394829424992018705783885747067055928136185007088798468604282238992371358357164914770299134477358015760734240104344563991015889759120638365084447202061742139536861814283898626809935830545822739675485725804631297167071587866567460184745130914477972051761598272533366605559067027542174791807501472486128541773679372031424058801766519237342379061929702074158428923588533292218520418006429947057679390407782165066517320133968462934824532173836719222792166718043182314597505206926826922849437749746699627077364409866376422779452960729444631323623178656476311713785666007985410416528172729599508268217244833893240620929889836959677860052111453794349758447850438904995675804161310028309649004599032500639994841873255413811451462060643283353629111616188338359949097114025153071246380565950570140741712640300986590369326591968529898151356487112360203636168847886736514053324237241917153054341588266831865042627644399920409767021211706139692770794333851482465404633654027198517491271956976112257633289757100317715734301768725701555036919730191276486301333480182388296410948199605327265655047678474816443737828018935665064266244858359950615066488805029079594782216042504829304270918578920312481124191716025885543783324757301309451195911890053065440968838416555000381744167189889683393873283155369497828102289213280693956330521730204437620518535776907223733056357945006128250748483939531687156248940149674181975208979854744891599146532090949804974066843933846185733379635884599816985413427870068383880027740455703031440039081212855308646370759314146809141029064718390918538615921519778592314492203340254193857382086448382680185741694295454865848807386076845972660554991028891561713032346098328346058466338267047501865209599110555482566517916419222917857543973932109868888062015097267311117845070207686635232321143291774714407705609033717157254981997851989022971877812226232888870957249391880122092374761710950471329326901243574542343511259310276801105467414993995417144942462940566806570163774204380015149446984664020904689364177475535852256708249641707040234008635140782974571376824051713530925511520458868434283898525115216059614577389444942670216830489352298478458701353521500736386609585450852413854928794676799363809633394063872593563895599054009856576281868554066610335496094261275017263053762320936685252061741320330717289321575858830857914241909941911134075072868093002209907707812818901038086018869286835802122465486716089411236992225333581716004627770703068705317989143005109497198765578426108999101210329343142080218761834963782246317796313113748530494655367850546566926854215055227729155479712925470136943420485537838958822539390286904944259675669829471710618022403932866132797909076610374718392105546307452089059418628370114273151564396218925104899157931261135773871605445110608923516806444820270559686183240793007004228159964627506321513395135896630780896180225017922272417058088619107406894659112627255596069720250471965563695976063288548418113119259090293526274363923695554201093599334703360091874529231428981713603451693581651969082965405231911392796686868877424855142945702767272783967269089706890002181688462148226904602358500708214815972957026970416467875539673616594673979897413958008445999783552259560678822022302491836484595100774817683105398179786194440076322536934686225485287477708005666364308257407560037627191917449711271304329108587470017491610407860732984489768260031032491382587578600406921955226808867349228942639326587714754110043642769672055457744337080775564798264239560114774307221111438496562304054314926886681844931319658562685072631526893671858700292451965714692194957526994258514276496285003287763854470852693226530137447368596074458342437072010278924448699165379871627268628416186767632620033101563911222777068105475460312157064341728899809740599801752905095867180979654569656049355283506107702563506873044316873498185267375973405080098559143877302324981094035073475522302163753407333017859626385493610313309443636567692299479075438873190630119867120506559875881979630235161103562940419583374807139633354740928745532459184290873199742614449280365223415311292427886960354591098488086465440693535894128235218194730654921149440625668309037640564886242267346962936931296387036755889973004882511266333858528540059589914969385056234281001865773675354866603381860841657402664681341031585453070690328036443532675560148385151150635309557529303291501865411149840592735646269593463654370052345176376156677125720732159273498170778556527549024333142410635678397591105789104225604818251184811380575338081202593709444961658620483953382684272959652834631000021001145890718663290874036419908165662909131631919023515178252952990697956652097328614671238884261896423725293528970169120385397866556585816001507117517270196968698503073852267048392440018299813098998431493949688603983689713520909760776136336110434397818493678055572731541205539087118503381768847498871730269012319921327205359379621143539231604664456041163156784879146761610900336714050746575231700155317766591599994701034377579799167979252846154030608626853829198492592554036970559465780964972363864585726552097021224085448568600249824292837469421464705365572044508370114221445634808158498750309730460476799580040453902858829488741452241450762861245566758622823101921494927105643097451700980093736242338724133122313029600993261159366688935375684804859826295321971520422183481985285920836053225329737512420413139104362019915851857170628147080654119129993683657386712796438079222424970206312278643295804800275716024085737955433729519994393881412674927966296737063752717356419027081739743944366698575562284248456806593708114212433559387954323561796686135755589387568305117389196617893331364800944553238974014809732979205501988907440918707221842536909433515031564396369487953003420574833422444233523458267882892262225624286742896839716600285531811577368161527155927753696753840978110776576990762068887235784512232964815444973951976953947199835431667788263480846587723056783487205672082164775588414853943114490533997461195325715818983563221422383565303406367306389104624442038677213123529915233478813367206308005537237304288004566269581529981340949384741451594628209406010623807526424101033666047723929671162595262681167731424613927555639549453830705859377437646627533462307075543317321061375787070707108469287594490174779370238463010184196429545383708574216990677809579399460392125583723888840468829096648846947060833803253448694075613351428382387878837545005768978157686783343426780938358286481216289105563312915440121782392927460610030116597785004957576707526862289721198775164693514606079137275385229386303924320735346516452379871114757712028185032882780301716241246621813009216898716423212971083904925899157063975580621133866477000702085084520966995776002946788470480814820123432613083968646687091531163078935382667839837644805095764971246615374630233589563299792523423787206850421241316312133690164214699885221887043656399022180099929667952950211881890034519858238280796945972572073702031598951538094483908409469378013927637869293915957231620072412277595692211604190699027351324086829175305761490618988177855933216560091544513667244491258986957421687020172194406985812912300898195258203729664070515044624419080529843749440291026319053505057490380465213608944927405222896454676370516695303707686958495126039433463100654025177750152329848140976064417116283440558139802826835408639484045242096152200634376354491733421143109969367365459921146393423633519008909471054699965072307136302857019466903985959665386041810052366231817973458855001542094975296567488022922441078368945652832750117454254599721107417584637030968340631308482481089548145018481072596610192384837693335897844567554940243784736659200829568212379254606726031022432340705056086848215480541164812390872014500836586795361375854767632587809003684882709291143432482223838542409979372729203366653961610211918038229852679798736871167578955651148702102064920643121836747407758245801773974218494393788965542394452939074216596988990184329065864279601294130081610324650636116371465019956990909819894863246744929174941953477096577348305227453337674090828092613282936934848165525442089909274976914012621557605630270390003788876044037143132143584200895391801000597560700020694378095964207291236331257368666884280466998033223047204569415528212910391521413328680609408351161541829034261016914047774674772545717954499217078097670285432664281701335661253408086115827885437162654703404979225267227625800043105673137134064931536933200056621491270320943344065203424610935133107005885396941801337238887873755082509664053866495031552644879336181372101977311387207192551101536323941006157244129209488996293039099371381265669686641458467845579199854210122921245887319299482457212973758927304353160806928803740021265026998867613019960085126385939739440405761386946577360905254352159583619113046859688992715428025337996051901726496807672716925550654959068064363276282558115546190370422320069144755393848744467501610375140297807423021390018852646570384293983878101507379225025823308227450405325671627611908444126288449030996273796843872975449030810594109444339286502803999891928978050507855821287569217844682395410045429976652004280180577895210161966304783590207282614711277916842143427314091472739845369518181920425054122538692810582825451680383745700168490220914934929684026966043489984284740363018534465074370518191012412477438132917386968429639860154558121048145118091835247402916792599776835418081107642757887518975425724017746177886816569246791632444844764724699759328007302317129480365799895636403631199039941697378650959730287442248717116448391852682726492489936367065937259012239670454913631020220198965149976802702496702313728128181263306471087867789966965428217530195847219899735824677628197026586200160175932216264079366907868996364031201748977159725612506860530707714909419295560840455929867850964417464722626516529137901935578846187146894422190943277419645798620651346175248967790759253896076955622831642622017165316195514199160854497061570173428220352473915962539597090960868785704665077252036476622985381716680075897702211955550361384198193125454124170220059110821132702251179289146164984037926802832832816049151494270379376549741091394739128630063839634517970171518341375789978124801564572823453166755677709621583901522586979858213861444556558914772744934747579828070020250006959884809633694445545250984464024365093161766022634113889140017076167443410992355448778815058767924791364995355929184653072174592101260734163267915221161610601744824240739535400524308116352980753570033645660018507520523411065937477777527072692885509785701475849854865918795979154602674546625958843201221099279508422611645290013021527689103545160407814531016788544043341187196533194018468168350613960979884231370236972686429130204341802874383075218616852867914837311325424035495390612412183484191208615891202614596948832231679442467657664448350084325181728218072917722603106176332691481185277595993569519266790057040832538798603635433143310352781833042514134343132103782989204514255805237631446370626607089037913963261828972545843789059562946595013472140625125869427862881999449273340624918091189423840690350998512784421318503924722644740591065444656174830737186064426400937181721136089206903780026882377934069788908784871869159359882439835801108451744467504557741685164233452451088519315826999112093166844931435089538922857715784930309994549464969010885721587424179529046780559790431053251574085922213796602030815028688462018796958585175951705623096232896870516498185015322826789139888599916375929461035086036893592036355035266003363778294483537841188718284017232512923334787630704098873286226247451598446083798515257147570784770766152037258814715184316469870584875817763071013761500857911194703761415841036408946657762393863026895610620436190433487190938360826558451556755495981745023380758115019288678950200217398852574112477101770239538301149296343116682012272465653917999027820613254431332684334306170984215871318872598126263607309632772541365638779833241479039034669295774973528856371891487727933236130270376013815579446148040306798204576031803813977830133455318022424747112339013056186312283618574796633720527923955050762212815424150195973151551897259535280248949063769607634244639437000131574924881580389209704146781128132054436420487481321654320170443094203346937032408139811170750403805571871137435538068273503130471568826749738326838590055906544898210040663974692948161335478679189883731526091279985362892208192111957479793602536556550931010358289880197074663992878430151431444340884373234238298582224679343557109951094844503700821818446293067820291444498956645377426685705102900127574475940262525252839319947609087788011895416932347006397984776508131346246423557888832311515909569916402234604900443652365406110244278262108931571249138578565256290130132239503436838388250853129267562055164274218184668705002395859134052209697821153884741146776829684408994541136817350947312350770887660866155949048342272913247625593903707603332959216480172051156894951931201714799269433406940036815343290093646110274554702823797441690997879460839277855202434765398903403209200674356894140792642130646574275995339933902605411355700092217584785382711158208796284286026527689984129455917748690578835675800911419510576130185640987052274223691148449976215621948070760950199975477468268605261031810295804199664909525151091404995208810591896001450000132327122423549164113969641340314382419289846334349902021056445106401490196589133769582722144466899136645166667773109337209456552825773729545411874668901538926155838829101523890167760008482643175825608005551907350062961813693981761154093818702599254513839411152561471327891756936393120264041067510832802863135042423408405027922226512675346192881387601709738995064619410460026752355176920273298855804653878756622093584939243488907239747028182153331309333250218396462136140203488341581459662466823243866248686760871117906072369049716178313655890767821002119411850917567647911870035376678247066716900757646260627995239682676713671218593350450756799008766153961288414903982821702255326966437088330501074628379697285213969778247753765568158702423782406750047440804419779660860585795638285419343049561980408173850088332952264557656444420355280347607699671026801708464278197668517793234640509734715068019409166100946028038274525311780882107705890666208281447377858576548276559793454787552860415150162589525034956355729778013872514431194897879987520970524961597056030235274578638550482824352995606266118290628729754129353108772744945194952741425779716452065318304251756365316219284427638201725940215255602902110230840929065799384000383929367497052369597638314005423365898910419548685957808358629553618358440752807235163311921983638065777430527407105941813293673176058681483371318258227870228535579709822161792130378936857326822368488499842430102645233362671093711904325164373465883857957245713557336264485865288159260648389490198076307099675789613995505304749026924848015772567351764159246916963316189121998585407816139623223285672161592413948578851527768904520594934407502568917277630786818146277224431078561917861328604070079297991372685743878337679241751136186134357352854973398061407409526908502957193144268657461250813766581537300303006533440149421906324965727791873130442673215725178254852345847539869234007164212623282073595951477105440468975913919278887911417908094148894300741888014339284417875667676263162571807099988429777235778347467144228962696933127822636390474148830671032514771870267052777287157870309182635196388908843081906799706912839506388711105301671626017251867140962361634818146282248775432859233696124231622687559088295544416360992475663176488753345994713599070243559934898096019959071718696861650767641955829448359675863803687939220290399648945807887126023298765510368144666730018564483164846374614118126238665226819585445348564722916067501882040875338146133600661094026615337648635447318442654993843968356812582370685051629244247578591295357707715355194424177706024145671248560452045422729519180295285084388622005853894672525064306511964737631778579903592719057661729154008868452858536146779258745296829672005774908801638597881640990224477318019742333561546201907474005472682158535131432661619100034366457854255999237068694357534911317933839123592931535547820491013175899311406813102909397251373363069945645078919447198254401396582115400734492948908022702702471862819966222323477839380935473055340502941751107063222440228060658856658372500055311142611437539151168698494977713168010486818352293223123292355388229024423343452281594295706986152470535382930751185138222220887287324103387663938380717939414897722031268380387053386553297263126719835458151267117135621216368916324920221666992748145240111636595064240154514990225884967268838723648053907149916138145399034946760131135518529266278233864431107698694382941785041623886811497647403226459076714390263439325739358200100626209666315143409326772592623382754843539483373164065174055519178763177907605960962523219118915041924558297614504653986321304572831633691145022015401414105284221983320834293851702259515522018849804084567375095141947637984896121399347829260661150288864948720002093107927444735550638360346199495676901588999941980249081983888596946040175436458880878749620092549930181091288053497628999871230318651701148209969533407295313049978588094874979659402450740434611412575627646745025169913556435452399589224047103676508706633162726045427176359192439406194408977952147025108523996146746892647137242831871305252722202938509754629189149839322036181987404378488300639328656145252643635064214782081476571604883662171011748200186086523006494041310280395315447243687659769755274649106050007030272441576457471898901147030267135893669797718683307570715098504378405346439353433036673073353783180863035610791791922565620098511602263329200337056065856331488052663261542673346037282872562863786425757109890296184832659435616758204476219818973353026752525392745954450850832070317493534016778163479972380788563389074778713238260520526416836735892571770181627634252137570455232121398103347286655517708372628410160336017083009072100906159777638504814658291402256749205818198950717903337786028616251523448283936857681592342872018257879165016698058838636125963652427476267648460592605364903600044938640164477422505873436293816280421551683531386726770862132965545295034687212486695846560924288614614546520138516423642329989696883016616450402698169636565040626215397002512488350032104814691990359019184086747128190479679725568969693587272150767627795550859121535736868753094595126555424436178873193052382823681685535318429325897726447258279930076174643211072606351000384516675850870318428092481011663230239188433674024179448279312830877830000409708488763630707341759801774934256380282268279503080454880496863650297260887660281165748572279769505828419072462154655837703992816539544419293884426999088412632348499573816904443726333036995334599622346978474343013655777237031998319624374396686669135524194331866524542850798426028221551332511429323391912843962299595477429110371846350595947278757281077108411623958084666515400032919000064891765174908855276105610233206765660780958165046026810630838981638737210547635749427757756189525637789952574922503486718441775884403650751493891529926289467663370101681407735470435204046401826916723012176752641316245616229777805727813859367318554839822911647962920781716231635043530796589086358790952686392273380582600497239806443424774590163452348013342611096031440347692745528026357518637049174037458412942686093007713249417208663124453852187823953281341768523003567030918308760597572906907330256179905918486066807289645877314048427945515736961058006039561815166013690655166874081948533601652924532127867839274321646724393704479341776602736723586177060266783440263227445603091905021335748823558343612670102829480738723034946541229069831458550882024816177143482855012973877217173264826796196853274146123650630590651447176381689116096180704028657609371854649245847684752946355621958963364294091792756922869266806348602450117087623056303600896773559425325681438861344980589304997819318525558228613114444724575604473373521936605622930665439332095083360316038002471827882617096610895152445392984195585010672714231999761177075178695847404981862622981480087150866368489186755253412752944821158206434226815817878434696740088404918311219999643301520321418104469279674191920788824678277131797507255357318867466664666786457344010519745889924412759682379547603913414528837544718231543546962638268313241738079397663528920240558250875291137914001228148819639149963938493891146120713118877776023155620404884839109401967465637495571344516456774730087949314903028132253225575067697539794650781141335052299629495412246511265203063865990935244168157692992132009877003534312932527235113455374487541578660360921097610351557502734648668202489548114715362942890891717588484665186386248997988933703429172914464082675294979975566696922429539716943748923042637195833766816136240918394320494091412036390834935263893721101657409753133397184914858623157334368578664226510105537993246048527310031436614256678950944153053690101325415954689583672391426446045707475382360462139869740201543075411117164245853531093043834648159680862416730394241791920606246183940710357957117160533066415926809958003405932075705871614242787997657631924201006302376873132283949683540677331347181221164406066166827699342863035043907740832279460718598662697725532668832655844227852794523687587413271756960482445109542784709141343341157973597368214952342645056539783648418033215276398157875621402727701306587273149527379810587147654630415353109309539301232618262284427779063581778071844439216200586572609885178154854148015921993062614182447638609191335145007850026854334487062471567005405660022303552783089052041854381802184204588623885461512909034417206141358301001459125773514888456240701533705077103866623625268699268972516862100918369066316246532598761309676653096332670464452651588269938212612891219760226647486915361198245979441600573194963718734405432976439641728738795832138200395865368060213664246854034164997045130310665923125843046281929499008930903861984669412770821031471428741241510374858324909901444466064983558369987625498868999989680271717183367329806467633511907088731578948711913643561125843466030506746298854174264513524204945794391599079461654921858754117259441315585509644730606649089245925364176705451389539782501058322271969751450832461920039929996696779336376755630148708106288361818128028950281991440383311572845751161087652921054170985192375346801289625375600980674531328412213407514560433353397390945052663701545572253943993810506879563624281398300648288123713187819595324439988536412249100935650871838578887411132911593534839932289439325862325989525098862899624227975655742480825765925691837866812537305664758439612751395533359755890637025763803071314084769549657960751195984677027008200468112118945473136666715308436477923546417410394874876933179815418925124335281546601908949186939731994385976081877486034272166900119108539112205935177886178870225402638426382975370679737093858945447631145563752471598833936535921886256764064091506626378686275322658285252834117658168908614312759356476600722829956570992974412056420655635695812933238411028903531962797387138336324266109798449652403779706917943726829654554514737479214161791778949947634997715740923285870475770952528018866688338166594850056427091705961809334413846253971291629990998530183553187872069655590620864433926940329520749978062611922459307967250729541034498715260812246728119618793573543721383972797276192520775214217625505486071728393196287581684150218518767176582965582381799153644213401894445696668838786039247210286251515987998405662314827520398981709792524994284862985071486619342211869034181268442784318591918422310244141403566668856983868060541892886597559852963954663378619077781565852153051112319602643328190631853814270123505119770295677437253623570271903913112590642451470692351441659942505619990331273991948498273094624301669343764197161683491438454762211471022621502517732526199822799673759701575691682961518325120821582992238163095141738384757709788064184936410189391873570159794886781531089439962529967177150679027289407247591431245437043911665846474147390125682791362060074842610061868166111456865694895615719237727417986559235561028632585671815144918053608974818420982127520633741991249821612088755249008616229696006287700874394273087279314554970202959459539625251349909137155676159089324861580213826805328849803149245388822975174998399713989263524542812441739357804942620773027273891147092571272133422413843864229323362967982243721795976105149767057943971988953640135489191992998506948814853952578599370445998628586931663141852501367153325196352224561008984758210495253266925400890340196760804412154565685312159576451159186448231977087561437573109134684794406937663182344108285117415213336387683048774738288662258005547879930309252543567022892729401120346449176090751188536076301163129953099774742390496393877645185523464832939162309677550413091450676619410810076864272214475683988257470973481977926936476179944398360054189506759538575728093117495836530205619991444706498232779351537714226167842142845999665304254162211009284566895351314766495989126349611222832886617310694127185321234593113527348879105770851868344594290747199074207540129618893283940104944459588781203444742982712920093732927079026814249074623643679884886352537836202858921562220637697078793990281874172515750810910323996511400779049923449098799833365358591779180432381946169115717402493708497673886010240748343405336001411166953307885944506467094495753442918094676944551952786758329037605111111307317652581224551699854684514030042945241740168641948569848529867283734620433197478983366477720010849570394478428443595711345585704080469903740341084282786116221591734073953868849702229174150167706631149280535696498762856354584747436463717015964651587753759670620683158011176547510553829211434579399557327677778270058290970767605159215808973803624730691045711516904269362382020804415586164885947752356473781388712996618030443532373440304806150119008059001213979339668911785991266035793458066306330362571376647582721428942713437083155544908129261912424361326692342726810188503153847945806449550763175003709350710914145162133680437755397687661772075806085441768279124400622930776493795038729928897162440763307803657003754881687618614899598118453875332522930323435550889869096594717492524878840460745321889742024870220055473875724834148889056462314447018987693400502004317660113585151024987332052676638553354680445526315288925402673971063779280397531596428838870306761488617087478175045526239456116811662123609948336666041814341839403642879145119705577408005448267736224568367544928795218321796968774291041893411261967967705005278457854781150594706558810750455678884854419941076509108524098849324668003793841032396601731747596763277039419349270621590886385481182690631727432642345933815185082811377316432037631203841106653031818892244964410757065047153438542313523151177344349366294308099167863135889208629565148775137624888670871200755151612675432562787902249348598664802398558772216407585330089504850665767314672719959472853636763533328932689575432702901991662507346174980039352762499141376207286568011706885062621406562751393868538226485442785861098329976982626157324700872921991248738699085890104622127665304169691570444807988333261723053453766457048587099738422127929370381953201773589758920096693610056876479269439401728405368007704943046544333271278874437699374926833691934112626192128530506052580951232100960438775768340065241582421480174689669836762231750880040600761078239063342458437528831561517929240227587470828478316147700521681323113028744129792339612828174930648917801782334778405328651508783658654663689100095650280175887726695964867873730089249464061073754414683208830421631238251589231455736278513625724908435734630719081727887845416913766950141011609057119641450944642421756434107770144104032337790834960895467472018000452436082498523670199847050755404261309643827747988901822244485244367618653755030602756862950177937469220177507580310800568603126955912841621272083222631411247857880084605946864296292579418425485856801149491068435995288882619606417579769803284479903550391032820977616443192748099877113187177510509362622004772706695465695423491482306822256984755932478299644675481200152723406021984864107399689697971206531734370215483786875760706761497765469034318168120187162485782633676525765150710398510731650033482673243079871409819689258920505792893865109767986445589711025215158860679559350680259746716886890347504375989044478904541017867213415846925780184394920399065218450468729820412756199465807906606385265060546775952297211660348348993358026562733212998130335199971937699794820896623903330373232500252835083043351465455246426499204097517630053185547831755592922403205273655042250604610741875237528251996970056696343563705436035861760335693718953944590113164729863429189761419921633465622177757417960886696278442166433059415463672268307044296150706699394054018254977758764745735602800703022676680957893098789395582171260922304834893079163879705559232889574574961617013066898723087894066936919377073859372569378036151605448588486352551898142943883869546508655029773512453930181999387926333653047999577318068689758400740084861503705435802701972368240123381949647970028383836005146551937446320082234391633899767869861257326105441259676175475969731834990256115004233694858850046787756443433490188439167858673360096860401167757493136702149479636402781645581856631190556885915014472914901123358390419983090634760737965839786236413033916047848792253981729614823866156831647699957274421767958456410214253649743886670952243594189143821050271029374423595534313392079310363268802073810965940169425498958235194421506982112887759034919128984715146610343438047957290446678585198553182122132387294828858239501297865537809947927972652798619236626649097733403050559235163806791074653952875378338499914043517059890560410117914149894058084874629294141121046367125949408144511579859200458419751123240514730583100146205610154431400364534760987037568067801554136679822178042509294613464019241820463381906353982834935051700192831541832622953405205565712543197937368197508541903667732798195071387566379699072873821709638317927833817136131246149109664658856654546437241309832590068921277183183235843196609681225915815950946359707056923118379959983690704806051669823298300138392314652167614201255361203732154424267052689081070638945606408678326969326611874266216857851990217778183273686393509945670751977142616566542553572572774832430419025775666791639554185332597412736197277272326639160932739927300963153573067476100132552456233985944601472805412465281902591499540347476144782379279683386059676935134913673095472403005736624088733331977292656312529751613781631260072695186010753068513150308444658713338956802570011171312661609165924105013571430945746686860573193898133729951483705349967140672439214397134976484154653983586956696589212998461537652662885832510426181949442506717910146307377506287979909505954882640309802892324331492211035095589572899151402450989568056487758844898131236143278199652534480239651248255774123838665862277030652758725161178171115873043681641303468594245908533099187909316481269488802662202554148401707211924191973687783381933557108925051798249535962708130726111338608573392358843303531463772064858314433449161104035490597785490203419070720422756727172827225915955252891225573621241058704924968233948314702194431789558470094280844024271069275523259735771047537792231323640770377716011221761952259702842638675735786838282198737425455561120493927001596201153988494552769786383463034659616836886641034006609827559706823480365610127545532380184997732008369371222804343909160773828283913192782890470443324281773591737419966740807504923370049350449181170456729708043507842718509104185574210710379336923636624776709027056133687566356672874620134203565999839424668784276812976139214528372446491870970823228331049345883934202236262874733757301348815506317169111344128199326316024600147796184551869890021918429128092244170951573016873973164080594150241999005321650981742144311710832763334326069282584254293207537531697918420891693659802798350621417044976043069280958311566912533278994567161149444913255794740796931611273634795213819640572354733261033716441266855271388376676085235542169931682909438485460702136540945335842694259693815445807464837376417477407892024159045037228101370068672693693404393233548570960154020552143294716923270307467148264912147035404217056693912070233378946148506673196822315025141038306001114504258082267370965395611528107912926847315344781565303539959575838201460415550746595787476820934428385226615834566008630203686091990020436646856054740042099940110321570185513700234618732030131721892532957938880015020187044804259633102338859866301774850195197356855909485544761697575794053568810845377755613351859030065128149509144895053889364839352617034200167170723790808228993630182928901229546409289096201663062708762555514148105965556570336587508227030023093660680145920262692559089387343023633709200413036058073471219502239407370156047727285539520049657822707235657796912332948486998685005701321377726197223746477459168049939631429407734869943266522062969347104254500884657736331681618824781949764804780306156363793649307476013125697195557677649940607722761165797150795388281494648803255424507018663763277617748607436916474935751615924086317654083422445757942037442821076068512978144106906962438558718281378497802268466343335361697823624953349521422484862114751297836644084987439313279871698756837265763000304042081105539247514253597502213335360347793326889412475013371343529076547334774260361858296449239594572063418368058772420841322918235900089345385510547682504795358743448800465434914799397035369523533147600747668832866573692137349101345652039564076663284273955280843350055728300133615052401555728396437946228444110472088704408061753319591734051123290228361468288500376764875227426741059514606778212956072489827510106135862050883621822883630053490684215424527960505873482611281624697860400096615391385543782714623471822516445758204163136397851612181077737670347669301503794990037515868917337193929969211525110319985646240459826275271373696544179381239415460209253439424113854706241052358202683437834149679680885197456683892063302397495216290415459271440724160948311204139897132068909128388387972371791872142410752967418890059418211211634132129524977864348691171963615341341926657052221043162091446440985663842176929676942184126580664513557368832267660751111721531224604881945397675981488259168437578913249586350536093182943529334116990905903886946519231875390594288234686776468285731238940649742722628820538037840848652709906382885992076533503971880737433893166106134303786440619342563613937190405321456288860833179973391293392383274496294490782994404587908639517296115747563722832051214775303819071095752739442692246114275355042341422099744011230189452606394344002462874101342246224470467944334852522500492444542329250779102940664098055134546986621831996076174681076158708534892606024231706481138695310444643021348084023420839069770363417662802920967447516732313576056942844220461234322690694755101200807148346215023393335222376408591846972810341884986579234040155101562205261644725662367324512639961301523446064639743138041025899589986284138723999489667101780521837505947217967523567829705534663102034088622728441072416343057884323281652788224869464978844670588875808797087176386782374554393319677138060705261583689926324568205095322462615693557407438647977003631076639247265108663620362047856015373038714806277891455055990470588479659258878454828387312615465269975004382428258275656824941801412454510259926269720285000486928117163101402813836385905108232582030134353475380749195855022450163818580720076721255206116436939096504402745042123564948330307511497757130274226322684531972365824053602269896359674352242706962995208818727129648173006293604279469166251991267388039211390264433027328851561786459517209348060782965834568332019038924441512072828678474642474965069985335153144826500191157889157222666233299541972029608928528115874856237388380860537413957690621728297033434763937979169085428420440080749567680275021084311726841783882966723367467637068597337326338261117512636120799704533275019063704840519771646449700438385941494234675361978801599797126747630117956988557560868313629643946577294830855047293592308698204343116331352229851049706333041454480905748958152179134464158772543104821399839049669414888777661480078722884019535679955928073378384934385052949091565762183772488473786613716822458887796356886928266502641822482186469918597679598951624686142765743672856534237803011026162348018957598131134969884134437325890344106883179596488608462575253783289007945698657131997364289691886750668444919111014815508359560194958599789134665268507986534161160866162622468826119150213815323257403548139194833964706706588483232130787565584578917004272334447370360710201401162036768588356773379188878399044376766704538497597865805407510755809187522584836967909189872695425397892826677297857853884830183717132670734904252350392482934382205332193248215914021454308815269957028389499065457855929096708237604072800069817067343452119772278556854768379441977916010872897428558315298800207607853720566614525576991287365638832451071520587553241197207186464571568178007025699297826626823908954777199249720458910414944257514510908020423665690814472138128803980706504360261879330846473655762531484570085562755126039270297198928705490955722957607148262758433808754791438849262426070361854541243426343493909887372490762241617446414730424202684760314491748358115265283448553029488147835934182150899957685926577937441248120857307803875018915729446968849800977933791755979970885018265901835165122887125281789252946604834811771528633510461950469184848450335133792833932955878647006339402323156520628937974555049379525167544277355802749079492799133309171996656955412020241201562891259026514727492404316218921660241745493203484096201483052432885482582382926647771188488887481924765652277410288339835011368620330278952839625337132030953381378904909673375312555446730305046464925248204923657031068313282589964518366361474839402217331421375676396090862209142859271401588887266937986410033737821146403306242778069072555883721616614771900183902460119973977110919288282185791845210549869610711294486799869585397629188175752227261569119445510630770127626864875195241967038814745504054730813016005902898947363656440645140078003906327092278796999439219251980432626782153440453943027053450041268272453476931367331348106218361099538303074297750867744587568951267526097746006434700775594296247083204916441025603009697232371303440115925798843409417711434083761978798370734198985170995459955282613933968784228113307494143772863348611007629572762658315091850646182236578316956332237501652626082132439992150059376895232061599815963620518980601096412190643688712377336923298738671048068873288481256637652886813539819636280390880376970832585403832665267782020186356941949103166616134718463338531564860961159873138735096271524111790056193407822135371622826636951964141210601759925654841295087617507294231460810912311034799317853353861198222136431382728375166630933094356241250629429699838510201734504102055333766131674915883990257078957196781097449891345018247909181229218780944999469153304374659343032236318490791142197373297968396278646936286831010594179236612373202625867162025200450119908941077492036196975414162005031841205642610884176378853872308912242691528444094805949080073065845274016328755144452446826306835843726705469664521958238844167954634404797912264635637458051073938829964157052405927066737007922459866715353729546434762122906383485468961701592598972956570860167226070647105191307725228164302101758478103824868102208887246598252483625467272010739103005765523403961070955028699305771243609406561121278385485338006598523083692924807267959079633017186791780644935053096382860603644356753250059634786544013096290738262348786239992208017684763735365891203539669769811535035863240013017058134903746570084006831822863344195435400608727359232979129105849525122290301487179975636110892552309636503408085204291858784656575275095677562224132336943111450337508505657260262812499154131512184128518953383289872955209416760117469358374428149078003958934998265972255200676659295357009144654773490251585912795921409018599451343306221599661620543788416623167643611672944189127002161640751893364122321993509041470674121337884547308486039121832862772914805362288114418848427507555183060663811220437776324639240572267883723600607918256928967896004140405829374037853107895956194944395121554893169832742478914282526123502156134262906963248054946185958711910441361757241566232371773667922124714313935475405041058967302746073600318680507626782635600826478318428197053837210123717971574874436619995115988388717180593632751055919551076969529919622082070822885520024219278331080575718409065683024205474788865516139747499449018138341520985549538426856018826289216313722352417153402294156559887037933050321568922871519176577366424860549866351036190656293766216589078890780831953115654112747855584996742728914493563268929019570881055626697959129403466306176931322852946181871860834730553253063969292863832578833856278941923090540776596899132503065519392668378440675313506210452851343233097589803620992758713172274558328358226811158372398401463031221140976909208390990957787619421076045911749295581629848963713589790366992705948752873899033082097986096898191393956936533158461771558556781354430469129239360425763213313012078487359575650044451654975974308389122490723750552193052076592802973393656105748070677799918956265413702113212683110010593640644919786597318679522829694390483611299135876163259625796613144115542493548108627764063488332423438998031713753560418029344359460007067529221400243683408424673135579253208711548058616557415372713337574607979698207733300996056690380675924827491015254639907820956670005812232070524828129401335849183846751002248153093782328439069845650228442924313369583426569923612395123956154694244272670543028729198651559610571937917456744271470725424700239110065893277096166729563386927320837290376292161059313527693404959008591246547854603504530432726708984789046936817870408311871295953421072974038461263714817928252673444161425995268542046840057645090103380076221240130772869940647408846150248713045169521463192861781145557660587062574533261100175319868135482429380326138366912392796186021467102785632368208719209566999354523773209261395920686444498528718999578427531917620655209645914701719223289163265647175616879123063511680861396056599754484275493133371200424865767587587789743089427457489485916535935776014068986691431643403520017696675512515736672788696168611227793008708914976077974199733773923488189247659540517493263649764569287010127485860489388022576397473914337155377610046967513259802321783703794562805768087079207577200819658685346639027803641026938181333192786906812657221374250734302136823830060561641428238680891441409510392986175589876458841352241044135870704426661539328154195456849882194716230368763681129377441219042152391662152641505114818413670894459098684148251880795311182814177523240491398592969907087744568962748235650002985780967404914805099817327114861283562888530522031999377070134913535461101509339994635013902151725713318502021457049014109199565182934895211435967749745307270788334665674051837282100341690554907629238454207950160863413302974786067194087999109627623389789524368534598500778752390975826165040109999896508719482366721111321790926077271360953668307699324228902063193566731501015518452382679807872977701915651948989431769829345887458466494323608413559258786281258262164537076518709365138063172394018547606877709394300536904168059903994871059424675314962686784820993325274378841107318054204293215819603977692981515708873662947000123260482756962493148944023726503790766619206229058959079935888674835551019979587489618685805378161609082626028927454603113590686745676292374396806228192282084700327261912283653116633163871575282967572148100766778530206481418904897748711000758413392059368377642538057747441235759943973083631920291933963462607233472377181372487509041948913002035161676186276217152814416818453634916217192058415854590015611285590691506840181976286377383651863000852633653763059535000600056075226206659375637888080791797877974116555768893497040213523243604897784130375446895971150339141411438315945915903018473544928186716304906281569146616307471121537507956908301521093330979417988954457239891314388321962262382785275578569721234680667708747709068136810100663270284982275232778484924334620014461043973275599742725068498841223409043960769808268310394170931591804721367535082240911439185625650974567170092149054737969087626971789482807807323756764457567417044048201216188231806335301691225545212448693188908411283225583858631842945624169224768656037540743083164239724528173405028904690849350452441911267169968557110655342068481180034926794231566973159615117703059885100833188027287170636810057450150813719629178490648122151807881990030661739997181361497402435282861138628745788211439634500060622125667208765536997990909434332193915857406875927617901431201670191513129315668577236388969805321858614611826035386342046972728247531534730748243007276474627879467105603250572336959153999598834373301782241444957179791863207362451870748643678847046971065226449742209356843837114722915483320937789394137124515942674808013500000530266298348956083486418046056486997452045524619484532113459057957847531960862508868272091501360689109765011980900683250364508779468097586631652930355124178474795039471811271267882938636761199745157668120786920175463281155839733685716257908063058899939023958550492740052315148964896307154398694876721960815794463475601422404947323451922894863629721516387308182873925326976295305427075659546629280827380109128923287853321904100583630420033297236035725801431213457739411636254365011786448175205661639773147227195529341453334848822938123641887894399073125596320100006949509762212985292542776411051008305849133368117893894809605279365519268339923890703425493972748108018528413034515323130236821371161475509540813183687496556868637822936352609611511212328921205375383332921026416989481572205152110822875817996645510059606057672050062501062676424381025892830041651752735723648135073332170859525306947828151546220800842203722898368981046700632726304847566646512657543613679314723754960104115657630040537152451447505322853770588724357228903684482373799501548957578317093040420627408653938108077540383301654893729965470005361075576085294817337688380719616691253252649039111318391430684145540768679798837154635401954432284447282883124017813656989983717298590086406683016673656542060725301146103715731440210725000565210149583812904746836626326312005986309328937741729456010417279325978698936009560008465395763457160188313574793810123089116044453713445016545884814193715280740059230805751454413124594664427718198289872598458741536986136728765788717649318019083465767334325620399263418695238013072251598231676108644420513668639164956012594502037558948756009672201576192260807809026482740442385724179463438615662104406047240710836717987282243974624716639536718011820395100541078252112865611446955650957678484801138833252666121294188863607535514063681039195228989982015423628400583687194659831409071958676599193533152597825144822468273908475046148640815157677935642769459934160456157090039689923430140313205879572371460376799977364357218765554422317758611048885884742368776486580425332852529069914639643447851564360500369116182376993099070539461117357858984480839693596479621663682770406470799075486417277915373688535411037410459826701325037763180363926815910905831652639090685352069675913511844768171636525808421209650936515523086380930179096908680748975693848097916521696844841693657282127806883314914717302701177119414009347352591047845335644434125426791776027067139153566675156474417544082344930699275596125850714422109118872620265935022704924582588912970311451714875423744983207563335679063069340901347094571152110159906759373351063572770570288385158713024398700129992310869799150807783005010650137581861847039833605600987833867653006287091787299381466319171681621765816580795226317613643458390137539709507443256455139939451808979783881360508965612440953684767863939261991871214323831634032474020698177043981504977177805669742031071107632285624100315438812027121970882666543088735603791995946486461480276265818063752843842331799680577868467998196243206911548556132984926047936191263318765631048351909897695208467296258804002803498595850948105423391990633169948399958610820637042611120147284148543891288109009184872115327884552996289717149822855728991270119202066134534699364108727141889452228497783890655028815134946506903035769045467592672900382019070800049998396985779655945456249671554449794579000028377765603633508547855926261584149562893694067126835872158854532217475817586926591629667947472769912838979322813844928165270353819011171660478468145500402176830685212770072087302131794246179054195496751050231432338495878690496674312940872789061859174384274319743684165738948844285606681381359744695979132670532925308738254337011914123130652607310566977853392200950381600755810998637229746139675701528952308368289800900496663176190378969892610031060035714862528060109770422244019097230490275151746698651668250874578973351959835708984554934265886338582631325315570178822448056773519585115089543743467501311998535225212210035144186533407176133213681112012211672048464306920017957229393063616626660630622978509066586657583983111239498282179430578075185009756136270755609466852246742659415302404035986805795669868395545040349676523250053039000448431640004470672040122505190340435409019822072137024221187666505160050690628039891449001747424941543756886519381479731121246161576608975306599599069450166174923079171655402024288782504251846379501706820752866053170595448988767483988175659495119805991643251436639900642275528630255401117881748145553823531283902714413466180560640859619777264434048724502096171722018301039848593659041994811331477558855086714826918088623961070322945578947597922252222552957911887000329486629440133265115669274067491071061337086721230359062138243181732045644405917868712998752486518723743653497011811384363458284509652090687666909092694316399682848097176167350040756115843422805731967252502601406243574102904036419047277820135882836229660189634877700995949969683425061926637959153836350940494946174160993397148560463434101026368970048925720373385454285291567997878442576478865339653524988815273803039587901572164419771168053499128473713998422242506918809175211105252595037307687267081730102983978744878634302298427660860022330802277086237916050301965178400727302836268659990377908292505640018319299884564014465805284191524170856364269186252076174711634032190276417755523038032891187144232851956370508858178709624022646471009676242961909107429036689153433199763810147474724828686487713305618591339665718684604268447971364990032850634082250257727753233635501734066006344930077418487474293628772910686105180859863790117680932847720774332192562767552146325814121341028028090237587517250874016575486571589688408073444968722769839994360145347169406644068620245144527757032334868312708717697613940795615599298031416257924604936663373917301332078390026944282231947606332766205040693471570874066493761443346422696106496038485193587990345357397006306520086156832794280337454169516773651735904202144504996710281562849423761421850037368413986638051739532851921897574215488820350252735637637886893412963520507802141388645853879479884709929560600922571557850596681000950109021427706934126690456897945053236056205572383891689099317202268309337990230115002300397382577917906746469740895229785882869407377084864529722317014299547391270834500958201337358093216438655885379337315017111264572266420018722296066923322777140495660546001681475372401439701791771298305726091195202242868032798229429425466385665726550737057356444354066078761293701371703456721293441976696561864946809547334603416667770354120922368632400231789100151196448469349486341206798099262463509775140805586782370809655295382322462136583725130012174384822432312864673866676033390387882256637420458230113716334782881798263157708624931971085649185873826986705207666750589596177609861970618923544580767506668383474982013088214300507253918352524611198296385843881351437546058027755676819679910654088802792393832288913252570251106851582584334218204343467050639898572770034377708036556544915891235226361017468405587362895318261976676080962204541773110378412199825439175115948654491925804401217581261592250106813638312496131592426069215719324297782380405207852195935707000933328016474458405656563886442125819768153739028178357768929100807600602158516482405625974066401512392292930183195949455810770482086726239732205451287155688771170149777604657155372172223581092070495778597301974005004961655919272151642731841325544910737229947570219808813894861995796983581291808361161437972262973900948673631808672815719753969024474476541637906092635739273793832931183275974512819511733230150925663551876031859271096162732885795405711532710834960942826180517989751825124210346575819869656431291228887500943111588379136334910603582554970023297439139047400155303884806992053317667901413376283732009641173063359929004168401184092451741989544301392531178662731968773462784991776804072544533765669326710440411963972841251677523157713832962831438477832739732883930196616469827236830825327634892487435117629516956650930726101094273941476705119341779334119184539774593503816812279871148827341595475474619507469515801568717558337532558345650094749499880465600436755964125262125207710268996769034539940420323034036312249227458010599825864716895543083134391406791180693297888711890892512896126290468738202813272187819909064958028631398618775164390713714687351893204422224639336994684117064291382574255917693132445367234607106964456955660633548516200565292532416796028813218157569007088926988481978481576616712891332812663702795022299090902762532880940521026331243062669223151307343432577831764752916290718520799911662353283900540166768340779417229085552556998638128974046353852537715157625810775358985322503768697159066445466708821768708960235876766089053217902684227758431456901750301071841277862332082368118446941404119590254618898857373905226745400408376153976175192346528400882762987852448852239076517605141874602634595562539810585721162682926741164862250216492085834597857420871593039403991997983603040839745726622788909436050380792383486419541325968215189442845223412411262058752438023600289487807851937260287003717042852771049350495138040093598312462982549291233249464453907552001205385308703045776725341266513551838082317252361498846456068149806970253075358797633795555109663779448587170885431915611857854537071850096499932098879115655069364548241347787559218172663502958259092012517086702190312048398836150349152873400629708867036669560688680035837432595501711590705544292217991194223906096682062335834231962537584588591537279315030723219100790182578551900273626451201554944942045537510985311293563811175277879028145320554332044129367615344699606687757526337988422047448683943975401123087148573127125517822802607309515901293879214781799487511798782898843826854065034175175868115090637987242812695646849062926222713753312399713415375201916429671177873635426995949885425151631094999938391736264125690386371560730235556996477629994122266118453179338523995453353340474449026462409296672340678650329589688979567906682933906524052733795005570297644546314237742486667699861326446975575587405742277376907219639798728747474797723590752564266369954735880286071558486260062373831457166044185029865002411766131286110170267448951521270629760500700709112362259564748234729186111878513799236749136707205198400930780141822803125727629718967086593331630937282384026212517517497819889711076468894001756089746887170802711859076568411893471770715719881668222662264321451959244611465621586028399456239582707065875657680007448427441846140329240902020184684630249150099835812659816527316790804464076100928220124189715736159311124687239326701013467906850891394237387829763173937506745195820763917558199256256861971207647025634699515875799560994353940400976507663933904197779196742514304543574626199130084626214789970807280786614390495334387297910897522916275148937804568638095785554842341402025636590397888127559640982536170495237765765150174167337708548273667970077550035956092865563232997368188343380375094939790425711615353006698232644139390080285824813185284828223123220069955915872926186695086160622334161680089215020269728811983448245621357715730503243712383918245342969043770653472139444421372298113128538009622655094034029982847597482036024594005614805841683124066712840247217993010581495712782298305377813733724667979016679729453123351507701689157324629728035545139986671731102760077151808757340914691379071694672969597450045348250952535603522819277410798777569630757321619490203709892040474737904442909350279514985429961439864849256918955312020758969602203962107648324703593289679097064151612446310218941150177531434476008172866008344092509871439353793710873391405222174266610964327311073734288051628769891964533879582187424784879571615488403429956373160193958742029906152577527065654394213041419366969326311773679011713818371694177356438416612939713413291636546826346033555564101341853653473488772379644688820732610607574210358256895656269315305591536713792561225842836030977703435863477685740099744815028872205096743619056075438236749102488139526203659866964814042530859936972861323829546328998975389204531228612640197390884519341524813374196238055452475760705293277612768063004900113278274559533840098124795132418935215195834043663291803790175052341529838730593516364599875168944247857972720817957954437757304378941141548564187995685207152573884167690232151051664826834597699907871692815607889243682710222456658497193860155843017403241434059692169276471418097240812877132906776005055907394157866829605635230925778932507665302035254325699851477794573722766082197126887255610579790394967653348467180855952726878748634483394819108125179578391088697057413014113790027626952594168269826902558533881752791062799460810050322932618448527767592231040530933902389029368365896909461522038283437267729394316652261131476196635049421238767315723966492012325897256127091080976384063204855613634198545539108785301545539106355933897830682449734620837069612488588229671075247863900837382580226148355262528880851432944388796200530242678038926957319379822498046846033865103408488460953855531938110459014867158286432230435949793238564415974730185102555535084682476945502393423417758976216448744107727904808327556954440799517092188870335882272387044119459437450762437718396664181760222287723358066350083793136220586661888138304004336603639559195269697638411018288660392731049039466890671259373908276463502827407430180716002842564759165598742227225118848431920512940622949480126358072740001788892624346407592861984316279130037984460462129741552627713556653504057638116107890004025940623449550022054787260149196117814169613420069800824410946816671948967173888508383389271759204782642427616259721152824674715374798694595930766734567542469519409194300351524004823213320869096246455326343280597711669515624429096301101326002269054664481611033405027556839606791099701226381628653180895065761766048266066085069720983937025815023209259288353400411131667563167737061163564849989137072025272545131932374691153764870347640040381423051836517133964472184360328092352786397756458822102585131656359942272004479810599181882706324388625071346195121466888739826594614381705849288674016292591457996135150571792517078492644262162678779141091187374959481222844509621785873694460665549142157191746071367956492219907333717684566131883888905569219942489776299607566361863693195331419762521779661145184546303047594162761945757675059623477008456914430045514898632169905801484010726688180757094921591778474520173654957088014966244845473988627912046807141147374625538994565887680358007345171384213163205325853890951836633755843017178955172221216831768393838649769970784272359219826887066745209354471087384425595662104129981573461785185625959963517192676348653032610628628671146982810826937307278754098164240019017069564598564857643238807619519815771909276537187091071299030635414361863525429895356130845409314790846623905863133581946365723631992585649548487340401068802879712620006427119098971493143643115478941103299958983867361692031686912559647180901326828805209085605026550117836374858354059974725725024141386072827590461145055432143288290516586489653300491125335270267482947537756450843167486045956090158161276485002561937160052205415476558840429904784668017436956736068650150882313249414976447836903363696002870581308220420438897130759977493071340915473844785340342597223429545691665521591421692964304137504836334564634261493401997671988581463812821383328211707598464502343513703694845999099705874532381176985402199470831457788472687394139829148123451874576640454202457058169104921508991177081367069080410564527734728646615779365750464561340110371110017865309982999828055673150433164008397384191565786790813342812913776839368228673638280701757678089115279742713794589790487825603094231783641954396482756011442236739875681712574033178121560910676461420982553229754072378091709379000011771475417160875819394558040879719969114963465307995032955339694975769035946083030098105191679729607287206972368208123744194963945860440865650333461527768454731070100225575787650304494047598751128479896487911688368783849006296894343698171013972266891974627007876342715787871191368054837799512070080428336816567048208842232822011949811504143149438994838857414847039885925342089203891167057538560796212300520350691444815959889082899876236600832021069658883441657988214663051750775039031995747351896446088033737561080394608632967137530658257037219219711045350811289340019219258846124095302191630576132453569464209576198027743690332317702123734641699415130029560903094766007767756618408824516340950006528024003785180148006437445361666987511499337734114672143136790085026235922698182408051957019766854161017142940120313630255294635726127261215704686824403415444985299339955688314920050238884481510420406770527141051608529872319410284917712589216759840077120358101422587458213483599806754983706829269378119624245721130457883051786416676154498306556964693143786884037120039198426023717502071028844143716497303191924388100986719398603309937645630895956491376209523989155943615517476462934223761636298749415600966360748504315129930872249272985636922027619563198753017065894094723341621615339449425073088450387757755120089484218693831556572801193175991779621175395864003696597797933795902971452491985096699789306367020426059922709980756186775005069997727710261634121491084899359345837974860421373638227953619650683023914286024719266347579324635505419105054871804364123971802194946224623086179178119055997061610541040965238985611276924772780377561016849794237176058375777890112506074913228731223306427431299389375577191958981561012528090030220956205915832307673106268376701615678132317363888757688956308059035606583440537209611100733105706071327617371210146697419627225527411399511866421269655480022416847299578959246837974863018310243466748960962604785875887760484132045790661339498575408132414209233675299639692005250417127953240828813964392123648666668406474864322339223067290320583253203287473178287196959095453535302981224813895646023734266118260748640033341673283924371305104353116384909297460679082759750572129778699689157913798477864959563251335420604669530875735339249578014963082752008260313938005993648209518964504942283444726238783873704762667383761625366297980619548903014168926337147364444376580159642920415137767782401820569928425657203634320147553295992712429404906916124868139391120466989477247021102076412085318921617124430829070122850742105129778961043560426195420930478572897343397307990148310179699038158153249769416626577476266788196289829636736755280174190522135928128581793121420879560684194646240299501464992886885475842606227033676754978724827246404069535422382741727696086432702435247866171298566931119880460927752248174855990974749990748695468463507437352539903911707130705848842097232133374932751015215698234984543539658075619784971068307063386546687984600742597900194256202790320405092011570832889535918272339534807651439273665663653516942102271622392855583264605697978659181144405078467781038382700979050061879980656291379857633667120847250981977243749464661812083075694517439882308809805754218241986086801673043601680556550356899840511310114415480106559144921624984373934778777596220998348708156112976687433424316348930992530767734848344495561660306790602566556703743593613674025738371274178460991435027660190096517167353300960018498650319953815783646482706189363209997004276859686130844230550753224452857023414735599829816764925505696760618837140116966859664538386148109752354957696271030880004580352083724217649254163396879135168913469184912656736932556994809741855446658277792884160218822083072713429674287419670843772452799096467327063558767036514227259124353536805203553694921100531460239406789169391751174221683169605934956034496379192251390233364016303638091449491267698251537260334359861566831213869313123480457937260684325922767604512832170168489446468488599712412203594506322768447992921565944499152530439445861647291013381227775078034724245004532950372412401613669220493016134652639658531824371295068287209880195432097458376099391303130965402394323357110403007074022757640294518115658067208856088745579463371643147385934885695545732763014418138846625717273671243896420144607914251786708251762421424230888409924717055486368433061167737356166200781857939362875140825929844716986792615262512154818509776971737614055377216865354872924692688402329714023745976937719725239324258540413950902156266177341001685225581477068676314120533359417719142559087896839696583581648424274024206202687567700152650732328273468830834676903396250017147367090701286141547144912436368945084037044449623384731201485932748353739186714845444605038152491614840591008850686982842495040390653878048135539568279248741288477430421648472785173600198027281561477985427610882576180521085481138925067967415341540439240643513779967510327974045369517346835322812849555508611793448581716212645560274650535919174914755816424783183666272523834392279931647357776481504172006955343884041105117230017010706239500218427389238346327937292628420550993399421217660527107996579444996518060176823435761519983825711721114305479350814021491317853166893304707704004791796154615334416362081506220478670788667356147764824057242376281290780302436123560742041933911579793171045159980823049941859360969831966131769880929204332424521388723034815862413545661670105896548560742241793291285611316274080794919274673504325323716568863083129283263605847291180736185988421393523455838650975377787716780713376832043881340895109924500494443902149391934501862782399737924778561072431246542130997681648584907925536207101281636323219889749867239199268977672451884202258809718602759670584891550661758919579652904903508250431802306771009851608705747098632291446067339444471300989002241993786569674657632040124016806195875521402872518399337511699999888544200988174662681943656412877756870318140145749536523802313167071244717378901097276764003510211034668312070868684997199078372052457402703448586457669357963853804955951070231480892808503394599559434459987314481854650075474192470471519935318460500451611480269438642983496327235151231227228530976523237351100549847049892513651755812362439877709891719604734934441541509378826341538177573847143499737913389267594535357221698412168255013216941580681416201092106781320322941766404605307158622614656416609729615670511958535379357018219876546209454877847655360667620963065276690947567912663810625488728261914711366032789197651974730893370767287973240340059803101395952991510737446614273867071349330241537424705904351682850025508709948266275436737484803272478779393881539877442286659325893515112616157261322270766604000188254180623197600883160020000162513561491022521977280398780813944628360375843235558230235710629384959891678921552128045180643760312485201597186958919950406356511238017675641940261415374461587931148139491788429504419555036645663861193629504626989768917810962431010487910016272434833010668689084774626118123985553689623191811838988767107428142649233230932749851964237646980645198681186646807563963214881182036666182643193361084983124408474898288643671538086687735698332487778745105024099047333358557785959752919932459015793045370855783193193554323003891344004998481652868517191481397082150376935646845456410557512406368360863015341748752738702376443124197741507319306915175395775044891012689192962930376695945601494755131577292836877057436765836252395189349201106800867168667506756712735976320055513428307097942710058406688444786254984353309178465457127118734753530321508217089819952557669156461750432899391310117323169436652027424590823565504551040042737123921690385505089199222270117065277490195006161536403258834989633753465364718771076504731381255664643515273725128060920816765281733920034079467763220357500668261645368478258053416501458814085566267362135153733437548093860801367923260977405058535035233342054509566873199155760827302695978863402462928711675620552430405670994957236913520835681037016983617710788199748260037972656360002648991553895671991149164680941982362914681624875109280778377656587175273237137659394173492683286124840215066501918308550182773640616195640933816728814744874417235039003056940385268100421946217992912242332666160639109543848809875659583660145869009171010956181592085962099263749416072002227277411281868374361970063679221324978267801488786538846242937173546163991726977228763226726579541885387290932912805454469117222907331917796089862565925377747509323903917031844146330805128142584083690570243235765669699224147775590980908550664618356225882232729075296261758183604622213673817502499451154190870218699380367690302114703914107336155609872065259027025687172305299146072636849842204400482267840283371450983569495511513235490708379535551926471505274320795064741156536334533858272374162782727246108595969766290098377253758344435831002105496792135318961774621361342866167352096104971258145628692311244717408977693666895120468670598150930391481516890796514847184688863241571829066669188472034532479686491231947216594781390888204833000215865154260762081426977753356231177128757395325052939159078930283302790014191948439717710881989629645981489506553139608665056848591820034953592629470869066593987010518156066332862221198605423431287870232564577053692005073128969003948731402640433672279731250531081282128150495061383355235792621775927590445246614303696505597994237181623613300800768940764349059156719424117112604709203730573958733315383111974638070406330795103068950101801752684758828058330611498175231040459524362419824165131759364809646880949768493470871234979370630103124736103673113221839370064116424158445364554630189715871117814102183062587113245382401606270708511051161189786362471820464944380226429706833012326362215003660829646618082739630342325399598193553974553837115910070785616568838148943959523748132459315635916260401240984383572201270304433084450430148057707102840931871022364576079034115966542891052184482118400911930195956985584033834325068437509133021033347269928390092929930934616985026413247075441302464996901529814244654242966206801181484152820767451455612682141334283620155637674995329379486773134332864384410614265137582626544747284540071002761845147535221689229156626216164733070295428723511886340667573325131882219482890805152560070337953881706948113136940443902011762120853094114512201433107591119269377595888320081202539203274414857363198675424683852604627072757012428080385657006556011372269394748396109388992720264724370553279781509178787179888774363070554388830147585238927187175199762688315965725565354934492239545896293662893698844880769820029326732566772095484863885643007796719890470802551261390253995764783932184649369273701908941433149345694578023521456079783785825008384430313983083878046134906498185684562727787742826641701436485807773502386177253739635905431455848397576553515966305847179693586717438572521803934331078871433515186623180179783348710874162773881383915995794936618635698754016168038359375544030890096083397147315779229415930675725020918419558604104270507134473648293363152200862859630100456285910888316009989037541267736234248333280043775219003614950468680149680124813803357479681119604890470203447138060678316715638740858575403761777916199921311421262348896794764151390533171898781976228043375430528639504888601984767567972129809984415704176018528834375849466372201552312653718954607710507758236138902739136471744011578772954312238494260852562096499585809833219638584699578690269624751872345644965374585069843081812618737437101772650455691443269881506838466043414307715234823260389654231137674719255168568592496468182798003081400327168396698582649492354267950896702262177160271307595787251778155018452317322898655109700196582649682414182631191703258846269525719380060391267129074564063157772900416178517079393833443878955253640051713152428407444583815359090357182409626405769449106065529524093170817793916705933173152488441267564459147959908711915398245004288306730330786811239167610510534013627719857627972352958942662201422422457846798330137532789087554054919148362917637854244979661332502450574716110295612296632624455685579907725694949266063878001474190062960717472330503886872507459935877875817986065472970456218348239725501191095496235557896532128591654691975119183296845205392528884097263419573359413310468686215968550933315191579724846942718542099519184796275892396917073731473182412154704072061733427210891519343603939290449547832143470575464922585562799403626698037468325569927563817644653289984566506319734898887424791991637051499456169759661676358177330097855925629200323113429379756365922060914987518274753545607377180305210516502245437803270616209235819659910252942851366182355087429907069228046963663878406318646164690645080596133765264783056138704741209600261323218757040983568705589349561186589786906778329251441177150374867491017597467931341712219019741055140981889628125695316580857517139214624585447431603595235092952151335680226201351934347579497237845336396480721440937611707273352847173716713681220845624753662109927735769020667139245237072447911649453256926741840672703198408587907849011681146366142848546546540491593353754949232960185876891933167820357374754068914122876927031284089699255067990207228364104596462062055598465760994935606205944372529978845500599288566998009113547484265638416835172141878515098438497846216206612594133082911137688845313078210445678986129026653941000000656459189833722084076002123247504452524105100887302047339253893363739888559159914491159492901934174485720099899246111620193509923581707702082439003205748030358119915922995324389872292021877524329038533301879311361068564553454683652731251153058028872129491773647527719391589552073904527515139269178357084386816692981509637118731081510658250591759342266200817841554208069606243871084573314813786672879831096745550406958171202476046156441150014520452320390198389930224743573375609702318235636981133375155254856580409650033625008710509105399949960344555210555208447109432532323681404048688362005761905906252745516332286285623689401261851302044979941616945869120314606631911145433882805623844698365090223093332390482092294035794960488491081305453944245199222694720639877337703279973120499721803764729026754179736642869256850304333116303332257441124348371993037360782217466756202089096424704247221403857212283084621954697310634914133019894129359393468586573811258233695514118915186770532481833872735525155636614323170933590282276495480700063969048343003516744039747587502215681222503224525551870017203287544783713613576622039816226324057854835093630489091892110242731279694954984041107224893095825654888543008350134972911094205898837701329923285016284137553937994896124693413415851568427310311615192207124118826142086310443227738354874210394046450598767916189336113979524569328868314797902302609810521247078579629787564610313222893790501369875350612138169467347596877830926554848563787794120141278458027809614026239972812867552785140864299555543366042992269602828605984863763352899782863104106850278369267034089775214003671920378402251288658365349174017496422010359522450217688056496693058648916666118547714275576487207564860150642871898981123265687817195775540463358426157598784502922867285868746228152750468535006751495789409625325822679118571499945500300815271693193393054191131461951968709382142686096902857167396364871138639585671944913705588847007379733551937401473252513724503376804054064222756427411905668330186912006979085873895472487495381305180250653252936742857325523731194862601526224305140129918746910928590504243211528162214923560809469818531180644840803126097336237536331163203307867155648398861905864890173654637875899494981349621166279494589381859809473440653190898609175630302358689728000464229034627306687542621439463424853231218686887508790843721964769048644049868870487831714502610817733585310302129377355424059635102130863133149552990933149977937446090149774629039220243917594318399018315641797349352648478919682163609029450620950569814623815964350227100744480542398653055898394701543619225000763533638670836072204138338770774237210198908602488249555708891883294035354861771108112206761976204563675082385466843257119965330003333397154601335993943781793345381182448896950294582052865091928386643119132476194848489591694035507748908526628190026193479314465117948267590211251895928127614244043125133837880459974128894885942857673682668413806380444053825057509392268094884430069317346334070174360890513034715251994871709254201545374936058582237383938276487769778075690815147718207780368754564273419077588673428182307245338301528815912502210448260438059672155542714127981155488625134130172197309040039684753302054621035412178288030471174435832717222721354575303175122860577376349030482609399723713505199849921868459349239184648321127111071225209077267699856857906690232687801967660046943241743256248881624836199627530370641751145970161205842592303786194961936497689450937656311610121067660846407514775651944341420885754322176785956974496095851222980214319175016545942622384462790836006756079386722293303558304820293944671424137419761945557835758407253291228305197250425230704551512024480800887786903682846873636237153548563114449361259029612658217641306254633254723296619918365184122821434765145633485262352330169757429986916461355942345035383675757295283164952441339038667225491167703599413875554796058293789857517939240724136193045808255251568396892973963953091097299795814085387086232824551384152825022473202287277704332460915938535233989463583298320399168477952108376537470832161370612288290810499252200532787735971768978135163968385806388412228614462096751572504691656862949398667133644959143308378863805862549214374156469381084359838876552538502889425396704856318528357389118640342985785098487583954369326614228144923861049885411481361065834833812024404853518428247004387916057878537954895972480703558723711738323579514387082995717858236447078389386540796905697702109598543682147714513310815862410477150014747776532154505524904166369517288590197947802097453589017061135511565637709386296062455742824635837743185704418699012653557188869092342690611934936588889407618758694015137661234274058496320400020565007930719331995008759563834024382815241099927835983144269784610329634743231405400802427841792308407210032280607931117199315617935341120025224596870092908530584794451451961116389163221579714252517487562036937932563230710082796921687150001201425547258916728347218227616180953059581965283150059391292519553922843445348158670116780389321384870110015504236759288228510884543584275577843138078445472560090041223594534957312260564567272238492843467076779882493512054195145792973318943213925579804357814196432003163210141756279999922859326764917026831763666182725203632464404502295350941844527204334852800822671807218456377289078903772383158607623536422073485216503930953984624452771079249990730004912596588169429754274697287062310350626216415737477494978338880122510598764572139950688412415554208204569593295998581319182862401803242394316851039960428686261744715502295374425608531873297955994304478745341415752701099097093944147271017638993937725246966366320713092945152885867423206001947678167443655319186253693899938896468623594859181557834768901963532777323563836258107945502756130568306963777720973037644997296056762790834821001817462708749146341523753594821545664684682058651455753271197329926530139039417412428438319279791917023745387547121334692459542933719938260124231911716675217120629226955748391405831104475633809738863947999202238211653395247824863920757415769955909090982262202962606460214899793752811373024730770996920070755275086238591906800117757648494549898651269221903578060711973579611651745209071227177806834158249710614775312547382594621949010360522049277867809410050411779984110958917852920781338798954837043103333394287354265661247733888538140514669712108325901505495044832690818563932413501097192503206800020392532284455860441435904739345965741429184440125028016661364325285502664780715679508100994713829442923451381332723330563344303832630617241591289222184212670504364498612204772959223148285584672174559319194836998359414253368793272440862596665992492042845557350506201018074544189587876847269257556479409677524761657083063441600762184147505623117541987280536541717730976047840536802545527605678289136713811522659544710854661067147719992645114443627256087521768790805623704797863879190334119493489581003106928532755945834069130777697825841520970754345754021685311256468000176676892597734106714768966337597158621003167739133879701416624299719613647869062604837952626871683110176986977216662878442739697645530173786439034157516377687419237139013483877625632235342946352891018938664149425499731123125791823840200152147738707686572746010488142443807088297297444494123599610921715160973668865477287326915953246916959819347695354074689442737971045483256180296725018226477799376237448983147689342759985773786076463852104697494709238827468258534091400784670796112703888084308892660244742653017591779397621305629935269454624269796153579678181946452135951168510502137783585765215110652840110064220122321150778780379454626747751819635086154507300580948837944767273717187028875390639489780604569717903235860923113794593038735528009156993469730277327750678585031057287241060843009422252644043284808803497925895723464883673314710887696424812231353684924389301219757348650264439719878970059510519578238168734626519158108968745258435447449867055818785778482811508816572670221204587951506825600163056752855550263494889055951543199676358949774781503842533438272072369464550738056038343480252530273931235350089137258821628105497959907018354107831876719553122828065294987401017224761644848967683864085134233931999539633207975247218993264758072739247333389896642955958973155423512636999485607601183678474520364796157683639798355941146281766747016429292131504494199027962795150580985249187755934525639340009627006665781194629952075666708766914291975880998167046028563379511408008262267470899243837349495973820455851745512744298984215033684910599889966139068981069888634631045455268441801208110393275312304575487468894154399143895291539139137502987815282035161712592139756384586284528876649888713809092305869259812721640190058365196591349463155081724318599329954429520641906644244522964642256156637697945883026380232676630436403803221231813305107385350990077645003655216173131554141032901802935740267215377066293686489774131963999873371421326752271773644717633829943501991856440530935824938423246243119208513535991777208624841417759905547795228344196947046373462523437287674105516848573272412996258965046163110740864472123540427065445094959637387346783140712828563045980008073936183163312284502525957777071376284259369885019122853132660993038234689660079220749418821061536671563292861051485835310374442645452926839498997583601488530717877722356031826152684882699681318621128171860529765045523297789163637994951243128564754553051398715052149633300266964438334098677470305986197838623827158449926538714108642272877188626840901587138648879243902923403657786974315245918707548037839393127574364748197608114211817775922336673693499178765381908370572524470885934200637367518146697517244639488266873968569416753539314516158923699322330340214220301172241682041716341072648566952338952835124492404773680141944558041050951957529090521688663046459498905888341309434766422351051518469444754854183402656910650116166713150947467147835788005366320253889796858943318615713336767663485662204458766865416165090335592689617329119605811926006255813505609933514672695165332687640865433459972013615701028680881696072970660084994609758393195075926847178141800369393595201767100090908850404222885014555877755778548120262511453701971751628800115031606504825831682565377885463235558179879754908629450480042209614687773306312336586371327525939638852749337779602393214682392018433852832584567627172615501005700195066122844545970028366181046152432907790288513817827890690664732148603649571902838287502831457585207797706660106927096234846905750401537990462268798643325012122426546982900208674622451678034922062248406505117929069082255332103143472690476635495228918711121514916009830812854576604619852371909102103921229734628623735709843472424736468416093349932333666539946744712818100641559689198151313691944904693200588281919988850454490402378733583693832470876082913732608232924646511568708505063572329228328023818194469475744646872393016524826444136028027283487428087642647208139101020441797873793522351991958866412951227003276611598246881916069126531816772511804231760336676165265016088762791191511001033353597731224765683863394605671300469868026350375327047571250162659475370499743674776283891228069463806394217104363590151770379828258049637653036295495150748954367276681975383551029511710416503517817072367038261563550531850501477480516133321652483997634443349129033037888417848965367088506757635179689778550677264225152201202563888298621042315131431333694075016000763450855528784721048608928582642865521313537533575664753717159349385168395512395637411138189625035704747064005194863701102379847491077291158372932200542515620854035473833726700531912794814880523542999614004790968376600592907649961891270068862102835646915301896201972516217191649978453865479503080101261838528443035172385676536095271149985653306095630151302428610333427755744012449580260077053993258183893559732699748194181121779146320933390603832778260924671810580874551351345372969901565569785083222502413874869324730216269160524428646250601646988577156043606805862755889949018887690316390116272012426487912056731632035069733651921935270225634026377176617186202054272507445972644816104485970331749604933525102674326132525832385198642825840358903762136309930243313274195794588467737660282438464706235380798719740729600091282784826600031149194572040441810935781779002925610090019150019748118400067841917751201163044285066380132162338592367835012751491753023722632029569891445595510850366681623021201262586989097364698771591792392939676869995739527172759253823367918174627214525251139276295334480883307656802787619942257920173563628526455891611655388775849808176582631773373327695196416671322062075820824591117835210962663742522558821624036555097831107278594733916356830102689357048388270128404845226451435090698282417013070394454950426928150690287520441591370647132915674471653802757016302285496474708115139684462913100591747257502186417483237256874297764658857282945140111895963698583696140690953689000651718285329050952839180356540198482574841514980996313001420219897331510306997942892076548611781556589969052854384684003514751879985046565298051013104888654813957334962445091792885988020635079201923732646928740307357672954878175231796239051167495005256288744048278625345767051190949779126399771416228646857802966908850690160575864918916027499294662663774107729369989336619469898786773057409862000518140249919267098438401171433058232120779314307546751108669160956227356037229827424540332198417460476572156514028292163794440075487275446539260155531763053698151751524752530972858311877231860943447750692830483704248759642720358158734660644731470391769624214136538497722549030492875347647955716930995798336075749711912880000732484903226726508618855359685048609183486125754677011597570267603347507134777381247447735073822494010371633469588596605756106612421256566789191624147116105370022330152316367488618773895089113118986433224704602523862776777464795109203843071689192451746401289146348953058280970971203090106030387052287696006103254723215988842922213426619506645776950671098025999320550407685234585690333614950395391741808441551034645017409751236163529659951494327766999774159663253520916188153758072047354197328814238903340650433580247489768516981861765373428157038729625038933771415716542163842946588308790824487749473963472748478488064775051034808140286564147212506479419716325278487401444186360447355132555060342416295422600911659609209012285612331104626706367191179941052674541290474158043532005459451113157526078498956315167973745672272775017727414113350255237190475180663949285574343128822813119222098732508376755572558620892740582070184632127353952954022732014777487073064217335994206620431092245327871122327466077046369461228617022748248966600573655761545573197003669129897482119773905256253298839760664146311120488548959450807859874011227244871373323504211277376727282450492574224760679907721299450854351224877642353657835441626582986519066179642055349744298361550600772444112734558103337189741295233878456528305879763852604495912868706649464646728918764834950187984245309084404965023406490387042296833172166414844755439986751656627320085027237156093404578620163892883005125258685741435967962131070685998394430926846440544372429656330070375937201190992695771664709801210358282192067350611694733771679757079161468543529943403127017417836633149147255295494699934678621677505500599764157273446101156677178341847899046112091025799311959294037588553587494467148625370995458377588188032206400757470159669469099475023245017496252268786386138312461554125921145439830684788476877462604830695780551457095779845199692589140160990012656231270394062198668883802360171418496322304922824461602162019206738754594326146406819155878513429558746153293449604010790669292239517941893633925604275347861131693631374112166343768978363647354498277715839817839447919953045837133603527909694821316146582624756052925588465524378214767754683306077909605573802290013398845313526135447306952768279054084898643553162851960966342645136957526759711113695649751102088183127001540291009661377046446617773684134963898157917823063096884801533576032583524521096764844105760328512627722469065645393601260440628248937819672023214484501030736631650503304151190598522487007989383687769432575786692860987892796877690381659275539783790291952310627224372846626810894271651020399032620269357347871120130241562256809523643112355924866144207348484138248731492902631194844788727896085919357281030095206911545275363863166308064288928676766269433061545263989189189169237639253070589338620449057906369396014726277607329986803664064502564880449343783453785139200102799084788777073588710186244044852286352436349989215419058547092360558292692897280142787035136995032029671970902494332513810191626145620673352495058046478764190695501532448175021707681362967904177804566369552292611271095406989342000476327575635905666160830370330319981547641018933618327745525325727341893560459385312693790536506183532321057988362024444903982671443700206789171253587488128032651138076653749873415826875235447891098665919649505121746191694114356591977415462144722801496513006804872358564605520043222332379566870452611746222347507445609216968405335872817475283847210877574183743748330278024748982918783981444811139623817117536529752306683155050672450645960244973588442958154854920157122472277882072359090424050976886214936610365331650112380527586985227685838360969720774173745102555524386534762426203557610451303447415205252012260062828790075959058200143830656021414814683052825639676666022969077256046626841022618060610266106830690294936278449749438756137523463970178542712857367701283731373729373611310867304763423367901208351797548068286350635355937622308668312117431698986071982465319519500309853076913426639104794462881087120262748568742027917277653541450088619042860487086505473943552166860652278090919034477422166373614098946342268186271370335314795302477913571745253967301216279860696987252616214221959457667091085844368038515856608563064268491150507440697699685042268094660552779963587525070229772226391753888692760013764069603959677369983661073103773675225715440523329940847028866294123173709898152087887469723462091507214459658011732390625220732055022355236924735408371738054937079163595205510230423785968420821778353667573983948922341773810730850143858118245703205291873962120620498020992667273007796137457416991218128059526034393507259982159931811772700733745890253323070955531266325969010156909719971944741443256124945722630425397616491970476803505251366005953808485387879955146157904374540226804140955911442733295101822219679391673052331554854170729394913941020744379108732351986389017884237171103095726837285125633079267001773201143838271580812465054668087781222347340500179732060949259154094613590340988207275926579884790117687140165556824340029618026835330628567125181435939134988152415976777494196830100488132983816646247540601294199343948553324627908165083946331752451668309672738366257013352998795963051258978647573208944941621127974096773543409487049716056109170749210382550945176893541715395270906732272716473507180801413220158670865115790647090355516311657449837444124521300641575353206172601650708801077849054013669190400690805284986425358614623124198841138561932324282063905587952118386741172442102024908812856280445371141757541192035672496227739389423808487681325837529752687008779205246837578125572045287822340572168951474640426758294495946354994679378984087819161525911463447172129911877528863849014882638032959825809316343834856170829237690713643094326777270427982549975483813353828328497836244993951374684255727248402139343584931890995443026811092324648707612800264511472635674867175302268695587350571020831009350622816689919876790145490962396741759201703461712845127982132622530159160096837409325361277071025695835703701914340961316472774366300205047670797821031743124414345621042270223929383285813549445860064967639612041940365329369398535239782799550379312195685343377462726575061467481849610873672429232998876459634501966434757858652490817343588229186893283662572308017525719683396302597789129133999192324515770937800241730799170898590378536571706812045197295673476466554658531752194072491190740329248805800292302023679259605352434971255025368822942952648221363378386971067129131219091346375198295028790158067487561051055346884439497188674876461559609300686192880533170283530944127193940349523008005906067417024629731567939248065943871036117543092114281593568898501802731374454461664385492056237147466785776629391660865307796068987848853513473236725753787425960673636101892970088733079234817884687550072167644054929865469983476012477501868987755173634177307186195898970152918194919253344142734496559700932086297027204857372670942337985861893734248185770036349457266972757805473545811007613861395967117260115166896079243974424066976875265123868114075444281330054642695497133266009043037674020585551088376509307412695573924199062836223528779171284148626319581554198187321147882406523481428606665481040156185852798280235203570486339832919863348764105026961257554606469467134246703597097468142609710985249199068053468661832929120885382412367504799591875920387344923600127044805528297489783320250144392301173330429572067888789465986216975861052085182397586043888799835238254989893756518439636876688752607116459470668618379533945319657284484890832225605697885452965989760829843632296816255625738584942021304223739366414344410163349482541300272118587250227924912454219250281328434752989585974719764896325454770332406918734413768040767395849422424287390165888090563322533902501867223427340907060323109267861837614844023094333628136007323762010463945565101720213643013098757063219892320426446962433686877026841231348989829062728989689013689652965004908535417117476247642263679449663192031602284489419983175730543818933659378694019688924353699308841191913395109955210801342008189624216491481668653363829767774045416263968485887228787867731081903700984812927554342746831643889208722515752695904434689337506402292581081861236473873518667152925427755045122097262104265610531928845694963624696403051050252240839953957040034626967634825255298004091701743574322746303480190654797871178147036549118309462528498198330837315973534853043460948637606595128130118434510150648514843163347655385853935972445509287112149965676971190347594054073771688388842799671539228630195704332558611229169636805611421195979636819376211860722670835728532724082810302753467005772102920777927367248225838939180658600358313012929893653528563561154004837171146944146871015677412767065710248366681487733089149372864216809801390131460938351049858366407985900130687696348062098764499677164115861020713148960786588965482580896843163899245310425112030698244963808126359436471680015526236378301757351846904125799002540580119279918878679763376357537692154256418029963462574222290659555098064377612746129702038494680465845501145791035412899651157405801307836756115235275633160372606685383879864299168948310429238501682163081611741008926129402932737790906166795360340118820182048023249858749721485349303896939142666800363951922414572456098263625660520667235013605956891855192498533469594728987276474732793003785311654516724699660229865559966892649453593075140255688071786924336832928058997876259920455012779618083729095970890721631417446561342325916815608487354866743510320050269015902978408187174999681676151590719794338292798731225193492077624144738450608430850677538648805835495286644139613120148003107575874410152648110327842927781862845184513209565972217585750605409830588972874309972720561030606963846962335456635193737597539524762562665909120376190033085942019802348258429877344607791717365902856407141772775671372824320473249572680529216913600281338843411676871708278631263279758192615319033874980817774449384159361290004708363238030278885675517469625131614913395111219845050953118281986807199847065896764451326988583485230935424674000482817355516399054787935504640262294820414007585200536669262995257527013145749970416603757350845534653937328985176994423917228993196550823996945815647464290235061845516023312030051506660263726975263200501774407990425399028826356375413337128154027629037917335890049731482894170146144908063572834756880785753440766703448213344377583534840373933976711517757371057587452389201638279962976685036751751929677739900600026852379232308166565082065083008286881962743119191562008437630345541601836141455922741705191566192159321745143459936344699920166764660305688394118922469916566123062259608338282745280181841546541196086923661002973214401683368805276860694073428208923458071151951092617498926439993849045201295257346719588699517477677693261831674478739162217876548595241936608141265015686201076627412259638453391803674377510465004832988541660949090755058393546423841617721648532130544177339482964123813609203061932100923771868924476839928014163885791251627067071772923715518191969340683282757888128093353486398266857910854870354486494452682206296874554980068515978427239894454452003645287758717354066124789379258701797038728947423698370775077760934679672146927800360062841266247320787176681983256212866733452960895151548690768124800788755739707717546781742705616565606617661090778320295011312627656634596113134021475294361881540256107105857550114486030182582569883915410945299077443472816353586556359196129257336912462776332445539213125027355170952853203394106338544531276867929818438773791727761079584680209313269945232321425614598342798654485541345467168345454392180735160752063851452242524866160892608207117835530475350530251814664730725284720413990589450802858817725334886878285800124074679478395547596587658088452395832247561112192387576107073922102790485523776116769738629004536740454235455102705953674753228054769732335047603822820884913696907898880335678585426708470022941073678787461328706149497934563410165674771730733645565527584281285394121348986964577666341136244930550387203297833828710523579302446902797479256066962461512064907690465097604460208717561170522314089002404244833575173406891036817647760063345130482911440420617983008808604598240876055135893127518963344548509030204346177709639358208983244458714457479785217524936479824530345821096782515374561162902810185753331507048077848777040502409058958838615708011321532499186335218596449660856436021931501425683151800630766674484861225229822386808162122800689560604556389657294892936026395113501744050514711773295729100109276993502743954112927502075809690658136938333880769850160004049106769860145941034581645157101333773367462072466083359580795334286553047299208016633487736167666406679901662960729299173171698861825589650457451818027453554889926256793345799583175896995630287817453790820702326271040635195309814293093613575579552721457060578046742761184909935168612246381497824546562308824604554555475816891383030211485216108953141016922683165806551349193178265952309896748351448793418732819953185917653927385651121860803197340043614098514272368922152479003912910670023731981252495022520734000963398603200964928735718169455533949570391428068976162923619508580760247750745992050446664253253477803157552226815340702887324676077382699066262532920837630431012998919615000382191284455043098374033226111995967825216776683422911516363309168769977440435351494134354141786819371869394430644354973576002401721368481681617796243880660601695209858706818873301284575547283031901091903768140188585258945140792638437626222235606878804745204493661835710908958519528223344735960529896346195618315423524389412549358160638941309828075317606859398726915883670430651610285611524573560155661249021355280848855676818374851872102752812893082964322783463055784357195616330860865793325875860703077089982446731497462025766507129564641402857255309005930425889957721703548587562440710591589957690348092094100295552197778576345131798662208374569683196536018778123941457035372046717981712361468233847272399355478527977247048195675085792068743495644713639176845823868397789397681086550516396875673693649842591955666844682197589137301232037657302079069974165395190327262349651230107878260687672546636477409235278662489611191335065949155165213409067383140681682126314299499439181854019017067657753365982198947745764487345212124987624107455396260198230243749743716992938180792820620455249441634216608774414943250805390305551130336316688515008855078104989522650795197450491559037523715219473610891399729843599240338007287586124528362678981104383407175253927786719059411011946344457695001396022385441214792717023497582509939145300987969092291715082080578432313661882090871071451894689262197339860243106730942980297592634623923504779920117364024548525341633822124915234644080429931293466170466851932392910447886214170187762779901511376477430185346574842826548261234050695792501344880131535747440330181688821242191199649844105122355923048726031507808126759512594415089123505852231798815420829291569899751023292412767905404298536351547917050738763366149752629307299121974971751049423363023094547703231751658993289750561582115918876527363677813030727656873284258040730761004302636298284794644155847310975718678770170620347020870764599259512000150093380809961252561163286618915952469218991849579210836545814637722837717690019918035064494024620412099088171906177414464898566511932977655864774213755696298007656211600476383031347796484926528819083642014675887729936851162444709255936574909183643296311926306856292563478886916310830908408492162242128274336870854237469545410885027445339411466938791269947396161975288552061792310331537352765276035596321977102689169072084844625005097025413579641069041309521807647911713403607761489207400411125531630989960509460397287300998791438951179501752074418525998761354902862555890535450396942351953794525978085420936338630550052267565931134094588995870282109296777391830647696991960290195948146063711847252284131467683754060699761661695663473852608967919039921581648784978225683044840238282479086319911335944243810955880505731639848742155567284516620663002716748093343524709998240061326210290123014204017246703494329481598053339862551905271976503357259216081519616476449657693305999269692413459512602817712877968032978355196439840446934209562043026642587591785325501583307169072638727630019318156187068917901742719664503889173104599044493086552170568867797378724612800170881805757847783931639408905698980088189183035890065773245691860353674073609209929866337041049820673201603033056584369116644089730466195191182851072090822156672600634824818514247888499217846081506515298554404554483689187922816642130597125519108674294763984135811260581775544570698045866893069687842601558870281975977850384740057042219360559227751171584666718455028693170427354114848019492539096279861428676186185160857487782005592832932052981631620900322949115375675065411488090549252488596288441334080429809194851818287411831462843383863515359029235997490509294223458466345547754650694070593088899602190669536566546774528994836785741598185563269468684836464077871862046355466504371388132323433016781202050389514596050977452010160567845216979471479012202288506864553475471466448626115389966654229029835821622502884368057925892281324416747533110132661625372391525588839560170719905030848455717677581162146391884097757786831294183991150920640087104305002890224005837003084069170650375048378235258504937269151227002122033678771470572935763975989592559619920698336409701205870466251054003858637236953625513646914789084150601969939182034118178711943976570457193236956975281605683838661308516082911622735149244317750839584574127872276681533620602713109894476981246406847449315265116453593250029756478711828506715171174445701175718950403906610815658666949947616973372787130637281794521998144429890876202407038438888033565851935188255937343408601832346590442974713344725682877373288297327724128349207448706190045638574093574581495779505555387825702738123119008221353369493092121848571669403020677680589854438191752708805590754490823666626544793117778991973412721923816731518606959773567744003078558703011980446810201095804064284449363277030486530184400219897890841019968665122463453667952552957008713667061989516456384063805939256413529560055115659055262346919196716300320768894799510520154723295019445020848538627789874738379979353698442102915731270188172621600453285203746697371641258307664869094939174858855981806418005613395610434659012238393784572969514204829634374926034642715258626056142752293777616478037610275759727086604574584550856362438127867370719822373198647628035475089638431135150515702087253116596676586020803572373065716859963264423839568342415055714300534680505494433077601162301113551727295853968869585754208448540571384903983317197036712880490551236207937915317282380055086428483751664933955017512293175641046963529399779748856241931807964287993981500861310978090617763539935974277351618808221802977336011081643841519832098581073020567497295546573347858905772601446590838876812312235699281276525838157235600009186054273724222806212060633745716238117584350510663435434857629887371844148249142737001773732316705492591566204987742536014236923587212486707163520519819504573954127732363344366892814629751536361859400570165740185123284063114058970603821525559067254230675857103850637055334695963776564094363810209947423170370457701831858937903274811476852939100506132753227830864578268608067670008317698837470143440449716105980868595429082357818072444175557565253651440015285298473324477777943273752132808096898486134527888564945409728737601354115644392326087675896613202172868024650822261063673305326858209370038496356408250701907978729381603422730159006464072774702741914738481258672751086154974058223178773891665005697426292955706397202122721507539121901522387309486023494115476086214895343266089061655482214453088164803224942288230068436583664252836761856433599089457243270878314936459739957513493468944388108654081638113786857856664566847342767974472396029301518482922039327216323270421455306812619231800450050122827046895592066342608665873064644084986622977808956365716270607746217354085171784678958379767844818151287634532941643485339494087256480352293790087100937551522369349220551633059504996335434928038214520882251185012227529334509028658816089255035333354230476002903379410266936957341845702444751459762000166266181290383204675519304192752118338833087644305734392421688493782271468957913551660649239727223879509527103983856861962752291795497719243398019983353991687804575334499262920762473322417549587402791307981253616755436609906101679021598241995361965078967736288977365356783597050734559666187686151498861837524445561377824970893151859707044744366394385957042368588590391939591078958241358511544795959474860231697211797718778260291412745728557456607092875849944969361347665454434311667549817426798559425972109613905310781992515926663313284286098701782333371464872867777911339796027042662590605488787907205667419869670962433519441498949415946455362423321462095748382239321020940101710358780011547106091247621937371560585416913757762481593029575192739155705969254249461945351337925243744610256840196010376045462675138418278879751791988608452105224567485018878813498941007827241899917057793619163488153943299178474031111512742055867006384966414219946854762595763731824381162678096652864816617576409604903280156392120293167434988607804300144682785045599649837342579569253824372714411602220303825932628459501760342815746192887750648178011168807235564544697057213195945423649961919367705709213804100152043908755384602608328162158696988153355957730067430339171425602145776740383561466586061371944802814352684013219703343728561780237110645273607732234440213046153266109167330686991016788488696347907183731104306835795713407707541666541813582125539694267436524057237530145605525908902214561079175842535537161711331055027833510960870221630048248423300701936990617810648848804187353652778362042728642519264159301836610577332059722069586535416383715577963140087606287206839152190040942065992158296904633772595434966980508630415275802340276860028979310133777358382565071375221956819084339260899360033290462085558076922600838141241546815868848297939876041850569729140605610045925859419772445710772519068308924817454222113159465129905389785966138789506721592690055980833466547360804361913154150100535013823743836551689495457066948131068157931175504704739514359495434673842764814588014646657296613979822732350239772683965085759716134769319871556162432731479633187745208157305067101794493972952956995823072376416480338140716812330852676388408850230221205804677451817199645955590890818098795103967637932985088054504549526976318714870397665550043412470556663202100397194567858035762942404341414261727425872435330678883060660223614409345969082507650475673077501984749653639093961744113119293197757527708848407047509771201453578618198711922488331740334710032639786218339527161318298928721708658498425217465943739335284302062009659923661609048538349306583997995182621220227670012612448480175208293742633662455870443789235550870474599375631822670306905934727789448457138724483134677524165135151390584194918200678909452209445661752422000389725265677737874805580750234323281210586997358888391517911941041657615734208342900381155079954039143619435192631354627812930159744353042504794463350514446107480585777381884577747203484907951434135537603544097076452625099176063736075485557535807401999086111866280465598022867487031241409267335404592777919143922293591786525179808895109628392601586282504503310846648877864125668763208494932325905501586238485895397615763285109522712807980640133428128427461436296844461804478706231205326194871377695379821554086260929724568288572442686179111346424919054934440769014458852320287694589923782494731052099365185666925786053713875407778966990917608947884865585241511721176150018384779767713026062718060418848926462212499830318546973233307745660644359782033736009732017606537270946524347316840119327208269197023775439530002167241441461754023814420236222377270205961367306630315467933006048292855326673303389487369298661982376341483186574562756981335460513326164349239698124859639499548206711917803313527039467867154867657057001566653422803117208113911814740666028704777312856902185084595400960202166819800881359251791325692957321574043660938536865498106936779409888322971821699354001547819512387456912406149867179030561098632002063988805989389557457699219314372403787640100114530897870775098088531690345315519960516081289282341318215318618740164166482842929776174799103761979494437796197637663801957382351213169722346631690579181505376840265445067665698404170905579392662756454618321955405820439176008453776697008500948197382849702552851046358673567347193119153412040376741696972184913316100698362158096104331263551361307871168359535010046175883074788324501036157004903227640344415400443368824993836912458649360012257217916209548336901878341621872415452734607973093296325250528994341914470238832410431273625067689318879590240182278674580049177214627938612201298704984274120337714083158230607407462886480763834057368679104342182613713042798481176824593360373882916456346382333341399973497198722544969054282561814646076445676901086144928567364861079650207333900738081525939007360114740075177440398157338092153673314362488191573087695841518733060786625086421975386962983140594067840514708699286172487634791766799981982597389964961586976007295856591907062947006724624811658618774728503890455871068675336835794405766757826964728161205379464061970325090925138967911243159462302260945356881307744396672874716475251957184879693405797628230056766827336250679550244169429091542403947228334704498596339741302131595425813657170708329972329120576958164716371413513648512873359229737404534321642982093148610817864665956397410787600065142539625864012902377550210718526730187429204611226265215959357981227635718136180614863366282030311069149024220633199936520377258102448112050837438877874189572670961331617380051379982180866370330523091606864935489125800767020233205107643754224682765330042555588081638785337146718790661012162760685225592815629722036118500612052860636065962262350782251997043412577921609874485091222254521129805260719090990638639947521008796282884012268635824530743946328626865936274586869329126601167063633000671551072847300905068554770210206942451997694452901304060750070981820070815992919359399438264174667928834826316405256154400929185649395092663726670428225205824307109318208040924464786137403003587016953241129513618274203626092566407743188699685309096651222925435922967837972617432935106120155520237457473956214157152170631021053316712784818321435788143016464350460573392936260627988010288853787473320768205769319214408422715070403839582486491099649008014899320721441480027573562893692094828451343784643393620165066388547840587813672493622620178935317367664569898469821364506143005308588902726307086636544133622871239518705980707291483678752656869290524418818388768352806729358954305655822160954971166881073971849925144848699424865490165111003735415800303985508621700785740626409630055722997553458786388796273468942206601993679000344680123722995097271668201210243717584826682771939641475756419245114655301300273246006390791699499968073194891596642231926300920949474582709396011048359797051435422117716937909228457100023324636724003168329152067040696146622282350008882452392491638711276634171779834431151821577628747245641449545192510181739434789106628710646776078747094006024777840557446975596200982145418933618427339333133565455036096149894942003877685744289470508980806565231595995621236406572293800436949405343868635753758879835520955027159591133964025620116073697365856787784982825530119640777619814335820595859039138078002254087554548286514540790072938212333103185221454710095082092404145504143728972680017723750332733568433344021294113729381341475157421215766398560245569059790470825069449237491945655130634695301679114678360288635057416946012569454062836971256813379908284783289942813329810092856167482338526820589870523842819781000996523728224393716173163209245005254111616175303656154997895739411913194081629960743246982957140610185310179308536671798732323487757187960342266741534485342975712610336720836823048496404919500638976067748001727403751793345426391869888889106296209349448873219987706182681392571745202424325937170158095015739058830924154564168429420885068026570537621284828675107937487347538234941594218005369642702928543399027351574143054950100748597978744813397327408352289966099786090783935089458964670080464032349769068744810267225196966429245635598025079420919748784448379153853572977034537677692718377352961851901764497552746122973687310930746369188187396217739898326232461683262248949293605669965379908374951238414501194714224761091808860721819872919761195568120575275886597425923025461213358464776702304378833730114140497569472373756463252221939049268129185893534110980723603374907578397293644645904232863743139156810691142699193367756062019214983806077322485309407957489187621509087940580352503378799499744074638280167037977370671632698883330597971644021258585689179015847789382089014992785529007182722846245774664825681239253411665908651517776255882336068205831192452903123833097015091726388668462526527441575304655294345719734088075243513026186923786145231773864656601731497607785488484214914629746311982712083908103468643970729317703819563080725295520769180212127266322846271748551259915397942783621467202148961825732479935387707052901571654523338083473680538897444243522266826829943665271990644637341833030212993645653250088522663473165505126901260525998508919290989818620164324701768838673486316913593661508750446646254091690051533145751300796595987241661319188384748815517542285435629199631035614136649414327547165259124260400069698272069314961177417819676038096656975941322948180302882757193823376942355076581742195184458333933287538618718317137166889429121697226689619044204036698585551763154792869527440023994934435529929607849067462093908851854001975710769629089579382793710364395414365217770206342522364477422857060818242847843764200206230225141276182883563885887255835631947996816322593941315058294541286179822035997638568620945154518628788214469949662109821431421160451405010145154051578421846814858577662253901014122485949010195133187957474999677980026948763322223489534526432581264108894808194377696433422593916565428362694146892969650014074893644442903884323180079596917215878024879017915236331824125962933175063091803373278764382408681245150379657055555761983989188107206748398321129013378947623750442489832173177774070290663538496372848094437682839552104842651796907703258809643970489996960992692566182861452421588750215817038626367932917443410259647609385296486022027032491938894455955028511245631865134859497127128028183552873746250776356296936578091711378151120535875153770568732084895229600883134878422123764837008418534052820878501879752622278779492942215865452326161595778342283183234191066231837585091553641339308754970298984271095452409412334997642244372863821000112696722735619986653675759362973826907307664520938279040035880359771644655726676812421914905041351036877076909895207718401198920514533364674250956036410143847859264377526590771910176636419315442126775112069675408657418978463210065013950885114984902620968668704200074903024271250112852864694088605970848791245590717914985329509854306075000599132734051949045711532653494429718279916348446675245145039000389498894279116658901991133820970683985653589943680740464735637548164383186479537696119448075642818057115406422681283655019367699349250778856042737194061552341523343746739220636367568431470657472158977537588922222138611215693048976676559790771167457107626189279281608081615540025635690429771685174617895906659783714365375009098516283096505483562591665724358621445330874298881776333252458308031060554022190277725099034399297333589659984313041508948312046585796416020927904700098014114142527706812848452404326188349401309963693093128217262118397700641081835641077392553032727898272099174957775103773492061746784633276518748273323306056197452759586466026061361356576796252246521670447178683412909333720557216863822057270290651961498257892359456636510095217252411770904017941423882523993200460014626632289098961399469680651161016387204552742340637655897422326884425236608910256106871905100893319382014122874938086195825218557731727186116588539927667011889788515964417701837874986743561748073168035874342582957588561624323555807510686619963960681779610950339488321624121130019844186605389317991556526919577159465277229271189027212856892256327220021420182439821124558961756209486988626378144525034353797278060968433130520360872011801151694420470950158474997959210963151233268534517416594125419140297022374234016194600048481279872525113741530792988196602810990242670390077510104667295881746062638042548929190726525219526685992593957198774965833042225498508047312327222736839561522418063596980339034477446345044254287315470402049644364372945456781720030653415424970272885802009127777621839929290874410891969499585471502661327436226486204621591800946452244178150862176531440413005782598971267184686029164888280954960645967376904445238634237180595756438032341012209056402096891083601785028110359370694135872531624899951847622572246198018380409182633760169289790997397241742180085133019268693226050012227907660356638841132660697691958157929173600660799963412278859653388296960177901275823361618710916749664950207641383002262742987176436233330531308766828944235384606709419892182833501455078985106380956358474852186241642530572959220594204541049865050402513916177754353275634621071105990072526901227604497750309946713993578586683596317630468459718475829085590810551031060447526867714347638383444183677685458198066798966479258281294977318281044604590335885835515951953370713181681486062236543500731764536940261684493990385036704570516756708259954160322506029587645893354927524275741799279417898546335549995167607875692989144982881051656306410234998112902041099027285520996289569402625302223652244388049799398868269633826429955401149218596162028997106039969324060011496586152887436564534477046881897469841749347185122090935443341342595723804404371576053396585573710264044492266265100926632065939830781327763267239596777841565135392112388155924184137612216584080414806768644737163302711577590540725001916869116013077535380186755448113849171808252423457942117742479695474831109342713565800329477972032730842656356242318224294334447653118487920649497285576298831891382845296881616707872249054286942304672308917894619649774155458683951299398560970899308983781991749088855027691557951645131023917089572450286481491479629112326697590397338739445331382401130170254999444763879487099210259669483035398076339017116719973242642355053838646643019264341967144755943740954410851954851738156028433874875245662733055925942664222761997454101623892873923091632368374402656405446768607372914897341956948405247230917738942324387029512262551371800084179796753764606514705384798580917721484719486740912533665919779453573048237346431601221858007720407473692525514125338985128554370334055355110527413130582773743592860710871703170430137054829143730269744651468240378197518044369257077793487352049558165434316647522801488611073967760107964299960691335431848557618828019230211675554504339643638081844651906071636654552354069543446680449375223278194819947963520095120456621092289938536105464620223213124802807610724667244714154319413453508255388614248575885632697626435536913193068661387172436647116966207436468981331066086663367509237903757834620595764247085707542726903484343809914127048996865099392732179661748167916245535959377088857075262057651054116682031148693302132296386116802973804137445830924243137207644764604665527705949332405370644296436810619818373590186694355581480124563275802639881821927366465353559921831573175686055469806472992174437663469077098754822637890522565645339425600273412041696362498520051125396229574108219904650697723324930580940945560186422299211664986133615469256932566946863704864930416530824308967898659138905269503759192119075863692679477926659356826399585902692899132721925837414183284881251966686717723022513794173664683661781740554030904371887869043812782058606845427669521453542697528208283981904215583898514479843771274211005267209576377527304848411299178854835288066276442959839494769664416583237603793660365885657106524736453916614571500681514107207778110068312945437398945728183055875939769227815255428655822560934608947536060725959914926889311354396646307535732370654177150854654177635981196512334714513916945395169483960137657424598537336528925431208705603929288260479546710877698040410937372551999476530379024136247817667011365968715258701581748818938836002434673425045719715522238358493804683094545148283792200697222264661643317262089835342446970133135021463042325113832478186198270773368919846981794344525589337220550592684517039835951216261237425473533910604779241983303023515282243933232994444015019678771884020752985405132384224320460668038745248784633547031865339410200333221071880409274270410752172607190422093111168364171673147396091158909515659848096276778367313187083022069950373768258815085015099116781586589336221209480821394511746662988995867736792202582949734443651967525869850390199866406893348673333400236236145209812153980234112018972757576754384861718887994087586556945795432491510378564694628427538169757695325943545217274833023358571041705994898413847298144299491116700303209065829994521108329335716463321100062295480243473898420393556657322155312006754593066712047202894154744649731263543244148783656868019270332144581897005684172557710928962474884380709158501945627726106916560069091959900647269115167904888510658175404839382007960140140325872034247241469763515865735999352609816935543226928990810817825311830608430461533713799340585908899754205445106210726908495331144362634378538219986248684619397822220848686947300779656175535740144608164535186851580808389274491275490781590285639820171105364490510495199940185721696989075437186090279399257011694446661495765206609128725285159056252061293517348565572849976706509610339843891465905734291169078840158659665357655054792095897979115865242514371188372201749894779335620323408836420827563429232673956775823029715040059203245733012359122539203559568093856721512992130909673674036396955151232886504608321087401257469272624859765878486568638260232690810856733995285888152084646683001847066466921944673826807367443921033915201171813741812419992898238583055057994848786158283464855590538271543644541258660732645835167311547257415633480397237193308038390012007607267816550471995692655686338502213590419761315512978179391086394689624133599060572140736358222309175448240559529686994853767426252946667560961960412551939701450492989676836835561236926420184885459885869600331593592562870720605331185373958192393307310489158072102156364159221060941288617654595364698032058355503349146355856261712866285395945567832671010843653577891163076347991333081357630409732306516643594339483271345667777461597814003768080054479714606906263196120202146726033114203482359994044804710975228517658771526044365164504762276843100063666587154457814867196474416039819685598006290898200685222293760278932229237703014916458702565237880968753881286820121852343131264493895806836618961359839573438133705399543232695549439158044021080776546769772470540660108350839756264112360856271857482069161528517414970914553490622169797612439113617564642466130689495649353844587214531069001170398764409608420835223798506836871888092940737066468881364654175320441727764557792283016587112160755439219456842198392968879672004870314327562148372875948704612631869245920714437452395235192268727620952264477994025117317227392465508087893154428457020271109175673571252327636917189072105091382631230706122463507788819088429266964262435121728471390132867959246066401551666293540494455225263383508518219484748787408786854479928248559232395575006988744478357742553584521463178598234590173475239846672083448429726727796357178215570231737027595458296946577343667706445940981136424855280312984505825802612395194997711261366083298293992016058714975107964738836098010207462995536289719410877922487658351950361386193767360148755433043806311476456315828207362937531072408638359270254425691503369211849030143159737395375057261128359885268705107525648317577381502403091271971255834391525277815253983818365696558270938778294463377787123725918622735637812800964456727438332748405464083750353893806190282432429311766249826026332233693711125110877099264424772475343516185283598300729128565347248986178911967627360436723377968295427846374396238577271779985996450844049399432274616501027584613148237997914484295937532267082475181318298744320326320667953285831037926538691889155269810477905014488170067465583191982364906696165586249804851300044187378757994863644629134664500649375389797774219390913595622248263064809733235326394474801483186149554208748305125049603545226230332065861597684981283424589503632989128919456013407075741875404202532066365422963122516246035632639921956387337631438470213295853414162502486604027949519248885247247367186425271384640255169709984193346270406184861396906542240940744253734576083519522152518120178852097631396851395632902079390680369057439826296934618324414956629782825326815842918616849301757223295176714000523136871653529091444392038060258127879981655814853814506774832210089648971937552617635330435619867815132975039050098057211936959594710948064720810454808719196610042935837177277974387981835283881625212120828394021487971656729186141652775405571621481446863853465574427142139174547399252022445177108462039283078863152178056307402813713633594081693205319984748889588079690829638588334921282807728488113957700329322377910212796618188607663564611012824687055484021363633798803696721986902949789380147496725641773489773631145653103656693530443132458912246233441139971433770028930847699952046959313407972454275666714111188205160334311681568334273648673454398302021354863158277957792121891011428630293355728194304619134925738146485313512351755436409167206592862622294360724229195665191032037890663300891891774533641144132261435344400538045588939026335766476498683264099416545268969714262295526523046328162409128734142639100367254958239101990212324538061253938963241456907014499986404019538369419930360719591204277998398480027487006637270620437309121552983766679729993448560230075239936999298827373392016624318726727534246610036484447217082141909589111202110002043908557941349560389738829612195206092793662226245615996361790896324237268760823074425833334494257754626797472003910969905314400958153154812326465224590436067042250466278190029845100585717239585563668863172237120361537788221016469257645923532884951465514893985664074900204756588846130647241513197155889114699408837037535274306976517577441630183071109452288761463151772703920847076595663406114205934268717791617299331312215541449589676716749115956371444010092101906912834725082235336691273915724229927353498115794918755883074851632095915928537304889431208149679204886735736362576748410855069360688749848850718631778176685193514094853401249845959891038311399606515800666597083001878901390503575320758091501862955427630511468551655706992986804868162546522685881699444061435133469255565060597592757599429686779574886803510827939345434084590964520331226584320034455548554177235573136934735245369249228606501639957115240342173617188129990040609901234700833267004101435443059421331286106560512377434018482856021045856883540984432462848579042386539736099832793416177630974512859802058964607813948690249452109959281552347627385239320392161727731249947344749866465148599607953683207155916451592587357391421107401030651902078767139828149385499211060127398391557789820581712325577783888268918457181885704955504541719449421090739646275964617230226264231736293603932286596591891103491286064117306451774164481927532939955609464474213389261017661661427683760648476308517441635840524730863191605191189368330484998262765530568594781148926303591012991397632748086267835571997763178475393499555440075005184462252508326751662806600587007017338979046359917948894863372291642143622344648570096412767589847992947850268635306131245644696045346433069229094877365279245122889191819847314635976610148744194306576291208450527478341663067220363379970881722418880999494803156149163251277418422664155686740184847744153495464169109361062550782342857298892111395232319252400500577861270885312792365894879868169199940189294041245721112773743645169407347156479557460643859624313536301421187592326626687700672497400167172817702188981869867840320581342204895247644170955936953116947106813783768099447056502657275483466566173889357105573992993445786072464971467790350679528803602290949620386962971176217749061008095792608010036109699709546005390415353160794686034941817237254817335494162477173998290301598412836571528083166434981876733045382078511708408076107923081884368942917034757424041865255895097878121610339414227273109308413140108844452115392717288659878854255094352984341433854616829594307628843329300282810791427024292923462171887779106372303623683889461235573920478199336488889921407922365158813946935126485209189004022879363442551128108582804452003282347614512682665388182221574585703069376537620060173739102791053821964770568671665820231071759624976142745290906495747666932432853152085331744148712891515525031803504072810875243384781952604619171468261708823594792272228398784803697213389655083484366308423540619990398327803136620892946078636144944330714283057474618736016213349276325842374647373446375747839083490519567958578083551473775441253266198102934442899243969232268560860256397455992067343380434509633657532172474646188812259648228534431885365049464873638502618775118241314527034605910396950829773223047186819684946857331919231307260083589854151322688101314426039015130507517780314246773864487123940898728636993796277546546613605899315277038808714502028910814766168883509383484222232724285770226934107791874092963442691755739915514066984284071545052844611113336062985386317782599373883814757057338102190919353334192455583666944787475266915825505800262875841598764156797239259572018935624785218484049934206556871523606642580629176608629250882687529074009266445428713256381715607400161899954709055530525357418503468499639269303140791088579339320785612967445244690715748039664699269572307972042269098063834575278777802135982834781118645194554369530210133065813874011828150273139991564291343926101070600573942008058931285188708588269405503749494191042760021841611637489102809093970435661524985517277489954195183801933432102291676117405117740384360189579770356592708707402680201586588952969685145276571223020569025061171471924806201327523926782801681642269544118338637674419063569446552615397852369412146657669702850432326437488366710477357681226184468673950229664866758982897459743883406310954884237138039859919106566407245124521894645695896606736777473529701173080115904393792766227067148110970500905320697692631692251769975119089509656466200189369175286655705347307529558497632027636139589317154635549767373858524194868202314825005438981395085457339781174597724049392014457216850102139453262997334073478311743372176978247894946054609968332876197853806483201383041268684784755754637535273338340421441968081821193525877972934452268189718274152323789797981548367744860440887122503323877560621319031614240955212936323313462962787449994277365622519990271104914536934084586986789192062535051971148226906715824046771200154664661288461047292132209676958248866141799382488356594197914544443140117689866268895957576093336876137568987021289824411777932574291876372918265738198766135795438908427092414515480723704951650257643502864947327375632617227729196074036604701666249531989875759921092824593579402844292370283055307639564091352030753437754543870545574895086460068202795165917574740721867994502990371642738121238868117615871187639212803378701944501581523679314837570222784486097069806126596508592898990428436477207680806385324729359089104862140247704713836526217215059471370777425857658003542660294167521645089109108893084586629737714134604086566400231283515784626912178980078914391354350337812128735367402943691346171574872651498137470590751787817572392599833707689173186228403376146081073096325802519456255803771328508018358289885326860171044408850099264995589094201622260327113500634647757061202563789037752710638599080540062276119088941697597542028551132253858797368788532251198249820483797898966144798331196188282677822584577076688638933559962288679750222255924614345632511143236857556216681918793709670321503618556118731990920225022234078031837254371440955522573091101791381725029798761270793052025655948271774205486127424558103012110286240432471985061259737402792564493263149780790708938244067508891657656847549559617615123802270475232304912315172974596060324620903023459154691062879226081225224252163459671701947651825538591924762765777974981045030388258074299571020347854227586854631207579162159490897295531535266857776385609257891791763228327997267514276460280355676369689475311408214049185849104903143104162402656859193794418155799897450902696246718497582178109239930197668155604663160550624659790083288282942094920529232222707923228414746720108011107763097353904483328429368734895420793379606163176636379397698211025249205370636122147142008498910114680203700704775508058954494156219623589472986801709493676679161390877421471946780940805956418705981273270193537294829600048981235892301623780247103122074794254843710660738571528806571378370730785494582113773862146444737351873700166464618812283054459664538316354613160136623362084523372485365988953684048806407409516376062849405553151466290919980560146750128034460122405898776379863875257249063660088383820828528746751517579052744525960342425180973382310814596280882598373488410447040212305209377902188632950546435497236459359892089092168663929047243159977415900247350769963396886408125882752276014530357226136534136872838554468076151442316276816254078786396139568037067779991605628008787120827471178766757658440022902947188924837510473253286633827463958848863598976524262406316305099743694663893349693153297670809795542466342329861686240728818047639247135831476518019721474417905913032061255705852076895078110440594939708382700072826714170766241447566260665174508490309288163243017060941571895298202293165189927406396691173325321054819650576110983663967805278412142838707398009619728197998595665761727025311436159609707768367044499248041639699110290748042593135362954391971457196635709579053396652619500367354103435269958797315717159434345897367324080453166290156632604880048971141604430524993652027987086938095928301696313567030753743649890259686872869330246285376852634735961405210934652520229050627564494733711404505510367492542075318338865986470461697924141869693645551522204481602152072408223734109832833927712180156867394276544081850617939469290478495496427353463229661842443689953630633495134747276764188453232999571588326305817386489405752885109371005203037974427957135888568822734877474672951670605029565251417433803655480694658285170451705067021277182284892599202964563032295281203660144271277626442763406048362730087767997384983505720526009775815433939503487419324962429110934422178366317902220957999832467835209612521869073924086644146599399669991689422973657824016772671845390111475849216422588539681100380320155508542592260510200104813820426066944368709902111547074346258612449173927446119455525589134368743098651671116180795582075614390981115271454513481404312813827297708728376655779294134785781718693582706357356216978361701786735821908130967043441966966185437515312459458618742450235270070758094540859990940405764384951379120796958282115776565073959022738675722130706562513926446581740175091262390886289199849279199229023798588005288394425728026208938769286830756044991647464967814905495470759927523438538211088996349299703852193786227278039976829310945236096247098869698261055555645588388937470073636176059549024693385401707120136579890754456743278438942626155621699944635671491081975491627272703770526236445481147394850454629671319386275385858959111902155700049499181764139521174353373894077529179495486509451933135822801807134228022493575291695790267456108344005424997683766074944337305325810583491159499900211079813133388419841980380201491309447778840807844744938199026590079114575942788071344923403649526616343850163472170060963795193792531042188284053641044015734474088617940421070322823154641254748368410017861174474259072332316753627813177663411211037548736522356930583027638165709933540811013311338005137329253769566480829910138694176922074875448559470886115256275379939514720656665478188644982997098384748129970807121552424572028386952846842035515230945089246025222268034546585317443549371408480000823710812217936345509262441452286702829702295802704046521727422751844702299241797843174736907809633634238771058812095162450726037078030972416655368358828832742684977622454729925048188031148458420561748358692313048219939748570288891669960727188486950379613690622648696455810261177062445916598434563485436250623970255844496743251597558997587006177103532863542104960184352754616906721693267110107398307934362209464907797331281177083712138373656708677469096534475083821362303898778749313430587070127380878916532010140597363378465573220958472779840721471292632522223547031190488524638337277413117870138178072893875084233594384381815211026250498615176887244914751774568593820231411883232350355615061257983324262125510643075776806725232901267365020709027276793348049343487933050930890866958586365894633481654608915894143349089795615937795683917842451227227800657381170146846857345361343520111140332850823321174810700325426898457375466580687289176061166360676233770267726970950597244393040820095950043521971466455358319839405022691156298475531410165391206656070450546208046944862011466035194835995737007159354836547996325772062452811031211653356303505506191139606363797715879902910555792742960392762837532871695054040673755002076577456175559391589665870056314253451191614046926944475225161073340642359593772793263174565151520137413309201936546200732061635884105316855489746804298801303964759126313090021917667725317590294648641273122181527564671330322807853105352143307847020390951208905043500032870440532764268556556840805490787535451135561027193106021593477689636148171221912528867176513124910996481262998971494213715669248658913956026496506768008292787931981359663916447495314485419007004793164230462457708773432892225039703495039554443863410595219904013848310818942360236985378151804887732248199443912247640957517506840467692068251554236971308469611024232130853633797718061849599875479882902598946340853728380179822164178284157530810877135924428888739138999227944570898856247243690727723882437515422378623230292070048056818395061842602905676889208791688127199064499512198003513805081517232609841374353476179876287970565939235919430493305239179099681992853414149794026068319290567126249898852967876768901448485666146586442325949779674132639557073782059064136727693845956304304986767034707347394101896539374580497044711654400630721553828061135088221661113323939133140747598447937205444922413247700849058360442201498909256562941757720094097343997079188705666722533387293790689077440574347264032258186278758195483854799656069596278019891923081179782433780597910749667428081411122481701547457586996649402210634383480504851325874111828720777751675959862044567639016923676384455923514908459434954537012862749594252717269464090007325808669296914964715772536297723870662197170432500051361116222197661115195243478505991898740961910989414285899793215809625846846435314399885117759788563831392106599769691032942224993000587277138794384094471747298991638909563429035362387812862953935868732822586866756725579031923288710323080380454815522891583593420266531646183996722295844920352951855209149529755971077790753012210938472212015968351795245343934083287671932333123639765023513768455035717034076755328652257859900811389272500758070327657869520831910947648158824969629200072290140019935947548973600287019804246704440047266833432465823107068931922866999104921515265895570454629241161753391505772572983189813963340050199110773842176630241037957371622680082013075325839233729109526690772337817815430641211670245386358459701647965208813282364078673970832115581205310957824187081448575232747638009533615205569381594969425766234466529558474618085593672191010151609947354826594324743920037244725883901349086869689977548060845982793405225124790168055688694663836182492190352229243047079960703243952797292728866509228375133859690889611911284197817714992870257997764910245950221056002683275582771748676711341220196680492010108793653051833964418939800090116575338574705146458710549714229370508179484594722579706692380751678066520955032234396386184659931534982887966776526293150132606463352153218636680236938233439928378460439281912744581920292968808020061022614164171735094815606437874479099840278408765546953047081738260836301734054811291190956583719225987546427558537014962462195454994256926983412423762290151739225598825395673930258366065524788508154209148592440714282221084839569067921641262535892585447772868757864920054340093874253541091340360347802818856625687478458451702742842775344679449952839395073952295428961398218931614750379966145887465107983371324905518242369226363165196320898629289697889922085268957468053437796134845529108152629983504953815171119165177423183205146732336275378808191762800711731835159112466224751080543868532614515963730590468037867251668244085651791332188135205410249694429472021971972306571057692561109341382028109199185477641712656153042028064359725183089023982486717552478805825306743874577140450665708662018347673022361766942314341645893015554192181623006333229083540231736913963529216139674130467142194658138255133149154500226559146924192088681169841974223346036928361553545481942951773717526144775598301463681028733729562010820790008641296658342709017661497632922316321761727846935696486886616783352997770933173671127897546720306527257464336069137239708784359130607111043110994036534686412161667739924349498810798690893030648301981233764135084332335681164891354698142068813898096694594067991734083184032190562283760259739932207690198830167483401897249390419730092357102837729513152646913273223296986860881784830463717650450649629302981347762481368196273928687632462397412870544187636198187445321626853505647115783459917455097407816863251452433740759628920520389339221669649674518549231707101826900626695334100556044269687084939756613043290762978138721032687506225126862948534026838747646965474759610188442011136347455977265153686018752334822120590207090437436579696193038796982018358253010479216298160868496600744471628469849985845377851886068645254335953691332402248733271061365979173092827653284824257836412896157276375232727542436364250355083936934236799442109810897230341480206940069093349943583666449517947149954741350750589376009278649609189107117819171778095222100086187953865743969599633617910509835918480415762636525833119696850945494533756807648833052307927504055383330746814586943348780828405819752706325549957218906611591678465657459694281568003295074129071270975901909846547614659665491371614881403782799485764296114309544075898091017978346125173271081232435984496026003331930247597452638433818647193178550952193398818132382671343236724573842151569517736531527968513782966424362040582646650161216189501099392793454061835126194379808427120881157433155941072616389143777924059988828931475131654550550310581060191350454501977285517595364806550694390115445361312274139387777494601693885138747202621828800428383612878791818262246245198677186310131341595388154033773854577616116724979533083695313905254198545274117456042206762775982507531855501373164136520315313573437460661807099251031565426851941652758457050312840258950420188146028089371386995608683927547011905289709240948757025113276850350568995089821047481443991214324404356901081309671185722624014851390735126235723678842026467867281843297298522018254907161528447252936628462243769820433639837820682498560911507008998406143638301342655751166113656521947708970295521793776747473975228562882166059076123204924052979292158885603256552656241491086505772595291147791257919790842922268133854193228941618225095125015900639727047683522798920822962093446471835752288800503890340190779378882141937072039284917710828860964019878894627537283287929968694989734103955182480249693355791321332934316992165625288624670139858284730772031231371171733855989896930269358173104368368907693429163969917442013135287211605529391171676789062820190101677872152732317238570807191700550380616915078149677938582373909056367654756704229029087866490455446671613041839258264645773037138049689049483569920692993415512869354076136909294612139478608733037141067847349155955039355667416876768767856975182415293751178054173822172904580605874098548183090823256288889957869325405407172498827622836013812553981331129312128457202842458104779995268103218660933099504880170559945692806183980435934835058739512135716029008193357165922834829635765513000095873435024575086685361079548448888080644452814078755841779845407106989519652661297956200776514506612631622071367472318427536439247521201405895669284302722075247183374353836966043425968703103805097173851440880283652581679139960717365164039833087648379267340722373735247591582110258497324875976367601690122962172030112106339114080944062746584705398647715236064540957012123949685449911155444167584523682098618343400914892726796033929169082725297051956654111337015639012416391967794779719457141524217343095253134244462845177863841424518908499252035537349782808278621194029823236513812708360445907902140073495708637902222619792920254696033880193053276103748514557326327133689478291628696480388959558547019312517524002171068506745041717958721353255502439515349784471930004602958847591622763363988923159670034467450814794252088237249167792673914189032329224291977184085264965884298466283012687845473294467872678273415172521900479625361849627162566429748652705899507509238761118936664269318714016606358438292774405825056261251388450315556500147067267933801512740283015905495156619751955424074825224345409835572243329413507421850300169966711650453250005415479972306415630471240133456459757282348701134527917398619896384070217245299978418161517946861636166752166122042828318305977083488319187868206044267468868532895596814055042799182397706736763530943201631951593225610747873315825625645038418678911504921109271106611397203955065902646624599472250872134047548120342208710756937823272710523047112793118375776007220641813773640193428713525278274861264040187851879026610223207761483781154424811414010996062229533368720931357991045908693691487594852185727940721062236082531792045607589766375515618574312964667668378805659468185716744325140566599588813977980337799668291092607428868616492455411412196791040644109872932837694031599562521626269944243356104623754841279652956936588246934400535949656460818466361618049274624324916351148722449590028263970645996994966623346066237536597676281017739605333708608268899823096931983981222370926938074334458157766663629245523017501943422143314093171515101312883684309691382313166822975682845071582415457650282132108596541281075326292094101835172364914267074821110896970907949041986385744479209843309744780005223185209622814618980246508247961444502929920905155953300668586961458319831812449240171637548546307474759785566832047352355295637371169682612002678916370050471206159548046397698466311669420191888617807089058725477174406269528251061941452487495140919845154837928564155645851743356971142902208068572710962716503815210561241284464615663978627361292985411150244353474628686217723885454135815114889653536034032414400404686649469342794781663362775285773702328909955378706248162726229418342069957505350223624816214814397909171000130057115459707256753704277459955116607656856572093600619493717677351990065863460834940112354381585744448502073567602566098258881033505219368154613357050289879507106912518998533892968967515575913560698093801019584787040883312357852030858061062616307032623298640991615620291452331196240762073309326916214693262306219865392962352075632454678036954134240776021182900222626930666247076723675339522397390788852093999858174706882463054839483725196224318487239035470413350475578892151155193622800631449840706797831045691756492012719907723280748528349432115096498399458411031070906345651582001330648929962566439290818752483222691227065992857215529663922622979419270421122277000141352529751251326360686693997630378496596317843848873722052044766695491283284615610710325095300084690836594582815002248789117144745981412807750037326310277572842676250930965606475134754258635497422263352577670032312993554242926047378973900552595520086775254888321653528647475167730807448746101267843762790513840327198205771537939454228410840969613652331476748515300338557557301074132983520651700308079555039737879081683630480402296245548420504644555614288483827084948210941218629454771073748041901128330732359724093162182773774999656650056045779661788128372896657761810091174020243933079290680104713070134470765305982813806916149931138316971248872723970860865155197070400445602638405084975952554816308356065895604118376424485109114383157353929716530530625715339675818037101419643360272195930362954021362032213836834796552528784728085116111210191375834392569960007290528698030871078287002653497662086199193774272860163397449929765855539161260120929224270815132651538260583517311689126874014345078363355052777621722953973421545731689277025338433251672271477763239575811617028331268770493111468766578325020780268654380353963880406365646728221944178045940512771595231371584567464212568561084419373252445930193729093311624330810993112669176177938593467930399657934825420301875481854834581060596584679576166162590960404296224304518931086011989388651812700125490130503152595773529275688861922531151210251263860363038321646773608606717631361974450916361178641148760679328913261764123661040587664179335375080016189108865999461390487293166464680483569016261659386563611097557899421572588010380520758308733690293972867623430296409073084143755066307851888132660408394210785681068101747448690462605891545409451734838476120590421307486127768720574342877816135998252585645346118167585758766464255333765473250676379491956417461109201836044447416279288241102093237677483014512987875416322042539310612014004704264024422096306834486571560160174252212992130434254169938115095795207370548874299979906136020035050399539855774586248446805600781205620674229644739438926529462646982684609551267657518823646795879671787353423197674163970407862855912928057012365872077949810626984970745246399821884901491154397053278090326219166065799392327038037352445192443118756314588242660490408718893049694437848243886304438746022944194703610280469184976598613291642500148427407425419396757309177796936554906182885033541930971359447878783777690458639940316616783356630213743730392236062365375852371621923210420697163148170183212060520509777405322194262421398280821462351736342053457548961012914462653269792900111050413496433982254972577512443315937659816483128469251258368515036311179703375744473655822416932393051801031093262727517854521529376314288401527814351379517105954771099842073559885206080256476051300471491603626463361468473405176541668669864178211844830191878997378351434058412059288203724633044599446414838417211189668345185399904411026065279909182909362130551360849567441131129259860161027882712492578185343474811434811063762243959481411892299867186176615877639417388944083507950494455026167690757878473985425146450000353895232530552320915476131268850346510774938433632445027133512787462955362216611993454779286604890399110437727299738733302881173458104083679447809299289565139838494572733758294517132576747275208839716163219856270444920471403119265053639923972426109691168859168956620917953921894076826026560480507514284583323177978439952388555372899674216593308275404768516599087016881350598316516606205291754104832796706759531393452361600197456846186878296524102259316387834238173267144497710628471809843262960444148452857795685650180697078986856857903970876237172581224196502839249310068430522788543338193824177677090940408151280960449515470082942448251751411782831162880104905479742372074658378131322234422432862186441467889141371822917261838719396545137006773097984541450806639960778380091242491759766886807656864714581059089850666213741240747820722253008151241453042355102124206155592115058267608847032235121613494093113208498447149564491600609886966405772797339929444628552643658013876916275595353384881601402350210697053892485061141600083303846853445882374270585642119669273874545754851041332636681760664621145430241866243844048108995929699929309215925987891248497641512741640079260666214994933906307590538441003449079232949671153044002303834946674607937591019246866384140087926373952545272508836913014418606938975256583434763535839284119407004824633131431163780183924624175230517252085453077215899029619354168313066077473625016822378051692820351065624451802982822839077534481093630027534186780146917674816736432117917967737915658414984386011111778374523706115018069755479301641914785936032691768956660815389634747230317305332974238079359898019807829367364938688087028901574265854166188611832917922556256522855243417756924732568595588938380216239004161979114474714945016300878012484959243759984547417494214107926509282777651004311866138896196536846249444348611778015630440259624548287068796547525313146437824382027300336434317999249854893316254439730709261366103977555380340093584564948527624293565931105971778065257136965205208532942229162802462616339720139216844964385387404391007144624402381584736640898659006560035956307218431076884370053457367157918555831591496219724842417796624100396656131362742206957549503071995239002820894577274946244347962768422205344747117122881941114573847340617586738127514454798767105946635002391893860631761786684825487724744973995667943171535931773910149402555266612299077558244844163136798177871136626414280413634883257598212595125740178234566091497405387870577310419044176660052546543767807428299455493526573640810304242558997282061016159272126929518941011279636883306133530117801091502453251334737352178825811365003353253830639082310714920779510007391684959346308758786786851557906317946205087418663755069765664065714831033034782758884909134654863199724450179685828315408894138970288213674015959144356948927122919056056011017445099423131546182697210780692543875681247624206026144611801795472648875859245205068765701129953641957930102405527725583284082377932761050085567316603736149437190229014849035615125404355319124038574499222683463052002183757965102445924547477870216180181823879259591997902603433123973663173196084632169275257996586243280030959774574913466739263741949523664320388336345740261715511429393906394454442839730309042149953280255366274691750274048282166958620542857825001299675590793119718015410056122565149071398158299426867173205678293020111695321331925125147142617090324866167535927898023269207854946945960934528521995003041833032448987284073286373180841425343606906859925510102975612734386269053148577090784353529127675355746243444587028886690186790050506463219024032896924872540375340866656171992633177991156972744501689413307294223383966270264926853614445031503045560286373697508910729157694116974044012304888172314542412795271913692151672843680795938892669617743192460500611701814514744622379331112890321083426654619744739231157574650566827045459444616286993849224921755886708587112341466976414907926564490770422141566177838257245212333000531899045678645499608941640348475461850387021052580550848027819952224517518896577081140620973201063701915833751476528815390486283433408901144992109936960962092141118325432677979099095954366938232733658460666378691510562767798847036088366187545792436675533152860131276354881868690378087597421118487509158335828119971187109404320031722893961812251637460550332113740385700783202737903851016382914345655246093177261659266293604422523287925658774731139592727677097758750616030616524635802733489928998500826600780447875198307062149557766202365975437074803998417024214762507012745605353332288954862944437693154570572848872080332013665397387292723764300565444687663080850883194902046291407801831657792729755080500583851647146300672864552423921792026337346218825330114945610469699507429677996003206145902227546933536015623636827933989845767670920882918354747145328076844792629708787802829513199120980011867199704466324847562318966557618407866605920436496292480959145675341601509028311548034062695722946320028796535320947655180205268874005853899235547481155445152923265422038003550741496207458001878599654211393663044401024615630224311938916029293406273241838575058512212813464751273979397365639983529698925815039528481399750841583644407672592667412760851409236464140909031192634804958236868470816445758598224384324837729254216204482842781684459963432970016646869740571346444437761350526200769139224471666782109134580017564340068088171025531716160109421761812439220616498384015137817180706650060166573646444625101085292888234507135134719375639115087320797209798805124640969054423440826928136882619066995983745626326178211456734835040952411303351952940545673898793360171494120465961450307724086346626267562860620889918238969106327193441887203596666064663828831532727111746484115515143798909298246328149263227542170443682173259230879723010376483026827025443685274841640262392723816218549722115798672676649856626893909395307577469645363683072618085413475255356349252236541772088221275479349840969285502669556784188355103865510855340221176281128711374715331757454483349209581373286722213172492178450322896162814041691667559062184110828518471392692877771207683651358011156677312137506991179722222084776385206260297804397389517012363725105101275056347948323780886215752421190412290530777802550108018930952635580794752593009985802217922341313082981212612163656609213961440971808225575706102423908999929683628340982990185252891310868433003551727868804535829277933563513432462849587864511311779803076644713288378006847349889543021691379162544199279486416581744776628213196985302632874688254647101759608834245793040633802822299261722046003737529723361403428770694206818798215295457692540302232257889520474023235424762491425168566981801613020274693501088658502925343988950591613333608170456389089873391612192732088313639939782340864899928385691067856804654190651126197226642400881479692634063149773035727445446469872655083789173400786111110828524520150175878653733546549354133339046299341642422498100705910590641474765351950848792764376409825557012427935870796450205168665846329265762065745479712467674281755645051112365795931924577629034342828479615262036984074410672382875266962028197346838404017983325404532784512372335180998442550953906720082135437548807487419456824191054288122238284920979215817743120916151857805414112666356515936615975171744187502673046464922435906890843854991820023096519111912162363532627569921842732400043736250297873686886995267349192163595794314244631145963963080987913126020722181884500158735515514326952254960527283876172347451794311732193859127068577846461261200157976691968815812423651834252361870541093919673301705780297249180097327507816067018505262633797499925623547479858482592007783598513306633494656160002331541869301422836599816004822263878335293999022767185209738446580110783709958738355171692846726816970929625816243147637607166638165311990978643761308860082397558007853725518549850957282679433406452690158935750025885415423925287950922543300559332861356973760088163682940264348462187935001800983441707243636187842335275568141253293560229004237820557125883182020016729052539656281475424392875473084881964631885548054461513069482379859080849795712860299654687093285800529989927285196050158259390836014283698658375735499371642104728622043803504810507619688917176261571977538652664227457238029570721359351925626823941248340571577486609651195054776871832555829823988341944681172461567081702329598583237032788120884855917558617073903525738931853109828881572679583570057675606348001450874085998425451955779017154887871946832197829343849732002020683573915989181276521153884023385967001949825623745707494181899621973755403473887383133477878228660807529458926035852017626755203454008892774426073207147193891378213052654781241125729460258730664920702975264337878209139246593202997954258935445547245340934676179277531526973710338349395272873610213719039244545712649570011834758983030527133878751838813444220486610193157188020677468999103641476421168121041099022175532286801162479859308619832851781281263440517190929644213218073365221686725498650587521241109208697444387530731390142318797235723780841539216157613919388047960414171024045348945717515050122257908242526562620250779281307700785765690941818519016150373064241503531978448514798366215530993418088897182032380069055266710970891122151919380203858212475464782256226473493030454039437776841333799411020712720141068217527582330024892048564943932119616732154091169927264726628082655984246426783430705537267824963539854250447282506705540022891475813403069429872025648500665331040966853193860149463665880399752602834803342351870362777673329679128486033513833620858984093081243484248833882034929404786725993503519921771786191329882176949516639405472198313198033773901344554572657301788407895892060446060351651659700939959973450449206792129723016820518868314276064083254558389713068064587572495446615866830024124566562219415990856564884445075009798232386978485679168060946116166162566427605453811288152997282771155172680025465433969104246095004218610158821440736280028915288713223948084163114617896525540274513132976633777479262768708133667242402567270512207511301171012498494950557286311195216281896951531142381263372189471860634493001438541310915923782572623596967279047359531834435928512257378375436365092203377380502736570410385945092391861340480751514576304948367099120047029211185901888905531903020383834511268145257350072896806887220615655088772833721021977253609897371643915686274346614024751902090354632215653001240553998665596539978421285553432371402290656574469486164963491698709511838506983496925118945697221583713624340939652275090449175227258075689958894257161495298368127382777189192370451209175262018586002541586437460938827750181925247532506209573196892541371504706921524579644387708280460793611882056669658787073287170899413044053004900508206490850165453952823213027075860294612135942463611568387297301877940000264718832894219896623423832575449900976923265181165829304459046402293114629077312116254438985076861375333519353738151178728929384697375484592825262904336045390984775807546529836322434778553079563590959364825968273967591463419726015572125721853169376598471816541409069048476273619932478672033707185403606979858823939174579207426992377427756135900147883999272665001512077497140100175549101149342644446343356494828281288429725598818848532338341685926748458566141157176095919791826631639342537096203679733924010950232376413510262112802472616316352967390841022048336149408462285313076797176581470058155527359688980221049958342540313004353588870831982320609143133191846333372911266045801408617106200437508095717577436811173995156522315138053922333567118746946820010642696997447972833748514221607837395796927765952090248573762107051550357446184447054682274878130645240006122533822804218941960248243917477448861024259799907118131390438155887174813128234660338609668138746851283280768832077650436083465801958171868482037420466666229007095597217113417724476850578613888724411602131418238319718661939416208319392821661923459786134151796375519789825641791011227826629632237955839503968854626209335869638464239202224246414024819029309567944353689306508729545101812523278640248513522746307448009609596927381412467051383017025034996226344266597832483470830245236583245712868762638007540061859291404431544374047792438078481422052366106167114736162518757944993548308230194647187365927071258731578503904044418399915530387400805349476218220794649695543585530432837056324529473656880561043610649339228153669279617107258491413685735378750909259381960836998156673762851966741160182907895151900443267935975011433815445372180909737646336473136511570532635820590804782829049851420244370605333555306738163428137153275109246241363132169346061210868387700022872409356399153995059212779697829106329971661351654105779349079201301908178584648726882731260769655474793834081681772093386788015800492255363623166664186039732146543400966370402499092629226787354727613014224970322142072204018472540343098197352725300424130399008171605772415748820852010591462773500757847453971761033475979444608308879717176847646410006292418870471260412803420778791065039802098491045293617774492461809495572592711994218023289064079683983893207403130630599385351347048064725721288779717095152380307590269665203457814990808852363789909518114418498837995578677751500483897549661458986318224271906018936779858862690728520271378958338209836982596761821592234201432634120558124491604283874648692814507297963706320312099036010522542729877077706820279740811184179764530388228689736061137446960602222001586577070896756595159591354375398649161894338655662052141639608703194648395681092014016205109679424305284626310314373104337525182090284049406610145072516407978907256454612534830271724593045850514084152820555056393919749931039362189130399860168289661712646828777851110889225072479610865802888653421428264804981691469882915271166710020792336021966226744481307067889740914825919374014080045845195801367040073605207547098299579608931809507147076450615329185593261057723684458555563029432037956824358780179816234938465035873080736485663268734894185639454223449516304617419960885447380559636944747412750550715282769494612978361708040822604963369112321615495982856082843030169907643308223285005394288902573951427164360823804700842793077292938399560566922847155644871431899796001668206488579403889731547707912105189326602276335541813875699116917270885448004754126730559621181063112778127646233700543012003146858398303297933298998790038399548065169098804329682993671351152966217619699136357853683926661733239750819274615958123296580895356249263392160328325200444848341559736875017629085381882460260427063397886863090862786827137876299391134202039208482111731022586937994583260431811926464103455225644239317770132283321546898146859559656306973026222559274030535242794473386152433082087704466285940196202268629301252046776467173200940708009094939945044177691929902513334383408372584397801170934541454683942671424541648960316549776090576946260678382220694898706407760718137569651602622555117784305517426609553538770740729794253440299599509540546518126477419464581332663659794100431068802806740018588630032075680307843122947782331926898690402469986717075282167467766924926137390476230025058394274636969365494762273429331424099381637281635338717421311309397074317462043940080734801112287279727310268962149511122275573541016161759760566671276323203768660464362923874411293901872415908896554254763852555436619939730824303197803788433719645241054792850724971081666558965512634625752107551187693383124080883156293264464846293117505354899215835633428349071660704361441378785243918109892186656009759348578309646189244639602193096559747754639826973245207108455856869201672927237554763464568616080654441965312491366412797825633576734339232173483726013717647159638299128520318368724606310787777047483393605148399019865529285640079701425112861988946050965052702154963596813158950710654719653634893362451330575809125220547653226518624801870438490989408104431309678614237749419363282610941393463448276001431569228769664773630779162731483317927242509404690564275112740763364596734369168346316259025992183247324803378585806868083670300151482536395109725801059968781732575068277508605543211503227470952397658785085339228811609336644849583053326150357220417900805530128885781054585667612315627356643490882634007454156426869386231013253764070652307906122362372646479881772976114339125760818061045425438318564917383089938567226599869094759081476309088981365374546712847079206875433675035205649885328367256433021681641504645226233873738665473277652483636672007257035407276747620373148900845010483602088932738665052159211224655359908782580011270050558360947648739379775594042043337041117086300759006088146480946745408613380788673538198962380992234306783235666743071096640445757680705600873258762651556049031069765026143132778754911667030548754929609224011726031703822875607928870741348241269636158311765141977094263126287788789101206738897385403516037243904921391393489555400182725886163622853006096503882149734340037310661744505778321702237689110705146675662905945865770639213618247863853918464458333720913169869608356403465453941175522048006260314894067183644768308286128721622777391811998487103478016911254236626871492963071117935079445143386544950072013234779587217789706184184342326543501202315797381981772148194745683689965224925092656111920579112916763003192762098481828976166562105685209979387867686063356499538118963455518431572026589014729270407492097512689558542793812019837509606555655180189547505459616015511205707515040899950933366270987480384075003405648580630493460411431028307571948225250390893434933189062574023964299088828445889300658667536408887464933390541094713145874515441095357710636812668877298647829400519864132308017231479545723328417440424043425718135321910414796726336091298474561533818229759302771780245698628668480472418723498133304322912519081684101701818161555391181405363213884377939934889963714068634546595964337360591092772207530194593039687385266915755770749216430205262468250232650614831685355483467343807125622320932318763774347729922890125680585429556991939366325114956473776004636918952077511413671045449275391246897665428386441318606326734551798500688484586123429547902469698125737380331082727090707136621163426076442448269658782876048432371365772375396863499601414940726389271609891615471434806513654054314437767074691703886497219322675325190287473272458507879250201022621419851893466829164940333624099012480517657508918468997475294398985598577651843430927436892224731242775200134203880903294244552683284508095786304786228447309070288502152692544024114902288640749122489648879698127201333535180854590119908857330038958840885990613170952957353731037559515011305219319298428996386592722799201158437718501450423412336594718339204575447966354772130358714010333417170189366268956290315003017083086444725365321576418802969303044785336293311209066705278603491383602759822902447294963714999990087345413429158771843644625724340570207711713619327121754668761100598680460432898058511573578693145663146888061816265401177058623831906822207244602269734346537129153459486136709194205236023997471059590014510544315076982254152909927859521118550354342705742187222506185277741219920318751708764029992081741806400022650329651430498942593619731847325341589274720304776967386187596459485809174779687515026801756380370017810851500968235461523188112977739490097522953891759102200391911182169314621474649824022535448837394351577872718847805913951118224777163691694452635572004870858933241453352652230817292596717376994722005705015170970494433724231342575422609072419900249462798146487557338486001551995783230912075701419512686470068022383267972819543888517769049825839180652704168338937105642521210324083217282015213017749289997239999479008672430493769042357005242304529237786053685602324270113167784528220327765817815352933390234870749817343402484130502376131137142397421539673734635813392936848183229164160970616078314540755054788884092810254733666270469857528332628806205022855388881786891466035225217530105319743857031204972933404730159467355753443956471189056582497080227728161078164303456845623467803604887253655096602149481832477873905984884951550092542834773948317213887999791985841298339508943840661223595986052839622372446551823674699689128976049142499412868182322108701600218270343955337365306968738356208093704088144125309853572393260854132447599119768350841203951212650909070296936966965151900734439375736962397498484427680324906839900467630468506106492932672149520042650887829331800896748064560401989367709641123489380203889472192352213837459986094145679099264947458403360371336479279330402721885720852993531082525834837698591845992081725847518507477763600088332379165616063069844035818426463431465329785288473514915019967558366881549716861383310764595401077169856049779816165310543429155251625866752819279966362645998010298206647214351405486106275068598493058941786372471663100533575115151533157275988672381923386555047678011413522829169164638126125539301643304748506249370667016949113562637155572981416159738677704527170764358557470241951048506361987755890832729580977305871105098221561356810325196230620417187285182966792745007401351588470369112369161439078103121134001094008058931802767808278597076347436633564445377250051598021755995193776817754015829760188014832023415105811073853496056239402295294950194066557105152128090696390577525062325719591642714925691686688502646421076768725459561955144697870897253793943196824484887008684597476501595531366219767582262980313930397938313007397840483509528738818316855801887220384637453819437355174146628391666005016665714633048164672162902637683486705282620478732651426840769917791736147547120639251228643950229145531998747434416620409358473597161505818284614485503930156196843980852781483352805684264064089745106313885423052675613433097713319689950721983792372095408749705084553573033120034228313604864024744822383467601027692689166453988459048098830897775942766163368866720108537922672155515580448700892663779888521909990623681667810470604108521906232007622641321491507603914691229167838877578978645310396995715397640585467086510823236941602715699673079469755154036276891404010648246523630872728960646990436760177474057304576413378416620966096202993414916373176583217907557320247044227565476921927326994349032995607655606960991548539501102287832780988708737554246097242404181599376154398994399233928247201363907687845598500066246939437250009110340101639041465253430539557654649010369778026548564319471270909524564594969376160478137594861555188617147116540750434538414818053364127709029971321836472437364029540888434893501698404033634910029488027961889990313254473053239600892448947951989268660161934966256961419503312921589851605988085263281344314490735709723431322366597456596101658957876770310765754418939157362738640647010389608404992551148181605788970456900365775341459326122144496041797458957273024751749506747729048564523883555541898782929827315140658648020237920104757716174278925452194765028742995837798943236256278419474051709307118640439931735895089764079979602478357299883746997378069206427392711318251648383447153047932215530341463726564370120094588985100606129593537071037079311239755662215108258999289527938372064630658406885828668125042877240163754108565775209480741184858983633040445444600918945588119919197762165029878764290299857668338441254706380736479092542050971506816817137576275452363698405733887880527112780702498248578653573521586922913200370959400386603502400868278072040037126306365790375378876161006571437626015780739613733323567053529727200052583343739707053365405970049385432612945050483588114018424606747279564964364834086559388283293454920150826005130060663843838832525837778561139148508578157063425592164503043836058927138298699713418684444781805741156846314150131659695022751516580906031118804195593946762675712735634563184430954644388486974983336943581043154119779494908029100640032458655610379667088485069727779802075459443071027885178255772456059558825695678639114831291794631879781045911205469963383030584815885867314846223373167915100701465869877188861872698304956980426420358904042210917860267465411301734314415357054243804133408681168025972789076882874120504292513255894229701597296718221947325096645156877736435468250998122205063591030412345271434964165111382467625991354602525290394797765605120946788151041075883510897070865643899587134377242375459680731138295160037825832724956276627608642446330121705782030253136372916134267215502763246735118637754237102602207071611648269855652479020110177469428997958057341364775569041515912095168523666436669779015178881878841178099315868637611305432433171983541302586235865940987883895654097894949331339391459406541277450438111573402973435331477133202876321813293440564741308845339612313572218614564835185385576673702474761458862176621704223840090898222576438256288750647480139717738640023468313695537642142176629057658575571749834861144589084798151000283749823462036839656577395000406660174826317595764888581981289361509291300590114394130390844670652060908371273932221376554359558802082331526920620554731587516832710781211610224490046354193358537153391995001483678873188429287098717376160428065207440671503868702227135208962877083492486986800816709179649839560676994956743079632225045630528003647834311888388563054110557689563046283657456380184893377382116424713450991083264920888989388088415044468038352479883660921818615119959337350594379214602123921794171215917381646987921411513115179737385400609282317337705265979277591533897462012972883668258281616704264030831069552134467787013756970329450020566796812095263067604965568717061863086525642318631550673234709957082867636842218985466934286579437211642240243783823532793798185296057615377840013395975304434936804345724775563577057110564856995850259808652321679385141518263419920929218771834481528430374890355560648844000478217913453416300949699869188094318462381222695651710694396645638578879164324542363296453112454307209309483798766405421151957877607155440392317039829335856845337872184324069235655663667648771268597073432540090209262078597395596214062528476990228220874552805721090364610216699465271117226793935403642721647826737819466285664565683633941004218018124866605368657252550659538040955608993443597772490527968074432123351232055965110650523488937587959661166214902319525156165663033338755426377086311897662527378019689481723329427582747813131644615567873909110265925381490767508458358108595730831076273787149084470784348436141170084595635680703115597096255312056350623241711275687832000164048455029973215669862612476654419281318437317936799697653737380135205009569911347026258024422281386876518570515380577920902146355936308352926098278838894187197423749359933972986199494413090448167029265108074582672306248595246275468643535037744402929012986682253839390405256554611509476171715515956779033173251351321008166065373392176315675563786812656750553921843564945106847096759521312828345865672373019471107144563237553398719548570561148621907111596136162825724485069725805037986299476403767862286657038371500361154071178051668744720827109311810744073004739168707102966517424208570800743174315643329415465752162216959465363953028765879728996311070735329976258134506226043146123047187272943655792582087665594040336584647424649755665870649446406113476542805994578930130038772701361315508558733726282846110161226177016500851344710814243759012911431853615463758092293928668735235151540810351851235881936992703030917855204838243045020520467419156829979227367085556031211723010896968181620824542380537173194650335033869001374390208531967819957226941475326382205332168854179647453297688045124636519660932238086046582801181503399006091242218987642846226911778295707331762756432972730239844994859581421717029025558372636577491921294336905245579450656480218544919975259601447014708592211454426522673202658471071375193042796225146662312832215234304092738485672581535603503573637889551237945480623623346658212272394743121094237602070560778614726423379122008866402244013653045617251566261568813487063065712958318953697479631163912431888225040515932350368365390351125738467911426025208262242813548375070448061863719918798713877098342344120753585959875814434086147276990010401861949304145071591852598874418477421114644198705168380531957777914044274091211909533060953947389808206343877568409046327903400836621878570804366001268751110807849483481440667765852570038179662676548002694818448986884694868089136802629538052165021316868728388593880672959739384218483901288845233990046040036570562022380804022346565632693718360301580156521665313097399366054139574472077341912675751447560576527705615509296779217794329491047324718691654089148899420918688285244695247337036645304239171532470680551894334345352959748957911281618780550475026217614772420253060544709892151273769339813717108849307131698348552819403689536724787383979839923222165218037071413723545087904372393614314441978108426873960807264022429049128946883759064784017637658150551925022932280788868220479354438563161947544458277173277367177484906415988815272502083763112441048483733582055243531943598494909891540739408411364331037723429717963981226880095725571767723251487930505126003175470564787083816635236549514277899454906056749178793332956878019189743933546934638717220477933033692567479436818614857349978599523831667685201912737359748975144687788847363238910292197375227873087152975324185607786269478369520127641031304700706601296813360399291970408379773481599425055535712386446129357967322851389953306370879176870743674960950875866536316255356220412568959419826998788966988209338683259971870159678902892359183653690152026206334239387724510843736758714027508401725176555730732964823635580007130558155099393233934872795425127534492721200750222937347846639906882067064461518560055417036670660420665019078229513605987090764354397435121296077415733750380833961455148337036804362627557327430648814227540745964659172816239455897001750126310875925773015023325717843314046039986198958292505966680712326377881543384655970079840965348849602944190850412390618088172756366743890135917184359385221753226551148636673822812365197186700616911363759965273680248664108299419711606156455430796764457889737438139461853441308311735517177132708900073581666554572803197338951048640846113465448116470778409089494030238099013575078504539520476528711430989807952218961135500296046435988339865799798676118371408748065190211035543401186529791248991917515690327222193829854554870281361734039082700508121670295793039684607742603464276651951482678991442847019791742293189738190757215789632370384901650607916810425277187209198499912582001662702667792916866462401336458796327235785692594447575200744265831339906802728847501202088521854098694504944658799384986463663434225725228642923660892251565367343550171572123660551520999010270386763441928292500045787605103224718687128361647607053551635746868492036344450471152315683071476328978183051834428084955008455958647990585397563344019737887708696438880976278682196119111079125248941752318230881449347456199544474199862564183523126989285552636077158977281953563839167478480152639500651057778910195767151312200163449458805532853333412396220383457382537588922625097637647183407180460202525465397078214191224973745897060995290573693695562809246680584721964343914374795503586366550404608031551358697420186662913023952963573103558996751220577723067319022756852809411320811718708753552662171673325758633447998810922408825838073991290952732143384413666400194536004409598278649272720391020400880966219744549228635532805960544489647373419159187010672233475992314195811008605089771159792986755185517608326034497137322130537798093693695194841021665507873027640950660146829969121536841904357844045379968407344744948526182596849298735285758749470786608944672463055933902865494152597197820383485062442088015237109007191269111853105426187967912275592926460288293406376742292882094531433080919032789622765276381279069708622003472867614709200424770519653698313216500002400224125644738863971954847930309493482903468545972944314929203517794644127449231807894376989074589037792884032394340388793096390008797768958818122771331432302466871473559982923806416809905092065134493134181280916362250049982007135584038808665289195820045985063167233354913302697629268371128546720535237447368187177124975564271230523788709197413116289492153174967460246996712994149920231774500526075269561046454713050000581391902469271244024076328386673159889353133727561307030384713334631244223135765164860739222418639401436638757492743705543716025274511017987401546876122646950983206334907720909147006484223166409858320353249097835956503660538048196129635708066358302245679297371952360275886595883456868304662556966871011117071020493104531234766650695022385576049304834104575031025124048661232357769979947609425227253769756713388010972146363348484078385991488961949999078703337329432529880660990786154981796025043035117126209989556237753595936019274012646106539249639429237833475749998438035329052247237044663942068145827514408149979334843685556422279452632685523513484935984565539392822733731729874301995280027270166067170137592688452829284012894693594070214893379973376712503065628114046448693626460950590499308852965764322862669452562540176037496845675481217627838894630794536647981200055624512090548322091292595264367196004090031493550327167495001997487238909653606543485840472193461146839577809709177158286627205386526878222324185347379018639179119761598913483575122248727457317953147538674306689466272458601639684630705066742126588979461870659523414539853876800666278599963323294674064934781847443497537610839426754975209070848019702529721655856599470773920214689205294126259451334373897141659967963909581498930628272945501744150353435054742461956028584536227955823578358947917157828423327825739555731229044555914109432750292563034043793551225164813971746969226829286362799661239675572690321796885715761990400613446191873541044304630986590136504462220215850953485913829550555619039557598983382149089679158691140012312431847368878367985711451471384015464404985136887807561138552827941964614276410474704137554473160335229608977145376928942602368629370846135859548140117552570720457398895599907535580302129619248275048235364355439963702077475080067648053426616977145018988655465518991242401092346622311578082817284014572584191830956683539514901956215824839332324591509709751003330297772860016938725193333900675648993476149953174610443802505090983631293257251046705949498144362582910145690779116378681407842613578156176281462478031553156306758469667334892082854395521907499285972301878217349693602263877825638937958666516706751733090026624142541209415374168872699945903471173764084221065665231391893303518102738713367009623325374858159848182826234737997808091678924787785973154252994442911400809320774025371015798950846847040703871281696797708975259334989500612856936190490400997632171228580095470317918005197161440443292780655875422072907497603332112938277965608064985330146364973236389322259605242987443188848477030525170368489470905580142511380146529175809826486160424420853221899578044558652631366305658037235452315298031594922001033205620833141504523251596650300325435924648074389793941524655761210885984784939497608316790196974288857158961653085714963437926092706005426260378945388673885306677434871207121131638791156456253599590267664237516655973688441255798064361278253066467755092207455661603579408800499357119125626248408318288615239498534801594836031039710254875431730769383695036575461872226323197327827051700113100074150183274457876423169356235282675164496196231312810201802287036750975823544287242668697390598768349212390643598375909080791994320057952724507455476334790955921376344725558012373944674142055322956378925626549209618201721537243649227530876793533682465817925913238766087120718645076731840117742231026090108186651430189501204142415117234952008244447424636328528417580936253284641995636640492453205952443508125224679010725777377802128349283666955993316537903495079255229737481295928981722776054727866738118684636509956909338797404644007987133464749360484786475076063307494155356749926541913690566201149788388775935023540351905125482637140753420097626309264555778047587390328896853094856422219247275276013489956776475566826270019321562513846538730343496990867149822107300472949654202849726564892956942159674448465577497704524679527755355253712372529972294702069517975369291178216725959543780305329805385741223374595026557423162225428062471810021345870807495862517224041739839829526998837844484135173383749641918268616108041373070580209083864695909441401916340075610256329865143887303023422338727322818109451204834382347639329591038899907360040712320988565330207126140781720337440108799189994519931363313209228567131952113839007587884908827024538473639618027969140696012231819747879357806191248763341617515279494458422454530724183580519596584106733211775782367273638143772538778079069009518615230558390063377827393256607887828425459068024067070749436837316687535152103835831177840833953412635722551374536019526670678607571049954184009433625404109317746386144012793460226951158546584617534941072096719975415245835915735616167173221666597423272120470020678173223612465318012660751083732205652359168510766955845263748190072762319739166533852741518457477911561974378416561033099799362211388361720824952972350222069023324819079026541326678478557434045253239614926472623029108715973145241026276343005393638903369398340977260625722564371636366195188433317071737112580475118426155590177678211743401264135972362204261290517460046146070972902598813521888975420799039647932071354992403221602398442401967833310730158112836758557372139078357629796156380494921593205210616395484625717206163457126967088260067358060061242102146321708304361592857215188634331238861420210422670729815900141131063133881059278992703824145953944241102318603028948311626381459513275409356804364776845041867437464054329741097529382246049788810841471889122968052702235008941595594675943794914528727799643224643281077925755403150193929719404430111480635411131525053069153358868417690993958627183195214505396259200434140367968623689800726932092911126892071739637126209254710267363488339532524983665301718875807130002366142480527707902636290550284973286213263429166696871232325798236935193590608146484199216756945692455119493942589740804474719975381568287318730744751024261012267444097217136098638266439392716169486821705265902559680997132469645979333670658443086703466057885473182542726425759770486939662399905246988530400666770492716787978988269870087556876874030315890177273291091019486787984355553597602732884441017416061560812008130419824838256446297663800780529730498157550448863003051115840881882502321438356531655025064671593274947925117193198850166106705846996055561079262893964377748762622400249782629616988090306225002138122671305658473540901071140730153699743655544481075067194944835307894320037548740057112867699163419658949403562357326482145573002732191953752200917475653024991214173028980492523413834133684819380301157391623427080219221357559733605651253303355078906282763880203342348109418235466036133420824432726310681438654991032230440640682061378578134906349410109547247803230834955136076133416212133945429954850300867737346787592488268662743413095883519686233074313022165162779854772060695217197491762063314003528923063657335304550394329997955974092027820023302987287257234632067866089927400015207153741027039624419507978102800834133512129107410873368792991279120055844018207660091478877621084441157936550207616877532878536157352258656685127437309497849802372195688786050629852553469042194833870871588610080969418441361925932038599611994274114865144246393651170197140435042226027237912408340582894566120574896379421472775082164673365120404484957446992881626938780716301978032768251564992328111485985801098625858891154355122724521451605801191681021319449559151617487024865841138350645423047255188220726723654074427666523349364563253760013895325889290113199922619463185202370263284027814694170635520266694004982667638451963327824825902651627442430266188635944705265936788853502916773941825404600596145795376284348540679872718514840439754346256610848591514745784600819741256941080366980427050044252423185469369685245266845010650532396193097175180783813670391176160608352637821324347642615114072585988902509120239862819994099937142571130075869912459400289437278660176154044543589481543475771400195291214984806992819638950782854965863308046044650257904114454991143699152272887132900591523949514805449302880802317868356533596266116921320704595864856025011163258758897142259968005910779924582337512365834572394765528028917621500549326439378202417785564543791154495372236406292325283339992952714860085949011730849409626915326684072201881986172757671139949328197612430070811370543643091021370613165798631521943943376651174137978875070632846768518359523334658172296876142769906571263450612949333176035541120012871495805893503877965702936016079849388825760832804344441563898715563563005745413183217514671568165564853206347013529174183970727052238309915748337358485710952936053566047276043731688846963584006174602463234648988536941268274282617452024317043747629364617951938530630577756165074166304485586088721398271316137579834965895504833894842362315243875979821142282310345330950406281603606413368136542233860816253731844451092791417655859997126614703911522334803333504925524582916621246416877073478258976100239892762107690246186218918663572560773595406247927878276116790885664858128064389388869369428946749840899030093646838689630339910479487158258135445865177203135084201832613967633845146986755463581922371113909333931166357382880996918525960290955299090583119309694117915539531379021329517441809922754862838442113141030939911153105183015831849623318807691527093220301575771785956682605396058358279361145557852585237693830732992996583028036265704792684662337651711143179877830337747103859601890469729525153433757240488140658128940548370911923787666490371628097176047452409135789537803342923980472888665590475317567256929149728911342142748749603574849327097858608469624882716760824242723732546608775146844913919041201741601920439116149019463363479248740184477643591485333534614641241036875882574446487070773545771421060793763594556499612094144505915062755766911915084017676500348321345953941904710367959325715811462279339361957142632536283608638421823290982063728742445281624656975099157288687734963041706196415160745618027557105714449683822525787353492541386382387343722692449093203735201750270490233415226906981803057150344927219194820544888747284233839330351316461193944322178173657635788621965702640177349231193282147074719706945493164778769702159128123863342351482675236782892834861536478031066135533900599464238254958493613080610039476114317718266605078493147919604417603520686422064464025376690985164250366563378556473187744728735070306075791926149153707649040768108934492894397740247763706910124454771374962631984502059535561987303512148244429532450122611831455877865564720346025426251674571115667643376232511978015983785141058796368988728855058135052941322384083314705464876753042715040959774319597157854056943369556151109523103170419966847116832190073510291943353974456938493423311017046259467637425389205796197874357430204578577673274868984472720834896053546911409034822222351252823501304007265046869434488629991576252141131383160574455746930185909314919542012935891735257016952806691250672271667960480846568208868969226446933427330760363507689382635058965943753325920427272199086823863461475929298424244968592885423825820255848714343195495597387079693043251207052328479039196004925256593518093970202460544241367668994865969803073592866092830294289223422019380950534801103661325543838469908533223425539039189818358669142213493902219357822732721966316876491766438945254386615842845313623330343829448776369107461148541909900551785834506531679874013689294648855467785011029656580846208881532139313991664761771814829007414539959293333673824464174931754832077166954879844659607966403129701929874464204798973229563554099107846453888954257300695575103084736429924332088133894559414120866753907496872767609787761290545684438767636702228004882865281757412608256381882083599893212326338081589045254929791506794894648326118019453506023679458707334508022822357786072806335729634130655888249240681503000728591060070226096155163517133851007929913403982788249995562168393228976625789900594607360639396549613809317758476667250542091067361461314384459758132300964114382058166907178725356351328825684619796520850424326827904644063308084153161800651469503875883667762352905607930457038953374349246898670531090884028885567508347619287797674294520378481509734625054883794578552274841183017959407136582437024630079777367152335227609511378230975648970171011378824546856549478001786023509290686443447052904126713898744455097995326602024017604906603775102060105264783819113031709868485355978888752409841022654409533881555075034942119570697695523302261443030229241488059692369141744211160737712956706929804295308676375761953759309605083274337929032291279005935369612055014827066286467954347537532538857770794187765525953747716859490678825591038585765397235626034905521860923400140282525153699226453364486708088249081488075790792296172272706129442016001870163714377479847810641077796796572627960948719328937346909839642618052847668900870858542736083593978738149617917166536617516813967613306374639866972141681887836889577794777254751293782671826990000818326241474484115583742198357828766501284358146927378229816368592559878390119233326107514366741117550590048107116510811916892309696715912955647304679742599887232120932385653360775025065771972202254223433752828348125522002308221734428340004566672304049661468717298273601387938833493760720328340755424395766431792796426322010020865881654216343360741278747703085467699736105404913727510461738935267579854561369120155834003606200324715581588942185524447450882200381291884816907516831938962122714034451091787026964652722266497096309454167601297251057745896614292360806393867382502852901392653367435237545474870051323215445813729000343649762300121470476819260692907031862789753473501606873516316689424658817777520152631404896782054451358148149573365813980197358242542602085200447908870541154783562844076358039816792813010881990192850291218083146679342650749940548035148361062670505242301244440046013219839895078254337992463150670925202084500030681342356127686424453277990661115106033492756478363263696140583760019124444639340930180943639662830398010653291104146883058854805167804603012556186479098572653131191431323026532856365558622209127041606206351227540900106907564548725825787015262487543492951069428050002333937212770546038953476338978644179191074217281947264507941906063762333769734153247400354646606766048758387014363579345497590312536584120687686421681345522988109861532919464712197690273335994346964182434816495095419272249062275753832219564161293026824518116200566289705054646924049285996165180082920439093522597737767847151249967471382992033799847145751643017557325400717060094865078709913200120687118181797874861184365158657958433026152516817911102136031420991508649378472861740830228964314589983546280558257257911058857218868462049697284832620183433603055246419826447346801160029597575023669416661211987692169250697803773521056743971563603904021231449707298273622816689374334789409750358155941637774217985999439953473604804919490683267864945622928990655620302706197149410314147980589222972228420254210404785382978355265177138245212226437821817291317998118782523789438448185288432948931208365514329737361647832311959188128411776108647381126024481423339083524130500232265237403654984312061845111648674300613308443020558421898126784652248937058797128773679828696162616604032774654077625367251691733564325854582825736653602575036805949465583615053552395024229732952218305148668500998850048513605486150216846764572615569004965551801489262065950180342061245333982574011957546538938451210230522147483456559756819616946051370774705170285186558466124818962766961460708363302636084211083457345217603734857622027239134465289501293224895441728150035887840885927669667094606630097166452131838878398850114884314504897243395916006182555547426425263114839913931496702491202786631659315093668022960118750970312082060611732855874839578470001805907682356285038081134250695477918282893778466390479358046254239877289743002652643372807829737041869879428191399018507516185838654644189412636184819873323897330405681707287125657313535511950721193757702521563746044304464618872332081341661055117716245529953300244360381246061565771612321616967877207315693836391567611797813404171909847387390727333508223618842122861212236025531986095533576738310878721289310795820278378220900548258382322409442523577515371435897251560378493448540313938913791102510583355993830857822976119583981126854639859317298158936109366879858293454178477390767021127547046875569500467078376920111490577184962157881425589383410709144118963462742412955636568950779673302241723199491048152585210137349787439136599335065821863086092145162842986990168349184577350695305051271564093020110939814348751464710303086772654386792801103269247504732925321365002359075921988298697366616418320170673291177222297598620979274829929521523941893759207232791375509164852797284635054249481729045062848293128022452357027152956747980423666829077859673422869195814729309441758793072990877674156931280929281922701027065727403896484141755923306855581559380864240459240361115466501458046198651481334207383083268333713117792210101870495609013705392971874536485239731982307914007627867440153602584364449336488807912022741610225907266210712922029015185825105064039920733933145540067978288961188118658006337940897309022981274557801957301643727689258744843889634825044148139773225342797310217487289547180499324608543488107341401907989715206077552742694368826085890601046456978515064462402506378275342046096212517445713532917711914798753557034010211250374575481348728157809660173065298104509011143317101441752008300263556273307366852962453225279301934276739791551932246691152910476199994704029067936406660753215173764106221782182790386517338011736378750103421826517323305014504223455090521683979763770031739219119730507902347726336094332451276212216203253734179694495856648487526149881002202179907504102811014001512397312355393786741109218691762677923757841067601515274047335122916264877244182093760097192455007563215753710647025761119508200664199265411933245040209448118639639013385328998371990488616203701111028315448053881081675699024042841500057780707665248868686595221755202456572635494820450265123575733649134259083474083030527259144761431109405021964171598425023424204695843470683712291838203516386446672145905674319412027299129815666054496453428607300831923748666342349197696351002857006928337536781318069077115623719299818006127788891813318418472729670783936141128472655772757366313995952738892395963740218271529512347172297192028704971853288132011329733482411599439015555239060299248595195387312991085552215274862136231348987762012232320055167929302116477124532542324877580103760786758805095948186087037943242413475505542969336360773401373485865518515856295847264430550612569813678453615072905463240758880250950067714264997444936773176380303045658298863006730823876576756437723672861052124042891810331997192794063232579191716364945486147469841700282949483027227349900440906819877902903977008923036222785002682242014833598202451161747171242724386204711485066254767912069723473537416696637664110500097258518218888601857670681300385571255829818710291478587285178682825545684256265737227839621554953744970613834310411238269350016439752205949744557386852502395867554839680977775436726985580325267303500098385060203112563874322961504145052111850354075402222525502519788280040262504573508931864586074712339923718516940425288795674472316951949364384754896193570017390920276596741792876903966202389023097279337195533306635313306487018063418501185524812346559886141934633581347524162330414961261730333642549023630596842641899647061668022700929972412833664951452543353094734593806807681139356877481645570211888067298603607579416189599173407373718980129977911468681481299607352700569559021803566648021900982523479757571513455698546285996756842084059387465749391403009761880031920131011169433208756575446105449253411249927681887546981945504752108451034270414440180184037678529214496668061168276874363216818734014489978069265011210893407552944433263120018452420432764358222937437714172481192610644406506758859553624649812552282483158972538086024724489252741127849129456735502522795710373052700983964004616342167206813840519169054878586354480528714977183934636146712805478681548747386622755152813860986218766261907831578037544861776630017499793543680603376229328543635019551279491312474228485511518802945678097921029747516157966798297388545535808277089619449533559976217164977006346721908530779774380839473102802826720970628304206433944590269742374633481082003190645992199440262172431553844122603712220461306727025861619640511458217465736990232195889979557814119260868819529641553538597170739913308069621460395139922376599891640292340479207109133817573028545939930702402783041020290455935318532606818073516960169061655413507331946856623872457500579560992667734081693671030546146754439983544129118594377947633448973888335983680408522201090952096059711807302844776731587537174696592644715750620361168385940374369371769182923845098068029976356421035480256759542834443009412669865252196799300772721479015452830352244295153802531053765028704674065293044020689753817643294599476134567704637385108295469838780749805711927960058266758820596677524247874112181735463775912159774143879086366290020439109552022662580754987622080413810091953729735976293540610099180970602084647690067071911582941426033871505775728464800636188771667220214494358921680116963292935662597986910379966895309075154184343513114040121469388771943051037289498408302219458120445731219319393821505279041482464346728513562223081036080807688051811824782821089054968957746846194505481490301130569459252719979528539898870725190978136206428886422059521187590695047690406984126292670865931585043944169545556736529244891852457083057705975064297670091183647076054605977041716791451054834807028467698793484755993308841249531095524668629720058705252610679371046002186008907342506581349230452432036660894435938339476414123906425805916532428910318217806382137544947662731151157760543808757643319776577811439553102867487663790057600098275437814272309438118246508204812357708036537575382279584067157811786993529847510653822575537778476101821708344533607156236356850176947713968389747999311047748397502703291558222626735398288042289393620246994973723639769973341723078031539973166306585607660950947957156372539406057346837145345471752377957510807121154731061333449658603167752799408333725578655951196048475884967049616347956558917087244438918797220826345566089359898709841560818080881632288789189026317446829492878564225068544563302483296613724902707201664827372847322807109927540681953013469221297541553961576910874953090362773953174973688559911763764540235280977640251434796938157794565128370405467036921766982928717003805898611390089979782966204835542600058040062080782660798046302176069080011034850208207183899184012219977853401787483685504005837580980926631029224526021021247340225191828018675172332809768759798211453317215811816961318840416716907580135305782382411428166873137946170769042034253140683360345589143512467355309622153699989380729475477756343898027323259233127967055617601396640697664736430734391895160261419676489433678030157944352094268710726123513078993063651534433540421632162219467199478913642542277326423261619682662127766044170277610916124158612474513800875610070730434593892739057717474652070753602782956728788860690829168395647333806734828205603673600943964232497706902921558129683318815934252841884095961921883510814126481211444677157205141785354861100567893898010709507062842955976316003942344780950748868179595278902935598844214766668372182394563331676230728526201908309966472424715678165251524879406428915052943944680977856988854668104016956591499172190653723158051580645393684776761961903471376078214438633638459295138847083517162992725452404555704197895985699138841000694816113578878149423072352396080890128354218223190577189679767557125833228003589639837207721672307907918638318004099062728632051410076176142187120933639868470895692878992276337892866288689608710187360015580471992670118512715759882203498738742954469742914337305451955807430265950475875024149396126677858935407590071547156980832096698957077599524287120909769764159413560040898398679484548099704428595673620574873955552324933796458143019557029338556469204209592944281736680879541136061919702158549579590378760788010958321972597490726528332701757359585567402915099313051987131732326638696835815143658251992818159048226059431570693271315295336123802605212104996078560310426666338575327631344537821735801982084375929973790051097976956514751551878516683087360857893513846067065046421706679487913803002446780777279793721843452293376469645786604630358270887633864472499898563780149506892279573968017747920434474793241215534642185669559943598382293144701029192281769669715006255005761690337412805052990714317976077903686586555395041540391067287169469703167610203185594686837404300462959715477768260162522893248074850943610120651685849554384970464322083291582479389325868497190126651263652208557016146563155026776422386532161727276215491151042589589671782438223369440211507940967977580514850289260654483840536915832127486168701927866112868333599746154018200452186778874308023373506289516018845545978732731647402828688246493449575246330024651009578657730685525038602804711880859308657808944746883749191346870424722498893152185846476140071992233277019009324541268667544637816862314372209027162615936747603440830238942571080508872154442670215338476366558594501019955363620191246245091907697427091111903025166702922230924214328002687223623497878504106971758288579842669906218364418959657069808500299186651975681680492045923670934505710143579700538280938685229217717583716395326212367669014908952730409549548451702370625784263015056124804104408900886384007496944265734219465070512117996008004422885182737805356269941093497741401452515843138748421650861549655806711595303543349369842111528352681194641686902002597994891599256206525816660235521065182269813108313151575918955267332535030250627716447066936856652369209832277462612762698660496251870194941154886761889989526008312164539259120364421420150879224533896141586991710266379980484239717485191811426377512969787248082060002003674870652201070915490840063823516912681012146123873472596719718197748373803613027032765486957776382216711483777107553322646584788133696307695803468054609029403168956659530507786025614695811128286407564880800920324277443583021005726730843947687886877307454893260763512529290821195501365654890523510864065272139078909115482344635724493057297768193998094517058828246450606213696577736183969855283367353648381191256593633721576560122608959981666615766803729439843223600136928508771657002110660944135827291879088108187531843288308914842960201391719642214284969803389876719627255927451488355508805984425054960456878947798648546442673073364319608744236542794680030473508485780514740226837158896129447376838884747141805472003465776095438737529513470377357340126321190469543459482880252729334720956612821673462780405001681369639207627161244027824234608008663824766431070020427600703679350345671499329318814853650427321679462626177365328895882945801566848348879255227066652997388992804839699689820566527359822788977195524651428673341452580520197859265953832891681906766537187858070907948916269048479964540167040443578233624486456632848177224386826320599256100803639031533775910729866649683132422460373607205855139277286373828295974477772096837548224227464963247118376756692146970047371485960990035883251637272909594229073668748431915654811467684893604862137447285776890206230414862449966816465678578205806868481577056605038422325975576919551436776463142374778292261231383861095668825212323440446197546924821921594001595280138095039692982757980725572008742415771617491032108631889147585404338981750496220380952491722235669327840993356381541410780935966722254493332128330651424254427046341235640787155660074234788235075440256601088050822981271696893713101349928103252221463979465295909634931264475030295255742671888744486043494027783227244155426177566236104668892714158936693481653669410658521442841872654727162000590286192897223821940638280271632046554902640453112581872619450125571609623378585307962304041920758125715002094564955194222225373623522931838164399767467638389116213605336331251665812900802556557967268520589676159902273809301430204462833469072752498685426771768939879768886627364448979056804857171862794542015041675204712918241525610832645650649335342857924737703709096367635858238175033829835652213823506162722679045875385835469673059952969019935766542487677373897402510092454246925059507521678375401021129710891499624054121960473666801649538421925236041029717829986487909974634176754962797946256959844175350137769775691301023518462433120633109621963137207222534170545764862735137380558928378105705382899360019422020002411168545648373020198529143703453322216377896926159395409818829787135200256650749815614695688920701761175768568128370853956969141318351079758839851983579002767590550090420033328035067526087426763116354311056469825701397857145157433738633254517012838775155111505999774742577331641429555641860015048814574362169242892022931040542854023197056342689717830675642059886078784316564657532205510609966669779559587801741371902698743422442218758560981400356423241058461037079040566942847603560815434534715848314125179170455851484237774086575291514361588790469727851762542447327982884120043330494582256795262365579633051836202369618080330141076733597638836424049626439571717739532368378894307237609984749099954042208257355720918732529884014255662646877404416014223226430492684773241678692036531357610907304637431784788019642555578284278349372277601372638799235563822052602282074622517365888803529166749455885327173501756747846575467821009104254126072758742517824952102806850719075793069727424971854000529162986131973723454941626711195553553181769112800159003544911954898736699982710464362131944071627762727130100742071360932437452128918560130563275679518075292096963144373280428866584214666828702792474668746990947245021472031457926329249020678984964927463523041323467309077595234110374094611349909196066829900774653433722043440154279553709651191123375485796290582588635952873049991721455551862419403642606227343475305811953068346656528487568043645432451112601262350909283061539749613144981373881061356662123170950124639599578120876075553965493050727078918831140111931121319046312947208284040267016497426863451999728112081404977390398537687889604599148721379683449122757266681308810123181000709100128593145745986470744627824323583028876578247742873782175291370575663312207090163369985087849400535274338310263301393626232265093792643017635962939399602169074793084586561409998975415253751778082398893161743039811726609269764974398437601624648712842338009289237567516278428536990617959530465151728480207524716183256600819520582084579959620183973118827266823291113032887787479154082366510793247056821363913557635758891770871309158644303267584274213054591318724107912250074104764722430489660168387211187478154580409061706458689919260767856228915465029045185311479802322979125839677694610472737568446811851463451483877662636096508026856337942744728841598289652734186472584708915022166976399554926426712574759419180179079818553433068674988872988586645818450375295994291633798961092950869045523752506090600663775944809260070253299710000667827560820858708845966894784004956869202725085138936149969676371840855134737823529063632866599717708377067471436189095738564814115975287660180160162187416914866937912519360459615115631175981628339545923559715127600962382438211502909947959962242160949734491041422508693541914049131328354950442310892999541510426073863134429832401306601286111101339618774314562633170169185814880522332847968983853689314858246887613459599625245596488245591209232061911318152367892441774511351493300997930871279479023403485986336829033521479115937826296126685796860393440824829776409595216970387382456826471962901614679694187348168089842360965941576389852525893460770677956470499097197343703528442143885233112796382108458006400221973021115262396733639160045333307019565835690268595547733953487381112955201301625686475004507927620213501835427214304280730195781003177102143367437516193458148252100533198795779216520002006509412932209182104644854681499103250824129889481649664072203887601084153534836994494577014834601292077106432657368883542239521872530686628081642753121730834898261750469381206335767028502720753034221998253750873626730063633416812374440590846375722922740876655741148185825057542019699686603833895509979179257155348678988291554068241707289558472103210500111739989950445116515038559070897567089841024696045633654645506025625765667530917441135284522590345477794253772221822659040153477997146373158660116815527813130316005607098363153698265328381211520112447476476653393866026602329408065682774086413222106893235821721481489863386028213605715052167518252661480412813350359050807903131828454125288937823718302431132240842648666086668160339424524165431943462434746789889717013314545380032079176451184161676784296777307773204915877012897860077390701789467040379063355105037052923321733199371505963696869763768206522801166941079813268394991720284740130052354716584013621361283525351603767780495589774190525050956237757755922114932602009787249729791936658433487627842238514762624682605483375314378653293308224159197006230346748295602656936319320891577274878961843866224564418896442483567151290998532910806879989924117983058670118914493292207279964571489784423059800688621143551436684944145359024392614138736456878036115569626182345934518130751654412772756039996654707770910705377587403268533214954507407861049206232894749762507478764991321263631068499270168232312194332543738885707085443539987754699800284413582302749150088607625150576043843125110410367704609074454034017510901486811921589189386605875739696249514290010864069027633429975900579045881647482285089156493277934443979322626620917124047250332241459862058247259061566551695770392785005714154264170665880821643862576965034236193573057301132373219887625669730218364482209751304485898789056317765790010217766678787593743614695063143739014918056716832747446078096481470582834383678652024328440859910261168544098584000116801782241560570252231750559947251774839013904299618359852231683821716412869066602605771578109440039043175486596478589908513812797197362860939492437014494992145147870600425231791264904757141612777742356792701528345421728261267871921130579453163760662878321842502485995937670958214445430705720817055703766019419681006158945264466089884799489126506475850447884366224923828600091112414268583648520896931405208436256688126674945614592445005855603798573182013194469697936920345921265719184979881094988851664624402333191481002667356090484272039243162665922575395313696463774427075751074271355235653960136926513538781456478354562103004418435517087103458147117866277997414906972351272247092501825979929065747499289049921304779533747409967623874359319412937459039840264160353781169746696564390902423006893674666372252143730432757234884257502462412335454899227027694338252853291261765289051468061935988514317261247236487369048630478346340658174534580979141186396493055563291657688003516893335421936407214945602570278488295744209544572355269806210838159197219594054499009333279921548032237380995750554352903081709924141210993385334983823376064067551082952090209056142146497703098051544705969119374441510069745205026021881817884141566256050241564180200503038268689190946173701795726062599480532449595416808181413195388238894211042586598164081633357645034490659653022674646617373190769199059594891082926729683140121134423656705433853011138699912301582164482734975534831126482596001952602321228315116483713695749841255447765417411239394619552517476587908605621181727836440546557132176118986118456031917076353269641431913399432284827556299114094922435392458849486073384606565965169977621841094439998293839052798484535697767920054286536961136601553894373595970442926925790599626378116192417941286457845358319534165335991524140343359764666497422823636592034560661774056206456004469445940177398164495290056962029040477702766033892971360578570238180809011709695809091976490928773378882467321160296706347691715299032699144925675920486101516864219198647799702495832597713609285550188907485494201843001554190427253361171685469874572432899741483356198526288455666185488326941246675020872491006181603011104681743750335566920513105987592050566002596118074184768829425052435413338893363272892671320544997891701142262505131367422109467922301442273177369423863973524670073452268215456112687344717588414503557097574232015107370817505146749581296802289857123017946584407426025556304685742895359724049671719539193507857191154382377648522297560257416339024988457533267772684369836413645235584244831697490014963988086650484333944957345197334839288923570448162148704909052909212216100889033835780202875684073341373354118628255140356819181524564793253492317110944748381897942157151448639978619105206667486278008420454628973102807816383805480272420128867955317751872879032117876109529904314869623497487962297265959667819141970076076950270384105609280443255965533949553066480238709062267946434844765360216174461280839732694305736804982877990245107770902285450357804766599438941318704363192218969947166519173232194659045801490733823763078700020170346331983174243181214559797601499019481845286739486955132575216878442522020753783702974713066925076861280960465552228766413075954016961804752666677191529486854395098884942902186163060315145546862453229658926420297193201211552987035482105390726899225338725280483046417698387659469390565958989547968679311501337630899257529474159800727726310586653668554772381387725384574116046142274206936974078770118890723198732665400282799091689690365687015230744464992061546191554236258396837145347666383252948724526556280651967055127894907438655656568586706918218963978755534520661636696995796463916785883983173429398546317757253223431179514314268774740481016764484568035582971838434216419963344721861906640123246762410263607451089498884736582488629192688266002899094153656891362850855300474145221758293079449959804288287152831601405289863400918258633168425184408647312924663958446414806306745551096159891055002016233434474312256167390915647414162990246843833826982606669941107494841832729857223639812637013934566405590315481665744225684875088473979871907481504306336557664090645693743418502197182870662818697312258933909855556856348488119142486147809385101509985311761413853632082734894322491641064203483543571293324945974201480229293875621547527949482421473676827808102538534369071531427256789182469208035194966333441049443179860847939281676176299458046130667552194201325559072797224854643782001019333221183874011208162697411832115518008664955569484536625433160772711230631918384319083766982666899385589657468282405561299710298440009854496990514090352030165523243547516662263489641805032037641035508574254807505564984177070451131945793113141317836170423803834517194188306076917054787228864786776387005607091868649483857474686191532494015897059730652502832464619726138620007853293771768505186893335904956590677372034102080994341715323139826307700942673876161993738011528500877587287213959599508716630566270424737039192571666874792818350612035554991861351378084625453945970458838590846506958288935069929675834155341090032262388363738979120222460251699059093485755967934295761797070365723909836600044843885383857122307168897265086350726976671407434461493214963123543656669969188487440830628799441131011894321197163185126050187228069019419691780889224385415182113248035668139826198771879929194974820653868340592714665030573530717407019855655986867240806490429074820342310191970632673115619905063434913957714669172042991312819085466913159563599786688378298899304896179286864182786974289732718160795776728370268212839942888788496984720152148240457433904592721315374178844404611759850388239285946906597778165756943108867486784927925481317117378245071170720746304878997220435422616227154911532643610488821838248055951455858561443390255228951839082020592467532533511402433682742487734158158362296923721973464488076587594024811616200044608322866604164502313511901635832280891693647809339047757445035530759787711685559603348624280658089710209282192438429514548978038035594022060565821066095734886305753942220099078763330496679241692707011501561328174430628642090283200513189410345334596099263558454033034659314822193899321174585482868719926818599453000084391887863850371843514244711463550153688904639291891260851242713459652155712412951244427660257842488706410347172067283689639047903907449692775796718884529679102851502631749381344115655987590282485009771994831242395279342914828195092862394894269606048420438158525359612196676247048582242560330339317189756352910259875911924749176418989691887327393743804400854926057783928960025306188961793489409085467581338339295474004807306627831328980122729306593743577820264956277643117127267703746071767899171589801457412417251591871984108015086636991719123219064824510719713224244609673494806067098823053198832303768556648030843475049037825542756372912835435577523317956344252957358229473143841317875709421092304675358574441705876516290489642930186410450791997582006326013335006301492985262792826408966255422241705820841022354878165161413230995070131635036172466867316843366514549842881339271016282607502188182227532155215755241472276726777991783109180943013232994640353191774341161318845420884387286313074298008273247272513121152122517889076451464457115756463151456357206955321076419805517527247928882055366256998944842314410755698874875424498197753786202362241803309577699922256676185493596962074690172771734807036042835552461801080675718802720446996773406155299377031610928099701583131833954362225345142881879239295910958257975052743487193379779848539398421370441404238106108465838573359284897632610332178719537117783195505997606774988984308772630181576467462113649677920631558250152261043890135434778467325027537441650969530631745394673664471181589684889431523956221581783691116041316268825650658333374516616344624748311147437674218413574139887026081257701351477739995999582121911835547984726098057332391447776482703791684147431433247578968241148212857974227506235331273837063521251734734309857529144385721740073974816845441879958967652943295013042137220859123900104364873649608497089982896896536455811820210185853223919382391537641964583368060377748244831418818043810846679101650790576475729167140541418231592125822373321188182912418792675151973869319962634517185877927605405586012585570971311097708744717263019874510919183204049386917114187075879517520891561914935694404928263182553028531713142546685486321637892378603659941808610953339905570092759111261543156812692809242708235226918713894818858665663248885676837135717411978983635987649459439804463453310188004219737247482216806297067498572952075468575370053900531547029900931040593033845181121703669221434772913084961229217113872409536102247771279289155158204910308643704528162077266907187841065000925794944317126238947661265308973355415560351698304446236586126487146520463778999222803044159740239920028743763761019921311316217943837883501177115755913462929503696653497227174337574962992420706260607802698566867372696820107533420720067733895259595617367623831715734522614972168286005904753422665174900091610632468670352685277244583332216094388055457688062581492303115642045156031404723985309222320380082415586599278735774108161096042407949332998064193168079104003687777138168748117649249646889784517458337285460265820882484855046864313868503813328765180447525071638971774858989033114631165763492828310293091986429731762193086135646605246452396739739358234805528995631970650777625338356398868911154914132266911947428168005915830635400575546478474677681503654795430696449402975372070747384698873226814568371219880187069542014652976223181324463008125435431285501303181731075557937788717806543355628394807910889908393119531186993336990298525363205198897358382594577967936348239034018927535262927503820091100257308560319356640528123348346926631997316552597773365136903404783920756106051995613609817154914563148338244678947506890557193856167893854135267082265830825919305039867285735027035945943629538784941961963610525434013939233004278061382779397740667373712881658798037881752577933976508830268900492364919892643829521481955117317043561462470291241271307335261856985771812473183218247882076772125143316076240533670152818598143679829173551717028687501537637468774607796495837238144862255418397931971368818195679810417273571553583421784088525168291300285864021156516159078989755143882601899941157446429047575555394759173554947738702552730570898900949968983160458726268666985010054301424770014914741484917451886686919732066329311902216740092120151713295092005406399473625117861533193429292753714308762819637877768874651652399231364108273525708140298982170413409857525850700642483271849020828729460200883152113189403065824073546287633028143820656393464173464644198017717287884921902673432051704260647559741137555819261625170948969176941296276785891425473693270010268538839625010488136526662276299345832963265852904665569340484134154630661880005333616572973134406363295795485977816075679365702029273691860828445619901519583474821207525307281735032608319755960424627529473905829937820950298067177262116598777363680906241765567979753816224221015822773004538312271217492222957873617737255679106995038178874508660951767132981565852789497704276775792529632608362461162742999550895176922886322385849917632693390072618506049881071016194577111469948538931612456523916198241358878530286449394979664819059822088758730212839680893160747246325372514050921326143887804614868438397334819619495862810502735773192439226499595850709423065778950609047523038096394557759146284472589334638536232198288886900312526038160468724593688841914941064072104802831623278950520405580535494235253984263636590039710412785432692384734362687923014999876975483717502412226408104341551468049474596954919838123916851920174569877448416496231981170368593510637365103723691922144171007911748734262117087735203580359420572713324197938964706418590891849296654668094793390399469916396019389633109136269459426996663384334908817006911289407293309806918958034785153783857668075957071956455846985309996241628484783454729344470690962372605198458543513537358077026263255125845514264140986729002866064604049554596778748714760299305415813659183450283575634491115360623983754013361433728903798994067630168108429451994639249612741640787084365140515370377333128400408413606875457080976106781930956739024161453635866822029147179994745312118143250052650962346460599394843648465928789330503037920819595496112493236860130819568561791834378211055986416110024047331811145146843172479520946099618594596876241059981369900741217894458861175488566539107598211084559399814934202792906809474565246348432460935181126045871341317293182578368092987222563135909368603918200147267331818047008271251078040172676988569253151371580942892563569479565719125018673008264992727614582804816615601270105548896528636989212391532779738944034318425900993324352352935316181924305328987605245252789554510750110166180284927147227518693216225520789238169464143635363219297521319937818592001920095481708433081442460948413303464143004087701961626363367405829618235122279283904658660512675134697382548295321398344524298313396062025104561307856069037896273959873212814197049783636953486375278001590970391258468113801885680115498840974940875049002229686299262501456067711002754461279976090496491868565746598879654293138719182569884252591386751731826849706873591305395568762508186365799704937363677942965377138641628735421971493367181275528285877836472127056625474951240159032594923877681443615005423549913433447076189022231977461536425069337602331458345454663592570907678118889447467897291925953602477047790382159532358719231419594466680722473825811989307650243190987487515544891224551401578934330952571590053004028514486328464530612260274418678155148513260416586038515974050372932639671938221458711156370034571539589100403882821689638571863138921347558237892947738987725353725955984739799907738702878048014568488393018069139810861721681571384027862984360755200269528213093632002595242678715002684041984000955932309957873721442522592128153101099170649271220213802920859666160068098110604735356595684823816053227971200181027589092575702857987333088717749828985134771750363345486790642037044351409978645859228133941432940506358253566197280322939799589333043310079018330797168158738992343000358217358787341658249050068321789472851950295647683958067695904622583659287839097792705437318649775678942388293538116022810450367580391308747270851144921073001854266102039579060942633661445573340664315405047536734380983326219409216697900623547829729165576735086588422735927020599811502144483184860647691563517999150071096019398408630928433344457851970122743150478105085087339910618888308845167447605169523361150372518217331747081505521347534329133790508355061049693148402295790920169238059280532801977564539960002028901677024604550481841982861737162067039916669599490441662989624801208736362924717115477475831067690531346405054249568723532516068237923657940313530018504325563677653549826482772731518881711460124486714225042532828623455508764347982940855727861724764439307707503963607373433490863277214224717057130606916426640273995824828364638910284824988350836914809704756110524961725529191570914551686034649535513349853668129694729267823245688657285116081166048386148525191156089365247828135603971088189929928569977058579142853962519934363338524676950337880841917519429974863453542686540369235047523740109367539059053774431319539091046612418531572913747355259584265792751779141977251621921415553374185673506488791692094929821612794203062062532743501259380852134481684875772568241554245237215793439722554273466778397165549372093016238950144219506519073006736797899827743081716818822459548087436381442075861188880680096635110690162338943709262092767456243979120229204249190734775061310598899545134069600793431751274613039977364409277684131998609968173269891644358212801678074708346907479489004909444531670365081591275511881184479242316679511175396784999633473722078720959982764593745574019961294549757614682470410856161272112406174831193975563350183810184875989804368201441913196326295737445433832046140705595215524076280822040976509133427388647629607027841150150362937115187559020956013236433694030923752465207386553405984273913350962890411462262347410362167074460312836346725436401077313848456026477370496821259419041430684572057195268250682072027244045529389803926032353682847085844321661420351989598632468447417808124551514321456364356654570920824242261270510065858801148598459837882149067429909772006364926739693579101077224617754500290149839348414837760611887070102488474386912423346277901061303898907810332691447223015928659473963223773320115508165173176143210942704768681245811167064781143780789906609783081341153778634314317231636272176017803769937731965481478208084407836921446383648346094550847999010093456548049778782246754882944455762565986529335925815630206802294943716155484444852732790592328454255770426267618494366210889435382162839200523399040614025299023216011605633932753806920054476087929684453975242786571623374498226810131894016198604080858992824687157308511491327498823689503481069483240752619420243738133258776508505200600717983255448553311671976476161470810279712168457742446548436141733346654295380687440530352843612952761151411779248067663636412989796011516363085980719531339461507132040382576740329090875976946590490410736540330884074185382256667534144159098411687821517497803425310765640099950398214032222009561784174504002823295376354851687274932034296544367251580814193722302452347078233132621671199115164263106246769934680884613493000832290605780230381209966721644650734340576965417605081166475389566531312412651310104883217360055587427496922849752536864644737206968450462351775514156475504192257958189003499060661582136183770586609174563848177856164465730698523993302573830941317848256969748822311232440278747930584965652895165913644680384477851803772798025454135579288149740398104209826184039408219897866261033642036975241214851291893218138656912783833529621899003280677695019612491129765379175372023035301752147822035754627242111929393351149622637965508744804485707160722409257713452669392765298632471258451282522568399739962206131590448696486461188005103371481255431717534100198311973548330729896668898673439268845869820970877809270826114679692518716537275218732952227465349624585322905477410203014296919238946530561373902622571138699295186319195362362674692315193599414081309109350421820721489576043112158116561853976162448531460232795858742132162568047437283152292377481874361746812037900238509865818322733204341927994282684705583215922453820318140073796073727338268472618283447352174513350971189686177502512008172455585361784953177979023084610075950298139978528943643955461730167443489892633925767641529183929839651264781839333315885428380346297563242025261575804730550950219840856805418308570791860038210187503176081027451540939535608899996366944473252247405671974789300045733128577233284982978914941259118321407464757893875083454360885546375977004900970736770203073510493093902876530774683801296492786190027884333649064640905693656655522628326351405394844632012404647072409447580138507848830933615639612612235070644184290767111328313449439187693562232847592652313912294971853755171560075042335510127705173421669541638409724726378533411440376162790497205119882213727903783071619683028700805651714918451280856651795124079333735106992528227540718861316853112829380661247395272569299134645055648492806612213711648040748178049790607630058840815810414626548415117536964855214397343681023145257355057127573553578872331168347984553461157503213437150293847047846843414443177573121190115550454039772134297072758109094378955754532680447559430372736794232122296431190862071774466676038830759345971740520629820334167712156056873876112500117414916456020062852829836653222573666605624623783366304248262570765545780575830480147947072640898103533278170583070869271782680413815580707633604472631902318578409252261684616978421896793611139464224409053587182312490293484258136181264673077765401765072120172264754468396381537100918357824139390099171734542166696232334580242614019563990279735734757791588689985650646152383859058870057727033511325052714658363649014222934547268906089141006632068349272137186062584138186647091526059546131630926728298390767384923479706632940980816805093747223428747252158208408005517627213382127873236152359791657739545697248123740527715606494328323068103128504294560186240601790362866307454262495824627635188010341076449426345941352699012542508977857062773996132643378117194704147988211650392765319463813778071855523245651161891220361228036283508516052627175030354362855136344448824852683360825194302154172411249372946190491001282487994545572778541440734102284937671283614738409405927290478718778213105932130701507846335602452303789257892416615463381909551731132104291246260646159306131699770481899628414001341441334628403264949080871252854687874388923993821086164608407069655872837721890893973940097903968574977485508627372163236052490999174293070267031448311413320787179653318690903711692606194362089930791267376363668656089026681970946201491282551457280257436741683643517115080094845202092085391347567743674276224541814462402108084883376285669303538629480823427615700216135648879949635367230296553996253899671532355022170300493180512339599310344859107614105179191375917437954512473251159880707383432735560440976587743241687540967793289804700254978185367359594442269313078537871529964146292722244976114857359387099058298289382004653901738251881165167132403349696675142097657590328264028870529006859326299674477946488433130713840429001217074043355578589322909311329305836504819284363865367870311931781215014043885605783284445067899237756048360824896357037792089073079596968992804996530356660117275310744234598094778336950825748418267771659486613906713043072337307279694410042488740537312287978970765339061506437087294918881353073886540764575340407161452985417068960979559040916400609375023599250152749248926614878023965272178624702285996179155101012097911671324670757529058722434337269653991396023647314272454932846865580615154033453632194818244051273521848128070264230562367500374669859822227012817092105263148248310111113553040575663118381693523280581124016662246594450370035662465682413347024274938234342807478911754592065034361589116269710244507927905617846554031389681281399324075982298881495538954472508379876156824235182673713022794472053680975589873102002534633003100194853193520529207144989335182693138273215742751783144462606535350577396920212282267896319828693403630149613956575579600510152327021746377496967356534589357635319770767575075208929412302554876467630263020058320126806530023672031828603629391394392961895677366788797441533083406531385118675245369279263877633779278211913152759611859627699070097619132608703413516786400987515456860647488853214053130030382390160760998807773245879255414584039249777382881787218050645616901504824636878437543008158640022711841583642539876606331733427627939102046247957456238975287164953438542851113599051332097127973745692421962561952047186127559009221027868124611976481313952011394187538763571127050069002049282049752951761565439167408323192153039874378119055012897729481581955901062833824184627419967844920712151314054418983501489815856919051458814066141267899788046670547560943941267889669202705949202521373429800555109755113911708938007146937661139820212066162974734135471958841156654560285751108170389705382005058771919918216537607776613694122665894411764085194000783188867210169728274073841304642480055766616238359226631260979541074398298597625935507831207812411398666896290862399292720893607891796181133262850423525441523005123157258722149928498566043918326661653268204523748127319642286166676092461413536344865873249999901183859250003346664954350750425095708910409033003627576628628251369608730020191577653094794563833120086453384253897952039901427921241426014962710983853827195058801960096438692127922575674478318557828364744385529229758308163160913716030440884516061009991043769661524207946941077860936657390354395646390078861426119625954222877314765361027411121816648794010230286250401666361777837814635132379555726618552317066583453339043247201271807282777727290511162149378053811132990418829690126409922082727404035903635024757902552239385142730594343726624794037136264244896958906503550970914013538061987429398753415141123827734926181173520032639131663914104806548316530583677634646038275480965272452504677299258043476706958826536242476257751348655381689864190558196189609565018766631278054385969479078873324375479640849920401189622996888171809485736642017715304831015023019753315213067175075582688509013222693168472421149650814712541822888074811737771610734329662082561664891690496206846132345897913393544812341939204914970655299875283776179107274586916723221808360470580519434508440222468818381520551379520219443915436739295025719213885944371935019237364294725252092584636734670243106409608347100466250807133364341776067848032687345949131128462345239691609707276511969992759894866692528325838282001313304231297606329788236607143174689914642428421887046678437761337287548292024944533075538629409042906197868270674585162944248417370320854656227737850234471643219036164722722627207746911561167224778084785678625211890740200514339381618797772479248799941526940569540828714928177487423224163270618818153811437372778398417905431676338754288469707456358786501669035441934691917475267571355738898853990867460504592157282405045723819077831685459214686580082231543293736364229139815861286362436232787292695815306561828914913563985954230146495135432194013844322839816016379117348052070177739299372113975913424807695066417500136193172182034173429728997048124494553348766394718110485226950556360008918976145105291866576461622210153677154355206880565857236197301380220447228576832984183891987479775931643293701020802091774695441345978640741779418518271856568815346329009143114638066489095203703140260638509169168004984379162992426428671151378537620938693271469805834646871230927116860949947235210894581663904020000370975661765710666152596296598592199060119500305522551921741184867271054557129767386165905034720468736772557619524320200040399711002545206969051389500283086840818237565547806304827265362235950540656051365377909967749463906924678026055497112565766270637050379400266365990852606252515153623638123061447008904656226373820602500114364371759708469554035070663503444221952691394720748939018140332174492011805782127617783409843837239088623845433709691104101315869087591517789835504265475605826823263534884300198154597226449985012372205935889089461673185769977272817099967203133515662320437015369350933202793562953184721302479164113904148973456890172539123358225273371864035282717387701986198653132079311665461407540053522513255203065347624030340867183354156218693446528256110026433031075380749546993658753311877927479302987491534994474240945673221031037899688800161851731869775113456131223241274292616340087408872814775750001331453804301624176030214178460516059640196809121196930605441457635114668583673830065564998370617245125591278250366178740598016848285954632373208239291822406281612663836100645227930468964005461358440350122983722916701123938683771833137537669973068094548445274945127427694192736236094156696118239426908917402854063780406250091396798677486301673464190765377556754901298498120550042029767379688719178180533869805746583372897358371149636705902978510709744396324399887186487934229370607478021569737836594133960350879831183910872668549795110300097594774901486195090033160911063589543445475781233045590675903821210836663053722142766670551490926349501889126745509116427834117246569740541036228236063149918452083935990378224815591785531018489409504279979053584043708805013017293383813783669757962366475165295394321227941615141080352937388267542427030338487425111778253259538048455404448043063517902862435069415597284002321337424779477788030641498526773051803944027889625650870002073956131198869981273402775062793289702263232196256923210998111296733593099181478652929972050225228078143600097662351463121150366622900625807330257876029826360115178774667125375062365431790374241372053194064366617972261789329860386759482796858825358534834309788759663100228932323443831075227386194618388815150771959584221346760029092433027790164308256481843417499828212369495126399868430673607435876037972954988310016160766988407752328255656739386749687767557450296724579618292264697126526576885775631213087271861054551382861119452417729687564311720683103061960716894012245465073434005799566313874937524720512907497978174754005561160798483249481805750684479125878126608915909497036910445281806357299314618300149852848642928093136865637780763618359746374529107724659047472030722112369954736580310103047318475687081826020192223283524255734763458577502351819344997575873056734007258089096576622570842122888888013311798639736775649621477802997126734333746568271691718326888900144801781104728415598362766637962045696572229173554023148793278325130308947726312994240865626430573150477565491581840338353642025994232397479477743169206239308557512574342610692841813224086344081753883741872396113263841860404980401867099921331351245007434380351680160617654633884610035484746197217380760149034524372119745266953136035696877612496963252529074023700448968938021888654699254732992708532979929226171437701129595424565742348844912643022035436898308943080552501563692501691435354801546536845340472893192593415179268574101519187287312509376088647397137337819437001705728076528161176065591323795928224886919706909432617944077799395327920530612827789924878240349078543808793354787051991978940559212876292184192332402928164186305969227261084586061634069474261978065864409496105341499702731075929506458108923891887396544810386152690595662516651095020462461645158387782726101831213684830099248940380235970987861711300088938356054322103586229774844472464053763777393512274222701959516859876552924219978055375327815953050195900309589564268860528479728919371570533799927575995371102152163882027155737416127347451375907412109189925129641976339360822102509915424640003176837361280415892564135863734083947777602295589536143096222178828964013825417778621569176083207120630863294469128918490073911598164273520092779605084740744149737454727130807061360165099045269338450077573334477741121019386974727432532987274498027363062748331854960112540823293300317785521508699368114781485240395031745013616192859381178083804603611803201174128046890245122664521948472389065242293515290173403266082893794286579246403752849743287426381273867999031405970830016607285137443979436907010952478154786501407549800680693268240039547736514887859123514486848301959839240795133194998740333258300959434002449406559073897156910587763334985816317829642412252536941111858634195605975782985973302236563382405576997704230011071195501977930657776180863597915319855381289031187019784840082940373226100510366629942004977619350432986322842093755192556013741317616199277913873837336131679519655934229568798437063237942094027213648298990787566347265366095826921155511745014896893782267887023320310209280961905121718169743812984959713969675522387336732354323188958911603631896214982914144138206562860810579436398111024738287460190475670913330145833671419772373528827433643301011512364438826882482088016736864276935014955804367032064460158606607669173816337803854666133460952172330411844548778329685932733510154885468484188466808630094489149341361573820248410881812920756408661587294414838592443203982468491655186924399465874996763555848359570710277226780565858180510859533912049603748020753114911512606664958542484563124638185774562281199071818184818501070127084128076607339900626674495023660029983177620626910209388042962937024887489184208262746251994454574715575359295257759598102950274324580897619479577784372155400112762838643736208226964864659972290353540871472553411334373698802527678647568871897991022172576184603436126403261302426230120909822946858561911440218130632531786250811968546335708604148337610545091837033810439997350843712668208843224699811204020798936306377229525191517927970642072711402697599317774421848723028197961836026376432184298546912198803925626456199622402745839058549413707788717004613651698214683502829934583535524412103615352924142966985969354649062000125429798153892973672247664367569234607842475672868875648514154326530663254061880954909911262939150322036093327791698809288901115591476487757204375682458494511019858197385187334304258388315611623726205404736476009309891613148605012567019252569467713551720436902172399284678537363387033169528604662373183123815475742141939172498997667914900071482351355833271405112503884188146968739972535441005438170649009778020816965764584722942984725959844459444425925236036893742854460472404825757034503810577072270790823393918410083135244289246142212570629768635826213072394077839916911604813717812945740443561733105732940399377622536713703668362738358856428181353953726056130943692450220826484691482024567254644905357548062709676498457136040872140911249293755980924625623628249459311797118898148459686361813946210263180005773315395449262380750942291889011512057257412960896512469622282404273479161032424148045688307284067100488868828306951428838673684153595410993512605969364045256265241125953919162473823814125339888889732548136068578592645937171971756174265665613323648558643467609878155127008684116600059370363872514497454082214229893438004010190903546617140922224054988373071138622943184584643062982251142382583071036279846980120974114897240787871261675524151375012644630209731330182388554348287337027551899974363352756249676832494882789313014207923981318271942377485917604187721102751485823740104434953416071038679847599156255916466222507483520920703199658907151078888056337445935642301247237621461681245675696632844896421820951644551096172456747705946004423729631360296600852890267002735459538311604564362125398476857122451229982688544679434926977848234891474355169573950218281410620398211613363547515181116718216776959273622486107967066020583214261911338589075011184135893377730311859888279041181434220017245347625445075850451582757040116147373379514055465825285975477649029714738794838330531922228808140391715224079435208484998598459542133903663089568449912819417408514082418103315153158724660004480603677358720884707637349260946194306413631496423926669638282007997349034179658776607657948299152447474582854724187338109104333414887361807747883704681770208670330713100377596268688457487876095340185915232145402076115070362753119995514852971388313548521085336546016017334688604131662420124019710461099830341571086608055128056261392395787060904998878452132071975596112623202707182921976632242546362390693730918474862302247299221074297490677195138540996618844248183724783516364618207915047496269495768408997640327435360485280603183504066545343388367648394341330608800081913758643800111944753532418923425464840363525437273967515318780184437292506993853764132685290606427727659743437306004103074463314043649992140421672547270487940300559587161807625505438508966102267832566907761174961921975772661550005159362299393014360244552272935245653180685310147352854263697083282353288260007716698127612380214582542659519613935852749424741012276989567563808579838118427123676819914049327385345465900402299664203433592064328981950565397325461868067020088910855084114753082274185910319054756408094837543107817105829840594455336377156191148783462153909743242192234384289802891414355411020116068898041590482708237400952102035978696774627757721492416125027260345918080793225856367918651389131664627778113853457954969964458964845144954034568894611173681088993121398493116370259635463253159824593312090441592167864148026584151588619804760799969205471773109683643935610480003925466719764371317059451136309669640604879291731476196177851355322853260767647506903375844811786355319167475681795129756078426441010703641398970143218955635738232896300794776214378310926210830431816559410209560478367680910713853163827735386856400037569732898711949518633491339305011941356417600635188629487349932340912092400855993416467900659950360614526340671536408018999633027029644278076790627224873817651836073147076647690042891510566427681371511921291176335531320605349223008719799511965958929060463969754988778070821253424219918658182536437886936387649949228543431047455259014061605408508526402083260339014893989121244639194775349023851540977266898840888197982728412154265958162483911686851118064145512803217500963457168139777266603984379727960696225550418918796391474076216073078666954803456686414056364463518818875854159691649873438662755257242692265281333729710949873115904472170112022463190827961272420588803018144203856336573940586328885216412913940504797612054521826876123570162957770958134129978747619581648149825075120542929631010663343757087471985422016712899559200931047126506638965151473506903823561161141904350975861072668498500048076533001320181299711816449753794350346077323532497449429654281003647955620417802609136401488121554056655744004597404447402116942118326451077860391466822017881614470610254740721523323071068279583017798268914434436847249899623950398152773078943631529054100538210429204275698462257060647665415179398796468999925007124166590877249510511342617902258959913561693425723199805267970974769749330567925062091542432525877967581055558117836256493446153954123038364411269689297298144688046798753290228015308468155423754998298556534670384543896455511738365429246347619448814768544012906622632296738711851283083178673770458487634852105023582111533377019891103097940473325065798912160262356408010839621286235456768388668050569959113533427014232638572599052734571270152191053661631583761818578131118084048107724361615616212225693671724221902727032083530109961648714410820767142151899139887278414975652062581663105955586524340631332060950531860647371109617014331928148401144044611649901767641614400792504492236814816815224562126566200524398180692180896026856046656331731656739407285676148618694424470671216303719831250661448391397948816224480837343071737602625034201980811464365336883674216444964278468126028806498943622923820998843486837833674470091809874056154771279137417742760384626234647068640138698925663707381164662574456124629925540624421214185960427804967756000598480398113345084330039542954630174166800916365596554277115024833786650954681544295264318120438185579695540701337002319977183372774256339749583875261395593581420029892864785583946924580350656936738775680159851701135094929173003231951413756218903355995341813152338925425073152028066988776499570486409426751624097121070235333695015987466956043281256104140020589329079854880862681266069290146925368564767498542139986074933649104841902661948114833458643806357907430032855504052914302842860246817950113849505718920942041348427334499993248787466517102405089127437123423946911446153115796427958955848352007182143598264778996470184990078780586219145298932075343597011733317657920063720562288945982837140320872746971721730643763560571165277473826678791661457220773297470259873621452989683142745043043415137361059371171113671762401846387936199125012462346535604084863270339090169058731582653677020210431195914478645858562154862776495098661572768491342701651719140972615754317052758006729537044033137417035798778001443469259242136716504517802920943182829096534710054247243138583641816404673667447723251643745314806711048413673909752331397926527725531003639570634411165778708306037489565149936658499354234007031239533636106596322239248848242166724190181495682875031559676652651600544369059552335878064461786312686746444037888205120482345245879798912521481221529954335222613839153378127963643162018409494792854054885762909067803069212349888822326360246707451758411614005693099677769391404758093449301884989863493891127408553956175156756071203616286719664394899041682446331723563239187235338751079597682154005033472783720957120824900940101965136512666134122651781012324008089718238542758140252314472659212703461511365706624508725301557120029078115581532734589507016171683507119157194364462820675049716207962897718774226967029353963349628273206859083326761996404660384392564649377627243277185628284736586203468768376814789925204880963894494399706380293083871564445122105923678584070187879257811961254215204871357597040594417475647102941112491941809098524830354184742085813533148113969470808506922046394157277897789979544220737016417631162008298251951464152606920114255156179999757968407049755715940339942745845031123006604306298091902674027086708282113729845901517677390553441223909061981131057665359105435494512059678165004321693614713508778471188482786705072183068938415961752088793960504765961903412388074358780891707930233715396217959749236833671237786260619276906383629005189115276599626786550228324339430371830552216603364470820200850950788431956578358775094649089226092553425994815229175427655974296442714403287451276050363641663388394666696386823977679457508254215965987514574025971826271644546666025562787474529919836019481282426401371629547478191876813208651696045572131202976954985646409134853118729394401251945310245930747432046527368698161490830818497707908505914001052484438610595702933859837494670026774703610215391258978052140091273687017179282673585440262082171405400262852980616664863866661704056905627979119260589449961505625870695767318649102059868563775703085239291201483442221492931270210626474214787159959954883040769961497387468296895794281903899324825159290661444312406591440695950249206465619225502153959896814855150362391925982424422275119925935697469179029800318253514377650817995606936747935799682154800454166097180297238110926745070388524206043910649649162198516011709690372638769720762929751562009775312465803443282135704327225604680330925565289599486846977982017961458896003577905137526888239018875156469314362870389596706137900906054719976968667900813939440137956646207103378086040984667862093456573772693065241057243493331766348366043462485137369794884523201745310776795955867831959042475764967009023750184604576182642129995650183752165738926107951353855040762671968233460777014003972843215382491269644376453179689938242421159724042785110238686462943851449942160702732422795196091915236351954017912356846584015104192133535392190006037017377255576787114945468199250160282092458378151704139187963204785183579548127712428206420394921078289844521224273639253217741889068469562238305113015805520338789714465918474498255965627396311455707032667336169051674167256358536655436440652357956226743578243890945250926496260922897883084015996515585652192775313182810832300726343145453552599197098406254477550697795846314337822012178434016742762984731402891354715889446905547292703649120475887500104177957549204178788749007420245599938261474275766121651397473187554954715968105664598855286896793794952005477165208116048715248284111213116198051692295212444064051488145224047640265050730937469747291742938018973125218110189854384473483018133995265680876784677695692500344564969674170360186839816889165906776680788206471576236829467872930158550214771008289376937271273876462275540777458255113214633255764710234574158708960698102100214226667784050512996971419030356975307833666720785564900442935420284249120198669872442937956760540334712005921339165072223214315473835171393121548795252634855870152367799268431226579788181356804735348944304111615176845993918670824659078497385549845639370807603811918314784723772109558485706852119529696558996170481426080297811003067966563757626861812937318031473522208871577874622605644309316662811848918095405807275376787052956999160736016056073336384298021854278629150358973321652028415295733113883406187274012814403042622395705874596110367679706751427755049272769159587029917238010227562858172166606901462335095651736126287520948760721828111056603436281027776770347711006748706202874485912171381007467626044617651562602820060763695875189307110543601056419244621458522423451647528823088142844984814907676267256663204656815533995855319464105089469852954728839438322794280410679852132737159279739953028293139420285447553156840777536370585847603381159889825758602115430228494368574786014689975372942122481038967037035854174932908450596084282640532650540165279573193560320787932807639102809204019393566494120726591007754996318813077182025969051683841787053784958700645436414564794100585769451519480021731105249291711926072226548482802924153493861728636714325106899742225728196622153112509244669787058816891427718087816183751780156768764331963507786175142625733941147313250438998059409105983327909713504124206525406889948944255563646517536686535203953502507715563825002141746122559142541876502509141560092254110619414242439668512744698570463144606265640490637937517649202408105001833530504496650182819041312642227666799179816929859569516652203316106620422458590165511274658435755217602293348383777331546009479337589209903904852947969896711406497338407556743493946369312378865762178535791592430732061297546150103043156685961815322376674098679752783208977192637832634117726083087688257375122802192229109035905822292068338280868686284649804148941558450012983600069112519645123107526645979547877226092233686739536566058840062828372102807519416450382932094822563955907109786593464848634911279362466919144497553298794243253763018671067218584011505535171839507892516757242969530277667589875803220678863940078845248662940708983390734203155162476761403872580848502225512422099734441287828226185187940088486097927595529427490156052312038236676009166436114439183725964450002530578170410662241726352697485137962318917722454366451043124081477524111143568435094304016490765194013865797878511454889010867510506524199108024965792152397478582206942181255645353556866563116572349159036121129790338047779269642985243349480664965441733668321483310091293035304882576585407316316770470570424620531733428496403664483800104070551832832639219479344237161724086029713181172931481086239841925257877187857313420022265887652407569971884128508594703064244716591659307323223672568603435491601381981532531770445434330665718383747186830722713628711920670348154113879979247966030094767609498736785663293678384832202527373478111699932535825789050818844023595247209044087861902295727928976534604132322695866180565073689648927667586682014059185822528897802947630896428460327681451706534942075888880995414386977300288459272030310075211993572140082631882469775033253391414327606421257336136014389610056438889316604967575575653759879334512889978398926952619090258382212837834741292615670144245084370970251016651999804964954101496965251685597892424870257423365082305144019680600059604486259115512598340767296931345467189665015054446495919889034525758959077144104659788022576206777081760516735204766311293819295804237729322319450064597557990374573211118056348270771545695155708433150238525445099618112933826795718520090882605175291536339001028026963141158148902039912545230562617952623480419405723649120815652613080724820811291179442298557380488040701833888830267435304720359860766662347527571503241320935872514583707454577264150140398145531069063204755206949947466436659315143462305034331016154989803913495630458771370230419575203202709236175234376352242670582545870420916520961029816990751312778224032757928478625871229513983912146997437035573665704541113710747764722033427677333483293190051863295453555023308184964890734596276187204630166749888187771892353054639850593843886017230415482982958447780949419013477843183514661957406871501830754220424949189085521791678244246271896740824247490886395608520674780282948987832515746324863612981724402696875004276719336017239283370791257348276313113817578523424426065777877057469686125177181365709801510752721537062427112761333950092558563756660799563495084038700325621380646534395514776385558551705874856669173992814377738859806900592529089062564354168083403206230765620277168818956336442730582787068621064641061373096116200072616422485240889997441427597797586272608249361068650020666789869177627385017193825694577240372457050352079215799429754334592746057821790114797087385460057543429314622685380272192641401601613443996914887991721373965071681866648863376619557492971148979047014966440787156771959993415778666266849936982354201673973361168823668898228963731869999958345612368230899445347151113894810840651259997497316544421535705601236130298530750100397120927033881499925540996536462018499953868102741988812785497284116571260326488350137795095867874662239813517739172302642649122449531778396521695657014755396964768808049301645145189680767179985565360830348153447890101782914347421789137485141582834444865389469777329902322266656954942076053187737841963779685487664871332833881209526653683085146327938907483260763790859495155832270458954280518001233649211236184968943093720049975060499786764996872986482081938290364056947778678510990757663785266440530162353207130004632542622931050188048823311366602491221594903109693497782073639267036659880282071347838914164953878466631288749108698874556175555639821322395992230478464145843974492895137342158483754566000163595212335677006186340461182155657105981827139992769103306979016646084930004625082346005081232864059717370260701507953416127222096371309862295596782845638097186102847241143219550389445332131901876833560686663434697126023120104191748448779934659304046890633389485734277833120925694527888981182242716366213284842375992785005737509701637452686129228411407576512301055838985909520584034939733520309936109785144342359961985055491482101057565037510605024785912863470678273775115492141956525253628849574072270838348834257239147246770364940818789948869732687556712553974297687481357219798585715917573779184847713767548395633994121313958353392811204141518885606045544793654477514564110820005316469458541728025761299451876598031410037449603988995303449861841976728341618100839200821887936728749064472308299561199123126234325975065972811918298471686234977367218024947056524793944185713639750298011030539353705944954672355766367803474044328014956779393784637474485436342663891478495500273485166916818020190190436337168397105877088728125071604737684194147562145766932461685852619569755949289427748216334548662761490860773121413591529718402592360232149237495959113667616312301174205914365451862914883539155974871373053222136657352227482115135549854918387086766170154437789118030916547550954236700329222478213850414554964370429902478870457679582807520896572111558108882297002286057250232248973405180728744266929533256940178349808950275567711040711661001434476554804096383301872611301323378816345679832464022773876645338629979237443585092151905835818139968842704983336072465726326680505859929723780986423654386881061248960927454905425193407451903004697429228984688749563031866443000452297153993986562668883739281165621322805579737948682993138572848511434283267754139714917691802159783556144837735915010254741836269205325725453976266435866359871387105203328732076065340906636606181612441338743764216761337692221939824325706025760216546303045621316112491831642418402582435217053054317553775877034045715514671683282205085803240410779123459250252671843849794818572810118493754187345895724135847006035770119104205339233551505217755655072287147513415436937424523071804311576356770403990877566606097154855856730317903300593329118026915529517751198902789860591716807757377131545741182116755990524567869869320660194730648209561361339786520385754754531536764144805780815271664561819378004115103881915112272728458266607394066732616441154297441947934638000289482605187255952705067607985721698385427392959856284695050507685935649217466975645319111521328567250494809670903084224834384036963696776383546742534210778198083297700727894318064244339844086802957456184583175808731643190247289124835469629870804641930514736897993827768483571850253713576031599345058655851792242995854060226146489101877674627614049916065190079552481108461389402762864277590286414218810943079624490554611592733687034079795049998316294284775258208138033588709700983841619662462726493251394903030603306870286135670678584561316656522536736844765495525867021370527793704566016573221527990842215091687335956281056468955085757320256702795331105815942775280805229951232159518927306190001712050541700105837153737297264772513518229419041533663363308159545688592293950429929339788211386178775763670773672211296664586627245479899975547731061315329160050680281934416885737374017404198050035363174799940795531327877004410113647396269551180774757594983333463772803462474592289803864130292502950526781237611651762679682400631999145453235798780693128457127469855447420024103219435943540856529374537402642017196875656870469577495849860523776044928510339847061044961660377680989440635137971748454158169966647261374671820989831460635379649657443750783795623734446473847160556316912951758267930313930897196662885194087560949266165316926888433148172416834080039245395403623682010747649251614835880720860267385021314869279304197333317419135120070831267285133772362452862030158941131078464216887405688398137762632067157283612904366257788461152612806921128972276778309607931641307997036445350064381333732297615751894923871890576094962519639104537698151617687367349521609449082825187369981100506985717144638854711274893054298444866022353132214044357864874135469079710400089304640737533086742574812525846144306794187024301296189649870720535360668042665280958319938398640619464570404650128824751816463783856235589548970157480067657076434323446741451475971725181044931723323676396727422044146680251695292819235326912446850339823811817663571142960055375066480294830500235377831560755582435510678123309724715297629994164804014863436377044976568561071277002336216562209833051548095586935952778247536086494587740613488201510038739683531394910965404682788191264179346171568198183342943125104126608361476972803491498335082010434086487323265970768268887111100103474614316808929252353190883772641305226199704244859379248365235180006481581362351569275043778160222406152848495300889572686560226409376624570795562355424984517298579826498586556292153184844770053753891242952718573665666278277146209644016328472259490364692592325315859939133709601304933193123050187667714783038344977543792246362446555745101225331561049013753455180981467592224422641556789334497512339399257175785434397888304055559271947681658478732352199523163294125169807522071924524789406952127303287538945362348183935191283458478058662336283846867475769180048555368757169564359745046474360345480657877187117676438158079161001612760631010263458319741708474281524749172684132502174494439832373124180136790732607192370730491395241584346743481393775573060350170392474878506619469081194093761555662838055565152062078633759330064439055435977547142596166605215925824539236672656135336686692556417495683275279123191883258069027289551985379743238002434634393263613720520093599209154036297895256347864954624399829919379472887640089674436792462177590906654716652458160483617810996407786851464523850834102891530829221738869089635200581877108413596163351968610211215534574087148780001347454224251588606657040841375725291445760302578769194479761606269884058764503368745066217206992409969802318893777938584454058974017103406101180611505082602711016391147479816706241602506333572185333199899071860531883265538513190105152271144076627071708955629846901210970013732157339196527218460693919837993342459527143977242178906304819664882575042695787229816179551477474711377930260513911838161391086604193517735383725862857735786936560935323022793737829739166067698323321220558951315630166851950267951488939214700300969291186765610685207477505150514252860516251970754697423650550169153647555441813870353991587478293934063725796557258061411498455093571451594087136988440098638958921154455299391652969207627247925330125346816689893645514818821636629397518888537282020297207244747295354318267572028962079529985000024234195136695052321449606152627525898980326215737170065113204496964049413595693226117284168406950182344918173121582832385230252818235678206362418285982220437528217386586534797883831043350859931865177564635795700416941775772941920463765443571386435710049395847365430201119260361284233335818085186370831835212755696804167351478782121721743301319776318520261534932792638962329471749113612895986227104034573293540323559875325611893377409087428846173730937205729454767599047667936315359287283089520110224315727031243843328401564345111708703189876388490363539397690056868056049961290309234792708517387738501553357495997096160294032824345098132986126672003753343523842046275491519626462216754774983220227327917111063810310832252833358042981909636017087692562169262494608351098677227254027632027202847624697654779582404012765685447050851414779829694070477981097504097573680437890404797996592861301969160831995011104207003763181721341983842165802079656171774429390741261072084280858744604473730415765386139910584792137215022775419856692281472914026753556372032030034405365018953362857774496977664608129814476070457561759853003723129789853267934948081416197457169790980496308786254969109592216103424856949844442174463849572558942920901408455440409934846356625592770122706578000281957546345920187286801863508612731230859436731910090063461692469644349839819398041718636678350973148449534889329481310783729675664538751215014859394768009722764708293825187478574652229122979954658122880627910116036499532479685073561044843534027706174433324088711655739111570481396489849763131104985164132796131541873679320779698205937137875216747069676775776056288901820768832803232095010715937538854198912023512037498794656619388879048793636137177691293782054431166551571568003483540921878232169246374150590862315417654567082391064325270291740392497244658810035290638536270108495046588276921542495539212249882338850561082673969085573538719995883729465480613351579151575994969737571684778019855312646271313294263468086649419329926962548991952726287145176830458430866401044911013824050701553825988872519370128542379103889455649736026235436286545175043005935102407023303206628838953147975705570644057599509994781586395832537933121063105574565420470694006132935311154017758845396809059265349775662355101177913530109302685629709789915427774337481146197341936748148124601290686744251635898946794202646729473616342433793457090392815594016161614706376046685191830448167355632571485134559712721963753668427102303397561217914434361965351111657472753617059600913166257269372513867876798916593385576539407669851369260938417647952675895285846182088902445985473310752986344679381255685920999924151055812171954791448830634134169787363040538204105728495881070998922352396437468746132674697492603530210818350257714761801811974489095551145948165582630746756028837926758727618446871574205578276414204901893746130581568867696144656324621934523460503968842182347862666241874840789679369284795739028793804822781281357482302596256968698819704441839566244175984092789709148298158608974492719690779019092495036067474032730141820071043374985565499802833315649899252425630331142683372361361072852304574598631899306240055783504214986073245391377375317544492327582533414538638808504544750401547280755355735188987067542451328878895030939317791956857716055490888035930379231427329306779609481283430974025269751996617284622475661652457341060805525931723734083777584707977693946859877902760207568670734708265688452971409586865437304485012811180047061880984839347157066783004551178069654649668685891531471774074041778849637508192715528531949425371492438256597891118678187971409815128085758700261036421680610813109665304554551754695753509654965267207587437898693422684764599996992582896329105296009253435881810412922239723036410012979519696624068976067772362441608922548705094579841992426486634991170379523579631423624547380307395081519176419840329191785946365293691252259828989742452188333505208783276079674913591401346610422627828268522111205584359532399331452042341237769680313732650815349317618946950359489802997491691814723948122217771154106180884103187948845556065190153814068725711453038661056310139601128090425579942754652929274480507829009916040449309198527968442280910811887725044257332907523884187556106989569829019268244355741170062117016768448653203094248770645532846449741961797174585298204141199352059245313007264642581393219219828146777976151145876442020045480355791261612831069141821373378895444501719926852934570210514693396933262637584706077023543672157395094766867642031807763286802108998090934900918148038484476192105035028945993123088809905732532376747412869774579659162157406257892369912973433511761235255689579631291582082286269740540566424942946422634426797934521323352160771660202837515694015258474190911750181478117266134295109190659227636593412027866891778812350694081512997876032967477086399530643714524311532031854390032507507826988382283728190654609804894379610495610256853343282182193493546107801309865610265400784727320108730075958323816550361266270200286532617644564838507941276897790004811680710048551365687177101716019215112840523027840441144444050861307558761950648705569071478738438386229720602018253263106694742693195406940012721175125533359607662680102864018733135442844816045395121138482229739537454311140075581381575815442423436040682113804442164427157161856114417310556503995350160468550775882513272579050699357647562170397845520921516489423812779585572633926785213164360926337278355403603465260028912127268221275527079060808777116050898761737581009736735722266261268274551529537537522357582982177026223860182978447579796927882358252776619306139367707344625980092995309732630148853483578896038436199168321653560019750028069698705567867915687049021661245760662055011206906159836483913208700032038809726210582939938338952605945798973994594868761975373327764020250526688797792893238976944837947692356259135047290279229033582064764049385386424445627434738782986736609748279031691945726204187470876138989307146121383320043946990110812373616113931487771308311105982632058526292481134935947331992231678557464213032538361590665463170076957438263754858671258633265393766601566458035216338759148563648814268099672094251378045093290063756322485809507535244764739510865582985905800279023990938001501857824732713259795996130257960840592001519093680534198731409536211876914814889113605973234588685472468907371836342536308969456512511385695828925464684850041614215624604346037903055527792419975795497246355870265258352254157597912610278158952722536652076358611740213651714184976057160189955928880443663769865963517677805948383251852310899437104154734722850616344491880947749731812473621842694560416901964791964629201357775365573554347537862588011378789050920586391251738702904072364207013554252853595491832736260226741026858882934559715919201520997843091553992099845311273890294107114335238282634219944923041167658900902047664730350509942611826784699881473645351720739763381914324787291453144890909515830799069826862082188766324535925266812655181084180318025839764346720451262580886588912624044459448108270857159053896960858554430224260363608973770983005581274368174205994185122335690925921840052132673548818241412824805315699401379973407527882191777717285921732464270986962842947117377980351155389941814661141528874182551681007960873933721373579387539941343323009073824248720732801108404303946604192109089449657144558706411162592249518057404002918204930233345722459909029820911912480432439370669399255599409976047864751149010358719782678500633718807942342162039649752576112324125347092237978140845869492514567735294489463702598152093874761748134585365389303285923066221508620816087317778840454772127140653767451826867610418144891110948546565696517928060323602819643219496585588402391695447176236299315514756020401446425673713692663659320888042809490400246862198802437745916408166409967806400984457260349387358578324542354267964224978939470696167627645407309139625063262804546864816304662214027615202540135637491298859417123298220530900528188389369618940958125713309894578156938825930808626954087093685862861208967222896025709736665501368418106883440873661401199722094686909077402284129207685372241184922717815349692365151193630490517106238300149566150246926293584775506671965759840523070148121575261441229518881128148550138343839230370486046197688943378645564234212257361270012434162380188687133200419289812148611301026131829429556188647795084619030501161082432138206551564668377238026210016914727834117575452724937738574389570080195480622184891624806955359785518571657291717433394117766548699417153801494802283067250417962950410416959654829485024688453403709907778804338651544830862898200117579807481614429062610890382867927647035168019701765462066434402209904229317832958001794895385443623152629416788500663704181291748775162618978164316185924073020963671855422871831790242308866818725454899326538569020431679807373799507965636971269962896106179749127826846883107369102466227001329189790896404568861346971225405408769024452963551342166056455174043477802652752380050953477849463161766151721965785572827872040216888837034670709208768000793458880466944281743276206192373196948829056419182234979068714198430091844204840090171254984811136860187776753415465499053913682288431595901393043398278471800284815739876003306072765472938692871457116189000489455681496437454359794151048227131812279703861855833951029603601950282745299033091497872851717191079191994145236901560277864332497961352535643570044917094017586682657734814486159073691270974469947080855705264963277268666388818794695036407622271705229758145134597775461844593646791319711378798050018883485061865975047007237416806576746348507542162832191542152084504551215857347442790926558069005284062274803789618520730730500713004657062790515342147907147041644025193123233498109443174587885012017997931569151675061509522920095226249164954096795071457867317594284990118974572594994522517902179906599313418504123097351327634499047513354612047616109601298827757953152479964213858499491997812567197425830393832854741359399224937457198299229842331752545642626475334594894480280733767358222469706354980862609774151083621054683304711794984537880099290353706773900388693680469583932459031315636198560493414473410974356002135990223063812411155320248637734761454155911831837965531408596603558549372290544163653559257272345243753522515749903081022273189499570593560869599485479217956852636721294860975971529664359235452463258921715195245321515949955924753505736225845311822877666026176849963823887038437873389891319030062361534441617192702866724684729607640354344375982016743930214966693920489414292717658216316867073502994412357996423162247397544140283233603375376587054000608411924662003452635194974617728246756954646271735522460247751903443624096182104994970509183287187541780861717806907961136529263995030412294096872976586108777564590117617931104342872567296296418795223918534345171005160862063467191671981169923400169657775994892625246025773435182979828936986696280322041746857695306200610897742086508206752498466705331945205011180001166258803585361604463657122540186723000282248902797970581162718438400942924730643154555734034786939206263305412218521261059212947614116810781390169277856300179574206271708172267304340872903289165362002964619053903150569056392540518116227578392145968353631693577391358329018881032191736779331078299586304086024797839669708985606815752266346777372084703395614283674800458774029312164159369572659128261966740865483610690836189841574970659511172416597402433197746428393081110420813311255132935835831190072729974701268563215066641354904884513705773735333142189180430104923665144029667653606665955313921772234609376865667654622349676214416814930081680348609318538620037983379518461015231923065916058118524811636199533925518690888595881210265874619535491360010333516031420331178594627693111102674860281722620538230395721928116966855632667310615012083907946444882649095232459192287306995578382863411764686937447997290528897494720212063387154006047862321174898339137188562904410251566140312935672765698519138520135821515648704799593937934251985315724642812457124224886750291156680107030404800848458360769052787714176059988087163568726149247968116998929625235974206522134757340763860068823221821008620866238273715514748724332519021254358369428316460086144114784668437257037131891863934298953940416532910005539728049552817003610206766171594778782556051293276571472370438214609951899274947514405170912469308346750434022905665307205283188394111891630374113380992703944154090941930282919804511318864447603052104439814934003806976513894742928425142076657446952963056516362088454198601162977253747127424627228286285522975227662081438743629501538890427957332613011502988558947633987231721788761132889227062344947142361244613660769184081761450818133344179826278423050768022689214838766141492608209960459281189880001315136562274286374542511882824370338581917869115959518739552946833362065652084652002064805411097830934183496207659533287078596196209380803004090647219895016506690880267307089128587336880661992980312057017315287753528635173510538941892830827003978229532977215613328316146982774584231021576511072565155047938094979024986254787496808577697455877273291182442457073278913789966732532335101068603278070426023554877822446064081203726985174528732686398280395191010911539887086836648747315164050720406473813201798536170594892186473138355849243355205120983822425727546659315519047589797385803300842536599281317132278138063065678420132656335796686269532742936334009082146170196703245570895722343114475245040469961356208033264087838417815879094444726264693128502467856307988244551302112016150674394838569927738681830216462155879587987066916302565116396109479064255331285821948633233326540819500994179121792088515821251687582622903381415055778948977943568773159007400470669969710610117479337173932522264701757701131268376613916313599737497315644855154004426226677294528874685761284074934959277038857821763591713478743577788194013061688707927044107292178200423783491256061153000955759932947225617212316390229522113493569515643493701739819467093267830724845192445331111962940011928996422031131929066478515583512954847792857475590647460158479719407606079879998124595734773275423684509565394975310542882613487585529235860331848256609534251463035641796648590061520774680587448841519776325985647921301775382511435476821365941053820182929285276432492261342459173258251130280788199930192072591936360063137569629780530497349119591617792414808793491878434993996144942894000578487327345128579529658509854283846741873177574286293454111256613630141286979962459505167956863068368856221774333186380126936877708283618873922897035867002276340508581102221075192069568721791923513044731880107680396809022335851624776257081874702626143196656387952873196996532439077257234301814670911784388247315304201498742208132885463730276428026068540609562534145440753926295662333868987447035462884693291772696362413643546422891649094243721832812665999305020347515169493646413157861640571594670102754201277461975409296150440949620446399887602771808314589021877584230027378093375422231035438798400479972331021222925002680195120305817188982315950910239053808770641057370676391184094556212679241237822812208244249295789934053072483287565003576142139564139812819851711949261457871179949219483681882536146516977241234183040053521224996981999527706258159202663735069186308627738931552113751473608117505845124277891457081886055698562321382715836630683418240783337049564566854900901987510047566938811946906102127355578501513394644529421498063345103407853231313694309837944264491142997638767069186504829527089858470731886495563151073673168512202028176916362268908469492212209496144393721768789418218625258551858577890759974676856998729588687329458081675722539743348154299675229162632979039923742006831099874924081991086244025348713805128728755596073370618115243928093305898977265197794004934671465190414847231745039994642392437520919674994617782812743268158421317180417641361935856878252859390713354783669541169408351701960534696655708966403290543867484351533863047287335766204609218855624437252924981981760430408992831453825863263528989182647674278453301095824362872192421860598798972007812128024304730999962874569516939755746456395975108324183937941420320219393999340987257316071730068320623693846986487481989042488019361611420536935622727296644643734026580187203313730200090974306631864781281644216092493397412762695192651050185959795093775504893528594814267292515381613441300773687433396610314041501354980140189227333880342173972706376913603789830795184803108229046932871500799080221633255630191200120190359164828495684558065464744451510754440368707133012864546170136440262441281026872612973506356230397642091485560710383827772974296654727069650379892217154427844468294770837414942394290045412210856420645803284756681183720185375201352137771386468823108592894234016507674549341416708864549511552864496147411108134157782775236669652566678200322971632648360591516089861368824929885613035220557196059467112833827578414488292596822178738924951861975009968036820032751789037807627206901852877911467219541596432353202794946054911504417585807257192920040268008445062866120343292839968702468855825744394887761579341187840835500068384415585109761112208049607132243143069366790014481552803755864701375902337406903164592586970849754108395732819671254105345987223446479149899738988078519677767588875265092207042446523801487492048771542037537718610785726580408447550859093469948807300288523643341062764645952256462960354974816396858399560709392062828634253816066867840110035852452610091107063603351673606699346917787919228332543432585969725905285101203061421380951092762212790049970630515479994735298698422725401551253027387332487569644194368698680136307239885423921402634326898265582673838849373456732104378354716056884163832711289072532679733509656837997088811343162947702230899692841816121449473503272261436345383423443376885728119582148995701069642076271350686780984871575889056846809544747279765331474250903321684175508898552092290202176817371419444241195974579826608662273061103273742151079889363319310529878076106231692828536326025946157647613778090471234043823647162884847996563672271995617100419136903108706453635414638575707871239797982663850565645183827275284652380324079368671546917657249362701589962191953629781431190872715795470453667382107648264246952559826537057950978703214576283726746225519891441712281117186078119419422886498672878106672047005321786421659272578019425727056509961334614643653566608592116990107303526553166098217993814554035958717885294331748879680346116760770718671414220381272987469109012334366541149646109910522088574385083251520321024287777653447275989112862783872732783895578130278434106953124211659242515772195724959103468997874759976938254029064506922439611387077151410798543476637765596449214874362280210728544353126131490930983016985091113591100414157188216725941475575334882756102496480121801786365133847566185010978874923051615404188967080753724461257910663387582537178681394605223288686408795611673897634557958259334629727225132068629789992887898881020344021161833189695447180983757504061525293918074909750825455073519347588266811986504472996565860356831079802505313058542163513992769777908312731581092885886165765028862421274684700627125200111675978520325021536509333831376417660138567676507903902387219687902147988745612117283218430747592163851306182362957858989095083938063428199561093937226499424728547963613294298640215759702929495932573236783562038195397587201653016834288641871832854060806263020912363312713852272101048101787890112585840576883587685869283005171349849063971012868724565145656583901616364663666889499440088801671071041254170595807432994849336535900667244361640251032677874688461945518530964309310306445072920248640066630103456912049842244278800700551812059418034927702338469095815932601572431466563426597356610724169384503898435012010101494699128650796485370715272077827466912106922890777703985969194986347070978876578412611866034387887170678477694182461157747621130894946967562812337496239467385903995013199898888010656563799983311378038865649267315878093995851301116903002909628891695620997991277228895029683399066310327772871465965953827840399411495495214052559467967838065582052232722249362168158172139171987735935263337568033499351799057867892004424843739411961892970355945539769189361984907912365619786933946110438078108236797977275415308784573355395620739021375789069007451816540432971275827719782438032039550678627820023667022702138799590642293731957041587663135478117199449571859088719555778612724591030775545954102759441762742124800519431008590520898762476394817814560351688375821682846584853886979160540640761378160122839028429403096766262755388735468621119964536848478389681268386556413496127599648216887677476013715453186504893582807476294801170180231131628630206955237609201495448038151183089003040636633932848715374008419892632514516206552453460858486301032632286213075632502711919023340721032325750163707791989223642398783043237286475876381810232856232422303339040849202099795994362894676581855162040513053596675873980210420345187286241846920483106739185521965148143166515256327640233443861681399731138736119342223858733082171232247783281179415612550616656522871749301797095500728136790313095903950609866405565034848495052184945662326841735714090559100580729598401844337179971201660156114402930629066999574656512986296112085145146872042753945840469354636907912746200240930273986456480120179162803261943628367786028917005447252680334212985521673241250682465801320997221478976365327757521009428582252387298984266922790037855570357167897444604835202642505544899983362436039307506254260673919727610213066747872641902970405668335439463807053291717225926711550810642628596724996718049695107961102192057947431624522638792817682115096098676614369394971333163862192658034106676477308549151042605620188421150390839337668061816921971334917887734437886789294349094842036396077362096784387090375714528677682673613267285144969578637681530152771743550660097914853323951374185915474913216869041275378138110558818757479694049211162514807377237400369888740306705155817564639843827821263595638430619127275774109884869144973279008335930185518877509855840124992859443845524952122026467919646907544317145079220478821837978875255804366596901005660643058825303071983237202295375957007321016009761518604904469354218841444200629411600475019096133473607930601820827479752624983649940942663589069991566693643094023085083452762438237310106935715525493989996072868492322905267238457960066655411811871278358201937156633735782272622369923990067710448486914835719056832020834693224367001859252346997915434005365334250331439005845633704830287418777757872639253012658138050082689074391411140361427178619599485892756837055799219548272819806335694919714119518138306228246408297664375703841735556459838031383242325824653921442852452306116407218001802384718426173127952383387515219397160077773508550314106882499872757628803961067393726898464741421562449763373198166850338587352204933628803457906963385026770470681080265852035320730762151292282297194161780732697429104221871263105399548677744860995134804491851436407542321220202409973245048873051650203427114670090989894933513729283186180166719988055129266161699316947856422071094220998072600493249614691747683283529812072850985232231683675729788360247265102244879416326390972775527234889702891495660472223390922271216432831620679237118214810291367638493568636546075148350578138114275916506802494974814455241830130918761772906052967679191553722015978987629847523212669865015095702881805213470567742898643989553369376442699865651633301859926058463062136790158263333765773968634553365324106578723452350641534163135835925767705823584943385500191052443194216556676530226676662659751809825217504445777323169996004794559119197503144436405708008342416698846337178863352945038153647774670644353844519242045120335826116151480715281252811938172609815781504840093744426571455565019240364903678956124936070295161552009150094079668535267570836610666481802001527396977127281679456881408043816164995942581546937338741402208695548197547393007311015188095627464238671561476905883471512835000373933005537246296342108914309896916002623667820123031824867072074041846713471936207021342754030811270172357664632387272402243142469352037320695629641136864499323539248145924043097738464394835156648203811170799782591518595699992878046979574671685984882832759173055286347178699017636181026375548785258856776637400896897491461248118700394665320887314022485609007498792083703380555123364318725726314015361340046979741293732884169914807895713068318946636676528023486925815921415057206209135488732118366929582132474960669313467541600451767040800348955912659295726501710834233319989905910411911835541720776185442801230563622444145749925024738485165598775788529477289257245655977745913679641735911495311946168550264648790170299924881156435019753922549392549768397054625434295570704155706259104741024032183484846788885902745338962936805373023721366338440378305961351374025621395905527829113981799213925661822501194229129102301994849734503558208611264914754352057899961903235856359507789431440362145972291677930017865800578865869923994431727201182483254355772408022822749078777734856210278956786745839401509256166033248910599338469045626759684041808180550250282763174352485206386294536129345626933935606978092908553372982719546326722925988953294209031784704386583444373241281998457792977176227880204949652804497243807123551531982128229618165727819135040069880202649702343950594357406720862457961421881188580334649188095803247590365679724413956126359876022050506566247268250774560958051271660874046902383042465576010126207674510669025305870281442841960330131331712395877093964088052969386467237499490380091912718011839188813686385897003054813135860775642019216585032339559771845040635337305810235746799609519419073391343212307829790320387450303657099775862516001713519488106509590311678736762690578348182043956459942036135660929489741547048061594728713193746223906001548432188727515182681881416124481456960474032343542596730553481745376046062403493791165002180002547344163608626102150912843585209074860046719687494161907397947758414066985713913900410379364367033779733209647237525506171291388401989929165162463731648462724587978520060136008190747161463076434954458443464021639744897997195334031332360008211745700082243307212673485016924877556876078554444026757297403166206027641115509839117587383355548477084393190759024752960650266609610228911191890098118916620059025325523895298512385960166847364736150603482176999121284972146114812325053931241807821135880827705591389736070680464579456302843838656049797047693930616126013424066164233135567454481615722495624718562231232709895559869762549524020819371442016713133583669069410678766391123903544111022568783828070796376476798015563574363424995917556973835558809808281562782450744196991428875219252575423974373530770930252079108524834286664849778004723972237778153826892961840297330005552939748464782315595837674653853817580633211199959268833385464411581004294277719585857767323636995877939312122842466683039642779510189929892303280482012995634154413656247429549264220560329062546254489246238924100110392490278085796147777778922304589330440588077829282231746924823502807182811254557827700933300468917457395886041878675070285774715523208668774480095402986133383202810818892409393655577286994279623105678075985231854487793781096702857775685948729651818811815993719798882746887182149490137966904052521404120870612874158163490806582154643408372987871083052858008688711799622777179374252345767385563190051581606085408128293655596459308266340820496599129012039917279588581502176306920091109113096483546561075504887709849869512342106784541539550261432706010497173918591042902926015102426696437438561176943428605561682160192713767882242101970263786371116132463704159745806568269297051812040610291321619679441653850675285725677349182922843568517965946176363900674670229248330946927665895187788127061121659441826088673764488469983674429755224386916495231635042968460681676225779076526307728551028166636263968751471647796676079120660679078851464307670879753722169615182726274647134280503317596090704185875211991351729394607403334671362965040670152688828345576896284567797691351056116983109133221671647140881061425882561513911362944199509983638982223930337991067971747383031672498836114934759060109807193164082660732194182741215040833795936676902250440786073089810171849816158418718984736286513525308945559163126990044343433945410434953582252955231098525037551020938840403523162017735205387018899073588259212978581648694204747059960148711945701289056949682477221450454918868320915187714967846752557555085616973631574358097662493382534384873744128993282373901977851646194841496500153243333174855480211987475983489504899389744000549917777865920876735812763116050909756749613998257580895989512773872107353906072203029881871400342822532016044452795995946274847641344314727692294220377865089058985241905130662657109036354829613640707511309447750836554189376135725132239279612035494869485868223865453004287978611520266962869276989229845897482047223363858089115890415411676585828094703999750004472560892994932063187761121705242966411491477186886159748630564887063591550522805710019110502057128729056849990525489817275125154164411323728921899431306306857167588242167326673605372086690580714133981503442440912929343344675594434323838161758814872266641814397900377238567223704210888874779158681883615890348545549476855437466166807225111473354127153051390235382493668001311292344592179463569266731032250121946221865249048338712396491875310656438204489084955812170194996103677731477639050717538328357237769307122378663667788475302839251975665527855846923480232870928921162175151984448789171585287176202120897369911895693926908918252663924069063111708998040456517164538072251678143460392405397374383997400714075908562417109939916631749646222608226722699543468867670323399296629522138526341486561792303999849252959157945679028894140486736798680175063973397278931515733142102498676059555367044301507533319474586310427983900636569315618901341191037862935928082364844799760214719356273099012181560018397816446999402051431706658586041403514811250647672473493577762943403642601770028812744093740007339860444839165616483728568349249389679649868203359319693340077774790982336223950843170717382997815125792975195219132652780780381647725927367697690062138016821420011429590600115936578235237455883099408230755459263282927837807532790726456257429760309612259218652813431202475682945163536944264188220223741077304974233667289637585886118083470713099415534004510349279155541574555906586206044268332680225219139336437121886952489788886443868931512353914980796164516711959984463981385709886457939056896707104259088919998372795467940854954444014619928793707066044732432201902471247940975573003665683712329025238114488478780896205741661214217089640103509703896678023346229278706900833140014073896404422789653631033428546578312841173942188799809563832255741409669073054070411686166176226690472500937497036441770233553698806931863197951139601045234906827756285138327612540499288658976185169088499427528099472180861659176096801764978480874291567201424722634611172102986293741228172307526635939049854665501252438370938824724210316208617280790996732109830875966060124805956839956519246632619042048010297495960227893277616333208885655778268811882532283192445781597192685948343701763686698583658006732343161982606126501735178317666623870041638697392133287787719217043840506507553591462902660996223714315505549522364246784989388919684809095535292231794895712865461376025192243825243673509562071431614491765749585568150327228545487106207784081892722627451768748916548657675870861596473252434731468362034712425839007568085734424853670875776245652749724041945982123556580599800911576666789843881135365068229144184637477840800101739820337322490707860882846670701537391981138319197317555123380431460005260305544669818807841281786299457285964999636519686332800941238740804913839093262820771999027044729700929132782451971307568610081740739407980943838956762447169369320655861810917306613853690646467610844774264492249994998510499502378136684580662093192731922295801298806937947624027477769624358858361887721574834094974964120658061882655521202645620320907463840466017556513959049057573332226848331914214454708293509385735764516083650561697173829849230442802019006289608411790471338065555151291749747248580285656087292753505384741397161041858924898858387050939662094291480848697236881472909413744413487144471622601550931855724654508374668363035576483635872891171159306873286515359655241303829554398901921617760854162960045384358788765861064505195843282535274476541143401741920384887005997765288268434847375592882069028975416759896774616492879792160773463413225621618349746332241096947902465408394120341139068019187228082518148036401351962181760167745661747678900484452534631155338362115067026872813522005269623390453558717308857127262146828316573527094662638971981792032333112133281656898706667130537481205984284453490553394529275144592421882597862749563890634626702456981259334926612837342145310466866721361946598048705264395102688252255916688607587782378937954421925487479572005152473293587988302711223147333269485716376515479740423463714172095065548403514282604035184501229878452219001930639040309148403416361108614115221910812131097550618733213990265691950161754742619516109447715465249923441006682341250600074209108771627616355540795070168853961546511102829554892546521384369602590801050731966804078302468016465811041446592413932953818748081149245546536313231064159377075569265839470780855271730951041024121143326502974349149749467430443744356579018402371432326628635981968862689145121698083557519595456280909913442875977256153936885144042225731462234401673646725671009623558579697202490338709887364390091249346963750704701689155693107493716174257161781840543168617660462223025061850131595041055814376026166494900935379566697008410615600067294101306049537556799066480258554880476058095309274471115414118489972804637903236030929743208208461412505125040807545845768335221034410304592255708389258485325501677377148061178746340997035727386698980372738091285532309304942025280181482014018626791229912677304433719649307097433562050807625890966215713255244587486923627910785688618807277932266195712770972243286036906552620454964499640474389457955437736878477928205684557414352634679733706446460038063310744418899403891373393171631718829085067984381265695090503833787667054193899497022289590474880996206381906613519441909422698401990454082697578598873262922339955407544699894873446599113178125859575285086952487915289878323919028984179403666125192536968707224971547356432374922279204261444846469334041656807681722372685509953045712843763260450442194363454170012111128124151933117180215522774441739289286033427214171343708179283679390809803794992310893663728187050227213950858304793952220164858110904993891321213160715758938678616140909239822309498517689503969109971859714781015602871067772384417912327099388809504330644454783904971215077533434298866633602837008260907661821236439129333582127837170270953662144573914324804982180338676614467550411296092033533686914087743505210918376251943146605597847440402486099441962547609136095186877720959271506652311158357099927294229519764370687020024587317491844633819487407005272156638528881880820180416723504936659584203989496193909356654363928910378421990179424015966537025223433660442273393839856611220484117025076524925132391834132381519196590408946054127239439025497225561771662680262858936433958527223074644733305561798494448261574506763292718061187245470915564476737495836552404692878363741213771562872926691236532967789087349704605488306302920857584065254951356293301040440280897029093347303011407538540661345174181567905445934465379540098407775467110037354953419618043732652895175038189283903615518370984181058181122739351167754677627470440365065210723572475500534258212094961327662130987152587605910584268943189578485055417818894475346529993817697442782910004373278156924459400537508488289845622093937623740404042697933547442036307052546985342836998378084468795481960388120984968032770439012054753941083458747439086923547172864239360765026893534151225922204638011922803200308926757682777947159783246399805994736951034255599841801915603411052496498473100606808783865219192868286410521382496065872215463243525385502810415551551981592710848369030804134149347543957757268347515428932546328585223975575871502924197777003916241231579631527481813658665054457928723695701499652155526370565220891057396009803931694022352636484014067678748592353813231659846018858587581280128246039229395642621289803462034688164514254128219070996552523201772252451884246406479229188125464856838163764864706478956681082923495941746309574022043590700604980404705739864703469167049700537831223464023564511650122136048217983399473873281533818872692197658221289664262871958569890796969441880280832576798462672811919699255040366216258429797142837262615670767117100262330055776656318777030225515637479202894349184208981464515248718871289429539868229211850993466067807187353283667869097257729467392547329612909891299513546555242077511890325458167224838845288961707634363814086495765073943767341955252267487893958801288809037701733247951222054602325753129345368683745567454394032274643318283506618601388958891267410176042992123579244920852302752737478653773996568927647973704942329862861830196157839920170366026206140966818682528574272848482338918335289603662487588369977224625946824655719636047797455347421483720493669052431878423951323318480472006606780266491900482626091391315766117442872350674319242897178048810023143953147897450887260405208739710332496017618337602772885674948882993039361262725714773950422586250556803306676556128133116636985281740187112214851198172018195985651070426749029725222994971137815794263467741884592811678235377327261822797686501119233908427745269637564376858135294268892433294344815826795071608294728241261229997151513216496104348156562032466094812655559268271943648600687086983699488269527648250078716294189480712920882080808928944662384342230925264643885689289349231736537842266332005306808070676801404267813109960590334994365790347347319646361302546445624865935371119551984703412944578259437623099272099823325253858009737831709735742241191125495730749066858909805794568850468885638359525004821370447341286982288581912407762615832021564054221093449004977060587167706286052812437953932189551015893990600279046901773766626852005488272290434757409761817684870202477799114769209125925994310783932849034491407150680281536404877175180731130086118383488249913413056097867610810417071712108921981845015397725227767030045222149420291195115256287555773671566579379256868038336621817536090724628074960592394089887093478726431958378735057553513364996357567675921704195055891755773706603890055260588382546794530624442440105059004566113716308403941788446006298147533954491133261016368523478048011493763072653892882698319485481678524770879974256417356996998164407895835959625730926651742138363315796697277023856965249062394502246321686214504133581510815145528853441788479274095196316505807546500422316318606320544232817143023965379988754007371550080963921570021115526669624500624891995888632234062512128641443373858825273421044232617247555571451332286398767799461493173269266460991123876437678395917967244788828145570778919463695710396665709182838536013460128619427487460533490872386030889934064230486038737393473025699997680606714037430527961875907716683883188483583953025333987996997271044526678314053575519565857274080125037215727942328624198520948520665483553999083711905311308683495187727210587491606362575481289723214885719028624103789727631612310641060568931264670365192567541181405412946959000212808714972197675197855647792770056211857964343608657936339138424580285485882620584345570797486388231237928238126633642464976981614507951708680920320332774995027602759368636239539819123040934061718320557518515132436714409454073669330025088641001083556026033486048168977301721240778581942706317534405910035714947868717397434673960354050687682472331837849706152231889169908493101322065107475896949066640098659765917508833672609520290682905414935555020891693486924205412889653631196459437866719659779681966885781729096782911964708494205516730475065540734020504658281163627289787672395514589380616567072632887979008345790003665541175738842380576915285348158426257906949207981812664043709743467899717490492024654805046843293988699890483024669420823197915476664185936797293902661387535381022813842310611666088254351862228243253545022642471599663649171174513746444560960220705463109307557889414375018389691326343989535258587322802320320815669624140158442755240370199743247052751304479845016650073517402525356045311210073856964942735902832862877150334316375173678860448932511933646939911467390137522106480983358088128950024011871816221184366584623521578188006362580666387067183058802307608264416360415275721213625924974013887664227843501931096266207955044291259594282318114016107286644367414210062569111664208957946000973884759220723058825994666862710148141384700803465350185628555424342460307912349636449867675891761306957704255556835899190135430459444050220547273329197299470435735959259472998563051834926147750300142807549879976879743542029827778320022632776029055854090304592735332212109570451881793726097763290716861987178000034182896402585186943226777321863827683301221393466581473816117506910701264591004636196374655954383671180768804892435658183203497113516603576618594242994023164011870288912433681928387973446224793601812851786540514460010365191856600503266322762990888840734425274054783168354303870003261496145943548522570731601884601320344752676947727102987955630536750739343828899289104501146237595568803405268545690469167371599208799604384652671243691124036575732736993053038061120314140564776586266985950802842203569603239112129736916424120985393187298324447071158003217305172369845422181381686906480166340970380705415600338467839703662006159584105797020204618232185433044913125522149330884802829382170351866078566810322326543818538655230387687012829736066536374088966975948611844413958334067408213874828568396298208506361767459139364228111453356540444052927247772560096783913110762357392199251131977877054023705279646050260657079233593659850387138813983074681284970378875699386965487476884850280370625034131178492553006015571792376826120168015002482591382207735407651387468551382008911157657649437508466046366115908571344396596798265504492175137668354683915281216110705349713720100657198995773918860297717694597181751604723098090938646268611822889842592144279936412544314359720407311748075105353463997801682531652723178133299645240512909852030780586970882813187708512436166676824185282356463074639465362486314406246879077614013163561268076392828214929837271624480278025376571099028773518838697359986348245429331457819367864577187338765373606449670807885134745143271716675006923067603322017500103641973041945810786113193752253757217939923353490658808271917454046265278690410894698410735793689386692044097119736573792506840838199099613561754849847190700199334205834353060011108078110555749340095267632877016227490304351781681835552863598352004666133266817127872430177534779528843874290348617411865647353400694233796700303253861542209364899805879621430264703483628732400400196378547849639739236308430080182285079348482961156580257788516954829827939785922952651550618158461850904254932801533753683938174150611478569301965359579091309194833582278517804371324688831669407374139385762763058659691821397443730094531458804666328133175932107125936971543966209120848605232240625628409200946829478485794494182536427286878415969986496829419350097614392267511599373351651481461710445203598747001224444610879935545745184629056781890684101463824906117242732946699777009599972502715868110596036758612434066984037153228424284724544889258000432067743908182665484665373859959490321173235488559741904790464946199285216997459381010556492067424860647703467573130003344747007689285935768188024109391621191068321573580576315355534700639249374494965449068536150967406004315822676946341004408822402474475372478340328487508528752361470071211516655466811447990579171791238616306123876020551658240303622919663589188717618941812381348576115718586026627458979791663589078051850157113521155166993119368937202345474081793321102402970749915964433712363366854756351028770180844522556863191125205611964577329050707978483001186238836413253266311554987567878404196416247723896166046999582083188549125409107008051697862790439594190560719611558085210234292061897277591086927985015326137374168672100174188083764962601887471954310578381943072796392762548427208682119593252238377662771500968520869260420403294330996928801346916428094600657748403718220993106682497138219681623096696446343085318195308013766223991487376056974332008948502971736564074092400687080435304887773531597695281109799134529148203686297236610529670591779465541946553649259403753617156159531020373898446256824290535857921366390601910244779370434649328335511120194056912467390692451397516041667401956433336052660123439006637445873668012973790069276982218250138886510874781746353293443843110301248265192533272883976261908535287146808300445054784802116403082500136887916079036927564674226287483444833572406297661441079820295295514963800682584332415622368361737341444948113349901143812470739473268656634077798371588759754900776762006817870299907429216095667406896944956575757465061235292699273668856835149717497847135366861906160837194986170276055562903694226402160301049051237961422644637089364986674385705142816452643894757911127773970477410824779661301808751646022464456406270648002738515500144768115009701326191371479178924605425093096106128683881782916542042473111753640797988829757016429148895427377184513949033588775276415988024674508589123049833350054122484630042652564529826048979859043446168287779415094296712190521491146366205953985951283173899570769945502296637530540178495325492142573659377537532628600268297798005352084354246390467262686277258069178006287541651698308523331921514660814016850957638896806099011834054255298684119278660203527218502945465599210251502974124779749516646579604127895116601426693413669604509807764154405338006221490150210663418532394724571189136421802785379804207738272815545403507293344019856487886667949081729475593762509474705165534194261333178938756252647060599815568800030442372812042978761185546294951025617497286082351496953568007234624570084395863717848778758622199446432497828627673699770091530735640582011749751064593840217344955443740988415102274227561430558366779878744603021863190176470449949576392476657563467708821464016631304638970503092724203816976927400271290063525270792231679753750875052813938773479080047015947050699246874594516998424952281850961101067954635904883147440190641201753750430268226751383025633475670229319069786932178271779821442997492263645364948502352189548174880779194148840889419729045383289733240092069871768063255139073011994927013168590717215908924531394611247362488070419277681548484366477873769614134887110682499247693418853819723081584778028479435802163787204415598003701577667917073560904109655710247939297117803412993258030478090773718659887613443063395834914963592866523169728737933555352722831507472657491271899282637035579428270284955813832349258378422899269233957661952050248735862182858215595928804739624858854188389976807644823325348977710671466738939496542534338740436463624273656861634556695259078619765994088635105563858397829981714795689003571426583718262990672283652581241119204795151809531263941466472908196749198764569929509352196529775766187420830722723595019185833025977173689009737859661814025512349748513609037734686325527940608279603755270392341785063613060631245256599737735512900471445300164060741288545767694436050886662478662216909761423322418595718393074406058956077127390912896037048541733036747819100555848735873118922341822137727619277328442784142625142847538173699700466682537275990690537459480587320436326912339906343557407452019226130645351901075179212775164364463182380802394641828012756801637370739972616945001572506439892628517082614301133333636271949911453207560376915169148857390543450833088586683661421506316532562646713502520799628993563747628806423531331940035879780624394333535725579323736750208660269025579106218209655374252093157877725862341760996673906070293650140715857290819640620170462771816599738038570289909723772971390898449698629725350572223656721369561617912911041590562377038307768996870271103142155097661681771763920705363771900600514643382912168375730744689844498587159773580894396269487851258617264127460922782777265409386261389891505804216288325559370166142241140333439995356486498623517241907582997432068767405617376923093638602849944171707293383280481383254026088355749880698568788259413396747307953866463130241336015988086156260681324223482273932088865396327745261785905141260070362629951508925552207362985731298948331528365692479178998591279162119505800315656050018162336597777325224367082820577862584298875409803003139351113025004279651677556861603431482340896549884047899930203124580691254402010651518868678595742887942844631402171392651975571212487445369971097949011555563387161128463743570201676110261933057870033220364636124477761375649795521226344153121505147818481747280850573242640424799759453275360323998946998901216272546419510204540452386614090084686973632236474238790289136474037776220960680329117903071608271477629046572408747919457003312260482285063964294745231071927783118507476621082987752463582424295483399792060221770891506034228536412047605183776191629481046385932847942184759067069742954205272968245021465707347361948914504236794056609985300649737108343720224140355630254680897816403479643059171993990143362761015610129329281865327146377863287081518982531446193948449156244443547284489672811106296384655439083946919428017197927439632376376757091963842362934775353178544846905489992641425930196173671355000752569234188003937865659512653377404996190949549855295160535183656476090076467661679668072639827944474097804914868625354670351315682039592668940455710915842884492547236264674308076484256563441915756578525284110059247800714516573630926788731685568091980166846363987604650018218883664417439082914031701613221197571022802050663647599466658636464844634157076464894155476435735582996813807290062400533505345161683467588777757997315188844700643325526009379812032361845664265657880026808067321843351282126768565180763936984837439803119963601903909271266746456058693511628627006867320983688647432151267323381564241740300687332131141391280358510990606697829984315569150602697935988308517216606506644097261715382955929636246454882587625290206034933529394050709713280237736014895081400030164383993568698424784134518887246945037903203178078983213644672131789285183502686809889463372236772018944802858273927499965008002953312082636154344929605555478191193910038521651996439991707140004785195415327664658920131422227160161724067403310908057205818144508840212230806982809543952334332625986962007371376165940253064652877287131287408419175759991908783708742912974525936225747532310355735951466052920121215106832710972348525123490705695807281281010900240105350240937783402243289281791282815227678085079921972982944639453013921911632889008681140067303509185372921556054164330695984389924058933048871687939734514828765679197683059834660406129109230874781245393669492834076467039376781021463918409290027183162088042217141110305311382901065489163439305782783730190793365521166970698705740794354338300480714058764989492703908843983326760953645427082535483687146609565814020436687266910155478395707896846835389179985807532551006165795059036608253750037595766288956609912473613978844389120118488660048753925951099988420665124390130958536975036890124427738603958196113822994614188510599483286711543493150609185258491659553641998668985653175099848462846746452965347849743783138613440279479559968305145652453417708433990844743265869941928547239917884965004721029525269302166329222275545839115204926760440453059889098872195212864283404205733473835807858785890037893868751724423520319334020521409599276460374807177468862667144031421812251488679263618586701500153665282607385904926049926489463338423172608975910440412992807916815012251360293572834104415892648002366827240773454020564406236860285985736472330977252241978301241363678132301392429758355064241261898929299622124770919719300207485987904041057385337450866082205756758525727679552746943393063970832840790087570637321170530744202169713292961435816996170020925152786738058495659154109520684261757905630152234995822787799187654424928743288851291203495205299747102016812040534112308442665560416604752093362490024422675999256970200994607764700500653401486305830059638133137256922779270356804686713517507322913801187517004034769749905900299969278493202108611127762016544188144813303160683806148568781634443543388227662251240239281731258119202900031765036528073424968062162258684360572569385863605778105892746572639824079937755383101489069290440515950595897098463090310277851464924111052179554016800825550050781891827419337947587035892288321417759055025041340451092751883326059710206322510675999210402721569631044919437572990187985902106541051087020228242244112876201554512356027023216138486454790447590331664292317806190702169086666534581396133249523290008200811604870287982384157295155640702552999154315997932828227759138629315641206204601658403003064821417544295419640350539308233419841257387892996933143504826014045310638645386754081528528462706385800453014582704281548869231557272828095417801285646074866983157365694376305377261828216374719615967266613120828131836265151521117545272923492823008268309205637830229295354528364362133149321666759436596464364174798151311101651373750853901228492954380580958352862892286021911353101151037304703866980983203274333000745683410692400808635626313033498441233186849527223704005145202200517135629278467915584317830977626119097529120151979950205800931468118065012563436798929105688372667810156088341342852662974530790873020547295827479667887913453974959346299218916101142260323928549069890620252211805915039687517806614255455139093872339465897859887702319135693238299659556005950101533378955453010480277560780684836582172264627649050947032743670573001251364648554806544184409634424757463047015785511240634734204992883222052317594052994496504257874253661497605709393443259660450020795848404600915999731777530068546699220145230301793844467622004613889235499934890463063221892883123715286018149612381695145947221426347733737649606346823679701477583693540035040480345868088365860644640675147519338229482144378789070197607741761728012180833371295734590250179927173898941896418730415384224001815545886793211655650858261684641792868280217461747271840095792650209167457609120801662062583666819838164952935801363382016884353813615796952931669407900295446061393175652137351556170478444448379063536217382176761409055635631592107002134867314072273267587178210081715213334913760334709529188513412872672405054039190747504308123426494754051171629470392121342779081697907784001478961026000195920353673431109577327054533138505632590914499915262619529556553440230077469384855332048752629240817928307385634138337993279817140460333775780716966851102967765309802718498538511700297685685097069357125346179011239456027178279519887568930723400446033264066902548175448754973672854660910939666397994464037425757557524677301079117344157918674237433452867541172430050826998545778823041509102081956488299318789823312222567804151805314213155227943492547458738192122177948244138211608575218052496348997106764806079332231478055403142565745087594678474399332044488136187590460463678189531273189746011902875769613794161982454880292895397107053146267842743849280674750813594633377827637814060585114617581488397936676867015814107609590076018618833025675728781213891707596511516661663992224572369212783546845783585254482891932260215556202162802050676525209482858844150993564534416137264490919358916757643891087933089189775463825379625072632285427609582920645472928853137440639567038698799305588794151444843529975302528163049318889769728022481279151203276367938564532395869146547261071558467356926298614861599567395442639277402052274115515607204108655390524289619688121457544429191488092563823249709683869415128724460793003079809285676192941834038702371978346875689503712073571459133757009208498548897824781046097067285076415910723916292489837103404918857026199594701775223823921817192012618586446898566211285423418354277984589096681669358422223977231066893817474009493231405503192147218830471586096622154130454550695191917331213003325801553018804088302519426814956176085305797975201839001941740696084904369183776935298242028263076125976386811849328796137640636239293109536735283566887056446037251543649747740780173466982277842002621890974071341725225118820907532296279112272719901548532768450289776236863188883682434042462020548666194677628113806450088676476443522297400561466377813888680735799107377307902882297351273698362813100936204812456772462833253255836170233044756208826480208379214909675428516334321720126256637934177458458772200388272107122949331683888248941138021865537721745846734046735873400148101746590073323461121458988092579826093033357650458155135186613638612150690685052404894756262902673715231206963889214646358839173417950745250628543152070965959963941849667995100951793231438622215786159874377903047632470209623865243288030936067835671612955129464504645820522726199832714101024682880410079897357904910263263647983221754088402680877496682192827462051802069853198344645539588334847882633196088298574400658365253402261402509099961318494982257323618752551268458060033459724919502109233463831195417847302449438612877502092904994658421820351921950406861999600572242970574462473462574383659301583083081239574578785174424779048675753173735443854826907157463756498043369626772303007043701138354384715117559613661456982795327692274825339790208784230992586064990116734869419819204720939210963145925858101394038491538979472862123700342624657405415523964905017459058607446964215989566935971581776481931527667394638685678085227853715312324662376313422323160118584031726862784960001631112153693144901995141683959951002801845577757573919218616846790151725251111368553757648945120731223140046385089649956108818073767053061181747297531921579981785281968769385830631716828890093971597920979494009850595541171681514762629216094519081074791210522013513303681531246142363034116466145762912733287443203810355998082285980474850093322186050742176605831140626168625376691067496907421482171822184214469392986942606708823076055646395283637112335911787196826627273539829598104149430089212917937915013178004934070801819483033553073913250712607673143128668193390155404265588585555886026044619959613493118409986195919312841888043841072905325837336930721826887884108932263251004852079413727128716550665761312780580696268224862524924114630451908797830700503377025154684769803093787718219155998341970489180307222029361671884125345662030392423377270031162180936299157971024914381065457564211299253374500790453136455432365978452310790797900715245170065803158661002335025775717785414927417732931165295274587335176680008617334777367791659343137258767779593933224692966660038874313151911713771727616616562028418877653504069858502304288127823280839402826022700613744871850121400398341596469024364486904869573596239595093984608396470338258819397560520882141563015154698490363905485141041161900751268346910368199071308352855650868758718438999123048727259199393173894377961800541029790830140227150067256813210672171539738960092467779527668266131043712748074844249611010445546306642746262812784390099068594728525919677405023727424304439242363956628514244390530571883585154719624707338099487696208277579739925060643447599119869159693305337630577695177780045000179059127257629716449404187069282340586914415330434044238962461953757160591713161261799676427294938625781055331720450148871954950903945950475836432127344699546549629263366583137911866423486304400812501991786802506361519198068100147734668292532852968461130350583481462579321369625468700840266510835674162649574450574921958065708821973038078117220513787914747706725554433009927862278752996007276645412982626958174913121156754043516442731661237939429784147387655535997925946054344474568350113516348998544027139108049300922731165998210533162003338921978560777764209901526829730428527967966987820368119071611228380716542372515015866471712409309278461871068139201853344220601669581580097755517227724825765259445279924556669226442282847677592350995552554624563400120918516269909950940878037514474744475223592965054580150507732859378778893287288374223892791982361985550526070476093119706706798533101055033189523001748321614015467306862905607139206292760752564260769030603198091121760348237870299670404738118495871419036668794500668478826151023936330519288482531226657947579343000266629629387348589647488569350193993316145396232676472774674923834366986937684775127256538259203093565110423011562097471552172477082544386777582638465768311539486920045967710538624103606449749802754992064682839640727280460852720063090664403441541424245986509936723578297597282501262849642891419155638954131729919673432758677389006707183811801362315411622638600491522115486541954703645175616271220029068224043763821161395077266073115576625204489810997004735044567381194035928938560051420603053735052178516834148371234386124371290928472565917941211866917525454518219543960311017911742536927958776829494888882167463803616644481937356702608147642885276414482921018505249847606419746885647575644451699929839330671622811196413546012268913525802841698143814235147063208148683676774710248922330565207592267917838494060397280835449782882005279583473765782319512429996876500307937825664764451888023779244698901952962454668908751307492438134645681285898322740803300112696951534776286725714150633798215959617540223366361980212820977613989944461532938697258605135123298045313951400484318119747504016948424236666121184610611225255600038472160527470143401720453221979202611561755096661663909066002718373902047255894639185640635824518120132764479501734651190805399468748694548241717180937166357534438113081588794671438892454845114126969320938513547633712818094816823712856851504782230257866855033466246535908942343617279598686848142429741819220669167058672238586387883676748886093269127937482276295138359394858165234910051297487406447495290346686500028821430323285642683869446300868332343008625064667408673961863679804937371245592043452840012993451710014709669255042227791387944963192316018688041036166505627070162587638172840223977891195704741388824190798990100839014705278984419806165289674657900715704081929349060188050573858470780399912993222419470290539138745113843856208323253372539615422065441182235747905065685223495935936401337602616963482818912611203519651682369477165495773779156321886232727356529927435322815302813029309043942877569843247294644408963497119160298592086427275556276441767933937789721893319626412402786365065944340435392073089140067688809614991816448262128618468235721746093867317418431158990985761239768037418274061185625659986488354932196076152331343472092317960078332103690794342341185394784688162945005335081826715635624300123694594355789193355008497857702362219764027638173611446378316072674074096738714184473167652241410966223481472142374602985114740157155426008100293544220700017472991285260892784506548185447672203727296992408097823633889555949704339344612219153194453025204550609879371713045520476144051734102807937168696813219236403942429127845950472703054184343002298500098034441107974062032551747021118098691785261193313815311195533953893956864166261890194894623855502610300873488261412826111832869144946669387247774024290135157029353000772677517325049162748459192076555121116687498049713522467257130489285011068972124844082332999853547370012730274063914437387483205980972695032957119782716639561729081850901104075622355959308153065755139217014182106477407015947149276465594972824338186983888706878288276490622776580905038061565973635864083794468257400033274074111948462947273335253041062027670379839186103668596499241822548171867150036131471912897011492445609680375094592310660708735386557411073931766109981894083795497518618672890238068924874551690928726524283274944026290731168762786635863269615094319346793306415912137605245627384087372442751055248536026172126753175697524852647862349195725442045869375442947884256452549975918204564667172665691341423560745275798539247797056350579309200575532945756863053707595204925976979231206067725853799773545613149060675255776259460419135151517700170690966568946490813425876241140731113967456718074167676572620936925363381171426221278493434766053836745642721935820067330628266828202038579617282701362289102208136364446302431148605759586587926203513815177389198867012397506372782475794333485076940562258602769500306608342912878085686420978492083417390831585107849515071212548021423806500804424343874640723453303533631902131371222516105365688382024275782924607905127948665702848826636451609535611979588817513039481699805897178789556350290440997742128323745550381300090522922991029948744790983353719053337971845210046137599862840770541363562069593737603991350571799604028019629685178735037132421209811623818047708332898926172785308540757906050643106727377402472875081615256906780090298002986902406278766409153177655515673347844465778327327941353955249552594891041934128982163292594069984060410811588363019756730566234703165476131642246154361538548993623660882512862425179351985473879348260635244120850782037686411492657169693587444607619535212471108143547803244579144942657476291620222955309610036058559256369663010495348251520787046886188468784892099596262432954767901529378643246611929318429058118299489596608050413711513176006646028068087422549752473467909348756360226592503776937567240504318745135915796147709314078640893924507799867330734447373331649445980135784095740155853653672429358205378106325060177672661247087699259617218332042637329816789396383239283705713296084185624255435258780617629310213886332912707412373179046846573839451796216602097015102649885243661406610456585447725157175235368402185416407732554959533907029699572317591081394416044491776394168867267178906182687480281933616518715575560512323197081029682681686097199591296619108968359715387240247458924660551421970495307114296031974582630551468747182272618255058976292681732854576956870338450594897942763469202236184116444428060854409016925254551955260004327873508639181853599643251288891585148582712847385074170847157601833029037277087962639511097375933522008949925827685341608078274070325264487294662612605779481416127593516625144274007446984591949580646672334142005264750957595372354725902110931129984116877381800381236020577332844068481274037096161490877933280129679277017287831528136716162451366149714416060055796770853636387540354163037710691623125070815573060055270444946756131134515480275790166282026996840796814497064534398243291903381090188036064315845445010236633506289935110677773891440809136238839944155551027968727339582616405242307994275622194054099167512773511480892330744865957677925455815462287892827921251893589437414935498385964503162105683283301142366126579002013867209084828263016547822725700954758080224110130741427808880458576072613690688830253249961125916099978081080573247015036287033318680137773871791384177570916911819012179926192916413037333600190449341554686690541131769285379096323613932925505927401840065008779973192385070916536954279461824461260171159072555954381575443995956867939788638878208290593675540511831332865004762110728640083554707722016982798484330186197665193492943586732157973695762038432868117493312187084699671692253784538462585901976638711718039956152366411855598637556500014990202386753683825556105944341585720979898903605252406164611585627128915617281743135755192122705735586855480019469698792716248892660676501367350440792422115398014116142492308270268746657966195137300698472134521696688987638064499352251422815518859329056639776853691479382798015004084571534618009988946473676746839517011556319786161086669332539852134294194040397800502842910709138446163414490042817527689456169692414746264655441492825769809006028778605565036976950881305749748783273057795616232439375372364484986494508132970576405304506322087145165313275325422614644038841316259460891157340823293513506659157269953340001080894032346514956418013973701031450541327329411224299385018298950647434872094502920973343361045161828665804122132514196840844108460205050610022015978849061664783918245676508638801209433787103232331046047846766591365632948280345053349730655935566429631030680076683377261483547769234459084873153582653211129224787240349314642697955946521755728978764465986023501178204828364723033436834123975698153266001572616622725837324807017811360328249893911836513690478982394997630252723439637999650956128865197253832516287042616698481479782620224558297982348618389302545757691377969046682135544258618201137468069220166384400598696689045598291186114414783469942122479083689622616188181988646644137776007027629988210655293627420886529037482039119091321079758234689611238019030024066818875639416444659111211096492393316371786313585712990003495955900069247310835670320717773346235002995988876732782018175568756155294660681133930962595049806704031669755850013941812668324823311909704838587492146316878167230634203430590965305771128565891360597117873971086045114142911498518075332010104762348004117801340671466116536462632752629798950634277008449244670040191366696919145208006668198726627340116426109438655758516559448014069490907966648426483528030280366595485434629380228090278771189402818196012028736883751622063771201908088499421564511677273526388785348714387001683007901114537095760245554956565368473263346545407335542369154413542060842625905269257519629800759748762764968307143333074763949687907666043519992181181223450418049337322710087187789979534010613577818583557774008005553894288610035110973850711833930007378163235954936838183550394008688943430874098768314927602141873579495088824199218512297313232061154535103426207011803492200745400659807671568899507552870038720337910418254675477448198045231402167854789186298243923958571169789738811823385945251312378059392932308498555910780587175775084496020423141800800183873312803467878022843171155544390438549336918034238196275370337305019383148548002108257419846681664630872172985682327294042505930281939675180288892868286792438270451891938806117080544916335679474505995752757863370195373191243311867355351610640464124280370630531289688452611310029059188016033278045771718918680471444138241168944280405332699205301567363876029781807168818983134940050723892234364320929794249119468725241392041068219455992368337946992527662298257983759170272083729214402925196637311303085619730912831257063875282183342333850918499252944450891498089541245424664079996254795714160625101067832974498270725253337949850199650675431101493170966186093624463183202897216549808412205194463920924065241104399651526379682110249317197773277750566019582749322313577039412483231669036343607942964725085479064724097284593763173290515644137128340677059487580645017218499645817602720539328729130574593900205694179364048981601956901766817479383660044746930998851269929413958970716768093475286977538927156911551388370047240002155804754725410911562273155648454290375814760488584938658769876810567819129762049479319759973986990612227810010356147620087363907030052492038998347874893209976763093994544880210226770042771570044169068758694078013364692167160588205965510053478703576021711041482275612421254754790329445751505542534150444945413524371835855891337561107174989123747064684451112654653736611702709255747099626664193402860732314950936838768850857054242454744635012134636866441140224141131993719950255648636923524759574645182132634047881807887293208491445460650785667997696084587609448578920407714977698543759181980999478072725940316004882615860628468676057823002546714765134198803340208716596518901437418721987771164191470018645154488929289909285125294564960244449716050542016364056133805648562588460696077364676228387093622387091998870878560594111786844900182691119866319267102746640550590422904534120657478081096078523900439555603803903339764734832926458892693109970344875854048347154175542597548745249134713693340710800859152833216320217301040643019016199815814681972377815101200105414605804273257949529320833482868077538463728043841571655997675109105557269951190139975285952949453580370805850649163594598372117879305080671933449781092863611152152931489444558626590625238159424641189166108907843686981331399602030931377916161397293036530557274626138398035667926409648628108584398830832834616648848640172301499477026083512771626430707723254510712327665552641628915136074974619848031990856841928425536149708601222933368020354473805272481434303710914738610655428841300638741138170312877783990164763586103399707235138956201352064376187119594593792605799947400600493512438345702108348594836811860496310118774167829638104455135841943342936532857825877399393234491470350154353175509116236467083305028451860226740783348803804295149026790878435301178634361599413083906168310693357588081771691290799928181153632499725346879096265909118056554874858109619732410713228257933324685460484991830042907794381223179486680270467041648332135626811147647529958638071425943439862496206731607687917279021371990579555701016646610445589514058308727510565919553785316165875864248839062240317577297534033379346163698162080775698655571773661580179609481539339884576567110832374510824503664293386968822907330092885968449003255240787190959260641864943682734139327430075411803038649433291268098047969740051750025135242848009778446169162946120287718043449487288898081611375615239271222029399113134338112096440422656856072913663665623394256763761273588920751049812183452286058944552949471310037112441804846415908952702317427325782397569482045144714047032823111136787061483068307319807236425849838251132927208491587836374802488423594893901763528172302582009970376172221022710304758826274269394718690203246612039456474634490143161864902286793188690520233360335637503903778350902056331912731498856017351196088002854870118450730923879616501408462544407002828861862922863574846505480786786946699860390939769554757070498916982260514974583090736534989397338924862286362827115081523213973217874297198359685053107186796991874591278625344564917848412577429833847059494655039277299822701302990014203874948034345383375812319375433746911119579162868059296059830061756897707115905720754528950574449239427580246516669289952770485722085218010361667254678408728248388041264687253259046870073268060027497387195230927564110926303360910296997776967331966538841237952617516882230222986846967802401441570572250791496354957204520008490976161296014451406562958508097207116695599295670796649578655202698364838444733414828045522407150720070103536621398439359823681858152791330190357897085404191736114701153884608408730491612076476090207673453031421472494424121064548500357583275190984664234550259426157803402641833627522869656040146123116150856701288001555880783749852271273743057274160333751975387547857851741203528515494296603858381097782512703299420349213543238097811066678068067725626151462560291313032374005142789330709722061289477645570291191485354531296469076973157811927851883007788460677216415812664400653660034929333899234079434029997071033971879159713230663394449489888783936167305147474515961558502888451931588305151221849238251526204353955007375979794313634979011260192901913562221709244044125771608146470721735249837322559791925396846280189573236578261357714039534913376477846176134252276382114849358472498232650130768877032861262539027098678611672536916067816383854826609708356522720458696409230117529384055315010578546711393946322843974867086075254023138871022883802351185809261588934638556520509282157859168036510269077285938771854275496290059289980297428442339771121791204444138866727211795253487926090566107061011181552963411746019316208148708003774535910077708117254773836205109999802128174159986127728500206360188409421115595877507034886718964209001458016624409817118461768450770238439129588469947939424876185797804374379166482713925953131086616149291727009194642513524573652099754279958486671919236742727539352482704365200177568821739827471416367682989628700103534360427468843057353984031402427238372154142485845392336041739137403681386944938400944496591398894504464471556546166733685762854394657821233322949355799733902248101981262497489707527017510707114904244208382303590318213619410160886260889077190298659212487799122347717101079906344934981997322504665146420587237329954925637578456308349078827760756399628336926815868171066311804439249337972650154582547207916848547131401876024422480734191772244252808891525095122771112385344990470061236654875256772875465006832761402854853939987753316375212339847300525526731547444346739921300585368012479323129324916270880768407747524874516947056215237214192196498925678711813281468634976973549250967672445872743168769209926943366289166239692563619864404184820239073434324475349734609394156297167267804823187358527162421253242545855679292755928054506774061604723225685408091657613432303579616623547483388952171447172905342803876660225286643207455017676390040192997366055145067160100114539710009714110495348105182091646016542962376630724264387669269047144645982881538363312917594118581575598901607599051512923518943965931534180343590900449380041380991916036923134328995714593364237284500189317808759940332454984821732553097859536642542486702551339792166263312458278494247779516366153860546583495712967374370764697550716374783510036383001898614232194723410774281141491072825393739389096528738062770736338503398587420721445048557296686768560855761639733079053682014311676426338053061394456515901681942472232937341891249264632690065506474487290690087013752493412324194154967217061455167601914645474460266940469241625153116057812188989684070648718526392042617850816071494708653443491188663011412367811255699152341336228476145158574288437542228744689748132501792032593009062806728748171561714373607663235194042321690596336998969038660456521166318836080863810619964732223472771474324636859782890499075387024186096302882748101129864204768548342990270291109105619980289802377341831087967753169556315767103358079936291755437154734592051363098334569330203595567893914992354371207127270891977568774141589293793852876177423366468571929180877728854792291639112248568343894182551163623859137761524838160019744124745944471750773576440967402457908304733904444584274275660427493938532535205497828776645575613954840534390167184833166108269449619596004745881632123353824604946178208116561858178994352698447220097349824539858383757539131872766377605313733912281773723852063657739541238745840499103344602823731039766267094070657639002618466245464018772423581597652890868222140126511332863495843632409616789356280873781755853178879970988443068534805477269889235444115591924927085388626960198826919847652130478794975720326911451968720299662986968076709907845655770588657688353187023667117845484090648961792734135819212410395728810591292456215210796742414357577441644248878288352445378845374669353826209143723525618701826705698100868483180950338010994703468986923017113770602100171728238999324908336363471384652301948395996965011452941085676431364480599554656443887135686722839421172327784763960347253445461441573609947156303196932371125028162770703816640318706400629711547917199101708664667391601987202521978858709789261656030315490489007076122858532145749967110861281823341632316394266858099448994715732235589666779465853972343172876149261702900988028625920977793849326800245271227192300265825816565541889419508204914585406345536372531897767687874330632350507452399761486743813562529589214137699267131457298885453807794446420710771033153836158824837769667477099590523409882646556017254728685433455668109487253218707008790168641362608070202028399375111029482608779813644007488734397106986071164029884384073232514380914229530940784747370604008109342125780596160607711852085857514009781055989634338464125147320061145686223775677546746092511715424050291009113821171411289015589144135781183785067303527780475861962419644588519693071048053605363530005471101346611848037474610479810710095417777412421076153230809186461880055076585555568827234123496752082027613524908644660725741924780324338473327012006448347536138407961623463320728678980656095761446846035127883947316499542034389193356859032137251759368457317842094026701664064074557088164326288789180147969034415928910301469303908663115157282866965476747408012072573791679661624025366626880690961303334716048771906867459652006563546488572305879462357565768541066577629962375794017634761631394554644746358599317863676580038314582464833629103006576420812020414870809217273543545306107480021460724438557527171305861236396499118691134531064430554714141648287296528335802021384273127723004954639744527497915682310362784825734735311330942225294584474974788520918224257606756461214026528378252827099755200877623086818194697921417354945286238858160829625631592382454750586095099932733562506016786277979856966724465368124887953828659166005514241559009087696518127821426127761353177895039164987868607187962693985228222187215256426195485545178045860351261547608953962541628324923379083602361194790718848720024743188873238111067434101812864274301887628839041457528863511609774551195321834713566375072191329816881784644917607591728706535488133278830163802785228092200046644735461110237684407421576377349099170725888022591923938819850214883806741375407954693885426571885168304673589272073005706372015710405897240724664577299864671180017220217657771109804038893736437298075340504941019279964211095661592508093301599034196114461830688413902174068775555083948643189939118089561663125073353980459031935262190653664152634473242786357880245176801717091379372833884173209556663722481299325731176711934645006248127388964142680630918113832279554100954325144278762487774794652940590849037958552358675691648141733862172132481410243390561002129321224511175590847327955188639753295098142323081590635117321654303437495236466507423318265191594972273379899018423916238546063812814462361133500595942518523905743387207140562126518065487960041865311089829380892214929301443993924067231188743135384086932067958914276790737921282321855919199091647170604415976387717106814498809149914004962876068997374598559796702806929755800968961073709081447727192146347316354369873446946350898953358764982436777528821860985434304787036657348952870961280613409428115537013832915783968076936388970192267815309729021725781571509408352845785219690872395211916821379156138800725041890887629814541521146678745110974117768788938132845791323397486754529048182981916502676785942083001976070387529787839943479477412876877159671109950016410900104891922331753093887237700708502315330442713317946384638008631074324356602160205197168692935342151518943513214019352430041105098782176774804730434159494452048311844498825323310147165197687226254135708695451590970808621979847515313578633842395162415954845160939166094347512440497175664931145798367072971467680356694673145994845396739348052352103926980476547824585727448175530863559127675674147668258147800526575308448250973130348892486064215797584821323882334080185953915556217393634650848516234334428194323934225009329007055529972769659349486185910226903626394020532542102237325045862378298071425081706879619882990905157022984426413374113865609079034354422770977779726945446550974236421046382847598481007024099292023448819408107064666628199038720148514600654914366963823627254976836289918258623918049996576938618174105222544808609197574859767535348088196013735443071837869656032034858956085858161483113204599652836668437978307136349083816525308638035087873093599370481890000297529002694187826617866403982662586445600657846529109046915778584526657517288750492666085683509862430319127162694295351679788368432094891266586710278155078990236529427361983817819683065947118019225059744117229864920672526672429345157509441429463912323434340246780137899804960109156270245409377179288751963835989362566479297620931311931338627798638374828287429387985524830071944268290621247852118179867958499514300142553964214524316106020823659829011788812984872725603453932681982398634728402923416256178044321365788369826707168774931965513121707760208743144602399104865618446832743723312110825580108970671140385925795934279441757311845171942107215808702374265128261509072378185698031275458776205368253143580958294314066705084251707120551816317834763942126700718310909257466010956596890406517380348183516958286142363299842131542204480504888368447303699912450858031355358689501350829280280915273800052191424005423172644550850173857261830334372618071028816090077194763334944872156738112435204331227009509886597983466645039286372397145004993779249274484893547435264781045725806870858487061479275865732113565653148322684838202229754981870562402330491769050665404597550266729618290769269531427061026670383995401250033081970731100010257573558386180233226885109819699524658132411812982287464464664803742398088713812647638266245589223556950721377153238381968768037555338558429023741239688599219761510969010026346048328869373520893117935922708254401698584275498517373421724523370795249823538655949852006659278308408152196696527157836355621222160452685087391313588257765242064933228519345155850518198470754461749238731993439217347451683004319668560730020560117619083965323026917571350020220109827143971786307451876279559771254611836854770978478320695976989074528415775620338965690308064952429896820124351249795755439338960926893375934524914876979044556185289287073722169750860196714999419045164317375952366751785495855267379230311627147074960662718946790785898796042709438615412949884797423726250879012161222850392048135579402632855989375015793265047335672142313242484594485285396188257492194105444184716591328902161187477596201058305245856404301193534930574225639534410896077838732458614002101515144315112468031425707605077837041539770624347733922286192227023991898357978827626681518759742849984976797552727209535833543226221275740692937999813338849097798991602564322373285735954244939358198540364994437787618021171166692290304243845981814884247038602672175374219932417255381209575872620738686463346883148380673472041265594338653541454333956760662095110670371285552168217231945747928330727863172381179231383024316926526830249239908408916988011426493731234874417835412200625681973918319693329216757567481039909822612146168714006921998012761037220049109337544081320807334674251673664882851811453967643528526936614589673076707399114918348085660064197394628174766299943534839238972533478241705166150867095073033990005490189390450559134125775768312304319808763510248001717774689079449517431796042156334895757154729055838082491067348615924685766750221042137888807323228150986593844272971787028889438025140284804681130602080063337618000934164048015991856935384200178579483734059482052768394222189419220452966561588930075291209556923726445554558451989130187518872363400521280169552150023082871069548202701818738859069079790555948459851175443584554665897532418186311166985854846650025627847654777439485123795094460146118710240522612909690384141109358561027679491592880334935055901092442021176573930759714180419533729267815922626648884538004295953584565860196333723799468410068118083965053315582343225493390277190976638611772338761469509933771368552898093257093490242452176310210166145451305336769010839816747237112712170292344966681133343355339841437786898034778068169173023243452652950438186790199516818378043507517911817359076501006258390170462165298940056294849678993932029003403074166653040085322199520038608175870713437187610574651221195872611245182575243059524998785568846133516646405492590048149049608696500105812287778018239923951424676253341429587234563308546431085574226811649548193471822468723914368744216958341638798101626878791704937023506380252187432000073483082940144827554565505728098446457005520046594265091405991210436157826774137529765604573585353872436915355242887747997086146921311179587574400237236107142114489418273365560313390527839699601581876818005710573940710680288506641385291025053830408374766206751683945869633861234718843135607092817490372722525521068280207135209263239282166828849653533515666666840100235315577739261846192083885656744494493346851418522969221225566683534326493840983869214653318617774891736374316707946896178731141201642788770294321604452931970087603321988224195176944095828934192514516693310964354609665094157938973346042796781232454675664589451306844167522416485850457122030206057181936811657361619113688876545886485812539934836626666686786271066991103069423463255795449455906880459926734170456932841549908284676223429682108832230374003065353009005880204591594677525418969810992532560412313436696283116201397884315377741286718453433406940169922020525062715040189551736195225315362123596518891029320475998400173877343539812146377725302599843961720917533231769858471370512630986449205758524126117535803238496547884003800711961140345153968111757956772507794798162140671410393906231960696273646821526295176019805287447702648465172238428601953571592387176467874272468201106617837007870425839042037866607781876510747734338829969473811790643811593956501921365434751608656311133636023381753546516062836714846841422941163357530720362485860419659094723535007211771490600511467002534665275329602847063979835953889024424615848032806974469436188137041455073245485277135278511427487524108642991938352160634575525717583785269655425571562482152589318268143728721020078406399664704916457160012684548650453263895340883235914799266985755699517784918069667204027388716469858733294485013675468532321106887376741452087936315961443417225538137311605302671217684788801917038202173436533263743103353137371951613558590158465531745844713523608266551605228025341119755056789812553122613589189202586377157133684089093163598170534008429713245140981329059663622462513326738366784441379329663566022972858602219736545773257554693254428445369867582799670087123926632233442547853728766652231636298490479137221187017300203791946630494014072218356870469359111636078527777651757804999599006934449213773127864726333663965852024629056456520476845144964746554664339844858592876764758850344780335053356625824557076980920729507888992633644552821375058543201316027112154406422400089564490337237609806913038945360529623376623950929662170513077523426649476565831844267413341239854613133889421815238265727759382876843638620137838403136858821980936233648813551880531136490286187042874987035477178858360046655368791888800352498593265731526188349772919865811337540112604810768062456531717808186473386613830907735210347468758858346663777512969059976775672509329107450466358048529761870755959293417227386825719964942434492025512802747678396205887336861192148211253851234898864229547540536851942640146719271957620061807802133545529282762449042512441823032074943080276281239508582397220969664127763870571634472317995832812008172993260339687276840943197174496195915545339877515324210113211219774837193802793777223032912866314940101641464671212714165265108297566273565043742630452812599823834323141959623674700122616768131199000046728030025281120178183636971325174129779103868906615481797574492128168593082639551211367590721064371652585318072244722492956287619535372233041644353099920396633086463495323928410318330162266055590288175346887487490486095966166220736349755537397782111083928022955929489082787312776286297724765299370693269812118175182466921255555582483510824180160052357578783188481828901367800247191555940107135901456462312360862841661497261583560823338225543616784249077990105135811821691810506109396233646941530469308151073376378750492540726868255166344444527914395895338676032834234321929825011378508720523439211774446657588186629980028065958042668040479402858684121611796584214213049076418613526492629662213800831507085961764406801223256328926743414694939821176554325059282746396609348703226766147752651812765792643304203194759657874522410659882662075914982223876075318400337437774413793622117640879949198554382665304084512872692302683942162674329402687154176111001276345900851075053359985506265267722281727099009914796961276437797838435654368795567430361166990897876644313864143339058352668749176845105604163218647517814185288767281453479096728676357989461568972659409698818362172105201521184421803410452858888809972942043500633314529854263792500302330040489975153863669043031414914198819913079446429408025151980177694231133660189208793841735502674585164836408129118738480939661588994582971420817054869606409325404651540238525189810912688922097714002036273475205894339850069887321790600999574655347939009610471650655902754708417586702924343975853342646490104699395732104293176695514008127296545134873986407538103588218702829911010172308134776566984657530809299668425446349061590595307633982730891928988186607969040249180643474223321057136415434299354957397675205822649180492604249851593463264038918118184145924668536069336042896246359073228139125372737798922033700529165449041535808458639072080538644684453278593987913137317132523015625313650439084546651088993447088921555529681732813848387099997804949910662617286938753041276353125840750254835870490677420370900888343465409150325610234051800658383495635730492282311252128333211463658681026106002545622895118253377589506175405213218007712238347181825832683361656080831610976297143953011384458602099915260975716447327314770640261304188922611303133143740017061640767748274805152765237754038220753278648498180164312110086154871582369727163316614651238659385068435518692423074212078044454358782751028510762228988644014784877585467218661508127643332567935281690136295958955682513507694125117085013415995344651399479766969216664709553940083907241526942045017713937600879593288452163897510798348058082986288752980598460070812286904120587538188040462529904440651742915196741003256691603284961221464641491053949635645720953290110392213330410042925296800477938055648759359558830310000893898486817518125141514851899096621056350741653025299795931854303955063289450062351523923421420811114056382943695933223137707531956568380774927940018989917096313869297737468330576643734406857650872747849429831463364385192621216157752269042808341718731421837347193516438002939384219380920988422956285524129049082306559278117045819178649298148895036561309719092497736487672088215566751892403151707624223634020279427552159913472491895809610507281271692780271158371199704024686515116815088564254658925696303737827927600216193189047018115684472533636855761784792332841239131802971867461135968830100160321121479884503118474540057211223252922345446271504376342927514875203338182487205305276929387543789814863208761896446022520072198533036004551604700540303160915909264549871406934962589243585155434413367510031965299883325172880282321592238975562997117306244075056742431816258398161785841865726637926836845567649219331091824377307584256452811661359343407621754053827133905842323211190630672830947230337014987020912275901895473709428314638450495964138263442623506702108107059475969624225202821830709589349671185883816824516945059016586127491437158978623495973088623413849904054537949293310772571252748274880784671409982108389894551821881937625975461165158281951492835452546683742365159645773805608276386062848748133447656174749928575802800104132163904125908034292280836552876208917029266419094925441462296880416666650548643018079090517732715223227251024822003374282993964267408798205006678527424692375058513410577637404417760378997485989904029236601879400853927948011227539061645455478999687262955382023517173798636063723155412769865383677319143619164059771595934694855423847109324622389400728251668234690024033442161687394533886080794771348601101576576148989265592114854657286722293125303896722139041328261536469433237927328676171246437722717711415315150413693487811663904771177634269849927730945202985943259824613117274118536407884193663652292533093272927408425662098755731862348879918983421660656377124964096714030430659691128691999299647702276433426594762654983619581053798628167927145657754537184971598645314184145948662128294030993951015737124649370847235762833395193800464435398452008387305688359340134663254145808075165547144995944766767604941751898222044270030308644279494939280099954690177082257373764247138596488049292505016985339299565850324867746079989049647675270871494386628535385063330014043319695677347709030151353207224621887784895276797484068671870397922469407875413008376042059925552719578817878234355584803402636705574349500775130685859830271311366457945361424677364415710655189451942034654817318764854502043365120166987188673909588169517145741363050817645057925866967346049023803088463718019047751353872408383688644441515980926767945925824378469248328382320765426312063841489345211350642136158041513336100454669532042027864568567567719043369874867834028309792577333525135816901416900772578350901056638444387011294351409335502491068702521889725684321132286761140267398113999252765880319563383804024476758481537142068889940363112572571355463645382574422953891925188934827467491747094253135331505663433078749138538801620825977385496441166420329587150252382408697254762916148360079566688127167467849564722557843973059495363480002789784799027825747703452457945997809267949549362024596507672212276992781434412331384424698523013607495401241216718488854469189109079892634922195948676910492939641951934988361499968741201541084231896967665016680042814453909464633215732766077906171476712027119561652478540117071122937879464523693511666942651213033586168493601964884702211479635503945332454483711470367377778536434562581186091251878068581360099416324732492061319081918776310916993688500952399344893730979544692677762105618500024437443261980866785928350513638633849156893862086527390042511155968755293626298588979317007462211707063592368750710930220697549092048207397139836806885780086480959961761233546336514968710721352658216689748657084278264391740657638828031725948992894289201064672623083890485104583858708047075595718690260948373278112852301862194079952427745475063353584399445311154574277241114510013062866675776903372699495022877691247009795541732950856139110552118543640444010969075931498513260100164442142352726054999971106343615344620269609103366811244372538851345950726100195926268644298688551202878448957646567493887310081101489250950563775892698735803800720796514742734311795045345797070399056486080112422449978985739923539276098965996980436545805896142121735458735053409420468517022192705305677801321456053982052340048266140612033781018607674775212636403354045788411344019634547924039870158150682527234819774863404859742669882098022296858193657450224851955317052613635771118806586814381416396318810045815590118820082263918942332765704944305743460296463349531892969102421082939962735682119351336516310282286449279490267284143482647209944758979912168064571643814330229957202382612078365787503965017522532826150192915717275511704693029580670981986372153726954052074689787613868906548627282650812434099582875885293234747665340168123087136807998561117647139172512802140670620591222995411596892257268048099105503810172815252882538195744701880953679136499817711605000435443536917532486433405073148526880665813104240520699558325059770080149893675678421483186543900462226801237437414245786325008903850466230697912642891481115687814907866542821672941977824872139406306288794335983746312514505867783811140865556505846065119291922114089680973425053465932381926978509746864874573539446614056452263518244510442323361350339175072356067286737877068490822710809864161509864195647630530016582857180240057068217521299990848487721966470945482515403810079037472788477076386099221468175448995118391128687138196632289064016783868871188555923584834594650175879707890535082715173752465464449807854189612940210200652725506607205131987250671649535141891987230701295289305939154411439384058332539735644750229594773084184423303346839102778357038202445394685819336792336205727341820554377924376331665283943135383703613636898709692341620412333926738536743473924840010609533408165266509814127170900868748356157861756953494009140093898242638274096412718473754537274561302534977507616906011471256641755189907274468999898191514662010057605903997348416883179928545280806074320306288084157928581313679949494741983305568430319922811859174125323096019723511403834913427714882958615130834003551532127658252683331480022962312320370084098212223477565923031819332290511999838868723737114454676134196716790808586219861910991996635094275814180025446702887476796678245119091270920673993517729971955891616069283627844472727370291188541172312875318978297392259311826591620103315420486998805285375956393703966350986518449542228394368245240886584012591737438901720378811416230996497679043122527351164883526286517070179121198753975136322410250002204516801098661545423104508054290730600884378004722771010976045557073074127549611820531291444769386769811017840915863198634152423228215102139361525666056273924722300901955934580865364253821885393273170449450808516010739771132387385261527144364495427049900525783471931195405266686330770455107756489041857353725272681255941576609411346736895177289754805534419966631834235351619538288495084275576326568952815956693769768732160286752790888290124123474546603632611003356036111230738617497774204186311052699418072918768626391356391938669915719001546056139346879642512998242765559739730813214421671324494944538367892085357822333996316950104831056309830325746423823962722566806031577023855313954018255828482832054104166793871280005917299724197341869651973184996110834137564331267691884406368806420128393473914673895308130990113515890236615917751995292098744883813904472058661279024666806910195893778482391082833621163103185132161592438974073176120291195956844180316091127851746261051056100652591669808315076301537205916433820221779332542824852627077125129341924284178280763213510439724374902041902155339530428576125672972343944668327114353205815236012281044974993821210711715742847460427726108883062010712277836924937503538894543741746463572224515506954444297733682277398364453511394286148541623791527135767114691653935772993526217602692300725520559086209802853951718380314330511346568373239572306266373219285979046099001945959601660887376668029412890772548093381363669222570393662547527712198784399924049037761511197278814010216438881295951894317291849924589151944290602074657870237311767082437793595590846141755435756373017647146157903712747127033609642430070160329569268777423528467666407806317102352809191973941143953831705147171637517274263073194604701712581616572860271430206489759659232471200321062065130854138090365569889217968647145780605503954773926300625013186708508584404722118772035201055930850113943873857326860435128331817332616612067028119730219227098290390895642178761620458177214395158937903433319182300096248146298784192569101907791073569838511037288557722585341586413611751308628802276814264294966251553846934857256011844449094486370004178697912322252977479984634085666677345843899510267755182452985077910551974211111247115044053074858866190578674198132564780893278514965157508700824511157907156400672106469174217701994117958641595018523545490640533233653591941173543828186458489026774269013348284071209498679968861140608059782907629381438014730380577549161205817011259995555084934849890456138180761613813282904209148340485554016639553033534266126116732536067570415701122327108801562386667705265550490717323782002076102860096749310534253597785712234328273310955662257132613036909664360847164120534650203234890800547432812059538327715477983185141526331188226098043822483494406549381925811789663543794322282545910092410854808649435550530317640266103788725384273739627656171940358165386526954384117113178492779933543740408337435230340229477870289730188178894625739747731564798894467666103653653859301171692840904253501763473887724202458031870953372897101932469126938014536652416668581279250465279173562084177380877768263027425599495553350410203180940987171001527518544809421460131317220259694150686774259022109314462334409210084264677029205997641838186579110756949937904668255111292431401312605503919443968972357986852211984210524821670235960776326323341703609012879310851383230915838202709438691515239266369495263093440687475765409040331164256531802996073748766889208497643464532865441305234379899426267119071375936424077484019343323327275249422702519240161514297915783870063401791463400166443670845671593732188462229247326070071104978123965961769821798663354757477031240396466551467356005544117195723072428779281377106569856910555154734405383276035305302604122178132067413432571046087278313261255672651916393501276905694126102475542247166524480568540538820650975027711315903732657754759110853046701518280078689399533633848062869531160467268396132167560417516068211048978427102438836541106365681184749255151613865223111235551729980853973279600889611821126447373600536722166752411157591429878467709310215075072372426965554810286107317705772806575035158371783513795188464457585534550771534319873644742751281604297171063595099566542783601684479615931904938051613866969492209254404201581603017586128304727597084078172436251252498875118392941175256255236897930669424273523600171320006929775446523149865974366512569899899456086247465459185709677779467995894305722618923105011555637924434720597110701394022115169888090628473088154555051162224624056418384127646446359787799419787044734652798673611101347948506954464881669535480089255963891055120696643346938880698715576662921129638766568493517382784103176467592871974831306351664977768088562877574870305915796572907644721395684168476862858509148073424030863176503755995058708537713731717987008015119890070342367809718056139898116837734391402566685543469126026785298316921925731999111075644418950529152034487149789225276257214882847048433850389478407003818534480881382841362353023007090936310028364520236123409431014872046295727322034315857890602033693108537263211892008866349049238935984061390958084445010571761770432092171928532524001914004830091065256838409254429768046179593529005358365000789792185908017242092830027690623043609900654850533083210782262660479634733919278508205647987833461539879095665552351614237377074377906799554671957154455305644084168711534061353196543907865932122571773199207503076831665357174116019469604866698156392106829988434405567504637850928519673010538811692903859349057217788987097220406238167880524756151557590348915348918780064469468815572620519334327553938478771211248808797217602375976747667109843221567921191414957263765202928929883482141127288420732507666055671498057535623969362438726317399512824676957740851282741002925752739977616071863283807404507513494740665669018814713549994360794103717808614100724814760747285802762897523710658553523118410416721474307365242508893052798578452321670754844194396549731489871116144074448676950528230148467066355329498575301088825233989296853744799499647077332521768324943777994059855087358538211341239490172184810932078663965194217048861707974183527269174232689634989834669276714327085372423214035958746083005223035687793160525078502796132731163967367003889785063851062900808870386591899272681030865182379262155313488931629911362649773847967665001357154414726578974179491998414609552570504308238694656412495250823342420763731737144943335765913487037205701289414294603986248997681173755876903742443847559175259447098830091233564246372873585365249419390906348728342778164385397988353057856252737373978445874157833338443851720142719976924111586218259821490467359235199325010977775730421838954504343051673735742769207709108034483569543388278708429731700765225495274684391304475714351206597862918416375327760575994182433640420306498970977318988595751231659552456407723482836595433649260902222103446472120307800752367526722057763858275333321877169274918988855269799254858054515563814335607855340341879364738698186053975732313757255135789492537833456231855240864762537671724637307507248231373109969250019340729491887017764373484373438273714479073890446814910502594746141827775019098561811082976031897063202268483934596195293949195243181575125829068889711171518702187799057006967067167490696901424214396701910073067865927652824546706624314898933448931871629594385192033240157638447285277858513951223644584212171035677467033239308702926247882137077867733717464373352802455229921203905231517297391387416234532073410971318415664596150321523643728337789232147297453303700729591445615139069227951147405933046331231071286617534896220300524173887937572970674816397293615617612094030609884750237394916289389914870790009631864982069535653318554128469164469317497807713562943335348804868341101725484051799466975336188742513228464748783923086092080939140348080298572868499287546109407077187450821645296619038916815081500332783006749035875014016864471556279530924300456606700166096580357772580054811591136647458545497298354025294140714181396361696170901491221717426914765991711201974813493290627483506399855309097892718757550781935407841679873229800806684661391943886415470360804332450141887196869295784038740249133510007206449548279558335464993680029889103014607052840191723897792512514198133534021064226039015841129762415309720785045093108867063450658709206742687103017543458187258680734062952557186283511765543760809877505133433264809288825010922867148631421819951711475754828702541890595372250490459201841870140658673050027026524883318725988926155040679489339840375281285597725489383622370333845681791071937809195359815753542183215222907912719785647038591630014369252375292748783041503595864353377208872926004241366607334212151389163286767134558300852360462230901932420703903862450601540989764744766594085997027002043651488328227794920339613096012609609489893673787919401452392230737387566569963353761881953591805515812321290402603784766104650069744543282287737899258102769144277587528167882456023301144258623304994255480213600603713976355770452616803220927095891334560802575766078008907090804366875809219159262600231363556681873107494918979448237256705744418260094799547267597469927425393443997677452501492403382190160383371488540831366570378946025272981730875675911705710446925444228984804046132949765131700913309635636926105440369369934792698286039046443622645223403514068504643209677941388115790965281514716713997861200537278294099108340298495618716396455247713617989644750821032652134422856494135213493160853836602321813980656055961941737864811862859336056134599808552391776800789233497157632134515652293533894378583589731576378176680895853316115602247094921023321149958513537746302670278190354563608448735899589639029900453675061838895446384619195253819474430554269000990387316115847245437714670689444097299298036369231202600848233082861816337771335603809231561734447194506393787855589440205441863849969461185190312274081134561774172341559259717121649398462606592213157455679704298692217193593190716320543006147574001612037834200232692045264533766280770571589349688446258154080153073359203054708431059267863316322872836703427634565760070415490688664095434044931667964542918204920408559793852786499371926475393848379713334050169825811671751239716942408740008987261313240578477561790035090493075672724607880822085569662156214861333588239650610964258547796874949493677708234466038974317609753885830549861160807877836223624408247093962986493835755889670443168114619639090460502175850649666046375637226410709846169760535565943070000207673208263588190436418264070315674018188825703348907040673565860210271902442490365603957334265126666166087793982722464946907957053924866237929046665911143399452148133785664544677568380930467045032505989133968280553800774166613935986971996678040322960254385443164803781590717627856953256859464967243710792568436763854345926776951490509232097550441007050158693715968048495730943606243310272025564762908619582208936708427859081881615136728463547085406705645589037501916431088434646236134000490150784991012197980659060041467701473781982401533542029601828668328788731692181444842961282386942395167957887127158289881590369753461999756767700028050723274315200335745801772069517207347490537851504693441701384929227887854778922661910900421396217289031868304099641936881644748633351857074139243989874909242306900029018292408117825996749828416845307489139818568993516636773037329585078334413926555208101945775594518826055941989586242058853165175176100040559686401250436736642441852846938341848313430732042143210763814366929529885051701581163554108785599956822448956969837670072675126370648948998957175840630129951508566294558928257448639618461912902465614651444876749607786138166420407432023517034451978774304376436809702139170077666098930266785773873328860008799741594906585358159627697708245712104831528054316238315363854021666730215250892725815012056095918598553866265185276560205172426780837598477232300325581958080544920911276795527025576358329994084373779690508796962842373266618146814510249401908219485828118119023307436221025256634202017848244745873411849616339323677180423023972079764566611058469862948171644838671820690917483645831771774793983267424667253018471232496305358020513460393063154411535232618677664736516908808077941643914643615537083618125787916454462524763942068083082263724275355305733745799537646003057920377286570735333974921994266763711718260506476326168555556152556318489113771154452496925967035115933279123705563460801753955003589219218804054184912290664354997504225046109730525867125740353496844136180396518651060001944302328745105544303279800233593935573862267218222780348909255797299985240070390808373332057748811653107141395875081196617726277442839076601961593090349877956475012303417286403864487952319393199138332647944277621240744924712795957392079314571109027675054306387845755446162838319042446321546112504967600375085849760448604986551894939839379917529760586384849827905860350401808743571378222750898149902998922719550560433464343687817397631586446672954146089005748335476286558987563351492174321711795832805798162114037888747542771234239711716923147962181189087628165856790855636792372197907859547825474628769465710735982815319648862896506519472846375755009798362570157203149987839487371357477511859645225257812319744693140297923966178236063548173192869568339653300499292972495858481514718418886750674312445740468628760314741293866738866268265990752882774095476530739982595320973981599674464159852747938999562719002977853317378253470997771926750838530669927959603266276363831917572001975857814793268246051709208140371251363222557397442249752508462424992649922724912532786875901875876321538812229510073193425200588817959236206137868237541738451743224459437199487679826511146984404980702697635806204812448801104800462558620624712681625261633239441880021319447379232753652764694742666585258250106791233960706632589350074524824999057082348643123810951277755594253298571972797313587548778406382926585366879510581415244534529558718418941342765616049261125214512257907805204125487279320810247049229822280933183689198155081242562511454169337613102692712583419379507151377073200045829458984802798111089843292391349151418508300710421064972809678449818315047738421045734292789509739889581557657617608738559018089686585386697423293455508479230918723724888284098495749037585262430219348482995926914173294419042123620708712067628061436583348421542785442404992854306878236128063312209933258166465636011193515177091236990873372452618166407959325460842987721659299461420096334069274410485326131315690015272402383200246621902918452335122063948258176198556867196320365009778965349518466868352150052050935284973498351812932921858119241343137072962728309545360444259746024211254037785755312612243113922006270867671881458138486077451184759667841016573426366008077652575628030902065435410323570678712729478847173356909803612291575481617156482419821431886399000545762601269169104233613896981895406060952410181841139425731048466148906615624978251872977329538707678898212513386118548997658003151162989096953437449802662617616602462555256229638474418319685054419081006222142156892613072604366867597232344182404395403333533315426992909526114565148836466973325229521521754643873524301511328503071571450684984173201379898089990901148519714515498197231339383306461280301099972157072376006373683288566950781873332299163110023408409612697648766934227980019111330744373638401191001367695119962973695473141099412079396922309917211111451368656815029949041046536018797879429727130269920301883634597886790153397186830845806521066881821584770806180793093855225019509148779383508609981495232409729954430205739490742852934911507522779665730463763497805612850557765532202717077967982347087916004287267974077724268019067407114271446837589487188512054426839077054642660365300706956571825402146034173661529953320382878397253718462654572999757550743465929663915156494110892021675894120000382152501494369859624079749653514615368814352539320470314136977897576886662275052292483108616050661401280237357651071584365361849597037383961754700448397728542854866597889400617789109756222268369266958918370291961432725853665954556117499214549467556463155571288944308244447386619267547368367523244910821882399147906208002693884923610489597410829957779735830500470906954470430836756443779790849016785296893676221268961827370908609267524175601862658411620356058770268412070180952509885428855360756837522173897446822426078732220163578196957612032137075483800820085501574503474335935211596531148776458741496787381784988724723072211039597577883179048945897532749709089884275552164779470771947818690024496012545141102509452630167289495377472411700219867948166559265140321300377857630673694369654883187448319914718277862483898450788827256567920683297613028891632410276160409971469317768550520755392968095764635326374779261947791608438327552709794738663072231431608119956673819158657545311961670680202223289655168648765345321702444463541290221049675765318405515318662207405645463594250371316880685725812086653593639727883597337040051445211254742136585212250850791087109367992758569138793835707352682328019688721451218514756166838320690148581303411466019104159375113102692097421350145241283329164967398993333749910242326025148114723202698938545023112079968863223332376164718693744871025272966910984264300444027446959030665790452327712033445163052630853583119122228571481571765781616959650175174474511707819738119572003818678176785068898781114322601904343476297124091096958621898465257068070368841839673858389974354249810321808765347495426903674616650340790144376821253939688362741580287157423267926774429223923427616646895037622877740428995009491932464617459105605735543395002783556177759214467029349924047850449317215984674856997794588730668856092848809484530087682431953295038328380682349462962728605738686911897585073196567349557029382181096124481275532792307146200332271046852805101441831638734258846549360580570392314669823811833404465848467412029647759318710430138328369002964394748628358650850287027094842506260818172435702729387314168199061890964906267822583114354386048939196846369157662486910289921586159307376174157705018698452315768268812302539756953062826473045876545490097983747629207054168986948935578001884003847959101310209354146483381023477326109387722172760235582602410159003189626599413280491261783652182932882988512113662331729879903515619910183686486280977559448591373660591273083846337191632862446983757468745920956619301725681614909305032035380915924841665605717827866602866797976911378286099224302331646516173225245321609221678181239722686437907726234993613299600405236245771458359611646443922368553483158785005449310682558391814458804169489618081427491166445313710142638610097461533221846310046075811111938503173147615945860470863957949494363649317663496684725262532222800495823246318101865271789437891283508350757594483713736044098687716206098822899210748528087874923790674209918240334686638497207481761371044798757530642996044182777794040642017361120155515074485796527246022307140083243954445445477033786597559570734963947352276200455792238989637492359791623002304050515482034894825069713055010403380078966244874567442798606252010921735958091049385411206101791987243200142462895771383144518388578003966897545614685800018489220030747767825413306558363601337380909185448473959169902028445150274424196425487977639977391973959220546542844834680726189713539008090226316471831450257213766677034220448438789371748849323411103202988481282806343030299553200861636019528060052023051832372626055743543935077615173495324620551884551529793145438185312396484203171911488738914248204323541279681616629814727597282474158397263185730788859200999175652050877715923710366151241947997933021382753515906377095440029138523579679746660875398674211362959581054170142031511177699205049895779099728866756184270832172972490468958573051657932211952986661185523758218464251313439226503180661893574974916633233949623829201040628013824316917438607476657268494196986633187956033956131682791523021101165940560790894928556131459037964374957631597332799499377335929175622958778815504885078219585421395738637897932570570505821585984665152089246622041478770945889208168692049060983570073427209831913468635119011333542089644718927415229332033781646514469825113979452229480860215222273991907116540497196906221296210076059813241308320913120424931014522097285216100676344463762077367712394148617294242205200191186063822410815422589131686815729216580042079865477633546922095237439738532140173963967737262412179405192976830571257695056502933409439953883618253824308696926854695860800932320292202880826837352978642267854418538260361515980985878128646361547619986136727931365683974084568522996089149953516259493852589283917724212429781395632677542765993794435501465936636423254332238127908392845782587152574717336692593763759662117273480921935157794172395741437442641571566512665506197695519047025242568180264053662550272630991303456799211910873841015658028386056391460231407235308410437624484732296144318542945874708223372873174510243415868968325498841023800831167669342718596421890646682127286943795090620558384864520173552149907207026965978153576762687963028880202554537947473867152446531856580906412550296593508097656663627180939293324248292491466094188192016408156317983848187287458193529991961088931311030280313831106102222163581405047995561516806030493456901688760650046617834476479097996636688828854081130618855696515885868252438701913752042304487625092719117603217109267291510163384684449912025609338203099013246126165669047764797095783112503017601333673573263725501191809198618960178012874172724236252795633569159256779900590556632876000019282959525462664523467771552620153485944104116828049701236085590129406561001528102838828327299701230131706206350408132017299299421681036014383929791996594193912533670173039343597472735722362698316419800421680989157233187683904136307516099955188627419461077889430036015602616712633724697807767626702249779405357414605339212458616709582542378234898492979996090252956376676977622406198606929545421796361648008879079102773704248581707217570765453963218491365091395259131435761006022884482869902799681493941594764035471983650961093522859223590183669548386845047345743283924951180696972468290375465683711418134869585733174119915345486138909718313354388904209768218935817721409467079953979455422729272083507387990602627889824698650922205537928421123569108977508132659552386131152794665034186733738069129532998405537924359060665720746660118133808026927192742774521779641911857248189064735277188404871606207219409769332199938575171072763080279382307756153665446277287633171110807886743988964651115012873323447234476778998200418509780272552984247865426397033932182246330854984492157881583647176211829696585853156637641272690100247357005358746238197667783637479591691675675941245788613392585366740479278224157518028368801370474418878688109851002245925516939102074300732530686341942021128528772516391750827127273025001068444657051424918903635142427510509787604493866012316457028487780456154068063503162210123877641244183151831727890955808743188208566602963502950163398456003768357611553363768453790682810066525571390127697766133303478718636347066449949369799520283501161930468931408928605508673690456554811959600199484648857100265474890556390378028583309904678360269155535921044123431337751607303814329586943849466872500889455507495131616263251858461373154739974624769303995148898173116619682799052192097624213882166798358315628577243352738850916892909390729105580861477824027621319102746044572384684915535501456273901633635974126503567176936349906681864721996981523763194993744109120607598650859075301212754369172757240608895568536676498070457505701469730319277262028248236518663113104849937690531583029467340005506259505340511110537253126420015936764528147571754192871336326510598506043211862872090237925282340278743683186770664738337642406398183243347291728421724320639313802302660145232281673153943788708808917670918888079272273439673071937528247524095101416840306542127369761807471800788359191473452264331516523735968802009820922833421688031925294174795116155536521578464050848363427233357383467480034327232838859354791744170231578914444162103773152040674604900325256993400574941311988601442431161088410376073217075944582681695778012188273836761426773089807661677921075461479832276078557717381331331017564840882074220035851614355806612116204924476743977143227270491511310389297549016082977006049246210301801511787602120346280224941244671316977024802853206716940733086500974201389434001719036003244092158203827601610788341922315855860383884564286802081954553686222162507459359381496403671059638577333615846463733720038301261025731106313546521484369906900810520390052173552072131946861004889611483745861431368618937284597325912369161752973359701974224048662505404381885098791053162902573092326113601404506882715010986012701891311210758601842414163186795373542957900460164170288672979174063045495105068141080608808088760879239398574616502924135387448263204257047603375552672435744992005487982063513231577964200924795537483711071839989261508461953891782296919166633053811897627553384298086308068561761857031402579775727995219224281525161845752524494455032497764111382551922326599451845179641906331045470100301847644528948250428454341337285637447627656293681408413740375188156883519955456533129033463567688431947571710033979979378803391148901095841465340919794583703834404686854125743315859234373789660042324844365819503660033053278064836419908287670331460134455184599958376522427591162270104979983165383070594883539302808973356902159943376769472399233160392033046144265971199105308861926063628387607344668678280317525171004936849578997959226424802160118668770164154842689680917443441549301782531261003045651261767105327230233806007530773243735152231888145840620060510810547714141991601942221555484155305021702313432179221034630177648204716492462545811391992353586848416836029852328891510431992894381749423172212262070762962694154066411147528033973600046614886856098830956329226893881838006421910180079950772807448696813324338095439650624522015241198509523108997225539358011389046685015416538798337192053084571987859164609677032419907625431999749482490621364158129577525094483509029242435385928669205334342893809862436882079898033158351868648202696996758326183642263727662298254220425488406539043785626616709535291663736375744623535782002829305418968019538496869545188580773261374911253620954671172659948421002458785764905587414761666611187359457203212427799850315732939343752936289817287985220723518151695276453698639051937337742046713782610749627877213165005625303879941308799015192759137244893956751696567981921937640487242467293909785464103070016708595832616664511797375822674777108779129821386337811818252455850225690942454204140585959347953101772855136387333285152395411509956945016675602653769207044884304004965853623169613153679683501685158564762843648771390965750098326963551374774115488770594193479079994022035127875390993303445776465999362962046221805535501951536461154738497327908158888152628894721531027181700077602238522618202425307544937285056877512121222098626749374392082878448650817165186110238161921851306876854113725414890718042795129110270933103524544739340496969093518449648483624637000577485857046587882700014288724724902285104337547623120913270957955144890828653583262099699272333500048128613669799001999985582697067962905665689208494071012943380857604646560468784889847107705360062695153270877311654976695809618301084636750133547792873743264658440221873501062991315591736097234813018195949397687501874403147013928789873036336403083041585967012349161659878898414458781539877684445449407557176576232410566029152970959286352088161015937793789592738349640424272125853572104149732027952223399579616250189618319707799014281817900617859205436851307367432176721173781501053937869762869814460145934339536963443685559564043856106815607573337029609057967318878757041023817896852664391339112661571970063190429811906452008030643793072702295967071195580093715079698419634901688116079239190110197153616641889644154930925288030537469644210163662298132520152650974832232104231433478695914396626537924739040671170241575871408009363221731415749628557670915398895348231020276533163945205322731025130659992443035097068602369441004740921032207603041184740074707639158235611781426124233421854615341631610928654037169956428420807416410341320616286331833461346555979626148195232737616894307982057408467953289802083285175805337709094938908115763659428813588303972187191159948805610454126333400572105017487968851903140757387607260623924545470157681277676726113665858410113776433549606009009027919206137072631765548985016705174653293794641529158925076624157126974190178592090640519526579055856645883639923341177977804375170657459282187396714046345023277326574148171275612097071000861988448355716174297887777382443367223955490253779305798589597305122362768575335812244167659821927377910536464343292372129376916684030891729653570939269332108085563032985918769646893343270382979722482026820516858541139676200492400887194151898836197486281664632888402810930660052438010486775140415479758480625544051889403943989074870711721916912851625354809577648637844936280134544579533044794783042622456332804037486421213433354157120454038989846256667516388092548678310615370190890002627070796040772426801140500397306330154823952251183357838070773323919486965746113671213514877544382680731466167946386759962721895313366968273555196717213723982163235708521067897661401494131557325896714562193618449515632612151291488594451098109195587374148847898290073615250693736828903567495843969501748748285013398528237383214837347087766809826933710308698862078974389260725407126043340032151492835986116966236022509063538506985195484453552588432657065380286718981779933788131033770097712235695103862626215502471322706606328656359494594930574165323710165399029299505569206672036919773356648550389791438792365522862163693105842537822662959698860795710529664333626801479898180597289781167118386761017092551150207716521927836429441992916340214487147454676856458462953530717242064925450798691898407304297712630456276559511021025980082348665261135214742829934528354989194192687275048226768710640048742078221425025157648139073188378772096993503586780552142178533958865605720429319840649098700834839392825025589079567654747161059503187533614290366513139685343817891236315413257823846801101745519730566918480893322353151071649275325460473796459635217181668902342848889054557748035951576303956590945791645495816783492732382428805446058365303961987665725776211871589821728081213673702419244469158593199374895856428959581004195296311066731379581018616173694746117434998377176927880030734067317204138201831264694136241402628258136089022230368657641080214918570183594857397734528548421424094567018389666730984613803975024031708321857026165373526830173451816089118333869910783337203630159171802718287139552152023377432817260668869201137081434181749405474903834887163202716533861825792223763154863993947836578734629707044381062131811295192213902974447530891247002460192222732915969176413046431933800910065030647083572340467858070070421789431296921828256527007523188574648667028046289462941686493298766747660997572808431498763105968640628323501812475443396440099337750313399623625806020382730135426107322528439713978402811344047083992936365482842135215717339036614235386691701395439183935733108270644385678530500672878355513435363981049581911737391761248417094725118335468588619493777480292358778684397898392497034911898112400534709006131448820037621601299121494105460868832725781279424262980328358682580842164900456127130339663047578496941406612439535463937512337120059512154626718965326495847330559787031128641627478330883176718897228152763891729180069141684302731739343666090546572205658033622628984203148073025246950787959066904930088556749680894857754263187327509226136971463367430734158770468282282786900908216891411277950846375515643285839389268294722799813713244065972590202889410682035121292757421533621710341009748384452490792975168000807990709381973249193070900142296444137703744290450287244273310991659201159475681664466219201290859693076739950063028260289634281575656501183197196104658793298598286601357411119301359501126735771513954678168458443616799520003529873509683475986472870754218256505733717546089263782293035226289214366099641914945667113879405872913578975009268005854337739746761378382300531835393589472516380170730609515633789298163969872995845363381513860884898507201274694737349784252022500103135612402196584918574519972764265894567376421247915603927410661150789804016692989513280502940324293199970458892679612445075078744775996015070603381400770475634886963960523942767988597973268291269683817793694629626564398767604283502283201353723642910056296952966694573297651821269593974392872189341688685336762939070009164586300060473445312529590895384301842444463517361420344250754045910566687077201964826571524599734958683032737790979108296150426676556548579492028015437915653260733429124624113351809004682603286074333939253695911491246218977177735505840363963463240280514170986421333318396151093497875195630472327921759688424620400755936436588910531064213960578054610080856986073726897552648063047244640015798102353400722477224456866698293326844669329909821988473074922081007162177972769467187366210384971466604884596531890662635716299580003898314782242314984241700046592261690354170936646477808139556336534780134354187242321652861700264530808355568781874261305779104925229333687757279838904359032668545946504435726967840864239232946703350663218088263808309223055568048663814267715319307356498330944235685799651647264200768897857150869772978392903393422403896333897961745858025102993285211171716957723702135046095037423798950263123637405087826504843252485518972898747585294244926466760477896568586487071623262538713984828578290084136473372187039424455811607909378460519413477064148777020251659510351699585496699267674526774448668711318340553038325768639089317068524082311403863276147626693101810682363260785981355830303467120192217274513983030241066499735771555124830076849092021989708289502239675381864145619661910543351783152379954489575503053012433111781961145841257227043648614607219984619336139331503457912280327356034985800626047359532202987914823876014686073441529489252975244746001109920135228974767593767247194579496608212497997018701020941685073948195939614059561443359951009458852553318130306347000756467142128512176577024087112469066661108175278419097284019012517343845678308805076213332618795140132692163464453324896209281065468246557176053240176132878364579781435380147308145771322900856487218474623607002722498547767670673069924025815515784250071291572293854970202920230134117734050640873072567949403062048208681438529520560670635292561902575273581951778545449281907599524052628631110534759765023161190708338088931943754014864431761783657061004908413443481845382352245426663984192502708244949026583254976893373951505005877014788713434032832771128209862402575982265262078500351083557084140762875828910136295068572027950783232386951676035725778844448602847240414168960254862783349671990974255617132717776350272384409518568973070549119170135386286112297869887057667677331456296166189390907445242834284244523377873364538032954194396768368538052716334829354984220041361006415443527544949734009713228266510425725736596757071230660217885836474634576144613710428772885095892714809600115320039394153163989155498697280451589855800226251854145493841447047592097294996596655835912766313610994557730714212217630366293134328052054375122093576305679168452184084016235320363222177475485828853521780843206077672278447492608664314069843311617736793038311765028470880248274672315981053251852649848877824617634580247913787600819821783848818369890496821722077365307025095393615171381627116142618927856281955893120432009623965130594530815299222150070381505374267237278493402099384637143433533502398509778639409476095644164744423411832993273360112793683257596764797857075932721715729422847380415957576468144045742497873478437758400450152352427911641047801774903615952219201798321314017719698415225083934466637499641735019242317568939453596340569934362746736419849715521431753761688935031612577082756227792557318857723897589798036772601933590706382360379546598939419744925650925112587079598798452003207522623807669484776418375974241990340343576783203145091109218282185334977155335609540329013040618107880822084230676487445380469900706842792180741593475809966818257144237226518796281669635943485403410845935859143365295130478155982964264843396874089767348929541211078536181838006166405872082014154158814222202308365021864838435173137389894963176323986031925223687670396567378152030764399246562370504304429152226161466799063627164996084064978203029195518914209457618232496028633342626457262932484464182799522653717780138093856141862113798945222574589238847547311748464970782391562446803513995299630834962801827871623954814491148429043207771927795629413446726165308056409118008440214336919046241524976081223029585661221981923161362040685983537318112308754509206971879988284233515079561805527105143305143196087890361260729432533626755915816715603921878848747673026792930694252837709251032383412568154626988553262077097315722485582904547431390559847301665795264587571599857395162066776059472632117737773985864569909658811317203252871638688472192617181133638080842859577190675455350780950751536089631001924568764550568177029416586883451075770670814369513997178344682961139332881664594685520313478042411242795572610414387379136057056804926306865338349667769474602868500032245258047611312005636724442749941973517838534162309592070899363781611526704474420304135421818076489002485098456724186509304698612400922100367778343748862272979271201543720946936588431499479356074279237319536305745021850515659164229395748258028091470299055792082933213014751937691197548132777792801662142174265638209241224853566209249095439361326955419940505562218315122617971530764376443516505811614013662714222082775829195186231033540090702483710750120500862964812248963613292914927046646486494721084648554890557705328617455127069533952780869010212548835796710218360323122171391716455955941877001176112370046928720336508720514812958162901302722121462862802039988998362656739091086164601303121151850692149256934306439708785508687881851207399526654781580265046176805866113399255648477258358083054255549492037580467803241469341674924814533795352190442355229712174289098902108654850302570596240709804967252216732957828538957313863277947520409087216849400761451226261338072932460501959982301123677553803456989308196086268621621385640138309263838479538711136116098820008461122344169086926033081081545622474122069468811011958801958395750332129733779503429499714699897453328642273086139156878583444124883649559813777455468427924473017875295195549969522907131248331230217658439352506200922884796369799117017550649090978910893195935865457151442090789022400498553004964532161045449850757923345787496181480417918803855813975291871437934965046608699364305591856040299060990434314770624847069718879355042426510096685394371788179789350236982187758021417860594101653379232824987667860993137103457133093785092342444260485461089950956026602510226238261429771867160695233797542711799773120391194077664826496122720476090020740124636096717245692502547312086245880287816692157393910189307000010334764793935010156203638838979143582868020999380586278171677802657828980234004895169769572534601532888104323897386386857251423201286664725324656543175761627720293163374478410179351238717036424679527676685926872431944590824445955054210779481226508474198511392266462674226280254452933275909618543861767596694679469446506373642006239573584023645264306171303819586786054851930258806303409994737616995717375312972981180447634794795756535056855712239966382433552673825280545135767303259601213482179713619340313063201809350299846776328039575439241212084100325936834348791244885699757179984276993065920611586228317912160217821721458835228963228138397408757528908044798755365925671303010835063978597856634743409775328422016540205347777046919012080992229769318102770004249046372825499295642405942471239547677996550841462600727720051505009075565410685057321748433974171241472879387188801742002547007673562381780110373441471577017769811632708066158069262038785351933445331270809290592628446613074567663968785960838310073646741980143278222141720686221752528229483232892254979840815814012426085043108217394471905585552524994357926166503797957866895020044517190776823003145658044790479151672767113863940458280608418104049646329909821895236024251342230421233034322705262385216817483790259388545507185728339759401525931308090489440936534410608607371742237526370328606311159969635429805798499045612885130413193238038745790072807711770554947692713828022474496599723635189620956131737463270295265503395505118574350570575692917921829615763876006500322215564141191873496228518808695880816190440637433051440358235354390800143099720065211435157615209828716985211062830794896545397563871133416338146382058924298801771513496068459925698068283317959212628899166646267150826734073661306374277251755948780623578716606090330147637416023251273892301982448712850361838472208547239778565768007629286614697591877842294176318948309712280697694820678084101820249384946725167081423843100653078207972959673540848270754632772570391506573405426526360863892542140211176537288602530618101847441756904470845292546396829989420315959687357153715418808154844230630275058641947388836052771674092714299345731503457601340717951111639646682273708144238191750381422250448629395566498944703622347392078475121510631853670767332928934115154156943331518782498238545044580345767618328523245013128538053523261253787513915837863579756404121589391193245641928702076845660980357513851860665663515866650846864320834577736108420446459881630715882223512396837387364176933308203396238422142524962563261853774871723166236534586697336508477238771484854542004674928801185815077656184347727884687192398765977111217425733347415473563145888413367548471869131159999832687265528333874667747834313999598268462010144908255090976337955854175617444871342217603979532903099248075352186000448755146487497859651159784847684710749066058027021626023098686332379560002603173927567903243366824714450593729265695060371076059537354206094947863519263711955290639944816718528272940121306599473466884587577879681689881595680659543263435312201577858332590813890090742702967483968003581351416007098806616467689284949740742277795138560843856992659704706581936340580499726133797839443354193266613687351002859728781682703338737531647559622987211338210389487747366831613034351996197656266202774730201179494798739072464198527138554639195198817704504833242215931540814774901271294000373938559846903044973345502884604425450049055876116612537095595705296320662837426426669578363278716561096549035277314811777796711675685930222549151437425378295323623892619822381735732556252933415471163139493979474542388636552520119734649137493006084818593842958475015379911010390594798160721792443905822039723371500249293824822561028773463155751854011872233039194697211259402237970994152056449776228485943217777876697067067791506683018377321252315630935397945399083847755637981943868905386068571211701409873152894023663733893925450871066733102614164565734482525334419578633687417096123844857528864568016861281803578903338831755344201287024612651011131885689494977363946752786006572057887309182274600817168598118504434401251984976953986876614994636597137963227332937155667892717708615333032453517669649899014834043084144206823038585880387385466080107700054866102030891572980616686442519976506831705861048494111070252001404721771844176088470883662128500911063140139869814187395645178222567404858327560596442751262404790915102431000219208375490929443954086497111367891285245489767309818053904681161552410494705717663456211057790742014363157444271354549264423069219199454416903343572032074499320741437154071104998171723892559781332737256135751439812251882255735712223493007529411385575941711414452522284835675051235841930284983233168977159862866608887666763090579018290692987967406303886982043040091512279250475608987031658849296995670927205056231870472242285529084845194452834049436937795730865109857244974802257967732953618759140602257974264305375569618274060296162705464096349536777246736348375921369132603238778526487733703577425789270524056336776966361098943826841395977539995490764950800750144944807218635941643088834537123185740542204435957122300753517826212432743885146575838130163255661756123366457583712386536423449644110279366722631817421024491273656764202775022034473612757333487561250620998896136587441110948415141279766442073660909311863953566699992613243140793401186247006800625838581150567626259523802524556237129668973641080935937998126502842693093141001249817525875653892762419147808899209581424994507436280106654290033032135929474552728149466571904107788015327575275475616339039406764495519626609959347438705922998686979190825491150189762336428550018239315283692713252118488857167285831029264239560764141715188031730278017374216760712995471808072449043971513832269840683093384137773330682766757612245790436190340882633565003856425546378854737433285419340084426541539667563153369998804319387905175350550049991763941622987842975839381216306330217854596049069165326656980211096533903093020601942468033191984629415306376752476460312028956631169981723070776093006810662578940280832993322292859391815487040657191978120478168015391580241850038279586598345044216430530757704965596229898402119649161943280627140153554956595001752372848818560977098279534556515327701835055963954955190052672982358258879241476946609323454520291730577422555968573814544824755766780789806248139165893033576473561939516150160537855433250125463506205106184357190440837571863824022910480074295882626785777883212235889102373863081838827573729185877776598595550572461075912746446587949006268242502991023875873498102770947031810394529559163489767076866410001741268412107631185452678694635929360121115679893378774354699579633184909428294510452747462983935909978868037651806250207694029184845392392837605252631101071415956179445899980440175136399376562661664914888440726045731743839453430895158202390885105329711741847280101227079573296026465377065013134291743029026131381567064866275142299238440587440521646817197579343250327448327326395564476314676443897552104854386871116301400069353696773079544793747976545077080526029860611893814751697240914419078449134963092375905193682569824740075861947208870834283034719936240276142559180267479662539387395969964908252215265354634823877641322515152947915927458053147243604630243371042000678600287712650930289191675897108192659498028864450210860835426653687196428157151535825860038928573566738882591665613227396432358978950076272250223029856601022455466193843040537738696176545517552527945948718903764965278401338280402296819349533243666563290684011796914199294117359320904318485588028495851295669253534100281316653516465129548605379070034188525150144005832270508923663783387645958595326679042259424824330015681168427101762600999313358513625494916829905540616132528277016006049711078818082633398558726735940892587453269291946110669650830068126859277048444287056580675453008760762896632651060651463584255358840649889077318749771678987802658646356245407596695769400705701051246516999383409676544563645952757721925910818473481069047490351217523862063852370110005651363636743439397048327831894429797354505056441144451489822677427569490382927840850127283578490547070097280433087767123176607622076987609325894468120166620034285172294240517984014740295253612936470236913343964334007872694427559001223902929871255036238798333219370444452920325933267786744141615287469523738233744623393228299352372015323700227830426050811566140115580863366288417388700955282194048289003677829427772132919320719467683067515211736356446998583133957618918534301865797726439533079064762914523264705002578688432674111742508683206334008980488288740549674333061947834843263529224575423474222212126592358412788487614986351717936633721091761149389040302269185687643762112423482857351231154174936422233896867683725025351153729552385062270513613967110124015454005767572488308101459422601392424730960258277613497390648232173363572633840162248157956335482712018959315171409095809719208027542681838647148407635605909875600574951175062636837214661004953199330174915131340129729144745306379665803626608391121955959923969782809222065770888383327914753225062189714815776464357474151598741851797777053843446109419820556984833476629615089971480073020406336920208304459489409292348039216274985788802926200776209884602588368692255746018880331713192164904549402013716278020683969915687812153530408919359741717269894362334033390320123531485167292067955377748225400568176757934041778131887297411437289689444962793001624942721477626932333772282303377385340039025919687048022475558997097033242550883098251679830449621769917446861364808439785110290039202643027718528507228190918638996456595970346880684953376712901320622806321085263543049749369361099692980429161293918262256406653521864818981510681664066946498798868204985779361200709109167608329096224764485268401055742506493010879919618623920577294442749362727762767208247426773817851620480349734488767022323036581332829204848795570288409517147439261175406269434537156918351821024736564748797977139953792059773699960184339734497964768031068163031951802003049585573340767038789144541904349000605297989058209777970492297983496465153518028053665866524977693381993152363551142701940927397704379382359360253945374390606812590338626035822256258370669927482132147831628111846771076938278722429572485494697057443342367340935874719610339176558946227347729274888465442398242080290890231850261906687270705510249481401415899679459669799979735123152485761327004848986032924141375300466537597178622979599371284071764314273323255245683835961516202753364987935071602480633108620658797033977033036118001847338808192148101737874552340854402013024057645845837553073629895763335976070490600076405744388399036749577849138671561447174477150964018615414825522861590780127195793862036882636068508915762702991496669397009529729092541196184001217826313708829727801495418924535363274183590074324038848920239498508133288284505347695690904047878254195669505794699379533714233462274998799395323438890583877372515203868195709118050912306028438855362950574865713470885519374394072682105600696541608726392946536507530019267354726187493420782151390176511289129878990800196365982973582534139752128616286825321274324414332378963877270439795163095759434301397730471615795438153305431479744330665771411956841473017409028485317750129155840634969873206759373020409084855050958463018796531260636165816890370120392708753243731608181827589126615961747672180169286508268896174799093780672982593225828908267697612650715659903807013864439717766423187286135387892134782111157023693714270293840232762449841710763394117564997741823930185862669754029971818405392966816705427891968218506573514006123015587933562035601691826636973217778482030529827026643925851975773628853207119552710040689047911293768234485006601200866960637381505292421835289512564596085694556415328272818411517491394483863176424951070407636096857749280312837309372741278605271704294293463789126534588661057876571594915588426851471481676477639401100633754887508841518857844161926439092910270068423345392706320580663239127920863524445575114701082609805054137195890549253088385413619132546930223427691752687626324279703809704460582713644177441101729444267260398748135701920201225915908037382936001729430489526695661860304190332024047107683005233753274729730372474323796120989387936303926634482381932455734886171150710000937566246159482669713529811510671220600813216715266003502317871567496164484247851342045382607295518722707527800993819574346528937545063357016021989613265475677529151814890347398356412827083021472984116608367918017992329557298314839321823408371383166850183826128924433641367619390932479247949543035395263859154274627512308818488776990941573549443193773905923847932733071716536708187504841824263263844066028899732410482527198595508764719065964263129217290897920731122911841140598141203440883411085708880988748744690719501093903199224248597342055488646487426256292147088092582514836142833571304417060943195443110590020020632546782133967299944823120351664395582598017913494694877417810410629311488425573174655950178058410488437526254972850130282353522884735446610793860621433453070258857317156425792527491919213525220568744209791928078239722696672098725755644760340523128473222694260330489977682240663005406936504689134399919065239283860000965215176388811920965934839256174055698109815928080788075945179841089859907728602208884483751239277422475694547679562757348424453543670329314822734492214750379651039982435481314836733528164995057037840975333347767376714347965119869165679298214238777351893875108951602085100905687657582771286368244667085346271697604707150402659525779873451840752668634619804641489359231733580355637232187557388491681470650736538059424181345984146205820694448815216053125483034267690161604197764038114981363432210679115439559580709190942446557931081818532245329088426560351351759983235011712148466879988192018180416470722128808584553145028796446184710100023813083853763997198852365354867379906506522983319248717005628001131428644253610213738645955777366332285237597089390971305783101867296923251421927838835279207108171783271291163233477736979429937706555849344215592434957701626695490844980016601322077439833104613508624380519703872184540771817657782792627464893126199259379627727850833574121119368171041966849393446283016603848639331550566115418428383399559482599940354060087735070572171797968877514841726460462276821973179476836184725064969390395327952563342134012871688727215378702951066114046554772693232393867768513824638622349699723992448537770614289143563463676483755930246597747980974325691578098412006414755746070377787825904682142365530053523060769394469042782204270656183560781910706076578550959812575874819689111595896171387681697552958000046455924292341166728019191260556288179170070927008306470775174074759809839839313367151633729659311031614542798685245562578867712003577481119056398395577444723095530218427486959161907335201772444356992409195010401361146667403105563315322120081340300218857115147200732103418771992876029863324549323402868395501100052735745108330666086958179909365962542091701976804197051766924905354853056066767054630372093465793142049553464347858494848597874940838630600195263752752445812687699981280362915988829982153010922799030689796980691305047941719959385096180237346586203404297395739676475484850283884013534443063744043489113390795129911474555878211842675950981819412987341881832847757360284957136063736220029508861505503961551340339915220769336730401940725126991916980030119886870183254265378468037431417897880980609291439980485475356562424998335042837655688695196209218116373227788759532643869054350441832970908752442016812268170033752032087754773503278948099288236801642191565593600714487845618496134939127962817409328862661997615058014470688468288771156565246060133445012236558485266151176092338115303853454041135200561038759249705341260962531321437218042048304509042310137768910347788374548540071263552702768391695430881012395825673233520003629510576558173254642583162468187734983338533647046561205324826024352002524832168167909653193719223170850437429948134550576828996276753466293946601521750795882837192964706268939586635001127395339952186465098726376901043668402676484429839936238746415439723087669198683244092751636555322925168719394637289004648038943393246709146005356818099355198978381306430594306143482713543979530543702935993894118208266283703156363663647621140651235830927768570859702199682869909326394249038495468269438158543216382575516937417890312581309784406095014676712871064064290489130211978480482175026363447733600812818290816033927536586828792812589043330714485951478270071218132684769285272429798057243263357833995823890243619876018937775201334949589602783616914390226397471331551357692359108512537178266427718962896872153446169789155945016056308785494353937219043227258993841690788629178737471815363429032163762424195021017429614742754251570702490214705255702538756419445027501643293478762277676372255320875766717387891070338204067566900508231861844093117937764406414147388487041263362039024263152617177267252332525472466525020562951848108741524121168116419417632029537222384252284679108042673000130634026547430172454923390402561224981236588495201586967808216834338172461096145838166526169731294026695975196868531146269585912301903407140690772805375086727641500607192218445527903501899604367167708889258746141452389156389904759035307773579960106244938682202242003769225122246210612079067110608289232921159351844471042795208132494235089895715637882753491818250791518131494879445490564393924184442161891804846568491095844515157306649612714922953449466266890642365236529382389427909879231542372418913323872278919984180521294385352559708356109372182940149238896844149604205871780570527803256746967087318185976706020646804473047357292830403346815814179320046306994860332426431846487424477183880535790227821879781759839538099220233100758129730213555047699241627702728356414868958619939665462847139336686680917426431186961282510241876658345751100226420893432312912124188827550033294169705691456780489072187032774254195103703270292281291870522526175224279352341320407620250400283569432946419020124585710082490595434339929533168514936292154710035786800377539526189726628655513103714654719853249764429111294887090943643781954491904801151393959465415055517818904453143999209516309740724916529918221729016126563413577834116472446621245473103579676222540249930094872190287067395522891553026611143739350688962224124127025193427998534309822027827039838642060774514097653703220286610394951224784284823140728661166554789167487236386049141253388501491327192641433548633752809240671001979149248776315791720469560536188631833652040623337258880917809047201060242069078085364015999995907170326618819205761305838130045919911299878480647652471539094401392231565181333814737182142503969046556619815357515106911604887132053484372413916870568755276251702762156938676854368384081643461944627868623843717659739872132099846458780098828509580064710171313255667421515787864969148223832905669753569629661896409735911100704721116746022134620463338806099652348958565968853696203735633982935083820491995569849218402468914726865522384978208701231611646658104125813103420738134149103475336892809885206089637452310130701496036605572060341777859014268211636388483516619133112191107639431203759962332535627413703386583422174877903304564728257387758090398597857853722290751313430782853752488663621150439069853394323616973255331135577875601280951726925538566939512247822324807816761906445875355159383521978816912017212022985550000344590016823956220713496701363700289897651536048827844442793355063975126932653474253290313038629765143689906753999974800730979413473269098364783858205226490282447467790440358128427726219571865500607130425501990136061140628082190274134039098856360119555616297659851174365120159022670626556335925455175173228923043090837033128545619108170251916537966632747601433637576119993636727904503483124186483591700287714502994813675895052709038195051439564893341968558790373643757236966508521599186146873862141476349869953063451121210671287504254691400026313327665523817283479342575608783761756963016708292736908118143627273912274794596948086507398113564969214652413437851724177533999572265469484082413861127972117153432052901076141977494258639996837250317647391030943789951284054375264409277042084656518810095049494226876353158675724855591305304010752276683858671208738496495206825949197090368738284828093208130655158811038684984385759612975888879368810567709451738235843729617998115534676114271570156976269510668402040793122003280994006758874495264364163079021410103817745335517434090566589055905409684624574139184249542423285843841532851263736856001003243858739900714928031539748818097752956962432912432832733679440265897257014353519880685144980325570000474432893388866809764688763525297621126871648130105201261079974576444242809240733563615421961884017327953727305225469783550381579356321375838917569721191323264087780583804152297293481706734675471862008390327374554314794517073659264088480647903410898748103872477276513319851417030345648490745170373486544491626613631039869248101733130777133978449775129764511371453395119326784219202322320804469752170899640454765269831051723883530940613673931332222934201159916607016623410215210519661304605733512585537933750634443410647570892266890778899405529388468912020901401692638329468053347614705117133966458636323810628509858575408342416791482090346591677286474643301654016226304682057334211694909671424964673947810886803777208819487052093950519054147302721809507351009767577759601451676806556785493267303165458225823552937914128398732774785056265300256597579708402861159707605623186492849754513536476022946000048162350283913999191550460017208499642715462316071487841939908144343878555387079446445070756786254012643494778788287309258980580623080544146261201639619245820118675820365285353497428760205522887748396846739500375846804086603557740071625272476598333277611517127059103727638432427821751053083340441598035439537550940726642633570077618152262393857131146368066055648103365138366097893732093165779736324019513519436811512006848005945467333701435236413737749906265433562839986828051402054054934266897790853846321687593507384503991099034264351993621294178828484868359102249879749936986486841482669157486424794446333310443705233090691563686075449148955978672043418666591320584106848042581316828375290668810569475557459304538730555516342068137591659617448808339043029141919259644381284347495500013934578715970226653152456772789975868284349576994291473199523862888812434537820376963398044857546612728603360588860070132944567111834735598227584122270802085311813874367705992518563639878056025666282433464451482053359040207941226260442284413823432049289157464208176873811070424414826958173703906491190908261203849060794326861402378276777980912072569921261262912016674712323259015775738999574126364608833833034981550836266805771626746707555911066664200410997822039633713678665902549043300819931825190978814548247388621022008096817969320281693981553298959624846937811691378019858080799375702987884599747637997729444758523117017120097579738147132604369860718560831106921188217678645497785067918401890838278619307822980148542664475966250318277047202866979734172716856250998831182553799243293713271082515588908155974542633878105537040260642683781232765059692974369592038595163582121755284427844373532147290446796256862101359529114759363641899345487614708269060121273935377895122129728465895224568060548678342763521076632879906574421581800802289824593472385395101580748577709934082719868979511633727837229494603283288408810258162257401343416701744323696943989459638714489438416651347174161516857493512050019074241414138775987928549490909775149023760483416583154554713990700065718404061177214103932800486439405702914254776841079636306322735767983035629339382229319141656445766189931257357427421593780292811065725810204675169605863216189711340654863502173383875621781502295508234004288718309504503145176329817549704971750692241770570114941869236770769767482363334217985643179647300402642585847628792905719471153048811277135171806007257768903711579343405174285723748034662881298352007981052924124488258900973837388806909775065828071480957844326444466677063740916974914110693146654515081808537078054712678038934711406216678998745331315369837500581778643852432998642413604324254256624365097160871415116283542227119726497409754050692454508900445437155262985897109716415492869304527406931766847724083299770662461574877655240583338899911712394915907374590532798812689505902100564225363863806093504993014178372938735847149772672885290540978752141983967342716418603965076643059646980962774085373398869138975447981622059191774502236605677691096712875817826671934927330337652751560784862138238998313087565015796873833274933810218607955840605490789078223883233541102450629121195563432370974821080907071670228064910933625281218226825341669780090416270561869469970062938107391326898824288155633702414255880923474679885657990871347418001626006531518892423480207549090950816319415936633099916888082533745747596066815517719066817895036232327476852572522269893196763442513385129316331055308137153241911447437524689013016532458287257967979094278775017866486033055342706442961547493506651480139537542594920629580104340975149746598707843214806237691299305384573202497988041799241914587295126789591726635804518793505766188153812473043185995794681119232679400911775808775472792457048623155185199944785884790886951011430313932785394851482608141398737167187277530531893221431350339457003333179965674282791618793841979679455564845105522629692429753456798379128996957834013055604390463359634480162193288730980300995647056146447477816611582201062735886746763871373619720185497048083962424889199881284204967265446924009626686032494417279377895857626699170820274128591955790014270505163320577516307159297232585340903278109241121599691751392219252867945180150713115728530466368847539893655753920539099327067847097567797722777617845419038069616352331828907751609878202598076960312333199750146164127365366269545561209208083637628348479988716732412077168475701952498949436873727043989212364446548976018489328266517177915822026687770344651096458631442221243331889077384283327333327056465386763838520148591999386464994025593277239164539156839790270313790345736932684631437295433482630928451292443862027296004424747003051793534948931948328636059889816439243685842710575724193894133649672820815579825498805199411545004139587787006344659974851281962426463427607862680403592520020426273055188824527154767113780355795888768272443963535992663954299063121245518317827608176189902216922497331330667273839061621235452489649919485272185362679164406122269313597722988656320222378323075401368277805793267478778121188148513590935001342065250346997717774763652232314682897248615640434189383691321048941835786828692325710146169405047299501481375157285818107393293430611907546843098721198333775976844984724689913484073298245317470925726515551492260841040254880004460162861136650936002775380175763802409252582612665013832771539850651669256507383333339139701337869086096898563668113546818178335530761165491559393238386722542426589756945020951651680459293969737440598492275150959391206710700201835078930824878431818781941602843054361214094008030347506651927770210627108604823073263731026372037528259053058503750554844396634263020515777478757394226023042712413291083383191226864441893048099986632556949030162082038491723978715791145561187906022674021210496008613839645937020394794629370426688010499022378641363739283144726276877658739332633092463760174268145539566482793433519236640089274111994704640944156201624106167060126603961109679664285907402901692109441746649318342430671485941367671368389195964665904608292034570384891687448555168632486663041430264783658352927861405481240626549414849654556432637089782493829416744325570300928683530445420987526099313538538239050742514329847477476823664462719775407959862230040018930648241299508848296810318987487184248555999179099154696860753965468066720668105224272724200259541828327270259974156968563521324467753458954214430100600067589991473629006929268563095824303107366913978668493376326626824678287026352740610600921820751117593213594780933265950753985892451978823372571838858174797305944266288304580267120795143824745933766812369643302499004019986453308952602041842342026355756213046073640330921782000086566879680043401047985343510840181079949823629941835091728635931768046844921346907468966870399749446619321961562144986294238097454910780651807338704579555340719312530974198314285288521988369817380450765962299727481728528427290241569371101246787357601196084728218625317089254702802906002315139732855183116142457775984335208199433763558540206413989503914311314447613888991958326824296723223622402322779209251587580750879798808376023805757202552621079735663220094757970015998959920221145659232609349328929882181527992211555774938731503142401662268988503198402729549643901657686004721505271131615133492467580594721326815485340115236765446024767215938380201006085854697199567507228069211192934251995981951564817651904513380924747848617284644180549214072589473462779966903171586336125927560953225852220892781737799226297750566991867369050557015202582489021845127306533470344279301123431922144862979842449879693754261953009427215397787404045929245572271194874086369553848041512686197495193482433764875321124636714901849786659233312010554136825587287939383747094557032454389269720011906394362597228746125768556637099718678125708267245321844301953882754696425502968362039562146094070016965317141245822766404666076405604134753952755105224621252805876223421756881731166644390919303107180521751256572281587092683838674361647858519053568244390999400752290575621781319376181165927195619572840057258010632211106440523710670569631112818693448236083721227219736687778302864171657219005496611049513856513957311188319789324278245899773971715000762772925479946960400287600056980079729982929468335693252743138468394108942659290382261603342324131072084458786437970737893489489698218974698357740698378440692979043387992805003316782820585902882877461354475527409064438282002943608784775624125087473857624099323842034049143821763876254781495141696032922400792047266015496364461222044942197804685578856134224380351352471359780397234500459083020382278253851516792359355042458875087829941367810012217016582091224973303431319890476070281377950812519121480376363056842697300148450928759038434693121056895185443359747022218614573453349281260987463816553556206569245424469302649825192566296904663234110541129492114225721242129871416659812077042044833668018960730722792885291997741741269175810830295695748299742807616399436911063814711518638799551573562174808674718766949644207595219947867453678574929473044768606116926570927068078844636304375397278076292608779050005247084572984517501728930388788771271557782899324899678175783510369525740704758273399617005572122133182949810625719868878980878186076199335292202768224252709574673490663013530493873692369490115125379409763124833181882033869604855567677102995488309006330191968971740018245162196943047099533553738622889362056112628881512216967397760325289149053302695364568739477706688872346807715737919611759456711445694650368253057752454982495562905322718156546225511368617175502277700900218742603305245288114563030350505536744436244610235010651435901970182149179679321622745554617586521403892864729862397319820659358814117046908546270655998668231101790777340162920119122583993663364373486314387613496694801064659924608752000528850056208318221798091777012084588035168149785079227692730052030255937898521741354902698680419333498796093063747330106366989338723618243837051356411416514726851170770207353015478280431727326085527983604125437223795592974726160666363359174253998864248556020022877990378504410491179897407479704389802291453014805756925214888036973159756950679865498697131020545109462794763563370457849010112764105206800296438120741281498117501547354787457993750575781714676308976245973721731557604227700254569248301704685789472683275596320071691992792846088293201318148960911577835712305287272070433614735714053329146713451641988258738459881746004191104418019070845946196759980597184675205248623400379010938090474330774749931339560493260238964500956560077751127639435924950327135657914774670611351764045772167890323970905005807448590758473650535524251521123466164094776349969940965188497936335042024328106427612335638367090747149673623279151839592783837910713939983734748283330169540939170735429756214924527163217105468957179821416146089470654296264552215895547126217115955606878775128679098342922803136862577991101978084388445221066132900270804725619212618233502545493828678194706699526001973014265265820364712580395949459076968076592970777931389571858965944098007261138992363911167776663010821886563087040775837319176523727714944250751887783299291136654452875037918148592832638571169122131108193183342308343901718944411512990531453725598735908814712453542559846742494338216570760674256976188772088610479388304968349488132688387291169447825010344645241215810176194095481898696433729752314509273250230937903720747716397772908182827333944066058656562249944224199606269959973323463318985795063763689259636521864925319527720807879846690602322555034390355803472884676328570792862189396522438159681461169172371122137895277631363758889796138638050128698140957065793773270188899700206775459771147065169774257208660752678293364936261556393755671109898262509209983013456399937864055324676946294901897663000465534164340960557794723131285527233422751598319358294428586731313158746952081971478770973309621066657516148294204423787170974008014597088661370549438867102792073817691170041541787120804918417823257718344378087591946052350023818269293247710839731350407487365162060412636322512874200156843805896584111907464932128918088146465910350433923338897887530598307125646751615509245051213543207194821248773461096621906910184832519503112962121917559470312896579061208157259409826968944888119809281316185206980497822132064850977142898469910026896909530757362217615742826584822123493851119458105376962978242712459833457560050796841971191492005515496818777847259472710193692499838761857056472541323410255225841413468714752030910823350367399096358651457097707935248820381481068920157264915385426842559223984337653999229239861183315385569873285104114861817227083379759494680737208942339731401172481672517683985800657361018860285636546026452964736029628807955909683718850543396288051611174214915888836182008266908860995633444666836335374620966926823895583193304604599818635721131367515222552424866098608313218500994537133252520450164502802322860241269800468382900598958017094728937725503716296150087549779986778260525206385814511124194044157796672486619626154961002144607442917986562762048981358219432727897815264940449615902749542668857317385796947286138336768089260250033428202375962179573932063306316072445495686755021433430111856948251086046774891819554763767732282861153276404367900531413554450739292481076300942205176012759607574452635786922539103736114054224221495833328285624572227623715345447552392930842316027151545301195653827419054238663952224439548187215422101936231699382460451589574481868977599396740848659461570001986025265109405976145893694139703316095067666328183766364026938954551391485701221731138973203995600943913657564444384352075217479082760086700120792587248698037892998069797825011760090851805493282474849567484921260256172479455716406660434860812708099392295564734730221838952242263436819155401110557084403894075403266392491976422673486563278635005094072958356186943065933681393133624901722744231667347858474791332687852919678096122503022502902785645543986050238954702364809744015153481030281319716366429836076582732558272149210176196404088311629662114845197106909551390469912387703155219446920358386252495062658739993404412852834992831752065827890492973778455886285989316474955261684501292559997499062612083936678244307963591018755815099249170983520504820217863716826309073105104234306720830079603662706383694400881240415926900596042062900976165136047601081008792773736044860570012471849472983970006992168226870421672653610379469023326202871950341107867907683576638288272279705065808464714344993648167262484871568556935368682290000191498548900144433357843852889586990451736155649371654660638952814606622134955231182469622030731815081247818417209405022599605044043651648499634284584403705559723274679128510780875125575901970039403075252570036098522018849403365844585128848168479121952101966526660928653958026989352074561220027220073093865392985224826764455923971527234807352191467349040205364601039272583989105481324976141498388709901305632733307249129183244533221106005004371982988066533524601475757493483112575672097790454324640310363951319156948490082936178223531164942850863973757878924250747423605930202468980782806877141688746977956847997581570710228507388956052283902031270442497826221046396182957687182630253546613270010098682978812910007970439818935233133957860383326839579849460949680396815204071698981679514120578316198661511499705110922936838345500950190715932416552149023116887381655548124705550378964022757804704964528572256174396221148467441154747859644556329021822137807659011346358621651476885504735266353383721303578126453528615321699563788978277181395927182324940681143126339360039426656944806732314456221890260163682271527093237005474955090153303378430617624248553984968857225865674749768648131049213655396358803278596652680514348306272099457201757504353188733544334924870131457651905947798563422198103330061946566157106297666053521019321180120022759528950777544571371514253534208766898587726966092593144224999030587058195174584678460400099942340176686375101128990174572223104876865159392769980413570429087821135630221841102684677563002488534915146913326681010970294415284354039870137343743198961235368592683576761570668667067854652836267904644509620044937031014561712973066427845164744354199812073733021294586005422905378876562261372969560240653434359734763101378437753341026201628562688228877840588229209771131109145976295744375546447666510702660943697226614765216111909306746586400703207478605317925549158039598823109120674537088861308070876002297548319782310119261802740277978417935541906274148956614287655676151459008981871700899388171329130385756737091736030082824503369737578885040167671327018716439243411916127899925982114774341498584744825655884590134269918912958868688547039955882981448532810605027529117035974525810163986821837864237521131576683336735187705783059098318191737396761861448735849910807221220452272724444897736326344246181289935516955859685491782662032593341472578905763377303713501762104877123933434370876557888088182383099593529215839044325419316308274841079024618021990988365502663796216255574814703788261745435101301047541738062867706338214806167540232917268663924816268615602603704795818679126889886612907626489543134721312947962837389329098624794464197743400827389921560540534080013450629011790076101054294226782798950903433641788827412274786558102925542746262291409570803249286044741905882662880082380860836087579865710883269924976801556343645023484921718554979341177087147739658742559778202129426069215248181947097325878973945447693648880272095928134212150196656175807813463804987306518784022722357674235027226239617418421854358914238363898458821599818922807644091035503962987915389727004008628351321721655714132810221838896612645509888253525581176982142491806515167590679249165687467356612554529079651768271589103983564114594652671571016787530919603596360879280259386106122304229242160642742458770307183519863519723455007207050763726722090827678982451476728136291331243918783406226393817415011089670242606459001079678088470130046858463769886511745207576518940479800036200274585177010519104425850088228000203066874789454164619201563774891634337001106349321047681502656791871322534742039130537112467801279629747286867329085789114744746012958072546320504059171899594228893536997922849273033055361101252383058532305350491282110665466646276619881109838065444044282431228500100883172136752065063122634649342340887261476982272829306964411314328467074757484143247564745057992291416429021234677038294206909734901830084286177634370792286175153363925175876193576000177472751206781965989629103682978023840389433709977744984979502968705617500569981134788311906031215091684370946710345634654528162625310776242074487338583545604146658456834974558594645394797121401789973785675144639398574058399782219267870421096310920302559700066277485675954446177079738450805851405445565413494923558426748236341453503301091301891287594344927669248479268582187973599889434517544823629759522655907859232958154199964594965693662405778322808812640036259835019915302511448166403517492089819212633730384903861773906418528802838703784887361422888646560868627971608658701215432317448839433757800121647751669462933409783763919124506148938293005846639431595991782547754772231103719305662576292924439058366965561398668083181044755998323937554857759885943497511291834995016825288591448703165280788934180226676313461591866678581486896284164370685389480593472599029769430375337859081710847069836766714714594533262134315042208603851155701806935912863532212001052619193664280569477271394971602459334355411756541164780678876611267929466961672034611831735844594727888548928161928777969368812752493184467353591355232411772166134928393841798824449095529903518256356833016926906249098819280708393295961325673394819394220304021543756823412025129688298750925993854868877412496889367095182218366900609274372419017184423511573990081444842291641802784594297638767362699258328315160013294857193565017223271761998682387800633267022969372679130236800138525283841825800699255742057595023672236498143206512271788951689380570930580049058022339185750930477592483467310467375208978027838374927246833547163467457974077627029418877886341066244400560224290505618492250470739563612583536060016037589242979955384950308187582391601949438542652341497761244612935654161747231685620398752663438542260833744469706036742408623067661724226654996467546975973103610941422995605846477680022834371691420739356418640326981264474594905524910306796897492399639609501009409427545805242822179746425426336372373972377203683191770280922436201223556810930835174459507789230295654448297137347527974825491531714377996293744316896928550064426913743773677307688767717812995052121311311665207976168408313608496216639606789665460161008647232963135718183530876979952375519664419879000543231432593372294348967378768034248169729265723028019239681403281826651841569752955832486309061527407922516075091364016035201573393562146773241686823308194753940207542909735770673771539317192639592201023460329402766305984709490519288552709446489181592357842453581047590400612576058692068265362963654587843044773572258590463195761283748329727429640628129272981655343590394522895495043417973988387359083594329950607099144028010272127089059693090073554367067497798319188720623762282422893848147308329268368925285030286740151401847370506868740988128532608432362894672197876523191685976463029277898588811351366557586642078070154567531639046997493063117104000124271829289903306849332974910410095089084472435953773919926353519836857999053702042219299110136967701089951383146603302336697887698227460476859193018959746784152507086648286380091930491704503044688100105669334028704819675422155753866246539462812850739166253400536146997097022877406175777549897404464485270216001099385052790229230556701965520239139827991120518027162024677437505849750365972838911190851437001154871274958641049428183556063353819818326822289253276092502967864914348958438538818511454710221758046483422861408065509554712401405104764795937855102742048088752569991869918542637026925470318380698974615456973805028215688032502557390190982524906694581007188121830243176682596693577922260700829801393967238009902068199938625623183821717204235253991247114732771176728441238297251149376810445483284598196670037058601712484106666428014757052566577524825466354996248501200068834662174718153436315468427489905331558914959151831199703484431444492965057760410943527347806816613998958240637958612912063877218796073984744654068620204452823796946883323245224112736233806388070323320791620772482176765176056322608097167931272845658477711911044111526491761018650438856132168587391981932099872997034819214907171424650075735863336357375378501042746752966125566953778616917603758164929811210332403448217580357412765180396664175832715245120619878799023830305925859491567423923730798173658242759942139143784243421870965526627370836468053938272680732291891064604974156030719358119733968162610184807931581969512663114403131080223619870801391427873607996986090712448529753659075515980616129041052204824654813038588984327781648542009819719156241408947194246908701426539550896855886298337252274910480518317588427317794704138921174792076117580902111256914867299694781966179012065133753621704722175105086388075325156338339225118886783002971332288731916472077543966450809133443287984798784050524284184813147309292780355001013077998153160213188698720102295713985067566512789216492379042819226077283345216710111198547039977638413978220375708628499812945796968653385110164428606483773646458024689602865490010579574838187217300467402336725946318939493214193813475955417236141377549302198598757572023654982668985770743624080536502928706069093190342398066513045357087262389471512212899821920167136252974403538451744829999549513416675990478799036383369856940826874246798008853963832921342490699609811588771847827495070192143831135474369091690090857597336380069044943243844951163259539543355573340505622879587682543244984007045931610148141856980042463206879646876690628144784761577587078733402242419514416943570200196488749539568821016591113141635903963960565258856340615102545222128564546659348672826589074922881581579321484053778886075500452248222106992500857830398937176323252524817875859835839346701767900120161324743809927330514721283050489309633863676821243101170477239393346882046689765624421850709424826399651764932211710086955010509505355069572566505961969689922704295148802732843396960397740298789136801067667459482658908510178613428846126430362710754853686212816689844343902397888811144398769462752033900214885691642778011834108605708923132206132547210228359979005552533216756424415608321837796374804408530242816531509995084430367358841751848067661832855865143177135288007777800117770368593857906287846000581545741727560910825147124508488384632141418475498340149633969967442614691546262699934229134541467627089619797819928878073078176596823573666869535589401539550153674870540004291056172537534259798298017173440806434249501694438854862369079117602751881968442293513808360642109306167159088547422213055138777239286858299712932297023244952779178592430875952997092211783972578003919862647808497333480928382039793304089989544284703900074427980847065013005928947179185863080997756642449688372840867788599641032690782279644344065744247972608816566762885230666672064808569461254997918860714402113306268276127908006947496150258705857219308898838684147514109781617966680480867401494772277735496591733139854698332513787637516899039111858300825354419040841769185803107565896313424926583091708420423100566282722273370062810233342374477625166523564883673623483888083365049528682616545444939937206191188949204606601334790090893480315509420930054593475062242372041631795258705783124485902994236001517881961307679202299056497769233737124848273990838651889930508254698574324971495434273799498738980333163794865479164597265634606566115151411305590426220832280255139127735635142612702519933635528473429456472734767026658594667626985614196460439491602111247925386546835645170424218339122115215017894271224830621082841306506599460862791926324696179212179620431257348789266928448559270721432118077631394188995434559695772381280338373027936683188082597627876481775557801333274304695199314648623229121199176763668140937100345947203138599537788894212248505007567374263006148441570735463283856559359806397717794617184918912628544209219656336976064156366351175423481742332372497720496110468559566269177681546235358707830821566286604568061445474301642750120406716044769921273026757942132283565224643371487467792559870049740953946394039759324018111129810765300674478524415086608200629714663357576981512341564423001309519663576700698811879620211952001005948951303136727607345775131597099206099037530143643071279483152568127573239366319862238265369265315498864564081115779116571062179755617054203153706849306187532201188088823247770241120030614086649736952869570363800978964859490729273290855884259653314150188190712331609834189903489186447268532961038943206258870655838198482768008075020769519256162437987864168078953595521555865367250614965714346291193567425571253199949664578997654982793253827730609234088861184643185565960220960706131926717709085665999447907088852151227017276590534138821047137213801656921724332796463311618748133825940996903470962877445131989309720448824924487066010800180269765906305184939265982587930657469196362630809108890375253470704884219628174906222205710655613132134240613263584042385664531492473537687638878930601471932298627655302365591363854948501637893555389478091909395556884771875265896019108338161716782965902543839075628113513412859567984349045853020689179898327064217531988025687070426526937682867684038093896284478047244031987014193195482194155375606200135974170247275793000589589435108098507396461604628630639127511608324462069260451791858738397926162753741971813921216537388041808964078758321969883017864414634581053857141946860879053127425705546498635712782693458312527253990264330506405002373683830133039114946464951137864428200970784738003629676579521601691210743479813154621431231622867828716057025900185488526986086563177173582981418646589416434827410675220139750625384387001589075879626666431613953941260139229952635991318365589702416678473074442315814982389979122193789838867846898005352173569585832395088523043751232660271952242563261761239215382417795754046790767693758719285371722852031127295820692397961287677470478026582946628001587415014179066735289600501078068066744283495197864212567161561351120628696790086007048516807557452083593744992732838487615691608394863405241757209349183839304732058484227450418572187719182810830130724727297739665042994669138301536594768325532831272891475053143337717438915196091477086311696404272961583809131253562763681722169606636630156217717707550296561409513831111050985617078188495395435400817610576394463125340214422065860052597069433481159999516165955695531291268536305450364670708217750758065859471884823231487708879187141581935307863548113062337014393375775607950680676143717928052380446790055930579285960621931877554310240589870333653529915085067850920963929603150741524731389489715047096338663545691212477578187297310022488645713149619091947816773813503718739746932723634618189748682543450123932433856124352382358273399111311208674704510921068206587477176686564575382160047116932998867688706990586771026094725397492209038016731719382194582226896658199126803594211831822818580873104057088938816886271780725891067371962685440697979279787621530281298101283572122705978109586184144061518822367163483217107468572586680923128019125199498759877741639638990173395778940825726916344681568802966611673949618504210305841536017817457087208531351737248444837348744913521471575249407960735889055841214233301930585825364905738407898900331690930413131576781012338508144540379842233942358351436011635658828649604441183956608902740067178502988503648175068205543191301439430751138139018027029375026656888659615786067616848519920922145187595914213853138129244626224495960433014177369078976711408747403098325348513117188144656569306043578138213046088029008790048530257077363295557350561873129174120724088619712164450125843661978394334053467344311849238137901424091389011674918752432283255634501177464410857531373580684799904986792937279851866604486585121550849965461284294850126396312320942113716614948331262812560714519311705652533760152167772049245869371173477999055935386322059499919536255155990393708921803373388279737468317297473742975114581294866642131058129340534615690922044425386940604271201516816385248742083222243670168779834843560670282682729288693640831892186638223301820839856286834890656373222909906923664710244086915375453239908935036531387503054005364965491465073906730891403523933785549275095800943842036354905824548864213720725146478033714443762643297873330971864344286403087315166391823102545638658962980548768611335288672737089102304342213070467285034837284356240255543550404967276513123590185000750076505810637865800270309496181967146819295407417045922681470891172534939442543766528219464487743709445880348995016818955093556284428515366528621245707166101982609430073120227651733343329762741638997568173406063769489196286302568493699941987706257182308897417821214620893371170943670817553327334198946192466577214338735948478021118102152552485736679006197388782195398122337346008690709885884299682714672787269180290050309648226405403536617414382459505214104757721195345794412706014853381137753536316762782763607445790494006576133045032023483265441112015775526978386130871441065109508000371087443441639695483964742312167685879278018596504121421165221848145752273076883451553972171303281931872166945821921374164689171974237649177126835581828928398800861692323277559592414267396554710178757828508538103599438548906059912593396088894235358648958759099872711713206440941181297512464559919894333468916570114796801657558488415089265310639797636256718257207564748464448949962648419193269684835556633952951560031583984102137325072679177671360963416626204317687115989327725698890221920420312971914633320563277183690626634201162642652493675532519159648676189280690769189009776731337895938684773192950580126494964708627968259918725857391830778104935511541817923106469740701022029042780565902256147255052849949221003361949482174549654827656911315855402863543836846294660755797142258694199773479688407218311146856339561101948963571929168074039578012756056064979911129536583060698131818461931701832935120039783129827778622953783903439821893650796033589607629722414415080245443191559083474958418684087295397534378112015436199717204200194506473976301320001605482451432159466690963113780746278709622360812862941696337613609179661561050101457079602018461210647591910154276612475630109757846076878472650595958733254069298537832745298666731910946325620813456812750259873887951754694040475718123422754903638919280052426217184555219964179435501866739469495987429818048863234025640145537038826203716872653957312718201395580157303009956458955153374814881971552418982270820385461055897040759189494818746411907440891842634537813565600319515189894235654126658737505377021348369056884250274828849081327291410430118474786278211112449583526183309080157303867009242324875473816219468192781344701652219110249155767926263694494767211290403574501585612894487600667371976738500705227490989205958171723914566992249998644943517880645598638356469343834864550655021067570570089803756677034103644685200573468285963486176941174313774169311825467377861295311606582110045833203901012103581304000913030413788936669410313215471221652277171988942550828526019120790415701543729759859846331492030961824999626516201859786883959287571926105642054117708912351762206472829318526585343607020915660708989589360411301622216235399834831101400590501579880892386968367572055514730624602550420605524023127080223754412104725566104210662661079545563408437336250876185922959660607990096263442456317375902391637240360122180144060060923318019551443953271782943178921362698566754411189392425231558795814237506081342147878035976028225359867109784210248497844556104052786996892305706736586243843548234708110895630241419416591002821014621227907866993868803498785242567134244000819450324379674622498822958825971159464526553412763118210641031477010137277455640388237029681791954438157157306321902963053609795154146500876013843106106890648719474151431830744151643934409073255932407818270558215103283289115108340370620447629858090547101572984427133972348285420469275377584855663349323806605102617684614345224567888366566833991766648928284718236883206650238820883502937799031962532562966358098928183031637590881003392228215098910401632481054259757750515591661647320491590788949904876888339027529984371624558379676321386984390460203128261240769768538525202228866001652995519680805962933527172822432166046325082166275336368802832442213775744602030118764039359623130752372870460997664938540208952842102606057214772847829813046102909724341484686057768502611112592249655209805046115410817001230667791696185642261567745024755518271314282097134429108490251849293895929384052752436628411718007184563312444115158073884299055206701953196849377881688284548334843129432020305685573122683289156298296518467136091249212005963583158537220915105814111742897733171606220287609518088361612617604953821982990867077246698211519593113108011403670098278829974746074148370320066232212130449177517638875833078375370651297286145653549008099765112967025878727599201643061519828394092206525919866672344835154567773510879842530146955274897911553698781226500005102030943785674190014638793370914889674383680506080298846067296787060363385438324156365097800840538603456339794704015565599929392227955017555629523972887321434273275266248709031604600050517636250058031017460183608805840556438411367978482575055259892591847559185858998996635058487474262112608551495914703169464730867492201067122497748802269514402190635759877689530513216883239734109411014206073399039636872797408096666389562643225289642715396514202684816226465342623522463889508520010467782962412401545181993863450200022174134466110236823066915993991687755530753708251902840740139930207730472712172452226341543682520985330959203975063523025557943204790362571845120116556015527192925929849284506756047861435425749566648093622682073066377291869681785948738409736005168051602246201181132176753741653487068536436967205751738884008890185061215896535109382941357810756087205097757893747549949434096692867616788997896252272217992388642344167858590407095184619699333849317234893520273669714159928688289085470411194653981730942994011274854236780725641009665679460022324480209660454157969730707509411187008908569291823802262182469140606060741263351713447180074391031247573039282982928030145571729425141310830010170292465388346849556726193482602601123754239121389557701393477544951363011650181085100046562902442543110635339860542521273261579362646242891329777287249889328222876048290186357094440678717176636645827820014481163873373521652340973722980866799076082990311784970329815703701211526053404088074046351639346524212876825268665854350618843867379552671358984797303698478522772295560668607749426778213842207938940321025837902945864585092655880864809010704605771383336912082753442326006354588548201914685122364697500263301838739544722397829448729507113514014838543981270907942231625767465665597537530930427101329925122445118135768841924335166034711672448010605801098874577622560276614080180661412646950208908254803705054206363106698835349722815894909633296118254840402999096651271687268978392914746732781827608574133007331281179173170933971228435698132442987430146480849238216761463920645817437362163657184312282464825601153171363270525288056402911056689021053085923430796337313280042319719094324446291680346627900815695782202684255748012993256940711178311574695500597997757214498831298146603513314811308837770563635406352416774261993140632568196371671165659051722809069416370765426844715694415465517720469140756038824500732361438580161941463342333672852962925274597049168704920504322427714001436816614293643440186872614589419680076515435321571112981066145260739651696450132188269726733465720074644818742997686607972374623786411087893139822754204928511969093181243548514899065699430472288466629568078195342048948454704073762441300563455745648079882891951289489254209784324093046940515984097736236636761737439973373858983115508782849289263358926547521297574247654131093991239927009168571075634726113689652477973588514826443530425299659956995002887338402862491038813513312513841521019635040657171295969460983585362176910505900858147597455930180688352838631150377744103406828418530854075493682683877222442884693652618522206688080839575210321557038471001324528427531063863671864877621249476469036071039962678097411566447044212329507715615879223251064220090191793814857641981562274557334206330647279700645263382130354630891536527686026921193392560440611267878970978807085133468111973940456530504589198699941648972311941745667473057778638232257877321090880729551978121378222034797687129183524106958620215954485817222144276167734277444458810414976413525489909805461920300116225496129782616132684978870722282226480873782373678110081932316300485346817269786729427764624922618570871803303210687482641070552665974871492980828056194746880232251561827215103867969714642194892780069115564907414368464746580146492046234163131929300304772643507842154834354884116131801826072677943471942686098788649958224188779993116453175980727237102305565228390254867799545419594486677271767142096776060259600217334638306096194202909794950783542459787571477523332377973880222919886801244557748568689652171255617211786042179098830843883872574949145620960821078870277465368255133037549808993953322396299316139417266274079906476093073888420868265296066619347170742372477366135303957261860769911178464300514433223814422285630972577072399084592620165788243692955434698382037911020333535536535803321629207582479428896932202968108538028913304204182689180931415824272623158156307359048319896773376930325072114365524850758977912702833230946966221759798755183267875555209936396516031385967907680675474087691979388092652748099288138916969266708041355901623266819404065493369843085374353856187118238622137124479169590855977642870824013995285594920624165057488769813470064970851338875269451467569492713032075989426873195814548887138750577509132551917533416488971095670729546029336916507109767297431848501766218446598620724030775891446445653315180575343543839042857556887364499372264748752866475230058215097274955859477225050143024821151860792068339679510275198933832149343648984906207538898195587678817946841318997942943639368978529925785086381556880700818695658272338163019882145256338574192284712406118228695693774121277938965466250419648832261941850487023349497939314934044375273635754304394166217159635956719417199373670301242446843369615085004896493254443792685990815321364790481208876335093543414820028790633199583896453214881303329944304821047642265548329415006482059418413814218212116347539725836685937727322842626217438399028103391853451284540945376985787741925732833059649703113085440510886527438142955289052321780517752516429226524593454541709575996095092720924879112363418864761676221833209868485380656239245796980401328204395173518742907328277281511517734476474072393027115008376224118694595584873459639722701892710302172969663501278302342674634614835345181067784416350351216115830870533744233176996689298141902017233441590187525877709901823725515014381234106111458545588107972093289519589529589757157574323684972522209556402505582711477567732033118034343057072486765438643279847808406550098162349498211021239151891047877238560895863257574534953289208126827825894408240116688572712812332784582554184781815169690625846405732590972937700058921483642563787650400599415425950190939125148227884007005004944861461953153687198776289247717498240663337026610937988971808871372989698135790309077938861374064308063495777313699313379999155182553394596718904836412267219363072334677885271126830517242712507238113967852677534341030795979113342212635964954335406288912641989666474753751885819843872062286599756518673789979281192789320667987741050371399048297321339210943477633651118271877951846715586226222093233780919131367536282607833168603901088618506144342150855449165119279086830298123526316056703626897271770526397763444458979802500230156517293819422872426073093454368593577563199143653933884170880285879351562940509793703148165961088156932528102253992064651883789975199212559826209904191930262217665155496645587948255033631294003281525861080765619779393863479588363476642033632145449904505440689582949333720828076643541184607506547204940995078255567340017429177154172363079508000716088232187485585564301160826299159206784512066234208314585760988135111868788856699400653605748486423838061205959768623917021353593769834480522210613386125151353492094631358306050437666657266681837851191964042398497696954464867201674672359091630455918591959260307838405797341631322658132165482445412861405148659491450812942861305145651340343786472506458576498566072616576781083481632891914569589643550467011666126868229647743658471668985435624060402887218487506315033007981472182597915467056497864716799123145847769381642260692303000687888220954784166727887564637052731797010253491732133535653669806317549133150122744840683680228536685484723789890128576651150931161638223343134935345860253386253858965691762232718523944342224510771518673390021067373627890909501634585104320372101329155364820468211318882539330206988000197294946343207639742177325558930725063449002019507074358555281011194972976221512740084351891325409592853452797614829809101095253623596154167789629193819477198877503116873639432945170289793101900456255957499108978223680490349255863244976250782289343855843725173811810913288506763106906073290657182275418372850249586955194102948254761166806931626769736144230559504483697104890307668968966879458510448657090700848192638652938780033111178099614480112479419973777602720661362294491438972011239821792057182006133645742108475110069275766971803488795537222625085008074701169812212118503400067423196206949285632831837605691133373883602550699856144775651107687838497199987285570386720323705754011232046927083247019780447724718741661781477920589382917465752695484227592364413760239181326067060344213005423329723415753054491631190183840347750116874219794904182210943687543111395524490942449480876245672941534857531910165398011559862255142749025247537200202331008757359875500905105276657730843994480357798026449102988954049716428370439069797138795433352681793762365623069250025033766540956315561564134592337341284056924575189845672987376947043617265502318312451682797301730875664294439970046053027180698051807301316820677112496975084141357620513485739461351078794591717187940097460719966048555806843975310781665412220313475403683499403016013972477624884813991874616969559706079803683945253043145961705103053092838632940809391112110046068882075267795430954695671973655833757053566700192654767516411040184104006210256911130072945637012864367372017530399136861011102649972711117364688464296689639114279212687458833211971177263308099882592742050273567823608134733345245789729689791596209249911099265174010452803076122935006496786886835671688248307889445556711262481792767351406408255581699531643633871884969125074288015952417885625965756464399832907346895802469432384259344196365732916274357749649685559307099394378919466009419000281403794968028247457858825160965601846009212748215753671784220576209942209030450115471549459379354255506104007296325869121101497529327328208984450157804453476326893655448828458231539983720632911521276438666419204840694387404267543189712791577918705397161440932550785376187202491367017494205943034097481359472636057382491033089841789012966453197436467298959020904124460936085286864258391891085409777201178077009651268788903870635226516152240054097937074059671298876716324683945392952616058784705793230772931743147209720631604869417266021535796851739701238749665218297873006023350148923021329798318783015489715436496283763968593765626105220413950793754308414409206549660882037169034712354223280307697395723955079068297480268018538631775856005952391384224993025688003904642204857774818367707577746693644457872844529876442186529223766762596132222815195988803542778160730697142743131208649189995071175303022383212220642279378397829526595707751834237212140198232927920322346079672623227455406618114300029191075542046606762267610268275211697195843164886465197477640252336044716833834655350475175803412946478820726855316022262498530030701109473843747649667748305287789240155473514114831753855687054145129915750877651242237074470274240448101563181296795691088745820069631593546503572767918069394214714858515327156922905510493270786297094405723509938109182456766201926870489386319183543775379024230217468445840300405998612828717134711095805826002357714065802123488916998782671866171391453607738845495955186133384319619547398505227987474717578911329251521581468276766013064493915581180832078244201636024297557525645327064049332204588193766414617280932633941501494956936274825719989003288088598149862504778890045842850615318911522303284467775313669743277232447791822133328920685834795885048527465300474181465291152730195620934546202044665609457768804518482100373116260559181796226892319065449358026357612171685573319502099281839230163248914993670043115418467209880501448269435890258138593443003720885955145336835131539644618085494097103628243953117554963180200206952468093298231172145185531781488419526039814124352477136684801657108013922737038894830528412670445685366225112779647347914403509539843388447774122379525007936210917880625347384744671973364199170428949894648056308189268898475467317304334135099815196399650844068189833410088595369612911350974633778515306189699704350851760313162228251644666963886827032907305396270007175421767152483916384732847196963684019637578299283276012985012057405537845258228342967562702219356490501884847994816505220845468816119525122170809704191485736504595177145681673652664784465506317188545941310042303179703853870310789477949854416218431861934801626324982484935471659959078005326103016920449895521076916334103074977792007045506637637800333055208540260149846234140920690325678536266312365215506288952529736065708483347054041221122144717024122930402495847200433409182081801277680163458325083646320720933383603807942255355652398215227632062047640816619760757152148199951958567236800685860939465847321068369769653853800084148812305721328087729447516822112674485501960001502524894007654157195247123129157898310750335288944870026185211283543421789795820937425149889573597767555845528924008568991820963814118343540255643217868195412778465558960171522945080533149957821159816531324576298704599742195411748843412974154330457502348270861778303178180527272821589859608296559497903603537753787226953461940713044914308114078190691765673227224863543009724085053993301236158937063636079584026808754501202979865456021924109632682541178114632284541822787604949773421599956077960507718469919782956571511743201442010248522792132439663103514085729731478078372128214993955212303799585849474831501037355443065714635120329787729979795085236315305649273175382619254530162533780973989442013681377695242882481225444399558486854158574459663473814142109645174997694841973273393487183922461277998464914410043612161328171573933137215249168920875407317707248229822576325029221525611058839422597594836600853857350558893085415566592605071773223200463580298276586551678285932829983628482654772859445352314465112258603082489357998284914108009163451595646352273674186205730184844870091191314099856886250969623613174444437456629384098716792110983634233616197980261958828453454822930314779209638992055572810229320309278225632151434147515372617252872458187081101011620290503043709395219969492285580804412686314069421148877669396188664002660741270869467376000199817662671278469274521866877928167438811102976237062207913565814387008935924089366540094863027896636837145200804601741656286968624763677987148729188430094655266210039242148365438797759028898320736578954631881338323892855298256077619636066238690366641419378676765101899937267108182383579340403417923277632606021399889596655651520763614030156853394712033468982849669459165300692373554134114273611319230775092978392947392757892677882744257144616290431717811828726556642698100698422132640048515670805927715506317079046704056341526490739552860799086429056854223909683913205893709261580257757418795636896642894424220280083429822622041148696842125942337780663502631570138208098045821138750237454411964988516558394407702111744768537302982273004961038018546466951307098464342709685589245436963971192381111302942729426765554105576692015706106705094449658850439602440992876865877239839011128172084398061447795661449715679328775174760384439714176697981042070369598338212497752385777921044290306181205706136298590006073021440234564260931370555368970239618160357746150697710271760878675432951442484182052874087763567557625276122440166864261385072191042567242411671825974310613619229085550634290052039547487578557232831320722309503393387425545107603117349580009602458949235943392166873415813899411470763909106550048765943257715687386505706317785553609687678898182938418015824363712376884842685959492630193397113687413121651764362328738982614981035300293359305873725920629632939071705679732436548367076894383848873350883203317732276055585716651828993864730749403717639867782259285434420111000512200222654069439469175458078472850382773412838537736816469352180160979247299538769549088782121536810150118246616052027948201219237341550631763003882491921417622911675709089411402778585696455654274932733496072146101935281869751147342042171754558186483396599317924457543244292085086461546244068511410573593385630403826708953949247836737582089206149532454736778364170052990476317182766341010505049604360804383800792648237321438403586093814783925677875236002506260433154311944799854795488591658593067829352172926469983468244409219879971122675360526462382136982887966343126561446861863949932193552967338875084225013151224001485529133522847964003617288620046312701833038531532568847444071612388558653805943687913014177885353629761876462817527114234759432985127361661202215424990085728351488845754041213646963366597633620959685029043162218626403255842344598893674477286358197976840625958313191416968615861598096721459749526697603707006498130321353513037838611903811495306499061011857450166532223364945737486906797614897234862132941171567964970832364374319145779553532964794501334641376002984208175104858164084008181626541547819507956315595894755447631693797610911652968089468666842157441505488506266045132091179832761419240848034157906458677672108736404150112357731820730692298149696389104426664726852008834710325970302733517292871295383949254006022892208314986324160298978663475701733051626299914109985432285599882933792282919246970660468942038781616282215490853772162250888719718439075211257765392861338980211529123673004282838421336743545568253180741981847509569680950394057366055381631660920116589837084547361334656463421246761041135017772974643676931927463772060405359806723039308711502743863120290853519092622202316911284701326128936286316296149566986610420394559632956641449893093997005893104564713025322265916975397930007858648360337378772632433002068839498725552964676952076680566700000733625632258881289206207306504856003521649435289125212181773060606026215374321290994394059390213674291586074453289683670395280973137445465735154094043948614414671811398113977108890781566290291425158666695098251592187778263832889070933997737196521984486143422011550626470762420275678172015289303184128988822046784758117129368751065161591892102656720994248991752067484734593634895078350319713163565437569798098785029884981517998316564515048779281937718133058102358057077519541628234492146292938577757951928088225039721198951269995028648240270677559500315783499421357642148157500029252353301665385831444579430887078272671209906882355978994085110375532785047177183104631144141040059959977342893636149231554608321250372987130609099279678975636324297038847432033468633630619384732806388132621008438467797339415669044442483471090761243943882422424053208962395342423740453422865213616287308535562783651602702585973856818726272327249487015927050179056121283436364245592151914072335135300944550791396587380835795928492685843338758643740204032416476450331527772738736962964609520030938329213632306799169221729752769011465457515320372253729069070647886487835159425237945818716657234271964225128940809968242927731016780423394992295305999518173473551563043854217377876258665968647662140639335346809054855876306188745182416549040583483409494776427988508973179395383429270288131197063020704602259768661035748898251285777370757663310684715014561935786637417384187303233395064400757377049661415315602535394748802723322744187468160904801836792538710193393565864830438197106611460563940362377088665540803955775554648548032834341409908292000621981805264053695934790585511889573863722645272834268617141324106473930562264788635945720208797893672398771656061627124309806064210642390616291180795882987499182083777391377069351241095882825106450538061642896464774651550712794500760546564284879944673212226616403473512362319308066830720580752492104089389460962511882867343461747970208925058354407519580081185894363918356682098984280371620852318981492600756855944995780634080583064297083636072967323540401125950905662548251062012422135222872815620587160722483731517754104388446581715624788921322488649221365396802604215064040401273117804098423349120735435032098359698694371709253472989396654630770170415422742662770424983464897999420330065206448532187163027425489946807650752139985296475145350275633220979881071706781398349238510972509405885391095399286675515618480332529338569943470534482708478140482972798951153066498482587481968627037958015439302299468129416955527311522585460168768730881413506435153472103025008549664980509892313556236025091502070941417105116314329746687989566511064215003553804626932420064379563204370986032706588245595880958884343482650888942236477835185654756299687484471968242830946609891917689498466449996388119602847474329822623893088349577431018641251215248954516958255133115483692995014542530944093069533340640855768044985562133394193820044332180902919184801402141689881616507646009077265150184808969712474878167711495987315322651589543997964928343370415785050943471041595141476355976416074997710789862120538816813742375575740529898575947042704055293377436540484425641550557888959384250919235942357862679970281211292021604395481177584051208387217231820549351831707973053667548901508654689647359444114225977674300546516052765332100871167600479928689524552040047917361710582414124808458189682143897561730221770991567193113829529863777849750475017803668588382023192857864548166761380401439580648037650830504342388142088396443403223139616720400633961341565613068436726408009115356181918861178650071516368902042559288519161813023479632361463202027912198570742332760767551862447093931197200898095610669203546499138246468790178322959570608724030399353154202344210594176949999689808550296196284452135848501592452870738387031107807984188355073467149109977452540988546919152741006011470803676018463020372572211204458274566599645197689571607840103235078321161600054499498244051715203614237643544853081934699830872187490140020566583352349854233316286101591499908536786474587875276626387968936456649592884304069348758200376605543328001366712859928426029865501348156835215401777532494614196989084437197176180013359244032692718973686316429986145662127426103745258415403063612586438318556314579034136132793696927874798287619242719766245892954369129658341414595248113756226929279776823265588315858484295088776297173068496406738553889489603639689372895995689731078550333506143922031195196232219753058637485149273538124082378862586038977815903905875755510853865307890981837533292691026034670525664218031534728172942606741808287925139542731535976378567488553404338861484122838544253080299608635238282813649483549836720212841588067656106205965853096070291745103924576701548077714368000847885854690081306070930304703856494329604682822327754091961310802596172937129778204206409543125174464380419479021817975583647215020564391352168839246828158290966225532802478438759073120305767780767521300362672078290513527294989716376699318044564155586107682378615656190154555146542629800449996968739874185839870874343468609282111312803574447098374962246061620046752480981038225759657170224585665656865327960487323258159660887435595959923567479489578104181578263921215798156752574552579413579401297760606341465973227181125670766674036263611177785878581089536297119514522579652394222332724392293354018559007553259457560640101256722711082475745942699061818362559159724531163184254243465024028318711459317939893599510280982339082075569077940932650653596964162184326925353450547051111657848257608456559603043034706007173168464025925308377167169122550046345500405552526786397396469686134708729596623402949301961769358089618452063371383228233189228782459049075601388910191818842200922047817642572798755722310052915559035478365317580370893872033275024201990383666398446435159177121423010263104541825834575994389509214524930220393374519754482286460448935881118332050573160017466499519750399132952570166609860007952046978304359519104779919295082657584659709580357562347075805884816943919192433608735779334720436640609531912213415561191709134477649512597835561190565083393836302259193136885378906024969797021510543751304147012274766698920125788716513079389185479393056632524257697967767812220901762296933610882533056695779066435274780215896882271496227231570209877738387666462574548120923544700482420384298999644922731246010157040541977194856832240515912574360343545403260659335359745905212699879392349578806440053228839989525270263728298833646236912457048569301742938654743447369399982381199558263934047225209697239351242123683120376486223533024580604783764831840310724862398347673328354658682950959972877801913624358518270113261378122122126359986288203457935893159071113611772117178360117382435518550368624816572931875939683003498569683108828660388618963169046044166129869421104802007056051339755856218096256345714199087359120780822200135987573883269240937695374802928381243996462827881071967514646614605898428634544525329283030028425966549578656160092594415413510388557423134022203102515814196013926230804152094616885367014889534039703080608101371073911621547102106292624272454581547110727766171875721761874279279677727707142831777560103563706228137940788087192218929169273469825730047675734958523431289049182908147318301062149665739861976258979982936767389124349905506917046439682169749569975405674271230824131306761878207675192435840584741318152271767287073110936923591567761055173216738494216418586199785226536798861932815384010830136247915012299538846246361861307698981563897292032378763329956768434766053828735682725470970154469695828066342390803829628725532007698722069535861372491012646298743914737146196913501227767611555370939220642369782871493320014168367737527208789003335254504378073075320819432182786424600041386546117114769262141022990119714003818011823187089607792339175281157550732810241586760085139951856006228283632697994728516231644262580678976683215506956717574697989875587245215403563400622112227272665959797645173316011926442471611149195474240303076326045245545773502183563535604825619152688184192627205185221838855817795999748802148025318817764259885854033489060898274387705962323802642819368422641386277109540308180737719038047688157126990866563362684514211439210430492826335492136807887941847181191777358590364392588578375075419328071529811983652323346188237654325978055047682414399094118806939198328867870384539079972863507961799145988991659074100262657985598609078908501270358697487800430905639282063929037954727912693124138444383633721063650540036558558317966532584570494903057409103971089018204732585011834746260084504724913069379462015219470246817616896230291479447214869540588819191761882777171167047341732585011875405185368089622750721608449321589944910381818196231227039520642848731244504850541785245497324171582503471861108264118248396480719383104404551721207426174367694446629700660547353807197638915150408120037158906325390851096503640517675363438270074372061970470460567961042080452537472636116809710888322774189790912502535981821888118652995430315073703039272162191403693606912854457985949317774365808891238969531951130557843322957312545103956316738586107877651546922332513793412320852265720332813789888632539849319680774901016588742428207966821859513535939670333476773261693250309679624871997500586329067931818636597131823261452342971915888855301874180175201168258086684433499736902772862784808244725969765866786596696689180314748746490874110934530987677882160605645408052071065466493918006878105151514364563941659673311030850951593859861544146012880030709652367686522059052372581013938976680131579987451972908477604936288993052494806991524252663520425589732719512488410607157780160622390132760652712727707677842658768715445630619782335081843453528744484001334456485608132796907504489546227791792832761439522887594827457492229795391353692726486322421959432646095382025510023756142364203642839008002794563769224049828985464894948294951300350037525413394659760305327115215342604268334921347470760968223401935851603678230929290625468217076492109475399123855340647108975384700910490534063597286015640449050316149133917996221218170118409128235515579729578943822050657083167757559051985248389519852605509794442866869258456274910104818947990663721740457534800193149036975368165431278461868669863059259502563829460023769778204220445498737685931948860173424545358958497504694789866558973835377384417199189206437183630651868575133721251756103974378825955972140895753864076705007358390780200630604931956793016407393023836115838323751713847223822223038517622980281662432927139335050511210666298124363983388264916696500609036497135086501746232952172390352398451359670695420403709243416294548456661074660430891448431055900167336329399813370948796091505979340332943048359489410524624526176153746986118272320915506763217889964395772629406939266076692069157742556018508846900846156491933936570304503902790237573216506986268305462713005112856545083184645496435108072868200156100476663729200185038208635787360536109901495460045306162189012326358816648720521007444447943877120596670016287674334437124098264249503476411854853904231331353545517436894572411055234966137559191998759161804099159297388024526302598534233010136907883788092906025752435153680468007203624170972109473385566114049263532025501488889598331958117413044256579748828110775586869648988144141163758328476376921228779369872693316493064497357142870453418963282428981484736851943591594595833430460295621363504178896738726565176628300214594116186260031188774761005080034288936642311232930944520231076901341106539660827857077736481556960085102142130506196334105320872959986149223690882269886353222130726122645134576498989764427936265579419763779048687606957031049533213108370871925280680116015690408298204082526752932876396959791550623632967407972735956234640270009076669616595407180894494449844645850000527323973018414050701963735601416295415899192823964636281839709205382484898466786719092640294961198516658481315774105126706444766986862996526238154421734477847077580596593885852583305410313114206264419230361474158144072153567161967232305445421536784651919461126370556432040690169333716674856533627377690115593179405878923705924732973946592498125205006156121989811284663634804313290455171934991099442554825957976229313398267249365528445821945223145908277179183154886538584503714836387275929703524520361510483003940813605059264108531596743043527398455245693562335127124352765748779460826774308202526065263264558845478974344734751145184662022507029942645527547401357469766803073305139169107357426620935786337503269177052618175083477847729722577160791726436772131800818804827805924563521122218183489825220598204314524980536414812756377417956019027839847914851262033473883691848419362748770367326791027522837674837218880070071686320823943792635127821850427955709748584506950992714473888570754258925748265027593216420453891769896817467134507257875714635388583738358681366309214984249081170664995959538396722233249540503289539818569918524402531574982869935339932676478414327922818760486889623793548694022574328929591815498792385504918843863022830282719777613289816640735283979421767754305331417398361631452307705945168390503299346189680239783446089462350077260016270664836916666293147331915729557058050774252561386643423673164525982573094445909936490518634296896988520121755170303701633351354558007334683319703876700820814415389511490496092522407945896339004672436734059648358716088010717484119745207602692931294508839459142932193983402170118696779135733060238567473801745800548563331733943669534150699917618784848629950735208243997889290445148665802746303263742313730373208946740560053084226857224147928785911419958344281850517933725238969728731372164261519053237437059757675183139099604207340068219146827149070243085430893911450852407079953386779878246487391204951254259993366322731621381056249489176963859068188253013612805618541230044077175079773292894997491424296508538263567293267513756704728715521155815837600233277818273459540500839030145086804442770616541925748962264555373124940713744333464137643632861421653432528691525563097524842659846829652657988153295675793063951848137432591009833283595141905825329462260893923262196838966382906464515282312823044256034998829683311585822594604998638851147572817282399234669658023311884685644906227431777154867976740051663246900172547324817921616244726744241658010729962451075085402894288737346145393902874888754249506170268817444887588864369286978145535593420486577598098092906366444160233470642633297472818535723040815436407990944233975352547014506580434267444421420902031564682335075787972728133308164065319974197621080444269681546714314075501009146882095738121196411062216000825129602799700547678153885408644570319515723838848219845263897605055492319901352555119580130815729723132504671875737456332880563197682559075224967715647382048697100915178221656039594514669049276370204143045146301981180266799735549568316478987082805845518088299568576410458781734813872511103533374632399426584011627065899103715800780440125374576692485632078546228644758494415735596835014801878790399491712358090973393860482763757591116524107831513432194172493088793008904425379439510414816157484033734455005682609814453055067427658740736634349323063657728262998626494990247594243586549241821476725952071358306557181935731421150810934603244739686492121400990169330326219395884536179804121150033334527413384161820090869752409775205472066453081851372823011439357221208416485247748266690373595807583622868832546578298630282417403537631645707808820943890991457453594395106798546209133371567941113096424229495674427318934546232964937507543809993028294388590572896175576463260545673026019530325472425980642998795947688585632176440612752478504162348881217967244225756569075907295024032449627198184025733891073042555222945149520074837356006074774376558334948653889448895470431764639417748410935438522297057033694182243326894589606387991945020669058464008368284768607040811259831230477001044159273327383703485520336098212108289090280757101456179298798610102695842221814125675061515282104606981215726798556307351451765583576642617291386920275575304837597607988672651867058941130813077967336877472926940744896131425049047138776277829227036168234355664542613319464830272481354877576725061468607122689430223973628800755784479615378000110618938333803938056486048637127446374457298004385094517952871919591098424393111308044203678087798423075120279488647608660292378892951249668665247862627890747832862110093014566403498287774630122221544212431707352830128309183709444560746606915853143854838422805544656366190294029409849841285362963366628687578994796942242219782493261129477600515666133469276762522603545441793592744847051260333374201540261100315793790287831720074403780099877818037511195152225508695366706863631261975421971989130107991050937660124148283710248445778480665582327683470744579826839008641154461867487434183432559500047216752920474306198274509589811524738057220857955861690151378755356420440980173828691540744693290564009501762330995692320240112429571675220738684602439451097306717206033549651411043429695188440554576807697344102997276698895167858003223564042026656698650530732013722550278655484484715569518198913373639343770702943627635528282442455738054459279608908646547948763116933239870570144780939277379857536805895787394582288636743987464806350142788587414445976166692952081452643383702254635788063673339404477187987934915465118062950903591800715687473452455518295685521632811851811205672325324194110053179670854585319840787886121147701155547534349794804865840817159695541217729477472490172295607098417442236622324213969861425818985292338959653319864517009720454512507787392667568188287542897601395741352661908095898905581122733068848473014489222721009123771717988340076663910804922204861318662649773816063659912988600325119645157180399620966114894340596453484335052090742133562611976882045549530555748845359696056692387631150650682956473770857699060209394337205559975171583505980536476101511530815272937885638659873232691792331299900739344620458346963362296848184031670625743939429328323078500558774551962021285936431302169405508938396359815942719836326456020019714419423839717135019589781784585155673204338394132419925233480585305116505177953726900024632278447234120051217081198589429821050055115613653828319564399186472261121762520352995717281097846972370029292976573157703739602745351067402419128428010502133843262872916875253026672905407053015254930598004870398604337061756576566652900453786728904267078327953910100286973809019723382225005072573385678222801527522526674578779106920279387548804555517674544398644414846069194517932874680330987881992630627536814926529904845602222711419038892543475355922329018154525490737201812368859561296824287687667795271628436802081632158990017348773175998844713279876100069772010630373461187415010817741843956403350545995135496375088991614662651201649715908176198574062648755514268201388977485279503838979106558989735842722217218905757829007536386951764718695203884678096297210310167802989552118424018052936155617271684422843216382133736515554160604850003943246670343656102844375866534927122065447359483337955530847784890064949971262817395609697184070421160745007343905013408224297817969241666745500286188117963084693579882745515330525750486700825911885327386540057766018835487468632104124840547275525456081987309388921733366974684230543252299617550778785158678832851204179687645965660413523239868296385268028501903324569512161541513419592083570851396839444075412295339220995972072383051650595503541726610275544794520857711323719670448617704822425431179239381334889101212467257088037251471051379598401393739195554454835190270226597517703732949514481931239216743617191903273442678164904943818938534251120552706908644931193861292716157930092105278974224660249782754707564115177343860816146243101896551018343186521160392465281862588597034392374110764875728137529555928881550987113624387239592476191898184650241569470707809760342229204288697766480865120757126851623446847448039606410194062932634973830764745768503691573473263203226336610317744603258401248988027283294032852948855116967518722399736170937631134160133966997425850714384359799024614992613691074209473287507169144127132158610820236161303738799186896819149596513959017141303070914033939904299470609295722898588913803365251063344831743662473531165003540673331697269468282268713044551062724449670387329499122180439650886204067758111821090724078375808863693572373016552304651124855525063918675963736699080472656202012359094882000921413404341224644832771336125109153584284587821502145258777790525829700358975133325717280781529340705720541120989365567468259357786544905161057930273538620690963689498869101574454489322341052991375370002982276308668929494697055711346959402128992754370189661068548735367197993490419706550151834776194289285249154321312399738651751670951519943843805361133664172349965709269882433698208578001705062078242715721255750717802058516488976063703944997066908203443200504800367002594039885293246239835456515861534547936245942541939407948338932127873792845599997572722797491357320591496783550415017623541803007676691549493919540587946890117064095314940817011194790160448021953999111349233417207003501645040069217613500739445959749631185594557446609832015455534797513156441133261204883430463560960110011070188919966861916754362939230132874333628764707286678351558739589090657033297639311619505391250376672043690212426759208011065936208947447697769511292721506036019862096607176544212142076468369834264154454525035282820629882310688163609694868236241531050191599058225746002897909028354814687423354576437666982071853117383678064302095487129158880057597855325615059023099903936751925777622842078226256985241038678401944845109452365613947275299839968533110252086475692651453472265714405834742285885940374777644395658355867871029726702761853658135932131869378120474164044003242261753171822943399487638856333495268452045482698213854423717020699065216722468510543344700737754006028105104496343497026084769677039146016943898547173869006051025719535219138743518182569724183479854974263929833828091774714951815788457239804157712492146796989510639749231991483229733754245828284526420867819049491353976615623461685156952782521788994046479229753706134089161196895342731186647548361012087307077354724686697285864755502868199693413036205374054653782065169627374248450412469094534627362567341319563985974613392714955003865678852471549071894883120977523427713097413507467184105970680060278262098286068691914941928370348610186519844280077644187368801664346976547366305396510451197988633043182718194299326489097873643983538831644426052615188897868633564066633010163967688436938990731377762560149178741836199036578136033461399882888294646805194267997599359483519919086997659304146751712654620310976339751595092779296233872508086468622834650886167700871326057048481527538874808859278644503541705943978911259421209644528785297020001224288524283343133229749774021712260640963096348763841074883887432139475333003633557359025487995865654338200775199578566823607512893403434947825865656048655404459671470210620160710431186000088583424468088968060740655775087413870799247298058635132556677450538720340254949060747759717933933247795712760932727176927583467985086280283268590244836778347976208766692349484514423437342495230537870843920106108211907574175375972682110548588333073108749034641889938979966455480245500889502914805715895824863316501525339156270716560101770827066573972090643400420999428869454876796948494288308505194773561097919247569199309599345471053021259668646792695664534465503165038717817010207786521810811172179018558904277359082381403878919490293918625231143096945845809475261575424882720525188116572221187002316080943020390068910461812784810438119121010901855941385553082969638019661307717001216261315829206651789136138075736010461564864924962648119310750306222745527956504013943211760042382391447585417550742000326204133261841093287058820491192104215080665260838418640868969862039218631093437481980270932294650680641557046931856265234909577107617608426234081951400144762591486157710619223163070427425362402430209945538862144527683092088851542272176291325855703517105270330918924631137275645947811391684110271660957226688997208042234250576105082885371240104233493457946157926380670801577726497561520373897064980498268628687536176351130193508561037134373242736353530911794307879210129487353365558490653627008815012923004371578896497566543895090840240787004736124297027525517010158424954115427728886147699624392018367000312013224534375959618743606858584539000212034636229768904834645321992995099041528431998025140450386047825231307138886050642165286043574403882553674823848806061093181201734916131585825533552388930985474088650177112027796756358749813262724408597452720889175892180884696257631235005536906742508909539056441373554160644969213973605454266151832032064711245848312734356728786947492310824026713714337761550921223116469137404116625747345106176753191751168501421936127040624111146230277861677192296635129319494449457585320404141597625300132293872756854825085965868747185229643266438030937558771534586870945964182476557092426396620339834756141369544378459759890129900058120173203774167740935628260410364474431973259752093975265165568980255214615429824172477475470281791058024072884045128610971429300649028018404558130534758965473492793082291435751705082464897741598478649776382003449477246418875909888599719648781734622721099520061612829137374552091925278200188478096601705325114951150919771940822169138140759093211729711505160941080083055193679500460629233682101021249113930394449680601394941692183628932076341451988985698102334508653262976786852237205052112958778525120909548831735348838935308196087854806930469214150949157298475799321422425487310804738754180730723538620258942697693982253563137708707421973189570718603266423984747730753857395560008857486643170805045931128829037610242047892905598105960709163127328505697980688031706790919410378984538041703640666529760711538945760038830520293225156056706193714519713732451843397522662222380278417968356085585090976577163559020869039653104682222895246338523184371743827846930767838185606672406150184245442138251353385679310838679578802691958460843235478534211350054299419918766861451522749561331705580213856087205178699121467327529973453723949991711136623331512281524767492290226781924697781258097657947400865038277708210643201262498369184875441052071688220717318283882116297340254547314022966575293519793297340186726789966071187550813604066588466367908050409047216944693557395566206864672044301944859270211143982682247129103630328620780012598559086612453494770586601864760949274654312874759244562908071973448528656009574897594327252186048360774900793897081719272286211946634403181904650071719193830541362527112340509360977281779468686783250034900058258935042461494457801516229024751497344381078053086610239269676251950935378393717302394827378660586540694011758699996179054069954336389804735479377005705535568125177831293586159880298488076231114879237214632700637449659262150823270389135127411024357024885015906767127148211160662855484051570384368092073365040590895737334815370609515198387178411446804000696150976524170753335874319607879606627890669358311169985926476130824810506948769362656585639151158678620049347604530352779150810738133174214419438259205161013961287476931390750718216349633342304546160692708370093991534837112849558555294303068234398139500857685203669851819389030793510344779022281510089711513394864966711988627173221551029251480450130544303471606387934360369716176008149541976378320206453156166966506413218378000376840651721679962460928957404583116249805093666819275898350089324269672110570388887819642946399039163702141546694857164445406242603781403918233835304788528584031783589422023240873250031173022559855451616658874725687150944144820406084748208990819053192782615140309676135567642701121594983959224208011045078100512981086962800378146051084933488171863323289069522948549506209869263543823183757965454267064894565459332681407722041981010734535403376732465128271910655140439501759337773979735331298785806889800339006604392144451334149108116548712035498342205622866068914425963455712353691222699705799081668989736722174004406914603373493228997617384780260100807386218569266817788874131535056699794379178305857425157498549455512082085195050574523641899442739761902510721315166286345571271054868727542679860957673625808714237599633203642907508114221083116216285922227471766703359636721729844860575214742660029753962928679467957412108509405930841265182359915314243820395006086174901158447050672553655666592947715649779485706839448270481120302791971400081864816976331767479345434485626120035949296346660076912058161209027854249725524793508768251890263124089559052692653782697180770307226139530674163548535158887324472752219722758178383383479063152665841394536371990126927924838072104264302006033245657758834363854180123181866499275519277087243873489781935761418761414530643485890469920051824671204753196596685371494417454947381760031182066628854231453559707222574115341003164675501105667328978293482051777681788667899482054208845379403453136559683257768985698942440701611604047160301206073030220541710943278467860885943514446966400088705168304329742508576633449064096494321309187852814164855423603705541278781086644288131977902919757613262937283317942326138960728076499568238534991616038374175893126094160574274151895940863202532929573184385683969806278678186915743194255607965985142850728948620896151917047209828245841963298848911672032391146524070483553515287225513434829256333441965808067972702565028720755775693206027954807654872539528811217157202763858928530392805412174939060785545475701173221769854346435165042525929929944172800935517078445567844669965993214637293745286852536151102164968069556847589973251922316526573029873167859261955645890816504788686034646491347182925053558118084296713700926309742618998539680967390994390333038663219162706178153790583810501483613623366903148859143242211831360548444062916846975463972337181507294304486154693003818795492741777622897760514913663703479240307965436794661681669827813989399132418793657779953222243753398574761610919728091745443865460156722247024444279470872161739259002584764253453573556428995384009167101821185004539771645970344918749172914615828954365876849922097658188689643175215264483540869332878049611060403556952834389322422912251193553296901892105719885950284241673854952042593683409715286034577110396488610724152257281626458909609806064323762936619083709861004098874376349257912311494292040857384501629942480521845558606330238053405397658416847082072937267046906431924566761813078704019612472179961291890581536175211250692225809928715985815100630447859343932439863643292857541863885323446219816589533698624200390120948074482721247921983399192369094006899696023362057174938020057817895495154863230373939840261177674929078759537357803691008029360340707090159142126919975310238244735201491398497283176198000978764334492998020711941275606819112878098703719449913681152763771656416946493111432267251706196441459665270870472419229132946166044110644371964951821619476983040345534299253134251128072239144815080432426441499400589325082399141595407021849323039754873075226368899700137536047063725594085204778045334064325747571725347920134702935681360215674276961198333102712611688784195803460500306664008331469941855726842021827942216616663023566886911714106948558478283149948321380866851577875825127372825570497486355441361840560327176850485210618040519394395415128441983723961722462349398080629233406716792264264566052875169792492550930683263384379581872425636134680889462434138446041573713812878911075939221192892295018660318483574983334625698848947611967942909601469138586902784616091019847930672880851991750051022281385007956608628406911186650578540216179928412233964623013575790810603172904462762635519280307259696421415546049579859107940268714356681048084442488303875810317362167091175012027136975987753539108322209844675836860621445795326282842298549708269794777053136595535800009995775339606339359819344682079878605812999426902336449323304487388893179190567971839448005727107585085633530749795910425874279801586171291274521178095551049397116709292370363966520843861919034989722814188420242713238867173746818544806240091824277662822025025070186997289369291030054967888985466789769586022843456077217563623823845365538783115409654862043495224090124286434488711950940471849556384713591426791432467381764019165846718567652543804256200033564918447455389937031729377012637802124345552137817882050027235154114881833872643200783888706483973142458180109120038471323453224878539200481734518344464858701163909463984503300944677346804421687930016791619270367687158115388188849489911323158099598333695542955561773003306542758498718849863360743653385528911916745367005212156978813013083193588138296078807930391961038744225391714712400768846257326962825160149088717898040371090111288426093189156878362595190829762686415089848797042580867975664639016537422301597779850327755874752909880949673810374332544759469154962457631802970524236335555730199277060968293653993925687773620451262411594701595891139958055313134634187895899163448890009214603772226975669540547624279478224081932372955332264201313507866418343951663957530016899803515533125894313172759877738920990160789032666656567325294878442938092831551224519254193827398581381557441229980462020033984051525856717698683051366595680923098633494925528734686982862373006983928241661280837683387511629528974953438066315002843635088769358555194518807882471428514601700647675946896510698524538375145186206626765397472680351823713770366680899447584633128677659085515954125457006624963190976342622718802345952421114544878359140618756320989225765769069856286586504257788544486054839429793467268973356700187599326781899656852478438895921194602493534796977850071445568314212520750715069660734189404679568725284457267689178162285534609302519651389624311965197450481293854740639809881628458861012684479798030764715773056506776869222416754159375445737614729453334605627732092143511854360598743277148007610286716222386338381493146331915931688078922452936074395538002704168775675363175039283095148770064167931053939102230510311729731406823843805473570374335774107541812541906516605658440059311949521629603339074830880382721733756106487320298467196174902901659248358791201022437577036807390772954784996915490020934880100544476173830780097588687587238886336886784038953207613772036232110414178045709993072723238811912120441960686988833415602240668345527901177300537003413845474543983392266932787765627932124395193429852947789926610316603921075573303887900188757902394634757776038861798555906151593143550611260755353717984733704073914044315168967065393276009849326284600078288794539500928544780195719586517301402178083091945101366047830372720459143401661807796365369420318411553139456591193251438409688126530151916185161887031116543508591266896637827309309409553614561150736683125354233996929203139137082653332371855192403347364710233435219047945686785604932440356535657149577212408853148265674793334244755776762862963346292200759238331419758103079354740972397899488679048115020583020382152353586720783262166904560755111281331074777509172710945715942656546050992703770568435635761922595629015147505455065302080602636208826933432339558400012242801933058628087172657687848542461080491792418005409159382768742390707413280552177722092767771036924983576943709738476283087984024437006930133290650183981076868291238376621039114263071104397018613675973126003201355907273555783846226039383126176505745757113617914021136688092393797208361906506802176484958666923930288856822162776247208013921078243526297112315850634217246057129454116413427108871119775362328728908391832597407303043634153855145515814677934412018217321014145989456654502947681390906901638314534173588180963128372635348632638091544684137994913468570806697328439125976163272669771507691000065686622755804577678826174626533601485534595060414513863125490495798572975988639567229181300721404139963510987424811654363824079711089937149013037309233195663113850099006944212152429040305777360564933477784612126726190832642032280924880506537733106798671258835045060843267364403357188705505839775402167899329534110164258262897342005926772071059157299781088317740823126880793866919936316051797315156629856686356301470323165719625756819552984419413585721230678419921108230627945096834980953308017066393620733197917009886237872435582531156130165338740761598857671368075993386492669869143290243845098150180384747041915678343869413193010103074593191303429840329815562434863022319118918978479006030746102206646739074759092720192183891099865384963351050364863623687759252561124402052097504034532728284543384603074666299038821541449328473205415639862592112905955018998348733036010211876543162834687540850013280218644301335577097100900615418366143169411635600321177842638829872803262321820155585860287712531575251087767667793987383143543510714853246676455400848435997091111727958293881275781586525026457179881665361892337143367155183457243763938039058122497082940764975632966572294844880703782542591511172956277737881990658778941467645395946631981820766358113844077240374166667908020481506481198311056806805527802656134219749289617593037596927371379036514077248534080709114558680266297829202339265688800293640100675388525402319309142289310225256953025257505091241709460450068808847138080220707370021413131771169259985457041968902715927194556069706050621730106941271761547326802104550334579778345603443321121630786268083253632087130135438437159941843069326137319185253339474713775621690274875887909801556255213497464989070064685296864290780496160796697565875812371577608051774458249906672960141975885494814841698980511155290516154970117861953698814344309774378274804259963909172894396046895734129983980490522591313935682323596814990754947781782794780297492133270295723071233252962075698005045973205801594427902263307886525420319384770737132248483538882872131720676723554849004735976491246895236743442004145372108783509266835239020692555916275558073677171010311561962802537812117036817779725446927512653332122613996539872780343112561027488025840961769330173851823750505186989366522983554788304843261127600478337334373566404011421615079944188304792473498724105569180778058978832023260092565877264340292039966798130880361465663113039422690821029855903206343041455469928347188005500308829965458757624908070439496430175162928881232630176282515353395176918248286095258056488963292168324918592539187702011251170928655970823778578416403766081577097887271464953975582626694511480268613975048931446665210482839859381601351674365634389480143586453433087678097406887991298257703575487240465228033433680432921426300592269728094830108716599686091681269283232465350021255163413426211635711156384624494656760131875609846493787788154907786888525461557925419128471087751390095574038841848308204439859062182393342042243761906213363117117623663978605638528755211908653217010127763988446228814190800071984237162412983360934428850148259965553997434811163751798680247149302045609561391913342083592832001273000447256454253694160288758859494599264741043082493008400867630619666021289772542036403991516304470281462424528514522749811231022051047559602450721692840771432359327386098411318753135812365602318648100183899922438923406620023798549174865135735390509618252836122401726076702740676469054207769628604578269246604156922329716759001281966921519301633323612026093611511377997799221502590102149248173177706927526870778465734194154243885040701551877734733607556028875797634171919216158777361440890765234589025729359790125865663089437064871552228472160890068365303899205342768006039286870139435436685514184662928471316440265426650224586237907569305107928549772127573971663585941119545374115517130967232730969138394290440301078148795217770900050032774423711501426584839458288035293368844284115376567274311795292285768548911052412161802269076207477465439273346793274424523120254238870296187847629982905935205244065407883412752808106903621553983321653467938426740453482669603522600371009926585773167479439562437596031852341992322170371028843825471723810861415112004493543669677330623611170510980856871846806993757091814114633181078282405887891823149577843838073538962383288262026785088738232867441179769708254273894470070155114918599751444159583802950501174300525170258941627210243068358583944007696706930476781733953306738350243647334967777449209837773519004047559504787834034130135143510333464198826647423670566870517570422345774182435579046072984662370770047173339642976419676725929834369658261980008599607279196919799600261521250573455523164919368996971894347818024100525897948801563800568255190706183451631301167627267248370087097584582729198119991557104165653956886213494447611196676893981717020730161964425434845288677730800896304088745802849425876095198153841025138027276049088366408003648172709534165323625166882330135346107622536790704788633966705639506846385585448052831162393982548441152470046151406886776953272296446120982821913996923237749599941175108941273076973957191823766213395928709486015488881493163202639161611266795738811726358910942328541539618080152394573697854712381380215127911600007003406668401203366244198800555491851769981657251320783126176334295651268170255977706206178914300129608489787517254855901437902842761512925562335192296104865681218967810762754178454210737944457853424758126566029404317436301415498184941828964026487144945638663859512043054180430569264580128421251776469568987011037247123194126343449983307955040119688869225317466532046882507390456264761014693875441533719235649277166750525152982339702048524765921880854498293503350152052814273858638046839019640609023873886329861144593701624561602756670806228828890797899850092944323943877034315875846598820391338040136020922945233356239327872993962679993046762168526671046102707663131889124437310135098275280005654906159164332752142518043765800735574291866305615479013005616311845242698568512719211891694528467885578443169495051389135843963451353024296325897217567610454433448036935568679942327666669056357647720524270747442008296447943004098936271651073489839656713228373460211512355429420940111658571034221806281134139326257430012030054411674144693833478072248735283247495317480135734251764010097145903892645821649998286705451086017114131225553754905200774186844617506553822107419782230076527203802528088561787299074362558513174717859802632635939932363177084193469479818535277622822881736511155636127854480136310030730235763253783454230504956951571429081041275575538622280838221043149163616077928814725904391713540072129034761737778716088094784851991405508736000650775186781125844031432112092826349639377757907091031882116213265161709542211251126855199220652167440061801665709132637372358485040909970145853265327697448093224417292307392314895692365620953660517459441345039709522646793009983753915691761155027131844955612654926663014762597032246938749642445407384776717905079592302927641579329615808380285911833143179443674363427768866822152850590794371353420449460407584346647825839139828641074553005235338791339368858883709622026141377337531730007839462352565633804189607413797195612860713885831963067495817313848505886740499430275169848558644333891619345470612320812164209549048171131446113116686984995927636887512970914860517022560736517523610115892398912256474395899462418153964378541288967456504061487438452718716097657665398319535017383546245303871179401633556375688340177941428612704103556906825438389037542106513107203631144269752523211847496195004593752972527771884144290657443780828688235943094173964052292483039326477158643357008634198573989149116482112905906349913905683508185021797594485722835138439496602726199163005656007804325286508194492076755190299379877781783038058408921034102029178186527773870991217706178095905721608579961458401819043560969412006710376607966844082325886209115258079868242726091639944532144120230516267950030972389686213903351782849216757107698724507346153873866162316506080558727107852374081243769268536159488245819395250105753010588313674125250942624027678203014170709410153515175587363629785740820694291778583093176257196020677042589333896872539610174265085451586190433641383358464973315213677922686603448819864155570661962693439438283778628994312904912495154574615127231361364747906908456460013402965743984167906252176345200566907441224504312512052450195745979402249922889500454905000976736204672737354492878046274418020875256400909388527031054418167690215830510106488319933747865642321534207721198847047380840493656351503263305867146855446136196357250564269430898667604945801839459337341427767587875083691493232651355829748114838588383326341523235003295447361159871516794337791246856324147032742515542809993773046474904001119419721898921045881363928199124073812174813721712334287702717807509035923015183822766511170539630460525233161367363165119268145380427004758277096327355762866668425235640299478874137776880450961440119729476449203981475500620776392817167920020846602314004218973241113030787073971097636568233645042519112620766402598161521082393488311532227983070269824728613975227170513674051878081330669792764835322455979980205865790815829990588243022294468086057535007810403576462836479228378956785661073080816338827802090609451317251590641801586018218492572573018706529743604063932833714614978347909633260905220636394412375729111445149954474802067487039883863419810623575101009602444995266413763031656723726734613052884012721152490202984104481656927698708341872808659590213045619108483991388146091105634371176901556620572361776257471792549890622307750096167799323877185952910414371241296049162084913976735880423133664571739912864843655783952315343422684310392356262481723486749886041543653151656711254839451734944925412116051825996426151901985125484852527557898276261604994373965594578680967129741282532411840635116565877919593484386523181445986169545986856632302782081963383167456838701773383593371824126934210719261662608190515419400807341830363194046284033543373847624708247607701677448223295020989172469877426522434842646165706857422529855569740491917985133665895755751117943827225981513398004570227735506559188450907280978275690257482682027104736182740211569850461215176284623560726754803841386173748741897095325361050363235879100796601615652168281931223564559866684505301944345398454200798766751334037858308711047826316712189282451373442768673654687397912144632785720238491537429514115748686748735509508968830748545204988818818892556936334490317750083736797557225051477068458462399674726566651447090566792616891867278363482588284195173751998737802699551865834970534998096198481393778808035334179391198011309372324977469670808729784815128910905780894078670001827059665322842030666057447407919175474141753618830823490962157077839481716871121607225656806238726091078021425365206375343261686377175891990753685565969788999903528849192831134822845084702118337097127480233129379826936172568877669287576487046453100499584696353609172976470969037485859803302926713666037237280144443957577245819507068345935291202101473402486124740722777107203314290005561937014903211576044247243120686505789105178954978956388182253238515500309379823839330495851816219951780435257058041926090879688457066256650458133078549193453813529873253784404125361826764471221395906493946788084088621004255826716409545315059909472844092835144639896463949549862118960672326033635622838054644946380294915571363994113893794370442021267275100125986842003178238158613510198639665539592492920118317782674596521384189061760755391333858401553096080839177281813448301643744381440517916928877529179550206767572478104057751824640093571141438492660263415005210890766113083872938980959668347783369944751625525835100104592710000077018447490905097283068641223410147312216856390812566047921730305991110368788853094124411534085020678113134753285485301090034149525367614137749612965500586534002663486607830153525361050762916814332301753618836274757467177753086185499216084329182885582717304205045540375948414307375630169499743343903313702692836689646239784480098679114976150797823747478002435547818048692609057510230811571127835091297994802391958283066044502112027890634077326895708468490556410552548006355615374007356068436053431066667122424816329759808370062614776748085467027164035160418937848569112053539165344009877808803120039136422240621639767419119873806170823383750555079309975669975152249064061974130752495440547096060814743612079153974167561626369592000368938303512241502539962931783889887370330208689477882667672879343378673700147757341357917457630193598696145895709440790618933266941810769353523942149222402127063685367106431354048006337050215327517857090696531298803440390839976101020777208504034111851604219776127892967310843912700786669066876954087281484787007745730881786569031807804176608866273965251255210557328487505422174466183066865974600029198637838446369758240355465560910861588995687123223153728284556105725486881427711655531125203139508186640996230169837360040773480470690145811163669353417274125195681352763628354396412429102334044126164302829647790374235362184494939910043801669155929403471091706159987392989257188304662148803945989891972145729238474311400831039315436330523911736169465833095984889907720790535174408105432495458106630412945506563846544605287140594872462488857899142218000255047729734229732200524450666519964692355104504753157187780684057337745320079818526576508685053973986934081163707120781422730395576976775828889134410987526411427205626342224054345719307394118127149160763055033993652708261609467272625238236991826142652819361753301847877084215084352018319320074685140269632197477292192202859185611491728840254831115551731381626824768388030495704566276774677558247551768787697705628344954317578371408436984363871476334203263284343846081053159809680697303695173331928476279159906692503201904901099732858887833748822908490775694819981968479875924140205766502341088170353318591428297910541368487935450838030356007343684027335270910476741634580908662754700896984759945429271397445405986841138074847085456236446561971070579395132849401925144503796063735134523018387637371345760515105483695032155539525439851014744971993300029470186471864210919435122818729783211921465952790666944095134688456147562791665408564856086835679824309905176251285597049675727108141251283289848717799775220075656652822881162380940875894259592784113002240644193255689458837523760350904406845102002072242983240011054074865321869536800965574074446637068162607002531473794439457215333886234484624038684504010782063106401414846919783317303008368907374106585011803632454316751093725111521491268633675145221659935074070355806324699604720134508394503642626666475288868610621983150780259437235394053796218033233234202736286803782528218690384946633851012150607890186332675951538059211768112859626305361605334018646504572321202555362091075875149458483211707020984036758060890943977802937053400403607138113096122529097069404328426508180802333832982685830331840351945530018133379550256162897410566618964203841572487120278912729984752032858446277421864695524740348337561831749388752366285005674391965755251609607292047771380006953794711619943394591020974982919044539180753325569036394208678554966112421343620974520395458843440914468104859485873063553574694116640549785274350352196141110181918248452682063386296768869598441964335619117389899359479899850468237226472589639829119303216610838470424477593567175440814612976278558089885274895262004915255916881490227400352008878139646726635710474530012805947125642275474598559705467244969206735528945222355814882314149630694857449660267806196581872727983048420423968683848184246522324938367970400477977269366655701036880734021196653637876404133508066026908229311581446519213698659778480017138298724993212699142876883771427999730054682126598833096299789699721251180433196997757197000358116197947125112548553265318680312308163370997981671923546889884525502256045242205949882195716748427488544882972406979376972246076525887168794647629149496303406734416304497987186393548712372822509247383051100087618607997992467868463367731467930197440454573607861381959889390055268867791855999831424182320605395942525304527118462728250741409101758927503245548485566191722004906952935874747432092376479552019681323920016864132101488597901036414111694130303738913356758668452412277739240431560373550641239527343284090044769085756168514657234553745728832136377820590757316438151901129775673456059852548327851138210961602285553159375690727269127447274705263491203905564663259969764302053763035889882126603095633758628527409630054610691832890534920062322125762777752341700674182244398855660488596540257551175415809678372621569402345792310277790469100582736793523544634711176547343931190329823955575241440426832274566612176782169824174213328011475259085757076795355026018686159809168000832943233071371873826315253832503495311265398087360781773581076956349619935136551686453879748887854029985714969834638236675392934873924180413162861383302572129053960746153578912316858456636410602436853647870081851144956036719182030934906863462528594956588866843632950181794117687911417911902825238670421902029722145195877704734974800838252088839273467334968966475116788760012681031918038425912704067511454881550621478485950286403467170254977992482483856499387105732045514454602094302343457321830792114512212298346527764381906382194347344968353764780454234150490182069095891564747675655757367239230352222250062166480387373733309644348965181551648506988023089949995723923039527520713338377747919146809693818963622997439084648924784560718690073645385273829583256739630014439908008803601709937553553250595161980173134609020175570162632160432154696062211609792556577397677270409322173391815229055767511844208421603071758786336990776762248146724495884899881609874067508675172452746074720542520404579124291531785243057401218326482098026647396675579055439320190727524362743029399433810747430041444379166827611717852270459759206837260564847916405313739444768696838608535221782338278706181682783929360751036595174943328578391867104201235351125117958977010209131594975916217029039411808246279763993665376540226074352476751573149916141935346787287569826831145567210489975652222893398493262597247440184928048783559988219300750705597128938896412558935046826529899514885484733336764348624231722799085739541183807591813410890015202189116058321827105026612375632147502457336356730889987700199251852546940752828737938719877333529566747241045190612904557129782762031523112072042664113953551854149927755108481177819735208817437061561043435696806961199894225311855537032110856581335042897141990231192682007635680219560151052977202589095639418860733631593850934361656996994500255303885374340920990393315433398467868547549582563101017789994048719803232664313888374036868008443220130998482015287962447480436657743917757816723579337509219658604341080935143409019519743666133071321075741392437782823070836496041757234665273173100691020108962893279170948299967758473956727415013177523549969283128139323479709012198939921224568896903597064823165271293759613367351629317992654023896639559652329788330343868365266435594114949363006299267332824346084026989802018426810611897843314484578604037773270595551576236884842873038766891979911161267818698394392690060044720884001009503658607657685248134172279150574097245899301123228468164394928789276254047063564020412857140494288536393808029777689390058417547231575664658506604496693385376166701089449864622860030478644477302731532440456541254269967158126632748829560837783236563042214277263931292163757373007298296826754675937481052237259212997406748233804726813046890069045367662993876793827897907725170894169659007466611593492045781905151919219823745067927726575209015834362621582801246647950429690782691237419245609901645433485933630014974645758834462216495510725670462357625998138409610830789537776257020209079226062676675727348465156246294274977842364266636749967061828214136710419265660174539580458135982258120690529015998919341133570211980434804688318641217758263109413014313687504386961534481294053552458943096301015057977825742067875029022114119488570865021379106838157389047648547317335691875891257152365931851778549594350074826273828478396965461393568839476898455874740281227585595739322969398685412163375465530485670646897152493695206916545313874674026289727981885645617899964902356066928712131080246387376214081452592680921244270389413760261557365372441348470502967329400621278329169532001588664754083475508330241065464509089144193140510765320972108322028712156035404157631751007116037163032568933482728147376521730288071270572723248324103491206617790139782530428819240453273149861773277632233957731626296763959620524555608569044737301515098870570040467388281167698752466208238166713406804242315672797784066234836853687359339972112069118327803365921960557949796147653476799461429633332202642748182812447666538006001760888977046166447943389698505890675125667668054674758547435732296388180578252612901778352153064269561923459725734611360363395580554502528324349514454091978146247696051822295184744024415522270866058406124751422430543902115130692441149230135570374286665427457449998224411747320157666332153720092457062979454222509333403967105301615659129055924996683141712071156681263535768027271275314440973290577462710252556417765290233800457772927913856010743633470325002113809497273134184161160106964937183598537037888967683010608324371656391431031855693610500351106387654286542547390600294459196547291395765645244048210264656400259218182992119796423652242846378051682943660082581349559634523412972724844995524126057552200520590471447219253610407830891905296220733013160905815784506512368114581458001171371657259769817314078857818598688409983055073270652812893543751529027008757448034191081290755420941585338844900630232978678006630069914554933756897809471148524784690910393707588666902004600435201546236855742076295968865265615439846030273993001553535919543562498065492965520506860738232767905521788412330897130304844236176480886481419187654692304791502120681264302142592603737549925540907319064355010517082017287176068103183906618810847157986977980957115309939447864583849667655332942631187446000538620362993339174515461267790100644477990994099281293626310575877802785021603573542695521945845368890881993271146284665792166123799789784667967766823142557785825778282903577349643437434182880672818526018867992793175711320777115766132223412531698599063311004407191764367969873887528768299447220891920407541337728902064012362802839573864104465800662759352317271747128042620829556484049756526991104170603629501324385228029133150344681773246142084289564884279562430196463153418804837070070273108374994270961965407299817070433244368203567488213374381849371516015134241247039013226818327646173538960367901639581709275775217627806936793956383212520319444574272730074074528876343024691413154362169048671684334152717384621573413558655529105936444143948848151549432706534201409630236179772191343543867823352943009504107245819893696680924131215002959875637324627693273966166872847097181166124430317708580761700656152687280579412266290358295712203650162549727261449296037210230886695958048241128244517784479250814233010563430896908249062393532329600448316210107776530232190069153372224176823921682585445418068661482457332437138038451045175953954553310288747629073041215509546491191645197478526620671103473536496354488783391913162570935742140106352745267199832470214967842352327471599278602251603908220606029969700720740578086239171019279116256016198788989199285624056862408183571980860431922013314207575836707559125918262977184228590272915081050570942232325488174420252281847492704507037640288892446212450152463614337994071088076678693097073092412724883803919677809905184312930074829354721244461173146552397624558876254763110533615371543695081138178699279821371460746478963222986169785071731486217776546636496859588283362658635780158120185191021239449185499855343429769907899844952399113284153729101042473168809244844892778833137462009917927301738926957341894038320394481146265467456625082389990939853462655134054379490424037332171657510015935988758529720556109969434157326231326555260563219882394015663168093653194570039438098258572615991646345457932048043219965859165374201244580167427987842779367355736004767363678328184282651215539721741933506297850928871800645776082020990484879738046687101552251014345407902739017714394521055796021797160563554913348170104501215499101415846986982057020728219564174745242374260187929735691247162111749311716450642128429725109611737402783788873065412379686886185755739239334603852664891027004068377165772052111324746817223199335189019390082387736248638880161452742813274627843052598658088523837155736055006802905921122496788109539752751661198696963821665476750047757917167559213798355796299059953875182470770716388091931854891106121709199568818701655307744713249136645468744833500293893922172345329327987221899509455322151683586681668441289803819268418808027168530637405809654953979112433447802953293308778275912434570094225613412137914597104109885368416053589380277340960286036790354435853280660956253883403730814128257770669405146468851423914259270933880311311967453920453217385621398556406353179005773890150337725063136819007308864585338117278596416991984036252208812432488816091226740152570001953355279453883692625884526513861715843371767779486456280621071048991277496040005959993798032181440621194218221231851055131297491723302838050587211688921190344848919419372244702726834251267106512722933398985365826209516167121462248355582885569516025193568530189052654057054511883324257677189100487850956271679493810876310149601940908537268392816068683746899334429717148601868032513027632653145573395372840975853483568920181852870508950890737203347127218775996500550197610853378470467007794047258124161436259918688826151543385634474520334229752710392236977444710544635578238849850385327871174236157008992049671068952430223525783657864134721954668542703821564367912590100457748252315277538421613685715293688920786500909804066634318480583312417473747352569807117298274027021403246719379216180422585909094782718263324594616995903945707508536423757217552724511238731757312658490093406488310239072527449134502936457573096397443516935826799500502922296822001421899074677174995381830873470457165579764923579487527269152192061253282996256937909389198584359265697788873057409487763860566014588328636194577155686542792611659750944104109659544385424198472815084777613422740920582289870160236819164790456897235036761136800581127141019781391462824086643484295421100849445320313962521865264731789470941450177442965616430688480803799863938459427203327351867595909036517972126720788006943499846325201780945379724918977017848182847357818382109081979741675250079214640528777553491646864096896683933531676512000385209718120631543908611980448589017735834145332522104493155564982322693287339737111701196518028515988193936439126518199601528130230889074356229359860212962597541758788794187883041735960177359705359480565922764413480206615166733825147755998931095938882337308566994037093006191371522726165531715118314157145760086848034386496027239658054416994087950532337662070169926157053255040586530774949148802964717016371936812513272594234672063785552847897428392048020774248295363928293239759088093820326495105768427903226370912258001332183800368449122551975659093762018572575920889814381082078337803025477816071765352206020764333747474426714328229573292522306465979975172468597916197749929276359016632502629060686748777273628823846219073132566303514073932169828896663816686877137876099840482591307454954880531394328451822382788564365276598201028210748845939407172532925017997062652119809912486068025243601062118499353442785222650388488980440829453437257412770968885002815718825469971991375524828497375678512267604190607992873036641547904990155564997247809485186166500994355568194112400455164641993905376230851010147726764058470027598300794068709700806454704732047932573897222498041382054300883354533114449346842363115478145849505436094763699320163554555341506940830605052140763202992732169825404378367424945932688625719193406200097177564421244267041028205248175630902012828321083252339970780513480757017914667390473512051932878220141585362261659631470831687848700347711354123888501955957462692188856289964245968760673063776586121354290759545463218829647718505512570897821994021123364388079916756024688977677222883491370952189617716009265828144042787219262374803699481545335286470554680864316324086085207199410987743174049938025010446901617857321935899503920641821528911518479010491165703170483735187782555467474320103297966821180656810512613461158558734679042297322757508382509937783945403375983217456472442424550585829206594914164343545905447907207759120941873285011685485334721829322385154369906172625357097788790617874570898102701144608929789973308351058630267837506013577190493358903810721785011240963514666717003860097447841271306222891478772464073713074589738725218971261803734567619311003664721974889401105293600824125312918676554245666902113164359776268802159211102504374919650118219702350993061803001645534697532052713363821681158368496528146307809669050842161677200859558572247487187998802393865569447769528096766124219259621517048972424606152712673339413306163350375204906288144120356914957181696657969823936281873359580454843900885896346433045990545249217671826415693359253641971987680478742048409566835824930881385645372680791018558288062021600028006901046361887192881253874563774819101976355119339431666513299896050022322435395403478210160372117420146150160575987452601868961808978783062670836289373690552423417865209502977748591950587602988358125119957220732458566829031583393588857654531910560020733316008175066013179393672566225684395924817893324405156928167532927237657095403300497902151296016231755102738873100435407268666735867984048179006255993586742115866917058779048781191726795804410715741851752658557934470940852979210821397137858876878861337796913487366754421845216783085813638166058025919574035392515401657472933222159170234083647954786226920888971406797863642415289131081578372792495779537301842461656175552679673333991613008121680746513914239795707619413305378535365008016010780063127531088554123486284914698314901629071767480440095159030307395891767676244762663413326865022228309315546181295979139118875563897390838752678166891012872167698458010580297249427730488510778226021838530683555789320553067156955643095789762985918764149345339468493375544384859028010435113099597318681549719465383678252678643654676904968042395592455426593873489892238538849041347410811330453466363008945236984594317135127003696739317128221699837175255080066560652351441562524287035068319722985333128697732067757469899603312972988601359105879038245970032952882031330839154225792033970952011394614713902680914123869059741298094942358370139102876339551621713589093566877448214323759625572000766461266908691791935910930817114265941000615046177190285217774026907778423687846107974256655815098762400136939355201414954854481103352367070802566484738363375043873592017852853760757747593573890746039717817958934833089876444771193061708773963907443203083447300712027862836462523155206740467572679598283773379950474907079689652522169168972309969029979087539724327534456814894186836026495372144758386367697999396156304700211676060905951053246922998472741065762644044367677415700650369201242619720091214865452620046079261015768233184981736992737136890988132822560288063998040073441143462014782254643226598961332056660591411272442394821823384734856294786804039349334746652983661671582220798434126442535469626406682155600119390311404889124586963361760122531263777637428276073525278240257164325848510695832000442470537251070230583345292265799656140707782885008206287249943874966559405849017592170612374022939892227591967338030095939954451385485875317762017249040721567163820839526696991641874511486745923772404188526314495407114274715521469286648996833757457234542802495569610278761684751423565464830783618391805580528026569317708657615399657346822661355890074450225774965203416832776080922324525983690453411582550316783116639893200734591562810921932740698825308255587190707563015611217494450699691509398622984828278885733139272101786474945502461272777123210906703194297844599458976757926277809356938665441707051316307299683487319630139198061778402998445713665337583735696685760850963994859849136047860024773462520052875339369804481464778617494095000859574598859226698176480876327974657372578980547892381149609725872019861777689686901976594591979168097101842320190432570064997135377978305642143363043899408059785208692850701968342251030642605113245128881102338840497565106782199453288193019627832606571410761224769680255320653132050686110343470850390349225733313391996549856534205122848967920916888136244349239134884504089569191339450875837815292770939233447001055349413359693329652396835749689675401830784849518284479132122372919835083095605411364895122284009623783508224702143444675986585213269394840798247060892716156271272748086048206696033756230106898580179255171987653822433764437936721457438304707048416331356784383762277480733042339711728922381499034072036862370737923883695931474560628684302316455649065937603791915703703888499955181441938422708076116575980045410281212616005563592171755237199309792254932700030997351455947984590563476926693955032286372894450842865759827928538424988517897916904298489900834901829887321804787306309085167634986156924401591178134516507858941693267584900834333849528974747154274235330886539378639735206010996514088420877211711688127938784113550827939696666605083808174246617862638234628857039409014033240521153807971063948981414461508404843786044560463990318537735725582435645870823047825574929373981040310153507171242736692242454693385613902514649488954724919167197516536366894780703412507295143342973877918714087545197486029151076008830243346451719253865497333728485079849474518942818525529079964477323013107890019473679630175889987591708519229134769161848445482997888889075124869346496683635032872364573189233478839095215391497492304212536798428124636146253165217246285696833597378211940915945958189691934865348823835377132920985122867933594141482112505396923479010178868710228384883061000331223078209193758728731167133954306486614803261272579778820838026091001055730660170687122467524524817454940872739952426439237018618576181674659185757945780258777753775050045245772979855032611205259248734866697997369701545576364393695524875277848458050398425561811504874119192105532447623622634821569831111810677511841569070122309894695403984116727834057486016711494906397446622678855154711910107802700114726259663699945019272854903809008098090840516243165315031325294307852787754683966411679025030849415429309765043280964531624860733159950656190118010342352711728641681315873937902038326648750155295565873833783629541405576119843332300546369525918693576383694818788341296517173577498140863448568974422875846411602077740130257194923409309201153928540785310332902632858775081112931812275005984941597152554373203521504102558398406276395272534915730332608896613393836782192089677093814432557539067227315018909183675194496824409380044720772097562823355796887595168920345860678451397452239090188882453490763079702263975483264975669269875853187500852479424351541929929263910186847878175436072745814916512732083631709035910398141699836518238093051965205567295778690809206786317272236055501549793067096615187147887313919241704389672200350103501557390221125981769395900434427202773246082796693437899272385824722207676867085929270299862242016891010820376392473407816227335616333658239374932176560393127495665690754618674622686069616169377670731339801789654103109837401645912179997850387316834592973839470466866109002331682394885489338570403860747957747064270321825680572216843460660720203165898776783367911406462629740918815922316996142446701123393559306502067445061403068934139833552981769435016529548402627986699171495906044276177526020844923582369486003348630757578570131061821035599996329872035027863103880271206282503949992247857480213356849615645450409060354013749158146353519212263746396559330203248589958166232691408201804866271531566178250261779180086008838083315510441958444000254255832404049789714410786495379197328125159960026242490933370662390728510729194787647818635595622171565762661558188645465174957860176083158062429585169574056338461801808450248088433763915105503998630376306408613800859117912512370697803117004342394131989100679970841593280361893333690582173095405567368893191747198387244881918009742504015255104183257819023752129205278216229990399023990579969865378594921589444482700089241266585949344556353145139632301944619937660264929214134400013661177091810197201289242983807740263197841731363060277859331328647018114595682819079281978420983888164948701424208944186672895738912673118379448902566959793504496524589535117447509423438027882331919484257592149663039544270602118490398948357181036562148257857096767462603683550739511763426175913381708518966262011488749378550490223062557976773428159548028509446626214255799703701093744826419518860441839685130779666252974045266576643246566617452977747891694726711767098327576740334755284747861370887029059205989579779807307582143040000894244628444271813453979012590019795707661263970297773466012924955423678987885531041797105013858789734493017527468946850529842964930436472258591414542225390521719323081345574729640546777120419131401719519579809579952356554260249697256491824103383869687638817766383581676622999624637294316592619741047056474868079706302639887208203335993699678410882853499414188227032014105558742265821921584391531578722660129603792803227740493913916957201383755278370319574632759153533284800655565486575607627469728631414122115037526524362480069885344835190560081412501331042907254400367223328929967662049551256588275384344959590368745197323371904608420932437294882830783186920204189258210638602145907172989777956433894158425176957973448729880596415933858133568021178597655332458898535913598911062822866115945844107786503501018192599832868792757136410860097301425675818278884911174962355173438412922730573350143584669981136257281511990566161538268563784648773344390407668661928592876254443251678287960023069242319890578192906602675701483016435756455556530845773795578455709632443971095024299991340292210332931973160715138768120789392396799391782430623998850039367745090019440017903914825975005888642024819272543534887636073962371398703812780641291096601522655500555394178696379070185987469436071672437630998898589684141837238493635924353045416677529919452085360303614971847845208515256190395310973924013481072547465467101932949498474257725676229952289881851301726294818888036872749367497662199975996721317248250630840896571694907801253088706438156924907243826770642716345028853186626295170678854836870155675072973006441866756777721969178082106117991635292387255284098394096969294256433865986534808488026000836129621929573487831935571769976724202926768191601777453012103101995318054203452140006557267340593573281232034128736552079046067305328040172932509367443238240304468555518560261355425043991968071693535730852700364423886144015863373610377549206062696475067147569761975912851357940141235974921942161607210938575180846639728029598472659979012573218890738008384232221874802885215904640124138786655113947986144966040715890503468388251000204863485092707997930603740465523242479807088194874795043394300014147996964654165253186806010329311142631464754386250154635919820126180683435301955846719417569218443283936132939793676176923070895097606028433265947439476845065664439249874590302847271950434252704725979406432192982359121286895309283570360235576720689557303602732815033267987871275039057762562359997903738138876330736519112975921933255474658404940833699311029277641329261570591874651482532362717520653333932514643061611171031749006225969184381669021068263070711777111382396067060929476813028601043986735278046529363482543153965419670537918999620591491497803904073627954653024763522879104715688707780623029020870685170252200580915818417322633022478348243428565081958342809410787135019746672834868525672300183147165131702665658795264919831236097135154269299139588574751927860639017258696096347025229924594866275802383895052394190189662790954018869516368105505212961040704579382091156401972574740723434364973745816344865428036153302967593366179533466933138679085563510085988576123376429266650010198008309681770004240630879712287107979198327331163029423639184907163285630520843537095308201797454042406409817953222388335278468609008412248891705479161086955837565793666479016500750878015816897937122428924236272707472862051361208931010681866742560112865817221851885780736423281521014745600018005947041839527560226187656245450972150062256903901281884108652858771943187992957752355786624197467226315814032968605559606414807411138552470585218563096985362132545391465680807065415999190587291047435488968446152519177305143682487736827083059449855294328642529477721433240675048477771293024265198649878166419392376186120769563845079691017666911751912547717240788329313227352685004276196231037707320878379455082775957427559552028925999165719434503736101749887841321660969074229149404658360675014048718369242458639319840106973906764594316309591811381857363295055866592854797459431097663535351525482994178147165151326542686535938873256415418194383794638896207817651819278622649555855739870992842175834125652832381991914313278949257878994308321290987772110822391029196607282403675005230387442185257528057244226255646406943910694320166548678712056868073275418986769560501438111093825557974089998742284646136559893512505987510101247125930939621470354753511112018769176066796816670355491613770482509521417293817409149353733200904576715329978089057576064890357823290546037205488877256990519140725307593493936565576050363349172064027261103756681634771165995729838199040884676401439119619090301747132006608724702211978790254893314500852324234185525901906897558514542533138882577625706766155164432478977535612363465677893844932617470478715596995172146517891991191652082603724982214632007219807020242207903333080084728329842713312174706556378186415318726059949243312746500800855050706711516123416831728654108142276397082899323605786012656677600873634111304371632137319440113036191898040809695176929862768558115298037672224749358930066892696043802140577810475664731175298616946577849750265724440876474492650642365801873521350003239836474109418243038582166345513865256011548918839769214225719301430294830914600623045057970880521547827778024081216745906559030483155932379406293071790170128643015304139640140892201750943362740712431498403761035434126952151144935278235029382835177937071327014536946269684706157333085788103460893790881680524144929311588855093549362665043754739016926429098060678773755675959594491264393730094752637446036874766066038872521899600890913494829601024439812177016044636192818834085647826147115043090367813999825019704783927911657024254247064182997248073469306905304649435413895776070223548065640390316468628594556948312188829572410232667250089010859473571808314791572807553353989726465533218640093087547162883185300080652414527492179167443302194642963633596741909379863296543018637781552680947941918185688373135966778817977298317690617807254763922684222702436224574868160723924619387855798156724099432086536770266890151372971981306772176175062261769427193271088183633698363443007194159930796336204172267887414812318237912136020639187447610010238273506001720262202975312387619561738255155789331828720243982546887295106268147134137477543987588122382281454405687450086760524364765635744550473654913630977667417126490240742873778404467113124360755082514875980460863364003680415480284329109341559905551175275984910263796419741163781523732206242334461192716430082750352489604917037822022762180827092715218078950881192018308266393527776620499035830927939783436826616583076827624797053854770470418374557961896605552692316886239764959340096150033849961958031820258222587952514975176760333793162582536394759615205358642693796058208158005554096677428882308418672416108778592513378214353897043212639866864064755987779796832357247129369572715604187831063760546038953016454616556199659216058349336413445896991919371645542907748922843292129213626452659666547837388407641065723903081122105716484338524126269009803692119245917889452688407230592190660162794483451597357954760138684020438087462650979174572172961434160549768491706708410281436951524091874494322234408502540070101241117589913451974734518093786114304578934899693242207639296488742979296313303577432991279241410908925529718928549262280944521415315135664515240642494071628563587837842836418001433626292685274908968224424869597740866404501626570566051002945667412359849970770473263262492047201313720927449662582871489038791709656969071127532111302274246600617229035983403789699037368527929234335159994422011186592844800376248152321884254185556507696777357019914884727253479966488639793060739499477019560330449604673055741653404712831880553647398918793520384810541275295451291371154837176720279555961349977640256274113763545081186436486218113284428293647398672180052782172361808807804346920846673515580098789985408624009513344579773393203612243528000646253394137500222134964798071902503581529518453273946515121934561686953732698124336618986417403112437217395812333345928880105167927373852286666711495024680100852867097098469657517309566400562815316235099726238915499097260032664987654133823768087663874831813583619724255269895100648278384401330865409738845412881064972602818579344002890083720261958764232410610519919825798844733857478669264527214303165164705397396526645498831464962268690842823980198395532429745472524291874912317659419793035451324450878555361429874415511505409345662263880580509899739212678221393937129629669129161366762285998597179621803567348913157721830481473747048534068412846416449054138028160386262024641752400231561803695958096557817625368312977596862794728274388414535447366643940015689287563254416118861902656144794417331064110725215874019468546556092828043972840752172690243550425414392672618728829010524327770139933559262599858990974930952308590819877411413835110115683775275504182779470548636958909676931422821358833625785113492363299409589562311413394567798236108435915180912306981312484501886631452710596023317824311376204516034619430407319223287814591506894883046315450643819390978222486021332481071549370036825461831674599979334379743434281858530191972141930927580108195748481330247952809895337561857635483487128565699180576360302829766696638974788637042221255171782922292249875065432005627294896110036178346800471820718986276627536228291059606875016182440900455184961683605616535255111187924130919713055034563580134426430873904460112844858626250008920179240145316115460569555016844033655143495122215696368914326857518565369628553261278683404661253523862020354254740346841849520513274973895820469017796006334890978656867959665437340364311612735722160360779039030621489133020848331044253384012210965146191986974734067196516430634049508037041956006889751353331431149090336129490342802422795550189862196365412991369927916598368375400186808531826391652360015744854682861740386122493304114003728857185488608469703236498861163291863909198524672252760780125848419626202689118112778462801705015116329967611334286663524784356168142397417191296987607907461688609236969937270523486608526998659674646348451318572733809333117162276818485006782218169013427145255228091614847583052213714977234992288240480864919979569361564036132107255182449788454963428292739532298621458223868639385645282701365055045002124736561070537958261097972800521193411670452345452774032488791013344984545801514074400444023199210287523199555376118041437181421715209068968754182970644426842722599944767105008857171956641940092421891085173245573699103265774541286219108365505707042276603937077337462721515042371707308359444108359814075034950755632657108224467856999559368796176486311657835479659287436781324673832902114402489298292858998221925602239847257202586981722034320603665343205174532244605966202909984418426763288623860038576191926977902226483600420826065233424022441982927422841926502612058023763493054399632167087210778699869517374468129537249169566969457214219036743859212716218017034152228880957205424860544586509392979633920221740400822434951694908335977759044291841156955004476563108003896778428980377819751242733271475324045751628498755086883273183154939398432910310254506983181783776291275115615902719082388131335616637428003022734598487690083412568137570101104089590127025521793492748567534234923113282077948995345002330735452506266612308471361862490036224631155595744765735592204673702107600656857462157071253474078494804291842586704717490848737240226854098109148261020005349561516579428383996388888991305891946525235422939425814337812110702169004849289026362985766623997692154075387101919070140610014311087066849197732167289543677427572933940717791131486641381510065819450436360555387208780592294309340985868668122319460153843024163795702554628210561964993691903078307786694180710557970903838631804273322406428812696710213930882206254180120381359232428407845652868371128846988944766867537699290085182406306660000905589413517030659040032242922464129766346468268522767850681301287757127877663355143251393620955455849526159388388628383694298729298214562734902684424028360805656012895744464819733933088359429992931175070389446476194788639807689340803679754992532409796350218962770814274544889402625734520272650911850014823269116731352934517148128677140984005108708329669297984244608772044021655740263393846515646201569121395459024783481050086967189959830690444144498884411061725499541244073081422685572522859278798833023470975100925798879111020605322906587117994646843486295015407729433668922502188128096771782148966930366284482736166619697798149581301309302200200047448764832470106154435384734737953981128306662605996064155220738396358954566732828733239651395280894217840001352085679842925644426775716819429169558103872861952372364303466035032301812008747599491014972781553298486580538318794260640604502008134042274437433065491450525737425684449615167083604268452004629485778394692440976126990821884012354728499186271402386530564657542051562586684307397032542280505234649665637059007683857087102285160735523267930948958613702149612602203833887219339267506886182356041653192913958094935256472360098951428352702628538051491451528559066649003103382626475786822721349414077514326433711337810864944908994731266415078832735798314082692384408246918020180945349841123230465968089859071751735537117986611126240690000084400785938313477357796411540378814545959828686662049785816448588000592363906244150939698137872976040452927929470070972617154358251422234120216089899102144180859740146466417002936483999049275997233917331600147564881163113710653813550456180395898172823200702278072752878006673900784116076794452460569793472327667352463394015767206187720946434113665694198132437857345478366445388041838294419764642948349373155508770702711882990671672270019215193848616169839728112067359411808463824330711544518455409962230044831729766978125795724039551275926036954292314859018567470700384424207661095528432395791187668514153504473006422691707728975872724661014372543237590930566687522497989827805689552322424366580108278320766791389755525736272851845107945723028048001383983053739327637422804528217670716725981876627728333549239293002413874853738821851767697876392037868187502403333132034557317327805775951378639600745486329863858848066528580901721256695000696456139735293714345141701006892463892383455295349800163672563305520976378266254918872244953195205949810802991940874269674194915521058898796025844364562455109375091150179325397501132441547817667244189221030666156006288025941915745715939116559990064444218013641554285290815762885005671146418610619112997686214278661655968702268436195180120721741656979304697494036644373316000330408753067500971600170147908459883193614162549426087515655327388596564611369263205890279857078262864191126278470342198064245484823900648445935182142310664757909155388084337760975868299465596378445958676556352971451864628364305661701032890534408433813287896856456762590687851859589509615495811770097027074151514079916350538799252318849546610927691510809608880620430872437674811922021109629663358080706452382412270784766759766512590616903238618158488165461939034840384344520477379961791636157584580967703867118605393952910022546066432590130275890953301747191602411566640277660004302715529825088860012086189960004773414827798955777339336919624564171372561839288318314895181761710285661749480756086146184573089278107073306812452256989936087623272834359597137272307997285159757823345116462890603921746223361056672437704362701271599330739663248332826513699837574743433375034455220562010629925597380692551471842536415745072959549256572779591839367715451845096629248377415882254002041455576112946061601475939985424817021932840123890163218037552409264784936394383387272045043156545702016373121082858384323552221448045590047549927032233688953900402709530798085813757934423886258136352641110229633253649187493758474670113578497537165005396656202581607571782666531783598018005462739786208857604420239996950947289212909895446896230923300825593702649859255032013027716707407936175160635467200704833209950720541977194575600304738069195452829071792627719974491874739691654381812989052661533362304632996691499155051420299026242908125560341856365998557127056993260831401759821204789963730237395955568153023863576276809475626032072216040681547583092435220620145990977075782375561741099930403503645974860933876533522935656936361114013308655012365664717328879133359068463418188367997432710304841912637447114331069913700640221758389947246178241163517344650883409534572804410169378451400580776932377223999958566838299928240688782577025674937934050107203372688691581275225398230837570718048480356002263951309315842321536251839208457228638017852374726633520193788698027752909550465535831308183814361791213796770056685348678284787666033115704627602030839499548511333104745069039720317689703191616950593796984875129263676790447756772621569871256579136784307646279838059547237092701824620740394721952909795536150537304796519795063560491249879594515783638306802369165170437891043577135260533969692530492891537745211219223073555011894741841981232329235615186302714176122462874090814207752376241792838688775079336308796590432439804913139420738500214159490444377072381224369907050080820540119806070365891694674787782481040447762764415343092951080884114526081678880801828281133931958614315435627978771165425636012866475791487785824697610968707653112193159457654806261336057705219655211459327311461433948391469451098172714955124433231375224732002265039491350778127668396750439269452113255438945486625733734988508717196618961092381423975043920702907618097808310892250680510112641696814115222212831659245656269874225927436814092495953025027198012015211047441509891841752809530865463825361519576314634769739893327477260992235764920054063356100014080793683762748022928424953532053777297376156364843093080366802628369592656811593361785257001958798590032362678179750536682695327077279207457743764261736317399131146937931808179323965127521136807984011148382470756771119427106271982690619700703194225043643768917760046447571988448550432464951351961739259438196370212103680955183311492679890419817849114200044081385704020072968641567910107949863824619477830705788169104476202640372829040216981142910118412198382300986893219483536912975502009505123990989605412695517437890645964875510069094225029728126058079363624466234673715381365251019185590222643755614932636380259417406026312637762644007061909635246277753412388039005489070642449188304207988283054359650482814244016284289739331405089785928912045413068737932259325717320447319393759215782675774035689887789769563302089299813431194277259137648368097382902666825435284628718278800777338873729217642448575890405241525204443710498405560569720983232559679176792672741060297099463183325349800185293046486046267135087054711217774631318875195696222464952092941962920078194092772022146099028531923189125945235934913913219920810401178980794545520455212926028597206332601676920291722327889088579825127239593988125598035933764640311103694045642637436598720276673795932360380074327757689796033290204457900688848260624818979199823866588097683095800624783676961948679233863756856628500173789971622455950414402083681124989334952031124836813859480621789723197933369041911943700100123623786495651268514682851912478415096234293341497374314584775321307000951501025894890599356495323077241832824432302644166813833414613978390661219445391821386414984681035390730682718165189723055842788896769819367880160816197059205966320328846500954862777307035569365486305760568388445428314879842218195038130522397696048270825808452510650389551537487457377078519562652289062107039559145016044689084499283246188822745161028327542215491557602133100659157537706527650639227335537840438930648356805216287436856157832335190651195005856476468278064433999756102023438639871205585549587855429275079889425957349984959126652923554211115591117000063607450011617842250749143601080030098265339421778047280277891502326419864645715436681095010614214593246970317108233069702281852098524470451974639849353857807932788383300606451047122483975936331174606409718999724815517275969344432313996533625057875154020885537718063890593564288585147188486623509867048960350463131224983001609016396685942921371134916029309163486478337112149302416597679987547536019523401439864627074710388855782583911329185138920161324289676165830168105666617476204759624709758276389987883913286995386561406070389660899146282069614988760141166224448627940523150449560583741284823137037933668249230446633629402799138347433987819874996549855014081660554409881352511371264761072431710055352094813464631150679474611984732930146577554412887443553657550462532155281819557283213159029833753536345318268146509485460093318270956489126724728138330922042995385504615028975776793507931869401123584013614464038575518441129174927882149554857319858441320330421325092707539740068005526373559063366289258820629362291974448740064016009893957811924467028449850661208443181303797041917486230325045021121788754614200278835322823023982962150019951416946551755564277672758339017528582719053610786754365550922667572965126848478020248547820726123890770584510650767482002224325658119475213838980689545776257022901330044457805513600366371316306837989340516541805132139681798472438853949725819338431216044981119835455954034552408299346711417205942945807395101648554626899892654171263325343876558055043900500339416186708968187287366542923684966523744708177810684635445185382286246015668815860497281506752108782682823274625352530368235109524614784025969424421998534384530499558732518069418061950647326376779862089820320675135122984286214516658555333136541583157776487637112912670057628646304367469396458572722760284466975457670123840164362231803788977649307531920981285421219350482583811950830935489075839053551932397776973291809425973262093236665431412318320706866086870918651219914467420825757711184140921902713281085410669470830680186672425350931018272445065608421653003291826367748109496581069631726290040503261622109804556323786655059613631367868459035253176603471464163671490514542809272827488910182543155340745312522924835605475709400467149115023867408868120383688986681821495742508416912035207122615408473512241192458113907443825348040525907085988838644071472980927630032972256400631326891647399986799464858414289894863661049565193468373185806976302634691934089764100613818470902883426096904841465180287564247659243828204209691201589084495964883055314864058564524142942166605524043137343697392729780376570226741827284161083829718353317957890562713135736966137829092337299514714154326907232176011546502483611373585279196704854423695335043033298622804440258333187732013781024121012146429822204931166832947508186151457565656399971426693411926460720200774241728911781608394631016350045861235520288070591196488736713087012622953929345197709682778110540159098720126954120620085113271337490612412032959135674657734751325358677761107992288347755980749027346834524086081784648268567567775684458282719430427962671332418894803804864625194252756575733478718520479091964289849713664054439257638381200440231831107407772240475005605116116023266040768976796743754250081746298452843837247307748225998338144540176508384384723951581031512018499893175797012892468734032445768875052924770270639195701124255870938211924382512565977962615509632546436825043728440612440947821489337365935690689641177372845995935324448156377130781137969672893405532914946602756258285244980125344139332872243639014400963707641158884319712743652436926991408791202193263714481072412371402708955194749230719629183006317222485782761171125969901245929623392494353148773252271064461523800541875784934459709027621480552877577101722411813924198861798478027747043304419337106235911302851275192423991036357418866483947025769026600648388849438065937263436772932546525227444628736721044128937606891649211574164981410674203838208617947109331172663940099691395253877348644069328571886970613394287276406018331577285482334783945412304632829737470257463970506179003213194546767467911758938668295328498133433064962438652145731454914588459860971992164219866497567557509629826718902466984899663600819088521415231372208333415568151364597975911729563748142533962151740406348356231323850280879918252671267466435561477246695054621253146448083218271495162154546389849124462952012560707661979557989026276232880606675265251338797906238610004310173853454051480031299147445416388220069214442265902660301056048035104036615077813696668219516754437487620313468429910333858458157143730791807687245280794160561378737698763962773359471592834409177304778325783075371137070533014902278489775403559672807673446249112785986746425138851622854861665152505800700497142875428746717496022213969324298233289687245464042039375636377217215391874592982808238233937186873311052523439773170828947611273553508459643717767347861939351762324233973830920858892245210598463220657493707015836646497020285994430326314195227071251656910515243954069168362885678707202400008157053538921329693703419803516868182944142786867746609324937909137682945463250534391167881341536034725163445197929738877731219665758654932000847470274519384705481572850297161490539380773065461673222904977960536724122316592458985345602942814722584668843481903804892130060318155978502275213677051688753684374900978903676224037941272312671030896084524433446649404365670003384226223641715955002656474976538254606105936347419405200267986491978103298365604261505953436337786266031959037534550377559384337183856608085224082717437503399480278005063313284336036831580109446551929320291931950311731169780225244049951938217829545633765201666146197333339055219934933069214750924041485627971051746901229668458089575393761781820389498180528502963889253044880733562721384825823281165513591614465049325404827119811200735603989833521897523297609127872145702937108753239486221191800895914474880529386704924292424483986173828560434644804466380881314173357256717051595324271089582832565806924904011059529784887619839511811748035568827405069214771501528199394075103970686495796502285814168215634049246031849776248356362174403169139606192014328261009951232005663943793520602436042346871007329721516535721124156598740498163548661017987301792480401541144184832048061360253097073919474919899658425370596144201608415731706159038628619009100029559592551398134293974444414191466724511872422436389727276742197436190261461242131404232627636495111195341505747342192063065562967058157295257803928157357404317811795102764187411288197010791220166979588378885220767440152659721506099365349212934667251341842606111052726549045146949825061168482125932822132496567178787243362338410510359963733397358707108074417839869955786688629057710080638283444053665579897215938242512278076516965530213459993820066744802787879460181989165318739356267044769166342297996943495607752570776384678339388825391918326792874048228697737470463600909895261643371886181761255410429205902584836056685009124337579539664981518341509677938606968882375857201960053164126802891981212854237664949817681643811522830595025671992324169697432430894217994684922462257547115930704095120135956051074050921804782756017862638711796905089465114995500523224926705999608317486842893598117638669736711529067920112993235028092474901334071966598014769307913950663831569170736815086945176083627140644140038364686963378181217392921114020733031715744138182196286479100054203656651118637250579291841581898136887571288117581695554261410187347190734735462694365769288365081407818004502231669039202117723474436560514106333795309660371736101709505353335916164532788953454213993406696090001620551662335172850337814486034722646638713242845286399602782630708574955422538816709098276136964606487406361727069673434516409909145810036001193206481765641533021624043063416297187668307938058488868134360654847595166728660260381930142372087901341649003427307058036513884154231319991798000302914375329234502172987519394762201645265302766107300336187960701363280697054063904649162022624842300992349726848399250054898905805362173705278375401428241150692914079245953930778495053512189168792811468519563947983964700320067906953297383002790005187291141324480883792308068731438996826690979329253262024048838004437328852010016211743817611864041339452364870586102318177492351558703810493097931293668443605195827768313235201535128528837648302305689648438800452953901946475419194231451043708148758992476671836811978762716216018390825410308524440304417613577469812051872244979689083070915176885987181519235656889015259971246580632256704223785054988771279672987609906251887011421887724745124275901684475333563379809391355730554694531155000068696050310824316896272682892877436731424132270213958104566221514013751391933521539711504672392805254085459906229408196079937552326559083667970712606241753953452185006416931418083989115560039344186204373441682041704084640242907079330737271881412105788060737727598162714246906611532976497251332141661110803276145741101066641261520125952133842221581879173627808501516087727920918460395425228791132167196713299584374365828052243425674746142055417468175158025475462930641448804247575832162286322006696065890399313924255031565452380325458552307179485859460045091635335808231992289635765503260383564074440406432510517007370102811460483415739655925805847678401274489185199587641348496437948710213470451645780730044008471043064564789194573903577938362197811209400996607644952475902260464639762174196463920375282261685675063080320924386623711757790571987951449138950351861084494227151058984679285580600983588286404419912810896640654231911469027632263748816125959498197919741567614529663332433321873937442445344152927116269483687774228364607424237772208689510837466731070830886710734576465922736050122693792291838557594909587226718541149374850136631467259940303556756944516158994768384570320463642443250877808762885341641656810298390062684355549697115804296747790644173301979261567814422929434302527312514434090784387882263682909178960565240441101043585537656124011360949699673875405870637202417269101670675448974059937400380101313060813651205395030449067016791498155147266852355244487260732423050952702350776388473934315332682622927593677131457706384231362556495111624830082711872953410160535537658165763954349743110320474299768801801929036398994346634938724745454246265145885552177925379539425666612237645676827866377836857700235255291571543625264254843071339558161265245303203906516663032667578897845527704087989720534721761546619649782022652407316826295163227074887551179226836282595240539125458600203660739870574093607280927782098675136316876806867571239922204730591122312613829429556915135058004041582374554605202594252927537823087876295805896235290945662884722134984366987818564437240803561782303911592869467525801667160309059925433049811593950770942422484697385703944390061052374333749232870345849690817046212903417667105665006508692332302258459895620958041387353801607204932211905226353086175257686886932626599023505850109003267443937873522987733914399930915838466417915331226006252682328949424597638241207299527690371864181660525821467617623357893161725111275356699874648806822393721855427241008862946476464522615722021502697073359995341975924353277841098594584941146003755385102543593363158369311182252137906007150406180370302238685228516811527343970116999033440854328304222665597845145634343933528993242795703636580884006919415538994759617684837621065346584189228745137880031263530011980754976332152773428612508817936113864094484436251997355994236112692611161050974808841299736666120112114883845382296972798338794763923030325713124531764608699324336215968204310323219110009404710474884498322713019092587794186740603689970531051782073514355542554477437457956276046120044272479595929213132732904668048513909601027977124905356683471563294122465966125791994576576711582776976798671916420066133248348820310419207042283983250299311408046094738825216487304838417900877026895120607799134308947005876898095481928621687198979597167119184134543204028718163053671177098764459447404151310509874119187821550764565508224410627020588114547689991985172227479337520583191156997300385049899785096818819950655995275128643653377520437541695393848573487194214851982446745368561547278346551027467717343774816534805130238756584846154473504825207616381060546040254946782730082162182974700644297816121062932562476747927636256874901078570625395644624448981030241526249306953958786897018906809148926594628752919899985575505046447244997108089740177477967015481781332765255265531236266869139600104884304250653650043656682157426690243317047530381763030462827320526000325728557842646324674194435531086936154065731891519520692139738105486406716927154078317311534001929653594354814594239198672926385179542387842853208370564315696972183637077025499025512313766746920041155291350336719115093702137942523073745348214730937636845028322402719301833916269372237963824228710022556535565081420066278623648282384689614047609188417856146282937954644415212428301393262543641902363010817334185111067776672170148000326477844627170177906201059870898750338161332602486900889205516153640589438349590235389641233169858436011465486977052380744265643477399623773009755163125448633462400743226645997343188347658343423810266273848736235655511946864752470193172475458295039744134748514463946509281778338386006023486748579281618787502710035998046766622487740343574401002150713862709948754567141640893902409890158795589180581680930687131669398529234024012590118471908600335322951704888948139811651606763855390233241834806309821217137791480565826992602303722149868546558068342935444051786496104574851849282172425794618551211658110738112726162801729865602810384941322975760643946355985964020062514992430313345638170727554616711446477462514151161859634731128368441698167376100095979628773832702533227355546906690708165035850720564454521479591381757194105044462179491255913990514343072286921654689063878093401845855853799962550691350204121081610612941100280340778780513018257832641450874999114623131210394870272822699427572182753304696292473895552001102842780293852146304552568373552863081214714557583317740946525780015246270747915095540485118670078140857278022035872906112914976723100057268534499250242591021778973658609314466377890212087669646704736249096194391237316024648683846574387876896622726124437370979141481999351592941796287302377559815355987377477791485551591621095885881942368462231153443514179220411747697513628336892376312494771328145614632430446495852827528931090616219524973830504403829843278352344656030710747637381013950840744360127377405928770337068041925505720134436091782454372695435764316676972767145946430992452735925054817498156367334154250151374361991242013788056411981642499550442036952747689980344221995684653812788249196732517990622120426267325662183532568760690627335792682853485357677600569331381760942558335350416166938791307756175121625544548569912484925800107519310130692941130378308004553094347533418038141840113458550996277881323135317323869772969131457910806521299865242395388716902316632388056970377315086829231668382254632846184525162351467723433074905669987829018781414506495714569362811805535877572246156957441778893393373486492392429856847014029296908213574927994240072486458007509855535455493050698287462087507269655219567138764662403880368163384565647343572214525838842363974675695045042931213812780568785529747078520321305853328351567325258945555430345710677865631407008132406612385580602308303928046073960470173520559593020088452228676646093945255284825380638308408127926864510967556536293865063403437593692063250063273746972418670419666251323495970896571145905468589968622038201919827670060294408577360367675901167537243999590918076955786965945538267894609237212358765215488946633545406016191774774295748369003220886846226166721865323228906254899442631236172267521354577057951116321168779875758095276194058893960353972131698904350076510311020719275261002071677696432016435429478820416952141392277959110134901645270751479866122112828793022513440574635273494781578239143532810366241629740556017293674150975764678718814975157142196822280449700546353051322028051394299303052053112274629346510259652444865238215352021112466421846691444302962971437395391532055783356927296565001890413057123309948061692911687761271812537191957963314929296001173877365053024882641405942297146649419585148895804170789878381086211764808496756263083609671990511295523970936283234651901000564628943951280305174686748656721956204279249670091202776052079728825435885024079323980675072713859040220271734692063015527744029413485336412537650083671760926237747279100642541949405024322588414026004724034819893204561527535909831009236431565930899254982567643171101740618671499083696794506300332570065315877542233265330904719886226029489074924975961107297730384456364496841522163160531741157169377796539064400383182144511353773549964037195701262327212490199252236478073417184588040268877701287906137796843569692556031491336176656794143806450478423678003375326200323572720538982309341966267461137426625749933990511980867097159601109628438676148024749071820616693326097507962662759442498116909094836377278676305252877722957005768140680198974476868274639067572161362169654689412987901352088096870432428064946798181450874011695141190415776107923620806590827576668821647970591183292851148363621213087827184468883251092486381962029483858105632566834752331363084754459342629617649070855070079753994347546908897774598931462931598020174179530797330830598713984571923284854046563771751619648346288970833867482668201266815005854153434667353537696085468948152317336597032150857103556616590726764671209895795139666133315673422643854096970413241520775708455632209512675517687578487348076292708363139032929333230025103207256358434058740226446993859531475395431621192572005901249202255492768285670642890852073050581309895387579189868664288589367991397140792296876079563272829766345417706967001276055861139357963229159474074367310424595653423819369183998927602940910366767239866039226051203928264004047599329663204208814295142332600087012866972906699265696413580631358483791127285254906315785251775333516416237816723272483864107494755076380577390040038570976304229736333393140582146778033037520571015429362297191073872354167615538065897249429674367104597511327485617360698496042115338946247270506348585456728576555858285783135685456978074350596358456407112514202365063035182046607058262568446681603956004082554517509272474442386907543551428230601687213668122420047333132039218908369946523276618648080811974343775164741902072279261077379357264433155902957114006462032712463891598664569556627922502981413275146528888226199773528604294354547077060733471966285670666492608824543049620611958232855774467654618811479688925651714426402417456710575472367519808551060730108797644641921476428748643546139917087443624783034858971582181722664598117406288493342446013018173027209487685961128837215933249059205324219080553446257335699227577914653087840131731419045937882830799994492720968260928408398965535229267641618421583299540142469569169481851379468011259269165721514606646724104757767515201508715892251787734664257913814480445598303872828162662964524011406611375476052095340156541286854851548953872886886837120520217648579369485955177909714391570150819337645494756014296590358249816567844800481021818615170573486289049370190656674026421441201661844254931721770654850921815578134577744517073743444725891823808277857142883383448220666235291840828845893404492008167329671221829267603478354996762827871408434777462654775859564791532841212552745563150757580782917103062908740576901653869237445486802962098235242742200461416117028360676235241687650459506389601142383281355540335056768442968884779390234656462252867086533482272042846484813157892337415828570052112662743579135828985436961969133851942591152933018412303252853712072454805166413973838357368755028520553253894224506491579163658724028808465810347568917452869929838551305614142021415534509243070957858770637740815236719650640535942549485484485118238151072082518354831293932525228220751255439498160038887297417485309203362378060185333513540317011543642071987530097543591856502205297756808737334444922271296793048410254122308025414343107580128355920476411338194387809448967546640786962129790528931919901865316774827088239417898315390736828534997292504562568179098793131439464311008016071487873452781732519034989659192391029320209671582215783623652949480458630994479382034167925674612956499820060361415323680532103751443768553674531381126270406583513053366872905439738045558223385191215952931704217017828191652105984006153602928864375318090911033535068074055203349436378725974550343724042142226014756811910505599079374427697228036047810921187680316163945824884004489566320318534150586651322083661733786371056135658451220186754816652520013378650439338287114207128622666198544942280435312497117167192992548453616254861550392469405088056045474510476179209562649559315839060525237813903882545870524420522798601285218295106616354339347115127021568189209381416934005045781418506323380391231251756473412376270550543825581193624959948342542633044242647385818578583878398999145872369104497444781305020286010408207395951557184477079336486632094386008747495966699788895219035717450560755563889007682415974935679680806896864310448513182103808124397426249003199544246183612548123623824569361855148881897243467957073646864298356486653666630823158325105941378543463254375663874080019179360263946551746136576609555993179952007829579031071731462699057223911467737132746427029188310803682310728402134622298190020598319465429733058417679559489307516907376433740289718154915187516350426277182605407223285842613739708016081729928469521745486588733180215441807839518990696075724197779483918835482358071874471442570700641095439783589863285786402623632436028906241476748941604920229740677426375012494236526490708185533565205125132699542438220661690846784327586228790382402213872699450060024745713804017219563451041730440323893682753612690477251998598312656820515387269714596288448686451692446852246974848189024802331429088397229255077603980595839376888130349922004782302924804264737738504489490145467465329405935288498631520717329784015959521831967165780656499270674366700326699787807419142616356261097193024873643471418780715971912090333473982029390272318311890020061902790777161536929802077770241220256162513746288217630711385018147063944430135235803768336004273367149683187921979833037746946678717199120678337512874961146186931261652352467351294504052590439750757409634948484971154297873214662387056595473101292915806866903197628514939549941400705085191542101976720324472350448081468106987531200803642202558905730773380000039657378692706619781560876359932035099682312558117814076855455793104952236801040825878353764777869202644459175276379515988555234891077573167041149242931368945313731664267944133185380336244991801416196251110828790812783762694030072340927025144056490354562219316096799488047652402732916805945006567988822594752424666223297485427685363782184264241668095248783333313781702034657056893983738494326880572562987135487016300969662786558897660393450176927951982280861198636414070460851835677903137711450933550328503954625360422191989684414183401960573403317220430583897531756147225727253969234069626299678049163861003890400337496869502096418424404968573095249346035748490597975122789149588703064021582009943402194323369377064485970479114398213416067141264302376999394859106628736599853585009390872901888200388719076639746701564818754936153697757390129627319624961040534588371577921830653599501303445140740999363301654037298999666960220268750684375365211420282035451824376596728996232396340998861425421652398303381510591572310064084761884464135583372511518467759528704404963111142868375304393768376232028362766617167193277337626156853086362164455339606162632663020118306596414759618257237199473996041450404183328752872477454532586115162111933363171011753856165701067686776608156535876068933958613168860150425881820102820606057330075041772561789933223357272193416966223610510257873432413344512211363130518295329529977650329695966509452660015317036333131353998949698245079294974898731068993175416129415466545929873908237419317409471735031036678778360632375173973633598564317561037023334495505966310354996151409282786506533890701609982632800196702305087204065410106362968385849127086072044426197321659666284447201483601975724795641957923934307017027934949402512943889775892934235103081185891633147537583753674672044280121798981970295510096895146927913723393465503717896760927027444223321478315297100871671815806327883178238062763211623763216333146306862704447863606654741051825491815883718782037104431551223119747455654125425937719971187987377236490780382709025548454480200603811597726865806379456876310881756353051863872940227920690106533990937829738483645726152201180313158246696096679167722714088388806944323647960929625644498291830314512005232267852498676831459835380479274332878196367556321063955096087563669129802782907103769721495932819680944728673358253030340959796646105620643332621546531008160128079931575455002412304271983858276641671049651528951932577775626512060863468141022812518299759131373664453156763483352202284040298110503790087778192685005050557914549004114454979499925183557251354007697422126205970595130823289685416341103139368692570609075432039727763180419927293625409558138154087535648294606530735980497666480345996604379009833038045106367649754723840739098495685520123828935952524556711186568364151735510501738946106044632293401517931644971738048936586335402246606732135352979109492343430526884702627951869161695068871135161926762979076814540618438066598220452267050695188418737074674708485708519513958175355117425722967064344155865605907950702589949951400303902030577583049790459509057062912520677667746812855520103464664388099431078194180555906856812366106592450213655184035401267471711995432958712444449101432307943588070986395289206340872865449521183654063122758738687296238971570192969966276111239999780444685876387655840116378759990603894188079161279102076178225847922597138297167838024037310680437645543540261439683867795245284322040127040318320640088202177177666994798340613982644924298917870472385575380979202589743901393092632382194921781155696794520783448101078747133862188495087110208063421081196237432879123858266025701475562619553484182205541008787225688702577169289287206870933500587381387061106399148801291085173264384501912656465325550108711290288256192130819720525878994672797362509084882180804376524653955356324203285967941048196304351926772085413691228210887382086685981716698062662616243804968840377598311635451859167433608204466268813300511849010277881740662343005135483740952949540651722276993140853447089979438365095260693271695446184042237163852809231739570083920454205494103211501151411234655210274630990820492470989230780667690975527579721348934530723173903877483467902820253136348346851845416432737716761217328895586519140483368671916391875090988099092787202707496863100696425221261998483581381220094507691508450891652334529323964025149093873525216603368540519544302283122664633367291182458052031094944005288929478430835061206788380582879525876927902407875769769596117996825533639930736151600536765827124988761355049763206979280783611163987976188397979785087750332891143049914895012350947441238858984584887529146935204611600752745168897830725744269936033249390078942531663822844116825084059474880483441862602349500605465475835135477577001509306335321439968101753866999681113771134533599635970806251056949694154764861546623074785842973891033241730365866400093623198914319914254112852452430457338876433170137101845842846666949532297502636565868263603006269111845967323953495029981372757246225750549514649996175890920338833367291242665643158952320443519189321096081218866894461097916319607085637546754095472641382277437752413127444939349363365123118993275951681041146978422606026895850953088060897978442530648781791960304242770540784746558409912537530339684386371152622551973415849203228123799577859542832572087959154504254313644870360609623146515554621519076636530302327979220378180580564231491633215056327052315547033532288474850760959844321866104931747819081285882136832642770515969697562416699267383497350378099708291287902484702288830475530273780069162091071434423489875705476417280920349244864673252223546244912026695362456469430156861922660676062997274474194493220642672466429828978904731068225809637198584291302765834797502731730886943151259822813392212547704177819789364410422286346950673257258868570737423805697955507946432643226890885500698895351015487705386099260684064994804563346162421458919457523243356993923654079296618028362628772910251716826733674910098467658174385385110076443333782453124363550504304012311455002716703869945570519219280952256561757562707680052007473059288869748204474780273766431588458507956585200418735662621107958599921827879146325625370100865100349926417312510179326343401577193758790919068071581950351326161841174457610665603845573541522549639014679807648294156185895481457635602634308791670473464864765262458404999311885598365787189444271430325073041803768025337146743492074333424894479056741635691244224224620254058724236224687792522734017807954566421115737121216168972405709657457525365276345849268957246339582466523929547633572217913191577272948562299577481581130891914543706855373396931642043023489951580110384124096295018903099331820564666395768044588502693554512032310526664441426147149758036133849942437093645806786044236233566328291223216267098743513675912248946997693183456602924563375571486107601548211637994745604446767119604483394338697650455398578921757002628896280429238249639088226672611178139913906108933386374779146379169334483040304687699765621937908789568506125318817847523524801844875998168528432429470295640371370120358638400465127477298206748439612816946748321518301158740885408333631045259739347951663948530321163756249517062211291869101535233367315931786841024899053340616259094408411866523635591724318930439583749408143441855761753593046293284562825495234820263191231087328994420208854916184034242795444190898257890994985777867862391206480529336322738664402546175935200487293120289491502970842946359003417392896616474351479404432902267703780793455863115850080088085041399516378052773583056481996352673281551811176324766168033618280400260771745107576916814272287922779738555084301552710382606578194771250729901098834981605598156949733532750904226853429957913878949956900297237842995528545956467878475764269846137719979153994420769735277447543838686451706890302707278620376514065457281444348304128418257131985643785680053590089801528449750619961263981335961757902339846759653945766757620715408514030539152343866641270164622182768837826506301486838387412127530771889546007226713894129100267799352607594347796930215660348036647020865232930104346312218918160493918556492928238276191745881340872141633321754302003313328840905802897042335336368986900787540724367112725131572636723928243559136408106564102181469882263904187869469106660364112106938852016686566394763813517585698201858394982078137746709775446095072395763055723221776301045576381545325960282133889184422760656454475885136185364812190747147776374432278288308400569916602978852561540871454480291109789133172140040777430628567384385674559883380188405878754045598345965040672266637108599081551272574440963495869972985274412404589200828502224409555814335440415833239285201362535463578490749013849378079191930035216549524647481044842293156370021303849774377067958621482468374679750923172904663659603325080356019294918915735645558767009133709853232049943938841711398635725941604363598589366019747433083832095503941349989152137059443214653722287844848758816912596307041964648269327943781903332066398374758461373179140555306718809736658643784092638733303512874233774098324706920476658686034961723749484374536400664214461775125906779851450255944398086371571805938055810775950309846547076985342218401790003980744502649007859932958954598827268390352552402776932516067303513185960271996850065006232456943727860261801044066045856990030522433625988470802121344152592532929074348320277226611878369344468631444095639317727856940864627404433881719161913691878322674778907412469845523414262834692659383124358766161102726998332511367491172797481490180332137652029551007027369412417506009102975139031947595827844501799407172311914149173536516463768538072408309482474164043064093584633546348167207196735179257607208416102353161262172648962423873179268137014564704624611567497747282297532081483668740976211643065631338137765545401618955124503908265838829429479368370772692464003877531612704144294282923513429623231818524098652709157891458827238061241339252823063745041143394979074637052510760901891758417606326784424339673589704204373188701035569992063445233409926475189175207696724090177389830324685621274214488260459569515923681964716261380699091055536269404310051891939172726908976343624235314443035787048470232083625892028035365664500966440208036964423484107907304016703286378638324519139823693403854716247007055513475619216304419282013576572700203356847412772934593157924871552442866939122774240582759225766901762235657579532311170966237892824584193436773481539323051740047704582878749036680823521547658705601810005247026933282760630661384506133724844074231072551391300986725288331160288231711209615238592059009756730150062776020492209162721085001009823698639593817522188086517087235181292609072977066190064360028760255896133864803679991976740137345328330577494208435883942207227727100388269404607483169270019185996365210562156520554335490247593124147239284993148187620499656057281493263163416958018190096306893162102021183762599686574611412377060806425137784155425731060595473137624044647100787249018029558818213390792340116879969921459715691426650819630137848617838505735582903252552006124570802576928279156767559001188476742984958319819327370105423606367595134771615802781673217212981043383533949788317773461106238956878959520426389577538790910745110641545216843963605158748934161266411041629670213593270837006175073419060737409363258621121954024944795603075124782278229595317984641048009337865819774508575869534559644871915242076729123667073919403189968569379898518695631390344873426418644157500948398989685737597053207614412375180512153788750519228235118064681377752575265328931441458414413049790059616804220142794608632616527694684130740873821321517193762274825297566557803082994749190746166446914876149464800974520124969615464580759228547450194512075626814837811835080413238006964516891847574977696023073676304244088241581193122063550398803385114108555994360218786788974856630087760822616081948053218705483596620966667515903532138038596557975039347678173925890518803678183732942299347637429415232983906143850467122625913404337604169038509952370358355120494362403934059951830518244267468967370286214726484267155382162503717164101689905872530828252196032870443695838640353532136090219779510198673673216074591286952418162556082590113748277682805232430315419921039455214462592960983344360451361221547487181305255891957013080909536448602223777147129071819182258589598899335499842634345738385279544347794296370827575238276582467199016610984403957448027738257463443416567309848000243828244895817232787122069764917238298171851299149214818405549053026837633431438717301702881655220037322380846476174166445116218460719159672582454972607380487556289505083057764922617932525815868627923104973625753255530239295514153363760379218986007532762799116033340539737042298494215587148384347725369911824395584317928428710467501887410441586003081844129496416071220878769451666455526865444669984869419220304508006032726995672848314763495616832925295863048428552789025865524026523410340921240083922346372487414280830169554476647754816571794532393306296486681043795412923188664007093485532505314218121418721211486189714188973396840574607067226258460880967043632644583300339452363573870575399983957544150894389135308538355969039885028400479028327029542510443456582348583346654318127560734215855252688546979485367385017683732567135653489976871081217853885416191460768653380521935287065190091666869051278677534638719198585632234542298256809702204638548074169935803398490422640389963859820059537751157306794452992147711516482747995987964501377934579165912976993121572640093462631193925228078975645449204850841591634308743432063909371700974192182108450851836537190056268374460516096131919366172889516642580824583887462225612540736302363028132388079861163445794410749573424710106581186421663227509613572183880479199771378424205251135331484311575406708143483679562003244296543921564811430518687474045897510455320098867403324216887398663623854842475736501325426217075048655217403123797466767226491170289535063549344442127675882175995186323549121525669442103476357522870433738937500431076869809460947331398346909591150358363400620340143660219557545767580791365294233412663305630143740716810061737340618086513530299421159214794043426092725248865378687686117371201757027236518536900291200868351855839594276431381960909300075071278413084544585825564255484602931472646025292234706472584824401312876414583541395506739612597133605433803687708196841211842113649400550781752321608500706730024535978481956134718461706821510178618368099623436580423250489755947095447573199269679073245912840843611508972638710580151976218137682924373573505648648652698293656826721925670042637015214928085179134308197537729020480595284868084206118419010526310926188703006313522372249742768577634952073949951990061768944720025541109727435240972748048704245020292942419825936810382092634174119468300665205684859627424208371698843238154213980652653114188001400036869939290171505459468397860365459035323539369638326514743589626111343332701655434635002490219904349213886925642171315286342579432348225880315475324911493253751370581212347870822406281531186246727305789563748073353691549115043431835875915029847808520472794950902315904294662959991584727916068328634768270615055484716587772977897503416579781599029265049068458428269471820151417272675430723443069351644080863916167952583685954491970021153233427093586723501213663184896152033139104503784390371954498433298716537649754232345477401322067584355485863935068724986378038740370718046604071748350773020538951607253917818538081508427757624250024637874733402559545537162003925159708216662100186216513027485241596804788394021875878877165800411624695883278426049114991152478250215212565688320201839447642050749320440022812495509562396222055274320664669519759676300692881729991069284669478416178703773834579311935330825240249230558830136712167504048957319033287910772648223302011700677343689927930304892353137817738447208976341994432710479907650718741802410695987515421218519120487072527864319473230886303098455779962912500894572004249943061492575468025872707204896959641862056114686760597084342741966274979899222979536668372442763724819016159217966405724197851704320625783198607012144302240557384341481656827256587127064856011053317051075220534257641277099517377670923884855216559515960391617346966907288409477559070850585563783784390637685384398296782264990991933277563731246989474664655898290963166772944014622724744773530300644184488783303678173728896354260807608707394863705834821078960043315790084522057323271456801014701451103123711656026637726005563024010001637851648060126987787293073428489611252013610294885783397057518531602695170327608622970029897776968793866225852956696692063199573612925527600744790857994108878459455855032165917777832964466388215343736659350937210705822605553027505015846946908481344155164494476935054489212743741866306931949308574183605879826487562601461740675578718722269920492581622178273265333370420953195664568383758384925969642737799815750784205579003039348731511297188984997658628139179033114643587992087947154014679795311795996152839051152928280199848320307634221825896560941039320369188507794701171897606820403772778417499745146892841852050632233853678333414183678521314888168288878660725379060130543497289826983218686852087814279531767606456779507406610659934456199796884047053410202063830386362564495884369166567032874788117910286500349399680982855058455672474924872825082826185140676092057074338554695052419505280544740361048937614865761479790931860939738439898484087763032662972363558565748723761524473241709990327673086372261703722182144282402980155105228199079843150205335463378830503032545590074650815032274103754142128537439516434853024239249997919279081633125387055845348650700205382080392221691087559142745838455828514258460438333721776867594413621465355621985025652419042159673184935360594658554980030260086457787131726929462107561484220703186081082080829888513473294756343798458147692404140322316377687696553175192069669389278146411638606198552957368970113096068697396182318371050876698188348472940674459004196306744381838355794654707491176465517834755259900163956197614569291800900743810053357428382381534747092751494645742610787485540666485355962042033103481925302685741660536261400075247685499739344920789512954542192128199079125109939632178367562474312204693428582916738470477705407542221301056987834520565299368042522343706403532480597279540972241626832306462480007288006528760682281691599763378261089067317419300528892423525463270883943741124275759838576371736077872068648834007499985481371654048398305550756122879154455188346801973191915071539703049195302365217194345089855516382765314147244259337623049739343745119420566166297226958967590868223664867458293141834308516671485817644687213645404255167990296271294558859897122964979522149394420786520373896231327478517165438417390283523739808095986875043551122724059807267916586107395669774227150075762127253665497579240417431881367026156708412413666978474417076077253167451186620483654280242683725158831231444616264897322556617729694701658970015935187681689982012400624764440431993211744175592106111937560622375817810237808716593138927729157864220539435250228371098819241602525735842505534857939185538791315930488878003044874348426874415331728917381264825709562645175705559979514329117698492100922493616170787466614275443447947603301550537166638253430234728993382664232238859611492728301889475019093605210942036763807280449889724829422889330140679769539863690928003622376327473311783394825710020172064056605840845936044650914045035945884816161122606217889382434168903195504443505542372127096967977692730363280612585533515774989721301837467390327852119082741864960738779121621040409517134190919671146552055004595292690768438454292849185630911753053463187257295186681631252374163775104413627890823571648823059312908632704549022604692513765634796947250966263119738498216575754303370116483211598133769340399967573944419383404941731466996044491407607864220144953220572531335558863900127538673364583398281005408171295437031800049475562047152044714603386899760239891705355010867978673891635591436879902458271194965868814816767043408278462997821667175475804650659160598348420789202528181779508903707023247241866092596820981395950405780361087586800560422424335571794773561570482923633024337995032433676776274958769828962123958911939871249081848537035482772141256212826356427188052577030518223291119215929800031566365825857663794151287491681962093885493162367392345083300196759054175395568976973882808758185009387334069251510076250938121939715461242563604406016225103895916153423344748545386824606537809034446461619571599577330340116568941981612994034890925093125805982066530401480572175288271303362114037392242898245196387900480278982266623971685130231820195168173167672382351869591487693968362138529413961218937270750359482777794651715731022986929767768501541414150037168972494800443091372635412327326489517429354394531528804426615870202097746243108130327190099834086775795021024655667382963209993530830361844153939862936315919945847903907288911597456047937537446537986889933887589747885715071512699143523824167540816831645699788209229019750560858236846501064168456814472418281324682525898270279804748370712615257261263649494243111271717172613548967435386931236308303901911125828562389957414109777376350921820717389037304573263879572665451592918385402573145309509782790899849491939346594705232256699229142897184154177678959998881693175134834355036861739799421030645513369062512012746404492008448342302372288564269626528636864769866854323568321481292836962390622905904067652863909215004491405474554549131332787014309930461719368784181544181907486551785746259062430303259305391244391367808216723648849827585936184340849115674379669582770295986100990121611494415060902175799290325361459689831351912290423435453746351702405120071753496293809078843376634060638948082126264692639909896413952307069285314356764220754419082294627985897652847668453002665311819905973521356935906966897645684699555593109264998403730539944289756485696812878780341619347361928232035315722025238420367059716562725739458479318014738230067063125181563791890702823212840469067333152322853200039462985390629438270186842639445784802188993312452615546108837105198665649425186290068125964511435359746351542826781633242792572745863579506571911752483872156391840523301420233216169873386549040008434795147362620074211826790148546832683854535850274207243059964140498047037139349016670432071184247185150458774122524877211913178902260953492645703198298688986506180646291142417034868142419918134265705099521696091835540695862452357240920074904912210795204747412917027027864526395501751897261928098120802318577734392828617254645290899518461041285478679693012475209067408760705368244138810280860204455385793548473568705257455231738006004356484662394655431479894057678804670461145788446031217039355894641061306191277377402691393274761573992892478865135981724041459511292097778869461612090067704284559809828762656594673262601448850739153600593919828493333801149846758512202109420337640649796665321587836203195107682532425263461502255269870650097685528854836056372028794169857210257449016529437575852253585820645777023322397911271216300547418330077865936113751586541904238195002250511932680041528104494928515786834379811576430700960158122225154754014734216888645577924883405846653500433912978766865149715494998362740038664360450964106851813999043242060781415783750903691669829215101591931610935077019977159974512988933487268972908713495529319156913961950492325137342007902243049092143646507955330003837158207616728058355529339322845769590418644237253677862861668071780542325670226965076821795053383642541322670005877389544452301354922302856248410643326184296663901391356290876376627756015735868752889889459623344597436718738278472428010432407513468488688018058922740032590820067222021326353186812769433455753404620119584563641730926622312216748180158951669001644812101883968193488625114347023193869026162188320266742258308185197810058925152253172297088638532643132557636016965584623747712737536429620749514132874942890963628574342110239935937514925258915780044404745950167013857339597034072389274340601086010210215445186344110918410228262320417924454864245746374457821880382483736264935915183318111013739216448852845535411994750264926213627079187428514089279861211440535979834960792940251162115915494915536583294881560196705326749003424710628299808294391798407336881250059425260218408767300473774031406269549542049604939074078736971839655827002695291891436072247830034808296046625709231166831125460301177028028228366017897785928635770465963110215377614450564277234023130843986982552010985163697655170239975742462193735354233973121689930053825910600651740970849035626176349397856254309399314867424409590328182836066288047000336915962105491512133739580285779165733343176542169034080398988546853117170546135637907202194867716172528282193366090508513222764841695639935768799536558769328293929468706066008162595861873454483349645130530490926376948954562770576470883312995966189132271390960241007146827200926024167709734272548160458171591540950010574511729160761088828047220331190777526639134805622270187485157328517526810133573271817401663606288420384963388371757793389557094332006575657696412397190029730109181539175704888569798146912007072258589194549970061349353760870921380598002697960798489841912779003102439665950004836100923786495262030424962296751564440721228634686240508868747633827485057976402022329295680868833817778159398306973438158722553127154700786401649489472927216054450874521097435204799049708213493915852283269101865945108592783668436305180574216026661173414192058680733011619361424967044924694934697595522728237239189426538602907237927926076152190706005310953141708757165978540578837314494453530903851241232851723576137898049376396333345308493185730783470258652251087611543811555506108603238808987005292378352822920283233456615930348859132876495615178845127383758316059205013443178291631385392049215628760412634314934400359608355064624108425380965253874234071617638230643737623521842853716015237974724059328073141924209389852539738981202055190210621678723764934529081145613243054737455899962030807704456661700938966899348712374418995130983789814248981138153708143974621241853867534188787389228006801718730851084721514918721555363959412630563522185347822705484236530561914360355324993867722097498163356114934844025580501985999032855970671043652525637508359295591674478934702053490397668476722448582343906707398521302224800554086882034009514687136391074092327410328941835894506234291601365588424173568402196382619981552542088349413608040364135271607407900726840908732552586428913817742886206388056788508353031007068495589329841781889845745798113081288478132894115139755114415289586259477444619005242146133416331594529138997667644180828910568774163834857610403931865558077201853417972155423882803959152250671400372067466500022784219291034754567735050322130424129420507346601439859006546653816541015902576425843678194946166044170189066630929968732800948922214735243428739710551705548346004004234114470918854505398613521879031281977280009631758301933834052257561479612078694090659325624459998260700107228525787204071366549511300809259150757583131483512867574388038740530245975025662192305795669867562681347892499614037176831676297951080191330135107430247724399605308189535188988384496352455351120911690691954472453334716648308678965498884054436574283971583984028277332461330765913171740189484746853192527350201410890460895544754383988292228104379622822267239781960301253372511516465930378771125591571656127531676864875745638420269680589403599622219015834718476953999687363907858472923884721678767921289346570622729784630180247324882712911628337378137113192079873634688029166713006333631210329110470694605040496327771438777356996554901300873043302931505543742143430818835812171531883204455099936151613560696400396475975842035432738277021805449297438329880265519012786520183764873685280211397740283559965499021396645435570929884528238455209595298214499333394058754919683885016694987461458502896064497025670969644905806885700433859051993662581066312079618090200354577664671320975770067590519738812757553682074342458244071585010954824855539719616414784582184596266519254401349098227294219630911217927290695102482425408039613342601258682611070713883619758825408725780473833424799646261017071956554499415590739423736893346669097657008036923588877527054946550783700439312513315808737967395397487784281870293612613351797441237499158396753022911108783306895899467529653393468997840164302402947965198040463969040760822568597419255121909308355338275812722409836238645045594278244365496432008377909458157481305365585214083221012240756411290335364682422263285848435716244268427182556335674930592422181757748002859296580073061147906740465854708289459100969439403706674342769319668134908172105196931063399376867795192260742544183433536091841215115228511027753827039089276115143209866390926445161203738008782183089462182959818937117506520362666688512170177913885374946746080557583715305408366297598194955058036910025995398859574507594585006554821239616336719500550036569550692622221646572554248107087165162658154016311883757891021513204070851795875265552846471547740131688163512761781425171923532161857349962626951596474950359246635023996904700651922588459490339377649572434929624522533335373827830729487473667430363615820293720132882537386888439415371864391680932477125884677366130927880627300491296681321395506042428604790699128873896089074773067388981208946228197700495754108797571956403900007334645140153280152428248632519562048786416104496455374527324183639903975585072687294701380544392669655961754014233450744092427795754330585463364559800629166329914138690808400780635190211907336091631730671785688292846094644174372162765268885074696192673179584075117981035150081703829022036594432613405274017978626310718067634654957968691608646487434476055558842608025060329571958684179441953269461137164557539479812275392906087255674497569045545905057919664434792584545272631674330803776808900563184090986390151939018083120680118899808024483850037882260658555034844243135630156913147123150134952950469189991327258727471614755353812076196296984040673381117030448428388268442594550392355905894416984603615016143460388579034492307994739742750101436230760969264393689702796575584818326438567369221637239908550236236861187286202415033981685795207913160063007280815100993288941448940860542385229119012207853996479070010500388594090797082744027751859658758566920969014071559232153630450533647649775971990946191146220962488749968997590168512368065947366528907046049667117580397393681066637140906736564894853757077291168757262031115539741977082469684244623265997230684878402385009317106205705850377026465162133411792898585643285061867605985687147874173971656885803527881448381622366577550208993468816155691959873734374425382925184757153158004056847405300990530088941645595737814909109393222069274167912634373602577180806804204147665609643029291239999528106092340298042196841920564779028131567433296519253796806009532287738745311039735066586958090778163796644771862240145942122424366057835270164490871067233548488791469004330664001725990795942403019731446592151046691829655607425546339488331446700290953506487887328927709611784374181935072386096224131753078677969418546469513956643717897600478683714300589268131180597512751943282472794086407496088317416885053898720313258352062576180479597218553660552115972572967894720761868709568651932845554260418174012717775087566933393124039338724968749722909384635484124030874352540110615402320088515353013973526593484146982098646367512110922179091490798749085722138724455163058301038664825832485333421820942004922341597911063754035620541684994988930182788098045028681404693347144967955975781901899500554987217995604236910887022478872510949038270818779525530708233689023746430102173711577620601204480847349510062378994207017389515065311231936340803324871238486569393390196304297001106889814393132611404706381641478887443079806470320883131113545233445240867463936128607364562208023512184995349382943648771938612046129951288792227643689317879280678859986011538556744348972524469286833662211640909898850168241984639042863695342936512635909622619314031394214477877144497893631258108949892490485640004781154891286798964864803062470331315993882569621035853362773081070591926876615134435816274204113967710511076410667450218690865816416329503605962095952153721433703660352058306216238901523758834898259202390081113846810452413792500178043868865756237744453864340569592234387585048439902159139141210632594108010247484228396259059225332594715578126330251443279042840230860070764628937343429621943164983605143847031508194533840865502348638836155354419769309115293441446896890615084174134025801524982234282470033661853594517464405668417739213608723451531612038119983934111571187125961753262187814907427905219575442324552602595187528207206068492123659138887947032878725474680280154498428814701744003864709319134417348558158220411244112141891004010979345854864502923378768898016651766871078396207133802836579794703131779044332275927561656625362129016788089638109446567082104861924319459806339667345040924412744468818690927031284052807270497750098377589669462822920773922435674104710208227145172963324642392578656568579654271349431082499084398098084219704857297916803347520125668812457666476718818722846752539192844009529408132759980857357826097373791340235288202535868041219511278350970951822150217536857416035218036017812038461832205289443095604523682858586854968635252595608326225763345401861460923498439808654424696339698769550556216737729540933293260759128827319386113751405127281551441447650266006053987019651580203124384998530200139832140270865209123548512294986114704209060545708455732783447594297280373568560298022693341422353901643005922961352978853645903069967820504877935806310662599821413429610792886139241201186208257480118932453334463379163071885014311452205879578047671376361379871302908439423847897416073065635309070754675536844650932021511506309809740560472882012170591287720168669741278848591480789383573756068641020319450540296272260993194876284480338206401587899027423681532892530877579839366375334526832546981732325628186621009589794009819744059261920007917601331766276967755762435335005320177486826297618186469132983763333880092897531637057001069376495041857613587571097915218570744634796309044996160603673076085775155311242944263674123973847173181428920219511545124976567427750983510850932145695237211845886917414276933795011962870449352778739137100510201211471094942269234131992195950064850456502128587779397595710743707713091629074694304377412649414447925996803994134175802168862785298532592190368645853419419653523059736103080519399882664968534687086763204093961769528896419150864379568095910603381365755475061497136179927934709804329116531740373775640358416662858646656721310160933602420996896346126339340453920654017132771475550190261575458699556806583800828924039872991353083080904311686155368477071149461043143118379634046538050885075080960644783296977530077685307032830643903906814728312719326403589164421816798571131909599306305391552200402476571202269708322356721689012619203127394988723003198707810418660016824366035587774075955830311376804084881102249605505913361971016013502108881244443217322692573594755704795035772197546105220691336662601440126572794083394506418276678269587389442149961878299321249773160588230016920865578436988902235591001851559596783189077644727923155043795224765291594810932041323678154153261090181944472516515607210814290760588978885820565539849625210990263550776335365503793252040355006224439408466454365706771508759687050543085481662609910233397823615054191686447779397036721365161343958515548246362127384371375328491022733640790798607659559613270081337575260096857923202514660566295917535659849900424256509037150994867861471246104199677427082753137387555840341335679573732168776079006751176150054613565900961160676836187942610580196494856196788909379607402290035643106984097949257504026971594056188634560272794081916445011073371841582918793154304268009296018676747284758557326583704021841583690473042163051483919628933674858130747844825648749150623069588836641432621279958232579766343676496124818323084092908948002948192739848401261582439218399260642315217213624529523082802878287034214825231328821516689058330733045636787275212300414993309628473291385647867279715028620458553079667979686889106656414708685164795113804477700069279826173998642528376054491782475223647327664604110120741343138923446578979718347646432908176912362158754960988818263221973666353227580639333375944203762261742883911716628496114610186560257778658400480526251675440021787178317795821428531283201777008891767149907211245212978454606542562741259984183602037153633347623997383303584598817667145040914895412413590863830837797347046409771163748919295997595868640232403652081291555737632643930548611773575706865609684730724645916007244156106050074882606869638915860428030474006203525905405595995904230001287177341788696913498513695212688203460143939592179604168891652013467162942426559072201570686674945731853636996196981804943300065458833511298956589496913790040444410195458504082997507989041469378060486036828502506232052424623428494438157684989233878098859058015752974139054751025976417513071977103881821255097834990925713200893805454119609867842753851240210422690799922369487371272265505141637413852268510067262831140600357961616935244539863693396659721298596278826117963986597623888340641065205582266618693685710934246462871625959041147677285919653302353362709870878134280570504398012813513096745532134858765421413553983447012063016619902994438397589131883224780484386368820733630333863700409522829404536717785014674348825208331061406439214706465816979131809791900897723960323135304845616901201262933065780381810280985670941666892619246575672399322528804291505546066806609618702314258731367018733918347005098088584508402846195012315119571466148645669252696988508817603862020733775554032853089027932186290644629376147297473727635302155432794656643788929893733559961703436727578940901681435016951314048812017979497078905151522417352531070945408800890070123580501803286453462069408575701487879166679227194532257993242196793953978659603104702635797843361215922930855047461753584225637314545863786433036416338151859690250586666505336286233880894873573620816426681653563683386107545300153487758495811535312759624643184714836325662192844693564146758875032975301550822967002715562098807302842197154567015925211177576843659364921106193830226691268262799681767875183887658095596057197991045333031898274955551248951802528058123617120824537950626171276116487839664613722218883885358817910526310814021844310628081232168743427137316625481781091283830286063447023439146014179394593149792865693070421353733069887185616396959785849377417411526227894280946512355305689908410547147932003498599218731749783915871504848571342112550874612298755456030048204282946568817692612364231726952153505911315535702609331207576143555648705604901266275685665155085409614629235342834343190494368646279387894143089085172318809013982188553721534733080551431885400838720459555626883809194024024744095865889119718738750766668439258432798184179228385294812796443481877903701089360941006914941138758310124929224479557080574952858975373525636976449496922159911329974094867076402127103575510445414758339407442181405671136312518572964522988936451888808406575265568879945298667020573270686975730811513050998880998558180781109622747878522429820872367022101458340490345022715344916133564820964370331999283247565528872007634784404118102414536932169506851325301174023659243806257671247670085089772790872639032506232462705298467912261705937989614555910993140808973016211153135429622256506245454558275911351424959277758221029583277072281099619740816132375173138008143282096305897738745971434582509724731565379700705488066676547914245072737848797489698525306450338768324966620952601650313789610929729561256841759911553611692065203077231798565508265457126221840665727690770285057947945522864081277715147170202840957387773618806819466812806517590194690767567295835659286670275432049923542981297279808257796167789421238033813893792527824446709533569954376653760020191492507501171593432725479413295308073515043139113174327510984658849263878692239426978152139047256204956346741371909401951889779230863352897514493980302783455445694380227417764359919758981076750938052593937519254245736205116604956937689444769441383866007041926695990921478578982626727708335315639541292208249969088996992754857423634922344830046786414597055440480021526062861540772970034081745816088193232690485061310915337000161289392037181754547364689550769629712202886140004429256322675740701967686513328861268889389346685474836056406527959039087415149509010680579344530537380844149920962242337926153497192016913440935531231695414446344598275663774376031573356979490009348222090483608774240582878948960546366399122537475123356558157009657623723115789406724262762780509447863955431593554294343762644529236916101452549269170888930999564943218700647841585950132775675459617910014491634278865009572854872018199650954198244502065199486385350366955981936265515031065370631037544915660812760375228959291346875073237025341673444768364765159920911114796826594025463142859922508423703593884093371010555343217407440327299329156482841602562987995813729082124214739186536758637783970431358828889982713405176407553443461001617222707468948448863908932970069609193963343436262864696886353461282159823243581670039893279488374834503735421819274717033613352161534263949149141473624379741524486758411995556789385890698398409269202685513948606191037771949889562276852938498045031087286655509242694957216301621025691200023804972926046177631225841710757221045534117538330266298458062842994154318922471966064141658032025287551401864658096443423114224921908983890069383002394544205280941028751742057493386579396382296775448723678645143747488534614003522169947452718313701890601091055600277042300873481510931136783485805025941401564103065262112728145850465011245408506160737429814890881133718060179608252231147503028080080644534934386992337664095447321245613082214097286322728840388576733235428162126092311366170243006676027100695490716019316612364769760900491975343311927801320575783805685195493007749644816067033689144373961357497762088323505634257869346569889348979086459556230090868092671788855865844575564638671276254016401006717505624918041973148318208798919272828643631349412144650462998574476442966666696801641904626060736825783750598291590554840560169579919895985137599076297882427771742281624952018621020261543910124680541065393118804187552570044776123090308634189770355977159587022073397754850765724325432967362747651291644335953350794707731628668329937472216519648730208374646271483241951728180833841722402430884759138959682281069876301358326952685149152218356778596456635151600050965448098433207022193761411043941970083215425103087898306811332027389230695201167945711559499962601879434179798866597843661649159503400185600384472643236198766786610672891252244170682827646837805819779037409298939262861453547239816452792198029224129194353805848922449283830632147986858646307992186424928068246613690921376294747822487046584996456314858631855185651031878984145334043002221926619402253923035121794889306719622369349375370104906093510240123824600125944744787068375943358312711397389206050564212530211623743095759790235848244713514079435634818159769250556723964501677839507802495706128455029354057301184825271135897332244442545391850149198430354011093041837239294232669548793925757410790338641388542968080404413807235828971792060118937553734247421724329141168787834508311756725950840643697815326183885883288299604273928388709300906596662466112540656796068963989165931176539019167668215602482508205718990505337404511074390056379587441746226349765945644766484834312323611305403475074464735113288527588263463130467272946278749462925300500921582175008203128794779645619121612950893303958011594056024919944300437223682923092458101072710947277444590946520257600249302054293364945117889536353214834031412703366555687245962967110712371680932667350738608903256002624643480911832595030476304477597651352737387740142345871361072639753244516902340995244594620044663571434857426781104604255638202170656952008039378511553711656081568645470965899051671563996827927445326789070731998801926194820084120263480060638266534962865534290842635301219007161994175944664153955484191897214416757759806247391333750641455723239386740221573958363308602518019240531927561051104788674768067375501363474991440734792228897539553605805993784047052119741145365837314352972643145321659688954648582331804730961776019441674259344729433804158179270952324629979600086127836034622615378049272274533094774715669711444965438292863714433288587454989446982153748402125764128949396560613973815287542742450049219925911523927280124477838806946594472288754764778539151908879118381111769273100089636916399532085897396392296201503102682206054442836292225344263911336800770427286439570779097309688647103545926568432238459449859095940850170637851001991574461945465947791701663412243222303445116154956694891135148425995651193209153320765683232580878170470599117432912087945489397171145314280359407078378695379044823429482716579577145104573726803116668601289287469580923458860739543881065264180468142512753173418589818252809764459009850291955144986232678909324965401749143147110892917290856632574937199673959038515957254850379758634601842844100024111407529217748242221371656944828840853250213060628238694514139080168638702826694546163559394835406037714770327640895768111560468208815819587965881828951079282801018314956905382788759476359740815079938057847810306666316662524084853476618300690972880412503448676009537601192064749125655729132274006768746300756511788878913023047240649407543133107542861186135995260039730103156632792163596083223316290256223266636242111557535125442563325295285870752295664241913605050854146426817772008234801191772757297189212915727766132474714498352353767464303142768589860476334398662283437171009452143995683484635224772988308898876787013826254099572672561197057198888523563266764637543348782865698821267411447262949053869488012939033519079016622595884160688975571956364846978025410744543956069706363812629030855206748463979949385961997172612928373994121992546057239484071091825672758205897756723713406613163625781950209820045404793946323768883885250574424403527000642255737944837127573071278996094947448631646803051211572253376173181152645105917415220174270893645059599353993523668023877097964171011661686909574538052211359577420792172574906498957581201336795916484131861475315415390312087609466547237578474113522695487914452371234103625124268974756093217431958950569655094450039516431693050830332643407495850493666336458803607419248390077593679225275081730334678160835364748225192210375270559397032341133638896779627871989568562360836897069693799730242538878482527026672691479121167481515635332973740716787373335275941473708897093387038722939953446939633410835749697596700678105368507025616878117260361889787038468505888044720028472513580479482792208056620031017608554089552831856839788464795515650329510630089504574964946130815088915806698319503038929573901403591361281501360439266910155036231155925010894659628772596526259727256049308300128776589950033391278527280872041413337089533845391556607754594220599801746347370169054254006062916326529719219576352629503392331780808684052290781465953230592165724599113609130048883432769015612505085470286302033216893580176269734377424916522134238929342958898047374917555328689557155746439377343918726275973900424675585875947942720779014979431168365443974240945943968188340038849200186338579173317488097882861283324068131204309369970439922696991057791585700213180574897229796504225862883902291803271912866983207198011395903159026800827849475402370115945438820819881274528705311289233786930042934832417503166136913804468466848067608838622924561201210044956566984691998872668344914337046673695435980540052351887871789820786525132070676899359026825381012974000831511359840283450306027537682235773927136575415504397413996397917292062890926527681427723160157778015587264540745613049803986333638179991437091967956145911291280765356002753727974624291951072226553528010367485931651817992863346428662591354845432646348575139194951374337218861777592701616602804413283253367770943200845908673203676274954771130933324306796688265894843052439303467845112785703862094731907543759151054165523790064157065639220636346630509347244890806291294565542773873995900971495601395521429970163319168778814945534060984737958793598015249067648883539912372947196648837868248317507641007714196952794995408674924835768691083341971276432765896129346852330849283423719140054030822555630075901315374254890677836540568391135271682024102400308465055129891728197554696278664600690858405163006539356289792883200071561924654038786266830279725278294630112103987921799652555135359609459805239676175146691455532587868420736478089065028993118264716393637694899155830537601303094279727420065781301154218121217323032753174293250330142870540959625413970078506302528482534551638616205927427060925624032122326716916830479989619261071661846564526890634401244034306614972698224369898733347540187885403679587949846650461166754446936357953550439023681221533692589732501325626010044873544106615165412192967331677600271080080833309194388429026394893913570689462502257499752555853017826843497736593267817446668422015124163048246836482941967577563180160768896353245923201954743538694483866705304966180436558801270766942407809827437290629221443625910321209492722747008812862494126128606828043736633296909833498176103120268875681877840027509053641011649841468491537582648724647479719236739916857266030572335750498765092346650097341723500540982048682601073812618515117541501351566830531001429363126919710990165419816929593846536480747536351746826948687300102492567487868110501568271645476517489460854019212005464571832079314885053506912030974848080108698521366204304083721778592595705543338095012150168936482482580685244204190943758730519904849341655173034311352622874111127795998365716514559040459428154209949345161393111276193474283928597360364966521567430927976778078314242763118724654118659792929608372427404662173514925453089926466783701898919482246184836312647779768529667271426453806210599162097102244551950757595492679270186993893166041240293303121050171931817421972257624023105882803870531500592730274508054224324734932300432588616809295142344607775213282602814936418163106930839083272656504982904759977759432628380350941845414970840793438524839000608487859978948836287114999165460886724750606758212162296667866555682570794933360137384467159842945715759269891091200912671706288811113155246422956788027055772210325600201717430490987105795082350186965377117832703570013481040626377366859721466681117584301621093135922035741780509002776823494178899361787508402246453629563787965573453867749376707834319995111133832361628622912453306501354729729926103177639476721127110711759432301743623718144679614073330737999467255755799778997852658624459465423536146213233378071182558419436326008537609201903287831230044999148500982264624165382117561062641856957552247392362288415475426784235642378754103171981079919204402391401965226705863559262074603090253622988321015905415268662107588934225989178826672889668041605079778563522325390131712780914457097247618361295763494442987383096777211145395996225482615383833786699713011554104984036140023399158181425145534934776003471184201278864008463308033267556452267187565672598141782026355365407482998208961200298318879588266053777448380824010317150521989448461535583851648530515024574281462706419333350004626551764956970587515935640514204445359318073627405766745486203046817345711197479171524404896014087750973939422971039523552549643846291804985800960937540864125527933343486194604792772654767426578531800618794169037242752235117594080501599396976167962965875560710251874187299176317780964597357294194079304460664914183893032718843554738546079373436621096840319823424511963918506288858689489839930044349670873208043356436359885112964771854023286596399894783572269868834838289558117197422185116700348881642201230041391870178595788123967752132554444118123604745152582567378887417632927175973055265466936018578548758580630744535034759680030135809972330267653214250991293690552558795558256613793831373172520406898652478848098501961178051707745934710408658459029752333076800423456685339870100455093704925677004371761051879426205432920472026154777032499058207269358749389600439070535567220952446774253180667579908832505583400911764927915577184967102647550337705220507001161872158142327659531949522193603559533519332788326257281562435712276904736195055648323034100818075805171012590749461428792813081104683945542766382853009930234287274478719490587661729027025686371645368953847725207247356788124204366738340047820150446717191881760976047678655408646013847834170754657525181543417607563913384764737220642131625238170784378537259170855464342244791484248216034763022093716401992007137512077335115420009944259231876601791874754890543582116676819186005922113120561596717625510875980069251200228256260693968718491773866447301008843361528777532271117828547064993750011741232674253452011408797589424230635386000451068198846985444132707316938572277001598074879482198006348961456727239382416146881626305676802188912431084473527176888660613282024466117992709215755090763522629468670778231963879365362567923363179333055417266795597995219969639412366204689384300885256633158069998130550229511142303281191353688656044572197584773354785025272331427890781171338341008376433432997480809654706850697851219116572425307867575712249004268976044892628748017454050689922112744169681571882731867577806038332848090842026944607621430957857534237623264258567865182699540244708886614390171163717219382449726498556510184207218659864142811251649622534187578997283958050211649597097922471365159755803848892643799097903205819430344108413331939691843114541507411679082894687008457046627309243371481851069777900309407177988562674358422737280189572263547180753998339910498236805103546735755641494636477013848684087845947393364729792261123844379233065629687494705172940438651641887578482799027964230807344095183833079040149135043889263991780195795199480671104777706145261849421431089304604958477448102922027606096598908505282538549419616049803521633147026733027099523319879043942962750599698468236012241907022557531222834065636992202156070505646736076342037375107518285040998413354613038242132737966527290224560349332785435351461065057739680812729548784228183478111928124928855423358164162306680742535113559732591369532885820919089150188253702993553986423266958765144434635592820151052677805461297387363903172419714625942416870634169457404281469962353678644625320673048992096617121537726846998575112306531560400920395484645837728587483747133896822956422204352690065073582804235606702626981126571926897253482911738500534128700630924643083570174593431374855715223019274165031704046382911559084267830798410397832078119541567253420314463735596598489788221831458553954673877098395533498000983138809165818634413659089777734917812126775689091720763747321347744783530863545419866871462482939661292898247607521140327615181724800582827516884083855297405689412771110754379730298440012227144177798038654524813323441396689065414104752721294251928138358353959096030018252482649060925515930542405795425253513016849232438069904283027634989309056204689917509133011303934926068987433840086672350600123458036008060056530413235146626464377808380760846734312459440700475613000507268490889867175446418855317919586329925221930966548781234049329232812168330714102992111021686024285699242647627103032512917506867923970681036118985330581878695071244858977507853390446550238443586884591546873637747489444981720440571807945407066228760957746427498075936129206384122082711038996135872970730800003672802762391743828882686605877289965671300034853112678607361381727814619065508456761185659570802724890003469444362816066573490093012554317630027006062766221979713015299805696801660251510388850819338961563463423644235748329617869500048172184004416572779147999742481802187841707087923513124328449487510476611034686061163537151798408044821282824352739149412503060592036681451689170704383343603763431716727303549556948702232950277413505809280129564239909452995652818602839455588694891150154458764840175767039424164387576459951614471439472512815812364678937641990227861523445984615571108942347321137771173737281533353679070859005393975744616028740478324646480417194445599192277803590256342004522057871956764048239672391025045597894632639071467409861199107297600763305217332744057413503695230013268364321408110270127816624133951577064087117132565711429900239460090519123764134943907400912617217026894449315007956600543749046705344691158825577892467990611949128316389190755722162778598114165015075688650809232413898200151562339247625668717555819504788819417493531913020099413471912159131187576802747791721964163080666767601808467586926477209024473741688442174686118693764559886151864712635220285263682702783714724520192995563511570611303065734893487591543153734628683785063553367857360722637720392924710983396834983762367016978894068786104585897500565076221913912235631936883698604967465700444060262626153889908944041487647842071434963764046512708870186939146191352084461853243402119115758144103769593989501387892170323650136353531408964878502366365790916941920015183546311375849534506174096584779502039228150339065621641272999902427797883204129252406528904331954435719431206554169435233524371182044498492401873866560832586788275748853042060788120674799556733268232674553629610446105395508372855703622200206867550070686790275317357190691115838609475556522534622259717353708392595559269287686993530540301555165379453483985178033062240343868894647608949088195572140857133467562465941872041302195579542052953219494598221663553559996095708562867098040070995227168308636390413743758544760895058690921108939722234674182851864355355907521360951492182812638996283840136776860683829821001454157777080463730348425832746166245645329858168713975653055953383548414427421842654763654683769578445246420842897088907459088254256627829839205021238119959330199055861213400241454749561331349144143248442781442629527328804827677936017801803627948031385177799493961148572028653536759178420906420056308460050740647969324777410939005606195099679477435006910884050998990497083955684149218057257580886354078707748582405090878261645863103825351986289527373915336592977458307479462867624174122526316534656015619513551694896079060392509498287563767189920790504560564735683982498639536933826499575623236117271792833673220964583382129995774411835618843165677795220662950907497112669197869095313348572773955228480036564678643121546263865610004183751996000828077332700521434243707060814585286312611791710891582272635891166928167142362864980068416215490909294194887237309398183852241076837797981002608934989817591039486249751015597313489463915475389231613093458841101244260716587699290229922160673956784124229703342026886538672132649706538774661424155663274586407192371442774300481943153686763065706266540454565205615756543222391549773275929654581717299882633665379455110357105378323268779130223637626405921620557165728192931335220649547069030577913285914335071977329307153460791188664532381702239230659410547014232802697576837871690107639436706119545304817188782818388500706210998447170626083203013818268815653213783561545877103483867085921062283326095071568987010381973031361263084525440703700871764806132734506414274446108517051321350665108058538680988577099534650609908466033742988835095484284514212814552204732449121052472285005156016762895523896602077349499272834774003671597226268236960592519105862569883537958369782056218035575137304037312425088217307182564031210956244556783265254958055133507077654357799061908127651539231296377107721940930120824659053008040120466216043747659810601700901965430013360482700383893194013921693243694017939321794574440389263146705450061220401167980760991361843596264365668396935012716245335745398348941192970848097286621389354491461765862137970633868942007193659273432305638802929124700854271542107999478491099435145055466720656845268377674310379852641450790265678824351342500026968083371484989161904035985837722258504383517103366992646556308247873541293510923116563375791177481064263495669454825885573061440731272540481333814695097691740601608339419490017793599367110708015207785639242113066836437858880147417419791383483962490265982471941513873350902698940285328904773043036131840006244801840043166104721334728850664835065118794828072234953947270643436012233279781390892722423055467672652299821936584909460867370615754600664547123967873331352288400341415977599801268920825394592069761100420293714891325744199591263406020968982720881723001439860886095082021281817427656928063972058803236615173165341819650479151801788706748070519998451296573777613468597861642585671605472354945262164433063275402651387363696394489927692125496070875728924111465319625187694207236353263601514310549938403954844466983054807936070372799365538268318817109039873060111548157684662136536004482358053235209015464167587160108328603346279147922751462490688891996163403873552185665316235811204794339886793790848749175683821988210754745362162036871648140394831310294467198900822294526322728773768846580709520629107212549147937782633959450142292553499085521124706985408703756190182538197892903140606897287674477008173912964075161044919161611816883640404379164297198336687435772110790115800172328340473112465815544362073377323909145078746147037286751783296808753164760956699441438743937025366939983827899492148945501051832959633818200059731320775219951930027181301479881098561613519860107915319459844109887035159212224613272146240538967677434730030739946196137923698625104544560153926102443227387794523455603205926221802128499335964339663457439119437107765476540613686849058186633292759679026988914272910638951838779946590632665075143067531675632311255250726090372582458610263918297645731248411094531089512543047958234472520740472617920126224870917483383027647499922523517414329020907970194511689195745218231559211555737918657660637882422365736168777003477726185823751383165876896630762368332053411778873334716579552339933559023734754903665677061293520137707139513143795321048991793179572014726538379782933646124776053146383730730166303482497016380969230589375235450890587571947492039398548037525742191608822962061430440760027420254833744547972713846137004615972360935671648569054845802584448333501837801075355661519534829265361191930464190566420684352463051323536950730002931051330525599709071596435704775168179135600687025985249650054022924855868252636380834868018656174429333044247629846419079376423525984415605375201379945243846220370886683505758423270812547598223321671092818254776885226741753804234780882466690171311815400741247009184056208683030195653905754091612143106695267983054553819044398306990952996804835306042075882884610223585061302032895667281102993760081002665754645431651447696065496190628124969836949769756654853232980067556773596639452406881447131163881025630590361311940270494361015043818068502869249616875425705774411977558272728972866834918362004779263394920813105563095798681669327140175608753546831503520783247565385856174071097141935185043471796864726264844232603472262994613839924012123720507899957740316171142940982365684199700551468516070772683130747055877791697144985948045402954683511211903315272863012207227484442845032869404152401973555299864894699431166794403025909240255503834029590063431043086518877832896360171960402955699906679367364563587799865957698215734204556156755114782525720482900798686519799360609738397038233231249542343808511993699177080419750301000723636949818858658336014551233283365566762096682060345051366587839172689089314316089096096673365619437315398414030020469284011830966449651149744015146651500834570406763800409706000194337561043712988133174151985894606587821243121754061747219875248166582253690869521371489050133501449792286319112098137730611105101520682736263515837349494993079049541655976012560958214677127237285265529779444510868452508027288637210672870509073653801572194979504618205273240281853789276238880690039630735765018028425627534821120318631102412664710039354132997641797120633535201568493765798691879888320147182156227320243699939139556129651737965692453492149388397361782510895849983383009643413218187303586600608604381603181005958743142946269650484138679188883138222452740084973650845834959917181720685445768093465971813496118982876236251122881389339671895020675398441638520525807274953510615575488959313931419758778628247499543265888271471194287299177380915943745283577768911370630061948209741174054557257962586926321068725125369159272717501106621191723405975462213403841340017601534697134665109230684657199159510341985371928900993650435491422586630073793841806153700136567609094983550858307236088835935861675172373372299276721821884177918785850876301231471903759578745004948855198617477763890206522377991384699112113079224269030435817049083425334888677717396170352137702906822979808139364172657655503133547895222052037273345674467963406922754312949240589769629493083929489932874779418605168799837125616278428596413652986415682311200875511553365638336299357062500228569453556450949444177477933522539824614990057666333204376611842464618643691063150655713608715071204574534285308944163957503703917355475692734634032077260191165499361192847553097702752756398425273313897499216823474733941434366557339805498955556117331411415693489090316597026808539406201879372038298614369116354587274135786974925283506146980993538685205945618114837016867738421383013497813538878736496487721533705575544697126615403064322961184829223888900631032785827263113313179118829858748565233643837353750400389917765727866402765407311667130206499350686159822610603065401410398530514700090646056097595880754503464689089796279020062213146980078586691557094633402033590711192785234003983036613785415494140959845226772611995333524960802042739102570160309302400677929653911134746739767496054956565406387960021860629024452594114140022192074584249049423496104103864514860252152951439421917850651441709438603796512285475389290054469790019114014180293534247251964097126166163002912775753461758544680692983050302115256075056851902534365397052147716288865168224464364055110065393580632427570665767180608756995701167566398211361055295450414210767351244879210940657258759104813483340405290919754446301100404216482048272954912623590831391456350813093317322026110979941147351411418449964391640813586793525952192529780690664490328830012330188858025381601211240928158614345010391340227956965818967663148783370639357654575171592089535479761634346993460246028229636524543658038244895528102465693132380112381624726399967918540708296199164303167213053036085400172242717414187214154472598686131536618606516477443235980620300330210678667968285424241585455969912490829119082488782328652111279109776428453496976212074023160724328250355557688488756845315310937947852928968349475442706671604848042162286718137690076062234279001524039139844438253407209167673710335863896762740475406659849196270913546833922289528444787547287550517363094277661457487039607703870610486312144470572552986238687829996381492845173677023907548462638279802383141314388671006166915136398446112630913748386536854037412521477615643125309943260561008969682445687065568465079385829509680394538041393574052168629630057409225988164422377548005640675868705711388584258065024768775885627735487820044966080016059651256921363284250136586761299377728523380404540609578874954410089824033517287330962927114657667066415160811422803632432147267533803246890619576399517937151562518981379125808759283538940915731934661558750790807318815760330221843055454529497348870667452203269638197106208244299999192374081347395456588314609748120577903549347474419837878958723041101074922835258220590013318602823750396928698029233581311466551121653285159201353864454979427533202861306465320399184854904966307938427357567987529873264370516281919299777687611274954091133756038591657767039559210490405155120166053150072785775613681055197559336993269681002809643149900081818350509166780673525390828758496800668437863082358022029071068909271842615910730237922942175636408765570241698477026359416767968003920314223813551220065943824187721574626914261707716307510553259090027760024785427765679713773440333833777256675909317751966048197742493008123378771424535396014369716020529953151499361149003068761496642401478844774630177252933173482867778680886244089222891527400380876629044613981551669512383284283510198735426420247199694397855022663695771308579722567134869185330703053556483119274789850512790535942221769841520928992886163579077426425249477357849918047711425930490273677656625436573938697409056199075549920382711986659435645390298618471114249022614513011783296195704596981632718074770925076365959718775803978889709902451006438144603144937662506287471362118431467626316071343225513549464082514530474196343165453097592713923419917424880709041007678578882942466891999538306562127893993071107084673032293598498355169298090394065755139368621913484428912714681933159680150888558609661413933302719476488634302623013704295556271926572382596151964405056583247664950861352977853389180279194551625398127288480487378153980588818037446150985615409874717951063115556540828194168336574842749123064627058841821803359681781199948743318069710742637769549532380721524999098184956779105274582329166447950702749412083434836217885167966919815198780872249101079796880046032078834052708388282795546246414176967547179339898048911878441700160069737716354699672385311081104529048490801496372160128829656544943964404012772823180345543136072213715861451421489898303217634880096326125780049861603929570496123730269867701383406118653503742064097548243400877033725191298765728597428610380632837575728257881847880507863929268094417269103868933247637634318509354157239011680586943235424152958411036643144846666155020787234434553017911685041117189481982551744388914571992106265880207945485360093468671422874441717206121389708210754160581953043688476685638655615733019964856307050329496864624967880190831658431878162930032914303919648787371051503330736427972626214055256082090197812623579462218238267606383038652139184085685392788463716653622247585568080966788394830907266229376483200838800434712187728342074864859876614764126803696671094893288824189383921785694833636222360417082614869518070590521786948916822915078130915304822492756162312643547417214570509062273193475377930859552834418212292671001308771252270513042398485952858037169543812713732428186230171079979516420047195428638965306922089678693963098588284349203829679161068460958851633900908782516473996661515367481292781907207148728381010792498820351739367585277647641665092432087762878072263192739557073641591533404310704205840097277530740950272433848769192178836607328501450053826744131413823280625659689415060793646961279917804593744776204040224165005470645489711590991519244689594340869646312681058085018357426026293518401997746687815389925300188145287672600962874079763872215793709819471470299507344528204508897167490212050086272021132425999981255591775094955358852295359252174766566058766075241441295917016915719366834894091865675612587929520413924546748293891009301625993567286229731786417550746474804908700325042974054712276349428430326965453352650594431849738955269836914587853842395854624369981164436297080327395123077103540289750961603175218072418485790273693947240533159620819332188112801469049197420409396538885192234180827379359682930222949174757625405236941221859663764491146221804886025504009932410090598696524097917519556261218195530946570491997947134183523385400638790828616068354999086869160891284991070748123768811722386893512693578145013227025962627491797347650580868241146925996967353118526292891124652420421862060760847476427604624401053633509740917612766100516975154696421635812331940898718189328028053008043181491101280943769110520580962834225831322725240273909425833954082504425023957907328399728591046448709861054813436677798874090873389172785566581496698756681562933564303027710722408752586347583683261682581303179822304109013441562193810347600214216502677795396307723815421031344171189178700113419052194723979618387074567788711302054263293616847076399273553552949927597063821432397153426106409807797186220434829973454650274637248743503782257081585353560370813055664049664260132620398854580980968100694317049499031246995810262953530219547752732603602928643279137963050735565329244974923095744167370596447407409150296853547949995365869732244812601749815564791976458116694283497885507420965399517192143167189990091395760640387127835438381331542124805325216689010547313461506025443386329059758113537704018350646965327470000753955255815301246367537390432036474804767354632715887315886382776805791664139966832744326514089514401268029715302906830372973092321294061301090170659335912197689257315938170594918625166551838586826494553752198874826132376761030338615618970271538417392698904130727387441596848776325721203749078587525368422490848480985487205356075823980976995825827810118927940325906308049336899372703151887812915307206027705266459564756211516944577798678442564387216724281900348618666794405749817931531791752141345636589250024514594300688821563986504655738492171965672083273296345583392768410193916810426466626111591957912034519334756444576755451199996675999218689364710528813815389807501955257329148788955038216792918462638528581042546197948757186095118722516105562404966555215508774391562986673456294379121181528102064795779223156682115540727794797296413578070129703912422613933418133830131903886926061816646258748249087159192989887115907493573681570268140178508489637841464368286289386555100650742717518187036937953515279013146512088795675398192302830198764938363956439603355706025826294353095177737392619849505873212854000689607500772397325331205591402001187490893618242896282332031579442813177859342125491954265555596814352537600700839967743687387529663746962018753371972517635880691970359503062757544203243990137308473840446149748737133900084253834106004691689642521943701036357898735603605850760413300185552529024573483603831318986308858579791703479754272391036396426343586505916045109305211425011177328014439923450203416136805729823611815087883732980101950189088538897360518977703112408555706815624011420155693080232298691877024229485298882821149626428554813757891594705496691578352313893629734658908327727902806801916803019334969702328501736388107367900143264978172300616471193205222912076451132072937453932064218764886949922854325380508592096188333313013205034041344362060011554080269666859051373163199263087407875392640408113951174589414611208194876648115773194984804571905363818039959897392353779384656613743298179084192942212204069032498334403359350914610439753964104019511850884783318999909962528441253172506954143667995007697918582013683040611995857901999175298785477351965442906599268154434994502443479862741772003093829029607551393910995408764200891703555814920384838925112126901874579269961864352311031599855201235595826086418938327434650725156884587571617279579329705395050346655594306421742812516375858685887617342189624468749631509349515680988854713196475045458718451409390048318344788839125924840380442523595945939342535356330634108099038235041249508516482735379744648914905659987954215971617782298087392976897917010787780664677677302145625205681854974012216496936422228740703955010457294010367826839376606602836932483564706403812050230782979678839908201153994443850068124906825076236286242274859501431914181946530672451438868608041576098340834329034838319637281739560766085523031953444666034173927821686728690544610997155867911199670815368321369422387068949479482322272177455421670861551938431055833004562094336925456764041504727341434518878056481102866256815787976171945601891589409719158784529906192870701719589400249462084510423782345918616325214929443100830368165131360779006203504938005678135435237084921470363530453241441428552169014790507708668079643626376260613432375459622459835987931902671367789333656950293975973466358211160308038376893914208283209572701910425195136212808999563829947021022634026080798307844644886538348554321523194253358731530458155717826857165692591021720738278342698285868754212830986395456830627023088812163565260572140623002128384348662583009803393634285308298251760359011302445351215157623912551631117277069714763214247338251214004967575075699205817444191695863876629146365423641150172270699219131971750667107480703971958163857544718066531633667808497226676211829035617389100455141410472894533281753640566583347220940374364532879808963265511564112539384373430575127357812234963692075056923709149852012703834200454560738640796014676263391008172156831172487159567689193283662136870294801748080801025653443500177988792256259386417017145134124159127848847255025028394269199086344083320492383451734758139034673374775602493151941407498329098500760026781292615217905316623238804476896467264291599327286539854639345748290947404040499811476368163806395327237889729479226113497063179648621554360986588796545579744101412958440380753093010304044283015650557977346728679094980121376230705337558535025012393604441614338820580957240660827257833016648506478778616722878297964010835756542088264997036356902238265654641146022545831294930483660086419471560389449906326088529844963719430238984169426963902569648067137364664193858909026820838396888094004999540381288803355329117195362071627332175247096616515741866453772883348603727037440702832867380551524503473445830391001152671255380708103721505567888154880904484576637422003231541111241580054412284347786548811632739680703325622705195223993038223291587671401552634449816660447599950366469966780668958619262942989517845961977349192993804775612492884205226441787292878404601022289808394387339650302035742488140812161488502082028106724395446845339006106768128168188134662517400250982359195887566872003170029892688898624540581584061685518053691998216369775130839806472141691373183212961476819654099952444116009180230660298782178532104851081635952834241308864195722543426283544195614068110134745443568963465625103051220937574990140353595077459417604777223951525975393475864448458112263277046402978298867486681819094958613936152473502253909288096586310057459851607616613883274738483040289931535808328809605721479611895667077605552085402535141227145377067296294434635427531866267396323818032647339973279973872417703486722073544517981883272568629121529363553461447897208217938151220443065522521027793682270375304005718402148826368962754641926428110437078179607365189006100788562754575303373012057072143741727784460550383432773136074029101567028597993890857677408003618766814886026973017335621119162839117918785981452521308102457668370050581119551843709801983918170841927714375919313595272287068255149347795854629069174884290807792194388179529047618737221445602878238315430078655972472296561652042580151848183402169001038256298998507818726985456455966629192238315714508566335802086412288490685613245013386732146376795781412913218833682478015595423042766447941819181082593875831525565504077280351580730476622754019883120412066645128860440174147687879661909879492579944449411685017682427620616873251327291985601026990466191405816503502101167563693192390598323621171036767171052433166047219136658043455966056878627278967720193051970116375832265284466878996089499309496568337133959979769489561594078167101599452435899650599239368697912362043463820125119948638190728189289044148001784435328360357960099459713500877702764940587055871039122940137397787904399910399642347071041342432522855257568806877993510155658501669733373277412865289964283776736013026902279906357754268322975142882712714084627109949221960227388079812932752645588485821656966236099232141046986405431292115927622483213622957494261293539339082068912103461824084893244346810607313062160094195903654177245289535522352072319736740909736137901593427659911061635319697954412521318297488620192604664351321533005976097288580439330646194185030932656498141500029867022639547741731967307171509259365450396929760593765133476709471301453833236542151440410399566903365853135144911646932957992961729667226294419025093991720012802914023896932972536810430320083611849886972439230564995439679680196170650635070161974214155130790442047302865822072626208357325956315979184344929182085853506264209612053487273903543263289796487937882428265743081233101538987441649492639098219050811821267040635493547069200629373460425363302357572435099280834018256901116578335489022384137103987555262764340897392668548958872388211141188711556517543740684309029060746465126733628947665639152780675245179338678822416109337055874066348040588251866385950349070391086946388900112228122049314388381517641278831743498674799698661806625246159844816200574903709281204868319181828676249245759607005862183723855743859484189809900537662259938936039508397618531749419344855022201258274957509625927708874210676361825955929950733872296057056490712148280278685872586077571073291261276503224806253335199519864440109260564787831357402628514123538955152307786064046540558532141167288445046809675153940240652042827732495405999443885520658395947038079639895067763079065314488696448967537228320097460867541184851066022095346708062120044848239341232983183543741192770856240518660009935081230712320667167142757196252690880682829329187631419571362437784120076069355969275575637088534363261540601948255336913561114996130418130595659320735619234523847870083451771755660478389774999807315689240180758963367081738916798428817902125092071428258889266911964102242303431086140839964838387105204620769808328613890437807149876056042730477146742959851338069112986236164659081131801891510895189405509523515289050566178479779346950333569150420992126437604345741382850454477823093740263460588066718245290315761031111803377452347599042133041682244155252959068387058700140538924202162715325796003349354401912415325437054672095755789557396265703844976669510414092200517026652952735154705291368238937951840573687869698076767900031124346528703903463244842342745785933472199268772409991880289932783401904259311243553243806636897619996758637248475551591638160989499218991730357728230424622527041743987189460155346536446702877624855088917107289511356385140485425854481217893349938410955092311189067840935635210680453804525005186014040289792209498788227167404784612191982459424828360278353652423091065443220570984600264827731993375127010855565667851245410465997220415713541169031382967007175146530734307184052946418321157354199506653248785019691543070713880446835843188809784067334922863843478263933303860868787027785974095951096989599094418090102601311359355221241910101895062640447986862449791024188543422358951905670359170906242140854058643699076508166209866636334029710889988826262998143399361864987496831435686455738649685153175524319454766037845847518864024690823325302022383923093353182958527719285643472196098606012719441259821516203193572267831367102768923779337252093059351687444096466391522829797954950869177689556260533343631064380776430003757385477725192843373302417992446466535129275542429358320751813839365807187576111999818804722194713597744154262070825861522475979957357210327773709215270139943620536759615312003970761191725683516277489802183609670339528802001530986992170876697212789890592845870060492692351644575485644097016161288347259617792165661449139716451534000275936901914293158435395626961391553567345718697199740385503818068327446214114509710122392053162118128676248655254829922543046103072642249006187727387249846418443836631040202695084043112297939869257653860760020646575211229111966557346460803702531503878513870481400127626932288728771068735192551746520335857643062333257640814533382931595571607380010829804463387334976357524151058390408772377641360877221797515065810813072507473847268255453277833020232002078198162532238254092086324651859339527830712895681358927511634930783048085400708508186652430929659001234148826849157731268389591784105380073582576758260597198167025545236962693581476993076984072068871462126832567451452335403490023516997525365503475044863097805343819057670923668144321579171247627544899844754462064530246565405525494571326542481591552207628550291055958311441051429649730684561842898268579580458971886843142995671218798796922268180614549543067083731618679525267352478965724392908946845045123279697211874801973972258005057947035438989410934340951622480430296835829836589211256809234010445892436776644131070454800352443597042696831640351689579097005975850975742058772996958853369071251381142667962414966482440070952939097161491062034103842397392286045467048172540799537357058294791759002906226543611464929665466936164924107913818506241417533952576756539620859856435654074402282642891392516606921760743813393027582862875250921930193283775011785452765494795009571000005522680289451648012626130943003155436892814704882734837622360716466192952131789593630978730197481627174385254395868187785491911351040932326648573107231129540594166170694875876881531792891773565726209618464862009153564397527707711595784846046242746326791532372540454273388240625293517305258098708509605679177259042956731612040783729837573614307926699663166608955261142645477520512336804270158772877462526736960154894421325864364561778416240407527941487757172606832108208009057009269333296354937969401507995988039256859867707944856144716527879927327018480078704817623701433756660355667804710030780666481859638490297477017887887848072238310699048303511922867242793611246138856308255526645331594433848799168497389942868087416509922898741865859734668633782858744561037662753834105363326906780414982818485463438927505214957503357418924014390283947550470993089215810697906344090524224915608202795047789647380317636938958035730412930209277751772802646831323605004260030075515696539336099280029399551019467011298189586416631082957014315026367100603002901912898696186163118368504611471114417753337768542323904169687102636914266891506629711984882853173810721269485493063688532452036145676328184919998519370691418926022459747877944948876249023011056704056494795119386444002939999048366732021665016070118349634039112894442797281398872815379542164777749821086814685923024584161852160046602056597754157097081404605591524417603424270583687561835538255009129231710426450597273975576977757271225242265679773793896889925691337730825483174002003150716266072402086329561709199476250339470446118504512616049615272876858172060376937920842622582430731509702489868370929864434139500608500108792453816467543357068423058107096727634415551551861194282492178556302428535056485743171612908239557794754724317879967290294043281139046249897595890670927243849434662343860383880302254906138205216838313196161444295157329798197308533952181536566714599256643108465585032491766334825645245213849808775466717734461734701497402035632402923972587768439209706263131787109670394457832777528469483985149402706384723726079834313860899124163324616129035505162429071098232664830229278347304955281541815487132041991899771097102266023937628784232868135865604176839316457168645450515937231034726159225631863097997221290492983957260192428974845721911292046997319929095845978737423284795782156594723482538001830452399276761329179435957766284203382850309953459002275112138065140389452065811142128150736890481193571852540183626234356538088754955530108295596617785112164268938149305976178795360592961469299394605202474288778236676019251722675155075470378681321201283015396392673354460231262240290139224190962244466829915946808283819393239897785075702383286900383810620505700666946185677903620109348012789168293662180473037509002170891412869950781993144858054857864400018195484971197986466929339646949714657614515017497248867761772304863880497808380373860325465390205226515112565441160534607560939311435534573107758841281762655972956197401441321335511831857443660995845717444468752557961686390592505214263746224396356433432696045837651037340987498576324155175453326533754182577075767562708415101957032642633754207553561394899102565475645608271941840532065747136732359203341452197928657078781933578263655355637306335805901385373768423409330891172152583951108194899479014100113630967884021691612804884758538359602902624809295118380663242796798902669396421159066982190758804861572524480861648110484525540661183426847982317456758006318626738642363200600129584845340131094777115210822461381451887368537412022727905174750464716750415417629372639213575313224098674018437235278298425354935032955909359005095312636385700423948215685628916377339327897689480786380530525642742242412165894744684663730134423592017479045654570865510845316106938332103660273510426257074534509923324417329925428813024024544873941047208092016316488049683113167526465273614544468451209330780062996357273877886800906705548570612849570412320691139765761156579517961636697372349604927544920868039008166416083315168874407212781631273419072747724820523222760954057716884586940055780471042887777544252153737191006212690222593812512828139631895164985201512749890416480561329705910566624369928657182592396460511512530150417908606687513931405206123631043095619691220760665201609313163831647122518605292841560140937775964114244791321067040622644192072296624494152341444637351911650246511273835106032534095979218044001427626654006289008944015303329983675821831851588779915249366789999678395050425642562700076977805583822413862025021158733947146747123328024643423725142457854024565619230722949327367808372165499432765902099224801937219136993553233605966352875904794331928477769932761039174873881888128138578639491214552560623457196116314408759018062112508740625468434245157383020240874449176376685667527954648203921779380835245776452580564458207215812981147343136956449281633925132028626696984438866176812950534213514250726087278010673168095520114569857312740725607322134858420162332547057005312130857200808604017882091248840607872011652910900582377468013602681411721114391248466061710524686990132233781446825189374798721465555128651577305675749823967097569266085261429899847778658085292884853360245191219838204941412449797226703767298710139982521052658967984275229675599781816220230023072703466102963701798146775280777586779655449000771170651322427240699856161894768988645954994310601843913147749891634078880708998082777358727012165502751948363206568607403524557108128436350497787882022681375908145385549034879698896088145533711422194715891048326260995241924297398031255004696974001172127754646041000004688175950383626533565838887532398763928714988671128633713716890608364086806620226488326390679030675405994669931506353752697456891606537284059012377917427832212064936924872581907537747298030519846477854010692326384526256768700699748699770011352256675724080031623691435683377392227418347594171448620836250822546653142059139437627067580318102995381198702951353089038138447145048408740554041177292835955262402233753564928671803848648446591463470782436804316792079954888021799163912618559779596408885237181781823319532319845404319021656875757024467910323533258034568092771561963257408558647818062784960802527670287179011521968508510042973360305194494260992453802031210158049458719695310270609959839397565962007052783096044469085522750720756046406147338102844283519230091472304939526755124643893433563783023527392473919553898089442629587935094017294141651883386519815920498988719330693772976832155363701922482230589206182221451807448733416747123999722527195649610400444413789309878735614463970891000487238534366392730631623806375236655939830773052291813859311375707152827716467131569786249343429976027202276368806139806394441975085861129093556604710336240734463013335404011820155081111825932391542153721592155016706337073756493886554286231732026993969234949388699876190131938205938372137847030476028740228791069123235662930647481489960362018295932369367148624523934232342401059951157152649113642014151964438513383250668852008049068045909576728632315276065959007996031136466013363475305729940769880716124503470811375962989591955654011164979121625702255347930435814082979149274119040778276647947620912122206026549239505032310798458460970261168253905810841696460235287017155137662792889253397307639022218951140872542898102234837398606970828927251728135807982799513699911845520083860575447227341920421059757563137804574795252169500780933678422279918734700228085616502425788059342690733385160845878433252662712998586635191740958154160513858420230680031493215117636100915075269935888457110854947915747498433187007319294408420970484279876839485814371801082764007708549650344120381207603909945638413698711945563635049854396531547582232593756174387151926275747742345728019513453840533440803393940109563548640326842839728607537221334736096985396398546553051222707645057604547458255477546243682403709710008165578769970768423610716046615093959753373857218804084466683105777192521634751742747276326644950769262509518040484758940993076043604954670892136121014574074457885900286163646264809286264098233245475446856827175139793487611662440777582940165428326150798932374569036056791683156638883372196199122090451838931262105085045826523424180642999155532251132461877799279468334795474796273214129167957405242786743153829312924610305177797712262412856297474858648779941759634321050249179548743236881312101373446309748095433032428349718740820689042128968068705007005476657482562903822212927363255676744613464993566240741617899017108758295389838516032156178765261151092709182802206678159911055712852846391846953869748477542377447544567930664315597777258259291742486223863506908534271447274139859547259072787569841098772812787959786308545244298754766890095871952557973881399235008826644273195350586329894441167059037474747418598190687126211549539183429556864423728623803664101575075567201598636471823651921848138023600140654294421120258132595108355059968285154071103928216461751963697601536030796523859949109751711067836977018646253410230533483970811609442643799732560469960713248216681614384367630533999553626012644351699855118319022589671347626123476960348444851654763530603922090991093575966547329666435859228543387165976044357533511281099617663462604186948972723226768639443314020710931321355055311011754143899437336446185793074577437023940606899973441732061658174388119526971863652585921520825897803432243878883476929189168239635065194949298122125700985202428591283177259903305886312458287306583673803697692558960867765040298607236947920395900017207293404636836413848075305935385048618876052377415970330078861569423393758461352959823403756289806876977808346440334275996439206278799999981915046060556256395205281537045160505000911213839144544456050335092928339414684625639570932701048294953809659935847904826272275036241802718535335866120069557857394423797345391295897225586247772362917557622006511565703680616972917375139501812224203916017897973862501358837847470363850027803187213606895750842968935633314274770312390125919110215356340559685416997873599397160994613310139396102799541026937238216507553286455305605517967003795102031185404320670268086328149405310207459934822764379647944460236425605781140349545871759679712046603442476259852894061814234349673135630423739255337679327718311637001982358174765759079207992390018092398668840823728347615243439068936834298524231244351687862182427339172122415194604816342713406712022332512070389583908059370639844228156187925649691343542008927409564474897488424382366148796624155424625279151528579292942032848606762235723841975811431325291127478257405819374613761967702793707234030315076174269181669425536663859236887712333569560335949696460565208782197886663851886590879253663089084814609983517799130727324216615902194285406629972065302049901420123848332263188073189256430375922307978702280897731218721726747235704987196013919847544726387374622642532556812725097588148858182174692818022073946823031781046287016844595668336328332584890554876362439788415595335475457831567613487961813063558741080843614683447997930534099201704180380044902097173779141943183909104165042932249469754272274930623883676245674429559149144459570369508635083806715871245773567725998103442994860482950327190537603013937703051537525784773168787688366086295327671970645159907381649149127586175082699010397193710714935741956107530851243796815158005375224553901883474816248113519250325821767763386779018407396103742786201244823808894825592062712892362860722421552390170371829710305368262304045294964555075399502219211628928338264031110436351982377180840432089849660714082896465188931686604782740518630803553844035866783452010071413116794591546041552164664195883026388686417330469152947899735845287105469336463896091825317953220300519341018040824345957578371603253879599657957149525913978533891210422951456958445313761488248565970090737955770340282193887364198977650450545664002776024678887130199439272965558936394210984078361685803286594105032564739386704731084735894900074222888291146119459510744683265137612408245497113959600391082770595281561864138360419286476701444983110425049183712351808511253996202715668007644949708844820660042174769516073022577280536453650216185150486053064964765449159824324348642260953011797663830913762433544635831974442479048984507789169060963948005905651664254171242876986077341716788112102777843918876565505123284647032617889291208439639968128148416382386666884722396336078530683559236292709809771350825342751356124609754612263853082362496637919880297772368556059879196929676692531994987557062756791427475056621992347054070184017969118440114072315375088491191870255007717567400986684028856238949446742751278504102933051513372126341576898199567377942217075652221343341136650119521915204660049365561852607022862307231201668817926367500125326593719722624825063994332422753868183208522634120901966109801061492910205005273748575081689657818543925761550991948623395793179415615497114439002092638697718351622037199968763937001301244186294896717564453049811158558216356811525302180176714688984323056668740374781761663771191282843682222714477622373225056258963488425512674608616260614370824837851836276693030817522512642362310632077145851240490347164930870692601152276161604270332426192025463799123112853422929659213521552630979415744827025157854938112502886671123909476807761865455902479674469060719047766665903783379730318703520875094180624821542151590530567301706970933076731956963572294849694412252584976043202859913171745793696121652852348530700747563487897134051879052133333370284174193816115540684460450727219295156534097086673623227527344103549014999719287249997830959420842972879586734512227655507374094393257175984255101486188630924247137539168260150311520017424148620846483411633495057868958418982843505257810385108005453749409643347794834164298903423034064251566942694917459444825866541296183877956715623954277719515481764461572444289506119201855927164446163398265775312342075031883655806084724268474149580035828635348452814528616245536000804796422135386705693418096743311972223265445606767146822121234779597728730956401400558822875632754006870072517878802437838543886742174225296188579493043617032568989643189019323321184878139554631077191017264126600734718650864524531509272208407202115033200067666399207261741881369213216283137314265838902192241066423541690272740554615142623331139215996815638235357620226311615477732801339018068758628257883841726913622080851671071098637961067636047620501968491003617849359434060773240087752578401758493015749065178056382689509094707763574112178751995020740667660166428498032215988529422270815892858298086259039007539311019744192274735525311759983520178107309689176096188456889305298842344664105338345882002574119323211750462226100093457244473186959799969092392197876607497250077757349058707274717477588090207150304104985468400826848550561501900027342118334099376372226410954316545232696771228960215832809620107163968899493311602620164338350877270859021007523841126277067384317674780267530799328460263799894960568642438754226419714059936576446512121485491777467411110945559055834989695146704903729759056004322947990626709822702880705630997989242726796936483135296578186611507400561948992313957420743549269254096801491862632757522934779764979018100553837942871197674259743530331190656969469565611252377662311344108570703107977819972766142411303871792828003467086438103948640288381679665385027627455637203611280503707940820244659340963679597718341148765339629392436485023469816761934566767571906619221300146609544593412936290569990244661660820200372545909872528791661162555252464573454366564527319439436514674943299663009191922247397450815397960131793378468601859177144590405338046859031293753576556888256620124768157621793302620370064892987115893302453467393517509906111125653546040858479835024172885315423482007313821501899818523087968743891878313584370104059092148078605011977065624967867381537433889797779406246519845060359324301360991656341953500264874546088272973715236237981061085860528199660240520426484421792502917080182376493711721215743544182736687008605283160462979237032557257908753703046138289922747023673196185746586057799175384774682787762026237501418641821743332618893535962252251917986551920103160322931984019252020300090420738667094324732906513256399312166405247975038895648753249175462190654954367705464063899964381192241025902889830507035541558154411893492113205528841444984167651701768106290584851730753131973660512829947788905953615947190564005507209920161888371941445253891556333766499997875765807062292421642983260099321133369652602630800059714653071222425581660361871833727525013060349271845833371694930642031062512543059720534988423080933535732763873018784890341090321780082699434046257284871870594420593292941721781721121970480601069872810350363537581211057634303088134796127588336558434873498150738980351753991051456132965323873745587228814582783313595945321705328766214941079752518857525060946763118781153706385730436499115133487968520244628273740874540416130940506780410431658200209325567921966985605588965222575026399711051617116043716054715632179174168430303917155995067852536692938645385816274458147778015449605563082399266131973205697747565718371127257059142280269061397074265389758792555702598078576753822297669612839330811246025643375522993181450046502898962644454444962433753139481603476060944962152680591944585185074611971590465127023131429348444320569597739770603273682470058964171597387424319704358931819595374948784088504409308955179098763094837810277976320115649588839577157230334570050529295261827710340803614585160929323848383965921390332912387999081668951726571304876669149732482033835495588140207251217663506654157568260375792820930244055802268446493951451717663189363493491997723720747075162441651456765445618034669589019852567001277760548542264175269879886656803401028655855206739063965087643179510952203008063462796041143471912260605857869594520363214597813454320215662391408261915914972836707969507538347013081803326742722466668435163767657807333026049337226543852195348855609895747891344705253267566365027904641454995869900970386303404850775519045286870857999565911959157325905382907547794380519880548064013889816326652916138030672836106199680795539935428499882515587822574083802296991494354450855120042679683244201005391888355408788578609437740349777691970430065660278617958756343212519212606735257347276419267061015522750920681388481599363556244757951095608426511987954344497252138791726808681278616209440991385883393960768759354078907424212458402468577293836797052973862707623765140038755130978418091320457664963175688746388288475210117944459975650032595896201082677643120749467984208069518525527471639068795694287655121842719381475250010321998112127744650422161913961724349625954921386937465220130593789523058882024709787113033809381914333091163612095827210682627170466670604317628469188942196699469153030073416302669052989891826903413952270635028157756352331751531921551359608044300050623466258635760450875700773238484031406271988559569172808639793445156480257462644423996902751040349101152180206573518600066570675661752811409310890432070393388931415938999695405968273154354925717746464972092240961147352349318586168586761088993407508882358666981428079936135161056680880036923566092220885005108989963122133658589192317540749561458845239228929015557138040444748111053457794265458445396124312155864995360231699991422922543039618475279471723012008037937726550459672922471586453270934401340495880593027191611963150159917338813543600930534830314437058859100057687404218981886622681984636814745859045033911119583146225839216110511116615459882586836583985148486233287790516361294065586073749723798570213683339374127313974309665892438148154679836389085703539347346822076255648453153191673824741006294215256339138820447874865058434771010710072441408799985101793675790365893314208137248945655675760654675456383601097749852253890631685857265539290196213468782369231106110529476953569800910723892838345568737933267154852569837614068092327514098556553218150612438131531911502692085054074929850554630173280291474265453310679535841831851863485692112345369050370514057237313128956369914788128991698729750040482358234123706942175314697105120085029481632871328520409780171919564043668148806936571319457120302037658485018959235482619210086769138392439634026303838320021033384667149658398929385788484448441593115815093978878461141895240794030613062642053149286117804336543723974148220490667224955376411330696614077595931612544303517262929764261745765228452332207838065482934646628769147093646472696138727100416605280215790310899311782007154574592136333306238354371062351927529717623597063049623312648925180004030265492126526081934488026520020405771431844830202869563694564215946700276967485015291027572968725927793730598687873163914288985141310330274180189048556091273775136059482793218859624484021004779585844932423483183883190569328701290349246410676674440608792292536855695798590106965485321226785522768302721393748351437478430315225636641548211099904844736471503568218494580204912189575912774326363929504023927675782946181692357327070756019823681064654033560085401575786032976030415547068744726830582543624592512592685244991682950204153936397221950826212767575802115724235395959524798280239461273951364721032341589516154860511713954482280378119844014382637603627289464896394140008669786689436860706254863450588344562635233631799514052180935029572182613795761672358700349799354771947642189077822437654777943181309546228679433707911674706639153286647636090566554083558833496121722540636108401129903786229427323222261994005944586361564403077983258260084453475389928925651631728366267159282020017039274919885202223662036848162826598788953960069708418436106634356965802639893156240305549052546913105991470472203600907515920084092567959940117220019472999555658439895031326298645883003971471046376948537925394212453946782448970364161118560276544097292891202718611636539218049863762132000398764298790845804394636340877762611301547005187915532302950442512671067546182850359762727544284755100343469505858606303667674004995446769824583578228784750422414312183079266357260236092186557596659421115646095358371731929655651088143422724541035134123532660368199760491232887057013015722113671749215223054790592530232214972197791009543411337770415868813416060322780454923278266673286363753555396564702139208145245036649983664612777548697744219314589031008009647764332792400312385342029495128696806629232979469696443024399184264053274654897436116935915912013339611407104821924753082194762326031744057526603557653799197150589430633188041214847929814451161320370696765480052980590856711004748948458756609314607508848172844735245163435430842528264866747164768921893462189855764380212678447382333466134003255175891640304781815103127844549030411799660555788505729539395478046778792153428253036899740822656930715976455692545908513495088188089375484271933588777432666341761736327267736988267636228104173997699071513618273979765398529135568591942624839178835476629235178068868407736004658584782206800395169663075966389823661359873665689089430232254924055317378836380958896841264787508339668072034561906281899863983115356593052710794266180181183748470523715044903775701773693501657956982966847857403664638603739303672730991608222259868462109792518481956491186769665809529194550688287117360277460867553139327538841838426001107890402809748106675685039536270396610521767656121770068907062015467498620939078281299845202128454771244387762446149884994192427604099949012298215806054727925684948932231857122581507638317818683618321722540694053622049616904374161790717579677736188938507524227979587076860119413776550163141989519639025111709884924302523780770487910137688071222712753695179227913687808026584727471896004452792233263532879003120094563070904350110342490805128288964771368403933189185371755168474337073334956872361937301563956843222285331732984306794881056786350845983392126756360349698593015938222213669038410903537783478465846547319713110781585008263090606314360394821255758456722633501717857927644633595014399714342611280923463505521182069213813819801327734028472768837576884688065741295353914422283950551424751128521988220205092026224343269622141710178537219667459890313167308881546856519219313712348566840531262596441895143842347081255419280526077355456495039687089445809930352128816199268129905887976664765088053529642001471540481307297786796936755813161505768268970379501496659387919143668293724895917102459004442827432800640831367172314113356096424419595602315859823162921218667643948481813982466675984835041897670927506837712254908190542874193167091327949736600684481831148778562176975296680905548701904210529091036502240243997311577265321903110074432672856236766519561561379273582915773610045081430851945866468083138881968181295151396336585749941412598261655648924266910525937948870548739942216576418754553021893305511606914292516214219161976748137947906441801096814499926907707391129309747850526910777535685391819747491064748550848862181248106368001403674144471838555189474066690003484475271486251484638561439419007934318759307304861677198261108938094220962691116070085450727265977174661048715705209329049572653767603812666197434182466121909503134247580932113875310478577466570378631211826729477127976201176276250022869910724513548755166055109824175229232284599129518750274348471879793147671252172632768516542253195785999232448960035151069012079196899239505381414970588070466590941547287675651056560576723960546640036854307261171917746415812287788701213535968614840601610042375710842446256764874999455516431654866087179447391478996507668516050639568325078391665614059391097722765677432382202456321972707400164368259548308266248375223974076275890937165299753764883069605904584665758653352943878053574790890875659202625851047062071515133381163613647698088240196409664774627442602107179515463545575463512136798205148605623171274331907388607938124083155638293453600156039483799214772575065638863195480975685520387307061408099030372247814718302240277002313759154208896343267724814284601466795600759106863645175172056468284476403769240461241579427976518457457459620270912098341639236320642849206485962585376593741824112250882481427556312905088162808140327253481840333385622382100238513525689473341501225746839655006949999699007845429957485462438490486838811933718968775016480362059744531801608309925182977083252484119610845887568891461180305154673206993216274940262927933230947310399570306828442319180406787256289039069064276370377355618264512325592388769178780149863297810099403958840771989530117966206037015782411557218149100205854558602616955535391795481298441796492163889024674844618677135899006979063978939576513295977554333655575465942465669932926967365948292895274723597544175995442026565831079836419809165369188450730849872652399208083405178628069745297940542905375083807972101616357083196997276516709674603957859694030314199053264589646046986726798995157594224773125898387406622288608146500388869054526693444639075889817723404630214131080824801499708032855814541085743709351450254585107986736865071965236045096540992236784966022095085995176490158118367561981054644909259984212572502109720157707558879089967137203577073623437744501242798810506253787394788087089840802792536401132807084311597647465568432605594717957987909244518945567838887958694591596150020913760801906111731784494980554198705254964975276747068959713545811309309099571426057956673827099771966906823333802393380733921003742081513523485921270988361850306141693328851646492700413254604551311405053975674339617708487417274722992020864549731830002402852397486027123266291536946201101504020003874417986203694080869727757528390668840751856231319886185276268414817291122593623176706961429754561294425975197066388896249444643008802840705978467008041179779417699202625806700977747267510558413907656937789561429567232783984429672453271899495673923742684588253567468125324289238400797332353750448935084986223841465518397808120332756565916235352756545797343300612165478766889662610717566240594250818233278687030494545604198762100975402747079246181203128766043890778466818094431773787236988524213329489570926792460807894475568779367927712888498819625381918464385515994321328249061450872690111296735721890951158948421688699938977499181682336082634675984237202956072321241943823790925458799619990721900076021826175487339881409962161297450383620027035848610539371110710610050521528737859744711649331571456569227818970548313189546784045450196661532060435064149907209366298421020075532823757635355827683323096603071109612061338483972850013325939886293277946405068839321896404878907537283389989692591769486758670272768910098504452338877042234148471901842807677623481782452984415917579555495608790927265290293854297024013594546917465577585318831191229788448593973811243299867004775013863340588117968962535731804178397561076526698811959552871638016760484083151678907091848025228776114110550704210239624579835649393428217051514854750685269342606318454840315085379655620294058111655401881911560298157943676078900416425974767704713308557977605396611077813172081615740215788552177575485805632458259043284251565140827070892880550236571941240118661401452428933246990412303328880940790465921569338076183271507898204373102933300693480458281253316909165664914819964195970904407286931065198893220656531772563862688611914262617871470622638508036719677511651368104828966778367903705810672450574183061695436629346285640622706947421850422094999219502378499610623150725866603356914482923977460079336451033499496344800019387358841371361267341649172800638464342376010343957289593254226555120433951514892301927105298966730500966901903703435586663094041398193879140855458997594285846374963332758932266235758771383628426385159455083222624063405507092157660238844938082162611888881070185838257028145515473379776204933992476647845733232978680526181519506666773543296170447870863392556588858776840849499508667722337631004080749909951999353467934877469095777190675196148528378832347485340923964965521549597366033771182185161045036375284471866749016610202057255987270245593307499643192197089960920021645152493693679800679798134015352037030018300188335225799953515024121536797292353346604720448650149757500075853989086177747621607638926857585407266284501882625816445978238115227307630276482041339514879493126292108128223083263877215525812395870195104801678303853248651193327830637494139811394384702784804733121846214218928031161844930343535571951758035710342503497600754383637841269371752382236750582934553553053441267590440401343754227426993220158069571714373995175184788125139716959690986830248088439341656649812330382327861714518670895261467222994116384148606383492155489334247162876416667861143638568515438762681048514576538234994865775902203015639061793364942620602653801363418520680682572154983980079089890109622208851229892398245265563502002742160787927645180251561323533696701467079033289135773354956973001294528370706961150726026975738935037714601027066421110365348113509763189349997369852494016238356065347216539794205857668281615495038449985109441852624914309735488401310252581128916931246388790854029025949449885961683062533147031999476944852642700879439919299902290137732118435554995409185303978851213925865830901695513388068710140133246462936550084007934330814020179635558749028303654836633691919927796165441047509918817093386305372371380369831558948359504772506405124841264332020229773886726988386614683976260192514570089009458081650280348614802114214706048498037840652599975512512037576807084621392268738030860807237978314060209484854132906366154139583882602955590602944637086492967207581631988483394572644442258675606151158633086718000332268120292168388932094050839715455872691564958470258500403773146561511191830939366893938205766985650447401988659384996387747303124245712582663115795133784161804150989177643287311431857897692765167697180743734545170602144381105589778277951324659148182918378955347232163083500660292864775542892070596618363520224976063275957281507099718788708019774696053831902302765877452334548080750763107381886980555641240083183404142974956043242613652580616967936686637361807918696266707755744224804050121471584014202972188361484562888290575302998630717913300926768652659610397115174875515992831491757994577967364441791448059529669943363291929565024765545068564762472860201212517478166600751833209081064477540521944189088622882056575141236062584958025991244802356710107725760535368171267688885430306821412351938963694421179702333064980697128877634273524841515673689689649805953230387053536527494833390309118520248203568814159402077439931646119126409440182941548377708465900459630042891158214378823661537641972967319681530946397827549352172483179904599250956934333873648256116057661352656226142512206028668008868623301371398291887964280974277766622037084180711584513386444632550533225337313941764738273554042995703516650053275181746428655813639466632619471588022736551775287341721889131347386420029180679348206843883980975187759274085452863835959916902522388762419119968535028472487084364322015305769549163068132572246256720079518225121406570267858927795265347434579654698269933125308365216085529739938944930020409813117213168498725013460589991123754185206424367496465611687251327433886555689672004174417250909539288818669202088268833074721234416209608871499973471324155715375704165135800580214331015314361158937657520500122018575453147621349935201022568876534867095253776935387788348682997935666464770924890113666171872214476767222157157298263090986236167363898464328365787982231539763878701855685847434725706986879682708397767769785741420177466541525640623512403852072649034617840805358058870146927699289408484977778818980491234507441155333462082309914443074249631283546077947542605656357077967445668309557459597800433925164568404621159039625673822807418490001178594940325323772099636455147055520970636563530678973581956614239946144655410794460490517725144652442160783060362864173879010145717840696180679002549421865531957130541899575381186973070319299552481990175910497242830295107746877404056503454042531388936200159188166548513575952460800620315477032946580715074167233876772407473275916921292741766323950365345873582366261146109444404108628067057421021636646227635234388816124420035087192683642964305881040142874461603761446135324872858746059610294593469934031674176395993649524078919228578499137009575949651466097623308327800651803794507132992073281929613404574799430646755745452819870717588214994762176393065599956366284179069920411595553956359896101903177611094912388771785493637317103714981152571901436678397616378889793387917340357133852303878946310182365721697879179596427149341970021970693922089726083374763645498069222163185715022482970029592414005157893749958283343518000799256919995954714816983228973865258221055663589053741250182189512613927136030582988735186670047836184230114904972406523888492349428575242927410461612305992065800050665279621776413369869669876043665354447894349040933891561965361692174914470818104416620962344802676214110758071080569434477272425038806275849584706032121855128833872622615357827600703252433019104287670998724887521285078958200292021600811772066201258639994230178278366423303411025271908597939109693511959581796920076366466366392016776075779069348945450039481713296221578745732088076634265975259301383915791332089969350226878072946523083436221454627861883763486254781809737932863203811795726214416874697288837799039239834936789434408809604281092343822071787825479102374524814169661740446372373014065527751002994479280833174300672182510731607702114525838877903832162668610541800520540910608546200018090984753161216370207078282559099388290419173618095121797014061197540696814064495917985228701539952074864351828068890694204955715946269397503110737959558143840943292522314431036655729613890545374547478858390962276192666674482863038735426847647419090858732094800210323790412593851251003790970393700621727209506470913829225673031769576247410131325894951019243405910198911226356537173901436343081617412302866425450749034606073236417246032355055677862925501719536236004706242904943310345789520660816860257280842131450780339415485926041742821245543721826884441303819803986369128249255283968548708916482937070421950790948405903804948332745593919814227457227002132703857065964389503165895634442097120146123299699714674302501135911991341028504545331024052249929447172376100617893364671800068327684016065850321916867837095098820539581502392031782602949368458868724652872624713196722881357638813433230108061304209909342185196144359442182721203211938351680815053469279051041941371846351625339312618253660168326590103092331983636509488624128768981571437803836090568636622269973043923305802102096608198510952310789240649969382412674524137519671481317797689787815291358718980638878610068811066127001665282926459062887082196807173455045794844876492495702375744777721057131979539672877647682264405761285300955473894493948915626436112290370907079464317518895253311574331511942643872933312534355571207744072496702630334092359212589685133717962301645148321051056252619273042630040271763604839751130511367353338742745162018397201321608416050283377525890757858444220597554672198935880906552825593463782749281375686182172239786182494566369977680443734727512793532777986870171437794492121223824027124810613490192560656856572384227806527033689658971200455829627641019014385366520615344152253915520762733223328028158307202808295412399609663288957230687620906276419483501666739745118865142741141262997245609641801171387060076379826928198547114046408455029304498560353487845638662471534754171762770847798409261953120425011172159990498452868796415230751828888508542050436906751922239518446902569594583227519324810182875507725621950158283614392481373835283567993999304241700818111305205509295519528770848588742413543750938184296742485910186187681164451580900961046088776695709642185986189331579082997315472769275573079980495694353774581611632258736432030569556198878193630935780327151102360264046492915555344997626752956990340572261513601939842821734314111968999567950326966891146776082216589887161954926471882938600682452098148504440978382926265676826789170910774345810949843564558373403907362669068175062789894887631576614033417085926100190313963153100772491887797141852834492894584367335499125365628726734464338817183050245872112036782190344076835542677182611198950657355589854961098752315497793793981249998992573904145332019494135504357313740944084101449055327806534669958041305850899813984829641104391653940576783402546352805783744052961905739116875376367935851193861879502739702372328624639371793584245831117949742596591670966982445342052053054215122878690616731996444649200837562217887094829155610817986701280950708191343708380461178578995977168522418807033746558384283441161059056431385949144100526560675811341607236877436463766533120013899555585177632918970434625977550809242120567524547915135271941307292456110403210916645088080191904909702091892866257604076971299220277178937722896525933641184811865859606577406728414291178437453078081736906260285250499279592730433037205498004340884441529051719801018211940720258741883961018917245255416762021871620943507104459124554479481339617948387157647847898276885981958767488342828804253437601002582597170885560210995279018097497590677937758838812294698324299897377611774299448610809249774975827279414044095115238969846251491757634054022859628018564937652340613816351487408968179283090734378323650261417528688430873274123845035275683591972636440348015573171598068225873946733984032050832962125556196114998159144112256010973465933008125422830296628522357202618017151970802201986743368954909194903788193218635850124627014356364651117772535161721453769144099625889757188666775287709347837955223763808113375283623675364369409420478289164146639961118464438368599882796498207626998577162626459371944744095701517197072412439266178009273399084525914895499640761143330383205174789567347921280792667319074696628173880265454896512875862143145832238827643171837940207210692873251408638041104381394350495677531146209316581270735709073902421735655124050739365953566994336033677349673020644599112113238268517544264893622696586334098298152383688205137309334709527776073843029575990682537463356081072027116413341625472058275230360635432642327842968498670432910402100299383802623744000115218122203749061788329261825480877680506656632767656545855442553402052465466895126750360869681347305051526423300347143931697497326675586150932692263470604973292710600551423473602716516331603730488692972803002138872644162271828471879755589413952226163196705134239199905459799605788389707395755138681732685953945002026948705792722759013571124551526191196038004709925388864043208028598054967019339885754264852195611439321524786313953528807067169224269323114611007650654831568933272850883378698969833534609048032120893719086339579000242615132706312815762188456115883187421885822890978242404265776405797433983958386394373490402912165915259379719380614209329807037663820332278655284378736980969612955301940508962764555392127460850859160345292002366094696010864441770647353534724460269257479578488616956083878677306413017611663144693252047464684916505882571008704657235626094834067845170230073268867010071652254454610144427219058450042161481509797061039067920110300598925296393254132838937470403563897272084708616243426993724143315356399532821126559739902498355462644496228201633775442787962567527737601865729217760685455552940383484302441988677305310805509124228771294365521373912711966198263548554468763990502100718930764071315550709199427925056458940628100145131002263520864663595005343380693095823738444878147870084490904852446303234818913268521902839496487196476421941869636305218671726820411067263752900105029081321493200107967572640984106310072900671679447335237008886533751969093128519948691564386562255989476298689965046853534874368103332735301478043083232070900567938239975349894285182065956823796169935921530353339164563729497663911477723266272063038088978952930322403980761202401941943011240523322516554453105223464941701623849050599256428148230649765507204950781777845563509171388804825858604618520904775262417842193716383356275629648877789401603527176595924788602418393302086407548344009135422589451120223159514721638467972969446298940550972032122404281000434876962375808615030367443040920497751818437259216355892244318027755025064633052869068215485244972213876291081609636997459352947367116408306565395227084131252240559864479477754380701029084734564196914501080015309285923369739079450798429255438216219487960596520862741988923117303608743840502055849812600542486854891625857785552434282368915304112750687444278139536602591397575256373590462881320699065085429924234057697751280485658093337264323111406210751851513899944261904867820008943827737226440130916958441894218302330273618599599187426780669254504950838808557927114736932593572129587313938074973949156435359749208534476333602271103215616089316665195569347155371410788317284470927036222109663591339727703629880581953867402081717228743697765415556839042265201271802435237333085171063869521788246363277624863162993284784028384469823869768934786898646494633637630946511243668218138387871746541885731501836082839645751655539517875656607538611366648490930531130484829112241939893502758036005561892207890950059973076331912776860817067364365043748757373318191589965317217148955306927240929059918197525434852605804322181711780234111668119237316454852634286983304394780848096438502381410801892160719437633365636995704321699109203887643254039377842356565233210677810321645473989208711483584807922380594830274085131725871797026825384564951966046289003210850613685350836499349456237176008770977176769885347841726209267153295093157302202874251955302414129724642550479386505555227963376676145640512382173467440213005162294155658189487686338254964848323407100620795477300230426291627478649163925790490796135442261761067487742894642844101584887479127475516172401342087225044681480732402490239719036942026639865419179931635194304899692836176816995112213158682405301735607431280935919588727059203997951205549773048378922407034256035934983541362151781399777883703261764225874346747335796883025971244206275404723242991277754024473776922255699363898023571220913882151433109212085585202856998132673356746012909668490072795050998956033331781300489472879772473365320660353032675350079257627864822374820606595766846679001969306996190323204503936180039005301145554562255024914083287552976139615409674680806191771965424492228471995062307275039647386907305344876247541127542408047083395556022414302803189301830025693884820518733713078172966661629450292421292083934567936682999045448979515546274827348010118277060507504790672946171307892088279500215552424539862855289345732561572510440167364281714994737722572581941928989274653284099583163739411452809048328367461698310704052436196869746327711831192680536562114065363913094066359703459115404118355928190122018701948050034323005439766899696965335756519383627971193562522450444327776548103568649701086836126683814155082413389788361489151579352676984888642681526624735706428796459318342996016119508931164965869257793864811453391189710185106391305348432053285091588335029529991779505259844859813566126546804950913380759086787887302530344528925396995162013038629304351921401185099616492843895375105686883893569301627281623927558221387092771555727796329827841320744002673989027150901558416363660926767426231455332825426462494399494521110545915474897096815303130971944834001162242474738026397540619156151313510001489230271170764768922705075092034721174475579590074978489233347957084539984942316584348189932060162438155065130111565528742841344165350315937092663189649194506548283716027704942218025518073610761627350172710128376513534892550301341044065340206727306369721437067844520525731335550923700953775256227577800698226405939980244317892555462380164598757021456581579234633386874512429721603776169915026783944940145680790214597508091000761658792950815633914030138434029015623129518241064994133210056526778464113325977930771837674183867651384372298717683244776548608635061979623351498249099799762462513664712499084627931392324359003852618136354704734483000565961908758493516386930852770105965098773562440229057163162804103019049480449228119188149956878931453156000512175615567970129220362751596651095514928028766331822898093365920423816647433450649423290079021564178425701521403975993475529185551077803225716127706546277855931168358677192509755425122252397027251408844748179154339285201066657923799230224553928574618547526927894329692050939771747832172172774237539483223677515370278630814059548478854312742984286507615710963684949575605321430541832903755110183248752386041107068641027287867186773414922950284913949761076891821876346738011806486153149006750378225016025317412545221743362793284922674849241738002102536899242368669595740192893925765927713471322455296611184195053380803517186125097709534131303854604865520272250091192438444391471706789070381643103783960441748497074017152809804783463066354119159769961703101109752806445063861326912647982115337448896031372169264982964252855093811432045329758033558075980453820030249978982745709414191877807979993582281292243968753997085564315118949024005279819743654708632293943282568773774526927939516019697116063757075173372744421422633197796853898528368472650059199680025715521125319765586956784099279008998978808299958275321761166218225601847860564864351661259667232712471442059399400680319299820328147964889711024793912444025646149412575887577279227082732013920641397721008035634885337240497506493457424092759971019227208280847188674452435727578900255855580375306783190340584702957333661236998066871635639716988399977558302255376662459042010499179178209541355702548593762986466927914432386433023596792285137043425143842685313983176260416111839082850262552447544436779897508615584240073678106901318992803136908213260341782394302860981265273618596367327276490183811389392540080754587645391647941050227943938274786163967190820478855169610805740737350535933853194459334514019566397912468676322394669818950154376992414514774838966354637611634667021420859593787145402489732575924563061782379952735635118667695206948285930436841226701151332269263326876828319086441211246177330223725951969616842634094381747031359630788097375902934306419499523832827824983041499306023801857077158863439585263817637087900701216456783247724624929823953564417797512636025103668306154134354006166279438787315358304514055139507191560649626428786625946075137039540694815587660722152205217855764930223502939580657504965117782107676602902069241776101949661786753720465208390488785056726330348077590304495096337502086021585278091406301653049816746983735330001372268779299755813493536251834185436707687892688194914839940956198378987990819142251830794555207861078336137501916485095879708706371923627340502375406604026905372517886191560752409016394471583595236415527435393754668466452116731735659891781078699365597533720777190390312776238842840385199684656302717130193175596771838141573442459292219653097418944909348861755756314594774895890141186920624287894697061304465979736658259012096369498428551986071461905481614208578672254190090267199211779464325265372951549182455387788035994946566717109358171758774677631328533073462943125084929153817145544429740292060740630258882701905018358429655072096407669297833560251692075487523853637775743479491936270646851505490428847968015475626812624248327469994268660752709479623094475806859292402552115432595001446810431211810045365663936106644419629946474304807881650045783243750654078345784336938152997484629951643848578548283250505193057791169921025291643431592508437395047707049643439245922970120709227044492404103993513013112748148770298761318102698145393659012692708993564590677526589216541615866882401315762676792677711739848035034753962394340050698346515439079896919414570162705694037679150429899090356936817263208759260629800830345271230052913978283797044329403498365520130995587813413413145340847027182505699042061101360510410423456734374839397545310293487460557978629168366373616821033515744707072281588205472999448887078072161210307345087228830647835397538589415414034176518767853020097155961202850354463805952659595881583409825074736981154294849453591047464732932933050386071773788345737164755533994639381537660920659733114487857722145343363489093168118331299999133437214987241961761753303577219834507218384689958350471447852745280564708834153982049828256419631318457807472609200187276671019121426515826751764314452645357222535271073985769229984268217810539045815623349771289319009078373413631195229729931209209989667953416544754219358034716404034046851867795475588273804498677830041446842278760523728877737014355833895639450562187276491860231252989614367966323634275090242415473090440014339066688615768199777911314412554857764321209450388831940266181652466880819057485827954080631773920469088978819216965748028342605617017013433640940267369674642639567716734327247762187794797374019280363147820180160411389174000615971056848367768794257649411649852817738483570854494866323013507207099610009248588413753770506169827666545887897367030175635339844204650967886936552379412558487135789152939828686083708166076137835442315179364809887038491059202610492669339975897345337057415250050856998172637437188573716203952711322459785852404201108427575377319764964371541700317989230385248674039725276561756267358450084677782230846384546477364336436008875559087161959164827405931882870776410951339097445486654736688658010108129522714118717701412549783743501773333692172106125558456547556370420410492870804921794574904522611076125847496548612678507377562246883605229370296943495279194073553246531657377129426225541793863619193815073082434266978993798812837252968613916505654915359100943148870941654074845469510165198971736151161687226428504124745430777892430095601203103708668753471529428448701561899535258627815418020305800421950819989477333912405563837470949778189053632406026290436812158715495643439753326002092525157696956056032391191361245862131925297283759938266906264926854375458727979212618505724733920844596177656360546959500364290807502561855435080821889284250682587968911372486080851723305837181711078226762626097258248728245923505516110897559931995493261833585546411779415861265008548713645931738267318536908059356676032408389018448990653833762381615890474564991157152870626121482557328376943334758764447135318064098453055172863655615398893179882657578266430643722986380093197437125427417286856821028155477449275125126571957996008117915184936424877383067698878759720429598457492972695402256505821103814439018931986197047247976636911665689788105226645589319176424794965197953450641525385024140975255935098122976219171314543132096152311109730160828717828690204365988322597846170948883056989965193227396098596719406558525019767976819727504888064963183276896846951092107571898023799072237542230349549811248470447143587421151813067277463327901404973076361073474049687256730851994209927720662427938568665348334568103558827639366325377402649086775158353069283253259853935293632247538995222004178553355531266176036728862022430061065015484465140806307594532230194545819943367004529929510104006472421176203068379258384442601147588595410814591631742499247739069933545486286905742714627074578641756243552400467292797877720031160802287351920100879269156430864278215186880943407725884050550357814749492821785306818394389810783195111123379948123504684605790471428866437830177900270640893117964183861169548721698359660119387602940427967189643507120092400654737065884072066846584052183736719169876942927449911423550042137426706967283206726349825742442297354328924427597560173402126425860116998249883324800418874416436485425982404745276178813565999929347048870700994515928298854368674810527270729306374401800069758851244715053120987976637276810462010881855591052415192256902628105023685410910860666124856569270642035665942664233456318647026570208130657898924002945450700198475492823102720127714126687750315424209779131874406168569679629333679229956921224692840737708834127756287294072217709417883233603803718135762664786604786730561566737985267085156646038913953571184383627758538345624886336026668068490437603045177001827995559968792383871730912023109687867909139479464702648011952429373290485207953761503563269207312056978131526112769425712584901286078296225934620272469372285887198364029076948105919423713341339772238839667601219637033085137972069089223507878422361982347106480688341301639027315914113216693569680975950857232231589388689844930302505345731818747661011921289798222703596805896435773191926379989452587657004699541743348666202598519268681716858785834551696198737906864807321446662259697851450693488368232776012254880204075844548472280692295698396867754178958680955896627599893393152646568483578798909034351921015282486306250860201737040527029287117669501552346440254628445340364797528513456707562847754822654732709646608101844710392613659464452194380939629636139815736352360631332596535657539082549193130207580927518678397745362838197191192653819341372153440161364306315029898122751165883424801554030544097462687441581133846098110274449048494651298326622164232775678170448570461718878389039416498849574346195852899798610240914523580256982747829720092164218461074738928955463445317531894924775321560131488306053973776265889451191051341587883725013129234850847805258419732151541105326297025931457375466683081948582620342394942686384769164748000441706407971803516851252133491149852964852173615405748122341251083824493028400708100439337664821623356320109516834900548523482121676677423919194330134355141490148613776301153523242628042042568758505199829734514604463497137747436099871115588573922515904517213732316737774359170124537902540209179017311907892298807333315711128944692386425467700829250282746844255499269938982897478054751900158775451846053037833963659020477641264675794794603874186439387501814388994271609036995514070848163843041066090291536010745324428425118573018299113687215507208897221262116051323686198490572610331396006590768282191656970821453255172544015562937055688922550659479172143300089444387549590285542346177726564438774093229595426910370206560616701614300182999780585451012097306041313824705485051944130312359456416261041209806409578729206757567741269550487594179383474807314409077855775223247704241910370965784653688333418523635155189872502516637774768158455668988281110150654310516712975631827095692005113552740771755258712149115659950428902165365966513215820206448868868330510386502238645279468976790492849805008865525945378978920438710968119416199706806657119180550635338776567887621633494448568101442487655058353622088863543286309906877628938671733606136300404786143976511310610288569324950823652479066012911964411653133356773728200559755130158206609175945002660741363342859190103035816067927744344072364804173475228416214013932901082265692239314600432499740804529414566512448138476256514588355086806184216405179568096425750579683654875374008759158530248994368676991501336531510572846750660404322919170171067737489983622825324703439735880932872542865758470473040637986765164636670299294496469558125552494671305103145824864324651899135171708472598906397562219732617177836075734340488319602978373201285379692231386857741885073339633194710074088314531619155832230045382569088714142945334555233306958000458661532293502461049567532974192078387111795612770314022464805786391317197695078731251075460047383306549863680217179092303285021248851499243276206714167013007019507565058471264907590892699635446962638118987577820219721686813667767975992230043843835328154756264364199600260680328348425386980111741936013938179735909514281518747776657877948524312647438229575258335737956826215645317515556309887924375711283610981540973539623876390937198439444513803011902138109269535912471271248980884688802292305882845432628126541768673000993185553128144693296784086110545548200335462122549732230121195547510047491104601283403059687253085413928023640513349921585513539635343173028936291010512982579538973169680099915133529134281398476436687538402333192070065466066693814226630178072742276569029011614780911717449792565140312202376501486552243787660875690117981033968895689387245852811726469976707109993428749762796561642912058085555200669463970914626191807323553036537234505545076513765922802888110062266355960187060257648337630917225433773674133801094065565034240857955193888206957861594948093961069965720236289854983930227819458102904992715697343482471535327960221883592252126458044551326025066836177506917083479668461119457238781185715479849519320068517005287361000389816398847657628867026498429433555728516976394327571885616811771769098766050794371738604145914905265342658965063051140994862456928886473605883976488740261239900098186704973703037217729630408820098757591778536151515495404040505273887875980181313732413478298101666761102367079575024263242250213177521289584790174577959238881646865523832708469421006864439086832993918396881330039753256298095759609237238395373264058937773220060916315251452176379484911012416201391922589343155184871920012195875773696609951604025404755397219190391357494367152831262267778025731137913286026427954820833054351626680748570983788901312636930260703926026056778366903657200766686158970173608200801256679386719637017729752742429933786642509069484490716139638573302010395791861458971420714863331573014022011649729131881594967066588889734840727338427451662981459291342465970198717740690827414923535305399029733572654931652193551747728048182051247297573340439241005053680398990195233307512839224175772035408472088976337462713208885961451851192478449240595859333735196903925277260043110138643195186055135499788713605124660284108905427881701734746068324550745649963920236070152503315042895246827540603205415979740860146149308131370565486885575357565427230024710480626665205427763747576945141090999982763344320900516972545638461286563950345743435902919401446090468151951158059430833990712210437522238596977687803097239740960101537179210123636542894037033241214518220498736291754160655559421180420184249374704308125698563245518175477323636856909751508515776496382419955825996340377021773691976309059463425644391157807518929197156478656563556694111602575989867187211602126294868696473495351784736585356595614869980838287686424126756067550297245339846592407724231103899787092916413008770647257451799758877644468776737295316249068561312044455332281317078152540094825207936996783895395923342699252633936192908361426552578770321461907118840528408362711378930961319582049450030140574018314176331117014318081158260623200269387692580635543536982240141691350702728220385209550326038029046977680916887720822090892444854320364026671847738483538155280344533107656695646289813579341764788351447650690319903629288206053695724261326589549039442245755881966160583474058001364739735856870155973001879557702121522919512707238663425772093822181289704937413680037866156587452611101135609209254857530653255864504997397144484413649937583018472880771584027753043308483761817029754278975318105450070112122595774765766762230647879945553334135363310270171446381066181688190166590366125500466510983966342731272420249950257770384015985382300265504361238896458511250385595473638912458575123621348935776296023422320618170334359295385470289499872434903663950165969285110020154283860082724221210052848636233684309722021784226446218772646839033564062834207671133146788308709084567424036772869237465035450237641716417303455919034698041655978173069811880837540858553137684045309044325159008490612203525409944221999672494677896882374963015107539183544952936454408241065949048626970798422987594312301017253712397261214316171981525236297047219549457339245633396727791683871028545762891524814402005051860723667365123699106223592121981000977534009822548650031967473496533004703464971756715120559442797558496052262547940417584039648837103883510891364841017710789286408670078928196616364972031467475903244617433452764732836233097136210234207367259971663351071944700750390206755124156020052741460581797049649305212457073738268145632366456912284783774212058881160670921360662582915875912456423387170429319177729348678773639603358316361752548991665521849071620050873989978069095539433402240214911960864483245949289531644851967031531773431696895578364314640661238748408935911131947222955195576118752915751565157942805339766796216896886578861936685384581082884507283117319438774048343721147575489010412080898785615281875373886772239169814620382266476497293799632475273905070259528984280517482990337585793894518034669748817994629939682683294277653144287279374112567141699928112003484272313587593822666314937313357401774527528048424526971552510555405416652475547938717860767743320470902078037897263487887229265828614087319225488210741800058873184565110569407969424932325484401631106605620111675717448473876549758802840953946318509956237563129938489291218166712317220280437657506282981049682778032206122568947623516142592244942293475132737227535795819511856307921909583211239955801551610865131225500669409833880170820052724037896081594312957262741826241753878699652876257509206366172394395283694204883288910614982408135318414811488907166764197207903348270519481943113983821174696348116639707816902114079337029738370649344811849540171249229864547532306256763070284384659955700825004372059884033864289953082520599608347392582615924897838357029618608329698516944508575428274773895595156553712609371823883505735076026416180730422605372725692100270586908736284997975509053300933007046125834424597388998161735373429892621176360579054307849300666496340812889890404589797577428583425041035028729722266626083257443389109302179674307805953042891120837238492696033971588051932259825781694144340900738145711950023449235578249698923688020126717158002560474531787976709471476427494254295110808980887085308758719546080083314935109163807063533386203039245378398131933368147580114569241940515719743462890043622314124980459667902486532182833928646710366120679967975872811379724577666115727238577991107039635982825199813996174654453342545824185823416243138717100523708770960532779247771747046505249754203850714471672173177999869055168590984637887581001678266938467103555513744579394718706477428349565826881700105367098515450159567786730244206119704204030678907182054345077782293662173430682438537824329611578412164491318803848294858574393728858143086799832856702489824016124027523497638314488945660510770586973524079234090045924763463470117499487461304073613373940779654147483494473635034432484528264108452872989337964896230694723819406426120165234840535023269799990271609715088497320916334141384368523040948667297130713183695111176372851752844440176732140050298941263437072400188446647510983400385340741555872528301955119425269658854946067092432627212249577335537283862625052211601541747555099377409343078949316799271344021830254570495555500396182195923703514637374398981825329459637480487560140504644460311765646249515624240909836587293586384049445937416254710837228549361283754659264136578150603703638455023431119198305980101852471374463898806678052115206482062222573743141622235671752760666746448516918552456358363110114090854932351291752980536829779100060308747177965518858110114920766113985488899967664287046807073070899209690514899305045043765843105989969019106044109370343084500134879723874897376967308323514954183571763857306230674086365205352822847589437187097919912103248920516107578261049173673949314908892823303054712664317400257616263255087327583115600200989920508480751097886616445704626367309425998874904641674855783904001431548629572129229671826022497184593183238790631594901038783147397138280862770415400069723632375070229910573479849470786070995132547477722716173156448238269634677488746941168272866452036470901071764203979989642554414170046810157069315188157954242706319895030059292633353012832408509203167814611101448495610613589440378322967811969841162997349552715107638169311542591371543353913619907312567905238234474989446707607062389440369284933406434209930031244196347817608763911146654500887212602709329014384140356135561055205249471698948248859524908872168048936543246853254459371688239014107868024839234539160218871541013271683683109084563857734208929667688846265216752030114743661240230482456822540863833137904279932227549595123941511626505152273009430641143913129355909432127038071868158930668551511542165000741995088662683964618219368876705311862004951363656208789813641262294292187137028793362768680457733533893229559490979162937876707553996020397805684714141213865742905023874293522195913668912453706406413183056033920432708291779662766261371587544327816209409446963840569020876554527888404521453805756173107074073170975092944510844239800764206021857829256988516593087668587279919104319521864998624495352263881049936768011347913052307514804123529338261352230369067540841187091604827007397902699932201937110757470301649691161659956194039915756251950302846246165158554525752677264899258287484974933881939120528383916936358575160367303144622187101145554111319362859120930157811657674981087504990260189449560556220276831029871648384928449798495329856424600141280481306590265098859657196106937119822882290804962138838082662748202449031195314756776178804422926733949222693186485309952563210643281118094403938550551838206696421848746570724243292678100086411288916727242910671641453723907381881763697333490977699264876866133723605136766186383328066019409235169556981008985938789977348288773138396088165305646972132286740864833756941785604374036637655239472543996166456263898172542269883058489649178420967128582962948167179379736148444214456574165589068925813059366125224912006707976233843996870182280274948887596798097598502681482914554093167553725608884491697329480925233770003160224494306314358711980998724986176148400609689227344326859184323167862765737867815843066441700542503337027593182676130805476155482121520505050395225203008594734240765936743489553095781965180873697252009292277802811368308558461479764844875274854705958586513371667642271860225135829690204849430642612398991143152011959212426145738179694796129307543541818618959300509606530770066725749178756716479476458177223242299489559041083822213656640259812788916613595538566314396062575983325531379480614871630284618254942008345739156392884456120335718010765279209795511739039582464667083856730209672406481419061847207044615605756422719750818441159840031088515560986184573057078358050451966207002105561828551664218543156749003827780589754145552777245387250069426019397699027677112335816537945302509156966620464522482291290185037948063854481970928202207810601441347863096206289575795557457053025889604804495061180642014840495099824277801332595786242300955616728095833003886020919043542493057268650772840419548763563821971749763580078307523196623173880021024351899520007745642851618191787295359313287609526958560753743745481275883055154942953360311679983307120722647923789335021965240546323526457233801022966816313356435808762265596508629113644421731130351965659644125784683052091108794782165752776863836503255522968563409653416273505985166449970369782446649127016562967069909175774518587510471402322150371782753319683275665496117809445395891679265048791683036059654621507963283574094794349518806447127999400900431508054281705209932635494978305933108360927774384462987936412548454736501597898948750556924603995095373983368191481153605668272830254462916924939752200432644061202558089472075152359180991744439142572721129009304242158070336741011748427328735461055441012755817553627378920883968738034075706383004776182964332723705838132864278070049429357688166365229734210566134274068248842273232161507842829692909502922031526695294911159199617061392922472440350146049383990836496594927202165784979306627886589411747406568284677870613362271469056964041703999160180477511517618850779281353072723493030885472120249163438989700152993074968083501991986043991934472224134467257774806769311590897374937065203865855951454405426812368266386408173231716519652043428260406185837686297728585419339547431986689026459923888009854426428410077983133707203708520220086708350721473070869639139949064517452533167938896528034469901504783210199284601264641275878832386546656808974265090094984353245528720260795176703787412514864415736986273906790347429889000261393866707350268733481608108196568067701304063724820504475331016784881316403357396787721392325758975773351393800501252890697356129747928227053602184770736144001750440451046336217319021232551556024477514229837335074690615418134523416549447303444104209194544293020635464734293592368332641874873369242894902817167181605477511626999600072513845139082468086418999529699821935599283915115880784833050180207852881353323002982809797540420842851803112327144546712833800206105451284410445316556728030044483997979991916110462208584136372201246802902756209568603973252707918349049357351628346891624293462148564310843940146943611340171447893284206339479822531109073824594251031970853777960156821766811191846480211318141266634463372928827703057907070220601523712800110353570898724463040244858252199933143644794313532858065038077318490402828973889425152947261962997348945594213780140314479641922592245395319396345443094473429320977470767110637020096950702109819842951193558338253532832681882223741353207969054666897851889892750545730939328050114817367442774775396980144323908680148181156681154895578975411912051089625354129566356467345788190631947682921380250433644055350702751600224488016506399834313526438594626098726753128093478093682869876806930506221789533944399938872157404665305803053608358260130759192440909756854784247369724947471899279141376897547990968701588123396019993045660729318870967868152672754697185026260406024953013297222257817194868794967131291359197983106419370767133031447813993855283709176388605060598145539356699806137544521691467284440538617761491476307877576299995467029179702019272827666167168701940015959183655653720529841420941336167939769587140551575498730413867827111942488521027978049296946195996888994251060879255607504600133669992416498023530090801939083330738154583407567088929737068990971561259728674386985485919843672503099759646182981808184245218551019679905120934662823874112916498871888726256889904095613999935949750382776130352093151219861430170215157996730191313883395067277292925367977341683115056708475546741871247169462622187166237841645856663237236351289652453500220959953540392209086430269995600880609820082444620061714060295491961035874903613332506339945064429060577813026546288387831010602757516018249509364771862140803449766405881169702922883039426829465653421805267070248300654803977942557417356598817198833446012244485218834438394454986445342371076847334901572562159747835618530895767877697341802445307032381392247222016737176324969469260437563119170969600351266391928279874430064148667459012410720557789637110178961273542732677115129951328817879120799796782099312573128449180670632094951035026169137179786204157939505012504706334771482080292478218737031549305581600353059010749188048553121542692322806754714378587426157973544353931382676394466723049574068735669104323464480837688726923114826400133261719267745218578937287249937342857910581390484462452898858587285790491161174027568249841511273183384596547481264100836511937384571041771483817011131204783458767954981281515286417023966975341456728209899747584537995733191994692709176850493368855740929290923794533202611730415876689492662492428450267129420173213354469000809768762093284150012608321706952705337913813597170552507491401257958466551860918288930868158250547804489880603917723991498609192758123180335929818751994257517132040091847131795462073541527653055244795243441361528692730955911201662188768147222426955958950669278580253429968030715355920113837112886768710673650235650272942241560097028266313415131793522121520725650769543650050940503533387339039763739693163900336085694427153092968916036986270342392203808889550871180970171273211511211370076046855639256510631236851354827297245631359010569976179694866430378272395875000022765928144809939115064119579120199982414321526696386138010496611995889123520250484099016205671603393145923554224884789216793253966705894236246474672761915713676704539105188843055216979671999698328879606266167879093586942437196978936769164663868076314255794844186520922527662254576800500267347597769932727860051443497281567541802509916132147938829068253553285240440887843908538675691243025956464895297884757121618368799623320143048487073573610991295229551809491851173825181664223702121922628392058971793194725537167482220373258455342623605933144299127407781685971117636841940261968928264876580994117708641434011401810017928667696483417692830446762478996336144943096595590520378334087672377290171925886896629781144804389647927602816703942406876361994307929126186301726576501768433824155440967693604423420864171478919926066457700725060048540894615309270374455833165197863025234578736380152602731597472386661386329690990851795422707159061794196022886439832894411993411655443331994898774415312733765371573743056914231370279908498921455306935655748899552618127953407388082808780543526504066381642617956131352785963426906649547273975389852808031853813166142759815655826881602271040080968107048513857656061336050155025217703806620722809551047372190632390014344092112590265332563873950206531702644206525837842231836940350308009254739865302058412456237954096071198605321210956720384860407996102982726280230479390112570327615516942831354213527612443860363851965979508666065981490742994570752721864244604549946533100461186507975917937735942159122608295255905062169422693143653948713376701734155851739940463250384953562415766814689263772953291760393087215326624805779485248238629738897216156586236540865719491418044027698724010087527529912598051582920090952280051316889001628791577464655651951085136692347540168452864131985227362388205270144493863789027993402273731014802767232152120342106552999163637892974900626357198797332230318070091270780247707391351706686523749599230868211372257329792812213486792741856804986363008955933819010431801751575748195379909064415039503755545619002437259382235365126711433853801050738745816129021192320738106311416419881060189847686451105761777825991954497656239592338217991658976370291130060109489432220466532578133727465262487094582144303521236774184914231660967059402682547953512994582871521519974584470658875483923285951681696081802483201759142908840559903308164633045336133183240016403624316365808341012724883356187383570353922660961833691381223552787203814125516824401927235961078004402795938725403580899917154905257324291769713596761264093815812921817035504604608744376081288976881666028630130016724660872411000045747974353287327151146607360950264042191649076199072762833198383066328335639784360229797732901590557266391723668274685618890284728711813642277938877058017053217539569833109895472489566832393828051937904693163080382539642227704057487325245430402770573663437457425516211476448731770781722605859559134218051373975464360308869422232733962251520556419988428861206905583401976859080205526194774608176281782864927597672687884264814580138011783864676225920283999929273725419680205682559081936947043074926642831763910238393782105942332454409648899528953421449568470641276226446643289178998523812986872873776412640230409074179248465066432445714818373229563006098866808077988019760424114110185062030082569652784341748029466460793025421854936254337917064414596839333744916379888068394484565380732712450028028750463588153743205653654502342706371917888335850697377637803445675330911693813135826516752213590119692843068767275436742305424534671738380590345400242511958398903844222910113741739365424258455911325572348033793394240945954595501230669842845281113213424513770775355894560394812032920672466196874968584661224715161659130195641619243100457796924565248043573037564231601493870147827012082017712433432436663822417610769509355726766093561550062866254485153239867235224049593540950565343471824474485417474926208312925232108965206818281511063863992638396919622799976963634511555713190709895238462939563840816242561513975932666952025590887205707733373777323711273480175849909805606634956192455620357641627347104460335045403977994097721129419663555761689494584756364446270858376187025070365129325735483228563281221687576919879955127655816804445386532746187352065925475358488972402817863888295024301862726547136100131059978834950320125433119064599668765577101686003399470157099278519692319783023576867040128264577401399805257185564152553403335507294195923423244224880983587622283824946355308379878634180308668984492618512153494771442877162040315010367593694287889294577798168422190634666647529166602587867874055943430636205484964232630169686447869512256678456825733139429276124731459314409613740479381632287095476345584895849479281058854037540563847465802189849541999352896871769285619658763076132694208764946452685218329685405790143062635735757360072018267615979690446735241948736661403178297757399419894149362128929500792483731101089549395498876462662288471812397882909458221904018135582803123015230315579585254594022240921330473654542463437395080994901752086447984820554206027914581416042919117982437112630734352412680769453533708773902702467659295412365867453093565137175279153417044944537905677549709296496506106401877381306586551523560374111991721338340408457354127148493650784740152241062502912260948870845821869567915786990773320390247467773094105530055145701593215003695081593718169415741078410166642999519333818637839310408087527855364827617589880646320355460358863157411729711597134030927901788671172271025793883969103628407524483016945606814017782852422726740629383570166821369179970541199523640115110255552969602530065658406492651991025575974009807632199684199684294593100321825535580179158078447512711935669275535181797718834673621237153984910923934260249489525032411131160649568089022258870582807212332465377411852623162018285951442387607731833639022726234294417227883439379366310317042932465076150825159940481902918055356426085690489631528536728273837281688615511670819758560193494224339618623437311424816344243883086505887674914263789264464090889798539125527545121707594006827749060826275261806829427145757357035658071777098703676243559710722406455727312840427084431749508603729087689488547492824258102576225316004388094849880778492927553732021350018178427367559507351274318653802229703531855563113491177911274649888438032671646146361396968334614439554904612498894109806187361505031818208472202115891913272874119945067794614834492916166270582964064156154479126885170862517935994411542114222335632948850372581201044724660073585553725468229548834036130078890437934134351148343373934091420943062580904025596490923952344260296492144205521958942268631368778809978356521001086129879502755715346179639155006479865887468127384345302057127445789056959108920254195384504018370051773857697947604562511243096799365444826819546021943428685470517739727635639079158999100171798883904061460515483843595938388649720150234478428116296226209159140145470315446981682392324238066536501533705946409147153034145010965638562340775171560284956299431794545615947228571030945865522079407608051241880748245515939682500841234160950937384747982271383498758961322430319173301478477756649010813942829735896095813667696911757487949494102907100716996583005792117355191406347156332307244670487574525843126988317601307342781384943089430396574691394448193654905606170407456352861642773606010470616046237997086155341533871812089078658928079023519114180526663038450242707997166905693195442143128604638487753553645579825293689583113420045371768426750838218776823688979535237139601717250956058151506333197117184903026446113962129264913888956340866935578729392414540507465055092516572947751425614633441115859844794257120556676995233595666856326234319756813888361415787682974765102074682719775330882214728027953733355684707789635858924420198523786330350453393117433102952790651275354579383795056080080122431232117235503757229158661622394197581466928862223364587228251975189448268442162620594641981944524519941819212663161746254322864266098385824980277214824053348671546664458185649695940307760331411899166213118148139281566998936676643554562797936649221698016326528137586353857181082261145387440767296112245649397028021683964361476516939270906213522082805579500904977674017261282688276196313842127552116281599323257189488801015671127873959503731813222836695321463780100106359921460207172107785775544765324971877645888879023013746235952750529322977221579888745849168380172655713301177141528793587839856877555457989397606839852353613111778755559147454570723416758387869703788560323250027620238737018191870986207007243474926774975922531086810561586639645941765184054403823837271020292328755163672844787065848746568785363388149466735496192313493491304199767264915953227508776704431900798635336170890443448839161838011019285050032943323864593299982082784759631687021157329666103883441840778191047024974197096826701395175957106079920347907201538604729104959114146946616132570293031213632395807897513523930962285736336009108481648125635883988167494795084604003489752644514170133613922648974476976921062953896987851442855597885521380993366539018962878822612296476249965382336577040658384300811390366960627491290091815805048959010913064437471326455975840701143438431892281832753055920345078798605158176629273423820482171069110964169543780082404216892167438698890487454200510381005652284461239990911018744977745649524789870027752402451367261529464122513577895960613828499948945372698709450052849178585460585498398191756259314175861920418347125908010406927910354802548879008409541282585636708391267104975748618070453951265611020417251311608222082018117678004361407822821338851340060157045123396574777636901689299914554726882432004205237857490246582214483352910825361084099144853058217667510896048172863938710281618470619016159208685734110216347634024588302379963582913900127496120944374666941124657535392078491914673160241046885656930668900558454999415783801325635088400858736694436734052814510538080116432036175476466109907034951004392726618489406617840408899338215164963751442814274140375061102478436986509929863567911744054789583620044887202314775913548041785301757775684399496947939323033486297287930183088880820563491520699371946186938348031734432699708578057997110016169003738848089657788879311033658178463185053643051461706980142185644786673191224654470767294887633688863918177354322857415476668836982286870852314098390429243275664652472819247631041733395711648144093315464971771926641403046478345731302454048389595434535630812262763895674787453770746063841546244098833826257326034956548706894067865971210538408853738077683659840839169446008160717771654840981003573563166727048290831440568055549910512400800673895450865752115115277059523900365945155038608204830022242502967261581686556147733392506898578429213516248263839541437247467132717951582908175299459133056358646628783694175935267829705061921935925762403076890088129840406809621488642752637957481013075709848203389332287938162849805282717318993924680692871113621796512315792413604503770825571221232179219652009353884197869125390629476047721782806820476834536629847427121207890069407042259802427608311092984971568702423507854730865550526577602079844848481416160012461484697805629672009219804899451331505090800670210852080439797874811998997266875218896327900479848978513523627384887091208004511813673141744551966747866576793043014271777810681334501470407335100280654974063437862053411091729145479267911803754445785035930746188039787855928610353947178944521036229314570828060098347368084407340823245850691333272245938489793646098784998470099982929289546652020647144484260908551215202193767355821697764812291589688232056719224911334004498161238800122655544383531093408501428698948664863749270521170652325890176534401091440877683829514860773259878279453238096907329253493892376524692918146275210928094631844071992679991221902885953739360204658743634005155328370802808611749605666440086218910502572557573947806864679755579160509128371476939389033155508262150822025260507294965173771270960100214222663673481555776751257625113517996057584935649712609423085721689407616983781851027327717405026819108944839769359542212004829148074155373004530694415000165197376292049913562337743473387477486166438828423617258756231608730527150518656316740219559670308043927306356752987806420302646354387324571960320664357435595699130714800190797255630481482158778171555812012385392923376914646602352514952466078768064037815271852227220623069988055280081777967977410565884052938930173947717695069522913766660857258633559680160008565358245887395865694363697784742730710826070044897450552143349308763996458060243619082415669362779606710315030802145980134868417366828151708052923285079827148374881379957410787252510827590279882062115260573748473619836009338253809862838285392229457796264488288919781613725803477421207233466926446834474369533570477412708531664930911015076535662281683287917943053301061995088147343508053754560713766478345947168188871460925363251365832929961648167603587809938206858116390101727879998609065619144982825814126532891951160149227281576130045105178250478207097815896878889374761994933152375322674605464075199245117354597214565340885114758755868364687476541382195814696395019579104414149801397687785155144364436964610497338525947903500137239292187847218190209883226374136073811651335477653798320704497245592122585171758355206444669755684592143615571471151907276635092585439346139127908434982181961291569528717427132983861427702638676980504636626384955381194439139883543969744172605683115540989360111846518479619006987914775852779368013438352996675270092931586273720453266054931442777432890738308542207433346407884969986500352904972073858917808720172158802238046564804464641091837654453186731582981863857877692153265417934406578981819439776628507487995256764523197005928177782108451964619583433731533379143801640453453151567220008308005533552263331784530388254844763169500714695233664039081567834946241341866885404288390087497089339173808503187789137280220623433424086697334887086179769019877954336350209028550376490273439365651558713781920657858131522361709812760492618642570195400585218487094298983866427452805731120821309598948784731335712944569331264125341403452253487268077323001866053796619767627136062852197496467915790397213035865405434021928291048708585789038125965026395288408923087866015068507262106093964384276496892300846478786073626577608677025862919702005317446718605448396075468159956589639673794570483724652811131507811400716564027550073102808795968790651892200886450780503082678332979702257852859132656359429898043366519684746706200482607811205291049816711670618210811018375728261411113157665960171527901597116265240487146383787567991398834879053020474698820667568067674889654654441774696217590488322798087038233277676762352114793855433580449696818940285260380973197190580598386542285407957782834492905812136203542939563567265387244406306321801771306831411172541145039515271500779295328089836268552587875932920942167214624258732154812629162991840696564603143838453097077514957989796463350453359068669377993299654532368853934753961983246398711031748249181213344708909815035331872930469920422436088658889354431495766404972497762559892398756924223467353249899469965465084949855420646593863761330505718034172250595961162600638591275084235414803571975315969946542220596864816697548638404546076354822330328976531865497900207232409573589785810730888684801144237555179405854324729055364464502192284552050871713952153536441755690460616813270940756558122490448680223485245313380350462768197725488244071203058429928018013587129839178631723559624295526794994723402343410997742709336756026265139920526617682018243699392766115672469993678298416916360665576423734194131208494955790017943079441262898954294404449427485063530758564398285796912745178229529744867073168397983341239551927160030768474405991567486853047902199893343701687428871793733584378312455564942732179574804310810739855540667934951414811023503748483119553356273913791941242969361398181347674604695068725492746479059366078085502799282838001994818906724139169438222973188123605521205138181534404178807160231653107917763633481986611543735792082042106769984941853026819698129894274337361123601785936376099319728820774384483176689328654486096228319448050305999934301076404888890013490956037753416333779949209062098715442548289822344712382222840404368702528868667436696025855413667949720799851491704488536839286528081131058762492115387715661022490151958215833996360435180091342382654625524569209387475363303449044602658188748842508196147388952328588607694765564556638175084414809337370624028526966522575664241005941076196350601825348892079809814910034197262884015841962358802778391490086462727811211779911958523921329460208177673509956675206356789184357227433350908737568513694742084707265206342932213229373366825104394488260074866218033691607440704863914305539090764493043183466602288441319105588113145106763715418096806316477295035766308393629937074958569657356433900361294375364327082437121124823095685867719384870898337485409383213100050606279991018972521032107697324224384539556203639752036939142678233744472939998665726423691009223209980591034728623183360312310494921069836145333214866203972178442606940386816375794504818983507510960066345059251295981403620187486086431144177435428491636814665299449964998653280117893854899739059323852925677967459474590102792302175090300741210605349556508570991976552867617237426843744755307868862175302090453122431043883388927671351116003473495065043660394213352603499098437346046987174646643921707409026553430346998430853953431396288740009393122385544091569258921307095039754357334147975200740744307322343155645776061478775144300776037710531109702177071029910284589061562453582588798696318463180257679948942657554437239189620172705909675197440231053539101631348450391092604099950733995991710159492165921925532471796056642277721818015478351485539985798714406038310705445672029907969945673534882697795147944903293212668914908689424628563410498109291131838617799433394769394898677211066921491723974195983625592453194296997112423403681492476265065496949439991692161969493429472721485862551768372241190895368488673800489865342358543639265584096964188925549819427848918115769283947153371557097557653984731673672760601495204741215705809342017933891051830178648976453410852482718448722832837681916100777603059377223280610779247306103767767850891690478240607788615709798928372985509220055287209424555040763607868954363882541541575747130964443106306040721239088891263880697015470484757549302141047640437052607606911839628096830862704001110649555663267724988143606214807251098239154782787351786628379401555468379844575835898260970141035601818365481930300312850291493288397676830932777407346972959841482547675113526687149597994533487268356363558820880241775384313564436265185188218042263759140332994202070073719257521927330972594062862188291689432044213943226470643145648985630764250020549817311384933447452438433961197673589712937331731181424226183080623015537042512574766901666397462261255133073584651891740351619711041536622348215595833774743882897696130124747982100767537616257606189505434689605671609911854480712875336388676825417308701348395868766502165578794774918274307418347212266576102215673656791390037779445901510224591077820242869634074997659621138913834346245126129164831539771288424680683582873913739304235129057757683758463806975672432494123492987233173544919235264828128175351384948956492114359462666250212465639696999245077844930145044133778086378203493242805563182502958906703940060977633587781493782038966756601815751379457316584998074632523981383909516500888036514538892373914357523551194612164952627981252999783831791263624641693137888544930830485919338690002458625468349129992767456302101843884231541529184616103514172764425616577086048360217315125839126580116783215709667544015132104247845612016710937660636617914529625091480921103107041942657612564929683177396828520034486101630970150714993860852924312336897231550704335448443729464398391176186792434909885532873613787626145316601512323313058677410507960426151463657981275303293118766015692462832004431226492362550956852937528519298790078739924461114087373558738014941675286777324802050447999603329178128770741266719343354898385538719139889919284770811254288770059688624542245393206087347626034269402187792230105875027464391445649096872648302004043848017708277492894691041805136097937416816046053213671302839290424562378060544578363613107580798151016274430186586466204076449869483056323788547455052281548585264160384586366205190662383217356088904847442896777503095073784264416924675223633132507124213062068637377416071771039737837735166489169670454359252014915981529614545042535165777611507158114279324086686935913742850894666200417885154329248124305032748418566672038866853600893452011419366600789518734653708337561290182023901754017166210491883602908676370561495508573213760711408133429092728331831137437686883407604173856464048677482413439969867598357260535983449119501241824270609978971794248499442697149998555493603116520515740708757556190516680397754017602094973718835403060721158098694706633650483956701714379785437415485796152168063947988686050335844929320912006004186293247753650427678745774368720836004281458791461449146512658856033545033713147553946846267580808577878928886979592921401109254071215557563314411492711225778205173962814082638303952301765409407837859304390466492754378204281105982815647307212102857900304104036110817311937653883091367536000514136255142267931716277461806265274806524146201731745885999185870260333130739188618083393412971591316384453310984702098497832402345830552675301730124259047391752516605308211037633330820795065847979265950954509024899610932688586870472541828252490334246051530794611811453443594423927363489782908607678686700960071418101521003419978011465554453059002167327639254148858848794549035385826865736691022448032552392729963084490812366180489583547571074827742314322216836597938833211834093264496646368136215451488834839782280443689497764083587301401572634478171963973343882485273487018624616792330280228081997851405630979772937277597707061334113843362502121711794365314601481803644535339025653925136822890285582427329159879182481669578047511801952301801954703477100294877748200995562070572502099529996378787468054607597365611557829238475936436622772521087987283940875690923157341456468050516154360055246346015172947848480844410295492665798987602101373142415526294166965256893668272388204838777375770326552936301328077006930260044207649508508006935879684092011036547108720433637754893454353316312074109114358083723803826179141348992137222697468142072412404171521350184561479053534264812881936510795471693199052905383585613897460152445570763243435133326882372358691384570103012048891544323404770846135785559957624445701503507198529229462021593862751309347735639188252832227609557968459579688598955628722477778805613527541933096010220980909432778244777931034262701082460026652218851983912986072853654761045474514696274947469458349046984359141683397656308183055817187772186104088430509466964759912422598039234678179068404076346543873507723417431901573379970155154176266871910785631962788781464370067853810330586056370667373724241577867943671579815215640291921567531420918274073713086139697754628207261248406459498446184482472861692950390226337568075046918016227560011732904604968526505453979104147884491730125640298678521739926448736801093223235622239116222971248127710610840309745625762268682260809642356140490971188434482889201984569657148601423315685709288562273412163144495006591570227614741742845847892301520999371269351317600068135383543256174305027898192154155793251239156079204990923520313161791995332351475393396833794010932063791291954310480681117071929753818289586928870754418373765405690905769128136704929622357114480382318712069518416197418376525980667213320523826749593589570462361455057823193967306173651564454911010797009796354481075088816680078482287003392534262618064202607758163311769295774430200659417886120478614088354263755390286235420700563438728117843851892849503967427141505130333203441808846997213476613139138007758978823865781970435049413649904473010841261087212653172589150063701696275808538062083807520847053309454937321162464806270950521894449883483579199101326651927361182243781762743339545018871779146149135648408418219354777063219316114276839533304053605578936271292276214998211695762595548414415449245159107084674065991836646296590679814616731806540683051050240954082134480247216807142941369843920176397457261914623343876235625626488640293103802952043231093657396536067414146407633876757100402870227701358733088147221473193582998710552801938301634637192751110274830213170217100380136061597516791039672001380730579334819105010374535545279919059488018650113838911474081591682169516359926621109460072314531508025118785118931212806878076248498464775411208823045125193743054423865482940551334553757633863664633936512901617078407027595600513200534889495589992619205989188518118415146244882324829144092302091099136075830553294792629635095016432885564064102003803363223837552883606036215569753669284142335244537671403771175390242633225590365468831461079035988911118243017429484292213802274602651753719086278237830805674624208646117971477316520360474609341166558372625444729681897159032658671775635288702991303335691841132705558484354982941851843630148964538215028162861043326753374982984985471599475636162682306612220807238473068804426150286523542450814937334884188945770571994913634533777760062089612209100352955205538598173972635767394849208939749015899876813365982577239475169760341341365962250641249170266739820062316834197839972892396433142255924559421227660507430853706630435849840946602687939499374436274866226274238867461144547688544098902645048667985197466213709056089467313968631757330566872715362511092136811967135160764985638665582858033154164137895140802137096342165574068027377446743830880254725822537361883102907931515101664237269030483500812752108907619063279180800732927730912790573459219594718597071436594469098363491827771994841690895303612763110071948432420146409432977826612030808694605896594809448716280474559673111817606216877185931002538233810716669343087538016195605665429637101439326643862259739200613229105138046544940846857369994543128762619776232724442439161641192660523494874489490870286192745312505072915014160591980783658984492942220774887022998770581715504517896382661390718915447630773008469802901652869040393273789417611072569742639007527984154601839415664900138888480227415791894355478786076168879326729043709637999575887875293181289860338721693824843543602116625740959261749395028426140434698535856638136729616365962745517259943892775858127964124236264324375487473463266935738366083062417726602774260970379634427589454530614921827703626351063874695322953502867892216050179736576897393503857468155883423808092702421973495753565176013936323057650542481772043498443172950285911412832771229811805846124663036806312281143492105557281368521028691127054699077963254653676233243951250627051728803905479451113024829369461225773675444105831279988214959629486921179130571506633404099488039366608624803915550100478344318250931234215050140945470566635957847408449052871200582467623310313532441013023355930299562718075875742383959772103950785097106576391014681028377672297156731197119354457149844065206366357010861462915321717220388920738455824483204572084416166934569866467312953909896200855040721881644384489580957158497580517257051560395860661232552271564801487528004036961904074600859969376170731279684126564908646321082696953553510944578739806630494219340294168568786554616721704170256320363439435569532868696470106827653782656816299056734297502200161028614588555814939194176029916540923693034323000784039795714426774546839570882196539718690044810801323783668502589955136249360758972557990234655680686042713439365939456428563651885380822484785074839614244667006192564940199871664029203451319331159040995933837179039081401901979050610281389640515756491444181508532653183880420884740336944895507094710328719318905970821665464831068207576907202458911297823671941378059175675992701352674880622668570610664381734327542423421744617909371696739407854469241503402664018513556901867467573031166957626706029008078068103597782885438981775955615685374389379116030723925750350584147581833167448239995181012952639741192648378660222988097235305087942380733299985945176410122974500839428270725882959510408797797954052768067419761307972475142337191311052638338671077083272777243860430406690474573564837002744355366814286732198880312776889336407037525278991179352569501108976284113899255448219318540958369885253922067227257741282937140610961436069756686042751184421870256117707362624968075498713855823170655435906079405009268378631070014441338980295377302623291596415333356884749709724594185269653325480485946317465796997548748721774867993044312848755855476424410377667031670985532438347308823810528755833741503659671174018727170176269909443177284123417330027102691323438482072274189891962292339960416973040745766475574467897441017401349916058694572467478000392101294990840485915505379093261421372144408171836713341048968684876663038829062261228025469240511628688113666905218463885335285420877802820514912441631359479286847714315473605565013524764478104695862013966837485969238315170190042322841774705283760997572227194048057387642399073628666198724429910776846755775161912013909132756072607166403957139933863926993315442718947393792257134288147306777120205352348082117124499215268583002052897327059074145610551708505148348641103097662800371713001937349301901155414419135346447716561974493854008880056666094468877602316592874860069956182407153511608073101381428557231288946729170004648247189795955563377452224895983240165490308425013821617594720704959556225065941235073236355649225601599057900170510960358690221905196023807513443894480230740417428706659476460516406420039484898562309817505251876625970026037472741257013370419493157513973706549026527700305341400916967904062803573559668936745020295018302109013749742006627408574687695583329181434063026145967038066452151102993013758189470767580866421298768745517929476851051860250106009938430302628335308308596515940653618117993708873359158193806705257860147957046883779604553955749398681818345232360900928650789151360351884569696280207368197171468980460733755073235101459484369940451639435357999604571288999150170851785013106209306102384390922341385937957634582215000700559652575879179439646342922401253446082538262114375101032064040013926064028043943447937873580809735661100178698149533267092927689695689772681949481458469273542469635546964746587481490677473867675167659101604358225960620862673092408913834309829136552387498367921097159991803736357432600583069980844969742596349321140478406112202899257793904828846851014403794543962510800175170090439768355038771053155067069572282055646701248218506978426239188170364001687686341658861341866134751805089026500790285711211493163428793767010468066870783871241132209101049057879825036876552824965285904760736455891747252986677352622748997572145869870723866360087951058990932980339053366113626549769499474698846586271123792072334734845490322545036792530313774646496138950089268915767139223594439296701997635790983991384848992412954837818471043850388174166020332806417682620861574936752486659362804445513776877596964705485493530944939563062183950182701653861266781540498880758066252631432394151199390119005674516599141195056775184188098420429111257850369278772535077345830868199816934513826259809537424758926701422514627858424922256370468049341040696227915002916775295565137738117453637941806337650576180056372777995425430397784398792222404763715455858252711301593576001551158355468869698485246533628700944206288109811031779932799924023236814347103340200101971027612046932604601282900427940735677098489944476657631608360713312506875468286460326195457612168889472050740654020538206051507995474487490209810821198176268528307204614322589451008891195252470952362370628071947330866432294723406362537708499674755446126226555340464478918790403274761078299941850709971776317080506548340245899558226089561034601379946431971238496956274991985959141551533473325020149057844926996922826973737254344055142284507653253186101213779505255781374402352925632473896909532159800882010897912778106776396968963598970834936068153531686168840727684209114018885559417930460427906942522589278392280319396644079054798493489952604822915515765292547936113052305244226086218792704074874791013137249589219052445346346262910056826759826735013514352621179801386627290062834909214005921502318011060285242590016467767127822470654340934144164836867878252852249826839597636060149535677710289978681394545574560268363923861051403951689442997461674671189032730005429601150851525240169693053693040638710085625547113891581709184385168621285859560264946536713752618776859746983034606689555181615690843085970945897380141320872519702306863093855803678052557441566169342567614601433620249459722780716539637979153591042663952384198698457625113701830587674199821329628511652740317002376238966857372928559161221011023051282959762703325678129472104189635640791108563489185105529829386928500327443553374259993697921309384091158191085702142408792793836429703627471136020721064059338164245971786134205910661703484077805235309920485140814360051410706774651968808467869503931161071913854157047124224952116368056093080272810339549785377506360645828546789208222985252263683679458410783474738592798038721087938225502723223347670862883008525501951367236776526173802431295696673458027770586363556556503810689475984495142359185144135137764238006988983281967833081822021211838418287520095339859721516198002250716110526683943088708111835047892879737936492970441657195541746401727319971784855044817408467113370592026737571005713815871413242926903225253254069226569876511981714328421665163642277294720365438672309273660484738818931679920657737660844316328918422124805670029232144619379965963415444932268334029433309529439655706777518827679126216530608249844794897925767118474483427359240947711342480155046563316673089832054685874248599440350996086661915669117458825676185511928932596980533267663376766732964112584845764730777963414311486905389493773928177173833718899517246916866665271873831563507567243504755938142456729600937673164109574426590902527225446982569961638428641635807387167453177977421281560750673199146367961028356928719446027546963892580552825618270398555243238807465296419876804093743943006836824796080773708030335400640403859461702662934671946364774771798899881356666101581920058901982540223598296210910581816066429236097074104841876639988452703984626367837574659492971199370642595374735037553409844676417509251000042285452482782529201199266192842275610364385896493381873064526035522418367648062000494929433585951301117485865337639639400990695090755348086747963665333137749886320586875493230587614712914238127698496058629671715857826511112308824731664824470247607818564412910171702894143205827774364668430609952803444423110327050416845737894371573630937065225602741983908154653021109849097345446863606944711772865311645464901671013303756122861690203578362490991563723657031822959614720988638268239186071235463821039983403156377914404340338675916620701415055986422964643668924748954116087065268950388203303588287277684091725958596969597067212717367849152986738361380735930574243324276432850857515205985096322063766094947481600932062308156032395482514717059744290544444401962740802847277166107869186591970889747200916537077567094802898006639600717827509425350753589864266762958392671069016546350162981354979115101397551777171823834388224020724073302484739908342127675509786169356264689083370301017030414058890720291164348903362547807630452928433785839652382690764229438349068045130114913972522671922265700174513721418369811646554991291616820697313102442929677197209415491486400965207738315773958991340795561015038054582659796982125538162765800316370130324679268009364185028980839188774999869475024532247119898330063336422375313451701829905194186289768655455367357059643896714926016999778402768586594711040426633776064776179369060749380430990616970705484176114946882531395632751525084259959738131388681311327182659000712189489811360614388169199461133289377448633631337333814050313776925349214765356705809793531170025513186730984123896673377218189135345509772754957830271476505050963838383529758468519669373339778594981305938020622705337674427324177411267904072140084929603057172296948073276225136295068969990913044810194412615184565881636398366266422577682135964651523919615855039905201123910492595627347165671515166531600900426518707421713606498005190220908694710376603722974033691805205072947611238661434979537188767728687421339400874687617115360306483579511014087193698452179631955434065904905814945254602280459437576742248968668723846641996400505302368388609058232027170235013807864115213800103104903304914076689755108490057131457344250816089206696147825444500079538691830303663304674185767084983555315423322393874021977902919246617943803451146345238937592575153214435314080795166387841927737383717252164632164471807350360531721741390728696844122805768154565741830576694610004058814213891135198190579845154000798257706631172321270169625080989246416025728657260242160679938952490090698652739038375338694226721718598659199685570257820793490430581242118216619193748349480678809779000897569603421815362440250913488561792082063928039094069281764257090871406071455021056132307542467287092303587002425058718005218573528653307846415400079850224714149280406273776337206394730041048395260869830886797900346008568761524977990286358402944192340462697888795894976638595883681413171677641573535212098870564026148576888825846243536696319576190818600884274657337513151864099509582462489796347643105746482622602050152495066861540717303234757818328929426674531620012196762987053878403412837329144860120409866812132361004161733455831068668365381041908162280796241626783029875660786294665269237407561279271079467003160828195876049367842951637644362445678852380348210590645263211623017691204538490182144908481394313017200466651207508320856888139834960565311410270294188449535736887178312319899457247808914233640483793469241528423857009240517795192929996432061486184087237467364154063278748998372691370400229883038674873817173117406801884295153373369875472931908119710620208979339199006495476673395281265127638598876205366575178744674248950952895360630536219962479574127752027111672703879029658992075172918297295192404100944311322884314089666306680814125666319356402393675326108852781339919527346821892601105576609635448014744924748099762545834458852891312778416654196020011099259084279145055126279227925739467495025880372497252610966466722797417594203808668323556894252383504450818099954744322511100626298829101111581262442776896608256729527148411409536772630481077922674391231108927440926206300116581194432692469270674391819630137089199651871633411588399370041793352886813987423708034206498193634837775075829374073238223912092495778720867878693322322658348313114770721098642767338361258403320914176221990328482607240466907250451048952763334478986142291166386845990075166774184127320714408245505509609322305469292080420239157173375537612753907122831616075981033845332485308365269670543271844303681658953057256072539342484022910147333799986824399065524412832141676297416423166851328491638818114838441182696360084924331189694084777728297434874179407556473135191513593180969411681630304813355030433290759012908580695138177897770192483918285951163461329104387343386799801644227042936539662503411154874879362608881255352684900264254021933882934805893265781782112699716521560859987888259414785490836626189484011901731793655330438974211541927929513200199982544209866113014817407130047895853756879857903809411293572983958781572867678434632440717863976434570164841399907564556581443720291796216677850971136632150738222847974277158864184626939349934162562393374818989197030209876844006842251116459836492399711009548183416424908563275116707773795714741137566151609794829819619578566960626405163047371678683033386271660394874226016206863373641819625525432416123890547437339747728436495916695306060170209671774219911306007890163659779931206859243829750561799501979853822668261596201418414470252156432902094755669220614653848100854565581683254020963134450031246791553628124378374004845355105005622037827660645563445915726158315983300149293068203265696959047171059520326750716701291769233721428390440805588072320373404274373839841188368121553560717995431627078909345239853968099979407569626218827749291245374102328470520404332764385727415330521688183623390629774129876214592225147314407514671915496333543591407920797454933389929557880850144839260113552968156838799251596407308911295593170844188369017567466347598661982762425305994577838929574852549676089982901741112605009998738362710476342356066114376792972232681541024358144865417840068877751618953663660594468299910337410377977813232822287970475967478126482756033443519634554760946232219012016244779824923994807708857050176511576163671761541335556402512412511734682630965339188109061746715919639501121631478637665952964270359397057867657617427890752073873860373174256194058042509081726514679260662607972872252027140769318244544937532391897952952466595111371197403006363949090943613343644643875222000876017603372342263312302856684692504566120755420548361839429057857042731705937417558322131089530110200270179123893225913620196984651191306710399784326213897665248055217716015859603715495480061766596173185583560347542482252726142485688982086763975468337963990400314398807748097287990097493545347946487148093208815249288393820490878374927847368815954040514356596347748868698510239198089201567523566548014954774954450558736952173838263302138710746886652069416331804512070132416175284434585856704637649393674472160553275916345980672133528100521540300121244926195839642852368017026644803930398498460369830135366719740710359814339622311245782849155251335396429216487667245814971429516074295753495995150796003510251007618041580479382438491041536338466636251053190537123636817997590863751102130751624581221979563204997793598042424899160504475195581463815998529325196668746205001617299409509154187174134105040969205159160825957644211436806911131360221285864922743446479474545588786563192543484920781354597504983100874575425022276581914208257734119240292968405456705354498375934274782136291378150721238516366868529579405570510091676963605503507049065081981917033171324839864586687060109067925748271266985793700864124483363358126888409924082366968911540404396223845132341125464129415254657443652237492133814277555626634495325262180467785946045042363503222074368765594042371731567388430744928739891952146623784408480622743171117930665720935130338353859265492618568386464066927541144561619620556302035605962221156731812999851686052326804258689650396730205800219704276230979803690123279092393073081430937767486525696379111837601368603405011265436916808741048761423343824858422123115834465468464169320932426784582599466758822095665494486689506171937274007589662055478914763050979263627641088897667213608628082012876167081855571004700648358586129679513097769835817293289798523440897315413772720381261171889321247188401989760578888854522587672735364494027113487729889139809660203581365310102560590113356012123125288648451463215957828562359836474963406420830774502233414591617920934087169035092434796167436763193260752718015909263097496703095424558983565175551652240637384248116318181881795200154036556070346618032388134339963563940463497298122316009397303493731851715709521890229409403015772099664996338514265151978613743784578750816621456371157561561129992055412181841779246372461787888882317289205237535398189576309837545297517950142392361304899485092761322474054627053189767765577545877984768304146394169544642836778040236692084575984053482266892574610144091331032067967162609971422724848377390958151836537946603017444768756075337381478607072786424455682871082035241350960952326227863988904265554786676382824286508827187104584018622516671802755855268096398071263301317806859471596624643418981939303995038150675361338401324678153839820291555316195595034217435143341054807237932767208798060419818434915883591944894814028425364788547424932343099282257476154680012540023426960384326093672118133764186568815440275760425613759386071408341874036181609722094162259493969427529031381876521496508715975909673047360857489266026555559739263509863263170411054052667559990201618588119223124353177690541446197627862033280865421978103811458619214856635063565561912579493674881261285915884881431778932312643927996686017458551598753754204171432396474754223445028554319997440482907153995771325647807120750282568562822283872532929880647170451426818207281186405036266407738225106948883572715748951091858529405074105089431443992594860508600461430079784716472542984823421486314692631762454767361450586210768369316917413243463653618162959847093284331386662176608230462123299161100587387927086657487864721713611884281223768303085220747950772702369469523234432687724214478245511213829222183026568802470428645104719383757300215751114238325264510647567289534797296192278652440879314519034161295826552941518697761503511030032244879755915651550986723411063254719113195278112210927436921810987609178105112441151922649929545325654694789838239084544442951878436911654305078652371538732409802340246333058453672258697264826255233892517505167088950127729453559004693453950120290850944887730294265752099087402237513097101847129954135723534974269690623537064614663699101063040131107235869346431566950934819902981873184441484239755722213946820614485060714412427583046979304083427196514689306923359906198799924835584045533253293329316277671429412991996692033776402842941499473481087191806770595476167974064375374189475158724053412240514903650215699977708229873635137110653422180933254321795345943990737550138554161574778237750812027674189482885439811381809080901364791623206978935092926408632657852881978861562650488048950716948160149608617366305256212291571939510546966823242252103837432836334251723438748259200634347427230655438171390069654860231827441538472571525916286352097436016992867013186563504545453245248485197593733773183350867610485056966755543024279042495786099277723611724229950798884991079592842023210554180159849645880748059880002460308211827008267896814271328867010398295322481813200537024817921700231441278601299110287176068585590599032073374367412446227726334200020296094712832850589011966407627396864159918017272652532584760755024959753457998155640453899057725100930704868709216577537016767672146408539585989028371146773164573478123981052966940568541343631026521965812872833365888837894904418406402087117714015970415988339007502400530119272933458098655851087997732752522648574805534632695756453961554438045527064037889636988612742551324228074106042861826250692859167718001606308563073491835137248066664884038844886371348526944671294710718060628397335265726127707670184109586009497367879328796565211280011518839447482295949346089756231614938690835709404903774276019364781792132274489920666585908542767494914752936708085919812939922204293378459986512899517263960885900032877606028164416219184381776295792874903588628357350479716057442728564313124656152938034953116318140343894324729525807976294353432477187479008260574819990819839005516435099947136561523610162757451351105514284831718996921370204462877022362284566779106039849074167062863182798068314320999013690192036006559019247632198729990348005695379366815151755300326741210301131055991533706995594019466531026057388741592469023896209072708658902314578671725806510594598265244413425938552719437681949649692764172312058045502117443311614695827653217768868413233539673955240161980153885342115308274085858673006568723840554320297342616011826552187443266939414747127466589683745735964376648091965489844773212636586732435427350058725195537005658305777226432347274109987809673276587799731600486186485086958415771882627437385953379631605367943849148990542065153064195299961967529815173400718355886933890085500275502003846375757954705249295909097318245120379369861463028606634367189207901270094028581321102317517936649203760938431431067023050782840283002566171514744523256496767505752706445353885414859733977223023690701205876258550291125031334358402769856032048510053415804903642307561394348064175337447728993842693789181891049567623508755754095835898751118106272460015351022116792913886338130062973690415945860376598941199624005712936981181556677403312981512140037940439037671352984941398019678703890426986234149527641100055899704866980614535230817451380819179823231200138745478107176136731342697813963268026743508952642871905467407961486143503688668064117032900416509515523952037046272404436657647019229052620402492960704324205925263420163081538187670573396331590738435873324608230688697798783020286580720148177329998298857836642119183602153447746614585470851989739208276143157582267192614758119737470318766199296508028158000163377526332065453428387504215532604653068639000962478909856767765553316192178509442964734116270522058266367914372418617886209596131440050918077138888523996008878199611578500202819633116527619265518968032451164869057685075033751369707679260907335275074672691558210453967757346287487838882005000441402418003748216988809525968861318208776031318592781179669434976469561744797473337324943067371015155487410014644692788732533306824479016001223545406780873038449353251253194694491631379670245514171837475864430788975554259868124515857199434308190799878397762579102053986674756424455139199703165963849649563988733101899570569931421271989309608815313134825636116958257036705298936994851736698550591332438916529750887788600172449297935191129045684361915444814011609808469986737573638395269921492459519610805423428718425837553516203921646188481693310510451274336931387417429513192509890132015675642976676230862260045773646978944718289417859114401957796597665488026382918158952061840223521613651130510612925555478695708858768258958233533519687198258799140395224819187012454112042124464373101475175354121744175193026297254005391594724867195953854026141616070165391933919043635546187728516140564225529380918020244365597942588903927394351732755484922937965230931147005610095322701549050645286513406540933832593420303445124117788409736667723357163712052375248896538435400696598559983633300537190070602051820987424493864015280803976413309164491524317228528107511653639880948756705245852034679257936963329100413706241093377151451830242529278723019056290203412566869318272923047906655976867045237927485640151025052662539094137768605515870816748938102468957443383191693016210517977497441753434776576104954124725607780202566321211353777469805072566738751706838510332391702309845763864427413134777212288226152188109968310231810617258188591541514264127022481196145884854215340525113510109055383059398780205590587517920930032036562162811328621804013481977191172110669079834933471859506142256008712094034194650073960459385038228402366023049731832405541280079029291124808733485824405197127184828469276713398274150966364464484602695970817802598849411269722442575101314430180049014198816627631935239532946893182761893111624813584146007496941898570403845835381866923152774328123094214817964520631680826343608265485024654642598968425791475737443761875182486001501412996744935536636670538828033900240042178090812426671932397561825076777880282093050623730968585081425583405451595335843448586572223636821448651972428568426908835294345470797742083715035971196410280520077607055689911511407433904238645891799327113000806549348408276247737973252747006969954710669441949905875517916257574061764068872121001758598255285269029955990903093080207621155144692634063656691030740293161095425140963117481039136709950471257489273100839298960119836018149922364704232692459803238403298725470421600060199198251657578329915872114103190130111885051970263693837839686340690903695519138426138385028475491427129606136404558498251403358211525643012897315698628849143131735209642437879195521175959117775404860090159461832807177078590943830835391895150315902546231388013624160066689594413563581560973319067526230359017913077778268331059267048515855183516771193053237299780152641607598289800257245974154079158499869957224048899350952768208091599791101871189645801173984620645661734806221139495009010577614307190038603712229332275339503110429918193822263768799404970179793502130003900105525715832529584632295482658391349072728828527563808825903992172493903666047150993048799238231361836113556475676355894203208255821712259808370094827454050728879220966873017051003985395636185431659797123923175456720477050385715563613888050027677602647286698992972506266244662082212508560851796636706475769043319077701816331866630782410912518386219195424208249482720706257079021036456840050307709110130108486152537562224813910134175960490373489406404369065784490769153997160660187280049953235451442217132710477033834554941010351188617381390184937559857290169412935020402129219393061923127404909040697420117697366087461338929201636898566398507576545975803125881066697380139512864052367429663959435009342772879603848955227908091615104168795374724221802449765259162153622529024895149574257770322732070681788071848334537819665437389873590898167380103722855092714652823423242611558996324759826812289118514870988247593597267264751764584888787407084251541904334840501164774669587641087238372193310466335038552078005557575241695087662802641777114746832859793860013713369942581895651503803279852142596757903177525549532064272188318942237597065498334702125338302409241045028324859244616108588322452575215794182014747310393158410754014562220917415694114888277333650381555701807964302203366578529859040642869155373333753173808540771238269734427232274753785486377016749865524537253283490152231596332487706831203298566301678808642320558316981900653502697028091613863037744288459877195427685512861149445938511906914163196390854838115193045588973430748449244208711184697960525043437527829670613001613024838894916791987593817549460269033218538565503276549380698515178922266718817127816699999422368020004252314576897216677775080051013392183024200235014481395859110049686451928118322136579455266872176470321407486035577442268151574172326367106596876570494789326783580610093912909940768018068818071006523717116445728704496607541293694909934161623901762057272780485466206693667515091086601014626425737108087568518134313226266325848018334963318515980024260928851369487426175645515481105184882907088785708247635471109356153139305416661423460248245340850750717959246625308519539211996853447311829639173225264792894401772850133634968334771158835301117846473944514809264728993098429379250195201648333916960972317412442835501568476827891942064296799452196644350334712601261393146358270354187481817433548673364218280357432114191948232350623270787771692870767748016631361413601884643060535310402251631125328315129888251482889895652655280211204047287205092035552306824836120079662878121830606939789726568417860836505782051190809443724992748325595568242766204711734649024817918769335263455084595498101442071495932287090449941376524872374200618565845899453448669309486322972173142403387450648722475270666013919611529236490290104991095166408750077615070115501015897722250546056505227665928944783098683482409490097365910469945779555753138364035345242854299757738527609689244928395941533422988821566151713103477159644581998026100732516376686093443457793232662251086268192381735925552923569421717328196719920721144261025253116667050471922619812480831737589688557572642269299762438564091552352560251406548140244711528095612976572176304161054821288210865164404071770754748811067254263811383727427174085906715457182071121318186531894693911297434223812889443933539509146641510552119352416183689056089185315141972926400860206555896257488528054028901125349079878584196875579328889239625511672407888713669881588725510804333938697671000350529611748046625104835390427501588904516503281708827886194429611893293498859032338725662022554945180275741809932104252070153084672841038030495932307419168656939497299737153162330831340737445345774761703307491845029772868511186250270951442656702989164122301019070049981613440297032353827527219760282536370269921496588812838334312615466766581025279423082371331418342264941153977474193083605829563030722218000511447878211925538164591145178303183846147749109067696452925159150554645254390237119804420445932706576451924533011842683031633902740245075070151704799187423036436328312779371792414781241688181028237812451834410742806638799189231481900568936620663087816296107981266390805221037076647777088014423773705013083779476382683709213144162453123149699420948648901936721293858724946758801934131123050051739844709314172514001094733617318420525168014582524106209205628203319246643365315485445229983251636831921588589885401953347861692977078190453266204527388276702643021951446054654030961676676503871125215204994624617674667366777888499645494563649995770655981933707839695109613569095874651967981356096760171308486819292940984984081637660345371590796970005639895983908393694360940277566731278650484500430767586597295920554672626170665000537626903505167786619256563271733327498931379699105984009245711046514506813132286685472401802849857778904539648675904330267065653612153643373356092495920999486823911619750580320971731637949884985617989094667246314580853222992702341498562421464625920527695183187317839640421664243656050785638787032883932585326445402932720487578545766389556780019836713176786126591175535589374978024641505456297682990664286954368307302780046615315352569583493528062503942655902493768480088173756995076044110511341974115567586631474512625032706811035357677248738456813970625790638234872201364233859363233035900484559618466018107882782496128744645524680432273447171340557410025495577488837710190387220874988021331572661761195038625756753124299985906497237654238416093929087418954480661014204732314785359767746872389106942893499962660796571519713637863027234854557398130493270356099445880485025193682589133520975176506340676389610509190670341986819286792937748198695958309937412213030644447951018533164108045738937949091673297295915355755117490524341878539224749052073090455896816061467025508627512540041407112105043536614662761998581669176370799385664192628070666056534442216702514985488779736645651036973269554810751649819386044939259913568739550623767810748127365885070673168841965795837792275920751108061465475366545671480782940304513843274666938321891822830623349300699702164592143049232459625860281167532488147773015727999222586183162253945375470847403538266057107010108139992736169652119772094492512703935690214061882585882716743235588524430170134739166937829005243536271675051992787464729899485331722631172590459725736310922859711132584902808741842318252355936952313668135276103630096896737989680306680975864545600013000932411148512301174049591975959283352623202508449698664953898859228838598696303613860908798218064306714435307831142055667132759397660490894819173347817359050614928159429173682158057417519653386281692754776228122667292638549374960145544533366084229802369726216700925770219780367687106125589565817333037001645692641081994592982603402096726740873171587690807961090178633710445450156173753219028132643527191479098466520077120402259009754846715660720000579219404121017144229001684348280466888548332932406700877957058569678320022476304997853220256781658842353495042188238402211076227688497869814162472185013713067218056089081460751851483289654518052614491465964727570948370566533665159033705408860421234332916610067481537706929829900227124232317099391887774090839214779413873341545974069768284154846521350118865117745625700973698015470240353809784589351869513354645145245600187517889493914196989018540276983276100235962097025420152700857753373899325856611996866073342805295433776855832276956652974192338922365890835770645056611917651643612353531751017138814995933619677813014557107877102260623543670708474636943664322832036208631129073062179598037264810581469700469227757602398800164711649671997540910046416984180805965477065987234062209278803652584431689735334415147405532795371631429844354941704929193049094888825648301310576830486323231344852522677022862788190413096239667928158901482505910044386532414847980238123589395829329757519121348780016666238626789955356451094129173797310236470817250422642748864285030736628459822472860970536182796145661010211697187004090486520827583898673773058323604628977343411831376519426772038793687205555310614313406388065141009284721979167472412965945113140798084013920803892928779405584334687115834269020562093760935898936633247773872030613942797265478380811597159456577986790879059639905179226923044952669727676488414094227693867118942974012216202553565290233828038869778012356417446751278302741060397725080253581318282826723081549805845248071304630695018938205504827382903424788216259584414534798903110644274735654874926355124516673558566842685687484351787031289123364860567378415641616341872165249904300165348423355543499613631069688245341715989778980202631801332090962544357151507479300936960479660856912291450504950254739586703737550504130668003940894007080162075037076232695971477344927106906700043281241901161628455423002344070922991270284099923691309829422490640106250728180496880272535119390373550866105210723938462913648946056236234518072240276287756815661758160210705783372847920181732545157689612586453664981676009981031992931742148113404095770696706149557181042343680687951482174659608975697700503190822001119887094642127752753097560750916142858892193196459235912207016471527921977216226541503844432864477381170872513119987789414613785538947169714179733873816049962038929002448566854616844250848625041022883913162170959891929492929192741745054705894023732220018268093229889125709269793849252008065688370087480218343400189381778089319919737320077726033527799725506347513381094732660415030318789822978969219707964560364218634079782058000472956851625057187792666059803166757191779031133835595575682477296980900701797030352326450876107453177245494642267867714963548681128878258656565322734325312519951950355637141533409753765035742838718732731825030680387175052476833208299257295422212496860659167517139921141401285039929619406421583833868427314232494294521738077054887127703332609481539095624405818785749174595198769592988908485640687068034902792440706740087494806587450765708068326888510685673405519941282800128288817504447845828565921304566006687510141265669317214189541198841998493718968359880919823462133938435158191152509520697747354444144395020675236516752297751881609946442324914387707644938141503975885332736578544110070012886554398874348786481425899113496790344732880391974306761829513064576786516538777746562600046626805692087140897179318901559060064647071785806463910735073248862026770610875762908755279378538534446594741720232465413360724527610409374368680240693267265110264486197773954106286998112272336924361212140712002153835781259040356755953064302097993234430746732034636724910406160056519947471933672605038898070754464532124399819610822540882088260092589566517740256183995343093988493577930024061644967677637786668950517676532679256314238630935784816414902751074486883896631914971964368420683285938014413493029861855578402796933767520879846659052864466899303495383582703293205627035086843883513633263727253909002678384910849734122584210281551268622549020171695623761576594153431388368027732658625203143284236964437461188254088642376782621556007094752028777812241103290042970829417531226721049949194895507711368329409723348987210606335030632553084030874940027524921044233832290903282033687939540978156470035245751859773358453135266709842579930682612328604072447071015451938488853653124866647533901010059125484091929141083625337098787559668272479952760317893268745651008315317948751152721841105344396805849198772299273804324317671842644172228405796921954693224722826571007726766185259303509835740782354128204215243726171324932259786950107428050682884794001031676420319926705030795626382190777514677970585197151049942052616153308674597429948480724308333125097948250717243468121380770163417481866194861282419024811364522577287124058559740456544390545905685002499758836326006372680362394230297706627815594100726507043601490889477095778995091942832976632500751370867738893176420302126480851887243580050907011816881217785864916433914129514476332047284251078097458871010576174350226893436916709118797006046855856765907077548980571736373790984293790428106739433368789852497938372384715534752914341431953762497676011663736185711023620576640175722042797486241123746282667871512915968546517514762942107289157043260880347617848007836530242706517494890272285308345860699157274440929536619185586786039537790735965096143386891954580604025270489464609760232207773276981441446529464307381900657252943970567605542299362323871134079220473004522339879821729703514384952453674110274543188349159341880040109287967062771777049757063989730443405034034212766685244848463025465377430183395807114115565239755644835246191325884403138901372623666893835976387858074698147795793744161726793071680544260677505797852173318547375808113168460312698350156289066085718773267406322078507082831306316890152546720169970746095931899290128507593493137792162489818903311105270951483719876529076587419460175432347095404384181996764927615639488014040442790949989244695264970933580593793336005271120964802153559420085503158339550582798351611505096634240870510252458795010053066728860946163566904338739752917469145326524804310019451354772429739090712083020330334621606574845040473902436549176738395925622714870557778515327289075784193589425170917329073235406124099321855869221938100010803154167413472728175957076916282410771734856842509824376356560852144354945573893687634703367174006783910571368420608597037897689847334054257020238753928227262309292890790605667076206472441706870600933645730947751703145962928144013234417450583541250129636847832038964589429442032902514373822858468503407663846202586662085893045371578119626253250283383476302396464281497269176005343264145078717367891694986015987409880175269206478379314052496813461801829249375050600073700977509224441394087746710733376364798274823964611732308424442942582894994272543036358543341429238173055510045085168002088101652140635962032948829255650791179190633216413497379611402377564914447586813780823590990394062842569674701985129304383573956896719343817809985353280980681568981871966230000105480761960242918030741454513607008549596529109263532091509701260072357953425852677980660950379445577729008765561367174606208883325552477229171181409409573149500682537962158744630831656095363815128051250757628022392025441351225697008303086151381427987120269778160879311526420548668591323362487985087060190811043146170840430936024914716679694304980077973517718569229689669993042466213189867285416013845590368417905383439349873294071409016484579679348763543356086832411269318703699646433147911289236059653451416117552510856795822421786888206651334269697884916564986860878933864033375863686605200598485803891247533583087422774542558638957401584917810171332674062123164125499290735274581211143118551432354995112128972424025548068796455874329144711855681248264554962108470976160045131011432111247324326792895467922025446697787614662249874810775712486134342974432346323532447326315031287660804460340300536813474136556184915107221079090122067446188148499705940918207795682367495307127363463955282658823507395138577876644858861376008796626929668724579175965812292354501024359032125577985519561893269782865022019645009817184413742801274799203565808346001047736424581760608185987424427447919631867312442852302685531069420148180888909046865780392103144523721826393435150437377410144565998382315222440313609184893134178594464075115971123190719377820101125911263193284175166080317073893165368264842039473009719684361829258227301520857408974865197393403455400264795944385944361974209367107720863718963647841661350291968504252371193444955668273938791271905669404777462136710701977335573468729465633247248439939194252067508985984017185888493512559696503518858169326276216980173554184458077749983963335595228162162885665837747048690751060539161429612801668582450106825948683443820950826535010514937594013590218602125619559836682007551314996713538257586513346665013027119356930068028465512706660218644754138514151328707171625665941210288516245439956999438302327793923224774617016046722407100849468796266913402760847518565589244394291045300337613041536737950099633306225147049506647528328339003492508694144848991283293969045328654724161118302546895223531679538691833354332750871955259480681386446335225295131205463531311246716668843889398044319105537531637466696930550500394646150802583327301493124541320647999140742597487085934226281860825026452673387366820659870807938881335167279706663460760542841003028501107372315163297928329344423686634533517077399195192182876217303748924501067622779107829356859206297158138088517653261410671366766594446369426396567641516688488180613170370277878332538037109805401258521417286737419357982396107427930643031622251870362994923327422244501299608359039499948202191412803426862943609247553683787231130588798049511653980724616779447803135410997982577353300960587374603524737491401192095884192685590038346536573455022066681568544825977739572721057552997986215677444336860613973062269441242251071209460703275128058559669584387391045121708484326529530105265585117195509080865774953677260503684620232215785648482202808954724615348057847422892809483484170605258270638022904755025556907217923944741642568155726936393498451782627624367703663919233202999331416255724325954170473862644514071249318725250540066492629456212986033833060645833741655308094849575147505644332866191252796061429594674732482353947270726402115329751667529924540701608580642176569228963829752629020754581343689616250036637224878206070633503511958262617856549968605150062745890937251651471312846357771501554860713905171611263501782744753725999232447991189067318815555441772745080307267664660592266701442411270872716562540459454655952003797700957639554674833636871041404635986380131201558089236572056949946601264981076429494668328604405780846710807922419768160944801385110454605992418373690445968474102888336030241526626023730766199699860794934276987790560233274088361121090555392389101168387856761236741621544441865459719056274319028944852349890840290175552507258212957924836071989868710578582375465039059016075766728491872248744679280753600135857995233390534972438442907393720286730886755180933957273801888842593557726585679846058366360431241009877656298877107628410711349197326265065765819367915441650133670999791283476115831107676970510154666213083482327375263243023378277712723679498814758240690786242283316045339372324492685910910205426948377487011893267063822319534262873010129888157009039561089189321729614342832157186388027077680572400577208711171162400803025475137354208097859924370686875184541362196478462777705233977315200547950559529485179904497264720135941305408206267471781123092621897084142886365360007058314612716682738073374367699806070626704771877827654006354751761489644126772847003280004643861903532338763156049447493595069727245726544519057606612567004767141901180285765024126901809604270969950612809296409646279690862794201518327899540518295738674948275342093931732406369091466791499787684579539615483255511668140935862353465647943750678944474602054227263736639077511933082864586816983512557659156829458002283515885307935404874233825592976920587916936092154267103537007660904405375793965030118230955426432158702657572006299627525765729727736148682746302558489278711824942117863384156901790461612214868410772167620238418579405381621834412681644293868449820935564950946039544379730903595081237237329598289097022142863947286301125933520021017118629046539871325344278440379496492960633209412958736164309506227478869324613390263780200142875511425850833384945091594540861166036293309587031974201348879927717462089831076360763068315167388401521612035854689922716868849071972929806353281891741466408699221694599017077643454851155743494118647534480146773407512320497800032211990899796107174603506307204676006536485876267858286178025933307382869919050739027239586765006247891033034866437037748793744654098673857144996577933483352956207643852505921440714935571435592625446615714886648770905694480178664408178596282114291818031922013230575968811187590736883696504764093402326474665045444331892228557430816786080958995013332771427150359069595274671040706340672150527171036779734234912583490445251947329012545462449191971832425948998632953539366924011994263391413242876453818913459851882344067202153509337043530505545811985995386875276612420685908090465042047568357642759318190707130368621749458806807499532840327431137960093434032321571999526907163069203653199354246897548822152750678970731120932670766349162565990828357989266821600079744481178665945344068871021272809848257828879918169513591374506338059613318884228374803507617446552625001963397690657944215408170551763743913475681425168252408674362385971106639252311261946227712605462867387423595218262279523730391560452653007800140012146940999172933176728775239347137920978074765133510601453413004214087215512232999592062883011547144407355461327915479984549716420325831323165343688840325889644207602306451844577583490912642912945657078096796269887832790227007448632588632160080837947141620350540700709741627761741904638137104849682655863390247349177799616953990558220289879784621056613042494108601265983563915066856373192686140114486216592651528379117228615386468459876047234716866882977266553145561995992101651627979349125772685744338338856957831348472539645433059225741294097375110945627528811686914684046642862794492630087283837591444408432476498501725455368685940281293907589858346303262313356998116235064507208051020131401122182125043813209310841131154040845045864606948179781779249094556880315526344190917752003876017891825613673393575145230405914123954043151655012287234187019912724766020301919264558967553097254186354935407640800252144281667057882768763421266582582092376504766068698489194735072570488519272053697501078798855966319994380163865677549228147186055804061971564228457890484379375002784681678071901605747857648980838046654888845396676963179955673646389126056355972750589594035853585577787805135160940687957628989118000598171503869107894951154819069894387454345492333920701879590429188163785849831729477041790329915592451588351448844363671049253166626802421764785871347001929451835426154825862643572073112059489235593963827807366595300368283776996935588132623409848077396145127153213107915578384934228152206318659437497355814745656036134114433023304017579086690673717454545682101431564015387304613872476630978018074487903544989453494359416486534620980181327546631995937316641907770300333513808391991860026448704766986711710903955665315941015727840179304206011578387605471804737975882094928462020736111777171520603714298031114413280362724090489257241431834268560938163998291937805239942900682313122099686870102380766126962552058394097525876612840178325733206994815298035484871599122129120075908012493841904118719238038597426389058274813397271804048037012541491606222940039165700133203959571502507834958534581290080189176585122635800238244197174302156970690413462308145279904226544386017982099972093930860787881872200626037640956273349228400949548142856165926388427389343474214482855750944645979396649978524151050144502609380047952300712996792287684518750698196518803865672301528891481363752778895328132570786061366635650812591396441127505098683507375038736579701044835958438442273041681582869544997512260916487909009789884832977725842991749595467547369738507964278534897360069716569701767238231184579151804049513236475290349851131375620845774422329731667608769339741115007699415951636251203906385360664454538202827123241863693624765795985580726029029714784274707899828246251997287369423288937266190781583767275901623849453278553137225811614355290065038893943816185049099570419078573239720851201611385349807438635347648392623496940881252936667072477753864571481643756159321705484977744442821135095930596006909719629221066922975300316351323189105503566646289692613787777217409320289043847943068303159537552328748687472013866159070012410430046437326987263588698039961916677277073574265133951420567011461664286058019690259828664521055086987018145073545903698767052464805075401279943895523730779136703533690122247863368292444587536247822693802326795966590663503890420909916944900537504262934079766724916316638993291835648605392647875462811757852937006468219094679324923995204401289355157715721339561201506948235665065949470463248481468251198348331550422253171916498603591121395145262274135397931187243105419978225303581050095504824708222144586697866946533068979128386465854727530815155805132643615241309882504099502947866595211899284975510905847862841287269806113377132211093886454064394679247339437454733940055785672820682372871655636195918407888697711069111981976616219516033194801674466935539411203153797841777682783830082458520084518183283587332327444024328278864575380538714401045616698702726129784953101978077491274861080203628185886682289276914584198424987189996217887753902770106680266941588089707563054173529056031114834500451956081268860125819375577039229595304459384343695768628910535442969297184066781578574919200636861276335150756725149628068774304320342682280276835462838729426638825484577433065157698899393103584035487633606572808192767018920092835554521085418580384491254636156383556027522699269110577672917323718801119987201803716465693862910504517744253211730435815457951286864796408652324064369960724634804638576962297695793940962825166812443095695617291647875813144325670454033783802901104076563215300344460197452628567512041510064413827710657315126498824110604954406592478475510006481338890312607946493073219359637463859287099811052936349807728380478139443971336968727011116200900180295920940242137994463278897538240898854094850013783546808308017129230872694672609926360185908002738560909326327032441178014429966719842894561417333581510877045086255076658971227802350320241799127283274316983251594756698248544461612997726380946648196038136008517173045570485465389375680144642328169257157425957044858546926546510256348050708046268358348962089469603419650368105624885033543134995627032360232180283170882074553971123958136333680044329546689638900219159270715519219980782779050453645269235428089266756647334643301471008523808548181148904122394186976491529274579051913724141428714800007899475627850762729997075884803155648586034005408504943036226587119167984164457469458343972220998108513024771062673951312708762521866543512053251484366197407393038870268906056684046183034043554935462243224091479525483512297852778917205691952240961312411226370971118644075858752184130095850009907900396189870238625119452824320260363600547523703916822237538898176213178613623387080374118207395313299377295100411208359397479031394579227909757562588544520211889205884619461994333941916443998086317882968943358702242746705831641620579684980187058957923500238372545296716122811172972527740837296325140040752619290760630246209351108823031390216932773138664291125607828493916290276694645776583973548202362075896747864091017004165889345062059974433830633217799992727800264357775242024248860283367816928317615785650629620942341828871064637078917730992139509482209376209811636729264800122849830559741554887013770370706857787605396149078608081786839471306053302549172740877673479754331356720929749968240872728806130801378178049722645389507371156703698645934649888469616015472567601098984766160937488240569444832531728991900867568355978278670787806952743676300654187955170354558769850107706634987090089998102576602926215441125450926130240937278933946155898292021757067151891336240322255475279445824272829042623754411340007844517721528647473222211126140602328760691934328363670411851307064393937265131277092581965111207709999156295480389291327062335210022275170070921992070622329404807633888329194664804688710885041189733828957071694336304869656395978218114885920054664626027253451122405380526839279975025437526391530763015873446388884718136613899948570415192754007272592303053992406049574051710884163888161368500432606806411097033300816211390865694518857402110891312999456241118471569171053115781724019359475859252963075063982257421969581460820876615067028032606959329105860539293624152539797965236820656699398358539190901695782380556097363891843354179969514352957611812392384724300048002007415606497465353020018198664423183168424659897940871530778326539414755368252643418187611076621445051219593687687096949409780729949203588652040609792889128994583892829578088487954719962122834645811855645107056306262353602767161785255700362187815332381301321851655956152026500087973101158859539038238068511414889087681646620215812538211223634446915946509930429232155791570626623601759470796242708884185657320185950602709420449666411022975092466537999615233780467593425503696914355992466296454018439249156805958464218909594933631542311228404232609794604953812980747144445608634549545389465253286666868179000578925814750100533740772439105409600730584158404598125784704400343684950401515924326800447686897170193077075091040860624854309366170053743482302181092005488276185501658117682616827427744762105788927691466691898295261397296265913044495172325810646183299016176180416199664626093215503792251309892273989861809593329078070919801844976519874218425761986857044891941635439626226404253194497880949290713705630649519512702182542696243867327898398670379642565429761656586918820319893020073116047146517223710673776273892238978907369911101531409185499775910426026494581399251558417672670750951478469451759219622451257052046495241810964094805448960406984593743549495359152545801252781089066114399484613570853750768189540806244721219312481491905124207302845192488057933049539045993334185195019150803403775918797936587153020504795453841249004283023885920349877966379943682281843283607032292385374153359050592332726043099617364425704942611357733363955720757565012561576858197251474932096270837812481762695395365065291236088831723773312926651730422402946672289526443167005843032043358381851093717655944978109744529580479392856597716914801751928125969822449342580005569867216768982425545013356077748133702858091993213523040905819636940232437681130930001525232277735103563710528001867229160496367828534879544031764377884613557915236414417824310744567214134539405195752901747832975242524108389005198428691655596762098821362577143136612621738820991840624376573753959221155086605470963511967513591206475004638426716200945976585385757512952945733412064388580897808664484878991037836112292310520081311116426178787678462022197040979424251649474132502509139907091442039411362696084353197092879030958017584371977853526415287647868099062123807960223016878206662397503614857302303305808417859046286951673431858846579127630115130626120716881815562886482444389424104281867002948805795303298397147428842562785350903030277057025117024282690072047861598251984553474788437172940490321903170124281124036487676763419139336578435036239216615254434769207242620172024861558885581146635376726037380209121267654393977815777386445171022537299075731078528570718269490561236044966936964576070146399209088588484883212915949292626027867238059693387516351576606015659840630150689768460829122652193744457719929381177849783789481381998651134609130328384061048133371671931280407150442366550258472195207157931864165842505832326723814940675253858630478287158982387287812273896405251973069554763719777341508495533884672604576495939043323142071262061624969523620442523579871031823896607660340444144368268451048234318981464346147519107195459058145216005337127923036891783568134020447788786745282751436453322081579908502007726121674038678497813587046456510292681501848039988227682419445880087697149297633927983215717176571237155061323412456743054869931233531334375767907738936732355488657251830991063344901693739760828859567132977295559909946797055981082233752400860120104026535637779389124962356534005665555812237252252498062754491507339560337196634679741231885765491956293503604692315615383365915689671382220280350290941077400121745517659866855728783889429181266898767127449984318919959519581199846115207288561243613371713504214384638285765389870652313371591847156604338115723377431727373202716893230796564280621989833345769264064343247649089619209611685206690425215948216362889214855810375966120749032454741318437454875299169321821807108232101000494166933544912720966202598537784206355231956848292884998211418572478627841062133826370059187821487564256614944088740288614441572045483394191928912865531577290702354044853685636005706760477444961722054523948136706555550553298309431725462522724686117896515440636740287098842364551786593839806842636866484552851570622953662706788075988980558075090152281179059866345505613655498647433609646929223268867315638470409814829230075106784873841104453444698731907229258917130318776207577107619667842447649481615581322545578602436397596637079163117878543504703458907898907334165789648525988705841821163509254747370836945257674303993185341890563569554291182337354795778332451092313078614080369058566074431322053791825872345163921254493996640734390856717879413540522681841469661329199056096440225036537395980119168389389444868215992794938970293972730459517904431696375973161794595105286610730713258905259647843403875890614556753192633719867252605334872161464219797513449462317005504554438299480530249403650144438721827704390075072419487632414904109207914039020176159741846969928308860394385247306875085634072421703135680111413570976586119621998393857303643279110146562616822092181702334668447146630304378776520180909596740751396638777425366939414927412268140923565237990154428293748306094689343683226769413971623284950289482441196283253247829219950169242930782640782467495632832980923594897677406525053969067298969475322433934058048781807835146633645562133681026694974807263574669654014264400800875191434349928909083538863490675398394784129955176342149846668339797437727122276257981382343606794889731296207047319640246651697493119861890321292705660065798261688084502491751151419884719788233294100128177258288037642978863152926506656917302544043763657634449694974261904705217715086912125360896160992748140284770468900037556512062518398434582942366822385154173208535237553048952311455435562073185274426480243873988325420105509473455939410191835113307730052789896015475962920346933171265413286333470844743316981958523127964073210188082195637540510561831211529256725953940084017662081648614002406749875493564858941129918388148612378314169534248539313303715287725218556999455351846300297230128221808380979408030918829753784386351874256720078450929685733087076732183945162053502002848655369178058500011686917587357662173881846517756744437205606582196134527704301761491473809441892308705318264100454579653745209696552134594700719497119008265293010221948317677455208332641483591242421686497150187652849164983452123070780876460691930584554026110300344803158286118878770191279467435696729547763649198202194900882828190087348660762386386234074293072844223989284258555737370066483921927481242619313636487502518805393902949380915357606013539029880972135407860278607368172604119425675309186531167951132899209727334923642753399589535582807658110500930927635828958679597834018324588464544438963334910744631628481292154469034999656218038937239037008547846137614303224690650333901469852734001127749036429048339127286508415942644473000535959072157794666754522540191146185689132835538075151013487400709239411390701172902035009649405970212541494970233412531382081424006056379864010225029636355761016245111105332168666567461910050478590982010433768574983953762217211198158238813540968225591787071049261261880212529462365515416417769263054902861328416752045465386820529663340037944999875087524284982317037366979842850994858192409660520961957316142944075158760145798828477272595104705659965663495640413091439356736601050726549465936858572411033617201179463866962493014418509383663121972350186077019731964541898325939416439745201729706822229265711176620749117166033390235553447249985359349495959719895424697376275939004288520604028925677573339421253946773326753857344993535485198950614661171676132398115004185461322838647579415026266411651288580017116128443764595044975608244830745637111822383134382075155607075153199384450139224002749599607991238821443712226578888504413223315301773310170712749009036743438393777994767868149058321367783038251017043345660724220146786241358765779570363541748620139556846923220069638259352831964455938746884018152143012096191050587687650938435361599322421073926915101891343758407141407071365362592199784869650195364245183107908083551838869026212223301855553851449810783990534676723346497092940431405499355708852644439418864177062125431680674433321200818244703061351149502924382831145031300227325054879900253576365172544893048848454792485869686316784090209462712603102967244222579884145731188784413457861930845906116211670861640032535485895914839035759335196826758564902540754553408283182873394583890611199175378098243486308380632743706260901235500908588739912069043983813129192538653859496167419450268237088278427957466761760560105651090676162229339265184832965352029119087359363586291635696727975464286925251628503054478224024093965688378509357870245821502290616844662358794246207493427276850500897853533201009261614367474933698713667742315571551161757518157841978488612645176073884447943178159252060625098145381259099514775722060067208641874652645805721163302068368050625045852918808965563975683736893819287917836651192753017145471347228104317426225118006882967685252097436717170902274569403017318714259038045257267266345828166348261270778342805895256611593274826540026597585029330562934542296744166148060948266723763158176627276220141167091675853079852846641138721474453227693013215112168164312596878331489461284384733923625428326444238777641806998062842341236811412999892154285245153846891844239234437715015256931895523568553302581199980096725931044634847177668224621315975542451347636889164769484874654950029439016084368127223800256753745971650509679339944017618032806824811009955633384058833327867380318792507448228460097853608408685152047927916428049207111438437216668923173544409073806470147410952620918633361228157928061820215581886227787476383349889841245931323836088765087540110254879860274616628605894916329381906909900133317328555105616290484954589750076308924952421199036273558042243428901273046428925217657324932586081166833409773025365836247772925472591540293045704412682430677015788947088392352758932511837467818063782950439779666731024340285229283713433671446364803213362927455538033704768376315667666940107270363579632903410998646535657952697692419232686293171328915751273614911201170168134478179221402082346798835095696948827609157518609989249870768905338543393746343446366581836346697431018263257641107870267802233700177175401671759659836486144013608457440467682295062102874176527926587646997640232398395254719023377796487094258436069258581077491470237993911550522664669586404359172631885419040374393351129141437901513423357753126609153840038075766651855773110821982921116720327008906546680149044614617296320000223278366063046647312461729818353418202180920519816097541376328232203053209015998639527180603131716280126634775765662737080601092371196786013377295434782875149765308433654899646603043017429168061776840495864984988152279408318468627430845806528744274806066872501076292851618977254301233899225581721416954157478767587115264084141939178711953547243057921331341890069790410284652699636729269499256997463666443315483545310496185223805444468745349584799557923875182158489048494389478829441980667302399926007819529638286985567823928832943813015431285136734624074548075236015771855792026972156247308105491809270527459237690631130143794384908544361948840049176024124697053338521190822164035210321243617002609853031680446851042996881179743868956965404335380556668718034339839526805372211006609722284242801040733694190480570312831080072395724317289036824925024850605456821983047078777501327125585007725810474272358136420658447629812281741685356567851780089914251117522537365254552182776734831946121102314175069215437827003513768090917006366018140780380249999734978022187189053889508587043958957512056368834979284084300071874761876843092009589589384949224715887102522001923447664351915317937029852915046611568285481699038672920301279964894314785698808578166186611246777261283236238192957697820596088593098113831733107503559811584545747123416121339798278716965977890894747630288146112032716406226268697661591877836270511064211540382048655634218814964021328077700565638369773325664536377222827495364555640678781496725041207013056809330713582383979073788278283044383178169966313037655475485293843479316744709279290972445458550128506604147350673789814333840152073333409415498193903035208096467937287135758680896248558930011866501815685228277741110402661139400481928247597479383450030646314053347859722802206193179293755360520296206883941333184376470368367962634102244082013352319280756164897052361903822303098106468690700551572784595736425662584969018895587059468730172771971744017191803047789795543639096408713365524440299598221770100860867546958446077558281089739676656932091853563654579652120020250016680438388862488570180454537912828943427485635327217457195790431676510599624203799726465480806526270781966964963586098172937732459523952340483820375004728797117715096419564359471503593218520792413830062227471221627265042727678085783533391366280457822652970072827884662584848063958375481362104419870672225923709711855998932333979566285831465291105080519343331080641084981677834859638553119661870016517059382911846720584204586319848640778809374617610849499097747646724999481041149471708453041781460092826355604662505056353919506194053496898106520990023812523706591471312920444450104500952686535722879733747213038374558535779512131163696404114282460151984362847697849341955114595437024509800416131526991858668871657655818617407861463567544048218421267015140481274984684118662924797351331914959908655452968845335273347098859159732307910439544603349124022361438351181010581147220261010039204117869092938524020493900976839891311268947109466424237025164685106603033403863781796605158375813535373385195914600383805737780062612663961086590771153103759626045709308912779450986265811469065335225200757630546870384697025309964836220681999292815035148465920508365404632850319809980132047592991747761529900549387262056042845777897685558268486073524174662100694666969316299353633359590018974281815447135513537064027180414447981984660933827052753113267006193628314181879741684971283857516422797397652543646725678628580287071887129077787831495665134502881061759231366281139704402217614942913012825314821088532882451018591228762564709272521003677653210357846602204637085456984532136240338327256978554531359877684683804826381934510755145489314963033527797043799753318401016357830911867798088274995959828547010602112106680989556472078552673122720528489289430465914707214293200712158922027812864830277790252318619236885735994143947417239440412040887147383878942144311963804686816297569415254647186761438935434952706684581637069528992998712423359139407376548100726897546447591889067808534252306674518221625335198543872446558621313677504685475776323474053428465139335095024263070003702320349586509400252892024740556264950460247570852650034497570116006302547951496822873262281970430412078323332067652677914371780837177088665709324531594035157999601236443464494923700051888888724844075471638669456257046576185503778552330173607475077638712461953974221791193170537374318171357034971305598161654465602587315316005308422889065192446759472997753754781175852352138948172012721157580982350499138351203746511297206026092044443139495005732822387961639003013429172081936687294676204667929758836019808154868983563687500108959526950733156267118565657294286677809406756536233752034481064299444165177394269628548142338479260425585703673035262298283239528893896082106581956964355036903021459343914095869177004947531601850411496431125547306801011501950664615686299406652622331942219003182509478897963056769101122510939128824884151325041907382586469135081880734052670816139909391893480039731555686409315329141023670473071959049295900939242575651069201700466827880717680415792944273537819210675942624167734397963143717549416956631538740076988673469285515230463873067802803952487244704680180092556906146371972088511444425039905111979940538344885779712358098199059608380177877444592527516860178714066852038547471947180767592591022058703241767269074657848608667176071799383563125954006171485037431144401425523617289318929930819077254983393674421368317409409025742217133275193152994179043645462907871924357190009219080765542757890214521707327272805989868171550512040641396139066521037465395947405919142427640139555713929842183526310279859876581792989773390864221781532774126564741645929124924177941846901500722553060117743591446865289976575078635933267030915770717204360870731553564512246095726452267483263571512716511439417615509343713793910105332986490254041849592752824700547252109654347304214371590532110179584787589493620538413778738292962843609037895797421819205538590447049861704252897791884713522364971212924471843276245198471817441867348553121610163646214354020387933125674309925490115689306903050621485911936964822117131170817099670661075157594111629868574303565756334573627933934940577653847123232739568162146186201722397069579022554969379700735563935193862901371841518757476213686981646217646107561181226494321710169298841258966106108603116264701884478722950417226262719456674884092388794736709246520755712642904940465316105669856899653451014062776200984518406271193571907524231760073465948219474231386020298405522406681382032799407624338830033839453300378619104969555509971547046249491020410839806441796991649074459834169524595769435849146333175739422408710391258080634059259304418301561654803571661868431976528272791555794824660958463002907505145842079350028629850450028146607129732454291819821143411064042088353391334867891131758683288832831069138084923609168118174789227314885491873991697917302096265085455915282150290147327847196636943277044742639737339965589710302524009941253595098258814638671012873151348816846733806171080697169840013905691212051005001046446156193676229646358382340624268716255291675130357788991072969041080446316533410780097621311411890710667178524717201166566298898895328758940388748686907241645414108370579969878159916811569626234777808338622529640692209363511002738725066431304994819407793019787397602528408652855181616994316983245817570480875257120338759718243283862940359892469265005522380056285476014343117059551463252138625781796671109712725857127504966606415970690199684736975755174764225516483408761852073128902157564830153683640259867017847903106982922088588066927871124442382455642446260418930959413742383173586102452858505088559847944874266497086707925090466047579638110440808614024132996310975769847425118729976552220021561663911839833854937586990383857823298408690260276916241761924434792043346580865999406360551241587651513143919116253896015654627790560165351735236296090963526728684654989377216773733417196322498159199207536448547828706569611173578431338390229718786680969155197692115840063399721455133008718720799850421116728387815924337055066598846886804914582261241411388122070113673657551051390845171964566299965094880284828568075567508103834878157987055084720452384616942277704628227154138515000224250383607136931023998751330707089006099132421192277272422425946941760688813920340997970105429463079878062799305207414659786712830875627452853150273097660445064260555542948082281682844165570803370905527569192584768424682224306445566030917113246537915155941852294605226008839272654834312991678822001464115181432878845811886756603823578526376210601661175836326424812001771121520774729259411200406549583541433024145006541668969257974645101889477068207261303023909259692729894734244678480972996713639064002095436834937065143349924978670668062766089204122434040345792684525908014993968030998553798081484432667547202470464964528594341977094722342103924463450219290881780418629425248427795152265001261638441979911353176925706689072371219145804067420045449231739489975480133847908421218782220009241595014448061740557408831936294338846053083377719307654052158032962115544429880660092405225503527188936002215631377165224309998588244977618121827707514856876039226326409546870435942716994751841572653481222934603075967735851269715260056799981690440123931861910903759055324651552042623108634812002538432395308918449238808378562520178266169229574777489295794060352206405528589319744109039084260950505507688336489830770473650882885664057040413938352530140226547550151943248479348239570106182053199656825474767183255654289105595962166813709061826120388182528016898493726876339038722625952765939209998364198315044523090217957160091873805281477432781387837157965519759022180574114300406558541088616716638920214902882509566693836986755098903744574078253513638892339806616580511825044840829925707376606567608694684871171501999764574952611817712452212500167949193271368898956467010192478871683177929500086229184145775306587509068443239208352055201676949809909383561695324265110638306932238508381840709066470053576066569336519276779905945304034407966113327176812118615410671928809414242606902944461300762104433264188850209413196953442662105581906796577507813317701530839403999975086996318003440166345964799212635800309989757344386385144050592769764782550714684460351919551300078604346968318753769531372905261957611446954779618673895688793989039084557372048648239168750365720411800673949128537856725872148830373091124734007730190223064103932107255091229503467872217999406952682719911920160439895424374754126060906609660155391054198518535898695855753437525853732171442846937726773851068317318231863234284465038837983226262420571677901539270175593115767009491013427960483002222520832804381654327864128446866526406534755278842594319098235554902835201722606736585438484654505711105837280101622623676312455773043128154294630257642288851524295991586446590630730996209776269485756759740740608608392800881446641963769021326675078164595793722122963064000282737399893566042771648014984934099624025390407073419323140050019717156943974902081178132600322518672532688392898522033349066763558423395647977570924686958973369051075097325954384542121050762346434999959808184267866737709533936477334914011979173353341559212926591867995068635973257271213792539740965216241251958663587849249125114118688892274932700396193910198389393205631733121652690903814563767196910482054717796345654607783608078416420141840571199482504493413208082032522326082681045006439153247906047004587733229200356112063608294779421324299621874915478150379518952137173072741277125768658702534202729332225583243921884984098301701619536449389722644006880736325405379178996831508250692499658612026579928631535742655945172082443679236059080265819291367995106775190744096194625838119809770833518280312534042349890324692556134412654615485141567056624292568033523096489979958309794306483970530291105480207139617499722008437479964951212768928812132189801761773365700816839586047321878801548032175069806796295082892667274670474729111835108390547808838369460581686789132678809476781869026274982132366811732315189385640244236965385495407982322536938114536991215402114374760624683737343604539592478956974202434376915093340964866219856591674031190765636575326938065275641016670195456415696108879334495455336321033427322525485211612704153639974031492161824893521056936012656696463686394397084182074391847551092852708802627749645024243795885239407725648637310922495809313464010350187633832613795825752715093509884943081850165710458700015579849461199843407156629145044280083723712004315059341126490621039779177704391644274473235556522015800456659153200234137566911604757120117002455258980900854304439108995310879523987664467665976400959712448332665992626144486281502745064013683176080204698846947824935947171749973173821938818023235666387856882681805672133676904195257363711613963185607566537947815596339033220780058893988396859832643943317087896342677030493765921082961724964034003816252822281560610480332166432161844843132831591011264770428479118666580753172696721239670610909636882374700467331158163915352183601465657401610576774608380169794955843123067615009910726762559235642225101827875773449775501794845732953975259386046758646963294767402466895602152482593423143714705753132101854612418334023922490193639865397168698009137627486300672086181769316455439543539930480212359867530708530169141030145351398702177461495048456102325861782627815693478994697480657815595798266587546222952857774821402317152385442959744091174337103380107650883481130091077690897627857805369451043764452195312734374714878142450318470527134333213338357952464231344729719400900275014426178749839519406079467067581810989500402966773055481333676575923162164879104126023087893847447797458418547930841612589135192676658598808281282578951284899085569696634526092072495056203430959780997627925219643964448153398153590972827734956542456137231550176490907422548855288213630109349598581796972005481576860695682962607119070807944674809572762810784041326175416791044218406414446676043331653571594532226538070346408179586131652131385143984212935002176680940569792248935847859495701013323183328873001787957910841815325534213608173542289275237167833251427813525082064013545381218218060790472922745625406576819931863630312799824437030229366322125959068287006683025627176705464502931632354112761228690125733391015352406851215351398201839687503289327347521279650113429729660748265355320415048862474876926456658925436460370827918846534679460225221439047421684008117620277344296077947642537878453009197982755916482268718548822772201883551461945271013243967483849006507560651103956826281822862242668512211579283796585506937377221356074866726986884008184376993275089761034633215268738748156501043450607080397181169234444582780024735773012623345095811032886481170104342151756058208860962760536469239666596361758700353807373076317574448857462376916968327999148702129232264733440592062645254078539057707561614583455049984945381811919927054706632354743767823050838853538383654853335397740904084179336579886061747352007011570386722057667569655307312236579553521297007783356306363007620748411385453257232262490676800215971270997646018050660103842269076584650943060543608181336183448348584216407789337739628004074383618319531493832933160367766310073298992601345299294830796339523331197233541750432254106459777547079369247483080037896695820697829815340934284072824991781378371259060393344909353376382832566318569304555494518982731192846301155272536738170371791095350447747879455061894747531625920285460176764313814814651334184333691140721564069027225520112425135251469697636703277800641744157680579776661046622355738136239871956875254206660011189114667682830853621170175740775362608468572080751175399836806477357895454146385494129960761701429023142013487894832622634203322862806646902832225922837861952444089419245540097490655808160019917090500416495479513381909976079829910180847935261259270219166976495455386092469119784169062826818938303657817697389584791554002638630578486645905999173954132118978941532413887190470659482152898810977351604301802090269716774328440831308950533798201914684882865227203890284500563816466210025467725774184328395910397424700441007573531819853007560301513269147904436902072956139458949924831155178640938328895788061955740758049339561583025265788384768632305786283659807173757469451536533440471603180403342079804069095279130965186401864803548051720274886571810397399876416210578871475936240405440861464591382171044950879426182429572444994452750306017645579487384629649868817568789942475653853641135985373931235612668251441141976537740139222015420943038722739380723799179427005054665100728380350491898933603204226023041468573817215669215308211188189924760950894200439929787432023091002239320961601866828745661980335225833248344513601457090565269759084917750885971014829306532537672207453602821341535923921318180404291316086173654548411866810300403655859498954817574019755346506451363044367941081223658298753809476187969236749517639077041166561531673801448787609955776421327711839826567442372050404047876736812038111781923277533471703270542692999458499319507822629247004684792571422499236920231623505029981087601103720779251417375707010069090572850720347246736266720053910606520552282173990014024875096187655066605348497133994971802000588995937662584082204348630409531929400484808366514420503110150926429760727034794083398879937957182566608874501880365207665293840096473855374455648925204270398472764723916320820377704827976655828939051404683944363319803542285792870609840863593132283969387294819431385571018185374347251332215509901170962973079717006801045080005166855863099280249183538623030306528586791431237227506738026143016580534152219494540507327519076799242996518005029515794509269966251603990653847022475204840112257008298227175857422579762766610738261661037660874528352623178289991216331574768879600462530539134283165536016306019184472643494845535328386055454717231728115274864441425851474085548022291848927512468893891652379429820700603935804472334325458209024923659921258294766965905457382373123198338966496110723574700498305454771900710618599582539068131069156899295515639095523464274620654670337279733256520746533083699943294476233153759231308627196084322408531876539175344618402646245303855527557570140313887589052109002273504656458488110423791220461904600327627094234146184961109966181129564534452303565998416307491797596037731582522993623234738348471739319956159385902239529136345560501051702358267549662370122626418183743484197972754855600225003269463077581596578129147746388468699211464872281732464176033523473108067599761935169632902896319029921890536533316133431745893649162178353474455483556853804354530592771343130705740168241762662275138925992022630440077374111200357575229252379889337292661844204000593499972220389994249505378513054416194965322866470360319160274110790606221679267736933155386480233611798960787477130482237436737050762188015826926945916009585824764685824693256404881453096433343121178155727452891233323449298414440394940156577258639715394430314429917900858830539900569621371694785516823696792739964225552827466462354735701395177683938499705274729332467431342816018700081311774324465452834915261667032975625407997370088149376937231840782114255892906022133368750335593859244881698403635594832353357437218247453826672129588019975926268832755044853273221667189747699685724052417543078357140320379669876768602775332174625559629301647518476605965527565071314768468660585243982743288479343804303367952476436273183624102477825647563749883130231628549451408344283418569527024325678282978127373147487891753083225964793883224925594761403845694997791200971379577356899562826977348125896809881091332454831423720229219729829392994844973213789277314490110764115734804442971945465564318249442343773549516950556880347967101544435172608608969087145593845858516732731463230911156013458947178624997729488191442998744503740212698031082275071710823276972899749557129766825643621377038321706116581257473226540366645141091961401937325482181017633426424667769247768738962043711169090721189200190158502105772119765275500778127486857357944862490418244618583721249692402070247691640045435874583787972811173043141034363551792225211218447668907163750003836538890358825882453899011373511981638277351508828743912566326735845786253168353794980304325168223553786488999463694693378349883753799947517924490570648198827745242527973621779455492156583739716011303465231508041516517989752607783563640158014015591612033043032527285791821196479722153460888362740472664579495912474053841025169652918404572987688554442727061932908385400157132280980417018766189239757362159311744725192131098277910911343515658692846640898510712201733265649312166674905954355764535671662612899343580793015456840288242342196420497407541755654607899687135806023488518973031378996957821483084135692914184303182884653447268061609429147159039961036615163291328922658673694797516395185443155874760998036309762120740901063874995627011098054447914046359611615893507349159676257224809793514210191901203499911064262835703353864319222838984574682704415569753701086059482546529009118259843748888199882418969277008173539557697670855936184692880142221911551757082147979467070145388855451837558204940524320433290830855206867313103210924020300612672568884607806602946848679009042293623542645293207802038830780531504940784077251187102452159351666391083976056779155929037460841259211020077951767762550558062247101493057320753403459382553249831517755706425507411903262018974120509880894276673568069185981580977759670811568506534245011326108893675245417719873628956038871267388559701642764108302998363699615280904673850063040278585188642796851826490566028273647920385676788608462332404958436592606226101135390449027476690025928557536701846239503889675935683609386917245829379223927219815897358781797710909347459186892113905016020399246146966165891660444514684489468280370036587476229720470221340861648132604164412269376756542920793171513531585973891602182575547006389260282845047414088672882752754751330540373186109371925219889949985161929331493175586310722174205041189814028154856978423312686374124574851046759774590142927877419196363578659202085307274085849676646656673748728405249252760160631268435285971916454041878294942106786620346109478453307595273642557121052261094067377115799565769429334885508307255443771166032219307229623634001238617131146827283972960019552333074191321970493105857452553823266156892930996553063488188550970270891530414170934722349850171970671497232539169610345485105482973646714946793478047273655864277699761975643910996956531585232749561470212058081615677597540081785267903336871964641155699248968376213127448288825550261727346823192871723642775158928856775904683226783678158918839359523292711476979758517439447110940560165572465568119383691198660486204096609753780629918105001682281312671975562759142144856188103247925795607122294376307306305622808610227249293503549490935368881384746626876306063233820054407438652532536196447796695769863384233924186403225024889678754767625868687044861076527677209603114260234547941213553238419171875237438535596120461789837872547394929345132010724303847266674843442025566316979863665871453612361434293490773392390109603686310326742305897755204219047207377597289647260001648026422408423910586087360399868492863894674080998873513232171737633717784240155738480604670733422612675568635128227957166750010960693919125082919679625149869203398022637822092367382871022652812555036055376819014935070289244182490909136570062854578054263931785278840763721247418578611365291752741883019887131800108277576238190634639380792967600418645376305680528765822997116664939920843865835591302015834506521991320677604009505780846096730925144255700560559961567797399148188675084174670218008596543595401493246324083189410827738287342200730479894373429204615361376388713031001108533240894459501672416655368585021842804609381197959899326646854274634803070686543013075084796245302044334328664147342190510489807203277982089653425807845556611352870713062665473023327275603179692344977674274969982435160281834646980924679354782962206050845972433422749414614525630471702399558091599256895368448684853090886653018345916979702338715468040957316414877218405075763235639487961838656522532684775180853648495385292426954033720433086744372665562789425288156275171323634690064161790364194183014343119382505481499215046710446456583342416411257741722757851201517297245792314955243370280823567516355280787294647264155427185616653388077238295060980053748318134060848882381583555356085072088678246175993560028255102690424118773929544934671596161315656340938454513202287019268004361947972511049645823978430340788145339052026236990526898727399833361982234675418834467320934706896227403997215632317562986409365006067457919701726298226524739637418568112516519936483778723638359649605467422450362416191738816488187802867132952920753469928761158798802722828777521191618634075373855159151256308094040946265681072505359448407549474454951736655956496325173254335913894930365720853355473448530583005916560615708385771553895201737916957323937828337764369952474338778662156352360238896429645402021866119865102008021474919319484949532738920448706061545122699351967280951822843940539245212678050045020226079582854434368281055286968799995937839786738829362390204591377912649101353875139297569510523353004891906976867760604118483845928984030150755601066425796556497363057372542716460287181814966980494437777896863298633330332363613702869927119289630156826668332312992180600163923160297453868688996817885731533831110290449240021537501955004916425285263273418634210425190180996664509602819098696592754837336631219644120675959121349311422308839499080812272817846233910724613475993394185287803818501473225705768393860202197632689317728313805885123304685792016307471114638364276500113499703033856209748518350269603423363243443781804747537847444064286168308209953595364857850449181908323747238720365089413804156109276077298770329814224334525088647836674578141412465789231897962155433926103481709103955076731269766710806677096519201657712466489552520297501989675367740156955879105710249348961140185436571290586240558664484777211128498826774972603447092172660012776562750011949143893433153766951224647654687588585577729359869639587345625703442731127096408356105357744210475692314149809374091173297462330161269036626918561838181996849987916235403032293973686387509337359976347758655456249749681659443381767606033151309473981200670794201913291147654486980477868207384158226150243787836562906297672185287941302195424006164677649073428556505220145988660610637729287770379891903752372038621111216422683189064627108665533137678591128822122402241699481014435204631562786436095117449519338991660794809422213203785812758555620443032803782833410076376830572351423449089753168663023315256024371177304379684158398065235071687280907343894217159140961931986191727776167918481964649286148310993769313838280999895756771777261891457753749095487343443777116285624611526652932817864374417579577576137679058731881804396168486596432096929896718472416250331377128629177921954985244239164857830518042473276404992367137045687492982504998795396148417344279253421183145180181627739004191236790180629184273182309084970074470638846308677418277445045376862536427469551801137609244777061262265846672816976016030994910819492464037828660567436082062169191341185071889056208496663785016391012851418344825704944663804195455839899318113893096388150676058336835602153717752196240023312034636566749946291689428883122945357335823278911315639013401177012411981554654304318595631074784221163881558749701248802427649200957934069161487619501761651258158874695740977177050486919710970259596916140006314539529246584053121826176412601402361317900290396465280857435111830762888130822797261803638147977456491345824336416302824067061638169984930895258812194287413730477751260651872924609144709133832878850320342502118878723003828042505990046343223448407679789277972398384635214282240118540821571773434028746910250562822074017453486701178815638543785251815726941067816143182285437384867937375413014169433004667796731970195311497105446752372728260820232978553110055179880138427635929781691998909377012298414301838874401350377002296108475090494573384534048379930981983278317858597862161008934095882423631504110163964723556768955670756242923144104066483586773256995409223109685459862337655832763728755814820269643869403443646001748307107798391387403528761060655114520106069464061138412384419652909462693682567660684808201124379570740847513500045298972855017410805363008587293460417187734662143690305933944028481155360836695094041039274473693324084649622608385205774835894481727204058018764996305751871048827758724231013428843747569192324749187678536688120324778204066654094945869088266498022803451968434846943644971571284774678873331351528880175005908461028454672203944265426308323073344076032655294813141275302323025674465947034229952972927415625985669646551053927456687356706790108554626474966458450960245716296201213606166684551020653660163839674823829938004129502860686501604841800247680396437768116274647816103978830839627190185324882652490388963767383661727387459687876204419638507111019404650239786542623179559776784683137834738160587270213693012562057338989743720633848061062368275160126120583229675695774611169454816549866726813510236037138106137777759179341790287928992761426966693997564019381809401629111835662795607723196054786631201100062756402962771912450165986491339982639725822938539267217064203060905848781848918107870137871886558123951260818261035275805850294179875673408715155534151118140588134406414153113902443776769196902413203297788703905687979438770361201957612134834058851062413295123965697302940072210367977273499034920460184714543381894994063260176743920839580416898317405268834046539939500840021408808489761902123733671679264049268361166881394566905429585390715156523296793889984244676394496362551568047619368331283828291889128181271516002186242506046869050944437345581216103752303219192058332189613592716429670813386828043587940151602568745109665476552598252532104962507093104249228569485851238873772360074651720090971866953721186875408116522876865944133338971253558007022475116160638428909952155863272524066879958986370159051859283517634366301837578264796648809950239563632686635129351422024229945689530540368158507229443610507210718390300711724150992880414215516940954117106925227121280831295283317475376008816643223029129932871136263994483151124106257233306290734929859195998596037058517543401289774155666586077585107532471045187495894049044512985926265352372051933511547711061383527029862791692285660040911502856156107469252815106019813809573637637709702018685106170237350565982248241702688519690801997915784702851909238309133745993479798702394577214006907999311485459748175338142060728240519815896163121321482065028398170574766905982518770206988368269621989125881375165208073598471674353407593290645500725221685959182368069369433987084477361355932032034625397965900422660397842120080390815988945573250636192378155875732751289298242123098878384924833919409538707813695904624732747679160763443584629865111658802151098188989671758861136752829232465977316935322646112280600058060430418796402653555116936774765767172718914379021571134865124650244052988139205680114063408015279177572672097900676906573583716823672441690579923642212656298452637778761948179022743735989509492494754376452770055330069574977121585836937965091354587123433155871182579740163307502505793530305648282848535321476364243081065009699344948103054230349077952024162471749293100183699412907408594120163137783783007793431739951680935705512278683771891959269854837705970953785638752909518560914517719703590533694687852931540740091289992907853180108694390911250623654251247070596415188479568844882372594531783835088224865128888571728691072574175202874113180444394350405252366653231600110502016086948429294389004506845885639066146966399044366681146394311022471208460195141689066657708437056055858800612770491169685908610551243634311591234542311195017692026351417717468284550812689170548327013869433544626447187386580296500232125909177917428975523018764763270607522243809990354231699039890654451635865454715846385274680630376324175379144463281205949348881148419020834222266213587642323186322824826565242509081120378538078777608214113275937297006820855320131333940634372131723258826111588859820501474326570531651832000194444127771475682544020569736729653272557699239215375446693457759856086033372712076267465395859120364647232788173856653034597908739278480876000607738063255384189937254071957750660171677358882813291929110545837446263722151623695658225403146556824799357344834238273193179376059988889624808548658448714930597533264455062533819940120216408505702569277492682252415568222645701741301180806651179356306773846469006935680873445708688451816550391199330517424213472375980944761553332672984391744803013643575768252335710166340195510047085248675205890695762351123508508267849601166361230669539717904925738236898563908843457268320935060481143021867996537567001567897657365326355585698105593819356533037660878600725835285279512807119918217564926943926122067395547424702096856361011499226409223140526128690685048497777392737727066636454245885405473769716793991579960014217923056763692592147962228585239929770101829333965713133494772522989137418518201051662495529140305439191537026014501444370475058448843600136605996219593176803475847826196587035389730864404035220489914244226274652684634058449305237564029125259589601975658352895335299569522848118481238873415659464461324600419955461685190351012424195709512985283856231441287329336152459532523539940487425940205235603021636046433096359346094984199325656112236450070498785045432466133556127083635597467753815368851907865077334386003724319919784670446926885225894444325172156520409353162580835489277764083457754902092485571420591272533985430690027053179094756395574582751604851305412509787979318359882270512483893353481819511539732927993199192370331503384661321631159501280840816681267864291673361763185487123694454565728997761562426553126277358168659905347502907595748212219321280003919835524930682232805220390208307748247421917188818309993330209742163705668065386265927070522298201995319605879761288897903352542672927178902693472964942934379019188491714110305609164278477246270928759167988855078690707610804057368339681943021859447119393680029813875792632012662245338170223947894592086566702980357393979264733891844932936352445674795242431888443131922540468825574244637498377645663754717509899514035186080984569098184221242697712597936228916066731857590524939930182169753214726290066841448222211787995552204507791807560850781404444018566043880898464060353672286564225709102033704286936410262328647808646510226771177791625766318386723689839399932490532701731880915753687453962068624208983794203054972632749309835789306662306139301421844947582643199627522301814328315238328678628879974841584627396592683223163674224402867577115532158106426186620073054276871810301405644243667378473436234227073443501439733740373268500225410846376742331461104465415453911378307807735576195292949231949985217033294145237293678108196218937477216712280188789056792696441159409521323076402564340735718407033271076095820193420861639814579801477008123246770611773704882153027564063359962931043706287449465647725250820891680561075854495924545678466008054020650816160659907634905438963284369646177757697610896295716399896850231879871057464087194293999618337198322424635578893684090270504726073807917599961791629383485321535899468790184908055811598876550294996747309078544276959020168590910861349619600031747112282596597267444708839828895231218834804364151549885759288216313013989377532818581083015703334575857155329889792617543121413465121352287228399941120574805219817423106744178843658292594452239487459634289559517430955239813415262969891669198793679236929975510907390741824501941665550973244595723226397303974209085673218825329021183670630343011342676828832388349924066006822567113348123582000319923946190758756621083974663381093720922839323058643926841096236010544143347799936359805779726323951844818817243681405335772934649280986565535585998904202216044934270399256489715883918585957753990329961108216988599865640316050534455636864565516625334731308338364950343685751371518263122107753250470144401698858479013484006739839873749831311895840389359606297802260613973229509890176974094692749930062298531994771515018553155038389896219426079686133930142851047125307340380964456646139887564211228323822513741671010295164478252373711562558713851207684199501052070975946734573311579205153348683644728675704412551145168929108843741183150291710741615635046643221524234187847433742791331821713796327563003171198924161784400429428638006442950661000560675485458117365037919287787769933509228564172972476582118048638871773971881880763598336784013600667140794536011684417418676677319878992247526673903570977605689175697092907939333313358936811990727412161378971317386306896821442895196711453738515890744257271155227037446511489101018032664256490726530894761072174327073481312787261776911566295295232546697070554473943598347206583362955128450629524763108113850433611063803482378145532324077551515187445349960279312972847094200364110867394980054819905369628222816068507899874424501030352158665747313559590454302079788248880970480563792231883747550977192557503851643990071019892435926113976991189067661469337497110745193622546970359946670979880637160190052230102468059253621767042373707195929122062228242793374785792657998770108753185760693217499036613835901968873827329963329882782512029545090937413285253804352056390915606770329878341336804056691029124606431297356246354506175750286217879042724973783987647638376155226954546992408801780806885231360423816662980928261786710628005444081200195095920178118949967675054253787039350681925444062177337369068575991474713559268170245577738422108821023361601852829257446434030741932156252974604920471807800137509829655235092838481496175684968528267003651373160753657811415645294374148790203202908542403890677027866022222003226095865616396036561807878662650159129082655577406061309513709359458122704661682098970279877856145256142837848482455320093937807297060785285787187026460323310495194911517387573488567318245271722888841362408374839645339426444893841209109241301946710044779733628171105577101599210044715955649852487074685794864483184530029302697531058543083873388466279986258186944115879595847367615581470557492567410941201709860870637581920253583228929644914240901150153653013987013911626024004605930055171976084697525346406919746154443253749680933871582135357391435376618827707773983615217826160596234395051388823668483881870294688181364960252988135590905589016240044842516401678504834312549290966618844155674533908966406099873242993997495989464911610040817088997535710795739250231242454957247419355823492094144975795542799178406721982496650572679236576832543181456423930766529046133759464212655769632152873886183795121303510958703824808185615633103013910736619405346065146398707450681022360289056227046457244951833813239315603797779424379889020890672855352844005556476707012540985882814348850810616002458533325956278224726039551772498591820168527735073550906994632812098012294200831035820899741197923995859191562097304961834550797844972193915828931864770252818690681925239693109998536738441079289079624275245241664303278802515023276939797415230654197711161448695710236643516883246527939039173260727502647431992122742416200360535998464611746932743700582169581613114039726823026939231974459017620029742120052995933768528225912744939984316735771562070292878245512729232151374231769514584907689183511840668970314512151806140189622787190963478579170580418862794752100307975212151353728043120415076157740806545780203948907390458564132630782884327426528903403622669924714993557961157063731428741031672023506391122218409905627381434591879756155924293711904675162165427058962225393296340203125142560017409981124763145442758791712130560646188450366208839737122618446230857459654120414037402312582288029194478176434292907257247770567523464536828449133061141294179491602652887802705283123916382784141224708381310025660488528593755368213732359235320331418279598333608754101267232453360769708060010807815120263904691738337109609322751319330301730716664564179602253456299597970924240260901322341706744565818738885351322299750015492782315030252027305686550495857928907036334237674808836449335830754612586369422609350315099015051625252542247192932932765925440031985737559559590103430117889970023641667581060503879432455871598222016131104536016577891462198542496315024339392944285258356950755718121623917028185270619850559927932333215693456154475084040418332139433440666395745008438094825924293946497702287866877728069374210729214761808441812122879944587082613997310441999989406007558938400057583329756685110562154611067465272320030236106271419927943146826694866780289558729875522782042219067110321662232204254989573050503270490582076548578250679312909848775493066950622237736946778269029976715631732542436503754530281279102650801502544829873174783091773047672545222704088344205496633289276217576753692139008124992017430601689776887389121548047184148777068981329376697412249705295825027132602378558114966444721102135041207646552462792967236677899661671401020461817154905682570906148529894661514678812537745246573644833453894865091629769468727981639979729821225521987921613135173843484529261263383642227935861796100557367701501472488432926897104940755025610027159567616189346686442555330651063379435408994410651368850974097679388208928549050665880289568178813219892911408890690498408622351042851388123466504440134184357085200618140399547872186444709942467640311779032960868101076736562677771154006164742992020818816715138284852496742276459207335820276389091107688677845044281707330806191574242097479201199738723999824794300496732388886659910652820354499865302893248354850223271608262086113783522866271848538628055918620815601135617959421990527339805988798841921877312589273609706703934556038931887419937723875128203185929228334293708541754968608616623689829283431014374483281130756347459745926350506327035158911758158203339779318867439534248296524740527135431777784746707285052410198132919772068867147936968565935342803720567077328893837564855664622061374047517594543139377717172243908677803824010226260274884859160474702069170435382127211655903903452878527396911820001773863334964272642826441269348969840115263054597254520373257881109269576143373416629732144776189637281541537878567046073209537742801218436969620574485272623694755350386118568843746262746111911101172013024157093665872228099687233285483871820919945987016119752918180100407838703163347849876674518164022955580851451356472813290207814507325812976490689325774122897538229351715904690180157217207166068765009184932492879548348346987881702582406897972457000222862650849924879251913226017524631473962588319635099983541648800401304975250588010182207307074847663628487413257781508430230492181526514840790480152253097961720023971348709616637754996915065422218713434169922577758404421430250898779383914558804744354912714995899229956427483044163159041926543238096418530795347940423708039319249261304669985115342005595938025111864000308335443148133627750560582521271649940916447305458858330724825652539566507796684800031418871186811750995806784150356082659042562070142113719587037366314588730964298676572539670718079923469443076203720016954755639838378108455976568574465790402777158023628593477659104820673788815196477050957421637883942655874879781554824882159846359411450739911626471677086857708007148931238978452582914171818782626180545806522858896484584336701669250971563298758532094942145283219753576145720962143631828118785388408870578291779342649085781433896050055616354065820005777219705195033536294381929494305384241143926583793067551753791621371772678030786276525042597413921991445535485850534743680875569139249818033181537750910277152702216262213748825536331459789024175975145729752130722890255782670251739339644504359139869751465375670940054129463740962345427775149092625866227019727386224294387639637902768006061716214819024156872859082486594787253470901972465953192419062850721761966247877827036387194721388614446311347453144628775306540931671015300003457288945663525476487415736449105135424029082954217010296340785275639090732330204305183614185425861874002798398438403667922436780651082034150962833963772421250076919808640716157409787118404613628852926147054272240266446219075978014633286865950002332858358499000311963828599340256968361596079578969140486773047625141755038319148179764050455503051568232551546586979228099153332840760330675212018928197445252602752559044626908689161422423140105090282748455816459150988289312253438203760791140640130284676852345934835644086764441926991024051774430224087119450021263212228434584418613683760103815651267465582163012475500870296372622022452919918592640340656153770853318507493634757551471528088918187931913645942781897816648983352783748539721042170669467939958851395198961241070791219661512674728567184192668558118406134478455651366867776136124896010332317746368189164280214402355350222578992042556708190888049876199576628154539763174579053833944963221767281703798700818631946363634549557296613326364006929647712736657260507094489019099146312898740805864709084096881787703180680465739450840166692248755707408430147484146091686772905424063502833560571007372368229765607692643073406260569652727601411791473660635159819710497931584505374091292194000159108733796305994961216161439109634322168465422348082825642597678349357295930483645945122538733831158540886637279365322182567115706439411691458869993233314309735758371433074102710057236827427848680518652467314522426673838636320935008981692416008434059389411173377792008042600170615634637936172005581585980926028580032197121749470324337373753394065438310868278018473814460244937252163050127286077607717268850302942661418796415262302140510584870909639515246489931359062464384242675471872209968333006734434281820479477781008675786601796234824065717045315487379776042677567806927286009984416398219266064481930211042969373014898375544519298805711785558399660099987734657241367397475596376876766119604310246040397843872875387109337434038226904635758574453753152298481639536925765522034684622604157818252704120855969536131650603596658671676624771775530685669228293279525638310868031217362291087493401659638080940678308559177241046149727760075994440101202366843534509531349253354859580427182067685351095858329117434905261504383695639566245217319657853021966485678396869174490012263548118994630705950338661215031312777619288654244296293937453805201794066724466679578240226293290844238820866442888999146913722250425470465140378006472787499652374242693490155318199441131882460820084047759853224818421543695271277588139123538780193955243361715535078449173926457803059173659167409351782323305182495939225889283270268135456477994164901344384529029070663393110740713674402293785128291786550126060037514111677489253766776776531596593906522152526372597202464201899319972030687681328586066301438239113848645292120962406854536481379298995789519189933438879132056821613503721743280293091697695536967813907334765775710166948282658024201542685580459177336482627599302543243013858955380572447744365152830269112569281738906000865681211686490877032746307283032476679895862910050909122722258480810123583628634530768373937462230375846627419997825936052156595408001730852494780136580976127818385982392051243908841387302831015493976588430539314009412884508340805089025072333162414089347806207718015136473279395106998995323951206453821006349602111345017234062843127254927059259315780320926796539569924282991254736462777102267705350067344007918291250356450075370317360997372261932689679298448414572669404609758181901117732027180109998320911266975650737492218946337696119598387942120625519450921022840567665732286625454179793219221612104515653623286593210479698012349659768637598712243477562175032438997218231864386030870608148452082334103577113509217138872608656360250520055386834058367154237130464875001504659085864473162579848041830345431909292384864652820833329751510853532139456715678110833748321704665419528451813872632215812267947847144899973534504143392375975892005291579409100662982482728600651483676672655921999204984778710706474472416455249763774442409057823255358234782836356474751459794183206489458466214849595879977877415863642519493068281238977836476781072716071946817358614417700611653899567744186794346918764790175715155813067476778365255625414929163296348789178435884975849028198037319852324603464277095680681962909044935107573691844911005765439583591518413849070574084976515643630294931423467503122534981345060503100652265201416226147831434862051772222610783341017745821402059657212878684321982154673974344553444684654973168083215027839615544864844711010495926978803214516629351415257026382246010429496394029130657962584048806130234592445274528166318380394931875419861712200124144225927356573878827663848785874821338596674106610641938444849870328438232710158477817844508253305007929469762000624029841674562848583528969955512933941155472000390455414823624251358640502004167828969144822477908411449448764559848395126639549000359495237546224788134037441271229485872227147239538885218748690742503265745797143764791570162387841687007372930137871951323307678309005487335399129170453865938460342292099305314840001790447427161953026791800034449374657792608043678365435146245636692421160585677579692588395221017503895338240330782344659973403310550343265250416248707361223296624042958591834616883867314092927007588670129994766889412270029722117967884418245957127075966615014553047951389066871966387300446143149869261289172664154660301789143079427882328490389383694493868590865936651625062384421369126561040322641958848912220148651259236127647050607525690843012468828575225412141269141365399268831460026456839173335140482435779855040344846651491310387438937536285160772953769676064271345890534581383231117421022593779337258809912274409677917080571136894820697611724729178858668369994671420342344832581772879970736043708084977226339556689132816713177415995529134438206168767623327207907783555285165735302047400623938487147461754049476125306807871922530921181694001383331643465144508566877299545061465638491570891094168926760541887485351865085651492625827074066349055259831443525599861268401941386066606135976560125478781560454777997725572987407797362781279275765146730019213290848891592690177809237436543039831087723560783031019262409875809796404957491644179857915874060629405362486338330983601970208779928433212202418933725455694746850126269146738689302482827102044513992874212128912138911309986418733947465539640880434941776700744242111624292641112934603487669685830290855879185537303738240395300398455517189521696423207974788784381591061335975848031783102237011654427480760004566418079532717657290410747428237696777719594671725355860678517830527462409910146789681026665512913470356848974847937128934389687856871320259861537699315874164224038174267648239491349205012386393336730847633710524238888478741887558259405275888589779636997483966829281163527405691418285806223843164150708307334845281134907093292580197972521487491114440131026608571217952830846829608213291424335085390932517866195923740157336424244807491629971885104625732198825553161820649650748726285947831935336095958858128311329661279676565518599534513528943357133489750139597035986867251182120909823623932233501701784012789576607317570879062375504518828258826881566663205536175306693796158648327764203105891823309677952458142900796045498681488771176452355498645683663424361503564989231963526143238277318088251217028764081080350353148032899390941850959869157811144048440005498182203582832499507845177921270310377976861629025791656564595019151296295967757885324066743907946844537116097568171520850550578022844411126862843938920301931696040706296722552260111102733150111658583603888683690576874124003545780245675192728526574281433398440324806770593363392063060475592838647830034905581707971885444353685107511116348092095893164408880362248979652046291104686589330624495645433284188930909482322152373788009322461524225443949287351664609992205676209297867484742162526218283544026476713064664226401118725561947738841052092740553645337563422817400632859418849472495735040346135089904105167165534376046740010190570026020162256673974144009740885940628396814703083857287222405946255874836843660789931729214891435958519296481398192330915220545041395710718525450485758609390579777845776764391131672812430892157294040366877380530668854612996876642590193088351151211452605426358971293493128589138813655169802993522864069761292270327640830772054839433395599049714571018396867658590764939369244261561860223422420214310431488312850732372242549616831497821477737446912887110590208751126183204136338926338848248428227043173182929577249355455603768108113604467419009032126614326226060169106018148317752644481022574926610886019161634303674294619892188397257992679388230258165857870120962543636370758173880348711208702402015902585211771396787336742383519052120580549362107849478944465556400952119050397634012752260108951870787918983600107725170903472403054317417116305190319446421411552181503339635277627211957312940991866055663384673150497890515809100718990064259795337972418647754565021050392137704306610088628530042961003240350877959365261354208565347278649548969622317571568730368128456741731431309026818114462631828239993674757842544469522173009441211046139388267841867800266233079095229716619589250937668279977293897898673943810032395364366165724518063514810856953798193291466538458923297336936394538363582041761195099771910181397140149740078907758271668756961831560613713175379978696631740512202529710494181407870977648544632865384210901422759317397534606305680924104298392555542540680170778952751399712381781616203495039645830696525413661698998058672939529283953380630235495504772464610709804171804210279526533241021506141841106229686581180749309050083336146721191336412339734486148296551443168181162737829716051153237087083142447279677976099928370739596883568790970156039791817075386740480455016720870210339325691554062203513604167363340198653020232064668173590231711586208071084994782532485363303564981081802263553752469757987540675974734251645849378617157282196227071207341817510234106073442084547668138479630831595376467122493670624390761539710146696141352504655902338746927118422491856844784251556503250620828523651103177698307194558103764316334128348409741334329425031330585057380383855310752303715424799659311461393601990067700762521412608983415797262507418932124273859916021529921539098776234503624506317337075045093435408941675007435333408465830833482298326463132176031507003627438471938073631020007399347328461939949703143761783484692525674564264705729043361177205475517011998015716610717415098429037839196007527812207198104025067849063206339273594381364438048782883442312949991393979563927373025504407459339586327806525671342685154469085206501856853770434473516921057261334439801318708488336697209287727560327147120730798731278255376257392904259330185906024816451086208323524362445884166555345990561458427660428730314439206554148616376663435619936206753290174498777617176052614005047648317915345079441100267196800531088367992423805861083053424444633609835693448890900100353631909959854660968650006347385623462528279125747564821784445358683640164710437949497368480589912316711084433668898462122529132779031659605627700289011786117613084934867034652356576236323908901435901848363344244311945824687974903450852438144393631824082090818695065949749162856311677837556279487712384173548627922741000482870037532513382806530743664618582579409403776790683333415415482829693915290088320304425838148126411495109070938145789084567636308699650993201988334879534781485967595010549871177110772744744129022531345773814548177855926142230655011689551951031951556395774223658727541663369205556622525570955529582434285856415584833228710523444301036604949098831993787367857668532013607531302319851828291837590123594067500315156388035038814000634490652235609174896823217738560294488329948784951574095030641249953455510903285543636588293151272538815975362212580333716109976232299096713770193132399404409439123262861161834012050455712946032414750911074027957604086630770786699556657140095199676879477593192054609742273823577044473648580189002014033928001924544722811344537539936008735555558848039046422291367956840860180284048183083675405451346718125655316097513900204669874813184427099818572986519340087343157159450136717174896032869100986230521469378003653333649568879675258504071756961226630666577324916372565928967619660285081721330926496627534014208967236841303881837279147444846729455841382831288365591868446619502239075354251007965899056186457267943645529022597486076971068603824059547793065002230559637914603051758110599482485474481387064315392829278560571226848781224358612679638680667167363527105572507198362841849219376211050810231477216836298797434934285559884360809766854466643127426608942281172627176804394927288270592946670159227883480677498018672482213941475350094123905191626181146011552803423169167851239508338135444067366620745394185940194021390696862110138173734728750511307334415557454373737402681287628394804574352110167479539185924636393589868727271272062161194335214559029622462294392522372332515873955806361764723184972901955041551330237986265358167865137862835338577939751309156745714303421174228479277459041598941348749733307410071094034326764412518855357181664312106767144296749294990377193699394076222225036215698370516197894724565765484219959880408945116234735485348998506314418306628144202622760432152958932421796752733131217487854217117007022585077250052503446173997961618791518727373931162326512060995724200755603422781679652203160636502681884234277918750385429377269092057813233628762891060670171565476525434887670862369217879170680188155851800538605358212629461206921667081579114279511498694655477659296579589352441233262610371723228538874941086095183637309228007330886162281515877641470816314631082523591438614779263339530958616780614796350575689236155872447720248212225793257787372473450029116090626686497398707844274079135782578862660632270405770644557467824290138270872235597628798858309407197361033451757915503388775753222048140027485495406166494751547451681224529795736940087472084493072994720436836615230701782101276294074882340892561686422693755106785879153787159807194306317625906795367963431114789472946389746370356265287727426302048827530323650152747029823857588285206096051336414132328846409580241920482755302449495980555655787781893604447697254380559183892427063331904141202650253779076953491206783107919269248609106514366004360899890049762881728652567081833716401162563533395218746694631511343773486919256789009550631744943759400330445203615773948501054403963146015202200870500885704758221262099026933122121114432415445497551764707364547711909690102767992557015101733495875322922833961755626355136013440109928249989838020320104109745714414468915399557010079689784372723650163806753183093586147940144035221526847451126265645921531726048195913307877397167579675401700703022760327762168576485261017904555727076152312596962896287143043376512388390582192779176097892976629591952450478159934651463884226382579129142162526703992820258782638756070787486911324002627400288485320080958390535596912792113426068268814560090097046153721875469714230953818760174245405893274511666374722567397415170046068879470179937429256591470074876583640349406827429752531927615963066379505277951084900984682947949749688543027236134465814083267763798493354885485172375340802553260181381696105374061187151055709058377715647970259776856752413996559542716104399815522183885668126913079269585358078943305743525115174313492366537961890325168392810565688432368726621697782376773077695697957547027343764431804496529220104265759410547680635994789555026138528942467412727557898018549940099078459068801249568940658291426080170097768891186167589693170217325899846117168595106047780656338445995288536648842723310200441931109399336401788696757239666765858461110274546059077862929105863891636334607136394707953409339713511434558633696846758084824154083777515308389538254093086114367017140670630199144969130331251972505972840785815449835525878330767710249563045510890355442475246686744653808693043608959836467266643197154667380058616590429634118908760836145193696328283988359414357344548879491421380173812905484051438582032217728280891330923018287533280594848387102727497608980537035150864426355604019249518326754820093560445195107586758612239142361791838429537495899215813112389555110637509483694768101901416642924859753660262024966922655284815587875536712230728208326860491981420961424018357817309010900251622297398811838254668598517329677797253823576239113332392959172867129607406623597561175450746249829884965564948963797837387153675792486250316231379621944742463998015134667163698354008703462739582846782360044431955082833781526407573415391138278360879951728289445643843490141122159252207540815622833040816079733764820867723052343228402461012588132039712498979585439920424568797927841406069076614177697834993131059295324585576177807302572484280720305520360691502930438529055655639429471065758083887231491076870890452741594815396287788191090085893981546104863553370170452891335156512300900262347527422020384242203755994788099704803867971162017610807470315942855479895450035369227545696739106100507908775643557053514292452269206053120482691987297373570754877178530956991314758764862218776655859857536270925885851754823408260119515382653819964112195324147259989508861931646271592604287350215709274644570228541955209187230619795081101971306630310208355592253376215138520072867931280679440661408072182721744712721368796216991695480458311567199277280897892015223142950733343701726904655164844282027127404547005279783638055815496026499335427484910700426084198058100305422262432138496716844062312378459360955415221396067351569417723845407922140026471826110702340571679919978723042204650593039500491238788133512225810929916212362233099390542600215089914168446217826087207410690824385572891262928686750552863555010566277254315165394913470993687461410810381415523957387931721212905384334117675559956528213098681409547413451511390444853142646974202472735012415568917781052382281361239350760326343013812310288041285472109151452067740522804132732481673509922314069607377147935065275239494181341946444559127393963800395585788573197624884106737562451539473341174175104872575041013249781288641342891240930084623218415392864027231418591534478660135024454433199898915159611034470913208736272444845012886847484364434560544040030743500713324182054458973369325594112251922625923715365863020494256070471963805897201372476313498429346273705582904270261265991719581832617697697596420831780938456671577753368006087440166741568344157184001179409047512353731643164157933362029631305801688940207287910455105584803340405795218690601385496063717309789181262781056274905056360080925079910756740251974710129715778276301538622493169924507929959667303184189612913764407326329166106739685093525769298239798477990444650749688134244011314185622941437500128699128892423284377249159349264492784873096005600328425333586360386437753797910962811868451361277075887662789848962217476286390483363584052567871024513822369089096321404789593308891118630795783036612045880681876771119625805996489741732860593876880258082336733922403050385104554612774014847833589817819404048644705851949734047097881428843463369360666746920662631719899678112033512380218784250458470681270347728737420730396212210793228495028919281268133837854912313595319124278950277842676637108915153884464311350589365980411740825357914096586987931801351566641938226775825995518118923400222554648784760130141228117846052147638070504902358744177635079217693484096582550167638407112885179498017247781505470882177504104417174603608346620599033236452642009572453113446710564181874393489320102559714755495806189987892401480037801739047443966801193020987964908417123089469661885849600047138331335624253240766649622702162018322709060972715733839334695190392154042341463014044304976810377707007565723088497944892260275833309494356907540506052580117251771124772562616316730885584362237141766772786608896992329394652338810395002266930343527033066327355185865756450874628848887270381686469982105281093397414724584689653437883441620530222237838234739409460504172411987555182874033254839306568442229486544902959736525343230865121271380430577616929453147256811011362780185325957455682765728843205308617610587732903966998230314987993014803693795214970606004533200956123728815581960659495559245216612380411446837354421085255813228320089306490345627890170608680754820287323650821937428274027937113554129140324121111746764994297566540741312554364490668363908986594986737749090205688543566249257334480670449417041450885564306817517564485467311508416095584488133659731200094397933968229850725649460139883417709140466503631693391556383227572752354849559048982511247451108214326609080583109350739809616310246186960666925868604990037328324345519643110277915326254345348364634463537065020042826629763945356425416665926314306707764331505309410842356356302455287789022836051503755914656956856447122917963286005998950381930069270922192024134242465271140649845860492139108643536776983444440630878243924338898430082551916744115261858285572676582186427572408234275434578282639056293063545706503485697209835810154963132766397367186634161244451203641032649344014531398464072211215488144332618546398951554552138995255773001741688640646034711462513143663417118694589169689542815734527599709016164920944617170404531919812365877448157549074410327498433407968510080262676742155771216884202224934850608656581192120201254533238368204000625671518602863796499129863707198621032243624708822018468296516335912430010883266239297388416879666712337266702048505469398802833247193355176084037776455526199833558853786312593557501642694907056261349093010007428781105215021321504192427086622559499058192963297222844461521026279928282769451646705012498054636070100231649638736580863404460800782436705325051211891086409183594489122010239532197447837121900621521755654661678878017990291217362035094040411939364554542240650366633359048925077389259003206134863806562866519442506998782440530003959162882016839088068636149284794789433488238983695023996739415528186152250138025895092681351342133669640662128842094281522048029418152656548945846898693702509739433677697924309283359424241621692666839317318722400603612079088248976854600949104583714494581024114523503558345764078869392786421340083457932611671686746488441229531080127110911794754160566135008786094491283065043607662983280526928208626120938734500090267124534119777393927875632605255049730905284148480734066257237349951936149867016690461376896371477316235947282868274033243838789450984034849196968850264292667360261655021206057213032844591095888489144297611108562743111908187274226396398693837676124572204810275710103061014368455385820953215178420616473004519714681569200921577979960836481093520658055919155074832810130428504447924063207154749370612375565479135773146882992515859144182209609486498701709705657724106740692299915115606013377674214247114499575694780155430417325850834612996941225297808956111755940377458631496006173243168187842850708772094665443667272349513057357583409580653929412048544484968783187062915231652858596443284788919957789661738793545131180246280441992060458257495920549739102042384815309277831094266137508565021384236044933072045794506719547288666610816049118781011303589204032465025846230482271133774480809235340336469929486925256498180425953615100911538089402386542881703675032488782084882147033171477300291821977365575341517997507083860638195211496011832316599913814776006078751162952243071463753483740932901241915264135707925015270542612657481059170389535526994857371449854970423940917865600680424175784440324815317338109642448167090645756315850707198440593507185603422913053608823375465823858600248399371969662872057475729274508124666007254322339463513662583227535872859932100517429051103649189342357263832997542819156200261778612304600511383786011360100323477801026717634126261390693696863154693146931853530252364255594199426501610332083599538940666175632526789360306552472545984883371078275525746220325932184825668535705742381202787139657300134181501291533731438427815610551578227377905515928788521076832404998745009071776922875838064407569633368739600299437511701579898194820332916169763968436982466597311427385377277533804115619483164220217374392158191553013972670148166902465967607354063938676944786843799413360886695207263784102297069734008801592235827973534370512743147195515086199291825558215558898602892921270131703586258725858608123898807145563659440665135976569436725913023907954899244522367859573526674583432839963106676324807445125393106663908798056753132951886104097053399377494977028186207737332927830577083873453605066803200139088157199028360872582068444002281776432570783036402063680158461657267604341251481007406101880520289568535971454593131563986738681609727536130627281658851330079254666223617082180301681402124740131374392219183195287555671271897474760857784711818015119269068360445410996520883542242833518108933873047517724192631205568077826351332753401066182248431859732745117577813600124380383871034116805226991768519458212544398413743995017942166865536840308258139934020692353028686883188355879092852330723152969133272802660879018210271525885424224707118913649376962361571153789219844329602409189477740219951589766700500004330672139572011442096005679448061356512709435972024107603306567755414875726882360161828990393721329111176193099474451052457913305102555603121004066011805235041270505430406543916582949680477419912664585112031091048947836155632348783854293395901344662425877865462291349915922709546973894916752445465001738136019525293714148315788094341387058553893340089797742587971110073812472829700762879304892138368035382131868552319133096587334530637274928356146320428596756056914588451431798841701948388784588682978173729219210401843338711926133099967264210320018813312533164782942692663493337918969411112419060254902917389892450575524352499701174256401591037060123217327191732035405341539437848424804250148684023912984541309946397104858025903026640857091291284180983823266801730433441914122261245178037924527313015995843791629551654555594209704200439415887043933028971623747141552039932795205399693445913348763027428281500848126567265189115243175281104583590729807753848479230970258360794021179311576137832246492135218988106561287149318315300975755653558933986779737846043070552494530253921001792854447501770290334519580159851178745576083451676177309517256525210399537645103738093269607381232108577580998783713510929919198803631524466580157817554159530439615382302631356720110544105186102242207330309104163653763847617450040334594723422732173387186812829746234165811506587570480881988970213965696516687623581495143724917661752367886525109843725811390239106143734680379000296388236041136460996594586856424882491551592428105485959879243399578063613078129439992302148155570471995321152881936865656959834414023260476304977584862386476262371501862425798390811606952075522562910314844636250464834023025517376255574421229968523099726839016619224262991278574012237956211526409358762155415410364312793344100262754110955206129595306737672544517139249170064780435275441402952334829791203284111837627750247332492287876211002869694944804788879428068995104916552094461696686837238643534424970246277412843764128650654657849491695215148332699277266177248398315838799804281448486520950057347720473201534889623953803306583575165530186828972829319361484638162432162311426873106817341780660579431421526825373857884463682415153134066199107581233352429772574823097624168396686125739724020574842640036932360013976547644490814709477006696769822450116794345607301485860506940181817176265480110439682946024771344513792257402034320574315629546723943952341183452360415066351151575022271491033865194374478081638973802461250858577567603594163986544423728036698641667714359929490251504366663970332422755700127662932430917041201218208928708649986953938116979520023682821353782755341481550806866650457481318079588771215012482884320640490803205932796544496959506012029922566459968803519459051986244801279177022677753886918379785792004538486551025513169650234563046740583941504867385200269247166485108025121047177098572550250761831085183691075822797497737344967101025862428396453665262225096095156589833841603349158438084372438557006979628134031947144873295423725229833457922083275094575748423401607590018381968169320578480773809715051981162731826088772072934700470141572072053731194794664117771913034699330557979304873705481161338179083897743871221735425360647091455778605301168467423352231845900451474138821532060952393624624576927150417179989356774821477746578121880437466099815766815395846862654936815055732039799509171114766891910554722167115934623307917441954703313750962455624736239073532388812362981521844153830377854724933132063367346590257878605979761225795964645302990482877574731425048557870371244651940696815027055263359839202376427338211337666716077571078311425560482734993043497984023770199827069568084658430907949375524522423433108307892936253981043822246807777921765853938415590521869403059905652353201973820907889392658101163398800591170180285434095170394880736385727792415254882684359115792333860735815783994924974070992920204285560655761535265403323568653741945588999895279219017916735738384256500567742181976853093868880402028524644972809346354253070594077933705292207306130301680287051029983112033396985172148964878651794790290910998301201539611846598595555320867159242328909388888982489950576246787762683555095078901458488847646211071715752505880284789754515538997902750342780191230918258154349437149937692827677889512792152115272841288769412638237173281775422617388301701585947762866770107890621989751748846713346338719185980640777731611398275426135041080218050526392053447443980875167928857168282090900947626407550077443017834550124960469713382660868605243565553762396194151784286263414892614231705275376889782870017537894887667085828312259148242747702873184350857459911526408457002367811346898734583611802744570286539644191419415489882677889307905144065100569060487626469029078167063331815109816567756865520901501099907051334297867024928851336697075222411458158379025812030423632711072657225585860696903262011263428484263453391029038079558678129759862927721882979981646271708531830532753559850865615789611517391923211465613295832388436647247913953440076974438213685742519798413327582987758215558743786543232483912608324540942351740186556204034153565818869955183175797918237301163662195867117393338263564635485081935426623392513488347049401969355503544972254544234291136727322473341850790720665648007970321645145049281130960569595407432415716872805779510874938299254643177942252131308299078017761777935388020205139814925411581029530374982265770524961066366597726369634945384929553850899780415586606414758179056118898876165018830303489727117918594684271966340833801458084198589465189103942721862076546514572917249684657546137696137247743631838136871228682547675415259340147093650880812960579858071522582049713421248781952234691258271362590519871650883962582155203225549439160168680755894584819324366016709727036899874413888362371022515753618078098653930554447868087832315477340976392513018283550778198262454971214900139962322954154871717555312829970959635955349346441289007134555069218933259261458594861817128451978915401906350619308381859881211825340546849065176994222218623211363124773012206744258935403284635652072371821078372178100355925415785111478795766779716266972671206273299527459649541386502831816907896321081867711554522407790778162764652272067944549876761909931397256240712765670168156425504979237285017878764866667968109882628360202383913040299961984287498368698543634559735363463615967469135253474293193761743307517620420492299254059608115463459318633753461043347460468464389921859177096346576977962648636495787437358106144605836504573925901053593496264637979587763152096060382618363010666970964537335895252683606260459467972847106140507959165234292060772870964754140090612513075187237461359953145536632139527451522293200560537458900471425392427988122413628130803258488795237148265366849038850665447511967029720954941069183376364217202340633079328308737572526414479236235031700892627808432855015466268435421761233662842920802389745635674198898264578944554840301897854383452436398260852803449846798536763266751031311346909324104539753242885045375339633707040672965080014173253160814911493760588611613360090519729150010124627236240335761097991289879652815823791822458582209662593171984197414887074146502994030889023584320056591900399026876998041824217191526708400146209574783522636558653904611099310653686968685078687204169121213422967041609874790482140661364505061824581873348809253442903782325723802842150361815009225770055258339520502278759979619425481448752444263612414018895137361961713467746349512397851206631540208188151763405168705639486492823639516647588280172490333998703873389056686199677101423773055776149334449782017556914019178097177583540226830012847934538202608620315033655712781145117622538431220023513914755623497770652960199793569120125198571077065985236132668110332061478404148638989763169848119238399539281926523368333553771176203842725213577509183250099293220547509870731704849817531645046675262864404977292868275671210819003814986763192859889534254890160765274350678241866562277694145825755014899879106105086841770472844439996350641021758478659604872776742149742475682985521398702216482224727412326370042513024297832549296707879517567644749257300982100354263794672523250184312391942402764834782536036942372699955080381884056980099474953914528450986477667646623603590801733335593126322913605927418265856783328397302777437769034366766653887016969677844816277670117612685357905450159245049378974418835880612037319191326440397729139636036361196751015117449302477352329910815023534814412838713615325314128901667013723994095356728535218971397885433168155863690084568512271143503956812886222576562060240943541256517767751302475482650383594685100618240175722116279748032593026873884661883231783193824527101707648590769337986772705148117150843016093967061510857014969556497080654316876299247616545089461536926796998399963969487837059751182877144283679291332080816890290441278275801628193250996500369936279855838519527250999765101708977670954338778266356915232869002222227489618003053061116755356553582397465099740386357458158110357871109839316670689730321579781592027456277311303996473229672407049824219394097357939208361652954257915886215370933875983632649961304452051415513331377969744321059561302529743429628727206628617681688767282828719160517793781142047744863842698441798452001709790209834296530387285510707824484175609647315465649377282118261887146740184359839062685383535050549565113851842018972092533150697707275732547401674129868713021575877717206339338126149781090195333914094687360936388640968271341448315613758622317449624233597069024062299395842552438640875491076653827229944343603644231713636181120383583501035387394399313260794363000910343169089930476540520759833101345633439757063148481187277716152962517660040910187233214293180609476576640225228548226474565618769541219625970980231362624565397376808375946256193803096868069574264558771102054889528186990381621871036099739803646527765136709184073475860140960403197936570125960154674509184800208013467128063296208140176358778998472084359604366204438077088797056335562197427314304691564432592364609101048725183751838013375379230485314400791271114495287585138096371473843061973123355907778851937409710984648382159215083870499925700087419575021974497321785419706318877960666156913567979166701377175044741714922756028857179139768508815367991370812454361672232270033558125743252432230424483231739862804600328102222832649927283224488830567817238153202772091593485556454474492509583566207910018111125328416989436828540948838180896851470332202955502766359338644683690673206385722089461146967780858975648623261997743345862546860192849048663797990144221817561244792521964544212335635089945328718006786546046672506883896178988307845288527361447560149227473272532864845377680999818343123092930623958411487651764652292382751194582726984818032779336706894903642236480719384387827944081528837306229727941555411587845277293773334214597252858742378442946955776223556378140439224253788113071309861963640466973216616474673573024055584244679805173018072352481223617112048748702219076132946438973639525469564464516675751596488079641743100573978548298769958737371363187241571132152932944281226440160529138232449494218621606742815614692614957644506811628915335853841337547797038145970536898865350638749335218101837777080796656990305562701487723452080866554679392922936632886219051220625414157639372261578214929299233059654961394479558432235811268918004628935549234242577359801243662685202866547317235621855426767082583323332027205631742594598271753558503509125374683766080602453566555621400715444650604722111534581315067431912578752310790510091277169395666230179902071186728764682416760655184438214521808336444200986432196461026379765541016867375774001152430559576277998718929228651276918090077910062580056369936059301704709344030189390316767985419090750984244882026011074262191523300120433453304066542557556130205424477967929436173942044041630093610834905982737639743749591940599349997849183160330247106876571594350711268749820293628133373865839449274314397561245640783107714424004773457346070184874602049952334587938857668509200679243357569544763505580847121553023632375713995853657073260094610522788146191790952718754474037194972464085374513817304293440426615457930645861450765816328853199501272511903993209854821810019900933947615301211773719058413317060371426149606658871513031355314405493577770551363916058549039232698067856705631145056059240495047666792266382639834112537019349901177883540205687231612162598949768582073362411253516878409345126310927252364524312080702257637761547936895004208510326675443099524778355713797082910195872858526118392592896654423523420673802846536529746503491632674368596486227988071384418214161824678685293459456538775037283297439723719720556620697465593182088319982256983286920450330552263263021058274926837221583526400112334498119577268664190958337865404376775854613485449383846999250727179403739822800312445096023904897288619917972153121661727007255490307441076284979605140096928812067953094071152283508631711075365378954081396924009425537697363601343692079632418366657582228244269400532563964329876305645790359440001741125499365917901763585865275420594722199880036290216752174804617787666289833154262461617209036108394381976181381109934874551553892509434558144236652391677807988436420216891344157487818483179733960835756350544508343783318337890319282988676799371364308011516291510908222508423476545419522904526933925729010845588751603721054082474755975468749320697542627845307730338677791315400244185689667358168973611482102174933362078654991913363280712634151729791156542224481426085168399321689580936853560010581984699646584924232165333195253553462038832166343592539037481178486735175077190792077461713707096425904977967454630343764268076904351382527922766636495386882486281318223667465191146886370129913718733695995878799420365769150789840921181187570747927144156779716297853881789226618317060341119890605496348681778051331687032765085522257817310926881043982589793110034301595909745710755040469910831430496642824019989958619158197444824098415483044555900241548415185473753112789299948371553385612802725187397625911348832954912225333992844182276984937089773114820669590494209198431367152134640479545372312824927175486631116265819552853545450776337093701820685016831799659505061738409474395208828824329669047927587464920464199943096341514102718700217625123278553084634909429773827429814533855937929128951679928329464712727208247713299385836448919503078420623109283611968381017813245363741523228728267107117667140608053116801250989845212296338616317443902489889817464523118407929840144298275808221057534943196291597419498896413139126281953987004552414296442882028689602796443327191996262844328595273677992252133870289526003576475877166049570782591239430214216277090544168531132604365263371343180343865175973173693779381306949912575170869911229061481409689299578969282023749135109294932229739046622480749049550174492797349598382689427331127923194082791375803153741755965252452321531096686144540266814202159088549854464856269256455422074339881806111283549030541609705699940619799046800193796367779995113615271595583102032496298890171005322883288788089388130149174028639625610613512729719487668142192801198673359610225077149610065819400193320202321306357232691599879782216686414198440171253853317758386158631398958053665877240276183336480997612025549482630698865015975677536252187203792787997969833574442381698631619973057965480334023032487670532311297729949246312714008300661724184551023314472076905846825279689100344299137378441155708975104963766593782873485405967323986889353846382077254434139553007554824611328457034690984005210739387106167870688916004520630389938280285515400920874385280811680964316332703821271743455094067479359677024299857397942594452113943879241769992620319206251753986953363795095160501037208318413788596963183168565510148890883647846702629216003116655717817406611248286023236825762185522619693655579835380745140003768175243478465412833530136887997779872764929129574342680028624442525354164676036486004984397340622296283768554466556829351674264849269901345921547667402814668962695363755130135220692550067954281539796693931136904062503430195044121206983437429502733727238992979785284421280820158489355099428053620891080823694159861181385043908975614435953806456401052520417304902620030114584732852878352376864130743760354505238701021095795320658814924589885858095723942290452106354354257103146013981346069750375595564857756653866846191540548753347096635377177478150330043558811826758300092158219697617815057740247925363665216986127408088377080090183175635489319750568962223599639093335618643980850767484468878028275536793583073317771024103971234659766389221246369739670171340387828714812370302934377868000213751450406500484241990582297453270108567371857907423443111338719396706001888798577523615118071669428803565319165461407570389496397211783784634388388561625034753853385797023966541481629365555306897332727739234781952108528150035255259669023827709868732103534621665694114073439219570251638282931692329875962048361638650500994062129336100814772480781543308026787356968253287969757326818547731051018754394738720179991107765380974336041592532235203613977148801701696396521302398688998234195300972429383665101349833626866194490392181059249797756196157622759627882529835466615154624330814323534808306436931773992185820594747869195092775317643349888811487866629936425247749969755891588535786750247558029730209431856635321540580371714842591877774341684071869188759006733458517404496000711779889224334356766147499899192660579002910297047399534724530461705285039384569396039308568698538008562401739620634289511628841101188542491332488777042561761185373495345382256100603412816614370792938192739690294459320321001576405688062407703193359585291942875541343236513352190406046976863974981096340273861487393415042997189408739715651694174972231243995976828850506203184913893228354201846567791486626874933769430328360768751553542032976277580999484236542949298284279026346856352309675249573317657770957221565568995965552261522976468495912045801858349795129109500745953524062484308594810718472078541639120473260565278185740898304936215763803340237797120747058033037793916361928349765222272631626658350183810429218882575415734171743720257893707531480093780755674314635963835392587007746961274481025490090683644127360423234511639538057883762366617782440276896116907036325218996081524990266874701437673475932430853684306818527818043591770953984549706880253692428631712259596370110202797287908857497791815577035711841739475606536609271196586484716160851661996933805334627931170571022255116515982492133521050632964653601840386710353649416855549143427210337641133252355463125650658083245835006306357455314007572476218045515846592610257228938240916368431571013797362874885795255110148952838577875645125404799210540030359209167446439126126932344150495906537620552210235920279093267344525226679422273123640168897751576957970676557425035147102265194192026007754431006302163121813126299147052413839387765244762303355423209398865723612225041578802559552499086523605455661270803291748674811111010503275256659528839713989759369373805032549252511060276900403644014238275328859496775197965546482229234834528979631384925444639280436714616250990377278780575686360356755577133605261160101172637098405295632355516961816204730334959349178139934010097185035313453349161936364870150089709447864547182506305479792500343957515169301595512851735315704289317781005145103606978203270502953385365816384015451487220171308230918419265746615854481764893028709627951170680988092018605238117104876177534317580828173398973743789134542955962373852323430500992714361536336633608048961752541304750073238356089411744089725617839060419606599203127281919608523124776852269826291480729305232015658762407237639367666355272210858063901973646072464473622987344969561497858079172874123922967184044560501789171906749196717059442911201908934643365378520953681048898485102265436396783296393123306083141538446151499678413872849508979360402723309569735115200916314798277784459318262309699844669931864239272499853293817539320432455618273902783560601876251357798427109819068823274815105893511180188451907586881776922205139070842442706651267777101110851005480814676519362670386101995038167308677498631570136513859950474426127076093168487871390615210954903586253418812199869018779415977215379404634291919270180021111402989897964836258908735775073739948387236189810383220782743979463573784781600277745459495605775008627097515156604225678884192518823407100990631959823003347455896511471905377299359626111239526387956490655246654869042344532554478964936531383167955999127728262050250072204510280865718803662517525637339855503941709898771176484687822049044809934145873924660326485616043874571522274989926013517715689252691773142771306330413159322346929806724483950602236100065812817921071377273136204863771554423794012952638820731726235566375488712897506537144656083274150232826941354767218929991556423774139676896672356765158072438142221258305818121231875947428426690886513238144611524781868130326570855709517080525763120690476587824383828906027554788747669831813201204819952184802958732780608842293656767459891845466896160869054220323713026950818482543679520498467835125646963642876197969923887131545974143537690205403631549755364998560978593808048139895237990256125223655125246164751241828878298845567156835401873573462117286924120454950020933975784542919802833204860610488668213361451678581185123809069600959820351600896581498501884758967421242144814024193723439867892220129997197907353441899348928245543406284380345872676452482054174415155093681123706662831244440804662820653038283870217466712663971168686046401757978729957335872989568695878990836197960615840247219259173693496016743172661036367159050037650440672192772194434646507129298882700040661373980074821191931133614460146795952582192911479687519773280246659631644942216411155973399399853727246756060523853759421542998690128329051537695231728737227509808921260405067363352324902419117431729796679261100950490749176732350607162536149426654787908078193501546997686799467773829449076193429644763826312376150881577199373959385109513451088084010239988650690290105693506274290690025613051797767707030736175484166519303936219582960113476252134202265677358103703266339888399632074842477710012570970929591030875084635400911214982573993146933650160223964876998141060446816524810576985654390159836290048096949881147072347053075500516448240931506251097651361181709876798063599890477185707537219003394497830183344772436031804609521690854789780421187814991871441800985457443877194690345101771861094148976537325586735211220977698379401012015967383509900560560245878253304021640195841104743813858998041375432765282666307578756289978221491099856183214083665130525434680760078915936305917228145623747761783988166320245697728699343542946950768062680827031834684517720474679280920982029541760420774384846769805380882290763018621644693899527991848620880460244177979243006806377278510749460833477739078557494560852360557286434101375478398369100871287837172375940470794534095259365200235919532902971865301454028624985315590108264022444895405610698764267139526182752060598520529952204228716182652391533112450692947471573321805545629583549623655070701016611362583382450368544815621843360693063118391226861684560046112995331961347123971774258755972574757518909465230623471245466314215408676306907970071899455271319289020607790232118107829437925177937748122159211405726130790925089103873960786534293254173141059286035709309759708088887095993912780685432910842334072559030236504202392405817412710727747772594077331488077728637214952173080397579223487366710797321796082376730420315754873197047008473767480303996003912428417630119192470987339846902807800516739220989761037284143880201473040415694259779639084662464548281288222658953678408824968510626987323641721317993574475126964130888889666444031422758348074241523302814003003743357387735847164778288573562386660351412463023508371606597194905935101040734855129390353154684270062190387447525165025719651068894280945956264604586537765314728322233270299190329210191535722793462733881637306054927034127191906829431622630066259070364057355012748109591789742296925546591738534944515344621806315050325915230506261428716378966304921632528423631008468648182650033593082311719445925098407637498979693487445142905800685235354657031711748145512095701676450635641164486093502235204715912348689701377973711862275785404434370384537832898954470848381544235165261088644689478336082707221341924876842041665636869147142868078281073712426860390251591814932756498632750071933558749740308252411137256119614627892387203125543140535830919743090872865063115278689544023132454368987410654827550393090338409542532892366474224087994866063826646425744928967508525583400928520579153986539629145291970620378323054384873546357685329480998058335059193570271503595990688067814109483336918613811200699078971450230459405222914260705281169550374427051470147454699698824687182891385835407500944771747619968138935303291782661026582597350909050047067669372009560781480094586729893034479904014924003423282417352619378246007647125986078043691336192748004408702957698675160448814088947063955957047903592433601552234496593877364416736484440607575149380302266411675204503887670938967445943886002766850945053603820202908520503793575636119857663197682214699929480710504028740471685889280681203551126554671293114488235866069091511317833231312801408280269670737698922598164438127841009141209198052847557163929189247583567257389778883142738921698735274943339475595930813655765906180711230634024082222223196521833329044490195617692474179702684955289080413138901095747050943648286966211350256702840052685606380899728748618598706628973258516021349218178186920054040061188178864126221082089993204316695418818409292066089277487440460011902665501351743374206477624607246954014801574184047794496165080990799879287331908243942560596151378587267427171003989040106531446363624754270858988409968303870077534918170657429209476062111181989382256608000542765562665035880468581365827341155800532551617149038810748052939420778241681746625023695946875209743563850305038209761281942310705897842733792232935676561575323829563540823623895605913328979352676844494418701331956090227650778724177135043672615805675870627824065704221029915623176425358850160212209852943422364747668114587807172211508030158201575878558364292857971871427852768120518435697144439790341750701530606179660130971888326369617138917961392986081024472161202989628541767028220417737640924857576907128939530349562256612150753228813532474116197214644357935523942783283810350280004754136349624101337500383846607399893327415514863243487489954213555957988733029059749527190870902047039192010747934443117983706644418081572005741558396194779801290520330560241331116052607676666115659774619172041045293344577088153529612775941563530962163961848315644514874943594343972817307449491482856021547938995029086307650630091619412513722097916351533217777515514463134977396033778633788709997836181877188417529373456100716336195662579428946468428634875736222248149612807745109264274317599699647557800465878350607848044794235015174383204164461199855585671234584406543880292758867545615247660394541317049684987643866225162969900467786999854156443507757526555934501419540157491467169644881324468290078129475513486745365149498629799094030592514098618935027650565272894294732476264692394911622508146492914310731515846391184521202042469403629623166661018576708589031175725671178163516565726613691485738058024600851206692138620499171907872116214977746449731113696834683512028488481933542130176073496961252615786312136183037883008633436460914415293239917183427882937755427723317358620843586671883324563954646003738719380490428240986427739554495141023025782742693842763130036798700750653668816796544428055143701745739990381076474572687024589483976187446000885650064848772188895067531223505081183557949427666319710618899790282736600822756681688829972940747599134081684864863560805933123627190363577985848298617692273585008423187734306455588910114020343444979082880355496236522373575449390610145321295273178828201789086362391033298581227484413071691193057430093920337493628260318447044496502879453525880123408039282348117028155586886287367118084345772529455758616765261978550102780854549087769393680386576984519781009662771522072437012732468004376433248443883888809344292279423207118464995657728980590007015211706249340109846152580784745249773965985541543288342128040027241415716767357947051842932019928174025227312109261950753004459759278684430901206620738452950575412931230852387366639575945657694068688002714744890343352973114421481803605083280435520313080397747119737198540834960626294535994802510531404977172631113092951533711746282811143585817348892653861181322974741999509645446195028612436885835524557290052508816034907289063289364948824633988826547771507880886146647920049876246892280558824949707207143136915596367792544584790362932291344767834852965469656344437739366554941770869525634430729719954018898076511006512865872386138096063019587593361486061136753030580375087757488839445625240840226250858618366399729917838678281000452199526065792527775537588541072364512785238121228709841733851429691649295519851292541104969531208406251638575027653746128093939556135732028752814105594380261280682752294515640317158226827866870748238932745902716004360652589371915774332076757078808444057921573964920473801107879664170094664376754321413035285800071431224321313332565319676966853203389736633757829884901748895997974493920034933038244347751340146066566803365219978964582470876416836798786252052956737469072228525050773657214473899218437270714523309820876970866396979327140796666215218023860121566803342586721557237841919876216765687492507058203844555725027229223677248023103851572751872263922121720595922850802295417690797296012930011180289021507110707248423121708816218963612552670596675366926120039722846989424195090804239398643188744011821456242891404613486654482549800841023441528026958332680774190781941518715986606211612473936182337616200750489630552077573481610559544083659010734988575319849107217706987786293375750357919495926411227626567783022844647152556953454726258558480348717158351541882120942580007299090672404090842716488605350684851248629227967230489699845618787307827508583777974526427661608491575225795715867368505354360251910251189950434174596825456156953908323015852229196161200668249620396987165971746458215849576907421738936835149190472273214773659101659744653091837614872763899341250524760685536837040781120626370620293412838487727612136140146757702892898311173202423104418997096072240751150369977865948574728513640483226514032282002071782738335317002904368456612560319496837066596732387464796956911578156494691685735154512268694067119292256913505984236761809908074303291589636532952675272031438889647830256559127598889948964163006920232424467041819509790417249845618002737069145279267079898276597780971018752135993867493463812371163881879950375236820609401709940523729499242670446657652903906487077975615587776388798288122714322987477760793333144253577795763538715154033957596921890771442257396917110841389828597143211280373469031464656697463701408720389199792817776743129832566401906564263784634407403580083396450914080034216183271500591737894761009412339707430676033213812747887774483380722248685061948291331207247573809570578368813821078059157729968986872906561163675755176286280440323752384571200523263981402593101904974432724333061943051933509825918944163462691614637802299199376377878733786030832109716838488808987410268421292248471106225133220601979238382957126342444210189862230224633387338178553885548172802158487096640881015675236654493021937958192673569038974821699131139147113799704208946373187571087792628447709017899198922136963547600199784783972771132302496278477319979124311603970100271130954047868103658456109336828115784820557588923675974925588180772071881770956162917548239980772081646625022825846726232497398779882264112681432339061802333060347179017339187688992258921838725928683897692122256789842812227954502100688559042625275642347648063175660509991980873183959021910593814905911499888485471308164665713855286552703622991935038123780596495905274970802999283241788809013960982653104924139469863012151355537754659055701912396868208857405640161262742741921373381348185398197783932162142200736816501722273968188825751840862411579534242303803400375461521136357349857292323197747050874015149037648883803767917113460224980320706833918958569279342303489356586501260519875457961120716118742727837677949676021837236361906731739564405461749359168819648732786119226677202460874028989525789362100278538484004186304575742789019407362986635192341492277123064510428730757202604882158264533691251375579463153910943073477048275797819476386767735093593139273068956829617157899921209663305935699028531984628190242187469677475812159565822531336439920400071977473068661024455053945108264185956889275268904480894753304014004488365766155165811250363668585639805685981630820679942243246797676283968847930194823890438632959110874044580739382536707534396304133280983883655510810668869388358891004527653003816559348224795979463909613239915516832921454084547493337971340710241528750992240751917112673863135756847254217123607722714021323564119932681093379874094636997542175233731036301887866908044682365329394330213763360218106926975493503115352363043626150116130572716294988950809486627726797357214055665417014301277629092428064796034681787051484209487490697040746266138501877224800540524996497272943631576586713787335333137782348921839599386065563070006690093874379574287099399290151649758785943724705434910190968985680446950277040094805380525957318800206870447501192319806108338899234964464018054265053138410159008530689945070956843825034533520930592918134159848578296058007458624731967557053925528730082213224185081980861111092115095766114303390810760030337151202222237019925807268063237104539128110599702178470513788147408486888091890491394489344707572247923594084519110618927496490731276698638614909016063573708796652611020390990578310908629851796351846371582857233578805021257446534509448316954122709344028880441091651713014141755825751960134424773005666334627409262958402616128375198614435492164309718913937398112468083504943645119505770296370443800930605566010379015735802799825928038589768695412803591308737947815788393583421231157505821841611072607029993432544167878916455073779564006519992128384120268670323410436611903337138832161471224466086781267717006206630792582414763298327146414829995397557115486817976420638692072014345246702916049073654006262720711551816815740477521189005255878145292882443607086522615094689162917594417099041786495617800264470578956139552005276432870561173724116162369612263341990992111584143766458308413903735291509947034150051482906839584284989288775094304934953212996611739178092470549655819557189344042727587904618376395088489346820940837866850571984133236097919260144373676646982318968638453881491909719543792189970917118311495671918478742359160961663722003258637497434537606909768348417330893280991623656399464153794703714423149568824324425960880291172720040068549121320420132605105557819483705163851558280113228592149917769448649967450393173943026032111697601272596369383379886094105605512292700725809461559262706970291823288211373914229870757407247959645068457541227706945260695836123310422543754091458063381242978419475762424997531073304447517285705007014386213257179368362012941567955232550772722824175964584465761107909739240907386503619572809778843989627490710965138997265336907859401640925526063547209650286191195446962157837677291228216702434789287419380873459026770096011286584080900557625348835474313552021446933434466608327083501503043964556331765535028518348504409867014286786400838489582200881724967958593530705330298215208803167329404372057115765303173520848561409877993960891385793470417112033736637733093128961599530983400042964533697793525189780531639043924782128714787529106810748415974970911948781739024805397439122495136898424757372762905662535713160272150831902740457029903638707839457730300796519318624843945392149563995240980710792340315113348906913590312684840174861306826156607179877170178113888545117375250533277278754018785067567337642299110623109095356608544611543651114053368307428487708896684768169147557052027756097681301084664445033360701221074537576599517202953360209525968348440956253075432212436118979460606064311019678171104454287399260549842338453651367019503288716765758382547068818004308921799301270082742554121175444815618588099107286785677920347971906500689065496340733620468858714594463767759553616690548454931344069117453583269046550789640005561113808643736249827926079107936834922106427112969913682628182375664142104170738925851061464745066869533550971236060414369211783722334948805600608024824844869224839518688231639916492367286271366934816468909663943915115718366424616417470366798895730265185875822491825137382553183387057824893274212743310937479756317408380992267807116447848799774829585537944995204464352582056550836328545444868240084797028865659671063992216698033501224227091760864569527920282961577742962063715240068176654215557801679879983428063524883892326254850473761130932738004267611565023808013271162511810936218145209509524175381203210959895680521269012875040974650997236534153093450269044916407104541215366131871263583822675816980720961857471422098576905299195551181736943257380506279029443871908063284812147605799778714572849788167420211167305641178183297910988875105506299023253969907078425859863930368588666378332626921194849195950425262955245564338034913950039744916109529735456006997953842737456153917567992825649332193521521200548883607887889336696029190413012248294325829881490776685819576215572086589884360720953451730795058758248840705336757180778830578080102287559861296833251216059881938988253357357071584339482601321845045370266791230889029163911715503532411883745540135175183158060089543030963187450246818435766203445353048961971719147926572951954726530258229327972669802540779633022506829753239999167950745728376651117283681806771876762373736535394365776836593230390049873173260198335367195837794639803614724999223976813102160565722199885570315639306809720904823288489162491841583347851514699294443375307782614328815774797131896745804432814890412595151136406406017312584887964564085090151766952248784652745654173626214914560825683767115313698676538751662335215430619146700190758240513126054333638206178739909479394378628408499486690686508999795799453827343747636555985203581500602073320029228088123548069295082134379865901830710830455759511966773481781118226159294088080750259107818488388573851536690194892679749290393859670867536548030855155743315644284295279497244194122458050314383540230838995474435261117231498579323197338189776411529359896954481909585146917135082274064010849401333338488063251366681356370692832411908482415739076884901437303512565333100076827650232857790987833266870810380918930817438409975593031284479680995786574909796262743435265775333468345291210880318748328317456307034461012778035407780120427451225053488761919901014690838689994378425023090641966300418299870899608913609620775444631331139763651053061976988261174530984105317749113107487774536640564533372602858892283320060936212596513217970781622531783414615984358774797023737797299273438114648759308556981127710053984749315283467124481239947315818089945472136437152455501996108738588748141011831000500276517734248216412410804526861701095158367956594624491870474552981669968533169012931817453881628212961397720560108133414309325373792595470062368834825386257769319027943579044882834343549015006867551308800613384691773820809586525827237705717303153361320388654238246899448112667754618650201417729299328193950277681337378862111581165379107793280665243351803044719734605111529561649746672874768528415090405734306253764005146203477349030344959391282490267126378488138585966985382050804481028808321498815558723906035640428669488505392369921926457566526114594008573035631324003757391489351106588533918017497940627518088113971581860545824379546516050492461415819643318193027245565397118074990262519375314468019679967425474532727344468478724906589310395579860030174036249689042354306784041775389291091668062057854353531213219227418911516378747212706582519037276838772347366865553562853976471315829756002950120038261819560664657249758699434380355520824817950024932448024084126070690044116779234939197837155321582028618256784702249123035215810315574885561603465894429293733202670634844031259356769345705595532668012939016767054152834784987546966066835407787508702442131666144601875599950457244766005589961315982235057902063498777503281404037984987273910587013548477606827555699665265168231860602362773331991545435393672271884987074445212349155776193341326237839899127375264595882520266707566900502460173060543960558412111249762711531898980445526873280637747705110013244392331617831477048232656606639065423111493306408494038810962978131163189211615507082623078253129071854479002558709427788105107827552269421784306520462690235199642625125922202152911281679188950560103732393420656952571571768919539128684120585028601193316516110665980784424898569953612815230693038558950175174002068489198482910100629177854496748999251099810582493568571842142527346502182821986694336941123497279786566357556485502061902331800254262691929285323924714288992322375129508276457869732199519623105975235348057814964431644583941584780841792091482965184929907679482430077539699422853923889950491808928981301798135033378975797704261181484128829583402282819831721860960268757165407287362620358485762290012916950140068443268068255828744102778653214951331695560777803062358957225975786519378760385615669088182657250177110176842143958200819807923843707911206592056884185937031890662348612890787389039706592333605876333183681872238671959808004828375338252613215945969382189514269624571804982072604235747124026557361958110373050950752084806359304465500408549361479196548181675625965417912559886492798045786773386480652921633039969483898240532369090401339588184232819548752276908692876390692246886942459587081909924786718847667531813916104993929794964235115045403317905306344555272195118294692523623033043751956679608501033055497072152996565516702242983074164230005705216526579068062184767346336477346714627577081275929290914083523234985807487819701900911297415090964281184611670002709953313180526042652079400840443106824112454352850284867040806141560918063604592735037745834634897091690730226699568137974233559589414417671746887872231454468663029380072419746894520468876740388641743508682304822770791046620174281883139168392091998656005198139067755396993031711980067161997090247939617654612882832200947175662286746053126881989096481675667278196915573515438638526371941078819847005171495070405831072525805390912320033277821044917368163300323643364778862386578235665267002391901368637528743091854530990305966472488246396716409101176406767965029983345459348787900408704963639057934689119026591494494427451198354772437721025620469317400908713837810440354791848963841764928977479321570391473779843329371572417503295549819956378147825583767735887462769418371630495031113885664895883157172037332010750013893911452465935000387940673494624305043705483127894827434070916523727484596248724362186692749115066838868512388070420711441582584001945441970307107868471816492423457403289161844520165829186216634331856539166570610381212511632129928482473443356553553166881936194912380682705807896867437908245049749041811940552714106227688850675382675939337156389640414934594633219793612265356550318281762617467750469174141144561703426278475035501236577718816187874480677704429803453771177572300819609681893708196540391482613047938566299005872277791086308175194336730534727580375168537829073032693715783546564719215314226536391588994830468886304468804930857509686612112868564829088013000602877667013479148764171934881663647097148561994454851533225490174300605798887344054273301468131073951939238526383509089151070120789107176384477521522842321642347540553998349278621287070852681133514890145026333260475532719076678917265336225371215490163754556964160989076896429176813346396927106353652073815761450225550500713847258263481614909394567304259630281810675773376668258994224919155178061825463406698838447684062911692535832953759694662569737841189584630005156114205214876301177781055876431786228500564735915694372427198001602870940765617081967565119052033443319169096144813283521129198066230320542175922951365059585558741534762861136414199083216934537364233099252136174160644502410406507978393751221103081178722038498714614212183882579084070124740344106981034351013917166928382209216455561950740979067462987018713978213401665870745009666269191731206502173214711245596107390986405892146017418857277764057825593072623074163528920780183768674858681701486883213195434945458935966592318292369877190521844779827706450421770828625104079035998671469633909370845640721504950249364018378003386065160909342963573160344215143844217272776849706884700439057809574277097763209825983431295242680221369787845495289475828952313905261754086570042783701631116860677992871621525066011980776557063286334771574209988938962403483529445417346475445427227702499832838853660713308727648231777430422627436570895990709477715862750645028326010715406511815125426934182581764352372634140671516160550719421369025720163493902743536093276507463484056405251133782855334542411438857582756172412109325421457075933997171449331019169233572167222640100392795497478415391074515720197244220781709277521102092655670673848573690781413358130973381355657551936559950295306208391127044683574320390736563684444894350185375984193380769850930869527865416137488192909301911880769326346181802853466514703733386988335963696280396517480900238109236407995518886514604012248895406089022706147488160053875322136953393998824498913468716382300607926029001004373174008955880149980769865318169705599602721243173298202132642121889563378353015495287796437997948020932355695891480820535796272666739045312994193238495682745678936536276608780788401512110667367244700481959026960313183836669846981251908731162339883208606429204813036376012754840733225688823329590092324910945797269393291885050965125546937730658976398454300833174230376003910428964829230277134609879458282480398127863341415766694523867473254005376520319536704830459506431213533748880471733551831671959940826368256030418651225739054542602449945062545311159833342718078802247797773840444113487866129389481834419019228149858249433854653843607302675049701633800888718035329503603867101983684398216387320932292839049353538241065701460008282183202893672297613160336088253798482762655845576615600379332599481439490761467547058527242261902118699100579130349122449317696834085242056250927087821984753362061323729934973646060253675355331530619410467091181981030814659132020877771481516639814905558059204943711581720521521147128120777316493282161087393999177576999305664915281797989365173385691157522843331745467473514256774424992666011919779001817249921742498544261461497788141675265986676535673963407683934525897489067212449394400666931791371401137829457536744093903602244696745179522217839871638458550920439297452536280735449163431696503681713314323949300102124013938263741724126740901604843620755536495341593361612316461055383546243345780443774849063425856322198981843670101201277396603385135939105074391604387883373570224992965671426299612053986872580583829265633322846248469270569685059848940641356928772561922130903477852683303185650465306996415619093137368753518025996989578393718518364657314044880146494383150460864601707611453919949058378363870357109252223911196410742440290681557290304353401317274725340248121955025278938710907061741646998113959525298538777722463769953303361198150836008788968517798713853637948052378397434201017993641116123430715225034628566186664451920279772539434759416394906780353060663364138372901458342906878685367253037823309206062641058542833961699086423444946498308079294650849932486366972129844774333215816681272191072969949334649864295037846669245375565395142719936812466593799597743467430418716525520875715494243726644838470580737850646787988717308773935047506530266074735884900626907219588350395961847264982122891879813515940973978557529636772116462558792876939790016155831295160726484497989588390694445263999755072803986452582792387594882719205320369192933469367031706356265139710104712659232219050334453185636399311802478814420576494672411130080750338093748306162872501992257346935772651185262854772557483266885099696440910509915325522625332890241299322132322914609694423542787423452079689774833195706829842620470575470365629599723178076974200253817397542425052733923348349267422620728293708129647186384268509553614221289485453543779148598160067104878394296712378388629795924670521078221342428245413359602733462049395636771028036158778291600846828107830964243199908414591546415254831592638725095132832927486566660887721789770614490557779773889094011825282213762530529584946371652545996394332265206980502636859015038853099376051027006389843062276440717356417572704025879142612882179278851775370633380414551297268336785601777692623580495670259393898464804264879691117387297581513226392417371094369053936007428827510363074583020766834318321904236449658133524890278112623408721097098586749120901562073420640715107420355484813520415075316071605432571790077561608288140604137250783664142126360146277328608744401489168176470321968376677508758586398573138537633859722814476283497233916828462977834776258870968287904542225374876450075164983142180572462981398153236504142795762023429078380687416906173324416196805108164053831937297494676192496535635232057838976722595496241110857827648983079463776865144975849723683236615945286043492358781626246817721389743826628206349132328246372894967879070941827446315382629527847381633839101952697814214979870183017391875756224370770538972093854095055237276156753223156923010744700145643036663543256439913486031764059126791573875903350206573403400335769603817453764102142361377440039405294479049519900836137490635466231562301385137646369275501798126292941664691092768474631231289332208239642127052552255271337609402713357712832752951671882211022213882967223542239353104500729966336424441987210338795375610945476860692018103028822015007663765212685845666752283288016624732595884292177634505965603990468493046581305917405813793799511690777434014652793191901458707633488377956623040789964822854455390279130307252018108528189836516205680869885515576446367078726519651924251401237050595610072188888029998278733410646442380653077003732759910716078574347739025975338802483557424476751802926669643420403806071246949171552991998908601776039413897267625471089632777457560123463949493848441956243791035028756525065650470108066692183714464327668472934065874496065102217970271122168008241770921391804766839453345962867369098995639180107494146171433910552780192505284663946408575520414648681458514505905189979201184041785818612397626169796268668740596897565275653141897182081712716636500832090318563458190448022245757910418776801644554080169078823006689915327789109047463183490132827977834506819224153074977664099641294968262056484936667661418384777161425849975149022564165612073710073907836607096610982989721933520979693527817552418952488353804976431219447807808465943801844389556819696978044780292497751008267628007854112488013843031369118665281792632785609403274847081364284405640155887885748900281141127100782079578418354469185241670183467451820296065169054222526943526941728095238865352704961714088639167337491143572016054472054819924916409069963258202651417226163331235267108917777943998203806042309453425433108929275362427658600736550543408898255586452002873798595277650292514756848111018989462757888750134168536436548611204359181704060565538948978853099868867596851766239719891322601190620563428149212863244738813181506435811244305059371308172269421232849911328739387900969203760365798714503547181315923086827234395936487583367766649910890162329325565842436976311328807654718998987221591205245719097461119232717483173512544410602714477318222509541696642066267097469932172925337445274787524006515082401899527848616317035138073244359224522162161012379925597595055022889828193978373859648593906439049570550745119193350128317277918020755794230755981062585141448986801243236279429115830104552979547100925198173381564648600963743782887479186781244147398693807980672967361339270163128300088488146548560027343060373083685752253206950676331847073108493178144336698038727335370258144780791337366899381754944556675487100181897862905361241777310362962325218110856510304258512394304879574358736364899817711229118343870257864129356755569017992055870869895017275964493659326061475523310158246428565632578549598912821475536028887136813476386708159311003574526695957274836311591393007248066147609745196945942786523426183790129546854548019645795064756013694892483011119156502453407093716262760909811681881490901605825232160260034449785540456339491737847279842805521150752548185486352939349858927566690643795363469659770238082902542759059275425286815444714755155668176377599617782359043856274024522456288934967889873921923688665300816944494587487805920171365029549659273189397963317692715118286642611124980831509481170407539211917846027447485999317999657488957230583910422248207055564890107505282733864259894799616432216321161248405858283210759975545303179109591948837036485139539737887862293316611464614755039795320591616597846386488327803397606341612381828190766928290591197166849024301699727836008663827643714445640550710207238066883583052953938811496715445283183546684886261199718568719206391040990405669882360545378167498143328306418925159050262710331017471106774827714918075253783959392831740140493552737594739399680975360219614494032983487223266936105560907718227306683528651299973010187426626745600462074779303787249191659243860020074740332546309227114185777522381523537878300352119879993075823303414268310511453506198885316668657116826438802210932990147281308627040086813395903767970395163295451530200292094186457723706039508817295908385624159890587230250070000009651377035892987207417316319902774484371193116487663808624898648332462724882472812016266109868447648114295255791217683562023739609388648742464911425692087050990342421014602663686644798416149564961872270263834390008496603922638937298358702238400653512711229496002276983736789285745620336735833288622509412989405643481641554060915319386658980789951531616289628448032443163779835641194725633701564577196288433788367459175601774567432285269711435143719515394775156787103051328073792451335668135142082610638361285844008074232364842222147290994940792054170965142670070253821980971803371498490530013214239786256451934144618121776070328608822307550194992468018299460844113906024243483387071193938114661059241115647420958591293215733322536695030444665278354312744933374397277129111263635857903562090595685492751477933093804463056124471795731655949470575023606091595537308081098269819449214981310336293742034588902170284360323647781005483685271797050848950632477757062468217813716792017107739405003029331070815275609879902969425123375605553387871983351065154488129857651790710222829842648166787146096208661064064462287302431808597920184926033579186728481736658245879222129237948433268753254390740522383496005118852920006954345668399596904767818109458972002086741678476341672887359543169615252720162776548171218728532994302080094677365885151200729727756063089682391907315489252781499433764304641156969142647617754143568120747123789269607566540711638892847123520310394168791412313236224037284352694235238680134667040348763404049510758181082743938681261917403049842528509359468678934634522947179743356821942117319473185811242220076975752837926128726344874050134259568279333844840501974999337376577244633777025372857768278938262077294334928809582889472324855019136272175221983221057733320248757529892213406206968023271509477036991847510018885957066202178383652447157362817953903947888042572299613232113924620715997033036432465498547308661109962920647783592530043703856295808135646154821662391859886696678754413679635126694865201850826758358729822269140072177071080089452643880063461740875512879102474994926192097690470052981817671340692985528979695484324014921947061516136092788067503436653684127431249702614951681621012894600625222698215131301512922784014259589137071478131457156625323990712916990638599174342847075712235851317664516007758960169431985928794061271064014595258804278711131811921645870870602936879164128347564204656758953741656957504102298217275096434113254375812807052607438160490400533296209049172334780125149433778842822952178011443606774973467469920918852020540104168037306444161052931878022162343778257838479218504148055065430980331731053781835165553451659905074180901361361968431955968935965306035542764294203587338307329382737681089215987202095622485813771083045376213413720105444857361207954796241462328809197266035075201125714071521804057884171103994146015253709003426529869408394725580033514872531677410470983127110070465895588698467896612954361688495156763545326328397944411557365461692073868718707710407817333965325096582679997798929039593392029982442054276408753530285594280537713390718386180192878224312201861473122475814947792613073618741393032227833094986673758358770249309439171219793384997952882555491967572188019676108953937391113418178572540861518414631494026646639575469535079708408362358799891689713839187654505341690605388265178736454109904479729630980915227899311699384424898537984499239323536679565454992136108995175739010434420243887535840207922343987502947407510671609129464239024871323437866671208544622395014941849181098225826084772184548375097505064627273609892525308909961314411717266611955310029400664122659181481718210954955303040369273490336035921474806578448806162976829533154322040019391661370762049000952469539974533628544585765407169518772523751829978752558701482941977729033148660718754777256788957748372170941557466626520909582783104055970815639894242963714827216922980894589001296949544819793175441038984887837416885836853058058597599210543334949736254003681030585639872576075167353135081391934455468466380769320390252368971428877833293694386597511219644029702230049827439033947954068984091654097053295547303704549666727200311031370484181303284137280448040969623204359063693895617585779178183029886664235902040899418010378809324253149431949461392863826181281741593129643062871193078880503189182296079509210717108072820176078706152462335774654559618029052810899002186947378727230603528465336832663850915178450881409012238998063967839430668718689018596596418543392667837882442337337119009900296395185248357263103010423893175396074798448965851789037365984431305269524689507585724179419616251776945469792238972989603009123939465598213771115792861009604612272728010786422556380243870345054326152395065738345897081130880559161424729468894272083763453622704801077182806316445588050909124578501314317256080559762500512026351546094017153820840014211071030461829431009298462856200389378791876468341235473545300257501823012302591896669628891581397573058414179695589960315637365295604605653617880924523529011758923510435568881648828076779163878198629391819748020715848709956745759864452616800658796843869263534572122528633709869282079375601143674716987610155977292327584257127476316719366402758836253985356185898834365627478245248390180571602036431627294985559621694079826054882216740877479375444644210338153870625667379154620430583157449127455594983757110700095415732375093254110467001164662343639168647710503213450376645580861228087229623922094770351344721168184397529757323676616459728329442398220330161218002126045669112634592644322340764945443188717958834360163781634827652666350956278209908754897979595217297716069673120698849512691935246673517811947223254424063684022293858249429184951078466128593636688708238950795141140502603444569348224025326351069812269454103579392954717150297458166136675646733119949922273817011933340936778972601454688560424290598259725708196320031342324629857428414910163396889265520187986973609267053420297920509010552055096518163405803850732450020004858665051394424862389038421193589896752792129824556674492070897528606132841157456542002697978274213218674079265447254644257422885362091248542775148954805759736542612762777028681744434334987282586677664218741258728150656257508516263324577605083632719799503159161953818780782199167089339772075622109043486477686127456351763591078560825694350846261046446267821277658496480092775799143881840460697230112588229629872811004601304961739168788118835795263870328493392750985782422733739071607393595548007228239216638413838783541654909687417776083141090521732360396434521019099221977406207435369184489477132369492074621395446617563162644374519834693393085015779993047201324361776420027174862105185708424719464599494426987993866611879323899873627979135894386439121753191009781331919826464807390609092730017719261076165256269171109948642489883364239512455927325059658143475381005791674516778217514207765638582353100354227727393822549903511829113741263637722690926127509462745485944547137620214426425546168911414848853980618370139638545117344612793814952192199447941543070413967622049190277645742412754249257347741626434853434469731985888732464017919612149216938859917593551497566006932455305080959109102611306917915623741456840790949434241249812531980118102904502462993178509902469616772912444403384341739013383183751332289885996289335030605435712628236670660666648901297501364412451873631036189034986488631505940949042828852747440678302699629394514921646935984398518776374534589144108049147236883084425051707958347411509659633204014568422431415256357673588085391171214916528817044278986196809993446443916430134652983914875543542151829984308440948111094162713067017392535356575993101974912098776758150740044953284039948675323621067672330352980751468817212766548673673979864351978612118720949273076987152386939030765713632976547924178939675048946391510338076642654438721419283176450900034335009460487605003167247647037291580482997361320496953888331540107742694972466929947108035650554551111561446351194604638042986833103368675179633422039597762615937408355313028761908625464046313389133550849676681349861906680964678043044970913018827126649646752200328295369979726001055389768572319933290024984725817171220656042785855412062926333438005269809231126773739352326899629596386189988572055367557832144159343775079241405176546555897066342556469775618759058710396014303854059974366484111414285163678865754915719102991676791483030979249806599611761001274360350978167778944661308487211671585846841429550252182603683270006504227132495786750883378403112361624633496221425700618745625308437602837135491200981896748148303870833635778251764148029529627270158146520657263774666896186212936566892230216832198828707097769840607722960794854024431242865832453618511931713113800372802173103591875808472447512373555603587479770560129732620718530107077230186633179367423934435978084274222070791140280383706478547555229508018373396696466876167105504250161580756380680006925149990536744850037123936157671165456568533972299854973258364280198840877518792699984106663206538880846592295451430269809828338015141830979400660660916773839331295041809211598193374807416576395393582098223238626007604481974933745848531942373460093962526229888095821668599936454518529033392129225955468943432052135997839804353583324912165035109332716446631549731833794069237404807985719638735102409730905722941015605545015923889431761580091940342751703651768169689937016334271410972517475905054087580288983011096867601872321921439269313626474402956667966307463302847166161681845916508960145553501403886211519795651291896017039758188343518509869274153587009751602408816708911785564056513265573379228367795346282934184684004953919833405123013075540670180390097771760930265390795215273857687178865777487747073750403977014884925688339270800284443473201680190032697806786027068629106372160382833995058668244392332421514846139153341582942619231757883042808854538001169121845252940252002059092083531694373320323603015928413063666217344588814713452163259675600805234359257524557186368288496653102794138492561981878796337157198564807883251440114595810067362281757455666006391238851692579232441737801848218718156791090486313723278393146233800174789341888369006115078901503065442373936453168359346362164019309746446676437893735143583348728222826112066984724851347287814828850939704401506691033473622722932221555559331928287741143079672092540001870920660462573636054199574243107945268685812496681531734927391186941476416746669608472631453052111001084730622390352325223688851852272933185179635695632659266079249438653341016283787725829460575114530652058167037634999412236837449389982914250273906067744596178417234324401212654924728821324135082068824083875195953435244738220876893723329223083832291159572783833150317304044062937518092004559637039268083101746423432154363826324275529334930848499837097678739264087923992532345356719869125619822731475399166935605407771038249829381110055854152578554767653491807406305758027592564480539078818215531331768163357246902389923096060366386553669955521565363399697323017562142291446226211756117321279295107251656002803650632669619158491245719871748125613510369030915995562289880765323713168646169108980076000140024062848783366699340850799118574636728062282367167013044089481638637809085156303074019387829233351922130930603693307845253564160578949687996055957380483182489607619821228753703293764270275510531052439025222395449303288528466751352111217059597747166584556543503679073205463415384581717599630363514898990038764890050735662754780063695018597412469433968989857154467988413259458630573075664755076086702764157676398490377393405761471397683841774269768212626605031371108426640973986321295894653582199518659797387024066610689202426331462392776230567235348924453369678296363670310925478053638401030921868114791266157911513536690167079518569379324238397685150923092192274182716282378647969359506004789003221282557310247437533090147332770249258431434076882125728854049963619671876285993570186220001168010711785925611009505933896966567118935545294624258030007437171783326065154229980703175437516866476867551399597477106248828501507466538219669748176844575751372356204787822797061642699554434364962939515826282358361315363755238976109011327790410905402031439563630272175544607688279558410360272993470123415593075756495981977104339039326078328069230634062702316690491002250190278824340224514973158059416611220298260807433032596149915267705424632613143879245032944577718596450543936518727092591562813778313242361785182039763519310434786853335436240717072557946968014320872446664344364091009468420698699133236245592740171225220130816544455933079632171237899312109055841235397017609678900513137915949234865416078636402476255814052118976010459073753053485677516880731003878085941959099062802911728918163780202483134071329215890934576154417551452573120623269522098430335331244076199973730210918035224289571992901242848453048880425100064349074034951027808574882526489163191367844995515754213215617711082959923487802617678142620664870642764458665047907449701944758477046109988240560050017714492435167607822185309075097885240603968375649581594089111921201401598037860930091804087138004612885506803701741243102926326650740074508569997256444500651786489418509668758240373469335350971728676678567019279988024448265625649261104749359757047261176399259970196714677823845066958322533417405896404537464389349776885993607836613739446875687401937039893295981441615474213217360558370178332337464103504884945965815501105571717677135211358415726098729439916132973769345953683887400400713386618833369467845260326605462541413409618367650883600319784230359356875988871678208852135579194927240003639886780373667804667654315257883289848819313293095293415012878543995180375630579102508004759394608099402421614580537480019541716937767731619429325960491415254276714422289871593856299672515673638194853316933316398648431481666299650839968130635974966856526152315799011720408108661778039769417004460430606348306779877165997037709093530750556416421961598899712031858132047396720944621839957834657880679979184558373446645734521733870880144702862082721837020601901576129901119258751447461388837322181923052165497168804198795658921907126997927560480198222647441635465516958417122047065413664322145107028554411430201493056182359671324863737852096139897990870900843351208742477549349882105672258822353961730415707881460927817788299350955484704746452343667262952425372338563939240155376184380871764557290081617946557359577763223396663113364671136117030960556190436255045584671735349940794411984526215489403177392510411110421842480006801497007737041002482482950534523554120507489947275790114288638104848677219848861229284890647738888266305717156500221410588436736898159729714425056042089289857628997233868151558621115257646410446212976940750052065574614722875060623272956847949472570576201660210211611065874510953061484841871170768565027667207941893046091726353045627463556678686531663374853678584613609105276771586240265685770573721914844182214112473393935384530067793460420978051434444839980801163492119828734132922250838908716857004233828448662861764119621777612295607392246105681350510427707733479659964396425116250249044529181025160678391381451684577817738626830694222100078821771039140552243323143883769341337259941886093247619613253733298256001951613206038773101332945439056561620225013109183335653091946236956368328239111201556352977206117235259281267759584613595073689605220128099457263035746102916244015791993664745842595524982321926731531122088233307185363102228388656821701390273680774720424227583617752846730472023387767366771563484509528659968553621057765831261725599880745898131306146595347278146581335192768157699828577124859963959873900036109325987226572499656337405113064198987489067621454760679858960350859273136808085668611032353923341774608170096740813616625561326663653946349245503021303650806008273101554303198259466433266933291071314148070480532922295138257663089865963484649615860755516210286238341835641691376619462420229501913450724799870107256644236818503361064161296788274018349035946764831396400256177065091481031962675790132985866230818078444870097214400397347353161614639009940844926445667221266418823293027837437807594036702061144804783341890030259621676774968278914769802348760417728369544838362976358081098560831031800395807552172857770975205206383030412689800599775350518640842966362083017292846182652860613272463155400355978133253642910089359479816934669241278899615165280907408309565877723104819423717079566435638790255077491669658859681393978348923528618147406198358997384274094650929281743225186278932326929154540815823172742854463685138925208960378140597065622812628454147509763957390836665521457750965086483637222107686875455134326029895500649344571907243369353916086018851208074909090791577593306470873963996031147051439260987671945198842240033434248975768746321007017578857765073648683777298885427959972301606662518406633338197056934779029714510628153655031884395256410583664000394482153034588644186826224480717398503278652910013224764619293523816235721448649044236203800539515120366619660847559366172128766350094374820402168758694529534837972930575491904853449286617665727055877897216047076559554200972758470863025470803554036187826124456312800937711864473724424731598234653273177691326392180525927670186410585135287393422608847049814637826960859967766058746342603453589724078818110121667733628081078943804431091987788456055323844191908623448978050272890114408145104179432287831031512074518170741720539493009507983650528406097856707477540827951434409778213200143575408211540440847073144341932452792869401905163631112788321291842643566912065937728541300879299854763217711104442563167559896896974155533360992789714857909152572080590024459611550531282570581957971890342260502742477461406906141667900625383560870103273488354498767612828949646551444094359029398998262447897636527824496804317110867735578984293256905602381855180335285863475662302688505094127976642157816971591860568105270759117679676858671338932376692921624532311617124381920049577816720748490217733599240927557940195043926190524257329934810483543167738492752655304620154418613015625483711514607128624992605022996458515718877453064150087607030593043661402453320123110294955614685382656953689248018285024805157249146182342794994438547854746348941350905432469626792936993533076907031775541773642833720484256464880759522875998576884624692433996838108667261168069251021293808136142790072989111329455087601817656910218185748400810366600604490038581966862112454663741627719440112553492167553831383964925669180100853562295556057286798090437601059828669043378869337420462736771173090907977985917414671045484052694043491048590525002314559721580098396790610871597284616665956169780506985342286317108178612165783874331750502402570991130995091201735948733293699544351696236798343440667538451417881499961930726495529580408046378820082295950513705522739356392687748335286700430284200580999997239529940543743695829504128972176050963093625200662801388172262991190186070289885427012441538319082094288249816049907812088993368508442175454422458551937444692160481177000989947724520088097390449706550133528706112974861157332813459001896394854449672908785471259726367336556834194845480069529378622772330539351127624745565101886779892048826831122519627617690537736416636498487520451555190266878725200000406635732677363471257461757425114702021147643701233317209994272007984569496357933644511138993841459070370603758987044097758761195787090282411829379641579348064046028625426834989935605003828954603182014129435638151636347219103225716846540177027864416130602149582017685796799803688976685623160213711170397140643588943715805714544858580686237626771237793521476800838234080550443747800620093366174532090318722225239889577021218600968607413760020213534265843166736374291621021492523308696659171629244358488073325783393831274105305130307586237954685403008172285632954505425837351133363758995848574168507484634770727692476400176276540389184144174565132717684878451793562004748719790591414013787756861058193159900671662764846269662982507743924365004568139182634444494108054922394465704117050013075075453954513902548276999274666470899215225383505275611407453497148940338245250996088403489842121581535667198141982565171236355839984273199432987653849987192760381465454194346650029406213830617098948396426653942090428552395564650691353268726898229330012982201352630981052721125035961969708521383985245795491153418021130880516808191045717876946314772371078727141695786260480099073946011670546932813687858978257816266872399378216630551300733779417851589476371283614436930798874955391114926886502891866987360502619212428937475906195741357832630423481044001244124731971436159164730379191324584345588107472384935951741604077153189211791148433783865826338942912678383608398853894548776754793984296460058781203279998349861257796283536386969094490632172044794506121688049493790978959074715340913841415291626254745919232722552803407072871099102522555817670054665549671059072140337697918585464478894354702896515454682642518926263761783364396580033486516006844821254847996288834287299047003408178572771003739231833827242525374690406805454786792972340701717973307460479675751663887106728049385271130201650137701676214971163877354311309205972285391604730800859788966821539598767027909726634330422942686313216970308438822259451228255803877229038654075844602738675467538819797346417226718702784643017465956944860953186630696775187266531873869883112511130879269585943591154811656161003895096843175740732763515277551329314169488998858989504439947235474950348763141319927417650506591195095009639406230645145068607615953414828166352907665068617659231726048798021253699844925132367706380970663019899528707202160650820884467423551761004978824913636555698583324516799247527051539206724048231605154209653946577736147999997047939478786217787490823224752137861594799240939688353233049090652936827798123913737830746673071200559319271520882411389207915658035804413680466438447294330631128008247101409525555806663407520020589232058282169677489127595152453901424719625908967153260256656791142604407872008029022370659687599035761415088674003030785900206483708732848653778689436484491785162311117257403169341282215836654746294210671883032817690909503711870914094525468360975694568719771408866719359995232442285543006623624298550888339229823210502949641690984407328113306727402533399834521537338363495095869839914651585192510728121308102847028214011750363939916971814969628977456441211504599233783857238696344247669361092422851702388743222105722342819439538094401342685198419859450273570869746840024451033779946538216046750724930332938109388121698179340357258340486141061984729724712695665517330107131032626876606466144173769424366648166328146141902376258636303723540943141050088776328138126749826645314229421841119552399810430245524992558058051690230956742987726116595146874475525719820721497557013197270703948484045994791621589685065830055036065600247504052236489655158954237444762807784652333377689600960651616551707732743493516610776839843217640575144396157630917319245774153386461038283599506162515263173029462301951877906251663180688577241866617917335858703010089665884973854302148954331670120131776495686224733499147144790254842044923303842623788782093409553774982642798661990394644081902402912857535371606595397664419549263755732533022337823212823329594370099437452238248621789977412388903308218930636638058941004065771672730912372345594623537809090186541284135596123590710152483173073574141168456176699954823290142667236202396307465132252808606083236123750092299098159143043720639946264477912624787073934687126170327592570207009513211538199124033625962591437698566102270704840785975167120213098772540298313382438209339688960357855232777930984252732538392252955500958952182416752741996881031439745612804366711050655055977337357047023544836287909961130504166380355254940545400125628055184850678126013710683194117684200587440968901887621650672811390495449261250023313778554100981119000043739723860443183468467588737211647280584483210823048272099554221122374853603265331684321654447295083325102842355691650242006368251477827346548929716727791458705632378781798261833293713290421263864946142569846732497299114671369149434691772216228464440653814080168078907368922487788122756642880996887781341778775263023185502624386003366639412738601680770162287015096421296183969949301415110038151104624872277198224772795026939619859849769234153328348150654978399604073495333704142342885602796873721947316403702936970385319868875843456386068102997947776313662728895774854005111673820970806565852718388596643066572149348898045150387762185883123395653008637961576551987862806970134996362825639410433184040258191349237985730623044665731109782750982718125439324484689943147585595317848266458057906813118647859143193743029658706379797797340352121581362302444944066747046866316854195901335296030128083415436495614699157345361695760284570326435320010997328298693139951523868728913670983767877539091637597575425165511040754556774665625783435894396101008585397489341194188304531313810717113170305040975896535755256650863712413077549003231860291564685633634476190717455746809590238564806628577845745684409752178919183811859659917108599632632345234460955147692438306331645786517799798217016502666325825404156767081893187803249240791436941776665425248128885703004763121564489230509871125836374999530007033410545041527068393802253061922549357148453013185021261098733032067368137802831223247863545854922194753160047187005283038657780336706195649510212931181389135410489426905115131888929352561194484070892184204960477112790760653670419727089435143223380196450720283183213817461525090730019325002683730473842303975128252810016651550830936301021593338232829168688270646409705451381877840698706299187721366702431185225159976220676359003309118406417947753225407097915313251048152847355106472498958751855143668734888253223537855552927300189678411040503342337368177930609103244801954242165122290542447108509668120661904685357393547753883183980338369209449615674424211571355443077318544579502789627370893819423093942156216786294223223323464723743509923375149381237191817575199736077430682365271157375323253528761996689852438037067310510911446201923856657967246673704572159182143504143755373454740601781648266336156470439427114365565652905701792176153960821531522196340373133389851136056208530845309877428188815093127830978124121647041446880044390106417029485517867753638773955926571935773151070318071337995108692122046025853310672234971033474615135693969320210382790219320230726750780468594432876993701147718237422799378837227601867861514226703546051651451735371057467191030072918150936158686756468903098625607752708748595134136174614919759962519425946300930248681541270906634246421802173972273579572833955018738173685415859762609287373160285300222382954280226986433309948485675935383992021325796855602630103180838907953776794754008525422313432298627236829229140105225714657391267359542377660170253100331725053611230344377169447313263818569552836883537947120380894197059884709747343229717880827030741104693878088454882778404892656873928265576911042865898970892504626774391261970073572814648739102005050529403243030353731991812030123769446227688396254155946297934653694478268014227578543465043272990789693996424246217667064231725597851820100948470099632949383739353049136444275366183374019556597532773787328737745550327880121789013551091293904748184989769498460880444514273027820343875189658527069796347295266227364321176349076394010869778274581973118504404514231695505185200099099232271258674153898855719836511550882526283895973624102541797259201117862356137651276713505956941917643241103180052802763764031780582801303717849345136322964584069238097355619307272099329544153080579266119022945640428660272320286356994465871998531640740989640003342205429303932205500017510388989937808994473528331255631680149928494226347328968806836847322979524602477112132988164549773913475312974959545050777569250667822960986449306814315469193316427592818369722497151929621615591267334503045369492702250509862156556264824378852010100376761927121461220865313407710299287262307136881461239755772948829436484143427438264227810112137107251421633388518151656887215196670670907057709130337086037687646560485652447497501769877931671132511646404231380656552735818422449011291733133285017682647359455926862664119792191895948237545692243183727871950489676135525643575724335459161771038747910952663332878180555126179042367110939980821609377450493116348420013455673571589849494929045994206645116760041854421920757953621291102868161999050022077735132554813609016813921839595388066421655489548238100314452218569570681912276602173994554554074924097680488107294743456190758808258412931084306447471680191859495706414616366555734554314544566167993314848395547050962603987325853458320671368894050255503962079901201551963569807364511563638114254441841960213852750369419643817935836361081151743897266174061175028344787476042434030808704736183911047776554507075985737312762778998568470723893739102841919834152324140458541800580383195767513593182685668476529238223465417248829755332591803508192709897117906077450787731642773491428978865254696286912112258703798562411304967789198950498509490035950375617956971338248751532496827431931192552171464478010896950471956814280679929421720604807025882065681170092202551944368651434986622866138820902960471150016821976908097117941860924144721884467399089849755649606577564201154268389779025896169774044471706356493605045872981936269757535725225599104826090302643037553153316730555722929808031273094955905268210404393322201369274522216163101637780200217699671069913214029848073647711348057990536616698320786442098624153029152092761270939318845875701567813441290334078548331782352023388372978901981277814297977717550393225896571348922865779028447463270739749140007792536575234424564802940696332677410767867515440186299657369589580106339185166725496244749078173899672096968237548151684915041527388497467990118848514505665358688378739909301766761166339655732484534419368892086013485811457489073501490713011056899948809683485308697103468857064894429454121290210706925721175636918278490517192232421144783012315640653794212505308988320525806492031431845110142057675972860598609109149460898625991500942413157249005432257982975202764834557395545805728665399606609825722517616736499983453857702661633521105164682754155080157166957355428378706434867032058405274384603192537939161776217069739455828949274248919202614755669586240953272492938144695989716653737075763839322919080867030101223394739769128972146534512825237519679572097720738135288194705195945110541098597473129028709695866710889024411934660760371472166368805997186440098328239484881145987364800807886331568539984667647782827399021339000300391903237454574560099299958316389325972614911645584416590292736857125070232727920793604078756699642633078231896204988277558237407459197538112111478530506024355129472430329402187698165162854388108080521551601265530210463530658550019292236105071300676550887453282671982776248075973141885105709258655969942535172908454615396855283839016025769336363633283947393559860522956734455256213465891567867469085242878491441098178846366657553846853039058597765032842529281373667230967952170677881425369809706258332720253959129249622198571979928411477051645374575975510103661494936080972241196329177237687760598677955001474653101586854828680967451390271073445801599926232340320220345200991579752846802912017563480629717774415904207792321212768412392351851635006867594904228600678026754808480090507467902844879578512489303056226210128966211452910322882160297949039841908004737022783997532043756787415553781495641023162995285276072422954494357582554612932116132561455286349996013636228640244866350453933225222365379675191770901015167981771233145236654603274604111929747755577876119559905474176018295606253273967853523038700972773998006215848643499257504053144484194025696812651608118752649072034795406486182584035725705004407033221876931606858799819484850426357782755613659736567064118456614384991417212528945193391687819005196743651183580775031106846783761838142869485847999337809683722069850503357467207875592005502142449090060362490830655040986728025776396317252806210725171834677253253187184986164281551789326598983881210459690669866266070231859931546619904366319616697047818020820636010788742687370899855687371657914226550320335609003456774125594854977528240958527721918670920092866656347158321462969663458565657215004536200112555288993751922284992788756792983588527266221886828989465085484078364956807689483131670200110295661493779367926381173036879921044821619424856799152919054096422592794149731494682530329144294633874203273023243760952703444097191080514308062171257469694119268694507886404356841764474810108193599207787589392209583371715219203079773090313712045173105927532661501117850393189865603800646872099171913404015767719058450676912723214369317395862258423530875838052872816345294392261363136083534539226770948846457090047217350992993418158732351607228244341588501163420869819708864024826262935973387753154842572628594609290496011436252559138193392118067767181910909455339292274211574123147930231688254030960635880036817597930866433998746898142378978698812532282536283554516917175111690573645469594066926530244020577219819231658118424980561293091740595674315152422998967866914381158673770417039636093227361310128619443225377871669803740893129899765802455582232811806995122948508321223244678250818320514544815753117160489387542140941147600030486974629908786902262843598054147352725111175037266166333252532547262018392479500557922920860941999484764608667951513610520017095319510906668862634082028157670920112169107440606946207066505888668408570917091596291409694351515458967582546922012262841289082789510124657215815922362907647947130903512944945918282419840456231628611322697588369470824703209532466236166061561871092493663194483424634524053915025531818730709910810289893109258699698984994147412705381961149720434611127174159938816407664945576913877445427508394993349206990354028815499100551388448076825031200372945811010769925940539689970312817398306318900602998190363090345106868128808410753991123852854233593687153867135730013869974644360084736740718368224685527713733357543283740959783265729453810040940885881987423943196506329899485387087678863796856089133104875448386438487309035642802579527271142950643103912617012475831010842183484749292390902259345196224109421064924413418819833733008751358834526077558213587829561607274422204207431329671986856618205081236990897484553123995228175015471678403934699013968581777393267621024722211088822422148558761195707680740106237906625964443133941562734047293287115706029952155885384211876187387235024314117543064289530092208599632444962314118540976019642851206466987935844496434829591639563401130253090554792871871720444667587273687701509278002196914537960341216530199696983792369364237077432904118198264353602694962979726545299324783075583080229575348192455354709125889256609266592573356261631948283498624644206916793873273348541437096128916116899344018768106493998892519269668968496287949071197028726340358337587739219536737767721289058114128448886613526526522063862182243423661215281964340678541082438083943746575397672373230178369606207910068270166228395364253528722839630890674750914130000279733309400122298065259196670293574434948442784900189824172062681093394124789634257799056136546097394738800909979426379616279170575198428056826798827338230768876793414942565393791905428978511196938889431522057211354491565180034669455851798759008545446846782015964470970051003552751181440082039473651198505153421900647662434358462911006589964629770990776444705944293137600839450381862328514151798783002638757984836976030254044184954072183199740592569710878676967256416668427353927618799597490268329037758949169316165785436175523573038496279191989406746438413474039229225806016832023901362959954719495937329397471280433008066215142061663225492287359327078096485046599284535415506459075488273047426771215502953707219741969904583188474142498662166358212319714841886176756561190363891881805106942831464609047476031953553755642261710299044880249670416871665312343572284534884913309728402869335961411192154174798676304486759990303985348340750837859014514483641127831303797945639783584941124343035941908329932152766261428194240463589227476976199306377741628059621656704047318348924197928402601159381772644830873854108664345025504100878098456711658536787246189324459616570069645120700510994715889758229690183931551576169392828248264870192437976338904175192109507940999078873997336039044937758700896140604439832584039298781096176472368902611950225603850812659127384707281030726879677912022755004136423603008287669945546264120703624491780001472799982295395854016905576739201847926999122487575236315320314371957169975268466680215631735433836941083713571952717040195901259833410607370054209857837810155621560806577017932657176644840725456707422457865786489637537145203678819161879377278525519496309135865453257791258789230365378246994561389226441923757747194504965554713046685351917390850998219900465237909903822455999885310025881652400165541352480655635958091845225398701794804863393035634140780275131115686672608784376831404127681738128909293117593749409546899277599506387214255961293339720927944679963965812362658716058805827876334365281690620528247721553974428504076026240017277645492684580200073063873353715454602840721961363974641864500368660974236825712664170881369351635688381654212519496279724979663505149484018589139082877115337673652561016975435396760362029432251383673308163340055053354197459987106087046273476581891399428368033345857479166929866524271203930380062858722544538202081566078869231627931119745931143286594304189460325456272320890990712294095604179446495554357728456389081250511229284138525626004206747812752520788035917809679010890395093370360698773308601138065300233213021389430659044807229337014717593046652877967221302404789654792614089378124638112710116172797397617830335515169536415776327950057219806415257809728950397616393863231988222677456813314256654923877305803246015493343663326178524655950602695860738388649976541444690146355683422488376580678164620584805959128509483370316903430027746381733374645141485489095305935728176057668986221333446211405646174188956307356258379853753590046458769692744008048184937513732609669748983368366021779660918808828558608014923516388570365476506068714173894475351368814541405045399387058584449657108765886499568580741180346190245911834232666822945973859265680786913529402377774870400983061280625736937955922689158290021224811837350085042885046011049843718950092036083869209733658200497371708393344653262479271120366946714716433296021631647479112693774165811848850829691560256351860361711225497687155019061959964272666656363761149804829845583328781471436223170920009288205490026827316206843198645224094029622254562921053147374210414696113191063398400002911206535173134415557552998698384427639487932891613353857388364973322769746845146954186349299338602732065704900628129811384454768422017393596628465018489402805393359083074147800323174482080517224150107127098673383044561583717758392900545994097098120302318780676000369665145489457695489173026529396441916809168325496150335447241398531194903511735374251760170013290628543318824662952670946153569475754857982752318623002855766350309946749681833440911458777881879755121420496811045035121193606038908003404960689893424873639697021294230209349854706027306278891941658488681856539486703272757372928745599711544115163350471885377410980067778891265693072797575898201556450134557965816233800159239170557664399847702269191668340661623825606823431086392313141906645081364441925636878753039002201457890493481547102035411332007915917566922696811769669176470916067797214283039695681559460119283394183538282943082735398863640198869024369167082825632700425341028971592605187210203984352429594014867269546581379542213543263329759956905271882654324907931362235502517173443029481049824498339879132224688507875376334387233464554030254207196234395932862852684585466459354373829417125241933817219980582330251131804530699540591768765340200591429453593579124843579955221666311464139027280046593598736658660508235115854977654871267677493228899749590905438152388726659400875877246502460673558861118489517497771889330611286986843744995120403517366336644187102996094348533734466571010976838063555870395426250712336047360531978999033879067609271251528237134561165637359368079118363935709807100443810899885517360015998344223323484754155742785716847640444441270636104295200760012693297408152911828909144367118762249078273803806327351375648992586206500476873888080379726438494006608467914697136894059388698393013278126076634174141880776034083118631617989168418734213216050618740382450192225210690704350886309296878422884358950183271574200943003463080814734853125060612706787258034788302257425058269902586259880825073147182830495315088786880103604209816396005513549431664163596000132446939958411958768869272781655603751415153099606700432930724552586570819410901142488313977093333943709849767343787588525757102963170510378831626611299510219149550410319687362779387689013739001588044281617082411275349786638067342226398203820225753350365217321600624500883019769853019937929309070828958111286020947241655737846748202912357517842058389227984805950079226644464909890162903355856553942371515491133975189768958280061072120577190949901257978751777023930955713124133427143095437564240146648494267232821667521562326147481380207066740669096280572369221594379939056169147908138428225979979398246834274728527381148596764751318322652431343058905250435566106260981860882202778496249386464425113471782651172003313424289355852760748015744012436976157775540686731810321660642959151478227452995062763181086685178924569276279748996591173456573356546116227922140406994886019255055697148045818969318378339453979220369005838369325917886891472994136300001874192580859506289692064902780050119137241168608396526099312635444852152423902525947660616618194540407468130652800041377979179763399387590669040671455537701151867902467350451905695359522883015000909702560443925841329806758024564798801977511242253241254105477391388231252604943140658361540393731586425218413257339116574122094474998838834303677973185164210403101364625517339847417092647194663086497934440076102908292709082145438850225075228744751049398983232575522498250608853026089151748500786625263668785411043437567984333211781485830215830022004591283529701875868396950108835127911051747712202447940607901486741583632338425095805956964695584439456174820384457992854378895156113970025186169446941241378128904778563269509823225956759176968426148234170356243161610362475779851494524617963782412315015527323430730467778842203112943025872538058686150068846291709686799404337242930572101011050968512082991622661118692594700946654888492396911547421192681660424403501982070753933213247987158402077867672597921315592002328430143967176754440263865816087089937370649225554369102890819748128608526203760852957477678637231171937123468838235609077854663918636916611545071057517340535516322825948679093376525633841379762693053521878649430175634235734939185681929042173645204321387519647961654537977512522872302320777611841888143079291276683373593311559373708641859687821054307976831423389886610910008239899737512232538315530200164951755014818801582952137926145571743277943919063639714696590933719791847948492198995332321830391236628852824305761153283801881071054209806714653947874683791156651828452248513588325887894893210641730097771486974425522223552525074828633336517936166354717924333551849594741964728344030273356565040682809912829677012906116782897903931709238372506210050106040022188284330100497349544346434954168992337004228320835089409019403541081044221874842567564995783767972768177850388203168287938572676710167976397090312580334932512929937444525789444547114460413415034663778129793816183805495592670022863921437846292512889422404358502175577847298217931770888622485079255820334051448529634044080558915721049259561570186845432743270470022066417241898901770591581571294398072656685454026138816549518706013464026857318739317943122730750288989092126948151304967562758802366607552181015660236482045669241706605195016837115457212273823286653332078987469855090339060445155044702432106110189333830644161693349219552241614023917098875904285214436884328965469276513238564942729767285669954750612613418185804184108837536185977137115959221328394536099504156618408482366693051501838011569401127154009794849030950017973743156028596122268373253048315408261292954469675275746367247039705113279841694186420361959406688741008717586740806597872037670966527614814158725281568155610365914744003126088275913638775590144426552114622035793733786630420175462214323306902965554026601795678082656956459501211682922320198425952736945224765233234703366211043133086203893574228128690927565441414384283562365976864502137544747834082318417021965041720256857834132034592070723306431530340123329367440828526778635508919772964376722196552442675270418666866884081798363061633702471648885548456243572346219945529643978438141439874591208467567939568595901239045497207639130477943514002570316241644227119776557425202339445838730967721229878299535287000465311006800026861788861640103052565612161658138218547921785925551885450710931512556823601778579636073989989863656794976194955418271565703258726544977367320579051492246442238586733323472037541044897945367627223584006039892487202422111082436698388475459074883392670961879153755659184381401488926614535541006694317336514384441236411380202254157591828266366116625776609145417836668695346916670505160883958355158880443839333019453381017303062223760802843831825884449197698834014878178580560921451887949083859514349159233044857010935010806267303503068122501451407165956081388459959774126100775363996805310556385843446049773840994032321742709079632768055624141903108578858289149517048559326918123181575685990462858749028728893875633666123232046520421622078846167648527888287628120949558027257280329239039855697906486248760677704302263979262613262181534241398249639882363953149034314599190812378899973999483525641391045103121292844252833608945995159972131156919249079382459305279176172180610358602749311268467531217261445102855727790541235061176372246587422051657281368378041788843815002230330480825749872647388770700603923592118411886008075046978801430488392495945809315575715229825963943610355206224518359985570766915815624899169509074695461372484784852542710742430434907944080380658580670337059273998165231382101008542216215891720392930374960446358592363715308314273018574147376475122944495329369566109174234591888358406443931568231361228158370668811387540168646924160157982897845532476405125953990345475808603530574003013807352310413820015499628397611698809794373703911878953520759311507352845805592408821735803142110566553802252816732383981467201390705071350533339157740747949839940771344104206205195147784617125975484552965266991812424964870159026929516800994527649242091694170560324715312468492845361874386380274384298712067003751338542575456577889525531797628966746196729703293150402058188919203865345230100337588006337384553576831440009228500796829834264842407497718522174579089438600536175607248149340367432355372889830714145508757876852442099355813840336144396900766386163926592399730772193370774688008122249852063005447310701026002672550182642397255165255412088341419245914977133226660662230615684984398774877562219630651342038089101590252062100403426375009943799340256206246256956910354755866462438818928849001656791087024753352186746467716789582063186796165287528952735330544049595391039427167659104890868180668803964266092908027145536252943290386935370722087206450346632245077551950412019701035585649476394526186917421379828117571003796072021059177924226399991539474557743930123333114634680509399278538153994599839812786892965036463222839602188921992724896531592166460665037182379142575274838594404939931103119137019760292614448256605122021245924657520228653459420190914237586285615716176353438213928224584756260317801489932206495602054974749527394323692270760571392438200750829162013257758375966834780796739121040113020247584308690653987995478340250869618795378857722161455209853589360705251854646622927440203060165603116846315897756619581393634735506864516049391645396340900206119146516749934016021989364201707272832972898764010106284794299524728066976739590516850978136560331172884016510776559856913900389943302200794780469415140142108560777978126649769175891983528957393594781676989707851842838865039060849230296225093473706059150652155595878710806280175352842622550515671143013208144757306296395374212889087735833329289951104731412613877202813008154088745077082265877845471112344406297939162204490976830348858008531938039093198415128268968774273776284106968577462991577417552901444513481999938430138131870784536255884837617551397784269268365355356971967242413589560673990248013407377364579398027444242150263007387802318577320931697223400165303143907781531827733403418437210177317826287468860828691476280338176512309725279056533520190121719535310884763211562495035298423982304163140982675289221726179702122292148986993755799465537536859411372420126205630060106304017141708595992648772983733966916907518645996186833966003619550002330916386696719883004963003045356670106240256393162294476393799927157359634950134230978442049856720996818968669396139446119367173911387363002623155973823962492206435188646090383694857551232904522543403042182521482028470864401844476751551299271475894871956021081752302771584963112338483013514584645826158550662204240644468616991234127803713435033664656122570772105283155267242393711511269615370571222970637255591212638366484416087750810149891205714009619987351263972598164601708504615519351558798137160971437849519085878653834638558021497012697177633167667171289648536752216676374859867877117648995332911356840351866600118327722233069603064705957068044633204746577756332723266055824543608975403090322725688688423602451249871086293105996821641229731374594280268522550806238864033682280863578134393798890582131582391797010490093600862092912899719150459744224216516221138745181218649193819066695749075641590201221311797097336170223718654544176964419391157223367831439317277413893505926542929311113075623675981060082641147585215668687532522057262086381508734338351384365104330324422010977566989648733171176915086855720855756637116309431765933525574982143663614684925471064104058763834084938506619769231814695436765294123863299401586015315944935676033009652658608108012821766439448642440591460444518925372425103368131563174964494887396189975835012469676200456672868436166298393835766022208982708572293023800685259992083941364839663031925298321949862685225966361678271134600700859919785099825037608342170360538263897545505470961607090509371294162580295794702057192147788823966687923690089368509472354536426832315074353280530798932208711685617483072809260589453930015954177185286756163205398447075425807396206759904190221298485493652184621012781042010846241261302033599144683605670659708748340640129695350132078903390584386886549258552245983501624800371691287768578243181640991898848590233757544870987841842306638825837754014681312111630927506094831945521146303385763737837605177433249812034159057544361584139616200187768428651719040687129290566591077008040521551677477437842030576762104648027328664455563857031065603151409827976686603086912544068275177261000982457906873065521479514915753318113954366247470000770039857891052526688633527336760026497734064081580732921651175234823930272445728623242351626165167766465458014159432934739338311295210854241026519814562764168894781533128304191409675384570519607989249223656305292388846949461961514485861636711884988438896877712453622097585625313820403315234975778600001439320496832129594035659897941544357317992581748035456516749567349187151632238878838675497291726155221981620294538093663340297524975222728277467406941650422293665292275236585961534590512115587668409593308870794103902152776776703570448147795015146083497725225559724837285670461495819515011233614344321081718562639810289917895015220719479567921635822337046409815731609468575055954443751761984994034838312929496039589794522712002667850159881652006963293055420639438174401029747212716790302359476987198688886920972909351128691421253804647533957674759439717375773618604357913172111614898153656158531057381506735404544577656222592616465228528900826068135600410245703711406200984141423884619180089832201562764686656679935924463585764557281842024811794231214936809250330399680959932880934959880504534921494023268872676397175620172035418292467273719295151932966518414281641123338577909577264716665544639703520795124964905699059740658130233178307399302798362905368033462227143568852078188330393057987143365937603632831358741300817828167750082821380121994146154423514912314206926145351770512043491059145889162785307232158923669351339198036879207124261220511677469522516198898801570623075508566810784916264095110860599003859047191061963245824943764032632400356045299103115807898287422672805842723440509939327988212297637295702813300006909436145119592336735025721216312083477627027060654618516880540977726791715505643248504075992449705389866246940362918660256510450078416131794354774058816582463095841725977414701187334031648369607697380466442851698531364654637704991503659607295185039096908915362961050987984662217887836044232175755655713030804005138258659231903915800117487830551501376190535438153986943505359268101155202316429087099264455127549936221189017293257153334521755917737766174131658821607564273841076731351710090439896133281346553630019183824539018034273193916866004400992237705250967800288750595253494522293782611992263938184655865669334542502229532563045078693101643286123170068805441523494053258475010010723433570653999685920150015541135658601871734010930580907084213420748230468329396992847601410305488621292618126292084131558492670855579030020799061144153429645721153787068448356437766012798742528981726568218140106106930404352864124306342373064104765751073426416508690388616068581480141336964813212347787867792359700089496723010585496424694906792561073265836909125634222784173579587866481431501169895482332684665325598843386762675104324823661610473331792327925557730249317103665673336055879112670391216419101503985114141887397171819224144145008228976031327468631192588502583072393240466630934783229726509213145880362516678071657378489546470107726292269709644204969268762298723117849781789696912654754162110363006648431518000268619063670679767869243338173318054705216348042795147393260228132549987660273672397697400101473141664181216936183448664989081790364431134093654532042125066737250859061429788911846314672887921347243737305038948950033509562995173882253341921982677509241647502837587007631081566084051671603645845637433028069862640957672320073815611081428231722401512157602475019636465866502439766641576582810648741049517095364527506608443826453945195802862250607551636159461710634925500613929150507826459328392591309999592323483002953060158393753831433247926931056707565082963269594080121031235918367675041647473992407057085254373089316734081681242529030728357343809612871863990638132423514587001420698659370630630274845528809425926642655335586819314728064079966070422304926809788090276975216770609728230721426798223471224281765693980349629215007446054217823721619435208493791305568316659161462286679450968550002598548652394362443671084954413753768015879344596894504002345804906314625386590459064249239377704497956285344194767056767508810239327477133306605666358227864791751790244246181595254638916418018395992418639264065065277994643345853109569336188339966020091040200078845366752322282809796695852968581104181464495732361588233929633178446434919929145946600719368830074255897046867777524575263145278038319405159230392275543264403904379589217311188812972376471321180931425731266157222937474893765185164069795307897158192268240086096317701079654560604443265861390135396878519730962560557148168223037406518792040574587933455529022544884382717215410578304878341095696510976089350354000561411455180726162595332653629991223720935515305970765323264903330029307677438966507173366915754870313882157297319420612020936953496075447797186287570325226707237715220914681827427795485489777486492396758490756578100353629079026036314221582326472828369359998284614730662035114970368275414609070053514341596859638522717704458837394075345030888443725356573509363955757376475309901106102118561092821191040398981446449756784679611504362237733301652115522966676044765415613260072950289099147384255100767984604684558640873210195252920284136862224215613242311453820844242824351077800451269096466214981312602661581158989253371862017101681157570703834344700772609122540323510351260527250128357698998797114492948584602867825928684250940447216911535542881360748604407139581019071797160256518746867793397722330054443477346602219254508379668244078450569452397190348972102338176989662326352579139829788754036163144210044982757078659685492504579297211902635951260554591782453564202217811854512327190804951548544409215927763345441734678841200402064949626222843869311548825485064113666476424041761950913228967109360724569125819314426552469049248454979230472518141197433623738521264113592912687615437748456814303820901270840948938044919577867420445621012876517330592642580684276549576414989224302236095724278496190929206916342444241110091749142690981944547312096642290707730613065278599653532187561736345777285016462844435076636366288704983031055273564755906208673072170570100189811788337635893725062453665362882913047903192249887163379943888017164062200706831292884396801426477877147217672411534438396043508174654048166977750192708416832479488821282329853426125354874057964281151203353311682824531227021839849253818037858946939425598387377795868869898225627129876060700680440929021814972724785201818131372047906021041547782455866018248903695153144614995686441213650018958920154228604795000414743837357063576871121185637859456981042666516794984870059067635836167187165940008733120174108595427033201558494416973455660231797944053413797957383305591369758471847646186218764745169090767271675217547063233601614547194221201702493050689007233096959058266934293488256700094034033339349127269467796618720311659249890390564915546604736279723876555285966649822048726619715007834029709507709381774205272580827984642290324866268010390216568946565786202707126830582374725409146665061999130654847034356973908773817165286638843231039566427660956109510934492543996241508354538509000302157551770217230679338328045881058186769229724925153436835046315244556016652817638721825401613212033263678797628514247638669319720718058627373988030305489425857839117462307446330999543092804408673659960012769220078451661540250557917922169845948341652927952435889398157809034541063582562155771954101920582570743724280572922104445725897832419648653695226105406579412632664029018033404528868657219084780051654418985248465183768133682326572678459205163232393654463723477664872792317549175136404609876089440267192565077118762016911195644327536516411087500998197809194333511788270056398551153422691814801203184282569629953560359305675375588405123979761539521372469003480025874250561679122449134142688305080631656667997006076854307770539970785819303439492180666604949667974680266347748708507548432430685413463347971892298629171665826969291390521912295852469885690112218701685213461437635808022579299850525139925491504592779949685187361162521925313162980160143116228371215404769303758140332044830127132411420837779017830129423247485652032924835260357194645741796888641852776201212630354103388004280013762261637984172968572793489909325098407709557125096724315080238954983287973381732646376511634278401347045279043626993760593367215443791600969858177289238273374234033431177863335639879181922331491804670088780563887839173708071969944063611899630509841084971340544116443741799236723792303486512873544536565970221631155511712527346839459434056375903560310153562756561416218525397305489919514971906606590632928947976001978156082535793203877841592469603300334670562350917751819906405184196988351067547234938042376672088383053487152138498162989341536949123643481821624956677575766111944037060742737329544061253784622012955128169882285101645935180648968977781981668762313184871242610570483915722104899170059657308215733038712564741137698204393687438093252977448074632517854400880828503528692011406167765013611732971116383273238583312025903255667782443892204517117332449729553275068543081230337558103683490851480269251372504148607856469357077896478958746657214597813780372970195034552888586733531326708146670823388021360337354950155628462530820190001271176358590014118864399577757829990583866446574535849556255722263589321131961250727265660625491342695718009082658116304165020660479626455808882250242950825900045217704491302930469459902488130674504546203673837095966464484921676615379846015753084892629459368601652302440520514718146965307833024425613514029102526223720065778047295254001900815201752363803604858866193193699262009776470924276649329578015340083547143162277499333631652832826583418654554124720548864725319149303598655398324816637645299138317253677927806184538624491222272117110256698722999523374775079783964541341317995922865669664925186625099705504935101631404847426313247696328397927682337626028206872611995046064344132353678409982553502136613090762496359383501389473024581446007136729734153507059918122934509085235815153513287443514222078085310021368553476583034966213620636964789984297085845489379757728862431145718467235705587538522632171907700328360750515956440117124570822070509377505016841413462556650579430427209332209197029633917851341694827768527426043871937188793063287312861281475492657079235513119819131286559939877282154727709518096836659880913716379872528024790393858610731363182747422922985089710909833708418211404257693318041815938711324660030075884461282386523254609924740486770048545671167847739282653061588118025276281441899574655700761161242035423667199534436155763004761767006950530341861168697511971581907918219910426804939440449931778030332105956024544525706853917309631881059930386781764015074075892526175745846248931434430628727627847126344595824275461245993283183342236417282400104843504004288465160414166285694173902399054916244049303724314038720564967959569634817956907667687508756490983517008605017134986097357522772556270393597416224181829434640525099494402074925511879772856795043360019811822173131112879518790912157794057590487260119026828514884865225574370244427424698646012834386776039986656717616791470580699822109514991738030104750497981185246037326952895107982277993566956898324125553532350589513944572872048592215495065755415311519051780906352214037212071586425279869346316983658551534320909929721927806020156771251060088687586628507817185451345957366605075212525794833312930716268199612501161176471578354620794445450034169730606657509133994139237065664158420520482101897809868032819356214334435372192173231283933426607583227452555591178508867569970847356343522638265102382611801219176677478892524701087474514195187995168665886090635295718043274254146182239833989735779623258014475205769896522330428822832939663678968308247931810479745490353443456106854947345119944616660577807500428291446851852364454073201908740228325847377220675711649104539359940762382184171517833187614591545322975269819265355165357924798982495110990653477749033024197950826734842268180124669809360764938869375339012376461071901862315512728678153211139228519942735176198916089710823043555411463756012644946796940061407282780176879787934577101413743601760821164083800660416794058621976745878540783403086955487661167385408226478211510122183390040309645488611556962662745470976300576377277279763879098029906893613989640651843019018049223506824690640390705033243516060258553544176007015893281915775624801850375010513375436855879085014812063437414406628487208553110440793229857258070609810597528183271141432714032745763442423756995081475678062142489566357579174547120580510156001249911286910909135927768882156175873833618838478500529442826592465221495938067878576352800627608861535497879272470393367730496013151639295930945926225943920274314957105132226904007948289595807496045934845763910306960461040034884866110111329795184727524726775586522496403505994996671386383174412603319687796813397131699330435405537374696037439528619311117658517313115112643991352431071036365462854461277579536135886846553018603436456853233381929001322562009808363982180623597205178882634646862908634908636466607601621270344255443401541193128769682736184122750899871892504424327358664298947905308157621508895268703998569770285292096738641715468930756084257936578882682862635048993993364061644465057737792791397532057105698616185032047381660553194342185078858228109374650341895002514872855588505540427358553486333901481344017327306368411794241931872769399079737996308909453926948291637537686313647846212782221663252219397598901526180353898448126183477305631046166153040619057685888561379463078636838980011452148446189134637041783237441687285337043618495608298489210596042835716496241243792130061932240320732094564738380129750675926432819568778559970613005567822329870912201652668271410326244993408102626600485940540064198665833770057684886061913544378057490481945444287885772383554592075171984391136662139869481564604853853612824624691150948926463313531023247814775041118266256208973282810406611854055452985610347093280027855476555745723129953694334414477697032630088860125165289377167166440158619584416170254161390706189440361947433687696223127650078329791839959630307677994700178995662956567408961358426688536259618963917623221236562114322121918141638532820812748427059780363385236589442989349435301338959851772385945644980769888412457956060084530984759772287449775442247871993469998425007364573745185320812094629581500840178436654174308916252532684593807605891052179137877904061554149010896192750149991255681361181619001546140817699866747141854043150123084997962489213663511474631124017810416171258171313507861558924366054322675714216074435072343111636849114438704343966989227853886719258489745611380787772137319960925127336341700092734236800770581271066807285655503257461949481288149443775886102750950272006870890974980360630639789558225992891209564271778766135254379933846176583779103035353110636790219798004391198903356546435820678196363608050858692480669647056654534173186718181163628869387570092115893487509895626357875145517276663376024159860189140896572961906914009812494383119729707763708999378355293547125076645846990734860639039102621277137912426379406510049798783069582608512520249209602611170234286052609988805973226388532239322456285321616931212545415441314755644303151152768228381962904771453403100249323493336778203709348628422216226313631781827496936777983895429027674026959521321865259309199136802375376363542815851259373667422579937959271922482844863774111441133035379676113481476255978420154382354714687086257527187881464461987359778817783745918123312515261582878280834104256299365515731966375870999988271264397992566638549920825758483168497720045847578485691379293994092469565959537471071125370093224890506906887845257386957627671590910747531968230325860867026433645189924407927476470318704682275782335250389631514318451632771830189278692882821009371067175943934775104377054181513585411711557632377398918294896072312044866219484653313379547208449276895693199502686758106441303577863561620057018934834330019563153399202742638488967321671301479457288248088986805113009779328879324138969608638323768514403100289571639022823548471825320044711912854369932264138794700147970932281019883684861068807740800071351301493454178449158103292619370931243309084841577429505965849194119153998227118240018357865760334049765230051946241072621295842340749371757662051573655280128028035833580766977389752333630430010480279623852274268813618762118452328122663535618676344288506433833991724675855062964979284535377774839595321202282626264844571037526840507520252763401080139087620881604515661841411994295692046226956428423652673070229104244179475942497279698197216275347177552623029080039785752909409426226795661520646816605342266653289802836815217927629227388765833935501220283426617280992232189897047050067378514479097881156596410251009343783185490908546694712354268857010509273792872357495335064579957076911913157359079167666394600964320128260312892716736485399773562955027819726696764596838151241682409140711192053294120824000026897810041138938470327770393747641990351985107551147365305073110301343154220376990604057408110074051748178090480824750622076823389322958547443338606110276621699454285536011868239659856339195712316232564607232725526467469411545643082177897615979839398723819171284912364804890029016887184461643152189288233819224462959932471949622396498719187000679341432623719287831433988211802640385162393951108658761905319618586677467223415205438483185961183343342997511831419739423780330040999150569923514865392470139187740841126841248707219278616473872361718123657823182468785691793836930351351374960635060572355586624334559474485216847601046864676931205916213736600033084191999749045890525398911736626734690442386072614941461132644907842477646868469336684355130947255008905140263185691190543422004810127343034260217572065504425089601797924154111160639166745724857062108910494795552566963915245495125039208242520898826581946003134724956525213135315803143949243683280506317552719392761977471315388593064666377095573470783913782606869381339580093403993021001929581009137103915476267081549352647213630185629147346221841193668288887210705806700180572646072162897196740499161354506008089225975340838098445883364660022852291087818598870376743796657039630430452856705377227282120844165385739007000402971029807996637463709701269212934644802190957328360311955382440456920391741270243668708856452318745912394982284657981163137709125542903772482377367281414390339754293507255484989091367557973158814611764415851954452693986232561593549759485132171495899011150109001720457301198446611245698281658124400077587935883684547014615191302221391595544821667023988663568675189094974702542576778153476979692950865039252145442423722691425889553533022820430461555721781807776172943134084659228513226126189883450249843262852632768817000748509163365405056538204159318684413514718734855802253654124920097818598491295440746866848075428528740350635904548316658092974123727774321882466913018440254975303771337651454382836792004413217111939462721621190230276432625016156447602999443244853079582434194434146120329628959640042798068984952596919269608386580679475101067086368224434835222192470800906923533295600045106905810527298946948588148997267519838394769566551370198165630075590696140401079194996000004455164734760459106384376282215840267226395404349334449803953581628486720393448025835593051794508447005893727116705443480323005178730476600322070490114729085410385187361975772975999258527033228078841308811989883993547987752272457719018998353681265972009500667313911357095970307642219983683588321349848804473114642650549098325212417108043040068573379829292841754446878381718489502657089681122707825976963845848094942876067924163005895513706468869375280205520590630664177827910140059817465381124989878418994954961390578817511276648226444199974891576386688715360985142806758110647757687352827422124692255467945498132868311159733946267314700029683754894147949017385007039090840371724380867048914983469282523386504934188743815355199990064935760412123346766442188565651868053159603485803419125570105744412381426188108923461942460966209086820132839923058408961848881870878358652315715920859046629462557765380108187862223686269937117012461915043615760752201893327326067308061984052919997468595701127580995491858129834254365225527570856431862175004829387203162473510222091856154279731266295713636350239872312836566361786802070462777726403901377388679493305611507776582340932669122097411194166869472490801691806271587133530057572707501134028526436741708019609595213113205342726493196438437795054925175244710827059153549280204544705690158075749683229025902833298149585046758400355810287922104901711967299000889056450853710809585841075982505435916158281889665201914178436491786326928287463623262840778263090034010420246798780290650802257815654540369300452530850791522970331195127687171536770475803154126791475319705067581758962841567446627945931420625785583039424231487158850626504224997548538283030516323075154842848613071066374539647011215164526161871177042433237820596012884707706376863615258267378986813583160861967735922664718662614191040525658998692388227288789144710100396187281446320249501397816562293398348778887566323059053577518998336455359372250400240837972413937482491092784825280828912593720084037025430908340080171702294179382444880598173969183838989994760165329825120010489860598950840802683352287402909619664602614143091905567120462745861789941767305370693147310991514765540451629880236576583240896297484933594373139520265184851541680919848922215952498680510280506977376285714798046254959681325653002364838767447944890525058095489125601073807681598699255807075701441974269215642592700203236460933504337207019565676375138007025389686335789376302715652696636351053415374050688079203395546490417991017703267735814445157232311067292662907085989748853540975909494414837504134823573776329533267647605945710527557751535633819354468722116752657757122840033247582652480957483881292746719873278651991524084181018326160375109961251433516758990053985184542950714698304323813457938795876524575283197328421226558074219205176452170540822084857021058817419038293292676353900215175034539676775236436799086205446472346583869754769837638120213703576219545837784295179918406790363320255488114993747911563270531963048909473029723025950482306787716848093856143467462225951036719310347193036136466175532708574257751134303640880065022775181352269093271385819282840754137202053228764987160317285499632595756523207600387513593826033639388964030777256540644600578425904472315744383992180934095210887243363884642083082172181642547708260060115577732294083845480209478588460258940409094067157676612164314206660827082311188679527418705516884201430870933889214684573536636098251255907997780385992717215703127207954279570204853550890445774627777207814931215194403641819229092477159057150667758983270577208642947806954785432946272329160101895927794164189785030033395068804422556540351652176228242069302165454100519100455360425379384721795773871083157109593399348945190974531893418899275189572393974308551487320402800778537433878609436254347242621938211813264582551895284112116115891622487009881088118492620483930676373503076955658223430372922090205809310107976328537231642552324013521507063418947413701664824834372664407166857533822241261666456294283228625959335891438111463741336573921575775537454136676775203342145324161670623677447758834961449857321793504854363978343284569082750920994096070051883700592219549648171489988875820901873693477342965550814042485192831508008161866310173548378175039182452342681322713127521065008763760722297058908202602167569668623523697537521166058790917226010109312133626640774608031503877623633799179170477487058021954606906704352133351180481872441683592645655198767700005758689923358428954098681570665293547594257218499452993046255883874605779683956286794502101053851152536473365680281169845170129007193581743212399302163498208128651876382535913340758184314123524945201810033907049751124494473724964788984481154716303832625700944782806996474469085137867277127562577956983931972719631666789374802997407674391764880776357596084114877498481021049333153863368071515749324652393282270408725044136830251258816609446370527908376280225750730636264220935582439967043730781632787574806758767557377630432429981889754734384118150060314837534371467189377474133829644246180499671992705706625290661072043472208275653388962412644503754735264638138827358969264172271879863845902305748316487538298986719771543485116375786157489761415088585496445501086260371685568673142803810605057359387732443510690868947469864584058657588947338453561005866522462020878522828809076902083011096879859781040388027661341464589755519149339365186040245609681836329166102364822786241592147548842839445149953480094088266397167089802224333464415057730875650973325529329553715619189879633285861271445063087128788925146205737144465652652676205844546905666212334542225943434499576540791745356936730488183939573055408640470985125301236710219055873523641805824839651005686338199438771497678448406802192895218608426086226410087161765483371704341769723969311159068287624243549185002016301115758158862796600469385434521675555375144611708123564866162549245465635009517421702927674709653161278687781560546943993738298366758468511701993954676780541483571261446445695347045236045023086961475568529911766860807803817595956385271408816822597110581346141740768348606382953116437391961189664172768779448964619832152042923824665961390324319200097354395698339940534262253954517171320306484721681608534509729767448323997710530436367209944124392750259176215048543257561606229516142339494482416241232453997937937199411228256396657009972656905241689122390567804666874309857601488555073341200990142542228237937631345766439161410607057326391375729038995317222700245437633633240616139400040163920889386491250450470634808297729184748850393510789540797944242366770340104690179143592775151833643835298701478506680958270906254183306713969924459110655088500795829656499540610269960984438274531401477264460867983066960485259739676358314144830632795454715528332321309219616232584730539728249016462826801543997000244607518094444958892622097721331887138080725029387177820099675154576872043674288013513047591115240727686924773617774294498082578210267090336121888901163360310156614356808533649802530136112527170807166864340621841787390942804000726286892898687138881638131668033458419834063628147640705561830770407256946571017184674166137400904945550042701254471575225575308072108307997429500386165797840080735768470166006154999966445466637165028793452847276999302282607036816618322615202139758081464870721797584735744947954008213627040457612616940694043351332517673950399171694116249742921140800927822936401496568179073308003740818846779780111439610474186372742475153329953882784411507708897669308187078624858750046239195790605250217691164460579240731213053854920971409680494401604454009099738244860715146305066736834983736622025152654742507447350752364029641184910494078296591873503830625015239780254713054049116815233357031134892521674825032294588191871482906168599957848928227103029319339833125954720651724665380054272079107151297927676866079988921444804827224189790798708567345935020017770651746811502071468203119494034898912385874353363736215048972611691277562475437378689135982114934018850696102235635993274100124639077568057887310217693241651655701506356102330182483976876967085757380212744081694614970871762709245137761131573167775207482984871651040070970391251499421416901897344472616790522059600524565780075811635197671741476427828164805576240251051752847572828048478133634018079740223895120346134360397042812553850345697507300017473108864503354584724878856027621923046940574711647586235881684439878719989283741820250992411403898436543251645780585555989886315239684470684378502701682012813142991919498865371758902167115295544061885656602560822038520105844522777734384380810488290680654334561199183395489288382147757295204573397869936115018769256401443825776475971017070439469103758621774505026069202155912334571201619148278467373683423785093251950962409466519505935285625129258070592037340858333860034872052583273292714907295631221610437182279569359388052971143703246462345409981649907539044570903162025785616487252478254075354657171864942361277133659726243190862616410107766885944211725865968979484870497107379620652484582817422128329075940325874815484963208960364802390014106897385602746534542025419659459859094219367619508779394592270997436358647414110481268842029371165077528400641510805740952003407621331229836591255407048461501377373370012686324878895079516670663887510249744869717300910469176976690900759737394367663610757264351921595118742639844416094154278655589034317770755448391542763466475029163180505135374343976919978142234800809326104575401928682785687843968951340356111998248561281980743155368167337245851415029421226476082429652054232772742007613559737727613274419437593659359176029462968324800790186294993994077316535710532344182252243252107032502058027490140484428689938830428464463793730453450813150418363946488598137307280874865151370508258956612265833015105746868378196762016799768944562748585178788559994957874145279452281029012932956595482367403546364047753963664994491406213362181951190518047052637695197335694613304308475450755550570599894320333247505185149872593790406055103553375877333799659111148718425407947668614223636326840845222970360458462221872197118872028708884088383710994665834545911508274416028782185753941315822591001328476691213633458865070129404027178494689205880841310409514735202164876628022169372052795754110492660558006926920318065822005947858134621728245451866895025884444609214056060842986058590737054452275676013542817793464829254436835430402700086684441083622375246645936114274234093831326527191022665766888961649039546180076018129180097007210888283467573227946678087085354259233061978119960660708232198961452624866924776239544680912215066817047022059462522601918062342637720444912494632362828915064721615365094180224958591981105234164419769367319904121178161579399871252302887548929192103024969884993558536258815698235358038576347074235262064875172132810815267237324322519850874689343816235461549311657225977750198796655954016605644450029884081379015718455218129761540598922227730121684871106610844664975792659832201769325796031841144109632494390105374214232715534966820758765648693538647034591929560069476679274428369023594673268156570706430324425709693704969505650568535844506605119177195231900864682131368649298717112455323065729355222174154057446546701248118943757763054011244733112418088719148866899866493600600962306033594191930797878942502785450007554344680562517413104576354499180056538461479423756697390488559988110242728738181932165395717176606680096684884075257438919926912817204527564107075472987471585212768113821088632956270747282999952025463816096875327444144222563062085729580531363526588672709720357705608520652700595315818638854742390346648384084087292131857718949705040402146044513439939599845587491501132271294894034485180966199082547562675650588748731983093457988234380381676693780479395047283449971645667793558564731264700100038937682210434439427832174675949392195190600609118509339770508701441383780574997207857577945255445993569235873762570061948577153143709762101016967271420427839439502802976605028583140719506266047786667499930110886994989575024991713622683941433124195645965026205451885425858643748532260535576705461115351001208551234616712407958983519137064450657888264058822375634432859847622204911290234676390388457184765252235790561361963197975613075720178739429139366623081980405030065995940561147039231497074078615437886420656406256078032857431743034120062792849218743487150011027724953464166249365679196837350503262161406350202091957758173420943593515033547031265830822558615351494823223794671745364279991680062165949620575477345114004053500008919512010751234668674235691768376828927524235581667215405062279235575140199768561252400152437333042293380045616832919837902518590240747658213795636590428459494919808886980129439395648668317373013079864650787075835153996583314035833597952491532735990761011712251669911267112341447146637178452066459504184658230941675108756983212769889856493535586767018534864196658078105967577643410139285377727415429873907826208700820689540535486980111037321114240924690695427333431133253089290871113758279285200103381329437833409035184714038815113122644027759911959640688711906921069995105513883753673489594104993054085835694666146262061719507809627504164376818576597239085666743725148022861618539128554039798930242114898070195399885990536741061145893153095583083139381518486895287048927498736127053715113661476701905783560758253155973307008365021687671079916274453701701682787351782943216714252076775292132130888342181765920240084315945525686668218259146730081258136625347476800275802838789848035760119222548120962870535261034955900435554713160453256051324174085661338452854655804291890888872518959936682698241370777224811846944460651583516273853317718463018814853466282132908405952952667991620353344874617772972184784108757075537683278316436982948960693361794631254092174054967942722991523862141992046720670469421175886066974304102375294297128196454869446289810959564630999750609582657916473942102482752851266591742364120659311147907824804146262591217584232373179810694251231966879687741245651890175280836309844287148189703015498331478681497470993365045303251593866506074962014295585908792924427037253260245956810827587347485493154901114339270490343233911227249863140018041481374285774837420016253014548150424608943484706044794203660482612472390478000913041271947070196132694590823856616114679574061380778122096215648840518953283929099436726467783702028987875768327248542845192361462300377299934717828858507535839792662642337888253146564678553528403982500907699269977345571690463710898606581734130391043006848642978140491251178866449139161820904815044984841186329943482967268603411102790343918343356066015943234918649068536138752882735629208119747592915814474073555936149066140740830596760035626063452267429045781831907622354895049757500669970344786592476203887623313019654826007777434644535660611768970970418813288029926676288193869607382448427473249192904783565231191433960168379347731679071153446208646425038922703365456683932186091005889780191896141663611838868110665209656591996658563369115738697576086423917007412686731518122776665010217442183831186880964320068736149118798417602318700543986458706872252287892220060300706861102512814681756752415287372125346900555334494297662153250208135004067774751254244284762717490115805476246471390006870919366908027982117843605996174859296004042556174885834071450325255333301162936014327956837328672094955538575662296347221951311529074390455373952948365750870333445000757066758229834215271253399790369798522357837805348588846357961209938377993799767072475109043770398363031803994928121024140768053238931556066374135527238035511940218559162790544890964568691869939126426244605291182304426450824707332514485233218711546147121130002780822676175781383257586404416906222149351845519091620451850149905182421009097658373115298861130103794061496891374996294455936880780260137430725785670741695360491435644773787761569168866938869611077480762218418518862069564716328996946891022848790686065217951799252535400672069481654147307162877322346116061722411531359997857031463444163091947843033823699119258630762556976803794847799870601258084374373739761451150403134657918032910204640699130743778007487718121733871852523570835400590654783533073517468289857340441927948516127574557112300981951015675009758399382249740867768581051343140147589918693502705587091935081480759192564534124131947554302137969245908618364270973126539351116079987772563532690149134978833370511275527662270131368417736032351121092788827223533643295639528732090632839799893132577521453090305445080060645582784372849664952708229151461446000591205702495746219036875107523512171898737713785692643039694822116555157471352424520177746614080637785535822284476379415074764744797994619881450799492253609867209428943292223884551285708949242799657094482893936565520838883143181265629343571910014421427043100338430923599652736566113283161316319952232146301364491375259138324929626859313823317056362460733822843463100665537246558736143310755703913475826564810619658585384101392024203547304867766681345015037472446108502016282853696468755508834404284764285982525077979671774467910131339827091546205168459689219352847804060013007772995734220007682762260126844290349917814894306600509895010650729160430907016147494916909743092195750600636741067635824131411538481479722365218198547781773850590754202522419505829987287979463489206838412740022527904458939389381216093528234948929427365211849084850830553338572110862947039009087657671898312576707520061091322598707565257137797737519327929645849563881416217686077011809920285877150952188597714000897867142703477092020166777439080275554449202660568613279180884320098218563963450647458123391363304313616318285158478877779862943732695184502188869841911482965804200994837751384110452816355995245331204104653570636848645818719589268227841545552777004630102255648810508662534085994602059079450269124071504148206449949659289810512680207499191464470808755993846929134730489515288789255555435884059771564039424561612457752497798395271436600139855044017832653963927560393449771197512684148778215931145899122448332954015219811643980089929232983668622415146902505520489106487492740043044089137917016436267413608288345158503841557159229586666995919554507258743239514414043917774433265293063329916101871129110029735001335928818704570638681111414655435232736218478024783058559924927712616358350282124191771004048181538602418704625355413553715108152826167458722093715983034750723126704876406998350699153173238026897744695302256797742489037715249003558860441396336051271553110202407598241523254383560840320910352066119836041923942812508975509351648252441861984356700892333563574935994566403382378936020995463518548490799101605799715421953310812873195366459090711746433097943915490164119053895220412256497968598695887200140665411009502372051781492041832655276561733633440364216436282859591691955306655968299754924052399465079405704518706906453219851995815701228604815008978533492825131013431032298092068714109377885315732753296153373763611861211818285201208442947254163716537119170565763043243205484818070146627909328463622485338568814855086581058878113511730996112788366813727236214181783088752227746396550942042659891258855865412751302528356557541460555792402700456966413559522737175674143348966617034825600916747160655556484833863125405052017900500744685798829021635707476444881094985660117808897404570680716609740278968406030090127163192029192138232942621621760268924657621057825847042494712761108137753543608856635082957497478549144990821831014986077239394506541894826991691423486253623332019078157308701597341289806695546922496446532528025030056741887586346224846571602690013336195856422618026797522386608966846339122076564124292531018245311315345250266056648309576225531588552589375912145029209685147604284883116274866688819427737891542004432413378361189629820290100285201091195409632219051784251093291477145247623502887518800328088962724907937728234815923693831703349026353892257148075847082986735809267339660267323008260463005381490590303335336679369625352944570046643662031573011559008210860215323128794841290157233021222390638276088625773289559909926698122949926622472047398792824652307695805794918932413419365025220551222495734699762535876866226080798603734434861740754300488715875432193954677845636477995807481796946132763844797071616742047525979500437476604189840572460633570940723412396491286799192407101403246162848206443296786002883410594771577176852028176062921867919297398298541868803876172121338378394205619135152429568636803012224586063488970671744327664257520484543604246614992454525138842503561800702748468671592634460063124787656429204831722370736827778974396305487994045732617428498789411976629662766693334148433914975951319540915968717236943945188519476079508666311666528335067050582363056518724516710569185863539472804806767471951798833266969775400479238871196920627077445257452848977599117492940606886363082995695039914536893799159080844791598963155501401686729549507390720967084654014415887321894931199265181403747310665698765329235970777745849963398963163840195858684911024547046981990065915826200402504332171982233121651518002325191961102415908917178484256655952955429402402720605224013120915219799871781629921452004201081956873212229499733089390790718697345408381765563159277815704282603806845660372464800805209751820118073777461145082175603777746204328268139203077778136530554292458273988285930050925255617543663842403865411032479377753413840174137377825476166458166880162248948172345391185607515724999253991294241538440183464754128484335325285423721108136490909598982845538586769076228912650682166788498594080544610221232167157875973979002866294107756658417963387175711193126297456128506085177696554459666850556337109441786193470457393620790588735548616518308491592609051981464478319414353222753429754062167498656367276467390234209591962611621283670861925542084125794119947917065754636334008867170578837538675375465614792740167402348269124835656670549544801578571063779716403407975390377455132111824276854528694768602010175632085759163006287113222632317918085329662513894742887143349409206642392592596230047016299381608707446413872915736812513310595271825760062554540959715217333325200386460462459818773682370500699410044606621773753132108050147311182636518162344888386715384770636200653517235059202950787765292787133886817679473049315299224703221003403651369305033591587201292562454386580916688332763197270547505231976376816513919241441222586011276738477839575280892492600021953738886027343466825342696074526643123913515147170484762148943118569233133615209980746103245417836833635365110845166473699278434851171551255793220251622442310003968822012976074695433527821087798005621612247114651121580467006996407534348239733897898614886514905965165147968008165704795268001908762946244537653438085421809740592169586189859538159208914768113988328059480588376298273026130100315804149252397107295207524518851198556118300499394851035206767823816678157834932019530752777861673613961839401403425049689891701478781441828406702061501134285178271404626490020222178882693394133908337904421330948789843969288420726239805688865105738660848443731226936520500801586095438180807985871527165374041659281723188018028180735976528865555145861687652486749600592045801251183093172282584341639024340619976598530164068887159796562481412137121007047900026227223993969635950424667689412379673557427850369521549793768990814554998408838125298821686120767910091668460720465981781508962110443567327248870764675117383360841770958652973531863298427676127871578272791231292742508303089603817631602676036818149318640002869553618280175255715911987972345947918468657994761313435228003640612069537767972544701064303520863406123010289664167782611334835715800250387856351994004639687592281126987440593524621396396903182085763281228021433979177314497627625847182493207164998746368757003762223434447298289811324241887415150972842276781816501119759285835966637876293679269117839587119473775120407042251883305523693058851672878072802071611768025471044897675615384043937883224812173831992965230625258509515943366642756890977785664901757404051234057616606425011972209870533557305622455530229191614894771403736249168524438412478940692142078849737383390830611601544493768152791293685970381404550900683541892018317586042122208060107761199636387979381751713812193565283974132148704832298733308683134114528484533526302997724756399901515072337144238898153262666341016983252603207434560948828869521861105045117709655014982163683504913387330276556528846973928664588820710345994692624000178699272652501660944926614406524856479679868861414892827550908943495286556772182616051155570665226267837715358967070453945615615772846637207088297959675809787041656765902673536954730113019531885644651070140255727402470242034606036976403126155687454311240937045643643477157047271564868706242937963602003918508141180039619959788439765959488209660176697012185338582060458066495791465491159791054821486277498311728414532959271279280461660620271877865646630734213211097443529133564916093454712574011180854765394054943631633633150259258225365607236704741538535281215217797746538365716017430654256502801298977623855170044887360568151772959843543635881938240874375442405708274534037631939664822635703357781213260836640222175135470324796005023849791544745327979099558943628439775486363255781155512531400097148309184230219111235877475305870879214497720128822736102461422994858948059576815578173312025087350760673906605475061175019444250932305577818275675122545539709404743456416882424131149317705472666058461723972921846505292324760202416182922768676480051749451056656598378222685023005027021306628727885107522667929585826023535913278518469922812006875355611895278226617560438760704888314679288134727367251260774626041325910023605635479816215413658942013773840209570980268960226049591099656190122482655992470857595803103947220396338759718546481241227787790997972046057494385386545433580951577861151589660779787307238636614357402229127446637104710781949599307146267221300490318851449154241103207716201964669253223353993224237821354928706960082452406354926954830559910524897822144629543363396960708378918696304506259975945167411726450192939065184976022819132871132187799628202215382335913733589980267720424391234831071750813053682578207136355157147029160746856787174592659082119124402694593168272313208831057038747702808567037763077869995631241361845464799085162469636442298621996675048377461292194431167900224630260850420443300074429187649411537776480179441237896614222276584077219242781926838582186843343315519506451084360655194642949913466479131762440969693964320425967936443600443313436702402462008863617928458426232621741992961435293905335369288376251564465737954318446195461919572816344655805777343154390677790785333132075396407717791708313861865223942895751697632984820576925212031580245023930750916352481108328646119466595391960752121005305984445051266203362981294282214639691736437802537387779413738520107005116534234493911827805011368468171049123122973975270106174796597387849111999242375926424839597135823288885349253397868410083893622020659062579884832026339691740823207805887288934301044005813578556936181517533972704835046492417373040389984608044917231676042415016029066041012706746791610618213699568474483595989486209248284029410533371902669330718977098194614079792800693409103446513750156632518089669292617579349006571686928544649933559352105892517510884484756608270155606456278862722647348221225922676715831814181664591865800874236418590599801484100819707641958127349578606519887651953239141785115763652221526639478651578274100081335694228871186780120889536465141894990942242324299519253981191888177283479329363866802818749306399356935886865622945455470261789735304089581229720883276832725182153053886146876331953523472404443981304796810729102160414852008371398628521344056774141532255064261093428406342678553323015922321291640853092736162924694602624055346272526875577102651301512410590691149424916226967607013567376058216751167777441399754296363604542362517411712419572111321872715052894781298649117266575446152281368270099795167151613680462857195770853800649356378916916847448642517222140103117560824744607389586621111783989962752718259784707714229248036379913911320422710760463351892706695952427673420455380825196907375990743325148932741375863207982153373330363553261143177254049202954087666976367898615340850857598602678929964597413163294155667057196203671820865626623593113734520620238556441860239747454936852287105359082096935673783770279605839598719248407815376191413915605067269970369102353305585588404816763000317932811099025826643881553506605784291714410818274610686008814645553553777091797297263329133940066072573511669152422385691666210345282655228530677853770253118818412943816301230798176693192879902518206071884280311153945952877413222744778199477322707672910260515703384927155576159019856299787867199198629773762157674509895024758264648868890098368244782567745331603142369313434058059543761997536497022487818949085259294608661735394943992340563270754907758961974696207475552677423756279507469489893801382147881269520600030227952357818438678920226984695738583955321028578497724786194807302740207566273035960196713733303920747193222294506023095304983216634157759834227330379416986066020544203285311127448625290741669956270382835181683764528591829634469930118018695484282221414086558773323779423334103980654481146274741144023253355242383098757086299864595112460558693531923547090567961710377410025968603706992152425258678605115752275235137642619128796330953681286095973072094600315024480325710755817763968357324507573567667643194492004791895905928168703241698530803210509527093759030078646660370390350416732584913642122053404614791329880368804606352436314565393577447519758848100965827652189421863195866167522765743325180796717140770514248771127332223990882610675871826259329804707550510098359111622790766492190217460030981183826295353163339891664435008996384408547143535553103155905901859861753035419967205099098462577335717959564041163950087809884279721563990349892664835286130662812377535329682557202312135480044796895118403297468731779442063673569740076441181640669142352182857527346922675107433985099312926016396482051254762812271526481906134765036017701975490745107917130626593282187296971818431712850817687695662348245838237016052776493744277259684100932903259075364748246204028125642259065338629156240107356618569456964176909322676166908592744575376331242178531362885333991432695757445046355343991019912714889237608901498966078716836486087100077457366664546164949739348000191895305638806960512762403313020444755667105054953793054587421802323664738258585178014387721637212785380404276053686251435859068481720475184650878875197578627528768503493435798144031828470722778889632770738363908145230072706229351046463563634698057597133166283383824818626928311531025706728808798899721144917260124882700743789727855703705035527104802690494583871927623840716159675103753665204601447977020610897281221878276456890795430860940973385896626248226129421762799099657024628819039416996730316764321197094313955962924343667858218903898140455481520663543893989586445932501663706982169879973662207329341732333060533361619399052363527424717216414160154024907330702328527924631141907086272606610432243836855937839748551985640859928787466688849532074237270851557638486180606257709415610385722903778156731372329514964238705741722998293287818411281437319147236744977196613348781067878894446798021223608790008799425998346767714317716627908123937151058107972447148220923074568894000366463014335068918637043122245936740575020380336014603264726594600913718383086056857216367616456885043462475970116865323977625654534694614497481056628492859893040051455857325628876896841632337919417014565670300956645850360420677397498593914655562939261550419384186179395006153189118761997127230960250382793582745245013015199458109534129317381316166738195875774860005919612711927982690042374282153035273223963234471423242115708348789736997357947232254531072893637568548643648069421777094605684229017218094826593441444227752167899295064478213701111449281223823654601178987728072385878121651576360308427145238295775858722758821158403121775775168030595449632562111122528343964042224285895343605739964419802585496296915397723139994337323128269888703575916515275825694280907585800432455871277985342934700213450243787788976441842376702674311888117420613149349029283590102174332410720346826547236326044746893712280472470729058383429300612710581237150164806904977686801737837073199977268159196982557682121302740991804436330703872982773670575861404647051493438269065878528116976824576148818002976177294216700560022843037620978972278974011492526908160292772547849376306443061094696930843646920415086558432710960923010741750063409331473918806802318536310498432430733757372626617096966593824651816989966296227475618799357583350930183175934917975394145141104020228657094007773788740695088235492048179616204683564125170932051985464111977346639862970492321098486014127292128724064917825713407951690008144706568424348703102586589402685958647266549488905996970813713932175138207711116332294354970207860315111566057722944523632577302704134792423870550382749623390601368319979712182293932994877127111918020551190446580963330867827305260541783610783260034050234784978648038032918262790801234937622676315996445549256001484539189407283850826830630760425555918073484102377520824136699251943233464801625234704150251914807118512519093529200776120368556848201034961197399706042197853653492966989982525963384404946270424348581990433189789129930006760858498542214282787141214948106134107478181570959704258588670147660903385959031270159529838762728734042605410375075103331339136452423791973454695573725362124302910524918622668965464861703210999209231275545978022807982057225275662179303798150727232588033973442063351965187560796773884815207975422590239862432642825012511873392726770010809518672592905762308319264808329309371381651750271065229672036195056936259132037045724092648024468062348964307357619346704391503734899123330895736754633365022408258135795728386319959907650622284778324781955279223742541704649462924949921906175044182485959289119269989958985097798613214418253991032853722196059075144882483633201780571781500415443659351637289142060119247509352064893497322988978807577126219533042297582012262767950112669636138303306772994513198994846386061190097017282709591535575610713280746735464919593402735446635227861362603517801100938435176165080273202977161065448873136788721876786895252613627958162373787546742849166075882875291756818632941533266465938906916588329652974085372772266768101407449233394951776763172617229200096666747584191064882129018950345571118484798824255212834367450938150273794269052734351663666204969569591735166454656661536822488847732353326698329756164283582665954161984065946453431752553042228127895020727959053555030753977577011717513763337448536197745168419713474002371635140454644545826095342612085101245286377853163337541896964188437733184199633073553410571230487339359345736745008313595610901238221478297752183638961765608684673244803516806647628631256237685465721218072873411740080647986042489504899490330085832785341198615197388211634367786767168163306762496904053425658245474387956565701286426271397926646783681270931414690014868416585341268167161146323329238582262847766223392690058961215594192944068403010183636611299122032352930591361489342322825467501455868260889496205190160358826515495665607336168262158238093006703033282776914948401603289482268591480166894206204912320896735494587659596748206161090425230359106455697467872082808189288134120651713702006012111423590821377689233652546877725881795789241405007091966011653989405255356931409399046825456450732756604456038145760922365301418358280232073154271969254287630899079425209628962956126370871818737623336523810998412726372346050901007375226735620416504764234126453303065144726246184130931008739825631108745714133784131564006167619458448610608571132428890884796991123545639065484914949857637807504030146169634048642619805506670932290295386776804551530124967499765642874510644332223511808886946584817487141576682050411122272307731414826625458963699274936036020498123854669605597198989446933235250695870895234478529969834259744226859181226547842609928274040543350041282555077695990588121849272773308290037883076231968450032198344078831994963324472182506824724795731676107553143609240218869855777911327220335445170812425856211168558154538791721600286459738035412708593217404174479583578667047558485773861737722403418567770201775659160142101959242924194225030378736499254757911659014375144678540295879731467277701050504132434551014561312911499591723730246076039711686908090278976425851918467006144431810267074035628356401807114845239151065447453491362541809952494672777144042964784582962673759157633951163456181782441068887999568699598288024399845172170020128639604425736603905233752292223852881186599525619191464840589769178298958612346200238756157822034897940629644142196925383627925071125286487908631332239517861496899120421569560860680369419224922907870652590031022335688386515820693976863585360691599969360272921192636137652137690020338567834302653977941548638759906554572762857707944186557848910263986734048667016859090903733892832950159760657403114917983897985951714784742031059443380557579100701643679425320450488503685215973303010958816072811214866105835451614134787408710357035518614079202381156771488628301221786841465548251483422853286003719111223634314577096580892835363011410554447730432449788866328869800708982419630539932325539255544981707554684743669583586037191968305588671004456769925809073363983845843168997365047957748058664988696227789058244863553558652017148780776205238041269164782280958011752766645350165594812723602565812449868353630733949370910631354664045183058969731918182170122116997238790589178971582802405827270048469324004836902287967180508551247806139758456846101492335626915868266539544906411913345513371122853998444502303480819063877157779634379725457899194627045046890870134360906215605630242478022295252973368904512369939558272904623471562720766109126277921801230945297429161691028067314938852163771105821924968628311885202525898857311542981290347894015867686696726201810075720859767677539541145508701704861197042680807201538861596104487731067991900946483824140261078876376524678970343495225375569593499968261636042618554503760607644039699678145591302950450758972276649540166735587975251928253007455348153372736776156404374407633611015561669351971480114372323130100817032495850959319877876521440007275814688072534904500659548707457821953075636895989363839965684666735058715675368051527818716975668752991800643294922070465579014070333701324033080539942486258616098805378201251083023144049863529438177212941693588914909554435547944686896959684521608331760439631341008112240991286549062622141521096346361110220568937934477791140609704988108429454118184277157402416748793286185794830769481680052783287403600740180621556899478051588092035287002586305605457466530683365115133944034522214472000230379578600756889189387890480046737640204788310534603208495051704834812806877494646652067663212241633134701965692345857931079035431262291969668145120108482552146978631415928898699342734653807888835682382589882066677364980598427570758186048783951695067402836167821780667893293108820931027205878697829829849035158290876846642015482310148372517471183366523744479128520235454557289999573644491867551030394464810194953864942381381672531023100086567847546463417528139855243570669016881768612466661905353639294946892594372393560497764376211613477781106997473164823196579638141624685232957740446660866134485173745873532846911287633409264132427025409697472787391718576617534289209978596825371837439601843653550383884629226302345419373106065230292840149624009270758500932578695968582560071407015569987533796625075230416570206158395882699296844243909643861020006702938026887925075708783786409383021448009724765118146020247474565073283915156941183990201228462135028388429196165123938628360013141596319282657685829164001164728644611554305295562190332666010909678249721872214661380331290241135069117376734293883882876376465898292076043827569922901695469587383944806034492738962181057004317325136379142412227315247146250234227715194363947119936402916853409025160935295930753651243667099526614644022432651361301953345656046888196746332790284928228264791573249653337576211171763466304396229236343437661712017914351204585583558056973548952964130233667116482598596729744346310334004204378549967689291356265774678487882086817620405527407714127695388769974439869185297884586812328315675584355843852014087194847088854759349943115108161246455993315728801129780285618779450503903271952991003869173839155279758770167490792004018787557074123420712753496196746457204444693361635512002336844586337033582464419413507123691743026613373917543722734803257791869320146381405579727770794411315462921677928740336073985879631294957290540767434088538060110585271212594724004516089247081422326115826083610848117315928798663982165060724154427936169185654450824219445302020600110215978308392668492850703598680380015052857920392164630813287157601514389430008090223485442983014025367763744481106806685870136371687248632255653909235212578287241220454944642157214998526243181176282886925589302124664232099273659162404463024336507709171958922879936450761019700114927335655646257605594432160878837206595879657128562408152324252111440159941640959952217647331198308700043574227052277901523224302588079890294494640551196063490332264351338686206358707855614685593021202652874408494838571446178917966310547425409228073764839349796853179804862796132080003130668455135124400537691003481339745864566223716800310545398597628577632359831699970619139886259174711037615747751330790074007641010863940426811344292217039099615818905592836085879045628261018090753528618535877119931421081133601181353992327750722233181293617847662756034412555883464212050499972260403880868995112853591372051893722627858178043509508641000927968529466948401615442017780958601687027036415705520227270450623852190423051837253646430461555420176575842211791728773159938664632011605398361693121705736993261899768965702587226757210757842157514029251356593895710787343177619219806186566103133383223091871653920828577309477877968268560411741788326249440469736365965332423754571964199217832162963653439386218814250541313183780045462064228270460940211277255607031939318125734633216638352031115013714462273223724952552902273510937445392969536040484516536874756921916197030259893538884371074180858202249878493445637957483087021461108152148782712036038430203874253370539887449052207205272051158270812302252912382431818975348948855069521016598671071344897471394172297607008534719899242337183117838783402187443398670762846239529121371060172701608447824051076941670674016480746214540152197240697880107859513923973841724625194411239679545007574478579724146645638641971899433566774547091982205489497361453358712820762895458221687638492945741483986627445014217301181070932389819363356325950298912880731681221026095228954223723999058894801740354038345363485252065779556789520470943625277341911480855162533520833739711589890891271369762332523674639835713835600896317211059929264613545797975901609279784823580660046883576596999850272912046107347782577745912086850593914784071253342900568488589769462712229263743266768043700559568588165247473950801891921684750529229140651584021212279716699121949717455692556756336890984942827288622188014507631858921374988036320362822781152045883448978216499482432306623847921153431378786985542108563529637343901144566162689228723032753149448103056420968941211009965826637700976093612238338322113723247016157101400094796375722397794623267042363865326933577821114829896740391450458735466742367689319727930204186737722586511960861904809787611998457698095213555653448328148205643468183535438860566588987034320985347050159422896094533885449697640937884203345714559860453467907813068988867239186199479401300893010361896065471272739977218850879160189412570155693471712158820590418310603550320700110211570065088398715201687614393632697133362489508634137661089905823567540192081737645535575709498775008634779242037017501020323310625057916096200343045249637571651648877938061707694492714549381078422798560313816283474237428276970114071409563754426615137103461062491379818443028569141889706942155931358181446809204331371334912233018936456784228753031714024245821053262373888846211914212486654060661581946723290523223638735426192396255170063230366566636981165793489763137465303936211529207230429437139051768099471305828021355259395079806674658305260667513645226658367810339750448143073187646055721301371739596544681374311804511261565878036637613532353922683487213085697450020412497879893409568674918403076545589750995680954610707239578589750832136745960812138219618715585500019740603433564539313332958443446274308244864227768653641585382571373900117888956858580937766030248948830969949504400214711263770654216857617878643035870745642408270483130749775776285980063139455062389092740238260708788729120207086696662868067322415489624351572764684958244087139840934897531381354756310729623668308003803097338439616140112837167490760684245413596038790404195182250862108261868859257138987033635111011281313471528569719479583162882809101082810975566243247825651885850160317292717735006039388943335298232870059266311491677000834006181986327558595709237900853112120343185719680221982042704949906637223064225511237779245811409384241466753455544932816016331484356474378192862018603943644502605740757653562858505952262808733870168384273782730688923846669738873375366425273469956436255076840602472916004686293126439421640730738687625529119247286042067513526125850406650740393571902926636463212520808661342020895197810332021417084998528157904696069478324951127204749215563514109471873032770629635770498767100591103380423735844910142382031850044868087694796833681332932320180078391841275335883861641986258857760157827495095794516672013138541290530269102142085763822170636807523195725235211477033208093193454689690375888566878631157236303048445925043726894269676076281075724810588894582135430490808412771358871017271061062144243406050546701485319926754076132294352121856959763247992516488029886451651307445264134161844246461831915750678081263032917108465176183705476815989593183805168939058722034044482925599722121440833089570910324145898499086772397408920302599193444458263569999082368113301023171061166067108126817053201121598072152920312582398763889442260109649772992724605717303039428631403933777413744234553091381110394145708467688779155728817901556491212745249961109220456940782968472803190233952750837821751477271372604254865673125661561664510479749945923960213943667553765442059874749929726870752496986257049704065521259076698819329466480813808709437924362819250448119271766504682583797938234146852969960757471072761982589468503378310392180781319421877415313298329505220467677389109539190497948495005247062648630784667084886352627402844975444085336102558051564041552469736299730001583999296336832047143655756332040324222618509771604781895863417499471731775986611259730635797724329055093334193620643287124345643270349561488976968544981548743203488852557131927426369849927564157792494840418347154895681752981384059755954874479619438439863788687333818517930920715530410245433668683017518200853911318125968575912465363098951172918675786373940664490808884844454577429411578048623968175670195493043653191205088406780266555835542371588520201744340924770248525562016282058731095037733962264272395394795545137243053972400621758370078059967002218028842523847939535522793088866578381300067838498831220887936427794617694920019679037408240946928569940856039765735629651796619704839786139523862927707370689169270121364423893803535883238709229792726977237250880409283802342410955854099113658285114123477490581148671098736887220022847833373042618821695132405135046352273287543840718218681378938934632037834257054961657653038298208010447655211448270259710698983712791539606397983271661254353107186465910019418385523243613195690184719741766571263020774294810688874172153116126327838951147234951924767532974265702896665870596764811266220068579985313004653167900405916715921165226806054321035160754901984478104872544434482068557976300748317837841971607956252512867812571692560927050437884327772552849537264822470596127817469399337335552990654599071323747223538363998252414793334233601204895619577275126637328492594300002997921161573572950128006085196927203595863280444235160373663570848851168329435081203423801608702163533172817741089365757334308084747781300926018507702096048346163042134911977331508687018197751228116322622788912777177178215534754810240486462726432806670276745824220020170835887117947682850404435573353634858984510930514509264647757662706509720610019682169311373032604273959830615076512221149553254684350015526683019073767168209163839487293047096914565501092981967448955547056110049230058395940830909411637473412513936162234756406674315165160857855700589564542647598651526550575440686262393573070689164944521627401237005691041129259270557754248538071604259643118916109481054666121682733641648966371529730164089508991333374763172932239097684722196682881016087805699843826478488799506744764768591035178895712378976971624031817174577426715213906108424553070274177159173610033652471339131607054810826394488858038592174732782000653921473292434944584759355551288793304645099206755808173605334602797956176563615120621566214663621107694944671423771505020057868679000506598735322712620436769353344107404281421750896556871307983427673640500987333377686617443816872095534204871461056823358748018842099793324565541761084508341266161383335497948959382044689256892831666189167157855941388190989488190473971246018995512550146915005523550357395942494330393396416455900328355425010008868759653955577164137604197547054070161937313963608216429462361711509305164251616861555376098836482872924492066913903206903421392680629180580762003110543513164939692495730049374770689901925376985097236813780550445538730327969715312667736494396330770733745575369120514952433511532293558496710600541856585674297457218294782047168130155924418971232543088421846479322251626146077250236810334698273030697953846456658454308215892751591786644338573559471180991027028636331982969679658938007898833965862309645732170841250869606592201017574849598840223654796238936760030890054133347573558662461850924396338486494079998221647170795743566185319689338003077415796130710050121393828083787094107811987081193968076312533780509649629729000098895747710202241355932543097028855670452318616550249598287905255318287781432432866087972470099331534530868563514210216970155809179752318321998951366146861158386769035771113067639916992211811149243430628592458914757319440821634920327373325146981084109474091249448325904798537524609463605242977912868654227513737686809662951883317993940316259161930252731432894002230322762663165760453846855880117406146751854212903238334702945175451638847694927680218393651198727446113173396675560378462406804689982073860846981460990766848969819862468311719710505507800850128849185194270557823453186518667392919215769479604811872858029178328356385385301273804135956065080799684276964500850047019587002361544665536593045427118733767332628721890422995813863950982939835723567569244390259927035126390237819000824577471104663292046016494259868820115258584002297002536543260200626054714372378593168948539636154575940162074175734606892787948898197849068391448402873916507089222688898206182919941100265771978264202703931541697077051673772410844249336620328390670727747107035583908726142371351003805352021859492362628850462546363842144095788124381925817338095244145800573875235746446906874119522319471427070075871482033336064928779513364711838219398856084084979819283112937995835007009434082218692296808361184573171585978774123589859031076910974701464954847738283089295829008051663566488625469498845025557903079304278740699722299053627339498975444401999736569957742531246925055135042640226415688417020851954774783238790976901091169579202749617743008983774138576757924551682778712391167347563717285516064156960144472009338808053939400137535080457366613316226529253502032753758339655670556711077701614757331547357844464036615579792309854014859192964348639785278381108989557234749002799774085305335868654872537704860187991926131317947974729856824790749178333906707388435489866521389383446236462408408063915999130949325692523782029997975473071268761910890183539081342944926066361089131419505538372664001482156171915836015385207950554490802351313903868246587844707062944593597347832015515388434754253448588038128441009879674104065550375810663616669323041880997799263706265016787400355811262677790344951727143777803486288190693544736315767313515073465579259340222330949328478639881087102265882767046983461976908891147364252029496158189835460786766501723361597483036517436105963126423627471233463818204016281287608184137459857238187745798672495725782839939993551191679309904742806317021691331735984611619075305231093301444360617651264465949420440039208109717103252543745111919620993354274929843455053078271910939298451315415349819405768242213971254984628795751555998728071557825504006820324960486690232819709856793938254583912333931822128049244058574256654337390923651916965847197564904938636047840403739000648857656066746917165533691685369393082706425621383596751002251580640954944970150493019947354846593242810535849204409956921100738967037901235334751416441053963378775782123023246803742118702799412261459167414572184763871310832411815067072001298119954506922337267588767318020406319001171269464846977556124540283568426812366259617519903811080586080573478176715678902144708361579159047922151087553647278710369425046312546726547175723834229685187961437115607260053808057007303709245007725388688628877114297528786636209094188372551576411544302618833982663203236151562639128811195522996042612127686393146579842481183189511485871399363121103484968660315633996232633967797157220766784518368713393806395898038056454359965874488794576117967366248047981880633290656691898109822891479294082932345929561073210517734381177848147057754302305749150699941293261330439974617086398288816389973302697812796133683518990253911308613824848305087359038437655553079274021432920238458250370867454825315440376312187715957524674812631640463815655847702313573391391395395601219189272526853913474168962650833984956707061996598627461444008363703945813966360145719080033497429500710065737618759966688801555026839533357742895416442348209776334406067806204053663538532994934074731916558491457461073709193174411694977866830957296511645810676579111564857046991403111733459538255135149127896718663320993426192644130455591594075665339176887802264719450611535670327382648361107216765650928015904003660832269591592717401923751569487127718042955804911444851354523409665827810801918715304182894153547865787765099700091803664389381663979883850681648494312833478002974204399482020820579155566965374757536927321082094029866943500104532455832691519731118215522277636165269525506312878354765854753741825243453120750585053972460337743639346110220662960826274159498499442764251666856454428251980529116898375192993615713152743573971305844492682663619809528158472710080536955455562642312163320488708565570759363694722983506328770615022417101481147875758940639363161605523778965401340990831733645618134755154034184955092623510996501759029724543584864882826172425376036397155553087927540565222984709734566855606097285981933544092186768990828634391075691540376919944980884392200264428452115410028642637516806336668725242414706060691188273543131146800130475806214276541191550413716048812920668312129484200234665309791960914408670867049505136449854730823206429471618936797149291178068379771299758599327674967942940989207061922209460689894078085908694508320287148337525971435531982958619519233620652786359028423667655560643560302391751234078296398155210945630489973524645806649669866434474716334083448278641636831318390226497027993937541784368917167019940130616086040019374851835634832504946136511687935960464028431778277245614834726566389499504945161260978622061377310984037189035248071365681341624133809798590011404520439245893992914148713448288485686917708766982385093481915003593436857641977903603001585650409064667944850581912833953183639895465576188438287250937280998533931262606301231720564108067760932314641551186225456944755429320392057304333537115280081943504271280168942068980531449281233678692667687060044492643911943799418241538799198446027030618189732671745683473534102929891346212504104727009888208050271006709716250240280492807718015432782730029733086204256352542512556972925762884387292108315779546550472190548835512872004667287963635830511845316061490083747205726558652248659689680198946577024121685605313888445042246226351840626324923251870989473734705938501985832177748161872245165403847158319039161401007728084831948656955331478139797038991045350682677732091058507731308370990653448215804800962905515466672294802823229220154146733587954382662448643800250105018871502940588529446969468549072837257117143602292660077751454906651849570481721769575216812581507811548361793414127048111014193078851030460117075558759309914905833228509815870227876664284134156598648212270520275365293474112895553099224670603245127807055105707540819169074357962599922305601853410878401629788299148766001219014745442628628979461082002850482845042051962019182688649752178007243425053747174403920381959212901905930021644347080362266875647790731205290668272109262460720743329080695497903396990321118402859702864161274034514570235456035078713481113017335388363537721898708140535301042472877400545772707740942736950949484621239682942977926418854114277754110570791823018177196991502636753538999878056570548027613333410639984113375333890507659796668439804796950428059619555879987616255060147506976628244318918942662862023985938501677581400815900253454416014483205824462572991866543056721139669889249240930155277464109091984933234073806053048703119090446508016810081194023264763580155678176980395562879897170741092877179087069812963671758577313422921361479353434101222046670000466124002274754204966583898814658718447915986184129248893258263447911511552137684708340337039190958965271829470232770612182063285580329566481380599360678626580136580338899858738525781087127892848448097526126108181474426560971924706811010815099146584563988493501761762817774291462072602966390560556312292326963689542128703633717145338916777323920646159605049337528528623284557377155400559184041021289821102794896820819025557485903502061299046756317087496435215161412762304119984382941085026317887150506835933422473613713303905242694144142558418455085552270573261241933100994476103575728347194443372382596834854322700493728595358906803076515860112448504287613319569461200351977687187263226807956675638224931566652491887798921902592740596638447378456625935912936294012179242503324897717232885746907589878431478435485329567095510236496985211402567009731255908218669602204965887234937845758696302318088470014378518544159639832921447894454703809265339856114380897216613783539339363381295211295003047985170542575680429274123204330483236842339109409783423075160025337711395111116405440283504919793165461404872058073613562065314914076044110102254638072367774714554840517171095506827557072240040649973344977876783367080879431532329610601847163727936451503477950962720176406283981158124777202004251735791188728584860015179428689943536462661304509199747737588808131696358811554010845423382382213026580464974248857163448260679222560226751985535492791586391859534181772917068249936396935622897206912304672812413904264092499298297237395601827055179028994298837446823884131832424570698121761335501058104776059861948611735253737363235301383507458268606323490739455886474291043419760344024218864127487851514140609676298492469050055981012830717125258319495901241708383825999736352044678877402646254017276296142149057992890131181525158264478106040505261102572652222678584296072869604120356139299980086964407251704409614030054071923069754165303244690149464743489220666588516742081551829192743138149266820049179449906084053097121898171821092669292342911607069390806258300734356535711906937246442656120602586077743734103093625427985159333192293818939149553360557435877847009545006087617341249690289197408352883860011342264497686370724085275400769204260309588748654150153943460602927696211994863399873000458276993439387816658989352129888132855453171610033249414600870900901231816673376609608262418211842224586196826162321227436079184776208718797881575950566588006923597958270586447687610626690500655604114105350868414953814089170074989077516356324056707008553992931761256589962518822741649323165237467565289978507119589502481111910652749549305123079732810645750662346125887831934270239806151169317302378543820032556286335425233355391482266171789728295044542517027740246067345635368050818006867622160612765658531690610604087414657150504077706357694164884382580316629197208157038272298679433530277490085077047350445579116351937688536191348565455389945641204385824834314536145005482327997050575931459681230724007318790104217243735435867626928707464166924183284579685766944614571287437132113461070001875088995469287080806275291869826063298572189250698235661195384771497416687210901982021142647287957582750385743317174149791417306791083084147144972216290174528537001383927035507513926979463172055043941493291352868601529095580930443475848580502654737205760413297356915255912923482398491685870559722436850530509551156090845128576121927297910516172999128339721224564249952086453972777885311021699109718756640157424129844700881309418659200202847510956306630037689291994962607845350542771985362061359369326092620630093531732414026163793651719235232915989404185364515688189547622713317869744259454406446230925691205232128272544877572571070922258909578090672543711678651805385227205276690002597881910998019965750821017625562053539364788289993962363099748890562074387839206461182090501741532059225812233991927629628735529593694428143305658458016163786349912421932913340463212532258117164505958200324437308170108500768905301199710591908386250347073972888756059467005529377247322705716229263453994187164348150539229456352171541814819199655864514638828414691617620294601966864718237815351467741738580908169122126426858116652488716919811204644236385673818495348940756806102942651361625027834874367802049200273530719514302915310240203338378663043677553605714872148579487877106923513085561274944068028109834084490981026156361832869295064087506575106375466335451972764673715241512166136475566917506475467042405925405038231282390459010370560091071475332818176420180159386420722536078038465634479918989325712501113365536382529142286515704489881731687020121576794860221931572430795470694021652851945217352074028510044804556204774609578671612528153700143428642596249868828891719713805153843776463358082871667067582504751204108109093746062464762142080488883916529143846367171184033085042784871028734505173356383046717311011199003068769772912735587642822810351260958706403887575528385171178373594284959117788415114177866295128729448082605482534387666163527500210368924446858157305975422860121454972225454540762914862955486181053492350709230363115263172500638850838352467047209639800627866845244622820243134794025305490107838922152530592093714781027523243140514433916921083130962855983517202457447891459759398315381778626210439296625055032211359627706788616673201302852924486895584057158778822367279475313721484265931317327034759862817505855793060913210158183071701367460853916662574534985536798989724050743025704761179457861260581864040503313525362647244138824342223006807505631504154808145828612676398803876070527700132856853775174367358802757796486794224556872798321771526955227722072296510904883772804962533686348367358655202078772338966370379342395137089695799999118324530683983677541825501835977084776746769146968577416140253240016009673914387877324627205763318892728346723775663693844448744040301303183580555345628245732183864436657281852273224998082032243089648249692426574265910172969340176286568506929905762546803136991379726532176704091719284767767515674696220527273493266763089598990743479316160566457140371485378952908718096104552667075532337422084572530922999920629305529673161323203909809083339509830677508395059472052506917594213542242204672323160752847723564608165625155939391560756841917609130790684672569210339582660849916403121151072504504502882377972317812881139459990798159802118451622743971047821484621246391528986915707966729241506629188437782034750553881128517866904827194368079831930872476752709833566541253549273965505825654158356547289778381597580765180544224968935464965225739450902900557896842657134633741133302704210416000666653679303331159101365101554371819325611229153271886222069671351176043993516095326038711978727732144146034360102301351437499281762310553999672895991333977638690102532994534147489147285311528788557170531901458695357069388176903067494264703910511047654855234694587429887569754197415297598893466898673073637746918433914456616702454566774162525111593919690399151813525893138571447821401966149459814916018519706840478766123041309104751355943874542325459505032117306161844961747592239575610138097873162553006029762341246589606911194078252976432810823757062455545955208197225416090030572672724477509090664555058271356161434568916887457597187029042154875139554878037581801294050470950788366595783984064853739728336470895069994181751367081094771500798351805458451807907552653116429084337459815255490946809390497902591657635950137329099222944547981991030052781064608921781221689215966176193014783059964517060999762415136202968862299934548074013556474485483484188080001554620450063536814499096521092800704704846687426710779976865750378009764312070041205426386405989933760723854251414877322887675535351668049632585275477060559633219352764482111745839822404600422260260333474258861466085459333680992166751594507979980036547826700841113211681553918548141960679508742779503962721069271143677170168221676920691258674515037206122126408398107700973604602541091811013355814780519736752831535746107591302151207342613419358759078345237444612397321665003672483521433347115115248980171148952566555105253458318115788810766835390042186996045665351553696503178847052515436071368616385331870361299711797783312974329820693143472898600709862480408194631422972427863547135179699221780428467298705680556348552813135434647470019404059937451797170737772305295037689212820490668829077899602687856024037857973862130584659396544120829485594903368377415329478096878184002513006808559254620825225361272446052731495642344868981575848278283690477135535085993656541425903033310245123095058635631048234361267312810178743480000660731744501607483879083389785158580561254528485974123883517272107376802532160142117310282322049985993276815400584568881833741311908072839066341144029246226214231981610487539048878707302449713317599344746703548169369169471965069324260586503214481116333830541046269167176898987606197634751815478457959232752168033587761475735354557953677973895779858655451339360580619122709471506427261346488755054792845314376038892225468885522626123990197979355847037013514848033131346805847615584846979781057757981289263323684881369033730520466390586656041277354499592891185124164202543787034998459557551210074910465391312762740692931415948344698214681603327915868995731059096812627329514817295317342490180669833594043155797652970399054275687134365127880886374241255664716990359052156744748554683417294723677016969635408682516738475402401575649780244577832323375972166271016402994569174939608293712283057008586981338919923041810740670576983049205853952173424030417753699879000317328951604895581514284556416368402729170344183977430523268069098553325505684292415213333031300136016063262168594982632544522454750234737867558749619348244310987958499901185641167988144506968427415503468784566419783700210156302098436448881647188442260030534070108177849848410427025648384388167836429742437144457902884186050262651001112934817293315308532136141161800330816097739535141980096545841534951051365899418033763951111231878916458934298900223456889034737733046612170346568181643083879532954345968870811517757077647159292927962804132454592357105235120788596103516179181729932997076107880630392878816879984177867980913055482543349865249858246138246599911133889340790743116648594546904315607675258464915481098354573889241503614036761423401588760132421293159515902350024913570066365758577257888552657893805471146859948037408523362981764531739376780007000028095744007985966210071624032309686419254892456089669510871139962737934857704049055379989490229212331145084092215883699694411481074398135686446576276464448242455697486639357290431180753068116175798950502452524066638773353219985921979736512992258180121528414616284094819805522220203033334013969144301812576724748869448177573641092444440048824279858694998329037753811475794838966358094005836201580457332770132619323199770132933862349643167354829684547571068929514941902840246223463943933470789431009471003180839874207227628378044106579599697447135347261513583192440594580104915427364205345518941653585562523672931700471961351915963317466546269736946610847409354664162499573523982322088977552667698430137185749884859769143259766761258726760239976243980923120668844531707980124371965511750354655962263497175780262833179294817477806520387189054617350734312115021938498184731520077192559791846342462202634281932981268418614168967037389515696041147226159958322730695174929457176243136876478564423772072263146480494645095761750142940817209318089031131848732937112514912966173937651454187530572525685320227638493821674507419337923101404798333678377797690121332303699101948979153465791557325536549199091915438096340862352384267567978710654069340963097375403853476403383337433378386923432890683223811263219792349980735105380573486277669999823149413218392264908563638285482161767706408380282997902667852282968756152883426383742798715278704073923327945775780226565177293785854439988481435231319391777179323323480873937113526025233854918235379534141813831525036915268711636540429595912488922802887420828790461408250612411939679109761129361561184964867094182180934630040115311383950376516729749341153154830911442573842264553855542466556925206401256570828739474085633644681390699146304592685484935013446841624474069006876965893099966766263530257884253412800195323272052319244013842110676584288572392180228696518373820620958875619488849216624859739359135910955784483819870134721840134699414176714802146720803629352090153724687807202674190753052788357738931604858100322227873445287334332587787122974239664119742393369616833322246922902903256334766120291173357027421021201314419977629919361283397123843297564337805246635042960665148794265198890317953761576093897768904647652370747140158819911568708457374326545243842425077556697871936464775869550507496027769135866030738995593939596568362784165913390156994116491898914966990463798954101189033598912594116110633476358188097927924199811727959444813883848625807167760775520166818086094237150840352588126794608093965895968017622085547535051688732873244684012333821794680351352767665202050244102182645290813831937807230596195247005328430666912429730247813738329608095085638285275052698481578998745583464072556497294715447197306531190776687009903954957587540197979059161979238744432372954203563598800052984213683628978337489764676850305959274764261657898105660730829074567594411654944678890995635856243379066287260317288791756121870112320642241539158029601606730410537570673496581377934645620517083255574158920935652532647552990937062123017585607292799779654314147844602788787118674165695160229708411778177004301224976018017096603854854921912846766396620155949846808738536206463684248786416885058100772930956183298658245781001432394071214244610040744608514237854633106749834665060801743143637984760704599270579412325092015370257830616268634022815709604055497390748254675516986358164050982686741824691248407621996200407390777378160214375760197894427820153650892709589923914038136139159994115498399964652643003825286531155816067819556835826066933405501139804307671687471905157246780566573354780859450838429005509870138252193033323805392074425827147027543455017136355422712302977278672454118675095455573894365122830085747433249360268067178070197235077417777250438805149520933036511254973155407408236431780953427826435266016625487305226716242558119656304582509598159466083426638260713923810570911569634125386132966302981807207442402403223737056418271718742472259996507054851677297232850953011605465914853391359166507120559224043915544059579378809984429028346221008337832150489564400115748429491629818514862170205931315054315155169124182311610383609559809865061553587524819141854361360997168944204621610999523352146550838117326513011226147803904299190652262927422502764953653275208948430979647383423214164027609857793918024646220098955746055160681405510359354412843290645014765369998637623435348776659857904500317235199073312728433582369187779396562263824055458711090689787040472174213751000029783973481120057481241421706158713169597925108677553010170098232715450369311847907138875526729763517322525950225338413446662792342903060338274690820348048752226006779931066500313410793196069250618238099508276039454381173887903060918955297724230172516189770939082219453910711091421946407014176740297931965577755147439866414351067833469173477860776527258301146794832848853570739092863944562678394497403068042504031112490434489274333902668572191501984689266808755284981746065199890883419530293415104091183209455190817290935659808366425933320725413911323616549493284410458478584835930256364078212519330914305960087081913634370366839210065772411007860155606180912322592059882477338793941171308937732213197648113332153264523471905026685328626453736253067097076229236534067700433104812022104223229444842452043194277012923729026191835739317152031327110411255517103775858718053447824090739478784299587048670369195663003325516215835059582496292162149871855413628058628220519625076267447307774072129090506989717832063057190482392178741421280205952994007157310860186826228605012692196819793380020068909833166768813469161833194788451272698314411595559677865701625894619759540214771518222998543337497096444996281612789438940980478240150385684848625981260564768837955426004530085576726503255883769178526974666083162523218271606724146613898842615289906294377227856022427049580966463570929037304588194911452786595363218025196005012184864984984352874253570686623959464278934988592400963195098187191560366705202405849230855284354168109057788151542519992317675420787219130287739207655896014650484295628090982544651987900875070772331495891664843525986419912484719274434996753375859544526041671732066516947943808869385075352103186271208042944203537604856145076689314805791088444788096997451172607351860034291458981508929813076890887445364106447634608636678468203200887682115920666872821446286347237779110192679719509953672365215929705272908599829529750039188075860339974459499730294988296393723848830248213637223812732175282595366488880279494892108852240918462831266303994838278500568574832141760869270113755838664282274454746719619328017664509837632977780561432770326570912775124878638196405348725151982997460139657357600656962453920671341262877122712099414958968919976085554585047022835346515303855366461596114875408054897716566049832670776268298051819601788206878003147205182019673618247870450228967782821968871218729576018844154981877255753876477458042590172273141778770985151625266144814547833690173590250814326060777992444630556594383697195871178536067341411423680650386380485354604401731574329120927033669654106396191393304119172251982067932130226373844661056500743768553407621144431736701372625588164558824832530921764773925915532248677442639418358926590669217749757479860941654062423599532574365264071745130275891162938550895363854976568223115126410730654116958739397667917904224821087632538559456392624225386011980741018425051105792015057038049154869151711618072076585773877664475161940015041551325258109106530980733512090138502799945468272114325424783233834771562771789479556847729385486312275265238735528791113162344765812821084800306179671569566584490099682776745047765927495719894511095891311561299757598275545328984872835017718643799311119616016284435473821940944551592720359509932543875484664790954079933830873497887529702485504840569329836983369821798815739959485959783103477891748471045021676814626487303457893937572272087459338101614908902127234820746674196856858199810956790250221071406617940134446672486682229826651902990282100509804981740681619172051693923350173446812500614277571414538906023266517802528543080753749772170497566125590378094828226575180787988008315806034617151850135088183206348239510727782689135461709097269639447867606621160484020244443764227553573004626661398936672619479240040935405690114179008345839711738311372092248055922927568616389435497414193907782745974694291169284429152731526180218645449407372946390892421561948593431226867494194744343261079352843502298792246380579816981228898991812742489345212333303293378310578402770313484982323561467962099904351715941444002170799765805326029465724505139451304141445151910195794368028932697673463074892302494133753986347700903590998672956586394973966650307961761159914217165331194261212471117946666101139225879884793672376628986350229295436801470031465885088558954256296958157479664634807438415324770374643217315027707593493187824238452596551754344889051175109760512253253720790375126842806150393291989389777634733632527981057399074587571983842624742349368561994703665157043161545769756901547768921073090408262645503804398517456423831882583703248323331674610022691851442476351698979447024476917243418895821931944958530605929403001805081953854348630432557655320298008725419524988295145555470440154213070641550033260140032755507792185686769996841562278896579835219340281532605344303794687770015658407899882797768295425793551519297492730493555522789832604495925430891388599307534680776695084046048330944210961064042360506201067133143878372638849657630100336456111465483123430054067619152074087799813843175454224129632459801750442575951421962032658144121108996581638368193375357252035288884558466106615027543514750280538719622768168271209901774082152978633680009732922821937987406491225097211283886658757557752654891242724280794946485315937274483165790447668472700038395925109526328232512983027009222371554459000814947891537201570809926323128125430119516717660272777621972965031506703443645254669760926638348287359242050819046128140548682484946563588902875606546025059217564709782968582754320061460733007739181327650724715780477148973233818111598374689773012827113895740493305510103895021089210283911900354102709774871712109044044876046026228638029898728729036301189531776923360403451649062644203726887845054732902025420707223734777771131885623171806987109844936461500952867298851844141398973957359438655526098815174193546706056918841395769047118565194778878171301359295554686582869974293344461822893192433607419850094147691521815612508298566715155070564744811691689153733066242557623986231885298573725737995109415572320107867247340887908528296781381471407351423606293820194627457292172154993712828215862335990531968648953334117454990299540325713803035668402079394031641415708558324278353203303535815974600526804243164514430214004685545859234016825754459872835574731097433511307032175437522980853994627436239940852040392986525326926066122399445284177445552152857439967171100343236612849095996720687730386101913147530882427828462960494806942930712957886711797668945932794456901826647490039027586445503419768210602132641742313156711577622939060822790455838809292471429775593755895063165423479335809545992609070029222642941336019309011701769181990801184393951159612622140675403303738322891068959675070375654876239077369687271930108052963665471069129111520675894748120452355418688573721791583618055513214683879662752579684659137868869640855155183253761965129162767179518061324965750251098201948448713930879535717026254847820867891289257195721095077928331142506121533582893010189586294926312124393853599523893753418106235182963740008013100742173158678397915611541785453412851485789973273886934585293319169573843757588361315815304598045397377565558342245256855537956815052626387619612615273655736322229559948008474835832269658038299612744222511353054665972084696214719514086331592213056190074763475279814129644877129398658673116391627501231594913968587050308525933047594257233492733031901274796421325780223494607603754319635690819390743823177264134384412111287440843307816019382530714514703589090074466068532983527736322498738693678321203328342485596090729181298798743075210422634177525760320526333243398928117110491736778011967059972234936955428350195656216684237100426562589143633800394108982129216577577440311328940454343432383199839374051366622109118778534738185863941920194461748290399492652848105675677519234300412897946485140263430845933405933441512756005056835064910776080383030344811647572259406069113860744059973559747484698793153757556240819145912478143451680336449040163693167175213593722772991448053678605979915857713821740761313000744433591048692571757499846500093927260346098881177056618579507704585496131208877106529194600960891500980776035481377506806548078747567486692174890313854859661634389640224227341001931442746768184556304588399606663716822844357404032225103540144436722905128896737353541993190046593246284731703168607590103857630174757853123568605057736397555853536987386923889242009923805176478192583824234391033803510351919308125749948365564579878097321447952344804778822017243368389398280798307531367113164062132085813442412810842484520469321377210291166216514115021439414451861986668227810546844969434869096912491685603449270671408028720782560271915430926389628906321735137574054847235735805325821830649337408328269976101312930012046393576957832682989882671391519969079311268805061174291991733567127954170817083663987311466256327053827347087747482905175555674490603591624334447004000691676161087810541605978943894631651898102591095643160650483243953511792182806511723595128565666778218268034133010223880738573270178431151750459058711969837692721245277299959676654179017503264364225814508224277031530653250756166260421077573004540564672623668158820241027041163376394062582893570869796844225799298823578586106346484405990451021758700194276869060390560244453634537688277402090275210738706202685213211466471770354077126214997182789999526716261440629895920136032999750368562893256186771488154357988100891694396393904633637999273624550552253880468268815969516472285827101158556921671616677812008773526768373167962423892320800084720188010808295558671220727122589149236409116393432013717236233862343317663534885043053687086712243653503480752954491597811417197206647701026086347458040630269189675502284946760129710613310241768223622488675762629234775086494045384168686982125650800744310526492605178507273756855616045080739744580390566417200155034419854889228004790475141545794160175823418970787797944551775700453565159121022082890751340349021082066404950318416070388172511334756532981075170750030707475754341136843879524348002148856667831547531013629781914457203130194805381820622686286634662292779979437064721008027652844693194950702985450455778716573393603867900660476953597791166087829135777683870490702091115355497471054532699119668344134106387896157297116271603223889391645850902327337228024214065058536251043316942310950793767174517639574263986638428289012534592826767919204167883243071561991566440165672834093744976885906869162653644562924395657331473521796563625145789708971511560717776026938853785828530696044688048053964742899735540944759174059650843621128209072002485091204264099211558543321055473564901591696764566629670405684100630533587237535653916498640824835371643621156985743307040258502689820490279023264991376610347579222915587091990018378578074615784950573277728192490530833191123776968663490283524062662664026137419638532183337083406631090455888220933674049410328564006598337192186197306962251290662023287087810233278471723241293288957521283007167300486115105313186243245607347259098681906816543450594710267802640463458137462866403959052775153182483146959289131802077480661038661498698271748276232269924182492896546522255458296745310480909255450207666459793644729829084804259305589197937800470789592095083572914698965222528962549970725392368123817424846360304602660565556128197809408435524646958307765734658187498900928304651407217050410989904292109948449190042328038164946932929003034717801685349818934722570585592088528032196057488791299244842802427193667093525881815876950557356852869134707018668354458650717939153633025265530733931438309784637107654469083064828701904187397535766674590121665340668790936624149564844528135762525700080741618659721147271386700133564851727904666674700170459065072313586808869368449211104692059695688028838372914411917444017030709712857069705346108441831593357896627417863713177594534980570089621302319409198324148875840019022254264290898433305036373988299840073441235496607684129751207465312282161940372412344033743069535940835034763749617145267943704146745038168428199799176591333994614304954904751759426534755754096744020073181923349114042314988134340167018635369893420983967641668460904370115329058641329637572138037834237854754715651086471464538498538805746971055522811511155844466057990027139325076497713552118009837327186512753634120380665926723202374806618922455298687115802743892606585768148791145133898938678282217025998637713401429109171927860589251068796800618014308545420814729991886860440678433757146480247249669760939453337261403755435838652809949718678809444802795011612423503925974334875832170236961250915666805485407402514489918577483045911850663988069872329079772523088619185254788766138611363245870171666064065188894933096082619222696712840317791002003581003177688677832413908767082140959538189902705241143097353567353460957197423286484792342504757573260201525256514112018588322713371711159497022796861489233473442004326784816692143182353355218232506196095190117443610284986959637528993756794491593970842146434351662097013356575209810398216871996803439618126829289516584467430375927897533950816679112143479771913935696424954190333743920343955958408713632513796446178151359485816636846239932498905261738453053834988482369454130656009174372477965263130005696500409020929602441308189168307316111504572213121460126683797222331776709382762401736943372004503201343507795737538492254088044046518004036546563738090115850323189561263690603072394272236549997945682378834434106329416443287900778158639196984974672550738067183831523452568823466003451327287820980396338941453623361943806757961224539179543611321380932801563233451247695884814122248235221266665072939306672632513830295631296431359513759417102784114531034143155032740313572388333214967903078758476924931436949019440894518615075805509103645705859099496926088130863387731300770806227416389499800168472841145536536575648983760228559106384964792236228389756893511272110357402950050846415850015467416919777351409370286321424847722565632180011741998304597289204739911203347943888408195326809300947819414075953628355347161132547106715092975527777884687381234602592677541105085945485860019044091688436582668884519374748599134499874494100862957565895376476967665115241642329279973954899115671258935441742236339366325605108881888951829507828469349354984413630256850917865310955920637050361723875210443086059204494123374480958597985191488665324018807091613970667511538252896893270968108190731615919723815489744858932676811935453657232761147581351017361302081671815894701195044536649602422370034372816193569376593248511128543509485430026081869032033482859544476009590118822749379633188963910556279963540983544087792513337776537297626519946456569391192676116705081882209037447602286470115310650827483492503014174539172057576869535354944984737437790669567238033287996774787603035516587933452029431223367393376425019301868914008590079169549332733524306787629904946734160878818815321009160468420484409830853260824466759681981915024232875173495335061316486609551652619148332478950637993821540516805301001507577337056657690869988086813433000331390040832615966915185766026931266850686053457931498202207811931866909805319366277889695284375068085970614356764413996553698383179211947817363069445533160114388092876485674088256496106857534150614202330223261518101711502739080306956404862690431504090451894467770469345972541551688552378485332744827422564386273408986709124302320883404987032760044931611209621783927574439349523802404668058249563926715994078682451594924233009458691276211679836648412683657066606640759689770635201299318432601364387650626640162393346764130327668396394376036535313749913243265716287609902833912986896056236855891816465408169487993609743600401487893194664070682878438738750573760242570367003667961013952772952934534933186090629452460196857230605054193938965099737013009741661184024366910367273080742418234224061041404815090415718909818920315085878486150940308975877658197647835227140044800136727158947735413261585110532334150141309811924589333813298789521609299533229016188583138145047884367288872863166173943371120794910207805479208375628081725578732614126030798286300032331034531630023148192885721450819795510536718473986947912670059199711791098268286677451203475856856889916549962962320582665140854372094305180631178004396731811034366501618771628295947931481534525179689529931828608667876556423019801623950417539168894396866241175842361242363475025570583803008521624379819983067099503100863018208766898490993235410694165649290359626736188451642807088739877715214741289662399270731102547126188352164398181284423858851952464130443261591144136052590868491965555097355836181180047959441843142304145147303891279710698079927430408940037908978608393021542782091211376484901476244331641332053676813698019465539578138815951680874851533398628460640171178078406902318338655226490302492083772435737500198372872303425167843421143890267404593049681429216247783459121138706485933543417736669933838511106742032506258240433145462708881970991410493532395696818098336807598733478987512338034579282903226110006308381433530588888329066030552202532850624965387700362329347214689856589829170103426267908163344192290346298278754652776922091922501296226645894908130904420421516967321890399867903411066368349037894774400596492734143922595324904598489631172833194023322467840861848294218505455817219832357586094672747941570057908891927477605419455892319338785032577359237351242380200536854980765584321839274704762709381617181213390535575132472099100725548355768043349074956076010278172378490267805586380814815588774667620061899553066874635485146736301596028102539337614343239445682778081316551815910811772094975705352837454583966749766046986471423545920759192646588733538948999756584025000898394174095647475342882082220335068026854208896745751236234001869688434651324370425031191360071946301074938995385976291008956317465384281064847115587832426790159738383822947130615733135818743312084101460183252258927816693709402068572732185432799779378614600990331228930053553938362222540031100628537237189122024026976073771369406923936490935810800779956001458794196326307604506441230263625470857017608573584481622249408215781508514791159766307529663422056081213326842323173610051238710516102918899188695552803097118681073499010292339946377622496219847986235938419924278299563525615102217838926643450487062419100771496880183258221249179812624367650336638445416153039605728188193027818738365085321669464688271896252759634484195397839637646880939195847831456849761453021407904227156588337662582812284555314944905990733129090977590077139646714023936173538315361279214755079048929649242792669200641545541991410990808817640905206323020045416677518446976352663189091373289217549264525107904620141489434737735061520635864935349758232342587047197735515872290329087611962953431919142947759333847523460980070986600162122999574452354736377511685777844649131242905831667935557670301969322993575047438852946404636187340687723764306519073056615162015874059738848515562562450477468082891868373716159595075676495280054541790599124544254394003857844720203159870660497229513344181135502100384808786711027764061364576567840140481859515139151739349535101340700193580784721217846706820428957977086847072854206466612308547450541478989842499189226340779149709767964728918486903580189539589963989352585070570878649872024928061301314165117230739748865624756054687211466157566835408538737616092981081833019472800086485062161844575500809816392468035732819044133064807116131311990514929906215376096769444024194918162574739749461634886921483780593605038413189719893286127383083579676663230649437978565260203903079043408542527012773614593458790550721909386365947269438377820224729064201723984836585501953139936680370518187735487247734324670063374606173018604496042417297567059999265479404095852107612658148121861395145810041781725383762536121712034852934545075215580800527746069054254410093272802831861766406300579165507138499461652546881206817648531184094784441805699058269630464820832232957752104497095566652888229394674094773072507969660405754903193365684083370083125856284123079791942428330983641977217434070334935494122848242523874395064348571901057269476075581025921824443742394812107739878989834443303238127085355802854086167130129538172231547791477296486892797832629100385501832205988659812813883182846747806200969759403454718810406603358367532754148521522231434226246287632626758170513731096083528006616987261887900264858321784592128868706285672978985909294842820859046808778010578117633038715813303155596083701409377560556125413671553010078010596773284743080491433948037725940847100442324193321798584079439827103980476220789782753223643507502862413201308897485309771998862746706615986994020046495440501248666376987184306193007060614675995068841239833390127607217023621052501515697934560513433696247435415558419876183915719370697325615401246880577423920862207440284075009997330611978043962410766291994177891250740178536353407968828219239488487973954734966884491719900364457192501277359340868265645358534900776212241227114110806898848106543439568294271989051241642877870142661201461636647217885548579620269517729883056775656593615306446243827162389183810125777785989147782233226203958655010984660309501586921282122901177017478669156675539336983976872581343492626772121304802031196866552279721944062790906853089950401553273899161760940152726697902426746130819745609584775612580767414543555164468466446734734277087995068829061863788692544482272027614306833572495637021545848808220329213839793697603734090105086595337673412689057106208501199145187054020728094449758847495599092629300373939339028871379473334855377747585531613078867797838492594954324911333109800852294861900133625556624220496540187206469092310354064781368967914130409967004462393926252251585970788648299096501669086278788186910156067284109375261823442825715901823538667258309057331703524128873660785086871234069161938287685007459846454769195437580220773126205705094466189082876531175345608129675951195228573941710158762400004303473040998185250214420074342475002349627564097114540991479201227435487741738031978807278106457955498412833855551832613753407679790424249017791994437011375970207865224729448381364468215880173966254977238302652010135580859661683757948063991272845651824841166483263411814054919933259737559140845478762906687111274357106947647638300829696481647615015343006608278301487254230468792433628389159121998015995064699606633034416554702611710605788200547659216201967077909885895281156409643057808474406524341748854320540511305987710233391225916951901003935023764940524379666422345769092549267553825542289002356340543880966891976963712257257017347852015449867971982038555861285703678039027895301454444131210235472887185749170920599899601170898444865273121365622956310280924213339933219404061065884461304138359626606530286994744190217113173122541227367260801993186211288686758358195322747857704797951959127783890142136082706641867215636306637283315484531488384657715341204890442714026441870111601868164209061643029512190978055700137776057496483295769723077808854160499634464407610142379975677410584344798068190487142273563946141447352031664285625856618041191590396483744369300732913433559325580211722656648679125181779515099438860997981153296710626269771160600068484201659296706352269627694702248987429230399177722784719193739922427411299077855043762262406102900854561016822464275687276433013377489021824739701329872030802151077109430833364217774773638823337529987283669432624161706833119655626578212701262261606524381421931054028295043294365697637080981656408722926086482061491925765131929949644406225530337008720270387258107033993763042973336295075466842435986127131280330323026414687183931517932154255933711068091794102398554395608894291727637811138021117108195948445049939529415963139087719753957672651026089891609054850393700833669868215052038632130047751269186016027050983345722691773954226876093913507408412870304594649375060226385907481951193573698229672222546867905044958285636837066876629849952704658401834471136964070372302264300075261469302095707221966765303522138815864532021890553312680971189511111254153009477090712709320106507709773814031867536943873700679336571056789477121043034790092088315419424335815799695637092963200494300603690868799835236343182616948879078223727325331695846290352841715843926366570951964221517606184052685996213152821324415818404390969516387834695909389380775074591182553584474082012000424073869457211578281869043138743998952181662878007375342497865354843465743441106722544710044814294213878389376919821884706931633473540005165963738028830673456925091607897733477006030167440643887978382399720471796717267522059524396469652438878810499316215592096413658531762119655232027834390545581059712478371197825754510419575026995600359941271338752092617951202721343846563602815317504770007864994244609128210402182129169692283363971769991627275570806005733034221842860933683727188761811185880280674471285942271473676358887680279358113605282136131958711086322655940130919577445676526544989197158872149756702362795488864527824066107867052271536022654058262291148086163845708735546385421173925660289273009016212683474083825787395975962701295867097736386151277815510454368958736876018090896627147703472032852656232019048023016676544253492234664369152677866766349787065196706633348558053965386522509894600370958613598813353484682483587270214485395161157614060817365296571540704695295242799270489830090409514002420575097193897402165584083850356985706940558494682670259754647675784869204648838068647219777071383565936723317229891898448845526967172543307842966216088862212586367259279692363153818821421674747574390030918453158581978737141601984170924946781612438625131224243729781757694372858697357057346191471630002860773791850300003824293132204487602110368104954559638483525193149451584254071262322207028990726241511084480255175239386386157289051972408647399736482391580483883759254218866384604623121079917334883699688310684450486224123776922129795182769254611554956106674698298270439140691912532593795322054234673407377451355614328872805991514642686875631733656580852802397302635205906191723775105991854601696848178914493568725962547166918378898360426340192934383299110620534881599095606423185110769871121280908958039295822341447201324899611226995411995403924551872028248551565713175714190475077325843089066766121167681176809230350359239279902926718071048411025990684021445864899539269378161187024631771166345271331125344337612371597046813930184205968104949975623875405268846899772405536411424811286495598946798209909779535665891535503676771394267500803726836454532837620188513468121965881883292078596170631398563059456269174669000759947591274357348087292115561661134763225901622717917731355229518943331180105601374737626443239759935495451956091117567183623555882105535798444915082618338918914366351389034448576411512194409799080517167965241176890751650116305689100103352446650858466026026318266146328945316810974603180835404265903835169156061351208599415021430179175486172179761013028088774050803651294284811210687098766468239886276494090313810955837414236071630094666463312355415814770805793889219551892632974045357428743039696184748639533974079614545251698686345370128025877574115865926700954160031079310292127594099853579722559116782649370160501100898082457170927117205681873621248677790928990955756650599722963292494260178302438443986647366040589900277344454965424082376088781424053771443809503953508234078472156843289040431625953306965179374752240289095155324895050065607260508755441107280142873044763909278447665659366940006195963500010371816201376543612679361694851534829180963052149751421523482915349483960366956154764331765841789832053706442205782001594790518574178779967389241579235456622165313812881206029308654628500962626276165010502136844752438981671243057072776726195175277038413751175808277317147501039200598583692116723642562634954657463152776017593445577390653593867948512550314805837125854887632744818957656151609886621285002620410117386991562844378046389122519334607139992942196028867894540718028617199573215397715201997054395779568373016734662987207421876080491846354767568864078614456955530507818497475048790284342085324603447541969063287908653993646187925467138671063772202427617024047514766064083083928040027949932906303170338316340885299614681214753233194994560609164438707010725676955221987615638940210609175687662500975662389110311053575443608385266849793537065124189210721760544391403168741179770200408307525509925683265508204669100813558243245001830385721992527672071803719039463919623039323938439219407504379605512420533140491035046038371169285393110816953067706524335582837949074392609838816629723290171770538029062197438086829487031392364346789525213596840060946239266429310168773399530546108412015233398825690885043434635106767898373805636323550082658989777907803441676234102678392138744983213811427548450898473249502295621809149476594827421385812166904625380133473523729248278394079701741699705933995220917292459739826271705847295607571756487249970247988321110527030155364558607850725781611070343715130982777243147016183351575001257870801195269544795017142836305755106392707731321040280176252236145003397612950827588632634170199018645701158699663087166670686149454616852488327288958320856843493778210455920084063765200925751455668960447541522844606000084995466546653586998923870964503481548182440464190111129357134909777064266423569623115277169724222863407317669391524713996258737516410560984442982300381032154355738906191315704770790873505198753810228401579247014090175580556520400032843443228495973306720629229759518138684341131003674934814810109720613578456929265581509533770738951681974155010772569019400452363025948986480515747267349285951191751274201421495535246747497714198064574059066263868114962374638257325936581159253058878162855737693942970942447118534658554186048637739599558656663687156089298924895398114835456727383426234982258351696665052850338717877933161746153914348646191352871501615302225859090276871538738033105103088302425207489988274194665637292077799812670577135993504891781903933237134186641250819030736924440024679579938276109912072084105489378268276246218960398221357744170507627077326770843144037216984951676999519370049994290898693414590857525341137503097508874421669030976218817972768119186472842712184540892793653681219714056137345207583134815855083529667481203990911871222055066322848044140692720747582608680243597473789688436946112509017062734880061108709213528333077448216719878567988256219504792756194004633151191098108654063448928966861076867840431480720104610927120581386815625001440251326266454163443812028311330336817069694537474935770142472492716743560072677052875490558079381995567561331601984701987035032625136010918341399608381320227327654365020464365269900095368679703401255733798207224331896028751911431909676855710402042948418866502051684771420350857107657282571500064807491120329706135584914184479209483847551524591746418204447200101425459968021752893581539058863595916304312815111109695434199565679360545726947239779211005393105565978590381125362754994359139144804323270605268826369467330380626108842821930132905005195934880575998573237408262523696176652375658836442021990666511385599055207024164093736016433456335722931861477585529741745733764978012285092233306970333686124383086768981002838502700048647062957503471665667930723742154150867835498786278885547052194640251731672668896330685959161777225516895899396405582281551495679504594898204327232962757000585313815013682024401090371827138030758680534972227920981796412493547281893685687795800021902720082952253219109339135362280829630396924224844392127012213020772573058202974076397500354622783353617839891588199021425684926498408268531007754792343175419636139071131146176895995757880609176990534630985288628766396294930041927818875943804308442750930240398524736132639234707203316422638179209544487611051905359761337957828301931313717756734909931184627371288562842116577673341869659517638549504845871614075788872656483637118222238977352797249142978423055730397130956140332487592082052337038198741853359235611792832190058514049141337470987773175600672214191938411145567832296094619599045014232238507246232134410318466370783322345573239492898802090004495933717690370585493547260660587211913414084013190783172259930776115713223325646920707151177249365701794618698489739099474681108905445159916363209939648884577117896140667870196882929646551886510473633388176143796813010066822964732977583109007667606402202878072826746139367303332847105214678528475035415563239228782083996689225271279080723144856316973393353097936708227395951209711789197722536481879624889937017653474466742348300719667982520161437859496245976685898841319803647330610024310510899927444259842660805126353793206954277893382650339440483401483644063238883533676314340305925588741710455910363171679440110626444720534295556118439281934310425479591277548294469452547204589691522319250321388568812898072895647441446589154345871692102668764078754998518710258477430747133811335015852185003978140528115330387698970171448300533816772485064903885890235526586743377296338254195837384623220209180482509462929618495979523447425211761028827110179928954882101218321462898346718906679703097337394548018796471770340633359345269379999503048979334462459166488952114349566065863254431731204146255979219603319486108236889832977144761852226562243020344779095046732674953447558175566857547502467888239536824677520738836870355847092845559626161740981296914762972024586289147435062132317509322258243838200784683753265760948174362512464182655095648930206429860437382614053099142935091742630199681034632384472625020052540592847241509577953802773697344803499245223081530630311067182867984587198163756109678794649917827962297210410939601685716827945595327598064166660010161798659337976462362470017355615884253552149744919282233574675910826848865021794126303648384018204822823950604527726997350426361303829215498982518682414363386065728983988481337393120467566092066162732593898159085153195304537989845416442931235424965732818207205283027703367227645211555140013322699371979110600299844938598156312000212653856388813659325762374545261688034077730030728054569731559348182570252370766774024610360121348126449510635116826984555497351333620102093508525520448328273525890797587710868716156809556284667513529419370473329528410172871828573864661505659317323188484203211452987435799425170282716207634540472155982452109332142138752313180066682511738754436354327610341896546435050723232467961944927019147155503421524128964464063956757450275541282176187501117159494791291804364353744283623005090331342647560631295872020063620698719210762263140941222083513888278702560576995461149845898892470803475529408341207944863789071511055766236999771016647597651313903705483268251290387395801267989532642178852778080931053255705735380865432675036903364722559600691212641010338715624764215295108415448741126847988767029893796849516269103533505081159895218925329800257091631714380215729841045252914775312048577393205676127250009978566958199783047182257565971408459054281283093922944199684361837499071841761836946124207826000403185385965122643459451551445952207088462758384342872954030811065558869361078456985982789523215608968405495678030117690768444549184233204523575585321950991812675612820047913190003369816304582681247214904784096131589990031667474482087690058552966005955746591135458594241338657762470643456668337016872746065881864470110166929931415543867634190164599364574688610387992043915293199669239513790769688417732861147805121453255849077811407062262815733235918267909915891791210641686194260333414904445242028168822274877359290307287760065790909039121392361918211248243772744811149121766805654392545991349935280727668273018089883278453627490883876798103812109033101522353935550915417019635654015424435190728703069642417348182639826714463118363653132491041821995111460492846431719376070531911294283711555739385459533972119819451717877924978238369989143605022456509086139200691780920202968274903637974866867005034419483614534983860167027147092771149058009293953773982668049402764892194129992033499734326769264093801214207821527390445077848113160149966806258266417207524603884694868528293840877315287958278431291932575950065272118426585241867204412074429404606884103039754872628006248349103956192188034906932046658958586547063600456896201149684588496115324260668825696467388378002838872813642282799265213037158581644534641276833617724560381364504701129388034898306870764173378188085583813461526392124981028352636089965537980089156033978281168307178171743143697699439455736363058929302486692566407452932468897989877952980421081637748877171854900886858024371785420191795628346414218449665104571717283546996268769353676117777725596457739583014728386375556586461951706053596692959692071006280063531189807773662090046735680667418963644213437268842269714609234929282027794853971066466876132258986124666483369805767548695508874914769909295044721761030374296903419268781040505928814877937501094246046347368401501098702974789720033330630217513002621361603634060797565971665704324944827854233428256620419330217478145710213148728059457398785601873064122435677829519909035601761794892229594525708340861589045884000596991505933540243851211906397196211203115649466954644633748420525497696811850640032279528629686609455456099372229244627361035752390037623522473060604661662261401728682295233897163826175978088088457796407621888840287593707593782158404784860487141359865047437373267392211011982080216604647977498763701256306796843565749802553171381986931762866608636998250004598006617523057108833442944338778705810060549156127948301013008208828545403176868408806177217693827567038097052496981239382624909647868811130844291565282967364686446163227435637950596611322412827267952431219733340717765002246295576905879056850930193753823528035128474467073580103263116652310926990989824548901022347439906295256979672895139015249718395263070230406769737760160990781041585761566883084911066037487343861014972365928468149510578921278200340073460064062437945112558236756205691475176568209038137293450563631757528918432291431476447919228948483969234140284323877230066861934636153092444756295611026454306892518705980929104345340966407766374641744423744048864474501111327460735410346235656378848461492853817210253214762278549614992286556167295203027355031116315229843422509052417104349474117331359507751595525585804775254932688783277390766817340043935350057634721098164147381630524492425337635171612517978923581108804444365787814023328660702954491293763286133678620661128433713355891399370456338789424059311059293473011062800675248992339848331060008874082128037543862997919565607646202031010399102206448380789421820105028831297860282780885448445503710394253638132293851443784920923351517820747927363722156024041883178063831313375680145976356299629315099680503755453742211712065012176601916418263521385020268208236719618555200975076354412392563276433761426442427633363068881531251548559776893911634999398599550719837609443051135296034381921903154015626329110639965176096369399132752087350801346121588909889515717287553742644807904934295718671339577890149307105098348070919956490722804189239250508215657061195023397976750672525500049230576460595353932875549588866149124785904605642023356228898576661065818631425562831856508803699591318423067727414016827741344926196809831776552248976946844540762060509967783395141397850147674790561576724507182651437682692207866904183919732824306750162193387890138747502629010465733852675102247309634796852490965848454685160236027335925077337444923750223675989283489085908108054625005751686074564017211981492079469221433611309396925662307911219022330902332454922083340612233853970141331180998718184254272069121417758252270772988739954725276137076590431876938174893097812996264964990680446899113448608864884894733269313359411115195264486443246647923052095290613263491379834752882803346127367961058379216896140514508068981414277262004027101817827145046535492479969124639105043867412729034224965417202077638081922683696099311788403993777661035741275405304066431796244049645627122894988872685239839476212968830957488841517876532391029421501383108504607409663353084985845954707557994541520357118866470245817602295094066576985900856151532414983478033810398732370623569848495868424556156406911603852654034333112794520372908826591466490351432687883528088945514827894874200117219886198865607682262934146633551762824602178102479435629637519500570824734172697795821029902254569137421255366101710433874289542353328930686942712100791764841212510014794867967774155432383320664591753411094633613021664845608820718783318440589085470213197193528034740816193463372815968945136730143368977321226297730002260989821820681185261617019883293204290844185308290523117210497019693482237331986836842571168145805921439574770338384022678049595307246699039353110761415395598419446549042575114846354834454381208118848496683265982018831407129769642660977483015255882817328106788021769242531862014737657368369330775951609648653389857037864651795001386006886890106795627657318488495816952071373596023959119212104196467939387146195568744530119246810467996378731390970054199745817238615136783321307195203405530278744525334446915813351669417449620863784789679977822212524727448073833493984172405584034279730931427707984679970024803898313169223106096217639007578158732328531816194935200468023410268467687019182819976744855442912050209197448787937499173523360455701118786660582578973349012372832328775521550019890006590749608002133791417191485934012739952086094662205604366719480790797877741013935222849086769703135437922067680872455616165656057358823238072166208333761426438067041058691430533765558978885254160416316365102919371161588162961017000182761470644616409650324002905986448241277878646041269993198511222451541587782719421622202862305404533222903375107588791080316984205510890766091941551418856440784376642475400675333780490967732992032468614339293230571346945141992019094941840769367911352266698280573502689679792630647538830814566016857703013772903409855930112457108889910600144640907838965431425657682900175839802542726619200408467178547254421064732801939407094447612835664874753941644447856112985965455044558894312565018855256859931209014930971604317210323253483455871059645108842727328803539974832973589746343283640738431949594266136491394337062579947254948693921494528878235433249224372783566468823168788487471208009340952890211749206953153829903891125147358294740843009339091365888492635086722422996626010429146791206110363399586269220682426808935509068276417870596753186997702185675285081039880995082644333337776560319032171005365590083032740023817360863321319362856219565654522411917601909728217311306225256275296106867873006770404589667499518039069133145291383204494656851032971401867247761860825914651850596533861476171035640567107825713229062532600221821778730853822565010376421122391788474186598699020363719056878104650186073803462602980018897649357913161478348914172921589030000210486400598493611615310238860893671829095336756348302796938555050651906986388194799975339284500444175353104947650158722004242126755224646804312213657346243378817132435054186888966905314285310634339740314318226797106675450085432519191520109632973349455283757039404770902080467246555791846639752066374058915725834932896354977224832677395196494809048963392298220639778011678417332657820089102396985332527514586826479054629546120727229435423801727167295902388061087926149017919615332445892780256297187854565405482280818785204561246474336279713224694846053351957537323857168319384653267319476896199155457078311478056973019503876220809871204974549609072920658451893059890233418717875867237500079111529453362967417742693161799728829090226804026017023014837729882171924543625072362223337067999292303744992586118384174705422433611843240452147942939439389544294135974554061012921353836244975391817214253340083806582596402733876181009941402412754613461677783250723230523164293139534669439000524133331576370153553662927344518698811627313389098915095534060675950024244448862190961899847441217045745755592444353392006471757414202228862820814338687098238400426019589698952434965204814433800833260025861669254474700177689015738253589996683188449587755479823512056805409830975561747458328953964088808155974290102125917104542136778063799618132485510889945400191160506641004993814015265585547882766951152068221806543512656341121637349035262192266949139450363318240240322652779023374886923256105034680258987088567885742499852919768409741525274981308877538453987035647638462677599282862814744301081824824478558954246210301842661637384655875501674365349865350908658832799729291122903070047817707781077317915169150476134003604525127107402090950381119949510833995089061937299130480241525354538281094001720976349196296010374926204248577774902632290520646663430005834639312175204628968878896982016412816445106725294979166888573956396957330524616720172156045470621960410139567963887531024407659969112009969612594829309311669828248708089143787091833433832534772265931455005353620291072747579264085302232345377530926997420407408283905484974951608923254049374579540968917101133929820149687420119237544332595655279743026309858787613170872700762812348846000789571304215898420975622139741098891451755469433779062506180231727549194749866447690639601169207857378624087391024022408740969198394097213389022558241910253299016689976456847685969771438979082044324999955097961735998828594702536928464184163815482901945627168328782590188883886231873843567339720155283901004034125807600680844512434450978135012779125530749761672534221322608515713024156043233014933294509104550037803739121426582745009373361892202525739694243209290162278051483988685418256980704841471461339167078457710397067289084972028215274509734199454673249401463489526242025883829596585756453327487241743444776757776882418773011156583041790502687693561024484982427492728122786633596425363194976323515595773668698714695313131121813564782740764422344891582561250483757542752736108823847795915085003920413697875185133548759416152417926803592374811919872798929487914755610308208140433289868611441056576238286842503997690801579653818139125938110996015765606925418906090210087265194670609276572164399982085305001214514178055884737011792364705766877910993563011681407185157148387490355455377634525736953047663271192494311711441108299378072353710482523851413967280605883217805442700077216854618630002304687998842718674831318142785025897024452809820973953626508503858970721162892882651579190002349966397333211010536080735421134927157233261417464121648815775889263460175928994203314764991996831086007129346230510586931026647090890924226912254688167248579437698632720022764261506018666654755540750533141373956042226633187917847811473264629222639720794217937440407744548881193236832496312067435543293523565551338502324592989256346277070011056265122256172710317211953631188283592649632753637677667832233730211594379946417944758180906509475246942483802708852438405945400974847516100027204698630052892154158407228039734696195234196211179870641506966520913233721456356708414422191472685110229287324994286020976257699795488099942557095426986587149724974529829078554176900135959424015780709401246045105372059063325661221980078766202289334315607210827824603928825568463256412303349402161268510969613788700029970163973239684948860451015752158449481227220855492734576023727907653095057094893044316917865926036210661161633125382540181332768470654376601455499952702508714793798954961785898721559175530996712272303370197159655497735001715395727830318515673387082253234547173575729508086987852339649547837828395938347660286245346954069168207005385955520669165370458505512595528734161376742745384953514630644467696994848423561366387699260667024586257849770538997906255064599104365081224701542285998577582431028849168866609907011676620836847772272101503806384717925914565146948294477128801800374358535285188840592941510546961672605757520733483400462375622661689408914013639537350864995022060247809220928517069179754904059292123919750177699654033339821557809201004501552252962653743995862875080472435058697676443752486985975273838095109722675899610962102535979418158651548484094459921495789016427315942924754065557338855688043487117082376065403947937915406019233737838449857858755051128425824517247530263875570199452995531460024822460372638507983495184259421664997946376604118834500597044992048641991457638743838770817696259543164658280781126335414692474696872589951173822867218702568085075086669080103656421977962344236745782047428120895003346740601827769242508986787589327858266565852226281771242293018241464425324622768303005757277807180644954178217594838877053561569841149280296732474671970628055022697432960581347085433178623907362947423702789705567142135054062501817720086567358860222501191408123878274407121142934722135002050244347826753506043515889881220662706801881165571414371933769780337229336423649460604105639312270067758796538576864465447135745692620057986768067199873392324870095761157536987780803249755400052241388441652797809796490154254065383149245684113990111884128786707680944766955334909239623897294090625007651834285446920170832131984481736982387585318783824190309793160973943126543701973833036952734083334680660495290997455073022721772353996265761920509968853025008129122032080807914164641873905475126577856545040818023950034159415717280306703357404237362545946182399123918307083533260963167006630056253147789509946015092243054069527743734214157563743833334035986982452399573742218873237203790749458218264354379712355636200006884149882551274415252533293816504243574622837922216816364160467205682450072782699626166494319854343980606557745359751744664292353691752017513705349413225999018388745582762506229003418322761872237840285195300237874381410561493669430227462916326153808622487742965278310442320724925029130773104315572514826956894844890286391053232283050996436800875140029050569761976543378772316529628432470740093711084387747500042465602858317795203781173076213626285613618125010677008301871990608398199231494466014874276224297123789958581583402268367764577091465171585507360224106949763865272451794219724028520046444607006941040062526978138829619540485197003002945188535460008968326350966921351637292161055253394469971302585482422213850668685549605587889415730396653421835894702803794475540382333280082470386685350011290210233541952028392215714516304006395291309168560922069647665912851625080967251650155996024096089193687007359033446471920832495623137185272489873079956178690156703791898459291151798560789225378868631074774553889969287424035146600296160596609600050702304477252470994654680113531567996151652312215993760874146200732287094660030792510158089182446214781737573836598456339026090141199108819953787612974661256187300018664446815760335059683818324778246719957986374118078612209499701412625151671552979466112887570030583382194495471931668450464473146034919031262244568081302189971959930157619097864389799380474552012727920721228130361883003787779592957700298954296521750982304838437154779650053263075718722507839338169566143865821880754988541360817340809092971903457403631405516481099778706649394625180258752532013449491790058898731944598721724000463056289938508334033177299956641272871790364729600067369858657767378499716488376665553121951528984971052031527782467217466144548581863882382680028634124578880180488032119019143253126845900911467673441666575619336379552601295459416767959415220078468633549194361712463662084596456113405251632367804657102292983444188938197263988122850354741019142240189954751771624330566513526163029881608175061194657671733348492473517216209497930936813234288898227974039951770300054261570692917542452005543478219925134810158290991493961117107215838574739376710537004001058272026317651430790748251434097135589163387687725288900674745161047978331466890782806483701202483836723819358300975248457901137928290779614650662548369056447508038958614400367310453027343530931830844474889863866064813705200051918704154728674142991050072195123536865698724361239576180402961125798660339781705687368016830828710572755964356604504341989982564363118665510275520177248820877161453370649763580288638099288780358434759525880090372373520243201397286443666972887183667993526359238329455510362922499396307409036503419203400442638801098748338724912400566923524480408460097806480215202476950795634368068173805866068654015325109871512147228916722848797838740130892591432731812422937569425068675356449827057161281594403725853208501136441761721085290136205135775128940095246146487414678809616960637003377993069287637378811131696418233530619718740923776741109354473077795728819765474428693172780363890885746121024105142744102699987563999725430466053419625661319476961506480499723752624731216893347162961931413189012078263496906389737807115177404799515229503533047388104637858870353300318185095473446248040028015119111001303877228620596655788962104215246242794899508702915287136454542353504720162190377211199559283146856972149920146011244200293145832133265598998913764725644938222524416907667978523073109323930913756740094838854835234046027471764378197753748102172718675542747835612342467947701330739690206576617150758735719847087846022887645367671482606381718720675317891000355778586498554795964550936112081539152123450032593716817786773982229780133572386679959882600087851770473720506187418686851947316738896840864046763215581560905783789139071309793555851240621781873448462367218548489936717940365451719700307217910236140677622762200848133597021969226432128114572002809850102167265212816810238614971877510624797704270093292580203955659303147542052514180991943629932611699549633965808620601660754371775147446483842279329341247156906702357713125533078182396580960274069181120680712130979634484907921845984478730753356349914315871085643029131508668262140720479839762642887155992463752913105881093864057502988023582286688598157407277600797521873083519504914193155622725496905399684048006735155103982097482599428849520537292386384568458077809473446952449321010779490168826707255983358927946581343450130854898668448965419271154148178711009466194896171978794025676417059312246015453503370389301924250097125910971447582515467919973490609608119961433895419706212798038797940693061669552436420551483784857758353399652007714677960902432035540999198522595211019700614714537538460760232488823346270826792376598365439975477318974775751710902867523363328013177901582927255678914367761521934379377533856575465945233224282199097469956849865720603116744982833597870329814509028596460633871073811179715786519783224314044988170972001631534713450679715731975573304632946515605078933693177688997655826817602697631104390100649924165288614909329214522576054635462419283316059842232127727325733907452637349674270533659127478529765805571673873450358048781390774359186909430521327063795993329460005793799179565410288940792271414267163942569875066558675017021542531887468395248471183000418488084437575612800587425054981777664444034870427633254676801895059344251347250565582839309523063422892083632570109543154159948539528163507655111213422946302249685277291736547401791223702461511719407181968340925967505660302001129127032575852630957174037748472634487882843809033533169354963140476543316903284819107457807030959089010607509244457370335350947761642217145167325141889646216431161561411609301923675990877832025436655043096314814360274222227121529065436965793880887519938914759729701842739358552633944057350376293122560099472438412984600785931522887326245574077018573915447587515948592524833421331277914044475666780200020031041146802532755069517836547755525716496189018409305795372932186703899763056874457639093694660575064960492521074623137694138184032439429226946786410244095446716753840472996088242997475993170539983934247849204038043263977831511216665831909182518109466909181299260463787537344420893624915523136091454777583114940038293691402148959273471162345109316471350950871641615927422591954566310629181690288991063410693953261510185487590144454113644325352487034531305958985896269947754220487508657834516856528598784137531055721580124100277737421981718579480290371070020959599528167685232105681878332234091803903294424890355173156715964526138427976581465074939373618628853221909058672029900808433095043664612623214989132755415529053149491785860118260348995661331753325167506101546740986570825348959040482967099477029380785787119934686652809993590229912959729570121387795449936869953691161068469311399200213907853335511307225222530021184962288107576737138804072987868337970494084460621429857279347013766384397835081882060369308655860483123893346723698606450003957563686292020730068643215100546037167627963297991847079511131802970279978556546377446983243551953831267573015455864739011001925461837589671668647517285831352144154511506135846792889436664819574361030356492747563194226184619431603690830497371657058507679329703431665979091163181846519880542655105952586753118568148518145080467136161998823626503111446307980195739849222577583499103142773444530598139701294715943955798203233447398845838515339621239301655864875990902521722789555944772104238796455840317019525100480383920313131253428314966080465445311466494245832753691977623452637272038366581507768378441276247051488559468271533316541045261863250929927465128618075640006935662876002981778127869196907564416961574940685304694324712437532261635239051482715200164668554490693728603767240515089207528892374417560785603267635238607802418967040808664329701184349140385413136099499450331204096768846688311872409701022194063561370552529701472651459453057722182311584770313740776730669902020447399209415520025417025546230295608627314902807930431810559942780097446032889250519386519855717141936719041759571163376982961776924636490236820397927056413275154208230056478289659791754212315826153095844467319704128370095067599948069975227188648026254790171281209025007187532821824449984996095119987441352372535298046551767489530133821484607718044234027382287387835462462986638469139181206723339285189411187120505895311338336506253581856951151470705834051299330362081657421110886451387157551285305906177021045421656061527578944203162049871539435356748346561294795243825519933502929940357030749994538242562985278404053706002197587987829519098298414517032890309610197734781264770131466917720714331263486844839429226443602048051531258904513125961126867033718516185348472983963529980690569271077336772968612482203035073741660636045154370812242220248699944504238464388145655729463796514214890135107575630029580341397303960504995801385426349057852835631516276808380652064058117871962534489302817632738777007448705571551001357340462449271965962871504531842604124871702143567718922462793307143878635415613301066170530907130629945587052358112416826195160828257293654214295564186758929626091068901090452819401716058573159060263983770592318893342543266994327803355961389192660074737341643744173782287586129048216719059274473357709921918245096172650048472319628726110610656359020747725062383818361691512431454318633899894132413947371406722541188788396108036240783220323829342751875313997260060654105321192794231684695763728551910505302574493354347911008919079560526690923071394020514304606972718661335319936020587003789288618220408932768131491775083006671265259732156801922252552400057180049722474965038033973393482957976177026386677602049487416972157108161073683725064986747691130473700272127002606315556823641108556900127229108824848465638211635850492876399088810869542527861668283815945489941251622432535175287935854898698392445805750964002097593951091306841389203566807111311381442623032913332070070268825102903790577975389261841903621156217315144661639428917020635564400889457026168380094090572248874892601810175226086941042362430346867882617052206213250085512881048743827308851350898564927121697283060822370695746563231838633059912331044497856188393845507322096133971468451566553625671521314682581123771110952537516902807897199888819836193905817690338807239712928091406513327497678820170464495562126744228375051263079758877552934193043832694136235274192916190025366078113366857176473891832696311537091272282703412037222104041077490280479316696435274368664998334758272794810218530070010758060026422440151295456591546087163161773413941933876416220124049996897779779770000699438048439690452188698533095334047956581125904307932986470688350016935635962691194299327771436686199807252485180284165544564586858283802644092369446977058790152228496154647693342421933960848864609222488976389628759723143170555045419456629078093046610623446546301242149627271021654490207989930770203081270136835193247172073905804266351371805141137381686291154149938198623771538798918770476027173143610693146805273472187482065302617740528394654208026982327100706714097991549975804818095229133743685547611650794925895282198500602956516867709250965394405519119414954266483627817480551777156574641165874825314881854463434683357803901067330305128376443706907118343034884804848640736357054470600424894568454107313458671736082019450329932267788111190802279695681236475763134928951683324706660846538744623321284998003795079910061945394799032786215137471611514774192092771150193323990908794188752635813071782022966435405548602825154220487321047796626320525957176057070293306129846316714514463102447637855906677426306147933622525624240865917018950608380654972324083824099694778268136434922238621715608361119388315360992581307194187708877904977328812485126532569533556627142448607646535289347153946745989242556265570645577925172327118459501336797557249144765097333395668523253540967055354372210514098040595976249825139430731013117874784940695350981922681153734151059814948536386444173364062195118580715666609165107457323118256997875035807120135978608185823777745489303920191836449079977852454561311984268501384514153936086033900773603856138218315247286614765682736151512275010720174635401271277950968112103848230056855208404881109821883613005659027847852554441228525639433147341890534326490940224369545824527130962716214097132225617794609209280413071862440148167162293094091750699443048622010391774366332363629658257553622899579420148224908584601097408275494469402184448466713646723764309042768573912601839304341185074665806914575528189598657999482914914219198724809681383489500720561714772173270430256145696133865795581818330423005023289436570002176269498145483029199153386299112485368257581222727012302671304487046472227407597111166892890783744874703703969409853734014741012092138164610560465189095697300869916674583294883357031670773702982182305423878873314612753976990313167905027692171024898240772878107774308137270814730840313678793146176615414370697070221576227200643842227399794043508167968493888261183994430179523901164139401844880159757142927620950856762234033861169809982987926103035370163967820566947437452895202284887690916996087140980891418883097516090898522525182353677490982317176160622603445919922339446762252824928911089531060247856061505410806151250239495112673920747832491589109559079638307489288865036487423804140627257334024589609834752777457420554607098558885522305121039872904830266454502473303168333831816699280675015635332625466781664743348541036965166071242209313865101026070377364792016132634232189031597258049783206285525177642438988022906688862377295121803480823712800830597378369019086403427001033824961370622157643710263381168400127553571907537671680432791116119451355085353008944643207150199082324430108459021098824603388858727296114373389145993103455173050073046676395157743350479960804272388552315661990402515318395408993930625250682187147405753022686326136626230962638176294749669894562675930390013830763577293647108016893077898162731538692149571012578833073775775459767473469390988133774748430814911973363393139493157025604464755270340768767321143667520636364546124228073557222745732755056577399138160622032654074008452591044404170238198842259653302398577351371767787796147956143133670830052117019613439353140513414180829607678313326416870034111523635489350011310459452158017010923074066638104472089067314018797203523875540474249880930890257402603195093730920458041452403609990265243361213967096950461553927819214843273406039749698665210420898303933880591898718996764599876923295941613471649398551257984738455859802747903782689115269520362280834924629044552741412390736712026231904618361562068016526228176701575667460263890869657641114834709572851891174585574517179161221926960047885625392661600576256404417515443742203114213723729521469910135028286700005682347634057603355589671885496827218619677394417637602557967362739104577039631168438736452200279258191200662161225385001749135829384435350509302562385561997566819134873652225572907171716313200346682685861955501405594382194948817828822054205249510042836299477626689476735015330474641826952209010068628658878747202977070246534851947885601336142297908289046313801617310523617670547808849849680199118307254873345187477624411923448449806730535815656175390073606181218491531165613697770110450335032547875589827767784178965779164635702242277231200318487222533605320336635124646652460413981089378691630238604923812190923073287248600776860563844556062845010482561589044179155180806320415139270786490798791355097163581849984337204956325456536233997336097380364390091757101582664271070061079278690656178154338935712721905529277674327692072585392353438176779836621184581278669844762896903070125157494252278793852679976362021484793436731981645760559225604647472226835553941146473617406785346924040305081891689461431201116953594539832323521921537883428568529532420365832125970579674160307066536298734143003912793185762729548249544656221998012858485284882200538219768684343885521045636040575121246858683059145295929860491244820699109958357124848248957844113515457180501085766008660138340745543705244064454882126522146516488301236101571261287245475272234847825225106510806535794013792489147540264432648805771487787931301206172055366177874282677654151764987435086700390339737974889306083421192599029540083404789160555245760181114796523892234836680188070164943223714138760416835046957764873099182210212538615054869955016177967283903441254459587955008237265510750948460175687476080833724913165211965710067351765763960161565527501197003086594807734853618530524554773741763679698809833553474039599825070498359875342142040894458014584310656681057459739965244992007816809604043565803697708168618209403903398854444374290482337973247537331088137700652077277615620829649009927922043741236399720543243938599342792417358651794573071950616000387448375524005190038108926376527826091069489929881258534563382016916990709165805169291136449881625486793853260014521962368348090838537842729750953409152402448693658682538787652819237994821910921106796736706563723702666606565910458462009558093319392254972002989773389832801116206744577421149558852539844158820420727947480129922047971857044108270343639741174702766085027734483786201839356717917806608458972593476829561045839803256973429044509122386872758890767247910551297141340655011534777550584888558145855046907443664029073238210854571161376869722752224835905551028485802402034602651643188078796410823853089634009591086617496367201305358928742473517535327652873158359090367067053986497783708235214764119817216133016711843584412294827634490838098108936205676128016862728835461358181751349371980766034449908325645671578764468485286187808185267632294168624497064710889446525614786870220776107738758951123665566175834171446749158648145316058096420621983538088256005200992502232121467950335128056475374198555567198812746881862382067076744058143477699441136594411647199186291543430645903888210630484875622117997975348122911870532019019634516125206768017706934677921595162134106865676473099125997508649169077736354350455899970263861728832741486325810792081582150160334030968093295406044231696475813493857331899051506865460755174597768715640812448169628517812300889775777526961056531332963885928610148230967601504613436991747393018794032689744480480579311008192878149173384588104699215792539007385657714534263468097184274394784562185837107196469269208946381492048292417867677606174450914206817153948989982780726723205645397953376966218166348713077776259245008337167748068383498892556285349826058372425074988955713314991717766759544449406949158835725100867790930702924251165115765537124216879515200649686545459378011621558893905920686423222991870034610113658667180257203711299101293027923728612844178089623599419252101524555946658444104296540517962004762667018902000935772087091394033272027934671542212848766739414810852871097533583283592693632767151454825522371486096935443505858908748689030376724936848952563865578464040802681843710527869448140037011174707402336257207904523475785927908399585784950771763219214733692767137245597863377356716309046651675153333607141139751011623202681534742873698887981510612728280195730955731922627553552864874174616694395364920505403394089654852140829154320927848367121230655795374058150276961269800671634789027951247139882476025769947620604957079867518399487019597568393937542298064158534679885946027725868048458682113710332732125752889686972250344833848088797584632092565030306983867043025259199170507359168320634987602168038263173349502654465379574038805614706290476265979959743738421542709079290950488642402891976606602379730646323524836557077547411675183096040603054037919903064933298326842490618322900253849971668356539011476566778758239008231034888242214955668571148486043601163773464041848266478928957343897151677864181537582291833467960203515323856253211607395729291514400317636844237619975429638699720208821654596379271063213795063938130986254566846755074600676934266461974830629059368763238701442758513640645576975845397168967184428379562693260742136268509789788100745471480723242728675067176884289121058147385270361214704057033997594143809975487341770580512319647861640743630404884721497046912106522452232763442027851853129024737558086359429408647351660881235588146752131976154308624952725420313963135536346414797146267462823751997521454435909164482676124709175930059044172619294933612691503827304338462227026906800812010937369882408102941360813075097207847063014676150172467872508259766207978415114103034422430340849242038896824150315847610056414291157094671139391170898088653371571594957313414239706266637443705699256412856737881369692720614101790961424523961054324408370909796594322430956555008719988297225545126806643345920384002417675391868727886124482622222296380601356346628155133097602459438468738516630050649576172038928773157211421162953356720197795469598079877867585093264654482897023601573430364976048862831287643963503176736343887999613708000870781282131127326731031049136331282470821767783878044154635104363273300451302274417356589300795330512252635876276006644201866574223520064740307619120940808230582451362175773253856613149149565773341731806959653847888033231610771810032209495484753048344826660319911807704634677547538419446313197206761934307805479415194676455467751857222156671606549387407695510336417324916848071201491211018113709637721989080457378166877781574837750224226271516835781893025762196420741990255273612436116946718078232381788677851426524693205998891595604420679801505438638638063781943796244950037851968584220030506995919040076803839848767718701760951892014645628605013502359345591448393362550028089563176080544414144475431014089683495656290842962915650413776930331682092839877160728335037967993041759976810266596190302033089880120128019148162539019751917606813308593664441913408143323537505686654397335169594775676371953091676919220303136976281905426460455947322745966377765279693065585142626673715661492486448563818830330502023344763756162659103938727367285998464561276838470210287113959888144173089923484078023696560408066143808193555358792214746641257046606057323471337157487599807383596090464994898861194479591752437192446179024430062155868410921415945317564967961051414967074907272659110033397768281216227882840581118179912323344470538773745446114021740315188369237294724298465837320122302442645469051500604388769918558268241239031735754072608604962916705471283984956846167686819819805672720318526713558570080410183669998296127165803534440986187301910521728771387815859983819859694796932016440855788410632536036477187571074326015047686021605464205780572560583250094144379989339337405440388915604008817396164203409984770619968326428126379755561093592738211344217264484413973513928986853508424672552088848470822258402817532118261168707323869219531373153796178412895930552725204795468779317829439175871595972690659620042159372275849489566167121098858664272803201984113823741717542787465795529767398300421593264420959041801386111347260057800925576987402467047748574534005043789884152780707962606120180193154449225452760559074000945420115351985272303427866077185641313791355453956519580982358602368610790918214054964632377280853565742938630544869756930674141634174286086628630071219231743986839572636009602565448316874522400683264007446852659330602981786187400676430915049554104127182075281946551768012255414334484006371028688799087232335409360173018689197776601617463412197927763741952280586626869132513301760779226685759973851540440686128225065762650624119276654206417523602267942480585213581548424777055349851493935421396150037709502302288610514546833183102872153229373584710067117305251784700944090999353707716353055954047935959718034076685770028977416817565176020728340326013942039647994779037799796549389399440841124697383427688776531110547334893921569561952005630272283998087622418809874789426524345111028745371379496435266103236749304188238627862750005157447628484984715915297412652058551983391981120187948851756183960385716353386219950813601128419869668204413235117121247533756799473781020371525311694061935869396594830552523016623625673522828538996747202954775093474840905187804463164981109681253681505021535271674659790153692901285455211624714020791041227729009405672323396886905514350131079119252129690517837763160343942075839195214542781163802861137036325351644046388250119843011173318457853429096542601044963205168303532261097819338036343374457453372924178935461895352444435843746821828981475181102146437075755420376612054826238920398688384384935542654657438808409058682403312740258233476163205730354640043100872960671049408784468005401283421377179850575246773745702198723524219486071587617938013403461621617473793012903521309466036467788439909746091298759106392717490340072615703670721582636366561719526672992854035419632904935154353947024687237719365838440982673436377575815938998590571630700243303918252727408932199108595806775583216441881376603893711364560660838968965007398422316154946062889198364103991703279066592035667781366329137164409811711388521888245770129339171159800673700206184787317457545413682912598378987840276034067116612724633646368912184221441721659652255482919235753634826500354909719460431458712337061923277493950869889082278461224484237466690114969601328409755322243789185059417225219357710562842113508488282104258952672152927121222243189325586250866274893883738253435849696607703822438846278215328470103829541540322250937705905340358114504633008753615829615861833557982484098243947665018889060640547170125344112057054977768552906548836169719948570614871841734884337341744477873260251231041820155864271415727918174039457363191407361797399391180639048908808560126753141972886986195893906850003156382310285414781228639428229274394918474864137872496517284666867379471351826501452193587232171631591217779638826428310499432089316033191108682473916539780567693013262407386685691812849028529546917349756431446306211344013306870550157993420691680935742657512784925601167034728882183177689942000607275079608132604773693858489569390619319503500472247085125570606077058244182233763342607205259332068871015881150540769543642852556512822575551665090057868648534726948226214466898613517599957881677143917176025511458670032535285920864028272010195009832500968996775342620008088155323667001565105392526082033609967913759607596557666914880768894141697674610547460155112593415355769603289359524457731665571004689330772102404312366891558781731916684729026745873774734372663516191467454941049529030537599174938109206176943196742780576422827019182255243443574406045944711546852072027358327253977717477331938743905327019861677588284570626569297349257860339334646347595183997336900928638645875331997980503261631235370666182777793351244434093543812952453670201296423412718236300360524893627037158830214495892283614200970249610237788071751708202827140782661284366535678457725140257939034934117430504889294466590869297920200428809313514614365811920216832468186686299862571095903863861413832323800155808232735461552082957658923040261656451717538425276649209150839053791161640462102948319702821230062141659986503920782763095992144522272948124392150045466525468252582988387048042661644033507929112971786049800936987588929160337444400179996528328635319498960254106094713433973558051555875455984572083081164413171257732455213954591871013369079301610948147724012107818000430948947310345424642050157741559059663033019577935354927462538622121588359563578049274865684832982231522564526409011775477888152186228833912913172753129650490357116331332280924355303932995606215447569551594882010503084243165964090791787232500853438069407806669235978139900170816053687068521103250863587240602351142315418697760597035274158627676578600818113011525588245851864785750710974239812746304900622564939968362721605737775103591636544482183379901464111812835612210506312728825633896158389481957034597229271168377336841240390345263959629941545216185089547746624745591458343500765876457347175761959136591106146349404345542878264431827483272232273294198060711802955611178633442582794730124476961343865465168881409400407305567895405710096803490830885782081592801611384428454007355934172441973517176489258929008235141621498026107038747122553790219618378111887467125968389482594174222095792417951095132137024435861041651213260310024369068389489561334748280909352941820601074657406616867577320712172790210920973049636267178425426087718622586694649986765260403816546015084772303512667189870844297764564176750032132849135091163858520213387148921523178766550458257478131727829757804653352561792289889784702757841049922065928148121254668809929002697628460701437963249115788471593888061135637346971212738794562134810863230786145945935640766413505510721527688578127427389599733268383341289400691839161513698136762741422644506970766390171592967758625619957724032790143778863004646307407070270584311537231794377759189906949401460398090133523136219534661717720193932486946758990931326086985369558090323489512795726262101055345166248485133412455511778985027139754973865709074976433057787363679244171646114062059175927142505716872752053387890936493111754777877522343802122278371273824813525469619789119335431657206978206338012341891065073336060622371937981405357871268911937733138090176323838348605814770283809700897750365751916135116479311448010018493366409783505877042975610100575436452245440638351176999777068847564618545851767751858917605848802918854462865093904839814077142030655935761980638330003322586745030901644007888905051245607381304745493883985085520648699805490091247669281006197441970986576982215945812485503980297735058085399636513532816782711957588016418718894039583301935229893198299846639578511256012459088989086138689105140350880896461485102812800293485914132309739320158220330101724432218694590526337278113453722083509818006570047533420678021686846202930266851535366850632687340342217301687882750787894303790139234939847618261151725347467139964952866336265801639337573465372800992734413959147715017636352626242770164211559162958513554071268636635057205664249539374628506438919744009698226479202809925529119389033118208838334443685790779207218032457187903371581725356902079925730143759277002606400714324834300772328292036605735014705057510256481975881842821348259799106418757495342974458084880973437958004084372633796435094455673382358635987175027751380615714642036479181572283654833570307159945023890483301408563073394903221935665700451523694057029620662679080126953314232586597618789298333065098360047371606521866388835169155138346849387647436572564040436930026188000403223910112936613282537745225354939664481852082169426460299084475712374363691061442537438041833287780817949594012895516817470985731924772985404376656677972645155107768095457800201385946700214049727497667916274481380975379230722654423197877656700718085794554465008702793654435384089762169160823675115586301738626624514397704293150289229620513807297239626814709168391079179553564261544214602316743044212659885779736901736083525741987902909358295632030371456941576896875799491152766726432506678415874415813550073321437845912113932749615233607621678378083338420695287345574466347727103474728177301967683848014424079218509508083428941684064613360556931911623105283092095393333094676810496479298342938898831880410952981284738310924464633174269827083991938758864095731078269661799709181795175194931758631072795607137168026634421265791169138555453812472901952564504402165853655204131767361939734133191611202196289502235863711904021137104008181295591779526549393717949657642265957749967170680203568790854888579360204839925446339621741009793227285058642761889948006735541874287707984223342481133528659431354896565068939943907395856767975463050543982547931931768264176628840181713925843992115203323696315538759069026609985518095591382758030593524865551985298088849967358900471397976281682293015423839848979664803640635631089067077774927766277913271240892410429219229108919251559363888558757287182985796580926040556931175614818173247162135236252473739597311053051950946291460965296179177851716565151247323035168718998122986505427683258533908590977727397406693072199485490004722661913410450362379012017760696485249060896397555417360376338345479480919552810887245210028918130866923114222720337768055243449228671166723801212605401552503481952004815307764333274117062985642918088456512759913292782460047763190969377263827950845001680105259294334035211425356939331302465754375531813293148994066741625268935964441603528733571332153825916028408957479997829323710236138387425020202551445968079382092871480939220353949614093031476636990091984241076537323921451541132451933376835064825927938536623255688862398484474944172570671945401121552240101209696579717915105609423044936547597689238433673236428762523742890180484783484086030701164446100996884506950481870137379002412689381849630087993562961760170923504981506728197603846130188693702651727847078653659409968245197569654877521352834972242463008088122794858275156847434418718427874552488962064699438058902324371305953783635500290006840902914284411605022435576229695554599618039556782656344031258750272710897773087164897209567183141678598475006923726820220573597606480474939280773402935063506008051718177117297350792035451679409012016717579843189021976306072880385927626788599813375686587838054729934708519267498151277470852157010175313391420246325963995393279696344046467132725871198423950772418334081969532924468143376029944139354247644855881676397490533018040671156179890730056889839571040943186989978092595093648860545820865807252760730445707087532626545061588989166661508847092170437940042326226920741566486850208550527358461446726794741900705206512553878101439719903770579191127386764078187975017390967405916363205095822428003446568532375897533931715972857226980089589224176190257714813189676911530707046090801464327763066586983070362648773606988829951827048788053109691117385130236619366974115548542846174683157097946085326791826894390960297562482575857923214230967495515028890238233518766362820608708129404019362106976247982037986163546992198364551857055428157578003481291935879735662699306966245462552715318007623185746531813921982003170615763057895899563665769633466773475588471441722215811584684537442506035126467872197387325058795214234397931600382653383848307436451794248887806912316047599895358865979853041022825991460639770610825562274125407217254003403102682313152860540471991619883550636336219490429923719877478278163732666207124155767176143057596565447369611108250699865621464394438469652895388924070045611749272507505434960209495312389697107242361312529280387672489643665169007251842560436258703267536004484028163216471830327235111733425023421153466222434009645790476730267634723061756780070819766438122082266712655668067943808928860564531942255974753261463156637678339556138602933301115582918969445396349616595524619350057161123937467552954714280700251178998677003209002889213277823420950947610764781342211950644640009676271820227030279861132329360070123082028168293401627317116988519128555642473637346229242128264427089604933788178705235238275818029638800402018916545758285147891705440008983169178119367267466315243394642074482732199231305708968124171257300927280340348161245170967931646352819999844229534533114862059541395499088363420139898548371715859285419785732542882034132274938018891799417636180163669230901711314525249246438931198394194805780375794633859047190236184392378132911092271189652284034787094349557157706951501307435565307640114751332129328174580895797076463559552644840392358041864649312249753619417405389629371472071394589715228118122246103492839557694543530063362993162825148814419845596246704530380216395764653490543097348434150743828419636313006926898507566774307319407337141147631272098969440718303081461815353168571505146564046986485890414280501060639162608551883028969585897413808566207704286937721086821391828199693229846749858585837655620562566200918518739790821788205275335978352482100065954568070750798894760959308199634639535443060899143685282583800836930028588791243986212613927214701396064069865635172209913425390689688182427183289000679303095983380864963067503430251677451186368224746648921495930198307820644730426930009659330629432618796435188656603331412316502168346705597000402707843969766464900931628562277005631251667101941912606508736728193698606098839106203140179741287023151458585011516252318373827756711502989260231038896621373243403335260028978883566379399959600637667726624251988276193931633960881851637110246019398229414829608590642615722903338314306301259226782901318644116126759624165221859397321365156354410152395646537289726901490793092009656181978591708165575416210901401856719174034379046958901653026783394879856482841718638966289745637713223016347067122903423087579877099674403393293236485326475315120609915140133517746253281888286474787836284327553899754703966793937491003695552087530317993582251848599022966641707148092040875097079728757248103689631694860703254066611922605527770312889011511525593008769920374389680298316741506699171200999474860322426071932896185018660719941917550569247003082571041154827560951925256471553271581293539026273444707369885001914788312527788500732944719035644617677114951144118281039465648463618102206825561302402835803904984580205314286741444313608754745084071970704154047750501062019777012318918169926522297993243412072206127433770550138572038810523083305392611028762833771754428066175882167927516271467354804375228531002492152765727661707882463485669904943806020305374017537538833000327660700561739147027799804917004359109894215012197443334609682671015557780290983616669044503495842475126757989896548848204389773489907686591189393889051403635414521382323845976065423969931899119212891440605841175508516063928718931744798964286457553960454170495471157887081579386980554579249200429019494175865756274666988808319088241488626575864471486823650878936470144069953203112781152152717923796940292737187118056391413256317646848300789440533213967433323022620490760647265910160025698086702785745447156136755824687472578872682048969310532171531295816146910539492621086266703831779916126388767819015362024482734118890685456373874672394678587940073613110075877512399764556982468292821606489226627764028718632199679970019529534197198387440386567469513780324467646696185898365931640056657503000948408100553013508998295722935661155388490885149337987960941529438529449188787663090987418132084297791720842597797871680616965433243746410712060915230744769488042163224166797589113086807361710219667863822441068395742500353217911056386129020172004005339785879346110781836044914181961480795650826819416441503287699777795074385898573590295299172614016248885756456670620302513188022314866328365191423737162834342746331498372349315363838017044500452365860545360732822188043811101303283387562482455762565458825219660910572045512500034954989981881000985476237661430121544229570987548915417860279991098624644648830890882034373691825714771095170225345749597645171515823811678503170199467789936621019421368929906152483754231447558184514138573353781666257724085736443365177757683509716669002432561378569787347088227759226004016438269054962336804356065850318431534383472662426706302903842145633818121641448245987057626139705416454464151041146879828801375074144638086304346242963522289047371551397270775099174691145982863198780264621253616690300908047196475713686854383128025035039688916757415324727020068955152217193738823854150920477290315190232999364675536357217231333445185635113000465976451721804726259364808877344717390930500503907103565921594640925115661975667582904314919777421732065046482712146713982126903737756240827513009541397050029905411263883898958023125011153121522042111076528517486243624285830647322300733119471521880310138576380017522944220713506116223319801562256464469359691708618701061085340775476715755520956678696194895967324827242525637337919154589355684079037912855602299378503864984485023958832795228763244886498649842737382174304724977466639030374624121553529516432721268322945300156268996228422661362433631933210626859440791074259994144486993071692663278783511027167898381590599043339743761181134917957181923022210810362116594628373045839896636449088879758429621523588949948251914737871807255849420563895666438542907487827064356287967323433645898657804475065477565306716156760124708626482380786127632285951645358526743049677667084647778806025839160590273271550481444703212842068287128111893569696033408432626548659060470337582813709622865229910423421609563710907000335406740512771349276571565876163216164964589032951516274092821100788289938599699570075024862550514630497763081898698610014149225497201895583099393318332695879528706295641603737012909151275974769611764325339200150189532188171515476106240265759598460139469631842232907763954378306061793655590712874669989083890195169010872403569264840146486862075491068038662523258575003709732463016198998477166842815533559758680201734717957350884011897862611158983864385080487428087037436837900449265985266014443173657560374603881368275564437295155583809275667437100056377448021457337228771413247919177284581289170683489393463696828966735304426288343851211362508406682459457582342496392456558657335193217036262192041280056359261069885098162206003403328964351582140235342383868893482684606748665200216068902667728818837442469943424613824519230986285247378908793956085224696277099610406117612241243603664044382022290477196082009191068419727256080648755389884678985762346877627900981734174226189669926431869164916299721947307047204738060352240771916941739678205059706146886060146328902451803245596007435051955446308760442202384827688627106713853766676149147999449649237149581565067804409450780859278736921651418300180022435932358886427925167854277461529763456692256790118595233736539729656736893031471945727020058126542991113650885157434020186960210571266935387344620926782083023360856597637636070611873695982902896806456007494566091167581639845303973899875146865336797134718880582492183790638573572835979269159101822198434440825378341503043969862285120505043324555958185642794326342597868212324516354818921476076484211006962696009830717138268769621583596115282213473885074930679100829089879393627738290075114898954409584206022891676943873527577150449770522836306330512079350919393985448560790100897892935642501104912580158352976103998969863908728505508371988948824919924788328394731621200019873078203474690083203038680498702360025624775564017163614580591911955669980994972077891099070686576072451576377128815683772838788300185245271500910436699386159189475952387067038749870354790759729980443684323053042729956464622171808234552149065292083895748396701174299632624498494760195714593017591149120335173120751809785318576604055531672226926326453098491697384111792829561970845047561009570393514465691843642916722206676427923895033400189746534342920810024343211806143615560646357117953094566455639054647349447828263159677358434642832778564446278201251670161695325080309045964146514086158113792815159547916319892944950194899688014234308584997966943455165681749087867243258035214795502350959982953591448225431410060977856385094623699302042867034209074737149989810386694377745600918584036982459411144489693864732674105632638453381036332778985645069409586795084088140268392528566326448132787257038489388683290312670133453793325386457770266208340174404660914194822697519707614819430008792968977369122122875048450231280950302534395633825870975361252274892412211715304087694404326473749411434034355959523580964340093609052334465116407279114988174241784853124223214981534454040304738241342367575388508886337332504741770560741673735794453277417217078807974714030204425281145059180786732211251894130132577131443912008761022263812106723404634752399979908254111657723610512126015075167705627346116041573912530472199394117727737372345834659960960998776806609901866222939551446605066656709305357557995781592748942864611472556717777402404330294503244021750787639576785749657582265043648546434707766179048121814223931836213047179334664665173879131688884664312637758304188508248849053448623083080854424222334711663891874177554178446811201847379956036084134493845133820040664316326041964858203519358466565602256536961062070624719137713812551311139422921175809320534954135337190977015246469514870579842451645800861035051729365312954947374112741860405295241556545300451756476267539084104984788191956529350067849241271700012400508684184222528942296324616525345013951086865598908897263805733287795394390505500764521244393291565467158750419834968056406780574983798099636360248091973372501211405563815006124006660552130340997237037188199387066082223026933557373070681510557112044294820858700787164989486307409751510023842185350082631834693990377226829037919408685411990174607256671863310480598171805034276573900025061925033278341897711791842699699882015230583753311130165270825297144885113184282841975862852279234093318945527697370336472671536097363440782347892964454785848677045977026689210844812234238446185503135484210590783568097472688283409513071648124592986714951379220458466751781863218979277405960191394872430893229200820847587975581891865423105350761430535894260817938546804379528755153198026035985692720085832366519742138476276635063514551804903998688072299898324888057564604706401065408349994927556001027349990186048753092120385416931096909255108288367520823091848713671302237400813764558367426301699381698506066474921877991824175677088348766632462736764925886611449452127655309056836039274384841015191696252931732482344494538805663250907421017588048978394578189777976213665762930273138081038723680714561684559807738013902763809722520988923887381948429590639940097768562679564427145093664404427826920595891298736429444457958465574023830521593728702111748876613880765957436189559091376921634287328499445791333563869547835274434118608390447634660504870564569522730445388295590083631931734490415698670807404683133999697401030830385374802522330793265998105265060128929696558404185856253096022900002344875790124429487236323562620392788568577064273097951763845934895089554727838858806040617609939230293185083264191110759404200044729759304094497850505179805867476629114395979287585880909028478926947269426064367315627095807020206241381843260191338208747984342188045511752483614873536328081987728023933904520063298355130233330900449721829593547729128498313896487518829157826603139493889010696896929628663551372672525264802320354101618901053706711701500374729496095685384222766407938825354680815699188780973051373481058365659324924250242619301931397878283949106869201456619073679121641197346307578027419292726411317984905262563616734063297408603134951247745974385313574418551862658982386445331791548661996515109503333876404034803789593247426584277102496440197618352932459630768789040662880804699636150470888194049625476622000945279730589196625021099205915061032373326712914268708917921918947336857299185590234948918230470721768930929781416868001097935690293618692419732555467428014400249889556927868356896426705201026889580891327630280179763860300509940206780092491898306313352007390721934488156081842493441225365043553772497322971291795612682806980934063237488870649988639929162552131458293302688514057896088995605769871363671112116456859878851914565350138911375500960926839377493854472393007485558298290575205767058201541992894125232391445568028583439386511108611664266945546356161783657100148929908598208249625745061749978474290509340764779528070550104738317722139807494343782555399723713063273383959716897030382171525638595484224503481845069146207584203349055653507037763542819959609387735460303006475238889134943171621285758471954321781958685468169522220513478811804425647380011810689563987218859200674299688738147365419906155108709860579760329230378814636471510548280137076856128467415213487977687772013994879965749782680785554425193036157684841437480054218728025007838795057751677387110097660131795098609511843185382100383467320531669054462575730462221787698581707431333378327805375444210062430636311247178482567727429145115803072137620836685970215898554415312712927861842525714770690064785417656707518964991933651775338414318234184158629795473183564055984318672125204945247087122500334093502178243541777897038189082722338522725702530148984048561778719878078548934126969606526343346887537132201544974622498072570113582112973955194945980050765260441850808548025829738411677813346910014469593958789188253676508128119839892248092333645034044364641619420689189465311117364395011796141863109029500815244676087178741939599175346314709900897393964805647819400351735445627769393140311321128406137637753889977662990670387073251343525551061027977382554205485665033391340004360698211183169911964318681063406156716571383068084508482446513668784830105959702572452355630589552795851375548462234651085351479864828322673578707982896502583449522448871645171633478067167710391924048887105018863367885352889860016616393918130452798087174862033835536959771907713319079367649322843916106814684973469451803548539683410048305058056011352064303977784274042466619302709460871073012851934320518297390036277087415208101615072637993111345770014050463000477228223824768105144769918228092103765656143971177722596059355372093981290483701112298050016988252732824450972796550273753819577721493329758099235293087464965461427516345240659896285816753467339929848941612061842045782816116443133800003702111073464548757693422826336665247156525414797210199378714988985468635897997356050992243007435669964934514172968932031574540430074135224855165567624952325040852821582413891015891667993815908165437403418789658078892311424781069331577552284606365494747607725018836786479268805039447171494644456876676716270848804607934782365956274725555496541335731565144168554910449208527496903168293120890929204267130996360089153950715649744335323318537051554573728542614784953155953709125056198606355266617735078571064702039409495238957604268640575151833886765902440649655104570341746693578541684280419863055814816071579592900069829320592725053115716573455597557830374604542051542578230770366942486279145429546274022319039888284008925156904881674852029658692663840917797467187420022141419312037844015948766394128990935850172956854517765108493290322491672676766502179475559613155756988684845449984637248219453317293990273718690341592699932473549395385365403572245524436555426752038293628056252021535752928409869603131603069651543984381145752571851395621335005652403353938602528874178839987261724433576561158957759046384335108543435861016268721303386720636166275411500681944093307635696195301424235498020530719559414807802689728018127810943939206667223533222109933089537108918833787381917858505516956823788465690012859950639401164684016775783780382777672731411076535050337422467433955128508681827911226598740817688969824854501318535465586174809910320916651521957685070717784234831207035263780048128820965595266304700881568427211950811222645735415420363552807558370750266659705713738734440105763810544923616710144565045487183027950538791435553333210441958654774606250031290185846154666127140596443772333242990624146780824603238019078203954632726675672184561981391521155851368010063787530631583306481245384783844286898015947452489596758045360135714755905458826195605622404297610699720719982221115293920095726454634862719661179035871078769304280005538622658944344244572628484698481054644074700961395082923877172927511856242772835749831727266714466377333965351444729796778799388260408846027989084814624631765503478418023757331299762623874151728209374152875072636513454148354994136287802512792645266648248266847733309860572389187916690872344964263221941039152950294512780098585001084470566482385826373265301936435241756177077040683308382763994771340149606556339285898219379270041245333232089357282109201944912934269335947642525263785403121300888175329663182796902808241264390131871685823942366384364015622205873962471961522174936570287895435907902808590811162176737428442077458471196187146045363413641670198409845153288606782627365286104882272226656425909228732707126706883430649440170787948973386523011975424195516062960146391955419566291899020045913937955113206729359107679565897165389332626667350768498402038914176832975977146688098317827998069374330416708486749497107905585443621732409683421024238484439916134426837034651338995647244970524895819459104265877379920208809788808411317436880652099120076156913584698709647927111674943056696907606627680893027109817835449762382271221967051691999441821803939787446660901187913476009462919674448089428378497257535717461096880854472853908692456545390126652397959712588032272546332627746286760071804650043537574308085707280814902462886671472674993348979247990649983341025150991946391237748718163375873652800706664601546052482027648031186450472017277234776879677117101054988782941977157096301828976910363700018134683768380896962770037347524043896666781211624065062514186615493006852419032144325393263901736504821161395812456963219014740530422528109723818884047854814316352719305333426573532077823130924052035653486678757099703913098544019254530608472861594257445603421085233961596817203581021469889348931457615279526424501480645522085101001220339705853231739997951651696367636036791769343125541795441046656820097022123360232631623099585977497725130981029913931208913753286205455584747615924017548376681521179197442437017673607699820528446801787267537273738136440528502991723790648073771119743640613276471648120084369207401296298306952215754625947392247907733198933719006700466526737844818749715697160566537342410835731133804217450321884271618053502140195536954326713794277827183958477592292953302584076979752286619793733593630801249308647038307694536571573107416822761301284634090222562628663550440840127025863576818618905169600622888658156054692036142336787000923220707728141529845827477997373317037496292991967336637073838768485073352106869156143733212299248736148678918581452650357088237574407254174328551744702329358772073897958315820374578971029401820189710476105679035904310655348304082961461294779642845413227194391923662032391706746245466895921594889280865559734198561783573838380816160143574669526429102841951625334174407884017014171555983643636645934992765843304019329802769328208591210453882599529676444417458578973301099330981635496693383585274037021028427097358777128506995538294902336001291891724194440346046718965498385614572089273811691028136136613052323633193954682540784120793783213622892029139563858562666116352540761703930078244734456494431798328294996777073881802644225239157552674012196448508242950867376908893517150770975539079884338757175005467834489163248022602801737528048143445455959393578213193215503107948950114797031328573827914936840714279462876462908901934041408840697322324568024830365940825205703564808457496892326554677877621138750516370435800517756199503656594120252604630221236294108128423874075092727123362271661793514320859401203190869762911605245114474792945417825514207882614831474597157853942147348849790117919393253508591341756210961007284723964424819828099692576024803235715411925814300417277975633249123043505094597318674107147958707912036259368493581463671737518273360669107009279660338961969304886173895772060990032870363062439252285385034536789513670749767119249535224901370207021965704280086447891459272260414652590759798294906933320463433825603629690595521320633352674134419371958942297572638497733354770890722613618467774909794069193800609029903615391452521585559556235227840089277179274762234976992702950634128735265480920261960474989871603826432101207378147708854478251491591670555462400945027862931955392264546256015537707752061460725545851043191803617730967689318248871815352678548152817034675502464434699099667915644074394264490902215351455454435457399916816629425349789995564142586667170675292462450543917415343876592052846252623587270321974169967977539036558173304284414746410815054383768059275300018465524517184299849615817748328172786407759016113209835337663635259865503140449225493561080863284094358943168001501821788598076737088659527628146446106625702454563625819386791885312049277053022403008769153773151986563525783878715036940419647212751225220752135099326325754946124341627867417476675951147305415847877417404082450476548171704510960515677175114896033143441513545418591551822329354177739766512823092416080057794894744367153377938599930340521983400871206302679115232085114763301356463960113693288763288982506099317264750313079447519643961582721975524745573411315057877238216552870007010630615746415670915873801767048949076187155361862731488628443654085474667500168671280553932873863546926544153090190124741499967242345719561226720086448585605609250574761489671566480981693854855623222139166380237443923303579714073595024491367983849161090211880437642077434310260831066923229388421796377010643759917761730431950422162310664700083167309391127775965117939530754591663289710472329869339214520297859032993677196740718974535410218714319096757578720364116735521907142688082303079612357770543371808638651764879182847860567344745840591436439447857436960354005465672829306484009696634150710114581901023441119980705167717231481241833050968533124233917968018371299654614204970704313554791056006038642788986161272517157928602940581071531168630528350850500112198603595909877713948127463129796747862265194867459879563703844135533587854466254238592312523843698169979169511290617098582572365247020744646293227828869438977197806169553317149425147824167520091022864749477470556438147398948188553962858239989575519348527120604680221410323282614370453738207116142580507105872307886679645220482181984915361224491366363738128728163001680421711323864568976741560349814854534735109287432272281277166155759451612132889646833395686777451954584085775218046082386596400312673535300307014583265415860423958895488433519867824401602506508914291537919755249449835332569071457355956948770614966980120556856886137898828081204174254309838099497463046722941881386945763647424770164931461215374889167872679585810828176181808657924635937753988956993347713365463956663722463723033030097315691215191168889920742017303176048570502443716456212289248749137822610653031489118243053902796368021063863685435888075818925986815114755803626088099942816314853138260610997101459938874807382899846831652612901794142425884624518563952457561304819565993124100587171253682853535790419178324191166440758238171396436839194925270143248003811948432130686877001300371609581004105499168596977584857719951425987169624969243126020226926014444543004335377527760574676703845165679424782464607031170089572081549774126513563052040142033162525647786076514513448464493805692334536285847844574602376530238866316022570708464461620037113301844925116912592155914283732387087773689289721325709606918172343707256287503154058410727822065107636091636107714015195921316322298511511509496858973412267541574889491082068665124428825301391578293773547486399706941358900894728425541980905382899887867380137277962619295124488863170100864276651948582015736744470038799284617750317814855967167160763101218803973269231014067426046578196108738734862469546120940895139138497007205591474576396502119060556645216266114493958670603346166229506269556401597029796258749516926461300347049127732010447205814931010344606516424597952156480963935465993806261775623083903058740196158489128891933050105916567474797677836211987916754464760645479727009409623266701835080906737627879467013895332532576654414087111697823235977631358145923664984761678191143896660829779198602132520910456772493193271608527348133369821887642695704210210677351598368315422777220552161597465221230249569823940556278803678093628277038316984504758182747684369989251965924565235909473176505368324386045961028027720972539314105499381894068164178745670753024519460784568129523564808773452255094751587896260223468010727533246390697785678470299668767794684797151623996735223027232977777147739735369129404002304240928017786637657155591295547449199561178700669485112224772561733983168745457984256028889388630945698043753985906361273157063558962889481486829734356163178022399937431434512823661618724721951944092897528680149363210526165608501552391256508101704013030587333687825584982528621003941505886242710729261008380926038028439478319960933983018996839025260287959970211968079512158000383857143529719550225908149737201091692824277342462446295234061048987190381996936630075398494219120976236411628867335027865980815088621950989771227134723082068858575317653520796678059344153848298346905125552606355706305149652689770092172784116672641164668919447615364986515528469546307397852503803849563095081195294926642344333613514845550986810905824398107325491410077711165302888863574162987006366179830665468014832025231110532785486120498647287240909132644309212976185953423156416122107823114881242336545851623081017808548850993618865059926875008821932505914902761077364202565338811173096422610932585969532210601243393630423734904110052415174835972104086797301988986869396996086451941865603055827504520575280519562932788232073117644151398541256917979408792078239094939533780680626437484044443804958215879662016100201265967573211125839239436121958114356466858535011512390294931582602678554507250704268415685407469867279218842385457726139265659951158210733459937622802022992944424093190148493063162714395858274387750600863675997695240403220648813173249694667029566720876625601103145586412896483271996657740600412528362761795622718243077648369448751358266007914357129355904761845380220388667452679630981476912292149437415419528725329934714027345919361689236272886089698575042460625247467211409660654699445380616415447711124936625470606761889881988834502404158801427772568499434153501648307913237753198885734154722324025405403612965982409682040887978059914054577984095522220649093965243243113572923983034528620611442495264857826707246617912636142372412048915802320263525791921821237076424578709169577174156767321188452724923698695709289231061050180662574860121612798680072176258759218997926635530561786893408630046141241024568323849353252941563031319372913914499361399408450904020760879546166319622761932491824931924616516989967953365721343374378809640669071400599400267174478952354516629959165674483637817568529856480398697750156793879621255152116668139368309384767549365030416112495379569677611478724570212651010612221536437970956685823951935074944733448753891557647478893550994702433272135185461211888984214256774018866943360612889717029697458228863717410960015963029631989971187239116699428125680532787123259153901987836313362892645107417004471674099821070216120099092678490938501407784792111034254506506488140129741556267922158648222609389233195427451016454669751355741406092975382507020664786179270045503737153553385738253620772811786819236729530410284885720139923149420367874759505912962275369834224360293740173252833672824020392739035937118385463451842120008559915126946520315215282411125587822202113305743904749349471675345949840117372012849948055491666635089244665522449536224996331231495491486821444578997254669020781585341743133728403519270655941971746030998241446966617914662339777697374451340789080220512140325877502042926683347440222506427579766673424804283598281782728005557765284991116408998726172939267685010259410604010014584252818453544892563728895213087678219650924702619273987872058613698915104304575047555521394360264228140415264210652461765498302279345950377505873164929816327120879845535217907627783910148373806586064808190812092204614975309557159365312896939308175233468340410755678566511993994095953695936189820251360321049864758760790769905112534461662797630330192092907972740923656148981451509408659117523206576448029245044308013459664144987106442388323246574562486648459440161908271579593363100005549299500021716533198341488295405798268462008911988493764815021369663725534967815001847370596251563579615567528160583120565201731493147094576648123965118869972574241594738494410467086185861962133354819554368315941059830002168902775680580212366002660348035279520787174566787772434185177734128656191057592272524048434017753069505590209013828408975870843311170548847122274570057438786646567759382315137513592309757466408185403820962817883087553791154766052081816586951808189041459733883095453424676822538173850140459431072121018831327430360394825011997541030784329439951075686999485082679626153890549089632679996337027237604787082126859967091786570071468683136141737812352641161816415034583823562063738384575656490947326440768368165845517619682570295085409586368589365182546459581524023034267509851832779741412408637611803208266128656985366703846304195531657004302746850431724723992757905260969212217671385650070364072063318084289512939364166781458343718533270503558748098793853536689761685531387114181009232723268676001438863481111965973218465890975008948782388481167563437918002381714226850323709873707133307747546934428902033953604775968289628999410028281711877274935776589030089695742447901044945271953616658362500416523635146211817375124547148729544002071858217057677529191543193642173627715818765444988161066927594622124758059677821447261290248099803181685979587769868217031576431202584613151249343996200271538837005515226610206825249104359433668150232242264256704924124810011982644749584218621561063350351767564875038532967120849764442579944567342730298140519549605634762877955277317845053471102389165872608855354298989926249422649852778139339446516252218995168951282306798749978196901105315603787152335812679625066622075370470173768283983199220091001340586981737306941219247023556841187723896323911952146559452407843181100205538235451672039297763124554853477346109960843025949178074954664335188943262475811622046403145252186375682619926743230130634091890420198836068587014497095634415613021608184831049532988868591452140728098410582023134179906383508237750674535211791884201046270397908474840348367414939069960677548534122524278596381828641008704822293650558796225385792459033685543345586060509477908889582369467189720560252201623242825117927225346276782622653374801698392736714430680845203945378164334287902165266841239155589749910198567295911405433550908239900769249696074869966513784688816266369571126676223838549351888701285418160163306734974692600886829936374619903250899089791802758470215498490082600669599216878532181057300600877973792262273228680769962701323935596555269093274642233602608968521681133041962251211798824057648002108519414887852263413536849392030152496267004084047975310676113864253668032854820148291690169417040603438723904569621978081975157028011544563013518765797541779226989153157151197469155837913110937395255002610230464416658430704250783144719258455928468877038562290300438017387111119128464823388316812732052864333086116618241523013137373604017145001569097511254373443591997459700200002978284446763736390987293147194868901362943338841825925702432167172422125873041172207077051547533266576326771026513907507555034369655176569721924455385453997015781414982411732976919672606615997878574090746902170304968148155060319390971650309579956903554528236667977110428235867053720094707743207944735605522122739846843774864039540657647696949122369475647355753172795573237655542561380409389174967446922483820357511822295523748349154265989756760753790293410050092956868210961959780305154737085814171249550561283275641383794180039983082395429202902735098126264382580917378165975933572164033774968014500493754448215174720069199265923989603789480808555839936283121480661542651033724734833639538420100353276308043380564970078220994707989828195640593665354110370990849667279955428704710107506289006150489229482447872437371827977240129033514017846550077870978852197554369143422050850362060158039638140878968860331439615547708440652976938801473542065248785557320576188360457062036392785232359483957159381307756102144170472201930970987268687392666138633294522599628211691714902378655609687296339390362268493949222229202617923041213340413011580489430172896656128078716904882174275868572300112231737859871959993112532235009448680846447445189517224304619012395292971248862155151287226113290562986312860665809446705979191139563293103001388220185173742627581270994046917492995286175595597299575486269957665360464753917706247923989410358983127572661932840552219486578272703947016694742686080952722300117308239607703014884064518897316075916027012155560526119756290958759330816913815554096462933282799166248772769519680226515932224983148896512422840296123668527743086214353414154706956863140285211306878778703707932139277857113098076994296119360445315215631498678774003780403538083082371451786819803511659292674467819285430215389093114039100756140831775398453464163687509273354252758441114295597704615576959143026839321608468175168404810519599241545757344513634127473977054565975275658958519411963644161464432288168625320719563265142348317991684133760436211095663186351177064501821530661952880462505626787602055706471943739264963699704288451848743993530484620909139142288462446747600669096037217475180852959134969908918527603520062950872493217250013712493934416127117476488421253979216924202540874850045578017111142473537320084591034690692484129914764268086036150585417943462072153276294767570085750269240851692724513638718173114875709223561338610595615814141379508759165820676519160143287791718520975364054990860866102496422878638603823368421545826127584910978457062746300679003561531253224464210071889865054127393943072059718970799054210471144777479581062568014613899908333549542103442993301346033899827672945696463962790168294312878385563362983112782956792984146924883552317708715714209580319540069213946412756329440842081600465412145690854666863915414345591177648884324841218342791519595014408153883517207757402752448000883511941388001320828316851818864034538154389464696017380093769387726912476955973698556626496937422958921519587373373202191368704103519326418067653495857646887225906055300116974164065853761470973446774650735591370632518613904240401500418990709460334387648524515762743964108356085891044083820136142713103357787385127363116995775029548754126652740178055145060539541800092863661479074055084457956871356536715437772145081352756492607955364137626134804135142984467307453861691413013984229121098045759350609629896828756236111241522521373810533548078738992566501921026396499847077207706896701359818021907602673989208590877995975085434249346525182968469712549869238877702154293242431422770069766039911027915418292693777010623890118603466369699099829684851877578545187531499661918459582251863886040784022229541608824882657483522470863646791919480716878070186501688307497425883354435445434594071068180469205135801048377702864190576288622766948458020977950894667572516162022031300772878891111202919884887511672883388021449748919645695614395319756901874591436134853588828205826883615411014163755416775612892377776962854120196522117743268617198647686559544314982374574632757835501625721221934193525345835595721086268235684081928273289211567115798133063119012586532950682542805951597863747837499981736595472791345760697361646978977911352993866121187431619174880107210550103521820028900155664935509255196245828478117003315472087107939102813541203623362553841699430598376748852771183377548357267202731052220685536103704192244037380161640503606717857801245195399843593997655018813853293234714222971826877774829703752866794147726569974369142024154011312234093085091831265531274126316250520706619256866861177697543783872319136644410432022725806863134520207642083728984298544666908877748718948433775670721886241029282835519558991094600086488714790819211520757779588306429481483795344531481396971980854212809281952899696512893465389284941222322887620899172891190426704308051241278555428106221604822062862511504374543159613016494638498015140614150938539254676837201877951619677073834688714131942616928125939794523745660766741248278518159775774095273314828883146465638322884801308920524543148950785749581066179665883851659631540953184097725115070407519319286000390602534422026827962138908265103507776349654925957675435570747603631803696195524376478521224947121424122027874242047990142796244069746021657065982631012105526771924502303014746850325196795869695498522106817754014541200556308557098233143165465779751252532175522700363355764660492420545876515795703295763442107034369724338318095179485236392715245607638471641981131198722929432271758433479062579606716322400699483507765533051894094725687210533747580409901604851446078761736302941525151319369413714444821996854949008186791933679870189657086606387784755377292643489453562753047547638510557731327159941009088978207352176735868454478403545237656074292092166164176800458057742279825829402275584112185622932994796792816632694721136518387796354174731455989899769677134868538263944289403061991372195711931502845617604211284757172584056440712394557518626394347713937664834083778086204687323276408817842701638050029922651424444782602267341610772087823922313027557465554080194648905505627195175199106447717105464616885903960222682412927432859294499268828292153382840700544150858288632918853785788943292053307648891412784029923555612233953346928891936510656244293861994126875071382754857119101625943751832147964172586046463982105757219611957417918567025321206153898519122902683513917592624015288159019543819192142689192145545967493762368123113222975294685551256567744744069857986633831310765574387433560451739223455585950555942416457351861965672427950708643394545405306002963986978350161508843169490204177563713172754383665063853627445804696263379797285710146127156934287070352618315184361729923927799640205262980071210371746036857139307904588143087673517677570318267257444007909610033093237069122351808907838578265026489821829641669186569389657647748928120187928376595000801976490500971194152522545417210704638938878015908210005948350334562401068267913875424106714073619109577545146820070487584746431022946609492880940138479956519914473367141110362811913897741149686269404163106071992410742043307457417813874500591750332003911482889276992387981049231708145197673533511805500845400351484788512508351474230788529209572586763332738659540273081454040333922722041832304691167698275671229233942762017967022801987086008229296734752989046831567259232312566940201162906850258382137477429266296845792837276007298273035222898014633724426481395647279708783436298856218152574637714250886050997525138503821662207888513315638208976891906486460729989215272512724613388036184622704259797134797757577027201897816405787789279133495335711519384085558203045487681898743445925000606501625325531400809071699039777337829243336474343782370864761424145908306457216432014657171084782836943989189754936814855833853239226868166403315791277351245286077286492466964482517512169233177640538066930857025683844474024450756255411302877161071805747883558095045462012270027405462628697742559416958871700008746064845781095813461237753197663261759633528112218472193709151212087609026653483242994631731130466970045788035505421736633970447368544574618183530019121171392194967117900995525868675509845253332629173921353209035293566936879867314783410837754763615676000188266432938312760239783855939901801159132059854607935467186573597366732480079573831409096213793559591293451809309355094098256208728756900812136242127706125823232039348283077549997103910165702023900463450755601872074579183405090541676786027873008237714634345844375353641159676096028101352327696157722004271204799839250872729319252044772978555622784287345829750300765442955982809911666671553406361855060569553775543819526310610992620417815493736684657123762667186280287179741477136045807795916562573994985493234684910140649682995669321251278709919004453018366909211270246424896285965508158975815134387050484773220707567370088166636819228872020734534686188663974971427196853582702288198478411061847410796553672185623486556224842403644091827315900486034070852992828979870302842127999413823671031982970605823693801351812859483318370993646615006529006860924760539383421212851668512833486391202667030045108765315390666244057821984221928544224696227275214969301951840786819693627079620367298816275550853197754090495893322900829036926438706459882274372653168535117849887811039852634811683394579136668270291480812953459050241412674989532959417290183730267528107141337983526686338999800537295307157559238323805440626592323544468697497780901749706991402704102619376064169005176148474039021538430923162451175953740137912990491806018254824631432135173855107656115578268398008375356927271004145550522863083254707690265618435508971923744638727505458625238188911167297919410073432760977381479548307110529808420577367366856318199395282906091041916627177379710371250539667457449010125058726952167775861313678269399572265837175628500785812709125966284117653377788961278089927397792419916217945909564414157749184479279255210213688765238203059430261188903877562460805976760492775947117216010761841498785223594907000546444129435501077589429745237521685399915989981323699166149881934175378892524406861641005912822473057438733247576239736624534418543547026302011264886139484061278317899691430661171688134489881594431881270619564548643909006087324110011762086891736320816514515177392419284779705352736130920331813771892578614782470203835697144908531510259362398024615710377466587675376792422377359881820624287925582944810014817968703454249226991872421932586231932713073930422094380575014528227346631146855622133895407413818951278937127967077390874199799972457710738694905231099991352933838147734883277164046816746909678377892495453309018675601355100921956368932810279307521099773543351132639043357372401861251637062920612457638007225762983314060960254704875338751729234522543724078197360926025057071857529239631937863083779674526459592252455455877117338628521566335424039250466203562654500901200137135699976481355561539530879215639626234107024355690799866611406300862860271682257435430997113322969320907941632174117570984352641609697328123203120074859270374395093637354537155774530884811346466643051762990151929354475667289956348745498332809798576093472258774846015521542703603431604781892671345891669218988830674600909938700129886009844563545632400503519731665561119099633804106082333290373564949124100013560770182443797534770432738009333222901837874590631736548111412086325393533464817612409705183697940034103489042095041174851214541641922776629102653517033209600268429309072499543530893657618938391524389324348958849651543062985276803689833644864580582729763662297817045433309813660111675211911682004456488060769888420505111643785654230967075979457963653943351597872944211308238625290150932151343830518161322657244376691021737106518869461606608834617124861934694003097136999122953973040641072911722000357849332213248312970548081120642340630304188635727724512817511899595193197846997126257760543191015348470793535206240046734363275405121499842910198336147628706084603143392743771189653811960368360904816337706740596899508948958531063557299704337097408133818910506257107225488922225519629778605081578885064631783076841568801193857212446916697024144061359479720985835589637750159146896498497896976755365076275038045653013167238787268481951110908376044688937324066608182303699325596170611070666855476775823445391294085069033193680099435339280495172085593873236321848275338963274153535982837575568583618719770043493236872707915525450784673432694355144222912553387783075378558793643667079942461813688571068674937125899539444891735268872362866583439046484389439566056994646765516765778230128974846655649841412068086643016823530821407556740427670921565408179784399675061371640419813543361177533916604767495380968037779470655040468960999317092869880056269601985082308797329606831717425037380664590706205243552129032793380260386260177371321208301613316952655297713887207082137426853457828785592722407062419977295071785505236555252579478163026935035372688423811479057474520878987097859401520848160170648866640739593805407684083562367221139974908637266768090603603362545032672187682161018041529108183424471168878077438635258062767733950876060588786936811786671959322055654398550079319391148033123103912861194435328629208896935235712237388013295111767606976585849286337424301472746199896894764761710545298277471870963960042639435906641725499175129215287017735248479919219260415702176139885790950664155015626186709397621412516776224907038111994785487914537400182389502610306070243932422519600822189956012160033601569704138299730124787785209506862424305208851637104071197986320295757142667094542082327095360422007931861738252543212779378350234829860834367801036588383232583847325512633507465732946099298239711069408498203738953112587860555682082861162298480916217177156148305303038475579259826933275571589703855806762762817663481113119281817852823299513536171865216337262236308542357176558721513364127555192941210105931355531190646669753760938668834494760129779424085921369748662054131137098256392797591558917057937159663648883666881606452396354961111253415212307877690705786856738416234523241570703228791876022596933217200273950090039946135218116789176307051833429779602256605630122567737432377502760771644271066348299397466524890289383475602295882536426785118657237607064256548070473584428475697110458926611802624032191088563104182351041350322788108457764655949902201791419112064929961069523731231553682385860276902440712845905494819523368725262659501562265677713364009949133346235126636221983331157570138941807396820050705012038048208197725458557964976823290048398446714167729395931322769351428945308698417213517518580191204478531015255488381094361926093263413897152766596127788648665072668145584341766962306061379020061276942719593695440641402226154349961060261814788912273738712185623253182021994366870831846417171580135956119051194762990370505448052628809372015159353338148330093528915564794537438562996913864311463604371180908057143478472590973012034866206745729277242197857346057017235824646475828763079500749121082510655239155992489742688707717031067273863585244565498576358916949534026926991155893994614740483590336315149197049577598813147945166924928305675150266975586958004816232875419620709453126659016976683467355983557854053421592082204010827646638662800032227353212853220262011814298894286717094263132669834484944926373993237997727466862279158634009028976248847036332072384318204947872452694674375166590993196378548835359430436569476327130815790729643277128245371586181585174902232117311761009527854573570836549369141623808127954807490304114683581146819295896668479194531049190380519437636607886747508738005882138661354103699462105126811236009348422991367199016655869800743697967978180871568724737496063899807592211614775540213207518669080631942752394235101309260433909645722021833911519570850293285358045621729612093102298923656844764826240992688983228964059605625612759680250658755717294175441024792770459101611932419230794090695208159725811253106948284709387028492832134088144987876310163899422333093383176848362197626816375097857951759638977638536113891226749635770093676061101469514703966979827495030137576511662567989436113170056216499720011395934914794349203493808231671287358797444664997155634890769238960037005184699263725049814003019938048729406047419282816321579208806118330919155833331933888792445701575638307284979585180456499181080990774170439661119019965832673201980583083347492989933228722992749424848085336853520179813811982580645170752643481113802823120916591216194768001534726345615626798014501450795810938157847884540600225276063759825165577887376454954972562365097667322988525740075490971998803381829160771090958817548949081203625315282206319920496016456216931559698877184868813771968011012475761917341190125269034949000077095589335320099438073676755448958828699256788431534935372324330288368561086652938536923028194261437613485607074399698988010670662482610407884189551090344921259915300551507589493315751746899815232526399261199235017082797646641339260277150447794770692878322301691382633496735759687451985427955182400410881524409867668257198597930250592261864814845895629768469958603585295591180303742231949321827939430793108586599192316624742104549134693708919271343076552698935870904414445711034764019949976396629014504269347361914224891274469148437055785682418569470416483103071116071666087518673894916179564584692761901782179558578038865705981938973743652253819876318917497287513382209551982953955221343860415357244680821393493512780132639698249785533928306352486968200226832502083176638012700025370732575339294795119798542461597385119835357452578121126017534818014635290846823110551647191130500513205632607935760603467849897012121072616555753651198048208775854314506079211154569454065225990873378089779626077185004162439159772849307980518083940775793931476869143117093015849899749271531838474282987352330764266772513367854022214132606357632942876377335187489634124996844442980074528255007716526060704558122805452263892298843967986355006253736819061892850636559418941234381447914155591346360349043960876360884295955406068365706696069102038483865678604443688875463922044694991941816988261369867645087141975635617968024206682378778049449501996046282543373008588172439832996461186604106590476603860160298811213681027585136337531315103855401697042897250474796443180594499107448051913506075499733638253534880407522850384506451773669575296820266726106400980183271455985981284338543873270936637460977260979187389008057642096069606954242433857639315707723400392396862238325448295432785796600196747524155958756248301222367654434573383396090218160825686025722255686339869930267143422810404187350321384046216926068271713598929182449567956137711905499816378877861460626118914034647828420502135615996310144943312956518648978659827848225398632573703560926638613092791733295414463092956412695499007525480491076326202269632891148671846676584910463794942765182692286274399979737121736544961586055523001294310311035555680397917125626021068963994886058453796720252592536553639642831613743938236804395481697092150703072857102065159941138656236691294998700685340586530284843018459106178875272631024778872506921615590414575877486845258869622265832260479822159496656671671877681730741298337276183593526058083490532957244666788796997717541846469090896553402165430519579308453474881107758143888885108131548941731007821265604988743108820490312502042574967828549598173306041344640697025477666028999663146146051302264261718663893206713094892708557531921874276425518248669800175936340591943020405407063196556692194910867494886374764630410893510666371013253895669391457392955387799320495082966397001048005925952120308041861499532727581858824343603896993378695880123379328621335484821503753900247848771040124896483573132631723789636740076256926721757992603393444942641388342762842979750291375895920565739129357686524689898774196186312067182007518981486077815735451538696892447269524607218721362202787171688670943486676627173356373833637642127707685311825060079261300327861033875336736156247411496444528057847562155756818729783928226737571904184860593970448703975084754202988161739779758433011565295798431888812359280162809837841688302085813643459714413254474580245074912014191798490270082709475594359437990775730003793651242920307522646269554217330034401699076914983559181238078028787457332407204209005418893100839673492439679056865935196988100262930152260066115579712806478708749296507981084349133134426458594112825065701076176092117324566983896284612134533521236193711462943539877711621829110571197930956428791935800625154962563135291613670761804758315021702831878348055951715091552042564429163422753588486910304008702058701343152893214922625419896588853577504835314050893677979985130802753594045387640428762561263293704326141149149669166964294665992223118192262174413819935464708497739412033142957987208995486178720385282389417149929294671537335976734460321421256067277807049310148558244767796971359520084019748723823409792579936919898374186554297135543107065196506067023206986429492324752755459179617099943423338767797611440787035980294651057684782999632463375743662311480703733947764829366416317873400336570062743444623143937428559882781279979574782881651954803111958399458353359674960764317506891014292034944252156182696178375273750929832061895212836776415707884412395031894698994890078328642914013324379794037576966919769631827791086767465744400509669239492661779909824619546406170830329851098534508517117178708737364684664410345863212028555556488636745178348408716356745501263347621062396743736433866025562698171697798749758396704544587996786974643423799344203128926637531190734827115272676498845829480892506380815486454922088392915039149785159291138789530604856744383820332196900797898083755013159163812486995003360670475378724474484052851003914943664243305972130083482419622753731968829573246133548290140807313917645016124485083745574621591010881428220289236748121407114106358259926433238721205847428628185244395863100575932680332790791311166262361843709156535480298333951068806549353796322682440718461512330295074745023255728981536718444378228081703671413654811657473070245430024707182819968190879407594500707797207424720076072076038428364686110921503846857410917512660337975776229701804587806335306453291787509471010044052788272795268421549387202214414598157020461104346185175946339860209445589299900742536234193318642159540232202380793550405693051844313323236411257548469976212388764253950883491249889757832334757744565106098239381427835935500386890298010745164092346848698988950814503093537890259472797098752648440672693989344074259367796296615708052935509960374283698368045463843211773029885979030134542212131342188680903796701752865300403817264353296330162442609679763296168089796351171816729830883883201909326774359112640478442371491281772490253393208870908014673098063439702138837452843507496736513435709973738545078257005948413503869193374277557413548571644869715214646508251208752927725675972391106623454129848859362024142462391481643573707138246983884608626932884041032426496176443933260187021400572515521223052729996213960968196971811559968462262158174220130369994397062011631131358138377713250744475973213346603347364037227237948927386743305222136030498328638854739158136848340849843817317474503960239194733928384122818407775101759523613529031657932394846845016993411220708355164345132179094309282685057038305270817867219533132868144563266885653229008466759091654253611631277273676071720854341049295137904097788529162939299507943255851607488579082397285015422266536750036522979045029704782410525896603685174948725810030558642504416364421125923677371403545260982876390334072183561628746316755974768609379912305816098473572946432808509331579884613726829629460830057604915125612647815446203929474354490828098177315515943083074253459329549196472711401582786271416181290248516088296197572034124475757730227404768989467725054748972621392808350334182656752803958593663907626797389822602953618889879775339939170086428661526811042664489805893337320496582727644586648209032079469279747167684981520820716837522648206785916814148456171612812266704175256692105456136062246500995546126516223562728529639636315130499977587032691523898699890295170290019837292522506665620275704849380368285954478245778484952925622897829926140920523944315261648859770810813604404433944789663916359427118683924507642724502520015253706201956822263428620636637164541047763918681092416012124987316757874190142449944535440744308133193543564986951282057645684930593224302724094386977234974662877433423654776642277426811932633936895987836462606997180587445873048057020687558003507097717082854110135477677410599750585319912859276367052614673079591805088687169761353300429324460213982992181009237049086748399715670214518906222459280580611266383631057245189629246976804044590294097520377727841589266493305790655725656254368906297794177831776520527585235450872321403032337503850367777249215591324818587961687895592709766433013165288592091844130785788180403116820103450322265880440641944502541914024069761342556794317484337068378221027874645959489700375784483835739120191266302433399812173682006404432999280880230610226244427900138683621164981406372406535308299260313035517111398112601365347577677089570592988397688901966564659282217443143886651858972389229758366241839241258711877878668582111112321176545401494889434695676761328109700138849088402294639729393174468498460660681622007005330162110601487791103291418230430993720278636564244830401122282447977559294958941288919142392587473336366284077515290677465081327333431991767538012816395142936296198531993873873452427948765296204530483282616436270210553972895249922483685547044811039445457090039217735079913907490728813214016112352716114956553070844859740410064269858617835222794633450629304230451802071397632584492539820138165784082002212807520357182637679876754789124632699255540227366683978567671986444266234675021429156555496228779864162603222717723148982281469513900639097452850053509706675435039107893629731327645366411049962914933828384022775005011953485473582060208468116625570050982500158868443205773889514825498618399671874759128509698449319987539377480049959951739444605729909329304849061309550092528738641641049677978512653640428163825009177624836499800248786450854528233790907541503999506110438727442698320648973139067425328997868574901473770823918826815244721331860439144284663964546871544987382230447248199157818829112428898113512357640495149388953267282060441671182951594671598232854571243469022138753457509417763204914988245809641392695775377552391468920581451481360635040489797421436660870417361483115773626337058677727176400929405351187900175402330434901577361914302287174670938994946485448592823105185951128446042665059453643581836766230759525747769049753532387761971395083855840368533628626257539224760457584837845101128853902597707994837787359840994148104884884618194562297031904186631087404624442063760258823540325661519733200649901206162049796599439375210844280510704509760792299522060671379566932117596649419918756439054505976689878802834537919228735147682669904041614874703818925970933475256345409650553194803057990232899435109359731495720742938275811617621315844172713454642178161546463947472377939761787475916679028775104337949236650530194964429181763985671885692213819297939000233374549724865499326596583938871150633005743898990242197375446972427616122128519628429687318296180256700430813148433643081734716348124848058276656341668377282809876167530167543310952841020059099712689650864122092157059696448110540466015769703463368054381327776120945453456968191731769604012793912064756406191626008604422640682546532973245672130089578510188693725754824038817273274802015389228390059338694098092182147124329378518189895664770637298435925107836200784390553561077380112653876904448520816702484344902549821340978461138905377796797583605936574688465805533327310135740628675380406380496299852777971247242893390997315154896488295248877150747785572763098893781954745796696373509910933441852598357540195115149537968914377716832000078965296796513694109823838116185481203463887582653968008216057247982683466285788112075390432099516300092456723382129792439760034741963610776601481522762979637633469852703183487885442662597680739614021353536401993430047940104593623939924303806458170792288022561493614050827048577709711946477786801765928186389101972525084559570910486507922674507187146747084040617803312004246553998535729480147885756200015192111123301791611610805792981150660167103083377298995609621233631971911887427187688342637628245374846436009261791141374175175654052698253326051382756197720771283659304072227957295734153980485486397591219838814622745496056855069343101652979422770423468107139002780102540812861619579102905145886167913482848835719513793042126157009028715306413010604628919776547138088580906006980151086404616052821901104458508978549186273183602398041569672286395919266906757502879327619462967378754706830297131827888693944555409641221352059399822419235531492359708122776993940545570388153303626607183215236438853707893997429773767830649693776707674331535900532708291682661029248299730152474006802154060590833214158845139032988845630208691597701294803711345152993980881417818847256539305703030912276571406968518804829535849581010517488934892921120719257385129013346915793781644528114629629855197487186540493188619014117810146238502408287831628089845751686157309802050842371617931962373104474337970144310974491949653137480736884158004317333291874063008951881324965274757818226752168151344191531683839543588140661634077007943510057210179200153842996554023419354495854237723073948107659258261739501707643785669260936462233679079672043897906875442311943123118734087824261875150572382383977584360554403001006331037311304014251889739244594464810870757475236215465673159356494069115839020443970278284396087684028032217627644029421651410398922140445306144898021996941698183992336971439963022289030292646622677297868941012598752571771361311734607819355275884569251707467526828386515416047254070064177928333716665747405415528855474728166856519018090919817508544450840189978206264170000228208500803802573058336888208580223211787710168229505268069203072135948409595598826574076011014348270475058204939428794523544708788637968070402036269851580254235218820278757484819191593759246662403388198485422557841524453946831505695383209337811189995688854708810344065612559404572902833061644887690992345931529848431655878250206117279839580171263493770241518040348797801693861235037335193891025368824853393249609189114599513996824843070420704436111101485797043618285636087470598254110728335323464478043396092246335462885099760325097563845670875310123015701436079317126256193072713684071757965534851547363686310324506142322332665617410867738192945920229894762371994646883239289772351876164952491169392822408034452567878385663164138710468312555011773768664975654105688319116329704819320848447636880518757524137580762266317128722695453177527024586083976658774274620881238971974880341385251367788034341456043796009815718615095934107394172865355852307108413279967362797297247146016257013837015510631329667897460754808557536506329117106050188313619195013178621652769496902561312166229480879745846490186095542435490548826300931370914274487977346213580444615158963999473863785574787450372950787967003097528468868071426190753733251939582324961111251692581430172662752912296782164331824332463900369898181630048506001199552856914777239594229516558644841978733805119998684760509206237566085423782698526030103248019982506436294144152139851600408812543965225594762356173337535520876603009361149674869180363650454863305861601206560599370941316629451036282830423520118985745595153233318435990071840773166842425521122154067982657031283017230822568250795708601058278147617417380074783257156576946715297048637109549334261304642411540728557137398831093493270295168369418939159209063867673413922534223102870666739798257767205738220205294857870343812597697454678906826178426076583756511236322862050703940059520093881314520543465013479765737520052807684993061431649961665752387780788970549078642619491155038498672463120161517052612053310194234392842933869429205633592172832066941651907455855816946781623970087463314685490778029466935064484201217828238712362480042715233705402987411422385730890426465486155273572114268181796643069414780618079529693590681492432606938563098222427117132519215707484299041055782220605161546164479222245150865740300873147822086894720016942702003138917957420033307217362608650013888670168736151531745467812681317484954140597704463932536536963254641291819560507667844255909667029837274018343629155649567032951824035349620660149825993030094628245452296022601517340648715843177196183290862411265203495812170516792054677976696841962924684818938275067130674400610535202592284571175009827707021987026336954129541598111359092737843445705487813211697082388390661886973648468876581298273739871365034384206091064326567563655920580759108689188229548658402340887556835419370424299866553134081940278916350611815290842778211349987715112653881300665669565723032100005605049999695515993400654286522668655689777303722227024841061956335326827682087673450943377887034958227800414455628367531837623078615081962393956923904372167097517540709580370401963345842399815190690150679819285154492347229558070879877152048505650506829899140224737515024178876991330845606839931946202726883788878573353989424007049876831960288912837695826705357857367749642478816918298398744175062529127404129043360350093051484437029558628299385585426861510109745612802778867834143407298207358457292907787845422058507874464633251398758414631407951809156809342743029437254058314955122913561331769586099009670941135223981577042762745747019112344388370050162581108572073460190560274472088908589479997044586202987836878808522860477035790433811546404754550809798987787225079615495264721887814494307094953337815975424681225194596283089765395032688392135324930880277253110167178154143691403645869754814308495199826002297454223401032672274677741007285222700585953780459758477962608757468494959623852630266777942604353350293928649228826785038260732956823046630659622531972481426642593922504424537580031767714316888732875146353135061944641457619889537604080131224770097143740613268856499402285440505204339308849135886755921388465415258021580629608610284643925200634582693777190017374307087099824744561481313456589906372463485161325828804593351001558103148752717241209997970786444784760040529284361738961650428402064855573852664999349986056373838934336211281559344152936664351633829327615144912382636062649527216378835905189847467027899359459944875130681419023871878970850597674942984839162145205874170270899401991420312029004378036804322549250114212205880711227314131251783503509609456438820891105697053270121188662827360185261095335842221068046641668306818762877876235924833024868603610826321925756522184691322763908687616829415420600478992236754531986224202822406170114578193969640774693957721807207963945755016034816076645133403852091066512691991248082537118411967390917400228781527255143890543023422484628746924621849490727074812412414793767352407527074838566243860309642418316845902344008099188143568263090806096386209911041401585818350745351144375033909447849123019388001872955386526702849618267258588180324495311681542078156701259547969178814315001463051745224871480214681681556932810895672540910280990796181928736864581850803696393421572251665458251079911425733051916492555371878843129227877097741503762251245196870649142080270126002916232482499105165035867101969713586170402421360734342256572848397838677977446725834338071601125448304806418054286720931583351155010351500683743578336745115956576961900395431837531094835724461774486366408541581139537893811325322919792650159891693178150952730167209979887238418829946191526087063438786702772057639801112916334951663782715831979979218829733815398052948802246570012638365127828210277232696724848877823675662230484006463411288053487601337648261100285803198815306566675932727963067620159471625000465875610886877404196855619748479782511985522257319619752946266226429495461463167123898747998275297568968253899734044019057943744222349821027521227261735756532182528635435439082629763122836976584431083688284170659002023119781918749548347032211275688376743308055149313778599856196351617372750875015178922696419767769843716368558128128282635228293938192190389916740774861752273703749717479464410414293767329901260337857577932485886160474024398819663621782922310303188590215173990264811989222758301944176326414775259388405702643860593556033076499620967240415851411590722277591656044515804258968521505330070003603919842730992247521802955375244008689353129680005162518908499223559484240106949980675247059405269778126133593043803139455407378353934665670057987839847385587012290914668483045875971566125227261787303389312088522862238899993393882463850180236524408185067278607225353900333140247328076517033859820414988253594739956930456260795010175048926179226883709506623339052734916183098810564445346140801664798251156716744141209801399909233570354559736972147410507807919548052453074407034750957836966942026164449726921109142612611565948688920656220745291722575585661428875544448053879498849773697190273185062992360808826976386288469067041753146759121136412673807418437683247992561028737312969874100785470765933551238432235951208458432222114482861262241650525767020079746554498106109120521735127050680122652982143448225240366441080204449594928755809904774641436515084066220658375173847477999218789097443684789938438930542150624550500080136101379590066784096486672667706894423714927402750839781144507807415516237466964580946196523230893668294956810606513372924747684226669903065579442808835875576167858624281411972523673779273963110797245611778598914671718221366289108309359654918360966038202624224937680387078903378635855465088622066697089401712597881534562260545543994744319003074439927019103438512377425235221469932988338119908298442072003912154757481957457180642310390345471978566655429554935415138654412734134033461680552406490781636999781933697049966681046147494004028823228196632502870597334352170416160377390941517844785752251049691233653735164994406945271261301221566778976041219204550656372760728255188976136731549949950198515086179841085709294658984420257151845430473555275946701810079009241383959310814864675346369489898443270729461271966860126866125440875507439972535855453823240406837929892189281796769881363676820899587848610842791640224532889603823003057415620283461728813841943294803779743109652052490618235732799032117686956914502289502882188151255397889024069775738231961094683086631719103772056276764467682535367927916380583829027582502426301032051470020406961955378317886207873591399989229281676657071142027119662949387863363435527760956953409765343428810477554768177404890652508174940704445704326607488211445421517584065964157624876537120119953937657950132040154413438590514474426032281685378339831790714845789092158811764961396837388335325771953133067720899857324897467505439592576779866466187405332757667101181068951062327102925909138165815441718559028937865839148956670786632748543682359496620805644919191681927366692171109396563031264034119794350532558579768321106551866778212578052293159554411620495254217923714383292273570698426723461068346914561174676579188116614248266451356429257839015483085856459825677985268324834063408849823961045400214033244515654700466789154683544959882296777433986912921210716980234761655383423216140992364399746742912168020142659564039412583620103714097119018236540798436886974645379205927273166237471465395168414535297352946908638074592880070760851388817704391851855010110375879307150749287612305487211381926751725896940741783675940694143975088229490568875038359359505350666515154063777204788566185893039825753519685885282150635697629722711122435889508186286313771859676730407865443282350289653750730579130574235266960376058994594218526496201442495770814243698890274558950911822585021498389030190989893557795625375033164403520994101211144685128329252464982021588144007055529154460680424911571743659338493428077143021754826554939571067772837756290554841701753654119353716223307029553517521981061867675183407286824636087063175820066398645376135942252926810563709625756555379076441348952944920367669805539135108253981463224529966905172191192551500140271788202074922969920890163556095980777755274560107384522740541829699418166179535442421208093134526115905280825621202877451593708106629085838163483023736694912296273516378915933498950309178726974829362100956632678873767044482529579002892571033923782113374720128831557806911236252680907969056425741790246813198045831663738806131593913227464767247721026658386086334522840922920071589866407870935812008107075571921929997853044880628625997847550586250746361094691899319934474927835405780868752561086024477951975311956179638314464646885221299971913908559758635663789625498867206028456464675714327584910736114694231774653838975792354619847577336681688631820436052809885099056847730362410012084523154586649230751410066330200856946178807279007429105610757434225220311304303823404858339516388325298828583167956798059761397416277191182569699648898241953025786266533909575185649424661446637681113126999455729281274160657305817612492654462365906750637670485170177082458590212436925582016551739737446265837230813756434966492582744006370237249287428554564834120761651160755422540884611605364258446364886853804849700011786992597088204599961511961946069383510978979432823417019144148468229231907707039730680134228819888017715994081995091518924854636261231637713009917334246771917883480379649052526969899336382145054250621472045099057752716294082685408274894177880701228257873044536060138215390727534735892316550723690591775812722470607849233688966998193129976277579718398887627017796993039702390484883782244891826117304245241011824030080728684917667357194108439604764668276310128462194833302114457864039914143819625176038580503839898488611751716262242629417627448534912466998943494071093548334039442194519748550570112163517146743270776540024179133266855498043716544527639308855230801580141633111002787152799408369275873958248114139866346490544263074534550569529502626677467966026809149155278378244266388024693668599666101917762293809338031631865145656547770263587763096706362455639641196586351402061097995340250074234120941120872631676009259040921237085336344017952825686101516092282879363617268601347260607197798847768629382866852928770573756495989537968962130520435917212702124484035157289377214952904422125084572734435695786649620139114328107733763192932672959740416700559255311748373722203391800621077784858428204153319205500448587768778661853883080563423419747368625907439603711592459018533914010602838534477241014700443476893505847603048886252256260483908918066386006981306268472682318699543763098948330875437878559846366872888380524066705185315573295144559125948448897614789734683019576055953718930902622447077664837504840493969106149055815415054903660935574828796624258319416437599690346459969112585903866041569396588840771302674200003362332291036188682162075428667380988852273561433297068828247334581313263542217921720324003082287348926442189796208102846042041468034793943300959186782408364577807121151848423692959036498527799604973477830135609530827951491692827432479684784492668323138414489045425724774207541385020513129397738879999716426799972935462299228490850678413492211623001880538824585993222750876272315735198299013485556435397410847753540063946949083487792485585891193081675141549896421766686246987294991675656944418066266619173178019891740615427501943822861081495336244659767122958638536591790747929694660767908089530174851090217579628626795810138647426544287290210337716127726400886499794725256926299806173650781505085249118438135210574537992698770812166339661241779049543021057086473133464046182093428791212812726248663845093813828420795308077801231049605341214750103380450029177249234874719789884484115677290691033951128515229826219190023546438696752257549246569764882899702174759147841266561008856701154938065535629709555164325606149897441114643199477525317613346498620618286755679617754090359954099928574968448996999336467379598491020167621402243128346666966052595915858691403617886033181540058139497423240971029670844927035774054862534552814221647826973742105097641363172276843290052174133579021354602297951715101142598101397214873275344969184665397889081522149944322262796660141664259015819175453755181524760562599862022957117681396881754746005383163639275107787636550964149419653017693604375657516353687891431436193826995063686140812140365241258684144092771685441935696607990619010109095777398541130371935794361894258075493003945234270326917966514290114619193121599858348184705713042743728487073010327326977518165112620372745796914876933425930792771630851014137608748250936245302111181923258487792608924954117816018189566829176755056863646641511840867759171140692038463536645862015253829383882426227891758252306241966646305474233141669314671216740466575606910185858878742895242199409586517151163647422562815100542755164379789648424934577575833804835702185362496451165626243123721378063573159869400668093113609022279265559783815392917068030917595466245980244849581636226273862708332590718901734582429628623628119004025193278908457072221830643901391039876450386254096007248176395470033739758307928847312246593209943048863376150261235452563811831325491991886855314300255326018388007936035361071255231013252060235328354557414596789676606392125671024368218202163421964463470786538799659788511002532103120120171844114342533190262232172389368096032153531678893201122425855792321260290176970979148305010278156216743431354533798024608836560480674370128497281313932110889767369990127072206297991944635169330451652008255343084496826493675721539168157293182017688052706311759763859963131061735676328403352844988942148951372275890398785012377307982592762906329139778273386010216480788578893506566578197491364001336887728215537803456838513951978376981155362173920841009894536763055828376387235574829571101306854474214107624400412169428448543657424630400221508538552277414791421989406240371847357177431113522512063948626024021666368112430106944833098791272718081096937300025877408477984182084319915606843355098875310542686059184306937760210687946533659951269776815013780153025185656897825854802145324709347535153960453121810078856123043479354624526100679193871249929225507048111970375482962039610521068684074333302361833949769694066387569002245428687602171392392836520506817558592560432471612828475939965308459562097647100934584372557563127516362316146001320946421190676399992509730033954001604640254747842168390229606050289842320956592952768968164739856058433770073679129195079141761912212983904440845745692617703404123598656458373432788535184656658848376915009167787093499904371101154326943003466538285190148358234463143975603420959042318051782991664444345522225168871981180813035260975097842689582642872067093450646514054733750704233358792131824155390217080445103500407798655696799623571344995032806314238604206700813589108749322089238873040339705020599838970737822894809513961026940050328918584887078110067150650682012109776403288154233738218155886782606187745377428326058431909292156979321970114223874785108759710829197154658078189481801578837743081427062812896611221657004290815845358886427260631714167795692429341454799940541386156667784241711174539221494075912323987069235530454324586798383605154004977122132761206273199689778019509721085916305873998970879692827884460975636182283638469733257304221291642873470874047991801894101683825197447964999203095003469822894978120938883016097316638544290836980545585064607269240317566930666718926512335700898271141255723769791223823216997714764206172180144973552096458669739412768886400055447138857423579450512841442827455798921280014597307225372705892315318505586138965306659310258458903236404670324769204339970591321957088192049897866057189432183484930525234419260957820794676744318841005943695404243185145970387481076084453007982444814882459765618133305334394368206999564638520766826128208645612150190966518865732447024593561995619686927570131402548953055870681224242478250575480617465297711855074505296091435834978206140428489898054304667421363954799792977828572698862714567611309498221970127287004227398776622814336093222425443650932968674117177507809961512755143004269453485067278007418138938485665399901733600877244053281162900264657429575485261391605934377621936304548526287791307779207891547621235769714253840537319627765409484567409527503038757965018805510990695536706561684916992520298756177969221742994485133897058832299398293770969297013120076804073632557228244460418881936885824850629687046538465842521070313675604169981340080122593954597856991639963682092461939039310128491295633837140169495940330451251878708753597669035692158842436350415520591687452377130193792135243251621087302020218445739688768710552966696537821178074993167395241722599749040707884260567557053911932291121806388627255978928665876526793269547566915620905558641674961870727444717627073639026778479112251638263179031632399744349015632850947970925309280080286517123815291887733312730671885519414160591865353036094209821928986162767241468837092734347408692105535176880364139451380133865966387907344565478161248003641139544903509651030551454713310349755403117146731371571146803149940038090995165039916851532765539546134116172733866096564303598590011020837309295920264942670976435119141514846536785212648419747351584328457560351467441341482317492597744429382360240249648636766068219201730535364481419318744279080140725226444428002916500950601559281713435337488815881104672058535951162243469987516627817419948621967589268842737191426754989595208620626766325861519422348369303204268513691921769850703670323446078929582946090432082663009583110515512506447283611492372373565168426410457513007063554362147896734903034333356610434383390210382686297451587064852515136597493397166531606911782351088191412324587364581052877452940457564967215454619922437823778164862852085065354433681764020093036704779772906841115506045362463711688404885479358613511913860796483429590865039918859546741615310850092596923326245890659935268654098308963100458671822271092552307327608555828079025728386654698949631784216717876703991375652419362422194417503868975220290693958587484614446689972086332827208442289189566948934390116394573992557461259624476298372372358467644805339568028820508601790853418637148294242696046927570508828629729444930258092465777046660983657431808026939220736666855258464224102212649402067413189490538252241386874922866208465972746521458832190954640057557728571003104932897889878985424835535356791189282802291193149876510175655906510444921506013194743415663110102392320281301643091066466054364864274038863653573962550253333122880409219206358085411415651991703793287702807268219506120917362521155533833612646740013300536618350790646964434058812378397083889846768006200705078132677838987924699437366274660840510961558529575419559422821071597924594605503569774329600494669670146010346559165918522717899316383358356274980650441255604323563236844445256121221140990643710501617106770351352067955048450458597723036207666356000140396565707021582055468146992485023236171381518570943068545241887774045692316334179936084583374756851357647353993708890281392142209185928056207305424371447830065248884263928874518460703900397094710004871498262976159207020079214784799646828771519362141241123990681037194474072987313312530690309405573477216163102609435761625561975589599043237911144173650927387116070696849987701573808442183722018793116425437089363447110826078093756933248489041756378517073067224879381268926621760280315069729420592115170828003245974921577913979672677869194882680655203030006015369431267931933318580705408721175300377049344339191730176486689906754297226299270829442960301104458425075847710864759079269129620629833925924054388159990656164798089413084421579859875595775802447199393804258003190457370638447796172588036361216662982146105768672953918406492160993507175075733011913455033137242482102706854760886307825184115829579752752151640689727867792693188353021860868489735578163160087926901307984283883969605993635441563078963942493376924805423891190845802308952938449967096642283206144429960193169772128272752055309096032939861299064203481470372712048138969402159525454398144727432422791194508037903875881106280442001988064647151877589016947457758296053856727649076505894431513077025176319975364519209165465188687977207408602091913707115501365028744544933648850819338078854052903290763604878990502845960606027119784430754098825682294536945719704293810860896725877542365263565671248236131040166928136036255343185050270249415003011626219331683473932109535839699037233711514691160083048796367997400892493876480405565623274521496485686946624295741188301339409920263610641273135973519335275515539012353193878103619885591765002249301030797964698625674692882492395243418763571838211420556058465759182978931759142402403661241985999609492597350457539777953506668457329720921330453151821221421893737296715969127318485522346226981878367813720260671494750093951217574501599231473655334313109146347832365356864309030483061947686181331860124446079264818574752113735680277585161885803999238905016706929619586645113664770331455542214048294282894829307427246770307523000471787163514544196558496489024607846620487547588393149505363315296872069674932703679689855442295453188985303292227985466496163067179618050445912983750081913669311604866015969061303759691521915139599655594427159149625010932241832739746181269179112534976025474578415784644804116064453958564392108290502238691493084714403601805632638819456077592287610773257050862231076208166487110858857081431687795080092805575317811793037508437758926750680162721102833448661691891317860986070583107360274818951940484414670469002370020624095814126240843491207970522370565470325832132334226266461931011233595851032871287503674728549918540306175048476695194738335131638742431132716427243070293091140180331697699062431511651071754024331190348654816904456271594965419954810773957521946621791874516097205263201508483077888989646638966826292373331425958856831371697268157666741806535193623726513375392404483394795466932790392540834586051460003525203713612634824856528679784726307610842992785773786739467461270937521219963861859366290815541416104622116566302737068906896945272503341560542686887055054630386911722822175692505981607138569185512361444745316186244048824460815454582834610570089015150593752226315790370627588023910106845068177642044670292287941820688575516780192095993778524937321095650996287636482298649360550877141525249266362675584863587582908516195923500798977034279951665906192233624024418641164129237452404257947138200870071827269912614420812412531533156353934638807225928779236185514644947909624254987898812034333423158527190698674631493676414279749037550582810827798081071754691894555785593670964293576377429890543471313949268401182777770409690694678659145646274351514134461300783566801935641603959428931434691636297977607959018378570097507190539162376900877930929447226504660679976862585047953417902903571335248337665196895895958228007826177562482506839869064501329053404853649802356429184245537450905293155427667684316830581746337336704567658133013418418682027626814825045553940566718911904525745731406411220959128393891110807459812921753704381798430811937772763569348147465702485084565104981610178465932664672085433079343009676986879668858546464937288551019688314467105432201257607552068739463655255659789595187145753215422489260859024425646319976467569945940051665689719627700313502460095631575547748202129145654080595154623375469469581401374911638573726234902936937057233473215515502554073272458232309487831371402561283475634704288555427390895272392872366310280022510800171698660285236533484183734135051763384348558404073512156127290938412597016019785134947393941959305609395010419415018865615519550329106727551658950185573310650245807511832479099982232170627098213094033641672892295451553512926251666632660452523675573700283091090492917542994496386268683593958945346835717207067629079861151700735504632044575008222579270120473253745440781598550197161418546155485570459106128208581247988063685893908661614569747006310176501767639905139352688739183727295743416506631577647987435071161739518224473195828658221000144340979809438297567120362462750648507959577922130054691034431175703309803640608751118337736118592931203638843708100443478580053743932612972592131727165617497519271607407380711004033793675074889369390331225518832269967030187532364945116583121876518059058985564047322067397483874529960280897518383014900916975473476769421293968242033008544870711894650523532760625651241687305441412300772908186582618970361310494421335020965228004170232995989762123918845498938431623734932160474027405414236574153686716981265845196896675914397288328664945720777156787335253857609410558645185031952185612751925770841872510469401103563818665906627455261497530138267341621547413085316561568196065568120183410190869562990068335457094923788873770816367305685044690308080991555432991828174247032705809189472692162728898431440478967415774949682766291781276695752162279444771605062232183305754367841113212955793710589739180416937790165239883269907167579327509560804034823380184219322142766500843502489529289809233731671546564917937458404748898040224685821000718505226523954890838142516302337896406298877918191434679417986037289941205417739282469645584400297362305216722088972117151923190834486293616365368815962498418947687667983331351939137372455457216073648600712116334844212167058981141419558229438847454840021126435396037980047811776757819695534332614794973178207937191209173275229754868458160074425432196519504784282322921610764197666388106551533380525866216832144507253909596076348258098135101737513113908221070463414237225817521586384072266513965975426512515548294473104434936009249157732117635385318848890560981889981025358476551462487594875223728778395727132165193171748852904478002929883758576691094258327778412002943905534506389811153747207030860276032921666675795111958640319715718039920258191508757395585511618866215940686198228176248835642504131633423459915079678638389764245687185467810335551837531440831239936360031354530265396234733117255962735574169919371117593306114809360350400660873067656182232252248714078150534174534358845947853676483527960601081463756529503502865097049187799982856174565213378119706281810125322389759026093805176948145410218831686055806146223477286057896799467813432502870152083908381621291804888577448809450616512644591380838600096305574525931114229265818319771248609646518919716150417885089333314165871497209130238635093785764809703994695248183819936867047530031822852709262971073301718174497718921313466092220941256489058818723989821547100067751827422963688831831954654786485100382065337000500957405706724295400776188207362218667826163778378490299231968036691420036420069984031461390395077479060142380067468771691900898287821107146751757793423602556174667167589678943158804570281740880561669311701128834898540047631411825253829471139533322697108969730618607022594637612336732005307192842342758940883945991522190240356501232159977469483658720789462507514571379205761094983114726559813700467164177394896518360400428520701728075022178534370661441886339186969457207032880342966413663817441099027825593815156404859423474378008811910883629619770853971981143491702975707063718432010762549961497842119789432854644560501870116202100791783545088213199469061693668205306071111552326276531538269984020011923333742202842325514795674210512823341386461223562016162209429888633669012931195706956331041636252750167514217747502073512012814773070004398285487544251447928207000984345831646346508812276927277444892868362138821214196864094465569118618146713714657700562243134166170164874807448825773888634509324451257216577044935832377568633975579028171054970657720524856096204326424311326663578032352653668508855872482735928543056263630633682455616232543305554358099569717222321624464943600567280382397806570161558237250119743958143644452531738661443472828578973066866034444628593387950096896612101875575807685659175252170453460463880427609626406710634474385643375834553803173617422112974535685388573607143881727456907931819265781414230938160579223053116244110897573078730458784988616322624826445308156685404212939044908551322779947883659955782005202584373719396127007996494599761967441683164364377429051668518208168992357153796234720645952017916965544232987533047019946955544682352981982975925993311678379467062409078463612758959167485599464258840942301841975484691486540774079874192492608535801885273844903199661698575127807344283470880091881059600166639099798501983550923779742320394942749946390115918934392340784380056379832104440114460451155993199375240684283877558757340681458396272071243295411142145439280754285796607703463160820540635188907464263915482417328358693865800112916754878779291869747263568340906014139548182702910288615203158309619187047804828279021750943150985144973907074196071047004013591720361689325916017221740132131741300658914501895561455059716340488367578769500171358358861734247969895621693429327769339786768552288247826822049864473634658659324744614720786961506876109799878384752375067672419852134064144328257792956516744249485193973568714074621320845100046220960943122585528152437341520921430510312110521482199904457814270839018139660825868729171186046366775860355799659928413399028155823963471822721303998377936907937439373203873650387021047811468122088962126071155201162688475540456860376198521430008446423337657699985025762393109951784310241513388675456150730534364866802923147140130525773214372641598685488411845828296539191765753090912652685979139023399339982539463318899499799537666150764963537041424594452466582326416598631468374433274949047573985014070582142892102521327817266236706013177807642412454179759915570829481245770416635851417158203305101756268097008978225176326063941697475328191057542799472106395887104852011556808658534136666876005606707967617313785508519484800143515412939277501531309860182721362441674837056835711306332141874800929471052777723039032946131041208677398654646904224648941978557368956697083209854682911416907155836110027485530752144587217934926380168028423539683381466217315443535715196868670203986888217465594360122649723384426979147413973518017660762790828192429032358098374061736129398455730093727001562874238638794000188408207075772964156169913407184509334534719238185078713115747859935543093652499632340199474197347072710074754157433626203076527175533589340007319397311640687987614749528570173032347352139489638862061926267902377583051317795765133222178058171790048656794860806870284083430899081991962131791293428054722642005527754259136339605533193674119746087054629165027094537612415683249507278698219141791494964975699606742756336823562204201640053301047250385080211121631690629369155150115392979259114816384882684087250321718991339835379740587587967315443150991491477170655167406013975633076399292513321499779350818111162891006838242048406777371046547997332818139392367758135814035115452075906316502906527691684231074038167105324678119274189289120316628383827290004520609546767347654606099045230634500334120115812347459450297425723358284204035139660837964751460066770966858450664136195438639688231359372100948148927205929127870751212506214255086256352513517674783762498935804403690434507056527456338333979886029337180069547479693975400217985421141183521848913706497150760541939798713434733640080049893927756756587172771630796493705474874678808626927079716577915010140118525324390687027878156846481357076782011676842232528835980331047520951667124858043361275675276788933412327133637769294078824702584661882909009280045964823219037450667745398302686858382341271811672997082246220863348577925672092258577082952985742955187507316163060213967424011782295284741734232565486638044592007500759416028260825389648636456092008513501924368319253267805947260211347683352020595127896638207796976020164744420378840661414110434999124515810677834537415165783303996775157928237313700519920488143189696466672503553971430942595427118222371667468294802130168828287416790299912526043124977975508794963708647433728154417111475359581642734841923525478984227268052937563289611953474569240689327774005618546031616986941278113352034710069087295387794891570913449145433250428449692911083478936732242424630197092555062168887678857874203608576672491309907179071762913113565048639945402184724242309237488540888113360202796907633996570914657281488457267612677424366502192375185797641579382390059079962536553068707550210850273976632598061029191819665636964509118897894517369336634863653463713355267946543588117173167225791966765150890801378459427354534194806474281552189972705801864949932759887725264526234064726677601339578407517375766358036633151534855269640234165131538956345219536056922664057730301775681668050916144556809658799496760284129829971485325433231334278251060063989127826622927098196759412112584962598086113072051549976503647095794408377091089787483332695268402731657633492593761526234636927866488398074310098261500405735854577557894556380065450527333066032019060504021428519757296558008342381236616636024372635955684496398153069309761314622367508208262826810017218366494109706513803858960614343824908316828661538040177025674493357307277243918141792435474309383913983426950514515185619375677591781883766460332631990979419989596045465304492302819773960882890655191627997940612204508969855239758569202188988062822330606903397644991594793866463089293396404868854916511503147112630448089971750971957543911673628369705727441477965164749907675687268164690156724015253642759139703726493155256015272053971104676788046178036246252369412891654186129258304963387862279256680130321923439082049584876895264353102230947477785406019273241413338361550076604959012389086037842493786297542019894687997136111695189658913131957100970614272068512938155763158511787017356490233742415849111613724583945463746924590389786188739545538776852843164444080247118208191298858552781006105587903760692108360033433192071271425370686236896141736164306638047434532474926809717131939943069863715960889479171270562235075392771200265805922730206480618435587138076723307640799290468439806636948431139003484561725840596519760175366261648823442345115212169773754643558856146011091955832899928503509959996334344026135541324586384028649406608890490481036597389099395144574679452971756650616026523251925384255178562527704537111043505103067905929426451757272568882139809346569469292675747179794823191102030412937829029005308688596726251819995812858482104578467010905013621781414607002145980703980595001739676637694363772613995245918223111930606591426372628432506423561437130891077645508010484796031847894710935334747270992689694364659400279548953373562900335288323112749857366224568135445362921781756103425415745968161854338559679691974769333433530842079164847131710712600928587922658826077761738211743149750201210076325115037989731423963068334518526343457020281294329352194332243703926473528784417432295706628970956921014763080522528201853848841147709902376828751234967645562473949308389227880115391450029589375257870059058075660031447003409091550023796297074066964455107787878741878398220986656770954632212072562974760986602383067067323539886161471534591666018013928740087334981089788083721178506641344849052047591033355720956371250733935667221226531157626190406922909632026077241294992248343614514359247290596897073377905172781535496377609459988350716555184468213905412689285102570417927503422337890794890485791407245932995410307918362807310814011292096897007733185965539508732394030284929427008181576234756212547729505833350832365135577638710307123579432691386637676717187713326728196004196939001424367864702564535456663018519561046824620068853255824652983714304575697099567214292443187926091824117991139788312955475937576232143405680940902796707769673474500257950774849781869705787740248672147344752824441563801146375272512441260902201054795774314670156518089084049560309680627589355000066902451995280595699627331997059589173012569096166513022856878472681230854123207559445497623236556655609005376003927697471742207607202443736096834284550006890186674519617437239654758340781626263195587355153674170940586949301246238289303475970406841419351001296739404572000152819674543864173115510407198984181738938005871462453094017785906790809762661727346252066951110910690355931689582548988371134146555437004942203089941638345838147794729400944445682977752570054902848896767087756198038195630890174013541376051983480227576819683180904508479412295577930491638291167007970946890518887368869061966177207761970657524683512075507299203216794133078201413685976984727452689081097974561067037675480387986391797025618892448831484939907497741985973234453050581126047297206029222124776750999809901217225490488753362656541003366916819517543123857235626478017365986748632517616555725455147591708716029870486089294533923200892156581490524304348374138229502200303234923818745172856924260340847809349054765022317961734608753701354346843373586419936661148219121857093896475123333326913348215205708757242037876201166626696760926329734365313105089161670610283754356513607114867571597663639068292446384927845470534917403337919329866513643682364053861996521549296199673223142183710080927373338699236380682489265340981246615472227989618963020733736732249584632063553350707673751093218142544615996040862262938887474777075036584725817403968673674089820731438666247238411234023505153130581654448360230238609914882188449210315634338630161301259776746712834993999904002371483287831127681995651937111770316555212432992011912744595023910264642926077445157044028467128980934090919941756400411696416631750453605635735260887381496643682584362831902739333464198423216455340658712261950497617283812491620198026491911657390516988749108790048684328504589276956926300816360808026398688482230295429344224574955797468606951426241231180107127028231838837033154318234086861952295763056482858601795402671211077498321837746686146825596549757874461677086488136051959775367131975834072104942013395512193054957231004650696843505868614575568013822287932336645646233550063167337446903041699287660281865111785726869339472909106997983831425662878324200367454997724174952378538143256307605299144824333898008485949042459791251458690860960764052542119658999850081417299023188777781632274915477396730421379121228073682879957622324883597950442804196840168351065154080907413048613820022968578004861547898901406429990094687713197984112013494233977643612887537047387733821632777771578234642733398931562692433063611479126493309341125005481875924433420496376427379984519962595008863049137723453002430962044968749921395460014769671308994402376647082904591122428757098498223916056256954000740350258844216452139895316515607258935945100650496601356394748729862949623350615865937130533869017621915421665569487951410624166822871037258518909050600596304844377271662351623000476907047080523618919203250147059962650010739154837276822178855764164949700176580201003897286024977716861740910431040131859411741001602732330832041405833036933700174407270579459806607971628836890349895969469637320378289201662492682250584380809438670451490658450100177825555913770862820731035602053700219280485188587577451686432311566087090995275773586905505959771671488577473285266273431382785376911347143730522472122905040885626542276278509932183494523874625226050531616385742592381372123462976847950138970156886242966280363239545000325187559725976874016130882898546376548078103465025611672082543258085561188844603044067728577412477502124111328861917823138548215661888783829944816409131162335425525729060065858949785907467858649198145739178212934935430283491715229671158608935980005715242975547075730992252338324234830987667470096239639178645223669419496101464531028878953754218843307618995771046770380428217856122011767844988552756390302920070965298797834936227943233670740570500185901521466176393682029981860731340229045893516088955126421864776308112021386411982964244367940985499872191939488262349221414983365525259629493559242926710537478229433891237242576741484081101835399425929386948086950875510366051573930611419879928102985110775030480486207428094524922160798431244046142177181843274097602665985121801306995992335595961201327468734460571394906055163074999775764581267659783444742365413922032517575853550775661319507742849319727884258304561712090991304603999845540960099054682982370944962412783256096349467869222677398527636430063550763694392166154114067144304237867488143504465642492880157075095958812618166222323496871575555099750167412165247728076023437592485389604197708733065802570565433180108424136163179946211738179162215293080706430612779746119572523669583458918514924332861907544870076735686622763891177479472603740772052314722405012181937387988196539739314432596472226960910179084131932144520962896088437271691966201977496367204377852886066235867200418268598384482057391702693583018318225352306230504548017215484639496932393845421287125653976877824572353515140262068905510937299580341933540761201402721662784446033632463846144779886993852459689056673238317772689145840735606592422933648249139390489264681901217074450378960796567062549845875011948064379569340548489606006058429496585439466830198456148813745388137558543899344301955008319978129287072185553369333172597576650427612621828093877755837155816694330979255389061565806113884989237937101229375996093661577089749192478463215750517544768497007915019749749938509977913377967497310376598376723130476648708393440246295485496496857582497749697646925948754736145754171019545438292529881465639472834092083369057996052402625241862821272000402152086904555671592098251682216307976123110323480853247316959842518622612603881863217622069862313721028977464374108099827300108428065380709941887227674420395987622217024495873487719258434547971331840104377232794229727899516380933138424455843841136946271189184325180322852631213727214775544097106718043004501848486475000536939023563495843030423052754409337126257193576304050946119164947829491237977199010893385407179800009887074440494236999220072913334945239704530224989150173937054111175939872887663559277510750723538838613764220445189864205686358052123045893553420167569891011550072403871901366892381684894808379654512907901552373263899484783825439245797194234630160390673350277212415477888708808366472425930979494937022987521883426299492670260213576933970493110681971491701029546019132004245666435589223985151187864406004680959670198126156310075679057293842559144281871262599244375913668765249011442166183438461323204981283562028028959525890172647392164260550752364415415723161090307923125496662438053632035285276769819307062357589023563730794926605892553284580073220721577097042094525441171268606388957875435474402580046346229401754573490179881779787355850679703250484158087390985918519181172698287019960950439458925960014625353730356615645540196503713751726883600228531721065008917439843751347802562338751629259215918852404841416707940964752514885543608209203304478663125696457220599678750494449908861515617472886117464256193184531570654669972515546381088139750429881053693846816234233635219170530878991483373106801196048666405714799752861118280752602911602380827613802621751036695200767965055547551618173097550122840522693474991425140827148725976165669935436677483705552167607739771094966632219783205141959169656462941093006510251758887672339829264802610180933466765567418777692191990055028722029552456432842647626189625564505206472077303332925502423419267837622892929979088488004506671380627841578612327670500677957350231040434254641627157674047206339463522481901341249045869699325239804980369805408951290149915775360489537606048688021688082747141603029762854898906846135613190540025182082428242447748684915877872935490023212279145492772548122929030458946339047584929778707726360473956156340558588114107429371314512390338957221697963924086367575707077982417016985385545612821931426356671825121554011494192293972943048139365088639397982149852009986648345821705676090190221118278381737527324605031790799531837936654147124297336466373434200266958235671337560513507206931352302239956259623369299002418248516697954268106887686458040183952826942377056600189115482104739289867666533154045573576948472580268983653964951554230049417821250349763266541088548796907226573588526664573743179892952392182046690173842063120611870476196365420271142962237303930388799366506436907563347663909833635975216620531712007695125754281389992309512946580859251997679722432997933157293643473208641924988353619382233243369483900763960186816102102593330279159979290510199935098761567873850767745832459953351874304061885217386109516742777938152957198577216563992085015636830027273705368231209911017209751542612571074327126800225383355938519969274512500115130532550575574209575248350959816531197058912595646093225448934127824568155246642424926638337089094710561864437238593454209826397508790131397670263571727189349068392230638878639863720402154421253182766373381679142456556299226761395394060480543314400897616026049147374844349615006155224722604930083094227336469346709074171430885065941523799995598571022248679504592335947036188174088396265401358591014691469572127501977458729383665523386708986948800284755268147111211119808521009022496637976803080560959102238100060656867578262053528223155198895825055724972659875818522636662548583588137335625026083137319416785102925344521040818358591889229481986138314217788180660321243431631181381985589093935424603295770944376586889323420389040093479855377237894657452633143021691551254208046755326966989769626832754304439824053861562610338365075168105898917665880167760381369199359261327549529671253663736384788248860902634757329009713053902322459909077186237416875536696591976980301575515323521671435945922741632748358139543927306589999491149225035111273968604658416948882476342022809258832640726917079522230695824767850271010111752410351960317704930768001085762616692658585109614792276215037145618148759322603246125467027105920011029022876304958049773712097110325945810086010678412430587564929350112671602308043477343456693775997811772121832957044430860113758545514142976583632552731485357967426161650710252549894142034039878039799455471894333847069365415459133462058445244876456397838985608415496677116697994539060941911478570206349677805447421082139369598684907892893001489890960226340076532450872255434506075042580009664075383188531389788052025106582653849840812196413362444117959517487026421462630866749285069948167437608477771759138105689740289736964747114326845562726992398787460998423617330825850383256662155720198298927583112333152261098961767088019151906371170476855445563392258011680399994082153440218829900242956089136640730777716650901838352048199735509029267296882956674538072573963821472449777728726616989206227001875326468275623327437652850644636267588577254945075811603928011277831687695654465027450443277941907732968673407541358082630000895612871877615890095002629115031684919220990444425690880605813030260932224751171730965335033027498606314993638064036859021269297436984599284250678398082017932391194280108949220666560676000265736770690793967571773519002072614209627126202351256503240868419370397056887577164513671719322879255913773775181701164714965416978475124975031972920292341545945685740227448799642650415901671460390698373348221952903877947593550412170462844960373873778226308174438509996221981161083358245424298904428653809463760068237039713135313918781333094059756905897456234799378649523731081949707708257804005633438646752585113222526069761194319826232904867192578019095202642505018731713884923061348386129836243520439148422636133217566640878598471682808491963597531900548156309868098214446336559251607120052110893037721687745439586452850533438491921017013443605470084352627146240338120593275385129709672928059487454300905345084090333130241790488930856530365845490096958002299578877138892445055000676310856225013105960874098602161291398636783113807141689429853194379601991567844996434391905486199049026974687347567852141134556072442032084202771694427735517761343495084314242253295111393936644111230662392223639164445990998585715418621466338812778013328467850810558646381803402037658943297749691485712402573669033794692491161638718510147301350692902000706344305612147733920495598987222725944148551094708412508818439996862448278081825706888373690228195635443001047905707627683804113690433471373853046328809744783363524254938084770916216116673523942121181412196512425391256550059351247560425315608217815043244377151297147336889249364037422180783893217940678090322379546413584282570440307056227736384512716209133267452497722591074250631530520708750521534086689923559125757710661750188759361341188499292729823782447142517175373642082818158277179892101034787025349222468869827940077332383142151702699344159307380150360200428143464931041009778819557181709148758088406159251269553451434553312006948183432488609281537340127493981748300010818920962950992784088465771009257939464684230174995980749946274399416887942347614113487090899519741140733410191617206582983512657558691559952925314832630210461275850710119899187702083714136408575246735235102496711712087181791166286320996314317874270732856426133162352346207248293378795897466769866996734952778156669352318225387147751451105655010997616597448555384498439201033622213478585578404203055624576348061265903022436219349090130825820754665308428172466255166465432260530660418374326321434764691336017618718842327374536339463537277329781550743350571298703816373836698942099929286633798924901426323567132095044382869688792636949526068332109539266625436278134180797617884731524971924091257006612155434969592028090803732987129204715660297904236670837937323124606340285742462268366528274230791238333098064892607128187909712667684824496688331346671767851156939697655249502282770333329826385120181274331907232914113631542098410980785163369171951169739155013104247092968013535577289831189865441665376460027512268627381198145496493584543791055753440544000480659085643150241391724475115665313351318450571378470671752525229556852125404385000867955112133502044457908171416140351438992247372050457413550117892206285517170988286094923011929684950422495723475749042464004512312897006682672248618957615456920883331271066653676117324239893054242952492175132076672255327928888397422756291084024585457972026492266615412039709008661013748442673665829297252309385489738910555621611209061309063589203628627574317945528723030359630289976166513241713469654536878550829559650903239541936564224316628274825141088817632659378163266229387294396327017456910792312651254239348607121037524201091649406001430797589649977275848740849524774331068616303954674515204253787445976980532741370665193092356318652915592750272705413016765621601415869791652092809169899463330099846186319674292365252154042058137242294997310613220548077818414423020157232352285701753643246310401098009528931885638142071827506719047308859031494005425890729866331156712260619910440627633556014967597580508473531789011532614043606155468958840293511862329874336424290063098171351569658380126653498955371133426372107207914239894819490081881826806643213334388087413999918282047258248925395840000412783961207664933315887039174272308433783938179718134196471799910828981530761330662692224856669130985911112223628240512072955514293848725020272383200051938555038220349805263382336296715827291040036896606393771654905324942199171531983825794843465213821016374492748252394936457220174126137972542454125422010273096543488030429539962828514714239938429408502896350250681210307482557048415014516683671772819588800639740079628644120367098524743985476715444887273778968282208012033047403133574029166533118371000877368473017727667606842880617094221796494349694119006581230134655361589871826529553153134358324626298186626211103288556254155150032083817321569321250756505601936274215720694806269702482640128843126307727480311203153809012375396109183507643615030558519970829372725563863680783265609707344908788340455768009312941109838571151674425706911876777748419148115449884156687412109110474432604252624652625313431336512386357113973728046130372215174769751467210090036091679146283728528928618181254344931207478144188190288064411798932360199080738692374805501073341613079385299876057980456550639630428637440614229000666356034403928493477395388175272292164874132833650239961349830904864364240938707196964937943938493697253818711668077230458325578362040772597617077109627060342233627120343006558192842183481492857495037028803382365859889891097282687040318933830227372673457565643746290042395683637723743276449978963654079722107484867871417692672860970225018929994245896101051205176493527784792110973091405458057305959136221455619194996943771333876928872921086803844226334842480443692412589414115302790163648725880310166938070094853180247417614628074545183597008417582503924467995540104530200523280426662490439802901303502340995577965843479003303482832081919758930903916749277492511073078025465997670417955709369826084048106001386557309228446740355201363399084896360458589758131404245417995608661730426735911972376559356745389804876897978043354018001307026074250434122648902640983406925706909376703819888797294387425566202015874746075563042441467352217082225268651023405416454413934457170791954417559274501261682657176252635460803904772488238541018077924336401537865744591615802417804876916999142775617948579666722612042229736577631685401193879106688006027765812970887555455529437971071178648340633343854859018070524421966324208971673896052348181035005823877345754955658919866518746884153841491696144763970515857529164916793881078266382886470132233522998151538314102042530649912512444919526776807828977787875551966918818402904813389740349450224366251658628445981434798336111559724662879077001070223172697914565755741868764848057011710156061348007335849770382691221839527039785898602837065806166749782297993243361403933272590973017032414995947487907685138976091825555004416895574274535314064472110719105926530745796914461821411471518299660313307795952333036171625134675371503283086451578681801868042076191480068656889375070810720952146637513732984951578799337656360227963991219989925101096717833576697713815297707063947701874240663728670020831842665703231159786642299347920655546161742912026621974250862350924662262828483408507043973308966956962415623542384730728742295650091458111288719316149849265849718977768935152408726417307079856106775874149438304298499464839375454253907929386451443994367192538729743926545105000273842750599028144184391511094011468262654394213047281576566447344928403481987221558264586150036868688127059696075319203960723281425142766888091153805518216071520353575788988614159901011696751535754516227431169117801187959514312091838646988548664563157605016461358444412201982825705543960224104548426024239876760971293510331650671034261168735689569567718953578214505285702735122971983592016440641553580209028995299863383606243295756922308971620001289358580879488161892622760298401580413519738924029225687676081103996485168882793417754946186700117348016568746496503725841480338374654965479976347156920491458650820723232564714110565254495357855521757277545012929715480491350662379685469127892690888314590712153460963714937937446572365259668312811859890817673799786675514128875326116439906727497531630705224060250101869024920348583834153917490660893230872182634169482692624631541615116718470869095558711519018187424692840624127541919686584112665753645227055822470026913091725873849719851281309697657572857856771435241620930267315974598607613499610430712311571998106307303768574668499530952501269667644551014297057798703695381171955061177803745565487411547589266286106352894974493909639597095559091981700757752007735214827406771171790740214784178766084892290335995917676235510418563301197398131973167681595221422111042558731377773693546083991035327511364149594537922853292288402417934406724688428846019673461654169031517348940271136275126015719259921931244163823727538677526834033498095413837625631658185319494998155327287754143075146983176851246275967036849261918306918768463806122602207123831311857985191414344249498645499666867730526420384830639455345870530906352161907944331633596381141600929959775214394397903505315648359504546271628089513222700901383431582517101008297630817421136843415579181173143212442185695450564766748844473649739544890244553744402440332653391988668107567059982497798228204967121691559677604983912098779875300823290642724054489315873174075293226332887737066711896357365838036263402520225495184566356024200586353404990742332312303293152593443163805293408368206809787596138385266063077694356178941789123158249829702313450796036262585729964185834078645448414991264537471655399628030483609435602085389777902759536746541882813122723170053503341851610826283627793457690871992641660339272520073069346446491391360663639287706663346737471620304882485207384626136501976138344140965124825168647214809444792526730007551941312261782224064809991340799197491591806863843210575717221747285659913083960737690517184566436421121272154086131099041131748964477978581634675569459491585042724393470112933644078311852046454117043157603313830154316775974025044071819657128899555878186410442674067871131308942177627165492903964655286369242845311640611447935014277741619680735451917081924212771433489834153136124974041134945287240281044294633147090003235182033938517225317160630068465555784503313694176786498929881967484499692747029848304980298240734577587776119535090283241905689076062627086752191520317646362072379214245296018682333186992082270006448035758546621811508872235431836167415777929205764007674500877159249513243787524405573421667619699919841668508695229704015296364432618051693476553540048384337582716153415407032621795613357236498492399172735540178263579704467494430171879637670824818651653550451725729065540283613694581207825335166702375918088224097083621463788718940006195024164514030936521733519942632784153248927274189917628074609039452827990150370168858427955867940501802066155470513166635960093008373498215700111050486353612179697964139117364893099252516272834712914135414152796637790683115528343505559715596652693101292046749369540948799909875589978168028980319514985671322100569896252738057147153000499804471691927176605480929368509545885524723553544754903562324294751512283970492556072679196913453559429415323505968170197499894828713480814288236097106574774637806047424086841648782870047881079898964514570485601838593493755680778431937899317503567782806179606657037161573624353563790442870042774473443282903912421865012950501103677914689111746535089309738852759058946021607470447057272291043377193906933828260554477550174505894156968632053046624230661952903984461189063719657299975233877299805038587325603664839365396822168078087940741984708840350427192608895468420482915559659474204332056695754927429848115115582642301312070857828582461221753016042247125591050115986194080852852596816890649346056427802843496060158029649725722746607794518400609289859831905032400832051088179354362413877030064284988533307176444401182558194805499558599455431825312231464889247642303721231403733782267776755670334654438704220844944891645382763756603608966116569722850289708843410236313963462758036222894537229952065541456396586449819602711754819828914614292578241422452191869728593695632558386437404562284877863403190593065313760273609112515985933559043235251067879174717629049773539313767824459441729031230758598526282145214462263376435249327802883119446710932123428545372402990102397261832400399287498449569169649467275756599720247823119004936930500338143022969637695856410547791272882205619055742995546510304412939364891909819483025080403420089850770477413985428663841665743640615967873004179530420731108762587496458447402484556508666507222424671654412015212709622242787918218945996250135681485010381241986366670677362919211048448770714287031070016753665152021674319057059959167730920048509084140283517907575859618118711636413237086581006044684860041268840159271002164149208026963787809943879982111176373434642510542719828997160311542592514050265685828208688493623961751796381702858351567375543359175017441761176756685669361314493905170874940447774952753121088183894948653459277789909745066434902334456330915790446019712131068686780799332797058376672407374814036519193891491451045903673162735243593574738738846145521244257748867199706985843620883221590934170289759906013106298456168704052984095502876649280030193670517607260247667025761170133067399931320516537711604764134847987566693634591061674501894216607803072566966792774322574442516015373317933398863136941490434672949065272511644857690276137860383043136129946199669916701773214953085586514955829934300291068152229680287750853309674602576501346528846119882954134060268580703270160391875372134364400516213600726421915477301949936162086033382408888856205401499655741371446185306594393304047946053298901960923997373046592230661024457086087228397871582593996570790669671958973689798283601686288312558307086648500871111860032403125803957393260944001891549624517571163405653237462140179635186426495308085238321695871260191740390816720326916984341664850021295367772424981880933322140054932167507025191531853138015498116291707939468341714785833534784099530197173672006769696358735350088485821034877228711646673149671819949357378827704553350004739910844660206890354882686401986898438746531754906981590988588329664632531809665320683278444169918213376032356939174864024700021350730912406544783471061220064466400536646722230218452277202038703098186075545681317627979871688699078617224755304486691729536779563257303147968382244676525281486985583212311393296800216404010376117834725971037144188437818070637422091041401913099913009587789792124416040913386106956156659392768463756008887513651512099665782115382806671590751805770156909886431355869155607886756131058564829616265298585764488624021536585059863685895755065643989600499478670159805378340543303115066811750745817450020537114630217450842997248211756528465485812661674690032872496935372515260839379027199791201844218190097867465494229456171668223347416238109165290373092980978231182773577737856564873706037142591413573877118883273898218242184914105902709484173073781470080827706458608349082152126348249982562254711994902089862741013680683699573964166723332567849615188793653412690413506239454517361529229797737400628460188171421100628813331872349980629511263262724040232755815861228099833191258120665841579652114752092191289692017560396691160018362463896174372024709505774779084215006913782833425691239642416216350476092721191627819272835936119227846050277106843580917358695790479298457012271520405090062315787393715049147568049737659529964149827490771911731866262013919078406450074067425738296839152543003340825160616088223419321826966736076026394013459064461324503671814831772017397156095530680888052352167182793119839388428797842125618014229303412509799836017426435041065984809404870477901736344604924811516300461964327910219352259722027169961783878047305583815172453603943380547606111712254240967005497123767653213861221223850265835320285603859081354576770523132804856022744642376987177589310381827657752992218669376697003418262967941859391979163310924854705306861097990088329578127520041015139938942028061665460175792716921565814830954786534497748066892276926197017109392581452778749352539672232735307021275511465501091066934134782625539183738564575214488283719226133150843948215940955815644723437697038817199796524601558766439903372032664344723411208258996336247317958848938935499120144217865038479099884880458972977451820262014933428876484414612262770988304816283696859048157800058939807004728031198638890882722078385765511564170009181909611114405245858882838520265654849471871818991453483069474650305261849897156428480600825552797584657117337957581924139871119046629154377246364771801855236097444692380421281602345646751118513966501904969432937378489183763325648255364685975972148847491367152789748481026024293607283517310683108891148860707357785306926154471970583273126823026329814731835780742444895835084517386716028790787799597811206295424451189756395870344466302880020330399307553645013743635898919890114420838725126730291055961868416381638686668330745508413898409825798769285395307995611300027549064111247233006530459934532854434145809327089675023453239742434859126908175106331753586060711190441391440694996714879286299032765206356496511301284820480082013649021859165314645920815234778352098104386109160423146265886658087612405820399645848945388565253476267438866742261416169552582978686453243392581773417401203153992529225113717865117253892854623014710336408258792783380443607724474489118646192127676877175881770570578833477254452627134264702503186897990651315974745197332259718501009826196506440247011950326273396957527006630628363917067589467700712058548342908513276941589927078298729778427026003639109472994865780519963940480896758251369669845160501227068799380218477306243124039266250308117208452689154317541040026867554023784546197641631583979231778258293002649582610497807941816225346967399523635499976269829382812023799049589127047592747593922883367036545827603223103486614225433689052032758894405665281968089947992324057543665022290976386564731782978060481383273395466644619279321325958163503250667807573597685540826458802154964876855073639878984958885510166551272381018366929785876349211145594112357754026986078652537181146388076110955083070394518790569091135110923772331037938145755739609649172274187128698306312795973236843259077853022761214179296349611416591862155520757233541766617443935189710693194309537126243171467778423501036257423269818910983289554147537120252097468704854991942646135393133522060043917393361295455069220718227901644453566134393226717993590499755930473524539176484412768634940322130849797758807799998794870298198907740997877964248355918262256804244146225300372988738818685300163881776262967939226721538008266322297144927960268525104547979150089945998734514553998697260502889256724294142437984438128849552122055559984875812767129168943332768098345813846195936404795362027494079967205501818661181012373888488688744384829279289825088485837137962110795055952345262157820283939879451821936487121149456235253235390526701148564486253516804790981083409514598902026185608454066861066909829356120386050189584159068557681233452043665102885175506446380734027131114851187676843665346126825836200551256408435107054884081876043723270089876112860883745064616857813278862102446449145538665062532705602083603712162970021627650905435686133137154779037072790275911772389116028471994080430789085695939351098956487309807791870861621291149212128366409365798621946798349194941811305078030618043970790012169410213896484834841258395552376338143229875952980053595609587164574374939206776826119622078536889111950175193517978145316347709098713866561885640949424749710302729724770950443942660624269386601225584400725385554940063090391222851028069039572675682267951846530215280334645060108805595821970678333840177341161638372154335074268397542707186436689085712351721286322209856987871015554775665262785400909888031053081404945056277176649273494868744297024826861146617931733136427851661302340247791119199124627745915032644551283111480264875660225052258369975065763682095879452879687863504109262504574168808724957532979776259836633054115400333514673428875599456172914388944161153288741403197368399939257551669043148695300051502771578570005341147872172101787179825305777354722563949123945759072426436924590808101002673710305756987044775539694549500105076235942271483915921150753413653919295374634893782344649118643597860123233252956591294951968064531842307763674669876477938625602935094553883911063957009144672648840746477917553533049361418132131374506249032838833750616756958804710353045296290765600403532156557229722758245723985694206296721336128849558910599561459917453349821650949184419651202087623144323479451223740833331702985341268856655058669830154310707098806001562205807263777686702796937288738768504312694745084267948494816180395539398766702402676251863165006312775582526354190543797021529517313561208326458466287967456121904260598916973015852298315691648622804533101536810636127277572208485378160117775173460440457748495867373400639492076280570074887602284569308691244128955715135879847529026730049112408391943095586630088717493523742266556121304316471081246537372808899295369738028899881182874224145702383640608235842192582020762897816593245292862439654649807482161197041896351051691196854762924411058596185065580842847229861664163277467860379439238328721474835000040706542469422930922526354049830160643791362055442694174096870725831946292866202035785811927851478266398856685441003081132479112286701929217804409609039112430231645769249656448003585591381184156443805150509110326198729267541284288859833597551709284702585937085970977249042485035162328967819494553382822407017994361458550743881160744824952437183571719584775732650417192570614189488656584524397627838084834329246163812726868644443461675345911018315078874359314206763804628130796479370357737700398544750162394254119315380052588025545223348532895635393120234534820951673005393560105679118456378145269834200169837583528132616018528454504415562347205570917541396778566291432129374575341939871001143253058588725116667143060105005705866086684794899048385016738747691475638330427638449766045418320653122464123281880388140989197524432520008716902248720291489383385879662309450987191853490508088504604718636400590027735518527770846674035991416411234364249285054601776360417711761495828210060452949469748023128036556213178662124853204751839164788595428536066074350386089659383749555034737540617933028960944224867235927512161260438481825084542974744429951713473460651605934964941126851388029983462167216933719958356745772796140758363938169507901999834278261864268987830400533754285717759436286781770563887521585982817311404646689702068459441724845972911084368826659071187258842790281486996554903640909713241593218930816131177309995354106995133880472765408345105914484764989654857502074967044382871763790050935877691068827372242816301767454022370225603820320100956777810034199142471991591523977077498307513388422919948951868168955720214449043181820316430904499156955876730523593925016876333657029851305559288008513639324628022760509443812180403692281708124561151995715476453134763792663740934228586161603245345538915188955735233727488820380093072943229538762990192345230852826756836910848476969569308564949659327040679150597514699611161370849310876319029538784760650607216103100576445788068396014986588318754822202659090290178759849945058867441119692856810185727060676504357342536887885023371008055693560084868624725153279268605975819752604760046832756025088216558751641377729513499616979678790117552815561120460680963301169115866012186594434475354882484486923108455633756422004933207817085135044947767317540257093559865646433566626625105953289620084769251814470059667037704448899723189389572821665482292499873107865626107641989767124525263296320148295664770401981243216721127774566507882230702079259497462824357978044646572134367815394002824905748841497632593016604192378832525231596496142741568333846701361577730153800062508179497809311274842801882763560269355160239536314508279467589365252457687133980886626449459196198498087877624263780760518106101434791178253610534373549848882240915610226835156125492876011089901485059645869206087674993166447440708813856261352468482329717029267559415853477748071457872029180137088317903943371191202091182753230906355436636399675638335266623845778940888792286716566885148251834608601230380497607623174318003376058130151965767574310808639123101622125474281656676473549700808859813365849732694939187503506577645786393970402244278902794456180173764105680337802430667326429450183305491655880711042691506507556088033454770705956776539392588606955303998990763594479432550535403025087106647332253093058167861790591088501750323234276628121525383036389811608060121371453086819967985751375614705652345895491783288008560046220338963959315388690422394721428923759932302051807211584095927811192489510442668222317456344342959477521944779043279443013973483213187365655619637713389608541943964476538379440571683162739385979875840655134460720014800869877364547865146134026112386639836497739698148208512353834238266877001165276787473784102147417408865112723358975341950788136413264376866213133066472692253350589193920474495965588876562755797790680882878069735023775350608350283531365544536393662741477897634569096600590585162512883691142371516019156977852165195886592542738835828324397944440552605846376593379232991667104269207551070426934054232983470568862735256894758435093585014470873083753103219274111330852364515077321302464055522249971932702039524884123257931645547140322480482181337218965596730898886701517852783707501547900637235845157305322348293692081083868797569169978799320389074616067564446568545748043258943662577938695120122135414614355162497641709357386217856091978062286657658311785523635871994530338640089724037388197776974120933410164728493073855715784115449656302448087002977937306272869674488567789228871223588478622901290601783652722551816745011217664441849988122347917088718887722594714997256577896914290285565710879641393465300900709985909934050718555038505070599669533867463080094026769617377217725432559319215150458009478825834730895031798042361399843568312656364347343835870505652116748595333881295246582955030417433707487993698376957984406924310692913079629312419065508113033131679506488432098629019781616593001883778898590266880676199265265381195118251213656328999812839495802788014878063881115820931990480236087545499200119015308536376052924584095567506239465682614423286448590299464503358755225146498805048830606686809007612038778673790675216708677213131426984645537766680103603711834559186614007161027908135035277460568619622680343234781916499296971692549996785376520772816416836339857738484995781279639610699363706085369647205385721976929764463869603492712435253590659984110772237348782756092156936799837790685397923377749781436980831444779697708006152725847528025641493710660583365841883280949170105319171961867323596227709423310869684320252393252898561423693366176644235072383044347629238064414954508426284079728602939752920090379659532871978174820705664336594263416935063437240945549202273821738298108059271744800716629465506574976602984800972201130535380403708465199446833701351926304870016904174957353978136209142258800476609299537971118332444454460911722356099437553228947232756877870404183156366603035585534011559557520982020491530282549070439818164115554980215498134559454835235965167820628851237737200987396584869814571544105476819714387768094835070186598008155652357378710963101886227870297690409897950122728106932358358558006731276659155887379192453165195309804898940587197409212483134910483822396419899096582481502133022478929660880480367792720666558176375656115528233214152970356959633087762404797547321981968276133464944263273065923045551215584479445822223301948540931552967455166855622282702111289628324064594016335717996291242908920624836211854810731622925714036907516361909848576822316023443795096305283048910397615710770848867538989959306882743622415114764130337553903131418165286095050864214251011952202195473226048079168707562382499801174953620504289927526967605363269810918929684670410378540683838190716813185723013605410813748955042520262263812487274141184593674230294177126980754220932222932103279316498739223610404419595858126844941136214422576856499194848178847216429810821392544279339490264004831388973840397489297784482552180435738039272391136417933830451232329868198922122997007647282148746930219641214483630751926536503682039450899286612518997174166340651622768445385657803182728619427563697771110014843909020690886459699416525081974833355459590250554290676311009398397303068235682723909708610097931835087977031974653759350516624617796517216176549905288813110027679977954863198882133511928799233380184211401842751921099831196569314379665333325557994476767047584843678749316461214338828337493217987988461802875765171126687002043871751060884348640646368829993496409716980630464534255531249545572078409982146333909999640532369687606967011703948924397702819495988343622623499718692900147159534246088456644198452311749618508805083779982401756643067631554780324235773735174827820758811307167610267912461513654194742881416194023661537375263383828720661407351105451967442494858714276258442119060437267672909004025316261935065834612319693408941648138811134144815654132179249651842102676183964057287036386704648777259212622126113622219832464415132077061157287664998255384886562786801724465056824129665709196945697990494952461101032796751515886869314158402253714080923392441830874713855707725714959159308068597560721263238309199642223770270671966635637564402886892356296238744442457250570608972961328302132065386529072470474616360716412167309224210137803658002786024261444242006237123847923579490271856209861991956203889304382485904182580780278619748136930361949447118152634040702848136033167492903926568178692731812933840008593339241121727398248423367902636727028786852081773381839908449774409871784319248323863677915073145298076601906581528985436188605988676474245585586348471307899858281147038133293951034775842196480693204970273388873407570243774061118665571859233666463581200814943177328527245823392317457378787220354862662335922810002427010079555963175226340686579533032613439391587560995786631116915119058881236458422891753553609575364341770859374278354108457946452000830301326240619696359778686799788911238468627237406246877650948857122029027347677021912673630223646500416761476827584551320848104566376177975072175404798640370182993419179888199058217406389729164037138021120058653552572095739758936299715235160821874128398422910123535082903165560404280656079505573327584498835892241904214717163460377688073481968559522273523544684813521475708116600276488251355567503576233773335338411724219428667436099809336772987644627068903236807659008596553096945643541632671040277381889934351003318613870917123010079158810479683451843020614724049920434829964010081981096428373025631084135576649796158744510667516822192374160403828435178044038146597175056035842127124113454278355787348367820650581584900241649961437005737249494435729751463509502763228330572149777609408800789433129696658028796342919424614723592755352812918673483486367162563459884493991421834204802553015366400965225107618662837487808970909549603041915660498570979484449562742657613039255996365774079099130700697382117143314752034065449339349517935077782559881411577351481049079520788847663770848039931376472492820708578675737399696423218839711908529750923382112646829875810165930530902884152974744515321013903648830281144793778369802944506281855728416215139456290134826152182212060206834992504277649695194702453896975010710415454987423211027431093056545409922729478017915740030689137421689361797863206439240595166654451084894391399751088666600971238772749173106396590731150791192787430861056809437712835038849553340122830652542815428287148351914556701006378499592043002971542136937215548069278279961605487897635406251593606431218377477671074978907654885589818997910220776963174171805337516669805405874315424015917282756835289767449267694646781397762383301221975049368741618042889033146805245878546188199891052194497888402676553879481357874781869438913795916656964543106166536280059188742266867416904059865825658734541230509334842111275648375473229338705724849276686931548409618905042715839056888172399600285829347735876764198339160324283014481503525407843125751205999163883343199574604015698343047204989409221370128127405972277158049675689569086809444587118587172861812224653408208970190495053360629228777340408150238776307914373029486207754473738365787478505447589829434065714757053752529642560713674199327985345512859054615035745755845577850751754376945703189386577031903585250080526596850963898595717354302238062773062263022971665026997468352870193754030284854753035446884033445502954520192714522402962844049951604413919773928013409571911067066432943369833697374730582419270292141369977433872067941231009409096601182679757126435820263253524663635189628796156210480675502038940219188176008050788796819573833895028671882064950365803715129098893947189195205823289878328352160511138841817176394183272713462659515829855265289750041192686580937283707557218716444564562043272135171801524289089658552322914981215573731145095793901034881443888115269940270733584573866985865791138510878952735975471354010002722472868821875408446763201312333492481276781366852567838501655952549022685341265725026742479991976492350800209956611058078301483743805473949741464083937009893774979362896620133312251452548144644251285039071204482480915648711220001869401695273666995547317223253699271795426981905404217429821790446153160355570748361396453121650287618815493573006683020546473803443129191486214782005848327023845124028915009191747622176831932565786185101864369353378323070117933748140297812184041379215293443520326858024441430298273174644778050559208057430631596826855731065689945943939108010924961075803650879595024328976584131157956754166061339530572595743021140521122978308249520283318151251121384317294785133011704904441677169932662732005898364220220903533599400932924611832919160369269281012243375128213933633079749988181027299403608838973170602311466888001794616035392664242841562822664484258220542176584356701887489224996723044455419482175223092040053251359017011620308732819875305680394265235100263246207149771169869365973246959170321020564925969006853094581270153363833341629698391088584115872946602952503253646172322152036735753995746096287237311117541581031066566696535979641682583333198081758079358675503861796480569734050254831271865152311373218751317759078278120670129134503493288368648231291622195359971828816312596941665580873666004164903227296775934985394795379267475488976616997656329678617069600701478386522087713418969230643334627803778976854476027094877068474324043832204278156411191498032324853954722038571737812507301335793489312308874480455630728631565362476606569279336073742464881720152659607738590715756841047476292091973369027094952293578215930909678258964296824633449761243249866194008765130789874140603865821528573829498943049037109943705003023873567324501901506242958913846679882884033053534420084063257854532027499790630174891956282431126575251020164794774144211256781375926201739433063200342065402988537867341503241477993703003694097131114223601815798341119331613134162703141025203800896757405144539291196028971682832885685394393503955450757996421368993525372179160649401895555565633930979018973223383226638528395526573699240067533407365183724228002517925064915212274950440014176534377263015951052636423235066647559926824979255099821075998901897461200056158404381699143941802460490674230223983757660950548892403823330879340758238682305537895187737665790967769475911226939451551458239069543783498253744925293234997891219270194249418038427615212863526579734855149465804150998033922217925177205387174880123229635947798483884562564816843957135271200578265484264915084222369664963784614913559632540059383415391210996992102572910103153412809314396842650662964404813217862954531081720047818472387438640692704229879455064007960057699053839553159691940652985808370801185465629883000792638893416095852070879335613533724483799158881661354728100296904813778081654404425450026271726923598087023070462640126738806947825038570054032913146003259882118282028302494891363878988824270873922361475361885864462364306495749228031710474198371888558916553008156477871964392661657620993285458783674839380777133055484855756064891894689078385935617097413213296705276633471147707477858485082687250590285744837934437774786621957857634494303587733387239456477218602918867075447154846964245328296459645663519351382289215753364753421175972873066675313751646543931843305048396797193823796924060808093368536985673041433666569538143745648631229772784943440043639425169992154712350297815398335869037471161300743062792132053752987418382311030241836405790824655563241004544513948072900859963446699170640461856298477186904037512198546964402178804546097025785741424042292088430443313208272850606101535103297145791291618236138896420381008366073024286241548811847058995224764657794371512607885738942224979904512807663610106383527771797730561886540027861473139215294369260607288110670911357464763254139194493089304800629469827079642076195315156619922981424112914369575159549852461906554105706648475151667479517095500998176845497527939727543314984648535124341446547480397794928389696056606412255825321564290545024717282971830973776426068809446933118874821666942334662828328007680971823652442889190584974719979833028762194612424788584800685353833298661663013876201197849616956427404907906024276466848410603068006670956741765251551951459739530855064687438114279895094722399633337925294661336963337110455894689766727278297943781533646473421105071889978020432051497633784310819121140155717359267876882317003379970064653362029072545375761720481753073171802953684405619675981548511989937752722675580565247590600163073780193964265399419834644820530143212091207870598237373174805834627113561567068978547976176725375109981472016441746957755145849533163740324337481327381637383108329293129410138707635279302804905440429458790095160686492199425545627415456048657279331636131284359011006946777099315906532557616079069771915421515383811541703462067838284844628412836928982480018104697216519351266504189198446109111411188488457100224876431299597934823357497950233625158005489729117025928988329832980743928283779671090237039689893018473055166605360346517967668232298390733246483235138896228524571442562869150783306110053364796104856876257934717933607588411932634462798359406988223852428142484125104215286850090415275001068694389588485884180522080131829046143899512313670019312297999571079054194134596092148058259904092750084582534777447655084315619573487341639585110933060062788941009867757929551672407818683813086051091356707770487983316845476300681809174731458784275229722667742179710328205954196558314312885676590417218124182868475905250462270016861932726162177770682105208947219047220258931898448093862749700696094519732141603272440918810466370809360742794712374163299143642781972294076484324879152591144636339312018500924416167913730822761199279872238455795893201306876656484554860345636822640352222193675327694516344417453966641433087294364408144674116199043406110701167571679426011035935547562456044829551444147060997945796594530078271373494639586178485442790875619537265461802290862032990340033604486637359510017125671732377901364049441127009032898079268424404368267819978081099776134687182876730382130002383975849940779706663800752082737395955645932782079899635046556791873717344018696152479301275445394950185387755081868434321921682555606871475875982437688931143633064480382400694120248412967800990557855806423868201247892856821836316946756068156069394531909391725813280732816565430321794041053196541774687052391098904420973126512090244517402986408377981038799570451420971868493571837635216729292618996466625422866583234305153952859842007994537990663722776029055640478727396661146120096617845883298847456664005438277622119819061141995689632120341311084539681241762592244383385343782059893022375498495952362434696396750913635919856386335504768681474834582618831538607325746890396856533766000848206865021768124048046411290827455072189553599686699165409661439577413264939916345611199112560444477312724831009677140512418868846045940706538775963961801571013906966459725099851132558794299710920395303465852536328264366984243995452801890804416757699252085731441257797976448307649483638048804857004038784485339977912274226782285668563674694000097145408766883175608509575027985863772602395132990264042097316734526123624489880795220766866037875358950474025147862553530380936457976225152552481880611137120420607173066649669434715255576488901706256776713996858339233098953874417217049081704273865174348129850503876021534667999457951820339127872237132656845944205646533888363899357476546423313456015508993253391567932074172447869684302959740866282493758757219434348728735349993925533779997572733954005020242959472844815819576204263153040285876882222419017130611119944578521856040674797344247747462022158123657382003322779136443063130007632363163408111215223979542009891262645893166239447900197392488045906278262927674507147270442948894013426122063332748175175352552562205623827325036788925926538889797893526119052435781025468133100388341060979023140806557317672358967451543306140130775645008623834914265635490759181980157743486129119504275948515379283535782843553335568999660570922818468526318192315059271442587614296170269232199620121558471638844262766547914142671757856608826081496440017392638785448615107141789418166521309121315273378295034685525695354218585635464747702014803564068275040659924629138901612467824506265822837652177636308776579499345114868243509228702400394393760461188801282427508459163211177389268280167250916450125130045979313389233305491628896707925542582543646594879100801969976643077436719550693305189539973349637973624520162707238363086810986243083693394331260650550563979712903593955535372061918973498916087545047443662888159327135282473205055333785958810441340360534639797732131024430035409401715367539210715516206010310318179189887846176668425560591199819930334365438650743403293005931498428278147793501664759758829478407840241229725660780993511449400989893588979094308617807591355714892926562510760166182775911760091824265174094517013507482709154821654945748845579310783340867291196661779268991631067772824426116271948080934123038587618828067452346897386509739528314744491735918547361240700943976451823376921124707691860184101383478277451277583966032284850283948101454319709067287083159766177054704345380222889950961557004800327982098881630842034434677279072304175974072665484973746886609051822899436497740855289818392843759528625937537549926209177144909412413188429083236872894951872847057702717419659194698475104240007103825976553475906818218973439906875761711425755169583029258531257898923706524108749608401601970921995654917760012613753263535120361432591419241450004367337132190766578552886718485075949865981655976642777138244282759319888982131737779221157346141381437605184290441460690847679800706832832163838577881211587720074843661086546412868531661280374923560361408786568667792465901765694954450349319296917997573138113928091121269588963081648428900346466366949751489329312726761891954540358427950794540133508976532175813278087523889950918594869531511590068122373209305328921816076708159912827825122140682782495643825621805285731589757799499386272304499662461968257801815448979621482308548900794218901578008101530390061924893035017750976132818200466780467233252782654105491481714539986248171620435933545041071908805277498215324930664278805591990131388830323353865335948940479980901432924246506125701776077727656838132807720745149213992651335079281558249498862560686936527357267457333737432214343179077138606959801890178485413556664035106621746896151745042283915206421244513892712971421845875497520243881699404362561662024291730705014650098626076364258573450013718722190019816465418408160755010953069055275608579395613815497332200584817512654732250714143030032618152096371860162173243996120239865004993640615415546722293532192690129490183675607256454043138991008395888522400380067922707145124584279599879710079059838912489544308989955058883248613900066190679382618060257779367756478100787586264508727747564069595619301751528943819153951514233596627957875574190647662074044296704815330523987745259337487281130976209891719250320679726327413567806081500235766115906445923682196201748186571314184440198057229379379840890190045804312307713503086342557296529532803794755102530499449817353185801268203589270772421894437016113827651473538580494593476542063088184556439250954325605149424319420521073252982214051081683915948954414791307287039963955745754496642730302373838577233754624225454135009569736030924588976025090985220595822777719706261239759891265629434468311124367452898995175855934795513366409209039670938097498123579179080603658434653068904036627131324454348168598574762644390492513190770322229910525775242356718142410755628905158605663444251696348192854705644650724161309392033296361319351175818749134486833251630142043684611488254821234824566817166403274389977961739354947702887780740839767634883815930722761837539097911453885143091833475434277768081341758607532929807218197500012806205610250469713328151406255057295746040842754630489704438398229054301379714441776026085897316396559061300670486462004410390653664962135089444895814820240597423448767981063673725582467518164719195665408227072355442676738271104599310516723385012693382368338493320240449686128452744485625525872380269281162978920117016969070047933151957301947743958456475285048795018919433219087915258157297667412807947526112414940874697732606510524276015144009778218648336531132758204516483157430865649944016534415275256487388886955535592963812130341688847418857122106847928073128911927756528358223321106818749778660594328413081730140641353414984879081401302961375270040118803284458242265334568199349387487382475455957284936111204541591530209562495410056889706278176219579076489144593394845769568363723471355355576151787312457942374394369573335472376192624922695409375348767210926946942523098426405155050491961616333551708788346573506259739525365696815795679964367264980789247404162693768551032607023657914687414156915035297483925666162740818917686705505873178801035713364428310776979232495763836248209463767190609991533445135979642710894197374209469733481984506049595378575926829171328153685335568034594399367825553397546383759061399672297264061782964691401854374800231631202947538817861996423158960740343144299107211555046803791746288729399359239355180217494160029626494307375519900315032620602145771589997292618138960302701768033553190492205295379273927375340005674734502394319910431206239772147823821980835037931190156388128094948435873326676634738529013192542988776768288344846633385834200315169020063227929811358730452518556739816689898406214600082944007479194430772741550350429819626126501428455739929394474227748342531019817214649672634090070088663081338109393736759466838371035925876888176209704275834890154570993978871622215007695508374003801892992301169034745040353567033415268610863272880406375442002989174825143153960224701482451286675346892772017991888352365896626245756350217313411527163970015711211796429536775714251527268837532664217142604012398114263088125292687801672463595031473440047250148416500745360798737947142695625468199508425332225636181397898992968479241256759489389804014368965144189128628017372430258038607065967438700555381359359871385476266099010890216313267021569333220120175856008150177988144346269308066885740884172442996730883572816379715757116872508700337392370954586077288235197887077711241809037610635137018135496070092743054572631218030297200848956150385823700179323513803102388668773908357163058278472815003980429533641226520782544010195000671895051593327273957035057751036136446536275740184724820950299013980622158734154476427228102212349571498147621864395663456022852502911639656529775261581587906068980318753778280031287448340536168152583773200993998686065358695045306229619795321610472437135477634881656173921673662980486675480134668506101955089279849192547023505651300131442288329427270497698204351284697989016659608298882919572146495205655700345937796010234205693583474047780411443012382832353351005738372084915157010601870029038352158500354047484437846559493282607547901493924096860132942793324269038151217623678459188620817711272735317539175654840238082295620523835363297446430065345182204217699857123019585472307319417097263764208849094096312928851658985164548706982961038205345639088738902575031508474338568725142962284768407925820796787410006059621035148820772099680765763482385144086755430546693940369762605318374630799160487622112878816934862936296078553664144174156862589332472336636991988982850639630652708907602214076196559863631330882914023085755347211316468252380314358540014232159176973723500508325013360950554026887211117134055930616056596194225280936611723850822153906300196582053549875837419484340737720149640950186946033108437864694691916160579452859022905502083353248305030149566561094954293359728692751593948871873180245309474313713589335369724167016835985785513117883846662407146192464802462095270515745261906259859888997341741451542152968724662780032449452221856872291314259188578753492920822341307232804674623639734329226616261964638567733841195978085802537767934626569509788019066528129504616868044469025147511504960213451250773534337763735368779355948912924131848408571250232789065495325000570183740820310529330096964830382091003070799847214615614100131672176624591010401806724236594103091989819759152026346409530500076671467701858971779916906912726704985204544134136317589808423089333221432367927553988571244330942679745610848657781783843858067567010040061643989468783005273817101779250723750533721978608489600980481000818409594199823523259511028358896802445094890147943685120275823760235409962566411675085281381242058032697759854609172246970380983876776767772418901795519654882802414907932848487864718317247880936647169261238145709407454236100401651542779896444327288451638124090363653197475117672684806369352118676664138124792869820923935558131649740334125098697508629509735928757497208516868868784288501141581723848680814153083560942734962213225147468507514662287292980724624646368539504309420397289626123450398315802168813906890987882484549177098964760780061372485935669736894156111951264985191763281312053282623739457269264476049392779699141311640746372218401615982471327333198579585030350560457873607723095577233872144259743562618067948010966259068206246676445600993063773428434729961212197534077723395428874722500933806846558560457036017955666442759982741052456795170099837437604141506502207137953689940541052468025741307288951824877180739398073701018694332745468251257617436434303717340626920096763864109531479816133541234786574587770946082283480533940969728750864619375568734773147633510944355107247083392974422595479206633352884479461698227877157050521523972347386814817267779369154081381772804324913226255011501088801779625754311106521099774449374036061993728611101447814996190079775163647178054876306162792127473944000036425883471443807373358553681943422585098896142335617239923077039094963143672006298461006159497166283331647082655822464243216035085006493891242281450165715829272112027291305959703030606428934852292650823515231549361187986218614311640777262078429755480646753848804541239719100185912529702491178561795264559692955348333722170064706768807573820261425272702922467879050305317146909721348748554074686730463167663317011132165327704916938060185590943555172016175703246220438538038887459363824198380923031428227594210149162585537338250995657906490075299210842400285807824506110873454680695233403454732625256584632260724054585038523211673565679511191109959281091772460745254566528503068715042967338780012762003313857462589161284437380483099862086161849812258752724477720131912576013132593043878079447033115321726690636807731096199447176213837155169307456339539134583433205050416915368330092813043639960660676071737210793238066211503324354884432302046173673250618449998748580020226126946163835846854124597389696718441765514980051875220008832850064086792772550713215124142256974825052357069405856625988255161034709915960473920342388417463078160703396257526156676788628068419928437091275194684870861993522016678587279050673320071903798918916772633753101447238930696058656590437503687362116172456386129031369372949110510470018721996218930963469961136765932646046115819474312225200372987715896647023910560529668733552911879875172207026154572968483635233356041466528837903749144365440251330649221276236090533633933026680476671850964136133682477873658767068868961858583972517458889654487374147648727009772453350625594453321134304765432177742987018922697581785844257966670602940652277576467602184461235841954963253773570064235366092713410352294220331561372478860716326451054570479612921363594105720626940814290508953094186806173296823575321328476852845000226910582261019761882073079028756386945387204955383865060783108508493581338170045673435990396335775366701701002991478449158214699219542855121786620506142453452593859277655380902100090092320512667032940016670831399245140347435594393573121093493788093173409026890696398070032382279408953741876126819751399701335606750346017167800042405467988863846574323130862497272751965385490658732119731075108369049692947413291565180215671337082173376835380673208702507390293411145756544882700758698569796902755255744121892163220536333193454391068526422165704293262893000170603789401547292141601099887133696460849726333422653815853353281048909947775187504560063111840957357398585765555500104210750315642411221232857625813985445668546654322554965697433393377917695173650858059060954691276421903588793580875238158142680830162105263012659413763013286334309322785706812454292499625901218665050290899847608147698252996361402078659614030431637876220673053838024345887757144329494448290786477948376925907765560686493089246946848406390149646065224392021463593561006145663129647176568188260974535250553963149482573039524225736876683046977864998040938520541497666809000135824751927267821944847115329108410391586194653940490611784207347559197392248449082413874181123750040941577108281110417370685148043191222114824351872548123016419940488096333675758480513438979299225548817859515487556253026206722607645253409942267873060181418892303037505522760631102420426499479760577704326578909617353105081050549289562371515933490873737253917922099797582285221793825919942848748263010665544539936485928246984003339840040713169315071959882271224208184694410709935749822906598472282772440251150893794770828733333469925136751610694774851701614938789074692591652279838870807471354645412939382422829424515528465576974560431804412074758829573143395409871176650252963422432715253417569457832270283086790900977942993272566104576905330127564946162051290982002858267004218629019897870661949883015657355912929429250918447545877250718749093930516811974616338137752002603117781513895502077054691117919119385020890699307675440795101724764857794259108408404614688600525664181802423243421217029774357387475647827426929723249466375735001118788445370683542808071757558879244207219738726861119898695900987014217760262720148497468877434245145096877140712630570621240360688466310963670009588690518460522490900895815951275180689854441710257527822536800850408129895543902883160458258147866714662395028274364699898373958766472558373731034361377919975780068001793973421657796991884168676145704521972165092189671714810930810247355986380065139977262288314423320308642085518192630159547304268944944285536960214136515973658434852316161344366928538925000925917427756712943846136950917114253779090675810051420823913978211036630754786089115200831386726839323157643556141344636065111657689969912591895032762278063160161369696040961969878135807281327059823071146521863012715200490965506819187717118726432846174397701656834104516692420807423487531263397464330045538289796433717892270585002802330024063379200922081423005635155736936779946913585074607364090777820024570812667738057788147161895582415812532768300583463404949445995206427462595392152192603621747465446911520409787354974378111582374594407779144426232891698463556824060231847379713550961140500772753288311761178361237839509381476326763514906874493686347984408304634274867112134977035488518791002586789075489313038977371653471979958042959536850467749119014203864365818692334741916359021451001532863843536994806027799271847592403215001155579643095255472870135771760230428726018449664934692298079367399543037531074005107669976390776298987658705256133514805744328019722344009407385454905680484316904726399594027818773638669643112465654588524787528083161672939077072124199676031861297459983450176751509206931951978849950035157410515128646694501521360975313917955904624770731980706258599226276721626816247898359134065745362367601925587476795040140146052767795577358442013948555553378905646794042185436129204091771688491471858080759473176481220029869995627973479775085032705517688447221237316205839233287049441602699307566793231749486692571471351810094019217092171399302756740626899804596455988556256821963286685586694774202573013098052204271566181188529726521196165523141658451900858666999181202100811112908604532129755404016404137150216325661817683234431962813306820172728168218806814174992151913154324798981423330828369596094809880423220487949456603480859810821636753957585934719662406988572193769396382450352023594211716118469412608175594087951325043160068106399443688267521333655277312613775569036322978490705449586508192951875085698303483183227076596010663685552522848568718528810663575177027583100222159571813113016148554127961907545144443252724627564533007138325861607476051278891215689903192312092310568189945025920793003856373422823861500211620405000157890047943358869002328810002901411304343873366315258432765490858930059717385934687581828659224905893542313801586431517373063105425592195254758848271533495973158868365361635891604927973324819743573169877225942350247756075045558928566956367747080844255226350561289723731590281110265638312127781712011970969750219373912130003043738843715570575534031866613248336918968520217365012949062523068121324526475707285023559829056496646444358798396387176119228556778199815848757576547632669961685770017733580309613512745250717739033637367396970158941863863462470648959637911990132982739556221243076392065000055880143331496564396606064218623733484783248995144284463070077621937488940655381382372548249329940795197503579052373549249150642630710776657967660653726117325729261938681882646468010259522517487240923930107037536247080962250985566086663397433633760398168247567735287840662267584339961816197435521579502949395259360888441774222748479745806605516963456336437779776143827455995003336309687289921082601932029184581778137119010739932797280814490836421787458923573079317622640489272432418609234664563558481130642933171841694700819710277590000247437057692865513536662515277944370020631231498468312839630075578126913353916626073283494183046652913328562311442020011490659399969620835277702973739906913006558293745224458609250966281464633820109460896703649252200759058736677751777480581995791055744084248099417723221027603464726937642300152117126491780993400425227315473461055022640626250481489127946173036125121950290123898396071978652920318937574285358585554529948877699923805337504258600766979226573331273528316285463998956457736203708051944667853935239152648540826094308855484073098573139237440075081245335515100662610992354810633283685674095926260981894918772284700488439649701001101361460075350376903812075726767906197669233504346345922284409222047528789928279260236419486085640016903266253866416873220753022629841428389720434760906823563682161298234374037180643227441980025052118402674854384509972498784274461665558476230512418018390496536939668326891200798224662292811593120367357589666589413296369146105717022136978022454349189688528368897401840431718594421707932994973342355392578336801712155235113886983535270873961373703678426024313163227946076256890312344367405056238762471884869072912298486821720419485698525573000400170139191541341641293907207069401514083976606918229143398316343778114581434705512138820761956057036655127792368534914451874908083570807574840662445978022558928943086931340500774441080869429620817595032254153968850827129166310481953946993021634756296373364764867228499936761164497669414243579774129517387012892621950949976718466043378655047941754570205915094060439152554108622660890933306175789873494274031003398338956698507089893646043170914902476103573885182346813216363697684039044847192539894892727639614196628602078426035667006093189295990483026705147132341665650354224592271271989069513898134018371934355362802428532785481839673506463890165757641742829215935972246960887945679040442201429887442588089802657196520959566805546992644335869513160594246121530693457457795310045774494507208019546900876177079898149261470485821856108287398933347611872660268852030755313851311311429131542261217127477668930431398273439671621291667177158039931297269667334797077572576162345232752174525820692371738384846808732320537570078693998068984776776405028094799605585544458351764069995864102776498514310329942742531851312945681265469340757330390795700598392031141877700501036983502533049812416771775384383070152360605240043277563411631937387983437771925988357434638469368344705640790577095924170377513145752248932332638983457046835892878239279706314931208299442824285002232567655504965731602853682890862556198951832803990147129504675279863880848790414425553549413876527208743604649285694588650032148652812215615119288073777526404677994456720219302138524549414608254893428449976725987552679249010550481117921144290416475730181854419113852587880655636539955668691248224990384858708352275048450979660263411125419882606416952618758093679857334062085107165433423267816958698883275715983069408579070022352013864658107618205972656117844596214049852388474341654817799582739910239169533274799447251099416279548395580155471309072675682966567294833872648788393220249454022095253142374647002957677974183990753501303821498943830610807040587761286069652595443249616178533663689341181524606501330542905457624952051109785424011886521436924373196159406695268881597249544426343308250891896746888917002390251522257694890319832755313835317493098624510401929576939258039850685634168420871115477537867878839258145789751947169860394710339446588429794725616135938755875152268751724047970792785282182553025811443084253350966409556107277694501639944721758313749558158998113614951815091368209147616608987463923735780724515095871791109226983938917503750153582365774940660198514816622058920985685156109513716595890244282180967454389120465051424639828897470301830347326907486609453889246995183597964621497993821419333266335305243689143780069835664956123110555342068013112994796867610809281014481187744345544353245811000994745282214398591252615377552332351138453786474696344567763881633536279610870248805889781936548127024830898621970357539313564297660266591280413789190769598715657265535428642888821724898410637740829997811271738041967384075627435690230694845866189740097055824268524888345497634434088390492159636894980629790270393909928231728858956959573443216402601317145786514721109537607051559652222596760568686227895917594925162639822022563475129934598373092390917972353009227388208287920255175697570497939634909809881509305813258934262642226467526464203744841118665294297488041681052467931443038962734103175908976410358621011308820573078315216257585514739098573488279291892310783561482492951980692447577535297950803901656494211159415138446436579081011652197955074269148843892831356405561846029820471387512530779923217241713867563518447751355192587415183658745251639690037512907624950726369049141491513684037642573482447602711400967242585419826426611765915627225731259846159015791662957401588333059331017231628371838685272550094258414532023346363163490846006790432589070600068350477681513159866230053817223831176569661268750813923154761819754479015846175365554544868891043192145469015428110539253318019632056249981494535040897256455898601096912534708010763559583929507062083937953001904082538159223388953805132809560957002319334226294932205932928611815117136551093264382695975215611047096337353622264303168527052540379930503741615948105835541945963544319570919057909313793949544937532602317753914146627673504956926218883893579940402200330087156178441451312157878425219779808365045017373847757484300673682822339064116422819338566993528634005948286665987705683071135227527448742683667861352182771561042443513470185242282566355123797756113027548441717918873575190601126973945355699496182910556332875233957305551979659432242209441162480407722273993999497599692354042234785711995276097484451168453421980923772059975183988973754946145155223787091886870001660785531428752396859292132626358075421531947812725531754794562362844218558054065995103330097361746912954143999274415166493534739438497031073208169789696624200516434422846614735054308876180581100656714296521715359905075843058962915360470778102397703151226286891578287184438350292345853520700447072091793699742772048574373706775834283358669625308832431795628932548974315068969945918298925163129998844982441126941792185123416673474721872917807812845922792921794779373726285930155992895562951572713291692838698776348283400286430612430244389980175710120040095985944662735087779672405426168491749642583484801759325085393114363327030986783974678294516783024117445632577065078689361629517198431982324398873219056217307282941564724512282930084694616030741666039404885561315759033572769768266963903311380532797648693605764855801494167821798182503515466493541708287796813380016195078665937561004511373983743515542304792888538310100758634688914180217104798118836809619417644292344457910460588748406943187820428182994741083949455677772080237670428355770681582990674479722296311321061438362706887171512930159769138144813489326734631179750123738252448690262686728380618504624207231807646346398801159347676843219122236087091929502227810556524152285954566691682842173465958472184363148858926410326184510168409243547815064917610160021489772782645595213936233494128255402454887017606976414217228601242637040067814759240146254059974071644976905163552735341382674128577044486431758553215566626811999568477753816056920792716355881010046593055763720652061855494044610062521208829582887672807521019384063098586390823384648489035768511987189295197638471374935332363694900581006649288939811331519985090477110422785509647234122885735687066071187397538017566209897529665013894443312151586765725284755757905034426090234680004687062059893885091759762733968647712345169404526582564744206079438568679581386401045554212679225592602217231100371971353160505969431427254312619223994290040360439521205155703131501197110822018387078882462823138400179830845105679732205675512247590796255325225730247149216900951698609080829884014077513720486193626999341119190237746222787628243999463189088933554945225906055714706679468757039085292724846517288818388593146166776278949781353407865126985005271109199498079843827317227662326637277016986886966396191011214004783692492883047061204948643363770230613776321128611047814330622006668486771202057263348898598008395717194203602896961092021631208757664122024364124423429240456547635112559038911950851063531148338150343304631102372724780917611226664654377594385388878189861523015966544610339460191304794586356163231348695236551748178575452612633557294310905250794208276992404092256209966500868992996327995572765953168843411213570685081826598993046048660253881927725923546288493504666320173041743443273644828555420184135479903145731725163076254560403796143978655717018065081498777335721404192404206069542945918536261792508099787010618232943914075319758202627624748940930813907865351340322837644659219241611001799269170131008110906570094745102511655624509428955662151865142502528272356243666476826541021952805375956876614303689305645158727590507402018351071039670351897941903175304587035968786334969610589904559788617720725343830701666501129592613126240397221889035446672688592516851146468011110134165045147786818596606012339661541180847177915431379246613239645676436304016787885483371106885722413972435234035448612222846664361519629309354171730888350745673501758690487971507061629993122452152991096842332130840506378040734283172461085559727075578486042095381246091817370536380662830998944717347096331491941442655867820763841470072476872442365587673431923531317253041735772028303692923674574981696664125711907155563473531579468615635320856949016437062932238041086648971412095392803722023170507226185281949570017264354258346242105482932251895410083311825073596246040210105002449593377451013931403646801674917754814328591249125525459909913217891972666888775008891769609446113377203728062490248117896102165519282461834726836716635039874334187810181106907826175074865264017606228988919284158604871055542236671071768442193262499560261767944147613547386574529870182952503006805376609084472901465950285742317926287525983287497586865063364023258823916042946759874171309290260205111151343263308556407492979892385535926702743124166072127922821518331787185111279422372065559673803112794370915049132262920655154787371819227576662214891675404317129530137531157135378235063350147196313923976554984732882035511420819514239719000375293314343014082943601005806080908881753666115486197422649293719189718635227250960552427814175696865835451055751057784358048753171798502611266805875512818952708037567696777401509795507376734560854901892465282350925877856286902201161959160291692693463968674198248159182766332109639961630245263115359341372071353882939112489257443420759943440100099200709714644573490839656535878796979058174576477123181205142172104965076282245912338210280836659265143384288595076180044294316653811263307100948691597083367094515206525700702088309173121292917958949240207568518917643208142507533310393072938039836851990374233487775222049550073634875894812927440116109105996334356321952517094857032855898243219964921667547078000027647939037116078048187718593388221243117126470686625416729568069184506369361587084072900377075983759117074257011449282675266028751672618745623449577190468542490547784855348143146979181622717983785925215300393486415816647510620854609745811208612619378791208730516405127485557514042144919428514382354432106001827495859515547310273388314092969294222921658198673994341671232649105384192121155524502367748970277377495604283834919124081765417864244063416217388940097118876015432199895420240188519639362961761883877883414505958285122559437835896376170220002528242018797964837330646187509616771121323246285919856445659527311975632187681868263225328839126365499486033051314411768021711720338912607266415335202819401016327282312024184961478870207178449433556574433114461785472326601044252109925848105351787661137413096603400301033295127981323690253080248286442208375951779915764214468236892536741637340985056235727935329832988679789316739060680286638978912152416879361430051144375356304841950247486392588756140833614388029848365797984255170342044800853504093334723853391212593744968674099168519443530210148441174339996933629735642648363599948107874043283423159694742653471177143867138876062341558514987992840873470429800589171320945130077031604442625261113749160178092617218355725600441451883113170010304460441327857082502777284648822401347761815164394468769360603450364865808876301725932823407063421394230209667198879912300117660421991708548086106529797324603525930448769014159073748718202674171933088803046394663666702020559364109975655005244482692537795939402099727119662489618825061226863309158948518216758920095562201212665588243677382882089380875935352470516681470395242063006227867964821838482141960148648209274547213780517671717565323275791614959119419313151874242238087540700115058782008066023232212604626725075735928779851167028748527126822636201357339397881145727433216774862691409398419850685223150287414200608622708432402480244506580259354027876172047805993723556984028889392316432024217347184616826233304267899882411990897250848775800173846004629726943598116873638430707158214187966827135955543041996340863245382792127983744430043930591193885678040213193968462336948988001117325349890188499696681859833720778922586979403989052767971757526222244285626764257529033442766192548457822835415298480398778098373820605606471595738810085730113296283815394768275546809726364234507390447173773264770999754513871740133735228922552907154959875239870910702316921971731764064683220564807288283274265103590318816509802019932051422738292129801986259414828576230875300471610886521025119079993522887352313550926452375711551055396794728050139277555688866780412020393213222582653182619704821439272815683261141142575015550716082868661665122721955161764375617417638812512708137146275564345210933133557632711181795970665190152881681640543669461611671794056887267025076494199420061090279251283605211363582142585377653560913538016617658090561260987447314309720792053584458985334848004901287684799097868621867891503712557378359210110544839381767923152440603662098400100570590331884226508268886625162478679029309224287287204156106129234872177439195959000834046678283933019166174569756807672479730784492246199778662049568125489437605630517433297950553919523606024663394866207477034347098458962404289211576004714371659597272683840966788096186568672376029140194003804160911624406731648287602138358313851348306441702160325162560380452704066796732206886403255266919113969172767327158707445792196989348547482000864213127936807133892323673879276265576384099427380390615555404888921680849684132271558977747627653259726533772950525346655074253805348124369781371029360579723244067330050064852014391874311152787344145146419900269514417038359203411663015514002714134020687617961159186893375664294624103284837441425756634604724600471004818320471102364254329318465410241813206568183136029113195112176299877032798341121747150342573547540142990011994676971253129335484652969285304660068172646070509942508286724285838743794378147484914822442504075470446283179283508434211215258996000249389506369922731637950224623796922493292570045841102209782736132787016818266806038677723591759281222166931660740203157704208651891102930384822238138591342026069836315619832232892246647676039202917702499195258562045037652423249011922077575064331884913232387137106652477938728231943940015529581313877907797101176222471915951712501467428923467744469412405519534201530030678640666548142856194919207482891791322131825930352361771333917615650493964350513156686063673961491054522508556357087877221113369636534935512420649890298756198039695300228573896489244884353606371821973868951992784978193661073029069955854778631578742073695763506140054958590790424470618683491706842866595552894833251727401629983974148116940579216435091774151828297252655282568698366429407650524783722951922807277916283359774148311593943095886329342552056385138053606390712926306991875545880499406672771386695466054098802433869044596986604462122864273461347718479651744004777274624625816185697067767288880495306150173063906643102058707858935170516066563422430669413978456984812143928044529674495759545631320344472322990479443128292983014318989221945851168198510716941180035903288025269690338983282143785661347675245189153998986942117051596087944540514783652391064957865241788156660098740375711399064206782592622757378788015312866923415701438259570896500584156529189368851630978463440375284095790343501212780477581167652794680229966167801636139921478982966447215128130361550554440843720941546039207495233759443326404849720500623693212659409943894108051426024872152838591764853961891065142006424091845541305755320911553317668325431024652192740748614018288176030019584529947223048923910862084090585484307523652333399992071602514184441571114810403039219792753600394383112680620530910156191317824605786718034799468215325835139657318709466323067378552838469194780336302238279877177376771710279854819035045319039097456854648799775799334931441998558314884644038367985379582195784448352034657137105347714243456338324374431498851044411192718165965074226654882249997196302253485096706379856945112418163420459066550210230165454539434205672407891486173594018034228823156542079585206758710308572283662192665413560178368857327969881881080271520077539116417349060194265333425925254683273953286997025387781251440957604381937417300977226926083498056526722704375886399920720192286174593407334733341287063770111609836058583393241885977387386270945905083141449599098364513366050616409693550651098939211810831890027960200585237894764972852056923200597668376982085181109535763625973685025481848061222214378289545093511775954832006048562297722486670845062828406214815613057571105430308204429169949382717341969480959684335351215097677163170661832188496890149306980373622367233230508036468940553208241776847695405116660709637653445762412982016320990044905529082451423135090817325720323450142057545048617305827949359861913705590912702798122316270220870010472703112377689900910532100218410329016910891786109320777501180064244961491976641540258758671014559767376338746465622405297114052643933974613618342106862085534543344002663694955321511386249480060392197203597292742903013184378210358469175529835887837586350485663670941245980601098176016674094323343024729695231041271509405830695734536134741166011765419739103713443987051006818521599417699027542046673564786726120420911528282770525449177003859984816420581744606468220901259876403941526992816516534602978473115515432816223035584287947974470142877383720432658767406261238833914851236460107966832075480675470069037798173093489718183201754028963141119592335458792092994520971293899224526033252548674017536671158627296872398108973787697270564484200888604892090294970609649442917554100644977058708899328289844801645583211415598496786575377110288389513989518910683296054287490353264751642251417362374784201015342736685078254915518543799629084912025780274179728919068871462708462957152162474398791497238718566491700239444153032327992381502856051024078119856743955233251476153048827292172488049911837589311814258278466653436323292632740266631425497254529694081032305297982566380140048960918361422851563362751529795262952251727425974632397051579640081407939416132954804276697658620945398775431638017623692226803346791572314913975103159315710707355037181082047761226418973639091285809425537311728556347484622254938037291451196112262765425681945522431225231544772535848047145736846014585447468226462694725903536388239482146058044376735306214065026114225989019713416218199721444319183419998459765047926191340208848819601120343893381480315268931787548527926753238824886501680991169973711006045637048689968781352934690339611652178727443343347135906503110231363092027879347357156677556577805867099020113679757004998916752260115675458858731956690799583376583930526427241726974416104110330947391227911124925892502999508017075079739200843418041561480931402873513639396456669912331192292357128184787798087054683720366907757786614406490607832437030815260484299200296169546537241475350115934609400004894094734323541023309047464970358685111851078186629115255805246393499390768087802198451770990542316627402954872219251978135924444588279361459226479354219673312103574829620389615202042078674242086248958153307304131845123342178044545682039280383344113839515057196143834531005516101121898857685216222939321557661615676404155115873155124595921541114024550917922471803947681545711512487126017909299645008573038123200623168120985899126113412974777776788243108949785272023710429105984474878149136548438983490710559195986810515277714402482309835341223389834802312231340931464532583868649334147259245516356737577599777959574515057532100377517723973168710157789942700653166423257142129313677413538948787668735580521353844070470398628220583548563171075115646588420395119523213908895267108738695276594995299218308047137250393607587308238225713601917323282322927580554663909018096613534786811069740802667506088928505040429296087952140730060891756009033250531310421227236051509598155724511613796152300662064901237117750214862337276277067951146505350422105385224216067623693160008062263423545142191957343197839808317263968881264420511094154931595900028908368685512381021931685492434597630907344044082051579263479125471907281791856912352874474966451749410230745829994177412968674494663001447116812956408501553792042030810963596839095246144329079318733190764391827950365398220998446889763606821760167212217580479262014312496674228346016945469843759466126951666855487771115241065463936160909525355668323104235372912314200061257210782638713885959005413925302944096229812058644871098797780798684733744508480796017225712611159618325504470047221750732383432337843525025338323796437684110909479063576063535622274047813244833434056942214195413830328133081410518968149091918701298070997141869099693698632496690790294857330524238377902859217093923182791510658958260608607976695154526122459237758897571120957002807898809290607829400683015940172604507250204441234181522894536745088494366043071985996849243956308148800513114618805080558264310896070713641472762999012705766607425048000846079499830630699032667448781964163851272414728176756627514588659684235044324457224063475726036038127460685410915591194984923045451466034102220529090806099788881369273324902052809780403593872886457557333563554085762607476644398750800114923706190454579378421683303579170646573158368067752434006726175036423735958493874815393946390384851840585770923627635894756454659129191801853502229727774723050313989680965561366527101573779910903164764020827345344027769519699060845190986806437778177033242933408207614867230860033516460712557348249179611826869186793905444165890557057793995179209353902221417295055742033104305729427698643928325104800516185508044883142969372035292681856032198421061929263698573219238109388484367948254604964609706942652357845158636253105562161532906883806360320931440863508069255963612684058413751264821806787974208628575072543624710962898143273382995678945971732933843330279265389947588631849329779286352636638392530156629294010535542849102237386843434955162389707383588807457280604190311155057124107910918665068970016911573310706572893809982624259513684090874580254115139571661632764806882486498210896442664330198203322263441423746157192974712887478507984336943700107023011048201396884640782319578234342309883576041292252796718413170819934340651767334442532826661193997813378001697358020962995865476481790399831472081427289218903556214002950230170706401058742492988770618898403536490173512471338399822702545038651739410153084626399262040138956423142658462793603331575017058415135207934715006749227246247484432626054432237758364032979739145517065365137358189852031397968061007338151783416902363587115244472816356043766256681282235805635239158533893527479288545354240890429621824582804014682071342148727075541114654496182424976624317233871821899036799142504516521544696089148530096835765686442777883871617082319465579957782972883309529784823069743997798268159632879535161906119763485757343462481172569656428914549533510268302436276377756482162497272251640212407264233728026408844172321927872629248323296887481968688789329375550480016516529020703385833371917957481774610247953082085276300168624551092064176249790180930343502559537601010752889603915722368393878362818527944525100941640489016518007723424089710570602062657264786083420039137713822243241551346876623156991777604164848995748707423470652410779434634434618439936741089135232060556878772419749020471742790452509390816006412710176514618716446314292078955445727056862037329544132274482970188057408364370076097910650961304232492231360221058034192319767562650562776948815023625022578595528549694660277268147340574312465361692150506950395650580103030627249535726206760791212328706943220852010838414165377133220727261224029671117187375812481046511877226018467719869917765561026440565708815813509665758410737496830761397531863868869995542836045814052858893114117646070592326496577627895245396672311343108548488354921768104951222294079880064406868714242628439751649756275548004432708894950666511624093909863863709004909628104621168221506129002035596446090131797612079495264198019834929746160700554302147655054210668795819707561567676417889216442634837418040223019779171074305305354687577027458491753211082865486579417889428015485721157938326693060746806704363143253416048287778402497540246910648502120070685663071861587052644438064305718395981036181931620088920662184561615623581466786671681318784814411909388835333502002649199858147982545094732152482538739260184449659126649410375436234675467458252955369748308326160741746501020786377220383442493404023798286994603826283996356598427007901739520473236899203276143825645691020270966524073349280573628504609446958241262258901805543433508346769738319970467686430234119642890904773644896146407633583054891927110647878267361307630471256482836499048197503296357137176308965268050422150094267481026746396092689763933734955732065577882371692643300592953816182699107484658161836815868148830831080025113087841384718379761163138289419786693944258384789274977190579416788922399183146842541350306748012768300093234703504669137386293997953748884961800050938733142144483369857563308684764676255079395214501124239692876640788154754918614697290792172006888183968100741491679098278156503649462114368606084944749776625336358719395216308489584771330327179089588554619672503689295058670354232294223898607191584192751620031529597163752872089375248139820853384302155634580562724493266949374449295386349355215976060302581334143150348113529024856345967650694888613945053674814326847479191630838070810038543622342480980249229083605087306112612538246037227057946898398524457163423608824222815672510263102975270082018197978233272102991155502621015097375664450879427341265373002107471789931615993165555867021380316047727639635512605165601210010227894150711294009186129230899209851585733790509500590989719734003912374571216110545219077478518913847715516501243628760045192291832703524316146407348359712271234131446697678298751715158947477390367356841979736122968018320842442082892447586582118426256967842850634768254533660538819304966327967626156950474164007491404552567952500259924692359184552401297211681252778842387868757457237467888532970568391086155242840712705330822992621993741288408226217640658213515365178545041483085648717966986601457624329311953224723399831864184523938580513157307292988312797326040665293239246089371116533425475798614619974451223112656906212242146011594333454208360269567760699974875155336663496272990686698625103848428014980343029196746442434109070175073643972009334278970987876958654468843915582016848534551980973228436060467866167553126092824034435696960149018860343216103321916978332794701537634294124821992387822485288582637493465899632514622602526857452248989569248495904728751380114805818174287032157810185068643143698842427006206349055308778422396590764318141259091451001164849407069961194221736211132404293263939435691829636760525907951522945044871342451697725904267771110274321559431576575190997283485716365675316307709286318137130468667476851390636032243715644640107050238831735625464962639795144969769409325601706304163023483527670781759759527024312532551614439394078361890827608892951491068117778838778698414497334956826460741750519880953076336715412681434788403463456252238447317320202570359389654623460044430516460680424227968394143748271210545694770566908732029675063261701847739526759470275818138305008905263341344023800327013338395156848415378861992146910189077483969366117386523653398012629130301366869140577864510410664408419598950030077125673609328115853556480300533961170489752504290010733392377444070654536171733566619958524291780220368296089313906322771237385810033457379131422800435847919385809045629570688620897149302879174227465343653616462436818126012569580013992693214131118797343492746884689000025233038575213069902102113912007173662683378967550109143036905322993834050245612804111610721371025097817053374803287726167687205707163938702991305207992455478128687732297876415412604079710466154594068557576664085289228278176355938099851532099794507513285461718895474871195859089116015499353875760489533732975962928397102909374400885928258968484782894311008672922884922226314308286286330433597581401845890967817782946403713786487331315804297774455868081407285544977588257302824832480647121727136595250168305945579556161951276216773214094420931934267665727394175220366848929961226905814716500769169250642276947391279394075048951605935035615437330163577411638098771000743480446534183366514470180324252040680398291600632415164469762786458698111886837206893028906979501397096784942558355435022516383367329530039308436091092618196469985646343173922537528094677124224369302593249162951280781928034173580863225884003358768107843668710399763370897133943254897770124179990226682308326010699010395330956057547590229217794386283128442365558554175174569580063954204532864666905552828541195564282344988996486350704228406331157162779376756590130586372229274248291651886769844719577850563436773804749538195074050775222582174460291785871934306885869832162955273418883443143715417082958503739507726040161477799130653221071713707252035017027194641999278247616261008314978780332135075487090043994370242518328682848918747418886631993292214962114290908398828548930210133215086551641793216901399144616464253240165432758338688756483053760362631574323968256183495359686058464558341725660371884866617628956601626289611569945847966273372470596667398443355934377494524240297432161973691602955761488151247898596317751398055644590360717638260520366372925452211344672726043390626290582663066179293782939644587357350482894740438808130113852475601628295153264284122923359324781882254229776793463953421931613267036227995910328753526129305861308179527056009372528820342177901167944178746882837394479266681444960250608952503384083482877741846775263665226211446975278248513892908237272394881263885929809599630414288692615020733377539873786092404379845368661388759202882853861350164571196331597515376030526523747592847939810229305435782049364273213337313896357360516376622501188528931523737297394405616595163652441793285007805786489189436648309744647482933550132794407817648931265632277318181864480125752902297622084743312355878761730688014009749999621160422947217885561967398104331696599485357737987481453006325275352565840926788850962422769014377177896652814749613957083957854756744892489565680962568642371068157911499855147175807557629679958338633323024775375199185035078346896154258312613285073995622121777876849550323755671787755232569517313294490518146854794124750428481507126746295387140824994188424477937797836093968242617913063066366971410759737438144562529641126354529203666699275613910197683948534627506108797546060085270656036891720165238756655194447884695821326764288251671349722834311384534114366291469184527085008590836830850742177618351247732974329049474742011380600288320899620156822368040029689310798563612273145480330495089397964222357006595568612194843323429540129187310930787523114746903268019493648793086352844904457352133539935710954147511536813125910789928255854897458783337209501521233943545506712689306036861208685880142353038652039833441983411353335266745192937588764440274227554753007156569096739927960896115692633660534919957127719002617473441242876883191488013556539841258704189703076727188043147990734964686320184040202803199584418692881501313861469174137070800178774596432491480725348043560202686691914585373972152574328345496349812079338450119253572045323977177144571164428184706458584731851412827638084620039710485765813988736475012186918642313591950235937249358283803143668088033424149861440512670219454881453853619291857191191359512552020355106460841906039156098978767100502609758491030635006666974080480624494764404927791738744092418258768635397560557012306062466347450057088395296417834272703126599891335617226734081511453383820069604934098573564959915203717807947426183809865608733507665910433432441004169622966197891319541958839372925258535655954486882610116980001134680535364676897252519817928684969743305320153155169559924903701208193834576262580283291596086576562341947952731491686570268104037276175895739776103707522475474902516344059868390426262014670561491025046909672527169171300589828034731856541653023316842769549978410488450882398627980447739441834200331415721429175789201425618758776728229482416434234393432245891036143969142655913771281812511168773672444099045496169326691598195374279677826526576649910952102888484781995696499694914982397440462387837448161930806371087211565956478315641908596956137078140067947581323323322659039413590438902999892211441394891438238374293840796626121291666364749634386577956015910789078977591193922899998703334846923668488134506068491383072474395628958644703508863380809368490091217460214277882269200960115692120160204609555063243670732124253343623180972358748685714489079863973761056733998413062944402958394158234356012040500468002288140118133113792545311751188263996316549637291429867272684160815267614454832137397110560509985685512710157480558281590365958434370059359694018385406721631995151124510468604321982050997222748475628305595143513019288497389824207404855719796264586409742240425670021168917510473087081371197448321498527614142954263500721181621655391225385186166647466791724633555912901127792646637188243879049168374117887905845199509982815630433102975524219878155364136161571324273189682845560447985986753469301477907691368512047213279379403961332400012935534152121526737301501870945921987446768745030858310587345043711786216166545831206768863764431193539423708217432654637885068787638673633492179832566737669408015123008627881356732856981999403276019709046473853201842216126904293296422722820171464136564903435886343648627322358543709827228297873053042174944207011399652896313032470669037075219099836318397477116517640011669098967953400691396614016952992001153646284684798380767860918821393521880964837047535632515578268163019644562730915546164190699862133310321672283108291960541962968898517418723704732905307278209855958002547802266489139413317607364117393019085136096653118212051921047491541903592946840976339740359739747421280978891794295407261247744925290065789291544572948843646044375700248286908546214876646503226372501211534156154879502009412427855733592688483321484769084758068605785500722763700681239654618658960902983007572095631886324319906261249862623494538143483853514482871235094396947237175262880442160178319024272183322735544246025029395542194377855135307299169618269710355343373327249028348682874614583318741347196814111701215246827010625600234270450460696436746142643771497021721200107684970395688726148360720990930642255243065958277628333627956987423626976528397619880652685601425781819326237752992469520437519383279444223671079119466277653024908923121942764679994362149439767932812972957551931216510279354838214079055984252405973886559623151040160479414517708260307681970559723479144193722593263744725611829098610649945529466481802648838717811331861149987514561691359583251059267547359515594128639048512646212409799053133320298218379395348181382006551253422996229647244552112295266149199404951306307269222121322683811733673991132584465013281900538885993949047748202473750452266876630806582086137527572931775978815978353553263358976669131461288845273074746657362612709743509793110864159422335702055689743942154670984265790242498914166674054221723661974828623764762730590944592137190794633217082264620543223321260141854047515677892282152312093181965998911800957912343818345717624403740010363894709861727804452863535707260502364205424295837970331636109534410131736549806327986660840284623260045712362022148722502853213769929987012706148789487105132956646819208730096585204727692467137351800842089568341638659073031817211315792982557276459145281113247042289751467710898631134296821429071968707676923635549536939599322116973278539324483806426755775626098316009596310447956553146906088648229658820183406604778915567682442206550006183999580428310915232731546435526254622711590151813927199364956126491046912900310543362554717376507338080560959015776006200764377962579250920097164295307677125419110348284014831974511950928786220982430602754241899600127337074496808088428757196826972327922185969543781679944640925746924378179008139385711628645575396162697555589110206358781660522802371019562993849441618102412852317915539894725300513259177952371074188549939183002998842765538864211447283403278186535948086290225128694409652603989294964911190554421920968390530249320869568229846680059485950122259941698759300778507961358044931623182431514386294888812069458811015185336312363513638292681407981913097673372789901149291576634671986313629460678519646390634356426273037993850820539944845844115179139664829734152692096967505488528111323714105938657480792502051839840562366694443003020497642749014401562813165153419072356117974721064708369116266195058070437762571130365453835793834532718045894445653398778909932962334078005245536239756594707885385779372850995279483159922681221266036820273085604730589760710736857532227397086747744711879333924281939106980939670832096667315763368734967608590591693175723440247611094401270943419164438583463480494072763842387074046445643052653775599049327103297203315612989768200884433295718634032855114956904303581974000401310436509119374138236183424164807648165422886071440225222029185436748656137595897069739598253117996521622471241270549437274567540799867369639941396051357601860770930551353311359413836757186830076844766569823786938247096451601119058157356165303323484373332222999979716168285799324594612585702413570499856367218293468886399483291677425443942581085565389188698223853300085238636375169091561216274149744678113844039388858836808152257132350315217464324092206523168337721736545798210839140942536468626076060794712605768791536052111229820879607308587158001627367885660566175904654546288950150156129578571370611866607324491174287426533831088954081036894009610134408850560767122842706591000860589164779073029304533629471581922206460977552682250652395085526785035368071219475140600213785423039660852607497965321378691720468520184195929649737028217068071006605723461854830714061788262152159184907278127215344143508233798383616250030642306817837359719992532174734266963477707971981830848300213709802874046732963416039164116650642656903504427520696611155220645772499612309293372727361436279359480163616586193421164018527778796416805622676311941618930447829476562705350689142434789835883653744645652521432578920934402919289904672758905433379410063489913550979350584466002733444587420741835278161878090749049818571813842014524007647590320891172019425683493771332852419990145507973774469949063900197351299711294712368895757326597201735116960396254254324347314745127187266721786672000545447494693536090186373309931255689192317715189526325215273393411490631863712368163145875651639861967679411495946903357907099810690160474628965361583679573660321603408954126675733947011135095343835573263944075550158259839331875721980386393038986784071112804684370482570349667969211068807818926838687119163188236788506905949867322830094197187694086068167820675558003605086501509777837671672202095946072627078664336251839231689192871350361203259118063208146418430938124167839602081544064217009471127251707562678479077021071252358874507844149559536913189352847723682002772819714828933606136389161804528227095546811951358285511457695631918116480896044133206511870001924927138428417924585534180573758495692441304470956602977892878511223043817847423741813106454989430429359810690661004779435907175243098924500666617822502490877344283077031200824545471363124606038339860848641277324455046876616699599349073605553097171563897810612589822825654156597393506435929715385588746995702923902948448580305810644835872666002929001939291954179441859031001333365365652449365798284953337801170937715243676243106240349801651688115235703540310293137303313957986658384328354815236847931737700657331932582436064571853821976415212785915132660733073517383879244605369335475136829966352421499286395182156375780131472536724363168117521712692779821045206315448480192921645973929916587446883137903266217663303520208510451036406013098691063972357019771546619105448022772337280134779019522494612357180751176031376542887211455852271614375229672354145709724066561546666351717604232368056905952422995092024550366472890139435347186976740547560803811726079406057634767783575775068491618303416245285432608580966245911832064990683282385997484233774959306962574511578004681849549885285707867779424352977230448287706100910491473899464031065297467527480071609157534859788582518130046835634279064074680742649839215773214132521569061358262738379369834219439630929216773954382457081003489918675189690234050765049485443664279710743747780692040473045486866412414608486210921018734763738802379508855857614126694399515746460187198575719202569597637116782025400480859807714435503137174477372239045907667886745776585776327249127377677688114660599634291018470091215577267708821152933831323078190592816914849293050612799188468645697190919224709289124737234313445961729350997052927628854200138656344985193268226831669198798769226255106623426342019644074919447823360714185428411071190990235803176459369645653309086177892841475314132553068750747353974745124753214276192446648174518936988485586289306039050222687235371888729515660702516222010115493570919726717801610876397329049842764702448129111247499750254980756457527307473051002649545081425996395455952195917213619792896822401383774058410618952602714262148209939161935217336664285371813744665524472458095348854601476612063568406662101533711094846455086749814410465483445428906889568449665221342080743831139667040783572947391242732948023692060966819134629891324732470100679344509327268856478580970808779280527899569351135037113778596521987827527987636331731487668492588854958615200695525097086335350058936295407669418403392720341506436438643624167721542842361936709512380985249450410544320841995109563103057277134859493890041191297031484713247840393846443642856641282579993379447881528384586092994169552276384978663527605616953684952303012834238357878733074525709927653353042412272631678120851269237766235066017284181627056699298349399119824547371592357269920378756010438876374129331884084791650101667421166614246674857289764462248820069431891306151494992881889362414047119741495295945786498022092125828873630392246764098666233378444858496177317036007144180958292573750014699508870139009576126819008124534992654912846042596333086968625388109619030092652647178993095991482073166808859047788474158496423792331242433017075556194534729043210171802254932428170846797950991272017943439576474801584355568128147778998982813312691211746150685367654641021982266175912915959485931942280120461164832035355396755403263044251832502750906426896747542606678734310639749945494608921918396072153462041190238460062329094934263305751953619643955653766130185467288097981079935643691007552679705179326144532853508224415563191979818348022847491256706646755553496323105333602533069581017556732211896407588145923562007611621353857653879098032587491758503922114487424510174949553384821930592401009199787758165424176505519751613599625417265522233577327988510345572297132992711531380777807044681017291889660199930756248087523584809668122382849714941825460557630222089500748909530693906461652935861417524401737653366965654754215021073058928147842903615222455224857474365688692111600378876939401744635122640867012262657712627022564853138943509661111152437155309225557180689955206606361020915457246669471013645426307085151068140585963971866065601877701159061412320470565441757319400421622558134468559731808586592857739253743504391849908442826848601119877132486562159515497001293546330434741505629874881969237045462976772288514794079748908043162212481375010849552407688302412832664953127178424411457297052610176593656214748207514811404068185452538382307452848686376367843673045888364184810556529647243533803601952053578291496668676298761995570678551746337603704186672328165816195370554657744296521307946140025937311092466952664273132605277601544461284269024577222702470445974332313586300668327659857108934482376313582295674416977699848300367708011456301653207505386407663683758436012885869567952400750746674194104420711911227519014235960719363878556378579185030952104346592290285403399915262354077079745073987607150615625348541742564121822010041425978555692260148210861986898530880886298262780941989766449638815771728660154287457397838865937379227621059766952166902397020019535247241200635651110031095329861566331179760765501245700390619008823202802326880377419795216626347577710920891242701572017818897322543230924038036048700668954267369007618788423672005298078720535142442484578444683037088914453340083627566740287527287928134264031131200014119755498255704895566861754432749648401235009492161816119777255448514251274706915442013730242290672186932446789514825405951585276583122424871324561614288023157889693068931629606013559747941829600271199861959848531904169368323003361940054573838501919347735378324765610101570356658116751968804361145959005385237795174741085716498536164346508676299334325880421100486157826384808750253983267795718847233670708222824172105022019782049111050454401720214458651856612942216928071157790559770182825043951123153813649540532922401426504580367554544316595780567112076062931274850981971193293645793086664903964360217495512181223092001519220227016212961656878922688743959937219741193247168311770488656206416522222220691912990594425795012210191059314625838604179253059988117665464712067152904937704872415976697763221418403329731278827147452572526520254532748050059679398785862063117597349144042624195501656591342995538573139852335114367231529888849578046489409809741493923751797024267277612954653920722984157528542986132683451723906402556957116275014734923856191972474616545508195155007390576828321193705307656952355632101617930934327615101802018469835919216003326634027866544151111255072706170684848377780098802909809120531308174471778845936984422966947953324231780496176116177217583427163102337125841408436932038024230642032629060541196170177398961351577507684152661733985030654063736603529499154434712778890222219076280391079289181688156626476539109781254910872598101373898180300582883248360230592686594526491280084080876153885355612015796811698615779185101094352721370718617780999952098784904681379289502799573956768176256465286739148314784890231519545928707122461644439031847484484497401730259076319507551458547329138426749253673690034592988978258119405665070734793966224970184745937465425782181309497000653523068803569821832866923331085969639486757406416667551171901690591927893312424141348990118525618011094479901995941545915588895928065430457358908019760311607052274981544024798251170885658018326161486307055665911813521797315581444784288556971917812134247384558627196482986614318707772518263760595068686568073874692256579997372728465579612315845227687884032410153775819930049524161257621764168916847096388190032024281586923423879219521346394523993663891719116724741702739001414346407161632368259654659850413242459768986674754675915875183748831939374667810341695335545919170726540063871792629801177620246114784715034322232832619397428022837571811843199237219943182595202754377192336194778196801135311829027379349044376315740170563841014204504732101000036481634733629569301554448568475336742067373836080934066115188546468166447688008712244060575500354615427946529116631407753770282607697587692833649555002101675109792994533723202340300229151038828221053186407672919130026864507880227845864300320538803644065294383381505132921291534106324679223481016574694878596378330223825569654033535582910608942366300703756941695435052168269218221988703238391249239388808046600496429286906229919783170097216238343398799393170663822071082333551070671935136638876391764334437306433219504784041323027379591201765345641384382238498586585981928462782854474119661810302894656526770751749172990000383438817135055213625246656835012489988872065361318799681505271768648776230521193517903513032640752964512783000360713466786665119252176244165965248822080731461030196258619592363882561262752847813049062748465757122717036684588531624691427463395350186490401404056556510459569808629157719863065854709705275831056091624804463972015395507554372281035204287336320460481217736802521435597962728260846878843722873001296140885945120219563676895419414059265450727570276620496688838835332834232495236563801331099363787135433321686833184250002396238023498019785773088986101032885392165825569496713508305328785355819275866013848810604683793626974707071933778818573308664228710281974660139327029179266210322587571006364127418596818366243490521657047266469380855083710574874407767714718536753277515813933732788164637545638726422406846001538634085254306770134109653218476112908327253945198981309029012031945580812336882880254902824252831419074821341285635580411661509381271322168843134843846120601460649786875025651010861974961822435770912767225089996599298760592311497008213952725294796254720604496641608317807619349577436268302492117805473569930871032949034347776988194535937353309798278606489335632182017269557833745955940999391048596968543966070375645715777969344827383894344519399763046564179738344834187160493230785352975402300316291257944161732212111084014838867674619736122352365404179904316956792960664699375548256903896183120364983586885269430130172566742674271633860815202465322247127232820300791573323492804849140491123739561008228096432972789584438156028095676810778637339657344504328070145378922573993431631416878222845199318790107253650197597540778300560037470542127213601848305860818064434619009207432846232186209133358255215512356869620242813091832327159944674011748515432013006259695002465160026850024868486571121740309868434977121870774786186769946991581046332314054703190931855917751218841851172287463917792507591015854380450733034194555035152441507868826363802113887247805940091720758110160076783667625696482828468439678659224401104586694312384217453599215539543254905776725999720729704850443286635614674210271053482982450585966677413276228416307614533688243195880988340646501978670400613143988333950171546558354040166731093127931405979854924936036166533062479372484983522273860133116790554294963707810654463350655937752623207022562802334341204005633150853105737807214231216706072790854393976437363789630703037241275644951723474332340139383188322283136612941596159326797130807508592608628942493872648035766628716927764842492984905350937779651935100099454124734250724236947577746340442896967940893390210851303469620562332778057113180728689470408458588921648525701012597556603699556357142851122992713055362210487977082997173432948805657592493307600659170084780077494608834420389923090009053493039687294212011271340089371677938129059677780546807800629821430523906249913319987590409884302235439682967061215719061888887194974351853268483953175027825662635016727717834325974165896047321706855866989270136765763996936743567965761318723181996249729619732071393753573722844554497457115614897304487044443215902355179402565989795690513388881713328507203162386596792829077967838509897900617500378410699619987159461983386908962437430497905369253082039399056255794687181513124472257284321510744941282703797544477068899607186293209548325527298149595659827859493676272597115418503265881419455998207055707332770334899534109316537859844487288567107962577422469384297894508984444944362080445075170762305959621189142271640516237845580558962616088271346104238160543549312508272933037907176313026566820426096014372561105255696656538133749778721147076580322249451345998402108561529153025945475405972820268567700796540570024651274620615417937502291388743956910923471235139670199183298190309598726714354489315615731189833800807478580988437566884268374568777723305127337722961937649728959309717182220697349154299336866116942026078193952936220640796171227044423912757910084224857579531434995128945148481430267477454781176626453231493861971267891640146402255748543086582759527592650724032308896483687879762963089890108118817577826713128450821036798230959182221425814815341779847589339889075803107585398885040404871515164560498243684646267916782166792784128780476261894834041022183864741294215447843312312044111712217031142329777564965485575494715873690810842404409567534729548100004542708101612851578795149923871127351721313399599033860719267101063836823672295534817008480715683832102348807452186155106724426968904866767293883179848288313357417041615448105670829270570363859542662809653319256030321099548283530755593456336044850015996924532078725143976077933145153273729472916991643086935275122010284861158028677213844363367566884520674800156917837595044383733239461973904935884219628273024201076129812496953983120926323614790774564823365031459545627233544987397418070555560732039328034231752005021589686326907096444175734271104250213325332185962622098485663820016768799083803317589118714198096066947458094591401483903268918163456882048303384431142097090290578398420521770740352774473259717602187772807612622020729330973313877817880223180954084597310509357550842325218608880725552306145977427886569196402944114368797405165390297189719377513929889553055115238986277980989611604286067640760971790103544090906313238430754840510371596814205379768662968806745294056445870191428780494744040048534188626664423341062377293674345640982197792383253408208638392084811652224990137740516591745869289228933496496143575121929762763542664580703743896855609658557065017812039474729687445377746918872003642855949755116039363128771111771255787011515703275218770450376236362049484261530340060143631249362419163878562490488620703653578697515860030845520191845316624333921033858191890163993577540034667807298797706154829160121452076030325923740051773388017709805149505405222483349729552645405770505058130157503244486996876156832778654929965474600160029378818237876615644092991970602706964319128273986152081429718374451645842325003203326106963247913418590572216262899962002418280508885391115155183748477810018966348131407676626861118729073618281178286276219355544003348191080749277447651239614647717749886507656542468486201944301315397706565627637656492327174754658286322934037886417133073397994078549668659902051653808282813258528712877728128149836609656863534599697968548670262715603852085419445164370350025717691309544175194651080333944041412518825107270375400170251647489090342136826051482898776860959419191085616509558404109187005676159797615396912313292792938881694891396522071984109198266030092668759758268612116718136434893528602253992665640024212312800109173608138981512267254157356221984478521224790748605254513590097498525556276292917341844060367275615683298680875838145573874238957928938832493611672670386757338420435165074967924946339406237422651475197441647703359183962970298587492833594592567378458862549124252979272022560006734275929043508892550766321066360361773779338088793440005337265706158650518439429857352699347374346514746649205451863648349020587047286590119140255473561368793983582503110820258211827337493333454912055894216187744711707030933154471382210182006206330793872823811002604194189946953191399492729869163262422504774063043823052458483694919701527054318567537190296821660462936340652208945825213278142636215583000950642808511924471480837271862061394859310771035346948901551922055139752475499175204169163976201498161479659672409327869350070203974141793000886795951112505333188570429833389557977909164098072406177047333566567801388498259322603351464446833797753667112461291484797474052314261889579574695487481320290838233924283229616940632554662771504206062392208670442642144086203488283930618933631008367135358734038771420180726941245580175984775381240241507938914136287336050739792370131221875778468920822629009111588443146514455556797545675984650114533717564655578673548642504900673102452358877107695770371806991265857313614825370163438253171478791222065182187824859948440562324576106005313664596705294607263087361377615335574581300534047062086689977139870847371929985353647322907587539911873798892594634488198449239942958067134049489334805774277238950986180174403680967228131218709024879249540146623600119366080056519638520661493303478786835250210167626877681151272402526093960717976382711379340314838546331905297334722637725738662534958864108721677465569545019711284423845472599445016720058871906308893826116443550052030899502047899732377438942446431288743865573839733291129309250658911101268170340792753823507333560006910117914119852335787059257875361764273541944377801603644335706064219303852164000131527183252263633298989523174127943130996681529662345511528303085022484725981136458974347281847137261442119915541470725543297869095089694423296427942195441512716902285887619578310767912493187483016515959182199355662876393061990950708601537788372996966559426196454964791138305356451030641403652996842908459837032177327987685937219116958349333407525464955673329757543771761041612535595138347164261368951667949218686314746549686826631044526048967846539625504062368931760167042761118270133159421004994702918881307710997539640115242233987210827581783698909404254746274347359441740970991008046368689909347768050129335932343898486809815486192930473389323458691515610337550111018779285422425246127916543389407260380930425814996165674315044129011290285063753344584800573798489434675526274476994811952134850077985562352432132380506094127746378346461881412162470213565066501809921150014441311793492148581303760592179622455221345937111801273116002297840135134651770364083389141689277683491728618204932511561007393391734027935997919152611226504733852233439304406923087372084390852040964936845351733544677395922318954410802543110600267134899824733930903500907197793301139506518919691642051829370122812298188420752270948441286206354913606947408901729851850605756359282710121661153893033695165132749397479879420968327976716109213924176675928944053018526678797335082608318660214297030221801220052615078763542960374780821346112829462194154267513675604703330879358885580682494831276414144791445517073712754772169414110345146408570793418661052468454529629803809471450132484759486408397301756321372114758200821757137499948833543690512135077200061603858051599882315965116726704120256101575936697365247982879346569585204922226500124721708591766077369061081779790737036618729895150511764833990525720729184501132336524396934529054239544990646377184587857018660352510655463478292995619843008595175209966827940478006306895912364497349625242577494018105308368041681447021899418814065626497505423853263613593064304524312301446952440927664325754978453756702749003276261433820064446668319844154190511055270044622396433189024769256986020416510155495779117582625353166078315103427175023194980876602632109848070100172482510978357414526744195568256497717887407671272875482171994919638347969491811202547514519977918323614527968414023244984920206878089554683160793172195630186123829666806434303962594531492615551252901796927830310471772903741145266242085990846243492715888040552258815092252207930061052853875634485029702657142603678883962978450993571751088072869152822677756817381027053565078285711161646828926827606354094021207169508257320055820626851909146904371988516999699947076711565209317180998245056964706343602255399833098066114980757685645109150134399679042382475927118660261523475827261493720784844681153318922466095645058849891610560480394029172038883802068642066517975934024226750388394143252121392209298885109051871660825063706789512117630741502772168564782601466257479191405106865257763179902039359035123591525819137336011964040507243106597750356744937120841307719679214176713205857667968093363493188158684151959577741951443454824983669682258093095428337910716254022642775539087742097725701371773554991859416575398978817273711964281653343971035928517041945938821832204035000056694879329485385199010498536601857534207254248580564207587225755738056638902276116439785929156273366546198742118980708437789798910728208807796812327499832448063560238873085900707387403971609970344616832840713420956820962436226564083077466843704892052180275824648091516272131050115982950874233860123619414539490433919911822380036865118600317096495628291561131508698367372380568457771012178359402749419091191842271593243059929551763832469094976754918688304251521120796916322773689209855063414604120479274503037169479820313569040074522103622092563241645001759339474766018791771560891609129285689334874847242947295750594199593227437874740298168718475695298400345218596881087838555402155477401022407905236888604440194111213970983685887960841242545510467649540994170063535035398935262825178491900818954424249723910806620480073264107620862335909941404467580752313349205575061798486134827877779220561944735701996658568829884684123035335420577547065334675875195830540413963379198233559345249610686226470295312521923876136249350457870153901439885195906508044368041351640060317894356395585128226316293100720666433162166417263014775341269993554928050548887295911391537138418740045733069281551336767764602737693313963225220494626320627992039830646241184286969044755230038635992885731396621254097465119762479752181705030895040647798348651341927371242755205273958200088379003326579729495706977838564519887094882915742537675641483802559446226276792397583910716543728919989305630859885616797893364794335098851205149510751343412875517983076797298944578711313749690170775788139374288398158007489492476636575764294527343242693915159565254857593704722698981183778747709767880849779162153773226661283870593379836528795318859197006085178560182505869822771379351692615392054708044641980126305000401612128543489952676139948203689740186961153640048652041844327150101520845804531724816337193691899871497111772885141958874465085442082128552873657574754974198822043212199839010526102753915348208299620374793928900660568767236008083546331865911451435669095363040404828428751539125501734615817531980918600819508497119775707565344162857659409604017601672902132262480575564274464432948669015590974801637771900109886362455410711499915463333666794862040337698722755296995958159439794203797457430313031672479778844951407777383634573374687213571772935509559881509672983173508508211164226635031028928956013000811613398982228675849246272016083529261601764217616260883756152114210190901028562664742660345524217240068471746747401282278447665108277128410135391612210708909531063745582561587982294745523817947269999367823313983761374411602405005419154945533111919519096294147568185466494720841011546174245980623819822180814832934434516428084855845405145564769398773791088158427874170999549724012878989379197998673957958918313438961243718968216725299218157877662764174240563614183368645766954406666240296650889657967378512273465130188051793162159849485444490964545702992851546832740201020506689514894937318791468728770682868251096148267631589977175063264087798661985407726977332834126803647565065946221689787157271268998098723587522806518647835882209985883569156300986131987756363540593439944911608941811868010550970100873143089582166250242121256170856449494195999688845250602543174280846392913668785349384135183981618571434448790550317282228833957429734332369048041449394695029512218178902923139829139327998647258187460206936976319176338978176525745704770439078760606008323942823982914156621493368373693197400956053252047912956929764888074071412505556154893786758565878376008831382015734565028334823145674579869363071222810888008964390399855666267773899552149660298896659550584465559268295680075661085942811003067119418433615857404824577521546208794818328709934164927473889646580452521214527512935466957894917737769666629042207093570086897519064517002550913900532275923614673215445532666631666592768828786249924769321162268496395282572239572458002041567930852925310992959215906956886637633150666413478031818354766692872877551083632011991215174657800607473585480135896089543866937611275562276713215863802817371224832677237598709103094221603284355953309867851424505043804026077550087328038441760053919718513071119328380209810972893789275727172567732149647246219374037741383863053980933140173223646694505748610244461863485715489522609607595778798199476338566056949392107805592636176089109963350055257497143260292523142894487354617617943042668334545736527842681428645645781054425236242807613048341475036613905671866705284867029451533101227182123031294274460703749586370681074700965662589191760631729428771009479750775631326669138981495584918778502189434083334264148233663567122098150335842279581831661119778187025607461094841068666100469803038025916573363397396211255022549935478730218697000926190567982452650240202625764046482392830671809662111249937528459952538097270946506935498402285328597078425133722888759955258008849284059774292078527187306743039401653744757209931215958644772741105793441747839306277992302470784569942555123098192153128725408603375929233931681076536723988154192723573819345229325688574543257346355656651953497492325412296625921049104575223824457754087668789355231028165549679135560143830623729227635367307207139221590669247845371658115820992298225289084132141627191460215607410963997206818075323107398235071891791391819674026093288225414055734415799322275831519826202480120624425885586046384852631211985811809401473622610466561775025558230402014027019561056807488562551394546765380299395455330660502422923559953776203410281953403372351657111551797359805371048157229387551336264299376429207307100821967843483480562407096808082984895441118772589637688415750532578036163354329176410105327882136853846946943232105731754373846086266679377080004038383768509013719775528562895629449368285645505355787199220903071034562417491218399756252146629236473697253116687781505903659075934128778390166393962731672720914190620210899831032177156680797373584503993429681528694481132880567103886459766504194920459782707662374111868758579770362227261437597333141978336185154243729725300329621689489739359122055175135496832401225518675296987536690587775297394095197060949014800496588909681385245713364897638683469984440461476114364464531054309145313377173813369113251283650093237756388151882011439317249286072163942593802080477042212912175081381261155329102970081373198552682326382060448142794765580772828303101078756323231432935260353526253808050425601409550659236623929848535532456592312204082619591772364450302453038373572681558579602026047653342571506188343797164886855626387395106744249198716713434836130415840116415512600396517339451640025828696823691915766618529055156942754385524602143251493461004378282700164036818884624589415420490510445668858099757064874378680972994983714770190197798333564191066561401059314234673671150096467033247439417367235106018796415122354817513534675483500446463496881087377570165411812590243447739461139409786583096583147837570112807811764824054328803834769434432174328371653265968950794790041408239443686640393665638313404425577956668146293951682791084441804244098373980564085047927885048889924252418544706486184548244112476550626122946162609681400430112165499730839666453807563863296512376792918324785209430661332027119242006112499721480770482024307374073275593469909032342486777022288813360457433237450713029806476517942115225546962496707627744963321557557229911245031091153663048476836759893339195390001134038196699258663080213785758446684318174560036707921650209937458870781617687524666526211346714210577295882917038790316625863110729565003213302231410561585589100983201651393705971109740360824491667676736998873359458002947399263515043221166672029749040033813292763494234007890406216971911910904591071796014950330969699995749786496382758539215927166035840903474190796775765231019797283599508453485540883198112359087161748545711287227275233138054131866361136685995131483785758891831682358630924852096235585933557195259755685659861189891224814127619107289796095680145299379304321000087615118947521975977778940490131249781534048463047533115327180336188860192776755081619833939527646458323318183152195105302856341376185343846181682651671116350332120887265097884442826576288764377061807467229656970242030758341555468913717830623355054450249352421084902059596929543100536357619338723915170417336722986552213541670867748632678380827110804417834078114478522466730366775981812962632526101730732677748280072065772379584306074346003632505950304655333921723134734551487940409554921004032228649459540477863275264821639753295186482015423914617610000509825595439922585795349873395981608394319551461295151997411554380832057079518922415179397628480070865521592708267485075725301188497995488795846301719918342372075186037712631633776840538811974814620512932758455623324030962175113324258452389871281719710231245443919162285024851435256895121612159724377495798527002423493552141589709754344762937274101770869803709703770381663717093656107318886728062317984513347461750082725107112909428586377157968502159547400811027009126546745551713818811176087250921819761143710976260036052218522911947244001424907507494494869806514636938300608006054241482436767621643685377904232503652606596035652944321452034840905014787261770938895683385495375915294224020809174718958520848731603786946097496093324518955159873240468455393689457806444274939241605248033764944952353464525614285310927696873671611981529946298611465362034739677676354815690861129804970467112441915906418883688673578560662886867483786266230092768825696823026580864965954253027163226888013408052665598358677772993720942091911261544001217270656143137608757354898700300419918926939385974224083582260206122194487903910593611457256904676948563704309233290151104057437208225038955065367915702809874168350179188405829440447689604496760815786895798592309755439601023625652956332467376145653483063202787560456362651030799080559677391613522346321800043755615588210796014516386034385075229068543266096261963453391786155303056700852655705725185700580729202919029201015162098776308581714929215282035943362834962215787305046325413864489888945745712510154931363134182047786367206792805700850464926535683384632424937372398779738515996605688710703755146930154541422828069113898712783613726147510423235646900494352138032530430114502848857494599501169982313108179098826662645230774672872330973029710266992704731556363524015686981880559829230913292309886340946799677573542172135589532332101675640280858092113572184913911428706741837796593073949808366557543664642676284070996776234718549140802330048681961649632954923928080770698440128161803368196170274395452844603870905332891048499298275623290926773878688184018855289645997081731620714715203705976657673194020429492236069506056661116040914262968242304381216993154507806893767375872030956723404540681098603516922564187053127318883334615173071242313744088714242633687343654841041980312987340857743738024917359847903247203359789053600023285607353031146774553345165400302071564166097999559878874837627571293117263533705086997579260543183131489717624687502988012354117680995653553762786170503678662762173654059962348922063893093132558330837802659220501548640825845423092484900033699537399628781633234841379117597476648058245088397155688521493178400738588559988864437714184841462072753343644012607292681455162660064890673208049693398347958817429717580179234241569883771631074931049285082113084923629554710901514040431579309423145018726748496360096487799892994540991635890271512369045553779098747170361638002717645949391706059971515631460536196790664169152992725120137807616449200599705293043063511800965930167099459000794915051241882363935350982965899171279094775117806450124496983155254022217911098452765227125117833374173411895464604678420577660749699923307843779256372908769130127205892468719837241775123646266288394092786605898901252941821893420634617581269461574490167872314154490515774197785265761728603925032310296900106927176074423003913968757139353718764945911129993090509791150045195578906778677277586108800629416875369539822373927465935629944687230134842763250142764841586040796700974143106383050705863661788234590299381161545580190571898078249015516665952439328874947728661246008962936977772373312923189889511618535693138828037237736175699730386927045294382381181200154484401200319255445805627353884693020859497222515491442819824618770706769921278676928124318337696996048558886401001872116342367064291015048973605781057370950554893080250225492979823272328220824031450304483321616151315195114702449379018414565839282145070670837128552437001650274432512967316584868062908645533394574697422856825437628484614948182148182154507281974263625334065146570988740203573963898177067555768002416125198596470739890802410887681778613338456521066865329463748748099963880322040213298643394588937667095725837560175126238648032890279292572031300005310962000028676052034346802113188270146201507661039631604873634137052607074245202428175808217809905339919213346677916108361190260296049928985772926564428245146575051362166395416748471532439334320400321102344611841956493672321138467016768666670555419254629490902304432636209943132890429445538544901123626722073780167129223124280436878332664121197811433951251768357729398690090731810399990733012874337389517928019301155046115897296068798415957001192901474633336984729599396773346211646409230081252889377575356680538390013626539693466461860349193337393499376382172402612504885221372653582326322330003422341460264739492962310142174872879240846303650204167515639669576051847865115835145511798470729224233284670182126785388284504901882568254721804020034524610384698992137886122431635393535164839398490614342576128485723866190511175518792597856029275494191830995154989201136494959101837605860020035465400479700023485736759025220047019580676653599978006715896940194545055933607913778140727988515632321435795103525900222064288429645085553430707984663698755692591391129595324945725452068070272897786891752371626676560407781720250461741928322985546250281198537953453921664740214492621226704894095213983444732144932424991666337836461526013438947709017704289037263494946570079424074135894057162464221244074772374572559785869292954265602922901516772332363349367150329399163162394896279438331062572203828184669038669646311663007204676067112548065735874094569155602683798126459579244105916699959786125645306919599934144155917596229630408613500391016643500419140686302629828753759925066670986393653649721635778821440902902636297553939153152296732335778895720151472643448119253608916021857943251420857728044482697497038589935259114467808805169895811437839686243948477842661676778296090817181908362721189010569674440571446573820035138474689556767734707698694727757664115512386404269482070594828705329385684900481705292567060570867715800713023389388669124579090459749996696322727171533156733621379069460551423870979436679584482577009922919479088330666410597732912377914067840050603331745909331199198508555213870718665914098537241095804865440613894413163985943436899549155165592030576236945333788753514230603951199897140441059882135501181615907794151761167503450564079053224021018923107869389037151298185247779974143684185222431819239644570445124181276431648652169886929039004050190146985743230770990501071026956173329418311664248652301580114954913450547321760144855495715794326489258101817101288043561351010007339650089416268794394874650080259078679771445169903581722341001886704109828137010856421302836842340350692617328583400032511805060238975686090321665567710597233848892008854846596428151516249193671510355788972852454984106932833425854948478524455128428183034277206702667717526925572221783380291807769894633990352994743726327655809341725907784215323011141981248899611842602386130222821739864391425353812620256197816492210021452585611390842384269898383574685769236224068451891828143926756079218299971736316073138139283561521482061295783812084527638154717122065423253714761276575234932972623330065626893235643457911175962523904684364177405256902376640120902417176993992196843487938991035967965777034032841146507344877392091973458400208180638690773039707280110893440062236589174242268850468113433053675454351307372383424323429805965340877220628115857217635753132767040735318815698501659412745548288051241534481317241872567821400365806922980600740024419604049791835947921662397547210168799264957778902595526222392108494688862606237687691646471577660908296222689418614046291232658071568153600946300150926365362225699000012612852698067521522813923370403139019891001480444536742995335272416350039445037415469383948814534078309665470686553217040835888839278688070902974027643375457980963926669350295877008578837947164641103388471137302674425054310771789140779255928637760727012947375972500139149584363606955916929381270949447530711361963275432716172011899349770579287378183479470618496522641576573863947620112777375873750438733161690835020892714039877119628758573012894028239272229521956003904366513703595238142802935216535153170981525894125644416722496023224329790204734734020251201366954354788578335097208586565995966537338868912000274221342152043799633487212930071831248988261038108157411714480289128845996621830507073178206822390071216784176646772082585290705529125090141542313031316760021259854045145994358546677845994360730636947892890500926275617024404034211022824139373183050852457127472518727929840646726347168947082255173700114583365804917022057771194151837116133192488138503102802139885440319641341062604792712303860009722611907963507059625046243058896143817827614262687649488309119242947882149811146900181328667412944968742202295902627963338834538606409207858206714125132700124133069472411099256060631827319575674754310889038603310167009642830733963524632969408101316406988920503496289338230716195626930654218595214621110334508568638354857156306431281889682513083253876941688343464086561330921627251101210323941071316776086757734713486324604137660617297198412650446715036659040945953038976461303331842386161406124321742260340626770389611407717565049386345464583672139979460743756276432038468792397351766421174148480059826118341747308896286922156606840564252416593044855539424370488452811433051097626694158505222181303113862253104272917963880740944275633128809716378804792843762938630113613564423170371125600112636177119771051447793712079122805056481665652323007365285437370445934130396487779077802386709732320640611723795038016325095806965029138114549351921828576134751250840665507513404096652498565634471226855721336225767672079682947399084781836414442613239161976991862417542019284860212649378617092220039005294499501233299643393991428127565798879156716804472770546860893349606851082940988340073011021684728158148857785410748304901338646397098555114142358854647130807729109951426669431677921205635315201350942371625797915396983324301270788555467598472759195251573851818385486807354583026668741494673668234577739622084599236407674658665703962579557290271575435896329244444562235137812465567193232044421835807648794856573295698229227457023479438322048985526553388650947514945065887455768630534980965085059168933214941738988615743855034588294259464434625909676983158976884615808711912965014162514374680554328467335163757722803090404310742613580863281547327574327225698972468457049543083480754184372650513165599468355801683431021666625801273530820759113679392044631271572130808196402752250215730926015599567103373667943198959239223407940918846803035027581240612683661342071729216183150481738094847831907050779919079734815897288633172332343612026928476808582218870475992827029177970047117668771156507963033146428824574709602567202298629246594379163833504594271965365518943705023699137140017006883177758901113006086230396711245444864264349804883107627422256624667961170574840592546553181295615254100761716045195622823468081827233784949018806419542525991050592482476622452521487820769691711921066096741677198928637620537670009426507763032693173311978688252017401048639322241531277452916072497904435962279776771982901775615571176811006926633402524329615562764642988005321592203304103825704864924384514600122248775853810142555133227207178011496859555458835377377860832317147766730382481654398245601120276795145702489960943153634740077216637748444192983958547039292504678342569875108149936748445364665574263172418441120700235958283856617291810316394592844981909531682329441198666399753501150528100375357216327823128184484687023743396532343915302804187824195341529008081339257213482343755351543149119316336401777515757501967566419162771772276380681137049420463768698791283285456580789961968450577803254325590043561666340649579433706365322776734677865174558037366869537047126570650489877963119947109949925242281960520967893196870697262076977248108146679801301897276203291079869802247922421183817232179462686428494672192020171579238238357768566308032085888543059549567501183716831397808427031191357291140136481778703606870560294517962740702192296790034942649823118189308873435658268903499187440262329592617749511492555387460080050656955971836707131122692908392190586528092180081649825737381724554382409606263862039914789017892527991995881025063717218007980095804114285035255877212081860954914338081247528278530735496738436298001876814533879004971357568471347093394258564687865755828093007629949380741297599482008209262779425193099926914415929386828895877401288799194018633062274026370825997658847039402248818593536746349168847493300086149966401971576834425277836640113047037407277111746100252237654659266002305807730291057335402417698675341977036988527844928740291410405193869585831062102798050088185388827678610407038898805612930066140716300384015645663966170583796991827354422334783985097903190943770975804895316267247616035250246982529251832968617436125119082879460183421019739293054502498023464459118080741656390030451516025862866768305312497463389559031646153011287192170807634259296514945342118216346884899734888624282893425623689681827378754112284682065319454186247020435523844548310604658908685525785793821220760688302218135248100702772389175199463840244160672710380519922662479386965050476544265953049728198494347967955551752221059809086728902294057329893598484955586370755993853293547383030582839655346175428110789684433129403036105895211656088142680488119754512015543080417099131572971390257333969632500144550660296176273050062742016730264380568072682231222021523120812073277145800029950962017937523239714199234854026193630237769016919743047047937390935083665525706301079285613683131118117542261096936258283595078028170069863121105781529684090237729009366166529344510558983696679318053077292103009070656578738296311977057545803714381953670598371426907371448664799931116321917251076217955030419788343313619434465359883537683733847037499234934683909977126260301629396004286253763269322856192975241362912528760211995975287487706741363077440270474116393506462610350274297468849268028883970816336063012095028213679267357732552642789160946014860509661512931876724011832904871142762117413567167646900291209540669708508550552313034885846674535963133885291779636043872959803220031836917582543221473900338389756465833514115316484646732377854410839668792821374062523894383171608904825770251056639106636000071947121526773439004112354034355379647891423533218528675077066343206317632878104035487029013523202358967804516057325479177596632714014207149329853950796123303771562210285760118538636602322287992158638665069403420874812936161365147550967921438603289077690860306237707092897703823055129525004960557090762350856671663371549915738881609192155506729150979997193711959923314424481716683638391530906022300203484988448051810026569557133464963853144580449817905118294725853028900379998223239872160497700207754432730545208157892476263760657514390492119952883780168774899930431849227041534809475807138798990628251273526658546023136254733363506851789574341501688438898061336579529666978309846316895165729451540645671456867472547646528353126269966725723897755751225483315840854083201602745139005900251163311252278729250222516498291492140159067230336539779962218825224232847772208380077483748446361230201929938954979760646333975862232052461551138491530312015231527175205724891721371291130709777988047759589687250041156620907262676311959647307151331586559939659166324654483071800778938286090821764481014852731809741483175666836134949119032916123658939800111690915636787461233583358466808305424941704394320485919620550569797502968375985768153637063833204513232472322016903280703900825489105854941142554927207000626677025774030840410278564197210278391246251797861007319464800531153694752425915746844350684603446618193631909683225870972403233034737052378227721656524566437886991251407593719095762114630383153168480766448118117116306997922243694946829266006914296464730614028627647610459323148454981949626160210667641203597571961931523089711552869176024735577511949173453433334582177537688548011533317036334597387258671545261317452363148945095570815467948516463651497518880559185303104191561305575390121143969180829205028418994883784739119799213665404730369975652312018541830270318440312609937399914457764780257813359636924860451449257820434104475477213316165558160506893349619585278364704783853186590657008804875005510520303202729046038871668435565703354037952334153834150833115865529141117526251468080684536926405060780729725185003548550591745415493504100733033988835240576671502684181710146550492352941058457059279577692916990191674498351527845895215193400098825686120638070010880015270378128086400435403703979956467187883034264150280050809687626745344753543147368516480662583608072015183416235349113681855684181260590055990098997646520817951804652603541909381278702544356758924667598564669694970085458793868152365013429545797922300521196931790742391866610852977379442944365571636966177573870379552112099830196558036448316956647994702824984570490417652089190265123099840512923595627926937264359834157930407947301309538943633685780168363458958003706226873793161409597588051556399203968325357981787078080093115511177641905502604097652932926045812008227662750932511196957959640940784940705729389070400763979848768748084354206551869198298996294057180929732021660718226218126716082032404643871558796021172285747472167801329041288767832706422653985419720421109588203294094805903420917374577001905292418559718446644459671705888178322430101715095207269538447202467497046692493218783922271795264345403542746597073523280341534843160256691931858166239077876175379629761622308527866957929322201980166241780413319268854798331623300313338870734494499920399956723346237791077386791069148714519717641627128245748244180893610651742061809672556471696038753019230634753958071231158083756500896936130561844272523910343581946301401448638529617423600007372993188737337658337723959972167170517703783011868671425757129153789753593262191953945613152862308655662568049783391964459272659178674837396496201883557599310979004998024337068399813399673768598104225020773141712236481275338808404338009602660638103861744605002883155974700440600829738314647807963352889703187870565572690976301446278035863985097607963202542788998609823175859368510737366219111707575001330325759205767392740653630091741475183067060386701775305804605254644858270213625001003170734465687416527803187365700817077855954943377495611382602795759594091789921332117849983587721463350399131864920312459176809805162486354517849784289669841236703558018528979535119683431553472737236977623969742569378328093273529600284029619418485518414500533946358633258152997136636973938314431615015235462758146023837452513813334425745920740442711112951225061625207029131195711990530235414759766397317330060126104878474034252966706846326125291736513518741541258277397446703663290953373549654016536698523568932120394382760747285729573712265037167965542619820534763050915820598377195603113634712755233006791927303230298355413242676289510570062421315040824469495911223993073008450920498836976446699167780379223134064694512756245162602049941042352998561043954406420379528412602879997587192527431301078508116149163844781839850727607963760515200734073868658591721944572508786422215996076865434851892937323772905909772430716005030487197149463563916042714332537927924593134993811005124897259299441423716381347200340520834419198274585701397145654001370130720514115464269722524812670482933587733893070594401924398577399729638531253937345179159429082598982908570591601901157189511402066721081458402165635895238035934324370754667323399645427298948673459542806657246821226397786652270163672397386170485363331173754472022967498876287878614245448964301307353773799901923153300129724992251853400557837968486716219305188933478642869809201159945331339477226014083081221474422849444361326484197072920510909702715019982298497001994223298151655010118384096584874338740770923248300038121852384805421878125640819772236118907691622443031711179182994546879358219815973782774028648677090272910720671558284946442373913686891447656812930279384695178196337394306670290322573526642825473141136505968914023031667703398200926335644012289623065735686182937229277361262689690012269198103871221904583796293974751034836723913457263201281823870932831251983447088511616472713926017863658422867441091713792407226415071887424828566263074313674870249691090829347050832483039231795415746696781135387827983921502034508208517875949406085314095119820380998213585619086410654598443271661492404786109991338567753271052255196711681018009919636163159034458373334678459101931129467182997069150482996283055226547875595597327533358565048555790188551768500349398135613396815204882770000700921562307532170733276764516027043903876139833960905179765459653909661724144822211710808744640082106849141296149258941260752274215358795596464219423794397867550191386278853093162435639449307162961910099959426701563590590025522728545057592387599995531895937883433904897487121872158157793818285574916564097643582631456878895764787533718387819312893359089310669303913244827779545785995460454465359546594465516143111599367700517020630118596446148572485071282357149980377956630558084233752228059316022590079080401194830171222686931194669401604324119740927454951520255695136815051891048915879462133573257903778956703142420385932379201153210248998859985569459074662585013654658182680510822907687031634769915643553777077398850005451701463469218821906113414080668796949716205774309249871475482128633527530012857127234726728885987154325375316991270707388389027049432644129074044865946751659389215333453849607254790005856602492882109771547238287366537030104875822744000455623493589510754514831426828626775781957381065008238027129286286819555106317237466785675934537233194842410938494704591406263513408479109334087909849724402779579221387928792971495588039568124641196989189664398669342195226614464132198113663903902739004556468797257654341992479491189496997980816208676596437951030018296113338602994255834585621060274784397108592674633076944620915879647336674325090820786819801638035510423767414874537442894747805019692801427741126335191226218376133496227662305854731932513881485612774982726245018992548928278684255291803815633469514127139067527028084482867018921191378349126936241304966828656380487594069941981641983863364344516589662479839459790601777880074919077414524335805128084387646030635855138604939129241673841107659920428378687494645724045166676818543862094686683903525829588964914111178930114342526671349264505664756388396444007850954624714526642678341441404425315858754984324603549726203228052931928130990377960158828743907569821186704129022531823811782111697735193031888258111585990586983788952910727399958582201544730656839124488107789180157755317061356560315534178411479463445853592881920643448966814247944263346441630293159741187296453693170059129274501533186819487258613773834529815599377921347417659027316981381924610181482848828125304890654817517597485122295699457079829116643798103267578558786652097153968824462557095197613825457940361659896824412046289744772539806215626873267093889084790021067060678703462981837340851170176285900143607704043339767548739085869618152804554279204006989242720582403850162434451992437658037360489679132791259308712288548071338902260773235261654433516132117404406077918311110674559285397311953273556502368567162259858496249900600582210413745285649225887423414662590633031317217223956330375857787879701955103875224447322966908601407606608534499408409647873608279380160818607821879312851451747188033421083385683123284437921076906006201694621590786460263817339215214089569811811802629886728474746087359991487327371846339634910594611028752443121311861392177050604704533620473928200046653886355639025046796860892265869597714779094661302756573075683183044138433484185863627913517995311081148092083099482574959548292523793104878113022522211117835576408181125673213833842917571714991187313273139233681918769093678393374937236856035739637368180863681559272095562995744739801422510105988675024981607657184079078209242839906858603550114632912845085458220148552363095222132481165766366346387969188777843531383646527010339348107318706869520915440674511041662002184726410606900529023558550050014649004019175643725701490461923676540538347982028577671331139443258034154812439499056966075282914389631323316212803509784017761387050096594779529205512294310731472837448544371517174960620580433506190738303021065449189056894367193744203866078457624723517454521143356947451615397605265734829006070322514570627038798203325684424531157692525142263969525613961289565017376357860731747121588701814892780751267064755246353004350155894302074403534195677616517962161829166472537593058848284895213776201899136239795716748401085608844914147932443634262153103702223037984123370575402775454642742224900022858016468682397757120489142967253119283347406599484857930344087350628439600072999898791958041922869854613278891495710060253499060864881198496203318156283753058286566136558198850791347824087442342002885707603597222625163910700195398206956480780665914284980969382855261907455018401180226402661883469249535735987931627657811911963338152794623384353960784203885280828958949296540304407183689463155680829245830859943627775064327319950464837411624032814673593578390533063853883693152788336872687397364647637407260775128507109946348125443620903511220315435912268397065321514166800406203425570430548819389322994877206394307446760807603067168030470856861124452686330164748785009568822450661697326885544950552553199245659113623080594206134823758731139617172454354188607337319001535579076908353998527114250588951079237622752685878917011857175927293723451472645401354422389413410856796194924079050688565343957125038364906314625043099735875773457007412726888448637364254608762391796409669327036074880548489874000124333721218415839054897703922996118898344777679575768252241097922196352026921959059950259425645303286171907508116915987972147295613570803948787498195570353098043004000790731076744348135233200914856441612017939402773913881029473461164087992041732724904709751084651260177393602167175234057685839037932730388425981226697155448669419858728929323761317957691239442676587837884654211417923827581632957292732252199803200019163586420709821072606229644048580539133514793497175523159344001755764395180320864734624455227364470903039819159216114097834636127400686752723664044561772052184467045175677959128861381453742256390836595391042568732263912057379563347234862084852096960057555005990106532148523089303011058554525438427863255691606341917154894209186891406847403997093477658901847812136645438753477333766069865514713916595556995080697680589418555738315581690362876902747277979344193533886706964030128603327420250852817360038308313767681945617867556394012827207381280682893066194163052163653354686691527030567926650285243449404151380305437940782885250764951206694246991413457521995617371190350386979978131311670529629787202194154002227147062192860041911221945101829507401808575995326262661029473360519816342313084630529422926771842456796015072822427477098823981954975147918994231092722998714585297531903189982713431405865887025791245339202643034684156081867660519246754056166078036537945055889131865292208336217414160493664398946370653029474395070251343184359820399235554070561317925558447501093446010187229015502559791188655474263327388595791522330705389742247756751197495950884112965053671962602000169281399871414732121349239150733328639486026565360320913257636998050431124758225308037288308844264675034713373786514340730317980856031162459900695479219957016698196178488081838810476778350335584969737466061911051405085397671642937483542139332574215465005332872239877476478201713117575951378885137252979658208897645200849882743894125324568034772420526776128196040136816245814878132998447332848563359232000185385694888390657136536885367779134207906176095134655157237527083978841979534394067342727710340924306954272381752693621762708277727008846717795059641535959151963870167565313862693988466137369295146633377573569778713802050179237843237781530387323934909448084194111317749045779646785961631500472638234945487148528128728095108051451664285383105890376855557072757222795078758877119020531067265442632066636064942725148945517035530352068805876376430112137722300080867462530912306783492074429971392990091872513865371250321517492663674032259936465783787080157449214269959988011285635877790069969928787662656701007949235777509047049439986640793271487214953753975283905828415668045586759394964909431837159289513318851167455918903853909304075001397589573252238917287550908268982936766932929915946775413199231741362510032671056743523694147923386823543159900029574066279627495625608744920523615068312846917240460897171567241823724112555837411801812200730671394518713876753699960099096925971995301435188500539743898235077381989246004759167220086944710343297895076734433647362079239654510826050012154145235878497656608365147283618359488090427261879136601779174128983003593471026882719578284631526175486730415020242065597521003454548980899081972632177844057842464485177643417739531038090257033407890472677282622108507560663975839934995406307353636345789651688867906314033174089435372267598596532668837265196112236278972246719450658968051154586540001543560374228117647606631694861968884944053256826005144978355752472423027036797941306188368823812727133806332549402432354265063157364094787219983639687982146401007826007114639187414486749841209461182889580436626785433072132318937345968262426395292267341974357290992573017054952709492933774765788816484343608802871064870553221315679163582927102496346115045587222687633119419630490281319710697605463238228653711725616718015867605884465268180478323707308685401103230513655874840631497713670006011391303709299809520039027315760457968940869208299265973883910014244338829101953819545822963110516666128368588309870743118935437801085565803775347412482057180637921260323662033080620127635518445815657687300848213354904698063157698273951064845830853288338510335431975561383293934887323470097416827296345575709563663337684634354946213212015773519113278404454392950010085538401516468666971200537261198683508647750163937335779718430331675382301263868543857758035960326565699160606136254942857709430648589371938925637163947171859133806149135055871493071580872384115303990180480033029370164459002833255208405678969768550358289588210658362017789874555048382495267112090788374925456148375068658841477796130547150934510305503624148811698680859212658157753939779591843547139633084330304071629517954923014041580716954859809113962319316122286007490374136378966674423079152092651578397834913775978650882404911192244275739542556135912955950186617397849739583173342919073771863765661664945254583730060100382178709816572520725951746072074872719121909236819744349714788443665178651957486473784069020191209794461109112978290630076308834843327745148787244061441751856996213922153400031229098136223768638519066981817197113851678786050078577967056859784799213056998668115308010479885760728938789358887565528164883263989739824686451617455995972081649850675404212142448220113492470262186587971598807702706678020702463408531773321262823832079986562695255937135188941189045596774621735372270591661197450365838571026408922924172410849061586204843864257766173689562134366037283074348987984395226949844147616536987604307311517883828860928168448258418309737182978543942251551838668666756696580005351098568157765951555556685864724463519173454163439508799012042809631229729767551228114901718125036376282521492744935551836573907133414564026170847152531856831635837993869348735260079396079497219533017182469223452540489112253630689954339728539672736322099661135990998349790876341649714909867547721977951399447865736124350447102000242903690696969506647506764225527383535187208049426102673971945817319225017592005172711233740298073551723304558369112281912830334383962008273577234161469952244568297946199475332387908478127585957335416997741771332315849915809705163489502298310307377323499788297491836703286427174974142791472995534895922423140277437433452394995218163561807518842951138642177583979973066029523406724854211262831911299513622086530372804202078147016671461488976239159640886159793685710242662034609821086197101142751889261851784037510211170921652745682757261668223726651150222103118999470168894717481195003529492808644985902695061198417185265335808050202390314885126341329006544938268933792751080810317214732009478617421998980976199017171582487408860883303941786046762184079107452127347794680988121677564649861740938035039754018589087776364283184768312657383169339790186085362773010544244347063753226793349435307918614337479163796540417146740651006336275022198595513134867036937908286227186074370842809020785602251411817970271792319052804800582809132256059331808222253308273245652163346458032616741610411860875903339497567760993576284957622274767770636851688093615754700862684217829028882704247360993920551477687977743985764335780818705648326057466384242534242557465129643657500665537133601250361279907295217554928451260791268681427233175722738526106374353912429085697939551194277317496849860120926328491121726735852939775368812874629394397033201716186116575536196099361011594834332995896196509568190855695352356344700593653216763359070510243058343114082592887721196260137040242938286531852873927403390354961043259328861392470631405133488962119537050964613798877951896866148311898318287898661676584270361310000112098118612418064770489280878105923720380602384703340427176094550533025803824118521238998933526401433992749287036470527574661392552388135232944494938760753191079255062653542896484555678939352860149551808900295806571225989593700868041450389682173880561886665184085678907901650021823096500276415343497962230013932554894820173258685472656430458912188061630902637334930880197316010838279725245236191887384734070430210457428449096283894244070533050854442864484930097091104477176437312907931230169960171769211060240838310681010129712380969661768658430943454339032372803423196491500023209581405863651884453126678478711998680089955256756610427550074893391416560069772520857411957487550841874878237616324505607449213735556097211204790690205034319151814193256905841654942202887788721592700713412669625916004412916150982936294003376843987499051370321076675845585908376423006758367315420980382961575673498621062015904283613899670933478608412414318260522593732794956252569552815795804827146349744177488534806363738498937130752059695508034604455611257722676717994076070981595154262378080694932585775704144072751505831248831733919224987829378778818601093272161072407451681469476835285948961226941068771478102546711417049125345950515266426562909530570257716422443485843745611043687651201292163628118687689492654163428008294717656331772515163120029158387289456922671663986569218294412803738432033721348207598302093956093926056153484738844309893185696112899265531270414948599430602199146752281902771381995348667346706812693581048494680736314222796033022299504562550690591565260541757516371526070429542265737605277057240499925948268921386865973667857066557705895785145247199156374352186456949013000666578369891103314183269960124325356242249707854916340762527222796875789192355889524116941029632158738314362299710257216140401129746850885917858319105641729612623773328645533925654417258925534915661242123314128665060928418726401426974572193931579562042705491752887878032130463904251446225143638276753679966150989935940112215808201522837146673087259883964882817123089189956148228852333969330640880601073863450493685513900285246420407841520132046150174740536031253545700785482482705405864329371768630431764930780988647857898618773395344686145649079117821083706360327307554476525265678207798681366196657035540095500370114369492697726204758353376153934054955152539577651425475163254200234131948861431570321011619410996784181564820270376544808657131308124456626599918575743156719028549009511412971206473885106983365139950651313699604294516375763763790485945866575609025835906336423052153570820141699268310662940799769098327774108692972618277790157846013650864594492420213431850245395544867714323115701651123069540956861766844520473303280635784678078523567622670836604851681594090958070697592411021641294906159031461786350944008715732227866142051704394312163401120857706670659580252683323607078287396286365351377705769483370180998543820455096177066550920411528705125843628247795313374082420429364256756346069000263267549899652117985399764788767111805268312384766653829104622633298696324000476318150357901503845474723020375451343171455942104973329054481267972285164189894431167464570158091007865410960128924824513534437761898346468217759373628780080648804192932975781462316326922475100814651041493281074394986752791832317520814820560212782276127803790088746079317462845848321174367589162980143446085080561353729507603611375644635742064536682986390946408249493943268887690560101702445847048545930526744661987007382074888809193622875360770844581717801576199202593557502494296983939457244497055974180808971447658807875734751521615623937319947491867535355366915996020171925701411141877746209200509249527039571309673947191270841878008929515985551028684983333325173657591980791678187169718563569294474823665177638087421137434759029929501814790260966968482437224327891166868473588015691326099086766486917072263216814602911632832872106937570028749899452431535177121225622439644055341024858136652386625178606069888658212999197153636352997851922322636450329297198903793339726496168065538473214574856728597114967785092621445133064994794855787153104944148959611117954101787554948392541843045818530589651117927295991441032553428937245181014058048049450571502680080466213827791749947297569077982037822423725233396684090534864064386098318045014762280591022968504229850456581020976337595009876106542444208270202361614758744015555109627777031309527586895529693627899677118818187451221539844373256859522237670305261144450729439049963372078645403500155406301811721287730825522367337483841943038601234393841430521976241041536351060313319075382919096533456377262510375925023452263131966585347502907404523181678790010870227167401201411083950104733231755541694399865963431690709893242709279734752388787962374609520207333273788824434142938850048923741154650847218130394594301068279780356396684223654244421320752542405787712010934003934528112042933749908678297815899984809560605092407643180738881400984700385069512658167203955442657795386011985415165226840087904116349103953900822387248493353361880728235726154271176073586309856047920124575406595821885105729240101140002514836173705886727349900809927368881602991563324879221480858648934673665120154869239769316537653279734958471471389787514562209147115560857103047620496839523375521324150672778671406254609083952350558343773653227466463092222728858177844015443133420291208058221273045214762316004612371997416624542378766674467779022935432742622196912649823955437826348678765394393882134512548675466882001160189512430023465273990294877930693380579101251099566184943904216962968891555852941658687920081159022387876967127763345785304167850145671606721611124245509725226723759563113704077222360738393335456619241769260446717507897253860914232881115600517856425724359253085858279997558790320206342147837379857317301396052775245207290046106675919257942430967679395072270464227690286521678342312874709506396600098183187029338414976694315057518191646391047809162817959788024371184909266649895854766155368184024439156898533009003026176960152497332864268043167245977622779825768796538691231889302835770258255183390987649936292187742475222791627904205221784448039948030255249215926066143490143228952790665754126900234525409125607019372225148765734875688585499147307451939454849108908393791572772015847192761510503171293023023112148618717090243506601823547949753843327009757284662899638914118691725983704290772023326725724864320775055778478313433646901577899014998663145026431914305644700194659317961221608622187159178198754822037566191103271953665799016341891281433758596159537743916738017489503011806862017126801426500353219287473342805792955622322965782822195382837543014368668470543934683461367174368543020645044186126736365153975312431227470352331089634377763620244977003553090192613965608649086308285188440480501306439590957045129554786445575549236956844523639040528683580645932471133612809091779777523189009776826174860727878478080930702970382318077322564954680097487971707181992514981390791350229166440458377113743130282447179079475151914730079895476095274687335077880667299111510399841338459530749271233946361663296907349708227789582435595217550751602965540916963853251930373375069520196902564167662324350247745847301871551092595468961211671131418309819734112865573838372647027005900161716592006652245035627869624258067236958507912809607586890647927959293081032077153387070683762270596562772529904374569729820394932984261030307469855671319402780746979673854211422245616404421446121758740128494197360144796894930741204828577711619949538910841497919116603466262621173298168346107294307047122971456038292580594184705380686076444433578565909508013197976191470740776868254524294792776365316714131846383741837034310258435055820033398093071230716481676689493178860665662297836809653473235203022046153802563397937786856244393962675576648465155784083318656689208247927991044546648486693471739377135384446492242536477678573673102836200528134307655781432540452279046538626953227178093253988322018898183812357828713243880367280494193391617309717762138423691952132995073884614944010040400634618108776486484927775542128563167017927950479555060978672954039342547387510808443051984787120223528697080661521275947077947588412012290067688618818130912940699889727827964620924121268382300963904332798997402179094429992112281104962253389875478791596923284808757266803753316151245597036633558749777150358402962797566586835141330119526498604184897387096551014216289630862937084134208020542140969685154771247876269185751311021253708259327114125612270573447726405713218605529906924782394115620701963850451826886280158944139594597198390329946470072326095296971974074218828058136834980102236754674338876258504479107510402689399280327176197715733695325560077657725437472589822363399929172282848279756981453625833778298329015097919838351690237928859151599012830466566212963261338095438211566573760726739835844888847921193339941173894829057639294485408934948723046687932928776711895569949489294196657974794368928171035135940181005024918426371726398247365278518488120732039378731604740539093864260949568069009168765157236561696122805202440345665394289119390340980918624372747862839935582561398991078764320789451887188832581351918576240931497510414808832519361767153024877468698955301155360168845637201754344567212132410450322026431932580993108210357251669873493644452035133188672015163995424747896234877528655498586264612330646377461113316638928491572173771405885375908725322207731582405972346114256724576843540517887054776572542522251477616077618843853120516747337261212494932327887603804932233075247927543459596933038795343232111196655061225652097025547381539998252284188152387218832777044415307929624178413893494250795497059490912419054394573938057931271908228366086521587583901662369665816090399989461509493391638599159220983352091878854859677504350770318216267763316884779054499689369130385083174972339340071898410237872048669706422717265773320335296178724733357163536553887131687887538722453500451738410143991169929498085019279596816682923784725528818958891118748346369116404743216642952291863840660891881242547076182584866571307976940722771145361231561046180301427887681025175100168916799277052318927115888835554599489126910588666333256228592909420590774657479622100297829713399935955005622414316477085612212705316766310728070847887626845644716628696992189624436790017422930839818561796356642926855954838716317270938034075485336033506265873822081587480141082566870858886483379593929316355771588528319209525231699104027481857561398676986183299023655960152249334930377772357316961606276667038585223394479694398464636951133257233279957555747224566867190096396603173272578552974633992880043013923541472876851753326750851752914981862311941392046757090420455482736889237567792904123511004102561180439187471797343477007611622759603541660639960670983948713239783795533235367956032454793996861727615100086055761057876465446809470780616164032913491688188743331219088614182203292282026725825795636138373372356649693807263010136140044551287280453101596850377428275903248723970465171858312477093251977330219909733715270759964675147003283926851958658663965372937253201319752169560157780757677852267129750163781294436508238431893648056810032392662399939783059769168661041599091331195756383622020371101394941742048746043377310804350463734697394819017303030679221086158392189461691115693270578781470072165485044808346406879837549486677529505307591333553514529223199577758797524760944990922123660631726246888640667281774993191170691858240348808096562714243405172019867440044618510698893983350445174277649803176004414016356601242990972083119118884052694872883879798959222574422547169886209035585778055651855211108842344457766659641801752844946138466683116086565568833418486618118851726780524015362194049035182986158536500434188573244557125451431323227660957205673650033196970517898103728977416034717278387834146168850397985444376620645116054341669089140272507314172276783495201330654069501134493294967904813946576725265668267821333506791634702429715171122480965965249398702279679536702369182569089817334366430787435882505481274707046969119205973923762131574804264218595485551539971571227459085442190645006736441468212636736309766609265380724996900499904360882772744790461982697383657972293357493780716811934618906283794418979561941647034593900418715015380294246127722770949129527003434142566207175186179003366847672417606521018954750109925228551349135188722218165164488886327323809372304500092770075402712927164962869127498716836508315296725545960463104441525495283571470838956697703239308738049744666302585547340729072252283528814812634518678878757540239928393606900626349225530562840546233471903257882227052069300046779505944157410556683635008328990715513318955485293849564671079510212024102087605152496718389780780147840801190622210472878786578196505469367961514482326898541763351246688104755292364762262893650219179095695137712761393913661497655269495016262055831170755064940279724171798903505103413886170874236009277762051001174059821968531681294819068685173093994716451285410962562795049214453430530806999259693822188575606598946868458910177153344041994187979159455628964307776796729404169750857895230192249444419654561380735158588142416367594602249962667339641868497475174224634676919608972352199472931791427497784237462148415414378892517960107248100238282435512510005822845774704931989257548293770892154829763153227693021945718847757535450561040579646590770491657134980766903936207396442566520129888951687747134992269810716305204813683504841094258249677529156686439743369812778144975842910173601013374867262485718970100880920054781903117196504805077976082327125023969414086932776913398430231441960370340120761708260832765824928319266927952403602455867472642833334112878447523326203312634119014130965192150802583036183122763729560465960176826805381502162835866664230053952159338187120024703392307166468090843750532309070438216569225871353765038840872646841722145601128286481713341553443286143069605701192857189755660815084954204379163882794203734211690930985696446907388913078019754158816572770067685019652803250823160766461616242672697164944362488223619592574339894613867936385186768710285906821721488777402042067444707684527481683883257059150623384924115397310263002914824537578868969819939078261649973221603011731283442079799390889034863248598536429665080110805930412220316686384440425517267949348107303911539487565323952188816600082195839899737379339459746008641446547376671160161501089414391720856631029191377953678687703201588911856922053099494103758660232565142678804009651982186040627532463858450745021043063454146379245900640177240357001919543993935583879905426279043981710104053547530634433032954609151441593343198820446557194698157295871772804385629516337488974352288440496084944282856427593188730288089401336580962557834838836568972381874664737540541740624820669602375211364311259970502285263861310085797545839246874389779174686839660852394003767523352559623450995084523180176705653923201760115332631534827944576399960171148380202253845456733209917760763763306382009312514324473142625954345094082340465863860513212874690606847009423510472287160055002792071056796757833505494645354061234152171765235564702587278472369298379264812760750128503566584516683959000057358035334693395325399497054501236694021117203208606056714434999211135710640851518547778725144123995399444475411349170714346797079673042481411380749465839455877265524764324315756747506064131999734714497050252927846026956852465535965958304517346827625084345127264812404625316883417613502091397172251474415328255544393021342432803925120187260695035642439001105840418214774915363086327456903104273777046340335951415400076678705099702999197590357690962687862717463620672408289988516443939815299120186392058254737700527246387785618354394481053306368345365871723749679927190819592212870152365667306296169714319144270897186264139550760223455359261741468963487181881635858000940796331746962227176296448462545511506033364876900972111710916791228277836672063241293505629822627040682302837043635479724526384380309702779984590115319448038966605090365742189964179587217150339014293207459003283662759156156718141485941751384268109296788485828551008886993129358567590255729188092417110193809222691700914939065787759767781853206079507896095644022122156153640692015076348081220361736499451609524919505878290292736998280485418673033550232015685615912470804109170740977714918812359699593816854759358537531504552536999707338268435044164457917772849966221339332607510069565409110838695189689995599591023566208201603633650931459904922439757991899972256227211741781725837309115344561763852343949319582218622699349247137225617496934290181945995406589029782381288902484534095200531578908104753811439488057769179104419824746965551842796401345084100969107011080423855445692394473113587634979924271136810466446421107603636763129012406638322174646235280546919608202370462357495025186804404253056881044199933015576367301697472141466477101236404741179138890556748348693246897285958418087005215619179054390420734431190705073195176239673748945480304857882098730557060483244495575138355238567621381088948471012058525535832692413677453200201999243905124536821913899380574788407976911531714936737835289331036801379591343980052651903379117089149091272697540450340594825175892225848218538971545044118793874790781321261720221050174400698618280330577640946683687962066336748649864051214400156606986995409001097780000785932398866388127824931590871103003111849357978173572796075739105555230967643507639994749386225222849749284087780931366430203249113769544995338663892058698489628192839211010766538232133291779491778649895113636676220537140334303673760030213821468472014708123219260293202031474390144682769691586917794107244542474844321523351729415343653232075655473789417790863551658023119491258343710320113078273814689458928869024098427743495245580030742553506052177512052474759924090900157927789269680019450001880154343686594411706516280508948561950875404289169399708172080981567032388389417276912431450614170062891410773551860352001956269351656961538974287197086660445210666464730522811898582687933879032251470403614434164759735114309482154858259820277570978330747950878535895908243301149118252944659348249377931406656544794857581389093388356339537299073226235036424981602263602201942136295718103233326815341513217434615275774232480565453606687262220088462555483506996400254250199886740101873602636004942188838056682704704280403039062969850782960431571839784040329545391979475619517899162664264723056887591791167974273928637889685432312785971804209790126364581185538827523431864917432537494249732224735405420703765692442601268158046084571228926481761163901196393148970468325650743745826161127173475579801113253080632909698342571669886619902354620756844857541720665080707141747852412580460551281687418901283678591855155161909359403478366309578800151925224874315790306001023903301330618585981091159928678712696163626632122349381977650188353839261478348418471715279246767246192943038500724011001916985728994840279095691516725720553376678080727628807586844721371082782782672660187099235353713973571584923175722694857551882594851741439681091389276890080506820535131417734174139746871931602867521956764645818152442956153647409687570168619997441557511824709758903699736725170891009312778399163144725004765917458594937039613406512346505789539327567519922818888436536881149613655608944733634212550875440317234739963871901383534675166516720408763297309858746560642031060901214776994232219127318453993603671836220727282206582901891177021425824565748107085060461880609136140824106144790250545164115375784487562246039520698960462013858398572000718200732079343752116085997516459810859303747660375822987503527149246306305129373956310290181130955527283360886641132975472695200566458119522632367061039705709048986695487792687027436321737165986610658632338811436024774345689635544015926529033744791795864075475117060095577608308228286115092286258127950120951641235220281115426320756463532281458864195483695311760434026337829071357522049877649044070063332396774105656800753039373794050623237091407795091317669838554254861972368783544140242049906595825328536992872935832834367321782381324609341227292158500064980210245275772649356370058674694951567478135776134488198401069445973241292865057402642315684115939799854047559023313332438345587820519820372486398465237146691675163177237823700771116399174753920464280008257795141263652465472378801030849610335806918091529083268404192559081972833013444031014147260270193995195206636454385012695437896828909204713179611471660790458613320598221782883597030000431863295519675389577855883325688286828498067811084076050449443288209239329455682024746315376079673883909206253116021268309785775765403324694819342108628152143422710935323688696350710052129102055987510975185315545223808572273228047074848769260868053797218486804733127032098270915712244587949301075296520951884786406889562974845440061838062592701333317937916475599087753126960484406148651278411958152115599175547136157880611701172025930453277070735132784497378651907316151500981813956271138849145322896920022041617035232180032035484537785557301265095957306859293489257771968526910011151168703038800524554646408828976769675223514350379898127251039178560963772757806525212566941627922035236497325604642042630102269375116880163737013543912210823360475433168562341764613214766865657387154429397351479426704924283130985839482104899635688260594835352660866252511524781199021635971814737083046048465095645208348207493212165920903001320614186755286985643274537940069916142903165676182779244808562634617966821276257723648692963164753292585054411520433018755695753054433320887121335171385344477637532054665784498106926846021474545105730464972660887397319083423425051269947645948307794095592962675083192629176786655006874005244854033876966904705024000453725877356508918245718596061152869084998542162794235847168609116744532103674405071124876333031467075554989852450169571162781641126880371686317723555735453624375744960911103334094307971341641597476936068011740582835443200840325041753003940551935686492747642847516060957224806886376189549250902420580632160744874495882279250616981205118859857568231025347148645923650807270001359666800244332931578654299551402398564087558124473020060662811973665017335170796334586396482855634273708175962891211819239584559256021816369496026953241635858190492048447573228586816746572651678429990615048559978224751346949758968251357654161921035229430747441753836561756129112653303342897490253741139285916281877871533341062943766583332420336256285713181540104137564474869923429459875199398450270602673403077544659053772130647158354124244278137118752979577973024580646241412853371359698815348283742386153344150065616873215294380723354315686136922156453771055926333125500722244403946149626963818319544940164903266794199753178592190198948460498700755241142688461460585147991296272691721824098845339329529757184356565186123560486773079625640818812709192201547713746126057637453265769540836491443908634565421236051462320417179864368246743508712486473041055958175254954076343786867729801202456268708123554657676600862350304862478405527931066218760659914621635070137400700592118155537593317978561230745502982814473019136642931474770109480758270399877790701102612990875132801829766491673073680076791205652456703722853860247150900924542882755970252359204754335305799068017248864369443512108330559729301907007369194807885364235790828116193031214873229654232810667212863093549144761262456461894129547295619506317016690527457932003942742351469804506259704457030425168384402863212402014416326937065542157906312500272123077480554151323849328524769447767083195067776575693141473149681838644245213009462683726841397088749617696033772112728610802058101984570143572578173140981811521831830154521498272755357510069715180124289409822462677977524019164650200817750813642170923158216123019427903652444680788324239555303350102917134058403075742618670565919934362954952972484799002151861401816362930652437987726371061646643732587066455348468126885370391272799228439771975364162034473256499068106341796311212000219678359495289216455534295772528474299456744976626255747204189492132479026878291976064743183329900093060987011596046116834540932558114302022366879515863531113203961551193183368922083506658962760834886040939916053369211599988225465782633032051672288484611446263726931201094795039628563631104850936852833606716869483487205697747351227775033940411671971959930872345778377681277887815711525287413683125039015698650304189497335273911173546725113965301067921376256034104310003114611030676662586963734517438127240844780664725671901765882485178248047702250411438350168759410273958636206893063314631358518087020361728790426957735728269062303242576721470197096185761110601626277443241729153394305795799055827992842073361544172337951634905228321717359692168933482483620652329916820378040205543210649647426890027868911149605227439220111975374132723884443129604200284688099374475701620492437059406912592611593456446031440784779321194084193130377957697452852180783925426188997357771259242997127598138029113402259882873956941527153470111050587860440529473263056823386103423856012903439711020349021536725108348965447620821724928986827961304253102050434077868230294075857912079270261944568270099244590294702339423412824825786266148087743158571087270543323362489458254576464678005857725207072474978997140362568689095924047636148470628912981296804067963778394641569714768308736651417911938244503929853603070133357490460283298208865861512946333675129572277949807382739236123659374363080082063544461098037053147960883507644489985947758450528826073461585516628371859086340075057389124437188213520582809022975263827524845507635719617101369523164997469287075112670913519445210005401920484878770124121016085934465778079682029461248232460307794260813597912307690792267051082620363245568249438539462582378273102356646541914365671571139496533166823753301675075922507309333646408760484564078562735524115287453317141496035818479352484775982381156212291846020068139489678139312649524240815489590626358241490106726995167642450164741035759857822481241362538666412861010848584651334031677059597694997715019354483128496616730990322691095032190921038748617977912573703131876818692629522507601684128634362593222259802565379964889494397206325278269462707921521438793669927770648287543255870765932107686762802872050164471456234675029109029561016788872831428690206638781458465495425160240183965953452171691937355701801678373242868501002325605889162498996701665012792872568408175326950839748506986991214118599545557528557654537583739545116050874570642382144185092716852095453183368962803263117659216840010707996876091687241922040776888252169575256107348332547323632732033747208662215071302116653791477087154609694641737749272338373330951418166905458869659591074572147051820243918124540284026188263617725982648276277382252515546906994588858389404468513628191844806088338590939074391936056386562312121325488269350520549437402906490664903940083958036815764287811694760583793941758766841236778170815937008382063136597773609104513331077661572959545786417325251281187913769354000591267200037683013542615976064751201889865173437810586251220852708532838546636384754304751786507805409297317520856388208048691726644973928611089823470406650562567087278283202665797656228172554753606373423085090564046719484001219247052108676386596122237312647384812046983212956455021995453721053455808699715929439312934305465531124416011408161621423202311675120031977932078792514614703515227993244005601604346358349084269435703637454819521550714388836289730241982788919116752828621813226784187332644380777369470742389321461181844289689600181915450794118049296125156248085883473079594060283563100038798063620885393765532614988957114503100555611206103557981600457750300117849577336771941061545591668104961605479419817882260966986753219107238228380580979724052414520530338167168062484395121178591600014043792361874058570975233468423013131794372787048692078314153757255452904941449360705953763811242257816730383298254443454683190911940060333247735942125904398540352114972864400648977301394482626913687778085635070156642738332610850616026460712304667817819388275418339965131968386771278661054672662518219217923679925545227527940903453425555262056168195300443969918205796628698289230580891119332000103330072352812420624927208412563705504607749084394444199692615070078305596066000290225846409898645104848312038947515294937601383664408856747218176568616074828641636499376169608582816552572922805181698205675607910473312375269315785625981697475358127312424614603900826542681796908448256758280046654330831582747436641992590498537348693124506125824935753402440938683499416886069796603444804116929260927368506910321058216360077674321294877613915107759047063810778036391755189912039354533149801205662674389947107080920976750446865222942569932545559571551687601007347965943692980836689970322727603710263274986977745069698246532158437162694339051147228211426913970014132908443219142779811164432687061109708927986602989843552564662219541477754843446324265724158959531412635164116441971394625060973552508514441773140288073237533999833536725594575105602953717396860232088124032738739015238201003652223249318988702821335260991287264756640386200679846128602095660562333579118796255067375349264113332633020442672352742295308933286974402122601443785727005622339349137982623927287817169614435702925529366324203214611896628456073594073590591610150732979707689364514371255681660361140993450049567880600909641750520385082288384314922069942732551759471563052038069943892831790099450988131781311251488148861730480052880293357754581072535574260155237181063607573208326225731083748232373911819753176314810863772935940682582205411366805708203470473861707650284099903296770993382205207523512404134961618297050730122246895231975926488691128005537219099884176702551938635782598694885517233079683304224900534589748655447519973297625147831354064504124112239351076538482685915669183979320109016554643855466060995368009913744637429244840831170285620872722645023039214954471862403979786460773978903504719157287498644490364395529548164649216145729275309272835038307962190146778587501353575290671030464685245566453337330180085359366800078400790841674727669757591715372336904349855968437613881009406834765083155599900199424964600244632159417239835251687003943058332652800462731389205783493809367629900993823330106878884007879078893292803623229837652239625908070610577959996035009718278329638467378603884984845448462421018944193100638904428834924922674167422952527210186834206866162521914350092034039762072712034020110104203165324942041101916953697699511562721671069534508732244531579314920933775870436653182528446123685721158702589493007262441913543967543258558800552633117759865715425622869282481952249861806573277754275497467791048805590731804988500579252148045383980904598506436367930122165853799055976825776136601088908150545022823348842072883888748344838142269667505589380723305229527718740725631544296181209577990762268136825826114665958743405523920619970239641000906697065329529167972384656076735354987315778494728140705945740293740461095139148256133307893990806308874409746624955143216190180657714701329179003404092787496535135310289854661821155245916088132577607416950325079831882403044754975912645083306523543273791733284585330967942455767553142529395793661708947560824675677974200512857575707603906213092467318981949384493830903743215182195104916183458507210134116444014945245225155266056508175693489459212766192928058963115981920201193286605213717710703620425250994991882241573579131635440012050109482455389960554728943476464058094227073672400466505305079274900851855742521935439665954875921812985742491223547529371312713643874800471934849584454279170370613212620914184854598903731100482183847811268744504338917725748210637513041858111337271854373094760849755432941568431487175454156654506707376601233664839203706115270870738238421313254598792744079213054676700732708743333719918127869195305813678496619870536286256546258559384658376743495010485187687790199777971424869614999283222101519813746243261333680957128224094453957388138008842426223727943044408711068854014346895637794608956657666913454268045768807587446932700737330920214822117656745820912945348925672146277017922452404939578578280232146580473375399574524008015588132073008052609780270191036782937296062181987688017037287692933216474829178710861941064421571803447435400113176782989504984205372174370614955815069655311682134790308961438168630232560726222935854642991194350244737141121572396506634360427642922776843540459014005955919394805324804931328750186383011514639683706491037189112254230595337051557978197599813406160231774216135131639357386417621374868724386534662773991487185913861973830056946616545397213717481108926387038797105402132354296886461176795344162484622932860075003432194999040182831825424004597870108787469364978449655398979515960820995895825031838829236420553845883037044254372251657920076381446011986637724506284358767346446047747294803977111917543884476556096921421179017045734661822077345037214971627676945832944646260086290928561961732475765986655281402055411670281512150194384394552965962811318143365879283021437984662829852509581829282171461441874167671732163757168696497562748900025935193352332629833552917913738823177720909104443938689989571268036377103852871231969767396956325415241488060854108890568186331356409140915846765276229361862553513953001259679031033577689576532821116410850060570011405226110989548821954863106558398831681869370491426434399361429884771056072415504121259790523095985746704090198762613237751034753658360160588854799502770986629618766850068501981161404220673356127365557851821215849339340936642990121098480641478345738137944861056054374875626989488109738412506476711437529014344408160391995344054494301418507173739244456394218019877464258960983212781725629711726555465403806394698721242598962661915482950261882560106048401251870174545420298396093070359817090296257312432065949481639393378010846449398013535684317428911410978809166499667102155879449937891829506904069775683298491253619560107898516671988946491018131650906400120189705330453539702203566132024228707213018276076594477507268892341515468882238985180779579709268899268119232349717124597696675940170181601503372844666305395465864363068477144320370598626545188653032015765606247391176409593821745265180586253389514596231571592011920238100779050476918914413148239278084266787050341316364668251450326852073728885474165457259804584333187239663324190804945263376458185174427402386474435048698388707453449200790110319473944728463511801541759026299980155863444051757593431227983221500169862705306434208960035223694249548713914063448896105662410477224788118321199081204862731095724669022735198684138141904318743502808332287933433998052306333096138778044787447748989420203293241675601673075652790610604797840777309167755677694738760018732096055786106698478035018898003627619718173298721310865477153870994350761058242004465250010293192562870945731087921048097716511122474198419387763841778729990990837844530545365065161075841337858862530944688565352163756591271598926829407465427747446728024409291118549694255536511330644579985678256248133901436362685902005178932034485061959343065726467700121765044854549297679930726905372690120065787061646540085187789660791602517568087059046511475070637011559167892716335965867457716226162037266003555978943287263435910928592279415844014082343757647839794916515930513212681743005236623298597708007955714125490848718176869592193056985150388370211435779155608863059872198683678178350357840814777964367102588228423847144118793465118666354155833098529194092421757761067859316950872797991943110388491102019739666012677164016604314809869145954173701623738477985579072303761176926684553616819375283468356100347039639989066563233447599522783609074756726818252476333247188482734430549271012101642397894762919901555431384253974075359695483276422429898573762675973815589470197747449163637424641612628589409517142730983652318816573914130828728881882572893184832030636804421960079707035677010865746089559790894641244916660872685559781078528880501522661028175562854451860536052568664510802597790294904381131964243842227430350165846620921300528502201465940643140009884098308724641332593043878580349495752750531618404721288235339490899265206257527825175296124079419774274048683533618935511551949795896108968394201391997001208165198829058360931011022009284970539611016570367665311508689261752915134241716943116813446838502952108173826855722113787667866544779295009039412629638737895604152439931784499120878710902965647264966821955213371315214532773540416029295894079585815870691200399767259045377019876093830950375224608123735316427411862005639314997216764633379348934607701592284949997547151368017446229543952548824251733404592537371714084549234480446186463361368276924009991739628206931291266879645233453477905921244032377487311716651213844972386545243152157737686610047004546073661112059442946202077595043974566290063003765343960665689558725753941835019638535138539538068694775287897286969432272313420208988062144178239258211533990917816134796350887625032913744958651278919625633430150842237995241970504594231092950215065470481503236898274934881733818646780798954631902720172133095610114466804072160462225982955935584414746007305481508348577192337898174538876386901774493228254538042337021898257201957432502032273522797248376143190142354153999121366956199797777543045104010156045883518316267126436433008922360727123563472181257589830169621996712795105104048743161802128234873527663748401003598278278784207103482225210669599435137845512338719888795314350776179712444001411519203600630358908966617409901111630361674314036549446828759088883676610566626257677136915332746274015851330363658686929768307388328854347563468339059011302730548586309603842991673078267918090529140110697441753109500652931139310437728484796358978569654910779315459529708150041634419191512641116702806306276917580133401998940503523504206950544069151907372092316106264630582157548453243525933187488844012503849131803998828159968898238593639066839215352912176891937815255982588670845575245852823602510445633076921779781023478398267177048596637652330916978972945991845431099481476765177766949514731849538058898715515540826176376085140478235045857916356261237642080347302843541055959496730633740717388374666408380922961438262825760236890498297998291956586986174427527863952876136211625744571508971241963005677800355816973476605845856806625650066338672592280897521136657132794320323900212158367350451212617105449818255227675414281407813553668308437846650713538349176424985265736034198919537035925507427097679620537409023974482112700407723609180251045984152257302675095511141999942841406778167206658455538566704843546398460098849191935406126734354033446030423446182677150833295763762421429781595834591896652209183947169715407988389152331911970742322702860436533026228992941074815155119615986424831837191949430564796678628973573453396330440779133286863397355093315274720656433489436251831524759727080952332450078917032396065822167407132425165322942596790659988079904871503801642148565526349543559997808762362459845505469956460211824406539098125826612360886903866157228384854568071884583439033172972732596945089879608044487441583088057679494331017118018537641375333270025547597365850210830101261338789186666430534883396011594543185798627164182980762792217284015311790266585660236499674289660049129527482888160442317086676936886126258822195022041104474260276258072289465444675417031392367075904145065724261087979344906903600854257149065956131626507614354511215496907928975977173953328494149533763438100774789458913024760059857805104572982721058099867185332448738468977533304463213182320008996854887747991998866367926444117589329746911038324856878302810151770575137491275178900435270943923243284527302150964204899939574639134182105349661786953133584266315364537055654944135700628847326985314698369418382202231292625282240351429523965750077790632449916903142726779689590690215889949584617894363270102075098561454042788697099816323820609449564365089674057609141758664366059856191828438427130860427421715794932860199782795972440399019911797432999215304566911910612969557802980997370368454673804367334147613502425059440066916426196633669670945011016577441406849399815191379007969588178988137129234957553107415427082746682312579124577153635959986800572807926514075616770407562778596874560815639690658611959766935722824144949957017951532417947340643420162069255999056139794056968866978082573094307143294882587941944833332156770292229616875920841949749210314157630987108679139123934080342423518852875615093391912395088626973927245028521023529505328700147826225208305771675433117807686441579585363998652207273959586968729455878112827467212538213195943436035825833648548137232477398387799276431754579143608761090806261911339230139362438192537233854525315924571505277490988604214698974716607977725703229411516125142263151344249909708591864499323198209137557405591246040478890573177249051234173240379690880846583699933622831134165495330662550184027749794455238888264972389517743715443153406111127548272360395202249269132119716254207205035657697243679015500967857833749320107164927174325925380177901814438037954950611281703649656372351995033427641574298210113770811404843536882298614665043492969900371914074339128638601353337992867193403343687591608602614481942340395792106767184532134395920654358689006430438582222519369242432979294707683562421978228594446574855615698094199241162079662602706936513210095674773745243786137229940634614495325867028926562447297983462178013895001069438383783895504171859058882322207280305241086180178922031367855766231413301448857294233517515823149151363823308716039778079021563449382495045803987786220186567842966847847033340996693049643008458417020332563059951922988935215823352942581328303570945457494127582341469090611953468041809565483049413075519838508325109504203854752538067827387625749602734951311466320820098716593277963676863433018684085416554181861502297559260414664740800461839054963320169998767863765921338610930274132229013660515282151008435364973544328424054277740466948483057729980121389772321746883668861865729083247770843487502936542443575288761860997552587985921963703924607340763378267637805464899766432242269430571061758328897873875931859422413436190576544439754028917564242774194756039397925144366587759097164897978119139586752601715228828126235922750185982821615250728663152928132894640629686546460683218960395720129755384167133391140735595044312035659217263890449735576610703535589483809733711780956360126360689816973133691504479901604995274900117526737870323777285885143987257253692872322376257454322637274407208608937757548993986226457605889744069724864512048308611312251836246540055681947050999893518445235997090019859677473901579432364323259139080216256077638949203962414124414386400534659432381862706897757836566054458172163658694063899596135118216500298226163835901973242551987762390440047184445998298106252888522896328800733472319985802984286139292988550284970515707997733606383120585039675450467042595114572485604094434827151192858998051827107391700839313442101534817140331530440637324915423472839042094217880006975277383610328646676984604621034944732659521724238247081166462013920865150374719893359969459203447598893643123612377729481458092101077323839636074290778131957295092705208390644830179364543598799677724669707858971380508282241436695834303605412745567393522011517855820378827889035899428808501288969049699301787247655802577889099087797791213483982991935199894757446877761054715360957201627061892456493588392704229944640627265876983897082811145022032741884172269912501847878777998914030112352330586170620333324086143409087330764589214166990647003050587184496933086552254976570074674417631896745037259954619313467889310910375401847945677253532128331688660674822958004326954572996999293128606063923860730798074329692604551973027847606348228562337253610852825542606777255490748584612560642084365940008850430860103130470579706741478658767157455703421052815355595087551206636017749993532653436806718695213463124593402426132914350909055237936375349145233301187604022826759948595172427239258863830286294815036437032207815675644418773259833564860390081782847240757819531471415706333502442142604399681442573820957731780978388172340431884435386465410619669793037875528889266665508583584200476846565946216066660200482189433651164423593947452774215857839149112793182758349645838253811046592755681386417075333891051842772755766347623669067455983938993213814813591483841104840612421914884743331087508797391353435036984269774668142210895720047061095655307900249243587118382353877318025930860199863321776713387953700845730578599106021799775431572290800006759352350625068547567606184915015157393001354982173954934271202697118081037421271103887465831695563198230755389164497414641103192169080627829670688652975821762221476978029869819438395300374118964457821787674350786740260465628974437068218428881773244891111327636991856939882756890449319539286915440765528902253198474100849131970002403395837434823853363453961857604186277617236182789677677589323778132097489728574961047397621855398654680677295650375771728451169052086792905216060626357189802576243415277955450175827306990080263429154211203122449237081609343264017232809740369785331740161910260009266646054824160668740445869846940106546384445906910817477509535490763082069949772035049568032026646081626358806569926371555454332581926394057463452123511531837120247874109615684107667171188203407045540020453332005257220211306290625809797453649536367715942861561776531706340456676872938122036757654650161336374485791190562786112564762355077846970796583804854258181421588137265341933269783487687039849363313301151328951839991063194719545365609965403436128122509204060238956780400558598890846152509644293801354342567441041268811670092377803156643842331106892425332780073096461765461490472203717679542785465269406200828223257144018870972491815878754251894709877542006839508874640407318960794354537288207491027809396647606636892492056467697430727087776166350511005213630964470560775598236597995115910312867741579592904506238183488089922803480584902007389871472177774550685802885182119500142579411018705177345150458449252871950871919608783006492378728303357185028766606947614728142467507860012770626550767135787618338599405011322728705521974631105623820351862108206781825047888236773145002804110038506358449525777387110232174848508351657795528904813131683113483078334282466662154364676485395189955259745701217816584187676456954783059421498009970166672222871751316035051468741309376881546501556724439704199060760693144798198559112380414807758835748555818629616449166644845557706990163152093523750716887638007932057847064665721935063430255978786742485954415044467779288380143447772345789184207854231618720893398451143351055570978745844224708639039333998587032860060782582907966843829623891335854826606091948604900713483746155250349367143107385242514370743503651434083147576863614453337391357739684338618709446629692401713468467549887175728443634099839976950296651611818975028301827884838847141975433663834569343781176112254555731740619178919963045142847730500471512451541969556143563541300603029370246636453029885371748312733181070399562970620349770449193928958496416030672065199521237053258889505591450774006624784179348157692152647556902106539008247831666672640005864736506033883082552949129280375927989990783490412480752277446428274495945480232288562908337955221372978816811923650933230398661470667086991943976875863578769061349219103316035563922471482364145962359858364755006369900961137986551655662066552622445166224827886975889542406241234191541087233195277107070068731907022573782023168323507615910830541496276818065345747180537510783002049665249798831077794722056762339351797721231092461056097237338028313815301216115210545535558218433759346667707520919890489185130650081752649064862212614707722543871679540540686077623896822748516700234536175961587386228932232716331980182255581083535768677247279056143767658880122645898954891896996051903523382172884454543717357478233898123581430835364121581487089699109924756615129632330030333995180320173468901019227671835178547515789440328367223446029723804673173244239977625634323208816947745119756469186608537924542123025237383971980789157682546728284053948039726258636644180992897424458006459267168877331371710315644144199872593065163950435422509108232884103722680397980755735324935683158405557233533472622452071880401018405476889881207155368827425804468284279641664815836402141426579246021774300281873948590687866643520894715918326818935110352726244635037132182835882687595058665391363699541233257030115061224774586458609649240774751577234992615939063437361167699861474159383245800400398338569373681964405464884059488343453915450398769978520594328201044604960354728128853897949901616971327400863772460447394723488769929922704731835597969220256605441293894359082881006065872328060591579342147051601017767158943500405854566146036113528256178557845057436416420054461637378777499932991717290035010895969383932965864974443629442141068644239724697440441044339748941832652082385804546775330872104456158195951894080596153282008771157453014629617048932142118163182765069320334750394027882141432689198468855172818155754357011793644952701780349276441145004842518835970399234363578625776316688884326773519266644418043238393448909128767075602734859392024256353679683764315467970783092473221962084599996822008116855474470524505676453869478970874486595284507841353946363517259071409871040079634322974090980976457973917519442467394508168181107368860072026902900165049775707847984296834589329779379133363794895026290488655439484669140216303856757781651991177468598492894724377250294752960554376433040310855725634673698851940260579411562651646839997255949666774697953555380597372068736814659578075033843831330163146262720168003658727965797814544019715653362427311372272616570340890719756425320799487247498692002707805662262738931065659033437712420974074620869244093812814788210001633576718441635600502396007173606536742071646003528619262728685351616320179714947313943881274421604368630635080658028734802314061519764152388398771589990180291609242086454497739142975463141544944881593199064751348153054542499363890685613993380431306596750796847756171331453926057838428097413203951704541013048008581432866464684565099754276377698404980343659378357920264801827626221135393956716003941743265483145893907267060857184394661727659882054721751045166809066446930214003723905005703902173202164744702680424175948978179416091968244883789450703964913553758068711064340350823569552270793003747458604807783369282595369397077330492166816095420977803223760266224370803907705227393061878096169744648573103155465088344170305943428140059607603023295111225535970046203756758588823682412401608447972399433268679083659951910820773309056571004091671312580986711086793365023438979053418461670031742560109970135526604219472922462373231914433861948509777196357429529548330298078342250732904325627747263991451441303328881398839468720182727469711686190642282702481161137461387189736437441507436149038208493231861412076349929622497251069224794063689957743059925044496098237673693187066188450996569467971294153957781196694874249827342466846038972456806661201074446600421849307721541052104869568552179708670859460016377967368302545230600455346594362490112388550710234715545944782960195649491008274853593961964208920933978799943868531246334411452887008781785226401063794315526574429540008176998130269291916171618755171448644115220075526561313701089624771245627711201832082470848717650841869991873779003859803197033746042321786144869190201947588051521178354735362893849165073729847505869499301285746558402023538105901506282249570469669235829948261372039067016358922025260037000467312160058230186728245249487709111615301561862933476519017285266167034623765366895938762347803393974483851525210095359827458054648833255474160706332295650944660852635456489896385457684441832912126908482428979014885547485814571550785774455497737526920226838803875905358448579659827027634498105016123059182466625407360916443330199751846396948782705463974974794546393206212999664705434132406314950416991033162833172835252597610267811843050392451715051855855812938979846844125176924293288429841600267679063882345304120897331138544937198205650517541214436340815333809335374433702022735832460980390436977003297185929815721334224533201928607010991839878011705606292482532862241999452174704656766267315217525607906526233060464237502850954281132462082143025738113284363310997482753472288806604942204796421075552492986844521010478686798142416759304471942425463787581478348043624495055695448562616169511052681948512480844361514677462153712603691131380566525821887041673224144876174481981475879005789367004171171360592806072665081833909887077601751176020093905639860145106977476056928920632171418402876550918318149039218960505348445467126084950738356480303788874553443977952302383640639283617575861058968940972610403075129281358400922308615426620687391130111627325211261888713630281488723263161252516737630075653346663597569690365728721376282471437696807209889826530032222648983852193602703017589554508889985067746680920768933273661644859868063554505587145690909520470762479855058309412199143002656469303593074471308942151932769412367528908120620782824186787295986069362250578884991845623643561886976463478665783901880368161543576033053563928734678183322275044011840767507945822821099941875356655824563888394065896797410569766982405834019792712829677447957349958225713856799641122045455802078200027693518458766343048461842031453981195684387337331540079110272493968666240465672072347061297564006273721659337116282225053315674034386732570928278452697257459795596701348995573777462087990359277897398115714317055243659549457842998945246235268048273283985853955905723927437408835097202871899659104457081107266472311102998228458882914367146047391563107646719391135758709161604173279850075006349311790589629583386826290058354150068127957519247445109826629255274641415151323297376575481120733300215523545888154682563060123190575924626251523691033361321232948262470279182762562012291216324528421482080803032289482108062018848817259201446425839297626043298303449830379541291425638183868266133155117564935262519205166222984816926267769182856376676949172262276646475570299825347838823668436409768051200622162238231052027847549964041616624916025514142652558552152255480564071517139747234794549005111980075565063872082497455769969601019130027911146566668054543498558337921015462921746673728418114791309900603679000065167823717858166227076402451234289961584373134208184587243722813102865820875302270444374494510694261640101471659745364824685549091665682717997613286358076106412822275289600437105931122146839692292983644924216434821870033288151471314852695215074700465984074351394743211354759185645004948766202862955675969572789092027641493276669625788014666972346891005867178503082663743946867977864132051102017510134928362978974135519437133195285957009231427151368342123431546714321872422008476475072086108719278457845339574328374261671664583931831053068063782180649712250497386689575609387204845864621905733615355075654348251422011500522636379223798316180685572201432645229801624295738802066563777058854381819864830105261788796343806720531404391119000422230212610792856021156944517748036656807633264893468564906359830070589690343531041610845339461514524374818475767201951033840900228423287673324112854292899708959508169145970211935421799163176499992784968336525064982616341963684867030170277579709834127769635971732108289246977051507459144390591844784307354458948913165572614735323317435015338056842645787210263403464774345845046282972941938616771559269029734603931302584841300559921362065041074202864553123487865903764455631595233937260968669284498205658259309357980127123729072986334808284246455907636597145224364680559663906558932426736993407264298130398052669279094288300172511725309953705308790985213612694634531729353297409177174463834852689932996867681422619194663645210257222199809370639711076452941057682756559292477843961246199518292141073934217048259753453418513837318819144762469453489277832160740777532461393892140647840155341596096630190867172127729849541267205729219582604871403626051991739819293905105110409170600924169832930641225407586213187341279609598433864118785014914145659946108431320480964858727606109882686460293886967609168994036355472557043666115077823982292249367814253007141419605366522821583662811443414106852308926441026074570006284963850929113557168759466548052466848347433775839409346614588435471874515875362535673861551488417601226122773131831651643366755551842563020086882498876956582013623159369832152385505103261650360196994537138762369755903182825158595074249060048672847861301458285312635845284350232816612227146202671474496672377143992933160104244841354496082286842314070746874104886153028069034790712351763332835959238830672595478012544693916753858919341466998038239210533481317752333962626496882145926806605111791857131714489609861265308856336550006299527421468090235740587309876069190899806848808662463950439668114651968697925182700890920938007275231543267620022351067392506112973581201654839935827357899877899816252084852795662071700137413645008262028142996007256864403539673029239840733837867870103367316787330606405723389921187262544048674379961839103958027182418332338539923853736447906715229710779679157141475083855422363387434019177554873079213742479319311433749386470100899030545755830689336310095284438845245371003754894052132779599427800677090756219100732627342514666366129387284381747478579746909668279885067858385569867944192920195595023874578355824758640583418178674758444455421855621704592911408291411762466967794618463663958237626540816688644603367779985537759043055595364555309073001601844913140706647559052436749539721303460840503432553526459997937558697009257604457107548161108054741936737444721447789792654329760539412973918286286487501988841114634820747708327440228415074324190958385604335911335965499588397553580221268392731544872169020650586022676505595557312535483327021377207515090960194830039357780144979882667182420072144648224671788439228199675104414896196757660411679611167031681770850146001545077693478007484842719476760035890994275080337226708269893204181691843313430205960366339714998447507503442775137816851677212207766114596906328124000566626130985659781776408640111495664678467684344093491026931417423257448700609124925275495515433996601645922498797076895713553742777892706916531332825326469168565510933633429220337787676175678311465305588631520445776349100196566250931640348571919078955456188248123404574950936055233712591140895351610823232442215001648762258883583764371181416699424989498091370885921261149462764885862858473302676301421202998132512176183339555273524302723710608534402975503558601737256432400531306318507702857572174555394900857150149963335359409892762671526961377475579329772825896121507381514915178612421974089808940343957475967557303317420796672205601262763467064228761343504229990785853270271237570914353285854748496588025976609666539499687070350337384489498688369869253695001587496118201410759542265885213648798941347695245159716918306896998590560778117638146170535827411061824112753354234904814646841516624427936128756212007817874632986783006855919737627580604557443163554682748312461755365547992300184519435561421532123387059431363935318318713183305605003765134722208160507703338914833668535676180881984036441454349916859024605762819323068734987316629456514838669859931183716656259800371666758829345739458118848483396217292702604544200473664423748645580711428679294261006955616871493872852323663491074156105984964644950216631834267893337542011340223907118903225974716712042952920779794714982986286795018268725280828617075277699759926797819248647515124001685092848723661836185477650964486351094349648639804760838703117879632870229857358279117813689815529284675741129353708199263780743738027416494115521788019430521246588572660596280702322864838005242554060695709881711321706280672789868240705905569952529976717247803974686003897723961151692636911421240965064116466852424690672979967473466019783483613767027914651382514188389657528556097016585454769453513897502470460882668944507022090248845103064784962419406422733964806675880103246430610784607916135223016456130255126016349897086802943996672511509416355818243202589944938230047507393325885862631287030618615626671731957435187888479993227594021528159805112812916824475993476517610924125208867698399523292754130573096139954526827529945113779312305784079074164027500255825809617342451991256641039974697089393065452741772203553615947488509231426169721389751692878606187051059460668161025525038878977427012162765724856668841964328956239793466480453604681725684481889350294382803989168414083510266591383562197712515623388192873208732372166470517754986152819750898388502453447640252238846989809079767600017605276951321758999822603829817407864227553898497811402534320746656704880964515225295319926511181042034217251157325274894323818748762319012403117766061734021844211041612778815876910281745884299845004471278443143606660246976784826409510661861022947402402349996730989138054858706316882795728887580702224429938981564377255292804630383459802781548777268346537566446920973649604527573223370177033346385589551652779923143560524073566047736629680579795450799694491518043598135837349093575988957611933531213079713631317988852630962319696075056305272132059976190533459088513031021572717950164026918504380827659370933613499783812456711326411244398755451276056430497234408375874666206850921753366183699836937250126188492442874742414585760043567331184909614225937765616575392553353489404343771847638552095034054424032003100188558543113530569101731951566453664196806821330614007739993295192983982113058334129324895079956524582427367841985228960941097834697830949320094819963524696666083039277358711669217143116480126844596248165209239801873531815457508603453718457127043994761155966187881731604931339807098331653643769267038521825244368532997680378913988241590893853399124287876957197781687799879235099455818807747716006846814637807772816221454076381813769323221281663912392854195730416804482448117136194197394796005173539272456261796624603183638017145561732973399120294819059703296902732965631290999930353953954127322060333310257451663953349352585431146684733800836509051650979011850387458574241473456083784912243962538226802986958174644848440868780794588229665223561405126351484755876038979154576867459511580584340985690784188230033957379417352809055386452776224565714391246467781864430275557910336751683705275791394323450281551459084786782119346919798143392591765873318557245711232416736016492530524923465747271839946455556117101330805510279275359177154983929948058486281496251616288326913098302262727582543069626533891651045890649196174254609600081282374267530622802082172245384303226770698560857243345303524951994514548300446078518880024557523835897766229119251183130971627726397150251278470014932247974440995270599121912105590890574068658034065501209358928325814759690052644655190063590182223544187243784618028861639965444601179189250937722725197889172906399187565826424027437481669591844969114570851202317472564836038103325906217245926005546048320686124237911286361105315325682374244275129659118772396640893800214897667481400524000520181758792301783377960381882593375537717630745803331724673091397122348418767694184466176509276789747604313550521692875208985143435509731697813720732210689360880364244710649506045441656460770470703881481326483620237924831845600946154878939481428594260731172155290045990262309224602466480202630045259517979949150982341562725585550849509724217125735066426224788241979787871277357543792288860429060956157856492022849549815650899240212560011672463431086448308031727825960265880617754847207306990187368467367293039174086825479941603930172279795400131946662396287325496303363720486337623612519758526711402907647134935180370753555853410948190624803111239933440364582102285184145357488342829234865513141401312577327836005948727746737214624482724190472799251559993754841112181953527463795589879809709285784898730076707158276862299011177733111874638970471094094115608967496013863637793191655053592701853966898911951837603448423765407098707466683970886141536395235405742292952289997690938796566163074078844553153980754756410975757372043145128668763548510609370326271424030048508247120650879740035512049325314866421231308321398569529330684758877376612438282587087158792730812706573997890926027088639481869677264569361635527238892815529260956058482152720055973645321895091364407153520260457936830634338008510391709488365905345309740127244183587571875126191601351151284472952123163075924480381237154752689082884973943896998699375141441649149632025080336454150191567461523742767626900270087612897301307269041918225328927097833788016645194356423684475010557888078965963758594277048303659475730393347034368241723088998558052118209520563954270609414562379401054276161818277789017541405400492464477227344616445378279419334967518820822721277250584411148955660636858676353610243553129478675497275629842699783705060926274331338566281269723274523980297280038812992099809976816500687241938321245162987126734742434380541372313973219325907113296299976998522688052887147670150555132777238950599419355096440666877542078424525345731958386517525092958158677841720948669515706280823442945294967809889661730699923106876659110437045636274468776661479687150549662743563701825543634468855103531124368553431241326687843432074124204645122516661387559300053183597113015754354330189893715469052829779535055438428441917881404799683047216937094052440019067828428513427669817323024403616227328812562304146503368662632184380439786341257715119314277996910777051866283609309375757259008812077507000066433391916485993579149427346378246678043197656206126599864626056583728025302213533373174725092460097923947011562741269136643776737190385931913577138105788278027162811862012387178207649676989227356497719789114685449880640163934102117240012178700110097532826866502525799524166560336476137576002877061026655391768130365113343584843353749965405064033565131749369657888321802646999432004711676037376435164086069827403694606763595822185753343754496932358652489247026476555347217157424605817027343480963734249939077509246104507110679686105419891527411111086366898725027903956088211456398027845653213786731932353568597195464913793182018146878111878810342677546191557599216610324636487683949296386755282468394308452928330084116620734675004537699207607429296648503087678935033038403912859024168283179001549251862984913735913151188094207282209320991037752362170991838306024774227787302965189832683400080575658853822094315099949459992173408390559031021661302767163257989916288138110309823931172122338087235626222741798226746761823637795324532260393848837313145900165354448601364473959977592421841494143943572828392687885353435687272245334659559141333742505596662371935632177079907744632760560089543848550470161613590875322576404906756065291453921289887790061178976295489988407735090493150390454378133075003167101747157094098297181304187251548862986646346615576272849465280204549925481970953384188520189008883130990745059831427141858252813238101864249623009460876459426792099459451242384875492604842738873230362168233584966028636934300918564041980202163486855875334154283852618752663310055018765777888854843397438825339061910661007424299505771904349100379710657460427082307032936150125635174338580119910474454716329634187199122246432704045273142388881345783185330709699369847890922755852422256043540998358032434749237988130035436200940457620083710763723386875082310585739062384036823499771741779747771595592044319235999488307038050075506191193848935077095947919622589815800047282526426977180306733916232078542012415357493330962028763282666172494842004118443469008089064327515229081859818547333906444113550039090047726840986762926390169524781745747733324556183986673206507782897396202010148084121523099994810175973810943944918449406526517306876615314500186727663982533523420642335136822426446397477523001268128929711777935130312006782168545871007809145069092499026663177372176104575617065225801137871258119087112185172219106936425727357399757786884381451011547579615125925414415802724938745750037393447199685070515741013496141270028067251757135284991564862781620568399036785329174252572495426438072615426356186375462072074567538913655709599912921780587898023382241162259841706761744083875202147297940774713172872893383484572357133130141900092903492064746641600319535716486247052566811506164855591729649892102609614584570503875395387778667153660374207281385110606138034879328244296352745535577075323482350706809014600098526405900466143643505033145594991486843004592672878195875425607190059365552111447897246347983862718076427332001560486832409543431841159155511393858344720562251068247819637516189925404672798214242872488737508001512048670608930291391924143290894895656500139622119869138049889345601772315591243965842425469416469096645634513020766504240609227050958198930282898529660149847831506841507123084472056480925617329478981703872259990786852689145912766349559650801149915500334252580901149043619120456493726460691663918957286126084877811843370406912582841617777981257433069426005430398884067454985583053729751515307145188726379231898634115074995884394717487866648596914042491840303882659046959248232118260950984995730922083119105381441656650228611864805189916823050426490617026591901067796625399961953827182804091119927072638250334374361491627377227431708543014917373683293123313874205622538068654506960902003384555707552593972766500159132661718464394791321018025494708071236648566310773998472270467582956893016072150635556309869817128216237198887938641617706721582334286259763665194622406109143372929582021849387429861718526990333156998458567545344562676266964988683612756532850544864771728065719959244237737583668579518790848863681107580370686181172718700644579601158680733902491014713951891112748152088850681827711891305882659922323465104314061360722837107260767781275531294146394703772854974546470186849198976956071379922497001281269942010955722270712099758019625357693628524020818886485701081916464746535811671287219689945464917101090779482522442628814330227412549102483270365736319811172959095949183564004534834516937655657228044757510134568726547140647320929150119182444559045436962416926546801320556490440080053865918298369861699125662170518521767112048530260123492430566219200558253326657232866872913835322876172581445387834354385970112059834406584136934613329170511581423744879989003342535587493245544867069880608632058692749357898978346122978031409088063843711537161191497427324003157407096220719523990532497262065672100573872198356768520289471602782591041788145106612479885109535681184387499210224442878721957751727583311881688217862436695616637784444266306851918749900775024811557312518464819379788042530238534764509323150254932070257439011441880810295421239891275065460847190447026972547002172364900605416003278328764611311575766160009391717472429925909476298155822883485656753472189082024327722645686805718585952690941665519532057630360179772137209540469369845184031026980512360282209155268533373953931022356892674604030483374848588666630716428158145278630189547830926911685853599928927369254844043001313671055823280594185375370847968532699070678219519494932257135592347783353573254488678286859428440736139884047293466668416139880065648773247901296088287189537982029383866434758763690748579441575865035119151384126264542858851183882381029391441542434220709073324860614588219267101341335418620301741587386992729027670582777587004045407016876706607440560778096037800220355526740850618065808943621942739170061380563723585974473660654812042590551518460756071856610233850793590213703224050372329096534644887312940326085886526264904780243964470381587208480048822908370718977945727772189412225383502360575050469777695559231269522003535049597676270982029818072458500444293577520238188667314664684453350196982078752538793035244599956174063939741696946118725080797972104230043220835210600007037210764322681124996073635197228606722459051649736032534453780464580247863546715582167534900482262432204637789834916941137964883196573582677530926965648392700158699952985279854182589641691446062700831785933771444190184290778043195068959592852301122508452094118624323826802715889052192863223725108708735805280473718297972811488840209939946826653933154739735279789211299340966467502771603154363114724932712158735195765509272950255768016932175883478105521806047387441849995140903232655466142681722841053267634641063808934171153617677954196720904803337552310813175433989856342110395085261848579526172119194596575074286863077362727845106611829577327890635830003907216507809975923380736292339098829036771224488823371369785080006446521916877497649137571447235799039137161167897162907394006307590340530154131015008387548456849363836000444337388232583624662983585381552508639193134387963402180232698465230851027231482113730490608583222429170189085260463750034324796585841944795594347892937513230185122307059483013379234202659388726804873286463287617134320976245565470358932413964296934980382198712594894717046823146043959410354072443849172809333825307306304177093499877482962970448445109709536456057715150274899836620399312142615449605732696611959880698426174705995866560650404543948893579138777374204347027562441810873929538432778535925560145176518124653762087572392298275191580967443637399072301431362962184324521596308112404351756368671594305161361764485914355091597298527108784311969734242346855357329106461862080477926728729567009525604003062971136345204094293471498358056098193406399218129678030576673443577364148877324440903931723548377509347360624601142556029238268985169746866186980694004419913588766451112232262580963899730189419064665539244677749571897406477535947071568215364867717263823292259085282802432224569884675270733738481742294516659624690234483975972363879225464294795574847040185821377332935325149372205396094885867476308834137267808770688556343621225771311306348539383290613095688573166970503512979854042063813275554664756960351671696241740701626738207271681695233517351308625057636235389401062590390642719657196017267029063619212275156316509080078915148531240849495908129055138466141820593258748939014376329630319315646467268075866642099986003995888517974942038580794286655673564719751966777729683206030641321179030488612397425333029626025807898703201668348907792457339862268150907506866875958330739214710768679658995341156699684774558414783256020800790950482004567325755642152428115831909402387620177927427887105923606426774809165423940655906850027781062698424083852961874899510356491631739290069790655517584030500226050858976840049287726188128201126340648916959417006641097574737080666519609808875670861424062822963514327530163994803909128296867094703914949196908434256126936367098450419700476614183489343282608969292302974227037106707039324669131759577386204339420174323807639127068500769927691513047976407948206221798469014765969812186422072175868072999907084771411879064635253673645759451984788755063811035810752604934488414685750519238176512184561396575106265217454635941635395399633127983622381864482565180042429582430334541458878123169220510300393859482645417217601062424766008674426778600007910623247930712993311550772760790375156166923242304950525260933978980852932472828202501041217987350443346598351390017754579821617265378791286130232678941509294529128775313891099247017770818304407009479582282685004207438613731576522964560963274971310029153622798972083371668627478152017047799386931910036968657825121752852748253890489703462194427279992252527582354242171981820385145277763673693619473398897733023133781068858751013729301990668994497460534227307925425965405178304299280066462549236412657733730695404425329228731184341969842922325765884302286479193331215416248507625622016178040571336336471202887623124668850175955697520093411135385252660571510456492237888358140269750330256759476391083646209178160913202143659933301750357994646334343160866728937389311721160842763974083879809528781391023521020503181003536309103552596270421993291266461218884512160382094345840873546835089045770905442257435394360988870149368193814312568460050780444713041849013335866491382609997778037412491332790082042238352832087493349823555804707506079836036217619366211324061290300760147807086241711863899328360115307304968039454632458562505357553142265477979494102541441124002633584662884475325888577096292229893619039749009574019555855268066672692207291106782548472486791663256859082965531023167388020904205527764502851304740812979817893104159666107489553003131690960492856558019161723165001790166964918016121167376656099311399148524539990151232366360832393875532057411551519778672676662010844406101000773707024746561003183654902858625821760793249619923306897317397600066694296444667131849571117392916339590148141848014592151329572972437168732114999923553295407723259971162887392466416353813212058223364340793779204108438862865114061246965870688606939296377269900868919700487041186181098075048847429075595226925008050245512188093693111807746609070540688880666418702886016485272333343501383894109122182996428716309319304223544794347917297995614543679654100887871047647412103708383624200101933510620794369921810113381732096539251933474392418970941585168452143718498782258445930793631883752513673892033513973658631418051694539835128672183333606277826410341284826710407706347435996919153891385478926428569133080628550758708339370427554464835106213463907131191111700569117624296561318427655061353708207722758327602067774760639020882429051080173885098578643135411179424239961321533086909766173055754195702303117190642894693481802833580749472169781917697443577903727512637719074712915857178488297739387279977220507874038245262237530014224634090513860135446927747001091520057246588691234154223070740011038106741363033043639653287412465467627248928018482295847135267700157878328526721135960349479384230159128102772392655137976697272221242331117872466523711081432569884222619516939660424939311498769601350687802934880103045347063893293441359130106765211176137766459613827152014923588910811350665519505438239504917316288842417864035517578236568594624360099547455414747518874441863161724402531389274818485786668734685636233884768436085377218937293100613234278977854934447211480436529111225940362434724490061174456933436750067576762976408050063577435825631427091233163804551546847208204095203623245365439464741805496875891744070808964753240375474004910107825588094301968246510668907588416589522690025309346537929194080533993044834852093317859922212343967533197792324186140847109207539739555842427730528090897854505575648301058261453538442200967154622281017109636079695879849013741991766188014731119460763592905104126433500093238978964693786463372193132298340291765415792332613840675658872573654469933904174266154394447440178655075019590163541758135847687394053015165029342468443920797348154461204097771533043971405961242949448653286156315624785168823680331101355508859672245013913852738479425185653882984712963076018825169781405342029316014442999033165200967350791241136148481449254099712134908350155883340879524269852585290521633688006256000428208163434637228395859033383838158453614005449547531502128869821450484963393140335938631295905437602493632230492570767564854543355842701018179311256854777568268880029957226057201326635396299351697984163249911180698271199557880292397762695210768228597814506992254472422940349858633729744339489332225173828378335224565832861860077815629289380619398471833675835693759089649184628580740430987326779190475156369270848485432924742784780848045819455501731884769727517964171602798725130125501104424975222533425307819454278484865832511189922632283901064985728020533895454811135051971797622006835588610451121380795471004624723653571073493392131306317005749834413732550972698045921420097724240292532972122729592187243433248124921216977127329545289820060155309647125752533653764133390144579548498477696101896144312253925627200150018483265772450099232978962845097368578245846798717742842349363172478805548827081129159418615002841935271510979152196750490711724649908745807304051990227463789864384928547975264717553113285383578713477718875542002614671707523564549857362093737168748636613442159438927921702839591720656671929407282163674444858977286976376114689464152936292970628640680845029481993546676673848489081886922613021979235406190510795575345932023027012481964584576935338112470689498075419691544517705316399285933622233130453460533193393154855491773357701500224262603302711961723807219483238987022764402367618025158187972184986453199303200120315074858241664853556758919166896859841360432422343904923757021334934031574052193323314002720797718907516010755455714130288659674314434774962372224398809608738772592760798669207589504823750112166909501402656189719608364809849132592300480699499688167193310715310896951203603094773430902574899541601323120704393075388502109274419939540766018649975113208094935704867688567629656348329875395683303724061629746912035878044674062179209076113642183317999044388954327310058697416316731526613574038369914310880934820878064889643386485992457997118808875499048087612067661697794141829083220408128916475916889871880002604941139113857104700331165474748230665816307743585882461636032759036690117139375490491289165574586462782077267484470934638154655343149052017090475448567639408109582257381423799207564309833728925486905373851563108893114791400357924429965630588106130318227794618829607195217922928987211047077138701854422186104082483381397997954374015290347691457641341871314479539739686365775741054227605660716766932154196026327126705596068671860818566746665049069674752653517353011239602510169451922904886773063780043406300382820107905144687020460587226345147708549537036868023515126144960347669467367660415601165596469382633960131351014869603079649345324033025304862836435659982264424077833804630477427537671576606148403673985512521904075006429413703049437637044906022042536775209556020275444447796868739042108809997928281867876436606148523519240835109551643626634984108147093860358646318032210259993512293752223096300245466496929799577207566070839342062577483781589331144863625796528648268196617662927941710993990128483067009328509588006105140333450056293139481209745504680697056554382472564411200821773155358715180754454245579212600294006676340581535162198068037854589232489168729065671150952812596208737691327683178530043574892814320759559566234843989008472742503794429577864385532353643739199811242879601835508888603965163451504846297191204403220983046229014494775473619953465542919644389253125751623767176457756905226940899765314708223930519826284884338197791791997045406159035950305066640243221572445855721360792740267382703824540507382587551354954809838657069956502551992444042907139184322142201551350821324209358939785627727843558126755326901601038608882953039404436304085217756404553245433143142964084670724083109776762127318353239009024888376486254943670003382629315599193265284257733208658395783518089739587386456063501748943243831574333978216437814937867553800975817136268606405683254283919618938506476579222705236101091482088889549795992160631839678863301582792147867965641762483448676404050143661438001764687442700602744937853926997822090265672483974525894671469500368460412588840642785584559428462051192577110076949790430331064250014649139862701445776911981940389362262493864089959692026068419072356522109404781216075236953435214852495226074708454607585082264423103800179988666099861393657946634862696484528350986473017975827410725869040869169282576811692471071395303686709898335727528400322140409509199597074546135732616299314185644038557444985672307121645788693127466048310903484105341887521737276708734529085998074384268595793214955090338854220240490025151050405035982048656984954301690533677946886970903512656449123482470678833131169136639405926957688931878386072965045830993998563530966566143117908826524557728644528563803215734942677797019332444122779424052358760466778616801311534050909376017795068524086311986648994843905445152637650300318808744818887211305986943277144825137846689296234286575904876054674519955287942169524819753093151379420446485913921816405875579781163058014060095815148272192641177320808249684171084221958834440644096003986568337569917733211196683713555819277968390258582830171311665750421345753045122911279021127244388064620899061178787412900833919425735910761740965559384280174990478467037315523288854388435964570788202402739181973982971727775584744153073195663469706518245623316915060289690431690937433212260005983902720301973491751640188484693990255370207911681423100057693212364316695995768171991401552452653418135261345382576068550010744349563607649816995647322748319908624190355708183017532598544815225317426462010947252224942921712019731045678361580612908524918276066136824420657500216104281793183216422126498234597639477278879973177879146888051675671470515915329546691981634312852351925907836212889792013760584428761099721852940774741500993045325519749761277695236744751342590237071323268082050342456288715366877650129013445641731603293229165049917415598832463798028873582716376226542166300822556777858171759120372813896602369513137420394136179841975380931734512835633604390701538578347842463759551551928407908114528213776362010479199197392307493710773862676304414323767220243317324129729921341154341440785689323617273058845370968070542334786794280072786305068837414566423599718072545541975954297883829770926553342147382708610714809928072665763113910911621759408429794344925885060495123017567353195313089820711184787464771600763381173325612879577461080002402371571899177286403572783081386215482134996577157250360397032067704780719700510726083420420763373461973001407389939353062000226851618065941120177387881936116090508748468827087401959893251609115600840539204364672368089415747639569859033629610688482928718684638196144764846692867853916034480815824466931399543930878502183335801066982473469558907786039611261207987569440199004362040417374235372792681406368340137745361726278777751952815572537566423846171772765845375995451413180001021344909281590688772230594664412312108921793286951721631536791658359896833725434136440502641106812116148929364672436417581564400494058406359726725502890627030970802240449636483143384147146252354271061069710533271115999208833928081935233466204597475504656151116411011920280719599330433866968220228180376979958348084421110204444227715470373049161645268459043123575471920632632928636883529019231568309936137330303789277526133453991010489187071234461896346168923520739256442537956563937538797861548366635914947314670413463927716215676103529020863009759322351720750439838399802463455803313348989755638567952414435505771031678529185086091014640772597682901186530432823960718088038346213904819975320143586413862543050500265733150994667860562358057634409900143447214506911684392288883647802278525596632194384393895293285737028609802173623861999508458597758976913562287354003183355483855047727142263158321651894814137104274503302297555758384438305088479698084855789264810285529983880948534927397212846884532045906716169904622891853045908016685214943312613747584084121641704209070636668972437135129891838755710502007480170489626707983045802181703716448042047502275576044472570551153039546303659948507501544406425019577314049682370030695103448238793530631214579736659997617747681656922997945875684576832964576330971471052505458221199363334157122739595838408263218524578933986725674591256379671289883398382647264317714919802943193440203939089544275917259918680741048520860853980513818376994596572088416538910468079535633186621937004435533309510129406716725455538637940221235066566926631910340826228521792827226766030421875413691157294355072454502730355655741396371449615562487797428428234641287553597856925038425268333187378970841985499194032906139119180136512374154852015106076766927371736885767049904597216087993395962815625387993337882813232271532604748828103606621399396227431476686381730251113286640631723473992549036144111710660169431117827908461320547600901764530070912349671452847630679998872577808782455277186219800010074533422424679606582600665334826442660153606873926329415699707269827931015044005918582534352733915089024391483690863286465631131120153675576381357359573959517007495311624035656590708581308484294010010455139034256803342579842391098825025814116183398789989962575156397244415175225709567893488859056037768658911272965317130047966860529453504835442611486402104265645987160589935965523088455715676380103097614169865376883178036320841563679653356624830449060245188130289046671171560273023710177933184491922582412506431240589303574391451481896895917988648628892214046349625234550769571365508599897419799269327652673834702114414737633908790826032817876556699555849514973529298141374278212448537415854950489116222428163151622992232620068303595035117190941785697370795923530216329368783913891833357482586974133988461523533535515244564475220447735111495802564456074410652822076675356812162093376523492425214849098767504139730381566311089164968693244685904421134257394040873403450757258824923134013902880664912067389519709164426305138395034090239843295219553424447824201022441898422211137237082802451523294334438791166771142538718110848381257184170969406007538853302990888858398494121020251560834891177434591975004284680655292783059536669594536217437099018179890161295507847100902456442896151001721589307936580599320909619001789869776633863505208793845457966711062018087334128420605564683284341716964635979089871963250523830656674525364046554614528985770374461372618433436371810774515715201137437698219994623091993581509311610119105149601318694681453299746065917319135955640810653363903555341691607558338164059571810704594310362980071696488285679808193949404633469781610665516624880361246537464262591635465740686149328916171572409875748008037429394786662655389522031118302700467600210765982018758854462067241296690955626457574429766635693202757566433848113740395236356465701969706479021069683398813897952644715611881349187698594459186649501366387194117670586575100877403971981106852215245895893846739330932534793424273466953742086324980993293926032389068301215902532790333189308670430027485164549020189377536499793009242109011487885295396851078151492883122377871753184741832965339083978087450450485217282433931390217965833343962484963493532265376483960286778236189137003938361330457341764834892837188125919811699942191960416264832277693348032206309666360971413721946431013116081116608204138445465248110620294808869408574367694707453709757849330343834984640059549985118519761703189422310784792232925144145831062228212166916385716422945311411531343755910836521118866873538888837554505845001817774819682032944640326107945017493359604744737387906985978494460600829975667830276561639330047471753727743487169131662972444087664808898720862161057479855906993593464889088693716253822074852085883494871898402664951501983867731434929627449645429816717900458705814425320977882521258200256257131134869119899169516457738497293480005667382237379356811620508732960468835346449351115428333273154651598849537403023701853320947608979540058975357709060368133767055213926122347380101677884633367110151409554939145031329828501614426816957694004212169907567213059769432414958958649345958060752608889748670549413843735857748357392735801731207654026573209622226803426307436951833869135159693567366912336937399649643152495584993849441374749956456512727426756950818313225229820087289465246499596389769306006755892404258038646839750817299359243125097217010378983108923041933019513938872714372285290776416906804987010709377065601690765724801797694539210327182680588948611240810435591176470334548938116015428855526544353576214693665820844175947132976661941353674694495815879605211753746225321417378609041666805082518795563406928404231738782985637486482026084711203693492710369777976198361833430917245666648243723756994490369819611953496797805371734126228758987585821475100583609280568492702746269898917620609415651650256348870048160971804499024640181129345839594619459232683561895571706942689192843188543491099523322935151638244443734693976413510502161548084436003880797558437059872362161745453823713817425029864305822132817065626721713541021369807420684742588574707569125923874134523722358338189781907776452571043912383483810979650965037208645514034575212812580308226600752223332987425867239209867389419260428908472470056123744416014725650260791177885843142891463521228805956827463859366458035598039052030515772582136475500921839010734642795910782525310109600116867246250374464951525047622027319185625087322294411086837035060145372643701323625973774574595307208419147423931743873575500012323982560844304202555917263120899863695330950908131946591715520616339797290663848792685826637732395849285552803057680748142643426660426604326314809558697569202964766298366364425638245066076804015435313550981711451484762726391405987992212821787878392928596742301625316237594255199109303649121318837810925837139811714030729146187557144543212421851778602637889889206510330574429497239161080112270675745412945471614909122875285922029276192207442388366811108177749347915295493293372449709536372728600409344645562081012327758151090774789834738120995765155830534774955440370911517803643793100391133470071774215579256790345518234714921863933153027354089584395875851212458712758244282336711217946358772294570672464204066202404768163014877984229766834884739346161367006745467479375958386681429503093520572732168239201920398116162773965714453130271855226133385318126855046071994885763777802385607193381357220993377164319841374476401730251729564984721772002017570670835743544414512887454262565885298464014213054116046397598710614739748665962002790117077361031885219518946904247983475254792031348579927945452188677265982056113789746701213524989166791891276443042070816245777592628480998673427948967199389303018992956519023751199043178617899237328868827220459940824419068800772863920370284020818051518794749246478153217173135191443217589252130275235106248406512861866610041250384072749538594399469415911404801079018715812996347747350239562778457300159535128418308428777776386402656880416710280850429200141267052387675166527077209534573423682648412093975153398624990879020192087740198507890215601560759261160050634214401326153945129023363389513078154352590730813675788078469746776874404415511207784396155736067604211274642379102500379786119997827274109702184093901031553181080159537130526143675504793122577833240296411270457597216029231535680749497263202560218471779839411307883668396970290396787551596136289602392860286022069285746751189662539144775492755521570713518687275641272120179264136090120793201707004755931626402210859122453815213015219707406285336210106968534856967050943292577488867652478849425695951640308738046361378581306827753431930962874353924719710047678599316886320839297433739064397590157347800319573346840046905167305243921615442740452297192969876178292980232801659636114207165082912266622985713580862768003543821715341028668708932199375834423245205805332838435141046640025701520651874178058415181566474853737790915541377166216931922543925139716862655310354158703713248422388501647257187240962117536322209984942575945200886216140270606817466281697441792937841294297507492531310916929620694574134405847455623577244233308272513508140520298565671471313673020478338967126586869375300396528756053516345581166787778458686014774999186641402099516610522346782669488415013741911370121100622266898361574788848287206813382688058268841066021343859533214472103036597988020736345438529074312281887108230316364891669775806880827595906279686220297057806207156944592034179440906515279335826700072274714581083296510240188044762600756380263377906006395231634771083277536119138152015885109354380663664488907932620582995324409146340062011990020364271811842136222831280598916827436022243591489579889839880182117018708701388635571447601620668718603353284098358131875856975153535613726665371474326113952448296459503151195781688177105879956923715506223227255368450210119577557997141771771338737884346689278525666568008793081919025346376705737064615679273862914446881802710387219103937129378743895130226193552949759077764356524972216361692893135490674333570389124542829211473761826656491387300156235909838098216146947415468592106376983521396393740640607412857129817714605638131730962929013047016535953896738467200392965644084925921334623446988206127357473066279523862206967265719229375347769633970698581371248538600758157033617732753210429802767305144301132953165818624828264804379926273515104893786316466369868098883128962398865630132421019480143993955067942369592372039771247973692342908541430313466802478710705219027817153277023877174743464204309727411481369140054243307661195601573794793452121377406558571655837596935398826802517447214225766553727290126896097676751576807278301484068275408780508686008308610333767792503840530126065758248157873172381052768664890642638208976139232908501994248061124116392336650814573830411293638542264598085922970920877968432767519085209639612824551476234718364179824956956267526977499814708364088935788394049414723573975811195810846552717649648848209285351647768189921099243778281365686044573683380191633019523513832847338195823105505966489470333120561545671539579561666146218774886815710092866741245924178260943936735562680973388221614425233988651675504052680663649309528075131067798301824727130762162676880631331163854664766605895361673591544224634435219939638535859294846513055099643071183076332976587532798547612893099754328592076385930252412442608818798887329702059867084015836444098979774644985455227180136383256440211597595217274441918385244890385010638097044481531223969059739417888623537559355952810009090892543871697885374047790211741813469702899466395509637846893739258975497760746177574200983758891762540972246238545521701017209016384275344939614614800631388348852697513567330013812352527425853571890352756685604763933459107851178980839852155485230492967656148209987052955909124360487551465176352942347303322605078019561807915951802778672980360585345395674255300521819145982662615463026542544210325946470737639983984729183697046873452140990922958147021150755074818065134958660117475093388010924255096048717833221889656279205870805436860354141109785670344281316254586610466369082376515059024604475815428485452247989973171288276887205010663796379361195233929759196682649943473971113701722654052086240958899653072185010212773085733471896810204134716039955585648251452133799006902302863891476983425591226105206283905870782728579383540413097992114081732878961300528005417859547564723744527894221108246518392881568567681816698587936323909573452673202659204806922240897832232779526975597817195529481840269389913858125369615687433347385966156725386419798239844035494024582838542689638973856094554635235499973774203932876162587294238145894910007710762739621128606025865500096455577687543922137904088999949591725610141746625353383617443890684896969700295438736658270635091141337027959762497032736395843048881595175986210933303902880055639898664306487908270235641820167345637139512857167490645539277896730722794283046262812158103859904924478908517868722029949711857680138882461169658711047669960762650973305550095114510812683220245340741509187117837513971127087827498657761218879172938081787627970923559250304826897258027657708962626880828376681514040229787403722722362187860272660901357893627338478133157160872995703350322532172689561974965037443147109491956485757257536465897943977924028709177317738108997420752306595112365156241808281421081078197846601111666555600449166219459132984718493753730826119966359373226222050435753108475582950659300727948126534162297831810025530332850276751503069051162411419280617136039610689094834642689822893528481874856304899796371008589897235328707554694518110081851700266056073269494096368642767560812214514064522133176950492905686553820425268755532711384330952366895281250147468677875394493621401587319825332499759233461493884489814370741881367175966752027304176915857609202319928310999432242378413700419266078738892943839805464611099118274721012260253904840629836843979728428152231347947414576996990284716382168481825044205467440238648099698856707401055878032147848173352588695580251813385904515755085992872961584919186853009640964538339453564375841942577262099655289727480099104967299526568136191639430802776350996121410750420437259894583002041067024718984697128987397399333696215168323588465759484102739410420498268376711969315248819951338759841106259345413085910366850873599487670909986022482635744734463161646080417911890610255619938306074782281781754291470837754244707648293093375772596553985125912789075459851422867150024603058963422828071935856654235577368693481334135382145400444922030151070956204197735304354249916232273735915947864214064569173954068381196715441141063191641489309322065081911064650113279090237793504203442600548216281681828876355178982719119088407288983811610700382679593021405760080104734817580234415044284704886262012567568859597127916768873657421166158822461404650905188715341531031430399930904796826752106438166163986477916244341046108572302270926293620738319842796270219123288478265682081073263277357472815117214152090303675159834142131665771012542775301775468745920598300835308908072946095137542001005544649349660064013313994070732918573645432893730883362680192037410034560157954115525173338349509276701190631441513714752681287847411484290747626898628346814175345589522838000191891041175130363288277189584645886885802315893130963283103064782766010205899182953066691708471789510474407675717255112401222298244702670081985689909843728673640399729466634061908406353706732442231318260144952560556861568004002570159759373140626901542791724956667446515745455315271528423999658633813237684994316720169195378560007448474222805997952148314928404413634379444538820344357876399946872350458138340722491157177425259618833625731807888646506958752932175052431687052649017135966835869341076431909044413202458646756791941968536999469788272295346500354219994108792612059931594082771882384401629976472256139958538416682438992911753577134493113873240954751062279916286865245749953044892771978329238298029435414844135529591372871367657885719583733025089807093844197286165398128155103916963900521052360562990811320756588183472771051008653252298567911335390489577463657839031281056729909188560102273698844345346834577880195793594868247290331999077191556135809723872275942491116539812610252609053348725286654901524980195526876697053086424352448651576685272601292956729377931555357989238544647251330240876146828275595528767061863620616192544288417065127822599396651032000067597577043886010924350376269898113009074037667832259671411249965053752888297732511482388426134844136215555538738765036523844373092032741093635231141326461967872292888777739824405134060121889451693638373823585874567455843115140335634280976584193805662315841180510381634527591697268079267600656861943170677689132263523571227346674370286592487266964725258346077305580594800915456963618348988035937516668829146501800686036564329715065330090833127983798655472575898868533266215949496670641906681102540104976550928298790347108638234286581063449869916513043585778335945852152202250459854551742961314513018933957274559573699546057306057299986350728725052819640105612858312789215316746512121807403908317346621617456031063643144215199425073917367176480032906386354785552155555433426935481134369614342105071011892947617031464915191334372065659459677032608167355151641613425664793142766430228498486898650357424493711904772236979909920719178124688887313175579430258430939562648501377892685071982787228098547899445050521493298545781609690264888028061836216953605900933683989089875075328134217330470280633196028604601443504572763741083675267095544923488616363523633482277684764530110528019053188615064231474069148777898483888147130881373558793982963129710623395545274389580568470298735944520650382980243550897242773763012149471320458466491304272833343618933438845652397982069504139620838769406310771090908101525613871038935011003954659699239991186301203061902309361252858340031581757264610634564392839678237658212478865643254598758580018055663698688530201654672787915840276190825567206234250734172095418960984934114029241068003877958161360333853981884726362262757644164358692072695100721513704451082014834854742540483745929570597888332337059594681446946720528152413045292384414349033621807473496445000611877027593430186648754586337532183482917241852560443405652110382408784306682515386273140112867628189087049669221269282182290236249598620770873400124780074131499602221300883537007593136593733689153166036867131065804824058321724193102186491382402898067179711455545032512006731453433957242848918326162668331597395457754081553211912518345427758513247621256073627748309888516376402848291843993019289050873413580910157600464256279904248856027763281245496782540062619716148194329588430800606199746578999459117822657772820395975242587189904771641271931224921537446409013826136648232668994606190016765572845205728055822964546464244396480724638571893693322027392164973480212462473661757064951152761620894456304384840314105320789480489822817369887461829932583053027649588295288527134515787907192396845071303131638753833619490641786231766928878666116946312062583846762962085054081510592507280815614286185058056939644079356044977383358512223806241326267672123266696126224989565798014285981051345991867082631706703600611058284614859640126988514587667721738915982329118907012658556772540970679171641696233496465978679801453388034237007511459132896672705438393367673489953576959151789606763204356571683018600954694126538001006176500791015300397022350969952985978158147792514905967730992585520818490518927580495716689840309919128096800085049456965898619637198395626681376833651063848305272995102840842057319168359479634185871700533899106921254594054505789114068720532794796152230932911733382550885656821987576303622696753140033805438630822322704061059858361297869833386560242113732819751375381033030799951381995469761639501957742174547040303244376136441190611923677685472163800468673421027620010881713943802059891846175769645987972641228055429521621259198711783409376228000648382285411287551218579543115398813652247247651931629122836479037673613916830640120577168415394464859265216787671578811157805697295178072006884522022322433562107376596616719732413319139185368337736218310690495651301801890393664100863225452023891481891708520867071106829980096492324181366278444629445418440044606892876696763987462973824931644727899095720063231940025251684812064430585843373073312428386355071448124935567405907241316143025209682097628050084080608153913766937576105567678925872519697679191279224765024670382161251487614508093705372953948479708482306197539318436884216241132515083911702548797401693070799374915599517797991769671658647329950352152913617509947888833093855012605670698113497812554765291407841676156070182994614803278980496250757577669465448435657328007129796124572927522525974528972348980116995458455496292940535105470829484527940348602040144276532145792536981531294674982434754207335959425913052712769618124042678996355905140989719044028146146383535287505302188409953926062552508822910070293799420444714723068076794118095941094786170112791984004063121292837840298632703923422892770079759963078099976895119941513003609039838072788875877789260353295695667854437794967820163957914297986424114927449275474928322676252945378828989143627738673550596016261895172865809985356737924954759595436168601208546943776390408720886217360878920222600323127685770838353267966699359260947611906055965595570432887955828959224489242457392484303517629582049476435587105419152286985179777593610467489122112326361163123965797692928528563115488312197437448925998819553616173433722345624258599765715071930677508388152225929400194987663810556363336993889218608435682020558613021102222427795442146194393601358331456310178004183547390851293873953523638009449047225870790085697027190778788798825379248510534725863204719423549681219802658038916286438610726148510570111681639997422540231239208374790274311790738134872708334330500660351935910332458969608253545495296767163085926507467087879117204323077301287540898214102969090502915821021332028524910413065510503126716440888746111106719935637223817499784543746151813777604279077160740076541835755373652075168513274133362437169818243330054964281512348817848760809928780415244438759945743621489478569935970759255333353695480477398461703558342474517873397399852161993451051050612125280990971090290979050864893097130887528998408710852709913621785769372852776155986460588469624975206383639922537678390183635680816965172107780123234171543435758729319405547031846801487488995028736507305959994558482812936071135759414123528471736847622873307814615175279811222873910415848571204199937956350199897204380619854013076061584746192331880974194366582869181955618990392483974236330383539678134108433718712347644164783080956258633064912861686726900399584499879121151403982709839290057550479949637047310774416186358991206685268968006088594104359510959334251442372427884697466928099363264030131514913448212629644643552797624402943981316762243106074770696001345378154447820084133821929498206227739438688265697097328317359810666445358226281002465826425502079051367719959903908185664180070010893996013935834114601063822474109392989438319720892327735776189270111447687742167972395988268258389324769372669483157759686194005104997629785058570246113602169413613612048731835115373554060154639903257444657582920054964330417398104115017889222172835562957121584792800227057297833218593848257919463936732069451772297518543631678034583994260718694947137850604723682457417400716795482584427394050290975368150238751485121625330361059180753396473290907310151648718346000626364480076068363575689114684592246778078048474794091683121466856652790190757641408594576213421772139940871986956456320725420405177595437212500326012955393019387705266690435729982028193226390342291776184089311386733633895430756170374085382668067831003824669972830984814224790337565426186223408387020188200209462873288377876312621518207725224333769135525936863363474874889497135440153595045245759029711327167604045042527306970013596506958572217724263033456881327190672495571663016833467442661667062543508151825754476371650894936450145968829706669120930109118102873409713124710566786914482858677585709686552684525481514377791500590676728910282935862324642545136401178955196336888340835850425242652542937249539620727100081691205668718860558790447225682711518005367492837914246908007923596614467246265293178712360240008317147262272724732864259446248651600529841489617650244575305688172902068466104078540605806101038287613806484704021596570280794799045482094843396494372164521261973778491634988350988530610454481762357491352494934093242647652403591274466872684937388908952546810759239113837480796719022014457372609641854656916621450260010029000997993961302189846622691249983347920289605211801674543117796368563881448267741314467506455579202969952634040341047777033647493972073776704134567618131196731609179139058774918861758887379066367408713435224867565818472226688700702405817248911141756709631876662297426577098116377641704104435614084231501694123618551906514661326504326604292028084380930677376997222521601010232841616792054985684970737956958040653247782790454285608161189120648755905747788486367049751048230415100770567653663230295171838718130881911950043865928259464500741594919914231677285610912484679396199334629701849567236827077790793136286843392883708211193791580025513982255820597453653835421418874923990983055836282652686651678672056425980402093714548742601052103092386049377472579903286713184341480218228713323335552142504760192187599848400362805032475012400089996944739128851687418187104157145947313020473392031510501281180910998579953922308913782831757886509554212617032423060436845753338202355064985226020832445124023697573387036579043540608267710607443405232093141133935797752412564598003821269745643857497180555867138161477624896487014489195158578926648826251389168837519748454630910243779948308780512039198385773253314235107699952174650631280778927226392649571521762308865506286379037846635113584840136145446733693384233506030146817113734323739196707112594339825952786232763631172437479700138873061038535359515550172955657437338544462822459796770335368000347046419607723042587096153236225053428441873899687518955558169827864229864112090999691596896801146686655536026914437492731758277313800113724339296943388307397668220737631123761371453110196012993493282604395654620634543505353804691292634859403114987211753855774225318800113856396149067424879437865433303318520562811646409025485374809047777181555783102166639317587600379961064268414905388967198686327217064844427431914929536505226115107355100684520566925604480594306651546671824670616663505666695531163381701811838521435126949172853130322478105487965081212165702141246794106088170583714429315849119406388749453377977296421427386895596123041051060815887609308832929094918828513651303800101500349142553764408418032184517800857812518746951816747339009353278299773780624675313148027622769710019156473507850939060164361946541638180933049519930847896474419419081081495885447950481981596764109748762641342893019202132916144398719875859711112174917860087584860258755378680620835393123030696893632982139963808416429302475979136128454741912928903370846661881685176742094416212212575708102744396653864058990579567031935785502231779436791203298440293016965082077537039312425944483106233690474153221209546966463535638161021435826928759638349203712878796305073311404661069668093967045684618294591748097133363751862158661262418051954211362958684036708069309939599558156921811558355724417466451842707904942594529420576727560889044422795524087371676033274032595582587571261240180048133469549977705571189541236745034168445069572233117313865741553368054063437475935038301952346359919738906254217549061488528427997850352245678652472296911969257512509574673805878559351687568240925963885347498217275177676755803192956016326406772176764750518014369796799790350596619563584767679141943524280709014623060297061828464431559846238833872615351394255084895191653048482213668780956237755716645951009388034195964507604692662021064162185954805846149786302718068069169499719316178490887473623349178293753998300457542406882614720227229073095234993272408857400106558934893150352636449141737293070802094317473578633764418618401124201942673536869157359261531905302202277923277286730251217342397298699570029355796960088745681923847732636881057025391143248187702044933205653872705649840965711147777525317184081165853885648176209357155290376703836082303191942980564965040671384364528417535747838524761729313642983655381990238503383858598725247647974448716562763442874687749381071990640251891455016454780523904905905698213078067970043573514623669751044966043065331720283303075828276609478880437579299123207527245688359015216233636368481093917471136157970129026012221484815044826751915888827751852667894415490147107442798818974923956176106863426770843035549617081074527956498275828687540939473564570168607495554612561341311915290422201874499956386221987560285338695891548499199974071446546728089968272406712092036560664993995808821530107171391704732786445740192693994506934419356406474895700610480545681432787049317516433783521669984793101471655228360518394035261716293675652074869122707389219586998323886221372025311756756127093925170180533313324791963786017585526312275707543488776910004503155967781536786784341511831162853744135375187207814227258999845988529660930488351916148077956657543248188753285993122123723823548001279513838212802619053530774729340364866574897361409876614481452115562538674072999281117370938034175787043378232087732825588799570725781416077232254889998446193408704944897670934024593313731233970223554839620027452593276274614961243613217316609853787576425533844861089569095521883254749209542781445665718109071160361503967345191567404072131151355547676924971216354404261382155296885182816148318126850447135621138132753256461522817523177128130443799979326589880877901212140713113354032494066441212610068265923781584831836045773807353702966395123675291770509677821595272800473474975774151548378553767728023504277838425177053720313892401775775070828732074528310221574251094888652929078526657527508326725501041610885578663701990722428676608060341515863516995596232565448649336575442422197209932884323976254546980106674062752563267315717056378969055695457438263378211474114823904288497139387671982821867750046175455031705027015595552316224847819891678467577989647510705393875019750528001973890638115778713663266809930460158571888866615481789846813023638934924284008190793486256355296562250308437241496508503601736273844359001763077903485900894658713814739187923770190373439792848034244687338822359549153163994531980318342398851448462613199698926851954444023446008031248175080676586603242158194512212179622733810678792898947253302620186091106107764157293642020160000114135874252856438494365732097619032735321435007417580833674493425422940605985653668068874675512262901045225250995398598912912974125656588815742149911042182628596885706719254927299039424866808050253475698814326430812760227988285752714834494799815624047433556285781438186597070338900855814449443843685950093549969618484412326336076616593128382175107916305918461765622640860554011623612229043233771921773722884644781090891343655704167108415542821998011259063143506386586405521231209949161027917142851364818965896500579432157645825178580871915162364400449501602922463422283664269743538322048636071008283666274144521357048922959072827926451712395664920476517820745043577070639708328892128519021936711744095002754120205320281698545981289852171718907155838500340007383066131755049332554689033749694820182826969378615305311881510085839549848830777243382047556504985665828105823313944948104332511073264588170070173169911315159725409768716737761685722578765841661505973040101458442168292592896158507238340696964100822581930146413314375947673277448359611401346093171156004751930959166959407543397839299138927305653132932432215923105451350311724533454419492154443198321974144010582775389673119097914763224097470426917829452281144644304072230804621360892336457888072108300514083973430984762356375207982287967971271088876590054194430951734745050376916499521122971909037239712223412298685624540418835852480346163432050334459142214503156538606368995525293194833246008430474693116991986943628346555849443715526279781030692394890335345772192592772921413486447852235814309643185918085575492724200898344641663438460505274111435799369102134950152204395489432064608729654251604354433275183125118440679503109142701954524713880422582776137870967223165708462749718084644225612529197853383896647996502167728962216837239802759273397112891309053472082285215378596452239626983367338304043065130302286824193552794494779315320638812838855552003842417482048616962273812495745382940553307263835682213425530135830361179899846984234386556152479722902132378347133652512569456211186563844661975548429661517290760141756763811930283644197236685743351817157707231245705571438727466702713120954189705330070206882085748341169394766314838615592298143590358116308360486660324925989873926158369018455107001986668407161944917427157519301260455894965092943143675933418218892885620902724851744924617742272940107359132284254105302413369708010289906137958869127426156426803721395483915028056013276973075884616468022774215599352493271154780723264860584827079860017635414339709864496541909752768192781115125202343862051984877544993128141009064720973655499044066446602619734188196346519287641564936491859795209964527808287767321733501844462949189133176255456489583539179202060423603993442642380544743405855543624600293665891346547384565031605331857383008431912556435939597061776815148570943807410435125288076436966600066844855201451810416375643095876056303959591505204135296483580591476070433710365947484889110588049632189295350009788439538827368028886965271783744043472362217936277676813886223810886172518348516054210503947239867078030836175201583974168314634200214208604345559597637248287548981783790509968407474351364735085071827301446804020164485951773024921541669667742751611983618503216356964787089335805666695532999813689978569693559746659429349056796373123333979274126292633881951473096508752638518635930856525352358443487219414175801624635173842299782941541569352139566281535269010584506954356750880779924253009883021322442720413177332291130663341338370261713916624592134773286953977748557113215418127676720194591205684200449755455602533728199294584137080839123389392004257385192523526138444847723587347816713839802429072215155914607279897997849266262403959588627475519898396721415490688521823347743469052057553197023083302847298345415925590543844990270334290976181139167993230708031357972885208464744480610945497682863795926528096529869370286967774744703124799032897847242444595543770392341151091720146779488354188566491909152441582879225049471505034094186659708696260555088259640256225827257642548932100481082631005568318358713727000056925818858636606482175787372456084197737352604615002648894813586156062308909287182116844697401498572185843733590579687098634382475283880000550145191874191142971088465149998886048569556775981992372239026176512282962958472441884313614021564461081271508885741240019702046293001575347090101759425662009122525549320930797541317231291903602467360515147580323364718331146213760300148231331767743314305628174154506806700493448852409462874148501477766441313384017063668672824844788662516523163678126935024770257981692923057618115766891616499793110521201640375451070309375162654643863609337550336442621961758882713742083008546703048397927590902254707369613648501251494950462993663240730630040690496638381576334861905262751993250489224722531310045210475158736342436968929930933701893157605609189443005497277506748031437874999806871547005213362143790258351338228853396034949396247455146710383644251256262873805590712242716189119253337168109447724029691546382773911053857806995422516286346958829672136226992665789256535516999199178951816840053669646405384919567591869518018306213735484860352216529860628045454129993214942868013926063807324757374960335826647672851453822995350049312121542854914843762345143911400344204558573619872533694186373750529334684412298304537207163557399332100349215159743583100908508285666542931234278352594872166747313247165756674898528888818479262197613517407057907717293932685781966214652874176721981180171448814974562544000657276173750889226547773944256469210569186992015736591317788755770648443550967075213723555733157467393018411397189891850247895435415022931295174423488816122174859081571808556409501918535757971221017420627551941637884442047843763778157930369070289133685891849427168336831288837835079981312028045580008216293480578884305203045245851191220215772227791520516674169791391826555238507438269400613550664238516750482605963517952151149033742187679241943298387168538529741201818108003925388422006505080480671378307807240515046742900142194708133093268410486584160117417189648759565265742417469763070216466590392785793745357190617959930197893380373070236725374201902331892263281971227093858137498719914903129312795383472420010652195114062801347590726140700532724685029863182867360332830605342626818318724548187782873096256771475807320997703336458045283717917141239213252372599509103363714517019909233992100423548959591292451474300929449962148508266853269047145329870835030882680094020900367952004811002324257232335296710805813093607738789794289590502768633906985840748454644362092135357006925478507644750875268984789480469697196687029412343489555644746207903245845709106697056116275094015446821558311812069390941524816871789614938183317791924119060269437229793855703372192231027579341138492728288308386474055091493875484007860998518254041570136631943186497698602394187860673640475061917876403753802685789011587979734211018129246819987196414076732082985622964861402328637906543303291432391005113398175975109303508628706545562330526347346844937888555872217389606058219163319145531978352341308808149719587586796437688191983195597690051059037282115327963375142722393517826318278256186756008538296610479064324710412113203170279714566581523974806883232277977686366176598459769113187676961946991632831148880320577983111469825467419731578908675800456158138263332110947868723553920042020949022722087596632938323503341236496561392636774581166295103649517689883470452349250624502008576559790681041450832254568138056493876678553495504464697328398559800793966685876880101708770010649923009374917755645811666770109612975710463853771900543587516674886199520097669755180827429672756898561130337021787470881761603308654631766296270258907009081365077340519841780827416428181776382747752406961135107821843676404141644878614632169866162441863581386996178883699765851581850133012708328959156037619877123573795175083953152238859867036596369548776912739366301010043047775363921972441606873838020033355228092420484059224312718420747922565085658385847272829402740234602878057538183381963653952686120226947631126350950755488835237123721675850352372070456737746274654975557447501128576182572422419890301246554355033318431932045081958413752524117144041954493111648633980764274156965932603992860388542362436322842697791477629586212852593533529577273914075536852665629473479249410383443500525256776198788010836642845382110675556993464560741865047515066365130872705634345454891391828552783573608328114481851065850919925104733192720151437056107497862650379486344603625294410619080205600436818135086402313471457823584600614370579591945613155225904963854893674636568772730907395006402136035494558796003181471047500532487871730886151806153411935381651395753230885462312984274390778149686432349517444749324106458097962548539061777284231622543860654713506323422506952552100724178614146674726085732260118304830224782054808059589830249907460552419206255374214832830524187478900696495836408476604941512482278160402613572901866162486504632912582886257193051642004328615961656394661128954519477339326295488449618688177554579329652122064325716015051273251680007207010431078679301390901123196614095072700483499189650471725991235803936805897713338229651431287585717226854332873962070307155070986771888533241506041603173377041523501048345979196896167287709080279423797310037630450844799172014099154284288734284329983581873372548429094955273502555781163518176488872092166690899995448418769043874197059999338137354158631479206197870800243319263139057796294719396732898917850043904132516868434944638546186247814146896567401542500037804358432981989343179834226083395485772064072527821628109956656643019431490965367478482300755062770884903226745944210813360816378216271660930554509134121603259990635775267510320208242079382493542748948435565528741615949083078858685919090395954315344634468461203567710139167914327211996286363303553774838366938537389106677488024303199911217411798204865215776727713255948007236421640252491038037222326358701291312188460313696019990269999262310042617756552550612223229302417658060767544562440577661888494456367447371581003878342930621841083728255678701013963157775145503710220823485010920721840872023616406593106111654921200403594556787667464064846454243452474529488150810011332434317406992589145195708377367301949431662808731345284437050618823548271041693269777523886675903588623866497766247179778687327890628226261626582972988574446208818099300749433929906861927216799018867319611237866855209699584219487098205797917741495798246790949151263466759788126656104698534269383648319896809902984441115486821498839706636197123923488252312043040723669388134368829814661594543359947041534878110310296361530535178078673326329632193482144435059538577238104990377619998725676824827203367049470806891636697998810291245125839003264850986743095822683281272475382622848659637375791222373570733948262411917366957306229136305639051736617998347084411042649559768153067249861735350491455388746251451685444339559916180593630065973750906795338970213605896054781989222084346073660774083995481999368490222312793119259715239299196096924672004806891207498056163083967399838608839029187849733893411795776180180182409345814838239986756450265068029538134325960638822539218546951995152594318305937646777802973459452797727445332505729921037301074428851809790133122568423138690339341940740041018101180870785658339686238445105871798136775802825240042102722445551484682940894021318816744338021733759474310668796910630666115158626493153787954244191821370557988360448736623625170993452409475115334424631404670376454095610756005857287285017069802772026752873566991048794419838326206603636542874110284622549422226299432828078959074032393565583199190967380922866571931167420964626709705784382165044208313095609179310043584631426258821099620305571351996987014504549733296296861730142417777314085107898435667247871974939049219365027246598155333975481713003089041303829157684884010574867154068282119403450070108450474656172728581401908986872104126157067679022529890729881378197535949798139161742680689437621135399003649259540826937246229819626748695085808966223781264891029809006235968392592306636538089649198121739330449349337115648573917646566834861390385982951908304621658900295774136758184911748565719058347242315727957699350784817844496419296682240502731811138225702833758345768780300284369999956908920923661307961903524649189647141985557495488615087197830424243693551683414361196595589496752001736201919424549930181661819996738555308082711492863958512899695932317276805097728510983524655625688281436980439086701325875562985950852283854969955184545952913246884331487056596163795564997676680085948455030505836026544940309876607432238006642647683708100391573411698623136858566547688809260378220976321296284401854477477729163170526947667265996241302705161159001427542974872804561885565955636150475739044550993915577633587370738631466896438919735293851357397302093557091789892859637593858004538887754610997546511322188360642980558174529796765486227703924977429405801605887733290455827798130068324077006535650181389462084426840637193635972573990914685903002711461449680302821359532347933760629443423127618897778142013259647939948375140558560262933163447093339585148939985150439664822204383004561449193228850396818918715155716273315752576879926614264350692349811241625532522332564591044070878018040513802412378128285714885427666061999337369100183479437977556691910911753852974513038630660977694165484955753959461674173834351054414656633620680137726925293494220964557183155337727782385064254486402884363930304589879231571222017637463110270840521011082386877226940337090407387647589568560904769879862057166694432166043868006162847631819508357830850511817658718993384706707174042650194170868699706630518123968245300635093191959591055854458951960546907356617713340078591320333194219030847201114494134613238608951456410424927301103725413724504396657198827043608916464807366735327953167761784316221131104168799404467851181015660562925895080566223318375978448598997984761876204787853773189016935021593009693560919709412517976926595952625536333148203209498645834395972912643153263563806512815155845028657097878767260269006367111361767856292334457261915353729747360170418073682631570404603886501277017212614280315824612508063688663562683006495176351715573314276986187268355957684335247344790979148034797897459634958501100296950356493514778843603612761641786516648347678344149849284398692766125118529823999477918886435421211588298648570370124479814145953519364393900635728231101636080440787849739120274127920796827594059711992621343754476286559425970246394339038202728124118503573522530108862657906709156564985085030979919284281226305317976478101189860548664042412422542310667622228533851827080935323537270144828000567000623355268896759081141222957948742544451731901049718575494749909252579303733716177509467273990351590761254365292087830718638112621285155412505698626522855458702878726585114565385772452214578487872179367833796481743410357259767859790237984217530913878588164387211460006499446632101937054681566823990610648687531964371592384934556696119822873278674932892528428225589426240989846004315037432535418019153672399339090928770050421004969386254946655115795227624111274115592633085276957008895169800805620760444245727177906644491351272677662757001081675178896301805101619976560365462353741792416700154771498150448196109035262378855686122458661991112282711403421521518549088784078689399300522948559473246413478007880685900600557597347830200176570241558311631632210034030187695231613104709914944073144337167535158401950899822832787085374389031392049056296685811712661614822167243611331931630203380491026353714630648930202983733699448881039438633925388169882599789634266936075800226851625943880216646320873935877268869594469678017178549400536125954546987122948532807831474063972695028360157535121026644429253825577636868881260548077938262458536791602304646113724202048265486257601190624861754613493276476390737260143746310846680331204094764731396027186962663175146174516040316334751870405045750564366288518355381021699826788871434627538612413055828198284143958636852933500551855832099496126860961235960312457142924988202251630304497090191949477212359386532432468168703781275082209386131797354100528878884123712207450062834630022432692336158407723362216745650581109067255215068288384479449438434770648605968765938532728868036466482673582766499341510083190525235482476700214238796994446442688653206645563654950953288327747343600707502037152396257685175068548400551422725601224638147997864935066985325943969917077771034191430079748621146707139700416180228906224942874073222250229439433977260908207967792064298734257978608831357237935154013565141375124304917551875309125423067101568621512879449957773394864300561765647527947070481154725138344581264338076016499654973018646894652495794813861380879243227042221094639440548362808121625134969493669251553182483615874016225862327993946778219357468830974552080279961008241736154400813249368805719618266107714260510400457562937997382718060680515755156413000250432294221980059574176005807971397576515195921127328556526303805150092910310860572700268381701972191753206953304066270768198402133890240237501215274113188912874866057807511567218939835318381238019347756807333772643154652715445295669185220349853789595378713579599034834062881652249760981365235985736879970710049264640926705048884856545735277265876610298242267107806124871980059449267227795254144740670506203680951948287463009114904579189639565639397889037114528008246790503786528529138468178973038817670215272899205668799802709789544681353881329627578472382056638747129441794819763824631420601205628349498949536001003890849213199827566576523589071721300372803887128026557801810081726249841075311564788758335301822571425544268879221626225298497022226759967995234037809081477507260485486826713385207933925074654550162475312631219199229958699390726291968891873273832592724414955684059389725384545985153139056270680928678974561716244042104059915153796081269509559419553358319930369184304214561343818994567922184488566135065568760340381322317319966318941608322092462425316403875390490852516973480691018787295725040971050377412648394177463378661759308166489088961556025760910050742406092934269679321825494056958783343592199044600341129006644264620202802204034666346897898637346440157635886448202229141824218351598070738682890666519978918893064000667340796899565278754958375043092012131488165256503498043846820630917288168517773270532021446768104473544146135607784756755703017456385661056481644994175540173397779388146050232003693857330601694340139425205461749990909781154350601067043754098027726069154163591779879671928639882483788193812426771628001160924515224901902385181108808843593057674226877935829773331643143273277702061351206953641272399933487975797726522503565934716508971017259065185177338453113933043046259197233612530823685472894001676485282165770633521720572555158478100876036520868645864067746342895099647681711961157078853309076398702142207653874207042983084550070881459823868238259771152728605359656878200045385714896074907750972275799660757032519552020520906117855867263030434555139758098687433547870739715959693891154463590974608235384568330088010165763399593035475738556488304084049513366694094400830099394014133252673832364441585758346538410419745775708282216024909737207873237658022465909229319271399769561667143211359946130333754483783179554147612984727230205785838911179650567040939749016204864670387209512115819014832481609507388472422831834732413441551172964268684020178510143658712783699045701038175423321573098303124163344395236935614239524657592103011607763871792137677011141923515941934118496624302328394404796351767831901742809212533366512272285858914308541798463901436213051778627292388309969252530925285872832664776993482150136194578650014212318669954182169954799935613263361745346253852327809740892421889528166491340642465387030996923479466275235216143984641880863882521424128405174731540659463063638368598883818948813346704193318449885673800348228969485243714954271795748343831681074295289497408247678312709506388926896467376955731044699564497361376044225566463025639150834730266044320391745058453982346640331267104768982270058322918429626064108597737959937491046759213324331544809736261231243544445752858999920709970089339812002378903849082627019650546669616823497512656281079704137608044224878411984457710698892256944159413541090086087096040358192304678093008921309051951772408261090942377844769826409084227207023022110662220613805790422374974790458906296922513758886685315772148180045720750948010278437084369689866088182263264540893963806306269896295975182367691652267012107886295651058856157107172968689259252518396723427851212245650389487721433434258470944306314511718578797505457839648414789328173642874373360829208457032522260453936363777723694991120056107006329331869785887880311780567682014177321713635196898253929094875028034219625580632541548266322112307914522980774057897799973841282216952666093459013179010744308555294854553709076853082707023720948926478342399534464125319044536996433841459288239169538753331570525373572755150220579721092768691149431886175662807822919652664080934275928497020947412205687327608648865137431420420732198509677410819580955075472484004401847064146725351280014236115612110699935353714970689010050454697966000542258559198616150315146117617600145189830653850422434754918399179407755586942348097599547481176490958961919523930034128575646185156858501117551418374189872402189694093020935044642046886275391830441683346031560697901974834141445426659833866101792428656063104724621183947979626286284390569459126589937170074728173344893389070243487289313432361102793987885450128672761951688764142811400391184077915539370744873856211874518000698585201796337856307200779704755254630323115774518754870647836636569523366022144911914227880620268562018456156937860139859673447789710442827461349404650667195413024913330073749542544020956272519596729853172300567430246169602179600761963391854251190288268244001148416618945204603574795736584105128709103834696666324282687431413093633981304544465508564128453720402222644786094972613537142943417003534098898642278540497899103421546074322241793812641357745131468562604942282049985845504403475268335171729417809528827479665270511614164794334474087630781903968108333130827021286210308523961577842455353632482353485618145795494129608567399707273524888817860025061891407631445710706475042509767163143992864210812248367853455842120603266912424085953675729782148878750311398681522563107330549577866659069653377058537490200433960368659512217237197157333735244203698680621914809011150365599150689291205648126323831376792044579389924394180789160349363525951354020872239957965479335760975094301078340109597292757464174832734910052561851850978453393427154901607903763721795137741886504428086906289142764169071363869119350593270934133013132507569233155115894949866060527171952640881097771647532965216926232358637848985170503938934528946122653683500109593738117051972821811431736557467896223341408292504006113178549763367030437426271526713083291574163645025204967572899487317070993693965443785284333157445350008959898946287969065491912327693297789156009805856205146876636727104262691614174433365245677090295860745640177054750731279169794258053545181107374918599868939689924514072559783920321257971090506754893245748623747478904830471932797875184584127943768066582856850848368685388925537590102343836647483744378411998038865168407006478375648811996732163433247985022080033601692857054895517540822830210352378518186942611320656753797403157720882945935169623816256599405666197611612645956013726744968548521727084343251328989336620683445954988629696881900795649769747409834473008028820831381850920657504846042227248807084705399729040858862142513567623168066211015786437423400269818147457498151128528610871490567811958814727473166283945215247965097230691213968877293553693286597265511062020628244471564622002615049623896059948445869236741022643892548097125954659124948371068071120981386883243468625664187087300253745629932712371661148703033591572500617918987235416232410062161306716065963699389530634832631343320997959834045455867773112680073199193614526651237712070096258151745114965816643932537154873061411849391288960152558612339733496043411331455800465754090021926884359349645722722394769273717933140527246084037989325956982811418041455581645314393420093144946299892556170779013242998097489306496032810448160409857860289040634318098126845209092531908798305311780586025266364095632128150566891643278907827841239348358099912923321915291771948157933075780674081230068331557084049523222535592374865021672939449347025113071593988001298802784074229888698196231950908489017606456762511624966655031153030828117889858752186968241334708051602600558699290102352928760261188354322490755932450015103178987402062618562266580867500298130518151184974974926507293455756255513334419621140992805607951280965681223152675047424097890725685783694689555534502369070262625850306913319345886891406295777533360730372547238342122880964396739731848430789988363283024148849167674342918573977903041341212170612300051452051447757908353169185842432436398510565212798076005520240618224494005953447149124339069630336810753283587174618122441465331539792413739074025794249035735231809933748480495826308863811652384332303696664114985083274650042854073172493487409244068191080882509174151747395722560131285389722360890771175952726380757450043127076839909819120630310180770503204228143884425141824401664345279353183997397371510964990474661092259287685711208931219947632591687030557730537088049986583488974305934372684142431593782549058142535038494146018752823221715902533622983745519845071612314108888485010249473715600010240338394017677135976452421905162595977276204248798074181919350533344811383680773141288858029802093032334293603514742345557329088970812294747607071728468306751885611404264623155639134768712063385897931478328170995040282257852782810078391263800076435587594245645059523772396152769832249435176015134641879790826015938482398867980221723544293892994865365658744474766104864591035370410609457868947773862175895246931609412084712827204797737365682759714266041879423736751544659158988448487255189114952882151605175995922690317687416895098812536500523822774406629112330486849010811450210282977027961689145411293860842498585033921599296877539965700622217386778021621770563278987923844760946100174395383345392391841032486156948862872576406683458101503715014254999032447170125340031005993565474872862362868033947445587982367189548291586034593756816011099438969311079351092017867552806917801749930873458411941178742565992373195564909727614356964617546435331923141285262297729973819561896396572498474634843000738302129275503501531023409553226303622593867766261547598439372057549693199993173346276767071202103922647440548997891896548034325195271264045772760819680732866061313236060134700654390579379459080643101839118730214059935188655045761810982073196089981568488702994298430587945479051002463207349956280404720331560712808572607083448754661727050843291961988132474222808715474945690034987901454703022929662592323608220160383091008848458615616283750968266866546932047254176418165175615023848338509189700039545485747698964891800245440752772100316116088010325639100069594481849051524795412228335022737518014625713146524169544818635377838098314050818416949762758624749839307207150211112845776694340825136308163819246869345540643070259007193961660980326953603325207277690076501948079166329843829924900674161871686294103369199330448611105561339866897878763835356903132748849105369772795471261728403992646923057094122118728714167221825533135221660861447173936787635821839668742421729317796560911476528374345195871787828099767931223337161782845943564562846852947856793752105309698792584242930679327996971650727722819371720580727094789416808948138437376921262861951283564191686944066973684620915406964506331197841350668165886303686294141307161875426653983536088769940527742572607376446913205406808654699479590677493057986624657702289884787511261179690637171892135955269749770616347051156026273653666425279413703900219798905040090719403589921069630081812665486301880063585640463298885757190305854920925705925196117565495661922431548343002844714691163373494488063523922459444674548922077171236607642116383083709258728557101194167857511591307639120533087930854539595504565238309366208036584767437388276190335645720592813235624875226130721500781254196136990289762683550833347872801319718607371703951371368971411863679226089925098029593131760569581386438679972234465054144771185075552028282750263043300794489771836849456348116474472828002905645857862265356442767235972094555416613583556792379272171449294707098019121875763336020603774584476133471060251004912386129996058097415047246882511912760750551034870020089347201370011941065685719998759618780199905842775055041528928520490708624010314237115028130263090898467439877115617799494802881634119146801236573935219110098549669749174894080082257558129881907690323457460547423662730651971836768442901339783054099201655500760414447775091403004519001951916960458732133295324612230148798855232250266557683514966141081422221153611567855867840104434441928506118721689943328725059421776242606465736093377036493563623116675672099187607197907383296420035508286284610720754824814166812683712486573419922835750271006695885718540210752612052515819589180924191750048068849239805540816786365202351996028068692596051995693995766811067611990956761159746277116960390566302631849994171417832675220196836697079104606090405869345828908402746089586271751711645351155081937198355123101392797239409075839873989916752802183430081923722777481257846582934813092499868586427320889482010598609966898791233015536376547755172735568670749416791895777092922995169134845281641039696565559907111565063015329771822299208068505556421485878417520861161685588111613259184092586714806513573627555830410635674233711590586559201195043647154242295911665441769044113997882833045539300581841356574491827863789609029711167366877216219693592038307129751438481491718416853221807761005914130078826051073894998302635259420279133779449874770143333858047149796888414372901848932072801240514059824590737269103318790561238335789483830699128516682768472886913881208044113183282656848102591201330963518632221648603183210079442683958941613330747699032337276394948823285461390933545373926013103407307952031408041674964597943125630650868554578187498729885793884649718095720239927488359468422462482857069843517456452364610153323142071669073493282198491804290128594193928095719410443752506944652637291669726098044139088996113062174459248794334768441521776815038833756801478145183670248623699709415428300710004351208373906237499261783686535655668913895575643426408030096416963360749896871996972493850711823576366686050242230056329981277593138802826122965571979961220571874843830214523096037863526142954333024715098920329233313256501415705531738585201121025662509904131703552171896349420094029730190834624555873831782624343461844108823513316024255337950465768444508775215725292869312106099143519818748056608783418574394125529940168098748958747694103389148512151444990338754360768222877444302421289743093705495048414142435753799532176221848654762006415553269037966920858374479719787954068313486872457399470426301962219912859404554656096507673747133376176487820148495482658153658799608853370867497068609647714074085602431823535248296344920522650705472079291658904547304401600499109948412799838531838970827120181096131152841460103492703669077709703213343021952187911503907353479088335908039670115380206131942013832153564502184887177873897213339357432046572978407822788370016615960030134370428822004409345208189736510108750561503430698161491364020508707669334705927953952001387723738644202630778273394637508199111416408406699572836908489124991930872168200156583172486587472822731705217437802208152842159197428660988037615463514249689640424500433873220995791817832537206268856691004658974369542346245928485629757357495977651915446471999025461717193029597912119429543746653998795184503175914347315186837477211363865688780719450967445073009928283969470112593978998528599203423293587004762310839382635708844801413410207488043899597161069223376186740171483794134496033176985050299608929111038336182307601466052539255706358667263371982757933300500918163321658957660514694707116869127059672985115299820551546567268919181795413480274050092096154611130698134898538478990325214346688262077632483162651636990554174394929571755451119769689206913894177686332167165740157222475897888950773471170573265689905012741245552050682183519215562338374336178305472912522607472407083522476874015687967265064905200153524505168459886764391166835186484882534622323524001488643495304607940547821474370683253749857882243134151870842925428988207213150973671885665035486373881807680721485513848045618612634160807424005772925133307692161114747993768253176918302025830012516292064928191611730974523952611962268832461697878431378765132945946952278206421776436740035039925731452158537923099433868317724728890238247438168656226185478221441538520689455495965307865146365429193046279231589269998155381810973920919623835514278630751437340632398796124928158605495549720834989815847963490220045354087652425620720092856174597195754876390602022151465924126511134982800420256361006228823154827630694700075242401549819782866655307691935605447342855129552843912904959256737540870183676971422009596935530784726837444500594118236137294419916710635910715681809069122408310325476490312203114639745354718545766792557457909761777905625913001503639515156434259121457435901720414377120255753541320165238393149458966504009984597507328260433691553864813009642738704569653355926968213877430869541534984933369423297521385018928256643507124975976540760669223233667369464248483689420964631862783533851328064692974178491408191357390774540642686210345556604667521930675145152013678113982449403013013524609065241701296104041507861113160017070340544557244225857315290018012649609634929347286354958027824442182482863517878318109391039616723475750827928887914121455029113603681038031790096934591690578094628868390578717039570605995175993727673170456743820464842182850064182588022811035451773457727203700824287167002841801978630572409721291910086376344539947823680051663887833968349189969003772230652639148605273163709878025768074639686443512721482000819527887847835349027199112369366659745220544206715643772234718312597232849403761080952817407121851812919671957637894536940520104516193175139532590598543019777545429619343235796940817658512836379375145521908754208467250437895297907745125735070252712229363958829322388554513925134283647270749080071596664556105819435785014055551789823733735040556813112264597704926892719459759778598856124457964417008581992302094218871295875807469158344431427169546660339843806535031094369934752710043114022386443090087847098171293841343047831184572098364834273676328896040177108459451030639177724480005276858715758760101016934226180831076026468540328890835291087368522112195940291121945785482839536902857435836172561403364806924228056984691075247083945252008065794252880852641202402240312330478632526297249105438050927029265649545294245600411398721266136699413230007243953631998441929867117875090350315832362735579882763124687040837841686652760582299976090680072147405275789297667134457809375854966309437079781951634341926589835747589218466224713184290442242757220287318409765035210870533734251538516731907399514599305120975148672296529589050331671008160811164257818446270179733392949781049533317991233741740228260731214860318274909323172683849372479608735539239978960814247812742943788736659122912868544893366990063517408163938114393984673397921374366099277875132905661156776888270759277904387723348589139807960076818049158627847926227639456916703035121297650618722455325982839060486568294915604609290652654230879897380222094611985600551875760596133737660414829268589644960660043875943324454096442774677861747271520538188393530874450968610523518924494632506418449837486222812180612000406488309075733602045101129790180655679432304754022905152371843493771534054996888918582975878509996361009535466066684476946569272965972124695413162092882791328798596504058811177861336071855177848247166025811920745081158038715745562090134426395502891176697006261116782287805183423744389546659530851581201124105516319787063961868027561350867622906450691686238960784653014068061003300362052602092320607672013866902028191834488325531442819757746925536144969706771169554053656483182717021768880968497026739553006327250403751316563615785435408003708251865235024342711970882737878095401130837306125507543466707502677144588334077688841413126138229051815498179765822211971079710924300719113260058748988556512928895355601317637916382657926094315207079794191890869258394047063208859127358107088204571458324173628895985500178486327287150452235185526768559089679260315058920882155210671603880336511983278049806886271753943223580793895677214498754511150184589971589385472624484995591673072539019091737933661921670712161225404501757228830644703164655489479855791782788652540313891595542840017933628262943535614942451438109416811064363522655206573553322826086254412346745600961136726470372425047363035220680449269277393469271357725970280936236198318891269273930043127016370337933413365842138287750597504583045811960620723842962398258791203583816076821879839248184511442613278936459521507054127721914541395552434901969623080012159535137554806869185138759327109888615012029574120868323393729153878687564863267779140583179386680553351040429951300831410906200515166947459289466514352446767160225144591214129592187778325829200533125860517866275338322330069040499569748515518844343634234441510628198409936740957295614622686592962847297537407234899408681058396056932643873024528218147315458383130136411694155502608790914014074818569413140074023250106889252941491769997446465825894473844407820357211542543485216645811485708382877518447352336716929646716573957454083377997597264589769754493754014116918329732687160577439590492660739646070172706150297098786633617433480556656144787492103466422006325128094620074763024491564084709672049380180404230088202267491955777590271256374478479790598029627795649432771780174729730351250767052088352888525051893552637451732689339652936894678808204384579925067565063888225258743335336409952397775516001940791837074236941251224711540742608515884032016906885775217381977465819389007275802643525919785563940397275569067754206687718721979159523794568191199280440955264753903717302830504382601522180867124971094048274300320274387776438962473333476808616439438111077485070241034416446762320250945100234268146175938712929063424622659691504792548554818655775698700698347137214598762386378003390336919112515446966783295567441286317616049909272551536897597217107525790211825783384269946450143562492595207627532595212173092188031808995241746757639086516072956765038188188906098119335444605606719093148588477169471877938552052386672524093717685157423110796842650968234369802785442013791845300450624407858093502453595048121512698882676710721050074474855050842452677657077151450818626074471160010973717547527862281897245339993257680981814660253764761812521673246673998110436892690977568214152153785069262399327198045540395996710915646832455606466449439042263301970400058939837199566373010535472703690719097038740896624491676823898151527077974905747246054230425968998817719338045590947047976848665591980681258581112602527286744371289446962542154602643535600903081103959383184909665526582020062407382284045772503250657060042022939716505704151668887927131993579534742261032929493393069670164118498554176903513589713750796643081750527508607419832449510191450486074983321496161956837200385957101173741835441545440823478722672490435993535802780003883299364906520385526118853527787593662737213159024550062755618342274809217917466340585124176533325779940542785599103539308457072365714778000899716785752398160686391821894091821914503708399396083361980262144242547953051792414898879001231353574674304082405844062588002146456494325358371219347810545706768211993039381012998637395477780079930780528437971450888748525430629080178134215102017801271572258419284874790930579264478823310579901422973094782550934671005427441204060958835457884013386092468864710107952096855705117079949091393803682883110270948866832524710577716928377312582312992946545563951074897564087898780024521738048210892643567334915218826966268177447280260742334223420984761519799918160744933285277182074508243149912294617992624479363596257160998780623988310303936584224715497598093170337432701173823269260290774759299867580094580574282699790886793010844441243455118181175263696530519087679597328309248245105963281910008730177262545272385600052310106454146612891949286368318768519171359946485112036586496719150637385689208707326687671884094287748515907870487253345742248742894940889519373027535489247488959653641956187976390091237407168324125329860834365631440058158831736032534716366724606115152383457283847015116592075164731427061348658992297351277550059007559219453837098548442867185552748311109222306896822049839257329681752873167280760386105950965055863012521980878101049844448407497195268055137578346851761261989471444830764093808087603756359909822229734874567985738047878383887962859068205795954356817369364414997743199346114044871759082476069658645536522556611642775767025491392141230120208112087845632367173344024028825403250386856863587387229661599725052273393911687024218903403792125194417315814754897453727900422430615329627931447924123738780538356364620745888808386624505372913817225021736398879594354922170980296458138285514419079154399920469413286609482705066389520233613145636921376473291597560060142513111448052196929480484113354117999262180526887884437627662077461911641802224959493087787751832649951892126374861896170017539802102576182800433210724678246448357550797503810741412197757432801875693255551723973743642180910024058694315799796434472435126642718365404697254698067443668321982386948182538467337754112778985418871904280104384586559646518090351517925990368181770827689043612363794795492218652019666204066375588585729454358658374647041351730505592228579024317453175266287948642710568519719197435095010580947421282789630857140128918285162810189662281587663654004141427511137051053168195904233710334173301144356965885983209977281517711840497924188679617049039692674602163143944465414075806757289596914410416748973409536943465544607213509917383458124797079787451047118158611536667960376571845570674931932430602961451682788102342825735415970394582747150189060239946374317577310406406264729956632936261147504067062899925865578470181850428997008247696226492518105499301342930353163959731244987137584395663481029705789240388101229663808216819301672007762928399019507889995166970022478987181857450942804477572640192359401172868758964716636502047395962726441174976941050623592286308902801900157361939344094210062750277960529417323688098914530095683510074487737211579802346141286954008012759223608175775151385671470523076909647466122232269852782660252129403022508474379614090245036874453085340855922407862006305253425416976562074431625532167424602801027316196480372334714486196182306432802165570715764892030005203053631714468698018162452551834865041593631521847140948577171963452472774018705134967392824727920669897690055668526333645358252300080899820097997477339369083034383934227344331831939474053585609929448254435839508307104371937357798525204775651509092853879093761215964672152145679782242883371924401669159079585095472719305284765858485216951419510578869865153232236658758749938375402842846229997151169748879109941768522490029730683876056476930743904238862713144004293807686257699845000454008302415229274469670738284987419220665923008258672091287767800715908774757848995007022702604368036974766876676581455480569795031144196878550371007390540771578423878540883028636221161953456213731319691150614558244877532095018426804081731475233223845271363769835720647011780237458823530475373549061630987102461698067726548558777185548959606402350892260925326449034240727972362688765301344108799471406376905104612703559971960884232519666617262765705132121332362192254928446211727870924469013263357684531761472626236279559768090425957029879173977108856347035685518682872243420039335029793448065438234732464758573320633204267976792364361725693931091875147693857537453341016951215812230965431235316857180131168537862838138444090384404894075579808137941998304072073915657180313647800478158397749610794059111880043407124073117609106162945628445937249470042661571912941451122315952489832601105510518065256185760815111282957271501310374279470905829213797786827230792583626370352643262383476454963686383230859697867940737826371359050599304549709902597737342858463066405160371893516436988935555738582297466123609862049317423343372560377563466243510253823719223118364984117879120487312862455714104610168955224505447835934799313729327095559541159254133599091081340386960477112194797004409599289315019201091334122118184457388257535726969292000442475130431818750602464343229885343420413224370007277681608474727347207500340888767172977650920090149855859363734463800370921073266540166205817960104810815613457513506017844184996807479754932420867426852279039411999681769967776852616224123084788708819605472091226443976881484135327196469862921107046995099321136176929013814334706164979329108256182974665103307406335247380657893466107812339045271424887611936972409862381507568086191769608917603165008216763958041044827982629574606925966526813043703693247098739021410879913180996492379452998486596807434394640908285159572879792415937329097984063966679460806972712546213652436078010468696743568532619918542561257875830955128088800388408037325476169604340563937048459155422039417781424756538587295644172498291964544552704707534693203032406664904005329728184847438511173135056673265655361868849978608552841912666088290284572847420914605792527412876783642121760810119248264991062727413878393465836487229409616027465986491335312632957912991123344930681310604103431868408028058525926710562059776490095687304780448723758963233365252100749482899849038907236992098891767519857158068134569851516701487947498118410228808081197479120102649736768956567186180087865141702864779336471818461477002812418124222045634887916644729486348353915933339068977810872084351050870224635779276131826528818772571556972146976513501785327224493737466719590017111917462274498802924473769282416777380579377677458386695346005781188362653231789382606495710440683082556964183984513047635752776576111189661109785165873144310992098814737159607719004356328770008892000724536821501792796864283954171480999463619022056196554578891585979384500057124884144341197641951096648078612894005582933842362296630596085245249660474474209880304082190427384972344470557586489427363489493356038928618005122052185964630273474572994173447430288595735671800718115952735289204387128580257366448918691659635772751168724617273045663900769138842187742233499325784136241517042272801872429054754177614858557571170822965885308463306580159309780462651784454992478336244705956117740478001100890441829352299846941241353632601669970249617350787871588986066914420798577192376152104360050842217138375401078652093449041184209383196892937221211611631576406413077222306250957139160225110898313850457368005179375435645346146044799144029302206946776804622628955788473848723757438171360431820206000916576768193844756108462059842038644722153540380740278395354040740622023326858045355683246111797730045460966137070769599124081410990104793541560948129793438345082160642157551973287870179032312522908593790944296941115616442996959441762496328268366069998919802953608356468874312124311900695326157683508490587994282006884756791859206578134264708250039856696982823176790197551172288380278040312456006552385441305532879631478218605556682645403454588320008324755494716788508897826829960681755942949511784814254801150178038822741800744344598061795591327832328948041619928078753769296286715642520732502182450381012863642207435258131947395016580981816722248646006130532248013845349717275984537144642746812951120877051196358892536638222898182341364468862818429590992963296684704760323066524871151871332019734770772104738033675967082077106726904224201871402236070646117867408384986663058980241664141365887770204009070519060465943587734172209388692925982855518712878538380072909485262566427440132780818411864991119654489367506621541023473154721115743975190294817812133337924742203834029817568378099968284414639390816438687518486981514422031576378251667100915457389570325030126901842257289895508451616276187113871059405005500899383301674794979113958196119409113581229220475923220086051815714762278819567197253573724146155388220326434031521643719915215972780069015231893225001058944785599084587472895399885888748254999730043687491529171307220617436015951325436841580652779255286627140005715039580928419540153509039802457471527349572772888919557530002222185290055111368904168283609240129383080186277315762167308815263583921553588692691745380045997934584017785382955562767927019584553677007245253155969750398670100347268706490313524258801092433781557591305028531648788068173803382261239748500274349985253296545608750626365882393982876288572860030245963178111316794478776596438907329169900444520589389462452088542007155168054443673280333810266887589381772661081161643250327367862132817535542299438218308003668637756052896635338381893325701521037379914070075720108922437500808750011709661177468567339167775653488553809753649854423544689655879531341496607077343119862130201461162123577999827710694656874761198635366881205666466416748109061049344265965439719631546958823478408441579694577288060634207016090542209443649530504486873978628576289877391983859274058417957570377294385440576346733076853251538570148733721230234688299744652086325474631298146540896446447211429129448557844497674755919749688184766145942265002689178604112619450800024255433319900075208277290050870369743122793085601600981414218456229864384098989970113126190162060513672177211656569649149599618048165725188846068405089233627157465637428402328633674958378882685241179264586463862612398184727609256656502156508447886196078061521438536762375990510875542584404733375572121454749653072972310107172714123782196419145360632813354279009526879397486542066602745382273415058457592024350718302781589884553538921284725981352580855382007909900774260564474231172772243844726766624484591958372913462367708601357054760449566068177556760308979956611911930395115067979254929109718647020312155608687872437717337655646451085209371275206500208988756259865863449946081572784270104152505962376076046276744540229438104593585352549830663202861105946636458397207294787420633143003047867771374856378458626638912726062166179403629801059180272396662133374388190913283511280674107678778263003079954029319185773820929728509309531935245855573121134121443561332342339142971204382757450712059008997155111833254621124318689962707843961935299592609926901868336735042118426697690209636611144500296588997958888574877514905213555796803177609323882235426332084648645726171856742292719172980900039346226153465331317103168170729848456548627366681342545021600043083092021859462132553642877646960454212657929739110908670575461567776881304008471269820936547354161427580067179494796266882608380031663672931870182666220179876795756683231417969629423544783761243635750603327635974618785451846118165969429084248297883575276377704592366908315090958668821395560667168507013830296920121201238573952383144208018986774951420882605969978075016541929421747424153812875504182168826670237997893985445159882396681230595926495633004983808199863431237897800049026846751977576490162768338605335759960924280130443387923433036939944749380239626588257576805133698028427780066317283705382710215303294224895511886557757867125553454575862691454465921697134624595876840195742277446442041022713155866863113792709876314197358860899809540455252974129162374853419958225754618015583471231422439979812989972079051269725090426427845345540052393916173924883451913795727877727617609538877184082194645293561206619956215642804800265758434662524345509695253388399620759226879971513426071804941233198129338887199517554705537342803107165632409610811467593456030397338883660343930378272494535903569402202117504554655779489301701559832413706035038795535675705655507340171378461486471304561292656488781330024645488009335595091924693953220186120709426670930464067520900347499172684824304392126942669771980623737259820870472621452266456378251635014884043580014261879026644257929712600344741908489496488836301328564571607153451948110564630664790325631682951474162047746605302436094153941164444279276058303618080525729578602612223353154881716265403004493555397879839678566204908651698429936590345831829171578150158471294368843542551674751504295602628694978791589985339722650899341651794939399060790971817736476394126084130114008157124301804958604139350407877822233299288883728535722075761251461867887992173419858685329270242681210256372633912169013429951643153251188031016237215073197466048603999516503871866945759010856024931341615540138996348892574540662874525117280740912091758030407265246696379604197412549348120448908686813996809316029121667098896591968137888708659679816762554737075643472301454542084739004185519060820916130003914438952845781059757430716876841453781592853421732481735479594590490223829476534904985580057395612217780901766923484865214979301006320952811794533079939932094871087905399712614081963824248822702769328746472239703542806536598021476695070270717501982316690611364325015224304619166028364816506107560439884582963405624410398940311096691072763096318140036678523595088677707792155189462442578961907560747731803218733086107564050136242535759036536603668507102359161951364508427008158707446590433230514277772096125599938672395552251679459303580969191524450755083478064633839085625139091323577114051926203155991747302460409157660535721868546801425032860737698107598804493329043236338416443042603422409651605439316399912523024061921620209284156502148130975028708646998595833382640255395456751041552490361635662828294259065878891244309938663336352953566861996869689346735975885231132207047745143966556697573468696272534502540228273139893888820108866425578064830829267832940079574176874729041216112319318788856563423907780559299748687772973246685444282357846088578430192219828054188654738133859684576600301332098278389472060653599872240524568492032809667342958080668743706000422603498544083891893909133745430464852570419797693266728671834009954392970829943257388434578764959920374302120948691513923861996023856450285993283468302715293394021726094558393556555338354937955808355484468231203791219907068176627718080548947436370892656862344038638152804968335857526455542220679196021928664738017038069090897169348670353119341546094796407607529610411448467351005739878536474818691113173882039610238691544794883682487423758161802322793586729247567349556947771963951870106051314172067258400630310148719883959781236811384185802107946567128470651476755022011905930428431469304411558794994685796531737251126212636108701937839063491848230089231222893168269599642577645763017742233303107836607609194561882453006332366547656774868520370522812527117407619168955591846172220958569969410348406268617574220241247575211062981186595985159027964733305197179217401685709660107002129388132682218616905485258252695448283946284827515016205708176496604732010625875304405223893296629329703845913977847313917252962243358175344438320058391381471190011398353474433518065351891682053318161812753727574600388330022681088525086812519855133405256299839216735942433025985441086488727689808964902947465847298279910945884331371825529493527637786387372269963091963014464970332560860460668755457060860011396613801571146401762529597454431039379012963061531985248175637255523179438057215187982665004199795581811101149773330824889522384422067954886838235652557325924014663556456033541672864718818848506674135498842955378031249683306431153234837818928537115052558284870109662319558281603151774959292227895088112988199650372745116593541355871957569865343221266257813210260700792870399713589809934886374416862738990082027696572641871809888562196600804281241621271442442445533252419772156585379988629564723579615019675157505346700238374705080291121242486725439198405933844885429450226728760397665966474601136868201314039499345174478255463393825337658950646548938959794333409479558032982433689998429105452427267017322983014073668968747267242987390009155878246036620369977767054025382457676672461539011284913753416360937666437564867333376714957380936937784497425313167497818931914133900211400665418906364751310808798850784288358948237095960410200524769814952804024366622344899698108040862173476977278194115908799674178852844533723936516878880824141425845315432974003545018172204621658189686835004056677431779512976497183616132425759302881756511488677255660809913514714207029963041578430801396395956223469726306741502830121348087386876872872536373807649293687553733082204258169139565011847328881398580392856208395056053915214392211627550099914116643307857108152550887967411407650049724963247806117973093492267940262594462282456977574970731761888423049125330985987469447553890289625108191640990828629565940476058892276622979345776264886729413972720504990227116828509422025957889617709361616388571168816836648921840337497732515674352750837228862210120502381162510193092837803394167688495525644293093892921934909145550264986659220469516469195552814822282601745121325511278892912029963002948552705993736658506674341728577951310254914135626404370865540331443401139948268218221396768755546720776843264065225050950872705987244878301429048112781899083048826524501107933659114063642033333232587424237106732088943522638500391330475942237295359321787888249923321933919603412582665903963674134467890534809030574452651591290891743120210133879558715061651636167004382941376817089513325454187852706363539114081354790738296740343894399288250706850408721105845142907459441947293864439480605549722562002774296209063293279939924284691340641164466803646282921443403243488334649820840028001519442273732024345533351771544151785827414780524536789616699285794787847390778072326067738348414800614833552175951031675285578978613840929274787975489393067907815181944275245200508426588767563685374140724945273620940599307343070819320930365491171446016649233779175801253470832792014818875030256204767639315682510834775130582953104186104750434698032683103671975603742321149758302791097883463320269739291025230199645763247857501810421980634772497019261312654607507900852973518179403471726221007403602214900764064716970800936587209335817871648524769935171315218104100673678346088185242433006772170132028237872961312677072201438859777433619294796898108240642644014882271547442904405794318223938421558655613694168299294863303404839393546472681877843895590520987354405809251625422134910980055016333923250854271497749005728007180026346027015653659608908347376138595933210118769475970409298230462754521409759526104671840638832715797924822846948899004880447775321073008668102377271459009657643223398123679112769837091573472133984067479408001378133983458672206443261535746204851669291576394914199844874319958037280636037941530461119399237140736850346352487501962235408192159979688195540169161009869745393156948433336582072424062936860773099582906400501348933566937342599720749785719144070082844749950282758865069852260743462543454982582526759731779031845132580885000736943989009320843705884384658789214035101347730585290647906175790832517409989796326545033298269794015839486816685632448545271616566740347988234041413173123293829347501788056055390342181993153633500369145941517768757372059543415617662132587415553466001423838009103959273423195629465927518281894692034341694782210633130423705366132979642690115999965615406691655227813183437395432475832732800190120315109185389869203953245078984569920066198132808896349836392012286700117882003901647876793633968756259446088481937533452254125659782472306872905283371135324403740512741561101698737254021801516999653643849391431254027682986152706831072070843756289133392201114099382753972147861958165663103093382328861642805298450003381749970196465831527605068900377270410195022670749918758177049306422662127993045021055924799879121826902674328953580605337268777852375021934974870057917405936337897823910119817559935794376597457941794193697959939043482053941939387161716217520138956973538349859758314798960856634431856484773044962676633233895950213126618985223451790448467898505547124124216773605882057271996096831845158835526522768316413414192156803827436942971778309573256155657192597900273537125468879483009539569953121309039343261322699458265291785429823235195852647522413272078590255111556851297588011564094679582609735420611223004153204955413136953153965300915266852781372881857890125791149298064915391623432601288936502706315400561823053591700452128717769493928258608644872622969306035743332866201186981142364636153877969347682246721418346574007321782443678624737817707057111998273979296654866059598959621141117227412146667195553144366865270441217463913691792347942834896782791893150257994719280701171803241829708941527855673531529670227201128743452813385659107278332091508178413522440995600098940740501860996944714938519231566537643070824809637518591827699575774974415061519211103559389585644681747855247747082669129649121787776846489691587739425539722327861390413943793705107396924324474671917621319012311084946204735591651984793419111683738514881423916064328629717368816205333638023851624508775762723923218013309675428972479885362214670252669432559417792368495867304513268665366258931567284076186750921874584553223343977038530396971067831522010473395108121364570184648025742603269858331862575273796100378598403034981199631773761112654877840587908562241037484170055839563084730703598736629300116182382555809148037900763681293130872169100087314859721914158441152842678308134688767907013525492367200385600966721795820268931202169045096537475382559718864979875251330500563032464845436480045175003462554011413936104911862348021103687651309662721429375807349625298766837435525174316135591183877672030513047343862087904810502733771530623671894396837447668695514597830482476711467465219833065068783918108740959924530234409215828527151468657394763933740578682233026657077101210535491124313661146968920463943755102392650834218886018198077887154977026610842050257261123434809315687328381915513019141100726317362537612617356568140507857328149103622584015249721732101235680016509130209636127876391933758698542507808525130401536025240823830059488342060778358471860263660320433437382071683674647843427207557931777874196492190443732574636941095366770999441746715178580165897098467972598642956347819417057340126767899812730666762654257971849678250861586744621696736486787947842875649043941034118075610083422269323536192534646207279249803868706028225195590972340198851910904680408787277865830989325037887749362335488603018131229974795092979919806879972277465242180575166716427574628028263479239783410413280564620419444327169821001097143952273960501639283882749044672023913865908318688722241009263612660275895778576484305512880470627380417345089517018132402622959371899033800574183884336885374866065887925041248174143138161664895814418425693522960092118462775292872326499942546023780213137107603329481461402559148723719275801398585515742026036705872849315564171736774749888148524974069515279052771042627728291971222263775220325173619916084685646937447655044705249347491892226698562751167413982926624572367541958587241961225323514818325202135142288415879081891628765560238552422647658484365289310723459012297826749851149596386514420874088741306937204239447317056500376093666754561817294311765381330637902711665616189616957402276278360443471173601718805870409473775148761839726335333650699754251707009462025203056188020645097632575182904826735416473474040803299923804744537606078053005153121535307663505873658724958778167968976028353606861436687478010451202432211422242275392441612213483729032755631653295636503672671231342172567999854785559315988556628876072522027412762248287380605390111325455255206941982646013575373378097984644693587752841080342996452579536925687280864180942127271362067900178322122392854337639195473049820074626422066215742734323802127529438901823469463748744651413272626658350440383471612336442539313077671667989435230547036290990470714983549113443283758952466967454408213355238420619782743050816047278258527288063124261732916262694992684776819594065004297637802848032398425697203914273676828072387861555664541751940333060981021197196027343569502958570375913882535750605113867691948356732709798298859639988477054412359588463492543549879807916045228765620327925786975658240269517985581957697567903469158788685911030687475088620168770832089529121545693880663113103904195180255277506647861683377791968485084947169590644567110660941558307708839457855576274712909090137539315112911285284225960227498213802795048266308190757468390727527328590196034173377302825257286218279982904113848149794181318275988997710040422671757043947083233404596813341349823505155492104700545963930235151861636577357872630810800873388486007636149000344373739986348542605755402255401237724190259726696258193601784060291925090768751568351414313405096694519899657820114746658053786051619245943899164862836971677903798240044706715628128341312091049979329866886945155420253898334125014623607361826419480386273825289849155600787232984563175838385877450527538380581433984536085840907054575112911576763803655205133455639156652926486716205782472286014906703453427006539852920191222861679197308115573063413105953472104692814677628696406192440808471792610603797879214634357368223949865675973517353919330503305512157645627316939438152127694936663871690151091288601137652097206704228217791476688166511828446456380989684359654755939412337486932473228821648085007885658805277024687293425722969539436130771946260853140555002615658694972512675072370413004131854093986291546523311248399050230875211684917898967629580784106592894528940034549493411779179338274358432405345842666111327995173334215481781921782316422693619371286696476293296450805204272585788077737606494876439134465570120398904066186229143858052993090926805949463101486808152046811831068751058965268658187098964727826611922127335230598811707519934567399541356694118467745486473710138393410611569786148855821394553941319849799734772738862455910485893018676299775351937834509608181786825436852561005380875383336995781833109793970496330778094456654643161244970395499353919261687656926562703568031437258341421744651322328544204905958001013344642702454036090375217239363090169068310595206673329878262341549360155465721339240802016182314638621321355292772594442471708584855855187751372352708752377767255111561601027718032099111077061709530133988076350453697213614374666343630873108261188980548645355110914036571283609152822890801254953366588076450128160885744281711433394672610428123384288447084467062886707476076278634553028298505974198439788240627094128340883432865698697067886540509357418781572619307696447707005610901913347348281211218868694540737173435938546430131315297365306819850276738693495822074790054323599022849999002657908989514395820775246643078750915114112863818823118730153957547344022886986599724715266490758201470153939377354574088340231193629561280404040679301696595780770857857122682442848032208516471917931670307440304241770532010834364080513111100494245885507675517716133510012398812316279320071601044015426128869043478930113228453221370844765217047221409324687301218567827868039915255018738288219019804987612884079892912354733939149625633327702699553645027535932233721685229393991694064982924146624681078770485033275216457740771739007574951067291338554533212048660168322364996923793651346482448601104849254974891537841654571271936583773409401667764996437472807213318487349150715568091165827136285456870458095735803383322983025170290035227471254134737091359499823403114554470931406184433055428857367649902108514108644004935822576130711420961497424930423771275635588331320455981611115632849244399609881892105834028987136041498411627638312266074237904914276671356915953608279767069985095494958629656585740402706931519176760831608782392818353453830539373602807175997712055281753974981098326177759340955060005153639651961540755750731237200470208624202493095615019525497802042059461012328978925693808687421266759781323248760884017159130019618040853717281653876315909370975168373819872171780585096298165177998390480868463696505977004295029035341976829144348343720912495214859178932594088618706010629129542069201565809345684082525635862271103630517227618599147555027398742476028480702456051822967186108247041960854571817251977209715361426462714835563416811100586434530230485455588217553649755169077455761555777443955243379229693782918345978786554635143378889217579330573266602227138752623333793487141151236680658853641272175985266415518013483530371007896352863746557561329583668951754677857309211988280354115399456877282576748307181127311477981643740977943253686369617424681733478276145811926834397434438141911836885135880956588176207237143987683883100928304155843004908988489212626180765033683870890032319433740061941811292752051726805456331109191496179903141402729473670914487454424263990534740646117382716320977467421953839805872595551300412157842713361467680163532070243410233560342617094416989905843773743459829607069977682839526132075080741863625713119712076336819003919802073478875320494630177034737227888533494324984476207767678890576292837384044059941166402937833698430171155593865176598780452414925893564281859524252640204432103136772630871433902745917241956083629227686586183006198466381265072173566904324133713552021883814830918621688705275905896281830744864956359254551550006627914543974520457640488711854490780926635723777549246552390887741801803902594646818998360129129370948113309957654478956483973250710409689204698501251079315469189692289518916463316327215521862707599424453026779253939122674916585826421523320088120067485886722475831858017423925267290653605784089628505652640483231787056959630336646916547778637142570874545338857031363286891497595433724301757673692531378959335400554491494486900310673912847170589491930574784145084409249658216933993001307053961285685806639819331686260204155383858617638503102592827272259718876320853572429622166626760408092087017228482660183812577773558468778516043293655111023197765982462306993318977706777354730298689179580386382585011704338182649770040984312827948575154876374285663535942842729020830739900033601427720493961870279158635881941880795541648971446285864502768604665337657804383333884907090882241969977533355202050585080394746578734904380522103738948488152748974287689272063286623433156263889679588760861041193512927580109679041905955335227147657960067638829705117796933935894289997779292111787880422705771632852975329024487714568629388414656109888297520073830109196219843879829345267353582939150378171671948675560329356943426459197131567035286052693962361383752075325175517489063559652893073470798669084385477415810209489377635364729400678129834369450575402449463248640528894881633351797156608362786155661620365043755686891056139484516765639780424593536201260292944892414848192790956323220378754365610824220782454566016000300538152487732845758188627871014113420858895970217488703868663301767530776168488129915415435387196553461631179308396437344890522359841519862828828223072232410849058005172478437426514216352666150205492239733203695180549202342442155241282323547598365134181054354103866612207760488511504360792541612434886241066808593067714375231803340533054712227994569077628781866876705890846333409142814754060857480685341640984340278886358129740591856768140273744082287717297420109948587859485131677497914845190492172159985072058845893005766442671581807419086606667247162776714796479865782252212231897082108035833266107982300202911489318182310289746674706028148587448509319591599000874289843766982893458648975435948894855577736598137134156769696165126550793452094496734208589254298673348583861328063687235714918430308103556145715105220304616809484954394511578174901589545354411291425748999168495974566617014139243432522218159656866113593737685490892142109817169193979653159459822876017079979436627424622346914509113292518953139197663684899785103938237025208527986838659641444676854991920424883587276189658043289224088313563546512709522171244279038912114739468344246492277707929363872334672153584076758991075704325441006956738243562862459689017320755141882265762431098092629409878696030683231124301884892562226399228510376035595780853197315901492920029520626495394326582434179321862521926377868243857972188117981433042870620261260282694674309380493306013311689825537313464081361497980231848610750559426357765823567779606460185524810296329393184396027354967366760577817810270988682420205018762567992129329105434975543809622853611238589643008914037529010137432299250672278069942255037927162854608151340661713609402094047603530681145356866565552928140005183493897132935578813379067796099071536896730741827840412120156577764604645372377926734725039399253222862088138190700521297522312449426914554417036772552955389680967196569309207210951799214093913783846359323344754926501870966446509032253013809313373369557362228125611234491140039511740536758156659684069907029537626930659158800075950439579521197278894161275489095144502717696896890525109472066352062063273183675827819440798921728415488328187817939770952739063453484950116102705249753411394650714128959384974465792607809403326385053653013073955062353370144924846158856271217988480463272886737881489761858278193504564592305520963929840983318302142858300662235712149486250215108993703641051388747198499781561945629395794311629289686350842989889525212760573150185581653238886448268724819750232224972135729919302288660597339538028891730845066195753684208519326553977710041927606887161540168663608358755548387859429255579211100126314213805745291644750655911399872225098465655047954367024798219380889338959412389617013125586141132015250367873859324069767171912135847104246295712854743436490142884253693425783994530099540410396155365883241269803103959057100485402299819202702614105716856553063007036604978602126987886884475924992848551464621227433830016728297442903164653296895811932001629248706664815665685698538650387647901887662208161351674486500946272725906870549860789888607338484889554779256212032852832590881176016025325803459264548969262822277347506519063626609302420705842558672205564644811698157470911844860070461603305715782830905966524078147764591950509025339219180642796956595882347892125565254145265623900118474445623801027754802663187451906690728206615284165394920318996368081255745179255001223091787005872114133556188780412064859163785506389332182813030101576069239381780144167933660622558667475469987517046240005100898692607238918921543764695612500964102053156710930689440335699799440046934919737938480854528805674105588681605182238723271720452484049564083305543068928028041487272412396490248757670756460254966336852343597259999201224423469832037075818041208893398335385554592146524258380674002736203919089482139595317170259439953512094890424225691329579421855321177483092439903202543285188933197481965521606111055696815015574763955124971256942800701202414773585970187497842381481233968232929303798591316918075655685164119232598910429760964335337270284647300537147157049206865546155046884735316006780086291159149020297122803131781677410998408767909714845973120011467746169568568525864340207878613808825994164813765513658302845396673191764562215366402440586620110080994059849584505414769958139785525616138902132894674216619009726924372492684397395980268724269697104337076897266427867196719133988478614597574874184422044154285808294660958620171662435640651617814896353008698138109995277562252751614510069844240242206252214246329542042751921821510312246766579461920467846189089799352124249325249968966061503960828164731927768954003414080807208117113596336736865931862326790188700331987296541034113131070304242705681457867623022386251962330329335096801453960681447707685018669703496247691976815476980562487390093862524958220074876432973732009544619077917183824208940226079185796050733560150950081665789774901910396970428276214685471569452256990315403802311626600319278415927963402046499622675705865643327643910046177422524649411975136204908606405931000548991973660583794828893620113155491271678137988472245647589427804967130496022645687232935856486992443321443432642466278706893149517462472348588335283467069941336088591532015706503039486893710881325208375757126669975048185746535288776273332040019381198001490264090374015749216466279268855732807220360656584520135366231669223696977668603076679676432627203391203585047828759102314912030035921536960405863211965492270285633515808746606939059731884716900472319644209525308869365156640942708943182338816524984621418580441661511632346332862435997983279477676593332078280876224230345115881040040267895965312622416534929437560719284612979928323027680198319065397851768735023967354122282644913143720042026752827727781861827945583999920661116171880223541533169783900730267346784383455126938980933777703557189517246928886578541165353378618528049483057369238506829795524681947361110914310727327637880259250081598982871895896347684074084135859143211146915321907320712192137411876327623622881200131960319879581141145455124740333474176519543180061778359131870635866719541143004395930239071457114080222291523198019291484044305912255935201547129468572932564923324209720306154096897979978999177204065739604252821532882140103097380251399788479566230210443231907461436032517592625484441830939018545306939775516274670125238156563169551319296105642154884259648542052341399834831219191031119999612123576547877981619700769874216470686672319073200769182397818111617928158163269196579442285320301181220225671981932090285641519200164959876903446764254728210476349882485098390886171389782714487374661150200581303486514415594076297698239313268414586563977579541010686819496762920687442524742091562618464686870654479100649802693090632122199323193793487453431130237537145409088897493430218930529951327563696628642156151199679687025777461208512814697931089395233210582277556524608497466441092988879444010045551862199555316250466079608005681020494839353182896732055310387538525451075821395067753944624516538069397361793385234943127261249601333013095533603213883113877372257666474924658594894902715133745463143968600651391315643171419206736659392379173651641326411124375051309876027710300707315642646056861721459007711794871493236660514998271015342250188109615956071890349740135324251214935789380995044527348751426335316814126026766174314436621017842638801210164560850536935871412566176918059726321963109141405673042968024469485986947542212483547607094105043749620340118268793032101407372913974589431450953973881846222825002018819656323986205657633312477264972479207272589539293920785894143324340365879298546446665312276373396135724952722103605516586004668669274333324506754110551842256818148318520216374214927895625271204017619817765231384979410113656151906727159225558478935100980392412316450390402747403213064406429664529628233833633318459336562187821721696573097850988037397672050343041728961089968423961143891027583853707437978006666128840343757444662923662850384052535165713479464590381106346073769253598655228351649153065803022128775585869602549865485082943031080614317324566928725870685049232763304974452853541149243986934163466196085027063750292027715521490777684621347006501897562267061920115271335516278345508571203758798410471708948502396276674274240054449053517917806647971182844965500706586681071143571782295697570745546850712899589970124654193244544255349865431704894794177094667271384325151894231992079086941691772369553217771683342499925147381237270181565455043313627694280699303891331741859309156270901702602717255192919784544199339976333212298826836843847452522052962769380626201582761110648207172355059747147803695650272015084998079547471033593512991261329269468528097917031980813880339742553451574045484720538460060723030756155685512248642722509492115162758410478761045399321889898897573369661797404359004737931126403254859979911405041083600301816064826477848725369296783025592310787264144312948077516176401085243503840222078927944968429716426312574641066829462053797812826271655411640719942518213585674088823754186539614868093683607035021475436713552984633569283668643558224762593137918068247182564490603032762674517924714801322786113820211821047875905280131915056072114407413238265930895966192172940459007485380000728321106968210433587265979434767929457886526923951962727070256501418620338463936624321139314295644202634322738585410645172356225705382244972698484203680500015552987908402402636550518756853232724530155990139497468750225344192680069319028290354848649729404130101407023696300026242956863464237914886469289297927242343023974224127908723349559499732026374390070131669092489203981895081510317447553845140070896432196771867188999416480669906612404963043529254705258847398435560716085423596200924732185988158189177776950642081108230572324172704764141863348438656411660742804598460506552029678890066913985318051886313748154711473189099924083252502771169528754798534292543574259347662288525737676283783277639517726611577694187533117640188373357009535614558730234339233712951188252950020798864837952702843032704885997391955390742115386918252441611275812097412485342807151698370509953753767413292471215564082500033618670097042938255105666095083246581256546094526469306275440429129371027441981521664740724652836425294984339416133919986680661322332986022532248099707182680422123208977870624185038041843458132101369525159024459414228146006325471436062625608784598160777418373651267662427789089717868610231993817257193427157519070805432718780639738039354564321535810225484227886454676578637143784411780827655408412848175657790155816412014913910031303244974571439864270582768306029205209773071388544096230357221950939421915306758773142164202044321930741306337553696387282890262504574150210342270563041266024922734643243941906936056471847782817918895471685046437285755558728930859972568767288823167725246620202037695330446580458387990772155379460430350261384701400474291993217381666906747142979617893952198333002451709597085389917427806770312333543621264834993080177095361280242794790269651756820026702740155231041161650459980839957842850498827576553159012363900924571446159094790039676680747173878872274680260581127908742717360159998836696909883788308949048972021728167365862609186647663274988402182068611197954329269730618952348507628099692958908156292241934202595889504575889003282493940095340527531003802001591965119880870581413315860724150220392354563726055038963535588372422563679076492276525740815666645345696874273802592770314058361740179023420391697715532942310668017232128323605995212733688914147787823745212149128468435570018417751791416716467044776690141563537986534621956251967543039345217773209849376905686725510441499660059210460834183541468069926598825130304848476234087490570396905577078713075824436547061014074854905264037846844788853140702425008977099930891592081199542199341647852389396173814044759388450551469325587432301316312110651857600772587578717635356086510603921262607016249538571876058005136002245959507679624153300389795319371867788782444556072652944944576327057788755293678243844733694195995003527954697928754183708506276204569870201452871547223268759606418443062340516217557488347130227067109117023060078893686468532112779860508182462152016637212716008168725172247929874277430749271132397172335328644336227111567709764726706757450361222067409940184449243499110137330654119790007438369388265093219564995922025570795439621780684156950143005595801987060793955708095023278161862776660876318384061236788770095338556724589839973946935101598403635781757767449804107015168137153581491543861396291233100504227898150123411374774288341743812530843663946046454570903518385790981935689184265926334020461805652121224060345001988114106630149274158137770427241267556516650989527539087795826936765958052218393082521279396092865347915508670678227392618881125246900705549237654666691888549484379962842022867206290709945511942752947420326104279977925508473389721639689794491529292696804998927400443362181750867169860001655660349968264864336141024826560663554372885847449783565591012545013274354160054205168915970541463360363229210432927425648028475924376831539763249183561511778494131163563373937538847953608676792555370071993645726398295353226288963480017618159404516592513812621347479898986970974427601053087444297688163822799740008657292503962753059392395061513448400908064375205537201086042764070420743152050187016818922996656184697670080296947937768746903590642896525721869179620049867854531447372265042165162991831870348564602959901826020197497084461831470262241990838371529040308496260628283325556702268626627525933901257478713485137950040496183944257025629880360039743488750950265871366254447749660190590900623678292470667365146069918098029246564284840121546079026838342436035465326159007687788977360629870794202855914119293451327040247523042288357255740424900262131641775961700056012388238073783415353923123188933931769454908471892111436431229534432171954064614193798543030496938212042004035991784770892107095544913193305042920084682175970287166087331801835057917266820653538794700310583667123375474920386412905529425197792494087385046647065517354026787087765571518045430935383112286593568118324521184838965999917928726183323604785004169175569939900459929699295917527961550121300119293737752304981693862281895985448341127035938204130397394451835069303115641221358088332463353863568116462379582052172273335735082037652192171056194667970158259760564251336155211953256745337209154862429049891653461267680354579971603570661211807659472610338217289348732266683064796628010930884998517825704056894303907881611248433589118449495708846527475955076537290784220613518995363659471578548809709857142537017274858058817832799540827213390704443603628230756706753596636932663089948439581740084133904043610295017093135524753889339555008099013216245968772223480068203037527939844368263231620887013748592203226822447582006348332314308954851135400597230793384447359899194549626323785602940975742886301760754486131131714769532938192171452074253584616261121080006957213616930133737861197514327223337073498816225645687795154277628317281912030996733902423436942383451930113844045990378304631222822499510386166641757669587544268092639906102960470575192165874736795201090965008613842654523089785596824718508103937852159691398991216554886865440617167850204563390438222207244804755285662582910303489332896467978800436359827581256483501598256611647916322801747729411263364084614646738214903378205054936767675726720549887599109649066715490518396226610273229416635467140510064053032458229406505760013097674251031089354126717020412167906216758708026201840812537131591133049069929228907464476965699790852369105095409911293480163381720756380020594590850208300736857851747567694747778478759157657914138977534121487240778813492986016193717258257409926745041334697576683699710914882641606531324196017120027481806380187325332065778930048532281921219152410245109546185335336065066965609848502834780919642280533220637018703988769014491281697409952998801191050743494186624883151459469396792523871055736031105519134494912587735009554270830976683002798114483330199101722961586139891654636269456799866126691089800831737001515691163138415451557101925301208463384578313076941542056091027074252222956920380493389120548251700731846788808860105516694373040645452996906233731359697572943155386393966814549678309622494187227251248842159859351138661674962429585683990668126600313320253461084029337564054175659009869049124451870125937824414559740056413966518538365225927180152373151122971580594891404648402241334471402866114887919091725055731347119117367383686578440740889034287234659905710690789232512503614377685825700489259872502651588637965325756738980769848988770020829206370781279983684226302259306507467818443202752467376813239513821255294325623033198535890858638304037699082450067494274609221885102665359790887152610355784817231764126149344678073930763936485500888774497795514291071596697043554008189069638322137509256695005171213319598741501515978323160477185305883117905549382186009422992113539795724505792221158273623509507039184879531269051165500089833619995563722328188838201266061603155789734280250376316363278637958762929086606455538599480709744007529823085629140399481276989307113242702785507844367651997485893717612256802903176873551400675016691627611181370572719333649724290247088892096145647387189861422356064251486486783329738950985102820897539148743349407313875678270457773955411634769189034780670761771469482759567553809449804033947783312697940922775104433248642736563671528948700445153808323306395077490466353463122594272660253939345320948108518573216490745341048894086663758819966995444265236487199255201693132647439571024625245444464046875434333485357250694659392775174567062240779545113952541623049725423921443748048906644651345954537800222850363355601845591141657029500347832290746931676741874261753181642191473632474957667115558739823811407956032035611324980713144270431102537338214267195414870809462036854949339811038240245202816886455061452403196921938690163079420418228067396332286487235084235974037289777983660305053970432410174073888132639187796978359834390794382575504128007859434414439263373125196379363268836773702781796018929217129274657594544502834888034032607599485465360141174605901350867508617705435116584056644051584817105504257879366961702514087693147053294570765175127249039836913737531599202779493597916873791726791934539366903415357527800813775416808897167975747741935072445225287804567462490905974296418955575399328234112343033034987867109062298880121031186071951009533501434489524624254609253798933328590302455784621884671011140497122492546098372561396028626276400578579456355395670372925613258362196909646714833463204002258225912631682343551537370227506045071735347494081991206623869049988520512445639679544642116267699338604847289505077899556548017163878202018097121552724967705662082660187355156616009117885321293256628099567990188662646613221797589707657106342976025590092661768771942890393272301802875146682835582557045856477156982554969090681549236740515544374321497619429908613064972972780371991306040057623129781865914505433068296801811114238265024247777497582476355999115327499770004052908492667479961079860132089995660273309515298623767380821029200423678866542902075486179623467277263302520794946894406915962807876300149550326788524566487688389960796107137392940628154873968296495992909852367736792334980272017675286414972458523024165541665252911511813719585266595126894708515235165543025509583274642836406328826575977474954781804029392410649859084626411439332225354626989941100232619201916627156153201439994681290834898460061638063263247899330803565061626780927451000024118273754690070893407445022267614138865747577002876162154589253365560776921688363105024652967255764264911307516866771729033827695619538250023689574595711254451595298471179434463229074033632966388825333291890183830554350897568506408112660234395060997525112761439793337907114894234392325838697948186047168104639878104762423149544876789649173688742223042731489432020120105255865522035955699611236882453936501251195332608089080216424714982156477388239888418883772530197957904911204606369725238861305615014941312685311838330071120952984759020653653928029411541858679511221484064703707931023991157761973816546567503100954298971448575213671709868819894553730537940197855908846402355743756508479658314431501543100029616070285222370407024389591207173813012301893826476935086843129863636736447326800733304148078251791830305411085995171179494028899222081539828223938974320481423293477431682638431480070626331391185804685743157154798797757873419384014530042817610831904692504742021449022784890298889835023866344820603112945498091984081435504632790448812138569073124405837148500875719795521545036515475865450865325569855659326114326739290438201815838328031611695579253838292053072164448959155493012659636891913464260226819233871499080131572992412110165574550768353217352998337337617714068126084050702739158870028022665781142546014070226004723952066965302496459932921854749541654249788159541000209295864985372711226026758422795497913715723816269168273202771930953420836073614057303891070349410778770063934488851699208379554019194179053253266668639573972943773444973266940978915125946402333705389278216909620988471465727641820676772361105576764590092512175530147845281093694487618439648779712142190754259299158677993660928443465538605278976499367233229768842896450189571441696378374740126931184396347236868386544326277128698567047716598235976570633736826336987642092943485578822665092933737781824717970913615099838514927122123381991412503030802907891352678703737178568570035728368950878580716032398183757346734579247186796254206270717713040601489653171092991136936260572793296260697885496442152556980911887241182660622886965543364373961777444636790396034378239955230555717201853596023980473002234408803645944999348544689538013201859186279661122073683253407143800174965984618712138246455190179277133736629016240356966273334855381546804567306669693934824237426078592523643580488163678374885390529472807089007890480189865191700780201110015839209117799462025532077489381797741016245280341967140356848286297429528251824457904202566831641093601090633689340245326566817858367120945588208493487177224872723381584415649965183978821538091602018073478187568549500260373054737905518171191338479462573875816172178584182721734476810815939012115367477239025388186148793615894620210342431199165957653176401683238751913488794396016312181507920010285116252336041602953862924374553790659257311812293416158499514020309828060947213742421266366982441354674109514243640144522862336940450746305560364305161464006655197349371060902124965958669110226836933550973098560889670135752610126695768355267771561359830183853334215911506374579449571827385737294119958515961588248096790332516188479704280067478668170313189504496755368790824527468889403370129687703382405604383746387447938153538281676186532322818795006598071118501105232619717447401884174243767999648904278415285316371702642713218409997333921418847769559430175356692319017774995743713419926487130981363156704288145349532187806117834853182592173436365578542547902715631545112695671319483689634488631678571795188002284794935982300081402419115599569125911071838603458504885114495161267888036129326816516906290855666239146348152871293380378291900827375181424376310904814158558933920491573987238829535178730033184552425381653389875055922244012547393488136865759963277802177953428820855528390575868360492381764842956662886279258629746922362118359449973414196201259189724686638022938387135972613940368669104558461916166119609473992139662864800918927177875173780243519173873020580019997436774169381599472330014761942640584466828915026166273392962562288589170166325011523862985166212711365340548654795322118200816668065164291306034971224212584481145812856530124101493577936191559415075253170936307309737963951081348441422871152707545626357158366049173496787603689444280759979492049185847588351733053118764439179220068765660801752956434360831243780711814359586446163195768529136883557335400503632867458783688749634582636361867562235923616563741770752953269825652559210201743474605276291411112728896279789836185849806205662008188243809505019403268611541613759757844736752238981443275009242453625199507709096568665398151948427311530250722852115718877728970218223068439721039484279199755623015687710439322840182201491170134247630331500336565233747218513597437548895268781447820884705537832896071832182270040661920848736900721835570914676539415529799009638082096611488758694671792007617155376707799347525227127045707625575136704306421013184597135526025485684489162537678470054821972001347381030532551036739490929061740581067620448870776870775907521634328543901463474759990589536067031610113282086333517597553675640497899031572882910765497719107733362812841879460316779737853936433955960042236734515234222601009240827374289689590557524048015206647198093762431752239952623180413033648858845318900934490642444591991331614273446023361307211744761647950038939528668561791541104788425471423370831916061034751766795269301787381238011943828142025848217040906441034595934321681360230001767745252545142868569954527290508202130153538775245213847810488122042316690776219057000652246639167019651681647715310802677835401662546819802990973185461181645467885427956376861665102921753047241148612935323508694700024206210986994804566556298226369238588240076024018481891256328015655577839462493973198416776218902480523598833387294755741725632178670406832868839380341936471181862991388675428498560175195134480644407774155493846068991386469302644622754633090970872911428702072253137203732048421358941060196045178421687674447763452576293794712813377281627902590752555290630892263409812499684210356053393238106484856441577655130625515308101908535887988972810022034912977709937060692283131201356058398117654605799984988493714898723905484366809815170462858374164084202872385180398016782108878533439670691838054936694012572803006549761755883201053139217785894031132407442717805407177103468239151538550566343846103203737935059401133458622387287581329791921576312764903385341158273212741804452456262137088743568151668547053107380553127822404202635976590054924222281634152770275929177881498065636488686500082999888261562452696507796111838334697241050443350247912504590315515858970779587514166950305655247595490425744576161959856672799011478621156250767721365010339822763038023710143368642783378142927865362233117411952553496066537583619628145477520673675913822922102504168972766338763467368163375750756555823980583692278691320130397917611475790522115215139852718783230526729866454978210807360226538710899077536217847117771182895815284269666973519749192750759900242404328908047721303368991055495451124842973990755126008857226971828596826689824216392489862752347508391090444876736295341166629399127475724397673717866945802242137370576452218331588019642670800049286563330052945533803905191447835206742365904592758648830903638228342904789247076912227736130762912652780039057696502971678532675068805523175915094166017178514066307397293950993006517815730129861083508449064571977026662136799612437807550240842498496590988656360864223966091782257447929659784215358198168648512554277759468963681137223348210748938880251984996244156150111396653767306228361320383228944084769273629686284876344614251721134716543177467996619513872522676288219377620532499063073081574002765485754452611044621217159597435469203267659740326641292213030514312473617138151955282089406586688694292546999045806395643232293477444652619463339399209060332474941351811756760254440930700905289332340193621342358257557735027010597041812453758071007614361343404467369199599225598013579816881739978880260482592201176911128051166373899859443452292448145894359218223993151432739150034993146658305595827168193616482721582575121697080812398642797407836135429484415262098341117033746357827988197092296294118847782713812582154371106087758207543613592414775080794507693826256174925825400717451845460836521852199049729195259134459254834544028329485065730791875104982491718303251188567970926913562954608138650838188145652535449589764751117345688858019073427081789929307958250716692079378904443515611568442890125510678801922936189835931166641590308388062792378719960890593926570454133510279240086819322705571228488112349596127823078991087460788578240194399273679339519039870057346553985003781006864880499253450850199374707126204525628318399439797998262365048154115090080710443901189091270347581254810869560250435990330290707617182028623434964050277219168638388499888595778246059675918692247232677341113027400815797558134101359180095365135306204975769691371920335324341182794050638851930615842133328450858085415270395406928776715592287264577490551477045636940704411605883806939061245686041044498580951683757847656150196238748597019984482517663532652629198305832337229083245361412320224609977715115926876712566121168701281549786758176093521718835528969672145767971045676141189074790332756593317277620176644928019469695220423606127976297346467982349673460204468027422743957780752308551920592819709763470248511689263633749262011871185579627095412483223859350728780707527286293840253696292943546097391995183659332753893550299561318860791592408972214208562135065127564870751325753885497890869501637947263352253736455159701535139897675427915821466600254086913006865769306353022305350583464675103050616231439785758193673251333441621829079167308744848447390673163317196226192035689447907389626809212145893900480183989883576331812484100493028714536246726937024634924468245443313104129273922552648676105013815055230906880531245271654858317506019864623653578904230581483238901088232923305151957514040498925443598158161677171463200904277825784843667342802333355444070604705129481914852825543881510450857484241655158656143948918881869099130291239327660301788645970367325437464322193841252304886391701538246192862022033397402267499012950211889368907861825290159799957453154668953419227068226967441022227090072630876716019787372039604225467723358665054889832511034685687040178768121818086488182803756771944707354330426656151929899382098898929731052277888211842488248892564035918305896398345904572562609854725686134174516420109242293687593739697850641553487397954650866587039828400559137836669606525537156817832156893294983009120644696730827070356188742431740431015234170794813151035083076506189428111805565636743988886910028076893801423601791091516138964730306649669443686376392573909517214306967817211407756017508368634732862819160320055846936025302891899062807445387646016707753082931145646026605279966504940790936550219137104697522401767872832839413978369460242169546516901736673372332523297396488830443201257546825059514903515204030687699240844351609846444840126547459604167077970286076232235985405556952090931413727120256336518569237165747433128614638290209095408819891484127851559854911289962402514104483856507096526844864123022728507120982619353180780716827165609203455992733957795190092252895571382764663576485435530529323209741649956219174645900093686068051386962383619358069426642701840518568550796896807689992484497045286069409302361829101363621658986772891323379254405098109025943403399261014194760583193896203128582661339620181830648350137138656579922852830924572156099526447053761281810680989952856682513403778326675561170704482129622630779500233158018802232861333394825312915693428891616259632105969391876376918199313527009939861903190019300414256024647302335601615923889037685733642209192333169060499286263536046021117199494768245090942780954566873251607224160920562346083006603124180706160892894332193337809572517442188430862688261802672731806053686350339672804729948744607970846562407590232298086650875523229108285849699814884211905179312206224820901847466659460806202233535236649052077135725555392699677831674031507343057068332102329175765041954128298328789588712136599787281752000954346519319695622036544437373026806705185739449070431196268732866373957058763521519399448746080911463891634177259782846514616752056366429788862885410491873855953445374450547519844139995865528060711634271620339441136629878415171905734260099727315200306357477077626689902225681084305905364728600216562838603904869234699085667042189867831286525382028523381566558952832127873476718205304504636029461490312303565772566880009641790599285979791157201604954663186565599374510068544369857700777190258490187035842452682650408860040223987481951139931513204139910136581014927503599033176132422023608675840478836833322309249081118268435119961284530066302995044643965221189408039062285940674043997094862847581856240549439208156402300336499024671887642098971943129229101171634026406132742078811220178892297193602615478324848681434340862519311877553343745275736623222162933831585453803877910406390423301390004348412279737522770461159081780278297301532326720548052832156556855077776605522638878670436750116047696432684310336184773086811606249365341408086667635345789644787767010930045174650318464985003910484312650273809485772088106927508074049056679921812363476100138243559848272124181588274154919074480757455321724871255656203479490553343617103948678507152149777934468271561436379507711160390566185604518705375845913825874077365974245685392657528717568115483683504581879775295030953629073828812427225897622696094735533722834090237561137826026052134329025111913585455497730687621047183226798394907256102003035860098578988433850177082413374621447418167531557113380229430097650517938063079483281878718517059292466768429526231169040007506321630728582709510757796888047301205932750098536606190299835080904588888215611272135086922648257446155396463038352507515564524416187415671262915151042216292926423196952337915353994256716489797173949401969282775864240370441216101163794646989253649014971515038911829420745445965481229594108357023795402704579780787459935896452999185999141488577740042024950383506756752547845737510949005147276259485395159881752306279148257254805826854907650365925649509715828868802764541051225893165778977776186275111177339637570799302325346067148428761014153715661452802883323906775919155125298714681862318062283334612534379934944312900874790969623692017424899950814149895674316855258138532456682720898292007381756138129435126379507348589526316109127594546084015598739714579512958449015799583953461015761590347524538662895433811686493117224705776091145362095524689779573250781922837130800709741459778178794957740913540874895704466918583467083916074532710658362183630493313763204732788945295913725620887849559378945154484760280659053013324299541646150833117604968199822061842121175414885923767930299362066459266183125632111591129791068405995163448132502702952165799026720825023595233101665678027229284741961035056077806616140610976240592180016601686248971123102480700932085770296940088538390190965516013741622962610333980101692064210435957527953149837039497433300203247495551176869267823880460973968681101273646055383959763466900690964122942718011469466592310735264272471826607984757544059940213986466729442880212865321044870938593790381025622944955571438376000175901379775454832120613330890997952306533259964383178206994713144195703298102065324317861551100853058929058076780947614804311991251628853279219914806712778552705061400709570232627477341515273549388514330804506119547614250573746766718248920412746177950501028654309981746772555009742208420869923216755155037601840950137727425595464138563839795405462173650253403702856066964102789557407069791177029555498683520351628745953137256331682721223809975961246736019730021630840780955550449845762825916618555422793069089071523018498708494205039946321776505905335134540947889361880546224568807950661508432331996466394286197344436433108371620563396278216513961493138819115956583262318584582188063208134969701159029025285566227229285925139383912868163635507587182972165918620361511837206621914186324898455947214382563309452559262845610964546787409646317138998429085306244366065862088510971138541632801395672685048399040477287736270256006222060752748575202031883816870569635576722900068777477708858840758733469314925315173993371838275281473443582356872252982623428137997719365504071001210769869697881130752084162922877696562652847394055389150965547407003421550771842369938779259253907641242830790354218434090677522936164577530764818696551132634811402496658713583110606412353284553048101374758755952179256106428915478260645005122483826715155703976092723886476011111943201127133489006533437429688536212616203888443308169079216554829211369959580802616729821881200815902602377837299140763047954455312493802477741008030743663350615541520386613655984116430037531855981236799587852124829277066672487052927609264411610899564861157894135726482815698037398477529385482291372005778417115956798052931170074705463860476670256874308032980647033689590869537551814654993218563187133762829503675624430583687548861269878728176045709443309459338367973663467899011397720091883904049405731953524062513338383183374218132399997675665532911030049733735872337620957542110220959300040425293950856610613918905384235309099149347023768089357751395702284578651022609059789980497654059125487408420031176161969888059314276231967757204618734422361409187119042814430807260174249553070569728649935265400967322240021546274720884574789454902938611794303584424485096612458330086480913043974376428892253127333726148495861768985833343752178670796485453470515170041587518922527204565579318391036909377658236275671919923944846612039152704989655938850428401335390290644692723170884984387684349471612737835438923663735020417018120893891647199360162337178118148115067480663662787998993046486821197048411087141156719197976944494078406361448777163233138147872353456238661933186093688197500173647324976804044348982499744375899810523746970518509309102172114997528973091822493950651769844219343635481191255186216081781870347811288456452216432969158811477388135877512188197471861077544067480202949447144033206838270043198021042556868747038372492205775179406306695638998066933050465943715407953775490710471217859321136743206089849774748755360085057958841712878676790208985888773615819901969956302549222024733008626310811591413773956988579714601510112743592717855639192541874455493178557558271217019134784805904427887626978126691147461651440091200285897260494325320847887543031614180203847882645259981610819842529767288295511135866422902048167706971224891153170336381253409988174730601316490344727168709343596153687103978792950389755284000740076805277098226473927165625744200472180651100853156221168672608984926291063289605012521299070626358195308231916639304807004020376249260860874259098537407132452931764022513138322425703481604283399157384644732211045325043572336987976669823317283953739646697789774629878096757171975847643733933585990469440215845776630832740117729036207876839046043603630427415127173114822089488010489825021584426068595490489131289223323871454016928397036245247232723655015162921735629048474575688511570728128689806045910338091863864328589502952334045548192471399400535710902697886710422698104266211747715624857975806606755203760776213203747739902319614143569560132093812667857491487583222970542555121076257962140394223621715988018679181959474067861930111855142107136758902186421790891334676935628373953740847494186617251944130418961727943168251677666654665459276562835174101705827306304766260553943239797907123605171130907596238501652671011944822515364697207230055008755457405795179710379065247018314264441300938440658048290497774424055382186452333900481508645560704759615381993048347271449264744602506030718058555041916043521910716422059435521889614278579022139690550630135319740062451610491037345430645431785035776482429617059427119210595763344028693014711253546900018747464899356884051794994483408073942353847895560489188164763236622894559687027175637774688994766035571695116656246522246581398192337232336358142121011329191043513132693285604461735614279934673744074752979638296954441844517191200973516108120108976123563012259378210834749562376700613001331337458192963846494904478900747358529204560845362590406094212573249543188999230440146530054824484462535155802304115867341651698157572639595882686248094746319071810681620962105196248655591247258623519878699733416753916942522029420250292862113196940968456050064832707209608653720541899814785992244981809165847689592199374562550427151053110433433740729715406209486519559187087730265431549843851593911968374397040595175456166288662575115418050922554691216028309382484031810025992280210240695691976864603554985916986453569429616758981895549569127304612235475486410728499707592048697191841493847620662027724709884935213194401979274989659994160661657334043515405484970554861436078168935832794338137744536032024094594700304949737934037678841038784763534218476760407078675905184600888012134437988650319805130653604827795357236385623027861993461128919732629766770977793905705849452158263817573882322018317826323296393884887582655972500057286725985587599129245450485761422679584677751987116620978706659209046541549740633954102203865059924927966447124690229907362259032445594748594538768964643398288192250422562687248365238423821311273750993557734841718375261915959763656973464651822583395036807128698936902411078016636510449433940823329737009863382488501219423500661964842918971003850592067685348779343989021617809966094814274103303090873375264954128543612356342208824711210147436758768020042712612736632505719454397184885243142124203433922599546420752019411557277218005870300394596977455947605340441969015422410921845164907062320097101084644776194858030711013892475751565095004320053301565712387667954504900478789090830058136975143510570019057679996067329886230910539052519623940445968258709874321782411166961160497125804742037845322487518130776373068811831513820217595635152744728790912672270588746748302182522845343898117652875776022787068354558652668644852965255507389482878584197581247476346459616627062076235175096754978207962187357824204363513481987099554830443218651337136206471912606496225599943217069051062425862347074573291685697858387237661157390765798735171240278486982365591721949368063660180846290346869678860171678078417668625681550062422120205386477608031922063216814434688504157185277963155727264919555815305758827326267505650500002858558082203947101284606890603795607973360068215450190023183074226208632949472400591973972371828746487948529056726720395623496954298258661666213348762572800610529618578366778221497518591219462243721717205867034029394117291334163891360114254063759428617604873485365339369703807287496288006087368076422877391902371871796461568380573048754639133046572485056691575475349240708013054442353165822414196161377622622767822482847461711026971804590663766875309520956425905733700082123410681994752011466362046460839023262729877104545130712071968226811541610040825672212237360582249463730759971621240935529281334159205819352096720899924702791767602586199905974905628933818442849943871847652903229258630613808227318722531921304320500544054956410692073567947354221769196109176658439156709711707446708780673003992418947998997564646888614277621606876080092408939264891792439917369605093133710211416820984244456401919413426747671192454447561416470694367566601433377608701578347991307013202428525088989615561367615882438507287713507642322636362678248818003491594444149970762019849225455916267213185723973630138176234452579280584889339389668892587330542486693073654302523019313026311070953469378191411867043797887141730344590425661826881568483491546127334039497467247484274137668728980869437243421864511634162940931660126845098751719004825059400884326134697474594351669660038544425475954934296420446244555821414954168414240358405963272992905745999281259828811057067391653372521788892508582439295049221945720016144370570376679462867637962371977646369762534361930222113304241293318697495146965005862052700221745270344916595106041304587183602727216372829812476500119539559263025370682326603014013826473335835823148086775485746025777148494615227138868648761634697795678684639516294376708769542527461791678470695068181996726330207925163778116462697902754992485486766025065521195580654931672632625184999232786369852154845423083256333778739819834494028000459250890454127230339912514302816735182190140201980723439590797270816491224467348315392838389279332291952982918739119136823380398682880294160799369413695079279906613239581997906337813754971567600198849687297226509884554799862364169213130149707868228988511651879095503698750442125120099469741221073101141362587813012215581230124038008644293628748020207180748717948484232868792889441686862419608617280946510411440352896986262712409194442362268371850246919288358205680736966644890331047444475332018583053716009053413798444537876474203072077591706812475322887884756570676679286585584608783553878425201036785867142278453362767701690979579631243306025518188333547144779976387708874174528393315340403632907754938503655298662518744887170669419577041974896378033245727045356591845181134468543917057689521672691971440766948770887740926142937786753461314963274009893899266521454494294025436470774111763001731067484981162449883380599451405039536966876079134739668727694399956707814547792693976595942349646240207349673068461738017029979497056152012511002054962071013522353761872071459761517340086551563193014082033812976153314264203521390278709808720873908656693429602591205051933112609590429608424403836075131235589687152785818880715519647350697540980528845795249201224222528994510415193269063961709932101096616398108686427598830681006802853482897239673255571674889016164340825189807725533712496450497641538555690351310555355521273912031553051424951010468522947452097817824781851738826499947568742592045752362202091962692567694931808762460291185946765539105463090059612951505718862672037764646921648494773865884731395142182915787228808443788428256841425198536899419946476148324332288048880337990413836928219339230502009224964753962175000662364048869442428466638422838617795371166167839527661319050693660492655560817031308893448540185934292056753061413603135700130258909440511909486024853804239345662992868121679675265826697669492047487604227519796087268696400723567682303366915797434607613706518272037961051621898396539275780647582125333890263277929020889536705011982216454357911948693712306149916128880554442751496701360664078929906388232005651196945670632858970390102717623670713055771856798139185316027082032055792684710192306309610667842879349802308654636271769349310910102832638431640339311760377398970913135783891571561800299015841152799573809717923828316136087088598650097722946835240928156882486044315221957869511051360995543329537913162631677575413307331311867077771616618188664299051467297950845261194718245530404658835012190082262870261241697503796502168604557589935615173849419135540888983463067213318888687959279105373283127848119864555617112556294406098417576276548071408646118013016799163064112079975612937464650935715627167301483069927780917167635935541868722447239615582333553672683130502380851013405694905729869057915140836327275799741963377515452539042926007664141962378771226336402914516248579738455580703159617001491671060595522179222513120121593936775022783396245285382388655854678118953900547040044869289513615846694414745139919175740788658414470044125661746715546052022726812416084475370497760532397122575878300110475781447997861020048731071551802799944386843738685971598897738957476050341710540939578389584708343265739334774025975151881881715351055182172482203228795937583737977494305214804870075970426935643375681935640027254703874742396951211503487884035188358635712034422104954172483954421690300116156498730367790550963004843030956129540732714624302923892310934907964220581465081626387657002024569255065143160169913335496182091038403487240942134428685496281865521497904337337679157516772307567852149073102633371225380435190643330397246361186012254879499252364773745949217418622506197608911349887085878921157277370441222958740566234416850468236037210875733797168047586742994727536683718733355255371562020167043935139098346740628449525695148585732634223077997552077469938246480424673421076100535301369220679909660069119676643558733935053710987853308133735964260696689139070853149977691932029987485627364977194299951447729014088971244350799621824140171752050635024545520843865406220527781208992625163571699411663618119036265785142396525127638868570699478367366374470010252301093622912749427955498425675804110623790987662385262822963165674088117714975285423582426474670656556988004424281245658554537115546696602870667752913926132023018706872952359880554984214441905780334050494135362228872007286716929281456803718534654064088180512837476162626781683145447612111197705034836939864544929256203140654672645483776285294366101352108986456274427211015642855351422142645445849695778014331742122378927186134360315671313846279810172148677958766623802490762143904929756565318146770192014155219760884998638311102270955586492572458312228896058341486591193744180718193873247499345037377251618496580426502744320986715027865476397962398151967927922548093273257300874394364814079001102168095812049429050792051848512426338820133223286911172126687129094962524596517151099196633406695130747898221615574469983350214015278184108233166035801902265582275996631410905718963861630594542059366583981473217398819068606606294295612700247941914116307095975409431108692523476138312279577582749927123272026943642687566037314534513529730877140322238735820883964519023632540345747604775518759699743623089850343287524192998250809648940458873235157066731776985093879336628978581339135943110276332977614371931309510108271784931257068488372079281556446856916117462983479144664991907933283681786225554332163971823960345760045134152418698055220979130313833652955753928207481702728120984723421061390395252999817095714554074896018639675431931074350153122735603257215070922769730112361944508249550636144345776317939838289357300628015883053619809035671338691778950114458714234788807817292782647455982084672422275114100500646930425635378643828301264713094857336837539397719187497100624339581020933875307744965664374158630161013544866261065349189367964662338475158839425515743688630976951466511132815876435241563689863208771841143664180324046607910100386999252900139405904507160241896737373566260258634625547273650662717114224846073092588689410890053680810209932990792280903921929077912842909764573635205765510238799834548439112857493426313818120230216242198908554517225949173954360342774369077258791745899023835019501158223694431190809966508754837982637963068980551513849331184027977244499030808447368817325937648463537587487685690407178590152181754288740086997441011422637401671969867607868385444446880795705859281971430740387918645885092338820329985844455476832024914486770095725212342805578726186479930502747184458182214167683069383903342160674599610119019193773747042151390871862357526165220416565907233530327623702782407238323241846939881685950863219215029173496030683904446719651446038258303629507717509077017222700320371451571029224727224915543646685885989614351934801438153147113004243035022284179114610702043101223657157449131866025118263974676714119764309217682899747036708616015900641108982063478311783954983919457015142044563074490894046573425369016441956018576290491314559852130185511284206519584707022291491346471361307178519392803267073536959693657221183596987073275291971608352139355820231700358157651205002276999852588988446339078870080712489515959429377472359452089181357191768746817436244814346867270829675096839261906995256914238600204626870871385979275861858552616973121840061951140687052868624443162863511825126167731242437679795268691072640904501055260663705499402831357251016257521532327332845181990120971996549234192789161340639639682312978836392605608120341137564783233410107597846678557925112473454473529562366552277121812932476954000807158260930260475981511099328028995506943969327552364446420586436669219599940086706355418760993444530392806651513928400015636870921776323751118988944125550460877679433357978871211673959104027700639317636132694118480357980918351727000279731667496468583686388278261739336384641326252079530595114190753026119614012957716194445401265361672159492015292783474039015298013929164711487736670627065298847231995974782579034790680339713112873870792476677924117410810680009645061086263296706198979278225110419916445535975192005764835252619925080939244175902234323960606269843401009542533323237561923116556490353572671747161181388151504635164014015295670383062316410585572323373432588006853368782978281084419229946688213248668448534737970748260129508803246396892603441832108831377504454259213385303880339400716762541230493395860860380548391622598326281710815395329526270910536864969603040865712752143129381266581925642509967705730029454124914876668046474656969470119216927408867627767736945818652456035155611369725393440593777637132921116394557944764389812101040074640561429709981147810828074013343353245740316469123497939533752635882123194092040956453713249000557190345539626018794469912999067131603052040129653038614563667674986566074233850057527925906315225045100333961515437875518499933801127562816719788410480576931953013501057030310200178736484925898143997079160500710378600822740197466235664013774957300736614068072559260033616500893832379017273359107955556810881050194262281362904700300868306068364258884522192850616261810166562110136857734421481540327774942573049071831028918190749058119896233129587937942532109532022353833831002000391292499213963275987031663231848581982546945651084858422319576034513252134643726066354277690473859015004697872944866792606731093170561321754025275076656946211905439369575667019820748063044983155640174336766300409345145030094026181076549970827156140655894871857794434896011491614629623643999920682596648562819984125028106453758671237103680148178871036600248239789292880748008253456011515926750008844671840272648899735579364208850493972434576940985163047125996057585667635625475953176620581893204815746605314795542082643526011414960676583091653992345315504383427706509716487911761119027332907771984793294808970643080891052212273564562079642244467831409168029878554159028100665750327030045712384453839204518734466306075837987417993294791094371090503316329486268194248982607909494539284712260457600727544529005881976113992542565172533410700441771407613613687054700995494966924506279828446851343791872600784876751514970442989671311073443916093820789778943903230099294477985032209664506014525156866785635819858600219704495466717902802640069216924989233795108121655134681772626667030043873426369791846961933418610909002853326483728682159281120699598607742329103945152932483336987905159463900128500807741717053020028706534380482649422955354686887827997435992336222489123635177893956153693940740798383254872928916038332934743439619706282849864884096007963783579156032101121240719147637198466088567418090514747934697050515917998438051488323972932450294679747869876194759278625907611236182008593462320283762755744928485075165551240628510725167016967738394199629695662288561268924688630337592018546282382964907369733422859861276239152215672162678111731543223638235453466958051513871852732828621477463780341122962687382485657825841180100108124942233170277407947802723168213843209093417746817433624964283849405692933959606644477685758493238435190184809332715339844307849012633880549276831970555196475737800559644791724987529854278224214719820133452798653262685550225198921907871733057547288041019665945238836100035492707219124957764265950131000201752667975794656381607493658790494592939855005248974072432693716387622631876980781207570951347029174423023969507620580891792527096462053464321337196321402971642653605911315127860780418971622557840456822215071365495524510298261253600322505202225803204234653256826597047424069708746320960837197809834668896338568713682565079866629040757687455471314602066899407595021099520984109941108045039491811403508668789814322448945231925435859599023131006701047429828749085179111481428661159088237172236177676470368623277531496392973787701081366346249191682264260120871509078520213934690453732396849229936602584199465163854986723514034953556029901190322823457281723757435490334223382315140842257184540577166561512189058171761940342157374757049872025820481687939742471467592609465185205452209218437427408349982452851023413189729338725281174597327782272535758106242087635586102599823181113770985752680224561441692099750061816851029585479806290365569898172954815176793923311083765123980974215097927734078514187545721743109390043993141356812498730331389169936403103346749542373479950600579586200056262173174950279791540772542357173126082779654239714365883078940368312160098905480398548253037240009870684758411392824345795727443467754063053708738049746332545860824252310226858028105025433898124075503245328798151947263490880256298546058896471095254053651561423756060906228770449329437179103315910117067133038958866383669905106166245165216874430785432511879672720229455152770614171981596810138560314398778201285822036591581795749849883184923342481938192344223284509980220866375264324495206651956271871785033843057339340081827670037114684364464419101642671292899739381802363082038113138133937444687030591131625348147148079971546052516719216012081981604272194723682963592740096581435866651080657303559533092711601776065032403792840007728599050411306325793005228222812678137668396511922038711374281196533423814772540905804215495915186067674681367680933854319363955093438284117204217791174393078063167974307839828909913269354140626145819387931976271437283179565169513882119450767971555520542250936354288187402271175975385147224509275697154290714129189279792803201829002413968915712626121245380864582914946361123574769532675476811395233340710679297846506278693719349680384079466188829958754040821855521545526052722505281695490022564743831842030477320862746781503534869484201007509258634191111995772145424154694051309995628219728997772304085413723755849037772560770123136355287912413697865180674298445637529442120318486788863099561247892411537534799666402787307998583690926322134545723132631998700124121573314869702687387151975481426317072253700660608960804616299598855034464325869078334853886467132089505623614370838579354998750194437539975997434572293111469898933453935544407704389125029363122413678203064265466837358654031552456726570598265695287511317189834138783475469667153579536688795654341008218649003792158249816451307132477079392977102044311349660198593333130539707299610267927608680887411881613983880751235810955976008026321926531322260730448776661953126539978901911508948977867241905962966119825487895848855862854337339769203895504415259814361470286972946635571626765295875892725674339995948270816795716413947083475312312801562178503791158520730314718254184746240756461966912343394836827227040763732072621981571820768077018432359311800903667130849335081157610804329392787469438273708984593000485300317245034193545469064502307263674881558670819368067804199468521447138454312187432974124353942452207732723236589855196137410317805438320807980046809909253839740458994531012551097487393868601043322260035247920324459646169800735370269959105285129711071716365944207901084746773538368843647927439921246742160687769798525909517543142577807806744202107340389426454634999368251425160526400729235327773727325409938808158715043366363979240864615503913163569208560724811297605410158776597751618557775787785719373139312625168856595874455887058548983684341068758126982837325564472698468427964346167348754299319853983893757036506415957881216430226229068049230846572197952280081558279327633414359530339386975435752321559341241713129150618482903168619004313550093166553121724337586059234677482316171410481203110940451299815786034179971096086774128807134769894378465254774485451193356096886527203424222328428204500241340660904368342220802505204778684968376639726765554536460629328667025056948334180948398463556688833941096078879944987264313829447559759423206504894897175319087886716044291784887563734760215862537654011164025611992088937807199324480800892444014547144735556628941468960131433929115104591318975751670906450869783193290505870811190831976580986252418699541358058343063964328865620384836215551069560456075055506806213859273978341232427941693498649527324335152272897724553042533509892826181280701884007591107523157431112158975800071846857378645970721082427722064878432103416452828303445158515990588497318155120651210148266915441642483464892075277526957777278393790718169978601039054056876462114741358754608267061015146688717604912054638994415323920323275405284643328671768101952927639068208473614834491197525953999670186826058510494426565558634639539847933946004534395526839237530885438706431470893971544565744074233758177311330795365417771716609533964274697601691319545808723999327344613619585930276556728666439706132775970806314384901597715816060324896196698392664827455360445109444204533620048320511535361756968122322005156107203964419373323761035425287299587191636706195772862892487062396596337381157375699484942438310372258959680025933423035897803562890754484526334045231388263439877555999538424911085580243200192178376023021197397602209080162007968280175864280175561462990038048271437926478070610494515703546620873569590050121195779671742533622056733328176178260885464375249485032864689987188179398832839745048383655407648045741913350197852193548282641805154720705132722423541290201254364970481245701367765612521773682901197272879393191080615797451731227807871679380902419407404174614750152456687560997078706779751374681502227389199908985970843732727126503632493049412869670830394181777911157878485351135456170954582348388890552651915493159898302671927322761156307545335453347855633560017117023402689938682385146459402160459179782128696616215954949441023945893021055491109953113975632209990177474046612353713358635583249612239353106201150783030964997320397936269461972387359795421469798821161921001517247705732343356239099490379571991917972661151242022047792792010672456541707190311565691613044549541257788726681658549841806760557913425521650922442079009753480379446358206733015536531507019105153132508657000086814082566465057111712292034336852164569125200318610448355789777899216806135994880313483554585640189967588797373528644580824741998669943999187083602276712692942536209386594239665260099278818552242417967951241352289108526195183698654879125110887433833505824149302348530373662917557663828376655476330943923218391204926409368494593661996029618924795411280187475601585165351229957736867358522984763383055714537698403347522210720375959261107357153626214795415671989903009445652928376386419615642647037854497205900344603378582299622142869065986175965287248243975829211154901398377400637225466568076591679741257149267080096685235972158941908363727783267678562440098839582661675957202041625533229396019869456084018099660704461001455530951098487433515715240276535327885261793644692192857757657177288616086283416655468791962458645045846080015824105235913807075401853362660160257012502592800601661830878392377332314708848417602151201194609331328505446929678807028423103468340682724802986272482498327316693651386848399856596163007242272943294167471175588831610176154270089916713063514739419437051980779370479633126272161347864407652599894173009072396730331180692831879491434634441999299070549454339388817232764244339432360462860042258567862306852366409701973788913588061885901720727160718830957975952770040536411063939338027826910453903218950090502796733512009941252379041639022365855364533398112555759068187358151650384536298847765618984961604356527995464019310176023274700402583949081278553614200403177764630690040167496871260338066806298436673254503609935447004826609608737395440387394577948638585378498557262090243843592174389189669186992742888825944928331145351268273535347507100578231781864538780034543489409980704092210883455465979674185756753221005733340374009871500298700988348973592277384076070312203895187714730937456005274816671536364622036049417748521453216779520799576424526017738822777499708775859248169798081941262404663268751662562847480971014457088675232414604329360088471912976081718076216899799577276592941605639498732903259524111956080254664277710459481449259397420725628716153019297067359312310972823504291803638226030403511159670710861993088735163088314425363733916826278039119574850433901909940409272222840910498848262862317652472737951603295458453193124725448351476089428116406887135066939002830356344453426784806487208520695644558127823435243326491644865559318535542998515910375822999578154444593445545977289034204298865590980867001219874492186087705625164977517613718384805433545578729546931675155897540395779020756976511396862362497310560191222568613942741415686855085559826535339734718778213020358622896515585505859728915438691852809446680137996494506878100567488934037476375361483628456009308136935278295032987063739781451167288948264688846143043044771514706582737489240067050080211481396162249693698537003376519878608929481461546334509396829988203226474977372048296778595100382892140041879906392728705941646354625162544593680964652847118583393819922652949225866631249318418717406497693020802097664823599158654806642089079509993533194390775989517744942992615807702226078428588355152135381234254580273377214304395634821876032358348933912082200694372919489715698658558645610777525801354735507430546357504153707090064000431502217836010518706389020609575368891100050685186512869692507268338491894385129360333504571747071521392471109219666373348459321733638851626632705192403970208011639062449715057684888000540185575935878908201325563899790532399703362932952243737313344716827274074309521390189180323343508858653749325382977498453316110300416278087937143720793009206359054881794351659601429703465632231651111371038640749427761941463983693076575626509556966827553200374337145569587785638935794360255235551006576436806853323921302572924816987207662813525947424505376296177797346932878792152975435449400109562787816841768983847668673023551343839804754419386365705297383445607813658224083682004773857925917689086734512719924438995710877240195143834638214376837991410701780582277340538412443597518469940013073128058861200615060914934221280502188002806765751959410198676652321270501201533630292908436286036958919806846868818966895855751767851710730568663584080906333845117829948229012621528309524671985667833376009768648197255790933417587496431089649682638794152963345100956078620795241264732863515120415722254713184046533489711597679443202458517353410047665682220004943409624202208564324905767619304884790154632277801529067657764643723310620005572761325640219820113011041768617608693788133150154804716452902344687681537786693471444805186755377740770565162651172119424040010947857329375571478325892426364631035316549270512588777485378501268633849615107565687082835088253001233469709143282140849963553403782867131910082058315902804277735066237964281475229114189347661934600444180378711251112519631057180943682216347390991229091513047204910008758972463597919720156009044424228013969323318017304974110241993051815289821503899493688676509035108155339167047239606385049031211207443099119142431319280375490601755657732262294769416303319944785064377462679229142020292848495450731614193393921711818410786033845253692843611366538964331924236363893992367424456696912902203274660803393800604691819483764308479121737976604950953015271007945042260717804046253199924203749853428199345189374915082758000480187352247361988448233533297773986765730193773335761220336072390905452514043924959340109200915921260467782712965842109136205237293990970572148171673200468965605402252707126357094827783264078926888608405386674814432330157193476761174233451808932144277076086780631375854338296776001645502616840977134310979967234373431567607920184630408815195661851312808464633002642825104715709585116388498037024004696357595684467357570471786353465928594489531395832923575067572583414087254745976930987762753196888718923504979936747861820215483731110995015398131535408222791646562787695332096578160450550704726043531165087065407468880016437399560571294312505014549529135319169487725159720347018517478561226877747406249947084384607563197528629718059566960728376611681292664089746627631128682926529423243939417966960590362719354930754356659802645372063245434277830958209315588338137848175712580091151233491445172443855579423230393964185739499655117477777416589768132486891347354851239871809705390702007808408668188793645559773083782328056463846914875682658908050654784184159871909644921562344678539923243779501674456989111142494098252745735043869498071398305419880646998556226922160877684001283618234995298934974103585691935085709659064551337228351255398208327095188848689824467472856828953741335893785991443317630797406749974889082057769413587853927348819384070608371405225908895890277609236730956255034945984761514427341053631522479139470266531231367356147791144073578891612436765690570062278945316669546111708833440941991789896505761195368311313611947582111322069524858203284703381981772158624798578809998265775852538200982965463882194602988285281049881059534395324240534636448409565654091194141920124935418994069083542031298807515226583782850824138594426375192037610724148467574999079622926838948109460088859241611163131442374288362485222477879372928300238093394427698342277582351377019698209210383905887927181477430823353665325515500031550664334741853196528776249114088001821634299876880810239815669180501049451284452620243974660504539306886069003054399020646331634677360019836033023454788383451801680519340790237198266905351485795567697970918064366575475768597447270932834184499766671069643986409208342415860103120504144493232592073404339417569452353288051018972081756359803501334540037465444875242763349249318375401662707453471751544655448959811027238960133213351733824859403038972684804856360743497380840182631396542214907986874757150182027670593681082430254983283245925235380751301437850326857781722771909911014222272332065881075306869983294566561757327065121441270877830373629967299789304889238422091799608593925279975787065880348664856917431240865977198343276816172369224864521911376135689828847319097707648566866439052821426359365189261569160465676298286045018131681809958451917997609641924381274532459809376094589790897225316019212139954809080580823677097433456414385123056382777763907084504033573321750566028014778520376870892170969787748503229589956441014888656573241714619936462678640537536202042433499640523852789640795329241625200508308400977372642626848748699300884242444973798076651014233389893415892877827520037061088508157664073429596364699747875492238420884112114680490643040806280107416719383182681380600244387664826449334271297363733427387108484281567681549171199495214890678998884728671962889411483588611113592418151787688356255160428082844956433502091043113904627141834506315932239560190695649908672830182039932126444086671837041089270191287995569933493065166863820869815926587572591283274444268217905146551646699723135777270592638332282231526513040568530590883191826896975491080656118078096515259394553413033644278072439737114730318777293836282345454446337663552844627698157211354895632092224925628829460517630240839917592562632936752174259042470002779058543576761132251790883572932416374204867126479994931152749091877198361818372508810099558481675677891429400261866798277045315573933372960093077425815562623355632882054789537943093322964531357778710934318975975275003804796735049953399159373470561058481059576182090569994571568697431170067612172382604198925877926344964813444076022883043748214840349664044705731410779032994564061986211854793123138009253898578761321432415904393360444596037231137646772871047158315678790023701127260178816913877910865324729098518282305183723692023087553263585806962596929399409330486076143910567873542115943862077011133879500848288155042251995628816892749043042823756591521786469692822300651120787918063640589692584478377162751867960252635338260520851194759021825496804399968971864364361507768568476484213299799980507886195201660347268885659267246736361244954549845993088624586332517557428293858416491227118437227116877158797256125096673941467480270791819376466963586310423437284510827308180181054281418501410990302302329062696947085904356156941205909127349244162009489562421212925946223526952495823213143106309974746590919897753189210509377674214895673912579418299272343018328462912844054975164194408316830559169326588071320242595554554933441031665230747121815091099539693577218845554318793527110547572486824004452855145749370457574481213842920534717241313029249165628307966035960278689074490163043392407031369345916779599077326632052055881316897889742775112427046774329796578666416428553393042087461252081518828935977637058090124254373372936723465464025183291674770381650483113506093335742170089615780239583850073863031509965116694587201288162047052792243664232973640765552709909056500731370000879028001529650934891589851491922374019408175530479527691108405628981702162769369661147756435923936919375808272115917957363508029462905142549041559089033415381315968330942411929965488701533442176626861585800780527311653017577446541563052356329358128424598830450624586543834644152801022407821015229555968083578479780668297489543961751400323621908087741768609678884587808303975975776922728347212382129694777831727113204847329889094074417642374905404096700899539241264429603021234236625331238691072836245481525420686142247128955695847130043041139691574831042073989947914986573923317593920721316071294608494957884628289308869523827681039956498411023824360619179534022213472841340075647575859159102232183748560631430936754314013196215230377546972641996105955045292709634575357624141864991861074667047626334712710581764873945389205075866964790666060587419826267212145416260202981655346549340309557509699479307580422948952489045210881264155456105438954107834330473279747351494657959011809713867837467257269915077102785428837011150622970826563010429881222840469616752082460381832587095147948056821796772636221540686943439648053838845008451703202597607182131299933987286115066940026301572411804790945414521098539879428689639800115807551363436240196143718394825239135279241745408566729067200967694299276248901346907112310508803956459954121503165818499822100418556978969615761027020415321405194336209985299000413071183485677058691005141339276681558570546276837068757060108282019389684139671245259908459337071886592941344020938699281208920414060018034044070136371771754971200267442309631007115042723187063995688499136867529539331885306718410409746524004167582126184590250840561332673037686363562170292751494115935806175460599768888986947559540480438591828439507398438012702433357882378391563727810707164196332127726923603811126885551702331632305622471995553633072021081927504747247034441440184197138947689093064950195176713388207794301394922815754446736896703273821596327195913757046809411953279866259140558591140275824135283662692366340237056992133157337158210115968335162265658946906944104853464718163169702942672249734439229642025399886712540541703669284107889415392628770393799116029928469012172068006966533230622100862851499002658555943694544511328472166299263841741998522532651630445419585465642283930412382572901227970887024669434823177503636961922432631378868191656019135178195169476982421184076833683872368752851253452097893305366066694337232910858945697136748302796871899693634648743392728736119978384642506897246009018784407940524281612626492521373207178762817403269790078950285240084793251562233404795289778263337774130806239149452990305867778740805415705289227409210652190357679486061559944340214660536815517398509032931642434382641528320148992566640727927754717867951351191617438552899672825129883857233501276617709702228361756992000574668797378137403531056866436150686021037232453431433926808262959343027086709354250088993012712229182657599923837747309298466248803561261187509404869101388825653757545187495688968344250916986845441061087980814561126776323241664297141431864728716724146412639330691028182057748965048200127033590182520850433794578817485276984907950645702887711279993467689643111235573148667321819712450309974306518710526766337181458310000385471998388903046318185166519046134497340913129841357952555986847585545804679450906089519488673567002503277333243393165447362970668016318569799736238086842763492594863697727033435551171317925407540701486095273651439326928980083290551965026809654986564877040478190884063882506039122323622015223353421305227502124013100369278277466244912281096786623619302458578450069541953597103981229941112316375223258318308692044339936437703482720652167194577261684093359961588158399614490227455892520649528811399086768694608868709163250195081589792331062881813829313909710506868522291357972684282766855040663678116884532908478306354451232082852563380180517015846029524706500811882581286965925206163747835562489112012720405742225184652378761830583680623995381421132441997860625820113329135498589890893302884635596123144582604717672972155962524025155523240759465256204025385525152124404452584284726328066282244109587601765220702373613936989213123306400573367001387155308278534676852578019328334341501700608443939189700986666429046523792363630937302952550901246544678046265907267622036939050111601583111185754015585811081677509590471408254992051592113908041729857999366722712741178653638317493973825450789828207151894644260821722210242975826303135357657062294347592620007868061622388997761430138302208852446284865923882786447172762609349448609353252104588752668413185021559834395141716401568550514202663366429673732747709697006374958755873573777241324012792672983478185453020884377312463436892537396304268228270751564517331480066738596417317430289988195137940316169266595828566406281500966979025431306781710338483662250630507978067649918014570783249690933858524037768090096225892360613275998929393077771915275705447272582661861260975266964542844931693164001897217488647916933668035274568023182679797647561084845029047241314792497991913643728887547253929130864066167059690381591287655482987333411132704774651372769244992661869768614647396618810759806318117647745204989140527550189585871074313060839353723746694985315725876315593442732019100839760985696925605539042469295944491030799531336176483403726382602533312335306841371949178166801390494545637374168098355242803011210271512607455228134375969022316306490667236211817166945145979358752355175562876214915056947939102423002018957480289016142365029183856450498554420692061901232651618035750860929831197772484032302746929494328355654574268219069373734280682821966757349658664479755180902645876076097656848889837876962138774108046876279349094530917839003646697588069857519212982852676187104164295465665085193661910860955443942786896328476668314405038523968442144945664361090069399789580496643690984973555711125796188989354975326701902251872495510924271894205682136495743976501396694302672715669236188941428209710030787230090657865778559640691955887194708398931922223334099218195765519996948997538160960577625551941860184919256953326956689455087124845624378643508643903969877776808324794266043237486855616348237447047391796040278065619134318592811031265610993592413011647190051388740526962770226788419403850620739027914774246574642254566093755211621842652806188651951146879977616954252857177896641336003325094831386207772675474755723783630432430011970487089710693385893027566436264451802857261314480986535378374297558855436356244435513618992401863109706178842669868225501274962940302805961086439777657024921514097476158717926389712726506378339922335881372447124858022257552847348981310443143252312055069133347348240365826388932689263039966348253335053343478476865971340150946294894225909962153100733121862126155895463831908926884958231950502039881801526563606058917728009676148931856932439400335302440055538623028014626685114157610963423574121378381645536912737459140236586536485187565348972936321821336948807474636076426042474985120422562162967304670467643565404973527549550801516524333117025987021267097826027395196927100319023868963957162318129522119916373508862726385227080146668324286442825580291998169913735464762362121034082024158242209865043654002248688376807710535231137449673124001133166474886857007263182794719252813723594233173510779788443807472507574055481805074874047308388523230864627432575983983261383669715285815748250029885071147723675548612183116368608297418463340673297411388897961676411164792878220385980227003886097346621264619828199506478295247051672280699955020730987143365555779833510824044640447548710506157466260568688798720285025747418853074006224168412610411259828776273968198382605749295642641896914366052826979993528522480750509222184113164839562313981025335086702212209174248733479465364861529170499828559314507078249406699051185547551670753677561060091629639129447166925982930126450102969370529516935697749290891954547156859566742895694225714659389618116962539490260252032955821978859883941682410347293045198086470670033343886594152391618989444846949103801517692627934088832509251288977444705915881179335324413859507829341502575594744692078557900451466474987597437392579654774696195072120047917283755817816270085221560107416690313545470172703444954471600110458618713359868268178179425413472869934688481440937413514415628324949989665553341886056756093749776007490018881172114901742733968703904112671722302323651171188680178008305209881554035023695105044157860184332326554491498983898337870877907927707913117703466876175583714892807915161189997070871036270470564020424379529281216381618349081325961930650768207001523489797649058541937201516222511016349769247887891113078718874985885374711622265655054292985116260742624388676448314225656699844125834742062350033700955217793606551201531814650454999539764489014093264101521479670818616917021309851844584654269213813812257254918028519306763356198376140258088190750349517247359428927150686270618841460647837419802981314752193633443094886908387493321311925459703648940353211204026942786857458905024103363478622063616132668034023912791416384452081341555355491748007079974164881031006758188084022394751515947024092458877473290840054371044551186284007982451064904931922907451774477307934848010710973795774642302722345476135865876163029488436339724253946734221712114159583269511463708861697690861348396817506890037703718330187069617282209629041876052592678486218579505501030629824542458910002641271926599897129681663555789429814265102944733026497009320884030139592316093160824959974920543976782414410245545786700401995149178232585022448588147008400615184178001332798544539052360926806403078058190059175756414585563750119832599426407856392672812991225135594926255920851778107313663923637815023082123985566464793871823997632705849132586273591570212130096664206858185620998774372617362592768754559613016736921086257614013059890641260436847926611658939915433977448388967892742988296347059866586138097250000535357247078088076166402905872933683138069198343943031198939625485397402175187477702634958381286399852863961959054398277965975740655617222881799131788604483904565037991524736121422357944965942561677905748522907932642569096456178972275932000579515777592866843661698887413915620992756912985667217345685618654991157132535532149871062262472332331362078070786312582478067587515552440494677159716267398315881989267013999230904795844310213826463030943723974668763422124603277793548355122498724022806509280615743815502082812225326408186875090294677509448638725821434322964186797575872575937696932787974208033128464569812130447573097643604628471475461009130870760643876032570761597519548938331827789519055287793754289012480795887033937298901137989194553766750438044303138841373666347141803588103141722789644377568694620337948302729258014190241846752376545107371670376197644711926880420203510111638035540736885144542062869074028396094992133133938151227346500901740604918066750728796799314678309333085277820640427965863851221543629985933420602884394114991891713249868574837791731412414711660510719790425360058112178968657899200343377373980274701715568871632772334882376888911702551719689945929912134286324281121391842603398340986228550236633750949281161932221293130196924604326299439316613239053351089483098646176191598609336700708762847136749349877502592239364862526650069999018057791427347372697807166276326759688559498371042831236633117182258832596989556792412999028794171482014504821996665781376610121843885316333191524811275941651151540755925290236901535858632004751201211433200618647762557813183800491469761141415968628623107961754626033684812957210761471107572777743606397685099222481969322243471331204959417088323807643115378238113237471796736234299819640420239580693380302983096518215311096213624892927065178525579399218206320887582193218936787004256901187382678693381358976008232227535498857936996580585545920392549683338862289835381348250514231869746311096578162146421019673109905882812680768913789996473427802815089090615948108972208791736358650249813977715581817274739114518510064036862530924697854181263959313003821000189278666506467283747182252921270292375863074319552812433198418410684337308852866403896688012951112371112333877052408633084099093928534021092800823693773729147865116533620635327442657822739896849366236180714608293877979611221009045158312698639888627217331573747716356120873849132776390655794892950788017935863123658899004277573785870524012362920755997907160517099978146564788572480740559250240942112487547443186522628296389795394494788166820935459451519113099230184668206451937853273430735219005812445573992028246040399124903423153031528822562432747083921961644799703144247135538465980674454986239765038408398738732901392814422827678298477026843315612417800628216569758451189710992708214733098487909773771495111850315750515175876158260611006821754786379079358783419693582104061510124801298326490781000879586346218110000815355113371201281451121939264499020133543695194069236454316597602391552849803513351560730336760846899057937843914721406847654451414561647182815379059973828227633616535554901865402347729654929290259962846378260862183386033839879823601102070702477052459712671028116854129692048924135726159244563036801309202098693500720935137820748976603622007982362587913272190099734764266074448861187585013597871001910109965361996512493983986630630119807597642569751219057084165967245479523030345390134435601715595872739064746656095932465750830026080149639794304234401317210646879816819899972653607740312260885496023368176212562838420878481316913883643722583712279857401201839078965175086890798363855425735645751543974772904972562171968130275027709624169877054591860781153917098987843546467569479872773881456273386238428786804537339806712603488926026321855850057381882477019918284238350462569040616414562225773482129878448796327902206768473681221513729387903619088903509991958579377681706271931493914330526983322247333259429177917364017423093029593706772347993920594912723457741340138394730306731879846901205342659584588558141485641296473818945893968007271617183378960822332550365529465448912677494567679929347059948499544657716113315736400494125682745665605713828363254799094206014659566911951087418203293581562582205992410386835027706843817821308132212658335937411913648156805411155457991515752977875153541711136061321913883767184400628339623019112625806885339487289390405907023927110698694058435036810667060447320456287287575463028344510399672620844554822811343253053866372339788198962706988552054315113598391174067915541563186986387825740034673900864259561670724936331832099088990714298992185405130641853213101348943066266692389929923316285823291927983239083194002663555123620548144945134857375483039821261889594784925047393740613305848400098311422736351592271247013603890915872177328026108736954684414931780955842501697149146554387742048419614681226688658335726874635400804016718910949234451669290475664293970767344219614983770181409148801351559967404322017771381589803051233493624811835471317365895108548766934729649172113548511599685606241884206525511784762698574640129817775307237939260028422939072655464615665791445031527352874504193174541293989007263368917989022247473957100044661216189728018258686846059247944632951622050899190975827594604779256405458855933490781182564691177361980471167067657055370255848349864866098706044284330672556642109025250861533385722603939042325502546403204780537157118621414810433764703627787766937231545140257267768778745882731915705812264252253773797161916136405985761462611752706471855894650546767737457057234833225845859175284589491444917355020365050220166526672688476847921556717577029938714011482133041178911056706121305018707517069730998886751936090533163760104150262140489380636215881360677299098109885376570612938578946616959079362978584804860123132686428015472571545089890825682956671462926184284677796702880002559393022542167474554403332731909011801663899503935398368615280466294889233286385440353663706378150917462425873267633717503495940635296775573751026328372296070178407111300213538842670044888946664027539445606095921166089767406588254732478326639419338948770535262926311310938027681296015736727745095362479110514576918783488859963659285436678652556582751520908382462091584403127722883928225413099175589671079726356117394225638813756102384462521212097632364753191513376299475229593017786164579330199956696832344423354099051592620821098032602304789291087175544217919822336952882995608238273525155038600415965982010168510464986557102558197888315240751920295428746157574185979249190461204495010216836366582012285296751384940945167652331171172652828736165729764649517025243437965330136050810045386747970906947915778541489501892246889120682111915757594391401459793174532270082677767812613256170254310147952962412671544252989768916807651159183085200966988789816048966106073833670665706237150948161408476675328446389768414315594407482297317549466022604286278499386357411352666171791036101856569177702976449072718809890179142231331779139641068162372478489582853481632209540246352839884234105152123573621439681425847505069981902926326269320390729262924576493224459501915745377435804537566362793949433393303953021466475686029485420036746211705519178246225309454900219852017289987021785387614412362240047110038828010869454702482915552392044627274489502320717968394406406926983820843303406506906545615649779964399594204533663998208550895573733492533285075459237638770959306446494638363676027558979999352214303581484860044640040917043032344574880088678258503781923892375450599497178980457129025383527037808103959735384103066760674108720565061338834294307014079313759831920050838039408292195649051948666887099718318976290563730901475102364259735246677059542521279623599725179994267226628665992476570249259811269276130639529275018447931105125462466018419389903953822874924541552074734449783604133922610934388327767321248142241483153132043608877448982497439300468438665314729255894759652879662274191073438522468684639507516471252006412777626978354609038489045188477152964768251106242779432511995807784666387840394328064812203004697749913161131623493473241268506643858645374995494900143799428857174702880533821721483444771551852679568682727584260216980847309165729356568527204905311014366586573170415881906451269627152309115611860386220142762211517125691870209807862327810343926098596645387046918059013393317464241238429633040246176895260720895889550073949853922941410481923852836241092709853505848677727951452267753413982504768262188113183407028403894108596400444524730402237243895217379812594507680015902527183054903331496695881755955396496916343201751855534286362689733579750484808828633669730763286911647596278018640952487209463290642023158590565123908012720222131330129968033997964433498910499825301018753861149135173693180839494783665067195738472066716827346376637100796614945210133869598267228668677593990483159041319551565820336021772359078856773088596271533168713002116756546939645864857531332283888484519281032461060702032280388015381889086549970056707075786728695011379157801154880888725594526300459444407351385576377327536277802494557789886520476718522791117992690583656788055191267916252102678606720916462984456437226464754685859203952686295991338111128472681518917774714431918951008201667719138266048539833339318169600258053667712173530359576453682753090318228165999932094262877372930948205499535334531243741164177406673464992409285252852924845893788469744067240582214128207043460394962432231968462132044346683320888406716646355919362202101465985772618056037659658694528832951889706973148475146676458932899142260824173409257855976536315218259281912548184553495648725635643129798290836470350248942541661999189015494866003847342144592122092844970687933247082193581888543109233471036898879180307501637979890156511656069163101958638435391474011388478795894920374532412028715552885264573133258658567334276769494165799947504279666782658100442195538800126925969610318273127342020242594328754031642107254193485889831322963993543946509710523985188588501697161217078125622149471967916385152551828985857836024187035490604473552532186971629914038914126496252535696233680767901478720447416069045376099674545044460398640552200400679483489750584808670261371576202594574977967229085039780742540608201927732559224351058387123346308829654477919062657021176734079019322241899274352317669254360780077533601968476094205378335208925562702814464530366705225958207554989112023508061929475741442673138647427437072629878580736829560021282424708598914840856986846442088349238831520226696136398551379129305063600401474446296420133180673633832288197190668221307441807554537434099082839513540935607228039672675100227243690255343326277099879254488297361300218455536577118241924487351853245812223790038623447138412382863568369055897987087046009338860204574002054385933782457774899839393855777880389170823216429576188384968643677699950183698435011687533370148212585553339176012783544588849927305408141171860885228440403992366554609387842181706535142886453738151348256986552765115840077262105192288338875064157352132945507175591798570990412708214594927454760835488517630889740599592421748875723301406942102786086004128603690457392635612596987184841807008051599576555970424554273898140216948415412374314583408751229758594650833744129225991162718975001032291700495497843867346257726172072027443773373765115015729219645247419841552672219598942308125883035348261493349496855754397051469295490933967626459582644709070707532183367760464242283944755597197391773560606128552476943045053972047737415098772031819400418514360961322888272970554306990505139217611233230667340104948414969354795316049570914460558566892633603281294327828552265460505937904131523315291596124561970486729380603796932483151501153778690655688579946202112193606886251251960645691426886150615128610208211109308115783286781247982961162250578820565204003134015456136029837449135592761314640881780360339396908816837497283051204874659571811753776303870250394195534474406290768697960602170724240647170679529758133443884870772157034690214279037378550617620296366428730886751878400116424229411166620216769612660125407606673571032187276116544138848145349185596771175229223705844893278180094717974447565242702382386976870832083105685849919127244658288656340008182220032210594181825030330217060997308450146222965747382561498704463369835929577831673721108545716918062857932634106208822361720187832496459414148309899839538066374546411055610291114253592638429352812712387386607034782367634779888269504827536355513031818117396600676456408241608427563181828405598861014980479819660934380913853702465895563461789732995872249906502029962060258533049067746083359035030880741753192558906344426294852233355697968343345206881498699617200077723536231702626447766051893974790357546297058071431083331451711916741604016625130457109248601503765961348189953370135635262211110042247543613991933683211906881601438759380713080259609347373771711608633857233467116560494631645552399752059836542796530404679177567743124485903515191622785120375466496680161291559896128983451029306815526921207844522538345892372645347581033655995958331931177093763911446308599815236801510617707057642068489603562643114467512517796142436293642752802501380050045211619315032724445543909840923300402866199172926502681014742755577183444759758915663963443365907064964229684777463055046460277633074574155412686611391937944853966267517386500158898937562591445816470601001906376098734591400194306466926587059506551422902318347992427647101394276995077513427724865184750596892334906849740208015966109120210774547129179037720446192961183915410415954339010279201609861183827697197042755385915439772034292388782715123737580409888513036030224009832820990396945012265302166341957891692602254883305800249354043531220621915362657561702333319211146144891491013356741240363064615536476204911086572508799386721575245187456929554228928668777121545253370995623605776767158964856226266379824436934621109132142676303594533623119210497552115372889044849041442636126715770380028405800355313228785055984050875341698549282460672910269908856428867937895076193739740406970632202685885801625852538762900659280011116121504917763430167258551475209097691085768947266616513648823905564401589858206471280353909806885201140375383366797927587071679225557778968678937792040032740837477461420424296098290932836287445635109180037417070888031857015572552886303289186658902542774745132396657625356233838564986340546819882187166490339259963977107647617834790461250029743604338141333437825015436964442054946975648167842100647108602349690895183674698292825470160910524534300641006760004739000923262856642440752995227151017177727208188703288755552530703370437910470548014944610317290108992189044516791276343622437290846142905370482371045626264113665134000375461513013755410344006516890709753115851138687158269109401173854348278824157324258351137021339372898216528762949584412513131854392118220955239752056249446344546802081058136119960337375997442207690749099050556005705649978028180623676797340440690023060231974241671515547746124661894976933262550291859856442386707871675593818722871185113959814850775896731620325608186398178775265319637074146229291580028841653708102151827557574607455244971053782370507084743943405798422544766265643597579027656303967467840907085516475104493108270159330237674452202285437995865893758888791150652487237894224166821566851929620169024191089047407355145446079671494253231913633078287307572657547338059918758228756390937880929118160944156670456467365566219916620714232399413603788793453132592914531137953319846078892187944516974229083319111283239199654558003542860303263111544313026876312500962505900705933003544815159137156497735686813079722809540749170572017635250074696121237462841199573082564285642413726098013249906565497952793980460428062012566296427573263905395558123737226401685346171445161036120610936990323876328072409801928165581224073201057684987348354019027136954420830248102631405782449601408472269505282216907339110427507233597885907301470785066289498450756707584907468240021180101109164691847768404503766360534289343902614803373876099254852481542670039794771983656442193646187018415089786263195362520981460106164560738274941594025432209462567115326252952159668605636116257995284367782138008209157592335307337826130610558310795569942521971743004622001272768273600639479249563719506180221915132228243585405244766455649493003518959582255268812082990225694529800621695943344793123281084187493941033121618786384737809735911819669461467982695657455291935176556327952462573590933156073131445114875041987416737576169429283907175333168819099408196595237417049153394982609223841101635548246011899132699606133082678296550590722012538641329652931044120884023032238184321757505079835114815727238351400385234597796219112052789265708077038763619236702300256230364903844170507838078576237494743777383757842451400104642460839535670882794728926343522899476263233352741354947652732557048148349421730347643984639773193314966691956919872891804401005021614276804559325838492411558626634279013194775948144645674328885721453531686255583861627669996459253937798309455557676238603717948431858837179014540616240916741623121762200207507882582258640771362464185404277683247837290949177715351422407193889540537020382211683547893482836927787339674883501297482558540968200746534109087585792955167515408052132430877776976721706626155049354075064735545409878469726324169204738367988456824903516387201465190344774186313433505259359427489482525520884947638760896129366050517085768062294146918973975332952842688296586990284023101805003971978194472202472073144766604218121114874036166380302335224567654274784356840467348440751470756417400262847619880881003658197230861798249856419886183181417298211659603491172001263573113551943094547235143579165357495791220117929578895820180053730361875466017060165267897515018569126588354629174475328592911871337508008335150856050719077807095837246202845762070600123047214574592158993297723137589843706114609500411639195420705727036164684262145157627005493318008411638236626471662501674337736245356603264944601927835690492845213633628452415793790311817269744324530686074680335066522526063677366771257878195121138704731104985020098995057095221016852394785697510864314035506981729186068249394932098413815035168284818411288160023450362082845403151148886380366772603130585628495868047245466910204947906785887390361970017245402354101217182730013326615469828285615423968455865091106360075216465399234879309217565660650817453352835535997450316953736920550162971763452027803466726174186602528934537179543404054604363074836965674851581971274190465279258183023935973077947679920998946599274614029686955541663251543308757985231937743688496805221048562934307258542738996811134420792264369395641541711157646251275447408260795217839538000558101357214002761585804560358243074590129349402995716680400587560038106675355573445366075606237213618257185363756087184623021491587423589162498810496703064613182807703234427113852277216269697967861636024258394009571141827875394457725668723339486117740641206421010289958684852758426418488788638683891241326516627403113454748788097470657027747294372766680276803891143324281004717749219176648378613665737450633905071605687570483848998471515979586940577745344329795045878944626024438070293797746554979616855071950206111841463359487884935270440104213244846672818635908468776336399350253889448452061543555959743172573687817633322770400632686324175790502106526022768756925880179258644386148206260548501220920333437953943148073806257209352321195519604676951377058580744114532726151926933716430987308465511143394077980952162234915132668495247387974885204996441741584268514447570409236490540886517950921406578484867664694777173006335107024504584318794768702661593044380991153630927827436972750666859476443400429920983644358482981801734045622302890973297035644186400647541279608213293476595326836604568151722688225079869406987507898704834242974982026506818879046419431041943872122680040157654823326671240511722511211213985210743353417347558791848403404068259468968098123713411699837584841931114355304268638007029268379926713954136422436388783634818471222283310191632956342988331862185635887282555653734591877874646961255212736952419697346634313796056214607710667956128307470285694799688910926313060209179874519544496678115878728120421093921141503569071464800778919275133222883366713080553436587190096320122735260745665461129288018306743669904848392670618788351302980527762332272618253033712451202449644376153897665940146444792300298070141137531535372565558268642472852941219119066705610287299299509994350143339776326254784558462765380502836656748761458756719099290608444322727810918760264616921476265012453227484599143157233252946335746784783134470098495724093138691860925113849411863761427422644267374470109714519556444152550382579259826818868841680843336254109849500157669594661394306547544195265234736128419596143921528466299053384980018917921237249627953987578011555444012888132845561036703964693499863936802870572080418228169335381745010600147573131174519840533470679882866507935179629959947160507001367523410455914740351808193912007830142912066658139273100547654188880259131823639550900976671873330577054830059633102930980546284214315236501603887065080047638196630857186697386330363553896046081377676957704027547899304904102531376234990876765745239861472310507533880816900231043250002524046051765551826580537529970083391378104683046129968663308804035621030021350947089528061254133053972752714045956155449312287155032372431548482714502797134759163494579977621565440629896304239177641321573146236543289407615958240909564047427989839574775915081482322283981201979705804543186267483604154013407812438356392365013877389898273634981117492984082246066724184496263697520879185819603276525069995909352245790392055931568755658168444462903541695081697095881492328184452043527027805437169430194080650190706779816260980074498039364276908616820814076474984780799892060970339008645300840517168035933408619454364852175482039558786406883093382482862879509398442532212251798953497094370437147773558809381866218641313742978940093386237862873555503808333765736083504475263402968466543251962470088806118310186388924469162974660900249689312381774130688138427439853960316035235392537818076349434926316646935819989405122915172427054830050610514034687847627942825048433646082628189537375669869524299921190164414426707651219884072466994076470882771499063338296954970523390991071880919468631523582248202243096936526366344176977959032249232269344774361735690956051590761804840716586877881044550493264411384458890792541375115918074660184337527981599198238892632046667177134808535249227168373290125149370476123504576358781051450459468656199628396727939966914397900201724348019140826596785698811802951883932500277544248763166836970566065133811964703113908167843604827960579742643944735896508880235955077613777801780631171366508377883383962095992277794858274572272459549200675838876139384284803421810375163976950030623453719302087024598906832621888089334481956370664771126010601834981244681533259486577057358975494884029552445770683519857384435454153563278504052680591744634135063318163800729134971723755846208856595381066651334390395212251564431389795588306632713111283673353501877383820875176308836465084956064124821318102816697766028623066116128272490774837678987678595045858186706028833601741335949527298710886725646160120987546796188837516436396452815964627227512787835281728445330000676832402051745541623443324712085158084148814711521433679332210363928910319301595909016237284831240294807761239478676289145826818677509131579167627486277379746047676482272466823210537067209825888582537371336472115198611791250221275542825406411782006921361532301993927839353727286578112246306198472110483870507442321425510156248487765096120268514771130690938069837229235319737686217045196080219372976043044524109397410649411491231108701631875824992662750274456726090700360666929708749447469629571377038396467628584206269241789449440128942072136062527464241481457149188497622715690053435996156988608147066776103269393386247842238996591123578442950377677643793673468698328188425663335057820310357158773380048746542497421269544080778002562410638081993024792741124319497038952579413972648727174026734146878179556884376058573657214963751942580890422867563801108485029102639387513743688062957378199629534591437778914656202508207196026427028815413109996382885043113002315169966085149478538703421199874483284957235740518288011368070847939588194279811858627442053863977437733892813328121475080273948083172294012182573262574466660621117488388506797227803873896605776045482022984121700285281340620984397261133247973715287301442249009299057459023832783759989913855111546175256143243497573114077465449776121191662060553267295712052189211983580259953737307240255648857496577419112014893374709427558437324027970759293455157169691175141914485679392986230080294920703233332407783178733533780646647594484210488082715883621023490544666602420705279732995726226168400612126668079505948571044876590853761672511439144710035190070824412423932302124698884263445968168330886309411467287933530277312670533158798163750988156508319460913795375020223399937228591346306117505247625079713345981926186544062834573609373985988228742288138012777138718291095122935991438361093603430550429130460020851913713918804293697856989713648865126773224731403037619052329891649407886820569197750277512143564906030573061121043792655088860662489918710052515425631096502359079040545586227440821006237331881125151427436873680152581966970175463073553580958138972051741525856125453904096396705920393848273061141581804873989036090386612106202177713311163495034023984177954214110343921235257151026503742586437426517121350216222145227288215649176166495654281766789054412702864952591944552388183171878940051984521484977484250788680654898127044747649329598386962136575556503627368162019788254358252931677984585064940685413320023736533510552082462733116337820363608908236806451194783823130599692862128836398245418573096369759322506823087000093533484332028461784235704927217509024790010478810406278462216078416858864236696516500361208884794860798506754726884776647379712610590353356948184547372036602741663481257508196949763653278600681580193546288200872775538143103666435983223920139945091404547732532683216732925981845434651126138809030238798356862134451968383361173532272561421631138939739822716013702230638281666223027042696606515371826950057000397583403644914005404100726001993213562419799544609682354191584922267873251630459936603270948281499794814320551307576816900991611717895215335701761688892641716926389346486362593330675336119554593296566266905739945814224263820786049277146325334475879728468749074845490088630825344542836926721051795270193329533792726600863489423956952189135077145038824541496884586180780326275054086809786451544605839890332491218670958547192132277178391168739715561298076810495422759137774240574568350652147192354470588571524457367611563669887146839020898127933574566857406519849858251685050280660335224808668980927224174825756062596250815445838430840956698003948330593618176796664182084057558335981415202218242510837763711452268208446115227086384762537446933653016971942665707424222859986494074220539203035623206939628259770742658656090010983387849112007877023975646834313484873449797411785424360071068387490857628857295521145144935937323328424167946980750340767775515014192251010643611200458973457938328370936024009050429952267910347214668715358983822866353963470967374430115138962468670161921998752396765867711230990806786890128626792289458446480330863140040314958342577829263273299377389933242766859137189790391211781223976985683932129113447731508147423215444349662443773104593623962201030742426443023124307028672974172606478860030988666149870582939775039998119995457783432901875984664969902037164804437043804253220172304714531802258282667208360031611336477934880719357764706045865907056131016534029487210814249318459892134466425653329054558769848754106187698281860156804281234267095623906458216575741975746554212516389322185483902350243551872471255123440927497827320955228888654258720902524337919404384367053282758587247963602749607446048271704749362396307642312245013191958145905907948927194772477195539797409425074219112437280588010708735463402338565998896234328820343564337206917010847831865074107876384549227240867403022026514275363956872027406964992672618138162712829371098224124326742519698182784196575140248020964386651137983935992249779241278338835853577733963522557809463401157526187054822961022243249350237728582272765494150943612866815048131234255894914485798361647186369634989301877188538378384008713955699958207958305794028081014785870856290059060005909111650299596036696771238956039732751937168917530334485808559707219109587078577595520577007827467926051580858956709591100535961947872696879341017903851056167812875142476933645630833003530579544354182911600328855128936819335669269422373858641380565456960374676602829656313972684614620121066253434882059440816646890208493988530867576774945309689329693245242125689341411409337435009272363708341287503388116640309128587617007209299046012457858018510033404267969642441503108750220755665638603749327690253801642470501287188391993688522098206775395853932140564627616781533804910833968950398426328268021543867178665448401041737910718868226147956896977711851570828806755791196099807814230596047333379362481631666599756964833230705596186345417006203567896685895762665305297249640240972052002392677580186677018592625650567135086007398134251122884971604883492983195183210480468143887668849232108530331288196908588351202663505743101823113094812441380148084851539656801455393257319105909565841413711712937416500629090484169469474688340903417764156260572090297253431439751270639338360871233523115797565162486419393017554419356627034652501585622838899017120771506337352958973413945527674992404825503110915111224551265029795802900898658461609409887865813121647935357829823553143066606621349194480253543359258973236285846625583166943871981152224898978577551354846364229261257060342798268169041576782613773854524000751302897648931206407809504988153646316576210775834581139118204842686275170155183505134273537045515224761256969755063508727946099790375663611623998982339267462360866436939241086666555646028519454073967194331635249729133038960152487373183398255669662499705084905802006527667121231551029611669477022201807667770528892839381168840086396730333679750070762918987312864687006187042510172530037683214821822991315095112449045448024212489490121391481149398718810382258913887794171177729022893943940324312910361631701543368725780122536776034400429566580194927638376472068512902892718708530866912504548981882095182708498315744076358866522906046907117554108874485013698316994652570094571668937977873396678734107821948370301173751876272908309209830148457167309132012101287141477510817803668018805706326194141131574502744694634275485335785925945450116052409824190244559327822027559162117203003827076729170437351693890918514090893039732709406345469439410130167118758264603171630680586926791198607331804255304496957084316886878811148087611742082163567200164960397314132972020759812914994871790189770433960346722481704118154269883894348416618558275762470655587693572943580202297334847749028011773968733828500726135977369042825983214767306232466103972860859409913664313627463093758027146353686272982873779013357457099112080294024931426989248886913468987453443546294733869115280209583626735997795635489212553619225632737518789756277339205028704504849367143920827945937683526001497647594549667711084095065003326755565112388063568211924620687313061052836971534865952619002139334965860384492192872402452088969181973040170666152406671444608458326306957501135848545604842304109027474318195124009875308344024092208996250005137737032857705043530835587415759014682999914178037388663119873130578274537843200917501138328941216829457185336639374652836953390310554795374538058535381631982537876490764416113884550008950974039724141981758950508137857296381059140112251089952110771238132860000962085030426087526414596587900618978655372366840248993235718868974367220628954926109614154003116152474243467042387862375677800648306283646993988898643879391651883191515814342832747546676744688396115493586506126704002132880123583676290060475177047901203276994810194135150814684727917390239357701084003548520430408614854693162078573836963062378494637964568706807355153813022042031317721337430953952212811845465109054685168182019886658585761869469600885958833052753180560884989820641373900412809969562268752565395455939250015344517703607502426662749034949525232536809946543259202643572329551483434255298132076136684099819181577009191738427290910435402881937795401273254143402887464053641793699970084852652466486222346852626528766587702555202359207519539918407381930284068583869639752799065818795921712165470026976469959532445952188502548629733525357877251974476333036042095681532566607653345625250893133224379326389775342215689579120676366755752593190852058793905708876649386329315344554924543892703037286533728111977404768807581402672527365645022459254922111245018597600979340022183459666464338807589568883066191056905729058518120641789647464873830686173290555177866733697939841508486795636890693528783993420351444627542356198561061604357522238638455532442772851336233377154399958334182571756147919253461487732240196698366763727428189753420225098408915930248440588569955586148923348288079074275503067407112476172280519291770779635929014018322458805457258259419028122349963210931138305245808674993458756669804632093861448589449816731694867536076528971864798673525200098099305207281314524601033825509041556272486079196138596736316907982098139453612499321901195334636951587230191063470741964186490285406193555921969271967493262452574072298764571852718042721610124996105007403612022275289835344449051418194899968133461737408579485957074067551156500451734334416108029811045192985798660874236255714203498289093322646629981441544708114702900548605962608125362408658613673310330983202080522684946374553112753837156739058216151461411795802542551896902999467553512484042220164719700501357027211586313154683061496026407613789032609373571356196900413428926052316883721643800908132792624745444886804969498505297662862484775098204561228507414678595507606811626952822600544902066928956496992667948552690055009651440645688333395826138212111850860674564952033426645556982949587860955776777048240873232647503243370660220963442442974621479884603644190797957563647163505935141626632975829370637115731738383038044794802059564219007316101511465893916274094800281861817250001188428752542095609497980020124343682548707395891169441653455967277728853051393002882981668541991780806409887477812265547310258917375575705841601922582940134589633863106547427762770999909945264190560821401617761916248886457980915196012459124295538527971806423770259765091782373471931015848262341252222206299756000265453879754602993923307063652777438076253856348560495647144047098842732880257314919153552792382705794167406174689147148614482254203240512153839164286090661899778304906382687130527381632014126087448743050353526744200655986744256244730642586950993156904931901387975677727834262799066572712972366056092292677466029226634210389528626002972618049551794358883834703228897641858390631153045703634419995657333109862808033267394830927907157429820493544210912109935735390182890195724324395137050007347007084356246104320124102897902859488183059086605635671825022593595394843683186747034784381605495647349896209000483209780107249536104491788410721936188745074979489360613758814308919656010993473831251237481387848332996048613608787890457274507179597070442850118955829874430402311492336605467079642546834235483971162243062006264662742959454490648025293397607196256584686965386766454342358640610572168805475336048377435162364101520576858872970037062446744656856792534823122303443415016870733406891352925504643702212345492843728238061953087915000156134762116689714387309174239712934411164645480976856958561625844402955692378281456047401313774184254702088163724826279064696510298397097674667632649446458415552695849408885648318286538815322022494319319574709163793127087877853623054625214064803248359154526183594486519328969479602867341359770758784377144466908648747836141475044845303715101699827268102388271491846869389983184588957035865888701750905326115589715260836110306944914198461558413710586833967609363020440415359463003402467627154946788341612289533620052614589827343958306321549571764400574922644715573559515210614856441691415705030993900722021925474475875476273462363399331358440217854433818854611362793364866046879296585807093624672597394007982333486449688577449035479404464304969516226288791397255579266728674769142065020432146963928260039979037370152978141015923134103597042401795301465179793689261048032030674356684400308064728875042754471810629294473661564364575403096068235586841550352092426709712501005274202174885703189679283581364095271527256928176247889664979690548881826178407759085782817352769559051152277573369516896358625181622988113027321167537945988270851945403495789784752223557018691488169099741357457623798603101527070158668273924478727391737899485162114257352547142146555754129397472640335583322577676328271758042323417592697487360257061145380968526178936823051037835327234686350258557987516421311659504967987417155015095679473607454152756685838872620506303162667303946381426383402123520866473732123252069586869405763284396514242146232643772578429730453699332110828459137790153667542363732343732446914846712004216704630638527902308691575314026119059944789255910652467370170228060642088505350051297924500231770798234506626703144857847077624926796172159045174924545186659657973050458847793634799201223728474052024186936007192706687007371325491342085248617142963698691010879722433627136289798535493916324750545006246159070246522929340615189037394377363421526127343551684450721564195066038787109979913400273881011401417006287038279198943155676806588278157747799512255583517329224703741934207296482867458788774966543099942941700382207851343282405615302416319365336102506266010777721652855469535755538625635161707330699289261043742418945957392427784754933804470802215013975748646154551387562571471121498521452577505357270206980432447163305807909656060241873240001040642753977475185292065750534538858796537307057779026530156891961001641477904416887548946347656564360631354288055170952831656150027243585340334690598613868108365377806747541655455637429726001622791497901670680506823727071301573997278848628451341461174457395460019600544257442625330547426918828459485919621579745414292226453654112980247619942871225198675925637210695269010552255078411773253349316746378671699424855042967753779962435898051826065101035930381515852424877476314850477371697231716090503886184415109483374881376303766236885083230490468709028563242658626248901156994015104840778526284687530611923194434462006343271067724802065747398237990654507182647461562298501048240833092025884693418886923633456672728720703765104550839797086606176643339998570986595802905711490790568367537423776709885300409396069967879109026500566210019564948938601677645455658596785333419642884514363413628263669255544467608081196614551078785295380347856726907828696525665381419696140012940609146309740687831026494801542057293814216252452933267800088338323424953848959099589484864496541833852252279599801198100008323883560443963152000039863299451875027367999920378188205707006164552379198041487174276250027017191600432907915314124675121574851692037355169506656515414362209538833241633126512111805369144832216088159678513258114616200587492602223011295222462833789759815289997943647913085390880146579726926926259859715382766384752201676092293187634094523603151260392220932390286571107723253879622280441455557992594480478508623894120491590371805832635902855285545892384063735010669663482864920293125970419498183358229586324285128175468419447034493381698065682108059967170477867473504997132224788622137204747021744594139727620175740498383157017623455049806749655390756921774795637169779490904776136374258645759021850427854736517960003678297123755860706504361038761688019305162154383010869704909245355702561075879044353303434996633888542077741979407890921285637019881705065680128951874772517567136604929126079619488310579806457437387541198548996392872790280591499404889051940729896973618215725856812060072942780701123640954858064346758689477591959646285138828513733521020270094636853013644323440605479420920683631367814014708160240031418539447807098594721404573905150017181191433308786434785341595174579118440288691961295629367279498079246444361466375360388318652113859341279406086031144036155966083868650879219827647535157898827616252665828605802068507465809138329665651877481532872808903608715017003491571660639865675031943045434366393304221518979427067285073225570615631905430758008821027859430429268598170978829577959930345488588350076431921792468175721567646171690463858744395676807420737523604946588227768929009604653530422669751945189573566626494752385664633035032385203341920992279574895353129512033175783746455330109100989326207639987789586115643031812595472640368038436856236330635493510674198154114036274127632967739613141483749109228838776697970276547341840509976684802162222378423658165396139131049598863380788832529399818473305278547677963710847494869610909132226656588768501009246624615159849913612370031275549361852836329395301164522842770639072798235869962336784753871331549288500958580371075519564303203391855654620377081688356310682530470792874974635998595030065871569172524897656852539931129834039769607629152275529068703277208235042950229637505272732437672524881317158035833864305220629522147879306357996663698714633591042903074882096294616168150908111699799390936172390900050269960998677735828118806698584378358302908474302422796046590764920260140920579930145786088992963968962300920538412704152226871825974223430373938209384883867712286794681640150192627887687897930139755301140511110943373865679600837432228013129162394594519564217405833609542055821048479571801064151533792954569477838436244224186863392312499187952283436963012071311371798432687138274332207612191196934324661447411004898345378047101526535236892788690917804764571226046991644875492532640576079657128902230239005194877208933127329008209658239826936458612244170585574175171240375942708792877361370690915976123206927199983914665622996624661983953092467218260120250080787226173673270919573414661205682353471387627815890010529065544616405858466195799002323651361582404314791772190419230366092607872640532536218312891053104843280181993758439503512015714646431614392884999681970150611473335919081806886560622356581072744305694231885422163502108649566398247804993066666538677376391558995996756802986577364237697926633973321933471541897821614758739713620582973961536913168946739932060329128670852471229461556527711268588159047529626594063433277172475522599164242632794641363126115076962336626172167609024595243049714206866404502767413210512121373730614705784545807241663790052695599456764483414176313740439024956653880453272694534683455445526619668780482235122828674518756200368538410534905495177904477212160566576446982643695223497733909614603831985907395072238913832226174850282705238248201500696166418112168133543916000647315263159483377489015370938727341698927798952354559295979617376505006099032988785835293581377368185220191118184867574340157159016964267730439567447304793842513952678136932649690446655644135180449351137032138540609138482809008957069416979299162322351205960058604909572160529790433409521120917281912917457104146805171884415903392335907959413027315510490366172506047664847353323450973880338628724040388301182492017966136472722216141278694634643997052218284877099832498110773720130864946873482885276200615412338666522371206422682738259292135054825952884090269725215449266125726818556548032886616711841085260051850515865402801533193829602391237163602939273389046977561600152290786448108199569329159726820690917178283992503371661837465926435163877679168082271734511594839874524471925882657207977499850564742813657401258386468554603208673780039298940471672607705570457029315245781014593521434325097819678460226433063629475197196840084943492825159690291108670485681097388224257354327458643805810967786960952398886865090505095141389860190875306620728168186353498662121501146698473498155851098119303785759461703492286507316494230872542948022144611969426471194932042004238823098730348332961801853149156472795788499511653912857935071355284347374989248709505539426126298861770737468053831136519452568738257549214390792433878842557131780974071973085836206084298003205250233187209691717855632614299239894111854691480166145752815822508734440716579176296006655972362661976181850547124704957757918061177330179448242273774897227729749744791972701006523354890261710417371591779491636394993150732900606998753883841688867675037785804103686834590512607296873614142932922742787042655494163644404281615545984768196588907820023447009894616277332432766997168034357936642984779901254385691520792424485778872760246831260952956666457739484391136319110377163170761237673206220480041351246571405887809137368564853583353975945387272441497657953088823729538369527600662608094560309730653383369278357497058347908168747977698596080352091362421396124923182753551141103883121189524137929893373315631983102428160166597019012352715292678012285847851363763241189228832416158013949540010664636373013439041401196464939493193385224000458835105800904980072697824931405368233244193778172079274531232199163146739813611159375604090222702717563079531613712298631262167196756804924730947621784400652289696593121987020193113059737447632853051770366474209298843332908598477608852582018808271635085136442580192967671806448293841747902626222008486329626850261985399603983990844265977383405113054193542373309004509886334919959416333812827109945870507058471389561202952072046758116622232635555959505251680946942695398827560710671752187762669726939689996904667597017716157481597408270352897419150224703582632243779451440517679065099694537400351153037251729414438338797471744400082760956651315638886794717306933978674600627934062612695982397282222970477325336858277477791869178735495172271833524155818874723030601628169765985386090330756268072239723470725928449839646882768660670313161058685464908857828401430945740777629328128240559788923489807546100732824751111110456884485750558929795712452349286948651525856264782933904316342615669400129471831024976802387774277431230700359466155794834253954507109903389016111683452426604692416760915136199707498907440049811358416808853510031304919251080606357771382624816976133447408554844815377855716591712952265406498363887565795378697787352008292843779473111793891459332968124617899136506894638107126216296969690941145679574543778553471494569192041537386628870662215301978986640918291462679870492247288458249266813433146027685976878201762481970461783462521056799049673828096235155752983198756249771894813594272502357602610865981835270392080035012955605638326324219900504337311146110849840195129792581654229355786576642302938630017439690231000338052534202995410507605715460254848159969218108465043247259367340410548482273624996836825667028863068697333067130880653356473741119579293980016161367459850589307193151545779113700407077978466843603916163262221217011253262156961412532369783529704251717507870889788522646821266446993279589643227884294370544201897556097427992931462673985761644136853502239804024582976861770947914781992797309793716881928329482595497036085120383991437299236302135773038893054107916237134031180061456569122287044532472761725653911889974798619353644478422470329297902462320238130012679528368008606052814169628072624218437266790198677705161696657783777151668268501236936222702599370041322801549068239930984186146876260477897669864307782874828242902009673667846086432119238484743988498390347589069139970640883747828919784354098281370432842888096995317737190042205932566305477617906949938159141155527827780448083357209362890079062219131335270551399091928102901800501933443341287118299115552205224256672461653479189977446482808660797464045892401644561863102481092546015807894398969058017536663918822994432848134449255089734683604873263330619336264879328804239035540616113462176081604145224738199645947153531878476721302787069940469306835651973480103056895921735973701853132260624529444107460117225348022330761044021428273304365260815495521570767428565454723237895481874841081284826045152349126235072865951479139158035388212827125538877298026397611091432501095451025021938891125247947189263216517047882777204059555574460610875817268317651661091404619361692784018771074807321655256735556913934728795830319245998112121807925632061462370416178382596851743409864620817946870528960341590826915521139051454540287520152238424268777004504443341363328541370405139878224564286747921047558201560237191727077436812083814932402035958979840104218023538606449304343079084636366116072943674320206321905705111563455020666353223973400164237637920977682833360600376343468133572170928969208513734279349126702120807422317758452881391826455393313742795365367348462259245769540039506359063069114736285677160024593055139527638523050731508739892457902693114210288956203475032609459340025372933105290829361043255185320860872044977413655905673927370372376793665438777062993990379589935282208922096902155154450966440420172298214384737018706252686180414454524838175749232344605273731298939162197010889735985740446617118541198471678145667219877480581485875749758217911194052568842751221055176716849870528880822812596623024994536921234715217818708579816788260882419104974410999493369760606666295057771419340877415358315231804905346702473231187138168148788881417752140133104230598519221481468913173440528816046658516875164352493997654374962443986600877787181959280302115983737335538238139650355804761791008416981920160388335511798934782247939240243239490606098653383652955973820958065986946041531643293293191184620298143400180900739685048939672871158849258396159734409990303796950743224000420910956058008605161465362226906839864620833768980831242193351101739707608007060972561102989330266539845462093411907071113366058366165921999101517676316296032352184176354294632894210510528130747271415711094356421104741335756312335540320659523133342660714767033585261284315039479593490502540212452727092794414570779995087772751731754355705332250022354600601136139741144145513275040190309688154876792234937583818709267468931104350982815014924065560900301508866938613849498911251946547339158385976209771825182696918578928215314293368911038267902706471796202093718550379661311461633614887385924360456476105622947186404735555084646070451018590478169870290724111475467217236650808665662372821092704074334840265841945412799691290637340853579487164944562920056012877608697851186784050088605020948165261147849665541192921225085304595599351266705859623932894145683792743969129503768453488544259234219985831184526530491863283075621794534726997807388008885945203305811582978870201432140070397417032070963303121509115745835721450943802171294096397023390230665551886412857641408276495538153564234514757940772815764145697796889424573933459649603282965744203054562655869983828082862713739144570178785674792612498974976418983003538471926535562756061293260737812289005252166970789959269731279544676950676047125767076138411738195472048258289692198905818458944181041376665562254058412686302590367522576737809918642283707510492849616060807909246823524089434072694412132109057302955487309372045840219659366685759989723587639046836945791652071945644959220863465706477113013273939105353589390930780185023867991913793228178086014614666225728274420256661887337932003339709977347991766537680285054617434089658419115775016817648652508874283640594268436479340107098454497132889555626311871217206786317039559364270470466167064499207978757333522451705565643268138519332629807746525805087663710808775932711784996417649011574166339235679089879104893212869669554005480990044413983789614269101323776546146529451917369734265057790929296804262797965655995412006601819004191613606692909079306642354109063420545687242742178833186062882642998714965789874674543305106110017216102343931619967979397456366170064853905666753589857906610863484209510975030394929228227770540182804898191471132175567123048435975975700275902695011111395835473840449323918418783350843460710691766399460058231313392999001150784066630651084745260911766029178370491628126003642903804120243988647126455651095647389500040953600048003840632407654563161288357583646383479008830651476678203307001530664513159867911571611298192432379594021838080282523925020543018248550466365316976109403708364198834881855512374766391988055018052061743519875681826149211096223080969404210088190879873603061722297482522584138153378195589834144213174441774426740132126219167378180627359481548623440368857076316885749387328311072618185277782282052019461463383846782195390030085862011384049205273453959827752978763891842473541646818318057390164342714000449719852647669653083476282676963707444985555612790547708675648467820600344735728790617714916090304805189961008722786458724030456821863092767971926299442528399356993232288947055829313278233550335359656233120987925982379857150706361052535950992430263097552294886087604849482171298582366078576842484202032287367565030232569184420577790265540050298052593262039696198114318247698792223711925999943176206222974124622931251184452916750220350381716936895796460604007416831211625883563789572685645313225541891039917573551117806291105186678341600152590434125943449637377240134879864075992797663608474815472318912798144706423340973739477693710262969125189310593614221751802602159509964271153659914621713421901985007781894344470800823000337899687233214485276399653225596113705563171588704973622340526804792676830442629152924095087732741374705954397648587515310830014206634358990194305657254934614907939101678670797819338617074111783992307063256676761329107349867484578409671297596060514567389688592912119134499798824879088045881909104456378354486128923974879678783862437542454227675192395661340067077979424422953492502636253258604755229771209773050125962353535320570916162702538860669285821234186199846025507511967711053967939665072639909575679331062678549641292193164774314502236132347888059499798326431667499760977705790316036271458292118560396325289853705335384714090851120623428207138922596890177571372885753525418269115270640067325898843151939156898918020494698595853947643841671486886518833520631095924470349810593000500043359716615426934617603431903519912795736900744144486103315010682376091358404624280662540142579510525710937799986189215199231477193802202266608195717405566951353395197957523697082543613573354573373368486812903279714718765548929231244461984319161496550808125580771591102794039438287859615345035783936549020222963112177362318266952138501141285700571911083611587816026874076642438480699522994325381180818559101373059614340879256800777793697569919039629488294417213839550582340162344699245684496454325604413417769434605720222649970429611940563166942326081146454704286119878675605769561653053681291221115390464131455655542154401740659709520818999865574093040079356201098806746195732806263945744663807416466868811152611678114274029747277279098026034634852703582066832373484747045145394252973450842611207912332620584145093400037242989497553360175396653724227980599077118724668028751708885593975096836354411686469537584486305478579794675187893558800827327187920771420232226171678806881020132353059895177404594461909018764036870402564862184489513754542292133573526475079713517938838202252604460317496250542838004660003847642211432520393924676608317909390734682754805428671652527315338896924087850403839148472473908822096759970242735646734060428044443381601145685793343757779384896686833045058965576958917548651717449991386759561007551718358807861471638409405345550653638324550886519548969842289853204560433190002006880213215694361844684595462478778864213553478411346450349848595542292790302814319841185036953662739815605102072634398364861231610664284941691524861234412308313201736135089154420006622371325934716008105503919872372112223908093229346280030347094984529252995423030576247952368380943162516643856463032418842775265223919401571133857560784613276399307298869073482271412259679797041873239498531565174676706013093645687986872312375087363890218467676913059893259405288526001530227391000517252419256733687582024410473130717812655211510404620744526001001225064043612030980198191914933839862336594391764307582483944008669302692448771810978522753567692737802425012198155638222422975858900135018748028025694080288603269136978905684254658464171378539502102026180279982902142939422699607516885158921550342911907297958624407418676462341702043161316301407996409311831891585037002984324712451086232082911380036692635921569569550470056218434013220222316775549781169977009949659205249315891214832850870583889657154946718283668191480335273649969329497649293705258173331473942925798639175364599232037765621978253688382083638656050625128745896382487679832025226842043283230982900347996185285028052422674858737479446606826929020888993584475206103886999629450632415970927281697535455200938138649345301861563112193364614570833754385911758910671592078271944048430856123818571833920554288638072340646352981188553536049147363303676234492597022788025332338580220304514682144731669206958707527120662598463741484664241046703638905762955419173004964765565468802209596015981615202224246311219659311852914593327340666420853203957904432824406585285076662230159096318242317855735477988442479224436972030280229251848925994261122594908647319101361345351658420293900686254689992513902586360928534509492303158530769981066136607685051920463185703837784833689110192103191670298060310200669414860679961135972093165714193236172547248310564567948767221476899756496170887919624612971515137564442698298238657653813560943579279558633858698427202924954531146183516352307142983182320828604860040578612516441085243930627134567002468264012195087107857197259226357687964595145048979888377389618320901459879584228295155606094851017024365114073365174499707298154292720353187742610784669480183096723021463849153191443323028145324596439025036890333650223797811734623339119264529819090690107780662698741739340461020686813418895389775394499432247206777067143968251594115303204101594721155926015088150821196291678204830076224985461081006769506461469851723474931138832936896163530911304431552615226391360310847553934586590433281237311446276898378798916767916877741493606366178112293484655826848880415204394320931348140623586526748371485849887573803142997312902276627280146999986276524219543517191255019463055220075852224261215890546694927841669736455587743081668917878063814392085580834560243562422015546146636101521700436061578045616158090306644436928673149997425486609828840983937465155770772074374228820968005499656482327658719452802264077000142780727842185003854795966299877477126092205071568226524356208315123496005267781109878003416178649595750006175649551341214213994353737885305997669928962693125793840140675010801809781234019870816004322140200580558985014388132576752109393579274723717202147459194642875327816977628850207008502486800084055093672645239929188070260252772422053659898804572475671108997602560890532514138729395790604320951831210050592313284009408952756602083372098269039779705520831956205433824748819914366991986684746747671594738672163031229454607010687557689520551643782479711927479372283813014332238370782842562069464556429706745748926634266202175040707275637718439177466647371608204349447795184785227249973874265277259987080094584869427559941054111401937589207876362757059224278178140226259359749195471586051762444679730822494432841324219160589465829265545449183387774003782822082866667563579516804896526211929366985132559967229000344402264799337789207265318107772578970279554803609394173828653081784351166597415635484079251084165799902491359109644967288089913956371223600043461505127098289892170799615638828701614777800886197880075432818749227798953087134394670922665927556548502757111125142419794839238636138790787775477307550258228559844455594328252585373665644994098776889841735670965864516799993741867552219531379621005003148324561731818020254775086263378574383880414702552554530081652546950537610324964025910618244326669938637931216739830486084458182912863870209741430927698677039744629241944153271808337103804935551958620073742031970967030570750114074452315661688196567463108180202050587149190906417800268860355772706242266713992606441188276688494917518136941442548718352779195918122348420285940376192501347143839485681081589365939001460029906504284103717774150237353685184177094546825560555545259469608202950115778174131074259269356529380005896169153082923918732535353821467773551078336578290462948799677441653976799822855395005723307488056167799823502819367699611187007999913168233544572588016531497197819125939393724338075702065216939169080599092788149933108903762540918158176180770775121799295816357369304883201993886389110268978968735221490670839420252648881977552726872713378805120326794553772279895197043867199168272452059241617366044643278212384979272402965091746692019314822864239154527979607837934356738587736710866883483964218205124545409931569796370604384855947028169426294874363128726709756447840673437674376856385811288790469599886540162919761665358390122310046356326248025683967037057850800058837784799421673822474473458449587108618897023446217200894616617367874120576000350309360658850890319504965357351772912486185789550814472273583128059696629930523245879721196822213934076362783715363517743749523612451166596451479061038946846230000648899876354210467490283891514562026776498646003602343759665759940184459718623906389018404491229982123130422397126280045636294485543768408194031975286648767763372021455935175788346908331711037505363144549399406359316741828085142941598327224335631781985774498166909241204342260802729687451070726311194672152397176971256257923903253924263716203153757928790883214872410735359758769585610105378863720726422775877010938359366242207037146617611236354095069859740582754590061596954067839367337787356454577314179819332316521090890092810319495087434935231275285802909560868493507135114390826986895653801201891995283693369840331903116035583325701605251156770970521131758989316343209141061818107186347344349030486675821971249007141851807405997213962920962459452286098255662903518840304547282591753993313824781999818415707248971655612864121555486171868917301403114974093525256032138893098133906967336751964353129547910939855694466222688037956669720181148627719147907706460006616004411552337079400813734593181005670816665233350204101708179918743098763999424136353667406076399019478896062528189702183974018403085132453742820433230032632328407721014430406029251792412106443204665560459342419346845961079535915677147250092446362986940242334593436948794197325852911610889479428342182794961202978136618329812410758844117225375123879248278383349574352343263804040236092430395972207674131178326138054368963217399484106193806593526000879153423329377168026356756375106132048731618977260474239046461694049105338209913700275401100538139627530587016227005691185958608207442181938063444961150995912563350841509115964052755494021819481264243653842248111917812156614295692679379834689633357049645375718571586196544887097249014132648235241323264644982688689516289647951481267332188301729381183316137732451174415912846124429828946967410353578692055586353203446809340081612025976005513917254844187953846594487063400872869150267735362350957284143696283581566668589690170327865355086289531765306207069383482032895321514556061611214313032791947569227546996861297802534849979958907559533512881482503419171920017622628149679772204766599742325036290385709327260346247921608406328688465631585606066014780425584430462035246405448390970263193773020947392625864488225658145538848720586439679779551945676761170534353329604946073693773964152815384197483037925970516318402846445771614457127171519492980786248600229764183005502285085644670244826595975606133694872042508205076224719489159429502082426120945645251677693780161425206307344340761565152100150128464318005081346481973918715505063352728376104807185636950461343271862499265553873951505142606369215595185368262961415873976450254580055806124546913870501821146500870298800594048326842704271574367269907333684362474091942794935804483500751163268886504440004921590811301044535026580647895495125675300884241320267487584722471095136386097675890225129620578755449130344238648987035185336710055371939853685088574502293393463214744777389873301837157308702402536039918045548467021110901512519353494053636597243742100824012923749907568343089744094903787644165237877661079122673417880194247526069438931251462798910176159561719950725460011525296050366028350735555679675569666046738774835806549236429034882190419283691231182112352557718536828401197580332008994099973723136624745777800085498847565911271105272842157378740547856732427606168397253585678014813416046311902967571501993367883413515967999092115144080019522118646700407777609156132534635914262746468513983760316083367875669431873154356983739755453261530420659431788002760355984987387684036234458185873067950214408666638437757981881434939598244802237465811022942994536307373573351793226176259940896921491166922632185167861580787055964104025776630224330898681746313218659844690202956209360232648234539347363683182723339655915843217179422638367022828533122406040816539814181383388946087565991693412278272957695025730656982380275083929255307155782381883577658084118164114506598363572636509674388420319609346663339020862427601138483088859132343377720741610295076246962730426778542744432462562622848405192330752210461396366181515662091953686587382925585839700173381747326337121262013527962814894372028791933413204696843825114900656849115037682131268787587001452423663974434078177516866499733255345580851279614788420014922245502932261023640615214016049582916389848238016244351072066015594653186316238403272254102304575127673170810434311560387830731504093779417343393455203591950514135129712616799216483302567846345666808486457992478391132069354768539371494625691679992359347549980959950891167180290004488235136941804634084940090352849664439540045199196609172300280037324743264292360651749152158081787606490404141186708024799968293166934814380198267177150931368529552015028830926274343981059442278670075770784890936458907722316315045592410804674949191576812934537105826972257587242726592196616906012228257008506361173971863318368186575948879172980898486456905072020220918217983052656004448897068618492524967558220443013427199534748057883355786275807039321731999701546385516279857873290968657017837117409274358763424074267987652469492312752034119214721050474948050763038979740802635227465710084863235829520649237335853901451263885862812362476584438890151088320043601837663791490364245232684187828840032966206228448340716085065178156958054451574769004436696311565707405041069008451136891220871763452068588759503667170180227439749484747924229091147688330472897534627809231198450399990307670654493100671447291587887678728528080674032858259650524156433835799226073556692051542137227367530176593616950391146123516085423816604518797647978405014176242642358874319066977794870570576106512430408730524662832888876823804404165805404620199617451728458111463598024414751245744576568469513191454805323064200291376564513215500598438333064749266417244466298748164133394899804070063119084231363724329017804730298803687225593049845739124170814720549574864776065820426183185372942853194857138003636609765439484994209164350523441670119814489620555438228332817092626439542539418659264344207882414700749859911208275280231350346842328308788707982039576405162034656770137007082639865593281787323807764076403301558404507215028718036318365560788412558484961512915960937578590071078009013481040621803662442321054681378404250489630903021864348454284662971605782194724464527793592656523082633239019350894443300165469546381682638930034228733689304163393932996638043759360583348968231481207471969179768116527585977616732520078158498991684433936149196524229181811686541328410512356661482764922664690440282230295703350278444479505932408077601937390810991360823226999064374125632618548822496990903537424542223962633355116781609816066465709252600340392800758596512029709993901368071823493332467393242389849897359681741940541319988188959212772819482027636716345568657457462633167500936526787113667654038783781802068551375603904755164227773407058901954055148967604122272469309671058583292370073411029697206111858587969070748970438578367694765011558307352728305387197213217476321482554160866067885134888862419292136949168301617290774937749417648212409638948880241357900639199334834282342611404530537001295923216571420687318613130727168229762473733067210116359139216296618590677873637757457500310744163819140330407396447426085193360217256461150158295546950440040547723037279345658649877389888878203305212703335389810804428866534999279413767492199920476406052290449037500390114401577014516918035715099037761674795844013073541989345519039009044390141204677127711972435449349492286151284349018007908313774375355774775956473426795188774008517995649293006346077455275155933047795430114414992342072629958121028885281660372457592954437352627097579244336241398876225611004937682631564766299140311548892519710068681942655296930482727769267656918292177376106778963993650618713809970255001814574875359085640735788417905529315784986890352363846663648673511983895560658727541051921816892343417314043089785331076624255244979457841604040856684071323388439039826845009073579392631008978054690707503703091276686741222639261737055298792374251831837813919936773911445395653277993289372671416302826048988728749069093549666352697783090434823772622996375893626042037080893125599836253003611308011762329566394924377125439437743286187544262867793885959967688013635462509362731373362475594712759604478112682019891290628166480176689422228145521740026164920525420098492142714898462800028542860958978400040029571962964850123221025512086579269592998413538228515783508211441665440977236768917410203642026128891588685592568618186486448862158845930937009813365805361725496753141896744862151838177995317657380128290826413615020052148447846351386622411937106477302418351449712122781944218500011621521612035837974001514850274510231848364794827247293979315645875979545523849361290603290333317292541594239498801049382796447339103865015619419928045741366369058569989575596017087486852608902490167502250518114857014999943272251905878744242740603377238054362612645053799728358604997738100282295244207263078606791066983949750175825594782100618822823027476375608550979272526657410022942675655525247112312901923607039777949341772708217857193091584885879386936277842839795167367529150166386542290511658895391732502921234341822954374364678006065447749761184325174782614536231319724516665257764763560022347630316084680539931208905460593220417762755176629761563732599022178717204353065935810041086172713618891720418612243167393761270052563288427586062677531586279180442406218103634952613930981131956257346712091132319558196043684178087526942535949927248346608205685104051170100540732080110065956030518191016764565901438837263627572516104500730091384845997186682603767199839677634029062436025652996846072924613990337060107689467166921300945883244405630007999243516448080065251027599440185301177852016989218489224472786868632397377524109520384596181137491632770467209584992047081069038960509928893846907844138348227644462010329857851097297089385681357377913957603646342741266811812781869413882643800840225606516042858875740497616363256277850267009392739311673573087478983276601842134678866421387402596348558934323257847719965847268978779518657788911881553233503036038580219882534319323958051632777102553356178908785055974913322005959272158594514968516507465361430173575642630351093081352114094028713963014803366241355466299661456854624613339110823136941294264145025223587803072130338123052129212615392729162542236947765887152113377495390470266952519769470447457227431295060649103535116066749146742284371709193261915563716441983773093340485075572625481198587362812771684350104108259214582230711982033743509450962552442471226336442126805184267040636915236466244892281836787045283650243075232143056916461763424738954463767118549629285070547640751216472200000832722214575255168377273237892475088653563338025688280274986281018597081477339632967616088286948995014294978567880888384746260818558833778576494766959277144527435719392166453467732176973518657688787851811664898529706343695437475179729546826853733590785037324798805662549268833441274197233136019240574460702158835238934911341024395228761428986370049503656323381298788796409630220829127350125997093727862557584574849204578790078682527737325281198650780101106154256740502954669302120132443169749446688483659572851633786815366838515487890390960168575373619371028245840341453176471838898359811377440501249224264036145529344828561051445093020818820404592054539049940892755268593352208336168563140669668976011761482390838693259155201553300673780204677445295440526227196350008806221707748721492374097743428167582383458858057979058973481020261143948394157698057828735528513451178021871011613773064216110543883103780867357524591360279612044492033465988434752888436915903300894431911775269588487719067075623370672283609673368839917813181335604771195557892294135000044982701728355764913448082210615727941373498422281256802318212332698363584297020633002891848537761582230224110841393189429230646492832429062204647752500925606643991891027219975210590838767849552775319127062124500638007175484168034299916288556033216168328587765486515905396397706400145962117435944555853434144400050908435676928720997088418106635355133745237090976581919610717870468192312497489155717632919303202044604174154106786451540394004163912854174150076063032941415034829695036346134857314797721087763167500357042864619810655395640086216072826297131386353268840165060325621078045993364031385013469943554754466854420155791184455644997096018828236656477235578517371869057161846138031883075090456822847381020158514152722196921703145996001953987656120541136382519209958833559150438802541013047423462216655449447067844286699435606520980594031732626745226438943847954825222866951539825977385720343790858979498313375618400344572130487068860734655541671428163665820552410189883106080645621473725378811122452052808418410141546027340967494310303854391381578100999315539864637439869326770292562739237240467219220168607468234594429847420482732809815509221623008836255815854086017681195481127204540707315631573873667735951650223319673405929054686417426146655575250976421753785774507397090457737180367873715506965035937700316288618923061797162326255603795567452172294596170998717351066226632893852586811844099902223984259617910975655946845416357793069297839249877217360341894143858127186150696246611518255473016756761701871253823051099630492000424962392505091437102410869144254318960785498593772024361498205982680240552163605327028876495663137631679863260064397642136923397764551061673500027511305660211594811691765156339156812560792405521885970346940455865652989210152595484102512078071283234286743641005660596822505114597632910649798442306353710293638170079767110047438392936335961431970325366296620091044528220471314310419780349320920597313556138151469828491975724612154574299903521401430269401854611236065511970745530705864944331206597790698637819558080468864502586196449693775955945348119099346724610152921717434249520914471110253135485826892898334026563499494740022828379792462551960078904919554328313540307792956772449074043835247730091220251159503121990048123827690433412368700742940909219223816699540415378430874005187663086402648368656258967218062889241838748187596381101423427845703817691587722207364130595620916928091282698038932285006720918184818983050521117290372550049906548756357229314531896400158929431582758811476741107810115335801272879795759778758677289278016715049133678430594313488232866368105655455806108827444686434417020054317140909842124763065794038446441177222024648116425788595201464404296874024425469112443587178435387954744684283162303781695467275327949909013254690611877013499198193200816626978920631052155774700653601771411110865133834164210754092979340629305986988224099813300006682135333738572302231081973596993265549931798584148039292529230511093537684312602581129370728192457028172746300631696354925498982492853803987547007840623063611693989055997613577359924699086781359544393196682006342590793628940844640041039243605795149034724352567237805553743565838821394571828531090118724501413353215636958800322812248173166441016689852463489084636923246851597569955528611782746258606570286001379127843969491599753045248967614880717471736457443735097982393504653474858838461532430107751470830690709613981004695798334298726595356354903506266961636066776381247023583675821930571880799205556109213297545965237836355115335768711597784504564171524828829693179067576124319750456216532998538858476362954894253353406628292604456728827002719583460169001204403041663544410455970736138934475334851329782472947964966075959631372080209186948232096749902095707747089399199019017949086341817609958958566087709286170136827234185124426651076709478591550284661272242060827912163016545005237830916947450104204310479162670162875787514610442552865907726060728591776204815772905707982236127998303162822773521562686908705357274197691320530482361437558555819379875643641505387386740279379704408973183008809051768973914185972122450255348350683819250253309042479580554075746504345301870633679287168027062525349885623246814485417300020105011100675409310572342609387951165570660078954525676204041821137582069134349018321104559173098911251140496168395414125563518826118634807503099399251294162947806753440078776249909109351412306667581205125369049972461008957807796375219558972093245084660975065567619390597436985110268445382067423424113593650312189943091782745583016477365660408986474417922303312885415736917849767126867156278181814972734461964500652446348724739439444154449506866893760350605005291269375837262274722816690141158715823696647581511668437906815444283568812065137214719686390867935508657795948577433368512692352496591705183848894615891629045676994123031674156947993078587266802468540632295161409325454621399898966564273907171000055832729996391341649654959592276008518842432497290753651685144320316273777596634996129326881015123245952135821078381991788213331589437702652565558535859711472633409621746662514800077766668838135911952306147599230084294923300539819545161334631379733772458296653672772256698064890737265806096280033954968417938704914101893432873506745155619900272781200083652234471297383470548759078312451828708122855646480866760732046755452873476711830224699242459362129502094862638595035380366474179473242250201162631234659925786547555946471251465049372997756368715513605974509722173615172832815559538705633003732004398530049649914253701140794132134516963313306826785510763878608226664030483685295175086816403421588254276999500562138148373890862934778679265769659556324069044568968529462795451164453479007396840323250928937697141655459289335194955501756187600302816286389795414573640784345396302093702352067395210493754881593854622792629799964656460248802364882203797482846098860118124829053842695569254118661037716831677895796576218389937803312198597650375288233433978394295959106542106501163494377251725755912084106400549356087853933726001830482099635900840764818755066363880621068934936360799485950991557196736367396414351924847490611124399330999612047761051339270958725292704750750222853662879085800572101258789813503549302331530064701351312045250056591484045772800379021560096990955541987569945366445800369273932423337706312753136109399871685401332007150488736468067225212363946033199298228534992902231740276128184204020152751779031008387359757057060095609542385491702196562061725997187707865040568522847734808626496522935546715558996852161893702768095479372718688213626424801743469982914942357126096153274515677981896234735120788232308072659190352132667547204417318531662042173698047411307352049028084654126208497497880050164390391715302337128367515442967406119152828053703915349033443555373113368255342478524521310453365630690097661255579744056872563787993035973901501632230704706520839132151109279724766931975923566301271707833297621092290535907778604262844467153291548163131876103637105376163604393207226644932189681214535947045576415793214947835386682762508840811367422122487892647362140135101576272018134849659528035840877631816474173872314418605885014141010324430211574464018988010782856580411198557160955969233323277844543549199008730284963118204286988785026670157143679908486351603371244721351720160310860838408705579282806530262719643182953035461702721371518770982267034556321333219851280654223906199238792940037525869391470252364952132648377599413176533472905821949739334479682671200673655707716247040947654358346581567410630905944259596907610222820776558127429853660513892047978442945740193565177505196549906124979026777578661779136843736938491067327025809558310326771833692136571340502917542741792478533829895987012347729335743995778402576562835802666323280104200684149365627158311816684535789099085657498889432030100662525162452265310869062496203660460911636614436406746146136317080741528567463739862064850478684650848957963286133145423344801512255608119643445085278289295915928628384703570549019350693608336589352483140941397175902182233574944377113824423046398894537385326136726533230453276096271090524157373159954139023814606898531257446802178996329651630432040055842159690974972682588953880177766356324767943645760436304581390933508841837272745280714271398517139108639267747166129672452126639155128354514649538762577142003890872129626054021005291301497826203325953142364263084832012213758208054234647012906987035220055678803814462683290725399037062314142374940543310468176941634284263197433961600743311675849703659715164765237912504445881596062656333767179947288027121390460637635219972565166282726854798949318475708509552452419939495170085760713009236643518873946225943937299200910360338308066545621929802387956090867433994325115218074476873031047059689819435997018894039717425183952888638727757268942788429022500732840818664163588353991815105042244873150839897891878689575745245138598184431693608740739679712693709542428316442984417472951577834710197427928206281452392022761684992216057609951119812581915108291839759481556723986033970616641776301093945758832944231121087978374336102348120955352310379703239005775012534354630089162490303756756944451356231052919495568338779356853433208147202023618198021722402997199752453465559764037869724500830900589716134828285496817482131284705951890024571853617615774163258953320268649033900660081413505581519847852324816629832166462427594658222531120941355214252474926445868295600009105300325335878162661249991115545258701314874285003301879149684720402937741416008130539497654778879624619629914063921676790539963244711981112627763532039507510820964037481624206275945898282389208548714451796755312248889109045565714302294693357359852691142757358498606236333669885751242048640048605168304672555908196386584964421583646717072855855021155178165984844647981608811102375989308115495301273826647003801234896010071938210765791745698585949793988595261521385103468641668097757189603681391595160763033145016705575585784132369772787664631053569688059267870180704994188025994601294048306530303227946312230315659582008632537304938827387686588871893770439258771590206499380904998964343617112757719127216857602428211009821467803722091034963840253266762478419668081184853165884320017659112504240350668656398875359666792654067114057178439792193003003540598352118687908066885767733020933879897204252401654340639991351549237181588540984561155456649087199935816125030662961445750193571310259646409624475414409009517136352876485219255631653413657106893001289550186950617691457142467476716261920069816879864158034738297293930102056297193815137900210787100746816744048910796225366456718226177843570513882172248171687034081152279772115432453483395496955369698296514813582998279388113386638748936215790522429263439333294725724023070060829706434825530425365916825219968607285598838610084816254421990160222634398179469415211787204330359270266827618488231592813718859954942697838227053298468223487063650630537587817475908308760135077480340976917552086849718811972171648549792951898483965512512276853859766418885218248281268487366078648112762434596196239636062407100003106886927564077157350983699411005324438139664385050217285471448068906413269937851344099876304849838600230853280379382035753439625003007177704733769688041985679342274945770201516144264184829312073708403518024049562506463625223115569349253571806439648837512575519236540405866287313354024227532453903034453209873538300920391674839661950133995654615393762238594833183565597180239614370549045200635768821519534796127527469129660096989589019139444376521120081494006491122098508344067516805062104167467528913686476968005824540977194668542122538065263280142988887928427610266127157490849450134914169042164655198755551888457072273031263302528774034755560051593048004622050180586292752891349891666402285691720411369479884907666965790909388705725716262629507947202089682557668075259942486436344181371017227569356678787791203823112209257778999086808113425885184645968230423270356402158990066459486485997217302321080433901490463858709142246508155771942743581095301188962268376607008904687194268659359833897279508682819002571285373580233259705812224992842215998095897350127659440455156662905975081397212884617563623713499754699665840810089838147383028667083756714843092034939012916950102190587571370993699682254491687539077128624826219848569728182018603897687680385222052532634222261706123803304928436734074329159319241894875481154984594945052273760988399136988580240194390403587426119582681401198514567935218052400560173976878960280324562459134073593297810441262960892239385201459209798355637094886538494901501670409450334571015647866024656956449253711695325659758448350758919330248973554169670480332312817434963614792826384390933340590838969878729489903954491840091484402697331386759209286992440897571791768332953114119655291813423426975852305763321924501306897470468486557477943767883257012870113840743062338956976197456880982651500517431724788353378178064245557403542101006082222836160638643399313504408671119125998252507555307571573227414249201001779171098553834587593266442102114521607178659329710031128844467789359645985500589973421712637755452560540690578071913240120733818137322180014792889285393045274544230535681213695415950907803518739443567312904897579614631893892774343863845921472577350500349077775954221206394440793990476706724642573024575549598388874603366243983859693777750249000981899291587437012794574191235894729934622502781857678507415233323739822095210938371264023953459591211061680659737723556108178623622515282908391791706647081787699672045196075416287281273833803795266739456563774130163752703681192909313346942069787246124782483302611596051780085331857523854742285684980856413530171314997213561233109730676957045644670399155143865205729519914166201409227795839832203003959545266509177647749228271742691421836002847801858492659390205106622820117441619113815672450278226566733582997863231387941499233594863636544762260711563423929831175177982787215817850911127681070896795917218546699853204174330822806835306535026671115514718247522909307927862464101209931492052006402128675700042828913505494606923362918759442894574023567390481775323726127446100303109232974481847612402827459084801880400474883719110654338503730715633926244260159965728860441208776699156923259710825140139293051993394277040489612775159034746225699131098372829658610438172955153072578350627447618826461689189262462842803060220226650061291841134020512774659788058085184438070417347525940202728599530205825783443006350082292021693971434406254717317493802266277896561909421905598424953343940599592772837674029219771995691374017029405821111859711562957899079140813493309765401920634641851016843674068632072544856949783540028795864116914369135816625383113722732311928454901376171273445033067707482083309755179991820981508398103138784771647310161596360904061755867863834911265165374992721427599856778202969095310624511062324370385464560768626978476769217152683032636833646396492639873002630648851871354466721997860297679716666928249081824133618496241267358854102091571883196076467016955251698425552268024137740861233187056848261678423994731156940552623917606697151909140095483798103080842583350410577724880389238921205896745490030823897963817951028703344719812249723242793058309970961606229960695619017304649252791088268577162892516646137622227004438572174935648722141316839265066707632743745548689852368616124772766121342253520989137462153600227659555982630770846800905761967116304378195820909735738708095511777069052079704572406771510221982423637224646210161875330849960718789331788434654045527052910808917839148701697376683000973209219359610667694236010331668279897056394244490138291416758071709662690774991039139686831949496599100953439212439026308049255378501807921658021972082473426200193190095472722437776160939635112971178839535957905103357189607101226407376005143589594970898986033015643564894817055981660989366949308623663201420318163061990585146466991203698501131749438462303330902472401334822716543096970886327269103321505798730932841645328500626703529819359381906076901290885633020831310116928590413301138351373851590194457292806140574794821625172804067811113837197923527188277728145725871694581266815930410911286054117725331423732612733698927637964047771334259025181928245379244888256668520346998356099217220848250236458618410492980401904160873042578508645373918202752046897299415996118143487829148151997734447198975523006456254175564625766345292770968617870956194160555228414596846596291039782838385294434225783010504387996972891226829186310575747707844930708305325966277620128652892187977047107208746820218657640889206705850392326120762333075293902507909158849960191904182703964192664782974682866493405397122110961875364213869064886339879750984222742017589144459929468605525821191491005458934652513840715678919783994112456213285565050016603774261241488160380435123164245455117941686825019699894585359589819072804955928662997959395793796661386699195859050500767970658464001132922849074957445339136012946723452026167642553545758041861117876880335690853816844008947526678147637183234320849173886513400149986628898355539541512504233294748486419787049788518105372579669158839300399384269682915607613680885436669229637934187786951510035263133895177363638238594479990430498003080318583145420330204418319783583367897710106625815291282294608388269777761219974161757258398126001518366270147503688918306455260063249616409418362786323345037606332850340579267583287740108534850906042039007224278345476237766881870110807674431215948040461057188545230396728416300964528888229380272963740834899295050789668159288513367288099918169156691753381496155579045157089542266308780992965236926898913856946333814888163543885533305654282220858216422312090865862370911844462243851051386880320809703787519050681901487912425135294254318629762101228562522013591472782684856196194747931446351853883442897132209786093346502469714616796405339773704694880306163754466006136854480126952084045094971237024338612401934106616326342516804928035159343112480932984135174155412483319984281898467376786148043765504727150868403220784466134789306248914621963845887272654090360330419076043128989923846883749363931673919439674426661998331331835955878852467059754500332079677015063383303496641313844372367425030129775442890515865709265424272291536010145916596999039187286483270906478497176239349465213172369345422370538992080142302319290771432518426220414716492101510035372450332169084144710965412242027180979105473725387197594321508389192538902921468057953416134125821300147810365563200454443249648432652187771157247742005444238333353132943043121725660722393638552312663384052728353676346182179023878862395111404384200550289794710205825798169228062201294873529491588428071251174422453327886179856423559536140978459784440311101150611688094114758934140832618898325808363816957689087803160160373184930838328019661827248360708124796878598851447822346380720497769271940850492420601841430428607832485853317397122650338657982956879135831329931432980851242755686500378757169613772785077715666993284072937274738146206453703437088704159718333861130489706398461006315035428425211669088241694621193859252671264752019031778524734393147628875685032792406328694198682311997086546771105517910601658567062426715793305646380076072001972092468613975772510766570173933896512557242006755994990428099121922406709428237476054567380500379201272388373571643586729841389041566802321853510178311689960680324858374784960605203219028026937849901167052477485822221250558812391851032063903101111652333738271852522284001127837520013323510556197952933930466202412348155336119029024741798288651271335550427721760131463055149014793109615125158189021931065194446302670713752211618605374567297293163521439596355863838361767330716520382540363357823292872343087947384675323350729787765760752478362164168214133735593070282739660426402230590398252217717583716301212035266334861052722389242079004502749106926565333492210021571238845963986586476173230447088246125512298265075197663161768044289044328483034502965638968938897945821769741668814466620929762960230259094948947853775855574612473364183120670046437004131791739625752575592896134478908723299667399120478106425482815197215610177051966690541837548624601541999441970429074408999692855840066501347081637753176779602877679282488689005159128039777198636257286012593644122638286012382711888377355372886898227999063180632154710632110304715709099629871588056949211720503692885246041043550456544317848955448618850573423288695181106820796881787409476910341722998924501124361370889345289940932854344384230992047716954347485088424705558209287667652665558102804496449412271247469775248033239570915670526319481691655153196315541718248762986371975774689609359265352794830290665130995151558873039805766286919768385774920237717781811131182228244706951897138533794224379096837626122741743360933296327880633734524057914764233079890227849524793168211713802428445192128691484334369299502031763259463373520531524714386951087731474077988918440183743361180646664757029620376319257840230219194283519239937085391698083152175728699556247305298185046158280730923779303155865040919875882905471316261660640658133781167077257962682727280713688448079064022756005260659321498079945235085195416548505158633283343842460903291991004816203510185684101030945285650841107244992011033848742352930226780229799894172191470713556428660153650714728240872864934360062798422722785263047964320215623967077673813512511238041401778885422423390928229474361718404767146804594606232536541793250758162553781166295118439867254856183884811507427719676498381589309744730867029872879728760164640689466429557448258631575455788391596341953202590555142966719086025620878712509944824158261879293679858343897296527137281038701665498736143462630896902708319722123820181608540988770180990958664573914343856553285286168161653578835686445003085305434413353722449271541984669548635728427798973644047223667543559336606232704444458539743331697467938947443544808977265952930097891307012796690811632767457363852349053001399845950482582006381600608188547887372297710421853055714213683203862116335464741312629069055433354521261562639277519813508369623406878401867278477776888241500483291004135886323026350617480308690829183557873557491680658636405274940463275091337980098040566699429264902633778683053556859590525046619294537423093664002986941287337493150006992345348337554170131190434417389200958952169514778521421329118130066410282300709312200809149607427236154906278327260427877616389227860753560922218013363527895470522938565963988306322680752510683081314360138030370767846538846531871857294878068853220281926467118114797297781014826389528002270085189020408795561976505538938215709679656736438876661686001066541573740411396135026440900058610705663479130687064410698317842625110161058171955007271556237871247332571981239843767908251092954613082458678215377342644946716960977817049390269539921413106330831275198622126598688739505432762436113538883925543414188045143908300735123125602813026294063568006757489637403297134335269690939180432590517852183496079448856540915307727705730525926063560052024152917535003312006059771896779262961172217709833963574352919619302260034726037121544683549902410679691037650280407130923471268306685993707621589656714149203269111636274663336761487689433255539801315634631470080533873885951591852174888859086152577097134339954868984316398428875891588250904075998996562397303620075999742691990683518574443759418799553144700348336119507286025232847824044051464731977307070651461030611594406626403048818660569771034010760548452221233594870096815045910892631258426391432158122678320787170336712125532892245680622838325087012616314892551247304134313368957607505481872607825909066655489091701408525074474919740143141413643775575051978513709944871069828450042840781834309677318865935922056517024731069483460672039464814185934938813412703860622899958899405247754263050741788505392066098571207218200609568961340155126631913703784254000700364525244760604699386847066115225887940647725966527147212081252637519603267588222277176782603952285801879462802455605005453233994425466742395747260270040765989432286286064213677315455893797212797286060837945693665819257876345539312978492667548598006990264815069455353306052005037737191144224753739127058993048617717372897704657745532310988400342050945758304960535860220559279001914234364222785218738781747021918178658902336409738993494414713694589359427944923955127639706513420192630416144468888653780000996935179034573825252321115294527842125188131235353364441486295428592393977167175360413431664358938717955936427105463065581469044777287767133354569061125101237108271482378329685295549088134527613279923970700848385145538792295192198128648998928599388918970510233241856637777089618358159452629187821041099688356126760511451060252515126328571857635533082883659090006153122400442972791879593955955095715993961345438562231178561304529371380784670005209897290854600432418451807931356356633583576377694400209321042135558665552712508426730372303639900010245925326725386460265325126506426101317283917769938816549259023938197345158319007238781428044128293053969205217037498714812415479329156460276160370025253717788824185398638983267230052686655786844657479328620772820661448249548347426513470010919474047654931548105418373994775040920831410035562157462187526182943426804422008853828967833115259941471851097024444087521098784392307134495831004680460809154625106123384675498451368518299143038584979213608152934236920812891335634587405333895613674389119067121893494509746250635095940159192973356693899496574766706717009274871227340143962775881032929264760997415837260540968229605900582833848347146022108690725376834498962406305191909716325874814081225528157034408056732302205166283962020370233744675453667824066357240117008879797161447303185053198239794848467850426895878500095837825573356871139572796087173346315683628720773128987885687532791493764797467965931137815025576967953663371237631904610800252919801091166211146286021565522825187433758300986058152531525639026300270483997961199752382997429197054640908590258146163852640255783382564411808610262714509807253600992585706817662315298582295351148414848859655863275440890855405448003564687864441768504740662034391186641622504333125361912091295448889021177986036849476219114983432524705329259928925771878894271804342406338989594708909760657418479679484545861860286172985332238583086228933682948660991296425683475458753994294403872358958514828788516002762907364107612068359140407090806563834059201019967181463574789542924471567552673434115161794751401135625080530380545137953631263489018662555439873172722518357609590566358582912175977041895269848448324951666422381834953662474965795561779651269487846019140616511795204824974580894331926227428114052147994085599923351968107732713676617768093868471230941417027605882337903779083380776670378895958826160093160890853527785715395387410791265480590759869651271368919033587732100386554969771944038890199846795166449038979641474803334751589272514925342068058006606944923113230345126617307620073616340130362642743051659997031587733292271372422741735753158535057457063671929963913046859699603259467757281518829480954357446932819082763986791442225368078873892307484155614420029026246908811006413170256850368047173140706441328459520025562935495852087888667704032803070126763628309986843961698625666876342011736747567669971549004278098378325844608290859709716815657493302559955931881139657393761082687057496736298520580809444505652406716844511846900798788228503398439734002526403844255698827275724648027033034446168784996024171027664800573577382560358998296092644862920401820496462425619106639177435995416345767993210576577927632560713633861424095574136139034612308727759869765774727345342763075051923167139268795524430194834483212929895113802811326536295050715646362687617240387253534887203025803822613009457284796601662897310728865768897800741297094052385501205287101725767344715594978968098322720137604964917013927797093015350333892628752977768224755599826588700475145683570993020368935113989925037518823234691472955276744746929320323197397958121805325320231885613966137510183021004202196268623049879118519687245637801312543202431345458205088003260173652947137541719897539210926850080587676266271378567149644189004848033286789950576981431019497687678644088491011539434529047459767335829924548432281222760286305097284519173906290860776946391319183965999368210079051777876353013299923424424833282414416613877724333515793263476325022971093289670930980404235548998786566459696236527218738400598706564245612966942712125286313530806853832566844107882037106522272813772278329355230182279289961953888621020137265754469051463233972421948188905323620715807866137553891623384857489602085861348299503190908782514003849572547127843484076932536193266584219166950405345554568938144342154698168882341948387251172211675989218703307726410128338014333430216981006811279506625599285591015192655871676618771888131872609168363258886675162259985673465202603002998909077479761761503815605258463197448089200018681785452089839577217971343268407798195950850177127371961789332999866140134037866605102316629874589296628183505060009226200823965798440154716262459000824201443461088770460445051263345751179612335895148303322291020932759641284704164507189966888017876997567538630427384076494747847402855438787821798433087345917745170590557488195051767460750343709769108079642960252146733742206774676685377827658692967178265934854880987821712185410647027858559136853818726427362476445958693860537003930853481200043970797847132281042857097834830223969666488880492761188247094356145145665614222706520387977086893122240443905208114247948570963114626724609877893141778117292149355465334262852451929626294315237876293800273860367526116197851119211103211818002790090989953423762527974444951836471664346108657534900450944551479848143840919328657733087220690566273621671353053863012550296281090870452985477944429497057663439657454074972439999315219101441464750580096208252973169623472309354156777936218221689013551009510367473483673570140091276724232922562547553320566952924967226768660609512123773792687341092542261614716085506840639271069125247931828171451430466678677719956889282793790842763994310928404714354951771489733898416542123920632673962752726291023170485803560626268100594752843533456507038199225276399598936313188506764792791110855106023670295815089499946275283750575317260492474380379090254412839070887692907852402131067080099524150073004318883985848033215079582548598160520398039999251363366747897495830492174235945262068113744744656347131021101699636791563850875413379420384630404476997200016193757859253715013874783224109995268284384973527100830211896836033353705823017723119766107775948938659229679972500933463356419770639841253996704067682702362167542850970329069046522948108845682178784297205613928339164440535704781296086083082464772438051201752789754890914302557138363697459946887943049998191749166822917852208379621111132269225475108140376524291638923359622555254767388303107106481502664788276382889935445089322760534873456486124352304324603085582833609241856568893231419787622179099200011663646315012253706688439764566960979924645913783752027374949156797040006655150591858710168615914865807248845921038000163565185484332312378742108643604268701298082055354868649617941639317385457432517837003724913917577652760602777641208918410863879131507512392640213785373240094380736411017108765957505288834201969062309734659063059461683249375095901946280315288999073206800742988528356741569893499866932900691020437280878214153601277982795103251910869796836202087586591147614801831376616640977986061728840301476485684831344091641791450453154722884534931169173783705267889320852719476117691173450975548183796867864033635965824370407832912416660966278357715540764493079077464350025708336758921533764706320111488198368386628369121653190752223618539810818647855939451978604743095744159469900075430241354164044825209931190248532390789908385013171114266185342338535857061859889799691464506178701245942666401018552679717275250949045673807525550819271130091763947110539632490512845364165574982851613580733015174110099412603558274107793121467429859845660372943294734461150307256530232239464320369393951278550117054505505771163388802201407544729720291201176083703906425133491536857429751875589313550737870669575796121912088524130456818005182728894686804139662246769729926791704170238258854568456197592507525447461625617457934224844859136242413612761005737355311932080500389217443670543054286588992251656002113146163154840749917924699761804591167121783523980869764805479690201008587105277959140003730625454831196837602011349092765047597915866501112155450945341210296179096021507558832227175019213914158872039218695291457795783076344211427946977044522090464524875469870225159282770606648554110736605299158913199606964588248400021411355999064890932597538758965431758802534674354240542079680385923330300566675763318328208858375979282001000808598582076000942531932603728861501980990661410592340975437954724298292192779655741154703155386389774482660162026153450162363677514033629738047522571468151091733579450040162803895785671159391915671366750456380092751954467999199176641146857951791519770775239757821226917508803211798612875683840595715214600645487840324026407261845154636385149801349267179612479119789889827904396998186408330273458769676037891221652195226225624974937931561062133259067961112284826525465108194208183211981066312262473764326622619588035214599195528884308723062978076334713240173068914864881713188740194041836453587421250065672984341623804405851063935688591701588608576094749083306248372475180494477491999144303423585392016314983139892146683073259199372270533105426710094340266520748886624670742027535622456231015698907502080940772652684353086389011823634060125187660323833949015134552660912941963760856420123162707319347067580185281492112774848838219161501459910865037043648562431304263960478758690625142079127684816323275365053194078023985686205164718146338287660187808831410514427325757536080558031639600500293661110870422968942832434924616777835056488393531535944834788986199696015112989230330878424893064111367794881040832054475570160188854061071819676471456800146695336465985811071117320282996383952316776970148413326212564435280646547688981949178335896821418559421456610975431338616868161408090405538493184280866137013833276677652118741194517104989693915598761539406590201337265763893476385555570540195024983466632843492376524098615429982061913668130689155216597453053106164977670293060746402216204167067866904181226605957782457885790120926265482287586843788663561534226011753766165566710553594471100850284121961521671280572733260059530349961115543342644150174817052307286742411653148997117545896398674954489470733002159314491896251201596402940527888740767682261511150886734984578196607432423099249303206785777777753632047651112695081004456902249344328960083261981967551841938804505069524493593998729448642073463639632733021420128048374522554664084577163696675998848658853021744533943680508970091960086255031004026622448798541007787078338200738256171949659563246376377182678697296836954010955547454574372874081743264352311226532495991085276229670883049925567477070848608113215957320194053078150131490362950044565472604433204488170001063826080817183342941340891886750721254110347011885161199488951634521941784925953550867319658511820410419478581738188229305745172251791055941200615942242511032206346453745662915541168261721673826224279968065842513714288623412316900121084988103584814375128079975340433861065516896479588922541503265199676497794513432586540848297815172532868502587583315525608300597549704666181943845406731674180878810229953899181964855941331163774746879403750308037675716755311486360296506167279572628409521609909616737441467468395400708171909265646603655233373888916122170083082448386196166795421864423818349406342707891102137603718857642131412138787696844108603452419506812081042195835745195807703372662719906235399792842470987819587667827110877803229772878484918681117019244210791246642411993178355978091569174109262743412671984898950039104887722038695776909714149521325793658764313102544579291148531990995875818471924833774846110757596574627115211971407300556593572670080324751370479427012576393781937001354873944558468762077550321996221777409169517776035732992042509633775936833324480182333905259423356611034121236751607896244065277646056959473279792594768168598896767674221074865675023050241954722668980444321179035831120715350550643468151240580344762901518188146563861369808529437006784064615678126802293474989539080870712157725288805095892677267639052111490229728805897496828448673064607772472434562714976640397720614800034681430269472538935359576113460421127530867863093887889983053625921771087276294341708224814041251994355115480832673002644174480782765102531230717731918114004328820848740479336782294042351320206602209871101994025105252385474795491850407825616943191944360273812366874724521943758759280056123770307539192238947838663235624692197211264752304008503408183722242955582207067479955542978386084138962563877449196388111622333425887403084664288406912554189275236307957338431757470040193313741212274840836246552209655718107102574565684858252528363812069070867554028167314913931532873049911993231328087238886636042557715503805121785637343158458072375722316981289878859420583040216484910550630025940220255134918906501882628082378735544614974639438643189274944181618009519873980575397219699120826259590193902598778992574461753876385583727245787268353826922084298662211513611334870363139349999937642876895322306549861758894105909200112508206404876706153228609402623510324201379923120905956774181195454795568110698476309480067595871707625436086087835276638285281311194443510056930031661913728487350646002465996636553618751066254265645190634303813836880988526465485778215205694564003720668271804650218748891526741847845668999049812455752435645122833232882173256330368129742492933716760257675410789672544527746519137287048560264988226972953892457786066900782339761122317635382550287020628318922834214849777807359929051943636695811691810031063827017098496914594523651797380116726525301301171356436500551277759521640753656230215907236923685187058929209749934901457326031307898552131696233283800099780560419357315599896685329915845644121098409712413479775926670854949385634087436071227800590756645129942435306697963636511404847857282446417871786544371484889734504477451066508010128857230400031795694266188378607963484464958841713058114044853048668926414130964514113995489167386029326922289973438332257340112231609273417197302796100181813086979133284517589511539097336706292833485308128942834499008265602549896281035165506170083473466089383602967784914409660646298163199481335340676875430759840189648525753288964033595401130930257571477883552525318871387663328163878329074960056406270956282417216285224629769503103759913339669070928615994819287518240291717564494728154828586171669608021150991558581514095615869831957750879720200770082492346915610008304494321040917584872476525142727027871653809395945673431714954133945048442469459553290826792273074666972933075991042422400048761605245965619483167044741219853869890614974429181818208207713832082263039518252930926184120716516872374733277431355043613511510560960863911384823921154389231881542484936103437498608837585853327932666388791004407980944612710817856612493051045069389691360922022378966573571674447212510667445634770102468278667406061421348058422998691314942493223396227585160215201993689545482239803539913387588842270944754521228384343501951776576210823941739257337668304330552916416410444776258683639513760160839084314604447448585860319677911517882035274727748656941027526791251774111777948647164020292237081758905291246191599591109360031572751795689841572733615041397183941135731204064547752598810708760961436254542785287117004806763648510468158461821821782078784523041334930690080301667199130570540902308033050521553920868136408364977514326462514617273281516663724107547081870267483373582753277447646936174461022601764701622197994267268276641479802413579837537263431279734981840815867972014882468846655636811739405840736303108140477240757659414756251903637027866227976215464210427861580003356852341298567839607476692807424340587445755920100916498625029017508706479825713673627987085058298636311585011593654948832522957211689418426847900844753372117970377026405799006489492141984993137087061517153074483201220575432397285436250616892661558404479025469429121950626997438554114275385905974521732093301836108018781244859808083831836649868655996815780830421484430041562047429344371621196258830100466222089328935670581866836623871501988426952434986288585531784700668104537072428299416280196003650539225408940675691301832326286398893220585103715181189148146142330669164735408687817133462661890679157805620046859660186187813909161713489527997757753706174287723808616940163262273560973145193250655394787202533902426658230137704375352111248911600155795242831847622636988447794484903844723668125064990902209589382049943970439163213181990042904405142233183366190477644946941388235446993323476446673755391078030937454296883698566015414163347961448171219447071809994303566885631918669027542743245716183691392789534521506777555065540358873896441663703219986162860515405103094402434585220797429860677590277412128160450472636713299063293592629060546776119140373820363450806788716777085309588125949604038609233315732576032755329253011558166070879485550025704195790200691461077573523989971356760325642984416562507009150732411376908615370316678821050575261046674178097253985617773300077682049308141714768509226829267114705613372678191279597209837740344145569677482997550904224307647747892246114544124099119646534013145704278812640901107013940201562199720255476424362827212834098025111062203655271750752723068600334748263135084043576696960784877607863179931105567432205838830994001989768397081793033592842946020778421422958446756750574484322568439662282893857941229188038429626183398815945767723979880694451532779004774664232678436347230639358875831667051589141422707668994622747231781988918968785022203150811176218717305632218698028816018198038570958644321459944913831946972146631109625541603016301044664479190137820823700655863982881487860581054091861887166527681151533492401347035896776604586688557015845387805827416948055662076046385187815588759957713068512840294723609230884479061692954156523707365254550462758014234825755642208042063938402814577990341182209209452704276904175130625709497383176903347156876755191228679378858570935529768385002134565880657218855968887080917067831160217540459615640705414639410282725949378220983379776945178540871122904226296663197765044143365793722422176366683332202453303558750631504176029824823951127182084727510793422763297860816451129150412297886427193653458549596427571108891013405284987735544529358902818201539896988778351144560875246218978900206322763177329574488960015863318875056314892973485597032527950283187190275511411965610100786520626393208368824496232577885967742468307308415806314152008854252905910019005857689940531261498582159369186846495316622133045991835470877261441240966179676688805007423109266202257156997267183316559435978250116803760709019361163871465815082950554712099355667351176859964868109642850864341174861147109418242369674480209812990212315944907394290610177501332584639328894328881141322817121745530045873881840078288494080456930975163961510480014998194051604430751788340776649403776077562945192135645782269736045554894550112801345079282415827435569394001749938702435541081359841354519099396912100533057435292400887064380948431141990163662020105480227471682904265877037871347262587006641596917030056994592034376608395093706228922108414628211123158432751541375747982849689261651865959705956116073660595508491734085282030193226679681527425489156427378015727992284748699148741841610558105412101896703006016737405957135961190232210786786379782254104273189103822656092601341417535372733538371614392457613584558124844828731109489430215759117197540175537592181061437704897133439764937984431770330836498033731083801453008628290609937848340046307654544184218085649093266538892116549533600959856797561534788698787220018079702805372817052601670108437447477150443465145274149822876312987020710816553744840839900170142422457848560363712750002769118086896389358748735190028948005221698028035371356326823447692600855038885188639760997155733611028590034314248075785455228073469325471774707965057520707717057692826739727000069875783892511355180968345676236215149764542538943987938701212173553593724732355873744957996475886615564758195050882832793952971438581681267680452333582761771466362168243895971595299628277675495529736706224426176999587343251525617376154137540714401673156726190148943145084176287044403898109279199431059270254333683561255085339993911842811507915768907964960050750577795284057371170477552664921838436318056431922647191572600145719916593429186546283062034033004138433923667116198852763404038970626774242165491556413884557542071695594795955603581733724883578732272904314069676856232820235144329702934572597386191438935569375859217786138798150987194035228669112045254958987548718393497083176524920498886320757034867126775138781431095629741514521144280291282499210471293542571539334492157524961133178974186317231821009653463096263921021854874271030968350937214521582802486366775663005748519275311940027748144373477018289895538102824335343874691649638587914112433191548583293890465347236051316662703812486331169670938129538443703814157756416988942091034873837801241344423596589757782953034447840715161332134242469883897201262848675402097889807045877947256711337979648288207145341818377005761027362165753443004585741580437507394825366824418469686364686437542356462346371585118383225046113137887702795240671852697065040110643414313698709085020576012502310165842544376615531947000951100689345413853892232232192141536965849837700261114556390339586819179513115089228270102466670843026219104856960097037959857151691156381550026969965614696141949861010326856730054182515263588111672143614298091266300871214718140797861885075780386575999755767196279335832152418594722800634454521047951426783905538836045302821246427753121339200270737774584251134509184893847722804564959566982676351363053980680054403831853688555780519989998577792882585899934803821421334447046633546717335097724283347206295363184589755382583125930161281926313072789846748582140068443830240739131369789351190283407282162443150352755238690874286383497704027128775523034715670139872587708344578030568322280954170424123147558389446826151133462099078471256897967281071250299640224578561743196308290009258678319947111931720019200515680172374288658124564165916564628207071302508006242057200717562722168078308357659665749916268541102089421370687996032629435568958343048500022929375506382473774062172991751274203967221917880104917856369015831700854032989010541456408111453910126863416706372957318266493608598774880052812179466527623862961884436425880721435209592277657502233161050872358548787099110342440035308398255767938223138977467776356636004330352958050267291964646966291564142385144594543011809242592128747794000702194822169122273853182127512629717423845568259554129789460516525420095156445338906191491366260305179833690708990653572583513198712776590765655652581802489871801967674474991539237037086670390530722370679588700840171528225110616176010345908756203994260141254588289148013593806784890124080003109810305356309608282471321940485407956186099640260032995746828899960464368788696676319916861992475561907718165282655910209049760501564125834917222084577656546931661629400413008830609677367316161080621095991555212740210997025506881633240344062751233342386035790421732303286666124120692471657654682565306050251465550237410940520145511872513672879830620478132984887640910766164355914153087838987307574535741508165460666298440866976266816945098198453980007485977190802056843871930555761329473308131262452977398720531658760287939555873959353298183628924846185434966626939799645300944394924653157971615962156588489744409142293222275576244947718757030984269413783588067027338759644517296101424834319344134482971083120366575956572607861099420984952026673977778733290827320439644496030888381459431429327320985187050183898970291546911108430629505429934958843073552700068683147718662034884510364747711098761541923975078665782076718139002439875420389661538843776050498563645874142976108684406977579547843889390001918880672813133902854051385928026547092797379753306908088854523743719433544873310192997399166612146586347679359554116322680242425236978795936155705541623991559293553045901493568954298116718962987297623455589697219661566533821821199416284417285246555502449011474079602906694399601201671979845261913612283902534742959943448732069965010826530535294987465495846313634250740758725553324774013245421672583621866132436408041948783731669825564493750979907033724899849992582552831796239727922805122934193250721132363886575670905860070945697698434168749397367886599388124299548996265737671952071989585286327724455856387138125221382402959555558518712452824251860251847393792422103361880667178289998516676536142159854237399798686765206262301337261879372673501401856714886931484857191652550024804481992970338750705902606193464647458234903589582804934996206703893836903693087518855770146001591254405102700609575053340916179076922770048162012642656723124494376460949366075092518788166261663344630556698597136482495446877040178372907746056566343131585748316351438108218074910845553807464560546848332458375206403384916555443182923895062248315499221471597682454280658786526615813540798778931844978547429528780757409840768971815680262620186037674287958184700712840995948864875328485146518234747935523884502442732800159147711416073529699997065269782729420415658771546253019920479146593229722256784226564266254921029091583963797112816126114921158221071257520866701882394220690465987957310890493272749461049225947215646377684839435286217001596746147071111393033670233486127028916625533211564606069844583754133203027352995729454544574242658845102526644595337697155248006239213795820325104294155092229253919706322127285364338840629818020522930341919847035332059135818482381939645704579805910497659281668033978476966411922545090311282706690335384143392287838729074884714512777363708361179171111739910799081352003879671791811189677044417599190212618788267221992659310675100684615284350856669594305677591899640649683885815637483676419521840755805418210086526066510731592917620216216689378138498992369338940959257248728934101706159536285702830703147582398184147740036247758057338975870310258498517347413469376167200745441461057147395224201824724265796956884639926409994236297967676350830369821020671983784267148707027749923113457073626233107247580616125287315779718639508508055117068244274649516421498875946945058611270664283611356326338266475000551550891689736014182890411553679811772217702266512171670224865159554532657118747195367258914914391526310479534174979843284230887685254101470047571020592383770885804879527585860282563622210558935089326464529030737209117107241857821958616966447102522535972082534947347694232586353203519850172819740076130091478077616095789118844907150805572502801339046608120716791399707975111905653682689074626643266730872000632260792130056832724779596401924903792359184902555712960499227636888238935890557958941670209873848990556940308506670312942733811066278617056187612399613476418460913813011976971881051589532724142888326890206937595000244652425846845614475549796523914733851222954273252257374079954261900543779635555788712253671216529587056005108628196704621070402251702790726770592108414049324676923117660934044223402622595241392526178964738989135348501845163424769450448998071139486263464191781382741464714322486358666002998185298037216320992250607375098557025671906102884080121709374477155339660220315963811339199209827406708310034424864471980562017458881945147655347645602932226511329069097097447536895831249376397480378443769094224964704356864839462654054365609990110181083691158892111103374325242012360623451767984592036380741793482568204916972805923899023992650147869414334527030866103435395099543688843758898701277568000598631837579860827401518015088779548900117584054942749737911272379187522957674139729439811425376181137876020392991648900821674951914183945345807870242363532001486664721267900323970210888005733730603515714903801994955648227624026947434004385583224513451263131385164991622422094513313103414709352910138294063968196045972735165543459517687354130453906419603822052350824239672066329437176191669919963981842319707824828918962909411584740598617753915869099187395931086740427499263292784526519597892267381777839678898471724969740040375046573221737396625326387645182654184706225304880025795936448706623469103689160733638187731894918771395925572239779823120110749808130573269647430384468115459111910289836505774296636778885042206745027323514946654579822907827649686396549366027286510873038375484488508261938375604198270583001777009296536585427966188915771764890918078292583619043715484097682280028729701066904209408548483018694192902723334892086748864358755955967692478296383630643335625368246069086495325215042426554093658617501041050126237105434123155835452913453141122415653400322596489174818916864565342173278673127737823997213952996377212544076404550402167257543601223857987836106557202328561226220260044687708692146684566334193331304855963538270252698890590099517216609562008638537695461078995945740145594829034183517178702493347772743711362541907527039345306445329209903238485292168033100421046098592166045815133505627906917917808383345823615375091230233385522351689928735475929276189519532913523213564829818360613791134081907151706348818663873061797661875739213742395579295530306883995949981702359018340667982954252988621253423169471937897028326020704452785075394199702045692759663075576713566362258949421484870300551378195988351264047080506861304138058861449470826692400282049897160640107040927879049640057849652306448045232267770314302597437902470366661210625618400660516229927572390751549916898857833243161222903109864094664983142187360289411649886688602138480559632145953378292383679200774609284733670560129129757516386867624041298065631517865824077018139452076955775914652857487463245269317730822572396478350692697826459935539096270967834129955195339196183258859949181376876221085403844747239450845714084472570190920184869872555552380690895796699762294438376375288702625390861620244406420455158133336775686010079729953860457839022220515253901634868141486691662895263328416219036713662053520359163155337032054119459132061527158171852372124338860403945088738114478094022747785053132246817801121728330544735710081169459916744956491633211270632253843380203988238901753438950924065352474964306840976751913048130436777203584697853027042293403260768882123652463654077647536267852773670979460741139816109470712481902946116298345416586398622147573807777696164747647753389026655136439500586040461104475571241692510669990019541952024751246165871026718461309383024628819995839984636061951868757343925438112221179397691440709618421260443313471413470487683801276072519102101410850564903924001918508695289486867512160687790665833372236145148187081754128550697157535005215637413866964431949966581035962266989196477953906897553486890772646778112454618063332919883259287896208764310287998781874138496437363205247251791178188364589347954217567144964308375478138387637056466522925464893513581592683373132997790857390489568474371294042469784465802617310892344657233073694292977167448391352702569051489644986665043901434976124352249569283452110802927754945466146313993111743489289197160768993663830441593047593750919015488118234672600927411731411930343937504207230638815586238751039115031870532751210891843826848212008125669935162807177370195907133524559692979081315351271049380185609471783643412168810896902693113149367986003489859920401521774926444465161208673973871393062619323631117287382326935635272288371166584112268881820452827809067405869964164199752363908731531768483542555929802328027521033618978187303472174473299658392420254550972964282272403610810476436208962516024314254652711688711849606539277538423308809882147790140421804592330714254135000114500852252944069576643060121931325262570120253520688649539825745984762655332619739654376749413808048395366733744432356051600683767287215396518881560528170119209183687284782546367529398472619211097096274467138325186726432048126038252552437653170763677752430065719517425347516311019067342369547030111351027115808607274663333310739699453566590116532744408913959563368333184788982532571596475668803601340759982842428973656604819972177361514522445785937098724111032398433693799212063048119317268672566267886467991398695767390877438995498879523693648405534101450195055588671495086037133219444779260015090731907660953872343042683538950063182406448511891940122884645248669304601550663673015664379715052706325855688919029589743160645341158196199696665607257464873120371850936499275424534163584066104279304298347998064891437240124752013623464579235594722914492604080909275323308829873873495072750296319210642542480269989104725559050425957885585847428808366582841450778772293555466034498325716742753501263289252351875402433275340872969617880492207963123910559686583531229408717053837937273369623777099710742581586233670872160090437800594357071612600208189794156310633664693064181602895325284451956316789680952252898288412005397655793762405156263764728646352788549512785775327888982409601965671146999369785735553510216452399003152365934837076130603174601916561073705471996016702694972142725870962493176558587048004238801815407076380426971094527272850183358359824191740586713727569004977355983277804044916370123972536408587403031532650038777674160114722958824325159366850512652589919601857392657248627120192316957335972121731570660877012152262174932474665211796005554168843129192254886757684623241703966549749491928315012090529028939173985360137975361475217435192377768563337980681639484042628070041377603844886438281706471318424375111750832542441616477503750810250593077060000811032554230642256211119701502099975161445504834247765041325358530396152134487312729866728553632094238231723637627819528809737105971610489760586546778522202148755090287233893916818082153685607134061728068365287810920181309478209657169596920928398261139483877066732609593499223434139761653242849066478363598409716880138665011175627109169977518984704927782199525387486867289991084477343722508418337400541428663696276006287769855652393964422861486621125195409516439655315067534783696704307769682055134736934524662169647642568093106925961885603680958990488984478116264399124791833305697324589836158498471204516173520122971613707486880522575638317672493932792791916168953181255886884188747130565225603178070000217244160210235613291630503648656923705561852917835111911458666513025911133280247642222234004851815516942780727868478793355512648226776677389929071588591304688116511369645844932979135879291123817563342602355778329843777886930248288931028360998852621317009436985729164740611956508519897113677993282345324223004392992617518900953237464823365005842541495054825003586274363656134397681765672285145077863552071417244404597586974908591606966396697387213709391494237911597194409111889554954772253186556804216403053407731086507842371118329471862479224398922339015230746905363103159518040246014253915773054745624120855088906659329336654185085206826344232846418386647656734202854535922907189964276544931450909243795516491618680337460523500196407791829423995011755462830551262542201330033960445624664816752431937812504195783977800808635100468349686760108120520410485281882780321542187158771845557240495049141568957901825093516210659434247411677590502619695682039656577350716894236100503447174893770788951864237515368073116591401993133820362650347343349867931598740268324904913497780647922472394181562833579000292972261090950301450270657662459195478181299299129947273217569543474725741422254406753990707250293480416266212737298613956412580948300408348539991084061072642338936705209287626061388934949354388910468632846896354241728349582962839627584950817547518307379455810403927552738413707719329812492143159612654854089408914532836041611315182311299681078410435620806460963287006556835113997198543801590370878689737576647326967237300593854137853880292341872876900855506701812047497331561532083421013061543802535497249830968529490128021565867855279069001914788783284409778857817937784799692796635127483152952795783459939748070623586312994561120459036225372211923845297743242434300906260895631849436884193219931960915607746548787737777046561514811439759548382561933472644143799827153062249025123674331608779884943536897214803738230836949231338544301343019814054081208864676898827795621038562695851384192623656116860833901924302517738901367787482691070091098532189953037918838851200375296701868109501205134593574955768223886002868613021977682433698596020503110399628506672680361311830535467430682384812623157114835302152936245981039524512940868125362941411958513513971851591237870103394805711613951826898622785397821622433879138797321331853242867855063061643056662911770616515156972987155219133499666125824466327913412595146869373073253322412355256396873576217568864533316271109654580925253570689420952943232494426462105726218428594855858716072808757171453028635693559073867963556134575128501454754591483925817509492096113167086783199476155063838064896226276734356496458683211257776634339727536856309834530627402120410556016241668545869928526252368337034261288459451876096728177685122237316105423634488423610075419275416903417969253480440774785761083933667727510877094539693262254317573726267316500075638118611191180295469196073399108239627308144514029224642110423747837973688941368131628104237668992737235730368829708042267428215680155201046318472787494211412936510964507574829504929222750676222343293584952303510508775697145102305558101403682483416477330277540761928543407090735756047517473384370264294811833151250289338634634124928663884146946165976409233645952721547697149841174359000779965819427192486000742885316338171759995634419005362117736660813111987653204320988680243726372783224930383903651000930923071766766572407867099235180729844724777209705800751826297518738376102342717425118489594619750807224521971224247308217359641935402331067291831869372325813287895935163992335654230891886207451398573575605033449421441039843289271457689545500016539633737089196591514819465740472898741404025728341915678681960040184014661952830371808429101259346025700242608936991138041657823753211987785399603271823388689970256117183707704271728434318442694373658634061630511608877345338248015258209724063169328822472529625764131630823783008025865370453786305980112154486279079537796297629385108198452115244487973458702048064240406558870642616444121175338109008184821687088066956977759427531259927888641368847977047636567496070736953788774183708914845298981414403365771295050899036595177227999527789431259660786517729763267943874831140117498928962831654031019391560567117123350299826855623496012867389873836242026144212954133689361428332895818288873136211824855769923795572619143115597606952034022160112938138385800307225902239960091028503386014954163092852528745324497338805673227396237931582262188378310306333931544828498609129143554952664910022721867355179833179819748704658619262029012066922587907592211717816092337896220710154508262540204099693155464852000403080882907750815019372040734184975524684632047201321808431991952512883985791407592863606020589002466982786096684897568488883858907278759162826928267088207437405350113355113803878979523680509326921439863190243585401148656454334354761319683272898284827989120624290149986181597615596770551733650644571143599442498526947589585414189176839662464251388511660047240392062604004336144484915917696552679648783889148670634495662342714866160001573049869282779278331390150011898493198551439577219562923109388563805748226437840608384156882188189553812158206343335974773797831714381316930437652551907278549247708240907569300375436247728461512832519508251726665595153173724448642791431317764735698156153292796496778100234710324139001290911333259229746224371417039379876803328008509280837345694606169872039693919319040483897557532288644559882205403721954357424663302618860840529248703665087992389176690742926079044571625218121541201047864042265977549734712571568040653673729506371112391603853296014955432159573455940454437401360316006573985760010526083192509715349194689502779755682786802802220119953514208223460294444207434520138513910423834053549353751274193174851761215134322555410740819010452791869911761183914433138375598727955873947864420449291789034471051018701612885071777281503504207787908165981619129193757133572355482916069667505723874113501080570242342198610899355693412032160681190069116377670513288576755227989762352600458845942591983638378267893707740610548408675429912407800824477558672538285030010735642022569043772187551241507326724199053065469240725433186142522693853084168777554402627733897215709843312587713033634454136436058400140721005464451725191798812877663835375907281869119652317148840672163380594168279957061464158868627135225124257296035072977297722079272702409271442897644205979615730104472281082020693892473320605011870728976596446845831669849747665693619018345010785484764407906223132847359351651704342200920505774656867538013599038684744545172751706686060010812335464986775297775488802579017589005712427844201203373511850604271805311378499768416717478011837463850612197818469701191293294489356267691801087645225193817428977495851383387749378834231143396900017320180169176264892727941281921065642092451498193210429190818525326330780424836941637524511096806576684233349870362053330454864252459695154876192941195772785828327326043231215860598367764822296742865914979346009638368171281181674510075410223435635933620154479208888373730433067283980877476161898167854537398413234003480617737259931303180413802359692111564418919960738317183497143151936965777572815566894223533384780523083967051961592949194745786716016104709859984763247126279894484128389013918215071928215502856415614849679478644328351513818248630131210826392630931241767839642585544526880169793009631693224993695980283434880687603898227615341303904520639446022200089275981389299551907567799294665702577206683162861037689057078568285937698676253603424134516568392968092669500911671325069247260093627372127949314654979389670414387623612290966122036308347741887127876570367116180913007018605911327527891552606086063960897173509867153373824634292002598799562221236093934357859063495132469235956690741210698870258716180178897333781511413961884908552453606862341214695309938164363471073200081475321688306777375550453753633823761999094676965206213623608735795727363595848480212812922866424977382124777738765743112983239102380892309081959451904326619177932052745196205478156666083238533823687091716318466937818500135634513277044412398700359338268410882573678275874405995264050874331820902363409508573145848257906994072276793346227472776148754290189504335817715676444997384779106193584318102790308057155633090888322483303765104955716927833775116365913500475926626519642279761802768451881561062855691166062949021438741279679555927655626726031226894532024492506976398050904460911860716658309737820379453398480212906071206202458385549275248813083068826174430819719893043775241898967080672813911138773484640801880330555284096262844215913226802433668142965248648261049572685375302872074295412897442131079157791639153986489967208499063666757684428901564957026208036483083131268045312228734147334804206820280139806393200618241815033184183282485078821916781981327804568831736621355780181731270142996984287590428077941444165170831525312825062601562485983256545187767038304232370264110895472418268539468070448491683329678500193263334946588697556378848775165663483593997751030552165118497087534412228394473506234864457108112523700192642426240129900068526636207018081264405657774589730943684710900280337397254588381010426543240972387202000994013018208852235306694788612872318585568607591487812126589297292730398124651290715802408711902513058367305178598631051313018590927047121379069554124580352574219506736746471784661414862226267338296653616531590698559338030923838394496783165296545984778290023940245999857147386934531368056977489166649818258074975181693314654123330064158242091913024871803563397552873463956314579204304577140480849587916254432877942043947868147779092348252462134445508105537769329556438858017288051970051848332078072921739340572802933556798269059712397695717152565190712251720678908012616197896040524914169122543057873086033451898863945275845830240031282439228235198556455251269582259953578015381594528811811688311629211991763525339016985416158467476097115829428296614196551928925156025286320191580910405211562262666645311564823222381762460865909736818707618099999563000900442678255629513104921094205687322313703202852961654306294166515915922507989232806466526472331711255344519208016271321704312629001032885856601485306751019075313129497160375379480233430206731858171681180005265053953840747998470279566866213857416952432786347306319018230424862716497893874698133579572519257030190200188907108954271894635654422796429248902298741184853350906238068351122066350605851975313818916204679484455472326259807189031932350591931292118341692722501513583118602913038274034749529521425942895661491975643262317952369881123628616392806344927583435861300217719365596264851135195248823920208885840810565763129722938867548962589892901851483956032603824916599586743056356220440979326644240448228848592042992379808761978845566700266971234074744368881157284548509861125827168456150445391661112960474753021949734843939586031607276127120853720733023286154046579003330553667675197361461479386026905669815899624996033631189786194425541810084312814433498229267645739948881677355348823778422949878708523191306372004971506986315934664836996410726892346936241032036128280941308264309883950657337312207925036459745457264973717122650372121770499474859932855117245549065027712586003214000956231412428538487400001192986955082560900743165237878042613816814402975788951969174035921591312837625792443018513527775433405535649885016707587391302279362186356157259779660251611823896693276353345872842524379102590663550307662797738654235368668024648989793703368564098274830591258389238933462263187372176836687739731110207649634907326098897617839722822246886096691940875769910156746311516498770447041286694680785464236804697488914752567137057752190520546892742673797479285899439510387233728352890027720558565728632465674191577826988776831646579358746493722905853242771361826938573260896710487878090644166986052881884057908388627736426492616553529196466204969906501623075506007312938894299545102343140078053894382544306390193869630196530310350054096972603963457037501423104122800407651230999174009739244460319989242101694121809800156501791440486543355847157977363594977875595485506221386435620572913048175327656199049074070270717963816199189375004305603314359512032787580957292745137191965062655504328521370491931511181565579857762817622601167775945351514356320961568867837701351670709043817641685604414778946216395083066773156429813525563175155997579824616385641613403308881991957426342465197771943688858702340838866868680232104521135928603005412793771768939679324162888175781907794558953575988379575555776154035836312728654706060928791328507017433574167888067418284371369197060335908064209796504083509322737803227140428094260019923793410383171213312049680552870880227168369574763829065724339363822583304133299114847670538697189322028183078774884103300280401376148051814046289300740946148132166655995476558164096421265997181971469462634323517407152933541717013524094056887111488108029876486894765954656197891551057497488534171084138336520505039626581254561702312490375956692271261854428777686753117984624724209277187422349738978848173887463257753607932920931572310943506073637056197425945668136850184527449912910775010822295037156380919352125912178249725437320154980073502865015264568336409668513047039867495175079112959614806403109722286184382672113387139461808461064871751054547988112938027682022426866298292319237807927847655892921517894395455753798957036494913250814386600756150977457946701340369459164794839820474085051907681117516535912125797665011750424644947752816633669022459868080047206412483208300080472231611391987274837257545015655302748674990378602250824810488733596227711064542301926328181037438939122982358886760416730376388497137784912900340198181475660563117928434060945092465653946345888196250594767784073221024476505139547396376355104425224341983103419360706995276298383179312559594531171869425334720515205722601529224068093598959613787955571650590508495542845039472028538557930445316212383499771117994038180109919493184940209036719789620152847099133440685918809221814536979501769513236395753629142493248920578412713545068757934936609239441787326901225326869392498759589933957479697320082521970630183620158612842856482276853969774512509534394542941361911183681369383623900173069914602271748824743570350015185204974464305741350481894383535625598499926926813325731485595771619576596817090495280296765038989325122682774486516560926715778926008032472873056049006353555535335645910550138668023089275044546296021454475827845939568589378761869393714111702875668392525180007824304590521164185295227130178423018279577385211270686956015830997812107481774294871162530527842656157183826884880183061511516494369011347668150979555965614533001043203269900350984685260228436340935847991951796760821798940535972860527810436817256940910249649659509348552247438754896707847271525362925376805752827337934574376295107681565411537729949958629907215558707683505536061677724450319694429582570017726904152607213895544803541722673993224206470276155987509790267315358839061106191054626124474787346555081238068091972895737938450446540879262432756397950691905552031988089671513731375921019553811913311369567053341044948927976678387432970707296990511234584153840139821588096681278660639565899888572249639029896417434369270368951505430948679474141907829690606527657893511665938523202563417942495952737888110761254367402831589703923825137476899027860586328713596016830496228460681667757907617876991915107541653805276260260378134201445265329625253044754493703274732404086065173213133180389074815690843162731602372396470753727829326924309937619256879592867869978234360632125112122558809039739780859310731669367893488121789600912973356824908578717352951810977785741467536942663611375454709155987634739913613501587207935664767760692479601296771542013745130659727060728125955503962442066049133786544734977429355295343306724170970225039800997785393722527373010324989420835196894087636408557732034074132836356154938392911385893962241395196627780798892468838604733377831760530052803750941492101529730232667907048537270532163801211080656329725036139316511157692508387469975019583355935251491805214771193282651121827956799821986407744776067176611170035091359713566518609860980633488788810265305959616473159477251239784129326674629075382591101638818802121877191492544954270263460446079775905731180947015837870990074892746999934719102233691431586077781175960341783201969695926043718971491021609543155750668643926643328934101274573604831557163187047859142091600537729211302915896209022235213189951623570659620320987085321779428664510986150064328665629590426674160916826029933423490316041075110859355286643248787226371225430091200287038885966074147519907336569069306011355349248817540431771406134328746205434735839500375874583136702031853668914353609975516737687864404794214459782160989892110396556371750699828879188872717203801885591493449701674516814367206662475404326391571182299654989219047981010091324357956994981164412187438431878663855542103359763830733894655111671153944818427639962721604733123952053362885598098847715332098361955838404018434457189318820599553779903557808239876728658783178964187882924856992981618174778139067261781836265586239168435763702249028552588017795398364972041627281332557247172547741714027310939615946137682147461930156965944878594511526539185570462899495733441811370970009046524977443132714759863779246258934379772128726046563067665411403041222692599080530653879386283121176513984022822747369323052434911881644873383376368782594745057991935226053261751960002947978598442924336670044644671555672557151841478182081552551705422296195797792374556219794340387190379208566594068812644168738539236260960865621255958781601350028745670764266595989242995949480506178187892598362912425003005354565460095576039901450651813348533805240577277335976262524696085443136129931899110835112681469677256665856722529666581131138565701855757432875949745342035832936895903762371377178568968246304754051524870719952049941523674272464730389432198813363956935745941806858042143855816353807064536290231174557655353834986816656149799648031483399447843131141556928808595105280157700137047140658402102200653987494489360495084152669538362801982434487618947978869557155162959364925835085654463135830686172445049683397245152247299096309695517817149195865103034421587089102897758129039014929331228287586956464494296329428220213295111042111062179854151261974759306574826956384761701487392109249959258383679445481365572946475749898808834034317616659343678857163017890689945657098254767418866275346824432203339642254902617915494625391142058415587228632366395955803516696356439183427355989936716988737390962813606505449728743464221339349701377601589679779875417101838930138965532528539434982381329284085250331565308259152163746387680793818173417412344586876989141795136232492284912743812756388671621815604353960374843419975593897638614481009194938561982105075112103701183905340379102623785762727832482902597069526146112203716919354140996361745719290468506497713065005077884589037978434774864928313468265362062070303786259237267477375595122211732981414495030594035911192287207724106984363287153487513480201298551644477401965982188856645828359400095354747658568997557605335152023693273543554639505178286131402006306767611440149252302209670522682451245645687819910236651395915463675400999646458506878871042034421226829010218890279005438247539375242106245002647730588564434628282337783157878511758038638847881579059093014102277255241386790273050007018484518171226641862369294719375779443274478700791322531460166706770205530026973708448205799290043066994738970902215858336379000410380970820233348166664976875956484716371177926811309543445726433267594969559574891130168711532432327335052959302358379365164490926887410226545722175557378600927771843959335655206320844003509077758648689301548988155658099604636344037993829698896420432854071981816221650418456814051194370164935994362403362723613598587295256988084564099067315889214204712026071691489920969727645885846242847996465023176497924918214784327321745190886537366696156750303341110716749866495933147241037354814690636804131936754344432295860417466001774136733315540841068926598467106283783175816081182764848511827025327232455891332917396588547760827502271965699241343924255134311422326835641049811404121693873134884840624799840097447665767797951793909777610689506256208663705133288049592323580707205543367155437988205809709751572565392487167852002965653361897115098928458928350255729457561015576016016697554536496459740963700400693528095648568811011588514980755479248149327013337337629422775185289245546057611314120784982992981532836616588625713131913057712168656066273016000318780128640505537550656230308966985550049433510430433269281527393103312639136024389304091324350711552037905992571567311504866983426867157966126631255759980066867097865132886673052081103618049525526850242502599781573085361476118460640516121439435701142433858713770903960640268495544336900637932938816658777501180761664791369414858565607864869797540545475647215184910055462276264532177548809729275351795386211566550375100179444759146395969372028948304492700797281717689911855314597489022863688212916912746814096190687620391849765009266795408878858393032502928097465548355654158391667876243637697438444585102744489050831930042088433326070151709814401743538314564825539506283567140762176787537155517054501146059718101926167226935988273431764237838313317714941824971845022454041039484934114555086010663073730648983455132592001768280376080994560020359092088300203760407664728860452955789889018489040084208050356308764505331633745490517476838148152624840042070670828073752288429871162626733717672953571833292524928241846756252249738648086507375284050451759750396196882686455984684570007297007346182118564082763728371028408314836552284100120174635403757146065943166696069978636253933731582421225346432908183948973488808993906366851697729314427229229324938540239543336787192821407672733482481198870918910757843538136872508542886836951326387542558415228755652067528126735589888801277214100603895101454995550417803968008947466602597185983353624668230106638412093227174521190694581315200875482709676094369313459940232740671315589310113449150708519231233985211908207520298534858071251967066767842231141880654957558374682608347822916405536209127650840438730975756776069885308330908874594604379639181627764137762418573846565568051990317868978092530127966786888792692937521720510067857155838771196831015142025965841875263354892682511988734939875767121377972584211551398722343314426223824188480217409038132679305125192472431185276886368409529093377862537173964810381823736716619776813708788250592127147470548059364331951322466560052862463012401909994458653379634078255593257468099403142784436961726766633720259870787140278028596389274307657466142042525921601220478545690046838420580940701289480253348508566623508781952940333686918573776629988693767137270247576195288873144978158107334336408877694779758508905638234681130703344841922874501155823422047359740477926720180073639543845117007278901980547628060281090487320619965349495726317604754401118610159249910430784342116921420393687292992357899979992268647208401885829719294500978046130908894741210713996429201464571300769043626147449769020896423504474955133016455514163266974325881283661754131705018307808317907837569881497973786584066518587957113306910510954107625360588684734017448301904121495556863859315481849436307914896738961375632251918149950897587981184590138923350697389169681130819807628507204324197726060342596388567041733568657338017685997175015643268939814971675897177824854999045606441084722584720224090143441914049635935495314774099112569110711803191545612348063327530520608246542316698597398487537481409904335993415270467938645305212336619070078049427893394033667825688733864365572156322960307523413356027306218498138895792646558457961743391993527133641228943005724043870483943778382527516770070714670757778671137908495565531584943481124578443925205921719888514563262361985050660799749344548958210962353994296742490811877883171995438547391854619797839075294993368320491083662347669793368552781997689049189699601290661655526840345902052799161707256199420655466436719667588795122262374270861611327854803296925881702496654695053867019655587073387704212480477521098538673545194964644175960242034518301515441189945740868867736175124235984497343865745986997239928021809247850951197805622826955925632218032456399028083954453442458529593979827153509793045237559216660075518772995683735918815613424197936936215005963020280333532465173450142502286694113662959490040164066950791732964487989506518690126606267455246241699425939335639789053788966219731057303159932699130782352673481369235675863253148609441192888848018937644368195897928346312254798353326810775287206303092755944781664440445507779552915535446948376374205374810950009692201756935552549296619793936827669622764384531296965914165881382179601827262182890126157775762432288031381101662555756057480142257529221151145345698606024918027721549429475534959344904072845840460593783691779908140665740182816362260231806429011068473717636296081709340939929209412992852238108745780487645497575826229455845359063256331675535838679946834938699460364136892956103266050794625606024957691844427364781941709588396604769613451595171944982048764309501343413037847962131790147818943248778457339109357289637041869315572948940873680061726393436006273479822882812528071525869443620664540193949657716232276038138841900344797455359018720253382051382405093879699779450389407978564122128312926562956710082679238786960525344785328570990397433969019720523573223240033279611518294049475747420303735260509085952878689287857346855958513324304895359203389211368710611688592934865025952089922814276723330873961855212548156766023198667603049729254462289994485720538234572828528647985650570088404841598615183660795936956325567710332629426931499578284986475399162197210141207350528420539830444681209930787396797054325189731979316583260994529515889919145517907659068968053144085259787460270951049563433833599879133281304471645250354801360440754303692965567793926608269246331749921053709465633703938154775071633992257407314380384929687928102718915296422436160493055701148810788813107547896305676090709741617741756418882851086230835478108542643530500213678575822264776523286942060920511859015766057270722511993121893885450508934263349328750213002969199247763119630958792416011467200682631320571319812152728495680585340481795722757996954664832459436115444676908567034043330949819307125364881919625531711265582653608419757648340345720676801528299570950113113591804632343100446402726103270837074313814235008197977119980712107190548113173428715318382697940053741317251178059637191929305791237761797816458217455654000839199180880936982245701537677252404724739452076467588822172200705325831113983094406973416100482255903193451490263826558490151645179463945988060512399873843543321871879147428650947622410481430489494715644632955398462074535101223414437183265331929339428245108748870368187449863030712598023785560053296402472115482123172299838068551935979499431942182686392136494597555230366843072711030262413275388806612295948860648885544833083884957779174806188766777804047523131702016827858074538557763536926753800179544487774121394560874965592464196328261968129386652469275386255416616192346704093707792720824762032733943052876432199477389588257116037788276312143286268845349035050552541729930550486180635178242803199965337648455563238547751720344084807596188129198106011861704811260057438693542548242694624263345480957817408519934363960945005488931847217674351786073967867719262243650242991740086512202990387024540046522973738389698788860160597406409664619405719933171132013948170733472562524353472388387801741753090958466392260499098841465198399846585908263316518814676802281515815969723748475429984744121568505407754184044065069552104008106654503676067135143122584320997772464706337118495836470291642033878831432490873252950468990592903091311631574050082923617086851582278414734910729348543278513834691370678996270154330292299475064614072937305713015713068356810101863434965432194788778685886765589222894117391520334955393507528464449778446063650209086311255163399769588431051633960122000255130207209211114341532042973578415717998455183051245956636180363061660967551647228881767374890820823029494716072629774784679409073304163712523793504141757387470299369234787851742595044047099231349190631540503372322892531729004685851707629395713892737589847592967174494921149957683832119966187135137519411262423062465242012866171208070820755464359243432806109213861311931167275874461548366762173896951158253536902084954936079387442210636210172349824663729880630311492471623221058042652488516788127870749254403430321404157732052130999884090748384563210722306757642169257411358399381925910611054376032115896644698970251676927459959168502901299066440919061679945334538209543855427076672742944652780204960728799339986132357675441203943244853149555239355754567033426828772388300241620866904761452390546459717273136267682738611887350370598131796778998297447246670491678260181179575223474151555422200984992610401952529065180693693322488743202433013503929458282508937426146817310743445442543728149337400367359787780765917163669177983030006078481696882305575812324886776456692014242566670943550905514428496729979516482105553293141472442847079110986949095914704575304234217786954028208554528944301403910978747275320880963196431833382606666981881747528971499400629155248437065060238641846518208622046339815139259713327123297792524387347950984774780409076819669325645139140359051521524015503427005573502696255086206726286891249572727113199330199674378276707049316498070752990526930608840866711358710592560725106337653493405995609330177006965310678437503054931576528002783686060185408355776463403500628611073302563289604061718841437925875191109810997388908007307799235370820979202137138586862706991211464814815594735716870501203252782418400210536411694328672731262396020986009688616129861511615139214566608363986577273429923119824388601690579925308849059822023932534627137691173357004085651630724036881212550080108078881729115784423451370848001849725102626667669073553396260911539090843480480876551585042720092003990449083268806257655633626058688704916359085642981487973872698500576048237374366499665261603326320834140054619803008056107119385036258112586117058709764196253937562973732591029311906064124601221264693318007006204807214263753826234438976412781270185163246230162966441228299623159253468615476025531543196232956531172220716778839799737686335221750020608246106139355348943689325204485779648649592145717094751080420179243552287457891661076000953890750601748138113809989239463926547231424164125599525625272820776386411299790275589868138442095737597876113083409583672973718071806654902719291010484923514142632933634062260851985422099513190053418736634234645819072840682932895604204091785332748501394784030495487500076475613328799515856416930937651751627189523382051220368440833562467543297826832200821991678394241141188724179884966391587957549130199236588995574882956467030658031851807689642687944814793914301740718054962164308746574248073724038062104774892446094527813440686851317426633088953123576815316485345464263712753121607555244941308571100248097063921376840793720196379100407630891271346656115530327561946446706553994326309356171772129297419383180953739986721157513639464445147640244731609499825719655469685988258115232409385705087047150841135426883631911497957659406700945504705765966761798189438899944475272891126807119904889648730572110731702348848034440121308014359450469596313489041299240318083355251882289452031451138119014098438048649990244834921842752138033610033219777913240609377118869625429379802514640685901265387356266814986558637506697354050639101953735775368977342333118170062369544825440485017941798939367402542245367370407642501755515304443517317209604357159172307589922839016652444201936876032514165230872282855151091541400400001564546788450730029112173669537763229755903129554156595915591829720564554311087312385032980741034431225789594172141017103433690118117356258538500598372207235807921868106802545835397559318409071101036059452889720472218721688553460430649336110214570530759844498914504352517321599703391406477181534029162464505187575971571178518985156064765302815742692383622010906657787374199807018818124211554905195971937020274167308641513779855721886068783649337990684901049082236030523684235019082037297049567119843435283635396248666387238130077156687038441426703343883283999541977099522009527965469410369130471299101139922838143942445081356197539308508855219088817194223068188278540771970616910260710667312381683995012416420468692370607244869657790965588777708783904819744067471510617243380470422005268179462440270751790699257899845111096488416105884997208278258895806960974293697310935826629414491663935467364924511335451642193290516229762398415078497486806675910613704801270820149428204907756465987116666186730572352026735447038582065445648657043942063092371238869757070430137996566991244604446784369959841998500757739233839502025674986344888350915357965417811242034198194247235689978830874886241517163747304641744155633175155229974587865881077841943725047123453808286535309309672025892382802020204882041886751084923519412405642277060709381001272539581065287435306536874281135897242658614707782125295918294892894942315873785897123947749705974273165732512023495492952063482633901112509459277671750754872738485787284757357454510783048677421963481217175086013399161160595537568641768890497829394423483486630356203483177127474357739054975590937655200194847287317840789088855426128004605629330400851834230646207209064286665985129141436430016439747135994701623633275447253629291512894080267058024363816241819423775422572292339065943315856082123743123789593940111447487783495372342526811256724549563009386553022497116676328203611704940603926549098275872339537462891234377662675387424005195601225040805233916089810987535725908476761578100477822428601986104382651823545713202349669790601878684818070872827524408897718904427751636095292385970629209453631258927849186207545442327857784556171599345281408805623441693025467811030158999542045172161947439878900834414679137749510207681747519585463089309279769991544741847546998109475335384120511780634647338206038258589519160949391904697155762551125602850067764599480249526381467754728075764464653863611855525771721975241535244295180083645510176382314868885822907932944100812488423268344948210868723908370325543017402619899940928980723395641833947509918710356548443622967597448538183173453032799699403084437472382331743551860968465927505376339543975687223275594341893994983737288448923514629678294817525365469812701070518577601148955595241428178047622222845191373520844514268513360284070536095334746282849754281436301629253071973104405830612850866006009009243247127527899151547664438859725671264093144376631209610051811804491814182171495822358062524677391636766701111746426433135065357414512148491341434187517463824097877692163895707673590808453979902502361843719778633056147259799211145150593700069448036969378126190142471150489227608503447623687720184360424454615173435397543986885292592172089290694411714331782229840458420344601297108653278706423984342076734212964286707060631641868851772364356690742302057447342839882183135270312762921129339309105631172171781953964450805711014629146332305414148322517253512608006929024881445693295080030877951865451278389478318971732516272440170259437878304391609133864224989777690280415428484138708281956370402489540140952616759640514762764774946304715786821379398242297208484073642211725083399986989886547228642950612248107005431357648350399799369690513320915676586438769712992248116383164074496239826753709706447315912748736024262779546810750589253568687809967301273999371942792452853955247377307190200669592718207238812871396942449388200338009746946352338407601565503943193579372759462009300934419031935524082522304014941633063749697489774683338395130424417199519309137867521814665057519108043301010682212461959679860853525288476587015952797828879910334245172157345483979263607097136976187968785224772126127942054759541099765495381984744323747304699059151784325959558494360975112859152869388735000080338976202179308567852878856077992843867687654945546714841005618125201688147751390869658954880629661681912906564309956904888723447465935671651957089354459558225071336289812182054193542625421709277750358721818583021597963694705301108806375978383934652598208394451288416258626029898360249536585683718259812090627766675880019276570509333532083342869682683866291860380707976315620076013093346593792396672302633272179105043036093254957662509287408121506992251990825537428061354892136571280898856412803368934989042575749079508306070076875406137165872281215383468175011662695987694161607849983238369933348133496641897322401047552810556921076534475697856640962446566055415715323383778378920989077934557264900908202749617263058234771032139395878331494390887465556375617700199762032434920432250323965073868282829285606323367869592050745397470923695342166636177975570462357875025330585160663123296454092438568371075735234518360149200950747905270236634533200777349296268747615635635704673770271651346563423031044018028241017426153339183813151301405037370198649942276122897775891799822999356089023438160682420817284961801073496164341214184312046851029966762852607761342940998752136176821973719286724548281878234638859242947322133910986002396566766074583539406753229913763942392472810963222586564600741195871763866238904930656458072437348518510721196509185930236586537079690653208829908741822774235046112173698122704401882800698684049458276974374760687871720421025797272409512269570654765919841516011699680893391310877389327742381000082154230434837269537433646745247824004129458080712386148422558464652950498551569840658266831408992031041184841808178331437941182146370404377604285655725209539639836477271291885918121345685131683090280054400417464684169323233899827083513147257528811443310810490493032616480649743115509333787571358642316751247259954323222376074695156259743439504052533559233119753006148955078800099712736636588227937774996328064974669738403010368465872899924401979066562091807738139814828813326324745311385567961857040653559952026104626804437662348485389702782577884436363769085392424028931736556736137451461542297362487307920043901281825887395270624863019915540997128975803168317810241503358985686187981794216405746192948499311559168434348991292619577400454452706654257291864759344594270838199555534567386801046903047330143197509284794873395209647848037997881881508803508447417602992800175610727300765544424210115607953510004668487300740792079184829384942751962175939294145076475778231845466951546691059664749215909921477207287238991209498867743618247504080857167551549817533555628725117169445544363096251082859705561842861355838274009282690448873353147304974733758692472449107073434888237749144753524399463536646730235346687004886888656783308093059281463512341568018229906117942692590294353350164035310572365016720184980728658142394179273277041375743177751528063917681532510159097461811237955751079364147580325359065488827975967714699889598738355342226675282222616690022212407385092916104154043319370517784481078762564130104204372834728538075553407446742681763850210085667284150028381217882692494057356644509045099556332952800490864576160082701822276352695213213556634315746967539471388115774143486908197821164103587019051998087978433735493025276848125838651677221921582858199216179771659360258964630066488560273722459080528801829771242581653836592788866595350675723009897728106866103341660342455113510212795753108381599125628537316910680108385669589817920798756181364840488447958413629491782856715056266557361772437383391957298358924935354126031062418106385844084793292840769375778589502976872837718587057677913797586106793003584697552184443580942037916290357604597449671725982293420996885546523981776828521056656617854029454197121273791412891044147668219145762938043488906296085157109462006419841232603292206332111145075441924553442941634373405480109992814215713367634046539541757115498013974477120621647657283571205818276475564845740127980056912364824123255871861894611312183068304606150678135072184030317181440963373693191897261721277182737787211590625645585371806356384397536237189889608858320399041511306321084745780599250597500346539697944564891109557152617707428911383342372861073408330504245526301415766016693622570862738114515946042065257406613596447104450610566012518720477787689206062861876683575237921491621123435693603693065105216433155486821604091639844086119227700805984860025512777251182349855898566199981296828118706140817596472201315965548578986147192682183059248947345220213047717763074861754299331213598897508109302558574954594126036233627393147880282893120803947431715509511065299326380391482482777864623571885196246386007990537233099210951938126650307477288074782112000168123105961444366366571199892756020612646519261936118643146459399766236727144480093561571404182294992170637718254536190995032333418396400107941435272681804961577883509862812314891982930252712642833760144926690229676215173628502137827507779284813864125085500211982022734422567303192779604766174716733996111546317204754877924568344855130506507265460187305127440347795292726198935014913643170760460699981987624312976674817400696112357535536112349296730069258158962547628924314669286712252973665892876077992944230197243324606835109117231864938572036681558666291685785878467985132987962393538714887456753771378279785424734533394618891416122505596327022183122537801732364996126686236043278579214889189882296612645477476814709222721791841964793506408812286444736233058775043670696481800844240330189059800150530321068054264078447271085108603365000233718362873445858554027103225332376782991605432581543420228834510112238257089961280973115169963785968674775357394956040647199553656065211242484406231798488357218467570631038217051891343592196421999022130774747617831923280014352647914974834589571630090871093437771857815488681163415730191404220376102607778057005307264321569652169334293203824961645558661340703827932497171986665436109466669630062948125502187703330609886901185191474201340587461245538600544086419463879731259912860347308309291727489265801783060037662214822772104448015782730379588385493435496379929870663211972339714989029655287383208062711273853922880843462663584116066580991655117047752338924430430101756814064494669154985848938341815328378503811305276872495476504720831541092293142529239171263710647885998363910211856367872620799935420124443011694293096175383784458274298070949104676661755421007360949022021241736457831993652574579347727127348458827365659806624069810916720201700119087592265351389764168126116560663441937835894625636509562452577078811000036945917683073926053394238362165445463624787284887018866017086562423358889909358677710875628279910638779229494998150702405953167049955184157017056383031419235650112903585636611083104386903548657160662834745275529671142351204608295998413579457180316994426609448698586796928025008218792228022312138960107646000201722587513725325804451192796585887000526075399804448314360912009475362152268484016099165586144455313126227867709208536646770622460373318103210513294045180103847937844505421207891169767520203550544473983354126540550554108088934368726803065728331923219626071243596810551287358005950883470742883798405928423279328828123605656167929458734501924137215080463886502350145275060779556810523920430210309046076329414048968957138754366894792276368114882116976630852118661737643514950788816443630560110049787700508103410196643964978142520799027470991097318956199334916699121268682005364026667256803035080987468527789926496265923242894914343334898915920929189769987888548914766324928996950702290567926655756144561527022418298601085484864468034783859307395939138880055332055272379818341200142726438825989565945734769606580185617528275352560709427037257104036265058004152341283457218258678237710839826283358403370262973140376954818179757669320828140281803119780077220802590987440336115419237726760501894753778595052914163022301563916885156764060888080891179894187300744424499355869592268657063598497261235577026819274351132326342231489762467812962880384905784370179747280683341036046601718543664763148046624717377203763371068412556360162434759732198973666876744015677353233275541226464636912966275372758279288939198873710486939162857615604464770656223847491376473225193505394876740524588912024243822142863260056234889179860605260549466404765051100783242862988596222427022306296757885765793009743013206488581448592160917811724216794049710819590178859363185772391175620255914083188638555697041371614239340804741447985330376064384966672384858048480126474035290698394993557579795508963883425191702664485286470052381592430633128500233602826924553864576341683982168697652841074254539499910944261604248217039604500181471900458630136033631131634059061053731729232304745732869077961155280564233084070780263308385402825612237169240794308578581634614633102195193722936657071646775853885136436935708227933447336717027818494367925373618075507857205533680151815217647513386098000337453069796322042390448266420156785030792490683909509556286423664288153177426925500618438571597726027932264875769114914406931734832398939981561277286332888399605564159350351538609685386019902834963711217061939632035124030293900077193006859342466472002560515734332912524432249603842741544542066772257671597234764851763880705982297953179970474443741200694709880031246390490904251681850853158638798629833443498800908461426171130272038024876198003954637680468227736015361589752064462317152552435586331637374490384547407304859273787328491089887207991433166510797888890167771445579528389635048355826254847937683554829355942942215318462809857145277062542787770017637702686586624658941011950809798812254940015107220782043691754674031599492102647969086429606696130345875164116475577337363758015524990887760148470320405465943208793692716806834295511165833349397390591376772037020485382181118061875563967545868051856694872803187435461102197212439838342182562894866482337798445002937562698315737665813890879096154893200958954556736146591888250579726673555283323858577724917929547564074525861795968424676392431140257491814843357519883141465445939740884121571580789689658278143275323292267197942301942930489516487462176003376089837020060037820580236718272694066333686882963089822902163097949786967762455626660328640926236275589997539328747646117255172123661960980981014264157155657807288403370685857279018776751311698692777999565372516878523653944754224615440260943653917183903653990894424022940218131076115261620615402218739501812832063751505501512497003738524058839403267212676059867155507062338480686031190142021012604317033854814083811217247989367812399814226850250029437067266761675829365128333014151299620495628117464796939794248647513987227684212682555276004305590256855246443907398978635186434039228801331788397423821557006112461962028962512939213527514388126654959944958399048789789776474095936419438947821143303820578655360663345831814932843033517181484404078934858510406352368109635992874337655579138204882936574761918904259956952738262412196812899649209559439063804462762363619767905980374232680943625172340059334605878396785472944285967557317292739858019063446206846939864632521294094853274890977388912370833013223014565438116231399777859600319572009103600138299875694257961775929255966991242382080733978299736669931449133191859092465928509940240191653875593907308096566728263283158207447732188185051125098319660086193178109802025924742875984960807907800454294170574306960676409648499369894076206510453336323256302975148281781690587352825512204542297056028336999354791344949766630411260488597066404618542305394723625062434952276424406576792452344905956510800246055062165644567450246443944243023064511401836491315588571477874044187876868957315726968709223061410508331031785093871911689417252218438097841539851080892732901458566094094316000133608494007118398575981542878340301545426828542940156179223015555069807283753324499043619087970238357447022941620832505461965321690569552928796055623145285412539952044081129134469666938576913815815531494583794292665177000878088616058239713113855104263252269908736982096509159413557837821432289689352824972620288516414392850143060814532744261705255702267004252459700855730797906016749592967751355897300565958387814505051544929255644300714051362462049492655290740498980461439846723245371485131614755106959735038912460338227842920625373621426446479022563832142004963913842925456621613900464975228942293507158447766198172778660175354815796570880260636620456762258818003054594713406714670230145535684111134079753198767396737671032652373527348876735828010505210340773656995993371545320112804151469714739711607773398757897664702744905655906513551120493925360088191599979117026841421080997387501048167656927071918547744709098084150675156070261411165455133202439960191908018348818478183148693690963280729163501289513887864011655395560773878713459701050231852037467350854290677802005303129399632890537730980102126771771898733563481423985191049723966342662419366195744739203693221713351407244309863165052046628909695914290322061941927656623314812494361029650788024941423151267620962644192791046224036273965914786874238448502307952522852106731148069761428330700229139270533116279702107816381549202064866933473328816464077242026346334671997286857029040689435161273196798707929025828084891656879000476801759873498480854817649126188800519500264725624838671063601072022177767035337992764748922288138141495739477428943791327676299859514798518726170842560853378337534191098802742879841614520255023291065293822780483301463006915170106739528483447679893699308396246086245307374566142190312691681513565630167744557611058519149783627266203639121580186984059848957866356087846437390851791817736701515756346445460051516638356430114175279723411882348496689785988837112753899035232356095969285193079229792733037819485009589487957060788386076873505288892231744199798615579187500319542753685319773987238327377195641740439129524074074546799619867534000070711753102858714784716824778277766186473479231034305156341192679837556555583036119209696926491075815274226383070673536802598092523907033126894139918175455704459870289063395942380591534113007611293046681385427720861329683738123904292777993632411279033709409042565245659585705177294952474163701186122580312999998615788063639119377672747810047857307621747615162588911029516376127742022338067924968261677274306703356068548228776536409841165378356129004284917110779453883896127037733001834921711086451525699389487676424060533314732682036478624136741135806278651167291096804551439850322406373373820617561787755953848210783610588981540980548159774935699665654080211033069423174717104309804774919955296832157274420065088693719351166039430937347825043151767524758734678068989704844978920985133275822573209356651110187961315013709125828026829350189570256026652155027845758278411719586878696393626072172289447281918205185501969458813519827152391574106189638115739984711426717974058511008745466461889475951811272290702834195170399206450098757603106960922420712698940094732065266134935188440808692260815468181442299291383007415665486697022869568590122867236713254808368303078199393342755035204071361707242660003599227753022951203711204831826406127088472528980564344473794683115197569759586294845845386976038352311572041853169582484197568269951738237993996660309803447689471884829095252790806196820358069059792344443758033852217599384222125906299645097720287557572144015461027580908952602974765961401725487610018603076041988912292012163800452720486357732602719391881949124252663847278102251311549503193681901210895509271005114741176705965614846683757687600504363143938447990127594568245731637699913524072170232921722535163243648669012295006318199925557497509583101246332789803654273459614452526406457016999157612417217518569071077495892206705610870760890506075599539330567158633183529153989331900162329971248495807412551239546753153888914101323482075450882844957448222646489896835053881804070338558930060577875562068851000861280682705284215198234552967245074359076616493041701452763213622034449220683584075598128948229350438246151459470455295839339510588462986074632979303290487039458407165430664954960437393984314694654725083088922276132885627372123467264841118434785664018793387256278134757948980565869587650287281539611163774740037190350938323317110981211312408067415687015902433661613185899664847299057757633814200816331135309736196455226960527759992956324162524284767122328423014212617896917835922066507005985111744604041145036878951557267391855154966451905764889713102804525467442421708422482962048791996347287846770372908916094891743454993565916179727120737110165797325087456056784264799425321464302699549941956175540019820460875296771351230816083703511229205359708895408123179670009220801698049476188852867771602922611884755345597035483359484069572918856333224142738722738563710229300644993522042372806625288567595554470560872463979401661372793715263347349558007764550866789062098576215344178637510290166067206839564547308548672136378563944487456059808302396057925571221263038556135147963820450654225254818904504720802420422920177591622196315517232788310478120996694736827836121971843771922855170736728376378035225266608138002925778908847407484853239793124300541765224617276179000468667503358963137557917615321248479693175583896816034581155037496304553885366449602552665026920381432572956139104435627969272009804610070896474974852152308223881776787096147925696014550366639352193992447650538034147654288950217193444416573414226876200329633447440581603225062890655309529099391714086361864313199860597802525253079962796040941168058420553537905070814680363015895474648512309898244187689475947719585039866712261982705696352204146695561351865221267453462204764235776270954116468982903042208325913420094540134037830037413267784655123572179884860520646374294748710957983795414385469212841833516025292467995198951530255455498154193040619137586078031965183464898735071828640559775493483176797251178772669955556179147379455986686028304157084663148033065884180202496514803412784553658425688605595600374359358895633585569523947418585907732092626758340420790123266219414283031554716155998769554516923782471321272709713367491043819479578999694200293943536243439736947051403775996880295615026479501576830492884381098900768142354664972435568750380370590992526070728160401674744488980620934971392119435545427354231552181728216853860543729741701936615751007711932526952408285378834454391431639921087502649429122968309106978876665724266327097230103537944258005385978713612666447851203692009587181702063483033466478784482367207581344504279612060859765474596336757295560970035207607039502153410090001819862905451934760605193190193575313709375825062382244384351514801591557869806764629098032721420635112555624359444906905723586488055073319173474296611878790763819833519130329745103287283672221906477203350394850028747073805480080899881936048179223759704932691427906161351039540634235533126679321548315127215393113719783458956521784353692986084486983956237420141800520176862967820480615698144628280753561257819686458902345526202570154139644952177346605421308740562546952186159267736067176585106904854986234665820334743334132601318212715893070733796012346789796492857124845423921650359946265029064789298882065009473766134386587678886631878157508854664808950123935856190358890576774400362999013073790417334338972173709100897814225880254783504652646020007090858881333058789337082601397946902714339830769004546920622714360807870376782194414617921590865765446646242041290951594923141346033487126257070978603495406596964606286967057463280302527400312661033490054634244772796911664657412528363806875413792836783948846941048328851921747488097334036311939741676610918623732947456146016533500991120289537287065685864122961314646607279344606885099190913637407673175862070249712221723725880262105605843618285464920662886370751175441540676547632103111309976126924410247410784791943681129659507165798259609850730039630281530350468901873363385474224538376987604198147305347760276298833355737293977520600504023081642422777905332136330562529527781243860928980278897242450899885328270916030650354251654454416648512740072408349130793928259368659090443679719177815542454507798748835346095236807967026538053365553361439569767468814561826536348778053823479646536108966202161238656030012386916403373913024072890088072624605397687212660903276400778399015267183093365071976751751980879509212931496034544470090246749194026043912334791241736881929707274895206821455962437514493691574659044593177250774948154829016852088901259252012745568512991280352561220375758651047135237360574585542857661018362363554692336112604544549674859016814976269566581253250957247862513093397655062554633782535923029174187022416145394089846732641591730138764897270951853914295945797495789791555874797081783211610044264572818751308140279523307193388189742412100914117681953271328729950019673309061685758399618091493304836430141126953014599958104016984248825470256480370973453643077845159604584423494288649760757351229208152940633949187698548731594689625280536135383534324879649092844067946376007175784156426444640001086860188777985591680173079807630954948063991833952020414155561056558693102538427855016201900265571119354505578792644094450241443931040429452209678119628412670840110104954172381896933587220024585082703838161337354195967416458251814229465619206177511444716917755501335131253168844978459630237327264393110013742771252860946483181855422884204404367251425200729327633676622493625059425892983403848473667738334730400580683093335876935796259300723332244994095646973153158573839218189096863294296813544944789785221083637337392847772063932865224624452450946043624643051492578410673971358232647592472214841974053833120137162414398007909598841800292327837604650632027187418105275204371623842818588394980567935157569947194783311255583476241832077650695862974137261167456808980441650847041305564451357343484346869189681919844957507227537508849101833114745495521938550864743725334134681941286761644370952294689822647815996419517942699698093596946601711433836530925641316036163478796507158455654824144954536004091138187092655770469727279105447530366275719928352864988416934377288167423634454445798980963328112979571382040258543001706839836666628085768711740483094366871087189805688525193299102461241523816067416508052917410597748763643713135502974432076788267115940396548164802651791498165090060823399060254396408323170233199224100070655476920692364594740288806753217591718385035360281095288956092603935935025131552126848484899165215814661221148988942141879218258344438447229206741936403892964155543090475761609208722714588537222988002157614950204976514369200861848534886784290696461894714092117063151905529219675433866822428425741299050433780122927248092256108988641106634618198339579034977378219982377248361674516551878595515879047252442786543403445084875409371116135684531407874252339737520173827427130047006282923996879635896296044483073499236711229888137040050755015734218366044956672789118896962860324614633764229078679767400090604444669487012813908645062839917340851164224660444575264854112697882182394204045402890251876081110231823312521509914200467489300439633233065214657110726589713906466407946919239966176831235842422564363635215197406975235719763862040091225842159982579065318963011734772134320384729887201375454912682196811823733527895479045575310489476092430360152829885640939016258849798909393772934031887182350403074906236720827452646669401836826079548185264338329170287153883404742829978260674953678563822652650467702747722356484854291353664960192826384277906179022692698577420753902547443377843523689461019388125542277941437002171345173360163983195898931903558730412560114847597298147958993809898277270591276118638607800279449483232343154105934786412023370016744684109564293548429471215972896048250498746501963769584865854616272122009556726677264185232083783381621077322021489428468723390137041098460152184235448748197928666732855773086608751282274996842263504823027246145301489396923071118263907933842211087460547506201972298570334532057017991853150098375208761298956823164528902263450643248290876815391472357101768721834588987471401186008495172725447586883702993485008191253964180270351887418807919798211119102466271821764116676489419369665035620526324039776232233496887586275684035317217510501821809967294889174333282113697768794895920983719981537963673808260699288338331838654421464359345682885184588373940885142081272137939078732669142309903893634314333395132681600919869993952607169256919588015912168683511794010281332885476195446372016896419659062240757443212510028347259907564127383126781790097019535118261671865110513081284284344752688391437656655156460607840731511692563394528959712114989414595876377754213311643668009416181238969345561374222463136849392481316926096218225330126281142233169533010218639730903520029801150115538404544406594421805677654125680130430900875827361019160800324014904608128526111981869997146853859811282462871267710326698811392115365710348546743953917719644985674179076685626002623089885133469777769056939443564517049994789709500418965240056001145095591697922630045076909162508628596348307204877557558978745146228906701407552566506327739705216786418747437276430093924445498851535719473173243166997249384793636565317253195754910854785020816561471126251509149731926544737408931607882377705333825461698861192521668548574766097363445844969883272190757198528570410301172304787531544016391647349916726842227705567656283556972057923361423062604011965609381942554636213286290125776330751792169992145996482690475967182731036080905309637115559982027418961410880751603884329787956828354966564174594364635023439418214130446100935157066592439687788860496373976194429027712185353305391765379928145516535224203993574303071272603521899847922293337762386528539325218966404558825131305380837449295607048193664185440442299607448797798187530304695399028910467268709405703051041377357832691788435648224442318157068845319444473629879366047084938189018481435999088944627323713462432821592350083064117103600685673249094539706848902520644302605600763461109792558032349790634611057178019999818584741237864008425825936126231758088420715646893091224379592021036480467835166854996001764846058582837899865772861797571968009750168699362895881657260756010407335196139896182243226018497074724907391025581229809081351763034199193626736427964727525875135574620158372095878809552035377457026144448249458389753207999177947350093044253648596001949421938302748025912391914489834475700086468517756525505703197929455030772917174674421269529391436355644741121919556255923764059199680108080228849758199783988566858815119143312789799334579463073365167896474734641167444979777512703816364495457318560122362382131321871903420978223064253179977763584415924743999777991117495154411928917839815121554723283893835957208759399859052907093642085776563707071203691798468804612720339053809627533785396748828360868454012431374589582548225138628577525496573432141403518810250639282443798245427446477280714472966782338337926340579296277266549372011151006507666249899813476048622598200005781102975461947275364572773572642368357131187741720924834324098733011599411766361374495433471480361610123623134883260094220280712279462927850627276557644169219623857723570492667757512817748439632959261038977640464043508165571570138503511856936623702399592222340153076495564334909515076982883446925705426167116181584968890000715977855337076848063945257831049458338899122109341077404224380576770374960569081139845099953322999647887965153991923338123959732848896050957752689289955919711817227636387601871342440775522166838322541477081684397713533956899078077015342465338255938672368182565548444047623451373298314929947749825460368217690231662585326034930171002779518462002598563925720182226799591244559134342253113743962960571442895969098785224755509226721579384520861801106340409672603407294878501351988378338910277454622938224329428112006158185464253950012746965423422275886082939332163765173891613132915878629599104101172128331431336915901434974120365131432287142378356469195153333283260499645490857305257754728323782554454078415310690548851691090499618011591349442032312954573803789403964183993990903234021292865538019466161687341724770655513893040178926346687427864638110729037486787684822658187224640016702925584593222323928588190399931669184368890717669838614109133248187821438183601826636698066642124951579440527299612201796972828084760125937849053905531404571679153794527286401984067079864725609788393848793477961268427760709070938945620526609523246780617411480434256219659664631078945523517519270930856782780090255905563431438653695476167811168677279832836612534056544786357116497584242154545560818964731774360609634192010702595566019742495954430880056402254031779169108945820557127660565522712839878747680810669084080412303957067403700567236629819557161197450618310096076380182940935027867028827877184387125891992945342381460665873920342578922305218043243067877414421890515456755519205740459136920255848675430986348956046176965773043611925453383498109000100391496259085630093842218630480322756854541138398075312166967820895250100381582496035072655578227462783814609295765215056274646046243368598012545555042520829121825766742485342899587555148655011015456778138457517581083626815558559409507007234879774171689595433402111230412490193448029606407933031602546796154643311117658943207484061943452822691463086557501133771025522316335747208284597356447376568008807012132199231405455361635357680516864978982665254715898760272131324895150616841485872590426181512856884533913069253445541953829652620502987465971526183898738616915877870637765968433586074291058090171678596280472149744295601250111314632976411707027022667624479752707238416312730225360000741528803363534405535077883437454533572146869441807214860918326762135985463758821855155674684202860070097403844359435044449933285021701140932324862191424668143653434459638798449077511000708090110064203858741205536846263557653866979256473379888802158217755927248106117818151297056384787863284479344861959335006271988007808097675537405148472398933158224677754499329991932230012822404398406225254596280710980106855311772325282902482462633575277670081387917208080762752820931445505593084788826560800543125386556064752551192890351508543177455367365183711635480297028807290956618188468268110267589130038922984395864139934239709145944330436994447681624206132391778418014567807736126597435312580095242158229014265704894909298704286498757034677356876013596765259478929053248289222060563452299836295284327526067997983374291311789791226503269943510136221026469513785841657754978267890569574432282475532449661877206061040268009373266484025089793562079019954524918674582662745164731353774245161669827728762646167715533527083732998275985130958659583321164827151044085319938619938805249100611403309582236308271801205941872066012606674974789114801978160416623441488739255499377645815618693183602874086378015495617938929487193869789381821783246460174168226663446327545726847842306828525541613364789113143049562956526995386861414782925468280368123339680775541940389583956530273355436488178485847219177558957761896783355397771855704399480359261769311304703675157687901494840295429616574969298810764650860690934249751263343646796590145263642400648130439521214478968510133790487371105481614502279274388704629831837742790416106777530512832187558666550659473326572647673938691559440591917603578091700077395661224047997024905392762855461547737055407995318000249770142548264802153283102842911066998893020391938545907623600079754235293825542780990495618606962834372532910718260501127315328600018308499993123895323609355826586081301531269149256039068048703907913237081570284614841300757061821773824376489346795403267527908186719302853212588747630771829214358351523704520433156949777885621272223538187343276621612514876833981801798685511449202593653617400231026610441146257149095392570122214942800253197836292046279355305916948727029821860950122678410385635935578805330595176038367222401875367026565136564688053302022860886667155094878405433505388235476451771779566296854389847602793052391412748231715080535304060582994016762819318868852094215968468129658005664344579757998035728265110983651986987473638982427704239631361266260969780408012057037819349788789447428713769348486142850453543571876921458087856683447844026385926232116882001786945160090820168757217079915394525988594750084382143993343205336211910213243677037387543880391196476721115636954133427894150022928752990125145677893588414816889266445204865241828483544091275582945404410447679851778898091780251936589334027546332810933978951366577082546563050636863869754212222183947987390348461900258740047180842120231826001279764318052248123022566888221001229248036817208256507358032338413233339549546335193504379739940981753534177318135177213239690857812386713720428491422743675282193402208113372854364710003651525366929716861035296667329387180306368728800854439602160937264234362929565911734675628920149066334140795327114470536483337059390121660989701515978797519140281611801551119237039200767869813947467369128884029178865483180700629776361171555614726070332852639077224322703742874545084275603042783357890162466675822002552387665870407912960762023145535151940631570359408537708032957618254209401786209472642518329327826725651264921649120186947172362633554173816158924125203805526585538654851886236871339458708463770360602352796591181372192239321909151824738489728893682400688741738874731559308027302888242867872290913681169098077950940190241026356826399830811873788989669247177173187279719210184163615694268240370456089714550380079564040660266206610597531724576956110577509378821992903850295912165190497777095919439405206044134486406356266351819012085090019028527730651216437622966923744795118140964814736821315787051692181201938461315548791933218545017823058946518546461415795272663991241113016648115376880315043052952149736361212908554455163241850133325545572584480891573345781171706527483596423547113018357582934676137075557808032181058503608326807304084001081642718096544190743951006147185807001286396481386966622515053422721826552268103530707995932186631489086649004620279392118587965306033995325829963564828195880571247974295256998708338023611710734821089598857269927895658146374063266858804810132979063721254658451186138348033146151662213471563101275151324804110629051701507283699030080876518379498885679707238181009568702868052852147180379916970384371371540888629306958852430145911284920103350525170485535699879653068249605538689789250039802319343629647094294363572462735550292600559175992571187702276277160996893625119220948063601680138252129156670638636960405334756781691873720214680008772648622618213795955293056975388771331340856423403420279229533640478930817417318598169382041762794692809924642906974868551408660592006375998012048515607410912769491172620894519063976848961402551790425396871357560530845300839676343446671668147818992160737265251241575143399102251704155923044145913381070950600333242696148582795868034551472334274764709669147046785627596541614030524076165219124336754018067502962221870942985675011518823705557789440596230854382842494157593304631106195579829855614973741457424288005011476686460242374973695730990245402675767706460304429680263723572356264555091584230226039590086193110996778848785295961606627493716463895686931011775098886777076798316155311587998516088268008382973495226364624075379394221810539260975469449519560020333964411410522589944285860709283599885023970968950300545338374502176603093256460244996894063786613048154743287070593230855566374850007816567466984949646156680331534710059412408509032041406681049701387384160068583374424724542931506326174558469001214101341709593463018184784586729374258871462927377660663335240487934534327014677030515634667243489652923692184789695606225550334655953208245461554308530089706479596608111508997592070984637187735435401943549150226808795281856973719728305256523213577831025209223198815442359414158816850414844952712505039639358031978744232268402793623683596217571285471921604888999301188114944805020925920992926992562343812240680393617428892274211668661849000806642250677904853802706158168139270330816526461767078816682206928379493451020945426410530214205366735861027573458288477884158974720462518517730678586169865953773619346860805263522404089928864715133796848827571889885949006351361356537146330672263524477698181879201399292668073736963377154647906749287484778808051793568882945233750856873983023681101877486446762793084268098656903959031163018057621119201059700737819707417893068145079136596272028041167864100808635993240912790705657725833315404927031490887569813803052659989747978902870672136225917157239285139523832820987285293242022906014807021297539517307617555207072709401915557103758101880866374703207658552717167024261871629031743616578398670203845145010511661394590543776437722045432947469902896382131636043622841439535325343156971705053924990756277001604527998152796256211819400401737517142941237289126764010431999183281547426966762936709294315439934635750807979630072466015194677788091287107512820964141361701415046593168463425200934633909062424555551991848203666627047740095529083500159100198525372458249421517886247827269458635064713201107365145406223192903368423176041824304434411696850328782590802658696897497690897936189264289691137879096752869393610940950182481146933988805694254745633095605088929271688349076634148489162202891966256133598519793307394624260208231476598255583272024422959223211701640066805357305777028944839196925934737143685787878424593126513193469192603816797807172350930770001744260738210492181594527791132248773772442474337238934499435825451262699713921615561203459507782379136009945545879284105871688013377149115574281879491211091433548017319924877708914640628709430373508312106598753405177929818777517171488186290125134696869199424500131332363806178203765336626360338075136787656244922938602897146374956523755523974125072861909780475136189846395364942918452332090812817924949870971788623363893740750827418672506905163435192988957870603635815064153311083755938613156984241480714329580944759031614792195991230298018243853667935414066509573007981489663120756284983836473503652501073794528801701906556892318454312024658966899773781631301034049208795590266743786611730300235813012117308873231038661071740390464317348910837722437441946680424901486034797204174986355592037121056413740669174778320763330182141333578507650569783414151097430616235976137463531476369303942604738350332483544865998605016450153339926386011371422134591067581845027340168741953389007877113850707476954679886012054339483358733840130382269619166636619983279319125832666915599620541656391744328450564080279129887379091718306217736936874591569435407540082354479175018029136573433215497213434864026855632979973382857651646109104000784897879681850669049498715996943880849642228480005258109054400389148701235146233279078532136660125261085992085098318482028484419848961332810993262845747080064857406215261968935028915622290912296472859173298445161650948877939921146451868085071705002815359488669431515340504747110611577477192631980092053606055933957425551761716597047112799019461050141997128841271978436109660421523817545506071212981105502600646406362621244663617285084778292744089080884537483060236107973833258939025876948230711244736365054606758797619680015334441530396950741953441697308298280221829710250531743935595574016286956808395359770843348500387091720076008665325127842744450623959978777317244748421564555601366688450653911696666458892730610964739087063556852959100128528572246160962249027998823150818474864674520354707510063252748526378868812578301151525333673873531761665669272880661776503306619790056171594812405348921767647445346524007519619486446715823617164737246908355057910991085942705172968079252305022560535021884887708351872215503755442925695739908972483360650781747320480909607787852837795130052325280922177657714388027492450598751295266673811702043086838173367590435502120152697573609823364802012594693099531979423317010987385658429993890275445428005414255373963819801648082873233494255947599281721513882625272165762160071485943588147778972637923150098392645218095269947537208234596729958454572226606550464674545957457716694528507940374960147027847521920117748888288745393037691136880438705435993641912749013442259772691598232673185996524617559720111178405174985817422017422128583634434387202972062927331777764312605401907030027032927996892042870804471421891580990905795009972923687405769974706323542811439968225799463176591822996860348355167786346249854290280335822243489124179865366295915820172517449392922220117476004441894415286549558792630439549817232692020443486991531534684212765427986499368794222949972921297249317498207928998461040574772878987536918960751943280829265157749104376008826423681521489865641200467050381955643995511341113303071033552063109975525451989627533588227919460747013763412907313799601646839774926381801750337153794549929467091449927107402348499049318752114431711661386311422846800463272503988533777015108481146668344812307584643831809297024415488655199055678615766806426284104402722894704956286607047429020658280536288356006323186594532305821380481358689442121524940397507263678758902296414693426365311774712185510698175177055953951570080655544112514117887611717485057210545954667472835847989421696111478377906252569224437554212456814699810422381637397970565203628667897389619547564581780169903263352114621954729189811271820652568959136215027633808700243264406225108779908800854115632171028395488644839651731865623278568312972687717527372824546230877921992892309650613069849449123045901629106870377708285466581595730970474528002134171506983613321763705263214193858134567889560108208864056748771752623140356752761905099239288235492885701377534385137692477761471596787347676897682450919003521522494348609902847788552099751158166829201327883637199590534470265114411292322829723742538367977907535661476648029256727061020785704282528351815050743430936347543345000095864301454576481693580712372231767408268105441953842879681488500533175815727307790038455663882342843076463865304497616056641413728784122349738520433323428077321502225082360150720334581666925575507403632785562408924261204191378353068151792742496237996813649547038439024314276643591531706351255929083437707190491311583989111837910472842142478778137682271593519150954918839422396621744341155883384909024756898436262939943684779661083856467620344465849293506479756524449903149731939268434781558039224198346842641456072830102737247609594012474768956699206484262215028219117821890895192815511685860570127197806342922854264904566059943479709059104075325690212945478261987656927021196059163838820203316530273123737547126783125963795046704693027798749910820584056690379794660538212671663977259354092448221582001076631749877265774967187852005691996064570925789140693571505766583279572103369646472496933589527902766436278760057500980879409494027735618701318030274840463667412049021538548329298159146825224276048315727347380873915379372467323646367554825483746006974494296743562339805049656404734266331476162646461713503789971552106785896758643946525284199763222072573944167348573452604557183583543856029692592302824899193556517758533284831216167911131826376261468298426563587237646798338916485740352625735907713058368844492794050325363974524827133810467923791734537282448776001767567878486653551767729490296963243883733338999240955840552179385036531358436242200627044739760070016105646949428274053367635310957226180702384577967501295358261183278768608811479816798281178936968750362107501427463700242018986859380186854483013719059034494840586929308624928180752859679851023497057241735087260345433167410593438210657261933734461817696798277419885500060119491010921276585520355506257057067446086599051649506634992905133638177762773123434814397036723767836768583935941063058041498771583800209402637127551894620791069488559294680852095032013328569448032641831585659677663552237054851938538318277070209333750611253059096890917913264543587315606664627035816139099235901583226465022352947101408013860724053846489522111919280711902236199547477691819250533603665339899560486634429853304299841649075073860450004501327015403471572861083618503446553075715535254673830900205552191996962971411875624023720216482588354000812336336847339084665399552002356224660084681651944857470970651616605381014709349250327427191443722648887061839190310023059203229375156272499766120684232804698639496165675041423572888430063288461853075088564993037200715281149079970372399531353467546391334416033711188376391717073968796869112782790999804612291415597211836395678631809026638415728112931652926451333178846242070092454196702893616060253435032956206653589783847693643598920177789808557857201526192380587669770959506367404625323804061337260258708640395952216941686087927667780058795939119189142396614593160145196220919942760905308400665591320773636745942939789946404476043207961307137231518536766704815566977532739470353878015379486556388855969933861227974082245698189676087937077789421205590460089954133134783432419083984792307014075607406855617407407826998620184496920244028102772005334947459545681745634462797281428163187499250712590035951553358393316000343892260110314672521664311112576080939874435775709595935050440794931734441355889592628006376056939409263596589166470712813005404780472280786543329159511673063594990679574717282686165754543642250109197048846326316959738767267912176374685769674728412757120152010152861921680385008882387785772428947983420729813957791481987672604947107096919156802226948015854765250818589124840706259395515921523807827772340796959601757710575344810535762825378898112618147273720591441915714248849296839423265108979295365980087074730189143576669196737008776322138957099127092556684143794446707461229131217547529039486232381623604134169136826080844881597344468357610429957463149339008910583157993324799613975666046636905439844815237589788991130002257046804736785492004244991293066850578790869290131715349521449135558057701712203354611241787503202592301163486658851992484677026828666254255841207039261611587617122915196084696710408064257728074149809871055566088707809429688329451716040800946938787983890486383309661641038942508536930388074355240512888979846060360668718590673463048643836062369144252258972824486879178203962912301349160154150340916659924029034066705925363085196824879894974947190267361322930038714963736607538056784065065917074257314143005802688578017927184125948819766749410345471957409052930102377977882684361931109935104708861233618960560404403686291883817402466095828983839807402090656325837478943136951246712561409951101990077187994455564809854157323011999192211530529924856108735689729534557522367646194527730506083612831594151921384897241826858312021857333483676200896594286280266016529668627543818970119138747312396033611706741673148175940521570810109468469023481826028053854637215960387181004463332521059075580694997531895275454967574088749748372352822596752897622964028323633715990794090036472047710543186678610832383026479736253323284864389190978963871895229927555137764806829526916884409531508549504206418580799622083527444924217492156143088288057699679903433480400649181215989534730032039093912663898595754195222268829978802353645731723316358594852887025094305647590407121296298182311371214446170954016823446635954534942362428941389365575673230651599425768117810934570190804313772692857411343852303191878338670350123510288399324575678419191710272447035943830663215061321601259457710210269301367608520540323428360171707398182941481692273514855035134205208802225429408646865702934396744993534796300995757729764262860809884090254841087661848367050530406821336445021750476579232824026070589223610874186998116039645833096989005944970613010552336779716635540073939969503979025546147410664174707146063998993705094917849361105814444289155666583020882740490122424780952828412713379887712653840881282321088248237819955467935377461273405299810626753033344222882527709290119837158222043243038503509972511194867651935605819869772689605013796684841590204506937797053184118541318292779507216381362323188168203664766130067984241392234100412497885589452390285360296740179119428817561675966412507628301946382293857765755578370395110916988055760471816320333133071223033422025522579419591512830559681517817081164547194163672350238430475515217655872224971640972382918981904417115417907815363106819580561949110207844128066681413324250142414998759569309829081808522645770958013136553487665921322900095658796213325715851389362423276572208820117193033946911432563107029820494803016964498862188947454653079946398343815323026970332213079791217059044748941423313692404011011689599412695799295946451781264440085499895668804530675730612490708913046647333632383811503514726498969886840218960195228289699181773219566499970198799947061749267979129378012521182332862557966378401549459609981458511823114337749167125355155053821769567474301796864067204848784325989782917321900970134222751036199157198763857174872780871488669246631971772384160130984887692637500920799807416531969282413351219714125166254154615128730849011532811532501692010437079959903268296647488882667297365428474605402443545817526046619002461676931261270215981666810059741248983126558811614668829847855181739977218767599183652483587261932420202060969779713623563594595928430236808204584327000364428144885786549963038756538108116261189900025530351532758210342234557449714293575540431845497978507537485012394046215038739191138473371646252454307104494488043578192521255494869075436288331120938300487497475346026020861082845025705776168395122702538646426406977165753525173882368153929431100098050276733521958989401632922685627804602367686681009782466005858991195925885792406160554029119453069052564996757828075985214415600281238303235588590669805640315047148527166470148176062526854176409472007836347227454861668484423508459900467508169297537711851561242626337827987107896482265685055330931431746660564801960419904818549021750421617161241626058494101247805930773837869551755040201417584164332090767750141073286300330756546585597170329246367990182126552414366819930092188333107661711014037718956989492703943273228741305381048612513189728271909939777480477996135037269522678493111664635926603622066778673644564710742324723406657713034678445034464931943274793682396895728278654495415280078505812878808499632800776268824259223630951408624398896596951767162779557735785251646060863426321542108573649571647142728712070761102638187280317976829255389587294469946411369286120763063345244585486031639291345014177640384873301226151886195285650406030174091100250316949857728570820460345625680788230727837486130611961739116535305393420414919719285453327858518613012664652822258134107533445880679915182554203527384679982758704500095004225331052649169752098948540887290072644150277627892481785124547305390323140702620391060598949405420974842909885226033932439445233239061937645979950807089147891780029069129766539503517529957734645518852118195942939427600607751760771745064191000604248689635626868104686347480079893820918666727109092537834340083828347680214986540899662674897631292197313571284634297357883407869979642181043228706250195272149399911373094049118019143915663472962898893227502437504545036204885943660417878245997693665504787842319741877258572195034967264200573619688687314756186905475933039947875405449370139349350842318717163754911332682795039209255933956098174322528786429937062923796601809870365376309529697644926865869660756603018803555070094325144109644645986555537003577350160302107249287734325260367615190971235657965021925958092250948029456196792168388225498795486438330752133260348092745761507907154237590711711854983840605024455849177015167249022504416130387321234808187855215921719195490944989041114188445410803463466660175421003834426759772113270937965913681836711995230621596999617357009287730533435672953095601265164823658451840893161287041600013486283388391144497730334385276410299715595680305421735787889340927360030099259132985940254261844062734701159895487003054047649955962190721967459070845816469754640311033591274579027912707751047513053991181075221418750409308696362982047843744753226187540767521661009176701465520197912064109355548741104534650054562032354127982670481838803784129895289915406706214443935719157863474393297131532157797293712320837100548471859838264139791893535952415409868528549107336995058521616814652251643453295255064434539901952856914021714913207819390529281070590096390140351248798748878935668910289513825429570921571719217364404313623018807509469651022300602180562843160738351570096715271114315975174141467281750656991753092258047390398360958845620280619453032503578347365300813196061628738649149254639479189675704678661239230190007587919428271321402513139388338718574670095245440144684821325829729911261137326285323274105852685252814878594574444265325680025303223541721932388628527993615668047018647337545000056879089448130732589497399764865997252276844554300319353375608608201872341518313405126046111757327417380164606237893725850166994016672835850887774584777724913000908964993645875164200857147743801693931253834108640660982911438462359863671755323940331659657082062468834028963535743983180432389638639890940379056344991676146164398791977750593946910951582628732077574516124321320378254203727783384342498837547492114441785688096887849111519809424008484590135547863296518415167937344592321820971285684014183078603088800570878902482095832422465049869620367268121815488984676883501286832293360523719842146819255779660428244176901248672699941426573438297632295065973238897079492356509932507663633522018857698357116651640301604345589412855326228401731043445155552254940219241226251632587408177014907307986077194591048732821492985772417131130238610853879397611387180216581301322523584313176668590968242958162112941950619938500118434172333615099501695659885268331677964316060695912196941459333223998719277973299386595425282531867468787114496764055312326824016790856507005902048201855669879568173126999901361595817570831208034125809180715926100794583303199188190337535266885260297892816067309692640543320267069034256498557091852830066057112415424903280618741879303649740438324395820801198697184351344730043856797059090490412036687563791641750935838949023258172974490062944185898101782577152422227585523769071605855581487704275957975899559084191158561795789638457007721559027958340719485640640476739464035603050858743788571442421973883376188817315531641502095528084497396293215846664661849380150454331109090094903277373755873536935713603936534728380618563438697431105501904976902911704188837706896442869202593800480412188249941027235020579028127570502007359533035182690695764538389500640245368325646931893324016562223410260538791508075628968317137717086711038810131476274311248622736558311075338701146291647117357562825655081582158836910087072590883395230506470914688047476199347056309801716357682923102212469202794337542030554164496536194423146369052253695436223536735969821853015169438754790909429580349747311840303875964348269277249574291554423742996615544650950557320132784354536799461401270175803874784217229767149083208132743953168606436341782283283225945934235858602984739106762858554361942665017435157455641734403578100626943348001229006301467404500593764141877373099944163818682220281849422246720235950821294418187248810020074212704180708139210058982192260794131452270468233297716298817026276196559568994689632353814899108183867063833152153776639225002231635899475438428067036822408603736349073863849184962185442555443144298795186953824201702272749297992044269474654705998682489413998612877587932582392345695001781646595948548106159301069153776073729244174493830890735271470761941863616098566273995508775761939949634856939472541250343101095780533710869158467664538355459392965276120913722688843193337584641087128427433532153002681746557555092143140764346583382823559852813380484622124651733276808902417099450112488024640271475787661178397742914932621276294245734883674701252505158398348868709204292527485228502469613951663272344529183963331496929359072936944356349937013480364889619280599590143554027631913198683072006141044253971924483857384817490617753372920204555933033147320459333051870526530944370442433474776197204146479899722266407689178817344987967521766865849689951154887859514705992450925351967501388462624402304999125332022585783286277044684162431550692548510760389014314450292606719334037382008870354741761264801337012227019798353070377710800255096818688068534335778279139375043448842839505869021599054030129562031401079429133131423028321827595996739368593814027356632341150785345862208172954151744180045356521058599993706757673718027949058467447558745535219362147200510060830895432059987305101228503805944533321873865930948166289820702928112697777629747054281179959551653508181944310311597937106767369046316621716555582281215060931900455975407587043177534692370782359000750955243257697611421134424659753454112113018257787833821297008702254344831873336433040931177842673398665857624658825790901921247528902847891822600302322223899851481790900231751559721323022651187880027808524065780862082761466125047470786555246514323690065935805178568859399502448349060027007916989155568329365080127776892587867557198713008526010060467095063409324062906818287232639020700274993642612911783403356147808127480641757600125722294282098961024341575854254014818754286734621131706766682256247772211787244419304247616927017390018775467611455580485105511102324279251848130791050300617519846857067506167431682262981520607595038611846166529712640308645771628345439036201958050959158202277340432679937757678668259643824927976550589372345815340888264537096623118034627286039652155974167223609471374081987792588261256361303121710213609635654206121386447008600241575032876480173184967776410429469360723545683206548312136160943660393356262548905528284476012708761101780299760499674264474877434285910574151711996679610928474313528755242790064343349480518999381230393127072452455609057254804148280010136836301313914851777754088955819828219910614045690046499623004879446093034672290906150670305657441639715407115220318159035223126699602681474126775033838855785246691070370898956902672429886461368551280006119672161877984660203519322349615732429626501965315883376888057643026274465413065799859803983399823868672078403775659464857405503583306418475016461130009667340131681235486111782857092300404132575182185961919286133082588997920916080254342205590459503222438635537795367500216170753945253071905505799614418081900573480443323939308731597565453191015057313681833934239222333577996743474702629328640485500288244435650427981181671663485769472563587303870127176292171476166179971724482073399820434961031448019184586217058309143126385917072318121984416952994715910816918440763576797518162733875993681191741711024462660383520588206348504911527504040727869242138087550402224239377869689987048443668265332969219877838901433478795796072043661352105669469211324221031860839465407468234930174380079427631809523358274667143174207392463403713198885445228854756283448998799283107703273892282373045111375640677922021992162667414247662345664277177055731262533454821653057782181321486380405674528025703903159629300459486774074778316829879575859507534119590756573255239511677921706234981072311792967058309473557936916082303486873875063663169202727555883226112082867663032114286805945487284756347375482835641296723861021445175960619797944253159402679648767167939059912402022457738966833237576346398776233586049998772915433748172895712962021719459388255398622003002844593974871282888910039325099844224778857726997307961529105674643826623892322914335357215298422285705461723219924569522479104370639425553861329839593575058409439077417879337647549175361265028815602719480777885398815262595249863871940062712213986813907450278934237256246078119724587469193888258571314015396647628495007332110026895261882909311233467636462351381808420988473387015031282112425827084821527931903281613626213541838345070519269772269357717334354342209858275273699611522558153499383896780071363071489143908069416525178505577384097075861641287903520602045431941400285295997650486843628020164084865903821096240256264252194409694724788618601841506935741049025853683408126731213013641886482454080873827885916810730475184420558241788200670163937786693540637996270329719099125936497622751799562890260509013583277535818969463575791783874029238190276447903450956087476985574848204408246109057862565359324128389123551357613567309079158509572583234380502922919922059333263649318307939914524525329904233158519955842576953270411640593259622867518877715012235084783249740536183499209500108659015539226677325619877517298557755854767314651051543491009534133281013805117244654028826485923920272258401050795725904085824897651758482123147127062891351744421927343517842304398794014711004989345299955061862343072638057794974272609548221012147825420592570041698695354659924876094053072801187757025160955666466280316642766257657381679301729941718491405371790632531412146455789184163050966248261163887289612362681559308658784410177932474037297755092706388944804416315026624328962391920819635975836222235249366116216514137908208095554411006255657882194442039504433191142639083419237898425094897542950254141525581359965974306816149029579919923688747334840570306196677180271061044238429021762535722252757969004037629932201898534418928116626869330973913202974801773369773521262153031296822918890540373899621114359300357026222647749246568717191681473464176102127572552257736576876273401937088644090349021235851520031565632153540990979898469302203935361278440349341888032877897357456728130115407262193176292241046262258537209647164493365525795004406417550967571512218241282123561372118511253867029231850154957921633976589440994518769126143097620718093095559412499028330599480190994390549604241920061267727305495391755193376209920454913677365376333643364260357694876728717453652710886242028774766414155170480586983138816031853734855931587001465427837398005506206486150830073142535789707373934066584367503361733756979690366994351596696123872053232308179600333281573870521604566974893681747293975150663996048436751549901306537058902050174566719876410189209523572728590607612843602112056315813689273435961910450493678820853878595973026050738596343561831931161179641851774832126541575639177931876126352766850901353705370549543524971470938939915324610854243721725953851619139737204483024160976203431669499171221175661042869242174347349985511044012348675611252146089670445509725014962294425538689465018481596756980509489533621462103239090865539585900186281552400799808067795831066963109492690325202691499393837645800551069992902474814099597637958629247244158349539500585359634429977697098895363013030275204876999359705725941745129069952743713044542048552382711815834558373486381710188660720279000737766479281219791276981651821876706990585754510879613286188228447714654753456483522187828988124717302291182480202248518992806287239081466777390381579960544624318102480026313596859802392991213954671620910343132374243944624557311019722613576256510199625231449162362344219739614774841818442692211920331875499544795347858724653997106135837023769310948065955869122216708135303595681750777029965524659507538158173091867273816364821195594633263901254753818404111022285868848193283125943473651989529834328164534298174881118788428220637544158243869963399486273960361617972284385334910550369193483171463748995679407403792093376471109335624987914602375017611615325201128536439371418829223209385154243018506003215893141681463898766207634369922580450338500882162610626080390190605463557372602781613037060416378062467773225426191833531652740212142949283125259304027610529526057624004473181303991869418743707757701778071187018042076796302306666470702222559614028274589179770184176003544011643893939570038067633343818912557029375866501349088872556965108816845740138659075341949350735911786497196352737790889116590562030101487263384930615313033607990594734524077807769516275007741860878566713227912659105873857668674523900766440879043136684514643280516575667426246730054563255605851353699642232398739756001164442171907007505177556364164819923087538433025461838085858075734476858288081046725315667670195748043335469669619451293761190255748219793907271311063967280297322387405983870557083775443565245398317836422312510082695442033594120139771168129087533960243799001684613110567839562328070193362822928533167795334517010435588631913998540875208120420541747002402454630294231852977911698206441112422220694488680029897502529863725268630603305306491086402273144384291974938686260451599196173279000711693303234419157116888516598212559379659589547170915556970619919682619304081870964992827854680471975928679793319416703789667333913302337862726908440922676119610330131445451432310578000684147292148904455406157909192409886591802819947821050970025135191589749947185878765166241998422235433881123681512707159529217650269307611911766572498158326405552731731298706995224509406625197153336024060556980730938576939568324114845129375315900215452510097569849531443533971247102561590163479882240892980457373133394676271621695867199873049395610057422033971477744026815177050570899995623852715405345299263773381767689461553470555034072516381468709622912210956941315718507242950721394334826697473852537567738031826697794554506122529565486217934071232475250390787510863979524916240397168378158735719775087036803199289270306838471640517606060581659838131806001808224520563693294157515296421350710016894452369369792673392154829624789207903546799811234559886438207671277636738422082049378811357677217398435778910133426678851793206825477875697914098796714971001495760282391755199135720306438325576997309113919584707340731645378108716435651995082824326907499566078536604650469789998257260619568808139000565017730338162111619101110863305026284860246414516389648719747187876142020268140530400438017376483824934172111047020144576576170173238610428053865111880250862932610860224682739978284758525197349484459967422211194241014981477129122111110349520462933478698017882920368321666549821143737828328540110651744299292123755748729075699813679929631663691015592755848749040670617816350754068732033033306396870807071426422085021354535199396284527085679158251100819248639996078564949707908089104846128698612545181021249836214444541719156819314090908995741971536023054447248549816658694212369159277879597463120147686074407216375307396152928055728498752511214497329772128647435483034896960455697946119870391799324862812000049118825599474088071571392789506578515609146956255667108748945279163391544964997763618129189512234924478241061540270460505930747837808596753171485175582571846049064958557979506974514885902534367865254884980626483783237687722021170501645086598330721953330730902419103545321464672390998204616920973329383470609204341408376102337246917963102665423210957577270411670626812842059014033038688077345289482512711344850465853949000282795467281411324925968486689708496247277402561386735155413988281986627260874645496351864441829780414049451991001175012803538306642752829317456376545914710779039164047282876091245925676925138748683271728214558994439423774171715311486007919029002902201286346306900594606063712997727635257546011488855788995241204717539722209422362246040777446280050717432960650921369044398975421374263733117895939509468580648743616286510532140563660860897001355908182440868976668032918712155022482164660789987385175776548933447116942939472332782576192768038882229118876356244103420036550619708676420686791910674825385255758428105308706935166934944250718605618924955699741024851353794595811602070986844623797741858044140749040403164198892499907408315011425374262410839981117326283012879233874864396533856564022634985220610378698613246987473242669611022697771029890170752927529381291904395866001784010181947232200265503506670344244848352757044855077508699200470298140536031773651451716581916459006442742959446098640923539553587263757820211216221008486519832820939168609760420807844024233595575100012043732283103458977646854852315230375490459845387086458615992600971603906406218774398371151572545906233149410470541596690073870933961569709947624375886305896444439344722433191262548997280048306093631919859644681356582319921616090690476805679351447991020539579767551906064804226277861336359391398258439642254794369221806893355688401966167422709553654748683838894307821881980451956781006520700949955511311783919995607642153239537308408722232668857500986785754926526657021478256158142147438335147789027408512261670232168589203028197751865293436279714487196381326491552038008733548880398716787487624513479829653362795942006197961513326462265459902849479408344752111623039001020811679999272733779024242093641321375960591592788057446682427865028374315489233802984390180480827304917586847784349402880623900633307451798916840915115755385869078749695329875263491898733086861400557277989174997869346271131448888778803442892781538310174845688056695236003138996817790678044504242426028509154094673317135963668325320450057353645879305746997336760621794652063958008001254213389395628435380873507101641885764688792249796605643431055842752133004089116772718484609594133107491661157581223010212804771717048828942657780701316431850563788244902593256887119540036002274860184188753697415843031632576606494185332874521033363596287036198424233746610500219267614697713724381950892992458296833575122438953894434997874191415231995374495896371887474793183702282308511126917607728186057521863414943832070047751627400859767254449718465018983635051847786216324179063186214786651967478906414051221634081017665326391562177465423874002638982657779852890547492605144042324052135489742586166924198914650568768520323488798581580361192271721463607121757562711574535727154530592481964722968470556130612446924151144160973944822089745220017804993660516454794749901555435619774177067132030506987776956465682501942937827009061576055813925230422319242146018129424300615337953421569252988480105323790417199825524500315248619859530163073067983196577736408967991386920754536966266339888692627061998793640217168500809980316019922606739860322352092139738797567722267463106233321314716721302456215224345970525418909959306455954329710455707097854351396111856839592374234619685496895058988709840824774473361489139877602477700036623744319106841846089747058744230514173815443400562898303076733317025495549378330948289687637980175886861970351475407135939653748280270359441640076556929087923339886408789899109661596539476032358762216124389820384211075756414692223156188056999642969580925078838062219140821307130205156400491474114206034951883778275632062198193984042216747592388048633754424596212341865134796972536329806957685101599257874245167109229324548011479781129385640202361723507048468793509190183201345606048555549861354956682406614294090716151742868137256386528608161940516863732770808338771129528494572124628914048344622392436726346364055767152991895966360732241634163658707449776330172863019703532363816052690437486507528121160728984549461865943293852508625162194006711644923841806761373845092218666279893438122424036964492955740885371439778560726060375697759906365645994147964693312834775066401990139145930265387129885373135959161037894051604094322092265363146108605375604380308051857871555672847181653017751843711333107614016537738588183394000877107369396478038686259088824119190997405698761295202974162045824644871164414790872903902963552237886050444404152875936771997462971750497198281976006135134944890600713375538050993618973427129062570699060031887448103724546399346944599822198623105954750860029539849406268228340469902217680518495926175296111049057047439115248777036494435501368264641158366965692102992086293509115997758806721640147954616455801338827025610989549626996100021239180325867617747453374858801926806840063942906479265607349020007328952832412801903694298336326002670944297007453205065516138852330810808093643461942848894875369231226227320764959657798576620190713281224726670970755870072821846671246361944520957524517951333426862918341480266067612759177148983635261200543906273125281683752588363291429356618824637644369053545443031595505888268089075600303767085061566722414102885901570280372074827188010796823899023904553274633801005839569243804118943468093938777314972507240706390297965692199740997776354618844444256260153592049857558115992825093264663531585055495039449363577891939007603039999418232253888322482630106329304553994706949854697433185800331178589113067902471005646358912540117008175959910302782905299347667521965075933199584541834015044744376648474542467512056143741875787774391152410639267070727350968924699414409955209963818632398372130601154943786928141903885261181346209762261610974450942518156899807482053775760426944516962528551000818763530755925939732029361635494078885798412932681224979257029862464833658686964652763375073038337388006164058521319695684701669572365435169146180961054526849164053417169629644563139225048665777162355553197631035348151737806724630047636187343936151281904472637622773907069527983680331517120140288038738323798218991443940901007534344696774637007682743409207108005186979356146961884891187880841666235962043253078270263800805892526350142331384415207107219806837588197385085272267484958494102711343653047372865755863953104992623157579164314459439713970163555433578497659519345684385090782530327959608163015577676394208823647271943464414057052358513019167935652173282167157316216871866148938987607449699463192426857515856662879799206813329414649892724396171673722991042713008740857333082805914595697488613813809072854907295886084658448222220851454360085820135647062943768344791228297873853907372829025846823972294950659378886205253403858706199451846337096811806917084989931630794692665076109005131248355670537521657098965787499458534403164862305698974739589631138912264730165460955798505733879470968256461978340641428069310701262247353796195491199006507563703864995951245180913697444917109774328159999753184535956081192022019692266864323055990048438200824242977959590103882965174296516705133946959567157306600336583122604519035479852979783780656785918064427761434599517711791740585353713867910436239900769807057306868790550931664608385410894680968483713767376816906458197131691879753439451643130849236908718023601023461416626885909069003147295819376234614460425529884473373826225326656937832660955063421758652606572029871205063886558988037412130343768898023428715561073732710267377492656313420583794529279019394243156885304362869004327725984348472020565652202863067566499758787553100805175893934563605005310210235859225911666415723801508604531113567443533574676776140745206103044377454485739182163680400652742682662870674214286960687860486065727858463287989123183841350811121403397598167809535150195106019088346306635348282292585309499953839887099433613282277046082252486921593342257289429293718530049435893015768457063654431945916470222873212965230453273168313370619675477459696666609221250604562433657200987650107202247407430693205171329878489532494819520495663382123029868255721430326641788231450089225484990356398482808190445590018302103708623812871674363952085180238756353923955227390647500456724076632011710165364390929318334915819859348629856669380705679875480365245288114646440563223209963924671176608993013185491683614903251250296579233040220587178853274088714667303179655132224867234070153959699606481247704961039088560361065550347482157545328576687678444619713731040074195014227075779672641851655827836037438398842143763207605268710732881521004610551512135232528077312837273154418837948690120948943135020022260384001013341228146838559631699187582806967811624137038207066786974540460595831606833500048064207803617849525478006960327770537699195837730111794857030952198590471971252664440315017124201290583630973885529571835859025457330348350209045880783643185925238891277295845985608685809905838392622535014647779010190495340317307790739626252219878120664140021305664389848716512505748066764273506426495682755010603939154808468086600171155979525710514514705389788291953326254964916710652739077272949021143778257179571029164804906483625182654846018382025977361798361512779227575570043089196767645793560934554255241433935800644448317291562918232775244400005245192722754691030243213328553579309365431324956445898607805679597800570491484106901014724650763256748380226524176249444427941379594276717876116660275908511131355706097671664414453643944577555103075562176343312107983169972745301358642017238231336823357775845191890438845717436554162146460660595865261988031712308020147550933877663240518828261053076474828228700538263497866876844081641519443646321891454715821814423966336781794217029785358804201666014034916165537140138311786120573014628825153141253099900195633604822861236601392867602194786004442132434489540912788654880607318459887745325350356263970928997927014230853031157533272620235691855504260237133552054387340083709896947705617340476985160627475062824673758445468153238330895818758831055209635757985177826465947657472415880010036893655613785440782832960982174410551463441014715239903189391319212809083110582106224060847979481189930873454322064971613121276999678853093881853434565272032373038343251147742319686537334886058667077887850528917198825463008093971548608420523906077452402080775532042026844757411396442408926815280377378447081150449279113479672299481855716909118573519305876628639903320083166747615855662482491723537301542145311078986507066636360145544968652819218663382126189004627128688263970609139057941789697881103989294924801485114689483144704689411246063792226923371302478785355654838239867358225432392111579320600532637324848572247428810094326751673062858005770108461293493083224898879632176127767697135924306217159306905547759629371591175176735669172714335819969824740244271356158857721950261518772768123700750953058019955991111773803166154510338758740859185103291674773710281382801244161525489256259205728192920279537084215295726402162540164986449718689806738502074404395799273919508778008968024435312700747471185065694631681900274425503002143121516319374667861444213296432184303789340479035960510590667358221704614143212077675567908145434693206511139755962461571446747758811735360013879319737404156865990061071763236051665698546860977634441180252647628359917123138517221095407489897327827514346814278681012061214950151456116269770045232839952509791550582542835140868916647787672955233718799005131640554221425698388811010869823068738774432017225710004996510624844849249461595467751148461875464166592308447684055075140044324614432832704109095399618593806396863460949824478011235549929666844110494912033123332752316825798413667858404280215425931626986178427222909736635224869824900827765482034302895067143865314043525519794487947509186993850527603442806156396317379532973516440454662172387430651415962739529531387854653601464229210931749480261284821660107577509545373695911244511107911897612146626048635923002988425448325989996832748079146747000869484879022866528473661472602020110939334982154636171189329641188950765963398512280837902322465702446965069140421420731148451801907184247689835824715742610565442922311597540659198984233188960694608752111093960293424526820057726796524251188186906782878668622983396137398387700562833002556355948661793516711104059667987693639645007828515948914052533275262669126467824136925807716110558620703564580967827099278697211143283665982705958777089962381544137018158434780589796434503565873536045937826301114529812009635373440532864869828395818387737197102838740983741167665898528867243971935760602712316414265157084109431103013010826088877912148568472335932751382182265925611777998674467993067120153699869010814511141421966038099266717766651765517925937886883646153074767908578853644566351747807539751241872677697577557718739693183140964385246210869528949741217254065556266428934803881626190288989540977690811062863754996488131642999221787038897747269494338048411414261435181232285523071139831080075472580968534553456315502405924372201654356062884352397924478343095415822699294811707490943972020436424993670524394074075269530716712234936653948869527603017621446627716385897933714998419877331900546731616807668483542367511339287970251647823186198331990941053223776767536711118340308714478590124369770116019611234718985797638891539373255493095609103286528309781583287117239172704242475888151633138892286252483317997936880068677509871538713401773932106916588069078372591079784153537959337666704282303501414988952590196586669326110914065961323686681095204042618770107398609703477340906605726606753185261697711188719316939228314793568880575487265888416904254652462657225210385770341379498351998408696355149498748194562926056801718173151267274427152831722280734656085774448733883759380342165321377701452622208396900567918822124065871637757775627223090824604582336056635129797285805085917297404636209460763455146276942302766036040739891821767651858997539660129473583100089189438741430517960433606433049866492203983798865803664181356934494856112072534198935698784386713202119747892833729860586514511075742867597192554845347534789591424762210790634283034884552883190556075791135673693230448826158675521165909333034754166187778949040012849151158998142421640907084606089888936539869273477130900238184468159680131525523465779081641910100504887034036706262972503784180490736306489976507080076786220534229940891266755598671972716414549797691995123131010941051904105840849153827299434507132968491241827316269702761178112375273618490887140614263326839523923359359143910398197740744977712062701542469005747418753220366792810349432528453152906188867570562985758121782284627310395979435419008273040511749124730193722453786065319918810846104360516395176343276202614705740414480067529170118772879428449068256981497446324797581278382318590194538728993955552240833051543716702010065175543144688595440476869769584059708750052224201482736183490872001016872520345587732938953319801629731195846593540656493242273070287694340912003213936073899498873020547606303211787159874769639173874933665672649212138573288002531853348249960353511862019390576187341803150381353467395070186667723236532256875407521562953844371985334790189539925265760991862831129269052341810841317044271380290586929371476211994129479667085070735720923505686058666208367641725652937065150466739878476584870803391452796278619343194960772304822001499965255899588771272005391248967275174125179830595310152417375506933677312298756011574108968658137692935186176017545601004067194529439178346109838856688741767805964277716930835809181804915717737214908762441161519700624007514731389732511444704145243682804577612350242293183699613899437144901939979944751819358193360524211271075413601244836590964583816692339077236979960045807987545103295804878401988391891623045770952895652281347933656842951002834462449993878010185340880091592460034879961100448515581967765673736593919118285636004636597491607340850037748402630869840043998899379291653600706552117007597381828373400968043569923217723762494399308152627054532168326737130777805030928964924736547121857913894128368982758525455115729442989219496476895396704347904160868651021234131529284041713844052283172181977194811112501543936540904581295058240525544067416218090865742179062600430697415414929217398196569347548094805169171293878499082432637101849760588709224204003274688008547111336623397092023797265135236479572086098552148707098910174643528450505349905098756327595767014002592802920760912267218400736774528851815951095776603113551314625419155979286544928611421988920785471893168036074438361391276858610939527359615346173953879312135542664303502793491155489570980054335629348342108448915662466353785683005172526113472508421936797343357489348572130715845051498871009935799255877993747297438356855133582977586226831197619213419006799963831629986838327392278880229920640613618738763759787114810674343193476961388424794007567162875589443849825419147400530240093487075583515098460912656332044860969287220853834386576913400761058739685010248541122919469404028274726416406503086681625757137275328875856961378240998623615583334370928926684594666508297829680922679914349857029882042725727269752948689072467801582243306022669374824566975549917135970415920360325249734320436835539728082909387294549022666422332418729286637615082933083646785352498964002453625415965111163069593816243116243732271002371686683080610651632046133975059752360446578068152826092507987267319212274583475420657048007158540262361504123722720223568455430903170568221756214894017331699025107271462331712219142373991401424837602352088612809721903815365222318567290443301069864361869585617612722118556448778012889948818930507159445184326234594310358647869938644739716655724504110744020747850153765311483236869972306853322324781931296676419640185012496654722228123940854321361854977877071974923089824579330210776029555212774600219529756719900473280421282234137616860742949253476039804860039665990727907209859368635413922818044048556772406937685539253033343874263978506849668122248577622806197421352509716921680574169658480768034083970550137981966509008924174627413695922396146120865527746821575277895479588025629513674246618161410429157719384097730706996159539694567035215066031220913010238531528638419320346880743651063787564548068583448851305712324774788094388494989094662609957447660297471239338557185236619773388906364298292929842148152153375590365047468403324475982951763592591557583666280273097948641138839003527275626166818692013213926903663184948816159203783062629801859977195733243714850433016920665018264182405266091655138581021489343166407537363352542851735544324095900964934860676728079274190755829217252068837586579689532879789624770174681396603623245009161387432803511663683619898093812482900307279342313266846939036125443684912230187464453482284829619801913703176161893876559367643704031129688419454236887577775673267739719346658448504350661745653074198872768721849116621405022571820751029822649420298722304524531350300776651955880480680792872672618473363225739349438410744128241667728798331643233594689124319581787211756287309832003345968486049093109873669453878814443134783569228501522808715189841529718081943440656335530919629576872006434379138229837350700071131364836857657819399971376535225044035124421670570740227475843029981239434348076918841749334169294864904817743279084138964368617025896209135126577480027063479805917730844363839195134639230882629040119190269690225842666938927152670363435639010329844928370471145288749839866289414271208133272683198463759144123854933323140343991035471656722057616859194589309323214205006319069662307998572993291433280084484976583222669638658839806888134916619962790969959098514072259730631599208669397425269068474669454633328123825407921435195657576408192226415665802042518473882471893994312388782205604842303410598031446602812821539072902819405143860279358533612881725340676187103902915959205798812742146813097721233765108124600658554486645164245646922982861781658175940055675431712694631411660087626135857073580996234522290925422729804658053594448713092466228302992716349170891157646596169167818682926107137334340979030440435289858444848900867802351990278734613179868750519085384878205246344677101502324461673411417594806493530200938453160689849458341521591747291767176260500059806526434927482516405518475367796080883445490202659363292241455981391023098217222073325184315535026083765815518508952828421465069452539077589071328581876047449666422993288629236566793183203896068103550578590442791320704144092645846360538489384935070281793885585745465885007565209698316257144171386335335101845987859607454868801203972186519112941578903641533593803572386892502663188183771790688116215450771447535270260612637571632481855850915522387154889517077052467596028669469849454113641138302747334048735341550743155711581690355054166202606807878542014588440451901123920618895355461199769245406751101222729383861900402599193249889794966545293385835722736599811994190704049103761112501533267382514202170934921527592812014586645049247454956670243589960257021529264028187065222177170968668254524437684644802835388562169684982930105551485498209382360095326492914158394139669931895117634941479584129562048324256428813370248785585450417983410294651734930028885250393976548543159511611377268923613906277696610906591432759451467543802537634550072414420685077508498256395045685226998836119025350381363652114949828091153208414027866420454137355289643270220821933974889136911412978082931802920836792911646475999752286892930452015293530511677346393404420509737474817820115634637427933198816788858672175078728045235312952875151029189344159809649681367935270803324251497942688325829797430444892301062360152431897308918273636929752562990324783944290249233102054115595921053474963356205587509662497697114485548532222013632984106246001296314120807147718741890504259380071407466223273818662827334191747611135919086373830807541992269284319294004547779266020626417416636755550829615696134375757393162957669489017786460483550522319394933484468471255978659603328756852116809481970431813231358519385326629813030690233686835578330431469615687460583930303110588870960863484622289087863507136579368707286536913785731736239293207978434137475235266274062778614459477693985579216313096596420711229641294516611029201362326577633309915314690700257398359519974820436671798876922844146726830964652337684674471028834302739167810034951621637798564090197227334238197809282107600472218005519633291619679377312620763705427141903219068939188059848751792215887261771470901856368078598146867317140832795323117043320487660641364234778076715501718714150934181285511871149817669535975059062187090901387792891704098388682971057170619080231966237450517454815607445351461191151947232848997132744152493362798764349374428481623651667823045605357362511465342909940506818811228557902456421995204324300732348592906799425670312218037740226806286129316324149392761021909938664184483325280007424864504912581935533205124205311415864478262301154394333653650327055241152927204714315857464811426972964323039099411867291990106697428840310835848822179647428687499211764515298088096542035688357849963046767833793198196882229287327916058927024847325112328828276417550261247705773695629003882256395773629730211906037097321901934048066406109224007114507463869093737694382238246356062220955897173084360971794745195088055544980892557749996726490850106813238539036888161155647858493832529600104842229187261919379159458311719310378927149022559979398484494762986156502166593032703616425673779668093983090301940673087328099387920928395357528760351390227950255284164272784703737784985843873397943027648439727366541967747159201556931499395046262021625743666443305588615537791873082841024920629588779263868836115754602647523788395371694733968364838133387438470263312991308346382649513719245149254680875704151702809735002775443576088614741618248307248235326660458654018337343513643321753793662742747599466067265001581266537347956962010902107084911586610679250427797010066894461544561458638330255708444936725393193038589502425266030471476120264181014819238535047169149042222418340906156917844151264535812518713214491642941445677053707121389231743924493450631850293056051207831977144894730634788098913663376914811916945563958685189956284824291555190190780104211120976671914728298927607089836988006938792512428785585165439656597601754000536227772388761830864290398621426907668031240544970437047225380460337934554458394252342988503408088611789714394946824464753787438418853915338247694442965640486780126569319443640707494074333521176784493026118945842649272280329187562204052111932689074910121858092832458130532731649692526762625111858621198579702063129735343393984459663439769510600547952856597040941903423955381048495103655786466112059973261870592624923699864318026993450519161440328592445001266424089622171425566280703543386644789121262090649507076505905365612757837199854539050984007688672615497216720987449957878814355908894741146238813321781369573537701878346784401883402634125210195184703871227041432424885387073510996760060744769783527296577342026538628488480033056852282026788047218157111189587552897878413838150006054066215708405733234088116437100455423212521317096664852768674439395444626718810098020241151550699990703881211988005570554837741562956806612765212260668859324134095264369985009677649998163402333903014933992145605741492275796431615233238525909595826736336174600673143252909761560382151255718424506301767180786005912694314215097964248431605459096613983987353115197398921493669772432260597779832686755971712115765993789857902842087474642355744314923836364913906243159885503547318158295042577061023830337918275571991531504057885242397998918659614396440195677941010522518498974518964500057805362210819435117737762430644997462620131924177087537182989091558684713088743125552887121549555377925958553125724563150819473104915456902707880532652104101061678610101382967641901498102270514696445363977299490556187715450763856715437867162297050745049381446540982524615312202664111028850802530637240376042131249651881349034592962352833238636586015740462719272670756681256483719137526518632852808398613015343873222748090491703792254642304987077071937872120443682663114744872797558414615981564032304966108039524821946819553976311554903395883349434110044189614032811590815245056032693175271823917659413334426260465902162165030029734010265550711146438287948121891489537509298922901832719004263870240152078526056747948694285569915928725801276895343022203020574878162802382442354924169396396512432331366345456356362652525554129276666403329121408944307931965310398821209049381443608586920069427529553629683034996488434340027124653259277160509909221642637164398926896594936649006597635732592203355409353442553613533653396052642325888708959309261130577548015884820194445481354565989225546253310307402238832359925162774571800210945943062942088181436119959803101097560449437963606500728559557530551231445315071042966629801824696158936735212644764833183849240769165436339223871051873437084855528868162567484026262167144643348885289079285423347306419356829120442056157133473543324187697263145248316778133842057317961801241464236080319519549209681339910639608992488337125011481916150463808591969107529126158132350360611601445757970542410425208550214335389298188994445734692704256433818656934001185835557372362057716310173838286505452869070801937665247154083095348400430312412934124286351056626550612065741740600562332838434887711141845562845799195518534218633047679954537908728760749838261805793942077931320564438103985373222934625943411190065560254961688589445282368269050933143678734895271056972700568304268864447882112466995777602066120251455892306246754101613203646780623121324352175384517718539464637962540766125894070105671831350821567784232620061702721156727393548043129350673562419093989020739498040731621185493654284905532589717726208482050344201705434120214983192700708638603808184617847750335698496470194326469575899366980436492312969026807267378559008709839912926712126154304957400705080326383727563730749898257792999946435933427301727184456893932146029069680395168594234065155091403928821906718480241804093945838049014081594990018378569854944609562098586393791648854419449288965573026995602259421605683978067978998962095306210549614953709650117492683703687221082731706538128145280252490382622864102474686921687252207512198909835211932633660280652120266646935295872949830123681479512390076092328139123760917364956967855962647721314974333210205795330893031148072123884460839800827101689125350904621952338786036814487648644370967785855782777634090358075282483981854049758398869028822715810766844064725758403669499067517377614689818081985306728251009195066943634349568885228374756877709679220569351496886119851174767218116999076186388465709962271696036402804932370855674968608011369532085832183737924275503537470463652621326176357056249960801637112927868587830475012031725998841641457840699340795748034490457643156210541457323838090240851522859126822158295763557058787336674397048751101040892264090743124844934510819545994469480798298426535432528219608245817506944780093264841253410559316880492784407697646805807231370302814710194090602583449132105060745184193944960188331931113718341016011529532431407065775628859413957477593468433093974278534496893218254698432124762744389838044929591380562213860061234297848659723548299342867802770223899211289053865875609168346011939255266567782684372557111069786185209672536204995639467810834213236214774514962899797457926357590963845666808185456239810178539314606741649419715771132186798360661265328050766977789593068232669294975824001292780476652815369603778959014378162506886823945610500231072707651760696999984003879961610761680971811847666329814671560878487988609037074134098989957538818508135588121800536482833991042993907406065462882504775705197442915359486236073117614665349686768080440049029507115575149194583941919099570834640301573152470959594137880674205923039165355467178483105083839950646469657017228940885388350717517661527213830565614060431560227060443780748544922126763140854189176559695622837598013055093794927046065773178979728637193359985338445569100410610693569129153680780948640987753253462300556627569052905458723476550935643035206663935204260425922116649995585565018914834067580627026458193773428318946275245502608634358788706428101514132085436541917414370461439264073453757403910374557415072872955673939134954324098512150652089888970738127967117337666172753170363135436032710470067463597693444150652298443366854807752651649575351577307376119131157119778318521439400109418905483835623053955190007268837952636637841083935011061716825311517135723519492858759683612634243321322944033107963827027458723293706541474730846424376206926992569438162229080327456062010007390767124097460991104418141227352295898673378484316597926521429989311686412329475830652845438591668871128701288046964198953867313802863011494841542857135865220314624366967468091363850774666232667210580361087220352790178895807774331859577361516183707074304256224370385426446687599918248531708821622017076177921531696231323266389890420271057021911019237511411281089495914439057779916188242089315393380772234737512838476437917355116962663258224706438668661475384851642177550003479879641535392267177865198159353907329660986088255755576711947629162419775306329088543276862760441135895632825373193351013305298965547006776646239263927726332594655355546732814590306665021692090577412540145141917631523517238546913809522124232412475509145019228835875030356216345771923829326374140222176237554740900398155315341157976213172036161246459754775705744758172916305359025741600104125977496326394066667864394953464110753792005604253483111736427725324503802130077071772116885095942668139101030361387654900608184957517502803822397229693711932393512768967198857468599022144960106932488447830897072118860970167595975920711874697019993527688055624081556781857059742484424613912131658183912044582428909908599156330419078472262336616447137236072345645983187896020573072939305930221152562003564876726661461970091189576661806001202650209934605999765159307292059157873093743075525089378818800934586905135388813210693627016981636296902562822103516938685407208515199496835520981714530520744525532188965720864343161184664908977156084093088834695705095965733776732006873656730140267311077732813865014328467972109450278957599920801828022197024733868816493568251714909300164040338225076057150049845585128645116744062806137531636410992680002792432143974236391554791930635575469574561772624758115962139840077460866525575154322100088354327584437429138731397059075335711372633564101896260540341332741716715730219496286267493164128880514941262672125993421841598158697693781612817867568602269646028193519142011043280502432124429709681851908666145062599781113613520689063765725607455711627808277535973521893361014245042784089408630611104563049442181357356965237160667230258769962609208619201892236335773451201116850462777024551484265123709904293625386804859210194309577508446642850132553684994954469674935003273642601289474132838816773787303984428006479076222982747710487008086006549179383952642918242781118230471167178528544964702025481017062893456959629861531526350002038861934771969438512908761785177299131014340535861181649665991937719148865777429148899611882465640969093271546230696580240789114563162667394225782883516764236524094108710205215849721824466744513326051504751325445411137528746090253432280626461386847755928819926279959929900608197292733340877338411130537533519536376375387691773263836626242463608247747729449307185428734256093246557462781072302482136458091017497949481347213941078269328192840510142964510985255295566783839645824695229267877777996305275692469052720352056770361742700161109340294023644744611056381059995935615349135163482225290707810737162905439592337051879783419624830310109146087857178597529915312277767493842057305337781977213259189210340952832075843282690998988450588670438951677091555287830105519273907586747898089121412029060522244065242086013845589918110041805297344539621203983189074270957206390050049670564596039841283612600819603683946534801326316598060276146045620251856707769480352319348014045788832144030413807615470987282244923738166026091032154277451552690069373998398560498253953199593804672998979523386707637411223984468477619054795068694844823488551287275140019642092491436054744091491795204722034116148264311938220747167117601552046881353354084006257912272751835934477898563720912468229152151294280034094096571480060720419445777526466389549848401651264790011783851971046788345023963706776559631567985200226327251882172997089561778776946488517464075026822018031763818246494140608897444068572557869398479034101868514329707363565616716233596872576195112257588188334958742199634348169413468058339838038272939500648117411066453463017014690812738631174368618147869992175723995780944837015003966982346504631975246022605723713007547690352917176513552132601472964020240333407232268298795943688552927711637128463797426315027633175362504031047307046011743993667139942579462123681143110643483821675440700105467275740664267028976235944723215465447537529181987879471426761268779898001814187132248150979523435867598314283441181929923809378113752204229165577147407093712550193336888901169754228719085466610768089298733027646176242628729248860013356705847537726833718140506783012090246742048057469291391986793222385965782067755576828919606433587019519675697108239759205202737868399729943423791959214394547538001855878763327248520036402803489000907522012347052251780948848444497339579775847295005152109604793689346478929538752563253099183885634130197255391706259035450291294856232867151896236606663626376089187002058456445576748004771865282506943767366866747706879102945829535913460941792067401074680414083765368185738666179557657450575133296632294554274682186880354790743055337196138065800024398381525164948476649427097768985362479950900991472014284400833236660017445447024117382600872884779393361962684204697116545633076451966922146105557691852514365685484282493153761737628914805866017793889920466468995129296880724905733152309483305628119526017583746792383809805609710483183329505315106654588007495263143187046885211843417682544743278216165249649744194216377122773739804867356021037353978627669553013463032749586291457342508873212651922175640389018522455816586675792448957454867571447780949465878283849908466247623217737241069144697243033081040957765844340652725737386048609768283482045304279881386392222467996779655333402431092306492226090625055614008194903915844091359877983056668176166126722845885793206648387368725375828349409473177449042622878634392332867827332996092985315918639934657649516721229194232035722160753544298765761444007004588071495761663408358185783918641255188542248968178600944446921407005655688851657350859513431030498216864455294507435077763338974696687674460887938294943649287680958017324974418169063616978365721627532098986124206826592094032674953666368190658296209886511704700548190532781356420167881935384699987488747799501533948656464774875348524291466633881371268702883624653594154643277811750128355969947496310876225326862549904696346397977824220658665860115608831330715408912339384457393589473237136096609025675113337700384677117404545493251757695461041659988969518191275765628546107642496452704284589706771877158421549801795232244950553169950462799076092744108475937771446826687936213865738093319884533494382580355080592720131068454625776613877981812487386254130334570986117831970585450710490795281932398592161589602640760313871403476513260213733603902618842568823691258812911571079269140289266646138146111737722240170281211171252457162899017403720641422757073981661553845533478144461351789529930944920617344121242620218802382879517986063951586555425495059355975594634445593388561005857984198783899614034530019571510774712121583529441176544327015717728796666066677377350912896530787862897600337055446097354652907915881706990006492273579331205512371682174983428176157956191209436512498550963774353810241780335275798751621883842081571045647601964673724059858449801908413341087325741257986612708933557670229417697535316467796549483206212555151161954511805663113360905204870623298671837626256067476170902605238886933354437276011758978854261319865314661664981512403683944859122497734389234511611167662384782692627278409509284878060175206078965431643283064394978332155934031021662409233774475056769909791695729317890133397368110026133210424316534213970061051112570351321683357263386505346491189947816076874932770882339840804431443957386838286898976676106013191806390426528797354902522893139331301460133305839602877325982322557430587983935895864644019992209411766417820195924168590454584129867653774305775024128727256133417853653283239560764813975802326271631314317538382899475706473738865913309867489481550750069299221892816255054745440195483713387713907950230794042939351025056408167816560048126095417025748502211893660368337629740634499082927566282679371066954296669827534145656679723868766605228477351724504174116569070936549998654521513103883903056489440834339680043643656815276032538633655461233965810156982663109053603680271821632201071761829160132015228687987973701941411601959022543402151836653222924811893991190280926874957977652159253605364769575288339645656924013888983780760295229200611253443665566428314094219345548499432732098350410062663690274606599452945447163933970075695381786229231733275112887186119509102976612926713385575413312451928142004610629730959413566820041883226043264095031231714730892687415663718481024147609005457213612634358437577405970937785989464587433160607131735194490591599293258094064617890211315434331068005989825820982460228904553973489496444282014536483094437412385553587314404696185920675568118734281035320007536973427989863341278278784553612953375159291208922141108551698083224669747625964520364090838714652002607652052591740961115293656963272086657311812825473878673305197144949270810053592010679917287583567637363298293316804002547095757744890885788628860931582345311432661855608390333586095353686816100271911011054414387804060857121728931042650570954281711392864292881439659569122082903007989260251385649238088626774157025249400583638987005799779159899770265861355998451489310140410357162445667441298979375075839730311441701473237830671747712774410196612435459647623091381818105570250819125476391005044516839680530427517371049801686549244994046854373987506462490079735350401069670857779531135533976739411082585369918536731772431811306771257323464424602980925087180596497361615614342215069845018589920726026413598887014987093961375472885813705621745440580711793417153710528225383832113402888675010044841740022822299755778725207188414945222989575869701542357860726749762864513263795511855210684817669668724853575394615098536987524247082943072016827690941888837749691491926484111282765890892166030974474469357391947574085117677944282031040734806559580046320074202432265065772526890672287973295536625556159842332245853928399027788077959428040357843991414196011423996438306963454328480829999948494909728480791608085661730099021933593804071895354486398468483381100047407452300211118715203241442398149756779399417729603947807816347544148840361843050920545592596088518270143693491680902727642571637155762001802349536448868810923411071919480898745068669509306913360594496678426825973559879009263097659830262701442309560959615676871939742471942699360113714673642128003580926442618511686816034167043666843311235983581795351369727011366194184448613911250908276659559722362262239546334378830631636102518120202864873592364477789646955140013508225051715164867684371469870979079141698009069145443102135046327127281042252535677750969509539750489169392657994567939119261457674174869025590739822323175741632983590630143049970322887551319428785216730580340094731976220658813612221377660811843122649574423647391628168870930944445419869812588455560346834454331786793461740833381967136039317488744563516515130929126550912059785209014197266224512891735440471765969624244870188720504286265052257962407043819098877003294037704010181544849279529283210304529302697885632227036812723923142398936422286084065536733356091422575859433878297246595877768669542338887619449590616316465382313409392524708559315543520801120377192660909151310442228817613885177174103797468445008712737060048446597090341761831040135935414775088548361691792621613996238738005075171687923043180970532499458626628446887337155056662539067863723429825019664006103611392829249136322231542776716630168321613397297404957798424371582354018489136650848270059567006104511068201308568281616426258550602906080790373053205992133439444305965991811610280090423500831219466457259732036350687684662454974319522603196996449329589120811234055188591576297832597194650426381132397734104301885276533985268017613338420523244657026401032035222637414075436908131790100493416146362832100329140235862322031860155927493112232047486270164641777243832004631983231552897029346590263191341828207246628443973711409477168134472846176120037313584950811661338907022899312701470993116278091415656275739187618215144053193170867154782702442525876499267144721558212114171267820576264953527645554045065723277239732111094785875044859690544394359268553156088000789727704057324696919438788160866375109445097993347354327691435063484759158798111228013091367677711436472910598027068301333180592361240289451835453052989692959215271775966246860150984534306716392567672238290434877305281462265946858827855399160438608050922993106037753179554791449209656052797874983456941173621409467735093443684462052549856361990776305520156840115551167127548949238421510817948461424399363978426459309244705400193088093470379904867132363542194750019348681569479746564844337567015376676535192384576124512229906074307404010573855611958306942391462805280291360443930644597787730361954723889669321227793964744544484616837004219845401702265570656227845476785592054434192185638017966982771667546542561172872890108025398089330870950732132821860573695456361032011986066543666911124903854137489732745247371799081613835861196931062806368668279044536786550367699326227388989030721760518361073981042955820484407235816318504653580222451992598755277907284192066497117570706423121772677734361077563668439430541143848756320464837463826096975839708437415737195505538694980503169980009061518620143446231409428412835016690717788475233684159385846147187811942743962783641945972077547864388153318901833585132076017889666924874047662513096121317835959038448421951577568193177646254953838432669042595292076471602782370827839312273741400340578694309146076619675486231865606049197512107468670743260906684981951710052125150783414614846346184616087701874936530639934520767306921812338819565479797916466668751383922357538457601162720255921365157297113087401092984672693195932355810949206098741984604852053124025441168087361434414845808685562844053501226989595122444540232699879779882970298365709420874558568451099185747048318407752323477530695426617098312188349238074480377702906984072472168556055268859929997456806792133629491639165898117001702108708996803030722911916522245215836219116856245238637596520718352699057526854624512974190898973600788507892660212611720305169765936521372322764548804989160491288088625037694393620242255254070938165997095242040892404457008440380360626542411611500654801774351707928762274720091610032431711028432681151208723521559957895320141347596999355146468172072404987786863213776944355991002575194805072127144844047787521783336634857967776059642503431673199370592901784930973339996861079053567112346308665815532310517835759217167233161949834894296700616947329095408098336043499979593935609015862065304712017006842547536823068138981335962562390491627477266751015788235074439604894282595850637673196815949373929018829185779991102083020000536328552412792530870132249397369694845779394531770384917946135552421842124193540443677702993288937439794604722005752297914962239039132931334884645409426441710895045341515070015427373130308317879643055812534775282664832482351956292837009882660109187189347497059871345990515433333604917877782755422771330824688653779067997493126271416292028684029819813398699916620596257859918802101517805944391111360887534537277245563821254609035575181616130953316849460392407014646946860524838480587604064861756133691299845349262789165915782645395379764747100052676513876704730370204036214925805816231488025372965182698811164622464425964578695523230490050472881978528719108547368428694784199816813600864500564025122410546893870965449782848341035259778409839017689934272774251308919818769305198475511910951663413216535249207568353224924078900787460252071218751338045605349640620507043217783144930149174794804472548880541261854385658033097786826729761235195471277958335155149063861291371237410400549959019112878941234842922588865849348183505768889869458528175080238593555652844602639902601539782390785833747442813028265048416439122317727604959920171223437921975344536776174310288055371399151502112821333482282237699181852526336934788384709226455635490688699864966169967192919034462379343034696920247425287357878470240035559967635052059843945767288363566200728904752018581125331063372917426879816159031857310506887547390840807100079704393778746617429402327252401406131304865555015700061086131419122569124708772710519540874616888383669177381784211678209581779016349300563378428627209496065608196953741267621411232674949936017984058587037135264909472469885192288353253676817141971994041461690498845459242001458939666797584216749950670172164367637130141018743930278025377959776940342826356147396264749954997117217444761583328612188160384237999087314171787652016028385641650841025766663897814981541777914046696454203445595309785295230248205888116126495743521597438989116631505847691746855640062700594174242888737644563969949011527506013362321988424150167583611469968892376178513160544655748658299495615735508107117569282037652021891528485374040755938469138678607038357297260180284398913831942278742848188317194020083823304905562391970880566342129408102522158185596790795682557599848320663605283548718883184996134187861988940599171592871091030486153436381479556950165599749506174511323094814321495350256022510921045807912788883708554394037121011444475675516464025151662963639862590759647648227801164596566026822108836102078451333882045120142749870027336239874658374564211079018712508366727190161361280793567511837946807162971260540124299733575740530190264990046916489725551935901657192559086096793346939790065213813118483843160007356558121153635892193725834485157905380665808039005658150573780016667543591316898299890796826603200720267980429198776816039541812399595591625204556238282393063760126074703366442657232349229949406928009571290489617692968934608648274046294968768391167978262835932456015027619426741145612259300434313556082062225363622856174071354029925176406861940803828712935570495528334589298237046739095306997527396465474850255193873456027892164140990665291657892519148147226488655530245213670112259979466979733197720091556524263913391359225943758990565321738578379783038132271724532485276404217336070173985153099108357539474841825319126164257239039621483541469443845366629618974691760202185115670750551628969927469947129059851414587942957177419571867021439501844886125359916092573620987019664184852313029753117238462266734465516519200602633899071042649431252071768550325090927888064248617756948550971869354336351978101970825611582301812269730516025138400971367986905771562940395200183688954026841919389963048466778691981225945535110672960290740976480535232418854097048868447768426665634441949785723921044784795954478479242558605195529460407531984202110521056278128383257033752183462845705236165397886539253855808853418134913370664878293179428494929689613432178045156411597297431371980633557038633754285228830206610303014696683198476915072963307290584113988761157144669686749835047540333684266321007109590544656293693959384234879153291482633203448953703495241468355203370056303844435060470548692897507026348474272643704622775574890415765736641094716084326886072979364458971366752090377216130071391270435536748829474528148351751621049754868820990974990479766146630497361718687381373391651335506125293213737195454437522337163943750945317610753425245626550113885154205934708277088475415544157116186233810751591223691365180970690142089651811125593090771353060374195539481271943110794251180360481891185535977241103642951695282709522140734430099887441993921948888662676196245598536714563020231319809660244956339071883248824987263307292501548106498610348964938541701361855856116785797860120540236098759965502291647523090894835972905188945511941756207426270371740847730677445334446280174472652163671064737334137136884305920401247884841464905242104468908608591832078163711606400531558889940425249567474120405045620916790646341235962286088000024889507445986801178822244678343195919128127264477092170472615077581646305055545330851669844857892620453444378039126791092043649953788604661313407116617637359035779990360308592765406717716389255330436939404816451002230836146525414825141489907451915655762819690743780599044067645713314334954899843527348600125722798886243938239749014181059679546146918982344507718977958625358180177837238892318041349626375857100458160714373338691734889482845805515545162094075295078576298878557003095421797224289695400889433526730067506913760438745716062333685299179644354085621239199361545318404770339738728275080751572884410163737535092847863860076650146971158361668098806308249990100223495849221519540078568297076900710214702680416824743708855744715108156129951918482990667997002106672707575497075859682063905054791913742054470639916623233534372995488875340848108091974321903949765073820855953450248859887523457244879199369772659591035551969194365879484566879222660034377628666511611537832951502736424384994914698089437004552413930726986958361876085229359618550636385443271535561910212764838981650884352574331711738861245890167998297394301612085491726722454696921043182918114025979858589161874485601102589424128890458566866596878280280591924519456256194428469159927429474497165235840498847482389236189382436605570997995928289841762382833033482556470531941077671914490231122222304962953212935945653120041528106976087967331427042701311535479908593366062867975982041062482246323198849964797087608045418638701958239164238736691817431946273012231958006342604743373928900683572326208984710903332979294152473043697031039188245905576239896381369210935572023211396148058519265325469690543661516363833554658810553246590562195631586091124906437516910852353160782803219542935175702748582549748925541897105668007364555351754186819820775895162581595486529567818463887119890864220596669103174876248086621282812961069965372562553693562783056194360388374277120320365691530097860265829162104661193549403836918786347938652755051467145229684499129925339110950707621793147451585790085077747543733103136001650154586873426160619844977236188588079473966576502621519921949888019580143386060612185045498899444448473453501033831809033963394582469178599506283063542870961711853496240998069444033751743700363033933761401036960880790388910373131543196076706878752166163670322910544810763354898586486507304848438951930778124089072629192453449546898317140770612630597585868989210728166544586079284482931093506030485846050617626119180195400064602409028581610000599577590289673965808506120363398784076640320291663189365091150298908389966980363323998060706965414527993201585983375012214329618597641336302479863003833556535939312115624560608564831387096581696644058798028759294665801794315901607818892458438170228854561994929026834636478846120182290751910741908902217125320170746166485805269599905850240746914577652272936015735728597730630200880293240382234590800726240164582020342818878414075462891109131677911949647114461681091331875895633135895487239450321321137788200599044173499995810828208730149098778409865522419221180582436199536509747012254108488868143849768460304221429396898916009694469982105187436293214755331519459044156157567367266144814677243356698358843083745256830868764982020506405700771470923582576778978359233345471209179025998304110370819466005884296982428554633928244920208630477432135937168128489772908576484120862992128481545157146620615366982038994632794637577117814403250263425930952369534449935396190644487832914937377078410823047393931972707001576781995816047794202506987451207053061928364471817974121854879240826442885690994896510797632844049471361546108756964802278609561436169529038917403670757950514649904713433133255185623776999850395960680381735589056498597357262210349584570038975591509754180379674138232171521478673333431677181965334917279935892663330233210912112955717080189776009325182305946347149852132287451748913655029324523988217446602689121577132231484509666617433214202539192170967578274005759870851474297162508919469180324094356420425649409550114064702991432539772468599751550765308223703549520447102243790340904019797199397177311525521237991271802688137348083761993080709466015336586862251487587152698541987827106302788359332820512736961685912605853107002883877821408294142560846590931639594659302705279611853174811345860702149802580305557891216370141621863129849478868937931577239362672444262560278999757784815934954975711069059854442656846023613756982170506741581945158965303757739196622749247797175630665351178477754342818865352445029064635096456123970336788165905603115240010555464683496354313656754759438995776223544930088250815974167016907106460314997635376578756053059947274326577995773809749224884426861038030204750758317760309144770312867485685296659575998322318462500623675288098313971662297639583241324781293796390345044026609333371563531710867787314555360249682150049545506082942808293590072231279851693605744636564491836800196537130113679736269520991809392305991974951815641328541593695230046186476242958166257007523319138046227979939360143979735941354155041230230383201554319496025225515104487719145060358369325823721925592438825601675472183001759288215451594974029308904331608397625396617821908337881104634585097873108663805979144739496545140177313816444480351491444976209470175744359408703235286142345026754303932975172648196420356509207779640405622866791346614640325832576589281970595524505057991530858075330827324818902560445423531590471734760755107721644226117808012324965013906168987540554856421746026172327055406927061650070915175914361113494585145753024420634759215345181520013974581418753070761238916081597404734146564537435613056565046406209365522921018076047159154204666914062557829252186675004707306345090125463393098261678031929928606382652259400134414279552544472579066291109013469646581116231047440469035581668749290129154429769432322021257567903773359559962123514513283817220679262104137412103545437681537273470471026007154774035196516502303902543983913756440294011612574151464515865548647896856449647587226826695882914826434677638296212059133841449105871604845175105450605667147760232390347237198995062240418300760158041546974908297173485752755848096481679558403873677542970189372664309021424043311828001347158527068418875255735518186405045820444873532697843191022928467219840308980718769625145861190039373214156980480233608892051661776722399597758943136483654492836526516197686911816101523612221801866998505584905112118632626194701295262598242568382018948718926512899284142072847449310505189640586254718856283720149635801219242299600174423641983231962979174896556015404517995221184172393268070131132361175903921083634137689483962280338126084756157384100058154387094922524330462361781812507094215212763954397618561644731251036637001060780930698296230123003835883125208971297649475923303378483232502712368962730320145221765795589244332178984894599841547376658770445723085674572574278494953827547582871182167951868751599763487534294038476881998966449964622499796917275885833205364505890687891210969264260299374990288056458558859906187542200629958409900061356283669418619557406075851172562593298847934255637263166285730880959985417399747486221695484407448736625191250894252701177087122499132840898404871839602592250112097662457531138409359629105435012874348098893135497493364867027845027379243043383495271244426086879742509299902078432515528219040107375541772478201205329196109906047528455892418623957480579340704625709236569145619907763745279007946514876195848885851036275812914894536621870516934800261709033014628566359881532407146174679093105058915929660620510180396520398003485267994025045677907287845903532814056002447011144500388275724085549203327983750572065134553056604105306176518168122062546332814620649982048797403608881375035026087255786303045194466522414851474994993265119340358085094563444640416225002956188082534917447608904970389110607964124864855215021524627624114445586391789528660554623473875013097675764773540370935441635333580729989572873534194966856414870642296361411545528524881822621817360444542024759513704130563529818572788861723789426820333461708684577599939591486697267353595975571061275133055142488207886968041108528307068893508812234477881105377922451467382156489001735273634099733113128550423257249998277625764492575374826590458402819861239662772662371571417351797441530988891849638799032281913867518985081385286584241932524585029159260158355714786631515053049172138577670173374678893242046765927878885901228744968349778331749777957806746578352602737754631950748416928902266513301227612594024790843139255266436015965766431540094695594141190247175699229339033223788527006923317474258109019685112042128133128818374665235930753378334801530033817469912372474203228404461262643812243198104252732305063496940341613807913047586550076797289486908875283212029635961296111595848006296140882383462828436159210181328572448890296429269266374799428015279902741954711920450154774400064799372518695262338988802416823302478682585313366980507950662180687018211742589922495621530004256584485537167254890315785582653665034205663851701739857547402123466534691976566600285624911288976390120873337191214536901545849169939055064620734733799786661506285101846396593694044792747134090694423428361256059290044493664315907982925749327552547008087291874553819425548946593542112761749378787640929673860084745053525955378095167454996694846610912885107673401202000304133540512575306648237040857693737105880785646978099329784794464257538170386330500879266766566379708061351623917906171287333324921417851241461773886465369447460412614598700726884274355495573958134969975769602373367869145056154030402423327514079962043953727486332310075952773627932310943657796407451532422244751311713703145397622824416352079401305479331544268338833502404556366462117056525753092684632341152910610017136602644330951003252630249844796825199959942346128128389242504621630845014202531048592608896429036732554485212723215774461597023228025882727260891117033673751967228347848342649521012395921924609761296206723859892751526062396233312949621245251405529199475170884338581004307122423571258600517856004445046630485465320613484327906197130358262072718883242723405414932011599419635913152654339652762694711140088755559207315409165460510061752248992125228066589123218633041718223764884771024541015591244902425288092353263732079475063054641140864764055281377583145757518238909240681071956689952838360672308547037809508945036289914040981295217640382374066789783148142533919104048793058205993848436451117555125245647750816443179791661588093463120901404195555460853464968269933330241533779778072510672019129899997069910224074457933978742451670160179388175664990743293275404932545622258833617493520590895348653306904775741406931456201686986064684575324196120505153411280100745866256427872411310282032947818016913986673453424414268063778298048901705594581877764301902719412779150294313013443917787271551536984909183310378912195902300185338569502701985611687479526182362423189816488998792685885032810908685048984743646911878651944843249691129063227381794134052598585733418158719161284087174656932364475810090975241479482923472547485491559294917607793603451484869975966192031176650526375363338831253988501837964769446862030985500276964724758656912953672565432251099784610751867305059697309884020061892697298394840889614530072695244194177876215243404150109726053819126957860003322633674482451941949763594863451857640448842185737927429664742820059543221036371477601394297403953613843628752738176711891564466046175169790025907304812075067102947362368543797388272402394240657482655843013286177345995208091423633784095256434729972076727933513261716684615002792932452469228432949198060447825996627487250947324681069819657558463209136674125245494850163487435587047673669507059391581695850454474616990651755454167812493127979366121641343213598043245679923107649567977759648350206107482939627679311225827888812955050599696369641164126058313814861087734201007871885313761195082541748935215169282456875743718520524583927597916423053506452020638841718494954554721422641881550342556645437346799619369837764630122222451610664858955489928293824044195614606821612611863013996025571058063396022301345535660657044823226791208325935837568709210097653342140454358654592498887040297628997569336321715706895366924916203592852886754515289691256629956270422675426854922254231798790604175593878990439533962807315147751702261239250184299922265498917657316830263051779056346908832311708329280809681564161106264576050311844460845335707131452326917953905212534278876905334279208650266704878812801083541023820335366220845652337119823166530242846529317161898321401273047234674939779019446631715950203203166648140253896417606226647074463450737909862109685995684864590195056675643170123709140973396909807513066439160806515161846433810071930372264788032484452775737830458986678618437056457448742615833210159795847273097916902665811500623932062789459714705187719046707949399869618319727386985722863478680859564578517028638652730951323707444366063975103352893182234950794298753494485393473862560727186228628404892748249852583287956613245959122183662247672403223204151359376486430951317893234565333069839261968810640609781808403106600794517682859419915617560988517406681096983085129912392011148523209158697798447824403732847021176435735596423732827688847159672057274678076637594778467507425183011341100318772180107688951793653476518690412471879310940188466999060861643782627051887507169373431204123310524569875119965577041067090467653015796441017038320085433247570680502719048856424351196907476973198011708265512312163348501840336256316119921728912746705048939721292754539257993753673316365064940419040943160767081231997875091135746033897273452936951450902085373637219698042547244816312716509914639080122519467160066274038419785562327938054033430639901953322978701899340124859257180217679740397628331147396978486270222275842591750321320040296460021219939374194618583901489076736885690361001260058621526774322110914919057781016548802233265683269012944406073905335232157767806769508873927839574915306616900381623042349945981210322478758145886609508817201150653277865214221993356758859292486805530876010062188089027679925662362964491706385353373608184488283649753759876438360648697606617662589985642616711391856431671474791350922316521596443164322262193699731403059991733305178432873131782252605405139565437328730770037567276368346456535773311972541264039025974297720439966854552413458313370932502440229008462871135200070906613446326754271516925668381757965829887380361888424645711417496839714595943326199079239584380574953251397708888870186376116482763200718250700757693356148315946040775633998655475219845087522098902794265600502552061413255170803744988905862966707704478566243085086039207166399274774536956764711142282660176055444041906004470932836698359209445600792837915917997859619982594440574537703627347553749835014652227936335379470548871857263579445135968334292684763032254372898056375575702333516817925773255898071642932996955536850704331352092046617561978573649049707490239079658195263627762026033752081577307571059290883152406360840495959981860534730543372753002455675865903765568164963277080946560267883438991546188482929016800298846181097898663508545733984554891698864909532058318086055939056644477597359816138146599622387042725309839649460981745281572744481371103502333488623433916283812430357816625140022755802772135736792122938959347342503637824921659762205112549639754839519532810907726401171611152672858190564768044257650561487256847598227508846676344427975366860407046890162044882159706876988593320796274790067222233802221334330145113084266143769363730846267331527358220848948379590961139652374520321232904663299244078819438799379836924373860662531936937631059285958490785988665350630325352796527111328768084019799917331164978341023857025389892350234928906485419006496259593047078223863531022085899871559144582581434282511711539314887564525153377588546569378954562947875074179827395760570411861869406630467647940506822636078304343989071127981614736058322437231108780688116176238289160358460844864275814417760336826976887062132822542065027466126250852557588645278205471180341884105877226760173803455072503517436614584181956093953440421710728281338543630465589408317431482345997084127791117352154623965113316770683469073398225033752818954869688500312690942664293521523490109072466388488075804301243533951167758092792094498667540627706570489233526326276277512775745696254150526606031545795770673637223187292927621256189080252892309370543585887604293092088205467464160926435330778411774439546880216362856390169322621277046808210854655545521366455048346294401109552936033541672508231641134622648380495236838824324182200257705805060446701507172014613401663730760041451664750937080519865666474583465442348739489661777373249467613934259184192389827669112330852123426215949481761459662557624006181749204909581676738659925230028230240162434504730955306648692924373613232326166492424254418780246434016708815326291741815290862460626740020271510697393554410894739319826746562342670584707325794095233551955193720722935771471979171202046204234324451126478193659292029579642427886280148276395753330833382970277096701685184714368756836705565499168201128639844134812390861423274331825689273762576583367055307381861369120110783432743649511692488215871707855881281625494381711557804714781710117174978850052244514937970011623957458400001639576840680138993651585913146260121640805201336097180282769854472145599608683671405178536076885643362270225968644936303780943854858940506599721734567848910000084566939550041977752672720914563398893309429440679525142184925448687433859529317818431014218873776071465016955904297255746376848753424753120114230734476485657247106948598123007402020300697750642435052844812072295469066489006416455059863314145138987645205098955081143761938606932008744262639850593976440296282031156560898318812041973088220693656235478215407406416870699656164235117697122408930390955395450163595272826698694897866649789200407452180059987057166917762425144063886111131521685560478988465190041659985269501653335171784769225223772823453687556387726267797678161304897360795191417385942682102193565058487305169013522465286276275311495665490459253306444948255411469276376403490648691830802936648966344040370655631327270440814174683813048714241850972269907727868048436993303110372976296810388691455381564232673478394442669568088821398274353839345538140760904241714208227360995473279337497136958195057814169128357839895505749922702722846897937911282982933172246632483808535016562673804791837453091149261721947665995367412282479936475568845604273695138139045108537503688903067679801178675280735545319770907129843770036824833732913370748970854907970653746283874497905385773683166208211489056721892496265953023189050922635181908814482855583928989202309294061780401864223748919816865486738766929858424637890172520086428822958190485702253961263231444966143715438877340930685998980920149016913418757454978132759432212253329202656678355339282324077212698082812034849278761397434773694587319850808763620071779487112978861193308715537774968627928484907231661646287117171423557665147717951310415314079922431962236603014152498005238797258048020682636599774608737460288171413866577977403580056529433229292159597655536002047206013079424373276499187901560545581803192180083292077283179095023817630917760224609138842819050646912409200342578535980319262915204110147506036925698927909635741155423503158222392144763740344698363504913830897109101797048760402642722879837321821060292136696654055792804653340713084221491786811627544243501647023287977376245135934287894454808132308214513866736302921800674188230700475675511227219060608272271165196484221427194875034019097467936777099910415922329377301947029643985684689680778527190569038684767495117737822537638624721075824421151845836671133211278298733130279183970894473086704713006894459583119450459484324973310222669722095132221047390796927344649163255938440340515745616716749205274202579530020123967084672361147356505359732122911268953613405701438509084505222906689580087080968464176317011605687285151097296581756504293831735162952059420479368316772122735624710449945551732104904751418963850402819457392040624843014923062494345040693985911712164332561212353434105087906783088915620014564548690046157047006706175481066433904451895747434828374311027195790735422100383220932703363049937681107811549146108111133232222629243955882437233439036308247883844530575137898239609871972707681689702983977853068334456879679791908915330971390739483337204690420407460186318710785695719380633905812585038418011135090816505306919260447805355743899528403508428664780180586598442734960939457763736536289715932970448496489572246702490361608207046091427586639670182174888671426766143511058753267809222893128712297136050430775727620389256696816797812698702690934603145056067229000124838756658578375053856552987851668386543737966977222366428970318468971624122687173529381384010204952348827831564170262422204398563355178674156434839862875664644064563806122156874862175456950144405975406682686636147561302142717832953616835548432030561371991916788454524691098104675108987989667550420277226764028922901103694096058115641090692186724301089858173483296774234906582582171727865197624900646072110065379743124750962161871149248357976811379166076057357941630034400049937348480559266192692145150037095955579707074048979702623968232877171443765942676218593996845086024546566675395525232641527678067231330354495354345921174731371444415267590293851888999862746105754212869368046601066407547073550992487408922605063358335338700616070517473958515344081370022142271401671691125187943686719949576730764875213301763520445907671553806766004033719991480436418388111931362852220054058484025520445373017809769851487111132342657429759251690572057827006854121681047292315934113896380679162442359049504644998902781808688118591092141112862034350592253732614182030003703027314543943951217030758545349215684754063079537444771429254152052940204297403490923588653544531775691753184791143263704253807197417383103834575069588537594909251366320397154236640935668412150425736236338919497613106368731164912776067609346636781902218490719752062582973075501134361326259676969716720361697775420782193544357451470736798013909570140029666332166750799937702479257118456524773309757115590005608379348400678019150496541520802042528754576690821733044550308921655297058731214223719695041929002207413393092039770540915370975364623951958133513152785798193130877724907121322657145581856574440365181670376792233829917701309358387455022125305436250139751676265708437556460192495121729828725706018890606104137095268084752436500351056725886703902901610722931698579742375266686647233723383996364540736190086499804134340264746156250568342201920859114184349727560427275564262004461433593478913121001331877774936704266356660753063576837868093533390361587003177175651401331768808786590195940724682106982490624446325526072621168562762427788203414523171478389868486256476433316817057967315789857144759078009666793705569327525441250254299039726053002534447842324232668257239516528727122632126069682178777035806018735217159888701481411538161257645390316104567487483090793028319945821706850763038185609776780578593779611547604435802568748881240846492081479653198621189469521737353560141033200229425606204553268552520070813835013518724240527300535093995741373784806721313866577335763203489371104313806517738930265155215761273734881477948570234031999694682977112530592279377438939766474106731535649717344100010671592984307173620302146377457032006470198735069381325103326528749293869098842450404065383611876037475716720837971123663253696512154663447914445825363336709064138126357220470197231361369968079864409300740137128032994665182190721830770778154056702201317975429701428375741997452980562551987850505983299748223257771028219858804115110001418570675542266915309244977263442744837987423633605131187626256903918851758129332093899419368646048115302373373358911202606986423263689178798070616849007861238609745218434852468963904285857313342589246936338051444556231786999363298068279207156859606510449461311790580698437150663992906244567246587223100976569351550020820019364136053501024914780550045302671900878476267868072164688772684186563122680934192327003031806063109400910362714118768042041959397207005541644066511211072841007312731009215765380444242268354002918921875971585519737281617673566389299743467733807421117919749136015193495875350665649900178784297445923647484419485010825315613631226529118007301423488709402619210568214973356864962493102381702616043401736651849505224877938363512613264521051651728360726908812059182481868589932759060266597328835137468109219510352355328493785570052826809778954463584631707665645883594158271686720286809661489489753462061431023592833515539335092259202477439528113581191647369752901446865545912817476379149395740971006012183833308685784786886526258109700753708949581979628672998621371088388980049813800518895337132380570236071396010862188696924620095205498043922115434033412783983479676327988185195067564522442183259577958243837950571777654931973802032375403316012691956704845220914814927109049975485222365714204702682906507136689894927999747225469561431789082174457502922117902599547572203420781151226111114299625807563967886633170242704858786023612684080394708701529670383782364796503797625243854229195775282478135984542515736020115943786604935133981802928495279929063375344252959228497827166444757451365769631265959501538077331255060272666277806646374265746795442508736891333113823218042280875001159865959449092052240797974374599436729229507043161327677352515923362709415078189929598025858648668430563748220063449027405853878941661729696832048074318919325435288233166877347761341989113980842503953175843905669062848817296448479655391023439873818330870551958575423719321919492502094067354017037752927707362995845049320233482944563704580817199821876976419110388459357077321264812669991713179738393491973836632549666671978664881906592760536727716831182190659901914861796507652633046961844763946787794265656361814645942932504149192787054101402750097535767427881952209500844157548204438670035492834030526015325092577409739501078916367691302992971973600081110018068884843777429112055782933439452158585112707959338109319378009409902289322593362065568834353479873070240476677863464257989684773440430884143465987590676867365371056672801396172714312227617468351893354201541403757192454584819877446743225327709499441806359769636299720779867513970975623146700155551736150962306062581943600197194288015306781046593252498177275013124560385129255640593658616096436994010300367452502942631792091143245357990859602954350343229562917273681561673927461213609237583128780527174035309648284404426764597600512455817901592881671967827381127863210569468255134062463415943041126843345354263208295607831236498714836366647942299291921263949631030381262651695847216382075339725589885450704375182284574213293236013397137381864777469919911462178281533086067013831120527732910429206738721454725653394594458079515317276121155741365185679979433452142575955025333247967395306586979923514631405820965291211560397734047226997620183287721160839547656539472479951505793117962146725114601875934716514064399501201438712389300284063403297593186375323937487981342841854590601137958813572826141631140504584150733807329537161794408467438937301715847798890902456641060097099108155172283481857148663409315927717416761067256130124367191839419027858023345048214670986259424766510051670771047496097674472752946845714125371456641243797111117946433863050091342811344738167890148036463105282711411755123765405872241137820614318007460277994293923866949202252626859813725224190933804086555256824721376004004294816111360885498192283737235031485795664982800697727121580886343827805351149860542058569405358682020288621483255381622850972327455124325302864019122937272710321450031781692893425655272879185492146294598879533712572196541943676226378766868792430602906374570367641617763709874385289135948350103733266207603171319621460003954278786076825492162076651148652346127093355703921169029910507314419122935506991891597771549636385185473502589083575019144694112118385810858152293359615704790663703044671408113683468161830140359711373449899511347524110364512893975780367971320483889430626979156710278217919048587649735973121967111921121794807182239382108979779385201688661795958059498691633179728046334304152636828097459394324017496696183437074199181220546337156375170265012774552405511608499714671515309164631543483110845259584752783083004365519367607026767795332000373547658923714668442231344489310002114946590068793353989066396822787295047472395028819451909326082287871447233555561018225417591245943758533684514310431564849318753359017059997151092275765739367058354835322183708877158210723290264011560669281943575461851557215602241458994046333003077248086865981366815519378745855057861023637367469970968382537320891330804838097961934667977250512346368628683550888362055474642166493183152262912744168773457580299062410958938198564286457368224463372201449647804295510805880074865713150301981158927659282865040509171784764318874191091727885553437758903032592172236932972782483564142909827985461694615147563516115339993584779273232665375948460684496334427980509212708692166741858504359105416665115024791656805515745413559187410925000568492064436995162965611276591270317591741314776198201163056309532695471770689592185971757797092259840669640102106159976422281254523452450141452747140969668758471723956333364468570719346289172515732728459776244072523894613809298814730376423779280761501680976837756255293230782465782194883370519844965279094242970540921004101430858353512899131579128146189471657192895200871444700530575020177211653860642608511269449166718238040955465261610738748377777125242971571875081158158247963454634484894686680576885314478065865349922410733180248452269511218027490537675043265298216571788416974726820196197451420493186229498084836734814238619254396518821215549644782023755873556815276252103062127034691747507085384537102619907496635875274887211544767019832166067727534914358866012001328049558124735265511328080439029146533413412916856107612746799397925754885131978840425890436578458245905362596660237662793667247736890967475249226359847002144895079788435614543606604216687183605327079352516933612849303564025914556333208742621069215973986368983969508555776145207801202557570192959911022504072573741501931235059427262681421263787061537079741004023675838061129314192737771997931459791299981919036734576821311088919147132786722926101389471511338748874492489913702236642191196103080229651412441448148043250604517346923589535506837789189552275451163276556643470980398216309383272411557168724235078437933642353773702904824101306315138183961874768608294760034488323878937863211701094603694647944475081556832350118649715034219434206132177124146604830004168973876176981152118165483082719730653283366901200106986298823692786250971723843523795166006682348022511641012352843298496256631942438549347410846629991399848098894862859052216068817991365147980518554421023780637165466923246448874155387858061308317612834923471881826543834308055967227634432261777985250519390076541919126974840353475211500821355481953136443711284508436329419098737049448267259466285026984416212007108639007235297434011113096950490962635482817147335937019658440053431002738161699814448193391512935514489828334063344287339497784472436088221736763299365721815705407804825559525962552103020320843906994918977193579073757096264777921510716203734406841312492745871317331607484804337437615633616740833954910673480083417242452775484448407208575493446828717758156631136241788655661279268736970455058321643131284311258336169897909499230961317085745408352898076014141289986679073322643249044072064186904636394190863578159119828795212956431045289208144690067574162821037499798651333296516600413338242805111044700332010795266454921242081448187253828795124548680541305264624554510944114740188659952502163846168533097509051680146951433745475904645943290024159502990485557411017079596607101992680626067999965392565817553974799177343048157125874594027119354062735473461667629739558403346220565941236820849701747029452126241965210812915688122248503980258205891414239602446793856568710214298692175792545920982715440737378933294274767242096269233615324436064011906176123717349739149210558543511721389822730502508723892773256935432777115541957013645851498264639241929678795871168107635200076910457942205112401160671550692576807372331366000645297541767349909470241605454059557123920093666465758220457631926064849127919307231495902570642776904383720731918633741757908656559453636089067704062846005493163528106289449654879342990375695749454476190883848533175501790157148666115146922761761050746557989710774930057893257555030787133731952958676641970492430107590915683646937829101970370314957906490204570980508446153202673061074438426679448653844006634992160543288055978675675503405076796048801009458801383392750664172768693639298114042517035033416000349790445186241937599416184306000978223627315171940996225695280830157683699472202907875763193766023850913554629965994939387468342359776139146228190398664517628327597171629507848889771985931206220117855202602647761274740635095107364979190162631077200746669889677718720955165558175047148468655959992559463765115658622396466418556325276718687574286828153185660576792489938277651582889724761643703802491963908845209314682788054085505377931835894535386272635728391587141918620718564373359236628211726298314557603652002590449514012592324674333189170740263113295436131955156718655107636687977057537789792392015498982811560575470743486241780062183763601831168427652417202250894596935775820308556164598371257465015936819318203979508826206101190548329669176425868821887608052803860337553240602985867600662761316144722455404699802921641869654101720198697390518798083913465075305714850726994774624418927210278934249293691454617415332374692023994154075837760172619229747398761035665513761294611535895782679454768336949044288517228334388975485990061273546364450412838583631789877576140766619420169717106219531578355896342111706183555965913136481006210279167933351781631704436434691875669580003409012880575179252063577839111225808652968712766472751759592236676068238938002242160465800660373905938768127583223968016997726598098183869632875390240630687906791902026265066395068213537831022577181630235494290484431523023311946771601973679907102047854586724600675584706797563635250143133098300768483526610975438341834718119531136786561506551853475470826520362328859614045993545161739780688148957679289061854315064921552843337037577864760831785424313960190691055829327086270081836431855577075150577613579231097038126055929695566729094233543311615950153777954996658885705615821082050591572474567776136417494410990051296092791900577512902432668201245918249143733772027649511411330160039671323869235580260196399099939611707644628415719018630393347850056637827823094150195107338666256662829934710681390910845819078618872046552240392171438560531230061887987138228777818464011615558508943648182346109692141295050240801037576311972993776691330107733193530147874779632864227689215325413120308973570876718547394046767873355026219713643548162965717610538853888014304117916806204822335762548033436413050262452904606465357349021522526724407903976544315715103981924569690648012063975464496901459107867413734475754592784273044617564289064722535659998997064639084900932529073533234460321578624730191171829618578917371280172510785007196662745036304521130578182940489398560391246171039505406981273882437600879565939422912830164799952855346342381342873849734873695930314552238996187357952497743729362762844385738374529625818042704981170367566549367550913435976710396729002373619130420732352463548128144247435436143414793180637974349581278813351115023262640882789367451172732967565857769263711123140651335843363437816829284219200840013873821905179416836023165500322286781885764223171885805679644989686663420126119386411481697804650024515628678897962561232730071107498924793288699569361348658207358919155997901913082952291003245626171942512452232737844376133294720702951617942417094224230375980834585903663885738809735414112371063895462280496525355710842369786377013026529384696431619416560954305408698222865917860572664959362409544616167120485128087728270986163191886689673255566517095084403714903386761240161471196704222916078028795538514949458485818370189781624379097547244475047828964182856834114702784832154246993858392213466830070956045781146295713491626048286451883689496845992873829953115773840267879769793894940391799986403101632204252439553609851827523744496458008277674600384044302211413069388733097649483564609084119837094223876121119697494815264936759812230241385619040331011158070984539260657651231012481694408951039437557778863169106965215219321191549146380360963000204748297063514443679591763818033524970922475241065949095934223002694956851296832497279817270065439927733123106896985525654849318722041822294359285057177719096303357306078435628337648480679962218547205540788222122474744710788651163593175491885610815651197055365709628161136464981584701275497579732231318898115086941726868755494748175309994855098802893152389637229990014949706165065234930660592555372562030221607100966845241422887551694598770261664928683213060679116392027248712960914466744461094295464214090659509878762011555911186582488760177384402958250399748156902870607930072086224481593647723583642492921623567528766740200348255991719131068119576916054946358813675697678917411396850956825316939923279391449638246349443135446245222505140672868755523696291153219795889901459358559458944441755975849395304120012211594810760741515704418824427078207959911486196093043197369093706824108104547565561551225308239728421033886807765261444154392212726088127733516632470349733496605470664916427228651869207695108255271352921264399528251203905919164637258484438581086919335071516334240505699521505370500815225419835773850366469598075239583745544817745572630397485167131090030154206543357649259149584959382706289462470428488411246485265584979686701400318949588639550749892743738615142946985130173515407534457309324247243382517787498366300480010753111841728251944967169655009696072200276348404613544662196237140982672513956272043015428411712882660877775041724629357255440518986815188745127383078537402249859293705386336018349702082128568566342952128977073794954352223320008697899856069295351527729796449361184362982127357496082055811379536628618509381978211533273111062554183141025951671771108649769806254444329649552544376518072918207386694460279042682771991696612582960634342727405770732909102135051847218561733897613752886338810264438327535640975815157326493718454638817660486728144252491314079458307745007214389955829792101861496513213213668484665165760226288634339199073272158312222599110963098572444181832107379902683534978699665809301151690849442707627535668172648010158818880855274334763950852114405432014976867702754645488563985071567357498002679625488316554797087591900369119161901039328028267728492409797571933304397139236980884103284299418742315916933125010718293644046663752807565596587260999810025447370707086583140013493372712584306901019145311336098227537496714794036930246367269270443105973610137447977284460024118859213785399182258373443057313119734022059550588962247853119422023297799375536749883310563571467869676659903369171019539940819281236697805818531304784837088293585014697400897361722600233678555147933541949307542808041656776984708495689315897657414773308138249299327032734933072696259748495507607604669878677979518988698698020921719322440563991069674971700708734022257629818352081849857612806640394034752864812924279489647136038577617105319750512389132376960906951369581312295667545774442194677964592782461654416717515263737954391214545408000081380612848506273129957152310669485784048962131713410536401243081225319921006765994425510048759337828811418243805803749221123522505439254391407377076681692915378894567980437696470158562370383180172890292761191029754444798885334339394495334913066326092300416446184330689692477966866032363930258012704422471194298699649036396750246880271841909243443796484325121484903226990450594614670247269214683722157340128869842060823254509878717139052083413871825350980570450266269445626894452429407106961855003922433515901499450335055355427172974916904187113095480445539039852684490400090771209785578052169512011024193657838511772447513191879930210628340101117214793971438556208449390564432902047418347215664820631496432048027141130995849258123993928433583123453049812556466966811528915362962603999596125689603283644543341045505905285945352230788927679985070560290340768690684895911059747998184925940972191620827885974381815535115554224914408399049537479651177385033126794539211441389775397644631127358648882752928167077526212493636676588968598087912530248736158924672695410430100196270850015957714828909544435016815409535511681939469741581871527930179154262153509748036266965414368102929674060804740858498664156021716481422251316032876916609738007892314093575776612991586689604904651867194150471264328329830508588270106128857790653504577612744908492048747702529376494498071902361838353165384901122192938737669501460519462722648740433177704865359118830171810248342717716303174240921776173214256854596412159460974787831143729266044586576473796266216709922864018807510683839123113132190063179674963914720023874401180695082723700595640845304106283317027355893379196550509091535703292549668427168451267517092117094517644530970038999152217089799484731333327006822641741991248790808585593545063117852513163574018747760467491482586870438968362682647553325256582928063416974987101071517582330372635732695787019347966845123233827282324268553451820247864778309567321411228219109003841253242009157125514742104397562868026395413881891117521679658338187185870595842473936735659599241773644320180371703752944160936886716851928278402050553573164980689468476038019351840257655436225724897040417563890108982823517671612055205517950464327080141970498475342367344416617603176850133034533044803010927888665489471635785313627537908246361070488116950809955640499459838589216299996476213109921591695922993427869788279437176737053411469635278246583872741926325686851230622561485561297050451295449745936366746979420714137198222973303191529352997891051194926269368836037860442524426959891098539935367921505882947288009338626290360238050958293654804976391703952013832027168820472804498034815788715453435869624556320752535857087327580320859274259861545733104127616989389893987615018362556875649518989498642208997326394558474938585956614021727713215957561526637885422542279827274194602135971364746129955281827332219480810993964677302497822485038327001801494008344613996051403576609355333997673027504685132991728096450831264643112194958576202204680619375593891281277343122810333231014297634136656574762247748308785457568876879115993360937959372129658955122793156612754003369119170307955573686585040310003278405125214166417213971898028327918595973023240339137272898193923546338862552144069550879857514361762612781741397634595265392956795347844826231200827930760969497839799769111314228644857576950861997774159070577226697440741430877635845671343918562566250103435248599899959943142780289036230808593467960877701088163638611311469190214736117191780428038083772067489274859042849505765132155954806417481637850997607391001780856414708851633848888768190782581885324227723770983016162670819415053825460816361874221315738259614774996486299928916368546052788744756977445461922052545853902406068427388067014577273323143785033612739537144040831646522540678573862381290196763443318895235607400279152957305106170029056334143889703853333074393546883539834639513914668913427811717272911076846012997079153707433877006879045135413546596798644621551611004674651329738781290635829431254618971129731409288950117418731193878784274854608534618999285948230668564503725719021059480853585137450245199620724715252148910055377549481393954147128207914535325771834814016722916550735746321058768278808050233549166596856047688002432806619903944545289091446777000884223324431388646623533608845894798939796343862411245530361830633470144891344978792932323805615751432877070817617543054252321210142518755179911428471726886703108436225596822819561981310728015012213899710097081892130486979664906734996886187489623710372378312651804103104055193143218450608043332767949660116781420998675950530643099228405837511874330041902010326799563877876929784638631505285392307480095551311861939914683532991085695079739872038058398452001511744312391538612190715225185120934253737507971576699964359894333144328465034454033246554431035357757078238770453850018047290316993913537690729810676226741454765260275557947528641944991790179666676833608585715790821474990108451888096317378248659514105560800132527417022561382891604278769690102852516434775024602331370450631820622225939781076161628380985013122005804106246794085302582518730808423803570641862180738356249476388474793552005323981505604499704882658478342388335433367289303273544735924100476162953903355870713129001751001859932209447593248656701349955189953681571542321803813832848326295742879817618099489340372785500349986935016754176281363319620991573435747444305993478666187936772277734602245997583870408558816752379660133489296083492145460827592812621518342603026344590069240450810381373049134656646626881842289061358706576254202545233220751618435895109470660082546699111745462061402515104874795058632512150884597283144662108230149302200381097878021224635575477252561194354906391747299209712445420236458925557298833631863507188714238219021542287712187067073286421567074338545068892914614013905859917407339706478151332832097156036113374995355525754792228518981653299712771243166550671089737136887331906013376167654469352079881455052712672783001074869132461597750555223411932948421454270727780977751372846664859106908729793400102405916526129614053990971264750023917664751722958029397387389950565848409808853246858270791122860559616257354763995668621891089943743260580982263841548607333148525948911436104406608130111352878902244816879844187008642963951888998746694019445540329611974522069171682437151654773145351278527400097423735556215532862945958919184583060922597329007834577118141786749454249230241628637007943676148455189727032055728381258308112469560624647929457542265007574273329829000184516339916754275019057744723467735514070009739668805493799131426123038389844171768736273822224013103422271781876664769399845580799082011225910574686651896247194807901619306407539370187788527044672141895274363169136197194305410526879070829578490106931634238270914493185401678053989352888747597453416641941543608298889915852777198101619199340193516237742459473674822603567781980421579299579449771012689959261835465082691765643517502717496612624406848586952021844693375868799975481231780264959820812964725869385441997323914505022859872701306822824703862997554960941382686045011066026141556912537483523093223324879127081952581412700720776987053560672092826515023329040198660404374605561167324349522868589590527535809098357628562128638409313277754840680917102383173968242537068868741786006133016745288985860063108790286957218703579987881159897932520100028512019001688545359107607771018980124125362497445446289036043987445376970876129024022364965703400131379956996627921962482753999627632852024123308071418515864220662847524473993307526328661445668426827456259387143278697415930703333810534673980530835008058640848191373789414982960121903065246004301739432246024783479263480487436828163323932954826228445588085066405485282258931858876052259437194865177525916031886969910973238013131061859143759486016588874447502672407555271675114489069415320498349465177776994857927324009578725003037802067033023323966276861750585038356770861615806585166271057571387175480500297826002593896652229185912671511432895300934155837857590934828170547163585693881441909468037788214732949176786689450419198847605837966152032449213467301324281898581210948197935982135777888151090075707561382638078734290626265250023579397582533034342875766115852922144347442626216792044658999605065253566457484048015086595807801421185194860178090544081154996810763736525254434677454024517303179439909070473607801812987468499647899501077061595247143538665356137133988626575923019862126684182529837831324341713078560768508996512887164372646025113472909211756869150891429953843662663483147762217451747380204867687119032984806675322981697747698194968323874181484576409361297438128446625616911410783155195165027914600676184391909500709080976304237101594593153018901156973363458741960549546980647319687121331304716358184221178994643263735556126264565302769448033744840889664466739040327609081602042405334982702224484127106252571505912917403749840249158486823963564172830546647824196718514665523818271318107181157337295644076579361992362774615818506078937489401744102913961005114844690118185264472065745906955291722467477632673137078118776942105834912912784781323535894368326814456310798797628166545886302798715293913766918622400025971979030470326877642141181802406233675355515016320285829315042224640886854074107080183234845425076732144447709658278201280954026695358372415404426222469530062610967308194702920492197495912369567983462441038496070944068149884104891946370439691807614561427348877214492904547665504871929756379978533642372988548540799120338421442057676792650876890344657345587943128279753079171653237025464425233531402915712930142006204839850956840428489337183117907635130290346795320685474267061543618973177551481258256432732057446457913566755216374627646676093899499982271534326526128041779382660834258842655848368886391419799851286421704623828545363061410737850642484667684593397756975750471714834783167258933311739431331623274673991418522623421194561502846766322885821236016827022529762172169340550356329241880041523218313256677645172527776982976386012090103156234170566511478708408827787440930470900219790513659934513485058662619463950547367049640271631214149850541101195255042065710081935419603661257459925039588608548976084515549371781679853914391083228324368143007114681227228389667153555863740744579528632462763543085773309926400792302714246114108579851709124662153679451020155206598892987755383373140539975776414059756872796911963370149789103355226974967948392901905544467449932344231813378986562718118622340380106783894611890883002039237108139526863973322526320845195130216031605424694380567279380339546362809249670382311274732689149073115858808821862845504360684930389311849414689989025883921119903354764914421695220602949387358887076288987466626931774640477270993859192382239578881161456865518239260894672617653960627188657520963889484100891854810407278294632980547579111751152947451509639785110512132944048484593017350499131156273851134094037500811550084214690179487602260286250906597496080581872456944147640869428525353366982350453303581377183867238664002340351494060195746909483759640396022690004496836657143764745593236891312951677280834199555147508185389316213707203995257083092939147442045727685504505664352953211214814144795927445426328375696110033085537313754343452150452948970158174142616441818764266239928546332679359315692607450122694944870627611356458510988084718141230383730256830453028069424874689726525435135430732183277798967842840523905185962352532649549146459566362260770580009990764906068215089548173923108859726929156174546501780004369248199059840793582171945639215351655922782947144116569344182512267614464861744385534935374448678384927874012920808613731388357532805848673383089430499880201085454585837913410173395168603181690679598484573078530978628606747441019796512480855312999828378775784929166319599754844522021403125054739171282395687341378927466471542472652521717519499148736953460551270670015423427726001798278061990193572891434863240371553139147073975864785802370007375262301317030555105045043811204901117714513492834268244468553476568763054857356429527781635269610240507486274031094575847664051377907574838332139126060593311098946575383989192239981020107309770600682799995463718990988988750207726952721713933816776022501150244554665208432840071287985147011439305625096588566588613595741743444426797150651517832982101752578138101752580595547700685771349362295706062745120365585010835420015702940351134946839075168599321592486186581277780653999493966430283229058524937991321314777361534023922613427209078397504594836300985584572315884674981060405896101570853071027911599242745712560230827347530373290232516194375540123882988876882110957174951507090607191124826251320633834312667282767863353882475551163306326912125280243727995542980984146180590456355614303710459171941992275939353865997635653790275244060448056642915383510251464273333858999591942392228994691051098088358491054595818826245886538180751848227085295210260694956294905172178310439847018146854128225900701910111199345958906323075672080483274815050587151842470045791299495911443790602562457855379151126332173684736959081534494149657660917934210709583128433962238307652760885351400066536585770058405815093234976546292340827510745113495375449698913945955797779529116746165681220009828233847819366349403754315636226522764977030536590284297221393112938931098369839130463511671966809919610021168897949580346352864757838181790061535339133078453288176879087854742015467236225866797099716146216665643671293367842562572296111144835149238803653235213659906722455527544411652004826840547891501866558706559210252493616379326550846442681861033412673538537273531580622609093065907830150905075329413364170561698133433035374925820663728750205243718561371787978410140642096690499836727319238552104649745889334849933931291373147284264270173197304045365400744026863376666883103796051535550924007048746504630508878222403692717077283673162398691597058155863066911657009253632031252266000177719565311428555149182187413875428819385008096923041301769811917647589264641101038887668054549323335961883485295818008678415725164935798727598171671818414572231470837845656823332916620459008742134435114317723165210158168814585392870853558309083948042767592888043801485043473554003130888228716307170883690653069484326816387074756364336468898294165110347085075283788612888845274706823546142550660093290860226689658487628307622719456981224689631944679135445799078874831537597774222196960720559242706735085131578818138080684736484560693969499076494321061464603621619074369023205744041146558245396408751446096692608350116855233751808012542862334667284928209279738181073097115193656892735428845704995515745222463039054408318162992159082797272578609363490748359762342864241617409809842473137096893843297811821267829725976359851952466346084826796499785842486994421387999728125598168410535926647390087160185686801728548251160585609051340827508153595185419809640710589518018431157703068219124574945109303188300252293970264982689931808926699333409452949322186816095245878291057266442127053656514628536464198116299826836215765861134797383998093314259625939933410689856235195034141166656334331443088460797440177360444542642018826658027438719862255007970589761629322496140154368973569354740429708807685569650459389783849878049849615311590335720657792059006479003670994429347739184728907284507657262491918585976553000962940840306258877522895786713614154543085716327803865712632244871218699442396494746518493948430348375178580179271891086161111899895629748511521676164017435149947672565065670537877682337003055654113643163628214355901359218082265493233872603230169290478932015345999914681021957517072898496841638603377182110475603315645324588345669298335505787273783903389347002098373603117247887668279092759840995877928984112943050312427895163312226957813590363199178254616087186641544171177744992451604873583432237925998707399799123080263384730251888260554400186879437287852891275070215864532307583496630755860007151310486964397651525913337447752017681236757917904853514723299080686317906777306960907137342071359690581479113583843246284166339952596010909657792414610236092576763549821179014748033931841634484238688488979652329042177514948239377038931972429280215734196765415392558296394061470117530847213846952889767498270395271637567641884707014914225359113441729314668937140828025844065157559878095476646812629845751330195161740050452927793653371028609263518479798820863021257235825052092473694878596134554598388889854561984204834607469939233640723004669867554091403239541740098293533954110393930436349403060883435386936504111890942233159532769372532928033285800750244650274634705463693980419166333774964894457543887952303383630229761289994769328077532267475127735765973898171511637129890173969843238991113690912375491326117272744544989785263888370477185108386177269409438693260153412946738047947969484747689818699353663197131627384213023460691452359193401111412660609237214988565793563169826280640609573495542751154236118689534823047274689368419877545496082173839548290621962630508446160807444016285302912334659158003601214383085828212434325296969038697262678328991889360251621019843982037429659208059123518435755540873789421309468464992352278195773037533544460500724197073389691567151376715545405661286815144037388332519472915968403386197965412105197335130065316074794851819146629215950908231061152591936094927882354736659765381891470504116775313927480362921134286158895468728403424703116243868414417991935092401452285845290563504116104374435737291786960273135659434942025787033366416905449949297717995354633678626240889413242351485816836078969362611946821487291106055184563681492180087615093484479447281608995382420276699783238685244039334166720224538460864865340804377042936794555406829187492382554828655640175443071707683033047155706866581987330793559350632930835230804947053828364212301867382314967686588754564097664570208061234446011172615719556150812134900191817909854910699511969714892337106680945725120195890597085377920177687192225581710263211306181582640529350839575877616368349863497941971975486342913261846527377510850960422848157284754919411116730655313375774009402046734423580861564027873874180384694712572375549658130453728946834839096296874496814017668621981698330807176757618074552622768171502386198181394374837852981459770791842424928640115670065022609174404590078652608922140177760981535853376574570108286172794981994195063303268071404535763142233007819331705877103624169610556718165288330990586991469530803215448577927986878167961118535168441594433461118794723873821447548825117380206319971159263915860104830606327942807852840833641753743714495806614282714688767098248267236057386853931629139782443856883563293293794228359607823890979388161954695926839513566895931624808053308278320627278123961738443256929487879559922937351975276137150397521475427075259618750129762055837628464978379016378251536298768329199970805509166422190970507733372646420261306042941283460931278072395333672636644141334306574840399067600485818081960282110888496015066474288085387357217046739583245357598948310694397963220937283847706121610313094340847141222445223153153492944430893806189995321393903176913125880981449713538625730351542617665834312522809467984884971782736007670427083798267405742000458718605710996171294702167071691551825658301172448457607515698440220906061286009917023728231066579322043720710543043096324082647280605320884618824545814722045202415536333653287544617151579748435172021534058398883291333701906169777787169583520741726866974362341576030033466197892269373399949606695775833625827397497797247113544682796331389943625924174876487704783607068390429549381443079512957186232862534932709734352274337259154453282046129055686175609265047806963511252753703284914529130744622933130809873723752733689997930137925759565270435752624371353954362898724362385443536779703247730727650942618914626454462629645791093956600962644925423328652951577606605774108555138428433588361796704255325264463010972642407039580037666812214238236796064151778581625550959946990552240324894627157597974867176163805220714258736028905832809340182236047669280278372555878626171904304477672475080437427761138811564026415088284088575245394673760994036479394730270383648037165261236678836051203373253889459755047901803380674144774490928256324614375370407240580188475664999407409491390983323949619227926585599939540804674320879058832494254013174243773903615789303355331177865945763456408934335744200851420313178825333246717510166765963732197749445636490203437679579054189133669258030422427216122285027655583948281308589539938898694155983269324831831997459629043034786463019804229536038547019499881884026483187491868863654276708938181112680923550951462367107377216638888850431604938086910666046439749269631830983129599993679120181524784180657763324761796339210938073775190234254794117599587090036061506928221829899069681327617129435811224636408996314378406588263524759334966414561027873409071629369505522146066609452927408312880851112007012497129389979727202351056313023966084664352028301715924061825601737970781406073774919423595137116908932991512112053063500033402306276833678381662254615064873387460405374478067297123616157285760726083715597187781586878513140677541984149625905471950936682361933892444694751946351256951738260596112992526895188659385441328157807449729730129179623605216187341407109417341429512582787732699311908527981795611730991880788082518363226157216950374931221800574557990442016474010065350650508952952604318154680915909008946069761301939929492105847194127538062207477793759842652449739180914177606554155179536785366556747457504870475099936310094894860624937603020819935325869650929531818788361202605901849420245916287676755956454315944653753129310142838256048241082059112628762519692201062418800890794103575123768187424153819878310491986144481564493911976270422853967667615210426808092936852123828397438461949829176723800520800265626295611681027862539202981411242567303979015919669405180657023926735967228959219062949950139259320886111221194356234641642997657579863997868605216235697032295846399534385639230230982273796157338444982853067628896719644736964315768239887457795811683446779572173570956735668438112147899972512955986152592307129428735330554572252970307229883456574959702162319289827133263876853149184483573913078420381815737623551272503501554322481684067268796257877816412626157762496431342822922469012871870093032209825073105775533409371846833334034580179439015349004513343261003600892450162392852913436535263023452793727875274372195158729865599924368403824213209163724804727946051676321306228187495539490734992094246128768510497411044966202495093585253495452004187691039382493457125973386021670267236213931619703889320604741028470012696267474717849681810523577698518192365418345398704579177071149835270213549244344032134503667811455299557296991795021969951253056726183694882658454034156151564769327110765129055811813433445230470546638581901724598918864354136737905139063100475606348592538139789434596496988324481786976165663604649576220644630524881145290999377021444193202362278217495582987524626024062037165940334573454180809789647927197135246959155420794645602258360578066100011419740150345151849128000185078891516880618146079629323568666362287067305002638736087682159414374751724831325540105286912396542120948523805401662002208814580880925345965213530061571539936500318423686559973023593271680640978730230169028775924297953227575937662226141932264432542048708535892865333443869170379935512862881938294856151307407245976749281504910136735071493947322022890575217736009730361456157475287322312560406535088270603568700548184494439765870003829789706134065036738621980000491411451088966219252268355505542919493901138632622413041203205501950045301319385001813624640700606848088642276292811122316416167409952783726291848598499784270423095098828577777816417281962822704329370308192373968251832404796959802732923513134004025656806184466774252637807679112564904330581725782895521607619650532401494684595245278136246217862552157105256726310201211018348769653519298165627641911558796269508850688455185722311252861940807765595730362454075599236429614042813778728764671118717503301120269127281363916548448165126700913765098967801839975046675964069292815853156419754638017514699496919541336648989070884322918076025559726099029956556626063513488051064600274925300236029578198659247005261068266367070587244285882543428400443162383284851041865587002052071069422715449917403457375290659231432022115034239035799089414885136072562209572153247090066558808876337504538440884815387492332798953539984029737216708999038907931079529893809566954045828766639580015420412375738057606690625773500048465085529392366028753931208521726384952320785964473812264865044069576021103232628047767016441658465094003661734379076581877137487366359452148174253567744286171810823449984850515253960027408770801979621574260325641408514058467292744584178808915769373284466411369877028797112737867766807251788419890915885482794788243358062433462433523659689466564423585947842908248445276398083268671099523249019881050667169058111134251133117188120747602544828260567139180134518808474439374756485398125932463878402455382545531409751263119238123884520674529133090503760909010050484803665394344698772883105383245842810047688742607823309301481887944953071019681704202240062116424310181822962427336656508442301457689399127483338153289247416547227320575574877107025416753155968188194818971726373047853513938198203209185403315954932981824263776175791833313696489056711293022636260355130574693253279647242660592126926244284376303412808599999597940748416321936175152178104413623728527257616390375208835749673952670845185457011147492535715163020467207437852651234767748555814845512139431326420378825240708224560935238702457892844324773026821273508026528224933075684751766638641465622301976877969882951294145267128416331964313792860613375909651199285531959738571960811875476887437161962263833859938335898775312139544282809973946259824929939926474518841022190349782579555957530784026321445626595676887112894825287321889147703166932045006789754301236898901647282514103364760631509838026051926622486143171468281138549570505244859918323454656147946109918032841286490093704470481511744394601913753663780704728302448982457207055409202988755256892170984434010873892418282322899433469033666422423083244873621549198322432809203022589736626247476447216979224445166292144747950857498694840256804548999049118303406102140643608358066219596382312260573841750431360017806788414313529572263421161293162958623705312791711616413640878869261782739145499142744164539359424806073739406102572994267793722471048815672254520237003943292734222218263436098762184745881841651516110720810872986804775275798926510917738662721020886207001975922166221672873847312317277114893575324956312171816099205457294409789483593867855742000846150972085416720029496770330341249303008531182303962568643672616910743967018676289941200208367346620482367330842813978694649061372907083329605806190680956838515570979425476450169563799658842545191391565338493081980058876359101168096668477618357453971508747002446128307797574019802098406342262062671031555872983510362724408926243784201084812696546616326488598606719748374781128761195447880038256692149703520170901286425052670607414706394080252238767719876590855138849902114519483726225427240589983310305963746470830139133439748200351258547580023972067073013375200912480655621760548493150363907501279415019339094446294843608842892103540780572595043240469765991806889782353317932013730170659134351383699628252719836875890726058955674110202792772453153936733671630721053641923376521968408730135182159717168843087493674103000249331040810872224254519334191443439348388162082228367452983784295468620860600410616806605146510747559411557724071389078049132679912856562877098219399687505675267739242081256565025356517783415716016456009727186491787244687156512873432044817549715750914460963653875297389064185544461715755812897730979755209008197235510924664983148755373576987249652909861087104350098114680073508702907148511043710974806600623427194215031193984882977436816905972782774568940331603026520336004773709183322576050805816788087860873759935406717125725756715618326557039616518171032200837361082070242393394566993290779359512304022097558335690490360439254239735488766881939041723451763504643161798997522597949921546861069234017443011539523846419227340653701671090628419857488668796248296386638968660329923403176794283346369972247356942474494019095336295997815076709175782031982783842599144603340822896728545272070908014671947116558938165393675816497041879129570302445924309349692022344127166516850855212189477400025433532067766741452966706115452493950119402416210179414571581165302389717135186911335752601025988011671881235496023373608611227654637910590743756217720051847955918405055992282593173069782158726948945929611654825965177212706686599668351550808570741509503168114529521575411777167921045082961986170537934772108549775396387196176890799499587987435720047564039498652030127052197922663240657609656536533020236824272411607679233417179048022372771016305322059931749405527267688116080389853497494033827140819937802101088935368439070699734487962767008674569023846860575886905741756044649495849138211245559044767163599471724461799016577009752945194897504760914822728636438427855510694656840139616974416948077734835170428593366576634414021038772916976372287325443867368907178277920919776661993297279085147723350243582657843579517152219752638158836415430787392402682413675280838111453093498392142549632686974919607971519192312447646846030205804134762722676897889080509537526657641293915779716002911271538442581627621322192498967544711911864341668755533784167044050181046009304584759822782046306248334848555012385583804815688880696230012702288415494944064952569527258666160672680463716587710163437833001375373866693569807417222601076037006276074770997514180853580169238368160385778521312392207350368038622078642571292890721746882750491619317676997571553346260727998825939381105435067105181249760463704717879618136673813177362822070111293932993033352885022376890722643362122425910016282469710679288985542536054330810473332404549024693606125432145799281238541479166758291580706255926560291615042113580137172058505360741513192088907594625941757583110751186593820227654836261178998998316298032919383586455986706117094451340541893797573593652179112851589229702195856542648859669648945074635358027223096163219514351872253582706202864377036939480945170242665331849174728868195921783188722633399222591153977304763545720474348075657891392695856775055255368626069717381159595420089318316644504274492002849464062067986785474485117106863318944920825178928990793131455249514701055369258235271367890299404225212780675096525961267584352405878998167946403113904323796941210711409335295467391333948050322924102496206860721375625460443870533292991728662972700752604023650699640487549087208086543599827140390039941291433306098869722841689729598970126916220712066727655884347937344096420976758292655495321479470232037893612582019569487009937723383043687303015833088754723478869887125957124707262889116637421574904979133665350255681346495973561436514596313481735584003374572592229397230016511569474468596733999463234500257213394248320800551083855007824004373673705312732127090753520453765085746927268855964444192985330880051806122207354320107323584092346884907899334663678328004269155395243731290927727250009265840164108208819701727188692532724449184818553124394472122325373138809038734438139692088499625940536547831126758577660118925729197173762432604677066251507748311728790062744628993323601627070561409201479289417679779450166046744750303646486131163666748571517403305859229885453755836676607775828132229275208141645320391514972483418231554559315788304179073424513066625561503608544752301544334552387865711530761902533855083720416071935307391988237462217696775954386489562983054871389385788289983827723612061039670987100544660567942564994558073953872517658241920799040684795891673581525653720383290927565649557155161301881347939027801825916055992725609130253027247164229649521109651165899464513368349303327512806001121896664809050310746471498890379742519517887174997422634725277613880065537555620565615880757216082615673320950583196794240675944324359652167093405999188718691154235940332333440598707029978996838013260446632306540014567520257372859106114008586488024286940834349368555425798070000283063515604603734842925850358461068025604727876436518663668691270948004898945784371891254977529943128544043306582797024786039974477569671240911070220519936622388554192362133598333180636400150962469911315011709561139509843139610422233840276384019813419403776706094149485544914624223107573092418064406647783643003911505748276234140637117851004281139627992348748575974210504009340269439645480697999617879374776667862969426907562114963417064517016661199514200460590594161758300265992440495587126620114535760568579659378105933605608246587369664272476274453378748506932950770151259138235221632738243905345796850572474620392930213567793061028279878912196829573309940592960571587841565655877611204387783986727949116594340831882579742224079221606831555627795770872972851387534190890924439497740664128317034303195887693529087854502271381293121721747417503958302299341957282477247264978714073368312854963357384404281610190923108281998105302929288609812332437084431154720663207709556024972827717695352746868658598980258613831662004807931428426044494551865244402093725878573503831316417083025861881816148226572734877600103426330687334605478376479714234655265687028293130249228218489255334938465658809460697612722274161870646679173377159036713243050968805724229727423951263552163451360200974850428929547656823535821525130372024520593987893029164719891491462480997139452651099598792685380139955923867919715754152417610746959591202404523779933526167059176340279141403754332592067308671399536517552346451282350844249227366860387494664162904641613524186083347110996943415123310706193124112864364025754157621059581239682977125498330758593772960275800740030821932364952816900136161226125623049242156304794329562713264107946801496228193296673187259490707831800296357776065823742292426286431342241847467288166150655955286134959679567313536089341135263087892710915871265643323014125310802956828435212874367783849783759653732256328793045943192632713386088138110940358419408048346803208711229455804918671289783279350628113821880179034069211457073751564984677309720953784815641324514698671471588776481767475633773194052543831152593390721720596959117172195864477695533026451082122700217770772851502671490055505761049480069176741977081965042530522580612607382580271215904915878183489376107623759057096260892271091986741386833892516941647029121818677731485809672101271709102629901061279882527923805008008970686444460856434569298859658432149048157504424240243926749546022017326912581066335960810448976150844338677137932215490996450411738926834541832715297628415431649321252380949412351420817592371255891737878879528781996568518458515666664614959159373287025144455838793502244242433422476290733860851633633336143437871568646919252244180489560676791216261268345313552486104301940425679191662204751598452063164707377630700628040153468984679307715810931040215963062913211537605626647701931531632760077268136830854721481611266217559862137189958294417530989656014537207577235719814564829590144083815741118375634418960905165543621741457216433894896371895450822869841172390523625861287102642697580548747193654667666330624421888947844679322498775670984820884075383371672628838111937675162126641249308433146007750454809567364904467586430064937332067266407898680014452432098776761026219048724637095227313040046056208666667903621442712548079187575782437106113919037769876858554766485262365422776922041163093169778147847001726907258099558305804671703988060559688074806269604409926476230292456774439768994063252752795140230002600567917175288314565508949813926959391802542155550888236181247201622742809782122411800183570965917326116112666457836721654246006565363636187318382843323506755303725480172239516238046770528348548990554830033859296575008393774841742524920921879945136531234191584437941558165153917392989346890161429929858192899457702431798118689767538775716492648114364622797827340553595177345106154939461779210952110742355179552762318826147239834422652736046632230822228634088020126945429551144633508994755763408131977420802673729435751170676678237340968385918841032440785823812247019083087387156144090932868970462871422395945662373772990257180851240486116618884009664890184500078649158025377215495439064495334688887240913064448085016937666722381240443055039327174446430334484468636648994092335736155904130347054138998427808680523384016934761480988579756027528400034765930567991399379210401899897192627838155009647720344668843318946692917429763667822554197494058962901820580937983793742835691050021819757009983148649864124247471430507816497244775449973077694455644237338481777016082444344318709296296015692776641352249663058245425618437670978373980358630674092137824761627316688021645413430035194491589539084320916245046937953261693516438867835044497674127241872938868799617782547172141299314965911942464195824397436680391474635889747617302309938666496264073510880097419877294236034383243423503616872865949221170860937636758554263490211016243364070239686012249124652276728638070271761178151761903674052320154444220795369289101405621671235095873757852553108989942876454726452017217185103582590845156447398955775520219457511666262119402275842295253753913130649916195211150414797733854995894699806734357030695472436308539823893779914258065007658081688406953963358982521947245717725386559193942480018967900040786801163463687296336456510050480333293657100753414808722873499318829258940688042563251493753805402090873121375520560325200941048564560744735480605947867710123172405288836782182879168267780937034812349504474261279313887740880619848585706954095970802347953075442867676625271602296566119971517428327023070347261913410876835400344743814538792361462555492907407498781718866878739713081374430037592970073599759930481114355655672800508166991713946776685056060080706311087380807570015868689544038109998833729226642977595923411206237667585868385213255365413651780265969182888538104944818825493977272647362816659933341423302704079317171219951528020780700477211656773785910817631646112461496528315830980189052893450698353463022158401326707541567385160512256110655479674100240146999919223495910853460021098404415341119458866726485672349443837817758685926565098160612063399254325553532710869278715373712535297387826579138596156447215692404083876512766111339070240032274573143280901001956189183153470343761068446917770721545146287415175097744860521615805799528644162594906881615361198258561318773117052866688272422858345007026751676846981691199792902334630976520656400888668547629945339318585654864834192302378825327033543710856026833971450517636276877477155635756618671205076761898836244177043342730318652590163560519927731973851154499924130842340209476884767520857194856116059974607538115156859966418362526213272695925388040439942716535423955116034269202616187647023861606851868632611427157596076720534737080549776948912464042372240340179755001476817652347230511601970080979553897471184995195064823587209522332747011876519490648188964382831642693977479532070083318082816432566044871470721608841665852507032510490875155727693258985929260743727365281400654907972835314802142915469927516584925739981453415661873309785211077749305278685256732260659306553585575094774418778084033935956537940048217470846073427674619600820800119836532239957102291283587333690513197434533981097473635915324658177553924179681392113930926068807321154099224558220279532027313837501919272548800946418108495943143759216334918204475106921089462994277818117766397304032460763370202882235618452421901487485613530901034644531200625542762636472533693890731227786882176194644243605100206475489065764118471595276650000209965758206940707016378929082169916971828395871722745663500068914285376151658943263374845582516884128967763766365494013091338505011127015585233000635484039701386536306080506167617958892156137996692962333915327262382859111540079562229986342046059670653347640623210660435148230384141092313472084720625691960283946142435203861723772412827331095943698221329531125988185521173892801453845566066294299584116948976034445872007481506663833136259408028225998296461211620842421741777478302063921378272376072488770343045990866894411024819250120657843385171390176911841269189638424861651122792459307060387011475426104924462395692991286848975052115591262452685455452170601845261684597531349440532166498545452432803598415761956750834561574244378317862576354545675006884719599409054794757791692679122209532702675954432705061909479758827161486129598096080577873472765361902414615660905301347255342633570485860698969029330746953418811177366470133479251441653096732364984199655500902747096725351834152678936746703887504524344605961999606389894830266616457553637363815248189342848531036793518016562043812818954498100348130788652328469055629371414793825248532638509061909070214805648441880867299247886327220869373293538865648726046249161172865140634963338078213554373699639628538575708310407842984776601323889461840804444673885020735762285780721180159580042502557019804074783789967128088640008313727914744414979762360496531337809578748696928873228391166264938233420970884789122706844390930195513527254116113325342375873286153412246744592652199436685708681620484332875494678673491853090935939225016418310718917283887128964743565987967395636739888188255764773013544039459157909129251796791865386813712469434247134902622930277380042595297772182203908327347391085802780620912502527986640426322859239783223728932289872175512128821457376752389011567204064324275139918974689756522681349523754633348489796815752528019274368202504486407987708982035124213577428991910801770916754883478650117000836290511341422014649932515623888447045771471783020181674627154133816018965320077281858534285433773493943946119534370578338946801820244006705382713510990519052283763305584673797521210551622794286557249661982764491413683991917903505958728954775226379067167476993378874384202207543185103702421170107471897164746229427634809914411548912080311943691572350254070997709108136352692995052413936809389201309247587118047621955258148366279563000899394524777578344411753147648584499640693201484538374915411110366549559593993851787411502003527719117691138532371884891335486107110055940088232874354995869203399543360197244394075989358614693272825511587970938711393390971745660390948468922921767212022627844603308124353080363837813344935292443937385795564122070328716540657095977509322277388695499354567753794773184645201926371776825692700071788881429065792008684138039742627525324728754656787795924293016942284067042057959843894752659041377466593701428540121480459107903058797439880903480414068160112446442178106461552325104600831608639988883849729513663392347708548296184823854211438294113376405993582863495152219777279370813831734070520559697401491657046832471908031047026662270314442370594111895727905479756370576025103856652407797660880792647606758616819217350228796861398007274533552771584502398151646596361769198209453915688725088877301692339728890464379380889865234011582830976965327995570707577467099087900569230463787941018679472829522663204086047749789366452799870694537647226188701055073875196852867602317956484163235677657999737239716864702059481769347969756759753113781483247497482192241387497904049630293661180433664822213075054741037053359334883537099728558275019756855159589915987391445500990053340340782978312332188233783838211608052873308619829649594161862546756832456416186919979534623060885104011144654003711620380513670765183238257975940795577250946466191942122796684700974763608001532558474172587957060211471340140753170787296279985647108633917173538458519142367040054843683926185718354721014384461213793178758092577826277192018132406172070162874013402281663720085715877527511627017274292267088242790896734772411310672993473023852351038201861798768250170398934501281784561947646931697743041316092658320687710085960874963820121858922177360009048443164907941054121680635493091140200993277468592192888784138206177457541616776644180394602657983036300258924595401860259244353221418068521338014010399769682270611816184374958749457223483186004446367606056229686475457415919283663118405467412849289106455468011600069112664150278645470750805598864863555631769903710919932707713390174316575182748237071161344330393094616603571490793818649691880188475116794955401825539403070527752838364180048847618599654250773771987326745265237327321167768245717241550240080233177412424878241650366019529611020979550182428879158334908186688595861670952016893092510052648042548021465813411437090431049893812403853811229236203546785533383764996832261575121497043714201525371534517004344487535760126878029189256788694647301258817390254997348974586844519695667117186667784463770698536018955353469002393127963431993102953999603801593534066137309213815477954950011653318235498696955730809970928157318601081099426825808894821114375350379432360367105991449781722298321469693895948855205622505676730525916730170834370665009795464267654296283586562287884282761870147785832304996493266042205675370172226735635677267705225441634533843902926566261437328679586280833618104853130723427106055463024075143242829138272204767474423172172218925271083085187444408052605279492627417663401039878917033246766896411578912721271317682052000366524195156253827620761834621893086621626116565507440786123949174756214651106630938955470667828119104302869404097714225829842582942552567896092909173699397995571381261814393732960684943272550429657594054017305548134751987730480891280207612574357937545663987791266616220449738982912173344548676216626585929819726133953341444469816709878007441910733457056764001458688761274602726425341644566147378629974355562299762291071044219967297249231700803840584366348215259997793159380145427816924079408239184058444534352804277280599464929349091323380952337443949045995792688085985495730490319637265277993495814907533846860123106549961030959744993399262716975714198873770076695316856353395388728516439578012535124667465974397396814084879898034906015816309946175345432430068264250807315177188773122024269962172659011618908611662218130234096760591838579110755729690618112033033273749602569213657192335119794102049430192933047600786301524074919753720512160548060715022504520362220341332876624665104094103903880103230081116333497307072948963011567177220431054240637894795802859905686634810071761269263961068710422310474880352325539662281556149045025349656506189508088256203489096586380113217509842635072520472357201688327060131280558606599035612517011491449799416098130996487719911292186607452042029238681786117905105507337252685059446096931759297670206627514261307923714548163845548306752888905369617681012423928702466721690482230515612343869225708316023627927085518643737358562928380244451367023060304808209449877719645891884335511270776555235053401450845053600384630813940216767914017714192157093554166251866259170663049282587524388194208916610042067559193432658883472660131556708404892420570461556563533264159026018018919654352463810616861944462682798564068820123750663421442752047125737477075239296244294258084670412862660060897618088966059047578270200550128508881620567853304466079545467860522700435566794281882464722021592355051427325199772051829532376098419266057021754718258745672906603843274574320226264051531829545943928161303094271291843834240966069144625138968687509269786720758554192226833997080850732820670393510987261274099528813790759181754929963193494562325355825639679055111804149185981695862879431610645434279364546584081756475563016806294795930873380797886448934539906972655948818956225949009701360140493378308243185264927160688572985957583261387713873816640637683788040906457174445623644712417418757168272538373058482389949157045830105446359030263121793300890705216225926178676030576498998351225469315009293704424928466245757502041389660633694094954746660584779881302254935665370318742071579591819115729859999054052481026048221825159182873090156219183677470966718909136095088091555952546098844215998367297544855064741605368619148331384705298694532077215023462643192119699777942900149751872819064721582697081878292104890309676814511923359938431982450009392833078508799351281991889994042561094157170435843211630481935001326448361766517864745279692257576079408228508514801734982699091585703832096244865518435578158023974562207910843925863681795760288490006954114192113108373972121703511678663489549054584286786290026815481243975567552042505604952268881887586899168326121916850204190833937125252958748235545549101223101090663164311896144855473025999326867682475559605290569343064581528563958295285804528601438135909686666467393239128419963422961316189166865680068240087685747378776148096861145482989340300423605617632215518163585619943702526721812206157326760179453248510247676134593561144813616420804730836326235773418966421207426422658409710795663465075131607879916727240257237963563117003942221433379218575945477108765772833592084122009117522787036294449513561969089812904049185123818297018202699119511988014225346412495416676205568536237406806274866930884825373186428056228866222577262954764747215385402753872322421473772232041980323635940533833047646000317174233437050663097529001684242039036225932105373631359106678498199222809388954410343689834000915268737828845528309857035449055749794630768967278609556244617035342409030330920796365245238291142039115364718711039385570924074262152199163603321945673072682541316561431933954212677691944038583411470570859946045456151890399718078204351677190709775365406651594296160847962334373640286525745442352566220346456871538333009765665229668110343350519417987167720214989654509757697355055924908844851362110967376617193794975352978206694792294425336728115148060367657937638367891015370374357808531412371637041810335134127364911476760015479445811354181676616427814162226041079257269776313923140734052844228967636038353006887575632413797473878482974538560902407766388174613783622070218095465718516341635760502854119931988609086942572260197212286067306376490842259521618807853346914292587112316009545537919842254031816820304100483511991352333591153263124853407266558857117747429680232475449833890969506173783076815946076122110268450244071161865823108259742964517674495609578588676518171943486498821258047288169489675909109193558125073209658935793429307542006118083132218016871371405539833621991248549022923228816666574377505440295248561570235570536953041496315987631034430895349459058504810145159262224194357221736181067708259002689118142785112923284418488737041271442033954938724134527722880895732512638186879326425263248083353115620567243002080826636588212144877968746511856081273262805222438449324557795243603493015673641364862483893324040312514577291275504115089342457467976442196182455493010481601446762361411071909187332427655646937227403827242468632371368955180178601566453164795318258820654888340158433355866245877356452717318863391168484325151692223266382479780682578269178905600649194988539073643649029968733578318708568475981065716402750852158599851178705698056225922431811744649330348083975088182043936295629905716607150246766836137395573862371208441901479039877291440901316904242506572216080968330303789683561743847121958635426458381301055085401128802808722019095716852297861056919592179299586332050658315719649046592723417384935604634550966402990356913861290171272961639397079917410242003215227052207124072013693342976304418262967343886827133940038092787117675310736658379699283195363878377145145129907511832607925194473710487061324817456199982530141895353639701910302887038117047948531875724379472060530724932683248164169551724988572094450658014185062675637928905894936893775563483712543318787532828999337239661648667183149386251567491616204120929516519387304848804124222093948290778881373473065957698511038400762469861227269867872421925622603290799082547159361551599551468771207316182026487625287054580579255789914631173147413109717062274830793813767048331443243369251483291213324741642097328066911031073361691981167789342065726393180574677632258558164727955117546001118495949348490079422149682731627084271134231426465362450305386396135079650269962869213982976008274793510315746776722392789998682292040290628945714669196410454449004758581885562546023856254860182517916141107168753459087253380342953111587916146069489483179913113065473588086832999477023698476472260143444499943113269406395405514080596428583669146178439967342879374793422619628973421191413798912191769652536168815965371691408719410220493248340539474664228431877419541323212045302764781417318601496413481299270554659146268939349648275953456266898971773669588513261496391279922578534832896198374021132582985977064965228592403362313549928290524309779398874391653960944598693246343851651851294065569511262990846657599313096063871335219784826585713118591827917074597868936628563006025597387999964330666119471893683552188140203525502169455338321802261626202361776268260301885937424909120326285467373457259820795451274583562969544943461775774429590725758480067182679328200671855167314015405247849497583858236443267271284325703787246487966403508749284122774248009789149786723183338188171616689926123928136557254420312031889979501800297767931223272329634940089024716000648158168947109538589087510662130453594067279339132088872208401831791482143951945849672853224156290274616555570309076884085311031879387907772477326461845232152094783625718181981043518282346189885106395107366923206401241534698371981636448953219221842716306799251038857879221986453686070342583756686632383837193380965936002420915693274418383670128836422158391482329094155727663368112606274372831778757210455291340143314290843599540460546541985070930394372488037599513198252285286379221443027131364059527472023540473551163468090091757222902119194000742638618674807848760477789758987574158152255751231784766557491885472993410111430767066587702266846087683843960082759251111726812048462437235378303933964641972078052169188838021402081816246542579931160894472985104855466272194630722446804612682242905043810946691435229660697625015104984616481612034059029410404904856872201860550274424633718652953273883819360809769387022783893501069829879990961386371931963108306807694629722541460868825613286159665710394559719051513418362103099326476360005712168132635462333364402301294951543432744964096602264054666116982599327797031569449352004137587027578150238963102103670224022284448665484205317437037585982809483386314769128838520339006958282849641220447712763548601825011344489007241164178173320370660093022617585225379894684012527819841286856856774530988090105386560471794999688918395232426361563275186144048720921897005846356027484242741898215844924627023017594815900039590797951236218952350537148164331356976433093331478297579782072595255267985933196965279143489172032750858018519881273839481551489366924209766352185750414675580050749302058333511449195782188475850234976888316255080693792020897400845020668630356070399817205279911858533152482351004813464917741627499017448227905416494653107535741494814954015148616326816117226679198878688229697977908154572575681972230613339802353707878793739672148355623645611715093547133307622930720407584637644929106883557938441881197594668079299363934260029907401539475968946410525731453418204143735279383793694233835039292366956664610798337378261881440450027278752587143809556091310072557575656561990168481565482227931093704097511596165343014817012822145804256548339446113949821912979200188414666145600577637468746363795454714374044059488873637605429505178031467562546250563925547031921776213213656490870512812246580459711470027084159560031078324411487720642404538865266340868161595493003007822059618628012772631305134884334101480657818300977281668536408875717988171782356631517697750419137977457987489910338492746295123364021056240590608210787992960084914478470450957528932740840797981888717597486560705653752235561524109047339419484314345914381072004623045254249127077495156780416172375354148792418387500108575917029976244522097964143934308000099440019541868686431973256166961322865900373706707294642929432681110631847039590821235150969100245165662689744008805644941454944470210636251003704001221269449100711936606620529636150593729056394270820396934005622254131073415029702439560674460027583405057043035186273630294826086614706840513069269767699265015651359316227108530893381479570619383106146780785869644852895679467482786046121879751637519548439911247189588856572973558065445091765753387786038586559477031458672168027694066465876642283672304392083948716380219114880076987401237280333087003107852731493760010205325645970269810912074334268800839534553342557844609289279600105881136566114224149856635289017261912730268663070819630205954610443280564989869985241278107054249564022266998268373885709288725268435166340023587569741416882693213764331789029716338723024636983729185099394347224286178019366420510340619521873327355865514026402548333094837730068512901974086831647076694661617369476958004913604867124117970400181637830541743546692052522050083647174017182319789622804122697946612320660699341370599696428968775646575211899015527430844015356599884512301600055720212919879360136071150916318289824401634253909111979700030990408284679000784797281275741311977025323881773983128343304881395424720396644330297368049833469045515107483955371540073438266491895495775614388049243541206946083083876753058920497576673599269388373683263358293032263222044094292670042991539746898252033782453606201109638342468807429325228007548986130574900474404309570811105044958274599823835826817954575814071157213727785482754855537866732539920751413760381323776076208467248219527718650523760215379302410038271699357582490496938040576780681676349172629176896699013867477948875765907918043396954751780224530849594869470473350355750185418784073485584693426671145291413382556702602733749575820736054748652969304871585641780484574815487149161142797088785165038436048285483600386183942522332179070920509182444554038543924355055465294211669872660683831538841277447974355631131737003357582932885658250545445678688313079542584642035827104027302153366523928668229669916927706388656476294562593459401023297111246671313571000363985549221114905863589123647570818238249028840911163713781909079342458740410104112981200644013843186576773884918959785216499252285334568933082283613577963731528687593789640244117124264301318694033812736760573154726711537102509039083742458042347828191523421570183259063065912034767986922581261140134819306956551523485695464844479698021937470432984605935595138499861399267721760917192429655113481609941222874176979994572944262185155380118415981449635091303685918163505416492863540118426747250251950807628875998382470383433352909795719500484540805149985134061951073320053252879294856864336585885420822542973791855386311298531685820291573713112595529331923388743726014783831023358984842122801900350354516717412402442511577302371421723270880247994840733988581698538179165308439055770340731924401904362692110941281014713298973372692416823627894335703856971343639516481167197665283755471263847625526708046564512234281989780420678142174838772756554545319433230437753988785819450504634331276418506436063304895610490597761047236760945825820000455266154450938735658739298432903703298500999593738684291053929531136199786151322121908937257192926416208580726362478335827577324261935567402951166965577574472587174145833565123771285873705257920224640791596051226026264110192708771285132810659256789553285035649836423161289172076117563328605801209771522016249926317553074996581586143264293745420563171541969063220012461576788628345184733116481660823458491720527900066285750615187069869791008671538984268297412129574211242532053373489887354411736022605838554028197205136310951132339179014030813904396566374297398101062823397946792836823104980695075641663618331948185337592894309654759737503583659198560550268515818780905395475284512962814968608394631051797539230117625780428580042519765915581378227131324272717359540207467889655873741322626069517127791159791117425619621342552274477220293808891289666832603455945738421984286627045844164601720255426715304960424558360892446174181935035820577018272641612049318510146992400082440467668348377108734192705884638004335480068593590025754308789283364753716935298997059004167218688711948352325370778058162202332655848112174211585726413195805658078042014778371589848560569925770469134540403383323637151150897851351921767364784618777975807257246871669296369887156718833498716330604527781100091485251879977322241987146377174741465043356160875122849461786008340647602215811042018800033870411916002798387900331021587581827309033660327258500504201304496755246292549590775157547726386085839559830071646634451051341863538740132893855833862348357529275918136646764062410138032654591761795053469454588652974756789399157566038785830811147679735094280571509124809372846406195444730163455315521352367680042549574105893984187665280635178801843241027686762035998061173279870673593485272944713300454512991647711302191683657677758404203714925041848705123280710742792169121716113097457580882284320728640454938546403108942443771042195471023671603529001766945490301886810012944329673993991418389180735748020425130603213861591913135259426464560534038940331477534754043785803321620415304347360729857038837279289338511421122352259140646757066718181855182915451718152636576356873617559543545351018022781500586498783777713653534595607799093355722550241986395924629778893293767139639979701769562348729010358569486374973249846033028909262907960797159099168981864115520764887414313279166796534586896073028274965459706711926951441833011292940855189996761919664558426673442771658377433186922336270292741089490607612338787117344435871975046310561638368678069027717153736105116146327406331390526046510582861593421243743840726810819898911211919882426509757062319596320940048209009290400687198019489363995284846101841636455829319609643451123897540558546531124932971953834786746862787411655296879776912746540968345985658382623032940355051569750737736136723232535081916056465325916316525331969744664620119272445792555879059604475669764119297524198288644045301368796664231438811431298029664549348047594139564107848322285304538044945422876622824162426069082319217102506926189669486726212883119810296523790153396282688703149445573639178887716928715072278173604243003857622619395644745142970674210631701521796959450168237228201945852152104070749863125763754637020189498739897738212135997943917085016344093711109550749181727203910108714505774512602028013201079098954357892539769354284390497912961752188926914964116249506668272549600174878531827137532654747884306553844200567117712072438481323293045669701946558909525242784078154374432835015001056010393330441082052392669176368377080648335547549510083159372955525343695244559597797197036717962032092637924762009757875196787534717611736194634965420546526835491596071098479995271752375486541573121437096422443847459845507493614783182593805713314821846260508804894808740407879118180694562092956370818340866013302976044373036366491220522502329213717307093123530029674180608191176382976579917497273437409922172004144144718853863991772362141502996956319505625130181863821381326022451263701571081124024445028164887107428822288296638957198529114931588129915465120959178069192925088465679841704172000234559504146693950810363232281930466987242307992809300686491309421691420358894933909740406527504088698228310843643226995202697852377607087796127533333206507757453995546507634914271455798724134940743538477268852114355343098197368130871578381352683494977182958497442003275247104333154972040088213392384240920045955286082173191487692468636740119464823670238052919267348519614002089535482309906605973810164207449992887839604990197481404882565230891359361327077650303886453219437252991533548763223776880932699795352694827162935437566963118092262509696859319191254325568000645885685262065118720833034236979438958940327557794679545063502407465592897842159261114278921544879621281471773756617166252898393219963538259076745532315266109922384914255957901182722592358370416337662309259572063905980530712029000568960430331370975472272747655916602483539391592465456091745604132254217874340741478260495044355112325474821193221034813795742542038558656995681903279777030058099124748651695366922596900407341965262704720112204127542354884424148366201901739459743997949754415788810006002532661920097631779490604135221749895035340523412926939439412519895974756711606177565604687153735999554267509693681029974971663136529322932654779828883260072433435091913474323792381175406260753521645102354583591210064481213560493034242062033458386302600566365271480573985685450990890330677770718473353896127909670124732761652271361218690804508802381014032662095274185334360152506808902450252967638468542927877545115474355302216080303597530743147940469185422179659668062479393497944922414791385648499863765473012105109575322582116799672971623315660692967657865470228864437153967401000762355173474977897344063372113454076885155738258036850436116524701347894194942746473022603610827703018934508560607358286974011157317100920990641149963751829153374830061152659382780367545871315209236300799313756469371558672110815728504715355383377650804770804904151374096963992166463537456986483949220879967302626790006752708468158169389796334258816012361615167710021830500735677490239450075548893651122595548374860404297496496595649186759656016368835866901136110295375038445425581567038145654686434491984855111093377112832690098489081108582477524670981555269043114528066729643834363565036414761988453286715605666881125804476687505277030933634615675660960505533819285769277716431223077212949322097806673670622632227779360046810012015463149921543884766223327298995268532189549080203593464092121577252325459498077018387599817968898937858325056574341346347600313870035050568849778493782408394076475575639800854289451586248576537683532992194966147816278302050125942834814487083668901803986798207893814031280787640908818273183680325066836215574055548518329925650219519725928353073406902370955110131624850834818420954589793649920720044219438634879235413603074429164682078348249119669860320027179923693881529055987344307963712011329354765582977065507327708121910086802336951055053399596745951459612360137852676062851189642060592025752643336158558032691360646838768453792233858998353178308399330264354939528870667588187904940030990713524468267975830400948295361837851834531871124264466008855402859258454757247687922802375493573989399890548578632189104586203791113790425233532268749704896835402728941708417799988838117525695208746951348818601870740454186884269412565527441229266220889142159895855830690008820066642806319753987999501167708137029088409532617024830804056330666616147290557908676493779707338662795647583028731669227151513965519882870667483840536450448845804491946475514143610737207912845155614580337569253449177371882780978102672970674914767648885997289383328607044760799632536658737399792629650313165582878280001820710261607854394653173055676598963100904723730884516456162383512213208449261049282360309193156339219717690672003268325725596586173035049001374896062504239977816563927731488814252439007084330802198374728563001501892168304399405128834579418149160266475533659278270648490117408266506966869089475519849658134774251792060251968501519771128330633631655351703932941919576665499341378404742469475417616260388474407483062893535810215135247625619881308220897718916181224866032282142508951434278069755182688105190085379780374601647717977195890384708139520835991387858449330086708084222646691170325338350290373481448076717848989303197396357742560873423415155600044521949577545695441458243897383066905670502269424439807610936179393692348838146654738275383552313846876085198701251281511629613486324969140365317163035714820029436573734198388286571064967884002611994996070905950310837075925095770070571728799929440435277865388684700553304000071720323755918627329596004397212343760219414536634785814498113141717586956831559584330099412347578404270999582073857569778597799542733601063985588728678975952685567840516113402068746345641716273762218274557945865536402361616467432030213691269397113514428548869092710658381084502943500858124394653808079759511226602958766914201573057391340486860901511082026331058288271609171828803286534592127244632614633937020421095247236133467392856625918855011263668859835310839963070791620278428690686153709359552943798831067067448478083793355730267823936549286042741726773105538787762716051066765955331483695668267525443212850798835517867695611636732776086626362725300744977561809387429824243931288527750611772869043377167182265903672506443946361820795330687542469070943982397822714610275085043097007256383638581633050432648458707916390912954082507178065376699651951343619571196837731971498366603068640833590639074919161093770554900499549500213571210958648241615423311508317735302248065548350455052076676000184216168924757026501515796772228064163649378085539672448511640445471485276521609145167092693338591922051048774062651935397234360488154002414750349345682699411659109609203037241675011461540146467151976497306588980727305761464986290172740836967938846775230522670521341103805867867196425211352088693843647459740013428818471326954591123437372654789126583101484931614113579802833035418455216083974747399294933601275117249348732977467488462839254045642308816092917946744796652614342762932558447603972012493384554080810329875290897623553478205846574708459948697622694447776000282597833749489927087741416966987280635611168171582372272263392276900435956672853112604834842742607782977128044051714176353259420541833986759401351125741781659615094431303977949850457192975172014990676682526024501718450751988472932605412314910310829684918705950528956586975548338408745072638269458991618147487383254154330877240045040558811379053738385209726411838360004028452354222963425313256503485950745750976271002076633269232165098099443680071112833371376544793682249608655490447588436541321260608199905540508542822253753075978088007070534886355834666358231693094499929087793750237579854334741508078407320430456431353670147725500299856902141153383398126142897116727328961186764129290864755436674920381890667476772081463342777954942424356656611553988203519696000114798771535734864418371126287338473699413206426725392219598981268856248371701656816685214576451739751316686903677953959201679155600171525984894666812943277134433286492847147379385680177202818461682964734083627991975011539351400978144317490905110541011496736379973458552208702517924996809524486314430272240211268868639606160380045588220677642130547853295553231283908806486675941290947785117052946873893079839220732180932679240491805875735661976980277743544594532086494554162513083109397117434975477686318110153508128744093599490423723186927480740520256485772142596183238023830201692089226440172823678678952320807385295817660264712411712875936683981761762126028621117438958242075253637948276123828175757637531899662035876342324086681037177196774931408221115878326971326432761273489905261898901109980223476688963524798743412022346183433429507674069656363423491700409645287495109776116846576701431348234638939585998571496069350272324242168475318876187307198031717973661810005330149387483164896581561370313584843811610179701371870438285444186362622341515027941943540581459793840197730603011149497407046137860007313707497214133918705131983545768726613460350986231980722484871845591937765034579591142091062691616328279391142551298089791137556752783757214740665315655544604270621080650408118386921062739270251051876347362325836805722497039200987290889557277721632444010390705584589075346844107001062656942262136360838968570509689939234900974628296326723487836035056601082651119879173135632011089730943108032474943527317036457158294914632040256349076845719200209093612949782982368133096171222473709796998056204711386766558374183282150879843866305619424227238584107430384713749261942563277679327318440721952346553247788123252571742435272888522094885445470363127163064257212096214876473239461653189445644166024102369405890985336846540737261678216912530465025971409568646706339205990882196219835609457111720652161074745128025103529933782079551328619961437761099821217046093017703440320907254083866016972223490778807102494096729896012857991565242541417581689137727422729954691147143806014394606694298925005545916826201342446312626870717747293243903749129975432902966250805814016975779429629201119047523080537998414187264728239536570949237565796911462080722355463389946666261706268829014037214131850632830831201189708456003252437687329223394028552215457475826479461154546756178186070288946918029694691041575280877992411322308711039918772632771308590967007238163548542593626931857717192951538070279866165568902669385013898026260863103025135580267790913886090846663193583390958676376440302242721088477377308453777172332784801625969159979042765303962278418698741093792493235230525046089828006062827469977288139869528284249422962555234210688120791463197191028448612795330368820126794453443226896350601077217295173178098760775759192438768090608392596406426783114104027247240318100912841561668345835567005429054116369856732091295658719977198497135285996066362993253641991486274929037101763387431258342988818602147544587373218051861705682585640394928043364537279569028347522194358284573106743631000523999612929448598857810889332201896053014035005721312756120155405712531111105779369431311965873266432524073173375410828560815634083000964593480970026918685518439146817931463902421389074129745337670166822332522499777087099802964859141744677898704114508880824536236193228266426289697615645242332582925594938680703064383463403150858711361598762118234660649356084635649462748467597486408270199782604577317681973626920467734013521902857397193104174609449580824208568912602532193307528422362280342322456309905217180753880391882677738239162468907096242597425322436709442446824743964649730879203334388217923222240866289093142042290021234084253774152555084681387651495396015503953156551176768574423473325929558851102951331845735934660325727864852947689096899922199396808887372946961477396754724666571700685842784694132932438982467271007576851229296075744652699789091538291389486442154280207257032118373478570026046331907719223525185233549680362095375135769094020919218354450146863520178444869707791689588629948122082958116962574974048685781432823333258924681256219945065959878412030634519875206994504063166261121279081608858611015580549377033462564054568540578999405955070736434919529101275253719260766039657292118400040109447228681545848085930930803485661945299354434810487863974061759431203279132708570628591894028339474487365495497709909343183955591546921751990222880014655972707420451005318480262363513549719919856701804887223575056198251036518324191607785680147228509310639919697744413715101317572241187892126579239333694094104765120015767996743061701723295434127178408062261151497460317947228735704838044255289396858111727048586896984241946309946345062283811082404050320134270991588919158928360591419762992248193203487348098770304152965733025588375756863940055083690206045651496459337231308064585056803354428873923284831019670664487740389392449669300565253979823994254842923372425225467937640883356824578718464310407503822978938108578722453040665440054381156013987043176642864960983931154459648202604339526992603491613045736316545251593726374321638921191655329331673012545512207360241548934698018062654885964038394148229874309427735978975295833665449075122397794633007384988304212710814319708404603922285910639758056720321521991650567504408661440508138299930499076730357676810465480656889089531827406305350836658397054868169166587055788176559492977699179229839549258485728053411299318335113871868025593704127036672882384733989696027108405928073697900571859089451170881998990649379771101782445782723665100213657118418410047546887152393504916492178767275686752578560782557915869353160937034274089244564265564200905075746579821862488142277729192619102434218825321131621140785698381436061718184000192682540106857105313772139660818340312301953414176712073676971478053286208365959288521382518719112209366158113207804341569252228614828863657378733814466864454266757048867749080376658301232644993315863655483911601245467790396251438599189202209730049782051674656898984945946641852168528611680594991427591872782884631362293653112117949800398254431962151090178258793608551863529436578591776681357969496954203349786419707224012464342292974366311232614414634151928680495626775072883356596516540646888612843414435913811658309300245177638270836582343240900975972310813594314949782475113724663002383757382515501575109747773647122728355303255371953378755283133874259297263781116524080747809371445192019187295679674004352597662909113802568314950886957884275862865801932016202615012913321395856961899697054782373510638889309254947683649190863727574508020339095380726038735298756671953466431870950818566532502846936684874890969224508402161431660966549646740881234432266822870520107070082148961994618488553621441812753502116482296251314011331412282178139040084580979809598146002935678926448310316309392268961459151804308239269721380821936766574452963230222633212782006164764683665127915187629387049329366724259647130790354444646511755733372683844810556284926387482984767435446737883478756141406385367296039917434245276912238058771290063943452615205345112810667445635337940759765939272829099735986593278778801964366401904005739144443366310560669217991741631949060740141073155065245306189409936270256118768431256426699664696022718524627018931302436848918013317342642377100315411214118573480717706619782347756015780495694946869361448539965818645929540586142597831338293861041383019339168490448670550992557105673606550942990409002889418448326875837428196211459351985171390630688803805367495094651551560077993330711793527494893074022553877625959399596226392393842731390353921083660517248353290429948130884829237933418235070370714484282925129890832182668783686543136924615616874444678756255803669209815835805904831538156414983255786288842950819271809542895949839234130506585682559330373618346048972541660454050960055146736062454811254349852798441712416335499922417569334437597102324748053952466571328362111802774022154992248959201160103323756353992128954569771846372272206326460196128347181369053320332390012398353887931794714570539847694336389135550766998225275556096525099746452372472502934006102708969583184455604762998775015398340573235080020925732457781283460390001520269136285575013583218762498341930562493613004621160165473426582234754794016307301155710050851608385776263264045135920115727350734128398006239903993094367339658035096811929553405911018331299590399079931276676259460424097897404816015304625803861017056641388845548544491640252050083985408148506476157291045305741335888332036429919653669005223354212225841492993195407258779745442351549719935553288167409950342530215161342416994715729655898000509645410648636989399526806572649299917683961826103533283923090437383777394608170903365835384043829172519063230329110615160596926380492917717489258085364689544982249974268059503066682410551064829916150556038503146125225394316716308444511610145567185393491959976814096592597016224779987232076216404438552236851721734100493783037408267456249923038577262978418456234060880253673183058146955840445727789839339254271521112692377707068236091359133422485977628610063784416767200264949100920677032744891976262009082749320812580189302564262394169317086283873437376794513243557182884551985279965567709751295783308626871033738083331257523487097128615211986147724207904813578868285813932999563175533311763910981690017094589510305102741137526371972626811102755390918178012007841877272559397254665335020881865055443633965527825098711491158021816398174355795767977401383229954974470928795238151882307745195726464859024986002779622008181334522515765231583491231838621268534826015769989735932436642860964985522660601230825202791082746950974129039490681501394204293743395404983202231786625622998165713621191697604896459464172059116954007171508641092400085505660895756499627217538020849178526495761259201250701728325039873478554138623117434792275974162978814222859314447126836392200228235866500852917750487324532932393718700897601646832902525498205439698060899565743798586327793856386547958259185032770540326269764293962582807328722446373243637795563475232804032843431682118317050205357209843094502152537578055584900469094882788090778607791322473426384446648751870691662983458181191211982712752316676372169536530390129985389298498522952369591378808351847822469923093842382872511338768994644817867940436058764335143174122755344235219084030666818618171082060991994869749270968855818746952800859496392479962779491077365615227174949855457070763705236475530713420948152994639459998402930843667697635058436404837073043193694913685243973082651528597179052196784450659130795479951625071983738756448151468713590337378519137565619264775913731111844383116141708336494773202034667021712484027035512109374573945823587738759168736361917351392283666569962731255831429724525648335542263490029371163844576439125123936577204810853384995372886468972503250539520290796828572249526094726902514352332523495125322677516644183204438168051332102311386116311475123700642267805131299009871608283259605744914338768154888500577533734403779779706228689366014148296494639290179392675266460095936027746647986050765650086406421721029302625854012144713914027754883114639677087381084018998621286498582501083786789750939664172045785819458225909717126390322997492126681484467011658447551012398100623083288835157839495008979328390306460700828481651930930779488846995706373766499888809207571833300355019636810468894926981374016783344050176900248925523854315194108562078009155124544754393910890202126852980662912370252668531357613650725957926193662604575110179389790745967511556597490316548260744765888974684087284520273308980364862089579325424352219868988320861150034305258685511905469943288693595055535424635963453454218756596779426946196985818711914100814947159210347519125985805271818181795850850989302650968275957351692335872487536907865285511435825246171143048621611063698083537484390239257169482169483331055254438086576053659273973054888399697195889018450863330327015725132665226859685082187799950361508948743072859286413586111548828783619039750440748539304980439674194325996228256389113153090529228984839855983963665285943238402054109864466873218221577624020766815825674833696477718441870058713402895328436044933153219269368420147567233107271283424214290360296145599359253858249345416845944303367971632153443033571573371440259477864085425142471480289488298362487346210121388990075710439419780440515998326783984305214003712407233077601529775767956995408373846236274724895605387353150128785700156744224529097651202229440935594760836064109187770586530183116642340611409729708037568938307522942635636829133429377158268909748280566509101342164250941718574516034189305556118435772048651728811898727476042834469589581718338067912415407532184274261732572846644707120353408341482309281699261617139734972710449914584455670968120661150089068949595521930733006475255725955677939985020319704654335422187306648279768879899502785852597464226890742420181969885441650149088598357325172143851623564445384030079674430287807678267489469905746731579204808488507200254636173795577775005990384194807073192915015316542515442587296693816023524847756300255910284060642481980644446952813773532893245252207657234543348692348636402296629177617672027697737134515051562368595112638122332337264370521058410567677112845396546615095149248393274358007373513913746627751968019477213003252289726846577043072715153099240937822450711724569493706758195324791360978455891478315672627899758831478235302929922601066365126369938759974233000566264829095791220974653513445305476384687677664082573701865904884510587171540864090252221596729330605838964070164994047349608896942589274412733107059616334314431026566075589551221749574754471155515563569609612481764185837027297383524356855966547671010767500864370329716351344638296077024911337887012277702170965921605839257733439165301649036630297443457489634947159064179921028030077900465680270945233641150700854218696323132071019888218847696831682383850690883911117418753778472331452266986879514927193569605955506212642005068366362911524852645909839627636502941708547055302221680625506706949254095094604485591834427949101344579848123412649083707018680117695187915043630077614475553268968771327461567417095689714557201487475277159645712511236604549699575334215390039728495432527461130507041746916497614332985109587946702510366089490022562069081219419679345930740312542657350457608204588863832282494221145349096929122913245078153211352403406680525462635913668143739603492694655932177641657186046880442815346366391669771571293143296857923355670540980957025156383306695734756053984605903865928458797834799113693390905747935263112181060877944728317091936555749298842868926924591251973802977755833049878327476824165673200256245853766384606049885528462012271116561119156127946799140913895346510274369939011784572683030803780280990526240747616278103905199384903218449405092238959120076557523388185542399964055486842112753335714159836997849573982811521232531884208239094540754896698786702129852898323795421054829354830379354413158766864241540103967060023728708250813856181274725270476013089581261645026209407360617294418987620283491982074926119771135880413269079255121123341465077039690223715784751422933237080277528601707567003806653798026360029281414571856786846409657934480654390894275206297308320414383751416463010977256943329206089858533302307023015368021022453663618350590576174655021074992717470402939288655921679975222626702309459757459459574684936897035236481506114379219986671795178247424922735228332807227181248483811691744848309477352952895820647259082653873535536372327285166749322365508837585224303956063208854859328383016877567403710473110756137488263330075304528774593061835079338395265552520109107947886344729005892998293761000270146526288872048359634735262114355586680796235338024875394182183490428144633798506320613345928345440070836698181968563226791001508140242059937373585431896618707064905001029879857032355575394393882861868829015199031562006417978803334150288062936025863882696204180038086942751548536065650618095262476827571088479469583230039953801580087475189075862193232684354340716495180760459250129847395151807190596776306281919937970076582052295038947166555223349265091900265975075361205652926242551595238292080217386173920299883943120836969945341275038163736473080268078154096980298787144185928188927749708733917086095785232981311048047974961671803585141716196066075931627485064655899127103815875144896679694263831415838795219754118180629309675722014591041952979295460703075315743078651328328654480669542531097043087839248210896090197243362986205010995106415148357161778115553134355802541286603635176237712612890277574915441827219851095720257179057689707326354800332616053999966221760759900727563407793556735395773527440844415535967551845207758539131730044262275027644271997213307460305352204854657705241196607824551696840834902368491019033116436012840331300914165339006113395972613700452834745859562433218842591894821365170168521591055904744602208976043588375481809056171314252226172013291702510458330067473848192310566563252816864584988681132525214976043578020425305511609691876128636616958162394418364168148978425848064008454783200766081575681064275969345585535418544368337707138423255953433847812477797861062760192878238236986808118425846552888827985406869669311477264964311738763625082980893397479862665112538402531041017559481620908860145928207554926667605538206128372439912620450832017121162602072657758957256190305626976961664559769361611747391197560509300290122016475657835103413252131976614679626762436651545580711478611921643051325895579878655169819645646541127749700392286377417987207064273377354282630000436458159888206142392480839920552296086503892337585680343848008333330011976023210074405880317222479302047326067357835723882320298854380491863015329333088764454765444433265095162931569087105570771031184472626543375810226742884988787130668854555452432251527444642564592302302827631101783290270239727230168409422438504081807861235389067823125521408052449119987385271091752605591445868642823618813842163938641776823784016557470157112712098487340210424268278805787710302756188427014468377092867465164598686449735164169564321460530383560061237187496117574268699170873803240252818797085365608318940211442401353932862375938437066804447030924245675758441795359486954868002080827565267062316207778150994420241620584075680799027867097051708388548212187415711276681910910917933565357629068716519582229726350905236402280289898606435536808177531213975652543550107602967332819542083915566822627639705588256755922178781308278141499255025677184006049721533678091678531711717193728848512953916213044789740230806690070933738872691402592995504166426322995259181030363722933350511246960510550595851483880504261673350180503489143713116752526767717961781797186624247156113251558037056870078664373021299892951531881886210313597525442005491084670287663437463437223089424108304755005644352122994076450773645899115833616826136537462964777514314233678098976601573612355549343330783539411194050627634521464490607989448017488326495677381399438578308362008786362067652377970201719248554629114614410307338107693345018421944260526447863519406791237370055592491393971579946044769310053435844148576255078285370850249100128141083969190329488839541782688632411138470572769182063343837400707238655674864391255628942257298840293618640485706744531204354687115056719456781147026776501055580399202289947998227055330292469424284630227116657558897244459761910123081546243827134028871113779134133838509439305426528833707773041318371460803055387399053971562015543826379503038273329654189867367869648066089440661704787246074556121915282387408474351032747380809575467047517174310421035246729675108386876593492836738492246077774881836699627815246619591252420769238460188251047083922857713956068799784739563042503309522192513435717519906694416185756956789388082380673966106470515615948936769871097939882923376550180190465389198051819992431049530272295947506139215442507965635477661823225797145855690172784393207316932880990140016870767520170837890678271279418552291195210622805015486631940248035088864845625026580708323608374017146006273225365753161902883422937379478494346508575221127289254925828810415929129868156681148785321780169878108433284514545938140890073838307667281340640673028467859651802587802067565908969277274361265780143620047630328393674755789171396880516584549576070855039010490408294481118286002624017755168259643574137508022138274053926561702898185753414650666696622431300200666922181132092449408914101123784071278509070219434003490124142960006248709798459051267182443902321897747696272931245010176371034782853268520303512794228221065089683798798541886271727904263549915870572497836667562801609029150716420205238243765319056907241587143883877669139048707151266583253955520072247214418809614601848028427015013789869887106035656813810078837067813055124069069766033556465243945235899436648159736514943921067080382811095117070888815126700483627960010908471942908412632869787625433084696921296253209334819841914180896877436394066771158916041977584999030539601136509834925809076933176977360460563880239355514702770041575998378638833485413628783821604849154150715119105818664578331329061074032401178210482862469348415581183688379300859902339954645579814733028443231453638188834327542078601151377922398066295006564732034935710040377577318568443437053450465558316297584064376659621675427677289311727396864574385847205633717482418721352837593851590483515234354727183226097428471900644889494928432153329820268430829916809007149835095621185062349206623165994116883376777408751476802629710193650626420794032486172014327067766612814764020795726536739128938192630853229603796166080475371164457699824924444337517895745098450480682545520304017540669630448536648583208278087852532646231647196251790869096366576634038663054825229784709374304949089039243943922913306023625171229048099157307913695933051876669050882165957417443109990900097039955459493461501323619014917069316810246105313151491864204350751358120771434886257283732077321879246597399377641365152246117805838298329250580600716703795052571431520839769069699858674775099089864013610241581956822342549284967788807371972601600750632939234767430497056460962799128666972737350150948753186682457371192429240781442535322272620901286770817248399889526362396731880048243821974068972393241991807688979038299706972790218086840881632762629180623477890025456129207012711735230217272909453399809940555023152711749835798241878401107210548412286608995529663996973343225443130770025812100084920938125779918511685787489298159048877008469233591217667293457010518265661374288346672727495466378327212655479400303684263781844099797930726323161210347228882442718656329684144326534472950278232641909285287210138192188547051388063066660567171535754317883050875712708021320352745446175605773829261844499601763515669629356501447404475147674053003245338138275218844513922542328438156289197059684221573687609437446368496934042564277627416909277926321369855058904712520220833487162048201851488854898207185990970291376237765757071881540395018049127172959281802877913678088114830301397630089744811794914237412771338266291650572636917379842279624652391378181774735406026954205796920355757511521748000075617116840063129240709985095525820902236044165630429092029315304514460701475825526923896429146198682247242470984881212009586518189462848699223252406393039163354209088489754379735104609450785220135712947358729039858610886803503645951152537978150904836872323688483238323277787030077408290521482564731617688262851628699327000422864739872818221427086726554048948373535431656785035501921956490465578587357427533193040188800684708140573087645678385340598002657303174131551250936137803462758177783090298962683610528747620928728935514904785072304110005814193883420928067157479284315633945788065440148869407708491915481924370282215450733175031350408085341032705649497494505080323876022386344991980405278541723494658186069726922081326204618464658494840798896658720439815760899590300310666255885474037148660801642864163443242984001769325448093296902841406057274405337065454836303144372571534870009179449116417401560259650590144156340172164717112417994984872870940399295540434289304075012954415541034726892158733639208525699917320072735227987214242351576942521587151952121731915783838949004754884048159633154205997805895291907337044092543146729266356112504709596278569674248686075373313622317557008808413473556524999009384679724025597191390273260137731794734409132368285795330267664333084550708386704739453640959312487902675834555541992018838257557317024762245150548755871986556452216869291707341812739968692506997790983881671786228558597303609707268534763544010454879561631900722578619759588321451915794932570436924888927341390665745646357726872568046231485426373777287722263442230863254303015934316269169021747514611753519103850085833672277832941492318202565036215365966380930522276788052577038260674987232342599051739567837295690331779135865548852897563406833994575422970252869516185733210607162646975692713232794755759000060664747653623888206629134892046072629214547122039967497817231363756999680785443096888374840720450327868107426571992031023634475346151406187588748579378743428423511259515842782429155777032722198518417590510572054795882634192245349304676496189287728497309287517011567640741519280740260121435819727765211937543516194848344359641659992384428963835615659230632031225274729757894760273561562500357352047237236937325150525946869823221132930019975214905317688747597650081509871443322357150655524191374849233811520665938829355706482941306038854957401713783062367418146625434275827943747100571719926880462580946963179823157878788198499896193705482190543688277621014591786572686041043140462313622910488367167190231008035008048122297186061273489593810218906451339088815041956002342134971912114003622779972278220813430474828400719454824151776390277522036528798950278308950276827655996352756133755241311580236598308388040136456176481941731129004471427025497640961223451480527940375913453418546182096975200198904477400884106947036078962861422352826401244676295714415873361867086591569703750068211155786548908524166244013934321923287810967043846857913172735579308757394236254529090694909419539174186365848105160135343218311213847445161510953347989560154093041817016422594332518361028244489333148463216150827998677242335195790493414512347318057268805464135940167117551992813377799114597469755439094140486607309304430218504518851132060633852492368622489581644748660289923231949228525886352031117734969773192969669624872698118937678263055898973582147363261613434081613148057835655447779077080360716747611724093089558018875646794485405887910963100338729100741394104312276903143389180548588796244747667756504661906511588712132228530791302165287016825652765623314067137104332498609347305815034036437504326641112598702149532734702148014612012543600410227475388272553182947705976960479938863029888008798953040167650835981472734632421342050357843312427292661496611947227689040696886332654762921232826559009955208252041939676901582476358505464046546408305651556059977814444157114724664442595549432276962081737915820832433816467538712206843859003812257749773254409329548565875333207448373688807038439276902571795405986765517161669686850933566517580422557040274383590748292238161855098878996879982130048185646397315689862795046069919077602906876238056914116776244281735878924668582372388895939813991657143610232266578939390956744523733351856052270872521180743092194022975344052254776369458675379633309458045270538039320768860843044967236294211484729137294763060779793378264449192869452635953040908805473465744228671343083299775576711513806512542607909427306361469945632952487499253977573982486296282324748467748996128045132927410410809273852888301311407859536371524549096512362079723429895600282960710279606702084632386795463620533363613630887642788853126043834976295165015252489578469683836618813803249890628127654592734401596032315181941506335943186807369751891913103387600593937517724653199826212314645481294013902831416101496471498655431784144901671399630791830824048130962694736651324753010503287297678449289381174707104053440691321749774600225217873281030190263468638495374967517586442695017476966303710654880497448942968167588756414842175949058205240073370674938783382650151294386223076638547319926251033265637753087582886251542333961374974763744599438766946231932258735163427481579932212429369248011046695090315320940711490083089537396863771899004933334175837240240357146468528208589311755959375412619125851401839547206960804368965849121266357766946975982125932440960190507795112125019457050129683475774030097204982277083543994756573267760520253339828866400477983034855999302539861670172379201572763988393722126050176242423259732450303872704394165916265458287489149089470610879253184796533529717156474794153968886448477109290535209735605060474596430567253818556663304098855771663141633616999294140964232184182196614506455969422936744006656289916827922928418478544063685473505527853604457856939031201547548737298566210596389235793148320905131818511597334097507691587576629457085009267432816613843147273705990699632111903456431350258269793756799904487675369355024611763641578304054596172098701001403117267341898716380087727076174179613358247438732636340653902704358083654268583646299342652168951728331347412772708021890377816449183081723340937343649963999237980398568628270992619980425934127306625228051622023769741031824713219744611672664776738815722195244798247737042826595308174886498138811435914541213575397139966527813839856614640649374148823490404421194077837886678586588476982340593333763689069861416670303747102525708665151812318432685484196060656571286738292207693157275272227214896890467475920514129627541050149929383506296990129321255097613482820831140620398118119745893354522922746648122784448774664236528321633330718732149337872609990030521867216369577632635593035106060186420394597251043082846187744326395118223914234449685858757834998550918351040885129958506955046356133021639283037314938191172625834846297199965745380829649628422249914275132008214712419520688900559273552201488150985275010739666035214893016489604983122534188663832588035487773269779754040644108016266963103367382331768873251326850272020393179778389376125658835841761894272161365730011032251927654642888901696858372778404575767962949931095950699938438577494570414055770532636848757052896818998193805668255051325290632931997367796239738522395492019046893900936169829460781521105493704581051587730018397892452974806396683393976681764052985770532980801755485329408860023458424801585092149594938854014981176814129854478962740806191465199060996894418967058063602778109076490537945341637167870388236506186406563552653890827407571466989832817777554877349402839917967283927208197878084478595551872171467291574576708483311700180041219496836770594775237274358221626514214132250289690124620702888491314294991339617707196471851641561064260263874891233142038471566233666214096732607666466229553785316695715322203355112420658627405774350283670589706416113686654382910101805043599391853273905944041543208284112057865925537901817467422951380102482990698244542924277880990913095810188380812935788250866250482938470821837068742127827273028859153205836719911774786473008064919230229601772236199983784255003222064729842532661009829015928281011908100774828581283353033495223070443646303583813798209536358139964698261639647384369748287825125922290152724708693497057308059955471241978363491375179666870011415157545884413627705253711554507244034721577412303684528736183342413014587027428544376364619058803377440639019751609938937012527939067760112967370177186613441611409624788901438881899777352015119993400476909632116038310673639455829169511507761705741705457839177048003550940036990267342515635435153066785263117026424591421334222874366341732372950127814546372109917737108991355636508815753382369261149286404546012692630697129806753108628107445615968382716358263355509114839034554520046361553355984866839722925150219703185921948954395240606054630715227570224170444808185463028315136003042196919250366397754889382377273492724650879622014691349481598565805383307944142814243354232537110279595579298783077299245697982676884949921082178065809466516225508990877728581693183718729147359989579420012126109155385077544030733582477596238942833310900132030901761705013488022898477872102324228708292669119374410216768022389585296817788196183912675717384555819678990917941851493571595420646655132608575465366572997660676315453449065991014085319133673107965690714994960664495732226605110139865257375584108736545660801339660310116010867001958153548275350833458151642643097899119278363139110242137764164167132258795117502512431386355545709906502697904077099908149954858685581328171910984857652848631695429069452697705094749232528075423093327437730270508954401046199956271592072318526832111075362199602544628594251253867248582459169343954389040363522090596588251510398300284985294608157049287421086258542087552287879804033890809739764564732510869072737457993403990861770567026680233716444059552330372386073515429384186132630135206534470455933169819705232286185707753631758492868473670402497676812093928407359259336706788503313885377501837617686943911512146975216884931950089400211745133084531266880811605538677608294312654875550865406132443488374573721192212284721867716584862904696469628331002863597527940009392130221489594912866982720283714083415807752704995194925642754444858162934197186271087101723053098488941945634089707446932995335614112792299132464215178563510729062772701107094439498760202572335395409700885497383100826309697843984327789657239553100870843154655890082059609685691605410396933464701287015789421964517288933971246412123300102904487661731133601661853012505716013894437190311320524723974828713164801880146365357601040294498565260446181897580710664549761109176542848875832728364380308925833472462498759901551553898646992739768270006490020405086026902312675362513903301776412006876666401240929587611269443133159048896779657864995654493662364437503857372810015590459864044658843128329269438930471812853586428381943399882535277173208685083422439092206226555424227770204812036609028544953224616352510975052164078789252047126657410618738070492170921907280350657754470722816172207945608761955327328704026309883834367180387680403334640199742574350717535015689253212508814474661914191428904108074568945861000031933531413853504090213592932129492122371190744124432149671467708010720427496574931131737866345192516250188005756212553837311500041866209923709415576004108426839654383493360719380940533272376848876387980610759338494223557246992980171143245979827659333688303299026755310649778005521373041784294149787270325887139297697403290593705264959453762580784634179825738530360888590710594752251362202702947462997271654778618072107494790221464754729535364156176199121008526889078770468606909573617925194389719914880026208554253767168344020258084885297343300706407960202302218388419480529128438527629076717199532625462799834587821069802546331872745100490430266239539188591998207000409776045162878464654379026892680339563254492648487122468757664863092272920190572010135342585044583573418533163650440398167109381424937885590192320690161886502087497396539926699325550343003520092438399016884949489923936764476397648853036043982420006034860783728616874490717207282468163696035667116079900077442113195064720390722710557230639198533986022965068984653809440343439106342803326131068215589493166259802295515846602975468685668401263065396367844221488374599857163994644630281264078473646662623271578892307587348953253311839770453278877071668103443429427221874545402186665453009942129821541166457950526062693498506609066155665964996904243168422944942847985264120019970987761443250344360767386293552528613548581093499103435942869218792628242625890147917676302430283041418811980717861473993453970145684618441526582795245345731970606774095338096860119351513423923692805564503845697236364965563084386666629828820775758236043937196261911184100346446523645160168967802050113055228032510799573776562613371944831577584282435368217600929576964950735789850085440517153674546930677565552049862543951259313951033177582026089637419437507500745589035916718510495851168283993109479291991858981123109462408351196412853935593689924851889880945773109401751095686207239113162261577962765701223595345980050540089948171575299947682493491584502106043960287303518139166928721216511111346331381036377842575859107738313976129188011540353321129712988306728054352468982816766153606661770985518796240983075667735302240351779463041586261801463085150999392857048789401499337247728942975598090580536309983599533236263592162397149472974670202348088236108223677596412074614108858274718702516719928928697268855114480686188629913881742893443950568952236271514972585459760937408770797556978487355586032745057449962934744870415042273378957258480012583163386384332697103406983305650835065475585085367719091598608186116531205189890473977779850116382989248746662699946544237051593601215710794105284277942454334960680910356771975732777770112109617259378803652208641662928007998281683390245908665315216317026620398724343714336341918172007216884680827762744109513228363667771652689326437833254314561505060180841569573696326013021572514350294699783256085243664127749095847729699781756454118304672662372786358255861155245608412786196057835636558089527664149171377912114123369172109611746017383631915558482643769455732249341339928116535784295397885301496490033828025429611411302688088340511030207731696185240778613663484553368579508273435491882023440444465784494168848613665674325876174013912111369384565062383610483281628512738802473757175375983033630639577062793575120189468357284298448326409945948838568164304182881972676659151674335163394530793765856663889169765474644820642122902327607510817532381669658030879228844545849232879500664143538540073204999593006878042972732009458928609438007256815818707657429645459000060322208848332418534413938578205838483604562591375023252265572784652285483038018956864316342407529241584099856212069534670232528823982663696962189055635420831328088991099012081629818802144148811505018303865850677886404922635711607364526032605832012534725056637244567117988711824061889384983802064450156927871103094290836738722018713098705538832828341178087557695740224381245609585544242520594972469305522859776090261015179134729273088407411807510044527043779305236232499127215216234159603204083446916910976529311514457060914500415431687179486577131961917835451097986281489847606611573336803267617809344134629365944544396609361290461499956384383874910823612587668253110466289179489799566334891798720485884167723997971243246453538087318910819348413131108935469120833793266029156136810358604009369898858021685988362985268039678483307758261652506439472441774033194068561693466472558526491977084651194002684184722710962564892959198413655606462025240608704955199474339482135570791923232997506039645157425999077099312899600888406022967704448317073177222805916980972831831203584469697110492007024931984336144358045379565318339370339043526153751997264938710334843948872430661165325972289732434731555820095044254626550111231989004145442451309792698020471341681436540281476995568945088568823933194928208075113754261066036354221950528516929420950503815720408081465159466435107882741715859170322613786322418149484744445379744679716338321878894302974013873305842942983418123986056547837376524518366973779078404816699054082475698740282510619273388247953279410011326197047054723567374650781182939468884661243873313185361512958239728320764445830733372153949997216802392425433232145094687172610704224053433874012394076324848431477053521391390866557324762955273678567880065538538198058718470763132751088878249461557172063323327416071423316099054866096786523124605817424938084269629799465620886914781492059896952696631249941185040758410164192386511807295056989735093200249930055213305505662232388591549086116792190922648829361359203067993007457798776736145821960310880501598300031000661994279962517422095863281280952589981342007079406344290369133534667581482234897748851824749689849046613286532878568062931842225221139280601977673341406939856730908805513515735841696830070114622118465259927406786589098831938165289000894619143995807993609182725355783401323785928030556788269233119806995288020395392221712482115234319640071506791828756793213734897709535123816311987668644290006280106961933063983255876990659905771556303999084258895462967634337989795340520115297665276021962903801136668776912449644601715568667360949458087491011663329470881506597613643921233687376795322658736188626283277118553353955986354310760734061015202252407281193632037479353437769406637492571312210650432830169180122215377580278935719945830091790974653238028077300077895343417866385114914502590430925590303693911141409718905179701906718478566863078596341693081015196735938870264694933809632144465614983066441618925395138400802794150986318572843520722512783570586794272238976837307663151866065497645637754984388253932392669785451094879994489817913734813567839247887960854335975391292606076036814593010208293560982218955330504011842900599476327246406326437920575289901570537653559810499615508168773637505951584401920544715416304327578908787902197105360336549561800471952789326819003796852705417759791012280503579677874723103342532106399608220856690721943362440492373844447994297144503896026770629304251270012364350154150145890299083388632289290229393034776663023014589274306129041839761016764444495959672663911567432407357321776900180103140452781985837257313164428793215403782672631734696801392571021529000339583242050947080610803478505277624842719627993277714516386452020177774000932551982695043137199450718169570785086078692935490843122498308796584547936870681726691030989302754596434687555103735717957079626337887138485408400497209692158883648112497082417220838321105758857682461151289038179763544561219777886297552651631790289005836303103966603521078875419375526278215493648102668202091706830888288879701655628761418631936108391630598497234935630954889936555075692315326960709580885034283889026896565382974957386359320475253275009553154021898391876033343812958103451326995956945931869898464226481582570044953697508335903278350080619311987313654746262675315998138589625236227927660810116948950427848421154146867353526638927566512622259363378690528857973116940395878237847492777736756570867700634462163442427665521832201331957102685339859485933790330718877677065292764546946422674410100002819235930301592447112068960187467927983662369938320396516024697468827307330800359695259485696415885582491898839686134949006239627357655848572562469894153623160600392385718905535011639539314179384411699700300759089442209739805381890427400080473233532902160694809601635770095391201950024020603465225937398432929618568729977319791618885622398358628481018930259711531467918746025930098227652394962946517390794523972149225211461370207213434860292113584163622670069013442122344871720708456992505679784291045624375993724536932034787797947758105879543825478414838247782595237086421647447482019422290563064156121382534080904327967974512986576399764395261381168132741609355168618858911535723702835740397330877098349690540049428231909004796938430105561795585107590565896453264655479080077613515852914213272192578484476350310088332231250536304301203903921932227467458448567682019308088461886727533331534224139303662049807761001678321195019209011495514925960482501970497766959368438368082630822769228177711414331200697331498822641853284119245264734224248301816520425931909774618478725105122354627123463801965600756030775435122545251093084003108094873479952910161014756202632649626376483342011506993309053686199737760103151320147408305665377668813655871788727311240612144842558519594026008912097625815370514052990610292778202406579926398985738355864783614671489777693180624013680035437472243862156261381524332939434551739861745281190952388826316636908749971486314363923825473735397251615525675332968220193326831991614096334742629016331421827995831386039359909926252650876691285843570959029291762229459429774721081412519793378994437407273015379460405404999730200893022581256695474226034424787174772159790275531119385150776419341448917142143535879080070134399653803494781238691145833670710131332068391412838919435710992080567302060492693937101855880397281940648682374743371711542010993972234786978505803933948534223036575540749402616794676213165265267394914138502194847501953023981154808949461616675488482736384317589435816592424316495652511921343645352715431782998401201072856247128003348578957600639258759096828461504215071972529193895762648633993571764710066933908067774273480058414952077173752793363613711852924448238838202474162668535106508774934360561008644408286998809883167835145532463905906523189036020620105885804185168731010083236179664214642935471117943000453524676730437597686666535719301810164965601727942362545041530511921546008133976521938849180527007597376515496262603959869900198231208056197001095584122715155378306888755228610700177170364783065108505926978861510603264695416177284738200017698464090771015380578280802174468817304750898362252032025511149365529803988374540701970169901419511451252948684893908794295191584575138706724701635416747344213713707479934998496340530141686479244239753592742775017334700093240229317830140378512135976929303827761747111885486923478386929869001992096035153137192421293071219700905082338095392605301644938564627737902875237141967165625116747256926180085448182601189681139434385509652263807361329748042665175928328029845071869756584316416091208567880019065206130172947890526946820566894429265660032755762023284785571226482417845076819944461488354685611886667617258299444164411365183566415570950643751610520827591834302643067001501354418059487621431988741442522708959411945969711739478533346298986236999256968373209935533180418318683359099634321046848970327714476337515822995787196740629585376353888295087778821617519178822546355917427800170304930265967925431856078372511939558268096318107175672814825209423108599526527130940185278486150406445616702022212410531744578466815236672481205466336898333814219088763962741806710429951253153526170452883560920887499897845755954763439465653669618397783603544571102228174295047574925985623264535200333632211406509461298876766143633161478690418602524989457548186385967185778489966046317572892285235016084194924203803171420169273491134298135510951868318289507138370016133961744627650784656851456159895001265494836157506448434336690173129021171169801154840775960113833405143526136978439261908331529149251258158279136009419625149906900657962229267921547049740570078834918590382259578919987536894930059591962513240241988285176322277252990061702274734059742507424915397769506846372128510461425375457836007952144228006064392626843457633050387217833182997965345876902988432516348039172731829233854884406006983355838000444640537955688245329294909817939364612612866592546870104700358961444674436955785006705891777321847249982167411580312455475826464118291855532581696731717787716825732537640925145034036870005715028569841224298495647903163589412667019228893131751758324392035557436429041828174335498240765509362658793477212362259066072365872167241505066589202280034654202713132038332302005347636482199563162656355162361857791645193072650069446341026948640385014143332602632371236410555435084316307940568261372645186696506324127408275558617015652892346196055113161619270834596729877361861116512908380116577949786733160830222317446469080972175593372609175405837533786183353572931960483988943273438993913939843623769339049086421099629659121926693771852642350321863148193475884352712639217644174664435170982271289517208224991887285314571895261995158563882463701078451337621972840803948304325197179176738632826548963274495008561984110878889148126553710853239748858247282752937700139082439661677510539528305556560973664359600684659572302600706715949571465384411017333237437379172987191433545273610704686211756891304653807078972779229451319697496189634234171563240982523237114958907558105893506578566901487360899405181934643503115272239967995744401855508693161596376695486698148005075854055380569227714062094541166205564510496100195619084332847205459501142259691284558518124703001061167971328651644131701255508560150178714525282869605180754529348902223283711420319374692653569251396448822963409860675787359558856561336728381390900549328277665272262858437425340570043009570689643583979892966657102535283492732409729074770835061652085513146472779392789016511601086816673752160094284579448690742461795599286500674916176049986229467362583197885097456967711853218911124079562201698231478500193202703986859788945283937262854507961999770971350529338431245535515623098912232914983365870228644033801884473354067923359455004531533716277044041783228373194141801841826017068704604554842152146412037128207142794626188144048567940407710953963558126018743753081874982609006187584541087189021051603981609605300525862386524560296140040537764010324673049507596561165180525633660399901597688344217314626369699600258183833630167319372172463055572593041851143355183971643854564589269371992855654833829735020020693405949038345051397972555339180953880167420109506454987844876239539485106256869666428381064356291975185005268672605734521251996097771459743083144858578117109200640522456300193720426966844276527426563930529515812655959109150904219995167410247200655507237034801600550692445510048791843895564397953994687722580386813567868125578261400594858220034637718392173849439890186185629676075600195340385824790170804046427070933902929580769892764340931551266218250970496025246538787836806615643165667166462158255624119492703568996574159999496188149128218347850760323818331017394343976038218747868725971653831902704101726858898932714468025888650873589291545382669477327421048783849454730753501455934397185112964638846783555862669943256888595452430597671496869089680020106694870270732272653372387795800427674550576325824770448906023778250632572236335973638335633807750412454492646347641345386895857321403379551663561986688018819144044890135738467494720388135868173964813278407998226590423728800848365557653608883262254491094546035869130549158332416638772016548413673709036111524502615524136675365320773474143640846993558408591709711602803065935495449884478772455168931218144452532195170413389303839417340387853539083931454747965667417663217114197026850710333427976740154769477558805741207073587683088954051310993304046959621223475342263631516474070238891553513319702070298609235223849358192545074867609411740502954600124939365272359456943346018065109444883131709863539809054900573580061911139457808305631855031481460524569562759139595292517760402647694712038353149848066075477536270660776790724535289609781481666664181138131938726619207125952008786121052979722204101432310632597500887711939164806965721119578613772871372587197510565015254693225695106982214165786858748558987444767962722335900325176573146035451347249728298631091250394711943140001378622160967655064378494328105827481841180414523493622161483113846113799424638086878725080267691349138673035234314551267596332464155950593621436771948508783758809146701238308516027306014991168072067663180857067965342409219489588280097724067396009524410291498024534002553500761028836377229464515749278538452535426535378262009318785156504945269620700962632723428536215467399601269813078735424269333796056237745383767940153961573667836264826729199545641083985119736949713044163395727858784151362006602472905731778995378350816358307014085929665425480115031658838173556033004530660432102758613309093088943582331020084607679748300081386072465815311738468252196954977386969528856977697149725859606111705546954906105215550842001364148805519324954222684640239987747191513215524646838138612893482443347882255584614615994129589057075365234775353791075040718541641718148490126923240623788450178498146317893486850677075038167076679285267046592658015237203481674255782239997692076500412705395143460316095574291637730548707238496242913394095269165121479209038807035672111646836546883376225188906736629801729072168726615306328082658312423393001447227339677256699971161559084622808517184875486243280016730041586230715536578453891132913486727699654832119220632926117284571432856809062766044988690019575104536887102979724140241344711581624701208021678598338071445210761654825936986121702623369891409430560030019159386026709197811546002565180927114592954514297962715216418831138398195958238358005580677115463954425875683436282059223995716604878688175811947105453464160260965641031421253127291566317757914505444315493110963815104012670638668482861408810118965593992336651972509922522932975098182415617227089430308798018577219289382662631612401771496127605912838363492360189888842613065157365498342932757235896791777761594434731353565324110912976414126552719538641795896564439677215452728437106579365250178858858283036954832856882626570183250885472169901963605805478901806650590599171912837050516931880937313155096899365965749462156673563201185291600946731111331302654585825413181601535549526897889555319029416094999053265755899538868187950259843266424087228324909369522600203878200532493837982486157247245986859042435865505100188107285405128209231883957799229344319894970494509661925158748713449478868128865235423907074608956065081471684992093016988880252619060479980546100967881629710623758095947722473349177998172089755014978330782055151634806772459213369324029924332101153124300939231019500407952364612253835484552693705863210998372467917049656724662517529333193345899204053068116457878365369394615934654609636539171947319074452159645705694638818686345952557742566805847771354117204187692987901021486283728095399938324076810594786763841263726093745901508442009727168703787274056589410330644920939319467051199003596205044419779028107306265907956562205803832506017525820340487793114618624329850254449471411086588005847390567111314540682103326315776003615999482217201372551366872559053925129036498707169469106615201803466780226163022781604390279866848381408350137011571396153718270261067246417372004986631234662170109597540509843427660520949457599479134319493829170753930103084648517352803045440274903733324821353719074890956753629274142528653274741754256919023577671734528165363456883367195431545075481354071376945195162999438601453288896069023131665414884989444544112435462290967806498945053884438074162655864324139329205201432864166173782391475006530404141794346765898016866672956775717299275716071956812837214956541961794456379892599889003219744968624674209504044280493784041212721941487229684004330641875932224758287917212173716750945685041614217017959158359709667134030950136160501232573843684567224874548679321218677139150076720031544155114160949919039392591576537492073965732955181314500565843564137388350440304380568442134453779937241536426947692871579891992597861960906112915886051250968433944482451087543810722920459828571630380395654112241855253595963506545395568919315848630396538009005037483993004499258212263590336285904924724458217600465435080660206881140145649733630464037935977417809233054735007584654539842964302253774008155185994617099529139351807461039372245372913745639385546585752414818468398118565253475084143866338562287952252928075523791852645019997201771290085922868428243616714983578411487645161008884264904461346597131392739061813114743305064008854768848887652744781835218115184587458022540998917939154233647825684555675811103985614702952176821709799269736308434043838173246757729426231580851498779543044575295456367856930057733709321199012889204671455460436821354674965675418363803973870706279508815767019602464402899740106745630887932665893292185498031419042209317090399587924502086163726097659488326611461777296403928561442632932752606043997913443298137084939899472581206713104625031312580575189285575768018104462284290543619638029314109086902146063302547806911046012285550136883008434277475961252694455933907629901261679104169961148926423694788850371439228792968498359584055659671030545106818722771938471075320660424498304643060791999664990141144764352390124545403886374571908239181931361403512459304790357060572933827493433410447649139604399419607962489826592629886871498804052444176686492085888672321502512394637383377497898216536182498982085209926502346382100717825908587596260412342559911148149354800399337481612772312954456533180425604704308763287300189301347748139447553206411620478675446460520925781259059796227595869307566813400774631313632032044192155315118322624545742061739777440463965689420101066902415931076493968621270425700558106716141039957936681666624640639435984342349714317896655714150313741951520073031157746895147882306799016761092392417187366590828564246026926189737901812931212695096026803204909945609264538398774213986173954027123190223108523946070612727387900598506115064535994498849663611633323514694701458841965199359976491745318295653521881668644600232683264937739437942199081566736517614910765709084058457466777964368242561802350501004220303208703524900473477075697136637281657849278349136272150663445381334720429826134375936727564513757032920561315967089678496540696572911958819541597642582730290433762753442536936493882611607910419246815708513885018047536436831328125449329490543508828133065657293298673809905908689328951834648247175003124568444172136696123946015485886899814925615504166068930248788697258395003206834916564663173863708709461368467182463665604251540963580315990965219136709312733549105038813348189445589664493763202934014391009272834578713191251165328820434359098191163385133260940574594623698120582639958059150617436564817441028225508074345685486288206642228506385843810867739227958254424854249158851440187733814572238118352669917672841597860980528742693802511659151092370135910582113211626198113275153095382066262815687746060255129042585735119607983844595802523926528000467628778946373347246151935526743840850230598595879189108853518668091183277104913362313895102319153478284293475749571579773703213675316331147515809315109646738428699562192055832869697993693699337323377933664932689503323702333304851588345634055351017600259223452871238491830776934009148702263170870239397853081521749695997658246456771663995096928431300380047658850781184876145698168237442751035546533316953609152524930456815546521674402288886395278603529441997566160046456927739564829435651431743256343546356925616943427790256461718628890488401217757731290151959686274296725534263879793424919151479888655207938000678108588083102712514229056771126282535025120605694795683708451514399800155409489848905654869567486949889320149228623200101818511177882814557971436691740130317120325521588622225115810754953910787838178775809936602643245115320732280951037180352020163788867351230902466096193026663386161748194955777215245429411598374922915617730668649899687234026377446315736779013009807341839206539671726391710652669963734359038316488627665871213194127654906105445974744201830302470742215979395952739836873716536444369261121267070628378081858842679361128724361283153097064230783381399426754294552799122446508421557360388024058341937639486591152126630250973431788304729792403263887713248791659567174330174381015740497499626247915021285758997058000297666689460038434373158620481811014349923738754892847475153396198892803338053148735914399562956157154705247859727924476325116927986618776151291556666075735528108453072338514888556621137133040012894373594640097387618618256596094062479356620046737908050341458629370564691623227725535358492919539526273138794918820068879701099248221264193415700138418790546440078310050025840896105839307814198311181021521078710536528866930130126613010032756327255029830921359949398781640077436817049896458903136353032265237922008061335099299162200063848524956694830230012212350943391866487695237522954496831291460886133742950781041267435989182681140086467907740971271167730121139726455387259752500137803959609239964963964601046560931006170770880649551966886338169313253415915371517659713746446600113225574353245155628975719980879493661885836947284888220136314210658972538690147102530439442094105736199869487574998422352658724492221379803784800241539307983818261125956908264053984357848567612681635769171133688894232674182672605512260981343991992442863890734052588409721827595456172375283010222799154701688482739077437240336278774220704489101691888124597004346180238170415632757685386979922441928235089703480968851885893584279252160937949717780315379695101837029178744093057945288324257114872700851547254690482837894548233298507168733978246907066185232789022210239439255274043013698612345528417952907536156000015655699638434883904379828820773195509823282500468746349483847301659841062166066981164489284090883642175566392631165931548299531161873377672590858687636692056457149350368138898092325032321888592042805348662219067582160402972094210751735667814975904254928192636083401873453898820979330027754814316517060575651119901535868949508887823626524049125965321858308236867637976908605574122216310314714024305738983972054602324151418720954273323469618752692275354545703900334627312636807103895687747047344412986962843654414576714935212668238585419390307096538280724706098959980462344179780759603668512197579245616621560421464990994411764512420423553522945966897532199731631616269674072220976490265351119972814944304643751388291788282217140486595479309704185414874111741245676756534578181041221218651583275268186201713100998418274901367377748259667122099695077890625040967908820268074598639783513365692579949456466856263066794855033090858594782758265352722235324368439174816241072647981115105740468533447246427444614430132347319487836092454498211563061425376861960275370697896633238805966880930609131838417030674810712499584990530626442479517842970889004129166106855627191542879270193961495394961199264310242872340176022883413579187207997407706122493042268684990089990710734809692917873145121201027853567739442905234428726925061889104341116749683626241793949750051158399154750047324266577986581185675019715970989630205502506308722737512859919420514804786393953228310546583650814060792003036150461055120434043467447010375617969794190071273683731079444550413023150386911517302760907750875582763979613582430221234379018501920980831131329099352637991500744252967021526682736919259166957426404399115859857363449637572179671319032902044965505364540370209899889088725187971398602397155325253551854646915800313157446569258264384379388713868021083263318442560608051670592925237043974605184069429883318685017348332502508138031903309810025792117364873346289127590863836433940127745281982378575105288211087735401601915662062158438378405249226835595424882476693345454523860358305110050616621643346490243358796734862554851456565956496416292402320313974992342717755242998365366916296873856371359434282320268525587416095542916335062785894864354865647240769494223430895979023457538931692641009574314533177683106831861131832694773786664519066747170055675373184891650557372298479651925474994890964780902639405272058560838246700424630677127934215931839962759281092533566138035291102422526304398585514498560638626267523971947769622874711601206824551002324851972472388626997387391736782278341807446335732733206266286869082098620795441035014957294868881213730616307763312259494441131302211510218024908708592404857593169991486266253332013538735368215473966862911147379378005230232834383525079282676241585834358108471257578439045985094427230427759383338464366890602833009684095829280040237624924536179032646818920203383070894881391305905748425715637199577878476900268230789044215974093215139386322524851337623244452942509863851332551313214566256757191464138332199734557679982473264828400954094795892727676693411927856580597988656414239100037278446279921598661334343339908520131280528495472593341361847780831145277182520195603519161869741776208594405009933334713531130359814694514945875500400795338911568732600992715700474831022852574789325707192963527978085116504684115522375719123981757414850270423597079269704804202297124090991879881978996946201936867351353039914561762697597599912939749352283308606323761457258417369392961752225409894233695022057818937313806798828516978373263795532302748120651866615859221420839584096069474194340625941605592828976783653138084055878088770926089432964146128367567190014909641302493922359164400865046925370032284509977749371898638554574675579636651705254937708961516433075790495072567383172406698230805497267016736822579541190047856441871745023349890842393861962830754354537603343412924920909565403902654715953476942336151043670165927469255207999712177095508890717740818281673356747219570428147806785740806187457294432205601511541485801672494762116238695701499314147765272570212060863002152725264441057999118566216285127534474741084955483075826192429506589993886499524158547305225684968483668715409050979421241451295041591425912792176614746369324484928389363762722093671461048733172392228450481002802750306990855274591903709315624760986688458945598737655665184932462017468363212316803555586263112288772704384314853991765162350872814969252141837463511639382674574146527054811967938082245445202281651809500538255199142700882910906844182939496829138166626765394420132846857397121171547554405514805131032538688056044080896233271264935040551650179792421720832194992466227405720159671261520721893848034712531442674642620336706261821766196105046416700410510312975561464394169862282167670678849033269259479079503801904423059996653631673252201231726678202565797258756972469081728470995319776295110278264670431632551461292595408240179139618535098375158572711210690351851429314298736700045717257940749757010503102160459664270700061513704736527117432710920491314916621104114468428475090493157478066096841844232949121726906098417195548324348812028950843471415915475053558478214791069308197698836533014933537488364580330699992432449465186102843830308865397228622887216844380564137116207391737530464040806525329348008454976029082319287390755198218933759076799217415357380017503281221251145802106167319712075440243504853600967983811915724282452711061407318614146500400664705059478984496455393890826818449471783785406373845126233002983685268445721647636984192315951240776256767086003556834553811790577680686380548083364641859627010653541584786696522919319597652391750653895211841849419097259156519495845046089978355621579999179982438644297555064520785748803948057108257647259663217050649313585158563676843715518615568915037685253588989780153061733405399558108636768669567161982453707591053168974981725276246469184771931449277056235530355953264016683743430828419548073390001486570858819262135953341836542353791577755999444155632029100773828962241152533894556586536736300152033548252949771478672025359209272466161003546473404252412897453178332410715263388884110167911240280465250483146368549429482051148348473139351486560861707257526568339760961449679488601638461154264796513356620586031195449488916896151566200944329324933497444233977760318015454279557991713416797289176928412198199704226820094090348301876595163961874709397168308708845980246348972368283743796752969744030213979691028935855862276134768970192136916844265047510306711033207073610478802290721661660807871102217252420987282392796653294770588926864715954085725963367842791288794829827482714381835293440173973098719046588394180691278009101535916721486806255666845051772742250712387582365298412306373899365759954136831785183946312089504461090024691499394319350603669110685401213456520334381934437728584401372392011072374478070922112409896691680692459684325427991712060115258479150135169661162539080162454607284527386200731280060346526444460079811534523736923265557606216790725982021826328123730685650375821577926572719167776540883434602673730043298097792888786823421974041990611350548021255016966918230880487765467742305890425493354378151621000707083630366636751043158657929969101555313241389062446744672813073196580341005956417768455184058377615606405567938465815363979896395093660762050063061974913565094885415686753674891506683094897203892496481097320925504814448599103764640237121742238113456517529584776616505711286459349318753680527398092207187284746340334397209644872759426500499307494518189513351351806664536028697686818425813621538605181457448100127519830928319324294274125967362544279048659918460342506844715400448110688207342406256175084002886885968670906181136266546265593152943420458781659165335733078845615472105474461858579285897753503411715504508603218674912293812720122212375749059652883109156182821417772927833088500589607170835565112195731241790733148094186237085613844078409190954342376154151274837291733894320229755607771741655969960376542092274425934379396413266801480432637972257936410635112799065727435566110302689250087069548238746940092034449158806465103464363217283441289608158719970558275787555036689106542154298287346576414964476232546263807615324050501441350628222487476488831621016015102026461478788403620247742331456482882670262526848033583783740584921592810152203251823230514030335644073848625538031831146957071151895561302671136987853367747020102763598089707166616299241003634556940883294468616699109887642127032316726960403273101136128671476737288248930143714113613221770696836312046793787492243168019192965006132621225661845296909968923199667936921116171386115763346911908941103311592826417771540745460001982357813012996373381742143164503803344871642534068034564403904924000989428939766687465545515946372322893483539541857226700050924044839718591780921558864216919849680380965698579318670566375368871125999098802748296526099197601792436475635214369192432736943141875459785632518303144854210070020292209553046198868320835457332808904493044007362307159172110828101540669957021238696909602650200043415126393378717663831801945431449522378221637178361075669780186557655667964253950606619622017366998983862234326402655088035447373617198318295155961143166322828641374846314828526483748255443514553931649271113155768728506382560459894076151919899102461442965271097603768029447893011033630102538513267227298522134945518003810574040997979847124680364447554527887910365814030731856546430438868278899708007255117187463692967744272073055995012995719210405827695996600766035646466595348056780425585382221856660096254782933404061072757760287224254017620195210319456789622432726677115289260048715100391440230828188592614970524229074820616530498566394856126612715307378710317451711697260492518694270798805299398379141530076103329615835623867671661934849050657398041387173879839388878928218989663810884423070150111784466156957006664439639953801781081045483736365977451247088010150428562967873390856903125430695491684212763864587063188365684692732434490649370995507199190075833736500581427172004909780059098048365487629687824616450977797778902786074553248573965535367278797517847516929349662409632269300048726283568631754304071137975964781135807049092795716184323257559222749205519794485907551126510009871196990052723799230468784408687805018507352866343289728737892162593970225835003023496040854819209455531992945708623305925668071179815671835329636488594772767338929039781572154023628587761151638459142549217343723296566066452932884111471879153498823302371947384397745989880942190025565249834702391975578353880570046838713544847942722295321674611699893137733968281508586103700852478543851936620196974083968968730708525337914643908523156136671503648825010180600422117020129715579449356212028992567361101914950402955772567799584474425897613707181416316502683788911675440849921518718410377089927790405081266551167949361946562846812935662979075089696183539967144810540125940531585500575997323240275091128738794468804165493171614230397868582079242847919763792351662194708659020042446569214499255279245816620646123795834781865873551866237767352277455363705531541856871940405689495440438615619935242830135728531781407687549334248384554031952119013750792072811504783443818563879288297729198169345214450708876636962219222711707078062340647375550759672799189540190506704458138377060220048631358726507793001284660447833271806339773233587144242244820036598795843194726389225183904351154386888810880765036097162802922770375302896717356075316281676451595483887388615273381660584796683483911502296138972209503237256680136093549182533747512379944913659008669734221529966749183122427260711505261177795669764871576050848703880551005283065636673676142365528226781610269054419743166638791021417592383901567460959987764080990888285607394390399398104989782067630732518044843589574575222605317747455387790109217763250870621188318283400533568091526618983882845368570342352597606015614780453930407399186322166573871703176912629979575891831319732183740779495184963659191146918432701978159017931347421825688931545989127304379584436995540278748154545097460221475870826098301364044783083347548562982565385417531758598935457268413181691544020628963491341013480248207021159557930078199371656472365326844196362179322415073019002743717005406356387352166473938017487970816917029899091350533609917028332393648778459982587407248047723941441095166352710517171446583256555347193753945935906726949239360137936739409001509131500208937908246971837491262795572768587466063967713885482281706666823615735366568077747930840556274067681569089772712128876018515885666378611518277993999611707938607694130533520266692805111662948887423057589712866064127193128704670608722185336662216430290049849821012503295133214507710664725825091945883016439274678319601868785597234973934537881525823189724824789191858529510530408224147928861231601506723047038985703633605285661598918500299442907510355552630086286986852676476749999541056973796249563035803815689222181727224200809027588664653487280243178054860427041802702948120957311078513703290331875173311607559231352802202102777853774672645980664660642528897472957153569919042834761060872357083660195659376315522560589420427332749848004507994132070463381265487023224534623150035565024688974927606322672162208315367807445500582498141541072255721348090029314031764223860054593612826818275772833140303816566008477245548620176951962850149033222219694298187879780235374521009859914146591852664978645087308840019891309883710910398323468719137767191820727751581079881302668545166047936315541386978912027646294645578865920169869256057400996557380946904097387007862035604893167301534112948076936856128947711444772307235340581512316871502792049944458586272702592788837848793192095689358867914088092651156655225982963515984447795114567770880135366139699341260379755613422429623631307707857196023585835059419235186246921484550438540601559269111837368671953645748110921729333332975787141740423569099755943750349487619863284878540271673634363431219171917977956402073577847071196087254764722689700321289854400169579509914678897504510513550586756621742360829277722523031882844006412128541866341339305858391063304966968901944959504515060108746473137360498849816930498337328030427177029183946151857575106297071543377571423510808489126220457481174786065648799455883547436798248099061650600593424679233452653363884707085934814456963386701275374337914032196385430205200529518352430780150637918711342599877611960398831268548067481190033215107328351162162296823333005332217109910318063358909608088254300734855330180939634798024228673592315439007932262410973584449499005632921668741037638149163931098192148298472978035722245203845671806777870569355140594986773867958446043855300076506946878239840226784960218341541819598788212255483010700634943970366364479926536057001414807440859691554433860063347334857474920976774563878044039020763538208070046222542521360375435245917385909908915791738245764958670799447688330661940585096111108725395766864357603516996060914460842524455261900697796288413161550076029565229483588742464991864169044413997704370759224383407815867565961080270536924059992398964599483731534104888106891620263750334654995244656356427234617030109088234073659957178441592912101945534593130552694883380803993367868620967890976981700797467297725791488911750959429363749650330665972101053471444867899369234151877632322222671746911304301638521576529834436005596932692430800417553631757731431045595710864365020882373331878861922278411320379694581200482433391355047813934357981447757502246430320937115766626387818459881405250599256107362568235113848490561932521468892531007374508034073261618178722287615135493361300335158820416690779876174094706065502238600083592775030389016009195727667548588350162960584441236971136574043420135391845634800696651968612200739538580315451915047825232364660017993193271650467098516635901752524822754745258378923995422038576365336919056671810418581237930243097018631712911008018892290697713975700174111849099983989179199582662320225668785702229498288642213396159106012892934940781359620316334381924143462137818713494678786596949597612580633397122373101086386983818968369497926072755321213155227993843440251055072270183628437008788224391741821630300443426648576682867307120447677325225959914942302630815083135378058404917933849288975639086314951014092285172939662594242791841453777613811857853510654875687844720275803156174112956131904598803442464257875054925538295931318262448616040080037202735586512586422087299443962036136837193669979215166104966916675538386899367219613205287640816705178491450968874968851434822082188175887464647544559015496677855009765221416827337508758545235171465203580606375553884726815426404848972922331031015942777580723079831009598708837369334789900243075311017063524050447899717715880789595037365298717708704006958262444973551212968719136771233500597093417100173421140823935544096452103013860146202564583744317864125987236456375846998431623579030391182854886637916163930104622891622477583715908847640622513544090375879830555061166852164820235665196674134319688738684564303502172190492095963568350021650038276948648241835348201250767189351775427313068417819526818063486187943837657782867127998780664499910149410625373416340327259486688885554003693921469054428609306859957925245494327497896376749833025262884061814413494285742742280515883357658334690579468286383415578046726293381809992478942890509164994728701368974928442432522338170102604561707248124831554910167784011553851642697168223812623466260037561006725718361770581201303344188323642693223434376434704882989334983859031969102254558611743021028806633297710210030196520655633720105247271135739836351997383219799097215391383204148314640958895440795158272900317821830699656384636504875901376453387547969714494882468941510202670546916659872726232817740116036791074788465945142784359556572676058885094495612835919997068025454051700253561360125408695307834249882925088256659754972746475280861294383977858944013075001087031385082494000163862843954647236712283632861484027101543247082865875800191315459250562727127597239187343936072926394538572707623552092665221008390053359059104923776098500479095116331258872477398762005358564428706490149925522261844370611575597967899255515974638797473743809417394988866143493595119562536621012673019013075158182998864765929769328073411702153019656879061598603087315206824287774542003022046943418667729986789199279859103966535426391035461074281247716703420373164184723246228345768587370473051527370305040744175080168367165315873086529639007437054556317804787528068637111694499755728047900434922493028329508284535981448148976809776174600448738572562258443866971783423500393747737771048149995196615657799949212252236967700664897897412490277021229105218571189140833956303859794606271601889719576344232989971315660891483786538112704460709568823901548593482071772100199084905886149649671900922165705509147174909820998825469880168326415086599489340972469608219331785038259754935130346862952487774992231750808998736741823456837138376336047276481365544339652188246013705328904833839578076975746986699945993054281311417407423332663846196829970989684816464614013264297141587666452189373031626216377525236887509881569108557588671416890020069519544225874733706614644835151499870772514866752293245294031734642236217560628564308545098278519729808303620959020320675861506050692009725222123230748968126198276194717361943842137723239625106543604551736819628212245090283213037667947771356105394828872833242942040880754592854353100938632870613864395028972689322817355614624162365514535976151490969398151144946962400856481024555269260907520333133105735736135435689235479040737797620675336788940895723080894673003548009247558494653772184873366564430087754024119190315302518871658065553358212161016067753500906427375265351968405024657515544726203532526125832736923653430589947926852092600856443518074933343280594250990409690806688126108041219819377970313367634082523986826965589700516811916515038936893923961926680381203571606193632971780551642906609876342419537110565649023533246502906968265499408357514207005982486062608351526908151785465316528599499986934534380336118829674353555950604936663116370185710338814250490283327911838723089701779668647755813382606146835298120746901107544704442291982283908277534384633404433091040032983236632646457986660668660695633548568831689329201821836037257820192483750440885491453230959894824555759527621332999701333037905389686219171941600324419987800396385495807239131407817284788506910340648769231474159104879928935526882437150903291726075152536467531891829721319738115122859094370916268744154136221192086999952968172249812673364476607623293761060939209994090129909775619127886704862731362499172384140744250410873550589465859896793716967237093430726905235670652284915041047874744024556647125328963092765516242231775719997264410818672865004466250066947088689950245234422910916603324313212586096469011361560389947582442697384291577161905832697699234335252142231013871111219295870134568531333509640237945053765257779440292045872194081316170538345964604269246805125181973181338329956292352188224885706868753370300375672851502686728428898205644918450999720315461881194345216846681953878644951891258733144456945265918001104333451193286150372835602299559648196493782785261802792646294545184059646579382838297235999869414694545479388312643191165022851370741836310357900431502934377560954706669632451545217339829045970321384666893346676049944113782284185838836509880540872207647525741858970241397577926755255639945622015944031469259983623856989500095769254672694100894485952303453472314110199496824678003162425609382012754816139421645819153063215987666091802049743246678460867044922725053387314704257022441563833381262138568045001820433789997760701518014614521933092351505670019957397089555722108793898302108229041243510648694323384631673845005084939391411646454413314914114524637046328215890976595728906634484228440862663205881451196473829881333960014234155249757779152840410700594744630584527134907512651038836039518175274099247471717627423016970700454687494251406114739638405932598248081949479441356189117980334893693964095532676173365285924906147531529681302637676028145451928996544576435506708751074290537329989412219968034162133037247607176393123965629372842621143816247401566097555421034468685855683719392188100589573776699052068942539898400565479150676825927285471757091568911741385266964009053506961062441800815389130819941941951676274788627633026550409660164704610113464788360015231200009005953447344116527922368917375911822033712112463383162467636247975280123484013115279615326884828005858509119772086183184142327909674155203887123846276430020066327965634010667836976453482854504764782385490918591245787800474374510374722950060989409642013919359643777052371907525753596503218642339181163946367126610986110253070264552900653387272377296989587329548096875235733948690032633328385586328024852424780293496013675038975178471307764735486672524569955265400512129892035561794216766302793433434319779280706259632185100522029355749279096663752851801538862458258904087327594715578693640898440333982331948597878703043561346293493611105981677938932861033167211492894372433561594215110965324149738115187247754264118691701891189272476948817644645707763096375604497800308722628084852727177904581096150738147152374760915453805195078864241050302076080479211404120851703299706426630153493353831535678508689373202512543580901220528918661764406444985134947815537193799786971171381324424282464101854465551925738567405249213095994952799066517183393250801530597068593401533156024805628221677648259299741754182716413687244526496058350342313956860030360633896973999244360693942949171147046903323510254353245213627366709676352704688565989812264625108610331237883280265700586658438904370468837838962738584825320123533392277287484801388489806084454239366257008330292546478773587435464863696216968645841474187568210595087933811708783005728393579200835498580657385912020452267054139061646478137174488340333811535236232882364766223756234745269051717587479704485988024491579068492057583777782368006910960033214516566325925972770099242147345886139242249072911794807943881954142173129505079053460843599212593113067927235352607333350496471738399213127398794314089677952818775377980823631034652043260130509130559177636341960357797609830911395153184020573762968215511792038672515537391192265630449110831241555857720681023111046922672876734706808360863342180435181522734087717221085023208344601444656811381646088624246540880547578286388765946644816456637979900259162992263911787207664501465275675821449533340296911406008758973427449604739311103476951775036459826383252043123131965168407577857630328000446009643545607745255625404885876707923770620836143770653773130686066219407755302854105083192417962857148371256782906252260346025578652196998198910076217966521026666121390357688321347857116315985937371911219754237681128302348564842424487685382953118137875844482728039202624475717397802068013470853366375517612905243666809470188441467203162343857878657799010557792392544462852705488423569110262803169523910975050946438546337344692373985666873598004878544296230026226268745547869820951553672338443744620232309888249999134275396686278256868828356228223560734416610203106012163141314505990982391599755124459740153266301002404138311243712244538527088099013762666495040116501321150868123364534685598488491134841009584958147227342103747212603811899775727183721234175422765043877421156140163393405225159325868727982069387469692074846196179441130202172885827363567528002637510054134029034966399780494603173507995797120142645743320317916967872354086805564054736145334803890352866923302133506887824587857851180019396818926352081981314377522857000036900781868510702374874284279826907885672787111691134051001157623975171235586558048524643374128424056412534607058607571465851928143632196680291371411607053301021815505818331318633567586881922464275524635244127355492386915916037380240411830315608276543997283269780822611194033519206579421165977883720457679705885703079738367171817271094261094845735536699187368740572235752756674912739408035971779460377049338560121281942900402633796402304100347784898450419515032363666282691827792270415011310533365529068243951678288261693407609203361990727110729215109553342693090226072811056042727254340210015309944551283856551932858159134290685423679118197785883147133388634981468919969012915813339224050523214197830017940530202204501703118190828678428540307242064624035424667202562196803237550388648053539829934005392262552048609093451902819444796681106473819456465040899455316948757724577568128687342204706515004722138956084297089200582042236739453905563215654256638987205041325614650518404333482684886437664443098840143772643677016202519646106413133515344895485224397162171217535285637094658466160223755410503351413430479972812185089337010002579715703741918365100109247053060425747760843051656164092486871660679639009274802221066007584906255947332519345177110125157522020643964019772134010381019851878282118798061342627927848431237962739946601352555782388632814402609472582087464286355187648264227804719026525799143638350469598591964446725452518305451915736038747411067982684162702060864496591462558260939068956166008036980803622489879508463436616466366406713897706885866052275638698081151406716859546910063011616549574994774476684301931414165546347268432986546689992612944627917643081213117253729926634537258369682718622710058974959798696099003791793246339174023957673722627215537084056347084114282367953157934169074822168097895273419020275526380852740325152214074057782496206180005252458790194785084209438851160268368031985695012759296767242716256826234869983901904106312340618608060697936330636431029195725435394447866940133717991460103868110383151907887762051206632273262792494231371266190927723769420489274680456597086811019962793963578088455818169317311931552943938662336002295403437414561394980806359892431083806588967314212693187128476274821934828732342589243601880505650971779937323772243972764100029589979896847570642660863608680974649071840872760459707473961627828125638001187276206835125798912352686074479144071117990310682721378126945119335212214391279178574804808164428513633465759374907371624719792365769070204182010513783664795096646593305514255844501962791053288438589211827082520227075136161556574122672738735887791857681282578814931149987095671088390237551625972099692648059216871664905994070899931885245195802569462963853080783202760497349202366270582942281549154289237496286016609938297058114924947249142634993437504900216926361323359848941643442345631758431256854825593908190687671928671327577290959947066451712572298723767961149281982049898856790217582064754704385503422901819287662210360676055038640945669558459682667122835643580258953179418268723397324921433631793359321761857814759009230219095682308293384923328841598097782318929775781546086627759027647439207059728833151483963946083109228852743304012212771371544029763231415967008296740961554729147487496322489777455058268736857570632126351059797920943368901089910345236568080642949285546544574322176903453464687334915780015028537582019575111798774302610431871086477725860802137093435216242914908995496253673319290002277333411548227182226248799021024875337631660605653930893001019296527311145385115347194672203218520857280552112207261057210940967443637052347543801957207854634558237992284894599655182786914908519034341492177393562867735391243456986889582684838428902610165624776156353948628513663008899319499582146424456559304139267252173812978017950088522745403104797942505657892847553972258897473268693739266213190231830006539148584446683750833910777336006006427547303747777211227570421317017620467830240884401232479324239295853831648246133691938471576150794568815203557705583994230843702490852445540410330117469282801748251877960658039030282247545735550567464891770226786801877391862883706865605547938653670231096332347629992519033608180635956872817423634522070288044894293837482304514306181646076677684057625395647411666883826125694047388385400608212301025674130288902754871115853197287651738248834702936884323093626342513046209511751170114574156903725655173988032205256746946977921533222457629771725134921022715197236942663165999809607826249521768168998741910619182919982248379537398467799953170868019406377458440813741262533156218908265675578177005584635013099268977873718433567311819102423534101206250243451944704927930330245319516424460250996322054962468142610949134935944729746452475241042928223225333236769175378999201223228224735511078291600673476687039740940639572635493831552226905453875656636347044155726330365295935828719481451943475939632005180151541573744986475388626196946812437586816902546547422317140600950293652148411801442552181464094869218986910563945343453241343014043583197510578557008338096214150542643751177614989653607469070730984265952821438331018537318076660277639920354821379275314241023088753676515429546592341387782107129546392034786315237991063677553026435603583521002939951135641796431347194985750155547630066132078914007573621410447442216337317156197033534691877361769161883161910940809230503175822303364174180125952746066997369022953705890749206875683213985052123091514016075553969849806745199796789661206503303415371906641751025139357211437355689225086354563264561213297341048864650493089980083828876673356114356008077884680410895358135680936191265826870482013503136545948111364890545454522078369627987742991525317743539107248816192441707716608362137984511147418889702932457736437777443552138593704964844812801153594115465855620117165174106094736211275135620629421001960927527813218462868245671305892062321662912874623982549823458431997251961429413154248855256428530276471390749150654195711639171651597552625529583843406600519173995526097764367665153510392814467593490602938617577273437759095007346801978860497521521077704958234770800324404367670194111275240156152641971230026778644233801931944301066569375867403363014415211624452565380670189117049831959173964248455593430254062473363419212481007032414150951788089223598856405792480421772100423725722746679484464082741440571675403762914107525547794916285088097507118730210538653426058850237088265786003070570295360017926313133943724340525920783932155244122150846034466162569155611113284713254186817260255947730159780087028636862529227909418103482560386126804826773439420315642017384260312015909850888744818199868837236586190517090265285565639757346478367248084709349121027729871802744644215010580165664652803878860052863433151089847730716316423098981405551483409168049124212880252070323130125934721049993882985324100071661321724239551346159966894285468841972350419735737071909189722817588853027311582153873469145047034527888365532694806021530438893513159340951179402651840190337386919751015592982240277749740419835103159247591171455737868879383971739081498658919828906541326276130858970517870143973801019212313098720215697766286664581224824031039488704974860104704857139501290406533696781910740099302917521678203518294326576443577531823900021941985599306758465042503101200860764911579442382433338045019785351399637871711347804568556606032772774086890971193082282453245992236295928886408392635671714639863023899884000572282962340959993297706142310987352555644653779253572171074378493496567251621138148099595250778241391188347504724189445147072626647118013959064531391409811364232572926266963754197625678805158011306903214989436476890515553156224709459063676190272932742765322448358155276772547268943081810011456528012204152282248935206394171138830689016083890458457389231723298883698427801829574529878948683155061437719444865095554198086260108743884520123132695632549034347809755954602785844533837706126814759819440060006287482466306423354342964407972777659792614013501854016628863556936009754100573743649106390258752382323849451735880297939040743372611338092124882110163160156827404015360831298217265036588073304457227920472183357572009476490824044397610525484907247983117517969314136161332459695252564774789552808048861275270415515868422662474431992516588922068378842299907886486348992454665364826833680541128023276948319412090444548154012554125780267564361991953558706360417643475320745552307132650750606729640536089018377550087471295537135291656388591459969087501768270791957181593858103409369898659674160722339083386258390735010665453222724613871230527626184817694669927302682820115853708608374530514267633595422588932683994544885228238477794830618593013412376451657535098914768619317698063297613786514153713686659663512805044083201157092499652623490227197417599773251342656656867226521532284875364723884984065024053432207491327192283747871282248561534022258772816676255721480288490889584399613285810107266210632159546373178176209066534584022038219243929289729510157044407142693529115152682905757867530541465545729868784662465543957218821784290799069125978558065823055911719934617406773568737649330789778504281108999035825675201939569730711864920822961458337839662461672855205341978239330929718067139162897611402831817952201744347049903888928044100549695417478472533850159564186137728088610669657963546843443207802780381623286524096014384573227082018014295962946294571072941570326124937195133274830958591488817305643644197160696266704355488305071055998933975713748456023664332580747552327413616851845392341288356823353657160684157012814631071975938973205389769778547992394288742860498457214100988024103909420718830403244496722547412945541208698876485453268518514624245478700214975005973137345511345285728428524924852218071305619047835283209710884085574555272368723649115988446454148597806248659123320771075229447625901392788126839801921656304878757053697493464038530256757730190320505970566804040697554428066037546286557047017555682189135864379736655690938151979546783343159691589246891015697052319080669072610606706377449794447776844776234269292407537303106768621686129928099718919323551015510637586328881237465698386406616757698896336407930350537279806047471626451185524445196144422562773521626163787329838273802068272609933141552351258940327626213832871369377147165862148542755252601263250014805454873070929722085915263709871677976134310731188687238717503567973598849235720926831324013958685056111783361346994100470229410391954442768331886086654750563951229110404340420915972030749352320406699636433432732346484859557248543510399548402767711310385489750730209091738102176219165085296424966547040000439383017249104304246959966442545737468707504235148928146452281296637636118479098537039006028014786493585495501501972181722241108563548843358284608064034823467119326413100443582998943503962134924565130655371233678008724777729302059626091566474775982269660938868841075619809279413342324157450092277044044157551827634040771919890447553530743500337311496116005776906373310276552726802708357839852708857189849017869053242618524151317352107147950159588935040010949925723378318009773124026728208133242982204402395270721201338574855459514313569247128480481384349624947162160658415098061541924949993262744823640948016872270518445233649779606519789055465045905573695052229935938563026714308566663356612647466890844853785536321249088565115681804888192410949048632698007878401868696274659003447111882872977807688168623957802287132162400033713481191749382370155307114448943462260883042212307493059643043355615239447637825502107417095972995933112654966313811707914553545088565715748394612044036220060716813331576628138536296096784695300457145366051549446751107780378180302404049937769410423481242006343628077468005970111905957836275003763950313229423745650766211905843443811187189493247294412204929862236791156923499377537058751231045787533906868001051205249584467098010428403991205719762618588456893669428401418488953416644961757120517436384022563329847451181939401885869964926679236037925006745413076418065483275576333090080272319553361952638277410239060971680743685831065749828900339389201147188683007993092026153264958447398513440820573868865709271983700521828031361432991547888208359240919187513630987987707841347277164522292330438820679241358926379282747832035695605819562337632913392141793478866369847318919092859885655626756297342994907637530672631183254916628845990019036306644818297647513557846116484790826075819222122728470343394952011581842705006181818919373000563693557681776202015640679803380967529616395325241007190405219076331890954971313375868838035585951446392332727824836862134706862518100176100040929263431410102941078174257783173284750786099118621053444274054747126077194413233529738492690438950630761691861912706803825185190309275533106001828481175102854744659541251167494032804383762486524767542223839235832355980076260197440363899103518443623302736048164673913407164372171520935974301023132435066816798018159469086255594247224504441569830807208321543440272942707694417178662942675818067666031358344332537864044874128862514917223012508999323170382027226034724769510477105112195162333513691733515769510885513827177967393456068703190099669576580876600464351914132167578670013800672908913535350399638501977872103661742844442691865228014639460036325118596227468768799573478641469376577822120458925139737774976588302305140826005734186390146382749092756622816093166781321516497677231829634370095374665764969016950710212147529022096810551692959411978096860911486445386424500696991220966453431335439107252839982727268623155630786646162865654174104716698771235034200105698359267759862046728307349471347878525218698479826064939763799503479505514890253713224115795940651329061316574210164415129053914024244326175923086577459253937273160235059888028144487366795085395091093557674316741167692772946297008095943520474200863273374738723685279742748288383351618590020104404653508659618116924160849528135249095934756777819155280726494349093148760257323393745819838005152386114967529770912133935048172108710125822995184294631950058590853453286880329522453926857821822675373920625206876877916292241394473323869600792082371480532810262873204639794693699853513562425624617640212583773080264474092927241260172910477787029892125687215390371226403451355462592872274994773259966424734407453172662358387546840005163821640074221462495103619601909714150994360197183122578707478384326835675168054985623146649471963963352781947723170181252838273333005205362332379833235848896128267916026128402690774484574011605163042665413185575729979685570038045188900973014440899100457934117585807023636614477895977945371487032800326910229988357955524916935946667193643444365289196249180152587604507783405728916238804687964199183034145357492692350227626364825773396095737042354936945129785120193111783370542412014496845904529343990553813269673173705533530131928500989124005806374116933129321252045875521781984361596218441305171237989168638747188728892404228634497156705482193165466811707739623591793837133974555016419491182854821492254656131546442687369859067312651367960846910606357252108975486579694146682371194982534796826749721321952782982262075396001128163409714929864278472871905301097125611914418331243715186397292919429959772400149605802679550275038585569801783383092942880009419288196201145155379396034869994548737530491640391186916450654092599452410399782534293515702955019607249054100404619965045904398487698031315328580018914435458457764535424314695577846447770028453636192740047084177089726276372534034907730818097279687528966684522277641048588009065793923186706722506070535147623555961134161024235496157812106434080069637852119939052497974638756023181749284483885149401887941661122651812475190346012490199204622001677150359441954944821098811384466193555768806732429062652186316809350159447819775656893415961513601899293422446169334498774115767270358168795928916641894237036170515800832190350709008368879885973511614275672940246394665098483260509280235336119027905649783011092766618549085403176114629009165993299446491987140235614714480346212342510713605695971245228189912909373555958756068954177541268867404253161380433925426639015907496011520912496251289256618783434555933546674455170666884176215649717957046953889577424511843606445491282730419308048819879859646328199211190385924200671113007306324022955193450510604780067477719418827011089855936661597310392457126197206140654857788536747807860611744526046385545178756444452030823450760590376471940217224584738562799948259414056917424985397420502417970846230435119867639826229232782276185562567492574908027074371673558604517643606443783133019215352947623795796053836647975765278624780985205352564914332293351751327987124721182419269814453869630018712735778777519126912649925537401737633417534725441476720455664013307115831247401285006800390417271848833486238471470897598535958172590958176214733269532036615155414102494324533730281673995240155014328971054214668668549339558683729989727460453529992334034759496892239669316748993521972753502686237526905011000053838064991981873725577591787322415844294274388165956329385601084873620528588603744446362033076528429320855521520107591122245852317268712593902103316755729500326132807996699726272577055382421287369041256727258959989258205460886765831586211919662782981667599624869918717631855526670262500492300254996565160781298928461952180976203998338862343933639632827911073770018354409517633645997603527504797154543436392917600386337450212278864581637326708599781142539683851676191656459378815551843641167898322476927034066255867828754131324776478570639281024484412645708176372790018847816414600877849129121587660130136032295894623471008206994439428476409789872117399524401837232158818562480568390409517830147432476235013941230746908401652525601837852234426191762129993410262104240073471390434514982338089377329589606236681515826433792100526216278153937053254576658077592418082401330379384875005657554220927870424843890931205417842220117931799778384688270807440534099315540387202935637247297875407874084264421976723915550405612961152581686323581840934669305356227728892614996705335299751352730265242243949078677954285895230473520975275518173657735786636366275912047712149120231513179754148390225296036029548917996051728212889356779309825797911244538169748915182636052134752370698021878026873331787889969580873520097888944433756742215027830020577434680713214455607617555957876979872613953684695368109893459962420347773335614586034947209789273319637396619001262066835387321786621813711200036519467228011013311680260730163904240697612661272609431005201662526182633922010669804598914882396554970164245702641465662582108210857293924640400688354830323892925917117700079725352444165206596057237395438161519169111519960450833095685798361204117551565464262360414113884256595833981503216491052660309138730460518291286018100713569766366594922095251357457855344965195905181494674082443841045620345580105056526424385341111803997141439820590130212800566036885974439120919482637794243356113398520512915615739059594394300549091276558850796707098886844538172706544887500232164135236651902865916903316945397964926401670821883798316241834838773307648979134298315521592417477989950909538342617658990952506883394528574873655717508687216172043860871245341158698535459009840587493573894689883741077317295837366401457950856354840435515180200651762226597097299193410996335273990827392096209959770964607217283733267387711264506629234838131495837732382135851938510088257523700698009744779970922644580730746315874759287666844009589430388285226161988042911140442524658483528678744503392677886344783098563356601894701497033252346103649912797185729841118317717963510447299240693812561258094045582382608254744160816087298894855027931838767042641182441305724877904788301171013609971628343998500001817433196316078152050541261253893974546673205206958867745383015702803138780471970816664636090813583232462472856453985910847992404724778868485158485029039221243406491681433297359263120894678368078087207082772939911249713468487864118543429275840473332109843389095192254817398502902527159054911103802124043427733740786219182610817752846367220232508539032708213245878206556881481116375777538892493698668331152986633618096579730515736412732888414433437029575840506748713750641569015905711665773541346502998461350310634303525676087142784491450417379870094768727169291877023304754879131071082019825485951378727000568745202284378302764830597117731737893278761462167501481876781213201853215562979912554388338299762734349580598599501376404166018398232085520507712036305924942816775755987607353630689322275798092923632931196093121775748704947839602700465748537462909442866778713910455043092702443137437856471582143525310754627517875971113615443479038082091151653407975998520643269347169060235675889557373483044324369672566400793901593979221460259058707021791839567164143359160195402809675018024052628182811797952190476129077188019003031766818850040851332166583222212422437980601862983119971728919957924999206610795636249840166076609469001962146966087758050403882529288327721585482598886707705073862521133302034280952386968975372568024700121527189971376538519647652991954923913200810284807541879377186113406222347715512427997236546962368749655635615941303433510163278866779987449720124352650444299331764704612298760599732825454182068724766699452813686615767156734850614674879966879604463279423259349480363044710328098283751354905936513856134802903514581217310554990343651233946619735833068168232015994831344275415655592658346423276474886928672033710732341702289919209772002629559714193079037016640305420861398037707945275706556453104768804402449415814892274895848516363278490008918531169920705349361529895827848275745759256975209051746542897053537100649499977233407688022133991678764801769745901034120230414418622082812091836778100218401090945060791461607077516606170052373494447287619182486480349126092138085887152651151532234307516766968734075972878805091160128438259152837191793310792581342512611801864574461849974310095846039554197572134745460651102147050021850571003487348858802980212692416288531352600014409133576305198727843116433597826968461673576262752494795330305183054682245896307793991642366175608850719735851271391736721497085261379433247290943680232926044726668919123873651967502856231076775691082781982496754821269881993824527505521394339047959090212082397143796253850492537210333230912977138500991673079959607237151992489316528676546532162405949585466351754697398982051703501286219725958337625928783403378895274659173626844526864962587367806780886692251135040940480577668384951859674989090145545284529834170152497351317749715310963849723070020646531140056268472231348136526429903275651264140887139812716547085621698958329963947180995726425121671164657599800308955007860387954170406507841013365181969085849569165545425635812822670339068797331795546720676847518470672746668395740832395735866069833509303798538308478773044277219363594648161432011832327167687882225219672563308601014659326414066448076618570516150750636725585629355572971113946449684784089511976374610856130593226889663302522061793138587321071350024067667822702657245169009702102660509275020956488095687478875152866045371988764601774165106331479342979150734787925938298510095970920328796187431747747752035456403539083930984416663997902953884720634982603435673849163799477756620346188413584938409943122454529883688942529909016698232365423077191539640146844668682884317963337973882571355567137534547218652676542125734532704136889887614563893603976456163475271516730224688276521784777357904633048877100445121713917863880023604120875813907025193139270877012816786222655124474477613256908798767929449089743917577828805163956720918902004542454367094995608472658588708718757261201560410559994821965365771878167912924414194197893600664933757492545517516401894104104670896978774089526932383006186361512573460572048664755475165585716961957274488134615273670040535946877502428828139719325507692752183197604291816049194763515144423039194406827373529553766722693336163221280830291133825169551159537635622584420954679921290606029565288013263142048566344999410343049717884374221237396190982513087697046516853649548901212276444844903984589903589716094694030436181039889881692330519037230077990239082554992953012468374070785189120188016579162686647596049983859136629319820338220046960100419681669057927917840839394022715476174441069296425079413680838672192008870661301623290441116039182174620607709398215277755134440259915621139962364752141358543510997959811094537009802351267789960210216279886081952913935973538742784660706603431049564694736304733941029599762739060826872631353582192427919302787133592326900259316416911014241303986183745758485258336050264605655972549175947921848370853167039888377293811014985022113346104987186498978862858139662794364661276155627240098964202517631265883121052039920283427359059563879543070493440081330246120922092462949631278571029210190473145053707871940969253205403834926615807718517445503419820257862966612083542985956995789674214917275089415293643232371839398988778351309454360456145926092994122066297675547069424047553241749977715279198825933169381337486250371558599562801174873579441274787765569719291622945295501330370824656851948533885136124589314542780387687531474224330156803426275068393488850283150373781314710355202455964643806743442195553441830081712686988598486683971791024385852976925352409285738290281548182296853402531731098247529752511533203226951533214724182976159987394936681414536946637860282282054611158482961484987563830174480324755630528988464841743262087086202379801975654127678418236177387562240290952223164589446873302345955866647350089836082400394570213443404411939081193224659491362705134827920526536579031442597909879142465632750251551080851061697955827502256573856038070769944565347640979722586551831194264161518708879997180198496084232726499570937541367446329754286821765450653519782344619879041471456772197890088821260885416779750796089120536923501616967816644143107527676716001881724561312210077927403361622924799151539970485632437656232369834135934248184576524941168880956621229662451534850213870749875436985249588997170027582538404458312404600110369999727936493778961725136541603181046551330743528576128814453011753681672629254713432619418042335925788282551919976250072672382670960838263035795394898794396303443661382354283945993933216132525566352093824694677248939443954141617922979324717411199703855496145410355947224607291493595084407196980035130520683407753687113294892344660166848029748010693490554275885227341359994097426079218425703718395700129670886684273293690505025207597529925730357692871463236531891630198879291109094119752706073909638810259185828702694153771597454980006399973510843153441779912425544305677501240116705621568780873059494209982883707714140788456011088353142599999901970996444180353421175358590652114127713449803943890656103016916228296568581717130199592502921636033855450307999563348582358892559865291240610430904475617511221032960651335694631069481576954073123371903442830289245335609712903738472331382638699573178703704872202543683093324909897819099233727938573325419228178412878961685132232678570005313277611918276617621492488005874641144104032312174102169147541707356690054942216139880946990844161217371404262903827133982178188386494080446336951122623390215727667393403709019852169915148799662205071012982006468669418037192814035552151926458285897407849703605284065583386030906724089573543946248725056547743195842789887380546666371261311294750780662028026614836130687716690075657362670473833144586552158435696834971923466076208135235837369295965445970042594234411189220381464848037407768959261788028139831663919690800473143480124435496960266630947207900041613065249410522107345046341848446653166993152514775385910427855272009456630020360316552100588495379347369428367188943060963553506414865516234730326433510792509877055500485150938592653838107290399789257217544778189838463451164446231893310592313633686896740828070219833210385906765803014216418015593263581707493783058684527194172589146599195259244048585165323069435298175842612560725937476158136045153485416691167949342827417367996374381138497427919423021539698594146487215601982915541055289429970124577073520409256585387590405231752740474958255506619931382203639806036212239013365047873687464328965475493901053357938213232012580241184306305491805793418486919294589800147895846966352064189530998255125331481654676346288575475021000248908387429077837469274347557342632049553276894298341840266358846468370148743522177816296519571733789704562429418519085794113912781967397527626106616570666268287971518355842393513898607400815379236990418142690648662828897478391016359704357335950705794678482488047478876231101056105888795046410335173377180302945962545986209416390862123548895640189676549228944262212431821091984095122732292005330971752101647289607070065716410968251329490547024682230804176984967500673796104996205741515555746870232700350725082683865840453732393420854068053105201609635636783449381248380957883651633589975754269395589983153393627931329101315209797000019317314487987921621987232913847545180737505791940583502197263263065485643073395903629896892089292936974361620248699492300128041005436797886386342776622061812491417489565295906386904093575236867552042400008638761452957391262857481686524144122808104056612179711009846582866848055942726686150446464369230273589366478888233767824712634489421544695946489393239881858301246755197230504318122121293249781324221535570399717073984650483648289585541709925658483060877231554242247294204113099495957131559587263348530698710140664495006460511730602448346719455720344770878223670099712024801494952392221308935455757500134628264259084586913282501742140688986741331899146398245586445241062010625199237121480580360376631606004190059643070937893230475566081260166819960261297992839708688644327538409047295708353686119555347739201874130082059361343142011297208205227264674235372671157968091008414337243746444629765238489634347650439688966708677998627512911040211609855935948023007716935343297087311763923975278245249713364177783544535921051703921375286090482219429286219497051192038818631876363395138037743843938720923613292120712487611852126693930806246017218145810903904854563305613038108207943356355742506937747604665902972878263263203881471759499974492507591483847655108142880177369564510347910144244546193614960988125185415158352208396780204244687450588136791189267325354061155863859529040930142849828745137850529181680914410405356791410336010615109871564249160421011240648239403466440490489173389065923023999227003392401918154866150137005491487054859691964310921229916966161692212231297629318781611953045282129894008207915344987102068016252235860872367908793649100686583575348629048280785448543835664132171762494112530652985644599815739092877591624410555733964439393337999175545767536394458282849723597138306522759342026542126408093510877780415551325192195577046326181238647680649359047708740314331928550025544381291331477385706236454198497505650164670222793773713182296973775568998337803562893331304787032454336343522200286221308218856844654670411645723777458462067120914147819387596284031801813592404718685859022946265059388893478994105641981133447085516781900139356993416272989494063269470884002320401047941563877304962023736126041685190800146784772437528369518377392116057230559640229594165256362798384857549719983884683601163565672205133462879302209932422247788709546762297858162988065946301017475383856765078673314328040267114717078320810052804125942782401890558718358357512411859959409502212844139698205864213234753330822770409597441604464020506610153461666967272774873807896718672835545090190802173019214097920129370037704903624215182789618127426487871511256919298713057390764519470603766349424775986607828518614892751708211410597467539787071608229902306188565681124637448146514831314185497171658640947598649574920840941097108264396992539574368441770853491456724182254484476970908027011904557071610434497996897590052931670278851517584054145509021248239053157248656981237049845997276461953016511808377833702836087166405529227381959108053920465324321983799710785565059951195438844411613755455797786572638851709617288721234577158312211296725435537134925812734917162824845419516124378640704281775870136748297603604847137193398058711205887871715762788295531804641674068944173826336778124106271708614534606965446317042479436150431117435793250290756732800226035171586061206275072375278014175992152814858240137287555709943402755972539327624636362949686834019380443957704072454994264383334133975684312336004633874961784399293968751926238118169500130042328634847317726567270656982438265024490864150596803956725829408761480944968330907204816967666224815057896436811529029343020709522083431384542367793565283719511454658680129767831322276517587472029951236858967798002459077348373742345679188410949281947722753950889190981277571709643241330920893531818565814242582350997739059762673516735769651646430559208106689970751800914054092838109054217821231579529322594873680853976238842785620596579562139750669108512243444044201436614897403513621865158745826402453618000097902226609422025815911252219327651146847084235983055646013637064645518943872245263770259304363817625163408898409056030972395546531826166286161220830046718741744524174072503800378089752067219006730433096072165872009795884640162067822766525506038146225827068116214801946020294857740944079650633981542935109780629630907651376412180580024887460294960891530078518272483233128491491039970339242704840501454217992397959844078037070674232565969512395995218824605159472624525172026450339958393237259067092634780590731032578149582711185847555933323622442337329473621958582228560849318470163331883597219340386387152600921082541097738767774051975226248514122917250587670307243012117724112824683918260595145054701682670193849178793206175576686065536748420316226253358846558168165428599834694279669082520957769504280641651964652031439742485777349672245163602017666573054381220659699509577566635731870596128948172479358543639138993927025249380636931543093223338247840873615986982198653759299611501160257138934017291082761920528655556914092490012209244123903870723483096193680666334437944745458711196264534422456694350380330320913934439001359883049993785967698967381465529367853305984523701184863230253415690774174716593514194184455118403711411258411076150342811524494331352271725516298016951795384306367648145959847147117027185264820573580607689695855740189508129141616400452261706981223653381336373328690683002039737686966661654263237875902247595731344333972715385986073718817806427283116380411035886335752769966030757520708955881566267816249728862038741728160260219161905150430526000592588927795164122463746764367713864001565902900925915865215244066181821378157355885756149816363325523062736626167142462104234685872991337249749000107992587884410674142838271987117283969562023975554602644282328307623850911129315293533781823422476044216117251922610653982499983091543613290792684464673007320450728373477746331335698802897965671933515182084415049315390378028346636860501483480623342993870935707514475308208656425796017402287758691703348437789481306635814871036526457975698699391564902469428762801694237994000042050752342163590201285181699887155288266575517710329247360861183143994899763141925622775316610860222063437450238532621067781920754713887258167093908057157966837057975459859823158253054112221859600123398277280090884906105376574716572677838418241982837197634168299503284377461516862738577171338619886120763030412891292980969850458658078715263251772089803543092363678377794622719777328706686125050710278095075567691699536848963059884594045026992844874853573538376386803488668058666880359980805978679554741015860520435997975929178725817639631032143425226862328866653033610558389938091065189281941600143584608539390826674385358801529067232505287178522197003599116616585529262750455291446968927974999356746098094161651422583090788902793263535003772029275895662342688161543722070722763642230380159671800070068936175127240151831541472992940005775906658042352391296442327293205553194843717010892489638257080030507235536441089050887199793076835839390848501613409855627973975278482429914850503005353147717869112535751316073138266591935929871859453639567868645871719667348839767901401887537868628866971411824022397338900226892939785919511183302325820244183367166383974304135076327436219794100151054386168722248920892845103556597807738399938313620774258212267930141128329683817033689748866247031882341066032198269378654743800612099272003389218654829218956867230016007699561474847470446900769842823522790950825903565981621177463441618880067087708511129203340832886337714089101928210046280989647082159227192282321920977070241942335959294147532734291068780911886279332441722687296906239786024892485322402887590743748651567696283610431326896629051321987738197717115130266019924914622175464483422082647288075910787509757288729912398268279127300514305240570812192067050540036956751658087439099135116150364965824707722504933498853202837546995178475493830072848832861805416844846247743282685270326727239323985203622890730014852029929840170184544905751334747517606258140537991652558658684310319446148169539436836309804123026975535071763555150536699216758038020918612423322182108612383249260596375595308931979631272905854434539614477384034365848789512183904496621985482184189188601258971222886005205521250850612482114243739314799223643403697243639349962804610230916566021309794060238876740346362354970747238472800439457231358533717723111925377653399250325617611142565812751286349163331837240827964826248548310187655903536273444162768220853252027943038691386719796131673518153322869783972700039668419029455144266478992146869209845918999364607095027972731695476409897317630942411981087538403988181414802018517659344801870578176258169578289092460666886221265507215038693028041664212946331075817855997573712858607846539831773215803007205473249296790379652907917147520369050650533020884808946032239953663339399091009539767373243683950731106490829700067076743928505310636196333501424430643631423073375629795640843491038410809145947521648796892138012294884755565002060874957987747837082180495578407477040169963409744142571531868240674042442077811698336015655515326611671333510164893662283111546996662349858307319554352721458706662834655519644836225297796188523195693635641769250056187939308123341587949055770159258385781934859551712445976684872133938773241164476924417472739818681714268167844610887493116447250128610777305132453822275011829715350849292745029184918025224113842120011359240819121592411028780329463790072822120160862729345721023459015404925376000312059193620031658715410269548730052246092954096498904052993604819643397923267217240348828315396825927956131397440861931181761197214119237181943541309640795952190362466517103873519029199418815170569562912763942556442609146235504252860256944297672895657917714672060390879276298113865025463740461447956726743313453234832402870896352890590347196293625676885176001347821050923639565305531373895371855671908314404936278996753898610851327210471901116102972497300329368293086267965221301439278626663191624379521171470014082935974676039561299232911765161216124755467672935261321144741683321872001327021028272807671868301157661062989460466505632410279567619873051410309690327165613450577669257407934433815977811417452377859506420118319392007341183373390216418996499840799472848954411723863837522546710904179965062383982040661176076507457302124559086669396176371015723928470423395763806582023679705585358504318020951880391040016708341153199523762998044603757689939436722982378431572073108835938722692171842849950458675165297877154889743630941529008243429852639659328755273107843047382078476198319565782477682705311123418762357123613257321218980767931891626654991249156475314110075690001260250592694179701970869877607335807414593524224421767246887964176813462885002847928864258652284088898385936659240416112888025277674284953131872057818818570355208415155721747628049658709267645866381935339357603839978441910947356702226083861092240994728948656713595259204349034761383391584207826428470052447683432780836398413798347743634247767573587686202211515923099578768038646563822279773992235009931063550411442733308591919757706245260359949357612785942966641349753727656124074339730445207418405035582995082552228905477957055165548932577874967165187487966488034554813476196123544917831121514437099414174871612643346029600229758038031959554031129111688892212076880678927532496192358358939696139833372957221560734253945084866060950206780328579543785202228474258692616264008043201834257867835748282226311514222802717678585791412458505603742648345604539056767003516155996762035092550124887218140516064840442495130740110922343635635125850666227702050611997979543920076259795907819006102777149094190193380985661925455006814905691934913778584556724509282720649346984238321247246922790055734173879675421255839327998115101477927595818648829970743956919301079924074915841321625930761943066000307695393490840630951137221361662770981829188621772797030460207258587837739023046892571605375632475703839638605173942277524893490284235269213626750685777827153172914305485731352323831203003063551374038802392340760984509294758791214667555082614265327983184740560839365249686697081321963965709202242205348731071546567982218862310172330760930450049635452227348600482110419064722111763132975764217049430355997928351874901625274686859615472606425416674193185670619526472321371776108526148129994481074982581271469000347022279251144101929053376288955324564159226899505406100664959076948047133375493810813420725446163807326906999962436792307977134049726047764518974386307071123824859643838026338597821092477194461874682555533213456063483986470644135935510280845450415927350018445776122713776702054229327735836572895727752577887893657267776171172585379437656872928156899008862474721267120965187780701726065159413763791624050151297713941656703505303439381116802359624896318908679872110238418551226917948086787611916484653906951569421212290886822041674223965730678036751823174267793505281426564813092613221899601994811513071342629520368851189472763137740353444778228636788698762586665165281956208955857971262586517241268236663521613704109131885168936866763485268794207279515185209482515277814212894571960178757006844449404036177619276066269889306149390264557424178210389894170193084921090168737643913826842817259558012643539209699815259284839171410677648155183297302465736124962496795783686772839130670070523469008431618681164677913312075926580082077260470684492817337178587158813284082394451120743344693587636177937374820467778276459964161946633285320664259822826566149447045908202433237610939805938650346692531927743716194178960307832458741928349886549927212943800284319848566987547059416272920956924287736284970380438658002840685652543027082712925956339902079068917774854947920208478687194743508409657753712622363006431017273261831661427766798366720461871067444633582031685709064638446372231220392916683353565829323552360398613463464688717828143071861631135887555416195897276043599980667105419651471119392876205217351507243262361023495723934790467932220795234640094409260816608024828439266803284152417903589917039614821614909479519571165949956291109921511716598208527284399393454709640934996970488598680930855296073722836564472438149054126760169250044967912296367130424670117115117117897638965893754507769143026504227085489372459638795414490930451687022253132721401743622458066417824451267304196354151390214470225888957977172671031564185581849837704836438903908377386962291556983459364621437579060604530823637205913987346185136553948894747588209453230247864059684047791000256928240457353297421750174893364796020032215804667832989342401922258312290413006414042144326528431911626633264729116830032697276063539223236955517844029266488313721599135052099793585199359007491187103971197728056375922325031458751464357025048302944838928813867665799444447000082051999148930176902784812778902158367818680609472348762111211039456482306518313582351381080880165918780623453534006240025255286442024067111172399539886705214230842285429681322975162397204620123133106536935827228800322182986917402718491043698355638394178949912459200216104190952760659458456898169603504827747353776982665581195991596474046663813450917055156264700423988884319999685618438308055381592564968657877926569118068412856809549325734875819691982838936745903301300855296425577935015295361510292585259218160309977239306611197626637714512833286124816484612641930670886838517460332254461875931887397920312044225583541761510543625600449212551811983066424523371143635483858524795308951362113547017724589109674651400714375087508671339228734224093924156562352283978902200813804878270515657407459017147687938799009948371385546186524054647261344899894860819264959861853210036357446419444937612272060649663531645799148441660146999127563476648667429002506201166975715239749420793279753028646897888545106268806253808353325167490547621038424297945677064226028538186351037602918004698968440697501086201492316402471015093699077163724981561365560350887162636931033570188110392942139010196769100681660413338901750018332017086969456600173060722619771177289212777606220618898014889807190641632807957523759863356874004811010951205865450117672769109918427079931916887823440095417354537587424646660374623081597127156548431394498389342591058991921242554920851373743719039813540003111436429407908887379085518530872921314850582146402386183425739880297492794597042289415448834529181002969892535868661246430307579332092627771186021077475803512461950988818840558427416924469147226243259797597491167645491672671062215932650948815764851174210882916119890796793438701990656741032945524724247320435793183909861679983140510948788277714363039190747785235345178694243040266381243833151819765440391837716178042568070420670823529079805647270100078823811981949523680212743845515476288525776817101665188312923332871710526013970874493951400350648334632774000109692563857063854406166958468312098414131348646983089590312605285547767491344053231539853731861615333073927818592348985249133651861578958264984442383476282278714260707308048516040670965765755007543528581463040045964176777627640659154153572506145152041610369959513040345948761206714343740510845991651901582980517167799475591900372214664802994890286288201977489167413750349172986987676638588047148484736173439685107060918550387022666720701708447987699364607428746542693114491366892643455538289020553397700735765171682773176361613086140993596591354348426176225686327429222495384886874659941255944010258140182213224461488504613112292417110617741681210232941312960085975715212238260029387221253950242432491943425132143587351866458982280107640450119531798146880955798516653419867625916796287789939985845733867232454803298308750980637481394921811917874476189959294304829656242868047630165000846113901215747779287001996992561087413474201497243854183327552574861080319303052802463036829710500683383133505503458216379451094675003041864453701152675083171794509654659242346661160415370025065229060508921486155889257885383542598556147201251448346613716065227427257696791721178541995615810573319864287937867994275335932821732665466353439594688983480412268857371082383271387968666042067640242161806714032518604136940374651425638424684220476052265262701766095793952491593088973156356124323600787109726644931860241670342079607214765841515058036314944114485395899448893975389907598335331559728999840129144625458731549144670267653333292668838246280290392133023145735119260472313103120831260047362006746812393372548054908500366211243244649126765522417453527053750378864823504701561825391813289222044248686086025660789637424258840322004800849372900981020401218064266693129681475270332954379524556871698222829773524765516338176538037997133104807443449073593158993778974052871666762129620622605113189857683572070393767360536644634333740640223696709572717326887711887165097863057806553138619499963211170210437164874029108689610961504549138116393036166556953311520819654960579938914524578103355899309146906814689597285527710455590841498604598525448100382121526676576250102326617245572031172520743529233914000893871479021768305787313197431301828944790094948347528961916533366587346553772571237371522503078515096357940069472286158478555894577838122643427210015056393006521415132292708536266151301384185181081795944407703715426989481076102170756154178727384500013055647705533449382319566775542784814297843646280876749322021869535058980199591807960931111167676890292731239044186225538834330681235535311289359814256357824819246746596635108737801259418901770875565984493459084463933694141354675493738281909730875084363294775220968155350308775813680711594187719245016791072917320609895344735472401191031170555413030690887389115311173879665246169534035209272434829141955705826760561291632390638227790941452143146249936060450776356158699537622643898887230071143140529253624513954974547102062973263767430098171941949149666568046802949267274918840029074983724198767541581515958186773237011449437804207567504625636055228359448974544998517841791836259753463235799117823883775646728453845000879395187241647759562778855134539377292042090819366708153430839283225481003569738145837021408890271051494410957845511296277475103161614521098606693504851646800029666149374500533160657289314673920222246698037647810294148086264686960260532417736853535549782520453147361882849230208798740981540104712728653246002286655062950048509189923164278539173664867792258958264271324230901421954288227400501868987009144097562763414155289561135072847494729809071618426446421759994326653855828829280568726157358640411150268897414445464869239215266704836591107905342260041726272754643536473502226930570835084731519858322225952334845346638245064002761838842668845998650683739227917999439342712764055349047233195256047642634880686187824078716199931980363292312707086235822178070277599819911407620270841525318811940464709953511511942874676502980813196260026107530410286822495567291325087847440721539273120413442839347673882481216026156778658930952561280531675670471828290931311163794882084103479309255822806514943140839294615356043569089625297455866300248728405623802569410071260085047678246517663917377631286653015535453142924997094200756146378419081096475334873812290829426873004238397642323694860095002491526230330849241613020229054003017259846643272429192240571185556887666738512714193846848076446060401274309029474623572830069550118834546418820311798753737635667050595998994104037096004324969463783247814746751507737864258859514309834139591975055266196314062087012423697890741200784380840154875816624451309153769938602686324733552054532970785995542678547931663527152527443750686838958620466626237419269897645981898841929923984330698588895750053399258968862042520339376173607876007562816612336414970073986077123009125893939768672236903986357794227152800679094692059806148406527014586205236032761059165950609056936468172669458853729501789990040161298570586162623548004091340822919470250991235215403626397051452768592935728922264760772640378445827937404014813674878405505235374902350746056552000128868504283325829747049807673141618560893074328352734057953312801519201195354682065056492402425677924741014588137398921840215272745691498648528348669735698555956095871652780193372963535653630865432549304822093861895653816537259767316545869274873355176044719100588945692012055567518283414190122326944461220721926307190663347511084767138194103577675005819403640627875266259767434622823484390810983560801423707455881400894919449718149622654064838116303193460799027393204423657595184123419891669508948598463925736657175358891604489583505141290372397805722401668228639248312597059498457095075779181782977027891362586192884300808971077613263914961444819611730992194311654862074574058336276295448392393534047771223972965639916780083579062417322990601309041344263523870727926384434180206320041468193160587723258312493664660152942521718048395096019690858793196695544823566188153541169446268173395250925839049209126576735652156177350091838060281634706264365891946341326314557678782383497141404604057332927385873139665446767925856536608759739961296638144075182841256707447194215381060510656704264149972373897887465983291874761435479443942091882664969856696120681262592807121117887734332477674555262120741787766159930323453612465944399767126041464877042986185284420849514655876126152792193795315604576044042534544847602119744779377158022238653614359190705605690640593446965044685699150617260287440079521669289128467732701670510390996075515317914841945128859022699216196521118374354653440899682935713933449576643571434285930334014461134677640223980413515239422775856567225941182555422945637988039196276651825049787342008110512167712719837746197286753862653872196947191836834513803318453973353666522751657815419962713174133391803656143332672620264130424697014359784662251905476320122986089578332720881980608683158484914956450502197816803962583773723942395739956234492787780074547649381644534782369258380213159914559988214183627634272891324187548933295908207497754080086236518397364169568214922529048445225701485785263926409865177816713463599785463817787209511371355007962194779678450525253957854026500576884597966091973728973850139637471859990878008615622011117827606599416078776278668349068176293511225446654749323931106103611534868667735585253204464598284582890343071547374449822426435845041635850585710049866840018049781988223734667989311560396765349231360505301262501678150874913637188897013117761462653603665616029052013957835219309079899215154559313728760358649735225703688745346258877336248964181062290110937571125153183686261289481630598986161388918813134212879525873944358430877483857919849208767331325535219250016389897591792174684685789697312477147598590586859805801785125185963688502822393869065818535425255075412167243465581933514326784355306299225524344285512576452308038221803971382388686449390650854146650864918196019063578144262034292217695111767641777947500875249685550131617535937705543917723567826740076568733475082918998774336783845989550061815005685585112236822922942711965373929282332744828420387859639258849548273337775942743885489617915007601504054321099014916478004269072732144155357659962284087961881973574085384539232265802249876192986631965066246450201777917064857868403592344253865611373504071855266344170737543215380170391015094931287332528511820112684242653964119691686021637863492764257686011313279837365902142019154510531591430609973998903637736742915175425182486379094525334724974816457519844458060094633887708714748436069021476582956587101820106956880368979257155394757580368157835122106413757771866327112379011667284817157980336475000812280777599220785016417046846421261822610851168918890594076741088494261377747015960224277393441054429997605089175743877288413583590810456375692658899164919797217290155666956517446837855912640230637496807449409867089456080152781958977208836002036933919194707677918003314656282185812397786624576987520889863255575897894307715470237748880125447264603601334033375646799666604563449577271718680949188458036704630939074537760912744108737330644884070545978207108224504337342957910819469637092670488681927916535315967113693252021987862053373726445190135461098275924226986990058746410576887115280598467467971899668989574014680696863716919210135048340180691276823519771254952907080274468577048490111674581475849235015455493377661637785859263954981664055632396298198356994993014084070936577969294771745470687883476547776198096772678366343071923188231168556393993199081377386186808936557556702135984618214448763136796750024426938688573055297291973420496520332994859914392829791879577920346003298874673512033906234391932250324132569884089350764765207162592775366204034711208544012124820485723155862333969212749081734311407646054958438227013786639795148400109595760910202060529990899288299884783917513476385864853022997573200140131936252155130012321554517755986782702599180111606071215505091112092252012562624108907424115299545413458646888399441588979734715928805620799581871589022415586350546766085368152347989696658663614080972305975270481496035507286145176253010869859758306780074606854172343481508459755793672796821684913649132766795896924003088876541919718219109148912951940333499726789168010358294462038590130952985504615734547172225706819961521647692888371582004482731261452467209304402029928204768624265661023965652588623831280141852788374683263151192548254455554804037240616248125316210000829435873801657750521415832988970449847848266527976639762102840797041246097995079131452505527590329778659309061026662054339335740824424449260025120461541839751815822190729111543482021677969930058280505010999035526866557394869605364365482853538930771755328914532483729502493880113318351535280426549948978442009324360988443810420530532221862313454525316424930338795345262185667711815951253044804444649574177554193510144814508858382767285684408301237228487516276820776937305433719207051703783279503557243047009120665820264695177723011170868145882104443655473403572849845713823629350479431502619474065480251444372204878580674081194277600236913097612575345608775025609091362296009965905725229567861561728291751956537437298452607598268079757798445899718223067326737350651243290556188857025357835697603880648906599010479764951062236466121984466161708286488253466628398279513008168625700112206946342788483842338641924955852035893834715210809062156517258000045542992663431807647627738067230241306920452898114110239770302315472104756461086012904675583344869461585986787513035548853112305680058345902736958849804276677170369993256505132095271619576484837317922208739109007148304938993314436273844841199709551223217243909706496170549210426542716386312272265472143854241855232593350003796644291772761686206081923574718109128833956501538373863840355415843075303249103677542967531779358473827924305748718317566394235556369310141141145910957136632834862120505300016801728722409660613910012116491635564867014539775034524919072320826636119853154470237296982538694768857315788797619904064213867615539808953124121947726059193836378144628034401394370775782135150493262360386137921924560353111814891054165290633739989536065661268502078109177015874084059466235426657361232800180260601264113239172112773328021342018956856677655964305353409374666395677395540014757070140372264225342278397873742266096981205263351617837792455139638656789970455775639933278768969846520974982648213381157670216416387051500875170988625392017218484418323528202338223730739670675200784527915715613247411874197584314543733493126659743143988508350584362771647169532176782390648345262029783597197147643335895594525019280604976893763719899138793244477581617763777528030210118683295228043742279890317782491026025505962610621056493186194145363368736560434945234504761223553895999139520914347575853942477186224272393179335431081989986470652559874159508036632552399045566071313551109566958023663347951650012994745228693160294473873978791564598746688074876777329750564915242356958228458045266659439984246410312405318778031137860750822379747172417087445249999574142400151070592447876666699939564364152177109361577191362229441668890741360383857600311672796291874715394098903040083308325021605913637679345486540498731894789146748051684725205822767983388276442499058438746925484884832050005212221398590193987251039036166312757173577411117538779289630493675492405019618708721473330453889307054804875431759451486955672500639464541346694205618637101719100090177777296190390470213464397880532346506472995340528415626733781642589568426829595371876564461986848602666041953664973369523072929452363248458558563272533455413002310538989538629367867711999215046405927807730855218426662165635102551499970589748413941139260130284891916120925477464100941851887985627192603533351290428069083664155703172373278989559231032070333318341366069325471729541841625052766975827479486531756851330537656675803519104370699700931872153223648489762924474993546076751042430859245586736555188986750398921408515741552923252671852182078783002426675947419843530083256531406467744833501283431046349400197862848190152318067835750624201788602406788532862239576315000061356554918044033724431294791022955648725103786772118680894366487432617523208431533680280368676965533379751078527774277484019239650417130387875743144076240949182138113380757597679685867400099412242356088110289228091949696014308925793507464169550387380090056851862086646388515636973425163067373607595595327461593040626451533795272280722246766214522017883735587527269696298519889697777422247908252625902095601862233407963746704236858887196896480554990433154374677237734151079675186152864718167864803199611845756512592234961269787185137097244024676738380869822217911278800685810453307966401607927317959843438827676454020976291241673492718203382112405064465772510326264999870979476268776471934962095958783388224727124338088598872346605079217074292474242304231428283090720621319610604321918754170467849245508091066106720131862121177158843656664344955820943786970238711887135410519720575230308730933503223365789343004999631644226514748849607003843759024327800355922720007468019032157349987876898304866360383978987021454573878180315644280899027162021050711500846969540950726432440688118538139774929812573706442795734854368537644658714315641302557221140017611289900681185402094892284901830810556238262554661293245406167889702342698280152150000643377674868534213831765175592426089559648830737265070144007815335347069314852404573991342269361607156396456073543830830004128002748596391013637613348009410715979739692362116186068589853002223185014148926459861294889494200226755638732700698244337598963893936877821518993202231897339720019330122908602586144505742430927937758710407832408640885156245418447597849296566615908456050080970375153054730382538222775997231206062105362248263785839923443320866327471431991955730290641022548465335828402311770631866647426616129732881211999245084516263118321860230483885191556899720978052729825942821593458719604592027173953095351863317618589714899882487455758928648888894142875453289066997080047161994818783289185329429490790540484147826226867798847598488752366248835479458466942891531849739699489690676251599828603920162638353496219871366212482507872827213357381002834594484789834744138550639250378262822985830267707494949136166949862312059780166120586997279099403849274807392024801619847745931986066327291367810015741426570109441782507056448855919382643807025026717052558692711658830252643989821393574118391037972034614706101068792234864798422182294729536594094202283680536002541402689905945177820414534629557568403516413101864581856935252531342017699418731841133912702704556010490689545519252842464522405142587844133609457362160041174803148046895882359101446259220617382546556767884165879288060428259100515983235490816830678154427953857780997940979229627120064721349831747339756125336181252656703626176235254023478146626496701347267784704391384645538954292732697763570138328716041070674101668774249173950253935271778937527492625072230579402325917592209904432592738052122578910619201391470192945919149511579613234231731321714730914479659774589331592970306370623802220188596764392058886355856994880729660236647367068789030872305278816891583074869110635072120566248651456412765377506793376722062582238092871135115285942290474690591202804742645883760042567389495494730141946958490882193934453284173636619260539475316360924132408133360599027106612225709394895047819258887175787585477253715747515663832687637391098329166055681200528841978738280598670465903762604311355652829247562630246207917032907865233497460342572742060389258668014837623123696820869993157350855750992126608750996084068062745236680180280800227577911155448721003536953298505987003258667244634203920741948422170872358854114778476663114606289358538666557357327787755629671012509475544294117991635286259840021069866069466869352094415295114668621050737538477700766448826410734311147746438433502419180190319597759955341423330972422736849781262145612886482892906140139765435737791029360445162667919253860295587813741914001790931226272521512677613510103507211485351738069732711039894498295067250641800014848571776953139550737863778335226879621488211837763181558783565082395620883138507520856349252370422612249410967178464721335459558841317249250747639037465926191478781965079835859047686947369351980697549930513062973177665995012835955148678258045159677998371648719309508485342366451002955151240115034646214192656875694771833480315243576591472653067546294108084370747306143779374026862642392039303018901522306541657997222633816299216465838149644588110294091766764583159993275988986839539838829757379686760304407961737024949276308175378864459745376582072117324643840415026861603622652573373896503159310490222693727372570345822234847977210069091756019027158315073346380198219997644374768331439092552479123122505482221713434486050005681709884436780550966744927432290082912822011761256800661752938968759600562571504122696256872128741158048371702610670100779826836530158043036028898196601092550560282349826609307546528035368507635427546093090049289111896318138899744226020581840802299906115422697763708640208019657772913284194390039316642620573416110943094995289626510399067394809892727644002132311970849067998770537367501252882724919115617101031986119497249660049985484827069803089667711539705493554043424233683954066717244522494828204804594045576507282665554493096641605928199850252243450205714285531754458812386365125923580883283406488838469692504388413390273209006027223866647376051978796578885995018716988041462809058503594682361860001411008460496137280252724680230028951584236836116326959418631419066456799657647102013092004774555600823572882928488163054592119375173468134338265821735469332522659536888290068107980908366845427358575777965583970336661501245537380615289851322848284388528331429405663128836080772542409197694176475943664926843710687798711511034061356144727412574044985723850134805420118288894068233657038893747441245861166761016977828933887883113221901581883889174892288526265703426226229887364415503125454877651507276323114664411468893692952150932995041863077714811255930059155262097120648834609240714757194791565789672581467260219344228042847625464009864219077670539793996218102087316067559516504932170731231331652909656133949026449718308529631283221669852961909186012981094367344057722013127464687498250508218273732596021215722921238442993415129108305529439521184350382317352048856181252906816251574583992502343767420820369667660822583293715199869312808473662151256455057708298460341136507522543514681954779194235078612601109749896856322283156722469124114915477267524030372138624374084442857072907336567526947564550460576531370766584613565698639007968946923204958738314493973862536896292496662718672537772794282877323659230169215718951700821740454719889861423684325604035546752380239442168157243837990745579310038328437598623514554592044875710297462756885378950287473504637587240692093188050851889192407518830853196727172180069086824918601337988306329936933893680103389083951093150104878945760864356266815936337032454024985218618051724865117383823334697068535994547702132349892561818377844531133217246355364830701624621115992437643684530508989351146509753508402962781077201465013136560839913671355904056863449701604366682919205397120359991615379812429330684154225531519987015850914574423048062507561420468476391089236373530631586523713722463281289664223047815933060027599903952122648462891191217697068451716483983420797423635461793050281231379077862406899027767155492781722799442278895640917878197282874161116499489909684864504793093681539386462396725305693922331393796877711326615068838468904215363535270857063768840770999976790771107494496505764426299478752768426950504081645292023841225164928458740698416171695397774350246791570361972712091258214702306021849771993658544725035889022888337268831234540922211142232939532538829485327067389748454207264244874988659132206204251931835984581352326322329655672637614475587451621169090846837223242291404529610480694405211258461801219978432603528963657219957715786566376947749175499757621548878896382937614786202026857298079907102434522370327153728344821194543847292964852962853417186697167222706594221460350110800342529521884962282626573124846232694878648584846930977055043664325203856907196912989027165041651460814566942531118705494060092979497378034466068933266413964165486947127309125530395759548744602682026657577743167758560225357249607042009161113263886407472946768663526351585701034989419774110325960750920244416898686580075235853344984660370722079288806437058636503362958941013274938698715818104609901827297235769568367451782887787276721964344363667467836275172505212246128221613221934955053737714790951786690039140803802050524229422017798702338693693807069195920548054266750925464237270259067093191157745458018451708830596576259762765660174497575169357731005751300879681028226552091326706759811926793136533005835912999412163920180085328406619207070982304844820149359694829639011872760902443485796581128034388174795434109781399185178538111260503032966947984800794572915467908355494910394846792913561510124487277275747382117907480409453418897461218218197443623058992267156112097452338788630990302317223949536349332481860925950576609452602601959067748693115707142858027356941236057144596588382813186802705168830692878324230037068828124775843583725646586585807214302080478240165063301539661934269828551424341848489347846471827297857427031349592233885941602297535658559753232863258507824864486418724890943268053226872998139546056605606514106551465754642549288834498410956168142075486720702773420212652244369572779271683284106461424629730963265978892254889730672596724454461719876831521697000773102053982716697083861721295830815115241178175279278792575127663117066881342934948160726999336713822157000736390320418094370061799166857671256504924428793805806964089134954995910381916363476583049000920365372279890579943586148791570220710626840497703023268056988763712612526328724162062791649395425578604282577270324412251656180864125562944477581937378273606358555390470271525088632585822378495410460427057424309187213573641518379643871390743056824702192251641341286333773384662334894571543497942300131822913455383290666402753599707436645589245432527954939000453535838176715812532193349537067255839752232716618579628503942597250057604291281829178540244148662914539035001264084358695151957174389493874454656396044753109780091776661985669873035496013965614781485119595540096767848287993194090768101035052297984079335157260662408782073350792314370952798401019840952475743782363716823518817036930813546290661608182479657714401831352467311342399492536893967488176927485794124429385689535762315380781990435841480699461310062747145230578989468000015186054804626051153347723354087888962709920396920636543183411264314297590556742030894061173153011693929374967645723713996064184829295846105239286235930761407380289602875579223969126967096493681363875569613702963228800916326209481708963358126414618542640114984924687915359665725189742258942845718077652954966077209526203037969529218634984854348254143835167450757866127974841785999940874286749432644729724482520698916489446468378973996142221328600689196743006913142308135245771095430528018636461710739608176135484432212325273064172905694784463525978847333134124496361784390251565557296520755289271274058487243480909231967092826528981136946003692939054677662054787083456995945025357463900797123415707155181793390024224579791777133523070511347009862294597183594864433503277041843452969444293068116619159065074548504294572933556158438462344133695611386417216593450780019540773726709165820884268567205173409835680892203989823173733903989248053824019192940847072755114028994900559907020323000441977994974778270900723556865744610316758885452480936787140508870182572841072824394766226602815347736632876361598745905796172127811904915241373887071376683517032364254434986836238919692323491533261747644654216998110738215814398860510145998306249208434975934343847099748602687197723623299727089164005842062075811283923691087146822842317462964722744165665707985544950609607629604765435062344948963993449525319303004365364253066645861023868015610920995673826212751862754334837917614510165233818673560115227182325539693376685139057511732460913788043577524188040024789313832225634949035857225633029512704254058430831432126079098599987017932065045910369868242348038291643922757019930474855990966397400569149459920050154876900689816118549673689094566323409957358204053628379418020866624227951330456681640032985684145714113541217605605975199431128223796579557038089580937391392133586477042413465303814824074847301941910269526600797786403331435220127490243599762332529995344668911455933721411083622089754318280940857287641237290575433176859568689923770499041418460439915223252971368591627848304737570855646402235043492419921031196617951161461739931195923911017034518433449695954492716718890585229063163749752997824836238347756496527244417734790687160467559389914295255556895993401297718263624097475344463095232483298122131954679116277001285424768171290488911811622420917171545916831286478345013964023045480367314580062042588632685826334724873241634296473014500146965078768952696868606869990993329640562051657888018324847014539465511367213609306772921639913281740727899265298634955068246941014013911170050439464493735862441210599298577354015121240824694670849005864600250103241707233609209495622507719261171320227522656644405100699804107006558934415729649138399355209160970040381593949951280113646199419770881558653092402563380497690249575630282178495233684094121375264910708652097488291997000482402874313427803479082456455227610329845977536720399403790295976168425100228122189914301717787821204637733716918809135285343406089787252135745428651288736220822243585328060415835376418265136347928786994355194310537156645667492381152106201548490752346081292666067837527620049300374298105844554178158107956820097460599084174878309597408052612217678046621288072945881045619962243897840486543379547076961897042389191333970615128373103029523283651117345053231144179230247079917356848463881640236760409836007095706452350377609460532643973407153997361535236638658047346130348847890933617786058261344965327170800898482480518343934349306353562536031839669293952704944246555452469916230019117165899781680501226998136281222406279050744325355986635548256961015278614575971866997805286871224781985151049472981168956618032414216047224311316315310522312933145509009394841439837586263253096931888468793620582525521197167031440730066211767766375882299194414074533940535237433459827846750281687606206519405797732607348789389430479095346196706686332378296131313236859717335083666785330564840523582782545064358425854993850851837976228395387840123743006185213311382982680981811946505628547544493245516521850381896307145355496211387458476985278989904490215565634133668995964972604670810433922428808888192200834596657172300127909381523625057861580412387630348852542068970563991938314978959731616208846407445036784953972661956201098447125123628868833046865180279769978055353541033990709948356389939985618456207545531057206617603111584006999586013307680145988266730113705592482029452322371282936135663652753592726609247862948114362811239279457663605069378618421866854084875831488435712080006705379640758983252156351653141421165064562936497420506369768885411399919606051937929497361780050724495654798466185274811991004585460793749298638299186733343040012340986392282184429947242714032644461549802093306170291665310012907942791188943704972294816747178085196453274242621825955706928271392158211101207766607110695225396533148122090088839428083371952020367850656242913517739621344944448177686765671188573700519401970332632877409882788995194512894355325062355539933724881085212918349465114669294657286229278901645073340682602632701146685558042105207857473065280905531112373070147544056892484472912139568366604378610199492679508870505560721452083024542388190688024884360138859959541235641490574047562768422571446926038421878336426014652342532063907492329983887929290477386658561405834392094935357481680719236727637041444778781058794720917648309854894978169311582262978662386530697726709115625620261329030498993947376750275709932602876020291069022139992390807445207304551388632049661038522540839428470334387390561527429130469886842028613238213054446678409493070878384337969322917793770118854373514266212811426392722313155961271780599645171883630043176730117233391865519323448992206859952248951436330386490980394925572210207057474750319909208545836937546825696504074277628253000385115287110514642964657719888358630764845093590482619093620158172085416049459675788634896353906214735705292894522983448268902379775536138103761271526638748187319109759244508361076982231599567823376331138177237273256332022726835079547598245190724572691743642798240831369365886915004021658609921487832441305971078197419913256895022819948919442189258626701950150156186848270522421410619287848698026127351141122993720807926695530157374434875879530930715455459211034470010276874596096789648304671187222441897494280648086996361135463777157359784894504592352394588015574322037508778582507778998530590564177314568739483701488947506603751894739783914171484568728244872278162286235379315985897289404358331048576825124429280711870527849971295349055543547159302293260031125735288919091939412179673145781840287029990979967677295220560517203701614011725135217862663891953565150662329561781104605378690496861788168119562827532601919592165012902568063940689083730054614456164654913096233025030628471227948948297562422807277467754601434476399841345161792075218759963429753230861886023874825206275284402893360023439975616172430834832307576570252602881270612024141044383984007500578518528567370329556248049361541910328921453658503931825916456490507283514906521841070603696154409961606239268158111310039035322505776385569794510562666924150309868355163157551924276108541662655099243410005415385895866168228075109827036451109941260454445350216848452271390059046034642229344191180521630002436863904233153732688586933576985826202787820731463261117049784460155236888090287470293249075991486405430073291964677563137114440253513543090814108178321183978614359147438260618131030574471286284334425295114769252449065527730071857806056525375202543516105755449736421299785022882071914510284922595009565661502591382863532166381064529387958710318233234605053278185462666365040632498317687762655506921220332051418461477531882020859528044296434068144744263761633585910682866985949674684156826404084773741222858043490813075586056209454058853575308531892764867818039423487221737673451561353660053839222477732100588396145997934823388531739130247181508069736428638204952590106909274583830327770071578610505910710070920383630163131549954038380352817021962130553533534758474177295484725029866878058680922773542854107454881056818408000484360328213084386741986478637749108834749020935902770967661798465958823438353066256612310355851336266922828279435354093219941638879678818407147747684063183109116337918462337877861578701531995599091164167577983343945306478648239643068236826987009093528102285709413959713412977453998548567903020059282327807078624434045374737486159885406865932946746577921878730941696247411900406354202408314871313775571129019552520797533818251851288392745463519597759766575284316017545367567430890203260584338963451295127349682732888423450873765058814235665986912424429197360033437889788989160102052400961483734451922091253006976668033420594840192547242211711891411669504549792692973028238693600749610738004521508127558569596038696614500456814565697163997923455980313883328869359068383604566062021218226585556268935251075295665933145040630559058595067969675824540587888944225423732878475399369758449884448130138156914856022321484301186408840344275015755260443805230998735390825952203616364378715914936444477630819595173685468146465008670159929211031290458641196502838940506354878677490323809171714410518002246800291466457092289285141702140220980373634777420021296929905268450567868557397651956907218020099064732862457333877656149888336820673625108053313158087389226531595887249566075639572934850062022690479476219979069157670341204866804952412678837696789642658343787207845482784053991526892000260556481506690711156897734020939528714410603397915870878185306056772810339708578322112584349684821589445181134621755950972748805881601582469482499085517268313550840997609131247140725409188712744431433983113331343377720958595920209918359653064869080609443706693980251125129850669605942818230542588523521284410647427148829157204686050156173735342949280274204198945215381538547205054202911586484634341918628850419795332519934631869286582830050554027639923066180377063536758485837148910439870348163822311597252976933282053976529374853844655010363530656695157769103340730309478598671093076549381284937026013186874137672964771257829314519527803821492775923453773179333787928793891953332734765331549670327632721445340325801691932911047962716167296292189355524772124887729432348561712112669217006664465252381997736059736511529627159002304090240160819530474987198494357217521868764722340872489255140078409345335897357104478475426186277832207812336655995423815896884142162207207158699604073668308772021619494861567000350060026153862510403969894193463740962843816125824930024301739438404492041915295685810290986537068003042372723558521451276183456482743138425456244480123911674028952609122242611652725269877669098182031823538123412785659279609963482302006873724717767825913250866705530506282933866309846010479820894809700471834214632712153620620844730818077652530460694840173501306222302262241687440977350612799737986264269026181152280964330845132862126950199478211095713734303235347879925910834016226416509749153495220959930433009780657337489171778965479676599607568724376289229701756381811304803014801339075552912708784240736294188485340264634465992437249863556903454885938533490455972955674270684129943589963123049376162539440611929581940473800248319631200989936693730082401217917483009124846742646757277215821828114227436161375496564129325830152805110628156258165964613575072673889971621265963631193000700757870962621566551452370176296598751561005298382235935170614017339164081908914701169119281695524820042576283647265017961487579384761526813453100412168453170716418396693012709112581212505873032450343009654462075137900709500862423059002123181235644101227749795594853781159035708613476252320856938483560506965389639697965463171768843682554796671619093944060696739718121299605408927954011635036299410236354010140182193752816040806097024647401294278526547210109783198828911528900797847099036455311434672494674248660996314530569408425723410850621057944758570899716583405383220296081287104616254905782566928920732986156460177839542770595142520736278621978397388420935901969366723387429422765317269997261605528299206288501983155788071296961628359234722117752210107116286656211203667255658035256030277748045632936453643415615474377547016802467932106856628877462407684173332236334313233794802627830263691783521022751504697446685406976229645355338523205912272665524682420483764471270667828745734905805746992902362951083541867186363119473879133080081859018480013627184883156026041033269861699256793670393227989797971928716640802055398362159811252707228833873057045795652673951754392077177426638988517555063624515746001923930720233751863973085079087422180365286805334172707782375548491144785795778293574087934279902976023782827292313243755765430292070319656271294136648913204223699242249153987653756176200092590021903658015421028472162035380967108690480029958810246578056440339846711435191875696878736559785137012165180861699374749471124499402528173904484010892931215133067846534024488305372477178221689306028895385663347356771859104096332868187729110825275386470164618904244917771236636113786531295835022506093553973182624612926041076955146171387547987203313524176910500194415745311630471474702638140790206502044749788298748529400119487679315829571152682199208335460336736169478285636044572234294226939115734389950542842914390214317612556109738005856780448202425901595868658636820073155271904634116467594376120258435387327652595825063069142336385395584396348913691735751912749989440085332127169954082705590967856789485414453774054712970708141277364799309518572975700007955330724455667689569208561062583315518877997252948541232186347906401072185828401977408814990375031216331604483687851561405484823306468375903301550759795302571499457415656870928309507229925093492105862717839824175164187620160816229898052764054701515148989150271215620244563406230087800563573907845824801158657751976905656116488103604532862528290539275077963689038163739062528378697159935795720886351064639531444408183083394249139759898593416982676668769165824719730379117005898602569542140148620737228410543809462950766452564778149046126329346671416463479513736311734988091650458712791968629250644429792072644664704468522567839936804164471605620982739977956075985425893664591279212616532208618162355444190250929499740207250481512853082680937721308488958223189441187267038550844799760796975475363675101275235521954109276257064547308822439337369251718991394434433611829865046731602815580504837397185501289484174679521252561114923501335595560746450854440263187481654543004299222924476778567732823705582767838912019311724534075683524814149015445817151253106886636987195425004921274907278449785429369682036920339042159251508984661463750202362556731505507708729177703517020566927463358137565285881482270803642468923149338599451158345321773123445991691650667494040727600628191395470265689656022795566957284659162226311097171753826065593535682771106487656488972108738572107161675049858591038953255898525129596424540719180930845654872982446474236325025551942218210920141552606559503701108102127278103459134797779129568380578796020883783437360560877245329436544856516624815517308501546905125201042060816145358581135538849387464979767471538851529966295874483903883124253540479400478486006423356706565186069269846256990425604498278029753069992977850348269960431092919679117952574595191945395354116986873753174580030071531484522809526583074202762555134549236027708119365510814597654805685087132630041185235546380776031433485305617942410312520961207417253077000145050994372407608035258513733220622418837017879073052624684125522616616052593244395243424442814008036512508936037218582959047514209984782355989517790632246989371542880984221341576499430947790797739567841840728688612217291196284557272834825015264543577577021373855372995113929669732872361102504152907821653818226433085013607392305153330378858620727382700531029711771470515877625382497657548458396974956813126861149266843841234848212184199188198216259777513670426192127384259575559729515136783029375045442634639368095415971998137683385652538893205928197152545573596925262066565864168373572378670671794791024170535963276825683934778853148030184224040020112088238121976938203188180521416789262418068335106453842866315370321087974154210281164010031586972809753828280480539200773783367622263107147742153807769694266929755879748365271049230943958101840747872220553108764599603793367059686000630213724460640030199959944457506912466119684378619398150311038274168302396522612427909596134423304386999864658537792664743318809763413127513272253019591939146937998149118381166654223429078615914592150598794470800491778608382645638750857649975341545350879711261317896050226917610947644631257497864639568456301696501260206881108405529319861974805025278657195372416895085671465757434897566031470957169654460533204617104662391311930551227893628647186916739635777937592327304559615761289329416081760488225433443578154068927050264125245269232379713917411522184732880756839882916664853381188578655465777613067008331658975577709370001673937123578658853400350054519521426312997913117776027607437618896158912865922987412819497634633571225691231365031793701826810735846255675727341141948913858809986693756675089117370844290007275016150778271943641101784511615468472198377022984820539185176547711888985782451517906218120480796514386089999321388052274700971231228830718388341908376303597537191728983243899725764895561928123485350286330372269451820495489202181623956032926338004730337190137823662550680655281933178552525542558755048692485619962989950431758930121427805527557511515005208280996264397481098196250111096867907316514988600606644331087245460048040729583057030167110160246603541939700311992792132174976910952150810871513861411622137797867777189261386905882694473703365484157702888221952469939285560172796476438738360431319434740626746431454464381606088357827253220135990719594720315039357554306611088600466674005210518013168513184251362281046503159313347294140083339871204831797045387903794725470025203675659768494122605791641502366261387867774957650784248478295015164346341608170154225975251213624275930204112254716596606230068136222751879215183567922171764280272189812263914175020379240957597542609134724507363195053533954395896932157931680237181525249031415716405129223366719292854246389032777119461244319442600177613585261125194858019239169070201610332468568857110871918667541141211717798833773405253089552279110922810846432513557587632137049354490027978795164020998985758242058373157802575847180218792044278342861380814807511879106179308604988130676895175941746493782680515306199162236378033057617740378634267443114302348590401875092273987553091504911723486076183420860184182978401011774162261997757310166423380867742905987091486771114997318505219782154037742822915870895636020261579015068059751676495032635806656424415866409680577280800555966604748308097216479133767824263571928985521291412250595428421538090093781634241173222905832029949973867883608931908424862136825130849753382321702335729221687578930245957980653165831505076204242324027460327139510638849197445974162909451485401001466246729515809529498857210868892469976940833416062978227103363116921439072327768861809652313843152672152241014969300819173121634940261758414157488291054808504313665027839782070190916623280945584735722012846869139751783879293824661376660607535803904524136386216285396193214204294748370563108063349705504082884997563982873675576036654189044066061029171618407441332480525758293486553056518115124864477399508778906111564165152782874986846517237843264122902176430140435274270010077850020256271011825022838552561394054374245568302190432287471767926306723355998085644806062936400026223316496653943810556849580412145944101153450139815278001039312837271700781320243289251036303050430452789289288784344883859792712972591520754475916627254198759468223644256430197230678252551179380322152515815340284273755401461734631114935739236235447944931566220780681887815197949025278866372987729787776921154513776605877611108464638717750006727497834076677887121325351013758008591232080503816731787880750722927390430381677202962904418305687183058139899727326049660286094535014764461849570451181000967303146021888295361448347031238494269680531903768736075513840657937761207274954662970688470522341333251708823510209591144912181109281809117203496995310192313267681297402572193686474993532284861463584622157295757285542800186903528857030863768743847694861118828979062673275861770481631475182007344698093547969355435971801798900813746607436180827048758525536380245744683778332257561982687415349102316708278117394432270375716894915134196407296243052610950687823865975250709306157044576757558047095310936228331055902518759436743086211277870890148203293793440318406025559987658191432475461484894834505209410605405787869402195814362267008427378203963552188876496090303665792621454447663805017742727907316639425709174110548828043321182822138270262557044045624308400753644833856695073340243555394756920198960371363840708412791732438222816364136676593352824902421379032548879223702634978880220917956601853593773558303609200486911584238538022489076547151749430621251758025014684378598917539817083288958967809623684093485987924891414032091459783412513156908148357954748671783066121706684398200913334460334713691031166767238616762662984801039304754491915356051893048534133087660815277273313018231927918977038377133107665427943678786204818471115757554027175508979834137347928776174794463632171546458962438753463296303414840397910234527129730085223005868083723490488580115788913324581497383155815243016140976368740555524535264704749598176547545791838123644862834429643754431206830589939684668157907261827307648812166275134615743904139852631167793509191191863474591783126375550198460983645274990233842624547199342471123626671749391858264753775169088080758909226003163972360283540558439362308547186552736143223862892200534574581176702982135246220301027882587326415159347036508877372153860668510474495112776720563932515304361184883592803465963124670236807007759537577234101503213936845758973854944999849294124399286982768724418782984271167013711674505548436225037482233475855751944377019750954909301798603648412828294104583429003237618788797511212413161127432814380475678239092666580979371542241112558654588314121198853273396857365581702405082097659717382203729795760793549213715054149972090861505281123880386866147333894118626814078706101841001807289093215893861784624917556317342173936129256518378800698466484263755718680632833633896731917239702228736954742375949343871336505358935835861753230244453550940842111551327051756486537153034724804947903882824501566554891685225665925235901618795812027101358849496304635606931421676133445457329833375615179707208582093319422514352286138415596714631153984596172852880102190429959556931465124966401410014562055006469497104191973402007588800737096830794516182444137222409640239272688160176698061621718924030731359530414050342806413715844761452373538392025321265584639086703051128198374875607344790308681045949714828130767574812146191891359371527481486246643229228555758468553860085450294066908775795186615490084365307844372401743021012552878967824870558307557504798434730664278713716799609053306133878518110561714152447283221755704411268490509208593460303718117742662127302734703912690864262944229444555577524872362581970963869620040207564816045392690266226166303665450561816045444868134056385821552114544491245492514651537809077447808437141842933180326614867206561625593276634161950673063603941238569244937396736816039969594459200756984349292890627442529431822996671081922630450028539069289154191957388200265492521183114750715433848872938886444069936462301018486303556904227700782737176929175382209494728026705288493611634135583868637863464284993327938525669189376480559973080988764919413716877963302232078967776638180625965008126100200011160450628829546613754030614082921775724371714152818362876438020268831521440084375443495798093033235456303050013497009110258950625767562239110790124746201473290989861819150302369235725063021002176255314634047357377354708303625524082497917046029268977878861105425493851572420908119746557363822010577224939859686938316365284887358902647677555722501046449998775611910742787102904999037515535392548238776689392556326048397084073986266350018870707016883767299303522341698529186691567286041740439141382313460778128069633110967990929682412194466575362546100260272381428280626420181348331939578824433757684899089804010368044802377182785478530310459642046815408090903423906591098192605557718384328367637666535409574847443819280424377817354490563542796335485645461242509061666824430890439805384989026325013505093181115171072472945159570285332184762249877226617391064544111373644863343215260806311704844095528818871326932058301223937397188082625537552191424997198192476590841015479365209409263744716571099456051206361734934038833480875114831216834813716520248722775881944165322447579800759211331053337713944438705183985520023382538378715330829933400431168263213473556803267145045257393909439686005122137860489837133204027570230165540641669945194245891858558264904774525202722470438767789127457831838060076021572162503191488993740657589631482691795389531195206765418028762214905666954036207335517049397550104921076732707818575056262432618770049842247663205758634112399136546866266553926031138481650980605073513170257274049356641733409555174793944705940642018186587153458863098689171686225882577498376600687090570941209378595727426994762755615176097463921127181466518514654466258507775759521817332435628097011641900392375307082908790283492588988344855385203967049803521724006829381276214256985982797940840841027323257157855080138611497886144082539848972380421959406379332014609716840772595274893711372358536305800714270670220143214667909619432911078958419945999305457134199446991061312248413691851712009673597619451056228689125365361119967096986757616966051489799376366631029476528827604305375169198634338422191460648764936985930282969299575564907474139320627124224294402940040927856569021854208117922346917219104304197206269110503457791817277262563981426128444454720896163603049319297122443650894815923435049733861384503731644851181004037540966481917219697024858693355517394833785416157855118617771775141180181458857598112072866510166154857617943323266757537980204473261088758564963667915438095203386835442381915594955051097851498612648346836402431648837536307074271912028639933003596647766760427708939149763367009247799884571588607015635982973365899223944434454980610224016353428638239096553690458527909733537987716268284161736901874596795296166274171680316911628655627937490495931252920948366503519316024243676663128156587880742151235311683837551584912050814066831837188751148296943037851450302912105965749471679527844114824985361335035991976500536366973823376181149351890849556527885115939422267512961928895251755516622662668977082442683848860472263156995986907935666299154178162841068872946416189550392533457725752974946290267134859378088544527885667728997651671193902441993386614123387159885176872426842008248568955224661473332851082657505547288939600011067093491112823751305732526945197503015844696205913362673197766975563634597446069487346156923348534160945206078295315948001373245833433031586249753851747662885843284740344008268861108836203492216912842555386499925918951288328810106033414427356954920320147350093184016374838238967844171311653592545238535238866647585948182382366799125294951906986637974128365825056809664210771010364736375480774239937541151611868710333490565241014946695640612670961317363018116945145611757537683506610290916743776290412008176000225487711430936640578548979001567290167554735694534318609644618047321241363613094523301335664892953191312484694267277618016318426077025369503299003003959629417022569513954423109728079391522429594797844642712399193869415057165021107504604033235530578927256922903015107567705990614489021960551843594026492817723441861043823991702857902110474859824515608217575922784965945686385742804604625616215548018170533602477548851196978165957109223793486767203976468851084893043098665950204115702181304486708131676964252260426202278167171521148768518109462995164841864552054101088095232160266272849944417538858226722136242617048235243392818663808332218259250996059633430102197569588559560795523344570502284032057428592553921977863903638797507028292110089481036937219921397581895545374286030533087115910741261107765303700346678866629078943937071686446522942330041922016596715743452567257166708917996207049621341262071653474533016235070236361750794326713165212929551191121468685379458180092286320869361646737711000134670484924263645474360372959294571428076891869670858924591313625489900662922635019818954962412768470179310758508365278562658629671213338615819741639505438637335251616515001227536550495588210162435551742761132188867140191474121430189054319007059059907883540167251422990544919036205635377771172176811806307116716178581560718399244255179254163731102575201340932636043456880550446199569820085030892769656501728059027135478638187049579515025570948369057592341266919724417585501101222936994116377645336910573410517075208658987959206754984054092447467475068644984137804752710801321579219366710031478908490895414430574522246542906135150800788163736711110090504369901520251808514508061084123268694044960290912899292730935829450371103999012922659364550790119402785100383883356890490748823092744461382084440609705775306917538412055039183980047747874032057946793245906133480437737946507357419292298185303483056108806004580728279071412906879915410288153436490772779500174564943673762031991897664685296322148201937083602267175616871188970684315254869841306408370044641501477287342239399596274698830718313629432289164694411303273757529879217172297661180429613856145507138718294485657559528542323251659511425394586364811848608906839713929003212366387112168725970667121926256810912717946326866017094043007156876327559976973110406869241288383084937884975941729548859088072340524620980665534209112226777829899316794037311211202264132692105522687144691592415063871753698614360369000541316281085756862058748366940993830456098872770514750816715086990391892000411141233703404703316305933461465690359454186731346134668376865440211880931211439309099351647444533862746609125761376338953067096986475325992542700579577291663864713419116187534427854594694565418691574004310343745439224819228995845629287223845790411052954632762971848071461833325034569560526575654636180431798326521642542585918435697011834637394668268089795510437465445755833727151125279401086456195900891887857674520373711328582074751731516878827551048653035575649767002653262816495232591981721645588346377100575658731216087978186474739262517271484873286074757351060310721063112480357703088122347660260601538935942839264648237205336251538794016470209338584509564811676834416849562761997829630227786840374822627789230847673870702877184602860040731735595949095615983011247709950319705159903743660644158177599796795422667807235709061409236018910229778062908279623152144170178047089659311342158926434150515068186837397646101723939724878750807011023444004573827885164170264046854500080693393047252716561806737004465346993038348309313428024445246167261756865581299595373264028475971785633779328196213677654316960710069012087143740242995271254455840352554468978289275697033301530625903125752884779142284526971564759039262125757046381116415582973244376391558741933500766827862511808105027825947940997609882751469127796914982450170350070637528346713940986784886433716479032702307158734618918250077157043313859238059608349558013400857493792567860117775099696288789443366253725265295660789904588010511732720963120722242634039217821805361313403632464333434179439685088145139613655066339513013450299970693607023959384835694498638275581663755507699405392087138693029069805572527122543051682126095108169142556565852535342927796296454050643538902707862367934727840219921736067749205018268207716616176573895644861725003421538165932232580262427818821937822072251978525735447607772363563171438034259055914966512510004020188653286287718511309714118031137686135554901119604028127079018239550435721431302260682611934496952478591726013234267167406042272227595067244958626591419064552350184524836588500374184244331727702719383149595818834077554100253004721768928543246688896324501132399676365387411914262170227365326654055789213499237302017904346763617287366119080261344573829947340708819613909741256277367179830129880137492849826688093769330987533891622364826382211497803843362557762638555344381033449284391946540625058984774363551028511330111803139889443585995433646945442646146377552665990368459905047667892166586718594730899666644737287081277385928110763969852139362605283068352244430542650435560119175979867008082550034040915643358098657977818816858372690366788512958839531758810136625793711101840552738832212535486133065507583002470154602322107602144526398685472142762795333711822325612781029345000337537907372534703630643417943305382245849245996967261786687873973512324898943503716101321705097969275564531582281102533360654770777134742419542094426276381731825386986312408083842990425961500050876612976696416493095974168194409166566355360996310032609160263192985435221556171761911121063695743683580943890699704898449136979172462887990050889682296056932290893429482355910310062629493113505319565762463597735097772984232414871612268943753563388234052530940395610477002403364812025567191682312304853464859065523134307247539670308687133243263258574781067527110009342919961843163582808937365777304760572685669942212131072353689155704418939554846682657264588746563201971210308036807664333302939923752011904902447117182038980713552485247646894910487481376801100455691231179566437020034743740714400504555107210889256764379517057770365979274894148924016628612790616066066615837118635159218092695067001189917363223317438947185106152610862926300046455911088691736720444184725627769462071059888788192499699911793225865601746579818754424349871193573672428003597646614723937053519629303027190601972107627598390906844424239040332234608216157286812692589899087621720343321377587357380676863825252089841458113498486247817305333050931914971262101965712191279160175376496273997848274892906590481794539880951627016403258310475232443576151918313739028173496047034510468740777386109700450119403880845901695432871611344011215739495119944238726744955297812364382126517129272277752495649022121538302737682954059706808841035401117736647549031535695957018722397417900374593741577313073388994241331886050114877513627386292403288995313699375758937344740293061141748213827706077365368408853180235803486877469361823165680598558598897722311329865467410755726174894466910859604181437858592523113090529758266969965060915635516201407490930206876364158903147651818081654374542538991363975822795142819577659672356054201757000517397933319768754239341114189302794785221277629001635180190044589204756228017035567216588262728674464166826569140441004375564213570645691102310348481460369009931012692739974420252495387599606916693577733167487656832265863325431829513605001996841710146313757951282908606379905660566845280482976125166629023000562312191525956603993978004717185984845909146986354886083289041993136086848777032716088814966064335141828545927721581368536591062289651101609860033014316538646204887779056678400132470582569050268668952708462392917607936170763118690813477608667620614869557611391840142195891430007910226725402065647179358837394694075309648029052984502284029739516763292522918214277902974961178463687269735711556805037500387641109017754458964309019773378315786225257248485413939794963587415522148897582875234919249814012275636856099539886680840223597668665407896258715079079005210937872210331478419201167823473004753381782080115414783947639946063114155207348480903111234595973549451109554527460652874424262220602229998738352044881562875990629044119819666413520335948162002030376663667755566280836089482619020981795142550984280929217700942237847485502693252550976439019284844019535847187518706284364012625605611785759108887688554475565410696125161563347808316030842270051246512648059664769226947330301891851304303076334196501544294076188502767323664029488004893601511450878046642425276625289366039471313150607555529584161656026749074464164600260396254624731269921614139506188361498448511091072378399708766790495968839033680599361141138901541888393651337357084609832464808949508099652045771866828630431461447250362400467414171917503766893321863031165887393397430237586446442551697255301195140746680348836930403349657947627661700944439814159682941842789181959634563626920730968292912241420982430206257248699343440302629379949926841664954436371127949224134233044595398151265176955971216912026303628246746516735904621774093538121505692727919183122960759242546242920096176441487142435738240684386552012164199162599433417913779851046689389200702544633399447648653322988449755827033928094166415715961272406999986112676205978636954291807441709131116953275985494020493055261397414424665861530937003367596067111800560690575130082310923333488493107154654253255787061699589068013206048997605511578561277283603390104632664413515112554574248933478692053814252424465062250714106138400310213345839276616876036328447861314082739420124862241903408104565564681068919082458791209988057558885596479682673473945994511049414022420589800596657109836396477092586119748453791987372894127734804266044944582596346468378754947903005603104195268840140595838160834682407108382435370759302393968272470909147857697274036872618516539605964947593404264778587907828399884501633962607615718845755517919116659047282992260277921828012412886724706384733959077176409723874805121088465435543403620534753444312674622650396327377884184178013484422897864160288189077046580959034771546760157180301408823218073210263626728575354801064428164358853083848065859996178454989045660206733376628917744657565407969747313578530847498478396791997369140211464233206710827441965040406612834835867307474105874534788569031255540758678175550630192590194388229772334402689415327689518895306955080585196520314385132518198280992831489525526271538806288805360633398726488330910112315074697600879963726842988181742952973125090264305550293686203549146108922463250765147305298731005575203337393767960270820475743389098240334724939113278251326784764384372833902001368733110994468373687417630159366309391910963270578619338929614493004680331335063390849067150558937674946395401217377842766136174641078302836200648121055325181786568309113362263034203905657426674846958105147920009001385456774478342232296349320898315416223469304432686839114285463856162956491207925970689884080598537661470857502861699124384974659523612359831058768325097031591833304338700668462357813538649575689636910116496784659842705778859973077853278314232248824793994889065144013952431357796863409086510196611669634014811251340257942925811682077269234312750546907384724638919068934242562408445810901999874650109288203417759472637064729653356649482072700092627433280212164258157945690112277039063563831755449228173712994965860195123790696602377492321513216233721309443375119341713455874935606453968132779917197243617673100005093707919389159173079940890393416029116835486066999915024597324247306669329452420558888174144229940976436769955655392279111813146139224437936793195452006722896734070863355326597972826094402875618282680965751769080729676633882642156878161994226211339920650372896116629979438319588963895893817305377760202411638158954424812054129032593900216055707769856572493677226033614206541333643617988686768264711485493618560257481167923026421346240619465885925771503245257637769537250343270813865194074194727424423947476420248000957943795910965918525875549328185592049937564658659704074188845438993882072008704095192651859062554689873409411467704003862971122538144191835122464875854810126805525276332715275834339977844448056778444837889636727545138359842958577029272324103036145513987833837762490859495822966589858473911360820651782818087676422418198613067964329939591504057553062337280716758015352569624073581702108635710238038771584714226106813410136702831835967114865787354524231422240105008958512692995600495144912865175191290537625912845756694565165010113835878898662309711872877803791081809674184990899383251690482951716131262529370470011357667371971309327600449498858739547095500840564911496638310191355398317665405489325357782491161191265082557152635262574318149513315087449596912824995678567187590476594785555844686199965008327231460590169168456675397145921868696431163609561309583315455545627703268309491210357339517272617689153495702048767911881854446059924622388371349909149590293961474372732746052638377515403946467349773101481233374995896465007842656642306401343882523331387161057499735469687520421095245254433093817135001181027115158662684244663756729029073529735678659661287654451179847170263018367155101891848220524560776285400641009519341730225609673600130771669421149309550285179593932755751810632193724230510989194851843563474774188563392330268050336371913063843792912544532591505062561101839307763845408863521771588581465219027005646013080969652638580623816171598970064674531855268205033163942619843595104066525389251740348994220109592741121170278675856146168056794476205183644118838688736140980109748805193554942588966247633860306289589808008459305906479265592999591878734735228766983732034534374228430550952892099476760468788879929561268062350719317827461190362707430332023549006738657369321159935682017217939334427276632846923527460832259860769822174804409149235905857172377751975037553238866990609351064177261689377423424931700552869271277418863074029870916029532169342812536865915275234963314456517672575584708745594934060552922073458432471032437369619257634061637974683747527171390314637747807068945896650709937013393753260808874799436356738647490621618527597247706812424346167928990091141746021838036445906634855597749006515130639095507131357218124682659326376156087617556959615761039449253567955335502728196133642042781630941223046536808063179709011869315414154501290268389533951028003733683684266579670166517698094071071715180028579867868270239797341592170789661073616041488235253542989745693933437529085282968774894585483194089311223492057963073342973839110949161973431068156071448837591731402419517498578451722401332301304140172280859133390152334736822148894495707765043873448873166462738735161130389688523330780246927121935982671574396417111037898228905913708038638386930709702510574334717389181621930581209252225991958328552774482502727759732518203902111887031751169379812631123702970493632982537438016593128443253653717955720585760922351529518289108387308970122865884334775927705110739345923058760238355302468095858211724885269540619632917785585543768229106225865414130747777197236610635809678723564815003340300875263724900982640530515054570039617555835010776884812886671483239942025080062188697327304506688931637723448264712945870114958008152661225401478750093694091589443970754330579496413641994400132903725803736576898325815692926099734911153917346570047241097930092922945077490848525270245783735711819357043606157399615473201263903278101578270035422428511814831221824483685011186856893892977002419584871211290618424972470476642211757043950812261816990234149509083407950385883098504482834113269868281168964765062851242208997148139356812795506813629782092596417868521481759275221147236547140694139682880660714725563919450096990561432622677185774393508452999423312951116081044135750834841127074573028663332249885412055659657713448363652969276316328898574936260293376583945489374273740533573251510368746352818757940218977864696369652742278925931089450277210587478601938666068960936044465864252913379451530826499802937593344170746510616484543572960797297056378628912804693291526380404655817260501711339609534809650003013603003053742645334684042218223992462501780568964983046491412358490943060297758439097089407962728084544246756859027511776335047721898476259393289013148867194010517290398593588413298320332200127857759765531846104476443504625621527710440748619831344496245658992061508594148329967519129830272433247727681936267781302342421018631941939466265051014032712141658505622851290099183849119495846405088133273071830992841110523080749728291216748641465095341905502034436589954591597473442575341133138003847401575212160668290247932920204510193457142145792566991423325455968821751137509204015569664460151176972001206539715466072626416823251866078105085058973993790852382852880022663350413550398756334132422369280105513086836940419475803879029583388993359333320366207976100974121733643961241270623985217085105062668514824671993584357485863838482647839867325772305996212731244727214047622854682276131017537828014325339453601932359389524847237611879107860269553574686231522925906869137166841326618648679979094537731974959169247429647157112548951112933181515769441568786824974011249926901259807105433143057489638391682414459087848915446139482283937890801329432811241635757172122771242253574417483834201275500456308035729753092501544338663866018454456160597950879697732033583264890114917069228918332087907705617423641654846322047589604310080350811532416839263662374634818876508479799652756222589415723899241529255379124863628368922595267741873996164969618890533528432620129067104517637201178036364548625337361579400170400631731773344388537437016195713345124120951314404778012666426695500718975542029138585723897849932244252641675164279747792227214893819426054772217471649090702127274674758979892457126016444720844781933779610242556681742599124914530821376561717891217656810849753457800208274264619301500892445424427555563296272357632800003723983403481956593312349955234791243205300007517504651359591890354554134879319307189973348162020317715968936320010592080001227872357135409648624439963288807256065915491803919711850325199723479372802273004138631420231194506021171269862545666989437577148109365762529338813903906761914427893757613614453419385850260473712981455145304874841488447034695888611506246774672899418533722117820166237939641434304307570199622014385998457692264398958005565929061478461618607066530259432877847772192931643357313189931204349920446198191027315400423834628350293946418002811146917362679268297282046029015771220223150761107555836919278394072897584030120907038536681863223219412833142723868410075094680157852352436597902201293847166425636100235162907001103917906866140020697567367316574669924017859013284375093529664693677012939809223037260471359940535491355638533040641497945713017009694488360764862079661116894514336403025779075131548335178475827340582861976172222196134824991053136376010368812831128349931659306971126106325740084924747501557855168213454130102977231785063484731850467054197706599166826525176286242309785745781796300132969986347098458292798087900849827873202806620083119079966765269369634880394268832804971222740982342022984828294141283645186694666564057634949487014495629083908621627974480741063619636672624253126076316313920589225782679089694479907007920953741978211125727070283044433420264005445988184506166492145857835189267688150502406447740622577820485554157547805286415024395781017268500111460771991561404575036631235667489475137567750003710000910234063898917647982247926475488956341370685305639515610672810730957114133144075150389395425938519483107387984857247879416773594948596604883521213317691920410221882482702218346939249584901346238415634442337924216767041027214129869669280493306206738544789531539025864247022905267827165888706436185115123106362553256563864065319705651395214452890651576452144268306432340730015687830729781590520187335652893638333807215403312676376168546528114529188867509940632884984080018896477830960416065068937009674854912477931244704396489506298912579712785577510033639495815882585222687147245483729222586862388012018507917128405910606952125275237331129785352247482621590430869538481856507329074775027881980353871049187877889035772088237455908310924336132567378865412147186154309695381498908246831262729060600954296259141140288738981215702870771556129714748693889060894959758153827995258477697587988110014381556202982276171715957700097543802372086497092072860533329108388482912861747048111258774584852364284723909030414124923263904388103420099404101580823955798580143341814673556763097929245921735976091377112720303041503512810613440154196693750054084823085446977311675693944434334595925656375285081530187233973691687681733487754668948163838821305778972538695023373291929986826308822078402484395374612461221280472963257828794627319510561165280713968422092544182154617514682515099356019081494347701358139072130618161684052893970613229735837360854088741734444644036681462071334441155554740371598604230970482604831645772914011871139467078109277035556449871135505553085373854242829982684515884191512744406174066863671260898421423564064814110484687961221351987443592917276505801600374262982268984521170500425972573175346611076002120041869560333683628383091884381167036623601232379185706938001668999967203779765921363400262002672565486245474253147821149468022474552912367802650545004716082506459940402265253491475359267580974211877666263428280844091597401141220457072959556579155208929932747338029381994897024826027281820109573794115899476587826852222266302103751797395711190546896322282337844073483985829284814403065750432714147060650264311512661242730790080691983404735886157474539066160043163332809748373258770006676548081911850690267402212273352203449005601140994994488960434838255463721305911617792481441093965587719202511346365729305531421057106212674542848955587182105530675352905891218967150795433110103434571970452231729564209995757699453880260320193824053355055145764075241554160213939276653677646124176469206573346909321170032879200680800917759883731548705590652476000446940434725294165532249314812981899912984344318265372016295046372154436796825651031800874497871848405896435178832448313696177021174385009895733906186193572623669959988474232364279804049639787659359997174002876731167783072857042672817389199725007435710963508902014891749146815364776666119018350372394438173531071630887275991734350666505696135318795042711660600456820440892149176894080070767818993395767579621677913863594395751609711595241590459481093959145234832818802060131815038626296836300470074153909094990091989303486958424076800603399351029012796107510493611107330827739487044370492510793655033375670848015031834376909585791161622785113443787593879221335079500561362575548296788074284504947316994606739008988229523608312461070940255434671942300310728790188230496010693020611698750234222617663300790130018087828850917504961193838806969449163789624508057561714399073070639270054792135489378559119881062910231942095945509214925015398039664437621079933704859250381913005814334475986024673095149723997305320361829969194528774664457279171870555347808587860552046728204852289688379236348561167250527007489566672481510598696790812623494732063961976538567977494947480223317663532908264608775782824500060639329269620921962925006534207186297658588084125230831902080295730444873990447354419127297067557097460345604366456556603440685441900258558941317254813266791588324013140807684074450998689462509315867674768225307949528214350264001780466947415104469101874684675506786373323103528518359477976214555934245298577757225655833132150699805243106057863276961037760143681557311683756234883704191032139546371470147247145860838790566370686218888980607729259942327597870575149775454192621345315664221029492594233733680461560873028168617389462392090580313106228207410037608876358552012110186515674238049777644265845046915177479817994034026168187741113262697556490734149294336718423307497022506964721872290604383040795276308790759090912287374814576284848112173860082575423380122638353696930146220630939306700673791474585992491457612264721031435372530261321702337867446717554614776659049936204911632110120749491570766033621294708429661814913522645676051397963428206206482445902538169258004465626986104176435084900257557255689790368569781028786750333815405700564508925269784220690780423688876583701553010387271734950247398000013607656288809135530060727801123368890652815782939239992527678296240077116985966236368577350752411786842377501429773870408675034568714037595025423677639686176695562897322598237646433829362906464638923555655342040941175191238994921427078149802501331703513316752206840785625651572428262528047182350351637702342106892093152814568688425218522753908943350539761778130975768089244543869445131138031708833314524720803752562029755953260839807820973996151607232791293770704775758107277616463156723479555163285762627644239073099253451125799036033765574753344733703638465159384942387971300127737480783095072363117565748823579818208034298936879890052885381418054900272083445232784040280501083567001343468119996487368373798386135692050532948945818991290781678188420910304077056086628484394563478739305767098890784253428827205437510872094261436067846470472777505770463821213209224181811593411012003704825732057786233462685945953498285594760272482054927184670378937046756391528283436314832877955275129776319746885467879415625515965509075668209216121658197474149077410448037052428986474765603519463068788106358554847199348026092266366937579744207017868063904082812250402706419294572814186538030451812334235876890862464181127054288270650708716521159983758029053726702447817717725908509688496013292546314382566170759041330907541788671599427062477634289649320648144653499657843085348274074295277541898779403711609115321393518403723879079805461665253095128544035919994939730416706706847146921921935116718746725207639819378318559271407269553360913200183585606171728703853524439581046109930003450360927390064728111102337574108158899737006284218611489016211382723562381230926868054630012552126697783590987726130577505424823556861863057774004727808936202019540900858462270684573721882760542718849968971795428556976470877298499337255056859689259442560062877012787217132873111848103383879791096248685146597164583603392027757309119084566405227590541783197647087752032395137551447350379197283499066478622480492574638189741222458049417016380250938671228655124932074294190740226533714708197414389234391428613948066976683944583789420464967375980612855864933941702121363195144988982546128071601248116271780338446779636987450574637445820810625107342759020717420039510739814711607025294607298662356100325192014695310492120402920687737495861691176313499005154410494995538414550716980020331657491188105490902934583647534058802376890978143439666528923782533118905627010019436962753967314771378724312313919953697097973517208377426600235513605008232265623669496593776421143868447151275266153711594645580901880689167053377541813223160280091216729684233884164890021304373158704124842553462318017660989208085570779299358961149824546424358937668604520682826393435377726407655608637453640860712889826199139674459147360190229614566935835388361898577340517541808614771815745901849863374562467396690851989482161665942226882568144129695917388657658370652665082114856174912920944009063122844090700025145620214554687642726199054442566745475993847006046808633193753740664016723146175637004917422650622907367228689224475641455134310580661133441732131311740714846735617205730917756979851063468269139283093830590902266035690341090324611418337902631181271141373831384025757219790095034598255766759671636340032698792467773918578667446943428552566123795255994769701102533022360473567796724391279459975303753162419224631642788589472278417654562614993351712601433366053616214742591870730369314307582426554444833439043879540111536106135568616194330413645378530094187467356425460524454473053141155193482304163489076705499268296354474230401273411258209584360224983030667298095364115451693143050119537105488948668292511390911109728157566292112442574990223759438431825798384987608497675854637946160018713666675351438757075215031240778127890887019641766446921230091927327025194356625974754306237961791388360380427138038171822986999766070925015803028264291030032943969960471576165732061486071191373197450963426397987325486864325350755599153049400773502184761599900586589508799444580361888665243824158448429329004912418001737972475744139990528627448539090995345772012016428613362824368213339385096495106323607113736589554303540034164373400732247457679943601326778385184349434380853506271152099112891769670073139333619206206262012693961777510192698530084514761681254501103933694203507194889839603425188997389833161388931168135039520085913983687217380922692863640035138450786045964776067586447060631707927654284949994448799597585653142648327645896948315175390022132774725815991478412921243230623686630410233729190879995559413283493445129851997790913422151825599019686485453368227440163594475402755428649570884454522201985885715146723728267165448019533448397907537972896021351854251456509221309771957384212594183179913089983625933532674526495987632565261461882792315204048036644166654312636907195538180481303902871917729444495005884536108404756710822233336097392721961546635217710180746289081155379332532758404267867856050567621901105213071259969121010118371870242792286945383726803654407396664935635011157360961735107048638643788787334861206534427453309007123988554307353691064715124244750342445350736939309644920917558721945627690755042414011865267813518290663340314624082098041232974114881578123374695015220350551335422373524654770059250617066085435426966026752700465484851512841670943286518161306119260988002675544455298418792207954334500829313266760902113355206288013681275139915006532675975673800369239237273914629059923798432762055010242271493100210537289254326045639252018998554772716294467269267223529677735137044493030218907883385511305221677294561374435112384891496431777530904768180750412750132812770902922526559377065380056291045304024618204105229166897453737623739321926496941612544778960363781282690484926760596079864630714192546263634943795090395925011200359150797142754122544993503291175131066614458999462289307352664194179547484153971193611828680291202944363963057359070690209498607031884821997658784058984460318495082210485951529149312127717047120836531706125743239833259321196497445614937071539197086856084261281197884622509633866809081114820397383288931488951107418864676002596556473683031046584850343145600409787726583098007953555495238343042521330682870097482409565527028197309235903177666737093665530115249275554226997692327547655642046426870640095634326073763504920178786214660429338140183039724149238950810337014464075278246320300585163420984288361001313532928862452330470587757033962277429475259774540500583946390810054314684605596915886639415203692272981335963225957964333455859480440061092237696820810301004336974067440669813259881654544783422745470713866547788318835884594214552939754942574634781201871171603476340162314801600108260171904706244248940310181827669755377158929624326985159029826990886987670181829361733257880365481043645110534519881587909346872220692363313979717448772241022532833033960478928415837388927627873869938743305933811304766993069101760846674307553889880174769225711912161305880809076372490263791151353486149692913884714470035545399886698617859856759590158077888601594632521271368148159174012097793255726710418825120843997034385341996395133193632018276161656049602356857303741416384195536856217867879727245904675297487455083808169510944013678047201909568190950377977775432764365081475009261081459561433932494552757790671857017588783098361765621712489695588185257694938928768099794096825623876176913182201645042471509684461190906602969058894977201438190410589700716721811897064161216290220499455292703577620388936875093978165954967311911293454411182580341306084776116274059030390414362898359033789584884157869285095549864033381360493309732533882697609083819924407529465554606965571069340166313306072839596098593327461799619930202698641557154978574568825533461915675942823428431316568220982681596979835253302578432752279004518853286831403929946246498837163266645469803618305939540765225378270582374948472336015630568008576776251780313290274030526391550133881548349211208193325642808061657395934506925621687709621726519169159103018410626797248163630787749198412131105216185434963083163677298819169208483914725738205664160767564078466577527516651701537896749412782145609915109368892579480200876798454798445755677487216947885785706925375697609945746192607078919371580024874805634821837575583404590344272818360711583051748054710649190216352985244057324765355467203132906749504366925730451003360118215317579405469848027033659928499469218670919068148335698553378804036557548769588841160116096200367753605109797854628642401359593757436078494788532307540168560644797274695969307895463997477079660385069134953966466162993005605849995149272411660306993114532531386689719775920767926853100953597783543852730197176291386937071277095356982863320668883322453842919879031429346117157481299012001506614024248116717229889950975086108183778113184636848114224696381718793414669082156821309735504396305550144195067095194385561245301310203198225024483236580762790886355196440059091143902736424770340872496058950651787037718502961219046263318087837779802750327427884521637062818124753267690129487180063688957629279648675767387804902642747870630670353047705176093989933404516373081461894152124438986439013329830150004001825808813753450988722646152717939462741861460050387346572850211289000310756462125239283399683290277187647791421262560935451339662284169234043663706487398952179597549231997636558134003552997952469669965443826143470192702153316158613313811215792269657199445298683144298929054265925311630640923751665513139885938192788900146438369376745328161138963448107956007096798101448908897882605823688223290501533790842923156547174337760263123682454772005437962192715615180417706059368506691066290754351053480795603307038540851108573516261731157052389616058280335130979215162776927539270949435037310960602408438802437056721303391755459661772744380555613074674065072511821876332003271450273765985131670154175661968187391205603915405516128124474256344750311411481590268119053584458524066747719394136092740550670455825855084982823786270664446860971822913591276089842192453502571574286444963279367892978852162912228668953732084883795437676886730855171845668987837737816700141459671587145496974060145687620365805739683801682053634978806396240511462723892539182730245389644159469414076850546104601217471249567537637558178423919691894499196763086209963567243133812776220321632027606832810553140858082660966161245489682438438785151193289570679405252279187783551785768790973916637847262728185719047261234386186450522233051344826486887943282504564275079548113112920814555644994808352036138574561521616017216167522298720947607636435432673564741325114231755078261105980608684581761487571131596625526042555138901720765900431629958657949916457866276147986836337312896088578887910830392643146950987766830026140951351661142468187068177290747777314502150655845692018166146334680062790532191760475728474730222191655917489903104871119483830547920735074667571048342964994115582094975475721673672172161199679035632514768484422790537711396593663448981335217673331791414620074768725860244184356937083383508548460066313609761304053927945303589692471699561076306948234223912122820461392295550065956538751523007235651778106188511355841383311511109313543854836325777768299338585069994760971002770261854446694379721038347799987252951920258065855747047555499295408086253858138904015743380413122944676365400331654786731798335735402536297335719378808357599184602561847443965573610480712528752920365757014789106642162818036425197612780601135601593010183368689488641091289227386688218553755887873595680394609526669211341349958496263054460912562564785905273787545785369135725926392255602649405754184216763549082721770203978110648250070695291816489134381617192042035500681201596783641317567739517178897583220676766196979779500423657489164213140050050919047017132629212074434708055080787829190008576663125371758712279200858085383711497343254414926066262893873695242003768183392526694689686899554852250339161748971651240559867882543786036417965403629007177639747456841509307419227645612484818562291906431753176064193005985764996449242344889374167760788665994840460944287110710798545126640944989388370767120373109128746876115632681891393575111720864646129707846006174722287501930855624239955091466896105395133671342756624971063242910228760373742793896792891758512821980013077669977432487656082700543167780089379463830357360996038418502023045593111703097206822174482886088939922080794270674734489499248324398545945195703418912021384141441948120890814245706646894422925313763378479153354498074691527045235138147282149473646023271998287505411830887550927130518396178864573120249752334371587277250139309179877802619897162159739054474378155192901479055623120904569050465621154679245743820246064653605969839855235832115734904982961964870086911543356028186706784100729729446866121986107098988802166590448583589189807858580091476024425138742243815683422177366156001236335918408677311674544665986571454655896227514181334237532223328733242932232725043324532741754660042596869829328993592131833333972629795848746622064453217611705579669488728664158096950578666555430032236453919779651689090222813356876750623695952619274111770713662261294935913484840180704555549654766316758356847565307731413807283708129606055538670998715974067030914509481364567858953676984942111493805555273497788115824598616200670532656767301411908165775269833727713583037858503605439031808745036711001296110688136451662433349178643039533764670961704304690129658127307400380843646383326731071836522277948582640524311484338248944729216459228096364072473222705083742451582287347926960699110128353966510053792026743070320009045303857138256939940694293573800013042951004756704076403825409673547251782635883429624852237491285029484810586247938836660474826151607714390410537839563189535686249092782701855459841001747701506393169476150242799497694623784195719244409720022199561136579428574464834433944269945900963284402391093106370920751311275320826953500620690315857653259350981804284843648657947185256857094126644231318267845182903272515372095075406060641347244038456829161871026782414392852383586425144554896016310740616409865818365773036693730386822942544942091077863331281349825372556305584404312437433828240363787261102748651522126236450746937617113104280620324764321533833006830678493018580188219591469368544446628637860339390560686732384778199700639719511078304409775973595477134075457474579320315939083627425208049118725561719537962159735562971687594841155823061483983401825544871342448239240933027658580192498231987624392852393619513340807712693028669871710861892886644882286059389371905628347925036361704825220997031433228354396649497868888054597013924235996937710791903512924220603359722143831055541496715667542537289898169357653590304513506876835535188373412020436423625646884742886387371130667259584717080506855401849096971588148941067842430844985914516701038392774786667214598767356569804852909954571513740991417650757953013117095467303294095652591876678818100028218453444281949922542062781579896763320523759610791486805399753483940843807088313473490778241556258772082375016310884858148225224976970101266620539767975302686251249775560229426032281929870821338273948413794143022072543891191618243321270584582327189390534824503287521397781549709219915102552744868779451793985240802544685755260878218659753138444191538961717520841226535939108832504904113420086819832511545433249348352277892183887732817904197099372074607847574996530930578993903764797085104741628540866199242249239226242946015972270687167726384102867061851952231763639801464345963036847437450500679164038843590065509414819440752664056985158168608970243883568983200933026820514788619657876467142900482478420280757981153559297100632462288734961107462248401777150782714862527941613669567829217000373249493402055770898434440526558900890733904338282041428213154961324744972801874637365612854056651660951878622179116810289840181334059087002883689184843039240489177149525585446369916390583774102857473363480995906007749769116226559390866658571346303924243619503230675719278706360951102003753592922202283226551871829668686734203712304363273774245731106985284782254169170131475904544120582276449948607656245878397372351713627656566546057132802411829654429336828278227601818576171705220977509358500722157315997831470483251869495722906185147264644202110024767618176327852868402473307685904464722918690397840427351959594719088934333347255104009278825295932160844543754520270025643764829104269078490324797565972229813942405828938279252306066041839475897963780799436818926813285490032981137467399872246961546830728916295059922584516142984776512219042294007398088754554182903945783497441181653193500445916644927921647514853349899203003604523212256576745381467939195288386961879093992549609168633366862693508561571712168206151081324143832383100823374755395026343253980967832511317866249299180041416713445501272048850237316884946666729778161147875997222701446777756514652255467607814580569590774856014340158367118119030215022557935199339456128057116771479643119781724201678732381223730785433499647612445309467042997481163432139892754776021606843285219149892931057188523469508974745570391299385509723558154402822924111724805921615617630039716618954396390206273731178403229406347705945072229211514512574194857312907622271329020257857160391742111604844939959385938147417019298854785229542033658436561167096783978200984986148426548175681713821729764905966157377602372694177665826955905111726443644155010886928396371643595978361610989142305656572656583310477248192973840060394677761106482451140184778381259534927816533078443003208147008039266023213292406521706639163310492148470549163753501128516191884156798520948304011841145229419434892274165038108999209797922024707592274752253050284849704433356862471968121972244148404960573423421191288457855935728422676526843342836222298001093829574031741961922614228102681099265694023801902787983940734830279730198450544005487337259333763479353928613246724209161864419222152830466005239450797045394674710549389284256646054295389999256745151567013457377465296893514614499407759082085138844182251608681760036776397640438377088786992936944408178063370625776105999491952868020265231795798682955784610704663136548203307546898621091320338730467895343470112168085257577698536192081732303802927245807167640810676713810984507314190328019322298050066400309361234027896890211667378595277411462160641624001288042722191598980221421968551971888370010071663043956639619420243797369893552650196215140996646112200343887835511148422490590610988308869638453404184149577626826667663699573459004706054233457960705817105367145961285119046489668321192610727123800306824565761857677806143492368873452846375981636548301256557007841004125512481552209491074006721256493014395219967019314638868595189853592601438160798088130471820228746011708453826947121535563022240653899378732546755917144716839084462288969609640506774253945332277168124890856634065084896693160556168366391614425647774909362032284263466757336444597560974763981018823446558084197730812961309007246392798107783440046297957595140411572580955911762541583810792180065959738291994540709215424064247465622691774369492741675390493477953979994534257471174756079012827102750294329021862657057503065347311783746211856736003043389487763999020783232362701717361716949589801855534192600468312019061559368914444709580934958500160040417815351726858503941753058031164682473953774512018352935544712442921817829391798636282621909995060192894568813016919283737801593146470639405481123830549040286250307160237853537689431841605308891403007081960366727587623332866580791291097399605959256193002411313509672979349576736465188972382745472351258086440901550999404418487578801321974241715495668149435198186852799953812997607880532014625603245923330954515743597341191019042468368807972569509168030855854170662330027933853670191038996059809307221591540193500962418456984674430855795291221545940205157428329349600876740456974529482715012344617553442407358779820054293387084256202564933491738150384485429867475995572795916077415227427456187688174889036585256888338665029195899098347058097604033108908397516443982237405453159298986163776909402228939460749981577186733602452911233881043166858764752734191391731771784341018112859066919071292859482702078552872132585544402038510173060672841114011901359479459677205341805433388280573766424656615169534752920376984373671677901114444962258054481932306879018268179217158312227305230275466230738695496324213927906406598330221909757071294810765819212556213844349239043422165605666093473412979823921483629375705495423520113176266704933438675713887427904025948804952239240841377949669954409387992262363994915881105075261137866424737332167211487273785296742886976001245211959653990511601532517853219781565974781164858814221032909510826147211579717729008211937806858105260961839135507138837396812243576333255281474165196725607604279545679144128039648190963927422925441931237564885864666778705929993280801725425190232456174259951270584837495848957842144281485782052899865967675317332830089927498967527648962403088628673361205599787046054193173270224392232050474615427330410959828714175042705397708798715711613015034606461982844904947433414083724448773987409692423743601280811154026363362941729565837229303866084203780753517613688628674594362470338223039549373851487759640511733640279561396685746157808386718057106794133629887042412324050474826207979707766753854834653753301754888974961658308055653512372936866136992015703344588689363891655065978234805267080654996623230880890405247913591229533042982820628590995981122456373654824530906045597423331425340996259503445118836044246434053473036138803183221489207641802560647439327966683467019918378491326566418862916085825220936604759641248708936741900756152924042984440848987001469660261659430179407969148254442136625639725973497294521315809016483068766904757828348479974685940255814794286806086001183548309290271733773612462674084078936424983510094430095467983805153899365647609528089202857267570050151269081883768979729622311882295414302659494468257027763805409906589965287158013562216105911260739261274536092978834981557530819439272453642011491668141710183584957466208377760876805781731733892605951144723527346300456374892517605834092415522940265477037435165267645666610595977319406714284191729264745873579732512719108650022519841666847250351047168071982352689089945947932809705568130599841099150945978986931832689750910485359573299285719901715052220902954597481135469550595497607635260986654162613407521079596254076676789991960013003059090902749172744177023061516759056701824104584476999161169082546764988333022303312668446784116368624636009175653531460754201957794743553480232597221694388374716425917766567987540335149398117571602914006405640971790222580717891673735074486782682897420971856877590497606234046959342107491401389639558485745478945265481524348040842312414208262038269342698682417006793559449030715941024706268896607815628468034981408103209159837080546877113848224072179395711312578780016297066785656758263688403346738239083188613586437389217841622143437458441101088428400236183660607327493888756447140717486058396266521429813142603460659882416813762186352664925573719448372232905975027361928897946588357902033859837526256901508720890313447927658281413481693312809136377551942013159354467631167303992750956418887532488601680190551165791505549607846127154149393657183211380928414580068138514958160178736352974531492011598116351069199593566919235800179025641828107338074910654662941763166207032399836528706706683972168345610986675902708078648997398812314801644006083889743626855020504375983250804221670023410739295346676613496536217792173174021742620059759033154457692793572137526190848213701043970744747523288189018481125012919938331592140613384603175710209574910497746397449469077751166223654899334693406828699014512166426771834745422875723803435075482072124441630308367595745600273928754970910620074869929665986035941152652010024180836867578193291721163194501968693512916773202905299208782139398645350349326235150997549758629339252909223924059093235574426633961457994256404290977336408170971960654680539678188500567061655646431239589575939980300110274826052674223647315084677615646753481718471274989440307354066680199190474179621593528147023819789018449066681730083543047725049874087138315977310662097130128295901456229585497836830270195872310169395554243848419313574963703932539465411154750738761958261194661633298324052602144582254263440581200961448259452754260002414170021279539260840593734404181832838406728867680395200341307381030248966447284492030395577268145823795380801871093519428976887194358208600019561521426647147152241904173341979442397460905481097654899316813369868135231040056257696400380965156050361490286505268760166863986099508483910064956579071445859784793485624642030329295270628129772097907900339909394523512249485285316289398108583571486708110493229217579136053181423273932414929781792233916456238299887928311445826637464695824189486983794981594397251432934728022937511685897578025155330222524659054152016048100686451479323027285700738053491329929025106956734805887449389422094390646445448991841975236183017758173071923746216908474241085988448547705285680172074528577055553029457226963271456802458062668550926693187072385108043436946144052127868532731399013805782445589007109941158190972633104398935530857526987873116900214922612890111969477363473903409680085943051249025658353805758078503924839089060703577842509503012767769664520767527097720916720955431600382297006511124822430301700581694858020092731178269809866089398470518052667897531488687136282322499649862272879803728930122117522612747211446489189891547101488901942563588835001190934328214520131209069624995465204440025703966092481973914696650254642664508266385343690731131018454030827908203083302954918164340900157418808922346872016293701770326342217950960170563062826242276622895679899266708766126766968947935051864420916571596671158922598162652375725926971588401266178104192673482446665175281572042151579376293327460390843505185846462486297975500734722236323172624710767539579723124892293607861828139127665571824014621460668046987979725587854938964063019672490578833393045727773264226422689267774033961424798462417927396575796081214598355586330015490368471877962707414180698661937269725911507503857306584531333487037388497958123440158414602090770073164977292357585915373228207616610151617831728875787075994921479606719295276034459110952826241017920863041803973472397302056135742627261283371102018915298119638571581084991660250201349372625277677382018644060212307087725768788389117355051853468370355055648698482087425129190417518769495547227335552866025230964193462236493525297366421101703641396547486848478750283786786894934025982286716137882239602551660767841240000369693186961511630509658008758013882166173421542593411363092709794322795801750785466793299999991921695327472062201202202534338546777028870366055639900563594320061601117284807424270109024551949129920468496504150424563388048248200166050343748512827818347855297023708878707057527013730016828509446470603201105815048235477638099132481540179091820890744658178471842176689583609954978286294426504054515056000922260755191192991573778136475031802279908681139575849656666190804088799753169853044099505372359503793597611358553353304037237790209400358833047092159341478439685947683182671358112204654695585598908598787557094455941764124073206082080058038209108976549765094266531429689941375981917875356757556408143315860176896709168989331525729940317655736340701786406586041356487397668501862125539754799123961488893779356812248968690848393875946620306846555423930681809663531034835321023646355329109918965786187118808753490432005587635153444760013797040693880439453721960064413292502756953179499171670860573476848638681851115428896901430625904248542461118453822747948233834073547983552776158695760605970935117570050192893804374745210174485611637407190431562852318957350123292952099597520966630709074972237214284583677130284349522160973876719468643952297103843057204671978961075891322944577259798242808374454279452622902480155653852974243095812333140031727951405824213109302174397579135577693011532820547175954319196246472367291488324360754538993440296642284571854905575559111293958985963320158051461810240224781576792699341489455508210073060783830996958485594822896552969946119274315556540146537654283344016244441378476260368115513146752629808271945892105055591272867592290875166923427551902999082422535482498855951891108241299102264745583294531364843324417050441535792206940911739826530530372993707319631715685004920592290945014210631439282531991106460325696576459976568629778170434965026300847463998069374330011580593976453332889996036610506263545589782028793480990024757989619188452452399888531266450089209437110266698453674043184043309792678187371947642264825815790555949851441569297761894032790442049914499855272364731983047685889433291179375106670601721970394233462499851205697929760965708089345294067597437743887971254432410715529022103971416580185165993142424107212134124597831371202968457888643177378474569469363286143413836869565664187722521173990484950811276019148660718952495746743631770898413219207922862883333692167547291662008888430073267114763236688815899844944004389472697667715381520233113901269253211553254098561144356832092736372817366556948378715287503892918286318748349128840181158996623621853467226722818596973531755725832334595279862239661130709495799257453933711575801926005068389335632386229620816963805021930719295920797677979943147057803692171880193303366922478765478737588207574729583025230247383487953826583678968322962196734252820871037864715244977145594176336965322717051806534559460482255110258862697922529383014692008468251492130474639864311544635380244276250668119580095231720013070322780507884308931104857190272280654089591017612229011684931459328420365342625770293873290900182163770662869048860100801493479867221719104080097105689373154024174148400193814003305746980076515712507571956917117602600372811903805295229095670240239083030935363612605022602331996441274012918848167412521510056613070146573608222427396325983464419808065210242342648884460908462234700787325772864008318201465605672995680317611700722643318298350440366256665760218310491543366859022584762172590628945002318364466735404775361819274137270432618368616282691463534446156045945383375150249454279815889826640547136860185041390287022454189188939512501138377433956492043104417779780234332022352506797696029779160678854640907594111740511691208129708383476118784109918743536808458402808189187403985276651453731376388046751575299741434287389136523643069792766696541178902230244323939197307342877799141977579861796220680388973911421983211243852931096546134686955055115752538481733146128022064723508089195442825122671320596550357154827137113230951518277908858034756899056007201702074039184154780816191029648579009582241623721914460093718769345106633603938008461495179057269262378411294381499590687840498172213535987986310022615194672751271361070819252662683462587407371561291337770920242902100130664467148936623332728673519520713489987062714582107086018443520276614234547368212736979913915077868990160196516739884345982808372462909068938366206006082355951151632818266663118047717834369877606822651487494688074537451960815448691479006315696470524484195872775680275232174175318247514837111277393956136177222014530387111760701035889327623064456358022692954161197211278593236404398123751764749581481503056076170796994405904306029069939468949705332284394278936371695904488249543948486278658711393869530096934735330182010976468333369905809616607425170409904289505446515366887616082209791539423156061583195997731603933268727618629063995236798337161648553287033804682476989398542625570664615464578847341322432925179676784199709861387938152242786197305370263555722727164412751976335971722111156034547874583805694350493616048520295838557764788577548855605697861471817562358579592635009739896997792138448767863780204295129508679023209611131272161774897869070178546789788979322343533260184226682520382177457088743902646565284620472628593817050280745476131339982009672242611434419449793743333799606732642800225013576435424708892308932329592611099700463087089701345021064023585492028319791935203579903084045195658860650213436044892472660487492233871412856545271868317016937667759328340488473857513749914458096607989932990549899339183457573993669200288251454736910994436018634551441670151911159360674552525371954054827490422390834097825091557947972106800676709508422271550016336373295911186342578650071841065322751232210611866587938408034759361839701423745279397830064074525667064923969089604183851374155654871600792157450323256891243409106378153824736290322789240870210463150713987274635860994807965408106008910239299006502590575477929517861323080275456742525946184357920714504604565943630332319019094599053611488508733454879648765372985190252045191371838149531932590405009652179758550460987251901423866011964109212992494819008393101111007601721095146312353354419661621392573493379185381770282746350386002914388348476377124461008467578362925434149311957647750589574283580567104385683382786685846033689759415286192295217764881403774351254240939681479629012364893478496968643778135067864163411451540480970004315526941452893240832264344973727175713539857495412964984188669286176801512858952401120902090306181282167883364587223258026032750169403954496848128151360700306906267522382878198085251914850687731795366109670242533317691001982007325494150641545521350969159157846470337023622220832007319312420668599100165856187990395925039796661116010953656463969903336113421760943844841357353025887921535070437688083538690947659829193173860512471295317937500810480689221392243614719140828587748905854941378311227659074441436680104455463247247052163238703834688397462723721959061052367889739117023981953481231713057330749258524011375108704421296624741153237314621531693150721682899032000049008941036327200785388535677230389891960204074423104749818576510169075425794939396714261650835315902811776006569197212251302295589494938451358796135095943384121234233420857552076751755471321061991609015469552904210834865608939549684792586385223927574170292405177251286964578483067753713784696768183302681670037365077622194912380647290850048460239024686066305313150129507725681480423935037021088241745940036238348024987524904135895282150872021386839139608911936837089989515642112333730477564246865754047419343672586340577471827354087500751808349616836724124442900801452183644474015716913800111789674141945681953430747663417608963699553155026513328599708197609556700533334817505276275802099899866683047130111059943170321659397687181498370367408127048845641964375209479138214106809082595360259967236818152586575724936046217895518745664490571733629089977387988624551361357909883417104606721027314058882279104937510968768133192312850572719717907337514196696562804662353419993228967878981331274390350571921751360774842183203703752097275364248394341741769811417557644943581284122338113037292690938780234589756400052656560959419673034166152740773391915073888287320250752009350280886496325606559032438130483483462937905744970439347039159990498370834085772064947631954207900118756103159939466921193458121636701641397068856314032800983767075466236885533192288600646770234222684489136593579674207757182183209954943089346659227300026471427951667534724368733928558849731317091623885395631176008923241052009396390925612527203031782074368129179863875643865208524154109418370979538233789029341367219744620257114902080332632663310331609810917298757020118302359288625382908782498826849310709498741370455145028935937122633223780273524022206000483489453063253807066668304490330667355643743933762426569982014111599101303840628311627567402668457316574057063950678186217273728648578599138614023594339216171519352677547514533230875859649931112532566387630480046520651880665718606153681746511050359111179308739108606619416456314081348280894961150036507218965885571524671191232196161671345607056465552834715956507236880782966206213814312404274660718339137759503474627838183283046707734828921157857199619537428517514945455576665276007670354904718311444285190683994544932374600254792241000206699209864813436707507094149631415015192455178623036579326290510605593677860306614975040544345992352717423731220277199650779282652704377560128439592950813396934406741063917294219331626301405153527237712192870219071957335697427951711155059024220894844915340381767847678440341312060079378023404759859250128627327765463901777529019498889507123635175926328547121608182778645516806187815096388999005798755799384749780446307956028763418195124060429718971641421745235390893123822165310339095344619575939116152063591014744045768803880516919298278581606234097713318543366490639813324055008398623761233687903711208715191749883146861661229433477048359431455453082560299192730156019330018530705827241802186963886320329192855272478057981925648976197663418516030144889419900680779704701023868944804679587684051496739807332525012627616360086599173889810399035371739295026898321628508684450253545524314714862692025172342969975389689067944404877706845687857825557924697371621261976662326944195729055575266193140862466673917425204473757139220277113918377291965657500991816987030115988341126770739318456211899270335584918637170359866513417678376755219117788056590135781161752681243611392729585882285634082257470169211937590756399617371868028488593501442198133923495577173108484801312078451800861507341752065263072702016538855730531946838357063698050481510821925908571239574048253827761950794519551274572872901876877308832572156272585951896634537404828565344076082703594987024788467147703877677918730966074511999333955736919188825888126675964090961588685627450651274782350771043232172721942067454695454045466336007457783501197430520261201834078760028268115254112053812542847906488902586597341110932236413680537107187036288304340877923927285402660557385809992844420479579539247614522109069935688339152716893182057288116260890568815629690791352536343931929507585683198904328584862759382359180509124907887691937402813403255578754865431279976525715170045474860508516081877950883680997372978145842316792530438017566657697422323383032609313721920070366972751888654378952797102286125930190094641628865850591529432648786787808762888408274043897334877422581224803667165776882262937697679468824110102220725453277843189767319890998346792549732081984489750805426046617564270417250765567923883544328205272795490645844522417042700344049974470045265195349088008673092324672250549538086388289300342830044122897721830042011579266274888637686767197993325210293495742739616181683737684581689340262697575661927982896620945209821015129096253754690230098394424765800383142552685839373429386702547780886641055526782398773444136739793311633691447598716035785269320687067340146257246565807522282650120894083851943918315390758524583563696547032018130267017874857149671484927557279082523617556596611579283461166925795262786384202061950694137581857987120742589186959410831032893893946778161103833441840799035525102731277066792668750515993833915965826384823559843761358417839613550965186168001391370990116054795482594629666028557153566211565858240330244855195259643126059774771486542117832475736524161611465764658150322233699691613641195788139936653280164901834412024782363694674394232627577900452312305800331621935594344683119878147796512753235636522462703092257018584321544338492772552701526958018914401643521585955955545170311511606353986547334090919220524764307898206248892146095692798046327210827164146311738422244661281029474292054107065102656682776589277532196505474143471834391921740248277261997111547058951909564762176947240259288759113801463456587546551291606456514603940646934016940759756461573309417318186843998493584748616788639633454049510281869102872639939930150465118823059582448067363306222287728332048022556351690368520760968024046299235023863155660655441513425069821917571539554799446442668621008826636654165469419174449152230464030580293729281885955338360843937364147086293667365364559692565054067486416128104498222413049896548088581497084560001770829913614352941317575361648857964035666076659528798283481523649397172041713873182129426717754172295112314054293965348469982832204861843111904081055807038512338666382802845959701836454045080522899018692381060660938405246500090422972598817887617044173167586742373087632026349773147346967829165702360537637699908550272431606804253453529125496164586275105906519270642213481369180049131348122290954025246890578504663484765946638289683651621503557183211593296998121357848762617823646970104800931362870327491070705148652397605778488358280852648845353283391143370255906354412829330958662048188668448056907354994275511538040757651388836979121734402132393069409904084274814129562755456258553257380170787397717823991672952094049202554619751261257807655555514351269010469030836806951675574317406848228622979605199401313778499440355445520919825500109729295240923295351793008074057532504134069560614070254691580726233666563658409165208931567675282930298444664323649781078160592055356967503751776983408414962462501054091584862297484194509722925374736981126087192894658806629093460849854411361964769294165783179545585421768969377632658455082273797162435020874038522317794316537638275015214118275753573755440832423844902361572534826853045315779114506036377852430173063241619944391973906973020054545618710149053030585670045401742872326373737564013068369299485103550903493596669993576810876389487120493276694205781985926244870586198731177185560781682060544212476536599669622834081860328088071538411996701583359150682255812239373072364839729283570293829892656516533608128945147589296792405998540063169523813714966772842639873779759064113081807036679824590870663983611976305804303734785475497356227974680778802097495169790726966542289264090807301912542585951033889865063462248279526692715527898465678087191986237960014097099898145275830329095565978290499140539072663043632424570315170849574464314409345630677078332579659768542121649005098628153267873109750553246843432087785712684244992801457779352567378884938997523831183908482745452814335366988376476812919528532769916469795512192472771423997521177034192982218912524044854343658636649891735616603652203434116682936982853330793774456157174064612973235721802499558662534773249267068521869273781109361979918229786750662807854721869209937396940661930893775160144245263793192410506059039821373783981975553964564683879921759866172604164560782721872539484929789560025091198187059015500701495200583792158456601551806438707694885472161175265102039319769032649544803406070100613450952053092114758073231974688478779200794974073405175445832839283738757083270111180985172401952146203631774080972253790110816963030615167699377401085052677790293662130192502687941599579987202178390383646322007008441279352228537450781633146923351812247656418009774462404762102757535535932358637198053366373485511042896598921119348424527241919040288084317946989161460284608589150483747226113596709507764981524857436172852154666411243507334684152857381256024082739660455007947292037707684320420086546415705335972451521407672021932643657966235488742281758940679813832690802311542979063563565859139683671321616374146676407591496269999364950319713251850172941639661034475160579117433849365915448474341561391398155039504932863783227121369738746427159261363314214585832961861906252224406891371940418027949370966278774192553621115337356023999304655760635143197248395296892250982365943450886933597135737634171120371539371843211682027075460875254917307062837777995519651247314980651824573529844394802036552266517887906739143663388465682107604085895108441845937240419314771018118556488378873372407442452012549649753229705587948675787938524345720863211090198615690223087876562447582234522262477627194226303412562048663593883080730232716100241730395114461146701106378925161750800776056541314398204417632183781446147422109893678787725329193546891607560555288255958136194673099682458988755712991154340289474370328835275681383086702526836351406860133801430439514320370136360495360848739256345763072566780305392963183447646492180077112417588015216503358223130474597967549859785231539911374614542975384927256649483178708331474758928974753986672613037972000951697048365826563331258200892845072518424582017531536228950370662928987444034521306515560126747151373963476169894020440864152115676805842790100569294188590215984126475873435775425451867761584845614982821682555128540667701112431105895001286172084152325341365860292477618607299074318803620753971570870893927684711348634703482906250456686352355290485604131130256443269215079855097831193495184164837580880100630271575322033804872851664059998249143457600953938028243604405391661379883805325972442363857675629950312235544407864658051516082578152531270764286306455285238065826602747029934067748364031704029967589186589211900553732329943868556482912434507628528574680000983485626309137435569675631182147422118501744013767434360072808064034951798824218650858606488914611063443989679863000353687071482157342634028342288775249355378300920730456871267882133919291911861916086181086141730760048477529675720388560488773470918521471871837966076711304594502128651762121168837552463248042792220978427030932472885806226751403686229927237589635018634793871003648476012644719573828695749264919440821761742776133420641483947351115595415010751717895306266588149572338122924223474547779804803086287495054349203024428665914598929746938976817223769067650715576530117238441573954331065584732719078658914869926204293666599627114222237893730902107537903786462272695963559150100527124847588829919976858865168734741722456218412993348232157717054848281329684969254202146006703182933439486861692808547248025182784780691213319393684600265614537808087751896890762155988156085824298189687435713042564594307494080442713532473074734699853099852104885540811634761644632471221708812917104009760178251149740429513657365571642497922513469899614629451447162245085857755908602289367605974527918244255651218846473094516085845838122391165159731480396248111450959762973824085953143273472202052875534391447850814415068203116896286229630708267046742552284975792369597984675537934886082660929170671489964746137349081938171013675870159615807180476508363904815685433305348677551532701062187454761101483695037852865363937945422061199502953979197585710039855395947962056879215503710878335592184476305401535142126204263574950153309921430090118318958527741330524097593243885943446919833412263005102344429865403451106671679291037509702359377560520733721065296912786852451931477622361405729505991991859585736075498737895252776325777035473586056464205057574894469223666958437581394059872498744893704486343005366321420433606028711139625734230902853100045376362654941471104492132805525604035919038156972991225009756821264485896534577033632908535451275692913211857026534609589285041971364246560923213790170901755917585448292191344167063147210485078736620835924015712188785110926507720543802275884904904830979158795834600693848066661569738775507226121484300741005212301384695312631922317379367516207508976403874044104303481084530449672375469371527455888212848646632268175980122721379351942210591901564909021373707809630247027351330356855574339262224044102646262514535762507456342064941169391685796309748022638480242542913031145806956359030430372844784178771341457500505515560077420192893550722002587915858216938535049221116925223709823459540149091500417471349843579616685523556581610759632249805608794812306944316410617174997619444631903493500029918381532723043819374042469735969569013844975617489295222573860343727990195103728494195956960274197770524514268914266245020106608198333304734849786381151621535460049695839122097695937449183978190471128080124007787909603424949616994382723233976455575967835932108771278851742633656248556199273144442024465259996136885678107274673111504418587698746494695984856489695485205073415115231199914826486898140935075596113939075634116209461502204709783076185336746775973542063803116207841229666459953214528274065207430694933608974237385923822480645991860567386276798528026168673042853987739697265792376470963124593441317848495937222412285584840016601881719450966628453894550082486419817414516942155582144713925404687972478741059266701412467922782916509980899164912273810132907500388512571197836395050237287154398563843061925139878457355535507211321660452146993056452383974856525735346548057318094853839856776826498466702815733342500310911275147058053039604817608026315921748601905893471093398816672496445335390616098055861372679198930051622070440846834292512838004757246590081027477408596112963760444820209306218465622195707967494666873938798756491440996425370520495756921594696097705615794923636035251463757525010477454460635015202105411016279273498949454122714478478027632741035882968987425181020360536443180083289897568486896363712276406469561660851548306924026061211705634516409641661426872134787887793691952276384461706189655266871543535430564198740055553912944263790823100542371874703056911500890068816680346278871124858528675346027092224408404250718422751769125003421735046715919885472377849737167258644614691738081465612604831280600502278918094604401490635576567773760598099568979977477106458479152982078879619816910691677662145759432799130716620614952627078427311390783647744973530966680611924487048883853146760991740925853544858390779121061671691250032865076611088919168900274608830348032681844594340038703914009850076371326756451982507175422918498991610909619521180851926693250462112418083681081107087149802477117439469748208431213723517892262662874363605413731560160772801919061202334534941183832051599763592680300119264680487795305052773332788969569329944437991302859229622901448735050901578757153352069369761633448619910151265526345694915704568616078158698288018594963497906809991627378633128318532414487574564693624271737663188221726260969086434834856061313325114219491664775361003638855847423164029617497890366365773218287640290326982025311473882584504871344701283720282220763595016934538723855163689167214497590319549037541633423087235793083348524609346948528995685035840141172343674753185092723060023866976109627338217338826660646382506086428247818456089108735769177822057393316408697065932863050114868633420093440409431944798170686007703083486511211097136453757810096673303627308953621864575384615863735566507925893838881360753848553519891322193941080644641842900906747772057495155174769239096911871978009206478631138051740407464894475808347672255945117724540969196104639739987535949251118530227773588038348444495467812617474756580818181179125057656580074157044515985529503404451276866164954902589915389181564578439209269618465012709603252018937295597417029238851572023597691197219369233869136386113292306461673783119185965787369134954805541606182163248044784271002897369866305839411649720890797128622136884597461605592196175532394938486372247622511046184316630547187981808072800673381228065420610540377728025348092683644328639676918397789003954025745275647930193097531567976273364343844752931362434945633469819656627972197031853156814870660754992911223691888338398783063990467139608559995764734109441126085690484732953423959277266085581656490354484865981533034908695706461828965224869806716815070112935409466448180726738609361235068733436575315156336266342384772626140629322780437886146468132347557444657267889735420780656919508740437001453691117588040238532091619787763715027205550204578480915418504041251812360718418698967560148334029179815282453150260916480406526244123391071618831158525796897042425239822986967222892044606907587399264672735198586839148892001223943911597747906436625880743353734189424857193511342253565447910127572113241640445166651871797383823370054837486801644650451770738329301922193432555628734010202719288655742692907082593564013546283166333970192227181751458614763096634554007314210934004014354603425942754497989473417575344564600388133589900588657032134972687297457606341786608722215408548506418569681705231958638792514847356593325763430313714083817958011538837658520993775108202741690886186933735526659916033399540265256304849984974413262392870983236496436941035673788734879327929812259185970786894602547311142673331585810528626542528043794675719101483243101440044110421758571501910741430516717225168766570201070844147068588053263280587436061927614741266851718900312110676479687088808565241622357232224469486179086568246194128977040504777913595633023392871131974234363545815029911893652565478322488583725938959879332435829912365937144954410061885515957279279400485883110560423474352773989268032140457674347156970604740401628591545756631952644113916250348969711894148469123984638277361222764282385909748681783451189823498523393219160702980851336393943981298144364354603689782707828531367200114208025731366861849384748373791580179987724525763986040714560295026439090885308786179601380033673015450352114068044253916613538029754051765725880341132951350052991429176936789182254499883224455694643873600055634288370372975491170306653238910130817116445035262112567381649713448886568141741353011762401675940298577526659306194403345006649279300346729925472932088499380158857080251492332734033861594138447998039032442388937056917275985198575544378426314384169181479992306898012044429570651852579417123243923731620332142161869369320104215704312239579492668112176992488632204658160999711605024498691363450662443113814060727163394627984935906195630123827697959168476078991256239917160697618219463606513859455597161638160597958557990093741667620869852111325747359581560408081299105412027212880821778842429596160331677564920044232126645330993034945971784262353126518386945468110044616514939468151409105996216850611187935591259591265791480056270597258245643253058651657977109412411771450164559435907923856203537104480692619229329092498629674149902200773231880175274676551915954947619472112432478083424980469287277931367015594327174406266939176014066624651914809512761974747107309932661703470344006407829328801033821670420280394438287830617180170255344053158797569295848160209184355638187767232760253869526517821246152404093281993291860545116787693637045366033653627748467602601073292910513909564984880195231206694460020722065047956484148851511007873158757418375108401188758662767802988348698740218413646161657248449224809355631830251124499121508690861504151738194464803781692832849062018072968780660327584294962863290787547066416899449899902076787968124177144239199517864137638600832615972963961708177189037547571223228396170160861391662940297267415147426006648849368523844744503717094467097739768488413441635868533496869628420579609291306577302064321686976242941767356624901599525143711885818515125815403438713887610587386356530663702122401148891049944237873511906005254482423784612321564923044577156696145208349630918133702020094793838653150260714468868629905852955726937501358993716627209863738070719906021171560155214430695575259310152027019049686401224344468367660473146059414138251053695197769725242007388584827374858576698319547794970631375053386690121355163262106001242727087166684984151034528385759829461837487744141304866560585877200989007766728883701685402945632080414383127237656793220879354019978958450944832099480563137290268166602404422063386603295285495667747274627970460254061570363634672775019790012671144150057374688745783148517388850091664950595321583017068963371279241873180096807225509683501140710717349472020277025200008361694180326064271605794099639118087129432499103632398308504389211941019455294955980207222304640151040264786883608242720529304573497309128091085456959133142612192167117796006409397622059289768356968909612162648204201731310685398287745787876389221586408437003206074077153909694785033616238628283325263816026909175357361569372641234610470795365364776015986391824108572460258910800101405144534674462007684484366464621565293770239557754192218282583875810214736299852307508866552332125164246830765618858885735605223746389786819544221805431229017524969473147977287568302735373148595894153494454310847931026558072450656819466570712170495924928415562295987365312316850424686760203472703172883058930506848693696131762586758099346962532659082615525849519767900082534326323110794804699681096109033859685759455931571891070811739274014481745251008137090960037396339566186231077511019320406385046608767659463514695314155658542365532225578147445329823286825559258496555569820789545439030140999872985218766242492662328954682796767227338721282235943798273096372936851973700052632772716183011665432917697309982909857825686377025387806229367821308103994132453842627332288392753971041347557084457777029766368942079992495240760437296566165003078293016751081263507766232361689301148264746694100317593908623059169823224397931114623631550607575217361809064355128826832904194455543204074561494489417495590088362192658459349877405736362019133724927508621742324998834469741139523540973077837299173549528260616346561352845569805876354542751093372674133572260135575453562212532116105630728882886193893687204839998311047184988761874300690620577247457777622247959160096953068637204371211608219116118758309680944332261852201253103214522504323956451853951492913218244887418143263358627472290089793237413650509202827465263609187865882116795411066519453005566017548115496850934005798371361871870441737052514794994693478838250683003715293854052701655636783122562157031836991713025665042894642974237221390101432516498088349209762381540368190643579101474073883302571080485997263086982143451675268809288633940254721970898299745948500180925657476803402216099297305196649386189626111668986277254656287379771041573559330278477036363797301758609767680893614334035372858190279825420630712353689271745144335843728749601958361907076409283716441531778490380683002975555512206636690444720917260650434745803707912988526725066860781021982034549775111694602979172040995385684640463295493219072571401692655967874490348807891525979767793070953795895611005773433697822839132392628126743497061790549712477168272055624816071221388451509376975693865017251840312780042309764646688446516034119738848479336672473949731808416198796586883448274224906675542572500952887180432291522944675210198763530418904865427205584112697971542810257353492888817442435862794336725697508184327546554857871965283163596859561697363712106476551340586493386269359395255330431566111273007035480108030595947091301944022255597025198018177644358229692753776155848139363570145525293069408871511130210254124230258640348151303005962164357570514655622603043226624945504902445015154591252221583567014744408931806338333642706038033357303446307843280865104071931019892003031440825199816243650672223930545034531610458480809317490734066291043084370393703581849180010305118479014868545784175783558850869468563616603901833974262878136596818122776351934765219075519990067335945599479281654654848205765693768504290615683745956589255119558525315398805562701711446907865149919746816314657884284084289974595027958436250491665756431021141971018108990129795134495929853569217718196321767706718719052281954868040449610304313044326873260009813772847181784567094225315723856401969864520314894741037179393746153832507371180756386602847299899530606663071030923189033165895725116729634842359275737830278054791100595671111792852539112485078850882399848211019288745748372452654169221254091052253543915380442155847194860656595387275406717491125939011407031531517668428105098224637581672537741858457871455092822313618458751452541917807129278288664532943314748546338447777514540938816536525835203112719340429868990198521661950905953919473566047058195952302186869187298636927408034913697936183339016086379728056058779168423310071026059815841577439263033878504044642007983122553933385281004766953450535134999547558693878815435976437935403514280453628125272583148486683801416904180858190054613180119104251410701411756043574742921539593576488812203354854433124006521158428066668392131839637351311731181329839108817916790332208376569533617814542720230478868316135882743802943863149192747752862156106643142526289523373632589148819998090484943126713449328960605226348100446816738938570748495110762181945173107367002427067793049166836389859822118145798997639014119603418867534084499408404468425600499273650248998233309742762281676430287671673686573001639491060803515553132824002518199794754847100477611382499128374000176583298152524404435622782649810512061431165120384110023240409103371426608391707579052892739519129616513873929605904229081584134595134811814676381904561488153016181200855501071374019837634347924526948609578773679106484569321709498105788027847721343364124035162727976016353759588082112228907264236518472643824225801758839951564545687577495275792445175750083798150340966259773411019918287928204472818725452046177261964449876639985118633747155635225593135227036533803775539523198832141319565452012201209124857965734999699708989423594291016393734780114928947867132788924086943338654403625529615475259025120911809682281064121931160916133193416183434066274821252684347244034107487632747030999274171389513006115533690745847732926276171937056380429191192880514784441509883412845703004075328503094525549072253834986195932681659753811703051850245368295621596288160104377098525734768883168254710212996771444208616183045371604241346723229541447582672225913600930599259627147758839761685034155367248304312035654820806056057432160851842183705329346482641854051035315561753324859209985391648799342279143117585179816511294186698064071114881563192937230115159893857608760684571757376903923596693540234153436753535988499527017490797064826523236800693328508653358817395810344810013194263114943208103675736093701371064015705572091128703274504057132859329553350695660611487347647694452079350301047670517630399706215350931018634325919229117390127164419482620571684294677912786845103805592958260366091118056784143431733419848930874402243388121102283237584495047544678608870450874497289041228910910003266290657495129803130293274199566275048610651036594564829757960741676287599090386839532466992257737291782528732979975445786193095060946538373779867545036656642393970209071415504478879666594890789100067656960801147100897667241771420999214545902695303704529517085937446953911778894399783129101051003807796726293085100115790870459887910078031953790616119530836111241775402895764911714086478406427772483243869341070269566098626406852303434213941745425961811932592227984012280761093570486131902860006410956428142295902773507917694761454930585027039255878377954576903197470664625222486104299278937897861638817913706037500034043521284765221028345417924200452696069108091871253202425244249584417823030996710756904448128021543393783712026422761797734557707916426297811182406983105074678454441624805789536087570449156389338451280081958986780883034726939921739474343421569804650697838613123864409980558281872332941733584590224906507262817059830068362014320375975483484984907851431691589432819317291825672875515000036447604252977940602781143478015195277648506269563349919932416306439823983246287288820394398127914083640297285008308675690349018365750052085983945810937487720561047318486166668876608294867406010962326701707854780218320975297317682007371868633223147819250965897669054429592775827133834002572136505294282383872543137583752768146937685690375930336731119751208905335933667816511041358315878422324456612251153311529581808208696763422821662996469088403591818918233433529034769218952628932267073794276292300596818417356863997755214514977111253628500991131772750603893191717489889559764623436132533367608246467517234916850924372637630992211228401006091929307700807140444630457542904074789061885534919843564670840526112471195841664946699659254878931232594375860617339623202229332235708006256158450754282670509650412261646725617583091377031546833591939655963388282198767250297156400560226022824881699268850446992449061444015000518575019249334632991388716029610111658554324456135114263380078961548094719797252862580726187889289234316708211191566746571471607689691866810081468709330662422036645947967181923741414950283576287918095127047224648059050600186635840469916288701585388551422002983207414867371706631638461469319744190251300623723982744373732035805771764448457975381115868929297968936663279089984018777420917395796290965499221677754502853785889014574866868397665106407866886396999218576440873975037509453847679807767224957083457256382264694909180315813895774650824437540035591994442649993028676824573310360176674469402368280201106720832805922062230639641577610289681338632214204754289660818984020095222643296195301410336522632110653539603680993290239687150616711282186559585895294966732443637309805138817072048594076191709158932069594131783933526816706686462684496567260361732785327106098896367122115250936401732979323233688036036110756063019321050843845470056038422251427515042394520476763359112708874650010433092743035401152801551524345773167452249592381925245578036623459801052485871718490506851272123400321759590204963927127991507174603842976947461148075984940161136718783875983757588838558195306002014234382499005174741579473702328177586861554422324481495437781403327976714680872800837715157835206247906327573652954846783812337736398016770218098837192378441560441269517169930931308160053711672260680997761937695496585622713860398481994747592750810892468153805831829273787978825225481853259621950722197221843584478500520600054399402242134517314375656673451643480866867007346114538098166741056643525216088318866409739131276434826240177237965364250744790643765192388543674082614836539013320089179032274670621026876229985041133273087415314130915441480938015882244916122857038706868950916934744981196785018314988677086821058087199714473928065218187777704811489698871993255429317936703333011285498880953130026495313741322559858019185935989930875313712828278151183774022394551069766511434159956052506170643010233147830389105241601472423044791823828608994852423890438430237659796170524954017814497203575461778038929784402862887167425853843469298667308076978475843567677051238352280992455347294959099803171685673650878405609024958469791788196896445841270660097872555523898319409325497429531160194864904332853632926174389172115264108784272363356491001693702245567410113916070856885028192732945163493943183430749320797662841672523516703811955711697254158193949426053764249262795260651947559259657196465116357022710079876492222267846543985827234906054122440378830322017669596807455014631277460156451108204695770161890755229029483551892883182876731027015699279237701245296121081260123077841504369439369328160781534372025551861032682161500811080324776343813577272498796951658849876907728111571339608022589174787518776446782887010835062815768420241095236345589307261124733946843770159460302575711402339692791539786649906855750039742217748625446962831578839216404445053748037662355279771699214803218799037354941883253543767165206436000944085828595256590848404901701447523246670177738829929045109592126797828847078690711604706630018999591507344283385399086977199108910332485008222261973191929145225973562536910501694535814840247866077440189295097803951891359297763147690849928710493446851206518288286024352978395100630823176300631438528900469989648863539543802607913531871408133398421183535295105130024861862757397913106978580072437785501871529850679165957332090269839566058361289615695981468208824178094770892760957882306457505257186290806640604879559582139518377902445771028783931088611957186745514396988328346329695183841690349609566698048468920165075774816855549792377127853142012620465960092791472948915983308766052604681378151496550200548401626325487683476877558703370579521360273950580428226517291701437500064352607848271962338638544759643803603509723969931263399102516760009345453121386832247357429850102880198737952891589093541151812017192903466480451667802659933802975727449617589127284046394661222930705643334524074589182035600549305851089745133814186317485243059022980602722607856435622520226344931934612193802559869295867786155410898528963727227084989867497979392377447563705813705819897753946754083930885057009113034159587244444419196018528189831874315396489306695155772661792955717130429546807128719086289458580610795368013706566709502748853117641958647070011207525124312194678682289549088541189855348759804973800498869178790819072006119150240511481142739748981710883696588657231128986464238662746755088311740526114422536708287200760993837976473764846008908848403228170216401884357494810154875732201010674942754398992785063231042849578372558114746204870169451625919381657483496288103996937001223495384172826221294180300413027087904455639150196225721123576073540965794232169793673152571575803441646270446468826095294381492609633180012116490142056308177693623990671242573506304132735748886343608569652546551597609794506866335527071674863195516088188369727337851090425578890316468158797235756302429064275090195486806001020649859556035361229252949581425579980143608405113680387369922063384645767952484116252921436204723422226184965741978010719651909751658075844883601479988507737399570262415752918830430984926875368173432742657781047759935940083637979977678296942368675360432970525177696979226200047816460547518156675667624773228100219671492671311140714525946937057625005653491400153711021629714318562820586861810919751601697954413955271795470705177971924544849919478491483010221196883978273280387228582876214533476047149570141006146554499804819374661635833460744776520185203086918273115522269547207403139106403636047641964405540706448774930525786507040835523229679826683587359407875399966313447106430303792556329949344689823740075091633785061361266245936666133915814123829763709166719280856126728342259087524204576141644206607225223141986828639978372220213219375811016566468992948600124991498871344508017030921139524157814582941480227576731006829413437287525100913804103727403400569065779447253561965783779540850803473089146304194935178491490609074965372486901816461855419361232144229470863781301770426610095284101940815544633347961302795616647384218967574669359137770468768726726158132928527491409945972124024033667778349532157629261878627755279400745596997436626656751259111772836783422160144410458918542283487956308521666494120766887600478123931209593849970758905365847790632286676474713096452553999592470014306501506813924542502341604548928456072125485685269552264984777686184699723706045053740730343394092876759882335561766347447773993170429387074422367034313116507087739932380571108292397102760210416337723695761957107686605707777497177570120221988191027691811739534300162338761618892387811901686016616805979973275554119751623063078869540121951108155948362309703321731771590195336113804104707438445389945726247410249423241052960659559958241574180280901019160920467089081685591408900153731000393375197480432414681038795461600635015325572823481781663547515754369662643028354835364496687249199922612071826644050466530163129299344923092943934716538767396919752305846869296462462819329332743589701541504396642459931435838593942691715991371567986547521831599004296173280454247073805244584954596395970846257162955165699708297472601533510286574418812520872072498877669109688591413954884103265422105059330233267112941055665955407600181730895038260861861704081604554391499825666592238799352728538897812639387361953457096067037957647971178674340731194197354574688989808538300372326366053041330932663542897306098542802196165212118464201634700396354965804514789871420727992132783248041329057605207849435844152865981085217044877080332806882104649122464942806968263948430781977394468955138498396277060346906363278100365359967939273535833288237679114975602271613763593161139125023641359392002114634545808471894150443478081314935559536303094186648573232982756412113806250790309292117032837786261026637789423285255113795295287140001061912863097315275693780059963379629327794211438161985374693111695996509275384202146498309098396212216317864646581761820226104976639973353718371660456125983869328526474144172165941745279600471989720663430713957174932954107761836890080050356360577522166123626523966614535717779797950063580383341523070794718018171158940114481505436411403782701429900427187026083452468923486551861170330528880751916025718390764129344250619109611166941965032561854393561392149303336729420493784073215885583041386597891902261460570959127480628946669116490114819306741157295033102907076761081272212886876241583736749701970532626259616164002815967677702260197791721833804848362334967792363859725537868494712733131579818857177879229626230501603606691840242827921123544994296600527186329849865650784674798196803352610877068288171921320058061839563267403148603864641628758387937843610581265275302449475382670914589568373823836863200148298787464393585049295935368234606509722627543000049713707139671572378925101130042706843740794761009730301726223430920475077410673318043018338684731638255213787210142059097381469217983537392804348735177636223163873512823094171770840683951193415679175612462332434433745539086797742063009255382183735597114165882436471962239909424385291127580689657341964327859757722464446261092758936251706856634909289857109649474147815374014279941499624560568301867463283344601013330978590306564189445085901706154479865782217678512728323921870438827449768093519665615490363947684179054282385816594979683280175027249100668949496275095755440992347767351854300809028900818895368058723171324074631127815219894336989134068494176480400450028174289045063828163787385526400731486616904995272901707654262513126199037964560085683518663726517264324268298452441139030608268426228593381468594584900489517374969905856938262344298671361415334333067192406970875687505557834315536679838916292980357843165403894183252438798858469597217507411221563626124107479242109210926758121837120616981744402973483817935128388541103350447708567069462078087706915061052731997142067755091784752812447853836359814244138540458827926105484713969595372991700224600274842744475677218623720634567336324339372652888180599140209088125330128669546983087660204241839970868482446140352672064990987545771413830676033151814161334315680395703469831959543153460458454229898708742438904732180083846595095062690548818637718619540477850878861792844003065275743966726192122996046776117533282060110556392658310490497788037315646284489743602024996671886519400136302875308127722371559528257825200991415838131540582024429977140063766409076198148900687260744915075318377037684140605179308321766891081369986712385627879509599483282697488204744478824747671187264631608346225812637816418546608719191276166834395825482560070768930925050689867102553746677797932858805789251986181619944771365524673306417576166848874307469572976520095717222107720190148718816194859904199051146448488595102541837456424796330763559052414200261588289902040745393599066687276191189710674588910127474099518321781951727222648439963061892955232663235488129479196176037483461433881810516079673155465903923132793684479820814975780230531654325723960805673914318018288853936040484772650906499990104613218324498821880062441082278056150406290615052940574975421003878901060430436867067934281609555129795017047333183016321112527603211624322278871229819387648379242938447857395400291576923192518448675625959893335098433409556739002015650487329731174258983859914242190092530373516091677970811237506817238668455027683581734029639880291219251889510628719842061139966361602049255109060096978793689625692334247573587224044504561637845925841485160225009969727917764651565779234042477420937450218214502467007799470485905588249372187719071215958808765484267190441493782151538037945102737428764521441843691438562533587020395629642356929716624397635020586853637992391050071659300241259101805877593789618088681012836295484536193433391606883946349548509314902097671492288549869835142136444402350675895370197208385769376890331681013904856267421566265464170643070275106114661861039109216070787440016319872434656782380995659120141304048776377546918553123351428148985012843245946802008398856265154594363193182745103722825178975092440655879159444711374176810245627271724292386323058794648014383702757975032162007278832880930218606815265816409523812528673542470360136040914933187967292937331654759473083516547018440677828212407450465463579500631381238337761830496630353464542321630817145569892008647790724003379139085017407710075695386532414967919536591453649582077538899494533184376568634886192595290171325814776415026695986749826544751890040256197382207490547734772270382220965685745904504086382331734270335253989180227247531539014780221327831100420695947574084643054121529229371986638821241627002978367484016899903870731706776394443783256520403979293635426970885359807889623737351112173714324451152683397903806886931101310853523161786025960012798720536011627865228701540275353636124252711839292718081552251405320872311035811442388670215352506884571666319989796963197329694242411313736062321699537756136707779542232430604091635395735853127253146649517128084645136875819058823865614903414452058579806987983901777766650463019119628714688495356931690011553809155331316534497476510794493598210418526442461098120506710273080130796245012937125839649767754763544741155919955179921575336462678149595976642919064662622209694621057607711105910689532167691799734155331318721726696066061105827610853810638561251942258945940059242948631398746439426327685463585460925688427795868006255301053835606164084692770312541085056750985975915668012643448211813606620760602045270167916847210370600340430952156974529253478991048897500358720953803050444746673267601745762860829890242248360618880013446313223513956963144736071663452719673122899489011878470673472031313462367517333346989651602179820911281217833305095062865455209938608609718237740338753651591276649400872123263645722186196098904739083327010859441235451404294788705846165625147113097658226538769288061846613204462058290545384459745669598037342107031720058750315028878950624240192372875339511254605320210164702934640313204804433593236695788554634311762021264588871866022836695026958941679189260645007903967760264986091799754838559563342423575862195260798554303469228669313310692847774455015500435137007002766364798305103405268376636174609049731116823810956276079356780636414704098854284892875944611293187569222462554376540781895162208466759494322941290483212602408996372170113522059789402945670926871091723082172586417485035685386889484386746321431297939508932575301308947197282365817343110359452523183716157212674527503003620040081619127638002555686068173706005003664179003011438563871306329224373735814952759481779971061066520992109050822578063276653940510082399701576449802493340813762738747144237959084985365149909757089633061123608110399038713276388582242655232083448653483675241624894071878621444458630511647669519288419651130479096745454322737988065969033362331299340525179798379825301375635001610592990795267016401276139442219047674995883683162786551910596931405268567628656659888524858056884204560539638840471235369897195404306045224471264639581734265742229446159000095384139302790015526562075485067471411533473805569092566450420846072599474256448482536183252752810504500363873133101017907266116497108232586453703352910135002712730665454432514191342868449043619085419531718221066839519211316465517600464088386275340778221692446472898667179772571924100240245529225331088590638725070455349785067678864200274048629612603184239210230676329026488484726627031771191825069890177879748967688661520475476216074217654240789550268844059156705963745076552436617028656135107154506344691073157454692292713829547253522612625914659940415022010449468792163315284291068334361476047423172374954312886133664746744926466931863524759274496341192209071041382969696057182075376180869160931093755720214440708053765567521920120867004882135522645995775132955379261469421061232757871683418196329462391617897229102964547904719643328793699432422849416793651654107137021941157891161791781349263226164739678188227311804996171085048102035609663887664255612351309333852833344838847727374995908543774499300232630030478070660100977188077967104977690106219044253228684802961755680208966082623589355811971500034429321494786419930913574454092613249244107470688075263957373666198190744916958479557839477352714992568083652910981422225095217281285891454759377368786224768040849093197956263707854354595987822751110780237766349889043982726707334320565771917601704144225208782985208920717825254976496464978980276928633353966223564797370049374526927289875164389401905191074458050700278812596432297935917400690032826291336911313740319294454218454013614538804011287714652618868398187181130023489408192304684881889693936187919994317123802498819836287409391286523312418231344220657309922326559178505457989662135783190256752603623321018250065276116791290042362057139807206904853251327056287305297355425670858608252155806292812305523693059221104370099657495649509990714033449990723982830993050495931932742753834305311775100576138202655763985253837242231782190118314218050331401253109079111562034328726908639386575517726179801231088959395649094830503510156100150896849417401290116151462230030116900364417763664963717206671060080736337514349700514104198812656840728695754174408034226242664737517748881858788339040208037840847408852953160937342545937641315695476591096379187518534357825479322990213415560118354122395181810678560364609896093956670424287853595480259969561171305827255092370200366923382609501617319339980593160183225717613525757595176953707914327406559805451194698755210438643620187927313382219989747592944632698736007147073030787367709344344426070947691554804301844409357219172375608256465006927369751504332872938028294131903485674159939106644499470800181166507069631923445325507299625444383032605905830238944582174038856646019156211496827842093207125656360783456985676121791684964701414570964403992085674995553081367122692654641301532123102993296744118659453440954211648161092257010165588243202185579114191335473481504969275285260325975241825772974616683853804594961507131227681080402104173634781390023417487866543141147507178228231119179888984325481229366822225469414282603904540555408980660275877579738222823459141075216151828040860216392844277185821552740414932298466028729354463701463539635820209316759166081155089742768320119303963582618382869149507800206961750904297322483086037138220531578583522212938393098060144969557765057739538728069859002281398671584520776688842082410463648062436375460781011469368374842746592221618306008630641220091702388216023881349956278525030731372182047194019472677431422518829814232931297586334684617781322337813189901094927745916335289307351861521840146882261522442728088879989438048131347515260118638769219980378092366730325709461192375195534578096926292079926727781684478363121679295384879630050522530452465226026560811278036110637958467198383884694774817420473572546265684035120987398204642976294340565603137896493824283988364375151657706229306371968530344152492149901769694087575152278608946448465049726518587850044316472050838394784421268876144311708832786855086647221674391800280943228149176953284237469501969983015286461998984416681177618558623301356164957791907111605602424296450926595403594359889873083495468403606651656653537445836195724791751144567577045102493706377761679315071071131359960332371765402405971827718073880834076200280620198379488740042731975484820292025604136714082763406852820322264094412663381687441671599337231254638751894997377360436511420939802053390209628720485136756721130038758273683230192217596326014773630560322330310763471749338836795341221792483541930174057759067978068911668745717032379759338966945712276510001717244209482838197502784156807363454216506238110485753742493819487586553505482095617312201960612506309845385496797595985984859064335536371365942109298825727794190465116777305524390828622448085854322008959614665509653925667512684825871585825064399200033403707775950880219802016528333094121912320775741817121318615717061055401841988665017811245627264179162938486083358116628452795709876298066227990607730463811027249674737556275334107647026861143260486881387740682648540890376241270459465194369485971090123642826120368443338045616766984347386189197256217591074609988651785701046896817257737268651935784458232202215786204459846034320862074698627206622352521238314834602240989333076932429174774082102635570147199862048121513877202462540763497447852901446682602459567135095047242364355324396765448467637766594375315025224164791981967031271025301685330371582222099860650645449697842266056010878833760103244051139898590116427994851751379932222370145399321404523976413195309203471197124201521794705118721081309821317134443561726112351163641520655001906328506817335310539419703786740787305034035052017746859992862763289112582286982533184894895405434015307721394696261809979260215207149935762211838137466927592165110805620802574109943623831610796050743094782826566939579590875035525981899509819298311653013856970402934853929555901360710312319316622393389205393314208274134533143494752350065239290009952905115506336121465757846182765517513761224383823521598780096154281959856734939558256267883723339718481015243473381343221031386357916442986150596557654766528499929158266868743465244904734438677506596050426344960834614654676710161957168693249741162849414478510377259934313932417536372745751221683010589630297109868051259753091604058143164865450510246858123857523298680560289477178149020328343011026823135342415386813685441898090087063035397709379551950444544090076647162662632701301930395266453663011207498374368942784075900223470452246527524123358536776429679910481437150196504430229210253660069912416961135078821774409912046981474186115787584144180570180868464279855051165619102780714292883879772268260975110017777902444173371991158093094295528276566964657151707384019735256607484256030655932945444919444877224866684416778365072519619391964236842818812299300686097401989965673589119148112269431403051305796245937667815637767645203810401034371140580206042696499761184885069010488684395377869787331600588244030127587929355141554819431320959377060406682968489011297460946403928070760251671527284759613107515228596228119009487506679471288825647325976964924869934730084349677294583819180629491437528736206261844527936799947814153313760304455022888872731941624642039409095598611900182064073946255547817018697687666517483707908701612377196145000552481341002790272368007211605980042765400593504346148862171165557498569124156373696329644126909077006830553895954292526116667417827890810234406475701050302802940349547478481294996727388459569424269926813397109050740950008241108362113601816635479524778387592220562861789816094584470151301733268782663841876923052934380562618862395983391615892657453195203999255953147245803219293819094172002086285811424644948690756988873638149539991321340342299669792557823204363803658548332465672536001927533333348736236521665690223348625471498635344512084235248682937030655641018492958050925575552429700677134655590709702463115222997812200184981123315738529968543228941919269791928574263267512584435904132759155353813859283002923953590891083968082860285144726347305805056041094141014094432179211873966365441981384931782452386290932378538524538026273930496417708920427733083448826339171667847509564308092505649614946843259959359943209819596415565809784441462315484330496917268315910293889119243302606096814633909772220546185608868008915372427865165487115184394710364610826296584441093645370903375470636449753216299564696764318214460888269882500413795390507460504218454918553538761399515076986116080097053164095408943894874038881495903260849286347530581806480230050915031005846116171635799522236805438402131832256160966905414464702985159794497430463033689443649942866973990215181507540439468690331930115951190801571977841672861203668027174014099591904355514650721815493243985718779848476854972235260949028596575935457010068796531305142134065209405306321860925225084385841448180331639048495046199909816228463427740845401121496979001894776954821340671179431187767157311512879413301865235562993658049625489888623278338976420486151013353002014454689092466498808638353240616891191016664292050637133086177874615261516148192248557240941116521175171245375597776682440603627119876332272842829899788990360549078369939708784116331337964991385473361433809910510310000377766973420377901612211035418480553948975209430006290114882176088390278271463421344012627017978531298671864683138523232897338246193150235603625155932319229363077609831403471437920849069118748174683584405770926276509793284474510018346225216390124433983262357106193326358477908691737269341444402834972886171136125428897296318777174616896020436182660161120450324305365920463201586108260274827254986998870636092397786413870164568691271665812029017091389137125773466696198692463345834613539794068188585561581341250510004726747087817390211222472911762086745475484874752978321284313395168886363298517251049305563312921995130025538205516730110304766566200207810307693079676897131527681281454391978617896769999658847219138981739132342923191206538610927459763682711354820995118108426982022436816299597382222217110945669263074982048830049930090297689011285910647212497356392820877355963651101399156156991217276652489898992274409787907609389330090686702381440658695697951628434363062657803937933619495751547382852284328442414320515217594241128004283409038734667316933511072028006661244661471102123359233663284380975034714971883370704475521557079706525682395661653798736938146778258586020712150893137663904727241515357781427962459092742909481616689444436811016756285373891871705807011144307206781710040929702226496500253414842724178734728324525068521728101795022525862849991032948032480219226380721511145459803772964100840744154931160983799905034768098655739907081778576747243152697188531406422781396842109537033387552193869789026236799986175188091347052825190366155952282254506005261940202267795778805945574384391277349431038352805596928822977318069278637593569121499226877298734555107490115608685954666651235255829058519494832354118091200859214114626341711421863849828326235584134670431469090308864222679029825773533717238504071202763268320468181819085311524033118782619155337625668069257165690346082356107813083136016735950040803454800170770831383822700505944543130325171797833627219823932707108895505978742270816166850438333255905296579145864123323074680769022853775237480696414841494153462525823604832650077306745459445942017661290711396206843422237285419762947772872270152562846336401380565112319928783051721930404841404273213185547145974912706755246701190220226277327973329437257050418209680915072615909796542263912810791097796166447167275126972751338496941872024501473245173909291858321341737044556472610594927388144336796736565647286020943380426811226896561480912346675600717392461318684976851276444540350748911595532459719827519472865295708592080597306772675101347759168672641980123370312450250612132799089101815922586473958521502994343088204203572862670823809471700456484095690518775245536733478894529780574000362341479454562413458250803807446453608346496272695484239395820879757625074134763472801921924494602616030972294216737000115398849597011927879267607545507823385081490560832615953294963612829643461280345910808282992902849152967071356029674200569319554977233053944172720298616365480626676444009617221176903513516445750788052547557758492178039775643506123808900860478254323782602542659020305671006746720721960489354288936135259037759070442573842784489624397149268486005541595733977112208500559797430448968887300570821279156483397586281793654616647480135021559453112177520997721711298322039201181456485652475882965089301782340557694267242074775598550293141279136756426722309910242632356852865645204742090638275794269206864688230181110175871843049115085267706174121215021713202249454453987306645093503030144394250096249787409175631585113184670334456996062286274816731742849428038069272291661805555606190937510722183430727636586704095023636085944461978742053476846334071551495128215424851559009117842519756318468566723812649564715308686311812329202778486201742208792700896657606930431200033553475398112742654639941750318260957832659306074208454758851602358121270128324131803089447125598551257845454015191863147955329698143927857251025222052492382578616618374329453339792293091030329717117174009360981590996231377603594532766664301074458543989825742919843157912687390467293752408417369727913285008400777040873641690421154737802823076911737600677962100450477397094537039715044806173601727784243907663009878251554898586991623554995202900842856292298100197855907824498892461616993207328703169054372225820649284575080932298437671884876766649039849121425930472183325089122155331314886798422627968777876857794814080899803294532779572939408301649238243624477114573751083994300960958430015208833732427341749161995754682928431703962119045588278327627821112065798664823141591177223655056004035588652681383528673155512902432112220992462320882112400039123556784257414776929894480254537263242575661816797716650729775297476929609827798244677469284886363820389027468678159436884768901803713487384464910990914383476869171403417913997131223401071610501112845408619793867770996243008884962893691141301262168643642966512773365990783544739557024035727773391814551188181259518959167613894544758239824542543839044764418320581401644211659484248093311226894981956979092210055331821421823956313886715593262502418378787212010588104832754502423984434335550987409510717531037973787375132987022760225606987495846415471749733324871271456056844275158244436217659094861075563750444471200873451332745542180445593442713235329498979290656378210232797175371869135157303368776388410977130366755842701892288548528579846386113630460039653185519452073616308674862013750974101890908361609894688496580727554249481688985176341803861649839270382818614350298516377504616919450438154689611322632034501666715024116078254560864852642983120867609920497540183160214004086623142936905695674072304354021442024276536982936546237591275262001171668168962979749260852740754738297303644638093864111647127408954778576226283456619208223539085665224790726354786523403745003341897129276872682978453092796733805742985523581837150565459176543828794316687153071038140055127582774598436399416427276457830010739289990825347267002749820577840940009933268707142952650444353392800412981858447204057538585126004016995399092734700452876069346871305579513777601763287635306107539207430131204959112116442831227113665271991234050840601857106926588415928268585698999810214980323465061588903399411394000912058914394188683503986232642128210522303644809258624392885030288493263978757022757656294301290647086880219654469162175586866101348066642682846955764310940527302367275623230912473178185422933790920325566650180930963670929238575352089584231080974451381866791239609151229814083744944708481146852816340139813274993157196782946461103691796921600666144626140033393296529577416834961767171975332061596380303389260310586180485003830743594897425396177630415807588555316049776001743505604522426600717408181350202467212802710348771327870887244300608746927855651276677389707284529187806307413474227298955800147076200100350941205525337849811750019122684779418380153969635884786584377721994313437571974453320816584217716354433879414820246239631565437207717691410110403454512027493008610156978639702040568888895519304012437687800827485324182977554374193071909987703480668614375373732546323483530324646004824897779852792452003302627997835151424076427485670116176575910204059464373973868227332361175619969603477462635446046879113624788305689446357449887470874478801909931058892636017522857527305326851657151323764220986164259477348965255236157787804546296967897138122055056674406871819344275880575606474969981266658256240882308349428930641516743425327509361985787604759591376238767254378785431191418427401103248132336184205624142187569509790002129031107732614754171050981870790291460344802365129698933263440255999836352001867597730228049864924472139636356099517324119583031422946798343190764892095984544431968946631130329931662106322428175328988994798505554551358816371412876620624722474074313328606294638652733598253958718053683876752680965607412367316293785815229534462025953573298065759825979970040174585148353790782476438293688354932063896860669375040841981290337256305949502771829798489811162015930222210756078277348691822992564720047051354411328979700584963977376988612427853230366399282705261996579435800448788225051993705759692950934670949451593348888185457028181206577728241519945690817874715680751579311743153146271166746341244297088136542780714714441972658963712457266987794952792471840084854096686375365456119089003176146984796381050846473963535636121759261546192436240515173832568382986431126209873003767011197300197555606827492608158013378473167092350313991207626791207131471110361497198405451015003447379533883812194794395523039607003409496309119675609061819017850996209109824589432428997802481773197243826343009304454147644781743516344038014590810860191144586980660359125835506811155734501000882944766129338084797314835793959293099346476592893097081824942094839222127615050871058117875152377278114939628496648775463861310393745745809912992218591145595196309241681565407837803003418613093508601288897637983945423499924255858366633617553297423976125991760667855566382986400277686727491669884855549477993203052106457429323188217710308364843164287728497896005718677723420652827675443886394403781662578731004331280235045075527960737130218230694276948765697912662687651390551200040764973027331344299945663161820134193586512934877645819338002536264014721554543013546387658305642476563214098566986277550081094502399403599590945054156203165928710920040978016786807198048613859449634522058442519356245711714877062536206077492141094200666914090329414429855488890741835980574661196486922998906459662874216746770320319159335267329094690362740348835350548081398745991694246533830344822803566829433101172679884228393761445437547706925344400772172642753042364241316840207885167112825898928543377298660155127997540224523186895593973926646452921227041414964959247235577768154934704771137647848348152674260824671604435072664901138947366676972499929474216501974528898200299481845950060435761813381742925340883361255384763751391535560139124732447456854154023997066909800275407131704864814821551867692916259747145068466374130323469059185559823969228514819582916779719730861928124028377044876971982714622852624990382248474766877555458402449249973474153128841522956303467459865394366019604513280652296553954365034291915162076862547372595402321610031610727207166521396278723230904275889453379844233335393126220205184401173817128588018062448781943026658287338694437696500289560727840360431198593968107626227455303474953466528399922370223816826638887347944941140998713840940169656865132062022136919197385204127119123344644668233902452272828825660530539808572217710326450779182908534458727076829732434845990665784730514804745269136643430833911418668827655290301125873401711241570266509813984621407121181607054170499768524507190049922061840321303687413391417719002162111685022734310183744607659872448509432064586009138794045670526821780742194399497011800480403596938680849772423807930753371973809893753519265870896326854564939852795191731462466079755658601358975122027934528821531218831596378630739597488736548364039935667100784226417338706390789791047157765914486160978653394733905441510934659917747571110933686490462057374653942989383928503520027548711060544792545415464153395456538817169735853122090844918790645999416090963707868104374503894088830953278876860261319055211892181291785766673470017542915517230063087827826988805956932926568911060389913555385609441052568029827246952730217304475446713308697116189423934077396973398233916304721295127742282991700631357293789883015152506057674210532845459193521695494666610001589428318797552683206165531358309668871458684134710783841127927821965944842283627857132574657074825497610565962522063171967179734012140815250608857488473745278033975333247376468323722972285198565746851757434359062530986971277931422762462027436034976328977967576188940043728667384465153118614304258852186184502632846030789714038030327726169697171493296660000488104275588980240882123858787503895551596016650900620369942317980015785420211678199022089334979499321950814976100823211807916939673752803176214931310234454477240852022817307699546412814416877112808672499911347425179532325543828355509801115049610768348125559806402488209220957238940029803129870888262425588429763481093143445716055400434366264010507911048394952701466593039805927843997949797887018089200727627186138461699898177852641473594707907392196141273581115394203565691299670980427258959233758160156285361686946239113413850453212588967468162012412985561615743887817140859827926097949195090871063347353729379155188589752911565147998573441941438623782188843680390062933189976761756878314446602478877011970257458615375743684911002046275764226909732213736556638581497060961605147931321928475436886088965063025609370440135125450557478139262076892566074270918537490379216523285734012193566468064212154352661536689449253767449919631886527555743689271715292464858526581170910713579096429674246721508997390068922463381948430383663055234927733293805196572539860678187259995042233771903300198501140308749589009934271575690043228565608341526128608474724325267304840118465887915066914470446796599223131769353839620058333224758331525200725718495202490553992714353777446372180158272811926382142270633108191027164610963593394672178388115774370085345310809935487752043096891144780218831220959100407806665048691149323858465356512057268029041558332508454172953144580611255076266491946837988867860397353615402688212949060320048439700059527884270292668903137592457159501212221371081255116834331988135169659348553068273969635370015783618772467030962161409455602453311762111906244150521755583730244617706409700541539760977873663757089600731554974874363978274588964391075560651188352010044547178498639136921894705485966928401671349870910301651943161394679101805144575561583600693414725891376617571281286364816581599145297592719658805088047696210181701369649051123369823853544482835996748417554543599696222899660288847832016803691966105992706033001964635287566675266194374680733108482739316304698174270053787205855813259362539685916497701996494157442661699838814771951082158791016466029996910596510299017150161315232679973573828905210356203623967415302977233380330399408821384914844831326296698558532876858473154222349265409564007342425745460217719837750807767261573520318387679416444583796274294407862566505265562131416265411232834230856733888734841031692157957848445371545856988453863199929501805247296773077681194920234093569627266117052392981656043196406076363023594441567110978438031270660307588719534234835863319978192031139804200960691157941430253618031865562209237107459668166516341612412944280032256841241451913364762394409954424839902646728849905769531261397949563378456240019780031777383988829653012788369923904640317340450506722495078961253173447957892947356426563297229582490550081885616179007552837858068937426987292151381093044614283172915738191020421312684457730332309570160143306811752507946964258249183720164518138566085081308189910473375440994044225187852145120583763358740200174382006987719471375657172970110250056410626551947979695415749886804933447125539792331708502094814017915346347176516962589961488681172709174806584894157044510609627668496146364138836817655811739813824156862626054078970316063496767769354447385840570498450530552608842437079713689339673550864571741475288845252834925432009416368861488760826876548824218952134823492450648861020911701981077144552106751219188188219060366430726913002180054099289587136949097801501510732914993734189982538176574040010194060331594366042709444642243851482558062954730886092486337592409172922444695379527735999425047726236018735883555448160358287998269145065852366306036789781275213574719850308109305147664174929217731434969738888701564309407296080293166323635400696465018885854533108131369381445733357579480875333120114061711643237681622838398405290602849926644315846704505104156369773968833828396791811611181078672659037365748232614146987295135752210109653200512620722462333877437326686834083086341019185250996784709836483888867215508526304190764528114695349956148492450698757838851753943016700139434083545501739771340587233158483360083327835316025638077638307379606657828216233439848474328759914209150940162123856820537733708185008297172303487346336635464756465541253929918401441283903062504544916125717386543752358902222776712617018718027296947006928849341641936105467878145694121173367820286635834172678795748834215743318798639551961533393882850361090799301239556335024058994435594491330433962730175321483910173706483371294254410811329281965514262492656737330889044851080004938646787586926831746869017142141295464770412636126071321376392346480010933697121912008385663228081768996753722413321818061490404200385470095014356036146156762447202698421481714086449709656968998787738937109260393144470373023690371086265512527584871340502032314575872680455389874626046699854043751470686181991253951855873333538790125580522009385712701800718679268501201807963337768365217593240997062258489423777699164057588916411858048124016870414378627573734833988990783789680865017988470316734920360796390872745526782913154945327067519710919654958818352343954216901839700543813953603169450202110502409708351251458093654588604580369975964920659567719315968566120188472663549125976771218391540480701030761550697568773594257332062913599726534453368175565328816848019858851486638072356923675714579950616524459312601197910218872562975242446627188560590257902353582813213828339675012073631519449757420194029186493461652659154838190164062274163743978307975832478766561490194414028514952702810409018572391945170888917280783873857465794456689634694561009262157829363606240578656078427397978222740508414253622765472006256678367003482517371413316931623331403306286740410670031171351312214015512136218703804314744003042532303385756064772402751643311579897202138636562881786179501734686402451466513318152302243205373954475147677667632077436577178834108514969027055212021953638777016350984830618437310021505624125432472315244183866345005383980235738794312438872132674739572604027985621409195289554990396764223216871772865151733525295558504112284419961552062166758098478989216276932880406197057094824965153597617143523822628665926746603146363247851507986734292408293543248942255355497987803351054371613158971330823375413745771866633022236420630861800476242700337999462117721340603268708722114671368959450647704838234104283749669180620259960825833914528020522797780741634210224132086249616143930664441334522010592292396700591352633804331049260147437851231067436289059058958949164866477529331417805318383121800704300522371182499662709568158655660627318751069216234590850515924205097285946627565039684255900060403319929907695694662136555285107396476819337294351778453446108282584271555668898204717952634102437389254457884873838620956548399763874850506203655969848033994735410053799412653220037574800328255894517479445126542112995773813538513084682012312306539193470473368788163196918192772421602101602307230993230836000460082860724937976855676371096590744499506915867097225823734219171223997117576797942252828372428335006876106096077119879089248137625919752866003856859725599359911675882696639130561969991631824583632671090676893998196633171432383957361648277564714785275430359180362826236305381227756361946264415596022438595262600976859807674019882583268911450684482230849205884026182390126921652282691083420540584620085474540986695886791130946485780512574894029943750420220463019035180204738399439085229409498516626327027520938594644770389111684970926219198476207166418298832309122420727023925338114721223118330686863358639373746522515007460623733245812912757458695850180845182820336126935921644367742639995454287590701626218512717697152429604038885915369183014448766974611368480491338011846423332870904051005549749826864532457893271845252682301653314026955905674974752234888030166995501807109549439144682852960456529226338230549746487627364979774382636894179585850482439430088547819095453875053463064232747704967699114244920226518309018159737456814443827174636121438843724616979988767481647588702068962385994822126684752223562001059562845858886993817437340706357707827666991446295053620143693532522536779600364099096614117183696803449196921154307786780328517760874463287310773721745179494832232687805830589833162979635378353001369502662839599034846610100311916140415705630109275399379576455203925964911659820213470006726513672381975953358110299006431873744440710129351076941089842517351561068182869950669562223393119330852621146469171853490937316013008805546353184510497926959677305705902988799511710221278975971092364732825240153557143213738468995679457782827674302896971430066731572237163455013116050023325587921283062956134419818812281873174628134568720301120466495979660106682771250309711183600435320532312521950736485952396449907530164583339573779002719878100437790854628255599387410518189948834300082862733688822755335041531198582385907367597986303560636933319758152756828216338178581982411698449439338634794660301918439877830932434562462788890765727414192405968375530647558412215770452779291063899760013689356947696688872805295588210790645735235281114918843737132730742489175915705676487688505974876807900694234614104797673206323751048443739417010143011269449416509645771019092044608407497298311525779442660125602306722946440973502558972004204723982561761815369173266039712999097701067539665932072587702436597453527406993373003297987461124109186890594370502539530231636452250802702071080952297362963907974882851452712406588144755127260835306088017618418165481390418108983344197439343548531489733859930286813810215257412693209764729769186338570029998370950306208201952061012807818311105666460703479783580992043613037645588339088335836002032798619265126629414914536394753168060205625640872079596093509997843044375087730023928122482380289444497791316638322212689509712132284872551276821514912522815578586271554697288747490913453522864169973631881095906894409239221726471979553292951239717020030260254185326970922820539045563679602114780899184841745194129600005779004965849379117698052833606776105444644766868006991267254032215973593428381013405711232625340165741248278710992865193153720678411144270462442125700828386191958263314030784790407173038984884933387119150089890948041351765003545361731327218611740412878106371273897897305757493316096477370539059574355358731421743884027815193741969142588949708334348833973976632461573750218471092762362945207118842801369511572497998813985906100775142350576599476390059722905415112880868663383550336894049597296977039758988509741058588804426176104923742455912735926277967265467590284625239529800546425367695216739842927089742087564545949414386797064944483304113018531075041874707322901133052474693171959724130354674320485470188632663166302269078972292450844795714968776053918143574226954428190652472333805955927265756983168847643919089901990014954760221381127612897928836102418106421857256333253934052184740882405297293348977154259572518523026867460228939935113766253066377820185119775420918439081955068030266020379202820457777807432954747244327944424483595958038083884093928029658566198668403271883700553796066679572120381139415760740302178884772333823577374362263109193249184165337695083001737954649495715616635379505436905815974034544000142782289521512198647372319855067968969819652977257660912214414710075823103952393273350561515101603324840267140172160217779823993500066560392486319760438611444156913857125753198870647090322445127877124710707872971170120875637907682167805788141393505658264598821559866715056304479669884197611239466125216622813756642587664583901817390117546917607361555731786678401120094565429443309143544019722178620792193690316975198279217945589075720206074142196422835303830390326648969431046758850184141836207484245738796530927856491693848234541459226816435663806075589103482516703271081408610083608152625947554633068788782422010645246683901739801045306208800952489400593690897700553710266114900309889492611400114359215959088046290177142728084759730192360611924225254171736623823956318857516572713400259632924164003914738085951163117269142538234828075328540921916619021056025358242780170418736315312847137057952139313452171276646114550593699773231869351342433667223298127248107266827243922954558249681664224690570245548927841761247863709654890773344624676081340278464469653236176162293138654080230625039712323230555281911735010690415809225514966991792138107565334831138870859998229285342646338904897327709898949860673152426994424546866783450532097399732698013169709362480274449013494175665365385119760542622887262061709779908564184358324038254838199819859785651206212943445365877314499980181507345122535684202349493537646581249092322259378396889475177719684325689944637969323546948873259272433512738931081119463843658906333907854269977400369985648462881162990151301663423562720105853775592820242701259200879753733058897858618462265984626708463473127077503743587001062301692026830671504883210166800910236139011818675403922797279971294406973483233178303642625328139790456075108502331314935756026446917454917059225325912582657215995745109133680615076078854461367432329491418207589541875785099873578573290182864415703305072123084299595379014125240864662682553774606830820941461999230401447467176821537179601928655382136340734545533274783734138077973954763304063461485815989552375674456260386371247315851162614534570189038447733296832604008579248828821818887535372761040183413838872342310749092948450143858642666273627156758088090759488148612292961230382510218617041317742726038911882018541594999593042442021950528078682003134824373737646407389114957818802999712584226816662009359600634530324889850518288460127022691400077725181010590034578380476983754619040110273830499198111244799679658162752609269540051986061332799820026634037057843764617534984051832399069634929549866923543222368592428354181070967360297413788024580991196323805049897384538907026755940818222289271000061323873525807789775280110011377868109548196227966119793905844122819873776433438411070033728666633552969066465221472840713367209305410742443018855417794769662702047094526444704733431274107689019884272135514647113118907856793916552525533592564019834211231185500245712429400159849894651706330968580806828836035278310369632170250535192643230451530570119371324003832876930587844124951979289200485131487363554743153226205783757821032809816963189157106031284243820753343256881979308070178488250691451253549319099725664581787158091743714724518265646741602854351923306278993541322284879383986562971761003671685748201634446278350727647423587255274355833733049529187350425365709835813276207196775708189914034443872062096466106417675253670191782565415000082142192119195819947696513728980562711032375564044393029116817524624524413614441570587769500875185701381593314198251639985960715011506938450681955658528066380792560569447110480326439393903657454791869621219844368741726177399866592339286598393977964423187885449207375925379578563109641691787228026566282128649501639885093357232942400583727737120943320394368796694387381662127676987681161510128900020280425935806583829765629044133206762799181168320761800997419321730241044819965981998272228889245236451083257017949268240241728666113137865460334577641706074074341061741907279870314785754531408050431493019640418983467540777837702557843501800857350586030180912662168610462828695198879292643801171991070646387345536098169714265639395070914048147047579777283952297105155478760880654922709613864057089881338047107850530864293785733545137310110924128359010052726045736531000453964803459812423675384920710636477502811549102711819455712368476577466754768274741562913646726703666567496051615814609430051524911031542681993090730419880705443982760090253786843884056607319079017669392439245955326575672894896263296038535203537971719114957506856465815403792362455948838724928660281512337689438329689160865625919520851139858382656239776874717761983937380588873233079481693927761389952282537561769948433603313145779160797860560004856698342995736235605403004253220601732548279124361066401262783072906747217583607593034084759927040365169594230952753530870517576140450177569995113193808265261157228304047531222008053806263941180612145802211505284212695817532671472672736627153776786527128810789141158297264500850551905610941342157681910011996260736927130834459227324359688265680992518444692038427032083543766561455203433311075957301659177904856620276811684305042253844330602697197396917762832389584075836287531717515521888272306103812337879888725086518166688143263853616108516052133453294854336443310475270926142712151625074024797417290229623290379954299066030192475628781282920052824783822985425359108584095491684109414367882794660293887710184039189367761223192125961401896073686244319196665486024595587237712884759873224585304531521599727295456672558044703061710951163519981937323071395987787858130586756303041897634756120552648503134860468322311806734899909871901975575142636346064497744913467951089675741110853236023133862438583395198534604507633501677465044732047410328126830123312216716471696698775286729162126782498405641660465219719214925064738007374798234260346104908224743851977865647780878824882986814825128137539102936172817684125446583544950422923174341094974822051074053673158072991425357051184813626573126010003421433215441989722819427229097414707086262288021607226200710177886500207254054759865358149207097398743757116651029456350766643317904072846616059364561752626716215107030067373357260954204574142742020139229268414452686910607977203461997758922212721573237863693286694809570623767807007803891630910310877178256455021550103230036118701599237321321113486649254088024744675725452100580985243164669999819783548300895787157410064859373833339796161348484390837228191503958463376352969314333194323461943627476292965775568712093358089111506344685187074420410861580740719304345716167782007533235098455720459143269366110864855048403710990018148157743697596898252022951440852442678675047048907375779933994488134972054889819133575614413119417761256958152710464703585973099744374906396209052984642591886952708337662436881897986161285237420068547754823452656820147129239525545741736401620585452371598989698291512509673266291566848057956590342571461303020642404493773026374531643897451664042214624268243459408597581192292478476915653260890947185144472693131928352447835729379278602673165473496307213681945224640427440436053618495655616792426120504363632284873904721700271269961866695887972661465030965692768835433126478154028136203303797229963502378379615879254629617933044100608720272747254330692730618630817662483191845416441131010846674529525138934918365626542483977791654226958872835572431009784931325140343697307161851674370466950487419928797587589679234315115899377931301966940610229099566606138246964982747383569900054808003882811745121315390088006674330127949493671604645187261718001214190786635198245640416013998572727639208513538073923397519419547555535124481266056284404987804053024075336531175382744733607119221976995733965479876240859779735426867856952142471242384349011910948207758912213499715678244412070901591466992031229087353122754344703327422544065413017311979375303078642301223922127010271050280399847306850626830178276381038887886589290844642551336461511161664183707926512150361343332992364634189076384359744381693446808370591953132339841885380109177041868658590913958184565801429935872259358549250483543861458785632019954176122135953349874045029401898357407595029632569902399119062857970447024521866477297510672236008792126552753744359112282854015273692821696836206218959638016737659409355851288312497306511561071167147864668540677918374279814356228869845081328597428963672958931177194035157875790849589986305744354283612505677590699432308064525226318656794756974805595891755056094212400193582620959567514585690757988886567313916303951571231909397337621296222014714625940569562637044249716992194630273219966274570873590113152356030724290882749785409009487280746876371325220409170557465846413621848210751951116383845177173380950734711463455161910167111903334946185316861071717155421760368039358704294414039937506826788675171820409620599600799736629302251335852662742326581273722694096146188372768043319408558853239591136979814787669131863907544812558288152363473556493368614250205879181960995041538329154605651973011272193929017284084815610506473308028378165116564103592059700544600435631740476274626545177814825088846665578999244091736334485699794373537664311071478544020879904829981852955212235791766433905847385662515741061132572356794218150136714046227741254112645349648189469105173194075269179783976714089399259800521331039877069223338134280163569195235589660954626544158035108081723324002221360737228494309794335394104493476066048913667478895863585310248886496748766191992670970822401912015139956991785227936277486420149124888128012582837365754033372739330715982835235000942937007959275065045190586374190841355336544576407436506292863482006091417284773623349280027103215769906306311828756254683295425899009749371132786820241204490167166393743840587447530351421905155859197173904471348401564091992903897461872016746847313826931359919551156332078346815608355282689321471687418215338063701068578732370717547768219890952930376194627607325965081788057149504322050050185442185830783480627152074631111617753111847873139047928945356747326934542292255266118023858134639022630646420724780362644155522781275697193359723928206744394299918309900680778414514263614406304632272691038193502462278636353419877453306041243786475326342129762806951930806693352710973533160621546253540896712958707939570423029755269115076793961880641444976904419299243488183954405223712741880717826646315790294657978381253433958507714946011897228950334446104618070291496316788110137862248895004415914396511332232914971338134411959158941171893143503686976340921761136824143874180082990450094101451907415998418802758835002186308914031556024570882299301148665066787755371482783240040325788362845030089328094811039444265187215307110437187635009524148725554503484986787351557939336869431672580339129225050443260479853380472183581159582090650799189459543412838993983305057903813492001108096060227285207561613011811517736367702791104893651719792786034530853637294245175002636355280816947503405277907569910791086203086367792344437134213161823666390488496399063284226167322968965121195853337164439377380372317382843462391096683918301084266965421529099485262290573945227366058907392766233892720340045800730587340341109866211167063895959352964508509890364499883140201875300528899863744904095427438561279340272552940338860501605866573815835305492745429377247333455214200539444825166607294618491459371188969372926940992607032506805218962739883767704590103480969705921587689007110341454287288862362227602182732330402042044970185071895620410919024308622062535729693840328728033497832990304726242813828283518533151349409167663316507986092687771921213485571979005535623165428507093887140216294610617369365320846579006836470769652209847109788282631066030158247407513341922077381665096403221130906886418214436746397283995660430337553970960478733705322046965327027376918039282771354591223778061858521473787359904602956235829825568318819149990791825858677378504525885686232500964503912222007761979161570893524105840075363809494567211344458108752880303452004005854876386892984711320349929504833151612180008172548421526726753957036019870759669974890486386116408765007551516107947170898863721983541127998760754599216151069684094624276395248332528637559265587262049309997541937970336219462559276730083106869515273334093463631545707008782320271878865365503064993542272318044787607384910509411613277054826585744095121172684779825666759418808883784019725909602987333703772537326987296573820518010422899102597023415656874910771930761359687062136726919316337093081334293223472305843819205192079432714106580568783914569699041080912913010867482457334640233340147678949669334261441646126477459807167554816165440832383490701491991262089403166457474029865231237737421903122133002717861482116905812223403953672966048636445065498807355113973038482619805809430693438006562748121426036886132472940548151465094881950944015586441679659343389229192477145833450201161493881736285540137681126529010621134223760363309627330900498830337168664761235235391603754182424258297780568372324263311887902472839715328333694885977307994623827520498995610477521545118272720022544286521427394158215591237506276078738132391566656547830809652988207586152311352114574297095972143614625503195630898893448984249437126017571148224290272686458818869268679202100709211493327932070068577040694220234025555124398758743602350528745426821663463016966078072836775629550146921168311655818332089267005362308358921702312526526165747972874176918478962852204564215157664864552103950553230462942698661793990291119797956798005659109351416591107321950255310983465267416227167438962177639083630729429170572376819314851367863078824885423874251258668884634256702152327473905042721711239422990137278001387672607851578368746071720941657961952964317751436348683228581768034659981475648114549141049350484533104582509055465566131057850012364383741304047967012112962526042842274453936708184820619404687362860388111520483326020740698245932575014052637309501042257472001548935420663921457078998841237204135564015250901168009097784442026611342775888439103803083075449947671000471849117685327941588312764038916379861654298967072449995237167662520878120076319563071482357300030680300779849069499811671153221845343839832832402157102723447413736827099842541585890277411210114246763938606492012383154275376817016170873908492380034205825943520218594215274486319590041034201592260571441644533906784313427024097990090289862540703102151505668542358956212462453397381505214803474494616446857623811831713725606855557831444045784268849470442211388057198608746245179048221486261328137229297818489875875099179141975519639937867849065032200336421837278902246673925986836816941341463734033713221814182417316899719140197377900614215415464031203933486147906400386102191305918978086810120853801346457654703518965897384350826644654839329125471103162165075749674451580233594180167363147687711176571133365934011644581241579689742267025750216401536122010514032962432704485281433392998769332418804809573451920360536485743039743375852361001927599710699704964773273430422284546473511018096627571957689722717992142089730410738791422201847707313078082625841592287596309194779553294690885090876907716482741298758313942878013584758429829438466025498915249364287161246517188640887265140958439039742969764367703594730158760442110136114291707740217027469464393550061591802322667524017528126729750155850802482152897027691417487619434138092337809493109319109889000849229235122066934002273848826371854775211154047600157920794641165087362359972489419215790387997517035455042268615643153872172211889405349386739507371687683344021536050904824184549058055674270688033286088981390183511405941906240158187770596190465243073035169340655183960421883873024253150732694584807092603089774307121833807247039440374695345163979164724910321553286345704045504137039400222146095769711843168937945797734423662537157642719356221052042447682627792641074558594825648319409467162834928082728825027784115878733704585282875263395256973443088105335497205861808539089970915909428100665337454250327655594843514887830338117546183881739361577291890036792644416646630704624532172500461855999103666128000690670868013555022720712295465280518017838543468209494499913503945721865962826641853654808564694555139958529140875874651736924878149095234960657945748200747132524058559982622173547915601988381900630169138951248601958936288277139916507363391571680693309040038730661018823097634453729758168216360865577484487699017093168594350404411402721845050670283922743760298284773240724945196109802503659652877946051914810340596607756450109688644056920074384773082779112282879487651874394770561314129459903352141372285116125371570225515358088662475614764578163803076467177004342922924526499324552969880697049154131725001657023290288259808471410990652342481612166751632033684463775716765570355211638324215674798844688131225072574510092124823240112427374711465337000837508046312337207982555100315195764266437797277536310936538737869527719028440991503422012809577537834730437659237300920478694491417945973735367386990687298328914601165524552983817472136405155746728512650972970825801950421421717960475286740881224780712884490086421837999463587068913226052459005174983472215418049068303055721976905133727086364835452035176786947252181176899525531751020751335565551867796942834396685699999803533165893149340311455241033268831503359360250097608977597098608738307491768449887736022501297363628956678276979068714994907883386153846890492490201025367252721390714149802825280569112733709565123163777580342254647669237525286698853131293325421635154918242638765361481950394555677926247279562959709122070178695693927650697668966963807954741663373351763174565778101182545898878073284067763805624416665164224634469185919577986694762614292621304656124303863657045970797269786625071685318546013112877836278617775632873377256573813419485580344857741048494142880657544591276793414699160140806423713465093414795429208788929497061601389892581405374323230122035383426827544065294370848323408228911206339670868311449981101019547904173166970156465567010446435200775443589266054924769713061540855257260499304332753519435339461996533801519207371383813037662768244240896189088639088283236959148647966665778965324456835649853463408829395867364592037694399700385771151714167525940513529743995626860784138399553318592118410238182807041589073548170665728776840753527252579912151441401907594141247553334827944836486450685439529783000602958630173808202427768685231213315038777893414828310237932255838059682228191964930566181720865793856446769302935163230319930398700093142401031050214254842959891358675540843047116788117388388597206030172084875149719869409859389036359607211561806975028552720862146535847171548675173351964477020071317656123063962417401248168861173044895970446041372529196085322214943203218586309550819073669546649483295036861769418990370797750620012557503257790360598232758342933136490272758254236351874298505150743883365589729575529066583427856506305770248993718156044858575515431870258562991768718708498981357001096071378483343635605777880716559013167678880297103165943842143779645314055032587704437987782314762392927379437646252606799275586924056135226799936296440248547399477768307738691344565140591619191436192675009502140053181546869446109757879041517110461394000108605180764918756677239834386753294609538528370921384982486061944615822524069290677766553496229258169114091796886332636722837929906482360847051701032032094863264536643390104490469388170580592317478507803325247280692492987101342391536538250530818930308060824959082199916605217868252165106342478713638925505850024673339580723281959175321373020784420206715293916366959524300898740932045139357532664524303309198899070852752870214732460709199655727659273254505018759190977121739321682809604902835512454427830571466282504011062184570993487826143602711442572024153934306211627230042839969038583457623029918172249753600367831387575484544177089494535766531010727569582170932271618488926417761183320292071582245120993032207671011420618023110956901839753429736547896823064172248241511931798947125395783028747855935659454962830452763850909854225853050232568175495081075527761019533316265108501219578813675782545764100096573459020763641496392806593211751434231184299326867286153837443035719246057039858417537993377394711087938754644162666820669657481083399283836955073185138352435433223348719568713470247432505434864638707324332845091667704619519038845958593679456037295471295533948912085027976160315932628466224518491959474893056493666986217324307215416997920719151365637515687856946583751191187124697293493981228552764206932276694522446285149560071752821222272090801201619316586506571025389673436621959530750470027218236457968606233941544183311006854777778347588213553679743486920284671585137116081585323733273256152673090159789739476202900950761211518602756266183110533474426371699918474182721090626550059000650114548812624832756274530102479797601795282249709144008148917440405178155143329998224525558746615249045658254779435121135918425931845646167242164807290637725177397225925113023994185022085073163569199987367377190396364051705420330602018018757195793945735201759896782435065266673429490161888981976460436688586560819237058711664150316326489737331723630184854476960668884480149554538989705523552420070867600790418388820447625865785167585219138416175967904212845696937734955014642998161373647562542457807262401438714099944634226444650787348883541211136566434122698752658716809755650085414388673900581038238620698970424206028107801391982899601244659897923614190757317770307682835728442912678830867026958570056103309854130952102681911938006515620929230171804233138889302107476001446033046087812435017872321748723807994306536470790468844511280593655049195418094049820955642818315502106793031831513591444192977191212342056798304587921796749236058570622304033988515575734713130681031862198521415533818421064971884462118627009041945495999077592138276360867771403733545276297956822912550406501342690537662999969892288270979455254466458777284731314559032805892967970966183948851460219771757613467362314796117672605147408578042006651228166575595015759337698944487178531506632993293011052776823539445538434995901665076885857497744458651132217567413196560563747759182432889835366001170916648127291823356301049670645193457998155347076043622281966816548555964118470561943993983379345572607579513822541872809205792779773720538006069362484709925758889253769311665461851105632220408236849948702983436343500013447510738056724146149929402275186728899606486918383519834774194293973899199888378568609822402748339576196412679521646014509280376160605785870525567771855065804704660239807306642038087599847614046468316584515468270290018245069698893887130683286813723642220580635062279632382844224986314096734592559061377385054829690341629987379537830732390654337893040793281083734526711374782650518078755312947533685952332269255264363960419324410479152175583883963250905544149402283100763136395569993232028382221437100220425994427995341885477363865505894684723524779801082885703522051728797384937685059892692508448367543423794195885143587986535674203013523188093431552281994867252252796686375943182422199774521373096740329732036715477410823769700570158901126091148730636661155969221261541988877242148623196838445435410841683527592421599237239147284562068612062709508298737946316450912684095997209761826611238142570248466649134764297432684052282604467517114471972688294425691813638146210216928709966312126413910528544621263999828083018524729968108062547125770255327771942542541048313107756700692038658716814364361643513043742895790018467792772685769828175630733902052733984728428845333467069966430511357165405920291145811542792745673180390727674690604601462702851128941248682535937697949326757490151257959408476459160189548355084477477093099920689989834651236624276417281000359781305046868345774231178668022881855508301432042764271671122413170182371699517680546072742255477657546379943861090552700531624027574346044470514512751204772033505283571259127021967580111004598592158546869274451602959784453697505960254657430806715976479377727863742066914555169198208711996585105700511008807308157413853328273625258315920193549027061630922254734983529263075647295023321854382527268634846460098234426722868147627745461024105890410386376198285472892898588777144928059382614975662865509453897425346985530019176521037039367589637527332165341219379442936507158346909034618182399470960241284235713547050163479660042143947557937809620181188144087467289672319979511344117182752712989196056365769091160043036103735883473987868217985215406085390463681884801399912881764838450088324214013518789900625175241735275642675536773027896241250985654294774299492134698448063595020605151556141677995639821871880851213485983748946117526905975914077403476635477379316273040360685087270181665267979418701727275149474465057109511043434730638860013838239943538890812199194168232953124978662180102698897140902671066422595942693829178750346532800229866190926959090590197831944903381065281848148186497125695641747715229383742278651978667151157289128346295330551525915350832958437206576127950231087473220252131124040606429340321034525207132181955204219885702420032702401286898317193026436280037830414271034520703567566817408655964685566744957647870177078301089491965986758469977171108648574603765664588060254355489375287811900881310616347326157132461529275539034223342137798739223619780340100202149389458819105198122723693736842675824549336852228187620042043948571522728535268447700691852367333545660426398842893721207715724702104064365921897129551943053788575084992073031795940525991814709313616555787031691593193522697935475569913074317282307826745672942172352067418996359747022431360224929401761651175217765187019905437629359618499997473997354246248904900556107870611929280613217497266150672865852205574673779544323209565722916116790097139700127505277744674675496698699250602759457232278867783766097168224160508522172040757499512264863258610867529971998974250849686830446526863373680904070885865192817249533432886522954758807786330537414295205198343656060105886817427580939439483086785613341749348788109996967100686288433372615443383482014618347122487905343877581245422795972078144201774445630193049798182117249749183956576653421407493516665414598690832089642088492993282997308955698954084524021407496842073014986862447277129165467409309525596351053747027426822983623450025891252263080829423216548000350109711558592281448537462414409808884247363577427670396753484124512433993864605749073784714710390742938836005948009695287157594655143729363595754033563951613660734627100460095441653569692843967733238141702323091401069206058983926950116695579067512748875439827284690321941991191433109625742001252525311739079404110823365102498355425594917041340724819038025565964294297408936203329575724007274538967752473414574032403404124953308229847634643417956006047537157152021929994037817065688192704032214398251901416239116232947975656970689284855189817653210323197164763842951832405370798834736903898594113825702963016928610159279311475359079520241553974468534908973404116886050318082826099105293182804132393739135676271674087639226254276814935170329405984578339692641593793538585518223016454618314081494403083092923740231229322254438544758313288299603360340854928842628177095245280116483580541965002665176045120393565675387079023873060595014179338199015899991637161629466228582473688943164688783788681051659742794478284488019398158508113424245508221509660700355880088913310948863602735321281558552899544903132686936689837965324897348689092675313532148027120832927515735097792791764582846200416631496490256887553880607006341484697789090701448981772104166604618768872664740394968296166706549071183075846932958845254795589472676651692636311082719658132418313970238486684105306184766337655740346442035685033029526872241433927100969586290274056040895712650419542671530701213189019817556503600350717790952916610237142358899213367912617733192600964584270869332073288718790420812215534857297826998909726320224936464860186396705185688506627890614856892965655325128447172179874969303741547998988069181217689624927580718043908042717460216328269735110543192456235414916754434482565456475718610406240834853137700240085785864857224137277999230410488821509440318044221651326638118737542882107065077915266401768857927553191954950343634468595250502368758449167721312826986423807967167217710728278720803088948283448389418419703181876006269508720993798378149063851518932247432333289460047049282159779308663385828244298687619022917061431182896925771126250898739571781074645967383771047117118020903032697130336340814469568327697972935343240585719168839811303652493254252995042599778954868666940451037009160511317501278744571216798898718892467491228879911929101026182561498545223113114004700858085089096529267566716649809969218129707046131689393758208466217408758002914075218773594370262014006621534643738059512143121854563117286127238096873079565668094686462331582082393427837192734177713951478522170941940114083229398939984374744879793957929507086445425843659300777866329696971799634564778128006645923278715326806200727119968290092784890529878094031277843506688880018111467255845863778628678248201441740601201310886641643639797451442113012961714022929517529426306065103524511215134494564797422365555578689570111401032768896787000698270131601804122706426735494344452447843938671424853726497791244049059498864793296259385766416757489918409613705255037596245356699690445718835683490436772278161014997598264293081030605238138454494974754347031886748921109571673600814682138296535342364051059922609658033469479572838010068741800894625659346056245772444167520049039546307706299191813385311923301525751317193143135024524231570214650776208237268325135995911640281925774020900437442826355017485666887596555753512823479994214157136518832196694836288815946156389000901739562674731957433478416299818434947548651250411416258961521908417434893113029643935173988670863156064447344820630529834387658417757371098908940280180234830037456907033625632339620272616322967762381865755384953823811564755513324947300565407035885472903592892899948492223683866598577082629342604346582689068497238105541807777463649514270983366209409805601324907578577755083928134366076699111728489630019581841078753220778608915008448733535754263104715329076972175958814441115047120841424295891670577677864006049428351526183415244565731637545026468364458897045629137354162474423402509465659658663355749749773558090958954611040956350430858522995884485437783154533340054542226232622652708579396995492869933293821921048573115270077492925173321618475488385444312308886058482146149398665936948317415043187411355428421452185212134561861485597287192409523511670509602743382434928446269296557230618853324084117483959405941119994719051110355416355710715826609315721843005534954778831702864125736405243738000292387590832833311914615004787661952021151622450318549313910258527094467414705135976406554234677208597166592911141588149825048620989558935716608553985472415877059634555488303394051959685510438400365605986942891357529560875037984009939871535888400111000216803317616272791192415889828194768228712471996204543749861809225840181099879255602218892691095078662155912577445676598463554897144702564021587240726447607508615675738491690579401697010075238768994645697555520891226543621209115993682542354464200349801307157599065939470046250320230637192560429676989986351919591341675423428060100593732353133188151069305774604940735942944739774019451961364100765259561650537642352123611028826609626295523946962084158757243014731544253454416463476393385797083469017310953000879992384475169487929387898657408901954166607179043272079100123822084300843975417722793201696209239907875765549274610426079521649545329838617492161224528434424797982244682823702053896471595971279421942268317409266395242416217965775735871420272240318496511836068917511293938089958194341380805045717159408407489518407839997722099972555234929457554648883991794116341025301710149930072854638542124734156303836093709320416082030179458497142436038081824487437785570726764829975212470839487824926850562002563038426749172503014792694016814874129427023506325829575880446095386738486470433194032478597309832514431818243705875757981499789539782203749653140048140257869144022505445398192590116128467018690812853162066979670293340433248423238610536697887429124741298150069595032460780247738184805867574068973803657594134958482121803165456151720209533367125054314511340524803467808591268225778853226372005970136893099678272174845385007599440089372140255818632967881432375236747791274467185173451771902330645052022008240386887623102807323204854026174972949472748052578967052956110276877731436333084562679791646845743729900065260937276429652587819533257052469816396474369803232010517278699197370157427420319238466946160191057553175587813991578018131406303705611559246156497761370115322924697797604764191105145165889264747318088093313023070898643320988650833181731970166421440154071333865684707061205191744922406090946387914696244225850574920617343792878659945384119770558341172234823389859745956457979841936260468793594736781496127602443025921035824740268350797840159339854482223825250428928547903479915230849844222353675489272952695044905652913691900607834109232994179994589586754681135701559817478970843599640446089564994134651635018701055628304794644802906215473440497740224657456430423478606759159318861312095819158538700030494827795429597526747373579176021289925657075563497588421592482133812623700655450268738552635003995354611930347646484462797029463707984345599710110065553218587924472616030466461434444112987547925062522367978090882587446785815099919359015158939986591245200986671660300006364357269100968219046995074318770228618610549283432986778510042227179788574620885731618801803171055987994808231021280285863185293548914839672027422072119072064188351950275212147528804735405753488519434609919544752185013826125069742520926308401524551501650556432978475698512519682762897404894301230041590046781113399068098057313421055998591969042777968187052143392604772420160656457505947402037226204965379996086446455291625400899186011878668850207044535330760975920472115420164599090428908804663240476892927603605507170741489372143134923728220061977295534852932721538629004648765911684520577326478768653797961636677353381527881199515831644946801603411517612630332667990719034751276377461240494958159757096937169674093591364929614199512130606915138757017789278356512860201728421645936259304480415884488583530427238610376781218366097158097565501327946498196186013060911333689727031136668545342354225458001059402706368591871046746885153608022424299510324540472591697368465352318223034204531644582479253000213681781388640415981270334167961163617014896095820191495028711722843930789745441899116570142699242129157258190319312021138562851740610055160690311249034642082816242500252051567413599191900306158476219901866926979304622549081585516640014689683745914816623138306400170177734139111443035496799760449050751276124625128592343635063004724657916289531797255705982920614377661105148493183307708558964389447525810278684869321550684625909216415695943841330339451182949862659448299370914787079559400089628730399292540732760266489589439682987766730468815993244508156219259698475266442289499862608276328446122370869347920075428504913736066744845407416994276201952880669080817543179339394491544493659856456132519884540315302373995470709543619075658687768205584453171134880762776782675358906986915796392010195458822643473877092964530322853443110455433822557271273089609598666541470369840859166956974037081512804442915929380885094393929053964146411814698329555609022750277292853577366107744802765472962669561219727111664739319095865251883282951633800240296692880690250614562684513332437146616760482070824422961793529981229640586293708365975423232910702688849105966282344754032799966191086696473400420592427693479033154802868768284665763020167290243946493351546478208004081399734279041927552799682394218821526732320498171812693267268792792954328467822926762490124755545092373972836962288846516788335361626710371974715742407614063430588293484843354393935840760260556099962976841708782307231076714053697632458134249829488980931634813351830300577675903092896742940500980329234103922021824491970518737145901233266184863418405772566880341562253865131316950737137601310591551712853590003012316383666893087810142884487346312131382728704165481630835858566603297285021714983495013868634996711915989272604044991566798343462327120046884830638401208524544222841376964558013186393187878092218177875349579114122950901218363908115299885649864378373769054464174125347254907718982157740505275675621732255593389308114549760175656864770757277751164033381634597586871294624709849770330158304849949836218941395537424214221230232199094353019006709518106408978654935367140987712836166711912117801065653851054613130403604784776712632384336941193240574226669332289534777495981715382294857567381271885036442677272317005866184797480628802591558804709684839977927748125476381529261069682254636467824552934505873643538021451920909910999187476408649232813347565140744576520173886526204073715188932183329582330327890904288603942362637508726417742116589596117211354814545315829862719776785656130650327036125108173453681604348121481022453094987703563479812811803002952688482066070679517853975954399129218380455028278254870299359620788582497795193224348641155448677032220982921342799787590239665192525171451284801183078567375064760980450949141014344570511294546622976620367027900402231140432415848468547211045595635025448924460670124603320090604596425715121069676552487884906183323839311213491162294261202518953001979493162006427217517149672822187618526560364275212111891151032074232109003020262735035487863563892574817465381776821608930911129054276541171398891640219736805371550846385063809980437831431262661353729779302408145429009103671998578014216653244317874251263057389943711502865342654355555357148664575663132748816305547335069052422474908333742605643503236922954695260971298427316244964281242428713899140092917469095634379308651290282378647156779229290861307371019180471210435992243659921595434450800991205083856246951517981115725710456475570391828600127440533949472486271403553953874603668714537970470467243683550211313803885047864508971364408085520518184007391406507592739478715496665509508827634133523776554769098412750365509857120268472264562250103589969396585095567243945891245210304702781744326407433559111584713438968056330428553209408315480045330317767157707673999489899944033701206929166204417860462489454083558999244404171811149890779706298563718622763528608025834105661055198894306424563122610509361515206060779741497828057229334826426801362872585961843808580682934862506238247879540399397991306503212516547249696635595381898002472917396278322320482941361775824763365526573156715089136554426620227598359571017141828294921661610061447622504971273241887523918625685908867577647554695956353839669526024677371193451417821873531902107784667031084514736714314277963379764802052676772422043640193552375582067171350945940448410397123170500266680849414289152814022641104334755547073790244051549412238879264154238109648446571707438101769420172231540867815169907145565611973707892162039686616576465795120850437217691601894270387168051513939376380018100327357378076945435808121877173473665007251084264444330598424081588556728036423737591500020413544966741965541366784564857712686265911073486362972175890539820098567745487417098819488872475517702334095638202422303147824122188142171721837932978269848473678615419299641843174262438551942410697277487972833456047862659934152264755747468247696243676635556347898113459617425209744966602288271773401267899364182015819350272946496086252258042751700906308750232291730632728652998440507413753362841816678935308443622327470026139427289085842625832251133001541494495557569931502893042829033236719370614097636965541848174831673970594830305608686610567858050629522285437077883190089639986038071497101191765836675963434514693314457762132845564262359329205494981849376172367435700906888341890622711508990285490483911802970666606449011816824845433832108072922376065596947169298733246939533367964777973837347382656034149518062093516496031116370880824557230252906149551107518451833741087067705172293571200399142088453866068047818464552485543895798233258083681574472271700043509209675705341169601387815117631434836160494631288771857270152613041637472758390983044760569095558299534842892525544396256023458408662559870989294890284592557725293494843878895056935643993811712645042024743196964287798442163153886693386198074333058297204825310247250671147558663278109140775209945432237874148287247094988053540800920892665534386077793668076855718382332779552881809687707881985655430602339963375844189058581830010151012222195078765064900967051663501156142075642428383068779676462018663466596361532232750823540410671812798185296825488168232157138396212676066833402441475114675843417912826672947495535298012489330439890397036584963707002368753308364360835961562358015688858039377707618149089836029577319427921855061833268733902009186369668578117428445677725913833056347236958288554898136695110409914077046184003988244115237682931576318401036694537364633304404598226611713767399372967026761714902476651610482931326057036271485869601250390163638451952188772454033152885341103467163533438632845630799397592099681896971750190836026060909398554041716122890150864666073528146282779621071835996808989931315288007248863301210515311577813956782126971727524035591863092918374962237314398845408968403208254318878852544644424074997711615200433687815577172741919886550938886939555455812326317594226675086302861973532527167185623533056636348494660881329814998884106771141125857949973598599367755333910189523370996168877474833588052019396393213951832645965697195449381826513088390210988686677404174831726027182807803753043972346759888467321273236477475109021138421939059935266047728845658992972466830331939827497148660946638074185350552966116326419366767241775861946108852978523029863013123693562051030506588132992856654782581544645881840391329816562553091066064044858687258427483190511615608331043534662626451032031502243357188703302617958839804976523008143723315492623145336383356279045013639080468380717529642736493256288692982785273426383100073465519649820849582262417746573074875981138665173545450193090319634906240460207962010182390660615822728537250184420951326738606305946592678943094492974819828923201933419267850054232034016518579257216501885741725153922247242324990204872680501315956354569800263656127227679197392795734289153486254856877178508531969286675648287055934553199921075271347065096271135306612111610459911294562272742969085384222590496322322368119097585601372910111572953994951133337850358912812733337240760913580409513405428963221799639336121393269703996004547010378013128793241192857696868592599414256648432850830244306247585560997319726340919364055675524738178621106740975319724713170140703907104435277233571705317749912707890478791586319093392760716935825804750441321757376717539485258123004345940356501966914601004630051997630577115762467071127661774646428138546609694967268414976089716497993103963631865656397454852179692698467995846860570501608696406770576978323209973363255961343699072161460610101116285244805166000408825891717113359655834968684155049989881414479572542923121476735185031377996505568474298046647672744985109728101908641877690961230233369052688046281706058280854456476352531311276463118789135251513656685871519483320957861746944552155404101799256431100108368826277005277533206691747590211711575750584610674302687461957117928371300690701856287350584522706114512244287747531274246778085560450261897757970243855283647106685057154267668314973987211969628110359041347031370813841166736911264456272977812305303739558349044010849740162411953325593666761901968753545751743750366302296620808288356913998217590296602450830668219731700351917282862477542557981746840136806877196540251455664843530502655387093182563924504891693797072467083792609320615147370891777473246524935298267600424812334998157893330144866064411953813897195102781181190192785547314669612123358842959401532126864837198251325541500602075480987114884094486478090102999657295258070875415217301563804816431711597246012249572534721030517283200080468304468704675378977197611841474812385469235055575670301391323184980372093181444797162676584831134964209198940712853934931060468752511554634032426696431946351254012363447746985324666443868943572997725777847341732724300832934131892557973469151476402257624504678241384539280762638462759174432189806039405373389464051700549460950339095984195736461335683157735735588892473659737122751706186537530645197830256283536441020421907602159293553144744293938033992632404699329329206981429064321879527845089221104993832790373339555266171585786562376357392998411834522786779955174402709018235897307340573720447890431978694398219148262299984203631590462924499266710474663747228348937967250002749772009743713609633924880338404270482533455192671367136653207533835825345822110833129850379536658259776152482406711419250518949207704671596191198521450744323200924000583550848896657011110262943408322178724733324767152693017632686507178061016352392804139290208979090524417735236795433721404822230816082531452966722473776730711428822887137165359995480214130011140651228511187617138590942219377690942699656538974232907729238971304813898507561602570203089298741290813019620207910541843012136997590078265325927214611716747624714016326488709612946605080754252352247213136497812378221183565583091289314382936865929152281952415470569166211509543784057779387976124859107143046761056663693730095339388296882154758611148961242374378544880100160030064091259652994307000820132600664042460223390416034246535828035537523461187344426280170371586727195366084423933333786294931214891560196112452994319683095859493248440889953318568551884240524679537763408204335012760814771373274726125511146820329977949289666023793449756772251329234288592798037346978236080012873367848053625396614465895434595158385632454776933189938493753433449910554157907974411145655835758972430993571887197402130845338284817564603267390393278910391576231447343437309585605591120350391584066022614867711826315920468375243093421007976943336265002053498352911778178670549565990548556162416570933525759077530903036784368363317430312244946679785431793192509293677856063698737079140142732165025382346457800542453923628383228337031781314430015336309045145192118260216638683232621707440258397841259628096525233530966819579834143355856667657862413666866110315743183614853413748849982923656028726792344162253327823065637636353795519213167764688114606364708371712032813317652160497960077672880792920253018968388128880353972240477098975896624544082292081869357446132765421937308535512168276689811162919954706284303089445352000228437806127213499124084908678894450865758695221276070635734884519954816626170828788503504334946226679448849856746768245675801967583621002521291381497915053919135332070040063815309301049600324264870532522636619348373909981187693148751451474311487245361331264637424268869332377516248090027330425200047990163940790602932345002300368636632827675913321010619814073584477046341873058098349395928949604758120880385004781562412537513495983521944667095344493601881568245425407095196098005439815776658386986441403661720767850995611616546160146047695779112723546712819287890700989050642481922766218050069288391457600922003113571320132974666828779727786036442151390806530305840256538189030494408234019182487993891302892855878384930079181728159776475211505764238120257036011966772922353146311062732384643902582452877436309156589894934412174560204671110834706415867976436872369735211453347214513436727687341758404292721319735208644853577725070395180819547463956404821782081272497717807072205489381229605621389015526284497190525265644450278414549673207995136350506189958757755717249744552729096880699906067012683448041367589615039695736667490089485138021762920595730596069119602198132177319461075035242513898462758595042609921187736528587417074844184143573917994551740184879214690725107254426796647037869955191940460996352482840049798715178359458398297503786657057285631952531514765021347315838361403771335599134735323832696582865614706158837604302281394338660702460708647006195576260550254392363293606642663728521628954318115701701996620037259974509010325364134948206700071335527169660159245247987809940365792547150768355519684655805098615190516923566407005430989262198262100274287529045319399822661294612715151676298344821835520791229891509041798602424774646101084672026982936758495236552129564230299621699841840565716955704759915238739758745988581201432551898262614641670208110071605829673082273382827338763031535190404108337091827517440874903615327490157606519199564578470280057609448113589843198243373852260449241126796448927532255187725395561902748233847912910203069188176135813158578637056575065310882249842628232467831849769711917890303354381467490803499676783167678173921223686341487107330534919841881853108048436397895685357014776944697059250088334497234361192169714841633749231565888798851429345018247637510566697705587535218962644237777241160156706121542840778171575524913611790123664492239552777101354298327951723416509042597350796473559142204653585607088194210179543803509102733016926856385453755023351880747145602106860307787959207188260946674390852255716251708795786530632244139225319457540328029599951979492624136387621818999027786767086119748762680265630035907639810822309293837844704714200284378677887943420167013186829178539720621998943481996159710954960851309108743129010975997104745054179762298581499198346516959657542074123233903934869964747484332140269321949792461222315438614602838168297533392371081723379008129471573888520228614662285877749141672931898791447154158050313775290531608871950043128422364765306562743205684709525346757236450193610273534169051032326927521736838300482012540397256253237690032431100623666042698194033187579237301587946714528744020574975042977572599758081153814171352848914005846840868894390245666316224295373653865249524941231300455565687928869603883185329169921506221343570880736862746052489162021844539413697137338315315390850739182537602513282598739447372852139582398130243862763871077244069610190195031298487655524428860320388319248044683374673233134997375323883764793268146112310242259690644469667670568829052587136414244481545322855736440272691220588724994549151528926582973433348984586305924279811037632658384472204600138464373980526656663004731492936617159442234889322991906549686433477703746664800444594887129229477087365946851382855295406269879333869306216815796751506476516148561407394622157534509538928762644986848961111634248934911449650349433513667679997109625010501921115340550681171714676331082508008398375474801129795946925033747283095835246603590474398375353468229160891379770587267677041703866116556031936469685336794121595463112193002952516459068891939179695790145037535523911577963479653414860278042109449971459487979641036515527944702025525122728838043002880008438657590869285371014042926439090908302299178386493548009474248984789564633003494153160356571555158613969373247337525996573842426859565067782606802773590309704161154027926362243411316035523209954922294753150734573414894312174788812017288016215567455773318046074004921394314107286619368067857779944110297310577602460328479859698585925338103229899780707673063512648956043350990118912336085311961065790017248281743218115685155768058465615535973196357629983404351359508665305895606412357463785335458353652091600689934229801722532164987267000175283430676585289704447076720500461204274676990026348376199625115041029264591693974781418405738784717974535415702298798371142956874443332279402173002298649965950814427724330829847279440598071816770865381933846613022973244030505032753657316483518980346164771040797330797342705175756072109742985763689410555575162174297879088000275294648254036223464276822332087582870507641490533078647156339923263388549524632559999568830716430276639796536813629281465763641808411059472325904545563822793337453166767056374915580472741546005254595005913684675854808241746199670643232823260941233500396050813268963582381408988819806149625070209292745211266407228922361378167360435321516073977102992421311548084490330776374766568294850467115791737019332543404846983090839916546388076750439968756958347265842156634940293020850949205320380441943070058230053698490213162954921112887300255882422869297798101394968627222424479949748006449133439143311571406934227074580550793725332797590519961404607570078242437656592700089807507319772185005242375918014847598403833266864897492058514152740864364275008249485086412352696920775928569037675824163512279532601258709419911336918379497008128715828211586552781774652532559889710022191454853974924265437047604448022333772500729071257341193751210206636500589393167119274153306333095672798811224036778122930912171817187371161020959215139763607690102164188461632449198269266410484171296534599319858350719739323462555953337353860981057339063760888301017831919343550032081903467488531528830042559511672237602681534102040652434267955196434021348471164519985518587240660455729870565801515607985202726464336126790708710523489622987036888300401724353356838597224018213433567532652740625292474890081779811378832166804533627562234272567340131156514252653541131865384451600339413381742194095764619000737188339103053433485617728192773536516147551518595772594209929433758418744734765642101366476891962098935060633750006416496201821152790809472800395399957239496030234787173556000867364447047059752938934226784568792922806988357230369855084514402235519248244500465748267801875825595464823901878234797667636946501241392924309969886418677405152884142589855904601220047596418459498809620421815616161348747937927704515224725291283183863715733661674702730417842828559170613238007148074259519249684304336513955887445373640483122469187402643858260151258831704957149731817482985508004488028570390274980040502482013430567692764556070463606722799377744928017787189549915328987343726345643836235430714227573226838419075057212811919232803333831791255473639690089979266960736569971593826190440303145448842170342464821119243439674252826031383206575878156823023465918408319031939018639622017816373808633801366071756684810766037615202736364493013163214385627964863814384804549569289966316846643995803225277908425176609702596215873149368322168914060522748895837734492952922681573307380818418327218879693153615466987414407935497353945055627440300179496492036551143576698315357410893502674897424551054691652361698707749394346055321199974601667878053356670184009137051463729887625427815216853911903973127484128330693847886907586332584532374854043164145326653145917750270257897941710918892325830335961183340925430161943146486599664757158640936587524952410925303497274388291734019593301199072143236262028155955189340421994201979858495818650846976859117194271935841324968936615434694243434261983404561069794109059189233556478936109129993473903387068110175677673512676300301145409980594903714065663863371365000067834045340391500187511999606283215936028251256688619936237743791947082695191575168728030515697890096945042489977669644728245658289226220239798687396916179976922470015585904928012157847954827372820499877302098799560304552169732725421985589519754089388861281576097618103397997826779619072579725944972245596417788245673867559678616941109127992683301677434979225497614196236188460368265105970751790837040783633992872628146460531294699604214282235578648151343434314066787480523939283029816792245205357135218878133692672339772551491917002640385779358130572092526967652270512356164727339719531753224973528031109386884949506937600136806630703176142946079757489002919268263940528743206394030780889250627821070011754526483523214136321962994188028506201217051375740229629573128323227773026449821589072518612437152473844804486174346956789855027390729885883525946663419203792655818702355442857968500734102754881421247578504021212686095741863752566377783988455168080297943548695461747008585839339567488891437169547185715449428134163798744403377529529673498761727797742274484922859096598596465871585285956244209244406422809036952211938795067661828476376394463754070353175235449773552106317805213711551953956762610220644183431375766697665532262364272856767892363471674162453880465975371003147160324148282948432400409577276631647744696643202034423041130896493258974739834047997940112101492218106669171266035807315714381810750801050820416046761064188692922710852359636517861579252357307959543095037272022744076966285976984713771219002718116051674270249761153843535654524978054467863658334713984223407758230129642896502959013004487848774833108042180339013332580177241046008137894292284018066220377976379964853626465465724755881050060187833090845428801591927800948499077628296726722114378783338584454315909174250944271282488386514213582588698012115893808072243443786122588606275730939580199454876410244764942182337307744567651622541986448148842379396745395122498006751259270872545907785973002229673229728911048110858968253969992146429676366726093171961169616368005195153538275087840838404540575313984726395190253661222567745105816140262927169444413209855690762613625301672779454236376334557632534938965515478005054815430178967667693839595643322219408266259677194189271960261021814453202227251055937290221834207218554803443360461199199091294575194411276330492876093819017433809035506552963987061047608362521728538865451342322793864027290280422934040826104180882758556142385865716025715926779564991693021470333707194871809935484733678741154201861502772080513181773198796834812949097160626694986680522218460138496262029143573489277563129699796484692023241302797671646611555990895901716090673281111977468320663094252481430467700639999086341533739879680623578212241481243422211514204284389342828671730489368404245308319260767443972236590294534190893098692591011527151638811089637724638614379234355833511497645570370620794904525136397169059894040720065211077740633592244682186809845397660343315080152598688257190001408495500733931797342742735546482552751360597069232892637911103555586988881773301426593242758844470160236387335075778923313257152483816290122633927501289551560745580423400901938925904536212453790222741523399866065073310279484297485458700469169961331502509802760843325534236581522043040770534544353744811553967602082074807197407915936122697541398850997561619438474088264130306134053398776826278932380480486000620404680125439068938564013193548794002805111859525212172267822189700718716320848510462562640950433519267713166811017534479678065514106834239735143228644891190185676058639530386359853681887002881476333442504074867928872953883059576683649405213424256076351422541500449725410395506730503987823390972713045071564699207647077346082760603858034184698253292239044004101145652029765041896580852281940276351317123389966413418299619558716391455858694546087129002385080676212769867744742264788467170508970113890526852625829287622302170586480787303895253139237354073100262488300466372724236230255645299332131482358800490528820232965285742029530800256614438978163366628274778728425412756724579449567913468436401732683493131685406107507814688784783167809348479335842699511377531079026312699290142489280030630089101868746426030161472567776381675698683217638857658672453617428049996801388763255365524334150819253492267387588101464566043493488309933072981387615655318994917102157965446211809352789256060547808765923523470120799274041895272068898540957071354930948140316069479624248320881441779715886608459817824772271601698430346698256138255969283267601190041049705433852385816391273251007585593618608380604138429039286507070314107915526137492018908942460236622483513298929927112807596776677421230762512494057678117667221180270315462604690945027822536017729610014352958878224663226533927119188054187872753011223364828971959930810245244409761542522453245546597905538055275243036003982400445964230086589781565779952096687299807877521513442070099724249421350505351544464948545717005887101845331396150332632100920252291023467409140295904241844222311588790796554527466185616909809950480741822788579352716041671266952285483254743516555327194251159597416434674815501861110379324929490709753268810234136385570712455610817577552893225412270374014312003541320302432282674417171427040145289419024117798787909783824305942339048765369257986615243208253261484262350049407783855389674833994658435477476930760388454577331042815404912985567435471676807622595881823164200060259045692231192228478364936933137268942606818313065696121610677604165799690165902230261402772152457031740981400984630649419202986664901776185601668452201105980475913286226187530378530129821039496741977256384200777887952083997828097343963822946304611942480979189143518185887269511861293312466899596609595958682584337948492571768658622933593729536200953242773079344853184148387268030537434465822955022593631492530139154475833471517155796530793555234914725909807344479796195078351552512615506763825276047515283686270084320170372701466639546667573565403413546636205519228546104496565098095082936881320662508597110539260823931708188997620723207433242549772412707004923862877472339990962437177984021301019159040603359446306604596286051177575955244071091528125199319132435506071738973716132355086335874563390551643056727690816270464684910032886937262855466307507381745536460524950139983288737747980183351013217356621320748853310500267249770964985200834604295633177108561961486827889624822547231638165589055762320228675253286692802009178570043207452246961804828252624775840905790261275483029864733461814684724550696503862951724788312950702348854062257896422476944560162092077920831891571040556153429850004200290274389454678994165895204407822789706021188487017452523567924666964423215462044412346642032126260906495836142684842299582573411619144722891145434132099586052047806984880789877613582597787423512363385334899269144786823826178593134490170754966566068478753125104972171694144728422105414087071587261534660293467960807977489001895155476505040546693205391363233643482994841344563934125991831693820700588549613601386736527324819760587834817675686557692646075210487534610456280611318168884344112204508953260188031637762170817624685107469430599213247483241592862788784246668484402971072086247873474833561506031128109670971841553169000270231567505151657989846311453532340384506918559850131051951017878189967034035455020665782453076081740147777494464448920676733357897037937328002867773775911690679958133951365210957691398323385273914380619018849038856688520426929245706996318746951719611610471656676837306031109524862624757248787057081865076423569674672468688758303159190403127828446397709410484486046835082058297201311917725862547665055921643625548370696370201175208365885648600325265688251573839164155752995779920769826222882250701767254740088071984091093846114436828570474466568928933638824622556124890268279911660984457281665215660438491445123899728986316520830253578280463972046240881204439103716475529823882563642781584364871263584810691663803150556179318636868787332189149940358358089691061848262663395735133983645959264252065963659135923861369708893491574845318903981814136566873822877677392104276202408518647615145190219080951421329701496409423563785056940084274652701258949020342565969574519410677699007329767519659265331914195533592372629544085365084770053602792358812656676001584804031696962385722383176733007748953348447572073506564372644543789254389844863756523576564536991952547420124673573916515957850059029250873016747756091929925352487205853805050039529105768489232498340978591902131349149232414828301705851870864652913297730049655202983193907049863506468733027696378133824813344246871459100292963782741951658039384158322306872209300417015925276259766388013004514104625262253761355336835527515560745473093437312450087552309048335206182764705076530461987485568610326556439522927274852645312915556560601878068421569747326918549586157724058535199665694561431207777412290291433381803429944258215706672630874970745984658348290017060591785867639906374116774950317637658066797095335069288616365972093438255665860483616213056324467472293562993387740751789510751636948593516332070065912484669629102381076400688472312856453979171937257230230241327584793396137823429525137477687818297610986815063757689168867426998499433300011508985893753720633868035360376807036714184306843528431373097844263093009543335088121397854150202578668935459574678827676501664533490740968135228852653316282126597301087867307238794966217812385600390961173944806346218164750141940284950828064571602725384051232944316596373663483937286350942722144097243472798611942566112272981781041221649779825071524868532780279617952931739506268192144654195075389460807547180933852992756149777967640056149246646670164501553380882681536555103665325322072809993116322224213945692538482972809024244802654719611519498187378449948895541939728540217360988893134452590476362496073755967762058328773207504265720946000836870449572764933017402313479321688608936456640905006482063644604768290170880543226172099100699830959735657304181249461019039558200892221310684593516460384630942173119081040998699251881640054018492841416342351185865248668455959370910529927087126707927729364495315822799394857294532438222187286637832421682685566536968476096436705460829216459631091505120907631977705634049486820436651511387120171466357689690134490737774290782679758924421890466085443658617460341731248536384138912402451401440176647711442412491294452353916505449916027138213153329835372379625645878724402211613399884217697223651658727098200347528530977777588941286468623977266941293396414095651826389456036189552993381729625659322201337565967076142489982638506415923633508334732290329310851146408118026013779703903869527967899869512573308749688584108645025223441743684580386269592736633646838118865520309459789505290977642872469697420236918977909834229502780841148491695678208823635179440902740935937014343564508098075282656779394181253956883997953145098824051209943735676915353783283141672229688518202435340714478167175062260025645073617508137374111673306830664121152248869749983497078264729367927788349980379877665261214607189803861182317471838214169738698793349014666742935970173361621209597032100000325381483265835064036942057367057362075966963433461988609588910179005714676516536204728258092151293094774314824683176667088916845543929262175360214587594244135552192449589479408715316812476990226209194352091338710703838223466104022746105664248314853312384179618337661242428290084710736487890426923634315227287167401103824013289191318539672953030818276468807003962193625527492132172252832936150772030013267016202119814560979244708540793362543088227085194020751376612447596772134684317536520510292045089965617586466607672490722436614566558013439126776258379579974501726349783019581545586532598728229481259431554967823719905334879748778667187000579374316010488598257774316947738717271352346102639004611450337533405603246963414581095133490184176967698750902075739242403731350968721238107443766517428711934257230039354493644888542723757809995124458930267646295512859089190891044311274147927913737629863657708980397069919936734455749798464247507759137265461468789036008852268195364254952258645672512779609496490339528752848526732863191712124688724975642244059092587938115137983192085363716592984362456082459678341044251971116653492246158470444478249833606720905981442565243980593618647940594707183093913434009018069050068169444624167445644626092980361071007678706265352736717830414772521251679190996440923771325691066563973740264717807316160650816060580260782832926558363377453442266292957193813993241854027970378508091226126186541532655790663687093670317444138341062172018195496488636232289705808466917335411597942103060346360931047399007588651216899857643912623199486188217502464647569447117750138079155749380579591901456213727338164469744669284604961218068727715320804510421532313101338923730516075557225726516744779460780542030661802036722836974572433672325624684393348765658413235642058556657501978019920680882021800537661676513830449526620877634431914449457559820398077201333446235175927940261826287942840139732240895543991318248395812366000740763386108801024001512874879987207751051514638075785445455340329576653020834434238607309781568245781332862129117389134557598357404666441616716481618882857767697470825369625770251707306400651769174662645615324220693126901141103554240210408988159076951684752908030043821267242452980199818080169343115099654214858627150843345920788836298169848640719804069885404203879724618675803177494313020996523953697695280972280917764047125308370437317289747148474125573063841960642205305101893266222965647852777391881779801721952873056192263867157411923612222272377425718525329529701073138152413651824606261913056332853336006250427075472179854305790212535921944909567909087977730918127277542394307102818370413018301286205426060857877555151242324387088195427565095434917934808228801184501701961250275614906444055534100264844679229560712281491817489282494641093904881102734395801354083556341478380569164505647891493228723875155691153511506568970543776367710683721014769311129680726502326949142313601987997361073714148105595306459350922572710228377626542487880953785058031279932644163156007924187985691965442825343134516951736047521127124980442797266804092002663077732759763837991213231259654383239117477203126172917177802267260456795570707431671987005522205796468843088857685740266583361302180837630472784098342924944087668168186620575514823750277614613573487426811937400920291454232760128082724023560818395260344558339022664474046655831376038799505104123886965596673947772243859881723543120531803507737975375626225610554590590395355343032220880111247343580094278751702397766432712710041826963817169326839020357833895648635822427163112316363352633663999080719646584787342512347896482074754310807656147033482501663942243369907944301799072373051524503368225944420916055202330993537257945772446777019782112576899869684887439054544554429750423563992547473129016155885644850225364464914769373535517761906594917973651431051969109896206029006485260897838908629915791321662155991444295436622035547384388298646826183683755992001181818262846028234069646421029224411877023334634996676213865823811099278929902686930092011334037078352523382966222658555164334601321304772940568695181130984393526446759279590169692170543920182396901142403168128604089046828131800734531383066641419380625373289457919515375412838079930901173877704180102756869051060155799274483604805178084821033933415936324972148798555028342602908864214563651368576611821714842809368078124511161450863334137670367516415990528991722348187235678089694761210825608128160887853304580713807736912814162169234868970802842523593465898405632980822297525727860011459003289450832470772224447545766406107750743617052553854012817278846384121648460937617238270648946384705027399022071444175904789700526776756133237457536919176249665900221463491088085634395278790320856398602211364416574455629855579328657106704554113670060725402722496676178605619970082089596254272337009614554821140777230049824210321256184744274945130342105729155158985110855299186215376364343823521017022495986433670677785972841565237905013081720832227177961316893670069707174324616431737190144902143338897844953318126621279967956617879693108961761424514888117737347660821767672057794178930000952041294483769475508694032253796876461358105286990975901407876376597910187168026951565580377797862560215606121439455354825685159505047802858196683649775098507591520971841228831130477900299175226882216788684422988700196754504433810894391944259012707689868999895938812282936311621003474357673832686977216032345122376613059161203759462517945168895536579902988149631094322327299411725190818037106898243826744712914554052576616326045547478900054849744398069743202696692438022296809699744815799420728475972438257643520147041152099922499095496690946782238877611987211970182461159645355129589378825875857469081150299800337359904074389303609066822561204426791437846945285425563418932580419626608872291903574416907899781699692234198799176239641028112260716807281512819411563344198396056846465008995861765767433068168848302298521100247716171173520343871208405933373544985514590299763281389382419153165754459492912314516343582976936832522919661546038029453111542918703488041238197345119323289483740076222456418254866480055892567801968694591570113747322028879337200045522950544912375416859439031548692268400378191977179837270359035591762630636275781666594979434983193031454356580775122868279290971099768473788778775622692219330265098047481654643965924201999715787654884473070548606132686450208578952964530211983320516599103365036891824312909372468212850675495844458173987848258139899892968959540834932473831753586857435714704709564871062723875697991139089440132380881141460637176880661511881255505994290820110612854479550496972895377395130859394523551956815656999865091586365605318253573371555822672806699532849202050315257302211860152054217115845039149634628625851528864827956986944810450135652744210268210666324597606467800297860307697479938657037006038366834645937978347441074190392946929385855183119308212355947177171120878918855061781068155766344913063500634973243405297553193645051053922128561166794217739932282094466875559521990978439765215397784055351824363428398232544237564457825331860373230322416088118553895618618273304580742582695190325681007290999861218082942673399774719461578774976470481380468251156518488698933059382757901437396046769418788953496264298991434343965260120355300139949711475930035449461320690713486268156239812489814148265192752556943772166761121192287440928880754382417799076611486001406839174181118733006611252775878353528380982405842566478656947442662287259042581553338263955826847096164438873377769120277438181697777322948917283756329934788983065393111647217810279669890807470633794213639301152802887707503263068411864062413544131856141532310406198545158723822494971934499151201704299699967428443183453671910697642307865178926603558594749596392638349851486773082756443142365209030345371599906962222679985310257694927792910985267002589314072154428991825887081818258217309126342570915418439120133013991506276496564212822431067538653032192572628280898270937623745350807245131696318800434041460140422255976373631603370870803843215054175661060578538321230067474856739779910479427667682368457005258205314307251061847271103718557505021099760894018708176053653380902286303562323940877801331543516424737368044773773286801570304455050105067123531817489499888828339139841439056825468729288154630495764038802731059722956677579113895249678928152708914099509009781729771937945431698834601781984974542996942117820964178948969287311773234277615318346669041496704509919613135672812467573781247383853337290585941513177024587934401969854369299385075275851526310042731666727732589973845612193885679181302255831196476661651469237674968367008570010801849725805274054268590857116501018381394137895786865617077678173916905545237771197962235681943433922760581793431035784720134726804044324961666032810736727121932104429932618271404300967066616952140636523627368654184353363623760043109832425434424301846598572536203055945052522477801627814506671140643432074349101786291732562703109668539172300767981951333332700531549859946247299582429585749780835106737861664959709333455609127347682230430005256012222374656594106411673242105063992837728874442651448762232645654159868634133005588361269176902961938322549451493757028644453979116266562557487877382669005212742043590458442794364693950097598548352963154324082632390503004366699130152036111565244189151291123373790592183867554961072520400045368264330827892565127522146061995417171978386071913547508246256512652192928939457079145672892640463281386790282611482228944816743677002659611428765775465023087231267086270686908529223063150331895293031323064322807036812707055180003279920664635267564210470086198615653174439340251606765398854577532845616413072440871435516028478726265677128259668136622908714921672540291220587928477633091373953248757885100580903354949978655399569837893615813819705845343457818392231758662181687629660759441879028214286484504549555550262566084044447584776787313842073018713738220715728115824652630220697225081591663892861200376771510695010411176168647892711621999467489063760009120756590736702808044044862455684962441983561768909126921976214317866583043381218936083580965098887589656060825656494600161840243613220503218575842428657097189978258241572984647497018246612592145988566686589778672221780714997825590008790746561120432482669721598354809910179070732215167952775374219837192785684736776177876778432363443967300281865644588730693220739774647012405969486243861019232360876559491576013649529946049975807414992042579317838323349881484205977311134409472154164585564486572138539922813729010999117803376270411576598499711875009462730602418566385877064464060880552765837395043109576983074484988693091948481867779485112985027643747173957841716010133345403529737534126436795057821111878648793044587816012266539026095941810126801084744180975759310619112590014791607022105758089133347599106763587042170396654809077972257415350112497141824673382041644835727517277288318246341990321150156792911208030065834131774501444971951358586767925946694744865813053982995345955064596811868479984022356817772167340665371692965233538242354197112915405040504973451498308964270305270475049281106660749493240641724814954535960935124253981019266622016831443112302368145995310691961558211411855455335101215549541071646276713565642116396164921321533801223757092325051486791729983959972356704896648165639808337040606931824642838501681373071763838489391456880766918251921257045755578168204720201072411461906080015225749275651443407743924937025434275494255312625217127742007593929484745641496398691738522751617099840222878687484527561490637065256109135949694233694454917941216097049715249034292305509180090859015867236973540012505555489831674487582863451819236748325119699329659192262898454013734527801320046085485153679726850212005133877607206869163421980818641479404093005750707737767901372839666605647132211042200864615332320800596791915095942073586195999814917740686992628901675064343839042127309051112631160912526159037647232555704682378122447208254858836815792792010494965894195764381331710201952859716151606726389736561909506507838710039037191090939671220527633662523647381684511329743795624545506559827806068624755973583765671912916992689662488741967233981017992432053064898885087610467659397128494345492300486611202096880436157812069772762831958166238386526424902199497756061417486203349261414537293835206075341031360389828547624148076880617415719302767141347090442125293831630834168126764257663903918084715759513927822443736626051886174375230401994446571680958004015208235486681539237325661331626423535785385678286735761227878032251938431182403556097522480115907704204507582931293364427133969829320229611945710594286558790118202127137574292533402574539392480616517883286544462884314064673370764769425168996209843239824868136275565754406665121650643270648375637630577795817029069996353581114144694924479194427084253350291973029941100314483321461682656097159656561963920505773198543266968091203503030417015366832399232608306756565941026749074621464388168653556407069409482088518558191249526539853619532198959617295853283105469529392464517705056481592500252613001223203696505533560499659491360292799678194020441595634039233654920068437430979687002229035495619592429321211401509498224778697846885751822539270387623972570977208180068795197374218376522288153182254173638685361634653383793938918119824811195792762013710998397892683630606514839424642501222131023782977028680400428812535902549230365681061107828471369368596155567290065292289344193337833192726214212454752186759390539703652807550921532464809775705485481340781794784821764473106760647131836052549540434496907196776937552826186855059077509814026884609466863909376752945604460531795366413867607843731100800365646914152031535260091522129102274661445053563840159823230835330512236834807316023906386112378288855080396190744975123762156355952591292156414905492369999245678279823851278532937374616207565016339886756164472342455944789877500613007132992604265239464499751134566800333592996519179914971551208850027955280162826896977549318617554686235883138280853667526588656713422723272940946477635046094991860873360049060803029859828884546554863712688320225867103412469854095439934911259559556383265145271603490575572283008835083661162888811811674737051006281450973314870992028097694470594376610303353930598218000330692834713150716757027172087132912256504161967431060499957151963782917291171408423025153754454536959681326463579635371264309200349586975764314200914780223987234920437848526042193586366644659115794144804582728153523932007987965599492041418387399003159588621034870554556128501966823822060912911985792817046357424159559558364352301660837578613434912121756709293156322099052101424504964954193549617928017610628553010310476232198256657061859495776774768871729846717721713221478829812876075892757302306070655412135774778984708927569737648659407511675710736781097983321307826313511460021156972600556424963494193018932891227436285651867881844478169410574428029679259616133758793811909540682001803451790766585640922176772111365548365386212808146683278068429409445969995304245871034918815405140652652373430885470451714455590911074628284913377129980596892935422311251010882230905975181477850753283796553682233106185699667305797276687432510885530388631696683616265971839742754485289477527477046102460270268263881339877654018621877587391915862292251794932281617023309588411522799189544519978555618925304402312664348263766667138147042097784700873992222388917462609158563281161359263177569820000358411217833795013915990914366524161494757053609476651757700946721195170750190171881125877899555085645381502072563423750050268034217547040052789998918129968471632208559991425649626905633069036537369923476737446804096182685711746586483490975023512748022389450936915530802504165861557100890911358759794760293182962707758301536730752726426115580347806688688441549579988873580747137583725647719256930140514675260422679676927270239432489836030427732192866870537839843216311527616997951518178112707959720770417884217386921514205961357671401822046191531915718914873906316307446236935689195337261234074886498067311115550402831814107162723311816261784976311502691323849319381238081110255269025710761912226519443986496786893860059554772234716729352181875714080681566287938332251869397524623873773206479810618420797420199717333766221321980911445231703414728405813823839091728062508309891582593054351213839160664166367525271777169017086382039965891780362379420496722644315624615363896525123364508899993802695180997292867748702063441399821784210856884607282007231752998674341876856378046274227552398466784671324456224012511514532585577262870989297294913915137808554565551798941171283334013761861401021307956721823305757077680373236710593980490181630388688580070064817120833210519303603208490083710049902191087870455303164771032129017628780331309273407655080809612301622764150056323689749427930118689658483483448357305492187347148595695132901584855066677835785106720727241858828935035465421506887187328003252428240579089992119121398198619450719471771358583273654088379902036638421126283166269094085329270455536925382802846698896109757084174812829503109550761973775296804193195629026245115112402473573694809239257193630655731788682970868021145522313799733025583332205953033947558216514103720769363079579720569647390605997380584295344642076076701851312111415743552709447931044982442533868375645033796612191917359229146038804690687258389938272644104756471172983390794003911823008901125572991865585756508482776880715685177904853053419851282351562404370604046046733794546138299745151400123242739539569197023488660788351741582546170426519192859307675846772000004549706913382110691690760076496619537439951196976378866658506386900126489454159918797920122909392144325472923369449330878725402360400815736345647360851726780999435222437195941543831542451737904001511918414055570959882350998357778002646024172531497934681080905725517510825326590443540135284307682851607555035294647669675299678978394723436473928182889809261191723743130616017268037476045634816200160909831295004739117054105683201538800860284270145042616069406833516572162809908978213672031119073152608924023125948713215027795632485846762813685810122615665717912855694203156142589734799706784576588127559332887141997741358832471961446575911455765496857228594930392310236511359300602250442689447142308644957283205150382924708001152751577507473076767407243371741709933281076042873825800846171929166562540677729215983136750505988704984271721198600611068951004698938287622578105515439388665153814920188181646269950312734257944841614876588266337815787101065035140325557712676249718243047480405913250280664710963536742360451897078798949817230231560893440437761442475304633924942363715644853868499619451388281214502989863205128942926758772277565377202935267626684508394490794775967995877058871998690572188863329315922244236132320066366665501423791590938955266954919030530809427480575917156545169900134816278117704485764458743025412010622145805131862623196460789455661575981722809127722909474676252368736099822518031430073478543996695960271665913867114904491823955861112993566886476579668621098151524912283892381435153835181852633492309338401397079062768068980943833885091671577284679962240028556557108716442083649180563134675540670166694701297685240789067126708166140070988553158587515579705076674458833513586940525034773003210700904622063749404463559508059192456344818338369187729060691510039986887973014577724524579107060560975420911886842144940342496034595051261807316049387392093789649208994302039552234133828294530222064278775116947688717680374090643752412600152841978550344608309277698372742835088787085588042355137819601789716420605838464994295244935249286495488501771013881566705521869875953317341001753549268623848180203782319588446882483539748063020611333551317751292519767249796635058359571888871531718543229565409415055798855211123651384369278491432911895473676533267567086328138869365777222125046864356912276497655397431761202161968703926558472620505474576876919186350979601137855978302639770967728073846262790769020654379150015413344593598983448983015735701060347044276442408760672846990816983879158470117088887726967509044858782211035920640062819280902501911205565161167288396646158948373835145026639649036673804010897979551443503348160782819109200608049878435088148741431630257482219299397535113856221796803572956569565156583504976978174239955872953630406309256997800482738749567224168588386228579537725431923917534376348273966429670522194607208961414904313712664833810503813981875356850167235132208824577637845181095043089035517170525517224734006897427731027901384380868996803833077157586962549644154446230327223767944701379507862832096313593145241562597859656021706950543047178121110668121294793855735491858835077240851179726185423359630331769183919417785725549178919949594386745843480133915386226460705184929655706004746315875548886628541719745688828971130504402372734417826557572986016125033703199298728731574269573297317348066692994202832851778420143629655894566635609772637722080286214180154780281185924267527561919099154888113378331599983014021432358120741796180462146506160239631682012851244728393364938476677996438329395222807439610276311025424013120195788665297308839132618936690233621020225480091167700489978964365656067408687034377617256120835908303110080615743949414715151861516375526583565173339809041213336622433888796503676141767645642305120521666320564626140302173028382413787516446323362863108542920223747088475394610019317911835836459536635097251425038911996721491213107294451803994394622018848965666443579615302534604718411070066769791965601876886374132406230691141985467722652850503572155789621031246536995752970201046093028221697057069942603133277295861478070682719563544971664831257285793424665565506728624379618370220209856819207789758375614326238284168030547304610172555344372575784794313246873950265946262441579194260485182486911424420859052300793167882286263146897908947213683958757144097258075349374305470794000434860415691007208195545939931081964383333671048466582048059937748709968753573926585455846411729240826515527753757427106364164875115798491672331000682029024754785362365660844906631415521855107124675521823786882372661933462378353821724130033279508652718790005773307760374380286273621427913266531154581395047546098906231427853932081175994339598626671218365870436605106622502268087573723680112830028833232846445245095210480095078307026758225997116436114356865585505237369764692225066789365953198411893595019110134454711874121965430556770616151861542834671756854983686980584362243284897888306686652236393428311431867219153418532592821637928779494810301294486179829365606964808428437226614004522287781980941366683389189509948172054029185896188839644872562535234400898774603883977974053718342550037075988935782801492329945381308190917115223406917283618773749730560111131513690598004466766859693818456831299708854446355365608570830224219816230339289846598704812884592521965450658135445896620565042979140340100037493246341072006802338663611998910566136676859591944688922757554719772894421663614336715731247669462592634539040368755837891510440914124027634339453181238176577048691499094828185113748039411561004257667048220232654828608702879211681536347734049806359431676522658746657346085395456595614607688492202943488063001201863398018805296629700516791593148656543424378053685499149829254130174351276763707938992769430105014678334156497702288107764418299836359826448102345255399464934786052122091629013102267974960973283707904650094383986346152807773754311220042573674565541580597517271007005282044093903157576035720356303913364505233297288051394446884754832488907453901554562067035991795835592118536283188992427281015941641801418615872434119784196077968501732019991565098821854879370097673918475621729360147185676764771988285696464939569870491537780802448764894393899429265757703436682330142089158768587467573556201568164972701062137464888813924039888217565275351336816696399745648006275122246804250941658520354965886511114378258042891464627153806273832928920584350024266843239208081437018798559288490087465223657629945581333554011706950056515032274722410799832765123065290142033455971577858977365092264832892057280821583441497935312805018256773575915004981534838305361041869709021951119852998418105718263681309552072292807163552243348836263495624420045610655399789108622487610069672192546987985901624289197757673590374345122654682322166858535139136159109245289619926597598661722083869081247583291687496186481895824594201880343752868382363198773017961760668123049500370004746683684688093134903959794281306293819019289260446290376984733832416722995830680105084341239340862925698083641908057496257911217081257143594259645838344890668515945576790573825097047715889820456289867749289187692357796935474598466506133993584723458971048561756492497377024811075538399445038335450409761514605885444851110450655795480555113603816451902266346741306617082837601371356369358508673444674865460396557731475314493140340068616424091217841529615243781498633407753921905253027477135353836245731520734976310567677285242625866807717757746459756535863068062737870958889407325646806907181668415176673646164358370743847461255177950259600282189657888446707467160880552634425966257346007542087114073026402066805079961070716354057584772783124144471087840066286372222932876854237968837433965009488204973306118420356214917144204619598812027689542205054149762245371875641439636502480461516145974871656559148928208180141436965207535049569906506751401569819469889956542805470462485947281939838329456030796698402243227091372434240437471574670852208341680455749272514160813624952551990026889334320978538278912251432253728076784578000256920750498790801149182120759059956811148359431913889937802588898152310259402166479419442338485852422417431097779150503355412285284019097933612590980180298370076505136857983425287698030283766444381668801354922841355755000778641810179303526087453921355041285887784935809593197886378991084944832961274232577289811380042451954750167918115664452914211900316680657198833269651257642668137605312271893012010593952534798678595747456538358054985047990404255271850339245031998186810361484380299903961436312669840872233127005667208747191803309003468525652584370715888293093061074281678174944712026022034415067520998424503164355662714613639495083252108904693621827585988776001531207890503011075604757856118388122245308496597973668219543197769644339865274236491360670863217363830375113716466734464320191010850247412452559664288700322752318689809936382092410011150032090614678915481661277618200514837452025263762015164542789168481185211094036952608252423604844932265682690725250085458753032674830047877963523215899584930240976886942233129110286194777049191857961794729531789991990003624295939105198258124462550533271939004029992964314130841879511527890631827068698567082662024872734793249585062763843505096888610173079576630767477440740928068123048716962137322117604188144840850716783234495400610422990627871552907655873068870196017651179271809486035065388554060520332737039170891566626049969714333885555932487972903079884360117531235923120207432889252928579953525932130172181397040525730329833849283777327563177159265874465145750566914278751729226596115497522366876802143197958141975629875605951570737885807555140182095572066804240083564272980341303673449348126814209045583783890579739935785017385281935190646802112709153608215865371936562394899864432426357601593648706771765022978348191164130226864783296952053296473879160709582211874809492050071408728997805577754934389324969207286892610028621672103837124664021165902273503803402649102926106337046355912147399114397372135079009303038375502910210386583067352461678083336720217594245118280280379879868315877640895419370905767304057705310899542264788107279655304446485837111062045101452475462887278007986502419503711576161329529702119910731310172408945291750642491444826660467963453297451436405050544477557557315801858159935872830294693931781256686429637727395854234158979190846670310303962076737505729261728202625269172559565124210599130638359994736855576678342616352730224379670774566308232581445610449753064867647848761768694098303786528961185766126221064686546665088486732220062381053232995702098044128162803618281298816574169136196114614354761594832023061800680801771104268350661024554789990190727682738828432563641243826104768766972625730315872865614100590982846382560544040618074245916539519923975579574762982347473625510129820058114088116129903218307350610712272454132975704026411590903382901817084151735457167800368210155768337691474842337090120561333352550401202735228986170260943135037846854355168096222046494947246666533043496295071095327103473747426766692002563620002651385107666708833205781261790102127635112418466154997668137882134655266694968820232773168966341741671496321620298800882164443289604061156352389367752472724547494714338805691437944539815909279427910533809358026195921211101448446048648918137328364972820380524755708451341179978117218598037380301348809975052905154417603233059110710375429071429341725457922790885179318302578581879914545130016632543682686147787104209170135989511705846061691095099215894466964645207139113007816319810946089057408431649261015499028593059741277381226012966306890268637598513227905553640858948685701701408239683580755071460588862989001472460763690160363376862087987450483538575661342327224382946411577787460413775454337114771410814080596443717048569054653044835098464981530919983063089257969151909269701587368363046766513822587468075238147392655842518490236402916766024481228529550529704983725192530530998336019687023373916995060378150009964180072195564143623736630019601405879212572630163771954891013894384068550838721824347276309512154654372947003374733206641436777847622407473511866883066266959955385662691815476251573748495055740860519915689148778711339989392686802217213046817182831774109584330322391851901509788850638010840047077901178517976764023755691571895138954270483741048236109233202130815770884125943563978662672572359006983213070626581766711891079967656210530037092081014620930231377143570488176326626634868144092467801442977100604109800727456840123922791815763642714997605177126973100796544934035383755500701297706100374825704657235645241560541227966108250520372001235627193026230683817485963163273769385636682474298848825294781075680156094463659735029165652829753797886623808193554898401696712216492316473426224474362938386760079456147988043613114512230121554557680955181244081370624236963934474594578608109277036137191100659210784638754545215551580489768375784370976184121391184200474373051025437992041723937352522865594644810475745008580468595831127140726578727525180131440735814140288613813174520291249794662917982485164729597525926040642464969215869667124022258629088168260822778586788844234629022396319086805584898219126723375907505197657121322417858078889217617711538162364605670226359050643501863411089818945867586501695786367884619374066040884644468324870948287029457119296555784883013834300177114559920429186610188468251001145938255014343694370646468054910264791670316036728700712403457113517019321055533022993047015612720472466978899331538090348475954430405555181780109321259719673661987791616169261872886339688797958123176218351339532720655860581235730057687892709764193565246945816076368931413709379091142117565849966311339736562683949761697990097747688304811016942099264121357441908618035149120621990955528505326520746279165464034578678336066959210094130549884410556471448335017986491509699520316106848760918929508381407110333315100746212332243483196533054308556675166299822887002158655668986029764711832143730152773720069345269123976033685929955225960904647937131279699447578151864917787722647614201171572980560143486514775745934535801539307082162778673688710039521813033047569226741667620320318250956992791438197261179796663241812402232016831229307202233246032563751613640997812067387398649168658970798350647722599757042801337164098156843863802898870270486361124969714375385618815302532888847509501207350465722316844919391242710171270957012349453598849054521439157926392096650594447461087823973794656007987986476729506308764533806451294654964857314388852871016268567088365051480769597817630891776696062678444895876389589431106881974473680455184612817814407614722402980788948295392027711403159988293299512374138832599941508346489053019631583227480369703138905754021157762291521699321593348499126350462334012483215919276976773577908706312774799443552389765632650817842398134324253633595445805217200134852675830274901968090482483492969592284743245293716103037692657927514533623828500700579773346759232042827167528853577545800651930392314478818621886069512076154401195660872277244604245697344895811455003505178251450806548086275382695017962918498058150592785395579384981425640195790028536052356508000681212254192570591481996126289143333106230135529259785923000030254251516609889858263497207103707406570074881739171116517778569727363922597857825126869158585971682466376050038775619782022062483026923405028749722100621797933088672354160163638822369529292628107487170173632619504675240729228027122839196936031941299610740897719666440737986294408280577932454140477708673889557426004274623633529868524351452464464243049195339414499416139437006475610137039771975895097589905439517769963178898156111359351647545168345658692713791641273731153314749129159558036981009985214908633462557865495726851314643579582621793684095202078747166456827447925031005112246910473507609260021833371530575977956461030023763799652529786467671370298387659214576305995442870450640623578286073979827157099267149801997215198803273828195714911944005142948587092430993171864529680503089113003066266962659701181478199536766581069131276879204816680016443871326987403440516680230086851823280574526809009896841681694275430472182409178414608188715195262669273368625845369923240866746014510497312610904851238672421656801747105581414693457707430036236015883129823506283992019957169897783784118817883450258648461749504511300731763602152430622671354855722273160573213018567578471316729098661171669652628916089130843350320731195608430393276445867152715110095465855011083418852968372813761693589231067717508806961457875829586268347230615953490453810756262385331152834464334019002385177559601583877675944918257666736427406379787605914980199096761044276789238814291831972161002218780608715527414167857970747927529607598979011965717350756486721187895171589832983119385270286660548763721076874361399926841370744909501538245282022590927942743789212137556512014369258212519192881276462486740349382642812973011272388300409116667203237262478008213905327417003266990196892724295990335730540791458104289400400887637335653496471699142310089044012591227189199715720573263158523717293126011083328254858272691558447742836586226241372212645201671808534469174874411145640959988358069024771801191065508136885723035591508070330677401165723065748269092007126223875710487391820582406776169695435413585517662706795925914704476056600448688296754614571608835627505968120869988626651379435877925215994469284611097090741134832634904972233547474140698831096486897839477997002980704083056293239804436931781710866095893698564151858513988841519642505084039540766155998659478082773018876673465291523943943166624729951588630535880692185257692958173682759396514815716939487354993479574195979367113448813183395694557880798791834201884499219131964619955506772959871720078909736341125979919204401510630515727042542688054578825261208152079547349977134900752853290401102312818769625653742097223525102068596003048941364104286221170272958262166911507201965584996322923046707928011992299826942024721212928122349992171145376833095170122816480055598043242416722061002689293096992433092904850763765212208882718296438725804735834509816930036484518774900401497507015213118791698441429394457701062465024102957146276888972309886203467958962260942344170619992182785745453808263492234830210406403483803640830593894342859852675193714661058712094939938180018029713823226319253111895638556134658995688803589239873402101121800673202191154821012031595600705765351363250756998327266616784649269836045276769922293906328110717467145523571075808102569044332354870264504811427480151649297023511729661649227124973105159673220213548270460735197861075826469107243414727086847328877743271416791462448295282014357239815422930849871338371300461989128456328956775819501306678931326404916348816837670338211651044962215583393125969140242952520495430516685879733253357446848367882577648615299077355739855340048867997182042653038892264970828261460546048222799539469116265865471962450641489578076513067649976067937062849494455220363129769832969062901412687436229276942202184435885110776889728372835306468367454087747993314856286106092753945354010349455627435788588041927026284221733420798115456903584661791190250750039114523979121893652605778683420216488886519672749229717683333477899296946037047752192738618107882502759230046733670009182564777300694223923380458184650389203204894377429992198279324774658604050815017076872349846952118979876786260689146466519223020512846143759843134574272611741482245141396419781291045732704750168795696917053306282813207863804703022147603936461212180817743249389637116043982321099706243736797962075453733595477108167918369989766835349815921045086111540151717817779482486762941793083321037315755501540313960093198715167637418986062808023467425700042501421802269515284408872674700174986451878249559243069229263948948866360702549791926907263822366788939268168777607355170860214729704552194597125932118580724423073042112691443402231033551612548771600168628990150890427502063777082874562752115995629569517325971353045549652867486336446178523631044186077028346035944624146549728141714369483522869664550734152263723643873526104148412543794409516991664981158111029352528557442803688503408829559389074107265340168772166415644627382780963585081943361873168428468882403920646705051891770838016383953428280110783977781395943806690322196527942465902796880858366577987932122327901524662791915967756566823026026376050277993482066019295581125053148093663073829298318489131438048173189167021745004182309303245956125345340399939258564471631492677953524124139936879450231035731643670980581773349073908134186979424505203565674241360337917972730768746609524755917878493364389419507724761537748130975603164804084994634578770331827095225077096591518790811801956197622923121810783539471708194554149844884278143896913312605252597725342548473099660057530623094497932319417778546517301895651622573838750512660283113090731717149378723441636819413400170522652983612386077003951928997838956053606915671307337125662153421759681732382610606789596109390571932045535132093190752740322038958722912851345962866715615954253591390414109255393249259286047529324584055444597582726642039214223861837865411172876637624645235343720761133646721103610570483916903258013254000662467413024508647751255379714774066134593381732088614021243181127608207026741915719277534341594712147563805878402858112849115337896651042175116926694677574918829810165306923513435632318045620416169351131835068605991651696146042726057816789236619862322103123623564942336476113367177381746425564202027375782740432758244273539258288824939260483840431540718779129965872545135519541404056685208611095361704629100937102339830525402033474063358412009251945128034324509702307316408812488312554944841051113994676359466011200991196202883675140500786756196248917943620306859542227478290484436054215995787145650363638661657383365372566765577034759523010252603987168973422318594336145216089997837883075426129814601562018655973167927468538781617906637553335447316488413393788982173934669946511986534046255846698201857244740887797981138575203625667749419148960021133652771724169189864084785866245315072352478487496409791946343223312021291923288246001212208879547276216183347801389285356833964284460950274988214951000805998399888686268508582684438708369035172447595071899072605848221674608740115590395811618369663524689154684798396065013662847543199220327124791569628882601217266496477348262727219743139810168590176304365117553951905625196850639131443951374294255487251460406907753613764420682593075948230824597136029893240577091146766574963274033479756279044803262119815850038345179236452475009195631224241743614751184771583751793855569148707542450528055583383708033834328635420287345323678455428591011624081380779294494370186366657944863773458608008765898229478061215772756937821683333559848745551813925763922130034592535331283294424267865787162885478244570203824069840835480482106199143393719410334179722948785350807344677186720962600109431266876279286140827399063778969404558100536423197888469717827934953885364348357831109776007188829665318836944435260443776882173045043245621781744857197448625921020030522235699997592858778600056749272634219650925449679784240337584148592816993582139539198431210814205876743343486885577316779042386781141432725896900282602987437993185274518819039620496436533018026971140863336824989621812701396285347260983033496852110209633998859315249339001718908715904733663165656864153723042026299446994070324392216586575711987756513841678901240072001434659647446982863295931667091822483822659197394602438735198330543833165489722010271451200299712604852929117390373802348422383302347290353600804453716209630506045400630636715506496688838657232534683167047653014208333236139761735187531658813453008129479923944460345245916045310664119549631896267276620336062331852775069914848366136943758222179092702925939805856048545750741125387437670885964514182585668478398492531230545105544741605529416848021199492697866241632139760200993453895746825484982968792313733216764058286324270015298918800730720110518851181666157975804981702546922707060249042099529140943241579927097530167974365567597134033345680317804923165984330245010968258725856763798209990206484806165297880228514376040202673095547175511972705157418206393177547148478587826467274954754398795842279393228368552804896826842908943340731457050152921687817349365939946543097288644887455557142681552476578566836668595479436698353965171943717250025622726697441455438125419400979991161694037108094642250992079284165953891541853045652961499916526842288004899970233355977346415187414376437840094389724184576879037761009694114035000251282342526827972067086467825882148754774522360469013549634431030664368862212438986117820880224698217475784282511386558864590062077320744662831903804169863838862132963684814053972267350450377466740298770715086558013479736581820654064216784708429217691671116033190464391725913340267265832513036968885371686888969710779397314169164426402056379552174752762437029634847754505960742816795091051575479159023096770959561147001665531201466732959296554714403042432502440191123265473726574194056877526164231424975203664612950713252804099818652698207057544847532351419596840210158005195531695910474089522676231732957223381498928002787358752716118479097194521737082105991350776245467496726881911046211298961807213371091662606646399393879503712471963833064703182965567397985866996026421086871108350482169127690630331322411715227419288708615714729815668038552062571848517607484866857471410637684656636655844324398511719037804698295261021985575781260003088639391094831122627815393577373517263564629281297258528815594996031987156982425411989054362370172532742406173069080150956413469360040222003886615433836858018131342796055777264979832270090371027606472994955771263175853935686393949610552943551851549999925554875150465571916945154333686009669392188205915311053431821472680649579115786592179024481174545347249415896696672380691622577451623692876446329022680293373632505248083468131976766137631081910004802325271699388949131193853620723469300045434819769380969701525943671588041714304122630200180439037970077041077208194121649778107844389520888764177182575378557611562035219353905608386700153055894577936158771665711658764910000685588916505556180637780262758123883600613168142301558121985824303261482729663045884522391580128469034441795985617025252032187796473735468761257451150138782605366333512232136678200581405085334648566419007498026954878977878895191625258097469458321418622366026889159522287022671712862933527587407378292961007084294280673673309765239835872044136151455114160931726881265444964693653715281010971027370883948234094825116896362516160903895465682685736714494883458864324405442978866311867119510167152209224559369598526369993921437610988720176250628717401556665205272698644012764179505353305637698513404498179273989548771211203935266663200038308321355207320481766193230629125454473245232019566678247275835787642216882706567872215350945660252101846301922472119383490216622144621146328675099574795160304439218498797948848341158681712041729956137328158520958355439958766051820378991610327210323387298155982383658924720186909945563325458262600173506474496377544561327440421203283147934835323275962783645542146679028566798839665287798552063539960954620136582718591471352080642479943897097899908144063898341339790076774434740565239890403604935843717665318273440753733109152422032183281800073095702544092241916972603702158113298423869756616775137510953054061711807249299364747712628451044431812405373505997049385049434770248001331241544565638341063983418770275602957568138059010248507628626031719214855809322046573945736130332296184920717232753660100866238547445199264461323954312018288886115410139168797317767443275010542768453930675102914965181594550433383059866938382347349273174713570904132111964744999074196837804419522341383545727756243680567588525409338632302585805874699811471382783786320501261437544597279899183614066661999789469606269603238469360646235037933989481714869809442587394306070559810781586557083331697530781317136242761539515738393398627027532583307807433498541027319839914946547666547084678827717477824879371097304507044005354855828868448448935904208560197645911984270796431309558680646213367434997833959403197119171652864818061177100820738950933448457944973853253119013449972462538367678797013398040210929894049851940370490441054757282128357683177513077647498479420860575416682347614853668125138679101864064170862493267870903149585738235049069496731996510255648662795032299327986788277636442346699588559574346620857909978222882763791713052899189045632384350800085709406956595994868677919036419355329122042309371177807516469356765459606155985650211155152724182808686123379981934934782890248493960309651534521490522864670376081919743320887077475335894902325070706064779268200510270558967323593949211871782567650422762029048991141426657730355297491866487775080141269649778735856840391155981922627618293153353779126948368300444081163633820286816545240924998804095785567781302441695653453476273849001288856727122361403593006794022852519515016918629790138535692102217987545776607717641301141940231032190992125006031878870416644824238236622494093086406964258557511765962644652858105075882661840276509698592761162287232362424538092744453208925382604867371575328358501095276629389951783110094851582373081867534807975298910270278546367806461999105674943967172527188323644703531724999734935150204572580979924850789977149733358404382884799557008621961290837976600515383427273743544640579389786343841318496689123415667689596273871626221658529414475389442386040091059212259312393857460931506019855826353151581374064554534050237413020157183210703061669205446334227359839860148784132940494064352602670900298791073000563921915691330422395700856406781637206447247844935671380314441975834363483841011695096247828624160845230058407059244372464531190991558986517928008609171001967183565921274230236956221367762311264019987436463233429039104508882280215236286860747949146999220456481587168403698310056484873512985253994263343375983019084743826701004682077268148257862977417840097607929747373353187554127084819962274114021010816234450564025668703109903578987739392049434629856870535144948202319699614082038124380932701650593075169218424049399703963848627320024110342127509150009993670304383230158020646333097100943693445264697454195203841005458267129065556010254601769906388537028388979524167321699296479928334331477848229229066593966351462476953090175160245547110585740820030714166344526176020978147075257551647896422821355622074897336589947096615598976965439742782200215142863486200744783647361545736595186420089562400737828606435397394284729966971688336704061566665801959635365647032479735023911577993298239190420213443494895366004328844115622338507315287528897700752537740521803658964251148074683878708669119474915624925950781922827680607571712410611123959597168133704001226990611838842787632628144801901428900858631018854098826150523727031300580752030262007104350407481648925500799996891799528840258438897827465490965201488058244488647695312538165350475594944593931532399314183629099330189114284976076355780098508240598121819028302386802561340406466944903923319815407610459205820081114816560144693604012961978323561454786797937552772663142551029135259661142612724076097261593940881628855264465141953533071442994677657206538149953002436257418242219186851482344497672938656438140653056466639389890672426168582315335676494474434794035355545357837095517864024860874017654721569796928970977809398330851038578152546825671497713949941102117548463710928204446857814767323841396805122245999167488347247838317888608634297467260325255454130610418287726891293762619151785995670894355770234239533872410837886823136856056302540203784509752920609466501933350091890847493267095778849057639505720223792065469243309108741067223328865368908230331094346836412616138374556983081122776934628820788443290655204369058178844351295974506186718210765004680741113740301457692601868038434759825126503695864082961891400675567273238067289002907079472741121569467857988054789617285989925537600325243312713419875375333508041922089257268636486653467153859218108105424893052603661081115533770429002515399487122334942891354925776948734569993362334899828090188107866785684273479680444669116559448221573747129024068035341722860888415197518143017038432037968980401773660491583729578005397261115936990364974284742041241034062298572033780998517158604677181597694556335007443626361092136312662443487284563285468042218342558103082881801959740656159921759888939395889347458157393510024439159665017574726783325871669033304483349990489028422190020120183692311322729511671977965358559803710950157186088254342494028825201135620691416578021747404014719882084564252108643862060087500880672912891357549975140040280470609877995649082782746591938680558942514187670871511808601337055898949374619655024659351505059462657519167420622527315567849532162966205658768358994846875472237555704600599425355706146154191525256121095777041002088159905259522092325029430173135704557163724602435326882063810207115747576736478398472501253031798450789271187876516977410382213591089132977777111195691961347288068656676734358698149092364091338361255698052618418443623956882851046948836803459110139074857948216811249620209158773528993628294286248990737195554366480526746152573124154660399635432931383095407199807587631194440744166705705470610022430346384158920345438939610944478188675419466295404917618844660688152079192237912972065092938625825682476625247439323099173417656469118761989464206446063091272345062401526129157205559752318389387904125851200166209817774090075934021362770437969771650619450921037771115656810576714566030950302095566325833043355233812101825538466587270576953462069944426938018351526040298530632745466261121598414737204010686645031755970039114113585524466083307387004674955638571220166763928917449541802161378371014249469563845636783988002535431134049013435047960736483722843708536946783847190633268547995801688200739384806263374120699636997647454706609173973151487521457775692355882973905269991218553648045025115499959650961386930339068546062801480524546028952293393862976244799898695366021138935269111095314471523918299671117915440761946162933699409545594757846077689502199687982795052294452525172514812429628651520639945319753222616629109371605349499518956670483757874964809921035891291106014174626367421337544295043976607506267191652229929112920040063707006314874375039858110233553670044361631908586410872274988967736359624412354542068525063069523052911587168606121566132603097024018806698413789970337312890169555125225316727769733450307713763896488122093999208388214009416770996932612445223009778147124962157148442684497176073886791127286020644398593575638788150342364754837680245741580177589626412123749672035518050289946330460937694474166103411084542137534745199779056648251747287700798538236167716265252321930156348897985024109545422858322445530875162015844245197777315449577077105851106489134633057247158674532672655325839707457695213761896803479395264110610374135317901485673688904428688308361840235017032623016048946731823425421926191735877254435317906280661132501390314027799950202097331356987676534125482088505458985144350481851404882171689186720492185724169566900351579763770408843073691846510394014044306323723942663235444099180103603394119630470556636633536964316470480926781964801965060747977578830175308292052171752942273908194871791538177489996959725203946337374707739097282258788701557155540324752238951418654244246346062806077695313371803120058404942524337291482108198261867085299367332947335867494950820431417962722776441538803882076244973203626082180702499552633314047163864929994212481837507210228225178468531155606131623690471961418366387895229064509161931557599544163883953571585872213171493177093471444931062770446412434462350507009344289212120607891649346900564219275881073928380818887122024443436394263672082858481017049167780672600546684848726558350033325201243670815011997523322899361756640497917880103459133141838421229055865529971134468466473763885443850525374555952682572472216887109438059398396027160257382079512045816106103323481662960991027688154652668063311392510807453715275568818917973063457547720285113857803631360781029251809130470500763539099715172330925590959026375606259739625025913282418017849600293396189444355597461547496875446823016206800103324050161720761277575029842535758939055852663269468958320435322270526057351988190317218721054216094612255861123843882030835735289589598462440313803306258016904113357903350836658826526445850740375206439872111375775318152804280021463881097561976091836025215020541644882146315459748387598804014778691290953406459759725827394063447947914477421068693162237941216752537076046262295846620597521449831650286577946473704910660981959027451858815000545462876544405162370929482474453935021166188037702047155731016806332048782203817775331064444747752251138345202831390031536623657514815345549117725732443145370544070932971733054004091466673266765959912289855253477946235045618093700424129931190580000493497164344432614044498036900338838399806647617752037851888403926144030132090995971673262671887842833496952314768978467211190016980290096342685822021995237960752842150396020932377369040310107963334244332951733783379305545764657803099142593313832308137914056579419682768535254243535467978069797452520335470411613633301544573590474428479539902448009098527774639832879359922483619372338368566750464916248191460844970021572914032653977308393405696183498210647245870340844646754572339570168101822676063667436751055928345632792732846594171767795270361753729230181389553114718857183525337125993123589825956633649013438966688662967289116915866972875379596684521499033956438420126418733699164872412023244419402190255167962684399367834201168523577888515670470431967127213687658213297459655075434251860612235644378928200207505638851474296241877475455475689194377325817468600801661080474075641126548410882792834550776106885509103887335490195636526220570481086105634130734381555330916696055930834904798890249287378966912314480626439788488316263071818253431275525713325550855564688074630283503684054128870690141836106523235538237081015702982370826125474825175125558732195107035214452056078856491691019598074479016720783147376026910608272512997842916173858146253511562073867429155332559074757408080816451608988865723977225171398426931551302931395616149994982155136767062766677870061540270704993819549467038213607495549156170318591174326968358139593116554635033418794648795658023261205109985903466716668995703352228038382032997452957521885291396725695713807542607479016998655669473877793153795212204804697644865041157847678202655390870278945473103659027341524742334228788870401507797411195097717394550742761515981940328881932441827412281833737793523991429498700938029793923073899255604490945531242454674696604286675117417268626747267899206442911342257688776851850345255525502663194015081764652626383691395811721068976134353186228154581385930424676996717054842923895206265264385572055377476743658715946880333738696805207219047267245822713076119521007542710295043615376332389618779937326985692238056783008852927882746116590044294099748579569295822515408530066554255864385918924444674479287441699607829802694497942973359348688484594575196607658706473517083505773313105217938484100619415135167981203372716430643463248816149104066808617740966308472190082111460014521232199297075694039107695200088140647244408841679102076311635830739733735848800053647915671643110946190368009245131663275726973095360874622633925860571402748865168436158012878602800067932191113414653764899137909434858734898852619572078371013034033655588113723615115620096655883677376991453987331148601620885699603869145062628609186258746899286045807624890226801732798465124157005076507379984175087568728361372322119012573789073749085428657489704583598486133959994423464215381402826330419690535796648854624725269342079069040538033278816308097655671554056870055517891693008073387221234952521121217065930905309483580833118779681806485895434019762504907224167184583768835219368384548332175778086633149595526041988424017543781067749609005864765060678249827404561794304915104042930359537544440772317164949327329189853191373819333320594502556066401355590269784591505537599022942595272829335741490816414490433356992022716336137459846420472210624492245802058539717884904313357117701858832133152912561180787329403953961300291851764266091887662748721312680495326565484822082769402532230961123908553501137192502331434833802182882031905642807974085187687222624600248803398103349185307961512746473411398706834811082051848807367554502340314111615557240664783866405965013933812327077000611924979403212593524014351622845257382312698399727487255947887759289115862026390623618321515803729413500194364642349338999803845889353643525866240012403663594744909043324300586920441521112628282962007971323235294934724005730278772387864030790642432727703064204156055897312837761213802522577597990154621199500027404992519382638571490409374262843761564175309582574952746478922661751506651896245065076149026265112137463825780740689866104206002306430192118650818466458752371932573320818974150891817868452296118555023908086583705378080418750366746010864201700651990691102955314362797391951896953901723083962791223562603155701590182666921527051126827253863578827575026298366027470742192032891762594251405493457073320077854135498581466735677064848196575999260845793535609549740604647813829701914041752594283699495473340764132966104340334404676918338257728266496508950759998586304672399480436511889015250260857625373520342743457462286149115354068811109530232030128529149030903847439727609154218117797289894142237502740603551955442040962711695650231111505792466497113368933732970531964680255126036523378632691259520433560294847371199939971063523677896046892003873056900120602225509767684529547376836719668089813187059142035148606470755568979132738944130301782649674064759013358162098394223619257357271337244085215879484808896739540442021508858609854579023684258398720605630134032677312126245702587148154368241536978635193587891041807133708961751946681455292566913552152332036134087635393816492991890279743118018017266234801707894356772466466311262089056690905054190605321089230559145112456794382407360658700111749626683524518048326097503878424017610546825973794573625515388229922633147062450183820778406796530287739794766227245910708777849387531937524892640264437456584494275711925147960636179472667161416116937995873690823861300426550986083116340457468245303520718438192266805738933357882349983199221498932926455688664107215487119452883466341063082113943538321609738183028114076655928537252993940595729158339971881652894493995265931208469459488438769650303646429447535796997483470046296549586283337202513542029626320398095899482064164281888696295481398305339933625874226556493155157577582983096851444339812688647896012335808804124934081235650658605892849009283749738753923343391362780182322275788934406936431847785829975838756472746041723214679614915063867169052258792195503093139860109896208121586831308827803901756003721843459635052997280086062780919182298679937793410163068042920285913239343541824510663032209861854304287452803379008055006878147673537104824291252106214738036692236331663997979138770661653878835198184742442310502401167994134612883948229692767248141397590231781422352008234653603566319381356889465894715986203623750884840000830854101954080000433860350137542840547600175919904297093958046014627781730755470458428218271119809173568394116601234214533376267191908616670753373650955443264778648135729317950262330220340872982077013372038841013974283501696945076709579859174680412583436460970309904035542885802040304733788995696788573849034484624180044743238988778021796904194246487510146314274378170516172161283869648197117380645831375002050123418904027603121110719186604406278961217988332234614896969089006011713420873376447120678907779932902267846585035622859194321980433266524899235228314230465311155250809284217851765128776464023412790328847419464834542212847052854086129649521849031171475278554407412884591110824570330190763650392488070360339659167574421979988533962550946384752095551507512918700388081273883464467215471557232661642245102461849605760677419488689793282002362499389245218999873564050397953977602507672240676664041597000444332002328837581811902755742660304347250762313858044316798453508852889141897657972066756212460847706671033349865052906982881004484735993257104109257449016936928924833666808559425655460375521159569437985316124729561726503878005422914245645259466069887482647172073036700248420854753650261356782639824505161257109197488852228027218724760728643995430136352357129387852924454530887341551253673314390292147932772005449773779372747883867038979135507738998328729198787976502975028193647677360974697775179794146271415044647306312661175990222655421575377907754322693367045502151471258984286282418818614762691946104522134950109624672635400072555498151525092860839447272751112194605558355619820808958700425700215512488735603527448626858600336909489473539812557684857598662398368481526698700950563687341067203250072594710399246080412263610310522410876421082232311078441385402327700522283924382685664241815172042490627867508707714650225185649123264164055787193932816823471025398809111895911401991163808356416261463157670512584410852695394183574490909817020695439849349738011436249458703450284307020329105528085389066622096122770845613397175476396872227972813715758492694800243952225340711208065163953643960923381447757160204939793913877990017323247902621935043849728061962810748344858011998454136041809323260981961073378876472472654347987719841416852210041050027677213499146008034837301695643544615039616892212163891732897203075097215051839541726301905553662735912764233643254549222985644975235718022888639420600612897459097647746412371843179625104988650375592789409190335715317283404550130215972667810312112001508130815546821784284721585992570540478455676968014747019699853878930692885180004825243467771193923945986630004015579829986946864246085414331053700445464264587407998464054531515926644137023021617908726101974239641221320645550983913463465673435133022304804346357633206241259566151316454689608258835141144963800227650706382511122165337261160389524760522586254670478997059665303023533513589206469406546695652934016354816634655797302910332162486759699489809595779489291353126025479734939288345765829800948503453412862576754328701274500978993042234032376200727978649225574886106715450418699937897720978085868175056853445285144230683811906380005526363197556150560963172378114033079347598571680823177871023737010738133792700938691504685083032926275307267104548313223229101675941543686260012138865314480167207935964422518133379604217157254206247175851194665589793105445553660103647825164479473757342946884135875327756238994650387019156182994260744580356393313179814408384253539298039170251139095796651000381446047655529661799891743247338538464170834451532603224754069311268640494709106702502464144257888073863432125250630752717547865531659532803224315048799880536098553002578881048646188161553705060720458518272731039034000544874290831533453590990391841253006603388251256429881962530381600625383178905420700320882964261785410813166821368970187738709715206704482438973386959913589986305924708066925793801249972177971727337520883615903778545321672769868747119657281323587891015964127474056945145431867784411463806105405905947057851617769178114979841261627713739511269975423713471482469033741739868638908452457000896553649237117301636772860754261264301763548164612637566645487518824931680181618916733308781758245034090058620908229743192735602983284391029436812241429302659500814671697954315165370942627009247646745835713261390279944819918659511632343814870862198350408255807861725801552326963794772204688355095533507571267218854554314553688429496799696947524256115141879273165122333266076532098262883178920926490463248495176855706065842218417588270285988865578831560902694609399689813516479841231520546359794184060063445350441468672385864498576813534652798783676902270991131176640961667164637747645598261381640007923183058191528890226318228579536071591104417407546267977972508552013629884838230833320332751925666240703648239356070663146529415662832044320819496540676450513739893708448088981002924453018876649054304193778826750872461715987382769713638947767380444467499150430232811195176050351173631796091673292755224636682239625620050921458252264908155944335117905222302789111733214756605747486689855237137142174910116936815123240943349660662596481750418865425067822040668930433461613015171652625584808885853991490734279656379433370012122036788238050255175562677939772085207785630719669129672144809813183309922216104607346163422527231583466385836475645501317912873509127755512405518371555472010833242714201927259314558777231906930410166024613873454762007365462027792976595623381369544551116478710157097911562468745151752788148866240270136632519613651809308083196230952783286381317378227972794511659698801892807698374220225806176370991918138704946401073381525660251768934544834112133612621963029604758030835936113555360627653822093407737692740461654610933820416681365859447047576024401084859837949235138772025549981190591959683821519733025741986795944338973968027174734968733520398484483565802367583602750379618068806156812972047887683958065396029939226980746108625160030495323549615138290043675379168093357615030273131578519096489610931210772624965517148658794553280922002814858719401062316560815443292292179773635898688336558911194998660311764501708196831804134435772061950773553116441635527306121101411165823834023103989638921448696247423091923069807282579896841234093802695689825156731115431383823808197215270064216299359384144640527188552529214760888832058952870118340423383056927151620801786431536985635990909775385731651607754171927331362154032663002908742781374593383604517667582777921423008679186268321536192379227031306782976689184354011042152874616200408423361904469652834237917287775325562395995510998926358604125243156865009895026364334490412315194696912294539310352218001416670374004760376461397916886546484136379012749888348785043808262029767549173111290259310945050583743320882015756136528862346274973265140191841366084392819090031705699414302453892309564741663822616217725709423039743527645514789990084755386106712121073789573573833941946214819381871217958415432216648632928623569830996460570709548993513902835608070130338547731019408895947144449458332508535170240818519288221951032258051778668905544098666348064789007009688302354972005882900723184653104543415384653281490523353217764422780731531136599586512973353595491485774725984915244096501081221953889900018597444658389815214745789042788773734318146835632385706593994696001818160556102485979673893415322314343010360981929738992987527204983100611870203814560547839437749124656377938046401770474378088251331830350902652040978557474476234459563667157455796754807681110149720640723860362135860660326152990470802860112277291461708735750645838369587149857402409215625697008241952300904039826408907534694888085876533798186818593214686044615648255282536783324229129381781312449518907084572308341844011052788989815192339288206366309166373099742855811377044671643298381115331655450516234286696139229359144962148858481718695096960041246365970032436136829219874497168126696696110955430668367966611484199998227382791330991130157918301414178304065860853075512569393260981785094079551901749042575825342135595158323673753518469089323066329448296003807424938442036624953883372100236013663786667746548464882860448097940562181255108662951809431009096341980508722917467486241194096770426944836415732837327729877021599472354774168071374082658585023671661818324319083124490205794924493074666781923234099985736859962180667938506973807946516562786221972352601644347012557543906926568119811418573616406284351910174699862664211608280438182549822196404581496799022587793863064286758575599247515660648398229171286582611098969171020475506021501958580668249468669205079051167629547120268949070300600897720178862606616507860321133659683113414938322126517643221155860546234907458416930541185091518402529549462476656463290241036373020905955570184320224011843569113689418645618545599247363034486283120720924880801746228735007107947700009074916388486198827873571871631485974173644480780735800143993665897953592958702798809902608637398700178322270757520766378298329107188089122363077911653623102447121068346413748300854842900523510209845911786835635213628727320599545395748754717089107576882318810568460196948032612546140274739757292931379000427170502244252611966644049964135242866327150554666461625334093422737055079935568703385629619378175385985249308624854277155013538391308686438600467966245271786087096195872469616025876656394706599485844051261768741658764714926702567112726382152093396744984086459717787528106194400919092443808872919384101236183215545887183182890985081230881749945874754473478770166384936675607652899965679690014146519127646292280650536451906136418675857069056313818296683078035441523763809243538556913628786952513148535572992396702570714556242580772357337085805393939313199990099335459786977953813480573443413666030035431804222824910427342384834744042231017134488693413356463632001182520985733199622678645693442408166967985249371694975680387093201358828981577315175523340008223803332941908391490019225158109984350625780124461559567966130886786376640328748642940305895728678641156809561808574743741387574852312483127990666324336563120532666545073138141785953051009183819741605627172972277180321679478199481062929367517860063749642598295322636333037577109165961477159415710338884574171469246208486821308902370892616043647870167626272562002653326507277622527052692681754300385407230854669317253951269420852201670844439731393209904866467282744975761083668799532847458371559818875895640566945408333689561375513982256911987954906022990558654002320767425349056721273921015111546295248653927148905291475459407332354779564900893611901069430158475337853710682603531625804778733344796402102696055920004403261153966132161054897639268160483495899260571613354932010520000202720080686348843764400681480303712953401934442163576141387580511852629935995538331865460616044370378901437146521561213069509550179422216609230524344646743512836244766488092623629763091371173335852626605337971320589489442159712131819045997371691435049536408451669777700186439276224735889311054931484926703952774504568608225007572574912821041709481662747655286468029848118710931505760815159222337916690314926279303923298110003569551499542580515927845673797052340179943377477182794803992714620186295044906802316103095863255527095849510984699835145687923956421364901487611273459010857508336226447241377804817043619154676288958268047893701605869533202197840109791553708544987418957376161752631621707021467811551005830249907701192286404180602718398955914566546774482783142140538060902429400033020747240676955903593553126546954699219660845131600539663343686610570631366588149748367241811235152615662386863234587358646352035935280375849173904224171605368452886740542129920073692901044478666405394155887883564878783987739023553419926060433484798171879468623295401489063029248850007392389347403113854536067943058952552817776543828584706738733479960046141732322559401644788398745745352084040129085507748285433962220567267650315914200838424100312302316095441989877852109842412173240962515682534607122482426323853217529857292984612508353436416981328136524513388762396944648305814671149729165226414168730677011116869143529298310901711144338099331514632126140435087540742424695566778165116070715259617646483367798017364469371494898350398487435238639254393502219522900467747864256493381829216028727897515693507541664548667066395892185784117431230299118239564175388555614705303433673588491236707482052478450802022811675660542824420555519956631384229522698091008807640139822749708164725067466505516409274506584707540357013026149322834411404903539135297137962162742772679033417158117043928647402712936484564858368510076567640452297002681394282258218347714185284463643056302227626338983023425965808740153669888941017483970960595962057712698873456016871432139631550688238344908758284437699351309571691221688628013517195641876242153329329097731465934594861559526783005551666006315689990278427968501173789800853200015183353679928618248493143739779690194276404565615054230001736437353870909414528108374779786097409986667348124848844028771530507393327191413258112422446404683123803159394437735598429060479871771889049297324336920602422803473246734684885017850745934872558390127153034906529889049701295851508318018645407351537347150723063421156923775904086578610093551049239173796575771514264809506852771816960227058064053888489294511828473244553829317732799062242137603957890377437155428505515614885223647598044451990104605524686576002693657458279692309384947088208448385377089627963338227854268033480723333006407026184252221558290221119603326376091827925468326357198245913458757506489351074566114674896127429250969020254073002518015897142625186331557304155208148007685113854896069906357505740479206856467625833265403136564934911064271975153046191979079393892376244635891240865517053318070087910804790440018883903050932047421771230372878789031599354407111207036124850977811763957090868571227508620683761153900803230720850599571346006194190760711588944811503564927790541943635207826343687186604688516594861607166794653148272167640084752653816039650228354910675322067764018576267188590467396681741870579727052962245320003344131713731491385969085343166907525976112665095377249152808597950056667780389779335166242944927088571071309673187212945385939200999966037290278224081121043222940600096172227209077371291756908191790498389824154060190694319720651593705920966796177691538070565807551253726920201243781687584895425116729754781201428214525961483016901473938084585531396830513911907916911388688007744618738487578237748544543306135482000946330494322158078228565875875843457207544975769861403120845012721720160887514698507283548531539322831876319511965222551639686774455421261056163218537484741775645700382865003054789695079969725405820385300632907522425273087935998305945448866076679123178363578390096556536247774571975083061577444978631799092292016553897564586437830475853446981658363622627131152096085159423561049114530032361585444078727235339992083959768228042163740766229707912463095335172246704487385339864450514256182559782365834944400794109590041092317362023211176648117352450821891313831529823714139363988628088260439430788540877762851358648559166597541729689130120066187583358747388267851186920885859573808103150539979371267401163577558524868944890281190670453582000977742907858159469942271937892639432073102872572027138221769665664846207923663203562108471864256088714729202090229537494108826351633859346308327181873162477766787010195711772411399888923874124049916134320670441955836044982667146175553052991828746973435186183767564508373177879565378399368296104604001160653709832117049572992503619577760099718324655200883160307983835933193479852199036327603491684772703839051606603163307628044993648911953728804204419122454638506234958207727179327724118859889414820863817819813232759173121388665381476432813282848732890053817968664906634547912868436693289200537498085783529546271614712827883191903351940799642790085080896280661964019810224318922573616138625781984770075494804485350520531791555061166116903976625344990915491059307228295794132397269793946541122381230518268342512538632305571335148612011427768685623361102767223897529269122229834822601210508337151039340147919339911300732993244144516708975371447140960691482970521737372204686372200447899351294455926777765419564941173116171857019856097712235761518904223133062413271364069253380807028538250185893262619246760740161962595550362758054946907210568932694935000426193779729269875145270061300353923232291022391742013011795037175018605185422793136767900043636014282546531772962804265386345263013818157460967959025585781406463737530325130780602316946996680979607666011500829110354970892121961660571272271554621369076130595941000190699382059616991362036456550496657811202699233248457038959242455269076904540609053348098738762732526669234430255947129246303055013597236783011157475531255461879516290947810586018222349919321874756963723275454328773311319708430463967110100779515119233281287992411516078283484011616447290904212814686329716222527659986056137009394949601857144602062220166485585049046104539228896233388454827260370676437409794646507499731512772334811851742316807673219216664269491676898417749919848961582352439711272179904991278939703912192060205621301721636703489054615625885229270266090275926211989807913416588623381841830153638188629647392152513251996225386237647786499546566092466452951736180841258412502547559345252254313284264209905213359162801610311783038410723108800469896858463387936028629970221913378536101897227404397473189359984281019493017924253062406100098806905282814226897878316372569004558301510697438487742792615076980633310964934356735566876616378772529322259150858319817828205555740908625704112230510284580317793795973132374791253160911119765643468344077967401912191624917593269629305948938382450929191777673767375459089642107201220682647783075429098793509816920072566923541083915782367522579107302129148997244464230222940563351383519889754143497279714532906341628761314867939272750915023438548244653060067728818698955368533750639498035270127179490716880193500560337430120256976717933415191401983629198222959422627040148181683496366916992901337502298168527967090691595384596239511741410395200862903120080620610557750110889602770534468182503603242534202834256799071528602798750410718975494096858155205846434459271134567865710845332262396170712669347508582137503198631330021733486996336939997977359043601230852185738577293198526129503208065495440179018742650377400259819332428118673368680376955674976957356521941089721854615012384304082704574090103743523080002373682820554088893491163999882924615474210948031131752134450786457987492850952183432119420704534929793207532600100863389379025573004519154009033180736735487590577132668234149518026433328825412460958801759466549132135402067262573406956598400801199436773366777390961176743558177964919177947084493390257468549099217356482342709184268971219497537651050052924903462300948870249990437489407518721173794695171003723922997648255372924301605357872605238463634954050893758998356353461449202677605469394541765873319538536053694088850517378477096765007949140672084402949822371835751184885607537335575754285433768826709764380431536283308501368239260422976234202147870987516424843430589104652332810117704959680954950313450728321290730154627376664668359651236490113752575024540255913574468784303013888475431707051153801982917711231049322330128941838289577053580276188204779174188844465332103253223467283813723689148973889295393728894555320856928019935593915356707427511560467600850510744020331001614459387710021748597605892054966910846079503664254684478318052962151278468747570966181591629432612257058153319400283607602243951961994905677524871382829506337161540886820359774824587972142958927831711581872887912814345425109317474059855297167103324512230237822343782680173413057707439141785324371762203217313106918833353359333559242178958692891040331763313940253878692207100317057028976671194038695235537259821839122351457061521533556000130058905842339981989334913244264218200549365640700435715054089718841182607877105385109061662675572029191619046695571981115437989074386866261450937636459653745330915223662639463985669879200294738629648251300914295380372051876017855195248901297060522712246844068482661486955941753998804970670247336616010130673204207088918812278030310605382387015150411636097221451990492573970276043673570815703046992477627487193237756308289392858175916802079563329327491807938143412392641413887292242251850692289681255019577575647973670468540210003671698645586928297904157247083525088256259055499871131093097468885119450271678588744590680708327161624475171155965748564313774480566771023063226607050878324516086034810937730490204304268242668030175156423056881211740146382389080517578757515812973511629178610656650887787995991943314814831189571105559698431104256759911395790927085479763496467498726816800898553626564472613005549177682896508323844704672490797177184687511198518832327523566872838075966512225558696106025335798936157140667073948147421832588066597192504528492047846473295233756388054206004440417193612916501931732498737476444974823346160371135971117972235904932218436356211271082161376396144226081333695814642583116390998822074875713426856805005604526917368962349789006489620477099494913929972210508465944432528125449668902225109595731357670883448596531306226522391451248245529902208940859460868994252894066973966514904923167042667947553818956859393778968300126416974146550811719907861558442110175758073469184083066234933624841812272369649306373479035743709424199640238772146100157696841816365317834493561522159552428818558045419255926861994310900791800820911365777192723695247864576191688270362163167346753739309400223134026809100277722687330012077823599878694239481012351112804294784785857785042166814488319671008219715022095973569045306685519367640377148377027503034645193277575959913363318028275088921964250311894227241719484406792240371797385316419668736028111465323662175940614720957503763294362162980699160889021831785462109610037621782683602695842892218524270767103668892340947293911553128125890102633392319020392514229881859107961682497357749967801422385772580959026470861840934489100990757855558729725465942439409984460838640626982515743984471889337150814795761998823156455094119772712739894637458527726654333005285932149564431466344267344558160973744837881514577954243121754394442246828955767650341851371813454013292052533801400703672718915338610234185875727977931445157132788741819479412512710342528425975295095760517033467529714118847255392983015548264842639259647944612796176905213818893056147535461269360394878055318090439569426912177221006822830586635335011800524886317521794928356157099069812160347276949726921727310446637979152265230526595720846223804497037336507325117068881440580765496645784530868120873358246135252069947935379509369769398398296308501245827607090223989060533078007621320104325425227889195345335070704457019050404287723308506946487991680790028388683892252661870752567476917362517062246222689441501049539353327813890546858381020677816368547727555982559410702748528397519582704469226129760290537604715171822710173210075727635736608349633146562181487810611249777799027555512657570496186138491988622123154560621498206256660819472565660397203426647693304801507964285524735678562060309959883682660758026860389281354350986468848523805131234289623039049688534331215601767604579003741099903349240795567533987410276283073148453746521537511841139699165941686274248291856909803528198415185724872305945021051714510391770839877629860721812211991192775169364957225723748150449665151338414636590223391095668360921785664182046768126613085737012790409040144097062627417021819543446225942568395438786426940332417307593237869721587764150949925789907420107171373411114754566321846435202218057221525090274631528378139873186850570133697464329887023592332404663248343377249856307338351049234930980266260727859204695130767626789601541122330361478272659734433842510406425989312749333495371299343697323204848272905605036769731182767337566395326446793899125517724989030803833820694104241903109004691861110790580030118326015378147806589435448636759680568480539279741017088439912250574070002381030770117675365051329417244757941243880826010038705677363163464669752238010642247586751377001825331802077212476669687136160553483358297209045365242582967926926927340191316699720434061652035326638958448912975755383293194933623906891083052712307470494798338891885495816372787581252109481190470902504761487341960261217455609213693081763640177210616763144185057561968354040988822081964547167047344643675569513163807118454968860872016550993338932787934739677173540279275978418658753386388217439145608706890993666823695947315028267723754116632152292469550212606094389863977617521411069730367257684762557694978450934155193307774799240721030883724451497881104999451037221211572092436882308075645133175896991041281171246647665433860976131263750739013696552930659062899854022939351739618465916836476594391524862402272913934407611586501498406440849494991579233875050524584976843567835640631645107333913326892035314641723797224994866905362338493223697999923225960201941539091034947371292771110556552150826722090642340407057690375446162302809303523368531685615725752798781247798987282395859651233334702440241368254427029661327390497416481771471818455613380342486398123866840742303409507976276980272856622109099910706396636668703736019991711963183465033573920785468470813885864913991068437227327779288441604759328568588182751103091606186527257487134877578531659707766432908061781409311132916196385666917029221820783085949375450074338640349759509293684438958126399348928111273366400058019968695026661139009236001584493115738672191674922862814211956307209472796835888273945261155192305120747172173550474238853072100814224846749899959986130757529433065411302205286796541680421879820886563444329227743476158394342011094790435487613283172018141819556271829045616537387445904799882089421418018410867436986823791599982593616514675124119334107147393078402880906196022134774847110879043444169219659908596450077718956205357616650553938373889031564519339046411543770274833702036307662513208060836378661255402596799619563483745423761236375175994604506437404432396314428142669465668168908012473357440661054452347938474346935638446299792840656396664864821143814914481584530716172898044677671770636840106927628541746390774270919203473013945705207683118728700623749267791821732850388527495126616028214367156941066295701942565531555864273972458387134793160318912076148737441898675416288675964158707495993114266549177078507579442723083741102540823578874479976476182524451691306723102696255834365714022830647820272257276852904438244851655651010072830383917713666980120681948990533381873854398734022309161286064469670117188965434473216267799341283106120815439404912744203786912843986164330292682867578232955077852520901708389099086768365644348155774713252609370138839310280517142364923386854009856748896679924807034943095507676271470428392539147653453251283422647267103222426974882953801714569480677465081096698443439013700330630329980786373548937977431789899091421434315427170887166625905593923632294050420629441469043781128768346983535955971645923139085255662753161805451416698021905029130394526751172573094042634095142245335833853743607867457408935353694174132377393454421040566613211594548963111000263487668451579786966044823686444020446122337349590371304266894626176384304801434358594099409020875308283160274050043065602909306771806274366246813073728947725379032130162011977186944578713770747156135016139662698373537256856682443540050472200904838522837012338430366905744123203843386425100134658354557266484103997893581200766938667449160957795789604449863662273535149128578980401805713831439514772735316094972563759849053271284357316721956609070844173717420156097833231842953123409601835978210489896275925346960567617473369882779509903589905053363448339775679518815318806620926119556584010661141422157845326142021451383960710590853906634597632946936877344112851124335077149311066761942880353539415447546853839758943272922166235627568273868303765025479174153659296488591248136591938708148739131243876841107084219844025374084968573219980115091119315035265231143762579638878800900489599284575376260202282333539684941425170995758027104838366289957696881494925301284140499295461797822048724847567973834322895433853973867712276325726506769723117434705710172326338972476242060183820151074125205786567511169267754451956868659211581501560061569723282258404974624926418752001062169536260090047503830649021144824034924252181093536703240837829117583255969655148889930396760691103795844349876543032012635004270175856133024774278340241706871379441819797883854905238041878339731770555465890911619770016546769148597903829671792184366227621262312804931251267039246515977603787114053082644975766867185175934574517869306453257203962750040683377634053300049476810516261451730837614069906542217693057003413960758231566342261279245045071036167829741530190355894682086905006962817464032647274125447669204141123578423990209589343964179269464104930209120903040041134882450677364816023169269869912607466263346302203105013563136594086517640835420112987770899465003981525245662500873324889445173350782493384005450868997149722899040440093671824318940896566445323912977433259062719495597762973499389709290356904458482309434176480623152987336034047645023632743910145396591082058553010817323370353424015006873620953813379889739452732149891389734989915994320053343512412129367028079136318160885063755554468549440079804100647094680147591303866287264939563564320637287189096099233811668573527850928613289134121908426317214448702939182600983190014354508325634896150243733381669169995858284951037983521215956565462021688540626627026722412022322685951351037692126266268488569202998965199961492782217907542294177886670286124815887266765178769911473925202841960822262764979197313126944510902910126076699999011984919915335666200356550134973114477102049546090165004977560305009592886663954024341998177799958694407071071593236281089139053197164382097442626703626438243551804638702548769852290771820849994061844095108171217807059105872915133211168498855310795095628086608511459017391223859811332005742128049701367670834368771102218244137425524988159709281283205108092196032621185435625491251310553450547257179449570373574669715317131119056078429409295835537307401193702060589488094709990543442620045216550364734641284506656871429378705219954706369261435702866520691231393755252594668861766193161986414693988417834828439391011675784357207795294813305735089666354807167816158291287837302702046651648265376908374473529965028261825751358350336238044655340091036877879158791294796533513289610764118618949625984892236982920345765674927683844794633905303852927713844949194246850502293505929089341816960685747006571252050137135109005982365299406720878790702367539958894353978913559105906475787164329503544696011264580045747100944668249080706474374826253972528116324991115794343656874936713208449177876442649095202039122801854736717393633479020739612623373233331395608614492056501742600781274623154717541625928172722924827403535002648367235446179180719403331105879328585963960473929467298633977244936484926959906302499179795804392712978904501682769741891579278087561702994864516953222781644626888287361467591326317416006726262827355393303108654662336658256838563840073196439469665707958700776585255132245588544139449086305826734035876967361322404682048961945263761148394552355325413718001205946445158110373212714551730795854059182739141784037115267533966668072417924088948932338751919791242560705285931273910620207993538218428079668228917014195388478455167990380852101319604159874486755735538925460338977183651005981280414579930024127477181779539080754130024535503538458054464960119712297221961881195418688769776467465563521235470168111289150383122602183800718057165738301988723488917947558407310574221096682766239771941255871687524687265738096228168362462190175682861085929327056347891213477737918845526052209449700282393009615299950614386832137062596814795011105683192335064282127069721851442290139710190502755549681375652406437843580283474986898187449021156051337894628788386719202059963951368465308772864764823750251813011225784108619147470090820365851507745662520116769786045900108161299727934860856569087740645461802745401819033635620207287929917846734762875055077501189833817137126725887284108065125467959406116461736970452590325912498403769029151835868595894778723167351034767287381129596988043895955415896382370601162589347518842703483958733597134555923750411641330495662353662488783517553651350932799778909710838376502725895924765432382330551667148833064878312079869430377223401050561775520593716806467278351968187834904479895130384959693911770829827239860070096182873944926832521902938993175195804880601247923220875724860414366536929067167734778347531461423318596807989040827509893348133277270268527656187851197025792903738949530757393522968101393168830886921276833185393806672979151171990216304571611455921851142818127474371299324111227715304583450290001005746653539023641973885345560423117961106329116730436017108998440559086294029778047677433327366355819041492175239996841680461724818280690589037565046171296193856230818350923934300646117306175436618722116887102873510218418269017754656967184417938498906163691846408937950922078620852282481908236117670708151965868380630597825920521446738009460673860282020349352068939444284563131196619978373259324102967150789594844240263913253996716990007943038553686898452827520705438700633603963636927943758905083050828377432440200447278421430425774754373403719887813578931401579684112544768590173362870247430534128731063995372431364430353639770985893928997653404993801467937438715867268260273201104445835865574810231740963202968126865328060220191693581268249906405806029573395065433773984945128429523641323799302211422998018231626371293397009940566097696340392500451624272358537914863074301565004045502216844786509112165914997141738415037940969835907258738841486913458956453915538893824859281531509283048229938706706417164630508031470581639436606914068777907673417402983124315711843338550009811366930453703494517203232942322277499309879897516492704425358697759620444198878342857073458826959685097257925243065596198725273602190202104292895410371668550284775304562115708985980032653209231929668830918695088842665349310553340840489799704694056492990480084774539542057154247267957867670963742819006060211998918451971996113895517544125837805184402036941461172201094512617022968909582965396979248528445029825830870779307206785108206482650815623169611558388589191718558451311099206102578988434498936850640829983980603707184852803558918738515169482276861029749390717236406104115623807712033594114308388778940098161001416561763111450262072464664935086271703392720212733037392148085835071394603223415887708116448709377862345490433964377665212027797940107269742341613995343694854651133948115929377057315951790774065034529932340927218207700515072723647188907517825818571008254406283900156606885247255580113010520109736571107454133029293610987276710348008245415830832832720815652868464167269332527222742147270195193137377763978832900547339293397596617462169415000303401171061730372555469416920259468452773888346642256793427059627027927523337129854940149657089337558656621869904276764695751161967790500695508275690493785760139171176464854553050285705726187163300207245014382308015270554366181898302506228248893789513550272397844684353369639475084658450150034465250596921085825108639238160146301331984609845771961989646459273829941309549839719267449532941902869999239303864696061128098668974223749929873098707758660843999414378759551212431732621401589780970547731531191858469213662403993465769707833000044175479128293510139203587344584526853900980338978054495455446196117840826959115611573607384568711431926227723050289315028181151609218857717740451728858211798000769568658331734947312504387603862186279993595770058618783916975052272676894684611976522564813101518957792406189418012512902076454112172555765250684897915763791447259003289365001241517089247336667764051147817538795114677642558415177563884293879717827256050089467393244964297190058728213974564953994612552057843402276951305814327272416724527007622162374576593892687474865703332328037733344662551675519323644714009582611164936867112325433308261129176910977527193244899667138345079286765713298028083753427533454036120968530974448070105762196300762701812003433236199688071668853003131703160570476465281921713354846901350181328163817005239636161004578021539175579990547420270162754655383026875720316031932352485410053634894349060041347357036572354404101920709321857978776759135829385723758064050854616128696037774144910510126620677767973849744293231755858926596573631689575709863337998057055403178407067367059474240029298008872361099207790737128155936570429740967083853486348895307631522875671450112339605133070175251882512397593929613586862296341760850636987197517276014129351079450956880199667037544458511577322423567323406534695032288467589606376177319048738756101941148643738343663824762583453756019798968657163240476212337507336424493547615954958798397913652288189481797403941747043799690597982784992811456592498375368509134555454346750474082692969569092275838282835976240008144870946350742953771031064055192891846449934810303147302520399506773318849456929890476598201793321634272893299485011319161657153003045655091276238905465655887020098587804330060864791703502776197467540746761782388907770345798733720369363624870118686018392699323104272262708862323634504831248793974855448653201179417242628883143015999588674151428130809350936294006162451831868952500729462953829096351700689955061854795813142484013717867120281854662546395762711924204418442962643019457231691727866652918125427010578129501450896992524407701718144147585689745552197902297804977591221173152349752822821281356580133754078374093170397056490848958056882855191210043690782798275168590699559325082694964939355720256692871959654143549547339089539211280553213057335339874574370110865289967768621192520010189736023461978385863640801568117707064796195910602754282485759135964078020230123996200031743623684579409743917403731589511542553788661543930046005140833249770063950281550760263954544169386648651747582528972271589514568220810263752448940594225324811739153785294013211093980508047263901023532615035323070542590697392343171712061472243097142866938532131728572746237017680196329322539008100053350908121187290509520505596831857589521973882278738074244411328682336185724025752147693472844720380537374860012256370479121995866284600039358259849856716123116632516989245504715514515089790262893121608419297603824147626879662208152006598252498309143034312412368768924365260873670372641067332230597097938600462254108398474310394793226926639981917040390479172703085270446631300278825216151391650509152988893645533092525483702794890628727119196136837502694956895898665490358752628778784445170791243364165845130474921101518806894977356065878265270260334812576385142248305624655556228601913954753942996125259711023974732566910015000028921833305306247069860440472060102317198782062600564450364218598867158602148024827659229533620344776796055664627274100581675860038812577855542752095570262018634850223102295296087290636943574801072377727846221170023101981358812672918173028683847058051743211418660704654710652583547186670883035108617426804312671405152393631952364656517392965966489514218326935296366540175331221565249375492632364258817672008600685256356980158029822776475129017994629598933676583101594916979522777785218917294363865270072279495416194545678999840415183197048272602437643561636440349102687893960110654244567122220196731713154995793512744455171998447615821226991382471292179403853927387940782207518309867255119409866570493303169263897274460114127554648774405400802813077492097125022966321266940381109888397657030248606311094518280836520994795389456037906259106023776315264574863667907757203815440026275470273225547926819550440345520801664915846752034924159201858686929563201150758149485218708669063397262641360113442795048567259165984693900616383161790557143705491967733738738579527455742665038471252184401596923520867669933517288864951466662903125366324042300921251098365558879824616120350189772904811131853046529536841361974239586628929144010878634602017888049181088984405482130536823252942975433388896067743904230926463028020782083738659619846691239819960670107786781331781529334779057465308795697601768605698785957942022457041286815167338092097875088442914877712450262132793712987133521619919520346799652548823078902804722781150886608692649052438702629632736706162247851555026772473435053014944702255322526729101271327539219418652800938268952301965242153322455539240581441604151796778770721888425245376868694524677852685809295575497186134321847120532296395158575163316033775113278504581556480655358044958764542287787266399172800280829466419835704814902591764871911077860765070262014305378380006536356564431055053272562672665782118823708977655124213875314886285999225036665931609462084343209563378081337822869804050163348636417369547276683123488553842800495011822938173432038810416801162366963447020523064493758065588538650753128496554325222947290091680850821818569814287162325592414609883616446338573919183483378274567391854957432129625963245974050068356658896969325999303661181701552947421459197118263946691833253482051196012512122850988821083547321170644555820261569994269796793714146565999643094591760974459417774153460501635363613951874124867139846910438677014453753113671938235252418691926965037669792459710351078164201520796312578596713898535063262358679601025272932864392180138041913142591218116445534387273575943862688756298535862218449405516826561889079764918431925058505181798862256677816078861236532630483890864887809115090269003848742825780679541255429185180768724292969713738760326905255816631803010461567445547590071941671206925349647732258517867100497307862462043212263278724579786002001940407699675252128015733482238060373779163014875556530269632135407914002791216725896356040466995746039744929459904739334406373778895126727120415923259636150825950948113713540408187196568416502858232398755188593372638875493543461981891240662722754410003253725697595300422262747121083567287539806077131535854509232616384402981918540517446581966321511738114242623337822628263295390885289925470421977562606818292760064362773925518348005195546278319350452214378946596528525423513156979163484029656972493293464947087226369617914845703900789838139029611800262698309131225782904533126015249126726696707314793497094184854789086711742698614427621204751784246873406423235807731678170947782664313632383425362072682298645219691267581862790037046904947374708840520312061477349585684609967803592298599731490826394460657607827531276373373155923560587711424357187883474507824897719503907159408835322063607282965259875237744665073498400201232308091798564477178517810961356633251924652844550518115135177543346845501979562022487071600380289641274409630715085907423068804306055424097883616868825713835951068853835356798313428455131029883201635435436011112733365444988551227174393369799784214659099601166725208346595243430662752502949969353134948078678635054861882073007857162472439179778285803137549769290281181844280031378261302417783607719416286108932467797631631870734896512167707228526470457275052852488680577085459531319239721944253524454568701849807838295358229939150242931013394816401235125546607001277814715725903636176855488646708023247275192707545882604838123749010565954403952685987546872210007814082726169798752218271966255652966445909873622155092140002415789415095125566667619579083242685603436553009286223802245878994879934555416906030863598768769917303654027333510188549598208632105124152348516809089353149423415328182212695843871519061133180921410626978495250183338750928376006239933241862512053368499504927915591513981807517229192031004161311807351847015250503914061321880150879027956979785211698614291117647723081691674655877089447901534804711878874415121644081086558664837396550466995624956799630882920454600639775041169378205968030657016626749033708350999976909203762428294943865664849759755081234762469212286976279522089496432826104328612672378496499106219127743467777424652339824388813436458371211643033214275313247059259293041796787963975098988254357285227464111470247550270792186496350231299591733470114921413639977868710475026924670209385084978027508699046914585299816220424960941083078246336901697965174405236431401715604314560464248445874539947899878827634569428724505723886262677817802457833645894105615485774221044562783803135058284694400693992991837186119778727141002961839906506649583037851246241268984245324334509974406047843271060254949560923370915748556437919614347345678258346040582162070034822617789637191080265181496842584757906945492456715458873009744458329098449686818617826992821847598632463089656083313172965920982206470241964431789575207364366915762219280139334699614016840736534044810986538141035827287757947874222743391220522336907120958143538761532592975049036079421833395003674602125908762052448980180604243336596043770969001499831790652542890139730842540080952859051101617977356755054658221567086397870421932328161771071837690640938464172932188605446409982088993680029051129828027184617357370088753295053594483057144861683551744710069923113730057286257236089063472110898914767663756421663678710059810266108554207471001947330672152695508170172726486455540718861401525070589766749536519184250576467093439021282776249991015891880065877423867468486408651554213961545007648507093865231601445261530319477843730599268615919408763500798887695131091491901579692287657258331802081507345927734085769588559184291759866139793139419170545248000449988280200853974224208256823300928235280271408273817721067779717044169792121790859535113456779856479422324456167132921872843183857347228622386486801515308759891081063392767783703513608495100647991891068957677079459400080139966815105227807903853022396437204218060539185841507529008934907896219379580896536872490410847989926011064916058708745239540359266147602148217794182011376856846466606150135764162188237068453667527019229421250887007541743152339449298999321029769504464173168133814579316880900445956052759243576494954553269209659099798643657215327687560446452868013581244727758541856087395175946398594215847781290869465436102541602525782809878778043515758096903183827091954382419880020111944162353932849920328047807992063880365847386892255749264184521110299219976988508873650628481437932985685268970208113233201887681985567919132921905529580540172957167993527342291828402288272150758448229954355747527554602935908613275584918137279541619016536458043517977944100694415681557866082820182893985913784363572570003379037268500829626213645607074995315273021878142513799362153557805348555634565142303010103139030076850839730997531964881122895205140415501386354980404454612422623072084657538346113267810021301859147512652118190420215366759162860058306762055927067795689009627114317355719312459646187455380219697665344263743958700588532506509602883725348611955083811383841907961628303504938056691951906696540902130502715258704171113432734310137549340113055371675644420245561516826572006821879713991494160858790596572668698757780890840048063173986499873247453207567961528735516574928361305294224485507223728570207518380043678469416614812507543815026500894927322815807432552107786332652259268461052441741260704160077772381650200593544679701600183955745912112073816477024005363635908566031641889166764633821199460680629943027549309208519754108860034843170472207112765274257782789362477143880402678936033011781906236332580926367448590358161837782996703457911624047567030122242892329821814690759243639176394861303083089088630296596690908776108092718739404983717388898970085187064862295033186367660895991419754820192840595419579214329181369185422716351205228294417416262585905217042137657271883971957387335790678429250867736501556621669234210294293464091366782421893397448886542716161831179552267742552978463050129653030167584328175379303684285864754689464012609274498791421654378205772451040083801462285168291199649411166062800552287496796019041323061740787489723004354965052809656975457995166714980978083814675392318638213792785931296166830772916412911619521131773863492898472624066378233376600198717323744161168830404524953921206336201806154840317874571349161186638867663085394855069527201041470776677209725260868249265247687050202786143953622143624556124663164451832932641379138771772447530196956918414570197886139722967336511665834369858396747642806312540463841574771766980027112305893733174291197175607664723979421032904915678893563239366894951119009202614681645366257605270235638431222785959601212063859059653051885388275417024731166576844659311302020336517507783847197320501047769277084427460420438965146279012467312361778609956679134558218323283304960751640364828318996171105367614846323743354965135321967952526643914579877680522914591434762606983061676640016621995337733360705758113780619418611056159808661376971142251137130054147827776930500726282680660392557994871114181752026185718483343338036969115617214971240600685952327704188822922974666945028784356262847055652905660108833320954461610845584492731515691348417509895272645183576626750078945930991379534691855787195877371418283733127025004231509214414362297460690790218686964224699901936087123807688072183779624449339170264072133195131068635904915639719940882832273341642725139830160630110267868761662905547475688641625822179678103209071624276854454810745046392145547816955204709321130096040236179481251689220428261059969388492847011434510159690738552456063411098310587531454908673898664877330775771102946374068244737765442936736824723835869043615571546294967072932310350350132794226942329289158081052034732455664051853536216983052707939537451404870143815965091368290895016274279242090271144951922640513582411140314421539868744258512678305032572675730022100993030456152598595966475893829051144262979943758799724127997919717137206031987813620219533261687168791583223021420612701631532132847033481952142696781380355575750984967072052059742073944314663019737533591718247139625646858228099411196834035579233512436761857172710981530022986814709211607335944406107741922883779459727017501504448784540796378294356351820544232740567800420093374511064713475164813400540640724145442125365976191474667058085615882321119271679100934462140088680343648457073064085098529026915836557620698346649836349036625430996167658322051872240097271015967533906473828066003421744599024839949333068832719907987817988064290581729952266200983686313581240493899155425236729353288019350520987617915464968422641844188543794546633112180485057136533352406049125419044219114282639821510601215479486293484834557589342690091343165676120561588904203596033502182854499862272232885232340930398427800390639794481492311018409789377824673847309679066365669140636963660903574506812922369410963015577921659444680571671190165455699878182042421723837069906280280044499463827146977499064890776203179117268740796241984180072655966334462468533822308899392562207544628294668369184107755150491257091112613371260460875094813796540199360001843622096590919524107545085508567671650894195347326248013287103496491419894719561064793545864075691384873844474870126645692730386802485438236427660257432569007799381862408050747349547500996700900043589607100816393547810469257869936775262867640072011636376198146466088811176369352121624751161636687800546219216929388020491690714531040854757136307823049214160132069053108209755445040271623113151334961220614742002123203307976476901577501870819082086376952541789591487356289471447618304006296425773787836675232658876758117418422831668584709185787242757821472280444824969527328154546596016931445405922670337430162845067438797224536773629499733147658520051400226452463389290650603253113871995911017354740406996938602039600187182257904524024479251520653540818898991259806294519849915227522679030578390288495824566892883298543942533411104557476939926220613181503453061152368939529458669314937763353988788229355011588529007077337517304015191603807691060315535189620307128500032914047211542303192821927442050749079915993526702420232353531338775167785375748618567821692706734555664944854311913462547085251826677191764500071275159720270461376602574510589802131882000497927770091991128842538710602029593133580855260369481061990979045093715240447033868190135465844249216210177667221727840374904701776223721877198084380986821351410386470628419735657074268867230917792871629399923881239742143872242930655512832673435316800037508869730674830643456805636551688888553558317245806087952767871072391505243555524546422418849514864245184527993749480785138181136099860081211087785663763814881354215349918521951059105757701897127327198033593174886433901583259513260739039212852883067788611656826363635202655219695773381442388053986678689126041345059701750440389007625507660599303063878637719715632404284789917873221121087654371329809867553616264949750082699298050061236069120743050744752740346557071257348153377517799892362426243359365228242157454928960558202768440662766376624257563268795010327351464280271201392759481105268013149235450427519137657303139530567492500353028247623224967224699142039982864028886844567088811798275377139369268165163635837316037869937440088932048797469643991459832518485641583336843187405251759428244075968663772780083945861252466305034557191192659215734578347876818954248026090049543741212710680160736963494474109922396723272213142457685695224784671091818117699528800268106146796874644570000670674395429152108399041215192471608581866571555079547004043289615971178145674690152826569170776641905822702400880101065655510353392246776857080379568935501070349631898358751656212051628166457430878685054560748200237434016792299781604650388845600967934621063157777207538360923828311132124127436240154400204264892292122312118850946074302762186399018221375366439179663373599944571391209256339767168320343130764810140806626336784358267808075318783318921490047483609525864425084881877539940339006785758907454750401016996978499281621358747851380209702250459479493979743540499192674330239256754983522257964452872832716655919712667897998963133773020851223800812997656738467141312102608779959338650669240933711038830719876450996292293280087231505844077975823371863565635376591209926402779673991068057204314250183224464860988022339342095626962648875475466273602463430874034840590745367928543866570723242105547871659679014797743373221016700687474243146863594920246800436111247688528547566737669551380242337189080963275784278528244261553916620640592753089112606661030950902268484826141162559666126525376623287182314282564060440941125870056734100213028317139537768670783027772808296690399819369972984753662240884425338149159332562986079139850402539585757461036628794707015465856006105355238987300842541932054728540762904077609105611112705488549122301704704492681272459686215195161485541660385911062522757735493217175824823970763719698449288711614880116644282086607045322697885650445451753505755053570822660435377134487504790141462011784268261188427152031291872463003204780853711765977835342402661808552225370221557675536214511082703314150597114994665743043857080634691848803124210486173558811099038725958674092851864712340593891879404213885806337968021530341127400697534798064460153669465124590373601210607899751880432821163343634560498063802948918901247346399845225983334293907765617600298829268163322002173304622609390200710569476297995771886381661021448711659729557783626048786125799533172464598458864189511689007070310137597971357619486981502507405669262840202520003397692993088426113062896365133459072224546124577693526571224516808643473583746748630695571410023654750300193484522795078901812377812597101487347013623217558384633289805626979846015118680654379669503629408041175492542012627626991919197612027303220373062632395128803308061631857303970724709215428687139677040714839698552570113202680660686883289648390254514573361266454939221960183194027919389725536401387791640321196536608385241670584020008562908816163137467799597793227945081164833336073663759305592490545434446383706203327987274277636394526384678799303078596061259382971669138540559728777845490121955947832258868666760749334302621410452413419251685606052633478255585763475065963249444451479009416770151051842426759129517629963327620925022483213894739244377839276394007541062359490565991731519816450974480606480830570624097094264332193491910667944459873941220041532202276613599616205276008352906337261134472171959868739627112534271328214579665864577881471560607432077638577454006267524248405024590304608956043569987614041969928796328485196274018439670321958894909061355355864328467085093808853042064709840691678233521392128118573815083784875635181234267045588221674877349810240356106680376690804936788667255824342826641931615398341905390575092136705125907640391668493306130689821084253557915516283185425907586982570024760066337864667007242612557166667601313107793899401827692049116906482379947086980755966000335905838445994832753656365180205093570509049167013787604747510565559678946487946237802557221391264403970036049716383062952658746208585592059426176497628789550887535994803081650962620302755547253183066533599989827778192091710447811176612914506216113795646678595245715980634555960236381071243721168407353103239828445129268833493353037679055240416915785045370889142196794989274050814309716239019620877842203103583833887386987206577241717459973477853046144341393118802129583922108435925709060348620135088609047122302974413570660630589701662754522965962227496811332792232618283212776185346156920280197824796594360296041398939855927360085413640744393966372504946408545719271479471414140419349232876621599543884861357320526109554606426233768356150066096301527610648191587970842467130226138143625942338499823339762009551265837868217713092433203357250734890420255628499004600166302762323106991451641752766302423817769890860561029857417371587041931724283808202717403641382623618480570592453042708969899916571929879706819086612915252979244430299608896680952906127464491301108788985169097716325903028216268280221839018340907313514264133140787660215753604432304169210222678603843757323884726950124981674601169280642238312321019337383183277917464974128855161873120843005193837934841558870262412756710653862456426968025887320548341774363816389377759836403631810724852758446232752366825824158647778645553057272222731557762959340154990348134767122343291256810510899122720395618974983241604975436012792996820474967380554085449573756675946207598947595857405816947232218920156645566518805459783267602827677321750466851002255191231340285945182532799090392546217299684732357145872831314063809764203213941412160621808801058401172995621177672859351035207267858238914438547512277527733676882135327067126647047826746924018300493154534947268476445392358928889345218682494013747156208584764750639205259991017093986652169773652338880038734176981791022018259829938849157622960747484994595129141569139144798641156293636476736155997605733167019846047603861005844173029863226442220978693036509984325969342396633483713217400311965564420698592900181042837524979693557583286550009104725933597400399027039393259241767566144880982331992812940323535543339541394009058676093312271903958840718131597853169736222827643619148828481592499210509718712810696993272510602499088288571820165413079729721293817066428404153942308822437201732214787206455342023294804547723604375461544356492220141680770861462146092566422363171661599575618836330896290463732512987243716422514268798250660410011706109060533129598225990231482992629229826860193936222516188662974134376327816020312723215271636210162625007990738655538528692182413742243645511477484896783678477770445960047146262907737618799625845606670389631914022598568062201715655576217621552595448316628510909423094411942293775913223713022686300822482617909732086062403173367420534646854980000466628484159454808649780457085049161525318541698493182099573361436245001660470580080655352311073052763324431464771087125569193996652375511543558788731677610332785395782823414664191520533996467482780728159012846620099540198053071121281596531423731777886166952109125587629164406799186748094897885893471262642539037683157236096197068456991140093286138291311962731102405838040382191113131519486963482694218366008553673040078344725312750151969445028209757338314985696055394934954393935840313715818720761646968112929548463651302270620991269705087087194058186665925762979758513505165906311251076487351034534206945687628722480629229402861311709898831779261674342203756735196052128169185158928168520177411075855355764070347934032970912850495513126460431030579924809917808581139339720187976847791045743477475837859718110306460303903206372607574731752052771095176982168283816557756561192207726395335922296263881382828729416555345431695478813273356171079781976117534507657145653012592550092821070440488195879109012130563210424459732085248859608252383615485702858744528353043578833459474775713315825366967483452870988104985343759462103809888485156046731278335121061026436225144514913467259834707536915083955432982786520683845812458093938608996633166649776617754301147085509019927549097038072415201724551706945569431935143098599062340419323264986929230399075541452449675425177962709159965685724241260364370223890916257449019949687543097049100801229785698224756006868860087611759860605320694764608407090899923888812526295660982982754805068735394716918878395282371501693989980390938102688323909221395077709551665735492314556227481521455779687891600926407018171340679145129101047918869503186404956433546030129012205182589701626725812900072063744867773312279169723754915081850298371823189484746099198534665289093551146855603818418964438283310479455439993239289736052349288473752479354486999094186378091171969641702778781586991101514831864526207593641812655048507491586229557560098054788478539312997364146419047291507519161058582661845456828731571006513661314953832866831727882445674961339897103725165053616008052265310460707748180376304734362051785498967034585483516265285112644008616534906386483238949409821744903644752777162682481464742524740527775565578286944983148571296234719346170642114984158377658945475164222315985368033345331821296843854285506507855859333938448105796242210260971255072127699350066330656843393110164067502826965043207065816330908237372558750287287730191350583873537804062529199565819545475815516320672707482220851087066845005664576480226438519498028368960426269048676981031679342132924143302805431779601311136787686144583140520556011802746278671000914514183359161908120465940686729101078657273194428051220846880494734534246929309441966259949794255709473784282566943185966375173662659475684221662141517539178028494326515221266508543970774026901989472050660393336726984795613894144868850059199046442402163443948829574288547002238944243977740556871916442337373143364886844255144080638431555577621029943516903676311586252877642481661070035617110674054811174158695617053277384934390092136435053872712810147766363608981304302069478856920802043813670262175520989620414398307024485254706350716444421979230333286511627179115139072170046360484364335372271238248304604155801910575110168011680462057792104018814162088275885832349908259411458333565975339864089935852532980747565936879470090152357729676837020227323351740269244192779431248674849870211728647101737521235732782347369274137816980601372788249709878090093539571763079173208186802737314585196987880908145869394993743121619308709001474935656660338722729542271532941409626810175370419411046517254035296043340988008674171639229021161466401650218642607730330012350702477802211531612048040005093607509029807769739465038217959235656813039775654896839463458712171845575779306759327423555391604408499011853560152959829598069699799225789985597277055965735117867715017169831749952728005637379686989365832293234061339979930231816991522385154761314521775268358190411399241570824254224222900928995390553613340317297346294766381824832554402418332504334611136853158027900050407511368817089615548601528425237956459704654710335679608147160684535020188992569537489026762905516426693175653862347545389209206912122973257854718396618885815554377440994897514770928043760901198346619631087506812570530128002305001446715175241936437866192625263599055798743047190913704974967190026949470638469228890478286824468912018603191407831754133850484532881055704344441814857688169804609109520327040747986934842493083504564209415409148380266059172267184203265302145791545756949053653193329789711527629581840479761940274065894520071474852364039622469721235548723167162962235773593607510013157999758455792590774769344530644953446044761279119068517895664842820663165557920799941091353972741696146717066293366301339187006955951126287848713999240122921098259437668048839592842866012519141200597509075480944708103493264405202820947123110466647789198547177187418884758758445737913602697373994272027543469995220200350876974911057733430410251498257321880189273555693751139690516076056352976318079671044835755113615976484974234347461463557809877064932407782524643873282664273832999668688630747514720508696774273396471430943052129796259000082320286334559334598514030097131677988747366919241257432044248833768422347797320703283864590326849674523358069239406124839897806132242867025396985022483694466157168188847327854980102232228834455355536950769726854998198230660285674737549821110467060428698505177984862214334482906369629245948219596932751814701412953841736293058907916564727531926988148692274300411012027722053572760478627288968248982632582632263088805409237224196351717838042660552596793204780099883345799492351991615253974860840390140116030943568730654961130492391231463938625372108883693302783863248144426604531910023254326920921595025983945820547438722007511946033787087936856930820307114810654880744544459461510659110859357303844239803400964574518311256381173901785796316874962500114912005405811297698362135601115544580684249460012156726683185689890072188797280808452444042943894191363162353258316868765623371936611380402183998397763111790940976567943704131344511516467621814502733168906124869007844322339696521200918597240984817758677252547971338282362119801717105123669870135843394116436072118884779243605801715221811300921004246794841412936676337872244568933213864811186068660088734838368794823831914499876817095880851826524675558820091078581181638709803683548934685140558455064565384395367720682340210987209379611019367274828151662099662420477060747967437224861551957863725367912641109897984614911707892111155524806150915888178718667956173376374780877107881806832555951307177078311275475796978732849425153054259694964857992059331710572553409851354291963375257665864208718065443207803041172279982844737004971060731137648560595973780075101993852382489425216151183990639002667757795748245317840367484194772989919793495885523973044239458175507563982312749268716840608639852439776575865757882217593857444414612262963290343487799434343188229168136929434683614469336447546206879310040574858086778910220701562784292482137777765684147885697390825692153536700103849217161351703100230926761472721904722716335138102711976473417215226086514638634745716915459671773180135752105131282148799952748475822853765061053942165807830585945918218663377595516081650345044596870824047207594458463663910611739528721406418821481825025308207876096956079971128869641977337603984655205661102855128957456605760976960531926667509941920313704372605823169101436313635016724197784521659755510284129824336402351642739147603560742517230794728103852287988719091637424030982412125534810662280953584416473236551063007237228116741273943339720467918907568445101690200274507262482845590253594247515236970773545918593199801207636844241381390854258358975625145469934092626804718726084777447113861001025509422945523332398610901865459411088659071466754207453923604523864855239305588737162973253236486583044578564352681678981643574937870021337854979967475547152543190628838468201187283515069646423712423014788508084274829430848283023508090456129004747435700343099032022656580514880988894805373992632668769729834253963543509018930738549488568027171407093078074330419659696067737586443781197224320925780349051210184351840481650550167150710727091149031089512603219633867978100473387942552471915152809720487999167046643310653947849834571800010096899465790331224800115278063408013280507978018379463743838437398520535653957718094378841394558783587401903115589596670902833740440027306039320842906979344417288866356735040733241681693201093298633592433163238351363673201657047008311189365881818172301840942184689952844408994191904590631094225068525776819715194935161222172639580894443234737896757256917547500212744663143848217531440493256578886510592183329929331800293662629993943491432863649948394466793024617892810520482730764708956641040785739495051690432182548057947413624362779730190302816715545138012177731287507702054430709354060666702947734722041306923642533778016203260548640728869585003615317598405836491788001164898263169989142015011049716405062154388485520266375071732544689041406228854504094389421053839640824286887323194047930117019849992744253722800619018537935746704773125838074905316299982957980054915752919492206434089753995738676223920319958728578120463975541973563772295991616840872786634589208019438481667343659656627989546526965668088703413226612305025414078130564765987542889179705319173171868025949330030481824886148491911624355993891225907067645097096511346809158318269771979280241561360975286137736877684525830522847192753203659896695775759580332989977502648855714835297607934550973393848481280217684105411024096240563654019139493289402812154766602006253875758082143001529398635142919823222634475856533275731996735139975563786933391623985512198411575447316722139749925306561216636214499662233537255368144960716197671769219901705804246913001783062041463659171475080130731688026528817365236817927121928858668956238153295479724972595335439821283610375062640364431573754671335292905946743518291483165117140923923821358092449677295497359861727941767261619795143467884611135638002645617001302161123255702541251233883272822553372655551221647816615482932743295005580782092971557967364682497347210374384678994047012091842890131272495696540194047322100739525112504739719080252736537423267195471592259838457024021371993934264172725925831289233863368159896286947729871942891333770625400387362020988299743294737037030969868307270573398079656060690408201691193799896346168947487400317877114678065745296350030606113134856685145147628086343890623564178296794677118636560067861047203117582944394289915876588327516503248456854990205244638983362212649343091995307807281537187406726114114022674363201326333157444605126941653866271153681263753953183587142006874429385122966821552294775849927268350028470682212226641838942869286839024825194206443834454051128220022791319599080833702009354267066594213832115673137622245778233074332181433854952298167983299969109269490937601655631699261613819498539299143808272375215650256442105772450712511712897282737692741584994448022130031434985963519329264354939261302100024782911531722916664038332190396926757894312559621276172942449831611649123260256163638489000999290482296977150151371560282477395622299221014567574497148371755459794692998253083202566776764924364719529288717076539452337509621037399998824223605464739185489439359963353868514681999391954597888223359912890115791841879005901849221819077839517924525097287228415410084888156762153892802360141190251682136485568555284689463346806244473900222234506817118085749600027855184607060886997724860347300500897506652429287020407281807669889639395671213920172220641628184393062592784661291548401650622201329221057367205948751472683655506409198720071553234980638446347979349084553931041003872749126282664323755506593698367335017089625615572935157786584656192295050226502441073340903436604876483893741063332200100417446516816176859904754055511271582957398602059899699887779772081711498317908498575344836273376611769152136661329218134150008944886779531514209989333164323957172303390812417937708783265644654780080856000797681692227674888881450148962323893278222729962252774105417745231679998347404184780820647443617765513248262962317766010858432016030035027691443127074959942068912801805751124361908371595741918848553282004052522785116263255426586240023159697871769427199117042349560513177369607238828209962784615072601524623668552937945588966484334547341792453675650058098724186011978911573481614052664539401754359647118073884550585927216263448999751449407726307984990264033860559630958589454464072075295074579352150798314114505425068388505920935536240153187736931490180398305400832926805381715254720585651807017061244624598843321896726402760735225468851933308305353318954554116745900835719523752992976679494444118750837623922379959288388329532423344630432546836346457103810251595662798034748030045307337835993435204830935183863580313829137570712691566719212332101838239667895555098308397483389496560746540616845180210374779561315750047818979206284653382217348846603738606365149882147889543928721856441482539456335918591662715544845273970694128694693342264478423886808957117102713676263197811601043207215750932629471518053327525983170291713539322866004002994205871414786341892532160083306168086685438675656035792072730935754616946763185553533712911346134018811033778645353661065783475846050639930732407968378697057104904841786340309710159977009452793062541487242937166620049503543557401285383970849842025555358046409856825780571848005202221942861154722808482955860768841694749443040709418630462584568722037573355550728983467017413928231651781332008815635534090790008667700071013133182729348400731090077782312370771407971152933069677692298660525795676686708062803605565786418014302438770980595376993399562281927895095905317107831581859537728839872522096729821503299413661427420602757260890718355761958084059327803315370551178421030905994257915281150714042862070872395804185087621751155378546031684841736306843397301921812348946705463073468137804878977071430510382497856752663013116568573599553529590816409380911855753238632506893671582710278285960975679038544229618548738014394791171687491536754170675271579092141760076102732418335984613701628189551094347104749233659934495000695973093306625437744786422416691577967138967354638736156029314867284140146853311957751110971048317825159632083668233534281360498791261467298079964056655555539259059209043640311824278480646605366836137426291422052644324641498321270804528795537919358075392895200633365078050512100336006163974142800148213615939342705885087137845349819778635202275697087567013420775975473203007101272501764605719341782749922713688930897860760723471099319983730931859247058635106072007901579478788023825212927172972120098754329708047472607016311670347198443112055180627756178847130112380705458467373096459672319691446108247380828873588369535892159464508090794171255038336635262664113445237049928234838491796541252822183416590587742378653305809884184997684260882384737709340229450061361662396207248383640920974630324706894943091408820400334825837381344137153442618935786518887511967836550126163997271616431907590151037310153710253132544757415035577022950918039325833313696533944244974749669821854782690947171178882584291486615950600031181066799788129980648230975745805428591837808421533374960182178020324503785762638564815651299507826716864998003038117305938817172059110213299149503307994733315046566868288445898796647400315130349944588187814628126762029694283411680319673061434912764100087236769498454127913022593238502989698758158673379426815454298581357658486507723697975962698394910186454304356409062974042039393936517529948868547367669385023106961962775742549627063915815599062057048475507168522526397622061432326313581692593404863678902702716314849907451348841068234857798262597713193872130352243391251841459869770167306112372160979943693853651153292897975417400409704737264257604339808443483148289263377991339714566282297453021977389694770489802733039355976430531443715378719293326948631693474410258345492015813922930055828286963900530823995967413491729581033227465962838167295180639317165358940851668730862532509025582465853605564807711506009461808259659317009428573363292762271089009222272059882250155683617650340806215529391468644522678880538906173698222658868690379169674148077776563233227252289163176690499068719229214181768265150444341441385367169977332559238184112758783365656880697120722631863024428218919219992724245023389373261728716867430511933676131069909533767348120308372446478558643210089439591576372218082095153946250674824201937167211301518706922851077804520622566819782006055381394921633314530294711383293252185328760709608464326647822944574672816138443538594677080343703606089300768260821533786485721917893953313904234927587401746534323425507933985280770135555642417969815656480639890532672459611302491408632770284228358034167702150734675003067353849742179818109241802718802991370029440975395352867968446902655183367021172893288654256830636651084995673038135234686844868460935768535346664800460465665735803775112440727339895136213755256047796144682363135243639881808916697359643485211423934677584562550191040254848253607169510754785046072417445597836616760478100501591933916065341418899667270849826021086034186255138099386028101973640854379390210576393672465941954618096218036671305451367045990380348542231459060602498117578147718401932230009582643764780518664565104705293218011630818820469602214865962668322652920687120220121513054348741581090997939173313744019026830193549085767911858197977797400009618409530295275251628195305161185074351218948131472600995779303903079754250899395990072490194222399389769625275716331515137718474416474798891345528069083439181187049020073778173104901829191810310400608743742981360823451041341953665323598887619705033189400752761175895729600439325426863636944046268098761428162413990544250937557660144549044095873821983752208842409386971718584246819918306647656810244701891921723556760893420983354078523146377695006865157299500393597775736976190927613150160101565664560134027170683855887730841711736774488653671719914085266274153747216098096087707608218887916566818387130304106213965229253396188450526015998943640702717678633669821167952787987350249451924027585921904326801985964355114223574716355242068739084040871127174691436665235629107604079360482570465766422671550390035222434867565655563915677859780542894312217229236583650388022914505326200017895914310980275727799900266667929959700026924147372465888005470778739702724447403925476668171471859729296267581080827174377018988051360741569678205383401485394078625366130839314460737830450045660627143367257399127850156571548911226193491356884193504053305429736824117776253774672663118379728768729438496256838918044610011845093535932358117907434188437517099855847729363103890664077058725164382413449472124091395310420503625669951484088584135047055836145672521764249489392899968050277227123404410763133652878007905364695353877655377010452513082057488519650805143369911954650355287764857080880306240616254232461545263967964418577100575450422840545639354881448131138950965424524044965011867201904656408802512925451728146125270384467540509968026725088642469609588341230281139776011214550748825870557789023793155223364277546281152043916713520714953838372366017276883415195122136760487805182813579685776067870866797404999337392763920883919983390937080977261643442551807440204307694295459844905939536669862654304879276335551524619519599258751963320456593871696326487900621317701585144674453475952884284364653059256871278458420629991180947945013702269301957687296771695368337459170947172041545052823546664640987142667869318025868613860071564019586565623316280702144256562439165008596071750201052063097959322051221639124572648688017743881422327152735994211441800962056528023091055867306219558718771850506622875435799564001478075055472595689828291112572610892049846269485709207081896240763600338180263812093673893017345708376493514486442735096442757650321044419216201884206075269355735380320388997912889829443213413043962765156234912992432346755654130862565357747802297424370500409383692379652719422395045245966496817153246383130887801691894054877935799490804394295124863300326520440865120923221605089842657002594936002500576665474859141077030002986289091102241971327533682447136554010375940713680492218596059650011394150503563451625506826788924497087792186582438504428759159169126548771485195588224314370688133863935659687004136703748841022043076049592044947493417674045716263092883777669307078953140582603730131524645974333908532415614570245966808827076072010547104013072223978848436998664499054166153081837989793254847897144851735922386642604471920245084422232730245368604826770300959371625690183082222234979343586239711366847726282199426657180969062461978628683675429850593474348649992802303521309210610490845987447817318148513420653272663588087438720918951286285955877576357518939508741221215791522741497461176530961969886133241852864042029816245238370512055248693850313109351999184123148373887525661111361488362863148448349784176677757027298483427818015022271271010747152540942439792330076982833005441626795264336360315556417690093997850437228720248258982562213947228975435185247550379192960300310783870115406538849777181556339153143234770660287672639104846500321019017502938169713027549885199964864855936632024056444809174661465988251887496883971683473245855232976756931829097827128165051310534774707356230615895013032987120439227603171634932996689995920730588975876101639856248153962729435897861038249745282218239501411538687123579583963427416189284494287340917531160055204240613969995004171364908011670007467413340931935384670733289224425306936290784731666068157920348727312676664503613416110309177281471908615077954747658232423439649000234083131481071974323949518920195218287222553933652166657909089413892735576192638422211927998853755923521548039642269847547516143000257398147547298413390295039709667741600439543569655112714855337086322326874260791420688747535704543222836651890907795566492925148017463475054998741296484560547425026203772878501780019852943522655958409089202963164164934198284122611401723064418143599861665162390659594882774953185986702471511310023269735805773545143293747751466360117360791118099221754904509178563841060025974975488317401098641810987789436220864419271776641240190361232603798685307189955177153592183289871305166640636672338214750824458009723307895056733969341393450728339984190081735345288585538079651174905974657417665580189845002236699808839501071235363380102522050917094781445935694071546612100314553818701182040955188081003958827512217754484853093585845063922448508987352118988119151294589978159961078885803088014982427609381863022128143464421552996451007928527343339244331909763635580948981249437336684812855642138012188515752793996544244919529065246781641130614771353341421260204574153984890780003799078179708907746199950677323240688361497195886128516037753357933193364809067153766324813165398017623109747273567715829157704459161482981407316027791235041444028569459088874187574097770739462797390173303788637356209254406562597796661389787327669465128470946325456024564784023355920207651533379816875227104783432488734595217173153390970343030392965264165686762491004786469084337091761697246679219619810399321036348903826618371419743202684826582179299918691206513349631987319693811454485610442781909214703976840690507652085001323641120414132744240428951423086463089889029305588057652744975189363690911790951012828427907340225917380377849009423182121678440048558084626679087909216515971490066912789446884515803838763611256624810481300188883891725432711668294202428209807060270404378580875199383830910223538034691890087288976424678120784292201072230692702766294315067053425641307151763239544473185247717661169428414887613977184683441481827306549736794301766711114249953641204300748243285102017142778017190678148786285520250990001641395515479175787877534739442818420006946539155314269579182127979995236760570517233111736902719577496607327674672680017085443480828133770172670449376780657766810621896356191059585127472571565248812080661867156064904421859816809250113459802111294418786694185230323416482014623270317783976131226594589412020627517143711583968352526620117010125661783256058837320067719412306083214881180799102334169022868797826603101421059999152372726446638372892585642566180242370102569344347259500957590634211089327718566633130008918811670623694655399790926293731536257525484343674239908390495563739811052981930964638028109370300850208855079365531821955719017946796564490842066081960036947737958659464441215147111856918918025724775420267514866602749437049811180138109713805435350560362841398794595478177539562702364795638456709910481667989311975904386303722817191385712233127266193040524302148656402912849533056793882231155514342518108766320299015121654698391676226093832405024043515883224133139539423247004875752177227333337999215558898007194077489851074659118324926158817010178427897821995531711156816233553237664816875632077774447577811255311249856962247923660217776205279280351119402385246042654042726098813094062718029763734335597756078105622832592592159530823823089565924139105991366694326892206071241845656605852902806679146826001408706167777982243864228178732387939420964351233896539353385301124604125208746197903208539403069855815583016177789818559993323402572275578695760488224271301881983462760328752691345454199893681489032672871395294188113706607792821269554097500902384460132992541829970939600684241648540032598467578101205958631477699409256530711917852567437262443453859369267617840053815189953333582914021140432732409524317750733256501779945118648821117709326104193528415265344644053894165376064824333647659576354935742590738385040222375455221074769954030835413834486716227010511158935017340602828824311939764859041595128808443487061323068445524449253176407565608772628494017806147143833428383916851033517440072087976065421787356972853034798276794826146458171353726183903914730861885592987031472905350998165300671465443899916530339787166363499486105977123916439849148942560911180969780252737496683695268932988516739154713490047585936943894478420274446046104426592875612150710375681926284202560659029438060313619249749208904504781134373019611536144956016737983749470700680032874544084828714152148046372250867687782671531644643938228419646267592969027425288206094906547184284903823319436545046707138825442698985093663205850900497279540722790835879510833121306971413711023004217752359804312411973071988346907778872212582929995605944184313592099975974934335393433731105304106257516550427839009611795080561180151903051035000094025539401858014030708464691893494562853944590512833120840086449615610187968999156642095982843592693907780048414754148588906460555190564423526282675541350932121773495632874720562852959290434098006582286727506970254080979697479452040519212362905564020630841405114516094576480674233104744227345948559501696272084711947595584618729094548380308025148345592957559745584679431979258319099904542849087931817108817604598702518272163985529556506519907945334156882287066200265284448723650025458531864351423923962317553916406709372186592686080659017523225664484767662794609022243899357266548590071440261186221262187476747781348401626251356179512171995088252647806595641802079019400668483095348495814425247874457398974810452026122558700602230066152777327820898241846179581792831355906677827520458585545278956672007526136101660254529453368205272703895056152398416568112178608130082620363993793659209338431361367352075706756336307337707504963244403064778767674322037009648920225398738435288111219254738622681574999723521401091108532992748955960368788949747020741029235123083288288028794568963019258752477268647100840660928182293595004099578616627892806692814778585149860083083320239185709257057730557188104053857077498353181727703154717791227059803798385809096547744760351273433308100201163961060476128363949770187481441644412528263378434133134843338500193467032622119189976443243273323594251145246061727650538813245221193622734243171728112787764918425868737545910717554138504077803872322290987352850035972504640557231206932746073812643173275237373245279106132486573510932971062565252018253200082740213406486492680429656834825753815447833294934417500414540887424277378414023759395284320597135330013397078066053083574930719026234950642201766136988333940401679247856854458965607503234304818112451353605917920145188877749613606131658137599352503442400244063073945995003911863510861188745026334132483633732068536815188193248923054077754405794031735320967182922868426998939222090883055613344791422257938039141117333796777058450719482761682906846676237839222015017638329041246156861308314789455029458442881526212826343972661214685980225278195837008376924496897609564389359066947673203019661604324533205161349161960113690112459768641955522459142028587499203174965489890566989387929878435281473308544605239232894238612139562574045086163202211551968522814055310398677369230926719464958728201037541879648925324187766650678162340717119736576541198208917216351024431798156212685308101880755067522369156900520338323611913895347365758602892225128883607410964933924338132734231912894791704288774403101031892712104817219049694265435797934919573302049917916517545720568966759969748226824270515019326922043383941347089551880996068806668807218878717784528565248880124212900282391350140932859073425678015158915762026951793270436911057925520790283041980252346991948234918218629910413067779455857484454810247390092964157514256181892406958628214900145002269521111403329251992092532408448846032800106922704838804223588986550282243391108276925949668661840382257041771771509952935913448787896509332529662783995455760034191028875897654364040618178937569289599471970329735199998816016494327726259328740641758734139055852497275710813268052976973598591284645625002334594107707945981665477361210870366559452709978676178661304713226524292680510360711455987700870233294494581258315701674492440239901392067530248874953107153498456978439924947783351180659519787202094113990407823869014007432292853979713082693422828389566556127406992750325329408669242199199336527060685865375201517498290653648027336407310806431336180978980416267580527976506921856911138566360941542743594213121767147754703580144293109761726833542919415415315607017122676347337108533258157793386755953555367095837577567204430381663290347759734776444056053268862610032246296828787277422664056513757123635410962611584875816118151740505717588967549128957295278192231784897638365016771118468021990812647154413022565844332417341741730706150808822294854461317364703313081906342740684921513986300125774089502111862416227260650873039321555526508748156753875092292267907164016039021761565436077195458787429237002081970189008959324480651720758976030690742323803465264473387607281880688221236327687618209953927822489780078954403066405625979220745638279229337190930290654322016615646175819061423811913826796182280627598575478588954417264722534793339609773801541870726388395103557600892109234103595924387994795090063290149724383811962780766049312000996114473494175794478490089230301196473223935286043143596220752087620590681746780882809782104911168308106630090346696354928879486823390194215042616391856242548667230951923159835111176013990863087251598511039973151590290562532583390143529298305312914162199880248541707511619766543984340374258668002507633402464374332137967177173542270863860249858315309724054117724450428861153675220633727045811301617578698692812172250307428140246381515408528979910878196238920744373694788467627715120618036574985422823081777465853217490031172559193990110810857765962063864140213318765333398593500228184562431105450937745270861529863129859586257477541975747768321039935133096240057475184020107705076240268875901293007367399087344482703480387621761871859923015398478188496685735876775638491033201497733987308846431235644284316087671351994187128809042284558760101573027831443080315711308707406070753679975203879802475338467122788553610815863807819275195743267662276859233813342972939409374737358423039714689941301599616610721505473169366313778274927552971734870100183739112923201037250508006698692650903032372819713507046597486831881794056357485675851818394837285241194299237503029247036626494106731293545472661518279600153378110547687622160541831436051606944975842481520489937469794168645056774088692674378890265140123035825739394006055453492623144288177613073988700450247548128309461188847790499414631343739399890320507145919031418536091350222676602248369721766188384536733132919925799785604689513923951973355784231035110339875626412978982102363958081291607610808383516518499906163927218037718195968492105225046660735241738926310105747028912105019195227620545816350193668227732977346310059455804180653334641964080880867711032332868618143056683871669672888410525818355475553759298370129765952616673329404596690054431192712051728537505098704923609425897017148691336037892038185671102444581100515938622163066159818992095605846281821161841363224732341414168788049311308065652953586553136014544344058254251206630019962972357522049733615045857898558014701340328690980821491855993662443354039462783318985287551790246945744295353178286434617015605822700779304870790751024227751212832881381134541139305824674536906596188868344281974180972353107751617944947945710601507165102211379100964144057998273958008380690082212665126564560462446149278513088174467434751700437838579038901202512842057182060571507253691456522551410437302182929891506147407467663293458964315720354953670085779574670484517013482811591924394035873885616721292344792728224898572837171657566030898433950126813287415099496213121669475262380600146488469871759285438504127702128485397541893136757461135326605774532083723645716980879593155093071483382951540945556967462314857668144520365969219368938158639711404790599317719461787606849702197453885589013081239299741755323776594386295113002943724890876078574002862750713865396983963343125860624789551076236087621777718324399932095038576116595048356395689393030300208903876544420443393798004893810432534140983233044569136701017271054596222349713541040712347177097862176342486804997718981422247117179711291595828336911179290693978147174500072264459905278010410554341844319864603917792291515188982415446835323167226654964834007336120174935019538002742109413367239944969134614459876881219930968710026457562720758730304923375343864195695337374803986962123446495885898146575778579681102041050822354297454516368701851738604303164785845603262919940247307729051251631749185276387218942764069594644123318758050147133560039093491629976546443384545376259146561119674101953965703004359462701099593454461222062648687929466803010375322273515289313038625633090531342951724000869262729974423237728268831321962755731133418056848745350626720821248681117506593801150517202936859767088673274509573622121989300211768974462622445757872048642246779178244350338836079461940732036928635580947390449446995559579820099070043458450840102325423098314118118674452415347503378912942306349466977904062230269244474277537644381362301781850253129340055981949384984158701600561629877757731956943564437847072487166777562916610794767578594894641125468232063863675195393785258137456107957866919892611820400443828710219615088967314515483871699697899603514642738792533898495110063175726904699751433492486860113340198281845405437824083067304605033374326256071401323555689963578933705582668934205409323450260520789789222413931863608779342961889365645236654571433895974505660002358080022598098135609374738733978995722756504379556868949844232339963453901407598114523889909242822982634319033643655036530091293881959746158454313697715447990454490016552341596096759075958212694883103907603447312801547176200039413875626343727152836892185153951880240617967255061185565097388407847702497132909009990844838008044092765919545149910519477191204020952081306449862786780003482561028002906514228872633422217370554208769357859371750891675285629761965080451159741297365815020846925323209464469212217648368046141132005747396057993573031598531137242984823081184056652175837683170084815343510661377073663282579703207075980408599178433410593761479749436841356228209261648777705557719149571183564400046905384561516586547330264894433182536252926055842205987498880283435885165938676441285595259645602173178298828019566012438506469532974091062161389619492224497108951041751537607751498370819327091983071978708940675832121930862942668201447534073108216564331650131158899604772566358746793688262933318655620147889270173559464622952797699108160409397476580495999937054078760862120500640646361041194209107221446000861130596744362789770325888435813156062132372672963708500248513382006408192336503670066089963307089848528076576565571933066953711530294568353318562050455135500802395205743893016642822933307394863202197276070747133562322966414862872789076635492181906328957205605699991905051297968632716635484545180698025780636305488349426166769849797233259780656627162514252212139929221485897648948690515759153674329357636586309126596497027948646255297362060322092476223792913685395002044903565597110808742860280059982823869810516732781452454651820272880152896071544707188943224156489190171212680782899422425419137620337927103862608738154333076925120905175996435114247197115515696850930046515111226110475706957922504176713377769355872291920917134469498489315960810777251000435240815691195501558943878714994395379205986522705447157758261662015213868076946501650083113971150234204117935272591750910640829187111124986521337861842672740623315457856412266218408137687521624281950611769991815981630709826656730739046797867625404499301536648441176384849693327375883200308345755737720927272403621834645951268388218168043599721845202857684109712226991443677783603083625773911473969240826086763691627843291148024303300888779414929452775977396664374836777564353912032676472188533202553806213442737675464145258574688773993416229684993109820771697590741609423026799587599526331112333922813009739288510531099664934131100953503912498791766644469745887813043214081708774923274712317996847719917655219613237385471290359938466709294345208068036879936678904305973052376753797785231811834063405634638968896742967157674395334443929824423026846144431718132904746439400892095072252117510076040339104207875791781926604364392863120461061353751649249700605543728894904939647125624003365760997316228907842238764755494261208261413301867035004226936991254845421402681854167353004956981983644739805135160428859817347788323911449626772559029033708632974193507359927297820429373125672734392049913139896772831529996353802923940422762917380894985645879664231398516798023348183760756687040873128866396331206244080147971342400401400375951848652915914259770889523718816849816675688077993093043049965429897463525394748595407048892754819906338614662541992011755782744972334801757174006262906433228533656260227346651574427779641804859809077468576697105281271538634635482961820445789816240367119790475819950623231471963800592806617963517627633126905429404575663753180321373079275938048625191035047303780292650890939003224832735882771890784570535327081326049167083595692527234597771060245938349810820296367261608018694216705454450671715753523609214390477123637411017256145868141203488025820100699079235948929480591512012509946495246425631017970610077639120473652467720962650757811775854019188649260518436411502876336601165985201225423835517932167886241421113764578813141432580561919071450905920640794169023353895323251258162795145745668129269168652494783153027331360180186875997385046678497426531738580430318380942844896825948126994355902705222935326884596697439891789182945650118706646284318775184048097131771398630194261994390568499769794046151654726544077384543007666484276016747596428083153329938373490989482573062365294496598397201815084558954721256880745452343473446082972015126045389319585211557245108531359781395955287901687972986613167590563304371218923628770043726171589308194286640534562138150856945849519572054975524088402132415945426107463652056577450245162640667566076284096612760899914310855628542314575079839474124452031451508366161647549374624855721930409868913439594577677259655016585911719556373987211461847783183959433835794320230011125185209491363150108051757470335477998665256221261638443041160210977569824396625249909921743275626682724174255119892085378774835291251576229081157967871547943191839308783674166515886275155849221535006924350402879589816456283422195432322854028000493306133725041608539078075283224764384005216034233781975302545671421653349308749787185941671137257945704354021922444756725644404970761765228528913238804820742548420177236940751923393263487922740368107839611985915863763299922014451967940098623816818544655236094990544983196433680302945595576076239087783510239210891675331950333402830339071034047863403154081604562956853788071988363848904961811558844093444911451474996398969843782717016162382672189562829172930358848863906978440347345536750834735159571885274676128542424704835520306904331862522832046841599465190476178178067953133993992760922506423101632311737716590426165603962338960742005631462434850871899504265107084046884043471895934821695922501718346005804410667968293997208068106590675520212932816058526366363702089736399038383037979296313701220817678755844088046272441612888129440594767304971351109103492747447442542329180810121868234702667280290588569852455679379817295144673283343706589438024398793311314328894286549587504351214726016291911082642312220043655835094524772560931363416002706769247139883129831937967972272505548107346669775306484191345010070806064336964519363803941371547134472237066297045629945041255184852537228009566519061397442736538122220656347285432817714203903448317068287301953345283239769638793014635238641938505640081609789394564073077919711955189761274396217401002091818323520880918620238843988589411682015412324610358345757498581860451924282640553534723249639185204113903769088086720628426106132410762897068505627661340062547673171760969366390168717466423057019928123806986179382651468034561280821959614168663557988022700744513962963114090727407547049378755374777754503609567346328619204870436140016458834671384656266567664890385917957076743096292275229920503216491294056049456635534871113034249704188230710108465436079369393820936350237853845787035466090730503207114876747792940869594146429060130914652825297648189026433217677345748317836184655474747803752289053533887655203101013424757382569303234735201884097645446208594561990435849463594657412913941350145307553503763643731038586573671901666687221401724702049384051014673415600692704234716933341582759408216770627330240319492320255368308419531349204134479577920674359060978967343774342542935244990946990992924810928321874077756149170093425113907215383727287379866625691182874069916073758342609991581337030016541983724366511333258757153072860409253301509323023618993256423966988188210029444424734412245990931404446407825533161374624353388682618933961359605277547055441499017806974095083193003126104595158316331613302657504562235375266861034617643122504255621423993781488368850898024978030441708117816440034452305233361300001629700761077221818077548016650166051938203352380789068214534242935925106269512994935021211245272904626320371830268094086384364329774911791452328248981226891588509256176853439333454086388368745046972163180136645066261923391584495476184463312553641129830244206048750530877605268367397762791074869461743529399477567340092061317666720626175101405784190691009937342738118467579454445053073032605369097195920249219944149812001415606835650730074953828428434653788088340824597967246331832157916755211811823471954059780464602909379200344037371734008322414331162755457810512199952827818905713711334753518561289540665349776238705124910386523904345581666354963904066419521150234205382993361852702581467481091901753843411714783614398864219884198076822898162815704928615524096652991522222443860533601447234141395278742071808089570155634611414012655074279253611786206981044364521321237078842804791472575098534005184340876207828962253337316280286142227609516694182608558813514887795250343598161850183754530082513771802684567195267971387504012932298585005253104537383542070649834139287621036597439147937679477506532084642787326595003314516862092350107649096220036725623824377271042152401655303311487032930961067740660375104191268592283354903046603060111326825810399584229178801095552007978543504910871001084596598854176535925789191329755062892653659239156446542515997301565054029172750973176358023459718868407296298263749939077363550998838805029025538423497667507794634052745841536325879364249530670239299373478970652513327286354617074443465492966093420135900446693913008523876544002972289488863243157055425285216633908268216884796296186576747092141317480978835076951666316073789825165047785546992009666572199716672615420040501441372240480038364895747052483036782230949131026573796691266242358299674823785026416535132457634137853823221484805153396672308765107792756830021036306722329485373221985000262514536304073760570660481755933164266166712905424104544420471428408429176276923193118627749509825080194822649039659702448530194337881559815968384472430465010634594211322023942205962751487354129191961573496878525191716725987475146745198126195934935537954348624915831403311976501826384908061906855344854477978047541297669141794684516070523043048858517507820444537841965306658558744348142478606728588286173483603050644235036388617431894082809707588702092250571655154872700318689792476397572948993759112719003534161338555132856973733219830746745357595392549757880893479379469085203388522915123219308351683299571569235448528014221167100844522058362249057618213081445079499105703396650227983997915385440995213626502052202771993942597509869978866972843593915725911210499006276981726745088059402859459327893034879701907758878343674622013504156465266135507338579681448053041500169172300917586033112506507369881444099073478846896182818637433063479626427358480169375118844753380106202284313447385183153790666103924531380933247171759422855414608677361424867725641374669216724819740426327772449627220246633395355515347461484060726874693766812922171151674074405397955133759225408889270006036503240996617446377424997885039770880655451885461297776860059396689925463332804642742339033990701996333740950098419019006376285075456129562957402255000210294786970858560026916614859420408392526471285379507951241713644650523355875815906245607516277972350704393020849784251660922145150803817878051142337752160591880010646724899456858896670265317302738389610019793681810580220098139692809258938309082804587830782124477635643407516704145738701640680756193046273008480731506307981745701274745692393882158501068185436339762682240696405383324952014369871941467392383758939301106026633954692755733253397664680329012985632066987960036926570365610255861653964019609294658594563377711551438917984345066408258831854439304707522710626882056818979283392502214521296028111004063800223942790156377003968260494687611694172692546446609922498176871687454973939048462191898905587165633424724930215184077435149567884807528766382162683109418896519882579063893437613984362794852990253376669148600765180847067595529257824815177948386966278878628084842872718148061831011507462680667240602145805714827773942427339830872291513225416475210479210606943873838967730459318176990179260739626163006974323946126741143434391450322386687039035335905314747231416993589899486736035003811831748233639375947847605666287926069781520859271417790640323010050049851867325769551406498110294285558121460031700964671169839836430934270930455012994710977116794313996398558511470465522590244426476682648590244366994082523273518603751755530260858466217627070791006187781838461191758304201943056478603520113514771303275731108394356616901701785558473193586513775447315125645506951185451331967612121638300719590622183250372648606861586699993456808923711361675916855960702300596983509968584835526894840321578598514066339759404833079297503351491109441361035987712646618491578968822317651377357163845402488104768358339915556784064544428739533036908274682818465962541921244741375305722562105195270031515104551982553053481156250637937278059209705710128866218648970610532657569425436315176037110667780542001556719140876939189589662967842660981267583252689892954656517927526797753845360310526689135674318949065047305229917812210436622387751477340907231581773115413754120915955846462140751626225871960858662743931336723921530426274658849980943201030176062026599566913874872488447467705097290864000791933384683234422890815532449281233847276328560376485659807264389029501136013869532575263271914081161120050374329013685612696344495845509643043404986603071046016172605872625631822966427029389305796628743777039166548180400459675430142365792596667555617063105985788019857589792192542556743168998632796116409978474341533943234876010806231497963157347598083776934421172311019970860338059891273540796860769813022563920329502642127246447549174186505350237337101274266048740405194818090443545320607006497615838576090930866986592990967229119497635357876853710384335227304594050466864612763805562393759688539986056858910249049395124184678727861631457557822237603848753531716220694181576585126564076421763425105124432474679703654260419682947714102452116762322587578270751332229994938693555143545357757823024364748633444754957490713601698370114815330199309936009601243013750452754933570605818326706564720073682947443558207004142551201091941664083439564902176668889663072586114297083103931836454536336222137252895003136566574936791536555409178415484316379130833089859623566265734986255261699761816344829779640313702639417631466967923127667505630715576562203401009201956518427273644991436012117861312475549955545999910336761625139555309037808338453621295583206955120812995452748042942491414852186963110140571460980703423224337456504256492612769469901768312369119228814099104396445969125519390489698517753080925406692116033849980567085344028284206400773947217685729326349755715513310735847392635109361404403249426199302093179738212119148375278977277800573041626679162969155388741197399186355001687409862387529849788201315332274811997348909095103523878895486796248792875541120408099577077749341569643021612552053870075833012685989355567834860417409033541015453887717410415402567724037523422472365582912937416285772783083943536776430327927578816981264428027129464150399432748952105337198533907099746191166244023752199221029693942187337945442979375052552117207490990115915426163234208481525087163720053221613891409889052981856397021941160992093788863608784434580462873163675186403611485476002798889753467209129241507970646214863009200565253847263067824373518175684103633832641541287533223302149329001332340609527067597478786534566574283597444892930175965609748054370132943217444805338216026508112321365084497206922769307801970518552795687112093023550160355847767369184593060023234707969695202625957407600060226757320704718959998583698161658348594948284622983901803034732667504207611876874846212902119276384771105262253237536021320381078577629333954683669056684310678616572182378036063140486036085886773594179521073710670768763205793535780213900147162707119288772572215359106077381325891968082045701249031592702119629771001453537503659760083933808153563138915395869988263877955815459274688324159290421560498715779529549701649813159231930423640592997169113410023577474301867554262698248515800785128192626446968535539340755608827501511074043676438774575320506747327593419018724315005416859399588946606605490628889436965207010801038863580631127726539953815301499927013160994182779984343559615251425106620835290854895254553012216756951980193875182862895024770834352455597652961421472589053872855863070768318143935254590847702879630022136881326305465110617860215237455364560379418061018032000457232703144650418629234169073560838696591751316773350532741342029936887880471975625985507086500425070995998249267022943485290348599956495897269738002175722131784430382364460126728348066749466231379912348067287571833594261776119354326872981127143615487290457335426427578078089136027855735320245134962266536701858838990122382189342009698035162356852516994937142000481461434353236514731862795214072962228104396463580648024581490840554971062084019427182586757935110713207895499386592356600292838191919189067097826782304637474703206012843582824159714364270870322893688335120282791303806230055457457136999531304324851711192654414242974159149635378166285927903250337812125985853286633680336707531483550270404475807887018088747054785165957920322317216857722265317588697189583835182406253438306018299996443126484739879899053765934120217958275396142418184134912894271508512688188238710367222955694433414452613219223507610693312972849991009702158244611495211581379881707097773745897089129501445112684463628774195126680196715520157686907348055830114569570344827912527795395155515651673011036116675060247715464523662632281711429837219583933024165555018596264476526250057364920118850843688999686375934405212461286671105018804989314648868910313882632240568273246541014602854974420018931216119108391400065812827564906546030350884120112909877439131174755946393498508411605820534583063188852597165078316353546323412526525382517453435916138980743378583028090684676696852507333141685701242016029473986758967096554390850903127863926901713715703962572608023243519038550816388396238513039957652231378520321897185930831334572194242849751597403295455326415204536782291869934286713796546934947511939708402275720835909725326855714525962588019193439830378465547352599551179783305289520383639667284446716251128469108938471074675956811064871186226113962092700369524272424955074235245767565432301434168991709647764403000128088947766547656112503225902574196242579613798712877255393692939591689738123705984898703511790867105419228812233399553964003884413719923679810878631054552492000925383412190812512709378976860585933595098184348008257120145359720244500382331932747920405473354921073200925230058260097269375224586244700810765756634995460619387528874585712448153679280455173507295359112250982388790670260790782394449743723445040399361654908382781244980181092174067455913469598226376350373834859632783311680748271288431527286671047615977704877037812258423978537521384702145724564177176001902558009998900421514139990449463067326969920776600960650412098129536949620736878947284819651274915321193060819331829503096900980805821855613597896013291769456880438489603627324934410396975193300751533993142682123275845960147288564941252158256054093309111301872055357632412961435589062266398751378146584137659884600856843365684325217549967764070065425385899712131415515517512372558608165685500818689522761709048901735807234595999552009350402856047984618776338461065347948982891917142614891493557153171840708765326089345842595995174625239191819202133634926095010276142923277444892156020515823959717502827598017649199725528138637138099193969251929898028233929540519302980864068109522891544876339646657936095220561903512629134637852887597981740691985953173677432430235848579671157917883048212869271552133540496785040264920303619552277608138295283788229754252668268032740078044139930454044591676805212233451536975731222103604670166999453103714209727816699389445668228046449309552145810451162425852126339311274851634943184946474398980937380596841487632901310112869299080245180266947004089618067370805017149562562582683625460338987716608795076307793879677104832712871457085110085441227825757411473310405512931111590039534752924135199198492225460784507408596340498818088975148644872604012893083115136798884634978719508771468996336719552719328979125385587041941831441697476065792374043399059999896077646447130034882400142877905322006336674612860717875509078553131886822863800147363418434587874454945287724684759062736664912226359368740824864243318893492157662328150823643093030203097106288292532689906599519578393155727186757815849792538168668739195950846027711999710283973155021399798906750777773694921414811318343959775019013043093660845720897134475297645022166834823865110428990169715858276996162988599731995933924848352945994030329398904437244654398477038464376993332296573058994228777307388746000409863721734276346115466215814417859204968717092516999286381891955330163044700606309789741394832590243946437166462828774421875664601044682810113154562487608729111455343597651799847821756338668735574713044263573640856568694803033334898548125190615510669247634964563819570515046826858825237578112656485790654302169248049741265175442194673310751437201057077834998376924398610042969336752886075371484440962603086298819896922264879481224851151764681180487415849783243120690481981577017583789280674520841933210330218395665264932486575698184666564643527352018825221289252719845607121239165559905785423235963882239306910893937695136120284969258510904836891298655950881078031649058605956640416291572344818011211116491632452104552122666717394218705440637385888130899019563642238061622585029416240970147453551282727796546076445797097668484841236685214861304467508396695156917008845176749094150457310534437657731194779232946669575693768811164647373797841716020239104245912993039266742457837778624264667512909322553286726220199422173940542135139519398313624829647733186579084813910047929265882101242361597426858202126469214231884463556396785039951080698812081355176949107375744847690795251126167120048727797210137023467314746421778783515181462982797641689855628487975444745421572366454640343671288922315330590570484616156605157918714780964377424121244113318427722025734353563331466032201907083117314876749495086947361093450579080480299445802504937514835314171047787363191479972224836107341333131422997925013053317194439819948360525710551155111184996656039826325212517685085482630609533177936231952913484010019421511779770105391720825244252220900159216666388898272972658328807092459345960926428390216839861297608155945119199027588677665906123895454807991601510293396555986354857074328293830611616717046169624402453263511424592601076505992320977196378022706420546358625430813260024842778285108210646200712912437944126425489537367299229096952663946600681614673904420283671820818660867565271891983972940498221755694867594595572071370976434557543977463533333952894523192494014475653643174865501478321222360074653199500291843098547271835867837897319404546468626086059645211210655449779973025610669808570954923728528290161155104028249326267865980670855870158313911136900418985260738860806028490506415268977235298749445059451431582598410437021067503197774540737046406655117047885244191623679021976756090797087226774130087770820545130099289589755062761057978762360610800453665050437475189504449018827441521462203024647913776662399268008716145996278235168225026257070104237570790866475204483921883059174860303047775349750558618656206022846366099855336476652986514865541225896157891783950001696794629324640169115427734252524898581161402381868229903422759813569404424570192170891574558124836063393173333476974501347354883462197786362429938522037381893871825081729976733985620552129595538671742255441195956657295969409258246079550254586044954050673574457034822365676901528091106213542350593815031021235677776931174160449004667882788616283296506994668041287280563303809345559391953894958397159400096209518129860705861081440817135677951880842441920793145298910616022479045224811748342709857973255762888117405026371715797809696231740249065416643646639104742306279994559811116817455370237752635493867284147782435228618596849838095348634037859885855908129097772015284548798373288404084300115381861279891709028111768737185231947852516031564073121266273864504168974848658751560918508897588841712826424384956184421809867409019774355624488704845691186118289768061828503676848454337880791202208228053866645281099525482528566475020081558612734851269468997372576072467613538397172949649598193960624966888903263950049938848178801279112973083431876049337125672216758250163690953374593563148334820131167919257918422357117038180309870244389944962443344636825849231297664715812925655438195091595664437916909889432133180475719195943110081874626469722778558293610448817030662292187823689871529905669740290622731547752823836899126819127582629004244159794534329617209462683624412990166074504080033127269069509885069015578944556631595332410899771250122816541242821535296751244754456619252989723529679642965768695275443952531921161886969331203741812330522221970800230698073985989351660191403888837682310645737861872021810600107232985393362556574508943455223257063420408971662602397778314812084278935814380151554269572182116077062678690786398055501769851623536991492205233982720110399629094749500260508926080334096242831602019810893574319287721883223258469432137511101974583386762909836635343650822735853679916500334992795397319339824418779318356742597980112410102487313006008816461039653035154675595249702457479625845725297842178377432263700065969799799051009226784072624696249097361555846347518312290423984128076460799132587333926881351980665400892148973667722123922023607522690995179997479594927616640272456530651258528428965503355937787612514709767472290679914177275295943712552651035125420784543466606052931865544933210541016328554371889592264163933257928884759377464485240204998191981523658597848164925138198229111612179829849979980148995444666384438389300050858804181490264408603870753566657648582583152789423797465495549695277690544068401073732425085899277263697270523318355624634325519447172005193320445249525803719258405227639892075426290328313547561300189493537084225352845458561821081765189450281807142108013191024780242050551482360286967877110098120119853673077247164957154363145113213286483617541612330928505377851470258980422754919522531969060427367368585007073220335899109934291544457136275638517398080555166862806471913765658199891175875541952655648177581260277966965910925107378227954708972225008346568872541661787521148058370114357422274391704302100405636949095224260267944125084957444394501686978026589099214798155883571818688482533579328943256531060774256561982356977292868574916709606879595340595937671811451187144092322796584345595596259239401396778838221365184767290223714405061286581505953568705102659742023398818087120212335529685561746896859636445057584976354880643832003893373624110799229754973730449746323482335656877726216370252847377034784414074995214470786075081491528793764354339163187083183726378191030685219663911956294537830084235177465410843042481767999451947095819575441123059671415027624658937892988824233675957482336551701037134110367279873221815778919454666794228627362901384728831425857748285796709632046660133156657495347463475220629152289047941562814904823190460951617648450973531459223976231984587577682133938181954087072575684633616239538723719845833808859157147641603557196366172498125003841424216328673716690490708021189242941137581703443113132828592165176184630148624155713628648420877886338399322356617981881221107289744919787324200554133702108735065796922943120113662270539149486692159066410432845608657764150707524272475597669422052059535163783283367213339086558416153047865274753508930858419576475074798777548397351114508654563698537390684705960690156255163473753900176742002067142252480521340611951593117276001176809719980261463524955593679621875789042742043791402986275569647946430460257556286550942924756251112623310365074905967754334837317240018195073379412709949189405097934044627804537728982663958159164793732902914204672505650233319857310420208368562874875516331868293136977396231255297446324982851591556812558234896868975565212127904701723303798648572061118925255538354442857688430569979030559490549830271318145416945830982787147388338478709478813276158174811921957397029042091689750922992875879506291008076188617926031827217252716090406530360272342064037519000255473966135730841581234806984937706477960342639790848359512589281174318591919001252290099893646473302459961407007453101473410066000834974346802259414652612127906448058077622345099607372314848627305499872872122146272328004314463007833722035134719802193873601517971084286538970020443661985479708856936986299468610518563804233660141431979998585696268089233154765167831252184608023795125755296838750020851222808077270023952917449930393628455362070787452202468349329485471278494386001658416372047426920034994408892955589498099844897409547324033698716586656469854926403867882195422102419709761525140417950088091504123988380456591618621938154191039998347192725051927552271459857859160394711036918468190396418787321695918739046306257592969044918753321702997263967734373945951979256553939780385121463554474155338822182407647996510890560434629920822326155904603190166135061147564212407515059751504580174069754161817887450547630952021335302816146258630031660307494987871627055236539604337365520583145970229082744472762739220821957713261173673338747763906508552589407585420228757914045674492727289888431766043945536495025064035215289863152446316935736501650317602541834170211515632645966070433950929263948950984707720586020736538109426313307924317647523422992813559667018449850521817675248654717847295391223154819236083149460597576001795311857383993659850503485958650279183143704095285357149991377067234849179930280583527894672236973962929491631255004159005674115206676936268924357594116135822528841758655677282876714898319377648504777738590824653019277245338620132575549644867449349432019844369594962170131781216040352532063551730038237031310838184863114110967128356174489451148523679033596641567270214899751876992739199357041159431497843157075907660758177806443763860442173819597179563760849265340052198279936694840212078226719554749375714097062590611801691504047655671989144771597616594311749912993032917723623805866696452877092750409999543744603171750071901283274799485681507108952714646253026823467607938867216898498715896936124235144138572647469328138850617325065616403009998438508390030383341426444625928521674540624182272490715584959727201543855864049826528272240828501368908597066692687995982799684432376392744577493444326706319536022621848715213069484745266518656340100817957383135338390681982382999169838987966878553247905556223259381577848484113082492914935263514410837674373931486336586948779597639697303958946021896791286034459254756646239641309992663268678912733991473969394434937536000974875058399988069115411314138599173918485192781469402162556361867600121282135833172183336467468800023657081661352663687106845605378757986567650614204825565396049191401861469515923771972777530217300576909126522914292245450707783207322593083750210194777469876285859461726339452953856933616515480427947901855426244745389313224968185937188439707504966723140112400945427423691334904261763976011887285266048428549068122457874467598103792878917616962649592816325625906653589141430073444698317788609957085004894757050044201743271928966399146823104914055153811498237900965295140410727122540286689497678040900446309683435068095958438751679388622970971920826688303041992523632488776493653482760905388471421372683221573140413269383309519292314667588203515823189585027901527740896343268082879356982896872404553398675500591562865402548182653539180436993576938293019536399603934707145473147086625414418477543259713999808116309598513221733558082131295214480275460277959951908913746249363402034771682696495775954325018431325627378437377070681352826938543094630942344484856645159124874625137780239367678533155060048882597940139714678822093330757185550242991813338058061812878708706451745160988143205964190911126882262941257014698027487459452147608930174205632301017028352152586858217105254270302454934137933832578256019988043796261283301234458131330860675315462216665871933161351350448758564808633954125915630819730712895296934855163425304304974869676772866000508065730447604798271082890105353969969438678860684361831596043703228199849565810747045355206441031003745601855746404251509306548455942293960020488393588448998936332793556602790826586517680619798504354822780355802684964490091001732111168650101982265865884323812223916464382646242766149096872430652228575139542543478627845755641035902072449223424172086226721410946338785456375657193840951729891657573256407675532294803953754551050725776206842369716184100424834255643635019446928052978866306863035301982592264181459855630670913221910565526247242921131303078073126246077738783006803485341970930295650916174391381382473613048942892938688294776387118348357900530591351778923708944108463120281065130329220906149375118231171708634065263217122323737620618156007319781791854028605907117596883061053451924231926857407008455256735983398048118350980781500086361000672052240656766497506999427323335462476166025342338265061081297086069823947717522323120970700591219416408294597319697478926160804146599826410066748777079892052685225281114272408183251310878002677755284521799408719363629312112692398358527869424449530602329694843182841527306675226953077409941245259212031267894330178669798695113563029324673978055832441139311748963209158237179505203802476288350096663252902124441121716114164668886586608028229684408596545637816806067974743136578126652797247042160249114507992423399040144734004467853945267354599620475023388860857669665730500018163078007511254468820018055010233867621430417868437958628279047704632333872499836255055639325517528670138853028109369414065757105820674084855338788041248233370763037850540670568324484441245658044404300679272647546480547410424571903861827043060728528497078557484206239047311417333609628909730484417114963297011113496511905062481927917332569578531315985027138307341706241929023926191653677555124636180974446470305878036314542688341898908122996821181777660733101923332815060639665572090512117342085949507191125472487150198007160588583828608148334952975881716455470446271583155492402324955573633847611336358514856051068805678182065180524715696957430937540795851219249138135037974932366549086148173289629504145371388558892519491234503266936119321725892238407692869623813293771859766064282364669818039180726807975018306997965564841918532495638541004862333138456883062474705107744210018931323068969502530537235869237865446128852533212110495952593213358494832990983664446609961943471056574475269423611061251028826599846314844469943699885586415438537224408838716364203611632306411307098572456905183780600091654414158059949712429448199295962727630139338137943527870914021751963448825208939215321352507064332791948776431377596394398905834720285522817515433655039469558412505686025630950643467120749298979055952080330684596738596100995112631410131542260131747462147424354397389372769780278632391316173060865340760126642613569946546929959333049109347829291538929465378386921571991375922037618818980606244610191073859959459083789492597897242499536651527387607727204348778931172998273362473030866123828955335153218552155930730541123092548385575992967185764680702137121343051550452905508761038986973701537433167561461051893251192487606968363349228622052538249391519262199580495550438961776715660823483607845372758727912107751134499707914452452695437434625726376715458213857123622172991032067774786965954612999643077664394150238428658629631288305112483040451938080916914869002829899940259053680821462013087366992048131221077050951304720336633302269613974930801260886553155850722722230533111499820072780961175951017156974378089525737406746236120608669368840621683712015243463933964115722968944279245964747948256228919451477696097876163557080826653247779281777640321258867205583247052016914990598665024542314951883428817956993771084184395583246713641651993441740040731476178467758726059424742462512292579205947166514471793262973661334841415768418284327589072597580122383501968883598960935092876453057772466341950070493486277125913930268456547384159375627234845065638132023748044122333902464860305300883238454776305545414809795622094754373463895023027177848386262386499052130655831316926967535817979513402006269949722155525275637992729306626741536286221899865468717630954125250397703879201927728697524123666599328216713844241397359435706143103094818984488795409275535308335304306314078779533638172599464475084332463393746789020640982683054253347558326868132529528589825559075487997691444081581259179795342344265000601316074796966848500498602048633393437882287604748929904506139515242222288440554817798567383002170534957103968663936126079663750198389304279971514913665399633972163220430072573279243755437171142066042842989257548764214761616229254567234693760072460245730439880485729603938083605663059201269559638188329834771486040771724330367484476953249173478674537715158285476543872073699022583987592500561308414283278113200338903233861039413264235273840783233743265913661640987630308478616529692970144734519141255817323920015979875079641284094674122197631552613885493147613200658259674350659055678079996770760322345951125759856957052293185988620362315908637925003564972152055155077708117047890881513687861644091116184331975410914925847814732956636854141195936618372302251858998257296447088862822464096377537807796431265430201174315499368061484806307087341815140003189116583138938655894310205117513267700670218296203451288642391373255691069703867619552509874987019912758371828754249109431131434471338169529229591433520720364132096273132817905042501469908773130180248957002946087278558065189655871238347793139813420760376842320265391487735302431120977933738462992301304071960205922468316804357255691378027950397157638266088500785069028346265794845165624546987134977126120054356172471534757496267666768922644179160976338992900381015718191644979965983310440749896310539372404449717099990721885817227738890145622622738078433428832416534029263859631445722867376631096106574390699708109696925521343620597829331795255579075715238780074142672096192325921499783220497772533028130578887570860150544705263032796480561972556094007063473619138476592614939895499601537493554279962390968921443404774382646596345861948328869026097054847195128624242280933239531218058454944140898278455324095611207496476067000391629782609008642720279907809691639654952684602252207371265522141780698946981463938088355039129972399312004127570174631367175641323474251980850738573232349105982372969170977738705226469807551439741187850472511152057334915719411482578623578017101725089609541968527357765666917887278782994727234337787026115286687470354807843943183218938433365433881859593284079073411225459328796963569264423780714332711551262837314254718908421159525654795938910289081972033218689002199451777470714355597985736558089810068125401046352662807728420384752772792728269649023577911423567630907621104163255257510732178161306608812348227053128571148645473851542891634234341933070228394443109372088827373642018735768561311517491615938947045005359112860000420177137471663192676371100179081086052015280518973394650320573843871279315431962977193555189729745943095383544590059282567585967017778912477053697635270446395036534676709989977244729513342085600301403686842458453068718963858010355728428849241371656941715701631735345956479982668838982151259974749598144057045668769233484622050956182291971993973375495691122711769259285536989719802999962747589712871912210092220089056122233509653105329269293020549193338010839035287660657398896256800808952424929800721549429626996995834058119675809775764398347276178629627753416357196824678696750436571345271305842958898561630900589087415965691201044171268067168999737582043524000408985324313029549160408283878780393353813778765169226280147570244219548255116606831806465033061888549162440084676547774481812119132774099411469427252219851080356217740152242076157877782148234808464187731278189832611495323442919786821381338041440060020556528483106999381397105662703681994789687484472708296713702915816080125050959483844068233414785436184875232083819283992664348441044739610327038184154709352087384468598070358195612324491634437345638103621571570957168633701640194657971427614945642624174759982663202279670549002635945786071174817874442118658867449550122933568050332549533055194368165925450569671317682195071984273167723239311349991330931513209639659652749419131985845643442111914668966921276985379488996135550776235572780518550929322312750429326349942384872460641399721561833483468339761470631257055125007736534976104053247078205743968611264928483656953006034942424515611724055485236445566529564350903866039324593076002406541312593932354463508483877134721542321304465494777438336320895763604384951005698164007710138277331038772931858008561386937767688390479606518806483516366610176854862269009767622252643427994635992493320410058248351615261356801696270775770646349647746839933221072580826800098855965672900215356232529496689987115902604657326646897947364970061454035482519131863576145323550635913576802129516659304197153091411598074583588509048061840359063862659380788695665579788475446081962259593423147012529956049060628316698979296677827233752457705544531792209493114060487048631860176918588102701761598097198991930243410434215171832305018613658407975590739110882010110243842380483369441755758541499899375461629247858253640923578397571122631276777338152740305706079050138962963690348793579829604292186997439033318164562104677289699788068786705287880984789520009511408216083055768364960520004598429033673953373311544752928456503850271496456053945667744847071628547758424237841171180186216966947170174239691351124598507883263494164596141144706246137101034641089310433315819055425056707519242798409507783495656806770145079718066008995215057718803791383688230305701695036059675401898105781079121889099509185055963100655905711452729478654978407659498730423051107500312995152981441374079273621404680157480442333703785972098915650590443358632911423417757061445301184798734089273025326165662676152650345924558017266837986375945520681240269594477813194369794033331004160163088756075896828309100547903612867423675760982718535685206161909347352176886436137184729298695863985511646292284582766200577499199258079261443930980003202567797258467646320874396656057594331151400849560933315877502149471753158618625794360079976870128875047144059429528510543657365857686746768261429603729948994693736984867490408390337789652465991050571928942753775857032370635958617395799642851566150558132692784760178483387392807146322350373434187199145540056892902455183151100413334976146033052884577810825379901769815518911221767011003074302314017915568739940237940709808164227756507389441833374545152755958930937932261593433206438355645771508894314462438176653008619833806534843843723332912637604547503400549685752236856291291708994953425131700323229968369795378576001671516084248015488527881384073236522941498891551129448285304140860725055044449493818999612012603109417278393170901265662212635772828486372934162338685067986573919789580484871470549800032484212049152577046735103940414506287800068407998506430638148802708459155680024899236694582741050689806145606770745507664494168883327675924079453710264128111500806685237938438609977643427626653376200836535267346312983351652708390041438830857464842473367180506876452990270359046569398986897796346728813392650328672881506859747725550128866494246654030676939199548780339899755988741542407453396482219564911720215849672280132130605046183640003705156220313883301235018202333262940543564688936098282647685908881158972881540391345212879996634425691240526437838577887597035804726771263508091795902287690920763226968895268619424677111947366526961258845780035257164853958396015822135610009398036047168287112647831864171243594577954753799917995071921391478740468659426464703880607169552692627520781860822166878120341684145949731103049676113552363126219175258132854632370095751949295464475230049366352397025767314621759058774968243717031732279257962771619896343921623820466687772387122533699860108317758794110176378688376067345649339839885332020841693783246600406561887449960363761097884501511299494068784181842772479838955140095454422569084275386852067436748576368515118345975138608368836693865437944439312655474372958138781600874941993194421186350406256307898969473458778775185309203315272489994272219180403603961652413363203192960796728771499427406948771194864638929189175673924332853340482716067109922746633081842456270225983002706123970490255597063710767580412277666508634710450584639485424200476710650842042154720945285142690730633207570299690625621398529337774420477893871606660825426229209294684892048099183594816621599376695285168127841979596176286596064737477497972863302269736718353122521579142218736188457647735797636323774414006686440288468573229627930588479748021032067815217856224065792275161561567873462430665485182849982355512879970514631408144875558343843417073837934332623674045964034440562330229478741334584371541436884105048498799594151764868291908726848755408250439395993580990164747626975628963393314009989411269685615056944336495960242079913732500313890610621728208933506588993632553916158027950607411750331384287485088187308901925005159650918372057337882547945966059738704931560424355183929917261726098506106248481899861769057624175932428111459439868683014740431499817214069886164043754409322567097455932615049182250485783330844537234420522000478305493766786579275464683986535150125221600842294587821968134549966725807265155963307882911389842190085083407303015884825398269631124762347655191047518488951717682574693555368187867932316225808414117924231894352253267713660421213014576275444233583952358412034209276365642848276533760065567338655805336858945169273197203033888569908877108196030754220742959531287125349309340868197422867430293435003886487554727951717905013255017900107289511844135046138687831067095756734533913527388924298552109074579869887391901328081309566116324212453980114852606186795325431278792921067002874300169912898163149062951966984284430873799717916293328409743383689250378722209009436033271016265126716509576321174140622839917635600694666330317753282785127768175617150572575184196461160695804609161066010352163232109717181464961992557712444874085287220054589285577850624315183647714971556430961279678195230600110987356584863320419401964566488033606366310021570907351773654916712442971298712301670605665336738527684625850797413582677697020041388371098530787298510278366120396898294958827799965122910532948058725830779022435692626222275033525774233035348352063334550433848561549594794485126520787071341906102340241567316184300218679587269852637605168043268290151328403359313754425134566356551210278710747750355777619263086244499221328399295681700148671598147858066922578987155199623420297525599592323351475780157107683057244078481288910449845684708624431254465682186016914962987176406647301317244671110000917267613772266027488201114466333817062877147789046893847284462867673622004541554299032495067205778081914380118691992409076306736088543196194957575048614921510353309850727411459016173283258604295560536156373054344369388343292173045106997928503449382094014412979372760853824064539296717309853119752844431568818978283670751938519304815126028520151792125037445924121295156483613790758890039539505325567167744935901699748553212261235098481191178819211071876877950140210826944237801158348339595670751970425759956379932658647813245698814891650671172118958122199864169284151171883180593414588750270971901900075893250448782157987107032501713794137178583048754606524557661023347809496973999563639141038654455751182392814834122049843804768626955903705476763402943212065018131101302107100333932142113159654991966583088233143908866756928886057222808892265993014430107912264593900485272416595209765012326095615088405186764851557438657508464143316408648085449127333516977723292973973783950078886415031025249545286615287621048185291987612340239267654049312263971804064397162149293647879440674716117729665536751244392214017191552122423875097198875767267165898949672366589915649866097105724737220142396455464766019308808183593943345327671299009670206623618430167083584107027061934526430018962020896466453622775365012682443726183256562839741097348129335886711724005146136270720998142826022227628617818113688284048193154679440557151869569688569545977709633478704501657399926594647392109156313936945501405208708709154934499465327444596220838104324664890777950674984360799891027712432946029408378843437969900878157004700057399573326178136435040155027106597718835167399284327193341624237654689105203821574240142869588027876040467484213812466106988652627450232036910312399876417442979329127353234516179216702348390451336837030912112557486833184505871208580105780417195788569887806513804862263496977418403343002190127724448575466145845282395917711992313816740873828544521883968965896168368498381772924272897757630562752900618836028535678949175253658244322202403635131920515454531568927645595973380002421259128519539134801265734084429882728033459222601445843039069910747096096226792178958271684943258974741775497631790363605891681929897595689206235892087290991189079582321515043094049399402080616353305412676162864896733525723838411176090998397529204881766169260393871504277834254474860713718238812666191598205144270207588905006040861714587986782794675376023026598589561701893237468514645156287554756801455391889304516086994249766200881040804876685661718114046007189906977252128165248512012768284246671951368171942775710265169911597159564555281689156348333604332369403971429851516704938096262651765312247066885667947471511740496929460382587705215472251100550074673037558062211899152687587815946282176669538695768558848819504388882467232802773153738491350313107853710268644420971472073976512456487114455430184634634105779383375187558115424685649419407346641363129438081074398133783418405141158876522090793631295904293084642678457010200070520233468651538019845270114899596625177807634666403297952408538591425005862529517560473013701176316198017509266663334183956163390538482256043154409969773488131812356322828850679824406818949050356615554813559899313081874654952574352917748344311298407425910386380459341296925567148723259100231562994882355172894321164014370209559561360882947141963324984215255232051522244903365075132884126652937380533232055778174160940502554838886403261221535527179072089250865185521093994439980178043201542294312200461395614178013868424843691642819839774118383451759195313262985793195010666996612492459490071382175802837650764880716905611459732316418876379177812207701688845602336278826368315885315319503825147100703210199537820008746040340140027864025107589294358868316442848130612854280543919116212635721557751858943380161473828383905959241798717126385535552615013488376142161538021074648703884479125321875410359280450420584183944574241146541522944082661624474213926999103127299142830143411933835487221230745699860283722109096909570889884394418970482032369235504596470770491663378174866742155481183699769462606988811510167123351365215055487483484053682841309728390408298792459859221164949427762619538349313984184736913496920617096489062512307700718753293108567001689527067187762765994977250456678620937191708150367137799987684740029865447678882368475129724760883015281907886195515687078630608087501086564424334029570181441593273182354272677865729543830341642304673076390903611087769983761461640163180438093732708089517480401423936860265433825853327453390455029463085552183413360701462927315967917960806633375346830166054748428718513147480324845151496458370982212251767213427885235761786530215147036647226753479582205616476236766199618303828131517921186670135350678636837507256620756442897871949459896446793892375578240406119893061336381646466329705703579138211469439416510582087601872553521664159884113296023726504721879659888928339187868247540652577976432067763514695398317204948235241319200675629112024250956187539611179847850728844224068647901020629157970218102221398414292149859018066134377074078530000459401823071264527430595640463843572459656637626242286148168979769940114177945625927095788493580758385367690746563385435457516530636574062425947790365825076346587417065643261585592492758963160167121995175352899493916904085019148063486370596370589691244838933377002312199738391407165423288428046026170492370735683834139935192637436766880581454589479216986336077125508124375052355945014087594520682320020870501184106699449209487192122666375058094920607269867186111641264169805815062642943574438841666484379934633171224635795982827560163471652530385008306127985949059065658519352405734368659232216480993392792931082554475690077313108964218596058706452616888055152119708505193452524878908470145265712459087988252465779288436442535518217130885177536794157407605806312002320465799504375917305198877792575524668448448005038885020063822419856327039100412402611551806145449086210596412152461784767654703058732666807179039691872715723248744556025208991587820341519382488997325316742557299151920961394113198166462973340294762487325414098878120703393509102929338301466912916112585412906731333860797018403655562201093456825296052259114032358836405309375745345692405979522544385243378637789220932414268746148944752488287262407803751599414666712930628963581716407872081018294612009184858951688769896546873927721342939826725272354409742814840768948606393962604068760821223328179360459628400185924996895482581464879336246343207961570931161597454611315488380113953922830398285277109542458135300881238281618769448391326717513699990531501999293792172408009609122537924788614014838033597252279834696894614391472692974189589847757135157639717901843999413850663355156517709969868015970957774935821064929731483187026219227287949622620170467960767215755246423517942744708396589528129704651465345939205781208657954164239090607043542187436962694488861029696822337796188725393472547413652662352732847157937878833248532321538999039416662844821560513609822366817339603320924328848841179362759082093822775630881175724724566297846639214357290678835724380130059333559344581127765270712581512711140313398145455747377006177898338987352657731911284672078790352093011211173358480586090500175812680021451113726736086400399262269079646380971682600357883166199696131882915607383176231189263953960046183804061898161931382265456705433613294405968653082650720214888838416751193595114955786635132079659516648441200746715573646157087273077987334117545647725152507002060056874128180723718616250476184191881981574646409575458624451922959733901395623941659722627945488271913343361246611600432588129514639672100277268759333128561142056122090696401758591120705558173247365287335722448013650096955952545314340599301149124944067212999160356974044605873124386927161261213113480194829946480646278810867807938534787980966878453087488692615958746157924149017775800747402262765242686898172800893032934800188278159284226649448183404508361529387448020658104137684544886003779870206129284517711975022908843703112155879300427059009047521539402680713563716896785316617077474773667070127446976381131151469514188706794541393669507422776511593329724412987718372168845599258720346179959353287992309504195326604449020414716586962548357084369521888877241637657752850746631076986919994684102777651371275146058044845676493452356130027352366789961710142748980938345945873041330381915131688354586864097656012669722669656666512118697088819452945328784729594851563303530675982846834973823178944529088717386487608365822990736059568146844144552449871044215703964393703664202562185994617975198681732620269453820128323463661114360037407165815561201373396137894114311806980797063694610820511360134748283951479803605594411045980072929531334070917411078853992916823171750923259258858640856753984303666854127319930153284767989514421797952491635816412525098064422070382255878886153132243737810538642058723156801999328036076876997580251176587067642911749457164700512407912472965941230576589159241815996394826399867786469103329583185917845401712519004052326018976008210945511300271197794176436014160863199407770202515032576838640838901797130271197400935786959667738803623136258600193991877220024736152335992795020646203422130653365268903211404755140831587607456734912812279875159646485442809870815664236189957164824300132272924836511181296552528653853216293044979624182763544505746693993226754395913606079869599749222324699410681180051923838298933471443817948371234504511112607282573538497478224643392381752385138263236746416187779573892077381649230092260215721298053054702978663086162655258889501744276964221821228270418571509756122683724822694020971164818971099318962515024226881150346035639825908874351127178437193019457754383938735993865832941738344441236795327452998591902081541844213259569618522595681576047289110878429635907319530742827571978602783691449340221745571696263457599470046028880200057462942683870975281991689939335311699324965172549356915664975447917092164967513859621454755468795722689922316469584652061982112312711210278600953606733195234360110696695534880316444078519765686106701285854493329899010320859570815767805706518780951274291963116295028638964319437553660502351819419890897136731004643282015530185933822567016938152199858643842928298868461723678537191474663368965346000786320454438173986381139622754572426114483261404576886021443952855053197336549514259488916445125567883874343876956726770567775089122922939808813880280840745816131320587498005209801816047833427250300094929528640964490227419634564714108797261185936767489769523586692874252186726542359086406210630755852732221043787490375260973425848839246946184123760471796768003785264813428894834787455749284969411215899643087073661310100998724463067824477514144139014058900450733200662952025784319332823292925823538915581794606416291328246319251450964189502861867922441118251091072651872278383313938211199412183220327465025960112120507401213478642533431029962624698041176346735219201395250012587506359297556756652378153012929067106469047393270721560658507478722379068765900973173383875618472906217815267659260072052409630032486629303421816556907759475550753656583101955468557804933521280449001099506211201658827704732415283668259392187724296556518236323117361067834598940962865634604217650960205228980064138733074646216751821249151776088197195434822230357536296696821062444600825053089941080841379149596088047480707201198618651231535625148325017301718296911087777928009592386732635828743420218977508529826109378445044773099238039058453350447271964373279507015421338198846950832453856847937524821823788324910934032899324382171015581550013565729752256078066352658290438294351952473512100873278370181629921611377521855853338132377633314187488347599394318657538473274841019670820239262885314082233624147305269031660335319088426470910407344660977858380414846195850109197542651236560379109739674803840943473203577661215529988373782592659428778499647950579925393613817189007311167232533592913784091306386677567934131469701789830591837237549980499059809248728011789344987068192275661398663835000891289284247395842201057639392345431366306722910512450510564520171744290113456908866408358840206060237547725088265227001201645134820683779760425117726647446228798242409694100971380334703127645655980419451318697089543208424720009675138965276644358823540159057096046841416785850064888083908887867785182973950874872842059935951623850062151957919772481137429920343062609812069473467651150867921410523688105494532885662997975240757229070518361312287536814376105185426038339899490235647015845561238203509255702877467281632607711946479368230665875322977152538514838492404655850361359054754250596125243124098347467236905551832923524754416947393357761500582404636283284748563970852691410121368030811705854837445671351896538308104719529954590032315313146190395201752415152638916555336289693063579177204801414071636721430719363711735273143559918380799228053839807664821270165578673127183065045220501206582185719267583005797517690274722619527265344009799269193142522370742034759388356769181862915665920494865944962002463709036900889467129248648175124385051885632311887832242296846375868490781942025157432961759006145487243531623637297322518568607649770177361769631827964886408509963402421185403176187308726649851726262756627776944905988681264963876490182026184655593628309483694108031956360288484716515951279724003286413259653040510387993805370162337008481577771480019646398635269265425717604711447791972013214102365459503442853442383148418228648215066459238822542152363919181115921021179391191902634934033899953878227110431525759317058231989560064557853440501972811429047074528608178482513663174408957255166009165004615785191128342039212735523305155673973045304009995684382504352496165791911703099603175889194234484754327169060945134505067851007261580153873441442799165595157368116976377347011147297009576546509015954830725017193302243789889919489805513999072034375552386256310344513337317743653487524171722287281496004527024240431227618580126560138585161460226195137161281708147756051521536049640043522076465361520606390409099018047656415577001634944275206707808242523484008293426192396763353212319698441919712614421878007257569506911811240954338826271259103866409185463051875377981364164791289857412106751871890598182046224608434752694582807780746416982070288955972537658425995190355997359604519468073925360172630461914807983801474998705541575940750404671184254642367182904992048179904180518450501144417475757637995178304865190144877298702264130482427832116569986608827140806026900974398994760219256051119259014474975519319213971672633121304062379208855820076787267133105069861490829379883512522107844888090188856085656169503446800909928238600425030608092629847206088958314682990553781137950619713029698617649872999459180054107176076316915004848155295851513208873317256139451471921287536422655268080741691079816426894557982783164433425372105085483468982049321674758649868339988836392087977199558326073842968628799746040432599034773650026110508974010094186705845174498615592860678900830890222069570843199690834168244006337653015111049748932821141007282103991459769096206011207061591640237207314397276730298647716587711823978377474198415168447518743586511534870977547329362808565678602788220740374831973315063047557482116077065598233440726526737110535130440029612661406421219459924744804359934774598817103022724957346039938419841214902207253426355042639666252084292864328705422403843405125719552870310726308619936741410551864617471535408967327816701480883120869893611819704460432563163445524760199694180718830881433312003209018849890883154087051225491074895360803802000595597224540763074495284082949456891281102088387140724821536602724164098281433306958245490856195139287560139874436070803677316716632220958471327080991726083440439231588718367280544242877880336944520883789600434029098396995792968935448288786935950728707515740246603477943038562578970556612302285851639097302178581164419247426936279298283472336213611597081834762710457311282752920983451018672528320748611584051629762811237827957697992097987165523966672721489387328233157909559543188572191325165997412284978626442493470211509879717314860208357252213484591929888083749797139942737430078644573519871019521586436630277830457947711681956564323863717643811917253060112555343840095565010240303474766232771269683582233308602837717632763733238455600641666521447428120566785002146676249874094568753418243211390403235076384828516244138504219411731754332051075421644657589730485951035647919047848445563795900784875789444141884638911465877641545013400104155410830948385345999219616079542457286214980592081705395276812122391464354808159683591655657571991199161788057329153347045278134677988167104317773402903169680148095746230877048984100485344034171166328108197579374764174332589996522407607890121148904364280692780614926101942105634856141547039841923603753317576154290716334955867073703433160010963600666631465393574454746749993329800229327931914053095663840717830931966749457245555996117188149699671844129337192695968636780116328042393263935883633388271580878291605334049942780734126358390292068248410967301659587327802966270435859448090143924637800816308814100377551784918436313753913457056699282989708457418928407879004442318863837377152093664587570244573395192529233594626531030624621048746920652472286879719542728295947974567222580789769060193919647974889646890322570874705327788193009033310691852478873862896602669209534458747985195131686574960618080837363623752610494825908875649438794038171075626341418683818440386340463653810752788096163135803334720444689612215557510063473794159831682864298652738231822080268449583980095451061749357390754203381834331344802667916055573551514823599925344537595553840616800738839119315003321061464411693990028763695934171040353049668670532821549036894213352911771928996077218469813630149295306967579970954930712220267592312727522162951237508208405666642457602304881380673065148886247163812674209373417813953538509920414244695813333648236102219836839380091214886784093760571783959485354758865031061628671822515035164173504905373348813796228801570222982910054428429926302541633136672051135532203578584367611299596213014330170995113893725070155352199766286064505003409242040526571309003452630523742678932675188349864111497081383326887738759300472558368304640556672811741995201252493241117706263878384438330230840418701361276939131347633668744376041948952270442002777542635652658104828068479783385418017898809283843380378716143675879752316443918381515603139955566566107262932461741407117461447837258704751832839121504946137396266855630070357344860986975042418933681878836526685406259982439265869245667930085306597280549428539991689258973617582191840857848803639547046087863219571018304044233078024093095106228265208360108351997563698168980398747994336003108925825005842262674962402897928467331977626708609493964034331918198499937814766821700852648416674779359157654854103702976206687187960484071165942972876818775752858734108288299559960797540650318332415827126747805893311304095680434643995003794425861677815291139251815384394467379270553326460996312131644225817367742733891636028785061334600515529520580237621459685692198057070662762255204670404505177182978352947154619821342488209963861731950332511967443918413355071285593187854921394377385763871050784226320554742955986151681568114172573276498278252960158876380322628530461354282843567396521350595607602659005147589310540289880969439721072012384057797250003195805591330459241273040134415599728973837405502112378468443857257108187015362576349844443487162663428715049279490352856840979927264279224789793771317208686185535603006887655145386611709227508216959954392675888954627805315926718767135679450137160428426706507016788272882499079064955966865489006024370630118598555678815914195579962204677832371792249809359519383287348316737226097828270625117875380477417862668949919134999838965876619977992611850726254335902530422477158429341853109088130550209044658235082266649860172089166007617888556198116629667812793745846515829628062388740661266483835369485592980852674069042429092396407367059773334032280824796754238777309415641872382558205523185924441657683363512572286305933143655909948163006117282979940708729795297475926225207591996207811342397853370095698368073207748434222206464987771449095900672125049021718949007664582255574323265403983699390876073668841591403735267107988851458719260249995778119831399608160605507760572280943357307276194956720762352151009087011926336070167085640957447667734278757867298834678842043892980058465915599542435678149260075097385593045286832583918273566155057065093352123431462872043539439851245815130303042449361146540855495902810950324247488888520038622961955926468728938047630862495944223439616453100665336979531206492626412298040744269762870771659644723859574083094315706761121050933518694830711855209383657201673280990014848645758890499641247263568002553105821566778577002267174148570742655989234362740831106942952371589844166729076774425552186919302203838330357722608120544719481771153687683878126820547477721515109434311626741810639404221040722824363148092290161756444907969158296301179193217774334048726198778635205227928755913336136751063368198690510954015542271953130311975834925899912293405506512753862478411640797460872067035145132487104167931077733934204317254696270626088251155219672744221551500664892735455826337292357016129968826664545437416490620820911479388933087522221890991940771288792773346372569201772309568529577711263509619895054338003517922674913725467676300538992638487202884176852497916881861611008974414604916583484699044081288744643707701508776745354422332621694935264200586209480899227617133944932922968506726558454198547362999979035455958250474948448156416882046476077888952777535782081199141997290816630729223924343492080434993892181238562940570452778707748478483133798298871141456463295427210601037918351901410401880369794419670480303297909148035278752023750232152999858187090465556015894047212033494045480546455855348421870856301847540888355636429272984525010787364220586261132588805711385261541435210848360795528986002389509344353128330930339775013548685238490615466971466335234679754437861871866471765123886660845238603493676320528694785562746952801259677989570387803784246275011192328676561852537441903584067983008568268776619135713893276739794309968925104539374912729572602850053647425360117958493573046630163521615317568799431557827424358865650869088068479716451659154134556737680619873978152083700666752082030284931448096648500096719866355086092427037325681771234541434175404764351793630561014987738248128659526452035210398669992673982622704966259233078085313724924078065488948060006340223592829018280683102134254970113180281762274406639879183180278947899362828810690160020713628250708855760553809164504695699028550739257004377339996882875230531704443261190157100988923899798141795662523732109165627806997919015355923275357506169326229890736243434791172574726594793194044058492275277671171643089320392798876212381904764440475087474145588421934228977052441630910580950728770339205171982795674219543872534460676583362378954710248978355458522870726399175212730884201123958925748571782796764650910527808629043560845116754548219073594756944743402637865569148505912093505891094979138353804818259785606942257999565055217840522005440026530423551470763432572538679123955436726073037630481879849717759347844923450146685751607594563231896379623007204585285804618151099144433561641350209122233328193656651265214529512660764635920114492623546714627906347871426315695704878461782856595439316337890088714013637905297137099029216108698576793414687197345240547009705433062058809909894551002803469255240207456133897225445544276463910655369311258537125953032391736237368339604755756471497457422854231961502598146302657277900472543919098243825976715557914847191484921879169573793471969030724336590452283794133613302619335246612458885572026949286276101741257820450560215962040557346929764432072530223922024718619260320504859148531312209928581317370751812504559232200850014293932137486765088834617409903759867371300168325325335690392043050174988717269460052889771146544527133619945299448328554597138885018847888820887598013353148764890635630397942703848240264210847419218475542732945751711955760072458304663328404363020405957327146713261861477059066660831793004846726738210678139552154678868704696649965175735337677761535006316686977724581391393200745229904904485749121545929579767624303781671172768631469805996540340276864475445463302592157448553072687141337684645494664802736786334855747513191901595421428802399040659081270493044508998620801119922011451177099135182243424980816799289464726340034957423589159215625685209882902613234522618845842863919185953714802662103385703002526287276465594770025814019892018790771419692238265801458061007362457010512171076328886811766565434234851372036429205287341946895471276903692501547556697562533604384318036417937203449214583537604134466329904327715699369073435916137273995625497133702485969145189978580782169244845380086426338331214393113137026791594268404397535405131896663406248195277760938454039110825286168352859166832826681403028147297386259666712682474526950732938252940766580094210860050760377757476295643937911825093609929581475892821896976181133114585339363919261872056393029574467482384331885842499254279246995466041945039432391105861133999201474713870092966479232415233196600166970607201053726715541549166642800022984065318861884494969694827121916807008264340993211876436508973586087313463582036961004528417611974890011732089037690825441566050053484165214984948317286222619797534424626830252791063464347199986514300553468647070204436043713234346181638218238680871895611354091140093041223449145236922029334703129643699277409671622595289358855970724804938178536732528391262664338086961696713958341592285994798332958192533174916568764953423444459607886482840912350591574893422202650333483483403653929523939887745339978357420290685961683627004895912544261130637510332571960278278590198839934639563547044519685269638131834116511470879164730012622717185409865840753170684360275220084558188063629120117031936723968958185300120597070069889454889913107969947196213980056149379759608000457094186042809724397932285540249864662513514273887220532295702390950556118038418849310472415755570041926420424779969752161638103418329760030582267966727892604662960096297388607943179329016358846358660028193491326098128143298319552584616187266615263490706574764924050504321520031015523002880514524937982631906200778934989075947105790307793592096916079117542474382522392465348961861500526722672437736675302850016580656744646932148034869829486084787549984952205636816148391551933841495749204973710189945262975723165647414461541540499282058128602473065168727328987169648754827226955615967687771654247031180704883146152261695599292002444743752960948779000316176950312639127717597113580517777929972785450927360412378732395953759656122425086763342128662658396069593947239204058458261260511786954533519869928716167012182398006341690582064317785576094945300439670705033094894492229267915655757599881473118855664671798354391716145037932499361254225606471011357743152133662968724070032905439672831648460175664517492335248396552827471764432396903246721071121599795475631865474623829103273844793327327300105931711948508661966374862210225261903303757490099222890975415210078623210943233480897808581442853292163396064278007490735787372042726476129172954105812136942554382117568928954201370983158737891786856803816350771361480824181414091017375967474836030068453947384870862237556270765823180201202651911031769530043439538171450147803639059169173250776357984091102941829017035994221153858312877793443979572407500253900884568238316647108995169842432017893306161633114211872746092962807891397653074767775821630242236841359306700986110881686473323737913260048890984956121198373219189829634501576496672547344215137805475753202570569915614531327942969743100318095283611875076951057566462703842480808999838157478534390291441160915579282906756440801167343268416604727267835401984983784524042861332389081500201198167125526438430308570769516542589532621962465510929272385127849126973419818708967277545539944483206305271305459266809176545532048296094348105252168965773961761187756029509743812520433524515876943786528634395786020058064527326392857874180824300434149520471646758555799678168200157726305268015664015161147744356646688493412916583281666744311740530130874460299300381057261305207518354051639385602922603279523927829960059118397217840208783358706470128571625862328086490170190330947666818257760574115575212929608296592565812682414485415797384046262049950375604707752576403312765231448165983949486967677906582051798263029068914118740250776332451721886255438788313514680243800357777464326935364561422164957344488689252890535284398052849768736200576587931658358639931457512165981727033656915681403022511668650905593725137510118876299318359074146079789407844660921116246923282054984671496380941948884322952362301939685629327495117752525868890736090498222014448567829650322956955296332513419526318861314212317314990551410738486655134476933620724290039026470796903271946248497688348317867236247812008845284552855467031794636594656954658675002159236763190149969424334545086766488630180073598988052064780764474882213623275226171575497205411690485811541805414362551633398630463904362967069930163091772015474436196142949580203379835507018430669593729351369037393439572113539258366294096880287594066698651753256764588789752402570300678165993837542650531426096910974176916182853676898232017723938369986756250550053809889502761151507859969585410295207558254499945388710150760238275794083549447151814198687228635793163075480426005358669685567309790845989438629833172141253871165280769248115960658407761072570386322802182605900429902731429772615599207051549053386409267751348840949446589532182547998787283776406966847785840519293704090170384131617911230267020704094323687746723132857786210224918280316746295776237515499032038960507029216073267649437306909093936596757576822187088481513685377103244573593009651284665655673194713892529471734056085343629630334259504968509407534342363737370551324620283107364830001138009522455967091587468953556923773411718302133454721724032584888613267482119236565966731098332511741206031936345803130062605613961834173508776493674379096534369356034219169617656750733701169980944338969309516645006354652657878891798838993635829098962806806424917825431270609286442710208577346281812719476531746431229818163103410252489155182464857495550494854792726346883336428264857298377658525381911146700915558713114996908375559689531406262752312190077983805102604313685909708855113803597929527024146543134300039570296144390673104329370932103345745373194565253636840935558733114425801228702070241517560681268494835248328695692317932155261702721853744067167235106595177606616298147303070039843322894615626414704107714322769773234214787309866873616309006735550703508797680590132187542081298889336092375793771944019501347407413588700618818189744796949144084969022180405070984744854057977600742207462402588939894786390351163648378234928961591474020431135566637376416987694206182898583169635771134894891432137881483193121032453432733180848973171962042644747660157296242880606931315229783422166198211130376191132163634776322134241690586781737491383742745319619913344585051175724988393833544094447354435960499541974841370016115032931126571635890724681148061770607689195627553406819304437502927640793582028435941568611952237585508576281077047595482384140136464810810191335023192924667586953931109795187915387190274670179112264564908081264684859028875218710035832818349525971006445257273877660657118248933340421936875002619085037039717804354660736148876478285378662609264626356295322526220374723023054013863876330973588717252926209087176202046630326103084510620522782314454415770096113523561128154457090897374743061175546200014942944190633337212742687812126334277489644295003103470976590262840333932287276990767608754647275181842669900990802000248176839589865492323676566403041360320595454472570357234051529716552470835316089777759238880695756732045224822466340396089984434723650569033297800975060771458604933854839794680991025659486278884293995519398552254285933527287123546658550434784696675112133657682598157278296869982583745402327783869311131492414929167243545512608865563434754935247256070397893043781630369578374992011069763400043844463476706043324889355548888914378587638551926032601661433986641496995715100965052174801489097741317072361055619226628012328354964834137520535190338889386695630376309802858384189470171456398373317301483068452533299529955994876905538600933146502356197379999812677272034462507844096793676088865179530805066943916174538933878887653080742083889056534859759228061490382730755397097154336480907743922182406565285064920528110920738066820295243618004596369757182028223069280431047505382148690381534140622200584126409533873215266748239550831920599121240450154199859782856812644993244734708942154253884583583663021833031427547863484049768713442727204312862435862522685262587233385106245865902586138901291221769642797280367444806445753703219300987457207397880376504134948666490788320818134325815544383120176530639166300513171234501793560728347905985885423708176589400955264228479629008614657156223926416807161040032068722632008453999281153734117591193278399796948432688429019903276379434101032651524246724678395015988082361361156508733299419349579688185205227059968786816333004452550591646618059099362867836088787907689282948413440579583285993970649583154995328313009333090785895165268981771329214520974391268001844014072306471619182202644647252651244796662794898970475163969080416236125899780133923422975298539676752998398199186907305326907211740753495580300358092260255694922815786945394027793117015174854919670556843229439080777427873444992319675411070074239202499249110903487421584975911702549141614776565326786231836648226519607889391238175658096488936970049808208315082805040865827967412441997674956249889523092068902849611524604450912063193355530163965041905577777218637886626434400473540929852661484221591160618242573495028794363590506612189692215375274655878451769513793119301505644368728500043877336256869655473291108123857547532895717795698155270926194560231128015006224566911995371918117328386076124065942566064883237775861344969313900229096223697936308454547249036639642191356027886369091754841555484455311378542451277440075684519840380399403741465264850721971899984122537079001776007513982652648498807315226502097854031312488551322681851861155788723067429731609036713195773521422646917074339867338740513906874165757041878381916497227526117200567630973451661338375338344726223051799310980783224365941597958885031463673540560855032779692613713827042049798654639762731706792238502183175888842150252907740099993278773671050503874605792897535234243157157092281124651966747532429354965277379717560178623042486967822405615042725938135349351232397426067950531168207276154493018984671950475809328537330853515414380442376743791624003022753063292371725337077076687878329402219730289620489607609917727545841824159956542281837502093448829133064644963251502911456032928334005842936912789873451419708381150246421102106766417483023132978294775259318806220807826862679582786499203384250113113028750353235889196981070450114837260958277968350032987960945264531143275731700104303591666898777626902550650184191973105322926270175717679271934984896766113087622273140510218685583400414073250479641642366200174811354275135168280823970496013105372802742019571933270879234133363472568143421669514000260761449434260513836961910693698562864588257724347061360705133305568515253196953458206640893094213965932010856658936545264031075823928888909399175309122524698605231268825170061236625846779286603792250131506175250458810254283105049345927689351652176352928949705091719705299034374855617407234020358331140915907947092043587830414458302616299369543297274011063398308783222961425525891140675963100003693775927575819608148165416196416581174431412449295176036059933823444339137477043168449144312751592024496997074095171292310911852235677854215790835668648642273919518667961272500160557289575520203193167830490501089245287036249818189274145952926497476497371355413061997853773374203086837227621920720011158453407026650016489896275321170443485002265199226431525164214496081308680272789932545846743383715107272319575551880900451380194985279864990259908254626391734957184530245273167524302689271394308890791807119551740760421936702193347970934350028329098114336401304324456847382361649927198082146114989128122964345104586852562526313204265943088644212946924614839538348174930706641608841792304020841659205982951794450867911253042805330930783445466731226653316582883537142575458972738133284044409395519499001958577952571743417985120696685834038977616921502355303792801734446689611797229005335402836645030790867193763368372949525291877535683864035902269940996744618818913416017847014772802999368038604546475168508383594428217724206816036405440311757878220900528095940069616060884454607396792148252402258554270432403204034543190076787308819283764595578892786600431644796464775100975427062788459846352322444927696871550476626480957584509689449801287179081973825807222983035248078688756106253213893377436336827482860907716733225629507350350817663898591701052769216322698355708585063515319672715564914385186658203240197553837404919144712539092234504817842145462817372068105801308630734795257435781546666307670121268010942874961297002818392411882148530838517863087943715182536546814706107297965925504073197368231209736802599530848728805340892866259311665549618944679938089849121036821347207985189271188042187566222316757992704840729212114135529498735476125117060887175434782561782117310517881799841433515634495711148620485306103011680209472760471333162675304873624426766661743980432891331330100087492511677588177679374082345928053223703707463290160554767781408618889130331588524473365542320818707161909017509833486872689945056008306143698730379669202824267061394164670103324425596229491463632788294429679358341467424127816971216049544339659803723292058223170114820836788775170283152138927265103137169123374627213392349713147657323169489576326530425601281450613127879712643123756087395418564851967907127512463395512302494487528804783281225029127471663098867484705864645108631854322313883701787492226057398762284198892980645429667344077047376820941274623703858055548224832145696550723584905063460586156451181682616438023211042722002392721239526863242114898560746645759735141391507099007686344910017309639197850428111841921045614013215602624041145032707260820025954560332369919637122260949026767970956733153466695216874381751004685500304865436513859587793927917021712570448536777116119958403509196630479792222196368757511743518403719763734550439757470045304232210045731981282355125361988441985410192808410958144842635090582699248109468112493388314800296741474953632163272916096414964358790240870084428096534496433970933061497872946864276146494631636744881132639391209410200998387560218594573350842386969873363880261652113782334010199524773737697887185538845225889817076502326986136804230083127769216624903385841592614832258362477499778582390735786585593343570329591871548846879128087256112531283722095965487903676525752913192653047176538100504415052287913052704901980587686365008653480837676291916691906031621968962043608010533001390184038158343631368022724274902013330526821109371754386327858067838614348059455588262930990910546252478841756640888143668062463489291471879175858248789758243306571070421533185170659233565500737665708987227541194162770676103745641682923420400736949790113528216490607484437706690006142489407960839818248867722390676038546594576500136889712755842087423741512345939545662007717297576111376535731921840652468703569856457235708746159843473337379756461462216057356393120812352619282907166397010659468406678331331483602377079043934568793969526089490397233920645791296377931992885806182477031211578851164261942798832835118601323230991089549625857489966892552570072588805386592369131169031988270249255039205314267606353296979344453029894697697478192218987039534300922979716364942418776998667917226599508419936871052943116651959560047376813104345331182927878162024500822878870569866680570271049053708442492677540900120222919236090788418364873542447487564180226856383242168614755306006849275648115493051229911392635475945771616230275549092512581947941749566792033110677574771112807327962732222624718528013655087412410370471497869870651898643741387254494069752148750085646042858981734515110314010859279108802656834116582455969358038209195880124515304412102129991013073241183870238713552305849528930528047363428736053772699529497210919061478034623794703968746763817492331460381580441722185270126000726253377091331634749977545001271068051479098546146601493136606270226069501597976656044764204902105219383862787284080604787024418266006913836627829499569174852241873156174594595394310901363207868615597253206006067448930537087315675317020816607648101941316974431012916452449249974511156834907858936798483054061557501243725311413596336343772736614357867860823280283009859101812469975864326464756424569553312658396769775421454529764549500783464965750304409909057533298882579740630170125780488052562036055599310503915854059342649927691593496958398998058715807501928698095744734658786033687747871160037337897173422113564639648204162636064752714550130384752549158480944324591390313081752424294658612774368812129196228049702367251924180925981310148789556389108338260950782559187585359101333452851182138789094451347001559823048755213664766454992735475978543018987077287334869655870248382016212133432488788490725439149350157090905176014881170797442077529562905717252348284919493120150505451225343385658347159050835754671438432499658269089369034256987682264539691948792814845086155584994551387247997428176179170513579500431388348711691564551894145183902217831580589138195013749366883954558722315920262685316626696935953466755006905553257238236538382788173968986494344272678170080979573469270831230145646702548708530852953350375099089630049304412149229781971954418487333168363245094149422803787589289137500621068264455205904941711454463336672298164024814112655481561714624967851342273481197976148968110526305911406977450535154074004361982404681068943281692552547582032805007709320928581825440317709678609691964229249161881906089738666777021645649306350362048545514043865401118722939565636279670617318337657433003613865091973805199576656761645864133268715078702682665762406078766154231724238975858538354573917787768008968929309296480925703217940332797229793599751151464948964158009158972146868515798983888013582907082633998421395502146292954720750168016235016949167661009737169583827466839289256144505514378378778840624478149842612386261102540772071827642750085845454107201746367178271054186353565432018312247146732258432124587272348362234199299429168408806867997339259701266570032136309725763770509088229547217347477812210614975139696053385924473664304756084258354069369122534090660462361009995776088986945078128793781243621081794534736281350233494999025104169247676815599755799385199476232575833557896505081749927257874823812090767251253375613583957335537533743912814002290269789191853420602565114689052010263118480840556913322213072186411391176787984008294320371402400851556111542193738665767928198919998835579679920048938987072394558422624667423692531707210083635594800674415636356648132119751499797703495234393030774850541937686561379214254006836164243940454739101219379550099704788011826706891060549818878450067006417898432456053004614105812863515924048447098150622507812419344068382336726622620975851811616147605266505894080510783122896906234430029702281327018686308383426386561630817661362632496547640756671175435834671841163468159266342318126178813159362025716107311877861258198256640280510781733742062070078571900847633855375732264729523393882126968409125902063769168099813984167942779288803458087315805909241852743046918384062803383552581894127964693868142957364461896767262104236770618416817480675555844974602658610895219860856006845523258248607453132715157989449706984772877316534225141753444880488035321490805298512720914282152098542043772872156453198732411773004061296474154027816294909591715529691724950423179084531518445725197531188607129143430755885280843794201430142653821650388948901278373045752607625284793294713942099335053955746871230425584993288048744711167760634682209005893385242529334323842563907445483244583303652176320286519791167121445839625897533355914570618469430874925294936207706098996476971886145704977837210496477237302682438155557251407448044789053903859333078849915063588713539937076012722991469546142574345891788743947446153871660210921553316553398670281745945048644246250835935038683974942815512000257728613238179792087653036411677759356685220452760687698422772472131382029852019537654754194306803580177338662685489003778646764515741232940944429219877952980628466129385995754683036156729458405839008492042096974055091657304843479706638695008387892021051717892718421034202618831218814278049288260489598652838794495018539118464637944015373817371689800367253522101931755242652158884908759260295676953222302159157223573927485465204318784155138506211186468932221361888235895655407586475041968673013302446274258238164505003629634709236312534386051440643252188892085819767593241473838068631520299130820613848302070543881123128016190949936633926045493162610660002722303389471217394618973469495094445509073870972629504673162262200255366847307723562098049063696463764728234702295369801195403218039425172970947819773139554731454608748045374695997832647880195568585499557764022191278088859796118881885891151124022205602524194253194384817041265491725031074650304833139852172348394070530559988257499500754747624943570828598453603742994912403763889300013335039360468105478550573496071038887810208690134120982637946394305375230677733480792381657759960598991816820707115052174389507984438255039353867057650081634351659144724642109440854394435264850042535637375602662473351157481070616729560897634502264997854750709210347921947624712846334474979188955131059293295491246923091825094319431703601125588044354341755077742428902956649039015473765888162014121295693887441836292770804991541865050640357254441534367985806471291981122677999901593583194094242585378891559047262368455827829854060969677777561025894367737275786962112273600031302682946171448708149633954291878367617892219487176134749595327709653340567337376356635778154396816464613238468800387627583471298752268086257621213335597425875460767347938350694308473189614056079997898031712359567119091916023524695729178959535993388716000892533698146524017205994475936032942553704162305168001102095224411515695349364512259647617312469773195977084342099770191384649705805146954677258306078113854854743417141035323771774463035060124196899619234786560183188691550955381348058104154226947061185418563488060960750175438293477339412776385371278944309000409972620265277262481516482900398895195546734820522949542516149334840404239659440392978442498336183215537081293426206234222005020512101698458215046731694674578124210611634061619850473659862499792655486422771152339628018030642405043137494638683041341158171965834080037983649339501015610837478531611114456608544387918520394379340626898000047076867112719756220804408836591894339757948658693404413667272578580620397692185659274139505297482077349448446947475693400214318452686144784406134984540575858037970426924523942957367429941057404532868596077151733045907425605593242770835475882488641349756711950231950031961185792934891280200362899516711466067937999424420497893073283687499358091322192105093484111537461329731940027309975407467404808088486905881505749840602747961207885672594328914508447242672008737662257523527638876896682815597765840727667932518721118684049192213523130868911782905600964598069254323498145257190047232969165005722275489419440382136340986913935013112761504433488126805001217890869403643913800587330104639104768145277828648414369908235554737352016781228109125310854641036131591924863693465428600395404525564461021732553176763978511951441571957618398673765647144817164723504536190111410323847509146010223317563544389691000270676119998761361641112406668074726407417384489437475727832735401554577631044166983732768380707760168997968039339445613620065285218667922906742472953909198749353255715770469282880936694106104115087316277208187010029672922154647467557056764425369697965820038016753662749614968668975084958617539348147962877294233323819269709226432437439491856849259678913653441454575575630204901181639649152774652375056815270139257568092035797269222896072042111622050960259596916844388400643241491658305133833065078887039807542046582019654742023686276824251248101704727509689961336041403083934350062982325997081311137389491328725398593784199832507165800424611813652522386135098214818428609319571813988247538936661361194849073018952740306765136353241699379424967132541333484852561550367520446593340760452700863668943810688818646090958005819623403558372817971140337386031299917094800708021558089429478751394127496225090604964603871305134502134495411792285425503356626680304297452617582591220918416410868331076135302792791207048421263688015403998684949206113241320139605653166872961930967597384327316223433649225182852135797409353023580215734308448370969313417302772225205294680305115795366047963523244478670849996069124859863690143101908425426156786778905388339288773510985523229541285289574767195405614820806098807248828545630094534369585398301441600040391228927512596843159781921694160377540752143557199515186344652250671548967510462242063269188564997049927057881548493668581765634008006421795824087420798235539205076324629260697279560183116186581929822621359510091086595833623988237185107220747562927306854922791065606214150898207504033143773084547158241316836439211250109221907008484179065935951394485642347658090280070097145445761081134570578233922411724505284889274902143182212743275556648551871310876315213115656621462465917946314204094745546582057455532947179800785621327142574924724067533692477079422587790444905974018877691072862812937823414500804915902110497372499323801352554927139072081187077617689116540534617964952840207429767282604268988220454130335025772035356825639642037960974486867246229543607318515483263882065576467996624471437776936062433478140097695617043367244846951433139917469484041249705430325075886048044974857124237854667038350768516918785886097019809434150647610955236928364244572926775733908676678551408962848562058263369139063248416937032485731910889238301186061579935608141656131539158835172905467226346978262454361233616516294969376212702632537349636637820425748725661600181860151144898286318361959407611816074017184275040795322394407212603406726673980135847371542381437013929798256857699085050239573973823108101918830558660319933881980885084358450449545130841010730930325996201870318975323682910190301248038756075207749151987297746036198773439155699754625487028674579005932589624849404299474130642727685635841082450020483570743844168762152111158618888647025240603513021877792572037157498449551613986700678300769325383680557993293415314040338106131337204829472050670256887933362542522686483414967984678364309872514325397791810859247795911942303441281327854410591130319874950786285344240581658728136671725072550820170052445701147536597086638067628784537980309616984358828202995613818347065415432014831702593605743076400824779889230855584128986877931468791675973253339075087659293703008189596167795450750566106839267201868006486126743638605593513963464785893848048062452658468668172170789766110455999079357365941925109947688355588043821701729699831062761481387599274493592936541531261215148877854037690033288656299189761679227500696877447315248894133033738589122467573570660219675981549816695503128944241695057920508248048520848717704402580930722028649937831680753280103093076926106729506667012384935492605641348989496971228828876793963245362377794191239881335475300281823126021665205244653133625370278408530521323878184990451931106819577063160671052793263911713648514415457253770360005090724208965704806539625486417914360827408303323462560946954041325924179675619185620095157749107509489918093051408345470090681401579150372353672059279052107000099510615255036213914220273040990925939994734275793551524237060100997512302585784149319930022828226844459045120279885837082340307123835729463660113908246323171914351956074531611388373060747447081634130895876913966849078013090044911966163500406560981475890524786536898814774924176578078251754237593473910957626285230470035318496444740683519965954200083336421202291532424733869453638926568992540726994492566779366659237585745253170573715288229799671723770640074402935990200670899275131451418752975696315399862482588035209153975486012207547697566719126176446330815316320634282361777461944510419782313438066057717303220147593617083681336441807870107476265854217028354451566335098336582815950343431027989664576832682939949033129403353805925123395037067592876262453270950741279892444835478416785802944825271572863467396621398951914023994943185035995951486180635200562443110633359361994354350044303871906235235425156906831955189496716380029601476174772414486356093997691808111333781094546511904156646827463485800991047925132396375166617579138064328768781030269853282658352718808897863457793063798952564097088388482536716601920805302488051746321292579180043548514006551724373521143273387740475977549066909612557847427018198060130236496872838892738879426735122296422648571282078295657452661869130855235961773807014225991730937789220890685116723029311391411949077416252809699544420178734083054199782612708529405079288054254598343606750871768535587266484011709683556743053660760181894280285853748652695500435004707328120562465775702760508848218036656197963107378029319312837424287903197606327723830795273804042937637474235220070001456573215015737381916796547763352031461721102301069902220556203083466221283603177897050976524247706969183570654793806105453291774207058892522763725543015403219357338085715671941818736213944472266551312116112985307864770029546967688033787530697229634360996608114901044608155477522340682545788364409129783828681794704356538909960917960174384150223448576728884928015029074230442637234304872816619410091643686317587800725923781467049065675635228542475329826912297624724561333065095646337704082087808629442210056216513106926751337542270909361395371128575392441341601522258848487768641656104849912205454207556082476602731197174341031262798093640876487360705097358456076808461788560067759017773896078493612161868151675604791867184895081771972651397840651406676351734385399264574608343937977443165461605680538563322592225792364305195401123674759099271447189108703331272164930839191210763170321117148720764698044173431331712279489055420874547514586826817041806134778992319579675225676638075445186361486569236811860820482699557523837793713115757180330428985540300382308706542577976020465243017276401823610519431846369905200241701172715845970474626733143583605442345701416154117554572866626299150089284250177884337951529743197424947955996551892682579172920125297961976505756694863236845651147118071729279528019911062925687751696268557722834199938766372135532669763378036870102977128237415548086569446690872124618957830384407304033764184829674646523095644997258901067683909171380027954480478940768292751223862564399528185228183322972187872342023903203675142464961163186415575929149492464914422462160865538247756923758342656261551537330132689377135134819204500161635257432355526142115144794938140176125940647113709538069139772434316657765541139735926359628257370899550393847840733762439970222385564926138453090477266323479053677950066459450352339531544917981780697378880470607144131150480650838967163468475915247770170452921908007711400280042290027288553900520147956658573311179198975969355887612527722554363926291402436973319844193644863748489227209866090289761191539221250356025070658520187965328382018587158988873697352709748784363433090055482026719149108761561026892303335052796648763289246119738730106489011741178350008606988747456511115872282627418061840545884015686421360270333886323682321350946481250485100095869767667157177750596609142329354521069976184067554303427086827483037444453274126693066390025807937546245661329753610579119645592417622923270335384510748363859982665863993482974765902751487389269795215199549452618790731853843568516352663038088485574345813945356025545295762634792196642722235374445884968327086474399148422570502787211015343181019979561109782355864277146612889351258529779070153332463855173563629992943138289563558106056408293378009737311245079123108943597630396134137712766368039926440986997884217156935829818167583923957587203234379335244838699314160325627179453297921318340624308983545411073799536406004331676170224934586221962870835697440406106204291834310507253152118832220189109422318350583727833590552158432495099613294439325691862323429697337436108304851869938174288567592835492903007107204846346181718345119353141455363983155090042488546245835534626762160892946750794291027402787030402142039116934724910659949331424733416875780273659718228593757284045876533863492638576994317201687718815099385255664456265179626606455672864535644864034995441297065839313257895906163566595233958198998892460559426860697043133373058084265915772760682699376342928051137269849027034137431621221924067585793929787743644014349834233586120709433007887348501548683139724206544952687922327959610642004429353629307247385200865186561577373003421254537958205437497942218299568288360272324017070737050934059772264172842565751356811070642220368102987688597599239855925549524630573091997326907791342280310405245441719056041972484660107328746767637309860433516654592607112846123843926733989257378225453535152156997115843354204580516850743479574263499888907979606176980143864540521261264965446396853510763978886918886487237932109244055815332386659122495651436608484878612063313257503661924024317057732683275244628679438962476396927434563982460195948342886787390985961349664116873820174304906203536855478582336024343998822028433439894042009171200308855389408770331931248222292489867729583823185103908948411818207471736546204721016538523136811002763798207742697892398592809927391557457024880303471088192843059627753312105939309241784352185098691356323941425806173857156472283061550063114195995232151760457167103118905059668344959676294637162885723375568237858995063434979158987562127826679261269169044170398695795160840834430990864139123975366249477012180200676922167480377199898350185980428812960195020993063517508196726910966103426578800242617394487307637160174854721179213360686334972388181789878125453803372001363142523486727022024729820709929339582614705762519755420174457773914546603131627280867947854564020302697396425439641199613680097704689731776502107640771227350720467273032844918915771778129242412365595723851133389959622608455640216490503449326167632897684801041307990203726144433890376692278858164511404552613072943334330755310483527474455826315691618770222695761848549185221858489887436062241836650029543882240346088363720847847611427738860292112741538435173048892235933677716560154975035822711689312293668933676417288547975607085943687037161309687580557962302936752525038167555965223731580854189765775809420338546125842259029222281209345690059293351145503938694235582990934631481615419822663276049094044490182421803269679693932963030711542512788931171357304636590958286290136324550540732181810521423391979687431289976278164230154829232551186003396219254937067710040236754850305633546913448544556647926021030561942493424864605941363665049595292088403380016739594362718689235289154841162355327504194437251323886252479686123847962440953840983653848685153410551079834931163798273540024574339792142636090317884463978264811055634776198777167035228514174551268625072537985836594957597237068825115434298579864301810350135645113496275200422009076873450314787436449425205711157377255974448123551105217780584832497548712351413564884779721788502111242774620972129708193545587264099784322028191466844067402522148567348660286288653726962807671367572607296191739231545347450262122538231606288275498685160433374634124046957191925773789506169811869178504516392261378544301882434391747977905190219016858241130505885680071849296920031346843054223635438345721893880931958109492299233328646077934368720612495473515281655528190454611760595043114075092714691243763411602697606033126372475067556205230070431524034231763985275265231414360444149988692402948718324135048167029474226617304949255384448807355219070621979202288984518272269332183879749363554983380933999770006943540255380666685806017689849109143033851860377201092634941955149770025684312360594480003797835421130781195016686709455116101814585825107115120745258974373138512527442953958367404457551470114081691056571147138282277415972804982699987129771602156132754830252749824123725372310691771852112802643775452371242458655268269609321647084633601921485941383001635187695499404635945977194495761668654622294343938983309883727166757899332529114153859242523796032060621987629051739369650704365821108293085592882772117515394394452129573326567760156305540737590541375207261501817734702215687591569388589559959357047190250843234163349971998559783263169111859468421606016004906705187697099645990200369918330540673499097907524740463528821116862136338081091959346104415452987479686442175716604900740540210057635955996521063129219116680670946187325876592248475062023580077782530205081600725960150344132296410880649117040988808437209270880517357201264442948966740875665465534058363599199190066813373603264576358131178804297342546975128250690543166384669670365293169748936186471541059819714668620902950860860522751234500663615768133117158399275252454757226278655759595648399616956054811035317728091444343291639633104446039707458405408436007153301787478238078543010826186778140069806826842320858342893755831397731213107738912656689459742718145171267522943271975793250223011736701013874349128297160049597155055500257674806524116149175813488691656864122641289207046589110730046355592729291464037460401300209121664140516031878797265308493825193411456640398341284633706770010158909392496177603468797658342649992159147085568165191481936855692774535349149274308669270365128951165464907210045381367819349654929813198987891707784245202113129383694534484366784798808520702703661548218033537301341007805367929969429055186134921577457257201960587528056278419697730843572594634409143229913860039815651594702899155648788611649547954719688401216512806844212703269468000606358009698997774384938228766095101147253398260305238545525953592001341171958501653103405518194078947795667929263008964821138760859057350612188188057068268608376106695490250921128243727626959142938220097848464533891681780391308834695007103714522622505392012978808331981120155650838052930615122374924929203347335865433925702651694631925973838508104493974812287752425370347595377359247370332987721982866518654275255970979821113131802947511030739263042539927290803511386224210810169446070382639084517994929521147783634027700153780320749080325781872441680878978600417974461740354826450890307148390629678231094150907090537903991229317165777527182184437884985260570744550063198685711332441856385273545731817366632024143837113188807114092468965573697231419564066119888436351530418299865503413749921994832254227918719973786944494181586032516490699645675307177665590348246155869962945902470429162936984280394918029693905898280892351914591617235338292503586751424901231869257795100161487103793523413040474447371840785492063670322502532901464978864849222100821148924739464042927632990164934213675626955780893344548886280530584258754938949132932746303328793772078555641751661364322997646804852497504200179390796884570177443795562658351779289464516116201481833992748850141146231881812344170667939653124593879042726823223714944107292935637248093322656098169562321211008166767178971816786030053431274734965162456442276004360633815682673333127191088565418767644850663462206112649655755964955560485203084014521895752796606180174977985876690328622184905153516383640191046024497354434860583994462548422830380658963648248503305918429252012922038076809286284734206955419362414888672826662508055733435387212149508229934062779423743106007117523671292082829303807168211907081209368990743453589881257371425850362695885711730239557449595725180307516631989668182746158303465184873601003419841906524457677388529361891297777412190117886534915949293516067874610115114984446172699991828775946854951126796120195141045957912568797692163883759238967542391543803732346379168417775289497685881676673703298977294596090649650860566987993060990284383267610260733466191760029897221550790948050346100761907887849961845609463744320772796326747860536214610163829177255742979689293120176881715218721734389608862532416478401571088776737611712127911831541012270508859257521810687932993251393087035867174397900110400013400086756203845637662483783995286254126158672075087957988468217768001450785200842989984215768955154486788438361267667649778061059201998696824643648653347877172163342499845058796871649784427696263313602490372873881814129802493578002811026796257419760275907743630667984404203575972442351983943745454647821000968941877888298013719344072704516659890850761858769076933953979277718070901032375580412747045909506880779778055476008388004159136020305617846583594309145529391636618809363818482460443901356860917275822099792226859319941575423053153260203405982959327159654529330193458613963759956766656132985181805952268396705328676532451812187091072726427082091031816238653187724464268515647675057521323479536777243830404935993054182913422638895695658241519028125649589271309559365827400332992462856168485586814886872604697517479998194264250539622220831510465795197187067481291855076902482947272707699577960302392017395103860105045032908764843083609708920230000755741972432840579403976509920877884547844025552497637818938605570183297572751841120739840487064657351150403461727105369045945021609570909403659302550346996542377713839235647307947291398839837623800359185498858287746003738581749315523759206241636530231204992108701636294267584836875564022376983685868588623475901496180990801399525583788847135861715839827699233537198981311503445550766813136867357461424832134715391546853563765355298096301788687809501706047104431252079379546284817820868147978123973484797080230257054029567445872968731729831990294499459444582109333347052799455474469498544436319791579563394405474608323109992820434377707313934411708318810327380377646796123462361121532683801885734907427231358267754873396507750050862827180468205598946805404676879170185721121411731222228361370936787983691547613357642073154891630657250819368300273899810216437790412722420797642046236021784785002209567335996257472577836483542234248195550113541594063756080007516570805768746795858047042072086689870089726354762804898164810407382769096285042322137977565397411118140097608239351011263557972717607845408432454396962689991439983998443706695345474455074783977758906802896428572624344522969991764672199370762285815613256765661749545388444013395802433965687895994950628870827736721975069712346750583292832111259278736705028884096260464193844082887093526320412817024878454161267060908923751523819660033967204306587579989220878165432952656210119415137555708556262632882877351705082519124115709091074874891069375385854635694527483677716175277523890611282493008244891944186409111093868320277253335869754991268303154511442331789482928177795947492599152669935986124783087628352895687153231831636321320132520568296308705852665737785464543587711296720074034663691335490552203762538040774734654397743867695447851744502558209485957564356371851199943426232606900825581730193580489679867618115704520159713669685305088343272453518126158109348816121582915278303252852637548185832337719394345432857799377813312829366811641623875512556469114829381812264228926048457330895228426295535214455739250187713011676857413681372468164173009644565921973418905575800257319165292089412808494854410134284092529265336268746838735737251062647336141581190978078412727974306920064950669353595514996363858520332578074094008662297716884286610967771321943379650752965212366073129503905057335942409335840742486718847992301717828401463954288286584317137653972650217026024857414145015702871096612185366460598039577254262969311352088989508080324153881093826511935642233176627504931338794692748996268167775349512724582136610704968868157336633978988929957663985658947290312441679915510969043064284033584860655937849444895625213274804056865975523577961730604101367181593083468330376841672177532665439238166586677414485165784008458960079163974321457749365751954465227537172386684844031352857626663460173311968797715883001646407455273266984051112063189662481143626540169829747410451028859750488085226717527606380316291269946890794963430403753516877417839577169648903996761248795349357262210311773166460629936926953740764267391614768527393910758488320644897467665082758119636009730691728692610565097948701455072630190199248277889232205202512793118680211800489098171865326645386430726651613771073726271911915040184274697711252133501728992763660126847980581145081715276267972082847798254711215259949577288597136304401819388465371118265658336896806821681095304212488867578793166143572480021383148352429954314045741250736845073112466032803441513613456315355323151090039947520811213711133766644579446056387525945423567360155073717935404704090038297292519967308050514249868995366910753893418405803809295002678394303093610541278931281585940918842388904924372318347516169080055223556884874595096195180513105623280033534543471993965515699904652827749237135705189471721593715387805785616357017029640971435515274654380219821685359838819766940723651142401142387332725005829699674383551551664355103301839290540142587363702175354173144680113420147814081245249396816454960537228241638536370730691977901587828927159216155389276469094104786240161775700795600642079630360532567717624435304777652991976081421356979135448743669445350321052509917031386621403861686724171251001580571801110952019853881552810757821102225124676753004485806421491431247246917593540914608322284785189514173640330631598241818881439650836606799398276254997057814968451545465388721841079632726303296923453865628711279934385551233459104920785151374257577312724487004561865162936728659426503582674502243973623894838723641786742159608465890617847024259898295529879748958300387858700937122297727208417252855977065914561360053697236507092443286689809307000278482352552254569505319890526735126777552297328848629487613616509089175070294452660477909623146086242085153333346272208827590139776367802882348728597901592473858392779519851762516567968572976655448793172396633599855557976518218790440759016666709157401127250880121408493851980440534563715369258265724548681768890734851918684797062396743862664122725644602636904800204542185162156529070321265607793580017436559436308194302649291622768535897165032837317763144458281875428185002544655774979421318481976356075201190560456277363306663195792081110895652867173309691205087239972496732697727721804661218151416146493595783542409398446836941412416285308809607140794941571744319917718091496495810151020003092607649054544909461142715665112638370280460930254338080416883115199646313935991880089936042374655688474358532465210773095258452893868417656967051173425943159529828227985569439834040413954980211939252546334127876317887429406050550722515593563645697348373737825254339412380420468735899869320335093353187222990471146183645364846224485145427344653185264500248369719106753210588233941145298868265325304685645103285355917843492165884784404381105039984880929732999809858894134611444761438167746200475166561166265363830503595212389207089962864832561945693150925720743664000643465688860726324490724212308743973980223606362741844054824949286709576501541426297439056427275131300288235722099038522100605033358152258467007193259673855053906992925326980747949238369139725165517354750998036855365042767053955477604279522868777065292276179873130092950145486988415336241100708323369497990514341486474867552087848454905201276314911546816440253331235070644561900569177026741770460459565278543120614741631785705863062876011518692923785262956494612579339577283555086381879791638197700557833138449107798721932185470945610245090321962933021248560348094399044109667865945785884344408771433506779238024125873270531688410790443505752633547887092400380981477452352692871008298340317297634450680003665492640029668781798994691909555244912227963504572455648467547264690996665707691257385786674742632982831864798952009927377938540662650356847173650611208211719737091444099342181743690109462159678379894927046596458317363198276024297675545363874278875873878246686346917554292382976346184990986698790371276641014831301322148672318017679204155384360427722668067292723294286739713815134503288287302615756012448946389162189843177880405481977096754145537794778535540931654240104198693910622525251204928521375010332626245105652979502657715795495274120924389439012408767385741409930066867710327123620636605402577943043120345145505365419165245016135448094127381684202115816744675449530621342269642668124257615078778138557849729872141432872075035859674862298566030012480417926495136617995417523462939629502748052263978412042818133636263512063298116156464366641728758219762546576502996390013476801867347865861178958828737709877320906131337617575466535577199535354143327078501404806155011073666644833357324573560755086797364676953457106268315650077443813017559583639907879992355448967875025548424121804214103490806968562803526904872975785607762834283154664797557402194148989136224743009616868625300576468030369966976453047737770893420637199162045467044770154948896279415420505472894559730314790150897987273561878202278165439510656505080786564344491259095263539359874572067350499855185935307902653362560644426293174420793937956725364332768643005310278575388956047083478089427811857038188345991309482108670902508516641107801170875069765522680517918575107514353020390149258377341403740975044761419190450534687239484562178112375803122296210246500506648079100754806514430778897880775289184294930226087143446322620077023566853649540259586795177280668476705900411779288997016051797596982277298788580770881526040994371395029685559604704743319997061133622671802894635721118807634905712779854608968880180981553449111588789414504122169440929974931152849489083931625494507318000420549612236171554961696233872166039405828622366732482492221417360166543448892494244485372477943176850987048077488793161073969735644775429073850231543835264887277630704302780901088371027199644513736504464432052521076202368940868242138133439019090167453239216310808634219068801566635647096224499340287304304168382673074127566543378389776611176636102760691030393829321324559284155269404432947828747992288265775565350602174787029923516732249153251621543459681209180665304618399829020936232639453303576814789252893485732615350393634015632954199582266257399539861482444326945702293724465824519936931914724060540642194539690097879874118524259123215307686081082586940023658780785220470251166733070817584322318127056782946791861459942254345026524584964269731196349659177856591551602231443403756849593954450986297431487895815639013453086018802797381733716315588727763442036652633764548502469345449221730997993975812187806689913683063944808368474930275363234662955088448006662449681522928362002089516987619015265825019318940749203438479756123420491269086486249747942988541691378320687192368400467512098998964756290802940399970974183146559859181587582683482099422074647427670889210527889612053291930574414558711824875848302650655490437280545776283731042318551252070359001675990960421723888517985505606798742274297889962198223583564502357572196973365259842619759176973909189361493589781401681673998581878202470436106067757565029544403213873710451176904191402402655655653458262129618702662141668848459993371039666979922953105512140849908267896735177866919424385326538142301558021482708800872777544426841909889372099695200232679563207915672569191515964844354749472353097053765049504493982842992316681419370081460819491346599353434641337935819014587939467160374534440785669194053169325877784414278900877739779366960100325418474521782326165039809455853627147740190205650865032425517440389016332989311091213541041925716247703703933895448014030123246405020358125123263052069224322906715673538539017873139387425868858173840276434654580217295670756926662250102524343204500375792397555167907854809804152189206723759938391179887868070763727579144443472078070325870304872783121669033382252823274873746524471681551404612254063680038244501098827898049037593083256431496280005143672506310059743949482300543987106963129657247263843058155873807052155525470880860650800387569915014531156863163729025573091405784636369416244208626865566683041335790314215834382292308881878982323771101297850255270982419646182254456865521038731139670244113307560981043307271240623497065874019471580900945666911917524543986846544074162348956373255429507374173238404151865335419972441268906038618333813601730809049382503116640953816820815552317579990649090655396664547550106815765869554890460499670482100554053488135481665155727416386951663128128159857860874561126911905572426324754955856748911961595565749507912522313474093574103835264287603848969247975299999640771634171386264790027135709765803298495046082445845492569570534989896840856284781287071291740470078566902935676954636387619866846913587070912718017165513417109741166264111678243193426387030272160105300261473370912878792795559631045794274684857173476583671033715873075442158804032360743460025277118420985411683845091405109949267932211251468427308481081112497141014250362614952815750811090368051304407672470189655831544911426116513756417376378867610295184816647381170217450400695585280574657424159678306357195908313407762874326340250820482189485478003313392184779272553887469426482540947049167814633064818040648575561543106020591923900871913086749357858222332458856861600431700901955391250294641401370203176005445701395008796993232900829661309201405040511645364629176361362410506323632382588065334907294500782450713782517873337118971212774160683561567102052479083768613486415619775963692422916082040057331832459520560973850850259754405618762255497473013971138079784637731258895600964810836836093353139171465220288410045174328361925434306983959258007917122630391266499557355942956122193306424606568381279521431088854795299462985497529975245311210489784248247040447093235238376764166337670183841208606473792382321810635795001504932533988461077527829836948942680744000927416764684513057403176291609648734329317995216538393703635631168719516800135080236957073721559977052488331651649353220579279627715314422391364597315039188330247118602282570875206039407333687787143518783323306647357120505512656581160852504637550562322151679914823496789603907971684993127757861486384176070126084604259465541777022712637187428635489185059446496660175245804185519316912620101427337302327489551709297035498092453642653949389033487298984921266234268896751769241388646233939701905658694044385773487717818913198308235799182792248086024714437285622257039140915160566918499411192689919326221568582333594424714075210921751811159195275113793619484943078725243287472944178028920493917534051092062781320751837186992654261868327156692985269211500094685972220053686346807599338412579787888994887426318817284991044656345010313037579995476693117090798456579101077705699753633390721113364982966195485000189855402418646023233882360957232087644532854790580713288995450761952147620341718868585658369541538000557462771579460919312337204037983174760588630034927459777061896260573932951641583003121564211744690904783259540225082149635290162991149517372875642122283620114607547446963601984313209382910916794302579081549126717862813704529759683152623131960342745329664785858095292379688958373078791895467731693178581691838260016213106082724953091242302262606575400294855061651347698350152748400559455340170943846018780010218969116971123037438470830871713047504733993600112180533045833672669522310165021812716429601134942974484671571594343118606801775955628408740886287105875880017984191195190571636396039718096167088199596552277241784184720348827561726301390703107787021009779284741519484905886999971669998969767466670835618264728307219386079438177800085546857616405902581260156988240713107823917779342710218320978951854476449379047046915312771859228879526133911534675821176662034066596875781539020376616671594962346663737606081621423233528642598641172787412553032244861540358207915391978207475091854034307604026670057700868666695313845547870573212470157218588011473547868069620535745032794790874857165831955873145312239251416136945592364898888281341913388736456034409310004205498080443262901592629929767952551363895843009654291232646763099687618470011621946196134443808101885007582296102247213181697227867184571407442354614968154607642488640162052343802173020902658574610309782121319314992380157371366308025604151191810012640393762800131971906970097312880320510991636223745394779582904851106078399716845861300581895760019215752017813259569656903363672023697894979904760958231240565962035315517546885564735472374041446296222791519998955370948482678852746798852041455228244012209046598894767040033828125535253151692618199590776828421971797439636006883518596423147912108309674398385501497925974036812405921845686886119695335148201313879775153783189623700476148263688912078116746962161645947542212626990423594816137964521853337811024938528264106707318806873804682527340575333313599546143291999800636461006643730804332577492638526094900961612312965119330807192053408729775772260329887512873989228202910898150231641804399501695978760261862554704777783167404208667813140352752622376982472432862773390696908027032867276525245113425272856899057915700430586411073232215234233670041933613687135510553402022434901327451459120524057231731201434932885896270282494328940504102064834538286283291159709684671383788657213319952601566434834313784778722013522117984194035235334618257240487745938934415335615163460958126669104200823191886946653362295203057338970177684904266375245378569325187017081769350809725005430205081589501291619670391483750701502880538391561277083619194163244497666946526111085708270854812711927218172570930036030595304391751695439494566245361124731977318864611819987858549580585408698425544243067171916175679766240670645111690408812241070050623711495224437423881266004283768932753047171672731849397080261569085618531051017725446598411302367381142251311904642039162011677551401259448491701513868005782894746111154192325049678372943716880566485849994371755113309083456886365124685811774052785174532150650128008319263843080769747805025592596217977748684706707157866998126620735616724791662043705008157911241489765864952088693836365873870534828923429933648037591590211899477032025802994147781038775703491603912272256268494905777830162629206917914221109242011738693220687538427558118914448850955311064995593198333790141861579606273959186519011930466228301114033383480558832355293013178951198449711580852361451865695020772693886310453871035886429736807975531536484858112527862074166032088320696393182891480871061341093573916119435355339277715215192519363500552497612072719317905657252038103657993346639484579352777627781093271709980772034183914415019755888271757060935263483716370685599160862722983201990084057587445939208729388979516688480250923760402638075517992691022690990028733054665960252894805306626550375729313560823319507200404613464187445581311428901996304079411221926984495416289619256032999260576236984166051680978270669657509943484305529278192324689879566475847463066326975621768911466194869687143029010448328627391088986170595935850190447224497027144265397384109124706604434793902178873047969973897383385745383976723669293597297557757798264484445103380602533832523410699203881562185867246428676140268722416293617608240609057237284871498866354889432214212602661572556311271383059409982054319629647725523831459590304473460833336669434074143836882126433885739646212123420070066128997365417531719800101609071465015379852741012533536588286163802883189982067276743732691676600856309690143348146771929508687193165682293795641398243202522333642136177544750731232838003930364651904273240288861223109138284240128510511480151630660663452807419199439024096912993310355172396379488144274028729152922736876728567625259920080379764386660687905839284314240132425714545251262609806869618239507559833760422961310267952871982254546887683825789209808166477109163755317163250787126981069471757815333024042645769596828170327792687695806746494295135340043053226650689017733641615777449150790396863856139841591038365673817348325934405238371752107838146278816445613542166869396717665222116596621059113893640724469727581830459589609857733904657153235083076171334192604475286373259776891487645472508716109875102445792160040936501955715964159206140190718662903780406824248370123970335645072263192939616263326699870441347300906710042401329888261119985015478720087468199208810758931510628747313385048751360197663319157258105668602081159664317397087720330424962462379898265480116050113556808147839587864217449171427986846147230984081050222267238635290152683824037088146748228121601832142650728760289451393425155702620974714868788432083129219760326952854169275450384417009140811889463354783593024942377966944214003995913492363183327798603107173813673659324617987136407755104883505095788129328700165487395170652981124326684058131134825681803737731505095187101130300283065175202087537750800732206070263902247485773711157128564988436549034637146677719557524792822786618300559941914793899024396604363506454462964499943397922038403903673682564639781675238805950772342760499327177701395369592278739268510155030495406987255390311314253941839263608275760655545444235086577269575869201147850849634396737799984258727649815922301006161450728019706540364253240927576637963500698236509793280214509952014814049347975603967219828638081377775371822311757502881153015591642425609403129177916461712104352824016855774758109374488487220830537352956633187042404814772253998055086874713113080848269715751121339114017372444376209540359883657201014820844249092106990726620910469053856782242414319979504880240243306508943775410159152501936806163683812355386365263008810009784887513732230759731104455441609064615940262612628154539072331689289820472254015859203219195374721468964108860600753483676119616765521364466981798385818535278873047336212834342700648985569086665671816519181489785619984855317357699348793738329656510018302452970389841571974093756767814039487665067685879468328833815102791603484517805145630536147006063911815391665927950201135626801697015574391328645589611540668297076332592693612986179951227080348619727992642443282071889135425124781722270743970638269681611836870631921073764748995693381972210951224623076354561341452640585842801289679129772010669217250949878917490844698367071039090233989262631235569010034283853919044991935649641590924961790276211177145004148358418027937781853329161021880427446419809128891386617545404681575129217389940269591445540321873336179521390342591961875757627771935853682525938055268427002163636172568435217976410749339177535984351187337700393233561772323558773834901658434445593017836500319043550418956608319389020749907833101046664249866802898274059644159601675451222275082264626168046494803539257700570238777336440441687479986688570686386768676478922747915020355180780123978965837850476536034450506092055851835260179196159106853238286133898749559267359509273718960816411788319937358183340554422487655078690567654297669623174061808002787587218341184035659608106936070875759349491827731370786820288385338970589127949065390436567135803209074435853364176671615117786746781749313585496276606601880053509679068727746920525589039318598611522662896217855045531753171138517066481257841501229488423794830942810544376827504048895438363072919976831507410859726589926508533111972292548431090851940514197740354629362039368826442958297601736654972461501721436445802419250585278354705777399317017577546394034099153530437314828402572981411591376603726159160065977166616026046949824723446324945820106432541234401763998707043260222204147521649282516578138130478437900591379591331833330499884862456852290655311388610377065496373016776256915429988732710097408624255952849604365576491569558791001287710353511897339129020940908239104593838955919684054818548256545536662842214077321722914105860541233678011913261398498765942752640793073828560427777108060481234995439473500969947077537032579614015515708921715687512506666971380989418422466541230029078336630971793396398645716294432433532278502596464506295513049886553432203916419626087062697283178765455116703940039755525039377422771975218065233441006979074050923522209176323538965678660881955866841202674686738617267232766066896094284856791747260073384027752049872838470597501897018799777097421398927068309120424819322019679680695009494850819146217692265208266647559202516124090748591221423863655930942978473123934512726040886328706425343512314443502860488757246440514570367255101656975065957112014060324709445323730052866748133950221473625311564621722542351701483640328473377519603944278791847660615632443325039444389119032114022482196357224940883933462668279759787698713597461098318534781641285366639057586981210235205897467928721453339309622842971150205278273570174978084247593891479583982316807643591055092509818344648443467962374798914019052649720936207316292346821440311057211607741303104440528567328434470338304463107034077791358522664872180123527293331042230497603179505548738127538801895818043441501032997659826639100306696080366385104321211289127904723789668258631141139139517012430728492359755386932293004653093678247132032573108798920195186125921166419986394199513714531079486554290946480465108852244254744551953121537083280425576682472112694975436901840574068987952118925170583756641008461075377875817076476966657191133582401920129957988739680231750251960643082368626524101134873505529425164321241582533229087648582599613316846575183385771564687761800030703067584094858159141963075315783963653366743422101870819180959530832947312187220037715690636557030805123767291951493846393392665575146887038853433125680219852607213264327949630309759970651608285050313174472264834558698678194827375069297950964946200345275808025661443081555906563998253888997129603062468367513012394713805139124508744105600461105764328674820674573544895159098251831623621092366304287360870225299813778002053125564854851200943935468638058484359456443743151234215219235525313539566546594118934103838405368315743915411446310895492736770575093525429819808762162907018506033505225499368791415600892225649562304595358774773313454528782832177905183482381963429285340827552058241455464521433602361250875645231922653685035455325031861178897432411730451334005476490550298343616842753984296658009991246053223016872949895615172741798969882386555130413420456870036463003417669650951870507582014468973288434065223217111169781075549277992989165238178136125424155012014622999320738450933469001462903279941479730680002629566979637454331504921883462323282353463609578520078941595567005322211333985712333262324329492205849664949256657469438378019115077182089776777080801356872802500503468708378622447132839193522012965033473795523899053699637468895494506794698000212172339310894446449722950694182011564741349839341829438173745061240216925391966686170479589384598210747120495526990216742226121802100993658241995974544863437770250512347043916436728688505712752167537605465792837379980255933068912685736605999444562342587865513574260973949450424460700778298303423267048245750275132550375331363605372465377757604034787312418040284771503702932598109953983647606378882000719407953771354657643897205060931097488561186569253611078416583477246525224751205130465416383147444862178793320496643115858876541555764872531961218182105882207738118226006021063511331456079282678535826902688821701995685632492357552403956399881218033128729643990674008401702921428080565287741457727451616981813979766843180637934942576654010051954473578299812775293004414475447511483092287129196522935867661411223616586026718754953329628812353572632468524944606450382448574772628242414004646732536777309453798775033902237941358891068139369966628602204405492834568012863535630075451590293792890378731857544414710027902010220308001020312097225511693583474027063976529108357165817861440997021709756596928497887745444933785534127195129745149200977400847647412022084547437306695595946980169843440630002653999433652112343847279766065233635235799841773319291103416733464397930649500130866646141497916500516916146541451237773738047251074990557483239968240305890620957063374780764012225807154343025197358426523005303734535317486841229525391676680722330319117049064343220768324468031786140582875918405911290496482123182256856708427820092412693240149034554905832437326572832470960903534151047733942758313132060124017967997806730047871791390630605987462017898652081848783849303925773505402267519788953479261733662588555316137299045650528148267473584409573819990469040631481399070265009322343849864107239871390596910869986785367130943172421010557058088329590246366063242965891507433690579153927748404040566293820682584209172530050752350456231821367620236230747627611536931329679291002519855838289337722859597571528066910211395847960938539697856052227615486348013482497401741408659964535563246475507999189377105516159753089328074475206634632182578810290938141159459176029646014191503488534067131127764840922568580689768878991984728836774259698085324458960456260788726527542251405040645728617799504187351402903497062414753531724111398935757797353276520331280224853713659807132658011796709519534378437768542515409932754839122191285955074596755329631183166108477953740011080905008116511557874747211238767202449968009161921716228254978813154607051109135135162596450906645140529600877453512329381947541549944610285453447222354656447307624059837087898534559199335385851600203220802520806254398378820582486486319352486437478729280767285609713707256912635151156809469729742488908625203467275992230574633093340442870595552408475758046813278498975814881041622938142794578205951914940240802777658131453746318723127722940359646884443670550300472833979319951475643661602926449413766693290107046069803650727986956340027462171410572176426281962873726640024829210718844295825458241100670364185525892003722057999138513244603481705286284675358512840156173772118842452595004536556404807523305161820032167411608737116617334514974424762455393272304787645180203425300168345905438517103385425824217169226169465207381459625403622215294685363445157452361952501485503715516832389815036749488460308236666691196759911222590416306882709576934071204566106076886881692028095320644770990364406576711782898683096099527612169379158412286507026776181257294578588978530705012940257497857388294875903696095054107984393962929620707597660127766270659007858501642148768339954258662352025016987100683215354671397705751070807389764741249705806788720967519676873579017345772694618365981079395297367651448671418968181587174234946671395865734290216885143431629333444109889559243824789298914475361001549965710621550214517230404565127278497142297418057124562157870975214286672019617523182779621554469614935461297590347092515425486822205733732587315087118084801673911148783061572761804534163567541113384658431877146908758055158688065693105308291526404099176664266063143725690650379693798445270909211474469413851697403873865777478518879960418529516600345569338696813138769613635150608689012710527595971053888507781338781650857676228585068673509848970145447633151747086956921501271869802494197993531686022467782189046048042285596295656214881524577998016954468728618231165636673127460929630358325697951335688072603270251341115704966279105743428208358044061493295606937457643978236140084134322174183526953499568905705531383226865566880728281021683509473023166862850634380444975804311524118039866766809286820518967948270336044389776950790801641199209596581519036149879941026951628987264307757249977009595357153837604619164240790542771925856088262658574443444308334771490391168619671438300310582928728184626598114911506645845124082455584334270039395074325827309824665683214082277930647053559888118032167210159905103325088088284360055342994733679693624266317906680757841345102553997706998299158963613900016251786940187325647492358886577894509417453746594212436071913863818896623401269785718801982675122292833625009727132847028350979678469775322518563618725593158286963288912775582714591591721939260133566923930423978294264989347575914911515882364857538257765370675574353820160875583352802263684291611502047827318734877061814028216525749986415949088181690235429643291259490603287511282205385350471310684574885038234396054911935879450506117119465638774155403470748727757662713427012597886959835016132935328375363730458090503875684431963858907759948222739204152384859915963352264453573871001126551917531567725060753715382364520401655708149198597985042267871520001142087026213467672354978261023904134235527788717423565820974224342534326193557222969755264715472051152846676479612340294216639079287794681741600556663104045828352138070410802524552702246682917051644020005697007357664264415899564749331614438957638722225426517513793513534298404858578150909377408478370620246408463509313861690073074375165402735429483894731869740265368015256755827810774396617672825333672991030197157348121612619234965200416147793607362187301240657201859814799143154063347992081584600194888319043554433818121490828213507370331915405704208299854228958751482570255948366690885118717956269314552497674770126336144258639085872440427321401901147444298160264375677217106489837688928834496403692322315695702988723986200114988122998103702370709889275982973332043951808043063231007009965313990693536181541350016599224717968925899172684099201214986800780544703978417534593424477156558979525864402669977793767088895969083678208056385412719855067346113585747146017002954730068952185016077857037306366043462390364935508996878878474189529613447195536844760982752037901146181267182366053207592378599488455779263621331005015789682571994399692880696940086447451836159268939664260351784925323158959517911039276706665729922445598925840522743152329094706121109597276968660217525635856642841353526303824663462272939145133106785728129453393691352205657575689750363975753288517597001686959962953151771849286890934073098261519524863364025937020930136348595018697564594323989882981317004153469603671003216183833503668900587581345501517345909200529075316515661983774949830037827909489785358071935017244475292757966425717578230384689084156256284153951110209340457917569912016604990111792537606150139702715665441753020671136867173681917873099553396156041580534027733230010582116519119480129637438408807065461721206005608473677557247509988327366390904497361249938502305507909530049108845203823137375271630569995173617161860070509000679432416011662398686560816428704471529729653282365655500962588876978341067471525317736673880066317657573099774008337554710471132346032443973244775737946872169869509342187115370219449086224485312973913088648073985666107160995362906414029468432335482429164980913040549489556355524183943108401290854806639057847916061933981837204848251426391294275601229878056925279811088942500234721008422106859879488755733492042132652549679941814732184669774218954037287044747947159250712681647154663958099118662110003423501902333541289852616629970511432020520549475267137226635789346635205155933160182275719544121454285347895901017105689385986803705434435225130934081805181612263777004150171936720585224811528629377537679541857865829763776522624574090802900367811876724878871064933782046723419759764995499309548376399117705339061985032421795677307215614269831490668317707803004714566077178262026007170821949112182423834216775383836189359623732117700748493681386372642575330339879441796529385471029097944607369356700096227797935027277061665948296457063347575406034365159910900497283672565244401044532549069949146425446151439939953446871477851952111306507944424501999771396005192554260471712721001002769604792615351019199957711457027453980479284311122411456985584556027283447228965401572335622300436029870211524131558861153667886716186300182806422909181084404882181874900325418167524693350487629319227528586040793363037686459157523832966909791166167902573005122868170677184101756692815703432224571629391387148823001057160046808683469814103715515868614776680434200741821003884684717858424198571316245232344004869063761134219462433225114668485063466391437747509408790836613641727465719215503108880604656690054744641774788503129928268525281686710345430168181219718904511849840424621082611028345828372649233745076037971707416573063308998934466521640411812996578274960740672825401706985299995965134005106451669105510693262478953079275947638673811436371856634287895399057879986606341640880192636563387678583395514048664123697924431585280932692967553383648456373267925271926361275144897985885077259235909192938825982882387627018168376830232787269979901543789772928849260979880388190790522301056353034398054953425426799017386044748443046302738430407011155751600844578562565357079276463499579061325963962944493708244287231469364960643254828410272154305496801401957574739937331561717947694811896490208008897268745690516537669513382490436528873148718712687742982353928234471688198111981447330294991425807136589181381697988662897458718505243082337163332231867809954419858065357988003088475843241640477597483583567050029664836001424170503029068205301330467761110182656065174079385975220259237410760607152844214160714385910071285588230538897130162013486625208092802654864115395709669243038073544279662219273207546873266193539493490455127955271178286609087019741409170064352791678826533192389230773501259319786363311363212752470206415254072705424118166374407201031175244452415292481767591182321690701207562043216075002579673381451035886037716688742102207322232110973832400369939025364777305962054591731495998129537261898673689944763091519695541947612565229097933861061423529732368391296839204316845681787370739315111152927377040527307086223153201506279835708845097694551280343374475686500065734592868680513870323754348333082814434259836388177477978889908915689282412610772324011843514472966715588564795414270502715998935241500871805676624829692570284778021647149609222101642551446717638570284759157313544621764467428150222797922371943656177553094631398731716774735914684064165405990377212969593076252365542341386638958339756267773106930783849971094793304703481010143602662307551647670291278983759379584821977748031619933788929690894516485338360818305239722233851680190578562669030244583594842141592568953912294282732464702156729550668928379922859964294026893700886598101911682283165298875404575881610051499093919542685713752665526495485987908429986132240235748574278149463690626048708829778799983272794744017615899406296998751936969804584710063332387568490567984746541037086042683163951634549622973287441580755695736190966610834070320118590354493357812924529407206823637309234873235512399564932737556543755975079599809568664417629623437882982754269029595314286887319689402027297550755636838901297651492967244128825860465172729240478722522266667083847497536418321103611806469916649193183539199102092482977734143060168757307163691563076829261879477771234029990256006945169502565908830194389492108152779433466614477278049370216931629791362633835876664891344072041751222699766213165599099108016166220855193716271148265415109530404149466114411785375498137115097921118482496778984292209581989563847922428242442812506914284843090292533088510611989973214240190322394420869153279238560234678077263468014224845018951429627948744397420563765277788389802233204151422910370406648190639658668365680039730069593273505165787753900814173649138655877637450871015091468729881342043688370530657158833652252114783591413171217392764271968549003197103706023728760620700781811897049148378919718258965212025166767420974546999243563349630130283248597377421450624948943846612271959786696192069680550162757875487608252392058207130337028770078806523115792643807593495749762227809678101945089079257970664694021970520204643587880251628177145343752213011739011862924438367965219381844440456971202889404509775981054409042385198544625892364485391124820083368701032110248926399185120293092374090501017718858643630035207956024888083817288001946602523709254146926833889784682945372171464624865926566881643055101480124536211761260711186889690231268275784594549052557969926849270493033392532230556403596177959596141673258116746165747088003526535583646211856680600654236482581169519767808149973469293666632951305382642488103488207672242115410776037143936346924932108287014135469677287210500713331167031000385073331674443982859814008437394266471176131714978792086925308942766109514749251675872847864084671337345944358941272001286374753384881311315208622265611238602342492283314750918333211262723330773807565885023441156368390590085032907825424166565448809459770396272037892101855138859672385871301365353216792543558210920944469219597513196595965977210007047903608605899687729538478245005986533270333685192456699088540947445246456917646038027775242586372135196004211944397513443429431575992311818806015921564386324425407159575407923784790393449213357241325934500795263825463393581309896385278851792888993876574134702277969679977153812069333299622389951476011189823780656111731548691575114408611523767652694941398694491360164927420967862406035381102560728988488623493995719936814953050127191670625550460765482834899024574522049766818884137632989841616054723744355397932309825012075373448470925281177578809715470020679567039569294611745608002263767289411601507468890148934849684191045527905737609783939785291369194243822530966109663360751206507599797612220659431012583337277772919129808403870261792536438428561218899491405339692097260369207423932090700808178421733103732604760344943918313757352329713486072937206814806023981102699314383528648120430260449967333237907689570267493835936433411752407073996659924136226163638943159813446037405154915162893105451269701714895636412528454819216023998078849281106864301261108738605196029849119237749463774681363686733918811721280237969124775624077565177913311078312077647929857684623174336739572277065468606876106427282396662043427332723107498594641717278577666548498538195623046086655178818881338967917968203859846726337024150601734188178477572443430963951524865709997265893082380755289171208292025277625462242653559973487709733897498757238341097385637612552599581568849003208061744103753776146446344757391860833938751254653099748929899847674220138579459000866183454641647047918391298437889616294561311770394036806644083671072720711548055620297813095929918218269393206548056619527448836272018803499548568335171523698260082228857728564905940573635806028462856595379445874415570940098038221010245742935637949876141140192052044066122939416391463106348263601861805730501605214744508555664778622124840522003084149285406127648040834229627220220906729843305206602727473914339085835718019331035252235569129076836087835525947739473998541534942628559792660193360685277449684282327042979723381847990438654026544785956199759804924095107172380071206902308392939630760107975314981203811019664110549482413578901317362991450075750940443416127307281259588855425728562608745482238754907107337835338139326813185318664365796191124823902460505976964619438570380908003701803973346630184660185563040440392689374903464973017835829092465264275544112193187051161556182545963270059061852330976554288770372847240302406961683293856454395800918595125398278191887060948314673640654457341914115844820186452487277612000343892283901126471371615723794120920475402190407327908546822160529464997972523247867162784372506247061542478609260530558558482556236549798209856036657923165936710757301968966223417210701709405019878181779272192877611573480502777026684251425010571177961294212280874693404449319582378420061443004388799630060831842451642305941984399369907156030637048162864077242106707074858319775001526971880703407721492957703146577031856963504953124393833832086547949760681321345828160082034886520302457289374821775669917531966168749845003266625297427265171279755813571445991320728195385867106678461312041772610998545143600863461810112279425225680939119620019555260021324841282049231055618047754317052660065985081117211858954708262001155390620988147040079161717727243774751953986356085432589925640576661823253145854604573042065906206585170396563048357872793709799968047224496258088721486386448485580899546093348909550647820387161125353827532192306909090529793720783859237586772102250932409206935744501407775503888538610883879056468921944582559373040554958598862714142593352930221144075433396915404785881898678490610188771497059465500401169008982708781470654486585644842434173294961646524611980585733673774091651203286143922615143076957225480809951337467835862571235248388338600452950978816313571340735558250667102978917989006390484745684416136381911941525633682186042948291365099517210665369246023091643888883584564254576647837159098276962573232429376150673306651477794125351127565026806639863637776090915816961436221447029506235927214142745843439077257334059575231490687417482239442896286702157795088708903895258677135475237280986713592350902677430871878869589488022279099407379896440366072445414845540541055042347296330664239434353931905100136619172950942916938406642359663435671891898752323326330816213244150148258490141794036160695593595376335270706801348575206750744561887878783106590791093897411832777591109489263247858730304506115388668139181189362901742651835228225238917984612788675276301706133951702664394006474588646844736140194409458750085147701276941092741636711884693954061519650029413371883259734931776916531801008575751766511742246001362138034553676423720340889152582016297866134138479341456196582152567482782829681728477000214220016010376008501598755742507978939568722670399278981609958711983502506817971802013600829301381492134928658331106558978566805725606366354174132932128695403078709219028213004170900882825634498113359057951641699494984032955332543327719501564724782107787561367833576853280556131919724505950234232603642739837274981794960546321168669924814906566254309758608512622939858409538438889616280317776615321333247632501514843991868852321984835820442925521711287843824333707143058418401306324319306263866652521038100734799067377498618374360498608716992970939535656590529247386554592707654937658531422179284010199574280346859396482818429786395436232586164613894367712156354031067467514472730218863591777448797202721113473883278964718627614369811502901278015368650501396522951887410124327908138045098831998851031318240036078448455526724493306869287841416973078408443768480433512843755730920165040381630887652882560726910797716026053665872522878322411978132458197228304173495105847484357576956477199087300989164415530081560136518604346997178512647801899007102370913947948324111085367521768039787456100943103247382092807815245626770894756211785327721553477059854723719246610026775187843630901207315513122369255164129183635673031652886055400194306057421372058018080120781686129315065210493789384464669719067607258768237940932552520051263344901912402457644054500837423833147478888849030654597206293973663107338672177268374876623586534251140725563401813193678498311430829101027405901223782238174850334378283444664638778220470237563737813593816546282274582469050713545953440026640089775023452465285780440740699002884355305094437389300418287972097270803839859342225570308307527978820888814734543733736165828926291214512183133206281980492913415017324700680383056094645462375479035364944037424186332274582370670017909279400817569315346053855637779769092798996026610043535229842747851828962662812386339294375719645032558121505918032309285605326394911179767771501901988121711715224488863982166471351029733552406789164473523925913959122881670928159376792527885272932256087114019319689546455643061657480386832075670275416666320178578685763797655579822818549517576568719136439487227560496084905355739716263948980664025228461221603572125187732190626689650925332264819791096668520534752514058496121569697723342218876184712944301379957977266072616314783024677339586517738472796299877732098177540862628831661708959609660965248899123486076999604096095764679210314169436134812078595554812623674781075996715575995331359716550162536536365841024043667793504568059993808188981114658144438583607509525598152929561535097152963824847227530297618932071357826935668530629071616478503959579674577900807623261955083179434492579717374733205911293102713524798840732257860848692293566964489826157712689293297491577289285058066888097162395489108079453594039192703179733501908965021298629773087137675050742944725330044450262500705902683355447777370104765197308039020270946513752666747217223697562442534622813787576466670165115933377505338847294150354616461562783079881761596393537471791404700241417834527584815681788731882815573655954500087875568211328781803658760556087341784567645853441463170701654630328937029406263047708142872630286888056486265591065543319583643231503006998133339114955295137587595994779240357063985678703110996622731809793959241926140770572255161901309666337104428773894473678199338783705234686846182267025994559140808437319068225191930583037841676736574827411215178380741755473876395376511375936798157444420587467943995177038052031942263832438771263035916309095277762628568928863196755843552624530022152513740797370201433688766736015892269385232769825135043394412622222813550852680354348755210944208126163653230963681789520127579281205760934896441915023035430548357713906060780499404721184424683105061885608632441483355999694821631387478541141902546539899203723648405668574958285433328440090673058866814801401591899008533841289811809022055085861729882262454512983028293785275256191028492654498403264795153022935304521606355946491738507542879342663825584061189073655734790831052191470195044521403770010273269308120269900046369887321071878694829178331932664990341728221887196543157159616000050679176553668533623303083425652578200601780936393037209537508503331205073782282885081209806392918159456873510939204031104775431695209467115458323573260511858371229598006580557777740059590722413902792628703480644180411202347968018774899527272754260897516905281901293534044914424917067946993870731630141886002869438967924741136696470760682793064559684849004060226675103759748295335299101645109298179824817498962775892621187810460210482733263678445747823472504038280912884333398477251342838812933999943464881983469867308157458749136890967492324735925346673965732026790139698521628325231354468935222213632382139416132652541036610805243099121830931518522702322460609199982280991021456603678276662350504470537785332012780381782299779944374744000219042775654091559246846277273612655797607121543446727114754170243039943847358006511124423714960716810348112262112645922021773373185870784454250981984680145516301068775524070588085949016992348531893593404881467755454718366217618364519180277498716048996115453879677065110799339563299032472587235747910425827256485432838843363734736212044967218242343533371199985690800312093465995929259419986739061423357808434424459475051998964782749222653996518670439363205561300866411116874910569397762480141695037038501974321711487898275787396020698652476579061055178498436921345935233745674887169893722334223257292770614851407886958283114074179228074292223359761816150117736370316958377698085263294146693071210765915755654542106842162455976679552776670363921712356000084154973397645127614338732239290329914143801132683544948949077015162582525077424156907012627951517841932581734179141059428299973569367918279130539559151609374566687898344900073590891886628909310563153626601929516086050504697910709768314339203170344728452610403767540837200016179439943132856758624370941240907901666225361739928557868730353730103704378482243274598790368697632537388748264303378385484298412440736413209892358491855984232334414451044331374957670595347736507010796746319721835974836185647962727473150811776991762780277653994945004468938773593724341734194446437935260909571806814949221417822186258594207406089461180107745637180490154883443192543077832650409452937169841892424911438955911047597284073034155706068373452924867689527437288576618241559707663104566393975199427384357099617390253519786045636200599667856349912152488362181851001653276601494206589820553331126448488178868966860192069319554888285438678653565161591854102426795692370527071211694403665748362904867778560449599016596608752161183706629675242716444772484349450585467597018379830830250554536634291730622979886406191034901155061428732068359892452633211883329331080893862518295143492718764748726589926532630729913810887318106201389757634016026236853805567884022594870830368489887543617846416109883413147868777840790774154741472894593095089373640974754093965825483165892924186929326646235473177828267482579719815186987339653316989949168012527743394274333372722118189445310407830363872404526023546186797662398667889477028216680711866550293575918764051854321142496950573254016975046733378045904600277921268303707792830891092855791799739074317712066518109446486598269462038285656078405736732354960493385565997058789867888117242559424305846180091015187720634083535205875076233211385807489832799600147971305768445214846032340154509113905212471060423136935362425774803798169025728421022384611844985558004751746183639324997726867800778218808180849483579028019279821907619733230113713095401194364048488626877305661797636632634881057377117469971895315031522298025712215208371631900182783883279976606047361665405655459132348176732415701273330191531817585399240831040468236185550732250405187550372881162755349343093847311051486791978686858300317002960539956116712435752453910873827656126970273855006168510563954954232970953622648942790306247956043100358777292085446725057300614320252390603417239990793819299759803677391671315266719683060048246259248812364948946486570800554668248708061333315082081838075572428423811316447154770948979032762516734012217806559825381466984322626673074158344343770988713279194375782253356864885534009221883125145146717275987451486538406611179560823349289023698714067452140742663838593983783746307906218512896142309819046936753726020516655216396987307786895866467235869656079841731292756683629563692262120391047386417815420134824132487920397177007673923229735171329767650208535283820030817846787208643573813026947581191523876628082810897367352870224227549510180400877167409711672690290035501996226895053477046030336837471478613662056110449926409180727465637351252217266140034226692973633753611841449870290450905118304806060452990673376068982758357720502107503404447904318126938540914001367553749253957857427110546858504020045393045511464890925190764361891056039367383438120722446225156041775493410265362624912782708904086891093792192953075485534201956655855585793551621667465199205665134196535352708784347885405400522259539515211614961390153057080904142727233860701075565501357589286963096452001913636799351326269964885973121891936492762731725310085125144810384011921207850352309847952525555117063523836175066810266965747878181031850362342873567462619889923345183720352207126375420611814257785153811344002359418389268768758765896417299158000562329909804292898004918709745072187337499279089340041171707409729312451759703569344734634182163305311186163406531332086175027134633438578528829732971728612682704693555979293850969599910461826350673680597793857744332008622385143536119432523536480792346804487327105121729878826648670658200595765874683701916908849632108231413927389202501903102364410036017852645462394569478628017459156800397359590978583079383096834811457501195023009786996466907682695158564770169992736475192081286727708754756215246288560616246057449119498167364758998180939676715191683559437395405875564146781048173453830893432796227927597409474005479659280873200406035987295359106103718559040981369357262162231223825446272596140880031088634495571367712021684839959595797081453249201641059900581239733407947046666518301451639964168085297603414078667121369847106943842762141227103737224518263078999232488659861616844084151920943673470999380949903978262191990845105382715044021877720380260912110511097783263386128784550679309366821126738799961864636220271628319897269424025142894390595260244278411562545296072858919898043994789437115219354070906786114742772112906997252941391117938428141507354074925005244380339694874328730143926570769971492320789029747050244694830668214912520696840110300756887263329574086724679377993072938189581260842680406034461908455182884352319608874563791913373677405488973477509093194216192697297343129244675849167133503408597766619385739065282373710695536843817791845397677680674974809242276355320120157738370942917349384784782135495426583835946663159461274475093428501796933554667735301381073628917930819752899021205699642942403238152850644787753802585175341594783504494123661812425020305066034634467401239723385787154968991380522707761464086175915828796604610657499464281257704351627529969738903591957345870885927047256937541097306584593154641095899606290698190412499976944751170810622795645438248384624837739516778548414459139841137894905656187575828415971680742774194718958573148171543683243320525802001692204893152541225460990057485395855660156651814524049944591086764105947818120367879311360857922375433390926585707293609652451989835370008904119698725517388817823380869717705397933423614084206634441563560949437569231816697539873523223089787809278008690197867426319099104139750334842992752345263848653134979405779480246497138514924556199858216175849091773707203429478771572280792801525779475912663888364455369484202584429944448429232043303148397972656712133469971595543390783945435879703183849663335109500166060814159783771117633166084310754426227235488519328867446877297563484678699405229681060604660559145837772868493796757638556052906485513779343369255514826519488547503836514225684938662940385042979605084294000286304842478458887853989873103621775150227530519647180833791807620125792069909578437237758281783323298202286427979155777345822503609316105006146398241401650711206019870713213109998939045673355888785143853591040970825786324281811506193746460823114902392439934290932926911181387862907254388812895492726404395981185223233023741440750610561188518279665544816398636651410088532373966254499175752331621788317328833018132316347950199512845634642922205399308019740250798228945163093069367584730847445103852604255751187404271303596901357689051992298561250371056331899510303171380215680473390628276124436607982538358442183519370026115705239205047488814487974929582449700429268429105657377593934422929566948090765752543013091272717363711108107442952879480508202693720233521017636668082432140086499570241708596478896585353469128712510551629391844223834521354552671328582855045384285206429772581438261532087557979327889441555814856658651972172300123442149134954887544570593796657671976404892040315650458693216129482710842116727912080682430076467774064067107170336379286795427003093688293465483868950220322690342305300391301531292828059913576341088008135461540893755295750902282945722625557634772554875466790238999073498872029341997165599079282298765454385698137247253826165898274827942692551162760068906819187150271706134488028327316429977966975760306740425688933613796545042324951368539031072743347305727959944930461468231315749395367180380569300802367321943732231067696463924120958761576748500408812726809885936490388719523372839563638416609298771110745226103025758460220153494730852218600392545756945814104355639011101231433612694943039770294438786927493648046112068106658882793159609382482729682017160914314198158483883528242377781160419552138017336735071000200841312549448747433683467909377355228274347132290725488895273644241104190095949276192054752158956929165072161209538948095179639296479723887549222840047310075140067923397920333535896240970748570483304963032516994005451642636220698162127850494541465747178240366892630081035646092628439807224322381454132531868362930004587261194164636380530102530493731188389463551421570393126210048825983560004549519849928297468389329886782528070130630354730191110202808279446292284221605142828586660748149872041577184677263594563761123671420392108067838125541850140749617072206105866473875514459394147635015205284002265177319334579057840617976868798492868644071925257553481857352601666051914905471722388360005497240284963619002026722809999662737009047596043594650018519937387884595916116023199478340858328864815468462120599719414189173851571638138543885912388407787535120087174385035592183478611028861078690711511607948641346450493182457968602530178750477039368822977412020856729642047440664804105254479562239012543397749235740837558946245296318465673524435580918089945942716567875484536816449385409231986151921192184700140488634402420341365520018413550412882933139466394137710329019830846037331157496190787843682756650766907470103106340656148997636340771324431286200532479620232385584941398149469026682731493090757894588702166851680926816478496785934007050484748214679263832385300116326687902409809720320419313725678236562015309179746056934329380036265911217346908330260173738742814267084173286505383038426032981682013723357172105977275229883667821334851350601324551021622461813981554155129508141812194904396170955696755744898641057916874580522830344369874069367354066543401340189904705597162122910099288200266011854354195831662117832992702881607156577771106474484849377670460001563717859267974787238832598372533846027023511385403215116222919460726968697232718777379397979371344274082219491490841602439687373562862069532650297570897717021016933013107641760267193861893683396552989259580374319843964211277556428827937375700167311371045526708182946133397554842902018868509855883228717420191556261295807808920107758983122145445313007655531507369152181321556463052436200920884328429908104430738030010548797016929482402946484350583521897386884854515472426885160902012801083945732616219624366853651208813053254071554720249978860189519398875890668793598056691370010683593272799189310942666140933826168265971336408334094123175969461622235707761042941813587351320361497128052889838300890586864354939082894121714450020204874401836842196880538081094277647816851805137080149998180117594136523161750450567616739566473351557559460810881296491589068259696393895148921124301948229659281691104573042838969967613303772569840588056615265261558467748625108653160258007159614490149385747502994801448615556844528547452030800497913076332095329334709383314018885176653571837733568428188602065033525285304733508018611312404277072502738522358483853339640045063936711603125290022222580506146456102019433868195988135782465242223966325247097595759249326914961732986065089440162503588982337514079287426037375777393664883238422759382258646500921186127445778161495986362144322980885395885744815822039127668538251793371210905969481982519799301566632989899347310462236408747513959025849742723308983006020395592624723651725723258629355602113840871960359199263709041033467460443566221225411269182096260633219516454494711113216128897519424449379152350984192876151957427248239844067757735486110937755063449494178682779934231786942002532158604964016479655236719646000910425730604931317116024602889520576826074200458445635340708255287011017927381668060874922441103790317971834220487635256544574086770366353385386218332338628244693072550491532617125715310952721746550326311063500100116439258490771949779159255060543434551106302378472092913525353319129292619781662752712375391201854335452795672768251750995441334476147484320908786550316777905237248254300636147540141389783916700407544776398185776231371857443254062973856049173732826418635843112650611477619993798469293554758170479370129496864700758742137254454678181792538542054636774862384337269153734387015217629538389468366451056271850376131019776512722046520865553369093319888299545526055320093079019876642979757544094781455184054869477372723671896959017586262957105450544148233822163867254009649745811205121246408366671994539004866115585339666636800592817149317845207128300595150809183035341545949043429205007348184091478498975109217571198088630798866063870182972300410348392681130729757926143131625858875435947741422315204834299969469374403985501505907255815859436721534168448049512260681407733242360360053513291243478114469950030202050609509998086479164263717041289360678520576655110558390518601554552493464757751997554568309792449131709230342191122323631987990061272357339028173177682382029093558140556627035865961674890409791521203095828141296068666906206118411302367146467387319890315811309384023957701412035173449356616779664417487219888537429139944189722352765461826854260653394403800252382139939977406195579763735533394505366209027416315122093230271025492520222288416265085707055522810980848332176567876126483173769160254884136975008375974954619942728409093078939103511295272751766785801959675153123098225421215238615282369928845803963143265899356373761555351289542686817309451736085199370998188185468131889382053855377923465043195682885050607169458010438573797331797317283630648993499792074451677413928198684188628763078955314183353151942921158135801873137393559164164747491769143719451962998533912693004698461904676017254324814339642316095306532757868211313287232656646245755349766280771458824871588423454402794417916291074468124189522553788117205737150144080739146790058939217651145075573800033800019474443299967145135937841377183115105115716094161051796153887193403619094788969644941281858809732341565342936545578135383401148786970132062459679064216495270256952826886421907502533511899860883101909629904863891790291658185194440471982339817867087519605401882184735513690296550861133579946438712135232843124662328427623962350388568785039529633677457019370696087429576942302607207976315741549774401138495443301279180592164027657697583254693963846043685530938907664065913509464533700941044712836268915919980911798920063473353608043488478538941141749250264541581510458939490924124962077079726741424462190839201875691624650219020968231523804517777129790078970265632395904170873857154735903815069317766935091912683005010752307991711147343087841967305008806664175274182753033856359302980995413918006659855344204113944371616851374329533199967694167548911925367163181220029739099524005499668993244561162290540667188639831626298218109127491178718514954582060321541100432740275151723741469200399698369059698540517727369224999137795415085131076545041103013830240625478260112480324548061319941111751955382498113245983170638892114013416712381898851046203426769780114126537535013758555010165367339117538991016283644485100652520047731804925336805315490428812413400332296539606310191372180785189357504754993286135736371480951840240946823723163086060306558966505881889154936889611391789883913993341630813155481518999055188769248452336527194727418480564419039984695149428841629162558430641038898385192439378256259457451277703555182434717703490539765729064018891437446002518112961932250285028746728850274674185937824381102580954289491594404323372585110750474367432940700218173426201323194748330431043388906615029527979147211318122444092681899684044765826711269615924136849252214263565375539044133820729187474580262629379031983577652422766542251936567989288952047765685533394395766849464339838512014341226807136145700707198513771568176062982347572134849030135099817749969704624586941525363690022830918221527074200922412909462010167043753402343614102501700260910927179186061376263105789255576845234441614405284432719424997885347802991208381882049627818263785990087731315438703445320182567184754807897450052636289510891156625984780720968124978802550323000761852203652115287718901895635660595084333566741351724717407183469266615599740119861917830731999090629724145619028973752286947642649653773024057173819494153974337807280205548259654584515565231604923471792623569468941410656768519390241728935895988522712223228753337458326824977879012748859731969967544923025754500160849427687337841814774478193976390424353907972447844810715401523538008201253831915172725302784165153203522910682530544321659169330039337456000662231781827290514764261311625608587550572627160670731467357573405836624216925588494973713597849941924567230998870532254756455564094371937324191263122949149840089088654129394136719195245708685577263904606425013818924954386092880908354148235102306594496031096178864122001233253198974768067080562768185031256299763364763107491857488751088473352627211297266923890524648573881117797063054795933103649912272034129984955270930056997797996794146811911560155071267565387045787580870591765675355424141295834909756841177352864183008682121650260044079684175785174313169241748662061299918610983114539463472718288509448616298882881996388223421687154055116017475812409042256813172445157964675267559810227894975861452023787323008505539078596185461251570300294209301888589585472091757141553388090936272719865332687606500752307285030910820198254179872069410923562902312862489690907808719353642764243611048803994602780776692345188398222855432011176238629103383474019553987866629190568978116540674802052518256924312536891429893257172288522282237854715243730764699059682761494662858240607672439951582088218103136026932835022070583685529910015820977672028670141059645711648489592279415979348986454124754379697123335595535931572252570023761847771438430160914687758058649256424169256625408228462761393247325582896789769199428128507909697348677362678978685145776955491181649072876945868597456675658708651079349253718610908758502793855041207653790205060878870096735057724667121995694876324449463444932124562505280392464753576041869483912462855545360319848062474204846245863972443929042558002199112295983425346552112293407277073091813270449892262179953998610711605589860906952899026546418785724381576235257811905627931832538725144059122043894765290305010999968455104974170135627269639526594900702046947712105011317010749212060004195263509674540567286200337432540294483814931687562985635165860435944111916659825248764441668582047701775859679131178622047170024425897810236990599306639466642767358599176171650684553463920315650439491169451816414791239108205777848267929225055489129401718964782680503923989403825182556910281687810359939882621513192916328206191093111999321868967329670391980411507983754226468949529916006429918681067461969841185508508061629355138676602032915815607722453042624948052335061639804274021226560998506531765136419908363703075848773506442902790088640735441511442320641495238657287093617065688317713320680241807520472029785228241539707356174851635363377422414366369919132873291058162915968489166697736267355765704325942872505858218519351617104186594173364152023907291435360906187365716430869781319460917274883026905436664843934895134927425566901389732651827907481550784872643471015875013630286162996561191731671606306443304733540428166354342101769324107243691590044373523182597286049721090583476839553607444085661059691700048663085886293614265221632730918265905317705204803491169276512828251258215873912631009587000851878558423154543318123936901309934782034568472668600163799378070037314215688997968726535822519983193048842447087520646410979018043257807507552190846723033569050921309983381186342713950104333222458018640674105958232755882347239609334196916939149177061502655364753268717293036802427311341641632582776807122964553785596479234270892038836224640883364224767172530626936778469281953082921850727560474344794828439203499912543689828908942796340533824011375151567560492273122864221676848573829802170393623949878857229178984190687534805979665785812220974466662057690835338355970477917230803935246180112240426292955806625613510168967666336904898923625496865409378171971508786336248189555168922547768514647942938326353922974392891186319866235731429295868012433747155672079900360195325074791675779101609635147610196909108669891708636158170856696898178297519915346919474283906487270527739391731271456581123015083934203416918441134788219028667198403947713144578561174113578389993973871636225328070149892357092073993990617118475095560404310165713153782023532198086275994369259021268421996645533971669723422684902001288571565136033175734456490712214925272136403311135497488667760465723939516232062045070335659886321227055464541430284362284068273285492034242507813544012505527163279705994607800961748868329506162543682042411503875346763274391193028434306789022007495439613396397299956493868721888192066218973923814020991503273565987453844946729177590887339520556705429982986671373994028724502021199121899522152911850894531595617480218198341861038064778906504399665606272445135619756073906492952606248103032541219718109273528802080033937201428493427383488508367497196109441728407219796828499519773362507874548531031476726913135535347873202791388188725532663385773262171606154525858536759364710995793665131607358101978011947116037190415368851412887585160021812291972692304533335015168425771823857508497782003922567300336957554841678832415559097608686141145309072160704402143272595391446038804919183882285615251279621245252627539861569021507985876123467787939337830077960020349808694849394879285277879246119058276575632468085419671456014412816352969583392226072388272304377278478098410452767576181115878269167614165285819472341640635633122915849485056102177780617474094006045192204144900356459692102562029857726224537782106648239406971772453905369538124558735664260345705963858601408871745648709717060441342636438668844566944565693685897410924451928225310969998811556175004752104819725677105732318973625058941262379231792666649705368271852948140181017594186132382710343975413829631318860405679507105867850415321534466629299565215505450901114826580139386991269955449152595122350670200247123168168848650870703966154609311924652272868219126682072404521370193257902018042803346069252273728367795671364348992971960400515133465067437176618070311695257070096532470973450503621824052133645826636557255337545148239978881804575556890697632744082942044838598721918782636823278532988357772473694069610609777665661210415417533510405734280020722447411843129161175065231312221210577855342162922254863100187119116652570096997440009065641085600166753385933128595180814540038416437492577197927589230130158433996919574559065566709913570358570123480747031755782852679849192464515812807623769761787812654766632649388195747503508948222454075587532055034128050862477969039770146595836468421301918994317730204348085478551312473744775356351123209993671610187554497891265522849728142678333689670272994320987655524058557236092749640206614959442528313653595947580891001965862551502703648483055915249253164119844808143378512904894833511306223191291565794824054800782216721699465384970387023909929354172341117926094552332584108986404636624285298986792028675952235158185302447991790101498002917153359539685168883983898962054619472214534486732091749202367525926143978896184456896767376528129858976511441668497729299643987676444734107558940960230881306643779239722545681716089828356463681817973394614383569244427578661766649068628096003652432044359874906628145378491428841874229066632003251034917145101434387925600742782317413827466690898878392382423644395472836231638616943905005532743527911576839639037652332945238350633761827008859307119501516408286830008452006810114469733541501966504705698237063524091732710983578220102465212612566088980666305898023434405033328975645057744450784139855233388711790799650486866055350043112309524352255910768579661528261594197682470889685856899335311974388599221001154793809301724340528435996644737423595701801234635167623759264325081933080026331975507129881315525064115450932369457356550325507461487262087298978601527043958584923535447951308305769772433615025577581346157469341137112920991203258176848888301420051488860491797446411214960006247978722766076825599608645155433048397746410530562986570603867539043077961969760525322050313358682825022866951180704253052948703078608446790491703205280403672098438930739654084617083259154595176610520221408268554837748934942024023824808521852247138262954535527086259370813745604972317507082471558139661078943037281347027027499187174773158216250598884899315291699291835295458689154309032802526525587635151984449818714988518342203073345667013653241820141195167453436962111575934765576639770886966664620241578369536476847484887314729932871356096994890877274290566322159482825820123767472251456930205592926509792160145836338283238496273308260137040866157292678321360541483341655073713458965186753967422774949013263865868779853828726414981848305207936523062689779176876605323774165658783467896361386760155595480831423622138655743645305462584572867589691727227757027084260362613190118984056902721677448728444726180352397438261021003180721975266209782642927277312498793005610637093783679329629392542855177538070707134948907576870532860011243984219142461241561864583295892366474584411267886816375432220533064692885349388571142957464526992758527117367197633238094037516247891906930479209133724023539975946481618949765255814141719850998388959408890062427659890249701210311785837162083704836492025642949131522177034527452020335410677317229244703397974533808216867960152871953909895706523612271239790670382089800445656253220451808578888561377953265671104461229448140846199602681912605591643528052645104023859564513408413612511784694356633633194484061072925937160339961846979588127950520080053732671910607621255919475963069637741740495925690861920465631811541725239010598854037767146989897334716766678233143689055590055124582713231472891314405080092396414984456957623267294657355211788009438078387575589230123536829685150899830465413978259887777041453975385781120191970053390561592523853683974829854131193173346628133089776895558257166053912607798688960800579531126581638708340978044580303913122859231539696286753000187974527690335889386275252986185092365320499105260023510742306275212918232947126155626186439806604164724828462833202338232761252662958702088274978019195584923677528360849819913972404011929159350903716472666374456447445002813591001008393510182038565263668100451275381537518403418709143632151641310552700882759259487338438350893997563260695569929597411479987884256402064536837011708242572434593297847875074049976131892456260625027520066710637664353846927155792891935740090208686476578338527061318812702224081273069984115996727454220971300645292110571311498001525788641615518614103666210633680120865423343829150922776704354971859938858417198290409970678413790387781309364695896176384956271352068441653543676946489958538390412419633467994020442225599686149009328207626846638915380932424730662175919757865366967318997761954098352612837240938799093080298351195611239097308342114419807720257580744223444716332534993150776886168092173772623860743269554676684621333067385810812704174467647795365171869020646367376770059552593681174955047494736217757672903432199942817809379028561001678599716293360232309073445319937130603803703261962515074901334363540934791318478638931036611902599188210640084566727651207051175350783862405724819104704373485718959441231075555338827299711003965727678671365876515086620147599648727487732923344304050518046376664027525825792129533393517148217197163859843897876071790806982919995279817788385759825130784942585443138706760146966352014336761476652013256300061142373004085317135858913239482143982879635940525037571979916124364870306609538104235662776138202754429067551644426576802036066321060290713055917910708584045866592821362924416845775179669119220750531576599137559454123646533237758009688945777624589738085898984963607817432326851229920645521376207999614439891178413776795995908401978375869518965121983071838247845496402754911579649759082135151597866931815716775850291188750735432443701840836407013042806096523385874754767475432441177826450268610224958491323814361096351859768952151882623853882012633744555551236401172310488329836937063857466424966053622214331215552585005202701844300427913087411586322934697446542470894937147131347630548508102604345966790779924111590524831815552469478786008971205077248151130694706450968866172842433407879655514120894003663243523802355475381380443678293933640890710969074947673946074903859247940373260681674658763566191547346795531245627608920228323110267908412278662573260445935269941147956957197106735318043622762923014061331048845037352597487420584491547992042372096473398613337927965168314129124114774318546092076981748987375715790559870424583457547545241040920370040788675405773951713927192499895759880533752763194229094864360452910262881295713295872157133255102698441051309072593244373119493211399572911304579964491942596679557706240291727316073547855906172765523961997959801424051427820275861171266641538375800579885239098544468370288700432904962737730104560184159446165173718462938580594413915126036947121362541384593587692776040164357168708478226706521907042477321052908405936406637087207805845880209098504994461158422840842199141804336529397041047916258487613280166111170688225675879125696703388293389348017390857951979327727267167997371491674324427608732248394947346269919881484468025351333840572919819232737385874638757480436303104598898390984045156182515997273672421011097586648219056515222704226769391157063102815841563659088140665195697689514534275752258772847546944488610354265946521431926175007277312066204773639854700759906675494532014656257079700793056166417716388608881909926076794852707831401886813685925558534624899941202239326637677028524176241681635484197170051250530621479739488476172591398194886442739710556606831059236123500078060736523214209481929011287798665278965754202869782014165950725129601793151689986651524046713886944855545996766734500612088508438409353797808572906204450787251084730620687001635573684640055023371740356072632389754544496524320200061090421179188399536923675464530525200078083605453352083092483336382800858552601337361252766832797939006779357736590975190207633449953715650015849002074957865288920863824078035289554504413833053508566376875284975383746841940569705776594968142754076947885467677609668158402809719154128510548351849440331758867347483266212067653130234053702951090203259327547004627953218771228173956017405994592803341563123787604633426914631213390918504505388533676621932426018218436265445015710876041047087456054231709918408424260468577445232548931782169441583336747692202102557474166213583144404611847501499591696876001776927176305265350147281988642259840137365982879428951064309338722972694803526380513151267936956697592056284433498714113777290539290636554616287490617646633515173274293790347122699402453642101823127561836151413605591485436541933422722566680578676747065569579351803146130534216510416900738254712331948499255521500315617670275805827988713022894888304738291194304139787008896929134886193725307968124512519277902656053239857893868977344141447348073505900050414065276812179365268274390824374947019124705693625141276375164999193801325184831951947062847850451110881176102571225420016735883568078052751036286874716380577491108711184879647766000266568916981737308153117463937161803923968354620527731504948742994527176437024154634529004557212744412586546424409423097587254207800012921294604353286855371107183575615008566280287324121640699872881162292625753651941333639423260254363669416910153949569247877332278655678834842172409874975821519787395249859633294386176832456831813735048376371930610632171142233475648879769912059109920978191875811498443756493454453406989583578314961462493634049775950300762532925742698423437080551935781126224964188536444869333912173718636445164396504954249164474719652269576457782156357195692095118218245919636748633476013348722344440228386425356665410547085095487608979396905027939894799050835558743520860697215705536034374876634533865544803958910773478597257761168501400552086320774922388508204736342142239220618711098478020141759572822706137635166436652204449429565866109553218824370841504134217861890456201515256870207834866229472459182931645294852805459244195814739417934436240396360825813539749111108859555466971191316440464474809511524746816168931063781805820194316622857180943857208427279167073267824426632421934102399934951943825902130451315435091394526478060413130622324972378189703918488292019084647073552548733760489569868816054369278141044422715875243139594514855313241162569072013943875897176469452547090186667168813791981159566122866131915195613289050534547461874354213534623125109332021640780058175842132918005621554921073024017589545436569404202513794022660384913517853698355253544700961209586738791581573964835052116898908414490780381619059694301693746654058153826814657521730879171097714465191826000931274786433569330707459823972806711172820766068251244459432911489688410093748412197601817147567655761666144973950467647742582088553228320414523851401309042902798939838653329626167424792792001052143214479895646592212178992817316908765895705454180212263558988123907675050828458482400405220405350504120575329872281929705217289144790654108724395771799886042868386517277594439929127124605960487541950718004311691076311333408950394614621225181067040216354078701856588951817330830332103652178004942515543566562809947096528431453970769647419519868668058944121501449178215504839617577076739969313827128420916941958779792535167725224318968055762515316542262585022547663268546862116184046735838526120956644390653472872198786295887510528030632526621241547467646206092942165588573765599852485909462591195376332134033388153375956683544522969712287334210433149085820579413704517830319849824582935836554428020619519435059574743773056684715432783260597117063729584984537471849437608450806958317675023494114609154139858167912075494196607206960039759168403506944428421460067891493675672227852778729193562833799592372475513354141772220507290740197467890778115742887336971965791365105385642097933911175195738888209726699644653267677966302885373335195001903643196328115810119777514238896198552202619483179018124870635241323081618081225217544494353720459489409636338123895443964119159699611806578894128794466057045732502794268133775949173352939544532251827880814535717564862030446672035864651117177561734904967848845454873212094077337982465916593396998695582107298547043019519428535151812836416248795305163347532246299489988255267881607107641668835699883311168295176711492352697435593892824164220687398318202896121596677186111010785496343344083004378887271658298837706944787193480450992309326128117157542354915009971561666709019610978554443276032325629208051866056246182650275925465499023823252152883149300856388018387041317805886273346326364686555716526412808921754472485578502480678978549414883462855139374657573188343159165610283674293959191906463508622321446888412405347773915073550266069589132303514052683405535994777714036736151098299420627043984391618795563437658081494553954517369078580294768289364759784493283348843311921723279375906614111665695309162153186402430646614132348275197309451341865715624581448891763480685996645597777863304824790716158034492298506695311345204566232341476974374391658887301721710564802700579337121300209731034246278069124009065486864159672036766599057797304196713338090522914827029871930702554690326456324160668346937573087261060999325924635973893796039859626126724546225521859194149532875615592409900093326097527813269478848067691067633612064561042249997040702580023486077284855371878000072983599771790930735202398415551777701452434843035807550454523481968435223807662331604143282550381602743893333405463652635854136437486841470894699644677022066180590895860687575847254202963789394011499240657303263057633609419744439350034773492872459863378475913963189040451413506094402164580424850798215517986430104756046605922104236360443485283426776098563522042745241691303897542029914211540174582443118385579883202574461569943650128370964024648101390474631496114241988261105294164411693962969079223696767279588042907770488151499273040311420199373427417137033204725371048934462540333743935756524825285335036575264003793262422147874174167676581120445899740168409072300945831259186278802170908370699904585612664388621968200768431966912032917507596872925306048626461455536673120331908354285850040357610241906378348606187576738642895765607452967207404369898113924157235035072277867409276567604395635990993233931938266201977816019976377773582368277607612978742099463224976569464611724867767005066713516536382099552537844414709375593039945049506130223327331034135541933220233577209245714045888132694967166375594666451476633962693318115492589989261810574475470660720079044138666461115097129903633822143166199680212154451193941212071082770138263103081091589721637464025389284960551146940262739136882901146999631405609677362961229022847636518894763983941769152773230976399183065347673933330976619685118343110241939111150264880768881408022710721832576834631278939233181813292039167654714375280518455996761239751709032222614146616187174754758277132282277109728025044440595472825408139066255675697577746706536929261965571900983682585583982158442114918915381249860650861382193269681889669843505111001059656939258800414091292927137588693048138537260465177643592057183003860449465790706612596563242266925869029008510869060858417480259577751790368467732649925179389944302478754068220935165765410431370978851226618637837617080146946657433669040405715289458966643426447526901008134628353087343290658926541711274526419701086307674628536640032015419536120072837550012852521375743930596872655179165059177906101028934924053554799977263946228110527965138001478281804729528103835877427475952425811294592760302821068796365905053160401176581535654750101835904136445135342675261159878121567185848608056100085068163542538374491870420169909946702344791873742638234419916943226441333909326643288688683597206811894621519932829198138255179541239827734995861074965753484419279027285149054667755550855248265011648559388689072941278051438662757608198805721180396436097107187873511988080359252320345021105451632441225246587260881455289636373802860844682131812952055428838165537047866922246069387471309759495057414848129059403357268398121702659627711746985587183441032924039889085248470144509257686296065912390097465276472928420701485140722487452959370374697880750056053380789984822405870321337701781879058220958607847711205368694067183821892267519893172536614163672485181485605619106533211873918578266132124294408540365675353709231924039016734433757522852102202061909362594850181613218328095175926352643688185227365287885193552785597846256271387527501397321977188586142254233346973371477595769797280041984241494974329170273442933101391337118376924622999664270953459413995834909522254505913496808825574779672036897565139424117820565149002512873889268284907196987587490678157849211863571094397875048292569390772206790661550792921733603241472927870196027893143932742966611554083120985688196050004944216925094299743646658059727549764190267875407257320652720447742870525110441677572166648417504446482346275962139842337040197655051037296042654238660974635040175099396627146206844348119008057716620447050119137895707410253295309722610015378982202031630027245230067602666320817785337777249226802008536896883731367672373652547548025499943920637001673569460968942983122376115785915417161374753594374988506098633008995440815738546380748507101103126738624458292364313732419013276260164114070082894383957394446229839072986657913035988859781633357183661210402003203532240893392483217055371084339161908333727785160013810776717295299990050475153666231039014142637071530131892406262262307416158417406485120411549665572601976916188716693243790969357038019158787381042870170439268178601286722316611143141024878896980728750255940916087918728321562376553988486501446351221664978394181967434649292971766266773755172243700423887528377587709520319765667958507497829800149415330672555485014330295092893807706500124165007154100283246828295564574095701828842401568826749527900531342134587555902195299096437357384487323413609500754969566171404880334115864234571843748597770223757816353664982468629377358864138357232951007535675132996956142350601477717094249255292706660523513412899772696987531969185048330797992239564510340389451783585538917340917466310304608126093028715392892389570818918224537253693190181391734356886851008225043504145215862347397300832039494828191545700813142174073752883754830682303695899300190940499770313126864967439050865989123572740662711545150327580988652168785179568409049066194919878162476379428522721611555228289328336287273471846417094358966828082591110216459110105932573690747182499472325657036497538772663533808451833340570039248265295184301367839191043082983766958820484850311652864124584825957846624608439808287879456868051397959599487994686148265596780440069269944512151436349883731297877071701490826796781369631724292751664375316777084425665990199148427664085982694869056104121225251876794708827852423817098366437735506136583121778521906671224006550184288995579701848614475264978266081906821347225401071404630546988959530055214295085531552567160433898525111090283998837656362012251207022260884401906908601296224901594230890207370052558554074750745139017830825137392591063002128801639348251320429548094746554188773221256677111526448347079972795477305286584961766661730762413053321981254896042336762717325503345746690602320137257804441576394071924227145982642432688769411040195223913903657940167423539506112959545912204991316357850168970754618486093836303262815424865889792044177775404627713991435936283758900343933834049908836411425356164677561541114106820198371463013558619796534488976851117781331160733650910355786761958161334583237930631077025246085916313675779833172531388233667756302392754970579022684855863411035418270388639280497252023396496603040738717557092574153349448569802006529379791016556151578999737405828788724321880100671321572837375060080475858054995663426435909972076553974703104772955616358990040451711467813348191699835545099277729618464720139211621509286513001521632653657278767179801965077657752956654584172083714120970869165412151687853187847638418446946653024584907425941407510563565387065048295903555888478488004178814599268091292385402589084631386309412934783189914930921490622697867637687404311394966983935947586491620117190505827296578432747214335186301326116612924166591811614752328718462210267285832300682398882930565784935271235998201984912470943894924760696972575782909406433936137716226507886937478959626360471155126981895763843693847930785767428049307559792172170846678491284501095274487568279840914050099710616368926850919625165213349296447486721259154255759362906041825340267006590446901208431648047062542915126979552555768518446672479001229703061722158324515976907844698009046198001893234328891142357870165689364359869355081830726646428542764476564088348203350985907102081505843994038664936864863290465679442969268869921703152336864275298693197217772342927343993782083082148218700854142010412526857597103321450953765584243683296918572883613774674198831981145715008010975317226154408439904832201394792852431792601779952324244266550368564467504320249077125451574712038457021444490983653684023245277001337828851117351830663956099463879225997074704995255324066366563656936705186310668879223534669204541323827795398464516148003045507014365304931033689395415084416105887500096392407440521360918757316061970562362999844611499756563982273067939572140372319515735305348028693775171740702505281612151377880587849443269254976982463934867435958708278415754015188518211442612286470441517513794799958144207961252290391446779117508796484488996389631174934507874777201755010952371850457851246446050095912400521913553632669723680382846799504574775670634298170274525019863140591061681391082785131371384366986659420211240196339325196248913833227244022425620073337053432093941305490378632798192863560311787443563538965396629251515375069454969263923154804330019481764841558121045185929981304020592646729405698845499773728519430778628438942753198743430719521961661670915142456232725721214338891717059414022371795720962576587004886133471642735207813061986273097332278303681004705197085286057954595382631445650418610287868203721026620215104359003392120576009884532687838207097472116643251552039129899040880585320475742016468585025309542733568448082301765131236188134625905807451265512596360806735679091488553283403007151718793418531724451109861444236884881929569454675181148856255245494868508698484932412290386436341083630528364762266141175291469181386436104208317747754534961942484912592674166656784728341620862454514320331273399108934225599250221078124799272000531468391599776494362228823721129385746852211804115593740781182146883390822956471026154859160079342703401037557368291550799782280009022574825419571656483114980828812471129597505547290382186097576851733720317287851448770998478331427029241791342383045402456006824486134222220333980168591306708771893576633450454418272752480844696593053382710131772868068664903304531555484874663804472170205365716140268743509746855016119936395008337572229491209143436012903411616056515241300172922908143505211207652995855727803584197261182330589151901811127199963994540882561131872745626604136680419654317677214350166573450890114536117469701790933840938812645994710747537078872819799045559182951953831071774094401474510662481731650443957669302792132146412883694744206959595713234882366009802211146679002287999242303644555374585626156352400763368258826665058337427186038618276998889414480722419060703233524032203778556757837652294810386483470508615556905656632900864157298776246004380881706964385262550504597969507269290647334631924423753845077425127581804676647188215835478451933611030504841095501016222339576612003695844372841725056664961148380913469449465101793817772387587360349388354230243196523660706240706082313598432802313721186269907922216768094689696085578677650425034272554602892997135401967324909956984135298430074650941992176010414760090652421975701132222587843928554421829943400063248079622959702983782388411763772477360701130366851616876816642096689037319795770492165118600010690051180189824795606203267297082321600292602635880676708125684513557089969137930248055918002227058992425078614574013139506951314022848125254049671125893668931681965212297055772177531586082217379625575538387122115456121878764772428059498177094290423517131502237346154369951128295287050787501474423697266966243266083898475944787146710748386978571932361332497500049572702926535851443679233668966758195551912627578188725373373640997133792319398496183850590114513857979792930000736705033360903846467897992961081959779234926792998390108290531939925265411252012452790587920422807217253218817666501792965997823554555616414495573377565156247822975081283733705889600587482192063317549827156300878348454794464280746444327292948012799535946929371839777280161324991806745301993612606789380455806773314640286528253856413157280608602532167042278079068260599707234399374444777256385108112693988623197689690378798424151926229174172865947402835251332187165815100423691587080583712958060344375313418566777151270077753797056562996306415906052016126578048917929945372312820186699807358041624905697528421799469622607161646212724952691828116104499214695106681687671886299505676326251782441845853942002522096329241977993809551434865674289954851397527336745774832361815503183175552098183607534641735849084987666195520463768029129772920133414813499754284999584610645197859720244600266830303664453297686457055498620339358213390702411581508869014476000451431234984545755003777391448626567420143171663566884162399857951812361945050320512337240862805583366390450422664988772980333464285883759697642890762663270545110952320942358459284457345396136573450228588239941046277598592764285314062446445915714244115318277356346809078830678688284752162289487499599650968931201331169305712662879851248728942026330222628543243759656109020667350139517293396338877284321297966054335169539581465234051921935702614032046225966701589437593155345034970544021621645617523800134069910591234910148112404015568781352618561895003832864949319985217053159711123391354291752892934860539213188584948721485436389554967277162406066744844094489255764279344908480862181813439939137537710034271978762473825210029767073503467159502256976933612607867670681565769139411188598855409675228525887267509746830555198140121025555223459472812091544922323310464521599541847520625979806427916707265862203180159063546685932538257490665946449784750785966675904602637674556526095972380275767176521983719295130189464083444680390756320050979363522073160494259895186395182524055984767030166551800562347025906306227690300717780899886531828465612541766228443220568057722518848358020549194625509072701778421191283566400008397707872065783124840956801383091225596578030652486317284413118148359835830054871983363368774255429600203008621791574264998295919314834229406921402567966247197723436857240900811872098071484259929506861592173477352413886030835616621071888467726907379267944604606616374410315495737216442589068074941118711594699323426671150674255520462053530747479192260850252568621292315861793788045497050770418624115813482852384463197040523497475225970879167566989782700843252014620231403647822226189229958390402534881310351367364802881705444809941318873768475332630869520648207913095489719595373327154890313355509230792482607794362572353083218243697694554329213657956040402827495024220090128316013120485380149882772574036181033068404301796785655522902121819786483662256941391172512326297934341724499584344501950590483205193929377048823366665888283808862949064331219109275382756255685541917754439187015602525427944406522658010807723440332171932410435035362842371994053295712568081062390795626642954496006212797437921988733383697331028409444337871861858073339884624657390367852031319444157631657254301871425964549321302395758289648467995886482807887463465965259792610211115275891859276954068539323252882167998123554704778925172014121070027691622235306019746378961845945195513725768146288599066695709526439450697383970917346124247796576664357184425036195305241112330173951005487752894547683291070153413965718565044442137042011897364065694861663427321286868034057134409075701943391059406693905371731180860011779620972562429121077400859950360599201930215435719416483028237668640482773792014661598534851546646542324802100746672723378324696589770877581547488697585355081914951646797813533425620822329123164078804905701455445825566747604811279761025349974668918748171479280627987917121884332720558467839500660705601234221451258330870359475642835020300425298101105455942382196384168831324847382171523980083213812348564999314219024511588368796367735656422663212984214366648264700299190522360390346013777978806910619958251487105833440161595766367957718015164450183567138730804160654780028046652745813163266566749307984725548447413648554987844415184344478302276267473387473204555195944246316598452220419083548849420855576247030433455699247601606349651312187403892794956034987069009021330433787812718636777071828222649804338928628447742459881525287621703283425639372154298206472041751797047015785079317605148787251020122490455046686711954884940906667776437734573241197954436877796596704404015626316595369205153686650508108639419523157099075646227784703496861072094673917978385083611996162905076698581022783031734792175531262960278380896439194578742094860457928891452718417018333259414925732448166475856217286736037399217814867563327607037693742387928500461621732780636168957780865926372249293509252099159704230984426696521426160539116237705085432713772927855605027524766174262895567889786467235305997734252942889889414731713206305948627955986801586050530219964490050832223261720084428941136067818472269592996064682268647270317447340921911991970423816507938219842889940095772482213755078665796453721909631494253544411088880187127445266723116347607162036101354622739414685750709499329533353275905441223966532307718039390354877627343263583692324812814398237275224512622171309549970988763584013805520666081041564111972365126495614445770964300978574101345541227849620276307283073524365941085797960114489494119865285719594178081113179358416781619164458948845577369246993797293941239572659042042185416899892786093252728440306039462530004447203358357928491973269836362865039548611584972159934827603070094636866275052840667747645214224748311542117742983963616315878957059199767029499330077746698707101204977293070672389142413265832263192074887941359122532722683715055702350434231720303812588990700520774057251359168297321935401305985365394275281592701815255863893633761990231839659409653329482749960003978248279442255091810497773708215654224445364793332257733067824993985348480295192869064585621767346492079120863007972059306026663963702209138047829844906255225384748920597629270607162928656109013071295916011743396215742222671507029081163389192651555767192464048653029390410033885662616026870920759732702253368834802898129891115390965806424655397542180427898480319732389112161901437563312885292751267537077949790380317723844230837122778547150106468678416821527109225733091821232832211767092499380165509582682501339200697132748566560268606033431020801567723395374495785871608843720242503412619997592091525094667523896778033429881949024225443846239123332146013601245955701920099945190480837728545191718000976132591107235431232525040724117556689168156379566684300931513895741475149663740712380257593188589193214985591025008321701821209443103803694658726584177589324706998482865782705931942282871086363636887774679754953918209117202810030307346892122541585783494987583080728591523833294751498782421693331341510107705679873456659832903174940044562696044888409950332042937825113989041137618771121471231714376005996925853933740563303054978107975526519789855452270285195072742478080462815065594990629047535656764290875176107945130398845055716092258384873003517438242201262136877230641820270604552877573476382226428080109936967634637957897307848132836072346685622317959805172461953471788855199241243535255559533767854447394335411605843945658440631791758503560423728579248530902009573569207772847715960492514365720327892215037812275634620186863000741874293533796730382272071854877439541725476372744325129466810034124953215791566935866663382383623382747652952614438825152400061073903259766330298887637730400811848574046287550739993775299813146314312816130670864209838818222070155743387048327856828100656286949260981949235508612240139508040308759515565290221350817854138850801522584996363476077345560712989701089313431716331268143299800794408911971207104809932552614875042011509367714627669995191476990593756219640854559518651011109076966434424120720187752150412869279595017892643082526918488995544598951324040098902108793424333805253467048853499702060944310235579829789711423863934724278016998043840831367220955334899109402970564158582050160575345772999697584196055678325944170400963380360152570772620236111660584805138395899469099645144002964499112052483365563972861943442761876223183941468521044250933925992188697115668080726961569722518308769575672416642472452158342297219481603529597934974415260153092984656918004180174165126191396182178066225143545039710591338879216709523343397866376001655328319112495136293374554303159046115581007903501231829576984066994277234113812122153565899511065707168149800845098208993252273455803305954696569292469073749741480868040148530244216690080426330498840091647723273212144662695526246751710562344790704691713317633826061689334118443491239903314475405290404410603224476285522972722264640722720464641865333551741615815183230871905595681384472572960933428405803331845814420101930339376652040066113207126998868890302637574122402939352937423430749592920514633284981834829487442079834714146549444949220062606138816427875673868209823880985190752693554780642136842729653249484384725202132195672421042338736328955276997407836084843679052036622389952192427443560888991773307441140260507842914153448318360026857940785287824456225118758252695253181009047458957581313967054122444471784416170056589239894191770705642719149003085308568304277386740504027495943406831761755847448457509277742753105019436752949861739269833574190059940683829045100865395906769644381653061182943084773917931847995909964454245344433655521851461889891204275010786235678818820222075812034397318256086623702889770703364840808784452009180627313283000355845426750121775623728122592224024533259371857376012966138235206266037875158383059966305952158711202617475888483714515822502775416676292351754952514239827832050457737845323375524567089088097193604680336873516126159225585551400257138217569098636162139411689281536642866031447116301878412801551971328096707154983853459184969945193657833216900047488941839506576236082732040800407209109300003954947858823999159570223584662028311578886740171277521943613122193331228620914214878407195056965467823048268178143690032375613587571584068442507018189468826993154663939747582736330947818153193749986960982697148648684404057825340339561888932692659363247512447263940775349614768554765952204791814557414490290287928105216248400873907004042113293439176958397809455866976041549011367494057109226214326672173397190419649034660118996931880821449263125752022317150667501611559321994785671844771686359544413571823423042448038784825378693147229903708018744477282179266233020336177358351380579063100839318820909211739185245403317895078781179807122408835958859826410279330263637284875593426718217388672623940327457616119085861060289517896899795599674667552261224336956964678849609742947538972792429670312667036671448609255397566068623100149102099341025851397354964916267448638076711037695206790888788576463083095387371843385014524677561253269484261661169301811348876127817019955742569904267116012809718847365944411373951231907889032734438079844733194785502669735882806638322256009390912204221535364574001699668547569203906832978958868557949303789714167712641719783965694499267546604549295690706095811448136217757326692792400193734608598227953839097596513980777953616250887758959096634943565040481044122028139692111309253811428528304493482659370955556199905293361243645236817180705004532172444048755471003028127850983451217271157765550861411738262954905897496434142357002423549157962189715976596270909693060179456329328310224567478610273424303375970486471873239931233543202236618223959575771390878174497123077676780787120660782485078802110518846696388305028567801837364977516002782273533124750455993091727970314831861863884224131826177397419764097271171217912043498134862389986121292522386865014578256073212771900247217981259653031858229157022306931734484359196007814477487377640363703966126146763357220765738280138672803236503025919852014481627235221878945567575688566542147448601282680286077705558449705082071576115449301467258288396387632849574993049885209034297181297002632209312265761005380151206915815534183907170406494907538507516806979120288976318634601908294253529144786407139636568373531477146970129736323892150941197694411189285832544107565194382396391401761989401420310565404310818730214167728597735812609680350757021467613358337330124977500865309595007062402473858148767502792540940096663066390542614817207626131054074150239021906593346946101866182609342484882841087726715255559891523376362592421045421527380535433741913151677241081821818758884861738913909612876305149507610025758968113767211654716840088586070605026443620694139103278792040633993752940436764162092610050810886787807414734555475205708631329377676303983249557541003729035751493214881319785690444316143441747044667885543344871363418301104513715921870504597957715617551211588793200685390156992244091571570395440914660787075786309020101250319033787400800844152552202562378932914257680805723756603737664097559153238979561606817648155880557381230492417520263430884446760508242485155356009162946721760946811523795037790744808752036033080274663162094571563605739125953543296340396968725206221671604459185758507221683625778460541448502735388237020732644195074107869978150340446932243485563656549519046520545947710442828426247356677912698804995987887818261393330615235330300182572541543416391712507550249587523106739630889821820367964859127083141156799860626355573076023189839932472941286209124291321469478020025886494784680558806196670490564773730877344661296274716982224398061894945486601418462637635337221877295848482591339464757610975962029240026966162619530980361622387379778156705467093896362164890720471425138975178768082081089411427175876709617521691236918089175732950211032814857141851727412135562963717468203725558635722183574413600197116419308347589661565122053907733128106961101132137849551896251769218616153997884243798249258033207904686962457157306346207754812005732116731299476351534996137162399542855104364107947569366802086554588737303092937841036867857687080801729571265035104090850880889367335883098883664325008620491562828609012721672294614716030967682792473979493629566546171102019974157743686164040221056177380454502624071026048048173398457654760270846245107577634911182335354428273693629946442979456124266958694576018180408503145217131040962155737333620706924984368176315197176609286487871594015166284148962922705769538452340400498050612754034212497896230265973585685825191657814730766184471172645095065023645713475515821730786247795689503544549085889902273975617849305452293512727410350489210595986070513686351738628669697090226266051720690913801448058102434479509593831505672847867469554809896994808992177105854777925230047950373561642013341691658783002500895106414065894757214092886201948555800223112530477767456256334060948909737987680797762256209397035285206085985609583376513461487988070707971353076381508567250793982691482593863131533953695984130532036104771613002300557454217913515409475073457634003258610132855586486041044659652475182522268524519017478088399883653793093725564058555436389105081909297433083497602536120390700956564807599023573889665216057589068145692145707519158305467221985715940488985215319944763411185780692748232054452095979304216884574995470806064675355782804225009972989117077649941599233297150378404589231056307294004378615963621677181267493726002940693592068748611983417592890454382884020176406904039549040686068368005072131567679648802989366110652883109346268175864318107288142450587858136302509092416588421246560683312749953651433697300021681241603224117506409753962909920701828803890237483763339093252234364262237270274431676192139322217310174578819082783157456744228048274115411787450609022759461535703146038682570069147360111273999321375840889665732541478072868067063522190688682327214064980476907562032869461583373769339464502206896921377357877613152531553524474658840184279818686913549203338164233362478900672691854902691732802843172259259872113461777121042320073212039556759212165555646747738949453099108268807784917563775485507577632943995305777141026611990057943018431983752446315912113230381156392317412512385892659440030933193538505070775867584368015841138883889718576790166442348411105969120700022927686316683727545888442284732984884497725606187114108810914972026777778487730119966634142086051188791782938594118781947240696511696299512434592222020456584044099104290886108055304865739002963204876399320803536306728378959091148140861205421146769012971797170411918781387334194350852225288687771115795416502672747441455885230911377181262995307231290735545304860921468317177088397211697080934250763137363353219783339488670529920429862555871136488593354519275029552462957418492576391064210726200872496628035236489776483831831160108962200176771869168762383353629754880912649391512920463647650008817520732409131676858745180208563617152698356779822387353409530708749582559281982350710116565651061820362520195603332365655098095056544339689422566070873177612179682795491831252344140514668127919550927312415834752151746157355701254944397586984968987801964388870309285881953758761364729361882188994946536264605428273740562193323964649778667587395556545217771033332143948602080281084372261571613532772811998925567408137323291068387610131177780272254414947823740078366429489251004046691930011409780681864018162404619628239684515655247484556683879313217280531624861499561129305597472366998835836445154728136291835268257019112734373346043313357409190373017059633812580082209154669295091265217597459247156861203326420388347955121402235207999264636517408254286072801554073961626420473500592591727094751815742527270305357258367989169811736050529600145420860314616655847086856170439030388153207876562075746635195432298270506427584294650261013210334837486786796247705955743674795660074803076791811836588810828800838497655909376928871575669435142573340992361336503481898981585533427171214188558718841495361071554623931237477800079305191429653755485737335417301340005772031259564816324722153704381283590404043129236270569905917525358154969913900614132339359729099585828532862841039642123039508753568493553668498415960695205482725925859626607311008267475302009322258379393767711549082461366435855028384449214116658242682368880524113955577200069247142528433713381017848420458371879561161043043952183344103411552291498503401581471305160363861600549065860305329566734878473247564453186242382915993181148393399585983392144175988809292131339784612550861836781191132861655390936119694611028984414790243112884811788755291788418974911170855874535053039276620836695753644243237795123839110075960867990253631030989198006030002473475321712405929575672417848189491419120012949581779422213326214147974341493277365750884624794523272056389083578793601084841600355972782514264689642216771822565563799027323959277255747143452896288237949202781824100660842178071660697641863624559419150310265518795422845568486887066728453272110252080649320120236284281886266808410286791413034932606630323230202081665522032350427993939418756431235183986824266207068182409190769525186176725409682219832304125773399223374491417923376709646423856195237389464889242264327987945292300869369352128219214519829478133479639947820083594181512637339388516204510122637160573503920669419978309878609316093457098097328061837568960881796646957904701871577967614948848717277463684011692202820978396622424727751459214943532447053349631542047309350089722452525566678552829148655539448789284864424808200751177065234437073455009087826414730176577969720375894961910111860347544119404117245892389086466540419567940535107603953135529837639386011114142086085705709236205856940273392938346287884634713942597853810690945298224835911790239199637524280698793623028853058839116257181170388502281779178550267296698936614461119338666272979496194189745702772943940289500415577091591752596840836269005822144248581097193973532780882955501231809628705968434974666625756119453968432403128700038707041596482518983314243437246438050322137673689166352979944160209141356872477938760586008085113670365614092366548713943557181513560039898526059543607931757295061400517014284866830899108107580916920731342039823211210690276670341550373872317591363087196716715188452224191857999075087702434054494437096301557458893375766084079594962409330140684499111602208095350812971766598309188227889831657778386267959486927478275629169908915696925418496575156470235402345676171889906396247352713814740981074534628552132466062591094748567328575165051912758126072561599997709026037862712016137417524975065813847833177577539144466984813708365379955725298027336810700262150761270330872854231001202004383525330407805377799885789489511732229209728998560284684934552449189470291882616317654896767086948989750701103805206854747171476417044622841488717449051212265951628484063472474817516986621793397565230906607857466389215382728189972340382382720207264884035572423753570367177654826690265844669595978063333491054297905148941388990516908642083600166371452252158214154538666040935481568485075447556478340184481049820565427980258107759432300566878711999032175661907178352851397703409866925193400477308422393926717131862874330712828458152072326466407174409026113982632957789313080976400741886477531206042288068920899422279185604822393857090416715382411989470541061407043661257002204731587692805352715720276448479282114605259490487265560478068419929627163793449455068440922920954949870896083360607800360897511740916121627224240088840725281608930990059544491558879132512662861500001657597579058130958880381537121207879412688594800862348513855339834702223152360934969427361851155460289786628024834400479836594100607255595220336699717895746432539986182180551331223467395580766809328964297477408031536625315710333957810216268350524400499684038156036047210713506057844329034255905889078993697286254950861386986041022670254150491956212871157166611546902767071949903044663269082080820344088597072344730566721219454137353843883143485573115127926363614177872318477918879943091093769136818177631845203558049505466867060277738151575677971118785332650278501056804753766340735850107864870350382162115879525601743661234188757065651419219096516478386514411483839552610276437508401344404354624066180280687635380828102198595472640224226148402059666450917769730663911933252624340173431155526730516392863051041308073987733530677023249146608611363540239207368750605504678731120321451102955216234036118571502773113343187176613033004633297679275607516770487927962093664773013644244950582377614978721025680719499549592846488938816759000100226628179355785991198342382243747294979277206804044963488889261836110636329084044828375564492497839060587345971070434868126713985101902743203079172388803965888357841690304585537212624058602683827399551713394633784203649765308716724842597402239322307991319197911785786503445567024124770661239583000483295045971734245685465763380881390235741801893629574434308578028808768742587776449610543161866235890469964122701759353282112126238200394242301350255253044663582443684241291650265045794868183248765463377139104833385521822031283717006233849592338810498813813611006701262973362718626781595780242155322969527807023312443095426079556219631930365169035716119641387476537411513020011284011985280112020376814403214281885246376723977997102596111740660413830332466972374005741262209642882775753549623768425272120362271093170641233973390427497080452370584794460697702479402038492230412610491021166689966426478022102129249394005496440640785414160204810311296389482790554941828768613404496613993587907417457563535816412777314229788299851429135925136974356179240534510982690383015060111662588274358257681585160128166707534368960435871698366541313124083441606177517513929877278476535572888178883089051077214243470645540090614025487152164856379245556380000715357815566227041675998123454217202430767725780965170945757572876217373303232989833509015095676247882279225101689505178184817445868211133302991267720624372017850929379244781715457839340703553796001515607037122492530906510555688405142468509763341181552321381970349157309817237981567420746376109222692815082354439453798543058491410741981930339224807523830043532244573915071404253511189040588061269857407117271845527866307953393635741572919374327051856883753173140195579967779054355940648926383389085511568219817695743699702737016563179654398509486281657495678924016149978984967978956200395589107036782320406165770551996805941504092075790795389124460289862975131796387215594754371470076653378346511696043647332791908172143612291759072383377032506047442619032834783784373391242515952343268981697703083073907084676956721943100250685353720857729641612649982577264268095062727630897083613320557981962010942362756694753097308389057203941842892278310592782434088004350598633025076318823298530840583627018371862139070575429248343428221922067151692107453115197189319624910173705916259934135262395445478929849363943979346330655418422660553554558185365446574933576320769881359986703101160425072636318088341260865218091258415330135241786375710216740044089107495018826068746803910445800074259258596243919289100715986741662842647736669106597354211025081896716899620077314061132304842281149461592222958822663911267472817264635893703220467031571786861895880906185270826958889976548415800343416838772782331081953698408042761271688289687377842275758356054636199920254121043751372566967147375597058350195217409635611582610145531137671642695282182069987284014385844560283813749724936026783185034010128983967786505501071050554975453506355308271937736175537925312534652995227908794108849856279485228734195252654563784957443218607399288704693070644040046130078590352661264546025655811726955420514057480889708194004302805708614863975657750022616766948710196592964108279010869894558082803551427507362512285487939115503839029555856977914121829519309109081711049856606079345756907344029215010996748107947850117321136979731045558488887508915011030648110136447454011582620249799937463467781807895529325833411073950547115749705273875341078129528927162823781917589340977743898082705563841967026940823424144586628845135534030963885338556761322210239097356275402169401767453055002688836297660608036532630731805259766392209125654607924506496988774924214347655742938932536717863371892191423995564863781696666969822304185840936115692915824100357679777680175423157310316212143445694845234163153042840797660031785102814883637255816906214469630301356165148103027256856309115619623400016356884951527416550146162837029908540957421131006241495607825519469824812004544456950747294899239221987773823304613679757877936636258010560128805794757848153231169746278087332586809846867690460280627583010898946941103270112451626779212761066193685010462722574523551899294663855917768753460977043382019070589703387422950192320471643433577063612820184847102607183675676372294732913889897481668856806201067444873925402557780465633115893720642565319795719972308810490570758240536402948214603157885010101193668137054658748379714998940710887022334622855688411789547848620321171667513107627039822237828863114508834462946775531870245031252872485802186996167004961540727752503960294401553414273961412927476174198935767884078592000310204969604245359130058033665723650425846656760093479063641309727011136092954477032134908712137280391419117375320392674104502538006887217300701647777593052019707295636499465195772497152867884900125662912850365130432877964350636354626163774281132161619144940456727374004012529728098400588892237321398127698868958454706705817962693828676615925878208214450037977653107973798102893479637309407825165475410983793531042404028322034372860695741433673838819709287546541025856946464767041449356063351464663828719497307447125911839313932423719185962224841228722705958894100007584613709715658381213537766991967254011840142943744478710612036092989431658437871785148171091114661698811038846014328497706015172962354978873545832775575003044135476551811763794264899035356687207469089328565326948292556216530777138618459540904055301282827550810018898502036789183371826187370428459168015933996046180448509821419295248596151365858365593816321625734964825083134925529558211899995177212143593169898891810234757441805436035879502631939681751488134185431205088491400435796952553160449822784022606669919782583472220754600676919212771130525366698491128981141606544618823701159530805166671724185676680739158880309921232803037945806213010496558635773025708188298379676585804964293256936403927760104912241758277842899068264960287020930461587002717174631865387394825744923075318616744738170537152019852846648912089506019656838739108946999238417121154054569815890900508572732868738401460123346378981012399454566063936504276803300986367225140986018897012624687541952469653333989511480647133290786871667430448996887326835625196866442738647324802642290268554238106381169040638951296175563187415444655568153196096394098085975890633247838881031644256477213687106418193799907376249069670606792384211376268739929793800620322838158172578258908056045311333187936818980283443052873567723868366299978057677512644440258501500557726351336608660231043664881856881509822235524889128416702060465644491115833383300908484412575808571622937294834394212662396982454997150689868353539190116457261914754999534766916456456045707567255239711792987029365196999049330864100352907250614195349778339179717594484329185670204951896041985894445146470500640323608237055733333912482213451620611171264541839728468943079906689121739542615991475345636934901218474384919560894561640517935821823662785499677781299959400001971506948158320972189882378981607629496640192586497742426794551975861923296168488565553130842162423186147148804511107839163569744813154117748733270441450401191903025061908120244202225357230124959189161227152938686019062340971005502793972206889850696318428983241372989351891341316540903406661339562776406643454487213342903137174036979631016281851005330658465248684090922207837524283872800851571067279559282666526286548012781180245626041906783942681780214778485538874531829217376166455945775063107215970369387923112249688094110679234390090254076861242148005802073172914574141836220680915959325638781619392552285282647768455946433706424310666417905295027549710053305812253260207443825530865979000633096223958648885947120117608803752805141091798963762717469458193802843885255375311110463996228759197268567809548512281557084236629222680036152180571919464625220297997407335308697702879140846490241314704701727502911479702688835412875370903023506328774528197517297101237295244684730969529590344062833699885293790539195437179861344429562260351148698332769064908995670867398660028342516216189626661511938004012894124900034677036944040931714199225337438448059765608958309609874656391177260583403743273659658761191240644646501204169022812941303656162883194542917745506704820089520657471700071893185895904600087350959014960902164404175173757196651711701227189260301059882564079714507530692057104444077480212099292434239720930036056382363586795883351193136266463460487630849958965435038897291497572355310989443750847143444633128662006974350159873536182153699247335523682621088324263038211363603286956313013071303966520124062704806123254363633244895979655771945953243262379664207143541821451457184998376871995921812126029410799888942962202239803400203837234239939950501375095693224195105266610943806508317930645577204311646491844100883954302330195174278446262736380874632726153249150763537752957195279254259587266444533387669747710860797498114522571124779467825686824702836246068342978676227158785212427790869865576489852105346968901446326571391105148411148238829055577978373327053258176216932687877855284358906372626160907328256096001879762651213252274871030495960244902613787478075930465337318802788427734249779438271880298225582598191556440252608892335839399703281320778758318437833141499523617395811586466287397805414658684797501755608020437503100429894711817827874012530610170791704014902370215147166393112051146262347539312046555838212554785066426976708570301802979321822053290478330540284859069765733502734317797702333914729855695632050924869567333023133361488564781566429885235603109805423344713809169281684797669919440257381395664450533505422883116929661726973771863191942673395937159785203867753761100015760473124543828604742609442804346201312079590660443941771651951052220203443117757581714195822421924167536060699106559967477783704539443586577111317944190455447276016829838369206842292485082947791497840434519593044214480107908385838826160940074746802561475695614923009432330352300469380318798474822656023253122604644654090712518118484548594005002302299670226165815265258827640115442809133288150208227851666186583005362249970815591846967910554501070693925411581030813779052857819350775669685694814335904652648562301864163825323617783211943580588287985017893564435480341678192120345611153477947507627292264193324337676051498048996271329472243954440732670236943736858760736937827961392938807993241182079435986310721531524780311438304070150582373778649172075896288645279237417298192014016723672359309242651922391199768535536071898892734269046525495866951198378944872653930515083159751740872050730094293832847959627755190561198133446472421454871429623145161087928098290205634351513660457850327961161286490854867301564068900371740209096748975408244108722623118400543052241007437530281357008845229174932457004677179009028013526834939078965480544719959505195989998825771540808764466942470190190080910200897005722368829315193435478567357019629671092268585303834896834163176170083077193907115403523318533556491604948102977020635986982220237734581896305771039761941946583223610110854550603881595224410619922050833217876714934984230658864035751667526509921413621632727387378613713170732509471109246621027787772362941710099711480158528924324800609400701308336695544218910984404160561728208994897189367871575436541952368145293369891932014308410925192311381889495431617861750089751212156568485074217278781367968946119829573406190313976818214548441488219982189693664377731586035837767892227586454753847181056189534990366403615351988005698273970683335408202019575499685268308216387964172679669249337423289988071664505738829514036630536836395009366141166627871888227541814230186177115257067104140625579463551722197029064714811229999047038668927451369201503256211339669131102669908985504230061753367722773625236346241738509560732608726710256333016852092695233560002062194296644262386095349291406084778597266917963680703878368890832788627187610186566275779889285275294001760985574910694816093253228009964378924432970696315179799489468297884265865905081240787008091399289313426817980341528681853968808959751311126497014821434695268187028602158755524887607369723829120890864768146046637473153657674657296965354431954847907396592807382446185672376172706814300685258372944504062442727409539545042764518474337841547100517566344529559918465513131031484193149122405197820258486330767125384049523889351885286517049178742181593912746423577054888076176837118614393932845403410825919072642064947677912448264190689403707166551431991201809718093188821613573507779101875924414528961104692865166231952267851921979565521766655984196580400152254249448576316775781154369573897141945485415532191147793365873841007237487910519744056637696665929134369941091477825298524282551573077969033268320360778328525390858741216707223664778094418644445251216194294215642385357087155888732809668414627167088585982682374459450731120099746615244544512645807249214590598276030751970944336399398602924096396138037740748722880598086793403280610337112487619263785458511467695163547068302899319623258691635199514897845192490477191501479530662825115165857701153621577960235873529689729324804454833589736470128891815764706556303772686064190527026040251438318429094792221519831881423191331514907487231057640064693617834454062011250655775034389766641577703605744480955415260670440440918814624607935535357982778619494499864729665098542556285842669201603558637761681625366279513059399630648486212723127385682626414215899889025622482335614627891086021757953608577795564858679120335160986486055084895930204103432964667680554415238686208793165894853973274114252409366820873584350714607666941555926896571331093691931573159380135364676949982554517081138056291984469545687871023018483886702551588396594147161060404661947506009950185603820414194925779934916456254199561581483665178075866506488696341597358269033104536872614126028257665535186373232931114911467676190879441313420223038022718767515486118348420096055225029411229895534991202728438057363950225034722755006726213539030325719746679462348629404970737563394131934181992928944814028189092160354068296006384109102192834572277874440821153877416725239540162154806345466642124355109521740256419939235213826473634478663331652748152813208379341711596177316277208001696492959292594487935446645369671460177475907235308005365833803415004317490344087822463165392760264411859330014071727325850299130708955061833406832502784617470362764595176549266060154840131832684153646312678561982414479254191780870468715829195258268600896952878033524457395073352848225838161828697486166810935202362371097158391061234315665686993079044537515900851245088164637654050736986810356227740284540150257974622596520945682868203076063882715531187821232010302768803212048120282686314687867069319578375362846529081705400179017924068296399754536185148592173365728931065425287176040778281434528403943732499626679466688363405125904176336933465902686641917538169133583148578151729947118375279715635686686100124971847869027120368616870158735944272607302861179787037047253817554896046688799060212054320849788812436607751181227855898496378591413722458748159864885585949127776128033650231283879246020075104161748380673040489560350141108927618110016019119799739244746618339538642049126920379913743393280152197891167701502630850584774198626224459153946127929998403437301638659305511412829253155927101663707224141818420610205590961162264778558553030464553125495342491401193776143154649937668917315136405188413822458509605032376009610315626135837758663039694990784543722791438597040928658367709244378060014793236348624214094424412984974352975021788565569505657916975699734941775496211037593479919499945101073364027296146626629237432757373710738648345302072793320179910646948404899312197409742281298009474933890330246815022640444331834782849206964687652844416497309309494718621306578421797233912655564992605904603579971851600110934345913896363377538347393559374209990366433239315091039489556570114927787289467009610903999224547320957368096935327277361823051837215935913445808742703246120973314450222534722968113341242812204206233802026878534960689701367689758622087295861267929106777385460482704784623977214768248230595301636839931065059153507381293988283115848038347138699615311459053019568282087205161138186369352990574979573913434625491041654351487059390404739613646801016617348466638277971083923295046232298221477231483316654525470640734317547928735406927991103508331605358639487831875316970687032142197750963907679973919995057231341514774163657036335747166402481680810471759901171488952172944863583261445463010238973075142095901975119673398447352402449386981963514215856493115119418344203042765787245957928384363546694348079674145640239657525731607527299158941529003108723262846230838594997254731619869599547578420154145375760904556424015294735595358580043578011291990495025353534115165474832838836582746625527412893609261026467859535187645138539623094610539263851658559826807355585674451656799517055040203926424380874874139409748280676375539650473954461700932147723317147275076631573722347788814152399208057080766104158055217033392944148909354168786561096309918520442892320158702798219639170324338556848274622901275655030123781648572200703454289822998372664469468138770982821640313379748869415376837150060327188063294265047389116994298654080405609454756846682123188153002400516475530337365699800101157644685103701222790127365776427618192700270916399203893530296602386586688117420350655575017774726317707827204687315530342475710674607974507258606913172806507176590986574872529851462596326135708182542978737863003308944963380160577953047567847672557342944208025652100813667155390734799653815424427524197456122636430569775555710813722527604349996500881723577127476556524495610814853829348644362905164555492500406949987383434266296314513081683373871279493355931397198175321516174928669272939517230858427729430366072181118004509673107539889770480874719480466339745244169443477959526137511565012622124536563102160032292807981533309111758826117171229924989803800031478068204852816774245169124723589972036895672973970202926980238537769968683518980833328752050641783253740877927590166753997761092838592482441973850174554079400627523881183722781114210866359473606764105096113717443525392247707304770102990481212166940264990928272267422542051091026252684326508862614170554940739411688853739686809970975958248146570787610472188088056220559820402146585976739817036771090671232907585015194612460561066869240928681851755434957895234677727124933779563162402119779278730234957609430768684785302377203099865850023110531906765849193182843769573588663447266071697785039723819302004467242385005741100075724922474650619483128830782394672559317982580839333307716471923673409657514100921414296491938901957158572074649158448368943382022195689579826331550520754723722282103742271513549997747767566259247051111946604722846200300137923069576759630791370171703074817136658220587980493866887266509035936120893905290851462538597675610457344825486239733943492063899611972175578946280657795311310632677087523290208264561098588671763816311183380389288146156867900226506547949500357721156620628454985200220571752358911283171878778291596594494431850252789237807649361544892682955229545752896493248290515725071634319982940368607745578176643818118667808544875375152684315527318475114473937505929331509566837418540203163135333682944019346798233938537047636355338787824260290911521838721276187930922757266500894055079930407873804453241353184913964880613209092316726219621858709106486769143069242680085407212835791299621789183334931209001313636475450441141512632453877285096237733233478981163756994560281079769860462991946327118643384214151734462782318820353584361500181013364404943381007129176269581394990008329770168463540503602663434305950888400457041063054978857015853978603556597668605408015844656628199191254565960432903886779329013661313726327335002685347804286688595990735407098294638768871246499740797026681674999792246420155590435309167141195853390752385377438101884643361763342063855028663169416699897286339884994427300873808551131145764602101774085221031815868487251675388340011513106465634624564962680848309430001505712169149799654560012099049971466533967811441777053688553628005390001619259506800396986689457471132646625290613984152895008666051481104147046098202271372911179155815566726504710882705311077858599671781468118617415079913681541868865379852714182832172983031178420745652832383371719520512119888845583114624852455008329591358423836963266829879294850365600561164859429755887593437706629701329460076982377680757280721816011526976940911925824306646289407405414038455742867606346103487518258935253125231219222340577302877522704357759965252663836912280342322194904260178029948573861997592803962604961509898529795599405683919786933013600227849544996684968893907431908533150588227330720410077862895785444631509712053970188763667039571027198573085727591732090979458955199201607591552033045502877934652020320627130656885275041729610590495071608064433858106340341522989179297402486948287479251128986883073393359513075517079211795957451643078090880862481208192592033650464415712177298736732803136879492511192759692935823320733513515775186483695439327632531912898039858555464300115026289848490208615272887744812788610726675869324436143224372537722080698701022287621275741174440597616186464943583957436153803117112939121506124234007883627295796610667902769043791767876276811973677315696629600067240464437448951899872925256200587828609877451665249604160944684032414106978200777000498727704864244786215537353484164884974877576294227774826703862964264443472644287498432383632927942028287893401488543244826597977308516461092764800113002549046036809130426294502609477792156562907492760838656740027381159548748341222975814058202858417377815557308572386656759107390064645168608644395105968648104692425751311839020351062037180325404939387628882003698593214657422684800172309762261846543829652529795899152211483942861033852395748405201041372359573480173025979590177917164873299314679651174833733255131985146909419610224525641293739035727369981785699386303623321746274786728356891845380954278148207329187662610756491231912989636644962003123636206978188165016422928237008430890151186491219883662141275075734872352666741736082465431811413221066117450962147851012074092042561861084464263042374121882000329031310550805993602882869129486481473840305823037487704241633567980386444927030969821679110004647362020038560604314075652746910472836393959581203172304435698929471041270052842111745530823446616190348574037060936412369560556441782189749728072774509742041376466413853409939317032915310469487954790320687073438001681035842475352076398781226754167352904010497319178079704117354417221791781046028795679955766536254929214691547152814088922632461698494522590811919029812451161150770521361694480631224284885084150879565486302598333541464680872742319807181373917456206516276947338601226521621935382185370841407786479415284353682858663351998105842164957020749981418025317374417713782206173602292873429402146008390636486222529121672922089140101851654998895715453263326327774609426165534186144042489588416200101329935487487066911791659032073568114818340446665056734175818743569587373919611986234026624732920251667551267211006473040072173917426372057449497117989456409221815595656782655733791367295818450025893600152873329233057167532241476452431736707516923696912977567047045354127572216966643389343175919616132960449778882119876666678117964395861936966253368145788372753322616799981389712465417730938603091186736159802972290145950822615454743232909266578090009782618382845069451811150180055613797495869269582943328223623444799394116576507781897560337010681949876114599786494644576608014339266658310347253076809079562062540169739916391588036673729435849332707783166253269995041999334957042178531276407752306078237573635750596307412912094568540387330911677706895542395613305405149129267879929302559150895258206168730394530422239125308583097093231614528929965250806478185756780634207721433646948614325885474627744811712547578713365269787721396127589973514795738366587962800904404624095012579326464228174167251053791234729213263957911437325459834017065013238328505258308306475374621068185826966035769263925667437891682093080635474944096373107362766270235725227628122673817258358628011810952691437451755337706107789454434590178111677267464447242809985819922620393383649840106409117619471276349947531722637862548137575623166108316849475933674702196066986514534397973633316714845366195233882152962749025808799278880765082553639385320492804181097551260174575871995039733946094515729667427253401560728772100776907993718521605811320302832379307859708359126596366834547115043602785510198678607380138138500873006813785448815392292962093554949950097753204804706016478842943365709562214287756556819345722901174322478365697228049576014652073555508594078524089055038283322398737027573982106447273028750648776972862544682582404151360750430099693353196448758921785932266691583430236595789706959926247049601595242354235258500149193107738859448564461692187474407973198268545349787278782442802679743582089795618278112093385758759730444989679214201557350850844839329812911337063678400696807038774601801108772049689962922977668722884771695111472329715062999273586055630470134971186978496191362138447985668878797848789997407155245924070828150095445726304341514434730168637488643827614554453105485121200614391048512316937241735965829927508365920544236634848260465861612941450100759326543815936194800710111303289976778674049567984220059729982599704000510732551329064346712960681739212909149464760890601867859317072402122158164807065514784167383325957556217492972547693652834021987022237588154520239474577861265335413670739893384630384987579452770714427532041615010930876836123255677408538465123097644187365674001892582961893509542249590243702710254232884974996320859663285763523570435166542628865581483861522768473851737768224625895858384683748056451707400518349070113816179182994652082732335853531510888129061718981138808075926680791381251476900559406938539697923085467476381887233587763357758503102702252413362632441670630034039486279346233828461497016138241515167225255146355932183209498430488048679829619154229602834315167043391610995178171273022911629565452531813175333079004267245643327892464063625825838496888002116391207576023286308218788498395658864267643215142748051911385277238157418901808888341211328639457826682276200198100782013503353967352379567442637649801024635739794850910306541966579268210534802960346242395930512278887212257396408860004478399725406846564288824660535747489019747823200922936288619445328003525668432542739592527585818663802210372123772830304865098374867824457507263219906156736405416859861167360077743152086119533763331682790572563016094952080069186637201258582196150087383584276218042220740688579416618690470535795108191542175001847933654967786240341858718468561092334696176271651367692708883417448590528108170493138912862949994276753869221296979637677639764850009439361386148582557494295714966476314427978600719867556415989950258764026948725401444289939555182620131395325121586415739951773422831226975281358352492141289034217618935411781493077479416724781216026105015408090654174058474961704320250005197272685666947544821267572118389294890566176476359311271737353336836326370631030794838710605989457462806093415477711267757044290727032498952855095061405961504803860305565118174877434226796758040186002815887448860156832595515528573636745844899554972657370757901467661288211657233827232471326565343004663945991292658201660358173946459156120562288845783593188446781134216954434541380628602639380456274677430937058209184754231078042742336383596217682880391459210049157058402068244024783920915485520672749623488004627868353041342112933104978916806142353223275275682030323420400682355495176442987084169834309921678681501188274676021040072170305574708092297596448668284893621836468414881851145780937423381043611877454505313799244334215258179199966181526659514662196826132146353286651732668483784910556873981347268475106366173075447656632667708852918102806569970601301460306093156190103447779658020356051647312926558712588786107505318105090127640193513982802129629420513641599167731972543687424469541910351502063063643056522671016522490191289727996356816121862614491585161547946735764680242831798664256412702636423059500196479906104531636976907390727495657439871507694297807294849359461226714493863846870337529916733236506796797719365105595943281081777139802381813061121564125927664744854607134079446606607741509690268039720671274137531335814605410571194536532937406941496109895235252340118556781795099197993076825078391631247834142098682366661787768095060196758821122592199844122751178631657706887062334536028380674072062043211337652107888655555332111767246962755888865999994614766697705869242504137742654487453092278726819682447606706819241455839385633138703714975415247123174800800440707473894779668379774163098507524812727968650053444497636282690891983943564711779478825912350831007388506370086645450820991393045090025851361726701923339891048494628580304282335586210472089052567043544547795559239732854248705380403745928263830774681134002402072944426469291913837040736738043810809719488447226796883539840566313977205264317456795456695561006089960457303996374698944748736652866415562714810631216222071749577378797861360295708920259291487548236135804155991442883115142098462641135290650056287863466578526733409182269019144345479883008687933993052833309727371824518427617012515402589181818903208109169416031832647731284502345495726489187850802383271060184495509628105929128243699355316367704676206808599245453271158985879407048504263826437927578856505797493646148367865525887519673007743008804885752228023633418970334466385000808575994716322273774970501203356435992146723059258008942088748227078214883842868490881899306652747233804318791632193700639584402127078244907936460928674500321842748368593633597107409714024708997774885464569738215533199855692539640154289947036302636893698085218726663388338571711599701029228021193414960950292539373387382476458746704617244601671229799941487400186226120536255525772476757865058042219702172338304772446466155570942519609011594440739488054119509029103029610410628664784072827629117530140244382989653474934215892293754039568958556483516994264834024743368956093894594704636113282218219525620629131833638856467596636628787378209702872413472379001717816396193464476990544433188026168372112349005498384901310133747953420333985645933988674082744723664749919189438880941888287163898801163681758833168491107045257223373505988279889134174446275444596670528594429844525746387713354071766656992587097349268401737326606010527846340018408260749921742483953946737580308671295679968511684918080342395172547361816162076427208800854939511268495058778415883365091677738088687599978808821931890591869575024655811003216239531218660689287244944860257448793009961664404735244954483121743426009273557967867631418165049406779329247461593821418361815605861666808840542246751415605675302673491945145953190524948984618024376022604687232301780534447904237269013374962590992672721029167311238216407959932682165528235488319811458148542044504346884658691268252328166071500267657290399657964656040686901532599330593886441458449527489511601824636500161551531112492744716152178323089810567933707895501836882372335194726051653540965223116756471246215423286746328878827082253553567289260149586778826282597956262820804681451367488108119797843238373603357392500457746088274213656844795771884482672125162475537986385571125042673614430069688350572566887817701233641398579773957411595628707349445789937180820318240957789599194873079985927407454743121484745192304677070196531739019506413620538470000272084014976023839885627440123161443212809653997685190489703629278812477036733638963420667889465363207791985934775934128005564863107369666118932626433162143271994130357607212401978510539155504262367266715358687318872459641864855088796523544497227657602898778389233434117783839815672504978725351676166093981995185014756943943116867073115009021880661734445737727339183563128587511920373640267013443964143970682470806762592961356822169333158716590155795175172138226029046767735196295541976378801536084294577354802911753446391978781092548843735064210702581570001556536185645637824722824897507131522378662551864356441566308444942250662594309217756329213365849851470271948507892781163713846189704941117038145682912249157433953792119399113199249131064284500045123401051855055974463990891734285765544382974283130792337758076810557554071140751462792796830476599417674114260092401889262302967369933789310601764266752933128933199495376729318044902079970012837066241706645495678218514891975082447595642669041697949386080020588319561410523515110104402618559029857513553946799523736495994039051600366235886305801601047080998525569786888115825675946519073277466994590184652290192710432240389940869092676155426403391029923784014048259590288102285743158718509792090748007451583764742834046061886002036654422497794905906673909143505768592669027731494860564339341108181318388007614465531427787060490743405131982890843164765235205145598015239312581337329948809978210009601656871594481119107107491443215934772536128477590859448513562631484553213266870415674586410388259233484640011670672256190763995014130529701231281400533396466576465400565768912251165921254071739994764805124134942575666263227170352043064837587191943338865635438223350239584572049669212840270815805837673822536540222565919797272240781770402512881683409592200515675895907525833091723321496082500884328846007908579566264541476437331912714545647870606139650162547645792908241424862207860034650629427880717850638757615728146572227878270743198986868925320314343830328868522530215327885857609923500435119184988293721162688226866460381615662179747302320304254846392248243343245134622964734110173021856217078902937612972220399933207625343359423165854021816028732795855935416196210510361367305254134816870273884619404756782726251091528694595422039203134222357707491662344401040488625405824769677802178933595036520222121808256243142856260506901348365406249955301524576584834164193210762604126769817141912515778097509808820732581717711005871749460220039830600936927279958211794574131245180256400074785831703656726842813812183743308249654242928266328661061215078848693212600503264939613384919418637326033077492804686870923256499323804635603109699740811529586161885080937327029286016846024089167322632671035029492877951803793610569050600628966005057846124055517716312697025548335922334152783960919762006385784385102330638852903672105738696820509433559363391714294067159833589084540422544161936512639021707691421044866612573354737287703673927757912667550949587019971183261070073895655456120009345322906485031517039229358066997624179342089141338431413770618586258332693689826023554100867159495078624443169082048856547677458709522734680016547338526892196654899009568638116420155304738030388851020656753925769765695019711681147207861335971843239594572874611005944009828648721242756706536107658398741107533993061481068749123175458101212371056716692745658771518087806357677358030913937904340099292459217834229323801633706521978531032499861836588670948736192864188568696335541412344606452192000540586070891797153364295863435407081927855524629772896525352970982147873260305955999939565879552101607751376494145348674954812197613536408537190861861791058149240734444197182268542014869530769470038991714331825313747614996113992810664710491470888762986572430831931501356832895371559468290996535071080011376902838015941955669569040514135834909012919746775283797072931358764669197029585702967331626578762696363629095450798214614270484354462947342737418117913708890741120732125754817647825066752009119810880005436756567046999430336918399886038171212791346400036595921972358641188718084246603577853961136760248074313068325341287493538082581896503711328047642798122730568942899342194525886698667970259764177354866301986963903327401486647247529905312972510535449190175950972392819009606969694642785166923875666831210340754325188615907350685098439848686048947309511135436582732882126667731394975331733552509314737198745645166404197024956596269339674897508608413279589012882829337534972165979113085101797931797332556007415946726059721574465305191166416065590212975913175462320396659891917264817051751626168120633050338713901233690450686202599903339197873561891121023542495683858567723139687433046978587418518747542395471403649323039582108925082318988193717391005588952061125438028215080326570290325419908944538011359391828127921178630635217872674692894307655109613867479445529966613456143841501265061184589536680011098687080398626573745193930169674337752442666306077771427516744377733366996874047652905385896124842765850245070708919726138328404763392675724951109466884780012642521350504079499304223601364957159311309200554770291451171893677888910603295756076543438960731666705864812953477511026167311655519426009865899682592109409014950970434877221559070669880621231892291696989288236503736448857186550221285065128618383201631248854816096338966203407122859842715682051484121597221901789455395750113643061084848949864632085535289240753003312202608191505058575952208744101932153244774684607221086118763642662221092286170811864052265849254690756005480535043696716735798305240449591580300855086108305380086156043661683524010517473004623206059623720985840001173677038877822158168381545237770957881537698706495305040829025247290142027768155322323711980443802550983801684522510940892400669372820770689014750812451041205555728424245426482849699104620434803466824035096956322824459785710173654922026607523599388482991447064628657141909602037429065483206224837593864460371833092592405083664491930422601168283646208657903932234081622868929568708969158041084755348530582653619365641822978734770815932586451626630286185975385201347672497454563211195171984242108404174350934953524732309953180066313094520874587245459841900224098100470815893622672537078452048062990993875375074001210289442872927733538057677915018764966092617014657080416090618691252566893088462231999061373187759069006182075459796428309701230677849086872156371391126760127004062970903958384390331560314184884282333152551474023900139613761982095600912333035851549544714362519489991562261323218994109973280615480192751564014300777941455810425090395547410162879564816771320906101100583568508739159509376814906729329764527779171991504074453994624450154452759614691163418940359021508495816675294482048876124444046893422952356110503979624367681069446147807116159347241373525192400080941169527050725139476035346595654363117452627155766424026453507203838408556541698298635001365497561199980426546709784793819225025821719065403573946923540465687015808955365382198936523851366282762773688745053962828658002799524708205337131951747039064985120569496404984734929055015832178760538626800219514845726893608182007507182822937883864622573013637615868089642111377623752021906872221486696655203551300201723709863110242012554162756590453104495405723829155873115115718902058085766198436388487020431562548254565411304325768400914762907093649684714137778731551941445501006847956029085249891228136896039624897873813057065837775064506456160917901771676680626436533572140280887816037356326033015736300654068460051225396275519162024431457772165823753157027850649708650496348308457007368660780679710896216008801407298242806150823712067533193018267656595291238130441728886176873993425555287101196848550780149253695254192120816104965548849035804029450936815508764661400148546856352066043375079125188617824975828047481223286715388123170234856915284279712342290786654172799592419612221332833724288242682425157478443963221081953931423210788799909280430685613383451258673822256355440470668036241121884432865623420713393900507700065735838884645157029531255666711121389929334097118000944779217835585987419353663304821410324744735913255079381004139781095588057172223364036256522444949791890316378456630461818716791108281256756289447205186623155869028566487236721261471877426566437671448173331761796327912533112136591302258861541862895423932823736604754242335263790819276139781474991487270042244589093827888729642352535164798495917673088050189277503750966667497929047233444158416976255912690238998845651499785861731479143801582233050177797093571859880095360359238101306359717092759470482669627268577569711651076755624013452890678995145907928140585898064753767711782062246360182680156489882438592403918601516276024542648269685964610211413710870079204375677278544055911061585893262379957786520026573115632913440050790497010967774512013675143809273573874934787997298393509173397031946973171897527337936367163612549562096448491706342238290513687724046046866475768549851374478071265005637101555073223569254264919834524574426029640451501737728844039179372257778940506131367951591768840254240270423602500688185925796572172507990417813140946561139704788156490988779783194676447321591084775695939088632010267082924257713660670200890667032005092245822751580637273238163560481270941789495218062459108286451310821181029615989061808809793399009259944827566115212634986560783201153028660721601267197624192266826384960469826610701529621627807710105196278294016571569791920123304910318422877319919683164350687540175820868009902165050307950788527447758784062895151490364334461753039248158117605481259223850803894680471188996794940889067633650282250473649002804204088768075366415427467029999800609078204829354888800641589484211968977227264680316000609191048339874215420175342808976582821797477625545724541218032654529351581107139581438762670223618956263608886880487807780383670158845432032138414506689778802776978540719849077173756698258352231972698034021450467412287864843907293345887991330333006007736429943029769137854444410594283607822328709041538824850334083661841178137280168379080529441110189630528042798015895531546655547535915255382841319524885088430944378709007226630745137792111374088229490289462676929279404902112500278578535815744188030436308125582917623604813742896499705791237657859751234163958028996258282307479365963378738845106661395397437531303032553350400496609835231071403894446795841486030227976993425330592389085463023830890747140167630826589023232660289689929599398050677123149625485050503325726389986951452140558531437280721121640309803629567838733383269664464923889605513972243753909762591590170912925994521614921885719924536301792114344177754211756249677615281247632357565877161993433449286117347115063657849682588376924125760922891030991887380654464189768487827650949147535066772032666235268102132099401257415964642464333732507142369593824397905934730913477359078703194009701381583612762607347020632414048930423851473502593822148140292983774925154886386165474311984249335192742714053169436879186716450332833490097008260804590341586741322067895637077676519457667917099939748540891663704174409554148950168780106663128687801724158773028847831939170841684999265779184212194514926674759060140470910421018888632271274554030983325077880528696646259169998661513702055316207541380113482921018875820334352319974006160195948620330673493386914528839222759558691647193521163590637863559474959934645360758363595058932048695398679931522855582697548089575742010882096816250179896463357630157011591452673883780854924243987798347703081321033395994366981454247343111528721754797450310940957869135646287728552835672739030235491668358605664008840061798213503790942146044528944912532325344807428721936114272929540216076740412959650482237844236287211531657330373925261953164810553295209108617681669222466106084340820517394469869908647039185976971802536176996671027495881454152316072634989363421497489834069277422161959116216780122080830018017737617363852834230859276377571933145152616061010163996971978218608725704177298174589450814651718196326346805783253166446685418305924727701389830972542058475077113798099860971743339836052045863691750406293818488866540017477592054758223616448049226522064576041675731671195589994510209425341803146845810343509808903017624099255440765443517365034891651978158342604706121876767927255846711620955158070662128596148698861216452103709816012773959261171316152063611588062370730467873945815392962653848265127602245126721177844091468198911355256627925385207926631780303419294949150124399772803111385798796569117682366460650858579549467250396562039383143231137989825456725516328971156067220436438239247374194921078789597682668800815201536517353698556422609849295738148025958495399814692125539182326201955674225937048478588225696813980804008181761528267919957140406580463656820877822821199088007005179179002967062700943394004594976790471812733335950356447138095894257332603093844862301851883958218198279748463894095338614945927202233555413633296787621446990719455768246843080747551230852974023767788158061935379263313164034314452867837748285371956716348419731120247599985181211133567810499394470810766541066917396751839159232170543382974741247339581463747940003029233082567371089636103918027946996973444715310126914278740091332555007825763869807019101544256801741067000320159558871522623689908225612263340844838805864882376522761233688348686598505269192873815793163954537832885972726606833938873006407327406543590308150508988696366013866871458751825385919181649851300291394303665263998942319254020274251261485195275266753856709389397569335344320634779512032826326436290367203636608896668840824054946222904688572861588230816974199784723621291166174991102378764766570548884300285784049072897734918484890677111942052176282422925234207923025339606783646069982554459811836198941115812396729260693722886784219959712748941405060152637475356522262887321897544212130133921155946820832248305838464650207452617429773151610402119808325889335030705214002731136839196709485177385646008296378867291981570826879618617863914288019326273852071225852326238986508184135665218751355496571398938670496763195323714370394841862433556879249886261299169607699527376255976879048587666124751655769472836595931681275838706137916675424098427730145296240092749957557176252557656916122508754578006717575654900024960221290412367726029501440783406612379835454566032457722431752495129010761626758318701418308631778255228049108301569479951458776944570104347696527028162005074341950434250228273091515408563493000523176477411877524031161643301757673031916314868411258644231065044440591749692778267301062388900770581696793477332525774937493252577999523758189968226089520157194444465236560247440457315601625984702487301124054192640467663368171975712406756282086926302686367811522819459602057705838374787704955901884210267887424540160922411368541824241759475721876281519680856824193006938090675763491891365080707660617591549760961147309725789145844853680044132564904949217231007070098674650730720574041811340121770666615114626182412194158435861143057375449547390220922638880617952953326471830340366953690562932821071728478869490730736608676719770300865529660129892264574818498470487292338995414002172129991634562578464941967499752134635458907061811668696648638913396104873878831617838544438269380012413773266438413420992573472041230966720704400826093625723703610817153983647015188558571038057143297585573495666535882637910873281064637891409614424569005709094604602437025136194370166869397208642845982896523310189829551740122757411515306613312059960104925021813870060774864196167676419274097061690089603996667526965067990455688199487423398453627130911373271214924153682897412888086960437224436083178277576251361618672637838726944680567210736066176623428680651642206038524645993991312019013353102704238672610273472709909522612041336567181979649496923360258769582202634748249043829537466812169429306459596012510831707764831563614684787293737286281771901644147968529312558101923194021958635612418804966989717087857455306661045549528933453674212693555794340173064785918387270043581912191299820780647612781090369541829392618275174233440597540035152892412012139554752992221333366059859447426076053348872365891622371999180284212309123884728291086392177329289604462815157694683545513451705311750206318186319978174652459345423838903985816819808323603536116950881407071962572112515807615493511596517900447387562603421921963447025113967140557710808665184668504127375865233646609354764025797620695148982678469989670292932798689696382564674482568661431355859330655738030185511962259993768924163587024648975740955679864935310068142451343790801662764061220717335708570367180769013537715966448094976027337601396862311205117268400853057388789019313559496624900663914137591934838942694013559913944998762505969819676253593821544890258542348795935788974008768193185786641018099012355966089798052660569249353803291233431795200321025878774721532451608002956297772020934479789078268694927152810537259668569923433573268209142566720428900675397969517106977956349674696759309863949946069999235701222839302873206502869141177364035929485451756254966574126843255120703705426503707240797064538909308822409984132678267067772966455275450108694103241800060197851755392240205523585501315888400789662786735109931502960719925479544053927746355847268811867682753442628411789053123500577709371957337639333661187907789454128880151371640744153538764349458826460527094983051255771160698912405136036434986032066757421905568185793554367578029170984695537564905845013816821271715466410767459431532139372952065329627298483095803661516452934414330811593646701509065901329085225827045322258491126842052263090298826095578950416530068837426858317773151402585887340668076569062485464451033071429742252626183425814114055593101224489937376278236746572435128231078448172923171401380670203627760478063857500574425717954091336634481689318653856373484609830180464449296934449897373502101493387541310882679948750512226927091254721710957990350332188640204267639188369733002567917352301018706180852898287717977791445593361144545626386073140661272390484345931573636647018214680994973181819767045517905446313457867889736474245400349046935578689331541826084006798730023410182162053775328367417809221051478720104999920462500171252219231889855306184653680267588170665890618061606593264839861965615362220639799187332470522205455607847103277517582386160920004496267317171632721120993505896628418598576210332326016732704382573934908171156987158103747884605888416448442762466178824047289846962453806350760192686750331093277521742187072454214383277329817321728494214050064897431628589710610002980996450626301354947694473588341703854656742508232625192106836117111228209783263613302264308880183648492138680500964649952798194907664587855995839918455341975690420567708567826298054596869757410885218695611842334811067591720709041847802387525714145549811129471004584447793633959029511212810021405633104244437098747203027050123823252506187683007492346565094057550121596118254829395757958141497403906225274580242430360618496384223804721748380679132649590736708321646522953383369658757023104331314756920703856145552013076869187714299458037941230730526646909127677092422479266282552190756262146732531281299020589535610320634134496942928883688501798383091535685254146606987539477753668077425151219393691899770430056925000117782988339003184506319935244348390118655518621735950272950225575648673883612205764998058276155757704670439891711455927964745083355846657785453108042843792021642469487319432476084319039996062823947100805686207478869358293213494238010270826811737801255512521745847403753264839839933945861028296263033980439931177616250240090281887801111735662195828780327243853743250101197860558336133290247731933605534700155418037673137449652369875808996066719040371346324442879785283161874099950258752947338888337238947056009951195649649525680051400995010409863552657409295739247661350074224825924262174542890406925253468282479588190281089017671922923166497699815182851269441479240798081520929998472511040505320782648484923556388821380264278463058761691362074525915255271403625279668949425005682754698627175421990227015655338127425610466239701634751285452223269021691821908745090872389562766044435575859560255103745863602331765684370055943875648790991833547694334457848354997909365646357876676700934334001517741798748322761865990276685703150323518801019668461047717901008320355101547916450043719709323000071152010694912481717658416513373802342064217654196674129874951400357416467746197290999135292461653708948888182565867940222901268204722049573212128675793836025236997024690638936061586561667936018391860563651963894116202181460999465080572605631744059570824245013513169047251038235626612802641589662804370240998801141707962320730003509950815599836067427146094124157365380876021191966821067893967027933806508100168782744120017456141033090014163382179445765629309678525914188631733994251772404261163174175180435666014642231045915669007701804491973355854988039043404042592976268836298209718544178353302022121721883600307154334978572923632001785845058797052810766258005316212322055544274698497160284795115030506008378988052522191648414375698261574270976392932974343605860460525035934833989559222436956630313098624874270839799260042574588950636089714492631331747395167436742381746511094919581381610100574599432167797334766438007364744544913222362992232613989403621950092756183264757081806716168808551467907418068431609826945157579093440419735144522995384385230600481530747083443119117859885002705395535039786608863793328057248376866642833071715831223544819231139230054580878654769850862130352710370476044378094658975395825925738294672242857629271517780886656897169146166848757253747725565843503695245429258293116741145314198023549902354296071092811298168429402534288540488268990656909690148345458725795474967502986597983303495131718978484080734083871565406282040909805927509180723254657715044839755568417433633410736666907799501866425657527373403586550830640696502642865610785912519764502254638264746675115082447672973850173777501846799253439226380247699031043097210976119305625371430523002244409337836882640522524506051499038730349409359399132588014825002737436852564075515945459595180347077142534394660190452127298725161317212281814935234282040613757763014441699686412222215406289983884173188919839383566383790436570441195428342767798792181482061909861799172457688672385906860634310542504624556048272566152827480297685432005963710727863153049329118862621849104426738421318642911796572041984032922475852226564562225112517195248917693629493219741862515854534178829960293275512279892747920487346977225448546637926218166085918461749459530443708357977670255948565551037585539431237540424187214634782928666901757064500798041711162794273053159015203175291361483812553272177937593282199350808947396932313066771731775573658532808665188095736155235483939873816771517976817345975599233386895266462551300113537087255702407203656958048182883738796282574127647937626745211998080467635228530295601281527182298420366433288772212098461497271786843110644523085470520209368372074327913484594118113832519508836647777574171645989820288084674039365637456326512182769543911167498652586220007848137858738799489111155934219338841376399736463401373400380464728866645953246595866976938074688613036711674883185789921833990237755530763688636282138289577308470535142365831619913123526350356564787048406174789560654411130106480166746620469303791316071758948930635569853887792126315098909698984787855632414052698177660902385176263269625367496918967300238291053577063289928256882080368346733983027257365866149198291725809324714919836575963073446367477094257083827181314916724961168962006233245227109082575254315204328752484523249400170140109766221023997877645718979743177220305897404872275447353865964396822593951983564717616219680723625261000392097665038633372629473887745745870192293242929460765082961847788316816540573446796434571557827027649683078211626722013119789948407576891449484869264810520876534303304145573657002569707131759912121709583659698393105649230490681075954324772918118541731316409099501709261394709766573488253179014171504247951425839708028619214079612442527016175825087264240643990904237886443492503425703549473025563559467200711870513789601248138450578708284016264549341974818114234540677937787532381561003144508795582871880435464237413171201582021151174212578688556484299517622140180967726895630918587713418823446026745557955872694514956982932666193051562268097892723436928825779235401994336306404684584117480642113139122952458981917892697625191767981783836277394710473955867860964582478964535245227326642491740862873777017576749028387972725696372094305359909034644155884465245852642523580851691677858425124602366304580141315739830143830139940447627707682679871964278263234831835531566981565149140011118934119834248492278706946796613423005189749410888449022601150185196008872249171673834252141014921115880812324280595158417339417732592000758182563568147285030543490462593775248857572378604944400589424175202977959495628703462068868210714190558761889636067262756431674350531957102678912075200677750434043822061553487486582356165314146949925835336990889414530660586141039441629479938976567279395879251356151372331806391480017427080800853937943053496984802418735155864211096501248984074648537301389732858426860641023299831744682662629938264678738053934353031472293501725253299393188894937371734751147388294833417935950958719078621405561596863307458449336432938623136094516005140344214440689530792090553690090821852837214000912060974848791729981412147484963127900203769694955875828625918048280567050632791100520152691341539006529135635921252216455775265486743277961449088627284106420558653488408247081380317140836642776441503349892600374198213715478251113088818924535495474342169235428860945236095801566353503910545089095659923931418483250506092960062615285668782320530506795698529438063610869628081716162641094559197592563300516724380485401971498531212197267741694493744534650041326846559367885643183374053640608092140051892589125879872392629294783041358668255723934719482771618056465870661137864923502250718209577684404373866988806952308090309446979877643524460560798220843269470400376827600108306485743332994877324183719541329478395449658270850914859221953593127720020176367615142764708031575689133575894027595286485550352391178197803456528526274766265860181453582420567782646245427473193738311370295292698795799644636781317021427009091819857829857091597333137462810907647460966618641317384222776137023013695231020897245040755958461490268096506699470501724228397093129043079835240019629065520608348633956740566777052845897659588308268946486517584149967014298186317543532585593113206883620582960423077979018551140916967770722870352879294710302610978420341818808490515141336242106085609036557077026282820180908335998646872631648481055971528939326596084551879489726584046534033173859198989287466178588126533355280251319320252333055387362448728625308295662182484738482346991671932233696166522123875044116357871797283422643491897319668464183141543090450637999577779817203462801945236600882590859097817661798975271447999753620700369927118740875361808152120654135391410382735803712855073850161479181047110599760467419825710677003550119522958029346766584900473687722012245460876746553897563691704071298237995496374773191636895268565137024074756274715364493237515578354154718482853690181528246716773824131387145877708727454970723612917731311615692963514089289976259842656386910099139595664629013992415312666341163495675271124057767384179433486528655351534604553535816811916176461616363823266991615068147329807052304062403914823520842594721293210881914659318337030434562669174259346173026958808753815483491148210699590548391616553880790644967509723003628434540354424573277576312256809708167900754040845768994850373020028648834516735333311599535140551127500869959478546683112783509768666172959128282832248791298497402451737024394891499042704807045404527283973236216097917550092634383519213619330033291777268061460943993463062542814989385632196179591229665868619532504932961504309252160482380222083232874004006447390514644817782899497302093032751044409620949164298881120483785260365801441211329582861613369631961957485100402336816298737181099411258283565802035450595858845872518823291305842940919722866825185483937833768302111453132485233655973302422176078565682923916916966275821008615725426249321625250489773983613352691790942171023109756873916089027212649208929904957793821502321467258704095468568469458991694002438509560407831616074679553156380187481090955437721970421447520150558620196446559080030637004456141868537110347030512145492226331748846737713801319841578173581642288238823491222490658308836668845370784555313853746256839346329448443658065507857436808603219280982015838200274196440748796549564171129910773119818686920462237318631467455931114450446041529514170279854149350324399286323175409615154557471220345471718368436813981283451995980033222524962294896533158226731762585928251744955192158288690914765136350076373798801818332104159471846029046706635617985554456482896091674246121798400329806803666623585641083259915019497092044860873197664063796208745529817114581795332241014549404488579380699513020348454032217739813379029673675338882719974594537387949565132497933804122093497961594915129959529177035792060707136744343993417590294790883876084844560972932705791760103491013557579328120374887537904360042801340657700099589422160496622472261778030257442407608413327001976766295755906672582423916199531183661005456032221076320987607554777082809940708293301754085709415034083074229858827312554272047232764981854449940275092956851237631215905225147437587318664154714370432696643455464445807021775716771650878347248070873971660432622526609041127510547844350164840207859685586570080825779040230586919903515967219741661714557782131155704966032749069775268892609640360390965429990336241521907688637355048245121687340773751263365800731267493795092483599556419617390076816292954782365868022342063585826535909948248944910224054378293463965217306119054281961793328715948596947150054533284753001392350331288602395712924453664759845082683670978117274319730644691588852779431122312669818103119263120424530447826873921279711120344194357678364132512756652862969554361440735750124032183387363203439511383962715275822302130020883747992276396259042810087935473337031873186120612768612566960985441594858045908922586671214457957213109618343493335769401804245140252569179179125118361011297994311086767926843914936538147022512917055419145163181128956543960731672650108215606837054910283640189832022761110127458257321160380036694929814976766728340204443374283088769117027737669421747302606902552996329147340973253038163184737128319872377324622032711232694489819881088576561525045551638136480417527919255486840752610966225203649431003862847918806143929374508250293883709102818573858084616485673725957735224252013355480401009365533319185287067945223095083235486061198047746798691499717271880486474889055061677887190019858865560037300619270165104496064436646773713676713402294896080968033016895269090469564087466902736086938308983491311022602214548116147742530509129187809480498912575968315778709159643930612634404008075906982881793739765234261661934039198220043336498853365806453674065814572369699163725271887653512075714276964137516893425105144197559969074458570824371460187489564118397927402276368335186463070606174244671271852943218724038675188740403610323098158204344947261508425347288000648134108586064273769738417907338922114694858103771260034364344092447477805974770588226552949640041364640719163189712982057112468110240489148504984418447146197801105676348323431575431402773509889129685347607273703440662509510719470975905407045826511033991293477324477700034364414441706960338037367581865775939950818938420705529222363366516293048740898093280100011357656152834761804584143043627142642524162248076427104778806435210338525456628481525034682164392640775115975578729951296379063149879147123437059417461751764572122814995598930794190620211502751673842559581547763950139428870729358322520619653333630303285180018912053608609134277624326548040167425443530882502896991338274037085994004954306713640858810385477092230619367409999156257261028545563896072129504995774919050128335488694729910134145297605280691224539260420702098927343712709352352012744506421804549707750982466663508316209052816069227201714537798889065727480822472707289882748775858904915156952650756514827374466506741778871744636135555981741775350680580863778373254130697422567864772147575790860156299707774942497495827704257372376179307934542549726103806030357853260674733075995027959288303291942431181845411936755706790310336527765191671250332017659763667087539793802919961818665017943245687879008814832894797760789561292431394013682446621998176701954271236180944450228827878831541530960874837711667764084162223413038970539792563556178694981760901566679567941720714833655474498570893898940002425008617609783047213879153252711915426875217185988835229317556495273380538184057487265877924201435947013500280673481550750545470259138411728905133405053872238406700189308455306578699951100990786899139651839168741916808487253414624230151061094252832053867681960675131351706732581362107804716010872853296792719550897877936509330111831938727633815465624258035046108261530572439574924186299197036943121824289824324912199668763618667309330550982257248582152670984696300796954285120001618610109692926436383837281255165998094863206008584012881994678427752335428249663615043309134156806341141215564174548222272322478220051656949750527179104336638064767154876036572949650263172461353261502620458536885459677961550493813610700832163224438135951887759450450344602372268456757968132912003287646257644849252939567786769051032080200066667964316747855320967119307657286928598349008441692017004742924692513385590039537015712835738290356800936174470154117884540048452522518595690266579826024569530743315925122439148815203721527482033492213563219633552824094990957935465992808252627351695725255600068574308814427690000558901713243680514143132415029212874285984262073131637682796616810436808145143643072227709706636760920545933256256132109759403516437802664389715311580207672874473971816073102034652221717043360081796082779233576790041219796779830335637784420955105025764732562110250329684510435809927292450919651077256163565484639392455326582626378868192943079933176990133533045792553624674138236251587774280031583225183769987543277307388004930831966062309763915884002515517906711497814938685915976166342845805367039897274828273181431163399902485087627608070876508456109987828765798608193078359647516950068270644647838027498368466212416558289826173787930569898919592053559330554066019679269217513325777165516903468283874448617280555071367863241962531649724034205582622621106913358284958631054626272929100649431733053540299472158803738780151373219053736448296438382300376738773121612555208845290540831838749828396915705597117784529361270004204097820043950315463339633503132682469754147731209761380490281617104896275077541797660758927071680302449300474700485877298312346153380543686188944790903946796085099978418116943351079971660541902628066271537364201258271634058699628239559510094094199431388397957739214754366094867237183665863691517750882135695795265108786154113406657516132441636446252524927382408786325005789995832535713367819947182193078797450031582607241400542601260202660018620756964721346054239514131193420050832130267608828647664551661984790697253876026818833523020160835215282260623933044085676661309935807160186542211665410193274554769453230499238782249734833960868559443821158774412610447782097513664849553013493001613863704792370719408473370861721406276379129756912430646766516869125065614114409704884091226794998129598277297085870347711309966089888360816004011745936243282152546876672944446317258782267084209630238800534016865934006628429311246331348345446281012757323860330270040018377216215249153310113441102669952584495238885815629730037675521438380189445491206957345025641985096523373369469542103162126097543901454384381562828934135691692410342784430896591408980672814561341510628219215513082371893651175250145235227116231574682977515941848167529415417791677232416210168933241380357656069284276016688024418589080810405960536076070913907781637653780042727672089627218015142595375655828725777310384771318124312831255384781980499521263055806756905788213991360058895511279242864480531857136490261902655907998240207952810206726782629767754612678299666388285066206280998200911063771315615732254549851315025322881882605853234693911783994490229139309812361784836264154777464748367570226098310853069809231072172834555950395560402661748427167968456762989346500563419916891990289921016297331997777130361662947087838551619390311173339059166086019217577539202478401591234451270304229289987797849794066503103811540705960315434677489691083856453803294075175092871012724289383553153157947805919840595262439334053267346978449614100474701816454258255973412049502402454072384561025344379635914286687738896083418663682330333300738804512152713827446873322349857211818187791370022219339264529058244317369352792919367762464438164986564667593592820796352433346397855914079339604938772330006273100499448329686100548845269246414379737315569546736030997561214570930509726551286902416838713461302761131910236114517670644998321687342184363493749956754670386938136355897015377698615232910922225520094075733353311029622823454024553364188067726616401304518614286669044419815477021671967631595071112679699552535933632091514641226717997004604347378917199152066266937001693629298146866693654185447690816674997617919829249441813313910237179958852592583683868194584909146215340653915556411663236417768431092483583939065787085813527176860428210406068394308401927491511786584338187961805292814345302650976673708188885087585206115010361384935284081721664590793008631199488112181668427849161548214522825683413551098339412499218238094660507766151441001369339973793222095850996897570833582192982525344922503502637026732105314932748692781158770225132878431464883904801970770544756729405589594300626200783500085260070554278838780883812738325754495993784496780658623761066468672905764709394701026357466232278509308834514332991548002765591683790997148630905341619447252421930102321611079384235354371357172827986476603801396382440522252328087455868555372206532377146977837598565301070882663944731084309904167871535717915251355829363667290939377969227986242196760803691296519996624574798329811160287422346425380440053917997063476255037072293595917560994694972587845282847883182018868754825456695670220334297928712766878692644617221896795978870725740600856193668028311447992078070294465679016958491010509249476830152441671754530565519113705435934563198053013524435077344954509373102086650376656071693366368699476965583684883810780480826578819005591251766760023571256295516666912475932834452703622324345305330935588780225193381649518030505566807741305458558139660266354682473223647522721804358978617625206136716472715694138828175343841382785317428645602213373245955281756017524483487674326614701313351601963074273050783351033658943053550413446750254597473717932697869721461146835842663254077295455265075059373314917142600210712349111432947251490758789646974778754062327065298223156229322141812255777868261958885866375226709328455452227708637799613376935652952217413539736267861800093614255168320829691167415493462549088849442360542999369020414389622596668308221264735483972933363644928052810563837191751852124802121757096855008659904437275603879839644792957941551845622861720465704411669509097079611541279088232886716584184460017764380020600565986592824844457998001018535579998081082872955217876413940473140199004041822686222931293913341754137012920416324742929817021379199649781201166275738685519693414471807167898005846432379114181080241082156968822713854154025926095756526185837039178924908303759936792890118110836041870292619037488803592751240747727205607081768500702615653822311711153230307826897138462755255834290094823725379551914583087514179899365112916482294846935356084556942226068303619084920179885407928674108910928849015948093790663046446789013030002420692219274401051592604549924062642405963981254638399679531320198969575932969585632671050896512760169100283350752111794176492794481500353739665275480620052882656616094419612010709424028518258531629599376184957589137418611059446071650340726250035282088125901979414666861841963313740263314969593502873563055530039888687855939845834748423416213877351204870594988840257988727867239985321002222935215290525714338407004641898739174935511937771406798306188174004562848579001876216288716141657045286863839285179054548972294557787758296806379927055999971259770201705769040498324861725233991829869852206886456784499356194358856711250482834102406092196850792052898728631371926083206005748139386731685813856359118439696685658144804631649403440704383091320676856572411718288088008612997734579798229861436308686479135413926854938984751576264196589702704821975303593369517273553412762383037454615190248446892324850836004794811272887435805763094232212778936775578586880904931481029924804198430057520604382864360542313111287853062520839838321839930988242152227382285568854522790453931518374021773726832562271616448692527587918056562485641428429384317796226601133583313974955423410585736496947086005957385358279565394786011361938922099190058031652208044459111038413312606323316274761736837484324226273446972500591881263594160975008489208382368984032087128786780122154146186576019156183937429388757705547613051609026159167448823890404415190676148315941405447822399019692332961700131732646286525339841762645514951264385764196711061655141817390126131754225253290761566572595318472935748146838209376082583814429513127988077796621245657547800685510873712383398957303640069680657655811159958162362627354760973730571341911693348042241054069309393835638333219783069524196638286149595657840418657313372827601219861336318504125545421936774644978495501987578496109170358228774063219472525897062025481235041469273529038608792375732256907740662508561524342368734708884369557905752873086108488874266022751138538426589920335566866738238432316945665682167192684910618373499639678826990815862349659365907115488366036429349713916429197465748847778889469621458215476193617484361870888817887172640369731318679203110093498105484614638416728579123559226838410892334339493682288983050916453946644849383842873919919218616681496059072917478982483691670814295871748727274579177970961629184015337483856821217522287928815533593985473530214374687063589723882909859778255175359535044713508671115661723355859016051838267575396917339814104148347777986123231192861860214620834019670023280452540257860171167148570533151644944441617678493225593336326584304291509079557878593681217628547969546121501240750509091999593499437970645352967753735645941969828286183343146776554988883903867629019598164953731542690430690006367767264331635320486581223093917525637402466080742306785135274491921334373280382832802765332352567957390664411342886439415869404823072934901529498654911879659939648874422727417796744377787694499488032247066701131892226865020705674741584393394046948384418567124245383888870504728249629512489725952127977763386235940284131335727859521781853704797815019162224068272645439520550579243899729076671338994351523314455773650865327189339248428558594496972089844583252429508639042372476562035931116477032602210970461664708755546636444064775891150602555038355570865000521258047168725912546005293645456094744234085098430097586736859133136224990770720466838929851448964725854480602448940934283314745972060313937299175982170027223351075862290355992068444228585500538009994248736707086234144407052087435091600225805830420256777403028052954314415348637618937597542940722431315782699314832815493644122649946417611791800314321942550711176152335992734165872486494544239882164692307586879133840997190908162714870797102415731768255086396562864925919374058448224417253975219975418309906208956300312929543982963897627333828312124069427799428405779531412693781632072653902716667103173991809973673811062641556829834972893671825605143874848042934481251162465340898688079981632437727132143216425906177367779843910755723698754699601208537047566943587466382498067295535973798926373268125700493921274443659034896204224016439690860459120802020791806547464244997384907119208769273773096834867707061320622060727836911693079296165783731459570048420699125583958249738998544017255884461007607362277617519965971933596115320189427479698858922630220902515337165418427793833161851320345226454514889378017916567807173201414477141511571751445439920050842706035921226066478969774210501187346868025166783404196939123083270542099641184577570152059964051439143169783101264961422599596470586211146955231100425734724766002986134713851572879218857809000758843693581971016819670238966898438756176235588126745526386943543607281777778032537594797064633739166013159523781163757417723144672361938946658836151593349589644591007702498920932185044841381069103969248385251673751231157384031631399539704793815489442751425903589116736655043003272965511950956479118218460843646469157542186419762318590346707998697915353516835376519318979001123348187554603219347183507684058589255701098263286507833673274754056073772458629656852136165528601698171919565748533439467916903109207901367385524034073939349503183882706372304440875258817637034586295694953051285937628099611096217311213802563837594161199082902712207717387000510899412922080188487077690200237152129947559174557978219378262508585245110475061068686969835765630291277988649198834285172245637569209576098642301774730196154890028801057515385853366311760396645396352409601267060552049641866361528444535559661074759134823437768853036045749999236814722483853236051581310611963896979226832261604486712992052351020947866470820633838200599925536798422456294862616933533865815241047820162230306131226140372319293705258382260969262426952927365360322510287790131185849396257337395766590696296873473354905935335667269957481954883858169385011849610516236431917602936820287803085470682956726832092796773043350767440999391280746497972175911384334627960954446764542311476644045186151676128577249399735942808142829901961488927111304532092484998743311550012380215141864567659936857778212497380555840029935975389133742861165318311381699063562126762712354991518427053260584646024025718613250850415994562660549598142117496469693983794882787676231480249848273954296266334847739603359280591337524348341393011563389052100698831831979959076159458232071558479688559412353281460945203216979579740121496552722920269930268729671989581549428215528221467013745462246848290293270875034404685899255178177172402487088589608879042650170918823939767614943172721637912798002008478338240686872507585009207038074646266614879974969428759618785002846215973477197137656055399037111100347813415098792354029038009440980298401657663575433249258576877263107906538109412095485433174861264519921901832508810772336363637715290354838352641633794627812776571940812208064989523900943520688672590155317419340497583022481395052206820629747615725104799219257306271348802138745822696301658215122914486244196869778349449027015781997994447643654868669141131374469989733453654448565572294839506674704876948338095963815841928890585601774535891277762641375458258950692439417346916892318817629916571865953565357936156743373563212965483459606128674793687949814054092277123289111654929846469318594801473201380684959611913971375612350934427824368366013516466782045526724642317105614627206602761149170298996266920450826386300396330227824080454527000370306215042650391520169173648574953156854772706108263528927403338113109934384112309655409351813251561038661430004947998585437154425372040108623744762905172821123768011898489915818322658060151020867897206121976864918174099911795401161526282200657944683983246588955406762012546679410911819805342587246954668902348256422314747527012302084016279803382906004754146453572497517513721198599662140514344924760693329359095441236860662919159809140376388192885122125435509331566512016901790544058615476559740773815578486843573582278319113644393376567813608464098560130361109244236420183136630466668565594110075644972940945781138535231243988327904017186060331812595198537808067437620707375833912952555468726573339561609455309634631455379009453225439153949359780285096149921762924358845452763269608801875925995467032981707028672136347817287139597948614926073061861621836481724897368362711666742640512503237856439147170760900445404367887177382960154125590817935396556639372620724273013348280400350150202432872004427374512203178512020894343893011465101452306952990052462541206323024880632806560894283325114266759523708289434211880673341614261854905550271953364806618895851214834341112658519969336713698640499355253020710642457610975672385560658393951100440437876510961209674702078983500019071450337403282217477296390568689009843956456086554649021516521831864975314884451856700330075494131702133018349601029708756495384211993890553161167155701548880472274255306037969638744027208978301778112690336987870245932419876420881779547592960700676966721441368028156380629713237125450850748908585818592121934742809342660558712569471651632670907854095445719618653357649221956257478993918462109862188798174961990661696578950618691047052373797067703132989268858838942222679908589981479391976305177504497334662189448156297909646475714571350107203548619398340269488288447145501555339266517352876035594045921179880967345788737416197057768576504075684762537837469199241001591471957509192625506434037873541079141894150189425899442531531459245710463426322898423265058896538640611036310030436048349109106178380683768296088416507042836846413257026888082300051667785630491868339187520540456884919027690422570536877079553844970910704334673869807367618810057596105614676373965773541801150381487845355650519813187884709171153434378982006267788892321966707456922262220956349932685242939121775676095564346493574941620531297946185955474654554029143389546190662653438547190212984305140069422927145053701290667373243286563883112540868146008352940099632199631500061202655670385877806378007902299910394160357794371233169357012395358533001238576844534158740506570427803098062570193121126531251384286744331792083588027261536273340144657057369127345618917571486918314222722333407348896782935447829957133489352161870321484525650615688413674707674778384247192960396782844559956746416521904602810051112211988415540651532911814490081236645356004591993379675000834281412270608904547313929260764584143471133958837013782175518125920195908010752481185373566110903205299211232956638228706001847748925362146195771967743967721016672769430161189932891640429081292128073171453071285750692073719989012959899157664744280103815065364557422449781309801372104074652650366662502591768153746116527936221531362025827873033168307548194014840899566250739960945016376555327554553774241320704684749645880265968974067654269065006823435645850617155756403943412181091942396433142522453658698895161645596795263468894442436748873121212928310421288964602673871094484860115501941086491447153363194092055726687607875549003927224814073758390133821325363697144500015194836604601990067934052518423383688512497431419408107751540572161330994423027025605046072933661401667963464366495999966393208378758501339531347794123210674135034035107497290046844700154516609302107811241558599061691346960550926271400061948832636728676956389066884838204584840420804215312147537832497599694705000765004757810133291387541697617624920297886776592614052270979314355664677935233434237871420555245882145252178632969948641843754965352489857790011865572728123716835665097508722347952184671257588198842453362019893101681044616172233007627002017331374685320161320841327876093207043963970215199146825167595824909704047119764184816960249717737355226093992247947338991360349893424650025713787537593376694012324655185631112987408319519218745183453295942129321621688934404325143100401724047638551663464056511627830681794352709752676018273462844500190004822889199560327229913231120770504831879470230101561259822863214638156459082032460633341768735989345698028695014605076430731651140931498885263859706640603793052676220793380139147557587706089328596320104682024733780134698613734868352903826296712949343956029045082253500833678796593603034667081105304413806936466351369795839965597774952731656129421359565411963090684224596096025824452201340526305473655102247947664041187175639137857176530783028658803328116210673594053495509302063525962052993374657511946155867746041528046298733102609552755399220479767726039990685909308796604839244038596405263702326001370356408188725955675455345812477759428820808500674109203298578483537637510614068344135342891434668058099657059357772727109988991638921276064648541471411225530868087510414110223287306636886337889753442235065411490513567669638099551507902451328008288182909381555678092821976329317917805069702176998755912675119555059266620908611612458718153102796786540666379346448618345414520389440422211384597656375584908793083980868549188129014715752391609910693099515323410773161716547777904196144043989346639325654216454107170833262867485659745356312179380858395451811473699223651105019579078052403232439108157843433291860015471877164945503116873256976800737601954838563522954218102270624664567717923018607712929865381286511745874749203575604450485964278912951305530755067198666118690589767287446272737444850141039639284807312326531427992834291259694007790292221187535764263985639440844453705170998207802868061297344651016719049969326072691214072212942925609777600975589793550165809940136645383895578981222546907886600873573606871505474834509417929926650845232238987757620481331238546061005458458880015431063011163710797332703926585659063468643812446107233761551747990290740762406991274995855480903995945728269070173491643480830896392526781957840509889202344400244147665634771766355222627426832132114728321068842829368522767434506331102294204451547065968797975989750013275525934044257084532403737051982266432740352078219417231972917666552944217484951879424140268941278437800508995650821918960325737937765503435198908273507668967994865755385352263494424248172905924086817771126702979337722201612845855551647662024509044918038031635776057872473491057347445470107915624674500194233831810448752006960301046432714247542003496285189840154080994900734008628341037602863260190039714200733407747272470805777315925447343436962754546161797039092114532169744656274042513601862507912315193170603918410328293334225041441945470835579779566905572221744711958372532006670540631228482705793260773801383901442714800217586918340292236765009231752959378525057230187269637087517483214482929138594926780766170930185428413455828186306578423490320708441132276413724980313796969589107927261078570297512701785726211305940273851573213399814364254936806545726100436125514895779268943875253139053150017999159986988265669746783806124418827492628625639089198375669224914473294865992211593867762535911931636949509901886127023947827290716080469962575076433316360831738618539225311403013627617181658231310884924148466835532635343355732956469008723889796143905400132329074723474808143955687916720655720646000266559325385585361951268008312985692695069520194085183801557026040639136788806643888562701794406820276872947441609800492993214807616101590486686742107037731417092236344460096563201425020964765177414430495825681739562350350261028570208061512330616359546198624908698629326274502100782288549060874988377460232857747537853646221827435985545044303061402129652209923567355174050303280551193955456535619371704709971250719582433377346619394833976846249350026508551062237681222141850951920869171054421236477993060536130419033816269366578067678745364913978425056334198937452470677767541963759724380651327370741192315725518934864946440213755542342553734532084494646385028838351526006421518748158698929434362932595268677085360563328318803123696680085986197310504803572688243508513848014755664819546911611551760125795224971864839224128633052255784960720356815015967331597457488555381494250908788073717341969323206554780608704050631699665404506767212336959460337921404139070477040039571320929527162420312992770682738130229572608678983981489775868349073208621437374384920388662111190582829901858016422308864388197382703602760969801693839307073003278097754115466528047434266604492154777528365475117724204148852860473722622259372428913271617203437794547577747170920539671439059107625953081949801800705291741402317577206296019761713591539195769116266613648619277968940925845337616902247088349452468682312483230371027797053008411590434694754925126842521023759518708841094627888991159547984910836005363449195925603791755753039751286112278323292678690506386327248493266471008366622646563760839229396709807228136744666142755977846439534633110545247809155894352985438146969895384737592124725324721586033190701324420912779999845516489319515699941201167407216356970340331681011511265452378575802387915538306943914155593715702937861312217295948195795817672780507466009977761670920095938834786148279215388651843770742524283324944285107961004535985101751043458733482871852019075515970559462487392211066072339221847638713896635357830105785947769953514493908664570828099378789627623196486704107394184891163078426793163549160660516303926364773282777541227102759191531421924414301723609744913454658586816570052217428343161225320639092074422700168945354479080499084339962322428115611052740971975082519595576299936748974771021414767766469165212685137094272860275831771226851257566910744475945222316824421445219367736069652279291125208092972848659240198988897173761101548584642519677676708803346484744083125453023975842552646339680985304170221794300015094292137011528567626792988445174091518913344013669361461643957296998250188051821893682837212535421584611583734434246627678281359294923771720566216578599771261251541562532717186784851506884950536013033143744130688174445153389249108550635427011428918494578603119972128847744141273491639751190176527363451964681912279452183888170940015334317580631261204489775671576356143423954925106724855299450675250332824465962656687383386446631241249262855979985311803291566018777530962104277702426141105072410502740504854580519659062673213082082131194948534082774074385840921333897856967090705066223571988336488216239917073283915235808318729527262730888023641045703251930843610206220826636417699137704802956800000808132107296924580245313997001957564536544975033027579626740912492538546369845847213136328737500055013577939586896763411641888799499715748310335063392761609177950538541974241410853699747083184805978956627682138663703305856706894089958675485120194207069887187892515090655655280270968372836172429354102270515358583107998224011174661089341888350853099196520114104558161694536721364800939912844734773558320074228879157123962808379846330375986938190371710320555902938872065299322871695413335821641087363310163380554593358590412116200912246642681167448588656153463964202814494885074698464411805155457392045720663431617491115696719638435353526154626675904147615224038863674132930422092461702783261594402421716511034620140215862451987839815207032942917416371384372273611467375204330250360170637525428664954259452996357404400043282861935104508891818821287501778235132291214168116542142249474635691246243779429958011119418574217131757026668884740223841672627702805517528665380782587781617337700621753963075001337835560284493233848142933514795669759490092272001233595737583800103672584991480450450669358546388196802876610336311587177643524467950421070591152596942651612062173868382990115981623631455035383734045544744855651944329431555169192098331054196377355074348273841749684272890253329904287735582995094555341053866882116341456579629461980785016337646916234741660893790727569618623187644557200805306517556135032798450924427297555842707670241437600552073203918257106107217630381127211162001583315409328848085384287641783051371161295844571488140876359017158901306594431599237255659333516135405771250221748169655269791511021933520947117388592896454546265178460209555892808923258822999659474086135758818828937643563078275493398992750871139484607687336419420956620018582217598402225470257283043529711875509106858793012713569124997157387597452981700298934603794704044350856153422474343138157315187875455420648138797467728617560338492511834261192968448580251384211418895126599369627224671593320260372403661664262000800008989174663013694143970818619474733191350506232909775418891571524919769109238635230106539115823855426522535791708656848905245891561338845158639872409373608998649054334825933627529336274421595192465417553138597842437029987782594932464436525410167833549895743040992224801628296381122308880251009656858718787612665871819970960157405470299048681581435924134522413856002163979102767001593179839144226181342659056569504764348036699832464597534883416815988752048140441476576969339925035733117364878011296570937377409975185731609984281572816024817413236888069304588367364872535697196482742127276035707931793801910701329949433874529322837685093107154930285023858019765097444182669410283157094036944017933071995456942476741595377975850141537316929903288655667728520339189838911159212505714813275962342406359145145688180432067287996389240182585694159580111957843320086241929574442022238050572064573532990112515611987316057486450679054845423200642716805411294522498361952409848667212536401794009322294878880790670819220619694226424337731346369735634144669430882529178548480556766316000985040699059759465105811691224322704519355149510351357920261526485473936605187909914838024529109752357179107058931438412149122566439090509202617496537133081189767857641599245892692934309326664859988178873519059821413590742848610575391381955908032734171648795595528039128656076123057352428221040614066909641391140100441142453289646628288944742189512476811067972993687074330051673025892317910451069964990058652141602065687785121086070322502048537740501895946018032258270912009330396792188783810834293576046415397768625488351388990395243846852188092203294405303031383355648550410976376142860323821186255538717178821585180792585036435561424112978476766048251293218259465928116009268614311175897164303398890722122462162891910513264733136973001831247043868806498549048124239146939297953768349063109672467840156888978266003216842333840100196891224153380405106115490580239926004461870993517298851001454398179433811898988045162194309939480410006813721690836152757478303628031649140655367743270194633308062582239591333095151257073887153726119122601663670912739810964302174499747373801756314780113377718638135163310096984400670296497221632062437137759070757441869569037490801541704793734980729014561893828961091821819627882061527817055366950243551038480347459045602510275252872441184780873848099354110646905862767718498303802067253417114909442471598683445756969564123087722873910021813019335671604761921446343618438386191927120541946289081406349197953545688105664241696260148604386248445460973019921444978451163252939262501825301842137589047337658739887141750286279302529863257086252823179423837544823619597573377737779849246521061979589449850568350276407615019608834375333759686062435467800532669171458081074019757170304830779200189243454448545819094861094537276248838830697048562003688435352053353979797093187326466821580691802811335690680595215980557323844884948120572243251573084633019016478158462445364949343808150484084249214921111514917958058315080286795581691441815333122832844014760434378054844708735867711229735758427529713423918323073382614540281747133971988912799696178730414902188309463735611559960441195149196469805323097517821007864766986592663658518088522193658106113461660071081182526802546909140974401739275353152626665940861568358746063809640885703786482743121483693589029218999659765818837559585154242803334795913468764279171956969129292971984197223369766533189333689744457820595339919170978833803895622927936946167081520967234561327240772511789666797018874112408443574621285110795900960148645863968731343470197086582310149017206694439715590068134771102746613554150029117478838801144475674288785167829213589030918124974947035613323400760379565814276703067464918564768434993368541227123932352216760431697590582807363305077673330187907430300760891136508690908861535968881606586244037739602256978745753031298013824595128158019775927774127560086388857673803438121277310918500593325186087698080704543031981212185935439191122348207666796644484771799488066334005658346371173234599705005828579654411799641593390254223622944953739182020951146152529943493481885644903352005616155783632757562073248725149167703084499690661756931684367057148758283785566738075600132923844958851705370271392325407537262311167858608553611202274639432184673563044091123499296981892334046071889636187838662148137326948846763693628498018172933980353350256262051034387819849431698460660513303107761505593177480279891603884068067238580150737499971354042300104746121010796217169669072232067759637024230690980241436407578583619337891389367385364298510385234494763635677463346445207393677560795606178390452993177470720614561342008224582107375800947097908083920794315946429822683984389860997905333461381546360807538248025730801046119883080621965589411157249815047662056002816295481157310124287620149458275558124951011751632959005610690084131752147319422660732044550497573332651891883851936981845480340844045761917095389037699198992546134152461226924098834832665205946290003992285969986696759563741760407879795119130626576983677039641200791848822309558111006997796024278290260841169708909192527655329371847359109335593361227357107252524008188598585556003726741669783068806577450418304933064526099743889009614791694434237523604966207728008800748338916196397738796423377742600132640791865513548480949456552324475101962372996691550696954464655981158248426452506941710514039348982237662355036493304765249264456226790676293998484972379958460237393610756179635962399047650914431563722189532441677377601044914361176807102917329715524420103602594257346693158952932787398429948404834175939721984116883958351351508274753980155815549315544997903251629584379559139885600042354548809111723098996480738866408278451831731651275666962672329863347817181285949968028065815136310864256266547026015555848402055716683750648984557202039912032433996500612008997029687512030656932395652828108210560302889389933596225614615129434712737236259208865181366035885806691766110969577703662128658653835215085342185921483062092407407403824029870773031682172985087080847225435609950254381735430207219550404647117469503525580875675104968261554465326657966322536257495732887311166892074487855328925670100543520940671798645053595844336923847494228515220751137050697537774387883056756250558718677594534890405385110643035594114558897389764351855162745946785765710272400233281763294108604300083539838562058091289062047586063893656290228796984325258980766690608987536025509440230430984155999164420618046909321492986625941881494816660932549238766717699826648962238591100727688545188988256178184376762798576608445994458600761259721145665399700677072442837564188172353620281714867825503049131582912985412576821777461587291083453933689829316558104453986301049566344187439672196669603038108991059568464667929760735243807151312074882691176253222914412468133978019202246443030606819635234390750325999625634008615610257661076204476923948834756271215864899810555673419460369815628319209727633027279947488921092628703492993319631836086222446370901273392843946225588367184262692280199010060494445639005329595035956377715569926198572089575081132736646306821740283350408383329147962894416239463120110484792432365940150580958291255818935254987236344789596820723469809265963510883895532865579456253822414921687766073864902198059284502743899501072138824057745565047188059633766325090352498131810864543339286348133218597564958261324367545620963637239876747802149993596029866065741567355673880083785985898968407098016753281985432550300623255916851190306988027926796398657711547022840144549483419698178827235279489945907028296192977050058803068422231135282590525059749669237326247565467836352150090172832734398572008630382565263452148481312696554426652564206354564860438511896001197419659177579892962599348397929149059515097962904681628101495691318880068850339441397118965732469773329608844081667666668094355648664331241558219722858934797743446468691225399953749434488281890226640317106423790073962474919181683617178506356876683882551842196187362447456858194144260163073850979385872806325087312547737715804035354944306323626981870741620571917931194613764404665427509816561052613010309987650290717081073279911249174263598433226680504579077013732393744976640734274514269904678096981208351583208200353554446136970684869793178611538590495599066605601520811709271750854951525505284332791645978009471999149382061713475648317876326604174377118307952983894717826061613156554846809665940319543253692883789171990854316541455616570208032144588221467848311958756461638523541328763190555843977998575232124227362873630100370784279760694117908715113330883737765820866326519176936622319445303721951551598660202139612573795172533136022465605252511695232630876405709570860234103090909460124155552140731758053561975553085185199993663318827284921627536294920390055157773534875425866723022149951995104480799343709739121476210630267580548243102365569639308377281581313023960621732276504322153003820777087815886150658541960448543990455492232888012637012736223043941197455741796645892592415116824222062362554913066346057981196837451498744211497902235431975729829865592313429676126917066208159276542660528347183551998037779877799556528119012185987602038756311800966627004796065680823804061202009587174323915554515843829456847843355910193955834681600413616257926993262054029917143054413986747856445397116590951206164764473268743094679828101947743992539266784458683429111550802186343025534064165150958663546444299923808633829290612455714871756416845020334707550500438439614154397415927943178298934025965070341848602660989384485599602403792409224410509169228474488767704668163621848003050696559790174242287489204330698379106504987425399093027182204655582923831083251291689700885497103672711387939775187493980276426733950205688456485591142340095323924416775711338969916744501278500713683125765584578590614838240607630466951934126805516022344422279116480012483833559323057875592662807217176604720637464204458913007155079512609686092984913452169713198913976637296886523014521216344561675653583393723535388153368689343946903464439962107540180600657472078439181638588180741398530140329006934022241578319140694816877197671692279122444699547224014720091021995840716056020976413996324599517326619400165193138833155392521381778054632327301845646128788364377292894945514942545531762644461938002706316425051057426054336364187750564310496382457284794231238803722778126210139624749547452155908392893197237943375092471749495687773603060716690837669983181109855772576832285621910589799625915383978776824970603358935561562964237702668097823517605852640382287327358029449229955692780888190599918105290171982384838524466452915664548361626732051170159412707920441352753241936332940892351529469079145386780901021720505533017630973537970767015349365227794592988513805852514166040527848584998995405569316131372148038434698764124483169645838097627363699096339768095285920062978947551614092052179821317396261301127974566092025258396418145969421220883740803666506697137222963907373909322692735660885244713622389969999969290420013588592978435267654156698493834420896147048699573117491648574846476626360523727397171404096373917523867874247398563829278981074476218708098546859855586607093888335398170221657625155664754246741223162135341090811057743562215809785593019127669504507447710043444712163006903928493220187287714949064632948877633871663747628722347666891943366509704996968596271561944027767345259038815778961807286196225047003268416461908555042893518340051335015035989712193478820484839658876550259409504135564649975730333214307095227150081158197347440281304815340656189357693447957315213193577511541270374177690412988321470499161548159536946314803019850059660245503712886512182296139575353052212260681872676542428242893256037690060921857914601503907745032748556199524257564953561940320570559530488714500884552160564542723782501426647106208027315644355633749535813749215707036244688947221490903297343301268416305349752088245059307814219409326938302645668455618486514671621745209149927766550282348762800680963323642296367197950467248522623242513452515106812993800102604151199882170386787443564232587281244396202728832942338298390203247506828346335340995504634274181282304682985246350791716284981959049309888750116270754110912743092977967335263571090966254122769434898274920526083520935445462714452547170937982896055834813556917595388956358690061760535811711980585857275847165435250897257674790005514555979440228377563885464403188625568287110262951044852244998549397441263782789011345763028587529622732328616294609147652001826098006896148260337460593786056752833938917106669937234679864254656132557636748105297098055420295765914245636782357567845540528493855954013120779012917076895327153791894690304182379733806139787345933248332247096411806355661687072174018564212853175590250562437304682567373332807603289425591177911051250544622471926090627154087874290089725409525380054931091012731924223155056625983405090912962173858318281844274129678515660329251941986645655968324101448400865939299158210441237039870636189220689020552861614894060259425593933901214235000117161859465041443167903068020111922824796047572185414824868035680128858079004082998607050089735227733295940912225732919481578137149814840972948405474818948318198344767369237620932387271948676084040141335352311268550056581377923108931742537043329652151092587656251809131693361938009110577993363120167236652592524584432565728333010395720049011952007081686080733401272974142158660456958472009381020642461265253322120144959938887072129247827831426137970126416683802994071953601147193531871653562103332156793503528068018494500929442960159726002911228365287765755975879997409848506417598673154125844118002675577922639232964810094841953725419430982007063966086425294389119002629694854996838014906333077340086723339683800749095363380595530234713735984776920969228356472424374219775461818869362327806318277076114618795234630977097033584313119532421172635601544140319719479407452674489377655356888626574745805761543157743565603513319345035972058966373209349520512091079692181345294765031285216266001221052256795499961499534764313149489795069360481191191313235203860195385854622571536198495290660705105344199385803638119195023509910959426073512224039090839513734971678256499764370853991030699412176649744080312280359550543739306363943671136868246971109295726218895869774050731005158500742025259250297860820770138149708425879350823897247972854690906606751991737915475398686648887837455834183363923444533041696925457878071158296600002533505679283279884715927349913979853641440884243114463259491427375208270090891331525529088303079531107839864104183803364535635480338745122127201834072642359340368604766245156588623778099945766499781486591540138865765331989477322927723565397747410592674327096401751699982801036214286992779430823252004440135215883503067162248464792584468711506044063918921480550670224730018339988389743435446422996985228602464721945020779789476392248320417594907534098220237560506143108038835321229489119260346494959853717070194359983085388460305741364086509821143960747875281287154135258691235243532923443292115749547333183940141972533221685607542212754866441284050137546046241324624585147067461277796428204797688849417752142174080112189579176710366622037262339987759653161533084955500710114878872172715117044264229483329059236709516250112350459211644152199890817331406004109429336981554482295442587422027430202735525191745009577930410271004773620288004829495553829606006557789720579556432827561467131907797490826979639967015708334623590665344723393584078394425417117206489309145267577808030831137266879187710981053013582370016321493535093143791848775687163752327996642879337022389413861233402522257550391691082527231511794232031610204792756299953668140127530813579603614298906287580998742529908735266470082045967121291750584595326759921501251326184046637971300089199100947447471216217729612829816674094177499560317820251750280875644714602292938210645309159697596597233953533096240476184531179328237551614777387836999272036919676188029197757001084789414684587227045961877932060135552675924737254454268292963442722544882108391991785773636022645076763099042125399618312422351415596855360170691978149935511382941004854625204920446270890941700694880675389549824316137535226856781263954294137341813409723057229872134776016707324811470036268722678098197382281287475410762150147443143583544952582696895950130694521624607261471828781219910338309691829418900804247053024162834576935054291306790707356810084745479095587321431037789070952550700941573154573022566435076307850680887487152604373815679355309215050725997546436228636443081358063352373183399843100750314884183036796531588161225628455922573885294185181933338519723387141482713283574769167794784776537211523027936066009742144731447740039502197742498039294544320693088920471183269913895041633195148302239428122102201607273300878292620074608827816292663364267478085534441928488400223273075254660015324449956712941864660772454299006040919697517415675349656867820555588100541283918297063152859718118239919264607614809400505061781668003653771355351023128315125413993385855872635119836835853468907600457304054810691783405737005784092417020769343358760229553824752486701290983697584895988946273113343130071503574457405801123265836029229749541574298945381234683123885443892169628925216694671992562140970673253488522665280411616666149677355496635458440469573724670407929009494063494610518849940936725834904233056747384244756541690606711901232137286315009323655024753835202212322170643407601060855160009359977193543645876895887937853504670408792501939332363838330491760205269974256556422881443523704589798345386193789941657601993056713739143791015288069468858016096578292593455816055709192574604520458397848940726011187433432796064578544061983884274947141676651391172328313018154301122703593308856472807564732605278893807137229572765016831083001081588865781183671276917899815871078047556775508142219269683391774588919389694464093358045409103859729366640681081563608983413611546671426972851288958186492862078329458677375312668282144191723176875029109308810255931576715391507760828675905628027190598359816697447863389816366438283989535230633634823878147490954628861873227496016701300020265710646061741178100687812963969517616315366344537416813927335875298392956744015113182069953998594034942203856633361513348536055445467789210671977334867679553921135755754094709923209350317933194184185910408428087158823581709209095465445774122945198769735212681810506281092201101454112226669817452253055974700422136018167914970138986378976937108030958754104282527771572886446056830035388615203496326450750166725732116553287537504206765619074772101490159124358734420838423278995384451115214054776738997606146057067357857604116671053031695942235286116516612715632376697202091399397478663276140209372347531889467154861021739996223500755945060460294522883397704432800524043127977136149466623154815446528174976668176033807898932864335516819736948743849711953195297417040472582768324371688969561998081437341140995872322039769785593474783130999697792727021069805759921557249109920383516622047355373071614716841472679933285055365424883646552957961388064530715320005755562344867443076841613946654544924596465419896136186394231430825158636129786505135446034110378843285201699222872807844847045813958934256830344391148025038375878323377920977472140485514187348028177644820462336221918787226232735501534245398549782630862099833518801215038618507662395727395844904454494629182428097321075526267384339267709218120445264094880224802891528446458253048944934759648118675364558023118933194762279056645503953299732012375805729816537899230181169405572295161864402670040449440123272944215762016577628632202709038337169557222619266733246891471380307314204183221933826686734292723365001147572429139151035304402919094768728459789712916043114678343361886694318960828590922846158250550921733162532442043077257421199764805498162564896020751942149669354996435624544076461947483889005783916632926145100976820096985661013515814966622665302999670299431690032744694691717649549223014973440534452388685924220276562265374822477531419671269893867410601163313671680837790875887280784811122244494466167203108048515273068167121439388912461277882380933642735217204258145614137500592366119310507553228312141123722480364744752328397112507881323541283976214407414708428816004016368815510011021976548720358240442888676978975720559406032019409356974343050737893487063166001586248813535820347707972198371730113510097608053919917677776762904595192214937310571919026247695153909128212570291470455777630398042892214852922111306630656546656646439565917530895218646459087036111285808099087549727059564843670747063727444020707885485673574829569317507547460883241948673809106320148700658461960407196732193901276577772368301861913885181974382737689257660100318942784100459838693198223710190700541292717361159113733510990180158093810708257586994497256760203264855506333316634299329923303212030633947868006462310559037316758903656187895991023895499147090559903987988417119789962034126677614356546214575250391775015421848663183315398037043084081374417300612390481050799019189206545107141083727581605462426025580464523379919532270148322618088205308660649835962607031647581659101511224947219271244279962467345906612393222375968929779063303416467757513768328139736592331262648929507725814580395023538288810077676659417056856853532357130740585798360493576784956763454606346031419568329854311505594127849987668464380522435460735467637873686128363450620868110051962505583762725402765018996948291768287051356334524774250596752130555228450012174219859596983393187285582390769001470858142024879957540161214843157054012743874481411244664092473688217008019440325549657629198448678118165906602750018374765618810401307404004100232497330529729752301699690114282502289883767298219935256611490768567435604657675054999369687977661383967292257664842468911118992656233379672591182828695057443253053879934442133674318931681504238339464628342355051290792567523373784985418299292538459239728057897843720462880029653113761879274992792767696254137394344131153089715023115036160099494404235629782312551190047487946747807991085866009544292263955562853571763697402398150219809708641772146150577233309405821799312591211916823296483145418563405390848132357691376239462529352922234924605274269963532362775297331846810923738951434534672229356122850555355215367059592936235004651165914678692151253805553722250467413823450453487259160478776299061748727897088927818130388583860848990793219317705965715172172962739314002352180450029384268684197003415025476591449737283174303347367927932379225411244738186210477971567322044574497487846624582949313811922978925495719172071190687161321923072101709437911902390861105210978956740160481568423832836533565973906979995898468734603300957241480767069314503543789381885542935356777857369259929737080395288544827491057505369242566776791564146968056013480744804671722349934854662397657151573800783583084053497502628910132825797234153257155859470967068187274641654286483502984422404053121416709010528817147911099751238249964527881149353365291619452588205034078258012805355009376131156670927790128221231185293251994568313473705280059473197181619893131604271734857864949783713791052648905822938679207407694668150472443797078426632460247974752082777912626760003453455577254740271586094428654450817040846582568929546338268798013102450833017796292439314686004937928836906006496602262178043601634886332861711117911811136553710741852188321336860407608179909047650098190276147777593146591716725078057140727461996175295403000108569787816400117465261349995817674792428342330022066803362051948631945017281877261065082348977203051088472136916734955898853550082396575034397518544893569389115872721958815154534705048963936756141387088241831474560135920187485862451302660974541957955884136969288179027448114900441746725890864506771835798659894221714728520501630293177753708848223292915967385356169600890501987812583918398372221486008516171986491685149922491953846481225309019150617868239149847793973051809554664576657991767698342624317739442009707842128834814897050554517048861792973522069496591466729605310935880865481114004217708882329292053269099334811667650738652421969929755128119734169000911837963109429011238986885090540438040879449678331320109900707427789460420309510062365634921541223567726830260800770225870284314407660436514519742091024306018739660450362469865017247606195711437499805260047131569312895932452181897685049078555555078217018764886792131453752281903127443616785923323156961337009313102601845614249258489490162463410812041480378550925160513198930954827734096942286146126147783810536308017834336971605705264907900063228404178990965692105207164726274895662244805459761347135234778239808859484517878278278264877861971280999645605428656793510342854498815326294134354906997983398881990837773625167327758925668903282113605011725398935629102433718234810644877558175506007597319414086999291423887351388449675985333289332039884978628693918145775318687031870096041831452777338570234949577347758594986944889984531067840834786965557286185973261909055062117439337724170157697804269618411892181868729970169785866316044519214433500545734354041924657146841588786158212050225899120011460538098268376962511884705839634687265212079875615541328356647836133503176607372151043716235683571073380541300822860710516869973639721009701348926834377447842907099694129073458333020248329818352139366632912611012372920072815261682067414267619492195654773475878388521623036284725334542680095570226813588182607948141096736680240618863036092572620594630548984700068200688825079524739169235428337375054530188650583749607204711363673672407987209766206413711367170991272746477416530254548685208312603165053579423817275828006067612932496206782309655647423954473384237564796779232420138880618572602681200893182511716040153134275094287540644938189383909384274027244138987517380681445821369439358165533454490806658909674979521773097078523696710141306946647243021747799671034121145290441994331630184995834261794003156239670501211637170816177294424890029700463676059791106119956679191858842922900608713672296155321280788134862469925964801506254665287332387798598048776763653296592093653299133508450963468371042476831990171599399926919267784027874214040620969547526226453696304740002539572921953892502056075154096878571324432319057615839545280585727006785663821505100239890992733287116188251086714557750693698107894938116571990236034219356605732190780820944302938643604471525637521965351137194262143505968122238584007091199484022892962632790109223074169173046520206842832591942576256604607101675287492412872624185510127612174350255240915477393079014118699037767705374227584910449568877507042750875685864233169479275024529628847316887772336751926132965503112303386439422595589329456030183782821067095637661540448511395997996947612220616042912928536735966573905862237124887579799644538762045637771304344315910351732727862689386718159716504808825348080112977933700324608401746413372796359755059686163927944607146097611574458279999396484996652954401686172797482346115030512316964554221821284267476247948655527048357521834409480390449286560025686885035186441951895463777850063108028575444874005334476623782392658215189933402082591565539176883218879993800764978020537743475927216240603161758596744883916693226965857536192455724223671998102587314820015987836824328337356514230811535761289262552857794422205705799440274981279461490466151475018386692422863624263111437694072483079964270303849656084190265905917660879314247918375768802681388330820509120945589720931250067900502872602502237224791715344497645598162351781574287273888117397632381495894467671780544680060171379766104223970703542008602709604230691942132886452247806410500318021484201392721906485650681949329901843919215794973007104414716525822141186452385683784999513865336163354036917392444690353225181553261421998450753527518357963715490118817168044558715090568544896244913363158421984648897428405697385090724502417824444805261294918696177737641102778872184132909360908697651795936294760317784758401159458482933729270264710784328098680713815830573348762233532301481331753895223189313654388531034595710578531006247276758101618330055648181368723250739736109318646934945080260908743307032957519887507139526862640249688130598161399662699256223402828555742078835128774289879587466695238467567139952440884842306904349727747178899387256940663844303048615111593923871574933201080821010070982002969865308071180577306466172574220722494458424947889928259297187117693500744661966215820689136005830282683107089367964251810313007231193421329299437255185283671614934825418316006562442860729051409936285121191122504618660522758768549922381340428124960732534339850714287144359711073354940623155877917304412163673353649444961970111020973669687738093369959281328570699587665830433280336697769182748093103307538321311438504326955808399958633690916939631149601337857330248687098708649966113826448743773263984682841860305392143890000533013824045925819202241915419554245935016975875319017452026354588271065007663593489060272997762268984956587143244132510066943186154120524168734060660859626891467229443978560286972814931423209049661012108627954467039808343097752644697598548142372265518335656560921586355962993775761206297944759858248218773758860104502201578217913684098923125290262055368383788065577424909397550069486131414842652629407954711861757029501957506890124079646928891918880267072558685319340458930657592510879984778062621356939844155870555495675131863439495207455332168296655222943033923204694442607767605907041180127154822575180005104789292431011233412423295605727612838316509658134746862696977290996549458737127601940520306286804464042928774996196796023181419395136607597866188988962237439536745511579901925223250591275762055124224030419412434878798924770807976809619864094802482542956968524490036803575548092327372340062996421032755436941030546498132482353272443145933381695597488343096337574757900669325738364841862616252983111342973647565961265776800469925387006006806077218706373708615933555036644521681949059739408538127467836527743508611776011745946168342402315731790652656844097749067634492679958273508040206007704433041488550110804193138038911943473522704034821196333753450670727468658043953507477668659320109354936173670389422155342547704089540199923185353444726803183054928578413437090527650723400449171784880472508022913473712739885150918955604108628891006866008671323679508577196632007571520504877033321652202254967272200826557881733835846025823880149630099182619132763543303098456340917083297629301216918728338427328459711929014866259524892393586284362361842388032576114205663861636666663762075057342184018990835170938081156655079774558474057143100559612008923026742753164715952265826958693705209371179467317741097825191065242579462519361808060917186898872332961039208907766596013260170511354592075811844684492088254723522287169150435815266805339614039707184400378797118726303978232067976061230912039709107199984451037926146500680337041495174455046832921188639850819656107710083373670949123722890848059377693475431550099158345392828775737463083990084945568434544046542093220455606594600922481558655657912019117615504649201281551011755188989650340213603088078006960562166463206314591514382728674263754684416190386487735751209654056078949695867133281924496546971749125460790369334756734436072770702962321275326918144559332346722032365695750374885103879558008726909797475968444865749554736877410980970533822085173593324837725026597253872040480782793793185130288853852291928626893464639804756789426284099475821472737543821625038688118124781562235212616687047089562003517399417699184304590687499935805279227585341524552966767900325051861387080758511273649762892085290670502327698918988679944128987748867799084647567845626575868020370084824471215628391061725890118277301169275327964337956613281306628507809245928710690630417233343594155529030768136595123117868056157266202584632630788856498386048562454268538519561353027636256357050616058220743864756177289046359808012252432818703748561491042677446098234804336743319338250228577708385422622602460708276848702942652491367344211000328112245465881381218380732724904602377840885869200561379326831530456392353607941400506222002054801646883703018798349832712182804794310442481715054456489869871405856665141517736615295411582896071988238029579618971642726902064848697325806039794392251927131027884829860975532176913958015000979155233374450947302188914536709061318253313321803489715425032206122445567053421099432002318371519657359913442871565004193087465041861376888996244279868901650783935563656151359959972254279252488912585427652080514298116379089891393915964074628431823228460152551501402942638398389311137130773996654092922643527357899712433199637965613393364960945938421056610957289747825599952503222399067355917208803961577864308742376109963209141416683216818419737517468290203016672013316260489949425937206009819331299060415173958826159138155775449280266672694265725760030369389956363346641173134787255143802135128419408678298207014902612296417279077095064579342608941059485176348731202950509716366227074795631890274213379858937914724641122027886098225502282279313581209229878413257036650839732378282237231373882219278906265185225059768588940920435614784253264854281727043970371878790758935939559159261501169053367935580599008201424174762505153357647784730174198396009538663185123920262229070595021932503999845658071809716616543498314213447881178856441693683402491853924832288624096575331919901006305603126888970215646074647463623694808427294083438184994632945145629331483257985173960139377453858629742127011228426999128622350574800411012560741251718830912500133593677949448085079170618658862180730034507089503305430273668005324850668727946522438736302075060401020189655190473067255282822631333075314124917451924940071772204845204443997425631873854864816298257253011847507585370753250923180798667995153771218942828565138399975432042973166176026423511961725760381431906065695999177787573472216055116336501109524452429657952057602925587897494275600770834623352752122819746649915417414365614475811354914296103110591539147966653244602723428257773979546536799432184985760820671689940229775343051355092344386670875445112886000772819779878827535216127212704764420194889799493206271153391045494250852970436794870686673432646419177733480783490648236226486999252629518313876229924909084097891963848541105275391459589598078662416998383936693865704777064267614810647071309305562082744991949809972263330903548797923622217623331180090716885728906544178193656818307631176595549985930595889307180761030249487942069317502788106153730232255803395970981198059143936612872890971364088911783957446242483717087550323218599674654658226198323321982154149129895637158834998946481719817047684037541709306628996368153854844090417475275455071005971664020709486571495467700613307812214789166021306280434457503127851933093900193749529621219996251155892316749035114704541231841041770676671908628806891893283556543873270132458288147205449714725380222131269061856248634457598981973209085516765047031760344738866375659970473310054403274307222948396304590489134430409965433995621914686548363996038560272192733860801037093894983876536471845196284283268848413579933045260323984246788777948583909310807934438264738360434518211583402029716453131489178776979520739149060957688162042923063358901026605905391253091902134763839965088999041565147029201069222347578501083176562951016271061015550835011882944778855430395647736021852389666103594309301233265925949333483677859614150294017881001829325048921354616898512647225529267333364249076540300572731839582046334102184208996614334759397368651182722538380981536274098786362490576253110625578388803277465259498674782652789245014647381428315128292548093972188770810355379017320813027155865535172126960063461043910918960763437156722714254116552901086631124159772649290240369413821146607511164412167868680158509306670383295372233132897104316444518592325432881547533697904763588952225287593368958316510294911745790133523977514004443451583090670324088324967393944980661092010957665515574483162955278987541941867526438411758684971033222539571959410668797178668192924830881243600986378580404339308716265750735246489125219343188236641672927357385808566286823648783655472195120183524425832933466184375420155777347337193940533593141067305054272235956156940832348828665683462204316283197217165181931758495762433227799127632883384039377947091935518383853825853306434619263216709586912312127380011994751180906760237333593546248463884426038038200172648337642459300030124300931664061580737236882929810500393541557670640852427378809740320211546291961099942778931704013326615420480243918479491053628082846366458772856278959784193203789540075397834235670460995775576031696953661786277150883560571525498079095132792492955322454629921292970907746820612970273250151766039468015743346928249597475283873999975955076837826778325621695285697792122986457301420399820494109685545960879083874779587391537581523694887804727569254458804769687902050709805882445566991465063921652162305971882597140144444283353810395388119484760967642620107254089130644437906178685548205991845403283083926619715455760029521715900237140678047694025488826424199647143474554153699498359325446032127199483579165643885509138279634399307869486677296083092432307935168574024116503914975087970303488236186232192389333816968561347625602560166100823417420027581086858396623458827823568739337922308769174192718401507650171218626625032629761190760206939731741522862470386593367816989746109409795504272775825132880669487641006660935546866950020634283088319589853795424149528292730490495328816842533652549417424635741988677685794727345179647129606939367936572647393156290280835969099010609092002841585698297025551120759124036428205062823018442993861489948394882638187326729190657834906569688471951853484800874069865564714968014635006455309660626509883540234704282151873713422963336645385046672118280679515711467356855370692607628551587197672831747319086466658934903853400864587299833745054788201359889968805757348882337527504375096928161129083068649239340045766147585434796029113437314852168778760662151296484614206411107101593562197590598485269054876016843729207599992921249914578504291747940373807508651751129524183976157420612841972943565380139772175013413129066852135091300515675159353117202249935572878466656840843639519266159789828899771873814439532657073722052874564580308765887985388253483028245368287234040522536585675742957442933882836596544083624165594798096346288098328023255679234020011099499844593081189667943810250163951079277035170027268708293894768254016424408473347596024252762848940001118212256451123084401757537037875300714942979439132183665690473855667163846625256956711290081318345519750610158011935778157207687781376923658248553178331249080512588857273409786026612727820422148441625723325142465125145162291541254537735153533018824588021009609562183852662015360532039614184221763711776824464293892321239044833839921527110253069587412665795485412643914085447096998380976512611499697794872807199931401773221980999532097247738949697934403187248949559138717362708863987037325950523226597797997942898163448974305203090648009728461330243957853728854358164908415291382683925878602489266445024936200506274927863851659485171480252062425256491795753956211486738664650166001284951133785397732986333427706999441719783958771071908616732981106316841016634526757902246309426419217161455436539001213672379774727109932462871213244687936289473302109539338385214393736128371686833162797877165142451554171493048697792630088935727427481708423561102377046316588200284507153672826543520949869222471887481151441943258389811014756675735591045250919605887128504545674262086972249351135819696729250037477952900113917813158155402197155409401123080424358638284344632961984194738959902018605383432957150279721937403211315769364519965173118839258340375371508063913124305330218059681462694432813621954112180515705002309036689440213033468585981667711231046648526644046425811771172325469099771948289263390490608683303854792233016498936034930681600696222627334870005528618208933496277586950242810454354271180515927631276756301132238781803104639584991563162926233805383877657178184679864337316856331666965663904504689328667886811721274412281790754871406972624769954193560458524221899905327833788230496522863656358697262599250282658076236724260485285589915431371272875564269771942805134770612922467324813953831726163819417666042859991694823353105439261378541348248787678040933650703538239011957202604391577095076414531750611570092140082892103793454674721042507175770837265881661004479764293574663947165535127138439708711089916650845478471134486250999372711228681200353196556619458734155777883129909331650717135038380691339086332801444598779557110680491415168961460771983393246613202769975274182510732692708999446836626869064013002219180410777180529490301710806559079631116722907216928201813295017422682617003822144881234848487360131942169288520356361443312030119537019713493618291079666501320239408574561101255641965002072182060373444361177504735958957030473380615577208423928812250126929205978563199106471741890667572919521260956531323008698694859515970461271055067983217651106617633550250642985740893040344037781585747796258612817319723073440935889297748774194056850188397367606832014086045192962985320591229035665349136301055262816872717180965517782807446817002217836773660338724198674902647682963409830068872528663807626029317890477703718759406302346099741999630789897239500910411572253045359840755426778450597666168886226455284013739766148546305612220814683558992557620905227532693659881176588264365852825931141452632697400614075704367941925050592980173340768839991292920781170877580956166065045966933013685687828222485333779486164764839741952619402690377136481087792591622931040219518987557107745688830894551127879828840305408343353572587110043849886555411356686790198428566916376780579707202320909435269610077103277252147548991223861269676231764819036036038083034120029318159371156478441653910589370465882023240772970121280338388657860043296799913901204146555394520469157148022808437355708027342623377176552332864148386672641204465520757741847491859995956570935191561014644499319521126464271794327422533004403568632125020002853379976636310472459141435888434086255688584187508091625264712489147667274775315199576263887110710227595755844267911476601272829719158182825070806144590743739667489081569135782083947647721977601800176986998405049465928968281273686654747451087876813565424999849001741909732629585538724028226255989098651297270298265184668675374812594939136898647544341863707642481765269474271712568280096640251094554119605516309917680886264430059869647831063781555745797076204407597298883004175148020132936109640520970912289420897247868721831532457446894978312508245299272501874791642374647806106071307889558369362846731677874359569392088541514980741046322307378401376974800675905864277565747487728622275329821599157882610723729560596665430685193428294595231736855579015493848814424957348704908696729587614698874456898440301580970332800504712099283147766819836575503637107921598599726396895473389784760634750571127639600157446191647541272432866327156231449753969425373540232219662783725757196695220886240228121500962948398420045109812111766956666315711043715062169815647501077436620413908558215939454908793269164380426697358643681010058983147658298405820178169137720587984296174188318424184030067665132538333643323910757352674536129654221960051494045306791454334960024905335961632489082025950472725988138776776669463752768146664662467084037624160015858892759054331905689324369875439266853765779010743218205467662744782167625615676585932061707013739512164607137588989750070103194274612861642642385583222775264639472915517683109970191678531661351851353637182326758404421707669223131723910985431733760792044086642612156151767274184005312522103049900814752896373000968703792590762213593922962564932107979238103066912351223707551963755503490534727871873555157046677057618995976843868230316015510661128395504560999927690679778410307911109311477039880598606410745140218863211454342704111462264511409971246295382721759154445193955962997101489669156380976407094025130234836918653588455675665542179803040229467991985079864134251502586272029223419851008195461542834561144942203336876290490550861055520293101602753786880511585074836210331133950758645235346017687246256451277907561467304146791326103212074380878629378172079732211127698757547415963643839100181724534940866372482404619671182549054795549712492927492353198161299430120783213431476231889554348567102357294156447229178409722897733614650992886265914188589413034813953427297241234640618842689627423471607843335044102460760293410353204878320153377915104951487005725423048411866956713243802565226499037193279094963263777345797391534992890482268338832078761114465552198335621352684031253674120561039763805180244825268061463279649528843753806230961037494210634294042190689018252235500168962643769124768269541225055578841149662865603585402859852879478073766645281964273446661125763679930639194866814816305760375835035498470425375279940604551057863612224675467064438738328613637412635261534508931003268504845830807079115352919455703448602766599409918979878054896331124824494219087134895700948970004103037242575645938543368303875244828428005967020372493156562503596766830846458052067814742561380271172272898313537067080793496777576303102501467007290553033624659387140347201335467822434362667723124190336853408874727376731284148643966236388713101666097031220181368226774260761150442638226963158691232268971317127262384292791571664029291966066331367290743337942182790033162715353477987755292072940646197388542515768356236859715666934985188493092918163686654826941850378936065259452362719456214520169079438695942998031708736942396938360167809776889457883688169215995767181322214210440152768987637035210361543113491999534526972079041078246421354926018863198555360031912676527707314028658616955628629231284744400701686907760264437726970940045840094680548414126360201791517274230631059360483487818911795580466622039176676540825352746336374755214595345695277158489259052719673532348165521136026226084789516565665677097098169323179335322353833858223810996319851706937936661049011747505330140475019362322611864270063847899061208697102132439594637734636997258797558444381218321298329061788946014489475459540284520893142155866933829466564375487094376986581473023824164543048128262334455736469443651167788951537166156582819768124249595817954026817029741905503360437583327270622572897471843386188720966429380082991589317199248654087634679182885659643282863433599975076316902910156467439612997576640264476825079640403238230707813770835702445078173535585710064965016791905059228967923215069384628220262778165546402250671967116960990535400964237609202234338442868994661469729986025002506638043902965390067434914682289744940731962173236632022085777041649904218340684626778787113291178943325287910324504058069274213033397457703520448510297830529720164447743696388354239891659464792162950207372281092214724975416652069129877208378619398079353942401547215753446016829152283157473937514705516022242891210970556993764388043201385229577090710452964786457275913516136741916889225709613985504375110741333574174096388443154999833254716493936419581544200910244370474265995827074034748408124571318944396543990925493662154998821751485722634869578226988917991043347325466434931603016004183432711878957922337922385958872116236643742445378473489215794242478593541985437494637082259734075839146113834642251885180930466430511912691015994762866862754310105978698110336496895198543008705059596759685695748677516227877111264800943705025459334341522426984169357375836495852896470905261279385111556527193532102854211304594602595402421742695680343534207428168341944516228294230346765536286519751596206185039996855588521972188273800679683740737339495802151028803397940085734526664659965089525841607230201281857665021715737427094910642194843278719270050634887472378396028967851933615820133068763352247791448921485213113761476995977309380934509622895701972168589276618832104102476173209806929413299421613471787681319683902287677034318367570884762802136057008298717089938414767514358292462475669267846074685171717684900170859887470965045648215290958637611297272889669723110549956682600035353111086375774335838721658635871889118795846742186198866488866570497429101871364249996824046520841855818907871531808213488260833866138447301191701954292852816933951433495535812062182054298417893144969648511033187938340606699400192057193046816331570204371754418246118635669719784288470322252822806070091442888534661886467015664222854287913281540027765455997741534677438462460310059913732047610821890278570917932211492684283819756860274106022786306967957880831990584968891803144536954900336256450321778306555735215664424259058719606164842825248240526784703610639650270946889852549180035741675788742101514894618242272459022458682967131397285424836758960812554744922880127766343533846073510543832681269129204711461223259520624082859389159733308375178567207239768834538452743456666496788885560915383212583958391244466352844247023346974939532918677275239449538561804249879472038571705453900363278652648824966466437079570489138347369505465690619095493388665731173440343568842803902455476306731262775497621095651690131358961230062939411462448333814355164137146888835426604887356994579064547432460590317104874243038790156240913465642326333494311290921416079385468649450335835457085152688337016835831923591054757506639928429543065731700969571213854242836350894101715175534210477661293482995565864377076895031557145353911241791785727242543124100612138440840305793016604772250490798587404294365613076305369403621985412796432787610741946509329079725765923782156264875123293587738214052111962804398083747138767341411754044207525160210393158505066306685052958703213791373355420370072937380712401125269059748183491536138372268451606368987690269010715472805911481988132861214794677781019236673747362772816388612335046146417012086577490467680423320424553798052098288860669606564633354800137938272507497582871886357398859980854330423743049286479638380857954494942626918274271434199072470706670173114896330613421426444779324085014228530611491886902263357546426552613262736406721658478000688260150598386875844684933312065512636283042315841654396054299949351624411792368667263916380711695858846848359226115499044149909926672615751260735247131604406372935753193899850441765266328440881756306579018438869406656358019965354227459191275385350142686465308294866910201904261475809407643223982122933326172334906264436127024800646499196124053305949705748230767591697143462214093997036754564483797220995161636436226945327897144616222300192644239860735133219995809779165631023173241503096900722404421820183043359013989392086812796154797046091607850835094792753905354265419788850185520860645574226707012981680161986043593114622457308277700954057702641361865716775802749450840922354405693567871239546142680318665176875680709870366986485691030136453826187344926857871626137255014697653856353574361503808952347483609295832317642807733721494330505494751635247423313318981873467878536461926330846065342640175619577395642362935261175139054327787916223480487859458314712039580406646868804601768340736006396248712062652730830776611753343361389548068060822633590044387507309935128681387273630960699771821411602719011247266980245357194297150247231003516643210814175780745614731840754935807490215456703114980337082471749360711060808827762467150397435837211763427330493881977597756400421256212319483445404960120084565354915053004282522589541951974007049533526130204071417301130194585015996548602158250150425157822141412986436538719404933251321041194951546629869250373849678220296145592932978609550168787268405299176699674937193212408219823712833739334138774622961128877729229945832392154051325157675664496107502946679340396925997206327232462684204302772905269379740208112954731011371166418708516893940613993496512922578627792419987731313010949247581465062691642129439209112894797167593958033427406318501398862643142253513807063184024811688127318969532449139907591591881596282400564634272970876627064308803862602586232982956776385206278893034346502175763624118754649344117727715903051681009654080367815884695142959782645694014675923687731924189857585721172691122120820139909679599889769941298870208834880912574170284163089576990890552530312002604567159317475538946906452371172809009172728504602786428120190521742908596459109727896411522260728051133053627574254681330034055025057279286573932108829295931634509247997085739970567134756335879134545770597778410926863488937537279458034613472597789079063471340159695472809978801311763204893890322909423946309130128457448713547721173212343584849996909050557014084023537657497725322054858949775532975796287762111978059356764777341237780091620415857211025314585070434560601186078741434077001813740732682561130802380619539587609975227879776304104501401026909513922653847251970213445217016266526987232065708973548929682316673303240424711110580294207114741894602841032897226295726614918579991604248251013444461370718423747071071387543372813393360283632762523860458676980626749376164995954435574822467710431675045728433170857777897119136149867625937317205889110629931027961972946411454368407205654975906533189753717335619494144257332102640683373591173775486197271165909348704080429273700117395476002858228609916144751349937442786507510788842116759975817783714769534089088537842595772795087473350574381883483045432933871366893700783145323285250283529074870202946487059772141632039505120046969761229081057450618104634433012828171725845693146892245008263993402580685442146869816294414487432106130437492160418444348680054683280106388698990626928185720923317998345309006486812357224023257248161585986895024107000756136327332767702586321302443823407252826437430087251265410649135392980736577795267006923760887534477667172925425633847851668731781270346596528307902301247386336547498632380352592381168967024837167032993284066881738354182683748950085919636860652169862625580687115574676512442290415133671379146134845076994507405124075571266382814239873731375309020911516369527227187656597137637905939909684156979112827218367663373984268155931159690252811407313037794754650964152453231905480794185863694689477606201508231780859692270994877352574626506913510182230830637471094159091873285442939860110986263464773489612015043583681664382728048194305564202306429861425974797668474958818522717232916143413796274911937256969370922274489189716550438843483343746471431591318900568641663852721881762829760642600718776310516388210054379992735685472670814884710500243331402816945981469502339721089054899983881745810862479283945119553238372888750455253552260369363220521082934779981042012483528692719802619406241702107074437059657016482606940157722038625828317231548566030150290528210763314407123100617946375703031165376524054306340784106145691888781731618125043191337048617635113730751818557045646916700071385489273266865025335356705576595791204651527214508226920636379213565015816267950942481044389442245767140349201460292215401775746272876878543998038482685140769216408455120281325190633134860963597874757025137842177402394763728934378828449177922157336070569434658750497165148981354496313990775153304096378032083075440807944369159522009882891140688920140882956885127118169134376952006132323139920998396387369796333205961473737377857455536417423985951170099009797825577623091120632783673166787162813675639426475240694053910020339682770731381917548711555978187705475876102879201415576076819487862154650517932557869713232070957714700104176197057020909035818377722300268676459457277071753159856507365509270102183295892715154914133138271338596380048367827338243018965265626241910234559120711020040161060661240079148591823178746593165598130260450291859073842055190574501550960875586181918902180707180697459071891594783064495267130043525117164058924626241382572939567714091595176304290565006431408644303182258754102694220898995312421098521528061314663377852801803476128839368033655200785649171538168207589945689234784085706367010549143000281390734687653074744688568041474891349097509595684203706279094567838124008994654483746497534591193492525595558977715429524021560656935434018881954672111699340517003751559352545013513222522050930378212023523469358396877823673402302112021946940106353619202420154013163604371863897880222006569610397908225309991726807372285891340636442921880178787021140408554148124235286561320393369206899403839969802503045706300813316425935406805400661053982399589802439564771646950668915441777253475780919114893274282400648852186885656012472684681275785813167079923532664893827434338525241774614178733318392866909003231033744415048341800314713387226782658419164592252528033193883119327221701470125293697551061937102685313188134356586833928933688546118640053069473487913299664816440031946440858487045503342906068147984864786884871728839362747065508594331547478063266385254475434512792091656669215490623724343398893252231414951020335239282315895546825785116772114758644163716789857794174509257894077223914292369937344921430361364051111120549860404098391104825761944578772382543103550404120183857434824634811576802326957497171428948499877338801936629952413667124836671055676952554397456403325983146178804070862758192373188413118281811678075365453181057652306037409216393370230206919473609215670473368307428130633656264931099856421582873599624832293498516881733627974856420695910643078162961596967991486869179486712494761710669767443340953356824363530831329571570383314280558633609454611202268943655714790737843148683195924192791743871689889896107796233085084182098397906045329610944758838481795700930741496381280199387130511373281351056953130643758470739772146672814236830526771995623282918692091745192325139409367539613002951424318571961587022130412567060072527429143513657460850678604698385761786394157864331838466795749004814664821611558388084776886841912137072322922559099750977205379386679714013930538716518330348282927488664278366606626067746436328512802483765564772130724212451324447987642664038454937811724590940746704851639134195776415111148882220008982133457876102751206168745269633517160559753365770483966258552745351590818558255005683580269340412502960085179298266235646930454087995969276034028217053439863833997212654446529444692144345577051774680979675451457196430103182556387108644231414627073873724063624448301623002463519073883708528141294513415101461723243217112659380493786668858508161876879721707018835742823828115606783335699256346867281163494243363478613272990554911218008423180406084561228598391467838611240578466524090250580163007918462227426454348637066854274644719912229933243392094673906012151533727654168959566208994053882791628653847943617773543799252146608000690938583468826054844968417701164352315907024632239496956356069876893435227801111893819579076886540708849035466648446408576121752802254507982969318025583437676558172665572672414401861854089286377699370649748305900719766475033582971948398231572372004607414130613214214651446507488845800104448414052950794752425502939543177069184459042492592685918504719835016791714282159151601456929674113343174784595234997823649448189342550913041532662531309202577032952148686383416783728016670130050279466947267114871848599046224393254828508600245917519746615696406514510032149296645348017887079321051205758869076223598666487400479119276051054856338218778494244174999501063770326256024445052061319966176502448201076628136695943162790740054005940237326230121115744625664173899003818863956855271442267840059817237878287680594600825978509919870088546386692362250155380887347004811797081149118274493075978943622718967364478109107468988379868483939045112927286577017003730596253333074785203855115838581828090891211648556624169508344902727923006230137015920088928754625511981691377945780326607864828445287589031535832450446371537827318121510830724332245929682513825028550698630359957437140533350013995139619563338860136259289984870935477616858499374195976025471033391156152879032295889248619141809499937205921554091527973204311392553843036776208577588219411171029973086071699459526027114278937830583879516986153710770154344883091614858876399507096156864683532772188931174894724507762305949785298402664209065484578511466268015504748088298438116257885349161256880633379056802498849297983205463437296802523002915835715165572017123750383315684388945859885847354542630160531241129262802849605528939067959373613118979604917435026354607024479000716145501846929526075370725297197353618761142396737197037585453536468321657256712503903542510191657361580211173673241137520975013608487902296357306875232288510918980159380322520923538585121758138346421314952979213232124690178312902038228861801808500465940773833290974329703051869995016332926868336385728897906326988252072392281234509007892866890330583145579440295047917671992942132582284823646077817854421819196634301458105803858019829303429594111981720704246879937031544344565720459374795581894906432928451633963494068304969512224884773768678347696176709735264112108459160679149481911427098458813698782199688615608838976283370961112340142498027778618398268156272927433769811392351753399090654268655593372949864819453800556882661318499397134451074373667670204910404051914665528597492606919067303398670565164495719915263655436137715381143618696353183381025772277875009098055150664804034511867635114418113570285706783041917237649038804471486364768236466879747466953424986460838758060234386675379578599559760865444767850058385943698998651765269230877073989376377253983673820506622658187648387818643210420512904462636457135785190602145029524520556772254563277812711205185436152763087302580210259789930294307027598572004131279034847464254004216427323839415497735941301328281173746300129515064643315378279323509533722809990151543453518310311739844486537743475887763209426029555024953140369549272774489933209076107109149990395938221049671229350722196349943066861428651913604248362960749748220133352533431382891294708660670865029586520970962884828199680175023463527797744677555582435927836650213409988924092776940822976095397823030418120155301317138224594299877530442224173097239509966246981820034569097343481818558680425707646517919388326876497903495524192553581380995293351472506922215672419493902429944407001609789685876037465372803024868804207908626861273838126872289267166535009645122339941197601211109697573158210108164154495468837373599910044033047509467437740371757671364117169772890675384219137659805082092587309956355164174130787875737405768558123405163523119854629296929561741104648716767003316471409525324784940817613020429388748984976733649626517587605076057549787311159399103151368575820594612585310335213267585106580828905986705266364710441638309447188507777684993904023032279300240739613805626723758158431676958072914513954200995301858211252550926401701847878485815024336321560359229270264411623300627554715449304783336498978539165134838871193209636437148744566488757725261737714204015360596303684645058551834568427671826605148201302708137871002983300019212827488529992807557290842564845647686044743972512203191439454446772722295156040627362232029365622682911844297243446291837019696319594218428773132745892367099407085358806399045291940106024333420477368361748158988020712551873682801382423963978680771006655564136103218476565941345355781575157339935520081958897933751094261157954498170058358173890785889107046952280031327361374768752809540425810481189169105880345817736705765844480839592842526785167338739934184795982314147479531717457851089266206922535191279061049396514529371239982770233579647289479925576449140230819579241089978894380953668237314623032627529718435664525363851867995029733123569881604158915337467900022539518570335747031807836781914333742781387878320475235376624806119109884676766429076913665729452697131794925148104308719594570760608249994657828066028843370214782191400902964982090149122417395520920273758588414951594238647099931350965958267997822620373656134739482085233735273445504822173689938433313083699679928966678950271136523519639072721562812128973454891173610292455972549367714721778116640243405574258293168948449197356999167743953941571320748625475692201376488930636252226679993653647056636113688068207099519191643204837901109935605533053638558905379964821607071398492839528273378394225623939425355871999092313584756057134156967753489231410390526430706240052852809798944607196366385521422306714354285480676633836509747855272553729392679179939804223771780212809697489905167073581018180961223526074886145405628159069549166374300189542642063796556208504144535377392066018671979290706382112060736829544928087119908378616108884322027552597035505260263973711437222371286479000446898617677157345728560644514739463369998732292023171071792215168369092892430371006706893390863475263709924897411361915298915432007844460408079318649295322543667805116456622367334892021300323987529570421434649963979273343286202822842173082711631085515523292142128310875820230615404996133806753361214172975317530814583116458137230535545565107602154860288891834216036742126021897599457713734256271707075115711040074832824944625381006721263909215692633980766326769829956617888513459245914799156520552488926772426522087075516645479272613960004524559493821904828013484402252788332529523638071453556679185977909342296795578331742860259982117637075448833696865478991733772461774175443842692447981110009271214482824656623347113953636199647620770211273883543012655871295659080481527939986244933774959918834638162154322828830216434390209262566947472110689976692364093393725080942340190544834045398686416042774296459732878559086101845014944580397327902489975858886426426030081593334409905096741462806087734577743470251644924665299135406330383190397233079370240705886509756176130263803371165230056480407002944830625192548832390954878231519868084382086653692316050443398482134873456663437140290401457424684888063694491563977012851477936131676945811259585733082318264677572053178521851079602617711239355549167170981420677774373877453078683692143509916921276529386759845352983387907578698196795318495727156399670549108047058853898810580055331988979514595855477770078055188442966568626930133078620339686481033685744090333881623271467377211762502260470298685615386194251208905644242257260267363273537751853007404791847365796433270933141823940257063242743844826115810762207979418352112155269224351102360285731911155324514938365111928748130751882722593608945067018088153751749151395562302763892259469853357801671398495372529021451093042027199326323821441723790537677257365765056809340902050552145221867680171001889454334940721291422611553157360489004598278766598023347342796413779312920175661188100085135614713351596576789461166914501044606046041382278595112528253642066846466762571783687238292276032333431586169244929912376874526469558229850978382579799443089985362411627826264362582173369878075857395469358968829470134035107733280558246284498143425775595109341037036953697507140537239676454027764556328018763879069122224518451116204892122356314600488178525808782339044317290811723512470880072357646166222902890602503843940338114100179105344194241524358728167524795650975865883985561553360366736323688199740056596266469392446510867543334564557062809665172915164196325136044706482108437797829240386099645403765001875299306924690250796764374829960048022316446874799091161321822435257265887670463911599382590631882126353016388072277274621531431690118355803748014469635051421211717857296919730729838330380855554820029357585617099264220382067413603373010867606964306223269409317890120939300305959931187185352533126203061953434214801707731900976502942342049091864695826173614852996283756002039857750526061906651764088480204228830582347667367065435632140665204841696993151685935373633252026252758865228831605474966240793835172020353199779702635433763598210098070185878772473529305380869823813826815324224993892885433641417479265694453099845431551500616073378631608155543104785676180909658639113049010085419358839555326060923376028813559123346936815653950936989648260084137094036842600497822966687252565625407770576175612533235315941019229222346138716298472251780762165656813277360548834675860807149602436940537006496895057305497107942245868199544410812614494302396278047848610929563913418253525470828744749880171547040453157420102413219244590578648753205686838118612804226832207277289426395268278893699620232725762571038104974177612809922441234221604113952883526956037802785112146114612958628454619657633537349990601515587990397862133050690420569791779966152267422381009462605549210456265903234682481616902040716269474505277909328734122289958189973446835541184681310141089332637711821976596024185413006632070523760231385498948147442019945489316853964247258099509798855876647301235952794537916304897171627133760221551204227358399684538307663893644101999781384335516265631310170741056754986920877177554410155377764672586209340332564752115489319977899746302570788135475376023498819325380689627884755311252163370616150321034042589911953957363357683364901013201886528416564161874312447101861208432742316892691274368353442203818088420834195349938350343154461652493029719002992215736941499635925261790417597512160574396992842647541276562289605406163698770333960888456100963861319312118117661366572327113876636389357007540913831071034790321168269452621871466386849113369355372980565868957950846569393945318854034752168325977153089292019996385649806519514757682499290505091278878951620098124446267382098713428792852082353697068686853624996878716496701621626962234843985485173483234760288496237152933294802456954994182826005849236320582097198443227591603881198393661445755605517513176414074223776043189290018508867104941013274204240765724025454623287970230446880456637157739007124909715678639102997542605812129407225605240547994946044429898506894087881450813557374391456266659300269403288923020908095154883232294867884861199775132580914519435800499217042577069604548398053616803285827130859519086614087456823618104657933537112267027567501100443765875016248581812706539142266849077328273380172760725212647425683125686801538673256846655645621145834705555336252120097133319153594931136844050247425069061056631176773647050146440853495172953024994884144622160558139026687067595705369297305960720591389453825994034685400440245816031372282049058272128305298802345427613577374075131281992665714979074112937172911943237575700263212391680372160331291775855055113112537437509825648444557443850621611702989204343214541255627156137091285172655125058686100614095267514902648084652059869968738471243432425007165408715817655792327009919209324190175640017934741284750585924072480259151084657504080637748376237124428495260349852153557030158650225087158579225490995727115997663112841272152803260403772099310231410079790613593585739830990056119871290628090877359287009035580978349636874216802447283447169988662803330743880111522185980727190352018184740806535336855041733259128892402011117407583507002412384545935525629644085583478749250860985601927990377272966812328664752850950022396677499912083706362924281977942500483659958071012349440245159550943077359059076991167792496342635287157658841812637111063600362303207199273925057841833247055359025325538003997550860126813461952845032183919835862181356020740356095553720818784287560213806680233511412754633551296574774276752632683263828645426197177715735841163044105801565651678214836886592662669647904126054071820238253191460863824886660909324018334860816029387666888287134739842863155195374173371835296628431378830918281245206723518438951400919477313851088857560801860103886346583505881811695646315254341415220158583483623137436146428538175604325471985369644207386418174314022555617066743626206820978658737887129859302282105667830957557059761537480359802377870015705086405143254201491682463299555030067518414311986807572209950074369041332358325233507698965060960967245635777349553528731819179194063421883339072606843912694014777984758906715316746025419452747161921207173242854342633658616913179572474369874182559890097276047880517028381661435618558967682354798687653648507309394194059465714751535822128128637448067197826032010378474399895394002820572021544260003657881718973242035057653966947743543341075069010717502768294158019924912189950442915451987512269440962138727587937537031215932550117704441875419662973255865113374805791402954064986548326439505946759009503249001839838549011039614716591597525054995559460888817703618308907020158489146428886339695223758081629450723608194812553215126698703383029031735636536804949622144756987626194090252951152506338085969726339682590194104035715314706511414880114816508559810419908450944610991659613061351796586923928513353474390493967598497375743564753074266103091968647244440401709561166189179298132241625134249865003959653698465676875827120078696767944858466902177670265587412038523986974116855503437563349901533798523351100934053718645020466484210071367169260945171840327168557673735204094257615046865164691117124639198701978571719228950030438027569218360705783379795166340691995673782191449478205688061434603485192980795453934035536116462680577667600697626596818762024634853355527744316424059558112918630131904374625842609477450795786752820007835859574489496782402221564763230668029534863109939243751982694276351976569556522978853576200479281737368421774724777703259977903585382145142281259633615479874150239232167628208280903154221123295913281509136453842564976224169475019064097847169505175205177019284801615747954965979989033085486379567639870608822585524072052181596451796087359301620986826690400832412624126755797169815337995030494382714273504213728825090285659339192982897088638188701773584828050108218075269222571001627794683939139696167132086141538941396260893680523542241244042490648587466034440596409877715030871105615934250981910512901567238139700295626050990198056739387790782129139130340810590786261055853460632832102042197118800016938457180095937414243910506109096087861022613439790184704783542966521220527716526501653215148927393235150208289952131426576124768128808325308290075221530588949298107684516845897993073418413984636278284355932835034333074648742100690602740934701069697490903045011402392986115839128830520836880306594145323025320425210394317043436245650855176757217406112820432348869442624208211596021522990220709281802539523649277052075857336911304923260699386414418216572174501468897123900814798689992048929970582039520682403103780454679583025060595306215619305861771594208247535175984864601156634318165682201490575218302290562185419707735578972060174738212067491915156950753566577267929733085853370265647349166626116915607097329805217651875932528487268168439861835008231784161683386479265561005778494079006616222024438561617641070437710168683148603977069778523723603393909131329344014261694670427240567917248491077739583957588684886959593848322961074830301113346038380781518863713910053883930277901651259303396816214848059677344503015958827219429916798534118421249415121475080622987735018294107319255519187003736520110677620014899082226893717227118331030194888905862135826961896143148449869035605911079583165678532567132702106577644413883487595257864853595021024319533683794659604135410856894899840806441738978501172252489705719616987909022877070213720821169931234175719168033875856640357643220259868840307448506443644046129831381517304604149787046830390640336951388377826773303345115519270387338041423220246928913984104014453849288267829408785420291471220877962869022288085346914553016428357164537174935913504309897172186912839255519987034320188720413899239880365654907040041719015331370673624080462649739705000438104914385176873804864424624434384105206124670692564683219314104440618937904900518529839258314440818320180043421959901310189181063501029879741234133950750198563806966383097562683159125357081581056904034151242424668479522501693167058567068842816760078114263925968310507551065275940766741187971032095787881767587798417501060929616873971821254092775266793431348199153482868509669948744267023152294876269730877364499206688036854898999958473777273022562741917650099031739468341821430617280066030053649563349857478814455546079829642593515935802312987096039182969961515057357192164509037492315382832607508157647284469729666187719230900833985625865295497771368668875439351780854834995744214634191269671192229241343949277865476535002633215095812248000763314975610405914393127867510186304355359109402388160695379444087277924479590879392486363282834792470382353382701165260162471781028442343034939178754529023677164208801678470458883974590841287436112280151947188401477744176454814783646694490818365496375303917368775945498166830014333360726523954309686459890897688281295892915000611535799309893030182441462539399199090086129900658893410414690546399322440767064676454504035705664094903564505922760906223893885999119718563752469632575394048967849095662744443342241910269057739847508713565683145658652152988380630228767345609906092917542402596767891379528497853215208190549533891116600597306532252102065795969588145262212395293442231853192188987399223082739486581328587100407322917232372713454186738848148727870818538938602130402131428260020424453724582530835061285967225193322981883037775530934210054000283144769983137147878570816406669889116599918548815422156196778482985554144547675816460867872260049061088607697683545515112152125965651651300437164247753096436920413517190904268073799467072907162627526881336935439378285456329927005988975102370111034481110896130685639541822882689933035664008882592248669735006672234898273199520245146193284986280301235554906820156787880279133512982798471423502368238549197223379846438758792049725708069012257132054464025387368399264876507573631620336146838318723082854112349920661008430595338739193693042697064449595072367546973985978593202909251111178912114449495283032385454485255909751866918854652714736864233036259070848708665103240430914395200758912950743338312869508605435485030469047893319026206656838891554215165335344352476293971772322357445798035055141315270656537456883319514526432546489875509578777754154058387465408864604992282841639069437799069583635355365036792981715780587580187323345428931662939817305955883359556202338528353668963234858068413391551086434892217717602297982085908929548149841870732149523030491748380991555252049474846260700975938733028374837597172174309067480082282378096913904959953852541050316862627324570695478731612989045714882624569001908187643500479292490252274068358322970607227963598495337713653389215861198089868292311555666114930300702767910382562272278123160575339383099237859346595959231967384568822985688896310384474785251544886276781656441855991841142823264747265080614289831192133226662238090543546013505032922302326404017127224907484644896291948109471655234909684892809245946138237264176179328424657207226274631443871216421150586757779562328674702651621428507318886659562591531772453178544971839834920554142941066003400707367207028399603272417806379839794093726622239952492769289230932985464285071552143142802954322481041077542648465393471045847491400269713569999022122417966005801696419629085604791428242422349758488109341203431547483201043619863921427398666943804856469771964367859197810848365033488258563486327524153463597812079959411632662223083039185907828971234360402347054782304755850208217011269483210583578954521497464262377476991250399351278401797417166013627680478055002127392914645903933445788016724374992840706503167653320688867245630058131522132803524571307489815702734247114740107952962819329592860790051413717818502033327375554981977157742882613750264540632496558817858594453399149058847075492428718894239059210092205405649544988612187464746043503356185338828368306787975038453910467932878759666457019922412345175797361496813724851291177808560653452937101678487383849104165431856651818147161086388868181252181171699587444494744050884790784121425640868627220777630913891587741131886388897609041672022269885046193189376498868403390281470929641140454061860471269096822712393620973784851061017530572171162954365165974142287783377674563500087551299567085294674306263012317238162140204277160964686218237204141720669678376142627086289556280092064331056033709017446346532892682637934905139989981164213292317026670997868785787354029548305643942719763225505968205008227075082557177456400449222578811567591333356065546015914144345349410303597064249755951240553304306194683776015230091766032349079526305568025501955095173219947994071912543929172785824625892507978615494107368235072888811087995705571535156283355090192664129786410434284986205320097884429204085200447897178014748930746551138453441249743664958377695674037610901851812879816359307517924403915381981691497851780145129305465849859394179733874506680807830784931122016955167196011079194459111850968913101118291420806735550432613558655135865252098353719432761290922200103430762979253311315434228621370651746190446047160080159437151303047904348232782087820250034896984442917843014600191332302839242800342367306065546785483149788722291117741853309837103294630698711158081279445258784165330844279534795204323062552671359403208753061943281479385568609849570721291363547425330110594927880320102974500732701595513831518591721646453506899530253030964282727948627481343988120460546819834273529148840080106867708091936158860460623581686420258957765143490929036962785608513742746487749678716080724909336460413357405983337388449658018419307442509201333339784866750921331847584673573871126404956915726880361853408579188630398991057973978636528623266363128623384128378321073569486929926399008082187882226500344523232065353760529445593398374806420284869745410538801197424408964144083433825708378138838580816767619066975077724379841784782863970414584720955220243247353802059712315657611229124240867070443986776918267921527108503197022164143122200456037593927856446119775315299566694961240054000535649989014021251130806523230286308039225036662829333333904856730367332650509911492635229991091172500019709424248017335666497048055870418150617922491687436729683759133783527202984427415149065392467594612526025066268088247677853056557621337080239419102678462877705250516741573920524519561565374229980716663293638066301968752114166265844999919161579245518350404006192705802798769504140898276854447354732155312745084806558768500542551558127775078691352299186793091417344391660755191566556052524764096274420004169491967355650402802632054284896852455044541223338319311052267693402517402777148717342333596465873074834844675177938600526006949377054475882428647365132230984646094941383267378456458402872563624292856801890439248964154928753438831519131281601395801689599652973449576421731773088533083448760715954932474122113764029510714419216081103353138243927210573598366419743336774351672230212045965001890242607374373833445393663426309020091479086687366168662268813363878940213375455225517735314692246425360411985790670855156126663322192977044829190067299233806492683797029753072720782127560481383393550365599857657800083385672434184805471983904044385149329361458521579122540397920261993752388892409933843712021381128459914208087412176792804005068218513828588190450000825465603854866137869446907961544030882073907683003701167602975199853854395718225340155945668808523665491660203537524313895190670938005723291646092126467531422376674932347157282979677211124315363108805671181934000464386212979608365232862042838721248961404783683375818882343817588675407685007746002669954193203945772208578200313576263423104576009423769277055022930548402891599145089678081264132869858720568988063415023052235997899070004931378709259250390895574599292672069288360407198220658141639204372829303382708876337178809435127912737747873044911809903031313476788835149000505776612314132018494242629588189777115879428058592792266092519772417410181308485572780851273771449225022574551545047846267939749492210767272136000307792236734893805049004023062334301695917947614106919756522773203914247483489582517817488935215637373323528007558961244688588845015111858280047025934329070079329525465644311709109634412402034129085948034077783908934756146442699843371781318562466595754869276068299887305745101230689074960591276153529902611321279634842401614586335496664299909924784223576016120025560542444612046260570980636361014893164711479511371794367327038810408370878670721502049131234294150946838218221436364248551606532721703555003931050401299995680937877491230520126545892170652591914085322287535795266192370112485900091838557447305508337090429442560566216281570194694263611603050158737114844123970830025124413245330822146513726558737894885161962495858709326429873224678201932902890150075938014553478520701751783374660835389983327295075959082228061452600987672092475034326707442398450680043762170834376438458911872946335253408340209092416542586489926641879315272127603586925279255763559673797312886893917911602635703416854446519901300334826084205072193835894850608105499568023291089758244516962198767021228096326678365815907984992703195359665132945767801583433297012243856574199365009805821343300987621869458440185534706387861829253802915951394438037756074321500759016432260471793973503648004462853148048243555587506399243831682554932728451396698575830439413084591117194827985416053402038637806683855179059145329636884866340495734252863660197781514067215552630994828125682672848414817415456129921422223921442042689482137507508005006739621702288473620566532454688979867230605538241807187156567406903826196014481265065419071599749262559764353463106672987405743722496592642888870649539938526329800956061060442705361461403434097979625051122648999945901783432865100673916209933440811179813718357186780328069545877321861600829719210648377176223472764355279837484908328146215582725018164706229513627233111008265717280691296800021968056187275187588256060960687855000593970464941632362609838602777565370915140470198772364477691191487086431949669106487636348814486637675250685569036954613051456457552356111096827348113639258063314250199689746122220675408540527268761326557900222815372358331989231832420939252929489691921891850342499897789499828803234510673701745171864620392474266214632718771942113283915114835993696709297470632702879184934206017937448148559276978341470895055614863586841649967334588138112016622688758080048687125346283930021912763030481123577159510541933309095453116695194663453712991034531957159960133541099394642281510795122512506919209301180511451625078393439379851895536833984034598142887777929164522922972364344786109727192688789493810626845753282195416506571311282598198243818349299377109808816155854121410191017718419746411787678320800728146343455383593743962382414171659969123020514002499612964680451469937988131880509226610998698876728465124361103382077301859402923675969905214983398292276685000146185222368880191275219829017533719383402194759057036627015703172130207858291364051858762348967489660158955077160158184549322789796152889243365669875914220929115187987685623593679718083460253680643487079731202441660091586907327235660834518175476148592238294584929233044528104715382463486016137410052602465226213903248586580835212127692012011285096951713369820213392239385007069657648816848774200003076158063640976927402253583623668343516574100888025835099874228407983617598321471769576028286972470176014402287694709032603428180487868279467899809955066948121096279317221863944638176407244090283269605867681679014560652605454656205683545036227523171423147636378816243828992986681765617950551526131718466153499711980622662112556256560855760703085569771915049909788001130673715296675563379332809465095964277102142190350612365664531587891870895486444583821976983280933576891458264042075513563002871396885505765741991861454538175505298878635517078379865641716637954820208330756004814357372282691779143358302219753803246631983408434948437438185046341345499978856730918020463825183805397647907670419046873539522066132705266539662356598594273623207217564414462620653893185533777152962800140149472893414659334297032555471027549686988714385255401945818458988001372226046956074605097119632657348819188057485241948523650122729928149026742840073470838197613773382930895879352749182018064983745299247102017195859688729904264553555284086137962410067981159623835703161176872345130484868975586309941587380241339883022774396420372575732397662189954749704626059267952025877350110745313133539734117240632569250108687990798421771691911642715129057602267674498801548407186445434215879747189845835789116735838898472614598057008375629795335479930745675327422041729610230054602964461958409817230641605766175422324954441869277749018718185865217059225047161177160546300567559183907998775760253759675942116506283764532891226868861737959195114779201012020355246982538833165301197141225110444556718967744776285291305119608573457470471128270913928001117664541858122464418361943045651629392262878564291761720199903289117902600602313726299697961100785106210350040051501678268521096932488256469688629768030398200351404531698528379607078757270179582910557581076306503478398853460882481436695300705546644758643530515220167347230783804365212119433315994279061105927087241282502657249037604286858625673161488543595913046880112241578982128729718464135318453044552496230634009858180840452637527511540668011507232592283087784275065854359951374031962317404196956397835079393413847967408620608670856682002647924937609021539396563175897350342574821863131552859950872941766693710530789688040410588965873171251383759416828661779592307701463189076482132871450130035333635494270604682938965698433879573956247313663373215456223235454977145574216001055460351284250625825929300676805287485880744392174632633896594383293817150847571723953416247599836527179764047110690519415486446199429955966125653118000786470481562118826747866192206240604404556268224210789902736408781803441722686240911697823013581403211982952924231291839836668103552882365074317201591993047145791124341415986699539163202967580235968698615750485977287428795893603924406129012276027830085578748581012734289294316653997680342100605628400101357679998588511168783270500498735229812571621524646314836622145876005626846062711771465789080082492689914553987097169871911536709860513074378286278120298698113946959543539659030912914013173865529724736465152635816155345421426338804516773957748670714791216804208949316674579439824443724796016978052110338168839874951824404432215623248535622807461518866666016824164992571684261338640091277849443087197574421148649886533045742127970564688095947563274575707038320296245492677828236383119580990920963673056877903909324336750034568369933833664632791028962741438422856873887987617311004954545858032263135858663727274363500071853561205963929494915924324853145230408240643401483748405034079168593173616765540046541020094730097308523274548890928938671833655711233160361586877121433013642256959019445677698691958490462789169444598198413290508692672419880113766172276189220377299433890772048873592231686592967747045616730834980033144612800096426801514206968821403297366004769572113145672756391801860028736406660197721568586311064022238758889692883010943881414556722052840300455078034035753087372085974990548652169658697042924556742514850044796092830120452296460683425247306115323277091521009569709643110768774547050765238228267467162459319880409824872936386994156600845800870990691015436661052627810922613248698498504717518351427260098722111960174694848363849404373148584236475708232973530608415922147658930035338385597523748472002555505160781072974571726308034023883599727024682047069688560021311407166706310879683352841412181535665255390983466824217955690520252154354730523650448124368868547543085918837695470917506120471075724365928901963430319600557259862340450302618048459289128192272583611828049081202945382855842891321735512863608523538104005101538238391900539051937537311906822022994574143148692280505931491407025827040596061954317977448374532708499089534029956819649746063301784160465471399639513506307535845705989425847235854469806241397312033614394610133470910598868551456881346404917539376504447576041671382041448338743576114559243969312418255609605046152299352868797660811021657145421613719091054780431511421059383355312057454110293387795819795217514937597509561873754360987414312945866480531950723936157505382627653096123628713288520018092773142733331407754153508640995846562863842015392154851718021145547248087300724509389128903854391276781271652502380066492224481356282985007547037957703867652735735669298778587996346237591403392598473454736183087218504820666396047417302822882527676049299790849102867963676160859257547816272132109752131704779768136918617062040537440771119804902562838473376778130615966681989285368795145005074281513376616871986703350246095345683578790833809174357052902737788755020416594034143714492551999225338220866273080389672728269258808176622341764941207603641261652300874866782647658227213018870817137251871291017022078642166225220339997649821143830999889384922008330875789497833254616233419276201136490274872343043608086185886153899871371864299699017257659373993128230781607405812095134095714194632600141612216148934364716690708273942752372179324551116385963759856587467701614475503546195287875493661709486462834379198429263970245832249155984982269884994060472299405528263219472901068188780022840715919120691933264489213751179465481235458842493514413260959698038574857556850021584408073295843339554726939562609351132230993634974774463335266490993666441406918265646042924892466170241492231724669235232081950139881308919457636650322419866136169474771392279366964108000670628069674425356372282368943042281554066975886235888600242652943248265259407611590120968724513504379984232200678828556195162179838479223977539190302680109085644658346156847509393586269936841229261008483680163293309878337020250793134884829905057661796257777813186729612702642964211035350963904741668018725587636892040030983059058363652217156623453257749594254244897251845370693760478310554414861380381653425285361796684721304147463928546316814340332784046733703889549446115757698328723391996091653386055254624246139568034607528649880939435051293602679654923274709807490888452911409363295200221895552724989496837352760932206542499949356972599341296799016139127829228836919076907389484062618205342447520303198910890251720108243740237757433805245977580908478304536851824105450000145640257973397360678287128929429143068063938698046948077199097903324368555790722665099866862409940953617830350932119825907778236646997411688198599669495949317914645526785426833555777067419139126523417945766013427748066772101200852860962057563361012366946776557748540535973016307522861691945343357593717901027194398103756665656250840503907528328036127592483865627128338202766559340829844372662754080461785494213824758474298325417764529128475248010955224757287839067965530668431197619255715350069599747227550497294098312586320740285260139893024467872152877310659323878685292565714310796122504989763625994457251267366648871074645435497633290844415715631138710607035320417865472403393971581719053373478797387155251808233105565576434377216889817557960021076232001875062172111355790400054441937869997661968171435102054231840200802171297943550816780744825461674916463538046076025342922973043268012733923974076747638497483769151668914447165033817695622553763573731837163914147208353640031162282042346613648508278221012680768140864315055604059787686138190780922333267136004390468504065806010636300996290417199067243254979708215213927636838983046173276767530634073131183476019304722465079800218805893169846241712222171316456474447961818376971322258223729282118222157314286025195575352089793792763851827537270652548379635894613861198835622493547825922619895093608216776440891668320436560825060680176360955592882203101810111426190083705362495235877644625842974738583830652928236355871845895352265188954095351813737603063518536025487848907718943433852426662991273110090405033721249310468426095696176516027576039045288238110274452967307228892465069947169868881260024525224363665741831330347944912718517264825290988441027707109722451490054584034717555855383654015232049617637034730735245565675412327068216952556206677746319639925619360890846667669440938291155811405344682878988590214319167648275301890925380265715807773542493599307366645853038482182164545558942369869271880311352438298882045862795892755925335515922762952771254730713765750527648546761963763362837085952261609600324194418478102753043647834975851667643490212447946132949967526766801836555166950764170133750341289252803146125648302889268899169558743817095674215277607676730479554150141662156873346447101125414394497036575317982960543927760227565093605622705096968458538977033107873845754149499577405414182596774749224277654333288915473916186368012675003160143954318656862846984205427535043841173649192760888414955111178267856052397437928589238001785813417936382694415483591796098114883333979994659980996972208996775682044121044952024050885467481842769881435201749099009521643090134390146574357349841684514165574389155257309470535548486161071889367988439068632609073222337015330903246163754250258289888005727279067468423418736704001503058816955685122546718071682011932259205207680248137172418035335124570395406889036017353255781985327258254022990050192981353404916254743421033878422362100185106110460031808000232384127075611929110116701481893651395413169020303607091203938474816311398722341065358196677187817340691545813112135000200685799294758384512677456576764586080766158820358649768859936070472409718275409232004822801528324608421843674711049501482725422279883809959393515974924929031428282405073037846912416936166124843663866407448349256437759118821290843451132659370233726026107873185202713021767331026418860608048725729085436026160922707071864154951478264343538564419119539472639106618333998760235843249971730676831546663287164812490776078346546390340906203757248668074454481291417383334910958995058071754981385531381120009178837237289224712718698836080944210315633298428334621432862588166188168251451177049197144807109147085216646741671985424240445904768939730162761135135554286086310672649222460542754409359464282807239993615274639825098288709812019101551798528457115900847735075094202106374449973963254393795361815431900260473870671024109685020476371076351269695319348905576493582881946428417525137671906727899231281515736737987070208120788181906265096402222517082167790213674491490450187368079683927352668589671724608426882836033641628096494918286210286123622516817218124473881551069708360976147099008656329324603120690114246895059366249570214913906191478787061427791572675107836527389233279210565312762130346912199565446351092415674751933484839752483466635493652288618774075624926406046725063526378836811254163532769023935428690147775480872416801106747483412375618653853780522059043834313425276659656010126574283924440279677748380987465438005078394675148295300076706091618309928063136336495548224290622154202782284042158001121504114790101094964361836568721290131320460183940732959288332678853870557873527359827459922513976074919995747103604645392213768857344762952679656703348094890307138005502394123435491265146552852056543124078220923989485098293672630639542243945725427767041072666998726011843211249472010719311882469757754259967563835374006681720803576472223709692310447428628690814327377172681863852522410339390193219723758754301839743215738245765727653269438424352288071583790450413164013085576692859660313586998324782732381764901737926668892080985115867801669692602786822039633321166544191061057970923552351042733444195430764959932706780200153020380062882147830872938994006343325562126844605732925447219583794328068353070003413521903462213101268612869706820780319133530667758891313868286848044002027992017976550869958785029061687992288913292009847799285681763325885702448873787024441182158080968164038652612453074426185468338850737237579652838371507735575262708099643881043398544369844321274622590702403318291738341937137116987329631354130239993551357351995984858628445335125998197611223441081944653823747916850198084159435832811220558387668153266778336024049463137166712863356795208675621756289535167199939318187055075388219119242414769363078527586111235795444702552021908682797268680605089413492840043093851745036773538755985638545903830267711546668889079381249774685480990122435764229917706472484697769810602403370441411725605792594483028257615345279594554393451872610250163993473993582912822002281067698434554030596802875052134871422778741266654463465659788956123992188936121872926643292815293386218724177217865973237858519754560001473867072504384233971574338901996050781723119345528482195832061996440312057685160607859054298921788961467550779507235099687170426383848024009664109357599495793051535915707021138954253470870716566284714305956561316482458530096563323178273299108521798548988671655269482780067463638289798026990095458336861298043387507220834634570213706295968865039982262449553876359623596709927133615853622259949468858016214853284277826961124248425264630804330589301296335407782148521979512287633891861246336690034632837400455904233879646459821258580923421017044600478235125137444996149813492220799144667882041672869846960768089435438902829180360955057217336784882768907575638862102541154683872207730179733068229108337164488192047950691440284555809127088398860549710551296712351569803088521760411202338506323762956368691587451818380245200256000372631001727852036158249006572605436361436331394939344270842274502731524426607196627796934513076789987499917760216455002705986490765091060750142508034593014069687864683436554376590834162080460751098845071852330650487504273175882322608580944152921494141509615867588293806796486044104592810434726882332458455737723274924908925272747295970222039060308904365720321476608354058154603008462763139300011038300868060077165146526309855441590702437283211467030600076958813213602099568313161144799870426907102270132386581289952232842837777531259150105373623517772410488583534549642466975754845595394896976256029740228714511462257350224040772694986545567457680800851487102577271153849333730802861052429766581184518655609849408762457676540040322171401458243360283798124178276616046712630564780729759974127564779987718839689612202958981243841549366701787288729887664742030832194661597311966144325107145668606440847840187124858538169942279079961936536697047157761056072971251763257904077916625508194402877099127702805745019033316294972041318045724487707378646745234000851267318360797818656044692862532657317883833196039562868938190695943727990285511815300092585920282977389950843231765199789108027854858708462455290392504027291270455401862992854162215317574736761583181871939534709198924590304125462422926644486179102882826482628985476589269397814239298461086904809295640843371924354831024212427763990206422222614199195809479588795415310280681944450202977649974421352280854979772021307711034454640686274011212250781034255942893763794809622229044439873529116333933137867135390009987101625202743277059674956853180186273789684366711631850980698672655972031944955037914277550298336358342945851225687390519768338582869081707334099944232284662059163949505823484833836466668934012452871311559677535881448796959473698684052721610206577986744932254177341194218397206193114988215203034814243406469893827989672118181096662738441300809810914763644111696481966730331588404118238023756056011184776719969623690588296254346611585277773030083819599970548354416627951272855236227527471070706817053826610423193817549367220575085625196954097390492808221310082225544454604161653726227281715501141150743886218104142111077679325680651028860165458964796753656339289672239223150154371304759948941027718795539018196543745696235715258522011746027898546003451780550097821216917273744916948559435852807158369278825054684847605304645460868492776119934781778914332740839272473252301049937380008603616119844104311363531155678800666705499491325990237582811277309975914295613757359853096833221851000416410861155722238330811143826239651946766932016794609599986311250491408898186252284980362670807685382764103963284735595481161816477286968889759858146098519085733250120001665642047916974176516798896089566134861893919210283299071747587462567106155793069835810405127178997467589188692749821554712667791061139209219645665200053436897644614245732727483953899357484394744090501933572108738198397460505947164532665847142702984090838464346767758942079550213918992525071464463250909563296323927128054264809262513703691813249192418881080450499213963515563385356111080949497633596812843488894249013144659325492674847358354728650339659746291785847998126404587093760804514162088664812649276429087938842153041780565675802178013676983114865247576950352072169920649729095042346359502885642719959276888068712990510448517845795058848271159897572008894746208363570888742655486863934064853899553488033401199299646935923827692611838392314051016603938100664729789748427221863043083287630164295904891395144774913940262700768916977889945478985963956811277573980943572002614718124365186551945105919080728260289968366747440065738895795619617502413314216440421225607606200179943496453670716119984802851772002057357992607704525264462150631360952339273487226989153465506341503139311022359519764508970255210103033704043452590523859701383145923602477793888274263259124246324865402596256299127372739881270451250098845396398257162939696104614881447919813000999657529306238742521750692241775780057724690280813655177920885454946427708819650477182160528305952946248041546108133802839431407924533073773991035162519864623942862787083819534048607342849388550793534343242937634869307576581818305220807208652434108802206364773111899986491832523657581989757403725624030892918106351480330513757063379250946039122368054164943338353017769337532333369770056529879478522973034155484980994598844520243694546188660176601883757368939766339199444895996930491087342565375793468627598862865894074394319183712194816643625396896331544092580587931560738431248641983910168312606445506206680242323694610453129214735201051145451522537825496459061674086565228956039230829689814153705393994224568741836509057702629556649999946719879033364862510571076716042516307093349838440569627850883041020505432201645574493313359514813538262389956418395853396313693232325410289079879607590274765484868877336130180520900273337066582940402029056927727315822998710402405460021058024577107919764792655361351331718879509403761850987656063713305426756093904050997554853225290916776842051876544710253194820904532854846331874784579691882884146660234656550579393341846678788451667324148929296220831041357644127373620129856338695690999036104227142791917244843757023656790632249155874357104483422625848584517556517493059641985717464487994170038273447837702235773016593270537048437050571849958164914053523170506276343148998555058373591957731849326115316848801611815486179603155080679858352958474529321078439259179208421664357879500303351640244141615657387705724562248666756920717146662118230931774047465636506872252072795071821515289071509787235128707060369442807588471082481319844609869880600990637005075121021505738956481823193533799842258227193413151301268451952806301338207323463737599080719298576586447847669495768628125988355124539517304628691251030002157384715283874627138238486696773732763572916300104331883610810875422512169138907966536702336262410589212806381858909532967423839206216456714551675420769351245113493148646106008214008207232058112073327480111318854894902376276812934482327715320783367022847620114318833104238904815814261039285004318544869661631963533255467502556808779721665340184547412277626310598098902435385839288154858469655996617599572990235305420539375390572202623176519185197266439852535623269557904327086650886219442844680525908794173201312003744796457942842206718696679506618608656298276420531224511534097911346529439716043218557488676344803098343596565893805981149906975181279459651848187520540845601717633336989433053638721139710071711986215957778727307503128289522408308280615859934758926733198992201828803190769318899093216856233932456215772298052916105002831823571281626840091260673303230391436643464405721720880984074365831179355606394858581638262556305647572982399359122392947438910819489789388054017480043227839885373250062017801620859334424596179597138538177334980695546256871503821655599226795203115504091935418711851580401980680797160337383091831330859883096840323870972860339222988854132990069822511296805329282922371379649154120184782137316699088368808644956236690816765029289917126351887153724444525426340079782317996977572892484949862062605760115470174832165688508459363360341107085718799161153879266835890326986376372547687074424369231589052192572584452735584539116558122888077264287194880242526404005828538587004548810037426295654259465314441525392146664237647817098593610869580501487867641216664921509280814499872292585759890319485225004081614755331878363684965396436043620761866771004215017333273947387137614430551591206163308688466297941506159603288212203566251177200002052130222471450616228704688937211799071482072427639348918808789695288911503697072904726529828235506678240938675987832240891036258491023048525689270978060593779040022811331107266285267563679001404876938703719820309964725488319863070578004736315128337198072018334550093296847799696706429995623401354947916629776849815969087435506504682953303918291142120997219031574299358862106080323200005735484466805498867167043053214324593292480276643038824893811482746925986396109863631100901343834911070364374997672309227604233975625956936485100337130082766834496834650176154568762934898560900589494754322099715872943881727268257149860345587143148542375630463357244788660011586704279016820615237195823106334616889265435598788259144092197697530627646625132112684526337578206496306901957571928506024997390742181769678028521222691440686100653680591438955770190935527257819690948150153043342667686366051816145502213400584845159936726194466717715783689305001952543254584629801954918062533407415811693093520641457981121536579143730896628970119060126669874527858672509938125807684078573180997795250012538466284151791928948268868630555889636090560387001359488824919295586946239953241362950155908529604063217585000486896945936697199517880611721510483701078492476160251767135537318617022787173027844074810580518999609064510633646947494320602257446528569501112765202354096094943821828707948647076282884924742618689542990857666323239772286613611667311304071576341254726728476066515058989531608027971053114694612808717752603387059757511263231919330850260986478967431396468854836895430536386285777725509338548580893026135342217970699624609886559898716436945368516124052898380462415858616188719285956132950666519360467188403859681121964784330566723565175659097051703473309038338728933519177034050157783782469124714919914044418561676565931086386397155003249349679749946194725101602700186249732694869372908338084214062269649359681749400553227210722953449607451640362794687281509037780155035513819881905342343963124090109597351535527347529095847577421510103733064534824174598165992845268558225847156159794208293085838804991242894021686546130426653216808435712610272641359813237942054055940605871488613741950625598438530699004233487300425689967358205693905560833829995105292804755706808922593260420906702420110995710563238260255401024074359258526491599398498900064266992337062535550959741651743735000906956951358684792554418113180345438822459983385190677815679644828993925249838309042761333343421214180127003107223328898884632130119155875700885474257255118532238062965567485655832482258784515535155177349109191952902945069937458562547413211063878249395575088285924983543021108620356354879898407188210894590439425799049290467339540048864763362029747693525634170812587311088909984837079418096651430203755947601471620526315586107829055544523055989338616247759210604157736660466779467520556754488455531011638995371907718786054668317790723102980874099244180555608493702906313436525166162814384500695011982131366074304138461248284682146583067713937628056066874424424644420382292695795466096295497963818570565462849066073299498492325658152760142477942162288510180730233303969188180139663511924320676577996368680393117473990354646972775510044564040861287018720518731358163445941507207692393808542491329222808043102675816916764219370343792876629612997704932068591178741745376331270159715484780274333829135187914229881570199685336474760346519340620923500227852871475626321308795946732914067581374601004508589481001424334956865130875455068435304801576525072624323183411250877956366292115015582471793326853424007293386081258441596998549994431338391243893176363552837738489953690778233962332162817927266848980267798172896895893679998659012372706087821183679626405970984071057702700749624290023709217337795856748404306050076057811450443620066165787826146410223362271215130121035680644270275270189483372324156686977901936991237656961339413876280172107810311249447660254894461423211531580521415792962113594866721730403855780334449299742139325707601778976909265552596753812739992191913369228316582622820620969390173721821252832832653997721840956208504217645854348339543880972180362853316988652916615389642573797847107285846103065047386984221912505801940363463343477283552863972351396827671680478710569265270188850294251760635934283853048937530535270545643733175251764676361240532240177117206799848718153629547519000545091084769698697842199809598393164220934250851397881324719905894009014364276869270270941543179088552636027778188867324459745444723806897872068453264625771453409102843159739371983911439484248667146614534143014085907994177898078850813404764717097092672227457226778427891199365470034025967439986320935285264182426354269801659996843083401580267584645308961879532608175367621875265407717843891199271278159891558664012527832352214392783840211842877110968700401706393502469040926510682397517590051788846187518984979558134137905870008907314984741417052636131961285733204705138047193142646209354817253705436683646278325732355282132892418606002476769740421182049373329921331070443291451928743326835440879252771727676186375257055450017719019807679037809596637461025271710487936782525896528834643656619484273052068950873151538059984807029942823303307916136255885585907611984923253770214924026879622362108184727286145961665070183568827763884718779190179091201995900137414075211619925679670277920085485692227084860352342961548126807837591848461149820443067008916928734956996579741892195383454217848165501508579681469407139855271893248874819897997379180443638458754880280336717909258839955088769912231713235734956023276032218232945004400322254073260577251945299928636490149946157605975099016512373161934840220247122225055823193292024458328505684513646360722013936940712998112312464607237057076830334114770474571982190532312112393865993021659085512913095906884870142921226002545153676015032421549659080089713697364873023444259861751677227259494486360664755867028516916186135285834427780803381367713018215539847907315662593985677756312202619065785840281171528657275957940025340547197779539974464275808417381912926406416697443931499999570612754096541769998005553315981948160441274393930127835803009578122527662487517865927772992762743886584065540843801552330205235892778589100050304104886140381157836874198948986513313680235961511287957024827995491628477862759980273144452916158355364141979567364978504459935526039994030017586432760891498772270961509107518270161042934184841123155695078630291409339315310962269416233622777028603848071441401894225191876521756733334780631342052031659763502402778706925058071351123474317508844412393907228955680446401916012965408424894442528760801506192654702140392213938389421653757499218026274586290117393788453200609217221676232830852648196926516084905576964138389902095281332629494257229790893205050789699809434017602985079987376439542364497552696237023224442446127066813705279092628243132383741957229660086431116119064661177523788631667268855692892776357160827471115104608397632694533872845285899353131575414895814420651769087698078975137192764933003582961168284602029280818256062781168202179991476034087364463438632112934773453168425712727512360590352471881326166309514257237091770217114065530170369913720397783989444318193850099448464137999267780276592541362209506745369060620868738465813124958610794945652522200376657776234097716007736666423767171904785512041168652368244161794861967893591685855561240414708981053704085202408362764937708004094059545993034842515201039872984559176799307728619391860285842753344121361497830856080320042390981559746536985002235781731769257788600395478633116443746197730326872809520298262416670521219367501036220294683098532141297993156275433916566783808900294458809028221657271845787813963128339167878284649436417496530247889924346089360578812634517021508873731762700098942274333746757256242063909852875336835949874144108309965126634253327026679742057875223539620170625723670523498905003009803864743910626008589830793790377525083440981450884032507826533203010766037956275172991746865067861985611389759880471459094190914877944706467882950357205879027179774556552443171584647611986688073909022768565186219707818725789647386661862878169914356157467723335237300619368917094783648279141716898908089159125855267739414638064564759468031738768660416390180364428032953966325941678492122989028697536429071570450476911792441100583499179886393433079233209365819865201737249928941791850122967696025861827068884763685110424346250280142334203764501460321000573773109935817545287232964102096091266215383069497585870156537211862470344623911748933632960272355565947140220329569574303248721105451234545157347790398445102760533739673637904204756250118397662391678756327499248022851735845914266394078157683571826218407488520062346967685088940907542009763680793114001824637187284080115059243167700075452140185479459816690287107210971268318703897447493949510508526884529925638424208548474176671211627342629439459314751829018319960765491711223149422271819968161466851467035232449754255944840335581086202301506866575567158139564717501050128552369527774472519937999843470304748672806312497107263412028191038399284804083500468785980029643241502993725385048408170530831814623196140540680653974140074711140032538698321591769659198868226246220914674561277871290455580191552380495419441400448799943486079338662024753264326623274461038061583930824344585098720279006124229620798577716631485252855130741435898942884088604407562628258655554950553804665273153238384950055316557650413380613728447399266948991811976236940386228976232932513834824970309758311016678883691583358919615703662168967543631220632827589316465282037895489047561322560670329888741865245608133455092985707175224963665831670398679844707064195697354521794934569557795403085075697799208007905598693732121147602457092951086399435075870095536908560250571247136786301857703958106356559582703238432763152456291432673709573623580648118636955918818594566726534471963422209501108310399310909975074571777476469831932808403174536832361716027759723806898518134076108883931529917604155343722969680909068102300269727440233584312899430643085363122179064301822205880875992429404364627827087113112973830213514963977846615400656437500958940713777189593130064030693007007862620747900548897947426170601496596312815710472627477989488845018886210923196942917229798795383863186815574131806294925658325077575447762688239450055206873376691088227958269525099024145090347555990391703881934263510571985565526755639197956823228043700498477581907388544771688171960990279492466284893773184630708019775987750810537800736001915012612099382829218086148102760417020544387239478677371268404887382220870914950453280326748584928626169191593257691041279703734774114918691080531851219058082843038473315856863805279971063055673595174648605778227415533936937766651485771344695318894173221557258197579797247226841877721562614996268531707170013822181357490467841230877709445146119337899401065572104446379645490973378884948153608292092737383748624930239374918465479186740505740630382761806605017850997546426670224512945781498047487113105259097932990042543410537457361359444432772953111341543390255093229951062764123466646480935108046383555473160149824057541471031454159641590332087774233624861705402299523054110841480035179150440108470221514379614116262903515930662761457379721950803580455124834039105218767022177271636247302120501167154762467870272339730653697750824400218977490849808242195470992216338873873765958885268694854549943005898217357948445892000741094092433717636380651061587585139065486936529035111548454596987815895534415155223227596026574390721835922796315255460655662426837386310050027430753021132818051468744001517034264332298730493515825713077086577189033289071128918403184925860870131834206896177243480854864658439686883515793064373074803747560685406009667735115649679637721550941396298867951685831485608546430582669566179907463470347280420210394140865650374605273479900301623549172697027783194022866867391367059271587379674850585881211294535273858365766958508410258627097732326648932431823634419952511084549506893177658567312304846200317476322999696305388035946572391339093528277241585898027844894573588253449309992323598741224333865907296609608369232494358990286934275258314206093758872927076896008852114477963349728388345244618901314905997255724232115998730982769583710076969643329598943713903563378353112289708736775340914462844031920614168163572011055676869353543025872779607683300814690414149718152062938077012597741962449832480382333504129915382371457758264475793905227103937588946859238424804628629369225278040697558078252409766645180226199177226566422047508234011888899642537524623226002409496944694719952714427144613513739287097005055527967809075472316530501797191176807851805698936547453317832745368218830469474536457905884787204645378143439044878176539785429065627289169054329404880005237514960909849515599507880426032764151361590430326308291636522768542069663757408588171739092087064483587960920718019005290708043684259709488116895508676939963491818595407866922966420459334019239723397179063099296791582617328076793272862036203710211185642816022190017354016690169277743361735687900270063601780308981349111327511775871417001274030647833900853453284381422972440332083705978857568803315628019393858406421398979408024809703340823828182694651863694830979601758674976120684924776810761022018763326853876868432486444951586440832751004509046477254278881788078756302645213936467881241659754452086170117249530303740023611801667903032493221691723310132645010525465898057152609901030752432095100948199107381849832563078083443966126702137065693112545507164471444475913280728858324361108093293942512353592292575027475825421821349392428387468748174336013528240296247513661313316428221152675701776679056481047298043323288445498197033294406845028879010276580995339832794826908745094807448249851208513326823903600046362114225239342159764075007318648152479791650081773293819045447835768098532633298091423839446760553587986547873720707145276671918803891945140737489623089700455158910082508730620982853207049975629989311059127688263285324151047269664725130480862914699913916685240973821679328209862135179770813822981887594037093339724246915348355061971913273530711051773830033229924526284994379060586783822316334881075890888080919419252319489094247742119565501653886044826889871112337521474597244290912049130000160150583627334720651722493508474390293470458655153245078741523523480644625959128675954815157047196404094765600596202295744465696835600866346628640869979195137401090560253432860335495034828716261982620331611542433178036150280461971340551340391283405922898091530123680754907047275480448017757204177285456860799812104741257780820878989045709092847511819019166260859066032896268867130529069698021189331280547613410735397113771090491387194034664983411377438617439203771265015834208983088211230852259944604241930443147422968578907960131526942070808737931002437172708257285383281977075336771144683167115674378263871549978765925892028219570590885109344688912205691369992471968094083914821045053671717337965304648266653362680917517446916842211045784923070133989082370583390534205223085314207747658285877287407777512923346545627930279232331414203684431025904407405149878807861470340507543449105665359314986519610174496174650197899476697636757707484768710003374449974127519916271847356550898296937942266776334295246453918824310000297053133174397346506614404761200427653596005776366545915446363762170754946887458415108300582863357864075242897662481171072417696217515854052787288517588586228244098677876847456333336758339251597847260055296174175452925799797004704968255976455261142838237396799838146659908833915654764045904116045920516294094951088677728225540688506615476344494930298344899846587401316157863587617891817285130875956882057025201388911482715989949826121477935337077912720026149231384833613122080583377631560749351068285850268484577770470033745855235007491855018790604959110235796766357654010878721334832516774871335665890542418047116322510053883822513695238160364801837322881010154212422585745294602117387652650552819314669945680304559047338602086723431075412155549828984122874813918222532015362662617742592174744608120655564144739372738944895478604737688110456907218744476281563584264887710165164222940512021423781322399656594819568002224646392203914731753439443741160704347696842096343517209816181976906836627656057647120519893748523685928937754807792195965169128569423283327141622206388539377880514000696073219969155139795995835730834506867188835271402676271462504153742424425622320700978436585809017395203732524658075960099776443241024829498208492612475013647673005984626492658549817946500273573941845264479727282798523216856247797061266089716249068350974592940167785623954186802035629657668116826496249509754333913171139045491396485954086651641022005213297180114068989642504979108282294333439516666941193392536793545543173986600162813666182805963289344991840524610409527821649476929905023119670313911335259451919737656393308584049477960035670646320935222864925129817328766668738609216049091399335281809930445656821605856727715990461258454523997227102388898596424143449038775301955982725736319369968499372620625678824419415328716880550933572644947393105819735547425661234990667201888500505562953475448079986664880744820968821026844169980657772199675265932534136719458771217519977805873401639843565340247685927648577410110759624060952284950524691827657846755626999360038752977249080487042255544923644864380272174842185543056506516507475736412642035564813321015656278283570634742530265583972725208806658762834895914983990838024990419241694114994411639037373899051264181723633570189760880873311401563043904554795958198292431783670273445315412334755699973484225625342221569945957590992986766783866763507528856113480482279688159227386388694625421254780558719219135899426130512549903981136741999551214931201580110581645437536118859005496395300133647374560140669546295524446363371947698527459524827957333239395725483113283594472554670787931825983437501174782523998580170655993095240253249911525573474492790397529769296605377010712087959977363913881559714839105343325446287786494942826901519121038061333795127166363860683399095736935523102888761501862659754849013694412981294006382970180436134583648913364981488188397582950135155881646262045206864981702439565333945163462844499709533648270314917932885334134683762793187879816432325380406356266760929913912785519391477115495940897317209737788479457389373734965815143490745018125869533575192215161701250670628427612647627759979525144569756400577633434353499443472867252559890599296933911599838004849420252362561331527141140829233113039628382024166824658049491378106640719198260681888466601850147031535528230515193228701961760984647600274570320878138952745994021337325977361947476966035822530478461416031210510420758128382112239340973924414836525717066339151371117053016798696357720294512247612315203677358234175961494195383408016210939134115756003212584529888555942626573311395882593773105920221029132500449563251346967601910474103216675289146357133453459559023792871080982165783992141948222272289804396838172491568921161843828643521706232970434929696957319056126748907294392639606730586261377484310246936453862594769321355527777807925278025988210133109882252183018110503376711664482492973094538223420221597359676150883235370888194816132123019370118831180685983821171952068157578409610345985658265318440972975362360155597588301025323192221350185559726077874594925989598551575028106767635344346788188791128552248622359387538092135502551958448087330737486357531238392348059876109545751500134496761116380288336425076076011026628303881695644178030601380047939567581458640725481263726351378970858965536074451568967821114337413045437094535494177208986537434444910397796568668548570181352843914808986439666023268603948508953958888603076238801083731172093418497512308405348920772764815952346061149437562613245826414180633660785767791830072982723829659856230475589675955792053392397767350012476592689061327038851281645563700280791634517596292627135002507377347057169518025851750902833678722988803524076663486299332902215124505675164507755218842536238733716717603423137653269001557281963760248978821578198149251672422672052894306369916268839933692244211242620644756699009882565877566491118396623898589770007808852609353244960458262078194157092777775825431907942972465695202392603230646686694432364514897652031855572594237454975901335982380855748852579922280582934586226915409407827266078466129815636414872379059398924343840178544615993140878606580620744223514881775720582898163638345270525917739317432992571598545774800457516302575397097223180059659727562933077153511985342285300846795585944462334567189835404019818276249805962493354382173575830895751686760337907961863964162547828671322238462715977018513532680886102382019734036090966904632967390961187520875870572235522371148494004994312104126069223501395150288714160460507913591315409610817086519169826884956137905055149991855899043087617224111607027203435433211223779606820323404475379075363072325142069982837904699232733441629066857828559788273970092443458165697360997700308546466476222521467691558928142139079928686296223736332817805890083521867405442088355665588554817003411565886830007327602134681661541943894853794589252985561094510430005286817952258914857395407896326655724838635517978863235915511308044123138141488756501642311005381296002833821892566625892526780754461671532465538770329150329880176289036638926820311604753838914313853609134923790031047504729068769840512827533082045664870197205039785428319168871333209749839865437044477636094882245233977966747110791188717704505212836615944749480649940061273980049341345678454867059705647008232688244083415481852966926082723770466331437630028583013249846489671345284357214938756865562077235612646677057870035949761253460971627119089478672058475983609382164195118125074511156180743212560407083024407547471245932911513275605151162568195657297498002823251638524497874983075856109648562332161410492228571151720489379702687585690963041510695799483856194428034911025164332011182496482116891681421342115204795524712584378113154172001518848513609105184980525374468173514871822779371197076507310321709161622617140438230412404226314945834649427956242563945209833642934642644214481760265389764454539271724368368765919770465719079980595143108106007974693564333759494822811904106061370621248665220260617172834208526105240757014683798005941933803894277425378726413393540878454138711056271233620105514605474923548229224121500286564853418660984530675808532632737762810957305245348723714950099120005597929620445711041175424257739164134881904322186862486782665844261705657123099515175713781619068186218665590986858079938244263049666202270448950705765495940059869844034678824639072769958752507863871611284008004632645531469764543789319095218679372929572456422934992539788866424268008131580265208835117021393104083953092016646594993129088061481895102302018193506507494951035772532205980846591977303984330361031330425937032336264284573369522477239251246119896941009793979592102715064761555035055584909911646334964728325315752303645443043397302855997569019214285476962102986096746765301011471183317529751211899256093393531541530673000158673656264929416614176831232606602672915005512716170441161818719936754158572895228029868550421010408844032402790194586594099742011782345712294134783406244712289239968987515167436282713089222519038627662083401782261235527882213590728614054731355462450099134567685764606144126882326440789684000045728924808126749088574254707468387489945261800710071240435642246862360350000863053438958556695305618901600034667071876698212290847417963416910468129161005169039528843955795727085278828150884480920457619985215909350713585294720704255824475093642777044537703678493710185441809755163652286722834202787232149923255617374520224141018552359441103376097802510574292899245866701320097120337813209993045031062680381983232971000671873443317308963160842360719927040681849030279350366132678737657884007130776209837099159075861451460295581632229202660026602102716762849629593518194656994295538568063611708081609718526245469655132060027917642033219217765932481763860330803567015515517164013106016296639892621874619361465128605727730982773099715902733962341622323683204866223004714950458506883489161847740667946500815642926341033594919966667943361129500679182374511676652846279041116186428224187725937630246942289503124122046268174276550970323399605095625513316602365115923447792803140419560780230930238814611993168212090531324220574207022645944769095115944480501163698414132336970279294471770588366118050822007429764673093383680925161127532317169004713978665197181101927595830803366400163815689408618151948559260085384257628070774305441486570776810645022585956729866169311423291535446101063676460626325630033596835997141015442798441731603892967673977546603492682053863052358320614987833492437894394768416931450889974066012941793592096753122637758537022640399792841209473336964692366971317694372115958467239697414849124200559379854006480226056939903957930724552570390838039630062225732286675887336786559029765082003935219859168783549302872104434857671330113709319315882461579081395817557642297826704939643456104176264829553729254570215062503860758118449604959494759464396348620634337495727093029080380808560498108329850089054354557440538265038629238948258836917391111081333637487221626305505676706707367639433690554362890428804090351432620790566950090807944708953020656638566201542068876170994855747437304601085363237356595114125257614768022949660377849833251933384982099189696279802465331806678641445977945310688125445767410208056808512985490974300629601963004908723868688696652727443472485456706783961390742460542028039383149775895066064641174712096587396288714078927032814407367793081396069317734050054081655032322333567451313918774721490837059179388478992595660163308617119706768548963708892552172781763504042134765075643227597221946552710557981498581300294822051959814112362810345583420894705361767921636656134272667538220729932875135117500298368983809121739242164836647752605925197944756809922563807283760437117225102286021832341076473510436751152030950391945790002746899096536907663545630177150953251709085428806490334448538727189890275224165653218391052856599102953063565296328433282512851326885438435250316322547505915771689670287568728798879811342522922877536377956045441287300092273178989975543156894181754541343012632226678149698695074761856261990930774137471501929353692323128498083645324367926691978401183786460678241934281209988068691590180272275889029551444020423627594591628188233808811917619337288741693821931356642629296486550734657220686769313967236183123327130876152233702316752834362409778523565647239835256246727883312398745262174224987239303441644563786822407940253630276209552044423593817862700768667710654625465507174483822804769840423740211418899196782315441359505662035592688928407258833312575102537310694514961430866482941390775283720709949348605662363286520417768688508317446080479696037908041777866297035810945672110929539911242833035110962753516789033199651213166325193885623334295869368496755377969289718328981246689128294597342940175221173552983819863524143042520390082518948507530433532914190365975662255946046685930188385012289810147768364883128448069041710519676277795304503019056647548987121466020282899037806844213236943469761441440144064421160861680598998927840807284123577140364145385759056321075870478671293764153381404787018209209831031841483602005956734873685350323392041726147134874600325383643911968396527249803466147506318096108721847829819099809681495722946739394355986590572468387302206436993226672345376009934717618049919229706965426434260301699514013255992471071720830132828471071929276959262356282560981473430629041463430823626306562812660888408174542774026416509373413380344373514786558819266567498009719840807505103638190712311169503625056406127263202232271735275901075363947316722510192142745665396508558577303556668419368012926229543953156855738579955977202883784907076022280693247340148095992502502367843223143229827904560459206981168144873107695393400531947023745218975556964800423997236056013859840328975949464257271794325643421612921987478768993201652803965652056663711876259201832435617964089368960283312243304925974190361602885855837367518487412104019954979575325467791326294239187283697533991732926452713465222320885129943362580373648186863222869069885720460482668248917300184697317193296895905617747995257478919166770593282553661273913631372931482449673095579572290707894143337792632930597186072914098941211704823068650757213287726053177049039729517802840807547750790845659904085716605734713830979143287950628407516532925198710761333164840336805662189501359826259423386322237368610338745690996256235359058905560596452175807404143848420175626043137979874109494321025143542503901908749952358288018368605868174301760974136422837811065899668501804465796541401561894142859456487406014997050293352942006469011953399913615305391604061705795379988960779486817586527621784781811388216940807403150133520513972725241970828224999293574562391766314796147160629228012312822563412016122698346694644031154847496646848341577831612254161360812649284190940175051110794237551893156115466566196299412845218763159859312952953667456555439358685373811841778906804739741351711336773346257944275086808900929194644622754134241236867887330221020975203119326008357682946452449816699745281113939669233285886429959842353886692549280302829867365675932869977877942488471381008053387743256133859672152568209925270363708936726068812609791120262448268064029479573123393881130807387247632240830047619730404661444053743729312210258112331247841160163181286233934883989751896881276179594687890452902394015953954016125139057305145689905951044222023893857940798721600180206677096916660036461185105024002018229817945038428335460259417238447087835047853741990019174178560756307685639564335242947548959188127906903686455982240216974852033045358615628992105915448358455245379147008747529941328160628705375465767313785732378553676650565185125044065130803251976037173946840344716370627492077258425571033042091003767459357770448064805889210238609205933769836247261284653580072106108072871216005943542956891393098562959980094002768310985942727897062286846172952318887890858739647093761929652050571729751704462303299169752975549330904038819891667664018712363692600264786413916027497513967672833516351057910232332086900308129205321598835204044776796108900145499005393148914715135902409097994593510718459553456995041839459716362418261691837267010011753357348359702944226024532905530956937638138526449794392514012301465752604882518415772346367833932024267478498149329172845776456182577969867662939913253847425604727570962672851566616188065253005196564025289646632065212164234098783052582965683934535536380132514553830807854022783180117248303595869005419324024224855214732840603893712812378133576363228008805412352283291475596064475843080126338351214085811803889459340260550774175916320562375489831156999761960805217903932668557209691002370631610148007661830606351038799079433066860822148524710081218373841923175523743314584393598145203852014619941968537891371038482638848349583080853177539544176215030930268851496951388640790554543804636713734408564388726157214117701324417282227322101834335961728581595952378790000925467744528219328558750418118975897897916041450621656310977145429621641065737626078138229124323908788527498584989894922282738663972442683275418036825457253713548145002381120367033753461048224754420811226070981814250105838277573879052291878223030752269505235044690739989834341378251340411767993808419799923792563101504714989460253732161141326410753202605965692080043711954542472110074220563503639966935555907864120388997003550921818682514837791789788008260199528704483966042760344708395972980875769585934590036093732439839664745184299773451435083552537346424738615073895698380528765774328486682605793165469893838422130829464418573846990900286132193039613795016655509507173913552367572477800422225946850330646377632600263637800411771570433888390065287833203768941744349911346822466586814221470888343562831919200420209344713359563990196656331568366142434375045582222276526549127122514294033573150005670264902166027409186484240963770684946425819481568165090588878545286392210831356330154627124628332379718355838048428038548938511318364972354522507007499777688702433175187381880303686882358504559186966562619658708669726621769276333519600594513752756240870879145500955535940170846495991503457217158037217837435379690327653727235475293309299740374828401116031343009180558613629362539148207673047365939059742306682782015015543505184189654472059466402284131649929251721221960678674860415169545571727162862334708429942771381999547360965739375421339035065362520686143728753471684264505240602798461810257265258617550060481193830274356181127494441641631056972998878234211710548484695791605435165726638744825891141287737488343109479882854664231576479397180908947814016761607246093183338033321219417726932369822305496456473815964650100310968977870906588953023951035374664991497439429018005148913769785912524892169817157772309330083900556457699802283841573781782825936611065588274231743437265751843313865388632048253881189930873109550116194909679307127888026424777738385382012705843419282289142048334909852984659461955658737738436524130304514055772914017190044237153660890172295514159421124778246046694550130547082373478319451541559807718570427910407452339118341330423764009093734605701474254521982387260072343242297772027130139650274177895795034350289358216522015964822497668927738182101132335868990280260356872272640176901831186855382459332238030027337513553857310975801512229569689640024100567397473266004165463956375563989605312039094418367273413141756378872118847772679800954050471802829699800572390537208295487238980125731828491302454209167682131545384182370388431666987396393295878239744089449978849272121081344899593068380706281710676734030992558548893221615656140401581147583190908718492882202033654278840059055841825176528991542304656834090241708436523579543244068152331701245094847084335163196789293325552215477542581115095106786357584915059898731596201091857566297784364823229662943928897288786517559301040052835339806717931807446191627474935901610474220607299601166115189158557081694024609929461294781734339747653527645782742787017733826874096966759941952117060549076884166708118003070777474164573226231532761650017497027188903070001342372170446231194458743837076697818244217124095621568711277024659410249537680661970909252528867153956436067465738633732701646317314930012278855812677360174768205949752345991005618897805586475380196403853481390306992098275766908967103367499631284490434508559967705418649795685569413874477863625555086090745654371099874549826476681411466854174352010116112103897687287017455035235284071348396506746935179556944432217300092974020909904888659280276687507776331660219017017962583375202425157928506473594616497015689048028199664911969069243386120056015140236238894872280288613996138798620386577838762889856654391650591297049623056863509313278499493219682049769210492945712393468884243877553208067376985900167463964857541949517777193237310942209000134349074602093542796042012845806614990511020106239066466052446980768753335872776827919930929663447112460885463953040604084598332305910545199771574047573584979178491012490829047838193903046916203319719682680567616516824086016709102421201605786881585049463819868098430854762211526326036935807214829731523616931702576460958892316854211979760739546859316631037449506499362901962092643559008240537864466988413522470841943274674574428637653203122145560999919053230285393856839224878566882392662542208575976202478520487614516620086984758615034952694245506427516368956956649663671355887920148236648604773322158316230500939583518075181540361022696701609957196153555966538154505599732237848112930444388357649375137331944482573480792189530461945939439692547475103683224230374125745900025772422732751631857810361562037641377950097799466428821564662352504780780292518913540152493134842472698124843974557232215079441095528949478771003050748034778731875604353244376969588188273999326280973703054759835164856938741487715710898216717293283727008551537429148888078002336424289634709997788317019883108642996663262815992658115169364179344689753756205326756397813249550088267034321451663500457294413100404890082355949911239898384540493259606921500140497788356645747668370641734545722512269692705076054195150175153963713185673740635214515488657442271340678404557327605090874569480241304270550578348162670402685079471812077804767478518054892360686630596614821042359112553784140228611052311833618260431413007949821925532384404700855116579597515352784328146438637288959055252600155221947972529560531337183618849435090615782767524232746900765991773963654088430881090402181241604368418958663031363246388420147984401031826147724852805553116153033219154769605677991387438154851803278218493361910266255883301094620429661576351705230410129321612879327928699361742593829513600729392078737902081014308881257062066832788757206513322118045123002744172693561195471217318124990810329486560254234897379355231478804364682431364145180882242725176809631279385284632829097933661279035686728551772960055353541653366815694736826693911437089514040292649221826792587382751008509522535642747898436344719344375768462673152395690177856123043055758255280712425144409617589816245240195818230643832658541365965400141299820725924310318030405136541574885826075020997018051401650377857193637941298064484288239123725994986202559757601136255978571797856821288704045195075115391840631468061626531719071950519615484444551378136948318964124857531963208739397935167855516084255357190771869052505608304585798586297892528491392643482693501199295885954073648477123849615197474279732405318162347595460976924744003416607058400523453221035905142509977714623648646898498415343739914016551148928287136761160802439118226793569260108848416096788962489979550416766737534226681217855757336431558742075804711525285960793162692093139961257837752167701480006673839794104681213805040061898946665678034430823156578877457484550151484172030587488187281589491574742184623480121823443131932241095714447827211576981453344975799789261835988649155936318451035127355131287265794476673594864768259819217279644514290838281639302816267894911604451295149428854455044631401746341387440225182551789599029855212128528400833850805304408078556475070232944229213344907347669302402984837540448043108862672859427755831812621533994758293180389825144207295742600021591748288166601665159849503175345067017930083740659540238852693324374387058554221145406851838332361139643431739643950977475109107233145796199669067114972399646642315479262933187108261959343095752748161397045225212460563009382403876387571721147883582783828660090539895900800397275343178373802306566916045630377228481925784713381821268842109061261996927562772100379143439362083289241130070774526368244408674142478733851747621280549084403158155415047931565419075651116874904459415627147721428657358462548575045468523129746289805334901149422544005529768597074186012381485324169478131078758092779522566261301214035047110773827332471035591544626709205476404709394034657015248538459986414020722780191785474690011935287941166066948485672835284095990732601609580710241760937375620002244976978700299678888636983351065755875912757219562249998336138246111252025728234050076312102683784007473611979198335615433409381128740525369451028417667001503449600900487100462221253257486521597825575980227161519973832600745671216633869121113360712676861425480633062705407044345984128331747772772322843590689124371694749975336212294580838030575295405998135778734883462750069421246138668049833955509212607690503243432513031192897409074465510105449655293299770076062107363589673822521509447817623973821938989953659315182537102467846301205652887395068824183582316658014738509671870455882151867227677909222913784787482841362419283822565319892917431056654485910680219223971551064040878815418664106315967204831801752021119258133625730602083570913308799023417918427416719243232754816519884842082855435178842029064308299612333034369768834909514105641201210711503443895898906965505304442054585075235385559197969094595910952522822094657541875017975413802245682853586138255948365907158231864400844027353303715840072592131376291199506318288373990175695978122262212574942527039208728005385174488818989790983600425380546117216309011501360897595273858217856392332585565661402897471059405458002410940877345268027649217395551437600084018938156300032364128418865364133098754307405117054383982367758002328760694797644069280847579498090795989218919584560153907599522165565294562165987881165112755276501247182061842543906697507961387574520811365577630863136537114575513934785019676885664784000124774843695638840687928293872798855727121208923087836047140453611982079875782528579744169841472215328419797816928043430589017342258407833512276298150310198260616995349412602355591945288093485294614550402714521382366130285447810398364818925628681897728610952513678041159044459782585245892175386342081823944945741881971349644613136976947910285773607131362786228527821169577401127852012896798110455821370734750064078081146563498049015309341484518576285161610601596816302947824462339577778843589806724975167597908932926072024068194282533472957897526266180555614670698057099074188778097043694452685811821414513076999717958388170105568808550724014686993946757188319608048300841497987411927355815355552220041311555623208984210507514876799282581173473512905807366870235132996260909721863454650629580538217859982772283706480422387463012133476963636388920615865260102309672759800671189552354865138202232531500974654791792412524123632416488202935106596322697698929548827911782896718900762780301041146300154078402503514503642234225439957885730617441052377842285647579411133395486324084029330468141531129122230316774113186324724375212498521904722423780209581379418437681829629798808292159433558163962797785400470885711390884802104272635929339061351591416018175901695078541889644757180680328011270749354724507942082087192884493669904610141275173867388243908869572823684214352460832253195679641621685596758551410142634142914967135025015127641539204515885985852562856951410526611971489154979516331212154635487892106464766800242201338734965819520975912736728014143187196057617422056202370888189253689012298213613421227540011684962240991290562659612738441541618052910912565827675676597713750043227597848205876023513368854504712220140353049965764938942299933982519357140518895023685052442192490725977093419795582992259632080509391694680397851725658735241987111281110185426385270701552128194172681517417845642712910340899056486385987749946576466968253722869921854468596711814969890289626725546235383333514117767795719713357773880552457528107918769054494663801117805519721450944588840032420322464131707409200223202882764404915926871010505102054736449398665303076154003435833075736596790140377201549583792829130436090779160189528111789594218680147998015939947523073373459109688453160966227223490488195406516751885492339578835836528821123375728386122359609386669273685089627797596650536547232597762499068351158118379462344892784509135652011421715380328723236077988024535872954113848339283937488351148387713869261910839726767028307119919431420676244611472611144596940560765004797395270598989281535646736176161178551163220547421538148629597694093551973743577075129018938247961249920437753669371651933082785881634484582828981014692375600972594072372525069814759602474771505467195823352542751585013711262977746102257530492749066911257921968839507452026863675371442761737264907980439779918401919671968404503124489203410780150573517394454550675539733406865713844989914336626844297488324536712062297476487428769500084200560293279728541606776977958225463531825218609703864832875079332582352385597838396305708456253626066056255043873785002450016897383607684451425052528554726143906051133104171804138059466307041761216434855135471619912249929210851582436221300512183422946233481111279001526083627140491168675606244058066963530931919924669862342114651477026467005273442892838602329463156786399125781554851524900208002006375484219649725730275811432313468293015379708712207236988589546967344955972966578327887583562407503020301688752892484963386601564716388302446784129326735635590966738587138578597654517941390880497130123232208144625735951306950816481960595433337593336626330489269186471870126214894006232883846516455576899799453551431827691540950202451207342120550632715899041459976092471721323526417621787446869653614687218935044015804107066551075485336583952946023646565136297467703507707834523518217943922131111302579900456986698327818873505026225620176468080174570758714702997656688729917883691275705310835634352049290038306481605436715230610106930377802930311868538825145692223008176457546638571691364605107317361279302339420077386243675289469235911626774982440569149970663602676808993982288967538338576089697276511142402430153573574229612225389435384101275090091728595798551687267930465203800894256309350758114199238217311551911440672455194758547623011985364732962242917738200068690803727643951375067357277244398872287123781516885047891891686953623256339408933522728328260265223028617837912866498762285023587722807922575849377041580707525122233809301272374981936330671423805509709080137496599633240919226645695972161337810941987744063669222981879002016532782437258367920728506166854103097438591408404366951533412992629650046273448795060985222928417389135075172182396193580097726991185321073672502480922349844697535820608003815027232708274389912162519987036906250892295801976665601670743300466666459084126619551452042231921795199343896093843635502079582424087349951820925422093101737060758122345600861971283294967526790790677938996989558268955536281271588757587250177908686528657711723058685611726806793689624164532318499840018764618559608005402667472822110610194960564275448852294275223579089086109331644593831905612123651589854441717871642221667644406091249054353879235268605013176417133532812305760231831713398027890231454957006992239643353433554816616705472076339882850240983798207402617604974002385740094008902090597971457977001715559571855651862038789891901214734201987050045111593096967965531605541174319886833157719694276292264481223193924435393927472749095631922569153355610963441299521242081024523275751679847336435447325040210359824930573652091765842240421170744573056377379074389362691266254007597628619992046640799309953282315067685726687838484578104588375900923145988706154845425824952926652580915438844554729903481633978014931290096079414347704849079672883533067068860152284957423181129227834980888113106059456561933981652744855705560116703216187371414138858713543049169660254205082821175704358521934406842987751468378584340361986828674697399555494728180005058635610968602790747859142030225510695583987742646481703410470866437710276397790042027598086241135778041687845163774062593031638445463294062359959135277975976977763442857072515054331097595856527934317582810448441555145700039482183824689563700310645416086028865375058132522823788102053120220475994939847217256394835946321275866346722308399042276553976803145766399452438798895523905109207579268027424574934031605430987665891667840931016643458397380631711116242983585820764501898651267479673209956046673170873352281387182134611334339390593345605624326422788761863597114019681424522617090327644642885643828761215577647146926750746818883272859274336043817763644197879981332454191442373953108678108093587409974032827893485432714155601382038984653236325781865755834623976149597291539454828042202326968240102899824558044523447235606955040813518483508378818178828313940295460282932340629397322377312176041365212755044852942368868778416452327654219898101971065688910077263509929474297166472309853597836854906144810004898567874180807384587584799924301952354557634962916127628107117017922309127798529424376364291938664171614084859261830409071368482511582863317302895554784509025804606442618081718794717901552585673645119729798374234750248073853985256680044862786271385692025452766554154880345287649681607141262918395218533204996654778283289394846942227788748800585508245406761237004430251623277838915079375921479011192057943984994354485541742902182292763207685233311555999054706845002546658890292243281913029306479166228221333561446171079654942192807685182440626023633425395647362054316135475045457447990667025801828863707372527480914062831874903803383095866714714091556466186638309493092013091977751880153830624665127951935957218254803423744062530854236428281138377331514767367815904550738806344380916961599311080007767227995077034825760070074190981301692393678300166605035918184108417024456047179435521308488418917740910092399152569464420564587195642344487620626043966427500721343454230242767226318398557250317294859268132662036233316311050928908688483384905907149574999843654415422351803834934024863444074183012449796135722160783125506920260696414450542947964033876678399881361182484976554903314099380159010904745635012163176914394855458995584879794819687439854591263853515934610863493909266970462778657395656145856605661944541553895994539524616976830131836838900811201259557659235717554420310180453550977052854780214511251940960787704288859818607444229575936438116585713901151962373412183593684543686606987891957553856601347633226804230539504097207871382525380221789383151706741689660289003287749228114305606648159071947174672588545896512930888678673158152724510758404363188898634181046848177057481617771926115601711010197059352024087528045821515661365413985024830824110001069141001621357170404239277074531069455335715030893974129120331984253009076360328394166840969516737530001954741566268524893210409015122495903805214350637657438112030122233379846177925973672745395480463364365378728150829107367523066166865544150364885792999701288226373692012149538763387008133305432911316395216777264710056161805206633101601403494245779095707114345855412922477514767042619716559262600218616184762408919077675177867520233577309101309410591639539208324141192216055955647721822340789277792882918692453287531781171167059538184541731105670057987965336417411251788285876495183573370556483098556153282231926176421139149375111218129890865365701470825094015333232742933734776602922568742180119592883768326559416541947054643403750605696627267720845983792670317504701032383478017092067054490512943077063946932040899687597892392688274344242645586763174198362699920924811534523288071490196397203424305201913270281814063439063284329625980932187620317417287923315487492871457026896051090229480962843972443908363219081035681380976529787083369063617841440369182043481153978038995645621222433872480827254542087869426992706296236112412800866044571897522765254158289665194559139130444233672396095894432427291169775857707681688082174129985163678379087035095869764381817304474269536803072163056633554781910835515046523578055262604272764237038504872271019035885677479759572873120724096577283118131754768253237283982642592171184139621392399941664260327062680446931898328472311188526340093446853631099445613678730876308534235932150347493714274323950179465297215287777715484760211295111138586778728397039820852018942054608990315405200732907006128934443775977092014280455377972155413766240765276208762239718521461103839532036211181597993682514392929504558619149313526230553493461435537714250991863319533465330966950854339297900171500995085116191588463038237975960962378695843102053365500952052820875284982160404344647581146546601638424264232266129356075092052410956835568981258845084724927363919641937331311535563391338780535431106903604466933638899033953915564688304182590252868057722236244776554762244977414863416053057374806404129953657320905970037888898846531803606754994049379757810542960474092790211277732509328693476496070762531429467230921268218378540400286975656091144041555037524765709475232601398472865824709425741400250037513558446964879057762550663089161603891380420765681409507657172804097047531227224395236566782664003935934372744964870068254465465042656528917074547749065323428849764323283384018227349726931346700539840626386576655617585348316599304724175219446219564907034494567603805072073926921807771036740284639481499129436197676404091214030499790131779197291575252067975755864723131806561502643779523300960229195075162457440132463230509835993457798620060538585073982125664904347838101759122437551123172074080866440684349100985446762979205395767953402686507888654650837968196684573181597798811368363069608214234674524405755453115979889741393720670644471204543464506772109595428838079456572047785058959652395420857753612367261508670551679441320463642860517724778939275130622725733825728213691219495961093935220038010126290482575763753858124511270501828363371170834926593722721435636279139970124350944830824942547898354025097059325408711832382239249747907235745810859903028946425634952716633418069568669750629041349619541996808984615245560189367862808125621051656713334434669588221275830880753075282494752677784856909349177307047659961469063852155215634555488163507268020346025984805049893471557990524507661622966395640929295194970885383485253410084899776318193649095935925992001938350307810295613068110331845983146574964497001505386065405310563261058095017878769944103013760882187449813645534486319025892578293027696187467495423783321455081607105675483039279267197109025488226218930447945114159097489135114155457840749212140314016546260512084978476231733056152003299580411693561311955392200675363746629314508664660420866212286568512237142095496895638051261713554838908406390681485568343963822946203604044145692480210378217244619229781910692702876150103610174841803845823831822130140554712911321835822081019060619992468439799981033386852963312730513652864512228732685876612141276952044446750556743074526688162422612216716119550927092401355400940838139359679188759137774833937973646988736899731227972406993614635648955980394917948244253895164871504843849644093072396648340019278913718648419834914173153632278888487493478931288864979153880974407662396850745905763988372465477886259561781057179530338640394326999894173028582460100820608389952551079772630295250617090984167696732607089498686711203899756305921707246555607778144603725473552343033701095900889427180620028198830650815439268070933769485895032778995295354707354783746991299823901716500673683538090692467532867615544872821710663854357098730124629296360494079669783289244367577735362740240289690678428207102147745989759559852153125758396828984796531740877057003982850428020199287537438922395579862403257976600844458876775355462308969474015210146445797654111431505270539747973879282069901641390080146527656226127187888991876379961718565316361759389712812637578812691313574353323962446303822956369408883948493004418798300744465503981746670456204018204799498220764906490162743059874281722569583532763799917962254605850349840704027022340746700385094159492760187469953540442574862696800536987366255983322620089854307938291503515855780962693913502676077336749097960882802911434769309438193747917164695494666165965109235449333502193667238756086216105154875222658613812931462010823072990115681255379048867055478393421521941438113876311927013020194020548841291240773063076282010294335294233602502544848190233477713455199515509419984636035771944675306979610283288759293234254352735177732239424181918988798210561618249157431528457211466788650038039728668948503865731516275919100257731091982970477764752358719280562374599342289126218327604031405432683679790906839940943918054966376197182202173383167630657973790712419278634114679864923947891576804045288112334893379750036374515243881987045429722371227550038564342928542872943010256335088165402857655074317323979734345244121094478918592679663124829194221875061442982055186096225927358902800560113019293446725682750296876290478000656270520788328538252261010424558373264069205402196011653220593293420833722155802421649996709607324232167839127261425395932578511898401731640259615703328235449361213774360641344437121220212393454461402007282603465613133759866908668162663610607685434091883460742127277441551341512405219682224119396034356386806811480529334866889304619959752216719861124947875470958183887647993195762948622742048812395260731900155325702197679309641037416299638113072579359858888857885191877829552413250438689253253540721378562027246274671667535472949289100154448377162115143253807528957029237105170264566674260030731258482087955996228221737822474769763410350337350756578611625256296888510425417586984464827181105271012128412197032797845492780982086074132772442936567484353234302407746556583917691116392849054774616698658838556201436804076583796240194300434805916071024200287021975330794323460558238953024537242371441830255186754909180802211560423691068046878781969407552020352261861140700182764490055880163887325684373139618603846139992191139177990651132582406404723743037503774264217852432777640486636975014013665484145332202671873894910576727586291753632547381717458732634430930164954028930222013140064540951625174255675431089268703563811243041437592716174410095044373874353289544326542936307825813132586121796235374573551735872779299001150876734935541084209370621413003716975259444113463664719380594856713354866145895411250048716658802383104883081861345781122412339329797534498950660915376583850401545951020871716559965693052539345067394877343489194455638364252646912736191307446212710471982210760281419209532793670923534764289649404445186141004146106023732233665634899476396989134897773108593152205411732957274031919031986988347457165173686767622617887895143522229507394822842552158017680852638030167600890426605890188773531157142383531867543564152423728471325875429697199244699831300328246143625621936305642431792346578294158114801139347230456515938110118322660172614609868751296781392719914861240671943019941644083235965915282149257235722723083749923362704508909142273116673428735317439550313170117673595848680151827143799058730719000199954970275845539235311715380441193543810652817412328105295660269328961281643269817819110742931055624249421875954494867720778469438115036957264850216576883075443375462675773605712653193441453030020867362176833375838008685494730475025981241109704292516169480518802977662876544961139623102512276380662200664620467450628867377277221417219446112946145577293723964234153156635719471351788396993563247058596138271069997509078761619318461245906590252152192125821267765408388214549637719310480033387324523843687712649638475327996040955964761997172348679138692783301350371862383124405773467871476117897644362081912448417559164724549242999849608086216256895923251135317101899626640312988854397572915623893982653214134416344933422395636619238760965611953008898978588350789952183476704170705496581987406941833010839979317009155044740997535350875469370387402035413920121786201642186590683658975267347422324682835254320869761833237489422101984685746499910573638837743812050357280539575810122483573170389699020523398268980251474672519665366191780603989870522515151118461307570054508937127777549025768060757234914227762908159033629223128071289120842377657702526035980709308509704541581991842053600564367520869090680234119842127766892276469449157196747123277671794594878012001814503179459469855060311321308232413249441706164980040529997535635911269073528882841539404099921669772558735853126346825201642718213773434392550667171591561811368620973445507490255326437907708563181711001646640157294018948055664609525412837168329567579515737861947674615228169117642430096723364643193880538154990338196883358827429747862435946144749779699057101869075501814435478390626684473510778651833305040502852353327027531875911098447730128217184816864495583475932753186870372993933079071761413220628609708973069205579335945737187984502308480326323367437494001603098405392055510543645770760117375374794377251017920472294975392196024730367073919397569238010239072401844176962925435306769623897951032775922975979388927403107111305930445275642058378570155868306313093969122733550820970460022856114284142656882407621955070953619377425526279547983595941476710387068992568266399129695372918159903901595283245792452096390560888675186779039744964499950298843248579888016140054528761090753615982455105951951951275560114938065942408458424599395592697132175208150805469237046959321729967706432750148434515013895816633934351545610347134942228074229203106046545396484215449621195479167512457573435954198240755588349789452332932737574575303868938507465601142924801030853379098478424947385790516101136389000829755938834030952255213287039461757225012154997445279421863951250498110336314960596925847189684165428117371468436389749647051483314301198271298749015471460015315130001626685466518523956863212247525368902483009518626659311573670485924937039726385352219136475458653430938375737250135617280790339305956319613027484687052137750232646890701056573381420185033887551234802510758063677242853643933616031058625019338161294953875304724141340564716584304433283768722486495774721754119661877618040714411793707641436137888544270989601839309436560081063129419410917428156080146377665042957589770020025462021920214628287330363614314219936105611043297814232131346499734856559412464866464691545568594249947162471204289920227407510062029478293142727119235237473935003777291240629630476748169836385811202136672128284822596071999802315220416087668855120944903337049387079810294514943207804465437700712680703675591176923287788909378965028031288894120068486292070971463200578662698139521936768019596959254815715348315062308159685659513280397068906901376902061192264508836425823386245930588847540567065854734239186177843637943873296568200035993125229831300517997693406217496483602947380220772688639678282551388174668346395900430707421168776629913485924700724136977830580527707565641614057437337615264587991790035511499408684875403838262416132221550020012313681995358376087221135699680773221920014721542140730924982715593740513747371839604211776143286966297325353732996281264596858062862704406018487317827967158426400426586484922293891865647674864801446190611477033032045252951587597793697405355203229405735058447721052218592105168730947090474632495238043754478880940665027461852437789591958071074706544975312415713733246559602545017456955952679500723207538112113136455405649996512779314970120080386165955326491203590475071938348130966508172676551549716610018810767526332658978240901181473906582319047433555171424906580221969616572835591683792030162027735781638012622108427080733323524696772676447989596583323841145749960941317481070060837209018352967687155179839540152266604653275053827426047410203796609740019152744172018521885163468875327245530702886526176269199489258453981324995523918079950821470962412911476437693267206418485196166916657201836950010100248902747532168295314531891852756672700387939176564546851950302127416573534272803688051382569591006221834166224928400386137169924237678269626500677204585812976705752760401390139319584510124834099924967313207707143648875209258642211151618169292519891040742612607124592737852090906410428720635490543654094623299577367294779403166114268386223310525904233221624864010656734929016224910578854557795981659819551680011616738633940195155409628229465136885134616855245906075866436856737832244389531419399170876506266884440607047204039571067436557252599719913570932143564773016538683591051949035209087617102878490626211789280693658005111962182058128083258248482505242578333393624451827801350254181607575269407238039115213460451170012207978315253411553901664296981205313735313053125854930177753529505055268215857930254286310958305825844634040636047558254008307361650962986072558592344651387478243397402391197230935887054021955860541799636592769718437850385630309798819235741859011431691888912754877978289703171507510831763873169153446186411130570262735127084984242377178132850767804935817180891653569755564230136724302536372507573752415851816840549510822242122949831993320122625108592866054523155396686400440103343430210764245492884679685641468330808863424559650195501465157757161815436549025888493171950388143794697309263532439877937666306426063268944935632115792581901092185088233332212832032003078947145591887927243801426134451596217632469661223693154537091459896531804135882601300255010502658256402259574651415050183971838958679888952407752022450853780259411578817548548983322513891907554357899407752711269528087723426341441081838861390988292238987153743826106296987232617665980282808602958726545298940570590047944608482061179652783854980483800200307867912630738356789037248620462040701357576608730761879024387269413031709535966150107987706802158739144038258670565705247844958791603387348049860242898997082908754679166366241452123433916438561212154031141566817238121978101364712867987888871253098451545658374559843862639421284017260535304225168161804168395639570607422099784060189519031151183829179282713331642662301664377092732500755647833849603443019657730774446380942537596241574618578315982537436029438903142339462737864100860384959750032561254738860937481321005939777217450661524008290594598130951371721307110800591199447514678605472110970616161670846640925185074471816704064706326130186284558379995610738852334047451352915386571674695940490321768638578726044451279207397616758811366795005711077769255357870882346562205819856025277832522984377258727231296098966245122055432756258117654645504449635577287162662830516184812354101694415651552076503848287970680415042052799395232247796967827509222368493422202646728343209507544701056705136544306469478728543609749959992501210845847484558968823101286247523736538514200926035596934776964510720079545296592186582160185664683087845005592263670518566407731702726500352862347291978914858536126758544083088830812666710058618849640826184680468247968687495842668318215871820240816300540434607576529717638533208384221576369039546338393100534848829112885812833283376351004501579088864884407330927493802513367695628940788819632121752185163117666992576461828827009306007138883653195882097776154877210226310120672884627412794947610902996546303743715486124810963749130802322417894390332534206941503020054223182462480498465326993744049136985965606569829184675808365335961239879035197149642747791503078518342934722187056100756172100275286143020254739884594859171159568530253179732430957531688427933780767921994885463990846022444627375956960406144940465825828304198858344908840091239698545916246724425900238885647267759795014981826767762746026964546584646220079725034236459280094634728428364096218796872815343936201271074552113728308945571273610409664613553542487278424707930424868657310704220223219812536426817471063982061666192937320234301298981298966636116370923557923096918543678613532894546743939834198217365389321808991112887447489185516867306639748846945064385810005854134169694858931747351942842817090546614312812294960255973167576480524005882819367627159694789915851871893176563574589195977719699006014423799205052196037568683428142987598225243306601755182034448043526619353384243867539351556414724932783106580750391639270698757139627850690046132848215191443409727404269453233029416759880355233221942258823793130422799560445756341883312741797074778651288672465691594971741239337291352206259319467742139598062965355626070147924412941298553463598651137414876028494078115545873937896472752710260712338886705608099058951259979363601362935287774484745171539215991979437949341460978525191881257326642271116023599739229307234960842844993350652973168016053845305079729525667351025821288648649721535232177397056302319730755774296897003553549106106249580302348195491657430601319451538258474492121856745035650627718971207208468431064397825679736001398045850855990064315202430272246674948857239504161157431052589619697566703803254382352839046788787828026842772527625939013839610483800269080910768792195563706642959093324775101392895819708511475549345405843896652698595135064185012293797003120898741999893220860637617580722551477033699303115682840541967731019977314460518093380821526590898353343309989478762728343459879367551974583329183056031206719953006678317296463288504299871427308844607997871321270912633033203662280283932812806303921426882378583614518643518711853193873857996863659815004563749429968813012640430751121512273124821956762531444985276699924403099601797039101302232688496563106706857826872699924471114279043847393862970785363103113540000906505284224652584993310111854522230709339815688445154781114179434211708913038546039235666243851170109527236703197544319911843937221720980953680812529582273866486084634641519963448369454887412764145016766112789028484708001606462439382241008092267464236831764328939060443377351080238505257542702997063535875709633058941611478973846912846734976507761116475683022558705309743821554680953552724000797413011263032258204226395502187829279990984334394358112793720653603266838187533532270697539728424176872688367012029241614757012671850109809029110461224384960441789686356010936674984820555491810420248585846012737456341711508927616246099045188068961575620933251359449404151114216592830558168012167186294425025735958058613422774037278974603042946315377893616135969465034955692964966189189873545467343341896666427176180841156296518523225403014188154981902370920466152879919832562933659636667588116231762197135936743275468013945789115049272386907497948350285031104784754123428763461167002857357864872734984054181439371841868159637009850406311240966067991635825729577524484952184801422142362909068106801431529530136418697285598072690822202119344973040537561755789527196190921711571467784037997001652884757851625978074604663770048819551897903630815395240800759240857674443227674350943463536886707813628022470982676088769547987371591722578089803382434544559875365353377273558597602166444680532169035983872549900268331962925207632482393838024118178910382321636069873441118590241079548716675812655697677915248996949812672174156338255771518732868906586595890767498304073790465581360256365653310088426162719735712412775940149117690912756764955839300671417573344602117334483539972884449299119606170137879709485236473755862120499265062366247320791047219879464283828271101420347334098519735321279098755712496082756898339062180358283070674958539393715835539297331656452966352349466813006883708698186772713356891170334001277689109442783056468998722113521026020880375819101513339047428762351907971115232228165161929984628471539798346559396624000114407743824884818864626711612875920457081428170449965543037682843383072469596937740029761921756604030885877547568154092382714431002803080351211725241666483959573720920938315191623625734720291968253809862462869891485371010154464177081281547343752616602911147240501195798177520830179801656148425509569314455712888194889026123866039191587381168230928783693755076229721073755768708194345340447221215677528460999102991897408771162798573876261425836768434109444914439052310546377189093187452530727563539890801258638929897016315801123769594593024003568616017183931210415937249237371892125160641964561178026864409465568192735101822523541401754653486808949003487856789034697597092974662924005442081028738759940656212762441936168724549425864081144169118385116248153772731011164004552471476918527644794213560825524750000206518815059953345462421093101970807289266405788135788124174221115667376234952931685588196772742189822105047981313101885896769574720920061527199924983379169098475469862618932733988381098134846098488708693783141723227941052612135856124656644473852377653041639832206835807064721094285502395962179108482963377751034228660560185729732363823501709901305014347076569719388003757434180565431380626948103824238919036800198428793939926470961190960869130235422380488929181489002709228663547938205935606770030308352661848056247734344990528947288438166133378357810778678996105869065808635560568949779590865146159781174986458432651636489044613664953419827997742797530231246004022956990434710555522807681911627312773934437483473032100936079975937679814174157676457861334288153281539147335478597074934493204519080894810561983108147823668359949113166235506500898033402114298674522549119248174551100630185400320206293628117780976116074437732258540309670176976816923954383545206725421212610194382576655965060220623100480102356754941603226577634169689514317756598935610782830132749700650244992465597505284001073434758827838571488540285743673390554959409299330617387724063281933548781834781981009411193856701541288141842355114426509057785107128951315030981469027843650369641703088806481466421945289922530838629042163692664383623593448243083584156929364846996708685202453018339629175706180843760363405689946752625396700675817949512604535879868116391010485537440261767040899916022402277468312828900478527911672948201438785004244053942870049112076692153507800011290772203381316118851596789452332842494331140466435625528431355183805001753081395492898322810985667924907687355705261565818506757579179073235918555951941194609598144050322790719683896434354449126032850450179301229365396516718725768904619832644919091945690126020498260409398210925703925000659933825585084040924012784280014979807879447135681249293766917044005663060106071471738314696517290102748455300505191611520395992028280485698436535754768133642238732299884327033552159336653057453756539869227945281706602622434862559908789636952542237058976935496504490976093248048428852602241083047074228844905804592437226068176359489110532498467009897245270794960778176695369130660583068805592180375708697941335969372424656984644318926264214216689406293246851388571011680524991923493934162987672805737348312481233185678788450441321122364411551372227347758343170002973817812891499146934581305107397241589706002753276972157198916378861689157452489219551720940728096622612451279954478535706086889111833790955010403028210823176415458439245599057405380656805842543198272222403288034232094196016484067293059348111152733787870261846918594052714796235137069469598591261336641863581537780970269959808281905167165190584744605432188145902599605309211550276922135373379543440379945749447442717730446696163751544506457092305475876288272843859602092625598509773045959213276049683263066097699565145254004367712435519220632847029770139892576613615440355843091216613091601950494332403529439550822113964074428888465774910395535206235160019280981137244759042928079063506555457494874445676082508670647324795480735792155626839704644806872536398195234210327313944272234068702345628417116712770960229622317828864500318182190196162893820506440498888877359621216891042531156582554547875142713954798783476637210375287974823584187974825947131752340386066105267017434853106330535650385081690117834217148325015220984862155376760035524317961069711695972271940298897990683475263310300142289926751474141089911367348583249499920749091379534249306190611942328129212342461648348249528317375422089502339437120885383373002731227427401936424136077642508814929694272909859099559828482057425285206712638793901567901217647050040479515334803874675498926378612277167517054315975718528669697676013842019567368301182080234361883949528861348299020484743217247206265801707136065702725490388609685659330140057971703916121892210175283868765870904098022963868948081830238319634862420495383631904779588475204667410210155170465870649224445352430546805203035453359612016865822878872516427659688477373258922448125723028859062615345350013507371237375139010179648952842871874585087122084990030741605131668094545942952014849813009305432000525937921905158670681472284767460060446576429390516013337668307061138084309358952348468708497238320359282262549743614896544060389523279938071382142909690997842749165590781472788713850191400084752339077036840585308644268219093293404277597910292966725145206765038177013353961378809640167702618758732144070355627545367916485968388827526516458109548170703782326296882251426985695970222327785713438907134113366934286750402162294430815001377383169561715928947909233198407919683948863577473800875249931378415737106243962129009806293606631064939178957820138049153542435468141153783397649470739423197429338383278951493240201645160935538097264276332001072145439943828246334687460542160565759554511603318783971005938540904805694195900580127278593873081575057544293350474192968452228555240898745482129072876088726049031225032835139730648364966473864626769515405341480092839959565515006355003933379110610720816635925531883379530202413831588549244246417380841521183107529477786228565847805824171691342342425823104509710408507161282158216428063237032923496251092526786087782315443449739603996937131717763721454437983078775699892759827101696538655370277349621161147700387359751215774818396108760237292129819285756159674178666207723053418438546487374349988352814560273851471228373525702413948779715554666719207143470921391165004368822950079200171180605846381850015408347479629585312843764798369573575748222381791817844421855504451026995392143650170950357451428826068640127190558696221960050058852848954603944414569802091995279913804312668268629132587452012217177932647780485295347794961468717510522675215508901332747572890566455471661796640515093950050278174004261512610144648128542304420872346166525530761541030510442800566915748360629807225509731796316331087780602948715860830821337183384253297169474357211927735408202685130874679779115702739534828395360223579863351948115499047553911320340730396592887956311942228263499290330254679143917028447592474194843807884958565583519081764523027457319607202427438782297720736461312643924485219027958952776321998217128838008959072589783340558892405981894086560527035034761146910172862665912632830716522236120807608577242519351942425849527764241735820581902562535912322071114712381002991979229801314117486226330703278246756732566812962074517862407913878038607394310392743087339181549367643247789579240161522543599584225785236918879726933738338931055576920681931289006598829109857377323138731869321047733865256927225854601838382073791401676363002609357537147269867505911222587991854994744111194361813419700744935622386198953561402579940190734254501672701875614912124570394728559174768960092746447455231025829050727178948254971888726409470745876229930425312897081563186083343033497021679434064628985143386560316762147742054471538288968420516341669092460888938787410591714751617831066491092030919497948891656600986459295004331609135331528814744608109234962715973327588681663783998420047741991406985866416732621235577466018481592841103010316313015628467118947588502135250475247348582324068823818444329349202368710715591237731456551979909516833750485606460341484436119512183442590656898322165151353921358877483595934921779793374933660630225550817539439974178813497925245680670433932307630702749215662750831433642597825415388380024957513269319382188840723179317572260433564315679934752403341095679910570189155351728863738045342868730001067846182049610258133653597859197858161762178200083607250767256395229865710220093708068033626751961537904067445050105779737609892740807767439012759870333467029740629921101246878348124154979767728761347555205257134563735753637656684844167728829978923502209508540959442478982829820002785207500551918021605856240455148265010016135597209914228372461343576913228960498916101713512093587949656676217173554970030595640540637648397424795682970196339514074736119675749665416861002399004912066735173277039100323491514498139664160628703116694660186377802437004293859588443172611799075186097050793129747814566933407615437552917113073355174890601514876668526159662863510384444574403048400831221933575066407809593722771894812617261006526068417821447397350406261165215718553053381130160856646729556010677994402548819740278779333994151000337095605241589036285844006502713774528862905353184437154149232875130633101238211552510269648366828608481633198904511516949354500222020885469312536746099288571011381733553468731629283031821393820523519917291196707257659769809932024751690391464248966479689794077064366858171705981714152729671710227895932282391198489703300228661314556035812625390371257757629429222310275743640344769086292398914252894948876159526606555715177885879165036311075441470734505280781501153304104299663691276862039774564005836191890803860336874768429370031738865185264769060364290052576063685683646730891853264657668507149215641765872291349836689121515889586093012739635855751322408285613463670049557238663588805139589238226239537176022524255234555776433864494597339855197264777590283551159463748441368465814227412813492030079327484075303805476023702680592059273073628213559748268389024161311818072172188044267373095893898449058600828735177317361600253118208243048767802408842523838746971220656742241147875375570262489355142275756434147501282376555485029165480742668427375210100222939406723673206450619706559137312703259172193166321689654912088476443981789813036179505759860345295655501019501909983202658284985264823508509807290338126835620014308536294972265862733806644850849761313166119475120033786353655807604717089561679933414137892322785239385729514661435680495294142972699988879459507951878871820570572763813333736311884482587996448971331419561262596539761375648565133276770475564247296680729274015377730561920909403504265950276091483924133981360371792022571430205717239884366915612521823502330921601612907494645308461315646549141041269437043848379969943581451767932338233596745778024471733719899539882450016551649026067988988997799733309401354196791191903311076584820830832709593008358182373038666301695045375143806301566432562655385535172537821012719863272734641210426646561417204390758385715323744580249963214142447194723500683492219166768423397120232790832224312902093414149248293111536231534531892858928897380581495481348019892811982691724626173110513191858718399489724649868872487609045037950215119161825059735840631151413311876324490365276716781588944864145126868993603078898633649532242951227397228700033646704605562352863627290843014045931954988649486257240631587098283043548924134215650002175160757910367050569618355071331305335735771595739217250334195575420108498195342801906772783842748457006418887898339668033532793284622726328260600676937932390992205871808103820731220258213882826827713543960855729695957418641306016536621410323829723577546610030985779906636367372833353714153448364352871722517864768068241406711174454791363900784790226125735919055300697059673457803645875804435153370841871899717677799155924206928339347874688125009051325155646846153784517002717470787896078591954412986533267019568725986342927433045536505396497929730144269992335982872272972587759764868036599712584998798341906031260375538568406386589017057862698392617150195585082419991949228822571734535095412222085699995705489903903775715191188194393024570505606458713024675735183075084827006649960741759692114891649059005823735354720560380064388249017345363986400047896196215046256898267537797975164494228294893599103536140500946404117159894166178540141643261031644850226468755687664130276906748245645062570180472823490143154410704326595150432446173929056129837479753204009758053861105317344280807044629103265382734178134633332350016643508955966376075529554510236188235061330860683368375204529967249549064687159494865833828837023272220737660399345068470749350460963383267836242720440283601098280055718568388938249992286673998768019784976312663972306952459947681309987644501244597331019571231588187254067051673191864193526262968514464182647983026219277776208487637811891586267355680640482816957186838223614181401665237177431985335507883775333946941905549845366984874997244570963450039331421505502937917673480420319860477133580632947437469182934501621445376846569884273161157047063206362764691135779628475175935801538092049992543007703594974252590136516919139712616728075505015670663904787198058515458868955450221451540868266243598872446214621664477952708094267424278308793756565334778456127658609496378623563094585106365458534952267221193843815486310659345899571169014801460307194143364599492135959353053278420171046493873708078089903252672918330750187718469694625854626221353876174325551282658394535184577892321688353018638698927713338275334269001819086779937697063355700122425252953766615735507559018837385098300650022250883848762862039721407764570215627366189157754035303869647110913941606023199476639476246438397518922558667076827647308593524662555333522654044563819134013119065550609568768027032218721352878092152787145644924657217357395078725771670950491679617772230429857333453501112535432803148404467332467484468869435199070729179404251665917149112350588456526953059935235894836969063591731361447662932634570785820376560430451859609694454098473669997510148108520606905233855711106275009195806712863794850894959248105551162435351251961948106067154668115105997516326063003709580032093010624864983028862327659394192031439055226232025950000038162609824337221346626125192834243822416135620314019271916813319428997255530956859320013596014416697953750640931840701526639670388850826773868199425119524644841952791884108242800367175489764260292235391817118443119370401382471400825576024392494810289457331402991500240557964757179129520766837894958940934961275412778111015441420953937293989270000418255846329771265410555643996668329844739187642646251812721000523711768013240277931676192542238325613789560809641332311008902947196928537481529406187849644553502379324825337796365883319268567602565397436862868210836769420540852709727432022408566162286617911619080778732256662425782039737769538202956736569784686294063067332070525068285835248298949891617133425154348210218663541372373674579502940314672643971985675610794342217346529966532344193209466706249200222409027116318024780722443461429409976718955326378434032198470851190231652151085186738981547726159777878987338939790353878993935273630259602933709014652290848936672268515487387381560063724890171543652974633984397096927133652411643012637189113826217867818798392585395678137709496293041402593652743285997402452672920223898125295260844688376466826003891966856545120492706940581543925124953951637607704900476574089811160574430624970539508332114037979564549161248948178754746072659681159232924089893398431771910060608254310208922596576135820058296856197548257675718970495391762828763027266773745359146365440985851706661479775492854412351216721837945427176920312259736598444063664837229086984204738020453759776647371646117416580638741073643050266584848739333485495700662805601186771321363775366856723477218981631467594653477833353764366682984415461924012830125089589069962217455644908922719495318555890581359614138418965783072846818332492722315888226306237841616770556087323239632797866559294502466188561262516501674499245314140325481722958679455953616887545137978664026157092884142056755687861918102551973562580936724871656658644022122293943402170196050643436603450458816213026347209221500068071142714170864859152939095706083473378279399385647381114390929850573244688655565013632239828872930444988874394995900136655690372011944967109431837804518778174453090673352250103775099490999960954065426143734424257506284177943063152501972076068057177253617104131097467325610702728854209617932596932620433070389955853269401062715921933535903381254311621206614315819094326413869985171685326100173929054235570026253733521492684236828072502049572782510021210828929931799531422831765984624826639162734160762837858842955335736588046840165663099722020241944076166547184016248230967106925197670116758550330683634428779306089833340275057942688504364764580604261911081947774359883867498367168924848519909088181564584234533495503585676006450469461428580883116739883614240455876643970411981271939874588008967520338872286254241469553330703134103546566622149494952939634474698938553130000389224823255727024153237017073001903296530654229533774812163187659281294448662594755151559534869571176922331853788642137293262999669025803083731529965165368118863048503291521361386617721951546544202593070925137933545236173883927353084082635321308873760346138271605833089741524465781641147192953196056026945805160396255165952525840809811106919918292655575808405153999550223521491797650161261690277233876451866423696055583117044723789239436510709606264027323915716681150123062050330195235364828759809415523102978987835559493378129881880392688826609424948156360549610928872698067707613132991919934460811956086783959248758054067693822977146006079693794568593187925858596418836683959483896907310636626655599504289486425757023919622068391455381427897412759720622626844799543566940349634144050988274848026101194217743868053197730212300230913021318392655304554084556007659505120637799901640955111651045468083087496266115647969198232268066549057968120272791192590218611566038188553102909919728888379357874598637898917511557466845133010453597398703720829889924624797115818339980938454820055783927602434823034313447584113607700762844179201213485170197707003521870176214152337884723323634995747813490700806184506054816730087962346503933542486244515626963456966340835742862317244112152249988573907648954806399278390650669925099333380360427141879314533609428926461935812910752549368253773177128446573886131028245516444764243794482999881579244900101599143561712581446215599271567465884994831992179534839304762896134054072047018146928112761535027247760531815151452895594528365669228850647908544182983538180216283338887325371928914869501781545422017160978474379979723532843213215653117786228776121505252264534053875867681913256473472240537960002443424274501706905270222033435852176676286584942358081894443234099659454090988375740630696648903671823094230608669770906492977199424721368487258972900829335644043074004769838582733089895803342816117297957958500132250856731152442092467476292439853622923747371561701655839890577049593520280092672855123253604976698079018333614359875043471650698852671412055011294114219104852423498274350595692101999719272551727247977631682833076976166486261421254509839121797416294599779042991887917513602922969926958183549931604545036065638271747608135692926310432192751887405084292342261824683417704806977708475573660256988326940921154464150370792885976027339838696908921896331692667210908959105906002370869053144004068872196241998866105666869215445908733878512972499701980916949101747185392589488289953511098850255702144100335132391716892096524092480793894400774938553719988477971094219103612787866035904938371616385889813931717043802819896702205279555267232281839232117112021888214718706736569962312962847637319471690126094537983629028963512363790529111372377861771293281187594301226917364956214467638686368760232501254462374790689083309864900825697930233889823213520422627835564241320277444036480800624393917544954137234843815353737730100883900259143874849116422227438801348664503340870653543426686471972554816285150287099894115262389965967850773856627906987457801946173632069338718255795152147840718521356651351535765353595630253931986183689778756792871851321952968530148364107285054854616036867535296010772910241235299736109574663939092408890544907942812421877608109694232413867131453443794011596178933436870386695373162927797523805386071648635171640230731727620150718854024046079956225672689201091205567537663546773462164351041782231681347255751311810084822240351918421825590354976973461627734583184659870638856772374421620202176529023783804749259893130748273684980420080364650190654106884530923709423098039591679128707126244714124000693968502570240639220630092797916942245400558149139873686771229176991717835250794687824878892219248059087307317041428423585816723669090912866220091256002147971316473357717820695090803468700839801259496964222315727805103020523828548409357113750772270066840223810431804946208067621197764679534458371118848520828641562161801201183411102713572449319311047024796877043079235557301231134599771231867778380174449633741955112157527441771921893588097490455874744859933917502103301662583579438567194379538110799879582228950401011468952021532425020946295700283839910644112866387864276990440207923924791533009962147080179720250118420738668247678031439339641120813085561808169412775443574575423221372222555634847654608338756947413345342304032262791492283075330819481542335960260941148453063148695729525873102220083977955890232627387613430528430167939311871829579129717529738487425081113681571885990662480855926020941854734090973138447949811953123401055303261825535648386713725959365858442178665241414936931753727207359238739808169544594112476847244888634350288053972959271846343851743874891463332403588720680231431667672626845865680144304809155940703036410951173700090781410053911596149525137463401645809032221822461074237579663388854584204159356738912470048479306887521525978781738898358763870657050560761725057203505240490217943080432420109356851988490331762511965897764315446729595071032021097527240520441599760693175068940428889671505774269138852073026564976155633600133993352907157087403121910756923769562916538626516498119039466430846603395184106888931629335075820305212564023258667242295742526508250284984390407659004694412999058870146516442891193416458689890710788847621243874856450088541513252819199050728953183130948192716986747070774302578817932166817438529736973670863632501151573496471378191846578183317575680236556651516398711193324117773192418015196848987899195893037718584471523405984906581803040215504065307339909395491580557637988932637239949454110027238760643063318246162938752592867897794628173569652925733709265538868018678720806245791151612576230255196185794206010168763207313750831513814082956907962718761179831187115820733269189519158457681190312182372105603448826375402165484245183517075095047884719982060285258181217276619523053807210760301563497288772370828044720500981489527819478817546267131647980436756851022247655999460785063762450288664022687810020336460236546350005614863566881706160987521459795893665721573703759563289667892193951469864562068274070026665924376626645040466421724064755858275794957179338050107662746483120966541754661115024506178597777155861389112356389345004154011655122147636278413166652132183301932284379108750817375247179359637355770251198524705964829043520887070057784652622072779326336453600333517540349739466370679655412209751389974914821516115175627503668192816232449831551414789570282915337340523146849671648928450922738222321263599979973750714698689305713850824352600598080826725396101481751415390389159089394879602535951516309773531615546838498266335923508272923976138036158626863882263813934551984379742491907519814175182616960777864366288264184725702608000505729314229606067671171704554934488880369541229705458409070498476891828926340711672995456104102738232802144980334438654968385169772085363656848545401322401011581080308075458844921778276095305843521600593312722551380206443648986771288827598045392284768881224940667367119568034256947617420680071655814795022263398202002351334040590517510357170736923915870080322041749127413918042114602230111519397790269708467978874791131757720654677334312402750200160349884723678338888903620148750050600206715470857245797299407080449273589720191313697869426972812440382424565098547838754413652481902522432391367358181371927009012315750134266545652509642163260109731503464806690953709971628161594344267335965471622933062909399910155548091808058727604035460791068228690830579089428497054932158783391100025778590196639665788003184276546812828534364539914936288544719366667292091997293897015091661402630444968467027399428866531449706708029390666305432798152126013183988532888388262622841060613521411213908457703153617506665282976333369964529614670296146682509086914956941755873864379896264724949491625507442765505707844608193736711445692725946659703793467363110514467406731652859981045816890753344878185744996392337546978214308052557465987830451953909725134972834563457345859193520397131497833083783127858334925234742030249151552518121975331548961715106212424395274149084305808722540446893511107556679532526064525716219273724425996682108884918365343054115244025587165835656851071286871736349552395719963679976630902399551128754112595473155697664087823355619494369002576476627263355694637565976827388208949046871687780109440581210761845415398129304948700938007547172384095671082842330414640126950377233908797208232850774588825548279175828977425695278985396312225654575177298589337026212017217341032930078409013121966368267202136140803830480601732424359325085888203225241331650325776142571311270249069586989126195088518698635939650027231949817748147899382885024110692294870563089220445209457501036570760680672123829761694156278589566563568184732812582427214470456418308050959748841439386953224650211476367397061238140265251361925223135747452325401762134476331127347376320843009074356242510175561495663056067598678447097423348957447826164250113101258754126490583242689631182348660163124449258881644293270023853644497948096382072510051120359494287300735331917899690881944980626805251577390083653940791049962704872932534654327766656578582885861292210841874749477815520340892684443425251517633263884347251310457165677708114500642975447034024449457810744985241579837226269212468808174461630616381020121296393455956563388808471481900337772034988543306184904432580859520347283285894542875763379139197457055408903535549703925208266717007077895057374420475381075609270074410062851719260156741136357103711159493991087035178991028026443225198731946934841243641717985195895777574156999855871205165270948494949809900841993649466091476655002426401105048506825116739709740822866583999673169796029853373913006566258331580297273128354126866893118451219421481991022797189297270462844687580537612995323322684779570288874900150481073793473047298962037615727791876310294936042926764215513977179139484772564678077431728185382701267910714282695082771577589802182279705662452641468881125426683336895302289567079922605243357276862293963469449132986998093527435066109206681306578342449413855614348611014030935338304875275885644371136044958591505933984607434303341277747917140475483400868917127505631954517484222245541690077001818689074086825533168660443187147000066201315252551636327246733194260651267504780751433537759873518381724401465853506995302081589453103731212242951600950764663600508287916802120479086380684488194630062617489528009135246180041510492321394681933053782283838971876243913561649799547452330259142714295405701669981160736761381002913852551653052189270977298338869794137813179927844223197759975933226293958955221651188983413620230127705303815640556860219369378271230469005820610530759862970870446941771981207748313333966731489463267275223794164015467364251194145179804347757634372825258287023262109510341451782755071730928456791286968841959087259014321920865624524705289459963411706152184219560479072157194135236092789377490007451226343426171417482372146048256564394011258364077028965542228882568637146015777653794677014856504952471662767290472605152233715458636157149611430627260702825896594097021826803071228357618364195068866584202385736036639389985641009032408736535830312534470441513082748674930777851850238222881950528164020903077826198435840479217367505676580020663471860329004590682815299724611739003365273173193921975007723029823437489996945361529985434371032032425457176824896819473797922116128671687730170130254374389462501938105482481307117656990436110061351617309088102419086019161392879032612390596473981272853410914616473419597139234259630858105112987223470094623329505457194147559987675161005583811605265936519832938534253306793931650589717158172683985083781231687552275928380462893459462060058728767573299580299262588320679216252938904062543365438113387443036201643533546206481952102470178994347031306266786898747040350697578581952350469214953482257603928836874900960698884395950476138161923091382343531819238238710096491431888645681441330397550444974219287987088872340278743822077210668889456442951229300416622853287225231661859348400474875300213006575852527781663957054405071713467480349523029913175261847302120560185909529076626206004542839403777579846805435886242466978365715373653842544784878681375155769730919972327735926679916450045917655128121037441306256319785220026415593468183167380771661038342705078955847567503386797310101359450864998522023850937312519164287541761075191582075041256247894517788558718071462141271161348619797066710902251679543827521112798770221042350887380200132476084165276211350411228182675748743750680985776926889518497747565036967375719103524878393519460958998777041754182491519312991093436205454289289859291613992611677074595604476890853495963126433236002644833441355739638047058100157988899597476012965520457279318891627589136306033614856981672999089295433551425151651341727943321764107603858232478012823222332831002173841578226003962579301536545751437510619749327931020252890222893132217226001308615123106820068291665679227248809677757506045226235328553278124982887019694746395748821076270185538096589425617460294880074674362489687466513866583082617365192312414976646604156035433869780360199042606378263115190161986943774958178768465567216994672841625473707222299263093013899265686918622848423736978076911578385761517195832756769070425816146338828927214557062192082296226615679367359171995243527461825944533747415858522655737625145559272572502552812520404891391198117486877118749781574409086441766607226631586393896071357064287003528166484861105836494747883769795180287416651837292801616716419018113753812838354427641153224558806911849506934210709361185807738080983787609161708685214757616474693948110418481245550205554043301266113120872449204378138411630895317875339404345875132358432563501002179394607431455778575174588808243532075823140345310097183594680857426158557012100941405259862186529380516727435352820790397560603183033360424350131905981942816111426989756913095889085000244249791629899823481635751886501368661417923439059678067953219196043492502151462949092382473615332237071682222269142809684265792707879819887379185626394688330900349192131160675811851455775300618041776276890410922336935728284930636120063478074796544630625138356852404025426961045925213447064152145785006847464860506028600069981654968965177573988002984730189577339304660909851126149260788695754382305471101907583597887844652406299293212338234317728514845719460121376589510479750427964281133634048750211827154873011062818974091325301772561896982844869313235895942542123493454959668700405748095775924339225483688845794207602211131209507411858504709384504288390048776289783052153834755248900372325297334170381332461045733713900631870983292149128085722754610338512874828168270260329274690948158999109440751231942272955319564433263351584294591032720364366223117787186703891395712347732019159143352861405729700490434837679938119716758609660224557972688413502286505405324071458697508718706078233834343540012220512622427967975857324100012242692294005246111830714463636700139395419551996891555090555463760924618541514163491645435966842786117263547476160037898844247162570424023090056673571820078178610713144661637573731388508673831533977275254853174689110993450163297549228827095715481508995611595687352919171654253050479874663505105143070203963160966059758966984573447653703458087981509207955277116684540727994730365842957490353509438387267131107705884971731178645525370598203901807055722697821943793413006068212438651806192442416487404248657353370195845551490448654053203164286228928037543357606471818347809654327498579042402140928159961881413842766875733107169864573019779483353205735781825036272136915780405629054622163876674502593188733724587552104661811874768489218183951209978890826533290054479180258928843515819315617792345875764920151161367190311517631578533922410699977824689958441264819426040964623787445004195428209168831914612099454636385550717160352981772408438772165281081938477847895824098947605972077313328936440683367594281711722566857434104748218487619176529437497955890573834608481959045842061501870573666492635653429611853661384718720463962231665856164827550952249802811911000970011433705683830996195515694116772379927268492387399054842858537693603589859864493029200804877033504815639907587763321437305185719483239005113455599164250348286705343125258197319954725691305895866822690275113838572770833551085394944365662859998136910920724930801335937780213266304194284562242483473019189964781735316001862683125748888969354369050750435006150716003606082198646007269016490577141477969042380793926405701118509247958396028385836148041566537573285670193791870327635536271957476248385002095927916366794124863957419001542459672893383053802728085315456411154316093668169714013716169525637628455567926533333185136061309923140600493644906706469532442793469980923380507292296386749421643842966425678279401900833187042505350467326102359962818735294099268078787218325616448799105691819700784028755082646392325634408248742737852408459748763183482333953267300020995879206842936853877229638465812596161415920393827624929581214685447472444694871989363334626247843522337228241136957514733869610608650021969754603544847885160545284507452672436985548437607579398411611011486959383438331537344776052370648697027462784783446364228105686132661492563557442887038617609872862300105871919637976154329833773813638269446082180788700413408769780484894168273635438187926138230487914136813103235532399556366030845620210071368508563352705102218271634400374792416472259572691370043519474488706036924100247895535101896831098190105800041796301897557166329843674430494447183137656032995925097383325257198498083046223919674644423613398172782887671793676652619540424536906832258003016244520797302711894000117069800846829720264619052082249416945098449102005198104019020988492537433182263260662351901308693481898260933930557277697433153809391344425745522977490554814847177288936272360851745386782355122157961727567464487655757167002085882861778797130059121412454011131004331464990569650331122032846182487928115644474770002426023334438445975216975464471833988888561917904900508814863723964828815501444026729921297647139807580645074013772965687910072973687590624436679772973186443055362514249280071839140706337428503430486964421615107347840282917109108871217044908916221717728621383381655104305007155301403589655518938787292677477768346930640967417098967271067127913311046472308218541362281973537816416316115657331645890576512565115780779561137446077249711187544969854791307029215398147337331360693940293977040055732572145618964562251213710601051686629550337170858910256309792296204032993661683947275521490433017965866009930230939479141747311556266300280290219132182671198424262808291966946308569645350569395322162821001746443764599703720384245906035847406832973540908159905055133312967949188977344081323742082712927620610519645218518729139577116478695725378891990904854448178871596620080961193148804378300002478256351298142960700497824245001393475697766630805326142030095326488506705710989288841593999906942147359494379474809333547296757575995181119615231045878004833741441138316631567858343681920115236896224376473612570116172638357163955700448051461882528822758841345351496964532089525067463537966768694796953143133025399276609441333176988143963887376026472729588660998615841704132078626074749030966883134203951961032861569837642712016556538317981362491983513515676097392816320944568212266014141016872581334758210696422014531846456195183432764601268887733837746770595270422478767531560390166473992696361396721756978182138402373556185538000785630669733656294962865427835176155838241990390671454841696515580380008399547724184926287381793690550121179684685434384429856717505681784568432835797366886094169710208030147101236443702026837298332228366733858470440060050457481634037899055015647778621921822351123028195632775101224730981637979368643252095126877610928501930113465158787438880553108982531897059461231928418687753964103703347292013868601790341972920895506695832013841557015295679145227203396100902876953578932612004232469978294131667068654571899313898903270278578905552111474972274082583325272265852444182597967700178597298767668450897577629264100694309187134445787114495758464628911481574972925987407343570830280712785821407007284404696925528577671464865191778718474862620704509204956313563689285430633179156546071016239104625403612769352222867665076937892966655592483403650133037483727337807221814722901508827670287028426332085256218552660996469307078151261212717384161151369708589674890677293124297992852591650893709287238347176091452573993402322720381003637398259290824447768640119542558936697139185506125615289554249108931911446402929590575364069763738220646298231231417204688909290173419398293786974259730762924294114465479442086969930416287968480433955643822715378135195340459881616301852642016047333055647680938381795009159725028741685600875237336380764902366220622075046679310396585468453857996423868475381709456278177534468139603898380658898520662778739902654159975648125396552395124647395921040450035042072084703817399308033894465104199753114003444751560125077420167016132747736564728284931430636593767272350310437213419608138640727143738394063115232179330168972583521903239563591202376561776622932377074791365139166476500344669469332528464805608361576747657903167212494061070553618808329568455425337850983170885520714931222863415614613127608486082015609766134010568352626538270032269106977179048905141640217959931629632365621960213798072486315191529938848670165926833399318217779887666776849610037348965675942239402167215774147229308524621399022731102747578148983381039939756461500411014558157290136462558400883570822443955643528563639037694029544255932400750743644646517324048310054586103759250587674613255412464119755896879768324276419331223884374924935983677532574774264977470003658871840438918401368986055029038852690902103094581006678382512333862239979816260727114197495323390731370815474199574429406967674897438717769522078711191444379987234392028017297945932256468259868184115029002889250706397758816506772838420518257032108176049196249317031317108185420479522781104477590427765920230424309076481019224605441389624044743784202364142863811702381433745699995817800363845673532290383505337938434330783440398811777533650938764557899386755987465893060756601480276290342436238455529817883307401833604630623488497525676859371628744466822394854020092387054821844334216491421330314099934312513307502218964238152457927630764037004354883030096727617860204260534833690046536936416301233792448077230492059963903550431144186230897726909871675919779147462436992628729473253717671458138835359915894058749462935386065305989996419073012330815613338887083546639336255459771296426499021012972502906696203677054553988651483326078060264836260479642638796091912181716874682253996930328832746146975064002027210150575715792900698866292132955806288010227765433904697050773693328065549438747334271324128613894776474238853227360193453243606954765721410660113133721395968259972479251427796669402509510312619747326619231776560769974766862286035240186257948912196407691168670247530044702046754412672145196488733285902988257765919055750968328112065664472098341216567831099799789336227067756892393683413064059495507726581091235411666755921748731215919493740219518426675912101753919288476176842834452175547858673445122872424787997765261520406088208417166170732001966676451444719372487211373678257629642097835532647960573635128467937287436097442366428318852579500285934605370443530009712973681143341733637385567215062762462665893538847358477490661307910629549990865971245768817693857320256767066092031125492274495875145565748029240347284224449893575717814863904867187216658049815795724188715833290504459226600653091724244126341190517259183751761551974517469174250776865552500310402085351277326452725606709366592636015025201475714635272169331031038637258161218220387214194425597850386716741178845590684226955657246583059121590842500674168954536128248671993778231217903936267402265889936801969955980688061890123952299224073117178905266740185607470564717672429374816452589055485212698149777003327951158629456631840562198725363082919977618700853138020175270164554468710895974541801807216127415552432977951104041809124245541917940437806991576420420653710986194081964981685300698989420126503585800584242509126627957206138495133959740749315025869259104453625091564653677429059810779631361142839781032606231906658920425895963496534469642207699609349077523941463004912401885256551801016543342095658169518192954683376506828513992258555483525668864867139416200646846516159649993550748528309308842608364758242349775140888144515549258375396091521916046957882790427405811160346254079213968847853924226987866695467856681793884809603823221775088520113085695873819081014894886405750271710203787150276687896984074557796908741703058160759921081925759732684310605328973547640052000308604239445684751016081357553905084669140885821663818515886488390316524285490247650866647383667075557913378269518811711039227259583395866299359096726074234471785555312666173230231115124754037361002281878497288067933527671548209534701863403881863395229179590274233018494082661475320010477657221470011729252016488414647482366174255548216419648014438049114899849355984695643841977217693583417849788872416856651060599409355295839903861396523377687778372148343917656429056654938807102199620910627332240238723725184981814444199402972198792533264887954437336030971942247603663154168709202824456584720113852648886588227005797671663827521993012618758745830397435372940811920420048200771402527580293717233925315382948701930428860564324717037640692033091165397877010200090020270818202737170902230323909947086736433624029010807673982142976581926464676411742086074902727313433225991286071738879842299979847923662152334164101875013079203383701938788797372038411842834187723807677532904868700139375615605500726914306344494260421727988536587634036489726750282963503476382474485434441256852231843976500377762172956063505126575266770154603302561322524771121135585974715739930375276011627886755425167510207768126954479873773423949515367373012237747920110832169727995455199582730936808219549913796792755101999394507327586049854931953566281363721250032162722266992353571922121462841541729101471620680385795789352584251886000990919494467895616643413355107752805233374382457295911808315232589222337091962130261069477346282229498208199379537168700394833857680113521959664773392763512168211179887895071884882014732059111941395366586600636396346845281625764846072627057629868696097792737492035436755649961287269321169269234757332341190335581860880006744367193467394155310361860753525830007760045316867688356886212679656115197203936363945400724685495262133444916534431799945255177853477074548194496189968129720159855203620711847846528392350528226084064425299096431727054659931535717676213179171748230175510733979453086543605645134257126039927229518256819807656325016663066284608285196836906027486804172943553492581301063866184083319872565509304058818029408013522889426962991911927768792223036987997971096067231634305458216953530676831302062705849199997815153053565600776162251696640156604678970679431176925497957326290952738959785996310529851431023993857262445649750957138738333246112368156735861818884208395493494815046068444423656160486048527349561341636822353644135949364627471320662398971523365009834626668903617308153156154119565037678333918592860469432198048869838956996418565845456725142045111187637890067757130977221765512968866021394328051462210118823662314012198357991685499366070396461085152540961484932726273492985245774826136664373850924017993000973746266689268593683799017077217397105863815821559300238183124912769987573360693948748453236394534733207649046326563687471762394398712677894501603292168974781550559025456837387148248160699712395715176301912184549768753952255235112176165099123367760398237880747283592825923009824495579296577725955411039971742384251742079505152124785594183203060779889277918665458496123609372871440620093853722573581084581796869978634229450667173232252266017068989556937171285098482741016606199836377978485565644458066143657748356997205601602925249454124064672764353091356892254238472209057250342835273450093052478981731787150242094725168277119696491801662669394176778460950999942938022797090122918851091062435206969445744645483142151672361618978765912372707201799135947791193962992394943747600404772232168100853130013441691417554480207948537832473391047601132738780404024541362064613655298858905671454912174447145130181236200070774899660228150604600388746565207975956419223454596690701765734389889970851667275779028632940897373279382884985332545616502111679994508911718676541337834205442946678055742689908934099577846826874832354651474690769170012655423106416891715123823043167906855495459880773511951615911754401543529467605675341670974973890747268586889206277080026114479753685724750165159332998746301704855387996908137787258262858066019892193857174146971005607925186242535856179057941336968663705634991636850109765533955583597115356643944448511366619028980923767164372365021885875575791648547755024402749543760877253218418878501567029614736587008297297286137188665399534415250449487333727082105404425394862730503479002432896446933079376789026471781484024225995780437039166556601976093122740834093918499973344598642772228831042081538479111950144902008190276259092284677899749694277862024033720024926790732755932628681636244775808810552645672546041631420203717527643501280300823214378151418931435283616760836367711382512306271531551591941252281887988092805737445850318657990774377880942873249388363078311640672213656542706570833317722736290127929110482588835761748368435039135443401580411844599520164219353755530096851254368481460779030416964169051975191882529171631062740889233184305546316221757122566494602794830977296668993648880423734585429609040773657283033641799795936119404226831913340133396878182001340037199644406735578358987961280794050220360016519409368235277941848897695543789448570956674106479859794214736096666752273250792992445139117839142978262991422964781019410474220758459068586396245054279365621988037210437161975852535135729854180782952837439759524861058102825531350450155173982135626524826479659691187420989519364515457415754800838887040288555213574581507867152260615765699905693176503339257630454426342518018121087634405547196719791876735997905808977389049249005434741196904923820328743049948074984049596128110698366472080142300243956418259349015911158583686958914268922608324723978091822275397747143114567549738748460216597195309735722641137676651677375079991656888875606444064682163816728151424019568781208782272759910420064939482298160121212630370726929591119754716696672883970551029686074871452176066263401946680746562428951529628906519970895356404492569406364329545472742710303335390919932258081715750527452005994459577024673588022631655984173581768477279829689977042830595998530056390050534091125601498140982072368875616873256502997596848917361688330307116094380787792362782251441553314547828100974637131006408924678495832798705643670154514057440265853714929397230411395276609028580528583392366315479055888174952332150037318685372025135166315812984899191962053716703199312705515847546225347403102512143205443107941507771879060396502815969371029283427938668748891668868631240943324634133946420685906965875764968902221887399451145789342849837265567114388120585331271353646146631622512385813616818354572170167708202684373250076724246833602823867522940688546435427537364615648416944980986490052571244772442242611245893935729282903008674397102596647286902379194201642792317373144532236962233121152235312512873879518427213070101527572723024501355620703505419546243336469238584406065895811026336224704222296785113755000822533450093987731642094229325005767078574999640917619037478672594157164472920907657136679753456005639043108756899636004706395936843001812822731805109908874079656089195678335794909532905713505575687203211260765985860278720916009582613289952831559015987430850602563291089111369135561498614155580969445659199597864709640396306310103932916983403908659767035893780259393758872328187110236476895163978934238521391874689512556722092766169981252176515091122998061110936472416458624620416279247388421025093582157915857317912962883262556312326677259143892237364132882523551377478689317042312899113420658863955854836260987288116641811847242675498830452799397990575152477470659811379157871607964158548673540279476242796421786927903186556924496127743322215231722467858064894716273385523145293497884694340522986848049466982823177404707162811109625817489305539005758549427516924767518857608912788756558893111340003239350354985923866077865699027631897387676859872101750663125021324812973666039098948122142852715268529884489886091149212526193566758687320306697762290530358486910515624157468354456479634159607370189096177984788909453459600175586509460783163355955234529836422466651763409743630476010516611372872409727303946813254998677643133117115364877488485062700763928505765432744739348515456096908017962070937187833313311887923016783985328849447205869699080465007107893134056605271955473659902210386195663808605505453510487150341147981664155206973496582403134407330731014375662815237032728007151879644471321143547142855304284609434862773392989146089220911474019476156394630781797092316289651791899338782787682201275265210597115360917190039045321073053289522409468180769670693463003643790077818476813665761509463804250403744526765510208677189899357100638346193050655628731507736767391018816685877580506231893815484821263131316614485443824633298073932861433062949021432863130883306961464887399174046917901737315777185489154876553078497310273198395647475448243926700878140601284708098527764002644204383606555004682007634192975570099191918348509657258787824193504027429143346419381705382247092509774491426250434022570017016240030267905107313017904816202534466025355307930115486169770350375347006449743102220544198708949529996240010296050454242938827005215899105811359548722411294222476140347128030431097055001215168524848035284166611230129404912160657860413148741620124969022392367004878283178628647864540101509807742712271034002184993545659065629029537235010942139367547739164345767894614718064253470628707436823727496176187458434988844490724800617142599910385876152468517393934134936636900343069328696425829530953549789071579297559248652551941960295502094673441118561459298162322754123749535963409337223402643071091108351729807710935157597850469570261935643941308133276687244977021004900331220851956659909105651494439824486150035616404409322996163406156904034956805081705680671246100699156277403445982723543600654949868396084300580830475992272695935593249641270451177776917261965235734784864500763466926488978305968400120517829713987264000902370200342243531005189298570321125685688702898698210225982582416060355554283896780630278013621778105992040413919804936717984892901709179352108825574236251104349680451371227677558240331277645348024894937918267078905618499108835256428780883971270228870866312855920664888364779107209850097907647566714587705074769509485119905524842399017645368084925938949778084210772625107338293773417042562763573238068989678377572141368489116350406948522882722903817434791588367365528019527206466845207355688510931167393340368638905440156752056471408792245979989251761267267842170334711390428361827542175977800595703266510494238530807415889310439838512042668181063018354414519259415503567032999004271039734959693243863215094215720235098009372964307218733153572201503490256515358688759661282959018443479852030851038154253854190712301270036939339957603235250507007043601108179714293722667199751054941986826481197756128527945508269343689684396628262177397199002379811608741060175465277249786652586530531335781799719358415112531569183424269308531853261883490084085748542076404431298015885266324429726192071668316785796843202493364101268000273029673307966296953961618948354390255983090302602027675494791713454083384034280813966640210322043753200729134866386401439216199205009220278646464122631906800337402849489872793344780219374833785430608066800288102542278996888827494510711736103072090773059892279376714057650686812635638523223156388794509455338453334487646889969215163086152561091110158086325297939218675384238850172237664045134871112353239086658359902253547933724451305634673862120355541912771504798046646935042155277277882161613587079329609062980044104116431055696538025741721841097272060911013309044611328185091982731956993564802131972221537333230956941774775264094418624986753808206786557661215063639274636451166579457320426111296204173533427059135703512176614352998424795097446712731266792198606293639317993782980668618586163560059216792648296854727987104121453487577805966780109495868215518047693902617440092187348359208217623840358011886708536425700216368805032886458835387778310757210148143083649019978503690204848974459364897519162166597892548406312666979515673363358492885751263870014470658474946647290485441363222966998822854553212824720379315181526346742907306204948115959295134768802088648551010497025214982026560413253556312790404837836676173134082380218894046665581438840856771347829306326952108648826815749970527220555282336916134503630627144000453195432420310306887398070943434355420793356511304796117483319364128586664473448325674118305989600013419308062201289127917674738551788779248685695398087877936512247435293474219597552506854789588867097193741974447259326464200933516326403274449782133710136550768272067678999016351198919202422110019233723065345571621679360752865284406972705129771980366265158159426254559729017213116070701445918657787693697517717277173825882869563371578563038055861439697029790121267427127153263703425366771967710216862477769166169378686611188852352964794970831763804574439108790414090093858071813948792798711052164029835380889539302509191573278018706006770140705365391159831406575993277494807812154631013418303064254328195804721185907076674570307194120490427747030829551079019001649052924222960694250388652239592862401515649365445388649841891061459985110345082178898571058194570719349820502289897212425870057766951326378487280963499926924811398671713201353588469252148201984785482063577325009136700757497909140286666259057440267891760209287987960440383987271537784861564525042023950585434794598094932650742825681149846548057559406903881732622341985697749223596770392480960419488298936700883918826275911898772803730339443965342928863095461585170585313560635866221745612371640733361233395609249065210824561940195443880086155474806614303874385439878949864454184821685440990866953383938629020120814953920821010604965159935014393128144408525324096424473968238413867040862990201423527943470580512014185928252721373166258596860159738392389675375090755646822199128040716225501263607699873323581936728523193655961482776845138384872504584368417499424330704028333865788842642685431257303281421439960762238015616293022158048332253261841463094070426761695264005912864303832463410472423859945310937806502775013904256932302783046762195521525701104618480829742735359413495934807744701133302211744283724962387437333301102048966353463438323195413022697047678028149160123356955094436264396098712172202355667236531955820595398206402091636208948949793010892639508669286460653546179007514467111999043254772871608288536090074963236924455280405448437046664567725614991875960748939515732556449785114216490527945801893034589467183562730595496458494360571601703295497620905232714187341613252473128017614747779020754657130457371541092276789712891951104593338399379566577659532281085396355832252483644421134993420780431389314677713811309173904422078253138872184490317933141389160505080441911045161152402868231704030218369954337009867442614609728279096871407887047856288354657206486810291253038452939025527572132408837529337620455323364159822905791857786580251184551110663194433916827985938717771023741460120958580999466591456834116202663787099296741504673611199273996263416553101040244849790491916935835014762353936971786710031600433818924802871661783914246508054009721960234995816979588224420652108785614012178274222178127478281961390198500450455889117653981195319478800808479473388371797718246065796963932689485025614632389995603969957761827440072613230179502260663211529571483719592482321794409101675899860466748488145319577369082727353434027037008542336408966705165265080604120284330010775539176298853710104926529158626490110118501182937459792880003669072704568884492430331787084016935352337185123329360540401685361295799463875726108269609505551755356491166574551797394140273593388195986346395843110391822672200428523878093989075789179915292377715610673057270719339757611609768698427299539033829890304557083618993223790229279254834794677163507765894744469941119384547092573328284393382028918895392418344927707607524762634728722292445650299200683005055189037398472928199530683226820729634557240841071011604182700644533102892059253383792294267108973876839904237959270030783589621149389762238660840327975380786773695750882886548176136752474889599580409710808639942190949753691959588129047040246086336787414473466639126077903035053899263837405270240696154632079183473262559800864948610828143201727688843171360485191365672171728725373390015420027634554649397206003563021392114180269003946210716537535114408411224836599871295594703541299864399554368603287098635223560720906602840502917467355449958238091459156910532787863447365543761061965258069839540359784635294141026961047315223419456798268994530464849302118022898413076761409156330422669442239296227092734565900745457742543164125909988043476670755212246938868195087940605586332124370403767767342400034367514788796183620770327674654450699760481939126479987222234672015792108240805276993884921346770273515811687167434061643606793108530943285756342349136204488986247099182680982721311828742431698181952020825754397492690793134478243878690201454702712915847773921311108927921730591888578182680019828914828386469668497689767847135144170742104285653129575346851145378678863166624336095911134789212934994707819075305578140972867754724743027277398686388994081030168975789858631623481815864732194832719994808731273319551349717929889901703888800826255511337462640238171296478051755922783268562492458442754720782472264394077234380697162669960094677413683817321525656555215136005447126417376612430706743996201641714754263856293996188707484758789300506222523521827928763826146130168601596317036342894286771612018863860870078788114023604865103872096746652057247003866992991632466223662871457199633428743355715692453672171582082885951792779041983382198901574888224528803983539133207704190423230760548257734337113237399719995970432514821593385562118888646699833102546384614593391599213344383134148035569620906035829880409703174835809306689326609373254597722606476773156526869180058865549706015643109590637919826242986312312078509344089992133371094354514349154874239752483707135419457475085134303565600125285832963331734488023772924236430248029457525913945551735214907083699382511362799233665029025775373146999270529603334613406601822337259758591585563928022219160454644856637389987063475542403188890369479467316435081299808354942587590358087403615492292207558406588088221127678487832009735753892289907200386807265619814196172882979060246606904622080599946497400034211033059726153014224925127227884593072489323186297234670610422348152025556414782230295739382659113283785232555466454377775247455187768254731605088379048852762183843908761982046641585707578132890571881319714082762141819942220246935318990486261668233866416091741794122909793641853035128621079616307505088005794077018354397328514263221668902499430033925217947140209791600678111016339442770029746848264530901609302188371458580894525252129310394793465695400820994453068221219564169324656210579041909264465776103901352977269486702628468559015754604560020707169218272977760753910942144578278372156742193501349408361865550525078498718645560989481151940594119023261249177759724796639666710604770811674171329755667581545837494761497095705778170561805280090504403389312550697956878772629566377418986073626140883346724297802118543464767698368972715879176663838166249184433628250933903069013490822000701316939948767619169400370095496046949099942658378365269336455020006440253667643837714958480231529163662241384298490113202310674187215229363997454588195574744169996471031269204730110756191425993557064132365848707888681574454702660008314039045755045529500473532775058248088792396001122902762366563935445883487899398784511039909203699731959924108078125510354356910947638709676198104231491972532352746853400208381249975656892143228687217439840568811129084584857100734631278044892093324058506636385809263769056144283445032190684484040583440936949611351395499193666142350474393219705969159758838047088193029074577877109200105330545230089947196609688823817410626713703919067040588869878990613545618269459031673319074134563409994780013303877170937042404079114192869591375948011044044540948785644804434788214178835837615904843796759090973627365921463250858322123632915186186330829772920475325183616976451785163532235403270660443617182916525987763487480175966683633636236669788514540334293706797478137013230948761936672219892817336206416839802672667136190889143690169493573233310650305151377856572986939972306204038437359162430965852023750422321327508161490063809908658737615900806637040127235498091651635187768361562513022290044752962765493095974902146130957811547774675337823294041661082905021491837166568763454232865256548940579488411556367062347129906560946527801304388884951620747771991323049488818715712822255838709623179187914152369580753837473105004414937011886863123519257619757227205918633577869402192155933475119457220586278097657758537439054230667342208184155682642313309958672635818556405304807611300358734269738272716428197700909198327972694799210672998930675679170465721822284587070097763904330883753730201050692932190497094455641338148404548377411389221273898313374140537216242684902467849907206354481069814221575360025822196479013350276162683668675240001786547553530966628923166033834313501711406318994271608157033228367282541238385567200323510122828572444280600946149458888995325805189167465314368256240375558750464756015905359214744839251755249787841749618684025746114919763900566641626027190379313543864542804760633233986017441964008285083861081329188180176582013363051989096179111246153171922348547541627176474903036159660333152179227011807378010010516649336783526839140483749066359292880689387427981403565576994485457397762188130468334444009300510178897990294000722321301372662595363824149366017436817281951912139338568105520234086330520146618523838641639044491725699285295642529944103329495381110034610954111443506008666191428727180153148609585886686114804139168203468117679191605450650868216024232801386060629042236818043236197492538918328372821449097739246732112072813294030877631121464411810255929004469971901965068297508999361993951657989232484432218427165691254856031309255855440700001703840762664254519578484449202471565471325071928942151659853262965388705110989942582654586839667496445296908950297410156614295933562335138091444752121460632696447361878637369336251923675098564228688266953665624016726946991448854891404918248086951326117990292128657738144787703417508824436351302739963837226725330593079826138416806268841650780509376945150811570965445087435492873091603820930252077660579344175466953211985216027284180657775186284926376006582308955755750327217357651257219535212369857072633761689497529701264847132233626491661419843939432867933584520685264604289134988838458292069480573018509007322017256098725144910180934077942381509588588218343605783113605651958831847214455482735589068901170447626474982985498227054578071550392251805047110022446973862092088293761014267241687364128644785358513416082013132013482105781191332731708057226305774162361434032770055991171949584908204710067380105269682469768378039906245513671358381620035603635094555113473108260218161567266500170267404336390320834495994717631503133937809373425020737704095004003952344616717953637173972537883147447186213818498948609223572117215853993687941181056975620560520145934322371778931590591877017321227103307250211264991617309796977693082626802215019049399063096805647602566210699599989541578690816089345749132528242532338998334524100141420450096068957783074584800807516626782790734423217707039327898735096365754085395444510024901893164384480116033251460520054974481841210554462832612672162143998021656845203894317521234326326032514834644408418595423936323959422991942100973110684679569394470856719885738628252622414180109465382729564096399347178689317426617550828577994238823886352247242851252020207317034651622889972867930800828664613891816944015449726630473756742157438435458323974895898381639386934101642582938009253710490422732023628250475855127156707083711348421675164332823176753772460882684100685688435810716150716806311509672266832593989801796664617529290564266577224704009312632268093335277920430527729557635141048137665083797247786619220342806125343950528750354590488543076904093805572704794371744632470720104702038273162379325531810365470940907562601969223587513358961160212527747837586676901379599634530796402753482353590540894218399501875275975800301463328875943164453943053586731578201991653578127622617481259759924101525403431030454607631426231084286882342576222593578477299486578812455448584905262159489096772675985785862776744774157982084945473815461756327363791966047592522961513727229596857998921845118646317984751655630110337034868749334668740327617258890608927498587755515652365878095390108911884941812786219048584202944712464057871886209440460139625630187392654203373811999878734587064880872421885891368177447879649027502570186795674646469012278565175563258670532501191750709634926722143901860983129507193301446612061611880821437027603033957546002893760787888355411357343846288147891836716188499152589990068654211641710151500454803220455657571747284986191552018632989884399841982945677031322987287973552169365357177681024853276315510231942651218882063985620208177890179044649811376594994438419880798064089945926193864511106728903534840111007589128184020340498476033408790927189085075539289905394394443585566830177381889578052230749818060588140674298106364348928078338256474005221176883498822245598120396078901201367153099104539418305441906046739333858420467469805816817924477985088410394971940695413111418896035747887648235272149677737158115303934683568564206132585829292439560754294186503050768153639666476140450885428958952861704081765440760834975697576961980983876108098315993917664662848580199432107621074245516902480074164627911769558797924328154100224367880523709709088673681372094315643396644094255854599281903519781018304801184649631679563719375897947091784898342656595234712802979262305407963668711683733716587338364520713888631034217202881470898850533912385554158662368396860923708400344661997878601433215464809510717889254023557866536263035377740969405003795740637290099261517876823176304372497146644888008231168607306812525954108853332164708508588082354016542460039593862967634089389778874762022593299874429771071443702156915052303720668038389534022516618007655550512681625044234033247661192386262187194557955343228702734062627866360915212475178611214998636181582065833929524922152229027048749115577552222617008675384413664867234056557418941608459163517623127409054845603804710912797339791255523534917884597326523582928218780255477107074238581430357076383455749919367664123130812246616095729505708286620705477374103007181545451392158239785402096111722451128860851214498655825186389523255723077326611545994155347942705037622318108907739985960740522457725450257660724215851870783258547156721629037541803005504604162808010110176343828732240398147497479585265612033646932411530434737575763555753337499932219087814357433328163969323407120269572779348163972199138262040781338799418577376497997748772219657663896742236803102725430909201458206282114591987558436110771276885233658991059362503527001834831178414187493428207078471463287495840650963639820961489253955188203611218010505366238548122562699554350212786095598228955572878086440313407639841997198520098973101527055984150540725323453431884275625418657898055581886617591778523740387344443247325486006836759117720638494132568170001479639552638939416612418682638686906589731150713880718024238833389933892004174969899863576535619290504899624444428795969535394473593893791564233920299453221679026304734507242568688516863185166905184729222434798798747161011823018948825210791030807991093522863496704688749517924246180098585032633200597101470880912150030340171515268336256878171743819164427180596844369973899164935513749318538120268379052871607721814971504144739946257480205788153253962116634669437201806461207633541122920348688781378103026685360335032202187645471121225705384974514748878530759853699566499080063807385010404493304980042065526066727789901476407745696759919899492672722094551340187861175058452368786139143191531779029049862029439558900071052567637664111793606095567011159177041238673297267209775319136072868926150880275218102508188130562987841967523977641088668451661037452706295364640024841783419664065904813923180416344526935180690367239400835620014275183489222344485672118569428426491634000650243143230308290583071788406238609556418191110079033788391960999049866602721122861168335725317982093332189127008761233409107845334263347630613652436735015415247795756171751827522618007864912966306390744614226635897431361692745600578256724967330882678175101539129432140137051240411282202539987788068496303787837237913796930717661554452969936425019312734213686969377650148773852664886971047761630327135510148154391031676916610301083077734538704255913857545809349050044806715742387197397316260349696459010724076604933969056303744493717935739752976855432962522172565722383727374664405022737559961446909660855900976992964229186653392340113518016620748247082432910376517126555805498639878187402207640836930238104101975829006873512386266199926809213767340557050931439496659809049340311273370063557468277952289006736566184223751982801843278229397209828168136140803712818712870797780502124526334797864078814763701772839207634779638448485652252874918741175445563037546799700634857422521340772603290573465419066211142079258959709931135692139182187926396401927243889560220074223612289052911895208344671800661981608181691148429508711086427835751785647824315374425487935874024815820165444033434087413892054142843684474931112072700059703709906492464017495415155788240445665973895165559129759039495564610548822974248077149497510028345318779818778387815918435203665237711275688809119107555956179552571591603224965795154759714820692591072697166234939353704217626508279100913360950202664038035247175831424075340789714137591887885060231720067039356884001094170568385261658293997442493352514126042739313970367667296031923387150316032957572824710339675780085344055285542635646734179449842070762530752482457387222021736826725160995444504934129912617269701468282970084786172579304926468935538576721690959207086310373711256691138189873625379910893546251463661124546814350627457192349883613555124857585406799341193060035517146121037014333951480784786790173031016421843844500915644242700008025495973244123795728567015911123927335453182866867448157748972692875582196699558763774633520375314889900287498317791499601468862376817544630525312169990287123124805253055939017088606468224960466614211286489485664200165032216442184571377396458343813797198195836592810320427639862379570302487899521502705471738138146212306204215083110011146211034724707140532406064298975336727011703438725797002202936729378572186668998206275300991952446869526876946840452858330707107195482059470299363210965748921873345969647912497318020964552729773443999048850374466473746290934921222153070949604326941858481304241695099363820326441372018791992593697574866433793618143703787993195160408876576657957970145065568864555050142905042556072515536174922763324554289860090802889282652080568776338232260173634026034259806080355975348111821144423743945042940830356978462476102561931533312194586804139375108383686426423127252373031158893118590631965155763519831274759332938148445676499617562233632019130372171116147219547435543661313807069290650595579275563646587933549380897187589788371705156901699012823109542590730673052032012253021938855442717717378129305022807323693033364965156447864087177488587297888642122926351750986581166127351745755860083826773672577173714419989789773851408874561913387054468646214883534038155739547386959631197402918339819908341427812009485271757979790933191560888899114781265397119607225391399351377223890240927703364830573708444489595326855771979914173347770125012505709247545750645867205583494476549980321185769678355297688529168645744838129508223642287599327103149145098296049605441528987840583281096219388654996769336685554300120730185953195420701258879887977633064934343404579602747721929066485078601062861613848927677229433168359257157364890403510628447611131108316677799037695088909479118000234274030136634864579647818277933371151515954056344665069175809304323736716707170630876874576457512949337148347869248448308836302715315786885704128985875860011268562967022186231663423849153174595512666979328022250964654590907236132913764883801298544839137212491313933843568934790650138181094958915348028735022795645207377737599756925794040699695979885836116435495960794845705498480596358874500273361039497670613734837426693887656467345153806275639075870202412213801110432941391150044483678126884681463294130629235958194918154153283667640957205404935708000386133244622782039109386639133027510521183609556443335079993182723490334690569305113095493131911190062628046009674165711947531138896052075190319290032520555140262481988085665999920689390823613990084710152773153798700527754894885349619848486037428674687192393478540331795506495582476157339024281842203551156833440355471800929623818794436361159829465529918817452557138318927306631065111466803396769556393936979559870308398999970439743985957133919150844894545260180308137246583695586009983707306712482312693051813237889053187071255678215505270469999270957972758564276350306816687584476514025781451680453819684742045241828467108739746820552742763151399851805812397240110785660659593044576699861648924598437695610150595290431514098483664107232333867045272762271099363559805294878351161331451104820815514261363727783931830683805289842281678637410010632099303780683600699919267150433168798027642084321507893971488728412078178272971367557165568930862881324949366265917840116253020027704179723663642048422776274240315581526920220012837207489792833070506898962623153910212611842598256445451342845366290733049664043271418379957482855377995584929487793734711771404453207954290863327305390091869455225526008705614279149338711321571302055474582723528440419084878958083897423015755269757383170457678884192381646321983484094572789209680729393329785669667574915533630214232536463508684552743614419878058572153541318012055927223994523185004191554958816317228649715457257485061505213971102754301436590532093537381085095560935370339066583463150882685739831845931958209776684413459736290984448537315396308002138513083714387654626798723018058799817281476670516981650262765704992989884267697539399854303885598053789133949134101583944849782822183873334027287163334798036258562509268946797099757747498340806465414005413461968553737161139606487386556263004510626141329454963577971721884172052843965815200681751425560468354202579326446368544698908547684267460764624339718263787236383113550528650490273750054674687702426849580501947713155747419402190412430964080412249317481078051049708349628581422192445933169782825490379946032352897677596406814441483357351429078712359262865800396053094838851322383452978382787457542578067997083606195483587003357773986774884245460950942640636109642615790129490056563921222905237475168802071689976835614834648801259583219042797718294754373918498394256875502497332525783989146605505424624268913135021882284786815977174973585259134039348351561519835611634186997551073468253956768739009276387991725115445693968605253825662285666379733107474108020885808756218860213440799884841641160403996402265597183040519403895286392293873575071781529113944370370752187490128273877702432642388630881968742684131210703360900605852907677573823953800959948758756479161087709032863558265225572843021534021380346333116134520272813464090578154541200790208067702567552410242663644779744640394695946584645414120017593283190109731153288586262004604233613985794450529450862395734955215896777095530959233166859833028918381015464990034590459092310063620245628636375699978925621716933293210910053737372152618340382720985713490182425649090710970141288902136337832742243331880950637206981624533122530573331750787774921434420037058279358099123711874433673777289578537456621459379057039475098141594053367595891031872475484730940044220262762811057907503880970925807774114466537020147053632328430177154682397956316089969599245800427809928011247323832929909840606159936249255771032450130896126297891189877087084698446159919703316315633660064710809367368074986228910320903699417041127412267752841428195414636897884684187466338550274403235763097525670697488540551534232181978718246069740676196392828586085909755492836277195001655550643121517484615417719472159196107181148668062189684396736682148888053036217837597754838160378781647038658737204345565007608127416732953901699258459466464398403485442194250504851754330055728361303627837996659898627605890311088717684587161552249625607057167008150712540552767646728355509853378653730369530875600845122361875403489906822731370684964006114151993344633863664645100108466095961531176432467384906355045303714527920150522075201289204976842509928829972540381694324156820748088638815423531065103484427860139826945546230855184170021596591905599149066195830556583487843566617323412502618134133300935565356036129364258950099642712343142639930092812471634414763841131193823923206306113802232600807639010441144761114905599106178426036375392360175215238918601260093925479902893846092480265949768588713555739907476584798272603332290278876144004222601507627812835619119845458311280429343860956313702593677099012124816727184298320961393671086091250322862232582046756651299425939233550585288377175677799497197854862901007071089873319577544141540854844598756158696000355747220848943903578404552964603176472708338936677493075002767377361369473930476685122403871949730810958850943504645225305369297474709026570218815077129975189363979206809615601453063907055622978302290474548344671215668706481295950699099634434117276634728283254703549437671374912543117163084876404966416446258857586841720175020880005884707589723696813011404217886924403077277952189503199053169366291577894657723810574345683999206404677943661351384051426366240869894767969445704762462467220231530818533145427972924360407201891792231109664638496701477339001971948382998898973935683520841071110931771151534410705456213300099540583838407440797001671283008749997759833190491059603678838759227120641685060534936864623345099268552715289755868839953246257945455288468697948111139543591830408795972281897060479258002011875855458261726315406747116117016583872754590922318307992785377637874217182196944742610650271358995871407356148448489046801449486613853323551936177022745420821739217665686001632646657036260542081236141305603895436845255098397474290561097271174889696431832159797897521096576801089651951335378922185757992693161918862182289914738690882567139924678682692007831597907250511504649213430262755499466117348027957537796213628842023791527057844369542181245805325718379305578688813523255276954462862891522251519285915988038782552088122898263488229461925515402437897345738560187206609691098673396978471952423083584604733152574117174219270529143421547722977129913928280650780732128740581371423067802601955276779377750235202390638799057376681107998783741682804702105849559311285738408879905763312775959002644997185686142199312697997924328313018880566941654898278624077718822417217400827047584776153943400699942413513127158451466316013818037626430369722557674144575230858712052453064323746251340994705950318298588556850234975552832456128078432581178290881601174212454102365251389094851960833855613612539740453890501379080220445560098739738779694567589442760023913260319154420608458756733746061611499195888212735081583532275970285627563356376582004399911627038322172622276059486836200902959454733408849478710483481262829410044443596038286993172216228880326651273405846868013210475660331516580950626023297314373298676254576193675902598397725570002668695470915951977185563329373205593096652333208338064441228644521171808815592760629811848011717183852326015688178528037744050960540703090162079469220405180624831289329455226817093750013907094836904856725995818301665144021468019493618292393426227365262244412300100383458094800845207469415935122943815528082605842657451286054586713357502412027319453437351312896654272908745388934369634361740564299317343958465136942476273633007644593354150167357181842480004398051471454280580262506191254473837963771014164528633888881758867844793828790885611329476468980188552452601328291148224128933184170665600350535805637962660125861946925326476740026719455758545878714998270743017133114153466488861372752404772703226232493528000583360082948534644419838127093048028584676254357830130407180587703832553967217916143382464729519646226378619860209153487369735101861348581555290097130721764488995708981949185565066628957784596302551467071047590850222853403736530448130996967075300297924840268885274628460316989343799320961579005942502253576193075042390338278963777022129529747685528951221445513437160250645386937230598017276045958269297430024850724173556750650846116378478186258625245542672622743825849410877492567803025692855024717175719301547721747777809820285859593936639058382912332269492420997292227670192555286578689023986364504455611911055122943744173651563326199118054037344948715591938758159842457719483113457975952909953219830911194971231251005037674870204200699413176013238038689713418259695217186010289441886128958650317552859935107860833150917856123945995745550076953787445922865197956836658153093911286440672623201660229701470915136629326808265171127670323068029294957862002686243831868337727975553306068809253811446180506334608229439899845200024514431913025016419346105145234740550148920558482844832893465822740361547588385739387987003346463918077460476572991627432452406371039652776258984803694092733499221566858905847132744473870769271346639508094331602302724738889835019406046819951535814081527478955250382506373260082483883280403475543513737193467729946066583502483681895223657163798025653354836527462112324124214937657009876002105337611955456736858508630175746055482402903920652798826771376319370480526353021973970648715409219222285486369569414684667611430305217973155646629489268689099969125972027710106237721502260177112842309127195106154778120780726586157674186153870753517522014149409128246021584986368925508510682803003546562041024386446055541908762126270436063351783921589550686166181085362146683739499658866183196030308778994944590751216293312691375510032490291955855190573780808363637076852715136105736742719233934522807441660812799270991356232792821890749098608650661697281407713160243911212578542826380427139506469019514919152959308179867332799738874212222136356735623474842920042325609088867805679636546040683433719093745026547073661200132218310863578994290771628068455367995111328246347826667879123727654990682881976134478973697082783183222132643889510951317389503948182973254079009605198688603612093868754742167706902960044961958493689976507952161719219843181505769109393647806080872138994441929182044543308854623753913357706389298691148485242509125765339636441899155914411390076874831265704748823198004433384523858867620657903243026484099036825138937831607193363362659612182451491671466856197205438298053744341345370120471594224236696513833558856539423259677257950952711471074213734969510038207749928385581955556695719991320439868323832070100836687102673759308598022198066733910216447780148700489567297288183420089276847356670518008022812897431606229596179644658367046735675326721172952735452633245422412143585345494231926495832303097418035396424435728815058543747029145602318427581533342505890693486596140012563196154411168687422234222140573172502812366525666992011532517734060400878759546560126165932282184701027799038393479053280968075952310453472506124435041480388952278506992387038876244838359562324612144085396684268562951379437543830328338812719923711066847063806968473854729192494183058704354279955020828241131133365433690901397539957474438239311252214013995063231331219871221470781705652860364087591371009324394429386208770615853301302287224270966996685614265901021193989185710386866986853717160527048412428008632359556619490569334519870729035708812193191456038805519661224728765033247173345484873803417775009422330661641041995982571531474622483415308603265691229051878607448469974607998983026650735907067863116314566381863031401667745730959170667059484150643026765358775033072458462000637328403242599316327170072295736378642366236382421653967935739054187273378445257232941150320196746205195871623850815540371170282903180452225653228815045747115148029993383839106567142241563275549011393433822857675798486842463254554519954838337693482232471116644920220802323377911496695009244668336795359648272286826125248696396809414399365748029301216510873812827109177957363331805296535401539627376327733498785974071106075703843668772198729591861593612577124864461083058445713819806031432061307355490923439178256139360662355387533004570487198532128171644615869274899128153560960348881109384272547872113460733265208230094635355518207827093509857240899310020643272567357603169635508746020557461617871200190535507608153792918099309869455723111803728811236503390787624897312016270597099894808081953929882757239029210381800960093127810763683440563483585923880207589753158033118704997515666712377898214201798371110767721483908311958561740428923901413820075080374903377312178433211421571995002457535745611001162361163737918871992216202200095410123252336792619792835166099430883686056029045379937953486969784079978800540774171671321272380481915516333578709176010037226271307818795869455891812343021301709450221479664784392525457289105391368914225382161041339696648095044423553255481390522569097772905504988021090533058647333407520340394652470273781156072227104873545328054680496029771018824252813971996479984034670334004720228812687008964362986099841322083368944522360649029072014560478990430367896851625409836167939728104967315412517971577524123662339661265083521499371405909765108395933159835755031595174754292678168875224045704287065486754322612711914261312247611121486204842471905391126657757357199885750733014039691603429384791664868728551482142890329970425624634962420064115542867533276610704357835922878381080287469249980398242848417014448639992037270536830902290566223569043928468303645453768227580623847863371976727526373286821929351597430888387127536160465668909415499361353038229700570657426307841888668390869754709636223555669505324962540431597475292311797209690200395817309952143652055503923198133667586625057716136393389520849213390618641961346083424613207783499278714012447188762985646235183055456977782687072826327748400278515384892849215602635490046917136577868415248871047243745017359245831024562088075785578558610193014254629161213092909847189361183740747193756364337813434934527256604821815761619476062824477580690358038253193632238242959376758066648958715344852886590135769142866730273648261333788936609731720628802104362254830993746805643934481786791929026357996653175968098592997530281711002783284199095971821962676993661933038060342748380407721963893153470031313667605442065240492788802933522801570196066326049184304244668817451709890316375256068214536386321727984408443463667519843760592372134532519680036918415718429990715329845804583237484026539652467980341966325064609716691291451165551435949712700294529759878916532495803240917716359980865661319447300902322250638779220710734430791776238352065232407306245008082874192389253215228397765439952318521055971810537067912119306361505979714896406921206409588620174351411797826543351904627657489539152905644353460479058806364771042295174165271335272459922743880046187989986245369585831401032811822731941113795259765671285432866634962173212700125608845797766636059750604623080825670202969433666479685625310206264987797237601857911191817233543354917147890849328228168600977663447095718001150300396921882015035296496196988536317205429430826352191965691476222440574827742321675137970331952859313078829498566437275996668965839205885459808307861460039380569967749836942622212920969799560844126611096939752195143554072978184962719608827472843859957708247021462929030155051721076258158836677570192492809924235321975799892807430930372596631890790298655922751938659304530033047788114916131028796613910236367619197726966062800301238474310429890693160079953355619759457324640046114982534214017678480992991464540782023164056873148231840944025573225981349570779132125207651846011230552963910894215601990901877112843247117275389323325522869203042233341880769830608412656314155367977050958227656181974448151960475343446031886709882948061365876821296624354515420346368036190720648744725024970456609117748689535646414820372355387773435004351875479397075240915246971422930390495888770276423385628053969617214534881501519400326052653810081545713332125036794243165916323167748172289293269473598501358940800923839064715302640624960647465086307360928981980165482691169126054270849496651824739757041579697836165772003412716873298207405103811410746822872815155623183411648750172070114386989423737538855879437296075437111822422408439668710744766559772144633854269833008215048925127300751514131840614655404511795762494380020366425057423235839467990131029803636248304051018873015070367050901473159485134829837360798589648872763994432893757506053421127755204354482164853884014817996568033807655171146523165819619993105511080671657889589412753555300502669124076718120660809592241125970930046160418925520461231246542988685365898223109378001399471648896390851718322581768368044562826326490936637736479482085156830699700810580050165243844441232032919734170207586707310878572603733449191664611578066293899951201585092417418888883839162656727003481047327535506544550577368682828044729374755914624055880911690941105930985254664082552775077822148349368071524975276008182217483887191834047676489673193684219604104321703408101266903737255085366938611987958082014573904683249951892801209336807801073254716929029676881761571599950019316667068783423205635856951978987211267860629650526758165675201225883182827555456553386249095329064027588857290958741205585536578820291754022496595382893700373184871796265782779142672498563114930270111669117967810707638269041958223482250994330582762593986905919930254906827008026652008915138074005499275881050250205464627004117246265561680352019321612662339013180945292223906039798619381445540605594057295568121553618958764497199033302183852285782490022029898421614143680556205365497609419045407319188589925974742764910450494299471389124856184765974469089048159627084896119124742660136608800222804868833707999430889388203819247119757605289449285857586040035463288765654738471261520449189778137507369911812733132744481046990211643604424172603077109749386571442054186993107915546926784091455929165821389354100532220157549429092464387615506736212677441617056494105675244286975563470346008733977949080070079571037695398918947180843901819869465428420948522928918425445971784018630415575052433274223006998359059061615750756491210453276459914975077078367850586870020353532387509859163639226933907919643472841444588303496876843355692117308751336339136451534049031121218566063840806589087654994574747113904167864866858575174469539225673685059984711550085725386145111428802002371705658788876695391281224398865694335634330894060243127664549134605269012226054320909498137958094550813382061736661556533229247370172585974189616239694432719326021149425696756163757186374388774814789311350165665502783051369277135019758038560974941339404517635669442230321666422569631513617340285405475313210243214189972175688149079383757474097711336910125293412045024578643767524787903679197668971609892543825519720372665909396214836741906804067973297953257226631445201514700181046501982499938555554455351276785700700651375691416875307275841722156794551378843786593428491175863151211181491470020187734415756960133910404700656601447196463252247878866967304887186940277667691989419655832152732622172370131344209757796294336658211575880499915933157475987851023805899875689339953592133590578370966587831099611515897793696850775923213944635786683510779830776670065919188663074045725274996703375844654483963145239185793158803168951099230990233544254771796963568575201824633438649951482263117823865310553756551924619740955677169280042444253364882161640889648924174784281235555695391032129310152045479161633526358974451419092226524005372828690813913322626402022828557096282679141889414474713981169007307085683111599487479000583321386445356062472650263406269846179542895343874680337219931072419004143106973646212756730283191128563490530262363930439534730994987093196007814966064133582485833604700615670865975383119826588837828551305927812419632017574078819130304632435486182206039742450013206071264336287202930700474184534211102615091921665493525961599841610497594876176108871001460519215613073816820870918029826461866797035349937077387585588794995621208194592113082788581822486719962543124953695300413234345961580146763290735318763836369045579817430340724023707116523877172206707566704808571946133763800109613795251005305294985521870562431303314500349887791559769950382538301200553996401853322628259120665254365729916804530844920211974191154512605186563950147011980650446770288653065475268615508251196040426084064836811890805684475764038242266904964101920221832909929940762405764244487977131038704739731684567176769073903478168117198971631915815233404162102677006582608726765140949254922901825283867363792683904206615809301080942860375662844285925097531576019525471705949557722319086160399419013720605864116372091287351250304280930485896211781664566864514505396454451571864708568722444438983862815570836514577979940074411917849042597083816810365980142355800944825241310285916212750926739206455258818014022937707839672968328492487906270013560270559094900210887225988207712648290812864205180478518109647420111352181684445621529365453521167252425546744740631829921513300009904359700286006805354049261620718815043899945065673121896555934263286287330279771192504850484651707143601849482090755797886883721010537981778389398618753437140457073720542564480311348508980983878480788465129928082727907794377315961438293380891146827038999943673833994267652313530112499031747217033100708268814027375511466497153359541017523718811902651136228563756332941312355061890376179186583216782557380597433419105443761869590981643431976908091176849674906945522759019371337482539729761686564140936546675860366779611928740953230324129921154237534196248038629820684313866399971581058979429627744211692419058891783080869140467507919783665229670918044694604853995557830660046245124947599792805095224691472614025941899948139457722625530880078157026132522707472460954515295357718560426314810333360981533518431659430727888836200898028368894055533986503985537821448333714549346379018054472777761876056011860857451828996932797353347036314449190561396384772108006642924626856879204059082853479333659588968087879680464840566551202526922615755285648824175651272619545846924575299718747427316237658893548839691555839001836572871153152382571358454912675575152423696617153968757747138335718843526168026914243331976539792529839569557004850810435759891765939404113589916033260299093306509889332718800548490704328588302805263929907209614759343937122321818001307047640836195817447421645011438489749130877272766199340306352124568316892919372238289935442469098274372518112532775175468973878110962325673399595662717098268260060016628378850168475295766759828063144419244210745345711263271026118731990691080788355996911899944395955913986216696619815527674084802893722875930849453086745065567126134934357715522301790856444584669186851226597104401364453293118566687982562113795198647055966004612840215286834668322044378667557692143161788435547148645025376986787074639798398927471170911645208552960799662546284448384647564262868597600437949285249607634266986565868778897664759347706207206707460277250395759518247779356077231235588073399439262239636507178423088112477215598932023027259605150655368851890041020862606573205289051087034471773974570155919472047398766455030143017284726851295328122732374749600024676984375232062564174031709948987919349185238907174638582249823984892638742608354588398099599746233024156926048818706761942137638196440394456925702468779164519799485207330883555688924342093972304103485762260337489121585259388993455742025234067869854941942500695253139372731872837976181562457235993805651926776034219821113695032976724189586916263059863675090302403725748285915723160194243345155432918561528198384539972947910655104066123512764404589187859964376984559377135659492585502625419261875166824956989022550199668822946252543265750227454901073004093244893438374756717890524452378295532541999319056745139162013857742526164769466250341135656938632689909559004721784143902352340259501140062498345834954093935775167014105426107737018567439459826579686894336021915050924066242678349966167283157012739168791995170468397782069294232491015455914780747447273770757768475964009953330718421708119472470115627757014556488581101871250518779913244628547498994169302469445264353156316256114754269562718544760040659375067939055956535901340146752556613653529725102171345449915229324585451266707318562903839026026984776220834104016774894941915746572492967970481077483270802102979787966622419951392052517392612355799092258112739024041282746233835188528882507299736278980642607706593579062179907941281864201256805579655779811994610165495032632266368715765841355884249745293131206684138463360784746827461083256976185378689277731421826326800860244518720645126699468954498135744021705479802089932425589914016907298999510537569439415424199312036956440267569456905701023861001383530120493147889717378062282975685926508088451332101970989878829537090147823605093779091084635078790955834589228512603959995423172536405458650588263736601692109928172490299116839817741399825330746524935530937438875450630581588932278872476954914088758374764025546227501199939211751839815805520647403322410501854618860870296060836359133604852465157017066383557418609023604149311186576613504648136027098947478120425918271053102851748027356064896131354862862341195866093138866713531825829891885658045824109503080924041850909677194261993960013757645525039255932569268373070190394328660966514596993503668945701989299778411938860022442625667660304823980895892325710887064812416252490486315558324215755134061401726557147870660013410369624299332062327424753788612731794774706671004169786914374953700304098324217913856060675741885633154597503296473185646796572297073913213577165163109049044548385696018184427349982338870631407760364395822442920055610156327820165640057740815222623412277093643947539196388256481176879754357566117744281206844664287247406610980081113712270381704722085343816658667313945184013198982047032826909891616142891088415261925017570953276377813567517277800916418315514938184848027479424345085363031442726071248849751254258706207117647205244550481092449772799251272630325797283853891614927955226989357909200230545907172019039823384213722313036789104433657208029071105062388121612427126432671414716225338637992652478331773518099004399352397469582921870343757052382073738395997000264593671011761613972156393880973988601383879755018968272884693224087594464372510371228939734769291733715621794666729100571519927916572792430256439717653265149346570176042386773628389766102701122829838626275530712094932043844233682181992071011795861676584468340639922995075748772833579790598643979881068988114488346191569432462174621346089767522155024128500840191572665640028760787686350436723737748643256676666505017066221424101180591179860892535917631888509000743625316878965171707736681979441738015547031023001440433427986100248059308041352555255284551988616403954603156149039713700620519453989123390654333073221497000045124385135892473126603639560925800659069155561153969851793405869934368077224374756920750341561451649020593307685315893646993674139062568966418210236792394296839593622268727429902209576099792372531987235454981917474320223644945837772574159186681337337834873928769199647861633143886175626276981873026682164792465002366550137138951845286707337335629317940309231638892552597112589686326245925865533943902005973269830474017384822128476439607620646902925763592712536838937745851462493621008646608662275002263486854630079137876914408400768955648316957344261246716818537887589631780017953563049212004706400668610129497675642449694958915625151328319083912424870050586701596198711137185738465504487295526333434608794389682928625205167581490548224361941921984968978626735649098661645343578396992945909528626776893681676398896879633644665625232116257896936152382207842449553519787686762348726389663628693720080713043140556829260993149244701525710747034521093263105401888031572790646552752711621864850475540287905538620827035693050864725715227625744878680165119676248032660062028768049693818232191121744658823532541306418095860187211176585293121585286359744411388111008016840566059505550911246825126547351653256406828982838604145026920566795802514393738633380562949136414406675160121234087462560553957430713262320542550629075475890340209724528976080127181407600591072902704682338905371739107873920035758737883749315524732156484233344072099505702700224838310333761556790878332751530448051314663859697021721360899391630611991382855534379202868254009074650496655301802479768855586348481988989628621028962486178017400253075230145090325329035454775007590910112981094269539341068192015346812439744616051110655887269007205018860275123703970584722348884515550851379992725330081701795024167515783076847224821432852808612264302033944710231172698531322262790242056121387556304071172527923959891522733047372075871416136406727639855801471672031011467446947269291488134883877955951443914271873368350587704827477297924546128109868921884329672731283237965098417639618328406434274466232966071762598557396044325092186610145010817289815052962185160684122565644411805481533476661890516212410699036620559834062309037364527222188121230205939894462627699901098724521251103211944123923561408809803241664012073603202939183377070683943427142437572499574188338098266719042133852042732697918876983038016851481081022800897004077465561362189378151867567014933043947295596578347807987677405777489883938126754077092300554882674008193391836165442081268970392872868791069272629506971393938673666374652395016032453425823710085305846604434287747739294471881957529196189074493599715563630160684836738876772535416747068302116875381136496382244090015896902138889199044440185165976520038054681629232908964939101726418055730544482147858623338982995661750967566160328748693853751165291616472550131531339170295415491326632551199644194529709916671409889143825614407048563551422490669045316413257600044947641600680063824880782139950122383121121716651607744214951794868212159110994231020131992758805368925457135720679637782355069302480830277560378762814607211665468880567371082983330774445203064028361511743955346061489373255647116821180839055387432947358998074655120915428284086567278948596748921349305186493708570933473415518326289053862756979765409688208676908838711318356378463494856308934206707050023349481922320253200134494279903634794744009777101493123878627595702557304944132707293590200221138584628561510293724658147238840490306399206970046157900232666469936998684545063925070967866576355305922367361832956369122931582083501672371295213604924891870080447876546034496509888613315241519866243104253667944784445180195077062347802014801888962658138540690841612363763516845509304541805405405899442506688669550563873252173069777612715337509630960802036973472099634065662304858909146685494512095810840945385667199790484988548455496736422462579319932176104651737981097589344565104658217315049202838477260184314254441092359716933501057592774666845573016221853095776692990458758508526960631556341551218596992934786880331607810713688587516219308896616267015567699374920310908350570152310134042402144221125400800412355150686262633914977007191930006198207561366535932864491809461154146398004584843283311563663897695034124587578777323542137653829793235965441487431244061618156983197951279376679792761549714009306075121822442671332127252325272324144352888872764676182462342803465763100159801706662194329809192673453752880544130357586248147725460192083123992058406863228298384571365585224010552919055154962140523992756979019588484949158999381773532259026038487496555716110236483531080122121095707996555255714098908302248820663147114963239898681379207506134961340503020036650220195418359137086643765921221544151009778024269961324816094694106278185375359323230687113394006482678554619735331882462074862556394709311708232609391335866701274824101626980753727244852395765452709043136821083525002721150331548161901680122960257915021789038858935452583156413603833739821418345107018331643477894207486200319142991450067787245638092756439321487998896352805715529194557091424712829833766740913640998743611182471405018860074967766753532786236791814935527924383119979389120792549839750638189397893167331859320619226134871439712855098964563458031644503252600828572129404024860541031328185031928668003475372812355273763583897532561276218762883118913531108781557436651821844064341577452335818998597096167406186097656607801280456954056328064815504370089011465596209107505513847576493214374683718061487542818555264257334873629300137749013248919127075919770923740609846041497012529611273231307408738949761978311087692382424951439724789944151046352414437962109290576740034953481517060340980522134529753925785552018277159396511815452971415462486408063314357564637206969985706075419840116181684858487387867314704821703689351871245393715902589262920481910126493629597510262805323915519046270778973876353432142111519405847911491260613493132510370636413782110875890002898747835149600143638960752692820203495578277934652298583964443132868406064515314541964737778789508165342909439035189339313872435720573243146372978259087249482412118961742317932013014937461345396901067970893889004246983741422053796147943350730278308931208302632587411663238965247216252325504589229173790850605663103185980988701736515104628506869369729483588088187472082219388371777162613005703501166278807401237984117099934766992296067680805254532049137358788547612275826471791911605237128340419338097388525439138516727914156396654165623609482483904223097242143898218663790057435345799838488315869367845510736516181861150199951882669484457949507943994483326698785402484538312540099364567107596695041446705663295097705840759913975401018237932813046878311677702461340069726996121970226188938249955059198400196906517634688806442939722274686731026371828345393198084917132449401477456868939109660930793286520992549362849314078995189773028894902641536264113541924349272524236639206798902992241815488474575254033182480302350004972081780748571750719439685179088207261635350139288730438590444920364412019728875549531095792263990015675880865589786084297978801622984371679110994837700838841650582363820226458614504787613501374197379908152425891423385656302278895660732614962399447327631406468406491020879131410853858758174159573224137496149689434214117102260548762139863660702395351475042081460722396229803969534773406629659819155467047692481270172760991877493197021238840212443875891215264669933048103193212698381070560069999830486569204107801560508697813173015483026597273555628753640766512067607983390579124108858471663540889718198218266700467570850364014130856475615095788667331756041119835106569700516161832213704711454617304878295099136532314278003829955439997320972372880107378269003137554988478060014381415467674659523190133512660890541716131612263041804451033235284767785945732760908426572280144539343915282351845744405150730620474564527572465166857029111209639816819037165199606209658196572400967957833625716357801776246043632960087721848072082665292322438667581093184757133618776762261905550486640030735178700000377528239743345056957943674997186533468022129964277546803132988899249561992185540821576402688264908278803441216118671836431261841018992458671311553958272108745951252956366481420987414226730307359169861909300836766026541378137619049352526624234808294608639598833129263446347339125166786882175198938385433819880666748900948213643858895717467185168081680434909601798455267052514774683877000887073105892446427456168946583404492311745091529002502591594569097735966823835873206214440464270151474612548491730628888495514081786024619845869054950182969750856433526968812712784534924534224964610256008010613567946109413434798636074365071325987568577718683668072721179778337391139136704582188774015535883397839327176029730500083864439215605682087218177674933884519922676737129000230985066109377888352426075764832401307237687012958518188801942518870799299582297709872520505070368977327195288207359310348030163040055387825427606409241141434000584681121326414745252645827614152722290372586165154686660765253077837952178353914838627601793924932064832873900689948264891420421098533257654031460777921234426342400623201020465871022512740536434849656514514068912513246240833672379818806330681635621347386602665939607076517840642166357384531966591525254716034766593815085148680832187905603266251825626704218786204253030892329384955752662682384442033321130711311281243757601559619355127568607194103027348420745239251840385827715627774976074293550764345990563985787579598302543108319777470451541518008793754536653690455501885265153025572532988121806626750951297309608139125201609076943773911320567787870218642996655121685536789418102786418105994041450867708953836647908502147189099510856275131729904842019165929519350689407684882415673001390092091498327412735457852697846809940173410859241017375018929391791058062648859905293693167964818087289385342649623293397736059245487057082152267941847041067507067252017647803669177569146606138490951397834285280704673388239059501879229878035404290534590596072554745836861282035332938753524923897754399611707398606253899550675687311941358958090579890666593741192087489378958285339819446390523360635855632679478739328200279979717278215386072995586182752910507741537554138834649163512063329521278054318977113210412940614373069244080244668382441036649364465625138564571985549720272434847305880079254751249267542481153462716820534618022120677782114129877611966146262903545509487648389284732324436808512015427895638456005891780901287827188307524294394847453145710328322525476356478551658802649553442898831409582286127839188545077021666039652052427134878483006257250442604668340833093124210687065468872837142213305008232982201573217915061542705733249126473013340765913045702487817400385929980585465643989498750932708258299557516388030163244696798413072562900034688569174643255605113454662732190496710394627577998007120938456545572248640846972892987768860697994746970615493046122329789738155515062202268834345623433887486018495299863057132940353036004859194975275603245701381567266490764385819682791621236051304755307176649903874271599159951234014611588887582999340405603220139004197438978106105212287346837992017465736800589778547705520956390458247638270742079371821614895649044055472003709002060821711185090226011494255183582882363497636232578262872797430877312919535503840068714735872081028991080528341066090027300953372859237954442999958688858447646689977725207316432937247205184501462480031766394087761646209120522565959493600285813267963265595477386682079436909281611230895628860400018328854472724866522348608996445603920422590109510564724582308765744473209379962521307945959025167862369120987364004038080467907844094223133789501593727335098472865289248165123222698394382380470735727417591822026870790544324220212149779882614777298181171166620197487818400094863225319264279764060137435232321587322843700900515715129981953007951054114680186688115387582739380007398981610223123042893675543620176630129604381809194416429511012245746674730224950176318793461310767419143463805007043172352536091830588070649879410160520649947936074292058765493108027516425537040081519086530542245145972665649003287176312240921413143973998404137710270570609002165935654548904681603355585308303672283581747530578706025585208696631670352028463802455534448317190699952705918167068055788510950874978941695250222342973290300132912164146000388243986913528566901757475542879968946152399711941198007937720703758557512621496833335858558137305135893706326339178544143834925099002211428016474728437201017203838115444239833127941067561777083257938846746589632284104622300171784645699806579313618806088291173125649692529872501040377650432602038240342729596058393787833808728168484238614942847875157737177885071258723378733430494528449342709719607661596814978309607884167037537182410786803217542487348669934536317176406333290150453569846471842874424109753057954114152039998268992156187395262434064461139728273781051218319986348241539854716117899972690839257643791590401832105503348748197670871774773010635468078021431888045995948790662048466118376940449746252964890043813773955075490330154016743285259244596144612560260687052042223054912607241901694250593236191127012569103054638358360352471727220704563973360648054607158136380900729887141851071814171558691798692749650739167386775354702739276856961856716086608714209985044533389311814832650375909984003155452139822226205314213518853727026530132013661425892063969703004829139655665594543036223872223409356950969148701124244142082595209994837846844661850328053354758088462549506371515465711768005606168984809290803278123833016389945715162257737979041030964772173306414349665344102509582903618128433139576646647957783321075058847131490864939930255431944737019170486280761180654791864010229123287467757390224810857906119982036487938978244504392363137231565935641209651606903317285221112954117254823266236323642445076644597263123636117334265084377056628982231011652236920354651458540829482223721313740637640372559403863926818975146788828447115259640803960058340042432319142012061706755941459652716834963329378096331808325118939939611361157327483103016087283391377282339177720439089486556794482996476301856701602941346487839944371096200383144207132143641925208343920844754626626982886638731413590636411458326397073323596029311503414423101056068070989546469931824255456609485190081204786700339139522272345677799019180955465025466114043881973523978400915598168872450761333939798730935470676481418751771366629942955231275984117776797897425946011655129083100030862670599460004089555732477157746599902904966591052869332526707804023445024956354743392005255552471008180465338853653023222723430696543648885548993963031467313906207564247215034950729284694621802380957706997546554574349966354845177937558230364590257298493925267662420295415494037359007541747086847538606860393271184510404128817702264988965756925631724005072010989687576196991005826683947285886871142704215868943051995567046422625669831324401353337559815469987863261739514395584021361737197763048381724058062651710174202714424089301379323650693901704146563649473768315346012906815258884674465695840333335597318180972245958578304810139794185499116909408271393586032856817539626850980823275812564392261236355241721890712123711418865763569166547621703902069718022891411411181681065992691939828707342676540420804571712883018591179221793964159815020122975223575850322418899145799371280700478783692218902282506226886841431003632142852600106754837002731491587734145774598433882219102737818618047888955149786669010224285903214645012857762045865773305656331113885066182127554233553234764871638205363242729654251189476988767045800590727628872345236584203258344143467790189230954936494966044348092953680346320196422847993915853885510988752160713612931274589432977057523120624290077208110096510322046575215149295417606981863380356663052701852546992219687292030459618052789169234874419985516761856044358783942187559668543777908226384357209703131862063775211523907769116469290022526623050809960115257770902838746822133717621651788670748508148159625340235405038008704578948042088554372933855089171333210885465859607015918716419392395215974431665443338485308208643636418282778313625547595012535235382992765552110185971152612141925523120968477947152551075079140338063935539908823166934937945228067280835091287520515526314351088472589816252055377202093829091579004203628570772000745245298203992804736946577830574518534665351183245641930100060791913264802180500290487423365896688604745252373104882138486415778863249655849971104727512757480705917130128001711475193560793834101256402936400835258627654286467787374017468944464725484503831594100440009780584765962839988346662194729929138303640600940669498465728163640269543720735966567660950115895997834135613953962019020344778061504001313874749461784736291665036529407419025859564446960397214241757298299720179830521590916296868996651523675745634946577615774068714140195918198765202312006424067906584111751198142648477367717007236043632469955866904884041765243809267773298421570169970144142639696787488717735605091351801281258445371298793560098246979998777561584947397733317181104683284820252200776124927259840967397236825782707403381162151811502036305326442266022351045011303800327716468203005217866061273983061457884154450723383103316975670878123609093936282463188237435225836861211678797303266006047477392716666288726840020418989273317812084389474176842622841165793621087360174302113471597426569156149481450811546795615555926681396127188928240872124284701177576825773692902689265910403394094991197631061741064522049982559814326377324701973069152058139926496546272507848958318319485614706515485854314027268855694571975666194210347295528772953557541131791027882001326130128918612875397655882479020290410597055521188635030571962393108607854320959833427953705739277414035638204053399788446697192850694907634673787780596316897419991552127881007639974694363880366659676927091513341388035815231360640909957669952594269228607966292861438550847718513046335995518535431008025071471705773620752863291266153756573837205158440960063810915386776102095942719296428808823601401725506586977319045776114191012239811290555984681513517607698602485156621845601867626746250727368481857070653222000259048264019350378662085587679933750131514400087867637191240280593410624214799034586119182601761134586629105165822079816132561527126026772138200180238201940506294677492334529432264991609095567008318409873563954092401085537557475695710588452426583711489972835719800009658523602165170110835253508761487899138373966198609320165471037679574140947596469135983873078269384102298240683539202692999357046028024141709639648517634450382759414035391008350043603802813167389811852583146447735748191360930814787011833249168656751558300825208283284549848616415076961572245031048912279111154481621024006088476772324612086558723554634529778325704389895033176184498899644990580252454383178405544525318877084832002342726743649085311170039727281370569027738162242868119826948270868207044361026438450574554396186023382642580851210494552527138409886043925880506012960173037323532327821475043327415399224182994626919991898367398778914074999766905994086213400917911612262421921489160526813243203052635518566982234583781462725055580106373044923882117894467759496534459909457119629242196996779175204859766390402841805349886616526729069334588201581408222268292539128478146917130792390001895768094989246995206991288359822803284111147606423918818338777358211309655989141187566494740622433820418885077238793130654652140373669662044306195348665226673618623317873707278841758632555553297116888408394619444561333837201999067745254505496289510422013350193643389639536362449611599897353572455595230311004274128888965914485642842729629211456556846127774885844459136414672940754455327789503689464550586038101560817428156611576219582756751816874480352557383492937593919852373287906595912231288177379244148179485433999390816392213539668207203704389390332813522321681418129405824492950304861305256528440719914927743840599664106002448374164545293310358992717702187821497772331489896099536122361937205094356814392228336981093163041912641659832628307622466395012814305449470025751047612019717558889175841915479851465031773227635416729719572092681766225731816311938568069649547243721767822815163967147976850171435696199822458700354531760168775728349587217203591661962305922252757307361164782618171767599321114115188492300078087727749815132862732024093119940968188791178706280204799215316627574075974439319254329318924470607407740279072316107970301517683477806891109002108398176822689159901675130359933615582976251866184899801466132256879969042084872193598666113341973748865266369605873193514772633488025859043216585830834710576662863355947057251794470950784172421153591006805976032364792731241321275323966378567971607821363324130277629327392402095792681780124769728833574754251546120152936431709379193968598281828243207116148967888352135480357479370883076994666424357037392970353538225847014548266394008880066187749401747915594612099741853330574924307295820056075893711790488183511494023585767919839582128831542728980441059826120928577819112906351662268057400128668937378873672916778879851834016975813512750155495106216646042382595731566180590964104417317394103019588718484253296732988392062537332521049185285920649918948966231417994056555750525876350347443824647668686420129309478965257080320597189311188991921006617280927831578169984290058904417670226136245100792809647840425013603352020376742953337959510985936586086544876820574392566449329983171788863214459131765690184486160641676638039544678792570006333658191426686355515381942495901217998409500680036312580486777146964635003192879426627454294541934172745725131148307133324403432554185157275471001694892095705035348192335301255005308492312292188843866441383183150460331854263221558798520699556767209476949166935446411436608243360247143887919691455507725101185178906321868776383005899589170471408974720840123387517370318282722769547543293952776187473797388194940625824716383557972015897927027417296123817899391908062235999924597563073471446185465184116594829248198842601849084535198600883315944818896701013410546142964694905888859204984786669433949895790699084667843416310871583428688853536373690152930441587270986907938388083763033913912918656562934800347288020239791739512991096566187116000444507026370656632379541940178975468025818584191198557110752861362365093598376117550634162412677539200638782415715208884306407967158652234530503313323994910559015968663338797985048231375491803223574992011925573922723622071737420297447752587793228926059021161959522917452376113556952172751814331769735832494895580702617931918883238915077230320673869401613777328411447014803793885483085728734446603101778090121649657843207745156584459657978925666566516550496891876960818137299246400502529040878482347127437140961108879703570391748532489715481155302079145069203393836367357551289528076381084594021795616874598594708267989351634598271390159035294880853183981242182963308937820907632983401680831642896960862409389505983640493710488096317238254957559701480770467192326938527553207420488135025413949463159798240093951659255729282918688342171251185645615816500207955725658608401109147906755110829308392650146453571038877462366222777676399024209619492300632435483024050584183081543351951564976655151494014890930299639782151209756148011964168045853625917159869756938248172504427222374748895387507493098522004002328912965519882623817612033282199848499603534159864658107969966530775044943717643912358234560447961467620858906624907587973606785171604459245274647911662260295340520336659141750504122541045079480385170784100936810708636160852507957276541174348725953026940518955248998541646337412426875883505118778428864636941939245896080084224908577664658287081840888864881333662037096382353182898909913040474919363555448226836706311982068832613936927051899380570114875046350217504982127526303791883631663341488696579188837610437014189857822457519892273569156276793358275871204119991575467512129180679467475631826845411386650765579388331623771745941186610125583852468064722467146734841916401045984685411121144147074685404921127243115809286262366873539194619040053018495901225694778178462901205693541794269802906972446333138950594508536286162413848350344415495843969692118400115595057708426028276799117251174726927307629349912015200160198983835092170766946665264930215040784816462857162730125957422308073222299514153629567891204387035436332672383789293748929161553938549424376909039397698541566177717289510273761967473144592235065657215379246227690320463393028716640715688020950150864891997224977387012712009974828930705293206073297080612282696664750998262485848541043027128131381789653824481422302372454601686231179080043936314051112953884254820598195480598323173044791882634685919784610085454839662158055477822054194116707291124065533452498930452643231924831754942675132380411557666282754446708843624440491744838849998476103593407698188477968149230261863965603340620028850355894307314718947493743504213289379728732309539742723844057510009149074804085532527889088412767414928626634112668708639478727264774522134564435503269850965195241216153787525352888754049150318713803338359646169679827310848544188882937056427746045795543962471638478880747129443173445170802302161159980836593100379511097327443812874687443350496012464798996459134422771407853476720745726306246000676861555177879535637658154443820979005754757063567511819619290398072662139413485060543964550670329968234939268739407650636549984497486594818036357580822275889808132511303640232508917614404269125404909128558682644016408881057619496315762529995840486269062986988069479184520309167162069562680746123574986778650925575269665194718828773041979096223611836633702376458539095465534974639230052663065412431751697889119538422793816443834691212392042615924440238931107812180020713898077893616386031798509713801363356571150218918662874751445714385153865862138909470674425210054974809213766841742131113147783894202499097715097174719470033914837609100525344123752652152774470599442244298661756410710086110449338331442684925835655426977892439205077719082970451311276392614605563115364095709137680601831039034991918322404926875714645944947711382929532789125163604767148821302846376153711503768063187600107874308358393502985301077628338106811668561703324961838163070336826874990697156367886463082830581647534111947372259448526396037813219157862091518767687665992391679938734305834728052506404344986260875061904713613216383956351798697845430208298127618791955621850434211897248938210492379575244075311471802874599484890411761419905086937349484039947882264943291857790743442970445427509985736080979185948186469499642359080668564468730047494559323140976443112867284906060643754959874335982228716069894304271198953561880937687665592402146239634393779873150253249522707821071063966845735690482667872622129815421968349434542972132560124319577646172765636986764668457306341590255256655071938023877469386291009209584785182263305508194838645247854439235727797457680930078265437469358551838275548579258238122270594996002614819262505391581166087169083997332953613838606847392711026371373290236134925189981225597731272885032519035423243152030876446781480177826176227505938727148654399168771302646418470391772587115475479556738462675840986887250102106718024239891468782298173225386567739175917101733277028168825029754965974814475195896463475037971873903048848840345731525232941694429323546496622586676310208923680757302830546537667705147287039948663053201642108173238604331262963183228900410767797994668383849308584250935642411600964363902672347205599001637970340805971796877489288009770039342247259222280114183437398620130204427178038546348704907346774546650439072444600482990617894908211922337118094440146830764682935240017422092475425212807525801467045687729932036159215944175525729051278215496607637920974614953065479935885109868785878660174684690767462583906738129141333642333400127001753805112816860467767039256191924952615326772332070289336823887102299047142319541565166850766230079755907448143625471040496214351898641755381541966257529570560517691490940011627575832087494729170451193840453850176386690529049621730579900160165459695811458729275727292222348815481145588360769911781087278564342436194331442667577889545214989039035185408493652635614654725722248190521231365271795745074653667381585735652068517624114501793881001929595467018594178621661294009182408945938617352361160988923548828650641207003367869482008850326811879831707480698800959905747392794387257289013779750112581516182202682381438190096510876891144392583334560731834982266657261767398962777692693732804013414112748294485511253776232236783836892418783053949995008300215685109415309783154669953642475387012057724031875288940011688165743742855512551569198064123710651517858431132037947384882309544887836147249827908450637160410211276882984082779639253098143239003472402958276925564849857731385487345066153140813802645479842724929057490757784680411582517865313317163679512900809804442213735929055361399767456206542081182577295312614217676924778033976137687556827483234965511628742030318626006415379037690306263480049337244298362026454170389179555588020902961175652352011556352718130792125469140254078424659894269827992236161891250470204507973309207615810333891060171968212964689339244029077439346908562312192449722900316956854384749901918375239315485030349359349377875734667633821984783939002411162403864234917814653371893065570393946088579347016587895195203803971212061143399030316590143154934014784824932258010531626293900885118437591037611013976634822101856463915450980018568021632545779061306406887538046088122037348473580569787859395121041079817865743004621655994404882859969936163287968875880159149069785243122319976227650417472302772288403449232107080088090872797934501711857897361797689767340970678913305775065030872576066491990470917460548998808275763180069351327054964985841749063608683520659838675540007328499089920977280252815615640567688102015642344156621630740467653260187718021857571510033162641965199387856734026016380307059516978378438530836268961784978158726423627162843326748439773316188072547311908161570932796730870792052487403119451551135231601166851595473034802490474960730085130517455914591679074559885247923440191378604482207600354437821222267018534289706030193002993540861971916565585088456182143371971244532845322841801534769994618532298057330377550646011943371177610959041283390205473061771086075776969650667320578826751763066556485480096373476881775602095037277137484732137621912638828384669455002599427801120194604585998948156161681127512108916269170680415110129974068922470424509774050362670742506718398084093741369304590924411157905698558994696007228426242390856241413615038253800135240583170407851708567579863946084565505974650100170790934982439173579532324928273486964484599639975228411437081339115010772604814515756781856296070554175984546020506206720085119407917752917162771761755899329995656172606911533846135612315586101433694069325799930491806609822388745959463597435409664252991461646496467598499935975869288086485415704985488818791689949598677743297932294382182808437761636953244796207521675323084876829875146848324916930861388815610104447848090316125645988793335302554684760914460558284634721142449782053842091908924108150202684783152907811101247922892027065680457872659632414346174759622430137990487126245613309572613406869132627554912413629634149194910781910504431362037903369867949852600646007250172256408733356879904877900001562078276812520362812440127642224129083435613174669335688856351548552695920877361545085181834977484835751806097649727645836342958257439255502037549420870035308369761350608835208313687025177824184666683107074971262020571011560501464596037263514126988315508320384701647867400297191772902084958193949292196272918495777510852283352103937647187895493579754481514457381090535339984310221320539076670482567798445074255178363963695129971762921727289149435895240477821621660330144022673196113614297090845129481123620809481141573425972636997129901606589592673185330625943561272193615422496877463997277801968245823627291160076687274172502926836289777107130954397273736543540142025047656523675272311603704345012203981126306646824741228235156432544926490668629745831481996772741725541329503294072375117708882665821812360019417865455283786167240903822813413631698491024801310677512359829261943006639156864331869057289229276605757464499185690308386171426484123198114310578434532527692332831546006495265089185953413276457310165545086304453962598456634721476399950213018969056444399147129518686241785191008995347567329054063943477897927541417289085799862700570937774148337618929103146339587091574137121077409698609104020700043839810699334553231497848322287461439949393995791955572025753642188550436129990967619994626521468055364981502341251024050159148063467627913575948466317091302897348047773558871100267659429701343771472368136221788244521057411021958207115724493990816216535746713572846871036321535357522204007027366829792578179000023951208104801547929985730227815650331587075340722748735915897105136949735533788274582712786019313146657313252174448397608010629289483653915064766176861176248512136697170391233394298832090605326574147201326557344524487473587736663727132947211853562909858890785411609416611691700551379836776732001378036176618455179677336705367825790974193123478467766311293962380640414651459760725263728482238449569936458386541508116406691228803985298510640949850900867845655774045610825568273255003235331038564179906829655314209493296306767580885978573492790141562515810100241904545420397421309974724054112236390361500693873091580120763031946149587580475741104896955317711764788662669009233120569598874547312317195049821789138127660005760032447797985576281368481899992638242277338485838625049093649309820867718433517105946551963660187188576643057470394890675722916044641008692345360055000412360396295884161999740039846530499902098282527802392285340193078413719925334347852511933142872313070356002843772654094690555509470199706233906645155450017631421622403218136021572521265797506858377312130304669440094208802659027259420020846565989124993416723398599304585655825862293242088525060432461646811157262221684125004811972224906317542333893725573520374784262956034317053266321994558935571411101811648234671092997077811430112885454175683422102674085934373043962369563562652521644096573800221414622368995439522723508589672356530054203127642648681306264912992215622689485965564508193210447953995577770498906796861146719267643397230583680322091889350296079149792846272293174166375813573600477191934635421695743119576373794578250278105532788425060058885908864348191223830373796748496698105192144897236905462713413709701018431818089988635718828705655230681335641656739224277453355671188168361902079577146195555501379849029280181658668881690852570606448449905591694496267167781128867361025112307291589474048894809644368759131391950441851483572115138255847122497600446369744840800911460929657790783842903051447587827243403723847199501027405900822666705618918121757614183239500840965841873653774473432641488677678675762948453820584124578380088956046313251380815228774630641806273083022842321644226084831711272598329810168310522402467323073975926916135412455815397166220206545937319805517749186494739605851680872562503815162523330645392331465615597082922552682444737452518981998157607556635091685098221467696854459259476534690425584829212109594014758397765560381032252691309445287742182056666548782627641598103750253232836210145355724589005686794294928410426209464547092772326828401719305655194614252061404065667774932555576087639825028316525657001493136604033609194537004509419135747341279348277388121151679285802462331191941682301358245325579309926264389733752538447686235596688267100569835887671639845971455775998890417837238803792065754401877570903680358680618620511085679223627140470040728973595930605592724267337442388711280490640463203198790992923554128182239752123278288406611898146090523249696701003045592806539499934229290483648749118793831285603553579484092142992418468047376141314691146863958965257288541577671278673996124633204549394529786931755286909497207753794865694623303326695402839875926184045784309504830828776717188713373190966664246609381574154038183296128302314112063620155140109464560350255553809441887696406829523212308843570939095793075309052252663405497997389138430156508811227940941972003712401454097015944562870876682121340363707567404997551458782220588282719353878481839038831936899188530296713012828511229105284914738518162328275360320383882385125322639912303058515094858777490515370302191851283078242115988937190855428321840924091848776799556065627618312458483826957143120762767039666134102868269620815335752130929724393759231110276161596522737673201326860475546940127132484175673752989698745880891368104865506478090438983034455972660470889168605849971915424602720413646055385663309963395073567820752217556938656356687749034970395881497391709152240763347359361171983779983172176428574771656016198864018005441709147924468132986161964507712376980281752197105851128489803470200603141374968079154447308216235031110747888999014304456467487220857595763080367571982638193179257899034349947277819090078569335801257177891693130150670103675302034331443263035550176175689036606483240020441408236150588703850557068344144279110404297863320233745449476734008066881812825430681133031290144768138581695195943616747419846679319857596940803673473634015295080975168546908708765371973758748967087855469813707696683744546526500087229393657811327492238300984802835300090874831200046052298798132979080028267152019593889798773283966815975592197574678740542569446904382740744098489796595655637760158665036277771106864849021579922183515663126794700555081625858283331379502198603408036444811812529506736318301227684368091250705117424488879191970560690921318798940374881086273171380571354835353045168176561274999722088235255743036852782954340251496806831210191309005709750670451287728966966346599958396275242859359894016543804180514458360163566532515672540176890319179590232741876241959849110011549420012875780648186988227881827495974882761433103545292046267226786331407730851388695471675564334623924340693225090733469082597275641422708187151625731705687507141780540295381946322023330922636016637075011487188721524824451195152995301294102664584692514848410070949005738540097330593914075074367408656271606062352822389188900151790898107213822565300206743017278907936931233240889641111346067565865925551834778933365850946830751473081965329353575780778723505168165644592859534813933606663740145196187778489828867559403891761081544930007827026317949596203319880062591569827514359088381646243279300522001935384801348835648923363557262726092303004768170736884889895864073950220176579253111683370885531927903778185687242824507088952245126665497298328385920546420852825870879805583261974902297794609940040632060991624360213715581552733526659192503470168164525759523848804270274750104968178805143299104469059615631747646639572737322560617988796057631882672393247211390789601968468270847457010577128664768303209781592805398156662071822664097336031530950383613621529062094775478700192297086716296349107269271335966524296227367383041893178748014876419581438825112274144685509889389345695594109779002046234189702607946805582054840930343051852386858151678278118694646241267834974163276041598988938775017048436493312492298647378838553744322803161983247542185048270609899101248217519837846612092184206976694689822124210422877882452291754519628612186565714612334880213364261302163585316148133487389357022460600353449029594481909418898170504569004728286668463740114047743348100820614771113402590254161014716683986900060533840704168995603081268255485095277022673009692977537469063935098052707900434666269094468102242227264439269906266830579590562242025962143841091941072441901652949014245154603887642811183818410098179753321668697467092885922569897530381626139822650263045915943028290175788457691081636903167819262339329750264356975457763438261873602498060787040835227954799217059019277068003775891839406412845321631574693396082998106061204002577435525277984637207777245845649560184712897896425714038088184692943760693835598237229232189067009573839950801012924512828564373167477866971973828375112230378228377381899623532746155361525696382311075692950696954673327739854864144276838850032291709739458977636431791672415323048692134705082529753049151142924167545201753239264232429185973952452414163848738869032047705484929587044680473297658200682942431514006057024678714227442938028287004006638982655528063374037560137547593195712694550185984148740985604202605432544328237039261335974391876673991784902946244364630067978404394889085629799938780588462328745396855058996873940009394674388215007320875869519964271253070140077397721673542696335106444394511844132457273667183485281273630286589400203629342150911125072842468106994011632364852752076675433497469641485754878686268887257316844776992951490227513944623709196945532035233467272448549221522565661274637655434624084812387884846383513123108604614845405153599286231191174887137361012951556826361489966089449557976477806440265163244929575939116795733565086238622275219055238316994438426889317758603384322376224525011685476826871484826509715550219042797806111593209449097599864200694908333937489797227426563073113410500188850451688607836007213811843200939106451883456169512768893354843244959251165145614064196230475300453609512951278005228702788031852642307521307141939449863977830359818159370569823623953449404613439202765032541833539169573137672156477710665008554796669402516811776987048074550581978193898809146095637572912457420200969879196432108859229579025060363142415823831203938971002653332284917633024571303928230761788901612159745432690053469585138222739418008461505322393638450405159396775741430617080380010041348848184410677804275750708562763620243532966630558024549975854575372189803707896026370491716019997404715320993283488882675548583822771057997770054177056347521306889072729561141456663141194070478563642132363080331227859688823869633522104253814851604600159367147269112095011428308351914745713527916683546972891506739290424757744751769621068517662290560838112322273172912249403546710559929061285596475255182732982555493859071767253745312041490230249627256365067490881268373405947839461083005686174912374808999154174694864382517068380593904730787201739340607148611798061014173339866357351795590588302412659955252571407093691910977817715436950670917313826084364384920573864807175629967022481029917066412736332746561438325706205941015535530018725585595872006845829131833735152495146332489341113421613932349425660461595299845835252215422412799051176718525226234161836561840850093850145223476370850564781917039229835332999347487771373151825123262620799949967965355669397290324621695015791099272189839457646435827227260118503627705996737073394162536076960385891322276091295739226635752777176083490934215728985974034044697299577767267054099671583188564521394496515049664422856462316032802311603904511832980378941690305675251617847973978104112988360878872202476485492296851873751138344478887209643697100645776844933565157075196299734999904319070597066545952006049474817079018406117196172457701232245859268600417649635739067828767923076127938314943977519144726285491416830820502666572207199132653655109824541848228597514018756259960858025430305903174180688170699117616784440944288277290198635460834607448472486294982703612123943822638903674801809671870228040543961223867304904784937032446802642608444826212969696472506691262158631283423063031647076782213282530670068936801495888357252631118872200701872186286242843064566382311746383560862920975233975867221732233132213133163196476883589610192506750637760514775384778212897399513104841661019003853739264654277819012851929209886279022063444611823578961123793042323366405053114813034233136466090883670468473071743729713275494103436033779712007198127843151508095470494706659380539359089123345002955218861196163455685926023384670138283388628828463826308274883885081960330093800321093409593410188010981954121317316109416105784051537499372622235071715208765135781962656936494256054130465666753900618254771314350453838142285676004914294140014725624145432960623271048552976380230443920762664643504135070177809597023886509953268833567455604691784341658037620907288395652539747083818764992860290342245832294223301523167947204919542801059000674196000762137610847445605136209692787765331658943744565446717655961361791724896142221510782651012120821080788796761618412494261289692711156652476448798265119556760684815003918303349340379960971884228366766920661048815307778139415904748231847350356643074127464289658914261433052127486394860925692427497190939843823464967255081688753244144979361254352727251410977078285798812288336002805281182914253305398575055914338939656377615330389652217017087850869574547836460845724693385003487322692032605426676653595250199363836681020145181807154579065107799747146907707512495700097526299756249278200547109481971947767881173224580955051043695790093147170621683221090518227453764610793289832690840247064369239769532710690315419433305173067417454376407713885062377620619907755687509788370269735116727316850078820279874364756161842554465393816089996662837491987869809831096827362740429066675544811945687661920040819842352701196075601119598096481874580427975337030080133655545718500142548008046215338470379188625299044168922651173824380490231807859936146667128791043855906758735577036642445866483285411827092796078980415850167541128909564709375983295885626311372725453762850063876027840254419829430772841760299516391242281400932441095580675502473804554765163539097014079253117926612907660938698474356300306709235955707714706893143727562779929230154625938510631220507881657914574553082493952600175220068735862777680590204514773466535682064852065249668622724527737733055245563714787137780526435478827641278269390321583142213908140181725596612709555515027695734363597642680057062253015397224931053814658182005374604697901785310818912337438258919764314019946683601131895136851218263221150801648186168185271014463402628084865244128341689523811257134470115891622613558425460801891568546256202344121502262060559141362872460927870861877813763816593573634553472107261371304964544615330363415828277947366838973514842105939160222978299429790812455403558350686495543906742209768003270919610114432525463549943945029650257807584959494585073389855021727905730799734873072027280726856195230321009647604152204851400453944059378015772690012362229251510882855249919916591246935388479290422673838108018483184405489832021852420965392687344570370306446998109113344570100541341377229329664171649515109664117408405784933934869903451608509645173977079535786838579630880646474518162767411058541990883273050413106980278423255478368720340608374553581714834750892835218041351727221869577412303197976341373700372509618355891757126235076624770664935588787179678945000176712124933800248872294547613269882329002148561112833640926596057397218854823899006820175751823200946302468365377574705934775239875682946998929937856368085005342205573784666974838305747509679656739398414079097993319698031212896506885422464438693109030732007042014791239971845638604318458861364699775279735246734151884549543789549141577386221447503658101551468384266463765617170826115081886077071002201550689402762460683597222750341253573494045745744408367844876200898210440030008902550335458043607902080803239920191712917448636872702062434160788052582058020524839371142273061674443698128295212978844309467206666226853951795798646759558682242212770033538426456415339640868275778819565128601179985634370313346565947995891438109661111604593156371594211459813973364577596130526140284194727317640771600863355804019707332394923842091695545687611240023228415231713955338434408415556131109662373025111838608098928646566017876520519080461799242516071011681870580945961568457075934985944637753450859707704771802740119160217313321607108635921531056240592878733750406948336822963575364110823739833081845317921923794495760901996571775994883158798944306357654871544148950557678219568377047737541622808664851926805668579518537766632874806860589497158553414115992629923423631810611299309355110011914797333078079436269087999233900489806179079609942749847245176326207540277245709159033681765611387432095639339033611742320089033615410792610627230290806249264874267789137580616673894784011231123738730347878721922680761973670026232462286055080947888932413730833718345819373868091221228923525553997917075380974842912611860716180356384776799831662172567083684514959651636951144507840368401282068289905273552439090962610777023551367960568194706146014883434704834062091975122600667165422417046177416571775246993937749324092343196338408208423475212049552389775224738934166678856768466707797483602911123873974158004757114117626315586010647802619919564196942278243490637545715449767225996077656217021139229215005347178108346345589375661819486472812758603038843153696874557592707649720268329817139712602858636062661974158771128025187433641863203324962437239620534573884873367713293731782785061971960010923791803610949300096551800716946039452783781661928909913242656197221904618419379849869199904192749794412023511929827866675686784048558696729995739809438458206769467872745607462635136212368622904825078639536321663899061210986858892350099491386762491388827146781258264281017759668000469739622510299991855695777265836757484532795538800404138540864051667364644622625658404403110065897365058749214910509531730663090525778544646436965518799316955572984362155005920150203703804384137690424314005337876148364501568669691217089457024773390716811434336542521212697155338732481893396363290885751112062698801403961691819315921366495325804843896365276459172384526315099969396966470341156582152761958076053182308054681983626453338874877745963436265637665875463496014030611755406763180002176983699925534467664870668409123622301174750238664782185022992450637308452753769492144994385594772436967673856258089229932987295883330526585727172669324178768315691298040083119067581994460018674773010455113863585023324550536459020512144405234891587653212493221477517700933020446384966462299145763825696022957861326255154999220785807519794275678373521942555509461197785979447878835118352768521213252697947234634298001652469707976660355507027270915107132537063740466823028298597313084912441720235583973237407021103381196264840991109792171558284439463419072422752982400783441688442905605505560521503108595694922618761267310284791207187103809070522203544823221884081959803360084501426942186698265507311386671126784517187660684101540451065185929926536789516589094731645214780296317274309005574965800581898836953873172718180215788934258747991476181592272233851715706249892703873561112005767334330689807270486602419849894189048653277797690180196612371737742220077823570509982815248500849540493618349845966968675105054101600135577936163387740133319640131070286764144020619767324963302672328396553878790753904557925002365560899397046077565419301913882800003652740186627956812370376965636844960417825468156776449594520051156201757848192875962039166755014151342631529778720946003090491218285364671382849418108477148709689719545368180112148408343655647398908223070574005807899776350652111433189711139239261704987305455115517133231146411643754632167720584787642962041121082076339233344782732442882636281050662537604835242473749027083130884305992671224925223010134932999022993314703335947058810979981420920522387113592043907588818273023848607968291610112056981808527477133353322753546198938912619445986028036138485044082635766522705098147990972236724505857023922885200994187667593688066069951780180334538817038630915798011185115723178614758936101230146630838802596915502423651290287196488329713406250203182410390285908830354633844874515969757162676074004095308486013530076062320207712140620836323874012135985476459226923199858292333033375823379101927672600547212496724435003738727905044780289847012995602724573070439423210969914299662194376766311550287529589746862249492197815053953112581917312545871654090024757359803333009426441011887545097426720797576666487605218398175780518094582075935633325872943512745120471991611596544056496912918661296225056735114222164468462247266284007787863861712250607943419771914537608472370728248131594217304038448104106331533171572240082281390138841829477362660871921563884128857010455188105089523734625463280200811975207236052788557320347501990592955630978480276407642043075849744207699548059961905008540433579281539925541503102714396396140397599935906096330605491215329366129188701795895553127231346308269530304747646043335776486188510721176655597038416479590535082978252596291738310778910559088719665265473319529345275999704259336488540569973369127118784784097226094757644893836168173909847432625457971306860459955184846718374431864950921251507692485336161943062100847249673641337626706223058439808854338625925753880132796746661549092109781207661183750561057038432811479405240017173621432141069824850662173830081122557609336505983688223082777900718753002307844512016543701358421179502706635191502488669062137555694431072885086672091586125790916120858752405104767927115456033590805998542209348988825346923121048162935625258026798201734884951502388444666935567949028543831630083865377949142660717194542547194722211780215944007454781429743496775037455768482099973101828007887749331815093687564681708017221862516630033646930236479146913246936470474377622326022274087848119975295079209285168050810110074423202192305819047706283210926544904682890624463875578565864760623959763925582428682553909909717923650652831074284140931065832511615877644734693697670191035719130474164609054236350841454092915031603444109363833293765080528900144433078729424646575973133432070659115326078128450946028191042458741805458066323555594891135872706994715473568145065219479418931751420624905063287544522065639919624357376238241949145539340471765100119836454351220941768955016405803823839126995708959361266031546625736030301728793249181585837415290221275983286033317370785505251987008681732122621619632626041804183117991415049215701319075791452411479372269941435567594074731226713755065703099684888284488732211348124510894281584423891396401820847187191476036561962152788643125343952607568517066937714454697005070559604255455374586392891682009645881608239228860569928234583798954240662066411686053943182626165294665331414184716291574617432876325350695108480382009901616746305299761056671887530594248196249378520817554638146050558063253819732833223747444011916986893024388000294028266173608562388498725603831377593823318208133059840607139205949800307543084881767962112667430203362697190611140814868577262025751262042559445031564846102456037706892357026344372179733107709694767934669982654798902722569025789298219597105877403134408087214218494589065465820017514126440274514775796352650199405759583940271941713441676591167221035287257290527760123417766892998675438580685090751809248762879126632822560818302650975416792129085164171915178935829573212176848363004929487084173791575409978624466467152062396411493153185995313876180190594998948557668643656342304939245278312200439736077963236783900567456944379434856366678036257073565348168824110188014973997180704494142421393658387748321349890227508663015205443238493819877896638106591818545834114789296824095685739307300386939889142584653290456383861188037375331359429916122134162717474517390456267942839647244958534831817216838380825994981736898667057208893381722088688565126036421062371739465805544309714145086611084338788510225628782816171845422497173878508944959815995409152780507632883222376979303084214585932915288723457762466250182631747193135325976892881342795215899449447384359326643826776983584109769711269990003751659734398946589964261535788474336523974225039346596313455337033816183583131308413699886928143670231363969841606220907928852843200505731823816387274167436363502580976587131292953848828915994747067373711268016709684632334131407767661188000831209917087042713339484930330180922913791989243349607704486351169423596849551958678002114751308214416019796997358376340257475507000070731548124898789500926132771606222095495447058193516551305486410921576185003477120676171241722424546042784766390525618565556054182182182025201005189061609281193179219476787948602286567791262743438121840173594977991076713587695437670963173397942081398556785733222071140212033947664749877095034003631297794015103170659764367995870536215101307186417248036830422934483121531987814654750241109760336460068641588203102451258149929264728172914200642178350412940393788689990533491652720487940201749481959394550615023821376625718231989112154211464886002470806563494946748952708687385791760680229443362828959213941564270224537439844166469070906200824347243184597648296770359661695436282909137229674414679467095557871185999272520153520025164685904199384584930672844666005494143553720391760666791657670396552744687663720517397653708185939191576281260285598635698905650287228941433079448893586183849025905160664242491138438124787601999591665634473426309649117214767437298416568384196370347622136896058015995465476522876224187230279981960258943202244173902050735400494743818408532094696127690238804832138645969612162170570349007074971333096856892692353102382375610134749920957286283669575519350620881654979775143892141819910495226957714179372221800463261813927271898278345968831326611079710054134411604408722059080777370755396184848174530764458147667163606788571724349963966158700396614729986221734085081804941259079160341329107208305027321821901681439081266438272194832632588574056750439145579920643226100348897784920887971352416700091716516605504502378238179380849368217758603180161124415379979004633829347211724546627327239736155527078819052731953863616100356634599221466386887790688687607620255452176138279702452331243056352751982551463291476687062200049115257832453536777042905749879646363894593424906779773977480265487446041539297123346354045998383606744540806471942468803809820024640187337619150975077650232899833456159906661864233795371731862666709249956905964370364573314842206002973254723459744286740135970603755116945256450975842904629495251336711412319119604279585835471608939503517526993335297491112869952216769776975703990796122466316546432577781338915343954280510117062104186025567415484248646435817278088461142041838378997232919354902062016229874167781203571137235119556467021660220460530373433757303715494240007951233427702783376595509906531899856065392991409947641251581772841148696692560588946104704600383922725718368929456055119407141983805216322572646890484683388792162994094027388217569534931288764749599462676264127891939235868780266336808038439672643324925444807422040462769819948448971184058127642106464692445984756231308900560768989138829161117146961561133055818704138604199362602969782081753724641835721605295996859508042019865358945659744997973189672011231993133008939582576442325346124744442499665958588708694995342892146928295824360530875856274119775277287562230454082020712361290085590890360101068372859397482859710511280563784543151585574606518500008047814069142146036438097895273281192999849643633269699946540237330602312619951186562070335947732848186597137041962977274342022170976337095017240361380425658314548172932454844691214291100179779381670036468102559223837035406133876909442473189389132099696662356487045125533736179889465228847494890684649902356119313362957646680180670718851050944616215298709104948486846577308839644716008869671076309149309997375043309688555824058939496979070124736935822570907165548493153865473449571150787431895919052823568423875960678872212495676399610244355573995414726598809114388808334940900685027092587347742347327205369681643450999396239570330867501505355138880341477640205528456256780974181194757333346486510200108153641089437184088106354123122507174295835994607326789534677130104154284287769794582832858361361970150962605177461468030361263944334948046371137761942069696529910309601471177474305303634657158987853629680408755010307061874430066027188574148250497327033379775615054147520617307746163295798919156381280983160697767393281550254438814725858328723800083084069528096871046181897208760137198538251225354823687982319072009514254417144253859771628886566884864176999216110427303823310109787857367838727705470965724470555810894163966505379066005027692410524921948832604755543114554888068655565116874133402221012418042125577853862155178317210083725676127015564278187903985191809829005672733617229685405361031021053400814080039376903935350739046309717137786662943695993296541716511099479308850425065981221254290739749355973630768218387209810756792184154158994448080631154886316054154541929240487734556498327400186078317118626512618900734128857352372013400026572184504912334446473849518495125205738999415078440046154160892145268085061844706868318354221739269650397912786231166680816474872161934841614262750221723305648230725262851955538913404167221605281692391192191385613846894011174842825384106899142922184445734951644438378672324459108194252900810727252443943991988867436940486721120366345055955135447059590233988334975150751887356303899766192008163329245487977650280114654325022554718984047764529331677933252210551184683203081204816184808680027496149937802299249179667245756137751967292428810687738729545696525802984478344816982577199044566549102051100021542421349499115131285739148169469643609220782198685343664648704200126290738927880603606617871715845515479603757661121344445016917021895495023568521724285118559195642405524550193240763023044264013127774499115507052777533188597180978541204775915082499855787032726483453354861917552894062543578881613222228503183348763478099444782044914822673652299934313559806882874290821575532067878448414830109402264755646146847945134911203678099439410860870703573622888075749135504372486292589385905827499305474769644910116949815633218060859956803741766276698596413791662643430702286472369438557543801610253917142492321212563988227044554586841170244028173474871139100425550456425459904613073062448165315187789886299632002367486161411791119465258136944760842970200265885875741769230994275297316050527279307832443315046818796914532647092972675842390945335563279456454864678532229596419248312609358365973950935482174356591799561218576801934312208498368699122323387761769726930791384079534770778033626287017277608888469658490034234872317895450755197363838525322160735655651936241346636717963857821749835507416828226247874866575656111634726410904684459792427996147389920741818344363141276170496090629181380991437843906290634715684629925652046762820778074488075650672636682630464772777822547575363055334186492329937660764836249203580032692819557196459533900440373554882694935615325961382381798730293174009682116345157537762566179142879809578027597450966263939600833948184886274022218209703956208669097291530960332451957040639448843592137257865228827303200873167087088688333962187117010966191443156009692881596656466944908992165055020104892938489555803117953634961062712551250945473510040289011818661823400207056106965647725629977217552699412858757727533260210293981032403338717607391973069946649717815146060323622640639161416313606527071399977829598168541829019358244974934761335862320989117828313933914289910659465764053117026539067234638383797745908656494694494231397603856368302274794821887967385787029686497485691268924929703916008451536861779433138944902909855480249639785399936798381343751677214204699256840021200282947091286951199880184432205833586545024800285454527073838316123065006854196547287360867642872832808650892162413073139210189157525747691453065420793862648512396540706214299462426187477675138138342078174461460694236616488262865431276275494460901865893214640735546988325522401011845928870057968352685615600996603452303785327319999863533961397174557917989197518619249872062702861113237631576068636056435475436559380820868690805790474863348958274430484883911204778922535082955819773739191397357223175085457420053224526286550761322386943053308634335341351292520768846823659921373727510551832144769263501683469466702038098638224059033603235249644459289208056254467691042321390545779752196424681481319773726084244619878249632778494283574894285960431327086834433771184528435368428151321680266109720238321054782914022340792789352010617714842514127147771384057502161570332532817628794875997052458344079848007445847336340451613786037181772149436277870709652816957782824738408066152919705642539649089349097836600897516139619804190309513207346493492309052240786398245986422382315729894107535471836441920386849089927093666646825556816069674364760459158292709201169253434628407192519744222394690346469678418705417889812750551258139352357623477555596008198328646840833945496710031750473731145936188541093141818083050801491913655219370590128232527855206812378957129706407570224446083706197341700080939166000368990908575393219022637628932787336686066652377577675912436326616172025344877493356367545512498018825387932603082558923859146930559968709218688400106891122852606905412209034030922379682129913411231755327419423176095367032751003944931433499495816951106033509149947489741634304744763753362791545163319751897684880131033311871617753516666970832285800115680847842410345226115644041459711819962898327638902516101452560638629882878979188025751756693250319931589866154426579140645094986660883266751202557326422171773947426999154348442424071923756545796043185570472031665379254333588773659621099194404216958071908487819820054485862888485350834316058858929921771035717431641025292603062482586668737560215510577054789754912076693183171013457062976708844495539773637244117823209859024873563114992511003301124964101571848471476517815068186574598153908803364306803593911920015265426643039846602415691983786326789942159805716285272806826724991403646931387092199462047014272263994293850753858843908235677562885923587887856894313180667117279807179716637688902954179250050256766330080843287353809556117609514148744834946996552279814937819399002972938003796988145703312379412053911107087450626142504896144665373068493848258020101163325952070037868337083785423063767674045781213522047421981175049566028237862088150560973102797877716410609397704930760327301231302213390502105854749660737585958709655439213241550225111740421363090628487690231451610482442190505197355856010817678468809975285143432636416092637647032172410457516185572567821291031051258685712335641593140151258507897155273558778898062076330439441023604008053914819164870507838626328894009516383821733020222625573530233369385312653349976767345649193506954121232506596013121988913704914142915620590186525824727922231161242316861244990287889634616477006973096200002423829720124374691682995250307392807021816845588270274070493630557437829954486471126839026041895774084561970823986829085943736764874929188085220446260963852106246468976469778203220485031408618527300590846250351809716052216270565642057825288126263084977557671874744827985418293247552568582896765543935044464318600093266736367165337142878921021844841300933292643092466161029527174279720742746886981287433600953054025178422523282265234309749101183439907223580063429684189197243067529449841446702441200170903395064148245492158504120201579220731800275441455047501428139269053594518898847917651820854855618039742522546408233725566258862382916942201784171791262059591572159806521480745589372784575819052129304762034347074097297042571721763110113395279846123331104069328913544475717002974134800606107143829929186481472298203218496652075754641824652486564295668590553590982607411156003328616624234462491887529889093760852349433579750018115586757665704488459552691748043147390183173566858179386155418053089165910972585994824926512047972285097293357785363230354460067928236445374391216536439771264323419605173729385023603394314102453612623080285029783055975337058589818852096037145076955082707437648890971084875250248285121744661925382067038404639366237120604234790413975623668829740103761584672528000624958567213757830051504803048767091290932643235845811638211248855660459383667317326641466621915743695663517465093605063707759400250266439640578961407607960497910301084259113742590157527704430190343900966613865306132991169708851256851066282248799102509621399888359116592761150707731787663237037798442654533454061673463695714740464780126126345518111458384503731589193006700854657722774638880228604247925910842076968660644095466805617274487111621292969601314589913965616242932010093250808171727640956082465110703119149724184852992056849192393835655668261732772618691960068000761912724277442611492344368534809645402024288218940950691193108916773283935770268195829340980500268324965738612062787745217314456071200949724999691151632832388979101494672648429689484130637138318649080444748379984898546070100345468711637093677220421896906847646129132846650617281069165646426678167559516232586911718482631710197445506581575016524557716876830582534440352334376384678016014873220286280309134750824727861813994856193129674580383393604476722920339032940441313392614630158978095033220901912437345306575806080056195729527577269381352566169029798022443346410638528695280715514168724032159371373820369574168659189454637680122832032895417120476681478861638434898949284476866269481330430813137706317652346542603703118151015105079076224741390118844527637978640338076899381905790693957179682756086853033276539730290133321466690425579807142486867691065799546021205629607865175852517101641795906583875259280842043057072840702672704461125841060897206367724951756523254432653764372034333400188779213962487276202530862993688460815316580533860675202395081809788300563087679342187315962199566565854882239215829331731141127976702485227358683965731604144835820842621003434871098729650383548179021378121546462953087042257925492393208120544963661422450163684513265128365354934327141095092275133036077515710303629067772785320363188340997935153617902163143067179067052540619208825634998469126281642978839311533522260087324440618358418118884877293701123941034957219512994288239006102133493964534178165896575106328850287767896310141328451455233882347463365033979530556519089720995820231424669044831430325230156151793399029918553948169147047109564310208176956946422953544588729468836608642012864675436193234043880193662720648460958953109827027245556526070531304195869950025618756118435860730283006808582982051749440577528390987900895606004482073917465381022730924639401271437953851878509561739567710874734884238282734271505062952791134378845830749493846090817044166420032962309252589993018494764803780546460704662326099006089632383404958749812028413817589704072297707073482807520394308161631233191411024186705962487801476768708700966119232071237758328888494087746790823533297621421384305708332175069640461611741169453716304090679548630169534498877524695733028235141287727180529225427683973869641205083285046908088628205638479195206651081378396967055119502423254862427287040160588614091105232161828669301141809371890171656726907742720924857615728423749429287134133658182493397127021292160686432700296654854944096334621764779139890192666259788823953674926830182845181127296442604623534116957073958944909966786871511546062634504856162257723284607649555734143969493936917071582577246398161681712626980942196329986859215139396291558016959691978302340378684372469816495406627734357158253476919848560227863894065428291691082597814963774601021317912113695290975754521558333012571823287442523767038706109832722177089444543303071741602421868592491377529273228341415691670688050851571356756047504905213545626219720628831913031434037224503707171090178173881021843677679288996282409092851324217249264363259527117755509785825457279050156622604246493966547682170534850219156852037603335354102557957543157305081301209438072186160651260101357671480316143703071966087731578703749949180487364809672545178300543113316620076642695229032704974681911246596381416419897499834616242034196780314662215304492404054744771295102878911420014838661193942081824351276804210653762780078098930602973447109073981280028628724615830602329856766724733259751247650777222153336411928049604534794655013277325450036433041469384320875334340075628884557616175505918185471873760679539778325732889348443444300107192071830940668924792981808041212509011945061445477160090045051155115378206164647656778655443278613834325335278426012381872550269896711700650815062536921251464321396232420119432959340325592346769605025962032661672137094881542985663066765142511216576748739421805701878803622959929429818062093558232336774729309716685864247151520561299654087219324013206115790500127613474734784243644395959322109783000419903532048430641820143360245490680111399418081071144551805677322468181948147360818406142622156857092282550859987961537909145522036217408327511538049604345347706015486749158259091947828862691233894130049044586050203786893626938424088207432989250348869747312835720742337849734240329875817321062670700665329685803992812310493476349364683183476712146898959733075543718124454156571414982572122376826617856914691809081415612258408705935875726874350311552962833461422028385799079851040300024562109709098223459137464499154097402877688745126431316239697691294165055600389650188266425680760124029147632124287929688784763303697695809581169963615985096167618056436353156934410579709607998180448109740583238445796237486668740631407272746854539919008679132430271189739614078635712649388057885847281679041807648385765292524125789601978967192337454436887461245937364459918169454521291419918790858687252821046279544961956873602063939860926461992283403695767223613537541562544130430741748840798048930449418635574291572820502803018244741574475899759658490402232550751890766722266667471405411451533031584026138296399532426374525613113187102921699521089049097821733160635005919969996498524307296567153657255437557666189959307473505962298418711237283603511391462837383546838798002795470211623751123267963729945276408573595007721006383039731242518510045957443326766456551037721779464575551971761696938333616627680322661356905431081192990369599983279228321567146067807491680342144449370284439347603541422004625208393304344663169581882071124696321202221232694260298065079759195231369080006252245686305897969636371469534276025889824175551837177269756499288326358466698170648913724611624649800808695574419862484890353863541573498212148713160408016329805778600112294413443204038126003337305374249828635099679652045751286856543826570151039298633722951884762847898162955469508761316956055102359201784443250569500574273338133917217205292981950067095796811608859831304142237591870882902408214349875141822031120046487107131655574538694700172945100642169407998359417517177857968477492433162582633361884288874848772122331732990428109245381568386748027060476968813495401417815837242796679548530133193360879067929062963892707816484273809926836846126409497408181533118184217214462059967620184853320766897640145762906002207943894543506345405843903185596768110651322509703649738693413743221439503067570548199536060573228729203618012507237650621837038555855802777618869606547533532264868778433761848682304209243671837983045329304274260900583844037108637488693070273311730276082830318262462634628173806962922537885499850375004949863812038234235855388712954129263056685410062540992108796618180320822327796264919264418043928899765974751417195263969890197498542469330436459507576849558374235438334749944144628170616674493619485125710657547196389624745537115195898084460947771618973853798980525867181145687321747360232609916848320033150248009602157855118180384224078904331214843675839054219689406776962988925518626393463896733296588583345645415842178264806525428071414431526630692612533668853267169844368274211867725334334345252311057666922932390322638928491824141992006238162007224503829722694109180676081111193906595292703129517201393969820460360429766478008974708017880374229448665629903387633454352262985591295701642797759653682988561404673502958205780267051612196472920353149488006069094518245247684699718750144652342804064610672337119574430731666140256223941374245523906633161299032486330650502833829250158376500728523534611535851128138631779788341206182412158923450328164979589848333825383051350632799524538914360655088680870073085734569776206505911774738929946221240499714321631891681519920577274842960962869458424697960067785236496364729626387360521983136502625832820613843673096807783763960987950550437657235409903752946159984463596904602821595104395662854011095428903777027636279823745018603595214171394047599265309739322756334235430127178602677582571843017687789258458639369552456961970557638994538694480579574264077429432378963443276874220297420471867484131074173963715933156274664489461032654262209814255007848832741660770586075445086904939206762105167299993302004876039220506288097998280528943445190843374383189862227016179265458881579548089451400905461838262637363319995260300213440915074686917044245991726166199508408547704523583160956272690072135629069212238716041611704227093846482035099429638106027814956573048812681488919421580042211233979779814868241111753144179609352209275938030874388399432752370608247154633666510978562482672621660951976332857320866117431833329227400182861616777829788782484603972287524793829540870972479466633707316564563184052734939548006067154889787601573548623353396952300408052666883562665626177203736514075260375993260328497708191114833299572713420903587730019043936919824473204312125020238172870183404020193915542796150503104203550258263603422930332339291882235319806007711847179202480782979180824543317934049395977446325155404163129170798484043056285383471561707315920054131170036807123212354466561475805327947580846774443307689027169225474404684132131950110034290430733205851857905910892911880347040708743764542857966607226643209713591966356486166090898762194957389103077454739453987314919596132524416096449997960373983181391517336673036941483114646785284352468576202304199217759027595537607438507971733250606038584106098894814273730108279137141221570580780038405090494289116504300646351471909199025664095819922298779775990203261469717490721151465357720550276957936293395932316232713621920015451374706975444700758067479400401017224006836586829859489803186533683217541025881110603728880796953768618906784411496226403435425709460207209917879713242801442706923832635921232359326636089141790072629808185735481096417189264811355297732590294954404167389355399801352938019181302008018748486396299909611952656358811252552546895838199244861787937542958329016259583672693751027872847702051098151419581856284198636587550619442532529508822219253190832515168013903262380182943310744823026197979875166879433627192845368279346667842760072360582189085455713960849194369994690444545045810647871158280497865160106388700406762038040563726669409166902108825291151162510310624212891672121773571964514932000130857896354956528945442804921976756075521108420442983503056928896143270962748545999435406630669554487788397588724260751523065590241251290919034021038154897959453181681575085995915464538012011911013407709696931983772692694359551291115753671227303342588573923563474621499202430966444769392385858915944801648216630166780129564980604456677138218525071380138824454688542105662444913080410873547082318126671147668444819383455223857656622313089534783349140644618142291216016479389991433119623897310856298140310963421321676075632640976978216401598564348759225948415107086732953466208566074351201711460183041375867820775700003917218338494414937029789299129991259943445638013563853983416227163574280784402528981096366285036527306030004850700017272877875287175781795437403618609245704486272725713122343616776910554811887942507340442340227125941085693440571771004702499234504599616670568310960961580044822485034357410343528302643710900994109299682612230745290399096847883917609049808930381624540843730830133672189253002557251839006734446556917897737800973323019644121175911512301443721650201671793178647474733388105698538568090084394060674883424110550294714892266189577035393061243818307292977971906649996896915394414681061985580591584307162300994282517451637307305036518986595437780650005180382503539948727055898542220399602772670954898835738123847742994228430520944788688034671813449512297454319240192435732798342701514827797572114067748715696016450537776380953115446220154561573805469889636167971855141137862230430530428286540399877243744807334895093420512687507304644195117241624087476980140090121214769009592370156346399870163237564445327649888743941585919609162666737655951531031191119797890493418648470195399622103627490088629619301024237862731325897244612096670210096231200420615707270345356684246136957239383646591439371841359903507205085438964248768388253980338462023723004031877577780117862272140117361127955720409256425064143647465342787188691219605341175191050123288423893754836334418088558601881350030401523429184779775972538256193742361675155115137304555704402584339098397917112221178198659206010983943698537993802733558840242299193957985154586218784349268664851779435694552068869714242638419473465523508226539400078541215613119419544178930619654134547164984282193190242764430955018010391394435948227800860173779840744592100690277495126100251508355621074704307745538187404749659927847134984920582891053612663000645957589557455410895853476926768462122615499615689325878561954837913156935584363824488150815352586994973847981406170122258546268547900592234167289055994339442681160895284893916755663849389396353537812813274821509390422251847040636183900533095027327383459556551364398322062306014941295819789346713658479829111284472484118077883994386999478534691594289369847743318011298265344145837539100633141088619473897207440240160426887019433746204307057578091840811301832567259801997368739709598336467339346764997688494131539412774046872316574538952799908845095222084662938683276111757638697954183747240182751339558014750474877818180752972658717091195449767162729152220622604816952987118021277688501265448249108741104513489840162100341658533920206867731199545124800769541386481629152154527722044699264421213092532600049091771366180577629565941109316872932250530485058762596331799554372210317586405852431565160520144987586167002014223405225893809945733460663468485467207372965403184768109698419693454526423973563378993897689845333386449669740851469333977108569672547991762645994318431123431694422084495688227104615489891832030294121387113559877822250195023357425769212769664677924115706004331854115727617397262109649719202917923208084696828612641663961868412033556293576037146225550336369491483963298686271331310520222011936978557374983299047450585187093807702313347723994269598874809584657024029976184449575028438547549068340443996646689594666359193489072067453083354378525671165973595215170922685285854312699340374357525304420627382283136162269505740922663980592581333400929146587969696074219996380836460658696574554255987280746349918871645704674242568713151597329054655568448837254515955433008263734406140143427331232075421912642439852035915994029734664053299451749234172293818194394531562954559381237727111558849265290874554608283226153824503923015727134886623508476105202699199481545671321405915553367037033830745314162851145969900176673576607420551411296725030974040305308144820741072459486323754770101149918425598781497363944636140263145600605988306388409182124831766199749343671920617013889392674818677741791436255541922977582024278444929217799158944636740493758835467532625660102088629080469717815331427661222737975725401682616422962299590637341096899689093620971712574331106802828116090657704904334661156886996682660410586470749956991191043167234739281701645231472532573587015487327040093609415604522118046945673238345020656099686225287802837282434048930127172931576235678877375766656928981147911864626545883151679859158383892260004192057856123832756927363311116507153594025470054709531999336266008738152420156480870081142236113077867390148829221020050520309285288327004748734038798453785139525855782002696756537255292775496855223095557444587781471226907089760379351790850856305028513035857106967819451294754222312115747608828418757825741930145183435603849722217128191118304646706618664767302875783903342452689614624591801047522597903095739921507498679886550457603386453707123471001507744732021883648978342682702284269136907732164076196417486233809079039710235653256294017301620458554162532661031843067484839997361461442923896161068787771684392091765762568711043343777223228091591154469864102362382654990494216524278704821896406141341572105833802190165258600610263027959632029566325815723198467388317100481910813195169541994715102342569572872576346349945905316892661969152113812695226616731337224415529844743314132959772622145723502211561853511384805364378715614872854748591259394063768870382649730428763632403227379195944003973232773337543090367611197892792142041033357251635525186308700637407124727530373613777184966847676988331737750257987342220658784115766497979895915429579143560110322990428588246628213731963128246366237610664190074794028861486814865463698527161226603642896820867144752757132757336562176227613546621472250468221471666181860272860625736875892378412694952450934634025542487677662730010464769314656591129308947598077489985492686169713417701119454643990727482662976301523714387074036288836681917662098443937349585360056299860510973481985939897490100709532895262867240765280627211073359531888624209631820007107192552248456444829952313893788741825173593731424900440802162137577253151275488458265723487801655947971247493415623641729088680414611231735687409540758353324421443051234674824950499751136104386880745579274294816248419964409624125873436601620488241889851782227828554132792481259178373645316321402474136709363074807416533662994307422431512542692674705031389221579247391700218906667048904898890477759181550354872047868956248315258701016239340698211260980656981169310353330812958554161164351528257536308530322054964718388022475576720462064833750448490785718915105026969263217279405714152581929421977014907644919330943759676792607215121420844459044437330427943243702775639194752137152650213356337154722226047744850491637933141969931095215417276900937390839036974501699410367115150099282108107845751845446012734311458055513366826403705369357339061088026256880152684406583903071809579393491057792164826864324937215506192858733762825381687874938484556811531446537884224770003245597743183599101616395581717320456656617247338582002498523004979736838774375022749890721113934782748014860172524742068516334950244313628903256929840042893305094286484463462493081988880734527755955509824307458112894521957298595664581583917203985354937967207700493292510427769532976548045139810447433244942829689239849888926107133137554080599069522535927628470250014445986259084759354623246018656201822934977912364899074130712824495173170390910896375391753629244993776322122938984775904852644695804752143374148935079806949646679160444843772082694225377405089236015712836122851023026443925915718524834200411139812518620074320367102819772578029232852759858898553243198597653287802865701424473129130435336578968408773509432798265338469557682671473987704640028864913435405206221765213712507483729726844947197701789335862942914129948850793451626152039684020478251862206224538855325253669927338742672280440630691230017717774109049551582458354415612757503763806546114070216193737824686282890300938249572886601469402043121678363465358419112598839453100993445448263900759847864621379729762897389671863155102009336609455490537318438773546596393784374184524501157853487698471121460110846170593120405252292914550904270782393942243826307312250374856378911106377813795947026076812781828408532184857855149963133409975951397914919919189960836188605048423135340094346158651514643732070532434166238020950912148865775145972135213780726398403715221163677768403402670232973121944407620776656942609838865893856828754537537399440536452355154729738533635418724733388954114329941140667033653072637096707136936614297448964869434966492889029118308704343377354319033621184499561663555090035129723483115066772994932758211749089087053124038715824709136120943750822148868755729196423028120414293366017854535948146772590991665947988410006333380250619403912367722249889111706925963922031713911217857030922994829820703298590003488222316260684882455265265241359048172790485097838382500574748019818925272877691823014667076385487302501323008681323325532705377749915285709852568939704712608383649631249762126051746882714636590793166438162695918478755809330360009128389010413536358768969417599758761461241812212424147044921641648626837926744777157483920654619986306514679858568263479373823845985822128116234166496474022788665654163164197947480960281678469475704519745860593520917628321468207277073917559775524762453461471163231474729864859092591689932808174243706736557918480471208755425154450714020369952830784697046959410688812117824672258164232709352922877929631012750654273646637844091069552727056403930534636111605849081207775654838800863590855647445480024217407193690201747679807719528948936677453948132385671847090922569373570330554743690328206897606389026611604306589769613742967507793009273130256315177125163438613447235642415417579728482769745603199929938489263581266490977122882565941079444613104181261370303106173918798351560225208648009750550995518702777437462734100356839406239390736083052622335794961354756241435044055580788570352696855490319894405067992243979218220551562231512512266918098353537950339143817109865324727826451898982447106042631982931805613925553492458977384159570644043077709059704964642161966937643723335418903268725957503857239917888241533438401188604245836694087690925403627894192434505836766889217914453312672464780241595325497533248956509520865692833724108895002455100334344855906992189951153149971658853647042116314464241551007867024478427325845526062475229158055332792053222493159729361332123007611500874330631605642843256422302023963409887862431197920043211208626691153580818118534574141599116782506310827082155799137454085095575001470471672625355948540471536459285635127802240290275403091166434643286254758204475946895790136196969740542868344737818097217458941547607248374380404783061009035353270989750585914259245673285579194184585219101091845953854984987182534253832529359737074153375865002550021884147376375619475337545828796384338005692845143517739747527033055502769607224826248822757342842639380701109680157597540007149698097406782676553741610641318643208970708435244254172074034058203251940217993033238454150405766694299321722757675675620746755326360926985392427008096552458456950791966855940012843925685290144054379708264278800334453048813869265562739215746199152214673658810820549678770451194209182284805629880824509384460598811943507397647941137864196403179836639175883120297759057627733257725489091934379978939252103708123827677413486325798693983093855104882512795363428608956796962629668352692988665266005466270207218040801506007818069325238484829509464878188592155104152671132175641047061052172911755203841762748798627149290919156569814183977445349745261952799512720845828996777856328069749616285165050860450934197535454540295352962870233861408929879729639097351313935602374276684094944912045051838451068926325549605311072359277096813221148466276027561658537688751038617678968475206025594192815335603676522729183429647455851536991321278918257632325399344751016001981692339572825192920242127037641323070085951269480150489155174490238465881695650407341643400146154973993495352835216065151287648415909175975258764798898257206535390823362594265427433328239479382676559785987778540232626077422474901014093304480847358818846475479199422732116757915728971986699277902968638491702113021330837041227087739184749870832498462413691867664538090948555653073542024492228681017912697697135012153528230186112262410027706830686354427490137131646821912115201053099349288158452080395792531835374001840204790254115523392203439305010835667962250888294739906277826879361778381806789375538235696849234444516438059810253081340408853259514190389263206803918732103723771853018575666767814534600433032580279504912625775548800395007512902269410016874438488019581394926982972043831682461838864770711903901622955522234284366696458892115328414758553429770078612697983845951003084933241718733028206022548956345073630593608427857618695380704479442581419360302044656914795999551415056623875262480135580043771532209969909001905195503310787919104732278052228972025318079900939311012885947607190656334157541728101531158333374213341954899472956994448113791739637978312468048690024505285489134925007042450342249277903933807143886256775796754185562564420054810140179488743559508692049018279523683425484639037390417562006679880105383019170225589664134750058232432889489627263908007304235385124101053064582197646692228251790362834867821817081126774698071788905389434931519291463472912401987431613809284494299186062669601773651769090254888070139367769793949383946486770523892949524568707355186712609675403271649995117837922801346310914110289506644534104051493551484287856984537823965397676522012486546977709483328327256204414897115894680041799069852731679447028341662986762226079395774476760591806304943029505363904292777260060621823241236007091053913961652436070011551060360932804821912373682620123908207939781227360496025803115280765882436251551970451908901409539114619320608735380375643669106831415674901455915817648977118491965395649119923425237063362227694553973979643860607398324344841708649133908920747411232000508584800583971168961737545573428237864189430267711045575357939701013491348257309699023437590288079892435602562665254213201414542970264008361405722936160517366266106334902264446582518901706447487938513704243910603540760958768735981460701453068821444486697291147931781248431728672257868157021961440416145929370863269699579966337917218322423292656082673954610114346650027180819994774994443252702110518131734707843017697140862729081317744365764647896748797528033360590062412198405059798966080604426129675986662157994019568812438799530973641931080744096422604027707860232649672865173840987105110417911878469298654343091827408177897314423184084395134006276850540262049272497798936573668165105720921860638814779851721540635196234367740707658296455199810427068617757184133397721691848577728142494419247920241908601335203405298519180169860201982006504345692325302436943261773983621635970793183091264315212883889148848460017535277602872863340704161971800055964258906845053791363062044523954922684163530554576001857469184722511421182540931830675070177987084296826037489460542433405622324214010783271029265042941230541043518337476497479158344572669275459847720620945106959450745301755822084223207387419718645902237074019411264663474841940955573225466251972852047679435569924278926658281254608631675467861666525704758747391532264219164170899186672803104915438159960285026958021257504757663625467427516823490392303945697028158580915223508537112180420971282282330794715846346728684200308074461840034196182279851554196340931586974113572375820627449321884582119958973259807559071908144674583093397932151740596506202815859494104011774307677263933730233349458518426639708208331079770990047078307581854579912275854666815981021759627053766274075469046652040217020798378747783318833360947481464242228634705772141846483130459107982917151399564620465515410773178530002583750433160217754523081727010384600943834766539513692901369899567271380855727486537619481038341630672343451189763327770733158556018840986358183036725659153615488421207760130764867335965592083544782129478063742065158719927635626050238745805654107316260380723496947052209900356424773819828160777733538199308561001706114102630201877600685494409922272328082849122417404336276957247268683434704374846032328740767939753600304521175066753287862603833704926557655059919064566205526536602074167557404651226237963055074868485541980831314165291302494010724534483429113462518389882432757347526118558356385698611345256208801376621598128694388238495422559813205434971067070104109111467835891813778856356055845710414900281325833636630960567258248812678931257936459286062262776179276427427522953196144095415479962941685963187226895146493562749027104527699977943374327738048784894370013073772548348766458567377720777032967501977314858803057761197944719282427476938046873858400839682399847316162095573272211935950218293726552905405197109728190863052377029711557007194983903121860986656865962303595922126733578759323159341497298349132343523856545065886094552916831632409118978357770541665079881742312047207409553858577841181259023396168350332599110456249861975753553739073870684245576519408214181339934867296765586137385963997068066415960563497213734732081130870610509496382708990336460435593017368349857153982904882499335474831754738445441096448808752412343331775704898040071241577769659775872491301738650318732971518023829354592037785205853114278856009907261835771308095408912950254716884227873191660334402350461809128528276716643943139524149887188972576516552830195909361044952773240429635808233918755610570640685070010906373379504505108825033816254404938413608978689921873668041197899479482033425492667262413020655877615637374538228660317904405454791405473134083564512335536469367503511557227930901254757140633051354059467670565589322323770717098673136831527621026381326342672373214281881890711088360511984502452405649727096896183016891269669177212862873831019772920626566011151893878000266280678007302712178170194212183410507509567283435849147672224019732046127265381204313677424490556732446878220493647033212529983203140434949782550525425658465824618819462172205535841710071951602480451735080267692877836410532979281849298114933355509851930716049300691368515676225705943539541622531558802449302757234698189548146535982910205344517592327666192689184060966001234989759648561008599295877700713717888438146311349161473157338151409212002214181232855868126610253330389087256207478689591364872470486907939717895669112299692238920592062680226027861190106322799234222995523447956746593945551210704665454405205022335816521777674530649972108892392389248613513067721948681126979243854030295557377985478721569619784492621321218283616152736477738744483149428629545805865179199669509440302284177803003022727394873265778291046143586522569137446217211994757444691157615843437246950199979322490321583760221910523924034817690289305051586337496104014713526733255994884544655223971214192776185426743034354560569404796561945420512486824020375375497117785971264443000003708708821421072873554252007092895497198548759367007477446872152948560985207905208389189177915939758071995580861545366727603806797174288718297793368469215008162391801634984748208911158033450914812749214972383921591437043370487407098694206539894552800377423572357131664305686224285581140723213204278221365860795181903760195014785283429217169140662350580409397225185811648507597768286790923956415405646510085006321001105428462918326906790411336967864451109481617548537276897557751779765662918114166058013260207139334433661980764305954826334687593320756486284670898653766840669863887779236044089262634462996869062818434897439087946813637679667675827074711967035859723548038258243630697149806700471431069535316469376121151198836784188231130490541852892312479603332753610074980730133684468830830324342735249919396853735268503299973919425284195438288978143521796214873878026809180294359655933047499770361062162835069831778785369424456270892771155144478930810882048996293676913112710977764704569152176881348697582364618527520021673836875797791318011946383644840021086921957733027568175438392927128994139713572418152709631147373143013368023709496746719603073763251400649502820983675587641818881966498502450472046134309520737912119587203407447214086373902043591218065491355761222259823745380791856881495564393454712037147963517669211463600244979380831624673739293252737047792674695035778556350014401735300501765000539151265182119004777096265031491180468555679491649608800015530549844632431582447339353943064357269187769524921543269938485395303669905929994797097074851822978037644572496417351524412783781382390281681146504050241601467393255934112924830376436859687718082317374561094788884343085782527196051589913364257322883503394105697297196025837560179028617045913288089825809191444436962371568581590214632361190460153281194365813338650998959278982342742165021373835215929686906876152424398878263972756679706161082945916683702557879727838225498295870516793401246771477533053933153189605305472857174008034452369793137539020075267075105542703972392361750208722287246449620830126370163871789021357379265292339170128123662924900703936410553895759160895314479051394665964847355027593734963305098865805835363771367554711893623433577191461597630680949262451577906708596993316479138915096591292117796434758052148108862207070002839337823913889354445116718070094097410756486616965496693976323366961509213563997411972644803180030674344379770061061186719677654521296759000639549092485484847923688165873396048771356700188034652326206711377239448264148213970500531474313701549832171894678944102076064015849657584926132293528546882179412215673315722456303651839090053849991517316618313519252503218706653480896286639402771081009287784529861149575169140948295388007914422657475639914299470633158339989170688363413451803846179296032550343629407753646723217649230376874294274811752982816950690832287546823356151033670998143587222495194524561986095928437457979661207170229310173985396461617123512831229034182070875270901266988685674702322281029409654069972579012208483251116971647904840801473522075828782878596805629065753409052975563727005313664065810614536815385813693878585261255064858700891574254609737668992827786872335098211122939642009743432123083598450317265403411910142064607810603727847326646638369564263369913361633855423649414382843571565634077449516238124211908332670979980777062425152807332876589171498757737065803861704829992232440341667890302555094331325871802482157793404939139560036690253129833564790479131316528299923741330202758065105887672236683994532502011195298795786995781867441904979229081816803788892667896764646723068924669493849880502336473920069354017572845826387417905791756513976758311105231495403602664723465781756212781760943581061313980116755874974378549802597269205870065561518661706982283991575845256458202913052752945016325203349907007861156143142718982491676745312188993755254106709147252141272623916986379573901874283574314798996434923413815884482001564837973752455903480759846927841454609330218514564720463159325431469593796562615822833919542285768516076862803778453815773802472303147654179009392638894023584198811795940852497410357188223277450196694525598000157491449215944726415736081337683857235897178990883838027506879191317010423945855904576868965710639204306158610372853413832351928222356485912895343007814617310706820900268815381997383857895505159268105775479342732896726744215458107754049131135846014421183886580140839617912525483388186167852272264991322420070574461604152043319745831719766056403858216018313045410255136248134798512937742360748538250099837305913713199523038425393991987152850316391431921591127707105299380787633279042649939108517440075048689860136692547942655871158586543086003287694736749604078919335940946460452549351355384348827733743787528654390248318970977304063734216841599199020003901230341512771432660657664032401157107152623483272839300863975968583080724745656561207476202757964288386494435622818251541987087107068495928665699265383130782877281617815421780685292361171427066507567280464348329661306604643265052293798796472660176195622996330680283481212696021236969522286572582456607831406532278891415332530349127695522552344468516176412567146194492748652056366006611828484892055130192619579354083771212265808672977019057323301844521608606535487597148956151680165307934627952867084735019503827208560420628977395759924791838422200688030768753751466169628377875759483545587883643434023401771547206252427595243291307117301325644034512233492342023863248477374975482138741226260598199539628309648722060159230742495461207839884326974045513451560645176720761619530713366522279404309597569222834491092869672484797334990736741224234329524449524643320681191081016999969921699608965237438166838485165301658256613959761610336809795955595884970813549696989185440108299828761907618630749092405612044124304800879842342842540166957033564765164993997107115439186404495206005875840999571822679252021507259171047842116365755163495353802000661884088040635950712300321245005899531440315054251195526099822178970653759616358257485505185459198567621973615444938814630086075488753243767671748290133368674945398303752231711826796088334369195088083541579256207310270792139919197586743575152113092406391872509663992192927973806175440879340144614937342924142226447666418364718925535181180783132167659224848795164778084384679274236277093270258342771430722104891179204563383425791307918692759258769553971150397300357699608698537265912013448682769058208518512266396673603766621538634567872899835341082805392361089876348380025096317692711617532855809966881848332370610286799296863841732748873891524496095851978293996433462104304249093456411531447273408614424793892354583843767934436418609124518840483033425678401667757490654112246317131492698213618165153855395194705946724838575481270646763631772866287044424443321090125673816353837453736703629765358430963311438960548441910474920986252478058302862180330553057806162841212728964154431435340859079880184486501924612673847529593818082416259705777087141776338068117019039054646196163198568853466577545134820121753247990317187380244953202469441941145717210099929981813041374797701730610367060689021731203390831060073751474747858379477452097655290928744804568487904064803152680101811145503872798876251378099024601790468013909070670781255119122761088146647219054146511319087013631331494773145139730105681857206203975238817110374281074959890120139668732841041401543782237107325536717869100914601046981641443351710200639297556438817882494887736052609311305396896293781640226867262463750655316861348402480287115917571376520569547576306456746888459552307519712485405268695826136475471397917078119487420507613818547413186320622996232813098177783474162471852429451112968270556247459058163099893146580366587158168650175091312694654939921338953424874927249055918990307408207549956561179144691499801334910453022103556295777494983102449021692215187600561257505313266318934704632450593458898976550007280059968984858898095810176278554180301220759393211618927417782869333362498618465617748050729148068792995723920932520989549356163432572942108070626293679798878502288043051780777506865331796307469392592657882715485611841817451339397077386500536030611382449037708959626540166917631944189143902729840928632264621239757450394952612544183820337843652540010059867190115127600783569425298416898010059169909570182334374808480874370037746071408282435037851847574146279985066527887098916531248606006258410692978610710199899471777469077215365236479105508781784565564095368473068229837693243339944274581194713323049803141889086951182704995110838589278367806418334343808721092974547417265154873211340498260657973873380841535553397050734906842485751899822945307177327837214987638848081108712953344035824377182318942649814632858945968519632784991832107935654099438931584628503171651502692275337594714343874919476329777914932470414680439779559176967319229052305717133270531152217466282968243269098631006847602636660788878628835706790544438139343508186708028991945481475895384351841750451537002439911286592894697345539595317205537356621375501348743748800738180786830131614507736096910734046328584171893317337841347393707276957202803583674940817497972584181944595301550250709520680950734492803765521290326311126799073738690932814693899414263366339114738628499033347646616625656487815599983682711175057577959027146113218426531547607099610115136321584546405852413149812899433644639904872819239356398421058223344654654078542005878368276975360179380238486521105033206740830270242469631450157825038139397073826166961320006456289445975565244319543477014115901780354999768806116674314213005496498659123477351611065648020502330395131642428305240875389224947035996153687995700531450794115463746438683899401841896839984047683284009855253018048212354670475798170288859460458332667470546542139882317775749977447240484614531629394289235536929060524517773710931106940401757351370611585186626408868675732798967319735444489853258558410421897756123563650668475477476970500887276464528970788523365680313784949238035274569185468979918864230764149016854391241473930335733871146631743892415578260115731375350721743392047363473954285431630767925712131514838315380929591013980771455838715136905992506741711636019424813756560852508416008617814230847799375295264617500308543647170971712248650697267068819553304389160842045226325960994488170642425372163669111972405810485673161756442816855604062875694699911553479167298765460747485340345330222075948960554194955176543170372054693085417887755000171368476400517018665904997578834768868388564427332918467317617416682044386076375157542131885054938615327512241318826303380408693844926394922654340099400257952794460405583869619369862137340923497100354969004441439043856979889953212053312316619540511342035030217356082258205605128756255943839094197003336820484414542712882425516552774710309305399211145265662964073415477072726062545539372187139492802748130752346384964757872346149059647911362809153638541842337133255057591549729031461469369152936850692598359816813295050037084978468108403810029067409045241451791002675486509693353998767373621100006620558442654497310320528002003013373912471413224919545758411365041012612205105025636593132564617334418830486568122418927524988107197808778465909992112592394106548523423204531779495381642145438405632497544473584683884207630294607289140361123413272482524901203327294451143755670515717493266912728746046176412461115430046120707265210429144761602015884553651895762892381208386668767100127189496914198842371278878863603289181907692770301502191005772810655990098273639102360900701917927640377253197917605111068398111682277579232690007725577393568972367583344680833014827802669643110976393564012120608575816347419764735799578527351273551007269734786507630267712924964213715920326777339119479312231323721390715303282525058848770253307808584592045072366112426090808028091578295866170655329369293609977007115793675172563482094897476390289751374006387383975452829315342421051900642457177365655333752990514982385131277843031902523124051076929726954892021755122591242281926879920715373565893814517815228382611214484767721651373655877363284365418942637578148429263187419336748213089604413917140849753783773755136943826224138073874025970660524466761517501649387378646702477442305444569634649236696001064269421224683881222347559470003745457478659720295525773358529169946109898531757767765450778349218243995182598221341812673493321689232108578508759759137097317178925044203606088733445146684070472140259582419575757333082941026838556042943592941614943177105480762590607559157232029768029421782669558040437137602690060019196116322277765610620904260539771536347654532832432957260619856152406112877181870963354238758585511917211508664212339359443162012865649861371237588499700424017185054300668577791637205715221596152715154879801162467705776807468457892740573691086723703478861486151668838933857423532289315702474659139758452167062249906022361849106713627478196296647443446100325901172388193149808990550102350276535667769424365850191809716666851947921908821568086383781455477045699586044042851363443929137855346682074649884317957686967078290047036071348845970984376411851822638620617519151841800465153736566618299134568802002097972779139775451372252893200392506034776894398929781894868516557272987614414668956239095936539365252690351195655999112232646138739366087822829886797386610018633993599421284594175490481415773269669573098370053534599276911898697791679868392670493656859426302175432700330723953549073789938476276306911100847359354677127367519224059556618674101479108015553584912769648905774846883045195737437862843328201216475393121924356262271011105194914132654241324049296572429237781181855555395111431023056469347793261142821710280129834208837750589886981219027562976008751385564397414931392172826743356084488914823486605879480787527537679051757421819977150232296521515372061626307396154914375335867673734317308839956631930820479405952996948756573957414791344165461531917137775857652733562247944333234375575463231450326804395714849675540145869385207804083020734913927556417939841041153924786827951797335011546122292618935439365413456296703725075209535594014403102282065618700636430092605820961076588911410630983370388345545424445364184190046476160669389729303579374820443100842887814149820655562530559342100609727826967676288444928641319523047690923351316888992416944857544030582959766503413319056393998438967379383298665157495138811509147862714640042046001610431585027105644819041429489284233556109915049025403164351191872001201629449097936984386028483836837346335612857116951618958723090691455621116065685190160194891763503588809156434364778611352517560554721033185869611412613955372179757254892353717648807538489895515189071107817025339279332558584354435798134458766022331671314683806276866136475891858499304613336068405980079002728238286346341315635615072876432783984432797382060649681216158101333324911607326343926397307448179261164732792953412779303770670541362112143445770443079534390961388675882417997816518370983460678315035945695871402571438291923546945510026289024430793299649183803596432351190748064188611219645720017378684272128846104719833025510424613670462722252638174975215709718558274037040856371181194206195807996150597018716822745552525191220891785889738269481584416556665140901884378050431740737917806021443885384814929020049688493593898926091537130618844216922362345863016872411219581895026488126852799268531758423641315907674273863152257214809565269068660555400353633125530680259194870265554700503484154553266887273555078928081554352960415556911454915284045549399477950058039562651452568618065499573140140549630925054552613253597333083562183673754334053595762325204718049616916969294981265955313070558576099428968902762429026265725192362346848788463340339827974561409990017390344596033661749699095838799045741019999484828723613353222708681820545099997683202655007303486085928794826609921294781187073240715965049076334808879924926835393560430727718590729771246945479614102632337733456249082755015893111098428845660019422494838970357851546893699838647407604627971418486677294892753506976836620329834730806546945057752892462305154382455490315415302089270808301643362884538402433676840766870196324637048265664210955110652203754016407469457917136094820451375595930215987544515933476778660788519453802106663505227708283212446674654458210635689941854771470773562084774488602066542150271598379597077421651777583121239071301099457629883901467096345999704543995410430670461910814402975960813356373070309962055998369913948337181672937026317951714498692681829830379077272167209222059435992699852592444558734020178401912644483026076682551545060969177442957299193260873236090561118773702617871777895109172559525101859964365397635349822135289005040050832282909478857979776321364314811562440376029218454923463022563473615644480802566596491032012337317713136870740059106502896710179111130590290735613075311203731007789980376354509978059960321083361162615025591647527291879144624130268004138186969154232026578979919276739408279140663581726443715161450150208011910902795996943697756487201543111339642433485915276627175887365325399676044762583310687672750954301618308046899754146870574713835035443175468940606503521977706072902998731209135814461585212462613553978956513486562974104691668093886198357933178787009178661305505632989233456506568807064228273230360969040952190217575969758083453529629352185775425589335114601264513212105830828206169862916235292120362439276972013331101973706449633493951638049505748943110157753673004647426858291161910226831311144416534990020236850975173086092069588428590950192064743430382865785635699243942483190737541768714030876224991619887434200786237983638208002955992171335155527362453416123288718295335898742877220067900240518205527837583260784419270322637704429583211797199810211206518052399814202817973061355056168327717242946354859968061934177635599913473543836859955231771030492283767319757954963582281690693984851951995074961359092063480152077382843945958219227273388033610891451626190273326234366310725887787007556174826147661398093938963005473297473852054133240502386238639043839580617209907628329452624570379311551790471922429568357944482246058739573347548417809243887396577614386965742781084631044804396877683131991261768408921460867756188711145001207856611570952136213179898818080036847453582577950944527309398188576737132808550227073704901567325209221390729731538871090400314367945646851981711982561423191206870583062515248160105152809600436257217856925275671072257476750929451123354492395045517274642702638330289751167481521401286920734276103851492792952340231134941958110542860548437549250526742743657104556048579067051561757883400441543367179497765228053984822176819011240579617941447760573150188229082471186460431204120988024546944983123436668709449211021645059574441697226059020282299660633226581465991603850041571118197022097492360975199497221224049804478238686028537211610930808917074104069755716458715672833148380027940156425004361044814556093124171222466679443985282810351682476523170422315752746601105946784195711463593422450991206187198139634625506708772590618371765139698008068719241194356044827130769249870003045537662326687050773607930965019479079840621985385948145035163811932245603558055430079844450611956093210143011392186171204499443703372819179746171819538803186560771141248399964480931557591963493233692454423621943506023860722967333019438376711980679951603230688517571238510088622610348552835321121156629504881380215430843222578867894450858276356648209985132565778526838217213386593453820239245397315203320278471062004418325999596479693948647490928962915783321560382893932523452194474358472928058527604040684846639374673579083750795773531830527115287424624284575202737987562447708897483273600695899153801750762912358916207107139606596309820737086548036228681753486914563781316014898550076608866393452455509071289201243894865085781102035340519474284497453544133879450735311247317971722457030002942033763501361699949039188831764581303292362669618786430195294685900702894975183995074758226205156244195245902700628259892333687582185001966033389907948818008957897040956277631090427349449911132291241724884713976805735921134630732138557498463175923110442903382315464134332357460767061170459217251330410997059395267540583472357411532544146619137100509446697184575873844300948363853197361498496028764782566623027075760248847309661968902195322453512373587106054011947162188270278315837772642687505216271950069529919048454641974398862201328435311060416392473565557314829610357846687013970344510844448039443492560555258248788371252574593432954031269941717323225700105703650877371218131467423957118861379350596351144262211544914421945574943633055802526658185609186795472555513922325123599130094431768543613441324382039756181971369008948077694728518162253275214381796791700140140108524961143712851670893986816547147005980234573441040396042701823082613734832362253703019776204397946379655595664969305006725540220621533267543472573632757930252700114945956365229648086306514386122999919842192601921148843841673540587225938589877485279406136416779617796024548538840487372799229850507777427841857324254121548413940033616153414828923561199506295475230579498701863893857606034821535983962546817597733753000568314950224651243363757303108385040319636332877859563969753938400097870298791272820703890888652761090014218981304445252516123528447136626965438667505170814679582599377795461215818958926509078981338898831258967601860451065514431607807895043272220159227148258577639991854168144702218531989823685521127877582836105432686102122578565607304625629492263614916458752015838224330542933125996248821046668953722486017804877126132979308626198906496649745663643824491288748024733376184663531700148861665998589594034151580494900149030962827920698825430756807793057956769690395246612891150926359169954770620528857331744388249422405461631564742273301731195953817197482511919395945214462437842407243129316242658644923469658806909269616805367650048385346438251866780809075719511957903943078569562303833317513459850868028545354947970831960431229928208649766885843198337526853172261341680329705541216089701927408881028654407937420782212359291452350039832989264780303470675371950029575307161760028298899381353362186778358529433593931347544924631391881565475610593629437459334081444262391016505127003378000442522611514606174608837362195429895318404876995118836800535273445226757117824919983534887409928473869533603002215475271870660218616252186561473689553232699444839766732780219879329935384119100505635367525263925055151991726798629622529764635127821438894485815339209528803399134066271310934365336410168607484298630766889162616831652153796972395145620463681721236617204691920062451997267966034567357265197738860421578452690014209990587204085521748472338280666112540037812784769710665150928971349681061439913195634783630183350787119261341573983711879320177837722377035646903919652392968284669483923504351363103414461497323089642040532486316222670289536903504108620594216003519967116278783370903570696354975534661893209919669428086701369581834827326836991172546911985290808906174021532219220870785591387092235871007850847166680400862523019355001884091135008115335941490719991925091423864958579383482077998662016360781713809602826253161725212410486105519425718111111913677737956962259698555592399064980602584490972814689879124308928967925377463438861875611335358461528457512297879393764749683145971492620070294827457891032113149604737150605592897618274138402980510191995349340226501928335448952024494079783260584205331345899953182017242947729093081828588585198171591147166756107903879722530400844603727279181900873012027234342073007750372560698098229928578051168072602245489447874735915726359425452965191132426495149009229515392453407194456192465207641466671424070794484880188238622453349167578214864067230829355647181083796905800132627268646497308960826396192452596625549960463881839263647649021234777471264810941190618074162495963711312246220580062286521407821139063399811462664454802010823661567034673473896807897527702241072432140159584148285205711022096495716510194898551145001038999315645820897246907296187323593426828448087173215036650726074313293832201458030381417534237952885737764938145751826979330838944210298438129783208943856606332610099470949786658604079948342877003689597310277577333722893477740916620243659664494926562309086974355004615581309532283057697288918415147015506854229093283730767440519701653470866353704895392151870856163011895363605016985365108849200729989532196961546451103781935171829938315224042402059069769579339569948347957512812096849176536405589297426390241073197836452032452332264873409614201116317725390205624566323727845823490639410764366825605582362794888382505917327076179053995010690362422046601679601252611692324627801209148393914477113698475995865964746317273655923002709393278682224576242125975498823077160053113327101553645426342139409139651444666867750603719005653559646993614231350667845755454536336413263866495817294487409946246087192209431066921760665003415290004752598844228122496726026963719901451896150472981322789559552873717383098635687985050022816332139743434854706736495361322413669870264816526274162124880304140748733162413146430330716776082237370695075064634958691464544762237489013532735693972701453576323517993618333602210011158457582211407728781547634604827161267511045255698030416305653733692418893681472278817932366634690116126595017871856966640566886201350785576731726095822651225310731584474161898642591189128500528327951606836227783043287820943402857262284578763177523912271554676494227876081577938910257336583120695591651650200970043364828823042291371987809570925357585579439354381732644285011872581497072502946440492716466035969167288608022130578972856862772620435590172698501129577451129475008079806879075438975068290909735495925486429283046303938632062915436890482626819218063446804491943277878461339859066793694707015718776696815530889877609918719032799467446770873019528175458379127099681223874933860577005818645116570195960251617133178538914705724438929452027967456632320865499597440583628784119588690420106860400694182109031964486930242324311390502857038476736787065003904318214189934829961077909930400111447983864042272612723479476586376178937302474424242291921407211084841053419789000662432756106477468403985388218391478720691919805150475671559360948822971229857045806693011961041959569781305087178089081254143605926287206680419971630579683751824537890376840112164725950789873274698883185963301039090011999158829317023503820690767026489657842353663428026131452624710359711552254770638471135082293082978913547733601169386916004221191527330633719218263817695628509854452680702595979877761382270727213647329080819326639912644936572410767255492353865082315937615866131242581134081592800783299752913629777727865614154773569968588513644822333109238277170245514993177012100068713145819521609545805465426854426636234865598231947662483660299914384709191472853492040764492854692877293078234666465910946992366289509117781927711401728725707023006149459080791545353052434161717865155761510411438865899963484441082180808699613253309952029167489067562783236960544704535049837069899570372529832302961594968881663723371538947689611418810240327469693737265849553222199717173862641229571116764040743697462662323259849452248047130768452699708887248994964619453612712351317673455889340155793055158781519754641524147225750523670936512398634770025373465338195809775625285620609898223559536367356052636615561304637852285312367021312001984494772057192482662160211223405829421998197362835506466639997610816305027109708876389416627887255040329464697743725899057425037698838573406909701963214521773641265129356901642121705130997848769426989516952449811801348608031119887907029937748030631409716721675999050081392996733710563095117051759622697749016887190536195923680377074749597974914496478997615506858936473882881109983697004107800766645320437817533865562524819469658723901148821165266810395200933519814663906476851183464624171739025341232520005737644129731253839736629422666680244296811640241801616480432375589557114879021179452758309785887387493347771485129921817006694212615233309205573445139546331235098440549018525252600465654753658555448666836475323117766136589920472150182792569462276558269694731681365184650256263811057971210225657048413803238479943007745815297889149208641622796205555288950334379547890278313636295633354530439077104359627070204062528618240573788053397277004088111611018205214039193283694685491772938422270938310365147762693109408551827514790551365428730859788814282142395001166331590208051348836457809722710876192812652158250304768777919887495612304304412941487795633614875955775056358197287674794685147367105095813216245385468662002744166557987815113272530074142564981056530010845684656531624735556862847928419730508026241777248043067726882945145219578700898028040810397066030252518926888358756990284067948094675793913204422805448246295865054937258768192801257387788039046271321018623428255805308445996517900893706464970433822697303995479126270798033499826375082615026295883980653963941626250866983092522205361186122471007505906243233445130998196104220887731280430727501522616072783381313604190967317345509964392989801847560016631927082355015259425216002562473188486396532175462047162075636073415578854977861216476387137904617633037841330087547439103504724097272952763284480640728905810051797127536115307504735835831647383082160440948370289795375503403632937043894108803992113606597669451811449812241596967852626923932807816062993122241543070781119966277447664701000788805358585029233551765006026803093803858699379766602525970985400431578015729849959130140818128053656750620466231582261440963147745117660576677823454122081446843427873418166356374256008316125994742676703760107189261263626438965186855638703116451087179801485200306396007495716363536278093618621315073037573726707314951066078674094296844709871966444985727652784913943262837547229442279092794752586843191088751480329009245643820250791652428478237113934865326623702484043275957880811086843433398104214940177834703095826603413371823990729560381620350193377883340682183224574256204013951672043672251709082622111414742330842642375139426404941423502799587585754024307561664541323483540198424309590308315225552309142763593601678297775253474887675155861627103475913127372297522177556238783659050258453353185352625237960169714501862540905079727113837103784792597048603481343313475853966618296835163021392963352027960887089085091073471601395929903932390971385802921381163324783360727878573364622264372062306024468407260776965387767014504812899267515335101000692578478831570416584729376628370463149115459249153738660647361883563508663488947225987664741626163110836813869480801996993196470817342379338405777281301132332799995828629446517548149391611749611523963067800238524315333482121935201656313203200175321257712582723762891023023312374869810649788039645468666087480913767292973009397554520510157298079808825605584042931376820558689939160082135448755040859072242394128664831303884988840127199016872796645311862512626280322221313247339654047612690147445511138781673316912683250145785241879657716328237722334324396460024181816207096732804875015795115961239668458928516659267606274345421033418934253448982028049812577315384741506561410235183161735992457832753180176081027943027020744682975499167629508981447514069411528436686479431593294605124657697688791634297354505417487846323159473686602790795188807497823001563566013922626409034872734506353071506467889537607608495061216756612563877792128067194814822886669542805457305326065820887456070823371492662227967215927659155536517103465047544041628586753328408326250339528685968137987890676372881654120296431011161477552003173393466850500377183349004187486761649722598258953751378690555736515347527445538381237589515980990986011280197837309675740715556132153349557168036683313519685848396946822238594204924411427405941420404053026148037189734153583559481415317393825805045614381406173815132070999367136114990666502866189463707133531842305990031066499644379651718789429972991495067869567477651744812860847908043477752734600783388991909989681832989866587203282372816380247179091433834335494178175851261993009015567128537456020222301074282361566983987929517099195082673585139523409276258321211372521953432418433223577504667476016279810588935362747960976897961410007606193079295196751835841997004008706136840466039617427141254637361091324808463819652520136240251525949917559148601435526707275590130047313177019886258800185437982259879522575170840656323055530892397958749191595730189372538361072369460253909647059240374141768210752018513171370552343396661037119328853841710677039094739953958251196107008053410745625577719489705130474614299069706738369724676686253857525151196876346987498069898012911391098089745662548683504821638647199916297594989985870221136188388240358283828444318058459335219139914419719940746035065632793389598600812389068681533302058196296628389523991670665204344825397217947481145896625107787559659190679775100303293520981016429533564061491488573181085873503042028362793507404394820448528470094703935657740626409181504324521012602568058013296796936224085450552246303193522343664337728069417141329052190021564478089412743597260953306457794237805731565285505790784597563113367226792167734785751775985524918932427134098042665662058416504982160884363545762304252936037157655951332091288665166492059502870751749151635565170606762961062729182923779025016307677324523923606671942686512107268085107855630283188370650271822315970432011806336539652189514960195145727128227075545160092600852017322674677534645241056755539386007006205548851552501913795890733464753488075755926634792429062227443038107442685072550360179248982664430209135149076908623058039322920525769032985883082876569122233857122916062857722603624948035558059253462313513392270693883095293324822834674373043574418762655898897086837135385069323358150962746700852061660229425926044455373780983066188650742281959508178994780071321662066376496078602523390898677275070049004298630343136512905704095287394031628537282235918890010140416648585702164432689020562093298372115119323705476600597100413971075536234424658258554270204450815609816150200358751904082680817197780462034332227969884421409382515635730078949798647881642322359938266368910522145438801483693723401413312942496208107725193553593129697777046276526989955262167322217384059547497213545433487849610640328039125519329364253035133742110042660128799800334542541491662314793055386786623385985093390715793818474444874621631662526759147357769988222656434982288462066274528616446655641499050137657170398905518018189384761612587897900765174768642327676296008274751033329696579113081401518015140994359984367324174205963709762847462140100556764309262736641033388071729952146427161106591730765655631026398174061114478588017622255122348290176474209733456941578588165265065342262413009053767319150272232873232552015245344888962430313455427499018432580249562540269509868375311086374926846491628018213071511711234309997859499966520343356234808925323217772934056916024910415206600568671907379488393964849282918905703342517333133797642936906573539592888436027285864764485050299980973832027215698317693452410957426127441286667935046029357825736537188805358708130446368784584591168866350395275694771930080125666088387605122579260005331507647653588103869110812937272860571589707215149170706087581035365151169006019738833096796813441935529210450256404765457146347516100799645722083891788235506822798432401808682467655977444493343466490791263412129898674495773000962920261648748181472337565880135849617353537661059478526261903402453680608713902811586622859386054363544503052876120108474898514742162008434782391193349961275607059030447760994486145411834545781895933890013607431685372112826248740164470197573634986745414813653575224641789757988245994001816562493920924304972880943763782633194097292265605412028775156530495551591246381511015178524143644154503447014701948415993390435574465467612554107254022873369220288942387505215631918100733811086336327672395888780200289807548054550432608808956597565473325011406432940215654692753107749645302448700453081302263822632484687423707545326812877149161489813874459763075394227218986988428438938943087508665948201565329159965416773099694140342269705044837814369966892640564509643433108279570055005358051915607508595877623967176997416240477972669289357567029195461869998982695643976961320427130766727669037598624102517179140520504222038256530546367685906160916164493228885343684171903429808949358114759594651400984158538161512189666794604366150411305194663535923695885871577323823436150115563569354676407396187703599989707309172940740044709103133183102017092505814584376062801575727307631510301965377706527252079917595388625885009019357235270516725213911276313058125371214406855118865716808739928459737090334128240971693492817849530415354872382645130262548024178765306215491466848390787572348098822540970013275148700519703260052257371425790773645215524722935890682152514270022570670220166803687687526462454107640069014421449743789340830525358028240953944362490237537953633120737792425840976082154429146221986780933028133992466576276799259919592292828580113038253720133816257391353222723777625774743457616581951572989442322731564661209154359982704756446010280227732247514566720965875797535089285158722102580158316675590359505011982360184340328630621440589721664220652140080885213559310292255550094190986022653018508692829537341005661187195822081575349484971453378965356382300316404188308399556841659231857396903155954132598419304330150906608443885123413549984726483839400798532984536379795824051745568545519288325160393086822983760728893327532901112390613662174245461360612487173720692292161872733891132914108414166928450331310659256109190963254039268430061289213290694068586479266749021922387540537078682273956543230274547751716150953445287815205503341636724034199919134837889058020972608598432236225912439561025879354482253873602036641541905694047722226933646392253197622442309660061707892852340951745218141503466563137972290888591031051154018946117813764688576001623765445459230281128114918761976379157347114946014962040852624865481376116519213927443328725106375374746313472353844591636841147311559765030128289079982666355159264241011060954084781433527028887042136267843974406990021151039608302571736081251618093058214542473976082061302843855339604197543750653023045273894786702450167487534324723076011042834118965691012372745595103761471615777289700899993776749262201135803100739627680222802678744750134184772081618085870834051705347167951786363503994848468578122908374553361794264728346127852725706833439916944555923405046425296736827690500355303995163304015629099214644825997673268759927972477913499495588040415323524059640359047100923710398994528786420804886248433018703544925559833446689534966505401704930545104871039001453879810760816265036919481028999824999870640960862053960710509694376532350694920235595043962063107774002131725861535149475969847946311024751694078358719980654492359227382503805042204102378819272815260931480714100890619652673219171376357593697314315294079570114434624111660522477105574582234985000010878810762923769790214552796216780739869149930690063037586376855849918341930197812451603329094229950974044005604517865723010404877550313594510288627094362563081875548864352358690484158832910338294274531883910418253419646928690751488069152217362481033089090614297539116838223729923249171277174396720137715123030620673108336534120329805524157104406331209259928329607886177707160115934330885276831651883280937235567154267315708187291076505565490643705626179111857601782319562464352531060681918794802208954218387331817493631696793968498529010829807496964041942105140555541545249536733639157375069978152707015527925595494438899881253571456600851575273826254866972719456595007380618584141795243342532606332794833057746416639547096140253871343702333510728244155678247397365272942769556054854482590114317838586409448986599081689556512227751911207658926585692578293077628380746715284740476970592031288082690579310843399227890187421022938015001186653737352738190211465377438232989568277133511334797078594516645971541529839121432158439573585279897576104466838972380664638616365325852225342158828298676544441382012423322550977090591650728097456212061075792493212225582720111736097239330384396139722970119103650430871890357166551616145829204242461610567766206330616890290982180927106665990678090825667201509742969665410006214907101634320686693377712777051111658083357095554799099246908807669178292970032386357131458763572818126092901841123733751350629255934258078863575731283555468851543942631127681178108537948310197940288356752820487625559109206677542151803296551228837789223641761892555694981095238017986264549293579281521221673433838679472602866770378157787740599132846610426295351614229524164374405542771642065658672984519786580228644810639560882510649939568484706333121503677979054506369917126310579897855055333480717747211019738128265482691281681410783403535438080764306067198115039129586411943945168815197209825446329630934209514324087184172919191367827564212093539051160436933683606139154804239366519670362031343249055184487029999786807994436231684898587538072650056054688890064489138232245794026150677066872952597706177895714371230674519897839093439968290075096096049320788675491500073697145576195384479534409714828842060467688872674296245544674450052164750972977614122601039057783521323347805634950642401918104707286438386651153348519884168756629606741240062632286651960218661076442433220407798285842830993366596041600763559292470497765937986807397697983284472183394277061984689966004678011645116873231824545731844875065319921843199533391769551507948204290880771826893841502054442253385163078400642979808066942157658656101782754751952359097852938408299347726141528353273715977779570208045941277674676407156110133769966936182195395537354418216198276391043616386174451946189688336087478960180157636446696335105336257884887696656053593471001445492565969760685817144104338788341174871301349889452212554068009530036094332265473159794053235543114589672341417192497020269698038989971960371412228368867691864607422552293152215025008333217814989074486502547209825393494105045561449843507877744958548277261527246417116534880208758907415761044092342069721257665427871685583177777266395383231318182685654768577868283042960616605279883004077690599025399156723737794561611688239453849548761290817109558346152274006290466194625641238506391919255519160461862450554153810669100076405301386642996543249270299730708426212530790844595846110870361023510065166013505856340805265942819144276757406840498503843103764260598097523031151484859134498732710737573447824603365007633053745077210671839969164344366075825332862457083081419108943638574262188409918269671764361637147285265934782938357946210754267948338154869039414435593468149595644006122566319413774713735654119012064544430729362676633400338728467351129823299195525052536695228225758077347761536718681905885466795398068546544040122673421388365284925250557008081741639336416934929472271679418970610678980400975264166929594615262781503788589287046647537528590966679214252395563815461628208389437603385849547077821808209988797850938415246541723577209302737553730444518831700519181483465547494330938468777960970542168019017289480828568659735905133949421858880667769385949653059879278186124450935657074531790286198311575557005880871070189423247629391391561624995975949474554861722475357220206873152679590359397122078162690479761707384363226670399403410839548289874600203337726585343825431136791256645515299324419667161278366382443051990495825144951924965033551695423829032802591312880618371222869659097979928490825151919282745478264793443001256046455946162399306642965028384695070078181675567843117164589601067346209694166589156662207174499055855631266685019454984584756019224930432695738826992221513689368682660688889896923725004414641993032523862809355807065338246287444207209357178374507408491245792439602964438112384875529772741249897399270961874010064484666738236194884179640263048322752737119275775449023359504160970555499690996988556596389724346248357394415098808731993234247943822630563867772836459687682724262223896161465325879097320356169862530543164568985519521616114281194905418712166909240333453983012601120990959394506368679779211628539333961389573719302293093877355425210400063965203620165074357590519301968899699140006500826630989004203640761535075504667956751908173953596994709563498185098209800024307324244836049544201831438399922789685921573764233097999916585288600944706751013123212440639720664615822868534274316851711789872806862241325107095871995090936294134147924568723915452789790514647150239424399873541146752824884585963016262904114434505603254276811295419869709236812314652470195992931004604881689637753884399320343123006262359828201865001659644734269795839511505747793856840827474796126827135216054045635420856301771023963937839465228750615250196664798359032702353198359000894255424872051066681839482126086111175991391800480320353641770309329214671787870549992985719293785286426956272748351439106945216893099272905861322440282219835725905079635420412529169163159134309017814594079988236744514475221768085437832736325978919217791807212568268887767631139952378072218363411529765101227835305129893692631468022657019236794340522565438282554691834881707818809508380173218263906664950887343669883530343228879009418786313996572972893812236189471452085374982888218016587810841900198134867403313933138935885117309524386647433830457334968305392371568198350588889838843722407417145419562822520364442851546586034275430752704709336176928962279696756064564059902740700770463140503212221270701310058071719827034266722561208889649652358161483912954392482798014062413469866817710548453286476319767936144257622206183987267073107899424107185033695373145009073786374179141763003823338402164152490522835173756861127271952304726633075203329832844100402680468577428505975261076255200664035440161756519241327730400472271298377458020524009135919406680055629890578000416052008115370606186380335271591681978685284091895541643656352579679019551252420409893303689380524818656541243339700561182956239781693424220224462536805134182153450908520238082963051957322004477130491741051939635676227236740971255124447070391900784606378925145191471208081272051489579906571034502040974338710868201829168888330217703287109144618209073848659233877783017179182534754547642087297931518265671802761657118388516785892906517919659052676091146941395863001543769268307101380633341345308539171992846951786052115658292100210739796226316842050178523573991634512179225682005055452085707573322944133131268444243118270700079055757585703004707308738047975711361953039162426431404734660257493222302165928902753466001296605725420527941782038483041220354145449696419146972081403824141906952165143107827395598259532890873069287042719078908025219986969834541447987356578919352213228956713995479757794736160740750622965405247250612664072256705622629932925650919336211267398551029075874007126239651874503216673686082712094250514275416455522959811744084422122659346676692283796475144963922146132004002423541676264954683927861199985923580947315618867488716080419999038565582685608692831002746721246796070340045536870347440626285279147151592264146243690082014920301482944019047077850405306982369113395535740546769275773350300611738499593548156902677690593658773396535235042789644853508791305059972998352565150511560329504502511390721371849851059064709580953886491710278530689016895981422742248796827399762834141916562320374614661445797592833211344053043437908204844056928682289714394643158967240268043651245563796135485684532951890135065927392483921916371393164243463791786168431969667471390614718588626971923726863024215267330940158580746798803027901531978645992562858032476822262063775982043155556864184489823587731463503855338255072052102353934135904239444431577548607111690348057452921699786848891322332682325214907660165075651076978758428440473847361733617269885679707121260130612976459200016608643272321503908398988155184347809306122857474018403587908599491689303461018525099008727686338035509743781863386579009413635358153292245755088446884865421104845077045078217479488668935828966318372536513110895947666699745599993082421186333330858456016323444473197148107301255493994256340900348377676090579036465636476538208709270547612113035269890514082274107503917299528934055039246227740563098515183312281029810512605905113034858027246606225553703138282661040131190067745813573578350405459241383847977688777703012998350841208941843045722117071674345666303104199567256183832869795816752696545817523039446737363748730504051787789906359937504847080724461050954202116888471006400368324294301993912016883984879570837423142643430624274366324682215564462066822333041078266447135426496985983028411053375155827191503879839510594324552237827784168048678942574498989758208307243146739085575307362926866396478559656395892851661521227938939765506972279590923564563484609741273773862006434638464135824874104987611776254768870317147360107376280727294475655499453458850076595231916206167378226738021462773235898498362996046338284634713555881151696257402174804399414384410049855859792012431256957350620178239744191708802960934238398442331418792990616923846004020000206069766224432089166247190090225910933502762270550085464789750731301728470513391221300340767046189213219137401952286437634382500933087434634197302098992917614669879177443525981947721707766875365306337599109431867835831615703332903113831522627813759281714864518153507406315482017051705364828641660060383146529478735080865464626573377860473183918941273575214757942681230551183292181025064409739823141613986260236699174227241057698417715396913511412128866634987266311037957181098805555890315291075504362245085186852041552898297493519386041831721309209685856735915582640976405287688283384738840486067992969882791829580129088562023627427475464564220767702177232441520428154390232978573471608472181171569142675866146875422448527841521551806198299797291707458856110344790918929041535228369969438921128091088070260758314264933081396383722940439783228780228027957053312393786737974922510499721217215130048367929305676787409493792501035283609094026189197901440335734778706383736973807370633982723394357807901974886977696442029819864261014220256180641132120058687112727630160874138222606987244272374467208864964344342922635919374937476303306181815793342685594430777892614133717214783059730442143941363782954022384662173707603007422866460480095055130897807154813017357562901465915940241274624227939659789510172968954201704634007385848978617826914063321540005466008930651149275130125346284965920345335922393034125139768186234392612547886305087780568519235788659433475846110937941501303156460229801481626145548616892761761822264908251323442338266824480824899416326160608875042930199500339705751958333243519388047083202618056842564826724375914413373016653517253014328757933364378313039826701433513438212960320541858629868143146490490206032640582865251441749392431378905439397370512539525206785274896516823353599536943781232687945271733813804781619121370803558561239318175915118953240001894869290133978396991231105629792969222112552539306025986034616736525310510743505139893506389853863628927956659776180110713830577204653079578298686258549323795081524371419657207037142148696773770443367534934893627262437157458172707662296228872428059093893009534932890670075833963411765534428671465414910880523685169377925121791475756905329046714601839205274389858265018272118435639786262276834131864283072328054132486984428464024412971052247077502310284484387236923521613512780329138333850920243746327350695105997572309349183505862585019834735545050715468546362425353375427446938410748235368049219273485801082494671297783650984711407114294488323317214690779424072932690451467415047162217772530430774620855083449164290038605842029855590326264913368860502554098400214872271078636799443585028539439264385898346789249623475369239672810793590896152094991005874151530969836544047342003209199791011077720098942886060520265426996692989919590933164656394422689202037846476098656656305376738043296299300807191040301158483526272218608921990004619498838018422515838516518727711293940479434661318381920195597294535918486596180697326515580971527757661384708848678114971834698206155231781112387248438437831452841997476121046536612263793747376046192022163477620096002620415214857604671287011117025092650916999960981986540465957939236996703843557621182694254213203617718349005356802252164800878917770439605720614528967333735177503852952921690684355678974524005065408907394933296187195485136189484206423478450919960731999262842460546189873121265103928100111929319628727133344973131384304147654015804131342099077179910282510971923810639092518469187379249548146911353255816183467328910708214353480242412688618169959635902455751651389160446561650687151532632676320520607972755754452044406093246950967596243915217449039460827004626947602444823874953067025824399022450805732942405783055857444951974893716280303459857949065164049663227751781533044887567426774428336131608534829404637385679621831586031997526111265392133110776650117941199587986080938924393951996098692011663404451054307470718502304560765232627944767751127579645451639406826089401442417175313903198832801779296229246739895554801543839655705192077308735199528217945321620179816883101150645095057974999586284800004411021258299591153648621512653825947696010024784318621427252952290652838552006711031706300954561520061832653778329012618347111802102587892286962996636073598214959252354441995494499666935455008333329854171796141686707188652453123529548172797359722381059000320165760665470667616135908212304793805858539768937003600760464020025713455231240923777606702839346786996175025103036575244590592271689791776670952714176106618708518349920648905523101912463699145339688585560050181449343999185376179605371644559655658342956495156844937531095055207626279845794696146745792799942954315371828344402701445730672915936487459380026482987529293263495591255081031797932557573133708049055473191912897647809154055679891441429248016379930789218026853636322394903556906154512493545976545325964138642129399673822651782123432402441764960729149927105837347419596188973541431331640190131979673858272186065982098347453549328852536371585524085246281758887303242768737017107627482966188348103890849148204408856640088464388131247507080368067304041369071215737166966418845106448504310816448378285076836900576805514433150406262579446658498622503066617376010952122324167365972215636289217156594803879385109581447476288915095225225708899360663827606327636135984945829861321386552498258622324575965842579094075221340510368943878944261537021556438681533968579663985694466787972395082006239233756929690073466451681506333356752756838952023246937213244219759461404951177975307767470572348841242549003310247624719117720414269799559113866283534573431908079414434763260278554753630195668529613664666369883169856246301395177483441987063818398010702717157927056595420654904765406605017620343243011732239357361894944208787788349689095868041296644407811022698574366949946624378054764608817316825482330882383502773931239541973304470153531925560792604889660005267203056896879245758080741155474955548674155707956354170450958386759454798215266675993074386781017041344351254364751870480505447444396651730316645794829271524153499027615540389946509035433513495654238967579099332583864284522253589187968344157829827285349288971747491765762672200976328291980069774634372943276912037604329671125006267849924478769673568840985104971031050974950590841353415832069768426086304695722250290946923960344869696560851208795765091695315785453481562525572046080352459428766286424473843190999198766781169858385067734225462210242485839094547095948971607581229891569301092229057947824022408520532063172169204596186468986817569421428534606840963729045377636755516668607121792938360223649656441808473373154504877574934518924384069601429100343555320440305839359342098691473454923268191165930021518778204100708597822680767565659660242177200187069379901112386238542173285083204551238496730849727544146780527390709893912255876368627613675394285821361971809437856019568480053232054191280504158419891849640815282758076264534233413630033032469291200784559506583027440949067613403766080201403816656171969941575585336889007778856615971102153033862113400813657476293584862359356923699690826324354360582635889414769619294179299667476053417272672141339995015737702240654683107426563428626216544125377150798281157108911995705186739379591449477897161175618194337171459802547258144595119410315272042643485993155521757685027624665970535345826611840284755201860858635541411887956681404236501690170564462459437077943351205721264431651951803165414849328499465023001312458038296713863140213159253198102945616131415852881200594800987164994276122536448940180721667991009186343300345937256627057909252764060306220088165510287703387415127256000290642195654782630634163484307183374364275460910535496709677498198213521465239619484609300990663190020614682064979069409030809535506231119060731350134047295315821412020159828734070729651799634550751079452793503705204039235103423891390753365120761854350559505178098589489030841145764774103554083240281240664598278894729084015871888149525407051822128171852259683429089423778197941125541653327396670368285323943797571606959147773478078204644613756406165814881226338721948831462291973888578877038810678529629704263301686656204928764611850930254884204427800151632407912040612260802089815728167931835263796572786634189394612076127744694057370237707467206372747281858899841859071975346411955733732285289294512554011287599427318810587010671581374599131178556311688224381159567493885946632259556167908072721618892655205426895515621605426305264765935000568302354687421401665779135862163886434508696884740989903120337490026489622710573990523966531578465044788619229737531264890873501375612978745584524941755748284843257671754207509903778387645430937908339857766178637002488295398355266961371475609443196580174508143683892113989229088024495066267792990204866696082053958493080720528886323092343489306553377512859240433661093468888529858607153816706934008690178998357289619314014337561177652329072535931168856360100010513381411577603515887051600097445538661420765991717053273723685339369570943943196568989799018940563706711686357997012623160858139475476511364931302010202968038869218964159345914922948819535976007465760959431350296719821029072402710806939656764158955044019829054744720313614364474748165736015600086349691389969618381266763110737812245524394899794520183774417405218102278056478111748493775327431264583052308981883027802538473022680040919507307591706223479368196903514107497816976369789020047880461166932924993159035168172022361663781450123236103208888216695771659457410969045266271455812357980614570283031401336099421154136373290712440198972149189965555509326494782451545045623894876301172432143343250008395338856422737816092383598376350327282703003640078024949845152631131078592662013739447866520646468499663610385623394319947860201287987634787281042880836150310650469686299556192529536834038240885089912288827250614725930035521283071830173939225977519661319397018348782681348460899364070599944738374244929571452947143508902777947955975766254988589280194049436282943397574997724809399818008037245019317666078490362466766258579623044465551282601708778781031050159607957037502220772681018872516776091606351018823025901235427257507713886948560125004957875903898153566386630379549771658068388008646506444799096435163963770022358743376289275479932151625372242317482505721280603051093930333628287952547688793349161816171971290942519274697351090037181502298446489645318355270120219999919504474411365089528704696742550055627387136382474856894853143049565053986460943484286086522108417918201378170446044221016310256105697572908054462637350783806360778184440935157778148117727982104915817733623145441653031944015752714083500858161549184402509523065012776695134066761109968376276691180944855437994804660324431782663379786460985125292953362346774479764729683589502224400809233678981270274228109995546432443685551774489918952155098577407379838368870665973722211575250493255770613082777443830339421476614427358634059999213200501833331258664284938231650164432320037260859128840159637582784352595014635608935430054669302752612850214607360199402323790651514799911142085900209863870776273975981216419854577708108591541631958240751512170519571228828046178586033813133639858886091611953854994852586795260974462927605097982752160313941587319411477215398364628940717736620541827898500798633321900182926734827968738926909045791231557266853163858936922904033929686367843521302105620418137029625645870841449974549477367748706864749388109506016430597189815883971011474643524343700698897095919083162122258038174001649072202596624582602345758478098364479619826237092177949640986709282422156455712562599795973654859197978963077764581855872455131135314459623883152071705191144199127794411550127265513113853127084797832970227803665710952592921227918875305492380467741277528432216358627507060076350522403754386843817792844170293149222869752075739457572249091326323844292662902915799874755537023885348899823176143600902317927039104341225430128380332115185554953088676765242486024067103479672990077568630886405548824320860694600881842212303300561665469019336831544542676141932649458065816728061722371829638918964431075743760385439560006121588103904902126310589826072509563411182166547850009698268854377885817308940088782150051587128956433603135142786571050444646956813304897435059275522218244785457679819185730709458651878299353930155900528560570014943368127385782009882514406774224320200939976831128169213767835676727708007669088196458906344003658076345899325762082763992703502789627865745336271544825958730734407616000843813149262415929226188928012631003158879536657670323236920814525163974870809595269026216812935805291357907326239823479912351738757541651404274219357445955902420564212368088661616591632747411125630839608283924538909673030261049487876377561735105615846026190856440942149315062124405489362799472679304558041388756948933368844595721727732148531073990368047418924030152647613968738670416013631585325943965053913580396761211237878109243496774624533026577844917217533855731791270070489046678292848162730153831261460738176049749231327028367286444656068287966291119667033510547532554725536006492408711138036363017269895138242830296836295671376075919240298672065760219245832502131916646203354601358094558446715199762224108523497023736430811582533853002373330565776882080731431717518594494740204387829434719141435743547558061889727109033329807250038404906892190450032277125399544269213297537652700557014169976427915860387251980480079309736023186371099450656022572215030933283106599484334569626325927858321008402615874628341698123930009283944860265920411089652963124653035367364080516267770490096173481132617898516722310134927713427138188257841332535147897350664019123000171968509879609454752346389771857115687983502573782250134244174546356117153315600062681161732606122394700520682106811294784385032441725379642057768571908352999035579116387388198621910667017679886357965714246423416500607519038074754561795174373030742432480371742081578560438583493855510270299435375685466722285694230131902083260941248918381739411458401894082756208152061680187152509440558854674830232617580320342327032378419355913704052447786045364832619046133710552272777477397444347025211555335237004911721723843035133854903207089603624978044107229936587112707684885768101625350097070176510293550598043403445226845470423771256393046544333886679224979485129204806361787613002751271836696001055361824906220212234802074197911932704209203021847420641867889185603349265105010813889881684174406685351857655784658146757840893542321599622093933744177581724236755990804260960814344272444112621833737598068272082313508158830156395795311065609133629890123324361050152992652173097265082502153649129352913135897982474220299807445905585285489233646019219659487174641159520800622600397670705758546799460045557673323150555009539237546540675198292365608667636120489097301560353349514771291291036948059000342976976838528340965510836198585092274490093478628276290717847438449444666363592608570756425790638294203496174130136589842381177454040611492804721665051459069800334874837783731325327022887073921528422936011072393564012382052127524799640061988213350916774428614882433047635841834661455882541822276927917885896963352225595428103783198960386888301808653383396266178249279996930535876509975752506038550046020036022031423925088331660623398902626954837108662778488845221409420283353068843883634968721749713890564269924869569118006922076347250229592113005760593660364302188745061335685164944686707088866388356080262636719959065449705560345007263205568767309272189701463109211460123261507784306798874818724793116988501497663541894066123526355419395365000971283387008551446960310536683032371888410605119311187332221659895692319599777192422546627158399991313902571883204135713811747683560987406810387609845266529811943874514952450749729957770704635381909245689189368668496620868319285332355078456860991756440987791105445330822293987717609943492940028901277828564517518066680196925195735209847786104121192867687629311716361330876225978808852758474106953973910493551495329131779480039356464063962572165592130822529054307886519220414104277456695803482400107296953051283563448156658953355780390246135365596785692296437965402762945448327937546615444864056449250179097255683739409552726063624042587441606629501562846591788497324184516321391961071267663682132184637789592016775210410341600178457301230369855998548799247840761501256170805948178303947247646144376662720346122186927725711870039138468255389610629136046950521985716165018168741849591642400933106442327403040764490780316203151415513421238419329518895751411093923875114801819618166673764951493088156889312401765233202835652129273089584384148159821392330083708214787353119830472719797555093290823651318604428374609650512796714005986207352980409562355211454033506825561924230146603285734207482572003276076921434457838222942853128619758093221398514700163056851577785515811416552717725962233185099662369325741918294370666531903782373831413124099805178292482044738963957481151575016605005541225723032862259204624253639347312855712758981588885125834669581601369603697406831443408146904417800928657017842779456725041200273806594987030034717889643561083666605740993631769292723358573500946715972168417154830971488553613667905376294995450091108268306198929719058931458610151310487551154355931388011107202093696079186092441753316892624253535309236046376826232392246948331172322380751433425574549762830726810968201929499031728854959868528139924086385515644326005484606521715675294590787382973894105090367848480074932194434553819988481382556792125807449176178223816020432226683754735270381880071619005514192459960917187478549993701322306893385556896087980630658706157851306828429558479414689133880370170053902977427076702689576545341132458020263667832236286838290987888951870011057104531799974416201710996252559896175512357907146863717459903727993313770406040324931586107506189490517095356860014514400921974393469619044468453864854260514286743663712354293464982613082224390336097340668627140895111573993900750811081652196984053281884083665677336596024488506775632449492560168811492155318094032254286281247693300404774441371428487731080454495039934250043444082959969431178950654859364669938556148774126698499439461928042562619755365758540359364153281081032292042639752287143077966812866488262693838977375528676555017232984989715890044553843948267628724689329375490088382187505560380328709199891779340606350441845836964025628914499268077208029631172636487408364562504161308950530151605100646636300911408427916136678894327332087329302634635712392917821101606195514573913309176462578272228790254310833014724591718737745924117679017129222423846913423981011785535765273526788907888657046110936275120217646785991109024707236707954598991387334166344080122512090321643129682574033828915648603399769343486333059209359893885809016926674439582481233377159886251430451464320452637214599453240100498665362365541807110720951856146311368150815076169442899748902552097877196877128035735287575198507434753072618787940655099934223178454660991210319231908836339242918796719805908232058420696074464114550693796944158138184762739614121026057979286261823854552225033065403824869550514038299431247295255219840164165239426815456575162115030830813581503979926987326361737659200794151414800791794618728435940275832781393447568789990539214529301495337128907711705326639353375607372390868802914219201565077256093048490101932666091507373559163254235675449495089603311964494127545682815892135297227317448559913863367131208079441003761804024498170396410107567272188546039559259070530799875070790950204414994189935149266591627054389875088637827135294759599492913842819325637672916312071735384169977494254695983342260453179404485421866643308814700240624092111753736855758902343400120454079416274754956738597799606834504489480067473284608287163293015558616518985161238540820232780188431077952603826948760755316567891950253102396799558777253696077688824652104134693466457188529204883417254743556740041162141574986724564500388484772773713118968883789933230474694693514462514460569718835361646953352474304628097350176524874138280206615920273884041725813548154920446347567993339359239535903167891040607978371941921807567603286777178426243703121950938452831090967158550859982319520145651850862922087678182925731237478281602507509656392220774947911837940685814184051815562865969522415302503369373578776527779143436215839913584169252023263721248679083178682178148159587701227680950436003167238855397839160807416560072835971806529756558701247815969060248195897767270580512348187464685761760212997876997288258055434610658093763188941454630709038647598531171412038915152851303465888506087000999217093898261181113799428782877175953784478891460961552756441209360085998278520032036902303169589424930363928481782732781983467529986236318556131491325405215471487495343316425220970424640004230806711334812315418028455879372310873171197308579903614012366565894412680050267712861694132527401697386482316618121087865021259538451328803410956553221715884418551935348522765057367853133901418545677745242896870384745284965698432399267201491585887668643424399620908324466396774383489512701254250792457384906016344250022871398570722595883663407931336092596744589447722424642077125351225134494812504888557045212315660374241978602784761214507236772963956830345298221568974666420316314248557313950832200617665449581751640991178554600260176286231808332852305894828031536284536270042609577583632358497413430808578398438327186048873718917459497853076603354622762975935732325238001686629438003764245866033199605657957542088827203592200235582799407617362787959430297842831565063466685900116012621495992951796196333692583410358534779409468472931630929307161596525506261362859951851182929225074512510243723780920994653272090186516382649572461578363626106906721298586104239155686433443010532679296926141392451960931834610811063684176953373195350255150955849392356793613435520276650707288695419335356687912030854890543562305052462051823651837448660671707750816970427785551445273693958229852646381121240956419817672980911588566791696289302325066021942144043537195873071504060101586614903489311418701158357493455543814005640121750360896453651090175557699951345919613179140417014701892487215888498126307280865189010165084242085187392162103270586905490861038101052093403852718179335983308192103146104299199326582442715396654785203801715620414961933195083930919264392230056120639148835695965745054858513040731488995892858652294456583031810208838740296569825140841948018968229517734828895075711969861031972916584089041321673895126121609892354349764315623718201672777397784004110570548751244960283405368467331594964501380048089490776127020283389476754112207623953621614092105740653379812698028781368899552137320318684248280107213245867575344616247623025921009305503110903890851316433308561614892463980853817417692985741273116919188073046632284303125084802519729479197530745909372391611621823292582568977793487594112349612417328315754190234236330833991083823682957193474353024856741478865553923583405147415074679247784097198022731666597773600712652915751925512625713075858865179942468705301461626495195787567389838638576378783657963028832601725004562921603538499751348763746640451047741047422227908382871464958970112640742702781327498592615659871934159639259945515525010414563294618469628626876418597577932136121418754354588345269715479876526400864101112924979232869410708957619272796681227926691280810299270394186524935464483204677320145697200080782608492390197847970213548420324625256930175196471949249720355085975922148670023848008352804601935512891028902186334815036264698409763004551143217288495563142551270189707841624276259202631857169154233249316231798472474664191013015527483880119914358482641905116673725444927880610025271487035276961828114349069742142641429164351929395058009504016695785187555672836805248318503897460866570724288964314560814054589170193245026715742862509562315720656975194702616815707824489696466794993907665517653393814724604379013797364572487938286952524995683428179564606614619171788325101312995923024055849598573534134729251588069282407645070951111166761361237967594787751882580355156601213165452825342241795616176949588063953476504792602144545705027354074878390903750380427238803854295613165787666257111043214582965733392313780831259415089143331594286409807728793713462991627264041091218909893762893564018639310514163787693204168213959602344094560583369476190622811234272191687917234485277286824196606375921329984604894179950854067344827827196250931396725355710029044574835311501138986274567307742913356780703844438451132857611379829656023127512457086033210812153249776790016717005286410796004968471723685114135545832360729486718360641278513728934442979589960855807030953163044972822496745677618778667203584470647819749045023445062328758560544137750275824451534325581065334467440193109931400100992370230948802659307157766223784408221113606124829343059484368747877469904444933903962039577741906624361701350144436436983508254436600217469977092287631840435658122284543475446371501799725807214383057534841727073319978263548809270087301118562936360694282425956368673028698575650323424108109147389169425981986899661430801332633782903536804337772999981516891652762641007320799749060444475443621171437175264585096343531263320526697018767560941642825762383541563409066528024328789489216448328526653541610691546875192160019072079836994705270427957351450359244435232283243091660286306498338409078448835572892732935551535217925350717955388987844693706879742739756611042891568123667063177836917105523214697713902044707259913051593123904646799032764755048735903594715372114806645233291573013582921745057069477034537009960196159989288453931337999092022755203052055169746320191870831897674978054167706615327141285166293508824747000641054558127314406081050256957203094930233037820181955839275111041579833039305346886645905190510019001394312387911854946692456387434945295305739262846436592742168195487158474328422555242020462681187933439934844000165682063830542348427192200452091564937146115728121291420132706342585305778634407113912581863092277662008428062946267394458226194279443553415689455295710810746708061842399363267317456898362630206703900450471797256639581666367735393610809612610067201049928112353131356086325279544878494515366471687509226615777337862569595867223470415017781815894716408232702314348696412454938275482961331096849597728648364977294496176469194677517062885752816899574039523870734341896659472672443220719723781137311498169250829511233781862013158475550024816324983084262342507780415371904448989738601372259621969614080704830514444628034780047880153646638668968780655810596733551658207254590711206882984036861266644100507731583758001280614200826006516032789841407538964503438992253960557616085322890608506646476030658095137747637212720732205285644087722592331049465516674084433157074165459701177926788963342452457697470825316471794092858010223984148378670027561390605733758301334155159949327429362706766434007798443030306115597062658865472342235741200622238558262162108307020674963421636382793661553482512765779820289162091700664467910691217341380154618463008065995419583146477299617310307138204413298774473965087387987769465266325440432123853902590619463945227101153909838092004054309023855447666350271227393888534316061446464047881955447050009730020226569753196979027049554776025784487832984313163166242770816398929060964731782874819422161267235700913231091890688081593492257373891245547129226242671396404222284092482896559221211373195814714433305274127296685037770175585304241672645747701992818849617883445300279620397157447491915979195151694209837650331264666985467407976371178522879572165363063353811442582034157028149047347269243839764627517874440332683110987710031090250818345528483624935050941493724057975087571564163965728156440844190117785806594173067856259707175493961149532984178259842658024060498417139451155293903348801641793663582668967887603300026385840393871650647272445196713845515085985034915921550866830681055220897021284325797634794248170386821212738675045391266088698950847468958758942302131818999612303561150537976983050048868952538040181117769003232355410731598295360420459609054310114190011963313618515328662442413495983875698526240336633880582185098748151510488305620505254600666734169028291624426408864078801884080118537507624693995903358440383809760060216020356411688553361189857688227824284295386407392963571999579054029228566249995265582904857499222250272777981109602844202525747640453473904783266778699880316832876673961085753478788735600759239728331286560463947559727194521276929215737872472985478330414749785826218171098839048169732997422934601458242276887202981339693592328714036359893254343643116627389744831890356823004209136274367183605243472400267863718924364818658957447193516634594719433270531632206579040003345583630508000786433391244913124114852931172865143350460071724564029242874511842186962296719659904104792735406480095090198326481863265307254247807854485899425475649147213595975222895211980478523902807552421749637951445500343032609350378576608370641558497192894884232959542827992719456422741384673162548457175441927725757589901745137864496359207046092677915252502601136144491938968485057546555423922288189503056520487000653374761201228767534925936999456951710522504857033783709784353095269115448483033418620601224859615928267184161017426194922675273280482240723701817976273136067511635569476402119254188329132923584026565402578820114804337235854105042681607694098926980430487168538707073729256191479410525557240594001614646315890819151198483752383213945824960872307114516495886138178055108809569906255331414149962321390312389489179995004145846533878552398931542985994991219898340025614886156831771153277358941933968692081458313098979521130856663198283504432911760720813454825749889605416519125323583667412404573663709693774298362600746818914710650214639826692251442378517457070047816588046662139683648751839357931855852567855773575470609334391786375677986046930925513668172437577014104400876692129037616606755941262943295200892140711196414915771193024926351625427699597568943879714100904105201646933018203827992894278751632036156811320838869417635293011878252022054554944776183414673245533284100644378165717918976498893264503086454782937218603787505979157750368453758281598889131210876363898376343171976628374204244898445727991138985302435404573979553614589623569341154844305152787696535839377583845644527916902061579677000640580681610987207849956500055578695765063744277205381979953102023060716436179508654148310954936944131724045248620226346260598957857744753566948892685729888221423577385841625712653000041222885496838494355689392840128380997611380871134532072835938649069212208365479029906981896567326645024079583686765671218926966129273363242321688735752801555627588025238118737240291739817976325764236450254133893242126830828982672770780578536404614149036253147984684748061260704123069149939414087056996231251144641618425627603656457584951450387654554759867613022430667815281496363558718997063542162089088583813754244743878845441822126247094559337981598348981330240121685800559903922390275631321895701641637290675273028709669801583811992373808044147033190731492525376812856570185017781628805637808461750236888398360552448995862621965912219986070451277074771387614112438576328857047892642617500502829473409859254112955238710157746313052038497109011884179497427857769765070217432716651768000453193327208857805565731344983920676481544678370541500260856775174377214814490359727642712266792362444763908181956967792050921773967851299311069761959671441491227964825206333852445450578329927056723314920568063628683492324277856070943353515106534339027165097996165646662070551556964417159376700100050977822285886185605876226302431809096189046837284088532723459355716723952932571301818596240610545969169967418973673294653442853307623307928746562561916983889763711237430085178003137627491130734503011572200283206694330881426030031142325936128376255632184782586988188610225546372342903543317762671123701584689317443932165996881922685895273756206133290476488104393124501680358102178649827139496821840217142381941909621879195837829459345397836159208636663985869682326158564808432916163326754440450234564636944131147851195026933070585600103555301974710748273730054501151014209451996796331687477831188484459162022824400835165333250541719546850648756105197002063104331494981455976219101655254546832598327434403096411683210382843010239337048913518955269517739398829656567581948833549435086506639635618777021785666901968460198894197986150214734244591410126391010283077564420155320388299395253373356496463778069997741891225061061255944433641575798011796268236608702637055667625461033335010471642010867670060957617050284126078359563536253809563632595127679775680842667493747506094419682186634559144204030352687806154906194744294099977441572730489161689558697750507507294884558398702692891779335705223105356802988277541993253392931153477432141186473264060964687906603943799951782664051643966121947485877542108894154066314475923878680035886588802837808199411150172167763157258093034016728685901935109935174470433888377239737500769612812948160642553221798600200208725140103185641066606310158596902830723609488599180288515970703017256806615301756897894641535166885732090999334136495450126702630804152051280083260665493440484307858248794748325798738028572629315736211618786342471936988835749354290345468897397772833941553390560724503053395178089872570271574000415068197216570159516579671878489719779835411642906760791386201337089199840489796044775166906185645415319117115958539823713129396026150474445884451224104959532524784028166815714804050181408831644466305351605015414978587539900372386494247328673682519270485451817317173613799252410699246375542653349114347197482283583840499038416745720558801901292844449373116073555696995901394662967590032454693130199117811292352737033515554733260059682162168906438869706477045474324517560650401308166181720562602192421017241171450116545617324958115551199234925836896527400749531918084556760416962880709023993357800040179750304997281155805664082703211904050495270664533021640325067924174059651808160263327515688232648388630447886300434848832269478131402073823776808528616775700562910160007062561617955483861766389431692270590317960525377077517389919026090236813347732377650543600307093660130293458654828085012619369888707843634049761067549409482731058535577369432098809075128757932283947929747584094582768086267448718504447581695592088627058493608040605803804676890610020083603931422195070707671756166028111538388558961773009447850091479118131520337447042591623151981967829316587610556680605529872578451757384706392079696081247743045790700807595887276592976987728364274736059327537751987522302653551893123069584079550821705772218440133617785860679736975023782962560702215770018109367517609196290920255068502594021207415228509733223579403981751608615826518107313485871358802024446255913413811763653017351856596971493002895821506861185903186157944219746204416724713717099851698800500215537104574184674848240292726722378085022356385978028833558294211757771856747710110132165982562843565649183161213278612779836733369580177400452158496638180072865470213171866362138793965263330665126648299313880143277576044167634232905457564312159850973386766723083096447830048477721254720353004375515526385262779840038409741005133503965719364597537536463092105537231142734831404414650334996036984452426285317184507002239364993459209698536785288723226918438799577027522578330887841384768187119417245047602312348302137875485364019665402511426781795057637714835245225478255079853736248568191203415872527468547649300710655542244866663238891960670068975955831624699456399745164215735849294114822939997132757353163698517517463733272454287731729879856066714909925093867003344790812859922459700368099606468977529956227373824602070894472544331009841169851476486242159261695288571484542253889445662444729532213167200760625214362645617589877633480996041428738415947347108833855736996736624143517304904463695809459651525472656605649760917918828189456403245280774577936067954116750920332449140915484018558249532761318364680135107253999628422443454059432150195013944579305146328854930345870052431145884290865312167733872487452905997360204120549994353581253412287976917999317731628145459538621951469884208871324289985184064235114030111902319045034275425549953158516562012097934381228669706708888512232371548780102321581950639567718696493790786732278789864969068240191074169758659275541917432192241294532765795780659715888580777091084314178367196445825068473968329968091128472638765110413142575049962391755795265707379266783306937420560496148852381863544145784757775104074237956641585928507011922255481504539964399288326998578520459428702060809224389518472989229721594134652802835158549272440803672206694379142654431089670788834928170382381959210507675706680171807523698885143254553289578323556589244123102760856181614544022287946678495913468947226742959934823123113923366067377558713469204657111020054602599403313495434683486505309168439072721199998121181910384416450554069961445295161512188749031186029854548415398031515873560837601602663152616488422486629647616147789373905254270420574586270801323375133729028962698529785228551914411301602298552730283092627800485049804518012447895381476831555760135959300244666591515876633656135573232198644001235424814283309100779471760847759784042232566416074754068587598580044005562451905260033454910159310260547723842623016910915383222153747852829300426559690219506941903405744319655808332766197329146317487301327983019851891383052865313750205393671385129248186011751980557551339497514898299384284761114275528579253496375044445118131609341194051193761857170765761810517071147095715027809763271813134815188209655468888275044589701188969053904778177722778813667344486950786087193880873832456692721270658316686081699708648935122002196672494481864766988029771548096406441843464508209486702239870798128608346748155258934111106351650532626151512677589214080370881764268690358980038598902405483868398414695546061809111016486804196589953844431704417916939885854750881107568884690321589165891956560058636755595508224653631046925522625215810768197533835451818239325793582466397472029019837257922610304554992142005151978401534692644490539281077310043910946562111626451357704209098133060052745053914819082037071946569507059713421115267549683578671830123671055761353578254599393795921138662748520334374987263344696576805713153365572091128312007122544536399511259211618824997045084157894185831729282497631281134391391980294571317944908916613202573922769030114353236168732865914182622149796205248338889722677523821776896411293908681190194819371174057495097586913202399524293469483381408720536043383357952199508420891067724359854789935746454681990422590207635705739858235405545352037820958964255358228197459439740070602890684748244307602028028647425222300019719230073659096016977166178097038775031431915065402310579939040237894565464316112249982651240742293703607793343656237077317448188918189260861201413855920542514691241393637760949319648333720668709314828703191142799424089755485773279348156045843484369153967740268061390321287031016766189281137966520396379055140492511190610433400167147639064890997754686867183791566175203942388034445377606331899370452256665193175443799346299437383566487548208631030702608965885271532174651584687184517905521404609720222383362044825986857001084395144344432414019064303470652193811383950116084165070072234662036819881829354334117917437462102719350493420278026135421565983176569657425824868504264535610962269257862236296194786582548437195628929556266113479246359604703927660485760944231444103276746492435199709359958234044018418854666688287795695662966449552477670250440887424276552292829739816105000047762762007978446675484429328026558745425037420754454170040096710899307101329901020283948181414168095757228094026700664494936098346339019444494028005016710663886877518748458908815549499303506448639475618496257557173896167728747947802473561371589482456732511449845046310020130895103494222427550383520610837164741358996298935246748904360499003871626229529941748070146308052352741548533253033252330622710158306615160674288852171346031448548025193511872266183497823442909910271284966529357917557803137812949593444296771805948147375146469213433271854515855642148888404677885459017329398441076581957170711869375831189484871136003048485146715547579939344345737853641011170772227080138647388855098768377986104283228853318758440673525097824840967576691746528992143382443263688997939220605142260051416681725606915650894024175821203379701863336386616703656024298974000594674592530126285552932761560093803584391057943357530699103003486616128580998480566475406898400718321088906592691323197938325446520030390477191176604078920476449585027904453834450150937481010341249414866368655012013110589339959085119091484651299322498922478716732563939448905527590103278083969175234760745247290943291692889132947001886432484383073390688055480957973925201607997802768536459816478126721736183646682591542084972240156292677233609376433034666902953250187703851972856593854466498424485214643702337522191464217929627413477453704400604725936321354864429463620137033787450933724605112755757796956042155285024917312470129660000934277506017126607546742630248985743040656879581478556897188343286843881450551928628494424392637511681409195659038597784761816680400816875546350798175674906526924667456913253435470487130484345803834621157014044586082905613677730572493956788738341068846785590034238770364351697600239585385791827678225059232371674758921131219791296032039582358144465271131745637735817976826651680345853513536043258752911801813050350607544625895096096524305870243062504703909690323725721328897766858667305518524342940056646559663268483188754275104545880532374466992565403716952393692522334336796103272760766571118155766814191598134886251340310211676374850752659027695698796336538719754454067352995113246222461246646445929728064641511049679162265706690686618887442052283902154699823614698441424550359903465475792312467948450463450932547406832275893626683358999467416403205802348886830081357694273080512655992579103940076167286001210210586727108205350509595014349758270677554397941262509575747989316832474196114462195300704979332388752418527943275336678328310104276886044257209213981507834621651235633308132080248003426361663645912318899434272813438665504630353813619411602903611873508172240056828328033445741634990885609473812822447049030299585133281481227191958948345140509276830732976258736860118545251914624386840561211322522639468518451908232088848640657649048721600363625539484041284876937875968765826137731659964137163650142708772205646503232229294218535998533152414141119929436239888435820128609087261878564609525893318490607459025056202987470519504421184702441929799553437626565812183654219044697564958393391412386182220654142756826987830812574558092619793499721277324841755512257103552602006884832113060304581221611295761021879523217741601949991800735189045615273951710702720572886401331959054451348869284047899961160580046645620543154938812370924866844698660021190290384452195714514477550829383139205896656292090612100383457342706169845760709432381481334301211325981659682470209655630607219882155465496113678718301842353515978115909773176973387593606593616906900786346752335287744508584418289826054720610902701155287239249922129984246923629390496200323931843414862115524758676705945308311063179633822371584023169668577903728186084753844277461589672983298270185875522393352074923074111600495096773465195905190037569274128078557267465185886339174590798929333932418273101174875776882942564348540999381931111552999405948222948077468845056149107761149053260623968171902633240296475514910898436808619621770585095051313743541805981338151028242031217021726367620606765001619776047654422936365268295072153766807415613395257645405935965972555681167057239008943749740614125142601240963917567454328518245729488253385120949241762931612737911879002563704164847782746850679387498191953831640695028727350722457311827692891489732132676336201025359920175896825387639298189970102946561996000062756525436168214954219307457760098702732370287493373454534066762821779340561329371869161749548750864999050209855776411524668270327669614796002180500939893782555779962152880493453366123315694793833759120269917806006491733088545049994473405738861608429375409309512573272618802540123664702439563751426805548870350402855851229801682363625724490381432361533910462745244350956251388724400976593818484920500041487632550183037303193100760914340708231351251278457753262961637257703391671245762477450424547151351844809236684933541919011589788618877165555317038924720396881680756505791907485548468917086273800048097360319255443633342443617856795337213592628336962671107132854143221346743287226058529210072239097067866396697453625284460311118880711042942946026251183884968485882365726360997381412262834751589922840594729561828139645881673554805841488496057957614494015258701097892836548088106517566856179521212576424144622316858755027565624050466104740355248783517884067288651901421640636722080794867594968014332055115396761242766486531277202597813433244927416088128079187752559666029867229788535618768438961585646166279325168749198670337207691864455116237106402364633997340071762018605868907976526959973960609844426188529674508684700872476633153165624414209590069715968485137624261162482858841628844541606482908413371581580807264685723716501100808089875297092949533157614167359167117727640410155508400488797881594763366693146527229645836107657640245610503108954410929260398490475179278070308751506740192885972789177336864050688283920088452350223053083304972795692013937193525403144088475765479814732867899657427152124535173832665108462495243232514988812700440197866333052279187916039206446937712339013264913491069465313402196042273726984473434508156959868193407131289852360355659627718506368760883428555671954403033956628145676698960779032802605051325661358483937284470179274175069953012975439737900098741620755558452020987624718333546864860000574245629195117552969042914120219950971110987051734454168923267381625718921414807104940130013002692881738006883137440100500293146842756018402114710041031678773762110264120008925134083927704498247912599089154553070740212666263678056677396356108479606172386453086481319219720370156591707632412699678108286070003498631788009398623307885086658888266592555268376160328341949251457836170014404008924390748775450296961288917853844647026825985411000933430419056654343830618820713538275599104683385087643736849305825155722261521129181844422928530276639696256330447122161055755130223965352893570200068328497514703460983802140796832682269817345330442399795135864405141904782915720072704421787148661865659639157041845273983439874671142241396718382568022187142591737532581345301469209062953853352064700816922955798354796511893211258829299394552617654604831149873934330508114272557173051946761379034053071507746056128825656820989243337460026541047430974410481183634538595834018849795671626938155244226471824090059144842424614442909372786027096150075774589764138622345030417442254299929259178641916206819574678593647485471206843398178126401548887061369859604873412571006759472370951111605979981775416845482068752805947816219914088546196641672765015356099739378395432224158989712600636438861855694917362863507562243296832670761979516829099774966755422192503462682668021066944705855767295114405993895888415377490145988033415614510834082861257742248924391999101979393410661640605912168451024142606818798900876313456631608114154580235325669655105386085253312362581873585080076584967867462008268852342900720811957591599821312639220306803062516269660341929544846655661562882250168181122983106428504652186185091054342294539157235692743871045248644084527891650312580724888777612178461314431432756399482725305938452901139396608561960350758141019501580059032190373696893675735093375897588097924061323630603296669232482147495404281357392128023684284304977290628868600389149803733814023196547712137447654835292929192684606381977952477454949449081376898773814364328239022876025240320117095362526316637519502909631129822791021204516224859328106033185472489236995186481681747818318953071357660535739255482715902380592169415539659486466515356506019550494601680427751030747321863813799335177844694348769451005371950721623146447757655151028613243090968823348000436727222082832074583302647090990148657625545802885976849803425312532031182541007940678579374220614042965756730489408338913685530794504185806677257585065240888850351193559829127020994384105081922775208840243396001753459628049946528031627840260913063347378848029184504546152750436352873251158929018294809469084439717740241496192924234236780255432850844923607955619452158061671325230626829758280215153955948134761316982736304507742913563637817852298562791228072098967724889625265917120120882936624439157332275035802925859981570642373667088614837617883126882321636560631284506839233249447301877001905966017421105823238253930617893301121336351746949390797120199353300366591613590497965940153155785423089211082514039114848203585568471304353809307201806830362955130296184555661632138964047349999996774673434711141160281425236448897034671243773019133336414664052145461495361070428018531847774298186898534700707378826963392526319769112795117055831043614432769200528080032535437109071032972742179382852146252182685908056671914457095199881563454811885024436451861468032881382010766467018005824314817608650199405480785728233241585630088735055364762915516129656356861055673945907611932687582695351351577901274920714609346215445601736282855053223320551747120119522313076465281529301596514764989922718493102274075506031353473091923489751151030739908784577480788182845216746009139383631298375330262660556849426587847155602883675586335119488576284135340264705218965000545300900762460885805788421644190028562078234501634607841126205352939599964106501859841857455170326796315217891708923210702667744294717918314019165937720323538017928070578167939332942628979606039784013773443116243845645349421643132927714550459024194029783522230513166119119963614377454790437247135146960910172336667036596019592691823015814852282876835446497715952874765317571685395980363230969850583636552716694402626317225510590332118412469867934748349812071376929751339387711462961146056213003896618462954440259350451250104485559222450269158371172876529411991678422281422559941703224472993018450862497122853908513539372374698221161505170111548427146938724182605103605020059778025142774165945755597876655746123387748918441709088175493595570049219816652104289206233189729745905268602947088089933728782732507383446006317205409063937539229500210676394998001336104567977022016685907790920425986540596636593083580747609457066924987432681493310446835278659270536666809801783019607238118137436727204036946656998670461868694658407293133579589391044187455608760640363293909784307837260310216184490389493987808217889708542091814102054285589967610137826840203440856262965049345991510536180934026098030944264487438920429857387164668338087795820387212545344729931610267372986631713962084397514345781152538095525209020701217889267562943814157187343771142337664148972807106407091487827741258630677077735369341040896149928852942238379825620326431840104126965765589238335148503878168875153376489019659095831641731098861146267836148514210178563390699641138339612020566297475949002071518194489569075034978699917508207053618219115595009640021638825863046054397737137670673975836187661032047507808242796976338979939021805852192492107553224772037442524911162671551563390885328010917374218111832517120394897793673524985637362567806556246801133161527926829650774431569525275068109311549063962592900783143557778537945946386631324454586372450989574805573410292365327249329589469702561132157668038901106653621119283166480601054592324587489030628814539385000159389275532484125633794499382208066359998126378147520914771300336594036216388718852221838380563762655864055903846761329051427274537914489749080635926091565828209210630081245274288408632694223306035131781600351238670846360453783716299757508681311334383702133859037318628991252266175898518688286800079537794281635166042138868715261046507842308513696466219824500508729157505214936078203404212809798487527459230714800499623844670644299459910395681196929709015201511597698003989637819577565819502906084262630674905947365731142623114273833333889615611885479318662268170396390436028083523807290245954388349800691722851825877608464532065546426099587374243143690878035782079310694364197102217532563881530990152668761263795356471617065968520955060065313043327445048892020334191131398170262476451425506249274229321731204220411950293567247110334015133277963487968873053689356657749475470764922505885819039334610560411103834867295460005229085978118744152246994857187123160092135522683123398636094670388185319249547911177371030768003693229470851550313561038136902642958828061909063981144717710817654533452232465263332409192995276801808366958773497057231529423357632279773675415631390118439451109082293130478546256458525678208746640081834515321716929072620091122191419508575258922500496489922246085951717642455126985311319599934218855141045842671183636758284876647490147170596347723343388975195640453608920944370542338570624307953421910155555999228262327366789064364368251271952844786635991337816369747058773810518164727667754073561160279375072729737331573647828438796832214030426267936141407477604428842748039009667003730036171271635308939910299773615047204260242240086147438820271399525839639735277271195744523303377496256806732659497046302990101778597927749507676371876609525831382412631590677082634873376580971091424866268302668868652693178161963375821053134817410342525385122438874743483775917271497412390120993381459237547812141776767915742397575912462278060323599554872651322707568726443480531872648540968991072971728520110065817053628185437270138893312537374280225914318136153218156513573922682952492190029815447484709204609548443961469909375277083214953169536792395918241362501806892081537406374227587707068059640986668856066249865778735145841409930329884040121564485438355086647835106479723149927129149849885716050086832610598203822266256459460997398875157264308715818173070920038649452111600739502455690074458971457758616960938614351383580716646269135242570103715112328466522518085158937129489246598407071920229906891136370337399484190430084141395027608976505100333630123611552848820994745431258868937668520718243536541624802173015870080239924132671609260344632745248982832047882269234600837548182575354515964366004801745229069935576627107213261028434406755884740589057993091348439822689149996947146826414795065372089902469483306351119291069345859496930684807642973373108559848281173575279151941635174755745199026766338396535229795830967757717469415944240040940146422437365289588135458911965903777449794699120669485986664062029709497471359862959208930009198824830107342677131968242472344020162072266457343453710957814752850412480832867253339937729581315078904419384753452527799258606473359496694650457285489240037015075536081231136655446701303970587096023950252517136366744972826816498607404932719152550187738917310393580060443452134483968795956924416892808256873693822906760853051835340934882693015091722807434671441666348029526503438886378003109304519578549571686964293185600674341630587899601864207312470904437252738909791590128742662866316206949732608574287418835987834500432782319305914370414111559116341929662452291500248533316580775929820117005472299110755333427636213485079335637656635849904479221104262294317561066728931963876079878965181373248784094886615467012218606435060179121218158216501917322971796712383548397942202455285307779902720184071063430374414340270686829395764024377383925633970349175876886785699899270383307116958197871538576065696957435443381463563103199131073346345812804666347100882551867385668836389025206487533116913794425779865522368132519580621505938899251583112764811139928178403260999766954423745397743546859181916617188511145347353717887664504009311518042379185929171041936714193061275602397138471195690927982087163362397704538487384793884411338211188791987300563669433013818570404083501123502259612830294586683581498193811234210827040131091931635771736927759313662935176473034651776213417915364762025961626766875131724642378741837035149819977492784710172584057110369750651582310446391278552348824935695188034266455073011577963115459364781074651400263846289558901387016739647166439045420927596009278382694397557590551276777629383076785419043052833949314305186714258189967780353444232662511155725780964710202801060142208809890360667442361475960922780846948597550331245757832365162585306089614611095591993720645285578729315852194272884509891117755358378093756330308311119781123702890778338760688988354013439859611514250346640637906438873224588520344370738548074807312954232137660243430237107645982349781971094899795293984901820974388208123662995671534562609773028980222121546726821285442241815861238853455130966240226800420842884477203390790455806315813587723684480930728295182633794185713503319553658531443506556964061407694638297503952858682936584746758784843434118469929971291660666898381357642903138948498487001931786138179875210896453326583823335127891760293848419099424111142422376834497582530772888005217748541032282616256249355850442450306290532075802687489313848050012534915385775055289695812523679628808447095842121899008438956435580848690496831461837627649903172660117574825606255990534782045929945724576408474029331671924790620261744286954619377651285896326546553525603951525263085561122906277110290186936460843534310194544048947311598225517945193279378535151258804075144256196332856434285075844297881190545361836776154809279065031717372642295101605443827525693250067757349560292598153699440175533646566797575474822777237350394507445570355564523539657691066322043316515516649774061848169961930927363358447722426179916069382789572759461636304734580506049848005297781425784468876173398103541642314814352732152278972758291818843780623774721375579996133338597867234640557869777543274401762290911422467600066510722302610484808688155306092283876022759486493055843198500013084350019534848688670324520164802256337625794455337877945845216952710261054895411555270073236360095025208326264301036721100192115599307899710617909918159558376629198370774286689715543692917310651331019362006720603345165714685605168196322393075824071311246807781933420666175130099570439100118136302690094377771323892563708171419134661586842817969475447372965377018195511866401822995834060804297132415458363958699764191931440997196031747616193323348397526734485201696327657657237230493509462197125552851428360330565720311947248974488353550980065965191057120746249893325575095695347869388970559541488749523421398102255225329101441305456296088174260882058960047934995069066987528394265849573364927456905400453347567596991431820073996464131516039235525046075938739571032206705838126123352108277675669388193429086048448498943676808538408655977890356435517063594724845388399775459999624653942656752872199738848132152873476553997093366787879072813961307875800596271914579541491408446933817849287061593070992991986108085732529271502396829438548568131814126957214791365989739206856849001684208698460579706506084060371459780084377607483303646288171715192549221723819258579392242935278180004430821215599818191186199350624494216184298861214421349890093228308194983128718132868521388497058386857967263317857379323874826524187117156733779460767112476766212658295419157689028737984163897887419708201182440796125657247712751273243361350259527924203618346108960939459321214379363936894487205114254726470295385854153499830481387456984378100007292527207150824997038942243432043763347600628933478036096360967811471613874330954274072128715687017431820761373887558359285195671379327505172415056565381706983351098483940576691772442680105900741549922161814572218708543869907702626419194297161816794238631706342030776691565231947928362813935619632741970105192868559320599049142813195641124916761194063768590418273336561685828300761550694966108630573599142871166787291697644725765591223819858604695665105591334563677635892411906607574329138157541797220167574114632441238629972880299899703263082030874531263256773461931374357531605428040342563604144633381603152720172621190976290124512224997749928085308361712064161434780418121039818655042425177474688821005017974771228847662050004444739526453620875377744842726427353913425238097156849401327985919751775654569820513017397872447217825256832507318108080531672278509158292452609844639332647563925764290713210569114892160773685564133173727664370398652922148582625663359088619076038807643141199273948365144628050219586208476249423884990914681673140134659650385153161774277812324665557372804189920167553695454063436875916295867274734769407504019935191805756145602795111529889158885253411388867969495605295843751853147242946043969984299103835167279897229771941826129683525593618346606667461163603770574519830465140843601136129102015429413376991761504102769975006992725968625300204103640054060286402278029449976917652820724481497448616027800024898506631493118603742195520668927255023286941701462028165908781274711314980050686095473700034618377810907265541527510071329766080753209984574486306561238704634757843385203527985858995909634445727386779518582461989236836327625204864649972855305457542223660910261867974861206776812615580241925525573920868144405781187091926703981919593020946626746515439592620659769520023272642401834691601981989914645045367524929118382371706694534374328749856094101199536363620700926510945684469995256255366611971128334271485753767384766347604804497168013623226669998337018813813591472796430983679881290388925516788919431395851443063172737988792850592784059780682068042787333180272174681995318794500543454253929757747786942709981251364603010265804035918394657879131158393229299492981202636072676614032917799723427952139003884263831872256163079252762637506094956240357470230836946570982898355811116671723020007584089941222671825395098147142910124940897723906349419817031266275808279296357006007164300746733120876845353252875619499240853809406651393859609193188891568550998337067935416743728423737451222009597495631222441576051465746161864538955110299849078328351535339759268348088238791769055196568638070772927299159799903722632573725704654523994293209661549595685111556952501358771627639989610794512156860565115787699399979302048095840542449818511098575136089949421759666159314367776719595392944235048131432438399377135342373733582501094752540284570008424008387829148476042337626037485372063882527039403162596023225749559885482244526674761341799439456802037056005038068586913254405693750883005262875195190295353306358137528691150491599234407158324375670229046843320035778662053688248427942053838199548776404874618605813124343453501749764343622665852611836472990410196970772871175438061838907911404646880981837607157353564426844921236307233470874612038350546908358942985853104629180289919629477545595320451340577901035778047582193715956125582095842196375148408509527575809495887201361925017385166398649911527688555235537190314710496911604124292208821011542115433999618804358178962859143823393162842506741677247209630884719783713659618712303556582954503055487769425172706057796553253823096696804605258999456524176846467539592549084700716890141831116212012027316333410817928749772449547955369326531836262379669878649685944656721350664799997827344292725862584010424888793712102238055250187909454137525437453581610098268363652880437839092963022603162483721475406933878971553008882126219356941238401182691969557890582622702016535413939544342432837935407683327431623577005613870917796899230404867166433834142410538549709146062884633421503091309462838208975396430301240065903099658482704550080095281814366873965236997111945408319875154719118912173628093159086307025179042907924594129015886510069966284825720184156472447267003497291843930386066424282315200596753909191374130971111667404179801547906763029739654854815599664043657973139638442293501195844422682956488273043132000539336684665939871207557207497265264932276423710725580946463313564966357975293747680100588537060793840537431032325349021780446301559648417560555340805214042396995343885818810658885540043036561208806424420820220271231467617590637881496151997498755071148000306613553503415997641053658188073410330140863179146103925354879848564255968133895677028214350284681187553280311209137232269181567477029617921239338675829635821359112265264768209641634252077056977865622575914955641592071442657711443006179196552792900955135804914172246194323289616299551976598857410025310976326621504483146206549106972040896003657256517478823034118128092547925141734390971512432809979398931905832113600638234263694729545391000541263801470416930155574188590127971750075441607894149144682102737372949921989614539577483579369997815342465388727352302007963832059923646084953706767955907176887426157815589901223853450225604980691454614878934778909951939425855115172106651129892743994614202581452771061628715370114052941021015369521417990424323630039458573774593843793459722974407620694712157372015574652203386319965283729351366457985728845895496447398114188918617724704060353242432620227517959884442887944136356731162336732162239713220137377105040898219817044326604133480512116715053640342635070099148803494160385646287679598924275585052484714224021618849398544760700246113161235612415632186983583914140711400375286969752655412814491198794037038992448427300551809673736593638555612716728045075737441700811879454993133259954527960860096742084170199896501988127204334929222562152087834882650972638517241236514028451080198107149413025296192855178935031535901251600459621000421688934837379804869334854918380882664330648765278394581987947339405538891793323939199730882127355705183653747719846518726170257284274205402728794870676451189761681143189106667624741273113038027725920356532714651846549318476093873232998745567481530733244271058716496817312641383900500199505118877046245776552110255093166214715839910301748999637442882168462434917326774783572182886710695342608672332164091048366783097147830504816951320498528532824156050564430710637469088102233775076811229493640234743454733472585341004577630259469790053186277389686874652596598492412622139659466807953090233057910420627756321722596787537740231602490390723658363600599636050255624366812580581682243982238007005562756865981480881653343512720962874163365756753830733546576693023386581697193642919947836533865200844552087012830910976861113170168710991315062341100816022744121723442365786820250392380327738057655503370455597914843222106030620521723761561329123455201367325503737325642425124885604455017448144813135110962600031695408161310762044271292058069000900578334849236034570398879990998137029038723445194674866900657860018629704346208944747425058412416095118705741612398545995094997389885086966911552430235599747881064742100089921676358434627448336980076884388973935511194410231514352972888227942401120379787694801649835721641880473777684777583028804920030080463751283679590568782879820055825762342849457212424090384129286161081877542106784293363084426277631057648030258576076419575708384284736161173334406401846487961952524324719589651008911975422462631724901425493050251617347494566783299130984336128477833732583105863904849883170516006166592867764977207944564082667933670493453112871421683992458512867401717549858866529713428155813124044303926605616287515176635487201849734281793400388949396109897626211754126418624394717138516376506865366782330885657662024554100430795171018606443881199772062414193182652491465677669240016715064381687015592140475482706582090767551165787415557034938980808052903806294021692517125899250938777336248534851974947170530390089593619247594218921271763581131140674382444603801484775467186702089988465211423469998299108441234635708903440308351901752650109900489957168311973663771992433645713581808764674951498193928617572312303824205651226158933216558549198253451823377500830386785768019771419519954505513957722068875366215630354882037545647767710540794114914626622725165047327713630421969462600474859790737816866436434109870438430858234300485841189794706421993064739621104083913062845287706065336748193743499218301034994068776837739533135292437522659202665531932553883100820720549058850899331266124766279799393314346055560469800556622539021597086757364836270803739004786062891915826474498121936074551879226782535004009193778658338064684062163033522059145733293969297673264130506620724339973170502194024894482756266476083450618375168869347042240118684619757053249689471476931175397277353488175392548304596128572490481977924268701899609184487764169663375657553852733099409096727824696132129781740649458551373913752874852495522565976591522342416110525708672690146192683233344878291046245094555736555677032684724209106173197264104812757426342722348445797244480070049083985497320828301993153673093960932352353601417264343479909980041620910690922637349780972408961268385925420490317746941687270968493888239218436223615731058956336482237487842362692951209642846213868134284807204231373382867496351790525788774120760338469006054218368903552814859444812094939237883824115008299997605625951796391793089021527487395407190930156774948319295061396787750352303934924153033642825739378299088024842982133983960143907507474357462599126081620255037843221872218912811309377181030717134864045491279018381744198846133362359859972261457266504304295776097384803832168596630142984378939713770269020144700267143349253632186568404138873065414842054407720480495304620235521471428812063086593899422865580718132007858997214642842991621957793832326562231865166989433352086890501049356179607461596554422242543459049627507059008815992326999860124039556114451443371544341472513986313567311554153350771005643164859363281714125658359898546254543271414178360978816793150782114649482865517528296904985045830810714879747391934131669739709309626477666402840878595201122715800860526211974696731616236316429656103362071913837662769585055205311861992595177100564418066549602028904666822642060106078834833469910107050538629344885245803198925458743529786071527435173628381392245587453879257554668592675289997419752502731604585358675134279897607269957253294773805491376855580095651866411365859096681786393776363893335302562275344948172038040189934842989162088751608632017458909098383578621985229421304227389204299264511177295616875959667028604702813055415465850552169622330485685943609706686080649594186177431265720179809541992903243513321469553997790262171924025501518825171568440551918502444055646414006613909745640749487299270021880042175496035893512602510556905392131095894664522816095500318565297708610091171040241122727712697590659541811581206161857730314467956624699245756220522478083419655150511679944427189373626623073208149353886608069501331106025186538207776265580062185169624450748652146559031951357052466638793014458077071372525529386796705568220606473885281944612832056919488807941772524634702611424294993810976808637807029066637356952508748991224470637302507624088549454488965658519811652015486990127862460459049296071369104270754135220571296974770783131894451708534934877146839690773314079291746290749803169008011458225808713054484434569072119773553443512734945351438451926974039202721833469306625354018863667948752310975071724414530812766712389656418738142391658381006668379863242144309539006384396893136701861343441914968581170455616456353458405730093554155097939094607512087712338730238906785126956685754743035679868284084648235930925873135669272896733119248252244728699837042017354397094773249170214859550580736422637988170538057087458392293218429893671519841510880802611919213515261785399778156030409396392161587367698012520945164793344485478062283253001469811306266087201187143116375507787146876484279587526262369328801919262356150800475789860233049066024093517005725671101062408870418448863930512905946991808053264960698668830754211230418229865652382286923674737916422187171194440758319537632429272590505688761747092344254242963199769389952850806501805087934579906886561154687103553069735085858771810283011911697341930713618514062812535109117240515934394115061974486352229997540869703800413496303671704185821324061921805485884136283611613032322955546859502658343391238024402105910742074069389514454009139323824021527505079284569463452891267092957802822397627196148906202947851062473242611938688000245961342648198848618253981059959630051621227817834536779003567034802726064512500224706109992821332077178343734048554552275689807033415632878688358940142918694468369443411414850348680652971547199005032228623255237795131001098099947188134208035965725385988527860597945753390177088003134555982308545901195348954037109765229625575023703305861146621926003355945982448733324945716384586074643708745756609483685054037821069485971067112028839227165066546546208665173992498158770388078331364652065841614290621421745675735521765131640605751077375988809436266057986602256740318997493578954083326744401026065959298006251042385518072629995188082542320735124272749409689026902227493015043740579202533303955117368070530962569299100554258190534964518110059742652663317304455865190235872889850602382498390024394704628534368460313574353524441455031925651207737218167019144984259219668215284641060850045850253569702148550633492937509682578756526090850882304326625986440019915033834399506111071260130145039452591567871269544170597878538887265484296855933659850224543220850898325637300384271481134515204039058384128895211281531813658416627247048594503893116567999576413623872050345016792966512171818542448655010436931050159112261831909606843170404839796504244980410768616950363598097322125125972941393879634424180510521871983191551085218971489025521827497184073127287234667358660047063223081390690228562390475951922904726566882998693177211239059318174419000577334093910759097494564620967291928483001425103135349848206706419979576917944780238449894557001117196065768717964711866769439484217600190574515454447582765636230014837123953852616362158004793992150216500693776339514935761234243331252232038933458402292864059298810982478282375908436301447312328534256522321771293025777755656189918771010701676476793112153343277519523932059926087989619586551682149740566532856158396791253099556150897149708001990954781636629725262326371436285146323364668546456028037387247515412899269916398352374126147409749640821500860098578375157519760270954767311639244943655262433524317102086054247456935189007385774396758359811873007191255033117746346825803077455397889478637993085727834128379770777566798693504668226553293178775247971474824062586635265272835547829926466851055735422390366469188563395636671141646705444877440757548603484811563529788360113883504709474521702132940952392403117772267235938649613861737066615276172672468470354658780730791528572914582505574274959206545166236260506565094029190507129745501359380744029927731952335547062440468994159574274344452673914467030060972843605660063375232823635217805014495856769150079581464801959326505012935124259511240712292295289326105892923366723463746052730939704212512359417290848563023384921243572954931395282623773333568239958564333469922715457459134362687072605558232993293296350063820080391215909890659964697584383438656798926395151272734931110100914009669797383252142156976242008220919244428924861457498729834503408542364166632949071293897685629089812968326392527110451607444244001931022350815511892042035273456107064346809983150252069487354077416776907011377575092587004318316828963985342228023692439685057350817529178647404996351294404783579124162461168626173031854146678088313257175171330717477779079342355589340733680959083192870573446047078947598860544061648970005130651443786641729345598983590747822430157574167743213847834197020985018399496052197262744635281296406870041817411673260553398272580679724048671338343557350583533841537623146657953605976443541588619534749582708036594530484412913683944708027605231095691112454852971414343342981002640877216142009533308307336186052551935352124651422016234590932434305151256585546753847807976655050785972486940483812828794473986870300725406849290177664011977414612662751915789235683296052948249299724583567880973663860722737444793406214945090124583713161017703264486747984363805433290101339580617627504665620312038839503902350126097085720535648231674268457423547006964085360139791347293143065262946160051079299018981844030802684636842286219156279371004126877271276594197336331902099414568677371263535838062299239895497496316335805352733337262282014101213139865409100466610008687496202974240243769852847267342210187963835825163780828574933827179512809204417490376380244676108589101169754812171918178110432980692721832472416635874996225488274241936683259451969961413952535754835382562876979421454291105564826637654812823949040593387150479044677099124891705649335655495346257397050004210989264462052567595989003157097652280282525537128310109017468334897099164521400791015256075391880455601557329760669446699483032509013846377296687135182775296354843427474113722473688301185284856871244452695306640977463079848740426125434546379102598772985676298846352973128803462489816302382923635141654761709553169206881368691178957950130470005486452330002490737916948811390800813635326426663598806663090748175262622603524024947913237574847043348645677362049833825399614834356713770493894810698912452338711473121067035160384194005144756045527529763246483531750600338097325683483128413485995957716931163989028534599984294776808172357337567106727645081221850139616121412494728076294640717982634490643382897308323536924876691023192094491418949230237820875052812808146631129679498219273396491841971086261639537529689142452025073573250262007023842763127688622092699863229192736065901303922877437995740722922225778816431564373083201136430516329589872147047180787394182103111475696005139766465439025404983417371130783316051561483611028754528845976723588749884641830811891548681059339411251426952411889200231636478285581567162401534750179426276934917469083630869483822563554823581628078411826295067078318803016647157586201729472396302897517243179179809256610176771867287389655132469068681206808940171559050236719211215216698942913013310721669721811597415018996842622206920487205421890641972881332141393137817701100326094821253302533285550550643155488356429947748560382941224595521386865101436151428879231538727106270742231422971704707044010359783261745442707309050804926106554513182343688223445498891821922409156717717089836146007757654651622038714406698077200137963736626243017334137828397794497691469042056833602387929690494968711898664915654102389103046679169765438901230193122170175584423529345139021074014165192910816054208449424564428171057553529784111750622015899856285912737132244739715640610072401237534302291905368962239722257695761327942864296281449324042603498382204439479754183649135491547441336077126147694757935664508269187654130674804536836405008112012749477260565767415259534903497961388242077977933906813777059429129192302719199239067546134850341839270284320931319696755563394208925100513795680722149940482665783848045815707134049846846461998524001407918607526778011531022229876725197937013194755359602449083533941305767308192948694944824582641364647976565559418443424978463166944215943076309910640329121754612903504006624043790948783307483497234826403146038737972368138904300617818223597341377502104405400066344586625569587201779999556199998250879348067403069042554907656451374978192460210488721262831580028775874369439996963227753127909967431283928536678506596789145312382687092473844037775040823489633150357493366138506334792904084955531798044990911807415486950567022818239876295777812055358275043473414367487696646949575323014024899380428080531023259533594383670698859562358414093528197107938750994108918452311278150318710456332862518361555621284135243425942702465052389670144084546039927886759319456664380197604421587286998648735409004717135565958228807800650740382833158003953061815194888813689601724497024193428315419394859162164009379629818285790145407679432698328074739110942154856479859477349619519403347286200866014366309631576219050427292967947729286258523312288229193882621774219594244385635650572068174377775614319983010449429387234024842007315782079003029704440856343407492171538804382554548106235358023022978804369277838364566885790665613240500454016600931509222983222311464258192515516649031746422004261972660664903110477405893509264707014215413176243214493783772207731301876270298951520993365212099381333969107509721010481032569969109260211693057143104043950345543121098685386750696009556033134524011746278338461773875635370322714529341885231172903004052930632256588748854012818828438004424034711064611408309959165896862774233035729711258931275599095995996235987270454190755277312781050505005865180278515569176236639190878708460680828803283493100793408106238550988510343782926761999835187814431130293851390530574646619684196525860552448585601824062093083895131962933428205321979160952520041027436410930517853299130495711730275807738815497541473842593225306903142024969599190740252299586108846939897244875739131598599056171917793889597697162171609300478708688313252321720957987554502347850091811167059975171017222166353982085192538889828081091224500625047265000901372680368577478386938760835621953439893072709365703899142801146784613774737265271519148681809801542085381722440829191304075068127626861668805865496268274375970992642870935578779606695022045888178121649204750434519948423764816962265045146018335638614782733718574785949641849928939751895213425152641538512156025306894085498256831724312572845160032404056215886577906695288174065881219024216647881563427077906960121534202862667069217632923309605336423265653212155884236544739510663416124531186677016347490492672311929221042739547569839353795302768813297579525689590068726662486618540620593541634938551660646930248799243184148397870500924715440271758177593478638553303987537897635343252928827934115392001302366012527615076477624148895041607656434403335876569969628135566121433609048199985377138841720494268170148641121883367774118850683523485524361594334766491568321809818469137948330142673125493195481140021071525427285849199024183469722217889898710556209171995335610353499600390677029148371243556596984379527891864814952883631565515560333351924480950810137783561906279962289147852610926390739944635181287767633226010378656922185111100564391118015091502815369013738830743565462954439420649771244367008539329052446413267226487108606056101656868594993600718472903510580325317269880591675294282414071527028690536634655717328217424200546152731202136869556941152320529877454443658887991036389094238086757766985007677751145635922082424891214722928267065789612157125989925435154498267288121801790852916934132856482756374696199975853386248062686461035539056252818964395680667299638116385194036265635790354208855151877970142635370358768732597372652793547789198926555261865672807417322524156968592256210488490428068035480508705825714254697146686763154860091858593782664496000024579346717536315664421802592091385449593182376598185931619901117886211095264885355186243437742563900322756365240155957101801963865271338473688539915572769068025621704678754088622891078879502517260927429638293350362545307914737639820027268730248825086953547796901416961327942243176478236571794329339158164428648956066451296256518246775277160428211751873748705326108212602389515879817805817366568720285142149309060437204218325847774031289831381282136743188482928292313737633199024490158643304737722478140375078016163652026126516101411937485038959738788832058834462370564460548528903821559002290141740575404222067032643285692866621195742921128389500992762862602709181431014744800298961051791088483328024339925473405323311698768289509251266427309932891719537194378479942708323867054946601154802843871062035971916543528216405503619140596409711944733415798968114016826788062674113818085798948613701795546764454463521964241661091341719670952304894538725235421631345354956235614673940333670548221853846381841494161028703384270070507537965269070491445234108711667429768801749646634636381805816402411709403562655459915890437709567755989412899745985736574694074804316030617524960153847222542961855530445913614536591017510043773091016016917842254327186532000545320138758137271543169286765769447731739902306390534677308116483727742167451285991510822768209698958684564508384341535936416449221234785268129742562634469051694710996558554506427552908411961050573715656095922571781384698052035783154740562745308609679315212776147855587718340308669699234410201591462920711021912755258242246720850560890752734526031391215207425222439136370407887438407809684058148945135450345972769798605587868490428098751882253976252235274911363286087480482457406303087413093868245968614618879027084790284011795746813299304955997923715446600916202175882895300540712597431091662252811024613929112738624447821772987886179941730348243339104094546066840301237647902649346128374641830680228224724860713122761267765579542040979540383339300989416785208401823038171095851891579095712997958179819757748820625330204169960014490136000462595654599833518630441012858729174638917802789273679846667908400732932505117208535690755337025759727601396211129007294044819738243878458943279032074338031124411994162588311400154256649310954772055167850589280520575007170501338645337924768931557701745842944593467994233627459942486276812430288884625286372342487062559626091382236206865829332295477914842416871128995938241967588950620250420792330130780546795730090890946323410156705282327195290646161830251937100291998893719089162614361803707482327417919914684499626575013229592909199267457491886094861192685653564188392682988671831543262259244137400789033248112482417860230003885337094219340630213415501815517620398881678411989618325279083355341318966960339658365142768443858903580177324110068650240541415857123874906774326622716619886251403333960800757287953381036636033684926221775353464575954424516979988417008327177632175538818865522395241680024014973680535627520660335383395633002783828950368547930961425395007723492498269748267929775519683896770461726505554322296179896866266164556077989510657956543541752058838497863010644546470509589082974007794530156884756748192410554649778737333551007334826146454526041091269706314404684009051774171586911944499323661199965927924528892692182108987696475487078125027557668066601879262256193377570897206416104331364888422908710014693982325215839204937735565184582818515218073491933312534900051305640492597776780720781555007966930221542951461022436215333928547110923887287445737697333246448434413722476201541350031374057552219786704220755142537580629784317099509635869250315735071294073999626906651653383078291089604155013080028473698667804984950268979156513375647576752549809742242725198840767685610741168245601698323219389613971755629102645506084466840300566881347634427749204509955565700099063527981866546526439918317922904937923927272739957440025701406074807109789986365234333756187126635298648182856194864702244071692911391129334917538760038789347799883426486722357573528514514039480471944230703335377187054640307021277026700944047619453520930372497142103889290158759713957289613012028584988303294514745822775564672781964901959121563554376996972909958853393900065414374606899020484049624502520244384433768459310920485396406705608865542698889100716010235079066020094453737966299996335812623623780975952930951014424911167539773881077531254423455817443072802160842038770041940174050154972511247231137029670870317505324977282800110000174196994196696195260595530823820915964575363595491179063307130842940663533953462175840165533253364447909294913525096726672669903135680606205268137123664561590390951747727438543101069677792796365786903144894112676528835767456434689278296906517658874144752828711589757932036551136873474667889639436210648948543842062496569432636176409346634373560813943679904150011547107887951203303740453017864420494477610390497600042423699133455986762518029603859007254307077553078652474331460827457129275086633536238983562351487111583653149871909667406468838958137125874916612121459597122078724310156291890390530030104634406104853648506228814090889707054458051324029133325780403276981759213719541914317981354159316240305298451694410776056383466577705623182102734377304500578942554945315912443847899700190167029733348228823419128541762725810659020705349839719594778878562626293903410962022164134513328033295263588547295283216327403818794335330505082207785312757495257545733228168354253447326269325483738574676075409745358047026237962179010434384546957422561038032016092239004855650319662627640165146656014746719158944796482548913954772215353685616842354900638989657156336677804958025756183987059926912679190785753643397660334381540213947757718584911643662314362119462753810410273163972379622754119070761879249990637799330641557685967109744977486734857707457856540914283404937618933786289907476036110995595001032893848309942322018859921038014059412345104311627705218442864266284755746330610283243404758104967312527787263833562150901089919687552379655951590642090580929732113091037161438472206032576882984420083304605029120651620552542893921620268730032302372748427825800005616505578796617501424619915331340908804145375554115972652581956581409220598842324102248072426641428034013264306369018354699130598191224668811814012941986598232710292839276723066953059040692319632801122718898678702131272050669333930893882948432125372704215970409286799277790188774431109400310761563980733119868401241611074915395591511613899385581695780752020354723997834600499710289992251879571021247852538046275159508746437039787010438814751177156506005197313244917899502023462758888256906549576175831135808584181866551833663967552188684235341323113927260271172772232264168024535610761348460734755481059576685528179891569629958492397892875519529456783580275038571513408636935935271148826142642449942202657915447811765688385931579511613130003749522214750965629849216767509641851659134731950106152106355433161757558192269332828358150776855234562857642468003823719692732461717475029480010943474865702917593655061476582771481115585279805310686411119673029733089305102368368047600842040144900099606851443688122733881839103265147777319724836920481563955543566229570324438581597533453451364949157936632140648527426351060532759218025747169816261465207126601075562711148134502015798327289457696330151402254074405874116780641034746834372916336153312094808646172831427997879522506801057459346108439067148571328415840923169617386913841208433097264953827092999027535966347602465107675729434940361707754096879474631757875618594034990174464958693868022808392322349412952540830206381007751892030151719023678349927792188383778792461653346535755433792433332079512410022439358551860758044532338148877977981354509922528900777500390954753963330224354539849829026212492491743474795578512615532921014274773627092606175480411268445008693775260273958919079796183502874002360218527045103819612518208061282795553182762389894729250885710114746681866143303983574781539934188190488265493465603576453460717530386448911521084825798202764709662605433907564379241201992311426225455048099583546415782431126921733936180864737873653748369272347721046597326743577858944721940973804335007383219935535440094106617913612449135429926488758704851400135070662306602812491578666565801084937443535251297874728846639566663641097702262461757773332425809236024634424915039804950047211489816207957915349742412633111034676301233955734565806326097977696209927402349481573001939480130919528638892852215325940711821496155332061414038491268214734662507146557516234912560951280764194677655728412547571509934192589687266361786140601833801325168646651930111024234726224913667034116775573019013488063989148588776650220072937457725373363577928175101484251464959264765841628507515995252625365543381507157336068295089379220327217550579184824496874111045812322741420034176193160013587588006142953134957064758154150556471656851918256049241777867245832981581736458329809688689467556852536823240069363803781855009215700543109193682911479791646074251120569476394986482237477545219439671392227656442205359463348472891277434228604856008168837834534682785701269671588787826342965274283557263845024919758039195010778165902659476319914891149221398772401599752974669734348918042500072939864607655840523033865330579030551181736172431396551053213892488824551868012535623457097304693676923419470968104212656969912646425418971628369171433723740024530194827312142266771668394879776011520552063499040070092987418571907279087253609113261120714320557517963338794542531424459675526207465342245604902145257845252513939396863579285801840725963785972669692903867046798024366568589331583642454383090357927049035304156573632949009743984946502076161709986438216976134757932697452024386706631773634829991546975209421752946883568097704121651014544947624484674524966584028999623817565885487042729334305986486556043297721213011047364945010330424641506062299103710246573962947689872237429617923776631010777745072236148792258983259298764262782134168617152543954075374762013425346861675240782058489387493866706993475967149716388827537469177318637847885711425751584690426344125949570609282460961834980982895669226774070884449821843233954712229261901992574332184856453094628463682552043714785666359663287616809288771004725065628853256936317091932596879114732479455169466488312485268562440225400825102860542754754870117234078440469641281154989451499554453215723782611810197123544086529433086075090294450141964527672150408599988461976508777703212604644240411734711232688587951371229380495592773955755963932837302404167578934920954066615021734471294826878357506030945720762348633736229416005499204656037077818714505773288191845658758327239875271747918772166057622841763184028429627403786066959294517211827696290306893739254439887731254474124110057799439222628306507327565920433226765020937145847975235981285680378291537303123894599375719055311828299068514027449845411749401220934548503770922733029081403044812434094634504242167003504696257024029330798233795311409470151281508335854211861220723375170106003033753535996852296886890986915999026795832056909518976094945861387183552701124580753501322591808360127810950432832172754824130999365888249932963424734912428185003675608637137024719245376538596628270984658576925676979674351857820865969310784751503001308760968929182653111833514211501807795162077032089434919514942863036182566446072863107506114862801234973163151200693651494696343229236767164688166277346258513505909865847424321627835326012721069759828098966101270602330650887209991689729879011980442298449574011809920543949793182083956658888431042577517611304125683181841692515398509040172200590093929129169334092741095442377811963427394474321115971850033055629321854941895581816051441177588338699821359163708382147544436842750589373830796395834661905345794391702797678863935020160851071914228546575726974606029920497111618944584752653469454183905387596526903256757899882837923868449407854139684768637556183256078555387454197160853490656395312722168291598482914694302271861954727375715438958925367307895371628247686076854196965449028770851078566777933579731414614588350659964970849052781474430789781973260130216916796719605072730801178119423689398008266522305155819862817337562304233401575990994664383796075632067624075473002744404730804051185411277426950644583414451373549669155654312906981886937142933156634864029296612952689542872757126188660761906053584156142736115116690465560253546136319565740772947053267723854626212860721711241209829028927618398390835764248124906522790677707543514234078028837201539991338245073830973635677437771457057418807072232990361472740282983663954166851952910017646472271642496427236674665780905973500911553184936443114030746216253836074250022460322054538297709937652149399441248763292309871370919124405745245743655553283909769874323956628561995654949109780508616785845713161966222975281443914026432190387179273131364014071479671603057504424775117399202716131860709521170858433144479004383814076001255887151136459028280682978927476075771981973104593177851408775241708771388055243453316642183565823878859147617091739272313714722366983890559279049584702524577360710712696552744417302626322143012400039119599285546149410662147352236489064253985604142314753988662828445336572841564806048949711889509683519348495905911041529735650640449258239153764339557144062097109152914385338718150809967954800216238665222788251551455029622929397495052887124663134846046706442150542485849447061574014646382645491748464147743380985492552023741323323657355041932889088739333268606230816356626623421742727517376655783772679839832138903021331316189543677167864999473611921668359269104377676780290023089581669476207544373666386939178153846241377005678871155793652160372428926696667426766603922594625875065204747117412595655903986660193756783197933668952740732661104340100718235110529520685129670516665917211361269858411841175829924920462965290807377102635959091089332307512998138313876505305442063174465373195589525320290232177713704684454052193901692676822939338977537753786282175667196318362014555425395439138869458451103753043505204442565246343883692591318081493873731521479105345677194742305511930521864820777338562532304291646747948588576566917402963455527156991065953697077217938371320639680701361124059407118196604824670341285903027607997917719099027371948798536940073328832429928759557669711089314150677961857479807061667899924426719368583610729534968697547382874191738003784556007155278910422499527410205696672089783787183997606115052095242608035627944901901174119978890682297784809599111297796019427071757754099404690517117643362583469338835709691656059197698555715746354523509418773892667520490374468678115271538996577982109826464017470972130998514388224270547124943281691449831202279800811044853148426002849388563082696490970698542709568558285152789631086300781216762464922190006484535771074891788025918112684854659651917712240778264943877922545420191418826972556060378047557290506535535217989491612935779054116191299413829626108466943573572705627728901589935181245193339739729818220288939496328215740490157445538409028561732452918342392264957675434916719862614584175162721080805960365447736780010709159661831374562771239694891799109338889218774352870722716387181001829115727196179858763249603318656014932544796609659070336017770791926063343336713125847017815124978861058870549767236110268572332673764948823079362920551125007910853161823596129118375572396890272605726439769456463116140844086286469640994516451117212298455296619372131095234215590982134280851159914836820858514359693803690209136100629763054513192825016451597063492698034292839131455743246641781578393413262865462799374941485275806567701077245331050646635463935453318312639977362697451575408110521803205063380279034062107180248071375998131472308824574240243462746335063607507447942241231915303981929523957624033388857185438104909239998262446862982260921396343282733363004494192082185770884949149245506775728486395012333682671138719108585143626815466729795326534386015589201314884282685175474270372147521997440262146232834406672441289646963471163012631947664657273230620126871387122026494814889435023762306647133063061696058569490370849695723646624213026942160394315282608317265640953330164469273832239609755270385739375883382064282793492924564893056655129559056975464519768388375567225832291049117248859717361942748955994311533916156804424164886877326506144719035260952872529965673256805623403071622821929255344830303875370847902774025687157826688460744091244756283641596183173450928321371841979830754276888742041141041454679363079723094693562984117816452488019238918988953572056111130343978136605982935364274250900325404267040563148723291310636852344720639909562555457850056972235026699685250194450299514393604290526031168378068482186070469133960316235163051901834124275442791217433258137463752238651634382939130614973852632612445037573143295376611602961415329921353532984342642121431740498193090178171549287711903751398596446801662522956103909280032837889651058405993881126081480276762742163991742624555670437884897687446402134133208310183770530739987210090832302694593458683866973857284431401629522106725030830516703519539967488719751637416565321045208098181245393295730488769231985712895731604236501232074350445953606342035694633077439473097874504967848539209051829997357705672372764508239704188116185723060533912519375794074685579240085451673446249059411154118054982709505087625924261261024273923437349485370606554764459588496530114820194578641781849027163247535882392137576651874689267578038952394055326549912394639706951005334316577397809977587310761572703894285585130305869697813928146375644141622410997271698824845457813442518737973422685829753374853609921149807759709823307546040135018598477363070507028870129704159430446573445575569487051811028497183436844817837537764764119190445877228252553549540056362136945094656199406911649858413438287888175182889916211097596581930250666804568224916652135889495559533661709252180868069612071340673927925404777266817953458452818022667671314913131696744675504307525782878154543764030001225472438949261816307687601282987128070899966630520843694015171539127239919052809437364424434963051689442472479814348809857532145236502380527539927181604976507366609276091879197374604413222472146414705745000453916623742167912205420770525773764887689577197324144863043062022355945013589793809672070054528454272856137964182710785060913969147531242977560834734144298059739944328232189891331422506149556235498576137136754218481938571737891888101780640260979231595473089671796836681216316874485349418724554527896054091198317888876866954749695818004161559413674187770813755528058362366813365332045850002470642204099180192412113332166263027439390557053510965651215741614535801601758659833042298489256260443238770993142929073321940871265850679378121242588300807178343728881469893162356354079508461593529560838332183286052882896248250234331517706211373869418112004449753324019762703632014057321743927596205292682092151219059212411613179879083201131166832427470166740951886728167238074414096534204104217529764917616177968933211648458766684183571442639231684222866938223244529903595579642681518248996246584428951671101854660371784692893500758208358737900775270031396125689750888827078812785948101120562204777899325768599502921266785535402562159219413712396552562451058330692860669568391896262406116004639494276210658479086309780663666510312412701995122177683277748219551720956175472703451901653261744522963185931203215432600828668032812827418748109015001095103105321941447716593999372742615836811988898897271407230153664791895127132292022834630636551757623479389783747840610897655715092706285633931370390314946236648922571978256514861692165165450247642821824790261922040834732237493108156957935825701126333535088337698984988368458676641551884893966927505055967283588830815530795664690131985457385541387854426223159279010278835335285441426231158853893707334268632461146284710173263033026290600804094368133398390775759797608372647394151626726100256855981652575066800983460627181283682125023090451647896235668441165150511580712163965658919844516297039820229515319453872811280411175589964273226734108861643732414405630951775578930223216282132337099986708982648533428420148444625157206570524888957777309160826450315376552160324066116696850463518343391445173888210704762698836893135976022623637888672879371248901681337359640597519528199977071565091605827735677265707566029345688664742270973631162970125850960151373337241089869040969290911946013408442822777707787850032600836994375417107891787229481367097962801782882617624417585677006363059130893681895182020056679942294578109547281209273911108333483167707216587646304336009812668533680531053556641098141252289717074840404865419473254161592656430978284863268458487279104069365316537726431483179746169959197009984463160661915524019025271457635789786806961881907403127793020457640874837064945354983270494786986675790631152428060893028271092047218393409706309449697800665059942352331046712290400170281853084104611151147523162853579741422766503293020443085105534518290559895620444340739353558642785246300781611701061819284098400244021249309258460240401484350031727329048108050039653114610562617292540799934398423336175147753289418158409916657416392492177942366588379014884690717571744181034500459605638259531839254496730497602373160364368948873257863056102140410484946219156384572470203810266836469340981172993428890632182421006537163553203173119643920166740072755049239231596739801642762634227450235139469615829284837372315795591173571129329778949108104600470090594932184320201525909356785588632417982770438821958386451368966328763322188030785553036197129434126075284346739129793909569344711049797413245264087946395403784280557809527273304882329751906908391234108932473229038923239025815035256704436334175451679000097002454185852710616811584220041434169815154054752365169424428672944294608363293104706778783518159983703361205425588784494527394515679281474914283642575895807416956325779989437166953828867686897703418780773905406896792459418568194494155149901826766839815852156189795764475848263059771307436828946964314368034953240865212218959935943398772169318232217860214266282398348384429544014893971699854341581081770258991391791687712433399903907228312216466306512731005461721688476382016824277079149321971549315855734098633161804615480739909673509327378416932361361896457271952028226490903739531318654156651092257182601294573299704313623397056891976800721895181432477332643402282338546651291332910613445669997761988513117392145926438667241402290735654892488792984733355183949369412936616614150352598476230234191350906930963820242081783889774852842586267978489110685266357747045920494113335754430386568625655040316363260454412685773573922539593914872479473588181126051204825269265654492891178469136488452990853165742004869590675868936684814649370831512059893060877113683735110147378309576658404100325022249830613320918664488270869020555188160415673000177080282222393269649103814869330832502889892382013397991662523592173336591978536974069343709930124463838976294167155303028564370125398617340332342238288341756962247038801490339853825272424103496551694617343942984034809633355244186389685967669525598830007826694956565587143339729462832129287429839656799239004108358985172629143064349590489163524443312999991253379508113391632631366980631442387684584475302536134795048374137941626088307553587046491657958871199106793549193573450110335430352766357190981123805204269767484876700218117315852162312143366945893371875535555345045132515956185142112404756416346308437431769979365344743094127018882959029634698937305536339305306673252165719987912994337393459296046460355646628106569331797382313385579177368247184653647611143351363085647983211061149354037232894534981189502791795133989908107221118362333527722186480904391031912968756449883866617208958668295397320704870744319797569470609460554918014477528040413972762655157993725289548410511564397214117923283361819658090983253080883425911342927944453528449199537352648670194641386129480441660008238078076905391328467221504583936111945627608566956434317126145594285676273440085942781140046799989212251870953726076727084096888678017719781418064535510335743995022485188810579002954006378772341248098301748278864160117071987762767905503986077575031437572571095877060656711048633107182717748038728972401094283195628160324176690627879687934020294055198420719021233465661139805910378165120534887459041377212672425327521301043482516582249147886226133309484263668633843519767440997917238238153777086831216116582651030284293233356299014718189996036321303943440519577419119546282645339973687576088550475749213045722314737471036222172973690198835217854529461727138562529044979825835223416685701784717651246600552046117704704239761531822907271793188826813561345826222442566953663710131618445688857539333013488908005260172092172355273625632770018676046712527663951020612201320603113011858072093891791921842469626151149698067697352516437582459154316078771478620093379325452404426511325099453208903885151009720960373484739510219616543204970818095956011870933493880335495500675979569290609743595765118248050477361514241201600519484732132492613219027785803122408760935304841446159167067577561535427206909335591857688212772930156619099093582148520829971118720803871689373391856770233442303946113907182665167608733644313750201658015073103279148580826095093811850873465370958180437548899021076326482016477940493386143710569143377359413733867878401462455417199463281331595817170284113746176341419816824968050369112067894010505381784903385580017823837905236832732066899011143213017763489561344998475551227226121202198385458593768434811292562524783517656019540427506399902346372938117833145870691777653617764857540631804093162659523291543715566856254073618363420217182529495464606458367965621504678406796560447850907932614573418795348478217696839086591484001211128529784226042737362199953359108720232998046398894080453186679227783751047542489699971597110122991283456121518833086995269375120870547363846721615728981092145005221020110852113242634123355644690136787355604132466043204293713339559547029080393300682828971827191100945611599910695482787925881116200689714975573594660519011114826393929853233095279395523068027535428817315487384412719574731980401693357498630863804219652174591098793820733617187748200801035850260622246260022676173164738352499713141578239129933953957217918637205809705051206337522341516600194141204829115163120319613729322031171998169887144416492261309058163976783329772323849892480028016539681487859423102344462764853555836109428864118499401141441948204158896210824579604893737309334363114990684794001353286501795855562245352758159958903389118467068236249313543161933623890296230725256265623124515723411639075551954750249452501653082339120640799281095028788426721170156285068651429322950409439397101947212482563549589571779958653832192679277081563776998492835163503922814731743753596281533354470526676900885551000593460301900889701903249821719637239467931124775100596638439809980340949302829639148860688141083629608459063146594660874412099937688064497157602094662880388353425643284802582961357469698766156621176866484313259049736040865340186631066111098597668834696162436669680023959279187897949972051574238004236077885550317411034786590721732169464249658569136256963879612396167889861340011991872216048939807836074598542773324332754344376327028848774755597825247652665571761444791836173263598865734201566186268627813083257934270374687923756853694867402264794341853408279206475738456394737627284575628330487920192354069078670730103088234646081118406762760638411914466859908453932894306015995687896130996857282815337233902317292347667542699625313881988607286243984124147830446543085357526511840757805768510979300464026980260193923402248487067308194182661960108361523307749628045770939278139785900526089835259781524884502632029914059918637873386669223525066634826298292984796803249471285613470697750751216279249860569416017583557422714105483397394164594628681444313887000420697985837540084391013457782540134320063947212910266518762931101597863963812630996229573989571518311603111691377590012689993443382044518951514130516590749499523834621605433158063790506976001369815806251279747786193416127257102478588118983753676572042249237418218375290415410485249194536921398255387169312329519788733117415250659502522016672536970663960157861586752083040426953362827173760022050936239513748028382923569339119915793056593050487281852648686540599889570414317399251149697872012312435850372777077666787457136888152292165293784433704937853381638972387077529778737329200348210857180605705173531342748064378102391323677663512598214225197444632603353987620793965888723284134832944703854444693035870757809587927985656944920716891130695085027711831901273314086332740469310307766201873266611053024687638248982018760600450237552392982742547576319743890692458925462125210720868453070793563827954095437415372245790092026573655362203089990542481230409112202597275583954881786467925570480047411357031958259083522071935240927461065910410995230732797186618532069751345334102553284729772887904642952957850645138942971988843242586751759026069427435120908339847463163920889195307598502691349351878720750087735752960190994915641287736213647427845988109061322329245831255882576742535669717268370329931040554003763876497214079807720689196080630580273513783463564784373893818745752158965523518289156908630899093888263777529023278685168531047424060595755024326556010154213896794019468321596107178787999785938979094185700047897420519414054347627508470583965643589959505122223239855809188038168966961737267404868315526584070092171169774920987786087910894479798614996188952209051055937820406629309224581609965955325521948591066481406405595624718707497162895511107018410891714904347815563323102994728843631076149423724053393637301850215212609368878191498403852333102774898604294026247306770381147287873782645016942659836113773134915533653521639580231579108262022384132470348610893438091004303306163024274288939657397038113723394677678125648671824233222922709173142067966450602008666523335571001287765275822086379144286043637103815964687516189214462232384369665049679880313788126306994221191636849893872638218123859460486181139184867479929187815751471058817677350365294336638714143160099258638774361200158471235300465277068761408099026238015243373198612671046300175493621834151201714104192448806637041841822004997214929561799369825726382449780724256652996203738133054078209256438298331066419010821513150659399100102823060317846648341815379821324673603333409391130015305556410995381456688246523921411825910056714446453738082615070771848523977763889727170245321892815493563280229892375063684830521748473952988760908266896011678133055362510726826625557706944823689467692098618358382477352975514202208554744431054484311666237807095097874156402497158835040456079973870259311336508338877851548922339332397312083154342742365977914374409470497094277325262071819497313023361711806750011016347879410192506015377536993390263462509255859365984511278566021281443970304720314439396958032428400360273020054160810129603631747938208174075048578093187681312460786624562666548710747247424941169145664805411269898094744038440841010827842174373850206939363512486900999420853005128407817128555361588934085428458844563775170889648993885478374978215066298408812613856338007966118118877696566235309104620893275741466467846302453008897093337296489296132526466267419208765311192834586423748407743630639274427604285652082521743024739829716173249653950436353581782297068447894188398064126565282223058749172682762836647902210157671195513747342116676012130389998312253164027708401598185456231812445736288541458310911820745978665373878640832731911282670110713709462307808535122283417037439135226305691604333963955586158303083890439789854490698209832593076740840097206279457708006633014532890284051022800504362701611268582177852229436945200617225609474679464331319974503273925667226715084797862397189942751412210225710351589555988556717422743004593389392023882453989235920762471925544516607637914791840868283209738896138451110963369933983636348562203571871464805804125736711297792529590648198665627859635494407813901530224525146676883892283356424083065309235418007428854597371406182349595564517608623211875304686927190263453037813472557679213913259347339139266912703160087803604800232686625226769703664966252464425616936817987034432798646963692645095342784480018071777224375363894023556965262961203905286781628071238568721612953307002119288562203361214255458936031295579133059545733725561024688409166748278914780151930808297867909833769043050859174965640741927738701712951167988734433264595322128890312809745394915598565768632905361068374921333025492116442121183867680288927253898458520265838866501995245371527411765700701335777958321251690082970716724961506935708018196939788223022455058395340043938214143276518727975651081866544601825804868252965618812540181498081202550211527001431864007482282498377820129382764627707550043108556353446465846962513611480817323162729180378313567204751488851125809399406651012827746119375958710411716296534651493384300033564570515461927384478630787061234692744857442367764273812750746543370443179158190251871991994753479693866039357520498917247571923937685484346907872030018934316485145523889291220504689190453718999453770813599254371567371445805850146641094538928520906177234510262288865779961641549257282066796083451691840664215203752991762745322699884424244746944165152598956879621917101888764015133113143070270475278175032604378212957069618498164467738206315867018161884647185229502774459039573758945897006929523589504306732821318722341555381504727428631841063532518798830408070425698589041557615200756259382577197035351303287538775007581690871744680729511346415913051597400704289884854474214098007284692438693779537575189242900333164410837082520941468536634270980608623941723924768045164196280496054364858219081080238342852758950712331708754146010818903333405098781057850167131209737153403223188123242144432509392097383877560240101459799645288551803597159318856097583342550388342157098617387434123524858069016745263683710186321826610240793000882288572759000842384952434881314251185917666455012876749434790354862891577913458828408478991343988973727628460429686508473981110098847778813799987094226314572085599406620355230302525394367899023470152869625505339602563922264830766840968435346460022141710193481600943647843761971654033812965990860056108509260781191286404912252078527441419110076327282968436206868749244839025819346764904707646715852897596291430644845974417141812248754135099591051924765362147383254844068236593558941973507384302070316775832269732883588435138156577083728461327427998453829675774148435815455163511418295022594228634710464266199388036666358006956363505842578981589264887296757845573997615556339189827902596573460059871414709290124284304984736404531337505795413283759773785829224120261660794686542306129509138579121745877098699897029524042923091425270904807976623174956903526951744600633644857310182906690326206263176328963650818011424202459155269701678113142418769133403900816858489222414911715162266728343514847213390255211857564257019070511184307477035398253145416230913725628626517236504636783683746013156761553859045502409425890664472864766655836533792775823942151355186544644808181121092292835707452438164343491588244152942314683883532628918917861255217855602881566808346187754200816799177482287015176771511168924569748440573923817927283508052202099944797369085955557233433082619750766013978173322596469780752916970935897859528965671521413149487598878591451525311887814244016800218532487352858219001481299762841803237189452394369561593530290814141595334986406579852110893848653446551956883780910843214760880531006977054069303037279227072094456351322785666220635218130927435473418930867210365927724726097136125191138852391507679797786476434747150652564253844605381370444524845114008659919221448757745080874762620417205144061623941658560806135519164808211320482379516567395363714643855831556646125508054444460365963078942240488215247886462648243327178761722125658955635864128051709719863922569371076816586353256445123539700785504845919593419645239164937216582348223441498430738215688241316765413554365311708312751007765008928206909628178940929487616760070953352540053052275093121401937825144034594001588265809148239200415716536090997487344090192813311216487085954278716572693030108273409984729470733992433150236197196304528578415309484432548184973659001755369063152794836966799833850128797334544954573719865384733431048977517095496978236149986737070108924644831017440933277487239365637253139121693204448479385236640816354764000638706915420904834244676321993335976910305174806227110725017989713747364293305605006887368044916962813236706477816416106186300303740487891468245425885293319653858702859838589251207461974893190031164066508149492392471559225909127914988652864659338704817097539567589953548648871097394241682516505440978037711975925569843565032181964645474927977176428908166984799354818630929783475918045490805308055602245364613733057358957338630551689134489509630844200497621227027631345388813353300903720119818007051717887187609442370650357484407798731458092101711585602126358712443609420352213768058905809310921407651134977244608989748507967869223067307780718009267180432896892964097071154640493948652109289732833536662632567171923678182808141529422561848642348470935467935196842505351959053902777074601824933532305166558386169330126133887775219713705708910043683284110986540668736945617733514634331952514022637563469377247716766068606226113413749170158423391722957217997150325913819065186890994477431077123441603355849337196553419557966156689912265312475311948154027483174104901940300410163662002372175847017147344190709746272996240103945686054189728047934429639000005852908856893054647831133335101539144219282398964129243965482631668950128236822944623711241727174967135484733009281218337480204411783542648536670421000710718789921648012350025313527501758268112879167945132726426849674079353206322742648940146190232183881598501291536139032496196580580332597110415328236314737586859678477306234252396582303733950562203061158355753253037093178526275449557415945964196277324072775559551489458903472645562078830439032784884307911496691523043345412214759384885726736397394097030820805368026118237514586722058121651224655045182308731792923488095860680233436403970825641326614466533179755028501956346122661404520473421124143174856384002919839647386768445808701581528828144126574636330817611901448454149756181827940071436764068834163868662070074033490755492024939016326446546836714442562762697527995998525396711223927649294442641370859143023069327329322990374879068182298693901669500251771073674809367077872657704738781109309696808853980098593026548336484384128086513233775759931657407240281139295360645232867069562771628132392999484298286890137840180988329307289229483137185438342029132967686128470469023023756327228396326469405473664293121629254385126362034243428435437369548931957781514777797150441519723600439835118849710956511422716670415806855606780556743171472021749528413528961605693612067179749231677773504037267333638036182269884880905931277099509938412594082751631775431757503571598297103156646693009381054066727371655913558145223235810387323470338332031679217653847282800337803467478830496304953268087851053675686178432839241544690116167739887017223361210565789442453631973878055405794948486117939516669687432872981799146486827775326274909956915922178648163902393485123057449166960246603294650727327090601700131330108063569666206305787579194052244944590776971368590812699668708929195186812608331405871442537124589335989991105366515800717437263393579976068035033661505674670000072569307785743007678548067236149023839848372783226387287197697670932501389446924327100667591575594945859612531632574682431292452465546344038581167682982205535589007793819460928501191153588880027810038573406803939507479051744218891933721162817971311853381635825786639766319126522768316465389745221110845663707698648382450906791916301121020638680335096647099449075674958316215442785674179519991201724915688185883433851765538659017091227807678513789537676034417630748689515658703644527281082385251869339813696134543482132811203342633413011186649756257401222577590919913846260975264370313024548376810109718437716463823383669855057706310544822321522395631672057918396611076401123512713639284103495324818980306580251760767837499089978925452652086696073451432320362354924757998030747763656586126111561360120358245386182738220323271634683735965154255487837355196272296049605878130727633768766230263773140287276751578735779178073256371115932677602686005950495690735830686366437183372676651576029734488628810422330655216443079538726542310544937636375639422784122450567758832764265611334450072304320979721578953935631384956696586294460817057348090797018028692069570837138763916821055092608128435087395010202521343193557375290681274507381211089805217610813151273438851212646675334837318832407021213773131796625428084122830600187704916138976862253921977072921072930340367552794117328177234853775755958541241524751105630561797850417878907167926873419894943667867416428705635506266718011512460169695994426014184416354955384712826475639889951302350271446741700880590528427663159208464599086490078164283010849895136905498046125297778554408480300117684423535119606874244488155017334712292339226300732670694671847858185971069341973451091659030907696247668302129046069327895215897921293572575562771920665257128456840279642151346915431441085835421272659739334058252495180889712184595951692855616643005456593870654506331810733935218314267305347243024541259694392281669267091388985352434854272433948307350362965860011584644389156920852658960209143341261355140769499832657817975917358366725667320342716181202215660388090486732237352385984053771580259609398328576421760919872977659963105048462460319719352205310865666030600788685362727849419395761635806389709449474441606932966466030732015714411262681512855929117978485650854663185378413385416602426597838061807107711169827474344279993562080148913832858843086409724364568160642785688488026493932653874218605616962705836812145633334903637683463436452434306388642437320331483380306337099079112558329003568446546203664203220303963172609848247774324727182869205610663654587202363966030686989526969028791867469003513459873507245426209059684137777998327222460737565780041685442762262630014469428905830544815164549029009993275438893235981582313351146194730751383675949230746238125224979912295974100703439424727983887349264356023809042413992789753779345279784442708648421913191326912401472767000136153539410194077414155367811900290026936283233510113792694207598282748935273350252618841522974043213562777183062784954208042013548955710752434158177396135508718087981294005865234656860703078477731854658280687502289820216692499041124234689535449132220287506247142599190169986849992803958248276376587180019915857814583360631031580647616483654980063417624803501423217472363976027966191044201257649299694772297954496714693903023533657186269714483509077965417928699345260488628873594263748282095870020090805380914486535622449667284918596569941888172170068062881516210282315546914382303434342512998262428882981528725193716316395217619720887477559430038415768575721580317477051354169523680500063050426428546066498177077803825741690801111094315975131592926367965520279610066653523157641471562105956143342799263705370888006104249233814602543195946059045974621211196187216388206016394668354546562072494860552875159856778790124168780691677870934666553674700091039881174880177773156450333130081124473535412991182246867531412333273170817783780987019022173397337185717917541361263434565397662442589041944270559266870649220402957803896057756817332869462467758214082095236588277089567619899168101740750968479803838965561151643057869591397561665011773361708528448424040163980431851107120845446356661277750893300323069973080358994900488954308896263376615593723669236050937701725071630965966285539158361456528298903913268067274696923407231725177042376711564534145486140478996295598414913769731931790193196832149530819729212582980420266618269590294977835954462884776588183207122618179434981721901800285718400018790690582159824771120047523206415331803324662162390832759631498528571430755046202025599325591877137469835016697328262092553374215487750969404413765453061684904830317705211305676668204334092289287021783030914857508399809996187234988310753134950947509157362957495077907726786677727890294931459901464682654200950276902828912927805732324510284064084658044935793130532981028424978649218471417365555367195166247870101614849590603417195614508117164504520579293782785468938648541569693247438493740694808978624754670807109267297215367788125855560963695611894421427661287798517331518760573883942403217180915817896816447033800180023705165465438160844258844981435383149046863415553675641553707910348199700950423482505724575819679721708892708119883407224453822090621837896430583290984259520072186849225239730789512968372143541970521308296252875142566492888240156559161121222333692238461392655691571663883149569783865137859926350939171458080457002457822870229450773663549912061701558867770393184276738516810330417396758190068077009862668688264607033206870575875361048513562788503901653045580833623906454684721033829125160896949823093071399452107483148423590747070748291416018204342821413634979807459240525832290488274403456139875559473138908586224723108687008401718768206387047739959254784231675791087714518461913852827620496527033555821726802772451389645984679037454899408119227881277243977248558630865589769574063715623011707577530311635084397945032054069738384882580667950960508093937943514574188909069679651151401206723535300235917260035817306765418469779591614232760375389170355961231519297316797704370324598196299173945446843778833601244854981203847044742358983639939666718077370088729010086023378729865886362621825968493493621986383721308094064405618005395756250494419155169918553118677912119842925621571100678480771834242268488385540342276593208904429579874996175120340849238814108948210026088683261256168041036968355866202531982187863060921555401349418623685223690008224538458781267333146025901507184966588353961889837377693231103564174133527817188570834702184622544610305297988534936237934547173827292064416447293957286560012752496895816052043537989130845480352213789266860226798538134456966108390217763904149815724548489644742653678082623231222564132775964325975534738586638361781677945715536361654842587247603169848615859132616028067107074325555344764565729813126255893932511060925945845397161682282495852013271318046213286623986080242730980641474741509029192317379306387325082452709532850483138244845544064130295112501296917920140679742212747962935161964104386089521786541173716347033951226727171536457622841179737318637974571161359502673633809127509712511185293960836147153499564736971679854881769234635494316226891774349846311062274565057762268949824759125791315204259099946492388898379731953336567914392945992380529047407428367890084098344689024639254302251337997741457781282273624653952406610315428870859158510121408537358587563421416334824472912585974812848679579053476396566191357620081119507280599931706323182526149611445704303828125399450986575054053284100588304561344692928589864794653594548713358614905243948999745401560303959469753283294696113278167110690687035000147013469817485086047285151136688054134205599228577001787389346475835520258380796731952582058501257610007930136131645495064745933698972854581861928210282801747121981782652055097264648828898949171872226175666700580651919418479389862409928966762771877050588467683057050863440164295382036462384244858357418857642904295190889211280163074787674350143404682184470248711635651505036336253062386787618278678666277032978943701713078881882596953941492402222827258811407595951326106004792383166234709479211694754868361113988157501913549435154149101343115952401140138224879529542357909411906430952806661309409960812422422404165194510430586257260150398441542590256488362575949890480525824246482613719180664467785556076803882466636996836345207235429113900723805846844865116676733309661339380589303840867194885376806172634381208187244293792370259539995706450729126067053550862828464174058355992227809319047885448316653304010960292727233819175118760773155687119190383473439328337292369944245841507247040976492559155522519911353420246067089406635055987843210034543908170969893797408354470080261688768701968646712421371494109215510438821631735660655155744586631845222319009498376342299059472608151111833266762406233003328331064029291506649640197635353698071344105813273315470189024493094540745424117706311580516564166193888691155791548194315524455928524093606868024010783195147166988947172791929576348562464444834053657780534669284054805011401072827925651656382069341541433135410623889770541013140057799705321159543815866636530760684643412719920136344022017779175395338499604154202044389764850635588158436858778644117619478615622272062008583348319197641678438867268717816416304447834557791701049751951303217394842133023692511356131298086279583712839096468368510026892844694175796985204235229899759841868456861668883082849451628999568902917768245554415658287681532333137370072326663864728177316783574499670381922916199442672412268713606191946970881349116988288849095705089921843269722768143313538001772069665191999352345792258411604123865097790568361752007089767353554775010667577049616270921993824575420554614062257788286494364922672739417386508984388149442451470262768163391294895257924859586156015131776034713226853920095118886268659529527324697006754909537208089990143370404368399388176073168172435536631649399448173204792588229631067767975830859201177017926683417189393316569393592416909326947041646107148057105580771963479543568590940441101179133679898886047375701158577585563284546934398256516156396700218120565299118274180755989606401613709574138422681737094000040351757386076548419598334283378011135065885705330605481464305098254933727712198673161276827535971439961093750494148780589302205299446340448745460329648393671585391391576874166266517933305095374639467675675601353035780991279496802752381260482432357996754222755400792337902209335726811088423865485798724502243019379975435569131631492390252542004101369434229453018460871649854670214197963420677427333215400223248977740721217475845932089415380842179871050393004193185860050190971963357018858616978489099228669253167095744034986364728851887741917336109554039331822085475512531674590417181960685080017459499120459014914704927845704868326886071064697116585557785551336638816540093920925187424121566009353160141964229982564385950712076546107744786814205421430814600044392637107775502953958415288880715909318116465715980561784373476524820079404664359846693906577265055657179666434184983862788617946619666977870565185743824052473637160003686632528049511106168722887025721930351202066430340415568966544674936528216760254195153553307845798743440625291535471775739900359438003093684271963738311935708932768250337983517513385303385203280490456804793527957836762876200067405990382143837171428982202103959029380271939533736146309366503338432771579594267443057847356962922266007866190874998036081876069032540666686961375866296388916955082541989548686988744998180922398344059087724111036580006703511844645123114782422052010602287576528702220772384865398703770126460293987012046007676236973362252148608348570781047830054884815964969798353221308528030458761213479489077049890341627194234287416094674889743251950594402983230099730281599896096267491035001196515347053495008201019666757051644156977663171705673364721053986033551722275571102247234958212872945242132754168437769609685139613097385554987724672464479908510801855806050779004045389775418506715355722733323826848149396040109782794685724099481425364933599323664789649996449559701088391066666823276942956203732518862555251284939320852039254944087438853421854108575118903312989909966575184218353116218441022880000977931001745007606467290714399231375584736288662962627615031429654122090407132069589040576119541207598482332316463297301759672524827727219019271534251958415286780114894650109639412440806775811210702212648669104797262607428315024641191298572518382321531158890759927223840388661165814965941848866462651582486798357289672344501193919645614523836084205227937270497801250653500492073327035625659689256482212724314536691051063246563901867331462042654810191942627275704670051785247986436800381412617451842763872485459031581136711170839949463712956260797204639627510758575543499464878883188837493364459443016372343172159420212187358347699547960296692745812520251385480035182757774928600336326932819695961336939954440460643177672393043348821006749010160494825258294336726434804263219808409548985679771073151637683169884987743629136983451069504476607558546062623701522898631691562523290490690741972198378950817242016677512601214835398582863757201334411538025062037906650491473303103329583483231986983063527942192379850321057310219836896316000194857130344194203636982505477889487186523141548662617225418640107840112552769798160863430587627165850155173506594343575689443864047422652061109843775858784420355389537467940518813698281828535704045827869350386646421554132062511027913398429933308074029372696131776684803140901080423841191332683747539897787499613808791249767211771740943035736220242555918175899798243353604224514299200783203005511617193680575941489168794990711433197597088157178670339622170630746975879390373677210459414700723086809035487388342144009364552261990229946592760212113405634482241345372519301068853683112996928236523578511474337706098807676220572144554537508684476820898407062227254435202137910150484370734721657359283723448747511675290856340179064617714221727014331257576870868500326747542388982248187948665822170346988713059633972931688928431733660320546360715557730725911607056699596113889569047044070159845648577429601194830286921394705596060676891039465054793346591037902288173232204580597136823436685469745705169825709665741752717534119627728346025703775955865788414999923739170233686831356749909016748298356007344457602393239602414767396069367394201283750379916408835005480080334981474170110927663440516889843061760213616667093099025693036511748266281735451668078185507271590544055678256887917406099144552937472572736117581545521534222181532946630509323074226647795759779014764674477759420611890101400831655229099593262625601747854302421564730649443393226885565549122686232978561647915180953037982961982854812232231060132080102234033994916805374815723010498283018653594914330580430437824412241925310839743425860928905659571384147283027617104959951959313724822226323900554976483079814815873342241161665270885280167974201927483708172249711589349060530417376499365317040517315224172741692850504326983935454543325126270592108222681498565786264158681029495569512256540474610817625808864201440315538665720643757471394867397634559944568732313771449813137397663196498068310734426220624578988296384128528155867382456937932092516459349344830686268465852445600646779724972071621340652097534141438003013571626129512586944113214378498718999828397942209763489858282970129589222539807622702377367663468601568864792703078548450232806268791021350880915424345696645024584479690345800594170417565408482972354480364944195843821100981798610769556032078538562463016517249448704302781619554007884522180723134076376784139722646753412347346418152534748343597245356345228230901086258166293805582888731525707373300272553552065510243025539465468133810388094712576672751104882477896483666681059440850271894831309572674671889395352077068475836495659996455101476345442525226103967341271091862935414995788652943947966628980301415640264803676394886107767737653662204840814011149325409537378562727451409533510737702715867645015381311547544034072537393398189667790254375652322705328650890075352089824150761187184117078702679761855136920865084599402013858853606766200888320407952377554276238760959543860502264889148857430427429745736052718123141894650501404755405482894101202301649494079334568438725220106180086457418557299322037172418778711318838811571311512181186232790333844179814477608619247645052089525979222597664046300070007003044090314693220709397151882960395190826582779134175404919199283613712290198096558514007404670073704688598742028651987442745661466377040647888336789889671609446887358302272679189542893633897706770728566042670930855078971275882164670618517931858800096598381655229479147917845894519184976639983209460509464805931712422594708474400595544368928817020561404828362320104960076264288183475390119157185057869314472334335012422474178703891701432246485735820007843982998155837781035776924749066607963184172571317547156258133044693494761399904489266584904711636501710278778080653247944028353258205084331120159040953399647139726243056831920474921604808386130230213962340068181362313641665406676894519026886321795315051645436913893835275188942922407817177058295876114876739216743959473558288742373399725155163523991335670428202623861453254981734359478038800614950689415317907784544788192450674157970260103645054173311648400428690294872841644000357485126987719588695105401060083099428967238531572998700098011966611821012544538049144674890047993086216587846467977395669101770149445502604702850323468518818894974885334746457571929032051069367654593273519375467329380559308922119748973163418552834716799147252409182803701448148619578608228471692032116531901193055000446349375924471627915994824058123983335301695355378700357061064782559566963324656421002108082049805289994581701345597873659041794237013289821991473215963560330697342140033179710891871528560734633828081441379570867483604526944915875515525165356426068649534652994697437918753711562071690946771205417979092266204032710014813459090078780902152882287576321238693610514251453522517404639352119759741033624924781041745879762057805124300470001676375248943095388894759063856776633119719331659168435255354752174560267990462065499647437749503475655363246483658570009412704045438990009966084090090189458408501449939662800163816864102647531860804822133268556074910117495707681057735741259234260572408097774015051386158573367924590185821051482120630051656823477349694071027125545905993311183989790553388120943033837100775838021215209628344558594113400220417022382632679910763927046664009121695424162548925426844506245364506197091991458757510787784315922232742164750384952020591597444070191196009692877139279553392263903232223307703353788269619605639832365784756663640352023812267964487327642651354765007432310316040561597319441230566319090643298936901042204485781684998257207803833830003218180766905399339899335303787162002190386169042216034066628731028511368414311972820362833308113796907321709867200287694513624245621961909158723234248010279735761129674189489198481703617061980671584588081839223682121984021666887638326723860823033074654150756388245052601274128644030192461365950813870077971224228173199601555166334893800495903365607442967908600708857281533883007458378475025113652822676341155619697906232475568695123567674117525939849536918892699894897328342251364245665644680999522455008775378388607845101580693998650783925675639815246657194338247291240441330881568708679568910856460760793858806753900804324954302545275832070182918039423171637354652798011335477657497050277300482361881837104528100055763936717965231344657082557982161965321051815447201617527056271884231264255286822065191101529982766351179403428125643345465985125805019918785987999272478673123838597134736202399645004266705195800668377672066563588863404533774912354385547080967394170706036821304608290050502919047770478184001134496927398187933564061680345798351640688039300435669144919798713527895810800379414070690415314481994553817287490734567220300756045378846879061708920068218366285194981138785951961618075916445895996982126732040708600187382222292889864581627990648235220481685116995457647186479596259935345805368214759653669218271156384288504756650131101262410427465305855373052972814115999684025139326080043858908360667927825932598794593112091776237963266136463731070553304288497600280759754045124638483320542069689887370310803629937998444825051119613532333154731596823778970506950070145161031217558375602706997897088937850533737238254790935541081525245115071504375149023310395198612945955337765266362564385937848982524207339315871877370555406090840525848772568985803236152760368416107305823835063402552102921785549248563940118123243303304477102122177317606796156831017247895615971578248269658498875869396080022686238874086500094486103327011765293954991954260037110112706137008754790656676764911127739005990793352271539202594934058267443753569269520861524778720468270375708964461727166735130933416115434530407949255332141949439512149635885648981070035353407474578267794515138419909862328242624562862205218367330364985496022752241861422482852365512666604159931935721880067619813725885093171131245953477614479492075001634831432497196301336151352545322613631014032503217267782411062087380115189127258273399993239733345751637165106423676912126633265502074998357479479125596322235657864812742901229685557621682200503796168685673752952050943602780441242887559088538788668397186369629526436075482352016875936508096279642735564310850980685243746557628526910615723217103485870796738687147831295831596673999981656289379610402067466320884662655250190344815720672714858843029685738818546455985731608922880535796028106042467531414496693971865438316115929137611070987313420557480085467503957960278295241488457312370839639401143193822361022273803047966639463503732642573871435621885520178442119927175953056333290897356741546368060735277596068895710677090805203530375571851408175700807329628476638327027924038546105578022363607672759684099633129469748997659246010499932279174213498288697673881543759196993013500040004765487750556454305960078694606626868459764669230794809429744501682018864856938194870193554676080759533208423878111913931115205752183887759175359883524408873875290934278831146483256686194370092045135119949682421433574020373468792142304507179120133890012492622017542688224045046401325243410671027885354581795925692214622949558477380178842236296233973480115957353887991723168757717620672138161121509447736429533989976143707475725881536448418117879593471980165818019783640985350686154129006398693523301919294151145121285551189520271253658162070061043609857366059275558974189789228528255017343702333881727867072943556843503747077733450293309229590712872304340030873209666907143833941895629285406940058008638086160585639333508559601256009982634162697787552711728879252466612971065893188078931653381076462671959615197328567899726718916548569754028749221765759996517683172743336121187373612444161116148209898012616246972303502429228837135098516778196032457142479598679368928176181566068241717390760955914556522763688072236784160364879359263394451867363306786996728826762246025072540487099540466941448740788618173015130558617097654615401002662320943538303664697427913814715671343907538421840200679254595234280085945168796722280860650939436157538740559602885898935965134699564618245913951362860417938989383123367956666469941629016131576337501203257810187210488605412881197331325617094440761487828907233830086354244065491472833346973619350370008909693370890058812035855679939864099381543150070917263793098194920600102512033923048434322676492887816110262316956187055973700146243884288474673320184153138245080192024811132817158858662952903506252891465336783529582158951441420960247485835629182635066711211352589023125491297925808240993305616316594930840863704566101442172852157888293358381910085091529577857179305056427218374218674031413272600641482140991893355439317364435621669155884699456032305400874106171164880002255839555313278598124910403516500319733041845453303135768562893399660005033925162188641057748208810150606811951773398134297750327900970193049901089933664062974940308801912926773746094351331250475359308830907426578781774305069784240823453644579150346479403769747176636687565283222232172512015091425516091532811654195816700221696922551140187143038453624338878034608028397223082497359855822360162744562253987841363409676296155812181477712910373844846649936965034787806679929916454419330545713726838498219236222734715363348948544711583036172888467485294255321823146583968232132886770851653493092811079971290849809731988771461153795448580869712543968315811934907765927487283026012594657218407513809006707632214984784763311028003426901246735193942652081200405119832566972891843594854548447818701009910016761769179989543275597469558516142900035088779636355383001232961498897795165735671402106181591343135650728467333862414390451458603326018201797787313190778383765331744342271006736096712917238086986389027535204703167383077817133889878941880901543667406199583779201971090696683445349840647747216516072595714805274622171638266521203572431961299801425508515326697665485443347488241985209811612769620560934584054328936188819846890768678755016623834437954461235128913286298331374792417598988202652527262992394992107165842262961807706704182175723240918328861395826939124628366866783679738734070482699789798845648876325268268339534468005665437965709359643640909477951012489460772349177296333925204027748673183884542135835913571919526120169171680987396404667067308838786447545467621419989140555181114307937392828401502371200102282367688551764158917414860172993788122757212120623024147570878228420538129413598313485865825426666232915238726017232504391848374790864200857095063468989530379515761972980359137700452950997869499728963488738125627672495463740490768320696190113324469387206634078469003347165877219493459236210856892283472660594948887793478470578292244008505892617032201830841217484071437096067444168935166408460885749975010310340347154754919445440069341820705638358602443781611733355862854478659032245791387084688913176767765055577290892947028342936721566728502566608497162118102595660202234585465513196471163520259398215420929244896989490919427255796993225016548590643682633203156481607565693099470160664851337521284203773853565135200053919692902183007574290627652466752741165497748371064318632172549475428657419955378031067780410112384926222684396325723221977834235736611633916572568774159072271570624981286189176062852982210124028982545582628475983420505525578544079164742827601334625123393890559448261990643199272151117505769890744997188418629124395862552842560459845803417568057277442954326138531645341056638391410028422326411933176926935538999489761086559244960382165848375819257842011902372543458935410575804690222072596959411641498576901945302684661847907002650772828198321925181141457694297952793991171841261386615018155531448530571515813900269570183603201816224442632646709818768958749647073211990254735672344214717362147095575262813422647228470754991749166783050856113865542883162178212166941031591447611844791250007981272018537083534078270899695791570664875387727865453315361568695099279084412057718094033883992802606481726919356582144193465993825482640396813017970508284616556642355763200645918949720483268575970888129918664749503767443425324457821777193263967714474236439607961128464799420966048922693119539842407987081751117274576291903192075830137919855815667073838217414056806957582368876445998574650605078175989990527716699407541287100562352890720798336752562093284482068402535402667646729714097779580966681330598663626475925262151219100724636289859365741296813628045942366644586989462723732644573620078451458917173249328893779233088756491542706812373609077508825371690101923933411952476669945198582498284586255918417857081977977427527035056573263558926156173574789263558935547823299996849321056574175698541273261553652002164217893265096560450740632006165071463847599871029969775493424172024854782569554707881862723651861859632443532773442838291918739019215895662425720921744260461749973113079845410415450574094067663052095660427278013066955712281513002726684093194036935224206050775375535107632759057988417473188589980271573788206015653306758466266661303858969262599504725724058014132651737054582145643027603377190051278089667358283606524590774996446068819534149523866052620581906421734165362511355230290417339946321904287791178175667607829243738871618315111998496632718843169033818495841021734057186277953255778339669866232844305305305032568041547507215780641931000690639693294536847938686848409779060279863536274869818509507555391996602614055730660564606513335809284328533553495330762191219784674725956925987425106363598159512604400328428039065156423565909368512931946720629520129092649584960707291652000669833747618777599523126805593380631502786749313336246028271465847656433109153730780441230534997823386386818545964281763597036227143997316734194169364544634695253485682690492148965756888835667663537131801826639528451352371788778230104073804554835110387485227912952725052709428431342091741575375501293650348437980318017823654377563424981807286043320674915309988009372500872519038983829799148493938541283498154472684342541400283745792779619305020205929894074280812276907394720829349481937729351829337686111029375151663713568705593145538911179958314939764282613131715247130957571831179574496498742475745773066217259297227480009561404386291592119057506974224529165383989365676431949361211621441121245754764076528953098121747410660840814758424722965395960577146275649047124862689599056847056547075930254289087894476616178499721835555314985315972839012243151426041259777575573350017824814104788458587740265537265094131802508864283683972325823835274165944908935248261133035288391957194838180447518193863476595277247716010251503376491060965342572553263431245419050978587039213085960117519353120390697699300100129752158717826203839411991739064959902431242189547995443060413403198365867923951932916060060865580661706915662685401370441652653681519028417075348167356604185081631782385715572307432625385900735019251298137607722999543009321397986213565765404904078472463075356590857849208276497731943205681500864360193147966987698061820088123076971696162953721122087033497685597137408100024864120975393408102027535077944721876130207021650359433110510297469512653725865628403911017412530922355406057833784485507522486672913262630246439386976867592937166851028903282974900045950578959594248225661950345675765665759094488554015438095717876664531785819895748729143334288885935820262731185148129280673127653935119045220383564535097091227317000700882697592356595830178284661205402726961522619455528386878062531571237507034665466094279945456980106121498036718583593783727098836168317920609187834789445750861749057245980611274944997735823284096508798101865596424246430077936613477411024683785456129266278363308219664417795012085646107174612541001301528908906193283552384126058721036716520790790892395443117993799887512865576791968515774523450665236353114595418489767982827422865548760346896369144815643150605460524468641723743832637677259711409289235995553590367387262230964587019635991617607561496319394725852282688955022772561248579281183513801651614814394804538756099733389636043338296735137233174219184544925628755452425093323778909137084920861281350040614985146081705784459144913074871454442815886489486325584588114811713168110711704573549988185508796990933928709023655643586279302145359439517904489571207660873951418441769112907935598407357758010085515225992383627088547807703090394577630329513936776381299156843005166920695941684148622342365178939538739746758190127286593942950473128737443369919993118496382551117797235313992640917000710308534513683457389643947128151388402214368734744170938441496986212736749121281471518620746781553348130823817380942674018692395492893499439991487852914806245467380442721402927758496656867724960459457294389224731510692470532108028856423164887778761942095873324179116046900412320284914499607381059994913214288604955850998574367859790124737646031064982824520431005310645080763511516147497643485700558262123450719506873560627416941538235277312672024834327139997256632278435521070447919361362995740977681407652649547035839414670671980435441013741270802693507137503667049200767481792266849829896262079781705625544030924134925034322744623932680945744248479499464160944294136558235207327530491761508145368662158789857404022193686334942090627998053746631694592654948327347119103490697678205297746520789215095458880659952165215548528261118629854493157009084406658474461080320124480207755844365728683908777561252686256400145551189679694093730286200668430946485037533037971769919244167170567635347982731246604492895530070185670638612287081191480482321304908306214289053511337636112489166930799489772328487873332361881798932501441817335585933956528057708760749785849112079851258255080657376915543925037603676991595205696980472046224952086278172553744766843602568168923269132040463245089504914743565300123662987974990801413717686613420280566624531309951285974797582602718240647252732993331566102267122191111846484708348484118614279716196636861451461754736455906550477174253124901948837261229470502966857763584255021861598047396707911148465007534991111321316961602909803125169002641604283643764536358047140827280457564800023519272614979615677140410360739676307811352091819179406489664125425468882631760750284113509333666659870187110566858249324846326057588562471548996175300500466708530989801519531175892158305743766419758956834617619439066980639812206170681276902868910642829335132905216128163189051102557776358227427536582272377990813120379739245221602643162451133355746384997876071165100927153517210845841978702619060599407780246779786216358249043393645447471534747496570384910336924905027492324295460335169309062119250195332244443993737861470702387910301415750885243277724181170523371981604207576308354844281338040723672479035622392379930917627074213078876869801762701166579423971460825616911710152061140844894376067963791324139312818249885337843004554760691279342533742775733644086119494826964086459135732360099658503240850694824315830535087144296876240751781172741287324566694997236359037273929709646516646971700649728971062675490362422334910556428561398382588232601555038149502025564148941613461979539625845680513973124290493066597577520868257014822894750640865567043786161433313836213562094990661806530878072808154016208329048368978294898830323882890184042536881489347000806604315606954781462227073663778535287313446624572972321463431765051325449136090696339649562265323438604641584387007667588767519422816716663873031376021174701419156385298968074585490137568283148534682994031065311122911636857136982243285004828282820757255932054759718598314548857512076582578198673572033508383940524739016221819554418580548200250086970552997529857662279761382019084492032026413733871007111715109103036555766237894141473002952249490465660326563562502313386596145367713514442970703687222010733759479790443714408543408780350283631170923180661571643917815247359628379962333333357950295011029820974175399027477415948066908131789268050872293810742487287704881763436520267892780314100834815757567960021555746356349654639274244573748003710772160843688821788511844645415292894511875934519733350795263991019967363819406488268778597210551297526441550874960375081985103864969302905197472762199652000925419536331972080807093253644672578258036205383199655490093892633620312569638060973505965616147115832484691473605362672128523972028635470473186545005602285536170849001590985096259347477723428914634043616317546890160975016078906384215918571884702262763355750733511319805740451592542268663233681981937251433349999035720843898755733522003181556604611775707870928190537616887946493641490260036240752165362514118110285934347248085266363633492580899423442495645450715673077512494230928128063993300002641813547191186584522439640080079895844414062465325307896162741253361827767694804537530191453843063893278619814318178723785615875351166957092784593554634071843950206857873270410490651029045434140789239641561297730548087816577475557766173059635841789885139266948943068751554792669723139064326262508285795410222505417217564790743737372793855876333568176095473324065049418955031276245935290684938099702337259276119574289648594853665050138964994424284381844637215606341224168077190375657316631032584986174064019071404903655070664679996523050500128000616471042032445515778391038886401022447989364849185036737880614116645714558495273656455366743036773876519083714781533826153171393392875411057841333085877109286913321206582351962126416906035224040095293005807602749459163239221428276408713598961679878650084935422219063708552648810851991755432290760759020803514395419514125714149639202910398983367386415276895226384342407404766780105832971283364115641683360623668105376634322757966487814145151523993516173180639197991085289986618570517748849421354578793234220371016329495819470591104807758636556827700259609690389937420920917365806923740715255370212034513400981981535341484799611528880377212003867016375896244229929787467824860295165705998603722427089165413017296295357197408249611220608926119225203002381553491418304305750646947468083081291411049252234402606394974122744360029310399797898237133922432150696638279241691777300353446180746128266269655959437887303194284882622310590059795737707172174263841281935455911888118137530357563047924281377538247758601761666710606950047001219819794895220179483393640519144916338622169238943402621853914329657234631485652107878897540829664031702097026445671012490718093028992325145817520479541408319876570853292181775784288038780703651154098322594172683467323887345626536320262390636407496614610513788773639799703576292727928994413088332108812945748213889264591272266987447603415290369911714476417436235772403174160436310152505951616933259096665425391957114394291292788661871821837083081559888012833468724569452693135730555113014042333970906928077269626042426167371585496610735119098287600858216731310535886309699104000887633971131110276877301426436911744015468878372366023780476960989117209922627123283753256739914100990355653027753826324907824943230706264842630508057990781415464702338108687557748991727247688026570831525636539182500291269437549778111659655643617162066127724450818082965517400021046352422744625095141636877561531991781192036258555041359175698642308488318571093410706088867070043836847869412909059932933727470552160307503947473126628361910390933871150990860911166413333247196847063406701468468430225353722179013198651900862388808985239154207790053154054454247261736003037142406110196223830210656459913293504065766943649815481702600335855381163995716186930747710865742578584369665818712191519460959992256650833974434309977929027320102302043543915936199898022825468958770278735835983610228421122472087780790444227641868628052479090463477030662687777006214036343269375062214063342743960445011029704466359578623574223665156234689922271446268020442987843738778544054163579911420554040606550516259434562047104311713108618649650809215562944576028284170830311155863429601243660984059003853969411105146924465768873010863772663232564937896770172315607623099882437586997744080494095472593322483456956009587764800572173511007816650935466620311729092620379498564839796549616634586277591085781650490880861917885413700677930357233979094523954235933973658955066120920596166173435211513231584817651462425661394763966790750948859681000136726753052987835170063619598242290349009553498189966975220247953147745301088905826463301815377759851661774092954478577290990566720646006089747025583277624871120338134883870575934851724347784615935826888292534772842781756701074487863034397953164942260179037353294238536388750164855483247298883468184334010242597457832777547421853737513554356245840301577421209548145728523844923365443099481927286518704861148766013017076764191824546809508135464158427313830940660948494682385502916595043223733945079283922860970938557003769564592655788402200356525469782476935098960649803315420142094539783279754289610970584854824429985505461945872643563160175330155831722520304451316068008922653601665699247271356366864760061825120362631668976200341061915378787039390350168763436480810648678868837090271614465499090387281507720851428752785801895167636140456070379901648782079423487749337794945457882761986756957575384919151466299066184701384413919909265082556431428802244078986575319285747027700880990777652137978746715998450680821801884472163064338087384882445582854405984134847148146390188542162253414905288970369002698757444250425166769257698590021237179807217410109646211073717628118601808639171019175876166244661927374349823256079985529150005894204725693984180699989186634877296310282735972826383730483827440094652256554743448205681359676601258142837877520406820767057775940019069665339736942110893310346798617966217864358487839923942072475580097894195590295717800823396022866603791935602164342290552157354754809077527372683108658429543179639464423740281480199605470144688518797308575512291971051617271212596693348703908175881550164019043755205894121217794762889235692516938633869068704179243345932830289045448929222780158312058680432924751846080897891844896883123206609761609719315051129876379356998256373826309045868751699339804578930947689828279018571755207721413861588106004645388759625708850918503681452903123778112184857303081918028419431862976114715508751718730777800465439800916504831039614380874643237514936823537242664642683252827735061651943581724496875315089921253012458682743438992660860913242038783191312241957248050315025155258722384375516348070390146494529808571807424808824632364567314954384940655967058307242673054954944868635500913536196930640279624057692159743102955241385128748767325169853256489135125577581811798953639372346468554993232882253618423746269083977724058386109888109049362192914521903551334334693921437396407966968770791670892252669752534467748093058017799483621875161302912588602822070572593865654997627025575151534072998831083614336304877303409535014142502229589948375947541502518080646821501868492518794581179156789880869648465682161945609155836821977809960292819565355261050509878188180505422132106853301579066930548046751912101560083891463411952281062057212067529092349413958019432655607180506745429080436582522345333668738428594077421399622633773018525554693034502456790227136181889759062384743656778277652247147469656883851332783630313832903141358522832869099327912451129702969034768677911289416582843866043350204217114431900740994337560341238408682643425236372150415742703368248484648088534053993282506222833084090274003430961692283549586318427118787550500462940120830243874521955105637558259668541138583267290513422882640891258694639774277770710874362857767539017739137131387525682528133346629040980028266549132850920234119906509363086307007595295927643707670771889825340095191093560718762405928695279748775053953208647187642089913176398856107771329676845970157951411531236105802857579368446586205658744066693234990002190568739573889027313613543324291357943146751664527027755490497237429384184355693589278765048650325893406029229275020664800939727669782486505609560694067767980687917288989191468314293421075784512166307795039119078521371775221321336689122016351448525687265190425074031948803705634871325914439673539776855880985778206246284327255330411932901132771223513916007209623611820170352438345112530509364880226987192499756277231316719187323761758847151455907450040814811543371922137362908601017979035882949858788530020138489956518580818964881396140989371378308120486606536077375581615667683364690182736493833164390611295847066751008300074690773765872443844713957308079358209902030221392180019113377095949298778413385425920360415744397913075213010786577667689384172975514853334329531552296820961242531816112160879385210643900118939861009649657717558454362920130357019779781546887674156951986665962491838292186083916435681768118149068864781611556458450034651996899067507814733228589686833669834978379806877715671433356101011646160664898397798134378168760871051752339760398867913487873217225922156939124541647506436523315082448781394456691801591413906738681824283674218021123692113275800093736030172440295442580739472578421991019282116605764198193903623787138547900938557372846382280242069439305760044721026572038638450266720591011199924544964488825703129946823404932386198502763611114874146312833171105584489793428989707861535676496404654834814544925050907410663153618047623207230194808750349379128216772689047613227361591831211998072566924437525865253530312674345987111886908366263471347894149495281559120470968905747310925212956473668411275604682880957309766783572814123062857795804256268905796380709053006299091782895785874954485651598362190893884051567021066857482943533313973541067818864190142961486975868417804425272565294892370410426552561248180381051296223018573497885698193815518196746915018822258022308924731078550239545011224257891241934881631265850344613453765145047659912879361287108903965349998184088443783804596247341611054581683980835589408987240424644618252902880684747108664207896635073748163920541116243767883141933225973730659240323280304378227577243727650460120985006222774307677822176397433798194523962952384438482556736100333198878147390105824675581612305552958850590000150994812750819634152883670117672787625369450383992928448671323430511198817844892659001713444260423253791390410521929413146866380643475160319415125910974060399146818727178768690779237394805688633388994266235189761421015480342307072199784605735613255417403283447892246454407749530881764033913385107626502819440396218583962917010114320054836717618423857480809831598950075809118124025671721769312675522832742928138742416510847985854756843509550887640965327162168940009960302894365153930311378817935799535213668407943743553141227442896153423963283525095101623502500335027579399055194047890554106275822002601808472437197503810328305541830930005028227183782056004273184290736144591157756545187100893649180108461870997115660639920667135738403602756768213780725170645518028381141329247992851770975687992369594519727733965786601661765147494681047451706374199410694042098662906038517507809900991040378271801522235657536863299173552397971445320242502116823867044344585128557929536970192595426985324152343576236887480884235578995956607064764542303371591393945335696970505309311453548417394749368988807996205037509270221324303261367946566268239090394321641556583393689962646709563224717228319991920397945863994603980764542811405683353979254784194687988705652605974427093580159851826565747946624772069107250406565558225462112037520024159586271900702861520381330495151994181745177182003830251501220391193905981613093490285631352164586680610958224802270959013769468390161517924332826767574282862774574954857853654721727355930392930491998672308008059551335793730534826111562750735537250409633109877213315263377763432837406891343889250839304079831072664508205294487982528473655687050177854082157245852349264621424284887308529927005122062211174135783030162627462540680898792025758598822273481280101113282368456655387209005677982906185117064968310938011832489440016517578741154809390865086054004121334246049608102081293955525612251139566768045863344251987126793654789049388450659957766846045097022690383003301509691514264508222135495352144784196127632386151001738645270968052142143220048972047972348827667152697460404614724210352654664998262341459848732747700885652738554603376402448647066884470889933371587455953832116465640936469186011309860438997021441282030034101076989665373804660667612379840023291785037213234721840582923374424107817120624929632247523239858057886248482040241110777819757076958803363554448404736855610757892281918976070357164907693217647821928086994625610175875229326464286637431908455615732087947162929110132366826150610132609533672787103137584188060509832046469875170622124313654838972489913912397271224964631736613059136572125530340389781553423311625207989353023803550073551461166836329708204086429982797813127813950906664312643687014119857980286208418997983323207691137226340791643889613250447536766227024262069444254616739140683222740496707412332370095696015267297280231545305416571357853340918547349854553450601182311684336811540235486311489750742650050807431428132558261077361831222929353025834498568838420088383184081739653009066254250006362660816004245480037630049617784407298406949996648816229906018819181683713454688668923258646144067837580206401666967515902003168418123341844900356285304962504522420153643100731409649805020423910747114960508192896676639067306947694424966415002940441528995730614033665101792115733775739748875710638955210626109859003820927696680132468444509528075655620390453397901353643998947419222479468645570292886265438282766955673107762827207039311478639069965032092202290510125196752247026204129138431967769222878953668320677642511472371041946161200525075381231560399447653400509017068892745724586235625943621714822323564825165821056149171780579846002394911445224228186763249385476139487165309258867784939867213726053729047557857145942413121341825872321841980403702191811172724427019984151798240455130370717105562519115191868666772992149369319876798639624747801451546186233081880857985026053659463074673930125655213601686577671561960910072735505739653832273927063038525070335120100726474834358553967791157159776470139472280709869103819372497512260563216539067447442781160011977290473086224024240357262446287717474166037761838762367829784370414254367503414749722370052468290690946828109080751772357431750207925507636040668691748919446572894926844488895071873920074823738070986097447410053763481422865615108961147851407646513200247035404428630029498840226766719795025142094694049525641028753038624306964180269564367816102823711466872419791714080060085437878108934559204922038373710714211964131337754197271011265063391612409367396932696234053751909981481621670121518318952658833764265333700589215914556065839154543446765171715684786019667018203571744011535678326686711335003930169238270343766806077228971186172135910424322959489556007432585418982138665535246090855890473741723853323775728647820260474346642851337309766874782104127487991109025809387018758775168869434200284353310521158988481453478851864032051252646540467856658874170414762254285453819162057330940957782053540155874542741298993694492357350947017371750307594645842340588816923499177877100253508402141870231120371336861064333133600533746961420581741717624684225179938937224211892528318982636040670274400700019677848303375086163083311546834686112807706438517288218808775147512921392692378989578902649635765936323120840771288815229266831928162979472749735381636554505639033620327304923669725862449995958668616475343398641275911060741282294791123398886383820026115946452739350280041463517799093250127523712162564673853704800318994565225294236460322109870348830098594370408845835057271887005841480477449257845437284679200018648903033316507701042014500793086790239459339483787055752457790720952882689014241223461643902772305782583597549655897600253709133886921804135396302053357263012957673482361513534047323548438683723517877688384538666336003380100797693733070542137858437325551499036925991900110058427158498382671057084698687374909134194777007819051968191220120841057070998524965412786554116339925852016344019168152835406200322121079241788701624060265127263492464595666490114524316811761112716533918895227031159958829135754179962632584307016416720895517934346351458171745940912005824957486212796357107200627344300136000859503995497318795502698258913870143495237797141094589356390030971512248218542595227423365789437053719270045363373127369311062310331445955399382073884731213453398338469601878843122255984477761328209655787431949358130477899731226531771579616998717920718456489848124718672933716454199189411577793834615234928636920781297880413415642104769999354135753973204996972950518921551933943576590168914543199500185340924118321786462290503521018267781463755804091724341912024964759104960198706593613596376549380076899327564725952334286550587449568953729672378373490887964042068813647338422752553078441679857223719601467804778127051329590953682312494554071156055322254469598221841225459383601030412941814779193045428036682787037699258702091519564820617137224205300110731201360154197572303574207582807391012651607726091352794142608814908875469956199624940963714062330222006841759349364209490519396136990705092882975116419081831044563773026381289927121159478930531633744426545823792379282890122998720845323064121055159508544770651680608478510917182954489607677589114829062558265191520643629034386684260837269494603100495490855652977812471329773829461838407417936427200186447123354758631163318821971952563163798096710270713956674988677941342781601934563815663705802390533389083547823887478204242453480267593125690619402531901386769435216044528866710917252340883365352341844732168889238466795839052529502817435921230705142849869010566393874910033036755867761324806265703033107457139738643525304364066486283011298649802478765381947397607650696369580448100885136199458959508851333517839965060759142134086826523130513153588055627341700691835789250097047844668333771854569914342909718084158404133290913646768558193233831773003675992131441489529685855083984343648360608062793575084990761323338466365788933316728086918434724014520680569609580714379447808947444136598557647512637732739463009962000513618694732249156764236934928422620968284753969182370897589813614707852924002169841184556617863339466980958878203660703676775504794000616196708814687851019519622798221998883131737156228892730512166785234833787549456234902084865774615989749891001054971712324619701029644084799412324560659089720074418569275509402061350191919613107231730792970654082929833877610075570004352347740171247920964896512817736956784641139889807635583680576720566754129386899559267272643798190792917882057194445050607313926680621996614333083238121117148420658785152385033573955358706420555481790536614048243361091583997801201666789769586101673332674627540234435395729291900990599212801595954585665967858490574678867798410432349431158667626054894888920259222751430188951194306955825418632566980936885868117914304750473939363392529756579001846169671417982399939336268987545612169500172912201366177253531831940540039723787107170330450314521461515352566818172670249943228515920036685578901218234924077726914021235865560883440927001071157028822480206963899981110365353845657762046249175737380800597666136132228969382040424175779037179845786528887029042765839684746321109582748000767001007983469910060268484852789936487246729825577695555087269645818033911911861854311007106724992844846245563341238114804515649194255065478896744183657900688362830026366525531902718359466361538292494372814838620970859272243714742101043082718827981039539656358400677946298683811322410767864352967948155536734888728307905680959729892708416659532890245354203045468078186805465419991426870902452884393505456678948604964510048173431248776169027742596713498943969719644719000526368771909466659765664382525326360526644320646069527453280990231787760213384203107635533027674125744245443155042149954685794503728895589497490337858400771897888938414785427156606887164372546474163631622825964606139322051164144442613419647605813819237988811873943599399558929213947217291573808597649973004504200070171544215262467911419036089419435862051657829200293019913132738804230498228844588442094665062746696185986521611879637653996905605718928040239227397980684330160969418475633291170570661794568229609799265009788204750132850428145438250193918662164223735046371002255336223479753499894182651653075031699036342204618333278544872558466054171973583278020411919598421751316715768504371758071421290736867989330368359157988515810150624927544402537991572551392474296744038279780518964859865287686718053096910903952775236823585426018296240382838765306807270960443414671193813435541226735062572182618145574555549993169459339913181180060655957315499635470590684659458005324319968279080671612986496821954381433664294997459329531988691184699155357678638629455723398974050207136656625902062199854237854551690922085991324917755210725165406031480349750960269118810161174437644899764969286773354413526463024566992759600822915429997256757087747852047134248494958367850831238949693192540968924842999374055596929788715785383143812286049425591779608272939564943348879266922503406574641536803184665595171062010864515247551405951245360033479841388845646714248565456128144899403661420243922960735372930577871791329729804121649396421526489393150642824025286978839019342947794907177538606768384366182489262697609530327449219600291822262981652507480193728178153232704964430841693566496158553266737135179909910676192202386254845763708119760482946030785732450468907987977936531645299642169749930651677502662129368635618276527679827229889456764853486654751125507925719284751583318395220665317492227068613221574666522604795223681269382369673771614846929316115661337739265784919268736676063538674179522221598141442336857651335800801017174008014442914621012857940961812295259525600797331527247749023322276297730774523205161737814712880023676478706031900348666145224091816606037468642384584832730789561665719155888537067715250656853347743498988434944106835217224995110318938542715912269179233937525541617606083472546048862121104101753794073422543988745894272723508771184353934992712386151486692937788689418934855965223385581465201392595167502049387867401600497301757571871190868755941259221901518440502689187168563558190052586764847764639630567718489502056692153494125070796922991689059482371945720214232510938302856859647637444184598030889200965196673244815442733288563845553910597217074711604707855373203232793219522003171459506218886024440101328088073739957266669073279054833200755053838302970621364723062013471232643563972473219703851707447145325770337899297801136359614964476860308186875136487479745352056708927437503081665856509727926686323862355693323229290542237591500850185454342256672647730186134693138114367534752473616933626067227866470768231432414487153069509914481777275718558829634256986251227477902235327250578336480978701629614301088632930193974245245841979483416110468501581900821663204354212381837556635829333294072060668698567731781080044371604046713018432546557246714796596624609642871460723392268955881636246783665171594721977519588691955812657932543302401120546903171348054885727107566141111876876680069996611145402123558802495270867459550210848936925745439567164829979751074426953068714101065743215826856441749585201811444425348462358033143354034504844621154252358628049974679501780448886256068508796124782787813148665110101876594216303572727364656576861805812182030920131281699180136917235935384893740441122853188009547605268009290044521326882814985276584388554043087963130574957894704554823373281644851058710429438299530597816881196139836259363762069948551042673714918444208788562094530524111819774146608226916511475510163638315035023376971129151777088224883785798075714941164556922787968096440263080762499596801953273425027719539871093797037566141949307330903175375206675193044269297254991506531279118523343456699733810909020271151122051047765725431761081296331971486426505957484972084710519653829107255277041540190902020687379387838881083776998635509151376637426541747493272153533023231241977388170909445479026488593032357768381753315581230251674842212505535538293247996917851812668336079797205268271853866435067668749379529316693005862782231514567024501938031067955467633311752983829388325438576388294425967661647679212576237580046441468114588983550676422384771787165276347251465937667484994540777642232942492918880722168965075697256063712736865449428563153932750611457971759613147775679459290857451119794990556455664001609671834688088672020226430945510784888595094028348539559561189004508218998687624730280676256860692031346355870759945115719552930628897279068032845423148815690316057266453343604008752782417209720359338056786924585176863626972518580630354503190020272965553862788684345532122767275286147916117908925402898269485432621972007369256206706511757174819448130990664154863783851669503971922728417509069336131025066403594894563555321902495963765135468133611206919130391492091483321760926129281096382762750684209880493304804856030048361161628583690741428788489720707616444905086759565799691227436153107814309143888085375610367729422780762884506121131639019968385241902467298944757343995464230500537044406122737847302588178059008209138908499113946901059642736546136143755253928184648900212494014939152223072565024240316293552282278583561371247547585244812537121743486295882678580727741387080697900616992339988310374719142898550344771599992823038208184196110815583403630903672843412370531812730148228891591083082124315840820502183788736749994728944944356582314156448153313189508258543503397941678156410119992554031597673018855027579509969745706763941379996154073404596877719423877222176944716358309413072695641900449969339997576587671249701642941932009560085052317572389079513462989111995473436407048780412170937751066569051872510323514013690380066516219141189478794105795503174291190471832724011647804902796976460251915991851857277954011796961749300204182136594198889240016842888880437985888816944623566038134969321364115776467039271779732938900702893610722695439689826440148254142152539809611751917546369057526025516337760946599055400237763220103492824979374315168406073731833572610092047922041125894078944761572089975116574862963176586460245129898051514309045554083418306309451059555073411566809472744850600390041003277618553992579578224737745227293088898723271455062636650992680568242128547664240635157661909569951055878762295049851109683027585248796910772312872830166068091681236822715258990953167003784100860193229098050856718725965184164211073529661087620234264376434568316516203327917492464290251052869173587367555087708007255302044341133281754087585446939470265807022562661143555691338690849339924924492190385898167427619892470485817184000875821082913181114093456723481669344378252314192967061085382530702336983873544625121533503382835922931674449335328586201477464837821421090202552416280065392333500438508699970497278360412874195016701159865766053557017482320229036769797142033066481705684018966113185481162270390128466342648256106836138720992379275998729062479727682219516059919522709274587798828412565470221767411760201064873320186673159893970556554965650504686876504841839469506392755216293029233321271381494990923006773459896017436061633386115263639190834323799628392061624421651034371357129361264909635815898196804336947213471007246704257659262619626631747059591549891128009120209194001704314438089288824749444777692575726362749909329922412267550006129817506453347106687202488710066685134327169396799120089688238620514136742792854261195437331733025331902211901611451575809079223778721695548392454506064898586696557355245062179237944100704377475527114817627642212799073188281595179939935384414038646877340379534179400633149109578834904960223366243611316143930083816978089051208614134806212372537316786229750782546266707862881506239395443025839291444453153001808595683614379925062944187089933292251733142123167050415922180426695524124942640589814066634899733677647121157837930018694943656037800645405234467530290477692540903391856558227084460337849037996698386522219566823058910325053429567927962051045643910241848831023380405648655500152070853953242430385879345845725940370604028351283741718334588176900313454406608659182221436836425293429669321463966790074038086893398782338067332812208494053563089354116475709948609146697485902901395224467065505487168330180870474364813302496346009739193480309077046199038543537650229190597351666947162640429037774013266525264142041596227906655991554479712466505836714641602203716477266034692286615512865503456116210387412021998982347204125686520523359260698359511743170193901709526272518846221380765001618372995197084052804482052286637636168155363718670347359310054635643252692938511586855006347984434714477428380722183104177507449742228072885785983688566113334831036407047245555368895233512001362029428187849241141390979154735178533907803250733547374499262971155739837592255334086152442761544571298910684281491830656390140115812384183240401701764719426235913559118638386905819568118475743504642084880807667317615685629297523856860382884532114737812194287005375344417709970806268266417556911001963397241869913060612741282819423617910712973882092354299692109623783892754724100095077877014975427973358687165812727748888220354243725280909747245601119567172399324650263313788635619011528603249202793326935322047754562285535340267412264300733042963257154244716150732140810505132423134558905191564137069440596068302494207737959832206040608139179307103544184950414341623494075721093004119106115552323057998388440368323130263504588869235557437743006974111818150258947857265599781804038262469388198674577340194767468340659419657339660683719583309842348466941778472668297779117934890642699380121746846270537005380190008159658609847505435263409471234102693399643942305146039037690932699925847935795808575613217776761095752947181138107534838425086094285456199800123710238132959532799626642455165834147904216978124123847067608824707238117854494685635997550191957595405017183736950149837605685534912115210495012242951829176361919895974751936533220503564586713591242196723097680230157307352873967408617997857741205297671540360884216783833717044000342133869232184205767238159662031035972921004930128546179319674915360559571941406922725946021065418851505529289665901699608665902555198253227661493501244090656789407372020142494378052469647955713327875222856503803382162324020928384627389950611840219671780973948432865800864441784769943342853872650354402463736928865535985032474435396814196230118407753318264934588646477858629399357704118876955673425424765327709884366020674894364539430638138458220305980168153795754672942523669764225579071677308511248756810782243300483301027694752977621875654185905871164366100344695017070480933634770330079812104598206769272923643149626433139364776816107318049944178343181078854537230673987960744585568192778723193400608666006138261595901090522613738150691130262667603227405626598564085067675533050650174396527034507261864317301065225258518123838774067411617495263110871697072766180147019079297912798104044008020018990072713318910524907493382653147783822539338778273452941107349511260121130052987615758191069574740038787468323430449055934983908496228134035430154226707420184810345456190742359605068629856351839921374263960408182002981771184573006324576369897144455684780506126270662498034331052845677009227493741062108871632866983286136364106073565455131644033942760402596944981115516515270858782115606787182306402554340851087271952664535357597206642770093930594928277027388609108076193436042278091478171277756263664573143389635436979235892733471814865219745068139242536451292505845644313780113074507995593018920726674317865975997172155338081562391265649067716161737666862343364287343761913241540614636005697978180956938558468396359198379253637458958108210144785152618234361791844059215391108004886236484021945701802546035516079993132355243808830166702717600419119186704495200159832371575479600890182916444632510539809708287077672707094107443276809895814576157658540621501207740222192584124091366229074221311707518905800431314533060864326096658693807357353312319735730117748330488574164846550025849056693040258855655726256923300454825002337882498391314011188334441260186652000572951621283550697508456564481773509031849976410227203407212376137807503976036061402272429945371986760581936040471418326247456259135686555014179281256417409483678581645577575223850258790575859470263811951619635112219318238843050103359523180516743705277832639916848663704868485182525444672170135710319253640933062593254287985343079441227071627999361829367890685537952280358410946254939232077167624633226502894874061052635252486579019563493160351040439269947702952610112483303123071955229471204594701330509636945061186517035934964045957618970324731006782733963211777288517688066510525795943900100867542817605145151883892065489541588532687619149142168354512707259102472596313292199903343932719505483028741602031641353946381036149455583479144386158470118640004531156933559357014423013710733366693058271733586523179483085197592513181354274977860615302057090410810239537538139329398973635877853463108993724192740370331293190963070954743609945846428667585704512697584288229127826239355501450389441218920501189413452733114694008025707522384764628308890208225037033886833368936979452229970348532380275440042187694554550594170917513272956023369479854910186957943477496454026136283343333472333022125212319377727792759839636769028462557416466508172385974933590260104005696017129840489788527899232807460258690329648481146156308419098685308531697139914608437905137427042584620762648417411486571986027340201633162275827697834058446929765167090885378007854209824373043985034798883883926170116856964884573549663999795138069121312561182348456287930868399340344054360827600542978670168289599250203613583930184369421048372672043182995419876144885124588281776058821407330182160551365075855928392454971919372114078202328231347555632584153556170355532669434178312434247357044948474154479539897664736388741220131442502828073890213205948100941091045712420949899349176877711220594340168542105000978748866676016772660231306798929000963019136755098859237271856027894142156756275657366468736882669780962187111669175642589956478196877652925364152238347598230026482544949169237279783592058883769808603860804144298007444547950737352826263254782979233319506486191172398084050791833166530736003972154169549627360077682735448055757599169432121439629609440992375965189091474036747602664758171699988304353030668779552868440046506098532287721062699625923144937815576795001591083028286606663225796784792365855382912203144786000520451113587063752080747909165056194622421107740525880402990760759458797732998963282071675494981327643977353541732141116029130582141133456156710071549293742535995804703070775995591024601541232612890860174981886262760574066844653059436247705115968646656109915200985831517415424419241008036101515085046362490443067819005604142932922325208275579091378212088243878020484351941873083051983129389550415209020674643110539482934681338933798412242467706566483350064141609992371073422819380988255504984018254646940760592493766717554701346909469545728614422827116770053821839777496449657529812888672178642779118888387879224559427240425618380301812721063074487933311110389934688172937013054355148723949370585132247721785941815040544742051128210088226769025283238447276309051008740862419895951148739663678436621229865810536535560574418259942165469878742187180051786147424646884199661337443903227029238587597614903408927508794827924229770030342568424299687622944074985812216329334698126510462162302357151418683787899360054412789993054371320077550143687785491344554382443537970781620557665306846424495099331457657011736150163948894844494704294326266068884806033563553449081158912406396278411938277501668081736859431277489914269961488384750934016329861658978401348060296468275328786360065358609690906222204569857069648095344554941286944531436467330024542968100429068545216659377800363099356183608094517275141004832728613386142762842039444702578194567193436614962030647301103266307906130170971762917414784253946859241067155739837201714179433340912857719128309572832193994760022608814452218133016686844271774648082895885861686768428958043707286045851154967252928397318691057862948325344155671295557458488866100868197445148926366122015186667968984990976775934989976689575914209532233010647326930625524716727838875021042082636242485269295059858693279427017356415852301585513901902397688338363149201621480217369061493788534151374377674051781895320692788924635144099780335089218903079878103071797902859346212867657618761216725573697288287125750193645260518743361924667659019487665526637421478294902047184322179903696103899114002300326477494480094975329376189843071617361082951971898858393978468545641620288641022915468045317644130690702878701003303528424434619384045123066042501467692111012333466511621307312472807645407050094162770617719254843739899322909494540281566849692282661874622190013281208904324883934827136572895373741852729241785721140504695018904445324119132646707248090123867632172487698984346900032139815311099009934780018463248016329792379872385562475788236044916864705921451645379029644272853610628969162547988247360799054266591976068488673538221019439443232087431462662243073422309920494665370186346121161488761067943549086349892996151314551814736509534130281206360640266679156906134746616591839678597970500093452305948725758014140769946610858111063828223338046805764855146769997198467241129838056853248054913571914990519315578234239641069380795255445639363109564953739819413430063130241921206514196270186850953443680972012358694207984279880073345713932310669934251019227924151513482622251019992990961416816329773929761253848582405675540499467372725258198166890885808556617516781324609262941133975581356239156466556414561137982824759525512352405229090814936413869924141821541637721731643128045867709398417567453308437558405076932028718096513347916344394487417060165147963602554184886824073794387609791789102484528277612172182406684330418789652394776143760793765470016912322849158454382343741635197582775549186065288064843500378561449739673187190535987857756758697539018716469928890610521238876653324213062551436204305914649396359203185190296071875841626293350543390011133323077102286031018145854149434902015595255478029953961491932892149384254762613967651354287734439816866009725010438587271069341615206732867415806301594966119004897486183016914529498416331928894058478097720618936265134001154636729930026404738891450743290836552133177854856716770382101793564127357838813628658010282394033554665657095537238879907470004356604789499428194191166411796548933577309548181953938712262641876349713046216056988869981309796747624984862386956616185465731188647561270737639390228454553660985924275155286554773550061165046536332499154118277770227637825996349614026173449346916847245230839414738824114050338971749905179911075732270198608617290998663308297531871508898504163819613491308730670689032701999958641522286923331649690775497559059282316144806101838971207239709032719703590323596563487442403315587639206101218807398940786458010630700922556472111044215447983174856326570358161099077440412212435894182322497002704484247928156721736264473404248117390419482569236450542241438963981840541713017458681877088343709603105914437018523411576268780996170146943540828986709022064558879637012785860586552928017107462651715807023200707878206913908714208632615609146174276004341488865733983799907875152520139550707849979996609647094987532458886639280186387095470438245923765710085615409244925280722703075161996853020703869935727901785593686094614118108712850258064910632100969127416141073263365262979705021183997563468025006071350335574139893621791827080468964724469415830860875907225893903156515599159176442254261275055873340950442600476055387838247743846346113031377126435204767143399261060625930340278010088707244443657056166779198307958188746099210437681930772618534984400095356757243728870408508856167680535183672823112098275273748560601466908683794096654810952298792444045867534518948712817647783204128365777046047406269828871584443958120395858944995524244717650814169359312217839846837873807190268026139201265228339371972982484319802468214454330734032218222136243504196518465026585941958781332771515522749150803321675013848318874480125533803189972274836099053917203277294528296058839418534170324498500973345458193275529389889132770369827258638029944839725434187084306766414593454168853321640310701220448398402030821816744558408300657722819296167466920986259392018315687921774203825595482040378788999098062915629843461677859551122126593845299786224370314211906631051981277509592043090112929153615968164581727557591090270098405110926278604985258579123194270699788459480049507182627621847303465740636280429038130590090288687368214160918152001831689397372683464626376982307941011352301859269346277475965145951091774851471468863679286064216383503206079380444515663417570209287456423297652361132952678955816068039047047784913283831738940786877494801044426039051445546948904160574669591674525890362913917432682707336287142115330677901039879469371443170986227776567487981080735321416449451074683760348559731050990334992477530870100500731354786469528904336612658018612325301459320106830918372440724152961261815612420090351297593307103347841959108571263019077031860098516691351982378322189609379293517164210099494485694128761827554725896137439463346656697969389983340928937130726930770969978987776585211379467214407965652687795647521348998597753965865980808857023784335705645894573977864365594208324771082684266227303619913923903596716954303314407324822048587759943819713185714160000182159515602656054856851538621783448120224939286962303400970197740562897243602322954591208734002897006007737970111794854455329548772204950979396840641362997500600309419444046112272520544319089382840608530703156551526535898088982497798063165388080955427849923677247862889974600977733767789972126119634106687045363754898547734024564193106006950152469125043583548874931890513771539407412652752137330189132791162901553866314126095193468301501804050001396141166181690360250223958382804203590655917479525336140351492999816919891741055243582504621555646103560215533830367657122178360132421023836920367649119504418069947486279850108595472724203522745687430665399636586998221557829369727440387590056794730115723403411718795549720162202938175038003474806242930284920126506923249017574629530162563904178131649260545402149914472421107166771414586523802221964979518704180174580503984619079703256491381192097184333765588584428434438567165242841423555192352624193584537493211892984772286580910074389886734281493293372270815845079663526719961148116122557463020568703227931235470221802371110232009908020915157162009341489636236507454708124933171685156671262618748045473524164337476045682194640158280667552686864855216308284060910639034542752905336491811297689504362621779797398466919592146947244970888139107523573399805841637668107773951103288603591475321311779705393802045984339349201322062216686979397398488972529435201114885895773858338060458582856859567908931929349470026749040806856953561249649821741235957042732347010638573429190426757749285213887237444494427884474269825048782433718733448002192215771476564824529353656082942327964880511431289942456498397745321857697361102273157961686137429331964813729884323688520715103518048120810289145101003991740539063949485782923053964464944602724033209663126341665951897528468029805463394295507011830312189873545719057992888299246332511360715166197100531051022664479038138766714382347501743683257932474250332771614908832383870530629733461001673255279378124241588953647836473923683009099606935265852613486132613298622727527873142765738514220640306302569878990382343057003474644996193815893801054333476435495434785587001690197692058895303872674025665506259663314121495774373569695284714205382198972474626471764087227321446441503796866123994091081754013561525337813524472533907209972924075733058941165495981359516940455996625559096436511968257169745247892163580090696336109089588933431343272051428997741213805462844116473041832288929993564171412360079442092156999368171796746377757989468838614038792339173933690560100195179896166917315750131246237115276442004640635342515255264750804118276782881366701915319968123299499144743479319750957273813975997126284524710325640278329908696482799026111110164138828779140758181756092523892471205762720076800047450480631137546894734228925988796223594915254199283209011728606222314491189270559095135312123884525323073486261553451359780399238549820670224098358554039619188589963687038634211217636772633251264869095049647820303359579897606052049449894489924163724260315321263679615717266393292412002699647169862630245325928458967560366301867179985821711383646906462978453820170446388159135331557137340935816184590095502442266516167269844513696664159039696772814410881414968257006605502825056450127233913701060849723859966523478400438205293498551711538630224626083410625183654071161822875107198103834952088221269585048362604742060224572324460352051041955751279461763900794876865359184489545616616729108204694973234169401076177895798252600369127449130317417069633996937915800894367819972516461243157796864485481380712044913194066938232029048984428882048138870224448127437656463501174513080113494939946982216110951666326309246042984085893960402264848261114956853412442122578858432534147913007029808882434075854313825473286542017717037634633091373725646488549922410694228509606593546277341358657663500357592766919444476455240661538084471934396281575858608032137232975028771338595697201573342327141611058257249461126171317680595024883435486681829750618894078439566505321335584932406981249454119699644325513572527197849961436491809974687239159511952165634932210422813534683919494512208205100505873317477179440654538799236526531927777646116493543446582891123629189860224889623600843276990042469092074349255548876069572973379353418921084540740708339860034967058756825125310604403614366589296136834851025793053117091144161505532853785012405536362950029880675451137063853070767924970381581132544030426452393949763697203823531492883026094198176291319658856628673222550786240826834429857427912291134254872755725134434132499863914730471667269807030651941231677222171718522781038346483550214320962570150970824006619744532366209413961066839243789567620531605834997167992301998087754589067295039275093375961499089029074855713817085599425991552602381654073381487114184326114030032463231770402915565559258646994176556805072725746306949431943037212471444681004508452877762065280789308250997865768420050414653362673527150234683518985335053631007622846040083977606603981091758719336897334160145740016395348941284843795942260157690951805267204541256131057117630883324606354094754340333519307980104965898648712112422846506358520663395052531022986506929158452212790880771880756782003634781500701781520346058113085470324262779310316684142522880083461409048166834986075040670734661765540659806155489260106527400401581171617127995979523073762541883348523060240983409992383061559941719855979120075590670588063175848266604933387538906821395145408548598891377700336416288353726499631119325503093947556206949937394376559544369204774678112632249825958550405215652673892197414659177312580201693105076680657991963793007924898405357233604421719550130157258538537447261480779420099919914410863480389220941487644791024282781555227670282298317590987862981130523569565211582111492196762270042583420077228307838853605283995695227207144191871247311140643320840748290704503502850089742231721489745027850861651684281152328085558000056064240653778797504713890872660870689453291125691982047290800697369284197296378490811511234009589588283766748972903944704375016008751741665675609853337680248528860137276962539171458524663818123253851459770486953880512406828960278256471545435475242896856631678358866114541262930441053512561540389845957561885758498241524626981674845765923758079207429448046754322602497179159418758059135402162972498245922302685264279427262601077505702140546709152207254952601338314123318443561161896548566743299462453017870074531621509319068886077016207298196335034736650862403821833923146433705821681248646281852488692822339334346934316398845221822288890711566671785155846919331336068118663198229800641557720111747033450073117077439870887954309367188528090630228743122164785007292629456337786004743065834914286273492440426987124623542042415302226118527490466016340166800708433141125672761086594595603439692939064108647445484335007254240548540024390863615351253535028724386174052272611523636890505798951097258248367936487431657019786034720833939781458938952060001875943970325961155705515389929624985990805616982040486448342330366753830693664968504436217871514026928783469631855576346673323371262616520629535395387760778017979841388119134905806214074117025433066313817808222109462359685150466302053093768669558937528136037496834228168355593296430422764828574318019311344196614699825443030573273995316931120366317172490581512304495115299558823259815592598855943715806662858934848424072067933247833246466614398224731051844394928931626386702027902111352232811922887354426720149856117161914981999006581620154892445465781546118414861572669141082455896709948697015869091494758248047579153929055740344388585448549919816078519520196325617141097594047960754746200239962936341305850203119447751555780183153452918558089592701498519224810929394381747950638950413830625958777804071700137050354128055644493785211852238495423420694159787203573087533750418286514444101731323259655335296067645568760761160430470592335786485881917426586259496947546452965953172820064872964946555877998920950241654108961712447583241856281891659727372312810338397032339824849704668987775253360668954125962611784532003649094350572054484849331863053868318448427490072570793632541970210403221664541317699824360816089636984799972420289850380195611073679769427602179144973520225848701047477004803909904722374792911650506771192087879697070432296449324337033627662506858196549423850482144266853497265108331085898130880366310923635199271806220042248694788455878992557917325095976168475205297340718586220368144068893826907581601837161010731282985161463505162913443417182734991582239747208244934549070584558284170331797046221584065167774988742866026652839717824960582047800052726650280581011477890718254174474569441412464374369768860740662915046503376194002441662481347573870868293524338928423404611189719007580402632586031416106140258068038442387343088763349783822849750954059019813354429120804609640391362488828688708007410883582960869924498806129586255745493951056287557841984077632315142837696864363633057377927856518595646493960459956127864288039029615903024256815175545556322007325517904467633444368156505297099211209576861818262334290388857248626210114054498481302917695950558478855662108111183390573922975361279140121123205752893702684539101557965446618862865309254398949593333680783003142920776980268367917669260508764446512033640885732265283167363477930784767598715722450625076046222202656757814799212038150163859266566457892208265328084947472043967404113194467104153459194413095388719182357001954236580497238431973748027994277464759839001795097518251705638599013921627873880164945819096606826809834205295523586440296559205611830860232752484761280308669834894131512000914210190498729784522003579593612106746631814703347097665678974406308729531731046897109078223649178348458396930825511274418866119215195823053543399103038203650453035870170071012698234662602487120131246920681437659592240749215704848486848123838245223262552641696413822646744780968598509294388213232219842365829218890048920816666205526814442751696796580576532320357900868281827743559380632136080738396941970938630206071264624062735854511301291252885514571685649573153914601074068158288783072145301809293408351613265866853268535179896065130234609562900917900195925719267523217782738742281420731685189896949269807172267414359761746713868669655613064072786199148582151097720109022389672535974268843107190926549083339007108085190456236230388177763134580237400689558995615212091551562335188129314235136548485754232758554783472854526307129405887728299835794110099394538811256559025129753432672980363152763049558427911254567357842585492392495961944323625577193335156730001552989638218621528639497365211078827686092161922933294934013875024893629703994163382912107187473841136809744653888261438621655815817656629292414256914258245448262146302288994648197456412734663937739384670012117325201425269361879184805959829026647195008848716903983125250565111059259173410149790343614635772315910404653008862214287174095621008545545072071639202877087904858475113391165245509100595307949509199881215678450997863844817114183716477024724141107639022838340708976697608318496239602702695615042515443943014127839298778097649984236161947960281409166939820561318348667130117662354875480387881115482347520677052355650386925323718332481085898057467491922683576769979927841647095326485423849459643025764069473975592763977923523751381524917284675096657835740982964510506333692102298852590202409325760982512182162092939541338459614577393285597946342819234311141024021716368682285270216200247285627484271089323610370064350943182972419363913580214441870996910843451264593514172725643412589206659490848949438020668815553908634077848193492294466652603202024512962291332391248916227674929793197457527660391471848284308747985774732144245031613115019517543923175618218813760097722757603224691967544826349757951905577825760089672186506025813234681232059855903838873187107779391482140608749658593452279270448578897322627607777931329138036345360318955708181152326964063536458398715842261893796322879114596201434516578136829385597605889238658293294482890010517490216235810578443560776422943630846672878635334101512120122048476027330559818094431463306736268941552763047080646714595192404402000655810888295431179159961699596658041384277734208692898040042774409272348986472107438642964157168098856019324524144415362719494851894000938471222628947324358353206946645036748370698474407039079314663788024838485628884799517703853259355702953022587902246379429214488548173493974816446891962199124433913955772575605536092572338833965199360190228271397075399639808021388171684689764978248336167386391084199730601703167483214002441948487505889830334910226600820828562062874100242924286637032947935697664658722859813470764622962310446326923443507471204217255621617893230439906626826503470327120737915580363775865535392586155277746139441180795577008886957861527927278338887581603721425000171004726844850002950729497551544446814179853140295290481983771145594019074128449250838650019990674363936216482468666470787303596111454298265677390130877744642061908691027197052941708813123691155863083652211921478462898971467764403430685501721843034126152585115967564171000105521476490724723309437464534595248395075768725311740174927103376829897737004170992746950890830530818882931505219070632018727190462631379343299866182608046213061326660981942502378298547072314279667478487833369098335706820461207390754023182567307628484339585202621107441584856441908473614999695413825421374952117592156641684212260043887009419243875795712646653335997071553540747155315371184310255393339245230510095327483412326328718150789690197605368572915943239910657013367695973294849987079177776760257811063634903964474336919172016931715636319971266634018113317493490252997951694973535164724730185118417606421508703932451226352091114141596483655761865126591234311128407748396821617563057632202695103157822106023476810885680263558591699104222025867062538023421764410979057767881266474155756621598030180883505746805453906739818152795983186791297538404767119197419806138047616810600151452019685880138646706029362571808981775084629297573734117516078127820463768690994056449533410497168354456220298797035152371471922575812187579546300844744366929416284657374053082403310580426975736442401259874124977589155005424263086316402246911271719092173812408060982720351281638355882064036125820136028998743787237631374124864678168505576447410272242676549771237344437247183298288210125359533924739675769113072574746406955203053083683233293774733642622238959532871948469139389377865210532874925619067675262049491052998633256061296591290678483810404464664678389016884426223339880777463827705305402292552177320043801865294020967066283663740987639968302471621760627063277228759289849239418066322642168962826428156685471508286169726003558681201194729612858960461378010100199068833892559000422644881641820238332954648710174557357246971759022655293673524053220021935434778159902391172458125604965693408790249513367915036869749054918553700698154813906556074717965265525802237379458752361152463460026968519135292489543159302770869519554507709128197124105219467195016640366907025034173084214016585460370563693900609215565834796001673717992822792521356119939781861220312985381706102070423572480416361604424101447218059043743934878753629429173983422004567483069481623509086288110207808825760010193380633948581824880689177607123805821474077347172208824285288205280478252530100447650710788473488063722543894723910574834155122512709745102689169008067732901954677696267312059836313618238822325218683496247477567606041847019441523564024859675178487808959128846457563935016234597491060496058060093440773629586110855395748128406277308375585088524620762908859544621652201446768900873338131098218949951143612687670518386764201743390737894582032368481810619664683813770839187854756129258700220478409826813089147413393578278311700331781779684084989487463842895435068187003367654677583312286509946197049208281915178015959375936122749734887135767331452092001698365962051719947408427996125372227399059101841112525100724706661780007063121817817701541001078297387976007587176763844923727831387512244599921135942082585344536271798709552402536205129860774456127397919149256190557737947115156564396784169337224876980128823811178450840636862737642215915300905276725723330061079171059460104493891605825021665133381419282758746785378634249181022293374276512210839899608907663224818657635119907750662617700091035352496331270997902161478365701245973995304520366409080077643463539097762879066713289288749597429435310272624790220080347520316819395666936621907959391922133678407766854705682259827757945995847819140992287013475511200620521048753860123824550886732261335652737280808530190420283184560530482527623126377369164920620686830191091500116692776114919277204434387012448369012574882339497214716734895097560357373231136571166425314487830765587871638444684156586104967260781963506252930919022031470261892940095371143541570401604436322646800447540128568429515539720048293491512705364123173932470183886455731124243306209105986830217121856273407794943297957553143933710612789810222213329132113722341037821840389615479981883708123250151351921876941562715789129541338128930818615160118372196982787235640917159399297046989889637618614481980522749609180102211762990000563756286643679845416697316897520050502033729969095590874021007824597521805726250011864656437833392737091668695821703546146264485448567259811048850178233124713851269284961561408030037504034900386945540840083247418904780936431291704765352005602974003862814907213880054949163922297185636126975877380082403363346775427548233293627962791451487678659263810733478569191034162298526135273436964601546602970040561974725934578253891972913094260268022326595548900398866021249228371042646686362488955546933317724702975734115799411992895890772208738130358136488196847754809809448604850518943103074496421962512445763436534974316008424381185407844900149959866188754741821633784320511729818609271427870820728193955587253995250134746899932804446036135158409485653600870323358222779565432691248728765534753491509997537996898661813834675669449667453008970645260263893962989833550870259290723948896207130064979633688235280681005989299623505755207940342309078982949490670551277219616428544536409159267928692174834292971184169273230572698221073252611203600793956209167520398823384293779324390318507947904958800375353829834992533612452283664018616313321115546107874664914001998455117996494021509443426496008935647399809181985639883412539491418712997971066357799800687557222176771670001639728068263089294729156366562440778192475986828042389098312257457464691368745518630566658532171213132703521549730084474258983630017124406530928843867448277275675250165268875703184382331141431459255227346658021997176790518095033823555372668972995893383769575818138168278073559248866419308277757690957510246734713805995983882629674117630517599507397904557177831777859959379161751144880885203048653031677442340129089238329657271029308746173001062853155840576476179823681375478474218120273466957345302903541537173400482500592917218174012770567533932439328158422159078056385385338991277691338230147350151053874995685141776340673887352184639025358654519906885975910363773653558553054267485414895680395016264405650705907197543575210252917020026600263835637127805311846661248601339821842841391260030035815343554138003127360351411287823153909757784751860505098366554839932681925593328790799810417049116582426937952045218063918161963407378636804846588787221139249947725572407351269974795845847766743598038396481037141319556950351312758424511471246804751199011258520822821129086150721445394212721750971613035641560803356115996406966625284844500393471744546326182149733141424903782917999359718013625920715853108394622330837576007035705670213760621352870112822285459628369770961972282089195032989263379685227349300364681584454109147119305142585311027294279730825307452019998779428407063998585321777897242639818223485691770292929262872144796959978160703919589119183204686075271321650388543364408514166194789743447933474794651456018012908904447155117769780685521938198174828923382162359975122105804152535403016612453065152904811963657712839260371818698620240673543796792248265449114832975900925939805326729073260307697415268080596806047194011144762977642676089292501192553756464353797560230647332954235428385045194574446210541060874759840450882106212045093463793332356572648995120913473984530533135077189765860165690332680054286211668719472031210103036971947851890850645166900250925270372893577614077843747105497865441188748163100421611385486255589660319201509717993146598175477520568652042970817710766451436509915805997691122751278404224465563241572182711520074482493182591255809031781180323535995195694265740502972246476310824604425554268341113103684511427450929550316724618141803421368870688346788671362082451454804551167016120603615758140256686636252919021419458181781796501040895334611109467401462668868036272961270303649699758536676343130894252431821385297846464405443613352911297370192731433443581397216942838946989595099126098800582591549350651349571145563164051945215715639970337475451170858009531787887291535852592498709380719439067900252972474833956953913652823874005565096130005955151000707733773049948710633329003230921003960856947961298716555937860306273498023918852197941820635877105553898362776579427001680540754700187485679462440348094944900305900412605464959607154209933594863429626248772869876289260266935581321856657296743250494516691457183437629618812338955831876540275954535182260256061095052821310246438131850515178559957195330575932801501476667716495801579018768650362194420580352937055547944971256170242410568437987490409967751529952924095765838767303670088348946591963589981501955432571410859058948801101037044410006441062595530350584608728593637883620030798406794140214733214667817934141291511844411009405010586594725329279480887858772786737224791593881244788151775172238715279224796837827207803499827064879390673648930578706876643941562773567104648515528620527647673175951479931280408121416965015250132518930299652219265502365830755319600561568437700720836657775329198090825421525306672419250245195170829380309980574882252158560670647019446818274475439858774008819359668952950579836373459779727004364066177545122673720286348515896998853026710404886656797017097417062862930550968765872724402449315965466994873793668172591430056624505837338897465043729787540110632060232132782711590456578106269279743743563607627169257231837433213157881398991562475598685420323444134317011993713316266825602123854615230553950373319836981909243063321163875302925332638617897188085031092152451194393848776442099924384665251170681259481884359609608990965410853534280044224431743482732611143435724843312941379818396944804696169831380731339420673796281678321951870003608271449878740357519801633623300798528842932126291977240475890317702453193031626491559597438488561597379352444764973060694514847311585457048818184895179178958695868284725868864473001813003345618293316072731867910369073500346883146153089981571078517255056702121816844161679483451085395855802446779903549691084624650519136295999482357650540973805458561576822992989146514813429737998886192742568127223678804306008202725133953493237168437658234253557876630547173595899071647965063752374199406821408076300087883135471782371155777213937579263909730277082787244869804297630035669961392957432373635547249796051189948466735322437656277620239007236159755922906575252672416915206679945050998700486702923094397360555291425960512651113466117364997306632180995827461877730271664660525856437122599203919425324735639734460975272288072892221129670958703532316335068538790936610968684285232492815135732175362491096659760670188457552625692226867703511668417677616112874303638592155750648496704679041659479726207662762640915208547479517319859756353222466689055582657591240315079811383878484529930153697620600626807650373726277926017021998340548494385684743373423962380174045629077220217563959366374832553869202926250139636747464980359153987806639360837164054274636055266111766910647495814410239863822066524970968944040207997012661085479906281243779703135395116935840624410984978596361207629076401398199203429800744361696693824271810221632593678239953897273847142863835489277263121480194634656492748566842091914904942695090502811823785934840302344922147013203677082336516290380217651564037869968228024558537905056218229798199867312632786805843470667189645545344570353098896322113600709259909088334004596359700037788465204810346629895663899657456053597210221529372551292731287501555588767370995437499085430993688268545095082828561872171144337561943771611094802653350193662592150290960727913508115851268265851620474872539510705858703211419644963667566205191737299722058116689221726956191705161075019010169117669241152164789344390317518519496140389958026853984757636285534131945781395550281443426862386966161321776786521930679237968297342103762852125914718931786102597316764106113610395606317032968021109960250516595587602161106496452601661023859389285260790492587653440839479613481402780129271925408535414497421498872683985965562071223858484055844769490862072551989425594068856168749527814052479088835390404622428457380204401877506338446376966670408281786203926536722097514419058209010698266457990655940313528218908644374350369591558239377192019013233806839270956154472055477894007494199063908670638519841901659135536970623301845864940009640648032787465635150074342064775749993941536548387632096352590915491480254711971102844502077545361964643498133701214656730358476720056514718715321648647637949801262532394748054047090397117372239691255609963124044476130145889775568558823642288721640408838381441793471572235911465409212696448142203130251742647001182035435018487043824110369535217248218642613448551519419866780749058809758281547663537306455914402832773194462597787111616843324697267045564838310231364588663244566891462166906417274980574436135900486744802823305565564613489326235125616130304549974556022016890780278459492215025627244127614165696481856699244622461267504833199612999614567294731774441263423575365763900216413799149000799519716485349827061578457623545618455741742354624514639398670580904722984825946159574804670567392471246020725740425243278145602241687901971701662588453160973664028027291080505051400434903034651152628166794636191055188196653579316929502386087728471870934837506505014009100650338678748306305165222506404656665170885799201793417813550876695769349691812623972058469169470075235104076795725406622962307403860681103034164767579913517422223933143979344538307016880847237962234754971695679775686345699835652661139558831022197023639552213485434394627401476725057895173751207643674544129483078045385176694018372358376653772810704245421416853516893973025782540332001517704004809306847496764573991220775434212335119353383410144370728308492363963414220624423535209584897580429338229479928366330200424942165176015250274765813399701991801235135620942304299321007533899070260676882257971995017210162579347572348387579552972982926345500880198586830790094424597994974269916503013618103413283488477727843084411037766678557271123882641228410534086329126059981060389237418615806401439447448512767708437339446373673986124355632196005711095288871599517024876245178760865881374662752379786973885618902354923218321879557840679537084094121307066798100011483279355758777650248623781908347928910559511425916648831597960330283559759526071561454345066965665303584574976558453763573419999458311787618339424981365173039142900654258300940195945700243098329117553698786044995130178637235804295041518588488085939352506963392382750338287622775972075810748124837121692092174305967186270098889159160363510538897135002932574426213849942055381772061692024085467750903477017712195096418737151316465178071886779406999176955030462130953866973747869010246959731817298799294729938858538298800177197775776361828391988854717136688301175228831636253164259718765710611635793065635226531548686448878360597760006818711079743019188562906501773827851600494719302394762810206578478885888023957271276642791829152653344704496209055179960056037963625651237815094055836641140437001594622019275786059474032087270755895701632190657950707881440286866723466579661613720164660168857712005736457102508579120244514549533826698415014017056402706571725581494978127691924564191121169034751905637454812966604828825147271222021534049187272552791613168161768873115565476450861757127505079951690063323893546678740493352453608440852846885579803224563913579824210257596121812944712413443705106117935271551523445349325241076580101425342520562878564308767062764267705165515398517821765337597289466277163032137791602935295019104573923337781376374284613939334654833649824177552450924854045416279906469838204424752736337487332555785111727352329900785002050332131094861156106409355223843336913917585943291820432391525742800895580242122514120908459721879178286847535267525884675445423893470554614982268031030771340304520999770609218510109614077087536713625039244150189364788436279065311214087875149886430200220468165003136454806707245155592347196196731329524490841436619692638521816028679325360005354860581064291269573212339468622586796053796866022372173433183689137596351936452592241234545740169354220548896448403921907418072386101309609347641047889039545298396897437403109747323486321891264949820244819319394082993703309263347562036095087697293776903023225932509362072984673418932549116154269090738663985940703038461733386847301270640314375470326169341010832058819968515695528837255289666394090113163209466791082471957016467657399597071403901047566272500296402856746920140711250808383459163225508091549772833624943285253433553374022584879607205718659345532245535698879662188232692640428995177694461550242379612984349147480187482132323822591448701578522100672839406647133764319242959396898550590829872096945861798612964961099565838145900226904349406694701516035214702197708433779468972385982111129450061845636742376083389696825152564342354986557554303460300540102557185760311296318724892046132781677023211716952006087316442208394274805127156129914645547689858104796218998849320452656955592938128224514041492188369661927110651283494525588109252791681615601732313925037652961985508358131012226673461103458302992665343124605381738088764339464852350139696675877243185972276803718487262171126313339244695375155662763224670252724308611946694955254756836133727236043278690860272842609040717159691079916210918293787932383483213402472726175260143381100317830751576917132564039272298166523241299910100361496312561655130393450260993132501604758697846806021532007637476958044508786724848103276170002763641313353883700076753713693573324237243406553025667428608799924450870651600441022756136537174814629722441516549186122037243426730023765348592595642830526516680970689502972352917064580451674639016540501091594348848186220004262482367765109172939774811812542863503193501021756073852858867089913661966760733258958615026352189326799984228395435635482454501342386523270838450300207522572507942953415424533773335687758397955786224259511295702713254909987955461902011427738526764351995880433605966833900485929796477382036683584217951164233839551795007543947376246976671281874693443395136919581287650662250344070290172663922797701700914125561192706183194294613311564326006524530904725019824277173147140796989500586814844045058628397112774329179515256132034600318981340021588912541973183095447157248172896892713284336692096025015831581058523185714280917980476601289198649892335606640723678705867052059565683681618384627760655314222339072855202890108070337712605410061315703244578188497226441637518340650245456377391620837304946532011643183361544165590150588159892464457563181279169308953609121998343449132905908089448488846175269154066234238205220911161150644668651600509406763260494646831320259803410082817526361633125014086756187129293521226469613373572083822702364159233257017993995062693854120002354535308504958627836322740064549497927766693490691855076461295627060879753103914122316018233826052503148946021193943118987342813738643671615262590095422882077868728877953018361175856052320859492931803582064960890630800043652524660788269870689627357287959872029493525706599488970329115212605842679073898564859422777332562415575378602100982877206494377550282989407829309824608279217933205499340063336918780038861801516505063001377170435435088919852431958135158666116359465622888238423778304267187897491022652717824891105169696130573143143937365551509355177392357381992664463358365845373148623066864550424457076519480757711659362956244409683576697508705258270417077603695446051303508247285385131518927020486420673624206104152041322293868262251814521913917891477307797948571141274657155764821336385011866024884960378144187971236273314323179730733292469049573751144714582471635741221613001070066894715871316547992289192888171281309888340237403961653998145437919014109653611201027407722259478844035703019886340333394973929043637189950835115842153771230845188628530606330326462922662096446716847304907901894294690578539840337765571688875795490662611601083711523517101668214673991110849080956884328893470881450111057083593628656916275252207467410711614172739002224741772885845121398115335078477704308664048409875691220074966115608550969181240496301436052988336654141341611788641024283114940108409163616530787426468367443402157488539739011205259191751910723518579253898995641884888424304208658973162477361871976234298465816333881381431797025691659055116021913610045015407589333189912650617090445938527617795757036786742196319721281831087058095456886278047839394525103130255110011765984079675159044128523971222564023972435611112542302643955488248804597670582846226783125896764249832076242610977584940396583537137776737193013577628154445889541382533673401118823998550607919869927679019954945599479258272536506253604990111187086315772264422875102150067085905873466665399167382985897132646776069927675334251696215282193161278997749590164496540997303956879135823234847317749967762437833911947311252677949030786121722858269411726393650798369141554509298012441377327582401288176239184876196148797015052791747349308693293096362067229796415723569399240652823544578730100554495181899475824596736260704357668758065044655717227285772186421238060930972279078915394730024498754097664819072733676275896280001425716253594458110966203123170012475451081134520258435655991249148391380228892543698883540159025155280617060410479219815022998386060864015002643284688640121938474635581231942245240263362234885098727442138062518090247515166124907774808649898292246238047117687395368316414974364973930739824649161610970263858020568216537968772562967989293535166161463997958346867067923018793642780321701664925269024602009481507959823187068520600916193862789748180201672635708214604205411230105070018015788738853311346420189920084687915932142991835545363924422036783128786830206833189497322502985413171848160947697960954482979990839143727013702268828860361093914654953814593288101897438952762382868277268612826163441741853086606668782321577670454555942174162743355186421355518092131478483634086203218737663805725880098895072732405970664394977848175963453353651402127195315162207239760342532064801447205392200195708526645134921424400333920945158022211231098235538306405082254388957519116104496870390941132819034139792716100487234267371703946415940509022890443231012483771455450994974707700872970676198425604442432207513910785904094336198358148381977132589634827276713959962355371025389570160493286434985725681152995900136431202134265912597186731353491834935487962667052274274484701173093362770101302529310870831434444815081137625656164968192754241421478298242467306369883909346864396117129503410814937886194983647601490708027575146709352898656260517340451178661073362564311912736309628879665283455510786477775692419046506814748520696950618321361675237824985547213031588959570103625647102213316429115528197951149424549662221181925057317337533467615031657563281680650404909496859032470144592776022270280950990739988552667781219364344666809884499480542699372587274782777517795035416278590524009212271646215624436123010618300215859155679208501031137004632809543727229906165737646783314845333217582228746178050957817737555826142944180447382363759137056837377754208850267014802187634367162381334721371046884784850075333598790383608625317311652274547329167482150831609761577133851506673359869160489288421272032216840228105213762349882298077237571788680470961627892201281343904522922875173666451560765094662057701771687662247021580979406283030268177414738803096310081495768476346746379741114051188081577234068582130179495995675596567567973352989654414829028113757438408673687884533712625306666132657363243440983835968523954982947098928674701882920787100909734343248446581020698749548832465006032589711434752340839357611021369300507975817381795033217672437730995291867898012361145859603118376207957171956034579541551588223461298659758183757063299213137405210049893876535552974889415305125002437429020039764655187527148657120057628722859744850473322915741488101659291345893274115339995499406594468920302199785732561201001346474912140109658158074870730384139303156450580607406987856754955028507487575079218321543037290541301826857257241775583296409619659896073278138002626616937744457319224640731695685374257202939517256551643630102013162383455287421455692377587228225833611398439323917362383113581222572371815624433114120466386458701538237242618683671583183680106996147287612270113385313005191779323077995180229449810429314596741868166681441884304804502361239090161215047362848704727678700013549253941273638973694767861810148493882638079439369678770138649338570506936238552269917311227005500725017491559826374092343282510862716960976906355246031973424965376623343411106031409822266867370299989500007004014121314758611785948242347226322839788125236202668489917033932875007513793050437864328000287148420425744246473771866228553859236754808564230828431996824172171092759883093595531129107203947871639029160673555319140310901241071221510353376996321590038674550797942167822320098363382973717811560969219935261018003735991235001762687898756365867889928819171369289831584399896882112671512848193065630108271165573095963458465476120206547491163414394474586150156121293219818144060989805123852756601242132367990760484026532169574629947930839088022517910658400317508554157026693303793073781620497889128016806009629764400909067061956639079180645386062858012569601045479164025077945759798171558937631620027027297973865925726538801564926060476824285758408618304847389037432604731178331751792926570471281996595653283316969266649542653234828279987013456153266901247884373272447282376004671141798923859269344350454583845209350347143690961954060250530202318202525376630524358954984904081475524243094785658959042865873536976651264765992195525145787132605920526422256464533241358195312035683071607950168900998984997022011372690108983825855589530072802597664818352856227272349931173022103265295853931876011330563551562053147176246253264949996265976283110441471227168332996841348968406477467438683385177294739524656768492098010171421780722449237577658148373070256469260324934442967005375963638471765111038491696062362802847719578899639347078717984159986069030100962595777258818011768916858485514101526998908257028249528093081895478501727024118150684791626232710742588880941269105682024633452113698051462646869706759059888912542446791362643606440871745014082373603775679616993805357812491856667620207975106630260974640441966143503295012479043588200594908512391985558541099286384734872950232388287505130969114872601723135221198610895953175727010274988888370228457181542155417319220996089523395031322968029429181809315118812128669990922382791632835781540926568837352423324889280828980367477807009638958754632966763924885788906579951897792949373898137427617160690576295374579682593425579097749779617791596125164896829736972582331017293815685616304383890135128827684017058297806979607739352225315145000396336317831600617259212203502230171058295040688079374789101324963191584489122121346563146891632850428892550147632397210563831631736136397228304308291735473143670236665189065270210994980208891568715253556473561624947170369588898132548258267499844875654498509356149257676391307134570059503194008806215762256903918484088355702684131090025187723106294063678920450892795245693319126253298204199197826698411281674540189831793277769284028680680988061523758121281328560259864324304691806397154769100534966142964414053126625014131737533284031184737843219259171858344528847814746771369418035044747410403570985314716413781212149602515132958073307587979688640625983666852401114158310105313363416263950058968372471018996225169426760362356891457118827857349845850248795443972477889988838518463811056578372902371664086710342505157177700255074990621166654522041886847172573305239178732770342066988973205899197570144789530047797754735003555837419751807440042132277750586939072610666908008006159172587064137133559293063461649224449453668791330208216519759161884939151912969273545319388002610194335640700715837126015149305754565033336207375869717476382614541266083733541786406969058142751155768581351799973368164212474841068323968095569900483424404508526007051336435676812880618036552946184186533296322601244318624521652443243306998492136476934028283681948105015983157873979405028239063922363902724855495297631948596443136127542476992793832864023196022857146515049129415762080540517710067510742218343164142715400483387547965370585261428210233677989961447829807179687390283549756340714698631966218270471354080122815420426962890818690622955313881469246718316860378117050343729568182312034412878159537475780996449397691651051455481509629599981693889360722422753443310551472136301179267765135737373325350786184225772816669272432093801187890624425758259915122068201401143195809054992292786680611748488114829098100380516593689784218092842957723944080788117499052953133741240942965265598919449853560098056857193306795420404194980278219454782062361739965941060893046279223088121826165798741357107057173940526082304602284711142332580500278339061255396064558942725916083238951660646166737370978848011389570362185934616745847897920963289570778500097542802645730489446161106786030858584409982493039832847267909427426872529163715526178270433280656559244574285080639499701843165488897507537475815570584050288133261779119906023518842797487279281243098825647598479321415253042337448136534198631477663940256313727632511688258173607231827327323550110339197753866126794942781739701958351681059989588749595732723263546739213295262540040762757812386971954008746311318119973605075827152806255890781630650746250311126128617567019040374428007001520712107416489317683982010433685246455039247505048735248899887789036176982591832102506006017750652247414598276194791317032225448301993893352314890922907791575136117195916910350175865448292469130962451852266565873474822188853077370845714127410308394094172671126709556763331949681411803469795439595913874416484361034177700195222731228568329565848048471303753932398524983103809125233794744729320843091989998991463121576177168016676455357508533043693567790534422658115410846068295006964098565467259306231409006835396438345697482706077726660781268647115477977345250673592053633413273688152379063787459238600958326705808346973886409165907761242319964030773439783706937820397713499565603816583784146490367518170367749215912446251268340344354595969524097912572192176246536619323580544394087732097994969949466893368567732731864670198570185232500103213092447934408887134403998649123673361647053479860705152752824985279891105798089367099410807890761248889195104527334911603451878701563407444750559776087662273346631914150786573996773275231572521717953036817153713375186391647460107934896276867447312544182766704509986590835183396534601156816456289291100447306621873429138392706020970705116950650529794333258768097149613685319475410850577110659299350332052640742426551573452311033034566723677675305804092662664720069089105907807949127819936317983912177316885623219254625124575289927828023519201877804423793620089799034748640593136286167701444234488034146125610809403931049160088908925674884619244466233167272485169092694585820308299120481775691401803006521374550393647651354409508322599574749637135715219359647898842031487738270846055215685629349601635786289752049583219312824322208355454802430828456313929902361651540502244102866924850204214507671169717939364941278065726195824084487783587867866550564698459288218449600736064769715148405646375566450532986104364632993359168136300738197447138346865863192243571897746163937989900011562687719446741683672449091999690914171229752183742010147639688317751528248598974667922834804184711497191421384478235811504119297986314895748743417462817803081376260201221709607405220028979431586722596259015606818625172522475128469018029551555401706976510324530510896948931996682282600141632939707632872765146858603745447954787007117287864924269275961760694538163777482576416289261436275787509063354524161072116587040269569729159761420721226302595390794929191531976339750384778848992448596064456755771262446558381942139901405567434726764757968104796020210039136635640466846356531316183393223584128792885771017835028200980077586879010119025801527412038255027906718076505144372477662481495321419696855302574102858426663444989731280297477336350240665743706760238822054640078478992521509929835263230235782666173123686447110233542872812620426708362465517450849904036651949667115211519467465536942545487589871731613275514309755818456471467462358291837265708958177190943262181485232458805695934927006254754260743603329881813690080737397630174935803553635911406215383188993230881774166598350702241106504488821426759300409485151842488436719788674838368493625573911311905446630236947594109864393253825712747195686019525814157859956229206106854014756989464111716056162665818044058478242111314022325486910841230826328013829931769079942968519026061709778276861780346158200047853188251704937694848660290627875063929101976078919327372847242142715430217598719513850337171897050358507518914989100673792698372720393780454356877494051648514002384741605852931579379973645498869801923805488583983278563949489053794686174407206417588458465599008066226337232613637815047649100575668553905813545538233794114141497250798819370049057935658269910914558447568314714494286456631792572952243008771141480481621194379127984672546683208830366971373106039600687876171658697956686950402796151942005817663975278549778957071009327770593707976653596401562937977801220294354481131815843063856522885613174228273370738824799863637097573326071907165024446552228253068368000370202982315261177309830422445758375001409092721337419322870924585827736971977594355708377201405158182336782028196675809212669789475316585170624703170922174543886378164780084130162793611479909772485563566852077970993936061926995964783813348335193500893244996923114036610075405821225524891802450771793193446327149467278117766412554274922486060634110664971936642676086914247882507742020713551180210175582759305553807773989938668031921893747231162881472762559365788696291498695281246158334740413425171290964523511707015989145900427872942918094735302510549529711220655125460722700373774963266291321967011251329433104608278187788648038753104142099676032262573977217585551658420195223268774955221608200912891642931675907008841260478378341173409636667911860642781546831333953742803934757923145608109234739750463425836867307305583485851829061974563317221879914408993275423840722298165937020411967943909220899340214614159822362370139765939374770822442199036638933852952324047332914967085350220158688038016470592038674771815089393634347332503580923566849371825905854849619454630122851540413916607982319042165726564732403093704076490845955160155611487269817819944229461493167329199657435179038036031721858595622544951645648990311357237114338854757398377898937246414880735568723015170066733227167025133126053304358413781820212563519155181496949213073616793571005854854102936592789963862000658474459307869179272260196361718832947978529703705709468430240549147175017198161356560880925273395921971159143701621008707812642575086033672547578868823879818578310423795815649302627826714207240513466710539377611968150369209102451928728373618475786623840688121035765160173552358019925822618201629640119365966925906416372173560560763769933462982512449459195311781105779601460104230836870752554648475953398417754800675059835828686412864776256077036289832421691707063417643973099406879857846768695169424487520680067829020218393813760890395644675316263750532998507068042082241326707189374576850337396241879839905950224986011644072148657791449830502818749609481499144410871889810959220572246442723664846951525578835105967801733084849991365242163356759307313024528905885158367784508102475083746482899375013979461437577689089791699500632270614893258168684385097481961123891086556233026180775926073284447535480334970502048713575459731460251137948573372786450851468053266370599375177118317006451380536714851221166671230725250263557359720160223903421144184252890636426762768202804606378067311908960377587943959497877668948119137799199252124900547957912615110846592911616642659535713294128658616232267735035871983644385573245544125095213935027440604502353527638282348923024905697831222108303548038275138764788242910917855176983162328786385816082830206757290967078757219967444374330792453119463919162303809321432976023965919287795719369504699043945804887076879666609782889907773961576221633029197217589091775915793587426424664200655393887613453436959064753003402707284570189641772107445617558434469018039858064792403710834289963440399770940714281508419918454563759913479276312564260677956698827277055775623516738967738701483926220707227342187999124256547807226105898222020414059256538035618829976651024055258760271760920544084522357194288039842355194768152234207866613485107108237309891525436312365971952152849847288563829617844251731332267436554616563856549482330078951092557302018404732780929527733307391315090541423678201462097789332449742455728851220736758173741827391419388161134354897963623332476415693714136247950872502874164584823442776601094132059256885796666626047331682431295331287110810064933744654202691335600512380529098241953958613842228951854632743476016641125797498715238766470761012862257672116195203980709304820367829925728592473521151693977395785044205996627936508606326468776564113117136816619900666699161518405640655877496104736616884826263208159097055075423400137596031434065654165448830765280856130407811462221454823701904249517213485439806418719064340001679601861015360778088356819125223986270576380190777470996770394605161596658807697506832383154080954780955041527178085310654739873302309410734020760274436472546411900926390204096738828191065878707260769478119297511225058155769067907268599732208822359232174706879108810585142864647058928346884262496636351680839863164048428801359868009791877815811814885599434242859743349082302266757449769875702386457881790209810445828573992792534737708943704712656267160656972144392008810576519105563254027112750972844316035835807556157886218972267038326532408357285573401706682663656710553303985398342877665524222558472785642358769153198169293410739960435133673472193329596616952491028563620905453664924904405859574355603568651903626590057710956445595695119296654140082809537789448082555678866865137275057471533770947668278747367796826898845246429811610558947093552539843736968751160256387239671331028121423220335080710389096044237365677258863590255884196572982333216472261207241894627383252450937469661805806225884717719016088586595326128729952917625056583809388372520016890592855528234844631999076911796832931991052672715196527614472156538913160335027853817061618625184072744613051975549699033021114068390263842458117604797194431505857805024435576336956166188309232552940607809406100357691540379866949385804817984192529398065416684499504392607865715874089003839826412611645994943123345107818109523072822720646376426492258694485002717329516494765541683480125629544313117041021450635227127649505072866941010210892339371409378105171888645080848644236579255032778744284636666392511724267927766582223714602463758886964150232634834934109117479708402011890111328303289003990619009485156606999994384137076694991738072240983280655008960065365407420332776866847228695675081055144770795660882076782733155533894759460178224571431306541180384829880495612146518717747055270273191010618220225015139643109260020159396528503914820720564231502950224814320403239379571757372149803999823042376278962120698515665954554255706104494981807921619032276567109521718223761802667940833062807839476238550041773133983677255553975389713876028183611677545028804016733558285369998223670805533625175479273140884793306278887858083553492489225401443041825647724003236999597885426758026913818114578563507232591156333164642594877551667162401271859608927597487030291377562299649755603311529865409265584327502469807020899129614117669293191169998459264968477465798708973224735273778228137211229722117246478900259977185543688403772922469877777376090486873183288522132961386344896293744786389841194712341756470801531815077164259493958525006586046260885690548004982261826082373432666831200378885265723620268889467680885165019858858301824104811130257295587009149500155367916393655620229026644478122829266308308940559290061533792808684175032560866470988384686465803383738695453060706445463600118563471716122164428300642468387198187890509720346773760291169166769210173780341308144220769967813299236628508124423070182093511011470481631615763117597411813604807652036725058497854603950549362361737482421752150175601969020004988645879248923071213863422215815053118887652756283625985951030247916694677948460503792573496967326591913423431669773873101208014904164322498177121732489331011502836642746293370263272879719465356243301072896265378011178364167431890625854981301965414644502455640996604034286951669553944010063214844732056210298182804291236458608434725569891900085530945643252905238930992892863862684192761759108889990876755609677034717963751681383554319818969347832431882733936590048163936260836552209942591320105702947983447066997663705413245270577068997888444599559680220595809854328150007961748396765570074713147744084247305055101294227576077115757392341450963417904036771103934865553123871871047415749495686785901284405235135127878925211146582368078014274292147131616880942719555029638673476684548917317360580379140755559947745959792072152850407634640997381809220647202334067733618356879658217732312127116319605383181981148480829469914914196543397524086425426904299067425695318822645678778327638036599546414026665351386662832776454101602701224115095095511114335260885695592309345554373434520009736297391005609213836298957839486283452541039914497735124507045568151130839503513211060267567374148642725495096922955834475324135788144782364908767335095809630967494103689711667448063187351645174060203537092433933390426415300076118144405236524888568302221815963226432977729895573860993566135304305306774727678717337993705646465975003986466941920609747443319176910754174868182366006132707429657810437261588976739268512636418990621570714612015241227415384181481169710433432256841355088097305474725367883688252217588501073470352069294244823226016507340448317119637547267721765878521943310080483217319317708483224571072172446910243295557285530997387887142474521004254854646268919892828218645357077876607112525495894986252131348924591532316929157266366834300726605620515386705351461804355639633949069195935479277110106260128065820610574444830217831862976537668039489762798129744672826135196026399001809609065660767682711757230734487737314267027037143855980998025254726067361290741207804665220134831342188992887135145414220958928401249062077973403873784935663920470734794206792303246894684743920956274651687012025599884901505529504684360602679915970273316452546802752040287347064212250239239518074270687641322836303509355200565434857850860333726683238244383060779769811836483552271474433635941568591705539089582311097944395882918101971791219231267729326425913898118741028572533167157055954787413822600257700890682777299566633821364325145715139776882235454509798871569513799753332734275331550162442264783878405541157088238474220568877800749328844572174810559281379255924637174229700790698388806641768810827693227889121588892222700743880575389691627287873514611543291725396215287079964844577681909421867423578089148556229347144267581130634908726554133348118447419070377837910891120119422554951944824758594688311063970170980587401364458814169194670943638069443566402655542030586934772701207755495517838001804822690687743177140771369900781987974784481234369704214787226833153215533543752614201396539369128131710653462324967812769824159083370135620663309578285841383207989221063182012853408438070085879912267206648303700980726200300992548492891116075068424633600480383675393739662102789850796883737701282059100177895131977681019354742252334170725857759829920413570547239672432837902066403697239220388699445051089742013233350786100855447912021651327983351226114651415342438856855619551821714287622394364146401951073379418218991255650986978328286106434595028962387560956449374400716599901406039385610563266915474432363238664398705963069659553322184458210020451767677679679167231134982509435443477546935542280579453335847440386636366715294119439657525260351643690976956934782155956424369988300031424842891609028124215772037254248768072365241496575843871689492230610060862853816889328421759480941994137303741281152251774277496429828507943390533239498375845776665134025082200554385630162774462154228468672798009170250547252838223926244591344785731137393741422683927049030975374097158229764128858037511510097769283697542214063525724739870009653952741804210829697339933336251134746596493343018764476210314845142754047516448827962567900519582038256086393038399369966382395854505205788448636641466131856109467319363884270473471409936715936675754059703882583297356140851604210048769518734937085494914852080508796929127542593983338056202437278318328038067954382148987035715507940703099943155622473385542717127640593883246432451103409733157699543340722211144252564750465378399717855675783656031408408093942421762933537337011917743041310432749190025662112818634764371614169391621322074701355043890571379283059229903799735011744614115003745273604584951924893336182359509725987899072014314652565243297679053376968314880940428231364552811925339423406061631622729488139962042462068434640350024210725404041947096861284286016947595014383797255658827806548668956803385498745003587536349674736937984611758015660122871044912038007089426778724540472645568168325033882767333325687494493155945109727776869445076169547695633873963506089167602209458421426714581959317385362726112392029589684501610011329659996161817863782584479102138604911757330959548184405934376294712419483577737644748177931844356725020598714643393142988521456558377875854719265540399360852897513118756311650241237253363694959081335763638701574291071309548710819200089460927418408255342469772866894645236515322532053777183732664149153249348653163116621762826101835475496383246701464598563086068991559007673567416086182503639901507561530029838360025345255406369140720619871797151416926330028113827599165458828159800614315154508178055002370079818004975511257329267193826166923651096025421857646763886050227028265820627032003863851762277738946663655564900486412212256796289313328543888919587223143824158266409300350453854548217934588279122977122602462713147941957500117675706424499712182531203138081683663401358780237838859177027599039734832178205001077405369854325930008245339064534149470806998020794907019225161954827969025008174650647390974218961766207538647993853424967831112830957660051534103750121348110613764068535642991861069614389444248268580179732669207482844977301437632505794263211386644314263505359320346933676594119827852874418964117955822901843539781870532889853918876996961515340750289866094801076021585841635789347960060185185287813599465968385722388014007408868068684869560044156852425664781130384663459524584780169446422312240696219002824353490679479114550156432897011328430156194571295702248109279611701138376528441825011607116626300445779613999466027634446310626225905491184805078291400653890955009052976880076319044083413044428208563293500234439251746295933626946035483176185875646001353011530375456933002146915760738095000817446202169816105911621997828554222624537439961650082652904648992892534035101008703102422949949805917387264368707220855494112720248992571699965114540392084566745310768370805044150324612400381605247938397082572365931684737635908726472328051072666515287164783680545421031459615561261354992049230171405277449504743059711978662136672941371861212842552121383771357815841869222317430662146962409725284001163316211687390136653708869633288632821334871828885008318248296476119656141601073251748353723827195712666548179341391306556051637852640323802138652712534087437221438300928748170289468879193347706467704439736668842904289572251404171623270053192905849963909541552069045890415803246589769176883667090191513539011164652894820480280699420658582831295821297440237273840817106541898530448641993395739353355662650525542886497917513054332031693833327979158341958902284416893092207527253802910414584955997586616831661814334727530995717126920480596755453247262178025122843782102504974821974014288093540820832909133445079326904347903781332153103467286241513676402739021048050676386445740412355482122898344828082097195198655650554136705919932031176242108541807793036838729650225589856094690322874806666893878644728731733578785411580064961997322264540733609582794172249378665100867021287865450492495550316802082250565189528209546345159804815107467948631548434629485638458749840013610126556211335904525753363199425490038422228373659586944633713039070960913838148423066676170866823952989407368524076349523002180465732755762822633754787830424933049443625191199160785777197229911100897387914170486323538675920343247472574916580139338294476086325666382155191707160812088648390017144353852272768584738992558564244264993960329734601367800782541689791873292023933684223214571635279009830850451087099872893225518012029492476787113874960632043496467734740108422556573160883332954984184685453346169867291880738755633064082100182214117926958331621491329537829443167983397031998613524258871185724930101300738406615925346521713639075780365236709480317090651598681833197633039531463441566645193618326337311219321440690546718314793133875688903449787892500406503342394386466719635195859646845504418622000809952386478714376673283542272355044939947173985410006804539993786087770968835773124238362808672478557704854823882488083791909833257170938548306186777948606633821125994476830598620741880948367660608159049335233362526444582059880014684824718661227568291111999612016290746034355967061777235682430140179097568901659978504723703547372495819257183854660826998936419679984301765300421112621432818357308596540547682386820966539089487392931376793130388164630205945536356312887509009294171917348616526891153410055456624871162911905243495967353487483552615388365075636150293982478189403440781115928435443032900721951501125135394138767486999496735381229547839331117471919669078487410169665443771537899385132919696841867311868923405442689674958920475658987300898373008249767459008458642518845556528861076980639234119098326343972044436974752216576322858774314798539329766967797222951363527522822104253286342943770035744957196130773529851858939731227182324660434162292701058030586462047505069112337599310335596387650732378586669177298793696228504450161370990960508318461024799857179127325757849750399221196163451972973306425723391930929967502308627710402071158810186794021447808538682658062501602717696006356573749374145005900998362532483060431481562614291891344697161205213811527163051445857191373133041605704345837111725675712246528006455033125938157491574521822948009031458740285876153242859210687589873761428379352578021378207643145751638324196604873949962550776690824189361449897336594236704940415360957607527069067918356750422425871211133458060804323002302014798503224091282171847027675453597723387772550056894195399350206119222276525907644803726296747606164758414988522726941698764819341542979048903017519605615606553309100372170739520319507703484777302921278915406656010206534634568737773779333388107279779050219893416125556524226892291340286772337818164916865851569674750429689335857727405386139110093748419974064685831428416171277303104326934823789882166899174602080739209293970874495143056263304112829790983622524560758736051441856522893196984723652716325546043705261482603458081031665266307229146634655293071535470644222186939106978791786886179785639293710071589137826672170608562725880188274307482132234449588075443928863521519144709024511505808282760655285180732167927028499799922916626209317338333710788784726143870816949530943927518646459254743089875735553246172722053584084464819119263960607368297662258471046252225349641434497232345063376862790436593319209805353829221582775479967865515612202814068663098432276700230541606664756124147673097862157652694614616127966873412183866794883590766322812975581670332304307161179385774770509835660466295745615427646133065365011788322530961503944197214981371316930924445393954315977715025263208474359010137443554397942765596580387256930743761902596161160907151908671325717835905067794490477214058434463973834202576826579801756830988449540834137344553506004441747795515370296109596550930250296838486607375956710903723040577291083605932465483508170589250250290092437409036902682483664082149136800175581385226346266634735885851163887299972448196393951903799817526537812167708766736428456586519684324773222817886900176358504719812305210984165451606622618789097333715990944431397488842619441162452071553274274721887132568547934081769768658975803848995512177503070845469471478730103433223673289487911189482570158119610021419012137242901922697748866548017707341933023287862366011070771011990507080524998556824030506902611711846360299420415885372067219386898705781475186332195943461758171598433879182593717123484090157062948413853521916891265885232451423903692168819055827175087742617978895787988078676357523459925033986194700255204652393090627286468896185502289337963915193782926069157479798401688801829453487294062844010930410150614964194080705780022591114797716968587861879554094878546299806852215494617458445056292592908498525928838928753743379519226151238944177966462471242008634128990695864356547150250204909866269674036973198139533557159051991044999734962628395998372312757909333832314012833606744959295171820287520996397327804959363920471452636850676671002067104258874365398503243449761671156198648589353842110071048021737050904626296804779156025062786766327796930541756557494533099833543087340360613996719039439418367515689277630618103452313042808491916136100326149722758101385236329098098538093886922463787100274537574916961006384509603306754952661946373712336284896310255101521606243314147145524963480731714305958776854317672518141220476396997827133377671291088124406634690845863647515955386674791361845243027829020287973317047693672976166380791555979472255317472932089254425304424159197831987079149387904011760842147493162466792323652189960774382910484611681410447223967139711569731031511421712000882433570669357022340062931558926235644810487905982415019815630948033912931144684282542152892275130766015274234446527474828468229896123133269976713973675318995893166934126335311452476800348398359322827768312612674487903357225271400111478372406873760490865832386223767198641391415738947152890491182418879645107805758973597051971830419768769289011577844407033973126878070032123541324757822216147572330283646040314766381130560855854011275949332220857737984500479717626741961998128354988383430064974965083625723236375875038585868428340222051360082645348904469178844625235070452939292243500922224187388355285596356524734311401333751194632580347342343302931116098197701857165694374421980480086493423720014972855780254040372837722400304429623750857544983219890673395433779133158010788538380545958389679326164097373738120347360990248230081247736595737875535893278855147187448843605813620516053007683484232343494688850256824895375028013732143200562767599378234371080467652952980146273254378463133795387076908726044039928598696796632532551494679606959561879466698120134446917506802783795750192314157486703860091569633913463977509591983061193515391598776891356167773073821145099714978950564747136408649650653287414987075583973352675616642369094276221434372457096739472863386179338230933333453669693300118922372396292754361370217102829732569064268620584233030784337701236191982923989218968008559367528885955579594203442169443603067221252328959169681780384324555546999129941468995072810270862320355807305125804297881656388658311011736915060699544052686611997257992667001222495913671766380782101652166191902690191107756159497584141088558270753263763132994732147779767756887368822372797975821296489339265845094849488847952847807547326965835426877222086560028230576471142013629846069354197572749472653638586139993778198979779482402418106959410049509373105973089933059384134689247546267195857105334890476864795269719108992195513622765188488016579291955440614995271090540143325569492485028294232036985785907792007769281907380971929305651068300341351675473539954613119615733524228662610431158261613008795960471040446165613294554255722326171762923573837599016541304880080359721030537431635232691327531240658464197065023058668828220883580674255586301319430996426154967491846197689637958201006750945641456796483407952174586726119556333212591941679911082886685063419853774608470638332265187676438297758984932566771579078203791698234416561613472481990111127352067104226787214542716029948201431785373199963057374527136564394386046673657502646598172730931445448667382756537095150047366915429876733558940609421323979723357817164122838028766377628618890660525856664307708076445531262142657573171925250522146312737679224632420071240298439671330662030613458320712380552254077178618173603144171598515707131932132698924491688302484987187895388972224211161774060401544687247188843547059976589599875111651864624155138692695631186995079554609538405974461179570130278642667040219072950047660714526405649364350358094069024998898795071925506663058382145131973599750045828178104346320601242402901104782009643990221201512697673244192127590857414302352394728897311428335932745726667521860430241856767515678881204928958622794174868427630558524335928144869662876413054547598036104702015601901269553075831639522857601700093034986075578489724573981580407785683196746979956028841213345092132605273253858322613901162147208078094739536813120293920574286721787418667523510293682607182285028544810319630935132058569110096402021146678852633080531048367063087162195374857669776059967217282940764769132246441354390177679520294363674486332081803831172987308513393202165029317827702546317286361065597990667062966352345708426683986840754971527577500390910554174267167393973326755873789285032494877874702876897752861083241009094149956369943883997189715898950948406211139085164269361823714759485718421444357818495478242831297157727273237726831850287443399922173973322319075383033403100849707370930791512370010703161013488195134570361979049071168443858214428102852843119370075854535376668788154786381979286435981045310472095670446239362430307809521455220236523821479299133770356663889190617631497732573006718393716782712147765110330692653179365859961052114703756739016627404110703092900719668889041558756297728980377300717832403684594658753358269350970588941163358582985196341611711528951167530056894451277742250969823192032663199039571908909084920348584529198682414986662507356753975837616896127958247079360234808390172597970893082926088424165006604674158371297292967741681730989011260780558503614050374323077673112336284468276783362529340117069178316914414518112739282280307051138473104070115387967618445324056502239442270012591736225667988792788584744300048375780449227536376077352024410451382429141611522322810522004144786097091830211076387176733836697071509089981097397710499133675079515292741041675852674110803999622208967258018530168209111894168493934714669961087729710953703840252258347881169580339555911695073368519387302858894599985214059241323745778674513441586147710904556100027749376267477516885821383188592729370638777965392924806247003706875654466898627017761925248713037739913465294297653693170086995398840429448367509738297479758972173006395439145645628871964124265852484126729005958252151275201456653050962405390901728844658416089241608806851982796054728138964283258475562186828674112286989025650572149579491832680987552192794497431645925772385939412177887229179304251152310452540318825154024631070803452991721842461657844399627701134161236680500937369843442814213851618160920838898682474132222977923240248897327271367332729172218209737468022384218635017720350818970869754811988655777392373432205153587213688515492817304912070188091208721016896387198244980212764181207561385075158392134939899498387420137347984635117277855525352999032364414379353689855764421074909169590405313495268154653566923889655619713266129535772376970445744479801471295774612647728205562602990963112877061606304829371014578599139266531250562533756086985629508947755466705346970057600733895845537893093939134312898217109101928219321417446346095634527755509279947116398794498575929789497681446687205146509884263968493650943852750271649041304468251097452119969235712301975763011441723758823400792853717306648333514274202006527616864065260739885298866369759133845697395474689581464312377223647915202570573201008500865135383648943612468145496367784523558897283885842565699885655777703985446518937077771869718561891037935510409301882785456464848454598479194590424450659915714863347149705411117227327950498904546649085930719154503206870836734296865087328018974043030010422328058547269759695568915728287205447682958322143249265273841439048665588992523990549704260933369367467633805412467577312028407578752153720363139294269428573369126552364764923613757009673229380792860163579586218087880043709933299855366514581753024102595950973752135617115677270836970749081442121230190977121619268009078036039888371571468551634523752919603946498453728655305930165787287248652108953973406324884644701180433577590238779592518664846851442911041146299194644189083367502981347111319410201423162895084548063432217479916183550773636592221433802222342172237241618267147573317099982553591719458164193049694661072314492397096041204189094459488494960580490033281476885607229069013929669773896689173053483068984738379360691795499618844200980075781488675263578757397244967710957826687925569151119679204709914810137458118017599753565492327178371704729448635126705718125138221351139091209072846006687586162398917884936799582153247686778557360080697115574673521111452165622463602488264382851489616592391173670792135344729899204355043227778396424175970597759999587356488927961779882626587879410316686991500603655012039266622572925326127493221215295741798889795984711888590862205666063043726189896017706232341578422014206735457221175094487812298902926829619597554530266700467583315335718210151662371828300357334760304129255343794897114990234580474200997773511905549599635954003159417405384293126334066148284263886626084622066041775246785015035215974172489032541732291307229649254198543885079107377403885149075819566574628024558986030655615659153557077304874638901505296107420512308904294148091091793974601777255198414570496659502832937075539961241517840726110159837338499061238960595789720605101071148960766111292634255603373119277153694126498301864676799432601573689758655807851368998999299202402839255455629763312560846277114741803209456662731991393100057626120328645818795617849611548036249865830213717437843147296512321857069385898411552457086422156220975791611003125644572355964949142462100577623986599537772574065633732323951566998056702535519473601167133665995731196639535895425504124510030348906670809487810186698522415255522497877950113115763221926344366631653692878878778335120709563116662116599407384432490615961698008067883326403577749444780744644394080233165382513836913688169341823931846134574658040545710794661484885669423617569303746115709517845273967495945568400375375496122880070917350981396397325810503859801344976599619521386296195007235878550188638509088983082459880588805167870603446141702229975785950559932556690973867177724234697045815975628562526065926218439426855978830986668270954598475653512912796626023991538564931351160284933183051967506535235835839614337298814022578093579056807114601958567163646498662618694357785255194246538918471231065633946550044058448099246653829978363549640959728923265905248877983197387230035301634053923701189022678838789961179146087844828771300848099672562619835631710359146384762540000498692362311058186237909259790950288852258330710608758508243111441227649641756849444458064639458375684854216391177106601946973367967230561132057591031186261373903193514330676080123890946606157997092711858035935147997298909914329719902725940152820740394396250547977205067757132189245658899793114427480019032397073803019218990154086780278813001724475229543876044606165308471693627201058529741977742706486277021506359649174575285192034584632166431708557308466496033443830245334965672525026871720834530774100466486565382744960348553481026016337170894006436158997533839328507641458240668661396683657167928528891354325336846680797168432273744234176010910830737345002150619667582131625998545187406130263144767667424315704539526189273334573822429838065771391307308492272110535354186105675409399030367951492491315048361178271614625984711203918356248635770903453940569943556756631626392098715832062798173248249299913541550220044794082207849943343610051053259464903053396661463557958352748665717898969461734719675532890587917320811439901770394292193010572524693360517151700823438092114186172371118475609921830804242091600326680923522816027326181098519807640780735607303736548354198688037969208759210248602895684186279620632249642554172276296589287992258376405124428819767839909458584319169266958334536759467856895970524571792925202760158948375014123415393795022490627440095163172846219701492356319627935528633738939262987571141334921062882916701177718680977835601586629449486618436053601447987418276586314454743198846838243341704528666008313190565797279449189407252637112055346528214814813845870884290123713794287537045732173251718497192011902466145277681840672535494678915753730504644089848857518329183021523706858235473002505813832537528753402533768003588631721286453519250159543544756437331426591862757349173069862094077559378434857462418020647319658424215571982175895705955870091506587017594104027150003191074438381419990544858919164106383410900233427667841979587072336857404405944797316073085395969086203828542737092039044759599928454262065263184621789958527267000633320603364905759988042396557402510562566597135960736335479957237532649250316358301323346950012435763316118563566382539680727412245133052619820680498832060032196648471665002629060470389621434775042933722935806553185141928385655641539486170506901553636455652474283758967682076085081883599813710483181585979901873549457174353583055385541890546918436034762556339296376754905543107509878831080747373051653179940019446437705337901338233219454654162454859461830348016194351025803458717232672504443621420140609760964286100113927189852708925345842620882760473244037516943296301327929758483646455708403851283310222542386421143509848970250710126411970196172317951051627476511434090860135858041680078648287765838365761932135739314217676108383333774103517946318361887672410281840261447559091556972735369728535039996319112352681888591656739748491550065962035614419364972766138977804841196606366169737148900106807975804632894500450542852463414984697352743021142229548983770851520789308212954109235565863595489425743594003744230447208137330763715552459619317853309338994067544915179864018103186850975028014495449718385955664364124861929030598134878285404492260409018549547655054938392543384549861898026398209152656461937146088891954094194059163567163714603177335341688879624577016238478226833284292152209215836272664114162212835725602744884568568068041995492525030692889832937986799853864503936532638110565334741960215765424002862025841402294980859743632261230329135366090840735424501051980203286766051731955326113524246017977753511087870480016449032164950300858938089941053091082461577261920667871100611346122076201465381162659127299083696292777706542861147294423185187548082662980663848339359401534775123587518486293807540808013076623938849910373562597105859091066134229852917712523157872474313043020786676099601538164228188374814140025837772414993053784781957015205556766121673923133350857265856676379237636859364986978334713456957683984465501742849908636740856400424149835193187965031180024366816023199715501133302273989103886355953100929358585519565806924207365407141643881089534572572475238123956462140877904613632419564033256554450967327151388268726883718012558296286173263659283905447139065316584192693777108446469572807391416160867608652718950580117844157410863343823222316852836881934854110349004727131362637317369523417747706447948288926265764458798703801833312457098235765650199378758494337559613300853950765311282806701212060571089266604108618073869219181269153207100840958760391710316793398637216221804852660643609361256431288909692285748280421431718475922680625994232007829496915936915570060617744982849283782472540473998306855507120892431854114377066134664565513281099320455845543555466953555625333602310829467172132977773318394335444254014845957856113326688796893311425713716229710811216527912811293075409768988052862817945565647167789971714550863226568373407710076869302501235185817609679413597894213887520866803321939302968420150113241680999000358564364298692223321913670188061683641087998551855793870927272760503629467044508307090101773763633874367483695389735905757014032042117110972282996425448600106505915946293487133618166201716616412451705602835781162347440135624089447147825345151740756702501214081212064962804289121117449318176942778362154795074997535919630042591833320127649668916632336524580813047728806399013412382891437540013224305296727931846544065364105305836908718135561768966654514460836498739824970364179650864597725477591025253123899439987297740838486385906865969775955738535617527238469855657758330946630922624582161864271118925561796035380677795521920106518815093193804647646293298304910013787715662362654106648369152473066585090289444854601889467102600987544514728913621020365218958223575895992562518935695270367623072099280150226379999152546335440531806565621658283044530602216467436537810835630292047687195881826681163520912563921981779928430964849106769822664693609725756701313640800579032237796881989769204026010140319934329166187345895838973146041996778545184253530957711184108888553923546096534047864331476673647258258039884164249720853298617880880682400898616624685884681668534048271102219829398191878457325417873289473415816798069951515636232972015153041763986697505496109363021212121831118137434899420100081595724389122106442097571340619577515037183482465202820447698445697086330003292181419526676345321357735073318495509919460319042010639721402351767014413478539464831504988427889151228341171391499291732304764230656218370096192312550475072892264834555990571594388951213116337752027919465308175691577914314593650747846444573093640784167059948624324005663464013229488894357597343882205137168518796250676313080682779590871391967282624150845302923311073123459558541500935391460596158291667664827597107290156323345840357007450690206270545285166654124654598948127411762510827346989340207715903708760607210441671179448804732374311614106057703529890650361231727982202356509695517827842094280857773541965258332887603357940098891258332351366387139399070543305061137742233965558711245225565638461449552114545524200989132935736868270124329800524901656886763327636829394787224837847409895817806780153029881821937610786056928580328428451033140556784526725735510814356914068212800218254243849289425340672229771124629055275123335323294202718441742383160106060705686418411828673399598820575764931909818990712540357668283107544143373589592197195239688445748616094539080827319661195233806850216522845235558329444973138545959130264706296380290882575766198760102450469802488438989903562367585454161040699913539598430253791873148925707289628356390926149517114844773719394061618012775726788236575745169584065549451077635042375819555526947613051090856260871395866310634908685168597711664229066000370999787963253505676233185790289791104843719723825911329727099786818927973569336312649837129220888302895900702471610157428718901329031332037386315052605657671197598877004618752895646000123985528854884856494035325125083279434251290606976428554731280283475093079725097939221028982958188314119385146215341436558277699802008318946676640675970619869093071640817964004478360774020929531218826983170081868480662050739574071496670176840137727576695963398482282670361685122216681303449919682966695059797139007254382495434143074006559146170642484500608655557450210443941590899121872153045843205528200448902753494981588965865057804084259194756899449545114660932194566644753909141718991150434521394986358993012252164283158235070956193262133597230227000195685322070889335008051370057441319530048457657686360661031675175648326713416158688224695963217198783898379041992322819047586091106166026080016953385686779493712248098591638326997378662547796407129667398134920431615518223314609926946376817754262281012679294538760095595618066932440477003473687602052920941773942160573542137333964952729222598064972075225814800399641221039540844390968754421682832220844373313947911301229929484463875204137964109763379454785822954163073015462163558817510641837690888691316458514520350033635833388314768318657409526435856532192330265145653823564234096780637730081736582339387329920366527494557525640390186425881489540111063289373863877364022376969769604253378369579789413104933574896635016992569163320869910807864228482536103729124877325221676674549114825652258375195399119013501860212138750976966306115319282863560078932944650773122188782593000182273689456499441116652432193143890833022598611363047620991620125978338430226233317788635053625525665005814201059539451982826592618859923702397487940440887388623875429662919894212931300103039611973086327168698243145369687500383244303262017387351182101291090330813861772817388702398433371606409699616445695185366925792864744932224852345310346283155259084652509063474435255242568005778463723676955542684032918659946389065416551157742694286996072639293888046858994261721508537110019852651641557981561325664878243719001375352224711858047826652444353722410758175085893332779520714568788931556413054754374130692781042735799203285114465884920477178761707044554936344998565046335680299084206730244233614758887300597470459519243402425500413143228399570611546092114268470503382934472485962135047272971679442618151529316237532307123827989087207511814783649771718087087040171400424553372169893549787325986687675803273872193506165882596287736876996348315803987278836117383622333787050169424968632298177554495960957205496233540484062969188349902597701086769460324661179269802735203043545386719134948637280854849250613133729994744935399617580108631366626726133969841896267919062830990004716203691158785593801370636912216473620873085673598168045690000459489488506281405945272238014521428309006039638982940885114686950244632342670516930224348429933013222743491819775303777582659815616291816580277482910223519018777671921002900367014309905872540499287398345404844291062302444788986856478123152871908127397989789934819494730728736210124362279987478689535130744432004949236309395360348520709843186512626008655042836587913095430258997758253820366088308670404533465576856568854881545570094104980207442857852906275277677907495779988709139494288508932745172371019476663971717514589903532896924635211694772929729638754478190959437484169645213943367125625391212032031987534331490772201706733139148945628980536482369950005550297225921060201285544187787065833037508897731476284365828492153645815730955826634354594826401272056097597131656580192205501951717635694947485410267639356952281761946863873502556213219553598029134982086732710208022544307886119117827968864161399671940277655943332623968230534826231977101117349334410551854151608649955807514690243684197550021749688924172488748016695594545284595970137915185854621981420010261576540048269922150914224708433279669870251376343392335590227466907377098675690069062707088629777177710939741848863263771304572386486380727316857260828776856346696090985033511498884353974564972209557823829190721719876661873942790044366579190315632551107726200093538121087500584348786692087609126019590291381632521006907776704277844134505810166871995520020484804205860000312114443913850820840030423949650835367519174516406052083679027547516220998853150687162399552012879417648172727095718911452408769824238548051191255733647243735223122713385694982936886312737854624637708008394196970211293907727206870179368078000097991657066837010521463462163408091845361537539541127984263563327832096378748516994307325339844488491885351996915099498123324013171951054071698886438915436199895810852690884102637602301041277542807740207196520519848504092248323070293047667383876022910110731004167561223300422280283010040859443910834141429390473861512128636280506401394618508201465250501655291805516090449724702711750575189534283097470915435502975638484368318157109440966234909536217778151762870215164734349176561916751462165865104297767713706707790064058997819820030465354118112173290180284545136282063832714314448172342846656386879740341605882985894271936629992718757019692221324125944158506598545483906604207362063831474109996273449039016006747064428220332473763522040615974053007983379687252991184436566219027744011936512374901856617975084518375160691703165209227904937217506109849793764616216500399094244491354692132048410664909172047575975080815609997616294119899472136396326594327399505997111119886420726624027089134950506723449849817682702036564577335375338343851142122398284398787935374365929005126190988715979796839258027556600619387764800725715991209251987935738278587701522572819504899670542612121681119097758191759998755807296734454272091586065892069710582147585261404969470676239743620204038942419867068154412707783249000711065281660984514751823095428952622289423053572330054712189573647042581742665499366530122117805337703789244518761559933310660847347009502572898697669017294699628122744092023767218032207019100163425435057793303528984956060032575883905088253214445652773442300426588083333591681678250829156744601793990674975592985936112810190177945734510272548283238350497089002474844226496511034005105239012179170803492676944999486085266484536135907533091182318903533978347833246670699003591017390865626257594681255294837869694986101842979966213056744488964717742945772263832815077433509041506923481986588494081243244754323120492050824689210383029068525825028339842754827453787707906659672898831216945083176913762017281282806678066236354936736381776562016481401207472312422004283325635826799385191944563926670491396835017894197911741675563754500682710282507668968208582716811788466501657451834796761700182235494874019027396600238437225927017078834720021481680179255091073098611437387071697027712053516160170830084674887586173193974841252465813487926272119459794185680406485808371284544535832290259864334138544006143351961236835791414734131794130241207764857082024343204429185899305357218439292064884789938968808189843417572437407178686894171588995565055700302885310281411409455779801693164559815635244907555686285453808834136744802443580309670104720311242232895663295978278122902268556564661504050814385718169402375717365644387830620954810036395277463704956103323794906984931831482554805798953736884841095650949743076528967046546486967824181510901782937837108984260528625034551822866815138580120906594289884992912150586434710663520216583927938999356861303421053908591670475530723113940228743776235240889249038102499970228527896628883114728164254293951293551360144270061572594697463420890413982838427575053951052164790024596275675931968863709767796409654181978636497129955426438214574282761885162053120083664755406649760250138908436345328069274675317438673939276551553749386809739850033317931479594679542635805156287438019063913909592184602440266248743282261518664151131154992865081606201720676753494172218068632648259237151999003241387847561849062513479906793628458249636988764689307844257645643239881922407674377624311740596531151796609943838979040546791595991668985827591440474150861224229322626077810103303075381629809992039845693325917924784653133982884574938878384927209598606774568286256154640189960977582497727879254392964385393279674353893276613563217223513479757506720049273898578742888217623056174170724340615569019554858419031845962305119231698867081406818459854296611640879667030389296794392287749673375690478618608276883213677125194567983114746975751921276635210783991000618582251111841461221365142928228895595125822637383244753575110977881885395752269622247526403095571253502028983403738723948332362057294003851492171102052282513753076503802477577188899763891136379292637571403327688543682700636987067262561056894322325872942037652536349630098304176881209629669275585810952387001057175861424216131390458427992394095603054020395714705098157848206480861639343270145442722691396651358525414855420180135315605969459119649023218095954647265679764803802466130601451778551047018241988387980645374831923887454328127673369693986175950789367214709402152849429495207821913835302619147346155002969029607804904974687964620274534748729234193782880965846027059801489713826269370756683348378866464800910938469847071313378046697616032467244216708064363175514705243206268407291743565784587465888892658998568467641047464797716266848476514375540340121029102860735436152082129673110344368298302878369679365996841253443693950639438601597474799527284227825219100547080316892691487323260008788865971304955464020802098671537223112807284912794962964960038727578850928622576427081706604686463960942220454131073149060134862816271047000472298601949738260711330402117039367014679039083421598167570919169879138109469208731739940232722876736270877440811626210436821686952332756702544087702946886440655699757103347550811734446633639257921086964794981968972788312113285151491232799312253283605434946175465626005100089727007928840279048365377416103459466514491057965915457892657160786421341277914951504590507326683141702756669312611545193368898343745946417828798996707843952263974086131244244905599574904672111651258068199645919615573519392670963034174537415097188660800167702566160035807025885811048613873363212104608354635396571490221613604898643142856139132049181276981779382361129997474702499931040584497750083052910017308241391516167900617084504687720055890669994588635970498647758818695701488825269215838283904401068619909520344817722191681797471956453889311365177790233194843004442009889305160960881804204097028556614510717811888051771119002565008393088740320611167108209804012641450639583682539725942197240327093797954177347618737759823022778575291177529590002052323747401474454524458274378308178186456249185153006227056194055969503694893070112736474790879717526362215043049727786619325778074324880677121055348580742997390283992137172833747665499685017517161037880427498413177629649900265729705707895414986087149560339167375310102333856802115256740953042861357216362270021208421960590884592368149684630770584983083441625570494807057385887578872468852218536223950808546317780425493166983953306253020270337361369875272250365517674964719486864683596812231050464612021500579497590738327041920197264928729934779606162928618547132088089351771331008862445887200620374166357073461031790372179519220998421316930438691266119107321329298960671102151665140840650195216608134735703932738708874507822514415015658611759675118931286412817178076339924365062178684681107991635807242442457136491929964889144891922462466138950169781515120120632449140959502740803172135941635208910578086344056611087876672892133499896348623653917679250486870694491643935382035157843656688286202674611422743417181823908290073113403821176097453327546463900431511467536438619506581238473609618118673761329082426190630715963083394450009176652895188077327257573234831830325575695570365672796850087570619027189332943004213895180559972259904347826679995667187230774027084918736047008233487668957613593818055826538119789242727521409352726415471584960358898242167371447172552184518304638167819277531954752602444237237872856439396198363708419222405185748620042303776666340555533176991750893677259393814322028202624207397665253706070266216682220022271251180775250420302116571926657083049374849559247336149278772587358478704312976731983426703344777105095468869958521788192013131836684362419514743742897954319784974954238369589604624984605846327447257008657658959153426757032204470377518643382992942641903243920574761647188222163844844103068731260981683888776268529145440659427212154686307357122571563183155980000241251786551827891679437231119908608035642589881148875577136524298470177896818070473691282863003856169752010475718940580060051530753249007802459884189092638913796062096027285646933796007223440622847583910797284164817455354872277587673720128519747190303834758116074766666269979594508948840002601592954485099683955645434494325447589999629959138685202682380197506192389982439281475827593183893036217568915055969336861685066434404350841694701717280096226574769530992973983490493635472831626980734350743135115057783437306154825688143724332161528859627144579735192797359120090263743879355070421925517026657957637405009180859360052904019813025024131492357240149507301149475045557856162816642703691002706872048354565595516201646738641565330922996176194084417864681024530610829228262932419374516952819813764434209660304360343819946439589524586152031872824654084221141577004865340299583669640215947641613705512944211942472974949616197275831682024677802787853668902322644259647478696444668375092271058770846290700120251141980516352997665265402903088153517628799440216746453634295632376264547422931490993823733896831297305703964443492527526826800405290081502748855696457394579829808598607821607481735227923226765811869781993186640736583724163850424876808179270922572105537516124101575988237728368441965028021806828764744942596699885190250082006452384616011577528641216609858437274905808907777145137910296411301379898825329849623538258523554361949392624426489566857478471364693730842154616089182335085746370354450456924011114928111979203515073610962161326300694060946684489091720337101602109175720193778602091397189831517703921020773846579587747742680399885912227888644420614480158006420011813318381363142998567135419980637188854221771661929156669053814323522400295994305650561110109533908154285309222547793184715475584225472485088811505395261909398716458557217321066435083956174833102761456486050204060501998497637787517642719072183022887093013088397034092402234171994398407376577565028401287991039252953896979759143592095212209870649415915387754862842091823136100792887993647738800322437027637778226824516366240297343690057129691849160662626053252160621847638734109646231796741491335337823027818093069583163074381710485526230430965737514410715300183029903224145235594434337919003625467831505678891945516721596746142590748217144575959965911082008749133861289767263349941738184888431969183928203938533711033493020509447638574516540850692594141064461756477386659569399322568850941787831139610559706550936743501418625349050511029014550713727619351399576232769702672544238392090957570718288691689336309941029183393154991911725914316226175482219553100347139971157859677679245770539173314516758599793841900090953741119013053507135035784786317036580872685701244573668581628663810958906598457873483651501092979444944853945570337249939100590960456897824001750998321945419308744104464927908232609470862411675888512591170981808301777556323200201875211287651417916164624751239322300988255700360079012109851839391695655205413915421726115833415206561220639302812827329747738992496272864945879022402477879290903143406562240769651279941880305530152937685139030553389599094723694968119932947730653197671800887439628395767500359279402625360015776351693761406177955959562987302631132265987741869203742555397801679731974152128671577188497690969077322534488185333620052677250338057352367361039528263454547054378690626185998572772242521272980646096543181663470456837989588096237249371361816945792381231542863938877789700329867971581486760317317720531037864397287627469193382061277922968776924643095127770812404467953196785485389386617572933229077733287389163162988531219146311232518186508684987623054661214656147287764053299827712206277933359153009386416524761891959737691729903368129053902449561043435673282249657898055720561925736346570192525278474747675508440413470904340711978277489295004845199761551883884148138305607578977140038417234892644097893954667710336371647473242738861221809162438760818525284340380461710348613937365407937327831570886638918324715159456970220111473210634984901984162835327624100453092442693147749200389946102548270330807412946970930131177269297280126573190430133458351423200463023339952107531391905111051489902894335620545933845221099407311707924242651654742422576432449728520036680830944908759643649370839641657301791165678112728015112795078104230877546885804519699914421960323774058606148624682948257060937284605362780782491498798214624530827910808234757451824757968311392407648520936724293434751432676491880811319069240448497787282860159843722511601945568481279534247975307271636799649881579735544686321715633420264931496823522802302263680822891671466005339480629404702236100451854817261301737466997875556171521361627843528223099713655416229903705423619533815588590869234226306566599696524333642865642122573523844580712876280043344347253897799217176702535739844702114943298398327070578573981404048016548577198024296079255715224271381001495554783831035302013857103140070899826391471833523517494659409435634538373608107248914718594582299142137803141788284029947865181236182851404836585708727529449886146838084250564682956421338317431019692928026435202127020511272870949451176171471993362306692822642536405470547890803706663857695722793100198430237739511314813220678272418718192166903508001466726970137891512260849813974289209512521064368863180213392558246400047899823257224336927557822102451142959106402330327367526115120731746265772899710138798425108072204173711807938523671081032430457986086307043896800388146683429795517430548171029515516001791510029227808944454118644669274433404232280282639349583657638449552669956964270402229664697380072922401625648618292623967863472299615327415895374099248264346256770875383673690312033572310259088880806044655184778472607459941584722283255772260218932608690525685618280912341136378752491895145857517321510939191233699636655666440875569577899290573188540229406241566593530795792336575286561058251117055331044454416838285816207914431669288117336695818837562997332918384580790098157678097735366524824957151854925991119814596783462659618603756205855297034419770664519844896038148924533989235435579834984551472623249394686619911088494394948842276765826835960544626076487221819727927893147517392984653189398197155667192187139830878134012023726462739362817413684818416470686994616621254835366426673852813792328635267028842856619971936802408822290864696296602875568726827749499430018162220000935688527021009508418612852085506864065877319473753387546598126073005668863042677206871763575348593631312836778820145471139369028751869891497158766765347445384454368845047180318080309141307653549621793532358689982544527839523212902764467380038895425668425372748621354442155421302754790883010587508814765388637498498158525400060501789137242054802906871166786744374676687057526033206231165127837828196945491074479074034659740631007283817763490656904865682341805212487049510440746961800188428876120296511240406669956359985990476063557698473474358952348522496080091353691364511332483872548309525952507246492945833166332107061043747021513227397094156410363106318770924475051823919438613070042453389838745625093597966144409663055303919776065160771196175662892435388546008233470140595820393719074286108126867743706804696483431947992112809887698619660215925719308818740999264502650576141125761068234222863815394184608833924282176583463384258784782774831309067816846739006199656246376308238055091052215045867795348730608913447850612403310446108804858540235098441134484861569012689171105596719662275434695107606181855509916659928354339904280153160034448826474418936016003030588042030618873540635653757673073113272088972062541990221852276507196185681612827772390929300541313031664259842778937076774892789368064565447191500526237883454077848296671400962298598151046833817121240573155625021344625132944132277120663198618407111213238789716597473019425798511818655043330895590575869491985474290992670442335475274465425757246017898173646684058372989971994989260428603034248612499286387877097704045210899637109358699853431457748035683217303318055711013228082897270733516764176864999196870410244741124175138609694780056899502019835108095146645123165620498006935675896027532561522701148631924251064763287789125876445905669037252335737609124409498201874790228787742802315926172996606172454068124139590095143954623096308320739494137695504412316901645083835887078730285951792438412219266605927297040369176060614801620696504790459898922777270745531592708613404910850128555813486224600994361023787662306611458093464385795474678367470755705314075834002326619299587259981376477256785730665013024606530127439145674354558948053718040100402641632267710616024071296985252327193417276241686128126909165755670790336133132858422577162259511199723624922436065936051891265566269795356512804890145002977137048214772787109557903129079665974378323661326591198659889467453395608204937142575795696195354245741570779330422249126594790525836127954752574092903760973472359256622402381561766168752328804130431528804354694601880119098693777929001362215480372598639671067115348797931704139539677713087872158474744643858759687674066039508591893413088915238086073624671546912106744241432307730427563580008761495841858979700438764370654636289655529111219724475723767268352904786396678408224529755018251181436988573390533284271560807691023847619062490034023010013705370794521689953120317373796493218759344707766617564695734351152959687386159806898273769741293047424482346637993217238670883130492041579337915170146348648789500205653903682574842816117004608269047417819101877701044981379661174252330255722274899413245559634178641193180090988008783240558033602102234194403896901113290587927464360784696630218638728869509047751290200778725059647809165514269233025897541059073887791710865926037164994563723793645398130979801517261655222807787526684247134875594415275637373656664645176921633197514772119425808821324264730222634914191695157345349757150926886759650541434498923843697193241532300486104330151419093131579544345041250750437101300369546044204488364782501338299451202868701822228164718907008462740819223358713563722480552520462978547548109228058025217431596079094730880114805885529987810635517258077317230182325587289394695044345883626579874668405787081351523915304671776717457090036490386508918343428273365983781655545561089042025959118562265346390835814816932385922627011476973586710033169145071635577026605515639679720026814800734862210990065346392029155251691235453540425653614826481052826521009630920630458994444153978385307026871675855532534681757259552424394408167281224182377907039834513997171097127491481176748966744039280693766884685171710061302199723082691666704661805275287955429115957287885855387211275202697235622490501003888238220814843351325777840756736216178445285754905584844228184889574523322067563601861989872787482620533386023767730777268188559062160682697029665084780308803795036660867915575490367318692305205284926803624969962589545244473265760689011728010727485969654109590275023593170252567383551299816162663754973207084026900732095746722109503845028078858803209981702447750336942360680275417462767042123763089022650696848023909577655687131938108255270363207583995761552635940442908732991403668536511888888922168885645318128220110278618765868965643112461125439192568384572281386989857794275570428363298095828078643480293190191386897535302990458233950525805548633878264546781175609316861427706227866947334611857226799702781439415335376699666244437953727259420660771398570904747614150313306410491153056497580649186060822017857189567474733072160414602226737960505966334790691156495003161411718954410323853949074534392935172850870260883950872119110665067083740672261096822809217107563702191173493415934414099092474449675358716760194468344837744711673762875352914822803320614615926082579053486700419930382166433462889551346094332023605276301263876062897829559102955740793835951281828686013372829571251977447510677034460523610601040116452149032296888040938965156016632201792061990264622716755963176887328629894668757215331136503450689074376765705542258151634350776666022770075110347325561980175503633185727222652771108490911609218892944818737670319237756975871504018747927385484026977781097445684396952087414074110893860417984284753124985433689933702541761114984765674163229815716641913931226010033595145254970229313002950361438549515264653282285432248200692709797519425935379286941085312334644849864290960104635688275808434849624790419258157055288693906774558730737037329258402409401788229453359348224071341683662796219154791058642550622502965039420530477827790038729352037962646233110272098065113182447698691664461015090716084132288587050043086117491848391120501623323641497110966106248319840936705518194265951677143661286975554882222342061991854099112151017227052432207698556879650166398946076470026878369625097168175337988501858142793253602333726621813106841839601607926296944431766657627344813774305074832628750284903057143889176554802761602909587749127600155118618979863952947493810125491023752953446144902521885882173720173112670147779817639584525131717028871399639465818196789650854437100575342938601901195201695747943145243226497224364541652344446448165960060818067676869466379705725636602811800575243398072262158008836204330797621537608925595296932557943458886339351759820952382427103205670443280521666194880255326794470724354381057382158333922322389020146427432350626349922148134647229770238797292262009477989956637951341261342359237051013172390459914853747903290362127768676637889942728691355240842640962334060254504761109651357682574576270941644411468488023348915889865444833943797695535284724457833533074371458330238918294383830718408912389499735995465346918307340947292900987388817417786823527399818713799377599586870759056475190700177024182725522796727056717528627380238660051093726400047952449405118332834596797377956615718860787869722428392921800220030257171643877586800861898414337668202911001311778890057420494308186033795325631556798883631137608612708054894107785253610554442733012437661111587999677504341348855912605821961725183750361902388619695608638499506364539273833233857893919094851274146053195087352907122945084826453667259760502246588293307549513876288448968851101156498521091404241146639214080887418446183253939471554890373305576971534910446205234087673176033360339643827774890567387044441975965107770832129874506980045767200950703155761125714885044214812399944962946651928577485512448005200516133813549755762056380721656877256162888885789249103951314875025547559549119297519169097954998118915680458802991830389384642333696414524401912797542324580648810757246138707224683811182692043527936210933432723757832622917155054893803357374955369975468697726245844463889399909508913352097796561088875896439582925189423270093064910255966982555241285262159234615272505113549852084065404900676774089196415411900841845007193555619756434308947902373083405129314117971191943795563900095749857153233782901578165306545079081145018537949959052214728033219470831430965700831715635398991399826768566313852927663603594378861541322012012510017746683822819004794567613456940947161407671334618760870962812418917101997432572390790677239726528798591429723031982061946943006278290851440768955910460014744335624490217885554849515897605677969357736833353784889146780053471268859932491270261534013820005864311409936221870163057981526903028482528021010896003868600675181480814611126171565781011590097796305370721866074470865172614539230081495186419922046405415762276330581644754858196844226389344583964963785833404535214665820836277260138283116493288033499453570721488670087880156963633005780971376779964472542459342063796268948417185738740356765449465514225139767246536715024277322328902828080337629669212845740247824896568159617516361116932773877642781804465091670671927260315037444901483916646174357326921867892049261671218130958214054725136656633408157140513045990955914426874001631012838118561068555265744004676521627739423585856924652098768885680068604365394567820890255741321471957443546047343439180283406600512099529157296980185655888355678948866019140940488433884373783605051415580581153317341505638876384812086707582798896118072511306736772660713956566373667772172769225327158173258358665091598201209826161541420826081513152582054396430294374781437031276471430792299050521085021809861355666714711289353085501035016987062318615866263581576615501580378986116196771993381618658825274826723371843755824100640142391788353816295289888716962384157466045813060842841418640660016069549589187346854222542588567575081942766230232951998477656590338205910023578759445412524619476048609683948508394913797380706709788143712442477288510754369900777669170343122857526419206010758443487702049061627661283325568832907658116487579728142069218259752887378680574080564818908697435583164596696345722573235043103468044343555133553282726440416271944759878537189636596912556063258431267640228210908890844955420421856576355636291599692716847190280868420293962436760622082057477490976406690986036001264074782982778366820066231174000472140109845451227783809495042819854460957857498384779347636966339094110211930144844901936552287906684965117684757358653380527878990922264116523827788010778470751847271145261204374695234173038725741670392896197284683555080849925554126118692191970057577351399063078611922924157033677568078936292197931261854229330647480528344976064303327934202255116356162560795683762429317664395817809933966621506643336411254159889306636660489940385434743672211561883154630728854345842480607698756213283451405417226445104547882812809412454647177260400339527822079307278653711953679312789157413263380819255515577898537441019454977800761256471264230961534930940978780284696622998473138570793095695923755600785322662673976136354226610049194324876253216067664212980487360305328419431270426401354170904182131456406601263559515058508275324332012023051990085545825209775977042408825055383686708100649768053343530332679753932243273507741251604506327908447359232058855486002838031543115820849654095815182272103145724953033250954340182123087721436074341268302369531983792751747824589368080146726679119304743300933918526161968820439148116666707052403625974599505591000397714672199956054573017151701854598213474543003436630147016384815373352063262331634949736951413492045981839242117043775415966230331781029184669535174413942340468025422638163268824816875438048313425609931664265653111871698753849978240562754103829371858898221746934939820371126628978142563912729629166085032437643654834986405322755380262149888597681834202820290365133414887916964780172570586836666223657562477762830039109632672325955006960224309261161279084310057219255567920033179035544771987323121412137134882999161613394400815007530857492176372202165707437447721229426478577760037129024206505457865388994296539689528329192891339722399320660023035107185898937643195068845634001390852336062104126695033443029336587593782033545582316826854138214061276398523608195571752499850753247010651785236274436660843112173469743514088902412338251678712208579433962279244615261782264519390392030115805554496406936589243079012612089878397462634454635047209376164363005865571845098336051554783439077952102550046997807699239408009930489665771642181566886092956414136774037476071498513325882456946724340673937381876486083343315687347419328614131689832708568176333675910673002673051105551916701843465374474536252888685907444053115961592806456338217697163138694348555905530276133267844470934564433849442912402219437583711077133956483753569958838997060163822307992756096907558726198787841163164867466746396059869137652824717732298807134408089226529505662698763954195694447033207834713864587124723876259490624029393198148166797997378720522846934940436005112579716118470949450871625264285177223404244849406096448863119109434414739092202380752556998344073402196693134095280138127103548518219080621885430435235739421594756320107769316865464011314880725885603267555028263098529068419860970123572549664744049402248614488864961933082834267471283240471929363899194831812484307637102732799101217604064759891895281689988386505360154266135033731261526212889941664820564485138704693638901256768015974228074523367955217086280836234944525137808002331912712804920391101447156108345067285093125558948081247348327054309080530094179896234882737349117383528578973405112696001794357302490478140274981834807527591623332700055071244011648176694776074794579958699484580378231492847546999695872584220083751415077764078214152919150646053439524131367881828093043008449379615223103989601107061384575841152324311162953335058022757623108482624446308205691178792678799033201164462418671299363632598675901097804715186800800456149556218206770510056424499473276866243570681516766555746466877519611873709414206475894033565584144238216284361793499016541418499286891233164901590112754393710338392732081230501514636619841576202577593287055093455428383317417066175569039550994828993997088763790635117001366879994153595286093068892272477702119785446065101383780085272100477259435986963376988572029079145295285969155538606622753418375600996407343424521788578725126754443850843492361352500828722575148282849070663553541311018344026300144462052331334146433421491530681040508904891275047978231316813463338864855356207126061955974709434627958731534446682966161141679254071986838852257779243398754727666386826093860606270004654849160164051647959002578349005358658479018025257354515367054307047043526296962280747387520747204911896373406386079631286869870044998721991341997689110731101609459318242366493500421018108693998446019595057429975892135246390486023342430403315817588171208693805313242985127245856292724596081507357372827022472637158044092096037244839665990825798229537473136565081775484240478649940449144940394696086203873953675870511531744200372313443496135162396774314498444614862718846109507992923730748753102977411685766316838719968257899882767124881469133435721115281787081329208752011402932814504308231267364616339505357828452066685274725582777173927373010498876515503772470892641599205237179083436982069864928657575345273614483562342101459434236440309831568757462117903982022798884724678014491832335944886869819732553624201075151647574992338716637793967832902068706509327193898615446326796582158784803644617965359113226811876220626742056275007251427158397449196876083113051058830836480407826652651701438371834062472067377214125654541571355993728290017753123760427219834451535745726869660277548050034149842801446840460080553389819182076986618804992225946127058426316020857869005824297452882005058542298804408266558411544372224962000291657256110120731772250683098319677618745959388097431351069912249768657070242811363593802311438921813928223964352915270021419778679509252175301350349846175093764942495967440567912954733579422897944780408670123283698645919764717885627900300518870321733917033959853012497691339203271518464782883193208967020391911862178459286928804805670169035760461535324571711870527159259337949754753655501158621541284577023584907614755856995859855077114683975909294228706616577410061711105002226962132339070379347878527147745949722741692192585437145371322453396770158125020812725171421753134014233894531543082655831603985030994152151003892210470056240603295782450227113411789319214187647401149613613022826726773062888487743638027496830739699242410199914306733302708053729132436219939765348141182811678468614861887047126990775676772642567137558108381020540567321871547687944570363857036283677288299092698310785557087586184160561023839073872577942518067702507945720689498835129764912720305276794776951418457169104605714704335266014720981848756112983135179255869536475239351316057614406439771414735834022222597565326993178649322208737345287793641422743167234933747574318425720817345363993557398430686967186357386182046944398606367672767945952989805612167596725297024749612530997679230387733750747400217246975806257736881399569363092627959203631838062251177488307651940920324939584422374565965828088758062966264094594014569049870703542755853357712935453793646694309907130767478683628500017092068242429919643642146078083296187392534808774199101594910075856590784531631324527479845915536043372430291889451215143119944293839234381969474976074267651858895416896661499676010887187040165271061801570607474570401508526118405524639151948119885259483073130752588060171488410008648162539811042706209414659793677394593691413837750257600823414221189761233700055049189225077422918377907711899585410381510350519316280165835216045885658040055878344406375367606502479876841415766837112655735725096328763124723952751350357996030945680322282722215335985033219758411244590821402851830887187400926318061614355230689427142703961985322224312843910003907302666705494317609125246045626809141951517094347819244604852569075720979916136477025355051459673886386052286348894737947146699157645937385911190951096157270842961854339198270399110613541211379485878102802308611918311235707964081368030363100703801596391324772251633889778266085467220769789747271811281398795268328907832514666387463807090099873063578584060935990157140234291308421457098925103029735762989693009236511728741849260710029626402254126799162171945532441194632659862447152586619549294496639260435791699499125389815770985686775739357755507622877216764853313555424361626298573499575625923575185215094163590631784532467884941539643153199057624931529131791605564983206505982171717654733570378223718750746312088741378211190801529138250611900552395278909712060691527023738935198995632245926716913730071865224183787847490165862520525102265672361133704118714696197027304115514443581803681334878345058112259527904976833526085634045623110043525603706374363863369203886025287960737340256712510788082838005540385811184094582424045817290132653770101211804652104628367071434839022022356736094860666621430872043053294245183145600726369577814761093323551713494784509554468758858870919632211029502192451355235572433721071692411153331993901820869234958204084780395306161323574216461786758557695940823145014678705542687402356964408639048241238254762715148860488196366819329120730956349538870923388579404547143117811205507768759655259534897463986956311527742144581231249288769647395773220168573622568146669545315829163343734683007420269682610050777043505787649723435954165386498502978829389062548137468439277497497301561882766595142243119383125347065877364813914279507619074587485398695358856526247145913008106742551210221803517787227484092378738368525689738877553156740083351099235226660763870081284897798189985056359872747649933762086472494119219927396537479117643475088392842351018640383852521203619548251194629632297024169107244474196592256868593539139963293434047723306068591146832558324904575767125548014981570015524321832728677551803956644921582284815650103814798044164337997955615922048948831477381448655791030562363949812292458163684526714803169337710388127395450887369718610291418109768124406942797492476268455084776387488819672512740401418512650139692980629449738583376352701803635482489868367444205759482446981675199875612449060803454940302644839148185475866822091423493151924473370717444100190701638442444726837473913202702837428151657605270356355405096443322283089291378786233983821423392106795668280170617026369867876360962096557863906572843173171821112372534641045215482409256832030375678909351120593485096107465719844425799699136450998682928949339316163676406801688149979670627984297773852068829203536002404666148567746714532343727424547323699258235588284260079903248256179797101589147247024984030326083146324621500761559146850068729290799373620372678333211878968172622013375812064254273714146663864605989739158810902991184775748661574972530883727359703649125202517641542201552061740579248110377188060491299985680626973284139568130944825133315704169573271059832612724987375149221428694426722655785318929110915821164433075269247799078174536738830523066737344376582553305446987637482537502343788559237874045563188752566171398861178441139467936464495043851886130836332015946306355327898563111689389933146150069883522434415832029633651057388536634060408054811842424435279416594802963570463917146522025617062696385682078677037528686098434782482765646447581160896029209309288968201103664832228775153686142643253047115419319342535809029564168722259248691676949981982784768148949940893375651537181113243550017572522551255273386196880569924900354426627168120438306150823220679588758534873854533387999084188802444152639332554174255322007619591656466442318483050517308831853312787005255300630263781847251765656477959949764900782980257094119554008190686411495913600337880678469072865655500925921597983977903313145447795686480606810131772930100628940897493707687429016080945854615091240424913318823446970575533285095250708654273960265182330054791688545635082896322290651486631069758563384851635114936413290299046458026311789536760697781902015124952196359074734954294576423267078491699161714162876536817626374268042636090068194484218508142673101615774880420334398787013046387644001236818462981191369624162285497809170677578195413312581399669847892013951457685186463702106449031950857522336927214448112927188218367638697061726282230307838120571992903950479787925566217445466940986740188711778652177149677489042992830376206803917111909003367339832630490298307495463725363134463098348051956886310359085220819060379682830080176481427959821467519534502974265803493740456143466609034615121134887977345698632584128823236178643533516801126342929401191862489910661474694152320351521059863509607899840542386599801062224043312413142108499694465582899118680633212841878295252722935546548628426666070333794629859495137768286994943276351649933262794080072224238654131401034516001928081915493909474492359557834319316237495312294166757930391437583136133389477677314004489837108329706726181771111779003695194040182878094891880588087320202808508984256985474277993030130267771549473509370895073469245400115522552463506709217398924407648872057992518402958565352018004611290111510237843298748466845112599287113295902662318633562538779032542374018430895197306899724675843644778092641127229110473608574589242702117946819729409729560720912712198031595642745010676619125378723595954248722497678903586689621257891644659265538875721996301922257408791043246910501006367019085215924377674411639754120714557245479377316713247198055530383478817275175688454300308052988176937837820101054083782482633160586653228296755552160258290228912938680113590729147633952506950635359871317833978724348800266019717444317700883087234220189625643684490232415763536661825483677510708500040465615952580695550748777867457552472234033917045587693783660192312778595072511463652241057724647626855507497731982140686082706021934727168782014952441588585578513799212932903613471032781628387463694498681042563749794451579554599630325263831747122866255131815794439817968679509571108114448522071281777960367113151388045564626824412014359268984418353628563932798195652684242363111675094644854685191362933224946377357473203949157707791298830966652030580774344320626192144817716940677940679402894040619453104033495533979277473386463032014931084581862092094591573904433395747838856274942185551047034992968316218667855742211035351835855592620629620213123329975729050398226356251490692864639286314531466212606249007932857927922961255267246397648105482490899930110512153015484251102418382374120930315820550978637527663629562356093333724652649457261222917188411099873172267724883267675486910025222702710330268943203386272953300508768223795390453791200710192804332302015637717859788593814232172903687042724617531793926345856508914219558430727439006185265075233066689779503919715327932823081215690038473526590587407205189196652533482543131033061448062966211648094372127420512822929546684904436904865411863910277541383460206312216108040037100551693672766979971771817221513223404514192333126360220389966388361392885918658880004878013093935760499937508649538753556316486459921823746777000914368880637559160537317142560698556098926634360602911890708544982673590393414413107164916251900928333743318464505784715091890207156748040610563987207124891621021983437677233942410821313404866304373206737865575744664915626914161714638264246744319666453159991331689275631403051560476033125370279282446687766646882911624209723288314174509423124731906607702041520471838109494508415245995010248170787457139561372932553946260668177207229753321477734544712008406361369263438059144217955189361938745530976025920500426919651315820426951734164077050074535933966125263387704731957510158753570712070383741084246763579458962047112899091587585175271359488634946242207036149827615775157955755494847139364584903678489919639271087368009645494225390299619445974218186543051635403059491653043334947916883538777988627232509606723199507246307339493136720513468478505829766769146768275733977666001712820833212296624499848357560013007836087781855097036882502354005863393113199239753796755994719539939243682968106906725212833816090352050856619177821841521073474881622737664863076268176985707197025378733440106322002835603359690336188871833719179298367469348442897284667202526285813650384462641201760167018057861384494282141883187455608926416444602646209482566801724407975387689928942282420521492761450355736869731177885067268179392859232723857081324544775531510865042936679206635535701896362669344980034111290484986818298869908662930403788832701628195405738965949855644378290067706123189439457756361716063587457499033865381296500472073496775287948829669857499144969614844628525416521673499419197698683938742551310619842150601576054711543694030335483631351795659994825628541899038324325524204950290215434739762579259596919283225870367301357273253076912339891783798075546995630646783023561258069204428730302170190390491056872473109869603813481902761924668279423510650863197336560148398124683125327643153199399268674631645146980689203031803698137364857333043037985172315629558782855238896151901409638019812907761486436851192118177544979067935488839821081809605373339872958397757096009258467283365382019587834004949407635510071899603068534575864371391873630936351831339526828784022874938030361528672864700859506442843170091051468539333272218530668216313023958462440369952025833672160834126064883307073760589204458862148462792141879752944978340871636371573955974951181284841155375475398367370031012270853478883117161558361577558471627012882150966385562923089569570471810499895394114299787593846297315267381504366879799002200305906341596508356783501191900962540515052413269812405072037281807962635060560850949311374177940913212200722737181058643291270313023598300780637770731615595575810644928916104390352489105665131677067457186012190815147045220479824748882570709719904896724816521829983021221289510453505480223763728557746516910381667483421271051721318394344135973785639561073765493693198388204128628849582052531122475494661646248210297833492073943415126703476919950498361345352218490645742296824948069635598007634157257059955575077414925274579429366998580822204969051121600249522305028774864198041728394632701177292345234026631036299312486619533854021679716971228212449186303174898370114666420148947432371311588192327946735819735227620713424501035359133661785115654790973813695722073678110428217443469647895967704116839530770628561031870940873425678911936425046513805544702798207669061716982698838682559564625785998506927740179472157815812094797999746503933423034465422491269921982154683405948801820250060306353362894227902916041123835613134691632795690450158859504165583004663800815998993716441722566223243060760410419160366817209757165409532820425335401207230528083349010329638593114644235985405291509556073035483778801283310392742613001962211731583906691629629968214934721882101354657633980894457119022603498691116991439970625874491472335838171697745755169687192872686842877120247032845681313215753551102102345816635615456804301063964299127234681430805619037082727310822081801762848223026546081146543600074566479675035146525957513305909228836486205940187407765029245384626973634294074266970503022015103455952750397900528881730715845088080423874946288475693376624416245759295121862470012370361685206573252961375598266273101007691650443240530030637205082980459236296686442583201591945388788251822287872792453281338683854488615505905040289080210797343792485420796389336179648751639431916805457742783981643598377266911052016307794970328840298698792659122310406546320401040340460253396626704486510149283438264302330588330685599648375802018806103106694207034533297366060089374173141838511826107251959571006223526453309089369241573650427363298545907892842390740820065353355726423670124845652817845253956492953052154335274633468534347556361773059687498568223712313540155294791070071208591081617548087877320906438199919305340429977467661723072160882481357322228688130925863936873924518280326696260449311180358958110729412861304878959828591866631722616248256393382227274005803885277575455007024484888268835260885259468245118535900539066731985994059410431999303704767396739730350162518523861614093326898627768330796301797190257132263314743185704941849045493534179775355877683611072479163993169711538445018979914646348475210026146522574791806793707536340878541878639145032577135799982714134267366529945991538140929500235330517027714141769943933709248307960249522083077719894344280157700525425608274668294271066653675160662937849798371806330128255932831440947653729683271302801288217665764486240759803852120283124484986456305094173944815884283946537732043502298950896967715815075854820705557746305795524222921338522767345247702112636323728135777781017621067638917308990826489932784899696296227080273255228768927393302558033106147473604759156876583263016958809548158885657686618516758965683707465507449893939608036767223408823248351489817523069743406949850386557536697869463909553490143934841835010512750716984570091338225474572558775401324303262510327739513838347323425039264165508565092558446494206401619366569652642551236504523858854081255646462766860787006562849241111712720821909082867571920883423124727990308891962477216481165407419878897331531146960038549030308747945039385763728694832944896688573473916474966926139080100531673629526012480583291819679703828194995591934368276411890069351455372379303995507765891903140901347283154124260842580523307501230680727403746427779708655535310928787836303732217149126160742174700645108508554354085352204474855945986647283733562238740179712947394632506673293742608812883989382546189921164667412890785406556690560166744492749278539612611391070018142323549011722766644166078439397871471653542149130319244364223319231973973221948636241445484481076384346598691685702527101317519980075836875777614874703666459181181555574168593358191832676537560466047012917006927925270599311940298768499600908178023818060107067767961596231429106669754080771951218059515456825538768182795657671252376345179540785745541619200776321239086962614800647940320416196384373818441204556509729066262302821450147895684781020598249512819301589743241427524286947576143851677773058389005207489773823757806175044611607573239068218230969618834159859964043071253361142138338738521948543464780884542510247624638853080962138017853844178781852370504624790956045949084035281133373251152396125819951381414132808875524110313306614405103465590133072503308205469676599837302001880722383482324234965306977422714334691498930342674665862108728999575728456446085418713447613039042774252698230457413993380327034228632671444656521779897856849717717287421002416478169282395513302068014011901820864287974871706006798844727827764889654451399972518534208116281946347975885156915061526178781876078653188450518056505489402168033365699117150933551438930632035122681719381421290118544819777095031926199822298846178548635807819525343299927262750808273957226168127415619617309790950595629200350207828228558569624665954120259842713398860578218446934837104847464809386969523356447448315555394284882766111328791845006549525341220318092508823669470261267978444514021128912004831346556938286780522865773513241175711970173912936871955752447762704113489958752697291802774243457178893185874317934005707507214170181164436513705381101553781168068110682218606422473247504056152792657750703804412508872464624084482495653554206894108824474930873126177180147268123804360790696091156797810858047641237858951841177944430024035300529835395385449470540581434297610836039297090331523154586382523301629687747318714528136501908802083521069819486727771706739028543039547872306983687654382332105418164681686811801851619074860276541732450704412847402948777091280008320064940788184119866066534564049769641963218670128700246102798019384918117103694556530356693269357011008076359968477702864952018240430242798390671643196914632286566012913637443424238665343802482642798285813019519157312407108612547814440339353234698786753949138856371530206607104573921133535628819431839733511465274806306915081431052874542658167529927445894873257022126459693068459178295939952326478697524814204711579851023172706809526442476257996658767815115624810982786822015149215929645677551910600665448934382589256588273165546540160400075586998898970510172168440307749654185625441156795183069187936794634118274668754115718187833899551676652806743307615214138085610608702240807897357027214765210821401229500365134343639472345812264352362449576046450564076620869050846312970710328932296298317485698322242682371800801578133721992864489941789463192183076666457035094462557747903599387836484370407852288318826699680881545744838254784482874682844934090459721019371657080406947862383697471138694419102888382985788361902454025842506129278937624209032889727163268737002851959735239338828809981945148185383079234960841361809130793947079015117768784270792572762667563883701723668276326211632039391588567894729958633833619812757227164448280514007873355046408835926640582088821677848408590717663998019743721894561351565648239954318477380372731220886353527694491907704595920541973093081109510224853098608589163586822375002631445012145243858779744586749686687298016939247054394448000055196680010092665280453223683555961583088610906059226177464307868016778602243046891732141734152436525209625861375944550327993637762643971846552873833245535505968243863618560814286882398001197882555994191198413444439619658174201595845227391018601069975975617032446875484803083995465466849922704054912566946464457558898656944071054076932829480589598179445091568812914924226552550233827640534216523732183043866055055108671573892295389489316119754161817303422544018036628363283996843005268032161222247342447530465272415876485756245999508536381764100544247072540114268805635857753860230811304876148370168805583229884118959522999114947942216687115481017707168810407981257231493078469231999435389324229237491626062594728025331632066651229323651855573226850660894840739076682609322547660591337596479822811928183405477452173346187680988130786540120788979075075880251815701314347378286824070530641010256869857987072990910453545262480074833067999647448197094143366115491172113687907358928069588712524690882119254692942465825179633953237355326002872561900417863591830096204445154922922919701659227234904061622309310422692473225828293526463105037367465202170648395533951696441683800724195560928743248328615515289076207901229009969250420996059542849991569816354901318922796204034053502149213105980299262553020563699397388156235849343510646971644075509255536540914893064455547781116173106659191312410647165865786236743173926173088918509229590960949667709401077581279076310814179130648547116724072900006217427982925333526314487312442691518710316440828111801930738094640952666773239890187131260659875992259769503105550026119059061224144275940477975040558733221166927655580337385281013393594209054455046233928346094780549748924082717568080470366830833947007054035065994148336039839658357224932490209536858893058894990120328861696752099377549030501974347415317218035778211529334857990336649212947401432132049188391895210019140337634393892730401475760809626833966252282638135238707020227631498345981254630318645830031137952336086117099051867707293056792033752778607448624845054436371253590243934788255122951986181443129475837823905390316440708017471744571123141436860785859620761429306133873121508198734519903175704687006174609987164769974541239326700292772193003068461992325580952979610278106849097817968342407811883017814135457802106484175391085760787701027947822456559623081842807499238917556565217166275726380139214960842466892856678190227225041556066977239511732904303918889490128210350231773624336504189476631439753260765134966804976019627903339041122815396369346909017377252638267544151632990445676356628152390491457239279507699568710235641601872546032588690013731424945059534400354794277838343235415228733852329509735582345728415468926139588688474957945091944651249910222995657096703013478566610366060738726243839576524615896741199212857769448057861104828665991997958485351014617955273095739635335355354164226960193792411178782111906137027841749677880363992061865042339228423408937157938352711934559037319861129116995282076452588049824090456362802935870207944826051999399496693607161975743861190279721274191061111632558902367582875059405965750138858826014336023272116823373758289830396926464179317130730911062310666722902045436244707483302336848678189120241221818098047931622029185227047715519729221513947980951672850219732406865418316482035862441788217412266346583495336186419847780287356453681880011009697961977030935041196729111773995638498044522731376549618032167810344651232438561550110713506081369555886598675180725008200717992641610235629149618394983872877865461499095320945207392801685354188265527611675770169137507788707562075094682665329723289212407301728764690937754062147073072871208307592699669004834964769226565008950040898940584654520781097888414599385564221958174688299320777023568409424426779586756363514666533282382844228194619774937451455289823983028659626452378730200495921787967644592785712149247739790903559281624511816913909063312007480070072544886075282002046119590892187508459548176729230328993636166854196299083767252929514069423597949627198926682528720306283450711423379368176666675026069818361412495522106728383438004272832229271098167865660172682242120519865587211777916284484193978019291554019829741586953698161776152742006121384052104924648660013250228308418840977550935688199359861620234517901567618169959911039278109414799502319056953549232210450820726685323516254178264951683312171310590968791148677528253336936375187098535260039587291729525826177273922753381054721882336968002388480219305827169664528444459982729693344560028105869624168232116054968684691287669434236103298193643133207489809221697592323827685208056470803475229055355671778767510586616201747027497079142057517586514554919607765760102933882773361069035603467287128894857501652505341695167751164924259513639064857109363163672129522062399267437700650830169678137338795416368344651736842675827051561360422950550186313521198837634120412636901668126533095297374079100241973836302618852299613366321190808059792142324585261982240220825008249937971490455410289028111839404864657074014542867394928889276580489834160168414896202463582664027259725367255495407866208612117547174553507384889914177985885438009408606751973156199140538924792120815971102009606243041643720370544744875533941870360438968064296005651364314195041362197519555660968113085865416062658171282749675835071724877808395092237101995469737368876204886827941518930753091260154205132547611764791850018151796978935040433193160185919725800031875243428441470167973542160423007579140551375765038245070312182441213605096440774593140310718229281609872382880389800110803364958835942905563474409732901687820497635882418008602207438187614484030000223192762127336368661284228890976605904959456329833223890420807028149658918821979968218884470170157583423113066458083756747230396790514968395165923847255550613873547599979292105600537830621788910119241938733453309347665505737952561285776615772881908326748250228814287980244954741989408407763300852782269886316185000045484270632144421597356895395578675175154000661274680220114256918997815046951074537240583748790303860905116719527397992428099065408808075787508599741390245842634526144348730163623136750964355380331855160842470119059045400341719347190007305460927724176858265109356788531722338047452589380455661977852471152804672704584746206367814183730171178474005456320734059533142120598542051942593983143246042842059847621854143086385022329602143190135097304592603812875077924283132397003018670051568499944381320113611466737920383817427735591631628586753227570962978284117806200048068132723962829291312995301020279233173134265262159302114902448106772055795478263326065440678745179876639711239964485249177560703875107702158446564108985735407068451922911991517649598753583735822153448822312077366143339097259998899129765015689827140560644679700521949062259635866308920211969134061714845886528985481759806496633646766472421956196119810982818391878460760578111248013543771286419300684314748801481447918616001747015755963186653493749497202977236965721674194219179925240739198552782689048904861948687400930609017675433767343665674653897360523665698528621489952722510994469299786119944715230973220393974594512462567566036738046544963307137633579966275614130219968035442490296432496797257277011562331085614344193564900780363470995655445323452999880244163301454780096374793439708775874493311521743005915393157110103219400536016663389815425009621535505460755853722977248558823669826509268700271633889048656328397057149505820833260782363509992607901236827125930218556003063127935494771886606644912283220875896624953203908269120997772961439488248349864646011681963836856747852952580585071531999660721418016937933896436702026440740340629147575600038204758423282347763567465305805970904268443742808105109863791384648847186741276202463312373031029914471435692608587489704779290706610735261727466828573149375421144412731786190867037221200563225196322677029401106822173299487226477159937028603202702785960310027166206152358280850702210272553891039630859982455037439040272891645484982334222218316901615627503866381937479602986099453471279770323574771470251343010117807500519404788795701540316204246096488929320563440907542372762385564343302050051117562150404758201491948212573630785546496895570003777936419427345773839128812736033577920615343265949234002413975132287303432497610566294396259109448107991378715359835109352793447015567924979994021234440997148063586514728321268555336749675104576278014847043647313942795539803861565908675889091947678914484964684850427395638404740764102722765084729220625149354557256159905192427382266530637457537758574868829750612245334949501651554255195697621209200314904883729184949044533593956625969257154498152736172111675743767716019143561205676250421005957878603834416526707371047332458738792056584148004438935837663145726546760697177105514000964788426874875818302107472423668129511571780583169043637514065042806189656046738701070454978226070186817748779141518501198062964107718914147895556584573815356674086549880184544736497104220674282364109410665092590075832217402630994122680234949158892678202208198123975604661954020818076936358889591752996107961952458483428005309539598441847111286380628239763497622521557330202008116208846577106637784076625492529773839942182842085888346898718640626008015280748923829230048049281640327261740095046851775100281801200207647646629211205335087495424471989135114205801762577126357002557638801061361392145515108098987458647004630787058104655783038885208372811802856008124832816933341834591756630832620996866086825685753905186663407262988454579892638544890282545298099442537048358291880752474926976866100484572885206558278510499134447534172729031399924017505578566943925816204856232786166207668075153232152660201748473670994761797938983738539021834817385659851015844969037307137944011215585922973875180293803545840838072161339229298152851994515879617727307938390107387301771244195592042737105846433843669625643718570146400852114169292682463539970700607403135353719016618559669331598586857468119949378118237129429927689981962107021748502697514848285563664009219845861326088740665888196669207719959569222315271226619712244338467647790702751926422738845067821539409413762645528024355503255145847911643577959641782259106761313285353138945520170852614641268130783301750110397597004311644415553865005299099685686886313102935584548268245815371053411809017972543270613293263013740654630150713524491886530145376462736688056138781682850243924439776424387373670977572492311503792966555920331592684119911913822889080844247124112461139607455876806373487279952836200602547856888258735716748727257650445265309922741747278285716098544260477967587121435604679255443429333581362199669407395370397061349719032969937577275981234777745439205800084308392632112243112499604539972612457709713889658900425147356028197980717634458321381643629599450193880508954925145992988552165817260116940392612407828004453326068041930499488051082464461417401745533221939022387773824863255708182267354950616452944350711814122246624330325929169495281502006902530670638840113622132307103316884699944008607752108222493966904251257524877840749818990960613894232614650519938444276731303021834574786797366674935488329021573020765186778078111277814608645888651080559711460447835441831939924534468135474477645086079486955806397923326098838822353939554603096483439364762637833894111676125557051892143922104267820727503122937742198495112258447787593833429265255014745263141892348112633189452020335154731457564846060858352225286070163789975716898612082786985957372334806748756623595942371634528604557931098399667730063641158226526302077328907205145968970252981062004682911289480048591956730304739990928713376516122222038623812335926356239647487890454529826667099929063730592028051955165495079207921205917537391514603748738537374335563944232302053179970961862278285776410425456722065426543686120967701187797299705668707648561689603820677490521966211399837137515718448366861508368491130991657615989561318326386264876864960140699520318238948181496124945497624297404282929474409948992983643637442003711822596230991337305708326353239706714775669288361003302494536783496775199751549618729213346378289505212285124281768503822332496247729041331875259022307921878748224974114973485123744080665741006085031197286998321270212002817449138300876037550358056640816719056940600200333363495537568418556959311873160143265272393901487916424465412924901819668456903078275068790551477251988786509032448407780315483728834893642503244114779880327849754520537878956092416246015814384895587726836844174308306358754899195754150594422561650276802967934976538627894585583257520497825012458075739847871504703239876158520987354462903352387472401415930224877414592485764898352151655822653733732718179989981239044352881654087633113898173399229905469898088317092674830546026512704156996869172880352791085245783945377311585403405945549855628378726476169672089780367242095683395555621025207336847281320305654786253927975953663918352720589327996515671932589800931380898628000285217529496175443616303625984549290448684987063294061503123413667157632598739752431486115894592112670273660045513550048216568752258695663366730820988497352426679035354321055719931450922083566643846780504504262664720133235024627928612899084950569579789575340660410263949309965994324023584402121728633406472591718534278076207057374995812345775407033252056144075926044073569813085009527182942427947852017576525078982005157993413820679827795562515109364662891619305063008756908797420181842836485186208985497074023356354029985115755514155958096769666451589157134686002431720359647810286090124481249225656135414304901579292765422984998684319009107726630599900583106783547099321175596511762287258799861032258525130568620204459218888110984876159178943172039311590021937588705579381784641583800555003850290470817289012717830801087500705825140330051951663280053712477750991840292865362875440391931163396420415125196528422120805917885867909706855237612239426243241180800570476994415132613417914223088336374060865179355259252794461123933972831558290113577360358588870325147195028929447019682353684641671139041602981141438296333889390247744535713931801415198824559515014154562738112780965592347420324390455422015232429756342912372218166131494576171252556512068339244680171399011639441531544116290906576269570484029791937118071300023836273557686442099561293666953054287770917889596376199457265360749530818718244998459615792187032301111603641710477536368751456773224790899183799080015875293307473738259261309830228772433427364106284526040804169317843221704265992822114143944770218604968453690743490891184271507933900716274780878176577218314725374480162719641796157233581362865120653582076176895649756022289088966093656703281423231724726261174549735498926786002795279141068154743765352954479712883271372450382563081787882509743337636636805487688947746902113597291045217237012342917925431708930971312252416106265651981531648736676706475627630019729585693425265258830539633802597095932320289010380221134859336264519478435094585089692667767116386565878980795581160723298216438272644119232932730996946364153014984955757493185062443933728517800126407132193022844336810042516316779558310652702381394319046490771698938930842602626995134554365053504071671764603061126204820237606041682529370037959997820794745096183352116174801960535330172116203925778398109232379028680756015925469842127909892323406249216628648108964789041530843925537232361042205460076619358276539423831320942841632025966936273302575390783519015911179595129543504640383505448024691800783508449035989600915049763083513918949483594809649548421413580075389360516452867775432128671260959798636262427019819441159132699334690236138619721580441748875359748710271393771967042414649910410264211975824026147077554164621421853923495627784387436374230613895878086647690209192366137860331630741874816926374996114434097505479206654749275559499770740319768857545537930796891801646564583648653459559666682580437786967650911580207245124368954283483374236437608907966276875828115743910412463607376810496882471316462383886450481227211312662073707266358058190447145174321024893454241727810585154568756363891448408650689139144391637252560172525554457621826376998555024343900331009993367208171887088130455047239642766642757497906405782284319968462102432387802748753425547551302619973777638097930317103902331093215823798485725330972212777796798935558215920746810680088674975335130545360478929522080211428886205006239748260558816709636652397747524996737352496583786693991179271500810208939413437846607672254368648437524874188691201249018241743103959158819756936385801490500408114256157559214097180447997546704409179138573612556581739087929265580627206782813888103949223311868588366748875891635046533930255484156882840710186326335769199306240879084179335722043526855988077992748754638327390927841573539853212572793182093209407497057704228359569330589635456651535940390197728336336904958216837471801793923727459152381151321706326770708076240661009375054750572999574548485203685460670525999191028266140241170712992825989348689902249024634247079150671496281347545423753659686075509901171468548682422413382389332086153814840230876519811979383300074691404894427487863287349432217944688615931234755651524999588616307017273078427995789413896382166311457334103531273985554219515500582657056965405276002948649999457496293878534641099773861683737068233356752978221641285588108425232563013475500979741639151448279686444361840119838158604439803094818782837517902087910446510583908013895941313483102907417272661986289510604929391579416256778216072242796704956406207615555791203021208849791722210552177286928803329342283001174615306815138067858791574797383887400458584415630160554399010838508284018758588781185478623507493357257626121753715309020323371735426079572324483909363776821290768829855913767320574105708999023283346319284288649625561978863030043732664156597202457991527350346247162515416068563124263654790770861848066790589771791506680898485179969432082554197422922585553954537323848839956677757184320192010790905998179778381879931259787431036053424969805903471648181704374863531267712113120436611029842989606947843939020861246103531879619966741903046744560518501541792486788290488616442795556444147134035037506147279892054347410420366095228908945479847408926870006489397132108564772798519207486857000214537025009174074931697861723513378790425806662962287242335912017674714905220214679504052573507919057969623946182191471040027073291514703692254600636424883170823451591498879002979841494033738560704723694795165760563807659544851918034384164588444556140432660590202367265986503812296995999327131602128800926344499670015848702031170684724516970676820434253134872640125612358816579888337058271948624224165322728429561137872545878378678834491591600419452264466731908308078636739251098907161603323745452506919651815128389704197950122826218995565551212139526666916688963287121257057255708299787032264530378409417582550485544496105475908865136375485033550380900462648543379112762440953310727454049683854194307744390602570870168740903391112960663908705494509505480112497168107383340907910217946313204655542023095961870458917266176307794487077572100443389305245537528120369078271184700982576789746332917747921089858678407885420166195730203809482489310372682076204879066643283512711623086636912561175101247862426508805946983104450929236206136641746623547420951904714173010186445740784955548451400600205604122822520894920572107450967003259792919090301941564080660364887385696315118180222999832752824937275500176837045988484672763465433168117882278085294075755362109424611735322699243963382278149431645125803002019614133113828316201453871709499792829588880748303484669253423136551862382103525331324858505716458773528930342386420872001601490997066025093392008074192594107618346955351337985418509797990282753489765707756946566969585148884569515428202303244901431571933616076950429043695828566368083360354986576490792337222113559549058640455137041680109326481214709928226078004868473790142354049776882875057028653651519291128004559162817537429445303824334317107754811187409050241610963646722293716356584819106360880007329430116397780703166564933266511374027295951170779276946860792862106828627332278194241564263231760754908734699759894324856909008750009693412885761882152370173273084542545412072585175607932957001583402582591939902467608612674027736714208114666718885774592976040670421682176084982910878353838716449737232390971891216955323258275910338431032495020619391529273674646000824604723071871860280697883627288642378749788227430444752129086933498927439795763110217175271193099666677813459240161067526765046590425222065303609412609117987619713185430523736698933351282340597870735711417738316987698200252185529899033685919974870465657742609715842784346939031991330086904009326111965732411655991894009233304263234536899873966489397934640829295106809723656070676109663704224499580789976058906396715061274754564987903638335027188675092729974842407705286303227113375778642910942379832995480943566189010514823987144179786920286627942908732354900565853879702201458015146458257242606080730594087837751534743307901474623553073801594830390236790430748649516453986904853964861084355344838201398094679570830270362463608474529391881878395267253605189250684305366054394146739723361856684391727677655082838408998159766798042555988622872165822047581304894368643515517177767215056306327827281125211826412177883174293652787001738979298287982248255126560186076800583217107083554870163556576742029582173719701548956683276580384837612040252012366167543713009123488566916125868016875487335427058559638370776103154382747403118501196908829208919529458559900346757899190924174845415484305559466425962376137402280548720689388981280827411115065258228115526462832662737081520109727389371815244175954656599879682322628883188371623849570935631707768358117796851657393256292723507835313417548219149340960903477451733189097916370286589196477438905006162659603192949207535992076416608947636084961496224199966273714498491920436149982068773709303868121486224634806203272335360895965168015587704496484739745472764992746522108486916393418045700143153016584492835898300708065792075565901160727083825078483725236601326756338989948921186952521922099084837648242080098539111589760700897766093260645281158393271015499349539377492962679444367544069954212568344817461315595482592796449552922825888211192833739912519693901691937877429804203111093155322877375233517174819893153105365564515992607017904324256718258079241314708268461460498385254910120504336287525686321389392637529215005979532216858632098064781192417494931117951063894452123373478038674243129053560910047081670926391393255035147717107586175009132294412850890980027503582322021837763539127954412426553010866633410409890399929654595220558784611393488225294015177798733209416119343430960779414742267662935784776605847190393715653360142576921949876029023430666734014757539021428921764491303050807156532899173332758651979606037947655113918754763421398343179974831194574151699373996870714371913244023963297533646345803260045074568747510566057206950947625215244776616256053911544254915277776790595953098294084961567938575652827336325469398734099601795669087479313675555782205859903123977121020784656194626784378250856597100337251863055189711840396914270256699404520787246554183529318791908456859734412825309434728884069122993457096943033629597405974264512459813065514860923354822510529856258836414894884122292510947244537244311048780992859124854215846308736980830450813623927625840875981510474046425278587466251415552782118127068789503327334137002519062385664031216537297143843867686273816929637934975933650083325325987425442527400900539896306051069482415691403217575092452436741055548772515290388334052216113257421512987399437855446162009076702910950851447732741111095006798542633596823798693786600275658209524850175381348648874627437186933823218017300542316171966008994096604669113526134481280992908306560107343454306260811116198927077805670297998318791458191737653686316930441308635629492988591578655855977684474439736746685200976973398312714890460662377907511406927858891591629832881706150490954280885010119540183676894228743941710568357811459025622401415336935259012449783212232413671498869677648542295607569604576282879841228049762742916340867033623941749235351574120749096991702701718545122636943101950037541354460435604367852070409333384949448358069508654539777140197856273898356968597070022981185930468347380514459611334657254852406055344760223287765674509128751595459416435327177207780310219320025396768866955302682435152242871735891077465051632232805397139083324986906011322485646672686902241303553996539170669717916730473791010505447176628452505192384936671410837809157273413167569752969183538631993413216758788843576751529201311913432850736615123219816968633964778311795062976087827793188894934388963197389996222971136017276633871260707373063281677798200598191254201319029930919357737721872672463170993960028373506678360480113219153282089700244458481033909703774585820722790739426605213527105262104096947064892327110309681125318121887251990494793242756862618387450618931282969533697330849164997889648082185484393371984704453263881062879741240809223809383127180528566662328497343723790998446422922712174656677608593112966160564736678125385729911942101546912706674497192714547333625132051385215885587975452889506127414482437415522107599852398838052934098372182021703153886987277168934428039112968581059125884695242895944735889535608860157360247044253490297763121113175398037540668402076053620720566409851827161015421865232308920456225345919824281615633628618448740757491789113953792926359492741077264972219374159535692677324582051852720476059366232254649660262451719897651862358559567830168679582293446125863920628026669758808295897057905678743606929311421941122216055811530334464777295293907801338874550043017157367902526446601644730189065266102376046666426649699987168837059239572219554844607550028828903182953399796655542545879834369688655404340165159107989296653786541343812738671450854517464196192816364050832963017686390379416680309568572101429744179004877021758996696250652525283285043104295366993806015228505639617236304016641752459401611020207756101538887452265950855350693185517317577434108391666243904468292753207377329084858039480865505595331931636100904304808660098735999008628050079850247362927130548229193563675916796993476920005875554506271493614581914441746264664105654479881800714201225457203500447070450785987362280480012130678939733312203542218344918021880485867406716945133868767980823439988975284295968641026732454871089384635482384447402064518247404525173196959152355264401048982444179126049079204312351962925675632649333656071931957950976721163027073308149854088534261897805917082626152575345369736744837550790862369658214221080427697067545314304396702442366818422776804671396462879385857538650880955091475074249302976601784614645831753345763500580616642920173687707119567141597544688539441317746274695523085673891072207805227884148548008768659791424094110487766093778827795539421540628162926137520175105454927957009731121348144064382652757165626114751117809185205850120245805438000589008914934199704749821120583697131370546885745973026064387131215176657149898004279754585829638429245092277588834370837730656996813326036756409051284200071970366757049202517448846032494758182921381756645209462753214242212396763847657182204295992026647525071206268673310108950565707213981089867155154885881380423838133036875875877416703356487911160331728467921240689238895207984403320330917313760012974586470403886794348660794746400019600112587742978724931604737183775771726687135423043232687857820142178356427679350277950506764298215574752850864265817351666958196546659675626596973050635814051002526603931286624854348449698816995451475411625033692274660577842968979414997242025770787496189980243979063369348617639496831087322544523164832372182775519391285329150886378992148247223004956967689342890697196695849736659428643606938324233860982240087843146028092465967894293673718358620216434902781813764289082813467677322742641732777962413496532430287205712382054707561574397655928716549933836529391353144073161729916440628394676375191614069077033821626825107180963247914664417988448876099564876069569831526852859163332826007978746543744424175358225977738521411163791729869342527976793477041251766202773098646355751917396009196344374555650672102964953703149675566447958472373199450543374534313902881792538404984421022400453156262406227377360718794242107268154265704766849984853792074630201011905845423663797600008987531601412572618106931035741067532596383391178252953803550196774227109921404825446209904740476369836344181282319383564071897423917876824289126594719071225033045459041117201919907810070582245646795364996600696677658476917252263103803100158331227288184815464608670870105323393251339959345132937391126272332363248003521777546380390854396110071029762949831117815395630733957706937876730360307440745611093975899647056788667086433276986535954252961103507989882907959355367955019314802563264054259035045154958541070012642231211605432706972193739032929519073232818367990173157604319221850540666037063740559091210233895524468390746728765971698076393639275086027670274947564206009071165037156076400604420392445999396691077002765065561071934241390395949224397850560394638540913813109496294901512279154393913250019993836451511097834571158418523090524522552334135597780983899897327389212338047305676989556996873275312472216855470365216277456348614203489842543627650283699190628129007274472897931522468018222300251599887404846759805661230462287887147448930040640087995323257620748047815873782446284239816031053212818575811280846159243796601028195179806057625971393870878352487603186793446354687217953187216520307361122452724127462230282047284691525858706114575567614829653671768845157030240962530128669916805602866170638248644257074577322334518572736431888394581399834783007466590002070940638048729506611425887884333051740144132482818628099353694603926475295855954039623194840622516484975286972661428556938642269158996299905827323177873563034463740077161611231449159559098362678371823607854127319562456540561313464214450376032896603042714572759150255838307156341990957330906985293830787631036111421460035678771179681631182828988271906193341947653971919042608785284012563105018170072246620480176327577527251898793848745946507106680666745728058561683034062445388525579855760073148924598607324672287265271717647677317437259593544590120787858830344913617876866995826292239457391875640703494883666256178030392592185126187434332215702866746785642377729548887325831568266804689311701943899219042612930229493654052700211838075073636773133992851438716769955443238487474231864663220517997519061862590943285335697226763199305622799379962465562666293355925036078724612171806593554525198652264133384343502214918055646134973868618220227763413495185956670058466778335233743219022105407966947566585154843884402270219715086504986603311811462602538133975163293180895059298180957033609524941572401804797195301921533354001965095328385014476888143498391282998038796474696858129922461212654981890135197984605863571442275698920479498465097465549037802892675124114463863923607537101837171314871830191120050187770481545436820589455501277110315503758274760995625552588093491680260192679333120738810831415978334640338261532082185115642331624109940858446662612079220945393959033859672372021406510554018490628516942679101596102677686395787232782234271657790680210154597623537107234625629052701326137184859324448084117104631730577124375808369934011990519327482344283160981593830376245130631917046128199941633321540510734650342095956612743284965599548939582802048207986968969698649168636513911693002610220767660699570126537263306969138309471235111340082074743158157730285885858304389001191323893430218979872035496471944441146384520017116956267675249526407677898840676671191113393318572605919198921227126920198777497760375620191121186641707748488902948039590173064238230724657713232493930409085954465520164343215546578512445891913955706027951818871435738990590715200028677138747722086982332938211262720869812047947965864207936860507820904539047322387940504446408278045429852134431152757394154419848045105401704659332848851448277454563953313067943525977220740966468690865537191519876818509905936558584086239419200474904768378245941910748573824775810342205225783150483560740332891201537831694488312574146877691879400457695218153330561404080621306827827678963948764845531484611751061825585008745904521628284311813068157533527764976189904663711719949388250516367764509393745256993022900714597936786974807398127615803697830158639132513174837704191033238537707279180046338769721119450225570400482836227862123963854192484391526648428745775552008222089129682649151345640491260763831903575655304026458321871230914130758794998880948566288833033706412373847817516098014446072352640189978831411353667598336089773593375724969651701277818039030035507274659525946381261990742397932218120602987634853728482298669900416594989265613362711741358194027936911471909751849007518140701025554428446177860258166342884107679936704157683454922550169947259104145849821739094456669350919595311368439636766608122310793505641221429043230583698734021532460267033920206143592782309321482126104007817078832122230571911372482119161697566095398013232454046182194022426791211402417029957781698969450421194358833068174051653741809313608906268570297961364941494648286552453802532199463321898114330176742843373389187826182084627975124246382014786055076656064735505263516420609692240745180770114667376771109441360983641430481543781260489417276483560176145945616747323579416988901083089411619915000373085771637146881081602180534428169372138942277196959071358993174033783229681586959844580488900183925451596991682236998230717964417093938370041031369149737186363133945101136868471087889227415238585038845189479488527367789994587380104299953104788533317397154102266418487297275055160439385523153807280784183167054329210632368186120557247887094380165473387701037608943770517397643138131407263231793956548468824475778140664398449009609359335587096220392522397116761516618835839250842926129787716643432503106204709246644478406580811224829054427506986327300871629248975022858292145259143391190088274942347164971531067792198164514613055645507779615384363618452303740783532775488853131976953352254388979469381421420841959762202938184046721619201965088086236052553644154708230177456262395284572169196761036288197495650041820719935490320029196947944978200457264016742495920733046823744452360546319824789563235003787872654716789937592694245448418368761782687392183078300999304001132493955565641514189263885120703582012922179332010254224989732632516732322162439662891396013148593123606579620973371109022636328104367339765312408568785801179980665328986234988958228877284784784811006785355535477505794285221129307817881916148360262431991435665998548652258415255662566352300302474057038671934187226791990158048444568748093145032428655036004185701097786055082766091735659019223950398496344402470366099708607379202995558316389460399930670144427836816608758069349600535882137068679465873326915351071942504245614862507074271588011046964156693610283315099349508811993081271810511471519091605272207291233221772621790903887292594739903363380404345612191399660457796067771265792838735278381994783126937221228500556989856761953309231650395783108407404285825821394921960890726952140898073692265315856821047980783272000352818643822822255681636828522349097056567765855799630379028795016064498636107237342593598681665796476570882575985447584101050550847938886659317720374557697641277911831503901026041551867577190072184420139233545838690863128073285595979774784252909157568459944501125908642912117089028395037475437841912168110457172252290562089798424655618887926835038527692640747805757825421392590396793273884899790612302964091620157443104786905172756725334442758543241026002450786042080882893271169826980095586141396824636000208995880762472108979738719970463012835097940405527540088981680492497150108920568631883936594427762639738096663489673415624660874217963529449763548629584380498574847125880849939003779354964773282539709108476334170434156394374284784702019692977874358704334194965056125168051427135356690924512381085386409880972612831006825039543512538343780636667133932812589926602235295698955764198613185701820888760356437831971118071705003917014193670755199663799666731551802719093428076981352469163776509491538246217923893515284973936411768461343595066088532684301793957441582760098688647043227591987638739586193391098124759836717112727072844172602300855576156247220236555105209087470851774331406552073020645753925615839223046079722883859908135116896800795249161837744244748911249948221512417240445466059316191547377286770831135428983183603838124169928438619788432559568000189246107973530432307325383533401508424987139935905102337365595924132959852547444603980691386204160174920898578350391982111900251137167783115533729239395288727037194656581105438129207104717355519484216621315270465183005460743945046269464583134599680457490756297220809270860606352296355749367072662401007876204801036277583925150633253570901497902997421644864810687244324930660677805784940078013138151006150739063245631304433506238765419380338263643181578231031861777529059501517884886394984378340658405398810370093962808080893429728259243202799161570834871706697473253229422375057666736599783471971163879971567742286306281938859720430247396225054427986414573755657107499174200059089460643730166895278949611723994143792660159942809319103847016738078163905996952973840062797645561943578044665270631832437122515625309919660561394771231277376072839553191846475063651464416888632244257011307961824677363214906748464650651381673213397656762905950138348103689048913709945978274297264709407640730829024200550321642683107285595463550181307184508594625040350725623863957547281617147722440187277384154994534571346835969403774747476498997104997497368619058798360880923004722148026470853478479018097084402152262753682778409937977788105754187313863154051602744861818499986924705140119725824870852474283550956196390527556074596348748214472149893912293172383381384098628706649242027817177719425473170783636455019959656800538584382100996740978078994655261364791334225891274104451240868225501879118795601273584038231747532118340150465621887361166949702322152396383909990416609291582197854887335964330708295956378743469893517448999461300208470729720344719511472849272114990528904540518761834765756063626810303701563615245863184461199405712054218440877722193350056926925514456672059160083344525653602511638007921173344261996411479132887470034835489925857593494311840409584545866599136938350825463444388299789937877266454960186495787474204409155585457478360274254929925613392554075650746654359037513653379787830018648010399046310100837109420774889282868746579950915931933695115074554945094205289201630839105909829336668561960913861928351352147446756500960240272171868193472207172407302098280282588965316468558063245190556708469425045026106458563133147814824221617667557051771740777379501221845459435843384386046277909672637713963451945919528362347902957650578422611334903334206186323278870926939223609812964069819654234722160191229780882902415144640430420868142202568303924326629755346449337727500775939179420995589873192314063332658154752138750975196268239243938190089028184715023297964202642260011952958041788031526556868642026482276941910132649766726624753639345357031987717326135359477686137499298632100703299660863153691447383251460670718613592662733775871291893585617071025950328177506485943893797708287610471880094674730666756090731676091578600564831970830680070674797202742732867449741088181128588118117413219683958734493333277184854170873012006081489651595473343805288324436324326851380491910764436942342333442046937473890247750307613810594380005021286434081486210550693862942557703976681923052103216162402023196397956037096438644094865958047186608864143741486240014392042675734393011140166409616201262113101349041647674042495165927435188470500408238986462935600279671628655424881129855326625927124012153074871096957696249068584415216626061638737014519461279698042854042919160989206478203965517962590579787231039092799596685777394877527333911556789516761148689344793449317593160009756416935712498646990247075420947218403781808483435631284868655117207002880589250351260244787534467931005504276821267497433652152375842286593883582210247827140579967474187224494779429072960343086516518358428553414698965210999454576487306292997717091571516835117246094320916605568627859992710271531980756743280811741477008086879141766266835008190873579897319908772945610584160251827350094560666045697886960789740391441585360148137934924106495984686225731296340986185253105176105925059245493983736314938120402832281428191167405088188978538911244183447266992744098978634445507654812979289729510620797039211250984765628772377905730994103709461500865277451298993277690310061319563521684228097489654015911510207022979507355877660347388247802386632699500324693260189502154839120028895195290398127925808817450434789507870661759428667290724649499931141581368515248444036958118476841980105590845290451815617889806612100385019838677590682772553229886729776799529430367697187243965511410685632719667926955291612390663550499207157446331642521504695666947421247794008221382026155290561229207912029253098496157685018819293382436238725218274289174716500179498896174831461841040322600267308263393701089567566264436019478275312193913417300367920336365277881212035362041128476822139950111672756743335072118072913046273618676060028076977168801081479092756447700793973213097234788142779859780080677256270647479719346970613863817899616860749729798081986252978200177001181770860311854330329135917058755274363649320390571844960072362759665156470695712276924337692519722662750986131764194741941054350321607090318645382365472781751427792482807514110881226883366722701389451509144766345984724202846512424021788176240032550154488469247315048200409148652845879351021608627403306447922589331399836150532152674527500461025405279867043086131833114125927579283948955786490495000994526998077532697007159212976495839746145441357733907605419320724252740802018645089715304954226746812675460333044371751554237838783727901991231778872421504941876398848848333935417138324039321081193879584010257714295980865252978581571537517041140208952757437015464092035063348930403597609667436510768799392838755578479474311207408294270348851165635790359917662133515364146015239388117136215469544344753735978302436195788102595798294981851324711040378596616058968143787065462721250004826930377836512575007801554008098481785429251592914628466668225744350461136285274439029631383232265114379472223023478918814101185406998639731532145337508105015127010702328930803186434154254695698887554835569390762951079817974614034538912769672694294960391774448413436281027115661872745279881107763071836628247811045772826167499957159877834562758556521472433687210790379835756614039163813247387554733767800906747153931964597378357296896228799277370366436811815112667309544513094689015959201199940981400142992909444593691473708844310455134120472997392160297539034205465158415488049119688614025699921168140083975590923713686031260580556552956689085570788735994083736679650013425668662254720859618962513311766090431281661813134073037039472557983158291005919319598581723102747838558008117213032666086291400393973116720337645804840174953916309005533651957929805193865564772355925898320642396224517539915611706938137148295382913629098305716439190953972471111119205762462486748745047781387873386748931684500424107261939414921640760966499931396560851490641432215829886791460927933797426262771325948004631468806087228849611516561596960178757998909174451807364266499238940386656487282603497859472743650181086269158529464246488134837952693500327286757359696573809158640197858915160951384213132963831060719026121272828749555841864016242267271009080188628171138942990497747049673286532982323362337369147514570001927708127825760367559706212819717600374989830854561888073018621480741678964143022089673044327523382203436883256608020249808249044771468154010388273433943515833592728488270789398179914607265510911465616935279334955069162640086344433242128186229047495765259213704496412216248762066404899840063222037477477805057184137292167935642194691448957109597778279376896397453939662630948072379126522121495374938875548944640896545813042923759665167346170066833073673375312300229501933903920082359338920288685071033107869143866158730934178792578456168931436360191742572065672946040537550878266481163600301618486941809847634187619772901878080109270809177119896803146385871964732684406425197692207863887242189421922192495693937860641316303775502952948426350532296645738550160991460195399708730171104163686875391077914087588317364353707675003468181961399220914631864110355935430877937047572115735236867367834535205237492782456005131004722389386792912531965041206536417272164488270700547350445483504745798714665323428955470664243352767404196560335595641208535842404402075402686269450304257063994435119695830562981815434010682167718768304592052842093568797066438056227088768812296473859484409035182034263859270255781289536623623754652799526642589535926754110246530819363811109191211734095230551398177690667869433058553628253882967167512846289746991291918204830736478964950509704131922359031519707368787814878199155156863010962415354480551199954083397328613687978326217410080386414104145039239829608275855618994699283213030141687880166393888565619468501279526175782391814785532490641197791601447381773005181561211071838981903606363769027658830979357945277210049768388017074937491916014337860101079912051171311768158563744399836976993009083337914053787754053076614858016230688570380276888160257218191973024124960999323055622911196213511986517706329163696396846500447592722360235845660407720264252073318456573951549479596184222912468281100771982868192045008351152182699787740405786876267854719555812934848196143950005762859696535713645886631722263696553728744378192703750889077387778970659092313098602094502562291816166597279930996604052771383144968088351892823176140326185652109745202794373630019405407731098669255445251264466280740820568525459939921723414006423469089637353804928957834973474354739758564156067444183785989810378993056658388840714313667813326240676738744719424532854953425993102342237827806829440342992269669562605725355477526431722469929254306047049728345102061650706160357847836333800825562657767129439360163537570578607863537567898230518083979701796383198662371126217186067975797038162674097151792052909270865575607715996221437804437144487783244349309910511126551697577224893884957401372826581538011348409172954910713823807829562352387067927782042300140417304699717129982882287349383262000195274781609129490058612479913063289395203614597537990406783320978902105702446230160765463768306250644566721399786439141990925924515715675208043221943090511640071137996259276207234943414884447607042632029720801760753694244117341008664530804119166139515354654089094427370751175444543284615621339859742526492630334693616715306248953204748233956397083035045799487917877797367952289397964581554952287195439952239152018647663914725657114749729362090913220841826144204085941393845637676571637932632963824859436651639435806502691812812574400603847230050410790355977147114884072966142009070781811421904386039341206875671742885260708957989226127909429789354978934677151999477098934466144996277138579862537018644403691828522238827818936080525362384144538318097560993059725683579910620996022975614793350678014170032703309429135537841472646014221794441189282348248108880881252578787016321036378671475115000480063463853571278420831158212089421353825638580546210252659462678158189573816127694913807626148367055693300553671340958112109724980938005525801302299667608249428223164211978906940898637866963250706202236015754538475437845374647166026082118988443980279790508596720675523576286343640029587535770105806307615307532030775462321476628569039748619154488963262256362266281437350207866761670670340809668719417644423201575761187995552015851996355368977483579336893196924449463385768590302132502875212505042566177994095820724094079872860349146190938048610668815874101342466293944844525372393923182935439511446093662327069170801424396763568179148693884917907574710034427422649192386803128680143954087013411296147079758982874669917897336762716567498677756426090205486571289204146630437952746181522779034395691031622668862591748934611859111483882496513988101978328500938087332900234753940802645683188763261464999613086943046497119336429028281403258107920202562078332364552135381630444492079586708188835331581421318997122364369370187603897120752222041529037347031245292955143759028151308670690545518898894084110397557393556852545115616182494131648091465217942845096940039962995694654732902131797605999442898765173093488656201560118576621228530545301537925418789717064895571665291808397132575474152087246493757867279325766979947278488403526502916599506750931341567429299069140056915997106374097046160444818612354581720235273688842709022215600286117175645936821643425670339868435758949136548477004400920639497395017822308723635706121122791523681667314086410621676576205149301979779855657588254611293492062320096196496689716039770410356801370586423109920886515912954935642207845987631288292061878631143567063871447572718524346261172772330688442563660641260411290720889208212393087542823597629970828900433834102991229133663592970788672814650825172741230239157123243450279503705701488720566309890377667980370192560163187869035698639601984527187673419108355562085041519751428417963011934980300723927492115595443121853638543121530643354504068821859371591869669457565772749171751116463228483501716051208158145268317779150226593679041875773993959704879125525162170151658109624400980897330155838536493013440781927248826833512265282747891644258549350572152173180257776868761954380198191287538996602623743755449464236177294455939921943180595650174287195648486154738696951367486335661325298069644794967601265264975422295484696093231166548867173030868294472525118184145321159753450005716537647479820455528869796628300863758362111838094051606519434200998508652343946588847600857103721690578774740969830216065612707981452199567482212910240104629419804287698317243665783807850488613576044258483578218448247894567088784894346703673912029398883267155105828859785786817328163620525088419343927293410726456661307898351343088586565106605613102899611562853326822097385802945809757187001844916568792731692164891597006245298527746575588577924930601290540113493720512782229509766666868514959116723590903114082464443025869166004984327175598720263455774673932084125965128733951972130308910824605530252992952455273544773213503683959674101456867774108234792044066327911796048006884823494308329900777413444812173914242442025015339631116208531204252180750650346039194960647743458423684179407514121264431764415075733335891434500615749990532136578612203093159062201723393083155759456753583171418292229139612380056151880735259358675883965111685292479447659690902059538058295598532034899508486898343544146761286448402728087732180871474878201830744953895172665346588735554278659565359213687171255510493210913014709968628534895128041358622129747585188554055443164548795225933925864463739308990566430736098044167736661452724736785602140646702028748293769488080774961348605265077219594964460421427338624317672135700901763405775125610479865260047420019686041379214853329377400608093436251047388254273889343889773498268690523222418530961736277907247082340870184362586367013897041595443842952432092781325209311082685471789446283145587017300677379462951538890976152081653522073554761568630723182401533627240171073208050115903275670044075200082528477836046484783330878084177211293541873952135141280086150266332209589162796246937698310170686962312069484237496149059680338944688210587735962805298569501978746638697094775555111290224755592270973327158662859950684816048820883979533721366912265357532610241270976777441206037074086874453028474029780753190875499181261655809031822079369451141979097678903487127100769372218569323641381621346594244934937496032991614887147954558521518439322970069915635227533632487780224394983934892749474705253577132472582418752511783946143483527854036682714806752075550887953951432520266391944492558951816184798549147513753957189535770043624464543230968048264376376692722292803687290128066907255596595898992606416944873576826461020900641929573843600435776245202163799465906803728965446804428514568359378818668654478869102700343584498216959120711225421112253718642853104886527342530469039847819421199880179611153860167070013361635604068075208523284702713775292959867072157595317520808180467687450782129296171743808673130677856362343074365182209725152658505410685785044359776346324589973712543715910845219319351209124920806136416798483897795500442576945236063449384337965179134062574684339823312483025915370157211580132042486645877100281778562155183379504439391285302681942131501442747010408468384687435648166712000589097419347646282121795719229085994866049715413745862065075859535423154301867876872197366699491215410528673987159468541322284313507341244321435443792169556932623289747249047458698248611906305502598965706398366536427363115403397709072614635744732212012666217738780281108150676894646932643136903868365829307892174745943163928604508439213912945135564333150417960545795480469402657322461902745458838091249004242000998435528195695454179578369937596470834092141338930665126316363788164915423997939068605184968312312149898205903238482432266680334377443646796357523265421142289043503667083624173197355946958560385477470994490228273288506413818892864249983926350651620828041275145039878662737161228505452276425979774649616837099481631407680211178240171351044616463628781817880972493587665665929314842355636670612019497419085695994033727044398893098606868576879012440929641250555134826361436915576193366519687909054685436786730208011377167080104570134487579170432420639954494758154725419549227161715914178987175897450539607277933997183426311627476410155286220361470704852302677240462315085171048193157547950993960694903652672403263070393915426287455745309993129896099250077115092997724762033494976298211355769630940136551952111185917739607270654095332133862617630863626273559537361387845900554391391176230439709817194263750485429247217983323380088593820911749386029503204007671400080222938469874595333993500280809736542058782335629399418489916864749233989702463031417045580299998467833039850744891510597184351511392128146115237285325153403159084875410701369152023900190783455273104434554431448039982851594945122425492812957445016236593696843513275969725766568581149897697032086266858439064336705549917139846000270349383383427209642797443812266548294816450183916105421128346329150412246287689663681170431503042842078755937375926218240058362160205105163702966183284409757713200670881335810042875744475533592707070516484891073773442743992676802731769168766261649435817218940942078209896923600074319760714041841766509092558392461451062434780576963116002354408060979021493030478179490467441951962121147967444336682848399092972396905350880347180981345793307876555304738432450029984716062801023253169715159948787232809370035575981363785094090328690587303556805266986848019816819879521833478145370455770538742621573842738239358714277802998556202907663116981072766935663299530942525561245828640464488618931333975157926044086354678903346627496085758699795307446396951491932927955193936671164166784161327714031168627700932743325597033093410483005666419483504432714749090225687415094621439486521962013783934479824990094273823609218684298116643921227452551811998801589526827585991248777325572727431120643644744913610691629968420468198631213744375041052680223555550976801636849727144987805222982542367680847694770612780779581492037613997052213627799320419088498846583648712501215148846474274444455573695181473613404135263037243410129510682866990510912428028204110729917318109948639497099046778787029722199085655885938489221185261605317455939778083320178150771317450520137954237979164093151002996034571357881538330571063195458054377736164532884892926289614316695002692519394868985888797366638574225194159977076097074026529369910873039482025246055050343604004707813844323653593239387511439602314970975491905434901400823694198406840441988897424787288163724089070023106313701453209792436801202661366908757484049574492450101163246476556479356174833440640504231218659760964886383188079166432471840399603181033276932063563209565707442137895418778482563763641791384608397456727001830373445394558458345142478000888444848372987954730463941861173780969178075752425394899738597618547170826615363519793423796638275309883478234732097974807168976522139278331126003000402174113991988014325023428587520641832920141679702386231490816554653897966166674714607027396294269568675790063725867560381633378713872251166041914370931221850564235095657092356336055228696732979836342648174375404218461237326423301727981370942553802962499603279121010843194518944064383548917199291714967893014238196224508687032979764924310665508867972913304267029767571684535217192856205089879980295901437063625983197531734886633642534360697055143628550395022364709525911776341115265393181748547457219103516170851638989493979059445852029566437426806299672999740271991918936096327466808966977386589881415656551437665763190623951451466980664916714645329035504249213358331384580333468177390726557685689174610163158570257052440547920831850945532875771169354341847756375349459164450527202289904209336503233159494169143156099797295007449253364512306757429006479238616291996184941494475606481710579549138743363578243632487526300952357050499852045982367040431487706420778266722733719496458233012857049921435339825414579694792106110106884172213226554861959451724667335007142282732363923837199955916126222170103179049164480799734056051318598504086070317708761189497234267061785200757156894652306622230869961706472242300041221557041529433787574933269712659532917422251378758168607742897697653149181751305740966299028180929512241462681771098268103975119094669118551338380160003920917063506283946050910114006965523766533384571785614781818059453127241436222543399720874924068572720241759623560765691116302892544104013258585381653903188143556423438215780879768057388909661911253309586464054567214626818334665408888991368910704620679670820535876262603251862922309798329380697995816969297442841042665999267183943252792335474579483506312643922534139659341040041840293939902331344793858153253834112786416060426478472162277275978707990667427057620839250250742334689314175890879699909129767494423344295321011078729028786400405205260219561313513735714446826686004741658695376436828963440609200656743538831820143120233718663551074441309127182875749022620242594360955172035305717339014640870405188145649888957416189885177323026621582130437362446656490806299539807144607008107511979640666001361857497730148707397637025519655443218334246337729726894994385094473589771547858651003228236784219829098394286083560698367346639763090157425118746806387755484136233445328391787777062592762238981306014011231718565942526729884839997486894812483832225248895180388065054935662692886750374971871207708362170476488895606389459507409561044062642298472257062243043600533041768588085282287197718778792193948547577861467487488379982512132695988822684581488936547418537900360289307874243926602058107535458964711445507903770766479645601795050895011870637399328534954865850658507045877630498720405326379731588940217703182381868162927205283435987638239778404015417510258822744378246993777115123466667631019896526864814482298704201693788719816045862166544331095247967069818183270065191714036086057201116764025673638497290212245452446377792687181500234564266975697497158300908113851069349836046556264187325077342211869374553264191757744173551209277133205344621439000874894368262433431137282745874692648312293145928724653596568997572212622409739288525439025303395806148317772567495657008526014455599105067277364100335988603010273274861354550345046850742980498574307900287076518782970030873814924306291176221299203357572884875006323624484094866262054877750214790178111297081273612594449112495187475937590434134976784985915106240368831273256177635244861843087780921046918496874045150199543716396275152996178113324823139243171756202366644064828560100873937880154247176036670004457516818996296675578460221106336290099051720650504694433489535785539637695670294339420166583025243940985226318737150624772774254101820729675700576213318874343306178143411076995239193492909674589335517873395265722805558009939000248110451871829473038424572495054324138172645448724844219065059952668473814947717374577736226429275529392144422144285894785735496278752595767605161538174558264136319569078975812550301710698785047631557020741797175790470854750114306034866143948261069648395628767697752977733204093953808362892310142105685458573190760754618427471289984896694614564212151177900549781870422914637825811760029323314397038558345273226619797666901344746741565183261141341198367783777449852336114545810064215135420421729138364590014175498122765689570419762730433490447125705379989773940627899964735106732792847934683376661696682164970710514599307415385328061512711430190284352497207320311336047755521481247045571039069339019740859834262122381021746451390320002517217040533081031608363244336995926270289498729840757641799170753782424032435908169675932077946690115471209639789787038276137426817396549967269915421151161580164402285097282789580308064738356432628312127094788006111441361242453049561188681202352093081997954084237954190886329601747564997986127823260215340998617074478150742380628027358533401454945971077098453709017335151015581061787694450460490428727765494817668335077484756673623649504446326551087709749578516531767515387918410230103075348256246543461211876666413922576790268809427130878612949545108217044719114803740713857433913927961293603604525883717705223312298260458065264285740586474522861514037524513864935649225382838944525874731550449600612906704767347319286332942152281126186340665114041473128287735255409379540363837138533821695863631229939576963933338251330203013924746665204900577587959064630087767163739559264464785939694072966537562030231643579594702125735538649410865791179991448464222411682883304511133890569795807057550444630230301692111219515407446907293072609105558464292472111862746759990055116843068488826398499863516404222957488855389266196936923908605184189022077803303017403798857762602817356710702457892726097355506337255285164396308235161965808541406637358178748958377703326111853141446420653788865201465905415356651121181632170649490003163126468046830600283189081943662179022631342814204309826099633071855911347742973095917824394094181815424303481196103276334384129418368394001866968361836046549050419058775391977828722448373408460206145318849853239667571658510009710772810549094078772585981473376872235808899288441022282703080120037841297001294845058350229076650900908814180472477022357455785870121067764363254060048182610370237309868998578520910537196519085788178163475358442891327160893021667952601000269479600189417420363487814953815967576166370090617420366969338033923450350589800371732082172314412060010923816396110934125179337676084611299072186019844573024896783950384723487305638398541721643149985702300703481135293777923337815062757344691269432032562387421296904528236125744939397869817596383868255940603638572784066938720710505056764434778055228578562572629373515918439649598104386051055923234077125833415619694246741185115014137953624420522958637505788652774170150895300034275726301912239530138246159435327602625119545839557869582987787398258897090494821668061467736574567231891706182075889585179962052531504468863480307127083432067614272461627624538929579672224798443043661348840547260638195922196662244004069827132875693096816898412535656961575503410864738502868034659984273203359070870048724492451006097413550386184923106945633516569126653564047165857100681086395987950916083595688694410713668356438985461012400023858123656956835934235024719608572073247320500995402215129120102387108284156684984418831424822757939145523439852038347278820071654462996087582246866925474764283157459720142657786322148035633356505971641727856469125453438420917961793225376597360442330531531252489611398982926324496700989959712242154263799371265451143045435562532265219604357436214638514336651425137204928419017124935182568216436536184536507930982667827215389025480812631594505519229232396082028622848667676570239877689175426589584124641632651167458900389943441540247750281400914728046740708014466210003486044999293964844852915344328082342193459500009909294423908563917726531493794459931361383616713811914225721344909755857201392714074122590995450808615050829549317542864163239553332598815237250929320609876703759435614543894397010538182494249650540887907375218828904750381668790953884360788066627609336046750418931940136437172387682444288484923321026954502246515540230294167469561123597210517634765147357284859721372392122565329562955012462046493503724075352500638730696308604086904392492997753391143714774051214706915609004033656492977347011293509431118325501529141832439705046436655154447158499888299479266892530840524648146335505666988541757826558037661138061181986092580983513999690399053626927916239587196281865917955374486452206169028396755754135334869805838425526651119876043954893450720249402637767188891509907335708677217814446155630882213251285780223979967103163558315071114303886816194101577012325343222159142666695560639265203775474410898024960124286796904205657169325547845793768804775028770321004781726011208033268365688752141081199749342003402714050688063333959088853597977316650283281325147285653553796747722671628044816656265443590248618025240687895389237733234330755362708260763430796251690063151596767747602300937912911477294928845897546306408925387098439969325358809720022506543173083598630529736953575236481617148662179165719925113268739757730566197011707594630258130126554303115260005613150392755317214474808722723055385908996746758713256695617288431137153907535799020230951125408356301721516970844689778837550411807011843599220133317621658629489924853369514431619208321242233847989282428963825489095453858373144240890360810783998245767925678937531234805658140852507013208340929844714231731107878584262471500636060760467798292169268663015358301652767968043286195419159189825567630100252450307173586307807002358823313723798348883429598738020370527117783708392573399818506713743081667645024968701221192972721846285783196740669469776916153729679603941425637073734213211590437635976376423809930851742089360236270462357887767209530950596078227737486503416793113543337182779750300925084302094084034721738556338279854310951504051135223949273577535138299187945749957561400179546514534893821846947252796860148805806452566513522313740895929195115797924033904106589301844177618313660717233218173091666919722396123820168050129689769651001034677476658903209798700832723312844631277315540143239919790700191220594131993512017799752926726050442208407553885404290075027990986485312678398122805433662497634764287308197960238131918973399896343802524258608642862512896799776650980354093294466582313487792413860922335827396387498308315269208508679003172860122005932392283688328553912507368657297139873969197118784666007251073568362844903361003509062465321953786614513363698823826286467361573098938608868512442910890695945259770576327279762031940030357799975054908565081803383532378040992608256980560491982845976786640388948810638034378569555072501808820671885804325033840669367294052890924250184446855356787504788126075359533093046808932925780596598072491056910400922526977527940047669449239719035313247170867591290817680071050118043741593836580183165352550078434161842137737440638756676084974351398028222494382836833059851449623991361967818918652483880808118570336072910192464868103698007048175225548208559663267202933018677641264815807769579722212792143467055551172660803095535669349231307482137530193304048865774194254141989938211476651763493145283890419904030185405882966931183168026922961902354832289327615424871236497503868210230715703557352100314366485360522049403840482558543919005732244193844459113188364622587131609944923551118867161747993882744213531657478642163400354323989472778876902716553594381550433122291029511785701524474315865315870858781649047054127855642667580474618992796627432090251510361830115941401069210512393431055174649547447790203069416574653589067777195931823568540577580846378298176452172408696227743938366686782039278823799898491224462094380601498478973080566221244676094447808060595134463544237017719804578170618661670679786154301473198999070964317383419940358668528985354835303913125217887618428567023256660390571617318443058524694377356985116466084510635895993242469364161475194640905883515144561000659958479197195511710886444632623653051378814547325664019257560500877653104901700012544727434925874087700465893169751912935598813553148680639515110643114164796224192034183237226298637099103408524730654643360746017358978145730495758451868828089967690432158039529971419931285855404700927483758487434701457152538792566144803532148893009259297029410769768994768206037621417614896231716408638338292438237912709028982222887874671465857213408063615865177045082370533467290475309450547488374740815737809146299260500864602548871734449524584364821606386747303323446899775923725035583730378160885325186253168831410307052423319753923888228535003528081486917511190599908218932933597667128326776026862852991201654075444875650127822947722908239563224873926675273297433284059027378801241639524036444624704763966880832964160200536200579142592277853934694362290302066249725501636356792659904941548678373133218408576473927416109664894510185860863015765209973120504788416800440370719953909954657338644085604577792367639090123404235514083208024352082917611327696557638284210846411789846030556359189120257298344846526896290283273308777531028699081989391981983404896296221060274185885444449802836376571218216569180073214696293717304820124355676946631194270414251716983262883855207740944660312800006612462107293870122336234331666424624118597294882677169365310839151771933827814764781638986042661437483011202487227453413482911476724998814887466941337941530756754401097754738062729125034767337661211312321541569047047957184491552913506835535446624383918852403957192494344420419357519640219391920015464891098717811201119593621205895239476887504215814452858724744104878198686732698059297689074300688219924477836602741514934000422660596381676691957816679711125993995236160565129985963741573827727620728035654952646177358047813061246445659111508951198249805388894292427207707204398600003711824153999655110599563479791490574046426055531698198550515406322375506336353542001266467561238924796647481392530267473409076656806731507134281446673086774586450394328192320315074691205246938276762696896074800599997949942305325860101600763924377423750836759071530731943361281474745328857811747875904080259795262966981196060299929058428759357224677829438981583408303699816719990814658794361955889210222496273875297054503137909909739614942170344554130359812649239516204195867741415575789220785328723739191646264836543126485061571774293946538044029832898404289273314206252656579130362046079199164025417139449974011081189715296808481149205686957215133061622589430044242736261967348274617060168351844899187862837485314041212436230443247302215687922198239595596163054998021368941127377284199402528579637706540128834804328989141248418366411942211594343309869931295871668662129858651384198161354797860083660648447092851255568676870558214899284045248585383402483066112227068825660714261387737829595303484843937398430828162159694761628428741754999244803619535674208018736695336091379454798069795696217273660392243037028000413762547636156671474944265320271747087977652977659545321694216735636957744171276586589884772656076195701771858253060227802531836362413425200320275360210713891143788140457759140924165439889560250953626229071659464622471110112571223138428864566071386905735917616792392656898793339864605966213953940798069108001780387875396838099701408608953620546861237145590449460600342622032123167357301204876908249772463576081313782840598830733622834611194357116012946688118331192942742201277471029170595091322539102183416955907777348099555345295524576091174538640251614692896692991043086290694975674510815098155770376979692481115075743941771355039328133060259763965769617615205888514968786522953376723889422538312948783808629914618367415731718103052921881647134151260862771313496345224693311672116792324508862474515591986089248326558481199341932742218347494192262719363661024395523775623724044628437551686212686063818318188721086552173052444530229777958043320509020993688123470286069433306658874839903141135274044927065946562356730308009323794237832940225587617888256219836026294827803490655009704807676543064699136234567406946033166555546165937392832583823077557820445107713968827676088447519625293486674639341900879372503258611753470951983760085283187536267582748117129218050088848435521920313956156692440392523963429899503668231507649525573198284126380322897095593738891127462894652693907211122155947778992281137561209970124053369179190226453638747632763263180035907950610850641239117445702782668955308485177034848750289685964269809209848187670595329998271239999131752454785584467488874618432664236097713240179752935042617623227644484857781704549513823256235595556905613678332301165264694214417113238848739387977480908029840067704218960162507804822287413784118623738861753257951430521492158323239172014469313373130392733883156591379032938916628776309390474882308125667313826401526447106500498665190087467188448928004865944776189828813810699531808163157790446295200663858279335723383987283350976051123444232665738803395319634912791761969269901772068026213866926498122911411491626118379724718618368264425166531957797315180724996765427234285884565775168552434558316234113613490319317232661146153112150567594845592787790669711239531737506070985150664330116724510987377092596890076618007660366521218775058452742885001752042279394596413235666706065019342404022206190740588855296234624410327246792868648330284707517551686745970680003801966887368668198609619552445831236963822954684505045326201447424768736245722587689677486526541506418302206780056873076744023074629212325411963052018977076193375742735741104547842698322414585295686121255173321974759116355379330010757433099518487243502487075602895375289711905414887296385317452830821290955024660274398049748083644954724681760790650124862455094916000128427633441973672378489991096266707146607105349700131850967760780373735327713124498854777885929127749176883755117830421984217741201210746420316755328386862045592572765483087792171234602575362668242069072649839928836605587158401641719380937541369260425814647914436335079855143416048286006107466153634072377460917331723765550709961285519573413661273359170751876378180677301303577317722581316563765003064149240011943325383076931995660696522581757219513847286440806387559341278986285158775882889878963077088457257586394856655589409853748973169161320552377867673743507137315671072662437358405720132128931316840076114269395603229638866897761623036911832053389330490194298676346997156729934905531904972830748392443572597351681456789037273955918503667723866012071212953214161348090517923689920654155859159685652518614987687095313779181390144505503416833356390837781744150654498763380825161858948667418883892062845457791381412165976051616884751683388756280237019102197261719329268758480562090469712677757983839860416373944221774857409661841798980910878538749756426064373956261805571699013978965631250980629021879822708720557510338947008837968143925173417071687841847997301872167906655907809800843696671305678857442670587850643130986943249112749652789149124142632446827660934675135130244613554042741944964537193221270430726707991200987368041454723752949227630470776710515926658036029747686458219540727000373957973567684560761793179180571950410921707789665755364272033212924916935447957172151197385426649642783974879069189557183258746882501881079694447190623370809600303359776737085821174276225351565026819019721294789569187572753654752784917918956137261402772781123367312253582152318599472021943871961065787829385669839213505006270630700027915655762830525622886809020775475300537904391107603291155470585572924185544876970444121729308568723912882648959339623791856670752826490681892841828781819683225987694770465382003823932254839008907057125027612981769680331147481971945816982250565830580164214571196054541756117423621977404402244192343388611364678020189293448980912208086603962277703335087846187274255123179111747500876055050848498086733149180601369303518551449532257001773915255603123032965522432283334543756713167573962265778120782716526134565942334595285441004650059630537288594065967194840086220428272514882229935795238359725461356389652462547461146384180564183780125092550614326046484388507806594178974030328881858567466891394878243485505552694332066149601270800372689507121781131724748954420562007731955841765580056766201926867987828434381248723640847541798034204471282403979619174881135731999793845301592754584072597891129092041172508468255612379335060096751604024675649406792245367405583282413268437557533063945427088217615817044813518570898618714771046118982243983197472606499483986397626476555438599448945638857299319675771515729511991603664940021736208825863742062692669379281259508654449806284125892870881540928007090839065521658015234116907866512100327899306782336321332292065041580617870328564092721909164270178476940917362139308368451268111633268722305377124043633726552867967179166732821300570497038014958107078425204663826268503574687729942522963663303747993980538807202186206128954168194804026810747276852690485626163040168778091288144902935068940571842293278080473199049029745351177601169784451985212637493288721612120778451224066255882867791781113849519462748021980687939891340912377075158244473602733194469603989346039321433292082875987690522277294027288604778324508163946971631074480386268793381282339783751261321936292568609878556262657951601571733841200352970749760953830098041886863288994732983371574486057125150709620706404861324444494382929101824347231951577125404369489851264989002524527200517978266453536188815144511515276304394799335883987893178954625073678357786242344238030880169990520846261210977111051907692918716161705821110766100090252303904903058988171635611510845233464538232760971004059581261346311718346136281358750809471264789944953530569958734197669737868950712543971231784298617659978872380200930527989470961116626015854592113722028715189680115359460761986872681368888700230919410598808053167500066722486699028020810740117706996093072673566974601173632269855924267107115174802335185641092344746215713890231944220898907826480353119586913546327084803002161372053170966994278946632254517184204611221181414032062407198443481937845106710231074592988297900018987319711493261754237619813914287732069657958927913087800709411960266189262261573699828115585604403358807737668417617411771687408096371177636423509572245835039355761840641214261584291234563413998236616303408405894582988500835816709645770964296879794440659559844685663667815616747378629135106590377335115998687088826157281104605190766567956378025391133078436997561436683367071414842617455021004448754781828447530509046195716332512874420815799083972019902544387472830065491493698259186609789513379792557758160097076214791752898269185547520804766279631930810662776880288412446003294535659432566525064275152917650117032953713721914064301783220174277947280110737358695162926206225812183043507948270450594128397913555858211485608826250057741936288742029477363491867809403056876509483801764435722951198074968677885557696495204611168876768352637852099956704970744016756140138943513767414779625695355676165855712436846558257037096759224221020446094709746456296571286962430220613235032449525900536635244252790606971865816104469395624991456717736978910468329322903584873579292758990093634747537321099533015813015312284468580387747110349476988748331923285413500161332744129511149980950635894424172065147454641899053313662035918653415665010314239628226361919427520701628284957663946329016095578497063538645823285391502777249353564256237104662883056382907235294673256875587290410529509099143807291877403341534198229771806287223227555678528861433696657837300623267622095346267053303627868884109397685430725800358452452584258085691526801097013725464001435602372032256627416450518882718498666421130516977578988263316418692596508249647331017250786132053882666528780627842375319732242336336061261999323066218668502061616240808748398676952119904802454228318734536903135896786418421529926148587138043393414632919734442751606092518789984179461298065050677465107323074423604306315240154419015130203227778867314315339740533435287952752222368591759606015170794260827920766716918563428746728709948052522629237106112180323215389248593923103200966245874866726475542316109257292701052910091862146317916106138063990582498861079375999246844800175813996647323571852455154952266417287950556414880314686034841379039446534638741476026647496741718325786120721671298750991341678583079471239980818361508179750780832363538692659280299520442880987923762647695274480955219784029076743446769490055871983271632096879425427319223843060910664751944943176986568655919180325809436050972578622909536610340763840189741950634684978329288528680444125701482362413294302342011595963754389531890650669378640114994458217147948652393568826704012896680234544626866341699647140835022932388383390063872168143711690490524680768300975935036713727843493291290132884996374282298856069395305732970952139902887839426703175743361631458126814358948200630720663680475228896206786016284333305410506208892194776629779183883054694686457112835125452118132129090091565752462145481123193715482291473222376026368967922805542779044530802842998794687395480991184065043508080355259425632019528643369826219820323656604710123828636345882276206368207063001805240016231981959228267118952619479293691550992742715681164404516852360186767702319361789943081055207174385726617589738092584093827987553922451456671594703322788199555061161320054354230569066230948552578270342891741849613859118580940007649510648201547642378199199845711762067061255153794882181585096631470429021497322899988802963966830694470768425545580100681884315186078147066800273238815729854098332473841307460207933514935642801611700850074512877589896370567561909678956022864830030125059113934209792549619866770443288523648425261608302797983633078806157694927824675546446970570707351428784930775215191379804472210722574483315656281497443722502773095062744078980724162176335305183744649352648167118506942043340493110748047711425545701514362445259983630548408119978009658601680183794908869306785786765075660619396905361962385110634596713572754598092936852440369382439708474569000388891151208614676021191532441349756847576088695704611016694957487535140103051721021630810651334886639591142191191690910514344278992879760599853595482853208169757178484541016357804511775347870833303012018031072459635292995163180734696461973182466149703538543179798594829195334107559173894992000041268091296663052074022327342050406331566504452411930686885498119460950638175845600779837782715613050121377019355302962125292404729031735662685318381702521282936309386071744621377610217757502157126021041872783775177713572478797555699897884360709290892128113514724961540770140886879129748324388120795725093134546757207087397711120157742406007192637590817845760871528772349800065856534666370973250873373389748401814658046460597096266072121893547117617492246368901071837231674620679726807234792278202336779400953502573092462269719604979754246837470676365425474672282025387688622429830697494815957644247239672937599051036114357374032757814946685238031494444615748032798860053326450865685563250341856673538184150475042515098155124746888767786496665805849899353200415840687840376160042985204846929235268313836956555196081713993403183952902849250527537691994325743329670844995901567684814236085820970581446059384295965594743259263322114778100577467791713600309298001206944271981615494367911594644033704843013244378981265140225981241870543923386499045876073538402870583504968022066092215933441102176876916673436424794972391750650664148362776098168207396798564481650974997313293173482199226351823646500603412173314541390905048837160263507355689610026632242772704257634426436915764804629163842379416278635435743658218310268937490761898784249239531753965902588791605750597129792075147394893159606870921603135922618190769556331510767415399905057158643275651060501270480358605202401700907860018287708573790782463423176398521295179118300871772886857817889961165802578910105139257647645109525312488817562887208216118741750602200497643489164294956847986172188194410900853947583671651958159485049600423125304111173076843239725225869130948058418450559047736772234712009978787453277406043270649373490145586046116954631895742333160572813019592712745679663741494672088518672050415589305865969001053965492945290957492068986728902978589018207688856511594163047754063071086201514219494110811272040441909150282128676237398343821860809638587529279043832742926730455514699279109144971332985524025063561380210960384418768580309236428618888874964089553875760983738666788869939774794690159947513808092764767073629953788357799854366820309550964938890074866252699766643845683457782887905413375259114255372663057211732298275425202598345920296461506719049253748354897402563504022643633014149159461110919956551215886753735618613774816462039854291207810760857140762290991243533558515369571083560378490127934069812306595962522471896240992348096008741449247615720689317257068304884667624262744381304597800580211730827565606190329503288710349621875278355256866840417566676212981788952512872528781606710675765384896622319388788795890600572829023861412164817110867809077772730072081853454729515300382919916513505134510290918006315868449226666378163248802864235610058143830830825497152989274796384163643323752748787816969667780723661115148309424793666943976044815464127242050801300747713853274962265795072309259788507874780925293942289990201666710829801834644200990467366150283121569423473090788966989231979134911638800130351857597671614037035839548390475155900391869259528414630200455430287249905310063431200821219145932222075498468526382056850029275324909677813104012445424255796672048315048793582316698984459778658195831508817148266417421458644285252014166413931122856117338738379022802017638270851006548912088510126331885370117777011436096006586136957439198281414872516432853801015557361015704544478183909737489499256847009419488095831629039770594606464483787589120506082262284253936587550498091358271257292032037099714091431112735926566539826152636294720358291914079297792964715968323745145949498059655807688761736445404437049753653274086484125293794486050179023305489615762636886504835258445600856595882469810459809514806302824474055538898195903795214261171336936367952989549175893186973041283935674368259556982247147649277881544206081551826482933459568520924714505934319433825288898336569549739548683316523079389834051561497472543282973949551203441991307482480455464937458316893096555947931787956771632661179370156522639748925827823732588285326327241168853435475894769946223180275932183373082478172683137621397701172437470824603150331273298391038693256156367553502151437662951625023630222107227489608555262348654565253744710901015769641237543235702624774335280919439946000900335469342425551796571185431464689405666088995651058923892723822863432258404257347978445500500382029174625497903979598681704103741493475570097008607005958585245025690713120463797946774775265771032491213604841319743266136879339893502372165041050100996283639583180681809821264816756903500144761159911830766156834167873494802953428805700686427140271664567475976449458831412926055791396676386481497674816710898471962900657732696451220323019992602456203652833924633404256499469386696484644313972971050164157686083643703712568741651882989179285664044980673439499364456173820169208409481468504519311850932400459558955361012813122390994111062753123389585686441144169606998133827802669560873911359630762216094614097176769590394339140589554117492435012734528077537150639985996224212411819481098829923263536885650442590644236015240714537257868134525326071709308754942028169467341242582823512566491505226417353638687213721645869778380833377616213987695790970265139091131932970945240632482948914860415555682185624894568629360287593166238820021868492237341697360545839608179875397072542160665196500614227908490596737050871237392730464660877708815501538036818181757021631871071799684011905686134794720400267852515007596795030401619769550277073155635049925643781863788362781239837153770657962876934736491610605917627883572203563241991396199807259600889189158358991455598900409566235413548996936685404675621405357597993143674480748607851777050632246787449761791005526878830260806627011413196480866885614106160596985610800034441869687996489697604720527168657756685826358108930497185689904589092411275390881737725638659774018176981565779003083932133713001216107599325654535520102901499300591136274503197727257098341804394065792483785101212746586471283319239911492845175069229536500339002198380866426344763270433407126715968210149509279916530700978940806525302927005267988125475684019275901637162881804643276433908549371779839532836854116346278816100677895617545625720516961354395410316945124108146405081833146535024269032563163909439203508241881229333109481770877230921005227529621923360403562229511626564706420257838147022821269312981797423110849138974291961093853026567105273367460123604943155471967550301575632117190933164870691254630267455452941778936656583588661443991050726866145693457444117541930070916517198044678688489231654376077214339239551238633786547490124524423986615863262472319900440093106292441877170311376268337271544053724853413075774117676532985687412296247723926053742883215059818724804776995955401067593905318519645055440846588211034386855146490998773434477926922864834666970619816320384775341477709498796559971149377598980726216504669669657691611576277944497995945204551532360634078640525299960088228931322922557936605141653607483406927062105730620569370578680545168474477211570958256043150490950016445986567034509487163339804366044435742727419743866752045611413315646677213941248458081091346803619427834398250933135901762960026701895397717830902567260347166415181980447555134891720441773053761594772778368579327411110856491036046492279226275879749999226321076556513545348877766703384791368312430337170272894792617917109526945971910653999443618510351846550701079300544735677731571945566677102953143278083706857402075734640631707637938765244294742236919337681674697042554217632031668797934347696870628542922204109681343746852579619042410790672522827527522296905895675575987139116537375442932233014822288621732528068619064671965834690823275704877087765640789076665102776202004894465889725396942864773934797708096952079954491100607834165206119075899575279361392786944903718411519170862626348974105781082344329419928512548626591153777347882334336427753275090774410163565321193943826090927459802455155136596579415349239131086928377904758477967130360236813915573736190597240039847187273372634698074241598013977232555887857415390528041481977598439011684262153744053701242498411803913363904785487076494510620772693126758590247406105848739494615562653735180684172115575409173304131170730637816774319379536672890761204197869737561293991557563282519780663582759094822818537130635838939710661293900846580458721951697434425045609841427817090304244736329983096190417984861101361088045159287758059718555187518607136574320935072370816017979964393752513128238578938589245471663038235875759801075082178911287154049049870401584836665847165395360724673507384625725439538359221232432125181208860065018059127952378320166289036011493766967451240568435782566899190816581098576752063695272065904344978017447643046082161701464715339125275857488873135507907872882077932170200179747006008736986663241029031175723617810655636802841760981000462728030348488297832434490900566065046651093341472742561475007488276535208553846322650854793772557586148361429815647895343468882253042018920590333777866468161045722204776192134765374772399952892232116443927687025690256463494750644860701017556981923089297716922217766497437542917702387465883957858557796057246972384924856985845053006048479727951127936755560176048041166474752635469026155060813386243368170849623771393670678675586443250974988237156122981486271960863763071160553109743266298638783603175729633235665640967901729919011453293642724316116755038380652459980617517389514021481073984927175665381260090442006248575466551239356339254936276891256950486344231512317806301414917192780648473576411761829492810531105429574430869459841584712818269910536527176465968943316624633439689294714661648606867679752340663314581453853303532702912551172565180591917869257454382446768986101886872658147366652850774845993488493905737301447691433443247108190072403851470067705159034693466793796051671689492270787526552944052542598016477016779857370876230892031746732385828545733451019987437846208468039146870100773796294913099033796616071932415656509595120844315218176037212994421187878876525237147744672639199834342338461287073274907299817633956314617268603843759214161232713205626639650311878821814695486056243606586547859921742964366727121211935576752119350836560812735028501507655218764908776400748143927405351407801464817051061472602474329895438597012702483076638302057731270439345242553734334412127262250406905737174115000201451650085848730934246217554299151561900705260786465119506506568641395474916598690477056609564190397417501953360354915696938274870486241837310915326614786326930671888639119475331483938110381599134016342863452719234043469694376434965929272613767955508045169324485818866445997551686305051123509734424053721781791951873165255058567489418885145545371217859928751002847471099378292859872904654807903699391188135092119135270529752504565930885386829512023480482197140131992046721135107211766826317633984074562755549273935304947030882845091164545808149410721179332611852006977408593988950870845251279360223159947476132912239666021613288359700472287589344293505048736832350331842672134621810245928871235827243003292365626857510422229883317101807393125591570541723438130702425931156436376228445669187575244568200776277476561834636440733694220927811108680653617585043704239741891518129953076736049421811604627933046760735834646719114033785669977318888254077150496846967776845573655697783553859464735033925858882528012108459362116557487529244233337510846539103839191867980009536487349497622829978936340871024048407916847450524753219723035818050103350645136757823470190068922686033567635544942677000236682697987837427718711584314949026218579333490569911019445759363019857219099631860347219781993686805420949905593761763191828161942488917777727292550866998543229870767349140710425154677362010061268502284909106078358990111131348017396087853504959449078943612441577830940404908692520674284868790986732850567736714552159472393471517858527108283549506416511827620266087077633803693067532180786491313400406970114477390756913990312159556446626922439418112020021878841980277546731032303769982640979224571385828360794422486187425048631539304185801420768404522089757045771652049879818562808655952429423487757061993619452717446428803694320310262283949434625255797345994794405895342042464463025361019392013455516364471527415332103698893206039090918847126002194473017971965246266761110953343632558354040546650030052602993791181991410359549435964920900122612313303825476757233577603538237570102701030220264311228157028840545814366404932743497463946514835055743174002318168834504997964862152320606329771140170570309996191934946799214520420005341949828429026550117135105255088816773159144241254896434589209254122791070934955832864857417938719414006709153242298999365792394331000701107115051249312033677102491995535533382453841133589467294961541883177656716107091702614933642778646582206521047147995286908328566369760522023943777383593616317623624342229493800619412347006918738424907067504815887401316288021610522681419522818217113865134845240959995171257901474431756129462995799114272777206124893889859416018113395133380067587117583354391896042507376317213380736362596704208754170707269059958673452384462259284031529099856704424219444941219211036320141762996744338623517355268431020538195239205994365848614219258550696656139333546848893737009257830137462891679152354994420860840110183872373782151925383349314055473893721954722726689493567831492488854442415872694610951147315525466332630690811658781582369779874304868191785886747939850856909836225591188619180097592043699418922681963524382021816100282408248094503531804477341374618775946336644232151922128382344943345196729836046033337736361650975073529624582881865085882502214607831106256264685149460706441222864046686742130250481705864260259292979882471972360134468061388700973147034515467715554395057138303499360530139253451945310005888655432149194202770319918907362689506332053471876174172854444507338226396907566960745769334245560853049385475119104570106357528226743037932501657165216557997853775807306493029820561108789166644000050271944840556298128274407482811975019200756906486007108813911247577494918922145761942769104208695397815482910302804510240669744846719473193885207110666211573275914345313909450447938132264246750512464205542392096484033824148904791579294177979364414098267963794637187225924807746029161109930606131319175540296766249624105145105578666926439657644415442632371357903393736656290070271630265506681174183226084585195102658661783640487044313675125744132043832212423161532367645520563570978794134308580716386187066445714807216832239375472800121046467360156543228325820693687867935444323319572791709115304661204166390551229271419482228285569312730866182950861196257663650682094279504156876724865352447823373520726297099103050983506652259066352465991029632600082293175203298970068943448004062659717459221651031280215512590729134616346006428846114022527646593982359867745311895017771717652368289782934580270217113170220495806468344265279550214008201346910592028608070751667251935818400992620408930718381629726772994350654111461056934795532124109510744183057397114778550469322590320266450747030919367337623444646960235157139339925866922487823914860769429760612750336700344158617029233733344206545841881806822270286084040803651623379674316309147001570956836398143421304836806458624505858637890281708909852238993221069918500235022021371038501285510195247987793992154361338747619465082010508565352815050087443776274319201845214319252403731379758730877501066991806196341247310695673882358683620161001942793239935235187959698297972948778913328962814611471810709597616925671157250219528762041118658651238076848612781738388133177439772288494823926444339189578329221309721821010192190677457899724130209253928163125046532704396329249192649600577230338788583325557113619985179063843136844519799938367313751173988880097577839857042708952626840723754108770158530070267741675788407290514691693188369883446699067523759856670692180385508935356631904344338497687419276856899271843304520645919896041746406006827399783030754867028617261162136541155891214032501275549186127233243803785680756940786931252018014642387794625518365022765888047650255800202645121605648086618323034244134068396867111674170252619519628242057857463349638040527823657687555661138084388926565243451633301580615755799249363727325217264886303486783951550930568176845453201865909591563309211715530896722807762038409848311160785564699611634247337681096241422512501342705632367518648720317672835311152117138579469216459890639557350749234699620820958988053590430761047150054924659267255694605474494334370949088334480635383221458999545568015556976019658586150175572452247025173845388452682530224745625616629288181882499035926656956984810042004112562874075574000617487343934953193088432252282595694030505724105530673846612280844046576392951682536397890011760527770185569301750642595975792909897560163553591717540172499891125893150828733940904932891321916807835694118743954515999885407316221339874839721928703681269726530904391610836589054018969455629382407398347101868710416698329495320474990605503713614878220893030804506460045751641755956054433361605474943537909306841718589383285433663926628015291278466291830821385274020667935978333311430072590256678573217509409374644809284775055344059443229098510396447997726288882196848328601487695022339957354443419520382136466388950214706152942360611092815311997195370953947611610020212301388156388650657065097023987809446525940212785122333513297169260869292046665930235315245118927409243879533365774871756578817523839564325251559797140638011103626564759602699838154958955271186568325846627523999411671952956328779349551711803665674535924227775686147207535728341815932044704956912647760705441369412328487124482539097221405116199950299466340509970318819277542835287276165061154560698387400117972383072735942742212075756718130866367117052728114086487145175759726173073961722906608506988153308832124698079672093972877605669983930480714464379891784594954880881348051978196102286539590507953600537436564416261215980036845249604126421589820255752021042146350481132142004175330190911909820879946649527447899929079448068113096960834121055329317280320004468204852431793816134259870526603691275939509207972728775027786350004167197688498709811768358954565126930050748516022015280080936780768866520950786888513979416062275101639807721312002249611883530196678583849382650565500905638140608701075301315891874236232114716560470766063454949195053612730633868154272569076348897319248673392567920120172276770595017280403683581317336396949224068914699907153087834002392184909802162739310282325469765150084417653938437008028563412107710441494427848986007866659501944310407213252773875627929967968893270318081658993202578211569964066343990510645706704528723118715220458882699688806425843413906394036248689243643783104199342052245951875921182840243962018971501270615060390118584719282709235551986333527121591971577874880192543380522315362030394340138841619230187615786367009406195548171901319522870398549544338479246860074423115307806536862371253442050986293729835556389572925963824111643697409645431616495359953742257455183567831401845348980807048885864336094308725799695294036493180867350170240242629998719161268430473824319937587398823195981558219323958911382938864169319435276784923712856939777571316173900254772416148334349512392668251959425575816461676609195358187203356270010082748493224588837039748479092900192922358635661935103394866604650683619999167244590356349130008456346334131082102635280209708869196587541786172498618417428577286145373526472879754096287082064919071026148093408630044242462274523762576249678650174859878426169090227149358918728800675140258778520358630807012365121989360458502756354326406134430656952876802422644031348169305441120185376788380533618796433155823240023136988278740137015843875267081947577630330448116379610406241903908065335133040963128297477215066590347143199761590134673042460869379320771730453604773199818075003871721609592336658200265268202929922422620860182496265512814599960045282988688851690870193929325660733128542054325001512097695379281916777114457732136824879230022883841205459300409123413122602467451253762473150744760819851011524757548745978078144354807849569230250151295074958249397500712321348090670698004705379979753626248365075729841674425747131046050171654591111683493503127195189921188110903793734093374314699858836404277732432047891715909127271711003025459415083471743353584741089897376926520966367715572491996716750389115578971615508316035872663561286018193574608895492414975375188651337921160341619037072784322100871286594092411671712809748641646078592896069082967703630728608653687186535922012734657158642452269955464489978019024885499338456721019995346679363574408154269536372492792998657595264941492265034537811692100549021646614707958009300987048201227689725860634685523329764644381560152125690315284138304629561094369236887683426545481486865608112827155859862363623704259086450000753138269825318028919529049603592558568534098479065985967111548328547623007279307586153491493470241972841626216915119725579774325505970754935695053324496718328814978194193986081952021048622817715081531430011877596915634433567206178301817856355587518937684620687543637079851037291030943609342745655901417444856193827740306232298828771679302247152786846541204159859160038505997994628874775694760509283729754147822267108358576851596698468624917508532859583542639657930365207528184022277738700342080147053095238201021532276954875506591767684245752970122557791577198621419239866064170272212061756743400708672715907345178547203669399416804362790978318180790313467675013580903605814873379534329885768598232108707178241940627756232959097921625051414940595216875507671112700115546523265976068674175459382654404527931066497146353603419787445792833858697921094107543740613188730768580146965775138615283800040788605089258810869473006649484408863238072697260873208986741296632847973299113980163668295511586816356362130788967901936250842757944904400127421628785439885019358872662802348608464850972547186672620544164497067869399354150480973803959864388827070223181114135323466816208078076694587356279731668266191207321009041737051750338540566297078169437172131557186240351250461493702560628687851402987703029954790152653053953657534966041987601349239099080115312368171501821304968630487962179318866074752070406429428610782730119942709592228502365896445444156480304762087055345759574624159037585869737164179275463997345153684445377351998412293762041850908506463777930152257575198069622492841588157197641925637181505995168408687825580120377717501519067830255333573101359632871533627960640769782392887823666769317379081007354457611980613697505458897269645899506894401699368274154163827250590468178692157426875618731441265303228613705893312615461166436610443200516930416366060899143000411008066109180177599605994446791015403614076962274154740797654460691007315524576771261242809418193988095514038710029211155137663879318953925487558351241586210395459444318429000017458504811583724025345301085188353752495263778523633120210375960836631259292798958458922473117619965880022698523297350425374484573726253265969372689488211400838592373826196014442163593760266674685473564471117406478508585292224811886604350715080805665746083811822955745976277097059258050814029761456057311238062589467250682586185544398714959408650568770719271789645625443813382027593885897972994675988696081287330136918641007907471855578476731522915641079309469619953532111694854037822413439681160275184293649008113560953388496704144578751989923730506424442765878376510312201313999910438296440422084790936632378918363241940825704106153339955688519093916070683147926784411192478844612602328309659881192171745061575750921605550741350630726939866783624740814009159477404655268896467023241082193650259502542767276113342481719547391487335265257177242164012841386660073181856911699887740180926970242131059753736478422406904316781461767194983949116164915506882073803581739530002434767710120424269499759376721958876953182648463796126671322245483066012723415059834373493518900401709559415888283296197638508837087558472885078584950012187321141846891863270887542872176922513819514007442775164296499127405114216444652778281242269335738516572561979199800494412941338193722141249274231917984288205121240092227957076662486022662377199241697097226159940330836776751383191032333551178394054134693007733711861981172992239110544670419399356199635705463556922022846197855451855369314824896793404919540718294328621437989113073499706586887846902997420303257280309753253677911926263870200331583499331438560036646971012787803326031733133831553091913296425473449379370066946649100106755936964356370880571541882777317835723066939149584441959135182282434423606614773553697818594460183799337501154455830102041511937540948486888116347682698259229740727979372844812707452919790871096279951876421473586632223033094615606968176105702608249997789558820934990334513036280626952943828297377051560064725325873061399050713959673035758331162977910962593166655791993411513506442142754505052928466808110871042052807946827237622847448631229518991758172151913628339161378754045232548821326222224561077235370348692418474976362571933586511251611102187409803184427843615392076884186004460265914150964489367961054904174955249113056134490964730492636289946446012161990610899818418858832054437248927728342795646034365056820941336687497575248013092990898780514360449596850246203369547749478532871478564913084817645646211563375519848758853348660101254371534445039412860917974727732625962438730100896122618587569756468036111325743033902433720600456701152251219820356763142143928612940376825684817762460316198738109778114044282988618101518808200199424562266725172801853022665639627680597219198039554010276137308982429391292952706183438096831947871847223484264175819220987274488472706772630747176404535835408993388150247406707257881895389637928144987032767990893407545335438437033760098567337670237041545902755841940153166382307206102226063066343477156874178465543749989607631890350124237575455795253690129553150060339018737304231155637954906804237599169799484160897452408199899082185928408974444530673326437985968473480205432820894332939736652158825251945152194881542231993895380123865824392146707046668384942195477446490960126620627862217341663583741806690881209646345432790686659155033668704061097260908477724248145819589628875606712390550358390177372113124287651424247014856604630853186600439965874555112436893619532171928252033351654782974249543970502562846566186311266526043679531887233027417943911746312719673587691304523283616585384857854062102608742434875911091972929270744366547447881464988437652206947912433643770720866109730277293748235335866452681952708430097830720063081381422055741102890096130898917401867717047704941138004364920201152917953842196227306853063602086340316703310895521051379786265428778771089705004503938336072650292854081595373696024774750169457640722697288426729251190479265384305032788741204294203716284011905571647240581100834161948458779124468533865208296759901574176108584846979197147015785306791713673110336936875772467611388077874545567635550313598235376581996134472603546198401641410014979348685137633149645867563014150274311390344360031965938397981396976048769337050021376620973293833650052639195411230166863110780187894407249708669412565995447934369062631948899854869951850643930595488018869575788120405998806929709956470184352773189632338105526472243558797972770942714096360518247756816334450824041466382724527260674685232911556888407827737131186773629493572056867326408466624294256365043522628457291695273669112348613643908906408115395868556620529748715091831455181471464866025665798719929597583449646860258622203255841970528045454627660815716534015206980891860085459836044779434034305578461717378567763775917122079677373454925446391800691324228097234012474416736619039837380223302465552098789942690271974796850536287313175702889535369903868360712263899527338410361237063294547604705277348774000986755073450974327297944304416834136069120814590275637970960105960080980030946312944706308701503858373598075385225816073751380901785896063803446629854001069020515952581392798601736166504995425403693543015431740131803272830677111243931238035229088066112192138440168922748306139384597259089132969588073074268453123478879515886215813264976649591029135097184011107902940463192647011141892805287568920143378297893248359868597727489601756239805691540988343512890670187971861855919353095640795727236280540880021191252773746711112863050161979507310958601247797039913808824140596805074707818793971423905218089123724580590827325496571315334105617029742713053168890979933373741628287246107511107152801689392514106703848117987372246318897759715878788752650432541258060593964135105639731797172387463866297919832102334126312241599874045716709192823848726293934057370587088919054501813281517710995674336800294278457311277281645497592019182453589825253768453835768449631074195686994736373352955191925595337240756520478816790339734885992780611928257328044616365127397493701621715986980812324654098513300285947378438973910566639829738384982955587469856465359721841533809621405299879888707048548916205033571660493768674796089257733781739915076876497966201651945333560499172627098229399187245673588752496612949240003204794938749915949625809512687513449423065943663680892246305267140117985290506514290399689441541529675752993737116227370076505444883306032886927892501700783586484193771677048654569243160495117947136757930088794472096019654578420426755042777880054875444462487274831910664205046824459965205302505769176483818332146887289239135835981579858077092731184786677326109229025427083372824211676187993080060845458826180433246812702137751449514855836983449308582743816547539467519131086117178109632657904116004781589184029791608775827474062432915947926224083902531112877321045734451276443817637549778031707734301078475162187132311801200914056721409266139351469311559287801800287000942232212557374756552322246822296246302455570632591260269773781059240476601403394667596979048323925402517046134125743372442219197622290157737620910482085980520973175453117498570831084401804757102714586704191026339289105553644168416498278686258748543337227064248604237190721427589884356728220856157875232164531599171579634263338589615867536347208255757377824955661242790945961460044435396173676605487140829557419265856677400135071008077446598145350317473915376238264869604335761523490688715603183200553116356351727170205188711118714399150645931768716167463445186064996682632523155954312207212144235064867887909543835403369709098929074963515074155650867292190298954927266163850887662250767257284530786412722557808788987812148872307469087244860190815687701266759282187212483536000931763842485070639572595509033851910224065605619649432969272491823218582539519088667540244923500974679621924045654897082654876545956847929228631260968318772333972480321434498432837580922981021272775722400778425236010214850450236678387125935524106417693449151895368496336181811023875742410525625199310639418118208270117983133488218538615980869088890010313655643350983417275875779122618208718907981618055128834715413949829621548603615501306161524621044807214605183115097378942992950679675341699365550139131340422009457674821619365930086948388787908921419115295175896042298190860443399929205626100634831944170469196793976636642231421626678059491971899420128170182610353802659488286903198797799767487749646552369285522879800431659791426501452552021181006359306494933600232544945332451713393184047683534393396494433379040563981448057127046396638455759120731718960730295622656647282893251080690775247057829990798131083827705786037813243877962927465292464386167588611840887323915608779404949669009017411807010479459519450147192982177804042432200116015938103619236809967450090192466545906427245455257475856722598469276866272393836641759916309504525886968194826935525940406409220532268217128309421761866073243778868201847980413287263010273105892352692652317789618688434894984127454429038284083827204219398699406207759764710665051198211947706423678204827564351908691682313861586653200842518034725594053378217941383736293218300800046282957212067578097309791379656316850662499793886594214552639144696519553682049860168323273723344594021061213101910870832430274877551754163009478245887893148392018224479488820753778883947039329495546018793233362235395156847054204509709398299871791502535672205379703399898640345995060256967587625366490748348080581542885988394881148910913105407538798073844345703753095260449783133201009288276052027331809861554395260535253864235792736128052708123618367240022562194669068860679486339015667200467982762607481305862939379851553512782335515570432276828634250667793373383910073820512155084493928517491149030790499488616563385804792053411721041478875407591820873241783322465379628278939457176554293639509232248835294959979629971474244792520036272245744382141011512399852421557099524626015195283305900368872511590129709297469708693819093230313201041926431637878493351160927386079535968746593733905440201117479102962930879051091539970403277065593232117063628266982071382654638769472952124020813862275625053243595579448597130597848446857833354981223381539799847860734858709788621713849138212264070294695082434228098860979764084819530046109494152213712209633965577516680254021566077406281900501809377596703817513507268979590080988648643556444833605375571626515337724107452046182473211592420112813524942105878708330395597893985086612938489112137931248195639128318210276646620110703927885308448021463357624318552418297666479511452751176483935189996177281766161773518832365782294503718652849130384936352707618356800077259684761091923291570298893523735773007172258615398485199152963007741068353653228037485758199849389567739350032674431669979058371771905261753191427205854338605755316538496384837266065925313767064099584939768000388397119828182907659802366216009646403621749764068840807633480240699039609865595939611592074594819602494814810447445321925364313224086560793046300496649114695856443421893022248321538789964570077429300722467699357036774408242395433296137714197543940525314305350815054382176693680674878733277257564568381406735955636004980441514365342453885125590782163901208294807135598783199569715160018658589482235010671595286416802008779257375901006600274205277034060120203570882237072770599420134618081817661738055590833574705261661208095227075537752184319595983285390976162997601986778964294048841398342220386154712871104619017205308041284447394642480177387664523646020563871201618745887808737112555971556941828635561187089018188757695900838057822776587739720849373617658393358597864622722310149588178239047419345526301398061779046303512310676709132923862066930945151942236700642781437341789108606493389699564907682401463108382741035603477813898813435401965354917754717102002123879593607194973712273885770424476517547366402586147438133450770494022348004341517498607739747224549792644841985330118974726630775765007662497646414840077514805287327139165232638134525385041229897321160643969872654983434909133165268644703795706256046440527374243787968405884382244369165931614271161212700733730985436751956593819812832684249576981599857972975179932456999593563414028128826750127994564682378630944219979258001675331261097664741610721245895664222512326931002621126295526945620489105998236169962549144081429990233908540618166546287272649152450772030864435742035223414870936143422660627591138303016441116477149684912261296064591602453827221707652441114438258406535533812372387890322713172361286306472428203805141699858561471661021470073687068818788755196866727990575259087611419661651846223147412840458544356868823953421417414936122071187141821430211612339327646449641722491687519684611205056717639592813412746139558178738199293091993717592831443707744626633610667351242826611865722383008845396734159984952616896311718093134431414416919133023486090277340574154288774644736817969140203967054793629460132723362740373425360301248406047590835330436067912282148946211464603851243307450815296471147688377720109405367664959731116727067814840823488013411488162742651926217499633131461392479881359628715791747943576259201050233388209495361030654390332099737014603558072440015532552199248375655760536176408736804388814974036635364867640850583094348885835341091517947030629535371794774436271576421396903073017417398156693174769210257965368624717419708378889256152827504805636418563750914488647964304987145641153539230267740048698915648078546861585403035671665447609276442225582002173469681571065881267765154653682838782538188107822620095052899487971373060056965133321232234836010005290872332123297822249755109963691784820845631010635548561397200105176668910879604172202206085852748295886122519688757545493592813447425241458083643047994967964174695544003173588067513168448205216171489403797935800505620612952663512877127806082300254906206293639337548282136395585237408129562206942664046346553027087841302570154662436639234344915738584156356887333735560877325579731699415838632009843021382818363253361934077977073512860097860098848714233612910892251927487719649380617739576327452663540390582047522002262524326601189051494065630336203975584379413719145966088152903260052881946137161094866201178432351178027774356060057312303992600610945511011980218278651332975873381262656853324696115749842118217598645398954904314428627004946676122738021640753985389354820566807244854834687612694337173586559440599591245961464426576783058750923383442095015937503680485822951633044044304604834275648438573854525039625351750109663688451143038648471853748969627967892820876054261646269209145174826307855283204163691319581834183657244465659652610259265115258469788988062587041622751500916900023613646612565971519082819206768242513818109531203668198488584085651286819391010381124040066819790313182382939602758602167789133109658151328762968347083383994201032758740825648417276304090678524498715374672110138469162666380136051143358380470381885874934962831057456354935095356370736608114529686464664127577684288960328549784327027655195140264393636325806310761516303472223168216414802244598942934132840049563146205959596681740055231678500543318116958519842359583156502453434198834725263280769403360070046810845237360115812687979058492136962960653420258603913353950351742343363010671067940419964332929657600105025803176588492745825791070403252257414610923936954360229147872850043998990358606624852173268036425567877151587017854516602668447090378702263792903546708537397514680176126799225798167837815776739112025517326701998852004899560458714278923442703001616084059526590959144586981102307467580853487416289802151152856511660949302261265603454200594612053207887938887411207171724275380285378863405235165458007622330099529192292986216556591102951046652266718647152135989646976024261181624955681893169483881723004194137296060393057190458453064108582900308422575159780802338416449853723397071186647771681225380161267580558327728679769495815630559203351187204164498284313218066814854789620867821583095071906647869367713938028673584787858684258682127031404969407484404120439750145758228971247398070234153152596604491711406687666498362331845649046533551111717013259177628838040748568518246452469408670679956974376344616642579713183346550932701913541885299807572660409825769828954951401973463028096642705788747454541590678656441791382064949013422356187557777690681083043262125067117516755403826133279668647486161723938052412451163052873200350191412908251901474762871437957362245752550517584576151359735492254164873333500902008583422480342589693057522109778673244173884974843468403262584574879967915108371479062770178903150262576141824797942132247247194431343240620055011533361494371303388574786331604962535798199449585848511280281077783462100431227378317956443475373406980644291023022196766322743442436024574938355091208375043903708062199623591155043047107487636427104574395458822986570546972723843847013085478620494364412375303876287930124720886208443084165254841272973104146491153172767070396348019511419561497891537807167405162090951065608728357139814854347470814444779694266673906174208368396637669961410036850116959219658090760497371838310769733789839427603471125424398322497451977799277315215228561130634549246558531790098591747736598967824241623343990490544454211534920401318388564142420495016347192887196968590897700274348573984249809777030943814901263515673533171251822042660527045803685508642105402656080155504900425762393564678980591533907733248969658533328932283946755743455443978575182942886209874118944221469913900359263896465683055967971477159281576600652447341086340763787910835008055391854841850669522784839756018648254684406789552652905926414466558731613750987007504986109059337571578593485266384965842000767389732601767093141145992335725929078805568317153001849930915823598087407765731703984849748679164549622642464090731212211987338999057748785491336945857065398957906888891760287816146892305151597411853277295875054088667085949353960306287441826626124832038160754870758881238880020688290849337594350411336436523693686147517736593439295740038863969106517409674725499451404427020875311296245881949643163159292172742853035244833494864026849193668507937088224684630447262311317916339454945376027498458816522036189484931874937566088766649017042895158384783522392388356329218669640767016249606597299823490446857643441351113800976323064026313586158083619159931545060592741971742067287289187530415152744355244405972215030825333329213567656473810233215445589733047012929513461743231427270625213812939332577133936810928695407528038054985839469506997004030450407693242986259683815525735357915960025678550551965791995335569715817562060896899507139549548384064211244439774465959156964770122297679176580592947933232059652698784794791006347950467817995780503890722953602890651938455345434004235719964550086366806292752885583489589529275765771460955997213105746520374567053731100108078545256878431692152475537437836919724340925042286872286799231465696473205154010958670665737130124374980762544498434780363901517537457460555990052527252779515549356830439505785395637918336136485159179416626788868102353220868932770427037188780537910237079728076852620065596893054621283333523946025920356418574635134638682750735067579645124857499405029445183327490963228432736884269942017971060839554696086954474793736686356388583705123717943396343848197365944075765394175899206101539166146186833068928301042553785509632641929108129407792912907345170556658918998191129227578301336599092222935426680545772715123023694374120530954477472582278317857531032188463794010606376072488727165010680697893845171517587006451729023894508965492149698867366634268175342017334248639384466493847170056900310396161247970819738517851094168064564446475297083599297155541579922247744296330919418088784623156064290792935657028759275459090533742063786325136918911742202185769019066262761431013530098478378780045888575754946388828737893743340105863786156324740722082436160879086996470790345408719396529644728793428164085787895663130161656778545174592837228899346017938211020677225556872953341270184150358607177011284356572965723242294132327990825316714078597832244617757443450624419287727053702447831130471362514972749230569903406252713311649516182669838395031097816687729131306636208311332581240973084194723132544246238140939039904514351224155802325999540213665471537771887441758519694422239729090633161080570479056421090652044658751433133759656440082516335198950184718857528122894628942477397025080443288915967013885922535698191246536277798391616351296356577867721147654563439781849200517286408318246743951278077238719815654359405599394771429328009600993302933956326947850707193616685412364229193830428913516787424113628713815122684930735223502152713445572552225915765096165319157713844955929676568180920904293141554135617019803862213882459599952926552064151606719813156641298583671459452137554506082935445903758895096877796909200973282556201332808498505296115950763402079348821809712077700826743333783628835282476869535307717531345336840215612695848987983611575538202021456725704583201232933305099375675655431733109243397176322072370653861675002718994309106696401343606722887211601967025089198591984971852736809789082923871243283320783575435282606906524742796319606305612087774888825838463758726042048902285706353968956762192207432443133523163098544909760383644546427966254484711985644188887175009568843809477372145887134169926613301848152648071901637671259518343649579220625738783092189918767424344196417721176221689486993338371466564580819797994473419353889242973780005651277717474472442868870185161604201167650774814668236967775526230871255717447258978884988158378158547315167105051506435662232424171495409202417763072669384337454015003212733539734435691366530594126653110307687204350918084890152114015319885830756184350344621389445891449127836513953328864265349950858791909490250225759832708104878658944962280847433189591499581368050407818099072635725579173699385148815158228684813396370336204059380760993839242719991287830434169413126322297244442274105484262664218951056204488888393153176583092943526334853224348488598575116108321836132302110904632124062582555142964987149406632095003685354369503862855547849227154550400012405986830663108959613870583679814311615114968427405029361343052627673182608144120617356837507394122392821292986460342407555186130289468917198892652389075703446337877186578264250265097957463752774843541762588964373895194197359285444587680711559116253548432100725201262295388217722046196925017914387319507839846980834626004056717058497018930926889307888418345841459762871596084369747435684648912652460314323999359512051255822374286352376156113239631643751011461559620568990171872273524471138268484735620098213799110117898769373146698500865929003899402581901316712797664623481112856833154577785118995770424706456950492158595873306119791075314182698158158450516851906537112045569030923678297335796614120510158229311177237508903022707963932752256916235824310191515265277042734386372062089332155364949020228522917046713369706134048393560409267253839233815623622360570231434509650783503942613980243311422607614007866572880327008371999077617693411406119520207030268185454146873424663605243519222030295847315897002849438030898997247550024141974588418954781037466275392053207932690553752099395006006697315424419327988928873340949741855350487395668461747480335033171357000450420842912545611915810084433812762422370743886547265033348464552599461388130869910396895871020643050449752021983056670678399650580468679331412885447335515137754134504521889343110584683165697959797375233056387577363380101632675785041062949267710723611870246071715963668675789328204414835461993745847612858673412494714344674025419109074434092998284788593684389851539324235933159690528485531034033987814775543766803511461206472291809093886437953487939413014183861563661536624948193219122895326092417926996128244966942698347350632748306151346990741973754037200744941453954658836010372679012479148156659986713828689415097981047576593418103136758095409478382569175074564991225124986386207013202748175415655427308834509353576661490255831919292973224890297374184314896251233998476352603434648518250364304841834746237753704502604711916231185966315580122397167646337233983886567672019614267722653371799968965119596757317977951203209410078225851349556944129103221094427117651817291546194119752759296173918400769182127578212448729599364066028400869468848107165426997025429113767329242409556392384616952066352263103737179108341662908437975211194313095277658075209297190266889082327452738938508937567033630093417988276279905032978701264836003323373126884047907968149080441591922753134974446844545709269342685810203556306342323019619927585545230786911797046452618774494590854705415958200435163005522596650151539247015884301215871406673978223006462463392936020194984343342783635997176408371697876776809582143995383218241055550788457020979163772889899698976634903347427738511376318815088280796208878951342149772021551734721200976889036505336559270340220249109098435915413001784581652666991410796881577909213911432147864305064809145730506378049140993185317244793000698854837849924928886678957706061527390048087217197680204245734127930629145821785327592158511316944937962355102283804632267625565964037636710533621342335460646495605047045025033728777126515530810527592362744740949064559312131316379049050039500551509156191104666930992860986167026907256192133735259178317942191359831486231559297657646309783598661364496230467985553286976649266458338522214709715223087012386690318652854160140583266407067963402500043815560058414211496941388729418072152808579598628101196111300424467809065330757390450542501973492619042206407333799592787235042730189027780374106232194867789643961708644081127534682607157233282974779470778251421583097867258116292883285241052501245635261349371079958389526255004348817528969743587373760428870011317912132133236749440508445044947175630498447144840545748181082710147508794944602822034782716184742529330476461906171075556603110388071166139110725175600591070533928448902338828198825831676021672881337012664209699636043221372756654039059657792116705267342873965136437511550653970247425470034692096101559345215557763747798666984560777749507329088635956203903269893485321289361391363951011507781924186200388911457398098970798633180430503246294442982861529196001204759926520570113029027161088615296721980444339273983697132246848276807637186069204601939521063264279492723093753030124206518007527448461782070442571471660196020578179547702674136511567823162715939383318013359522915074221998288928104304633293835817610696369738171438681464677681897726818153772115494070305775696656741519312709887512204700275912061108355751148584320315521859515597058682234817323829290170389385768139653103767193176164402786254836093445589400843079907425204564647703472443105935325479382015351788684301390040136542581745701313620472860507830755940376591867966730245754734503760312385959969313407423937749282014783367600035587667697116336930615932290192047605496620001100712590221879303448717264172368774556324067856061781877429840023033892215609398579119609169096224468181389072558430878380456225021801765808215935524446747265545110745174034733450415106375399314626127066888813437686227235646460248721245146139054874971408566821154636915272572668847785750332627320509167297245316936235709933270248795785044511756368032753348700440055835791176160855151253707694038433140999381042468161963018123788226396183682127411940783672064316984516480923014927427326796003907560119738062780997984090497006451516516342124698579590828096033645442053768551995583271651214808379203964340633101370788200203182591655146748747488746822089911370104737550973356025655934502940208557430861712378574700935299301779547101163248341390731049886093978178057158911800156823494045149695149777242151144728636597363552138971159771769615962413258490840326327784590675483708170389243089335506697298852707329097907997434924551292170506520004732534960427033927480775649320325187038904409390320926166964711074234615281856077650077405244518985853356537894096111735731158056114806848339238153725249337157205012738299093000475793061713928279346612288921359789143185922420337804930364321501466345000470149929993342673648821945448669084570462718865721811731448015723948234332052042342675724588084103255856391374597151184925937933041375252165307436815835384501506281715845604515615508881116082280260236144908845685931565214123531623505287465641946989321392070941898332540113097741589243861660573848157367820139854681854598221247504405547573033634529594093900865212558836952608458587241346621580898649149124937780534780801295609140254932505540280134182203443140059314566366899177685952422963507708642679922248437058662784294737424894579790416710505307082688602747269687807144723660593458226154834679220002169763748678321564902154875648203148395613172133937841081059454175160910957015150188440899982930049874171077560064333765502033849818164265074904398953427865303509457464605310434332295651967954073938015872568359478646564245776552825072708361720729504332287787476670024128660739921013614158978948438149290960020499580630716361767705291664348363284906709586711676851845427703203467341511895291979057292983207231827565731036200036564692433255857006400426059586462580242607624410013715539388061658287660999860879476600038483298201807050975445166505556930820893970461970713987887641429163107833781760892567104993945047015713022718211622681770536871267087385176398473228089966554954421669209965444279593870727463244888250680487894195893970090405944715310289101742787315947901504869099910658978528708705234620193093294847191891055748515344071119969205919913183191956764455476624520131304581531079290724536759270834117055359490683731162857876671924402645378307746530870425245881927790259113632615547193062044517061671910121024148282551293623998431486618512728100583552767479744714041937394318484957107494009338273022144501479553771560845509162292044844290740014389361798046725833234811004998621605053273484383472124260803663979227326257153659817680092562901886917266329058613533381223068566278029077057606498884211815918521784522735225306645189951477392116258920988316458635939115405776587440124271681139895865546134683787962771713244401896242175242856098217506549467159383726470882720652464901907272330074895237994264932540928030649643483169129165246078291055186324117360003429043618321542827727629675440121791286470616749371611275641970622228209598655102292656349178898193182363508908261689970954730087949894434157466103379745402777367600140112606855471730408608128515795145709676438610069392215608586397779010919606439071150949114575248805565050514229036871633133827907798999907516303479817967574467888522317499118765245912231925211719731674739937872346787492914589613089720868188493770279480030293763574589672934031228172036979845485986106194099258681850239640962579930208536508307198120396645362484288738044946549456979086793270988858841053726365145336015410820839795338177298464359263284538377737389119756955326438938965435040760041740166343908987041803495732787428428089669741171862018202933053886121386778407501740017075713929989868255668410778813611571626010297609027433689519991316794129180999992709095894620590907304633837090952935115931130486705069450933194167637175494942755227495286644720953692527299680756111227715060257198496736763876977604330186941194522858640125381567494230213075898042715221562550457936605289230766102665859369022769366259813687931773298049159035845276175136879173622535953343312988765504777023481406798520460121936732103022162166847684849575386503799529304767228591222169766932256696825582286525850322181407021755933475185034425039514764998757148656906455717356500949339407567185717387706769518449211574754128419350890980458054859518522787205260966757671755315790008018262945897270210732346826897928232141356076788659921880435334972327523394697839431011546800587051287389273986341697230191920926718334829520383640824587044506910473016036303854682021700608331059297197078812882227126735513146341581512863727950669380190365393858930308164619831013690844387906394810912997562418740983769301880880492062486159975878315291074365022236760429222876452235340797468443881589367730846181193005198297082619020490853066588206177215033621778089191900326111087468842333972242956778982499724516385548731371206343033110330125838316772143714257676518900134038930333647468510986325878463469649549376878272891418023784125249005164094726017358370100901139199596154370776857467089032327631365188856662468817629704053255212359847255558531023549562490001698975903585029715466989777077986553297923049079135576072724843380971330595736749050319293167281026223644294295509676334039278354838101107569067190063635645760957012974145363875755669270052230510851718373380044582925000458019644820341455753885407221962668449689751612272730229321398561703466542707561099576116191289890060062972016355211365728431466353062124909899093998933018527030124685279625937352493544243791032007143873582044124179465418617231910217920571526632384468572141986240548380784440148861332613220310242772869421556472383008495455035811734642321707600347834666260547484124372737386347258219605864496003861075123815868829729314004162623672498656285776668547448087759224793952861746942981456557852690853808228507269202780615018296223435868048043905732172812162277206125186718749961430164075206904376460568254104319314972691398665448016530760711024919631175927397628953364680937444779007181913441658070644957543005342893626040527469499641750539029494790878952474393657788947946117119922979463183391742586687039690112610427194433782166847295643842507675875323511567445497985374748395783025502348389187890271517833531590784383853136791365583868259463091450316544483062664718018525175328401728410327830591422687393277277840959711098161840055782803696396268189845700396041151858732209407723716060707247891230154949869624511993076912912359807024425686889600040734994438750236117442388921593796783168825991482859273016263977500980310166869652521460503320731243342830615003576095181874359355176595769929438689963015698143641454581514473396273945461972755809260224930131436691792350305038166687421365493923575987762721902569496190829834834305664392822745056668623309773887863826210310255911058477404717676975238209596996958919133937011048379669532347984530537266115916300852082822807619121162142343455926384089476684316997885268324511990568053127019100089251742429639779625292225050229072213823261128982685801136503604328637321511941212197717483615210308114647932423862489523698746135047870001814000236651992036652943842236852509802188309979466641201251591664627250954829036674412907213332269454486454364359730897073815061328546987802978627285620257079969044327713837834972288071181510943374771501127435529578593857981897222833024061920823390258062374740846476418275209753425442724699334761224884688223252548510297480647517506479441799618204618891656506157321290984957069360080315874082816652151907520166607539750040003235952043009145792751681995381781577792954459839453240948518888697601534308170378811092691260311494080855394489960249180390329809212048049754897038015910336257221896409303861625135553589290313354528315120111618999563411824079320576759345901862081386198701716743586503289016212377216917526770945263525851598310483834706913809927492652832858270242080601725217873985699758820341296639971435714694256674811589152306903652296335679732689202588260089116298197804364254682091730135307734711716885667285481991795250768854521667849419325839601652032535679190849417696115829124654845579639068716543545992425177261037639420354832154823655610326610848909464110609879262176310645032343914294871321186026698266853825085328763630652268540336776763158027364497620026251335623149934641845120641387288314754220567342897054685758642876930222264053488973066739332041703804216675125924549514027492653715473702176196841175582497287721286087302756883173542260223936241533801747539549561473652997367089655577641194367964940836611327000331083195081312569546202868048868359963563900772705793772974416344419772321534653540737332672306194239083629918469085540389118199963909429178728593760033932282581545982232800777647958892895435572174374787762066280300364144098125388216391931715961897902494139703693038861827994296037903863868499549572650485251628210418824144510784671658241812631645104956591977214572149316459566766152372876124362955473150337408561347948355083840540512197042875186232682530376028119675310818738079957237959806172487522890325380484327213989317997665566711647719708106797408360106981012200949300905930267846354786222830221459660651345398605435196333712039247275839305831104488217882721103699656037687238587260729126700916179997966411806036194244855654943864130286409210961157297907269521652005627402743172746346686777733451198398713456101040366369074505517930012211802193366795488866365834531581482513709541325344847660140898012442410513832303041723573422509220637104442128327132334366689200574166759685290931775309927878164373501876400750579772413341579827165238731966926943403679474365486895825588936476762898090921682609341826801156629819724332938410722832483390629229782098577623263530059881858921071585638938128320900839892531965156026033364291550359759128017053870819838481181406626511591741920672832503177107233912762598839297273097159084340352461880912880393583730152070505579224511520648549666472122858162023037870982110635534144448545948788091846072883513937047958101867042796236267992797646361362624253863371115466833275142922148203412382840474183905714797714393806473308727305322559782193977010877609194654678947146112529175200995506485570553465789820576548519179297418649543256393340817288195367723347414543853843046266830632609708823352152680252197122596840930165274197818234845083592127930776455343713661741146482879042556859237169608801429519019332314463257932990426473367519514219032050982949035823733982583331249211778364815621248900534917537976957630262661783012767255203316009562100336222677415921593912304760683502219373318519996410407859080692063832118613346701891874385785993024240884800011718931650741808016788904841819023637136311586795256788907889311467535076686502297917336791383497254996222586393822757061002100248094252891454385079729562258045091196684993410678286598712165850740002830358519677628330375119251168876061241443948690912450114484887087345286599297065996422132297871954347461560376365512556080456299896704394184584541629749070951829112479818678307437629664903723165999446546263467506313089616888393787191800702162269873201080069250395881259767996361027785651505022967025779932085526941775868727497122284535758037409419993572816815760222976089635623406693545566850302859278838147432577749212030579166614601897746774548535393477058424906888020347409860903901546359547108902445909170691860271113493002696117068578958498473649691050565640495368934013147348247078395867177587681953141246885821356893590194377289635087744472642270787054541831346619868571626052163971146905020827937173273293380248998850632316478148057585246248495790589886449767619732805625114789971951532820666671704696145091979906957951836821852932327754777924519068044355605421713485089580597431064640332589513260386463454683343347264282468297179499521941212246107754339413514806554231324296486725715822328544397142086498385495032309954208125589972745325227437133412027688794546793380365938622598773041189024606396117757048674854048370898513479914435055781106914543304866168893986786609957597234106236440073231800415719502472502515519323351830863754239884576841774643996056690834801923158667902476251763629600735234569304578998983108680921876305387142406614901935005627624350713633087388572710232303529394547464606673920424320058227053324583211938738268880348514985690661589980707330472499762870549098314813108944155502957216874471992646520222137890942646843207680647212261799621578800546589666714537716258771371452617761716228903321421457868565379851541905512290489571940621605903777113835975439213725860012353535944244220772924074272514233427172590016742675281478700348788609161123757310168030623275439511239612118233277567746024176968418475805015522939990201853774554273715609185989382803726232811636606694120188798495347658118982965841437321206476201806537948718297179681759906432689474383402101082097813626785008320583922190717874713791422437786616312618942074644792159816124029409613791252437366530008590652117878124239921004755881070136789054845392594274923606742471774577679626936776953975141855339067909326293231233871563208651484435639284347869434036796527994127010229702745018931789624215316257286661174545719806793551309455855276873543121256886090899360292695783444751273714475521188550177874178712038487399292150082818059047129796799393241258171797939627899899993780059643674535143334950982303506824416701107985388643362702578713209657054316030598918509990282447187881836244541446348887522862750813720960391012516395749874899798657334248435833599621409153807245239356269252310799311777410712468858686485592859506294674626417066651430342633985259991657565930212551553398343715089345989731268502277316276170604212636017779253907778190110707276805129832750195528398519509976304072617927873759386222981296434880199783346727494311145486034822186766805328527440687115935078998732139482662955560254641431136032864874681080180527299480659818738015773383217258018883017453096324779962373243690295722387434588311865440466468789380510676604776546472455625896880229803757230113654678532032888025426144207542755309662885495063678621399545599913487623588781117397368461092697899560077023298283990415907357505706411803897723059114538936067206435663009002366230691270064405705413739984249008249315722444012553620377799746197149475540851976989710656892834787720119729110177898920997976095298068958290912483014803659132394652010662720900495927354732263244197641659783491734072611016949746474439992199080728171812476739414791479514189264683849813012747248430203070160289548368958339621471512647456724081770821271107790206911160401758421019487371224990007443924201126483928524065140006679870641257070649817397468912949976978702701341744542372561674580271993520551381354690818436720585722722015199832520403118048756043566050600091077827692364046670758681318872143579293225525677180801648469864998021989362453946222613980499397651357817587557718945952579514788928543300877150428398378694288266211074496989184614923984675070356260763926498690966102932317102707957243439227886691120197473065645771579886103341925717259376410624586751164761621734493637483436920894159576120384394570922199722681562198562693564232074925377620720089492774269676339039419868547880188705017366495647668529339898380564976050165339087350278046154300772168015418897621542409743592042178775824515704068500645298302061633159756031185883426650482076921033794281078237880527101450936568307304900854478449884019415051714307685790150531456521867928240597940627823118457137162393917732998153474890963727924284198118215476261096725127157514771578208759143383600695151939189179698909421019908108175871812388427534926454404733422362548437625999909794720368247874154112486688697405229838276760185594042794922383836822800500438545833517846773312504777304907123255385632694131138916584991760066648364522045020302100635794757497088428058040786879797850813214244767567267941048512691371892219014221275155692534838584163933341090628962539355999716562108545021617733095564394490073322952459627383685523756063107915242450707381197224353104030118368291878385123948949947901504296445286170377774812720327959373636845032874708573353283841636237224495484651368626211852809915972443576640658943926020226826626291060947055418900034483108704692760893269371368303199011207147422940506347205151862280691218004924877436750468757655079688693468945069586298199403991856720171792859212617866131422825899940673785382281185665589350650734393422325059462535974651412786291498842057799132289710531708766823603167465116779502444566045977421998929023610870891664420496434836653013598455561303231678083439250167533397384192668939941037936762208400592900233905195117393951156995223900416711692405255881538575566838792807804164749749534899070291253958432052859586043977458256649403640610088106596669633198226955734201163836173705148591966162732351436561731036983909412199224091795077693433817408845769609690356040672072414560167750342656738955976497551139709661877791295118636417599175805195697460197459041700200308955394699517523465636449778852317154521492867349418031636288223934506742041036664153655271595564710169271934826465618231966799937610081294783853874357570252057665210162292422704637662138850825708198761416359467421720169844054540573239054406660750449533870207350078429648961156102547241089405021530466359866287055072724966981519715398298479402870719100576205957990486803018804306070260445713208308722090410141612050692006168335366391052618905760176946048358284073501600681519376680363653289474562522838834975245759407662498470851641333553793328583888500411599233061379741649690054315252202209039882292925484888205879235318638115194780143446634056356583593519521864764046564387090344365609791316965750927594359358148312556517157683551353160584477738369076399789413584437462265170180157486776726301719373332296462905944881000765866649298715092351867171705093828628692993990786365567979054748257619908775305005857358821470528452079086607783563116133575708013597556431087001753485738439190419088743788433490380189652014707927038355127609047469663405387026077499044174167502044278603854257921340443458942510716042668444888852509598346530756524833277863470737791126856161970380389746634274842371534220243570790372267927752972660742160741121906778867614099137350955822155616619169559830325829093571330108663856135413768781008654563882578580181593270509627403050707305056502139374453357069060999596385366740336860098726947165389791694436827502969573907119404636868482098349087271330288954804522023174239921161247649681387656091368678108198201322941598873271229156324504308254670753021501228628000466139426060810159332390040719046872622205263973770411053243133898482215855957023752230997982237507071326347280523932869136240802054052147232831475912738192164225798453088293053347625500848793307928113717382933106798301816390484473074354584872934548529341131380387162168658755555536434914557727038603151188999334317386756285186315312896289048101924148154456184259166300546695657156874821449663776979822558916425950287021987823752281277353646413762702967904380865971295826076335474811832070353244631662372201230872444559253120848663070016553566066000906334575395016792955395221757886608653289162187544446591744592975990804874649616922262482462294962498716453413408834019291999721847923078793319174967957648315530627754929745203519880082628345321799913784145630291192358048985666305588590696001752573524094317450895031728507696236044215577455570328778164355410236738105174788135731714633937008937956259321877425694805921960931819171238321648386706062756025631745243301883489344658592500347113700819889219043443089738046489494110413857200011213413504706857179995442879453725653975096527403136068603600690663855451593823782168953150921404301608751486574739862077439087720016252777629501017733735122950993048304719408786446403515249730973097186622292915164538974554503069001814488372064206169754976868300625982674210727055983048553242813203816983923352131958430457081208081594542241013463061554588572340264196012792145411232416561727901134892033691686734426497398874504023053285172961978197733708405368135998545111011891329181275510980684614043833622138826755925495900578070087727567231065087443385972776394096860235279927863797262603703373790518420976134990727977644251582092025529302533514205682910243814456785189248000775721930333418599248435458670121983699465255526804753124358542093394643013284798142362887822089229829975028823628343957633662884314205987368737246764631132492500173385427473571974289984310389668830973529093206720487646515467014149623731623697933282309769392631327499134088046569323270924344684015346809851498068382016500823253862570649854974007433958010976158115015425325404016500367466286145637550855911797876672529437467301883350747906612469566667761994276007560118323566295157578857271821907993437435757812061475656361608052943349143908793549018367576192781061158586677036125826972362463587244601710007014311299663801136740274457237950873183699782836471352553491733130584874592506973439555388340717945835114358834815709418776367044559001646898298875799812509590862761207542023438499661684675669981264603113868047451956126759879876476438773946393216847690788328678777541241677785531601452908210267197760719309212026838824768342515759198425283922914178492516333600112716600494340820223642021069894687418168882745678698368947932256384339111746796423930065838536701296759935354132787912572873406756238407566530413498184788562691927846832656148808498837297611833402977415523694227943546860517878248372984236915789232334573500777558224490306695282533125821764232465686417839769412689855129009796137732059900618610942715941522441759055126566265876735986804023449107794433065845739079627337351148813879494321734572153645585727985615447383675814409794043567604240559257213405220463147579764668669851900051365232330416434990485644099844094729276661648100897503186696730777761889164408432427323549114707496805662784961223445600716431920365406719105749769110443147288629799624621472933815457538034278201071721750244708043020975682495656946104861691900585298080296008391427842032967299744296619736689671453093873953608374247298303223176582162144242421085641461053537654851070750725205487172234470156865982365904567678852101549482659112198031774578504298211907121635583342959113226455620080660856519257072984002256376163977922126219543366548487821522937422018819450344754669368281750874435838489986442397061446660376409484115407437689890497812943282642337055088325300695349787646910337418049966592183727584903291969796457734619382691518434825428781681224792894607950611207362096009974351628466165199695475779261845947972122077169403186124117515883434625838704014096508273133666520928724183766311832095077915640130533567973739203657595473926371245692969556820632073104021965169488095880416726381366999232267757504619294459479384246220146942554055724184795576272648249211909301771606829362907064243081501570435772024274604161215990145479354407514416644241143574382104672761978950942147794900293802345122946019274167552398734252084775984805683744049992668033968932447982946097831210463703138162037876240120738659959583951791404586914047809181762057449517628904121674984112589331853746174834638051450377033172336551058402402186512988420486770003443921922382202233011564281029965841939860101744220546977408921088639860279855551322988461155697585448775205336156311482155198115452788663741593051968678008090841611510223660224107298193117813971271498626677056906290146989898650084136980873498399629708762714239703594022962361505547600593867156730767366516150743040095758528181007931628363102403425240952730333254083759301944784070672046551652628527246248087957422988402009860940345863913078483528754710371671082386503486491883844071919231673655189157359478184836767052756767749996291553292604531418280087780796753055638091103809184205262947083393699820050244645397055204280397833626165792481096362849516331116374447405468826450354060299172331296549867714150436658128027203111660509993587246970401995349201114648881891025002034366539232059403242580422006340342909046290542639859482369142240221187494049142990981617226324976062640009654039297786056167178599238289009943522206652339429192958437687719278254992303164781424647512530505101359283677824854726294735191664319360550899029875548768225785324536320023308415657085136099430080665883508559750673968530344928878294464206792443431648373931613596910640188238885259898722745754516367481328208397701582750833624203197574227973346335820997063024948838518399257133930225157828702788051293900876385422388661746332315917295555881565100937094662229887516183827230672189002922217770640528457214082074957614619382555480317803862395847795254106075107293234619847776811487240860459283264065081721194797071291551165101201660645857197792829072205402499148773230404355701761917962175919048961700141991108826281343771182469275244287462974152495312345017274117753906379303853330253802387379540929288766830980758471927915014302894716959871235911613980559940630324680086706417251464004594229390490567816409744639665833213099311937613256585329364694993500316248527998429846977338590766575102568846043725375014299519570600132696145194347162996260935077552742230189323517215479998934227244555535720019936493874161789143837620170392626564800673438144441043069687088725210067936451951960477799495203171330653877431458623132039970535146883531025668709359682527342821569003521670567871892624044739437104693134723826175235816841243893398031362106599953125240853555608343883571214830852198762491688553174212748552890139447030090327713214934819331189612434805991968052944535509201494676749339446905794705311614692331885595889984412703255289997628843362102119605718876905416482667666183592941052085690376018722408649226539200415828549626980592499634295551638871095429672950060073255231004133751482097339611066804095689246580720384545290431832654357871521808617099460531723926869704444360838223327841030402478248587940572034869888101574546905330477220890704319976880582157943666806074336040618990154388484617315453913012490720101014736256263164468659607348039126904333887856515295343798069590103152682083652461217332408149885384834138989419667608207670060158994520593923605882459232191180358545006642190740073601271812555443952652689817435699033290023123922438411914272751220587724499798924753161605033933539685821413413224555297705749831281996577183428487045346182392626433091058784735069031302335833650522770008009389692206590473454727390059045554387254620008445108019716182574161006161706999810029386105993897166979310162625260458264977353129186762574067396648139674102808025514196444783476898563176701426491549628704088695295572884127423659863374094965667993697704817863976325811657728252065120704166384286408456418284316762947059730989190779551534374803769800344960700125685160655753048127619357530845795111132388024706750234367602580892704005896039612461894944452324657005951647144710375781167333024277265233068598776425855224177427013339839579038635987011519432544086142424926359487971589774797109939502635734561895974237629455804918448736350973824781334533930073639366444405694580790448870702657675197950300159587564543282765177077280786148556596950722039355614983941900163635023393257828465019939094996393869870804908407800722015089003183199223847280377077699526160218640837124758656605389166779917751771854224635848038552851213678174480716053430092319337574459077795929148965657567215861380909050766701829591202351221158619806951290642207867045473628607147329699892860306709798952882274903598897419386310996998613468482033812268080014491342464769525065476813950207653082812131009352128433060247338548386480689150217139137542559326877446595265553328717708867647540543657124678196285092297013852774241557620149604404522912163300440196038352910940213797153841762705575708952024687959944042925851658600862019429866215139820587313297755152614580579661615863914357430819230988978364677075835870814366125927980586253621924511627596313683055973864127410250772213678797627692589223993470406012863168120408330303494407020074242293759334566621711623633522246694226872676340419022684154833785603616866068221222544885601188101140695760137374245830325425169004481238014373121831043229121280057056505135495626174998481665461108378187819189712192430169007332336114852962239847450389098219192429152889458174144951682422274473854036541233077864279796982626630395961784885539615322880602623991405775478575091543856389680611465999927228789154466389997686339804081709545569616894607890592090419638818427158272774251520183967194957700939663230227783930079005212673464688350261457406085932462294655958038778303168507940887958187708593183643204953405120756266873568554624244696162702403825338822357158725053953430994764718716887488387914290109728875499237434434654923261847959468231935906160997210529682790842131638542211773204830190881662429791373381383840639650564520749492362824503207097343442954490452139548532153198888152974442190515329346222172439653335760425813841141847163927803103175477902316942059994997646382758848726643069845318806880763455215228936809680239043419956509941798371357513065743166946734098939545925376067792742090939974325405525496923053696155092752583036895657163025546805621254303555203308589943769278839043881486816954482737507405031406353200319956164502389034890051859736643873287169235152814793063383961743732769546574899623851211335770259576595935173819987977919267203098357158615333856600819595892500582931720637163338946097135697377539349404908628490346554628735475235743709117723132697592997789082971493647710148560573976073557850236622262478734303861241939338065946945539242199094436078099926370573248293330918104467866080222591680510011044684357465764130288101662521191841424405967899328763400709606118940058254870668290338837697049022494290739784257559971599013777868212981473763759959431426048018646293267957803192644088339240718209012324416458835776640398453728034140696204082847689291655912982000248761756605083530568834167842271552791207751935731195685463859404049373523886111664074443337853912583309545052441612187201238358684691856035884520352408651502946922382392113307528967187277755630083364082320149279641303875225565164623304324830762416212778782455686209198830640271456240452207616901706305673108084477007495165521358418824102457988234335614419469906166317873367530210666128286389957045225195129230144270141334435532970725337064757166082627677169927194994454432097613181785900728978246402265182233127787058872275242204582275529844596191171086369867867426037201845430608324577752834820174818867205628318980496188088696426629990412698747318715684810169744194832013474871761746724161018040142217189501988655388540668847765933062888059122337281522665722107198964743625126168760626245839054117966961897106867696497575406766359829107206099338992691523839700909655464153389008504854542886978212179116958726905301427500896081512145605789688080973659385725168346895963079798295322722513525864363111192789474494412601847982323894651557504419790387594766395406363032034776846525550585070883863439876901812788667489881122831535470985297488855494263044037949832177014587133827485048803101860267780989782992684954403002456646963878982297491612225800985153741645119567244561086439974418026214365233469337088083100247634696072670155434313350079607430775303842955446787914398295223605183903272541443049928691084750720895803054922335847541639670698814598699164209763350649086737035104864764160664213170819488847189989949307347556546168086398853470901453014825778943564284547831530760680626871160771041659444898536372763982392033551340357440074880778509586729014704356265555565585011655011800458116082576973889226575922956647464264104486432761706191906960518464458898125561131736464323669964302959604984324504813363424377006329971063434591757797575474663417578165473129776680321097575656254346474718212001810568030760103062889084490740414633236865963344222518550789347470993601663668033214381127815807609471562023713270354169479083365399776288847387096079373659322213939393431848566239387279522269015714458880643833023495307152926629786301514865129338089875252171524869886076206663497860720233089106450352734122336451456822736949960322749261208340707523358245186431206175311114305133985314927414013510684984234773653296121152081651589841572391928967057951224987804218037316977495707143348653931974862889668904912140709007541767014012669391869493688969793398928572723524937589542525621006518420360742137786299025679504793183982959107139762111190510791884731448007413582045634404741394422026697488323487502574424825454638569402935622243729872500420776048050218076285725858070854416502264147134864847773084649827271998775700879475204864172839230274789792370181027790526955849591625423197116810174143641548233892333056125934994398011487399198403830105584293784676282138670305352531580240335638700218444161923784376258502967577511057532802897684282540555719724462546914165277928918476802814336659495956351247355852869674586053244090129582108917801948868449517919631778667243643876528361993863508331186952714903939743166326244339330593797730123498799481681276738962008069556344343484333955014767310745635005964350740105846045047412004859578079759172876717384021894148991130237661925567910240489871906644500754421461660237157476091518549423131869868147152010124802670151664879356580237194011432617304012048212308857463413468299657232983569343680594923340229688018626249689693074335692686994457157491377794109069808727854108327072910330921447304494662449329238993120834298237655578054284716924434851177692489443905798829891907443339315791841987664481205869449764737875596098436269360604545584179042557874305135461445056397424729548983952305073790130432324093891384783059631821399356554329896958363027815309438763221519483769028416295240091115816307788675505156056351307167340706787332853822487671228396016945437012796770429392190332467214178731345139663621911796907274281769833983816492541620035319210019201305283857175989361327660547049795666160313946650221643201091130095183636473966715504386654990064232688682201962935905906718534523989434630856446874241544534228571029809208789092347772883359791621518867897833812175163072553955427205030234798828645445847683071208845416043191511729833910135226743131364573872010312048222074256270728119219612153257422163482650628745104518937134385401706012634580921679491439615673079067841410362501522172052416505126255906490050469306692814353953309423968271357980316421480845920030263654803575020400401822418890151078073346847837264509673485037997529374553791102198902845555089812498567695022284148507494426499541155377830799794532572027995681453309838903390061502880339609197045793211994103476929465597494953839662794690686206167686025623384778974980736434559285076277252542968617760673846198115642853727743604594005285836332932997001244385569011253476292057307157131439663845836349155639430536154934925227489120423621608907290062139523127431225534640588567463072906576746796005961792938786274607191241843740458576226156610353544069820200919697518692393733412573185459939914336218347596108724638169022161391573746007580840777529612366265646993593533447314985143690331909795092109373690622948816422778303469754059688902020797159875756127377315044002348355015972508800892744158484463256121754038990036287700116463681331843974272748728682301898713226545283102156450153034034283678484828715811864218577035455703033359233296217841192814091992109192797305183920597350174364501306764082302810693228756478743641056317721031285791527734184490924215208363166676884085900900542321485528400058641971473193072443612258524729800854952195524403066140719693742653287395592469529216588734202928333988630763046725032792868973257634272181184175230738095501790152538629790766656321642472775202651671905597812448791770678664605111565724060616910175721302935588222912132532182101874645127369471143008485067279243041989144094825740817924140765404575877934579643962689837544370815416733434483704514602215819424461341238616569706255233101399553562362049927124296711076446235580048760005045598595917198059137798573175955376117378283046761460697289252579614374041323648425546004332367650817336173216804620812080813508059007010613913480293682226891399226850224403797753012694508539574641818334640889814426462286865192603957471787295065918631969137564087532218545903062893866827666660131904630036511040738857419790110801734542932232984100538151543698245166757607997364552814978720767159914064301073952857510770896599995022453990869790038524310721239009217565423428772604162247208848364847591888135412238398265108196244856698920595903979075427875932934519917568309383201182632529221307593592344431817771035783614895030853325180765317455750374598183919893043004074609653038053959140539341870070957590002258091732428205790236536961490299462482132767452145936464605789521507214398448656126865457428966118721381204880312514180022534734165638434109408315530778058986853667389858394162430149079910945096676254247119742571104593262360632168878137761425977040920656065828768525603732957838354248113388651689627271906799707416761645182709650733112990519047039233341928391987725075955345128859933819285832927201439238296329221744008927180554182859383977755610614208434957633007119715154824542927086056464602872978523877817661742470936771718367023039194965105480683228825973086434098444207989119112072382742499237578956585595471237899275654906655412341476637289270817002433687156342036648206343312216950154006336345018502593723589933535116460392666876367089061386801323431226318473627795686461444392735995848221254831102980006186458285081005715161705272904420624457062870011976049199600069580846267927903037289579525002345442440938893650087043681691080228044330136855674253402462081055854256699694783283057439506219284536759325056367213045894202432042361246036872056924687521719182548557336095682579784826262911650855923516315339779593377872937924185124624247956831231720319727501359542807622147462337339127131767069829638035600232999971373442273063606767235083114416870004126449137442437152965261639032763484338593637540687795326416809302037928900010040850720093767265714242620479715891719081105158271631020644829290362411653240561679153341060911602255584732936356322794366613217946465327700306329147447223887818994202189289324361791205393684278018764319514353658253557886595517274948100361418583217641285983218318715922510121705641991226575581491630978231633322017590528267826844481345888060366553740128924196538794852810133782450312126610976678151186460200270257514770101187254920494467036544219234819911282256767706198574998881515010118774632234913352673558610534307135563459924182140926392406270053985187767614177259102942776587632393803786873468966003708855977367082933769554480098044807558955994036582022655717864343415479764273492261436250622713552616710203566241870611048806278221358036707729035507360406620979989413658664490862602676386008924951497684095260526206488714730611504726889211289261849070814022524355346931680843903439682035475853160418235126817532777819720595402179180803091345057658309980639069075326261887636107958093054496551753326860086960178742028850700863350640006073766037685501090790519038612189391219323452528106646215978092635459481656311192701267423151850333665439323174082307218011890088863304553365396243710343534032503595070322104154982436905553164497924889965942979110823740699921346064915834144251322599401307659053291049871509661164251368971308413608047404962055908557205210936652169553246349335863305624244048600140190928695947474006449013413606782831822298746920504532514789380703983901416377752868863969350585598953499939043638182989365807667928836248411304673551781642609336562447012805031032151242705767303304750729707926251937468642541849102234293365678592797153589524058192620506876425024536873111042674377010346906712050857602252990520182464946651824226077496590311164522243872586394014168650423242937243945375150624338501203334478435306570936104166956885913733925407588058489564379834045280426481203815544720987887494012057031114731398040993741987083301386244437960525299113758494866235964261084072008173991196245833824002133305871962476071860425814202323750506903488448592496644713736172915149394765519678657081272844969780880163507436278689082460512303175574785849579582432991497268959266374082095261415365267939240415564790717585410739310232982502834183476050678930543290737345886965923008029270483345180973335583487086259188194930352858049577388105311328358095110399343519610599641335269270461395459813068461938992600954065245027980747248831366226750261386317512646247985597354881644934318319363456056534821879009352786664490071688276984990755835049898861015330020471973644386167942192925730491366443698778698032981182635057615509396553963656911110656613826274769826465083227239188697767635624617420330364778014524141272441579741022217379475906128334994044241471336495716655860147366470370593233695519329508473470277629981072263196970767013748531477116209793945865471451405700671768702038057428181521354959837859479720558321173202640011175334790346343190384239173250443846474243789682308952992521879820340666637611245793574165360381462961276224879904776734995743401487237058012961587076121655868909327854085336814861356488209128824372090663713364595037515290038916652456989927470399756669554684916345261757884373429083373349165336223501044467106389055634639613631203485807265402825326749499365780494660876434508890729181785424111664703066458953355272282322257828186395564707364079573269750370970704841331828948735536623168394736485647526172408494130478806295587346995199725963408130940856583787130103844377038553687912916849852559879832097752308528975664009444242189372407339786467485199211101096254278432301841198580721598340414521964532675459648738380232022306986075858294906708283293839505822983115072496932222236835850541418615633231007821786261289810515600325950991153617205432583938868349826975875460015894291687633887581783294824690496475628766557328847077547923687596766942022840692432577642267786660639155819038706360637349709113421737806992443726457195649213712288789157497486257346748325200440539093083659848540543345524070420255864045427997196693774113986586700095161576727998353858709622672357191460171720168213454398740394592044773266653056675414141363822992899050993809590866119766437765177361036150962823187689757660249773039163990759478018354126257058243176109676389154277044879793249716318989987836321955643662179139390576081396333152341654107891218203196756680554050023283766556463971858513849930383804486816345635359196491669980978193777606118627214311968342111279501121313988537949538251258870908480854947200010197947017242245391409471532747955543900155645978576981982506233807362015427960103525395170903312715138003239030725247822537434635298096163435736244773063342795078846138647396442455825440995827557009216740586418170773096837272183812765851700017705341520792707971010060589465794433199574371096942120499800763557414367032250474571832919904457645197193706123779692582603187449217041711274913597748558624754045668782012217306498391651115868010849498190118401597325698675734787634463960067875219192428097966540564828206407848421976798026910327648349743624168679911328562066190939966973005510019585596173252854684496099296488500340161754419782568416593088330363402841451883472594162745309949030189855898222822674207324062944225990753495940375182378085056191219405348648042517036238838101493577450584805870564921396828410752183462096118334665354100345808054032724299229958166566232045430295008852569359219288624509486403412911137515881130260748247372473418233890543426083381286463575735406915107462084798639145852958863818039472997735044182952867478629764793722589397760585449525238905659311420945138164921808064749448182583033285376281226869169598798117795693121107820021698021118693331171271107145886622256992349051426321391028722421244458708517232408148730132198618809816174148862806475386519531223612052071333619626021357387591115234191047896537404113428580278592794318618154296294824597990455196715174563071500591937239041818122108196740037945822296175911322355298872939295533155789051544777560393328733912135028749088785779773171972637912175112606076063089275588943158333168274953343560515457774447870172717503069430047877462886199806017312849431751213265289109908021160070643301246170322686982619795661277919202059104883970419734167060913974987690209459893683769435578951686628461185665921137589100768437674358534195746514525061958436462670686664592243999346067924549936164308564660600183938781465017896042536996057229526497848258278564449614989458380000585301844912709976542977204232760303497628483348630295965304339205737344611776049198957117101462838546475794676484480414685170340120820476423619918237720463315240644415934963536856736784562386278972189872371221039069940352813861293172035651451800719755138225355595681911423539701699041849097418615103451122519749426040457018656811780294726657617967006239060090985395240820980401892223588870979464787954723814745956732742315698453636864096485097887262424694545144941804044378134802854290578472199674592881838346946967698251182360843918785017739701245298794828662501294396427957320041582791496015537176203160872708109451230176548094652739437655013322411396511353117567649965404863317993544719605311318009941079214314954007613341091613047692687323950650046669537449118127609185825160413231893515164833110547290942462693956178774590994491489493599182643340670851249586570753161894110718806271115019267872276323038518656663703117052419239437495283969992766563349712983305147772168147289111934197743255840780757454344566690954271074706867535681260564690604662244720123206650918508787360790410585496051638189803340750244137798278693384778046654921488988150284645070151154223667265654208113319462415932412947805002942939961408744756570084690016527278152278780340269373061127301722049973317675769968836595744425428158967242636620769816069136534968315479831328209435369366246044069302476957223885957457854128486727185397410148872145043624450525185093527905428102686163748031478963327755718471361711459265732050047927399162077372811009213728942904525574362836968697545253515917836280332669764373533543343407431555822910360194354784819946933336367727097143324332019215527703406197757917927339139122034872879896706326391394667799688250718887333368532945201783550601048504910860390197948397142190230478438960134385233517862583671989362507502760754389390876691375287479362463695276616051183776100732651039144423628452313412358302560450700091101120214986350763105389112293136399738388494828711577922260594214450590107448316447200739444483859598773136995977257244217840217092729771698327382590261273801955008327571601845322088747507472727485955629358978507868740067453637694919744839595482822468951212396229008468239492913250953971053310906982279456061177650584445804361487061388193507977731412002300794130193839234821508782332794603807583222026018531008588024045090724320435526396751807429067081730342765435777989975534189398360884082447814418514970948811130240450406637931152850184453466435499658863431058039281426661738087105752725795601563112026438472258452343105110921266289012758873188712737483730612132457485983954136011023011316437234397691876878057325621939270712925904805068001782405463170502976752434070208480587332101661176698777042833160114283493693245848978493862710552704932319557331412358006601446546878873130209983621594142166461457949825532063401346304210612793926325060858871778009756427276661762582695887412428096392212728469755976747393170374251698239393388970653653999697868282347614679524296892662320673823073335537617843255827744808122790754491684159100084254673012108014089924421917552632983987691055147253010590774909280296150939799884880589962103166738290881234649598544140313020339593832832350332367878647585066163291919119583498174004982621348436668641743873055714186605772356285541504715428282888608280749636885891507653568603570334969899851438501816150410157680597591037529007966592651298082125681111257125833536232280484112280049823788081848617350279880885998584225804314338626923727003833137005594153550654889817635814564391193315084773055716125221409778594744448083877404330618953884803641388971842381556345149134046437229540537278666690861642752139026367866525958072608377373515416383412436738441633041813327451864181762919160726358705075286898450028401124203402325271656819078819847896751060896474461572505772008860943380012055223636845426593446004975937964922874012398324289210871416297256982589572020370271103211137573152960065686594012532359500258161997434486291326225781696786434902650385973799774443944169356671451833861698020597753545618276083046597836764350488085349581224793242668103960226105167273199051542253755278302030659268906491202091828057991453650310379662856261487001934401655791102231738390320370508913264293219651906991208890827724517386180151662179953280440218075387122644706661491320689947030605045123638152164579419997886020192118103516449362994942012424592170179879440414674387298862959474281803608127353974774589896987092731121738735456344793258116448129760677437066638169771724014050899295775882498400044105902944655239356307572147776535833399931292529282284001074177520266008127662492451993951199191328821369860666240410733706036944946777984769438335932940004840421895300550086227535681166450043201290223983325852031963608903941322532985083429121417856330855362478824764226663554424371423439094525746884961808061290196810860756744043361867885682559248523622998924210498452565975069900825675100723553541916240336579532524988447836068963894417538425982964592729195076572329847513531561471262488831661444824668598344980172853312042931863668421154990148414336370398926104941699296812894934525655688928251257161769750581793957180659855308734393681387879715450477517733781642315207940664179148865042349613139127564263008634691928209447007046088145620942494419486277584919209510996404620321066657079256021198252053024138374679629530608903502688854801918635182074660944695125816070565046440245563899819079539844851923172793236654342166426147991753513165205711659545785678631474409171137852332335939815894121794202798410643876508777037227020692804898298183836873503018934513342696934675704680877159071187543724042576520007886399211592269534387579278023018009203096287370309635090590762810226433080941181633505276457764295591547410159989444182064444203368001722004544465580254545569944750017104961671883780650340012163513792518969485593263027307537197563971742003328191877068005200673748468045070010602303279306758008228525176176724767480068858158792588260589731275401222771159535030086889448629973346240959591534933592674328422579882075677775755379400524292554092580772931835205869531636419733507941599658943256818911484180202358781253023293659370260623543866634022989252448345303941728939232225183775348674068797929699741604987990020107124730457185730662756496636509382857314840186493671407114621135505165902586727013000818377263793694320440007481246968375343184373589821978801093839054593518243095407728727826721084818270022132119586764910232302384842061039549396408487371446738151864399166841890135976145417876339538724103950748104947198405340884849941919929142879759954351861902203536590086005564035725302562048843283313282108510718766905925040743787039501731749450485093655038401730460334197667940823727703053248380380574707682672474091266807763995067237833447952293062827765273700585506307133722425937870913312336328764695174971508316604358294979686367019009585408123139347539115613373077680877846216366976935138650507831902989820947628008108600724729559982139847005970294935131852211758522086650256441147705340170220196716857313646371622574366708700624946788791946749910054668041106965177221562503957228950077800035999561322683553436536774976809734067978325461625115574453425024316880881505612762074809086024230077125758266057580795793449888187948220947555170935779058503830996119685573232437315897407202376062337138003686849816573977234043501945552567727070795380085993704859987322673162781873308526394674356364894985720418445305923297863733639828690660320051039728522273029759059872709105111727264629478668125157880195267807446388605708411359359565195146507414675279248034011377388562416555991810684893052806630115445570365736376353093151815639374754527340014592188690897741834865515939273826773189558626167561452078817376082469791967491913959870323595606261648792463300754445102021321898043811054447423266303051338474036462111638012977869863661783945087955785818987525506142083600443842366200086791623560428128007351711738984538541055925686094338673414479991469852776213582395862408268737923714587647055928914858436207418117243295347170008426020139381483370661930632216697270817054244296640331752326348542047793365522621549713198889699789667820559704233825375923054338921678910983427815696456222095314150919001651478617382813151774703230676179891061844075918759258395270077108085319114299968093980495815240357316645773472586659375305865807584375620180058965550687467754818958329114132134671074592372100605880840873403315626438336806867760712370504120633614739959515368079317070518020643123295200980062749590258919535902509432006941688025858701924686571199461866454331511204193445951879872063290824586583184417689625646052525417338645026138718294247425693192739690326981954091798506437645715727719757722413445857847478529018711919034173803407089919045816026133113571695762538293186284122466313779158343925517388507943251567321032325038573509671878660706185487323715758431121494542578023853798175462119131287963922826723718311764863670683011269279349941495643313132523278401685802463653873003829827233050226136225537252539890428083898932481788404271716284991504924705414740180589721262959132212846241907545759987639921922880694007205765571137515948051341875721511112482898275292565669611164745884457824215548914508845762830325880635563011177370165180167672768761730451189068509746761418996504850758266888647765090721849001985757061346364520220506666561518315886677639263502163020569072765922737344205427585362076037046957866140418271887598910945946200319721268487717978973630552072400115586928666442015018630242393562978601913265043868417762226602827188701449081346207310765509552700093740987302968035228573909427010194957405524852078312435149700769318544352938639518194063901844475756283250254491738604891259885115739911934706321873145942852833837326222407793354355133440691965222007856057380443723838237159153457210121561617741877406443980093805380759183368244484091086743638646801758681402320599904181992338451665001699934867837746006340816949613882895495239274120876988512868475176707177812925872446124756661852370252868241254754610330678667739375175677454430029909906677369899313722992765189864329720786395386233671371043121061812242123353544033435573122513902876410103102808366144974801041831676652005639488062301290487735293324407879827580161744816727459891547540506880624016193551823936177409941645517508700251220955765131538759238170086873410234089023857845132094251335226636716595857436870315898407778944334570523148059314308628315647751678471576535004676831977303137078425419494956447830375429615865498120933542959892200756856855325404713594687524948048619219699546412360096572100266758928739000027390313287944143546269651403046245084046702960463042032460832049684447867830351136053403795741380206344575816612386492829631272768551929218666138659752366904989450441010407964408949438802954122234896168076447457415100927376601968090876938372055243998816807054679098107604664142678773866731987958316103775994247308652896838457003337708333586900293303391330680308060598645658877877691710136646758283604547295936147455508695471552683907065135377394780376620502528047972011393897135556445335629858606001890171568604421577613899361551560459609259143929910778872314382850934641826063113251359189154154063176274595825592441678613362356054978195546420216271587816413217096652160934354308139770160738803638318342748100868871193467154808188571104300919611981330238531382478141335973587254781672721849821505711659960717749371635101837799411046682555682039705092183164936315226449548846703800975701550693014155685289792945937794382143404544889186847825059552650572650003081644551328221211802066439394350400519388582813468770328785561376745839293147196790047161913929201376770084004746214157294001248764068318087289151705102757546522764724706972343555012727793167241853498892273016872550411450573015527564884501230106591373362361296488095577285609778004255615164942038362376063376950177706469637851823465998048634015836648096545670293530590366997550589860955166903584767846713452197806899130753986640485291182760378941930102478962349150693713728281057605321246982022948442959715471969493105687701457624242844770133094356861354857206244476464775298509480749940556177410227476948345061951564743637676207469354956541257254826853454765604623587020704280611205370502919769875521956952815588606120983587275376125117518629263195506583460313330001354259686382845805036920983923141027614684339974690344800610245202938647233010439288971680123548565745934077525002793284496707815879502319160567302636023650791035976423314418445132058635307794744284477556515700793078520946177012566353392527599714299668847562789868225122001003621030490492828931530824275079530147920845577625701511382812910980224433535562898348237007185441645456581758215572507775794535884321628863241059251169814376730408268818494356371460625606471600354783356411325304035352364855073986527875842832325779936070157491383773552222602425255134218099586297161805614545711964309920433681882782065875821808693132218778958404597246173786091157034322154537841841104667717079343072314091153276329948399534965743859644185524777469088643779023989523675334323755682364051772207518764215962062046491848654531249742503169898175592260666021379478487129374961878216327529537217746540065721630615182327655703530641123398287859135515360145319452413764223309351827595381196387577978078480721905546142513242912818892329748855551421494472908321168983429191147965078889263059171172208601044904868777293618351394724696703971127764012874960687214289688037955819294919037923694778749912866251771483852554185392250224868782038888996542685828427007646342431630859897874620586187411469684292586198632173122927117000347593041917024591815558670210527715485321245594570058386577407659555552940326964941431002755123358650552612635410669487382127743325613714131468409323578398672538751984086306381021530646640095826650932579274938895835538980265397764294503518555440885719537311967126781972462826700271687384961492911425843500307689804124262961245327485045672609443552379251496589987375017983092918218242468006117618828234504013282989506047700285911495841962143564880651776108232827193438813609160293182017949046308342330484107119426352435681606070030074732734278723294804950728972108421622451169798655386382121284666478254665927439166210128951952147955243481323002585771344092222235108640703122258574494115986744460927983887110271592221570372750641027909135561016198354498203527556247928454867162639516657347946353108434072014713155139430508967359190800706668092773988830014331638735970570210402305035454955228631628000856077189244614799068836405198804955599532514772605523788887559610636813463408525840805490980033551641101058784476915326688190136152540380005127745193592271982349579644901650248416664030922863221048273302382165934654674577077658314266174719467314663719376681299009504367548918447509997166485546638357639006524391860719148586722083076504539006855483036316185875971730450867597298429427592093320896576776545807617817963559153169200319408552854900000418328336339011938071300549609761026671553637585371938254582543106465895388170425465363957472616757270892145925778452513317861622426325813476261388285382839229059086724018815858984212496256894081635069283095408278369059452485870987124216304230009851720417389231917882916354411889403853546319836795574956940015389530446016263875965053376620519876323824523813331753454044121705205992574375342445476459540134598979655633437193656333076767659132870867842690897434169111508659869164931159611439745072693401788303411079180900942059310843264657558612165962150061848219721262031463035632640702908788033623422629771976990869612483724908356860435795403635381865003347439483726868663026780207063490205041024075093106678146349759900047912891123689956251713974278522435626046447033563324775940997893596278337593526875766264656032667287574783510853044939981848996923942020505320763537303683305134317170098828159436794009709536364150005821894932212451108426787942440737469392436255971218557072938411622109109922413135391628061960093077166543855116508588161662620028661991077729828266933103828116229939080107222079818687006064064222568347245213994674140573950110592301908374827819969298942042439610792927312273817028263850536101059212373121659012452301830508451006054815498724085081320615000925695337269117729183970474364397438440985276798502816222299069337215030921461976018866512528718753709489545148775639776058379343404370579741165037808596547062830933125164043756488137532884783895338705976017708160930425422149985764925438907462158146857271425033567700067529336234187650153097950127117953697665790892027996458785493384209675755047854141452316394511682558112225075803441788797452499161372086785058149782025545986644494193913013691127266896503218869311198625767714886794489805298589740773338761756182145193696349789560888012010795329316422518517178021838894996928282306947721489458449195501649467339108039877342349902262993118140076944113595858788099169877717552142602415441326040835593011648020443031870711866497835983350155903157552852948208079239350134145811392244912949297705128068856114351649481239000143180674226941693716225925223420575938489036035711967923304037298232739836393282471810518078471511177571527766163084779517967032888530839242416425393030613755214889383846679262505204798412109351414295548175655997189477430403744965177266101943108102442544931115793205217245547700950478260045243996672094820529989976539817723422213955111337831344592494052848192442143694883688701632940310382887340051358055202336466645876497571310325884832897460532378920344503516671550366673696782387565656686751767355897662021041044432051397663963366562838707997175111941278247820423941856710488594884994450133556458871885864190792369508122056666069751945640406105401916291974523641733829339787599691944672189429780142292271301928444638730825084452581088834340110150573389795227794373900157915620811141306013800629026019771743636302193899157845365241975101294959831257297026645441661134091883333788678391546269635942511679536490698786831054069829165301446896701377420537034268118483858674957644285073193356727490143945110710736114130729158571591549083182029061445675388643187006083824736943796586262049905940858357469309914502431697904383114048775785221115097712977350191910951689009096529378908759425786878100765736869694605220997404487776172818345505183272068941728497745415915162574813314491731296162352319509241544159742380488080055447726320144158546602470442070844861446666434286938187932356947645357604209736137847086603188496193833723018920439874001212676403434811996052971103317522711096520130891736411510252906896358723233626632137121258846247820166422698102945965437189487313604507839493841340664879397318409693551283572239073297164982006390230220436347711980877955002099062572617098695780347747904712028008089350571545545193034785691947693789519525928494607604889593177486102675752290020537879558973700236119215463038393441636377106261530952739460210211738647513639434967280144960416218356723613510250132606681717693295810612351254270293049832959349552107222329748471761805766009390203307216399054213263381138059461472922472332020828327727220240589180224148728293951896449792722006289509602042636025455742626011144012858491911679683386363937018471604881324480373971940069886280831569977868096154403997314037807150972284560791888961418557065470013111646668661007347066644551777623905330956365781106212325476210584704821970780075751794343631370244694871512840132124755106383690402741279919453507974791335422669238532915065266831514459074725910572389342167054600558181962172017599596354941912390096533077992588799115295169785529311629645979816188533001343962097307916278351582579343897665685959315590001140007936466968908526846951330437148392793692233539093359056987980813635003891403439672159210706735742866381706115761231437029489400253477690112748981331553322622422349795067142060892183785284141215660402160106848557966860604377793375624130795491115045415905427925121224675248833143572399033925017621898085013022700268340404397580161668580954391479565020269884091526076528925766140403302389859297531632099808472780522975779253068358923544739129396338573526073832540311705527095371339026854335984304501524712408598504896359884716946745715597322603751968813499676790920566080099097010174513043153270108499917504494799330133578993291070770651280518342144686753852224212749749094813111930998635809561818698979714206357674278684149907234556723246382174878043754872322711555669434575195916939931481038918189202113168870575564569730699165609906644482458142116940049221346446078005576150033542921074910908210455245766165321196589686539935125242945569729703145990716722459995487500430703901275938260299245986312861075993394925087274541441588467506539895518677204409739401217258430138677473244314787726601948002199191770227678282363187865380209753257915927194351554665570987767417912205193205962958260365074785556962279066706803291995899627669311906124268160900755944625272495882229743418902880540304260569609930252553388530737720618376630062560428264895323433512834384880422261938299360520413933635106366959334741895990570028330709975550950781518407011334249286369381938039144821707891697085245725148955149613936397194261550262701919152053441275127804649313531317741205129791593262618106747366447865974638186517046526013201798584994956180981249056464887094077533907253841237233895487627239698706540830063113350941779880749772597424989798494268882121131350956353789772929581220757413586045901145908502452385263339729953511173239579650585389387851501612805595024148534832391062665710557866822631961345875383030471559847939494422468523053287796575233470456619256517518341383023980810403680201584657674494945675143062542526458509142710600900187391591953943718702708631515331941468217826685122084101694155183166350333335325133037511113420607653373902934180011166758620879457248538520956673930652524047213790519149427641672658982173468279670957587054672826344892522399164061163446471093254711709242704229170208636980283945745376863433489254659268695183897921076529863424304474581894070537054219545598176153403011211577406066803462382216989814525208268386118540218385499587480350043859865661944447463250562206718578060347144257789603820314455498731074694437875397322128341820182034200110819272739121668536386291996224090987140968718524148160003575771164502062173052486874337920995077909582019279484138717567151540652738358207690432628094506854569737215259573959028524937669164569814288329279441422666456988709023428719183371887290146344898387525377147898805320578196505773282201558313583814447924059725804706768745788156132069011606042647338152757151629765412077498710658105595045070735027343598174507211306008680837921717422100308329445523504565187551888311895216958864176847966478162683511027585913183425030134598677610737682870800572487316692372802422378519324236367321783744036475480388288929450494386312495549939969329694289156599482182303085093223543576199199977089234264725106432637360286348735080250771105398443431686875924483600894385751873225731150273070527609015990258947145431779954334685590554562053369005411807575360506166200965786972724369277156841430603238722511969957189267925474855271337373540634855935286931958145687934648063629656040580357388118391345585278149184411039000077347527142605878836557320330331101325521804609603244114533733563078222207230169580517926363758409424341612395807493900814501121230730166853358340853137722465842024033015948068624144326582506598537545523777947902129791072824047913726528889596200265064017440694519056126411026173924064630988098428954020299865095819843476201402491468881993744452849480078213371600829481257010454340387131168906596624380510699346450029236851077007327532008415472525260054915174770304812446927240577237651556153630544205904812610983563321242398188382038211217650604612017974083975860600743423863256480091264758428727159593925534805756575994438964517198751700144863764369119128830188212758246099973650683192709096382773919192555865128953496988144556653104587932841527343711415199347841391522015918163321436367093776934414757959207483840816718747866892723849560169912015932520181345997428392660712236709370714423044895937515548733637224805823508325142836770701108501014310563339026080565629741288624718810968394515626905356232871051857371308782298751939125363485484060574103362351538279013734596553313637384558431983961501994841848318165319874403025549706001166024261000225569122674060362219211251499300670879148895402185087630163872357201834124035406764033094905742203204808280005769974044297993518099254471165226849691360548208701410996531008830771442706145681330272320434754279648080723818775581573961678135269133501163414081902185779743632943598128340819441480722363495339870493566544581010632438856836642365499872406877773018452001063676366215425135744333489330903260227751094550530969122103085798237954667155031450021361750982568100239038227638887474228378839628915913702208942299657807934384047537928668599305283041790259100179000280438029805882969457396027326392835401706782838694921498224282256817502068778323037850739802129112313580007479827421360260069584678948292465215656941384570794499802979553017597394693191879536261137127600991875655007027683929859595302026390210511466477296550576489333795391055424052945210738639600250131818140848694095867824235229101462134204965971145390408438070606430747980425026314153760230869984937750952951410308580955069549762588470595987675112018351927710450168656627132427092072812312663477710626785253431340264674441621437164597019103201842672425881630364554996586675945166855224942654383305487962351264983228702881307334339027226115331313765619411091842094426649064946290782366402800119844360800752072919309441067683550764705971957572935012008584981984161238918652929119990281846899585794086793575359249049232544728781468241971533885401756499632754398970562521998943021450708053236146710604865451844114199275915729980319943098051338854018155841510500147354420328047189345023672730532633350650844075850478905313793592881507971886159054758940936524423980664694081420015557385610658296530191508057675172509647811863999481818782514193112444453496001541959116126027874546316853285116799890071581743964907185945247582391745032561304668887678964339722758996820853086170721148099247528519898446108362496018074159175681841389636009352788850092623009578990037014804415565292464833919418977962400383125545613491606409962110073998659106681761951476411269011489544128879180786491037206600099206244426614130931402074374837449303065912720731644453157653174744540802524029046466331714876652493168603069723179529877537232287357364754976949246172232707287777960049708014436367404741083051213957445127050791410283607971930418234063055423374278669010246015156951798287069664076279497146229003802723798102192339117039714034069818047190694710405577662979943209214311270498010971805010209729908528541819632623811582425717837274662911350205171821515822860783814349280034695732356383889833860428374489942860961710028198614215849234981330510363079972383175805771469538443273562793970637343101773445468932636874327329160617979787791782600293962634991666870441520542698966707038448855164854147610298527962801874611229477217607633207521324947978722039555255178232297637114375465369486999150125844271113046692871759570263946630585311321647792249921697844344545313701620359885963859748346005902735667099163211183403075033638224220802371218449099974074275478999798537047894381873381476774927696246897568000769383875477370488495659689231846779646030607238307504125539877485032264676630173775201022967579113980197636004152026544329636889494812650405108036534575918268430821651976817181475122997065146353356726149814880007097707687442630405742627721852944598877047055524544188657799869809738354485191301823190960953945783065953506842132205367753707701175662714448323698672206630834085988879312760263308491589419174782282464666361613192835558113802822365730637091541286154410898727721830825511370541342213601118558769050726452375882255984065515280013695837390419644382984657328715099673915436536874386458838079969752880325449007151865049205219434095076967782319470755903096278842060571131894556317984315837989917545879145635132074639297761007758568080808590915139732143740652474517945991961630643216480369635955067085611039723677832730892897015224625799448906393858380493165322836092699905015061023423594935671172837128728375221297155757316616195077173318800076510017819648881124255355194099211414132213091730832201349730136594498830737920426879660176486800990970382871621430747140192211041674861652726530020183266444086722144798221433666395512709563930071389238485351320847854619479350563730656329607850995933882329142418436631407982567239567671469041457928487791759099825573825520894735261200003169010554714262198494064123952190163219963279041491054307282623309423162614373344906491507294257162804787432650637353679520880077076378676589337051521882113325121901059993790106909999424308639011668873114912282428396280830926434926078723927246429765552971801037116241805874336816169179946021736844645062721967597569736789727131724596157185861019614031396534322255933605172419760725764837607511732923791945529583477363246310518264106273976334666579567455556980498051384556333102144639891292056185649506760154501393873116495757285888802289323804547970632263867648340945537077898028689503059401182748930470740090960899298219152021579593370637970187608103248730799550074705308085279883019475714400771207525353970345827033112881804249895687721677940093189780817660697108044251667953193345648630917095923820901957001504000125112870726730095723205910357361078679556848332768677479917437571680729762936020197676470993779914269417524053270178539627041634174803757126926879959107993893351764625389979194330619780743852217715606166810885469071295264130709196703759629723960707427819404405286566033002931679667087030332882425039274253506496479673545221228578422991422488654445790142213809247125963913524445971630450742824801910768823342134089824971531014587196050503459284702374003073357928079921513833572490108656489554854501232063245172123575163019629587379982426190479510973309606193994717460731310278502672737533114873067612384519589289571471660078876547375252512929747159441178355347536060486904575256963375707140887116900838926193967656780738541802620363810248840049441703914601756626042931824073206112641874603745317230401496953593971742725103725074331908736549366747611332905851183041723745031978322240680220897161425080679846202384506665773634645612342537298623099473730797985057055328569015823450148175692472715134629567324346784693888552584991270122655603397736531708335858754617518390140389592648161055114250014385028585821153777761982664304539880871595766629986172905496182883748010758275115643553432613598414214085283004713605114380495897155838072530719154746130228227153016078078008711219610179746583554073621485070299961756757166274107857697029100016778636938241608514141566049001270609110843434634690794100418091441687797237798545960963390098810097192883983798829915376494397007471415952907674225613975984973807125759428088723524934001337713283446284493450716073176151915115107801642377612264300986614435469126834330615603759992175961990400280514330789124892481680454148508027509567871691350803431046889987396527114431277437937877261418870439195453957090874749693228877768938818845393049598708679232824743937065060463283203704440485148370308794802229535042800995925844179927736731916940972804925997067815267860378685807981024621452341759031172234305249779443309712552383883466980678124431664125918177226424557166997124574213964862691045281428841639895643118895797046189468830385608205629615560849636076726083160523851484583985726106253864563068384876071464811309812151419294686419313490891775527419821532491389399386494330536481836692025032231085430255965241556966715633835649110126427220932361372345013084262609861838971562408966432023588200287113154159106240288614701937127924991338421196218910583861661903862401399427651384487562273316189894463191486972453326460098283997248441417808691126207635575655748650938389262610945185319859866880414504642961547290675110122240981910292873207489768097046536290950044907251765700592482070883784334941425615481129916616674387790424090125637057734205207872284468584052331599961855143909207019800812180884076706946362434067040280354330000818447617576407136927896311232537547404003756191848605695318175564479968475698408835831221301225594107611853211236047389049137193815534558451182902231369612998364177657368303635877309669946488216176561008978728027774104141764736854442352179351662721506031601633416404063610505394740208368448863299718935265410484078600646094072860087832650890502535646341503253617380712346095399049938457823700540877405831566781408654800965627167037216026126644925602567197269056511890502055628896255570264304906109407054915298171326091788994555287520283178734250882863480600724154407844051490046090299567245283681196194536226365608408143940756795753667250354586931498156266642986784583832451092299878898961486411483300491077002618710951908920269819064430950388406443433985643840665976081196310244753363529860055830861928747770555538118974228328434085915040510445850704080361494015983488875025447608273182491009162468439158903223775420409842086122979992936168762640590872433090439702517161988113193346198484530368616420768521769573349013575399220904742966325748775479796030714916270183523601653539428452981003624871268252214512286278726812077154483660609710349621364085259152838885952752704652469230161523589490337175090206517090255794542658520425268749493313955740953679897179791881806304118197459963602574688081627592980859579866803903690644323196748248868914833479320445406560582230093536862843823796137954441510140087631889869339970070871400183243449697590680338712805596981559786452836257876241416637608475645552254126342267477041312878881504168044649212337215317621295998091962040344307990577351746007136369187111935901522299328071201562966286166691442419827738222257017413402443311881576972776131441642368778181466976738843585793542772659145538553257552092713355561508158807930314926985450122127744717778910689251670479546921642671005489681710729358066082138027554838731753017523749542130539714296745168029866440729045636532329492777264852946355809106421175247324179633301458684382278792436091822187793318989361644012904972183069126658372479976807843237177243604988373773384548481698478903452263700581936603055260476729662691756389069419899508463699250696252723916986702159599042549471411205814331131747345209374714934503711196640676009577280365603423171750001436855492196046849778824537373367958709430221923250000277781941628002337904567251459526787077574197907191445735156485489492532676805972571224848753324740158847028638671038403067994527148001466093521924376648023848782699350791774741391656934514566997125364285424039805338198238319031886579730873841132926030995369092300704307286407574809870975360989554351399907620253382898705416969361755061860656591842111564667625185639702728481119241329427209572097193467024658388528710240570288610671036676958461432295829912414565220008622276100516247268970785648106401590275771767478687756255460578293407222428742940731232428153208458791848356495438878707736422744772668199349784275359405250312148637944121498439991365227888178802051927590034230505203104045311985538920424147485299755390562224463040399990168262769715508742805672236361439614199780518748626867925512679690444395318912448504653129449143637379594691926243871357028946614658718029498637552215247915180443783694027269228958519752239104801875766206748220108089269147188794044658229002669088303410067959974153650331542495864451867245396688744357461691501872949586153429409027556200019197261332679899390641613986807510045893462986878310814418083761831069075272375865957497831216946394673732178945775893827092687869921769475883484782348456752475378161592246372676918502777358177906200338631665985815730772220770251826636044557782820245365700782501610037322501536087891386331843681544682387131849127532485433679828214922840746159167987995845824420853581984570833333335489428800424498150961398686433177268138472935903342026852877902735514430699327082747751125066622267961457671601469847027801364845902506335975049080329848456533206115331864023689867919879372397438115633305369268464865849894400345454671267935407997215833964329984040942335185153854552597560320349689661702809711482159064937395822376658283986964239054458621444288253943847149934782912985695158732560450980403008982837047767699266145131213280141192341793318267082335500176698794902231060025791970149371325505477963356896396499278951156940615931467011637800131198955786620712326833343467730098528395086293207998908487375920516962584426550258819011490165250527873414673000801959405643293324937109689543376683725604341482170638325505750946847150217350621578526418753016392683332112114272020943060774590839209399680947674774170498113856479705534048068123219899085759718356649629761986582188739002747437332798464162009011067322849993115648824580694428005261017750550658116349922467971487620712366538462022978316470505215809730441912926613105220633243666448235966772769184894240548764908912976657321668455257624223859958788291316376337956144693436300561033945544166812814128762590562821593054901995717457071006851509292858891296619767939279706385133783849665854160382399739940086938219799366999130241668724686665686212784391504291456050597087326008608239375192742483298934506856098686363969684174102809944795588072924435166321586977696655539523493236970913872279213992357420119143106709306829133942833077067060519663373688822372481447489770406050190833964090929982663288214028624368358410600771965189384289071237754555997084603400745775922207107171320485289483773869683472124849709497067271746594766385971395724299350630430849775135003613700156593728258537358245077959160653821106042618228403245871887467877025816906334974056025366049915884359519298322849084523688938234050351007988862960218587458653862338790177479980336713562353294140470610168204693323341681923242257962902773250401520010374024760705596616687216613973691812786198891442186692494432768831069751411861638741429340097534603116814739890514542593329715552221380271233233942324686031800704347589541716684981762416291619814716060608145327811066070398337583464015277955990096431074876563725318897542703174796311235414496172259244674288163252416730217453112138284908316681849866398815033031119803772079139033511159383229613867133802776928564529358071314582461752265240865051743087865811350989670328855779505027056331885925306478237189276869898817336974480687453611745503179371706618738001954598257671777116249084834334816731723106216680125255803811605781050911694449164553238848959260020854677762740290142540614129614860126330395993250766996475849703849915056108096117363541078274027584148610900923753480172582403038547472482921111232008271227735784218988240883187228479711332999875626293185499021825675245806686496277479539711046657222802921299993131487809283427030769893500226339371421717965761220348997814404038996420617125986465977865487045524533781638701345604193528325969871813074736550664072130594704181916257853879960290294921132975275942446283344035322848498133475807925442646019666759197503383733817643424024139621989822295205650991731413409497891038803661098318368359988695228379478420363628603114577652645989405829547393601962264765436641542117322085051964762355444173583304525644493142671319462461746922933802904819125380879420751140651974766506551438316326275325278787203679142124531002992991666448367025168861693058875785623497311245339821119395737015029159497610693632805934784056859042923203560269893301674221814993120036593554605321306929259529157232856010502850128495577365006052041207343349208465591942663221835282343424785377734114174468673788482504080104594593659007075521340305899554609524748618493760902249192981069535071159201726550482660694573557430692564670055895735324430976923770149280701159351048127185310818607102780227428343597770416631943928054035320704374738743170757383724810343191500688107254297551675762675380823286369533011920411122393367977801959861149700187762235570207226057623082450853020975803334808474970421111346853044639478941993585824576107884932500771464672081024938141440524042623525343349009208842328440877811421682400593606372107293379077159140190990961209288040388469825275614287643081420801411733567157111923695023729260824363637632123220000742067854046291223561031366145524035181432594668822106596436521865527951837267409858110487690968130226163754103847457742309345871534530006082668134069164300808457869719914198434400377501025962602871141578278861622080041659284942531145251499552000679726544367016907046831085987722319539509849525364391690791337411939326402676648709920761309049129594684607265502791976671931297006647780560152379523257306851122923864556446940137037499520413668713460524882549994862360787185915231973122041940761029076422134970833088954223513000371850319827067581760082759144414001083374301307250534384515011088633951619864486686157639112855120130141441537789217965482189302333071135387237113218382221936838053502125135826793298165305312210886250077228213180576239716434363523451473947545427583300926062901983989140019915022167129715126660542611141289197049066311973774182973815167134850865588617167613017042660010096771549336539277827034085230711624822525963496551278068092833954771570417261196305859744528274050752022917666565228346448781338983484286895763553169871653318340697196032296022589278936101059088670911252306136080791056430198001030755556514574043940792132466214409905906502880376940537627929644233441377569206364581637326096489375645529952407914191739918450900429751159614366867248765173773360997422208324033798758801301833575965088978188770088014605792172869026818337861651394188204743272489714733712228766909253766166284913292892858527312166799111682972917472635710687682215520074342623103772051257057703799362758875949747248760836224123549204581840357850702623155967192155397811474665269259375463754183835887495596301139292999505812844681720813635642166428166668299649929825924164213709959285596517081371034040257708683480871286325407155521443140405511114513639232614570966428166165136064039565977567302578106264426932785884220201212650217532737719389091315483198645743804331121855735882479708639008424256393588671640338824599109005157891017616565626056364289372181218215437781225330003954927315238479064630441011838859513244805504306327855742301579205285296737888884947873252609457492068185085514566269274006220311166112433867288067991029460774405627108541742026257824449510607877251335260257126408080143268190785951128348746440537618874228322997682230633143343755780172446695840730122191148751762014531840895012237418287882427149358234543636448985003461166062280962878576855021762049756381927546089168601092950328937104637917593439521101516074745969824136555937455037900001201715948315428700270364293333234403177221708965914923519705454387462609635765596807003967851465509655986981317205709590766402258244313402933876707815564776673971236352364065504375981981993020790733887559418352284569920744767368539640536042388225625434302064579301588549708076042442035947480849142410166733712151450259499276054348652244734370469036000435627261282222111008840871530971449021660289825128834205940627909789631772778416831194038085107145606971993411130419818896851052269738188930886473348911573342304997997092919005758462591715653319631879833073911555939537561481089625253058631322854267520011547164933929627908005550678221176691450940082620182706668507858332365884655217163507303710664931719064209280235544814713245502852077245573157316058090851912241872554177994567922597080724483653072193713003951577435232004632803821302304957645473697764205149008955906904016153600534698956218462622813268347653059668787458526717221013650369767660577893635351805026790372471784241027839800421303113866979989705968689600410765586740867567332190640051893239435942851202377369986121091260607841282271152675024624792797199439402617001526240794690656804417906767250831949290768212154155259883083379984790007261882782666825260363272836597992811898882499113123401736630520620006038585394149837977337464132655770235729258388522330488204911917400404521315114869186477029727270337659007357110388320897033852444736775242668792221747541720191284942137814983827020311770094231411968363781456143703514461398060455138668464844714033421439807233697733074887919027760606198310316183129325127870838385176693228337680992381925058286813676336953382525810876356360639869326601521402844225676760771472101428324078019874639413482866168738916167647143654935809342668040988635885099213799253448545353686577634278429406751599461013337907866031483790680766312863756741725844088594392372431613320684935307785906547718437577772546440599975296828931444516342081525789130687363361420105624859347503786341546080615892326537944516816676485983486036901477755833966103220573939966809538491177025986579664632025650973975803011834483458464267794511330317785427969700104135996376098942722309244802392907149728194278011316491071405676436722924292240001168695872531548369615872800651755245075084246673145400946652813945867134330090420895164312740060487090058311538331421312768792771077427368894730027279888875453204942747162910503453417662968273394651259500434353732948440805229740599126414705371757038831411969831572473004265944883859437253043778784811444003382255335760000100150884137101015592075477120242852624362876532230936768928572870142552620639476621333439059966156626966596777506898374398872669600198758184186350335842830566417173602847059680005713768017438070597885307807772786518765961589847069965487476416326532573499396453795662469117704106919193246252810246550644288103610023501037172565560340315825171630028563643093363546927435734849650923918620186060271291058927058211865044567103014279574054965216724380630282809850206046855403715040229363371168554075384613924846237338116903053949876356781044360336327634506621809603984694329016495127635550731286162912026468480740956354416210875785604723245905501607239265791300296547665692163952396335714676778642054891363605591530299486865097032520455615693257519861405646012389987929468951671440673891868974794109226699285899682181795738902547029091307754122428162948333591899518500696354258150069408366332880415424368706672784141346724307595540239683322969451894079519790371848869638476629472875404063826360452380790444705209242579530923113133494474812390071399855427248826758319728382222224094234368751212059885684500602580058704072224389326309333411065671637872967613445471758920519208975334624886557599662457263330761214405183688301646253046975707959798869362755113236498874629056792111618517041829254308274123238250863565101558103938927150013044695130607761684014909553414408749405716003605509630628787637247207433442550678258791270887353987337978019744906679207260962051438599279108807598276825842173882064700285584856226638078337643088288443000322187988577945190599625157054005115209242941224893649703244943984015157475997710860176771531733753585161629765566429526368066541007507765460245099794909419018855718687635118783789527514046614066932500964152945013280404595081631189246148638756956787223026917506605211676306468761126502159356801126010841113360145940989171487638083715123919750664764461715858729728949220140082598720982289418081443170077164164590682253725469123682928279829207178644780651310740512873052429790824551463521941865550192468535073219875458308781098684351740334309442902888035588993556835297900937833810488303127185117179713976163698492370473216725131988921599922281133067051353811626217809564169279229511229549427015114501498725897355898290133891263187514625638876606222481120629837326065899498712090661261452831649977038937825172541710225264557815346051658306176422224647962836994553734203961065368600086220931129469041207228351315721525193172030476217738431564129457923643237174165285358557271514729891860224604973489895353403748091468543994650825969484174773610165779692877204075541087281297653943041582125874452086285555133984617611139505387633574131840288125295736709846426197978565150706537318873231729755663018244088375451889823551571716551474625151604133390480132230247463470198867103845860144304535074269749986503119679998618162258310066256775530021133489964658272640111136232995173478880596053879849183519009828221010065676669998369069166162177010381907854361018262096184057726231373016589857061843274736305029322229939585254005657455501964256817058839205756831374616466752124205083945124981286578882428258494103715352110634127505360421271181444709532295848367471216065771211853453473182942478903061350895213872634771820575465629016014259923506584034041179554555130181566314034873195573353249759214737321714497449386574086612688468425960048756835313600234331061852430704871725607746046134979059295973713338008365666167228394177158332461552905988258694792852746928897584993268045171354133218220883595577216154176797779066735700833723166673779685370394776416255776728215787931577490659741005694145852585255694019053304812015415961906071083051477398618658081892972447342640273197033889114718983229838715318135219100234137957839628268274426928471386235399911575943838110733668073434194973333992531699550890550133566959458577604114614790475759612441877283196514331071778031925800368459314267744110960339139081447409746217819138928518457051468864529217915529124925885869840234197412073693839820831124121011505027205948721351248272774225883570289303064699925657290280453063274772207960320634336127688789119586192816173462314112498414030569226386674275234369067816814536277302441937138863261416742194599602225883881892428241682629821661168994069320756552424475401370773132974966157182211067765321264022011506650367806982066667452174991190042324328903653657854696524326268472718148917937012410926157653197331516898379221308203599761298786051571009453985437041598397308377861704401266747701479204304953990009124294864398714391752010093445939315455230392541929964119933886661814470968094856520822308157419947417668999927938499576815049934603837452923900279566932626525150985527017633609315601421812796237224714771541749654442990837741658101227341328213278271820962062026252224036038250156908770572636367193364999389132704979068082607346450149053072446344990829956833139287643462960532222626141406659497971274078376119548435691597308287951147134156478102500186870262093734030311401390587649450487119801080689337418523269669395956167988425487564214163145517515586020001694265178591739215436442266818781848669801021865581153914558274870544978828303304888085709611522932568465160867599175302442254788777115656335166135584421084285320016730214978337091792012268043497587755976945217856669102954425685448604735507876061829271980622796994736033133218696036867207012132552669621464774315669040046319969905454763783796649254353211751733312881776936996030147296143288183618405761523436251769846242689191247429529409975925820293912886022639348117136709620985557572210982401505808720708272474390843610979918937666833716871335418865850253473670968732441974008446578196980231686684297225303453805753252023413208306125856705590484794398659580926932963825074077732211172691174842000907029461524274845467398971049808930029175591986534025494257528884720202143003052741674621474141440547778587533788446182684525502618596501229313915423767096570286983611513959015462565289256078944216097434352452296291739316996364603186681461969685919089447360899746835816008158400806448469489524859676192887428415746757539030371171135069692741365021189521762909607046202433515632891490628684278763806383743393909487069575067668980995893051900292783377100239658535696544398682631996314362219780009270602796245453467027679764517017632335830755851666036070891146426344396561429591121506548960566517075957425974969645469013998528780931656007131416001161342678712645842671552423506090659495902135105756148168618363009917751631043757383123987483376229881524076770474448227537267631481546734762216787872408116376741816487967429598530589416891465950533884014816875376657072624897239199918067100517729533378295658693141252762713238501778947899475629073234490789844045144786124065820187604778897341749988750287910655837268382232760371511625209642497884253483078480106804895335697890683037313116105772329277635031352342721989496917571566222838246867748708075682319123926887316658987376897358898296562005199876180030766554733902776974455783643478867470715816365733200424601866685645183747403279610200004602595827872912486373347013086647120475358112947315158361512417352165680270072323123974486436603491769632995224413690318646822341646352323166942673919076552221385695683785469474672482502809208980741117107595424829060249214131721636337345819222196888904477830287352835717743720918270243993362655392259901135011541442230408600376047757724888773892391291134447676610953370500714045228016685573111995406397009295041890026250737186487717659863174794670243485816745010908469081801280543165848134388006162715213890735580594070337396044992419944927231768715381805436793302216115375514198607811975171441008508538624546667908516346475075995006609980434812235113712397849853369467217915981837142064247709430787793399460172834517629432281077737882142831334148525702603989298809125609493927780492251622500705342834246820745706719692085227303048561947549992313037935089919665516877172642465014017033757220911272450129932090791818781622879045159126959498104897883292743818083129439192483073241217152351158479298397922355431607690422762346725509394353461373071494575952021216899543558388979240652873481561781213181565093599462708971105750649734009493394524782884769894649924043360257528553726111795210052540731778772051925037464205817710087930034343638679523815672445107913704755672771129043740211456037819847142614835288336898334427357402177480188823413515347104679995814887099854726721342635315241696577273234049937483125081777663436275782214812399991939291298665677808635789319785933718323965757414747760779666832822827480363293069383338253604046851703615266647594639180899188482538825332163157009750144411578904485701210582979395717649706957357654878908487783003639408289177802926886833779051205908645059883794690753361082630974072798776577598952187350904393167930100367099715085247735755183067095773446982223537149290608131693101892621042355105044114163576599644024115514369242040565472940400364913733411928595609170637715816794555734919816524561435856471554669010887743297765558293463863547358626720573882836154723863084345866178171134301184206527928497620546392204006292434682124664502235372471782789222844217947134463182484911317623404177953050014875731282680860285945613939682882618626081976708768617146796304760126510079088786987155511436963007950381791763950667105126505204143133956207694226155253586883457135977100404272794153934428433985606203717358575801306364231704874348275137102066531014956415833488219987774882759834766081436820683108063295160278891877018506137937206309391951107410715239799399073291574305065629620800071013985834047385869606746312519569739636769994025863538369447532856010139113133938876855043423889827280640816948606475503940918851679881575010326326530610102952772298796363552590525482279628785078633727999364823155658265789287101207732207691489362697611644464066425965914646431732836172916425260851389693456356218819340340599452580480229315952163276293685500682493164426141771782829930278328750765678241815062005530458732089574242167502480420671132423917224727445646924709615006359274938181257650877623269264316245939164718459016448760076053826446120442111603834273565698471101261691987258988751222862565107436147437404929195691837634804457534485158792910774895671985902884542431794761884214460245276303148458874566824932590141755684791345519188264962085601887936782676189492181590183472501828938848296600542423828750451802115065936952001250256489661230742242737452825339986460017334282775167932365938263821324298911806610540631510313898162343515337505468202272559088846491697505313419586454003006574444315327529072902730060548067634653385589327291549403881253402817293027684404646985376081374502649222038373525337126723200755614201983213621401103290089814913710647223738908217804762239070340045210860714603904457339582076270835115397554805331987720798627587965896138808940269797338816766750482710107874088795161209368872086296445843787766134078892395493369223531387770189995740964829414763466924816582518217523528866933941284716307021972801056153162929978050957517641341581650063551394683217335907803546151340364319822113091015175826085555785557581612354562901635806070662680972969777600367036315978306538753143328970728998286413420370529559183616441324267688209399663913146738400698204499527413094908491023743008995810364302057798813190166508578948859317808433267011356830431744198450353698089431844628450570863566420872053332175838849742734622715015365277734116396741537501652980030022162465687893274385492969971872385739115823879649207248624086941784595205282796123585702599902922967597651547698791250280489580408200300606742695564355634016508819590113829793057054542017112648128682936721382950781869179444551147658001058796080645072731725265887244955645898093832180268480555070385806449937446598332915770493442885920594692185147364892961660380849566068811944911019599310552730980276346477087031185066738327868658983852198589795900101374762255413869930379440041377590428805369688579693210237404373998025947500231615471528244110366860454451754069472523042140450032270325372466783269225148732617706168781709198881956207864970340727798389812196003824364653385224842954892190081408804631776453469838063632672979995508502963961910824081607379939772106053018974273114824451552629567457066312170960154937041336128447181458763345313273074245061309794355726008977290782534682591332774742605997060434526014566420553302104531025866134684535460072236837564754972488348796510540916035951194855655344842544250468414161781621973808728589171488313140126039831974862749895140397649270145315638350111123494277422352692696386761832478615920242602473811265691588833158490309123919346969587951414773234969506488039445845047884482581030650231089818872509526950173192812438932921544600137606611608894254123655438158103390290745881018228882088711307356608338085010649534093181688061403474275433060929712575163348915330597208858333062257967763269584346803313360547340662354364673188785184395563662921172118220104045955955676210483304977846744792678728601195843681054920559316880530975255213294874842424044597118535910237321509983851547147796427361747170857365856772711458492781638832555084574879964942590110013067103323620695790643226006589797777980332674401358160515345213622678742376004586644799166701387213912320758491908712453171579582597479166938772967304074162593950856153825111017550666669864521052776270424700792699638809092403952357433717703861683366794967096711069275863754904858393512367192084823920548885154791600782588970932155702916006216875463987761429225574004692569136391860597248243641829373974652979265690410327751767392496388778541830679626498335943109353140705871270278400641195412991595010451095605775174011222770585647512293390141009207878078446915811153316776769868462372562261349353436236052062030645125030362305358203424566850426718305854386828677867318452010053704989006681689424587719456323191033040303509269083830347211348580547010091078112412884265558863014774040866915486078881970662514980845882544341815055291137122232759703929684640719090555644445916535464637779920654625701325150484077571192806375527661774120875479970962982848446026493290351154102778852458196219480672476805074512020370431053087701916224638693009810093269889459643305995389749490878212149193038318797205040302000670025082058067383763410061894705519100904313012354495744999166142891929899592560033325746211170680617041089960643422303692187695117640756667401215976052580590411249180744622599454371793438711954377966517517105398743551151521753889822973882138092490239819124705766827798909313140563669193534029835434853629043202442103001652874320602076573247600727572701985643294595094304780324428540286363543674384644385374742050609941485302449931222400403549177873629432469452998679063265424957101120806397073286468366054797763344510335620027157782561196981635043093348788776740766798804147160075220204141896200855107608288601286301445676180472211491888414059449277681095053772888891638885427903575176044887592390645895322333198141324120077786341888067126228331344984732108417149958645536915929476618466030644667745071621162664987186159701191662134714639173112927438109269204529306466943006567245706577588642080155025078164367655772408095206761896966085838720519261042098592192881590454475139612705379648226978241235558019645065722898902369190511261828938744058620707965407430419659766334255583303952838012579492798763174603894961659168521589110313000143910441993182147748122666548261410205604331974403413389197198123954751974685749054699909402027238122779250039062480177197800534030605096552202605796947191823060495286171985869121635736035003229661113548211951044664117169391803812853019761890156664553263654800066589875262477608621870244061341428180257128548720380155612178658496356305176371722373208297116940343767524737325768988417937159713584010820994494266605278984826212866253749962356305546105123883770434354522187001669425854986872140876006000012854386150980270063082440911457495835183019388843379957486626311441607528913329632467764047359944721710929929387715968364968126226574405849150111339119976985054238631712026726667981123850622169175072765875815457541042054219338645786448353510038387366306179524176914967380851187894699184482499866437620992236803144183262647510310890999763914830794525074510539275454032555427159190714584974846119316054279974054429007767116859634923847272648930043833948053948335107642497499488448406214235590737844454375858056666992010992142348572018763236922456956237720348325293623179778926474944879189102538660159120275295031710273334763833581888487965554467097503474482975653628989579498538579150006279093851624379410655085819123054125451782991098773043142679347760501414023564003387564571314481759028394626749482088474407769866385636167829426178392549227822556534948679302535480433032155155738157605296530902790956784622654675363909599888493508425325023904734961298065782525287821624255904696341836181491373822491236846471253720559847035922470339365757622685096566633018289325976187478100735742543853893125827114069414706451988960885000752877516747528016271985747375771117907949372807452298179478693527123876833931483116709953346987599051677021353848200756692792218041700796116689749625641800915072041743991076850643108965998880333013904836340676809010664152779984882890886682739202221243729386277986757266454290776017086373723044086791057351801321483997518873659342432986683288781639934279856646163656030122999075844529665084275178997607563281511785506046207628848093092652192957842552306369722105783308743378494801528591825512767543907267932647117099728225563877235014136963633300994923117386829321659425209201623103236903441742846577551021718557975419450997524404130389352270695322026021243821836056469589549409224418644811131841051815056297307612645889769245328813927621140141289308280176328664499716434646903106444064522732994540049719771201449936816262713289431582726091515626832603391885975608891606082284100341950234718859037382751480892342001234627822409847397823644337944955001315205534223170662709690587440123339154304604136516119650437360743437640046296394698517657223161019029453028230744625830417825204579788148038309480779620303499110733118009727301009214748020429664093352703900990409432383337325340249654169519476696050441012598725482633987504447734058285073687943849059106509915701620076673053326613803657362564850866180723521593685718475703849695482123705929490405708397628404156945854443695451401212188484155593307862800401163935854252682372234533029695201517046444539320099354765560474211757114512798312924217537287748895320853429808399713116230369519846270770038997836275556633233662285094497905694751521988733590785207219319413157391743931099835646352091911693489917064085485315993830036579135249351287830780766427718550747228564780758480091570281798326633564326681037505404761620963451100398307641654775132372024537588256172500357475663591219782164341118480222495685960290055932681226044831829380145467708371955236460820080310804372087079920629090737488898290397494365834496314882229725421129472889775556858479784437239676158848586298712877422327025506474089045323589453398201037217543427695106421675184821491833194961711370339103167194470375910586822115920525942110772757931960041556849005956567373191288478373686457462116048360270856306521120511641233604730060411232595995787930685618532713410900546839144823415264190867812272730474418457049812474912965120476516054891142641818897356667079126927907947369331423580913405592090609932717904380486162482520483365106586901492301335468856015946272867762266094583683653695330172055056432123760678058061101195145281082351598684877084025148649256602518011817058764290446082769361436289308513613762506000492368621947688863790833138210795364535382119685681488021690468319832939173883219621975902261016253681571771855949488620259937738632361123700877686835646316631028138693093391983322379851508631215045424817750606963730325483053251272214809566788464399501922972719653118069064326766171903183643657202923182258317050462121988324578921942292398143191000628585783204625478963163113326026166218955421900850834877529032438486729019339853947561716847767678606247116038405046247167247539000090598586873971793303136230078365599623150068779525643796150261557745258013843250859874544069211938656200483172890454956553418728325089792521211169412169482574562797405511220966806662799064656849804433363395865251190784185209495455648297063647419689840870726300680518298879350227893925050366733366327911425469457179624268522554646496131070496921959533056381001662126870752149186918250232074910897121098428233026926430065873165072927898842480764662984246920878591133851264941615693193501326494120180035107253851650705672298627131858044650482214916543751099972070176313946059023799510423810155123036947658286440774742167840885888924402318280459798145738162474103216541196413123978298029769037796663878597357313618598393950894731527693018471189391579646564276528673419285292622775925134789710526604409581676203906393969482842329090454088263436595012253788433849027620972953406281946755548183620071890869433046661536861916642696462752835876177784949111839379480706695308668908068022179276585109064322949240553665341760613367126082378047974522394624467717968730659921349451434048052109753689735220429342058444356301040860634890993144975502930184897401573407776765455753286468078961099275855861204026878955150642810647799082529719332074318943605314227293932772140535850183879873948504746151736616229061519452748244570928352768260285111933904539995459751962271483037155260640849266352597159022255434677108480186860850956939217986540050749836405911180290930659022094489602376735091394703420657755759828779321425398933252890061125893141924792756999155840416140644010815685216381005022494206633984733023997729539605105938503857141742077795771040937090196091658581939533885779479369881912680698687337094161975391443032844319793466491996277378860000825160744169710339361936332398965780602810844887074870731021901304338354903439178358635274970091000205062454112773441932359693655512132801419307486057533667889252979517200507243469615151197445336344706439074048982982916424702876408632219612276491064416020133088177547904305324677952480296979658144991781817157174057097459121750379583252183975416287716800673475823686935357256604906353618332519370458734717887007030004389575064390881471193266576191025890472830381500754019414626086895672224855342965408798209918398140688473094794388861308812848771740490229870653411925863130634661940511823629744433486682347830049360706096721117057108924957208279511013002675687991773740092880222399490335930795568099404253783712257252859153893148552307175357767712380990104187535986036947181800853469545322277148661116799715799417132402502789071849784332586387354283203121877231183083349345175420602078711905111442476002952769175916593921893484470883442511274529069935644479844607123636057607704963900967867206316514797127676758872714912468604078677147234373203054614961259717573075841648768185014616308691085670423293398907999604773691208019824740924264887602863463345324063118123809008809498549096778634187861066597761881683123705898492591281559249468066418158574304734849433505964192846336922148862200341606644492861425239289190661136800584150932571080999048871739915235290596963344389736262506912888174227886760063930405450929744482109548121583158619087385233092211467679367027455317983315751797010191676391093955324455728565788984784915410044487794654023456283693256910613101926839231611986987039775653729249319968314917924222395512674785312952481482572391346507016955492569076369138954815868091383710025799420393351354218701855491393298465326146097592379333735273983661104700154603968443580765410924014506982086998353641368857334826378309114759594626616338285208675748133735516645662109443599176678641951562251854357554103580227931144923350319874196785063768550764603572754312150463868806842994377250149088251895996604026647534934517687732526869942888343337994061125180422353081038792059983570074935823341675667428594847490490330361974222343954130000601587290875221270169825415064565172581644978660149151517340122439836560376444881031416109576296239262399197288784510040143360660171355011867212142035462421312126931818755200985270988551769722729793732622604165577605535209247393530120768003753688412109340025890246783527718689824638592070687459926287521952855988853033460604078194585024532444355593281155437976028937529334920462270928750404892356427928974715189669511503770892388575916683229809756067834102113455083912033118071779026472414120131556898906203667198114626685617472021804720513635118629816193188544802593364189325215702360818255502351126079413090422426565252779568079423524464038782927806054687666348838266347403643035845274739695567280469759282807589687937144312156377597804611374552972070073593876012731880249673694208447840562862384371799778057399252197911055328978173130168253145984613307814582496188887801481124097170983425823223669733535222966987369683740792097624635217070939171773643400720357773897473196074706751194305226679794465079531928939500231491853858064547603157329384269802452582888430518455407402262783888097894850541191798267508192808849305833890247189485662157964180098362635356134033964340354603713305243955553514095830982253329201618705721032588158348876473579382439569588417030789103518122702544792223645498393782451502528722995965295688739169656286885307176692384457624973162611452885587764657214832017325241798444856014001545564367878563832252318436883640924448153890158440444677083162229283136230450935879255389725455557743624191244679841141917420371456555222072549724932479196533333883781043218105413214786756594743829823766739390123975454396168065845514754404381390337803679560689496771765160968851998580716083209423932954797652363690575251343325532752560811041012676441818339454465959804265207274210960046379711302831167870013716567539442475818393866216302125732250507243884900106384556064248186933414387525750862103369189875671460278388678575327746056002211716941598484371971139588821331045219865586533239452781003579127472976283233850661234944301860778771859165911513137293148508432959486015550373390284335085220079339210814842374731907195430331267712917788859496378716921744698085870387977056573692484186686129256590514587880703432960213542711277141729181162285135113097741150587168819277001775522829033978779452855341440842548277855511351403420304265849320914021647131668372978885538788392232312671350543355819604619001030605827666367576862944552562264250499507688127344783640364346953744733085895652669401829347341613761592941079205668522857872934663988228090667027457254002039498939652930702169747573557201687146176888457488727941123020804660321889379650177070763222011077672931583709683456273478077840401606580756047134542116900369104883206013516741725830078554174996262908757205938645071159655813793412817377703233537264285939930743719138740896925407745894768857371512050585155658552542857500924463790701234104710356382874787587775947970847076673469003250044985993650399753243223670853496194862924240103451131888101758760444416110391332115404022737774916728403489417601744563635206328836997183510499742329006878256700325583197384026350291913984765379630046053202330043993884504865967861100339838457065324762108317358507742422235772311371623346247821841396168605349201260188236054315409380639013508840528180748268532411813972984501475336830148723051958258494582832275890564184132983254591985487897505021621054415420511660347332574506713439870637175728498506654168509014499834402824464400225282630202705559347752162781726641010544259237411010243064585253001465455412593791659575747006630058310221755039968573197577491717758576499701206491018538375511684845082240807979282593873985620115357421010264848011941011788957953329476671842328062948158335400072842651712958615653462343953257554851503830361562163897344302548269132483223416410826759751107864698688839846166076531839902425736386625036027730226328458854599341078209293335804395163625044539269322996900522936822437509413484310829638894262138829590133253323502511021390188935528699915068305482990719131566905195904622239591894320146909575513897870937579128249580534260885560349277402950976320035560515994147824677686144401885613761533620635402033122132245238249738552189352356493380631127087522936796782290427449140629929048723526607035889761561662341796083134825578527420740508623282437635022978457520459640796834517168732515458053889408626002571206430574132160324913254852944323360707362286920941483069108306537625275751973321777579385034393903129521978423307732116267357448395664746031247261273188778478996888289651811960580961654487973485443607497507995173646739877946829521311458009281202044669963227170254579879183520246394026505505756691130537380357786850305463041916832819375726168415172626515205431194418232819104454669671422704766587498231025045430665675787502351113450648435237657937883899890463045065513674837850076415318092090868873131752859875390582037651097440488658679755444752786293523690392883834494268461682721603363516482231062501030048234870073004869051532228709299664776284798782832223107570815461762193075624543130360412532553916194292891316371589203898819288625603863621957880739420890301177058998101410672222349314473545012087137098579101132842001044517467770728957935150715762568500964847879476411154869238515577656145471663775575626540072679907973945528967346890360526085397492801476397834198275704596993194895956692766181451751293691650138100004490825792002999621819637801091757258660084455890341342960429373943105387683363126299735554614817439217623799980836770407678558159116917267167547269727671591092390044843870012663352555816955214421355108868268941700591900475583659489816699137864472046359567631028976249513436746694709913918546138479991958054115564036543861286756985355543294600634723248090615421350534360429718627190798356906004267048165379795703803833307344257470594844430761282247409414239212880780166432346556779839576569277149659197570467535682975319760606434634057529014887023081207172213992110910215940451703646219008211135748972426791533473180425034536168783812767848016554475140176140488686788819862328928260658593638976045433493151789587300808261189036647726933662345984804315705675383833577676712045483133424677814322957122979735920276334374926962782747945286080547678513377673883302954206873255341703435022741599991694417506859612437986189812937579495349350465951255262481917753545498839160344732107911224288985992715441474010599100948228943496140280210476019659822971100254131914545280734196674771154003324330366005195398960940053664048931484898764057876954209550501293787880304817458953797240650892931045309448102245512429965946863168624264885172635611188294804053617513312752085969165529182454626992906711926822209074424482137336703661105771980591938700230438126225985991784827630531368221361504046346733818042328066190362294009859700218392764874208479708242277175124887534649503875288387769231308561965472686642109882897334567740836921322908505557134670583667156538390590424575196167557717764223977519130333076453615797117690049932289160314808457102375778067551667554928801759983253836901513159354412804518327373645274289630444193587637220151982865416507864460484963432073085786083572384808803169886741352729280155357924805699706852450756394214270187878819124131382254213652597173827187574857585266621635407740501949092908198895128065179791679815288092325843459385713813419543516391571066218337686165387876281847642906579264109030708025416042946706108718048760917470180466502712707576098251176113603683924371849960244788056839395789441679284560400795228569210031506324599479932047861936423366451347812171253643501184101208424118079625248241201839527634458474114087736414174382712349978445113434373755316207168018130009424038274061676681175596642149930332369283446891229470955661427714467375071788666115685077203745602207155418672375478630656846645150731787222527894866205110952515724835174625989125656983943279294397787774493265248114721226604063288771113804743594421094354368292164514360758891027270869844555929874256973421270497816940924394749008535974931639247559419239789458006925654526343396779598395733247702846688455599579806360868234533381570784392231330822963767094736497393618992643234228695225793964173937499962849654469431499248141332981716786196932053130957148577931394865135875226552133922955748526043203311017195274129302725720699569271478077597814774971743261990765885104533231146772291423328847324679170566424813267462858354015323342155927725200826549373615725956450431889091451024025276517324639761196621014695100341305594820777865581479749607488403331295043466184903258897054949003300525867043328060327977294118335399990155942409641321806219548471598058170540721447860622159459898302424050715251235891362690639157424204074203409928598206277269558324691506852824969680542635542297341265082445262786247411611311618698418205337846784699929576862086194029960889066489522054936208139600682613682505610917966526302202448490849477582961832632524780764129474847888048932723041522558038736313925852749003824264317536772226500535481222671354970275680020978967237432040768710192290897692181646920035117348189162235800669493090485977217740628199210101611744008299999859712838798752947927402355579928820462083817479218902450623415082034907152588826621600897798835444259256732278887259823174946969064006159761463516293721669302469802729393381716820648998432638648745520826613715741170054400853596648348834498869180205750383129104550135003579112639694928613195572084849963021793321850091122364080134950425306195756482602343575784946279063722213675718483500005936106967033336932114734279865632083606159357363237997365134538369969900832212283577955146327162198329698887217362117599685915147630565953259498250295429481689774347582202778739639430407484869037405022267415014643583751820837843866357828741671740979303957967340213123998420542260888484635015076130519570330606451645631046680280123779502213607166606047706676930153360840013754181206545826571130867127527029848563902147242009019375232485232067562824767682065874072446091964024774381669082855364523602394353498182265788188087128719039567420246461587307366475352894459110817154939380346261513559601963436731763047580845434311767897529943490697494180671716637820299849933655931453169455857128106351472505720975861800776305840399371502513649405961704249231944749110325561529340770024068333899796144500810029750787345040787655130550897192618710954106884646328818337343820278325153045802552329775821950396432654854098825930895682040095299397822248501554775488943356678342083213416995212032991530090427283213714763611430781412753367836165609845911363013564558257212830598676705716705400858011001513033489492225161236523442860651019631201512201039885520266423922528552125200516024050563202660772839066388481710044559267141329861026592585596657794760690774592810600493283286970270427940001623009396646223739900893340004782596964153986521777725886421417595056489408355542826140946221413931773653645169881255859684972921268975213795263986121899088401477196831725184930476568086623164942818955132698538349528257064818837178667694558628738513245392489675864129920094243990160324024189337330778233423468989761138113686195281047989307489446029594363796896597120167130934523149433269737003852437826460305485111041887089317134897867939177514310014782569111855634578154360694399805263492840868714290722158270019225780921606296958385824653514190042378683197964634922447677091327677660631270239364892928046724045944799311239206778336928143551512278463829702416488149424221863261559870521733539360422614018872459947955533058010177795575604757945126170016759525192296416342168145068984736972745152971622314280447241643734432293698593167606142422007721329408444843886937590656562672103073262415275285059952509931302160211477711349389198860215547663843071770367640193766338453829022508516668950621695751521909115675125065032939018484815331657023401843624907647247498852948271070054359334844182638467237424023432181033437682082966291678609639747073074005263418471089702977573811137096614965216433315210784969715618951691059409383995707946442651456104684635029075880387806715683033246863142238373975647084387930818204642052648372675779832566876173212390651511856253917238979315201141523605174338776447165854327006213853770578650129496475132382791001192172577866778671894581508779481535458025079472448182981327739500794534878737932627610526320861250252539115234787382607540014255766905621291819250051079079421524835587930795660745843721405281314153104284890887040977023022141557998429554488334263951693372917528246263241846012412836411199308064091397073421675053260831911073095405824661466322341931150623966756634412311773948599408902517946107780126917413495235035420676513314843053923556690506690032883232153063681322268299274224209944893720502134091162657036766488263243492827997123457033219312888190838095550783710172655716116134489802035066584215740166765722983171296154649844931685774353341887095711445550075480551173800263461660056799678051212150479774606624219151525990635988090140620839806452444237046640419122459170469935419071614695903850977670570556126422553897106082970320838796751374280997753670251740507100892179620775602845889232442790770150670566873538045228718346607893896140499570537045854452735237080517027244110686749203521586461920201435865122405143444159979443111973346768625407195492894360329747598809407326811640367016064450985890027020380677328386471899083193558105874487311665900965926238019648431565552891623047700840317565304080001186987686907841223935939821253999899420590457716498332679750699711236947594895586674900150078480120884481820693993418647272821770926124917967766539150707845856504405451882864929652151169764497364875964192404532715405271100315778854657233907393878724993147494965921723449736652019318173625791802384560591519535042662613410851566109098906715203624003363899496345279839392380209234556832710541225815861145564201951912273341588299955824667500896346434109702582686205501826370044109392380290921646436912947225055509631722130890563267682829288347735638586433302605125381751647188355201484890777972632218423539745205992905557700413465756257810170527471382232749690225937547327987645209738667809455200676130679546652600486399048948911904025493870520963303371284169681242880916435172309818999051848193968170371745495742600227351768834559436629971713964818139587342103702643463941005906148921933421007310026884133188261873162959041703073396294915684956397085343828865146538750057792943254818432741840835698852156898634296392150194457979593031438911815232986376996826542187223602154414677858677058852026194505492395895796041162601898543256324634477987123757535902070596937936105245504696690174672310608126260399786377014222737840696449278749697866938680351442746845338901788159391921431911274572606512850623727729652786292526219262282743721820515951984636155371961226374735213312865837371575531548288452645801797676629350910287507977179461472740802561833350895173884116217516963323334224110335457361316953864029682862431414030695408850514327975932096271889867513302941029096294109726625211225801153054241414063162521837171892752341279108269253758359775999612198115973017325967277469895779773165092884681691025095180882776330024672610651594414486268564048440354494126306433642936950170809251515246545304567849793892858977868457456817266718813618155819795881324299795881668778412506267410700239789997033170282236347987502501920076333962938953119224511669066188328060369643933951775302614973275110841350459477435861150616032481321284325295191348835240900576977529317562505165857779423417307194007639199498980537829098737295616751372611581827721121943469608039393135157417683435682136532573302565259008694892039767346768839159526589292169935386169691613002047251334927096382133468675117325516285123057486543329065903981721434285940258048384425954101357847041102083856447183976562465242071519389533000415762848390235154413521014319647656616385462187351792696916805628243723077663514674212106600272331662869383521857711553803555511650226625789680275918869545053771019413705889293153862810810205721460850655048828121491141580717859072058173076308651644445827473183108729501225749015983006621588400877287583225952243173619067022911305985191662099766642200611559608406383796190485742357788984949454639341390098017044740349031509991602013504336457096310384960373619677108900851766516780016314077725064590854560331472370638676581483287996386225556668139821347756012535487517190855498711986789243236519248759362188496881659860740005471128152622824155847914658872851987422155273446874976268616235629321439301393172130264125476389183479020360164070069442871656841561024556409143719954705929474299769219161889468095163318006407126965160541421369256889417661102912855002647086687085444026399467675594533798532359799626756860223281404658415256715368585114711685572733550569369985161690898097589308918422709685053589651118702701646478602323495086085609191672751429768217160518183902002108882396336767910729627624048724646439157429778342922349892994994333513770429850936673470613772633336744711832846333336677111569504009717660769461728391547982070608484464078698322830719291595196893535059287136803900486579498775451721567279521613288524675182391161495060154464632625333556669214609271791644313763129503004064691893171921690527020161840447497030985763076182969428134861037540167756297330817189508066042733270670787968716745249744477607913035116900077198869994150099860016159106968683323932409598596946736200243061743318047557998070168337106756096446292478615695014074129028491229966395113610028204512996613929298214707023661598210328736627745699704367823943276098850867387385434956350131550800456727956714424415866571222323331844219158005313613697067927820165744899408423382986225008335919788854046294789628728033561102427668392836833124101301777731164161253316232823120604510907346003287826122334426913553299260046769742834848660296090174878472229190447660809881808213781532141852734439122336572399982657781957779304505402912870059534296314737266909443739775270292752903330617166864397336949507267981585495202773419441134877668041877656633591817792217837009152248648968460854654295645834561703907957082154681155089315901279674726963489314349713249818391001152584770006475152952350182272126140960297594942689196189195181517561311041338631271930122942643236700303787393557930543542444303226890751502120368145588920372252021308232273090100024546275647406065970966065662496616556448936977837085670952728470013909308086652820928509727725828752140111680523049021390515723678593110808859976848998316532066646859685498646232790119509670548339954309791274735582264755810064259908433240159046260711234281363782965209239090828728477217651686840150545230663890147780217351391572581969601703805327642926143010333915195627662605592164951910814491908323585005406878916727653301448307613465464169729309668243554644583088322916218576008309003546923802985011655835719903457580128087039828455290810819609533680668468024637181511342417972082805463261478179646161056375669525568626179720887504226742722591385158912703641986896381470847923167779575025332138181570614876725979279804016053823242043885860492055400119171816523668556598056116414433497992255033835733753625048697944820197489396587838875096411896702824684733813488799189322438547758181706211896616133891240682389633905401750247518153754489205831331976817605760542301614801577512592455852321641437153583762156635307086559083329599832708508668836452678578491433812083089735171809388289298386823265620708851455153029782521876274314026683033747226813147723972825118053990347107718589930728480195655191942976848417522823540964888413064027984138967084855069013957682569338883111815224613797382710412314251290615487096240185626872117617117309239502552210342969133932573633184234310738284678728003808273611242645287674723255747189319188707052623990553438179079872016611926446885728512157173820376856282891460296896954948270463973884282327887275053776393400218116926190542888099156593066848202217323778005684749088892440675175008302105683747013959071418171099385507028030525271558760137325236444403603711413207951910022454614550389150252698962060618980643263055978786360128796771350458635678060214994614275754467636278363949421607685214668178467928061820899892340732830237527606312088311481179637390519560534805532361808906853096995496823480748683940783604482229772845621784211976391617254438397152504285202078320831534781172066798619831935863101546488172478145557437071108922258078453544365392148195922630864993801215504036511387584202669140696009283227266321089803276889062739840011141855606638278026713007052602516058151387103657679007952727448980664395105528791825051857362085139599335588981586947713120541291505427635266198321875231176973467143671995487529842214443613777171013984107810590456920461547004913454715195876644773011480208306273125752063614188936849986958414864518996628931556826689775335427892066914354158041534096730736688229909083995621115673493148713044429562172993858752971717776164971157451472909707713411969974815327973479449264521563128503361871989829362151090972755541179614815703368318098791907467236945258626744325898942925969616670442286879203463358729216372981629378903054693455581273145537198984383454445823727168196802719685394233183393692999628167710650190955227845443727599860798970226790372686154445581124686606587011256643753967872113797175076401109463002972375554172843707019809715932387259508837750448372964244300040865148706972733559480637101027613142087790722693150830486578284608606163946594359962449796281287661436517758424434138363805425763768058237054314666319219859822445247042298627034338938034779503047720725794041358004017989340897785558431396780524761720290991470202262616560343054601353134122705706227552649685157778253765906674476971038346885335978766776567540729990779568934978802167585125722465788206395850765369822037083262346604318869866750815713761160836847864892849310408512082042039729671241093886801893557810214101668285357433944268910156284499953904130034632086516565090413556829043072485758619281285291677470689876482421476328176742556470866890087709128082004267481980925608305149313998443436529412202695989405614422699907630800632293538156684229123993867780005091589120132762991634867105241620079552456913517141819297057107578003778706314413538911626464530495886633745249952423136661964866797367243956788633999374956417074732479009905384389779121729098627339091314931076548364257428423074984978672452257848883180618544308909158848427802558758795799367491335157777883150171320032919398821238328351934303765499437902539685566401919059160273688800514529377090684470051780179303440400817617845548723800136925581301072667222118133393041001960570680313671157687673379123548171205355918865177262105443818519213755519664088519114751810983554280932934706453827199659683076814001954516878206079929133149642751978620844649465576673658575943959445564782151679612560277359172908980188600824382814381100958707989971636740205208322931185113482963327700696006473652581206255608087341986036733219710079377358572304573501290005299494574497877607621853971626952800485491318078165069390699120513289603757923900537173959021134592382245962432721280794172845430415996273520513268952767070604926917736213864098164513127005838542037028224021948256494271711987014304727659904109974375808794877843269416309436512876961889606038434501247392921314321307113311000498442353734918611880862355999580933941256032351392870281347408222480122463086232378002123277407445050123924049752869675238563292866875227930618263487737417865671208497662083544926310072785728188939697514298099444120278832683414853974679875648244159016552883703492120922998163576153289796400174183072032988586661813304735563986126384264835743731612853571706390006707432635907246990197445526809148668072001696226909514140755392651124032002796626649449565745752168433983222973986888842336124005237827482791446303911651406588019033035969526713547697875907069754759911684174816847958880247814570957793510424261112517239428585997956361382594661608356957286923829498094773582738479548277542669521742580744032422767639235248943375107118445886194186281463723872571761044628715224511072359588789849114979928146987887036592827515410489089119223988182558054927409602436846005298486852539109132894840818375462478464403541794685438968385087585242986183972088457250145556056735831445889080384535431793128504585548616545651878128365964584952250826538110995904088602229925635629507043248551609269389574531724120248252355234499099308689531054174069669170705699797708274860237260009090949182097172113963089534914620703268688963841111525663572492300313412070705467202809261912850728030794340822688737112717939257678386695057685157068457176519214903381102525591288786161927168807713097709330467087871038937772095651171146152625674439475737976655459352380823351807087793249761923232112689856731322713577246935919723477026785525160748749775455415561929573707748894892915408238293913722093316597398648982095214583639380295558078411267904536381047745176336214480326995532494036692740698194109019630473323106382741124607876306697937536606251696367636673763508694493245346313995782288636632197276220018915543253114267059201624010081939443705970522872234753902344008191908100322095711460158886670470503272897857221236667859404250881427861639434030263603444298987195441155131939417566680328727855710974944528069172562741985837612098337882317567944157037607576141453527557636844930543122864607591540388061771688096061014247127995340454466604841232066053756276720931676433827352286343367405304175384978945009424748617660475338878016327911172656504822869839537499294189544473389426449177584749335128513721176951001991217764891552972153355380444565446733462625532993580317719800151303730835444777622489096962173498808987420403626929920132001865563140424758436525032859765124746477680345795140968744961883391153117100298828421480227125075996629964454004507998072799450350855676317107503007038756536301892408543743284489179080123687559268543895102496315055624849759762606971717077033387434707989119456635932358133118635283667721769174546126103786896545263305138867680592629393203702610969038921660436329972409028407521084561923096120462142575069612539163423269273357131830575612764803060324351303072653685281558480601102325163727462597638670861868823860538336472350886097038176511442763987268965078912601901604234143175603451409612429184879424569252294346158142226583974132670831718032522756110877868658048278105469993661604126090308800554196728928004433406435194523791194828904935685589779894074844636124349670307612678366632717469317267910641641424659670641609741308789577839640961808635736168908612140383550838750945168688984820959058139621231691945884409714608101562617734971417977831615329826142738300449753239971091407312781028892348470711642070816924365624949424485814581156311105071660405348235197200173951354982351300688339231779920538592033708533693650830881905251537065246648393982320270484268419171030930744213746123744990924049232692529018671099792096474659677643806303401237786518741825280624329651452113884481668325617280242965906270708754110359488561945760965192946739429507455579988337628107547103736739870795675330068221523212584214356201467285644868541954128932128942824241099545271419501946439966440602169938526721029080961043713184163755856270336451416546627426693374863754996321353619790086009228738322299970330165491722428469942108861772469858546610560658280034014856544017970751038230897102748582943570234632623364039245547996664081906379214929519428274034117295757145696143752262118042296762661538177273570965391620582626570190247755027247795099991699376431251699448443896291709517918036786296893100426953609606632238411190876962149622439052209487940949125255628965548917226112362854709029121089456286290136051329092920696844182323065626906818194650416170198015376699711305763311656646078830062207810190362508043833234076768797592792432926182620230882862309939648059356778017443420724725221599687262233789086742777504650915818022584177685873092874609953103341214436293410874498309110959699333345173601971918961735124541614425537256358908037399489466851894136232930236351571186561779794077014851544152126524376391579598457048102502648679692658368156908605226053149466357641908604397129584903978434655526332225299388086088610301604450029062932233574468413364634468783042740108476326876804363311716898739812874040897584656599087958479638471138902582438733921641115316020934595724231445271957143227849705479495338187238141059550817039573576263943193601170068198256704771572883601077143892612437647352620022152072146665656433496675340302216816102186419044858076299448281868162362567512030310145655285894202761764178992997582800166252975196160595145309803024911163451104470189263850872064113409371621516774322463258918065982602465734541424594892340671662651351260417212942944419589222611148436688506948200791520656225711351588144016981267454932577843456687284028174903969582235615529706325479350281481516577597715712104122229593925964687307796056579722618599475017046154922863569164189757408576079708834956764331407191716650462085409209723788227938117375106302138995077117861494471973399387025909228214208255515834218835304788193072569916411240792147871991160749113254079866971733022170761193925089057429348628998214712126391879240217404693873721050434102930026096397577519982036636302547880403432153196239373573447430304213852599297254367533587786962534595975714626094234551140544496492328610113875980040905058985029743681111420746351594062352481699955565245594020753742608161295549309135940558026567335472884568946431304806729475831397455839268580923652168879985266713264638820620599878274556620425072387358958036315927086140306065085226672441723696420571576770893329063068916366261951621492745247900286893435136008226421585550774792606201094127838210618333734147347367313501979980081508686014456606252172705018787042525000278953064274175624788224810208713238624769781476336321994067945495727141760221014776583262224158079241444651381753087912724878171192874654029229420998581958885372920955111812811703630769250260373062014924748323977564664199591830154355535087377815094704262746960747276319188088811106766866010838280422198481349020092773595067195198309126478707851911184906795091284238998861275514242608789315136813081223765796694608589254543951703863956038221250779313027829743677770753571692257932818655410182149234429065287873130195548395619332686676458296913412226260559202836387473283977517887593559960328311713810514700149073627225420628975644273740357121378049249381601928864356887263742521775229634430460992424288697749952029920711637895835050240232646132847389169986671771614702342974375415826357404355582901802856898910114354707983082886138379347563466375250503351261964369832150749382470232672981444641151121988922278283622328280546504896917816516388094765196905678719202270040836298608494894923581275010239431713369225204504617220589295874029030435481513249033058325622172689149751922261002873065053848840434148103495522339397388877354154806204261405581649474617490284805605897470905718535737215778557857505274116754406946242622435730326244175173446069764442571113959097674050313929472136302280178660344157935265061506010168420868352709973566801671518835883629630498645553303048412736254244470097754064680406392108367757425912072246873437803749508993454605186876419141665986368999427033704830911879451210357616009228033080868365559885610364109095295426283804094910224691515539310971083683874526739808555690174234430883259117612748787399076117702606184316742894391155517371481924282413408696971620565196112261605747556084425290627342607312122775265424608570469421455017421187651642029740042005284337283108261513609944277408577181675576252403773673810859639801250889102491730062511689041791153489088596886567030106142852963481532610950020761307709295318875454699025561377869491734391069593551515261675402439987561323330368210861230662180941582642455699789417664395567309435390563205613918344380674801752217414674712060590819045379887549419049076423658542043373047001023174814438470716145414778154487132613549667196966519942609930474392618602634172264369791635991749854381553904722096651898293665729707829306904257625935354656819994049241034126200182286298023882332027570626527810491494591410931984823404257994334133663634610604777514589170091977309347346907934352823344155466673705223762994324806574489774730626683256221644467721011654570388472679818448298931915856424757263375733569622880557787480525953362750446310493112538942013444242543779416416563721669162001576196374386961753636732700376088886517008256641570809250953987863092461907316614472403850686002705751481697812347587070845764128838250356735917473513945417665766478711454854382077952310480628780148508613435721991797217284656949561180061081842219107794092767433866120872017096908646218847585830791693551121059927432371064472039215349358308239925546722221355155197367508514614859805652861095272411037567262628012184847572884089943919023505684099909376197185026307429595866478314705952130248715443072370253075226447567585620780596432806680688877517068310000628235703070880049884906517519552270699119637888950181177101779589688300602051576437770910351518884452673569416450209685438662333286459345546164971226839449446646193184673304887367310787437722264833342375565047385951081200422539987695221544653897875434151932466247622115928012734134463620957403024946465219963583030694725220149337524020785592378735951775187633000565080477794448287985143003815318765826783261534559717421489778486363100505399487853372769041937666079667071551880888609119052702882414699696784370743276445635108044936057519527794849180147372167343379358558179083310539789971677219083573292013957428018763923766478393142550830191794313922064568063100117676951849633204394677231206496322052768210918709932926167010137443458995666317975119970156296332512644090038628881554178123341517395154186425254770304461889107588813618201316405634251241854758099847370947099774561522622386038682403443905607976333322569210014941066261037286191778826298501861761583954127803400299835180721853535405914574032489327406432650288379592080022660500087408330556725840107355618672227737632127925388373975203764170560332368800461338135250838189844349501385505014395533464800353915758652635454215598670070618774424205311279799767242534896810286775431916368788186152914589419351099555079958352310622984905485849866802558070600852707040950773701526258729186271296533910691441460278166097166987183521105560792180371281638189256737594097260673910583813876985012431789091344879212210351609441020917253926857645580540065167708504299330098415641854198098058480574820566942974950498729662798764583373363729906075066642269816470558542654840174438634855735037716425346664868664587609412617156082342956652156422250535858122655050149524435477754488895888448646610925132009370794242947945714950074688210918868853256313797413208305754041083239999026875942457505041321774738898172610494482876143966781023975473480993401907497260729193094820516431252834992847252131810665412892218414073007228540639736737411879745913523833984907269101816628809536745500454601467785452872587860996174068739145168203106877338171897675504367239812925229120029837724205733373232241531551146146486505139046046212829171085475773288474849012193236546210862109286386151881030610294048167823503384095341735186183072551237645900515518540020048970359894673810523364544791966733724114866935066327925158842054475727045927575816968933569748492149039256693396624804778033539846832563997837960100212848499644339794417892043139780110031543332288820231016779954347114831302088707533504576454040757057997727595856188822846135386547921960374299518847074412701741999952308715592523009575282150303202760099345269716474607585218005453857487873975824076723028125812043469595937019006832107641934767500499302878587246766426999102226991213054593970870442276391610913485606975923153755921504306226953406170111368361342012333597118114662443247310934659990729053815586077186832526360083893098814153688926876429395726144657329280497641618199006246457802273864495255691843665156743625568270628407540895699359533238560277964890375062672762582235896023206454568665351185985021491809639223656183156919883100888598162043352438054970927994623003211196279354496498791429406526300125821858356033421161687768611818029878492062320132534114045430974387897245547977423363605038287923427494125883215396140528088906356638768501289743647706133624714994379706747845458624211215214778827845414349155863159986001974380520755206784579839811573901583051793534184410679857853709781043292250592654470623701203034158482298370166001720672142363800902314994908957342482726881107160497721494941824623244676803480995561094801486722402981230686716474359199515163755623145170160026546935010844043598459545398018155697096232650446740896228824674025846248389816905047404891581391508682481043781663807892933789646690080563063140138965599505397541147400474051807387632002460848231478321016588331458533975151125898805985953596535181466415414387094654100618352388661045864196007418195667504501737326711796971581189602633079265964036775034529442342416510869632973906754581346991558405256901868511015342429161826939729153175934706908143006755810139736908266992738712906180419277334511953585146341430163541540760587680466726248266718311542933592233579603500219551741769694078516009444653266047797011401049793507886770850399848121884935366217257120209470762532313928015698375172776562617724367807675480837698525731571589602326559908512709678442546509871591180327688208578343385421465262545694222263291156089374412023225829090693805789175500132911526023090867008737636855806249039596030131299838105310882633122542643315648653582727890768068337864155102909067090394557251149160255182511976296776503180034271912273110152568764004842070376222252463065160371517331107599361552760199429735030036769134006367708327785883167516940587811304342106973099247829119139973254314695870628714018093342788081353595405161028908313735403028961663332563212907077649147243978378844761138757611760657075551770533375635920044505493394233249537307075586369720139293488472877481067441965948947448149729210173570005991994778383146121062104676822026779854689971757227682407192899536947089872989832356325913962466045525114128827473835594571651910096783036802004086817387173206986812032304111114602566088718237011632845628668061384342453998474230167305515272157084891345840599725591988767014457330193394326432216700881640276186953805424614849193875238018672037372677341014710982722540484260576033698642442789546080986630234422739129992510548597610455816106790222630540547482962028657251267275890962604482913841670116816555872739998202579472028888081023515796473681143625089770652653650124167681873002367793540441171586376011400561020382028051699082848901769424820569146418952099976679445955181776382248280849471792254258857809852532861443314562099726302253547924488389971424678887807380952828347206689580837269220454750394003728455967508760720010719133765497523819746694950588703593527017304500202369583910946722317379869262219047651972056257783752145136318478036098870551710354226372263700544855963000053908283230990671595670149871465020702700513081659663079574797284993603817279417703385923695529929584120406360040939383340347777179054231377596581242210638468207245270745318997549863371892882744443614617708503557660700822056638591911705264773054060158304646466659939623114483355881188915063666895667937332917335536475190403643102188737930005624503896206577186141037932296471813986252062103774571144235802345159237381305213265016900082123909479332937899779354895965672077716851627328447366475101250168060892102212286593460196985094499848926749020937234425240335070334925661389011511195173795974300455580063989716330924045682172687284711078298826772726515299998425592636303230258140360197223337540899241485898649324731051614966954760082059678191744816328235747973737773987059106108020644582193215546528017791461165352210121128542808091454396368473171908032317790264363438674532594182895807891910275194790000139689291388298043075896788828291383178077904844764240604617835406206750780298849010312857267811633015262475740058478477203263291365257326937505933395564102681984318423724901944233655520081522681838321779974852496109507358484204823102235096358524770377377562960059144751681214079406586033557521427422619398529905840217618108800560865457425843871879617400753627272656282442905577060832039605165083085102995514854437781789962421281255164348315487094803513606145356822910153690388267659989820134632175702831161310948761333441597677870932030379755962814663078172080331763412808696895657632924187201026570058452944286712900847036998027716132425357086517056476022295602750339846681937690921133915762763020353426325869152822704192994564690771742351684114604389772486929266409376679059938755867469074446903326857383361887603312856725959577277051497578495379372396854970064619555894609062610893022494056169676924839457341859160529573962094853210653900447783991295449950403720651168546552537815088754230243978294882213428217605932889650608755257774423551819614236993140413132332950619232308604392281106582409765726645191741964862509542589584247620932674773131771717778905355194945279657656243881613869712004281551867257245594122282371039128640816370037747152439590561471483189694129155368968311513639330510894695578996847181596016705774270141760623341523961855524975083090100824589710426244137106304466987722665916148692124462722801300264322693984990555116593581460362197658817304059496870907832687229536543879528696524616287039944777175523397488512886972716737786717659058280776512085402605012933820608560715170522882640740540588856956441930213510825310756362277352810735971591691933884769692802235542240312774104148672680145080399927117458952187938282251821242971780071763218055707653305798286869954220055465845274933620984035268138980681910235883932376852001112852239559143535582201996798482780625330894031419772223606292403344712779380296728824089038336959982034846614534422530972262081589934475321406625437307262370174560050791874862754512213395286950679385767551943931081125684860288879831142333471110437610832567919608376993676596164681580890020005581093588291325692835192321828630474798627982066917979018564128620759825023930737167226896292592059858144287526482584675518448136573310126804227825607073858713272813938351691498170111528973371721169087662098817317415984847292638789922448127716248656153065662343046748605153254098494466493311552774525369743559788950891607150711786319962541086457709249104291057004521108040610538645632725246178524077230680839698205301814738762336024347153972671276812750454670575691433962395462861334804788876562695422012859134485036393893704731793827155717269000285923828788994055884644903740378801320662710340188251950099196397896096595221408690845944960948671388391365211142441370595826292999910636978094163965615840340237283193702618938320385199571358936422499776766292700886813880575674869438474320463876615720889697310021376082732818206874163839045958856199906738867769372007630025429394966534784601545590999620559111139408241008106305151315404296229425120610524158771876829087954796161138426909484181460791664084862645983874730142303639919084065028790271652997778984851167116549825293025578586566140142220220598606043488783323501323877735416216037720596617113258390446156716337766280454458613350712887671589299672292034345266922708010245809872558544658753428713819442326224411560588429149039655659852943633866391415987186679874973084231921864064116455578551560950637031324602859788311451995960295535044566350680256034499700236097275160379647922041674186171756613769570968985697001874557968946079630239191111515328885269145445051864116805419842575591573652393024055568214337403669567788915126141632999831399089643125870941167288884291324942576031009359468611291076319558896484091723652121214757140648662949617349509022451065912728717703396355881526706316199350519395534431871097422459737982025662803235146634304277401523876917156380203314096587356926639836817389231884171131767628666832354657689400205499915444886106031103641789389266593944876542650998840659328285331467286265082336835525517771453364144750314156835350462348840633187669025922750936510980094135879371750114787514122488111455347194894950937958377984987036443476485325760049960558911998915050185762381988395272643303072789286479667430511485986857330655578523051271824405506854121546092331202961957566559286782662656487927089283137850484766596708841297388282205656543795761890391937423663676384317216908804923404552511760625725182814196472358135078781110556919685262013320054834249119248393782553535139881714658629660933013552700167091447539237903381156436451809643000225697752955873361028055325727031093898119813799473873024904431892823512703504323528820078099070355855849286532132293730322448059736583821594480737756474629335215659564824499659379650117171012551704396363414764246319112886078961132873661448743875903554077432752805947529449809058443689706607673363903454841322885264982554524877706689253967382472558757109407463322674090914466292151207256231906521098063923120079534223202236581881703003623182801848079505397936428562745584031003629522257498518965671102775861628338871948380232371770244149138332357710566591149474797118042402791150815645172021944165980046260233390600059498964317690130868971410786345633700290238017970563024414165872459653186207092932591689929608695351014980098809031427413419092194270095820247294728321186383757049685933099548708445834943811564667942467852890643150557278159036443794091813022295371775666323583007257523323731649021047988297686674774680544957320298345813547334376306953385949932719495719568738756768798839935609478092765934343800368115978388800347622145202499710248896792304222318966931161710949203101186522194515603403131292700423136619997668485393990119285659309120548760243663187520328725117821479400905342153193523928765866735932416362485041605632420510980034171492835627480326678921236111880616129488404912456573437414235148626593646320299101699199738502371824630546249576389906929012217354325895359150762841657512964112591568406199557208806529713890979377715125028299849158445528632967779328995439307016998456007685200335244441733501152558377896267653459083474236732768568880804704630859125847474961395892320827770944556014062676106497619753045234192301469321266433528168152506786362817202982909154112950307014680445236143558435800933251793423217221958442438752059868799167688429712326540096839524103395789691100861892172579375338057733442907750793963090245438131290830755532215651807193148699857444872967778910116629015554344200931682820049410977173741653399275634969860620141362819458096387107672097917378131690362260816820281680009780594065663846209036704745123180112838570015239191027411476805265739480663552092758433031629886133280617262892324063240765954057808307229229562412924745172895619593933719061659140580878331564268576345744910082628508268859079412551197501881494005739214301646233482920847465913379550821052229188447011295982913812765884275520687837833463905621561000484309548101930694463506668829991492077612557824391175672698313025679891868213499719220624691824916393216901439979562042929116654759002091328769630885336906244516287435504778771320893320382419383698321872216530551230051052280886720639390694250544603174298150951522449131570584170366600582739818994880914913658475107589392988549137112513846878207283766481414978943285834122955419633045875166029539885584212311288691829871721211395483915739941666176023831141001563856009466663508481659518374266048650918920047346849154151636944149130914003686416769262384059626300672736880465271987694836318699838068508435396734110147364709086916746427000838889731363544518433167405509928682097576035556002994278195891108944688479656771772411440978399203559977197867536730578574725381626280666291917823345335776169664923746776808581208150315737135683000931470918742795115468154296911623819583874004357460995240955421878974722992609501783250224345103163731751963524608297200949336085256884587087515563149350664406962227594145306322270867279460528636983110354294038609751066509702617735895632605358868822505648828338005951494722954020069623770871256772521956007486989295509923076043585368553749259595832852250314731192848071344404515271130008595889882907586212379959783749149862234341427774808567027812359778803224461583634928777177550061075636418585230385628026515347839017859720048254865761454869443124953563632407305982812974942647344227610616026055881397957227241265569576581949691034082199412145624054036250614656482357316190979872565489813409911846813089566913071117003510275008725595324375462516061472938674099905173181187787194483867244964029094460640780948147308279468078736249216751815057095201848337850205471905018996715670555752502514419445610932901724926330655129021246115398280003399795989607251922402987258421216393367142059769796395229578534879368119932045622826031121820419267020499723296678924650812506656726487154827775567014403105681798817919298532381778497848465544167416893966259215903412419343988819847985035648622772291242709325566891317212087850144458968056318039922795145612333964235286756547299542477268545708449282468180636169096777663507916854798206198832855074249949880622658557851313275599605611056578078574536203430757435196949168434916401077889298679393150831424269327549883136482506467193505244564368154757191197807389935597589639038356059088529155556749277780732118704076243023214236779335377851638819506796867551670985953413832637048279517354448234051966763637657888674715404067749203304239207659022980173977378099047347945771497835532708318586452423643348199324312782597070610953347111637645906492350184411128407508279495923250447899051223879245355559031730618729737321922302701327880519991559434717431511748844999492955887887860996319883090783234107883145501438752620202827889619747310298626661211760632390844596764780813980684849564660561038203263040402053858952279434956837418378372607994529398250122668714081536149568605061178589705565356348967037142754982733861500470894639905677731859672661790149428979757164182145104834218715397215730629112001588454878516417920844146364750354176640558086829594003112885580612511438916630175520564789296478655286177463814099448636542287834963828613287746891989124718309182899758148413019538222371211993061424338846622822342788307756090145980732193084687711977149982311489674051104522898414799915420999479952912902156086657890729426179714099684756514160645094965923957101733359004401562398355889164111555213577499338704103128757617863958493356071304597902201855619257073935183901202990118384439647359642951941935194272205961903815878233883259049276630872274724152771794458591979990551365281928544012962027775743507694808599874782421852638262348584061554262944072260586978200470418823208249756560201975890338498249294182064797592634739776058595928325900072100415656802034996241681685711500317630938110971256243489191603003968038611557076024498843389332287099041815403629963582949277729140325950919273811102198425168508583714196809429002289170853731786714601622296433704628991306398296184431015989075185210896596122641983284901856837469345268802450831732314237310633463239969819524819968638890977161262001327477205220308366130534245198253684195732247166756614648422313620274150410822933644715771559775759195362193506306435703513589797472619534182010892773108259315922728454367218521342820820529169910472636872300545414772802676854766381667732608439485169870683333529579065519715948093359292026645060463591687845507215732066387144858822932019973347423128985445359320516230228080816291395751437398941782250400160991384998760822199708500343219285527289138087398448370182311645138432026262658839487660277111875762764278218544520146139934484337941073268453887446565121455635655082151338615241405559524632070250794666563683993625769436120297889994027494134377183443802808632607807337534276090338388720209364715702683822155236924567694359902554406266719893293003991390083471142260720036014377514256955458635769665051877403122553247533834344942347002554578580066435336321477148757362089013712875481720827189604610429107741237965029282475825143809476663759005551646564034552534483993449986108917579968102587880931548955446899682311919423068913037199509998065942695026071265666003958907202075212581722937636431302283525750461576739557651279640106775973268116375795460732719130419402455243253862691715513044588513624129466331233547980918272363927115944848304970623993709581137485481814619744316357311975957840493094169949582490887868622643436072165316091688736261190111937611219233764005257838425375291604287341372140843894095323735248907256722027241111080564148199790759046231778157588488114826126406476649250909076333185526013433187474703389009046722436294408574935373785919323661946352070873725182698326447745180234257763252091823823977069666008697539717475720243806576179378279056142535938591688087065177419052235521973420666932369126543074822288633502160912589105218957195046321365996155839450017307207574630983081209567162441679636209408491410608194156071587988395998298424737795704265096497663415281621067807859452564549589332939583642252438486101877308424825807602116135302775491526106366529994915110349934762284162173826816822693146007026882312604525974694712220315813215238123234461276879531213696874500247735107973513919252743888429489073284939206215674009220308636950053970821677493876450697570363361991641189093260692598516653095179752190909968747105122262941299176579315781806124902927288384080935512581912690516054583751992999267609993868959852265270011188201172743783124978263766732120317703703546814359796984074518433683943893636241329589811226283171691239627280261361745038720726924334913067838195578332256838832608616451289275503588024218176597472562301102658794849367238488101269264255688930992508346102897831032523056497248340139733780369649453924328365664877103461508437955227667651450505090774590262236705226336599228573186724255008004664561802765005166008229727931483608868755774123989039069653625548320994373576929389159790052635778586212014347273410474954458738834113240803855336919118194663017164133178660822785810648867247568086735030347193606459433869618991610804487920744658034573809572874764377282269290149764848052211144311844700213597609470394382970957173274109673454694074110554539204803474516571631625935449047862801969504681095410775186166712097870138889714351086236746129818089956304232156589234272422721373030473486661020417614633321857856926610380385242934478072799776001818368115392813271612136742903358496412709560541442360503182795069153515292508727169915833314757362983444722216849001774883335837508244032594242381904965845285597152210068518607151254077401370324161633083041523769185802207356349968311804117763833485158294762813080516812296268192015109453749383584060526576197886776235262903443663836535535245687761418350290895638706724047071966641626440647372940015127014587616406874674619749840981634079338048690687097422099416247877434574189031921074547237533576080503065412147036074375976434918339204876472766557676479920542996415430637709394258344686837349481581782344028697491264775552638269837008239613259555405622151406305676650148141518701033446174529167128647093554756322878865818540928176088478044158935687448803709432106765717899753938009209102267764040279674661516072674542831182236030241907304909865461222435968901706077888910850376490620446211646076906972199531607816051788156267637757808491142742735496077082639761372678697870294052205633191517164835625085885359142930203877572211336278734674263418948419521686463780676052303867155879606768283630509779914693278196988935404493412708380716995162200047515282346752893263304620827384793579697626293111380870900862722652407154067849924506123578083227970804645556633969324589206450176067992563124079946640906870924690422057428318420854303215767641560841526312286884391917509945884916326162121328494887671048173379512915380786870856130053650817125904387769040711207957788923260292495497057859977063171730110141986625655077830931792673434428462952562697041820911005479496157050495833590046116334488572881937236602420905449081157937904136827623317103773982935967602442246784130957003591632017126848834667599717352630452808202542545477698586170105654334700890486753222411119277461601945037161704909754992339085926068388528379352930230717669356308616173149328140408492271934100440237330965462720357733278398357938900970143095457204573034264868204222929105741711997126505108956473943533757211013927595335127029706767287310305080936899798893961653923630753694679117748558824406977834804239358636130908914989862341582231593663524047732544407803626690104644283844098961970162302752982776703027015117020342418556123961836478834682076111054886497691872737261442960777164337817451085357127067286653201260159258375858879656985165804013564708811616903291438878432733974385561581050049920386791946165870151788459626760882735506844753372106262243755588910773011159838751714821824993483660947761271450001446001412561569394515935117312053473585637035469837629561147618169701343450452690575856105530878891594708805509019993252874119575443475790993713613966143017392807026544934334953295405784964894828812460053810169662976394719265179005872831652601700348230671142712076778921053173362837040438648926511488008462366600754415458072105639212239626400189905729107269469699792520835689877842485316441627413393099862911383294697085001520943941551048580134150566858453965836064376025039008826945553856288253425680365540263463101745191276858032122039557123715177903170265067079503374404850867813180994948623624834316234523789960691070496372527431251326711624928586067877831779269807831356584007669375976554466103706128120856816437488033054044774817893557008778248380692725816127387112098931900743962049702847976627231271296621675546043760684160535463987610470415078139639237011501094259595472393491969703512727987129976667009163419184997128257161726302122715216836439747591330656755250390300684032364246961139971899618467317854848876187871644429319406521506763141478544888414211576121454347675050803201570832040097941233399481411946428142182421889449887735143298533967224110582917019899984346668582425326036685011749585413906664603208940743480897083891100152847432759574896455749547754971099923943282826713743761135181780581090559656002270109437437551989246165407590320647467450397607154358423447720811738890329173032357997446487223338354339770712363513130629131942112291510837784682022932635055686224762928583955678384794601476182228981298282035570411192067435718669546208678691096267639227042874761631809707281149933976132567785314004413896509653778635827869741935090122588853455271193502895307215959526075515571209805293201250079790351641322582629205328759537424031404229977387039238324641150165566348206536188701202673585433923583031265398123643904554927205949397346775565991575364778923982686210916443532733510889962589245574491349464583358883394395822256151939424540193268363216879277733594044436832819515777446819358596717678061657230872025842779971429424693814944286376270564165974231727388028644492294226115032526622585638251762728719263459024502247863611319496535973649990447013121008295338424013733299702440325355082217603552832254646991106957476787733505989128551801681434823768448847745515027870336744662784982455499669769853265122595408024047939516778437579887309893573825124540691272586398151807177391556446531403155668230590190529848375895326271640474938008556139752536561595867128027199863428628750721398052576580078511735345082261344435041150467922977005030253919117368243757534356556659963248429623995888992862279803189579653469946216303470579295750011383664615883228021354880219450515273460037351952896772017175408857226046552269018781870383721872401814952225700682463147950024533931515030033901042975286733843585970582137681318257912568414413581167650359969339404401271153246082684144927393678354633384348809741852477381965490581684258139294838569969064950797466750774286690566875330277017728110644075691554029142022410639981628479767717082865531245777915877129579602264862382906091080510027047315918158052822301156041120586165732220014275177165702503693925437089005321473130373249459604580800402320337068512673037576689719442314925301042055893348182225388894068149838798409670126235548394335014678103930891259908443458208717383450410759837490889863037556608113470169796951678823038323370695855691998287012211637949928476557255926403604414865305581844868354487184690101728932258917170033302262260870292211915358507573865450101560238170618516912205497861460783424423454009570660560211916057487919636485662483922219308340383754211072856876652553022316012097497146632927746579130589080796408497612871371072271540515889158663942370143878304931269377551551740021994276235676123136879819866657100512317286309238260098994474627573542147451685544898692901944388366781505245768721297289291056083116623542167391871065864785040830029744560851190225220956353676733675184072411567082389391008770410164899945207283279839689258977202949520845062607130401528651268139929114190860563049038262776035586784724516835331238760474701107083960441140037961942645587450201676366042646379204550275602816074763910488936530360292877095316069182252583891211847887925965470729464945550763374242759949596977901762825785947060123242183292749524708768164920320591425578887445236091497245800322856415191471595934362083301887886118244504281931592958135871027118190125266110396977006501085446502895694103150104862653799695123113021486051069372481224058430448100438418166652065500595350331665601494079132387629701813798336498403450805130442575023083424632101313511901852876981590959163922194349999939666831480225019193539121831427611935533937154839329590488741692493460736213468469755389122226332728123989638821329821817608843638669968046400964852311303902634306809695305560627527032033387897087817415995167220603083624148286189477067249287819715542235759650382768987973672403213915138411063814303980255359008521779175715107499357495675218757522091620645077062442024100291743752138056423878787085654627293695674197117529793805382077605843346450819765815033211192488470823413948684837561196003091223114757389716618415855051196687511830557006899442758425878617680231189073832560413511762804301448896340709147894318902416038073304776039867056995858199752759949665138503456404336723172974073427762266858953124266792840010785079364295900519775239358816107288021561115386060913830496948436397328219168125483861269541464122215480633643330585012924268638558080414886708199691749994882635522122266431521974376831573284509497593209414232131702796623262529771590061041142227492680125847956820462541758938804978636277354924859575047225047188856787244179506311260298287915079261059188819570461738434165313269765743517185249567776924814490418459522032817555217416495881415811722064547320165721119096834374066026618055924939327865203279156825822037107566427776699819515191706864445162891368853912523419111296051142539648461289417887590973997797147713538956640995111897133832945139846068782025692570942571062788736805176712445044447616846011213582174314911225017336415253173454727834385171586486007903445401328675818559754608858959025633294941364706335240994452787016470085892653222639439941932736722609534821198865041072976984355440177971391899487956228258807435008832498360627795748706363790502214886531109430740019672981139873390110935183541530067541221462115833163338572594488061657184079097900293171783099280663593340443492652323208148937033730133616076462916768414136785239417930189888070471432457094601204532355842844307052650321603921395150668820374309244638805168326592229057408944434952867821917191821277058563963779257825733715376164553933460608567467323593562087649506974349147244472330189835428126238325031160366137298619377080823085190573878640992968316959959445526869896824530028138760033124990159546044484157545995998964430220761556074359351873584194215875409965880980676728324333303463558078572799967154518827809883386478351229359231378585231749645714655874312804241983695609002035017661489801561361897053763855194210347487328273826027538953943604775097198151021035644512190943055939262248028136292565878689625394580106718936004502650279211499869240865237024827451192967280910143045877473921842121227851552628328979054653466226940073450152271351650029984122952410172404607300013410086577199755305669934465706427141376293486207809359319205287988628440949505812721904189614533523771327988832549854068122482363428051195043062694684633292617907082786170757231740571133095773979848698883749297670489214956638043057363829792389938016740657058454921538048827877254961438107359563735101431505133355879055054691202025350157619926753925820106551475356190563353384691449226248538839095417551453160221688106251832475124656829034254348269726732049928220734068167653084982763243553343140080227839511855625502375846689823694245563329427587217185792116256081713803448710028189219983741010705309202516267410215074450473915692913614696708598252998575294736237382650288501015569942801387062778137596284727264198299491199853842485755052972446985014276255214663130408751141500440733276006494916186200339045148329445728784361092582266129541781379039583105084375048377902371566644965841767687054443580177750752360335637646912415432333476789279326494473301119308867171516156549391961061888065498201441597191559156619591893700923014293821817645503106603409203194653181628057735459059054225048069132894328956941014098625427456598490850895605761117547270364885870435787738022774434581949267498032996798634371984816809927641292248690123090213407289478615586929990792020713023667644775379216471714660821550333788614709282003040164764704183431959110374772883111841682179445060762339071143928018620494171590737245666834498581512465031668319995550629909710801329072781524299234821657325005690213567732198263423023540387251722441038745066088221661137906092004342312448704456861141026180923774552460873476180348970827344111799254219952330915778325629148240569629222550734797545221540831061984936342047734852260724640213200176065739959408947839444100882386805581620917004858564743557138593945905513795145297459223332181598787384806059565023830197650038111073546747991773984057301524611479855635905324027141460897741261832899520799803827825069559764757007992319734265687338264031563502939425040082599259513846656132612179358549250492615500934653493288918070725083717747087278499972588996062969755207304356118711506248138745274840965270266113800365878611350389297029132440039494923075089401061356907313849082235584623523992944148332164566902164001896187659292327452906653014935986464647459856094325768747610928622072693738537274991563392175478025871947698898027268525991706978323522272395780753043156678812252608272183501681450097299743354413497127897970868024293292828510200547702630994121972473529209626329456254296653934843296452630823455497897833101967302294112280895625167875896989534103324773986133714833849236625638210745821457913554521497770671342899660633397186875263080930612006817678959863851516240707226709617266639143764353977442623685930119813620744382529241247694014190939787734220961841081004808815989261215054786813477656036520781082563893693460536369923126724464697353692587023498810475998246897804827783228022584561562224919951489135984964710716238604098000308531161472588521174845223307653120594027687582103779489340743901890380011578126127419068134804933431055626365554129210127566738948433022616343345449179299535265137540969071856101870299913297898560891421216146165123334250581741380461070269135261675623531224402789789885601298472059000874850765363012421216082844779432310029441523357783870298895444731444514428941875606844910642085129602543238122983224390862343284781758758924338807350678950214191334762719249022181064454554473176447215557856447383449685998170046969583551639867816314080501097508679065850164098570032633240759160006597132698132177462752022087251966315960702746200267395920875818692645536151222847624625292929891782785120169918896124638832128962688566934366984080230267160958299857602975341939101475912263837238698644167842258376110859403010109715069855972294348622177719880675841640231049295756615301332887171758338412361125976811288443728166749989922195080302180453847942725018343100302781954935735886661340399650508339620260573889411126530755876648527604076639536823868318716654335353767937262299572139220413856801802167875039443355942365205631643363546271212603369164840099720099122998591034856882568058578804486087968731583380149851025493040582780651134502668189862924955860546741187249990502344057678151341948591047705061144029079223502342436263424789166884060828363714526670934523155258465694941811403638440309135444430323544115439994482284295239912827223703979133602568485107519757369662337781764763141924555466398779253438177017380340868239092702507828028884569863596970981653531829469152215394392502573843511842412558961871053545195151412897104978873233445376297156797342158242153659269280048926866192211866516238804268828287691234916040918142249654633298609574313500216908075571212940777607179052295362349917199760155605884081661980348765798458616161835162516794304905599430348023808303549281774143435466959679257283786672218192194033514716701813256700802519369325991682841495507209964050752095662836107404844418519866664679551502552820379449571423107291842308862210778920934937882667630088242197545102891938906122720316382589517084356935901865994096014000322232930155877956166443383384834321792947319135520564159678848067526231608974365610176352275078688201604517823036209761914356276187543583108173679012287939977057398774810871688095687398693973509498085068743365218307974332172738565858009005266894426686296636950764254649640354829829431955653854034415280138849468576101844930741405662428264121216372329299955181043566794325274212679966301757213960652919562202939321796137310183314813294107514767067403262480941764550723710179895389896850519613560808979737813046654366097528363248987660170301031047604486897339945396473653845881200640894077765780645334042776622527647905035087953645362296200091628546444817075954987007495673021842889806286445519653381846843135702433097759841688845490292141899697994550008764829997980049734797185002639883181733661818260841555699159491409891412639060223283051774503327849953516213749982390555324420712111742961769956740623276579683630118354347184666179552821516391724348123483585947644298063905108616034460474057725160748783249800942904083898193981726077173967151212585195405596240297181736392526122636619772116360560727963140157252493039707404640710873392094723870781759946372662457733887256353321086147299768571014378863597589624876069473118830130369027961766804480881118386019669026813032941468255053887273333390294684985753191619383048545398007968159362413754098810766352185902283653429439697556812470619066525826045976922103532678122407176368171787394088454525363509142192917353516703582065633671308515518616670297907602856492286515176642989261753787134546722339008444436048567795852427342598893514802450053080714025137231880975751872867805367511041410002745991197601075327618232820094840085827628068806325929668405343051849212257913333783142872231304310835179181605800377402150285658319991244700868776644405453541021541057096866122114584242740609288432804002155164731818454463905621155051183689209892301259012929910520149478586704531689669539342372541949638304283675297460174352248950198728302473363785281378959190569598860080009575671997764224689341525704625398723123498090161038619909312292682821445702671737389529155114398010611332009052519368918303956723031520387224534502758576069238269665278325457519474285125947235852618097531507759242887293198781303204748315444583254295564628677277767606773387257763916816551714585236222061443006039473376687189549548523066626983519799426018151327041124146997202700549701295733211259338370341566348376343109030615098665338686730387180982857659273071742825951246515076556961819804348256208034638001038436585737376500063820072086214490728211638613665469683654521109242319747831844130184961021078565196683148467755368686762467672803634579400453415245184748321551520795867553599223074363321797839797460938703437150971388796535317758486502347055321194492363163364399320543760890052646434815095386730200687300458804073739289347150308467086478348269870426413517337689799324468809098642112259211006740896590331190378333532640079047073465391732982379182582590201379539457033574988955626654172585705375030670893939024064813556433284181064577089081279742608380043227498377001221842419519346011488434234719369416191207561501616376731327183580585935994426344098003132683366973986322888016768702025841753412043495851627906448234813814103348138061501539400189584743163218728323247629229825253434595382421549540988181293854511021716006168945074999023812605827589374000159076951338787615879233903450340724384016218058941304938867936903432247735182048054743439759945873383680740181799029249260729842650762929564604382170948269023057995516762625935556927938363011356059986775008631432312955686678854161244015357767067377095431471924669320412216086440745744564915997107485598277246654752551986679348793782851935499163354673199712623013585009005886900995953505344778049834639822127090410599282255215748217780301124036648889125614011359616810970476646855190136837111756898265112717317489837623069795268803392956028819049850588266970805997106492729870974631762318790390183100725068908638350072535277240734223273572705175827055182624162291146599369845956783440413396442491408473080883431743872397398711016556997703246485786269197687638583537643137567025054747429812259726425458707212942189408455240073552329208800624834460119902761229275719750691757702066132609302425673203300575137578472895144414840140466542489934008669872200253970340686782278139105048509080511156720980879251215428398229282456707804491396151540762785140212339145077581755849304618449301624328600102620742176248461880309662873468152322524576308862536047881884962165777839844503492511285588287581781735838855058189192937248975129822186292343963657334146079173604339569715383893491132212393320679093282883506926020326533847526457273293347534810691639888241909525344227553089783357081309077462589698012527960120168120321646384276218070521441690381648867625363859132441271373197855294166755879456681915696947226380953250672422939000877515704704290608727246794621257226820215548093924882705432439925216600103132008327838936774979647517749178048907149979240561534920535592601057430932338294451367773498985306425795097035561121209021302819204982558944860814627844639705970956432856723651500096905658395630156188912022066561398892629473324206501843196407964773979192905068507614466947493366424111550380907910088499397547043670681830794329267645549830926528174766245937625843367367689251557917752967049143641975536480197860150025775183327245886966888585043122236504610273349326256603976562111057719265226968537593537625485124581665432836283056168051787632636932042512823880707614869942560954897902819612254813074832526053333858086468894342241522612283665213048708726258131058104076169642983786467941965607095075363236331748825179924831971841066411578181841428896102715425987595804498671978670953923758514915047428433512682151013760889557912578613205211110279551047099311614773480719564201899674671001283907755115097996346725524902972626741004347292947473670653454729978171070584377412207610651734093073324793018091428922096781316944265962238304193821112180649335931672504359449182602537104146966615414639814593445042137930114277285997125221542771021483397585538359275544188486310789971415300780812747163535431003594743376935787017084449459643222711739386016318437343792313813374458090059175129768554209020528037311164462397841242030938111683767444952895359573868783613134547302327875374855175103126902153639578295012540485771249521580492938020123166895545052514451591889583472885271322890374176234669436732937819813796826959171710534462415880891419058024274377837908750532786522088656702402888986690577596170168016292200779565046962858269229907725690077113152988287259998443565338637592949063533547299391445061807006559924989195799286944454210322790670133145968385360421982222227857052449537658287322315317201229761409465001291003252465253332308802456960274848022686206000330438043604731140199231417680053962055790564450609056104480987672658967330212002969340070798933703698000928656524466190948615253344455440136599945344014870557021217801804794943560253969361381035189786739127988662421020331851311425568176686861028249086967497460031950287948086978970514429566455799843799765847966208929356372306000200322620088628238814897009585997272006923665887761918283861275840431787275877498662088489144651381103146347831950040907376253217669859038945901991492313714083396894385716214568770529935310422126576835018186741414250034400312346693613713215762810243182494009909183801333204452742233923516196236495867068233507408774999952927298451517110416907449098302561723954960165212071061632992582801923655414654207421817321331448954106866682129374588390194307553823769892003430338699987268145422325877871608660274305165191196209747562434662371339351615374964949911071777989181464046642846326705203063525219798294034257608816916763662833370758819318662436890376916152044885718384030484994779076180254095687271130006944603994320064879499098070501460626653105600693044534838077004276981178581149710731639371659717985058633884224053444514993221492593136619972136283490473355723553498598711053673362654188795662401596003734291341694049770645181591861932063636510418157035361548468842624619586511790749700283055887674913924211530721835890288173102396156446222676404204059902855717658008760691243795061028486606033249099814070997025494255904975540158366787953866854234159607821061031533152785688069239533371771606545678940353040573826234232070468044774386690048329720512658851392539371837986433479984379117606179861157518165813469295687614609891827209871294866782820767491334996475589833972633156014160859276260861953972996137529203509516572930927369536656758476488305635786912787752555912267583608815830564663664385041980312031429869684853827325379087241182557151152296278021011807985089923222435536008448287011022932526166219363767572601690901884728109885995656731320167015842738035561221544233413205852457096888734006858409004324445989997278806449255584957314151376429405471232402992680319178379955887894093218562068731603466894275178628483538151433271926137174489640843416607386973929386191229830456952717623717442653221742958631776252494650614536711351943969036021989348733213645524089801890898988988461914672254178855639741233745644219506613742462562816951987206647543716956756963956986641741436036599576176066557915313582605012906968134201388706415611855130424223956200927268370157018641535099629943471043747619332245963334831904044167573767215607651324985085858265225002464782929201170807705068640810245072686405943800155848530485957243009431270934735071407235758904344958338245872406546227248628535782341507389497111975631741202741538341340793870051004865114737584817491795856638183521008431295425708994800284546667591630676282259502163580711654794112226139695280010268615829371151122512141326296764596733349579832536677006469565654287343494773806313734976248217053263892514374187594275991534235943523833626947588807507796685829967475337872331380000378792074925811270098638620123409211998590082658571681934715553559910391875752696117307095530655204351951072955185461404868572380566037010100167769193312340166975270677518645396153640986872447840129119914378119710339440474606661922880781052396868824404417140655271144014453256392317766949727389300279702973469181814597496113160075020854983882858769028029262676149408798981245797774345000293868780631974379220948452512419312044724337557449883156675447794366554794580323390348542544755566142757175860952435440322340035341381547074500987056402830803142381575586081053413023403901391063382996961571199386466712274092252603735919372435617326369496356681156963419953203946781129428892661131766139766763537989763718920860784101263789657271357743490144690141933152370269691434484355837361919220678522628148880867934109888341882542250665379675253944324182107855147557827016191091793728525928286876673760508624454106786625365856760523172464046881695826769074605712316687828835706436016953438837734971129691846650784544390665253988309012048001883154672329074413230789934995570630295008991733692333164595405457752236215108390102152564470378112778231856596076020458005827073898231599825851377258791007484984176879737280080782025955734980155254452330657073879169824584801222429444545784192845102144016499228054800807702989651933566851920325306163219160871043707813482971495542233258389437272023058489466047533308536152312904961647249476234105346175969116444530974862448004210237135033374790016497090127200791004962243057728692205707267691882663193976201389396666614311427237083399025256502934772575050012854651197740052303280988884086600347362288401705789671573952819719626730507842082396444115880233718527459546940937491796379124959176833139825254963333932466041862659513540551278615501680648375876439948400717774991194060062112041560371207716798418999616770661704719173130240528221421345621471562620947413566610243976314314090586394217959926937907519990393437089785552176941769258165704042097766756883524200704110778424518111465517188802266551595074553822550149010732927985109444542481240165643638600060254409694696791804451286419069637590066308532196394918260121625795548780245043114192742089821789832684386421231948742852151820044693108378127842578488760380283623892648232969649998115331174327318092495149811062553666399113499467758188842639936011525489606964936377396657308563157722966648358124767336817677322013528221012895568355025492973104275755831010126466250944810212181162361085357174961955375507656533715482329915690976383457027172131576873759719207369148678970906412697269101080202125132266937068772503905864020983067298586093371627519099438931049845255220899832584209462014131747835145411759532876779063669820738189317704706124045654670362533061846691094668565430087137479376370143400019999206855052453991670433015131017207574411907390704490947630735806162565060203694840368323349067342841166693299535947938415650238351571216862754391780015950684528812542447819658559224726376389864986981520393593738503330837034719623031539222571731397615813151769487376750983884469233988456092225470875994666558950394917344678344340216867426423434763226731387020368654711920677578341966866187438550456481077597384429110107951905998724959687316672888079457266330680722531225435022262495329103235597096610462987561408678157435707522121737606148581964598483538527725068102408816703294276478212423414791833622385997100857675333541588058942244309933664607406512907694547620167607048574875415709494561447382797709508182510974178514697480015183357960714001141552724942757645237044423085335150784058182996372681065843925410563944429627983217818979093018086222402202758478916287860192536135597779885963248538065468734526068505542326468499454089320928106144768394896210731056594996756360900280952380646261024373039992224219130438956730472403036261173454113309821132819159894661732999805917691632219047373237659361264767479265931386091201707967326976338578098706250462370283792776699295250130448527239135738867714033933463581003592916874117015557333194529978762772881050833407706026765399400060440230123769228641662724617783977016598646306769726082306570621486736507064196135732134475156688570851760568338144729744960768915184391309880826631332579218113146050468555206841388994458280190685419701134593426986496671095857897106771266938717084251958046067652998512802634527004016455125664784651789596947966503182417071353037162074098476900362040154971442188767550280235472919650688869186189478259656729276696470492088457467293622145650088745471766707123632833761594433247437063296945523182700485883853538352020174177938750689724906301047407553964535159487153060882938312593714624717310641024838754705344088581453932803998496433567935926036424311484956791965162452189782514052121031337516642473428758641544588731089134250552076745911799706073680566332902359923625131902430576437744607332233242056303018692923875909126627774771355366643327017168415151922209406932397519535159639456451901859768724654553315252430837371972760732589260733584579064291824473522628150466922758563601637633904018755091872146595009016740080859429365981421328745192937848978596590411836113146009237189630576096189942387950790966133495017970758809779124891722278095374607167844572314045378529900156155606130936176171196291841951790295773981489262543246237283544174431016429155295968560490185837596391557928113383858063434146306109565504265531215202171363969469393469010886860815097781610117315552140161753194586730761534855738467150220077921167891031890706990627668248051183040364874136886619246062876807424518515399549038499615123564093654895180040892350212949855165074038549484618541471845394242516274065837421054409583870875416252573005907774556107889952225450963546055982996365432307988132788239853007237596411440002666426920088039330723407625601394729281216077601412350061128244841824427868728025964209013603730959473462802156504103886439764488002230593489608825995933645711513395086607063879098596605265225773314881996301312005039659628850994587262904078057539146762700675766762765783294092462079532928010750743490329627859772245298191327919416873742541688603122732985228872291702424824722137583964065239781883297488616868917778829576276481815308939225448777126157850036679280373538608347023793342829262862391680494876217612212190714006600284326589810837129045579279519977117096196817302241108399438373469133121465956488368539720080463674573582539066478097059843150440324792649601701644585483303586819647927863717428204213406761392451252284612175046549193257130070572447849754142148388024148473908644810904546960593360911726764301418032831940939985813678592262571901248971049876433200681932961996897015039597836620213116935027626864989486156518906076901202503198169651122487434134197373499810092009835386654733857629273704928829801035980521797149562831026450649016326264470387490468181181795880814382073228752279411311253740717083979501252508430518425976293673017699972370889908899278077951163003213666553538995034473507114657162837625411868301139439526712011376974151189597154512475978589130602967499422274143046821923429676169067921208287181861793678903687688802814517133130706833695220636809813960513644607573895238742128221381204466161274860642093690684414220385699776800349196274212268595844683457084444850753919637436051724089397408062744996097217900347355923045505908400514453405424350389413766324222245757206768272256479495146287597980905530304177571113255890424218007232091617964847460845299445369244560118249719706649918446316265689889031406957902986082053763383306017462379756465036638650020203457555127550515485241279773238464571781007565075566538158045663804896005522636674395167845681619435299373974571775278370228006685233237710282924796542338633414207897179412292308093784848563504923335033153579083342078306645909534210268561971919174443723373857259641412444886161973156494430048560743435583922376389953284252473335598319437692914484864979934269468673962633247924776157395094413991212087108640994251341807938389466398678640005638743533358543302255687705952986072406558060378704174604226689100860503255144912127577149585587083552326400945160596227331405107184172736247194541659282411151578137315709139304844364186531559488836087442728382207375181343140848831723831142101868447824086321477670275823133202224731241162142525816570310457892289196761718750725270756559621068253784195424374248356160479882452305732649080659699660851486844003794098456279105045196987312612471617066375038130209584511091851468398173672632136710527373058625163379908936939168417166636969282213443246913163193740898408654187864282791108082827249803675507303083019074906163632717839945991487166800526607320286296941009777888660574423899430847253638268301878196730581443888065060131227670734893490035765111447934552668367638093953990911867216571011104577700946318546920420024665794551118973700180257589737436503568665973757594601621410522425998149276802868152772516479161814808142000397440415353486354209686199498253949433991937718647474735454791661806697770857593649121212202557255496745599461733233621278372266549760386243036501741232983859710548905169777681599899847952687662607339056199178019763886978283632959359101172232227517493860196142142898497919308846210727483538308341409013404172187293247261871864684635683149926198291015667073798387532551467284718504724166966060507017324703743307704448487460954697215767325880200625839721129398911364439992019040642848639240649184751324075902130399748564222453255750531650281205223168319884682656836008592185057599308360895197585186315729053919146836650224078289001044670227389225653702301931323245993832731567746541337073500672154819100325508632290119369757965554054722472616960553425340100051300906080068817807312792899374537820374065204537611875340852816126814987923968122318942420081078776277665011411042385697460425924696088985280795473475245841914929410339631482373934156422622507041128652140705491985031304035120650623495398969332733857347815650755957368474111955811612147949407606432975233876601607622050161237358270880368476084833173495300312858953708388995746297296739317160284734911631397929684431602823993466944148302477306435892680095498705913994133859818753124213971097487331591829097659167867943353052435886334173252393321527558804216119562773294578079231065179705368465062679309153221217818342643405090725880779113629269464488873030248691043467603417798157616165167324983560691185970225050315361439991755049411045966263854844756521587676583537651285800562187399338940125696325442988981944724373066879557208476535403674592341996600931354925762122569339448840988352911879653605346823498789699827747487522820715191695729786402687738758197350033752203971492333833789838855895020200151052121097244790551763290464210223174483613010155900373954548993163872108773990901545371809879094441194492277967869966442107865817191542452838753910613441212786274756833584040939196679592593407706883036470593983756649293528099778165031579928412163654928614275500035699550057199771227929851351692193605230371174574676168362880978918944294473107546220336731270606647467370293484329339684126921270352654197685922130133791717249425772011311782791721380558190052254421630159042902322698157917011609980065005298560283132570981494005113429706831091303917979286072171987298340831060682532398729721114412083603588300761170463229085318537322922713422080576537439589899050405528652589673776217423704402525954687985572227030691491365164759481019835958788355915086720702698537380891779762016633493977271112154904312099351985496312516494010180602569843853619310162790760506003800971241157774056937172695991458421261685667188652840414360899486865061968881686539045195163319169244307614356050917972987471875364688841483323588773355798430595010544650950880981753248697575673799788213762410810309598394780302008852427821697525273288243376988754204777407215887639481382946021168411802708661360354094361212304742915400688906454679422826938986723892819275846574905089433981859265557435700364933744337839056380532148174192047238852426133501816563094185660296786277979241287194053223751923952559059482148460396396392240608335590908519593071297785229748132678153739399832506437602674007277202266326055313322276264455816561477391931835442517656734784867506800671257360643675516639132276504358476093557112728120594714470182609568996770895953948564031159365264137408270990426558704502163009043223197278502521167633589790639867811678099782859840259469152175325847728683093426154660161268041938823156345695945180939221981153219017373811773733307461477691484367679953725892418658290306432229669273155795992036681313717475654342799480202857870799810104146907240217583129262664443209181411150774270208070704925360637264563546623552842704997472143399704129731059564877890283780194462100660750676627179843602399943964978648091115848545664513019725019602511918171172346373682657867693856892046019223065317673007287914539924116869544766572676030235879091532953029583529040241671560037401591674315437846432072489402054763139214571811348657319867098854211789497109261297895017511996995594864591850758443670118199233708604775038843516621862843477142818390774132342460146660943681525531485041376592353236852789916869215070137773738792568924716061713095018260958385617693477593695760225047504367674411235480425182998792282909230142060290987412927639312960219427188466750431707993492014480692150327958644181021294076504058893591355305968806818622351736438006492072731193719843264112308955385955560964620685027523473472580055403787023660798243851858814643021010173420268578224753800735023675139038384824420756871925528512212382752686765290739902462990614547418966696159848924036118565249441040017054774320592224036315896733179975171658410259366997030888538236902097701316927576169864308830515046883753495753384630132423412935072997028680372704755201206199220977725704021436230220598722296443293066773319116830892227078479174624986348070112891608817244705077534969719796200048438250926063905613634933751417096401602138205833210384866112581926275190021750053287046455434196477303669177509170666500867583250549368030117943825366166025059159045145596754535850766973300614874081345766825361245765835421484365469380611586592142041193122782110878255808823696702158044142647935688555779661335680905364233350944981632476098458644781718442924320140135911209668092658391876251032051084501399302234047833924006465468413703517087465530646977681085228604071166442789710558283529709058199791053109713804191426985327227519437053707049690772850600226842764331165462844569521194764250520649968525465337065503439215370751233814740611108776940920020697256481694259579138158286847186528852154834171128901931165008335700245430078050205968116617166432008794592726147731095676988584734786488668639611927760520874843779398908749650309094961595969386660266316041399634404998609073478813285283845730870244116804003723470607919556002330176580258595020116592005276445878922697243456785810927256149673377591180294810081139230215115613765780714559250822553221000451789662514815725454224084968583253204328160153265383503896305832224073381976884126918215480015760824616071542409244657622368224867489212293511388325250139333686759863546276574589361469318133956708250782520128078337148627476851860488951701336519656262830097927539109881671745748685006884184366385820498016517883114732894390664861348358372875958605494665056224541913557256864500219654155390724720242133888095027231302764393061174213042550144553035122235450902722833481958197688793857841106527321864763584929353385586275702867442100286927851072132271533044624776903207162546430804246111900659697652424028954201109534582951167208171252875552287888386161238942291376059208481024415069428030363882776122477941911116272085053063780791433261364634598361595879045454769033370154681717372681583023612034371003573739071532369936460580816896044930718274087820414700618469916088857376063808765890319146913518842423541005469886103836693605516674457347553917830811704959976034589779783777104920337855559135609298079707486006111727217402358360013214821612985923882459060074701833387012515435566169409845546540077130995860657087043425134108064585126653088790284680458726887436795364831873183937299687796147204075463675013561851728483283812730534723037380901514341960406977351026106580474708275211396673699588334961920608495572449529135506679944621078505252815994624245057631500531766112023171618445286723839645338582575206721703482071701280349334481482885675176596200077290674126827215476406415324043510567005308789741492687149527169824714180903259475730556851589100425324699493099840999246383921805066647289757239317680722628716886977625437450994546151973068668374173861610629945371041293254869199214099369520143413388373449223153228775252789784468872029756132731309964618244587011113859558411661875108310634801016779211760368584044781983715871694229212293979289630443476236091250296425473271825026997415387336789708642629111070360918754144865810299356482331119450737884402106261980747029571232105993971781488069057587365233026954667520109124927129129930028362558315708310801725687564551086981839433305515216135396855432896281133097506150762730365514391929723555007125976459715310390510269520417006492058954606550131095664265496955484857344318817084359545036800570167288346185911951664067770970175220351919780599103658472811009096893020065101522742859529307176193884152948234291724103010649558624636006151470952945208825442570494067746543363138592526742712784238264495411165814370086866433781844910947121507449874079207234718882745037547429225253132022467753067603598081346476804687539664062405355684436334386302677204775771752497659306041527867876459539713202212615044439320206230478755493335747895747039726917465460340217970795592800295726872639945657411951596992626601190486488366359151418250290497841331470270232725925955031524071172726113090839637976286521184992804322344042282729676803878353436848168923025466194105384782209739501229067096498961660655862288923880982912719777526341557627225870232675004239060809115474947654004945669542895981880622122979429062117477019796241471471758096899859262596392401417706802191615821790360886084621944005544245950478385810130425854944411342628220841666243793305859269383238305013439066149782151672683254561575707184071599352119494779737094484130356838754644073119113488581395806551956794578881985177430141276965482195808641513536253331936593354012558570947074265305118730707498427459154755472206853927141368960079410230732258612966989247111280544774006590496567130883130224081919293755066189281471969136442236862213422109661388437142370748699307565682996189504648082644074667846284746523440349959750049693554296963590873107882790360444168365682451955454698522682770717901483215408552960490292241020257325968623791301307228795348754698358771474496432512135848340792065459270530908553455299315926973212762587172878482967700666548928843535516525053680335746417067961864926305150478347078155553566515572626560762522724951666744993827171238095171182322362953157074473248585606121242179596245773019757951890290363394620534214908105801850646245777365210112144645811702952409710724329596925229548177553600374458006335858595703441360492578389238620180443099108708546886915913069069669933957405213901555517703687989009087311479431044387333558525488473884102020172937053713916102593875127247690535384112995583339143990815181523513791650641144256633393580283511150417403014581999938468320253567512652713750782731576977949280431022361012147416821414494477517078644067875728130761518127809439206042195324652907571439738827564261790373248383843506320656749311997950409392098642370068415469039287617402390626646066950233671030126104790150329490249097460857215882067772585394386667716906393498092905096282484116646581110485376011868366983325269688554727502792384849799655969616645191399157664955967681215221163269713241017073469744208145177303100603923779645322360898009622140635158634871005700264885336957994223063378746077297417440455684547599884628498146677843188751901193740748948523168531042225344316527572042324381427540535854947685704494690218089471327706128278923328364518396664489990308167839920820531826478754507196396289268546324762791616260035557998053459664079384823103539907572918229955313155487095743792745246863447655605661417797292232495104813404275155596396819839266104702312674546598081327051052703030365466838314060858027873271114130676074961638076918021629291628464419223122128394446003208806129841078780703920148414114805333870431276407929137128723133641925148508600558090175615975227128993322768078291702890835278961651076133202040579187885943566565921753113619097189901639233539192335237210011522298795643337876138131576090284030365226941009990116354861598962010465706767496994400820222262914341438459303453131360025565115950169825057925026943307807976493413552340152270238340776647541690064692431095583403547741697397390283776974090450257657220034764458140504949719351339805437491514444461632314347310236783042034674551221069168327343539837643702514140490172801170289130599358733902967709293973443155624767508289537922955953554112600905448659038835989899364020761971488598957202608319726603304738659469071543474532071435629393371451826828979275630193257068547619523407160797842096865459946866848270051189272842591259316995982587171781054624326871470240251331236615436371360515419714800356145666532716239639372807439885090462682522005694058469020039629386915043873601040497946235840967107744097753966064301109862126848901894055478946780305117424862115820026652670319685056236780689934667323475751516108235527761994645428722817467728390707793176170562227907920507922819204417997700456370358218609912214633357669656997150519558739031601269828635854512481769078317776802232774858092697949424808073069080606228202736701534422342856452762693029672977778292362199718906557998387447106713211591206767370364527243362393484143951784306677194798393572220585558120142557474572593267072386116310955898162911956358713505771826233617250731143239874557412379053585592335914348613332698714963934435112471956328884485210022113716798733216982799382345227849167567733130402475245526812716573762349283737694554841173129116179217685233904051342157028674034791151251931272910023496353549715635585590566911515713321546283954077361771038750448957951567202086988355167311864852827202155594378266328129587632704103406674518276755235597529597551710502923726924398223395340783117544923688955121052839144886654076845059745800209470833197017980438511848191972897110832573787862958390688437081723057458962693487499918958709234245511951970981048070152013962866634452943569964778306213408356089236181558120511208961357043110350217745032959973700829354096377969409609076141079681098231891639919018352542635398800479795516008373947311482745135121885086766244089969948776257356349661541775548822264939643557502456349846195669369795455711667987826881837742716312152827503972370773870708912707329346677294954376405470421950203720564334938253367464282254216744130275420334974241970889840856470890539132484450151623617277951290104073755818179718197066259733681523442476012841069293965198808066349845074125552953396530784804948956430546931705369444523025602529422107498238491679389163842521214388719187139410000445194784460192358916475160171538823748630954731313331337380272121415640806544402356231140203060350052753683205285573122688123583283209661766883280792321308006188520342254821203754552902718104480600654972531866369428752109939310972237684114852845222063152609811668615013373290438447982817606645790455262885197829885916778377866466998010300837658616168745298186291874415915521066544283072479337877265276343014914656562023429412796431917123176868125444520927303180040117748344758133501812123310850948582715589900950651544645427699663555555612764836387076647207720297209022773650668294685201729479818631044790111046112345145218283219252371262847363246837880038916190780998636342978334936955434496191396403584546262163077851956520995390061535146495050500413891456596121828945799794884491377524010733819205433816801479354359025356133388454723354488228868963885273517601035928833745866976504674797372435394290847029285021045478384202415999824137274126957871278853468402904956146245309144194127365493109449152703515517680722898263517194396776800520271696058360506939022625950593967231131555782600943353733548539128705289764202341055973343419829343587858043589146323540594038587473437888361185997164218061309598587311834843660459121323883691857631387615674282232324271796691729498612892383613987566282641884843668627934207675788134179048514519451089175411863678881473971289484725041047647959564888256443024398600475268073656947854953538934722588991071439355248854132642291096830938597982900926910550117457730130324223132431898763412871065323220216313263211978654358782973855039341681136384195350889935568224678738148232867079911630382942768419141222817990488388822790712595910958643865430349636420628022580671400339077290999118991649413422265603413646577732612850897131737392479597361473865975380061091505233523585065310945227085839369297993277986978570069499880483763066154720110109339333282204674610687336669486986655992298466892088056144258898485419134007486324928403849327559875426097844303767381130056189839793751291165463395230812619037879040558288124479559585925672182559034008015927872041180028492087433299993028622568094342408811874863210360000284995850424661055312392971723079940371746609286025877962392889828683639457082249582978245318470887438702018333127916603657715275434718265498322329480178051006881232701106357731588419948301566357722988900532154896187440477132242911520306958312850751479998581259666785556547155219381894192386685254595782350315673641088683022477459852932525329700216248146127068941264762703647677798893319747227665916731615894082406015701223068737200140518315874101012332453753618017981194564326499026929205599253651004826485335289933433469238493651506603801994439616371460669289308548941233646928532319496392457462003840006981840444303169607703187299818768074315528341920517799833826811183185425182198832287525868927450478740783442631263543915243437176568174015168506880661277127919338358622570286793441181286867210917685599968932175366239818864246587959156101246669839799026745262655088173798359975319467401546481882054546454468212273900324685186534613267012222460160899462138803813404179242254562947367002646550684311198516170593344320001918303202795362486348486672411881572858100067019302217324616003497259381257637792643393666692633899556304029540566938857286219494362261554687398125914915306780368420880967606263786049470844543618415504874717939729996502954420560232517832502687138405997306345414305979171855640723855176632362521058522005620797578278586685792812780452883857741017257144775360209605405895249179400178413275213425812503193222887143869990340457043027673364154750139691010869404510366561932598768280390105940663454555429932433057022533095670489622766363382188601664107817978992149670929238589440568452249592846424128200966363433782323688140659696562020192697953496337108958442827787428294075439963394208131952903498058707229281992672554580787687541856994830419166007914931376265713324983016256502831648301763611645991138048586687067372785209980014185696588012334081282323778509852900961243926610390711007305374838299070586875548676110074252582689216478053308461070920072094536193054441902382418408317178120955665218927478292006174752481619338631853889888806546330792262586015908457005995877984617802167607432797918764704353955188805065170834690910306405059074277726093098045506304342555726639048298094739044861661368727469527023963759497529123506498100499400510836143390953783926404796487744990304241297462228788741162149436167697267011228784683616636033525734663745463059481314473470650563077489444665259622591738461456994502991026943205542258449277708338173111996795567606560927278402298164955302633234339521590581168271827502160918779347111969215238772241473123548695711062582461483365457959477829538872319858440590671526694972503023129394589370566004346832565448766187006953132565887375443376740966449389236388102178866243245028413464743894548499201022772889699801407243008568762611340805973888275299264150166140291603913746917237361559192634715453352528315104932621889492623546639140913783218707172135095287014582439306780658364125066475058598760867718208611949259117251430137101245543427300500960662854492167882028831635827527301210908553835912926620660613749079676265259104324581045896254678902999155855958551848314692748109245767158136012491016725888055407467723543870684214713051526449445406062804417610600529975085603169131692361796513800639524929843802843285539596712886186511237805064407079103936714904816052894286490582768153484906758209793708020257742473348298234944501625172269929726917166252233445824738487464788981258840380862040641316399057768517091325882405932082086200032490568104594612657267028602168443477046262262811063372957425102971649997994552584777098630501570386751332193981423534925828550227617196429228947347639141231259658066530943732773078846212080213445551305388210992874893502056018232459780766097301879111951081975049008680833149312805364160993595708705504030568895796553595835894308460551205885885981958660623501731782980930660092021756173176850619061543186699504942298461643213140982442327411366362620982468261452936671706238714156698437437809034728982756131358783922470422448480353058071836268941110611772645090047685930607053248141924946339613683867808569351981473604935823424274567282171498607872611242614733934190796846439821410577393974980985696039854381370105559793706607756822388226047515622955890146643917066106279241994642557634768051364254765053093045734645576311211734959562408141974838299679784317532440775690395737712586006779238211159958914701234198729650278653519994145870699795937045871128366701670408718324493256157814020338452160178906756907018873732243295755537492075185598699312320721220908618493760946608039758392616189740631081754754538813212061676415544618580292895568083095457732366722929998317530598270025854013738318631663445827142345546024506623998455028963117280798245204046545246152795690849449263059290554460870641855861508837287830777309200336465156769112268302655674847536139492559191722846642125518167377350184660485248037774688545932570916063330078891656967627583951826415869075635099756489808232973215787628410115708499903974478059838206887902516618116004758701508424438422139131013460577755291064358022612121409618965056356793261792059533359468039280774672881121488415506768635942362846501809793885559943911099417664667028386284185258630596578255004096391860326943037884467260128878755711616693511346423520816774876290557407865539438422397862589098150439613175878843734206944456650484003845596675693651796930018565223622806283320841672794966320192232488794238067404674299714672927156201384768622485072049642888581989336822551006488558433507937886541379805801168752162789108989666066919015044407428125819274354938995438625437943044951088081742440165664871335871478447661810287902884373519806813146875391766056047916470887754853879680048143473351130159738578287284296459527292475078963372462453954027190420806685893176855134136370713428826701071189379269971029597897365680695398342264239374299689467377230699588656680896419696443764754949990246827363712727672031708320201207710664915217176176712400988599481742435313951630787180002358540897353750809937575485696758393292695950239360110718620289638332265377494936343748566633665732539768784651760933149237180602026140113896197119617674021006806077670959131470640888403161340955838245007170649611054995472489195419037322531130059764971603683332299651473855183561138428959573111178061420951540506881129886437506057622833362526898368800725783407400214944109141221540213967179803967660933870450641099697631222338865070802241735528160315447536028532930070890432460147979665925081302217113425487491390476439287937770805262352603949038566751826335256461635654960351634381482781415825509550029042042398131470602851227909293664321666270891674908619332823742847734851343040664916023814993714458667199187034475511577120378573881329226174908431945456224847286139398883387088956430976392204463508380437077373893884774875754982742941191428481243736987124601023829364692574700117355637495934239220693665341909147347133563130311355725453434067082901125124416779056070630015709525532911310074681043341742760712241488607750747873612398918869851118111516576504116210210147373935058324413895091795068216213436505602552189781847341868801788119629785851505629407344268898953158901048500326268765747481583268818679441055126996624082199387841936476625046797281861169404729980599254613547689162922800740036301911302181999475187274280773640618725095003474407244901014000755714312745986723672610408084900849771108375408325215612026410319860696442562292928403404114850807047636288605266034865428338833290790514754604322325446362084851555013453419434699883466076769154873620224601418463005804268294913086503576447829258936892504488013954788029421755116057004864300640780887375460818134539961109241218379404430769721748407580259298449659119406976915715129290500700979654195187774733308862371229887648781209314057411763585949209737107995836863730400657710090214802303093916649418122405696389633044461933443706171735409076109727138878022693350192855669832995882107105893660877262608817104961345858540742148643893716699225277403107925094505150925021221990032059254369084555541582035216709344693258167608003886143068985455374571190445218919995334699702775246858892389253164429413218774119394817988990002441926087294869950276938376802687523345722714145776659066791261505776054393385223075952045423981940206320005000660249102673070125968639298241328132796914659704682759940162111076739693337724225409220640105477579395920503387430239779558689092001789686286840632608951660752973668869176197877902728558973554255337904364016103060174896161394221345290738440078495279896128023037432022631853706302923499293763152987820593762894937897087229173430701626929256458949570604779842652890048590818942159621157947808735374334695966539960332171401051363438299720356128287953935224298156609553331233813041886290806062020321864898502782120011200872100699487004698054035772636570963802803393092467922036666515459403413379360655890031121907221997788040554139456730516584030702108636967304428182243417093355159373965636260195158482274748644374493748932853518599594594834846686319922917943380965177330428662911174680758623851982178466577048434245174781509217597308045644450931387641578748261037555392488888384850906977031532070329118595121877982173808082767189081567589974485416473304124385124152570840654960745502362807423902127279104386365421389072646434630224506494231387595632375338986031624601266144839363160204584399871526262523616758816182588522878912044009594151680591900138968183759775462248134333048414250229700552546032607203807989063963918667788841337952118357003226736487830546005828700333094430225651693964701608625760715877965921975280679745760746417611969694287435656555154659464211023930188394545854143864245021670664069565385975900674604262567781285668821091046503675283295696885310457433543181983834226044176441104705255002792115286633507393163415568244550388331039822416038009819873775685715020344429655827558533024764398182543571301627491248256669646826075941477490426211333950573374944278298026734743677694775173437774118212862350085536960740400212965591087644074004400062623736414029699436653712433596874889925808847934929697587005696431724413944869976678383653787474129985899718696876164861870661603110159537137166119097037334604214666794443712995061977249520372241878573803502038077479900813440212883193519209585478940444864685806183875425820028916328064234029048415520312299439527553960294738763325160154386655011623859739644338816810882754712303508151627454419166589400782527047204548054280042708270247168217363645649650185894510531077195764362991924710061508465615431042913204895136327404645916657380139694954923956092729535818679814902197882793183745642071930700629509141032272066137811502803378801508673785088930325446710300803849607536791173095915430447024243729725769282462771878295535004093137674214508128962366215030210317487365257887927062716809847821454019349231316781693312626221117109781911618878865047241738076273600204712334528623756863264730560316693962702511564253985622815887113298407555179787789594993757782218309326541480673550138038192608669230848385532298025368838633834319665934877809727249711665323541170704649000975901807116184108165772330370673825919906271780534769713723408659762530441509296931772394646523039499773248302937918261831359392897818923333081734249931197838227303772406367127956503076325013962185512003401674861576042305084857092826911408614482442007506457205442397998839697410829544932407304873455753173626253323891499234272471871578122795699383436932226020259474908303591932185845286429215427228853330703074779739641356677894521181230821212392872347137591171703226548505706976236639681941310896172578981089894868740325002320326659230770740845485538234032033745891098360891621438797633606971546321011552592160578172797387772623247328231922015755824876069012498754154382688169983187336771574837173646046245718533783057638000691148618435555204347959625837570570163668939892796488890917053979866740079112754522434695592117015426894198137960880232662177202835768019454003489000106967850536728833381365425743950843791405026481473375282328048281769737630582375425491997274933522659163194736038887060576313111346448704633184913944077686506426307690704184212289718864099831324651308476947970576269499657355830305669675260499976730077884454076961276154661644777225417605323093742126378078632321181893283990299840840746828312688561627391890638161513934052063107940702609296599741379946627050463192648991887444220486379418909899649367964706176881396122574816419071469619476561679261154564398880973358487691641131019768081125296789021364527821999163724695844036603915628101542465208293941165637838806943000230641896758924195348619293698087438626592211004263444326534194287756020755914847909775540677536396015872147613014188706966522353960979984387752445058598108840929789496777525185371828563986901838859298887794134082335776071850516797171867753185218783550842169428191946874999273294460494423051775207487281018588800201511587553670794795586031628897897782251512947487213384809342019724844814601328432527915253655210112889388987235478350748812445996043975625322421902324151120619715760778652177568586559072254591889983688227024292943262864825730623139333819485528349656262104762392171092147807283423299520844002583348632375568245223652527485647292613169536623328088670653061675410472780246405314224335608869961287212712906146961850087016587753346741673328442459317565083370621558115568603023123465655404989245514822805233700549386750591648865368801804826042752483295887434435519627548609058718199718856605057781623193006094444810624903855214435777380379587587703338048435509229937806789698928394183777717350017439957792779902933470295631828242446059254075571238161128642779375293186085288818797904220602263845225221458677261357549099291239094954793350082423561210415831385894436567915779857166634290636987268746361117391402334203406618444211333357015968152076920518443400946949803050872374611285535933254181115980556094655334547570091491432983617558019316552600750167954443600125576365128715965325058566180904252451752048270351886302078823294358899646828264791602501623668333929650636957794978232936024241136393382309441794172978181996741080568148601544162639114478214707117686714734978657418567531920026864133770280117107487596663023509712046764130230575178527873363240982066348586635952368867451502548938335943738679501288204629552743890349943385650689665126912436610114675920622152091457203845911974805687124521826444543233929346125350133374334332288640606802588610506255442050031334003595405373457770824897334558453892756734670724685111551379736240055688533143742066960092571700610125823600351914410360190527177106861452414290022694665635483065540112401255678354381601535433756387641678969366767591382141072455827938493305525033558725088020686191441629991490415616030599924696457403286267768559737082670522764254854997700538419401769716672387680481802347754058466122346308481830876142671335414030441409179986595375295293782759194371180930935103556057005737462435690859754951147394581938176937794908292455758777760746507212791596847471089582645465901362130400180658793638542902858983574864263630121192938988731473068662737032492987882846881631048381514610362818894897328904874590455832445952425970214000360895025227977155826511948678258161646307201492909870379979652659975562795519278355469388248355188342885142577591426059540597126549689947087255414175575436998062764747626338001447482226996147554460990455809417969276248681158364128555580413289092201093341765575003644736227880879250499351681190990230928443609744157954547176127012808713267698796161452311622805008233404524957221229332459663652450540007198397347851718691269291242913926654476903331504456866770615590157182003688112423851829420882896244833687380980111267349724455131457637865253860287816216168538634608110837244120872262016779111230658579717884592878487054455166657037003666151207634108462003895652043013011869647586414267477541097674092751637408206880631043090640526213253022738943718268911522501976147745316347740349171556708680845218650455016236774008252800024624662445000541346185645904524466509815311790665339852890242541675663943397445131668252727654175178543921462634358798075328627639396853515470548047893529646706182829053054625435289593416481782265575096628193599446319090049961424162116294465184345935342013331418889361596451972914687230444471784386902467644320505848369661344178747542363502104317289187170100297699284711309617564081641567384200380677094810992785704054070933261416633629036709519925301813159643694428663420811003472575345207250257621497008532378530861188381388770235549232273556000945789947295685643908966927768384407244845248846462625932391048623904078568169136928408710425270102638277345473272818633348279681626750629292334061648357811041233783218416564508044589524156124281229457425660901358228381548581615501701258088965904733679266265262958953464067879790940269205500194942751171242404261517061834298513597067903665582557273125442148144390075057851106375924246287970768566002903015996243346632524846325833734610572866246838552029543522013166644351908223838026326059283298574440366561352485550317038151572523050549879209269041108327454025826270901483282974811317256267344598199845823207803455588240096661319116824343008068390957274559914480377436511085252047839000574841282164084373175526365753100588289626802400849449250935758831418749804711341146109784636595341645248687211230707894438073306123578446609036115501983599510659297822873307517465366910659207738229593762779357240866130533258910761775787910643092947941889545084390579639574782205440647657841684309966843822032334290504914234085160249370486135559462183235097155190098383159876818542752756399301578398960910158535048827251028774720283354256099511568331633958650461403450791261493632607332744620702761190493725123393037842430064801494615623733397137729365399355565790171588399765650442641580279134630568839299087180250275337230346841331761486836106928992111927647283431224296163498851078927515395313924375769078562622313774609358789479375761446131155965247731864703901547166313666884719856188764014798032819609615703454220671292665632755157961299643886142601190011617435616500734272684365341985067488417226551725193632801437691261308611572244358777471655654410948984197943427497723199332675928877634372865927669988492851700353428928322475987560431474196418212937699845384183311046642042015611623587805869962390765357298540104915156149667371039177601026470352935515564599174123581342814759345515849080725353602781544557331482332254183733994903704579208181788529734456386997053018137240824225107865770106962292542247094809132773981445113071386116266316751997323044086044432416532104323593215863362405388275818034642150311979907445714721921426262081049168787525087789268845252968387987668330785289144967725129574155084830367139722412781265735356538638875273344208566706143224518091477529858435893139906159378365230516582660411182713630846744658166386155000431709365939240154491325718862111195940197318709720407024339468170820469926506870500231031098276671151186250217631350859430897776942855776261210526216618748163744480552685090596240605397075237896655758725100784994894963161795356426567821498781362539665266162487818124652546000970359256710346113575598763702784070558095329600647669278289811590374733284871141033725961699151679081712463418473819333673106417225695455700082335533976184579477388495675196618802483194187267531516915769951115724728918312139120565341985369736071832768489744424441400302140399977723705802171465750510355426799007641898297255316377435916487987332785312165375272894404378541885794405691511083056724123572731395068276049084506019810179146938668113385773688143993872818183526340560273418879775219620272433029782375135644159413566527559913106285366842578578408809690232182640234946293587953128832706524904632987975223239603601159470880818275993245850519243565640568462537873414152863368128655260780152738104198395176908867020327296230532167489670772293524681824476782505003184358259653614664563307248347583223721205214841674840710973797743343066495945276408206000982522217568887406493054609474744842999662710897633916430336255909497265965917263595564441164759273772192627969629229846617319585398905921401425765134226541186257221204661398835715312871240835894613081290268731505107519612069125432071381330111436747845590950791728376709281615729796096732347341050650005783343938706329712614601951414303082456057004366015264671808327389703661329438979504130273568853426715441453052656968722607908888915088203362324031822968240106404659912360624943799953643723474076591453861038783488058144685040265541359536660344758714444743255430376328821292307932942106309645190663955642878544742637154107847505648737364741111916203403124194384241975232918982506151227939652366235215462473359510665921511381347748672101472592904408042548429063767096071507725631293050160787827561800640321733011180126377160341946202621741509118171559869919445874970698377787427066594546169770028006185538446319172595845238698767075087503539060364362421693980856300317855127822612670212410036264129497215512740902205546365516638083512142329511379081224251835893905573264448164044189964571372151267437129774715621518009986799831374122733416388234249837975509849490719152851925100960336772093403983770805957714187022369198397026062213865990724882517432714474175675222632756955675475597658780441799079311017171490754699978087138833615966508606835044474913011692892953382981729353595181647080293376581105708692170246607125040850512976393757098124492311511492982033139750216102910093915196292000344920777198771395751965824710553236149668807581187042192905520302888187648001811865854820164515922195774299656434279542314193595630811304429142071671046107154016116927497113933167316306798978438849274280358124098527164520212247976138379969996962957818776193966781234163683382109335488404710370096931026432717438834250047904463599506502305781236332323354725120820486113261063341175650089426579278381644695606868099434769500467110924431984848845320867559559139200492160655228569123904843787225861983341171537483779545836470414512233846573304671727767629516402383994089688862706931205647521224595022340899578697001018929757164384843255585011627346060398812100500167648182137256692287228663312785191062126716895891071539477905295090357569918097491372561703205308099356324922421531680823395699256647497729908111356401249580035373637654426878494412933828466954070545893712484876957889284497834434052125838956165125482862697832868844433123092259628343335718774229865304590005317493178611861764495682335525320253598541733492431554195881959036020282934454542477392560555956780202960351298786145196279999695687357074486363463873900723937717198093616376604218694837893436431049045196096270094801367279827774433537474321457527752184253943918209394035850606551105607385572792730266118172975050686899111500496722839509816908094451277115312322854468865145356592144009329772133849057356396811768683633112379411862478955757535763813628171624502093699330167998822762842329305387304767038800561770851486301139892666900764018042477857575735892300302989041658758578723523226878152122088118698266212698616209480994453938038825996802091629198174587301096483457062950814528652227254784543121045521595285929739180787116209351236105773184366230156250143522693519968457473721780444720924758794178903495680494383386936675119968636458391966875143571768604369554088076731730213092068743712409109515977021218324051504523148486268831159954396183896188582460178833410361692347513493985390037360868982703976785249509830759137511565289525430917788265798478934727673774786530915114445506121832935900435908984486168438054711099456916900470339455658576915673814510139610714347009400083522030345055671977741971752996530269008148695192007126292322987637975130802829382671404735488896897921495616358412518344744636552782331737993573066109029107133684438992448924741671988735703453586976688644560084150337580968913356992615777559742890650440996279656397951250505073451201068393904825524536257446117294202309448120615751443704869420764555371838712988468162158509277955761671800083609351090324707496915854989054273254855599521411936796468746039193904690009501214896544867256746552714329183771244585852359106830367237644530326573002343917459466070049978520654457879846834095509811809514397968193494240160333022926054230815715321877153501499197737824485701901219637619698215594322631538004150062134622898658510897733807018079071252695347816888687764948521998244439081896572971335530949453406615277822307722283445517812317245501851655096059841076880418702423072810675944678224670707083084569728656103569659255084281527215811825474364290736667803791156925742978417227287413282996550199878648961862851322485958340345994116749749081694095926572737115896279321268146372812799700307750903779340472227761282500107764087395104967934782829107195403688069729352642067430758464907017046567462586353792429207375554184815740518822939805142662803790426819888142608706568291701590542715399389906275088624806802799851834102789848661447127337048880421051121142702201640315329869688061965085585340175692209337048803756816232801383744234624315073619596882540718684739922770712651098382664594949372204162219684727437460796503053822113834499575722363793013368364569350853974405177978814546800831279669470704569221572945112682123516185698852537458783578980761905055393675269099301837917298544872800299412023355844916021510238654569580263665435888671459387909708493053700077689251613997190820432362229005514435295623191552740213536918337604516544305748387800432091634339162644015179793793592640462426088669055892693264119537514489449297786659154894727839993656524024979566580575366708981870403790794186141621580509684883913952181058355660835146047734728676335794415448414483340473637506785589670497014311593407415900002817760880206637466032912721399351676168124009566942607705763019559910531169199807505733636474385634771393798194654353871582987109292543242104357622143157022180756754723503948577018843168304709764070545607689232713157307290165546684883198178755647594359939708539394137557997881005064573034611108795436746866706498808716610486287600032236509688745976496480909719574568729353618589177576451239148618596906688580249888454224364122238197012335247072167480596781492923384203460288759899050690640146783108936954069800461080609136774539480918113397431722541824904375648860569703487965733768065388301361729327710051230136564130173999814488203953554297381700201702998357420285399875623448946458573261933624163936183239530592772058503601534990860109283109439756298331064970042892062795079995421037029168838267049466118112320572317719828979546993922791379018418943278710108724453855455528375034717279767133172537895303990404977851524449472656826304657455862328299309975132513322578326396595221803270344609318451245199855215533256093811556872968067802935468090717074457912921695097027253486697731955197558176444797330721799279145764459044729313459777897181661756145103599909670494190795513708472781377636053281956382941138896355284071422030424905069440917525287457021640678260225268036038883991916414074514810691651084067074469829817943307911930402451477235179683989613524128288567781097207743817758180303264094697007611911962230111810008699788004319859822461626714582294653266910583960066009525327550959259578230942780573689954486211486850190898824895840102990681391219798906071889890201234176466632607754056740143416189818091930043025728932043311652506459552620409091621605042354397875981811182766002510718903083482663967134572004438889869583282296093279320124427850128039047753316394764601831441293534774008083814366386636812941183168648379695897326285835700831265585411660141698502983054440625237818006769605737183982992573402322572806628671237385601561087143117479373605362325701785979173018566645668648760884984273991401418632858290399544021755633998690138812440278021246800102420072407952094869127791843811697864220339899279098523938871148054405648827789416100256494481624646389296802411098076681576451853882672781071520659212368562745206910881316613227664141826904644991684900803525667550882257446447359779633684442000581320604646502583363390024814425554586879109682371723862801801231120651168331100484205460794035388829818764175894157541089669122172507083314462403229670158570683271013895757392425217443044253730184329024688272483828245677472939439109821075878173028494484147369209068546243689753128327834388292446166782982371905307959766472693997501495664993220559609037788976881224118080214929534818719031096058929793596840483094497058800671763838012470608157388193376173922679699223309359831249313301041298087432142220700231167196402151092996536800013391316967718597003875636903285691044895948292505547428083583884462419897943184543302310784293040386404387925793940017118815290949166840330227141400815979392192825430323013785666692270965316810998984237136376329906616137366771562470657592566683051664771655312897158132610316249038063029077895783521625820606060411093793944395712817221052073382172733365232098909198796958426537459242615521101871397268653101659451519880049468615964182097345624873738518234002572956045154565316787774058524884202867370984872204320794669020303716441757965490005702040818377120012447878360721200048066460242716222437385728467084654972271499884062213515713725660840730755056007113934817486203244080973460305179181719171679241884848681749249898219352270713609697897477264140313336433218306584793257977532702311901283800551464541531211372439346464025019293567700633750573168004440499779333316357938771629594191966305720127213255108778147821224175584693477709981765740855823494219499508333409618239306459529052486189745628304086354123886309142608196112748837369219421305656831701285984549280052465935283219918820722508236113976245025560457369967807150488709002502557041760351450398672541851273336655611477444683744815552090832220654473069241500760827444344426866406383657984947231741757964351923567786332654682458902510580940746353107472197340628609391644917517133758925504391450042989008137859489315193904297501616000033443162602925070171667586592318812468755056895768343263855856019600187256986470156428017788602977516002190912736790803814803389087292239501453962859224171730036951711152769042394091433876149588095002837015558621683562059910855873303474447906874098005029769638755446391771853789594104981968227155859921779680504138057451229754249006299190271066447131362089485351812634557043401953534294271066172476223994976870554278440855338953713934820983652275160238657340456119030767684129521080225227105143102737281898205461075885771101097149841498638221368553585458513567509666210558047866405149283305292601144909293642128738858266703667139256027219634190851727274390034808499695366174743782988393447018445279035615548108727536205199598510942960428122188720604037450685748740929737295811682101098466868406205555836546197658301314992374814029857559393205266733684277547084964846861793023539571680118146208804229475529097334820067027197661821048986384309512868158016405942468386876543567010191876334641571417215598599374519341646874858399795520020646572136454212875653541590337902707829852157082751965716836063338227930384969755180810436865217327379325197196378710359926398648371517041084920699272752429456034732782683402650835444283365250517255297632142126216412621509321612629899632138985281629399005760103644145076695981759624334443350426368292480276510628734711865169361034650084946560327290063131353454104451609500612850758957779772348118665166271362735237252939222620828571984758297789218654537644810183136885043092074428454274727700701083105384287792993525961116475041385560306991271268916032786670087152149516027727284879117589407432144897252048726951760144893208496277133869159220237289337837520720838588813350066632547143297243056988982349698063740114145706794785795695969633550987879907956029591745922425531310817451028622733664835697801744760351697100597624319539978136203154024978518099734851504735028349827066117657520929184549087472382596821245518506766366460310317374600157307581048571820199517852072820186818512828623633057344044836601513138663922593004473861674470532334703491473154199357137880008535961820476695797977238622277058983052374043470119360797434265005197518219411966055875232724219758020960348902407726070895326543260345382189873479067481018014291469166035173060300255319221281577411330575171434099417486253769097870249681485394377503591788866024561887070332268686547406401259367199447584089325593646141142072273618366295270150822342108874302988239975768208061565559146769271890729321559880588215271263621712612581147644456349173604451478535390364015251416952381136191489072961917002612098010314207577288496598138343822430316588664766962763546345794909701956992678211253097859150517771383552023960322955435634927356226789611099277986723976634851084387900761332637247442765826760990669706374448509343984792484664137109613392467154835670504448037103679320155109900898884060294125216448747927787225286911732004418582889237503598351558371907999980252711433530874989529657906591271573869405684153588843075183320647163528690911694703808061116099007910160323871782844307129824598533762105845429243454652245774986502940822066133919509256306160335525607740406191472977342654076661564481580495749882302626053446262001508571049340691022679609424290821301173453244055108251938073244631605843789703836161053690106715822823309128902188399042424813151661431999312620089232565060367018155354098460923481652609000746797462232627587407230230087980176649564738026635993593197265624143505937828176961180653962578032931253596118813758143331767772586345102822143194084106184250845271441247005467106785728136690569711688304442404076041115675194810585203362519689003648294748968703486018470774035757967946048737347593441300129812263111071207521064730664410309118492963967339719782250444819672444496743126476754044626902295938307637812279997245961157489882329953443436091173004698992047683477140661417186480665954214397209504468711010274045239610200883482406594076048836894882794112248738107141908134400718527444142076316553545370229001047311689881807917858788360025608567149106444751352267038102753202704666055947058719028523810186342616794841903994522602514319952662774464427444265014164968712469214853426571442059434778208109783004109798244263811204093246519247622222668173197212015194215667014460938902357541153854251732790200010490913813669232410247270552956076575885184101806968342098029582836586011198847967367199130332480364280473577467524964767899250232077777910129656408670579318822588959467476039675094695945975995260957096261586993632542532403091625236895455129093934046098072814366119725423897303676564670228478333243269483213084503529775622371829085175332265306995100348696396718754248864456749188962332786576411351890329542088569463442654926376783138600011176020737308738935621236480982948602862009090671068578784285073461957801731731347566164067458308305513838045674676633628349743793071646745219404280916394004629803865069077217816549359655586878586833922945049363625529862127051962016536338525550350844832678346856656688491887391265008847382623176610205201604157975042909725135746375289016077501432791637318427895705653356706222053523502946512697809840023653547443157283738309101322339498893383199441009505834101251043643268092775099290879486265832137805853712529334618523156816734936279546801072947229517654012749232346900287830655022258041889595826928104990662442578351512662307801656463848413514225697311673058446679188890864436845685240103090050450806009631501263586226104015076982548069257108764839321878323064726191787492201183059817460305988213753798340034847940952066615399241420978308819283945319159747003045969674607674738050935074196234062639991544759216979175925597432229874692596570777248102887921421587012203747457688357123839068867958096400480881113980359891248998754392320787779495156296261814786053489746930336979911762325926783740817659841223032532666486487461595396839097576191586767822869964539294585531091499901046681909044066408296704606254040346454203370427126927672505880897176434286990508527838895222817067699921778972724915851481104390970942055302261944572451217013827525273976724119828457845600519492311475817950584441136914586160364574703434659298041501112036640066942372190558045950144636875361941941712329750350650204840344540113123221827403490282872568570825409722607047166122888695603256492392008259286843526292811076466757352539111165036864190904406429166623838051381725548440649451563441799265378785206866606814707204304872542481518414693926962189169860298684239378967760765784970036752080874568252788965709356754607010164384172985352175302612724506797210755422031948473822955825361182167071255081267473341592954999854515024092216371911601060645232819605020829128279083441669999298605420290232894916453340986615270779507109546235059034053214040310151022891411128869623818265370406482104626976311947493927569426289374756863197751977820313562222294022950594904037521548739710699963881523155468419502844701665744064397099058115265890935494652867058969875655648841293130145569852511242167739255925694320885197334123347887207047908392384875038289340406411049642717737297340567030875468838660043630697417620178796619020092024153795771199230744400413301570177344405587685931096335698831759217968711814402611525953496020113353126338722262903223110400110378554849232572115760988371432604269978086287997227945251204682358744698249244771366806957466366554327970466480835184386206810978699071344376074389893724798712067348659523145984914775610508447536397539129133358626628890016281717432243654505462794586211117955094773465319926600362814878112109501680912579392590614503927396931993886223330234155114444132374800347890970997703460664949486063340496935644572648544265170909499890976864395801122342489473461641486059742216502843882551758638406193358607609357719436790101631916640952036784602108668573694873767827308282247283250091482825018660617714378158681281784694370731460089630233684639227838245802520453987185263169324168706799723664074681829681300165102402733855984732112381467399596961271239844567540943194016397902723052201287272804494497938064702603738878882295508078786647111273938541591407055109758578113406150871413316502919170448964847342241343764266991635403353628343154801008417889227788961289980576458041950041927975834108342407538163872602481796032050952376782826677495795294210207796560277046247789283770383454920991444001302811327871328774079071754584667501580288466607757435497751768210955056849669718101095875658648403510627122828325665053151892137553867996894688047567263888712931979299509218406131585039955666134869068721330587475417937081206417694530662325096533712562111254724236887883142871523598156994912238267237579448896186305893819089911325068640582675088469354133501268821760043369680318928246553502153147187478431276166520417862093016111023603458680152533351738029616378667225431038891215576118930341332193992201035692585604230421678307511287530612091843311153993585767494472837738486098140780745698020509795333351138379321391770188050224284737098708815954678736737287614932797758552899824114760279236795910829762055460110459924968136375020454619901428632819608400803817114574823897099931682752577831476956004401210412240515089752077683006061725513045749674016943880330016906795811067502145044889593860155722358555892629611592444542317480524613949313292428952251192933244467868040564036643872929784400568129959439261968500581117548596275127138204867297055015202877552482046534174170319819338668550800782552616558772514188369318687386817661085343173552684408250107203640416525773112396599851270049437471611984359842334953253034533586884536882587839141527862501323577020555167310441645193955819671948796558026051782547216470510528665839585162361338682345226579486949838000331663152791889145499964375436316444778109458616856002019393511253845679347307405124569441789608620447833629126675500070498198185778684463213541404105176245815688456017303836532210501148910765927330127952815600213059537539202177569742705045344819069165130125970830603457047986835503310684434505724818437905421369396173722720416994633251994766982012573784491856300497930636765407481557404090227665278538225421165318092506019454264012488526303723215374111617624425660447536480731216500583970397822965628569503133330044427113757170722049268172933428027960276665040061060503293429924733719169117792628156763328834902594598418859560425645422051461938258549632928934329761924279778804392125802472369843964358320401450008097895483330425538995468632798031395847655693811401359672574612085683444063079291864652604008311732981340573743996975061903872595802866055120363668212378816145317569539482873968489243120310873628786998345069148093225036445763815008111512753613536586103177922976549034890593995035146284388576178589641865508828610552462415583012261284141488192622822788507447585803203268408097461367246816679189037351402822049066872254725856141952101127795492499772829887012928331812978566256616586985938364393412375598140478473864639723345823083564485990227050673691156761066510311947949402931007445497596216738085775342635796171205497933878232381811598559558385607686166754078106698218113571518800057146776930548292281838648452099174604964915892539104354968861956413190482540163189976896109085326574127522021463242696724194425190839838055950276486091725267236560198825997378155448262179282263948593733469839028154557654205645421087342384246476672390726625180804933477727689736653105407343315892713384842778597573740610526612373287563699973476412247204934519701218772388590899733402103784208360350222803180119591164374820620561494268178304879978363657984406680258719159038383184445339697084920917754433245883900345790059835206759505517733574402653183458490752557254034580371152217432013433877524825726340415597156609703923224371643909971890455873215579712100286558016810261949340337741899111546677532385311394706175792281805391119502134842029823587898034662250989262759127453608312530975839785181624512823346843170033096092826052367021073995334617919069747732711312719088853360016572965767960556876733240496803370120955306320732375303595099804137092481536447810426607093293330372416715748155240259920375879563032083264472388118056263532178180731627281713273213516223918181317412340695170356383295434819052202123098565345197780086809658325201559649147864132965677758669042437118155329403701510008232165763160186635872197342233131507760876658386020326016516835469330002488468438916081182049931551507764689480098276604671204522395509240151026799035633047976836072994123579133429152335056475575965817564184098034361577575039569559366008500059041406921801799342706017611455774122214257675284260080915763260230135811070073294937699982593883719851762775438566817466943388005706438475948279864103774898708599959298752288242731880652200790480669730361109231336857086049116502073108426498021479795090526869916903036216768629870692325945157578595405749231034777139974750094751228987256977010132141580921396288469996918325748318754398518874932834355417814048897469134263375162540612824175608520838888020867846722151518229367933021546746196797279392567991594446566632743284524450177745093519414059120572802877316335841152673915625041543703339424406672582816713401218739759235851506149047950069268498267579982556776466657773010515845832242004266880274848397092510857930355956088945594079773868494742230149982780781374468226206715147149250665684203056525955894858837982385628045286150549178510870800210104682980192863028317965846084838282427126448412557016623040560065303783130146327149264283786619012623188996405822624442167292396398511823687295438709421786998864050797950620067174396860258245457840910490350214082794467945512126788000793804341969257158122433810363399280083872268569712174809590046280915729851008944514365471499035135240088991784513088450122797160648711625079360375574701343220984210290709702272291823323345321812767406516182931920327226100014142307995924316291270589941982994629997943536043322116930780972274485459335771458886600922775669218157256308908910262292875802367337042932799604805985155394579367187850773193646020543576518027071992418794703711126700261826178143362900044509121694895203329501732793556821325234402429094272018272255279510758482623427858558532449858236434687109399291050039477405271720073366965676906357137175113774244992599964060316155159926871438683338975049782332758449681161191377829364620550557504715178527806973996621222747151401997888102685068935541877920850715276185167175563904479716805045277932036091782095824489982755908049150237113897741620841129509537275770013632343081113213288574300345581378304526619273324434551136409740839479294103935353539600188630186143874590391220145512270215279914796986879757664659499632019180638225550065659215984828958258566154320680838125393253684407862508631045291509559740477190138950955164121848019260449093199656111095643883983711658666240405862410607402650561919608583410200936625742419211039670819780895196636474833395848142108914401779286590876644283464925858855322556187558855591024009694033152361874261574388188926456671663935947308709701442100968757665717411595167937611916850496867074410544211233654571206804595409536259344500979222262691329755766030600576543026382918540491705052280108701579369599942470799562323327657652392976349699006349929916238179816743327226226493811601326747806003864019421686461875014048482591166747811534540175549623116202717914817487075094437488109993763618237261383508093555911672167912318644236562830849725883829883712766171041988239956121786714611700954397324328460718101508371162606251057961375626481656083106116403024584676893344661621718754026337577963742790883008067081031853049677553083830990845591225945386938848167097194922255515405663205409435862860476945117302413001352832706619521983665259709018897460331981441883311248689389476760386705248312199932472543846441351718043681542936415368688562740608695357451503387181242357106290762767938483854477040885140895775768113755773059186202870254932893552176147886729773470368166468337398763014771220868262426955105550063459494037398019892479446984582958703648584232021304298044822308812671850987876251670083762543661781819357438437844856476690990952415196326435278292217278031763783852599755305358759483449642283578880803898441490960035170629134477444406791829987201186517354686520386277818870606401352081934778899530593421375491290920428205871610980003718911677178865065896525983321968063595633730953779817337157422780212372414522044435260676717969209887354649468192787887277098130705820196227130176558216755157724395072336301150976596604799561082310271232610640361994583901956948628319586928660153403047284255700128632901889120835482690552517457714029122413845370292928100575163558575078641110511965555928946471947511663361272141280315287474373037131746503454681538267111271516332501795310030211883951708578346782383228957895465981905809427642588982752414256774269320914189869493096892521108538944684045354984007400050539521872058170834081162295390401030720125704432440902179238183404678676928223028576044946314224331120463512200668857070134426693766719276232660860693622262843037479158880184744738226587543169913800011304796885510851482648499474815127618295818175071989782655759736338230203892864572557100471000138144132882446623615010429385768565933827739041397932433160936758360019520920805036501322916579645455193908458036128927982130130123186716826829238366251027301865447152147461808886499842177631973053421303863362851094944791308677145320363886103887839529403061550110029996585312474684143561158215458157234273425406950512897203421243403570697812189166865347228387568426165844810331487790581054607751942175311888440310685250127126223568145052810518027121051558519772031862553607719719566314519494585493073867471204863500896114829355278800430037884171468885043711666693004193503858875143247176656370319938957833735202828104737967403544896713136454104545576774364428075352327419570285235582952338442422500303816030872883869172413143400245562814862482215152603852407800314426141032556911870818905095611967174312182971316063754589745303694916282937737295794964204459478271940389604331044893865772194591208860435582984211964602821893543770827472652607275291599285568852780323199768493860139203005742510588961606525139463279190530778213957480785471947322484414373660369587261737495333716024471505351653491426046494843918377073727031745570630925467903823938827966163714082474965472470283129661783483392104503193361649195667487036620120652368059033085579870389686089924864111063127772862813287745477524418845826033781802258983073122414466553744785294399764161235537352806478726057166938850480675242532484384558593042824408807983418309444784670680138718408110611959294475589291286940576266625310739568677109961404252645097183522904826002997058445260178557436567985027001745034657890739729598338106144546794812238116752391938757168321639125094699751894019737708793138067149225711039852765352070586754633581763989753759297796125746700313501099378778671617207463307113138569709916492438097747342820585831835045149602635392333886421375491448946631908048009404970129019488273462202437270216330228901733386901439382379492851578532875156920146734814034860544267323722020973635434551794677042793819136698507253620147336623750584081524863468488262750597179226035007822098617626679464954704872479631843614836400012164456555224404956353468720922818304438832159774873439556852119854620165373990749383994573257919608005260949614406794768840353872077668113543371137197536416339502150088708651287384502423639261320101637510819574668298886821339182664146499139378190203323361385646062244012433010029024138105202322947720046280663411675089773977606095548985218657775528032727513767530261503831188227012470720566809661006073049530559898068027392124337865557546027106532833021849456747763618811862285523182237495771296211237799299934535311408746628146211540822736168314168004658131118033394276168232914164817481448289519427550275706313475728722764912973862934766140035733337369281909028459995158053503437986890368108782489234242238028213700469719528382001125690867056513674198004894059308565692512191599256809159042740295500869694682580117222689445169463915893258229301107371375270788182354589120702941927092395686881052001720965733917288913261456731220099365037482413275042382838788324669447314021656581792356457627308544501564627686236875474774696676968340420004252993201411156337054136072086059521308593395041891078064708349923400426963735325702973412853584923360130645835687487802863225099691557419403395621132386260250410107226091295534038026894658417494466096640726436468503070037875803005549301835212251521342002781792125808606678598324707102154174057805149645135849024175457581466101262888949329372500383915470134809086109562758726441542192332342402995703823410262498565111289883720002742043522416616720214460971131990500934947562433989914370531213708308684469072946294988368737729974934591040471296411314925601906971715722495001766713434571060798856315667324062573079851296487896402836484014204023188879078257146831218302743845894451919824164078107450359706001949691608316321797480883454440404738248676092215062125114383726205321428774899426298971943421718940557551325342549988391933904243829779847891757371894532442152073737339632184646950677180063690252076169243131760907145404743582256248686080841643284939452342061650673291134186835731426492932808178276438023009437781585018514190270903795578760992463172800085571616784688373195122818245270518731089039265144867543626783538694484274234547992972389682847037742290473741669981497111740102623102566554762061224485148966436112206999854959328179291529043174151218219668655321149867980454870480667691172359752726047903454673215827351647378065920263975850655314571335634797503005100544136266779975819239970456592858340604734729019425288432025872244404795310438973280030036601759964781555786809729425308092707371764219947703241990789893132456618742192256732488210986657051795462087138896434514537390943323224535263195127477931354645906812585619947023080307205429691315603716709543698336880935807084618115261901768188639538311041039973354544670884185524889392159942626388354558589138786540691872647514135998481615739901308142198825181333439545432159088243508937536701296021439258296282160856919843949577177975801938751323781543425337610360830865233023168918706153440965564343656361026586585185256242051285275792159090116897091657226436998033090137594378271034608246290852451391566002612570200250304236937239853509549478876755676515545650493802643188387299673456279688914449711702404431049956273096827189187128995570269727011598855057563653090365485342648274692691651550042644304117686752129515789182171954554343368086949575714182768132399996632761259493043519590150929161733608529584616939753791051144993476036974066467231434989422358756403359034989095304706758165112596625303323695556186859556469596474452763888748415640886548360620861274243969611865024421492094769765551540865369036040771786627767962040674096905770358593358012766325397463545138505336123440026360658030049910869960072305872101685327453669545818325600073145805433796019120112331934099361123493746101946803506325848763244377345271812339904993268732349287233077588773499314663521797010223064189795814253508139851036161285623983971120439205556328718651361930781976230581491097487625845727169590951195068889621950911583070684485838547663812257948558852355136162502930147454681230849773764729010070264957099793159807334761645060427595542522013028684274092508208869649997416802288945151320779899959347601004873293250317676608310426043015565619664864345613980879147090211566818928172445529019295720903288097078108988325699582928464617994205887903776149981976356017355271105931178752875452595793191957594796449071638705455451255517749947368799577896339572768138284284997982329592064195574297118980688476246270236359106976934330394197666308760548896278169264547836781557450334654044381269059834598911273792999875781742826270347070721377022352450223540649196036678282659747276457967805953085804755564688428825918812638565606556379376431632221114068660736615104896846229267213258457788827934209768756469791515433251842026598206641050247590686551611133945339192098767244927756555365951829090917673363424230632052188031237475275847574146687890127754334584027364761517720585607664970484581015948470837376679574232634069080868682467476739159928532903468312655354954124088084982185513407140859889560114783669120845922727347159301345375056862180310209319207700608882045361121320991777213841623804380859094700744768620929319583030110066258141152856153013142574773167559831036645811348215264853884135312911251424135289413449844687836551918343040483221903182914563013506323375850200328880714969722372538447886161720886347743517357261519563362119013815781174112392643400118854616303274898455339587786803310260572634564373861281526605576526623633995006622874470527394542579364912563105285229965232529241679120775969889962366923045881718011706065728917870810355204991718680810510299901924518995072244415140053166992155163003555298430454400370459511843159532558445722468693913480854247945140501407742837998467235364313033166675298574038706917777909134782519007229261028645194052418639522397477466309099831527272081752315243404526870049526440737724036985162701300371655801513893232066524327789776997353443130006963831044553692204528051608186855215935450079763748843532892342925405066460047653024230723910336107696792418239105335814788557108026689917605506166298772444389966630239739015965415716384037614810324159267309248211049231554783130340972052720923841928085854944121487176216115181221911677908640615446886722196225369999374781545878263794062324326719677499665975688408493353746051758912235281436203949107461132942425936776378055657488858434470392759409724609925202040437522623978185218199558895350501750526680652247341831167642364447982489065908566538695239999649433292655905923939690099359795685706438522828600891722806281381781117009354443974952384943844317519461850639860880810320200221574981243412226627418111842777021449067192402060188463082340271971002132208796789043572724150492985356506463940376138335274553161617308443754317021605061463360858562638794337900089716503443671322219937786748719392514626945046557126364011402163097956778952795860734608597347728589861938608905755836088052899431635693359105604682479501088449475109199695396215761006603638473233206462685666323561432257695660349358189387094294441232020770618537483419233453569092091677156745849208475347914847344166601841915529158815008464088141088671584935359057436517911002547791776326255253391034111525536781521680856536379390013054824115636748351470637280237308280579432105897026357455167796373146379865849901479225911331049479277774570561228401341748968262714475099879764751757381546468565706112643706489786047144773330826855807585386115895833903887836326096445980798290278572759288639618092367598165101560971048520180858587379554222219171841253203309363471944835052020648995776443388285930568891410742947886861664059119753553982931623252311301694871783850869879559528379742850000589635003170325893241406658134290482799058413597439842998153917667136703075567974100981073267253537390494330803802992754439918223778176483786049160438181852569287033209499885959321446573981183328251292725255862433062374032156104027107134591790435366301711297030498085830156686620337043677656877182209889954717286690437361297160122919629345533100008586749181436042538157010370065738177561555160323940326662700302972318481751142542956815611826058529644319582742339372687800692489681239832876358858051134586659753354139242743409462413560297970520347785931399518502560990076853514155669212126390685990084524256371482710414874083995572177348175012204049727182836721293856772906355431989323503572763425449182402451391846573084422284460704165237798092962818307157369893778266653500494114396178103020668032093306159393995325643200810978017137772647777356146496877296376964909795291078569513252313668406558444604591047743799713810479518483197100625723393423724764049242603767625818584902831194524269884132694841731200746895097060315873173832624856581192794995249465587572701801664358226930494622908514415055516907641899546125719737361658157365836907755898483229144491529756556422446746763983530163863844291674881980914666792692997610363818902527571243971069016365829835584510157874861796027026303980883279443420797857637091487022400969978188353925177451939181906441369353312464482274702708721788661522619386418182016209843661340231962034998612533973755848007089161299298189992206038466863834040747756348068525007397809415487205989474277757028146197193107234335790267503966368242439464524302505972866992540614735192114949241795585573152160181041262940176231322712483143947171283871258199235276552567065718059160624858776977544834762004250060594628269402748369291614950945275113083872375905343964838150008122701487790712189834009400589935800637592508593019576497357010628712071805813479552570573030523522798949051566068528920466959205085756125360154318744301440434694150016740060637912489086223101301660944208339082130302086072973269439686736283658573589472282776913568520371829779868817227313046562065775909975534810367800055233702715911764047495930822771353550929114211060619325475407204402077427428448823247982977963676864153931265599457448485194559903187013904156018739178140713704166500187231580621715630564211692739828717976483756636140767718862190706106713699788386552116083756969521139992133734336928773341728913049379426348357540241327147716268453717290313335944278759679811482711127392295320195639871416852738223599015043199697580780589818930466322640959719102428705070670900719717787628159990217827428007811995013100988399540131293823736229237735691132188076984142655432612463041575942955760451097046997600942339734202660271267394849090622884662695837567523760164313915045450307659656383372631014353906884823105571085096631291423049431478396933983486253018717726494167123841066388070136815276145876024533172499747737367407546665374857717936598496222050793313632174421272891920318129974869639668225793693282279790164029231109935009948991966201511961461818833920191342202197140223711788123643831417691093793112787460435552093822821293191347752900611341090000101100317136048574210853297123343533502154125333306302529440960031017483525005457065744846750663874435979277037281277749286996017003274331450693437610979698024143474725942116961555171771506496269148992799777380140148042114733888214301027963813751104395735098456058362991998540515705523759287585545253576775770155185048147306559216978658369458743820763399192826470201727751490943949560286647485154925413150123160514731629992554696090704194482382342514480264684550625509345551655206285745932226675229055400655349201942508939373093716867277859829619447364170164746729281925290899703075646770413457761456207693362235303532920593754798845083878248609618662031582984592731262482604962622600102064547582169203567387586262052989720290037739392047415354450928848558121668203056944534144157873561007309161858033653662058769637257014948160499523135211546104885836424892927264664875838111209875060382382131617344390174624387642470010432324018735929782761456973922907230903623410871763380232143690055168886977496289881422161845320911349228188911236042734713062092937408952661848244813538795717889542095976122308459302181846140402170720242108196750212579733997824404515243258837359056126121761568697453349961608390098909123621181250725959255699070049718554350880160329128089892669542880895701884914906666438564634074725032001324101157332896863445231402740550271767516354781538782012646457325541579588952258614477875638083998255218492589703053449624023065647133634295131948254852869981611850509192684906533547806750676822270294584872365913762814273728646949828070007306948312945893308888491726631447802006646886958774669935589003788600126338885092407748856329335178866975918271113451047258048376246778728569157441758449123344228300344654169517429244416180177803756987403212938998700693173780766286818658039809029672845012865062310855479864990087432202314701697942342972989242595448849335586346683518541634217359096634243066504742751197154831259404919519114398055877806916610383808428739116135988578212390093761238947376498639471848312107071426543977756686882713729164743924497232667622544095910849429297794332797884606913072562125673638564679151003124980003855192087083054526133226917052759738771023330503798011870107510454607706264846698541483116190086965612592935862527322277907382347390943285260275333962701369281869845561884115693827919082382273199148014299862230000015353120222281712306203241139444815659164966547880724680347214222613761332186963586520176376957825613000926095536096680787349666263472957347628069089647663504105672139303022598297971542165249751934634481874997247693537741439786442662674543459748901647106850013949408087728786665195779212144352734539694919643567036382739149213272754189742492725403907093040769270739876552383932600820649145294612807170477204607259982025552889933477641770116300971087909865807040537897760146067952950056787156547182074226594755207901594041287698175474524021574853514569533771647206755860310306776966134694224757102570647532414357763326963758942686778721153519538098811754104386871750540184930470716270670924361952377719534133542133436601569630778194284638954836423756245607264151465926051378659390882106802503113400841889918252553832489813689368275841751963978179148783411297807665764326593232433599892599103600678241463499194092806277306650554103806613330606662299906512650314680921998677171176745930664845640095146936151500021901159463857567458343017653908263395546462944951861413866600988708592288803586420000567896684261757219005104568338850015287580652723010078008173050140296239421211237768615003564115486041047642107459325063702819357077542982208762629593225541753840152999386472108665069054615092065327086590929402315906950999620507563389921913849500003485648925537000130927086316732566765978376172080749597682464081367965105838279762464938264332246261526330812810365946041526836236926542204632711618337240411958855556564587870775524555096760118332250400240587675133958563954181638481390531106591793468216266853356966424493722014537858109493325573440327699554437617114147382017890520243018018725217504145504931715603771754716986368398798132174463164046241523573567127431220725046852507467396861924735211206582699943529852007017991554870998182749146565827178675078925586938352660092725273940112845957277479371708475131568490720739343197028420984481390856556547728420544821961480074919883806101983868563093115819421642118140169092145316941623551925812019884100150226199901378918455932407368968710181556686990246529757091692651028964120729053031795009657660591723930668914031768577986428118834006419950664976952879234957000213806348730230550369523179569813029593100757817292758270710645063718506264612840649171593317893602201038703530258564844453078074627448012761905486129838855124596825682814714731273284744765880675570483943322177887970077392105820678663092120238156478878391075993718566242271482899394277086047903105255741357383764839319442219422186296723023513949506515741390137656640902129601643575929924592869536184328951360906844365082777825270176225711267542810181608903106172638091324715137946402589949668750585509156825491583929273857528655372295945254182934862382566127873462200982467983690764560866358515938744710653599857759269107211801121504010396451088139862653028552207672724177045751194529739748394091817902763614488260586484223988146791633363799274060167122161160953533685107830232264589852572395403061590486758710457084113224767164754321584489915287731213443459951063794817492057872176595222819316719226618535174880379056629493934408666288190283469628624714795539207303227904060626469964275813734066815746209356128860013209754179571314670096893913849228671562621171144125296445590840203090346178227372919285319066793357508846549322961945085355444052803539119057957070536419664987207307880968039161561984003063491170560342660510051219612763380812471859317090275463763681927382697118119715543863301212891821658837152162491897928916037015328804778419562299090983946687261719716160713121101102921867675934223863580356014703512774426517671884242101746402409089624016050321944050326178775596501288268540964241233619455675793227622852936913824520664986762645902067177248778752958262434637349600673751134958886081205802948056484774697419473245447768332160554937630831843200220987093994064452156714832267347407350842735130842331502725879995235219900399212085764608576961139252960174624556159701981483100005956089624594466783584053755867574207142532937261898999909944805132763181299317721414814183071720012813127281938489288487131471706599860381173707362777475475289750122498356750005020298162294248378621229758813277658038085582054802268193663257362916746075214463143546551727941330324295656230279840992033677533774003922781028947870920863892694984757115618949339021465590736936634882308624174603084871581328722811302674030947573594045806441464817736235398129626289293160296757822072370076440334287724738043975349097150213000376272847205907657096369258363944060723370205897712201317414601858474484926278396284073010881279121182704096540682912704821735781575747400530136570915408784020764223607431795240477587963516374397463910570737118180198259324819114161191686003780940673066297502774428543617644981459647770191613514448382993080958503876145799263603476114110856829334324007477090249886421798859727776288619092657503631159815503861056373444909777488637698298151593793406985183162094567808399138245135545400711969637396273403738111649793504172990516679241414867000746455528496093381612063072656429493634371910671188884085362395668722932305077708359747559288437758283986486346432127577083229550869423896515446328427942150886654117620808641708580937022867631220759869196492487035999158893487575607610176242915531035950993445085465859188895085238780693353601245789734350180639545691946854759364985163252267725600485563490845914360554674435720202644538588908131010784813859823250967703528115041189546748675390716825729603578222594045165582421594853782617768136261780844862164857077523421573169727108970069799755497257545134892683634537717444054211413067207782007361931537371594091069290207425528906364954390230472139235031911155598002967917162256156979899864614264757834640126426218796295760341372663257457456743761094273560791330498151820212476122780380551202503526712940471635542303640435083505483272605377019309804956872563037115377622183347803959379808079592160214457081264383679667704984364508843664141832262007000492456900618248335169258697288107548792647036561368985805907772229983708814467638132783045064267321011012101581234643575738950721326788903668457167976952701070405266314544825835625027163741543246525020922373047383774548687700020982772544293232126138777602532722909948172217905869554896818438781620340303838539871325392517179461604839100303671723848874909949033972657745938230742960879139330490889192892728344904798069788085031809521320342693891773578565247953743824345951326619000477654162254320845197988072020584609137910424797336708145566007699582208345474087384248518427678459416019280717194593067308583798238716311741502986916857047069753445318534639586547129946405553679210711286117557366337329927696854862451105458251121233990244276268267605437023895469063440516829241271122693364311984566137601734494402306219185123307033528871332472276974372783988110418836098136855058699482024248116060497388983603864810271422885319900460228588187351906499760385048512381394206038681089126387959977507725410589822174674560110072873173482863960905451299107375155507446032032281025493208487362774770987665148471241172197306023454968094163154304358256755884057926231460664887700996877870780761514153175018393886833395209797281623423947558727601264525328878859470375452006871152276737755409885524052181605211823734098211785585554023223422609995238708076717052688406285205830098606278144222574746651547625541447160727403405931969509092061634754636573833983084820071757699980274874244771900615761965164825544092835877112580828174058413778812379231273320272596482808015194755473435355073483516584809631704486899545355049470785404264814499149790816863507424510890610982781573722126373156470825491828219598586333819328091505260799794744780162760836138498383030210877314470862844793297722192046323195995549487402248300323738991098345978641982938246552725484677625820495541163913240804901796426577169225169045341500033231920883050253482757522145483902492949006931840127926093658028571432546568231626478669135934098929629881236865567613664506460053224767984532405556526160207459358879457084557248912632554258013247185550725714907869478847278229393049923442657912244809927527264390697249739152114026492159531712416337847889823946937064956091017331461373198784889206727432430676384699951707314489305710899224530631376113016286059040712463613924834108674524532127275996250460610687707021515921382543440085446389542081750845920556745720468666015018286388583582099762855792836243266558246902989316663604678414541459291185907272616258076644134604152540804993206371591979351587272707530812814430789590595724718568893043877133864816814686867127426673048660054806478168072882829112333045698355912585586397297049392231082424598593006805339126581964150581199317833308874517595619881275873700309836463520540569895516482857966809346577788596955335623533665727084940525477372449992290999030826085194030561451398852218728014632393247346132150618335709042085861642266173178973537039051325128131299354115377009651075580160602484273773150571437465269385430571188461849527098236101733659816704587839994897796044753657163703342681798896008971306397695542330791817896866362087156808112654540056315252127767902790066815729391464901005620968477358671566631873740274400806454837306396804654128791347514527390574300956122267798058612006719249256957101123438670085519584527861763432785863632287308091750780852549711103287866400321955916588298246869623809928694038712021834322779964086005721853664210837379995647581574780691264369938395169746196914165660215311768349477301476541059673162098264648863665592200044878449839771574952055559249200632713029539441553742443171554523864004706754044384323921838750163736794692047883569230343549906318518995660665575518660606868069848983311127517642280552825933990201181827891646796224131758061210517797005681332256615964474991619936331698235740833236011502887926782453967537275008794719143939436462125840046149666052829238109539781288341201757985701464731954701222985950500254422658534137375930469581421836746097526483261802345868321548396809723814583676659228037132422627766713692395749107408548579319144748008495312777162213418189280484327078498005309888101516416817393414890301125208094330441530904213915858698667072642460874717541379117922219328046126719580913945454781584304467639459235354252393642160464420368206362086692261629472915635692812564414314118658923120625053100063755503293997712984624763166237443385306796735233803940206644187363765209430749095578036622040236547166098180707259398775355585789480551267840922021802349451115671027762389094239582193765295049831194955275069671853479465612697066420634658185309534492456129242928286317224759508104817596856271605836257129807274785542937895821891047974033981238017320565559198635792626219847394872409110618512468444432382403439567996989673396353272771625654923364025491667254425452930697033927409502459019993815840046363429607371479301182790346286735900567720352156470349247526913506521341693070074353714489145925704327005066338452969993088293245358274117648917699764008463356569410780308172028198389207159445534214286694252004724533172898548670080764286869533821279800524207797041210381342339103938644477133146387955682595037879858992106464147190999451691844224305391023149070180049819281123515702113086089150461494552390717691468146223538010813207790546123147147937595619399292792496217066121200469731636620134709837289428894910853163787207640159754579879935956043166443327192782123851736968927776931038929491824591159653409107869580592817938409460163968790022325641756448323490395311413703643618271353645696658476972290131606002568506117095338307530372474224218687470319796281878822292345493424363267174971850043581711873567435182354672884499920263233793620638588300717242329202916889856756826535975462394331926096307913065673737614969684800255886580256234178393019791148736644465129314282435388901483785924691938558804956323630361501238590127705259074980989352954118973825303012104821366685940674649765907655381240146641753344600614460255692992050302517603458161680413815893385084655591835939321884627442024438179849128182012568326109102271280860675552607177588465635928059508280292257527105466492436810419117536186330060616083779179837932392871770886457626937055983964707565327367658414988423111032616558974378607178084725103510048114224447062625009285064382091054696763170954436864144199867684199467698028771923454297712490205775483992676409790742911724849464775699208952924034143658407214217338279315889797045986895570156813195476523489214186488971871882819560258832433279527059198378596572271416776836639285779007174833423657739553153109678766166875582730267691228342515796318981712356574328740617455093574060416306058507681306208001380361617902308030846141559755930479214803230259555850029443446050885091821486630253785525020979028361496357265936697155796624080306733113995288063049898449854992860478922827028594794393116914199771616073520309334650705999917737393023458075186215444752432086149772204192337207307407227739322978870103188690690637768251680581474979275267825465094565796644098565314894352607600561388136313339318700342598308081843388590774027538930347161440605905026654195711136387914254901490274445024120923967029326541812157554657906285952404017711908806928625329343083139975708095884315064179364776957996871900992543688808879843172293125768930884854283705096080651806314114686912607134024088163431147474535865712991747147546047857750938053997801408536677325367011682478431770099760356967252352684077223472981473063094917599521226190797456868052099448558282619629428073707450074332610959027521401009997976271378738147253793593809329574618627944338710290548132154173427061383483678625101092080241530994073792227706008771935298295920674622132004494751107519200129865712528357527191486207387543946245175718337836246572792328154182132330243739183017639282373997885254238679715521704825388062510187964290625543942198716228322753691482363350261798511850618491516847199012703179462234015267270941860142316549958909868828977508552297897398409630270905186130672974100715810111320841715081590046821235533018900425931484092406024543695948382530228363317591358552149368361451636063548372369386271672107125541621467721289266140678115336090830470421983436942000843621800401145900277134444131773399807336182084285681833008974212388244534778062414651707806898373458436055214975387491211838892892969229023495032577147902780582547752359748247655335806174171650140310082079439971924615065489272243554447987904633461242553238211972076102996760190694796900469512738867496738060286008408325716173384730595014723565024939105980462021514022479168960959536427885605718653498431309203310002561945939556159436468986410778319721376087695556825245203901852850534782757567646265537247881022422300378123509649614297892126340877492326411241755663535444047516679394113522879850369568296768124647963555322533064356556063519019171700092051070424321360112420502989841491552203422656538021124333090365132942370853504963434109646612959716121257972718483802829677998203450453446173337364616520548285679016033994897279058212293436880672223946339128077363856445920105029116877754393815871696573295153265258111863850133819330990372486607069255045299931230925290607903874075544623867863827978558644923149465741298139395912695738306482826950469528399905423631265024829599179371286485820160806835939057937788235680221981173713715370483005914545667009754633772450118066995854456629381560645001097961676324520436926551128780643976744996007773561506294946134939421357515535029192005108266414676568519986916944894122817385420022589603978845505408247642823399351247522346456285070604096028277014453461532974575033447707527963214099862625667097100890568944691017165101733762729964242137832047214515645327870744705068438506557408240052630584532293686340071004825170965798250253157479559481847760709739442821056992175144746318371234049095160669323118348670827293084982768326637677748481997924636419422598397192733805698254852699673943912154322079699890491427247544346554678692215058353960399931744114297407939896649340443072454567739825294202696498233475916476469599433838967007999846635135351288178789054893432724160992140183274393106452426764668184603568424801722065667675537102103238435004396082236565243193365594141623964616031060747358762748915897075086253584572445026557284401183211318779786691356250736809481100881702534839866475827146405229561533211956596046235251221204127109050868164515963523506745975179011956682378325700067353134542457126890269207402384930468893920869029817236731323385312111089958830397059812390424305080879742285316262505188786343793487533237372715976583750893701197384026499508716663980620739936155131328160684883529687366182847349308800524995376660902740006021662508513225806893540310434676842638586741137323864171310102352757224229877459947165099106963995860054383975230778425152786215557393402117452514778303297814390491326501056225043768146658145958281344596424509162855639129795447228142542239103036407978734605521784850956221157427342742599148890525660019693939837924827077133050526581371354964636714922112828322418499611070201298464353879543941913059123340607720779281545491866087915137987034575127816330565739394979979102648361379884863085425299206176051215221769898576810242436429040585317530250771069984947293658580471115875243150933313727050120426251390162481209452315595493996711489789088241532619040013347671453064732088869252138659272399198354676968875831594353032930489792939984591438279010002367316361485403144591610594368114357953770344695665046899739457332061334267526670140525841804862303158758924666127880775533263670747807749276245516596111461799242736610181884001406734556595733557597345479159771156787661406904525934527629445037563844648859582237621764063603533336294987043146846309519621324175864184848978730876301388879424886735638456489444903956613726277985867647009541354674913928526153820529555529196141736399521125137319876655581303649838474462218503957081774620431920125170373725009426903468466708702472169289839785854681984276329225944544724864059330741632242829450632405623398804251903683085522169295668359831172490070424665748959547881586184815936498971920853454292606512003072332720802415384864473411862615023741009730916049959513902099929849634835068254010711938603796347173091746259151872300998005562681103529524806825301372663676590577572922859968348693120250563730552320599506980729554412261478002334169988689141674579941045261659298455931813525547375724416917961066256844962785370856260089544970825458863932227909764121056134525129608606644464490943203811964279762971770972262751470311970246305635627560541211681587475303133583909919526096784889278257456980623756830364633255813494366796737734065100384633242855851042593320632935879233234321031703363849580711154612859429633423485651184532590595450379818305169329505959812308683836236336990135154373574019386751301158266263629342340591410829009568287076048145730801104538479878310275083094451104419988326748330660649636253052852313764520755078807699373385283394851930647004221984209365714220654835997246484984930795388072314755952000001111941790965468881573183021220508187034403199419996541753374554161810582898520024019530392826692442547065808663466469898035569835100609449605510469328267391221946013873921599879751024534714858955358776589404834020350533188086607390202998148057508219413820789751266874120956024519783442361782228862206226848776302608016907209200392242016278480122790459948586769002465160289937575494861639485561803163840791785003356046797833054516110736397130192485538492593327485893509308329116555173495771521901764618841816270411849880833908238714396176116049848052440762082124696954253327910918203501155126450579535098247084534813936342556334314150902649579584646189296722421189563409042744501628660850635651939935426607192905180890841586315382701025781183139158858506205295213186592455505589923461399119711015227138557403698800967940054740846835172066208603498656267345824718588740391881748966855140477101328350697245072064355738784689211575205588841305964612278304513892651111406803606882211221716193919991503002261529499263130401538899319078349400673235865350123700635434327932607343199994168704963298588208242474776863343718394697646207134707508562237713774875041638854821917240307639833836908221539633302149848812253133014218266682198145806448389697186871068790994816063636951841553790800475679087949076486662676581673408902273004674622630991104523366879113470480919737374047416895577584799276435314208185334215068954979470922587707157465035751139202459830373565816091326684798213324340388278897737789100874292580625337804659689764053641694749925101504969880251374188367748135950853632251244240938709804796889261342645521084984668051612096855821717347668448285765285109069503600340415620087715623212416837147385912684934295989327797754291729195330719590920516699167702043481352231575983026077634917563783228879147438718856230841495400927585750084088894623815389173617899559547630182715095406636457048200016124816419958576045069883140292139281527327551132873900871991783407441878395147235800420957527447237259047881502195837338975698400743733418269193854321688860856422984032652746609963653823318874376842294084309907650186403704338525542650269913930510002515423312450919488250979365391449422153553712620695825856626665665095756561224359224664023210373033740498977846747382109563419047644507670741598854726824149251753253540714648322967259689407526192854192443498985469709816280694661199042252809541621458770608535021842923345002716806208371886592619639463420691040746053848325248077791678624508644995416454931218504940647233801824517161629287975321143961677585691270300240560036941608313066341109937234037363424575214907593446644733694928355311205599399615793503785417063151166034805383736389700022583731778490182462829328520175011045368608768684229238038571440054594865922747935991966961641792025913923735244641897128066100596073279865844162795199694142659997028540559067705883227878829173511645040768687399337630554348285370154616237769795880317514525450378476826972666238256900683309415386039388934004071561294693795037716514170657150207655890382387975012255126144426988941399735977401079654449709699544467590540966371349746552882613452821540796047074222875001936905954111375010741826799490168886352426569531445176201992841248332022673152977711642509744442253277296015972234181196327812694190416469846793917125438708092397766724161854419076914020031233808011373915002125090697652871965531746912516299099188290609821282107747338347744804690019019002362298297067667110022236660884040419813480352599717508444902385428583063755447530384733301088172509739247606566406543920900939098074669717543925805645947022218612520741881540355020657499246694532493904569485393339492691941488795852955493968647398981915318867483156064158450443195938530695604803778501955451550276588569272507521907077807506930963930864999462565863326139925633106474735511891013347484939480583134873619572742370964047884582025938635206057533933596923856874331688116806022080886361025890035775656994575839958060802490851505004323974850376938841167629616328212034977245005468902760778176325520130307997240022757074740368744754140182002210424977746548841480999499390285989007396600973871390714882441098462475948106546387408025090302062953698993127598056416163394782777043343353319342661040583404566576000025916114847675039466579666405345071333229414874623598407523337506560659545167406069248323361063349505469379666313997525677710764961199041365640926662355817517242737861287498452350855846897099478850992721962518634569675128082764203059714120578154795240821095694425105071719062931843967891735980053863966903400535142575145286593580128338723071835865936419943083014813379165846720944627887090640599731772295693421655420357721219118579776235920222119013214954300224795270243411473365872513499080169989226110979497368520995649078735485502245950147899465998233730074693600000369555144773217207952755840745527244214537082730554730021826026651351203965253254956044771980633188737989383475295716765641141155041794309066042616357775129329806768973102032736046682392012462828327844373295494116421146507976219457451807199682505000743057066645800018962394206444345896111240332353794993239613548337951875411742419686688145179538412024403069802870014757963242329067612065504983084857358374245189124488948720915007844567508098341069659604030746795185864206511693510462508808704172067056435163530578876125397688893016223624435819153410079893202208723968659228367391988844539724792172969071248265301996179739156503502108924725002108134119034018092784011194675920094183252856147885118081855182751765755717440613574747930419937440383276284696782586480092907530572247618314911374783320704122075982520912563238076700747825730407129109602998151689150337947136604435634405138480498654285840200170583016000560737566658647142213889770534432841916055510488503954308735999103126225605520798654491897298795446826995774291076006741718320640411953892925106055474611758688746824732456427085666929416291282650617893108989923568671467220761880056758610117778905377515703656949754473338130189328707361038124222262813186483490072019735793321898748198360894941053684304713761051070254038885215043688970206344536452469044827338603638862256885942824822840741188675284010836379287557247034830290719480198253600339152552735452413406090212816867946680202001831331489443992268198863282234988352150773031703572728463632228023025256455124341739195938323551720374467696600340069881595216094873266988463971790063540295070918627601055187425579011184755478856759575384430051073787015578089567877368646635283209792633834629479192440377897114900194732522784722073163145111664535749278699116984154530980789723567317842081653565046407026973444820085630268604796628535012097180940286740605024847380704736498891857608101863185438257979902416414987890487265100682629200009344173348260348165065671624762410852472048018532339634793750431535021725965692362985033688790728591917020190130999656795572621356230890864071685267507917901364963372483775238195688986464954266211354910943988682364124077888953615845310141216900558829837720449899868286302692127296988833935834057520256778450191311263620155757917666406631631143448435820453549774838940647429435702275102226059451379819769671155953633178774882196730168410075962571747539258368322912940005872955529559814700347158672564981187696481576441065611617688693156022518588191387534243789646837883236149709394100305524536062629584013703065526963301543213030289151557484054199427578074182508755326405549444353318595425572174997373627998907257155980630739194339045482743069385743586866847124404307171311302299369725396843683864662646329049359108326110686512537292241646754030856130845440658546706424026810402398966673458301144954013965434036798000025565003514681379205557005792548001006792538490602309687447134037417271583026787761399042048015794102246514916682726197808871823678482010238722201115932800529484591706470131126349847406739994042162738449448366608078779027532302657358485156259192019090317408155281739640706587756945809025052200898016133806126860671618494634968927308681449862529094828178544670496132110388018061979139784367359984405450253347852261332994703403496804046940299274324412847143720430557861770587864219556331525385799213703988507979594844851696291033627850091528874708257503273713807120417371779019886071202991303312125510724912460531044176076137702465366664125863679599780780407852376081356840849388652412006226603155937667644232542544969257318697853834099799377012123947649260437003308044819834335659282601798352605061298535066914091435385094759760008999830508415659846494609508871256269883880169281337144918880610965102611319577930714545834246194478676022431076960546620583076816932976341569450286423826864629318261061328135410670280972469670777315821334087067601410530541232410997948499038212810924224588710308405046754563532552770133229655218487223565098177355134591226663547067898745494617430514566167983069585563925277099422717642252949329969626544526500557722066069477000227296119237162357457900231071928686087687814928538539916140225902383156929300352353131153740472007661986244654516639597867270659350173426623227228267138216511329159102444910521748822055546655606048511355272814805316980299777216501892727866477517338018337438518722251603881753932934731884479554294109894878923549990411226464072611257706631418767880049338028504996848812677435669088975433921330928685118469233297080233206102864568219421546253930888808693862251847545352037561546624848474952398641366035835259268526285979536845675194601389243297225205630521463116503130121301892230726670533299220607998995802915924820853406029428063217801884767795083983981724099429626197211390112165643595751730228018963583227038471171620126408035986201359044705961985555783429890989427728875781458257687731741023870807612432304198661298176867318076136545152936203722409727382748958784419581245123771858939113295963026634346313023419192831708767751909338954896123472232895200873889536071867931931071016908845544650625992617640450585609130751712924571893646548173950236299756157001789591390517530990069535482014796906442709748304433620284818555469800853124066515981749817797632353166037704474455854829898253069662089950111931976382577696795547532240346790187880659491220479480234550408718013572212186221363141496290957738350310289142482356208402281545294541676712655347182435351317284758696207565913084525045157513532669882646340867634488529668022107069206781324990406087599578504774882268015500333759674596571846441560591139500755155090335105886087446120792701543986478582895729069119577557748861659308871781432633134692755470668055840520940973942444849116317549688693557559935401156044349190206619574851911410130621783310953651817185258677212751862103882715363447057500502692180216975888360318430214703356611026261040752741168150077643908998143990140224855339850195484922585038093027832028039917058359569450412300399374469517250006011640562652588625467037531150548698254630601805576086628598117697008148475592523706759763042084774749461229230144559718085202405854172801577592875210877601081705065803874141394141054634298634494192967303245181313398435302573408359515677046057437440744673686900068478254271270001831402239164429400445248666151313824019090926465779199264674500039991346641404992015649117661772931634037455443132523176542252315553039420629400353527236903253436787298408786619135061029986909925719202055452949087753577449275194098012658967739960770517372795985436014107924616538834473013915489581091832809647628180643159901217515326579959688643422979867972859709728038005481240770990406601075289467708674865776679030707527406564253722647925738103427368937747517907601033785235272771458833483549164928667048157592642363701866620573328185982728641199251912663345501720245817592482237886706713675563706126304715966836196598105191237850141471148889427604473399959253874097421194413987641593673076619844499703946902665622002650205864181190557194422598144184617706348520931951057472593713043549989548974401937728325912025122158405363903117801897055239692880832727299887611825275828704662857613086007826397745525052193254071193743212730223874705710318462828317344660047335846868998880825905150683010001056021106437888070387889949402322241861622027890668191794185517141536391778405165064507568623395581011329313460142428192168115859150081008876584113580093020061785723089499555541547890471658924425464461494812792671824646837724908220194569927683197399733745570100079195714531111719171854817134339731041311849747708837564307022995872859028844215491953257688791623315850491552071508193867983743324557669147213652827672333281884887923705552854134839066645337649522632654123566105257275375502820878859774368080662744906631913838377348299683780625442921743728067696697425308870833989609805440276373296948279192716044126374044755385678051589627396439450168504490479785941660187675447859093371689218241468998650711075020898207254039133864141207201439199073704481749429701514434721690487849820341943017186060598320660737318982043098408287166453254494245365250069955497802865268760842509193990080384833441109608970948782238016446432981223551969734026439518368696788496303913240440988771514072016993321873960325612923038494605840870767369906409611549657027201888539458737166279391523022841902461690264569128157524950971576037030553504053868415294036418781054770824834222499229717339489953871782985769729864607291478485194709328010382020903307042762885659199486517469269187535790495370046428160731936772804245141643524024086229327888721909549057788624057708184798371230391636343311427412219819880430840764715057518880289642822328594414626796448450952174930242529877526888818603606283088200631468422781347530135905103488544956946285430064852544164298031614326093903937203675674153021241607258218120097335490592529328273537642791416617973389514116498307048209873790146983702649815017964898132039112084415126610335758047272548552777906611464657507462247096023693861164534804808168086409307035121679540494544618717181648882467495450985055504310038629786531563112412042657951156886968380753783087619378624826424001226374895527263409130577352008566566797480875771018570380118132712793276059333429308127242375628259659408706365761693243546144393204403282732284324791189873058055981084820354341440414781913588190528593508890827184765286939026314598901656103644792953002633315409865250543291797097210606153932920622897858324384577134979486979389602071837600626269253660734735187248100834812001393249811997893017413551806725786411578416424761572510385458590120019748631572708718049590892339725650863621385795059406803505865003313685425683933235389070200677638664145375977514445563596778649250722244885291971131740012926921882407173389668436751916859203056848551434643915687010972597286805633780623511893823053429237723228313992027172126298021203043465322078549718037828145707030762657213814763663178720284077603653395860445309588244388384803602343063924863403280248257613350230031948714070922262329910941807127239546127080569180770365762209638933217069434577067017561110043305100021098993103733200852123676253539485014858296664285616963165485742118908209192592864947792893477798824876066231948015822970292195668854520729728760293991971171475358341955542810188214957378166106717360578194455442041226589724158754634598708638739580833157696993552568171651383899824081420504922659150655002487429587797881607644933024574306967602473145366905957440153236375024545796622029426947537912949968000405025280305402800877997423535540891701712237112476688091336902132137465237809906256796020018923967541225948314915011448613205124370659915195354018041681330244842530078829885646403320319150875000831346614007030186056591665429746613772814031881904801676580643944852837045325437415818526093934834776526267833768955758261665104970128089369068172160683730725117371202569530185732334744366263241652028675363828961255653964347695029264921598656337597742416229902788045036226909675857494954892119559844987989549862461445927874117021564470174966161704849267543339140944982959802651752463551432475014918235471672189530125891608940794553597286104169219872444366703158810272281703160854238557476349208249759239768133163625042820898796736935951026333026478989664877756529981971111250689731510305928953650811234658622790252045459921497851257171959541976282708542273219420097756077724382065424386466683826571008278325029316977245734536969545170567564971919482185278110385987465914263108449848346851081392247344883713650254128396267075759589550257153490794509148224655771880286737153737636825489820279071559574065148130394306730518103245262897841586484910607823706564329098330389863309767843816116543395515353778687483033701696008578717013450987229449620838751961232905830143751929672690346721243244133810361417781453206462273714181588335320888197189719421640313526999835045363107355179247723940949381680628672856975085296052055811643400709491244119746491681406297588029416651184300621534481575713979863437648352510936944529970610065134684137732905076376798391103606140888965578639727651734990314900535679223609300643817789566471898964099424621146731441955396753456267506389239173896854119373164623686566778395670223332209271014676677605180547983793700189935401728071796571679366766269398169857663273075494208201343425340465115493965115009223788202898588747494614642849716457435558726895084939551153559783908965900673407645598364775373010964564256359618345158075920766531077215879636726646206953144276885926646192773335622399374137881350980986878188104393472084249581499995303978422849937191563422629773781896590844522808616710755351333742602661412480062756225747285294440689941070248200640292370989168843763204310099102272048463612260879960379428469496079848810322563415380234689131909739871397047996480909375498591121212642605919618051289296308396311610435921522625292475782144194327725380690926181329173622040252836164322070638989611310770939090268654526728554545523441303317409872271692499694133336756215999950711011126475737916643236455459405192883483772137344737194106674854637942845877636954500300609781582754347430925933861827921238251444401739929664714641210468445304868168680768145140790080891030156431468733892885401965123257649436283420364398677751301483814008978876897376493557845841150816839615242869234175675668544112756120375467423216442859168072633197535275621251167027946671414801964765097535882404662953702731025332801516834797972975890588338101795595140277228312753154740236669191197702401007576812442685724531919464636622937860289507138398770375090254472008757493217136929439711187434264683727922709805618614882513318084955823255502679465803094633069542854402718722132275241415538350425429917367117660446647759764363726811374019360365732711114491918300768450488933890978582766008909775815940402604834755113448256259526453568478738155600997373249417491370959264206225529545102736428002635134072988635581758327790056001334961443790927633698610764548300657133912982793960483269149035586381683768492649376890529530606964216276223597501788514144269960787390180386959410953973929179064880067697866166817999915277307453728880166976016462624906581989243650535167763150438002948876802101366005826272449039725597349839734418737379354814106176730762411863950704466885351220111737408227757135297698605676168257207316341813231560655479737490346459761230359061963294644950648335266042074081749036542302968017873575065020567079390011404756486532817563627809955782063325719685014370615185884148751263374929029340862279312912212177595519506305932528275257671270309315304849794579219261918576438262010219528613092190555630096117475937359527054423111806842172465279620101613973054615149537469876420149853353912486159362811560465143356457934975504092466840283009037048640313153821638239357737853546503655817948374378164028009837237144540662708822418077921158090631822427442190150688921167864637688489784366115522520353291743986846540558424923362910681160491201016545530327332883895543744763064879849765828754872726428144049811002034262647522795280652837726889124545836376044864680535177279943325957157861772493988998607432996351776629238401512588667039267463428808837334385366920029471629636009757092581936846295523792392779869332826626073400360936636139637985997355775232777214272686457203111486112607717908749518628730090343788571757030853806054654519277078120843583943019438607970361366197168382634101269007161143474823811347330742135262764160727854551295131831924824559142439520351525720294261788363818127114231389796610359123782423357942245647696691940293315150908287738157744779754980418066607418939274425233251305050664567657032435789566848076095289040465906904004918604878189869475126632081312387830839885948649358298398735060876585054052376662002996314009315649841480428478953287892308506696813971919470762394828417431946559163366364661212841788036199744411284979796053321766999654639725530060566313880472443738563734776943059845762404626915619327427272068036508814484407766645386820496999617475855908169940727291963171531132054980737068780260102880024745060480267997027951326588720564516166725652856900716483754765461564841147698570320089623977094747138304541890240378885299637066235021435549965800881949605835824414113200883753581507861941785569129161290063639483940479192957673042206150696917040014930665542441485286336895268878605468080992020245062337001737314252606705173881034962474960611515297542682563319870480005658435179474150483753692215973572681617522484614944254160109768607661003558435281237038094950948737123945692322070390974018643918494203173514137032301563739808339573858840458714309313676889482986191297861385205489142502248969398550524756816084237011434358521999759300437260871882116953177183093919257986060805601212168194980503589417758394282457335139519701632009377334596581157642222313255068298022716083829010741171554756943964245728256120757814761012121497259314478904447892302546085306480471349999322685388797203964393168944474398514176782660624665275874706438973533300159878317967720207991224582651415082514773502044377215506624590078367296946271960264180761894846417960512505698493059308969058229932991653072769615243529269852008047337790645232512286054148558272765815589097439849102960965331172588496937086900844027175282417883617458138303338697473239207264679029084156113945898817860828805476451721523767237856682809852875847785230307196884779472411525062092509152942457980016372520665454976930916167482768290203664386350402364239620374992186759067417469209105055776135084056560649120190111117147622863964615591806119694481980774054599313823876801040984133982959097859242568415371777967145059605020322195208811316969120340561657601874094495164479877023688805967731916241421965205611768261061832413340399778138574862590737680901936186247640438427562089680499540712371643854639038425150909503993550079172023232090624452363963547120470102596831975835852644398484444079821156536807595860389862726640545699594797825885533095589809950791430851849598887320287482012032557453979081880599054579897568581044952035282831188311413939107025002724968549458465205405403209179502504469029009071955897788287690144444633092128307051717804211886443284368988501711783887899720625419186950722382429217569772853904602881774159403116409947555130765533673854331212752769765360904747972324357471220429832119942734272285775741537522394818990759585381799995874965849643924412908199590975025034504939052923157829656738519675603858777264222807251504499150574499788833306166735985231513836366446385546784615727700854444136932538109592341004077720317655762316373113967590243083727684812618011225530080752825022391607772227401650481206671154823857614800608430416735014184546827553095800228765471801365619270473794544474811105695664612056850845155680065451473699833056936240889243439191945437192840921210342999060234219029400502005108892157983586187680907950174019542309570885822285633524375112080732684458942240678743807899832286248933359710204336067229259301120878858218357058818966182866710330464101254178601666558044161205936130594397231130702855915581947753309333293626932386295181400645618950661696230503858782111156015461317487823846006124541178427725664182102761327457871165568246852021162577245686168990201522894624015477896416212774303007646821082479023437455087372290837759937618061481632264240300756207214584891420645073480145564816254222336885495086299477679150454778826162135898688039543577174849735087887623723071561158973259202226737786117311491921421011363539663670101740176559031753791629578738584890676326496030435393980214978120379899840858429164888752727125605662324305316556529428171558828106187000906660870670440590178237122171914281414175128833764399844670149994485271751597437252484892367275624566733309115750585638662157782113005702306068697609056962280985578205252497531573290886683146562332701408728486082840846661218478063374219805256043567796635404761421101848082653330464790518527106574250281993450942100371335978699792599269718013309355587788785453817566723702759419031298986580650193036406557596416456466324505517078283891472738781067829890058693025155301615213367952336835083125635165419383525747567157968287625875149133971479879190410640860732745157600079920578892372812124921238422783471496797604855614011802356064319074063599273185688745660166652157840145184381291867025588139667590136606953945787676236975879816168178527797085694639338666013503195670584475615419958185045850942410806072004093812872621158217178519110324679595471344109248136328617134172757454984584949088263277790746497917149254566448389307362232712433501802082544097251638656999701492911003651920170228375222794616001850849199158017851829084548642746232368361498322537249371581500106892635742159899450989086570129323450629550908508626659787224069467969724971243123270853056833716176406063786795556902305128792624460456281766010570971904191584400622848037216230320862310513994985385060577738004816582816113031277812744316863344223298824546500291998529647826910251249662540531387554717568925697509209458046231466753181760467464327975396227227231409121319689647895773512407352264354696702239775135459514387054328854616121391108353793077941540566905357820302625092663155196573271126660836117154182785281278973844976991836424181872037276187746662263071456943810785852874541328752721123889707187313255441295858863050382945763136407436566673952923150912656422021638701365809591026731624598059380976152097003770417002853558029166138126934888022041791884203720903034525490493272450100001159728026537759219972399587877591751770668686249183006116853813529469190621414803164906054211461064387795879125076049908443161464045140018792181172809641025789826527226395760714003926675439670637279056344465387439152413997150811662649737511693649949679150861413599389321063333506102905358884891909905711248222663272575615185024738014379686922443267381599904979035210618171320347415504824016008631762981369123932217714970396821777041018746152991654647073943397578318156108405681507085775586285006032650936563834711113306063796940310018660116044678006694534735704897660872456603430938579259751596734212023794520611300682875270122808130502868386878598399144804903981823621237182537814884167970931626804177515683831826969627146944089380015979316274392684397426612543546450322438665729729761679478435934006237374176772650821795914746092755915976475771557966216233940880954005136812233612269214869545808182894455194072329587412958827821366928018141082246517425628472842769723795566812708262417013005537663107536647695992166346304686885023093379029234083731586300736349687557403260156687162790504528214512413467487340625129568265041078253453234735098344825644626332978389752463519055284078669141540450179618174258768709425133662665991841040651644530467810180800722459146974068348076695417090012504747482705303645131131142303447673942439653699101100256006806294657659954535351208963006283812739212042170335310153325210819474505721808503497880375093810775784622591751539795939046278304258242670186811118457772584561932630743333664901510673872782901391425888690311801049401529187630768729895287071270210987463103302774659175407864919302149324125713892550620595858617177851699190558873043878812715824851686309859132826485402101280725350132191918654087522066999602715248133148351546782118007551107250531080179985866773091426745274767764344521147779955777179616255877210926722789697344405982686074539236238198920031270624780629382283109131187038719562460112428724766774592020661199684260267246679131570849494302062916543484910425231321908847768792131084518608419292636478050521933776443574408652958185236465343494884880323608694139341982491113730547767526864539945212457372697160036837728358056044458132911839012025150459702230180660661876820538758374131517495241887125686142754273425183754334595784032037865194346005461707327260662424379073750231906071886456482849351892345775841901613323997173747064830750279345682744989831251600433526457982322232922496117855694952343032453536004201306207520790521905615586130755827865216598051377508482216159129213235851591213642759667081734732853942675211717491455629071422735004251576012149082760925097605572808251925645759064098033118764892551887491223289379115029188494463781472404765701447460729121154849991617988284749864961235727093589335534836588274390475538103188791282440174711015938656386166374564697623922099061911874399186587009255977531785700979519378790721256981307229092147101871832046241229218228148785850259393462548510783913696427122697266408475362994882502949592770801034222021600182235593246126702272835773936090277379442923228355370918187118486883494669980802955735971813159338212495911791604185894539413747616470258107474730990765056325562249045769660570595083514128896976879117749689721404576069166505223113457978544487465458106613142424313146632917559601187517785093316685593603284705822710220722333926133922522730235292805300104800104908620346280377977788406528226618911978480491210686555724493751978759801397316496109087887256877848831867458836346232254055321922453522487390690713322187150885898133054583533715272334454535087799756772675803953700977899124950761962598708791048198199708477595137492900697212459216942828568518611035489994328091583455946612132233487730852520451639713141085245768002949434562617902036455899825950656742937458308797240874710182925004290559758914482738963355135353473550133773101254950279368924749345181650548982784456443466350095139059866207967718899312448003434915702949333879931918877739489986633814589836826361417042159275016454080777631750785900936172138147840268898342312933683588334351167280114992717966929865205050793096491940497543782667252932204722165845457990868793043537896226246642685591932335243996598865656763660309426206405303460488070064922770911862915084616281455632601703462868060501430385844189833960837573324367903306352774786741141040389152875261549233421020460597104888984255508135326847652894459695831329947725643776872692630604196177618605761029733738992691640662549783075553701496899754957054694923649601232241475294126238774287682720480488975425386995071255708299452341418813208360346117528238057602946288500667991503773994623939677116031211385779514892435758403532309313877271514268225100991189051196548114521095640487381042900786570435558334548368826834121076866330067349929402400690268840533233661316012006996833042906733845049573977080785530061032281350706209731070105501373179297222296890009782197823528776320170622624803235751720508379153989518799960576972016367457367515483483530424671388348498701626077903500567774072106190625378814359903153417691243934514463870583441309263027269464040859075168398771813591427422513350894851358170447148541506024525146738246147082288080264983437737368429309381747505305971377198069480941205972963618557219938331941782575899980698038866039893899692113032684706570352210763753391397356812036997637641236894261515877761554623529390643766280412129971147102771759458359674160293223258457394586224802331828458582951257447103353240062054548693636601422929155618750361800998033744286742062793015412361728183268633094724922725636233436466089902857858080591096626503622294326239574769395968897527213257034424656014526831265874073388376028583696564570750747553902266076986059741649066797402319284969208411150092789421116941079928546283883282490264478398594409594576820918262420972995935301993399654564111542227343130386079111884769937131904216407153299044088709956723739076904534175389457710390218922365232811176891712564983941687309356525702568747487086948930325578008528672155895507761086511427706270205532052028750830699115965478681028409144797313052645168656324955703229931410324533150377269515282768640751338777863669753754489477217659902508230669063804429794593216616469771043797341469739638823357678079966552860287074044177367657352320757370401311044120247856496651860954143476972278197105054398456538341440985484517769318470427689636732136982714449238182130888719460036692043068451301496144451340571869023114932529253653202773663808338178075998508681144576886238360789366501752576571382143396683413599242216262309834290170139773636738048756727247807046864971573457200621078468291372565730370464520431451813576754345673465601867006395883220031807065216540362101429925757395487056839340366072168374684649036743066832105525472622028796365668938537705022445266712899170281141784315337447973772470274891519839496442867637480049993948170580420287266910159015156477465030115861001154882904579516891310733872566141544144349366750471942715622823566693794077534118758434585351060573533751526990008852735421664539181241606667866600213871728610706018337411540609599041000925685598917592833569152701371480691428018783154301972425395850790429640829363617728832546339544178932129566354379152935624658921426006356917060589451056566630553355676957204662153683230969074216320333250039310386176244543074794259525645853315412391633881937162729340755385957897907440247731380754767346582979811233274733569087146442838249196533458478812740821414990467798238927807665739808717719098379892832939288685749865841658281482483818522795739469487970347070775213706207644128308819720194064922460822813774986348191646180135034498752598290978051982425051768737973349015039449839126083615090940287130525487055971535944388151466824025820978951965645336218978772354545268066753901608494533264462979940441292967969113802160593734278492511499872065633694316851279622501551443105361174986581153135211171337057036076714124580504946042693555085090155928581084223655362533995307090767386403076819608471744091803182984065877423008514227354156834325508493642295677368655807061651278860412492689287334890862459703398709044074466829614654865102072047686905268371982724226698206111903332722526215715358571626706568544082529196146540949528349559741419814802678800877910283058811066422939554950718282581873375120257092508176587978170764377126100660507046220058355332721331912703314672759255966293794441988106007135222508666051936818095292503295702369973190431868391374994951049709277461324744989792663741580395515652282873044195576947409578247799980848022307391303581806014251894312718060679055718865793892206945291512494654764648299139019936595687385776739480334027924546402391675164740314527780569932511700502336913447390309129160984038093811895812006246782926499014063839421520758028670362848180403456916756056234344376296368243737273724221103310904960656961779362582961981894682916268479734004203800003919009234762261655068901797577484494312971575497351692708238460162811486759331557605359543698105440554335109822519339718665572807036395456186507323799270002221605757716266940058214342886280377757544523448704996740917078727607719290406491180805849313728998269797141436226530260254260165589215221469533221472994844198004245021756357527339820378344837821436482227419639352399289395646375861896393368514825968547631145239545374457596513554282352483355811297219837772523543518761243714050242199238195109045592012532635323593648657744816509970162498800861267687202860486237398191451424429872765926409461562414529470868272545811149756383362209545600261602995878551952337217974742258554852205205591240628523420940895517460878243124620571186640708511844649286295871070586364185880707891987322751840324470524778998201874240871552747115835850270491884084915812363061851467591418536829811068962594622740961573384422034913928045525495093803642284360251263705825190404749311247272244750368327970674146596631922318560682083215725203755100834761802297877200140852822596911365319976216621463012232582890818084009135304448606448200765183711430468672575319248523912653682829712188778370571801869914880643262458362229098666415628152424869120635731366971112189348335153668199200666524205014945816346814242120796987159836610973955690458821091685399559978358929193218437275138808973521477176170995752170056938302320492318433921248344128031642834832230550105744302771764107741032050063605628559507516706751294445042351018843490321662594250121796695529708113457709576346093388577916780937028832795693047380683530288311162367229799498116334389255707428295253799676772966020569085590302516730766648435347710309913702690792573800657108326430236712314283421941419649770013406806783660777544662638166693155079511114299713472718805586704607567028525306398526719609189537863655388759413755105538412022714797177719275839227270589397869804709086166630804213310115364720669708281563289944990862769810608313854386423163112333333183257716171479405954470358708340449689060601582352469778371011540782874243548293052921773789869375994899468192489899923801909776321865120229159791236616161379854822974804995485971483316933077293606480654863156305124801433158421862324167143477633184502321245648375126382808062316807364735099653239995419523532112057854637906930833923812798905759491728974934662033737065045279488029207065511959461430409791884479677997971765415462797192965075917781705545940273213796063967806641693799266896772379972577180740485983525065309463116889603216017855797589655591722836121550618537407851381466809485165015372657282790356223719073478226429910384782737519645982966743937669187514552902736811340288377427356039550145494602475574815420296240851004295536635553236292364765001657576093127150578542719524289040863667953161965565485315407279999591430072075798882371909152064800934932450969628281068390019176817486291118357931455127538980368105767596419834207871602822821183153090600232647364166405049046796544373962628533794450343588639938632448732167935885453681007739798106832613105661816235005801193165255228385594724844913257548978221082179514734135865493165933604658595557556339501887109275959575058358239679255353431108306370518645452870452518184013891643114340272160648333331853225985087675575552472040316494681235779358628006485575844041147392247519790104504642709571741772768614172753629159389719549888925098675658224606949244829450320663697658071264888451290550150266658926019669441951232695916847004094516160035676822375857040715823330599392684299964421609860947711108568758853373942884693203585331659343459870917846464700292514589672449776742767994041654735255449154367355578196104267986021090018196827468460971212567056399921377077761959245556024401745598232126133013584802933907838817765463665702080763858130175592374966788237407042721007540815095763554396882975193440847710323084117146272243738432446506834821829489157746497293962523896852438123302732473397086712649672998544770824822153680214501781566189566891929784385838221238421460843174871639695993453601536578757730679068929235337315020769351909843986021361196755629340466172061517046265790475768903635069021443777841821129796528178658552252312050977312021620801882383251262395434738583177086434020631299467573422096827082814020424158259459226956797481474116138401748443195281079636549059392717843237157224970408582149719572005687726955349963653393301624728830295733833087692856819666119624857928465611958769498890826169316459388541345545745579126031129549587056580867189145880501152680030052739172300282177387541961172634857034752361309054277223860820031715980081392510092601889638246297709548357911945172735995343596305163353105091728896819090227921727652213119352852303594639323777118333814513951989144833262366158476971709640804166538740555382628500063548405816993164002517451912723770120521824730373398063008701311105165120746342450788917780552906340564999780146810624302280474831096679272504804062566400961956785652785007925387140551782026688147893417781641970672557997103643105248332698691228871113323008900247985826379845876616695957205275501580926368723471133545244070649359346880148603902417237946973519251955352624585246968150851413237418480384057528149463848228065093110743829436085148747319479106146819158000603671818098363360475468509894373438831933096267238660052843756383485679969420676116018844945624014856615321123115329736332752561233936933687663436879093465330531611793471645118840104677195598263200967106479471735535102887255090545899097311016443504459253861240009052309865252620175314282047619295204647807316131038450006968496990803072072542431199494596321529740145845277240158948347862676517904229921365466578442571167251296941899630155984499879681536359508787527952299422576691010662594426172784617346712795552062020738378091681207174788260189218177629490521385275505141131326372079618735866225335539900402226576850885009526668150712522947806367290160859206140994165636354899927355566404517450831945205898869076737980702938579519467480996064633509200596216913930038813845838827600061205901134798009143637935291406124145779444865176443737526011612246097276401404588274254794330270948605173800346714500958907827270197604620502816415285615602644219476723486760942102994854879197921894742580074316665810249181828649586595084406985034565154138845516682315483787274434864369210084851225898837423509009478681320630286364929749510562936382826999984046566132580219185571307930139376994608760043175777159797615680385157722868346492047167729985626257679542701931867379613865589188009246534518473113088830865472194419459464447746332656204292648901858358621478962591988283855755582988484334691319460560540586237082750431216483320885705075067124770352201062824541337516726064130499756993045967004351749303115254725957678805492615512210542154915976480903882502283268387490748695020332649853791766561405493961649294968061830620260520886994302563590694819222583878160409445453071435425571175692298055102912426002338525942520619836715474991730311478354585090355837707753735307793023806850848440224531067436637040912708132704536177204696171087857514934321891185341954066234422118427292393382053951075276067496166503709009122460553418220520411991803158071848780900312114691756661093027907647325630642334223725859470054096908945087249895570007660274310910953909639326259469334856463478458670097980253838488393548113241159622943230212710885688215421662507856762442705119478940726493044881974183562071452228440842955584316370249893502782823514893607730198839412607740020145718890368917606599836927727034249421161870587852490443062572187748655313282700509538521495148615954324093673930157735644113999745845485069416324897586814825365945058101916065834106012277808432247473012890001109182690474111235146126132250502679303334966950384803833714401464182194117637156298082603317127554160302780226306433782106282658593185177704192002124819485685097707810813724231605641750890767218293770567071721834611107875352297430957524607746987787835910669990864625743518438835359770056830259999216320172366280953917043529266491734969666744778170792216180592247590756712260344969983381380266180032697456725173179757734730198014784805805730980348755955168426154349840959866299146896927865664079360148984978256833567870894181465791337129212261846840343696344440891103104326336804724193547872262842468119568065244001005758312890508315014510736711755605472367599170076153140394675447427066682198191273235604221101311694378730195779410284524339515224354926377469243333509584948534996935296958538272140658119509527738041296868521019344973366502686791411535314258911893384118272731671491715769233177518817217308234398989074265816270034350814788131838930367795307200976094516194444534898296059213718164578079930247025752871446515880739446211284421796459342268756102266934979547417642676584385212743232267938925848102319771312683447343596091184239264370307844552170771740472258445182298828685258102009203098492070932169808670164568884485359992450604277106264207919369260220426040345532793194842973790898423953243304728054350659281577614442197586199604127862965404051867303319953290641137939470184558126509049471990454316894684778472901364578355653372566952907662332025669006868778663561227499292361359771010739023369675990784041433607483362213189582099411677942574754575366105618773880237459068629324287748938554675255854613237583896907734059028889668894015780259625234598072063707848861764410981705518197919491598775388174094232705510486862525599840329116189334503297815263609437270891675519569991044526071942179646745874916369181210979817578103169017978436760481837786494441772355679739909461431056745454640469499859080338598119763801770459244895196201441859409031164373831633834972808960115692021967235031896487802709654422713629743720700115459612068331479876969703680289913535171854295555716483513385657149886719473095750585944007100942253541703973773710588775704080245002251554803726579057276854626004536526461599870519964153638688371495713198949833502692263353962779538655493404255034475889372948191313983712278228233389228618908162615187174977675703464287592592380347138510550321782066816225306802870645239971385087144783586508623586776327104377968812910999882811552047110378296758721314147535740064662486233452138122304791001140970718372832718698993914743797909877356319869185040407074505932377030512752203129953311939775983778259668698848714387280929996000262418125964588568014473214183470747678578757446886449348350748337902339864531002993107115868082866695277742101090042233271671163506611082844007647371252345668552610033259798900848161171451453868211312951019016389223643983153024079440001725831477134853713445699418056054770111768138896192901777139542888487764519761547052006408695224464925392646631082780979261956166587561986214208607052388951528274042260165043177284900308984680398331655666435163345557343876343038927530611182381699194839301596218238900160857886241892391344951962739225559602093613690974175434729344387674290482972161287530996343355030780632072946342505455545146781609411428686928862585430658740933857294267946517667738350200924571976161706284660749632959947204885039899619849060970295417206992062907038135574460362626057501062066453397969015324435266223265119987957904907160249940245850717666132898670241161538039023986218951668723804131127836544022842126062646726337372748315225746581535660831718232058728449663239401651168050241686901649255978087232208408342006451986585483112074460503885522150425881770719609611371140484850569578297566001085037199260847720369947184029608116715546711193733200135255587446186902289337125647025480298955625639578871348392457386490350936427190940642293441204141502973665414098817799345984818237377325082322181005345662004507836960742798814251826720594864202591767491687251546595470137623520422416432709425523495686206808995809133754185975122327994090088450539336301963228396605700183093356693548917361685592152310228136992029540056245156616040733088973500646678927956469921833518742697503817737789753150355720189407250077789681026323972818426833769621966243897721368659809171767777058991688508372509716306185254129639018121056944982274904159241148535138963576670131716214263750464947845505666517103801164445624594521719461692704463901495505941841548059110902492193158171412770154274347920081093309308084920981775919812548238670332708611830001018497821221355105900263798936950119503659669744894381255067781143352191985469024416914474122371579633542213447796629347515966455699972572034065628741717777970917988714681133599571538384904060978910347266284574713098564244758556800889271384954330120460303100397901593700482744221888667332992642554665910550403413978489375344752815406431421043433030886772363543304878014346005997689798704849425184951894728630447947509987020036758780175056891293821625065405550531616206636990401858623502811535509098003167284785865540976954772481611017433476512939098151432012290147501642194880767999467272656317134063631473516474177788181207485171810355662357735559980766847155530144066935342796266418007002480026230815609629169627872294680337727127169640791397868630978715695295039943856920491984435706817668059299714791860763793334302715974299401795124656428318118978748803854627563251300655306836259701918783327610621823964662565718084818734582924171665986196221115785453288227990788009192060346585007721279975284991429346834243908356423585071255243191021919554184385583259746492610875329807749474325269092451979585790487870493694308532598428173048412544515076197344313373634428079327688521500188782147904034630026968736388367918687362645350860955916175111379609655093615924568435345622237314404933583361862526589500734038187317626405739475227276897410102677727842651202065986371354994741512277145340938974114961436295190902217334449083713205547024038971735211933668830776465434542666506594613180464420489093499345443772858436092569048867500015159382543769998410875312582365797375289315890530278578226498494735466378606326610373206438537132983554045043397329564284668752166166184639160766181317982489734368043374964079190062564297356222863346415389170305332080504351284072327405536705616172658689577707510200466974720437557737749466011122052470109712423410774306010577582648484421277995064546442175957609826441483765492231570395067109639193581056684598814556912930950150403852381031612395316740559429455218925779644817445775434867806073605451102029409598922531290355280302837245528478209339964123074590605612483325650682563695072775338889039053659938862909210342503515047555577102526601976211688856358784045549611289208637991677692844955725799191916298338581173735884710924215273423984190421058946256775229989000163646123811214253921256730554113762392672832240660306805318578703332245354732516805780334663335227532784421116401020697430191818482907870712357969686660508943475471205096485769434443959584548918568106693405980934472691794420369557432644027533423206219768847448148900176294733208513987707146055512120482816164657106581244132919176589519854709042496780176372658499605827238094520180301786746842315965250353548038191020193329081023628236137787086080543619100006803501880290498749151254634397003896139864217686374918484020483809848460781036489376248663280320933132074848512917728893077698732033968435586190452925250100517818716511961751034181028547639629710624635980071455410381881977238955152492833325710704300381675562765712920209115663299828789942803626758963258216967322731504230147746178924226165312277004025661076137683463437660682717392781447419503152456395054616854759991633854340274735094379028554511710127504943112965432199670475674160354347198677784781128610047266519091661632155120498513511976040665968146394239919972275057021461411426926050237988548841101564163463629613535448204366732017411621464709102758367202527523072689481248721332997637641322570816638532538384409078805512940158536845852867119923782341223010433132730727146295065871694223012655590076610875687315340144056194691164679316253329958295193710101107836512570096831389792092530669997021329639955088390420701924771351351593755164259220088961366687987309170567211234421550180582717866499311376938355403999669977117730149198283747797276418960302628294254965146758428921002787011265799074540004554143577816054127994748322212287014615360964718715592468122699525338297516979377490619500199868824153950549981481763946805739436045178689110418072599986995549795837558257772482235495733749412109640535691952555616445320967315400096247001492463081476385765339544196633781507707550185234979435197484008019692385462434570682956180409158042792529230812449717816017540933112284945415204018650898620264297079840430246708866082721016907935615942906001021316836855375336627937055342366655013893183647034732698561071552379297346028189394592212281326038215823474164903349912435337098510408784613564184223490160698474770442798597176237385602851264674054744123334991957877403780136881774060920979741023855450294523925532927130688144694530824208738844069632789615640555899237387089848349934780049840655048068884149636030975674938192386992801467219029851886814868912476698418482786806557512797679455113362186066941952971089607983616044667799207016177212633911780101720741706297499225333681934628124955341278748652739134266209695400730077973786797424808614418678330145989049087180199947448420589679780647030937857829247721900571487383276834242142602468206324367138902368644646874005519223585109799250382774297274608871715810416359898896638804115878978670332096188351078906293523284774608958829602900172920037807885024318786187848299483639148282792982008154264585983157668666991491313391068736761075393247306060030615903926384626710511579618612878504175981548656026097696229278776495669812428773339873122766671205934354961383602403799828421340145111375231202934337240963612610026495550048234553904033906765367001514981631760471527794111476666221543673418021662512240656125633921758546937985958857717542668800556807740939175537719041646739218643059048473248826643011204176030291794693529084355901660533121228784781391286476093614674781724277254227480180853979019001913771364601067493622703942149431267280935686405009217338846340610378486866461683307761108851801651052136828032319202749646635405548617638322437923392247234058406202499978502177226369539607189597738148445882622083120774035632496771805496889479669603485213251604490865482877256161324380735511521466288779575968544970785381585656280069638501261272690474748585107548750732761140561262381643321091231773583013631021842138015098504582623610822758532366688032934064577001979059284167556880164908323608858059445432192343916364002055340287116074469397591360077170626744159221772023554425835203598899753834220326863495436839766897053210116351085450713903033161292033571762835302084546289145749908469922798794751225082222767000532232467073165389606048438344308285228758061843809882640760803393137125077636312377518470481773409525653419351448953820227944963672078416391904411976467579401865194555962661992543369148308302641456004098385977339499975470029519228627124995950222330477084718994705981504106482548700798299697109242274582782659916839641289015766351243645708538158459507539763065394468573162120523438811271247291339591184821967514010812376828627531913115379749629583146822201495246347012401514354922620222706416941712057421147868142337350470703057109484272933467269172616760963884880779190864629066756600308355901402673615748894252379007241489707212149841098382055097696121501612710214535361521863550809754068858538051364029577073675116771789595711598243572098186058712040308097109511275221773124579525631450809911127663633200325526304878437940919208750992249298107456934007776111823045692711534061757926608518571978371067202286484030937588258245635488660311194398917975845153836188729142124729466427981730730298301646159715875594611611972181198617113414292294265518410725899859007099375320409508663911837582264704939684758802434410718075841908173593789625909713637223208859971161353676707872699592693390288119281598276544470825112333021088777398388967361890057094083955774308083574319078360174444566051890622031032404741136244988129506746640364782027582270602155567500128734698062216462610888738097308125839246080353847194442911026161656258102506572338256803013450747070286563510532383746777677242422516509340428069266801376199311946064435110141074365018844075251653961915518288013406152226937284773837890343219202395493626095893339725195222006165941029499772803235862688983303866373648737540151404815043556608913718414938707794198040863681801561908895062763906372769102272694916069814447351261875143114908104236841203712546525743405895622438531802907775111172134959577347753586048337811338821269275711121032568918047071679615623484471577748660108172563046713743130437420858728946327606233095935338167671425139034177470841445193240534582139102955287041462684867698702074015368562315007305915428156085999198752692698597319164037372924528890144638258067674192020741279514364159941848656976769087597732271717595106468971707868094936671923305773254354478891055514804648592799210750165429496975216367556395778445749681483052136232671617727903514493092505938523052661248987515035147445118322117949605112386886734063564630165823923867047621561020271143209381040491135268464609686648838698845500759694320828856687221345338286472277624347234979487749809266663853164874134593347158447020895598397756630070985408424576078210017628071441411910947012509929177873764207352091614633249060349366088423218294970300363951389646567044334760544036937239446914216258913342734766801604873923336312370107716562303127257251274207102999950337229781293066801011675528159143941898960551757394538792102040900712888025415637520563038978549132984307923416992149486705115461599723268485361955704139576860047212914468847572838328710816117040204244119978844435939547259787461923163892317077592619444937148030494293221672469398487988149658627050266672724433783288174793293505049200187411275974969356351575380649994692127091453630437462930738578851015493694818861572004500940743182371129166523958419922777148932518485416196660783119146797883570161192871123623835230032573587886324495187879560501965090170122094349214817604701810155465432885520470818048425000835472771150621049955867424286972188273895732302728041684951159484856009642130577907892873679540456047596783343954365528325010176495040592217247003501225157662672009943758292793351704984346634227830942671602337297928031575371530728355307254129055478788548950504952040311430882300040272795576129913825019488157916437934462511102880724402866699824145928523472061167740101225784237849434579803257335287882620716920506144069811292365877161382627275796806743957566055104515055271046544563980757725970687225973946674804851122760911329929883892385139734457906852930350685819075793376733853848422574296579561896243796291338248616507134288863298888739666192260263819148836794314551896621715651685589395194945460154927857636305110792737318726474782930865346938921095567007060377798835421906460791350609803413411819700517592553904980668921069337268208812391146978703265538835427150810917651111777093347413612934714539194760468527611953231128066190262896588980797851558205219619983131131842022922212282270654673463487836037249541641589615057128745854378002595719154719595185400501096002031996899971204437591221075881827591636089978301056691181939983339088409395233897079890353753483711415883474550412509240918700254530522456069570508751566612598621123538580026500575158093899391176065905651700508548714999430646149008241098299705464904704166227516306009089683387538783802041355482399951830646924097987437203614970738006530606708251388472040474502918828006052675384396489759894599159249264776433358569004344739729070898247081531921545093247667241345804881707260933701007874793180685892078974146745893270304096045719613546436573268834768976922037107623977546876519169547598681176257007975580903331307874613899075186892797182465921294709407584798257836107977007568635159683000870984220384581284980307228325635999025203244089557264961392517939053036809827341193576356478794009727591947347907834942430416865278931365428232255025024453854644787687692437880935256210954490679523150018430467861765087419059708642333607699875312470041053428889210776940574215619534297135206420936197682076222726397872886987466768352414387034186751173849794237572244782296032188619221546538566258164103999101398471850401295127873547483919737476093528384056148043357784377455604455739142569457502169142614317976026248166092766641822329088283509001269116329571231993580339142266457579006931331108608382824119528014735202064599576661246596389773807637710607668989101337328607106060009612736172024060843414202382312101448466324538658999332760285401640920835657926142376711552307363714276213319900070255669026145119986855075506994659568895464697328292867071782813521517947115313658174983606993494653561151569241916074972136067361182092472840192501331464037433207081268808967436055623497505160525549197005881091963505707452210156233436914606911735167011228821969230648221589828610304303481404853481648940219744353341500939137941610404877350065042401536216090864104158731199270291251848588568172464174328255782708234024542175313126053272575264071177087609516940759697394428515437301815166904670848182869524438053510568366864991611688283394853013370664657284567705582129605645445973575872558713366747194250583104635306170119549401191343291363694385003567462233408949660934291558021746795830831905442288617164935188775489719653236408680662611828714883420870143508824470012368504483596257368900046257776477796352041943846116229671330322726662238779818059106307325949236463660721855415801505747176025047137076320435099688505533162968662885387877968250625207656144912204554653164896253677473865091749701045221292635648542514291473360674826640021855730765790536008688122264139343043617867165888302551342188210097240092598088619893024947065858332049344867823517991109535791854847775279741796330690722002398501463298226289441570790245186227594197157554294947738199063812192872185441311242568612498790679039792212219187409257416740578854057938904475456913408493732987863876476050718910046967719346836837998164028469934230823321614076766127179082789138735917412943875360615761295202723711284977713833662081218032919790121006356320008274138696971905529449040382033139299222969928273962016268794610816550290093740141694945552887398401650398270715053626773512969996418552277536834411501118195361952097557537411305758808645499980519782886518220489497542398819152429030431636614203866497343684848958255389854843590892861997932587207092397673956209044519674159308820991698772856201803198014031301025379676620707409442122608821123775920291142320076762859086535455127347343479226961393947952874146992583296696200782387521813073883365240387361669498256718647016983844749379956263400963720822319642561717342416187315617900217204104397931919401886579126697187174427475327643777852594346469408710002523363167690612885927491273553267128816160438139525196517668779003648097615030357699126016320571149081760978129734410456876593790010798368775687040697549398512068523479414916574796464803095790242379863915290333824093740656179095602297207802881672816807307246680412015765500456836777133540140768429623984415538543236862147856155125014865011761993371464950934788243387362379446022900725525098971904812040417007824819868400694687387507635524064274823894696366954843192478728313534039604033214052985151475974969638268534850639796108145658924340644043495810229337494308855290164957711654775233442922519743321474557391231161572733094919984406368181458796216322576079101366179074827520973885476044943027277100828986816199184399811143934251478554898841827328672067758637073169242828890788781482570340461432791855633588884869976591645527841278916885823429411243901587372317835034166841280975130777369337563148125529835654330600163126474583796569961501840409203911417821846107691452568960164615741468365428023959180312008055454622078605306098385581565089266079937683052065267940502576965478280350902448405740988478330559582336738186769624259636645939543417902645565994427123239519103567290633418867693796140143815123190858576975195612169682582742472099272395730599272373753725006614776730026402987863226941829744746328189717450993505733957130005665035069489033384904613080474071086576482306416574171316074152651503757361363330690386656245154024798263970948108795386444784234379901615052247013682376785183185719173538044669537578397825914010667799078997238465961725824639156978295230650424514616008737124166485061235339316073067375496936955507226255130349643718573179726336871918281718237039218585089382595155740903357220843900081101143699026312483934809601493957532441832103593368458728192237287863382125868750854078284022465378804101925918038310291829667224621644972076290354288526866089460151795664665661897808473609504115089813234398853260100724214748306247091490557451081865153682046543412488785880731187960847483737519312800752772261471776740432660629353397046358618408093172035660377503368015583364455071758726648693292984319841814277999061261662124243062304235157821228448326776771529562391552444061737599035768280808498065512847026095246696709137231457732101599465268485519416478087648976489592123179719811027325998450405699622038485731019544484761285830453277679915761630910522917328866288087222287514807276859235908956002325592706944757328340617658506786867040196980713730370069916460727400375184082060552473983317264717276963066657851910123448991664788459779123834098348373486271038237603678769117151350986796003387004821629531586216354585524277866066216842277114504333567530752411676937237814699330317818331844380916285916527565354165653935651385994560061753912573289286722410792627270744366880753426485502283500762516220596060046121646344197273996610221730247433851298042567693374742252142283878852207433559217578680489728125184140802010914354571951507828691528755796053021392780874754457032536347678037592576591507742769328079435990313671220994603604621113414841954003978391554514585500781043148995433927327521995443295759816274717124973452768701353977638201440732460937227075565908529635417412796698332362190892419189920408312459355839489183701304679984296117006828714612155138521471751860370739856271648405740956699247594859736151289583591918932302330271630873194818923508377784524435212956844937922525236976900865674179132815779012584127461181348885448202818216915025591365060703145619832901272972320937559151837430694797764542337129541622781402551342291048951499041024792385119983430327179935169077838393711866669247358724554683435360567659511650146282544896081464052987451757094640539134080829614363014239916713718014326830371639842111748743109240819315416667242240901276373000192760936282384194049107315664974766671657925215986379977575432520019176598148762081894664890036235686434595420571938023270547504848775956736281292825016287502297924759138846275207579784815902896187476005541529282578863267144695409116760197544735695024077231115986261891098730409707670398305580718327261984111355495734364950902001163924668568160221395286279885640798382855897106487138433030513980359618488930504686951265960366678563519340197057435825872115361849388124037892125453739227723373277226910072543829371606324038574784114698923785385857343416815472733862108022312353269827351977314097572330963127173935862980037029336197181706706835541069781489800283746103839382014440937163110214150409224178172458068402216148659421592234943319502880020721786635249571075964641176428134366343116599729663113570358784883663629707512697823776775406319462531334843931242746119483524804989629511140889864696805759713970040761906712144796684971918607377117428871430791711931845134360965848380788589804154915810238364052058276112173347921805360009054132427787430192451036621966209670745823267375988552913074658529454098249867448941023065378335958003065656834836362445309853189799505961790568547727759198699399115024662063408794325155675353344106201529817066401421201130558076681507948239339083109063756686665399725120459903154036121929538098898663329711501196037046431880494247246206979620460841299424584626019069526029599531586830164953272788165292331436650894345139048348977612001703047007477682276213779964011743242427727395441262136283577846452166859892192627582643026630141148348915043483658468066094174384116708221419900762176866541573691153718625689885001330550725625944824452931676951523200796107598806976543584272882119873767766282232734528158306455661382115830111082289521256315274195187263212649342373283120911206057573716283843523102771631803212792485487614445546730592445293485886465471893565728097189841057504196974348934401033527103047227006944341920065905962695851482237171758564605709627857686378606433750942654659508537926213288819707307239457830520906379015816775562925625114409289260361939804019480295561592425611394559146369495391639640676239363827315153622561871749534509889456373215785613740239199594855984295031277974891936329259530092867838788964107166019757057119784912748728650549373310264376569124434968196626438649627816658470674647193356165823136846024273126967038449257928372000741088606200003087045253368302939579422038643862167872605770022834477754116438146493424747074137050405970420591199024359684412905302561659100416080465828811811104944901163188138806841299151159211865330255832519840758992160208620547809183653224500679223029118689279124925659231906886760136124954027090166033027778369859473602267228171131076761434702299200754724735922488228140654132584446165472417755602902824296853293392662707776532814247395989983270617479783331110282020370098209124657066114804143222408733372209811033127234705401938434879749569655419881927617967236092410067067172773780247190250218303030407143334775596084206223963432490649834590220647385044152469616828996417341352536196636527737821091873138783028181801696677008614086290013558676050282879858300465932261141246006039134025644168113085068386508799373884735087059808894084944105903440742497226087416423288931417322525125978090352833884482108706650887669099963453243622440425714962213298350358063157404253726636453396487480859948525934528727942843541262552014719758421604088042800984081086728508603125020063359123486441063053760154934251726109988075349242240351790837902695965838149834883947261350210844790184148475996488508471373078150400605275337657284573106860236310282961056409699524649859683743930705393930717951813511166883278472356675068168188153802863816089870418107595257386172843854227140744960003768035183192633078818793281837039872201970288384938383798893611911361944469956648759916936692112065638009563004208858411203452452914916591604462819246775894561848414986528889664668313973249480734062863426288878961971488140748351871739938250862916030501282272340528307378923831062022039541961862059004358984423014749257693887125987260661142389535230507046181201975790360018608792349328781405837059392258099708919702122277518837411875890816832559015534274963794052277789225603403019012156047109005820227797065291653116916659877837444744388856264817234325243468104527815811642004307173314544253691369561792109704317296795806264383620162257283765638816589929307739725925307824770554075217067985412711937067441918738001008585632144336759686984031749923037698607385538449088501182601801383706267629854619284399468716308215766358032949497589436482126468967458841573823287933361421502375959212008818782418164999309722882921768683885269316056724711239843436383794380202906984185464334634904718315033721842852757729044808588731567948684357720495610264394816030134691865776699377182289024978333002077710119995571030170453029391500631904309452776688501678853411698458474670480861013144296472499366785646674045938348967546272166486225767693674313193161665831928860938755641797325351474483975087383012810361335941342119913211140202823124829732139452797439010831166383947443369529979222630693912830396562044315080126438365004909972720332982367274366064610358579314525112115448058650910884188784481463176960843619215265895015797982211471035016434780337423399592224797594406727309924469144337004333849931288543341445383422900811149473900687281166408492504119828228905948327593778778091044787875106519911510005865366302542981038769336012233063761631568067782008097950383716440004331514512643902143326838331932402364354835936653943461113552759116973241423837416259513468622956573147528881443154800637513960657007902924450127218784426472800734841172994209520937963447091947131699022848561372595644278856662481654893712731271980318639576828107863252086118153328227171170229396193306147208597759828160979294304166496415647054717953940916557236650395911818562630393238034542483745912594907733064383569895267495360963582449406871309350335565208985922848910687001516246445438620624396566851009592975026697023042744029223918190607659633465106339545970109396398135463439930281761048782177901090153350543081460286430175029417889439884423888907608026353648253631288751530269942701883437958880969219202566594386048634264825818916283639829445705040754852713683636501878948491993565090053695510041231380345976756842562188745229027057972380499595425998304308144238885731040786653098422388436684969226673094393181345376001483983289721384087153678598612470141038439652990179898138294827729565741999462387792588478510930909697335795180440371429459310073427839113342138098776537559310837564122333130802510713147443969198994375019555107930155326298607898860028434986786399290473166399275469075873296192815213991229263318091680276405587165938713799919872756963158751943838981850036788546447326402017157398312963303402333457948400625555312577021988368695649315360531708855718350500046404992466727178396960050049545980778109572479567167934717615925563422924540117555174145073165817429151103368786309148291751680553947958719785225611670762015537024881380958455229362899063967286946842734330808146573230331084271699291646437312609761845092253433393019837916258603943332587017802335587993021866868684699659033277904879443629577397530304104712598219848317170743035052977418452912644360422062416493765428113491233310423071314109440775102085076323332934770707675623756358503840924152747724760330708784154627197914591366910315953991820551719168560750739807561765122807774362653512467071790919084946294127987990004551120748052979600101024617098091234920850835695469581077348702719716098117511773345598367282907404286405669834390019158379867631093262011312344434415169302477085607867537397593647540504529114992516924689939419666332228935194481967064043748722109266854178690059528524701169594828211393175554134909153411785225168591130485945838901319299142419909655159315736988196608851648747517680722910121563037248761506015048452569789885366860061031299488462303675221148806657479296061478594524103875121676829221973404420619366800858825766710266045867596070301536272998056597267972244972957440918989519471696112938723159183893954832281377464397843475125077254962160037623950728642379510058352783513397059485590227496066056100269049318766621348608117556376136194062915406133640460147092720602968370423983378022829458069334044446475310364561384446634120877063688198670669931124687483587962474415339924776082444058760994656559779911065380557038615860293338492793568007989489958312851266653206152179500138871760538981666019157616303674211121329135317911491135448175228464356734857115754579005418875849855144546228707974652594034602182258022021136617000258925975878258542646978719131017129638083651663320989969315273750059121167687953038928962424885755984964342240699239256933760300802278934916985892989613269530013150698779394018930519339597177737580173503498404686134531371741402785202209625153471803397767959357478869597052406933559042033637138460458046774399425892607535671886903248768487940966013561177647750250476970148303766320735442491350822808326666667545269018670638331209208044561627909336274963747679214425322553085765930184963539277116777120927038894805242115480024078278934669268044185728994144456709812602848655599967133278899728481986767274338487852283431248294350157341570333006628107911990485670348494923731319029550022216850151572005389108922343442226690781236141931613818491730700918249871520463410057072619133528583099665070608074913325129673460471613368545884918240968151605940716416267035932140049483727299021324838970822681658972777821663961100061907644102574873992852875378175430670410902333224683754795346944940774995307985642070487630784845560486928440703604779379670703549982686258298363345205606895886590803699405493702048365722744551573933102339221169917924046054689866535733685992067354408747875677552799235541737569030238498247887401860155962214070979599741902451198873402519213572240595197454338677084281568559722350047971689373292132963517404040286235919953248956107807793744319737671771249687455635958248359712838704977203066757032138833560593382155827899640670804806312109222289500926807490655387218127521034836028965250187955111353020509898745865053521076152840435946743741251664898240505056656216530923885504912927488771475217176544056944564555157893774369146907209754488972698445640186334590643296135425033925762619060009688315532590402730838258829100134724985825978963222774859072614241802812907623381967986946657668533565973142946911882823118591442731595332454764325549925495246216809017858491337352235747647440694420687663814421061495266609323324530136587100587749162205617578856236357978109043315905811942432070604726734082578940578921180622111340846564503409548695984679325360418475812721928834082383897101666226577957913713187479926503139170307241118715481890924820715455577397430166840108991044133420655234522157409359957528745281433693615275207454727769086116007817686083723995998845513499787694212002310302004135123831994209991168401339552300308008843532530007829453279674732212740979572106700462935740484363967342445746346894125488995590892351992474423086896982958480141032377594335349691406064504904336086382905611268642546965643683241332532957153684374249289582635261145263096519280379007091753415566502421235526913576214794143619639748659177440018752657772780737750380434852026083339004323052906737460093310391054692958406243966116180844700648414632537556672904520630978693839820103658875607271831311995083175535550776750470427085530546590108866959395866351996378659277637888017074422083271384599897346278449260733467164999809899972882056147760072169037322181154113481620441085070133555100277614612999224131484233883754552329757311324101567281161184326161891040654239931766769912214999760023117324878453972847898012608007603461800403557021487442648074992958735101257412777758346041686800017801286738154317597796968330740523752132576033445984321064237532906278245969491452107549314745453502129536997253586483724830282779278991002495365814489609695885519268449982635237287922143407676764369703880435899321125215777471199870489697665123929784658833772681838453715449883232591533216744615135675369128338422697571622033603572698129219147965967404584919310708497214762730801835325586529410100233444305960990573304341801755238050409948309501898148993484499895606292173066004039700266164662272362415032977706956040693321242879362530991782504035920264738763060841506341925141745149847647568873485584511854008706496463645175758297009641967801315172747934222452978862895198925477214071104488943671851311797540665343990095052583395309633631610324362480572997960339662971484951224403496594681815099635115116348659369829070879402596096083067123335706629196897119712493355140003626420537679472457567228425022955168069682761093528712063597661486095765128755193467961031344798615346434569149769520560591110633477778366174017109667622755236767177167539424795245203589581371777737405642570877001863362084295376034257174071948298275856729980287586999400407534003401475307025054190362928837790970826060532336205906311543359779352148613318858972566026565020733769209641092823914743069141119251137321896375194282678212611825598376523325582295872692237521472321196439740077501204845344819366121467647473257579275383006055609711121769990358748819681413643442734823689979216290286793895433730879102465732232862428720059464924169137142772468683724988789027108926413039779198324201618264630150141309028520750837768146428439078837763456629695924403181600467291171284420524093376174983323671819516580528478160651597074093005152012618390303338489666298223865603549538441799013907167603547604131257028338707791619089449922516749751519268653416821111919981011428909979209556936080173771786467143341512193043579431679764055669185505500150261944972258915359775269320095355854759287806074369981514317314724884054321307612293623684355648845032962832973912894245360981544230665738246440530807361380857467101166180465538020775091398868474741120480170775520775203894725023173140613790824993321251417080700449907271060258313584907848232926987923160314539443384226881261436954882487582508260023482090280350229162792639683191480813413049362694669646251881890018667656246622683682486279394140654988785476053678910038475227250197270148954802009324949557539334201073831510079804250990201298542799751065369835701071807941858358997517724380373572407065501396496519501248219455840507955455919798204055010969786053196388385666836601240392386356746521993909735263838832489801146564868335522819155628145659349687094957873847294321993693464265929560523692951393111082142856809193690620396594896672785604032128665087874375623876006541217483172796901260021810566328378428518782102010593781872247010274747525898473870644342491481660395628252216927968034667746242952818513116244634802276833552608199403740934901791520057377658324326238024083317291394782946605443032025211850003500573952386307982599701167756750434413078061126573506098598184714329724877855898193497580085387615075239298473738745356615791712174195053208774029530407797247498256937626691995011953681522766437237950358595533285823836792997045523002025086472366729393222995150820460972846410113639547251328555250647080615719318932394379201005406632292590672139491929527865099656789701972071328139446368738731385371276882517210796434207670848440290755266519101489015279141453308181509555246467167700430708167239389447923242937528676295289934785985339161771512947146599853741087768473276074970615305090689896469213337780158539638990929556424054593949390467402647362639211746349064305565945604160779055163502643245821002825198382690999131472557227272178316062349099648635344886932700255221707503900385707488522380044954957881691325708191733815442925663577369932611904698922490315542346161821526533772992528024686974800242397265954494339199735260041201659574264881160796047773169895706448243326652623061640960688947900063626354452071856369956065639385873978425912724679994000299891410325106457422062822718243033078989782137364155095558924919839305737106070251498406853822820399159522936419003497054087469065420976069018503191848396406455288186740772132757770336693256041171210383065394691060200202247859203110200697893034813753196102071307433528159183830863118997371370445050371843815272969770021866571868100158742115931453256146351126249887665079528393790873399848402616862044394888387067661955884181894122054419216359411024061356534387010901378448755546790595381974065698708453400541574856548929618649472612222776938658383068255308933762636528077874718006592641191360408864608387749326181171913491027454619599986432504260717781985687279668790492981935300848506097397329961292093616950462887505247540319878946441030410386515405018925984478589378206941167446016962745472864326249351608293100676313547614309791181769433008657279648109367031620472679326740694650724911045577332992581754190168421576482096591514991950539273338731903167184073947894343198600128494725731998256073757754705760368881909055548351916062059455887631366686591530145166202167176492949469220496743009033586521230779492583205307243503749976463385302239270520052039354329628783413495648183789461150390120242924147752040637533343868601964964279435913478896049367136941129006782323335685225636260093480376519191498299088660465237744492661724189551353675943628156877989066942671882174606295569278406446310311748759614529666438338010625158886930598512890015609391657329729807715289253059465838680378006674839105864571987435602736215543508370672144425373915700884115944055593583296243824819374643032573217286749427250435039003853597572244277480942908644938977712796838001363554001910928802939354641311089227537003169101128565884617215562324317239613614929172950124253809985268201616333132921953237648054675385074029343728786794474037471632259809718882558585090258858182969812155724431838737751525011218760594397932232076993898116785851072837497536948240955207518303466596877553087864291294125375864472654086919813516092044419912745792462039195677697079333941468311414839225053370438665768504672455762353338782691551393210357792057674007407099338679703549718287613067465953986339539826036482813834146196544271000820639641486486882851129707367355768718847713029797724442249418577348939394871837462307938388878816608416851153306041061237212150443367312382948398753481515877024905740856774154865220500897741610373299634796418182112690842944027729200794130525503851399083916854797431133822154338695901584625084459114764571771774796540733633198240675779458505099922329511123380117775628352085812086696762491767884022567060796822625240094304810529575935745546083907458320026909683676627939389275918869150680850705399785852064550143195111798757829491554608850060198405139492404887163333890213415977257428375767418725054249925786366543467184118497576386784053356751701865063094116927117593252112299125929885486961458002527334488205221559186088887646779809301688299516127701516372282437519089795215157362909232688960793308847734976650921492232565994043696976216829752278559966858086715166286436799434718529818568364637124909663115390872387244336002496930567148279317695312874679699783377814826217805663261285537290917818320212563698359871701263681888851720251214050724814932257070780234730012081220586958920880725575211167676363744640952482857759750167932408577298084639736325796087917456647576277049678622763913158256463354845256199526004998499507394391427399453480135757631221306630725865049346913177157380115581235057278877394073663773627742423308281682303847377834839612213805915205570751919278870033298212429708220683972157344584439512864917716392052127584976509847090088574602489192010621809690213813083008249751309700860924516106121094930737863797552895300129336206314763543442872513123486973223590288961288618740527443087125018831086215358729181363277056517073906309296630053607772359249876667809549187576175668648798392672533042771027128815344840484679271632583148068383284028616963156292467326909075010683032166406401673729877980841604758602289751212739368737103544682459120477042913479354690591349992972848411972172445895734989811027131742064240304289114054947265356281160859137256599816496746250378407517681684385996049600446999425385008229356869193078098008742848148256406901635706598286706739664341934591695711227395286553428204070627735520644125329409961436562081457508097512854309098660960141971263764935253523615583404394258520280057117998066749362482091303275665375920228905272554616369243491658807721742454574907818231409855213398635240998228719205422570750208363868615397257626757224782566193609879291409953819732129668676168108018374874483245027281580835963297081976425801798072048061295630443482368925188989685946163858377695463363748528637569229971734947630537234772043331751396778902400643403796021067559950196415234742599955871037446342522105222140828754600315029937020805234668332100563734030332596571573299828339132327907037319674850115962102347024938826486058201234954616609812919661397478433208822805258418978095281591477145270997956479914036699034935962803096495653964862569274586538721712210288819826950055277020808710689502244461454061134292984857592283575863472843104495291331904475728705477880185079679977305081774648854377181479196687362203540710482808461520091834838493490193721333459830550851166260707584109081499334604678717707848248366601341894821458776997755064961408730202695147161862129231790059422049277627463604622527169159750462914110314297788701076862134533439072100675209482558961007317970141526778970180735084267446249713574561148522015693634136002083785379642447233948727163265789584620916350891681925665923147018266124063394487253569165964445210254145376686674837042080855556586044399228807715099656796967003015933589298762421994010195934171089747415179545855377677393887331441503659569297873692283620502387228149194164360471921207834758398356318350556091714793733304494539228454687829134464471735001408688716471612954016176859924130691261958609225010073300036406783678886683771243005751567158037075187802804777625903345243065221383322983844286907226181561459052349822755342200303346528464889339934012264843008360055109396685012265910968721731541456429173580753226034459019028262651928262843851730444954158427306283767827735651170585366745403916475740745054290973690781847590600883714845429483979281434530960785204486991718162227630889056860926421408674740222168366045478241398001113182751806296123186736385603699265107437472928001791451985345247441554912158336999950544718525017219084045885862029317716551286654240860375223931645202970322558595965237821604966209100679173928103904881137173663676238891901668155130709763488669139246198039252870989657242702079442759192484912936754699827073511770779319862232288057822219099840361301365293873346923805866842705018730444911086341754026421291612417172341400846810256448596954638788656311448403986375585478770103316766434578981159775368756820370373615205878170403690016275601690486088566148817380137937781690050960621784125765591491733394250445311193570985348130462300989134535763768493510253322037563008905552690645721034308164447682621868230796745219808092071896295225412267162988974724981810905102850166013320719844388958354091654436926890248640691892228405105073315307486508501364409175141909668781790963951508112662865678159655962638081428393694912369795420566662541049191827933716845484660515418878492269778083206510831797012804593293958308389270598862979277264435741992662060686401909202464077342522276988355764016490352431541169766744977967287527235306489897517167573950736686285546465890063396985419916917954642475385600148630582151139954755322238058858350437155694045142111812247687486542000782208704817895139331755394441660970382038790023216070120992705659921780095778432749124435859645945831055085861794113431415997559206841983603376089826989337841418888472412685675174842852221671295698376093015036989984082909890107026203357316127058718032641342341004675533465094637132438155617364170237100832325675280414586712482272550666794279755938427017371269628173744779797125197359015068303929720566058407113619782238334692660337838105244695980387289949031534057587399120496191017282212448264989637353056148714365304049961854652824797927231376415680019035448887892761010048413637204297220020767088283522014260030590153411579539520048473087801470459674112429289598157565565626132203915596229171901251566979714793566372362638470765123028162908507243236198536719159195381944213156365165478857738151864371250521814712471506725991618951851078568359563442824315407640178983365169152815083807772522186296512953902478625670843445813299328103396240058534291846295681121654243276752638384331441105404320033545139977355721241527309490770958456228542644571957777917001874777747123189694843586576064667142345058720044896581039167275146177517971405209039070077277113013443466281844922124906712278546257453071164102154789317143088621242341296509920949243040063054494615504401426097507455335508353431482513413923027337423927646702365940756360133697192986565012032007826636643446472227517804374824705932783264095940271747428188266214643146506325993780758416913758786808708104924798035898351809763518345360601408563265905283978667762357609581156870171753260170916718859345776234671665443314436091345799948374381029487058750763591037361131003161838492484676726881197556099445413693133215668723748583641206342400857532406882959281365861749385740843822988055239454938273392136543233098151705229767103864123000580472056779189924801889727650395870333875998376350582481887511516897731707748770284103752030814524157155104634712008841933898177039344653477086841868812298012402143543702158133511461929871096563425339011691943103380341529951513249680944212844249494545242781094641012361795867871216899146211719747680754131612630803701839314154169824840234516088773265476501563543224442187578550994303951675301161196619906479242547567124193986580081108806147267593485243186323016491352686354804345439696410193934634205767419194424930268629783773208290877277513571663126754302799811569087886928843971586887366040943066040918798940834696803283019473621696236547946610473046337267577353565359017830866548487057006219908554704635883961289414621312958568447833289750394539584905122406405167743381062857913694009486891046936328924935720698569653204085487682858927835794112097472148520480204450574116889753928463809105576732232064335540660603447246767115094866900307219127688104888545850464754482217958347379189485594119910390770841057126214806564855989437753686215052270662523716332503364171433245097371913216868414203252323426502829638326740145018941573054612282177101342743897085119451635682078922481378489966901922381680745795819177376239594476899744928428262902028515897163821488349972202216138169691844204486999421706844454690624324536254516314750967746990726441521475262523570272159112389391302416017068471256899922929714114267116360586982844246684651671064070201543398876707725903379265582723227104330991634342460529167316697813269864975732082529426483085194722461416310269946749563101092460865521389043862976037858539597724430507375252903021518190616161764180925688910324676006254661295061364942543372736994881015692307157046888739377806752934923118836085322223263232611786654896186758246222277137955318711979227877586550990284490860969998377303173065946474882259200543851123316450811419579312310304057422835324179975655744732172588157168261966189193499200374657423702774959265625098438278956668688493023265068142308041856312811224937562846057605490754213452979306815055076152230634389067932775423582865818399178369016398145351500186154960978593869796218872617324319592974766496734073568738312707959589969315384101689020418748533495523098882742496411464404460133764073393594163789966129806859009852922372513507795397580632741464529120568519297485134784589237675121325203976336593570203930639572639559716982228823089295457763188331001861910232402298934144299484852959575271878728354948336784516856147770545291540951323647585933480942369415209894814307802312196484352189744105468332864793758752784036538212938478455466726497228972536399585834880947216333543996239672305502096182083727208003474395079399457211828982835646716256315278789546627167804743073948552789979011831528696545980032262292605661489119395167434670237548628798216442499270443384667485742462695733648479429174833702138079845712633938324285664803020684506762063776796967026349577432947730239972613699112215885372968958917581787268529335748702836364596138527388692956487751023026433091380450498346789049236318931211298961727097158872726749657877345272999834139459232485816366567974669755394246361097083392128784874425729536390792207252382864997371965652599962449553521929478729148502749732682183651207723835604072760330526294132849989154919004976793467493982587323158456267488421453907407206102152482814330339027966618991631219167003698987668027381490272106353355869043576122925112266999584604406797979586378267917175871192328306948567777089519624177122004742127386969463434956737892782095995581296826767192722190233961887385830493968009212670933756207514205245417911578744232742005804193113216507993760678979114154237227744604582772290642132439025027891043024970817626355314998410276147295514398990147971596951942995318652840240504674591525040792832286071148268796890286052440312908821480112658365320605399504267975961869516963775921565074235068788847778175775218020398937017805741323810828788039783245293659547482160650836427509377922314059445104289079235060041002618757931353918335519850885690120732253572790243821209531217628319402617151756411134737707344916852549108917311382432990304548477590806391013844760692813331103139825975376963663219159415860591991555845912146449519077918224493302788680673429746009096952621610489392605608834709260196952898182266106734044207134156183687470816998298622300984030327353453907586731082590109730540062308793347052895915376789067054969672157462722418303445068508299779699326039481611437756890718245812888691948721441849542263784600993964568215811278594641209178821387580304815944043953549020051358752708924082369808122537287818048935967904842117192095342358757352091225847772849985717449358530307651785223747930090508488493122782502378077744161479586671332309101684022014456524460348493409790049562652519028766032382625118550060713543244546318863589098392030933131716966428050610744553182834046480052422203554194201305019637498909029818913283216946667193546499288390710078779745703219749381377558105265148330611721040172555016969561864349362858458527603459611892966231276566691468565445452774052783373944415769426799772461301728856287563326221172310153826671003794168211876715790984238178310976070764665872983603224491229874828345269112550365255166321008324695175835490781396546948465385145045268091273614397688814742115449948822747595318057993977545371925441035404898269281520085970331984779408497565526641679393730476380578515493625803197175693409948903584029061558678736186611857763310657033310561823237685995859445720411568160640943974541497853062378772325742503684539086330648406885895542310741205537342302154594400568745106020041325507656381209918697386703455925793660832908962595733633114810698570370142668607655499242419556339226364509485479749616435449336204129982427192065238225095302558262573321163947939213790895861127084883608621435926069348136994944804124551082274939202148205370680615025026085162799197116218997355553985137346565094358389964503532353498334309901086991907031016332338942084120813724309167575537922517108421938349113813985427008123441669183888918675629443979464679609584399067223376138073827228348028041357080139289770120056860055959555300094528213597177543689873319367842806576331049919383390749629346603884829026992495837202006156871769591849380229459136906364393271608194929050603428096327770125823817402267083675456579368269705982954165016369288677542466208723122176418414101361455340674550619533491082263396842223105100721841631869907338623006827182527803702676327900492068797305316149475140822792414298759658506392628257348239485997906357709029357686897130113167960265723853522915867823544769458660734504886016089134212823126648726096674917402010158590072975469479688671799325401963272321481315556968797843183992591509017013735186103276500741726587159715252775955368082129223393278098974353620911705195533866960193768911494570223392082644608036701543055661623287849822652261845271502752459074083052876085366979782223852718231817663305105898033341397329730456535339937628737963053186959559807794665348358861910142634216650867032024779532758841467898271340319774289756490865284558398141828700967128833025126621178843193352280851541095698497280821442266010643615174612928603315601366936945816227654229136353466868296637085479624620391199768304224137056486996275527712502577628760008538163101189282952658332884138950008218545645907134737594264179249830063361090023920328444402293280928223156015137768397089783581636957845975372651144304937800715759503712480169307865195629767374657098668140656539667071727093180328076831377781243863431392968266818748090050832066958821047665934053720724634503764329330360406003058121396617557915936621161359760714175842554339414774104254603299341058054836163800012454138385601329114409255347678916592289962149612033251541151279300139605327474111308284117012948154585533425122538792827709428154312414045638458819875573118600213749635182483068272507801544851150694692343146568175983468815665801966175493144464437721704294987528509295822618251968724017175469503148833858734332423105406902702784505530190403980464754703863832842792604058633997916508498976939620699712483070418639358168639577041712396013641166172137395439519707924313949899334957092709034037540570268024174226821628573701039539310764036543255940986666924314479361579246253612899126420338298016370785373636091710633343243769627581138413053799598047906491891902175846966964414606882601783992760315425535909210319748665246718765556635086501851382462751450041323593481987670942937750275700285507825144257904511814453325056383745304257067425922663831540721425029298096825325693553562365982525601241466376609578807227297399151735326219710713895937782080421367671431214430452883034065618264853144835362388031973843685276878123293190858334532555639485194319207650561858196251241042449373379726574193715636011623362041758641518603616590323719138598158350158413635639723907921458542997004380251677278823533193367600550657524923373246672567433033588259803474747364240665072926599734367254491739439827167562318878000384606423653359624201525905577447665986731287588162089568277458286509576683813625088330048210891867569502246998657465503105599518586260701418165823260755491435263712780614470075270079327333683130184583217705866878159338773164357562912922437950542776953725424768260940018379129930007298358809832709224104017801848624890155395629737345510825520621940795455271528861694708390476867305163736183294072284378110855829266149499332670272069480159212819922156048772132473874295833162309616399435408943975490270445261748216836612814574578651019739745472223982057670944144494270568825419457882624733412679689122232279061307471910262944899503505251645584797176361556056341754970152701413714964872203695341293099669342184734146792271949173754736430604573560879176802037053946033762719760692440359002412821238901606512870858152421778789085882304055055409967365672069884226545252540063834970122502848878221776688770102446768593012517445416714308337463892018102429352699981475859066463056966529685089610119830039107226867647119572480143833869029339161971450294475248507925541504956327883745449774621266404966950436189788784188141740380958236661330407785432425767473006546652887440604593927539873143047370273901200962960221141223564039096092722188510198336880733897341666088358963896393313345974389512777940177919844968177815464701006496013370894722375327525388367943053313621749398842526967226823577339342873494599138875897260716947757851982960024732389907730118746142881774593127416874640496583594857441293837028352102819603101368455672575932009668689430112081196298160697710598115701793285832449221966435919941568266616026036999266319613321815320062423686477071546745136464192728868358030979063821333503948883590629866860779094967433880696700216805987185342945784467003420232564917523527514367325294968635050051111795437197734069834207706968682077607863285644403704211703578013537672105201939513121770605557164511528192256695725393119673145953121634837828015824964454015414041862071066903769917468831299773538084918171553934429960905213522859621689513585153660044118072984360232296054850899854561644760928977841519114183631566731261140436456976337000559127435170940122225725001139790418359605509189059386971208455539438765675137896560717840988878487449199888855618632221886536614673544683186751493711414289030766682898187636975754744738974768326341060013976825101279827785317400021975798994127102712670911461325860653171888663920033574390817733947208288995078528003989018736219482709833838813183962569454588747042425914611102127174183832597390330921884877789073522736168159898170044650074385713433293325347546990242889152066798215845213212790408037951465431023752864078275082897848335312650730340045079395750310710528686829328823072407654977132686236556583350393315030360799605387980573291221528844595472083394948562128645692508251021887512413656111509625769763430490827904970306809191094659203890505069073682250078766309758919420423217659256999574084443848957961884558665572878639268844112343174246112795302925778430220413955458611584755014493343549698169591727605303011068330321770582342059527175431362289234192796763976837924551760694247941918740442633090920336607978234517938195418130224873217745589606961963865254675549042966268331471602878534678755106354605049181672080270841198518291867750658982694213650560327457044483017464584213117583545726857917969605241043484705355990929216005311942637362841151531327869865587533238276670548090727602388172567262122564154122007451631231792226042830545645378763394066259085283240243769456106643703178018845599856335620499277866495417138669192711376280329351154448523726096256245198884928152424270875720060830456255710589979444848901226273793072434859077312975302096088103628587674590003704761410033706916366413476851035395994610283520301830250503717271692092638042960979738825873022630306101040501499319198086244081914352024092203807615380869206591212440937367176263169948722937068217973188711108619105491774854598226910907013248543523435715236780569369267427642603157697945627583389647954697492470497191010237084402602875040902865982378958774155519949178251068731645668974613028119644534265879437314218442967614776352857196634281846989373852944333862889920037559081602573621806078406327182851659220462543880918643903481554613682074347865533864078280567368276810803325732337474309951810488678460313520171543808378994717620390955358157424489155379824460611950808812042391827505852588702692034365167485686328756184788519608009769153340044169102201949519737818914228741539022707228164201768292602722839976788599027624851318427178629953007010726623865535263446574811886248473961622426917189493288941609993175347580460924133690012823016767527318184005341962418757937406212191351370088889228049974994414086742365583185601535861379536121500860075046368124806396497166104392213950251263706552876491246318218214706491180976104783260558244229596313822419688846748961737096216522884333318889095972935810775692968766908539726532181710473832895013454192728619062197771098880919298281264092297521169894095993202544764963932043923017921736390844968723116891641912605035850276590393959434966851589040244101496191157870396790473901253172328798461036039761164142927149078898250034298270909379208607080421716137272066423410989590452169885612387710139961306780861763098066165333235204627481416349836369112483610891328606897992712150440994637629987395202915370289632262194083424923811822351479047088722816569231221292858784234597546698383089869180264185969041924598884162443399965407740618821849843157267511498030911886715835725924655502894455235521858034508919242032460865350975253114235271656533628940362261487533841888224183594633145265345431343839054778286309214447430998246047850226009273857578029083155286217199553509058770486200552643883233424180331158482921104764568323431875827454813941038173779060983030620305970436801906530347278084586860767175342666610675036382729580245364218648282618758461038792950968225383022317073221732241664382619197160239468398676603325048160594596985552698199725738880540657409511836766969511062190867847449029711802616397947123247240991896923626274969918039936191087737578054015258685143020032391799035453623581278429264874440712357262394948122359691389845309982528076571948842437168351224045089301796472812920054868854538311622691740109001816962319347438088731924907284579716267120141576600220366752968693465964365939427469021200627821820210491236516759946450055381031184766476376977738240720633247504439559464270105891220950419761404067589858122089066999002787162955612634687607653712189672183732469651572845390467729919754559969577685963352469882747998919909311929157009825881744462799324567308784166178078880274459502953284277403789315476381507198576213324033099814225297820644547065501971437978293244814946018883302752008861782504742159134481120717468969469037950970510257927742185523841072335824654633189465462767492481884258227740609870430345941474670849902363863800799513475280938061490651812888260206265429273281072461352845647362951628062382408540375532009062556407425622403462498590817405035971000712642821321178472767283161757828505888349820227342476798801764554021605907245876938325458415003242466083280452620783138634946999023793067925077956231318680003973648814133459929643944184862862368363159267735151311083948521321160806463441793654690170293685241554368216520772550351197374026937651697882328129532831493190227742524100893165083736724097243186505788583719515540859863858829367404851042275810606715309634332464652132810384950072775988691714315425003640882596815371465776531603545369647360862262718200653559516510773248715035876971694626072662817199332512976423837102580150133343014936702630196564159419401116238102775936984371042710599662989074659185059459585027678089079646259570550712120905694673948707388395143897974790464616746732471786075824844628994516705356134034777839844580084828894188115287399375589250650807954246510037971088590372691685232651430886828264048141032494365862293421389957255728488460177452729867579940936958211089084537445236349676994212580687735749494910451875456479281959068352239617159904535352050023171011372509424516058569934108019069184327988949494283141570489728292041542881481844088603662996559073029577872402817470623322460450560854548941630956072668694837178844111491331348093396873119124310615233404735749243991261952685269133092406597714382288995473626691190061096647684554031080449539001258750386588030836450249351580554500488888371281963872019153531175821130391879676061590753990213917363333190358198001081118645670276562006889916205392372183529691277461527425610715054528798945483177867954430078905502997650329049627611834539422378792992882854432427235079955358356008406541548545985154005384764187385325320732919155059691381310134563411263499374610366672523775914561081115624332739107340157426234226782081607773784381250890036321362937537437893871414540840355718215265455501101445726032601801381442600715983057491286669343954912251902200381666499091846704799303063457242752662428090234659809958577058588089601468099621814012273062085507541816038985601862980803344282442474076693692919568212663362589440556526340271220891828812931683880567737697896170961358447735016037591674791015776448391209557949052883497671006940287789858749158694669599752223805781499670866263632574606035158613137429466231258731073514114724407158975167724489030800018371138268301103079633545312330678740984806863784726150517457462923431746550821201896969736838311997563496139950890298711972380393866802059853340490017466549447405781963890446585706716079078213143294852796164797074706620779551463501416527255033109534776462395862840080105680836552967305528634377983739512322388249220774254376846467586873930603267254431364053500713342805016333148197295352938145405540183984756645623224206308550060484177051647313145253660101518260296683085532611806247021944342299653368689171669852919834584880689885643329398220800338386256159712446919910292765382199183908492342932245867830290275507947166317403693487528570828996704726283408069970859538460367136609403767164986450305179228728230603343842772902683607116374969762015138450046440448943708452212357391293274908813378988084691354606210879801875987898665324683399309094528086535189927182876392904848864965328439590099983317111423343971093897929525270968360584719606374260350963551231584253362497780628934093449369650014267568263424892508597923408058880008508802668950031150044441743673974682075352782820920037434252373349690379158585911672301469631961439986203569762270587845876286472317975681636945963398433147598965882304024797961074190037459428740942295522670713429281791776725313545956384098984139431326698477993168488609609337085516701109128833053744179366717310994943804060245844256333163127558198675345833948659071807607706674500014973063877805596049142394635603509796134473040174359957516354995822761664346866989121975334198690503797879401036423526180956311609166609216423053921466985951937024604892379495358279559829745292007905228328576784924504177200201361284157217852572689949202856623827284367146347851696832220170947580252102435657228942597743202185125410572338737852768887306357230689875887181403124663256434270625839192469582225583993337163865145232339729383709728727093750765166379814882945521508710072279349789038071591552455450960811530773617430980188720728237562564585560885092858645425515663876013527221954004410859999344869655639330769222087065942005292706487589402050596703417431376384485135414106453234184859010843878199639724236683019235750759619605436722462130989450138697952161263819138603854161529714661523248579726846223992958899656243586510158597874713343168721217738994440342628474413807276257457875695653256148031580965211535770147094782428284746156633298206773055976070224722410331370208863320947582764550293706365680713159145072253225641524406105918386974392100934074595967961290669804677722264263639786432677500629455465263021886864468229137595041791442866978737171394377236300212381540944285977047581388236973447886316883464332602592514791551947446386055695519736866806025864459396891296386715095066677407126712143188187449421480089052795286819995502378113325739783757691520335067401941694488918760379741146200172851367416898889015926483608117450679556171906312034050023289679563552584905304183761776413774241654256513540637265068150816082906215827980644341225586358281806441526511618411097279272661728765418679048693802324077431992442905415672300460642153644937039860827945574634191705337493888931778395683570910159935660277119657227228172492753833506536777115507671413156799120128309364687617048243781913416160797447582063000378930845219361622155234845075262031274478648422882153461868104435587098200274415054721486558037827542158570051358573128526824342673407534114023211319910839862753687735553190141003256471237821131119905170644064849656318742725157720428562449496972194633464700317073776789316803948063574255494460160474061573243188275596273570538058217642069512646260295214540378460429294181012996261581156370970944739483863335479316755185528970830566310555148153675285767380256238499922156006312479884406811334991342673849612999246604478655290115110202248342337424247649615402455975824607375843263434663800829256262981137527701926547385317560561236041503815664845269507060380893975064001136903981669383739620013900439611746500730827662621913676318940531859799499165063539902124448818279768726696867237520559196041184484326754343962577028976422296723292896620758412024797718753402947117962736685982836460735899893717687039290532117025394946914301900958674168290252584471337419239789967663281368690377167100171783858945269714750794507166360334655716182915514881495421067641038910577095860182989394159047469489491485516457244901334159945330490067945709836952919176539621843237359674534089396782016594333483755532590020401696291967682050558591950461866925902211708449086908576281008641716749122600653016048054130742961848206888971395499129502902074150142129490266497518871525428033104478912685010356862181936824866463518621489014357911852221676276039088118128533320739250197589325328197115668887308622812013892580977707336844747034905387905056192635633773858405991155693569618841049519236719522072417653646223222272637060571093404952282702416373919266661487647263098089068498462982471559959089286849046400397219565806006526897799378835196693595341178700452422062895438570404421947956591185820479501951925347302252100167135998542136155019169944229233787831688643775547691765702727090276573278625670031301374415774535406336995410211233007196115019182003737854045326695606499108165535786472528729456516861045404166153013843059287311332777514252580163011416098314611513475580808417106741389015148707542964238290482159317062214257660979624441258413137655825284036364063384506533591625254970954747861248006094245415095448282350843376534435712419919850923775276529232183479594867104971061693338476303561587970379446734529765208789836058563897686874399161525164557256160167135598697766086941580328013472585147297962824406684832750274500693402257447660134280188309683586441336059860104409824388321369367055582884600803592467503645777243044714069505083812517155054781988130508951855637358547019930774963252374155698059910762456491375452007687918990195988920127558186525675114288422850128199892855131802373646814661302271340660396690226724925121958049128371190228098944019824169096777893401698740808005697592262035019758999621526814140628620367577232103076162202381481176844662901421682971568267589733406253121574736819918977717868417019252652666324932373606198142185582329396036383254805022149467588190251959626704161315258273922528992971946498967147167751964300371712094351557550317516768605713735945912924155426429521466894401691711499105807797101064895231366466825068664128170332182245394878600172266381425757837546830258843898536113150937884055357113644385257345576569435582408871631806430821760671624473877894147272918303003552094677640461100012356632222224051175247964111912296664056469510942742540471897547277533036929260801807211909304303018546730044787287666971362902500067351120272217874485024345338288306579471647836064222694605187794015123873886067405883913356858530028187821865919418400741732873665146094174373870567494502512336559700742233879182142792361413130137315609684928462875136514577090521457815098964590983819842137666678423849993986634564013215285126688395963868374456799349731816221074056886837935019406174041567330096621563456955331533127547276354784116308565339045758270621271058962764807228766137538552940802972643905314335063326005218010707670009208264477356723257837207222331355078935303544426727641846586429610556537354323090111652278538176296979784102716818148952161613960773238228354138394808816220526952620220908431760017120646456584879903957298668869239023290956708000014922124213843086366594727250333736532334500171763083200133792350363562788495027860512648489128960294204165928981161909279248088355597728833013319078021632605676377346460123627912002864597265678193851365438183160458738319339072217306079914514991770530388158098748024788501897714128747543631452004982844107444879872224149423314268950576868410541265299635539683491143229791761256159450828290758176832909039795683259584977517616551008802341224047639146656733044157272018551228752444429968348972113487880047042642271464031277722702005560508839363328299835635037486035787166884668705850457365950601940809876439789824783489396962172343679497872625463581357981717602195680850983285776211819539769030039349786418125982343069843042174710571723820428068881773365123256987654857656611123626441175527652145403346023919525372741280020486588869291399850262893648292695462894359530843864797286563619647408807784146581845152045865593790227315328885291559791590999403703438945352221613592836838744179944696844994553686856475694982751711073834383944480636768647024530394455318916259321776112256002881050560482919002260716944841551101699868464021084108500541784402032111380080543552067836077062160786789980899678252492825175503474609459855828998699885319554550671986114042230307212199274747069180487670851520448606950928945293777797972161053738136127572883552950787926641528338991483649499161845596926034247138576612479602845270642791883871056773243311151734736247910009019505700071866369428961772654067396887405395273228744042333960478991418155469117251481930129406997185640577693346048366015093414433683691197331020918078102788364013246965872536569697002036892472368063473539310586144318445704647863930897777836020835689971851562216855108267576444562700513605923595572182848659146239444312952884828549907812048546477437855291202970959786417766376434947674610567035346238386300917180581116794561574088373876490511081061398285717364702340865036430436432631286513350826910776949183004273746447096730489777005873046948026127636399780350454389677797362569239104241442753436718752176783422597589981054839114367977988197102141319575160301023624050159673816679755656446373917650552909643413430420673823505207463985674295088064441866443556173301223617397249236498136253042884171425463506751848418058552967386447943778471294213238579748954891929351466377823366673141476135425917086338927560240005482747741221528897174133120705019480629414813757417275965784504799773576029526360348652133018527420448527290719662669048484877024358016688128889598453762376229782962872961878825650509436881185578597174251302656066113711571347111304170087087073132242019819748160339502589062301291490257159369767512513287238443713104428371097931901247843651021927322215385357334441626375763408748361629986597601041354593432281589527967527863081821739943216537722208942427128673907476507963057216568976582605765404491583268178081499191536997227231266439489604748891122128581728231835137493678404793541539511821566230993075301277227528417538581285671570162347936671797508974732405326303405790985161022889850746076920854557794499836405073504184394535589206258725045463365480078551987617114421380156939710045498153930140831044220972895028218321037532439399835579289700299862585461463667579743633674260348893876915830263266521540224700339283694796877154884037542732127972626906077982152450958200338220309292023719765614459281767317939860433253368502306652323760439113661496164509293453144884945551298861970890180065800261798338174552270897264740194252796165780339177791654093283186380573336526406603132939046467962943169862039218819020430353570560201403577883598301734162902053941170842410148327791979358521481244934564613721905986862561851737348651636116429581977518536466694656109799763329225201989972244989077378764907819430150988846440080393809468704193386228093645852030053460574786238152189031923932577268192022315117961420257459898497912085967218239625210388280114672491736398757335576465483645077527632998360459454350041300062547008071254467359010531226172296446332516178705876962725331003972931921716591463781904151006409897757990423321990045214134431125958043107656230973601678583906331206991156177956989579648993393176732572345293425274330422796635066671462760348362597203976471541402254561693276683005470627172265423254808516370292539969349177002999641904228449031693223823650511163516171666675680866020555931484165588440865460394081452742126651431534048995640447615983173159719200538865383757334780451355550206444405666512772314033403980715174314903399381999694233543681899969304421248631905161064520637083907837053537880954928352672190369035674011252503999151327354353696337424108126264059722799288896748805522785516153025728854953078731977192811296405060967374380798450611753155455121388440328072186326485164212403461065874902870976704891576242318086435443929332237653103231835691129540665378045449309940354366304219010971440628985380148057585585716873937524642011301837203269661177054726290644847418827741042792540475567829801972149593632946568847956239077588087792070902481487640556646560220959486694706744809759304447924361320633196047689829531192854787160646877766321680951671183051397068550774025085973950199131622580604085031122765422781752126230641304373845014661240930945696232165633740269496210646590350400584768194598920565865214810962258819476926000207959876391384961683538323262838482029182336565470385568782271141896358268068877296743350526920346960959028734368926859049434283070485042102204636530339196295141545271791830671915247611795782217006286505978016189974805263164973026292331805966745845841486509718011768326870562136718748161047088055313695478802334220987503843872868020079083834776509188921848391349046814873421104303064567763343075359099225898548774892099125834628965283808277371919052914319708061604117937097177947337886955309992979565504245717535373177417784798471954999649435480813732630170904475290004096661299817632269481034771923452503181407276731146401012273709740295437249137251906905584496385155301175730079430946318446061680116156996794160594338770267428986680651785534970885564440101243826027562972613786342633287044562366230032038986067418748686301951928029774990888209404300177789011686807382808336426506114294797264867782791347935718823787154247345835453418079078585145334721941222686335441371293984046467985934712020359951604967542431985266053554447711891700141881437205026501516483260585142552746427597185936540125781258296297458358280234512260296014335969585195465590065552556164544578664180780763898099800720191720574504246519776214643383231947984861113516857529060923368556634839434563605761776193998550236241264304681168489498015704578530773855149043588526296784215443680358135669718289865317487235563738043264102530670022640796153609053977975203535012148819674016268259710269195464901960681318841626635446253305538867506925711746668171041522586784900308717763064891037743133191298852788169209020020456044769355449865805065700728478890545944817747207988900045595035698272632753394055202821389992301522627136032238092200040315717069726826512815864357233075503166576086744665290418507073481639866159119178036660634693609514738603706487066101569483459677171228289673972886807719148244798055693722579542911683492086845887340482728333392162820910305115960715245683977099551346976206205897086847740490460490671969905239725819360905267289240727386850312096217172105042676572503947903969598289868199616840970992566712833477752883200459374171613035073892476452885166597693194020298151277552694496338384436757143899879591628093062349009969007299289920249398664336996563591807388794112605067985631567323861902318909827550183973500499010683422066357519490838566549073432943708544340665472895296288430734469168344728187280083274924186940121523703497236861034375244293782724245060603671986064376733348743985878231879964091706663352309460258050802286235706637770930079206451167032749635511892520485378909518654078334780900871656967282495056791419334060586383922838989927809882844637278152464522205083672536092075099775480479207700801550076921445216833360764363962718614934088372616496903417282933577926705344589447329392528668674667651543701377000527861086737120912224376365469921953180292003413403804857768025739459069651730776226688595415894438297088162881093919836057998571923081038468784334398310093280637498615198955980175761160035052012160893107662318603803053546987613731192979440256660329834933299272546808942048296498552711536385863519278520571433649852406930588744459783448369199038287106217360813336616526430528410094754412346729325973030261438675520883280432369402119948450393094243834591355050995090377775788128900986245540594304044059632739859651206656327398881479105349577481593065303517681603566220235661695699883981211615381093834510220774748437002109666351174405687382835444537949995167427889070591981868906647280473598239918479806205597548456255572764604304877708466452975117565018346779228801578383000093174482430998416015606119018327647820010483668436176418554495965474013701879732733938217006258581061397977390698440261236822557067233044368633485312314120790172905278299726145401968932851773511093559101164921771801313470375235284027233974795757540079129377672745472322561061013746241951830041731833063322353649709346548332605040387782777238949202311095038172714752717117887308699049294395631033406189289396958630960398479013001933952013711439728190557035018612256298707759999935762677710000707073308355303112334745293156086786469161631191810992668037516464845252730436305375894538774708522919251502679331529084446240109362030753660588411066736642741852792608646132692545466376163289827994936139625487133446366463781815428001089691955542480057020981172604449307598947470024007581974552855535884052454994311992690965445983685539625181983722178575204409136458592976695654946050502398222757443453675669693903255052500163385954644452829353778138892479545039326237847719108741968012071991325026783976180283988380316393863015918406604165407994943364094589183331034796295193020938851690076709631377155782428552310684465278926369590383741597590801966430588356123159040932706419435799888624109377640509752616989156179755473160226483043114548883049667703873722177318844242459765579229550448050556761645987763248147220388795365039433184585961390358134691762791788305304393694000891915340169154825476733542587666979181657967925845115978833351162166351747710094572085641808760928238694253133472449483321199126274030221870304136892334444563934807522814056024503329292971536571661897712404971771575052670672628212638877881793766138409184554127095920026304935256294999582075004519960189519850193890098493557350465202080185486461281175169683843545884262604623712176913054901538347861053248132389283238101838003068846767689502267915491614428572039442075007046752785000485996198054323230563993394819514301564958258751689131150063499960435378930749922570695970277437580795408590567987818360319652855435396389927276349719966498682054132829976797556308557625958205352942184926299802488299070302531865244258800022626171796598745796260867685404328020872731558166512957298879017800347089769485754450106023710454394778220025573774478777656843283420786814365205515284329076032497610932008124492205620347793288962115590473726668750403577441795565811237941895146066644928146453491546523781553347132053646204630702263195508197937437636536843490637311359078933566761144233984831017224994665752292036629239961161455703008194956782737970924371592123663963646100915117630521565993629611970389970632274939990634229595434982949606024506735272338444019441350697010529834748738890426012431383089718668379637951247980943671084838990905008112776153457709863005462246672014398838506279969384491551950593968535937496667066402393889303187842233741642044521267385558741310052906765215839136706245870313398998446730000566588650325902423932674228273276246965142195189018674199451277627664991295785491583540954625310720869414163367121797838124543080879693406744740910450976214973964207354971164812343122332143011109482557678531434239894764417534854423867074698673675454477250962061015519982768434084570923949769160943213451456980077188540199142364118770532121912524484049507507825869082115036988600119406962640548198294082274958719664588687025161862508395650889630132945894161359608289527338817613053937280233398017582988955338928732391611924627613924886348117129140648227024732290946405445611150330936266798695825857393929444924069774133013677192440769876702093887261277234157997764339647349310275649930728212970416304769368539194435045165952693034189648351855961518523431439831339307567249105060481768753286630748547264648953234969802584874521551027187006861375670599146632700086728207744754260276006334318792613266063798153021924039382171828653324493012553384988260253080705252602062774794819738519051331864840570981256634077756512186533169172082872767881216505274766282598512278045243460618445736697056663997887687706034092556127366420055202758237341437629494788501766409017753435615654513422476149452251619978868632422496681337902381872482829488784413626730565210676388785061006819046422021732546899943009163262829965983872346177413211583933791789896326961031159112311951283139174412364526059433570155828409816993515949557675962050870392135680291920895495584138631993089251354318532302636428180103698378662748186404305511758597587115137778401403238589713790102073951532427981874836437725121809709819478796190498299863197957236454284204425027166545426101896489910895257586793249181073717108125606116770305727206147584306114280251042822217634226876101058009559734527464045419213942085706289612734709887751020389686727995746418873466246997262457193000590807602731864131795863713552758836562652312023962754739025785837038092127986049464703628513811023640068217179417713440094896501137178933916490567945006779826702289885303439096202538127240290611964736138959236175940061928047207282486934222668587806393368409547423061873657936466115429436060994631882678347605708959090402421770669825974878295649163401841542049763151797867613653018895685978404055163209689523771128546518959287827830679770435241753962509965542486562093942411505764334099210024040955062690783299644762834392913741870792884244865203254939874269474460609241984337021236016499266553802601887053684931510006363419824756915189679601089472216440723661281522308813358714694340386838170795911566886957510026903258171425493720990232531725562682785315678308468164499903322452688243626754620958748485787986148192659856699046930897027292148054426902541944518036300397701976397288103559994966810007190454326845294027765067371209188242584415609512365385148932104632273471897417870011335085103275333687723949073654772951694223584868679236664689052478154917908817904987960065321787204175048735216932071623145981937376043764636240056057719182691502354983169966668843979671187493178284956659442386228545330279907990314605003760699211901167960640212923759099827018894964162672038871201672778385107763716152260391880591038684853785405045026919423296304932862789511311926720090577905691462637971233512007949445127069818744792902299173067740467655767417711309711569824894790430509439297937793956507642249827693571197405523551984437887636434700710533401463013216502182285371646341647178654479994689246978979520366841824575542841289199506389245292519448849883930807655434540700895684708221792325943805193717540121800612299005232679246794398054510777242606575881804876857622994560986413746018292667601400125415145314437952366802165000807400108304087063244023121353134571269653344252911533146440079473961855807802940818669080553403530764388667647463052101415480687758670051343648727469486351044073823492581769831910233430695336165360931909573942878193269964688885536879436234053694548251617286376253221255866993449226183498480141981590795367603192688187120517511690053995864294958709507313751491916401212212732969109649712552095275395741671885633839947958282766912242687526903913324655487948254342329073339199549731619911601369015730041257761813851991364174758403536733972633142448449956460518647732681852289322572204242136848035292497712690246438015825621012199003601032297316320873121644709640318539200090293835607935187632511068370636752507136307388141319328772912356358418695378869353159498511731947372757178211528816864080929161190922190175607838861013313895943692006270126090180855303911087926747402021503622888283505635211639971812162864108512085225117983319401524627619252593233127614849532337768199924827018862522883292679544438285158679323183083606471198650377511081288653279208795503288216785375800628902877448636190276476212504201832692645113241239338843754060457567265091595107543154114547490458077541250783681116190278709041734782891951349544381211465677278850071915345514596302120613879123993875282734775984873571730981931875476664303515010052722512790096984665696567908055162555644827756573072598932174006391660413922561911286666195229591895488391010515840273764569878722899506622290961430649099212023305491134909596327265134582223446769930600902541714501023019071362378510715859959334992144635869763846500619886275082323923970751313061465158067617342962589276627039321820520547869019533305852392114894250978851458027833078178437773704650909716448153977481968971391036455349830565170584049060037561820552939837956472447985439733177315647806751860854209517538498434431674471890587640400152230692848430781142098640031056980670599459876464979969395282460651572254858786417401228188802322569419541319470908123488606508507607400984323727511749731309336750778078170186628933758501226878877525513157459333254052677883875676690767811790107989565613655494852024350644973216224628566442252126231778785942241010418297615415334009477833551498824810331726837377105120537492670351557179443904555970487202984900212337642549468075954517013540594051976066282786366193210944449148989437386589052422450167339284320864458449367169165510411964299319324757768542190777027389709842360134532294828564261992039661754395462217464089806767870884259444312899293132631647487538809991413711887568589626985431069683778415724860847551514200420079719132046757727666858844772081408134902693099106568866068837157676365740233706119934392251058242089718346900619675678960495811715823980781729074945533453148609331453264419867546604286204428068176340102191025170707825177386583933797657196576586530750197888019643169243925852395108123761849726217856448920585279540815746266827533728828938458095948539403255183720728289982321921950865618876469729992769681736659397225498982377317447415335594467846904861455882812446990535585747613628334548095652334616571964926767816639187953033150525260856079232925194340905873943073882565315662735199066064550917793751493197232217231472328305658106135216616350526765191225820049781095509963351456948464085319956101284761966384315164753019532010434507702971226886459394502366170839114741205732379531529066423855448748608154098400889513837409359376450555402949658840502002158051243424486893007638845728774015669357713817639545457183676698056211865057542761708023776210667051013611467093307507366584325793392619780752899530645412127852544779170697033780065601237073810073504227243384712392559562744281117693257194194837491811541422174945767164056945772273789044724615827405491194705824517373988926684881600232058699814183264628507427389827779545774484137788679153765307867039428727056217289078100645451107627311207685357075536227397703382851494191968638511050236342812536427727960150164423845648936931061951693548483353862552144297168349550871522461144255450874713568082475192585876677296854514427859779145088093350938287047109088591030814826486185092077098336653440781858302435477332552703967457020482142119245872470941031987577459739632160731639818442818876836746336787818525923421813371385671744814194001578627962933731325927583486928904572169264386798917429586346380550475052287487466718957257740208532935471052940684220954592373969010073831350371656212430775484208761109735907256525548990872087801686767491646733184776552420080370289871708548093081813129844993069812382170353142180030302880398246357323103362230363545016902800365953984178864314694803160954306697946170620260831839771788411242081691621927353988842392188695873514568378647281158665164376549763768313605840575770427087296926830246786118982124594480718172455687499583066425003214669319531738418182510825996960188640463086653683224419670535919557983150320579481698837955270528530445861361929935875386993678447014161400875230887973705818160247832231647774546005065704026448744760996988203266377381573351638108058453460004421973523003132771067226756780921749199229598079507997075079327307775627496210827880335793141516434549729282117943417530394080013355261212929482803461999941756673675438396143164190497554556365215390608380314506433864540537617182576569914851268933386408144258726037370445418611906301831827613041883358554132422099243288262076191437500728249444833780987023081142265115585053175466448330603775705061324941377531215625830377101278890576059194054246259829636332648813697115503512211063508817896023144947315429760568672068168465573983045152070521857320357957095672642833580835146424109093296706276590411914318136722561085631046839625972801205569225884427011268919853452124144076204187325844275988951038463961499179457571233862420293413284859515574726695000004514665524606574537354228661580365193792624290149643466042925253927069544019445470250981387548123342160613671356689863095406080913301253785737006860903683506584190674639202982270184441903490463673068833648387449372197369205246315107571727886067715665799838278283605696264105188260377141747731831846248973202611828526206625572175169658168349259332797020984835836760587436054231905050910780202555664043170528383734487141588869886859748562157718798573095315443130063608035363435175953824503129487568659513868568153473989777251858151448864779004821549705963517655208982513639351936605896664406529464532490359264524665500504043910109071000534301951244651351226984573245571014453673553143023648790851197022995797407578315143089404205778005226415134525789483358994259859240713922569440203232441662295784153036420170385468005782617666433597084062580222932833455087700383340166145658997722171914298907261492695189001723290363337845351008941577700384003366376143337507879499492597664180111800379388000921449884834222998499138250307447329687322180484692175557182781938507671515481659182029243031923183839495023124782059963172181549047522356554637757372345855447492476509283317819346663577956102976203822817266939206284933466670113513707742881795591113473380815172042183375926547100328360529851527164235276308016364719513465550808765107298130487015024337891984501022066932147262434223177855217977343143321475041503898149941050248755915702200148673669707541096131146048055356908165947739300825864906329910125246366463728009252265789774891551283012502418088483400052184350793990891244748820390280883970842951586492944558266164548757523580504254001394430258370104169125596928216641203130575547234692161080954793294122265955820779850402299675144626941435526077993468173835650756763897856307808939347824730656089748557828764636290021603227543970100095164300715956605614147337993251275698123085905690751795452969591810095693977942201561180511259011096585191681678016732766212857676699178347086806118726237919922024613188367138410473565113898024050117376849479974008436611689075074534752424979326170635818004551098722516686963734606596394283599697502598104744672929171871147175743245637333835363110425238640294285584482116154770143278575228302348756229355591863446807675140397973587019089900691201067365224379309416105680855008374821918314384329496292744611199562708208419583435987601815467356380437918852961893173595531718652507499015116824384813523174398064846607631919028734976922923003083368323685766692182761280978044508752278799784979666027078412291315235913691118349646702973069884228322102745628704121200910105530557196744611733425542196256678503463089306181239028375459343896295566528443769417568575378204075004096532308327755595907406020762835888675545653289331449111485299031637524455973597010662751042061617378797676493922310842330596911979862896794014891837877973447231483245251598124570945785355673159563850550165510875209007851733630785463543263272145096454151048957829255887434078803897249086097094701545663367417854738251680292804469854401160333533713707144684972801597554083559019887162603468413815130234696993592312407366726031167296947166594533259782659120993885236120541495778502707918127315060419956989905700859378822684808189891450798398027752326961854716451448033663959377315346001629239172609506770149589272734317233876029396926734791218806290533810889766248743092903150994720925284540135997171075666597324493559233232076020980435579193835455894372269925559223221201868972091844434452529120030724491238547543066423831255260073902673037029978156141412292422139309841304634347848900824537609380582912326489995563689875731170889449225978352823328285548142713796444203402915972908625577366851904918793940794944371328291478926010826952540141492596142368514920577054600975924936416600102883887684373369524560142991984852972497395415647996107659786659366168567289412345156048007806063774411926306934841243278841620499163800264589519027198196400751537778390719304941997861487877581614485487361534484647331843855010297387516828279968476740607413647425011749782546326290484601139814984773763596554368175365477131848667755081956857260540862477623184050971652624196706396818521086430080863764012269580439162933923409285618758411824338486143938701475956779489789584999838404886902942504082288924084048421638906402840403211538751336137079800859029616482652224208042638039597037439787790125469639683595781880936173539447355120279857622419172911926147954498077251841538555244913399777863424787907056303324512478502634351375601187228346441295107758577894215820813150832300006816725759079806394875552078102856105987233212537665877498083578763149420222686506661472688390411490895622029837317022609467088454095395068676423558269987802246341528021586095135946500092049900839248472281361023244399506769737873333582415192400897514095107891403309542256769018860067600745921169079958529456679579523691816049271411794439648510859687822468813831469902623484635420946154837736184226639159073357982835836584144211583821008072937682221478016464904127009568942358836150903469711196600287603156235969224489845798404298115554063095336721950734573599536205258367321726007461783643970583408953194479006414779750908600002237427856874689648606845856371902822893182600653175022584252139117134777365117184539635954248747122863427152685883009558576408256728230723810265268460365730604756310986738341200522388931935525866970879997312980666822851742276818444233885246789586372471749452531700401975082298555585858151893068244391381864721293034346388562090817583016431285588756206473333739826332055506320573431909732729496715612218617365847088528458001485809560383580739218493916515163467445030789811540869521616910392802580494498344399826705499694869734063707792178993614348512091258168449711488788219712434848879403746512380416754374456812794725961830443261610499921471013236015069190287676769014610876605742030353946948610563389497971884507968304033921641543876330322416616024421710133495321347507840493304166553282631057278849347202701358921973198732838402600945662126838978080645039691368152036730120666786356075161493678842821064026912689154777915403126803637763198195984797420563902686621085572772469168427630460050401563685429248003065170293896445808949592284472155490196763570452961548623064695213330395930128294744751472769543764604061492375967438720300643025757920270821417318287056100410547310312121307729219588424697266993914341405080425342265756828152579933769555354088819371712596571938250027640975371301975294040142893556185475879664525779008261261360358243406251958722010957580475757857473807222440535394404093558248523483571602370767477152557683117217657480150724926162853552597854173555695210265892597054257026843598558620396014963659399088162028373338952700250494157732535745720021610765936794071984742388134797266876319612334417868556661670923037606151181891320660548105705806854425096745342566785446777818154195054534759728746910738329635723520699740956819507733991187631945812289742622933073002072821049457607918619010883702443647606407284116519059734941499256994187340150039943045574574998743173533035998041972122009549846910744141269254856794369945544241736823972948945582675643657435317797377113995601328301371717673164128105253294414421054445903263681926134740630303652010253681408531839810796732863495920243956259087355976341976126427319995311389521044626776067838140387291784399174127888886594222466925437093561153676578845150952547704874484630206088312704307455532116385263353954745474509335296998551963419038516420972405162504795098180060474899122194967618384067327577819265282841616391691093239642068532919495234761640679293051213067028151988127901059807268601398867499885634039698528584850902292536054529564024741002102751790878242462882599424837662640680714246464163049235528872759430948732090068362752121386439817836301205076974764941941311582102605983393507928347154698027060971166447269785750734291985558215146906775099764671868452348665201228967092179717685448684305444157639384435572957879644938023170355706652048202837918932629290905065854344607981798160499200242699851326114384733892615712732551292961806505699064897032859094581946178630284042122509225142279344251408996416707050495281582892585194144517476576578454421268938748971187437082998081797959110499101120776827122748291311696503155968632462834813984484481422478934731106077075029682457208929894265792216087599854899412430402957698410693980460055198224981125461291900513195031866019897214514088900840541602786836250370726724258808311195031505211873032686055820808054859219594049216146026002033937809847150407553179254443308947353059896595358177465226889912285379997006646193879461920230138729836536321658451278926565768370159279617943860104723238127922385375734956571663032377141229174276008190737319032989016533398111018307654031536670989324987291384359912541979516623806930148011422657057982138660780571566637482993650398355724284543525255797924238246623894803658081400127751033437131044242493628165924686244640489341856640785647769731728363098013776207131770828468544863189609569996453158431000986151081757381579673743202123360797478332769995211202434125602020390647628144419919590063933370168990502990945337128361459793242444358386913971381047135790762859667193543790538218166117489575788212291243655755786033132140950506908090782906518738359980622269624371389375950075965209103512502227050350699607516133211130211851842292896850352446990254997996444993953043772010122573987012694751234609815811156432584591175375302403838317409483847182073337742855606641093413073769172400291213048818695062039558789128962061262096501078969078292647727089518158028641722930970479853313463382063278683547208679647759862836619789801888102694923287661146958142096137519307271378079245464783310741855405636287892683062821631734168096314514372970628904615053976551729685584314638446166882559019956974656929029698652731576981809582611815540464034226452432779195599675690005735251833586344210716241391775220043904318560263494454443363659087501721153296344709048656099309918753477923582519026422317528028845607015432855507415453414545457401994935315508184647973192041844115343432184080995328255299040586214232638831208566221135846690629642912059809001180174534140115895827089640430808538691254636346328988123067948934739181711282817254719900933567676453770509971596537760318937671954081462826334798814666341346584049699279940060634656046083305301400625427732470862754134993908537147317571968161116169522137476896242042472062829243851759206895108662119044430433941646149634960802660034204979862679972103466135523413598984139387072079524379306476096723351547482226700435571428469437939416391749070312906440471220673844869094990064431323033036141385051544344322664334720292230416654946883393486880584050729728773318618078395372369968166893981494449509101372020610690568079734629392519945882184190504875852005094265123939067194255701135103096716591774877566428888266752843171844208481516379099087629156664876244740347402753475876581050381932688716331708322651309874945508204365692058027240983536307815159470422924865446920317909162860416089131877248695940693135148275182950670990951308293814991444836953072662445905204907449958502173987622928346400730511105234224677813663164573414433822617910130756123361622484246734899123681443787339315257767524989287287670992149495770125649095635536149414847222352816655461263524453732626005246483121291791072104994924894634521183869661332650893174144642350278426273582732270126248793863636053508010026708825783575761661150384956879467935356074804392864954407431375523418200914220933565539005826719673120171565968722539169975436263283745956917871328027305516999412169339610486734819292916368524391793267811779565279143573913809861059472798306465253639900740433481266260408242160209121189538934716350873833131210352303663175257878273129153108857597408863083545786767246699813145294429236404079588610759572999730871404495455495483244662045680389030326397038414392705347796153629003823385006362896142757618219403882570888637947073724892725462542769883674998644177490758865013265278243744252824148386515554974950855204550334067595792068686899847119895588854999670878705552927653832922534718058344320531695786351604753082205709883661980174993642921192124781234916221705118052320047329548370355316006142993276528093407416882438607025629348491516068449650992812484423984225487718247763847644859546438315171537058521511421913236277849465603357004163822590476780120993168131919952856209257745348775141157658345764395239483549133206629698063841492724466589077206769965967667519955875911720234487558849356283731779286175487612501538809892030303652776392124191544266482293316710781266542242057589875538126099548991561296248949201782625773007660798821770792642407672929272715354728718453159269008700384021372370512531132009278644777734485411564198742124204703348078097930815730663671166044862595571737509879807120113249179980846807215742720381490764588001005250566686749720620549798262701108242950810437483772149527981695520442087344973146665747046748124173627911155265720744440768968857219664170006648244517382788888607967813011663293917135305622524629013462300853778386981355095814629083414073642622370533323694421989268520748630026553065840010804856415740478562412343656219768955264824564621154647555752497637174250148341899348625958119592816358021055673227534188957251404816279895790103954829947306104966379887872284203658402753463677845261073152899764715285034105119020628002808508324734389067308592801602514628635852955562459311399127695026498145196096217849449468059470145938628660586346493485014567830061557973261164931470638991497938761412234649057829526095301752745394442583339199699258843915962183073372447203488458959107364124950025585264476758367507087244330799699059820207423712754380288005027163308708851791049423090863501012518991622222629104257694691567376351826786555922863355946412297917000140993751570126542712111235460834477140251369258374572151189236964306802051407587988074651811677149353380282457757671767169413051755214729860884109215145431400485424911775389432370922788049839586900616296460289138605674782955121194288351584125740569705544446803658968874625405192871496125137819303817841220418286221182100622469900015281591132595196141788294123346178667995043011882895606761940454124627726151510447922916402626017767346585238036540182553782763798008700026519732392065465437222004059083528223430671670142637438607229777035961784610703006786870626326633995461661745929337440266710228093124787574562439288644413793354447518111372923783894431077680661786621173548726931702246511709211472012394713957647601956653635826991664447597176475619405053831033918687077207022737409644911489191248003308194473477586028724943170472543645686968808457350248207057035565345819433007002403217093777738954322796642317283481833809208541394128060737480070558550464530062338800063575799516180096798612625406464332262204526287918337752180455318685412743414609948839790468434142065127053312903587205713488609648614221668794450034419137072224204335063928522078885510825858261252963299576105287940377366840408295082983911810426726477790743285405946396305406140559331120835531211974745396951439881380945964472868505503565405232335851398966961969035872488706553654377776820120231116909145217312107156753990519452153898531140594746026650462018718214444680444650543961412997047636731225258816374428854946589684654529274594581520774428816332346877702567643340952402277231440339739181521080157496567888352510022308671271053459596890261802483832405646138845111749901685323393280383831946759045394615976497976241996812058867978260912377334294529515008933748666467769448553220511862411853555348092808219024658036682490664264596453295416860027014211645280943676732745169231348729691637288549168900360757878297178123957450126363792541890735428281094600707603087200601936731704932660941323121205458470166299434744665210879037200187016910003232981760405811276838372328944705929441694686471656811784203622279406144415802821194886164795046706029806201701407476650357858496698563472651270490575694793791340961567412668023388976009288767112332409315267292490870284750592028105530545026692836905846129898501833433939854678947827270462345430774564708394817818161832759992914055416350989863089003450440192654534576057018594200075486621748538976681570968700189919491255646189490807880156695593157999336665704029461798080412169325656982831279010873692620624487520147064928920665359660732702727970971796000052119024305596259255104936533891116556966374417041298666209410410551601909957416954760530943213962747790453267971944264440235189974210075068342785577158205070659597035528856922936535774427374783461400066449140771191394311351833901366990439503998630912895298354610880818570304288058638908545626938082501347711832544862982250760608271276737065892416971318696064458045202767705866527325236686056459023212512572132210809375776798490868719161651605269380298537008136066329094778313904537912869922439659242552871658208994873570332383217199156231568276253820213190246360950795257128301447866286758513334030186303873912976954541054259436601754592314921873474484109643084939404077641485954370763996550616548967534534781382223413583736206160767284433153678565443648460815807668499747350642793736346296701045547199206561824128804408231464758298660117686046816225510218464045761726249734625413646446347126152135036480222719338160000998445476302336994128538051352039129209738391593906840681451654317220908974893336546746946666714248727649217016685457112796426140903284145294719606294523102285460526329894322305660001950096903524830910001951696765948386625140198071534432284006481420394555595223140968015681310418718654883079607180120610312173696903314449931375508319015659339903397655419653007031840224979023295858359563145430506099043211009115747734521025560819962594053650943036918196908222620103057432676292806937289881762786747635521612525030820181954047061863638625905786979191929131977390999161563658239619182256679797410329651940695042800449315137052312019539780190402547967467215773844872120840637497213810437310300577266634500261315178187417901488869103468299219846755910999822258105100366461563073725367449970936428685914763110864104346510177249844666238481912778816482791295781700319351575493416447422505028548733908635144060429029186083961158273742622181416214356687778347716379740923126941292779762993817527870010383855537370890653983249112802003280379951021516522648681834579783121140948620522888683404300578012531123913341838488066774365532277543184585925534057355118452701792718747336853286016072162535815187171390214522201409968337014765279407237232204566369506717999956743772899688490054335978485541301489071321765883700816320531403264732578483215994039783202240347898974561267446532404317812211770335513978547147623671480721236053454582574270075523868779512864132626438659694789815608354278033228838724095641162833423574520142348021100928129133929338874205962985480966807237548953443387675730032417897901055948937157157556353722929693502807309136414246891123015829953480745859643940305191727520843857223726223032681698177469998140468316249092710439289970302657738150743456946939025261481091344940605392267974401835981298256688286372006950851065864735456585930988335774154407684368389538499150058486707497055617023473833192288984347281774585743593170379292421011977630242119625070102822224018903154012278133187925809161994410888605090760889543424213407036468008265604037442954437949560389986498117844204102138918696753079879797831078012087871997378036070325668912618023396009472632020278849370172954224215789152727963805975265252580859684668063878475543444469590052521739543965548216508635348339274925131810334153407579220565365387932975618614761395615853474298495909011806819917574462495901013431911465799966409489086963500241413227809929653348119146052728826073155443427068773265985544341508457171370586205725745858274902668641947596982572121407894796261746389684028607545389140390657837881929566700457170711839176449346168614855352288405910279185158607111879138666247828221028475663403186508500405528812791733503089973146405269458122107640802051588908221837862671337172641490788183765164553113255227450372747900732982148212916665671479802613378901220685939719212060849371112013982872420069143526228889479916570444770774054662643251662614859767164458371435395751844370104776032007931911196349028546645395128260476365155655126999789436013981089345854599971314590771958738452439606324442347725988874719303347921760770163786098001856031908262502790034807168795539417389478011719733167599748830168429866535613236196701853868050187558894870880778155364844263306860364630278525064197915732069997986517494579066057106233158649803816347690068188605797085042736301778360064022208626489878590161613389944562196559012305942921522284523214423237232554257943752378230877345636890029651798647564131494814937791636348216683396727308008474406876202166452739520945439057835844826064984673639587141992474665580236163002452128637978028354893735071236348178008780413946905559042657409364721836779746780779955964781983503557610472624490721945332044179705797383827429208954855751142917870931655399852912638954564056624070848371591243082118063985263125488493017195536316343536116095846218613373787053334488856684233705071365568088871506503295486587137311539243100082726073297229610699231225977383882521563930803857305693766206647189180393864613654963537912811527408290537232822403178894779628608984491585434211013665236931204906790613126143607191225037888460862340583179444509073135388743782603999974598943771469942276293356585406198442286866372162201863025830918321379637533624603635162936009367359035503393820671559739839257009456486566069047338674261313758305566074082998493802270201988224683167965533757037224654775114735902422595617980620073807253944858233549860629876563416440441981875129731074958401679143289703970054620719083753583407435675616537486944580186216654595023484341947897257838573894423320983085324203558125468476567810069818822020348847324906761919233315194989396112355694735391185079680172360911797951061605300904520055462954338358843682809892551269040657928195907229057158337708485563684129466988759570129406125044254042747801205148486293647888208874566844634891890101011885537622186659276964265926731016254751138540845561814192670694725359877020470177269160367785179568434582267820893738219998820786901115049366013742707169311549386004766511712096129289072850164026878186336452290395520162666768838465858548631821785345786109829330579662651244902117465732275861981402261280718644497303046220732636657366662084648016527879118382608046406433886091406909872054890105208879345698743083794010385736109785411572759668574662577002235713552330525268736108102600790568704264904907090324103982637893154800883700879314600346053526802827782085029602028407510000020487012885519829109471260679676554551232900823156237509471916557076497321831338990099742125511084520770604755198530562415430028772338353245547270608505347560904901003911682524991051829237582726261587069294272509997352468540324549924381747154320389609279935378701770725772862343129585713886015298108277410771071586892456103374989471857710224114486036917771877069917590947879208432400155101693373729756896094069789281441423177045847775895519728885910032140918641640119114125591264777433064588789977344285444555441720734541654456463627561098955536999985868552331205172103324650484271048090694910102156771657125345818333360855913310064848423130248276243605742930760299648966717992670863885413623495812777014489346594498411451163851719958888789434431533460858388784751554454011883138745812956546640675805694866044923725775710680681850201875779359006624020834143534137927271036943884431171936221710671866576351121550996642178161426409140286809423735326013357386253404781814876583003595701662677464815438996987338891027802414661737490358823976005501008723922781993406274862801527139057202035597985878829531373648116606059240212212839063501529533650002501074387133508692359330712505060558562803506266865539596975520089673615175061747387153541660277391812945000876272012238813346377989394497876686032899972416571473515308684483535057436133789356186918725221921982111759243295473031988824923653146565246022034907553920596017961029010980117715431998763176275749121064682912435531567685196883873966223447906390343817193205908042542262716908495690122520774996528564605755365894241360672409308773042521266303708481545132015850503235351368239800056404717730249470272360989393942776304559511175270437690236030071185825449759904565663635849886505763886471697608920185177102726813043494249633461108078314062202097337823741323205990014489141734957978142109630381460597608315141047918787260837131187124659744360084761696022065985949914183488303641057829585993382418718247176772211637122800554309311054463439451739083036049020709638697371808231863566652320604840918576655253137811714549377804351139604391029128249610563084982637182275151796273748070001216288655084173261099215786029064066554397272254437632971656633189449684985430529646288287800329537755335138095193214036071575590987413656035169202754446679283355618831163536113408451020600614086875662706655400162337846573573720495289754836675419978152797859307490338204307987694292699075359815529551090565565805073737226609324036018518145421114995851472803957404035738804874988319318861830981150513805314525891434728083107519932907581288723275033305090132068324609632837112963703934790479616632832126776593223442936747591940426250473024795560157604727282246465938414171832669084041124792764483545409716134128188840418127719719687580508375375029509876650114843163046044369047197509388514027303149070113215031195627695696582736147448201931914810405937023447273208741349753251296736912575370512708806265252709984170476001913642287705762947121007473538036445865497532700889314676678212182984808552533470018313166028361398894748207439409441821427152605573354304812948030043701465035210567095864845363631908376555169266947337894564175655842546911757899423915440224670058373950783849283590924642709358563180549388286655269807987857287386830736284185900600745129683531731226668063983092077183264663820637761216510126666017670185033611161234891125737955356146219345216191337031269494404845531505180492470485342956081629993946783226861599186928936925088502763427609477727487754409397515262686116747706786186291341025705137011353365497171688990268545473128213726047018521381612866709441459820929052440612161629901140579467053011186837597131609202216128006590210290868981893217164835797283681754404603343429091900646020858815200784784446349483116220035116987550336671652992508139571183960602519299631843649764806325227351752170456406091196250429255543700531428432686259266114725100962089478807731899171737734450637101995481029421731302517514755704930168236705552203394024282431087442763517715666612572290721946375948351450786951109629947794930391949730916392457118072230306972341719868633992125479766335048169542374240641750373971808327091684955909429455746535114840584909099205249414727870603338192122339480433293998559614398630724011567480868574671350240630996549201779927614140939751673913713210589730740304954276814339885468531720760024078838527016949868956096973267279314432294108826674946101287075444639329392095007124243835023760592259371850698480008742354655103997087863794396913830658966941246391531381325273674596967373721676841559190189150043713942869521235192488947467964368846429519221974534813584992034297991326848897333127078670836495775073418346643365092026885753939610688635631984768771763790296648769650927781686138613948681814171960679254020106028103987073939359745766325215187458214648859206848994064895336369308898177088587126391899281449488174389517327426115475805767556045272454394880590127417683459805095309001844718860636747509253125161869507022557772637752627792573647562169778755513974651597345410159377823047819632982379134057099848373105337017057440256756724800750854489335786385471940127595811189154861139682971356116345901462220515243124879278070361925767777650736718558244499210948361882069487691350289914188306432048426016006434142051574292735854888694055686321810654071911453784135639539305330236667037283766286841096123693626030581159060995970659766160351176097197080120590096385811160568792139004815055946835181812152181303371408690557137638907195677765054293766685374831940343934584440087630139182335572303739380365439970078424469430879361463185853251250318656774089792746908675626051939084600711661718431658670070729265261721028349356280596469852090368635622313770856359647105936568309177746601898858520231533387370921318557230061991439854897285644273220176172387435002181422874872857370576235920854273870267969097256359640003831479203563050703243728139538363553311295782612177407739048240227556481377022838138449245732226114446698011945591740664464639366257020570672393213115190003192742201990609308174314802322740632615059345138134843727406884092357164256901275647304034782515893456765276151826307301262630649611614436558498335774705981926670339046144332203565528063877165683133360017278097716135131256680159564513696278216212679130236245255937785224615388639994746707201677156910567803949436406347080850172797358211705981544091339903460685737278744940998428779304620447553464381460703894878857845898671875222715285394235747437195444453261089240320790291388492574671362708582300898346166194519410496339610961267430433923426387523800506758434643627984399960931467600691094626185385242126435630410417902829909803347869050813736217786437892216648712321060730363293921583772359892260962407532069844351085137559152083492791059440990138524166499879674665044292545213567035037004952064562765652749745618385222633314569797764552917817100185162130757194116495892635596270402406984437174547269218975981201301713461506192766533928755159011639018740572142867026549512232856758276992990837617614431726926986542601470532739438235105231310006275494671700332759113308247597628945064359410052383725087497859803506071751449258522611842688346691095966356767568412873876879824104665961457652367327310039623274636100421576366426867557228703614154784270877189909047284524616822147928593043232158859469130795092534973856525287148136526774359341526452997059438278912754917709575985007815413367824762420285673434753765042594612738803388300007526215251318162162280213450258250758994438334910764615781553334275718088925808142823865995818274496793338550494696607002291842876690184363295184358398583786916446114699802931105936361367818277464662998675023301149578325575861550423674731069377153792619338570110358526308961032412461523729529513858896394726165679291338837703684250630450652009932037633217974057221501031207745896309444575172486195100359333680561087014339315155626619791944603396211174382545734201682018759866549368269406937470593694178704197620978134081634119422030227931645088572454469784389146453652998562297817832177351029628726095541171718145224868779071566251789473306347810818287025028916293080899463817207828037217904290721497236575865906367194256820598281641296716288652308102270833158094076424650003769517606300947267300570907445075854795144897501908459637859463602556699492964453374161612630775718627555223644312661752949946871356566561915087012143688713177514993873070009692668736186358559619833099287864297212886726268327793786139788432460657789520093578107075754573288628967870042954220798284049463465590903591093357448987580415511914942528004901669899267062797325872538099296636258635831544353964534931242340238030331558106147381152416760948533807033967633972238745594411375402455406250441827118553441625496643719344108297510164381460001752612740213415153072489677257059923182563962777323827816765880234721593968530920310957685523936461056358354834386238192948930335218778298648516081185912090139387873699878108809049466995925859397067266627224626586243600816490705196647960930673198666780057900761001169077122731967019634597932165033612661815828106334465347716636114690222080799419016000770249326099632869467482822809157638077404110919991726569881659882861467385994977329573018138965374183320573782577951698941817823118203020420072113458443746368861464129609067116089430982850019114002772267099335881686856408979387807631974201435704854056141573158954016293611774087663745468367464910342786730045648071813710375828203192124408255030901677903079098255454792518630176403480137662445557999968315598312501490780718670668860861284885515969862665753461135906631685343405670646883960808334459604276271818135105716909825355095160157445219401068476766589320546576053485426791180619552562310762940288553197451514285455860325223466419202388490260233400124150976473787935511867118954219286651649543900545532257429875539037498628413120194901174479909689790634390982245382292395712856932765783792816151190638470593778088678370328518777093654520659733473641972762920913053828025703606572133672521827243853935285541317834709646326201057486342581229422954834189723025512274986312701229639949030971496226924328522965289456361875040301971273342982688614777881219839120299175718912929254011384227751354327603604274577757271491391851100457009736482052168286688140088964777537476550556173290859937027192005320301985687057096240596476827668923431767870264358160342772426399652239388321545715304199748248990096654019022011861617229565500833684047850796902107409256462171083448622293373765875503666940318654303956849495810743327893914568278349846707420202161706031956993074195754755904061248075994311298716678409168240251695399026451932425063209585359038520973104004366147822514775300330549970002167859387534360322949041418641309610628864607857790165083963464909215631275332232703967337197432187421912713953408597311210189883399581863463978908373186014416532902103544328052479467027675962320311910494807506911180648912093009224778893647523358320842091938199483558708200404516778564422838288082289950550009228240032472373987231638260799097333540368489344326787030736702792068024931651349959172151775820113717234197378958948589558474219348429968438223291798328609891370599496153642116102737067763761880584023527298974289533370127903973793755315272351536181825913602413855314270579593418437756280919474342699256668868594604726631818782807722435038720988606037000247245888627671176223630394058412853827635042199337550960171921642274217046904483971195030349422692519855553373733392884205418192494157050278875544366361762198626574702271606874262819944215117432403729608085701705974258439753152727443726612381458789575520106863802772938418881091607885105762200812824029448305593130969732433992543895524229876523197792215380933681490736361729291711069878837240498073113748721604549406944096992427828296316034521191378532850260474602534778083992014098194551569096741476079252003199351133115221109163988201754789179823319996117232232121405716952373523657944130938328604455407836872553537264987271024979579270921448287916772753065995707174394549795481805943086318665832977153550841292361734471972603972748326910306564069571522009177147825486904075551812187668747534104288102645572649506876475951665526639863804379263478309245380158354744576467985332642185066735816486642357775720166843533799713800473902230934127339850232120221718517680164907914678843727359784107378489536297210530424200190641743723757185944293770535963984070911662858666257297302729130090305832601889073929083091255019384511418636652028575663535439507157967022784918775386589518126480532771852596950695013715894724113155337397027126143186378865999361600651383984073893617556993657094289955964439296695396658668290830348477646150989769369110755449440482483628742296532755025215878904102968314545553491576572651310887107729557856804717296169249879283735765711532520835362348425494513073783540547637174661255191293015342009323491086427712375271123809715326027805947965295218714393538197686167385754493335392029396843632303116926323629934656041694343466555308792091587429494749730925426911911720255087610384831250525551452407716447996985033127906752216084930262347044333521008624728418942320050174951787565389845764080019566254786931895936649317790886593136455925295890585199539980384792279466630010454260456228173133798779709630622720695456769490619589504562533969334763392996960766410910021766870096400597188270131289753355198503589757611143956531880257081479706649425699328260318395764591340151946823746330313191439088043113103993528560033307276623814165546107673851945608633627015249863694538851833410028575890416116088795675871271609093853320932090655969505209726552844679734984128583124392782954572796346801495741896853646333207852837922950651047093680341565075706484823983334397086145015438902541261758071356462082515236474588791202552424404461687534476380372482331129186410245962293264147510631988761783325888316478109415579728983591277171122470397687852040959519878315200507012517987097698430685423316445939682070444787914832699071904295016448246140413868787642887979682735612584905376803207976257241251409094529007337352681533883786992359927065386531559491008349238665421390750646781785732448000062978317855994776970357537474067613374670010072261150444802400235111036754629230644516060101121793038302976689151323744421584864862902418453965459298531857144411268162861840079135419958190822183700293938226589327288057963054032036479873857118691052075936208054000824494592728051860579686030082404899022543556541797737553581249408985391332908025250430280034728702871782622169141117553060612954967212242510073714916982994406508475831126543164235034282075967313748260718252316597786890501954310240059746118910353348867921560200682834440863514394329180582067681726351729563061456374900287542517622106741902209594918829104360664512764406094901851636996531806518975208062761960578906368430297919225822047173012882937620264217723209650367171577303621333365507859516768430906908273890637143906188507550447752543672316395021813566061322931321048433105143725320197386214576031534265345601579445336908144959845818574687327963834683544439319969374699924622198383218531387095784797585125589541553015156990662529607909478816746439364439315380079966549003911764528963147455480188270462721268478930528613089413784601394048286493865220676467894203878128639916249346287563715146951477833943518850684227327232575019909050999108686982437798261760692820877880298958658551766994441371032922114208972682442011809977905947007156204228351911935863619572881540741925674229286886491976668104958494609921468280361235625461715420057643193769395128821823462162342987903412041294185068184933605108738215715610423848865538565915158508974446917265101566221748594775834450761633242127891309557663602927770661840897305593761328836942342108196013154628713000604849605084847503337236307436372963144905698543378550134132666011126946034539856274623182859375699941807715415895672711943226475974658575488183664837741669802967365568678268425173826006213772855381754587215564824423818285713138097204589865818190130875178340336194429199095526594699618157475524847170033702575465524362118800348980152524860274371976606398988485889822336757799802467009248394963419677206409549894798111081391854033951898825384440421838911943566362723421774246887156163872640422579880319141850573496155760426837345375912199690543026961147674926430375652698369984899000409344731789955083372200209048600563685872062591490719563018919092881202570693160599549570729828061236783988098196478442152572489574993898556011198693201498433212117320470705432958647976929704450883015353926237509204646784558243881388769341847948853510357771285051236075363857714454337138244596014865493313792571410276348358204503933031773807152702912064180948938627383331658846473167372329488112642899745172988525419697422043117915554850072508679935339290913307636649544453706457319346811867595844510784349379171328573204013506143088285571522288182584112717062224036605987434405284644493004353910645156746746657336118602170634343335493526515217860094748217370557038620128340106351718024625967575632331668900356758948354557634569425081124389436803538032498436874161638324706340079395799572546642804276644368094050863004667998190562006218035036522734981953261994930175373543790094668453322561897975647402314388716128332403797393615940198186696945433309963358953851859771498700614445778445713246577271521436789883114309525300939277807133781868944374088386274175391716181907031005356768628145380387519569142396931492773211378748946709316255624794156921396809967631279379339937040633101794963726213917053589017914663142540921258859767194438297488224535998019393941500643478254207030849093521681415020351019050953673399776458362368766073171922788667805313112213898666622461152992201673074570827819614341243397955152916700991775649279106521681870463426325388147858230024193264540273153415243857931049587129323133578968712517956104166516055277914668248007684211675516340219050774481411939337420973626577771071938021282529118793299167504789489355531331333034454192549641949893198815962955654858825798779926481268592148674279293773701439431005822403108900275598369901921051170136178919056898318072324291746308748794572585671942293563506131054054694473235432471542795205823388187073628077073425529655307965687216750798003704487061430625301089083008794113878015556585371450636061442476361921851961580129224032323445804830958568596382749981032394210011499537640062541878341663976005045841776307694845705198631965642995793323257143692669734685963502476902477954331001296875062218142268165076659176246619765471621390922145105085471807713758955638827566223162378665241440808279284983467910663820869245090388945761708953514875462314146134130946899977448434771970094005236837180439722465279257440282931743416150422299772724255025763579755810397703606277235463814625188254850377308189310346708929559102405245880613145594917653532814592973512581419738600291627135248982275845067700596755956431247041058318073305318001519032521951097933763017563202392010065789502750002574664011135082068055559942793835040157678363662672409642101608409364642048672361039165153796541955550036266509248550343927125190301829651051612966412203969069865327568796852956609466792109045694386828482961425378148916959003768033827300909479725083325470089718508311008622334268684549120395456864986174703028917190407080011581046445547530394859388881187673903682183225397376118330137241916179044451930017545438303536488163443325529443022182922381161413198310001873871949619557313489826176362916158447104388602666672809338901353371385825768583104985308846753418592728178249470372164591783366797776000660425660579886225127265276608368224994989058739953152914076095118111449546491463084157520321315464815339190212883702938803548519912800177940988974127739412995240338538502814498486666080246889092766619519787181760568801263452180137294674323810220427771140078861938647568678856616979167872441815582064354046707811447314376013427341810876620148879872757731051679314467694001383224306017703296138872532373968239627961291803890273267198707978855165516049011520120797973662022821851419996382778778213431207865657314789914313467482176692735179491049446551767109456748535556108850084018555233551789329355783200745340753259531388446944129683218046134669993316041823508619451981468981402437610443592944279090488103553268216207915005548491103627568270273609232766615587188162927343180418719508867941133605013579678933085011264183412472537829205213127328945340746642237933162485724077483236895013450990144850652243843251511132564014120877043107452403170433292641980047671445449584257854894361985762310023835287827747688759983545099633489740176413317852085093871272317519718964100612337511895168676994430945665403957225293589262737889961932912265253156849274157273521165183728876868752344122045430631829651515967919045207413066563045693876268740906862182250598831732874723698046773523159337243255700271183699919703458999097392539443472410188744611394214752934021635536592254679611198663572572406990042748352384003311005975726023702974705315720221493309748380009570270798791215527679944764373993617566601463500149761413637223009101729494881954629881988081142898446985732570068707434518048115980935181890461765097349975923734537205808349444680902509891546930252199755289115275271556459326487894384833265238102103132052908387656535142892003693852337180479861698141897052707867553444307542455555934268745471032671826303220223645511851124587657969472183027434364587663856184590887137293889215749425938346514300952138257130055373565437210339435112451778247881002728060800933666984847481726577602324655454239062217086236980119322523977181912508364730760179183331473102033027803453912633973125573590295233219443510601691393863849534334005409085617110217365872782803664832118622393870161457844917131639951777999272756901189430953895577106413927426135253189487702552277811091046135995173859002941965776694078879946525451776452301328346489647769045701344679739544351932973828448783478094203862772146407052522019351537807220298412049372973410448823903953124165010685096296984798810877957759265623144163595904935197674126442541646953103249275894354180760303969886598831165084442362734502956978081793108340941037033637389427463113996361272565381993552025291343605242747801595485916743786677025460698822789250732295109701330342423064061743256830034582363944340049312016820363269617557405687848872892264593482500751940109178184173209175366876741381800652596841283485088296354571701647697658204777552345240348926430807903005832798252737993108121570140195006500575205002609394851324150101198974229553699614054095905081357300102256548730528638161302905499437506581869478863703090082947729177520048225828966230927031696594278407151683165661826964131366408515441070275813657696605738917835772245628099155622066704901113645376015170685114642501828943077853849536614709133172891658118867703279040840336569301599836348261624183869755352940346204258280638456299047424987966090041070886116534563829477201571117208948708347748642306277795402819690104628708798886564537574660790982021326574516115522685653342228806262245026017375906178286340006159532205354465238856003929851417755952997134128614211255322657176462392612636374869401011930724068756563379294313359126028952007921804067987367923861212697292295585788097513361191159485493321683844025565528102727951912880927750916391478018699914043301404439803798307586230008238421780188280270847319199863346278865682535850399859004938380183088255479106971573188113848081698216563431292514288969148709271330765657811652991405749093002761861794127735171335264010941604884067463136556058448958555698940732622417543233289151718355718939188747215278686946241031953147836829046686875537387458649664569974785920862819502427948273693036151287192466237865776206912455930590807159421439522834804894002654516373190084732271908772104756670047567557391471804523992550878688538278876768137915975558783813532329939558415035490495510414453761381779119573427842260220055416840104021436302425552470514095968136998629847343600323541794740090131521834564928097166769083510119114618748180749403557979302253918684131014367959983515625333580656403208772417033813710141139806791043328649980584977541220622730335020098211557731028163252939186524747389251912706760877840991076326782913852871628204145583461660785721734420891207754006603533268623696004208497394044265713301891026521793034306409693236018815498499897898097666644519559540697968315898421178768220455100174425326593913006988988889495088668621161810787827163240804360228315001965745495209392684020619110046392318825248832645530898342874580359958330414252042087720676848426333481217068988768295072924143525586205438001250113536549505242433206169379735628465785353560062382831258458665144173612604012020091049596783630791080509735748380555094042520798360252430812871363096432397694874740076378685517128694137908879517894500398564660674961450129820999035808055738336616727643390247672047436674976710918019591862194747793912909945590711068534172769691772425047653043933878236282457348623985609022268083867133803726550105733729458440337891309722028936798175546620600250719265332997346103994363723242586661118140429606397491596012710661630561824761398815765693163074841842915336305762450393071522199579418342263008974161866330862301972166389476029884711758029705983497488536706675164632522167732575182683055555460658593670564282285500833612637077371291455529806138885087764410718312998497148794310359187467810216398593673114891287589205578706341884535160721248567536584328837415790870911510776144778120446614010643612340836596567181599474006053753926472324559369316938076887552750820267808662537648980109859547113654246825658149432734022528548366357320621616845966556293954944192895893150993642263355101737744432930523062545861129398902458736348342041421806208236597767565089483388951192088134738295100892662702276463190290551873760524090648580259286585042072309352688196495403581150860146106768390425723964605428161786188585585496957775039543727261209839093468431732461132344093400969164640199097658155679703972241385218539957418383414288426635603981427640454830283906520406712307176242443611013886964153229989747585530548204050411613768521401911988081695203754537464217689466563847451968923979675024068280241912753609693131108336245137118138718082891434989138539452840786009086267855922586622748436930052214087045960326858895748142366807190715832966909850737367154308371312419495650993588387389943154565352010482655601119943534224444254643167169747872704071946873123361343775623319776400285087973214879342920330970836152574175581659688393650952554419849333520622902555202199216111123348002133062777482365724815469193651043930481521070225885358676218848752797954612499060424434265267010703354211871413472841215388550695250535706536917685291401461745060452511764040337692005061296759684894221116243256197621721477627603774615382692218153499933467444537773897050875929413845642372185292521928063342353824718917640511949341494559920081112961603441339815503208525386427093344411078517839812133689804781389048253709646081384149801514642643924717719420889573819725481749498698861569937424155962412540389200214164437235803019616253508729544781522878580650609608365956412329845673757112299393621906257489472193328942654364808957085533806932552900188246170030750910919055202259546316714064080193929347744568356965452046022231393677940877411542638768140272285603621809838312022124627730698125344916889914714904662673220986181075513711101420280275661349328871656950107473474655779997075875411870246560100499659813786525941467520264837822171875871719930984908470807134473142842515244829938471124073377054799282174056199342314452389484893110923043797676315089629896977120267155051671427707824786616098063933057395180217205694277698980085359381204155336572151226154111099449357590800499924564312105941851338017431187517342134493495036604819711389444252459690866463945818505760084483826871092114453074575023791237863891162005679608375322331000496046476469307032838874799143130628576285197441800929693488225847964093387992489918212287605562565576851082036085160925054115139365563010588905137982532702501751956066378382516153604906603832677878816449992130559884019614128392086670253913802235524385608151937942666329465974004549862925183994914376205897362382036750848007404038433531178350565370066131607850762016499980693628139361432848504148731123837675157395093111032265640880240727242462249053400423486600098504688870103264052552028481653983666808951669556642035792359545347326002538484196642601910773444628635391733558306962983149941449833639337203135232215232576898361534610286767918465064209249375320233216526991085936069687654884276081458388871835497189944561210099816903682239191461829602181710373644289986237349490985104816310220411895879097980032075795386334571896500872616970049975177911034375005411268760686515203861693002821721889390773757360634835175352887474723379020925630436629175826675157265231185093528384719371641309666057772579475156908364882772744163945656053436261899837372826557228012920992135829337655789480535281800888625194820747110563612759391514015897375800713492300662101963453026926936437577177876364130032095224175684264315995324054201028268149269796780048097595562241015985446710637460227623948606180017990649495558172313092975740825285546119789786792124526771054517813128181835113058219461605827328172679926474662637089571763342993757661867595677386298614000028471943326430597955907835778767826064426169976294600927026783717088146434498707881841773981817323255843858480211113713628867493236855318028752964607716254576360701869892754248013275346661402625307124265918983368194352101225068637912667575382522158031338743275867806884632827171871814624135278917624194311347887721664953229715796942204799179422055628527251060397667415875449701161297909173606298192651308190986955299184133832685685029505556470523675915841950537435404145377704043414716357413845433497683828394858363657219004896424428127004423724866915663896570934907951419842853172146811781739947238037261812078957579526620612090782246785159522302594564222983952829736276403828221154842062623312498630049312009299054210776293657663261000967236086302122775291539305329082436368859027998055278971939803530876440816416402137470165640920972702249687892187901108166402957587769149426827700094792171921616314465210163346834623778699501442410905359069398188535428171758934365715899870017491040454333539764962109896311660526477928107293309369435784820613197004964404158153409748608614921279394641439400144785678199529372374866846382284169692915448746360343384509891894109063627358399941239620314437299332324038975820800944480599572313491469167731949855942390326126474316149942928501245908348465605765550538821741098835700938718336416330191870406694873692871356696144142253589331496989491637482869551954337827600025251200277936783320337415102753752646365566759600985548184275379929830104945820743086699871221494584830638868298011983828162425281214898110004772806902168902641466606907577789075082900326889579086565535489574400550414213109637898113667291327163857301127000894955882322516924675720746325742506624050398748118711308446278831619302366970327183641628054858031998326988114552643163951286520849583447024924288195928979226849652341636441576144801688856181686421721713165293192408247425838755126614100612265850842099965418606259064480933400381979958395827958084012359995725586048010860652844800747475028341412484396437426348649485136830351290747319468013808456952432088382405258414663928891464537935974389241666954647231972235279470940049048380511048619701806808648092352221614088658210075881777403408870154450906770984211127331693462415305992739041138857110033423123954760112878517762756924339278811175319405630198107309855042911577034399274773193447323868465471109126703782582851543725016994929649987017774365097293562029036683870918018211111091489104511595829908105341082991924778108725659073540124296516978499302443097847901594213817986313756233469012476282560474005012788312928526890860526745977795584637696257825196460307200260636442512020445524388134281228491256095565797897287688569416808845812766733191950883741965859753569654242239605424791034637007765553458368883836394071575014883447833973750810548720218344507031233459222211742027941930904995206384762700758590434873438475966807699221572851443570668654510921165332877621928451926907200165674247376461337164482578377466453750397249744147103983842352220859078418646807333116790433941465195135234869841936622401167713777777625636639207460805498888545853438972092172275878242477351128154265833217597309122110441842123636891069131698412614486214392686726387648332960640112301312326795555569611035001609018280388498847347446706340314782737406922448178583544788520289943580895166361551030989336468258999796306867990803673499318351022607347335617679372290540018079628950803856801269752492609510982310959226428105806798989918848941194440063725035197634305920858075562763407489042353050356888344901755071261542474403916236153580889080471174855068264672212524355776003301985727903868186385635543902678511314013576469246156649713887024036826259522794561262978175182269194413607902874063141675487388512382127522862437678301353006041756730494667197906740428456196982022107044337836820166403223206883241756353784681960579376672644741952887525732670488658789873624207696329474490549236764485558146494920393460979780284908288506685013206675273244432869935407522717040529994798401417400501186346734069120500708792269697117166719680766051374319081176421484333640857213838337691506386464270155447404895725055041326505495064187877950696625267781782536510720692595021312692176231110622032248094513377678537091123411208250176368734303906763270553490571967035624130937089493592380089299889710262645214049025992563470697834507923248399478194971150104158093716024002123354390009413973231255940312398265624472196728489726001125799853631180877849632233339755940666322085929642131055336484019132406016138221887310078995234168746424432295810805963522032741169121973176223141254039347565648745848657932700821993233405887540008514295696135274196354751137354536571591300259995467109315243996447413667772027847165819806368633099402458335762506889905910806394201560206784052051293879167805727755062440068533220189367757360779633103275686789028454375806296842915013546699756240336942984986919134603203271744366588697781816797074130905633175556931500904233494963057277803383164342764681467766977501769195721355021320054244597576273081295807717851263933755876813199512313544269871372065160392507055744468902910592977082145923436599434949582068203779175070293361860760133221357569704244394733566045552027886543023964366657233216766876864859746897651655614473139755699550236950860832688735407807280177376160432773097012216803967687993108675743393700048029692902652695285949626115296545949841030918420437226893475259503428133496622718875776248027266173414134426011119428459435278818014606896729115159481185478725802707769609327528372053189882282415145245629627459422742750860686308368644367900947547833543310777920903778092856508262804669213814636954839744780648893406227122010788719245186510171533079690083899349265183257971947702104430610751547739563400595261994455293475775217043822281110888211020029932602149450276260401241339105693710670943837235016211600388814935148197995980034167106200623816803634092430871060855116706147375633868146213789992252381784805991979114770706147838986759742354575880941552563696202318544882574074938823767176782762623226461150904241434233781112605375504832057652550430302221214156980254845440931647889271338017139660898659597489916998138948671106445510405737916523177296412374125577042060805222149023184021574873100079352154582887324057646126034400974735617067245924311314320536212175399821983113527654702355124532639693325560288853933034175560673030376554354568498073643135351217362876483700336000386154738035210868475842623819021499611143465992243282767747930264841899107756646707233241104878703225246345657638195800505579628052689596224478992599761199666401917802243538201828581717234393837808175606241372723302825984838581608493941753440116773385447340311991291119270395075915997638260722814346410831621787127308255158823360208457447692521185098753675064370353570148762736621652757678046155795137276865008677129821683512948683434361862136081141271123046732825968094238987649747446395507028540196128815632463930933607174340616608385931059041693484952251344252072063448950367036731118556035746344030059070041862298119833907662251624956578657848620333023189314525006447340838281041093199572410953587389719498913118655259488634091578125009053124424639816737467864188927578674993233673331792006274533901496004095920834192822692071320689099206360756429043856666147389796301656909854995915466474595447414932105052561670247383283087775062516677539429074280975779256288835112349017150210425004531059554887757404191845456006957675128324414884886265323107542066465538785504378257319807164171747795762066376826169641080716061176556759414911997192415307194937413987650039590751754575246645406256973729821004638172467429667737534141425519987441727591729779894734670574095171795637856170740579354498702770592906315624903543149585395901880709150418983015982495438736971423528128084957251133851988972843164571743024024890992055308913528363413596569921963129850941594437921492128150994177212857149518152345573873241924029246428263558777488761833602861367387578605999289616088268769251376913037394680743320777390411436003079555927948483519122930923565053539639625147687566267804370131221895572665626150660605135702668669242446007141222728630514451565706835576894663786687462406084021004916262438545708015992630614652212932318812489821767265811935863446727426466535578876600641970148542682328070232552295007344691539869474774386513390232380776088303630597176180898681577970380597698411597494953766089264620984262004086482311525569134532667294032636016003019388957647376930496685371539196188006351862499558101473561356411570541719190284128321105043646094594585994198451509357804452409890348191087519564530145668838376203895408800165558011470071826937709696635170847923458038272366648128554779028987816553992752191676039849904976086316743144870107660196701380113118606784376133102568125671558485206545735850768596345494219623200371003752770890836384137128411428136884816958047543986209664501965003186734744035303988948006538693567244799268128371504437082585390159320698684330924485801361617181475125681863637984535748761986946487895360968494802078703343687329323059127497352791798435088352070516269460838243972717003064956976541101416517581184139162905220885408372887496371142214439700239595695698976634127093044683067637421241742485814591127684594935991925544165977337854886795995560976680919329781374897314201891851448800454191552694565089642295064178295244005989359095072087998229539707706896319372459117440417235679062417761278735070998531486679606566774793434324176614232750400594786028557022610685221247304947971561139519395863239623122690523963235463843252516898475106162003310491001344838141043026907576255612266273888243043990982837531669044466464548502740642567412431588882994134857208172139103909340944235430912842172969065388019072638322737642526865079586861535628212888867045361666175797492553412915997258889874355391351836056424891783088955571035111345650278813210373042077017481898651966216993189495812259326442496396222979011126371864867479005491811423038218050965554958477848311808345075867917136748940234483382850845871294700359862791276421612892770211698485498042700045074939887250364476550733458073000428309855051728160118782122002114426524684420409029169402063715952165369680891791892606150999843542503354796941537268920774098888615618207385639992083455391299609649371570210679347897037329084434466868874096783896414171650335563859450316321685396514331297100211984429504701281612619344844911784470782149422430832846062552359193244623168261741494906356707372402674847241273364501242130101184759554276141132689061015342746224411913545438043526968285398665705600440655242025249789218831920297783111242871403297528179556126048534149358548011078737740433216786362639369037859870561698063962806625118744277683808301345623553321700829725757348951236656317159169222161074126091370048990131700698835992694537813865404839942807313204854320506760727441230138496223810567086598949977680747692702360665354510258018360264389801200803112515450121207316221705801599440959329344998599390889229967231876003956187981179994150528793800045368999930596941129201005766258100621805175867499574884816653611391978157436995532220762102604132017445803823872258393439563911974582939247589234712629282559507962378360534946582164756364287829090538506797255000003737923249705357390859221976158870369415072021897958043638267643771173611604822797210943719490761778698387575879267847666108653017171904930303387974793731431764664014597533355951600229491571366071368706390641497308169411790945008487169273987106231052094170146164833840071913888270269774211796190274708328698354377006322853367337563278936500585027960533624861984780880752443057261460283541883593149846505226537548508185409627026359093508870007959906971545599980469351339475260282526990010580069653110028417411001462833012613373858540192926782481520977160973607934996756050439394116653025175424569173653424726825935544661978927309529240118959377319393321243550755182518681349332056604510295367106807152874664327440546662323964081885607761490341928876032733212984244193112590732261966471022424327671820987786321311101077923798540388070847206406972412254682538702619272333330714460512134064038489514153948680519440358025131157815016252732638560436329595405626282288385631163505854845209251396311636269240626747986488743562980901612383663065852728533073271374851549444486753626541782253734091831521303658951983701661002104367754184452162204241521307476638373466786113526104326460439207575461351341619775888801531157546151348845718737768395286164153904775455365802699775716023383845137511657164746472583972054251734808735635858068612468803613791197255460945094154182651263831251742398332722277453586139331197832578691296116070252837472183019544295914897385356311282968921590742380669823257315278194530560753594094310485533198146139466878078181005188744776921513222056780736856733258134317534310301898020908956390959378305254832656387883410834446954841059929285878403703647450834242884395343163017877638937783101871052559751689188114714095302989151393603824763731140384258275150270644327871382139065740774913265639122205087462210214890664752749278015216120588770035937896735951183000168224312259288904104035054348284024103302345866671173493648780095762333662827593526980061478891460628778609918163596502073727156054880548791677155841004169646746147492139097530109525776221977277112649877897710602537102216527623418115746144639269477509768837544182782566868598353565285978044006032324509879107321429226570975568148832168278162386240164538277937493897427421895990285087496092325360278579155238851973865595830465319817283915338132067385558722053922957620256239199694142351637691800863556817023531695341458989929304861103179975745142698775358404791163568981787398545549066897310683877169146443617574622091203449555997460994779859098765444974551043528368249441954277406689986900399994429557196799620581639128084532012672016594282779674388711648259304544867973013912148823227377046271658121072162842734036602283071829528707913140308895159500271000100681642001032057404988913183856233586496265688922631408589454152270980229971685208558373443703224797638717380080142584030931661456209677513792841235811161737359332661676537860497569593764247908617889990633564786545157314180973483359165786797112697030095987525899323314449904876666542416702111229287063590976109236914120231226272852168553305421795647696700679559797561424631250232200228247023802015542793835505352873981108087046580194289542324236161263247275429769051629741561964180102728568633291446014538714403047267626741542693022076911455938515755005768730731788911714744284702158959800670697318212230488539761592111617764764229167702064030140806974222500263775101899593035725980938645671328663304911799002693109757647219432018651868086337664796138797358310722208729873200339655229793120364356758640288785930359670354249270299422553363996548956250273954777895345996273678013720875322517268735009984865162323138581160987276756666864689478563929312258422932067074902849039077842136261909772187944855791168286863236265438692675352922245141517041169688001735193403348985611428228191000824996290317256311783601020379612607702119834006350935924439359404079701503512593320829711918853827259933547923085074693307406667324538833581382838800031695208185705175141033731536061270432418265433431490433246342899224122991051849440289004985578597201414623112645591918942561584076937106152291722326851474903886880511082853540342401896118151096399865596709331301297526156511747101712910915111376423460451339036922034793728854848240135341626891576055807431195444205325950460634101603881213663824973796941969786241471847890417913313850471802206477268868560491169684448874434778435035824054414163841356083566203008209519753370044202994657777372216916356855022488609271319050091119813572003966971811715817424613604468131415192471342010178687700810550699394949493665110392315445850597029245797419858997625965464726567142924262254117034013524124215788632718823843424454452887173186603277247747183425009941208288561581052762410413863584002347640297226933835277576309555682225241716650397435537496665535345342238447038655880229723619798196796699400909801732620435971956145791682812770203046263110555304323936087769152977160613532169141850942418972521754564230943005916273462063835847658723160568963715651359231412141165028319524278036884080822202286360462259393573945349584100882813635301865417401776360161513187581868764760684217515633650948300143650434144982108652565566208252649338049539617093253318408526259196548516037841808600848569575333533456462034983549109113896633259164537417310752449762378741158941896113057598141378364461490235930389507665349100079621422313737111651959296389884522176103705862305777984001931092883571936005358617078848204433564144129343498428347109906201109280194996149650606873851052611289611490447747111182244057127550746850877265833863605756441965624783187797483038418883725668951265374035026154046558367815233028394023128657661844831254082023649204965999268597823852587241895864226441665755592714961307293585624107709990127262327343793017061377512422593948549480222623600670877320950589708368493683273115296994741053047126702245176546102657091020018940218331386275236735000618989882005165075955314254441910914636350529240068690372247495468959327566909859908594478558532049599565737028796978821799906217549008065941029423622851201995482026787429347935559414862165467882356053848734097517778111928976550179157087213044650144356271471105068139479627833751095093005335526335709950720739511715596909540701179224019454715661959044373448326809922015468658053806534068810458939787484378154098040826965221534056108941005469931591488185531814129229697548525354735925287454700958179532399117283671196496976190738638036098803420042647466198503089315414655507410296372465060013727929784949593226315064470874020665979763774642972785128466220240792522735716470704220064088492189651328211115632410030987036077630079532546126373109926651867376368500090525918685515520186099299983891614601058476464624464098993389674402690197496847496704875067201343736113598042951163539663991372976427697943608464734047127420985130546759414690037997512739773823740923910424539487019686854320125157682795208214147995511978837469241021973135423002798237572091820613078787211903651436693578898965883486750354947060119879641305984205927958749389869808390882494619805760963310968967878903910332541343305883814410917190486530422216922374208288442182762241568938388884133578246870549446499717971938029539767751165610131361640012812383318865160112296411301173876923608946001893371733807895610284680338356538934245098523267260101844465204975042330129757129651574306924648187805392458211174925665550949384446932977148464164163488718309538617861518049434870608454858029542952249665129559015975422665141482775163038571652948965273914903842818181425943883854597291848552952660901996778326785831393843750389845003917489352233459486526106776478912632980078129212401119887238040094708849142249805683176224352441856590116637439755131000889438583729385020816431656571386676154639058847426439172348916182511805841182790248148490013540305778702393305669289026094022334220228818721658853806975637723748930366085355389605973846157760302510132812201959193785207745450300677101439323801777601041216940401319201274085387184385337409782568715135022321779027077066542459271778870192842781823693338183648620034342515432338998901062455745489069744373822266322357557184137747788539863108438207862566498874041440781456599082153477095638173568898565191707246311413711781889489320417645374326945924896961136387132983449648367807411202602352695171548458223641161057977889898231345147596309659853079581593103917918047421966052432407937694068338866915184069426851178710810391630524591245118474860354249176047919289034495118018805926755702160670630903493256367967995026256899645275022263748572859338215367719640402174161694506573250763311083738940544390095868699242410220046342007240303693644845253561280442222082568470380702401120412764528626806305637446553983777552371580289841308211476147707060969930033405929440653774693431414406467874938892703206021987305660409317247251048307066102058867967711950622669648371775084267996823759173903700659065571183920098990047475280101280803416051125018126751039839403480533729249474092905788192956266655728839243083472182193087583102283549232224381230248168382505623883647695774246782518996610017472413318034016686004644800986431843287562433982097077833569941175621913866874603243147748582576711002716067702951730193250148243400943295939932747789431364265783181458149090358961635807144548051505286115260386439798091427806587316998924250114784907960127095845687836209384197901066530257623770506722561951254776898699514204793405680195820562600936222435105163483887354833381470065934260521676150370456783438486242302364509054717450920676908936098266111552511889641705799798885094393583540883155922369788436521613948827631259814343892597225936785750998414068098784213016357915239096273561837718644854897625573721078176126675270052186354973535107428712064585278050955133460554475003300336429113190612770906466750858729165768835628991803535577740116316404229226037308485715793054208410294147325560548517032703558313618854414345019440210476875978191074737999811066272982081144887914916272752067686114224160493328749397568007232932708185823111280429980598240245412793436217979168542906699927811946119365497630949152072640141247770002458210499568863343911745993856579814074566994089109767381076618362601980971467880284647672424084738480647398558874349575486346810248358230420050740611540848765988893949389864980340291386735813430869056573713938879799512873823910990336773005150888563689570714459480441700660286174062295403393691631556148800713757612241961869205963797561678180346740771441125210530005244803162493869694417102429887365579939985826152964327714435387906478800415087174365272732795971380841485465652104244665365783000545231916140348706720226825820818850705391719696258076970832049625786586408915817551646248982505664211912885596475399340403517371739299388384460361147775841011691670394921624684774833122411304738534473668365460122982574927832883296036636346203430397331263983218118784787896197030586153580226408290807622241627302885282049061505009455371855256962468798195443226785314894319806370511155047090728624364397276646727492154820794903086565954264042057223702730453052055233628369834307797086992549431739438558264588755760844147468759480914071545146530083178165618213121086321655534666448373561447431813126060506190358261141193486172011743977497597358100982734269344873295003515570993821580121260170891428242800940676142537395192981173863864567643967455797383285445445472776052848178411154618877894338440580762176556301643696768904121965693437854932550536418766065631465015965762984989540023298868205010771204091462602397044095329241809708269388570746794313533959790493615934521217621280145497563416526925985875908492536251495580359260528568491461986532048453406716857169957880818748760775593333764069325102963441889381343889757510572393290718821892501987222203969430096422684753678031800866868928145933592641994376831492616134831011871360118582280076797266486996344355580094968073692474249082239494559168904270394624088026881774886160097687613740867449355183209871428404880331826751215508548726282711255251362399296732370721026794354596592060868117077254712364938650456714912364689150086660741216964566126433432102069871175567465774894885876005711165197275984507767312464393172395770488236234759066909564081012835788193475660143543712296133266731911401867547232187853371184254042362881742506739353262215830711053775515219643054844126709645710515158588998322402338404473847170863610651583873516452518454133567341139803094077085364567046636848703214611493230600955375236983502055786825392700016725883343835970124769283086696584603134136636365101718201748230725648681585524298087497821909597806788901994538342241213783585808766675592562897660775201462858752294021301401050441853519962981329315613798036013167797230160988771868283614403789276969205867198292867184080578340331336707579736190880720435012961419186158335818256928099893127055914420050228627473480288915660150380337148473211324590196986156820707295818764143313165115434026463197624325339900396179224540484351783944448151990442757590841453686138657422509854998929424812324696894529328617842924360176490179063298735356666388888210711847785318568196045593382943872959966591099201984219593740181263652784451473026064538555655062541136138434442625096922338703642376975542235273095503618416288432925817707747230639403619448256844089659784921548696150901839156676319882207789315663033323738677964528218227043277811433534322477997538334624631985368405215170587929094076798373776316572677752721969401513319932301135290239764011087064201478165574336259658872388241690646169773677364486338147516779942407877098806338371042194266126622490230012134915488236229595144669228643044992671833529710993136961599262908176490387560615110609481014430432273510680429016396330090668886484325229501846935126575701795345329719717803538101833012625613202622754348554196785024496318663429195974254314988475857883742790003600622842870414739895502488915878114579474672929481761894833096864964003614073490294482132695238944604992924695673983666825542180903961841595929737259381422095074321952799615377555601993064960195605168785420932789946123690594992830936236831085000361592107928359628046468654988052589686298541032298468602450074460688287857102283181872929564640672216353771181388169360613862513277085481256634565100629667300758619655081175828160705838086913143187393801483204432928080599929520878573078014090504210965094231132835862797982697288354668322008451638751428487699512653312728022252486771227128751343886246183143305604786015556545982130614564755626457451841827772426299877795480377252325966149777347672954028540750079562253809246990069156466147753367726807726099634526606582220588252200615771548604205473631790711623626681831084728748784272947498523218089617496211844708614820351737550598763740014809851358837590946473486884866347050205847395075817953613763309506515440993668714142502493709180587325728703143872123086959858235221296252766742220766576184615037292633951140146496800763502914413041250038653342094678047398783922364926166208532539849387270417765573359763399794102638773608027311352948406370130282808720075310303988206657152585947054992802905905008457114476662005696989885668846828296816062441014990549171766042606004007992715397324947011279712691141477076009162526064717386218781698284472248095674627993835079497322441914716933787519063691743381607067381238026812075640933299816014793565454004877546530629780610600764903272985278559914902953329967462271686642797848360121329805113777601252389223403946744537810167069544440487523117882637411711699496278869246226432484724735295530922207133518205527671168806632340499676653775566218342269772459559377869487175586807427187183101292392912785182747415860079239698778510889079795287853583026091013741901101149310537912674153396411270204408172037327889038832373721190443055877818678797843312737701249721391151265333173517048485666529146275154260836206832081138049223108020176186375000976826978119793002158354064349882643577627712493053373148248834072079883614051022101899026324667854524696138169514491978316973173939122150923712122218974644963525992901662646058846056952915012295365316966164276591947051929544358093577643488982236811364815657585691367002961051972650266037794406123239044070080411581005111848733302373985829388294754978975756403084989340669191767552083688555662031645064675549408273276386861166755956023707115256552814678170594226110767411827231160190531242430762262333705705092165037188506864661092783054527536260298074299317452476091094182017148608670387373619602509253860073727629937440195253052211215190505088619260260130482594995755401448897219092061621270046957361506787148072302798913204396671497560322545297860611648525865178219766633099932808032086356032197660674702637795977500455333810512711078044533632774325249172406333062135745866396081048039545649561754283347446737121921975227575693762664226433901939913428382698519905810678162222787872064277294530802202888849047108799180605105629921527144258674276573731726512733708043670351590103677215362326499176111596673028153266182668002894220431213950690510046005416356614287120802555164303073244906472923097691418617199118932240708097307739585038286272294884461870321566992267150850302975616620508545393755220416618912210299395723013210284800868266529246879748936172903599220771180080521049935316093939063240060539976832516716636719126832025629410478048912369676784351544287250767516793694396988481622920469554665294095793230463015082884910598957930207348067852101275219952351272304710461617579297696321536512459119344833728176951594071592215754163696200367341158172994292611861042588122661396292579052627493722391275404050763037197703094434337210973001420369821893897545847460649778406572442151492690241293314097944004503855261674953087212116767951583006177035218983372143188179673197186567796038093872136372733960285024795790559590489963372911947294773280720014915732803468885921158855616436015412823935963258121233863368732694847785683884573453223360616395107311829872403585445071852611493229303253169593051680446721588558403512779468347602196516926500255543002658634170345303005018121891724137534666023235067593219626496980936508825732736042697906685194774817680419759594347850656379095557244004627636280427730351012046344664971270973610258413387905639290109140184208561423409290896222144711888354792827781633748883489969041966187834926828499712766434570229980220199103744067600197749197699806705813572689230751283790723795928180265629169520470871049216720873902485065800202282203432771996433379614164319726561743339209483514573459153021660531541187413012648621285859788784345920916861132016044807619264240006756472370076983759869099720521389986684127354029735840601418209651727734775514353027534846652045407529010981249846628698621456264063665600373065145928627376920323131687909873135427859887712612419156511250863018730147978256713963144639489667218426734696642913282053658843219311541783184355804193252001404884307324445730314836919970623346785289547143751474356947725000489002510349638753143749898584570991399051403323525170768367369993803342205806787944684713600086692136121907211995588082652643951795364831628663656643371331249099244246577146803819390560976424014906664236556069308827179248593582948955654677887793303472942515730950906107431962836686025998810661734152999847650035760893013972218402267062188328450190689565361668115322277842998282167313276818569195729945538741655540218502860707767115826668929890136735655997358783385402103910646747625202813103984023351379368763119501862848902512263224979051964419344819750441783390709355535566980680405823561132151746446504113098545469402165045621170857920025453838752903673959945795028591585926428253464692751741660011785304341416479665786012466235457672614355213799816634104156673284793890711820197042818362486675590064869371228091882582998782038725137685055966144768761999167152412568696824990460434769160438760319332480963541230858962795572383046629533086971224446853611261111645693463737147443156566849785686657509495150375356509666493252946946919264856715141686315739543952828110927379583394611064685013315223063655862247287385643344424498153424257592509082560809809403682499177902008111053694963422788587565101813485529342564505006671843055414790589500629876043685629981257526114695714785600395697737506941445117224732813919503429229027097535783528675126399873152207990644309313637422608022568808821271158081971085685553819512704316985286142981691785856392072987631969826113645674961620962979945709953218278753390455989790288880331732352567256518271952980557156989882256719087481438066591891001827855215500262180229218803443772508426227390411011098202716774259581108466286706043671203172333232502100047822368462643583462017748956031936406042238404124962907665956091450321652486763969946767342299271466933406023505545630926629527806914222185971561569758261413778257182005301038545940783769975707069552545820694515142251510001291164317905591452528081314801619187323104572489171900995800713050505675390947922860591921545493814320206065801856255060749129469844500387934508790133422989273345012589473569697303895386371610649684965414132660972364698622439810045684721814588164281978142925014774272743827611595849716621158002868911855255644240244243915294383367330889115648244203321685508810455797320322846028340276691871661638950110748931989319927912011854326973172944668064250111434030573044507270868303994132391609932687327979357155749558299096983477262854779306656850023535971092391084014414818746887958850533535416718900125640305310261221291206684834212644833942955372166692042974734706388932039509079948195655684434646951474735176689096846442354307114344671322248005147272261729439727137959331549410328331196941266535831867533439063439380329653627859084961914022245654320828321959868885168477419980009799741645011621028408022237241499771378920216482456541083549038626829705718370439349304381631230059966776703732655634374519940748328489439415724560936457761873447941531176670038254555129025065557639681452655247645769722568891471046715429346122837932261108604294035368686946493245726587625298078123307155470790961624081606814937178821100552957894291687458413626398342708002798773105760184839987211428274598940640922633290739525297740343539812540480850202793309402502567448856051006342659356600534629252991843546471024211170292829695570326150570175921865248379736554998344182027612230522803748057284377400791187774853911435262103587211746581419875865711331800254188028339479067133039228386790167540606746540614691090699718869621794327962008099977400492193621840869200098436222001270112142299315337869610761856636562279276742217043435782062179916617900745868766680020999232652878670595981277263410937458530793676017106653651246194160366206786985760746546023512779943280500922405001039265425335154918071394095257518841064201359443413644546577725777102463821304106904606145210752649245767760669833948575494989006154614831203357302172440909868130440028032439502758117854857285488720582279093972386616921308677797471596270325603897218528187480793303833417250126894279396335638486331442064805052380296170345217881548097017884923023991729858065420594926512557057121361680497182208995884919981116331342894558768918079183541303864666348147094407362967204181383270168612768899540405741920029747130157286423054216383394545028520979930712126057935861756997644699300510173603178077967419626163409703021163496026575957357144843588301310829989523684714107100046651290382054971973822916391053277989091093134152411953775233778341617565001703597650439540456441557114616635711956389340669411884189727969425529847276578402658533200486491713781291959316769918766937106056855885739691773819786444337623750559126400094393215505745708522313352504916102578476435185632129118070880445599683230881850770064649169407988759857360227908132999124625574526821164766715160573141297528344819174079905542868624837292051155056380339682669487097407439325528409830411851016437230106023320162537669770295334971001779226378035205168298702538056058793266061547511783610107205337523695872920997547082555714238367147902594517401704049567344112083161165401123566886487490654705522556045049332296998212662448528434189582295732405488597117973863209906259033078967822808326747153998973765563129084776419771360357811141022641315114783006071687568668564672831156140470302096144629085183844559794951008610131525277420595157546092622927544626367801495891498734599818035493386828816997204501540222653473826372551445542245136726008839431769300437274528294652253248505521879501893197469618973947997088742321280195536060920242018047989023402360437328420060444848859363298035183817369511480194673629118072867333182447298856370350641112639262969878167526257830028987339727313039185273561341791024707231639952151032118460043659652822002317702432245625824212339637400502146502623951038916979263071910828604835634173613828371240097700103364700302784859414761921680268833668023246768658470821617056848171089338146222937486434748271985594136756054750144202277469362280751840252832762312406306176929610374513041026356806497523228098923513831897404074019388389476485612949285030311140008012178863266257715923557147760631269347979554221450117661691004053366294364448746529524979170277128690156551057643551866789108087362893852755700546000673094576182875150130296032726524851629924924547778455615416519688981955585712953178078309091550535360993814749002868323499020538564615286429820964096983740584136356871517232426315754334765649586377406394499715093056391444216717665993365735272192661865419310240735269221368698711436480541958442442254798392456013588355780863977297782340257957703565815791565099231691532128739438001704891449925855197479368996655948645333452808276289150564614826209407908169491824811497857839141794561773903544323960853545347651524663580128907436292570680557464291504086541968269507138608912604770363694562918031893002046947970356803981802157900596893403816008781372724558549577621968886978342131384529573013742148010458142476431106115050830274952403480987733990569990709466297686743463716496663855553724836719013148113920301912939436734988295303232374783865460629527138907915862984952186426732595899218495875026221947301959653978954422966385565392664079880576806968936746068475087851494732770832251179767473601336905963732576521106552195455477531934782884243437051875715764927326625356024732550358961400109963553470834620013791850612348700466145106398229132273178921273733632906651369794618492710614841240908204067297362056201899966629254720110113149176799598282549979486657632271701836948856809399334017764619077421089813394187169017177601935197251076383928486807504486689396933814401867464179224708588250208828658880872193737485322792544565108891454926335404605037545482971514056598356776653535758532554210241777925518523546073025100871205804180596582181831382757057471980689229622088580387346071992727732489879837342068210536178958074234618108573214596703460913119120930933422556832719193636100712688712987169963727269992132757275347297482818716449656354494205736765830154129805255964594761124150612736541843036649040349542285386540817771445315175571089342801023000505788709475660622299601885491533594784952490413646706153945697381531582354636428837512143699451347794233212181552887471770540745475062351614502746462625084436830476589968132780450413139950819901463302025090406459770411005261509718635823710024140762854897831993695318436916700193077000335125953782451295770763362515178555495504549543958759321989845201522731202955801065673339178668532147764509688983419956220159742675425563771017031038942695673327273065363973812576969384858854709212557533978372438036328720045857088312892079225848363094149087044726726694146788308335945080970702267980141755104509239856679061228003707930868941258819700629737743687773032329127646197137114153921580380394263433375285994157473577282096352084283637073980966763232411545352281386117652613697978015651219433535256513928205699950949628548992501407956769384312058733412546461071302397760048696401964824652409528536957876422720019269611392255018113670826829549849260158921345475937175048361323327816987012676920809689605883881068958075139487022750929908620293748574030806470511325219864353397110797642300350707848841967033770133134020922744139429845957488220289962482398729420350469631987864542660061813955894968972516276346435134920877521926664827702194750585666725624497184476310516045051985092467514085756415970556293333137846987177289727112207453253688221979754351641670944498253517322490896983639225260393320896532021642575849801848809505173494687927125654330481165170984541664354621245807899424947864644448721117119800642035540717301543802138507620424335414798010128052097076087180345901658100565133702679939773437189729211830952102901702327524808593352845953303161753798126147831509789831603437610068994546864705778899844954099247513072714418736997731655929498452158245159588796764016426620563503969272438075430663424866576747883911356790590054718177366812835919973915010727554924834115701292725024000335157569660212203531169161332421375572367297706353022335820496050840434987232762108684980620118050627309600621465490560136731591128866183447992878224071027426086356087878046914180100944418670085701311515651544806582378280063274641466944344064344637007140679860910714300032663371808664693703274392262780435296441675088069301063046754677608614209331943878830371430394859908181287522492126389924836029736853174822033691168845058765357990015263519332189459777961704020432999383003760439973150831719460163161592984544548627235039952936148078490890580782066581469165447496311053353137979855455888726095763341513056717968419136091557547686727729277912589117726446875251230652192300629011235930122140721191070906098981208434648123880817539761862530109449383140928598289536397395762352908379211052079337704286649145524234172632026947934056548464491718121559079710685710490551391433415685943692802350121540484655395765690247042758460835796220359737659716062469495643600644596364582879199393122978775589869064330365290195727674809339095275981105869231323101877460974613278735336150099086569247757967122229896742703999471361656664381525505866154653371959447496312490457750991539855743988083050375560038108071730291101030626368648292862938550447474265375670449563620757200150257680868844565481073687439635002903209805261096253195773802255401668463019842339968555526201032452314084440136126304013711017776306669253081894125454096958279540444315934095112662531444416887708947889142083600013507457775279341142058157618022765809194183940705005829398377813486524684266289926153951915806169143828972954186618570431583156155992473313459001292654223997370632553528479669009231620085426914225031244315062685935617573616906045010822887176707293665999037259975415940706351939679552774216255400544506049774562541371408199016373652932562218826174366226963301255873033850960894950876857511201474971399829338928369494178888378103237172341908948051344084043181532443941171321931667444888595094936667987250041771956383684995439712135467525620778438576749895532915686543831424884289132244454246550721015862719201054689810391812142509829376007149594463772794777288554578703322845853630418981272977541974335894087545667093826936877684016796369371241070362894747601616937491751351980707863516178047344409949856463359141990662529398269101738512415701719962269788594337430321222243260736250853177200679969171388578615564199518694472787985206820874360565107473692122574653790058512185651792361249957543393870091737168239553556966883961398589649240442236940060889149338010085017594652564381465833191763555517718406603819756655088629145398843024550596845340408197296605753229846715572521362924949371992300606165654848538779159346228077167994156087018505151641784622592702013936340043603455085820083268178813728734103054171479284840823665846369630497480763409947308658846405735383313706998340810512581247804347275243124698587098511502073270790887440149985533085492474414894413660654811743151009053220196812353421756930339285376806782952701407288405069563420038337312588669399651400033852054200840369359931184874352262863701098700417074614325519490312003499956830504347964184850788433070368082640117779535743115860664144770551709217000447249526550739058116890327719459180702663491849293769526961156026301940857571903569062166592873516389664012560816331596450983667854649140015117559109819910782008261346688633038730732212341818693853385552422350839208208541181671741125607258009272091615135373152520680131487616661285656712855619075370794674772335769762058849139498475222215283229010446876476780624034537219255462027966001824570839648310147395969352845855583315273812909035167969158175587636191091062584455921211191102750948370907878789298297775098533558579775808413824678378759397284542985151105603187762435375460293252894851822130349958481278012257425326598364637597646466934166582345872545658952855663095456562969918029304821933906323656758761215188100480197897245993690192296599860807231752956123124717027115098432134473205904283054075958060487262667772380976426392856906144046110559982576193336151342668812819811459756053334275759119629813909318631020137119821215978170488180509711265802621484372009662482646412817176788074222858668217886729102499937957145965034482313936416187663060133020545002044716094709252254761406074802996769876575700580748848060103494985374368763119728875897383225966465550716499952794433079712570341323744088298428842112885431123648416676719258911990290980917596967486755364920336478837587474619063287522956786617742056775838490921181027831016151367569011144432582543219898401545570493944124795119195143943552864153688763033999439852261188310097425056290591380931784195273262524580736045734454113717592848317679950096571015869946516512236487514139512417884263323334019103535254154753013913442298741319221847615124899003667217046599527982412376086505458980409310299732582864013656584144294787060767905960008799063457075224045921163496461671760550516300710661131804862985116522032950966799855612631056458270967307842191813128256336720528277517744541956610480406034789558243923905680557618929595320729935448673732361945128855291537730012394652836296795174055183970121358325276619572894487355556537178353174580151106153162139272557312958690641262923317959182288089694624651209519243933055923970826243606069684524134529895355211677962012401443352151813811719366420954829444790731690608598620332733585162250488293085061994616352799142057318788158966065141875841224023323862840761739517804624970617432471300268257141048218948661659448194587209408920865407505187490232510694460679442596396445043933379783528485517620507724511685370137629791786832577411084113541992641080945059811189749809337963710797386214307285068751472607352489471663970568211032261603262384301252682646410041924185936447701418381119143607618539011854386531101494716372901433048072066044616454899669776625312663026795439291467168370356593783282667632258855110441089443739910380252685637581117385305727480370326763681430497569296328088374233975022318456653035629773357219858042292347577746062488076270267749920854618117185007374123469413833120811127426075490970076165848505193741360960049529015890731809168677180383438433461542552564640855905506639387074484677150188270285873395463686037180028709913036225530561244134530554154861869245282066835038987816628651362346288942845545393577359397404292883001598169321172016070559076660372500156606457304652045694679370179530595164253975436202638611333554787919795735646644972767349939602961617523921210383823931758560368706919429484662104968267316336710966674445977574726861580325622779801581558356692078563805758476203842709402078306208456770122301376790397083026935061059486992170941656952574333165300469440687426251637365414421714745413004434471408336473753128072385555372926672743117823687393150138243162351205823103523349059820553156096789980211516927722072418465967049331496817036222272187644024188444748921961806595350876759833137992350886948101490007607886767964124067027595755120099937017460105647666749785692667542621481475845102492283843205446054724247321087636312836391725892081886794107773680335259668982725993054996246875112287068423457778480084568131015550436019669388838331285457848638310640882684663796158667976566885601972043924436908842879325559001528569538253516718636794908722997745284353785322635874998878772596884001450481117578440714948534221111227164102046911774741966627979433809650529562408751489869226719925902793748199858609406002915362899859468750262933801009755598767729646861091234946506173386329965430038885549782924747636732200582474653951259947255308044423376286297017784627518853422204989812618194288890568822628173774129001329383223397690640576728203083663187396864243759400626937487666109184242341012105857237949939023073726063764007090017457677576768970403332394345951169614259708825912582408995476047047536985989428819554588588611991850655657743484151947704923627494536387244977577556687043853024932951406093505363887014361205033701613034567676388523750028054836482267585067727873468020032669038933761139416037739670645169255472710879687916630040738425868174839934526421606290155251813665205421184532421890882801692968304648666520620623566697466461355585685184394395092682723370387953432776314224539177382941590409404532874992848209837595660409009368673707757607500845380974508842100322068043197430954467500242008034137574810172375943356700692447158286064803323831722022507580792476637115562511197018269188685545605657770493061556553269445599501000494772877437938565431082037044169771604230586509047850041647826902527692403244338177753497778272595330697768294279672594071493540203235606787974926740585308854093599334741656856406606059726888354745018759812015873214779604714342179272005801858586773658428373045134539710046122462121663846605226889132753463533640788515576551705133643807164182050918276454594700627716138186233214507924954188478858557575667564797016289525700610025588413188433951796558606436295020574360251702452553540777014932379969093074156876077851971469744032489475209680032611398301131321387488054964569881106887409063169962287581723423585854237783215127955411535532715108553085426177554888018325826563545110869865280040398121853223834794292246831463404252772090537202145838400091250216118777934257544002056890357346783420099778594105451285362263509980598490416975317888325805692586548065910024993029408171670404374970555601398132467104288017460240468790984100208449689744304548500281805743702430041617295085457965255676838886725998940709732653913197775308970405159819674628483665166589918408372008392776706114695589595882594894114530271820972717268380452532371040224169366318038414902591066393624260577560671361893680363093517736971516253254715793995150541921272294661595211879493247842393550780760480021812662367961379544638273676598742541251346143040684338442223994801078019741412025440576693963626540529966316650348484214840452419533387511733352240928484251828227130033037009646335248382327377110431155309498583268187715279705455688741467788493634523985090063656322248139766429431559738226956619145328185594885551190727625590300855375890001333481330685281329942665003197618898036229474115238809746230713114011325052624882798889375667226863658392816629614897466741816729316473966434542971837092211433913210155543896219541246978913820076427641585056458766328800953406039757898375430146075447570569814024121012213294653326190900143960967802658477712979910932907843065992507081290365936733515093465196436689811645449037378906389372805643003490349994729492948615968895281026194511700458076065030036931155903246077387527183840779202379908546724256581909684079880975075563650235377419057785984298365558868947739082562520572079186245586859536157388364941014187849732872860208841228569933141227951729052574761429462239572590108474029514529576475002770993807208627877109585242727960573415521380391374405037830390542928199971127061231389054189892877909224091875192526876231844405827923649542270911276164287842120025478134029459038665366782614650001394682451402913805982991408073709595222086531245679509399391029973870144824482544866562341981858227139290375921270551472187778899521766015111626823495183292504256197636927707791660367256053142841432247630959829451596600177975465810242989629418101478937563318447608863606693487599248591762338805755612821376865952519302142588802837222071086443322552966165342329885443968731258197553471019126033080798981752661200772079196667173908144515726588111842973262003044550845885428406964684442500012665440454058919377343065290203593636189276298226152731065769428060857817298725693466982604933347402651700982169256136396790482174074664404387774618815803902721722240672733929371823105640866368223358096338984666882587567510112961464572281180344718770212563094135187498650279507925937333706629596839533574302178174342039845513368890943797089235782683925534323158497970039765750121720083168348332824920530190149567680006127380951444470716100930521399718060363440855300766991855239421906436597676182814361586360392882459074504481309357810536655097895902925828631649277621101456988148131060470568307167082690592189913843143680792536534535615127574220165894360919314749121328072667207673810249955259993496180036080849070949665833390907356115109353186954079847558747709535764309595178498869452748485119164338360581609326236254096074410829787501792204079664042499710752236309624588746598126995042405458537265295172910330217455384541007163297665977428925664226635726306840529740316282215762674566927899812320111414462701197096734903340516867460205741311646612693499046833942207371533720551983094542457471268614110034017061237438378691101593389711671747820076935920777146680661600076040011281796945848757596826859396760586211640702608602274047849195121052497494422864751828325577500809622144611215122695690335376777715549543406852924366284776918270138333180920562340926181531861499191248475941910783548861772467506882973796531445446172511867558608501609254666235493148229672279315366866015038176810736699348034859928202176326868366031313808564696388251481498431527300920490612485928919596753554119520752876462743079380910237964678614661575736781800097296043187092594978972124232122985109885189144103695790031822396315828063570975425546279339276478915036970577653771897629078310101178603676125293506474295091603205362351094283884270963294189576738664074553108331327980226687864228768092746983950484644183887604867787321069424994742583756017087545953521300847048620120271940209132823846624927365220684225649447135702622467655546409037827337145582746622004026886401688498074655430473970929657595791989331603809241813607622637858990216347858179410807719425737462705334710489603361693468172709166114382625229172041073454887228394081826676786177194278216288249638689288023567013091374684052556023756282934344309916091887187600988625252081702654980498071600415412255998762693509644189255626751613849334862513755437809510313421538914925711811545589336931209603643662908843627381712880539908949441062723859640516607461530205986394400179625442428740125985286526698780491673444871313512452351609813187595908827693257655859669491000784608208575728323678056630767602538518325199826138426588671951442056733757685488510168078168439669107133746306520700460026059081930158990050228616045868427443330022324265086784294605884744698152598018719965026453270558622259714298829213164640856601263157441671580494291350071310421214372375999373035403906922650906108813365040153746515077786043754673718268679414488023302174941090262866450332967600606420089289875105463827468241648548364885770103241237087621835208857581040298618073428542489162893266558016383486001315973076568992525475956086025287293078447195647174168198909467721378352388728400199028801595984470135730672997734782065696628625503173227923604328344660044610019502744880345781554929991676036806805331172642124544345528918795461513028655957889621190899848147016533205139378179961751380953710994148251601861662770731794639304036223711292788861460734820038361788534123094435049128079983864930896890908371785909305142963723661220451619289695524384165197060648431387342204914527846515644006607811059800617843653506007121774157002717601073673455025037161965613090863692973793620495160671529251289424189754275954625305883052457958024721662497307367415823398801937589476526775727188936150817960754265199109149634271751750143025172350926969893459430303599401770458342739265569389622167688118995151820652641093000958288212194086317473042125393091106878909806903126827856593551452157794069156823551592131748618060763978009185161643523927321490959528500244463957436128394436657711310303014627201834690362098865976864420092246546328484300421361517746089490360476563282955943189745553402589202011077052098084513940270255707704873041169069249935476653506268689503482084612389221311319281886536366356215962420678958733829082440253919947035963681646525068036031725134649817448816571274315865411347685245030822264739663024883914469401659148233003383911917995520553650479439472910128734088517182180661136938420292410134984832719691075072644993236371992956526590857705967120685566493017193046215815064819043934000591415111406941812974549574262343573717027497574277648261269771067944066882910241681059299144213757340447650497912842878079245151776289257787526275347271584236436800306597900539405738707639069524510929442155644697510671909445687750126320933017859917612152421589714002164041293814997950441068359539760991634200855965486869578984576181805933190246915191519718433846899130034820136236570193316730150914295511483003952187272423649340875418706711963301411608345775578687503254898195048962785177273882762433763881285245057558264608479593934981747407466518398492326677262490043821541784895847188691938008735596309544415330405209446754007651556048067141406590919204391498270913812582909720725788554098923757579602844023463584786088073792823905550081752006325373795225562152863485035979267072109956781693840235718004891226396872435310696839849574284546147460594671348406315394435365547589763023371239744770686063129593886015444632004922896367104856211210713980330170737927339743014534509961332208127299925919708833123836474126474336004802736411158775832135022262473504978005873807343485733242049824006899415028668542609872541713741699442715568498929052092167570507517167970903465188591764970480218497953233855275436266039572557658736088087903218988174176669197424379028023418136769270429546105020450115941352958251400885865790811211392842455331748542264614162947766800848944697286281422348904719681511765846804305458524028142266192887147220932504600238029556895800523739651045750994854650422873156566515841813121589001174743061256359909050519343359490251224240030425022542702394278410600764857080546781664447869341266984292356344885574679311059853730006291340400922175650787686888386353648700070279741994170889781346816230732429022801133710560819865813433541175359898828789185657263454921892044287627519345900599497148025483219031267805038142619105157116995313662792972441796461143152544631569360137952231930348338343794771901906226804507441805947387910310419627229741250673503863420243229786865140880140935526282189256112495748893348575856867564134023112255866783187191081362003925988451885346286645452021119378138540396479325753982170501814397254648042840978146407731775101680222424071299154468769330270378983969956317477510245013038614514244109116208542207257663225438798159310393580041269418748171271519530572487989798250584002413377801368487253027026819015808116998465079208484146447820772038428653121253557200900097169812249537588566285715151518988351957259392343486400657686943029175313926811751272009421196010986448454278723434516256844817497516124161446333778363679895334509055320433860648934219945214819644120536970584706180871696933713887832057755903927316134343877725905590237687764001198148505440835892554331149349108846744513692969123997623192894588499953882753500208468300787924041187623115345381512871991431045004354593022662238721359270489219175498463964228224314264505210849924570309885814039482621763354776514328812028541643011085513447997923025324470100400181756023612208213427943520871518330211942995438312297277287504783113278316573507712578391655430389369838178341482876942105414876144988157102601070068047097025255580355367243146404088106561088975028640057752260542135010336541080166202457288977625834934753324061375995265712828192348101057535991102482083397441605335173086457424867961182580810457452240777625688600586653924713622082531079699531599901587674178524884587496416534709757203764106114967313415356821953233795027284171262112811041074920832604355433098038908625280177062803731144034095183326384470653746531837202163326221299751719509446415296000848425147056237073196327783568858064039519748967631281076536338245507104465928354166735299184722632363429794511326253561354679355072540054980364048156848031645490935660502917692113139390808451931003809606801890632655872149632154628068853297424573133159427547508305860245461919517914801211599807238484446996011481754185786828459528179806291918888322953173832038079824603255779989605947649657304964690179561599997514301555263980004749739510406912343588530071183985295201030133341452617370811804238724121948518085376918578744298167140427290876071828358646043628167112058841462638896236626358922114272392602916465854156437981818274353995793326281949562678452722762811239740806730703282282671969342578657168552923042838230752615877595253220901674959958494372231069751196125532691025207653127939969017576161827131555673297234699888243656172278835235424887323166136803202959235118787748461922728653422416011377545770341729125457691845929678843965203546430401433333696154962584881046725260706749624709432901175094199549228793346755085523477262129265623515070238285358013936916524327946152711772065243786821030284106148733311879591985360894733480069875279826030990438215505734492333439507174134080381739402233180885942617194508008588953919724309797583810526267246163683014954068524779442071673215664534816846084094235356742878800805026849204955032443360969041843396244224267281922127674169957911685801237459868926982710940543782431394461768071596323221451495918455176549740434514613389410346506058181306588208099797101539688171707884127489725186635978210875690186899920210028242802373178937806087685538104511746777055493975681575073812370441446222482408636565857026678387350878283576427903042652188083808742578524355443008190723483784256726030352032399758182898236547229011119141826527102392730389241827172560562708755260251390684108995273659579140441796395018249070312192268165361983582103009814183117430582122673769673085193710792945564568512654137694519688191909176869273341805042161933496338902004053822793062337602003724085193658215368807631845995481657114117098505178286937474234751521494296309481703204303612219111495677324797170396282067056425035816384445416980855790713011549168339384759044052654845380978264667559455750400095503086319301043836173329384687144200764639366384515436522466589164973559670508728196190920824189723774315671147586745771433105802947864324862153571334827615547858571864103246501017502083466858426201328998654471350043566222258129823501577402102949623220161697342757375690309745063169200544672029634079134707639978305888810049544361815050546959219922607687992048927599343583766329286859260069466057904625124832638087342340236585388428514636684893345814444567542023950908024019341289711602616596664614616974954002412556113099591748807892668818362217203102616898640037962804248010375017440279432148950457949298953330698847425261850357592944619580840021908120877506381964108451440331077126446016468492386524101772327379078914004040969451273248594703697478169791151253361724475205629456183556035969845189008660569433983358787597352223659481840913159818879987821166766378843564059591826133026995884378320221466685822251906821009556735218287922329503309420814595187271102772524221331115199409827874854797533666205194956658182198829373494626565902424470050191450025777983487962653817378425170495421381180227204462863144503774946952803730441031512269828733830893527890409272858284281300599729264873954910845455611115763318077658006684826139466258273860726050692508241086587622912204279788318782332104501892769016696751217212417441027258048368083110031077500381709634270547566255344410077730283383274555276968392663421678696550191524780540236396080111047768232060367449233756269823392005631618691452619060363600045599759789773616042525709832898191891242043787279229680545794822946273578232526830905138489365551431416644488632235602640029278993219054378229986712934240047417932473628036014515937195931224477745949370602869252040054796319178616854460891521329798257921413972616705082920455382183661934750511328048487809033567058759236430925948406174400135424723644277631163910983633554435182396666928508387251067918580923802575467147658093416304651834257589567394113037080701737326597076029641551124320299741985046747959562339419908376968160654915224045731736612656196693932637322372914889292529662227843975843386895973603878728233305731479840292451802709404156641963867264425637544592786739950893035144618965068333440905983800748879465824410850816234153383043540228888627981479282573063979436229369280865539586513864311774370781755626927476358426944917532412448183662373993426593376745755560960793964863093451856304619480487812754596980499842481576146485956782473460387966821647617356253012427340674869694103971695483809489635100921943422623921479656480139789898780836790191309565979286392354291791697126243409065763448098233245653262962522524393029195437180765506086583481526240499767829376557224244978946391034989471831880367338387585272720576547875458914289842511821688440632519604153444835550549596434189097994658781290903042278823591218543626804430443694659080329369152599729826637145583537849906692834363210355135390509161737509772817859092832870937302587329422591929279973778069072454597896550722298369237220504098246289813588124607527173317262024960718585552720220366725334909227964519623199594891167854075257814169762836772103862756862724412929880723851010504939885244896994514076350062988666749825605599103170232286079236064764860490093651504436132342329277566404312016984233339661703174004769521994894374861787028290899796312117466397590634940340608672758257124680605292811294888177657774366705434681971896988345132045010484443596227371590814471447304660185704048845479306310699924813879363401146206352774631903622547224368615254247710220529665861275621785148339816376754562860431485580506434059754856411415438723972255428132439478132905231892436775849845334760244077408394974503293516954397869197715165230072999067289349074923328211536903515891146047928142987791087594194534786763369140246059377517519835706209078142856428696834902892687912404011095908636726926890949982159906144487467719954390511759557753054021590280347546619438470624774431366858198910944509806475616837610848174571451056200891692858201282038657394179351676049908823002739289567508899849439680690918903381847178944843996252015598585064787019627742634055036346803717378806299635745376037012424029561000452101287685958611332487914691041268663468970928644494514821842489666208792458830011264313248830277467945501595959705023039593636814635012352514653779085252960361014160799304599250971516360610894884857950900535902579431992654463195919858951809239818440203685704853305333744605759463043877094921908981939012137419334736941669019965859560067971057829406343509207391517016296087008769066276915886272084095931704579912559675052445519581533988769570913211350370275780626833487185674253434818031524781777022542984624687385496412973799983322817085107193312089012510792904097433887311932033060189296514495867982508517748645789366509262310303749138769289913827510802968706684539027846431175024030330739100656003294117752079284715049683113477617735296623709952833016349154947480212359042310454558678524308057718099951593393557904306224969762939716704777411175309709064078785220044828269481038167813942538113010335946005309407391856767319610557903760984885125538490065040921360501295303257696725244700295893547109286129268693075981458981368462978095447854139019334638046488084741821918470732587006449845897578799813891558020185941574188939240710711362299759063195098469489494470205090037164328616835213264624652315540589793301802597508257320738011490906412172933289354044245973515606774356008527314202169193903541383864809644319383777736953645901592138774635468452068295436377085630767640392806090049365931468330226538451275092602504307055317116159504425063041703436784119990853908020866718167156534859751496155358984569182136247156929333295202062680468730517167889951940925835693198571313241928626112433962666868585303036340625288870671548783603387164547899743452426516375194513298134247035526260393427024772300391438123900870344370345324200434573148593576974345152037509776995966236394774012439113789185147014890941071689722196277955418537354296376033056917175821694891782941112175018017415363609168347852416210009953675598597949127682709054961575409287807793036262925891646676867029415122999118450590078235471919783503265883247143493970398061451447228339862984330042590535404245793127991180361579488306833496992093624326478081877556139495206621365070876948600093277832791657905338682025377440860741436995123852078650658763325169965041975080603910903146324353425461800610596156278497297963350128679660995323090568530782633191749476681554755485045255596627380530639796686449012925980292512744291842195834494738448119638816138557191906591670607323722442416923551325438369129157532098200519272835073191299385958378784972610353939011999242425338804877019460724299670815383878378400061105171938954395225620696837795544584800780462054250656813590851690957385690081680990351352091727081004456106138179192876570952956116133358752434986730490247739220717898642731221008444933154761089976881787701912299138681275203736838666287279294583303250891502244623846667580475023881872142000356529245668503892481321146174483306298316826614788105254694334800327563840546454341692160282349525180281530153007841506102238266980996286790319676768654636269664189008999314220512813577266319160434397495060268874406115628080859010284564566131172895943282016098526116204120519372295474317804036003032514698281240449316926049451798994112546853230821428172519930596869710633848421637372079845907007632095384596878464590457839950100679576539850931986435574070695544748016376042445539707284342979713568340804982262220435583431474858849632835995777109790208023029698113792955742912400137240990339670396161151188212308303997253478712177693306997359833717251581480213607692657900289559183240140543995051322583005494310015957505027899283597509348341232443773324721816997529054980449694684492100919077177071920337349505981565611119623659259931204946217029397985897116641506606190351013009599026131345632294618825856126261370474765625579539285266749872071216338536634679368012572607595517859272904516832418659768937787235313010427389475453850275889748933943601975179156080150639178753782787350089296267111794982468053284858995957750589489422279515759404188551504907562463853859439043230988124348975174125371691422992908014654540471276028433330514217216802097011897982513565510687494361791883554255480440815721833378782066847000467507909466559749946427652661006765885426743630939278591851187340451099239592073843180553281569075580001538361800461500858853142950109948522402936596775875984719687429219833106539867072905539853066997183033544684925532422236863270184925611285991712070804029896632934237724952425502704301568560397696243705711132791067208028231149926379060254143587569827423845344503287164707328523340372457583074579797335942676047491426936125387577292175065347719970520122234614160748550207442669152117898710336495899483096850880404013338471753460316136428038447736957715958675009965796001976988755932038051850989637307776524960884959065296289128731892919166892485997033489007949595752797233177340751872157706285451727098318949553138147364662542845982719340820030307209953100910476148064182153966273633519220814572480694825574657492949675619488681030564355192588138571144855698148063031013391220424073466144860107322434696918748035806992373438339539419088820283404042396558902223951515916431916519531450313878894087148897511436451741188450904141866496592602665189394469228169628253919806215693057047139000170357862380253721168998108990701287666914663768285334324890172863067067675552798752274845919453252068416677603782279919696870982208813261622953613088285794534392295252019901439879384593945952965062491800969089347514679290109487154589916928367520607239247501115188776818134563410087624222207400825560364908245445227433683145717036769345456521591572818195877912333789194547698856006736189509614879807767628771075275809239988475761894641224866417480691354097276596862030881106311101677191614859154733980404895063217515898179183060155729517479215512382149676852771396653598278344281617945773874564704784105997240622105483225173323656411727509109949420147747587021843185319711974060268919130671812089792587574077656897515825937558551596360600583294409080583306363720834134432779282800527537188290915108184583582685328440204450548383249132268150281379634961786539584843543523202878483521231166279435703447175077411829438112474352426544756531194372556458695953600408644757729220990395554052295782933581845558083437693945361759730774104682616476415517024764078079662621880737133565729212532180384376888114165999781408065021143190685557946739747709167022615617456448320391439908982851697188018552138160812375144914031285738397898448283102806945146119840552620991327121717149392117372796833821929781537755247828756933182308787876213356966038484766699322254961654588742192591221116479539223077807863501378048035898246052635843293701273522948337176855640634501679711197760999223891488408482238691591650673733069994911926099465423148810889792112744886081602304003084652505492739138998605519969086468004233601949267059924378971221125480231091056806864652368851786752399102713406233519646942859034138550383802306059211464322835635324875033374092604387513237670124576997434598864293392174307836767371349329623741310426663378272841348984679195922337069362168317654397750279856834025328028831062056559635049281814449493201708435808901757765739149386497390095752925398942614652231341053846152483911160997594713216164862061183489360662736836709494620777157726126226594247657467879829903192174046179508307524282162647968735839034646074286536550774587564024515025651579161990016674839453469484787808605565142255417968515781530274393169758629762439772872451006992218998103775765255207187893883742760320990904839546647298822908755861207482953371993767435634414771542809418236552062026077426079810729720166080319037841558934659915634037455241253727112095777591775038524400071580179323220890756736639151969756150579379307442414361325006837813585415191506730874005446486879127151246047588244713635919213720772539216165779708588740366404085130887659841144756073307968215605658472623161138137273350246009233721312511246566551689620174758717257380964634207389633940141649011275482111440497502925693054082806216425604245355866516329640162975446955336602669812903250593460326132070141540750065809973210952424161011392572470133707713726968252662218397506167125424650835196897933599525602778902200743255835182370091466958020324565764454245956153586798282341001593512998481344726171455787059718126206216204857105322869786604331727745895042986900457705188619729869060435096417939883693212720498800158345737636031155018898327656616865239100949302906372380747702580134520600114512942344817917075753445404718700598158936272230884293972231255626521561667975902942256819073468280515582645011321684925481700827871346167188135163903874209442493603974296804031219157166790596718279003059676755237376162299464787523880186646504502672382567461548712450000469178109879988635946439772948551689151594863217492883517258446837196908429487824343787678781719668024426432497675794637979672163640144994686585272194854316285041941879180141998578199000831857058015637557971937248109927365635470331308216131059628065399035187891594935750957145357716158212454704883974679395797964613427012074359523526236605793810237591233664947399807953238002922404751341575241508751348133592114247435782373113315266690721474159011654700732959664212362422581601444332141994168356587828427452245008671646603924651007523471704285718166763876653779065569636617363063611315707362775994821739619379737113695395464610877107178967591056793474776051732867337663043230287539547491674432334579384709971396565024488162660175152405031920165025167736542121777758767005858394741643320481986352748418404703649918317715316839774937795053663271930291876631952976801833595652219388619637961330943595466177363786069455572697260115946253113288046061293703874389441326826162408450588807283128777678725175615855426881320032736891585963722812666504547862472429754175427618165946066184030571555657777966223407494819534186450532443213708144295771028903809342313009340489704385484203776790082740414498134213621599050170375060259181289722019959624370050798100664425293249796457533143091812050567970304878873854285741373167206708458912258840099386189002946346952620155869369755904735534046649356139189852588842283505598431528810908244656294674500930029428624924673138598735227229146741820530834233130573311252472841533464098887199641717091303133699317477106338622333232813954559102880717464039807944771994660613988178777828153002306736080690919323455028478472376525155785084510879161322652826037951883429200667221684452282277949213053510399627909857487624165360841769812373352270293767046046084273357744598045132408237018820499628052834837667707332415955648874507412992767277549920286591080016072680149553277217562854637553467057986970939420674838872016662941119799462914204297046844349746480824024396595454946372839189848342063610726845348378571651240568794230039094010101140323276313313319084185897598983259373389247428922100464481769500539798020422262103252439005010276936985607839644430381445449950751522750099460485280901801083847724198921506385843818224224386895941534789410250196684068432642768201383138463876511302466419187353726942722728833507385610014638629129013725209199954114125272174330464105958362340232329507322025894912744760948978649377244494593707099651003935516764821037748704899979209631930695106680246535973889432805914682608433479747383363749434990773809946492693529378233352491635141725342533149710028464986396794601871751302203110077160797591179907800255353619014093136595996007034989668800524175273278450283139929200518223304125273685249408631584383985009874987965515516654578043115116177271098153187360622188675678881603486476288691084845611934495694728795984829108007746143487202841769037797850583172397859983189944840702073553476676895757856616824209681876980596483260222616107000402565271736992989477994890065256959079848613248208399605285219181189571608107814535542583586371360233870195672771422097561319382100283681845814304896074040312173868175623826029080978497188535131670699943166601138396235273287245997182666473612294679596220407380146516893703936095199533377844975673277982861441972261002082659125269107535457061283219481054316658934092145708899238210939237007443147788818110562950772788621852103099453316719898720048871826388430584455058832173558304152758665739091849683934361169082967309105588056018486760177133716627842894223743159224400583593087786236235939354523412000904542630245074226345121083413031237134798993883112645412037740958701747311664410556758896623506571061806382339129766326137380468803493119451260642319085071728965132163410363598593456934342985918521416345690007960392190052946858112621754312471838839533351117657285396232595443547115941855461602519862058856625964499330722734721704549766912029251539429394401853494325873835445487660619817413936053828437025998481280771404135190542175101643288276099732870417836003911177615833018985562013648448516008857320647589014892221259518466294453826385353211449624750551288087667759806404581043599572792215740342744154216828504073126657221192189497785562305199878044779568781928190555799771795546026855617027866929231370741599421252310529588620829954396989967157493863215047045195244011564665631864398502950853052249609687701561370476067941102710785543231070710344393413467669075229765646103677823241324824867103194149511565100025234454736996919383558619122883897231298205410372768928911445318997280372255182206350596618903587428494102440764260042480504962671592770869262075883897898056385066912365059362522968038473835417781796504255015009225693685073334625213395080526070495862258371966512618594820595978988618855520657005754810585884572346530617890587952073087026959920188787519603936886771899658102556397097081756253610765342874454645112689829512211607405685511284166692517215251813644245512402673576443380701302198282637326713057372352267159192147144912334284286406372718792263139784206857669666847412151156988829787554645974487133448144997175260097413007255302444427569085858580161846739083710262392026207073187743634108325952538273706283624706945975950457383060964509643357789644512880915578632757240023293805514561796151235940641833430008299962594259085285098654597651974446856627896661481018848800862743976442284780794391073607370448209476539837598619238632859483024380436926705461060518286661506931548433497723454899794681458060066856994313541392292321464606336724567133504708058105645014439215355310315637382391211927576317015576730847267828317124801994380848390201152632745970681308023990159948771281054198775181843452912218236311181923197499067764983517712012635103793995859662445972776437736845503941060040867169885734535878886196348877995930273500485143224638513536126380874736182265241514637149373311314654709561176852666159067517856645876882882300332555983111856039766334905108591824937185513755205535983737777083488939961577873651163303914146159448593759579847666614338147323567518511937098017138077161198356838736696088172926437967748791061492275862946771739483238983147188389067160118850876548401308378663335268961883202656296531733780521854036657399021211967581495247156546816747122216743169488009674986601891084342615776156232823595189528327658262070149651121849904265651888495867315573766102506043959795792983374921317166221781634633639175911234652640932674261478243492566948444232660378982013157329814471206972759542586972056499537630712191193092736011576340635318242270014037188668181274282433060065938917508307731496042787448021354077350036603590175330134926173169645689812134166970886633581454848405815989179427808777268117526812422660560202135009494691931305680621526749156634800419550870007881666542163603668507393361499934457086363653472516345901061104410880066424029753264140578171469749775975099736364365769592679673041023460316284451798998338363480723799433741422470277281329762505814678311505247487799726225171100582608105800218697750365985311058563553467875142425008513507939977287303329222225654576676029076674044744510304236488730517493694639938852611757759153547210228127099201326889680190125910545228488861342022570468176649056567415117493374075378056014904487456804099435053023941734292971751663303580525065296337555424117600388363613202412999604593625334703289992375845550611642027928031874426295885648351097263557912422468134516834686664583969247107748358866706908705229957009144392962197702792868553374398299356816466191962600724177814321258252822409961953122783753588382306801666491716537715636972184107839258851949624514544959094362415081192869105402119904281157512344223620858102192300591291141214918299961434942162942549118407656670122841883942231817246754153233259605548163550873514045284194313266601889704762673287478193490500168402684570864738375727631783347439139496857037926717560074410631415297813886137036470330977043925097099436967483491492671637166955288813153006666218638446673729062128121881031094436572486621273028342247713704173243904633478266447341487743457630125252996615745603423607085246260656256742704966420489229748599875109429127890102316942762043043709679128053981608415348708010171685213489744298937571219624086781180943381311227572080394977118648865730117764175864937176579859203573122993499758995838705156157565489215267101050417695294559584496657955785825706034494793571521041677563228390076888146595808854490974503717621514198054340396523366940278331905710438481118570679808294104039686057335303964075643553250328312286465388939024867304046059618024001411282212855918828990382097066247268215341112453152949836847074485912108584855896004272102799088389589470867986218531908993769434684105805866795691509785129291818966768680885725022395451688107366837020822119255776938230288876724522651377479194409349753578985446332325723040734540138004296702416459708897993058769518623872638527763753179348443708939633703880665159521266758206923117211877172531569131813988218930611456210138788896980615120359992705413065195569001580972476020235927769726957376370983427361230119541867839128586658389282168829796181212769890253592367639136021618912243178149856857630029098020737665878514407826507517137500326916567758696854220116688237126198353739215514342874324455301636479158202886764584413296158562350040252382654571948208441065784048112573491962346813827574041449144405498983622957905954060869475756484585003768801803433763614063784507599909356071680567029278161328385022466642280677971629821432049950248429866407391087244783065700440174642725441658747126835929755591782865274546631158869820474614657351947881855774408086469144409376108800416884559187351717136027306966275478391368983182386003527490320568220589913452575602240813871448391167873057378385985927294826934661987133703170599723787826687126527093672655125693739536779347614338455639814854107791639781318428020693272327529495051950745619990253811312491008546087754538383284237677324240338131957118903488599224086886357468173011879073103398744776468725511600175812584134173048985815176614780299153865714239296773458044164370067480072416250063252567039123280746852109346450446434853747768901950713831564692657919346815044335569286274675636868731008547747859273766901824219453391759926186618001944822092354764787869336147232524348076683317349458494504996268706214489037914189555453457238281028614524495632687533795901391791658093082306224018404620646983328547385886888792079798949217192677565502255552488544649669807743055917061068521261163903353308253143816013025880623197132985121442471414171251466171744697424926911572881713147715924553216650398195415871355098452364100940623940335033437573954767299573590958757724714431729319118256737495391183791965748880398650911500456946699539291304429840136963817760974968015012651622742473091369088380545598971155024817974159505558546518037089663071066266961092958319338212055357678012091931091720017570543922515907229068620649103915494353567180159652001296759663769869416015942085195273401348055786101210271605690199818659911174359843201354807101214085708831719422920694180937233925947470974879728660847590430140605714343486598068706282318567250459986534292380317490159747927358856889368802290643764242783782160725025380608219334128393740050102382968182663104810970313601206432197844727981100030826325756303374839493226280643817821381229252714374215604854885522779855329103983401491298542090503065425279973959486145812019432160045968703583598829831599262094208504611002831232800084552801933362425454300564236618146257640966596357352148098692233503024101885587069502567927828961939416678661632790091932216655817260052547484534488318435622115618062416507264853117936968965436810888777833350596951346553084793697989594705841020468967454421879646497689768812837516471151318123890240520465804539504274713526734956742867727937874379926174596396549309699258684327972614793924514133896523589189671711811881252404185372841766604333028207485437332884186241201728141642099625943388499094067624507113175294904819394356727688876316156128528593078218125126667988674225289297150033191693378975765641843287741800190185865071119829801025503276448416057051073573244973182763980558145903204528965596134206451853487389990940205374455838675849273047158931896056432002365883939712722757149438627160790330795032116269045739670679788416584263533801901825993274092195298791244650317735295918957942141485738216306765752286962409788572292580475637257216803355142302087240110011441887849610298022385348513174706230371479471012382770002494788330338453690668404394164887787640860201675981797704483088352563628806806463634429663763584298375313616753437472464182912835407777911937250667872920313434232346991771270707978327334590310630163283137880642204337299506090641916251100168642352482129224065923401577358905994232630451025985251547475829492302220117856644115955075834137267303975383591686672090042126059872241063515382490172830356188827583212287573284077659099556976316952130868395862386103921047166524874526290675125842811405813786330215873457860632376974640574353864282248878036920034895488999416248411516730943119070880576196796365078663859117467321344850909139389609524253607352775179145839858617357292831617091363545122441849574680055707163914556583338715293518533840657892977417417615480819803476369653434930495901473067291342859666068101875308929483448671660569010272116815272438182873522297521678769721730321336656034378215938463592142822970637471778947146511265785310098492707082091175047313910097614691271814542897726484429735378625574814628322873548602829255623369112967845382521239769649348273185037092435263615903195112468343901808034610931744285874683771796112864849275444911744066216787606598823744218369433608872337971888720442049159528574693244851951453899865147607415620645496901410445769317040294200024202080992798863648853925260758011088852444832787461289552143796720152027559810265003110857718310958125676095684218128017733782338373111575154080202489822071902067497410035523814095327017361405680803576667195706044855449668543090627165498377550134234735410595988675636323546514237197866617311775452868086945093444015022444817903345279779266006351098091946476293247944128616644497526514005663710794658796395149907284092891870559481818202821092571974857849725361068187020133080882702921838504928125567067300967940706375570019068196060781051889039211824675330912382861723711188296789910268882421807947500942414686815216048046252279354765981352695519923176781301599010751280782132512999708298405890656129938648707592890203881102117396048143976532914562346603419142451613795160771356665041471063476026311157178963201568950022344917526808882868548743630628098556745417386160627884149993907954764146760859639640363576201850660115654458550964654979054593193387577566629098259932930418049392590963817233393944707382252118551195221059826728947060731779730020679451835035693929301531241816525998366520910244159572128803720390331634599371858059785865006207808931095938874040056654246039803925897851380820498835288961977430157391594399583324449545771944403769252886862924637218104888205859114271492158511098855396502086080027624127023622673882351606060686926799708205181519463609836081545239345070351494043011373310035091740557278213833445826607305811272631137674323096811282064277232887574712966898613901718358579422813948485296802702203099747523566448486450400478390928749815404527320300512069541922469277265146840863925845670657275565286884909244530311930254983144041771512220933709577174441805228151065936513133033510559269012606658816216562162937645035397253476204485545816603839088089261006695839014278237548953002453668698163093971939123062188527935600932719053051084813876479076925883593812009696176315351257852957992808112717489079879235139570093901722839772759494792006697892729484272998795486943907953867240915023459574136264496439078803355679110220433579991658783243106441639202779085690292864698495655778600910208879798474867983934352223328987000720227865317986259697689210678799505303684614659380155439198553997559337692665663553691621956923821934319586791282149336315883758156800459544264754428410443451289648042196857694465581462828996885095294702897029617859593064497577650680995711814624506009613902966392227264018928151162365442394541031864934504805449065024471020890008409229769102432833862164292509631042353337329028057824658631272547444960933956810681839153955404228552897900963275600374762588847314193769619181074039652430579673864487133491547950421930150884818056034467484708903358728469053130924639342675515065469447692814305558093745062957655981368530120642652436651877819685961906126799417833010038229314627167264615348000433709854932371711233765547741972047049580717609249311314601710848552907293855435852086422254828175670782976585891012934770353996798125767867151991659538676976602694611485224630673202705836871942802941517096943667293831187967810342333308506249804580971016679221645812902385881184973544299750199802301567539278623039776899758806066684700916539817034469534308583362235264761110413795459673837239057752197516769007281520517503106374384261892589465261658256808864311471758527067349472568425423032928242294841663603364542613948774420859442197872098442214178739936439182254639140119048661727709441307781775708726332165242950101931709087301230961759224303596383370987299389365741468689062620668172826323608261202870357844913012584188947653231458929231239184624995142401944052770145119359810469326542728319831447458459508079295716890810837529826971057161095052236013839166415386044960202819048373247973332133910980778468713268003284088791047671417692853775528155978731900802719446153355432253682289969397355749102415894263590624672415842998604019111569455623261032055957889017503195952319814601074285391065216073942817612189922745249116068192903801788592877185448219472144455899597622609384949676098544174382350285946719013246375859504290555143786720540975712823722402013363054561293800915931820431284146175001216226229839455551443065367248788091124220710770802967783367684229171906194531795355915883522482117060005606607681532732567340938684905262657375999114269800811501594512814860143679398387698187390896560438015328012732636697802571318246279572542278457488181136761464854336174441374496312684688817916465071278280762802411007997561793911104330387042421191113666352026835299418636987545742711782354477198676459962977078324570084895402674085363578414179914882379159874169996238967490700539927454640869110452589125652616324661280641452358988509953899897318900094740020025222671793599717403003305859686627432068791088797690714486843713364131731016238552652046133718318207231137707540381447538525688563472673823748753647248619231810325128649317347224705832605283373257013527260697679140834529271144760353437703621671234037752663883194998246422020986330075132467740689292329824161021417334912305021038185664635693549088365511708097783074293394764114077076730782703508252545374599330088383275929765013478816293791776491522661085674487020627546968666267770551532160099115127244541713219175409505866080335955860176485120026651964273539468141159895497718627060639463484351151032164159525275486765453544668013582177933549928196990341853195018878898030279429669684258763120202419825211052849400444683926199516529709159733515714412604962939332751726300899276155748981070376526983566242047785604543659682719732098294664179585165456255386653594643039651361461955961409060567054603751710647259194237932533318427718567467067572356274616014747765358433096745819304283846074298216753291631056067537373153329620451884324640870437908059220535890280780746832761654309293932528790044621561564711739350493779071506359793242722616566089191701119973972403654122235670647868334945975697184251575610655156399893952736066669995272527489105334952970460948320601116981608939244324680147607376535244369417968507032661002579189386186661791271466378571614145168011935749413182640918743719224967332110027494600430065228548867457745100474451467354540419789705052019840756225818327785997333819177979954975838009249617467535844420969796929792781740941805134160968091080094443733209826244774043873151349082125079054870663592941115779544168339815822956805701341379484311753061081033842422055727017268480394459550093654892737297042537449953448632341927626745296118568699232794293488082760580612468075479086231496965909855639882787778758531950895220593179748981219663515774014833704611058915146096116332160685751466024915471114088558410363173772516955630444740097515677437244709674834389268362094022010396900845945409840248395149938029681195917522305197643158642500022270631292987752066064397572486278226275677331045015621663691981702033958087953825131041378155701796287133656382079616942981771228245685291305116694239864979876705563292364532337514927055916042165412599167702519532233323950268158025186503773308247276979285454264156846950432582056494478012294690802765070436444458166778183721038274998078825948660837327894519045198371475619567301156063906409779447927286293564309867196039230341102923434974979307631293767148878815743901382259304576789764304719532408219006160760246013773036717378633244980593557177314428049095087594421545898734094294710060413925255378117358335172827943222760687542524618024351693369689056287920575189188825954319467819567902681780873147960929666889618924924331577404262780734008874396658893887379731436410117709137255432233543692645288693151849266028421915664512205372309334389517145540167936220760906151511072058687843182050574187912656573026051072975433920784872520988246435520167276576891514146404482699989723394697922225459590217520790416560167786899548811224625913812479374307263015247295571240431797986993144230296549697634684395411333045666046074947650715450243531923124599868003025847621174726137245259960910260368931070921853446712757769193593542847534123083514821927909504024362619584867078092341660697935666448702220281930872632038551423834545695808844699050032007476333152477620526641054977590037443680878784308969395396524000649742975223648648528941499836229422863167759653719187705181222584657347844437088945727647629955436245853571863326511548086094897908232713693940148730104280704682206645750960906420098289492693824942115088111093210848612912236598022440087176994324331130720285113519479583903329441151351281367872963622134027170210175628717952748398072193313676669307418934993336114144468580348498183066843135075249373416481055196409524612916776484765837182135491958401746098571995426995387246575175625215879493442473137211794795554444375444925291947950987257265516179229452842947622984703220999466244750206606601396210377026424480905530910599055957053755983229213655154567081982844118797644232858562426547910934824457658100164928185690901824972843189543648719385081026996178202208469300793855636146563226491380684337637647508024656283640696953632418197520141456121991805985149728120332860441521767672789213272761783787412875086137118681925685613998220613812842256821581534219512409028042555023160395595334198762574228626517854137040896846283188321829396569433079314442313313137391448513407836553548871563316956166058377743442693322631712945639785756412507637251274248150007688671976251802475957793571714134727347482950358598485127940356969123993733929965455292876197817200499150259917153885306770326693907670445633466978477982062377971757390624024728002562732491917617660068788306861164394274230802981445143839400086991427770956639260974505004579180397922064512437271729292665556045939807507648675290873502951121927701299234974198183223532406717919658201387578774677760441125656342384292001824183566360701082929671811453031036488261428506274829621613042826116663246933478658058713566322115638699755027651538410606745393271312055793840686244324948793724802972839219498781654208636284749527282990066243629350807851969081129789307595534801887039279983664880005936091106687416504493195038790847469884922396544117394368877961274076374957991807424173566540044493199594324879847676410788172456784566967625809932706383704117378598154211260451687303034353970078099385927902638120045636084305190051009805550980758605181172388774842605998852758255448282360151493475213016817885109639501631579650399881340934758229293967634746915679751939740350985947021778143415219619392856682886441636355843767174198187955424153016402836648171569240989550192748263820699767436215152256597128406721670910801968712479614541082363303611005920948774516835059156083154116547006702585241846911099199161474379287967592655127646148973290606648274799987242110842829872560148208586430127610940143729363092197558124242618955265349237648847073076656641649648262116813799263193338850951299527408408914122584302690127090592254106237146832159563436276759931863863797065210201350157358862934652407231289718342413714121259456233603540419620324331636670953082703982051515522572393720612524373159658668638289292316047580973976223415930743995137608144697741343866731332403996313105655748153628561463334121351457450000370276410357081403101996299015358851871453763337909662252601166129210264897010351409836885899942726537374108007409505025894309089408483462281640200849962336752604015108663641050312195432283687204076081545588338554147128186927037857439387246530571435569647301624441145160315000719093294337675497131801246290088469386641689147029604790471742180871658825947547806258081081418322986455270721785488340104444818976147974869253628979567472038363858346090136999408451514013937885635408490178732753239493137313301638360857745939464414008521775546348757933242822546874761375615873107064774803225025792596779406499694768578812725293475776173306546285515779664386984222166276020875826646695881871992476709623288119605102051488222864307054832269182625503043421903396062044215772123488143014209946155954243994330310998163699524814484861292114475407439517881534421799184350084433722977619827811075137194416044097734647122672497512568974949128442699549105585667294273256498948287372418009209996770502643378903213081525728306658456521695515146834612612863127251952468658660122682063505225777061915906329535079927871082440863983162068188868705937527995508997316304817681516796383039883515802883759305334090633152433113667319554813041127646479818628040218183281128258108848208338824915289256423547145911362836334463171449354510161452132009175976482064282412418068172093142536703632303007775491097100596707666680116432022439338778100861846861370100483231083783037662745192026208750530891540213047009248469280892838340973014091408927496795898111712681461280557549816689410563238591915995879450474141632645312012883096386205380274305425819850843987369901642972753217940306887061603183983673504064549854827655949210773039865891225154698661232309276586746637401788679277768908035103709306020312632912043442875401464181260111506847447873884645837402563986062054502975168819770896994091087128039897909245261858248035698427296848383516751924310514704092639145490219609912948456564913495377650739370278411910403092477028122336777637486222983615306865844576087940324498594607796686981729556991772727036786541585939625657909413994371910865683150064848037613003254949171877575132955785802109648637110720157568756090255136233362374972409633173318257450695559516302455038141637617564947949543075949453541987543798604851732980018609322103306352176410851819530161466426236713949053800355757334008260375021825489927929517573767293383337478914333396868845213999479973668743835859288176766687251061955457768414330254057677382668857072940141204646173293281802876668886866715034274224500019933373630307887005689895037466213201578558564512380625508354804091306892463314887806785558132870735727342090924134029991956099635469581689976338716254460847235756790357312007519715903833813181249665250481999431485244533751145192272819110745767590629487651153345496846348434735974003064499508380778382530575722992229756468749811707920199936960895209567774959851105803286431684026230811440707566217312959069287726666742734190955417553436645744772941351134896055931963678804901223667500059425412674599629912416400289289874827151955102712690241995953632763469114680541051279507908389378495295588461649485870031098846945466386748670232421273051760866410489540175141342832298971799637985527495467639018745271902567797249488730507518120975843318340637585468800345238719021614517483934413300749590402883511323312671597689816527205371967625252149545672302224871062983030950327706960913956852934246711701678319576700608883195769569954316966986278865415049982216660675203280600233512601646816880552089850026073580123717883413792970293929136785715562240254124112615343530668326463951205127835801205483679817740971345157656374994384021216782381089029978281293629067758682503454673467586331264118490851168904650058202564121701178903043101215682580814577332406405473465509564077102619853384972695699307291173637882678821394411993272722819661202842559410601405440107729670607189716551748009031884383712479694994452906473547309045147742245521873936330874556564436001814199073611313917060927897238504646219980692090147427288005483179548631792013857345692912880852653679110731372243953126535793593690198758998509627016994101775245208253525919038837292022873469038683073167582582923760316107924710589573214077748489054183357515355661856452470303023320261620766291627034701548006196696763247054324001330426264925316194079490150650674593420707652942269884228011072842237171565972587497360855813424629288212100811363594062320712546290872259905859795498122823013776346992315468728366807100795400707623582647511353721685509118865471344452504030698206827953577180413662823648858606122939711164285949182707514305929281403379765480107135061430878370192964167842889922848973268104031650876567606171079954080582686802691549215877284076351509849961216114046427893904763707353831650711193484457373329303790602281468172777291251990643087273452383178613558811594271709624366606652932846210627903082476664434359275900252233259105521829500244931548448060194346572663641807668568238900187845051606249402090971321699813085753193815166772097874298896459012288917140416489401037217115553893710255697958329566702852794493746590029194081980011430753420354715334988272180759688138326566764236313591283596045991396587166610962974717195917595325900002253806796204167660080526945665921797094688676575117678801941841923269908534355969206121080495188426657739691534889004142829013019510270541562637989882200472978112203058090288243824726490027279314756778598058161195774105006988590834962670188301762389356977530612740919683238293065521515249698294585728662748706407089084276436455444647166547823964188111459892591336679070201628964268654550066129623536974378714878120889421564883122886576957043011980342201374952872605922895135617817642066471266950525601689039618480963949849665147602755553389284242744831405449667280656332110723037701699379038449838863401158980654662841308432519225059662124763467631220649993788504230568395473513728636125053752996406980693033448535289015291336705162019497553374922747342001652005069521759845254545267776665370744560184287200014133382550988597776187356263072878445288994805138553920906510030124937055583209390196610403801581770761542832908247645324331352065565861774660994923362313866859574833413777294731220262558392175246320270381335700097688479079565802257626708061802751637159284008314639113884172797129982440766068244537792428913822644584669405382219227434939269676366547266052772355424785424690426436376754596341905761439697235543895689968245329498782967270288723014771462002126387288953926394262526476597577878781405510755160925519151768644280567717598854656578684282750167471887511084630476258377680759774148251195530776649151155346942485755607954846683415013101300518886553681470552451776797078642085469551473351480914892155225903732420158373245695088481962315315456963568609210812033146504419522475345453596524676439463980236159514114241746058878892181022204861536710460431483011615190326295197442792337956286831482133631516367956024897866127714050272593151669060016163008575009832137700054037313529669711222394039084309335736254996058033962977355982030932070644229836685664511753884401096230280231750528555945100355964585238055699789651098754234408903597979376848946762879389516192564677216104564704002734094255622646346106844509218042497365718990985522016247854021676861958987354483151848056406670375586890969109236262499997533589914025831683040507551050247161934453683030773398459731642217502014757408305379291227074031614241059720240908391043727084370241824506045753787567082033544648542502065183471982288245155723584251039657029142697169312672671960278038063437247434300640677015016887067791505078329733565796604389399590808500254726724894609602661817610842290500958839644395785788762545987277703075108419954122873275685179396843228875457377690131935030956433059380984926731036949705709263767831879161376248086226177262048448134805219276605098556499916245035570834831521163946456373719003052396372337960019016390369643852790960316871176456209945961286810275622567644267887099302032061041185430509210798399551666582832865039530764344046510562918497072806274567418413563168681227793830466062178804678592349560573460804945820266941390818835770199389234402721059686336114990561436355181768082181376746118495485469881095320963080518447620451109898807998500726651540917500012297173748034013309931212252035737012959025930843131832909800633351626269734183574948469031336241250173458007832941441880032709775485934965870064093313368827829117693815839505765477364117336202060197203682074455598061463966841363789052117483305414872374350150356337405218041511806728985399636521545888691384400665112945428023267704254491780925231046750327269233057660934319477466093394554367823724800955355392289321436172211482566480720963806473448311026914274175791518427117387041840486491988287018424892574465230741573175459767026816189866193829447724074094697874595958384723580503190672269067254930104680446740151311990710709483171665267590604233330057401506715560848925132810343903115209835657144859223414327353642703904132160024591529090635016561574854009303973957622792758492748475312066051416687298022722690009605583957570488525362403047940509555840315470354900837991587136456973493780660693168352213819639179239297240350001233206789678278556535945286031830298599395788642173360349134533154401947245488010721180117572471306818007082412368913960027984317092858105870755609665233014220583691342133481606450747885839531462366489787078227538489386081187201381255670030126798475309396039913800902145006622100005198788549359414026146206893614404590893126781772340465798362991124206990661608867041202822160749075353942440586126231516415169328563098090945784944650259688284861666469264702796550728304147837612308907651505896972616962806596784843679621327702942035350204287594684193020608024135491311753821306406348807126544891276400800543715902422408075511461403506685236603170467923457175097399550744356286032622093629156472445518523162200380197323445131725177986411808814911890086093161639992086760091542275151767480859158647350308412133360182066880411739909185567382720092675531926915077234361778786097573775804476001811830503348083726862314666309478724906024078945015232410774989052158946199473678820909594538519149299544987194773245703020661050587061801289836578119128011438893581338475249527277728145739090369811523505844405041085516673296969221897921482652663105197915766545416377949137875650647899651086044654161971580402860077251307217388289905369817145049409388083644189872470184956342192986595701238673423803768050968749553654276835610451017175018747735823917216209389768225855279777287219216720958848389753425499261847953572597381860655845354743908054768581323955997904501963122239466795233311779724337184967387952118869324044140613895056460146027910515596749459943198009112202151216378990255461228765592903022397015683920879847484443823430599619833312082347737626625263029961081885505700258842369597244522045013532583089089141834607708299030403521182128100161150726796696066871290710125618495362268322717074338610747438268743693602961776477757521965362782844657953555000621186525286049426340659438080263117949652111663815643188735963722114672382826215692739750827913199600443395328193760946688024862079777117065077526328175924170773973905364386948833810724397347766233242691272505151892677633037459108664653264025163232132640930789630907756533343800074724029728292725905156957309608697950379703217733725580352201737195358323279903763106977595245357136000518660385289189819092291861427014739606863407240758179572884892892980701018029056531674892970029639477329844765409707408760021785923608855472476092451861049339004734762064580029474131715721743985433287529615724101134105935292933359960873655137759384265975880027077754347072954978080654081982042989910364047370189810008119545152343960179434011563174367750443966040938035726350097152105083117898844625003895145362027525627509746516561235696236331601021286902765701659664492567435540904667200488356918551239818426558344104908915619296640448506634249373615261297197768955035671873781341744769118253175629332926990056532796895914508349879827203898533572692007641859841571576326720942922870899219890161049282121085114865404180600781133107514581318715559352461559713296962982918073303608188818473187795042533660966073241643081374125002775942532621420481675795343099661032417104129743743174650920199975075922463733897839010952731107768872964145584855235678393012529937790654468563293536125874374242996929601009729619697921609237610515426394453671185397287278793182073669170822370627121567763977894894450841507634446136552553331150697805024451028450473389878001447609264254734878518265203657424286861491285871548650134388754884125635013401672178188921285131727451497185215573540258489772621514077677547117501114323874383588884122970042074326531692450681502070280235082958115219194122045459316650258251709126421086310769272333274335995270117770741086004024551399945417158242205172669589983841664442962958820299215341550068937067835117056840850853026940512224181359155086516592070123409832413839018720909654502937863705264143604425141616077519314972085083308729307890787576984410991705627558296100852151405489597245640344633731874828419893101494108104125877016616381792192173760095330234081175399490398317648043832870047313421498322990270355800784570079672811409355659171520789507638285577978460185596366993668876831830012858806288749443475050648099410001248097528076499776188033289195503000625863819955272696548349029409404748242775883743882381253166527945333810619326680031871444093712980647069507291327606661716652216115696486456642614132492077709934937349303734069664182077802069242139232035444217947239900170338557491181154135900297879788186924220905305920189084468767185914756105086871528800367626415828712363114786488322866879378199395963756895907065434111641983996094044610765742195000369442972086055717389844183265850142101428204877963465357076257560169412377344850683646806798304391798238174573055814135176540106579550561829959499390037330837037649419097632037280702571723872148248183322184697297860132649721434258833259720376434220500697735489231094753297508215921344441996788567461636824473847440347806532594168558192480402108669516071493639184237689186756429133235722599954059333115341125197047643300837035442639254662733540842083053529500709149357129353308540761599182379399345248041145825733341669402058677469502216354322607116364180954594541584594733406359677468419361210945054565711931724045801583060447660117968847168755505766349391457850724923255503196443103923629405727675648530042128625309335803126604670951352073292668486213953076505550691186166250648586583110751670966362864763692027276316181700922453966275759787734495425524513333228317744118863884932518440149206828528470565979577861787028822685457925800376905941199624090089917407253164927745290566867902146723284243302789468726431635236256978670138195922362704773146146589700291321915676138238191313495390048779034012788136270702556396793778507280626995594624257858120216692015495065842035013138570445158516478127070088655516984960405043431814843239344793723393975415849453085493189122253321099737813836147635046639551573381229568023107858435471107800633212701501730404338033544183387548657994373604728576019314782623857938109437455077514012457096877615990668492667526641438805314847550011241755758558606076539246584555009483991952457427946099648092254603586143512561452412129025506704911942393630375487689381109418154549051865912158922172359192299082049011394167900855313101763852858623479626954637870244267017515201702229614898288484009262472858451244069952702444296411761846473495462141219785452803317121381940034098843731759667152705617864637372166393332727466723963074318658316262062933937197463491044085226661135697880254415924544530872230780860151797315542684902059086754164664987119607357534606665852547119633399302485363624923172995345485161107414008628255208108812643275260817837496930800813882781029671921545089772275819926497954741364256265647393199482476223183845543094907932716802382132505742302339820701661537893342988162370440305959748774888478127353092235702939022542717753927227727119325099413660579722599982187483196956099792258256776154067492002127852723025058632450519308705398147912378439260160548677945770746095024322289044710662659762735069324502259861150633803326654637154654657715506835530592917168669935216216868756484424861973954856917410995802014101976525823336585922781841072652237993200638079427707659992470108957836822125118074497062762162997920040315674030288332098952819829220619550238883943553993739233983342542294076020433836639826669944594473544248130628124869636981575260214377381827799539166996122869793334062644630153642717511853636773993033414878628428076455350352839302885712237720816202751146662344730571551480990713647416892015450220893035027177254303420954847664019798264410410108285275041618083443721053014069317776161824280019526102152780796159196514725498370941820646610894408123168997181739316479490574959845192438652136240626766065167587733262799137720064919166189535343057325180695217364908273735382304824678723426464282734469956293926130132694277733401398309570966716279329459410618825870350290185711697282470423601563188111765442490651872435107180372246299495375694073530304680456321281591695945368514143385411917354814218106503104188638495643574733820084039499959531683361601952966938308345787526688380696575918611895229004106635093655854069941664824175590909412845596755204736558203251475522916148761715139711603062579836974647191260274409801244122164518482271675702690700632331762773178338489001975233489107569249415203059917216986114379196035798944370638030164854130526979179957865203543041501274057088536830945263018842890731095647532813500314375381363803895557110500240552583758933625306366587488977044588076625302956918116640683726007381284905011764174747077860676264912425211353741646642425015607908019557688502632032087761498251210646522927675184094092447890821504158207198621653421401840009932255262721920848953124051817225587491742903751670352660077806448929568764117168430376102982378783510169735290344646600210364174524266627057192256415734073790185741962222227647895173168739696197044511470334539208815358080604275968467436247662548994646671111657333414066664132932204546029181422838292038610402258395545229136145516631097626383566534525138186399757401058837115871422146193455798177764552126157797499614675708265286565511727272193664069278471104258015411837251675052381196422646686075795996853881043150066155263465106199432774204049411245348276012051256747550100987261355619694759417970558254556983996143046393515409858537537867778980393602771456078694820711087630700790349576016266788063627175075487314579678212999252253663457108200952251366314401611505259158426437825223343728628415583473266501909259492081078178015659532962041605917554401732402851116043314924292609405509288498462242296433841334930824114989892172626455787875464624342373273764028558368680675280694338633539328289709972344448275851338681019700420723819110524793569257906311181950705059766770761707109414722274031915965636078286383565337578237046367544402040681971514096540537736666699741578227535978957125146248931504037614918527569213987466308288924477338401611851888801165661218511832976844627813907659506742559540727127411724971254105486028223292707980528863897602444022376390619433259648645398943164679320258749227561842879094234802947247635435748512822918294362224937018887722502066750845324907348448293839012199775923861441160200173263206052134242032492269266983024303743061975266104166387204040901826256572249209119148352063211152693417661831716678643246217032723849615406871018719078074009962849627828835774399001617916967737177160045039951305068827987833071140444920155470101613434615817704107727348066174341130548959532030135398142159400184936204827727799564751343108394446622160061115719046402426547512996817704265982113494027100213393948188700307971289512064081197177451145794785261750673147279409378330125945483168896864332464766521293539802058716239669263410437446247688844257802142325740047311487035022174384894986281245942004115947738437966388268504634917351469009163682655511091372004454414975830168792387149415691495148908848910540931302768712267579499680668855085902697753223062937732061531864107802271948021323235008694568183630914307906775192460150348521786370056842455351197975633048319033415064402765091610730608873925353103967901440233347607202445412620126174573110142529702565629015829448116676922040488891456404496870945039499803828379520564933129189438781264612066633177264256751842002427351836623436242435471709105626565427362773733552037898096928048005752534138571682667378473145171940129028857718562996968998758280205255282320254878757920163873080603238867981334729954223637237464562184755406404760295516520565797425700153751795999258997035419375825102279084506642408281399462904112437064591069360382804052543843562521180603909526112596165872232391689467400675905610818743234262656828578793796674668467297439708159355018879139762070457587983278651917289675723929313281709498988706909788052768203802713419381839183524904347971260457119067233724319626669101667391797939495102230535524969518819910485757998762060080269313521466933419820602805699758389422009751519216171613280470985516596420405400408691906643905194556180428686271982114864905626672420034358070279170369548524630611481194931860262857704558059184328624443004717573414415637594276132194104571097522883825640532289857743271208812634759915581540642669656586249546849694407835890543091038538360543904080092713711608025942475481750313646533799770927636119892782172306483405184020819890055256684792605574943508409502428000447232079287360385619422271592672689626372509535121480199220163497485596891508777121982894791964968029436387873638413249177986260536589038137641151676315660607080987014221267766475424756001969964277036816437896126643408149213130503685922992436705794339991944315893507180918239339196813971754220492982174262881617369342860308908568028898930528936909593798136025292947007213552327805750929742180012029327898156589998362781981026295208570547177590445769550364618168585181755734874581118481271495201975159835864270849389072142442406776018609377870072710357034574789459933349915381292138929337144393541829407282628946082162549996988905490722506876166716971764420989404169714697425283093002570720335173883025786090723658065740752626203561250002088592034172144535552926286162673740372236220251162356906404191911528948902174021396184670550400925060892731018740233967752965841245860972157861180971811551184602699394638951923083734231898293381883001709721552718028384556102257193013391572389607920562144654889386044075111662939548724407098190795598386074651736985527519199044871496738129112373998738573959720772396943601363672772889195990383624078033624205194101102255842288808378718145604798609613333529081665086406878048577792786872819516371796516875263641405379538700735890114939551689559273153630309974612030558453919547254668571603190792469825674385339707460797341310356916558904018328428480442625634064624219542324765633337483190442190395467729776390578811153476951998772346008674955169747543622356638076113074882328340545938867790375967930033796810721043473328363115801477468356752116005074623821187859551037856617017215481671149537867464402380807021565755141993048453722687973905165042730943276901007260004792521263204152858780343703045868785185821261643966380966536961053442284840116649425064764470846849437037309965212279853882902529247873936777764906532246638498610751181143817724913468920179833690952256891074003475977358657831341848234223293363036125249902492357398290566491246209112829682171293880115773702413041588020795729601608085671073800559182989212017917549318868284986302656222171059516577215645225819530154866366116570206575355861165107301194839242994610492437961289653775936301634216221967456388257411827019343817438019259978731462058649437021151582542126880894030198682950903584584487880728596773263866680894400303140628958342764264457383190685523447354756612406648565369403648496951500347446221173809417182766620782747561775840216906998549669700429662548122509711451085937385399879358450343289709724186957716298782856652932758076771893309810618735056620368909714881896820007519737810298249864511539786277242570502870073372139473002820636891435055666038326056458172048275558300722756469403216501992114820847362545637636310760923571944408055166482861155750930944966562268405881359147187570505737377267093129457394225717674279980904231793041850579490548281067701190643962638018618383980014549527752381661877982402442535848910305117069139535482907770143887095625731191701119495192256801721078246262794088280800215442270777709068808631653678017238595586425475702263239823137833081033073310526843121404120531591534338924135490381254487167544394479009225032559689243967275684579081624315117986896534121589713488239414518015966049067094774350128852884012933093863086291725843028028901286535856145643420372213213009608997672270699613354989050340007622368427629812922721667345813369713793143844464369455327183977673956016030776841619365613662116507393168127617647095178718768543317187197832535940511772133426804014067448700012458499282967472792927599175844374397900291186639130611244855213387654054034958663455497230431860357677655687294281858490281015630569682005104417261805074364702074863844464194407479420371924649730664852734882348491016004917380413493067840887759295431578992991037384941373947866910941569614185208319980850989538279866667352987112979579548756036878530200477440949956538599737545011171588160172536783070622049999988836296538327417345315872233006266992147677786449717974886832548485274316550918079273535278546994033762177898789739694579380921583572330259142327176269735991076014103018932248969866237877213543826478921325161653324526452040280126778609806217484323904280298612845615374171377898926358821718819657753952830233284089219853167182356282157468287598644516680771922174164834549324497849462059293104954213101329388029238243980258523292906579725253579148597139873360639467394739929751719796662748097646105582975773829437714724077388220376636057270842036497399938215883563774627613118511546793339474413227968640488275597041574638144878647456031210692584185491781402169575940229615214190916059378729687542335453781954868815169772943073131199376126579507528879033836044802657503976943569431839045033828488873289547736896087250586373665785582505507181462409713770851056934727241887780666847749896447892583310836978904810845368691729381746377485110063384236697939888555692719367526049262119733186658764409102450467633057471007266807856179031601937846527159711453438400610667027458065203482568623391075563525000245933140047708369803006643406176420908969599952784977727835956511612139491066848288858793413691840661983522142040110375093142357635875176068952367759718518385916607726308080033001333274792599324443095751900579593453913557084351045225059112082912826241638962846244645284525087200149168786500711959113981656030391572233165782395755600373458159426099946645367813146500625485135972748250203824355561610222244815495507535436566756826144826647948168206226450956173478784610014847924950641005652252049581390701748083581268025173795594357262630407219367401429271404326397128450293452533774228204822427994163633769402883925952695981231365143809936127304952355518087783528893725344438820376421011058613870450122945168966064911002499888199694757056210237287602976082735202126221468414240791463616633680057115580833415014157163687502468662730362887388053349385936309137330106408796981028415814246788194031241328269121425978714388952300955902217428737704178435447877677172537194707734531828257326345434269831439344755890925519844888067412276981805751873535010526541336474898022342607188457075454922123374748145132474094547119535005437600163282553563473629486534414493432577894695097041253420519556424151696089900683748585773135694511964682787393825622133781970329563125591021470402465103668002547524372029291201105739423700915679833756181322503532047072988891850726949561224843695723361547491863117313407511558725609655510069988622484049175404588903054376550452586485184500621567426364657715807052275084304954820221141524879187191640994309432978871711551889136653608281231236102869268043459143760297130536602379111332716709849893791118872224336347079604369331267064097427635952335376225399725258201126693163522601431391787915575144884125991633079098432725897213894471393752427194355025575633561950048142083689657915960966053726460441199176969502538214584550202171329682518772594502921074042332101777132632332232908999296367622663698284294875955229863266894745237502188372586306364837883712769361969027342878167700632032842717169045251798286304899339066399869495744434833538678765941510277407519673826874833023905649833410044298104093316501248860865628570938938898995912911092603892862102734638062057679526825165874489155189556223719204357834080915613484227613206244840985409098127019208747537596482985693810799098722940970829304732791261424777274703560635461977842754245278809951547023446101410012603181068337458574769418659228171261427683767964231415025801706474501527929961445425956206796653205197210450246635406389080214721236041467741665094855765196880763344409233694893669145834416062633322932127672493626701191762908714037211646438933507379202090884493335022398269997367469398818063575296202684463604053516679643117288051587955107460930721456948770008666844499184509748510016249412496045826682102507629987079065621462640235189189398997138730502091089800130301360230753660619952608384805102723664288204315964267292878134372021568048034671215853275846371737503209243247668633304127117698520654212081649170673038235313335946980507863641102423147172807728686512004582346125114973343858842780628423594593167591892986443400833334452444994320292568851277666662759853307516109735711128241275563676441868153820809837399156172495532054055676504462814901543401396741177631297679337810697398835157315829834643573420524158875770934635781840103559579430958750108896127129789504912235108040719154069121864114941619862127131504619479043697748190017066436879333129831840760442307494216662620942356766920332554130670187080173006912579910724762622346049685995907736905634199371659722222922603108470954367436046765060087737092908937040369860097093888805312898670929419950067671008969139469719899911676307715116241079510134773090003017411254589039781256503499192539103792320270713901762166945641891494389144109344348376166679770225078473684116940301743301163033026834792283638923362725237660000684615458510020076423215694459857940259248663463814097337965461336291806524940251169853578340475332891463311347199860777284782189846391909479212873626565932425010149516637123997490531949393053964438022019689049246790614928826201714767786154968695822436627309222416089754076126856443035017061872609871319116165255456438573129299936112230351636663860433337470165631360079766562978317301384662687291066091627645923054710119467756422312524039397167650020237589263163928345527669016359974549551417289708737807654513589657937985663569254694358965547900824850225385363696614845078970427935795733413389704692270617559354210775550754375725218238347791874251474559678009417127040184643762362920599793246840668141223094599096392994568785045323307802346109866495835360077206275928006668218403189672438153291985236888962079030711329558229970879028205949801024467399140076999578584749612487794125716381029883140042417636230585836981656613958720208079282208761886394377235046625544175476924633000902555282777453416726379586769891926172063492437587742741686981706745607098573186123396106098375150291015552533204564060898228256798574003643612453460335294853327272632026587892598395991954368260596969332091273834141650154447877381268309506357010801923021915771712487856911436999581621036065950466680439830235747143199553014732602061275325771054202683552586545306060034768919462775337719728383282725012850974458180356420670811087598127062466658564867583318978157157738043364296401365299642744662571711677085506035758682007346700289449809235090919915319274621372333547821595833862676055472868840063829445988967692030888824985232805678991345624861181954145395123859413439058244521610116399805202231640712537717634480480932414569052976316516202036149010172750231185606565758200913347242638389793214005439739275709586054460188061188778774374126283130494313100575274498631468622287793754005055132917832164159655339188409159723549418766189307044355686312922256067473700730393737206985306482670688763701317211225748052583909389305508993817018659293161933016883915294446916032289480548286183572454559391471386954904737718590429883318908506975785438576515993249710511887144259792102380673182085832245987694218113083633006039052253485771968782735343957279519627666073715461184334045473535556889816299645041926403914770624272813312926536093078122365337052549486360298618212542241548325581617050441990529338968961117716252771040401610207226738450370142694316601302505879378624530360098121586349718577902806592449643676293856548016790663684638080480131290169625091823949786395420859395452269186316296936252783601832762624809392345020671276703984995686291625588151374841298300411032035547689115571347107623153980965716446634003222774029345289924989262355601369650427632090736547272234460801904337601676811494319326905531935124141109704129144090553520179967120013739999165555694229417600830249153220108121619248872294161534110143952371565046451703940545532714464779359411450161995426762230620403482070313063640902809266820085998097875167004964367231131898913045999657131272518119511553582890061339219272435826344972682264382626770030428140641678449975229731803800095307119224929634947324183003330550149790836617101204265394065520942848830433509467754116807011026271319828271985303534102617826487038282126548377870306815555752324913543152632554117180893495783827498795948839155140918551583063527552651456842404564460688467476007046488983930945679465448942172295144159407107602288306395195971243136616283822308651435325742879068835072196748481975777294363062211513644655835478633735945024384716675479999844439397383916696927024999881364402364941533567513099498928265852405617841657798467778624295222551004943222635460829738205634438225118536547744199849521820063466322754743007511543843526943381264126525580963437669233668812127925688009703503096564999460319638464020642534557078656261016343678106904052611468150790429651182292474893236279868047184937608330336107558585739048929678546298851246449337463720592786431099223125197481157284575494166547990754096321401672867785120124357226098749387026757658670257074673514739718635714820066356686580762154296099867379727508295757583856272123042933485534089954042842151243664361070190640665291193858937252374294147345760329639533274476148379020447815367957545123756191673064257008460502133468028803504383663176700480594087903075727479033888228092227227700442307385611570193609177723486188661008018089417018991932443853821304282961993705797440884568522149780653308619792606719343570815300617734932112646173953093830973113061385338764342364316181500587169101253454102043848581859751704507644837141722073001294247001292320242637976912546261496462268490990528157970434644058813516726802621765849541493703072120860276252325726408358021979874321128862549599454464356183539359591606723735086370885944129723693448488125387632496051841307748823281837171090481128536305487525635418104700010790892146058751550745543442130123838630088047892941357962162312874767592229299126356846184096589767914296108576297813274543844467666915155752811000599756115060359375801250568358291689743717457686955743151155789261823914340709175525848650068840555800992041128027513604535001639167531309488429480665209097572480904461438931513853099976476613961343326550448120514368907576231912495617850795993247601569267629449267715610551530175958388071906745397521688388899046964706073946364407974318900573319530867470818696105287024618671930465846548513738308710277507288467192366036512265271909680866546047672813419526676361345845788435176416299248128757995563517368048652845169205869801952902682942926250179010109193277592539742911429364289020808510421443234228567088515274489374957264977046756587607870333303929508756668213636140801285007364556702919547454369181476545892776655831078309907406707562057678748371907190421093935514370738814471205096118693360862948073984628299299709474002465884556425958371546244765956906395541551654715658104712289917218369486940309018157536504589808632328445448595942629418104959295005736636703957468961981963629877675295374293437650710532357378925753652557530002787628205142248594112562114806245750833814524316975769853642906922203113386838042609921847216368705411088148754258583898144904744328641388427736274805996637849506717454255860414429471256090172201030275422773191886339862895731624714910251701330558359103740356358877445141113011172576400376764733805116275120204098523262004181049190588902603361365216706614553481829805100688449979715302100327584169223656432219408087858338544685706103345887167968171346164422922017726624488001765967669801834083633206778679050484005190707113828592313903619732283040972913122433371155071911662041850728162588999345613917646937691630983057189421635610159516634209106381117950287083955549315904596022840796887054922324283708616448140789318140873127957107744822173050137719886002186545069442080619142658589148182560727006702395595985735909575299679561247008409524160359691226512588362133281561517820798169415996301852569589829151811634949394395136595989570865667554169632990793522388162572585211639941162352506367866034406469591474095805497691348367871538042470828652804219218350593392470295165947774658242757314533528062598914427016681027686578306887690457001387197066048751971415778294072095544449013915452299940569300262335951014497236790937181491934657682401805838158261256757072902469940208897324412773356765693560087993320005935508758364502283228509325481530480353812828874824203723170698863838891935758863801776690742119858508240652665771971034725300975603463639997286766488201415960033860655180295648959346686281753619648213207796961577005165171129632770803338401513107167682470875140653474045353336693088703267675102059083884245994174989606986623793921695630714456725323719926233872950045516057978702880889246000456952495389149893897383819722720162619704092289333478179004143934358004494275127743781518086986702737001603465815125036526628817484278908132643718616807190783826883293655601884125112677954980677128689493585280460527576908331130021977071526825636557415054296905058450286665669959669879682720839078042304232578227285874920744590981191318418314271413892038554229124663545703122362771900620551721105079863331864971303928607876113443134491511778248856770829935517449254882021438016092726963124165231161801283659153289014522058295223952416755873152915672206683502422341791874438718874212615825182832933673570362543884364459184803048121249737729369671653535547118406688033121056060711377327177552034975012344019884214508510395028162002377719488428744961214733389974736047921425572537097437476977138518095909744942408173780773138430525800925028668184442360752910615591503905773453223558404453360102280858610787018387221805663715428116485321782168210573440317804218046630052608019037801373754222081238490775692672899887549931778119724923547829031400843013760186139838716031862862640471620923196110287551989185849103421049518972462460368882181194723227629540939324775960165550992198844182861131175223954412618471854953618194225071416808801375656472070161078524200142310272410207664922075577351033957501108387370915202661604868802101959259077518110758922582822792852353509802351503425479504687253324262436688073987174329775322222531902890303769478427420521778033618078041211305733556032393185302452293697896259422770223659115709327780302234191972332333306468208073630128643444074844989347082875103736421013288027171842485788927313735594607754691374372736144977088281234572144983159156545889924234989767355394967392861156829112912984363401602428721977673114927438686622636944107517795122550112806770874104826246959278803895516042376434262196601632047044671695312728484221555928016673655745254049720080483201876241823340139404567162221009896985970538855465147780737098889496359785989519042538445490674857674692316551884667059044862052023850720887325468460915807903538884621866871667729768384559742489743759386191150911428197278673822046930471408380052839067327905151447243247018235995060143532729894636802219100655989354225671239095830452687589223650178012133850707055601921579467894939812428553900244163193665261663159046000609377362617717714171821521181622806178094646731404961459208561616467801912108683339438296333525675648975746752517081709486481809573286826909875220584290963962821995635849695911958632277961765313284533962925016317405519878835621369173209650950838358275229274216744971805042696373336452906611870613451562331282716950734454926113219752784445262437911565312666799876803077125541931572044476653518553150358363038959199180586644073940966896539710515483292118799075696386322848412663086533898316882894940740577627377319606088245334726607990625206811772252204655744525920974404921665450170233596270760007223677330140324201514927525890902234755808927232777162411153204702064553191646098554076814527428479118992173090283609752704634077247686972031951925945338302540212122045693280716648113571707874458490403267499930811863513469566270746633042436486035028593490888084811992600898328290294634940885626012593465227514281051645486252838007976363080690103472106640322744465504888080059677735300183657538007704853659124670240326876335270830195840338692960650675645069636515795899517290283734933183840107986247717774856617334757727817130514510637274809723735311794924526674136669219908711084884665156086153360722110753724547311988971902335291726328676743931938376402957280559142229420502388005279913007429204173692903234800315216524951869814418075726500340688578345016600249117231545078916289414249554697344693572180932350326694589762716114369943372454926791483516563609500363478735711942692509415796499312570583584166080580407601961615630993761023245952227085477034917509607194797343161830332846135584603491321975597132412739376573878816888040878853985135185089461446209383407698587935051020259545228774575928510581683481197200060890543874643508617238484214287569747841567642323195803210109489819196209329351119435433320903361171560875124204863280300817303510422290267626652891953415044214703492714435857073871452037029041771372729531039618951662589017243565868821716805163101716956255148225327270673866259898335496315225392219167244038232050621024944799599011369774296823877481785026824097326282890513108375139218790080242651753001484658322703339621247099586733212239332671341690733724663975626091083759408080791215314345132229504354898283290315127518511482309880710932227031195775829531064449925943483412822281760369670071973829596387915375759840087440014702810809096359598928381184762332832337101287136569709896517496167185466507491704662470552719902077073695439597907906747203901974525143088983967814580237205837693940404817562929357920141549791627686729635765917736161879624023212602276344255242879471308517317405852202067624157405991597358809012338495734139995360340219750925992114992443701690672987215840987889273304908219132864652916131292454853870476556026196805000534466548539736851410107643770330932650602499066634802801568798065200558156871543195873329445973627701085792905157319845721171552474079811944279884033221173880659750701265889349394651269432275923422566384082489363424826124519716965492722546864491627589815816453887751235067693028678815763135317056481673680125070709214119956188687817358064413087096263427891235448242013157502943616447866181575348639395877513924240744466624765262338508347966860132030489647042073816010702563912989302442312601834223191970445534276847549925806092513939456929347984294991958072449904902442127082353314912321747439340842621517667323777908503179811170660053140759149465590943630471961965512143187874778869380741279177509493450750439361731597400058716358121464677290303564065674123684567606610613169697258526353317314458749411961504104131436658171346197678839876758618492068801956388860571041531797333229116487224981258525789445518851658928401297431151983455515743886219231999540016259548408845607466699212770064276264076306387911379509280308580438437425189895245560893997109138404818707687388192620347760460940223293582887189808407882275679664298680208533494201828225102784354034558061914039924851721791707733804332894172097847682028721072615648834136182337467639259474804972918681115871633759799079070222998308192417165554734609041566685842094480950103193470319707116684689421056187902062012545997224295261185014912800395277773381728861332019327214492815644386335213967666482188997428834241632896410130345050845317002828155546410767517672223114253262472512237459396634533591603757004234298029020939856255657723025424820064435536201124990231901349157698630289968786865424536115049868667026829542338544563084088054026971411762701666780604657198915827354675940810141054041224629911173201817786570532084202890777553010408135155704708504863949902112288396609981020367513928844538623688457479245064857073856031051721863491286010932159117671762316604187106889940464702376932262951942228649742377239910324077111894052979729510969774562821565664888252580747088526492508784640849797772236280460541756899394281017276889975078990595886247093343201584136135492590124171569807589232689841883819976965415840108381924630549159025277712487327860944302087011033378182414350908604459838590189283583487343969657740703008018027904334894048290941037636095162057023229683216367403022543937047808752046268195521384610934586997835624033587488503048763413355388015546160573667265759933316078149029071319142462446089023198657129907452871428433526193767277178790005267779982144215665926393647750966699958784226089237519916943656988255457308517163948072479960738429734589769589010161959485126341736723947241589907549864351079111159273907082697667019643387301314204535821590734732007822110492205200576541002927972833698889660227149742525947302116537839295914350606308956532533391157959474141812388893192008056700045712225950126003049888746681537082887803077181053341061366246493185952872602834114858245441396730342280211385785374741162814367118015462512207287817334841453229612582721360814877997347672919865580534777862750908481829117006018214714628942307479758557680571349162501257645704698077099643358918493952039718340542698030980667708757838826506084554094238730492746283549681688873171013228540889493826066675416944388679968419160906758553966198876318551543227282606213806110569823626218623375607869637939046301178704996859698838010051912388199731508456825060094369930980159339910018501698042492956015532416786401371464039228253795062574570214174462659648571442660559661678704891569407571666019579932781339183793046172256542972314986188768584545617514523240473258192883234436329500588889226134997380182447369470377965979506824186070492455832340069044476888823901597735131426472437895706496235117834278154989274770590067102349918371167829685219093970487919179479159162955391287284214750565989789452685526244738697528223187305219566380068151970199301315665243509500795507704099957173935900474179120945059750802540979756085046368681960101699145430223514024015583390723724865735172020371265332232003433770756403518581140607894150483748322658656474242267603654211445232920803657617808566504948600540790824526934475572763568553825498923878008032723284697188632592127467082089664946417170057748101392121750028379842396783374175407317278894256773366823465974530163719137347193377652566635981600937497098954653149287688578057795034353892990745738115585836108569891622133095440106988788468446815813844820466098006022114191462039118262809507788310897658921268411020074263036988461733513519617974388090969628652242065358172893171818031715098367195034910865539196511517977519131190001165049740202538895931665082885429868450342202788040351220620460777178881436290440296043017264518160285494049295751510743822382126564415524554244761666690292927675707898788800294541144115670592568771755445961704172105333079663428771678782569034605345410929820515948163988986388148745753721069912230797316370004555021263852139287886297586193195261027031809918222051857093170800177502772559388805492668733679360929332921165837495651721688773954397874853030349922495552422462049758098102100577198922213792040796293699806008819897767959361803688568575472990256279165545181003185805483783327777000539126741122981299218505655831269627030750888203821956325965950123046947212531424842443559496740978860264487009167135730930887467446751782336916280550075812593064006511540530692415683497839350580818769910451732066113015512520664337505816936643439754945982971046336443651866677760890973032802309329396021075519339757676539675318624605754776621615623872974298783223168977401038125337776865470488915926519784532806946636197340899166897687930656893566778647945212826464939394673199554178777474257678037587532018977003958021710207513172639701882020145831333547668932438946121338173199242460096557352339051266674366555588433123673804532183122230027177158237027475634059840470631490510592054961869218042153536021840295209796426141736168301332699923454344059939420284326401899242727498871545796365548173722728203054672979401446872885941771878955791356712532775426819017846108038595846699869655546489118978337544011250689088501557850994844051469608604674721220294053865805540942490358919349719689734109130928619467259146597294411395480906028918879497707222873321937438868683019043630389830041813106786513036023518629810910763973364585678467794911104629573162074663818903704535371855658320454281631090670948752992056527120792427309386317773052792899437443038881645090708242871192097902031719462642842836395615670720475434536616947729445474218173603855291284626508250368336012695659095644172512299288509732568049020671447274804481661047844271531189391000634549358137251451619803327110786834302465375037164500536289804087380755646009698521024437554136050358642288641924167772022890186120467710821613327482903040877729611205339139587294030934520620916712253507370705087818137915487157127157267263341968859492738919166686069237516734459986193775257707180155649238439322223171766131002661163518707980855996544840541528772458294987230695935569165307422583057856161950936253995799977764417148906617694939042451416184237697819150208513623803949701411675977242435627394652165275570822311662947124201458025259702982753990677515746675680733641943554612265525311878192448182815233037360097634764925943038866377718774608691114542920078216678346237629529236315505299454312973625257712636699746327096241822960860625976729274680995930841672180981589117504453925752229433743858415510289951050873394907491131929270420337474682037823700678125914439889403168705856489986108623919621839093891349393675161389669810196492104769290506322472352682979517760040642766498115370802182114696425056314680196991267471651031360443534698502527195862017982855820896744901215162248076307083783117574877990243264706221001923095499707644458219655038750791902663324856351331566072145047799684089139354634748812977066059253447800401755239833233683061680575516253266680480156915864832144566962084044095786633655263060806444162358958993078568714645330177298787263641737699551296404759148425418224397163427173056016182680002101764678152095613533374391388965127259591861715410872467039328176450344764777462832255858384364468114046854066075990132037864228151870819011886697090641594145481949499099857495043745498548071822723864632908465471825380630378529932969798407831831111989892761142397781087078485200726238515425813603932679268195025916388352567883035142355550583704392970001488349956526521074341388124264540918988097873108649436692422451683527462692381976934405172918972517994709522805329705303761331409043391844313155790568489285979432822849928209640537629546969460348768590626327855961938434261018665578463672026945734100503560891964377694247083418511535516992989752147330434337864140020259677822781242930861659186590881384770373918299144744387355786635304380080997038047049864491863517713250682255464860428750030447547909138773659323065203865962434138037363796867426607201548840280099407927702448093153055584147192280054783075314086612103802804586576565803556617774328306175840993227280228960693259247744351187593724765986969886146954519064646718153423785678402317170417307121205050299442139074757035105564950795803940249410049735723596807647956601264079800946240343017358904217616806561929345294201410322771571984974348262418502585148239238512453926110081874816580336034922545797692903942711318548688881208744275695529618495981232511943959338927531548685983550221541586909292271952081452618488798911564029046503704553323894158335880062735518494851976639275006891138066111658188436671549147204959809669485467722126360320317717178845218862105141684613155821489749696146286541251140163758378473255646040714935664396359964212356593311264589906837840400833093598982041022652691300130342519851471027251787752621600325393135707519866641305268548865256018080258180907824061309404040115803106053888388942379940908565739872732877020411879160613130126589492130252210339474144651615734287877152015657101174627961771796277620505953369870879051285335754770821332436598077355494641347297072784980204398605754764624075140509566811331125437781426531371699321005901590024868260961377901245947588016293154696928457334763530053663234072304706008780492272084049793558817833039381775427335672889993137753976408428968010630753011436010186062202723876947508548498831864401638222291222794228253461563652624010814229792411560027350479121163688742066803455704008557799229735673627756993998339581562537703106903775172687779436591225154444817090813020585025801200516776961896504677074764887045400048555883771414499032135129392985584976449752435421020948500169304353842569187118096116354776161214077639740085147605785788269108598899199398620054730760039314145168898697714264267424579334020960498032570401371628528549952613221165810616480537995601017623300128826200225850541722742595310561215097448710466743188172745192659958726278306871185049713243677162294192830979192401687821514678002174799677931947544891010095410209614931347622728536430763911989641138743537263978224618311389305878906483804524344326746833762312923267637620470028948176201028099407880006984594803585150051323653823490904920917981862152254656945649512504350568066769589300117042441164258105943805620289446445044633900429709231638053611039269039367066794426610254810183469375160714834217635083133238292702631640216967512695579736633793371295384548986112338993501348454870618654410778246058131591829029066767571784235300554632671376936669943327672275119896741099912460801244290108955882444702409591737316166621641198148131926615014763354289500251444142500439215558139317030844586229259693291110353504614931424336824166320211054146530049613020597195555257563925869141206584653084760522769985437452819470567540106725860931708473749532032528515164570608633331296911991566016160893337784679762369241205160728444723119437615223101949823917936890402936767028631048694128214755051388777110900304648272548797621227372838927221743107758722017902896976068144532135632274690120245810278878914249594297388318344371635571927260532806728082844423022448235884327895767060808020004893467681290797680896322494361526906501158423411475747163411705826455746509943675231120700401331763961034409820280431108073214533983589738711667195995707064567271232057202240627938478240802676027805900936955548972009241225396854351900881685822911431408122962267532048861118999456030452784970382131010487779681288720110901022128608867939450309379119153240373068967186133170188569350218523015370612722543594137460983400521196905628813665924808612575296088503155127884854042589424754324619448199289318621939819987823010882357271335269521541431513975003288854382658521202436334480220360161927937371895592059596822200984817265163366733544931419368406760093832131745602200853684289719362734055192350496669943886028247916041971237266561474628760867442119036007084960619012024152739117776780738208006873161062327250262540738594973771107106179301995988626184564487119536550037186065482373041107687604813105245896472403724271574714356059194005055234484578412604687211490847924511478075291930330844029540546567249696921920733560952345544056751014823202050361298874882797728985859080062435979663179068618963577068392054430440024585690685224330198535629299604112155194776124529280676514902312019817270707650093446079786079104014064291554343506569626341754979007121484102474392250317882005203436802619302805022006500256448065028733665559353289881795239179093458321151523944117987117664740042913886491720738080313290466799047338685661172186571239902286561398340783383136245229760565126090574787639293108325807768939688070404315790790912139573430895387396342366915681364044830583827856519704763623333283133194985848776111282331307834527937642621630389190171209276635246940574684528220511240467174999626235713144214600796449426856923405490818557220168856469085017121331360294033192854444040959332701344514853685564278817168181479281021730917462148581867371057867139569575000724147931142025496632917897746772939713897688170875574195300798177536848752558804663193237135514256069903146689827209972364695717235132892915942633214221081441813173166097539283441292406519963549756496652109676104790451865695811739226041115295977518474494433816894307671680608261571774954329603999214362926570118262331102015843382362875602928341540237962755021559586110404171745746638655857295046570805365693939243839748074102745036880755377272566215592476656168642601290337175126318502542778847883672334022595750401227775947771626756843816599428652720262697247372746708995559511852832624501664690781188598231984780292168807324464223647224602205263520482026957020836217036749502390303017586721043211954360947805119689511126871414043450564267388646442562245510893595833478356576014011306150653527342011234398228000902259075128354168522224624951984442794838375541721297680675022769999539912220594316004423249409795909417513816417437535895987755154216780979460156974693663002476977912990931962757919652500059059935984473782095607163413636732730057454124303410504982647174486735763760588578187632679351865723500468980099566687985303076272265454810432588402461495287630798291590338907542853821239404213097892469183627601948423313878933121909581365808851059377587487120459334086433513859047991001946451747515315868499532800968161137617133665207814910075386280837253131666411263931673639118271528469578372159375303979181757786501071521596071603877815841423532031409431517693861451711059577920155161377641806637121265411613273863228514433266245993786181726762189044746529618993424976722632004568739284679310202998202420296675379030809774875478811153752939585753381722974757357547438935110437618520986362434534310029125819583049733099245544327375568274863124855642249794704836908056439674270833712925954560636175373810991274083298175253142637805998038682621751571484309151619242609778922557354140252438551709334341039157868651299559326294901939957269517702313982587832341978702429621630852653592754200879896775234932706606454951673240867875453554704881014460623384294892727122399369580571324333747403872477445993116306972534770888566228268978279186571973338264156853118445011709117803887589681468958856482785428438665724113851252896090367132235511891390888250768133219647081416685963933595758554916262664511080628525538203176298802894394020457683290064043190336983153231529945726718519803010455100985232537310881497815760802579338863849650808905647061729382091764996952334237985096349970126360317503253869714203790522040729392948222186948642706106678387514585475952467735394877039451889124812609033611236651543067837249616054343787813093801277263912264854667914301217347480392947011341341018015065428083420979295868438433958201369295413846712731729223691363342562834044026394069881933082653035774323673946633181564020097191893824046581354853005762841896883277872725423406601354623083466823585195938895948179363253130091361233855930191089757763516244684893151939866107329081741500564933511430542093148886415932148337445086658481641633117758611864456121908199004313478109250328425638379091749446839122765335388432625312132076140455742243635779508390536006492386788485082781278166003041390371048084555449870683076725322192645330248818930155921499703599036223149258804195674359639885889605166944340644278596927851695603753361391202921136018145036492527562307017001145703481373590757986840249257964113565029282318884916944542817662229094696915792790361982842502213528315303087031409359806379033533583709801835363507043242834474807543417844498505071776846496173531783625155694054776716203585522603002844038728703949571862887194831360208229227040395445498980151071995157148611515449826433201263722817381495036873820342133192838111799123426450968274310388625406274815212925554004555933993285612354008265406687664479556588390051209506458916673765899249127316174404313745918265722377424278228690889269879462108295614111415675969053572975719530201540915430603982481472608946638161313643152877270281125665086919866419113112387622820552915490249385438433981072003239913908227720383044270643465811566590015393926140779488063548710739528456022248389024674663328381805865335694204738643135801891932524534936938619175091605367011324231524625994821766477759867828985811865038623574468218498103913519307723010867329700776211436187768890950203665552721633174558241833996619102060708767914702310180323280198628879675332788663857719740078358125349123680603127282838592920617250340563947582789036401558916301360107686267826405089605881760738149561247903054745007923715719004757869635382653893220875092605692046241334478404127099708697053547131827717748664158094825257921824870027294485523168912815667482040797948536879547600004499935715588303692619303945938010936702256188720778801657108116563666516375661872592908232661604964736151118037122615614970512179740351998971211053327619228997451851076255821692758015250275303497453757488863059339039912520085824426340081973966356281518293605330387401070383037065817038615529028244727272464141541621162109860337085465732893119370549311969051284932731116967983867252280187056662641530017763742511336843018513100822949591781111268755645400672861154640104857866393169737909407665105443721538028420968137852728175749935025470603167154752543956730530530638829916503770879520780814352197420440759402686313267972095015253936516654328964980446182732014138832539524696736965627280668979086967330584245715407085516354921716960862313877761430629784271613744647536023964011000194892484775429132110210889669978150339403977873663635492746858993598191776119724549193363324937449680637901396794889708060200840058214668291581292579688334313690623572366277697366520528537069128230280535874496388562078849172973604496213343458896279847208860609165825135102815456637372277420804856199579377406439983069180001395629335917636408378436377552086679804209124352545810025216412719055046617135489722556626516507708148565989339887203730941399236757893303008297053467398547337648267030645167081489357359246635376041780849246172032985830819413518050566661067870321704454620578869353377432946228346825466798855570764260359484134678407690567747186927702224074153845113778138637366478520135364230881453300487572221291723314387963567722362588831276394541461192466511948046534686134521431780111340682308929142354520979481546989885875053105536773500427056558185092903251813121048716059788720833950825445317645295180920794485073535318914913474585853976076994773019158517434393752332419564649667044417162240691427727962963309115957532832360663317986292868693564855450653006773529187541569020626605672644335554901054233112799445266536805972110097538546393604460799556397029860393415011008656761213381636555794765965099740392956169525531579593095884951503351921851996736326776582727257016060528335083268088402300310108971371211907957473926946568248781610921157276427243165197323969887030899334190544115894573887292231842466706580026233164963261261927153404617962026099416591529600433232665261889550473955645749900806543262965797870896197258450071983563582724022510176122592258983129063831198638669974520564010554179202727061875576581151602080085371966999202527613908655172274184112422726395742270681867727504712054408827353323905891657883500357207248688288453387662149859276098890312166631578697951297529115671355201523190207621906962851102092643075790845276688988835932738675190440823353630442113990397613741770068427379604788423504271994390476253978209437570571120825875433907877019258515996631471501744840041877070429453631804048752252862342637467705526901375696902725663904086349339703728435120189111910787484754658083859443832622111461156353040995793054500580409533512151485673802734611776766973321651969664488903130424425161285718139018930892023493550819968966322175293384570322824432066256493579337419298899137351536761109754433841060277003624408212124256156697253804473030872408610981712337356648581130280759727303714387571384806809215532386194253521855250188823758084595859493442088133931596663740513423532450842977108181842875323297296161958441107902764524273647270215196436140106762313088896013469846046436902395091944631815602320952067602952394755944181495575190684920375129555593016447852248512539749729779806772602911459639982552726535900309820114169905801891509576786585309277359970711711633653096902595640557469723494183127296274239219376352725429056996391360336101678555243523949137607599458219102808868674178645666711261211555614526794777021501448962643924612747115622236827047528356006295730499109058593752634025478489287227531492318631987673070858804619168621262360140705940834748827546909518903033434157045416324871366353441912635757521771283616522448913507729761273318599582496548524106599521702940986150221263347267792512696120751860744115087608989287319412936874183552494992739033106298014762754823834869839954557423586650321472625262695828438376657924750330666394173584414153184379753734213310560498975676601634742595013448753529026454549225112704184487438077535128251229440199282442423036102557822321340685731243223394017603920692752794854476439313103684214971964192563934354910157883801284038234964863488681548491773541381513692427839756183318574281789502934359723819886738227072020109927675346003936178710645912827872752971621170290973936273414735250525926621395777737702955797786935362838148940916644615288173741027852420881682756927877806819037377893773268628387815266782966708980857236544820323656734900144034090638487107744613122231386283098608002540931667042317156549163094730506245291712156605046396208426568912032962789124696437458468440307835033221307981322069068871465855438260043718050430550076272363061260403074540195615938606657654561024291040823016073926743531983574442600237485076215543050843966742517066319419605359699659850472979230346824146244645604783110489431805630286166650754111578545310220319601862255258778424685060169295654579298593393136589679445057859193122929390285128178011228968672445666614868298377046042480649648798821528786352656276406699899602785135670596606436938135962104097032627994933462520359142816716702744527474015447056453449700522236016512166128720566438743886790735073491486105052588969510680080931867069186620748554687232095239004917515270112253904984741835393379939453669603325022032495282611627817759820100049199262618520947458707692906383483197728078897246651394407337093181606101786673610797357516573012929082245504918861958180338635981572582996051788936663769015984308081246188016119981476071433555390216086659841863199049478225812776949629561809633181549078092994946957302280248516302962528067186763338238226925426358997507185997894580068819595025032498177593535704631886308440125066421345854595437102873107376988716756140960332684210861933211100249082895112415376253063655868194451676557267448795523933783180180731656059387887529502920642260532733043856778364865096676772112404358071022218833200774084947816481007985670454599416267002132289124607605292766558483088050190031659453257654946084930630758842110854978990829778472799197153509628918077282600927521320691190702040961095383202698823042992173614851482109463142775393789432779941791912952951857807688454691216680176451588765289489067829687594265985166888354771260297943986288394320096459696181090951971734626662218120174707860918651565399737526320546295090291541551935827658167420235534336453234464909090154006111376041136355385373596338924502089870743060495211398521322509436836526775072706305050085380842278176924842553004878617443959776071901845163977341302560685061416674490464268533844606892505016947541155622160933105430466938045900912621907238844523630375347081465589129149963592662835012451860967080649737920628339235549260594045686575210376090805877571078404378853833795607257489269453790419383288008676492330272515728541404243029202923944729480114927693645983441788908328817011100200191012364295627389081510470487639730093947563179385427557892245037247925898491875409626639937827229891893913675831397183043993521708763019657734717586069054354031834389494135098661194057058023258179562877746922779786506090553787990302534460633209378884147477160027500383721746273286959809605202787381737817501028617659197840808769098977324181799945395507315368063762709932011463203226423925828527561693886377190210314851155825357231443513707409726687015047407311847881622466670205279650628167228122056323798994779425119089718844957700717087405083957552761873063869011971457801913656379740307613113010738927719455845630208233935851530169333309992476150317478509952479480943372195603044879673726715795345177250903888358732145256543717205356018917156331143200522657107079108387649184412836436811722174209246970376456681990627807477958600423955729542017872808292901291094562449213329136864566395311959428044956840579940298997124056089611718938564988952250370232305683516397251127449312146560280954518611795785631101901077083329643362912626766298243404785026036849019974646897302600363699870322950011794105458235880686569016189613120079376635699691638411139800935955949626888638076046920046387602149892453228722821010624998588568226533723906805607506163887060021296453838651635148871209658883640383420041348196996564600652285444287726224639664685689692729833654907645067183290925994521518729902392503524207807501237547563332850749855813752800929944647822098841571197487348531409485994092261418888302598595182976835000463201106165644958106517156178376850393451002565658237380314352706310046687407384136193457873593382170161758434477975559144407842203194172623385657513559858108428453791818081456001925067301535075436808450060532775962994244058910393499922768245760184869809666108395419851509557304469418724029491651280974595601084232747607226584225336876073844308615569192327240149452716808855880246372323503334303182016506159012436294018246704435334160707617749855734070837292321617323737081087191899010901169263296046282307428437772067379181157135469462877302266212798364500662782082479194803354073133548659405511451156968644609194386608965484352231957763389849986446985052077084794962688992036290074522406001409262991530684959843940160690006552133389994461592541161609212740684847200212887701264697155953446544538676419007302192318322136240223984970261472595901819344336266132518488770057774158409580735268824558682425042936601371615240809085558718549319908146345286227794684915072801310459783365454203500293058590704883496459703315755095810713662660530854166444301206976132742653336101807041254386615518240764656678122205234172652546696317219094767304294139974097078987895685145031040724947208722053075372924977690636733061093882033242464081602766591337001287919476127512253656781450688935369842270216237375070830856486975937920307110109360105912307741721292185521306844982631978287257446084660542734783597743698139600722912860641370562547543963774829695332081349562491820308682622417334283279537697428058681553474188823063843372502528498016981552857564735901472162928467487587627905278925919191555116341715811567085652041811618175677297405180911515487485526484637323153060271078118396284464616028349509204934775116641774149732682370161971505729814435964398554262560458514563302081511133281549322109082000777124019754351940027287984552974224517122355023559656380733685280251260180465166837228280696720178916227069688426420130517382365485923946429814799681682966099600732715606956636668211996962226943698380561412485976273068885725525048324023631974260216688152737611913754845414902601117843110309619568265530270505613585856085017844306084291465163296125076204148224383758038919968518710011049118890176260032780486322146322181649753620393294626987952334202509032974575154584103572037830188736292360369827611108112265392530387148991632830771891699166939366236835913093871716429832517685979205000908744060497133158613782315684936506752017189044096460376713884407921346148157325213010272932258710202355503092121047465206903581194713941862281971282337127534113685792241734569267675522606050032893132610227602194038247900331532578297309553038816158535877363781908470098107318397572772822039346165565860076145034778914209279461321961109252592315189255019192350117594229603653721895663993961475080337286439894409981034915112718504274835044197333963098485347362531204094059134318401983637498708269614407909109933448823077601285511284167467329516181763865968381460083826061522552072279541052714642381204924933062908254873140409411999402888203446975061973696944305272856725311318071620083598259763436616312123757424580970365385293631445968025242966627760239289161604674288895163792905247770778751029601751262383825384455676413243107379131939424460848070137178573139531211937077086919856166892186905302656155124466896693232783425256235332224039675250919424319709024789776836269626804067288456445652561617236731834458610656162648432280749624908504375178837572478414747646227859062151270948232918020474854333351133009595333230799118093041423994395802649126155548935315941066177058751907290240588681295173825283893161045341471381139284291489667686959791900273604543893310346741680583383784537941264584058151251592359587552031590018391428635334071051459213146325104514425081772832401637543922449550397742974320562948748906759370470363914318903944345363420367396596615736407079906747804414067626365641760202290288485721554158010383748785846535996310459399874834863454560529400121516137016495307113591154503185128292571827008625358197777756230429810524361838918568448298400793266382968529977584643966149581255393737434874345369382823407843727025023680266147316429676098614769511540166790169774707217042607262450083150316114888078470522249020297002658117164962165197854365333862812860460091240770758200373354336327526284050281837543473354322402399475333311789201715697096398079257553594250857166600569349240693723505199687349198803872524935178507744784958863244049163015515959014500277640565974570028334013102107847550433656981921796882879958521502241181572274350079147059202220492192050995807439810759977263064280381740684334269621565820737353629495008884916586340378043610347629267400861817351888408479628645359960732852644088759678725874366659661119111663966932999647483187157925810687512405450688178478436325569759507272175927873906592258732129742046351113273701294861507443825911936843807672097461253896475320339188278890745058288138922575547160800652378534803155991634532163955825701983007861857568590034579371323050294404441635806019371654409267362854357642842131748523355169859537854625933758321612501563998361605296111805591359442683657232976430532558318653888190682226770236123056106025747930104035978479208042376371657096504432209947535452077081576011229374049839728290583849653800828125870292846134383346408074818591509049938478399336777129583373524348453803711563449554568589308213673654972437194306882574323139558918847895676647487708195127058177584136510702910069666482909139911969557995720185272840603631681416954250400780399237516306430854832486606024905913509155430298849477523453781641348877294709638715258079035716754436078258095404526118001291516971492859071870974998730025622997137793833539221436468399431355428492882658080192782958405674523728243546052334280919653486940634753030108745363634208478570618393736674538979624961152010421163126099998714980175188216283486594920466757730791470223178677291393439248316702297483718920994332277475089183918965755838315147714435944457342956340340062383646824441183639157574933512010123695729176871551412264639904696799774043994961407243606058061312357645725845939818092626436696615198243118077491344174122708335764996282550696647081932671223086857197737145059573202472017317990049425806435375462658023260787276264940698764873270794767045547226674064179483720094459460782749221340029086135494988312260341979454464219055097603585612990663164371452291529892357411213691133003627642392182219423073325335658819986857537628182134951715741687005034294988814276927864314223285937530575247582988046185500380760775638172450365959928887384774447770747809989199015024109191447023895351897826111046446790312866150277607065493077820491884826871576548937189352244786165187635679787053438288379261705903785731047521665251863056024665680471505176270639858902349023455169756124044066054913110887438202778250228203934104646266022257420190330479230699679076128258601394431292921634765191457206118045772711625454397564041460552053193943651875729498487073649417889170179323284450561329660028283066932378376897345951367446762275356064393197295358817536904832555796280250822520439314159240052105420441060179296756950676585961015102871958346769578332116601122214327725171739347490628207992797795742515499879530516061589392298922810755369099915769329071294509901369779058924686168827751377822016315247114388511623072275260502744024065831904188780827038406800633154433412252056253062210164726310583238106464953575162233211979108095502376581925208897859837440667906832111044321531131541704322134044580148693793397048098547483025967672907930513113070812036781957429944181240585430714643465500711088460447712814259357306661256526989450788443756485003330681313360161195201489771068912348987463282719652688727310615836178164511822683525409871740754660346150119104876571820327883044320309302380344498145243833303660013356072986254315816193624633906361242660997376360476435622908243291387062431014816408339735574229519233095468716919132191916206403724040715760080502404029126189148125757534381437595322960189790269441472980122468617666855399345279959657687587640075512678910751498759523261749813103501575773821125671218164695607627139207105408590401565623586466318565955301717401194914355528000091279189141868936736949447958355830868381281536876163220331103471100571900566098533534380297506333823608600667846089884806389061704559363021188545058812662565493177922540632743646480010242389030738589504711233662218590448501997393772205112924646431260539654336689214625262994789713373849285499794582317371315828011635591242814995624918889481299779636497049662797438701036344843894585986009202877144817642557728293621184747286016198581223470140637413302017136742824026377821414282768839057262092636732549829020612764880977478669002841493484781140434400453583800867409862248325907480941321471444937310362201636604717112942424040104688719337464477219127227479227912551846799474566695725390320970535912735261788240295441818901329150007307220153619308644743644596245262632688389025419616015617446305229204652021971514349861543183621284629989505205251866682057065617091908503142944232170048755175620125253007005735396284294406894359680630218147273708752853486084262538183667905521949491122219218973593263956947002885508638049251830890833905368405031992398878402226600248510570266499888106927979275814724239331462653412949534929063220882469856958022283844538812462368020218768049465843891067577822450093784105881299283297862282722487689535215789836105314913460887932565155551689441206504027739897655143409990102865900389633999538150221261044177435097830521224002784931366900883795909386330727260526470546188366070061263436713147255873285547353494501761746241572784772747924875492704605644597957788012036708237944605593284872137422746817036247385584912633063058371938621624159392416716417882323585055379659437559584063221605984361344358255713469088044939085059184762344455626910186846046249912912637672989293755851552802243296575476715231100215236445669916168387817211124518034769843079626585019761068402061412814940068736013310284006623873774586254702986229190451555637911962188510148161172379897690759285508694371901683862987694157401680136197187896497986760657655997204000114600067056237242969309098089451682266780984111719491340479878392856791635812818689670137248203412709236322614914969926659920123741970480649658456770289537832026799669862834350716717694430092867836348706245654358414655788697103635103403744926113205805177870811759965022787775262354122493251822064776877262805225673335000570657915269967565111168400818362392419690239299444190302146844678127898859051268190605997208905079275205390109526321932414241130968994373905191352021304762852911457454271191196697697807383180395787440584036032942321623459008564703002888298014916695686502639903706855856942998757859844180767889501992678712014695759059753204509286673370683439248060372409715540376822908128389475119129426325155979571274690662686197874079685266363328764268954869798901654778584347805085389437343838008747382229709772893519269103173678888254084637261105882137595507114277970802725452306771893197137629161963926277456313490337682383008231203158592162683243498392645012028828693397026539987893813720053697286448485693537856835697588363363811890352927911358689877691746864200957521588245204457585100967567669976660958652368741984336768048147299533579418852816577695953496620521067302904673069833222286668637790930659191571371551517292812035001479913939423647894667793297480602424177394972734203671844888128322559905310656986376726942078020533927150627553888664805034007231220985991605839021889595215108551972806547391040297456191098299706586858799063161735774502051018777578937684758453413518919904759915593186358790419175899425841753257346947368740213960042636225587889187709958202165512905394398076498760399766263738029421901785568203048880884477276071944684604394819805071878485235680955040536669310126851950730591941914978453332890806187406545389046045119367323592058007945819126396805233779686533598815297126279700362294103043716099148314423611190637505417966556386170808721770916248102555840587667832289851342233494666432870293116875013524297464740001402146479875626843592905785702248097477589163179109480651023492118408797686086701781141092115458416722026505837660216682379368331610913784354396615004798424448620777275861445205255901224266810047882068895554069246830512013880523037860189212181328243821925128830835220843937338509466294236633135925808950628599167489215641370114878227951407176044116425744410227105512797743673115018613059334886609124587201770452682096708053206498468670140934206119702498830159566110385163942321118671637450815059212928994765531227989666790092484831209267576346309553546133641634747853945829354485147037189910823610112700932884286336818113351303985034726041485287295271841663550796177398494171383840703307002372275872497157802399554309345550520590456385478622540446598112019525107289216466991618298721497418873490236398996827703669764383101133666165275912088317557132416810785197934801254710832381138488960467606288443936879284858377091096869973712173452558119936720044163286657589239800296500877828074226627799832184888098154117413353919668614252889501152673718686109027063058746283853260304099846042937366079711793891988718087414080394258910664549102264824590061367289256821870196271845600890757099932366791244892413941608431883265802229844560768227069463781227911714482759439533661511982169369361628889224275947079405673034495933553936721228432974724787669476194078194234096706996848941486331708030633265960593684295787253563528634173644911116916570962833366941091743400024517446531421635469695143041340286784668696208468299323346176014164507057037868660678750793851987444502848413384065104737901628001304412532834991219693316358341687726471552173525675246132487490532304058449857429129198813669847435226282331899249092390616139615872353729020532653470859780339798979045784147138839809568211548918737407729132916965322833673543299011612818141270758731444559945694520076459323089319180959597900286821639283462061534916342652687063614789509836252747242567131062763681071812312989260731177410650237501109750758707004579530658708415453252646175634717976058072900130678174490916521399965458674655484674308161326906330005284405108421589422650843738075883474665531696795927502115239883475536239065972574520218668970545525424354784830782744626461085656271070017844767039548781482449484116913527024179396573956027952157720423581520969979825117201076030168673228531685045411964414079615111159140668201912814469044115668029773368120514040931814638526812908904125828548556116880755473452665681128564370249309930080012996399069878112714168832091174313276540146274584322365336081657377827395996371551018256804643880154599106291859638725387198200281198061605044483021658243594957826807213915395550663172542077317803102897048908711384105717601045603619725591277929871619876196535827653766750928972882144733656041776607620543306859844982216001615253834391073237659188383333889967151680532353257053937502323611207093343920435881823359458213423193827172933104429656974100051555088157001447052064508631025018121479975111749750143098767817201719753163562085730677810496231587980948154010986908099082573503327892089308579042157338413307638940750158487802030983223051364224329790186145675802869742742021839926462669589382027367426135915125237906452522895418333570296150977114142663792237233195811908827472613880761256373164510860716152345080881125402192657000062913085243927182846053384645790700909248530032336722395121184082517712345873774531109621405177528130594732885009581809574366132453872949217357774235756492340816709224454829596585411535641950759835761437613587030604777942967673083736775628048388454237458209335564219943857190693383008922257355504308949253686567216168040649881523917646744430368737699161385971100630184539016739983820142865227953486461644876536510631102203927036771896551314654565646450405708135195454368646501965672435173772869942476244605081803989544759349817683908056191849814767264147743470591857619365589172125597384815119355965278106160905087382384176172158033373379870342301702373261016258494032163064544017561577205672609587494300433308473050425349109550161932493346821549360704352118479808929681070430688000917343390897709925577044029599586004887512403388300941944082337302427744066651722411818067590380615688288299596490132674262322942268388304892356812890809765854114966199943684425404648594108796854862766857489694432279738023869963822111230457699509086176817731850926852859637049315067292611275075169966037466885412270495363484030511407286369610857727966466350811051288594754722936691679330856331068053324103595037370650898147748490641267296451926906591414466087051560756233642486527893798620854349546127020206610812172971238178816185700541357488017843916668666478798938928060725744376099195449920207686616179369206554246042685243945133038069428289645389986931972317004946875152552327287396808877094256808770355346842653737034017294250437831103287865107383618349723732849021855122634790344734406479869472254421668812566059871638128343925173030428897853722303492480004853344393808174524516119248254176135774022391119452625812480863269558853058600476965442991290511286765194688191254876600220857766096309626444996411492696084569328675197345177185281999370436482874984725911268006774526866550863089224173044526103841299878688198208944727194022995703067718626601503441615374585372530012650399822682439486975239673249977774494184580215961801516502381003121529026177269691937752585054812487597251123423023709636919295691359251985223976461427100493522430011592096736296873391282799562120239982265640623563147497865663672838402512341931204328113479688877264366526130996519815881120604058084418399636549694179615610928175285139415162094084551157558031223893819841261670751374976368051727447592294727175927154276183115628649700922921840236948006414350307258647912333314033171546167406940709205117117889519978509931614093726667678496172821620317759180790860122001814559125956506593101759143341725020305728727716771293324308183771459976829838492496660513806059272015443127825742952496755168624132829659755095769663833097504403542762743648094152585478410632767011584873193957004310437641084830831965122495178114829291607428888540385815485738244161862571553020978311590810981699272295586145102031301124463810013378786683149337983189748600761561510171361140865633350520823615421765560136758110786153077667108872670186471718428167417717973585115560306499375928805894712269199294668154923335429617345759237417959764094562591455505565167281768477435358875824058967512940758924751496817395076524320259934685616870286562147151530601592702535814474338645652501550607510417222301224418147119272707101054891221791468189688783944784238542860964277118460854788986517664170199728586435633214200361092566363884654090238748066332595943596658274287641708924502933363674582774912211090593905974384041149949180272010883890074375869791089946365031475969875735788013886394111152526601155605707169621278748293449145253485427335009442810476309262715640777217787472822541617816103049279078650135593456637676348932048508106411379673172692228090016176709588788664167127860222459124508281040259629929383661210261837198651539938747977318836924220502918348822918507516492482306759980140938119680543530758897984446476189871421581197106016059263943485072465526382910238018839157950888379147640418840346870386839052638464366752003010379786930507199712104340484394303248103653959583494478872058734838384721034263224223257885346804055853377673411466189079079180895105369083361982057348386185315938472349104652643207409371801338460310452910676542947869683336772501957381078357909115137187824444713309314038587062312863574853572853973869091969474888555109796174918755034027991776314515349315351404201204341475394291196473153343101562154947649690259591827924742285509603721218635803170318829872322739412248734015792168592797042868289971386023760994815332501379943200226575542503862290468300823088017939211429819668578914174080257865293237519545808953188422621377440383348637112011622097923382548134083653896326933384970921144338727076694425459886267873529744701459287501743701688645343773528275893575043491578468212204441988158645484408097917115742416704299437783945297818901099196045693427960502456498927511044450926924323763317476801971328072795776177870346506510349158825914477879716684381200284451381705819334799752441718919026478834146275727945194239082307729607111368015113823197716268163989287718623809990331600536333456492088331264726982798645645335992986407251019111211847025195900122352946741766977798382378807248644570107410840631001151370240988101704143006108739261677914562606755007900473673258605163222008751865553698536816653627464062854859785969810081713074604745921636823367299400576555154163855096345895504733726698028643595858850401406778514296957784701865623178753652476563505291771472107438088189827713724017975205833610469634553847190796330946290946943232258672950680279636688625221876854925061272325437481067187442369849439376429118456520600339581725429718621905393921475729395065879403276994420194516942189988585094830706238473229781342579457570931942341958248529960268015271360030416991361932472878448037626166301082191440644952769434279171710825192822568846449676587076766411242118834839814911021905331143261909932796516890392057587331376187638198901297226594268924817852023924149034575216414093640415885269243621429955544695071283065122959587886184387002305315482414957664160563374978797421683393096663781754684372218155568359847620193872253820975935419980983262921597789495363900825944354765268165284489358957566783858640197829029062860074415057818985323515255422242772174127196183544449196651773148415325472824423220151994864519220005351093086540941590769169618003063019547944549008338688845427280978058985576887367206250256432203318904505993441709333189335901150214781181543062974654187926244716102679018271766752468523005614988548345591212020969583508262431858759036897954664716775393395608977351942986505704845308652613768743267443249922750584831905138357671130909102058393270128004334237965797351690950029537944794479524200593298986505471653207738093348529834096792529083260309638879624922358982017672211926146671210714811185097689092181062443690565516248617202869087845481478986721148105110114401487327360232246607686540206072122877838864089446639735535524526956337285855756017003632089940487814780995566423506284266455380702205114132106364381694908605650513227394806836581219738935160218025295265768061509155645293275243602251847797022816011535266912936731232674472161937634807900877415360619278582197515781726496965527656798027997166866648063584853816892497244677243031773425813560101250803682124848261887878200971128633258583279598303806683186686272861270401726217093633006806386505405849386060597702353339066766898527004053357930508934455031262408036420483637306780764283244591528884717438496512203391364168343162313305158632175228459741587568356625280158601372930358684816916614340918805952179479746493434005434885766768160556764961920710235654096770332012863426180907644327270030638974375920654904062494455386844933142909583823843936131269753624061314520817595866057925806073427176332148695549146485047217060500086202853296575803883187008543155244004613321379095737761928057487814905935140078961396153765107521946904873719755253700438517542486850645979998261219346745936707539016246742291465344361178403938687969328514367890075833134487005187290634669060100712766615281301693250562791325692274820657691136895951754828953499446519138547224513151646840543260147737458889043263400390189256049300656835268088610253220476166149650700168457570200028524103253746241441614476988450843876060062122563008632453865548532288688301641355793047419995969166880566291400921915673571525675365845548344154995247530463023135856110081659398415084785044630892263244120364753737589026271681839087490719891509498642681451061375512980772461446419104424479933717199069179194967994313083372337831603110181525704304910663054132207078614647421952197132396103423813982998003375444509167961341291337767188888907861901528791145767799709682244835520648552687433276846857944434476223510772441816830154425353925292315917001481272924137123988769829258683855740758944924728637582981985729003348735457808367033683151950052514809936786279431597153376280532086363980781844598666652548382915917998670946378888021185410583378357217956468896328878623106148440058327631387893051910797006683708807631648956603575037437038541718903979224937625191553548919994165326332555031157847123706142424325160000034092545041621856730696498758482524303709368366948250052426389037819438091569778163180036606401484231462134409766609062974796204655890828196438343760908691257319863536697021489547969117932293423361406860687597172438218145991344906267707767186051922464991224501220701414525885297691346857547617132256725022105610458401062489060802753290203811294163401484947469321570243442961213097596917530359357212064201786013601974671739268044976939781374844803903271962733981013660123332846156014707010109152150545750757426397516951971465233616135262392205600842782592544267859545280915332892367414663593180537149776149983373435071735436233182160645627805069102860062213436842594538353737709097801557785558389382644288038194950609247366854977736958997343418541288785672060138834055952535202432977259769522494720436534938619264905508955005845250835952017008705297284220238023479063699427123555585025012849817595688543263201870134632258690158053436798132997940995442636130302392957509430926289408649881041525433705295713029923151933848470752519716685687677335545137536447547324118117314088636161295531634241702803888581694242042067004903351232808353483503279187364230300447977969539347897928594944597573627560572886195477566300026655014121072634627729118918887277967534920693482895840292715997718032134289457730931076071171169368559540703005364096564169159478361775944918997693680719340682737113865364427730694263849543007986168432183407217101991706000436101063590642895565400039175799895096547344608931358351078172746129080191821464225192475693967396713649247141509036091681685360236418331062325452777879639951623861194084497613025402014842399967708542740103016669915915021415792752055162503535334841792974192063713929776160570227124822666710448122857686716199747133307148375297454170807926247578421194109953902660546932174776574264363923351905516079126676081438047909011375041725880306078984704713993191316217394353326907542252515968016263034618769173893186256409381802123116590175652613495869881386487225692984663425871226061228579217811191938082736917651235244326465611626459426664411014446878012338882313706796356169861223210073305425430496914116001536681060228075363114222596784680289224758161025913203238904794954948573415196936021660524220374466451475083255510323762754699473043689502395665406186307607780244304116767966128378991183150678529531265935394642438813577660340534565161952381721235144286875512396931275056528304390999115971191459886668783470413419476500849654030803916107192485980361974896075008426030583050228812286544474910328145371729678243723449062687375751368276618108378334826902923809936698786409209267654803206115587989888826082916581021089164386748827846892858691293254053428942712678080169328522303247372731972112486493756759632389814165780868486967637785664859088138832534006777258169174879614962362295686847306818582287503503036203940542995886732405233381589292588555347421756918709366785727411267531237488761593943755831059905185405256569105672952389502266115566298928370888120372328890318060053445136451839128468137832147125227092384589195977781110836086311156906854526487603904664380262635556027932306419236081104103175319076080175312525412248309840027376304308814647390991462309494566920322391694133461292116413688722054026151935336931767464600097452757776567287405625658053848664223453442556760925281417534851575771941204086265654678142039773235763912728898123460667568614754867389065497157655480368026814170969642674846543325610479860669951775336251046972010814386719691938198128184977655573483767792672433136371447381637637751695568979402737962147672440399282801627449930516521240712533197442576119289924789667479269934016702572886779464403909325869062227563997491779639799174550517791941634954658804186310673807599318289695647124068856327875000154075526235730577016994991973759407199995922907644881719749322663615986498272343841023126433962154931910829608929643639406905873161402013488205507180600888932448909639084454205611003545649152599014251603639928631993673876780335479204037281380094162295178608629896398297147716803113459687811685054091678011504751259944149249121442025263588308625475311225644147398230759958518132367990774338696059854976999481073233041207225654845560845402302762799104041578026156217781078382287153658182568857049765213699522593707380510690828262157591829367049581152987194651131044842798478943950013020334447791552211171178088867081107273056059013526782961106542747856394039888318208717866677582123408840807573293685090713492536151986918696992096113064329529331474753402461783827723375664538995849471713732480867885990397812239305104240370246418157756717537249128535025732300157662556454496831136217068129156949215056600791392594231313842292329403848770887652408057788194078247944490542513614555789977130087302826971251021491225202888274775804559039352295278606223578531432627158011877344046172570433723122692453033385316898055166136174759488351074111946684248372115854092853204514231816138453779523803215985122251050807745358299194958389010279056548564661085800845852173673366638664986418866954299893644611591566528600874749887274339968804598612250124179936287825357860184869653108521168780887394075681762109598525766308549763294278837706821876563166878472045185943849995663454878706061153637359127226672904652694741262481186327296191839357123387979100618855463595674483609226055321191255360925725681282673472089639630466279285536094805917122442657924979613518384643207368374275584846049005035923826327702663812186517075556174175959218887564629979298999049605435329931360360244512410410301350251540925126943876164906767255157259437545350440983851639835644313026222878597764815959409798946626689463976359784546609343031037488043158408097427526271801803575263144973652016594758625002108920516999833014789392848024290027372781857379257465466276425027579647073636783140678471132401126178005101083901914979722901261106335151368024493105109543565426559689068551174441647159898975402425741714000770008461100674657573514235756679912506379241000097078691823007715912925580124208996484410651889143170881574927776130193804183599401721692084843849413832797894907839416764602595829447290462425248095420651858043020944683391878899580491699331993525567131539990327388340801486875871203865403335579601642331921438055444639623461664534477563804855502018815546312516112372792575307945796075653582961217058722913986832240080894259263041095634787134766573470904247743218024401077038230116450883901647176853521966507049728091328648332861954228903763007230111781631464634522522246595592369496898734477344419632127277388506226738020210366155515637768888057964375344079013072171721451177228123794345723187981802141458361639936169027010648050672916206536718889364847325761954369105012317726786085352065876188763454523215388925617344066423538112772398125968770243010273439699117282532590675747994738105148823518720222292290352358887173617198656887875828077866863597281796110572125174198338607389444861485195537825311180055401001883483450194772476445288082874924041006386483591419688358680472863457330420617326903667025196583143864246242174846516038684141996907836886510018327703713030133877242100720011532991875946737970971375418690140423493235904653611751167810033397552503040489386734533647745138310888401561511937261866660163467130429598513519977692937864161145135211671692662794622494854786946724644885531489285321934548095605938231915533949312857837193463021265027109266029291231951373188787773408895601474823794042341411996190025694412801669858626388570284758724960822658255871945405187834338625153092574533470888256056500816944956186978049497493126417423322851667434235443094576770349324623821435671253026867669188129834576575035009689320784748535121661789157594894101740114808362437159505977040946311892951550116088318663007639746727131973895844500797377438934517011000810805883256583710152101290252753125099664633275243655699371946019270342743505888624222014091814618671435614028444185892514460202340790626574954339954289670554370682892070137986067181155015763876541317377777832196911043470061279555075527480028540413320869660009991571792298628192711980108957150212187741458017243613422737966354197969846284683525086105073724838908410226562968032217583630199840904131118330980734132485980109157698567348866677388606913026971255287747026255692628409244003344735851029028606655667225151215420094428153632943573905063136823000410390395897618790245901245314712376738894389758684877904477121292925555115654350908737474862686978341886582219126170023661531987751545662631602643631115958942426566031769984716283841490878623256517949902431113066411921513960058571492189970262874274794312810731912948819762990856152424331659163267206030813232519158449594713176818028762510561925098083411855248238365954652179374089225583938510459830623084480369139260863957149773657280906040190367446865035470738220259156046487782597511077812688997031950027242977413089837760284702167580359398392245551887445589196240046969946001753017662940801541880891292366813977238330321315246608839184619868037932881343987906201895202963465736197274399157978788896842250527356911175283805274736333486321517274492047084211085469041976003892111592758736495936344595897914163620786930225954794458167595186066025851062271345062904604496495461906516269467926936894763292832926206766672344586060229090303519069016342958184242795593044224957467366292089152412771473060825094675162394596975702684880648349236078894619725929848822817580599165762750279362166293331716068762174939054445690057460975061681174731503983793249698840835583604444790988452893428001294791093954142381837205399663866747304781702024331872757360669173268822180652866925211251431680362768519166350391569132911912738214706495046082758813522555668778261409883710214238079106248132598046495773092323337935866307468941132527549373652058837551142724043776119085344370948083229276991919324285139922433430990076290743873241952267633270977451732917455628841466238788429561455839384518717748658934011771044203906570164987035645173336583085875735830902668746323209033049653936300557274234749830882042212122994587127736211200282349509160670471702763688843806613951292312282221181149074246360866752777392734545913550501046760167280639413941764189733659601807391580045155146329847409335711928744332392876905437999498198540068962009937042557485048395186975280311257922587772676824995875066245759854311054288299212890858187153916765637924514770366463755650054294068761421661556894325213194402940072309254905550583073426991946296577247608009331150950516207650395872028221207687075393680349384869086199539685639731660065873384903126895404307610613446668771956403752296218258104867095262107854277601610584108282053639383385822959543564085677133545944824143275015081798693756077486156209616620485999929529216884574267314668728638275064381841771633019464364370062354077194357647322367217552317414815476114312824397688608768217339156143172267757967461184976161394177978014692135377621281706097856986653678824775313259636529502108318704164738577676851283814324359308226435407726307444215519114480052954760060279749809966578093534530549580959686350317808158324715277650368748819261115105666763783269790461660449956935391395526257464221793778090844549924259732884969400714170561014868030063958479379072595594795319119402539969477432286801826823484393288144694234091367830868677410236837413642042141397219662595344535688596905614434717570103228334100295849422684663040234077718278962166285785215205837643642718810114396708286274884103142714635324322881696403464907522378301898233385474020922387864480372396896915374745361575591502088578351511720477754677598687450074268032879499317920398406243143031721858481217297290773443642929343149050478552994450830337388757706553583997212975097241080227709170166350428589399740919205244516750900030914439644449692482763177571535046356193543868777666165431788573051990748460965077251570596053548985729648979559401399078015580203698118622248932951861573611191163372800390304977941297946485299425988976590396475732727051255954381789877395572776643496541066997152443362610042272584897500539023872481369271351535523375350042860135413764334162715959373041217940352521942521682344001457203582072128287730828054212910229703278085537528610220763412465448096017961789722534540443912043831033883143969814530903380886969610261239747123676053797139592338790023109379930790364163121591513631373644789503973885583272870597995442184332695470844146904025023224149079059939097809509091052038156863410769290548819965033222577109905687190871352952890331815079794219194828303801408361231786924039007020778614897734070357578713871770439851740537877459323011634558677046134157294350596559169447553508732424857092505500964572606588961442355615275254221316019689715370576730943374568785336320391626978163332689505517439406402355699973665998419246328018640270400963468445806733551212033438927819878156894558149247135891812135475963258490436126052504780055271241540151825444204728587066524713846325390302625471941571776986296971269961084677074706519774556299327998334920260159512928486044194690824565169059632940012643411429035881265382163673678297415521332913490915026371252726666838534189270362960272091379812226657682398804216374969195482044232151408492581227850773279017957170434418885090618749083594306463860546954519132272651732887177788152995576038645649510615989759556294625838629522258255556233836243324501696990062498621465904047293167770861969948251314350384230801516948660258870155148958566396376591967045017471794011566959092869747548850379133696502274453295846072875156986320354955043423580159892606802690906205850050796197524640710798352246626550611829385917211712976316891999833172024182919367300099780742599037227596103228014594168535487126811475699995573816242419738603268472772015045802791309673911877004961040253629836940110621444180161028030176182354065044250679037938850340969753923836711311139741053580304281748194418757592123226995079695260124221389289790840737704670019392201338133042917160387636704020727834306402973174088711976759668970399499534737633216901023229803979807666501353026351800390102206440634679162350261754521976783000768426897853451568495347354351349632612189865322464904301115369192470768559590163294336033485927025161313617162263310204804955786177686823363920476045279256870436164462281260149122474146014925335614967220874366361841594744100216262160799570927813309987633799050515651999516065855464713482551331841564028792062228762578635083458690628255228523255598968967084192486655970161464298594211187042815875610444618253617019578114408774733391330501074722675463303456604005658149173425103286017180337301259546999298094701220926172588186472667408282586564147983471993796792103671762355716048389618895431462331245725060364930551818091839794840795924563918327532063202238102608010760820961662760333291121037998917111035420335863213369221731510156430897578632404686548266146873338670003449501207033773209386943569308276904423390686280558386879465453601065213652114771942894287511498686863556497074164835726027394134026616281880105246461248135814991764608217424817810786331956765376900150506325648343571545428608972022895016856764027694605314614688177357304318965570171519180166307528255464103427571645748581169787384999078992329087132140556730492892867328852887433954968743301323921967006817766766415825417878896411308035586009409441435386422260811843570659151617441106894055564254706674268339106822015662787896100331571752257684367691196666514490559378181547475384246624919169179250439010575926095659481976199972935650519669639522620290713243589652736462957195608230856010221673163637670788465572724740041767013193314074267187798431721654221896270694382468705064516876282812859480269853711669694946067467406292087050561431935967429097216410245384393955850810910550645748251199630502724211275919534737763852989389296830554999670750360701078000957500274822704338089209662673008430688774780367729654400088083733968060547096852443913379532875370265050094601786982621597021597160178588952924641645395543152840750477255681627270193410399052473186819850169269948855696558082460141186449617637742103720269969778418123155699626267148963472603208942214386171977713998414741373868367052059007368182053804309226178844985225608566808133843584846713128541584302337550998572908786478983225867730757815642027513551549352754629315732311265462785979264524908973832018718588678258706604140431893224887132874395566434914192854615777056920155375223613516395043084243879791279628127511258755320437639319613439682400521103264242993439699772544759918815634931884596680581682061225223012948042172998473621320512179697274654214186189826603611055881887457344919765736090641580739587960860304014662632220541263151650851693077389048446551826080114352638295065660832372371213883623633165321158070042771129080684048482325409494001047013976798247767356734158836160640681499025632129487374914576003619478959817111945664429080356413147124868963290371070777816594621151980357703874131168141494986934432470290982728947537136462727673605408269983173339569657928349364280233585414598938444027498356988532858479354894178868475157368073404748420000537613471117193311240628937042310712843641132925709688582375288736635462122743027830882467099060893461605423708382815052119845003401284892676681817633852315063593208505668713879941895401480031103874000433711850747291308482125248452812617912713429456962362707283643411150822591347916349218367032463782177471010444895819237465014014850504204098736938810643804890675457610640452549515956977843020770226131099378277244131451679903743904888858419590589984608091601421532534055357767092895085553106560174526470080351340978012664703583521128770545076393643008754509917654464342090348859577717059283653381318431496769998187491411873708075616762898784297811869750575478685511820764390940699128570228745884449662507551099825336774265647011205205823328471981097254613486223514044063262227661825938961847880208119664731454100852768026714062493594692890960584680434857235394902134690517100829144901289809881124990001416385490155983689171591037344340423211728687949690686851824539342753941204113375733623056767789864619703567236758199165731697113928741987615300706227821672655480608600262466163924896668928391026884017997630538973656447584660916618150010297674558365217832313465680570625758759346537188778773920387924808470842627498478227716059078843463575613442199872147340845396723181949297350922587194111527930886204963874152635623896654885092248794638164013479732987058317565857936550992021876342817107836015760021510734396187106685007741409453129825595203359637857923215575032333367045144051756140137674857582424333557212318619963295427215875986472672904200165607920713043919703871322707669423386089357376676577568290305686444656237886647212091198725214129555870154767928566911938487900732204059443028805619150452258549780560025529191749234235122264747750549548845668528732955719833628616612728901979039563357794954249317719401653259892579035862128210215969098614609420226205649101774245410895115064645800323499681241454652764022794617417971994096172966041388350100820895342114418101412137206826536224168734301765268523450728619851435412598019230661481758240562633061713251059525372157503995999378821695676647913176726294316595258774228699741326940420872988693395532411533952426574780127662397280212507216826000909793965478101772666642654238586123257937953508070521844404998277524367212397625363247354943290737054997950932699587893586225863373245852832350442673753907066127260182012731827160016806574066931514502138797904068120947116974854161914480665402965333178471028136167210460877711321254328511419676880986755529809438772476865646033600285249864206029392974963182478206005331286583182147438218354787179796405460325117233738467812869931661483474690407476176664125113721460816272531293978772600275002198213580753355710672267596873805562875686330166363718860542493665277628598776125508561683121437124271865829407029317144391296098196887219685068174141251587513983102814290172545240552483778105821908702302063726334993418788789758948649153038487441664420614273961945248801751764211131727765785468652929421443965788481682604328757896890423842632173910534785744817555940481311216307745027500825782616984067399528225693551305810800402409162136391010914742804552050043832780251629215439250653835372350834699507936562168073300999428603357922050692790374152848898261766595193514276664861429151020409560155889019148224232762199267586348588058956826280885572506777881885489493831617095556522973708869029114119073638522509612350344472208020140858902368027850075157687788085778715331439937844574623489302470776270468841503017869400033581608273928333814265484786226739266230301147906862358122362225657754206994981088191011225636125880198254627077595746678379945954129401094609888142779644691583440575591823375973175251735998144660698182550815954900579752819161091559232553295514462822513276052572144804829396791390507820633382556397569155344355191413923544522307969871439986252010769632388419903373761755298639963578815118542941641209799752750304101210875712200403819755294202794587150717256896541900373045433058586846426710596034444753925625645764788748049946777073711752728211594626914579541618316362064175752259180344946218476560176402774987092358515576276751213950144050704341274672828815305805356782478393110698256431137671416021545984011785811469713095746992008380129098971262280299566318211916019924931074285226196090186005435612631246008980700900446566211756217806319325577360246990569613745392479143014797704697621925676775605993814123627054221362883279380865556610279776857669670897843746017615696706497317982216469357186245278977341534255544669415349389947819815406791395547690779568193328390146341485712592420728254860806124085943504522199705171269311196000550341795874002326818848413981610272142915731114822386060662002979149085010253047527178041454700730763936481238651884768154891500881640917377598176285431545917160088695801883928763620825567602860896783099277148146202986995064535157155105480577344211044224970266170831464568973888537518859896787576336565578101781568561854513050768253429402061858975391864131001251724295084662191923915225934624773963575945768504921424608418711748023732183543582450769456438611061420689176704534213898586557898490866311356077596730597305057639064143584469192819236802572270124554380818590597550497607058339969536027476865747633863066115875838897350366541959964079251306597860360107155952245504738327987100279493693416820214402347514462465787676572805924576136231872114762166594915611156498388070521870508913374961417553716108025512302444416764664713958408939884790475825135256894483014396902618149915138312958364812701817315372108577831941746258246765562312104870046745959727117999571697497508394972980319899637614670302400887892883949869822037360305026127753722532520759744854104941760261185311738174310368052583535541581973475575902839085676176288191832418414075609651743284402573835947786000296118858659618424089557780861993190847920740681909915432470594129638205840198371800040275215700202415751908519234979756400638591474098049430190934042350832094293904088800424801314939739598541646170140202778050982856917911559712345697967972235790061714928155639818015717935696952258784949836774398257394413627193327546022034981946368814207413096038516793169291385463193575770660387509532681123284082583345514009267446324614436798287686388067503670507683713065262285843866858444045019313015039636987243624632606721972088876766670526308081990118376771098402910414657837168556035429103631311969179895807907407555929786147809697541667731513134921643685277270605458836272586330072834270375708614585545155361384313077414487451948457623148801365487301898459087900645761403780011750187583553475409440447146415090859900463611329532269796202628905730755883608577387070557055277618259629643987899029797767390703276341654336617077659859231867357157059151490917281207849118505814662948424656897244193337066873303678163316078052029932218660535022619572564523081034242027256400981649179009567088914734838634046595877749138206884550556427315859699303810564062047629733389158096811712987431001990197703499328030617951156209854265494432094591453060623950152689987604660015083972914462782731034943841887491097444512306939630097302004265274347961614135284040550074398256601396268880175451160438685585496626776075291788127033745816480006420823296000894387323526413803647882268547113404203577178281947822218272704022835986699833374725218999012261628580601597564127551489491182583473157398902026917275350844122477015499395179184536399552728908241989043860851703611739042226278740266459285726168912771675434023524447064392211822993339301035733708912786222558958140735061412739935296519976591657305133997040972254413217035741687310008746278136105245048304821588903438982192830486295912810143689752298759078678594353733865958495474649630123043427779943956726937712482379142073450376954274414260984561038883520722231427598568226669929992985819367120330513289788363453455202857962433369481683091623556190372728701503378529871272028040415916326040117269173013812986354558719563536158885887225252276836508927092354864579824256885394736759478132852293200010117026894512788227113340591991519161627030239407750889195031601583207839858629676567132263758602000975992264946092963055884759867636956259099848852101729712333751799197252193109409203522336632434913572775933790507007436717942538759944967291976531138226289440786640687025344693580749164664091905163692603201163582224957713826385426597803669502483126347436261089256310202071268270981620694397086703125345426332032626590232425852236852051332673233641149403535423826844454360319055512910329359994464323680553230874362416270870590403329649270579905581797548506995995852483294194908519789800870143540893350027772421915687837178242917199108826327295187451628927423554621710967607043110141373221276938325146433407607808588184563719677737408116209901401012489507089427034374478681697435839693635740049365736412371720345342228391685939063404391488831692652447975534350320090800402912109855195096456866505974660284099833145620027324958738679560217460568287296656434216565344544648416246093353093824075764982100279874882892259467366759399077646992195895418659290576601319750488233782665514529657226018610294490009308493971103146941904387354256426423982488701440444784555362731751254096002566540034091400178320152021631616797752351325763407689084080475724640026944344796518640649661395855181702129729462563446841430026890463893469368996857635162600643800067495063785869978593148207863163831717080060323272616052904409880915881329022033467333938858896033740675325174502936950098096113755848443858834065095879642460535521783863032882558876501245866672890832974626412428995794678327074560755118215545066987333021749562842892201635272914539217540880084966729957821643823510947838248869504685512155070613979776558952276380443426203570818289601579624489473982208678787467923141603857534005562696616681278627981949539591732159060213160256267131388907587136452003024412956993352066470634403833978608820188660748313909936750306451336648580977713409399177965382213628130840753906201697235742048908938309787993443216658255980144326041896957896436119680041552962225680983968843521226581787319445047984799774126440837312340190014245962713678804081627626473282926421645123383256704791210062516699520871541211705656048728102846124618320678210878289534401383903346179630788855079453952814768714699805438356325408152455149870459157460275030216023980028132429480994008929990249058536797428203856023257623611299016276312022733677207135730404469492193455086772619241872680830947531578448565471641469874650615448991528695377823776166995756123439437892092247545861410169221235149866649219169455418636423605056544238584699470318351157024820843585553173654060414263365255432899527457127452721584138487134626467763569158699206844515330920008354626790553850660437706737870008899174257967725461772222050043836925963526070876050482644651612964454765369778977530060262160906072285552708104717395987646871909738562745448751369884783746259325929034682227108236715758029078294217768120951246817574792899041171667580399306180101095870110963771982222050757945311945251242772019075633061020651069045534888306158123954658063386635704619809345296374202324835498648785524627670803062928082932629922681879873393099878015456747399177425586526037939347397076391484097972733067431009325962487688447815641889549957554562088662004728094554628771662232847433898805072838319713025814752157218702026492161370219735693750657128055291409059768450909657354254217691383212839301778223024236596248320409312855259360601987346228342458370932985517823028437283847326862031115746548731433653666858085078920034842289544213372654400164974031976404498189665194749890537385549286678197753802070754552366169104928176696008287139339931031431991871383149407378126696919569222452695581071056518623498100547505826449635342482581876437779979310390803279076511771820838058166113380456053982623476399871559735839626159367302315189142517692996992984945153638985152706850858401921126983056082978550861814582484264827841495907358141393462841186063906539463093587044092467752424263290911168299620428334346420868703466114204270803800102623705915182099356480033194665681813489036876253196885662541130663548435843982906814118130705788792330471345275286296582932762135415981236384431785204134637862550899138288607463996536952957573281787319545727134482777122615333091716812629845736472477439406689992434758999167459506508128760738126101392374000170913800069087175094200803711747819108449511692967837394695216375459912267063699918693371660140928640304582688701539781584250941566515686166340586958539890829950581254011644648555501859336883671945766661863855417770356674373044471787379690893325330891672290768106214895596615482702715998994090774335863856602282851078411549576764271738610425215917878188155444468711019063739530178017461265593453169229625525063036912178894489235196366054049146673902645698342264292315831066712551813730843047479328460328208605300374481974286577942035882238310454654244101783573486011459160038265779095745961048518600072612282074627239614966941643599950504845573106460994220251369849242925209003418156566453700973433897387094538421439581169753200816190890796167855336029485248772167520085703915560738363982971442861657177555297658257608036738927312120658600703008673307429781283519383832375852711773482464343770051367953956382541926336645105921561246388121693081875074264025358947267427543831392229430521362389978226970345865102087568402307028303855265441256919671839509520746736148584103446214608704399064143942569543345206537256803694384380586643294140469573790965965981602877411811232359650254473149167659194618375418910175630935479723931007932091423441263172603095564755422296703399830956708643886013987937710171462232220725714771358876636619795542339744112743940701979724033577074669036330456865663046889772473963852443968020672575807909402826824939877016191002226057755785471945883141816622694147287417708220049070310153662103026436078090963625691287464445141998701049770995676775812734463240083465630064839365924635218898229174410191085292112360400308493490103212290172095480800474731779515992378549097299539941397429633045052638893501343289199688164786228218994523621853339532082178243839053048970040512715628215005150473995476791666893591751532186569890307845489325947847556993722065627416636179743165762096039828438407970965289893628540624767524644318194907494115494625901044760741465555419822184563020744087742395330944891080969828746349700862660507329600527137557143481771282091328697294367536062615690587869529939886320450483026447890123811169084567281599927564094350801580452910497225584533952109525374395019015603924825986568107217695637641850729345866606940606298324877029477753794160036313331901920087736906956940179735489952995146957820390852457430752587653648733363975265538111979213787530024922962716267032736661423016847878451478344301673069680306994667011258741852195447411118127627178791627300968138365355597203451079608041305443542969383265616519196840332301839675729203329389416502164347982514887678169211268318106767756042563367230965873179132650960758403590694984571246936186019019998951109961169110279333024302072515782668782037540900196490257122401236324743012701315856537360744035932437099555822899867706626515202411538183490556843693386513468608324561919269730442806555389277387150956895867550136964069552081595044135566253958707764079364957157105078407188544069899609261288097442804778758939615557882545810953839587916273542600902583087120303953187905864200557731813364544267550656789465723295775470212688826869127407177554059103436060243465914577579847993781147537634984874221676109747611921980648957695775963884901548632717679572172670434975429577462876358359711303199621469517653493626323247249969946040411376865881819389323301895578479867906760328559540636367734307769879487100107859702130844140116576107691111602654743271121727422010975561101157239662430141006309957492134895636226566766954476003325332670615354689093138017564127977401435252097406208841968268074024683006881933133731846556364178252281349281104912798100731955486095550783798754491776855532054032812086243828903951948914026433847836457312966640582199098929236233813349414975024057984867549819575651567989265031855898664036088570804298821995986296561672607701184397366685396423246489257231584070265605780930950672799294036741021241308364705479589936370308745020753742231317087700624904233841962102392694871870660627948700321395940657168565587475257089182621184097062202586601907938243563600039650888165895522758731939809871120073722640779441111085744362895821192625346424780916195473003204296743499023920290512718039333442489413005865926375719298795901777636808704470421315270693654426183506365629817385754529137659231686543756841549572886852787097963414699625234346234005116256687834957627588793068826658714508686288550357585704873812483735599126989577733324927087886081455498322692108242299917583941508021604951354564174178516917347290309112022861154535772961956421610753703112373113447969953671358903047588944300735052577343424700730725509585924442818247957268744887435418640676970905798630096901241097734555829948869614161554570347617780986123718692758704908914298677158646407227583673265462626400686004221396056634358894710675970264315017658862242766124663791965915585269318992057592365895019678471088551731715514105033421747485706638270439587993279962301337165145691903054054067491589616600813543239076794384057226468829147912668120288105935585458068657989311523108888318923904601430355240237351088796588958255974427652830951256374545449438943792131958086996183983156270598813768601235956775991543764580634184387068819368005421487016560974585803668943961675196401338548748158337952927249295707894357394249537545946842436557787662383149064349405049823465967033736117994266195842687453536424034913281678086894723953464128372342878087649901148383150696748470820378675619674911181701949288837934454472228254082991034967863331716687226745770618696179604929580005717880113178158379474633848341687014156118611413328953879322239826329091409681560232473286360511653579513081081254614686109906570924577262296421919353135642973333400520451321562347150441530422116859213984033334654080027458404490885382417510540383472615248664613530274057965937807257297751161135748815464113275041809466651974065085950204143970607652324207944906412476720152700846855982717736900757377317535876791813792796579034789652469330815965772464357460687057449269121701419746311478614147271032564696075038781597844985414845843430121028564340313140157609608303515911205665975548634255872046506141984328583229403606752716032713609896517569307980917286333732844208355215889204126253742781556894832197458927101957191763372638343907154539221312310369309634174841739169704766310242777030443794485539126454629673495668104843671693029226620657803852494952959955682538140785960644309138007611931302545765618715181799473805938767860956102726321231607501988238863819503552995581324523481853240189890083430371425304696394761920583086359426818638009111769050508213360669207473728129776572085664119640793188559198922599979866734504634100052144289605938504457000437160174129973908750061101119846338687009124637822934761499475629980979897377545767391481290468756995246320915521432498156536302810818314702664830000315932135806181880605076022680557723702785151155412121292789856742458786588145396580627102486107168673247773265486535200481755692703940794662201561876314595275280129296816891954246562200052919658253274501305461241149394697871257463522362245094983784682203535306616648580642174250984066127178636146408628267688337335711055139866059046987008736640579149597448174209139321413054492034799380117839760160428867699928551123230264968523906490167731046238690513215371478095283823681228573834854622065614066543934939744062479298698942930608729325325846917928015848827682652424026409570218429868765622355501643999193364812220075264552058233816854493025695587161487421473656633819664864088204677595244452197979300545475194794051826931980286002013441278390635698831403350135045756466894969937691323771873263546316860388102560050219758351322636432084079318815863163871641149922660831744627918803118731141424571334245732816702698798493897381709445951325441932857688546251384048833472781380657159952166675136691300187468000837580013668837022814185442488424095745721040653257268579030945853725894318140539020245547319281157139646801434080757987575920531610519846104013618042883998182861597631767466713577850700744710181793595225528775967498639982006628188194315228483237963292117709895384834390084550175519023738417148243913654551175317974273589690074218716679173397386848946731119895275228697493628730706915850202684427905013532268768181078160474551766640429503226133953820120906340319692154588608290192889444576226575520856653723717390335483997451225040683930085225278956427360656176055798595186414508443325787408650838337876901735283156301443818069297122720480317401903361264950482918388086729161003417090719625077911827181421848174011756254612007623594338183291891960719369608519161934951111969868288186804180571423296732514181593198213872621329569857395451007439118696509521438692770500382265999614874500866843122915363115780362532438216744637717419964651036711658607684475864784146158163366898006455118861443496686891380819595972881313950595314808492820085677097431714377176044056981158142372459614010764738007797647607962740594212364451152391143114067441060181119111861329316192479467402572306600977168712683531522494454527424319379320080917861278013358313137047879415928090677133199208723707366983890274069675547005380490940807286311780346959702498597303609186353663595688785906925185914258875943992501221458293704188281199321095397165041035097781727531953632832415723758020436082666625876944398779722883656516792585179927203706023056753997148534743265761064155908738226603731249534307291169584009156812990195980124107915586377383625085618978210126919755809686516010277216617541421119898212899142868014885256800803180899962697987861348881769239024395922545485795580606708437066026186610043813587582828409382845081263771298313433888858031527252087441791978089087076438601922346050804466202312136345636086113957892191387885520723077590328740216510873309759806775558034688701422985804833981330922741114754705454783285896478683025124304186796290176812203882884599172470702096743564833123247974968204348499598454281727681450906295034195911691839774743783889514655054753472462520865444278900065548810596315774907475369519946457575554647320552663489293704815372217739997691198325586383450184277719194228947699936412719330489551185994119307609866668874894986798950759745099228198654311424773410397189857324815638520688308697160735838543586477593024282928028099783655190724451460369280880461135594044297406931611896727381021741329519419169369839768421895016321803467011690917118065466839171335618399213000134780090742278734237477704083440686605451549055617936722007546612037669882010038599485324278480220889236700679041378328131235274194021134977916378972307889221066014051653000233120365516477626854802266961438514922965263463633626686372604088293471033353135298327150688428868897528252639027098169791209492537186818641748565085201167055864429244983946534111123747716217287721655922157993731615840266123738845807532984345712343158189951235506547040529811656831221143739572888525859480530163732537541538492426320381476099569854275891838113160410577150881330602624479436925279276315018141224208454615858390245390201063897917985252344806483737187006128022560812664490800357121969933093379589588358989588780159114813297348109234544565910633142734698858233320384694415703928541172854312622386447146477092506341027316114203018154218541008605185749665501427487102678723793372482745945772743838264702150122834837859857106473775833011040139058142882586036712746072502400318494868888711669984638553975841675915911173223122738823590229406452974621109634221880764099603086728150930184194684801326154928074281465926642782637198535964842489225651188161894628690985564212344709545970765082774966012765429499042067307210818931437487848778320865241900513175142219006836988885468462170728836829874460913717594454291238389586095942903775153685169141056050176581199853965743741249484120699603104055951479932033740224891914638352207858259062972184413226113130713112134058213760735655780490783867684052977477151525897210751732486593514337559936790406559822740459146079182470196280841229047335328508967586292478968338274549110181527194261281508578270931276799391334936266307125522502482944084987152342934718213786240639702806691535994293702629830139140539719617772056917797289114578569462102397680219154459664428473043368989852697900660250943094022502382186103860652598643675390734319905968826919877491001999871159156985014558410497835280612014394697617126188959591873472913257859840670114222425984884416154380487087503011734489534897247176890921419304112576001176106960148028759058270746402409795083977210602324563686989137369727585570769420498813953981814998110374473382039257731740059111639387716770250697222334995077082221508789581340746292595906597231391433078209097125846404649850309020324168401608221543841508156380141382869973942009838215414901031831992522824485657380647133075997935224049118101469782352222163664833116356490671455578939190641898469732832895583880597475473978043290951430162927609331867424685727407399983771171280314396267494047547193363825564890518519746883215863362241102631090140055102997145782557395958874119279971205599745485692163626080177890904579390657158097574511372805496435630595768712148054059731578111771074172264063354793370589184968821386958737133501795655801318319281328910240950863633317135988713554436623866286869690544726002727957137830180570066239401229284296956652676591088710982350683767534835047500132215005254503367893846876403778368582061380338287715218814281235928994134003586191848872213468292083934720019313971988705216187010821016292995544561249123854405145503830114317029838003226410537587781880007341235326707876878066869210347712424554299711705600661186194109714382068501376409373270280456972288039202859556724078854950863261148065556014580729589417601183165563521539760457346226968175767096581567466736546072343075251531391393677390123328805789427109274539535868773295735041505335944190806942427714383451560855493285373138510551178854079206049942095561765663041620808810558933299058292299179199712302748508404303741638287567208970654787961224394928752755658459802732098153149394602226538618693925403403532045340599814804980034318659871753116570011312127191763961968686937697486808965078953428439579776641241711704271745977434457616820737718470553340055993615263423487324874073906139561369910054497641865167081510000054663865425903490225887065314201704918354988151822317323457053282369833108636636417598697354063395481085299073617697282508999737819516909405014184231638228302437602276008116286319349454905646119424034533143172214221247749360738958489165129553294995140557685696904223187186875456982922995652308731255029454490389620911976165469091170146262209576008685508873169724050114710881073608975646066091356849948022244963006289180246583156874546176555159046807214377321687538889403321532801600043934083810635199328829209991016281759077645727387836298706156621634493803753830312048611794276225582853037922449178609999079289971558490199303466855100941291199467252090827895087042412006229475563051732960245335545115383477969235089198728104694357857952976466637131256381695927302599933267108182792978285112391889728938165525535208820320586508608671113746936568654822503999322759524958635936507086024836637782785293501925313296766524275529973143119476911340228707852435388759324188864894936652125368393853786421496702926492616446233450272526087715200596727515033183348961266424027630713276336560169539371543204818867720593079100681540576912778738665508189997307667307978039628754782601190040631227559811259524148353840877822329343872674409478620597685607298301005241672547368592762861198926466316745689848011446598835381960599738899852701270493844516943188261496973261540326252267871382563395016854446593483822094405360458890887759645360480354692360925706026703755290353651715474981107464908134743963511328405735296423528455976208107952113796606184706957991868668916614661979269428792259314103451540254028285216108353266379120593983061004979007509971927237042787585708116851583281883297360392993083468707445377671176109846447243795691536840941080907066566793826503680077035995805929278132584887572047489105703288664063491857395787762685356513853216189164901047107825831867148938892171044883823648466756448039264439660181726867681294223483475697264677376749610545952939551065446402471402233887283236652040954261560340329916091983693885732104488396662184046950527767111944294210413738215015938713781306157205535425820661320022187024211082229971382847182860564365106847246494957613007490937612061227883257241112936708233137618191024253658566182642441985876747177672091230359374399780038185136146748985125306216321751572035688836138468319867091577415555690827568382985974752089560447833780224317445423014145748171231211390564956717509505160772788085320542618852038977153230020828614458391978481579342579092715411965750755403282615816664842305916722370092607270901017251008519650143320247975427809182313539614967060538097161069436190757548234087543365202121117174506179168924936105512520310796399174488312948900650604789894756846107696625344747510108892232000663650763843552394889792412040399846387626106215365221587248268908267600811462642038122958637331698695581527260083025756797089960376709755596627198342497593742925554402281737675982126856045174525793705199201253315021016267022072335364394914888310836756080849543483039090767641741501996020332418492689242254652556463096943192968339365632898399090810242418421171340764143467351208591410348806676801208170372406026537727169977875121154256987625694958680002609574547890316541727658732940044993080896505745226198784027310662277478325426854700790854938094773261893490747467629272694273877600977747798494574252320236405778365510797346293070404632637324514557162213499181691687012686996719816665471723942756618404473330778462726714642797609381055177182234322572435550913049696843713965219290960661344282654864784042121766930628097164405917154580827637991462768055344287870337315012080632650053658544299021013462122589403610425628947596027757153575840307735412564801056944466104117629068930788133130158848865467948306493908334093728974299266330215181637564092866323495203182929611172954047141909367814418930404680652789412152533095211770037479602741031814373718438853310399502428846258683264009635014219361837197072080227448396292044052158396036413868272194949331173078799609096097515400169311040962964449301815001092026627357296014625982945508509117733375010324400818550610539317591240749674199610848736413140398839638879092545541401179459889607748544289671785136904201029460072627609828392906271781612797324166442302433344706222584835401768145323790536240569201130572259152573821238044908138640325236243880422964523604830997239049319585016656327570348350653930468083908290063980473197536460444772899353689213798675947463720726242422164733229667730283997683186650830030107953658783700053015950954333777316033425826326534299190457123530329483965207522890354069432120533382474143748136927578372554754951223831540791634856765338671305287777714036585842040077335895358687709033230965691466178793999963131595269708893756700870956568864902641761010186134638506430478234067658380529063056075089492185374158670515649525661545955756343702760502505564445869642455610929916484028000822080623415002618749379310607253521967786092645414346998640855586827547882790440451418740482891822681142162530938893595998689895218935592148034620455900274538261473650590615328458854478640704535372752499856288804357787221120788814740078383996015704012608454124459252660230776796761001384360449620020192854026574141190269221066058981990069668159536211520480114579898415271968381999803989874496739020084102676670622026793119560805389354183126850152146622530190555691733610673943429699952261547300837658854998011714339466299355440875316041234806447522885891545893001159641281963388260027903438352466864718355645924887193592268527872548662794908326090209396943135907110106647711976817101950706986558801322588714338690864923681691497069522959023977683871630878350288879247110011516056163449174774300499119296907114847380568885039985981549467162608216792171640316268625148297292577242807021392857619007072096842285520792610525391400360251755843271584519737317276092003000615928078194442606803926114744642888804191734226441301474303818385862493357951784190814881925126437237944547852636006947221062817091580366683868155475396630082594379848387337389326843392342240790979752894494516499783414376836564613140128231509129092339477878716882043286755027708215807703541208140572950846078522650020419428158374888619234862855229409783423377490705937123517708572854597285761130914315524030583372004528983220776777337357218883437209162333919571886926037163566540217014981153491109524903100277286328481191214791299990994240265373070430152677623502016448059614626073066141600549860223807827106499572580064696455618689640543769680797168852906962859906531777696321421699444303095802150130380656872907943216803443814775557191824527656343972331417870291666796045009048422562211326153310938142639265403767620060248512434803283287560247881233752963690937354278597427140188487112574629120683730827048314096843871621790697154460699953741983044657070950047487243871881346728655186228800247825210276895878667851593220226096282292429945897467792325244042361762199523219205354896198856862565756808307186371240941169109336402972846823532922740283221349746581094464599108899891383146325173858659397037116185973124231206678888572683386805776908459695001356068126910510444760927813038869783734557111877055606587582996475866713690382323983981892649388204324883717176738120699866615075660755946700408702418492661074389389790151177798845015119046125714496454277902154949828174338203177135440321412874793496522711021564795759445099897287569104420708455428414836080610680608297607207515993396226500550364253846495603198991137222369435480364204250357437694099542301426647936655842821118829236618966156886206520678171263827187175416064087998363338440570025559532862565122698679261349398379901941035587636053640945620144485528828395935309281213341305184258242017878533765886066946278890403887254433469196409315739589640320452978862971538786417154017145417624156658368918963017965497039924983163983109550815706013785949141236383697334128645804339628425014899711360172014231331806618149888537578822543729335941957444214950492625844444230032055594571585646556375600352092586654721547764610047132526163174921232842796867223855660760223792986404255363677229760798583610721450285707527230498850972123104743503136886665682129780229669543803241199682617247824546749796527411080206062662348445678508412019466777010477705525187342024686877385302299964947399787926015565750899846070594207423895984216195270392489602274676684615851386450555845469718967779879070717119537636600871142051922544985552003253051568620310910263210936003718098598108092698767456163657958493097573862635029491582983133079752952225253165883835931954884856746515281947689589996457080450014414053512487416690504032164876208849744474881745649361476715115732509986977778401412027926611826975370922248388985050209040333612058463972058404263942422068378461123750001472616126556095285235439371372214476229795211685652049670174040694565446056711480342278626037712508956564510238767391492275525950392473374231593791203215105495658704576746587169617735053888970538169202698005962246781227175929213884889155585322833852636440229340132907421909923067757353712597021286798322752181544579762213800660237807057492173386768072847470775638167699730910554404557133785835290650495792739541222224800205898078652029701610547569044190071916171003663395671278058377807792608200964627749224941888506778780886938703028852261352849882045018506559411606813904103990082309365038720361896891925305317281408042298960184941894168385762898455574162691711716729179948106915503732545205748863225891079851861944214447869222307802979023522610912870071122436689605941991674614056498444916488314895375610399135125351586522260307418512941853287232146678380637076158547197468179532464460875765211695212920628837211662732834856795143609618230739037852864322660796167473415841344750998232521688155264820021229416577635787336516616903816071728253837272414400864489394111889568875271907282800191298688586411004332039218806932874232407759406994938519649673168612225154727583364294580202060827889503580414325161241305425768027767704893488275796036563470467933567195896925080264970882856621231837251295671848006585115678707264385408735184029456162904687962106143377000480274436173988041035944517753255317694450733828165348415623012435244472863079217060638765091012466182694081934802566043295393645431703012374476636285801418467360119727449051237227253911197473801187662456018592247172291309563132347141794789158441041954863192182619388885323913258830469826251135940810698130755572867073856803667269772939302376112515404670690350182623455274952437920648168205739014487932815472021386706190187124968378803183107088555547202638967171349790206150618691603052554967947926997956482499171274943309678584475109080715958979561401994090122458080756089819749958474681375148409734477523551576386869300085436796956088737508598768477234505621397277917491098418822862296046788099491022763308280836276381868419294120466606419127341346649977886798910220340197563460029413031094369657549434848708011065386689595073728459553055109532950941388663807075250205855021461181901641773788380598434596598748409437491880440415846943152153359715603697782539438256674720088910268870902532870852081773000983898748323478333864676365442591324836748211613852134285971001393623029417269120390700908535355858189546335957496522570805987550366017745963356228495475890323883451926948287228276449465615019133569818089863036394983434031336434937273182871018431276516182229857888559849096373057347973607861835065469374616933632228918786564525874616587296900163273743948280365009315284291316232476416117298390109165331245640633090546431734287086020551173602125258776437358661094408906045050099501442330279916024405929943578834251762640601686051042223423019924110911360310155431920205234079909135282725333506835329891760506969501382546431515903592635789319772030247350174648028350460733752156388742261443778538549527873627100488719077123006125390303501968892469894472825665157182101029095059386619512680877131788231405564633664504010381876739517997060829631126954660659807055336405266386668746282769578355184952779304125363233911086473472155078513120641332310913203394526070501506804135317522891107077694100995081158613169120682617953126213925924267896647818969508749964425584528974809349011310594823682816738079289417870356006635856066735213324207577286536769192635578971196213340497486063477069444225216654046131950060558948459367192478883736786985567612483893444703188095733557107693192836821359444666527215892066847883408520799362482272027036517452549604685683801135842962453125268557732515644046084669843734108811865317298014585112568326161822830842430500201824010116804060279527709108447027537095370112303404721208558827194233729894067701159966172166840529361746550913316127271817507178831929809292662186270958452919897250110138535087212816071540264541835100019626774973206312748964631118962564436624108151724473866320350559689850705607963588766124343556553916760199809543555907961187957244923974162263630613129220674008795530663107978148399337929167615039400844442675989052696314814776153335602642097300172664985864570419629255395472596212835450801748452101337940430979929291473134040910828849392958723505142980315948474939910052643248702500507850537110381967072431790982968760204316493371319395732173828237532800314151353213592013671933888847731089324996218525411461850338467300231693204596163711741674200801858640013512412750156526706977376261255288312716278159128090527385030960569460134954283748865858158710721119128317155180382175427648817504423581493581018159304565244270027931643150475617518889351716446549975020731936903798285970444959709574691906935926005547444709486311330983915419011864755949365372341646051814899511599466929025468081295425344208779105209494938808408585892433461940267462358307517653373821008980052970904629400601042779164890892525894159798066452897419606249730447011974342999412537092780795042438771590700294284844490498859319061950890110768277524350259633637329939076389606656826676542734676318559122944421138348329842736664879659436879713586061064039811321731403401714406649292627342165969437799542947135403228344596108592440011375630102710127553015453003375055559637868677223123525950111509350998981180612008606934228003252563678072944012117677067017777790450371771566474922724382493229629137609181885510607782354335737781902140555708189161365049052734935128925005604599990088760986587512429570211283959557498886071404825394440462502815987400513269208260165037885243196566783255095085783417624955832421546534096629719568371115282497211301969341258359386450771735718317800132139573865179801611247316404843116733916445416722992702902586953342842333673321057844227496639320096550517821859650600078008251852365001856372586207733220569333993759874904933448271165921797539759454238865140724985882216715716262348385525587904132454647057087291872209307952326939663115700044022391500239738672057780262753954222796323619933024432092652917997724607634498125946676368478143281289952925618001808243979996661702069339580681776276941647870876371240092074274703654043393832155281255095418033957893703998187782137353114332093811528232881042992430481226813677114719146983764229802688327596897332864862962401260302120895128550662907487823075298854614947501003933290928801867219855566618648286236750515884105356199748354498115837969758689413388983851915718187357745279597571804945373784920506481630145201782779393073910802971518448248592193771466336136774997604113044312168832857993408236014486180922162481424280414681679808032045783642443842477224576558835678090328607509159591725345628107699153224184540644136205602276586198488644123487856053619029369827032938470564578579792718168158611421360909906775699139012867497699426207052178416174014804752390678077551493688424725393995884310793880510517954659125314255377387303900888029875405730991022523666580237699741711648240729057729023601378517486881766158085551453165983106412361278732795880850070043348896769205932832736235502295925543119627681312196715864454632762715400513533519562719729785839554575051762330943715841115589846961947005928856205271641455454624695733867337472281285019240042732574719991431765768264932833940231506293359934995156500259927745848122342483866275990144832605630522758996142318277790901763396249945549783636966349303976668114840154777044080629053661420682317223806630662811557441263763128132682485724406795635117776776395153370796965427772559776466103973470696448815523032854305786214287500863438569795856423333022318700811371633158104468669143525753905591601909893160801033842348604934708753679407129220978146305238707659075795686508880201642890827742997004435775906026580450733451904068309347792025906474792262183682772721104312671801986244076395755310844914355799559145205906544134737027779557421435939803812142125715855710241985120482745912140322074963711009964989233581853777502137974367689826741459499961248967558829794937408105393657372380629982667018624608324288594707736676637808038793632884492598239435721199103573663654530352071552352540378235476491154332034363468337980004876029274083007089950362389565361301144476163324337890353056513879746510313285707446660610993428610382169112686324542242573226367814707563014749522386511328602035320115936450533642085245218603834055126061254455101927911685892285107146318738457067557030263540363467274080229925227237090568762568197358720044581084857165163237215668070821611076965755826852470251695687972600091837055287456721582210605915502794258905058081415856734884072735029404165973342762775485306321391942995111007767816010782521235686224066625945357101907567257391746903690972427170746983855938136799965099711088327385408849118178191684184530225594405109424298072018600355301760641627724721210847805486332781133569532894167287212822517346425884378808975826352257427518549804971235874627208947037108801320775935448122901993689933166031279189673055043858432532602497137728308133293907264511441600878316112178882566997690855960758915355347007775739837129514495550968976876619756401714554969938522627199341688331707802434889358640038576325979867478200117860342871259620767826338640383568431106421771757294683134969210268745398840276959803901693319313211574416579731468919853360401352492368615684516418843979593289749211784710631552580215830635449111645807206883775693350162727859905810223823618076979383966311011309553893108491036339176310833702956418501382499704334247786283245863203132099757207537713191043782610232695278365861689161366545607842499600465066470473380174481794902990022332936184832329415749996887329150202436049089766400770179032389138260218787114132068605930763341352629875716964112721822166942099723313143733284152272590316090433039306282976103595228655623599056245317752443978389836456396749315304649975213285132016143865326754147549286642465024890541116127004427260829523856422807853427713579439853497248832376907023406900703300552199015907276247235536624383687870579786687592673855670086047377565919611920021059228818884547376900015799059346761427302502823134104303200737979338747039683223390087653570997712959042918138383752870939466245240772154691822504941009945486028651618437470431291870341273940081200153227046813420326663994679804205384426095428270182703796273580889812283630666062856004622250872522578622060751483937134942398109453185212155805218846734504683627145635387796688835718869982721784543148584126951891269208374981154959531952387635757247130305263705990537475057069608046138342228794520373444458605095625527201175120198184373941626667483289286749816182077836107873682516297043298390165343724040395446014430368499418267194267564971804075967660625621261012890418228694433819188964712929144767367281707794725754370780944002871311899094029710882015194052250317116303547803465486994435037130367964316386937167292957395435064852784898458196617145178027944191125598968263962175958121746555914032563784603258294109792353486204436403567627234709669549751052987876766111629908078568868041247007440066123116890201697885281603556708892279823896312115671857030138145268509063252164081250655281265482675598006225673566022786278701064501532931752100621217489138946654677121564144708830978951853420923046272427067929218624498761540676541725802178999713401355316445711123195059119570829267818638585447674515651720380110893279306342971537502928549696961905187977123068893719874508155510574021742248863006565045861027783782721392005728720491909571365597643955489733118639937506508562782140545931244207183494076799864570024971172228556326277905479149675754262302351542528978601700621931134156724743304581982663021782167838938313341503590637488520643080617590936925424055453031635046647583011297512915492999522140950548382832277252077259246354559013648451578118248954324784137104771535611204232263894302176902458974305724916897601913664877433463766247129709850376204432302591459045518065107497058824780273159964521314068695560345359446149770741336270213033676879889486295100639262229209626806883279118713651474190218869129859091185894124548557476308317999338602616498162079199046550040358929489138136655298426733416623007425735017587201265942751614321789254647836998125892930278681144193114684034789151507615715470420893663350420261241454840192542568587565060290131434705527957173712277264700919724956814156504938529414029349050530318522387854039542253696834066002886309092648016745925400079224557494388787101278989639806313819369705599779603799281228856204088552298248062493860185174064327290913667763231643850353184670144939440142355265815526231679461023295645942561450799996613108228349718192346283201610600884359308888955463334359630843261106833025542084848965436470669562885929650486768533778534393484331864832560253292626504917130295511939770319579189493783286730905906300647110389707218602952484658616607097316433399375017059120167975758059037373686391689507337415423727217829625881467587534145110922744062177875307877324628961429851234541887014591672640849570614172774909341636343827174813008465768887802600438533374253770703971607135842265717783477754598576363903442693139300625162241245902326629022332030811870611686892571880109202181318079981880731095154869377658181746352100136791743340176061077643592493898594344973993524911298814794665880862132335408745966587765708663578139415110126512610407403171218587458026028926095938319169973765599615498161013996658368908445098968655456405810464519865526123187917158489170740100502347187668516971137790374396344914936475359859718991151779776853618152949141477965401319055034338691799699104493876161262006913478935372142302955051607474665463556334761279020456640510750802899937766144899821026694103391365450522749123726164135386986851141494988100411967643874370159103606916201724323770034969794509619822151717943695844513330306872700119514447688096015182001228932231322017403019062019353978389251939210383568608573014036234088290840750060830626922939598321387627799518468437069093526834533235889587822766178652086060004982764783727945564445232433678474986667649924451719921637176085767578385229800848345626214555972789781321981600270964623964712165554621626933077116284501668673170135144608240938949302191348462398518836844881381108844833350159603954859627532606851862634918678820920873339891068274621807950780088619310829620533644902901154535990110948552248781610723780994108804411693711523138286988764634120210136664173996061623459128780932566438814329731982641924119295532267288239171399290344521369827745674493428598614054609738153983809148795850712423914132081939027904339718769614007697648792781844718633751222332985711672977928780144087447276189712371614907011751759030433807639621919412312422001402301944973476881334692863169211745950604681348592910442241366481348010585412732866411938992539115984047065997372618929593357367590212248951697455623281887001607394072714815147353667455261046253056663009284716002807511318058960970135780560839377383091071681626180949277698450374795315232185275797494792450589978650196980097997285267895277549607990439892122004669604453119742215321782306625892074863948606667819484628606401719756202246650944077379857907911539097398415221470121073310541940492941845195131442319155143825041506097100489336845326502068859287541338672132601413633316193732781918266996971420237757508559169864126366460598208386723400159740713361029647465870941561408202510464203753645371040401488409244985170809455173008876420729091422852612929876657757556942166477107735119665809488582124165742124569719500538145907896529535704778311005264341359474746194640590273755650320460020097499927913999950799336135528971859966531991561814001546711781121451753403437673232762896715328311172431751385864973673405921668394224139182434704750968143298526159107467287354921374902417330088470147974147233653604577981509458432438035056456091714412452218406437852329150437950439964216252939333316505343487647229465337282176125766374840383223931035072189873803059078737893335296110222127613714930524774183062359236506132826005289601137051928271763133120084094288959523541037864516233663783940167144572431274590316785229196783011629706016905975377214649738313351412928014965704391989384995863107947678366259653735965715417499972095565242273752855506462300901089931321345236280814850207784859711508283289634533684764198624370460209889774240100048593321013393181745847061170029341408689777604796715221170083268770733698288989519069418405190748842265655708883964790202737736295030295129902317448606599545830645562200045003348172135174905082334631586241559365245884872546927490796428279726300931858762624791682559550607743044308525475583478228613506970544423668629040795485715845129971841888439140884836606892531765725079002454496135612191055799416897814183750566471750144649839179538718976370890327319318965069440245844055502289854602910508462270668349153784933806425566818099157750679315361299167498881718307641071254979973192742975391770984654952680555166228605086376694795693906343917311046085791400119829782779213286304969521322103299032366125378502917958094672182592946095951801152340577180810018574046727001043610416794078253343377473709388912510800572050910266033774735874654070668559263289253949842041556444256724647296025446166639006276532675668475399200116069920336334738625794982353585846035952466379728318030615956973840512415074202233429575614632351402456900094979376792447841065136599788523221169133317649971296303596942978953134669508182128676220674479875783918248806584683217880398797080837223547056763058724079325607847176626018264108533348849268030588737141898739668016904710847588450393040927135627941409418621266229059378305179558880108854497229894749498021994298865886803988029436495765691491091509303684948599469783480224913644452734894025495997411339099488184714560941895023067245174156050785998909647672489711786858089773695456309817937245612390282742718049543505140458769041691187407437014155738286823893255236735547608133600166247458458988881077885137433778019641392038488120181726871020652650211828004558635992942870687818775647611102427849875896341875634165298608181670984265778895031899854278460117028336662722414879306212811770043053990905315160990429417899227791000073874755065027730344461519912410821197350366758668385125885828060823830989375946338282820169097718751145542556228123511409324936930529931872368907096450255379011398913532193406122667156081046791841409197926930322263281415019574470562503744947061665784025705082609876828228221921056765071617132641185289791224843109060032960312518984398824524371627034257035273350915798698935049927039968602853103831340886530766617804810032382154601369867284773033265425104726077582036640959443000474222744414679602205958323949999195859673814257737186773740785823724954580041829081403488804231179870090531133296907840655570472414673251113712213258628528250108232611846641092148383018111364643094683919993591531542217650594727212166886054949572492252388514471639778745554166821290702964630029262880446092051074371687762662377602381737553727307200180122670944629080281039396527828910483625183396794698474966732998890927026161807916846413349800811311298727379260059635223096887867176809646431446030582187827812443982580064199485823423439189955836276341215269028354224705995020636344055278457283027902034775807589655345929731498322909639233500328598436038124455354465285955256145537354240549313702651283784545489425383436917853108073097772740096183401688105435369100580190181797485563707077422463825611447426312454662005864095045264578474044944581845681260785811233089692080162743507764128535483261798142530884275828871936618408981873248307991658645779654643291126687374565124704873465180682811133200888533817486150869349184810227199041375924931182040151737669884006070872491068498901115493029264246121075967187130144144725789483204357233140399899065805644422045977788949086263179738066820266097949909652230984436322848956704346204377941701428673364556300654633326593179633210434572540938725119012051772311497324334492599860932768102791468418487134601761054427711231491928850675668806065317677847621634599808366207338810245774970990295755896330129595724792005992219027661280338522178345999438221949965032476004815169142133251492203837048527438041951884063135990366760961283123650329495618211282297756517685738797834948674086526407234684400971768885630437882749351930620903794355055390292482562290416686057415846683001721601304729829944561922919968769417430796020529335195436587850629763978023347024381069473123506089793016195500728120312857929654445291849250208238516896575530487252747284721483123630420791955947139599942019993410145311530114798080827440839273513046226477685323276639805973633731149669376032951939386766669899772865901097479265945858233347957021665228688157802387790340704376495980688607915025777774615959929207237245126746863893198765528162374041118200303038226787342676351711294071996889567283635890311003808292662315289279466636073863271909765989032513402431367178754249400847030914193098853509945166811832486694078055538220879728335821576762523582359842215682091235438184564410907739650938012778874155232412395445639462050599230264542153657846797973740908448160187676925213116435468649423608804272750527257704593676007774192106100029209803421647216030298573260197165185358132631636686783163342229734860097221473701555307667759626394960581985242366890035054389132447589871457187234276633424941225131497094002787131481743594429977727739427525962822787326950512145400130446989041715471669805402267570262779645509079677732833205014978999029907573686760305717159714282837920919355116873007035316041520791339534016611832238967168228426629523609884924382905578983626177143043923037159571312322553976734831370970125648535407478765451585755991904490726782941756073291611182673265930143794041279854010458742883119937455908036215329676271227939245191966919166504921009580829367051851287436050423556494562638903345983712311789328875814955533195615162276246195463937645961218279134556504185902633572962615602772850643961618628786303007716797282599124445956469387947692812461448510037179769817816518148393634317378513405031357103747566833333694751731685415900185778160568751616551220494756916813592049501867484634449613619300196359754120682570868740306688740895434922045479095539679671535747281760688548441381235879698951961760087772773044616554358612294220508843755337928314410065248447571465951527233447578687467682833646375827375517636512166323498726577628013967727915945166448245511557246295027210330072826501480368676097811434350180013130175448512837724923679225177556888797548199896063413352168832567891405611830061347036854544377124654760493449092147596757582765705423159958562641529531304982888395412598638166198875364703574983574125329381589588375702963467481753020496892198639891554454335959537580435292912542605594572419650046703496715984179248976315405407889608672185025104983158786883176684727154622088050104916569574957425702317585807351350303043038206090891890869763585351557543618717232630926245359044605139291711617539877055800410147703170551193474010140256558793653251542662662962005089258153722903942111273426606566757293539664800815634380071702054073154643752650413911552175811477410174005467706225077158040209610970114713324879933070571607614042692347536551828919407437386196760787401638027543937658617889586529967825303597431243422629740510216433718518707718207425880120507710123947804347217579044588621848824569062167933340604453436777966802813416663878136028368826349306014581225205300872013980556579018259356269923173353864424596954804753044980545107947657766596508100533601360454495930450954341645884861047085201622234801786020729903411512756577220496815089803243345075538470853499637153230163893258875186142466470922639101978229242596176903180690007793621484410960232456865741629637418174876447440262616985277672092502114999721068392157734354756045504573549286599361869631852519722974569285834176522890564068854027157759751798417951102088488946965224239867403263913118890570834563748839496167129231764638714852095613597915254469944992784829905966282174065747529553371589994273189260845970432895659267744736585660929651349963580301576203211535392870901379124089096084201073925127098358290251051861871980569477946829544001097385218728775580814197109026115187269108168946119472268174383122421622322728547236398594085495959143229340081945935872035174390296562693818523629116563309182872992913382497229644330661007598544230283536717917898836335382634240634530086175402232540363370698140033113545904807657770716943360520348563735948884600128282340033283078320601422013487479673351235396324577166231982263397705209376279170864005577268594626282374088692281591807075835973346573376271495062981986357218990930675203716091045078689238751059216416041932739954155333020451271466637801110480317100341174782786279714469306362028704885024127978780171311749460636247068989428509070262543937679641349500433213014004342163159482585000805490893528687691931801513799391759739518154383177986493690335606788082833511517930368445587686910811522084851763968898433256428551053910583248091671077219303504147064015424440892547522417915366923353266943995269116461716948055523147724189825057505834702062466129495278777984189850294691578777302162027737521807248660335324401100690424720698272730413152902041011016726139952253084880200797821942838129882522007095610487221261376704579824403455866031719403906880028125329998572588536185131451602123188949595387625893708552337292913964774103560161087422741348534278560333384226927115151623656070255431787889752897567730943568821462440765125503432741875710280658702082246348716349700944401533763232109196905404507438696400194772183844880475968429236813762644169877482393153154500272361616289085442704506497836127066611833550069398944129534682855241731828393778451257335620825007962458347541741947344756269121188141794098102134839706866635591809623465093724102867837792060317871316234419320698038578802394431813295157514943309760567758847917036553579311700931656056552012682309985672214509176078844581505759678409123449378947594140643158227157707448955428692415926240255390888252064361153940553297090300370449925950671866855473645999990590253170797260141365992865074640881138847160959885579903423421821254986743765629014664699123259162118140591828081347613515883492381231157972701793960640527198133191485081078980050552473159784820191633182412606545202744721347107473846956187875023509326297097487863272507543108741229722656748429691574249852786654094336665886022010214994818473147547728079377546948820880732357430191195803384615519206114290439477969139590046028649315158661546414410250339305351891131749684501983291902736393648538960491165261787810368693018220276234249442181152450162931233385508099321432551747104151096447498349148541949750090809812957348339048505734187196184282559239622082069588736242862442613378059462759657785046358076481313295195269815494953998548884066175825201269388633600354045264597511839292683828441634081052976435311211299308934616569167817899617912430804708176667838036826567671176228105499753853087674925219700470841694402277905172723933431028791232812970718901552167305758937889161558059437462316033049530260826701030181471821911558666426635577488818774534039533888212950601803998172412010169738082932920345781729844653506025231854245249548761406640168298395333478905976465248168580670205316429221157206570119448622132162888397938455931868805024344542909147143827412646701474664181846427674523900592017936773972237778308584706538192909171619476533090403855568857490612072323459261927129412482252059168500768332113517647186074782314306420078993323349505479226672606248510850250371444241644709987877832598488153145108020573532211392562725743876840565180664824117254011638754054180534720229124413678663174343752853951973139471220120254675183992371658740111608740537102533134168723676793335634407678140296257279396356165464046454308298438789628101151887279874757539699028660539929408141629636236228671090894372561732125418001686337764065392738617979039112199703643096641463337297366529463034688946672098398036966499074362538331013643117345443280344185019193208724266286439532852184950196710924339345885517338612369753270026654321646000001318330215608508348918211355227331754788995839400847473072047024201151857618660891847705254487489084059775337910448306735533652490644328381492499468002093058787929486235006983652063597188369227613148983030981458232016025778967253531207458033606090175337119161780259357796670044849276394702316791871699382853992257242588027159728830179788208374947645875863916668743420282362975504839915954227753892642502618134463540416845358275682719444482189261106271226001529338582541458640601130007933021028506798898069253781465347167436748929197967085821377016406637339339364872030476364733815960158489771001864524541646749206444137205615274495038324160449790760546038867653687023752598591777539437247420833448468656430383645225424071730138708923591378078184161515637924259318626000607330644658647692196847566548915834026878602910616298503333695699188401974288228222761577325612792236136937174418374185920050780987277800979246733107839760738186807785282956853228549423658017348550438171401017317411480487823069987511615033081043020870799008754182400244789911091627283717974386616821985108170740377566822268390912340641299753995031765730041747195040180478943447457108482638239452604031468842035278167364442323611602522794818963494825995909373643144509121673129515871859743529566414243262069680751021229309460100191419878293253332162127131401942241930794378792526923736614762537490253345416220525141796737344728346166677283148191611413170453828783775351648419240080103054301391470527116918919926290406351283410617256448081354163540107007872091709996887853272861059528200125851175085332345797816607115691343504741275237730982794036110029962695031652367817791303481312521873337214103212259353536082048826786577764266882571547149421721193240856535833179313394914292185088721981375234668509128085452782921404509575106220852954351760704197598171637222221624142940031851131873288129911595285858273955089329893801409418908201036161322524117582547124479408357732244532443494627297836856072512611005214430418406166075343538809829332331257232154233462069181277823389048929408450708899780084925842858483824309733001167373770060657017954292673631100789597692348702297163978522610576827278274973967407445065441815654882401247209652909428029792433972662879697489211649647228626728075630424507957167885925430571809804105759236213944915464343094228054696012716892031090181913646059124583408662218669821131824167963511653289131519599104782071821113659970635605321513764150147351431951358830997406846266417898434828134838630145772123255621134514418089207825597182499265344473111363228520416057516031906691854278209482055777362720536381648369288044326900179199685709407746363336607372961798574467003416554253996582003735074658248313609862517574705952869055554909468395474775630656165296980532565334870382954446999220528161642183369936906098870282679317148760103153671964988915042374334165667091544324637213315089994551480080579466749687754859019888754403049725038526682312061203706542636519432736271981641639822543290605593562405551206445332290301648063884909571737899730352606586215302997542023613212232528643585127587354079669979697715200798532409969011731413754142881084584731314910207958786762678389530150926481379643996538443780858042285678007160132959872161803620958342319319011966209949717814284934361274039444925834192035420158580835743271687192939113284829356265632361716305918210565665279504650829231374940937273252820118098011633978672072567305713617519596768334627118741352694310187304028561845767324573658288540069571017863525196513777569923299536414058142311437576984458781819120932705383590652889386723792699043182179019466467654067856083970120345614395149630353773168638833258401509808573356120483068284214282087756669404866491809131026798137155813083121402504183273643629118693536330614252489637662173482010439484784528892918529844063393520510530280430625635633216080895245261655868840489968427099876334529473878345670713915685153555927734936190837423216899883284420610152271194714509651819241525640948812195531335718809729014159828999793139412080044329333655193967340667960370869453298506478829403584945499059203928094362410533839736825283368940753283276550310001424354543839813013937775635902771244355547130964449582462548563349565420887661380770903739615701609356699775555641868772182716143880669796194173543282771492264758498203498979568782448269308841373847906560921239434352189759257899876230360277270375899265658868943861224004919595823098514565705596253784743118523533662879014152067308904091779934716283284717718030858941573195588370969198127014465326646047264802186361035920337589280595949391383162149808149481842042774714429553763429580256607387354371458754969199451147675457361758361973510173621668007189691122716915140908818838668914514092920877316605999549408078866139759904202899580392899564681671056584018707758243827946515882546810135305338132661130979634091549989342176033646453802620254340953113747674657665387471338303625967005511789099471995203658732543560023696322121681408285742125603462455037025646884502229848677898912923462364349439129736630379706591007963332542179110354803705066309906537030969540925937448404217452319397734026185219595421455799048489581813913347225756391653918948596187737709224163346040437428772647918214015028270771351063768481390670375990442999023160797860481571404614289284738878505314443148093568856619334570692209759981825366282326966319058098630774508203738358548508730392771931906194240737933488361247910671386356149874268920266365508292445024093809174600958433450169357223917389620102015201122327535946523125302157153135758393416294509496298659597479980587879157069268941603619007536801910807913288886568041444183798834379168188610331714780406541256070621572594751715859189265193397694499275893535930954876370730982915088388363056773239752937914372873187743677540629392411087549310526245662181918375727935089300754108119825242931035806641428120194708858999533554179316644194262447799390520528418847973437874283176489882703075777672164091257576440863419098603573252271110192341818412210250773696724680245626692681941667854178236307588227244120733471008826070162919157947532334611041276034020111501264431912006527017285496976269737074581130943505388630320349789480138528292489354871501703506630291027190318013612489248724454747472392445260719636613896370348518038776339112010978283671723535049200210801264004081689075232299183308132544244101150152596203302620937777656686227068140330068179433510313295592184615746667416566511871095700035521204421246861010300521577960553696382658027581538893338288394521479127106970397226894451078473557802881939195680173033378153565040160601795766528623591852518769644845738687953515522828443230551963435022203526879630893062450585648386868099186761679639224031536135018498377692830151433728376234730576767644242910891559431437304025384485559647950900198875118752501514136762058716517672105026786806663471296803739408699095932583228610583050607117179021599825093288442164075563344280146226295099648681593582628058048951892219970527530604580237223989460307753226683059399594023121462812812449505087423898792342868786718652347728836988926490766181455346907356667962455423515988276158019366055147269307368231210222355663684779412105012164843471734214927478549205941405619159298824689873992220969772078512830740584143147384814311408238444909220618174130380938819182151218591188025875080955154048839239500150274089842696982247025209390028593847281828800034505986573783023129303200504952888972301600375018431236120312795290045445726611135990495911393260262312887844904275620470843455438453994846604495168001961109986608734220917002221648446795609042001482553357813720029397256943503305433478046273802642689929101752925741294154454719906906318338087692128008592694049168531834625479400375071327978339521767395928528705408642814323186676097732859257227372348243860598893727322227120392993940278495834537905100978550708521609845097047079742873078114491489376974414181300523871381239374050698243599899434507488734367847338583506994636741685018902923367513933510990604459491099924650310768327296788637610722624816349688704702963044912748079623304015752175803156626142321654127453913275478971328665512890778850850907669698170724022885903904584307807747923304056866189382662637475950767835150278005875785457527906180643186747125460518179615516506068624426010295605843465987233006883403810919787675459127546707226980036733069325347667335460389244721875166798727624709279873905441853826951052447494171610389034020731956703954396489329577265529414732155862206718236975370399752847777339787402514293172110028014912218026812230858130648589282104604232309043934719987351273280049382452402090628435882437250448371348201291356011045410929694456676816037306466844737870527596417167442212521673941594782127814815925816387838236495326770956978834091026856690809167050721743248061463494129198196774115809515407369179228596758315014878707453101716910671762325577865457181910753132755856831884568395395348175014016947631525322004226270399057342520697119101832399917826996309644585453663915648425271047002910581959329587976776340805838429165482977392854899953759318789251846182644936659586422474070694628086832920271095787826294488185904502136841828405304916527244236882651451799769756626440183189575672455260590107760769401820274086913872318501020289251468781707908453306114098001758904577616490016328984271607729602693539301866954318418524035463604932864229707018308778043297244896158447706608067286911517334944824786096237787818312326281697852631260442082150707303399303532592254364582718471108853128730534231701488832143996426671268495814207692491300681364534473229844556530869997982857948076148498296952942020143331193667535350388514605940239609684489960530109392400191972090972132171153326167164563458511981255166507949208877850735673730033542684359241803247823560982870820642765380066161860252230072736093011105994106755372548337881072776256879963695461086140955221863124198350956743699586143380344023657016583408760108039494715758911164095735707784560639805867118781989694670331461619940125588629414158148935580892038805297835110688636639502913659608724434689772037006501694736178422832122504767111606353281557317966861351302405149019792337831243113590524085113359138019812630903901595358529322460452867594852473982185078054748305377414460943444794206294454315574632879190292679766250203300158959391237567450574025408787359683863452916687034232639095473298928599434044169582743396701537004596714570224282548542366450266901256249914501287667216448080787888742055203836450688297291935196990567327036665624995569575857582221099420289463835592028919033685295136140140039338777772735658569110439871995112410078605068669450613461430158885327152225887488848081742216736401780134037382624886419137994719614731239364594930848887708130791143221273372984496451378036610071121806991653732205725654781945908809972448819713166999305933425642054092188910015515620990488082221219629912315169049052234811726733612635060054833046379021247619463274003142057862660176758986935205734457540441372104352383127979361310589047531946868650498155808931864678778340606284391423099134869189128854328571174274864004123975934852106277780645769614629201935165229966067131280610424403161553881683211937855220717719761517618032291775516684095640936896614941231673451328044313226077587199625634668945441858420576411928073661305088165832698500406202483328406047909605016124957690090116289005948991331949562795112381908535963428666526619069067772422697306481659034208946205657669390694820008894577595084299609764845702129841639804108995169580554793105294159401887518649597910517328249258619394296802583995468460839820504267146134807252998410411108461231211327107962320400857212503218856428358325619461818501021067458616694383111410184189243134744421645595541920872886910364720667506545250770654522695230604765686195279249429580802053140674420605965049096232527441539614634325611270935306668918232699977248631472272107292060750897205185454135039087831896888809712275213435220015048229462817430539666624115337896534431860618462101020987777645694984951847894307035404388671289836317516428020798182484064025478732928808121067461663925401064996342079501502905409471667756948534726950096907224537732502245479024646739064572320574007122241668681325915331210183670176655684516417900175026579653469758771814137673632129185132017958234131274211330117216982934748295777130030842066686336754873832738244931216485612831875325491310009802420391253447038066730022166195559560806220382433423579837598217619598846471730720345088443001078558276939238635550747025865475040283641331402178149665029675573447726347703985901038384728814208270601132443651449167025678302170596737368992688368462663365462929852479867231179891606488404359631821195663906694807768906366587501939255837554339891779613022647852169683795334714239282339518747934469044413183707199373427665672598053150838036558112076673793430446233649315122410403510090471924846379690887726665904600401399986069451162763459603371285150628435288482811453907147910903860576130583359497918938058195939779537170885017952030905314719688873251579737319481086168542222944988705277456086167435709794310716406458814292820863044586212432658594113157859657564996941751080900479552504549783625642910954836850895130244945740281483885743976996021137315652834542840217154734460455671121678446606671627255709499870591223816405918806202844451540350237101297028461518077613933444637805339030956019671783059320317550587192127099897105214631496922519085374841388688028611901419641159300120275864470964448620353646487685789886789586550980850422549874068946296911242870952398015706377463128489540619112441953563665411324531671280967191865015713183165669731590710679437389547653377709300371945909571859098720294496208417632241179596772292496104340700410587763403557410582947628492978355307196007884553881191999990182217735082693409477567794031030907867159018679127034236514182779512914493111787404814021334021304686430889660040394758128808601603030242706762531671091973582407985098231598928405329191490579678859103649243819574428784483453591121742428315320345248214259216054055713587399349848168474572155742414298973214574321047399850142440854790689429914977740449773155951985949106067286133277925420349343696893341564944794375037338657967930931981297236855077136061213435298156812330649655222861916203522308870390424347076052015848392360320893653241269175592743095234298778361586831260978029377107653742123007330272505321432615801795341061355763589100956254104517567755099848725606243626185572374949707076129119609825010318680869864598910849952325492196670071335981305559798914477694971029626319825572369370117852353550964686363994533477054912076374867044226107670731588257423735774793052225739213079919234529045952312780228391627300663592947432261676957461032858677947426719776986936830086358699032879772368211681638375513956339246518604872813023964003656537863114289201211152434881581263718563494584515682236196362332163408698628798449624338193563060745684279144210794786797878393217643548345567418211508331289683205042101403312196656149926905632148585730062835689273731090896792500011101291167673174216291051689653025408979285024195313617215613315959107528948649784822518321156208741868826384451645493400407216230770406495905048924613122093922268025213909228979634753916142288817668446695596433892918759826229604838212589566631195880381424097638378457271021160310065249610824982248504088718719681094734001947162592777158386735386335840790878279872237245736338290597038523435846104886778451512867705666182360081750970510094362758395057527058006699735393401709078700458205838588746431623327951876830526549422370907053827341472469340102419396364294688546373470342974728832175965961650952563167212478741032941759836709614160012447976135280821648399055196500376288216483511035109857957996742662321306048677327696916224749652308901344751843891517729494657226893194230849336045061757667533554611315373076488803097237055272067629270230621237660824061089889301255575528043138283478637537848304090116551313570864692282349070731865213033963387934777348599455080674158334049670425378744804088371495738212693317678030042085966814085253907674507293050122127272704849703583204044003851731465439759118161993914209354718295239405239212283341641817664032605461848733658734522670598542325163930711732618348471043353529743694716915047851450326730636978673858614219415783662707154309996063781925768369888736522543573481372326346362453649421810099530840626201904681744351440679502952417495337463293686885019825601467110475599918395081807741508679416079356329014055483901995603460504728108610556217167830148765742437663664236015709543750327991408858820267233575237495133517326440984405629428176824596305469429837118404019564615948978115163669420359359926946803166591781014386206809646148805892440454134787354670898470273304098376628134977166097896831107802538154506082607531123881180732324809944294326626648266479540009199547088585890096562179847359477009964880154269467611237280663715189060868714253980675824484748650682986149692193118043367407847900193896453317077676099144809069366246211935170746333822833251011050824700078818055755380786871380395972640350575342289682458432292871587217690285233323576251404044167577917602384000826802351907651334591706880974425679248405418983423062780720721619569656664326782248823780486804275020030408562954725283992345841979805039001641654402725891524207011831134721755151280302608538261366532112350783857548073938693813666515160386656350595936930804865158336583782446338992485719941342486745118383331855916001639384881451332197492496200428978955077281128765858705459897496410292191113777609781273666908220619119763079207830935862381228661332359230378223230088116992209294286380958987026571687264820947053233505579319624249795462225960286247797741613206358123787642390423885784972374338641559300303119448079036348613849835836196330490996912636940990333637951994375532957338097662916972077454262859798728591841919054770200580981368382331418492865982072443935903802172067813763402478329900631902044554585192225500327183479269890133103519119544712599378243427798912893000323659900530044176196905349355285558612526637985379883976654282762208017220800655116182302234676502838312656109683962348954455405247993267067946574886981169987393607546518456105163696066110230275463772011857832853204650115662841893793433223150694976851065160511166382887764757474629439525526521680117619455844315735622305450104778890538005989505505595979580860227479838248546947429841098641147508607513774252240448245353984857011418990010884097224001247070100246522963082456877415630416883607480842330151684770707528683337656617153933480477345451232437226574387122526641072670725167533330748599417349383400939887863730861307722681404269741935525369870974646222606713541465978601298790792353856782922173412792499192780496837549446245008363814713452296978201171929280739090103102000208579915638792886448745972331939037694267233122800611858242619433980391575364253809290246548907694585877196805395595639441971009160674841217319502579373016033329038102675484224488712219420532863848192554058183534925975554746253879937202884695392660848947521902146296836977930395547124518056954116976232303523850016511089932771467475708280341502816960966813180476285772061465789988683638871680014196544253297988499540455483355625158034100129153883152440725233793846770369280209866755605609966525708008657440521913257552148018057780414284756847005126702103424860086854690160040927951718062335243309104632466089242186058403911988732602324742406080569738855077113278385161543430185540468553331595885793341328169061469757617832109691863405061817728795655178116700354578709480292121246221931399529633936222674996975804275657820644841654187289952383234244164369757669426416791078604763404432925091228067508758786271140991077175770065456855853455858738760441537530907066758843013403944759480392558046908665985886499252920455128848024399894502002924526199379226808754735322242824965378474565371149981911969203261614880207762399408414454700881941818676666607076662670958801715950444393375395230377984979787693903392178007484613720023710668411631857450427446320096580362885465508432843644694208075163427227640665911330293637733436896854377466501897306721598094565321746554405229615546374411160425811024549421058518243344581605503738042869406340785732804263194322898651748645056544172968598052963976313295981136638531953394445960169159339974195234241206039088754844584797595352074772183346325976636460128954514868334499030726916883126077008508899620160566489705370560748542202215430903721204735224149932413821926544973187313707084072943218845153376167999925238724423617844852173389056744099691761019744257484591549318526932488898088396393427474183160408656322487622345268232140508816486769213369761788275430498734495274062266834290650769586734533180199323055768699022359991470518139457944049962887826012058287656146161852173707940834351865549329986807558830368766030559040875356778778615409985925231235333596702063228980525731790405321349027354779979198215409394210826552128813401167664091811729196206737146584647690639437516315699275600758207990238994031673064358100484274016585396185552965953714605668711973140960218233355771497555697327298302641506432711464938019125707366011781780907633242892538349535800402267918649086530462005730818546591889701314257661414653132149290470008250521200164383971303434041306157063929248790993885796828265832908029747122183850596495326770675907335925122101806903654166625751817332016199437757029426156663917896261628242225471138816918868586373670986278103901740118781911584058970185128852327249211468720173374291492927108220446533844717596406168218398787423087682532944571604068346888626105775642214290268304050321838951599667655340304165141913199950066875735190432013412092397561080807237438260228937364460627321093197573804392057629199227087354977867150898145253311564706116921490415771123509765073183664782615401460829536786477382283094645052691459188848294265765366097672666650996358757114477650052240039805277282220731649509280725693214747465968541234488362499550503451314833684403423334983834811548199570136132968809636326094945208533095583855801089750531452537689796606887497366065086716908781506066710802049784354955614332150152449767787071166712075133034159936906924202603887612294747182452715968275924558495485286644377631572192728991684462001180767909188759075858110285238431860293223297935129711124923741024268350539039897777301075261713468528376541127887792331946204538777291521844410962179541823202862840948256086294582190230031982820996861277495077350528463772553697326758128933232478699528333582228670443132143705021827292223999111854758533092654775449463673486261648267579713246443618473758919654895369344422023065883984934038836619824462822702739336894893668913198243821325287321046778811431977846223455048137179211166340073463777210177959203272752031470786847617622486824712203820240485670546154998214926805377401526453483451957821437632301716144211427220078535585116729964501793920256985278182329731440956376690135765082854831167751368606062434054169862583184260180169030299109714412604763159272384877327062325921687830432211466079931704745896394088919357834640250532693557492775053720595482797036613765374241602038338165530036914361937525932878788975349186366033110696571852093184264319250940221951625363091560932651844154545477149336868978413074150505030693649569101206512774770010204305923217467879153704713907230292585503981678333710713905053920370047540312724102879077578033866578305011994086011546502262822577059517889415424765421855858322207557152576809790841917411257011176471477258694198047094526586662777835443141177497287394118114163275684264005029825506833183079847598669777979613287163903639148227077292797128121565709007938181065175767086201497009596523034565977439898613903755809206169203784131824062733715833491867303156019914789159638162454362177016063009051763996523839121931493179163027218503315871568248210824843110947315427730746801115499315163170587047290185603257576831575936088991258865685563421260741179089587903740661153873302553397472146303562194770981454242518721673599820113283706650158337944222420910803862087260892509613059580333379702386637365869792841097037442038640197984443506074703166567189054340045533025125607164854406937612254963473012900546212870162339771987781456942166952313088472798252285039811491729141489278491969382734707887141606185235048914262030137972496145532375766860175563248732826499964098075882596999755040272510474804640715492229480724350892520423300011407316733221579802594298047393002016312973044595183877689525358567477952932381495680518238860057850917509234301255166505856310777635611089446131121506345702289134177130828003972769604300984244621290023247647178482265541241095205788205609155993084948582595113007102330986171078810543542997106777423374710738243467620139905599659196995201008308847458413929436884649968758159105153495394992068127664231905984937641259395208191282352977651277326760183946906691817634143677244504192525227505039728447535669012840306327521497691544810876209011015574700751526966870847716370567227871522358015208788386182739529131909857300784778148922147485312625824580056046366803563911468819610278587649547819498350582265758276105069832442356268165955622277290488943253378114915776112396199711486823144353906954426821364897895469432418568351777870121291787607460723300828652037908924546047517386812518072862260690306981331228423201437468661715622137857835719654384593415557877766754808183029974360181745975485477805167573403485988063983873833375466329395872232007691065519373567501129817964517568612479164837143367372057931283121763061398298389256418365325371894961948430096915373057235311546160904991335147641729067240312220009708612100601478747829255820308567190315430393604246380861197334609817038194110282483011361308158543800230709122146795597091820216210327265890906076837861181002393685242348428765326190974749803640717331167308789490606696944620914082710438319550056914548521537166406844273312944708535480070513762456073056616740767281435424849096178014060802218617391422966731243284061466056035996430246122673845017693835525218372588789517977267675906810608662044205875869136284736011758282535347577944427132524285395908073768812325540767056121998301658259877934853605136518668439357208654639581374474879322531657815283717153377841687598497257325253619646510693243599694851451956720588200517403128427110575651585196111033373595629770060635479014762764082814398407613441935901681411681651130006523698682361577530323818276932398250640010339093747628344238240109827574854433345537412953514223219929675712336286835915880394124717258864390450639469316920352630737855972181526941711742174661279109974547364337387828702230421529858197146511957619272627603014966043047599306613207757388631488739079479773471793502323392273196906909150111362618290094296362382475755402219678028182243950635133031960417309761056862566228166899483104563015411920190719547379469200413833449597883600699098144991434402271687615545982864212785557469101054491122079299936710172596077063617581512021200384865570346614967489271113819292318459507722514495392883137856324934996979253457829194008256162689429978250374642354987049084652692176495007512149245274584805252149470504621394157082556344022862527792023010995558913683844342935198623434179745790564997488055058254131414320380164306092085624334360373374979268824218334883211025239227767378673467338408803176166325089778661686599471985686563745570088827684385158921551577895421513294372873272026715006657949468014303499688828318232056401157119429794965534776410768901209916424467060950297032172055411712432547626091279583901409792179151582346253190401257509118727055471742874382868790307230346326733672231095616271623215541102053425756880195203275268748943440768417750383218979119998050652813947543892400427687855383720354539685984432729952324055040247621100042298950041337194523718680868569505293813468272098160163202326322396347454409965903082308520815207272170244732173733515089837450964395212085847512145256500199408614263596733266224983702278324906620923696620615637977302588128673874694212993980432611190295928573071023922917024395758378558932824880151766770520739589442666401391439987133788092554824499739306458467494230169143747837013773313984430522702351639219572316069417317896995316619252731315330762604603376641555252137789255537223951960605904949437351852350448001746134740636103823095574469215902447254533226055276821116398262882676206934632939171400629721974446072244071250292973360820162513702327061691411013987697383360992158310348680729215670410228277666512082597333537357193002944857428917457587319895970971731588424690448190839741276664165122114534404623667770384727074945201981977057664597398576191202965757405440306044179262003631410177828080094484726782262663907345316760554906035096114934563572484008384642615711853429037448685222618167513966651774817873301916716112720502766403917479241256099735054347223633962024198411541609502610369064698287820281116174610599265336478630894920952684897972921419403194986716855145682691731858312542444319553150232327961158235641407944107504395339794397942878594782900797428899794574971519203619903081624042213730071664835805114124979215288844928203792679661797681939351470362829494513197000413050508643006282414375981147911886578855893272404541517420009958425957499081325719475542073178430504787078765396148788413168065077036798665175979041620010276253824189437329797320849205647432449730147973473941637058825579321607625782151547033161146324208200113800971016447762738204578541433995322495241840523990009955791854246894362227051201906154192210189172000402410560826248209467609600181390663740180898718115918013862724319011526228543218735132809177096744337948603288635515485006329372342204327049761912981284101799891617155803245575110485293718317847989935619743438393207437476391305268147456635361684060159104726429887517356187129298190317745812011039547683712984755306442264384881548628678451539764542686307190093966594135543115937662419929502246683467021044671876871889229752447826372114999293338341798313341821291963402836503958647255709961882898168655913740546940918356825722045962041274921931423324640340170652642579602757802680189175895774887492545559259737688707250857223938862395661508886505917505706933579006238417490256484086130827258623389600679634026649794124314795878090794950470178628994156541706570963428193955209941168560953264838109679951143931798788457775795948305873744375534053914383862464823108878985876960302322033275092015872148813656406798071689856508598336716216409366461317337103736480018774363296668173882166757976070269070150507541123240724596361943049176399839593461303022343456314927919414303752582483766042157307458858405793715349332789054180792088528439987645872026211183702738623037318367299585705895394497337254115724811984105910705924236521683404221566714505242233808509974702747115372908476375316399588071284628348379348043872107170463215097590706245678281171211769911856760436289767512907235010419769623897681580274787910173671452413149575351114581658850370058250599479912866427067095827026785893370531718781837684728520392220849603679419258135036801661830741884649786459901398394581030006198002013510024739104491980823346748643745491265621352189524163930011719219769951776398687115387759333308193088380311764024621896653697122916444133132323223176267902771816091539879811920702541428041040552455601961003040045235185060445099386975260642425366161507057839497831442341464876169815321738095113931777225058621170045007378141538986385974457108608948569178428679286063559272954019569555893094629225641143533792144306130534111134825391676052132699739718416763143969592560487348693843334136350815554106954227646090310716145511302616536092626407381568226545753070857512942941485446614884413685968212536355288682958254983422629562572787738334378379734746240047559534237435196858749620990235224326119638596915355985077034062681304495671833035890644351649505496438624719554753706124224259408133989969374524721853619967691388141527003311656238676596630635095769916448757545463064000722325501691589618079946926460150046648145866719761495465210746673901650114194516065217318459052318244840205095917771706602216691433141260705459245446080798501858462694077161518995705749677863301593723815905466495319941022359550601804497294872422000075707916392936131074362002765852568046135611053862008980723813605118065293679780993752607737470333897452093647489894622132920020860639482148432833065555214861105003851668508114492398466689159373802820684089698361979980736060069624357107871484524362628456541811078176905983327739156400063195909340281149550266244526274953181001831287643732763721175028361129247894301212189758142780868956795030399790092078952414014320496346597557889347809867869604462133052826103907075101291612982038410439940180406671980241048166147253920943298159508767098543375428110811019865887916729608974537011080227337596671209587789941326847715937170846886036895463863648042358261428737060349653820782075873591306535475285023540044348146787604908650688699622415346400604636111259122988426159392780045827894592336234564014762817097663937519331729000492028106275560263474436189894429784117527541772391911620981441893108637514902884609795453091702193744968064703385511865676356194615175298859911265936832207171101593815240758990490443986189356758024906348072217732900868672823472916694604909083104626971774503940564924770744493594317827405046794007255411910022048487472983969220698135283654446122887793200887266638360666579501586099019186342606984654084515293645348543463821271539078037910028454341066562994375993121313065509807810983513884836350235693330736244632666276028943623645564766694249451809719831430271218695997820569697485937957706226778756906530759238635121829247585090525519134543214285189708026800147740430305354584327534407642432073132082347114803500953986399969894571099229844100732315250324252467611084152084942741628896370840552758402508788568785989815684328692675492050126943161128580388281565840585630863600330675868267949524645476285636386020583327658564610149539862731981883925674122666336823198101669764235182171579869523879468056354399788309829090111592762901913116527476045912183443751355764169887486908462806920032883285557359493202561217700438388134773965701659075824458353471683270305060690622315289224889043490128224755298889111277792779424958317197268649675087054789719621912134519486904801196359018856897143830037169715889219326662498441740303450170424366873233376069998884644456282965171966228975089618355026227430293643860482081170303470070495969846620363970820876269713151477772687512877412913687248897055071188903389825794031069057579225902840750607012920392280051956318526859594174350042890546786301438300288137372088867124024443160225222972243151342975681154614682949171986166430132370755811551913575069625416620447566750954050426210908049606263205938770053832706141845650664845288917569545520764405616976697256851785293512951814425924338960550934252343128656459392645227007799279366948175245681422022369768492947739821744102131651986843687927719838252474761592101702422656738878976415817381579697115346064794320564904905953647357343812139948852462551366870776477728846276970308123491756725150001517149650220560407867458489819325114320765086441972113694477418999738928863915345525541731675983675137736551781874272546246095200934006742642550082439198969528943137397196107178703585471487811810719649470761160014544482566989136989829123606752492368867124753535490895562012245112285855189770325949751146800882557458690054950797464606411395453401925714164126652303147808053046727812471571481686426810574501556082378188897659553624565637590946342371545041875675458329661038064379515520648025225948445334249648414366015861877181763387384996232551675536540160064423592546914181785052987290226109775734909617354787535639646632710013778724315453439458814784428733611298820609705171922157288851548297658226268226059704131049734412059534805765486489859234821357069526672120191925534607221525202804449053849789226294225034340242364416094948373275378543402671289374531194359189313887559655524992641928083063924128843842724455198912188408089987989783309507786866773745004363099639844108080669683754335298910786323933043968003269009437072797510248622565061413533136568598676284049381975014889937733306034037397697716005373294482262165499657451403276562085929553805966010718179894085513303664763914368127944276193816254448207584670583781873529857820574097712404703388438156786017446688473163198309684563185124688509972824932168381662881621879004752356985680215674838153299863222064283330192035517450704939464136683403111930303066060285003798759771298752378653939060096267504873770471784633918123564287565953379494226319986873591315273910622015434192811193022899260746917322887112526149877498722007124610104048088500635441544997924440454567394068532867415487175801317510944033691341065629682401346966195854174613393618499515503678388783215415343168020196825752714967142428329425008932367833556690410250300020202136800901461371453755135018844186510076626455577377731594536495452967484057707037430006412050725992049864352418484260087139709327670127430621156711939531955178259501235207293063134989540231519431889060547161932048522787314237091622302067695594062015931827418201421216010445397063749150142053428154494553210953364042536184171142458943942645757205278341709627475120828217491831552669087440979083499089627790524791545943431918925456307967790857045055570107804737514574606886141984600447090983503105699347818793767813830534304259485350900480654743391928628665640597326561879284391085276010730066542609738463904541271938125223377064366672947720533640706345678859124292231937292581344753940008512837627230035702967543572865931329889317267151988555150215128963614065675546431223383375569951659053166675771208690715639041023884880000764107094142598074049556457575536134499895552761814841468560930901378211087255622947875092723188966792672136003872276885635539867793546691581464578983006492558249240543762989501342237060308507173863039886829952591307790885085490583667677903035877973698327085023508373112513195901037717616336505683457094797113935478921701547921849489775153650694174092380641445050152410112746261779079150226402684545965540675647231876261192331319286603578176120242623350243162437768584556928429269054956415634710196354498852621349181334595070901056091712946138639593422662759030702909260779630640772141364395734993804084923424515564244926702761704552075185509467792960712060546228669846061427810116650268749406432120424424510006147726837988346717272696101258614192518312304146282021688206124999033573230432857688397202922651938662711302827108761940424946560962631478731639217301804726770968077079187265812005254300188058554237449078327176383311009517939036531024486423136043495502238775025343102430395238850173825475123184802814146652495185979957689520343875137339157989009579979873316832461744109859585651282680179853688145180589210390112849284722700571850771238841863930516182748234025433972871681463844204128279982670767876480416805639789777215746392445539976191036902355794982147742087799187571863075063680596795208385728484180023418336115627214857604589372540659626342341669592751351367888243864966982796743001613423036693850791854644134649658903901009433007765597119484177767204513386124779750440418724321917337915748494349007119757663015652883190815652618798256816409669716599093299008376180651396396196659448131302638489687963209817833081024666159945116275277890888037613715922663928834188035003536893833325465848838301818816260153634265028264867401378058934308193721145618954562063145006878560172482576479805122967289549257792111761190057939613292516716916304340803082070043427051702035344698849315037803179999005738723739299280192782694132052153053233692449359899768178067062615932290559832518414220404490754213677482111581224645353952653727401584775453548013540069176009857560979709178199423169708185722577319223814355136083087035059728617144834771054511948937764972116800220137584321976167592975858380614137987509092187809843377510821963877924348048731468929348785025439563832615701040316798171157454276525811208538712634084589612618731816903813526462212375044696616867251950180896252256998713446607636601636132936614961592842238590158767409290321104636135817945259291275370423468975724930222826447466423958656651234938601514526889441970021017570574159444185024477345570356191577357733136422528086603989752883520556101819215630482038039624713680068167703696592111635764750792469706141835903947301914826851838591814936972462088876786837479324391208375868974511392040826437480211892610206913391076164821848776262197016353160517672379899529756185446318833489856411406581245729287549363031805270293060154463405495034767633907384552679401117688591280550399545665308690078037278151749792683457078946523337401994370881397367159898155537267593018193291509740805526207867308038686214596697510898919891060692635671702640208286893417511125376405676984426371774961951030476362183307061726510297511950081290466450853658527412539311875383637693846398399286017646004521873276017740724390223654401168513208120645189335021510018339130281609253764344402298186817392776528900070563161359721155683888337657773294843271956742340366392342871100971691442511750296450539695308646729188121133172187899906365448055738660471001966564464725135873020008958173999914460034448338463224787523537482351775579754400512504482332553089055940354724342530116776541568315035095926468532592804097117314372860193868063216545079085993530933221246389205444130443020195413232190352866226563905715014417339067809583187559552223393731292440051340388875160587244368455869513803639117841605855234477931972046413638957280334170446966331671889372673565246451837934437428456028143032858990839060740982873101888924984539699503054357693250849867277428694994800755098652781407190262856603924950743227553536600845636637558379469621417856789303142789597207558208161909201545711535981935031171216255219807240540928714630636411837396232234648403411139660197005127135919293094139244695888430109238514145169126078326304087300200693177728295205401175841351120524434756652366295634160416615218940739076643608155456293643060427088995147023936882415203046878427533236917063445658562490976472455622930886687106765878934021548136528621796528568042304326683352319394128287630240730633660784216078972864067136260331271167324742702635959303701110041108746307358942835576191492025252992580789063547942874840545507104781900517186763608810362480475560321160148833800741199434391358714089439885005520908553349451504711429831647895875095392105070238881143288912121225852495317835983528679196442441271632494690199301894636508068863983246660331401488267617856765509655558767620892679538902597318008697656381002448261867173381881072724933317990854507614509160723050840784675773190067485856924944677693113429018726696444481542348983533283445114303583814001279203025674766929608521622670209450938644854361374614934334818100842090317233948198152268662805345256253362353168670000338168580584370258517052481398798241234919526500476426872436544018879014204362687465830380258844177883716005329973580286224123506573986211136970695186665128464009354518717238465618716914965765571266092044326998920560306508441242007629194102553381236259515195137940246487901954689441514640501342559661578766914783831393072008741699958508408269653618054363776151435334571998752328466685690985266951359594748358642530968327723087739239642129693416854707355489765529373407036697621072928110466458797263556613027946873854462212108596625074895800497951676388603654286517790372366172299214386622607166298026484002240558999116136406459299321328973092926886095180314935735666565526282715868114420716548880301706079702175609379967891301353364176309410457324438899677560267865776953036466540741845720982727666257023299401588019914450180318724858050585429907457798298808671910877572322440964142378347385907196067646841218469938628287246562175641858507984260143719898410699569453144741675340702451013081428862647568225420935191779644559327789757569622922924490229446337831872597423858477689499981587014090043869520450018220240276618110094158315644471261585659179921870573933700857235984536069439441296846041897347375547413000024589052697325281171510537652851393553641597039364329488568236912768831953968117669220114535032920873408612796326125235016598945722202387302750262748905388880727019832755206454228313730348807899684685236358059924929351152088970065256769859914756336876690427444559097456531623188858446775914945218831731931850935334701590504660854631425794825854263349191375846741408642752996205384074773027537454472773486839176826936949618775196331802695945473100362062056501317125709952881331126335666828448974998159027235801618261694315190329233423505213203646575944190368533184739442397660353038234354392373381542663990865120260083607663843176284370084868427329105603906497421534771588589556697019895894862940438912188733182325612023044317958611935083910648436992458949804975405726394499590772764387440183709307292601935456984379232534982559808449293701615799702687021960431100952839725502186180747105772910758845939200712440222719304207527782394020054045141870733082087229447010703276944661193049863247781346380263327839437818864390631764107140849823777068614034384738679860774810334858498893573179801504995313798976440051489693174551136357827642267856752256783251622084113552443128860271142596583162560639121484204164360429508008447630101161404775253741623372832293219643157592262910334931963264388969791318413038485220921300260359366038160185339543647401684107079618889849951428026075405071154256964929215109388832075253662261586999573565837374244955332445882694463307901851084093619503789853425651587337419644008310198876370137674058124899166623725590415652490012952599018268209957450936558071685726348672146126369866051212794891478400562741706527656610055460307748904149384365740634936790446645429892440389329056854555343433461093044769069996976753829138977505126269994888071141585570713905258581641160110829966579525623788636969105121255326977663755457038408679535630912877589120985976982644900612853178426260831702574653763207053173469375530689890361514736452789958901254278164444444185194321657938435717632525905620931149528837291786653235460694857945074286344866534596844608643054948903595793912025026993024797953939625692063969908136492671166067683731185635645385488405210469681634167805281381642138065460033952751451730750405561167641492625087675418895864348854449014844549335551019104767725156056753823377657848336060692025172899936715298444043950485160648988436811089838299957006469968728930219841855908107282444567939525104436483407972801372799474679064399733313845305772441939069936979832844638203505600551473465692244918164364908614315694183561224366091128561947815800119671800534949523726205647422452553936681877233362488985926569342114958665803673499977798895811125100594911022083760810585128292053638307186100094353888503832099470621457619339889785382825043683116024297043348465706059052719968184485998704207709936578078260693380537100401318981733428785292906083922746188759199495347491859569291394092536950083009183998686960090143525896088596805763375944147325566819873704810225965385229201743429397974716022556742661453750246465442854418110278329593099242599981158734083087804732635169941104063738828401318040419092927912324956138261967637858964789633463282934643823442665863968608358448531116069502423055047388951653066728118348452050543677237363048508112797176688318122015052970563040988562009484998170820840582313518171939754078302633802547708187463613541065281626837240972779817525176236645118143568030842114032901157961812057370523582514350211515617299686385615957437747562300527393567370016554357394709581685792073487261800759189498545239590627738443271384084920334478916366374986087199433017323963754537819871378414862532412886250567284071223704802524154130632857675532161288330057792113591568899076185197990995933694956098181531122091430841523083977485342399068106119453003920552527393572979296366650089231118067665535410866906151558773194113934585216841730350161474867414210514832550793121081086654791450456516160685048638808951520091793520349978359581280919673613755045052685932457954148864231441326129591680414579192823658974372292872689034507720989018853257632929237622008529966332270330157547328507901555364388414963041683075900914152020231023857442520531977784823049790122896017933537285683191318316017438876367365808892374310714996474120210242230465000792748159019549047136178600806023741398110805774359496062244855626044674883462608480319032770767972537711470162526576512144193736994947633867927438728835035447834522977295443833485423282225180869062212881660310920948101187390175101331995981170956483485913448581804745392122260368053960688094803034343923179247574901013879532465922149595508753832561029363445854424200592045695852638985596580056956365285428286485273166386334014886373392955412035886310030490727310601288391871942746052520440148725104403516766639701658168324414956185839078044974799139370668443289982106097080194849313838161879831169495590043732107510473092781021977069433566754514066171759823179182919014015679781959123113543022429716608425148135720444619673917035985684186385972217011965179213081975227139791745890566609438425601207396709113383746827959962628968352488975753860348011223338696191994347949310999609210748998533181125380210386713181937251397301700240435914269232885444603871430970859766527209942999526754999351086121106993118317764119954365708907660673680672727690847151742457311585310651744448923630826407602719113499836755074177568981328013529867054265812017254145533974518397333812651119196946933773379760671488155835384303812708255873495042646433734189029163065732955775342726872579838136717058482427858198538619886983733867722867356188388450788892100195466139305396903255531239780602362000039496035732955535629207981603355853985064561059064483470037415413736892693726566029193228448626266594159111396163532491421442073345134772978165230929149606002243125398714598070984188112026863880725538608360571244606878174581050538690546663517109747375328620740314883884080676547281107811245466198613196718842242278825682301721480831179790839143227491922331198229411228469687895975181790247764268619928897828980321866273254669783246086748172806361250776001154916256717149522911991459495799523155865514586978093745062430375215570458228253333224777566917522222643017135666505245708723448198835665269519634547937381737761016678881515181527959902969128094597982383267841643798242138465450614618041790856846960422430150063208764615562530044448932648553172955453103288734196848950669379458318180030601387830003665978989313755901358390630345714300190492099519701741558358060509749590855237523679417763919706804080449313651242439948047470837352547303917455614691977428052099503730411871158656632204513519020667101383217787120055651971565714362034965755292042740809312309436172540852377649570165967986378025862874113253322095616420927615870832374458100599314031151099770675628172685325185269932072946370468875590945693694204741484577352442871851243882219041937145390863668024018933269073456524463440339450373722754965810319618643354613422772572994686711345638068060874739328113100074000089949413425357442025981912523797871188172044222427720655621792871726023967225997408206235950252705247874823039205939198594239019661627869003542199652887811566477675740817446601685336379967602232211487005044207411548634843791267514432947795846064918393678105336001406121523873875796697217277437594864667461776654726582096213073015050066567871300213362854626153110473674309651531079431907636283047685674912155728221726383385359271493222413727223776913698906085640565183218378671587508855830333045957198887981658085790367229945672893431911745638794636551605258324257320515762893274010182345746791122496017605376924380219733498984817642084345639665518374304891477644502156961976432488441008021316600927210385161472310767298436418147039885015314616006052525058470170061169949122916397071364459255829834912204963017781745696803104014823289715077672883581874313366336313785069666388793552719069697484782206720593458299604460098675730926237710242488692272152476309841317208632508790140712031492160815185700370648296836811903211455656557207589388134855922633367602506045990679604418437056205931669859808666564356800529512004152396040407233062925481556825367533857781161251426313489492373787838125205929506041579161653264260367417524042334322202529176616729440448715425134988049575177091698478966510741305983675910334929559694720254424804495219273826966281119802826549072485191887449653470565051279329306154995884897515506966398575743112674354959063564334318499979310242763272502538352688530200469698308921283511089444845146138381484203833388450023548667662460755697665842650306845398699340648623020531154111320672179743979001029706907512399960982671140426713630403356797474757828682144284283224611116198322845836977295781089105158375503454969856255987644071042199413220762211099676632802253728575458836831757170826714851579919110777926156468499389518389959637089337998526160699029614041523326769889281722197538007639119826979269932865910413294134200273051733850186018544626211583123705926973577424680404500055208067978603079319644087449163791105352881754405697708074607741068894816138173268906556784611797298474399429578245383080931208231466516067117197346081600723254015317006131313539712042443973829399097504662228276428765359699598726170226117219072502157215257851680424282185894892751470377241544782476135939677504721899744255377457255640133517197340499699420716160837197919439842768319813835800486819504937788918066258648369217444749064838225879340208908167521205236049407104025335724811751872495026247381554397915255999665295122166578834701302887416781478316636910110533266625433305817865756192767929438458823056163789443656156907699266863223052149582174823091470894721725611522819101080325303828803717512946529668736905361469065362733574901950361333332257106462015760229875925462195698025086638148011289670372068900848836321438588830976811248834056953784736865813530512088706263628339686796993171831851930882675498571273402158999459680095802581364717500183203078314569200510179083717979380968162542175081042910405551745353671352649075569638198512391976311212698667935746722694066498103126118134756528126317806632313546812836599446919852117310695890523739831234565068632669196690663654778150588200976889955558355503842262339669884432991162520565861867573358695652819505950229681609899832664831745569164476942452217047911726127558663359161570101293126037854250121122631940376365840723768891089994837005979333690095327652637898563296039421655500291339856209784354012813729266586600265219081951813709622928049663138969203337872798458784007153744618301483367472715261948016187028950143365009363700724606736801954678426922967433482438559941480060301542743762138568596443892363395623415751140101156564639780919477151541752028229190713481326375634269391735323239124563772350997251008552719232835503518144794510038561849683506553853651742279408158413056727379756258581553511712579533379049666699065219005310591065435404623379856838450007788367867602060640664166024188556653989507034439182393977270084006090367390970483467748128787848135491287573150169006205022956845427194202231966943748644725849369827869537439067123177236205968098914254312907349594167127095493875641578432010875905755540014123870100921036288024621024391471813253516308193351902491856856572812325078447060132745277072653967382519302048896305181830950571165821970652427145691893004457620699943411858899817634909094714389460817661345110150104240747687431186321158861670379420333283888427808095106104632391520107511200402534167822016514969207496292410783036119971528070589987647395153485267717341236144551025913243635326682922131838977769167250029878637451243174588281134198241232491112592541662006417342273820440489361505980047861426027894320513434335798262893169481960607910132179018113290533206874476551151073707154040625951838582060223769065335224615653225385230226383178330129802712676344309052467216186205951017753702117716801812424100347890460460279550697609865956782700650502217344731080605795068277980715153859383333880318540411619779814859841026171742112779801054369003980291703528457971275034371469694615912875389723348883252500612611588253781340041312273134066829152501401403282714747088559389941176127423531785788989943010519802344484163231629199551342504578532285264765696805641578036845594645864861035427898750200815859395130793221888420306770389178623053516846662858538974760620381737529043465001218775490295504726516935963173849519103341135806569627677205446739860097561492171933096585284249194278414874291104344804146925673517056626601866118274934125371089978448858099749757266253065073951033669525173766301780198507310099426181264276146996851253090845436582206759029627837347327751838740940411358388988137686951405969665411967164723523230601477376770588832997700721040627106183104147070188066729958187964249402860490180120249314492590873215414287665298140248360114278593604675419025197805630084185333919809362456141621316528159315572393704554843188652889614954267589871921772002921894528326015621428875539600827726379127923299005395582553783643596482124138820751148482125218912027451990314056801797719065755498930485935601078810897757664920929962919753860254749461950960430962073930797853239937531697810234152822546224314847875521088888364234933276730645025651300211869963452361039696450445743094935971443959202797402878944995704229467762940717314100900308265442217166439158242042447901184166544414187597855632624587913548808190995962479192933231518161495646542950803448885116936803557282614976677142391247953557402864963748415567468117426640388624419385906077541862352252043510099717955077706934768376925134607365196524084446894091448859253736189110775568282896180975438454558707641301575062093083762715142762986477612782638082618128240176544587311949507023558426206610170393661988995474314943537281415413535287170992764918984444348170493520164078734868434796066125150789679773094574115945942364274956741727422851998663466788335349989856877087192877701311322020254881399568448201036435408586158055745147356270664849404376039842790082074112651047127613734048833632297476370062162512104378631553987311099622827059147880595940125959696941642961326693993250910595583905568616748279347845792812299234865016183310921303150078952573197552374796325169556575981870836196198116176273707061991257790603188844149811876776052064972944534977159531828465975032148734083428109256396834911184976967803360760534862887369923467542928545971763920328683147558671112261150366054318260931967407203448221840466050612440582392269964481325015962953372702651923262901767782442217664240499109831655025676300037503092452074952726750039305733440184111733081311537178219716284051393138978446775723817248454491463745715902724198262448376104163791229170370014031985475503550788233121623888670026495272576977382091500014535704521154204745463465783189883882303103163503378729827004038099206998693358996926160981520930989070187772462881932839731957750591608680394173154868426081841039392707073075781992832222086231752762704831517656388250707480939936299766695018064186993488431023120617080400141870744836436592523800442616135517481576945831049754692525280522860833052297860639299471250873073565340176353039954617126107253060326156398715324198304110018895646266519549919164689039843114714548462930987060462774146785517261608538008414370120605311395958699800778442854392224894183614551716204294803435509055942005559742177175142255513072203216775310130687930961340681693893927858581170386740704377574421071305981163820918753259442668569657446339833190158770090170272236026221973170858076622677862534464988711346865453846632705446507163423811336664297243056018240138105271086357310913492529059814378479771076711098111092605969296313540580675786471334962102913151581752054029919502675654895053825924119705985445973447814129994242543558451143731215181097691237294817938267865587315734690067558281629233960413417105869359237207739392960719676458492159385563222493771400382713947294648901805765360924372325676920245195147931152071745717869098535731002943276484610268171368902360135393178934072831874630909541944897645536733181574598500431192262478116044080321861702560431500331709863953373985088229706695664344649147044959865025308169157799442396935088327899743989674597411407052519246691861892743522296524500334553675123097704211152078053605612931064400060596632347152982490424475873748642239079221904694864940315505778288575210727795378765954707406474014377328212043140096434541192289775513067075191940376762421904824811223948774252103459006888587832344173528934670706409463541219828475900964934041284657576037519073912718261333601028702116716581949229872807346792560813519204456758989835588907087000217441020210878546782789804380603782024989381707845207266516662072953059616712416581267097143552425283555133024069994994747319226458856224245609226728050754946047898615894920353813215778870170686233874454641439616216891907868934007718366061176999311654973461396716370361573740452067358656327026964086652557982855265681084726324010993529947042605966617597124659106202958480795124467157368345609732706421330450579654630330521790305351731179619516068910944475442348970172003871556228383510946610049752207462154682404237696103577325603302912231132857986068578263298536844014472381263967439223653394114525504315361594652471915397089012667637169740377725310863234942054897158561773247725979616974067160533144047865503675032371802205833822463035738705551560246922224690210715317624379334309905213065501319772035183572792550620002580549396299585725389395495518390754266753944277016629102970256656634020814550926501919399169787320095495560096048426583703477300807949158753299789100287405449654671429299463673907229467800361710613432481785478760252232995848722024341678858931702195576827538678725781752012685584836023466272816911557164227585979312272236880308573594669955901662223258964516166187961278081942238100830201364662984210333921357342772455738761668495409102747215273092395691646816254370519120285905578470809248594683033324489016386743033925583893163252737115014387354697928120804516699205789374108230095796993658467440351935292548000444789299351310684581033330696207718368236929995835854216824960469803003434338185083488499161871455614868775684066198183126011972602519321843008145142629378423357172308306742913385214127590319384933899066133801302004444094852611836685585538976225062573694192453526817982394608291162531315590391263247489246050790412942612882234276446032501488096871523202568692536025140639439227272961055695698639271073954654541416506360665426056622054582133588690085920185168984005892966397770652453529275610186780066338191450375931667050523878737458967094742431683838428545336864340262897120873826240573554013271748938390290120608609943237508796403639970592700496214710478100525164895527786396392916337477480975002484824692936528856562192893961886907884118433071276562076168209052518333387606184445679037639511087990057144412434741004015545802682719478185016459795351122691659748497863527925223473649790173297017939902530360290281771930128222772733163250098558078017062123467711557341392837534085933461088188934616757485086782287701673049048219805899390496595924304802598518074704034390300865489812647875857162455949268324091579354086434442636315948644635124321110080732510072892864409047630579925888888875185625366623217755846336845889968713778970732483486582202331321356997217486948750865464806952423172624454628473521226941262386739717119625270904406674888236232879138319753500155810243225248541815129537655495443551218339237763797124924424160360537462334537472877625299403130055303273444283363215795508481377019454806029799057762977332111681238619841045947158876366023160531237794001483794025539724061428192364346894907799449757821648794672564569586059733591207371306341756732504439765120997660065632607074824795997374502534088909758584131683301309723632490331474164404602638556075781207195520076960896513632126179276001142441448551470388280320832128316400276905313603318139201637262069996169103233008853883422326428409850750883165424149363503461357078689987360092123149023276153753753559976515275940398722989150746272408382656676338818533140877776301519060520334734389266684430467781525138295024056625585229847479649845281360762634657559207102267193445470481673273999146613994976646860489238741318723493821178773107238260613896639652730746555317423687418905313516459966512699723094598687333320377181174774397084841842275114637828850623197268103915165411643381209516972525201253677893663377968313699059227036635835165943298059241827333324555901388828207827564633662139342635121735935622901328633586092530548755068358961589224000386009028609403391282797057874624267079070822781273755784840851121351461420063896119374513622235160464602390376710764368109066062042641813121662224676155578666816936863987689055699276337979623732443709144810035695493051407730955700451713529659997841713471504649868278664474085904855127392755242347768017981164612525126770024544348543352564369206451258707969575920006844288732799565919172563970436474625144663998601053209158491253556295970693277875619701083639118661262782604090291721829538174901774312464817043998216206819621823122427491257100456474832282633025315891769861369143919789857486917946195380217609659697743344282463191495668472599858963265885684234658174860050084565144062290374302568011965347112345134462816679146800802324575007509365021636481147726862389318566330839216339455064800984057667765830082225334540933549675258162795469845990150752471078798196123147836467294423235399352566623031183206459201055905626956922049391013664198345421042434553080164744798236399315168930322515307982304821796020607281567746841017678674231789166651131263743215515929775253108249922673279113823267415081537145979907439990840865998644644386011733842302225335539540217314453887745062478030686551152026261891819554263811430276772529622590938116388474676552201276673060465543889316175149994711704558083156033147909259439790380214453270263142015695856230689555798711092711387499733335172984458043224160205003515224268527693670666095848929475865257666779850273758945752194175452946393500729260253733150668249484131419870791523183318682254920572352748383074448937663512579817285570018526984529159863339149600962950385472674016574015834377778048844646738220717995843871493720296675905794509988309298152256901323090535845491261828852395038247173392145723161381569396584970724790880500313650475244033130321666150036008691521244446510278803443608965590260967091558190384888908928950326255524671293534737830754881821858753400327120425116137866386789670794524470210877002688798492461900510286415383359372495469567370204553422333255673238893552398698220925808915085816727249733355781902065271742896676270191625597619337143646537349888161721599258715808275945084659538432645674080943057332451553729361397324158710754548771192432940621146231813907735782978485775756281495721444537415125324904285772156190311473907149901244780845309257314296212817191409064731759054320258810286761469325802552346157424762890670361838057968939383252746591798045059478601873580499008538724883010409358394360705384693337323918348578150149340556112100582495026373135290721971669078770641831646106769325848895852992882448208736285170633639489162657594179785745034888944286457794113261551523059780390333656697299198274270289876655890298667669296320606115737281054697699633988626889936961421755885617358884940980284227690154511512911217361160420451489204871858577191971783553587596281400201113313828603648850101871173260360348142479415495642556110576508344677200783628803644402137573289674011798378625632159749630910532513493154626018704659421978804420821603268293026509281719345932724024827228890297418154938501366901566949874211600946921740097108219186917268407882493069971518673723697481056735805651119155720527698981041014677082173699110546328453053797117321345663931742208531988381921493412370459989768074807673270222109662621458369685530087153903304776698345354220660244334780700873955230060942959372607503277883380807151905214115785531270265251206325281274738779780876331905861614638878003828067310809257764842208711253297393880503012322907628060535692784822289588042483547428885128250676673346861749939803133733835673413546549116975832147588747565893431996148507405476373025513104048333005914384536890336564834132564931338586003434367307906270799606137158808659400501194811429823438944784528128252758959682701808188622358479977444203954630677007582558170709716493251155049562006889801716209420646469553176872662479610429597114030280327328651862031528831223124980389518018099587236992266119155397706245808316088772000539151670815608543316053839052544908662987538167631853252786606398764596531238568460136361851942918985222908891859454244289653731001756101730882782178967919896901896135330924984982555517902848206150370000352739495343647132370189288760578423214795076711980526503587474780860426506013914982694901911494984392087376247578346305194617540834145911090893188909424298437306236679802611376943876830600864246030054679942581838047281152958041922400953784064218725070446796708339873499720232060824685260144451925006746985288435274118155076356265037168873194515762712948385042918456172733435477323276274915043716176472293030440564804426733162011720372811169935773141444109137730585090612989609358010756489584838555727840481520401094211340765234281305628962457997982282472333429400650406851576522850418209975884914790226525867057000490466483630654478630566387906740969585736694898014102701405633958530308246530439565779718727628946982347304864989242396249782280250800929427865582594017888667245706001329610687971383088984600311505291061887393731349800629433506368600987116639850535333589029657705883350605310037173718133887712840143812727758654152859935809971959912007473092515004055801230414833815915784768551027736637444417151419882997178097221465502848281473202108457919682579172441270349550581702055327827371676869740880597574932736993510787051112549701168993197828836622361861726028337053312906086886247743369245976194283831557002627530679067381730259035995378922102842272222888990288961126396234221801768178923661466831157732765405971195182392317559464080292279617017772507836135503906617073552190243869379163779816975736819592550918433319718661238404126478151843821198373247521549877616411339087528301378750484953982190527594726866677901972022971071084449620667544309149564576250543776000871256588051261704140890339817254477451766422896617519147261892707044342824569708391111802899034450576369882251228860625371481690135749292009934689221305100334187303172262544198972657637599695931517643648590379918616334187035406717435439410862847214546480989110593721360535692576744746170811881522483719998657297692059789979440088806569044740177163888593450672473789068056708137753056897688112439484475410361405240003388832980782066487607359116633525888783359961513928004332579703647985303323084942032454935919413306047441989356540794562915314117006217279767138084968052637279945522575011191962690595256692073864686760546633516736697869230867848569053865932268478395743010722945108909164564223029556816741019613730290835350848197045358316626649739990241913044071307276058495599263383853411278403588064074002636640394932069512944426901004768385840530981490675081366388021599868931751168267831010050401280537739184037825335846609192998583717794878107568118752324830313254394269705587289541586987552768939120758484175641697154373305384337126270874659446923196227776703446574543912673922184584202348072281502503631677236610274101561392228284695365750561335601106643460259990733667298608472590363825333535871691519046176079490416896876724281662541022430831856190701117431765736406847549613901946103730210819701549762761402784555293252814405367326638829071862482229159155383064225393976634774292007320314572775831308162521076538774797782637194219765066353407937552517367043320626390611763143990845395953136665580713069332009724008014013409516866922385394938360094904532727722637817119585924932986498555597189918255790569506457676124174438476458831969224662279559971199032155576569938742064087687558721207066056538628671675930493390191535982031081474502229234343227359675881754947227881498819848137947601395857741426456123781278303618356785853239005765357085734681562012376657808673761750804613088306703729558396673672454892672337560107444306091631782746865237057336007096347741751713777801286215154533414699332779245917307844885721769758681324380718617193963425741103367604223515080521390977689950961516062585772688765146611702211215814044131255616449023685684564478126345221077390321929191623768994732485551760097985753886969188360092219516383366657344850424480053011117292947285224925399321065478584576305846808353070397288545902155245555566424677352601511638885857236168979505243079795881463789929325671368328285750207662153196961295483447909705698447979144776621066949545047898259726069236140067570551204502011548767191464298736398331850676993738734060723571350214422589133067553209710225979232068372762652521786734719166661770406652837053058278262558481872091454769988261183565058729427395613423253232693422049175853184711452249418989998296211320578745698513091598078566829599355107340893145260005909950325628911302891753705981629769496279496167569504411375641039735517696107101822402665994859206461721472966859231855137874312775470305337832800106375879095979118714447093022930145317856976369242977701358075617944821820462071605309152741235740930014700904781795051807305977229885677229735484788276693212943419303294285407348024670293001760803572381616394755042427643856848202851313037595460956713786751362286430183046178677668568876127370422743361508495491899141002118707075202377361121758159146690124245898475390678447178357348925202808992032016572183040172794095036321383855877232519988743159932183616625394163068981374345484285287730777814560077462544011567423733486580331392729442235547539692986617115343403432401759548075062753057637386198480997460269499315777739716834559095908080100399544876401971848905780309328255212106611541250240287230180323567750661998902071685631834174687331864768816594522254053343439672785445593621348824462047200809181322992527137382359091369471516587129164594184152703294025698208181236586239210179338977242070698554374518677845778538594946813249476317090096422333232197534401666704785048984729079958928992591694507173776825248581592948758141606373927949628308427813074112398257794921178515413391915833031612160972072085389671313530443439298603267807776234440760558303141633905209271224122662240622491419502764720269622801261293808649560406730311830034859615621898700140797691408949254393810018521565225141682085488325729118503022890579444872645670003183397757124212571305416044141845484716915698423206873099180003073791711536174419883113375877732986192633311626871170391315377211941511197350620402003896379603136554665057476939935502816513066119045554396715811302876813381812431676851081921898286319216515008358269812851367742538269697770372732615875358121973736047029025863710152981232620241745780793559887776380373548120610740646418744614880805729248784106728272407686957504054623891604545489498419580188075136359946044816989203308602589490555232279198116034350427405159856048774771158919644870318974176512057311895806012420104493201336576041150102060237817344218090518144503340352521610965794495255215757219265161800373823004419555656532933899381560532806070301607221509567937862149070931941417924695203629746800545888822529659146552996654402189056564338078971309252563540763396975763398009842254438468964178607337954981466395612591582216000876303160147932137940009485065329547689067547616858504812899452732638947481785233483713983403663746204170849005311676873086619964467950281422935695430643864059792975730991980257139750586551036546572188629136799005417031286278958073417293477398150234150733288785076673699921728976976032572550339783109332006339894768928004033253486482950380173833162475479841931562432578137747204022648305266748268437627127429374498623918083377741058104590101757884152902648725000439487907273198801133793878592188007628473376404588417847797558742413475727216269546453315588961886054093652993107444532880681071219443001325782207600392381536369860659959877882674371143639478306567971755893885163342637621681307721861728932023468659257821292672054680027649827553799207980079466062340922427017433567772898645814254601022689785876158790907928847131893646312515609058898821404571639690135356387960478591885558929906367881330943216881481667941029103336252405209261913766599542947225300166215885802438953993071236640190978406769154843369371285983037300005989710861157312469124440307112136196514920292420228856290924831440065022180318219615371696964815141753680539206025708840773046420450306874676874937124730981885432980374632179368494397280061677073047696316848426203292317812669096226931160425873611935189596040405018147435462909635643069990774331762862936015968302920915572910552450164817660113965622733518512144688240809138848647105964798081128208768408928572643571802312949739010131110334085126300109858047189921341359323747846589583727246142739451560758291322705322601048281459716317051406708855583642126382546283886440621468470272532575464950141043351628092811556588366994896065299484884518193050019002210902188627589594433287979327938420051418615133799315963016820181946620382784244513605679379588115583362786067047764568241276583206644142886191906848557629067191765005402994344466110789536495579644839764291867080064994642747723707134676080551950906955139180782505286717427434540315584682106402762953422013193208236701143542713965732945580233274225337798926328984147962402524538420240961861587125579726753858565712488981039083418707067364962578635400979548253139712559452389782175539601790521933170180383726932369969777519248524012843071861627620856589233741834648395174484182556653286752782133205874970089113287369122421179297006613836815756907213853448880640856993778963562265377254057210927796042757197652184393886899165893146902453330202004857967636400087672924866485828185614184009467589953542823977518400813768967953483242939628692503779086465455872483961048896086595407813652879353741291596162136972110147536064567448473262189314265085286268357551120968044639684878147026954692305879342872872131609812554862151647153496995988587657772395984824399439780375431292133037041345251772687456137809105783851981795018576269005385178183020371388685595692991570164081590292590437216539336041575982520038527591480999829677095877609078604929178998809175145052657995621656795667647066284988202525776478502169386582508432566389957193269205687560776334685756831672887323771294753579355494838720827907232161934172906695132375047498279950165046977994902967434228651668635750917710590226815825959964441812130981516170033162174761958200876777127098474834584908662312841503140697217480487812045164182557908967221125745482186195477074787277270425772702285465957034515275338716858034134330980397370127971608247391550997617775253176321209271909992559224049850832394951577633491948880375500630735806088147308863565891532593786630068622320359328824406138154586185659741953585329119959026498984585345117325569497988797241119613779888245070616122902733890575255818427805745848308535478792736513969675047938393299890173155543407641667991128461367141702296258945235145155085840694452749609263727869133279869516321096818600178622022934314080158835123782565940653996840212555129397436767512885805790101034368410790755142525466318890252713372520672975714031544602860736362678026681369269761470939539179623890822325785470386779265010986176443090425315886135241646130880876484310967959081303650375767812118154700785311036655402640943628497501017574445632230143590847597431758460284879341198678788053883827677038856154686491351729490037569866772802253347429756716527864238522889690044181761372239953239060787217994812443502087119645829319171644925735513833534077815533639074564432327872972145392391747551838431553682600165403426720077844326762976197772048969950931307378438729700818121841328147110318846614529780121604759260208427988144349772148983750823248149838884463145417897906535158862068147791874940629991050560325118029036349293167492853381378904302170673245021217474554758326558448503325981771460042966057063719557777779840183840043638703232798741558199101873729177616933248021247977467073097881379976537846675266910423735309145700137201665791689332489051444744601024050321188458599049588637680194620479978401878490916801727761518877757887295524780517527008049444939335243134202172782268278277747645083899809522713550637884563156743323442883040795147812518239958962033890667845230093518065163728801611817685854838186270198067181711025374767370188553702421382227854200439657482078656181650554849675889072466354012299791771637930361015762387588549816593154179632852900074235103527736286825560173141194341329930120314992732538446202552454431619151329644659924590473846248501547823840454670827136021648921409213145878134317185656713759517871678345247040228298301820731297753971106377363213921982898748855586705672294429473218074223895169930337743079196320142518820883664889109636601120548154122584115307382219549441977373169391494353451959348264024670080980542961447637820648440394750997628153061942070289856510667509481791879534148669047771713917731179423005598664210354363615441680330079698684702366145869765458767691978228602092548311381645366383308859920917331836612244051995038394531637928751490388118238079767454257174763865289136885311178317272229631695586163208477515834035447588226925081818834986938393483232958979829944315028944406515377870873494400251611015899305229861485929291761950351332502660369117464352817649985324222771275401264011620437531906179950448723893446849257129706651896930397691370142939098394981564516048876800367714385275775759256400946529204920999155594596070202397779506954523342477666367705990417508956089638828300520040263960202948697413684908700186103654259578460113862630087874446712457884893391107392363181298006239745971902811128829079955688300160285923300514518476476697569841135040797665598634308875950250341384803826134789529338595229923219978441752219359454060290629262545329565495165852496849349048030717981419791758964800868348842905720265412039952913231997389787242446177478196996672583788973605712580524491664022463647958612925848910955515902515133330786435322236717510309661985667994178691600997234318297278679135681288947659937591811138584006769133684165735462179616933175486377987408471131292549714843304607080149295526803808609700173784040397577218265623661548707918410650894208971518575395533641893530337303873809368835340981826428374865866860769778863382563638953578147233564544783939780733683757236941650359665192638816972625076588447752362677276369344981830638126252344493880415615606539587739742610203024453840021090676553824358952417458251192836033417062271481667007298271710509062638834849064277008665437670803066378532914461377859568524733996454302912921496340479603209925005290961626250342836365005060404738935101851211674506239251346319822705209671406436525113077956974242749165420231007493430754235870306172805854519421762298828514607601315009316674749184472617407154896508892138259581677150369240428812214409352849954876288354277024432236629561471909119337584038562571342352148982077281617420540221976247785336105867785029107947538661683718105597166841045220389550722107113458240016063742259968956118755564663011283764886937318686707855458654211161942614080205522090731191716600604071619409772071272101893085520292722826243917010429964048405627191922975641563754534337729690427515765123709707363808278402166872073929635536305096416657851190651140471316049455716176654695148335713225370743178611274137863141918350391221451757354637586680894870859725975898699000419836012907326260954704632594758884124411241008455743593920570095174713043052179162588111069808112225990638183021244109824058333593826522265042634468416458450162865177290112059615422478189163908184781355505152825898480944371612393468762164849800925265155603466763308312342762904470864122882910284974371015380523775161554561923556561134328321380520211134408587220693729094351551975582816025055884249418676169016825714974834458552293333644209532726933044698941869919479539545569167235627449658693645478954008608396225712727569970176497075957690079372713507425402454007626553581534667273178199691044555560085242290015142093009269423224741977482513763812004336691459846518447583851598606650290881382843705451815694874845933504685194258712922694414051395232000155644944415240138663254368093188641105120719347078192123250558958558618423511655121832840560687746764416415217767392536861811826411164261252387993502245146714239398522916892098235617027774478181204602776981290749568644513700147346708414594073891226094754817636308101488790436791033651636653241089196962198581332906167806782044241195539416204705815001365628689652057252872093770958671779744341408363870277911218369059437153383048433343019646591833395850976241858741224229692283242167100173033703595465400849021903509221804625365835909408426656601533679706107149601817205227390374714737640253366095021413884617142877048106614348735286824609345256328395311338398116121004069366364868161596507839351935168868334944740876689105384507484082632247933340144557813592034825518380251037000217313214883410163584202015480987602085492603856199380042643756353426731474908214213287350663954305512659297354192282910487136023047567151708769711453222849873098479155154608220814702565693775123536438020819703202423663271141547544738289267240586627195868363055629363546984639140410462083589593481365915483037065329417139553267308586273943746188909457932790961572765066343877920537982936696103241480238802817890560215025044174961178332932554932351516808857507839602066594120460295344586033899533451699037946725441802338113684690657040121056462783597628619709350205318943390924199205793319517635242856031002998608097489340894391283723277864019157251107475109980264475452518628362269264753656423616664300528033399483004588877033977947268449693358829393117740098570543665112378748645177063715958535860230819849757656810955294696579026071593684082643977865047634481321351917863997024677630951432486017369661797903799597185956601427760400393922381928795209232354468265781539673360849386297282553338078280492626655669405455626572711379960458142307375017775354114490433372171937480314333873240617809489097317770114446049800239208158687140385519145747806204440579188470528199992787161035253552024261383523914465389564579137352981960991469213350926537218278799417675115719662242009194352946556124069458035077889329671439853475905943049657048566965185425390562789768065931621376818706982899806805610857660971658142741936665134016353477516065657440831003505161512316518366009566744101968528526456758004788817693020725546072556787319290224092576312226270638717053018192933525136912156084092214366924033451601806740344949504092324761362569584740940524716020374805989253811747049398798654450224321838929292653617005247642382220263553601180358588335844627858075220126423602571072536302895037682668124907334982616143873346540584053113137862556270761474096865191718099569054700644527523477672184969921531698432802993242159188614339018125045513688570648494484924833363092792709775923400236894846961397633534911246650808011881830708226324280760123288187698207003996969344183081360193877846871631293697361965325556409920331911521614908458666633920826175388412289810241181518743830672195392182448993215739895714299553164679569047620748916556171325857753317654791565500643780185336755782768038599328198583484360901926781906688159451644626240725451742858212455727183558331037710070383024639261306989210170027431854505289721683123202849293335418311793143448926197730880140757863514597366056869301043277657703500411106980967919905397815736278442037684614954988314763748306261946202625446808365757746272783083491337372676079021542854380101021899844115106387055183290205326657258858941440164927312968421907848943012034140308830198199544427596198276497354684320441642505261212015844365570232182150054524271391367128604451746454914432374954148430904991970872217424763670841240396465383984331160864725562539738170959631912696853947344251635364738002402193385640809744791140489702022267885564963526829957269468697293593482046492396734115991275294847440174839080839232662020566429866366491057748935032203615293844713098257938211164526698200680465062722000070085251215241980530575863838074077020523013777741904443538215094722571721434686489739127457476480393896081616227227035974973692478653772464803681942048760996628026818039975761597041390564189815119830396373089647440643794619509424697002859852819516177474445523070203220175773437354010862015079387681321707350476974407394924833561721016098038862478192672499103351602995568838478968262794756344273861057567615039066887410989279182711631115595852278275054264669304675898226566715485692357259391310203786698809552471797286333278929385524271651791931258916423821844513513060611067714730701942731801330787985447394735897093190248786298310735859960673804361750298537150733861046111147384947278539318655053956728408161536168316650124276868866141436996312407509971297458801573979151344661987269152979524171038191336278360928977460728368539699441173140760578099414132178927475556026061541789267304399966644102081307810726232735538855890675937126046544721773104394470437662872129251139095768555312783160164000193621137480262945217230656742062811981378967531939931271617552043885458458085616344845375825470517305415643263808644844768240326069437125591489389610861482682430928134574354547043379737367089939174563127943365133116817048069574570557132991764552721856669724304870477261536697595405789235273483518316372211322563370609693480595097490036954591758064487480687981961113524808984239553970926724667247543609562358032874800198631755295072400012609820045889412144794506401491086789670212854689177083675040460015603997933264995054553620899849788667759525267870463834240692390782221175170446050241073092034275286831513681182184821040518919371817341435316760384640372912122399239019035425976391080982415945267646417981492291206835132889986714297410866828205795884756773298559949113276455759574968505281371919508899221989561998480672919268375593998088738561860922529093317965307569503275893924358117222720815997923595493373816199492849284724259177047054449008120267691607354520759685865141752203633646866695137782500179157002546718212304535736744629108000280814740137749489985659783129029494021206943283469197351739281752165058003325052596455392861446160188835024414865127759640763164386078365095697741216755430239361832357567300084668087701606630940347393130143663305118376880290643574122996925835975312493848771443540918412980263319931601411083970576368009725462825936261807971975606331810258308442048846258361815824804806377768801637905233920048305005329190315124920732372305940550921827760510619865783269181592350668418709081912196120087748723545939515807986238507042082321571596739372238415114976272849540271030424234214184700443269733078519979169861810202861642786323517365876302269854308063411727629357883717786748336408143746757599745114379275031935114524864426561635272213305864251781857277320535837998029444791961392789559690574889231377596456301005416337104645862608358625838994896121418440126498775772540064957158617819091471454541108448822089315843585324146966786425088247978323640120466794162740766888745179303986621783187852671882342501195060576349959252626469265592493840754549591679035125566990027529489269373678897571034855909752255846179595770650517508218022245631529470609137222664596581343560397650051207136245941462638941979642522841276027794997407588544273262457207215458027229608730716187735754683266910642829511918414758774331664821860742277833442837540792281352218588334547709576764462802984502959970402697805770977365235877143645074765285303608389181780134448819345677805750974608781605388602210006556840855172929843201908974933611485348794684579788626367263568056206644839384128257631685337273573244550510786446079126420189833822216465359987695894678004755760564442820139098590070510730120317005306541025496111153673370746611821962479756315331107556475880653366617626308484459839626727831638447651855673067405488213020937715362176632196595347400786383295922958418678538207253132085968519648941669572731476117618234170127499927676865537476503571552586506787960200511753872817547271558498589050430368306137067075871817399798784995496795457270894886099181540495216815504660620170678816552245618033983027657270179203305947463857421296791692685177776589617977369255457071741298534762347406822998684938978388841210117862554286457644936211823886633989540228407215113576490627066920268501691047777863369585514942886992360901840831181782140778121137104484157577246826268602294175541342252299325144237447923369947503622582221091043123881396049459533434398034573391701704366605944161650079510597331275957419640986295400009114014169630921114784531907331408044682037875809845246067937920132929858573179006627598779492051446800479921995649227406333256795164347265075095783187584924152885277467079519690148834975431399475071164051102431180474140342620918456038259790431339143631578359092115192609646174163182208580896703022274688634121048968480731228577374024175037315778760783011242653486230810649413519914499011931250831722251379853452487897555548787012606540142943640946416438605686669579468161240849165952816867734418058067262934131402103546001914408339563297318398551523268349587490188356117393635163946417015115179073408088437563503712277447249607533178418801135794027687554074262389646183366282864163246109687520891817750966905961540171119329735310082668368230463227344766851295695071343034903360620727308850875867806446203135360778724908082771841322266106035203128440647416306716739000643450435767190326747346206027742654477293374690342328141936019746991550665758784888114356882698949132871323076094765872440158302964683868473831730304524058038299344767351256852759231304436209968646753983856420830001579095787848406674387739073186743558133158234808866001042758136742653276167623936641274786533106316923966851300103730249160007149878555752495445638484705045132071049584490416130811454551630232626518320644529046006358722880572687327138564930064713906816060233262865992485284426310205254316390608557419337875864093089669954012573047659617304037103345330822543471999694747576386104525194717377354132214857376491358872537201767553742595097919353531932861400560057095499674019539784780146435092757433292448337461431996985637312386101305672975949523123560617036999194910068975167075349175800441502557697259015791955340881889379849959591173307811243496901170253043540816212286343766022496350353113836427777665321559455838462003201339972161296764308640275215658492050644299496155549716804539481400200204616588998746209490698259090240483102247004540023714827146482192537660521792933888230836671352908669019395828179259316543360297444181512917289616970105274441269702650045977331281827167485829359260814782114396201231077795567158446156129026380089744314452621021277921108473157487377737839294679710427799516768087367791027943422045224222710865790742357156255752353987706246657324215139723468139959059439841072958602863560300767434392631474594537877690449121714691021383474531940082484447184804749567660707558009666547539278268980151438344668301330248681627998892656502525986612735987532719762438084212650349867979215890227963172692369913887978959914479458154898506619348041564229391539102324962124241211296437938281713585931099215637474363041293992028685016690913387669008018417492727288923963787472014850717474549452638156489616139359143326014368427878312699029890303257216164228916699724779848027573936022069751098249060994166812546496245686419797757851024047228329169032376252601832136882759814191251030987328085583504585392798589064812843254847353877558335129451412309452393219840631969225083607040253842385458785543467590042832340895297586802885236077133950113555166332448298680562000695540830932080966404194267773850309954846468217573283320505153240106054123939533253456981375377184515353673023526541229978443497101963919793128618269134574049496875452684909338655356879510328162839315230161284231813224871673527378912440698952281234191831926443116590620029631608148736945483440745310568801396870246961498276160053546591711192246212061079369115915751873456984527680531265853203600716042743946971400135569444847692802291311656275528345618051930286358423687603016373475273217410393854625984486822950391299047939072885421200562014238679787016199432752666263666482179891789361354211044494377291775770930159796051121267882523646624716618097080480219241463284375807147495981893067307926301076275777584579981984253823592753903973009662860250099229409503583310788373278551739994993471813965567850069050417367323476760172915166052306610830264851386049589461002956205544162022799531329467038281528395543406334343990119432347069563209229971079368213445422165210647710580220602149540502175904590712485519254378920112160440543292049936662088860074141139468542140190150321649742030939257602756064929789194014279319734892442071215746490704205978367673704557371597257379729998318591061778197378549742266522017382995747609009431384329164393533199810826247939926951765322341192182582952138478218555046007954628406080521532507253168623915228518836445266876471812532959734998443694870668540387894696604167661629098860116096153784487606183952841805213480678573156656798158396787878741260275045899648565698597720650858810147679533852321020665214691414940205816668757787808284148787406660524353436409045147158826400133227788902811095042554926617046920545564138212913771981913721517119095191448604159347045165786803204224469689485915980455149010687505940588288662975930583701205071673209681820675963254342471090729080470809930779722558118755463244120127225419680960198776048330593630782650432249440195912340078290303526127821057411636137865065902441065152038430614382737428819091156997684854600577509149017163297634462256551468733185652990073744634788338457718099251495287492372981491881918621335729810434713960375022162713276041368230812227106578375517216131792281293124088759208865448112641947606100763811244946225261961679742171506318623042251737283790984641748217615850453683990990885829233608116881422659878827866883777247744769604860915827735630783984211877805629326533512494797323038447003575001412566645754226900646438454585312193252390948962048657690568873300374993546887863841844524771806654547270492216005422756321172790396607315965650485233675796149336820253232533506309662461378574985459507034833512532481219164930589737614624378578036534075103679754727581244364351407889627037471817349202600976078538077863221909718450379933650971409363476905562117482299660000090009360553600273688434811038540791691667235444710579928914282295575163657792677254280966551282953304832707015060389938426146147786021517938191671507650652565201833615657047201137422230224256292403620740090415525749223667631384647944914814927865819316746226375988532637552688958804186221909713315504429893734810970670145054889827224966186171497396325957615676299254396568675676166219012526975803476950063679767261755956007544450034343988883051157196804080176890501066970287794728285304632558906372139606189411201553485044383963946606038730775402333613369136311085223258863018221055598725860619627519275323383821635031404626581892651969745530997093118392384277391266350044657007779976898370337694753577644145189992628186389131450838089002718599422675073359087865307430125587099190587917543393203297707182200034478345736804005084995255789134863672029934465010633355521983920732691614136043832212019859623338655436525230949876686636810498275450387629102824769501144085949368774998956274164019620463681739455722229615573670050419139461536401558371720616549014352092964849883929232210676510218342980667474637229033658806130105200514313801169519196430329919637150140234715607285318337160489491153681580646887228015881903099917912194160197494999646045305642659289520807564095962878555913338992826718460106721376556014105076260201908625365956966928896662799651045540607736581013531772558022689691888201720127112608802303817313053434691164996470524253244903325302339227768900229133730418908320609040002443883157930641326644385438110533755777358799722403195463207729894728803316689308920901258478150458572311716932373355496915142377072717497206912914859487267555876602591275305093915331887392895907899608565497697797636072362505209932013755969222829422961199612704426275507649821255327370657799180367634173893030653990811356870111256770670014575332605423347916136289179788977963057354979729785386709771398865317711671448979762970619205666864885316895058145029921240096980293922514344253482727560553763143761934797962258204644925629053232790096582355046326403895970482988017114809635863929444174261182790331233687772525935908302539226545144649363964741921640838891381379039199746465474099851657080526171290498210853581146443943646368228239633213112991558542029075992483668715684711590308553747723069690703538689879715724778087538191013973136916278366280269885802893305020368821928972258929974025546336677817284026821907063749455263994810765953934776804134725499343198253551671646440304324622087481688285501082014632527173219896206404176484176568089069195970341800263652860906277969092731117893110929176908464662545383256077192232298344533233925044788733968599491529332436001572477489065474657810528316509311887538944666756814320425192883031371236673027792569901744257577007005171882921651687772148602873012903355757842783831290030951096831832943180120420155751956261239108695026980633423954819196738447211478506964636819015415220083850850747876408440502710672184271245188649934929051534596035779647568528070485066259113245809493932409602372401743077279190416883934565371743838110068972760011742995085525890638996608391791513909360295449788751925744374016413772806951448062110679912525699071607237336935660273600416594820173521283226060079928815609788511214283848952703389986254628742400628201861381627301968012587520653282892848385725341575564542390374427996580758364477019935453297178663540466414045550696017241861923291527233002833507898754175008987925374502045069205661387227892083870961445059345420631177639750393586811206575175318512196637737985691054711984199956992329146003995927596787460307681190698385203854766124752124320146135803309630948273121388541063715793833851618962347601471861321659091275630547352022492280917823382197376238012962318645743261292080293264175720937355924471187054165632981379890387557545799970612650917484230219568488760982915833037469406877608398512971480803336251650526323764431202609211996762717235722630197587145746316782197740532950669039660453062058009600347274304300670548922344880593818441634464582300856101527016436827704150644506822696316329953723123303769896045036091210341070759341714915080027263057771287046531430108197910938287301740674296103418869164951279394608616226603616925600005561361232554148498225293186957778153500443585586679160235266767674467279727535612249604135761281495800514389375457096663091675367795726431834088201412181216805689635609680144338919523858604764533974684473807095649850829597832200146085043435096134664962164246163130339922685442350414836258940570255737170625528601298634060895319495688590170456959273103546887828407150056193663547598138996878490179906888446324969876822771863372437378981655711242482654528404295569030642500325795145310853643965329637118597591105824456620376881202233434479791386091209326527488447811758212097757762054418479477517139845741353612082637058504135784160854996898855008228863768179862301703471320467500450965134854346747026617464737906508815980033567704668223392123560459267007544049218581072162346353966032434073472949512269684155502053570788764119476971126737485745644847976383191113294960527539551963174542805947510094867361590184828007706578198698250385496055252190780527679215464044976614724294545747579200605142414866577901453349570527142734985447695061955136555662193938455857582069611675223148870289505640873685376655405297421432256667504173783987554860055712878394650444741802793169951617528442517480305912125882429243752791075781403180174226809999810810652052334005713846890244385305960267379448745369368690239451743476550315177635109544763506906715278262413018921188325328643869276634299942281887427284775419247850166198838946331107199349929076020251807309190672241657286804055782913157597909335254460068917684630307026025610670974815628563619550773896864634610116336227335765844163688880235588566331084362280084734306070307447920852414388855002821573831512180668494215785075937423271988378360483726715397946569021312664357184090350993882533830606798507251324462952944195895195913348434066825935093852510834223200188875810405501987436347388142047972465859675224147426101291338422203686700307848211171584477197874780927755062928245965630330839517444280018719445233963628027467356738976930439226881478884891540204030793534598469224469307927221082372240520653089921348466319779609712097992536301172286812349586327003586776664910834819298005081559327437853780217783895315203473090758880602687407887863504803549717541630879011663039092945441826503570046367565712127606296818030861317737911352676363685577812247917241355729839010792691838874627797826385959800529061273372136467170705898777813230184426523367345221746409082729537208610258665877633544458326087598095071815818829562610342705588370039973665741633835452561149270788733898314685423903544835227534291659040667155017058454991582839383358886574022355820217241255298517752857803896026778995214964858650712996585023780493184922728412864195412364899261355583133125081572188172598504953058819858777429293620000623263645685835712163384256463644989431012615552413798381064255852897881155398393189096979189120843814720396649431809734726757605294184543704994497753466307421933042812801302624107933032114439495565409697656489392457122133940826711618207625998189924793367463281454379612569629903765742568399627316268143624244010635774953925526135015639325597228121090839388041275077559185860883121541148154470115294637683798571288245273062340946338533102738198032768806608108009828753022718386122127445018913738044807758410326759829405440390831427625101500796047612192083167784452514048168723315441959436072061045530572730780313895969344737315950747187405668463056360261775391630581405594459376967137853523429142741790467174663151566846920538617378987735097979816472045473801125084408580738633370247137961007877363403579382679161887052452433240764229341322641225748015704701740376036218969338272789741266495983775977425746681705410707768095799551226248143743202528014855678294103858272584125656939662423419778566749335768749562584951503519426012054571094589312036649612643348462463005424234117692138622464815034710771217279168517801531539622727416768275093119347331661138076242822507847043970158360496296228344700386472545842210576272842103067517151002699741465730692800731185739402781172851424148593648543007384150298495755387078753693420736284620249957085099336331672664699813927235359297702912903552082393315618348208380279142032806435400915500888353647717927249359114592449706806974197616693028327018917993905367215171636372963857304550821148399560814903517894249998419671571625215731874454519744298657687475548840799545671608580800271904402415376045501337840540831986694808087076189898904190784891406668419632999512331510371971819691871547581432929512533654393364603466499621353161738932381609321209227631297640335105507464172978631052699358012036158686679763085117363719409358930757469773155615705106027137526019787019808629933819647902844568817520589698644102731551164356936875735227334672054724235869632379902616736364531844885437475125578669343859710522691586127415900278697077100904855646847642685314850614914178492648243830337590380828321618410156284883070115724650315235048142782985573742665916719781160678216624098393129237432818807536274701232144291790665183544741748572761878923416071695486894600918341384347143169661597324893567099871438086176091523303138647858504221593528702509740814853995071184268853939487723646509502499438490450271662507105898968328920103848355831904298707505202120109218932454869966496997660826220347047174016434695435093577439517066922644193757255797059050839927392189146298896169558045862025460920900802208537988221816309649537047926395783193621622981322976271112747915474884129913637704600364760721576405353606278806947079902445205902982860338014206552832704882486787515336294772101767524436070534987166384508138086836244053388215392977380075155302477734541010328119490693916792920701385719764080678261844850558286451077480878047132998601547609014458105019715162161760176056463164243581506205634943114561855429295792649803183515199919366511036492659598072690985360774597357030750594817789762991809995638239594137551995407283154655830879577885903465440635797409231336854686846785571159859448085921785317798546481319757413506754524483575906836620049790602808792448592177044455918016302594462432992012569826576346590870821912481542850423769552910913311972105800128618671793391902126903627123933623987267422938309499120881478203753865657525771767819387625959804704184072216265133759546666206074491737096038084750113778173371208660197349028344502722474501315388806920253319593399834849737985343367758328917352144961083298009698162998369827080779370802998269754452361445060363489497795244766817271168580384595776711246036000833256208766305740689835457611856746633541858694646743308235451374290277560637808580581588516079341861355945864229740927971265561061322806496067341333294695868025060647862597002464638194574595909833324267450407897337746049539028214397979542071656592662083888095632239787125718503401159683842272547712646148296724425391082911715412931993033913562805736471214655670074480626907547334533002162390028280268701078946647122671975031788241377379310026819566960871375736812737574273841729330589516825520885999862838830711124877099849554953107224105875507821530105280932343295391602257667284040519022521885345765151432168112836067290587274716216084731781960259806823695279125149726690973164182373463060206508243831828898642314160499180788106169660646427287786883858183568182305164035344426976045782679234795523840522562085728464808776789494703397123098551139613093208155697103162672597712172200628533190719098994875005629520117531746906351367242079824372063693884790837504270581692889585173605467334681461904162391418948344632341091770702730890872147022169738479651170595369129516823388405983656424186711545671253590536674999190031987068907913860935549794545825292173218763226692521020371929450744990432225534421987498075639599395006901006409473274582136131197541461323907968420930963360906310513598392085614100815528673783210930845011753794840783130444017057332185086915194719275852747829513087577319254032923387371599391979235055980732222212473018410108535129392611750692838446868326132157590775505491168822220178408023597722308522388632036469745556266873857177314243104182715895205413775237624356920658611748960849885521290207650190637780412665519202081232879664732729113746144556955229047429260647526433811822434891410064811097935319346796694572274700243389754208788097016390115727364653715787443871102313461551662644163205477261874254609694386106649360270112373321888128164299780135037392192204868890215814800057038464861611803219370433877860534504484155245081145387797743448916292491788453791358840032486086376964645223170845855646444357362600162845236813738200446249053026451053298722327080442173898034569085603220905601295802715787934931055898032833221963943874286677757860726107546055696796818805955197900475819865825032628243699172951531946601313950986698746729670248611654324824153956477772469031238106444330152026993593877680152863850110705218787527387374374292650095098207635702787644353205608488698400757649617337209053415671106138384245322367542291916888780431501906229811424928709489975119104216012650719340263773551132433834611359152616991495440025293786114771128626800940585617308269970835855364430415635400385057092340060568596883559199477810926496632773871368894139054399960563496009282117085593380329873498651267194996395848497513035390475683243112072281685377597694441271018920672101375858538551148825063652936958987149566568771110990899389507377188304632120769518137817454239450215379229990563625372220741665630042735691656554796717610946878538614862868684047213532867800667862871363310424865737431544640346704974379753850709188965939092626620459653654347870707765618868827206259072385287707749810479394300927487920806112279022695764158500916892544391682892490063071318724034058862155034283767240783693906921578987960460640134124016721890825568406803550021458725880617351641839565451667263665431756933736055552630559505421899240785926338980996908732062810010451816068947081983264598962464581911993597082462295636596464813295014570208398531983070411456906835726021775718659345198600635848050441440563502178768472024621854699695726275581378200375243179896592983399996595532595504704962226778393454686752245242442955664140359425296810190174919761123230112219346201780868901653267701716673165041445584365523215561335522167406661013357432571435782254738230305934453688575618676076255019188227061328113725896608944434736768348768070901131215218215903454351582274335392293191237260497029020384959970181897333087726349350010428190447245674591695590436120060001844334867637090445478524551215565218309576993461415304186235080696119136052440607605780526145214000128887641208078273178147339444769128388095603176366622179638556707533281821073675868095653570229872336704828606373263591119209888837218283735508304915125094730756505742636657796417213171930794167901205657307564778522230698470002489741672777450897343403983445248971699945304870059822718672799377166901234386696639359249057221704464601097590526705767436580421470778896872778599335265023624049125216723387830458788658454433473020533056237177412255564638010273531294558845260983722913856675589122163973605318322725790670853932617759011722932158161717834946473041208822113097604353607607988710239784607717491065008921484167022917981343017943926894325592292888846881020932550713518166150725947161642491671410382418991938650644358355295023181798845710697773949963506747420193120348736068717461476014330049086857255096320217577984825222238785829896264416769355322375504861654130606416743648752792294416389637020459768902701840125550685107057118085075011203924367647269270712541724222221563150631360233669230831133790979978636541655322560728396695484754029340906716687981766230866364704668038647980021090029812990654511192866526126075047425905872608885436274571997414651824728048188668877247772141861206442668051674711145680251652091849915647621472976155604082319609157224889682041045469408892258507106560562029501492243746110036831486844522704088259820208151877679462896330553517755813598192778903592080063485048630207789374458494936015564315773095940404065037142193331120192239524724355905672375725091358142781616076470020131706906516668485700606720859360346641891676858084370817313899543142826197546034315454912651017587935431328571537833147397191201679398686486990713483110998764586599635942527672614227787873541351186855711368958419481172088479219760700787679354167237066982447975775000410663192420371279055178534915095062562267908341553887499587154606339656898581610185034480385556296902368000754576669404757631145927884184350776914388012868291983797577191763251299145554683619426281945051073759019718086282147806325193182401384709254294989274334293595624936715100986843882504140410386337152654196450906909712528193886653063548324143139131727362192210012559312908895636513800887819920586073062298216895343451567736383259513595435755719952754472704156547565264633687662519269307268754245269419754462922233918637351284562466767851400777465968778900233874183498122166505386301645203255618110749277434984324721161442665020308134717446554152427733430808161093173276461821445248017465113117189561496430511789544085797762043180824322924518560858984716299336058516819091030198863286077573433382305918685642127594410189578249019847751255473655347174296108897241495408700118885708277082482204958932731763566716117043254457588270257702150344831993365635709528655471058415295445903751901541739615318335721872575427233461622857651987411719454583720766180140109507441176621844503372770476872506846624229343414907268904490113270822806363947800131597282443708218725513805369387187383007086678275033315461045735600834720455206160999419617243055824604683038814126605104568673969068682700105580426168215513780214345051121952611010819173030688612909864093572210118969018574869951695376420937881008338222027638358951193453781635962277877448143812370738863768497926679402556313391530774734395176582770264907443801867320231900294158995165646753889238003793667538888643957883394887145823461520096236169641021099007189755617949061594028256720663428025968753965274754377742030237486340237846084786220956182701444770745964648188456546235524805112135937083233460031153814199843228666865888885322405678903672177848384210437543501610677359758579410272096613743649819201043006190604801127374208542141729534041948571160564482758461407550116719062648052478933862646745460441293977309261887301529748330797040734722618689688392475077410569609514187181653658430963263797448366447944779071830675939145994695700730139457316661912921623948705320736146585939480620485021564803422800240383431083596370231770764050436824779854721063633216807195778764421705844199966347545764379625679614496855447059708509151426422290444162599718269592516219161742969284335914925142497569403859011993323365364858709915744215860829538585159684297251147331964178054309899569193901337537485633538807768952777071054129361265797908676489902196058489408175285863517507427840144315575636640855091340815339746399729237406299050821670945330914034111884902296629554045801586527561678959478964662695908057068399771940740496665032439031391228670690761561594141800574805120106058214414163278869927500034628847660034159282052967611737509692958866886788774819855787877642385496721607580171301595795799195751782747840322141941147035685593293893089847394458851295278028373409495994438049002783988304825514360429432582227069333341383656966152986002759376158609302787992154028660546432817999923252466293822160473726855221789806551969959282644819743539784750794614692963190694903142262996933992507140910756882352720285815194401969206046152855720107329410250699785929048516379488808177405694266419516402724557681214001075055172517651226601169687534341305335976580708338234941759821533278407698006381956319066297410239372602950174734463623835476078760676681126100856470041267674903284418187545020425054930010258289653289638227419879883776265924167292436507871337412063092015180696858227342582866630691175677000356081368738848949882776500893959030655629439048908033829642507422417342015063757423886699728924607195298579065970475654719262627582724281273794683589471976672451627522217144453045473149681772896898942137803652325971014330829385801410955514561787545754247734759917398335625476925156629039571342132713272191249107213223268873485334158818315504503925591453165308493359885879754538458141787948420214812933069189490331016453974901505697102558693479306377630060138145154025131410749207162071920958188588277902430048813350952646785171900784856055875536361966923018207500013657513826148385466733261501236011644969130995260390510275174067121286877832779862114584810150381016766625736805829857606187743761699969337268950600552536930717165704070504984966858025404274832499526103115512589892121777074229617992413813705368359325133079739232898777286474006057024760484029428300726391779872583480513896251024635067019007114345848508746335681646902528593263169755577687702939428695403235974775493952896555488200350176818039584630662504041322495966396038995406508119197626089440011107664166665219554607919890493355157089352899246954155347499654241170223301160852383696560732388901404656250620289083386158965127987122508923733000738198546463085055534548913546336082445114344851774958547025323580713849655163809912791907309841876712464018532376703639524554609126104659680431869783024514718097230341240474168133186859460977094993296166902018572712915629359308959667119425781047130063180401566607454669544646551513508663339631026035463614877766735263018095152431045879476036231756765760654104064326346414818253294712893189295494087562914293766480144363775573640284430192897464524279127719004951124265809829040004784313834593517088272993637781348211769720363045656733924691652801721276861187873150353422713404662317955950130601382609093023238945883242587113098079836708943652679588056954358004805171366360684659175601609359659589639754173284662449474916944155365054369627221170647645383765865763428248196522924207064004225678505563914376066379666332336387687976907818008774890589805033420009013181948786833392338790498903752427109063383202101156040286287863241081682031209239997359037653091465315035596797272292861230155097832900718237375198792633500584165903235037276779801820078279518676224065351310479995516475178344626970893632144338569189204178545370490750034984413924585628448717830995329024222600691544883511663589715247292445917248014275254652697336050070947969992735878131283423497624114429908156230917911363106085342217038394037843274385346965589705227023557260327663761651653233296571846846524816806700240959647940115233255037783255420224652535171671636475872381688907242298877110301973608795390163192572146735584208887135894098353801256075866451347692800020455663784720090041132630063493025938683171097723771403096727013789652999609131601784222193968866554873778629119602376292587751910286644460571010774046286864295666663268859903312006123806913438513166345361685867619656971015170163118727151091649684518165731593461895337304151079453542574672205506117205415794035097679105864219391622114612923678658301931580291561703506926252244678830075348801882376070606883582258786570982838735068883909564430427122705208963082066946879890849365833885089656316136582346351258641184715917623135748621693964286255541654198361381894468510200050502037500946155591468120744949084495256701530435871264633840846794773132423595109500850440492828901620393273951754981184304349271397684673492750052507449548476297637464134779853293449090472697643471539421706390955935259887225522717340969967060512799279948891326846866330915152448644168628390128149293640828323641429058753359070796087016221431611757442650951336998783234009227120124200037738888379823410088857107080608708263073072519995972014047832159983258726884373322643680292761387993926547753743780903881263922133685421410427327045635552960758658274367240108216138514065149029294489626586638591630222394814887782970808041958595990838642327196880558349101006400666037712313186811910220054552465628599120180103261631718915204589937384922115239668149744326274776966038303785590029737780917810914392381219484681735093055760480238515445256751478526013561260856079923346948633777805984286758111425430328488648114377602262659823311932643752130086677406389227580188732639176011493576197051822700509365996485610494444757283552992372425790243598558317099286935693531913081439124567919153029844986562807125510513905033638755698297971383884644031871626966380789782429696211563398049900278332154394210039957552901914097722962314807522719034302341929687500870186894019461796181885221724714898613128474721835141561192195307885458750404139281165257399220463146329069969594711038369102603199268451357353391967398397957075371961384447999985027715091726951220162208082361321557456824342298781609361562520646289212503117712872099475987508010212894327883330406140437695665853673092077549470975917331240577885311226173604451488295789926716477480962348224169167938358034671459535083389898032000872867217829721174178345472432593936461953180777186979399659847769730821774137881805411785068827021784937298246223497497189526370310408373529709028123252013873217271597960793987522403494666483519131894552757500999125328216150695339380889151285500482511889598023792383017895681617074534288299774615539645634648983089434963328218356281532622899353880801509166857780165664673464249512618784346510920315988352019954809229744365809068847792188041212184408384414957028488924292753226360383558244460102505402687544076634544385996992781576013436993496955451386186378726433988395240667255480158785923617675048759267553912814578068037304526183354428257178242611669589119560838566111914446985799139692514004976791479197904735476005287983405083933387547354065985447908359444296956637428272200530085744041695143626573225243750864245495326124279708719905910228572913838369411638317006165438244321662856936329952346782452934620909729402696620322398284627887791526512824639957294990126241451599661321658181746641728178105158151722474996866308949281526543965761313575507356217943006593895994578288076611812103269115971058359915662668762303530600191922306468511928853075817358270006492550188166444047051711413378231179034032550384623893730061393162167486518478824991613870378251165721721567464237180180306987634194474380795532218368171477217511279806559024060875558397188922201195657038052188425089645396463683521924431371855065942623097147827310385368023250458795776241338165241700221568486705048624922463503652698952989209512517723169937829048927873420039242883556199874808584729957144489316563577511935926122796849289260066236269998445426317845955137726319384239210047292894965393137811693628872618194813665826642015991163445755645200206890013521845707215335676951883871000040655027413091450437101418763104074852807609063050873615612291402619460137895735822899100775352620715625660295696735732293883248772630677939777127302209370316938279605765340984979592197600755325662283956434886204235489108035277593336524489782563073608417375290210966745123406704172587363562564393406094986597899020864728725511707238978202630947773750501321503985763193483160382014448556522230501387445783283439470745914555367655909311577080113327323869269627944528546402487315551698230688343703861789616163008395470928363268958780378193538099620620484058846635042232776751146742031955697305106621593123178240430095780122482199897548416792361473695747692415321338973998033826642785198067965995223492710756770869903626887648351386494589708117475111236184479192296612289756039232160238421943333447007977538087204565882272719612253679538656791744277589674867383990365517475346410287883395092288710241143719058535917357094549680874845835755232320697494747626266404285781450691788822096809891010290056745192713817251761521093816029554258307569125905964003946024119964561992681943295532697003149237218570819333042463142645689651001157801684002563002087894169778201589802437190215987439970582741178436814396022699059131014615375549205904701340650507879333006109054600014363931778263625481939934337306246572141205453583184943297988665766267126796482824243632235762548971367759505486804457870026239385498123641069961323958454902284134069775007861008482712205995856637767945874596936435901829568884494045126089129048986663270793883845243397430204325860525092802152095536550349116734920568751633782700300822217065186401290606969166286599748242005250321626951790094756425738623471601959507334070706231328321420186534406059566985889836395898080934897222028280926145861357100915216464537581252321778227416732745421590336066614271757342598599324101817074824068994919430239628449469733106754085861169112573375978881231991966522879872176448641705280283577544955195469924777229782590237870796522958611812616868375149466432319361954600891992711081047825415097679473884898304076460872568969374333142287308809448558951961423238748994477183918039392579275318618939512854862220700388089037411144349170367100290549760255730307142199436797377349127212006820134697612289936764734181166418545769568132058890960119882114893950275824609216153877963704407453510798252450661866266089584616235935577003071216319099191608712717162489419833186059312996592030202643667805063572717861160093458987589281627856059537870739108566738906189777327266808236421069437517000117226783594407085922887187143935451764707356453916674135333609800734258934968572882304518052060600255077191027022274863111557402434872089832419427472126938054125680323291952864914664509958812362768957148617582864733158217531029239785891183493061375175479717333550759425022331095449369510212268009109628713466990628258552872974819674359940469254585710980097001254315711086199304859641367009205618237568691656075785526529431272587043864075097300637594526414498119184555004668238903920286888170701279083249734173407522052711006341703246290295873345118314812935184437682516500681286484096012758708243621212608703513201770721028525287252228594817688598644001128917744463115699487763984750161340016798460560943072862769628470987022416643060052779704053254326013516857324389733470763847889134439775129127897103893986493414747544332294960417945515692617401259511839444482054452855245248344801017963829172540038425384465537285264931687881523119645781176578032982342870924661988020006865824981025291038065783554975295236764452598538185716197336729023019451756242354558303051703836261692337082056863459841988693745857004249232134502229073438303419706320108668480097602163883619971797992597745779707369901214414424979715739782089815589245413773701862409812526885628356055663950113136411202057654319977201350580113257666686156570537420210310726462424743612674502756080824765391711169103826013093045682904796770513397607280879640178360400735187327803478773609775849177970068043333371317747166454532759277532585536248916679677285622656593437723712033727483409693078095446480372960202775131944665104651651044778207211606728264384348749434847367894863533794150952222740670119838439418318335672148309868195883241129082387757158087220429827507825390018498186234309838884413528579966604455256507351825072421465665208986793490817955842430597621401246205539928076273023878397207143597509995435365215519762035271653063811317937364926595194469757819485566824086017522132462551646438031515489320870471582539800659331964514533614580829913257348158654694917419789682743915749810339664257365023600151340004112929289626716561309160037577186869545369686102773951501349205505366328498966975627594239110245405954163004694183996444886021816570832703417480769499701192848733478572356427266831523160790478980753485469214138547429471332626601562339775540311995089733234696159777982889636721189874468842742126110886599446905737265056871400381312088463567240873460196843584428659008597508298524959857061678916044242000112850379637399768505669217460401854731616737729611291023836483192122807008593336378072866400503811164764038003602817222116853836754084603278633844686213795105976490755492460578682207480420911220610037844207259446389755678904815348356035893575082055736763666427014973784536080905060380474548728395223940292388364746567664117968632861615567263203069761058546857975506040127890972111811322963454360209573897094560731393938051571519614515493128020041030899253277978046679695986848540300512419565045471261761494984087690102583441454344101916855968380884299832769598161809174010115956302281739689098200295647132809271948274230319647268909836232912812552322712526725121611074824671613299246615476892326956556809437591122647690767932087190099272316738102200532898009749477823803262934348138210181574171052668573409351146673400235996127154760355532550702712130522805720717418594030472926993180856824008730430658218854429502061658925361035166611290090903401902491998230943392337962319527457360374418114714703386020901278310322461012129193856186812627740437451455318272829264438829284302320527201663834088133866242618202026829204806024512837086466273818124935473689977843626541942810207400020756573137664379140757812479493190917464521624105877081958502966966017631409876932749693848060182539838140319817010243663314315910353021729549523085595490377919976408960251404497561945988302966660338442740223933887421554036319508095258375649484510458616422476147785417047301117099365269128996239835380202561639060316224690224432445757850486384147131438892069500140060020411028591422316382969174223177684471256436407466596346010493201781376668681413323155876786243569989747097577851730470541472976422704605367646564825795627054131773441418344001014048088488260971630813185271610828181865048939005984222685669326727476706488592854131622885137753758704639845502780826990857826094390802402919984656753180280210751540212961665802521876483603182160432205531130116705029451740934670263071289550727112931388060649540435289863688817738175633222807414327241445177256111474625773724501468429406523094101310532709992637005521758145890493973740763746471469369259309676322958019362386901406146854552693764376032334198851205896096097642896119444886432941250251419160543332678212032613256753878569578391519053292338705687331805407321928731304906164072620759903464519486139827668406493059942827238150326471826543868149563302300625242352298103731942625648516283191811412119981727732908430736546430912360083789320065662641476712983797982066524051697428635436172264924279312816758707476398035436838460710760906535661654077618764619778819173970556203741662801197728806580731523288295251106438688707171952039973784274376591650916878291712437257687501872378421776815561649217258364936911537659260892956298238466457873981321994214281746072619467276956520977395152668840357059203476398498844175860222003088338652661091833404585718143226254657308260495499242891095344053189383609326055216415522464076833089154614964885337315210041582414576413026912138258441648900858525924609890550212648175204342861729477282675469695922578481379260532515578539805108098415280565977427244652419354020956948961512938199071883112723526187353761741640059188624904060841387116659956000110063892334456555446478796280305208026773446568793660338260025572377220019377467472925460798872786344620616328412471545611408149408679406318390989996363672124479751599824596898852653815471203640973150885517763666187036483710514024410726121660844109689327034590101129212760372051906348343791500688657707412560842961417291262960128479981836163085365015497365034500825760286068404514348708018444247951540647797230818576427382676608347750511303971135738774911676227461993352689819487299391925745973603860560130116595697433154034727988055424973321001939158245412107519027213766388285077944839551259821639641851559149555735742825868644276928562957163324654347319904246474109971613416870165271783034443717020220072833457201778484560622355648046945794755964686293305199169983727479664768267150590077388097303879369645332472201539679033701701879094667978085524223990152941629789865499489699057529997023619079437640552022856656145801765746398472894458006077942655799655703036965822547555529519416040663817012257845310248179791910786159376079223138446840016938839758649470790483219462165745772164079326209865191947015845249511645884913372121801291404509533845244095543971812670096708838302150883655064616670519845294913540633635826535896116008854922821799237870742267819466699104487269465378550682285914072096107802533407799843583581700750713154026535957380796772594379480480038867629434282355242185986836003493411781461992339521696635549269404899592372428379298493994650495259566010121483370407177840826663996609297204672527417321693428784085754246340536552797858819390915787681105153154937026430129258016317080720017075629319000360181422759274906644295862938444331170820267483912481486301569261384945400205588410945935741805479866768581705498951400802080934622358238411288984030512179947913833166448424328091356006399842460551579553595795527127492777015930647815309976371711810408168163414385335621000371654591287877780671811412523684380575394405047543526567107359597675238225416776080967621904274344565541628161238826677258066011946189311696858019534316890756307612115370464403808733790551824843031833367245132950556175065942042880476113979693415193477861273762115956060832374373649773635005772578339025024074497763441369073672432608178150998127432321954192615167478284793801422086477337982961081055411388341074817910301916871323561642038416681283665315134286102346135662097842900056738833611893122232955745583082178705071289774280709896353471574256032848308040214768291490342619817225966626913923721642824908759261373998972642250728121749721371809390997361700017485762787332348596683989487061951705829682382492446697443847731533108096264880329362524114919521075518892871932428026088330364759004699919605790758455194611373215630184277648946075982066018831333733880341895300925477072628894816075187354884413686397768903807739520512316173518678701432884547767584300946230708466107335849306085566397571285687327972549195252029535843379740146911497052574227307638241296139878417545259513449839755610844897357449477432226263508292942055918739739804161029261428649583297178943299399225142229265592774385905504694859635164081750219041451133421018994385484882732138136306751522692867455619785967163571493500587394785967537313129874111859180632344148207476049544952367770928113902697015318227408945974394706977051044213971452521047257301824231471522686097773675331390686323693141520609857373869454400058093283572909629720487963935447608563106447598504097535019388880830693199057571526424597113626944844164841887191899784218036387284123008631688610520129144985644102227833378434139221320122529302727585196373635861506678606915329624179495545293491479529024855024486407459943393530079989386849193433810118005735947503868486220290985687177342103795588762374721141890604676593210571432295712530341424644132139024587001730020708133132147137113669057469465274131887082208465347710661779965135996265675204442570514629053984933078716002365332067535220091355021804237256690417449966783670241072112844134501466587504265940148458016852503381299084392405168969882373084979150809060544942970426805199619780590650844378237894520165870540621893534065928199589821029755130344280529480330804989193774877815812472222240000690353393846764550999868568349884173007413277545126296918594695865659302541777500767207115431932416536312910181864054142497898245041476515602663879288388448128264531428829175037610081649790512366706785892043404080500792717356939469927474200197104745801440615400539657302817026698569730347706435868579783462010912889738564203117197700638787732982846421156187246423984277127256776406833594136108407447587827823317818093802606633006874557277636515071984980924654240124436246539863010324760466315527251136329135836381704538429538823317530313179331275234432592947240404914682565640906255518814317658646430391832573198564571739821667440327894563311143602708069424362999682329751246997960565958467964703154206325599010049959096948055210688087581826653759969466899701907062176860499770956136853293096257389763746126732403664245371031058091892891291194763370307981427383634664517747384405675443763173427341008359816205024604922848638043949124419421618701568458610998116583888422184081060553151212391746849161480659019614783003953553356624312702067623355307661826425423653594399065165178290868324508451559575902769391021493567148412492109032807427659585035543915550451021032087263929403525178348581136113182795572557349991231102315822445995377443175126302362492309243361071582437375597920925209271782476806894307205995646603475896666575751609322559136494160480690150352643193807340840638613300251937607193977829921979849968894266972067886986050500856125973728264018812879805483371287773893505073692125061379330724396589107606699943885243860400415752491677412422359203133375642827946913263970637711915270200864135941803615230997346592708265073840627461649696980244903624430634880853932252720611517012401731199422614198522476994502825091947440109259738840517387921927291377861909736695503957374022456017720793815308453031934789839806715425780250392428532321419538068553407132824255378604755164312658126586338016463417136995750602830775701408259368116385035977751384315800579937670125216846228217734298014313497681277391069319910844610198347930895126253435368594194253420818306871410251778933872291317864203398106572051096207016371349634699309463093074637122333940853808646003894703763072174719087436028574155133752777638667197831048346868130723825046285706667942819292709696691348355611271237409947035588005890839623949465771934227014072881411826999145473919980276197784136335104787006500666136415657123081229197192849019210264147895081874951173715340548092915551300891128230305383918952436782317400990041594595993359077636567664019682030184030674966855989875391039898852125335548386743233899604167347338474798050166764796454494002727136765919032817785024234336815975849941203253443953692435918512209774535761716277736183963256473199537252536248045077950752745058932463133814968213959394453538965130717939425424100348925170920782848823410058312189971528130165588032342179700826796648811273111357862426722174717678180179360112278016067023160412387989353057973128189583243846190928898008697805961717901841937697530821599933345424401108870130241017184148674345925069745026609914938192827204601701920764159422222264465290705135875917735569449834161161581808456107159056770335311550357442837380716953093039564484772701632578761258702397226311788420175227111820909894352923909426526467003228118757372132268470112754367838092212208397226488329600595420086729068877729637690194158675017859890037827215540276937448787149110113898417447336359613026372624244208373861263879769631083012811209558751299631109342768108141884701605311600603363151220435311884845562814739983396693123772731198408571273059850471421991121847976518121961798412417309985469134041380774660469122761090607864254319976711065524813521810128147389016242122697407290862832930456566757428696549288551010666242666122827244702180899109882332850902700304576929521079545448309520060051415555652961426793346499876143731748577109378317521256418888594230624497847245202654490985492935631372808347136960536595051878043670101366499521117134080351650701761563194027634133658905944241446630089608701756335825530492860934710501734524931756801211358545791407934653378489969495778806544317620502943792426785613317767887366260524529373924331008186306179683608852029582717676692994171428109292998349978329525711727922897252281896950738052425556384115807644060447599800069940108664658610499265591142413407047947413367079921188246762972250474623840626263396355156369913075407227439614535107978768530213716955701523763166453590329470912675087254008790538125856927604247040683214126842092269861696405684520727464509715000575967282807882304836820979976058069425807827865493363130667244484782962573959189431542987346786808370225968176712753709252400166471905959511903242720355194480061167641913411785601376012090908431008805349803288017291603169654492884967519056924856194230932837614227199540834597803568552467608426931541339639825603586442942300902564633700018263158310961068190267136965411589733870591040854684834940767185741607859387400324867682493033727733239103128595977873567638040789301179378058437316946642295212635292913976239318276986798318648092721541437803689988308601689790069186933275262693111907067586532227247398737332219169253589279934877431538518610808310279376471812766215811635812302446215878505268886516257044227984684931002957763924416994921845398062554989117668532508060989645618059561796453218835520145151589943748871243830641570691905519729102059005791159702688892569228565385099989374946527449214414577550057226782246849645569331680482279162264122423380162295679884403667160175767525405930601390432683062905477805814669960323741758730905378738728470217730595659881607254367706453551546499975601196516086987362374458207109017598495158132826569240369620854533023750888246430639900834761475356267359303199444111450912843256567219532884361547310177999326378929505603040308577621300465767403974682796538733523868259424730687385914972158221681080172668732614607657375485939601509108496701779446107492842056115192743351556970548494420881699082747398433414502596805889672549889218077536135162295295958239344244554432779237989475497780287631927073204543353786380314548112281162311099003937252281393093744752903996735385823363315056214198824356983752632920123048316293431511233029161256859840581155093331029434109114992608449629917735261277840593474667038493673820662043003552344303170033644898114298206110377897812967647109536336672210261096306092772156566251065317109044269188726780033917174960162004652676796644623094876097960850353715698949223849421884012518210656431175872038981798928148942387130518710923796651346528499548151801359601170684879471540598929020480382607185366320412374068087383134419724645311173240646552879642206267045097140121749257206897074815652148686127854315562567503341257282772348318244122930164273392763188639441771980065544723075637033634995778726466068110515600997672380058961530526208150339040976540291217940403370805920376963773721063982474950703433741977861897547073143441143914263483377632900107249128535553141926863035707179964016143520188045810912080992302393966557976059417433347938567879385224817666206650970589078091770350332049711826013042422318872626321560082403264537967685651511948475280297947766232369578886021152707278861121843013487373848314917882033155504711508124531201560870933039317175629032507118160616896386802316887920225049616014743606514010367632325912947686446916007632718707688464205658465949281715282331755957882731485325453124567803517516517275588604678206003529993098709875963584951956970224036938779150093714912445342446765754471817831729738205270956290249214120836606949645604417586145321595430404387991269529019465375538578678912215805819270761436454195015972128512487182962364724028655092103657563802273219522664258976743615085189513729635569480023158988251523277877618423823881743195759723574300643084197454121689101039998211737552658994674338925830496799051368717134718353696618718089998055951413544280423341663875135342365155389965567312935175517579816601148369633998907355369472351133079093601497263431870891455277391000340349355633330900569835884587327614763789183888974677055014695223447517828169324655902270928372463411757641553409527285967151374564346462009741167629801644760152858614581674129473040368235185059915904480090056829165161784729017516585763233358671244956213608793975514398664149934209451345702494128147657162697026605512716771115376684549611815743889104969641466307417946603567800024827802052363738536545823244513586296764741606185514694782702225877978938510804281056700157731407482778436951968727026525912750856160621307565564089184921782882132502992295005154634795260664697851681836237988354624329675305896889846124946382181822849818616266079439536996146554112700739912654449298753831376488886303906866588616717472149178026985223700467999087735996386439933612190276390477255137323375527343188885498282364864391500081471263191331757485273888863171826274110140498325016000789500151038287935210929102262056295610709803152711284539831472030822258356859758112736110597207968751139006970720501175578546997934468120610838077771018310380013997331953870941346162088930530642042595181651136161906172798911209295715073456192606546988396804719550676851763517110769166431503932151829761224439712884877472121395552631573597490551314178031755161741307889807701899816087339500747799997516532705095886710927896774651419509435362230986390279096235184586016091949878471812447060589918307727654816401580415982388911539820036812891235172667663440453621242441153680124777031396726023043362833112798138189145738744364219333756801543239739189226574127731104936425082178306702443420828963612620360363937630511992879793317487389515199797072586784661670995297173574255459218236803286982948484294067917052029808180041560332898906021618795766911094363007410452725742039118041155961248513348009861274010123620917495058937514607584102939416953594273826402051811194490288179880135716166958699349409215090761151599462920301097349626248077788474410297545116953013223570428807975124824913653328359457381383727965785120919689406603546988314524716523133856821576900979408140524848627613191419707858126718303247136834901998698065128027660496194941362669261556812898548083164096857300278841640795486789812407635116453786705250443215422361865699036516982164940610058335883301339298608526866103328064154707659542915710964935452346539615917002914612515973071874791111574786886964287860744195568426510277141908198208417962768767048950747444703533138816773298258819477055510877107464340869467530783728592378573774857720002600767540854068853179809940651460407062568776381771522980619876204309923507491246345317853109032087914052029035629944683051684942737416519235906426096178964307810479879071346770744071193100784196168032282830769328238615451888664272974906785887538526699443630458025415362911600098627474999880268211229009672106674408760259521799261704872436310273523182224581294618326415769023434910772806853749274476450868559956255698822226845130345590490964278389832689645585321743635813340068983839920426961956505284252360177134569738597820758190680016891188290273570436926070650633963927977611430873919007206211681575200295447661975101895911184024654453089379675717802949856809327146467725843943091389790364002133174310857762432478756959464092690288624566090677723523170836333509506509595157359382477941734495399833979276220224097815049734557592948155053118688788389947826735450880445637335786927269894522787124993952736644240740382534308192418022667341390188559176872940327737751921249557827615922430551146668040485729979957025515744846236414870644168756803770193989421182531417580608791516417896079496891232382883517906338399197812760123872198305940980380141712640877757812223296267700529789852113809617275189033311736644805484259738620128052795254822587154107860620002439798879778055843023862430348595580749676696893114418218878380596750587025443678125115833923765824927565626326069032705337949697766290965675706718747250208655279006938537635927231163260162010961411218275080060638652499287458718914675925694842154011383704086549113830207459365782919211751097241097747464078386320148269667415439062078656165791307056717460229070393092030704996146851300540049762323386520537194193230669400189722371433993942841513198932280581468831538838593217724621600537873110204134332348964833876423556760030811201202060373303393757863316818182180494984603286210057206396124261184998294123916700123945875432910574996652014807840614068589956576039183392995212309493749778305015410306864970502286215331191643060136343911735087357977339188240118539331861266934113691519462960457734744367304216921262820412119086625334771619889777534846461196317037538489694455328344325908248853663994916305673871295309776559233865233810937628444111234677717236346987076312954421810429199197610840414069212029027308199940947351198190632468623689422744633893520043543921746519310259259510415218306559009125640702838481796284547066871052840414721280290823478778804206765941829366635670978002647077097751977254339897972668772211958148115894234554627020237395044879451214365291575455704667357184254712136157606815411460528148470429403695356677654021361149577116899993298620400929933292824105078409322565057657443794161832802065475115077876167556172753251189207582077558415130681420905443101920770518807490826078038630545921606646793965431200393286515521201646580733949846320610757195809681264181549547552219267511002806652370988780039405005953900530526353921848166007328438976543720614285884084259380124796504046665998150512157194401530841991282635988948454916751738089727245373362257116732233574486400905631399512121443344768724167151817831277249517824372584992292903533913901611225401257946549733232260984608618550169805566093567086484188381897383187037902184033641703273159336241742510051434680058777828117556571777188601108860329330184239410445259973550251442733463402138571132963924940705229504773740529527507722805087178966898013946990871447158193130198854715151346820111791345471653341326383605793978441579102026956062650107312363647297510219246133511725143678089611392832147984224440275255436227845638291835606631793586507625369602348988111380823328699693580102566798783972468598830674586389681501024373579333828946543565580378229531774288048119901914073125279472155615956120409391485701281452233014950756129819498704796183572230435462947191944398174533547343781077793995265755835132300115199239083032041953327481971903518743558187762994165726967820656005434405236347987324899618257734267341175098469425829579721501588752998462423349324606018301386638177041503333007846084233009725791244406078836289555319838410528779990993029027699031169804225690578771648249012171492551331990292472841949039876879675603938843199376528808000974809247607464625708568038652318026367600228188522075641289751908501528841667066057118883422381909657395149175584641875226222480251357169977194426536852729062171184905382593569511532049757150197554576183811288429327549410749300716965525348003923464330810195309402748110913131160932959169697761241331982285017235950037224013853490678555295270602383042837565905278849365723923609740394095504833536145004776296624135033664267413231721277612894425888476399771773239313495445499577221614988409739079974130829518969573034946462280609851416377392920560888139439312232244174017189479355183895219508514502342334368763611325601475238432655865875096967487500083482049405545612257363519542573790437467242162458601089604308614944991757930031732962319045454768288955160873686931813065131616691282064270659177238887323583477785535353218959776942327314377783893631046159024313073016495280230410502597026057475633879775095241388013773970778929305049903492166340778115077395184582793719424391038032222582095635771389832686274395332148297544057671327173962407091185685900864291563983528692655209709586279663233820135945153005364007366732384162152039598085632245262191976027164617949875789571156343205505365977527439012873605167616196469606874780167381746907901878805852654172016085993430473109825840800045683055886614767591334752209025253722314264393158455220044586426950544615637131385385875604068076283205248671857719259860022770965229330465633218932937384163808036964056451722594198589619301273740384412595981097199350700056243365034497992403176164090531295477688684046591506152405215685328474495472202869049221475814077789589676591317495711584253021399690343773724926005585727231330666795046645157489349262809950835358119173167815163540131778672289227878177404281395344806149859184429809753453028593996317404739632250971636250063016636011102653997143357075081609285195364462944741993541889872904673965672709643321535829333439064706871915159725803723289805525770603104082593720808555550427881427740840768516886512520312143083730118179752567397761702626839297078882993842630717226500861140528812268507018235359531721797196206346480967144905985995648598134127685288654202958225738891430814983634191073762129688748870509095536121045598074901628810899695161296309769252111860451655000995125142721024542588637736800663475897593653427314158643564277463789730426026808277124871167302379946616154888180042189814431159399813303131963343333425596670230286040709394679104711733607423911843720769951328054935689621165962010931360062313538104960907230513529856996129221262641707984066856845710294234536828850356301909031346257644026506077389267786413552798505692383902207574299201198863640261961696189098823752300593446127930185651080682263831046149630315042127589204328648272989585722657532608483504412014860179389749175067871506084741609421172454125102621029933492584303028064276617601796125430818461550586517042936087042689411594335829995437242096491103387108904838736348743668125330068197509983791421565309294702908590460945467340747273890685366828123923694028471030364601795764991192242224936080737754883589407376163051102003180881911236111855633634830408456870048576587949148937331032289314444247480909571926476052226972768051305697000440012742555896237501789631578833514132144356033489378475943884558481713119847655084443286780389367672599926936303616615928228351697318540480798656422537673198225745759987038360603112798677116626284962020362542815876446635521417569564624490805493028753849362109427000899789896178341548814424903725153119925922689629812141792502580761221187592718273148893102712051722488971920893336674165694979465198762557285720522286125601793486162608110313817134710117837300597293663102558234939817350421556238441302474208693133208498981234679557628450271076415077035504900466589135391812231609821595284485438916501665514022284480937432732297489005973437827897398050036720798821712572919297872494612997584161090412556861849931211601614496025567959679425987624183017001623880875045340333426089953048315206259074921277593463512367732661752714968571151059860381609085551195545645413296813595229364817037507536620518384730226542317154992320233442223912116741936110497499596308995593329728540044206677505148334931553750852347236708997213410361793467067693117655974108332982456938047083828593460074479366751635492504285639928606161095826748414784958457456972953533116241293855467248633689432673789444369050075231468868926636562007301558889034312099908979756450338364193662663484921854192269701849485448904312107945056693452509553939522753711544342892985391474167505087512369990434428598873438675168400600645895511642342399998820418849908824250850336228972074216125440238431197779833652869776375612277768979885592928434621884607589542107685041729466265567052806630856347711979690172575813900454050805506923073961577362757024615986453243369473657223507393321346226529260507291503954493761366895725303333160069632502764595985930438045649752164366322489919017064165220690364968229580595560498231785949054788429868424622853914643419781286648386302901145350604251828001847498735969721465009551676421943216178366665174330121087507400249044388232874980302272762688176483189914150667487708134752386664673583994156236333693744183767385443644681179753208135223523101415959480476830374239335217067046098509311065763742778736345351953496648006662375833679121149464577821858123676804073298075123948992548851526812352280038694433652341442059196380318626459402919436330872336794514772924854761634042467523148591187042573816946226183358520343400599296669734259820521253248704354735241765905817559800465735018373819385880682336447948055240912982848617728492071293698246257736013143401543474052652058502119159765563865133513165553386245560906388429021118251231775067618397481502465837584938763784393814484728234068387564139980149837501026053625401775413211927614346622743462189573811474666523319675716110309533562701024752505175310540585287337291987612989514279292420277159505653005363563395143742096572364368989016741085198830845330863087711805859398294587350750810777645588010247473630554079478593614076102688655255465303139623520185489944222021480461195433055366027857432831470697115237875262761288184195475970921664519477622632658919417993120500604502760658581035329617232477583486300622567596356969399442623003531836508421812866406436523826849400690674939220253554299637899833371677403020169723663154873362761987223800609658240266125901209781109971559820108586282858024158599258554107896187484486335003795719489796501360373505334092433858095534902506659732894733465943112221281292567906411339915956207882033607782410292147585011734425824372240559685834647011416913211156696721214787036466619154915500383615059925755312035621606326438891285823924452124943844325842854272739548195394777622802967216594005042879132586315544572525894303229923224062195657500559086071076992645325314696824640042775816901555924248552308418470243848679577163765810697182144914557762164468706277069298136338327569300037692968742939477313211615662023928523815579762997881990964470323154046412522058263001940725959537557855190228286446126237228328245679713676800978638283265995355075289874459866322106510288082037580470664319956463939597847496251432500962569334586085114267314325286202475573324782146544235727507920587241701600323868762105262698178157036671215614161238956327224097825583171277896829993134996077843620581193673137893615724303161681365955157329888617258890487111050750209104616604418446053256065600326161995054635787246030534867586771534118701989206531879530628516744851126594677107928708875638201324878627502334906096367334844154529755572306152841054780300316033471184847314097007362713768291587479969059163133717740266618323207512255408160662990294570105340224077734420522079961790729883159910580867413635293512135424537211523677839759569406816173708317524183258153636434264027491237767653552457816992245660160747239224452344978627754297415164037284268225976118226123735472116914219577330306277826919128813988519335572082445639524938493048220684199967936807506497277056142723591812176024102991799095884199141737062776354777573656616119658162993492456884351383102270483444528505388977045337223510825338459345213114753397039108119649284175945219892274972692967186229078652813942972521016244945954911763875620993545125932792704677083821341842404046118244463747213532410430945577778419517624493667911243388575323887039141764230040407566908086312975046852006907906711508841054601874790751318627136706134883055636073117340551680357102899067096915895669536548562078929888439096347461246630484050886244650132043891777413166276649158049786723602518776148300265562875921641904911628835062766762070732693907041096304162641520907879685214430989746988525601258783767154049228515761582850470455585771179880582009660552248275929888724615849743359961270537893013208807690239389127943394168011541701805509864491960552904509763460832888778921412808593487425076343416937139326592929760092967467857798913114399805604593784196208919619396045203425698762845831411145364142895275418952113250348998525033282258195912817592591766712523537787463273142933936818397210400573094142351229263481069053640733678846801353919179338116444442450841492612059245320842714908464231346161275665635417457696881732519869728166120962060034123175817735796418411714674745912315905764413749876553135443350123049049831107399756892049727741892048282200840662084714803860431730522395272604018854041677260325190244234496532424113044108624207043314424471739865109886572908469561157077824493221071211724683527199506050120837341296797162878002787952210126006429345859701897723067261886632778132446072020479439280852938963116298637326076820607392471945674609052076420055722333827876541971875234721807379182701503911674739091912545365555838106399982815904378040432900929314073403292751001691482171219041005569251858723411374352636456835050647861033948118052325354027730573857126177940138033128981004223995658932059573687319873446194942250908750116708123457524402761554845943387168835874989094070040643833378442430178842571619152502829106576463245174988390240592711324904718429049450481140437620544349292994914129120041733365754873880673270385104044463284642892303684765350894016756003217140675719862995646930712142936033244356690757154627931083541957951306837261028281331236739224941864001171946685965353392212162988561397312732596264961037752707948662190699143679338042831664142529655639511047307028743747788719737142988527160692764494126074933932143134695595529940122653589556651624678093017765106053277700548509440847492266812768463823866063439567567592404511669539316613334327408551909880162507170588211383373391636659407609667813273969281319641206501489166216474060783728197509777369033456515043143616908911549773526261471643034364121160324463761897743790040777445265769188740268936770788401885276285942922419191031378988783749532043813124965619922330333128348479720815523168527137823357369091783387153827545642359498592357086917199258015608129054849951928332348382920332841071320551419001478424214371444789920725091209609541678185411572040539249183361434607727099358488148621287429308369110852868525073160724463902546837406779991261208087459853521526385153123903244051429045657164499857402633080907318632671733365469056159059390007891972393879168686864346182019683720318408674268325471556825466383199442149250590877392099218638611892219002965824758113242118927970019993568422574523836704244616661774363246824841680520122294835997428330264578588616968646154656537515599172917407040851501056678892255336594055537604014679366198519564368121587797189366650470542028767567292785334624480918249316102954509980314054302572892489140157005609732770558608196228893203744226867811178358234853384866003499372476182780487350357846402898567269557505820905958149558001155617926706352314608382859756368256196498285106214382120262841363121760471996261565962363760885188504529256349261913340644173829440074622476730814571764526019019093092448914631928912862846194275496272408824126925751251295172893877419049958334490289567963677888532191912010976007948660312028848687803156852489899103739124102506205015123796074600027751040030698612447921766892664389728235671365884906026213851900730020944185912859282969563138359473853648781102170841928040181552097273114506425544225444793350370934105763778903129044808149340364587058865071971303411643469943808048050920465434031420080096994988029890910366360245042211918081492813700227961239245863781479525828838478250810285616168932555231919914815117784928874907397912888186743919851912230051703167388441321455634829909715897780215851964295710631177110220387268473911525449096239724471117544462406165196731227599643891542737200681284965939393320072639979965704272836209574386968754237147950390992942012220485226273057041070373326902541333430290787159809074933437220693780616509239822608138956162106468614553602181185823563465464172886074696478309812335202417706557793468904503556002643262895288653519428403242971647900290551554548188970417757417259651800780459480558854817164892307342676978234479120997219589583223702937326090115216044145750578320046815199940450028798069411035528916023907050908738219914834376800396512830924473952354927157979191591311272538093426459097797444520983568604006667475011465641021701820335567345667162779879165706722317764449308271134229938189118679893007396896907529232379650570484319362582790392505682526132452434471914057885912575670465759969413922359743201301408688594922647870354653882066669913622871617428381507185882344196040973792991161337146128840761212701510390924033744642343393448290560302959020446433291828918234568586171032091660954657993257523718599801788419391541848188298053864895372220546762492604961739385776927851970251564764062042797540138292483904976317739043940400444724603112314027420511120664878651295872417018774791678398427605459936458218781912692718086612290364267236861875522361548248491978894551505387386005962113524892366166607506509019934294907420261546275667250436783911547076014477853746519755752647688858362888514893333997352894709016456984233984682906289723662601247742367085318868547746209167214876222788487545784514724122675760351925391709225966683188912216789975814544366223229134151078572921967761459997959967845263721833174395517160938350747156837944469110975985143998114821675080825086081881292552198116831276778941521020896709275258222669365039541362298637546917503147680071090238908010230813446843718604565492068912029975889418760158447072420032722299939598167347362438970656652097557059355669420639935663185098026497804408133425522264756377555432234086872615610702761387216550772744354929316768036543472314059405921336435171909551660394969957922505163418522987423592427960715492298849133182059212469589073953253066892932600909113809755628479211695138085836090164918037802534425140132378688476677308604830813427685449095597359701603808227461616618535665528876828156497865840535102236304958594809361108399006256265455502369229568370205766524405445266366023205383678800196629411916161800420802756058850087115004908822772947076409283964344057580917539817302401067895468160813176171456627994448336889234697712820965622826171432610361069675919241415462555952483137895515056593196466082925790220874816501985933448025850379673462937847766910675302428994912119442223070879649942089757308031630260277087595825406578571016532766979157760002073625709513170925884235751540467865267720302190953942136074358700737786165641230996164492673570386874925362023601781666180066130558638502786655213045437137848652243766439167211995011525772208681753785964176553523851921516384597974708633915687699994115257671256202872276790800133973437729269315377534286788677467004515993889680419655457937954502131233246942390281771701808080515364508661738123959945703917835831738684226147148878695898365827513896400767177433256639941926270243622096801501750657045238601768572206054869339973595410838937177764808765878811711575389695842137817264599886235158483390126777492216489267283775505122677495344271961036185371767158620009081673408470511843988996375080717208140840997999256154947031283148230072356459390094081315346110550040059571121391422223088554797130852198205987778021210022958820031068481909550575597614703114183540976402321916876148482631744573573848975195871871527826577549202100491837355684186285699515321197691181521538822184906198091923300518774083714026924994715869941413857476408417132413800223809605745277751374686663913615737770699554383648911296440963439746641961487938707555203192577945359408438309785373165281887159685787689925183985376017982421617617601297645807046231264643079930083053907893251172920546862332567009672533740065333536106530914319361088252595677615376667091255389662115914896387855698147861865158753325359841383550849648092012887535847547102670470081973252651738526378870629611811053204956408836339934130490753641097087422586093387716774311913193127821780383386092258889770125318642635037537660584203400032699276508777342777245562132948431939965135479273252032070924602046152158182866891968956330087123432996584070997081108195422791909524567822357784853547908750608026102664831559952355123414083797452782375657263046945246110725144308130046441237185834929317243982304839640734657926581221229804807323750888622529575504243858074567479937044285715508588644595595786937217589479564048669710314376817882299860249033833474832492129914430826078928014783974673695117437804162986149425364549687529945778620338184651559222644867380469041714431757370890385950223300118548723912257288085633211713859866908437537285917253430083655564725748690745207354513053533189222089956984711290256779405280769753699163084226211048346325596270571323485732754060179428363942954587219027774850490486468519585989948176132632587897138844124744469769306976342874270564992796124148012470466334438489776888626865215867717743012470677896401189678478087167184980055496782125345424389667452562657697455004257732089138637148536570639613563604121958252269948956684917994809367058228667951718765593256012685899790595333702611021088273088644680177230621199109663520981726232669320915522499895399371137431005575355494875021800175702911941102285527614425675910211210387197829461574913857635531118952990724905535213434896403503035265123046012691241784253514028346034122475545719713445485401981747291843059530665796747618098587437612035112088246785109277794084279322388182331796861709512211619040236801567122957408567443985200590973558813336871184702058256734553551628016763111494625395517159901586834841005065920272726558802110361146899611394545632868427994780699436719556782275408277603417604492970160897631170670882577025087913705528237855053437860493001212023941482524566701176860224514844568513546810153769872769414507451863066883050122798523959000478651123285595232253771004609447913747712826031645380520960413219589852733332027239190840321181999450436257446769015018221126529997018048053779729315067308834103182531822120328540701906244965149639731238699650418883233249932646863093201757571624155854217092848256068243459472625771149389023716798205026700294737924060864767787101321377439589508705519502343289655673322217362638625683865691936449938656350293153855879019569427795456504191313810988859258879583241609830646992789796412255085999723455229568443470142653086869285671275637991376623632572713083785945992126506311137952497944411772163796640393819415615688364760088844683423703537122669526437204383679286746974831929871743867196677668224004877170656432643579104085134625674660893191725265431053982797039870864878063404386226027938463753786375342025493771501234690776116303172698091369696614183688092249249748765373011621289779160404886781183556310683198844599655592741699213327855496446071756391455922548175044263739886474014667114679160898873664991687397673672432896180841763743826139486834972861880610339946905203732424282069815882583445418371983991379177522060407791736002467600931983816701869052149824935256034249605497798534830819287749328954425479254490061060433706317844547633886883794031434607667247548377718944512942318157820820506781943137334765523719969171034875248604693942575879674856112884634044055631671875796250720486462619430229152862512824937615290710436437891134279319578324819755227595855363467290758176266103037347219896620623756252000624083720931444905182192319900961139970209866383760237742498300065510846506663112339578948713438779773991551560771392282579336754121607366485928100814849882210125355044410522577435598651216773515358587777426941890269288344561101465445247424487163053362727977965638025132127473250365066949816086368696286885950717186461214463973016382535337351225968918892629426650372442478785065570858326150684433881345178692314196413108738724907985542569670799251613388059709810193874575463563377099954306790616654312932647485395890143235360462770113837413231550298224742727871403432383412933665042688314336592387294846418774188130272692511258685210860890813006454070975644252483225023416396690897504810392483554497189396068201614306684678750183574604940779134911777779929327187324628764744190692377153126995282927162727984140000183745648255821265586720293815851844007233039759007686724239913381641509872574872936465418093554243135786952568155511128271046362965862436339942702351761069875027673142592804339629199750616015987872169891657542822694297233994935027505762062336058025366064681199570110172641753266151735791381441114814819494294103103885447670733079761884988824426871892609036815372315173226268322064406910541286209494839826082774274624276927785088898696202119201559037829343606323333610524381385456255650523066611389518883032573825659888090697131363208308464067920143890047612469598781058986221185424847823611930974868721674126083945547123065186748859251809701978474197586762186645995451397649637654912020024182281445536265631539741317445495470363939092898106724023546337604644152774273324179675177528549558679037281523976205739229235945222141570154142792134342812625753189187601034892655214174679085432724562890910338447437257829636563746106209085691598538505026585084170727568718602081584633071328202058184286425160920751878443838367164927246680387425491580945447966431209661049801739573131358136227571462057759944925139990669706368211289122944519682955978869847977527594201714486079867523335770715190380870383887612954576924329950439248287359538119215783686042379047191303705305956561937905335598541840885330713253033285124198787425967458069281225310694261287236099970974194630694850117594821309097181921979294196676536545344221986426570788966808335184571741220560211067381242899080644773354488587520799370673394246371854246234195727678594820155610608477736792569032386082194994150589366464786124867620226336332295958443485962641193660265992285826883782009833738552564537852904402299413184393854591703764367034750802631778536129718328744126169807225074470714648583740200961932762561616450584161225653814193521681912496981094422722258547843058144471164954089794916777025280447195786334623086672180290357328586029521618706379509858681385849864312372308434262882395656575712128681573410384047243306703858610912595209223092629609409729428957978437644665155663582007445252187776518311465887965577662779229487794304426739294577599425185465249770486764038946007233570533698050358166036536468486974029918355027009662329232708952358292404473430735512672752972693396887750589965271044612793982098268316832307282732381436923664910963603044741740663706254976142134014848069479172800498111066240092293600955390999073594445517974935846398526619186383595056594101018453677759373070586565739447390449255677495780544361496052572912261716530247153338055056521266399196189030169877037473659763800620654552009272465623491473991781789713607526303916983950847920925520126985317878862539315850423341597766154601589279436585818904537949811889439173155635714462999395672454436877910915114049309436228350602075727874638048180742857915450794973335347772660754842645583590305746335798976899307536314337635258643438971371394761638902033417551379261999711268603888025824060503835026706034550833407895830121879255371390354609360423907618268175526106680252312003563117608131049674236921208717629931662321393000847133238227177245686379028482191851020405351359181439362837440694548122709004877984031300171678174556119471542334059107081691109113469402242839736534587671388634170494030664721171465955856327621699187012851127798671157620568110845613503754976837660772501069522202094264174356058403272033940318245269694019765817166340723673006390665352502278520793092193254418632962444927019203341527162996658231949897673335885780732164709554306017191449667974902200716980208026568692106223765141917874649550029344557500824474457418991967864742420905353736389472400192886720039397556448456392948336031711393311106115527223306967189643934481340631538888443767866347426159446788679188038118697106600804442273983232478418095808996173961341338239424404269109112280995021664617199312393202442266765979037016139533558981607222593813773834457412146034335427319872266656883860768444631354131638074333014710750689272060460007958794686192542859736682696089622177819009918488057861104810188331238182161584180301406812076664048197517572825793854843796145150598616085495784373782543759999504893105055361747109799659146106346801127410448730163118440706435519552342399616897099061945532868315969203992728047618531644348154631699900156367929976879337430981042134180382567609402481784599942119713848307533320513567260783960106214840812520521770855868815976689708533847561508292911002389265327630368847031338070288719877093014013266810159097872265912033820729299222553339159122222739943009962138709384735031984360198940002065986346998490724010679604824014890165665458307593348734583688822563878421876605359295871043658718096254930266234446580961626311348849718534757480241157928312963153831157786058379785797560609479919767612507069175365476464959567724725566118324508078016300887192037975045703261927370926852859004918751431151298398900006359405289049395179463479808511261773986975511226575027771428142479869846644541382836841559207546055466713220716541351676760760685822621763988369067374627141512121794701820113735187940672231102806490117091285403655121416723357164399922361512687576106082222642071379189303322838923110813607143886270353458553731877711103680994119805239505144196203235703043818909857061112421427242171877799334043282419250384037120457266129063146893464773556338834300784038619888671546355303815520195968905149840204517775069456713278338245251886023207329622487130954365233763369925725500381236264794335176096445413497158807160548583150354004292723051973221050690423086768017677037534272062168115277614239844344449961468166635924332003778517430155466028416672720716661726902490974672906319562948019850352168362107288207475291778686478055321731317208157193345842350526559226407466511416379504447947362086787706181353538670143039291800281255924536193975197245467656248577989114512400186303798972287246683985669359485657009868863040519544349248156979359983536867286177990756545771830307556948370547369326622282929131574623214096165243144671051044015481883619808761640535934369520846293482281607962603703135462318469476516387234931497144271618573822383410786734946477584332452420096263385142984743663410131704459496611144060686134222283432725201369212202512957135517078984403002000667837930902557072832873384597163821674591309818243137135126938173902776469749108608415825906727334899484588265899286781411262567805687901335075765639555788109181708705067717664198395389581716762839285094754007814771920717613203327479928667067428007513618752516867569510135827663099054749374841396085900428445596637469357435040877675946500498563262102944752006262722716931313728901680376100921334177080568740454339537288250920354503186261361182209452749041499359675927389404504139055367253205925597363206979727288898354932697872465109945520746753573696179851779568285979828959461371230494403007807408840957117379378413798646369173592799001873797747960174065131184189252162677799634340608641072851951013731532836938994671715070662355014011986688045343742415685257862516480571744505384566487261406294932792957990654220541364367867525601503131460169661157135801965359534122962776154952064393277428975083479104997794035372046206698305400490899609298003703326027375778138173052585653257226966417761320693056224709832323884242197423301601915913300530107946369240064283950682363614876660896737810441086504404760401544869209863253272149952993683008860563508590522665492701598256859624907193063111268240665086142746677386868097278092625517028184647022853299623727666184105522281964467176285792327935718949599695041752505967599888961265846798567385316351576297702701873121904662870696470579753155954206656887736090154146586669590291654177924038050273320948352799466310530884549885969481102886712717621573706299579660910580984174999449357641893934119124807128353046680841575439737928544776875741449659065275494822923780276933724856409365734960344589395391094347293124629477536684272802798983228627533562645255763353183300937807192554646407678629877669015644968829414145512198578400039375238299991207164117575798875312792088010435121111341544806083613027759352420161688708561645505377429767548381124438926456957094156290523613368649550905756289782395489590039519974188577155442994823076494401876073624515005592401961634314415725995397550194506245214144614466818776440500956590953597366285839597705338611567195027709924843901125623671679712985500912932126657396731473255615939273309166120014598377671680805516162577197067597618925745777958466342117160468182969617929084641165123118407508999641767790114005882398569099120218954446610302279339624292416477574219312160121285485419259337218519177481553724867660878755431731583095751199450367628888874169385323993939260002013709357262490090689766208797811311689241212387273286935833481308412966365742477507381437814701338611172781830576028596493886135324406697120916669704496033644455499408133188766662148854797089969217958422590939198140386218320422338893788624433012048349959435370074187490654686826176176271527054765135038638239067069311100769640512730984657972235360051266239470648032074169413479178309293450883692215798302564507500731945752865234512255783307790372268626932564040204549473581799846735831883158177409359721415318806868617148247790012053406499576549450759660920255463486365317441775021814839059780149522769738331173671978228994197848903517523070513041335370180410790171796474263481077263318843107792109332833307298620938896262943959837902993317843003806071240353933019316775353475536750671981285715244063307514116989289004642576375641650832807992128180562032385420087893267100336440093429620518640221945930596762787762305165967271825526088359217836888441262346624871490454283036525646101331128188675595474018514274050483391502693748799540174009084232300399351848059223402603731517597796116801988822095305399922753026770695129059350366806678344740673863292402112160654399363486431227991123039013532120705046589992958455401094102540735102231308693004207536135628146303144615696924159577765017727487694332532092998410871265398249072464580179818987526511393367029371321193755164517082714914283089671941908924549373105632137828303672900996621486519228398898513167405501613766665288721587942465783878644033709994927945195682333735418616585038157928501782022101829515601859917348417546961263821672258625942832850571739718008800406201308048324366731182862089063283145317207716660038856008892141054747999517643943085360079764466856696761727225069602485880113906301670871726367458344115454729692585610328577539298732790909410079660927096793435635802924073565180449769769801583389410106950330793234855128089784782465100229462949731671204073325778038785931860505331598200884140339943432438378270454295096678871446752683568670231146407413005201561022630935403420872402785600918911221354668588594623409140380560992479513137209938516694223511293699679014362436572906496708967315976313914518476087038832582369783810138870196085434041186834710697857085145498689329209896100292439772704215061805405107088432946316414778843821496159882651356940062103114716726016991343494702861089584479904783811536311095902498385074878185392668912773487166807247111288671372494850312446071989199049180402417832329267465961373618206553450169767072958261338304943412826696600546043021217423328248636356692021109374852056617736942417044575036792406650248605618573030035882440167684030552529571561339231034151674092884127359368044211989848853834323523718478792561527931788803705779897558457872321981746014731919135491446601202079691725158786197963381588326722275089868139387281188095112506138379656572723768264309952903860602853781104144164405335117620949798703560925302950086846758158410581541488538480822789136697371168224447671849438498083523964690063732792472381579304841316307365319585287760436438309539839437509435473128570488798857298745412187296245297722980151722294390687355551544158681983518583426707477516716867687540761074523563847000689079623228243791802715605898677759634059971500137384587288978052877707508678908665544227214076998612380101266157580013140929599579789787212089885326438755916902916378872481711747591790044584679269546671439785229465005168014294578866749596770529107622657626504365252705508643771651214642807392733828610567848416627765688680642767034476181798605861899224952060415197431797016077754574889105562398956251290907092776609644377874081538173706391210179508180171334208502768310670892821389132380929306960948346751624118188857368711964705209576674907660179527899219866049793003812075446312471440793817685904775090279303655182984128395141918610583604784419437271273760707644576851613097115845137166470040945027225054746476289831529706276856794973793664140193331933053876224998052890475030241614141495256687642222145782099071521152273497343384756446602908440421957177155187193166813557558626995129003213959582820674440324503939815890680259222721665420629741786054620836097358012031522864598754143512288178002813742850571830303630072053417375850189665260431016544322177938544579867321355179832921399538540684829806421679261275760457033892677653889940800950143768812376416419237718774838903173563410486933267714586254388906576326391260688283476634175248008193502220151390217981886721288397334512831519082604560512024188194728105003263699536755023667278071754824179660821511986373453970257560059854069898568971131960330104301396222186281592434673496697859833807628700733348449480001127395048044496734566964870109597280160043465092004930016646541638377183719783517796348944853218907513989870569548478880698493546254705389273546552463443196232764580257971053961366218053940765336375108935707374605836822590198024807770234266799658774281762495406069230512116393951341830287063099068443586878692453919531891393782483234077829750174445140955662438116342169943331330939770375370056495733251505102596613540300642484410006022678557878905196303785351602143646777637825246034959486871373405099083664530936801538496232005166443935937880226595115201746821682929271977297513272619509735294024370172989951890839767040659647794265815946553664550807314428376566425423630192929890247913339431412440573955963248742720404830287147073107445313511346956511931749819423599277420554814460165580596692602677324859703490671705034456498692183477848125669490816737135226437067040745920443598073407265614772055949750751894217978916235988689091663330166682258308467863147031484660331320223067081596313962451255730504709172501634501014171051773911342026753313416978892640372652263151956466830281025392972825309804991490370474544193872777505361161889466969107619768653483121906987385225925137098541726930403942829143480660616024950223751680753108443217537830354107553440433644279833404485723637063449042134380949935096224256139820829487372534753096422932367701275512237070216191506217150701975641526581217679879689601893392533453894594392494851481689318312425011131843547816997198218018995314332456029689066925604818331335881535840331911808135929977719626233202409726806814289130896924340109582653027831212734727007254525537820509666863431875156481007565551708942015044347668328668055178505287563130801111849007195922159431763311051983139776218585082416044516142734220274854859877930861151957082610117507689969381432656460118228197908622646332320029319655190175608883680945765347185704755651057006701563201831474131991135001973588597889068682843767285492283535455991945814645604832201258558831311033388106373322355486443444458110893731066551224385241911424473352101162132579037561410288575385060420722961207844709242548256766568984128235211326555298765641534092356555166919968209712166125398164898880544755984838234948638361892117181833819820703128878047913017625260581793271353384077749217721372526812200528107809530043861138823044250776675425769184249306798547691317007495242364890227412428984457730287443016713200841598241017473289338420768823631912883530759691039594323243061599614206261442273308750269803442301670010511349196254388698676494913379787771683096605998036367909266710069957291001607193344191269755844900528864777888149089889966919197142602846848265387032098604789464397768279688182858674874725481513978515700107661081902656360436658205577151909053539678251407591519626592524749917655295046180218713111521020937922238981942839110599316584060282400943141271038769261663004514507338721217001786107069040140031106713622965109372146227937979234044603010812081829246189533077260007327605552419827977078526220452266370730845129664261890333937096730728040832917793159224453498568666398772090471283102368838810814440550753578088325405455594343633357966744644473577356352624410686669935999176376559856329909983411334490301376144607050429575562715272268636983101785793643762783188909363698194390189822460369446873848396616617194417362522652616882323196394430889681086312099517787242720496352344648628996387291838217719687630165407189661147855398674936905959789707944005705925701335794598627592917461606427857274701678341246540068006784096385808762078651092934405076943716490093293997205608013813099460750587015927636716372739763752386454087548351824281272490979232795904999847614135976847163514628499494707496967777067215431869338285039147629814429472632162667717328261535901732278190448764819268929746249583255389483964511738517810606043576262672267887008376334732822644387726257747339613874070477820973580138706908124382078043000517368498026271539764725101778059667472245818170412087045162510335940801118074048508377259926693635205725365667040621992028823661155833511351208401124308280101861802517450885507630407810452162921426955461007469332572202276341350983234406222520077050608839583272762979738546178093897540889228069016431900954761224717187525044116843523317394003269628673282864510071369555495083070056302878841878083401310340668210897531725152793494666208513006459862047609886560429101616886117075085756644227725143693125878403567785846212158149652862539740943124314650397015835701472284021078007040652295349411547860011248028356262228913684537789690576679367091176353748908827474633958715143002452166042318241663893989894934266337447335912848491282893255393018854790004648103564437306774120920578192195630755033687754922809101098815920153338941557936881203238763317630927607062033531868260290061082181943762801426929436369208885831778812571678278913388626460493321257927667703205944862723153293939459083960116529742931933390371243683320678602259705114960637070313049351047555168561905675911733320883370328278723879593585827854539757626322390116634153145960086149912411898876777370365596671842074053637358429549139996397381757301209612856811924800886220282534553724769024192316398384165743835845502378969451125892933338683129366371133533544152819379899819852249630422833536310222595202799833194119734329094172772485665770762887202986273529424214531227238750407041530500758572492522980782914049687026481668842603188941572585095414093640162981721103244208348195127584492915987111606384419328070300141052020126513555489570929501512103625154687038502978275949148436014031079558001520386576492378254269788926026561289116496636835733646283393715341509700037448441663369382029675760876036036546343257115701278041422699959623960870765641733592685986319541327494981144542546941798639068400772207477456218008999722872393641513684819334803033072647883303586129606075433128632155362898275333961851493003190922041632238091990117978010285152284906681086578351880927616265778709667780218255118126587871882368637940948727212794205819582559132449955715798768965580069555668569083326281484033099938860340468934146460262055030256041279445511284589980212705005944005231100538111958104293790135962905933547557674470744226979337928860987943305613095232374526558844450896606641239383918964511366561932972106641688650041650622779923988453219245457703572139168574398766178416668669472661716039717038069980966364891094335730917062441621158811498304372900452632770402494338164390604238535463561230231154509013343647163332783063989289987785303861341033851007036014221964639963591189529453487917593382681134298647278585045266792541416678093083035638878470938755927589143792699682935940918371788213028402828372450984296001924601276289850414042184954260339261939470021748199292869196882902703044303189667528502389664125447983611707519465710144545572334619811134476779529734295487871725032938538900176742108774469549335300532737678949816223156262985046051546457267788128346172998427701066690868750772817615597375748325837754060914622868993516461030341084339996799588496101090796734232654872956861558960314086728600277025477695673558794251120444568932030788764273624215378800225954113957609553841315396675808188739473873767790336506566456461929153675237833106570421311013939084529623520515517662016309925199969997726196581459033242271672419974008403692821474300426805242799962713871208596486783444603269239909193879109456463862086477531517697868838871751143842824581265339148688144019765111328683865623074343789697478199680683337109986278310843943892441843112136401022673481841571504159745755502684764230385398051384120075425200474146367912986631264621824114432395122513640827268855517807350249528144218039821335676779312396225109022379329649137613203106959199266893115790703082565528957967096878870465082451250899918356246697075338966770218097893351007487212465768964116401748711600664120521833783192990804059463841706172782580849615958529033126067690530123406884416287766015086321204180303367217989905264968416647094193059380351464782316798938495701501520684245431565622021932902230022807110135267923133262651872294510005686492122791448308682330632058270571221734684105973383956119062353778316041004082658859688703387618151504397723202412171536654557612420062453073342961417598008970560974105683745097968978881738191623464983345686554154953104747518041532290849197539947156619792977291205805539114686666008762012219397633935139303220520219471808359406702884288329201565392310507581851197465424787019777151570507085540921348239279036036787495219617642519702992139306614067586301875309149127710268738100364520349266559835573103860569402691767444001028366592771801788554083443205709479652271069485108020420327336298321021069584536680000238940486997373143628858902550461127584523965701566763405920327390259268004328695063247875143633919626833288219435701022963030643516021262209017289600126710225175148522959039208388344573590111369448706635567099568163791546301354225236249482192560428471874096112613058764059149574466695797980590647555420368161168845136383580889886055749655757292303080670152630161751515136756117734494916966171453969301500442586599495013788028976731367050393659416980332404341529440832870736937063632585238781519708572539713573800437484790144954189866994358449574728613893596299087906039787877494387154843703302815200975295057258462866709064537132973491267238899807425940603377252274174172943690055484436427195765790813050724525777229563574863667578455004614382637680809937221913049290116014593762613491667420959422303800298941952323892290903076093536578389618789781352307167796163476449931727022680205035292348282172448880010434308763369890632734744986214229181624708159688135144928155870254846704325839096461088727849730923855258071132881018899223218273046238480598155259075991680604829807849576571726524667103547634560376743603881635867861517565942649088871636357005137123474585795566072249885063651111171301766774501648503373795798353282694548000088909192011257474743613249597252523924231625775360116969044621071919562570754368402813655782607629003605459304979520172259948356153219121569108489468445688582625751640460442976430405523439279431672246466073588106582646756475036967995930005624998070592245100783892924824770559425652931365668681447898034811229684200079317104569914623982542221547547448333312892454396033176605032061517105950501669701354801377602599673510950217075011515069077118745003631311437660504064256650758893776155827624706729343775409404319238348595441196510032877816064869728218900705507807118858959830805626257559256123596979017069585300067944439621790979080554669750653910628700448234454617622296662162234553587229453213762486684828937087527717834912139276299848983207237201401635474519643164679410177893663038170064403407382817590660667584279714426212585761656250581336694619005276008204187920315755969186277022670212222540567889597476727157988247024043935173944018551795264313197004221656499993703571200886977038348224777424101662242429290743551281289376792219626401617520452585408137728132892870756471202631082650267640880367478598307096348395471190659364491940983454995929557004696704318457246980069901292411676797475191743949657660715931879109544333748680207895641113412837365497149963108592921781249180791718920985415091002719131933911548374818551935567636122254718134944293534023628272049778006787549376786779358566117265885666115194754768753594582696684829569017023574409072535628502456998310315057113209914316625850972814256882935645694434531599299113760364436184030675141894240525396593013098457301370441726092505283698752111246267276063792061754158708595687563103941705077506699805500407225442231467500660811325863914739436975682657035416947286245059862029807252990331091598131008583668059373808313098218583642079473781550466998854229452026220533671269742884615978913946989736288903043534850955653079123036196076798028579420952505057289660180832409310264611006000112140479486575194011161045101469048549410568654055617330664166438125102855681530509373743873028001043564735783708306792319751584697484424830541551332297581151234004579259815089632573086534893142694073890668635329779020581472851714035773308904502628632432277493776090993066097312715650743108768484785335978991380356818282176463103890623761585886605763809911582539983191596759280840008892801294559930546889378583815067520257673886325111780960681616656946806379318161174406027009538222886016679569738215351685106114908710708206880601869275374729477013095565781816731700630498601248257942616041425901884340729540371863073482574923583185120663753641948964200058678317597508643456070324833477262676604087622088263896703446943930838847636755640657674553537111629183808217693641645285934072030063563245394662396892742880750790084199918050592940593783364404212711755572177040516935017551462702606750110249774325094885738002530106949976905004750843913760717061744092771317796068967739801899211452341770088561121717758302639340411321684470318538365028459397132237798127838725989899795059940220201479705929457627612900603474545180178037551224598449971728711469396060542720835644188477226389786561633115953665219912328022428757095949101930407099512864587125293056396591091866210292848342164799578746564848289529422112539319041128341883880370156062938351664745404376763594627294988377569658787038714639848859590754740608613738854540771089296781392796559780453828161455216065837320757294939282583546929843267647660035635817867685222374944020275956374963453408240332283157789775446573129447427538748772817927508190593463232351431718132625057362533307393086406680750129037569454958543639794526820248957083279634774393989914592294868467641871340476584833943204105535114771954573385148189266184497389949542664544635580302024533638191960698671917084310452246920324617467858700981053032047695782151894837590721945763656122645242015258328714958710420729693554932614339043292751794772824131362846866881563608967847857127995362703641205636931105258667844482965490988885113466838226413129200879421963822162326775773732890976381561329248016868211260128632428914145614354365938586313666799408598403073590837745150078893410140199826127045646099154249380136603522596622700897845710387109512842297894917204984376222025338572168250348092678799973260696517328406986428965038469616131584385554061491036776535478834881513172973518198190280506225683770554549001392273169524921323284411959046910026959897587285952332156446411456114749897656793441038076612922459763405591450473577310712274911777915177481919721540953738315404420841849583265888922337018005551515414614877179178416432303338708462964658428385449587695496909404493576384949772906234247997418435460788021075730298355793887439051949288317730158319091648861056724064777811913333484570825439619572461398196196859367353814224035379352730166477899330642057742535539682060860744051431264083919294325270270522819761016243063184374048533063331220650155330909897299210256458750599033307772183780111323624881534345866119596978133266060172540112341278797347548623372037495027128958038608648009420818296703353194891828179628894154469116292451573618939288557019044188940871236797046688372390533819688358940000685526645395008324774571665602574780889864841889257419330910882311331542984042825797921310032202558054796899987908349359124031301741060816304761532961177501771357643870293695404994955139809024052763574369714026145193525196207221789694550543598283624592233801408768816769373903626021506150554284501263260108051229161484398736380435727128307685345523384378648713271055310966912067356093668042650887917083540765627960296743336877491547012837919071879171505301041067325259974226963638339355754405888431838754063833995206886971267641926364422507213389192371259923473330482093806008384621533725510103844415047935998542781205784588414831064532173345318779257892625714430985031906473425874368433950476541641217918540992391057688164631350939018712107461516389609879724470983525471024583895854404698548119363417777915030893106291103328039036170550550661774888020836334412310553150867345768022459110911230334338274100595601078742314195296276521592811324042152267637676448712445279113301564304202135102474363403469496456014583420043552676845670918622673269267405626285207446002682715937525833523500886164982806829542780493592901429451920611980139757516859139302157493813550811921414743699524706387250078419836129536811315429019977940626069430639464123903717211447528258010766857900507553691085661355607059224133245602038027387305498848790645157270126908397253402886498204957326880594289929091616578882191547658548784447712018123971477617603753945599008606886849426211062116615344999272353887583873931443240439232577484833557030798041445768292254250539996758729067866243473088683770658637487439988165234930187630997894458273857777580441328984534975145427867610498098702378119926840253662260772893453164264767648184870112242661466766216545281011617407759839572501694847894915834407980393799756849029471903346955933055572701862799261389672444380656039346684759032299616208630924881883643446015466087796589258329217863140911094928512355645368123622610863107222635234794770482156969865156314565226319681621661177017563218296994582894859761739902575996963179090888664189685988930098539392667134920720548254721471107178725385278240707806580305635316699791369311371397152922039055832648952384855271827203364670560473737683373845374897868734630359877269166883802379610304189937793514474057857365871798540396431096210929295148337179672611720440642700427464844306008717751104283347957143048392246169735405616408710481006689483843314454653614341450335505336256353341336230236942876678678653351295615758019337850920888491909890905395672771714034443933735150143598347592379977418587510724625150259634560344376303548482037937334183945266888270358902881120561888570347005135486160278824754794144163471636077628778484482758716411402420502797933702590476625200925244663340050239555909209210774642419615247485308493227672419479485437992433802555598329562942327251476337207468499466161883144890874183784454011246932040486824176685941678729252834979399903179712238146737431253245888270062312657643461289502947325920787948423400408687254752677398281916572632978709131635308111718513431752239356787985550394179751771671779178825473026661522554919840401382712267275295631909456995607072777806976963856008891397531482425518627267240428045796956057699810081570149960400189196950549320731848522043991890476461342033662079219972259625087656110085982256051759381524753924136384636035940646507403427603103024735703966254454004184175738585518379954587090215695892950134352254383333698963080540002032839931081485942998724076283481967381321788871283111290199173082632974704841893259927524027032269082853157697458164007115358250656308367178910956843546415520301406645014711742148317834410808428473555590708088807176116048447482368065989165027310039529332623113485878802574327066352396535994701261977543478996036954912842395438188454800297248394203884575965055842329412486843958126964661688004304251015345297126301315771176539930348892247463378278420748848146889142708979030702891806073473290879998466235861497275575546950484905515919179165085462169543630104779294208980307672041395807854878767991746241821161021640082300432724666292403460715078991782225116898835492424146806589351396413240100866037266647602683699145461499511419328772965854179123439567572448975915886008437693129937127626852453123305390593102619113507677580804090360377345604547695569814031883254544873185538554343517895651404749928454996849421749651241469013396927412435757323023911779535725219855617735690341226853812243293030190446781511004862885108247607500969459866681184698352893353131664125874111242958165630972302181699604178077183046015144926888040681502031740050589772677448446339932054324525364273343749748792777526263981585232462046343638920860276117367379199390317442333477762764675571208318027322034457662909218823853606721470564251969605927175048551668051666970684693994891727624927791863675009142442383365972887352953953234552888284918594724200489450896551523075537317498830045414250024295366263072213191113868918165990191095005521418772737179319078291520713262575357198731027412570559631901529214060843397639658170253957544659390683940505169432154469379635534570885836601911809824930759708589366598365338213611983474608116519215588236844102158116621134112123692160062241849010877965101124208457399145083142989266205936198834276649550320789231749004553538288726599087742758906442267713566180546030682383952603075474691482729499926665676972066791583738694728361086239347662391585932049572167389203768231089656927449773753131495102294958879363047781193716553087747917276797677265064940326818599884964341644480871134794300195998811544217841652513465102699422410248835686582825358820177266410793250775406219400618515688704044350630388097634891644957395357719687918149211215046053022129368947059880732566605405874870314543553292529284931813940806996342239487237609006086082561316483186673952808686685548477515647331828988142298649506742762878919943732646963130175706265595268109302920190581658655869506651640349606646506219159864408438864255270038395469809109393352529217094123881389432467188170929075442556215005432822644825126386110199969543379166084724037929562445209208738526553174308726547656527169342297101948227377422685175333506838821312948090028457299005054310545004699424609296250295170520667546712139732241485621934082784841989359390344220289036965197005009255522822237938862710761137961595137700772331928290353502591166351936055243818931170634046387049264163123474767618625965492743389378712345998425572843631347251938027492155545042843089420209999725968200992385574557731101713416671219441969588084863236179444844196235106965780634127232743247284687703866875656037053794564196509264539613130159375718086692048041647614638414677647331279016274169919897362506547010490772802774133746579575629441844324725981565049434964495200085930386927922999440797069620015419959839325764365891279082472380427923870087483044461862742343716190031712433815533859947171481231961349112116286330845925506982841765877949638059022353645634765339201516805200330803340761578605750156391807161559400309851361961778630232873055004623735816469198802737276680118233718137699170717101067848146391727061737258704473723379939265240603326846738758803394944140909454524216473813898727177908730235777156178921063732636899730690925002963057306872875930538378551546283138639708530616348326052831526764530883450955279638935511255814133812371422252932506536061466911107279972689440125923709273326120199459985754989601501801053494926254020387576050423101438982413701063778752554729749375195408167814816377570279063420103538184183987862959150523655909269979852540908119591408807573161558759203613556089867480258853596650833469964999461998483716168384821729575189125453267839661714196016826840476147447071328090325152350749528715470904764999544402884232146290718136983525860256332226912591174034767228589035802314393102539738180412560220465128210718928190066320170440550423562737908639403245075418788731553338830697549314977877552324476128674052537774706722570699277941753584770310428785056304037252451724569535267554060534203507912138403628885299518819633777269593203534940879794162184552274445061514484987413547278955154248780451002130262376444454549894064925103518903953094962234174989338692867410344481320347354005483198584831494635413509186348865463457139835755794140817768834166179113881432320040266049408340999637151643199961781233795644407067773606225299314201031593308890463175370605414246333464903597294754706747756344312421934811923648178968630881261175801396805011729744846641919397512058517743737736569449193680159406792127387219328490421143103896015029745923699434884789824833382680593746945262880837817473569064147644770270661723794088277894931662520196585860304089967401688095804545395617046822383819890386536392137862584484011706292657392323982312822623283493224689612241729283372398825772176409090446266156839880783770510516082496357239941117943386678599725670997948200220222755925433455982212376136915304106010932947028253876371642781594514344696909511376589144385368080949028465218520665348460873078600308625702389982119688350451774961464556931403442401238621371801418525839302078329920190611386274892051338821851808359827619279123460409831480228472042684304179823162189158256241618407067814702640825889597636230743972586885007586495324194745334927428886242405981884574560801141402269470229115903442393024333268458737549694800264758920907074706817178428386472677922447140335921517603366333287285863014911870648662784174123070868942170506556165668321573171712125727261895606030134326605359855799684709737811907853702144307161761993460797164460047890584172814253130250872721915519015765736081106966466051012791790968563498235337027920108675751309955535415189214930653996352397802650991211597702582192647157096884833053676226553535819382015784061581818696260962037450802218463992334810815243473900763247905891937993384562767733680770435644698295530258256355107510648137137274149689825665502037369895806831553536097105731100120437237662099127401733111840833583182234062100045638175649142147158662881413638757080887620359501248590731572244020706332759822989011213520285772576567569952033794786054167168390065235056807717139414417999908692162387463447970417558906393455782707979035670402564855599016012691381402992929588224652584737967133623882350656653929414628719135134234691297974568126022422559576668710860032426114558365602069583110810025671240042907880550142236103205072761296660160624955969561945529923442432599897937089713377091172281357308388046313902505377919002565329806117695993471553454588763051514031116215554693033846906200643012485288525075164305070498162781127875537808582583678791624355585276318952849860017944309357392064507435109599958555140594018161313341528368140710978803115097545246471667346210002191762609945595897658887520043944428846117238515916740025692442520067950026441036493133105040002570605843632149757604185351477596498099764634877016059143518819097594700943943623168417934801484357328081998150991825658387013251382657342397522719313560882077136050062983478979579481212434835760581029115246642158488137779426832224386657904823257519651406118008425911246971667880705572822900279267802362565483880538792773299106443316763447874800621395897653809268843242107778164510997644429304156568908941921093867281361539076013901414613517075250477703540750669222760283160820670148049001393384099205182417992720929892343659685618725082062862986945605792705922502362040496242870108214185772827830706080664015323002112345572105508067624794265165316382815656489964070434086788441453418536240936194600661693182093989210372174571636681818965723275472061388248800865468404605153860706810548889660922034121871468651176350893958868826359241040830510566821543769728545095456169804897808444067747601475018015788226924748161485472783734577878989992708438725059806937061643938508987841325987819805002305763543668422070445160615876633602749568670441152330062464525337342653038285723442980057926344619784829941515111463478443228503796755792566156214723206474111771806749724978777938684905188160863860625805526221950967976171489234452901461915013116198096258194031515403546805169933324231313941155475279141743456939314191393251632676318356235540519295499476602464959864806192429078410225904690455014111016853601443940223330690627465064211286096531617614695422135318383485777913281140878436780960995249263340405398970539184795158726129004841441577596746621074047966097310111720329740330898121903287947232229503090514224130018932407679294338225953182616413351098027323024888029483598924988063968082513465758325110660298903282413970731302867434743205545824219619517807991655838359268504798476242347813222258543666914852362984007986371123523524409175306908052454813026075020786014938656230080001812102508604757051829775056263709207846472264519028747252799404195964662133057043986946773910072632911212661743741771384484294087821949037146843863937311592395536385348557176563586452362106583291878759175544100148571277604428796186975296232318422456012221107241298962256697725966215401843301942917382119394287786749935497705451125513049312327780351020252462671343577880540102503547691000786952150425894902172734878186648392002253187542295238579827249847505502657392211610815716263002333058931768490828256533383277404294388732261797301260381892564524585800694742757851755164314066733012312602183432015208200371714015391377785878165276871213334738106408810677490257681312181608150921833042239752555231690174991295962589608688271732573502738681111115274858028454834014743464073010408865896332673910200259851138657362676709870517716728910646479391837992579898490429596255466109822621857984922732270521205414949862235063239688264034441129485246527623033685407981335591213461496097715200201974025116057790885884459896692245560847735310056273324462662353368535779866967113900298553832839304682694024291703635691539248006895352419728725049332041911227227749485584129625553250544545954890519279687253185023567578821254036035117473312205038390552744413671896456284467421346513962854636164810232876942486681387190617490632195259677732099007919389304264626066125581235050750021690386473130287721417406029691485209800160857331995989842980360116291454743117519760297244236925422415134439106465286892126707917978246428271619855909722243841401617432970633200025725393151583712735501679329568566970980854194515088300768647742843523708955907681783626586458569713995336176897275282350194375131410137828818062661262099180974629933313014816939023251752188863676142439384959535125188078684366984949251779302152424656093872088755597873779896069803078585764570432703226835036081291719126021639536893378373665069743152174520441834943087141129141473229481782513921417065292562665657487564023735581355558531294245925019251565967974732724221096989408403828232903969928694903818262708546898832361271353850061253523839187796475665698461443787049145437711072335275181621245608085745544283618738975938021250764792331803212709230757051586106860457963175941133804083090002427089373420609540543087677942262161526563122304055461028697937099348062277900252402761636538188644025118178300815087964876965922750834786216860795319591041238473611173578408846732192483581030408040603773497329837604769100948174692617830042474491266455065767515530675076801784464781424847237237897265507810621208626411652371168435846628765248547589359721611957522252626560908553955819613894453466444406399231842689018889371993643299992716296118402562253066202687899990032977075161796669276989780137278398714278623230740965463731298312675160688630049237936310099331564974091727451578873508501090059488534284766707186185142324814834896297177601554955838004848495189370945704401854128675662029604933159996641662317583581458673664950661251141262412235985501579758785860623010819628652522793169338729331169159998293881191966263197091234383111690912290516838996714641745379667785421592790491382421015013335772422951859923830468069573507058263979684902756971942409814598153290581971784688160148404247004094958620448577227442684997471205196388600783328984965267002236473271402702295820900872586345430920229776099603834571539952258689189005361637567818568926998347763128283072812150211574394966676727295644243991376582407615112425109366207564889793717180409605882097699223253436595802280856924244419762386729354345726850914627191494703596705762714198992062978444509726446205340469009625956546816241568166470745092527887071379867125326576347559998431561742186416599170253069555989497955139230897906214934113358860282305900026038437877932236239357724912712848106699225107388300573071013893416536128175789663961385309467689939112497282218698786223132829343516356421506059061564755297185846757350532469387476878521699805406921245909483339872609124083612763599898382807725094806693247642937374370366616015762593213548370528147742621107604753716020346224793103127773736647427056784124595639572747802600893054945741543212879654913404535894344118463531892476897196352626599123302304133786150782404899267749239141769974851112904229445188341504091469990495698608838577358525829186335725981164430594844518826062608592547935844093088674770952092461850157922522442898795391151741269237992602687030791718008603712101459359427996319422465539672347727525427320244633726250291542972540043704654960936992187949988240070697579821131402145406107074807478924763137716711807024065989667987762826045481031974857024969488433227657521428788595492615690748593396118630208820939088031734624522490989893223312161560759379302574901683007086977831811786382795168965309774514314511062110100601736697910490999640664195624107084039753767026533525435293244584800348949111115901628632525411478152165270337471024066546190108407529895830030274246057114496692559861802273739878263265893551634873315559996806584809668359015844935140590430047639037347762399769175759275079832315234046543734707783395610966581995828460438023775887919812244136124880737964726477794552862709787751060605895445818321799024405322462554574224081489774677643542284316303075093118815110762917733536656938490146044838390090955931643251289456582591827356525421592237441392252599086525221628389900759244186606329535420269665570812283125830259427534810916453425286335972411075803714263344454907882316034687847442014189725534613020869373223417598378668043851624481242625930833601512800158997695458090250349199247339056914421862907889458165978101652678741465414663899375118851775013829735023850705731633454394217940769376707849520523306722520615785835807324018441937618972774002688008617171580283432626499533208918187238457774919688147576582552189537239449007988581486204330173518793445054828240925008513670338844815201091138868562952694911501211682640497358400636609102457399013457769985718581687892825797470999899324048156985140387129886709386819116021453832646961095203672589762657646746654101348554017057597094895688705815676712789137757361580566223748140275421137453954772179998514717534780811873368354968351348063547613120612325318420335461448568100723155887851287751163746742555672776170586870800349521498845946962254787739433911710656388244492813784152130866226435346403822152712437703440615177829760649619075056740033242402120190526545130426542928242542289181946574638509171326565765232610450357795549576021764007148659133362924812095953752893068667210637517461276861556828780542748855252517940610556339563356412216671082436226470780231590815873893931641094091596374855940756896494566354711049624592762895610956162210924724021168184500278226386081045739276257904528561545774262333202336881654241709751583006897700535478581150657707351047803439131048040477269549693902960365169264545597675616533225945343209278627256518987675849971670430856116452996614714051049348296129617725552499750294289999975325033558462301766998898294527767832321566550697066576262586759366311945050343178074656126006460646790965718353748253016710325816838221349683285805727456239706293451759497857047948483905636013114972236777464141850068379929683279551624293943733480580015134220802677146062992645689192454407919174803476009441440952990472239517343316159122499717767220130533323776736390367706030908433192899250762957053477627868133721561469283395764307372416206715844484727798923051965383363688060858706973914061109656237562256187529498278436466326822446519876368111745872745780420301315254817136756831764599957094700355399186788588705293579417203595431909688061629057488904126552412953495642011960041207711153290175827576556015346693043861498857340207854392383670049419963050955295287082174746245995686411943367122459062960301223300317350249643185990549409188535861332208219817160502788389401216816115793658007290530495167810754085854784562818940359141955414359769413271677179595531050366779219893140790872797666484082716893900848550878877290499098870974347462967246203263203703200346224768584165776677968962003157083549754374223936319678303817662617856909240424486869806259632539419879764672381130620667774421158223868430426358437746639041045650791486549866858787286254500005283752884270728225716650848356881993374411618279620064044545507046110142479563105406118940724288913086058180871166776180228810152845782634550647907424442304146228409389338936527755210229624281101724068241358141140346538875223020802034467875592083038771524741133094142107934584824417314613563389223771526945932394977168653312974976895487313163971270139727393982188543625397184071138380753775112898396431060098624236791431678826034957199995114234987613208661027999221086528818524475241626630185504999489292495082951645898118464597180947250628064158866793780650075835599361085960720664662522224496533720955393303320716328817392619645191138412773954742515027833461600789994874816571753769210926928547178166902066380217213080276622471737151346063777514971032794053339941511186402995286221795587584404216957002189455021773696424920704534116818859412911898084326820002649923108282135518128037856306098500183336643414770184600388575151845871524979857703310046421286959543215446205249180933116874914407259896896000148196639275296716104990209199374986512260310166214220957577222909740265252444341738872141638410910108361839039730055055441317638552914132271403179968553048927569303655787921451958810572643007928401091412800851297613977465239879773333135933365357117117920096807165392824348444496002017070628011753704384315058081511150491552540635677948541309904562977322411155975526778588963376266254641789137271399113811741977543449084566853604797465921937630852776944410859730999779849881583342590798176467471825818689934594376302045283518312552334402079970547111913455582542998587731055692544295503307355822443628660863490050721871379687137145161066361768671664086837692871523838009091907382477023428853803380422915633194626026167971619550137278578044833319115899080626209019476856801308223785921151583100013516673245972411006668414327601249962855369630177151024651414520687052484238421842487538615499161793059126422221668400213160069967843394339731741998550267625925652626542421296589358111833746450256854423314852322986813556025469784744678000440770534222534594489466928023967015363193704568757242067826680310398751934945772110585270558968403256576365214954137655940288683672540122072368827430923349281855592517008616690174500408089853510689547224649708903701493006962107189074341925923632562929966536800232220565914121285824182211778477050346563136192902688310709904106061473741104426690261697825686878450099721232924164454447584274355928661911885989747259029550515174647920466243941133617967779450502479038097613647839775811566805860609888790832662813237212406132545548312461923310020224792018155081937785577760813178677494224361729164667028784261502927786151607973183769773317615990897314582229861297151465656368631636687837611441628455117754497563122989406637827751531629754892473803501685020374804188140696463179824725296128545054783980131257233897886899084394393015507700972388883246864313749994904870372693703254811524837418914406885258930435232613690804335474498425273755373485775226911394890890676463133802289239956710199315991519880316354750315239216471462537990389405807562642195369035306292570150330859573962917832106129603220577215719296064268241860793552923993562539880196782890047815663086053959012878528706379243725135769797177404374820205259519191750908569838688803001284969181190606871957300677807079342095536004299448471243390522922148148257260530377629589328774374509333575498748272503151163939949755637431052134010900216577887575909581869684047327315942197525073290088707557441192021838685223014297281573565627923879402694814009590000083520741732710505036550635770955196510345877451988216809875717197439783735139263143844078657699138812819553674303338164964954248450494983943890842368575826561464076391369039185463293998531343837301133934756678837641780126141679075410188757466694471418096571978611726085776243593497642318861751984082472774831920853128450336239044366972292681002273931424589010497083845491393901828466016000203094297523636421232462999433145179562801470086504183236852511488508814687023556760819454112355792132999651663622799751490576687473078209024605875871511301014827544949726352326341187527979551637919987936419095519838904153313382594590065266387746754602696525588309148780849728849182251033001417448942924787883768304332814438801060649467410393395972019525399531290472933499425535555158047542901083428979060745495855365966897946310614466649335283998135076819330336740330460042633394192565670414280625123640420938900123676376942101707371643739673912086148789349636080750208199966737487095505321937411415899697547603251126442944155117832965586882772310786918665909151661713123616637702071937076964385286650130034390959148576256662065369371418058265367134315989066935890916925562864475114065487241774542635353293663656512803333630270298138482237935182374779754771966972064017138184599798028372137234570491384587623407629228424183355160107681879575796087907149674033136516331132453236155872412698828119264940891399602393190184459117998607840393109719031144742038913696267550365217677126477359930608007900062919854817075947601326972329351997800996094180366085083384068850133114731685499978150026726078662448310686676490225431683473542992635584780267878660422073417872538387304190153201097711355355614023877871354792771582513849906172483089867100058240551435769959844578453202417925924977675177674046416060851127425974301430001564753877902260153641698677770679666513700312989164504246140898736310730701880420964840874267614734007770170523667121914554140647493208929622923986732244913979997908737260689934216088158811444445647034138320554473640148264118276264528963431237681675989496843636826087913279842956844091121862187811392535706487023816474917689755898075431623594057448599027881393600712016743152162621963497054241295315476641494648089186002506999848369453322519995868656514993224252052602961411956746817676095194792991438718902614154966787024320813821523269306128490773196638653794986261328360894142883648152221560077841439043974951323691003411247202560131728528641373185407651352129198007842799413651353537182471166469990432232856145781318306932546500129644297325673355937765624145899282865135283815652229308175341781138814485925394780536785463946152818837079677559259214021280276494653672224445691430161239246241383597563118183152808571059013047469346585856720034109594400776265581778560223046644148210186256084376310710801388260802693815744053567296621290562351602537889956236600862522371925437705881273783322793073140282593490464398865738635792901359986514202282256208134124702123131339770395421860621664586707467428308814609208709165720968419796270289524315630500068642361130781495009648365992277825777690553408487490070907398403392963418409170439813449257787935578213263624717153034031162592835981677197987329981905838282244592092083643755692408974587388981797280526475653472062242934065036864175396618347558224692334489842800691772488480988830350281854354718584555022935178009364872414925736004789160716217327606179603823011869227079900666795058551932702620055158473141933677015327361006816646851755498639288343455730074573408892411542335922059635357259674660329225737814025598379336867648266983958966014328492963545012773879831105832004768690308906317605249096991399708758241067393851576141647666575225556530154340783326381712505576761363483021481200143217035146855074727357789296289884551650383402711095254986362157117808550944407920446359976020465924483863343692307256675347474554946322228488386073463210118475739136626048362826707554654749130425629434828753875244718652958904419953596147927393248834085872278697461153874805334875335974709054061475786286513515879702350398011865346264517519658134224761059208332027529324195503282294701603530858376488634030415780582521542942160520279602316675392853725228871035016850020000815605924288275336231534340303947546233403854264643435501378234838516273629283268661148468753299451328058868062189363402169514777004682293692160809349877750899689403275295607701994457193079788765095690655775597929739721592962760927963234679398243824073340716404131999194768593069777378971206942398664671530937500014550314041498565266441115969530974570294779117684510271219017568942560426746433101071296216996193961354574074800450030456743594634013054003695154509002123308599944241564886721122882247392248121489644565305045596544137344770632464634145373954395839308770631260351954766425227680268565080181286188068669516822251102318601467694494160579484982396610831692144424439122816034817079004857227034627901723056862948237791370305728232157705453907514674194054002583661731156925434799325665667402231132399064651325435122628277792174018593077214756383886285347369267770219114917789349423697961818562824677845193007745829013722169508007833924384909267946489732687179821769511318992492348833000701919135686851335977851026613618477574626526467880530875306552105720131411646933214702320373571787385512881467775205557162909188424962929638433569257731502784506559212489830448751907279582317968143817361627159548506742128878028878426706306113319200965101264953523518658685639114477797901762813100077627652531701968665070557395822002442616618115810150911743571301996362959633702789873049182708413672759449307058150897749628764380732855212413731675512927271422438711461032105716588636155590160515998867286688603084131842819696747914593309682075525666366988726834264031580680810823746603473720349501725462880402033600436985870559210917438176127487125200973368863985157622408897589288095399169368048807376092125563673497885055908316742840405033184007232571850744413911943320685605177044951644109444281668221769925962785247815921512339816913200831507522738950733755406515747207426271060566429839984667814369068774725309863994113747817466817260409156843659035350684202319721077462051786557192806242158998673453762999515169197270173690786157989211753426941137381240747882770040492848319799601101504845859034039615549996183605851557572903481275602620159085696277207723865522568772878982980822138167436729244022244881206645285781987712524935584030752762782455323537232725435740472568498465308845101937817241870072095026947080178134472275194011258301032523709632654066337917487451699664433879515918646939548911575550749137803551387813275465452104756753304666699196580101717149614514938078374374079522159880890740883283841105128767944846747466823512316472928695504795987556108346454038969521459249527817800561500017604027604902381158996585599319830732911896063774001844017005052377523472161927713626676451643381586237080460607207417419051196657695233013049531856646105275516609037910331534358355571498285967387227755842064250871686155563887978733797174777006969439236916130384576669917184876743499485123845329358307762353031389149428638768838489528244413292851672146140179534385062744256364108822604317105953502634049049749420752361966532171363291352005338352260652124115775051641398126910448855001846677896878996533523705356043215439849104841782620250745575901155077388338431367707388187433317603588801709947453706666456540659948572053786618764300492121082398645129426895624120123455021817644589835915270371176027305714184017002151666230817553156426324947007332525993399821322587858822312335179977723571167441847780438639309335835960629196284111132566753098984768353610542824535259182618952299933967334253392119619328133931912780974299285806229798078243114173069924346512692557001540601189021726862942013647074953613354064524411531812571421820477736893254208550969527019183866501451559230052816780448941347185223655146129697013742325887021015990460365314836382428264296288659053232209715033389869044301434087010852213634915130246747454635133942814599713754755637250413262957386936574515138598662246265633853594678159737400590429624879443019279207604234923258003649860174778250324718293414707922538036012425155342352087643551861797953768075110069500729878984927954879246852014776034466257910511568917783725708440780911186003524828540525346728584292124838778173271507808052454758545305939642595352230650455949723643776839847221047049299135615858986088104733171644886694450552685004375866472102580608911513565952834515951048881421061896835009775684179079017943464021416440882887914400907815969742345017509162894410756271288089508037624294613789156360142403363182943897214238256116502751999176072677152845296453405868965659054876968033637331330645086193505053778834214459335694178113298393137171968069559490260868347916240538402915759261007125555401155017309074729171333210157919160407385871184368085085570227622532774053003917449119345890504221075684278988628265382126459324823500381503594230924073592531726854949358927035120897419696871552798073965664495919296051124948473101996324366923043935848325405029289923606624205209203059277019054343485423518666059269675036300824770970396429738373894737712726225649902291303369972627887599249033894630821142501956924921373638182382528664732601704385245039735810161427996033230079460129882964798090265381710944896947957440398922732035403431111082334139133706732350868466540022796344107481906696714721232389441974826912228940889222742231049987040686219005178305089669871163315579181011672345625938966607980644779070874033283070682439440358387053921141386434105223936488231157003573396385635194934504585545986129269089366609548520711974631152216383358560623765700728522891998587630725352513030643554907146015392462809898511282352594060844762320484140150551297325017253590121028919791318211087900370264854145161193160712390907889247778741464559370780940794573135338335872194004777253030251544178806383475344645498995508815572514802800104421304198030497096487145667161335643742482596309734998791981130618842529858828757106806971083637376131585715887745028683055937513186354126057035667577032248767266040677071364628582814041706086765710197466675296061156890424152868490274942518426532209836827552733035967776817840834338057571481538757647980433418288624473983682929358899457640597510901721661914107924660941291371965910726614256459559868450454779882759942932826784349549442405130042784283712822119893403584709158054574777986533649086176925386089499149798789618327721186289010764537371994639007081940191340165764908662362406213954385390379358024623191429242819057455594752055475332406142214552271276714031821106992791430316288235344190437427288577252409377452803723297626221481066145198136029199855074185894252361819823964533420508562229529175801863299389049232371625755287423416142598180521255392843455359941817967264855270403902871021715736843874155122750295872296458376225801685667981592025641852976603442795565892465068137194472593523366854587477599747287526813227411770294640704737668597381343977470016751623323614735970551586782590922950211059181483354965998894719935266474580980554513160685125354414669268049961721068281995314523241434396565826462135847993055627582271576832588026579800166380443519096900266981401257525491681302879713941199856118269289096801821607363932639104744667540148138894568861864158628756892837724103803744005943868453789417796960826515798003387613359896173486454863555952937012569927953470538441543257265214710447560709394078176717319205324499495545518125078760737755562984928101863272987655293959527867525017678269774817033324281833767727492796337291593156552558764657899845117353523453734494234045345407216116975641332972184610866047680697260755837481491206976492335576799578666797877864878036080355987217093731411850829675515758760587564511701544223975656563461228705036269219216633837146640421955518615869524086040928458147989594268861529040738057246818646536013318181121065935149522185847980579647123047037490615372882066358133308971020154051638872278196337036624243902178566397632628161117993081932878869545283396398430513881937908339772967954958919396024848105762002155739008521474228595932547716688103113224758911730291741824046919762089252628260795641108451358337901296669729862145324117745265411423720122248454620085511947072656753907677421253468311153240074053709293227119742529221022847621919156491073334648747911911465856879855673279143227188480948607482835729456520985259363896926772895973281887730775385758044980854899493016028910040911037860451400800498350154033817071765261889680311007555803329729728270719936090526042357188241061669344072592265063329063286958420570994914267843406936991705764075589023636897870750126856114907679611347992509317764430004321727344123082534008049026887981740289351388231459260107645252713607695314808485214503946182681191650093807272913985504765925124202123742259553656570305839366914704931844841675484441660332595995356503603467014097038850283710483388892500644145743814906006830654660723782756625766643138234245680422500590658826991893335518763865165573859003767707609987580460574329072367760821030852760004715602724567407948215433993359755559595394691114660094580121582905443639689418161693455274898911520849391355373960266513627960661265440365067041221902352290127082999769604062154297929732876114441601974243402954655599398956735561067888117070082714463382094269957353801657202281058492553158256546424102581559106060037046972763786534029596059604242330799180155894195792302199144483559528536396236918829712421713398584475404356954587687932971715330968145005698544826606638999833238867580086572886133906236800435474187843975714919449257004360728785547263646135313265547581768980415523310414684090099328971800197788545467528546648132552891425499812388109403619302418910901900613177761016832377732684872175554301704385007526457822013159188457351622099329719914712046013365614778478947906398293900241461047785454541609768052902465997798106385878842342257020945849048270553877982934389505020007843730298685857701597908947604963666666825837556487990842611722124075988395938555687835568505333168279137366160353280424366198297861210622361695499293693010655020872237915386044706072735487729524383671082090683175779468485656128189870258283994369583784856707270215305262895790957269478218408024242296883930629833378483746431195687157480894614163283033822989563927420156448192547123176456369919391508313864327015924091142577034971844896412589438728659121392055444680417861995224992556544372332168371940392770909100207319939973268521385621112040163145570653820380983206027022378885256636066488500013012359998156490996138880590666328137297697977781641818387575097326431656870169428241552470872748970799460755778561821012716738472250365039051789172060838049528102792540571713225162955039564087902110064566619720537323943088833865480195907928884580761368700016292274097291026278208626919716888744613089847071999403182118321577544197087525142624896849259628953283705401229847473413883271372593681500341522375595513679454631512306947288036275299590577665304996477307177815387752160252371896545195970227156400920212607197529109363257657780240138017361589240643554476403013512989528795485795698835680459470376689438161991797097058884702502205394417294117093576462349235327025753852718924078529254753846555029870632034278427155635659762625743114616048800097303580328881971446128580808954588903644057489838766717825257541247379476226793772236889824490594265796457401174964153745748840447520672104995247891770713774709801481137635531232647478773060813800225445050675901963336676509032493440142438776308629085376727674086372993951846132118471703800465266879803885270146421238918216085016812779238416955193174296625025368782015000040439023966471533969092711763633763750383797995019743632737598117428924390535431299549908723389225552873520165337141445894592859785811934348442884275369746044780449163091848836055409914048536289569742068392751600338233976984760988447777104131520622547887990740663370797564318563713455285929404417295027156809234958822719681763128504763883102190193906046963215511071092178449035440195170577167288907329484987841141675619716613956730335675303834244739683740382991971990997578294929234065919595580008807623839040294988468070173453269943397866344039557424623202208140655861757018880027704184047932070686172413946626927019637751993838059459915458315299192980539452306582790429843891274923712687818999442675350108249865389497504032205253089898375270947007314000507180407762289832651554442578992647357002168035507190102777629352861597143797548692726003382270939803655700901614585355233376666953199844771694634438007831331744224401173641468674774949999666626914835615889337157966493282819777378193190888551475092252290194875917307517622360088430248446400754415701485335390640396528641457569545118206970719628173712695417685610713226220787960486311642958992169332394615892050472160979825508755196074684926367320612649594063730411885522580943979715879515479208976239713350207042782810840950527921874137102303466195581385522817163286990120162099526089040994523829184044684489946892881698121329510994309226262055764785426041671435914854262763378255667297097638247983898539972504406508667780036476533904666817982435446895186997717442592947345477124450485436310752577075302893781201485385382200518141224888206403040067100691307837829402219911047657855389042739489082835119153531673622676030239556711799397197878804677272438126705042394772181214216584798047317892045644660366053211645585895835995120068140335003629567139681979957646660359018159365359052308780686837734693959676904159768283046502937363948824751283790856240477777058129218874200756691504584434510399923830509391603060014471612954625023043008802165619229362186518565207605020794752627440045359955406047485346305737430824359747613443754476739448400394579595927714459147930991431651193613582762610459397284018976799195421447216175909555542295872862997288690674016615865180386745321835497951843380634172141777090271271839127191784344314913409050501878811229819335041863206756345380828830918358428142664554400915095284362243647917983062506860102373627510914903740581777214956195944838296932812417309221664464141013434387231145140935435443451890846590344270054408314049288346163244922287444522564543975369518517985791634633832673543550227059906865495815419729629515984862391937992351243548560186975972671101429900157066263433937470550053179798947194266178596363601364238158293401515451988597594779685814927089618555226296328217136236845633678913626988964483137358331941104276364741420040870307348639764783601607228278164623858562754856407540452591746974152427147923310570249842768528550302644374014566959640172086417930207298043330227690274141432421056137460097928994420051667245824853759834459510075411888627367655391040497115686323378088036262481932830274786372111754058534857451465161918704683152368156833458589595268353401044648613716518995705243553012638239026618251499797643230111794518812244607159692828585602548266313529290442191188694646930380248313736399644299889696142524610505356823055971518592268634493362333209709473703461762213736718768952244617740370636758256437246872564968341390533769314119593667588415351563665163771771162437862430435199767730175012542078115329411915282377877700560118823892973830687063412939996538063808902627511852020511353627680083699799500772868436291110439993425840409615974314491009278133068195322207574240973063545455576506013950110221696533794306758064643878773673317791041515322426961927229942894887545547005467286061419984071157438182786685886588250923265605389897716217505916223531955473964858454676561338312380223993917018827037980580057765483188706505302957395439037660047553974179505893188150095850143309396656660307654956841224856815964483477794222253466237038700082203493806108498658581548081418042733669454584231705163993177263633469205528877131895760153792704272728929523780699222733640375336441466208616912358589109075620738956263204041666430223887193538690269367382815780133646649279990640218206230293996977397682855689372140580303290033472609996589097076334031595165530974828714512071514800941570783425570960409463294730818989321150991277378617544381644224628917769758245309254641727088450133405438058562714029497793837476711564628662760771981010344452066436117980847807456260822974984733273140306734378995569616269019060940216317806015065844193312824894591515430698287726830410636417215847399702840957681044187417020103541134107481560680665946343460594674408078596294905572632070060989041881103840793840670155709989120196677829883016384493458114626273473480211075353490535722088239173074127368236810540466793312001152125806860905871332125316034782736405696572754443006743548461527348252971414688500765108378094154730466666840857699531685183671577488741025958149948882271173705082182476030207311151876900678101673580596722088696666196862136054473388978129323102731930666269331835273906698609253966111978178621662827715736782335912432034245929905014644519265845071494732281396501704549264182277345547245293899037153194534768799193541171893739638310796775078547149360737823342199597142411307793790876368941520003409314278080791564609938685016981613807439793264663429919714081645349183336343616704868064103726344267461503468127538625995192549367944210039871802948700008087761995615227390526191969694492290038537637151696373280553881235973815618164297717917762459269783852975751679952506506688033288974405903653492122987767679874476419467326708690640842451813669009254934584174349177878727121356074963369297383206013455136920091955771952031579718453848939711113162555312731412749984505930992434604466859480186137229336481060697018434683525234309902738459587002824573274131690128711231129063349767144739856240175502457592434372328309036430268565686994642617846219122993142495373632027794814721080050795379170727871385124368841262664195382105152603708830950938335208144308840399941634415218123538202686688010451234112920559394486850009753473179199803612040399744515430482758807397530259832781776768435751153558816922523701063871115149016108672145482145791934440008232297265742227904757933410748500268686039693628408342413062781268197061061944862536122922043543477486193567658850470241541923447160540667244488583336351966787212738823099229210743665053549877300482268087204124172039154199806976939181733980266398331734825060690545924668046105732675295133345695557254841945367260347124982964462839411814458607777382633035572019717255703830440686416726646642050610958833337262216888851292093688577696978466431248669635744564931664520564622388613536928198586979577619103609245613519192396740174029074068123788299555650594848322890459691737134261630864396806342722001845467909412637267243911424808027540282246218951642475479403581532790886649147924600499600306516110648337728654751017587013799200957298461763009152909324034122149612031312924559765016700272087541633476079203935530513779263757235251575724480826047390855659132141212370196925854463146033445899212993819432113546958162742343429148344975605121203321108759515388493670682479898444903444358402745320602678888574858940792655442633273586450257539750764890580440269821004318968117193811925783971664192032312785661448082731019921832015228834399192791568896170598654808962904073007622846820578334858686356761035837360915975758872795917230201073642711380061696405314552654439997858376613715257335768870989478351964147922305130123420797372579300817019083098895745504897046999553360063353417819219793983855282067001426091081667699699400528861246575348305191918218181804671820687312772048315382759803122445560204217722018486696209923952817900661688637233789673633010888677013083913031467909859159480133779976709977919614711981714701135718053301422312155851889517774669793922007846536982915335706956501596325113337214288693063456209336845197020454526999051698266652909767200746156677647013144146444492585558767739414085814781852269120362866558781063150654814570488619070046691979823836810881564302484186251613911264638836525333987671771753109244922751407282218894213749613120414029896879545108446963229589324511201274536417545330599490856916742390418804149724958077763418016517154799024568080205111433434572118947205963746912704408288389640453231686086542732764356729583360759777255488068655017870485126198520147078997204987125846573412304258676882064528907618674593596902614068216990735659229329649956389791199735951115428174614672578669201110251495681582846564392026091830610824869136244550787549339747272523907311557659127861372266347715806003145429238326237430365539366309272971360748603139724381056631201476323801037135044537788506241525440051632823141088036106856819787159866277594152014840483698637497202357551789644232503570486021718738748406363783248260167955665630577260624778676393738162954313143653714127046863063994492354213552299894277805551674813180151805476807530973668104614061238777272215745268254515204958923302129150824773442875692413042826206464214141779690029444459504717282494719092440007666206405292563151794341452839760404815916376325751190227424537495551453023229342891654188525993107145209051705129759464545487093379028339377367956257945606472905483517606083196443557759753000926382935399084980386309373940093839312290126586816929635643631817143856880346700760914491616586095828734859341918973482991054638419200913791664804066054260423006752921036892085285606438987524431708235776768793140658474582120544781049015643989607424770123992175711419738249666483364931917664668892746410008157715937235948537668759959487578522056852965553869479185505402602612383946299299782714841325765762418100989629279280188442860617272749004486834253768438914653134333300997310568257383099380227684429925284079752278613097655312151650585534031824709495637281047632264892935166072863253158022157822388595288182245644228946674543270100761589592501598595359368645573583710462984634943546114933568643695376897732420901695904899865491776124038834409372047849203973553178942254754257336281212169060759111302698877395255722540529339620263817647756503308936673380783368318033274841543556904952826943574886744411332293982854311502986395580822771092422750985825378670535587259807227666310589715951297084829615910204157992804663938383866132863676414880204933977056023165164798089573157810417604219764141390265539734754576005824699085719485526326186321755301368299770171709896314232697449228934609234685378173398813378417408251987213776140072541692013370341557139693819267147501496479665277509353014123619847336574686605305792765288570829290071094264025480890915334420104190010608061105297136972150621413658605826740450383095502613931016271344648847019004442130257594851723857150340753383112362201066357757354516315301846454991289405605518915938192576085674009566074357119243819336684382731121665994115742448053610208850531599588870890863414012158108810145008366786089693290468764907589120741892784204632122537622864527524263357845960367450733621299172474130585595330495085625332245292924268412750636214156687825354683517617289717413423589225307796206752110495334894011209192616534159684144813708503211684333676869448134469333220687425597748184014617068915853159296135386792898262069049968793580274649259587595892098684732148797469681883837848404592187529971715143367862444448972297926299690439098792620997775569659340148240744786358371784227459149577557279677275628643697641082233203494974674874802143226805093533327271599950089363317903701200716951974801931120988295729831462343078696715847567967629863681476013645595666786127064713880091772510775207291494847110736588775358350839907522458694759818634687511140931934126921633839341378734203455192106474928927876795898169018167833061794568724844973555876722104962296865505788198394694196269915564659745904195496729749900606908291121838334860068086723035303267374238086639872710649750645462781318303296401736035527666161198295366324691700294612507176206742105599179278398363297722840056880943641223637719019526497995753071174574480832398087611060988156096124126166004374871079716123748605735023868133332427676295889719273845523671650285299224790446669436753522908396444334298740134723812565956631296417226399350476140819733776511813252109022422872981926582362469520305911071468547409602317939585224165335501057577372405154402451353750393294123973742049704324333144061317824822792112024497115954517481184196040327050281997920145095999520104670614964147034154295575495090541760145322393114039120252827778888671565186068701356436467841187758200488215646108736378282136746100224273521386821198515810754604933812461651574637381066913036991102899864104765267905378980679224647893463800192384498161755647360018650321402274114466776177441308293196097298336996196522316476579988362587892397340274531117187291262935564827678075262583891165770296177369423774212695224764493221836059177192726498916210971113465440722428764254623799449504856872090400252225629091948340819954042773307192228229967039786403254751160131498994197893189349648208179004710605765227589861791290004146398406329143883095431463790225781620762067544298276537303766719553194652443374636833867568499008847336917252367148951557364932871172402752658254925893081419186826992947130013268051586702802462541457122535670339289880123631206742967849461734974701031085798188450441835402271207237763551683464596049282314108118826601555490817876578243700230818744695576534974021270275569238650773761838037650694844717742818001189217029103698555552895500057873248634250747947403274435471174014489266125059335345945802836632184159126936368942518576334734005196299837030145785288685383174786878289598700337066983925161354608076135113232408542304386867648124601938337593939686149450733564398055836181931086933338106847795528111301944509676521855775868456844526590918971920976737053179868446263438674224478846362885192865268398193786064996735390714345386515861159020691183392962465705095029256264815547870179861589776395506490814205379002850294255361616584955913577632651025021649416240937995591917260855714322555584607284521353679064777363753519596795776917200919221338221910907999245013654536037716911474184225358220346808178510310122469662066186486523669551271139270052657973759516411492104098430076298434796149268359198123302154706600715127326587537394557757726891920966530175990766696401814928733536092545398317967693701448114361720451125940135579061569292122111230408727855348351737460377598848238220777892563002729395692775768114889788499708026125948235687975203127288682763239180121903012457520921337045797018979014118451526344191131607456751485725216637363449420876767623314192268526655897952227869693613894278342585078341751459159233845727342295826542746725131805932131142318561395391895988482058037369779807916044307190897918919042442553236680306168043027191593925478786843901943219695554122850466138853803731741562540892451040458032856735893013886616863512476341604485226387201284773525584697342520105394385198314830936429492190578748308332177486564494640523639319224468158051660049509086652820393498249143516829237111596971646869902629554912218779021269453742039088216366437751024196279257700686665778336354572788130847693538015837980822257149020791124215576305205490098895592383672747730999078586213118429692245211802307370459066205235513893515195079224683135650770652553792247226534852391855772790358581721542468542941910767357569742653912303436825076544794260843149622757228157373093154191897207982571050209593489757018593995096412555691766616934336846872822663643154903269102483286553730110333060463498462629369305462171739032234773635807223799996647904826755195816321128161678640787949095557105410842115270067368158950545446840487997754986307129694717663081773284402596630809488699748914271412007461535751075069355343078064767203123961184491582003949982063577131176389855812937722062510842519905741133158773948312441032765938317889964028229903153217770248358384715039784331746988661373377995348366956796821508829030018149965808993511554220031100841429825407281759693732423537247431994062129394966467767464697282598520474792407002599946558436372047336470428668825632300213746858901894986855991272834745969255431096875984308249288131256416133731633680041562478955761780641384837215799255043254052998487249550440389116272772808526052925623381102197657970198170243830780630686541426845084580758201207807056257588177551458916155733461476135494909222021371950307786181114715990677477502029279145354862659258191796348088667576309820606625344996347244165294262784649355717569960098942809608600042758533377100701391584382922025817786421994819551345677361890674792293079711352911180837392948725027934010380139886964048681766976536716774267152663898270717769240901191908540946060850881027177132926040940641023085189641306942640963083139322572210532411581830350340318906507966422807598358907924191201097294489644304766233325892499078590373531726782397678997644183994598168719071955569621375116422957235901956570091180118729875150544845141028339321117721515384368578058888020629568524088865960382591187005321436086402919174956171117347387205613829783331790081663218428910050462933273567943203374500611692848999212164582291014507541711746440714739082038350054406700917311683547602658319861114241433398401600124665812695185722122303276256294069911137763109475888239449803199206960971818048653736149324708438297230915297442621204356824611607205561009900219768144431931684385404864900546017421238314083722244483177399339392104137411734203188015425978806724462889495436399420088363263889282696430259656730492023914048401176694385702678031655130639671038384467034468475085925378639480541839227184878735914326010309542098081787548647570768379565963614024405577721055786329755665254092279685014960185805188649174285157341797461432653337084191006141877682264669644283031767393918037771479165619366259944029804887720183487599361482805913951914837784937633771501234975594713490394944443990750956004020571011484305645050841802599735861576846069785561745820101108063988626927963012055229277085768812327216764984161933892142337746917581341687666555276926935417076021848856342936885833297239958414285825644960523699909366272701751817084718917687586139468977599450301327398720494032254970817376096855238148518928234404073160137589704738187051793740455809646752282731434201289878055125570000629013610919107417063808234612999867275798269575885974542337483548962994592192590697936414326163216716618388729160503192975125650468782272400663776885050286083801859988835534872824600108572109691028270603032966776933866099919622949822649179253878126719521814889682064168028586966320648954337098894403063743115238609241810365378850605313502208108913698624676443059588533538590239530048962801464636055330815657597892920471288161870371530190025356543377179009397196849810932599391563836579936615952898833069836477478407497567222696888753375783436292649219502990383308639268928201622587765116624336496832467518278134491468141837543129974911236798734737084094827560768535345801667877463486911002713628108474917242299273335628473491619700367864029040886424777122214697797055664756110649008500127252662360290955491560673577844088041319967981711843894136407826818524288995749218734047401630805786306122579010086568888178280274308536438353876072270932595877908515331994901792266662970358417502561299607889522601540199790495849929721108389243113691593283550544951089314252653241916914126295375143301296208820680084297210032148209545038541638428941966507656689551936746401313048337843058120202180259647824593551883994163575814462231678571949789806443664736529021036335927780148470094050866802093828652021785938871462939580005757507508632434230805924077822951587536626214690387291768841025664865609531786052221316324475152340102517821625467745523310478907255589199084362993915810847431024990683956803016724719817038666275691519735975576256554901141924685821625833981401987934555800427353789323485300783591467755656191999991389429277992914883358690194307275612748813453386166344839063544984206989969941594812403215372716728351942096248587168446775624611922702364585584284840930784243070213922383786888473254392517181910608305492435266772034637042974284126465840101516797360728974686214336685260583821988270733909572648066819602566018982208609782222393337546136362963950761934088067525170390387199197711154024638546381735556976788650741376903139798385206070452026284662336733123199472380557408350540356313720235413524358947629625289774261671731287629699041395222856426333210692291278907245537812216142950543264629962911816080553433053808147607751279413189084322797612622585845996287950891816617374306069429823667640445906237005405596686088946555306102485865317193342654188332247254547970335726139548050783150918250456642331677667803579862080759542572995476363712532377072056777380247803284680642024208265159700971029903245076623092028391732560477523972271824934577081234626846167104293920704448649325727961536347384539862885973246307012756714593409651920576678732881285805834430372359435777727315580546043829849698826860348480891166728615462855239187772092605601568672470747431050154841997700063828471368856629609931312106424232262012045099702891127129647013013691797066787362952883143087480880501017947286570259129315721940791024197042968072567008388407936114455868731199417429405604272693658097792894578438262362797092052493581518488113701856294092001656928828558446919543549760968528845934173254529039668121495386282547237005649184328142795132161246672775703849182207144662466437951430363901269637623664897680465056450194612773229250516987597560484935921176737975592956837125932309876628827092311947037555377886042080274299662928974206657994274714969709098646042600976274622890749746814086716916866213574567210021337846867206864980502873291402224372251383559481326083812832687183000514306133597868116595845732915239106069618684884392054729613977985660210532875985348835002756947555701389365281003512954453472031637697876894721201149277733808770022939425044868172425964820326232020567918720803316548287944956088248635009955729856442766302192466754257128236186958102345091499585832779749106906119469751889274568705859758379998506521374803929272850068145992095342109582786986754276825558039511713983072932949389423167637613616998286417646895140052263895177838562388660415892774683587464151787539772862272375176011037249835945965273553250327500854560821256704646969779791403894770061978651701670220311108949559614077777323578109146056901392777312723432493835508316739876928322338477117816757434755934577656010702973236825776766324770991105654885531477651961617358351435073730177722359040030395832465666321303581971343732275498584913994709112076760293159981658369758777133335997279849059401297892792323094615591701006613540716293312992311722654212093877480948839184416700077439006974487650764942449405445592058697410280266824769308745488590765632833622158382967439533543875631426788051797312357978539581653150130791585311587518049401278670560818674919556799823582704173364753914873405253265745084520946506657243527608291351355647162353020852629548749010669046211669848328600732891425637056964757420104931447989531664152618116142614174745294021945709341344290949433470601434841534901237289752139215834364055029255509103430446791149294772176764558404069357627571241415817160258583591846148573547145266021620598810333303168796251034624427248848949099891380069759206430263808895456305410839561396408879866525550465806883987984424174227347020078202815494300861356586300828833361950425665238980818377665131315206630989242494847447758130612017123147755864416571771733096110082477917490087440629858981588080592559784893499569059257268347538942558436674016589663412128358382291153840894212748561372273425017659149377616610063417173808187787912111996962508973356798520286895337975157408237656230187906167628742955570695676375618556250171643374631690197049882034286058941077405395124185194274467253414814738637386497952125600565283456741738391423426419961592505315296367493493685905138925077987002363869809915280756107268229246547592792743052691660823556998776112803047285729435103441996447969201370194386076577460873630753900801339861248639714453132528900006682549145339559474784268592438946422413455746680881409963538797544607912847587494430577703362942240026276638475931896358282128306978537369361816503975435704452371562964510700727250772204377773042933136085533938987677284528940156967663554231984332968074610999102897006767480691190277152008215527777305292690500084568345769012719424585329239720826824350221508631616328191182361976957070709176848149206775639610497416369024462573384659260854261407494580717020998942840663355695328650222106662877390464484492700761026006117982028811665832470449273636183952093714451375796298572786585541050422749787925097738016600939876948647291636596281322617145031012616424049825425521443769931754365075721688108274728730906915046042011955962862275362642985022504757822901307661631831005261868017052981600979196537113041836474890934619479748360636524370363973821051208658395178092249196600653088923694160058186379901338691560288017023030424084654694852985406120204995221737876859655569529263936286216402219539463605580087299098944600845721487657025510209438628634102284918999618207113184055364831015526054336525368028393043080454090200564194243398744269385951940032746589515088496493583746552139321939031054305419472510888861242377956471709369123420013730390936326010319989132657682414455265026575268459710957671621484446728886011089626624207075335643262678489944818470602562606753464008144862650271828909121355231586536443058903139417396438308588549491175979399134273997532434448998678336042966367782843581292905054688353419340319078658075473720082844403428505392733827374314528763055829678917218718722981663377841540272500109842182921685291659641301922895907506631756770618042720514633802969822402124786873461203414096169336494134888839304769184433405529338564227300980217357139506921529025519957054319642606921553900157727950752827587678369597942405424934543647461236568647152327401743358769134606943510821194617754774694172399749111996810850225710320503217445583563563164837190072039235869211832940903465506768480670410908624346536582800502547640584452195127654608396625858482863919631125152011371864794651215111204766333687282430352446236606266628657141303860728361737490969580671395497509796080915132651156483787118353016229790159657645916041877060730073228195747703799259268492392084793654197829225026211622143634124886663978124183237402974342803622887037012894490028109569466335392122557135337579534293897420119038198458230157354503814286251704184591753391649195068018299699171663891008769638839998379340467999027370230232599312781553311873102102907683381015468768672962945415548547008469888925077986086890857883665471838485452666467123213611370942057191045436307959646174127421018065840709338545250176743179881237412006327486442831843322505029220680596653973374588234014513564885813983061624964198537297971623429281599964108363731353390931295896216487967570989077577956560260168117805276274477272388226921601233748032080488598096509237533247398741747248460725163799189034778577698175560137909235971333846134835655166879223159662394621717869223457894352150020079843539748073594872219566418581141654928395745111723651076478130703566454336120129184353363008636222124774665064426330208064317819711340927321558024313693734689205271980326886845960804101380453760410775440765081819818916330664646146707843054810908230562381617805883275766654701409289964744571539412377249460059332634412032822224573349347766333093873529384983783044627666992555620069732405008754490348583891849082300221861076055792194187269476090372314256390835228353972983554482852040086772584068241603933222919273972680445785054139535817954787074551370847357105606481946811395812192772939428383062288945227694271296008690715687375291413470133507895229608433996175334797893037892573006384749815997027091631804053833821315609712630261038722698542263382603266353828290546913048725634775691257681628062375066413672597863443917532966407267554636027609131464291213071216235560460690880412367177569842048485086956008339865866402456271040579176447408635649724230756719111529448668399351204901366093894531259374565222244031389466969034066145328643115299769134362290871335887145618345769780607699146104465641533355905258872249111189546785397171853146132503956502498205899402347106204220801850025891022489256149182560471968649312015031829687943114156480309397196004120115109045248509589742515487828143340580700543705204754210247132198476096487722892119771588130531491815545383463370038216971610062168276773907773798708189871933733656321579130072914766318151618349963378065728447560376277239530527253860259081668404237547020284065582493997367186468239138342647268698871459651299975937861213588477544111972551381472477085228959988178324666484084373294323266954330325698429004826501785427475464921503240892233358768308847143686051341645773101397480154607415694621804120799514696624456323496411358894997110130655223506733547190597063042135573503434491184212771798109479079704820122675887704214964435361646212864642931527250991247597618653308616375128194324884009174402669491389037120709503831159170870757133037082443144601968487219219531431746350744789902954713430838732726550431277754422227863192540510885326427754329699783894265948023288926282063823706793115445112724636895708230568402683620092674234983424780236050463557575750456986149465304451382777231350611024945608541898565934050850495540359303456511493354803947072947020645819964037012649995902763098935305038587317205014147354665343058172441328421841250660209796767875842799655130622150144685882231567114595841042322344061831745495431647773698031356487309282367838514179297148609976277655754981462929716522197818249785558597375213820346074539822843924793247136614272436011752541697049814618800808499346697967665770309122364430630863725938602268724792320400692055834899526483190290173354726408661579731889144216262286751428421930029945505413306423666936820277579332137788540410068742208290906853922364686727291043702727441900272764607186523767041028393669950841237146914035521365700429012502406028935841911634339922351243710861664579876551603872448951702554117429036025629932208658258655976283175268299015679350926006960077545851130524992863985661029805579125964343379618042995413029126745683118522062563589691442088844908454865238260833866868343834049949352910294200218891620885170961678936977326766189276333360009648710614307982187051882636573080751294608769073139296111089532816949517269712558394476552654585594747352985179246918869683302649059199592531675959058709497242360418299383944998218943225966100238674257040102351955020870131557847961597448690823898553034858525274579185608523786473500235562687046847745607533929352082599119950428399450782504909022804132499378010563489473418597575649762683316971000311874608628821981907085426475784500241224204967927942064433516706642361101433928294474361820910388525044517339441749385021470080627794855104124065373839132804459490346615250413847174991794518558424902950631398686176571574522027280129086129331283468680676071359709625058077996742153717134369598776353402043810180031921146876817512948104306246935976118194181746932556602062826412111724982021105147202088636441870215697901642234753836785169794000496980473112131953019856118340483697463844012676483745256351861417067474359315624527456130996066978368949330618017840390318626555780328397724078091813308853691541800431378577748116611983920273899007823309762910962938848233432675017235963419513175789835373764698317397409705741337993173321876562908393547726476845932281943141712833402245545796902931878807911209976839688386844671682282115624964655731176160219785455325455995589028721006220290824415876324678526252288490170374898150491955059800640140628669731089654899206143161820641824207761224798131392298169263466049694725534730471194277985501736470667305757187032291158068408295059913078032993870932323482721736798572205539110049857812019737314434813400337826007316926753532112822357523751691490147106619653114054401647641423765620997562006648576960103387773374617613383916946331944259973857109654822223794801752183048874559588529351140783384958716654388109514375319247932776386917708284122128898280586118154410912299361766878029173288631070805603486020357490766351046758724227105864466658139823135514210838204744572465378362443101801073423957420277719300270911048369998488250081869200268790664093202357375164592908751712949454039379615873249212387775617669697138700587432056720930069357951082810185128710115174993625635834108881657104946891164461939820526890309095662924284278277509425039756472348418687758073485423500005976578595972749119397988626515569088338414221478955807459852537744414432446747024891644805092427727744175237993101248829277264826586125159272276045698413561306319817484722743920463497258431536212272643792203739284928560334012354569953565671630172989828703981186456213660669761981946882377718150699363228646936413985725800890996842184886189049286687984476641798491000369318409261329413772378368353905039388362575008389136197316273418875876754204926149722430561197461716097541018236171478828234065403070744272957190234079229638243793578837198359096904443958053446819314742968807452903284789464774354584839559100437067153940608696950493658649081893760664029605009027417214863622361211881159275088636857638144690121401271875005523910759210963420535802530759618423587213781315472410400107681613868567816282242767498969854137659348825558941600217569316837317455235608974776280200580035758998523911943906739010442569914537539215038449826171431975996618938627006175977545695373483295282060597450099764971366076312160608482555170896824221529317200108896994532610417718448063128516848127000719414487704078720144704512278040308227521550248215207423859357843203827322454781243700376677900669475355911392453581999481333433101213792326232265268955638561078836376811112938325210706255018302561710461515306732894836781258106187029891286044686594315333756447629609446713857218787799611227910968192967171227230562083491129731847419457650235144078517688909870133636581902462664189038406289339916717642827375917990206498066948561788992416240470499608639507105077039287377006936618071649853346708668563808848141925959315159656775248469884568453212038033070153993821798869747019454614976678089461282190869999645162717391949447222785497117758904433472629438698880918071321334219629045952412718298506004433812716837170818552516225721702363472351495588315737828831152526384890483494560032887776554070768770420072398608672489761881395753978481778747862385638828864695351970275554529740344390325362060440331729941086995849625323255214263488860133264794943206377335653382568199992466836323879956710662882401788983085564950883257670303992362945899659454111942983384952023431242706854420169097056949198738092487544190158099783697965879713795514116475505411741017569091178410551857515675370558722597521212356007742208911992840381445247565903150017218472782714566571273110192142855582509995247520386185889564198612796178080525640285518769455978438954594484714533100689427942821558959027699911367169351265655232605618605538421385377488800417515500330376394264230534725775148236120230875370624474441031078937219451104437932538905900401499465721484907158071250854708681404726317943687432070629389867386521670589689279422336827021317356090619864013604340955469886791183675781252941793820464115886220163493385211281947476583647190674597851292069516684358519799099807575707560568900371333687212119553814150796357493194997506162216551030676573285642122224718915284081993344329980569349300797174295899004827872226890394929171317411746183658322513665394641805717539630436209487829127369813449030886395177757985129712464427507360596767088920387737673177243415761979025724117148228820761477087380648317978514824855653268690828854845771325841731705972920790726663900472882080263327646890078273052066252981007166296765005735609131371609980825745266528934647781704514572123657395366681755189550995655578024265713589323869035024835602683537184454725181306398181330007684453307472192012534776447091941493302664835616734366567872142426365885158273461379996818979255534830336383643573426514469071512510940517284078714534197826114925109367108271848783536822799283266061595701229003738668833638504992171967479884531754436072847847730405917067874847697001931223005997823442389745532181519346550509489492246530791398909890870984698135928212134220619049391593578200993026016323979799915288344560149731257331871650010463356137875251147273630610837508558126026950988854948385098686861537820882307285860521501510553868708595917442997624180184302724390665635453657879840408215325981901290334915869300068577589824350079124135249505866550558662266667041930966932937648512764268887192128809373311478466357423203395113340028097090052361571987210518784255225750771006894190637097841741132266840592388201398345626308842734970506036642472801768642534139036267383080281977849720310049410537732769957936107997163725591415101667161168255118933723114188737284606142475753573415651502256664194454481694015366810823131574614158902214871961420218202396714013125679753602204292430949815336505763876232660740173965477761159550081432871603597737298538774912912891200585841078573231459023360216712606606619883984335040280974843167825455913694920829781371440613596740069195559887975297424324197569632596338451090433036096963361440642154365748398652702020887828528779079593366651570841147324653269393446233385620380184905624711172755101352342233699159247324622021766772497747983874570456525029269919258443199513950259678477852140772288478910756156704769836172152836986318592448163176226343935107124943644238614121675543316913897343272888249176278095246427502899965854321558430797914487322698223708772729385364516637388673608410266448434919833580696468186642200903662217381036445770633278671178673448644546171650235915884587376998036740219285081260843920938229712981925972004570756303491446020259415989218574790217195957151906022067771943791368316466883803420055388073287804276951083129896228311757874613348811160235428247498125761622539606807624661477454678731360124443605404222859736693511350687857189396539788233108176553287732539422407493763237294240494063835872593198312350023609213072746844114775825857247462449754101033894763104134415151138111689529265912552016893263361853484652464481379956607240910957574118203004343853237955898652388366906099319249962153479463406310461796235191392268653520402281636180704830177571166278670679048327729924788691387949863638054022365569038629276393151789822316609883402764143910280867100636501972038871650745218979124568237622204399515606437516052487715465114375844093975537291264628595737485821924458023812626049881865357845309778253275340149006358090642834197002892607196476115095678316656250319010931216140810687199399638623854484232852359017427881294491261390287723401991027893551228288505661745717877567520764521106261453413315199527842974037568791066532032012406165168387433628261379241367187110956153896207445492594048733163382523186481750628112744771972506404805293855968519164942372309542792957211391275332649341585135292754539892686746893759920983671712637155673083003495695245316495020522731316331151998367478552802693001903249793381533871829165561209891762997793398255163740836079725802652515700461193462460415225463680037952155949647039751561016676241342587768918730749768124064820717300403422122220567548787587653434370327242545086518380972270781234972962720790898193008118034150647632293318335150628979044373679098490351346352133613720067613888545136406896146579030580691369866148561368297674075037180659442843533388667858676707989125055241324210027995757332726295329264810100040845257727292288309765214677878089310565007388681766565230768210672557183340538249832988114292140513328703739823682707993577198351738846602080533526945238477617257676887599245726831213885052330130264036923666540909009729923198793280943215487086225397714761144846807290684133636796165797080831493021106920168475066461926534499984294426048576586250835695912267761048052714888340370125283689451552475670092773226171485385203339025689001281153440713567708874550263760320575662340743525352750754658157894338724241786611673876514023867037109245502398813653164730923765607319278768505513276038538669207192889535718936495926302224490838631380075795750417927389515556091676562890905959710994796018457752826268595177617141833817687771139971527253093551977494466866118323914428037475644733786500860571632016543835895929158055939888872923209855993766749725202135758688285751058784954592117092808529207899477635968823131791229123316045494217792708757168129183933271419303235001653619518045475561552664948511232907056715463108034938480877601733586622695099004667597703456130688180463114540725870585049518632382843443060384084552048901651215230412314576974420700057084480700241088099599890641987553623290394924881546007908555173599566180022743124969352133019230656258721394541080022520171155405222105808715271978895491351226679433750633953246038188724242171425460253431566602117931340302206332146064641665211283877446172916720822574135866355901563128073409529863516945459455910277900384673519414991243318348073194404461763981397199596531528285836424615741675072354749915227740649822777614002033338543900214544510042959693483338730297460277183343259379977484355694155729963578597743617202109979692064404437531769195253202721636551597417330913439093270996156235738312181033886879546077357324471119113773141838490673474301353636581870074255882000031372401316480366624057046647858011433786135650789929324971348557926640622688674970742293291590413799005520354254782946676419317720842871441225496303198930922130341799342387727217829498523241318791225267700552815246452693949375856140456668259932085054009638890548272514069591424156665927473852346859205920355844090653199591785876304354447254173313625557209988095325536503980410064484386784621708647252140940662779059298817427001783557458903356695606710963765992604636345288517386659538322858976435818633638608191021882606504079556638528051557201716312379665130630369325932474062223156932059454713792985902348927851030017076286943469364968045063900513407875340193690719305706422013309076264773174808913948773492919024273359689331214831353061718461110656434571832628379774175581167711939457869548849148598514194531741848338691110808093726705483964128655822294085300715491048687754512641606606177127218247126560219000007028493565123365177328380315355538300127880524066974803872848683277899103147575569153028268257354313800228789184135445745085272448532469271695321400254592028294618528368544034878170302464452758539243742968075233631603457405556104262331015452107087619106242802764592758313840142115922724564345864574294934498246958865520215513966246846554114511741474376908335967064917084991213233666918338275808092340742260282429450775398591900708389684094320342743820167237936377363893150670197367375349825689740681179250655020961160616464911238071947320667403196342721560951587136702047884388684099605684760624138574938512455794436838112982500035235867610991191144711013790005449871376735996138645830509939050682414227134258692426892355942663647131847424668431054672579916724985856671602089368455068708235522928855584889540245203806874032964455339228039706205054219818615959182642431734944751832961899283090170572473219283519896071964006436303937746258400242657433680766386455961298079911322316944063307369486101299292837672939654294497478251674165474009652362567545561965038430269238477844456126111581162780886105639119552878186170318806097070000098980878657779224589681441719062870779202063105064982035951458847434670937835302633143959859463209760055028430658831618828372571589064187762158593566515641222697793379483672283091301772145710998022580531344258510406485646071034732337195125960207229495874860909973189335935479578154609423477006089748478459784316740220066700871531076042128195295779147849528854001898943355580336150259187914323158219354329805636371046048636430782300858474993478060071273142610565100718518271413626964648067966776117625871995818160551951196834322315057693058866082991839408041852177431448236371934878927902695428314736697616035481636754614358724702506172107136028561086984033926441232280585950857928601486461493016911022376746557530776261438640833276441104653243302215506268966738318479705690613688925137798076512479843212529870394007252656371322164054862222611207776778124837611609696895922922535291806852564568343317256454024012572863191340304837183197987864665353986999565144852420718628768952416497628042078442962998958636163288569879096704517361379270938477926718292225095888072582920929691071531696146064516290092361598077054828505167360524976892956307227972875154898147823022734218424339859834829259513226714052203952540926259149347240335933776228470927886264955420238817980915943747911699141886551251898099756618821322987844604313756313332714493481497718100464587075999067181602230701763526684312578714639954165586539072283890209210191270268074856411176228341549253044560790461190938464271224752636739798106041246236302893286231780404219467684525584990863873742275520014339414018398615175852192133243329239831960971836074589324268238641504749212908560546011885686631964555572919229907058120762785890986033052122876682893753799359798665796881795814155974442235343658717654699128639149100301259532037112037597085831490856328479546717592612902251446505476904616049603507181790904683477087618550461206903730240612715270198487682653782287230238345567226328697012807679478674740438699976537898096296473936671418235086332352353535112307708820076590468820899841372187341154630334776309818454974362134795113304353076432092955350244826150724542672121545994499511634460819071994058852205827772261486970514137552099103237943481627406553232617748692001322401859627029046871522707742918601882717916959194838965621427652989730577682238597351489534509067346413879516973208058823963304757759994894436496202502539477184169512733464097127168371893946013617020054004538899271258565528344829371361040980493658158824657577872875434130456371110597369564816954666023240374526940770420682493493227072027219051861710022178096927621657090578992100833067477685795299254462038286209053183899583607494752375228753116106220472742719447402613684125782246740082357358566816306601986082943712382845926682556182943079653548411084601490527894505672265121232758293818208766186165368956597757899777058879955139912514205669350886689135722094915345300721146267990508447301158056801927803571298465431198740788504441590987326594320312661774808559251167536411812348979626366372679173741965700441854554752959845367716471962985170955566326963773870020108406038648917190539982413982183830075865199337736055029287877533465073592793966553472010533050646105313464212400896838518923461866954120055840502459241999814821540045854913324275032325875911655149532784789346291652361425519999229464173129728039669309331511534493188504287310012572687842988456535454487668742618876738877085279844717889250126664398303651772285921537035271338056065741872722253038412124067826629773572921534460868809309875947474560510560214724061206626348309098297041192289527601639590607315914707347990168213559321551171932431878874881061617232772655755282681128408855289228131257768491162151573065537787913635286886703366870374615415959451402390165305328298059552735277450688195779430471357873736700082232265684303353589430456105861420812315417568102569696126296095027654153666271555722128412988312985099049293537281798546657446856583188050644479571967611302642481269765178040638084919846184181341465188046238418881882132296134053271340362790367558330221308564950287898730830792187579791004344882471595536541594847995559763979218970298042775446156760713972504064305828497504275142513039624460694487848932112398183897130617189119829653505111049301241710005479501979936372147030498207170410519193096860586397357595018500993735142142950894018381038902975979168156302729869569052522759909588102394677367146907777027434034823904816462478986000152673380338861446189441118866573840195086214704008461016442530272763260086110246997141046648525305896840903757893614026716094364316893808171359171684060742679579793338356541602642255791273316893570749385454274253612322736281090117955949222669938889297117170862484407009132106045284935378331624386508422337973127123466928790926165336001631641097669722556443311652067931679630052623193171555337988947107659960115397671191585240873566372093220769300789981178821742518765746894723501783363062003633067676173064706451281664411228549921742873797875433763338835785440111619916446927007546089728827410576299717670857757552478018017958006889446683952048439513930915677073657353689605144189875406663642113523044396707429907260650687390172241369307629713455019121241840628648372186371890683968640057364954990498178590216730719207251361512765774794327595281971282744693083284724556143768822200583532438293385216646391514523333678232032723985984317588389384466827740689893728344484500613706079950026624682927275027053518909270319801530826831600205531789812713194449991239397942921029813682261794924388346590837384967161972086699158870482804743745862020300027439385713015490174765831426938143725254470655679200492747700018298134413393820327828189254796411125423496468924580155064607111423778500189336935039136657111399750097009551987711588620429889092290779408583872938442158866356815388695035492422496286078527332112613036998152144116279759656083600891603910377667559955857371525409941444708109904593662401340403842699696619763765525068024586071978922018511718779360236031565913099986631872404723809742291234046352452911705641094395045623392029070114178198120132243014626555186096393200116635608763680150003975154853805273733467423573499473471551516536360158521522896278310542037756853429960231444478312234811706680007117706791705550386252749345627445809446385710582242293719792199965466719510329455211431923763036322755597739025306929576549672246409545045735362555186944979910777721492066053667147098732047665310013165681590339915754293180085311155417285470742310755424319350503204084785676768177865667001699048680737405893971074423639895817754673406162829352814598606920729714038576329771906871217441790503932108615485609219495456640901461049089318735600937622816378939531740565457025979945275142544109613902204266121017871607933050325379681293814950908867996622875082262011956044126795196379523357037658271769208483421307586519915102096386787190195302083599906699284960684885614082384116567787685792967134761792094731696617950662147686599375605046185986701392142085871396436876327437477309022139840098576789713617551532121158511159089180738007068434197778406567271406739988968890718525172492264913399986115491829098948715767236191464374731584415360759336624911272157671417266766279817921165850884246070384769421219175806457729730778922096390762193753205875283366433060493937321276249788401207843252015526292599552979744674566076314636559688094912473022786166888851879600874652764646162995027760733480344283949775140764272145219295360698035363448410178461034650275593731309424902937702904725209949668029603805148701612052114282635090783305755477021070353048616526831380276162649756421998717902791158318577278324472277297262753653784182740777195121144439205652132435453580186436623914549418286215584430118404523347845355862789191586989676526543384530580432570856737813689894212096133871189231020003350663381472501404226919182334893912775246602767918632907046629984373927514319704683187596543497067968920972451572208404835562901594120332236407733096260642117965520943148034127781399700079413051007670406876272743504244034603015185696628099707263268949055641208678158813666708972713618282956053265866440155799111476930335792876488990988795894877519585146448240006876016491052464055729499191273912418300095368433708520972574460993955421747054204118991044416716759027501500368854165264262838934527065031726712771090145286009194621127139758956702494892808561001054247668604187652111536548847336405261995973112845595878021910734361711195747502031442279571712388614521243462052204016110715151493614567120370397337491954895586450375536005787762889087654051094473324614537608527971650457284802738488081928656878921247249298546953621590944415470198696484484952120304929105782275984701476094368857766626687930485976165548078263242766991896184951561545644853815129078478574610636876950167927962829494757228243038054511558062716065883269246175104203330825146343878746948181190075576791911358444163058920360379830580192579026992664110436099093536342492853570761658063421710292302267942445542165185168492795086337181817602778168848448214589401911004952167596512873556952799075369939900245866975407314079609404010888731554247092720351883410488374221914594288432287443586556289569553186632104625516835311747800460140737990730603701238642074484660299003000663460001961007517646990727784790379120853000228596640647736668423939400846111933137546103893026501334886240602683655763001629753547794403468412229925660471485868862772714794517888572867431867717139856069806468187289723674328754558840085724418316166314716882546820793530693517381433611984258963172231267984496442522806420713903956938524368751890842984297149595087373891961832018848802179417843435332761613483434095756251842963742946665111705394697116053126689757712969380252248135198744574021211931677444345194755892559857499712496948525728346119166000723902150737536482138732672793946152995135372575057459996060488155258074170310617368645919829869661710535345069917946977335812419918168938974358047447174337432057409124584258371820164101397427429145799421305990727100682336843001405413823873453944017534489813637574326610709475971641417846954488411878275729454000958344120697278175063599168982895121572285687880582228091713732452495388522242485473579094135010612915904757253514893157537589652844468830229368909225937296698969302632838116785419556020494732086452283456879078388888382228347019819107582635677308711041941899090145973090789405037264158395915590020097095950907034536947437248665612541440966965722813028255375649225787034966063008341606964100345385908319633643406265533099669882784885107599318741576585185485188231187803856442256345867441176331481621560353456732024546419549921549667493974132915612501191627391800364254580265016494960661045773622977865556380016792011419224444009029908654274795106043318193396990149508777822975037971922037088916150578668549573285169700101441794926270673622903623571399194552321858621143933834855832262082737233371689746337024977617680925604349673118958407798648511427401719279887336704724978526240188389760180280853907998541104886422348488800807585839862055395265102780777038418436338186886881986499316818776128298982312420926741631300501844763213622592331875996368990340176884450384237087947622693732023450996859467237806383964378173632618612213794642011822724604052572882061379667922698707724457958943370560646347652098937470951271214428930178053687505358645023134490593346978834275318815576226424786600733649208296814693213666424525331143590899133619180006679757818829825909825214604406921146051805202624241357614625768255350421900681810801660132668498200145071541673264411363144067955892947589295287973570110119193022784864750448918252698670531018587316636901816363112123231323815101171073690282323516164947149700348497638261993015239732815671376591247949015906460687851122034515254536393616508950629087492219491198710233083326866193605344520967575411282608570359257861488546592470730234998383728456060508934669514216175107209656308157508662035225290220969074756396866996765253005854058794726763427762252240479753112067198134424721198501823351649705593256901460266021911360203135620089762753202916704400644290075721416335854573941995318768162374838462726834528745338913444497845365910266670490741921224036954872307800021834892404209090970940996328519744902257566811291033859079442639028968113530901831038142240603710631263733174294515736019591140947154828007939426800520303564104153059586981525130583340786512880764801603665698421594229423942670024775501743600598878937884666802325618948144960233489725286363580079659988478349791477184915235715879506365970379570893757665024502069300830266006298648918473049476233341618035309746169178225861181363019442518923010177327314324445844652154151216323185308047055978728901652632493063617197369618664388683645305256218764729524808459790117006262782694162467054771823067510917691771535215757272119079780940291731993116196694395241474396648107497665957642054144312662038971689522702708707816394931927605670503749522414868854123708994351710755963517079568856511674771868749088729654510853298773958377992130438139705411537578237561835671660917074679802836385165368801522306531513330869534350221879367280581584999464188653283692737199595287167830443350649530150044933997673836740045707376809259357058616701978820422725058749682578186726044760022842114752647262403174212778553111889037476169763201466073737461716550570946343953408442777295067875096508472952963068701075250254249044273201670445928124882819931269488716164032511480096321874616410285336840318902011545110404828435729670573457977658907039398937786491874272489965147266996414347382701179496976172652514064823501102902900514703102174897649194456043046504693474955782348713676410580925914370522940304490878790463679130555527465282789764465156147411691721905420737645021587150393817814424396438522968384312062705386036498657027241092238463758343906878826192087186481568679753130099054332506907118537533806524913852556086943922156673862100034278266760829535462406803896145990382668863987830779617513421257218984349622860145623799863614202677440907623442634205660894932603194028739281676824718499281362630467485333838961950194448679590438769923170272022388870444184007674581943995761368173344351483027281801496024788725971175868023997936552878145042265467867925375936397372560592092297237412960568412177530033577125205727713202398984059785369796830904969780825167889319225353568653699378105204761289547427334297752846096372750212254915501798419044481719783735170389757795146181278502126774388446091439903962641821378790800918092136630260047334052424679558357704992917491580528869777907846443418055145124745395377045617040096583535650168473608189810473165944096363821193948718381767217320596798710511409599164286413261905814263834340899537857183299056419752505590266782064541652106493666358450894078672498329166884620898163892718411693048013958785443225262036777663666436637546187579102173399504667658399763643754029344711478912393528426310178148591389246021401275685461637520818055413845133541438304064744070996531930561026599586895757988751190252575197753565644081944546427763597641873928412148919207749033523156254056851262632070772107082172783501078175428116514002498021660900159196728838842887167707435283945305355197352067297603688929612380563738202846448954070747110424276224806561216181910529097489438270123698327805141747521184252560536630980038806092700875633281164780791154160525812098576832473606681259992541915040414606346153597092496743177685624263675441223787520833407214813742877628969365561065770134625490705810717885496370197529606048734354052781897663094490291448427147466672561228145094606320517314962354281191598361131030023155338332255979339735999241949700221069028116700113664390008102786789243807027798888506366271636788458132833497382698123492897242895605379955585027699705686969483209701377757224943188737815898208913693984379343560434960404807239628012366781601321987565588068868963880041196535306197102099392629308921364039148174885937723895454724085841417268004534856648244543319920022468078527236057505272388099792653473949513882352114723542344983162725253920514526389275629866250035038127973283992193871196472144977637767732031340325601829945758198059734752156439991009540319875083113130503743047502477472079881295987841638681750441288381877989615747529787113869386912496909967736649341361687860706735961171059940162747685814388456012790421491135602922512040126655672795040017825875649929046532940408130647254618363860015208381314359936837793387577643683707048755487839728343904871461673019678554616448400773640952127097486567197259565186596626143395761661949053627308360714753261120778418384863616968524901081162265533823398157505657654086898981361356608426388546087597711834796588547825214619410182635443367653753794944516685364310479149523335283490356523723085616894656164886001747854428117422223616231591062679806058210950376085562014205358646081873262411145438072077937314244573530059639089330541895650475172611493930261157174658158034619654799177260391103117771315849041216842640559827705982603487168588020048074355761304454950941998772203881278370966572752552006486798621577388548646305215035959965654728859266959964161519090172386203885257867947608310810494460550690911910616880503502618780224538003788647414480838669708963913876761086788342695626802666251240761225048721877858262747722125659957450437187884818943556538970091608041864753770963965098436516747674356125940729987288089660408129909250812648207569722488324396992091563259926635094230044096991755181326577438310218562598660547253698187151217283662365769979239289299093207710218361193820218862519974452237424839338171625914178375245499419395942610719675219141535255134238600061765537842954461934134689785572332069218938387591635686975939733046680758693179899496579351337130952133737545846183027933250838054088045049570091439816537229648434691302369883841172917012493357669758099282391512479877628862089804788970870946036412124177506611999351450144802279782583504024642715295756450585299729824425487790344371683671015234904191380899182006467290925251803258385761593838006785052839443678595839828428703720036130536898557125796549549694204001811279592874219854893959559619350059498305945999098851214346804398291598088753323573042898136513340595250519048036475742201516239944787785741317494550233537773350409750867199046639148474203665421386933559491586686836312857249938334939467361520232324013058517434884988881188055309459515749639622846143034513901453210754999598119393108191032121177984780647399829416382913720189713070096806434493607224337768648445355372436118871836922143406272794320784989733584686503847867901050562022733927296456524291934484080296767308411679102953653472141784773900071297345020251448134346872673167761886264457484487070734232791795082701169441258227381959714215410853322449971210517476994359190462767910338361347575914261084982253273803323123660484045614649841410395067184447360865145161360867591936957597395187863290600385312355446898685828514420193126654464647226936364969634034440560410130698533504365395294469140497736423802367945053690774837205713574623092663780383409390758717762371798806067265659528091444455949407394010797763537661035536243650726614846489810285792212406038924118570109484704665724476313857315786766099117331985085291886438890072633731354498513108436926000748680686054925864118327285169087552006166489808424538770859617589396008002009683579170978447605489138942067303927706235959107933967630375801779672770469424540916509421893311724967452447394546837869778614641646542370835646550258441896922955679053965191208445177615086804942716660655593167334437015585562427345437540617568909896450967813421972293853960287534599676383835917765551327472767225829637236718483495029929988467444978176139333925010907448080108712766713756938518366625583099834372057639734339707202624470932890154740430163523146155216163470970534702484216666401119604931736534826467127004925376262719583617681146450557330476484377864969693443262639798603230557834420558899255581392563480076057966037556394467038650975967977114465366474200280053175131145942197355243679566331218072749141158356390716485095509115640919454012215399710864411279765344013744727311220847977297258369325624322090696424381740053374973839993255401407014800786831891023274061277193783712363569112420104288099386109752271345708387045895500076910139876101884856275104556802572833281764642594477817798554692414766323145313672915685490318270052738873637089800564303238295092292026392788626259842619803707355948458106947888586561022670039760297057285854864164777000836559308728809695276729278434561224668962479898982331570366108680741985534613423696333582049573124939037855659559250250285677369480012659198731830548004725295077734820132593087118359891903510512405665686860946910515994985247314662371007494149354408999896018796815684570025012515450593369803218827498379699550043056780865865433230318015332635729300979895563795646338358459226387549926165448843401295269865125928838739962629979195779648114760350025924632494158067260593198912638460752373767485419383989180876836536304750864642587542416518848611896924047048276671186680802519872238664838224978295176249251689641882036425125708123137965678570259391540694146409247420346735743332801714601772459266992452810213013472156103670890137272020474159836192638265948407357333454439419020654360130561112852050671462079995020772885908614595346261426442773050834764762660376728885007104892001085443727853376247916311785768395085601359311802779879425613397298155560968316964656870158711901836374053095456351464778256386965947857457976657123815228858105633924473481830210535724216657221931141821039646988486761662661923708283351471491634101646444295622275794024627727487199287248051319127185918482812371137484991574345865650835344830629938283749058102800412702335411001648525742567551717368681611235444660232284375010175010727630097284766472886176464191507253800148145575563107126292368590509780865038479055040742263571314152771545545235798658376881933605988290767347212634778009868131760367115417676481407546016743642011823932787334629915671737585999734464886444404905181072276382373986935603294329359234106482282604861393163885794713450824194473243216091671815588369199649325390880516717037078470314012045475613041494160536204383765422724882054430386449476869828864823183946978626425765692778793699165943629529214905607536874023606901968780889782597046830053189187350132032581136666798719971621107449762174452190227443613803940658835935727854501026371435150969073824752461803381634286327175729749299478186679875137352489191867747481224132251204321816046568274602966443202451641282265786785868254975560763410645256663755023876100605752337448250817544583483348028652890558285662463322352060919041082481546567307723368812394818724661863126971994835294464583667576459396329124432474436422461031658170655429171271657070786729534505636490269284077032102081123510522308739205521683673454866763933771874060434032135112770985791109136187105416229615966581736375841892186400003229139844225746220595338801509959756123575445154818333420528807353562082342194765770423180371365796702607664333249716867894272804781431326618294458362822378277212562844011209841146318458309444911370922053294192976615392495497672937705332267265243917004052297066215919875299768901603513715400001769191663913530996151381626814287809873124422794865931550063394452915596151677568598105715391477828676041999450811309013813490529673057054788476613203822645844288781777609952550588987449936757827125424735958180075537070449647078414075270903251180692100895110091344812556773030646978610139035429653613087141906873747068862756200365899243429834883748869984633318854934120091182986415421264642840935046593806587103016767296686582475926436568432076467060366283916822734386341995958933470520915545771922358568871472074030228020842440904682652957743240846229760072127381763102192383609110326023741767669817773425875702265762699847647932734548666996853842149437874635139429042388636277442819576068929542158601211773037189972616525537770652859779274244119134909908066673453824656204685032103139436663358355967796732974124664557564212329736273416536011223240292874611885909216715042964713323803265032145796262785998717702790724868865144185950294107944922434697175818520944286466726132576200811905766294817532045458690393828349218342600973220070100408634256954849472087990118287476213642565692803338705947246213363869034303681825330452227383906255447896648894378541984322216132174931296675537134101959424668414948673662499705111057153474132558625482385643083143876093185772732310086758567616170984808229245966353543666302132711984556457073203111486739574185114562985839939241003534036841817789283819187129144204043885616784008089614595519711965973736793274009468770385712527855497107390281961041195653580186409931072859165989526586976245988790923841993219965286244327625766576257551883280967705368372495428589076643890622206040758554313882960497813309720693134338104982114497514557219672975757718143627512404596215817093902783463994781269979561282373649856494510463021587049060504068022508898201462198252190288200532016317629412192036782956694122603199763849315421309528539336569422675219338642647116072039832416175819617020917888963742691725140783805361298772434262341487027108179797523726501230735267820552340301537177497306471824181444506682390366738969258354907396678961951545030941642628907305092090720430118120947665512106311681696103204030478958356981449180263125328430847208003681047683096773617052588468651770681673130359380020585971588555785251958326497518271264763313714522468078601898806443700998283856020089314877332824353726217305449991373489399277648455235971436131588901169398223254101516345404873813632048171408564221790406202163439612219090895520428624725110482048921231953599667332110385538240273153723991704805229222370338491800408905407565981862919152516148815147294864008180083832066986015756152555159231660293600226760351721495983867788748228733602086724833692498340314309250046624377110294452294597797518970975925693748892560098108092697587835090708530153229054407941404364701262337805773309340373209529512124271578923701881021182480261972679953004145459604672218703745176851365479472314315499085483765842561352796625237581519845859544194863213166747901261539430427547006611837071402525190251492776425989823409837098307486018669856294948506385421320489069619041691014995088363776582405008235156729923684908393181377819555813762018729192697368836387244882700124375392544983495863707621064961573731622180506143066238700010888222938837442779822176792023608630456394258746866584564526442156390828829270007232178552675401993901075641297671011921690650655280163686596239013926871948784920928220637554003708834641603322654143645769795116456757553656579361369015609637224976466386912030686285395831641617857908792788312059325181695180292473417694305328950166978761807998411166816214902955493445387026203342852784301494725652471239637606966366891988841620438734367529910875532389411971218752624455239823682117877832146608172850713010306850401667528688924546086194205993853261177949487586296158850138058915439701183530947336748921066392388659561207789872124099954981697892315738794812891633664397382086507573176063349656373709272221186825120130194076714733839339477876087707673159978249332514620007113486876070788030870268371573060684268615573530925780590249407728432938736540552726882900790982583246290682624880903205521465472833837689963279472560588941191858742055916404918144200963158952104253961319528728743788229965578746502748141567923993749021385868192330362710062360421496925296243195610551836599046627428265692994163288264664575416937211667246739626973571858847726819480621498401070810464650824716876449830407223403306478958053011688691461940842240228151746478235642149377575596839805888352487794366893559790348932675111994397951745316767734714456435569965855988351280076485915952161099002348177097459035279010120670598152759266084550637366498565026494962978215458879895036693736013299103263717807559507172381227846699462774871045452730850519042435548724940123109728749496050022408659633631624770053527342223313189958568683737046953749539338634395250605215366185846579010750596438674710813858627072745559978160240700399199140759441317491657512609749889804684352650223689166049378905300674394242630566507448551720576152703036783218867149592221400585486602496302601244006252641047532244570448065233909585923138751211520835552004462684345335474164264606137940015709613605484667663035867058117767885252801856001547076699547623773343189650397204491145501659895013118020044124375340106746212362648382581020081773174587598497196496315867502403395961977379429962325460722819144176796765281504241399793828916531866863094689746543804813069210692086721104807738068929805757928324891164025637898954881502350942126842973587165293704659801933737695660548483631912379114595110182826633133727594220758508754705626477417670779772826831670227949976529420512294268268548038626610451836011232336070679741398581587497697939633051079093245527910252979674606729851806281655634581764626360830012485786589275141118606329245113260580251890274704278814697107205512263569092797479201647617759526038413348889876562511212268455138804943303519205905756035200560780169179294650857966739059913615975948998646022492729397484052863476989265005227539661623916359527066355590303379238462464420298590883339946128983955521000118396661888008182531997487300427260901909569048730975563073739048614286168371366558163770023829282402294769091537563352857301223523766008419973871820863174859923501399346126641047185632345823087717983166583321441775656072852838276153125330619924798918605822371806988320713446495080846540041466249353074956611628789907034124147201711496499444573157579483979380471676362490720273254534732675579449351518320733388027226423721194463290386936333849045530154643857451431624558345581295924688743981611452377004596276618367048812695864376414040044387159464033512825500883271266878176786702645801348753586348494103821352480254496846535112949455153868733840903173793312598633866644890689041526992817813709290911516293876655729767537466252924794380640805989043632716097959579976176039583961872090379114474988389283138354141857421919102694229975372264470377165708554019566948468454585455496063491372104049240122639516263339309612445100718601229792047369996262077498740286653090919044693817294233532304649403641738460481498786157913524606456342396822787494146265412954405275858188397428595703683573994270887717210658878509975207462713448016798447332641418154319447350344833175396910762184990693431653869745937404721561431256662234806791052676844020211385109818507043986605711214200777067684571168306593363139112404259721573072013521744145115268963590917593673261717734942581000501016174432523649503133136684621614585468757451440222879595778422631307645018751369844883924961838360963964533809892253279615419133145282169735236919991992676653656860862789341368969423366656165812622386356446397332655455209764140968070288679283120178694886017214649205611182771276441282675129966325057650691401984152860759974856166018992806654475195581717189091276145461579500061632999619402696811326593555517927734484448202125233019830348240708925905758534969980924917051822068189725978080257047471036776744305355644237272815315811254017426075849958861044141569121972910293729154949963399832867641933232936088842745710426832864752395395135860756998126026015408518900758404990562708820010285818107139135762862130160632946685614707849534538336640059191028321363314330069005356364651139542187203475846218874250145048183652544185969879453704399809989502357855481222198091279304915374535711408075544583464927427774518400709108829017963644382336215879981431214886040605677937373508634564213685228318696245203480910692187335354237255726383649712775839408348154044721992847335636765271119761503397191475263713789335985712269826083051383882386752772768860083188966490423681855916282770886086688747570446371407895532410822664982569900958102969932671486408140652853447692002314518674336067857466619662039248868705306927075661848403135934624393093846955370442506132663823531048373937029546187958799624589714234993857884085423472373374265340286342284035417674018642491835071767171726013783009640805076749048974774424940004105542751447199321024337707767244420286518045719851547157267468965062585676276380796847443818156644790003254857069826715740500099245375210970566766112877001625472799797222419879036813193064162160872504994091821308968630900824579097196597394333343873893219210750815105234449250114853992057362788339677881681215592898218099670494416652142778298491314489712650707139818527161036388270878624206828783803564476360960048589767557855919427897060344508562383573168199080736220330905707747336540016053567844339471135325422499195164429717016579727811323931582532680537558218638758406824137350780795222295288478305658722009670333311267419831643238101174297888234258187439472366447709898100569103207104712500666295972209828315985915533622339197638670800754404180069749421742542016923359325533563478339381267003428015785914621784633895133172056105327288297521616922529945407247225865207732276992110143878974919977166268176252658436172363143737791849037052185209423258079655351370436232377747843982095941845510821072829154314863905354617522022101112408093892047872566240561424402949320540175411523017242279390356763513739063662411404519873384421352865610941864936236231870784209352060448080584221773497651476280763442307711605041488858180421468546895493082881178866568543178988253277102738228380199642981168245292004833112308877790019112946409940745730359347287173505064699107589620753801404445539218689609536572329044924048567761264455506810127091607230155287156020750483284752327557096897464774356064797916049825257961362964542499521106496500074485849012236091507890535417116587725347578814146814123712664076525807961070792460027227270319195090271387077553181419790048406872260400148457159161245207706406023181041195447977935270426280981954180332371060330359111369840215806309417995798910909755820534200437958355990347647918089222282578007624521208617862717678316022153653911913430413786715299892920265962678423050633669877419214651330804203934918737613915241006140052429944220373685801796160337695216816720619597162949391170146738910112922121657011247564755775444970230632705670952885502381937557049703912298511193523574704871932917661292235919123582786767431870594560626976492647193889240547398706381612004478973584799086872939145033037084829623298235792001845709146313564723786804353642188137679728456903570083188563736387724140030868995765458642927433397907458135384286539680404237515956540419841638869686127347670638552018808277911922539691225484457632944461206634227446981254469798722786785538294551963374162692527496105673903343697373532076321811574565831794502941508931647991893827678987387226994113345462793422465790838459205982324265553389327798705454038757446703382274583574141177084287874771141787682277235240513833507135246819403734333943854480022787122630240364638643692009716645927275533944909115676359481603021163477437719845038394589524983492045472303019233330523164435452430120351859168673658585402670245236037812559372532557046866248090446972654932430375500871817485599649399821637472869468948478221069621465225333638935284097669923633808874168216564930208688629338610353195619801520945700771587747900736647586709355807516557133956796866537157915213144700765198870626764707579712055984702422105651787015399962896988704848973673484234157604081019794565198783919425495083758171857147481834752559245146910017801188283755261106460093221214741334717426531668817132959977048523936798532294576649195967490495989271504232224334439362014675516468653446294558003770083246603260348857072591550799859290858420055036573966392222435206300613054536440426911527231274829498361024468967020888840192870747772125391609834185770297561876312595705282393638226858601857671272816508194821631903979911289328941142040705149003794923571900417684698153455600624866051812509146124573874798736068127894830966727833897333335996249138843541858214689325771907486713777129152532061499857385597142380752609947681479048455594121764125486487236208991405656698518069690045768219144858292477735612377772161800295896559985457662082345449825885759840181646089661369643464782204185245541262617974164878843374567639334870783100646667458872298959687247527238279024993396063058427576853922705211392248677785067707557540876409983170576853528799117363096299014221705870863349660484976343167499515413128867758207128920356990886103752434782234818245222162693720912131700497104716729821272126754603071722557765833716087188702403079639520770918656300010822391526084627023756858374552405088927746336583006436717579070100955503901496590255601695223049146678809323451820171478139454240887482228722784014954703226148676685838638994196952663826721438853739121780693875978333307552775591616407031116374276966792032680825557035743814073787835804629935881925756107556578471669233976337905105009422456591471271488865363480196144155890521428307452372328226207047633762003240664797816946296891334242257374261000289759830399234045057687971709259951756571343196395233034637952959609152586150973598067930537667341497853752351470001273125615693312148253139201379465713382226443012648682212351715469824805385285591435200372387220474199235667726498415767101984752916294606382816392415874364755408945169513136634842171081106134885431216454804176898781910954961716224924370059263458354598493473088006606156874117656681488016285336623279066850468382837224652184016827610676893138821245098126062727165263724196959405375622291625588319373617713058282204445385866922840492957436119922069232471573728908875080473963201126307202918486629063357180359366713401207009445605603903984116021304910753055863007199233754340047662681773701707998561084129217176634179526535887042951512754082707529640609716257508164674426517074233558317171543538435824117864110400285142326013708063594849197721183990654227997984615007695244557155349056531794059189089949346842573669604444450109380263422439187940552892470433074305833341715532566632838386558907580624456881037054390076986698867820817358699822069376260855001181790972406282660309884027378068137811344118728453821444129698581950842579149621841985445615491519839973909884996019813965556186159441878217777119579806252509154922369621984814921148449222881059424449568187069482953904591706006385979761487168754445228404769235177925782979615505009724197007773933996240925809553079656729535421759110316099113006635003729582940122135505311869512535167520793093291193556354689475113035033701198930179013254094679345458300012565518363595334113201439528613857488574980865630954359885916595738536666737139370021150354691892449799385495949434811957591268485892214935042300949194013209085202308096879726471494940069029676082654274141263103893780521082659406297210522071007974180923405990096287367490881491960781990333914796804921390928817286256224616250389748693114830694105342729749138499919533775799587607341894194008397908093889081889472030023424039941757368738985420466543086880716749319480831659582983870225545132973901200578187152526720326448313434323066919474959325593823197913456573524768940337844410574082834719006649644357557893728067292096843423956595253703156394061645079143119395655273117503438403747348317403054568006950872855782849096096765052808161661885659543193733489666153797737624450406289008759703504946651667490001521060789985198436720805663934878211091521307729638425255975260054380810318429976992202873036636287494059702373793381068213867294040400795815626182449519424890884308034940764730470084183154489627737669450404431884667271907284156952140352650331456896543970263937489409514988680994569131189222101566143128742228531034897466224858528162949086162971607493905553907523033866513093473234987499288723257756053429640107057037076323042852761999573809079300446567292513532733934857718734114654006527309549144016509959086502094044633293299299438598477958448184329186560745066254924652988643562673387731109053221917267898263594827993430307450355533439878468835297054746639261028134744581469963621558089270644476175703340533722153164611393140148214877710344292198763457504605699511489917838020784170876502164332094011711551463797857019984923077673791208589348102504415609004335690860731950456506094055117544236174233502492748241519552431870479998279175016525243052210521344417677819563815372190358203027902407230442803965469137821458705163845872521406373302842428050805769135537430035911782907049742510125087201755972521963522932572588160308224988944480219385652644172222328818979553698898142916761532160944753365963261596704892823681476188087848793539217337265384609996988060634309602617675881062042412232258247901944054919727364146811914270670580595443413017487041892038317732501238942946473782679922815063751088079882417531279805927996704674867922751936263572299624501935740486633788394253890565094236332312574298842791629579066553731349241935288325844453266822497422913359155053147581443824317726901650713829760044503797732992687070995845578922564589135453853567268021910180183014352888317925887631871138441571156167185849051228850244853864424409681656991187367359600090584774711432810645166529951703484353957522559621475986315565283962207716802499978670247323491124415512133728068499644370656494182915804960725172983457684300703103669865944635899561917114321595197477718176743710198823034875266533740619190627895964465740094169009851301948069680424036720975396252342877298624200872839255960644635860077889918173668640636060956425165839810959296397107555139736835173058325825786336322935657089502840572476307028629727136108926834676560208111897847741863100433360105016343455425148810241685534801019701867520910393447337202861922992604255615072350374162666256711026590576925173700223133206119970499053327123282628000319464327707332428147334037577735222015902354231369232551667846965001903346175175546986510088804998594106754561838953326073002697278056636984292607999483576590028443296256626221142444177904981852321418482039218327700511525510080955223301284689874809547427728688289194036779775973115635478732029090140361196524933666130540286320019186063707840539280868331705713367543678911772403120042985771743743519242995718817916924739875035781563028501890389689335238321182432424422026463775566300962537539747139610278069798965713894286837595167817486411583646804277149926291165359548641144999462812533618032745401187113439745708984824133121561595482941782722836115596480066622258956352021815138450867258354981131004210826977475349700810882252600302692205850214634803907164232499119817375275389479061934012253216932508243182633854006747952538616574119994193090708858574761248331870649737697936559042123181114169727251199174514691531912397464490013998580819886490553916181924735655369526911618765359917144252251345274271956731984150613051322417274987670487845000431566297451266002046188483045442659888982802622124743067191022899507905486499530386975890789714434031382328400593988314700002877974281481111422052869799827845093682281964671906453566607138637108506190321814017168772663129765993951353605231329819626954097640188713190482194313860118468742952878482220120764210667118004704230337352053750683562371496274835212555661168336976273557618473090696990987841676291233618177234183788104765489887777913026729256700047970012044184467356510991249892827194820708672837827291415440683768386450306418015000488749578407195349154584812126734389622689139184077597851948888687093085434795474500914921565304397829813692908494720267017389158399863048557316126929320305490261547610506002710788621971307829114422987677332740049271266187823988018361876115085797922248855178914304317650968529257545386064153168825672561847499607035241264406035016198843821655154433479400133000882396200515961694838780499643357843370039086202855903062900012519293925503092258096172829462165986493091462946455248382194192484397039389382680587073393195336662171644798294105252984299982012049431875513532935930068213883145995690874700164364558552583064212302175183407960454681485513748646322325199730812995522519350535454650517646023756766992448243196313327379639921868105143736080901090696698434029893513981716325480391582741228549392712074785315308325388157319039888022311466393576638947744023510841958425603310405876009911569767466371683847549139898501756699055618028551788307444656256948661775943647803859342969807566830264019794029386084174866737803065664000174817332050367487827542913499417161738190732811678706505885374888610458940803008623535551572979386939185978727796687665596031392313153757286482749113717667612930645103806217411404682284994500903062669491500947523185286135946712680775620443501488559988452452267859939329386853791727331167900042490284843463451750383779736108040155377875732831912957717962516977503121921869194811527886832727125209516161154477222909319512468979234094168776511310697623717053094435471410019887992558827887824228977169656738303515585305733980370697503659656110790525004337878459744365774233885410709655362306111625723981180905913993448908867931393022042050557332535820836009650559627651250387787328605592329523584480302276736854864756954905371875492001692028642068427939437032077578371805896621707483432136534380019100215296703087425006100920461435574774918508422374768956427247845027038521347687474967177450009066423745669110239647826505084713013145558768139352815901229598948054878351266218792212373700380910424810082002191039308001364591598255945179340295534681520446868297436226377877745011703391718574996798104896090555635864895519991622765971138763935933037185512411887723406096790969773345368641712145417689472700466204390948066675705282129861670810018167443258922517839372552182970927417446990141718882884719482442499325007437803388079471286122383909368400203112506205771301066615229699870828563948684337927376986513507828507391006731127059304215621484298921797140063802595480127700150278938721353149676332983851984853118940374932145840230579321940305398689997990722131634470672360073537868961139015324480749839001722812882600610759460534532569623759546751151317286513668955850640912475434515874428104629419987581830044723959221346996662713260907881383262450255257171235054247032169214876813149963932347880661132958268651723921305744556941589762605994541434346932403843913270624382118296088668553954292463341025761601642779816009165030885530195782663540808263567532448086656769445869146103663758779804788840556255605188665934090059585165569358907318961113785061840776306786181714867745300114884349017378107104276771761736875043019524892842942491699139832190865188106270053357510909512976562299433804564328772956149413410205057886494652150441840674507831574676086348958736353226960451585474590869113697174608629812807843730666390559812518684552078874035115954611081512206915137013471611041220961414644799501480431389063442341511166812489770373309458314753539383781434332282855216372065725896225767789449213237739459065716851541337627303822350693782864220515597230371989933140783270778948523417951546063755782196973433120137821958306404323546698903119251131295745506074800127174393745975383212663621235800725403967674792591567949736232648588842359717511003131791498764503624560765533120982249389016712433653224751888277624582004214131692465540812907830679242467145060365914153804943615562088340223846208824779265766522649610646144653448068452073071606745220455945913516659467921342209153004004905356942507448668253434723486994307975379425836025396877803106592379310710018992670694227975831987295135439957935949830763116966474732530485675861097103738090835823363176307020108367422298083937316594689268795034178720802591165306052970281174719655903748835605272182143576916494250556891331805788700666616330074644155599347796692098068977539419525417932105647356504609738519456148515876408254892838845877639241801937906664375425966923701006499963759790143453473103993575142957976199769257593367114707453506877169938150971136271340124513699172715667913295167586999590098644914660573714225562666169676958516321976958384686101720607573647051899153965508679480954597201420524785331333456102841571238089450111802825420306068561757941993771789216837180635132208618253378145203836082166874716724374808435995474225027290032681302656053936908130395895013117324965580505290220600368568220584670643586233518112591197037919706772516115287151836842171257124358998935140821235994008254612100375430716651472790159070313742381107799317825205653450049069103050611141974532637361222644072970382740069746973409161217100000262099176474939391800586371020019335005023190742430588607526785169179192409115909280482634204899851461018397060808583850152313114795479882836950966673200218870800971683872576999619620524797558386620798428120351344643067306295309841644356393732087994351761470722084366531342672297451422345607568731007990927112872025334543105886195109882398631223158796646597648114381202205465711554094328362196593104759158355536555168989642080811503282567103220448664084992278476077676676506456938704899748463435905092418954439984394377778269036554162112628050951884804420317931204951638254394899916784633382710125248834249388119237550255890917791572339176893287921456618340606402617996382029570785911812271078878822114297147465324690752929749286733504522983312882075324528505234516693697127534356511749530739360499359975696725787508803255352326675589644449606412893511237782820995784094730603920422348485153574033155403075198674529082125493217839831749035934441442378126707695147693238817855352531232150230278721530546238732702187538603454264334142381906547845751826252638867805785169826682380188344852449810983962779221629490450544055906067329558506128243879774495156354039625552659209978155421292185219370859227952881810224988829631130495871470669506356273571282961490765549846779811436815710994758583239514076026775934386819475425620234791133291924823621469880667553232928266439962941089040595295611478314477016036728964864366559848397448813164078874349720673524983950401358909696386200558405052553316729359598423411126964611011905232866075788148507048358876676803837467769598813723049577509564351736614920600236554395390302867665248676861181250888168423856162995391268726899538933283728950292587805362120692796645195952475549895192512739929964753350848946218109125408700588877916481758083722296878664607183321325314089255431541637306387322295415578676051697227763186337174899914468821040930163245077165657810591115289747803014184223649696636867698617490885570633067192518689024532528994587795359182741414784378743119524479037854726229841677914502684524826461418158505967171261401195539266877244298744196034435955818066451601824360594086687114690269406973504955457603348520754544594000204042654558574643089456268018122503496409497402120295357708999590303540538665090193262268485883809231669794378326289439834899541065936938311174228108023082815232817368761409791159328513992636304265063665128003146451027880724930298008663412947527162614440038063382312799669779036702671168379183802551648734828597252641582925054077733633944629437554623431121358764591848448449566045226157455791348363458512637176421931551076503357345838502842020247390107876748085726852815725271291427960352637742489502588998486973701294940964182666866333897784053780824372780648447971916498790390767807674926729372504287727651906472066617402412994281128285448782571904609840144161162994319082485261518226545495228182037017402678094852260137612790198882553090376631628895326603678316260244277084149942325154949531679069832693383600687899295171084373278888911221200354580784755167948134355075479155016104543059128095406231420016333729471597743607880555136102375814978914725813077201235665954067998205860168032078563802793844082385177189516323580370679766937733889929187736348112001951382758795336079684153764642003950752329968878623181638706184437064969989341724913417034673918597874670178201632177049558067362950122987599304609861774032165431425133299331274016582822486729132527913202439916816254844476052777106212085022952981086058070749633810592186293261879584109148174606022385094356251032940287613960345726008681287699017524353923488356189010336309870394914738940400487008659206665783404813267201117321978966554054649387017422263063816229146126260154523058882144452009512623454127792652394285332810538744832631738171372614259869848611675384139474500093408771711204770691461591431763957673286604852409622337836131377275414940951292961623599106124255972871139970897767910673054723157532676272052469229233063757466319447907756522033309098642556016470781995287247497489904327104941889410965182905696634568700689709849193242764142222535814830466158722765699100697486686439325421464612153317726512805670482244132998140103349676804050777142448461324438391358205138608151780294464359075285006307506749148668637633767031690993117709084493864500339398232279858335144400538631871812286063727088278998508372184832821854246699521466094522596585571402375777640601461771849138066717896405809168753820801165682944339617490531924270442361407771901998349472632116002480868380104406903248379742732480432262799275318413739463168429816412512073444880177764728216091141396289933652970112808258285342427867406550531935675412483322915359586535651070613478015932284452751121580996489398391862847173185051592927219008345959453440213351853407134405963198243915644782694240820289346870767879561323031916579146236680011985071557484830500240680813988926652742790908775067788415330659619523184646208342522948291872230846481955217354418067913808084116268769615402811489636128470821998778925497819710387909268278191059424796324279364333365128966546395347788694754908852705629954715257989363132288672088681036075075014808791368981355578694083141042735192712017832295651331939308881268489701285939435711667576416153749082572882696513806070870878115207191857118630850992013927394369171245430683104745049515957463122074509046843959952744820475751955696044087988060362831723943811377288437690643418699649644909076449563383310123525436050951945493780675065767144684504978104228649213100269439709956403442006464427396114994172282352806889949311153869790771929562272955536376852705767155566161923501469259055516208250190220399920818352898470281794754912780071561335392363334868246567355986434028282822980613813613133410092729014429330218993074806006718684978808230733086399337884388838225911358746499956029307388747018257079480110049866642946102556047100129116137297884706716442700063035250319806707120206105375960517933209020611338788459205209561742976452356527065373444749409936307381615696978117354287157573544209195363706709026615599568266455153827952053667551398740769294368300224821761019196468585677803081783103982687157293331130125073466045183706676604787072040959264930509199862355170313701098036110485636554407810628987604961854593368848413089548219144627809153735336277899800356039689561450875050659264738210971757291642244839164235863292280036112495405481225562627108695826709704267520542228758950863054365183250547923167381982626459721901864878912892871253036594795075063440551048951084138669069495686791166703093200859203911254481252681725075104734579870125837322018070410510573112378980563875199465938823767619696865328748545620821694441589918639566424622263991619379963391060659205671953948855618474235035888591518727723642419368187770304286174159194226235698902226370152568296501732315431220979843472422473202076971995460302546160391002773444237694974441340507948709683940509423543073112954029609015642904143263023280924459286303737446767682924839479445810000464735208719586444839610402406201230446856935898438757610502712764943132589263607376455024167356690322033321214852848349865251038377714438328566635563627721034110435254993100354101488211852360057477105231746284815762574944310266878384523521383107239132300482400071418752281922233318646074098869011846791798876671689210374414825716205017986482850295289435025267533005441367143540876895194719823222198879333001712274199136494611371710136115556614423188112529060947636439666863929084428070544850154255370730375120661454981525052305868692732469884418187734340798680918925515864271186981150125915518897557709347257784493683647057730265043006607380505512641952655715097462757715956614062182354498667769967811359217261021593811282361932383064843062032024576878781614625499659068181535569697642245553620446697481946170261177058533621859052989453716275236682926360736435224344419266711853274061605374099967142684251243747279601317266152174946127306058643125166084442251997847355082785283596502183223179785155304821450351898472861596162829004856365376669116735761014040395800066501751275407875212846297985521495244066775558505443865507524216165663713386221095900921285962125874664298242448774430741651859857715168654142783004167737298683059931970409238863033316146782289058897713911646517270620730467456849729886990252712089529675775140995855764317190337378037243430984372157501487967356583327895279607962254080367868991226998161750794515866447803736240025520829723716689423964804936223522745345746182661582843401481112406061082961828791581594749665953556005548275269855185517907806255309162918124272999048006801612118936624185488156224267596520061892420333143429757457035803513364605213212909539012284126667674915691405696888590433839063755093657144695728767538783243931727046135371549337833090208195587597265261412812498180072845255692233802295319552544671271101110994912827850589688795205190309762904566151242577314593196036089814663121001292308707280651088917429852206553694788448716518784015592381284623530743919368233919061617630719881390400114299297511682620164025081878031129767090617779154449900904688409340418564939719897982283375753179476737628071208815409086621696737461770630492879554615431806039255091299115565691496248905998350217583713468707122464773118490255999156758719125058262562765790494961664734859530383894754372412322007328690463813809630983046349247670848913673410701726190009129786713358386318915448014372884664423357091758804922830460789049134912708324497007750506152147103275366846968698535377800207995337326451918288426049722076347953311513017859460719214877163465536744622733658711925819664597922323019843552097651507240461150777443301188292052164875315767534919114655975229878477887141499583220616186874588669842548389193672019524001044810095654058141442059572682454246249750335041044117418865568522533275933297475668473808037926103163433744808998505890746000476777396921167388497502963364326667657721061153842658566609580364920226764254541414439715737349458948483681923759012774809011038143868815181231984997308182687403203931498803042200048408194838219798328080084532710394578488199615712172404154624237163318813557179022797691360610538037615125759260908063291887332204177316864303380963936914389048860912661298085969582506806506395455994590790308529151319042858286622231034849161735529075991725447488549469053406586338227563094260552734615149395441576989476949373419384762058729721758198475408126637218146898916923511900910314943313386080885480632747115241995864388330911432566579816810679915936434975611554740746256602956272184889150680843600830777871773749247136026790494239081214981804466318416961171590079752302755571738029453222712933208072794849593565203919405985405924051792273783732819050614393145953945985930710158796049697220145262261901539607875144204011298298198527543134221329542679424366699905858473710276733637583471661292103837759127898392184690908614836893478991067335024366633872866225899893503878136742467651191528249605691026981794806419533724247167626709419472817548828826603155316713277405138725267551925679544758287394049395483207498937034333296313436000159056717278929701751202544505703328325385691382571473200565558541765985604186820641264968033720530082421676517682059431685843350932321658761088906150796117736556414650656478809707544794230163582380396849743383638381118948058149546375976063303115243950593591799104561046709551575700565220297828489625253253071345845441615099065465932022920921413536696488009876901263709439861580262285294590326673642013908527467468588612330634648763857867698709774497112435731000901092504953402383238230025921343822333482704229053807562505710884540160668867144841122096138159283585700685536839796203468337934921632428079491923243981989639110185268060211968097661112764426888775594799928202212752357632416830130023204740998713851767276682686610305787160701995991286590311251904294311149027624795566906939735368820472310261697329166695503061605888212832572802469634572805661828710578752122329839682351802011669936294189191526148703436450885360658671293115380238305965030744964336230268214403779764156918747453770959632433563344159766205299684754888857989926131207325286011208017493007724404585705935653677951155607250318507701419247401765538927624704030234373472458913851310005290898625501153583585137147321173890657490448672194849045294475979549149595536074241227324885218817926175511029977006337841147548560991068214307596805954412765197076038147219492637794523884464269781998894740818859856082705348894286164809512799449530606227339058318429261616152054064172482747408903874470585423245551309369028052333550891797104384074639888100055985512744104681683286114119165524423379633005450004220696031194023537514785510938327556306198519534421986151709187354754562295711156466461678501678476443190773515128985076632239377206362022234767750546913654665828340676786102951336594052599900744906169000730629286963922810429243841110809449974946385170849321898918275907603733566487863052548473942044345792709205257639511036947141000694689738048940724479927849193579616502044253937043042567620732303270032753253595502669518178577822854944368746899701863457787109388528290503685018319612582826166467995055054316188827359027718886374377700362114100983473043714977116120350436984973012928040675532629619157115477898243724321828159725912555929403824732815079437825986443680900490027308159299806873938940859408374935885538796067715118614891556756510795269579752151474657557308659351964739535442792313103717450355020912133958797818200645516704709027248026929929916551367308601136052226006738612514160756112248907612313310056143605271349749735478247221927848710237897480280883716759584186214938818889991511379950124181493083260731177964680398857176324523881890228575423691313019008027194319230129400295990823505441774409684703060732207397338310553875425572033646534659214825624009846548608284706692893919574550914499973858203043434668130659282834452253067050957314998513661149415378815574649329993774029188780452321090429670561189419552352733870527460253745362650323181362425814303805639206733233620695399739567278962328520489950327157028064964081523726929964367594518955608717978221936186070804439816525919142437823600907165710860440078404421355595323907174723863188538709041073719160324639546716565254493994818543975151684455720265607328291166169230199500571807868176704251285184637475205383242917289628232294497499780811238801844718242781722244654628128265761059516587437162034088348541866709547963646270222460014546257386057435312652990528984884049363186416579640056330800027855818478860004988401740709533944031153209852359043275507612357369661842802462277585360136401571512625223191920691487931277206281521231655595468871949336410942962207159109815017863622579982455788178450611720465814804944049909197532974348747763596703096491974900606533817493464212360775298246237648623979646981104668622909253516445886734396135680444459003772009416955680720289427472596057682951001287307091781848753028330283620031425943141063887713509099094815072218015688799247813786447011824096336937953804152689342005951491772262325859036896873353218723290927429598796008825072986798156576579495938763203163169572347929132616289528294010214638993137951907422097536482360240615799071834292688602293064089497832463741672394267704841367916632888030108521654983121482148354980523730659031840480043131781938973914951916585715021753772875363562462033654905496500175276906838041846180890330730191466196320665445426584718601359041039448172567844030270637679513751444004769296561435142787750983568236906081216497843561993375835895722328028559093629873070435563044445436793939370319524837276033095327401722549157126163983954927203038688983288929564427421555807617638406764383262244030357655329638185598256558741972895987264319634185743332550463909393841573505348925178970875127807284810859810362835947029333537847688361416533892015047265066562452535907906314361707748087334639141111426046128625964028205684964437669447416905793898558867874784053788888196356576535513940891079216673394239677582240649695447289708155597025234299189983503267248836364368037851320574191009783918616753190687930976923783152102907943987797117452797695038335625776302453949568789085841367715142408471601045419714204871180881939115308783364428794201707369245302647855847723387095036963010456447220532184517022439756241027555109951117781605142157606312942141567794684028720391510553841035109361018915050460024380587214599745613445219070675400315363936354392868043591979174125053789743477896139343997488107921555339962488130286706633304183821173913992590906178020335040311221933344748801848468845693590779859609941745526140563357087489596812512664161644243176426854210049068307173680629751100658615056940291268557433129469601103953069079094334062092471458834827746697920544667063071800244196895900819358083265074820811908276184013511780859124890850280839120271818657232840773115712784208117108801133516545959024846927336960344078887799227809127037952545253572708149515414687105612869950117368076650675350338964672202293260942420151427525726397794509780873133789852687688263679240642192554361762161377840135890248762855010880519928780459501676067737287328145876286634585831594252843901395317680185923385335172609030620898515558718509880793215936362663645055127725323471068294598456691990750102730320291138204969716067997234447376517659664858226673606444309312398083098618254166929426991595088675278489382126244693720118153474359533037953387889126466287456888153268560718445924950934123765524936481667194964786062166930092323243562120399962021128364616089803350236391556889941181988623204312241577467772953160052875236799172457931334516294546303947107765767047733254521840951976219610896554865212951466802597421324398127062794944664112607923462283376006701024988993552814583191359643511977806565260163916825765522360587284193024325533138874618912756767238589322310177921508863214839216265768618815312483618691520069968631755608890608123499968168341664181528797291324274793620035215264673434497138464924008432468330928969415806601654017167098569423419958338195053919638852531107848361224063527164124184029767472219492144568253678008472649230595004063121801680284882448717223658596246562283048643758526518640533951019041904996227282163381854945978844542852408767883446331845830067848623963390374269079402064110507410016103912034900634340267998862538344117827912408277591722546789288764666272179462588505470574070103827285833726549615285869114201306121998150066692700922652351687796598759650216609246912233075196567144163007203616299929174490665296730416120556735132197341372811625180546632808517444132578797723259613997647400018265633270840819109419881519640438581722849939966014797116510953993447674521520737967897206849104923702096473156706029802469491160952563444728709815896418724227917260453330741779065857584322990055182355999664589949504903117245144479214827930295463466154485686901519990195288205059979884331762362044847201152106598911608178220192960634453672845563849034674331734346496555476958690199631600703832818043253455595012513004715879290363896247522047890235337233683420952207360700646095964088111490456279513881274255891379422799668707767681494677628025694025778842800135303613443750670740953688585849092138513306364070843757281415341601137713089534073865968728741416322698384736340066392950947661115411284697811459902321399209447956912752616727232420886092968488318094568954839784055824023195561441203539706868552173803423283745227219610260008474764120244619957400543135525624400755103026439935565418949931172709438420501728260763938558422645265024307279950522059481505565187963274590850216880637252058066522409453486659242952474567259189606671872289289709805739692510827855391909765079100831711876540680852701396387588259544524550752304891810205149358477261183224696595658937646792970364703232245566566538580607907615786143267798195764697866589618787103710070364936310898566265631503940035782462790531004858820969026539566923616857872441845084122961915556486183044817801136311150437086827973515907931561119375303410196844070790895886528019621694410697445188000568414144479966041325202945834597014926610409924800463428924435819989486852172025042916743303184539139420762504686910684562989092783859088364675118272156492886827877577987527257278782656622477816016421441816555832328244441446274742394610147839299548373928015390640757108992475565467651097835742895132979106270528785624797827213900506591935910187292061007729189474476831563693519759172779612863632385521994887803775693589278659897154858921270676281775095644124869255427690992134026943545473243846954595581519528449965687926770333314985783197618458170373282229621838949564610928499076091701376344035242576239684456649050732578084335385489876340542940982560004839006973787975127174592232626686955615972946095743396519435099883904997028857143403136010235433178953719199814199538884028735461561666158793118738622368497009381588922889730803856845152183698188010133943190413378930977107847561632763726901720624720723393997081855182903421913435235639545101087928304957033781917101392623707505093628081127504363317394755992368141255856991692887751110782442254911285783056692983638687560815960251072234534503822085108499439615411540852751764059947631362260236141064360726827157321350704376297269771619093516890356553313108769941593983180332464301343517067851148836897401722343932960188228575578287732072646488108438550664724760449749064320061391427172352712527347409163912093520752953368870622854340757464093378438212682184440521836400225544655172020445971281930348475324050963936268918196491845041350538219414892199703745677221266942844129993392780602721848999542157554982127234046841294658625670150526485750721585602676823658466861852052335428563182188465924457437035808043672115317901002997482067203396749358762018012785518401373082566940513540259602377166020899773045385322840086389448530719883974042838607249179823173603182565466106324177038600057419176499753944091947448151410276390341460492638835165120546794836372265669307171650805412106495458075791736216636168944525212694381268246763164460979046979534319552515610180931934059592709501672433016683140228218487115817525607084713839125255725992615646184150852609116113328256812344862256303546147690000740292902486915927240229196134289103049205552964036705753812216359118699461146418119984136838754619575305597065939999201233744074726023523572676952738224451398955948150129074274201751884482829549185331951249026177221602161742959739793020765075999241748577913602339198147889574281808891982529298232000602167476911759634620153771572729101496704081390626275408140461870206615151540924858141458533529044219606909620716788172961090545917592537606348031604416577664384096403926324127801752189439209993380180719512767552383818187528847119650697803593031914769345985669334612401269908471204086385460124427500631481390289198791080390268397484710077050668387846323800469646045608579035006293357698368252713912181942799601525484409027093591101147638191582534089833153831303618300424699357408778340619925212871009561042359243484964969543667829880247038640528540664124262299803709325439424801113835481693503011645244438528992671797020192850494562139048985797922088590543969899511505502140941559845677038178704018402900108612681331810062187081653386226760908145900410080325057001838135776810457712398415814283506892232847989291422108593884086606125303116703793474202315901488153236629301414600379886395678684655430792748834905972096231329429784055902397234548938264807126338657544064033424239759300310180014809519969009298858173941286746375202941017450958697693295697252303598684469446870118007108313054833978055894368468101743982659127072767493696584806761072844595437864289808078442193493893074398830902235015679221326647060578875922195917723325876432054801074991055254970445627422342991183895752897449998110192784501533871446926319466194390936582575801911061173455220240333936748031921319589070132518702397445006194826836765609829006818703032100232988414557269059332817062785898741133897921764630787435051740042347886577323374849502288587566276136557503013317467189621961878262281148079264010435109237042253324956295909930304495772137078977642213887812259609182731320512088328853235645915236524884675067190909762847722701085254915763959348002043518559422151874083839834089432849559968552428737701403003586778316209237357038226156940152791970940831174078599719800352878470048505475672994098321535858600571932665075044205138201458157506522095034911160196869979468170479349089544883841895332223294527045641236436223990677095516828726185748865647175760870615484031853887143052989658976012136276287455906423648805016550095793336958196588522234731400778207114635128382278535218948925090174307870449341945803696519915808653510247292598812798893205044833913777624904250543345085389956545890757594742064559087859454604419764210333151815009571438861764741995129212965759338916824893648243332838842968626656545206028812823178253893629362321806597806032218196044874377425241493077857810222779593917328878902577557885286032974690388535003217433972620334038703621091705999681534493852809502487030920252030243185450699732938415692163905540758713486026249363127367845238664321415099018124943714980298431603104489144813961940270279659933924379360475994711439386699970930893195484435372072046176564632900224717069664546818762249794915749640288893061292160460746955800698878767300372636922399238407885755494009134912154820900916546334962431913189928519521337527127481218263066426537011738388495694323897113645501492027996904619239709380365264488667252414877460972440559330414202283966937707302182478879556172369408377314799395164203663492104438925545120205986327536061820522736761430424804366606825567710546175387227677977699501479335829128663374440906626811932415851979044829095498719613742634201925337747172694336747567160374433089646073333465996620599347956819587684623448895602843125787154459679659433842835539412719818324155253904865483554997411236990074177489123232891251639823651486021656458163458952216008559839730699594777698483047800382259224120787531461126409848902326175872829298559627018185556571554199926738627028929721871940462932279926403726148205669350762139765878232897647099053358262749914864744804300328476159871972877820604961179617358302094265083483453696074249784278602637238414389295072813135596610375825686247260956013541991120170519343800601661580953576252382572059279187388298710969455521788946507616186093137914206653972801591377700780547228128441525214323739027999006806112799091506022409477710735055630197125287509552537355856038345708795170158642265713014205273324086505577377342294039491868010784722957374942406714729890461428398063219885962058332109589492806140166256446121478830683577342289773214903702131689750456451268085521795071745638684151819698571505285241667480253589330518461461621630025503127793453180471241945716499922300018273321708879587618023088213248023030892259862464960691273596471053567084369428898668957473972895086697972416086451145561121002224874599599446777597146788029096922959469321833981313941538819802148916062200488468079669475308886923964548986098600733363928980306011702263985620246685724519678789459212555398207191991371575934129575477847317730319116205489563549585274231577008421590566680309011867186224076699861490734919821753174187817116990587395390255651303103932006241543197467438737145101148964549639896545132708915050099865149598654819002938239649352808875394316325190832439966257033285967283780728687703858518214274048274749741478030367841181524436767473503116131904659133227307327076133949714193996396382037828602126149799734299690972188011556556474741977259745786733182234688830422854469476506506481655702032810829884648602754355979707911923041081660085816448754997401220955492929593340086845493396953632802800251120396325710380409335953017811625112580320617842001975308818855285498670690364831109574453420515269105036508843946918085459548365450662740795816237294889903345569999152389778425561356914206959215615554654294277440351952353248650489850346865010203198226745891158354671574426461925661479820861719319176785324793189976206085515281523816015112900608055378952996110770088989181477017312766665070396386636439899928073541976629892367347853228054264999028840901184674357172476929954571248817491687999606713825146237378578244235439582643836111995141309315516031154324962328735980495009292448818711766696164365187411371768761042808129540753640764314817734567774901261410367675948752928178796272287544527625566083212863161444240236166274710430842087805463748628244594859161641229160542858916323903868292658199932953308497984425883432284872111744848840359656862148962368104292007558856608568267851211055687466570693538248662873165513706871085627777684001817032639099276829460359614314151706190355496255543365165215491155515979576632341741945520369280566425037456128951040501786219456357239437693350710121286427238665261818157961326361044487061974892511574798136568774735220356564291127247191170388786452762728919371777312511346600841757526556394084345129530457290431913232840228287277600852091834527000967024881208450442695467439416270893215455323942217351991214906634765115379637919037912589957182991170343630597846435751498079356678753273845550242277991933350540933490586395130037645705112992952855065531889503235223170958957722014702735184544313223721535443569066520777517882336527607828394130917704509294278592142397451918413721711259264989273118248947431467411847367693798044588566873434730162689810097605511915107978076688765766769164779455177917728331581419432606933577442968103113994872119674441769798473625887032687832641305071775455086628557430813569443619273895186304379644346225224054514053045480076780047479170674072180145173432115240972500907391245488483784006237059816422392652100972889482742994361628616800891938076603594861410844554013741816589036922133778642655588218457088143736093748394346751512549893991916305986675944443346615451905981122757672333188904976751678268122129626967179638772675513201747675692988717782578973946852502567498034812978304324602204383785529713318694502478531230632007585831270178912280550364107465966881514484066184180692719979826659427421626333077771243430824779023772918341961628410642302459385985556751602121747589923742273965003390401813372528247737306711348552437723318036716525680262719301939209292664448560020497131619509727306947878343739671582660634269890732923559245563495415844902384583550876899007396443774050881370876814939709959037828946508850292059294522224011516460795583653940114320050965430279524817510689634061776419246785704187541433826262242434997322554012227370476496432706956395239721000219818057838572733279613897039363210375709674834372679997783051018090265634512894831114300802567683568354909633859222430202124734877701704013920219790861865446533821300193542754404595377585600125658027929175267045470992678557661635404329680891109714012990641483751609314599784052018797137108362804510707852131500512496211013509382639092098242051585710832764547246004351525214875425025420603955405271105720507729227380589154011667420181878281912415688305799393204211447049326889233472260966353537135008498229490740607274996255357105344897620517032182308545020381123479937980722573762850728428825671746965223465645993160457324835033423177782889210120229868328192042605161905134631080437784635352373372941526533578515436969136797113872531624440617340705780591949379725228862727544785394147307482184261649644911133284442964126844355703239700707525815036205623174407425855617245177415544768219882172590737379558661930963667962064969585457811466470179611734964161144246390366146868521581157430404696889009631047414754557874809260110644436227822194817555336424194891977751663741484180602130052121328943996039404616710684895455502673410793477609577149607256955414223083421806292923469861890537238264349576921878367475587916686980109768866092728298214211712605045903011702145068393990365591118534244266513526106891403251240802374715239423908400589883621808801425388695063240406393898592083336970157818485237350395028100690818078418409375663028828382416251912392708210512982952690126246317684112770617715423231102317748173867658399794085040676317713794392135643371696702596073461804066341580249283298189860519407099232160946875124828711835279436575631453161200724365573348274488621362687873684347129529981480996123239220050325586441327268100150573978129675584982431528273303280140433473759633784444731851320464217199347424980391896015230261096333588609529711452471517716359491250506294262698061049712740525960441797008370506943981943878879239685044380046822988034074155660753517231960912999074508847897453896805956662011087295699395047661002946915586464774382584073067023976994434779026101675515559854056899728215466509057236801953103373824468090887895555325392375588085935373796898616071433864424173353993505373906465398927734809431825326998324995691471213897315549434914868601647520389806369475862168652769709660029583986368473188838649377104154627040537161122054677738995913251925772692564317803888824097869876880597443434668958010270221849668790767340458319342619777865026514043198010638256638671066318939609996277517160078611593100292821193002962525458709469224199399396923697653074860364231321494376584745856494582510118988901905663854518130589472666214324591760313541105091424555600143995541944265402145878800918772395584458067870947112937302526131865722808930933855130869908355918047658113201939720508947872921555642130310905549941387906221842800214818253613229422801298700352938057278358268609397706283080118992516061614937442988193636329333929263015229427777687798100723555470944499228571247585417730033796245382670928213531936443486936158309420533713966426628232633681148051675691382465481957009775645492895324072276058464360144561747617395575375000662677537305696632329682563055976510746863891084478778043423856811073174550163515888034555226214528300439252838018498762441230529856374700720831091801573998620456804185200165780324194721914160012396001003706482678032934801961312749099873098886404077597317893423435281775495107616123007093826886576104586607570324244026097457341081606888355163843895881225009593887881557616019386439950580058078932697318928209615077353885946784568388866634964142578091238869366161488912951371880686012237070134452380315707136265863223421696573041259667815612783206901755545461551070063627925815478933572297287633313097869392257538297460013839695509079278375068216225217375724805729438860131934254574205439382174326338605432762780370547267555904383483282717125472372278648852363203214759413597004182607250285115900820496797036527544996218063315459588833487976131524879599986620084995359756377896511408048742121050057114967980067297215157023595475697581281592086397751385297882279479739519367321265470707437012071933493970323672890967319339698824910388390854867665654159733429532536727433556971713108322754978966865759520662754166398190078313444797720126267687368021232932619810027217286564754465827829648118429439224878234358974745809309575261766900914421235714533365623186477062164877014046402203092686741409521733498207473700902457416043625169950671859947455898683065318039791966950396855886417878623306246148941042665219030339279537114226142881363550345561538370597538680551147612054792790375241286670779612025522201431929938796106823268966247481383716559447254950385344490884806143380332654616895544605891054860979917064127732537092864909874263217864972510512542681600600679705171221261085820626927808296813937493572698477952149478057296133595255928410401216846509377275026500931592520727512971192890640915345505800583937568347597211829765413385679263409098804148778349824738822753498670371381951614176121952631335087263770615032123014484688843773431953772200506930802644037679283842672314066342631626837536898888226659318789225291710156416548438943094953674120151581228079622432068699191665593961217123825663236738154627642776713034467203422438868385233109429044967165855869291053203284243447497024981332426834927719067460547744789038858379308550601958918564483348672758753436850283746217823311361812632800478904452449340003925787270231952822960816438723558383050771104602763389816566920385561441271263737138584273999338313410484525163367941197862368573990753718646882749263560615180355476862800019869351155421773817525520141345243595949565868896883287268180183281809043450648498173043414971745095768600821679663772765064036560062162564441725022566056900674641316410033292767334631194009917236897007119814415932269753177784360688971192115081339699246487802558771077774105766507971195599781128316557906098642191961964438005137175744687850985290349615593401616978959619535086180735389489720863938605589347367271895653214982807251974080536932006539441025649023337495298006950080971060619647354516031996477664431355924926615198737934924285517513674475110451665778875206843035496665405706993712174439143573446847343746924795317732921698608144610253957018177338161357834654647914937227770733530385064500165328785198513008875891032456520291624600653391933239033828776385978764241855033952638899114484220299774798698196712167889660979994555886936477944548923362156079919258389692157675261896307920901531532217350327558018258984157067885770716899782103582596101824794726923625398090696042354103709227032402543766461647870559955793554913180066993049206048693052231440332500042294245621149012657121998172370406261502760498494866828215613498113587556016485497211724793523679469230844661263644311718879548140929436603596519974096210597312220986646787487858090778706031475248679145262137713498781231810076497121480037462713956772546150642596600098947024531933146117751203434779471783307226271537545833031484149437007420367563507753117568987653766650058160286301669669096758945083877833905643076933310112058442516818059637178738524785090279872105976606579086932205158563204209125118679828164009083279242372797025348353577496176982293406866230756004173172214174652019435161032062532103012004088378048290038206189182992539320536215665705205071428916617675280100704575730704993026890274035742449309740882187302161698031735997563169619364602581319828656112705948717122553310068821224791981258094766471849195021770547871942986993215798594634871725332089998025586971183080732945929833392085366207545995216263236395786957108142359738066424285351985826229532081137066330366766651812821180303549867931938906747548551704554142075645023840781675305642488917431176351873678717428599160722869344748438828424804266563150388596594256361503485410644314110129492958550949324638441901643768385684355602422999660956022708527379328088480997709637598639937914530489904941673066228528694420086427646244374862928122186497179133694152303825179663548417879050707700861756465531290175946164384978513920594601903499196962711094557819519326587913212898637351747355796449953816053228448906683233676733314035742633838581475654725291897602347445461375477262971120837817643642467193863319670676952440684533256435888787948822041906216785752888298099179390375145867205518933287003196507753060161174020580021964006296576370537151239925927582803507026764884680561378042815765517073260888763673606239349346739283622763793890098430906100669000250612240598144955954720051329930199287707940069326728348248567292599776332228592494602145799722954885115153026830531924589765522875050085395177918620967173885068228782353807718098665390937584666937348484659492643151386298105046273867392620459128498969612758716754237597634398413543594193225656700587701954615119760910438909900941205527679863152836495830106737503028478833687949387347991302123835001645662738058815948378522026422110688600889351074723743028058360754125835404272624406862848638854511534975570009887838005376486942780748556382937868442071494608515914617949055004612848566711306948199096551057070301376703669867424253183032863252050111571284012789616817883493290598423614304080203836650892109511698156054447414234276321544061195105764154047364658303412617704193891828269682038457124273757363466549099307247843572125693897114749803147321871561238496567154812014686964327184066850763704625376369202734285280532468291515409077234052260259305140311819876331396125794924977604510136326600619001638775886999399892705686054875861874775083259560840826194204258718670416880409190675973608836558993000627543174504549876406057585615313780969383996737451705482099631830483286791346137780699373782929932448751961752155689786061605116722159290290794265691398240666384715735540853502461140537263948138471261344674800796622043288737257949091866349573399301076152077513341402865102824315049645147636424316018983479412023857268903219820078540296088652469064909431940299527369958681466651837059969804548943537869122378722338212449443842050692625974367470277058175533972966822218118940992898211135836704391693316468083815359793680149998968888180762183103733029181929411570181945972413189282754622040058816748414062811131832845763726862296279434492704074454072200919141475962389693264417965051752079277935417132850067035570887063502389619046157305596789969817627964364275461130999079976657244702163000099475824619874274738022762958514262743422161057848913600763003544378265786333937287748385250151594398002091085703445384701742605953914676048376072300006994609154862342052007734062868052401578704499603212536689783421772170198184539390377451473955684713438974286966607408501818705125649713275003114945524176776396660936242449400048936905455769306333928218713572650869050188917338162625722181945211010206596308999603602129828541364923019117901552156365558206077313302339929750841401939933009467328686483895049011865349481035537860717075764611620485977757392253492700984161499506416268923493180860320082012973730226854887924867544432929730583323125958346958926134557135311614503366497631559198151960747264331599209852262286286695062120214077605126710008656599470331161655170909084678884755252225410877834800972905531002921046429729195905457167650291663701192642583933033807575218839463618848728977795991699380995485842063821333964280972864454316786764754963583123007086959277831251725793349382021694402702639074693970554284807921639446905298625809876262850317171038586220638069543967005110609784969020567393112776948307282832619868546302491531814014550961263549331401311896214708760318526156569610413857601427906055804781877650637411713965003585673269663198602570697239741231358274412900952778551957021506504658401850554673383437740651865228749529199871935065920559626314645653471203186903340940377539876388729644765911574504189534751396380579559667798458139467322031423794270079773596098835020001215860018953403256015117193367915316825312460821238773951647094769423977333057340323508875559746009793244871666022192267996165882404317181604403569823030098744903407584786918048690195892774131128063391593283536366073656664459044811099523907086041831441647590736151440600676125435760162460218496052897881743998710439962695928456570663327412849458521494801352463083326542575300771981247382070010408078053813730807186064538408306400062694070210275086859572137203513375353688131615088569087321550439090157937252622048372112708813755835607954737631562938270718506078441208792556983096074672454316272595958650215905164909300925308210777224177893726833959492745614369704160643074050078209833165308473703308930473613345464315026642171229582062875083062201576156705773672147608073315349678943050364853868973640093415086894872718833991053114004185947880318882736464806071539371422571026048811291146175344907365541739873378433378093697549487595963843484666147677550590240161994760939849432116557377758220979161264693952225682960842830777238007394550234023007469018776252260779653984264431309153422901703214456197738189439121157729601417663626435622160458459988839015811534633857533772361290757399659558055315511062741592264234430723359575830149240805671737469399311991892152140167040416280902119786844982909891232252454765671742410879057831613070338353857850429787594412599721120132365907786577647989575041630368381435629058189360600067206846957204799732121611977381308018945073249415171490135926805307538244444397128869257008423144992571280826404652013490741291467733765703956547340765693769628120764569506570446511322168666003267556455610778308891344462022664061755184942985347328023438668007010489238107891458559183963896050151472675197964428352947206509827589879208302785557827734768253705867255921067329266535870002003920820422483136768947310188334028378844067923874496258684631683229849682968623996621022470411053720976261762598219206686032432716288104717743341001220638087608489766137332006396190620013328127332465549510580298958154342260781232754163137047337362569749328084570100419764913744081761501902362985826064200588041393397859640816063212543372682130712794323175542534883406699120524448421100612802717720385924082661983224316854913512672932478757661763282654419858265524333320072070906554769585382371570152085081587162929974928699662049040536088967154020684384550000450651590900964598524069112152929204659343320562213324007348658774244104606283084492111900366457349124349250056240067091639839864784083553868858319312653264072854017519024014778212748404313983876605916390016082680910699892185119204909064523003496691376656306645346386078524934391122766931081420629600300238171322195430023430785361108791929400729010442551312238343728153339817774365323301730669699850931518767994159572390845220051139650832349323528164867903983549718979403768864138140616453846465845981495307312651659755168532793347335720017296442030401172166963780302718567674662956930003615858518020222872181245464649020284598422988751078015040484176765505607946370554829271132940164391182342719069766431724649801230673514465115640232206354447017629192524653467665128362688080563079171566231546032520117155847105174420856767285188015174176541606432202709765148812237667424066707913412287025812165270506951649512005874983611064018397921651017974732782199533040386800530594171094595393452386948164928944659440867824881037272068416101640582453157167498626550014408942299680230150930034625858412108365359872196398472969512143326887118191534926141760888907562670176382632952377835789826713234516831449163721540573676517031811797734815608719221177410424048982903693000136898399283432886996373573343928846493726147735493791959435166750774016911501376454988946980965886635734580094310445571228931751819487558131705877734764998334488082002565091951407703907587292243017622744450960050295852912313833016443897359669011292675392974407087236263083286398846251072917707649303786656280026298977373288010537673791315009856794215886647560647673736250074502804230695770011349906257888294868125435664351619049350171402676982231917617412775221886369425953657200255873468875405955647150786266413588380943914558013006765334843785469455073824027264511861021558686176384854185213134424603396432979443935009704352918082558675517368482427586667504240572572790399015238153026687022068322503728108030977226957520291082885933576139905707728737138066729561937829301825227720646938000850497527180234646350499532197067708997983572994182823744726413999518184796559256215640096901699794904719765650054060580772175312963468243922034901004434808043928774006071043928858034586342837747740113174731413152157411534045411808611386078703013150313039905305911467531970564477402001526851001057032420374963899804064279201092474976198339819516153899393870202844061098149374795326737569442469990574564031266889517977751318262721485338826260354663814112586143930704278354893476215890531635275512140367098330732580437611958053594668853127578223296394684961883728325222655330954906145579641160561188870727416845727336993128680542734466833408598735415903821709626661746199259649324347001131315532102983553728062720647367912405214744626501743447889464645219307034339049009742599864569096207378409417804256306708575467284422244430120100041259750563779024641594029007120257526082505081126219878612992006390538868642973366841674495675655891923385493776995140447403530346623252085589769749248276334106448845062703677413510181451572326337343014866677120641984277206309846675123592122167058770249310794341423312062419040759655643264911732327838160289661080338044851933890010024093392957997135832656011116426651000875394453436301631288661041250686238440028981338085085526850170608162645102637196595965876776187625175890566706569726344109981906652492611916852489716879727565454818773701317192539502777282113588938858406145803659800009031764782476275414548414160655715473657873401048173924880644379587567953666405185922395496412174187886130970579366698968505368334903878796438665269860527482063685066260690372569815378851653030971784927767008632977975081319993855318637972584261072695539938888580879332048993523147687222838261723813565018859373572753256003316478823010848026742118393050194133132341776539930042292205159422845555817013728253278011171698980034619430118749620529804542606545439266004753678640851926286070710441021099430059335815620479373674764289331865714712591647392915317083648702819886058150195080325818537437920481161786830566998099845376757945110301058420843463498279694184663014680710054814685015789395020587972836357872928716175950578105603394353925440880034483482218016711608341730654192244255628404844203375904585064435470600716041114487726234937260572957164791991131317807067590843399761491634934646042558786785191541277159408261048398350939767347939214115086693404563196982134287122248606305637234951944065471134457628985079820663798600326538590730117317877213463948623750836064112200886840318089337579106551201208968654825493905039641781860025414316319253773481220278894266896987546862132434879702995183988977182679026775769294054314874039348891221505740472202295458900966255088668714022423705725164473331071229058624917909058320575329446199291087697004434639539429196217080252519251408717197141290978458439947527844299378729221900400034958775573957643782948022433278455528693998963778988023938551748296561806285551306849265805949964455365936216826201547735453050831294293205593382783811161046634704445725222683364632837107188760494804061619648873173327798034509432576160217947930373698236037690349681603778923581433688603394538690736558903606635478433444682014577662537940375191400927295024751367464565834502459494828563233553847346642429532842405988425818609134837741915767613328443117476922049702739378189469225584726784176059751531056058168049216272362186715017612297678322975092077511979836847609035228296308185910059143656097225674717207296729273921915479677724995248004924939111221765794349931650016765644497594949482711236353724715148977762790865993950705377861444457691757182241118734350477547494602724984570243007360889264177565331406299789455492538100223183775824561028766548212817757739273772289273845898181659777804962586266139804641374206318584349811118121445970041167738397236195374105293069543044943851277400247806482601705558917642999332192114638289359004699663415849875669121713762298202562086266286266864763383611707496084443846088578117666695118148160349384141553984816255615195529756468210414329723227381088112085623888850544881833987023302641509208209003545582832480867456334192758711226253968247771061264831669331965561688213587262477181138194467151920516358925366926712000780801299345714671313414031313709054603915579935839958041509111974841818751597905015693583605240392585212028830901559484413317866811512144006565940939285427354267147592487385144134463298094028869918495711747733089368913589482075517472313807659940606085243870572446174551913297106618856047255572173870452257692102152165849192123484375169861360202291854217629256097290951994266760047404318905188310998822296853045096288228604411679877510082573323675955276265140954661573681475540432685672976916668963754602583314081662295649865724983971966285364645046755051626812734098172795382035590117887272725835288930297564003946460656086836406684781630009320725724687049904660608163710488526957415790594073567330120085971226760874421584877103118350866324734471524849589785346791530025332973359807034289759557572706837434850180978761890426325637881840622298399757907630063036058388888602528610454537753525528310023770430170846482769550934742750327558426060019882410364779288492502742619154575669848787895444228213264973245470088241012568272335620865513945820268599869052772021230180571037511252906797413790075188286011194984270801220348506037785069246973021932764285439662683560785553223106850417622695527703540030509450660417664495951479249024890352300147621027997215333151483542323645713438268129603906266701291808963265403396485282201997027754604737448348714646165611079688446084789156663642376613022149802534061572285012960241181171199763473292297013189776682827916799230045347725114261300628174683294939558294152688812134452426203383441445269991424595718469674469599456726709467269135146864276016496574768799802811649632443192079727148613842288160763925724465691842376132687822943074553903006302421944817835133100489834104042506984558144445196427688731953778806235809299500570179006710143692950008603252797147947085907910878222620360157399569703759498779224834059710577142612921188598912124635402006263852182097082063659603037762153780982475326652887744581217544325885524904826197587816759026356919087723256616093727195636829460883244859698624710402715065586394583219692291300701557237232146275603851954746366412034465706679697522125620166038132640530361910812971741926431097137260102581396175970344454076394081367954433728784817409942393889256770944313539099337892703138031248388012785613190121982814323042111256933794735874870722761929302815971393881246359810511953728153726537691989412897787389601536449826564554791672730189544267448153273985296497217580630905968889623837307551203114193581426869482522910825781351997916790295934171204909179483721778552938295127944992216017118229218743136211705030686697610804179626698922826831478029463619938440719192370745222597615854119739786080488713961708896447676231265389609618448402124660662833906200936206804437231793699312193935956119166114308946449723954253213888070015599971130288914037794599702428227171454161000251729152097940819497686814228262247148178175267225468885723943099175440285230927636386753403332637633539580504720952322565066871203368463184155974965245222705089434479216255267914638366808218803754464226200101469347797312986857888742885039278139189918266914952491375668358677759154076588355525044220050656541216179762394780538162124447504638889924835835538435059528713990936768981169688873973843302569344038223763346480589723740184440109352114495682173828057520994980580083220686857423152744727367693050944732728711640536102236700609222292182014651186152157503328970860134684619608468762998459298441159994190407098895324195420298949020070547372799177992523430436180372540707129028309623825422015871245410940020172950872375238937869631665874888357953466008213830348360971774192431454483545431428066296795987332928975137153923917557151548928400262658795105323731873113542204048159767770030878807869918036077503860375413659075392079566446980687428651938716973858701488796038525095484864090507270905110641209215251075104054278453859990496762053743608398875645596522298252140456396300316987138257994038762649204228523401951614698157345185637392462641584413279141072923788840204123895521812922540476918569502047900672137584128032270263883187381501714176434423241431751452069873793427803988230580470844423440842266157722001092747781256885858350501414097543073886475383807737320361509359213151249665596200755931849733724658910388294884094589785432278438451271839380216015011751657153165545838961952844128085034125603315132767769369819431241824280119617594817243354413160136418554701563060859713997372174841419384894644073144703389798176107123519569203663872986050571288000493693238171202341708497384389960255076374920754002876891169524750594500852302600627545796818924467648580486579152671446599439894206903023416814451307220778952059887266959991994206928735702972415028592372315572207691955779434007150796946793616642173926470848591974768690624900282318010822532370232080991956600770839463610303647452333138755825655177952166342914191869842566874676287617345112239545141859839303445650673841095788318336004674362406936500236805914487482361198247235030503498304500030477301487165473596079521144818699222966764436615649376148090908067927437710479945146928642028839901017749095589180213617980998344228330529566006349272663824274908046495866179077609987247914616361139680564037056297973165926925946846502526306360187797576267620242189591249078765116222573059216065127811924861822331037116430278735132128191752295425120986550137857418541818275878768885712116582411395286336316169208825626219708292546918101180709221449879061911811723790808100148699226056076243312012559596625077697388975713409722946210532053521754537142051735234255256952713474891360834068323585869181953006956940198118198724312017711398356129179745631940913164281299900525999789170852895989147272684593072851841760070804501548769886280983215728393473125991505753325121899883817659249318606407617523562714455457938361643804546073651020012555089193947846908965190152342991066599899590655336015954201029429514072921587229151943633585644061588293023422995012075337146568404116713096219462338175609870951411501895903951300018188157257531113702692464057924896921066842464212231187739725833140951600863295260834224992369763073244030390592147376379901519343788414525111234886443972633447750943998703153920730944191801938781890159293813032980243315080881942484182224946009461817978678978359858444227840142664120106712605305893291753980250006914927418507897984669871310890774694640200201475022757185885633533397001258368244838701191785834838522756793859609983709506406909450328766127722272437067463618717641553715695863042735149243397774776381628632980286746601239847973221149781057788548732958287584242358798094915948008781669036041847974159349991663148492763273063385321942693561477909076607208431266773859336074293331418894459370463519815982788448592482162803218676913973917010735828319633306542745504720286687833082238425111946782540964598522698705605333680731974288931762885493837655001344371090728579076874649004758728769757004019881673034983573620384873279171311075861680409912030884596620964251497471806667306181841505307192880225211497544902436174801028931641216755288428196040577569222136005906094610866231168609018617261077884366177651980096618257725531453369421636637352031040731007468314271113427417961205515947680510058456918065840170696149403919358490226785361455215326237364719479421141622778194528843135645663494407064105365798075337216756532979185169728141124086052538173282763820922290233939937410438018903672691490594135593582864151382444653638751346921095104938428370933423998507562602310938033464013120821164018789091558716681592711355930117239785424628239353824682590463511134441027033936782954477374097281266177736471574216796487705862214714403495620996150935264648372775353370565885420885876316271748160437296792584400386200989262358011168046360497360227309277076734253305837420795913575210838777180886280239729844229190539795795867545202798237548668228508875379448117857400097712721795815531774599285745574256901492777538389205481499207011929802774712450043699164158256015779357530637147325719222225964285519592857319174572467611976331082855429731282488127918953713219290665327893540126610744913926928318700081458387304242570855399919578009488114361711625269691183409608098274336256408421800445646997137834285447795659110971854840667231659771476511410457251315755955441058472649432139308990949298955786148585728215691097335867830189014684142057826584734447820052581848541009396677314964613584992292118691375139730273525843688016316934585871756941343264736975159064379542330425873930939029209536127411847612795464667809524153537656866076157829386506697918242713545572004469712190181831290266693820289610246452063764162653735703849462689770695441938683379741741688426726759330337081975884288153197101432270662027065639920207649338291645704813323125922460267788869582103548781263109850474981614085994659026188546956865732384050185394707588456869669740480728901504895812959540991741406028382943593405702221190472752244331102615154046792231709368448252615563009402830161843503965161693012930975476372983362315554608145598861745851598368240518176301580936423508984662500911805134195439910472852187670768577410422704780933091742356111262777468185027037165542736979799551349070418934545649349377444344361547668556487705765614529140036944145972975437501310841727302629259175120436844309745429096855301356782312379900308127521511125440001654548654959056933604566868966728062757354009400483027308233020564676458502517462562764063620373910864283802129941257017206465976887208531749317164776988250010436971394187167539765628514001612679228702113802250170725174877926693228894872877212601835775594226425419869499832202303431493294844477318728423914770360638114256024850301248592137708789489939429523936114876507454073055138889551536605545215994065095226260823967927443442550612468085562944581611996271934610589757343806444829821899456913722689591863330651436852419045431259022145945262186752756373824522449112705993454451860939584660512378323851671965066300415667859060448739207620516308258777457077668169196015131302711441664315662852708561958813758768714069449714176196845695706177862528047840403641708947529166768408136085010773903615626223933238405714719671885320871984583648053814434672561955723778763068756136186446142575513554933592183805889606609472322493187598612344295317951823520051884340804486508336295815340742477350319654701664447896974471421428607401431755986130618518669793441368531113261357256319050643660353827160198865694780804686467812225088955366699559911869596082479386952522736388981419927600433817566860469213781976511409338787193185147946859469723850132439922485230525698596654726334026615463055707283736246579972388067246688927544771333970389379540935983364243054637325131704863818453314802671898015555350504771461340917277724169039733078169799977893784216012245382148242864157149637336938232367868158700576413244253511084640845112763712035784689045436330287843739159532307732112000304713648600463782522510263180069653405799733364081068734925205348800923071630225218328243149754248912970388678575862755202172941556166650710856223031729280714279989580123499927248212862425019880264432652442555851361347298596624294861787488957223140951786888535349344904932763439452933245369210361781007802392393130243576062551102613562606134832903580749144408169524814731175532022868497494143448102242389450259950787096809639284772435272371361201375745088805094887098927230702764580111033442098886827192025717114954274664274562566873601174813798492654415006136784552861949168461364518378179796199087769457229690865335556021730665748357723256410029475137199038280298699461599080145828603851968761702886244089877530404362356226614195660672172077484450667502185869140620422263737400538529645906477002882133549242182038918774411861804260044244313862237579312879643563113477084773513820893320691583399591188554161049479418312404231991984301335644965030233552756353561554262280616299636889894235993620495852069366696042229296581556395260847291789217602647711176992186488798990165519988362129198049635892843878490231307852979092016428872565671081433989825835665996009464000370139640640483254521785582543806588917899814181681387191178994326524083900052693669836855059511851668279685682241805457383753133586017826123820794526064890048814556027283500610007048092136421838133068385722783537632268322316600121930710561622314095490505189200086101271467664216127926954003705015223618412210388374073304611708980953001734911431470813962310772795609081703576354988574234843602591914188909706120691035009214464660241585947752681092371689770761625415148184768235128834452748957436304239492189047082426542149490537620415872472975502622440145855425971650012083741149893089682149558072626932842270899247694904901114546625859724340996589365194055905039062113315169605121275561740853772327289115481525296936873260080709482192629326666493438852590323778746622622443641891952614651098129491346755152820954431389656929185307243033209435571815772732767965822857164556883022567381190732468112728663497608686345837874451379301107675757778005456935583566084800595122642660491136141761018715060893743527590631721562878105003156791986141742596075074271717745411669654362543461624623421122654477418928255077491949205819095008808927273378388032784285123704929548917243938665700986285223650312069634959830910078263608065084729730435186287412376095537820262170406845500129867585780226260297635612421147759926170459756532388914901036565232177582888232227015331777444384677074562708463057796761748191925484836585155629932132494892245106891608181770126930811947570419235305094057547996655909268976469591386015322729141346774964790249760277692897321957102353222131761334499317629053240435186219658028073123359199586012869509165226957522416430738599094041655675280580170799490277910368179344265432875171738791792245735559156435941134828181999891759393154589789919281222919500517845074763325647716019219354898876183986733033810952206705195074665526362604320085528840915470281914184255235652577935705866988640713471590765423203222053921044914105899978876892719349728497400439412548385899015924848828105353289537291574750198706739181661471301704252031172512007711647951897883790968825284339713904602064400525805804842871411924373212002773273858603840570157931744834417470087485540848495803933891801111130613138300861826139607761101229995773364026630214873864528352526373887645905866377261650929195730763117235663609327785651253527711387070167261181721685512862291221769080886108302472598039386287049547183517014060498380258014646262731924969904524502687390059942666641432716253083909638914195114275329948108639571616457832918699590818216122868998269659552165915868772636767193768931703871842009709137277218533331033220708595265907957813435925242417639920866210767399724447550566983570513569853656463074780780274676286135285385806137798150776474199258704118760475112767946195985049949354478971540970668568409016540375610212172851675936729296917293825212720291444316891519130638938272765258285290364552007089897180709057255015948194711593083835651371757954676830669359828611295762849122024499021716975007506063231862446272626083050123750046763741756763718969083403425253720013902801918780589497468549470294110292067011605104167500682948903506732912217781233930059378847297750401355277890133967549165314084209216319107084265009244662419247109986491664129681915496275745811889923525206394043995373460749945081756254159704685416618546728906591070342878231260920142608351261171275511912777090845253945276538218496368314555738973928117933161624672082545017951405506558930336268513370260780815755571970140824627599682862449699755870065507464340389411040705009099156441486149136848136793571718504703069213178783234818689410609063622570247784445017854090009211666245214042681932086581293159602759233113967658181432975593860703619902120034469799980054171358215621902913628202655307297062164826882551625227819831014611246035427329171821386150617809354947770593576381769436185467996484911791355557867976654129468558217874230599380254978796733878462087319935161745618331869421761765763891068907171733836232257884878463284125271200556155077047991430785883821868425677765533075644703375808265723751333027082445323694871578952239397896427182145324204831147102723710915114253809197875483272778967544708174933482271111088022251196371419475313899521463212966618092241821215360055474301050578542231978121826231689519885146346939529631317817821268188403734100563824054859485622202380343076034085062298004145747021326386039313931935952293873020268475413306952498195769717723937156725278282118097204787093219368376166399780385032337938900368747172353919478434914711833279940959611449145789147742019621188504642415973770147938338557409417130679757395494855683720903737733864402684494105540038553307319987988998077182189612800753707862479261855831387056855368720602291468835664696101342017042552279636204620426242866044644794350982039570098749031254518871545071296934999939396592190941126918134130475415043028439032439849629651077413936674075073640269148299962339427960753039584314229904735676344653142299110957394002567588858563940638775733433683277967420566929375680231274388225400972031788360403337052946701702609375530657798142790952483863918026658140061763917525336680111823088767254319340931560919288863679081583499739545789229961551664028080480630247626935879522055737198566878956115703988445822077645016367435124446124376473757256193590297590275262348750724591934753628873287777331519159892873948987189276238223544943270931348267409572916019586192454497892268434298473577046802121083138770487267750316097130636178606683322305714839929507876416168642292165911212274348972842208157666787901307581937547670713422098638345008948554713617220619922551754237110379244648874045617592052555142115507447189085345639994877955994943549157398530145413121468066543321126011279531885910029897052864049804281704870844578047376447600195078234907545752944157945744343356186637904825414802438908742708429182354362528656679437288263084564968978734703296590298047437541034678737726555531141625143556724600262650318390245830744182796790683026436316311012298083392980890271872929785345110001588441519309056079545815249036665264704584985535179990699037902477883703799107605742193095693353370104246137966145932242366691058952231954756073695602738453726374739529315863822477719255192505215108030917664694151599851819682397002381733348391967328652783292380053841305823801791890816002986526836947331661757169100484424377724675493493021151052464854291568465553691771127814379274736610698257791105737408245718478907886093229288935939617295243825068232204217579882212076786358396997808446345036403077778425792424421649101428393480128942376593004236289082196519509139728892516467126623533619486748677124400507511982352039711964782625228369238915450133254740423339464762441327772677288615664572345163020928168853544880440977591613564774017016709531289619853540057976532437442834757060261358335103666001192597504933627615994780784158530254992369311802793840271372670464415661168192718175844364165264853104510061713964768280875631378459836920978066227395481013291924011385110537234626771739677203730581448499590692470026938395245528251320357004662705775193562099455864047867219694294370866269175474906292018571340595112014459211250541475182975032270879575306221947527582760254006682893057052820882172882689721516878990943353805397011497248164272824532920600402387392146510140062952442164061867390135090085459562096957490572752995409001384344102915769115534540857893381978236483412434249387681580138359721842795304697896402350343579260185316355783283528490981825145536833807942392436366427287980643184822753622021088905449851390669379797356471533401380788188288606779598739168813826383372022063376055081279497421097036024986975365850982434421129576580467072654972060584700377121376022204024163096398098221963329329109323188200783476987471767335816546313218082175619611283645798360920358711315598394682085994925996612850424065360322938492966141773592505066820217852138870674677252456353765680178367841309637761878389534200091748208529324381479029666757391395519168121168684497718631459451823635295334195912679078804636370276516179335280767524943130443649232927061751202351782783740411514932454218411041953948246160914994651047993119823875073460181664105613180760050589964690742382382437288324511377707898121782970948060152408989695998284395235373856037891564865620577689084959313794385995000332612447740457751937003221092981960067711444289314166815536815624720293487400024185068359930077494417295950384752249715759146084800322999535085194825178968392668053463593453617556208415275252196371077514426094149869439459623701213911796842199440910729289016750294186679355006466872390198432923611119058504603683974432988258364952030534636055557271851720666469982771060514957868387951217181347348760225366748405642538003229370448118798336415719870214103857357113324976756740648705433611379002224359647277928442695018653275463903486432815356861439442646338780612474611738338934203986739922869585660659660967377688936286523052057483917173183971168128061487457197915935319065500363247385544867112275957696541563487871470643148423495153037972603108822569582189412213375224399462804828579570757493419198880866683794455354347576002444819124194098133585748170502543716344749775969204304966491513818809419411064014614811038198682310469720488321993480826480428056844503033931483380494780410281825687922424849874986313305871576492869064830050070217936807931598375056558514002396122092017470229054791615189118496662553644813744478219653167673622117182973598963803566373409177949443612428651813305642067511244974199794682987836112028602705612219625169287369451370260722619719663965210801809772494643149379559029435829961187100377663583296780812952571168275535762279058060800993884746049098639639749490794056758031866893214051226782538670234726075474984892475281584620627821943134290123547643705698841216585647357319953863300520843709268968029644892243407690346835988642591085103711091550132350816959785425873197679358452677859579260252197170236880499098036205211271900969756910852884517213684196967829245774401611488759658933553677192657279068070667999018411249916526385499425778315625029177713296246073635230686021297806926368042334145185847628990985105649394521011239292177640996994599609836778304909509463233534570335342427134306481327404916955323925622224555449090534483843877068229308673696696145422590313025907926415594964938178456386354118849809005208496111053877906273760649599431679576834486354419304584964477305256198963856855096774907504780704032678062175702839047577167344510597199331591087052526686272320861201278279505751779146589973972362181238613751280018166139673601442250754470218040284133174887206023375183862317445991058980455001297300586534772583545504520412716294697857549152576953262177381284046984595312162346499984311627560238996389402532336152406879956381485365136483868215057878085919019103369022528710607489756183636005186197825045132582559114285780523160225928780636139742122769108363101956085461423249139987404065970157086303941785497040699242828372227025850366188145340228298009991710377945891981402455313176351717780503142120349934610693488250571309893639115981211671061094972808526741047425664905682772418126521506702585752255229563626203714664498940186961371996493870657475378979540629720724847896824105158913159405898222150466631249905047032410111911376744836116100237970657558098531341931203372404900971957182371781735058477180208310596984200228897945507989552926211508699342066248414623688871790032183062488982848566376530026037471020102922847569561999191216294960356448159432559242434222248338792546653493019877360468707049890564163144560285090461259692581225547193608936444816762459570526622679176927460110353097778773828271629758594628367175465957569079126984560743459377755670689340919861826003692401593859304447449251624884186444520588131842737491434628400026722497909551166376819863456921459154759349876759962158242705573179190661369566309992017855467987531278769240082715229817907322171476605632516288845920588840537406544881776904412893833404853111995586659534706528906340443163260573891579672999498649630254153739748066276539615731577651977578556641800787770668731734713438465553973591294066824789087657167480652266148604248923791372276253395076244655114381678938033555878512968995138724540649150870916480294841867028148579113139530901869149206145441731788757624772528112072729442855225511538106389643211901065102116712620537287204701640173770309787758224143984448811424984396017608689548687329662977065704849504128770063302076567443160502370284348945814272425650841007121439137477953686844373204191167045761425415803227755515694817958188765244587944871362360187685030835276595085732819392984859468473248538310399780058918878003475008822316970334107959512900222765549444436354277267238845912728937938757704613014393152305785835351904866456008272115540892051204901046391832257403141836810332682034375379583255926654339820714855637146267121333946389255169614698832694322038201398107631786332281417572754040079356755971863481443756162702735098324886633966981491961310787120360824387026451905487658596116731699507491726012655038657679770925979819138505203325520400730404413380029638893057412392590796298974361818362576868471510193859186845472340421444295094289054639418564864295903248106478324929032318480211948623056528548259034997392341114805956401195771515121222874299737277419365237408663761175711464694033131668407684407604701108634122724597605220284763053960733301065437677787767080601921466809304526525630764442775861727830520507366286407013527108064581450950528971747139282760818793084221812038434021371104920759409692468594919481612294846316772450406265385202058288560881620301124865083727871332693799207647021194047432344314318231236425669712446386250093615525205150352602839852748617320269022316033967579697243876264984392582702926983377156222808413393642898655264206639324488709261006216212946168206087069740894084990794640073103101319740146166108143370169857739856278284553154422441174320784387677310495430712736909871322263220152713255441898923852516334720288611029887360283741683805762524163035461044020916473879249093957593629204776860441329890378642813259713675467056308099307417949069839898122513822059617716661760771440481341572064670880031641481549395685016333628608443669200326325729010634577008468650688932518053581597664477008135188439653718850520920433052024988054824292540976412351643053082256139173517778122509919345347273242143493446473295010875674947235361050128134373953651123755468244260591130746609999111743575296428415129756735332705033053036735066092174896403743010237594653272019251872224033927449444098718294256861098533548686031828219953111451172618041296113308473234654700858070003393296676148645163952833290523803495371836358615402848714700415353251249359900393767325123938234138804467706437510492022086488990824882268482852490196058994320288660358984137918387817381642909867938304991173193940123283712541627630851037146239700888908698838606516109429143399864775862435334752358585246166024581757113745535188987951276693716896242725169635634493687387744414675608651925582262034796788052609159070463786140432012170442938621790229046640730572014051075860951672674889150942676414352090027360776019629678856400931473957422230471982819288971724414658634371658477289637362835567693016175955833950220289152531107303713903157425736981819688089994783158882203297127864544288840132907402171349203014105748937028420474974387896205940752184391156835530582707122907710023141159731363880403904377720603260726113568878478926551942927799505838733008249498395754547603856049601891106229647101821689059220844094347266852621310648112905299081822053006092560293108351706357751269932945197255849914472372391662287276316774441401204033475961063529344379622750320710983805517150612400511173193214860968749648731158503169719062733778206234397034975304475341814811803398146497135620076277447257524185002764401925654302539887472578118840580746555461630238577487094164580265167585143742236144365860768793853903414184239057198008355381481784863399707192671224745660689288207407643277622876658944906314476486948393297965119123605830050230534410661880012203916167125786218787127025365673165318866425553964421935092176865431677518154913895366050728758098361692040222918990787602221313894819667145390480864922173864610384457420126911157114691847109355178838067935259794737521982914284614032651340534159768206819141491400228364136155960769535519160334980146726245402010414712238141570300618641397969106290603043230983388439394480144140402338885120523127349319536936170779603967658877535595368196452243841242898342279461399910376880979448096137731414699731092758919309597686434500939168998098514667728217326783199902358648159293750705329848613356725420924110892594109289978272202476014922253506017655955132950253214661910934588754832601093856988646859398458477632346567051615229450902681248093184329459862883409964905715541874446843543854242017952496911054578333902700404837155473259816406594771500629048524877240230427402023843173345092714187491417034354097490419495140515687449257603902413057473549621640425836931116257246908234741996649296050973834873763669561207993667470162216305067967898439643111599365326546465376181210314310425078653197400590769422522628518430352607821590120909177304818417818682232696569611443853292652971482353159574869399366694443543942883200627600232118683899740793196622965953396585369830985530413227871813551273523717818614892989336135438591475431395856802903528919279406787261037897792224947096408420588162840062250190101372224727137317582230759599117598367957144796798345716272438297791965684820362980336880948742667810015604231565326266600905375159859342768151867647114713623880675445081073900349037770201259144982999427119608578467669028149215526914793988994673345426975830740211356523344469193272925211011641191777540093655010690541748065815342905350721345057369700559249130580601966854206097196030311825041609716891495442304177948420751609645661338315659401572567152988748891869510475394457624247165629177120741396701568140711970246994176566270460005598318996218167669469842952604084294909698388361793269619460321059737132390429326789186018197533835670816831772158516633615257810717505166021093096875816019672138165312965558921231088427427893848087400321439320140071974631743434645211646942688425698646340937743971608121688299562512867475464725028573669300933360230166459340053120944721328827306119040341958448581007609709589877900596319911116397026808286252467838489384712622605683536600474862045158120342857499866648953148419249293490984692945351528560048686634065649541853926611384629880058477102943235372695412292346153491139289545290105312973686022841863296063953937965728206074614174152468025310279604925708316396606420181935977684734728551654324508254230423432357257059158959195657928493220527864722725080546469680517013690767566469386499178317395032782196571588437328064975207992804828079332136169394093332930035698156418997290478711623505340864660778492880429405508215101754937096483252482873068208372768074122865345604889133616171683316191668902395015908132101942409499472003884273243801069271731739347525137105950316653873646389557427541671937704615678119846785529428493908119445217697266999094676623621529146983551650844367928764102181775625457152884762258743706810112674563050107184165894323844785851792072352226551290431562630284317120053470936568307843517353389011833793973682419024749804841300605216858841920180528706166557418676031395722665394565419988327359107149882580749446788630515871117070644192876284401638297449765056563228066690855200220364643306653814368428883120051063969357903494341826556226752656987738505729414354276011376519611556507436823336531919805538646070322274894520890595788387013851533619276299425621806508106873919469534398331217645709064873650914474297615006121495853909270076935864129592911071139670008419906604775205117278345052125931666838093648273398911005741147544700005234292036022450235055872497083321610103292991208476226733789070720617793495776098071968962367949283653299090262523861657634529950483790544076680048440798837213055969647263893886977755471220860752301494148351067601045806617394618894371582569737821175882656380803125948578810663664104979258332141923979813786186102232991767696801618673068835331254930687756170062946785524763542320810086055264801987023199786151808229756126644257146367854862251018842121504945708082972039493209998627389140949434761304196974209886408711496844441083245669226620120128481010870527457405999237510523985127540716954274897057793744911992753886770072679767842431517681449261107959326675540847676511891770248076617283353059210886290777589571706437839923659104844801018555597842385759598453458905702921431544649124812573747830268773574302422198455365475241420476701433988889461078400697782277070552432857040712621784877168549193767429685147521879252896452954045747065501570033279690250644197769706321766426505519863916754400020195172792271064401380818533671701896627728196593745673273549242120766181892794370514010523390972149794018755118804530194474885966774799044520884455113599927273982527481719263022987281595632685131092516295334443915443783007900696584720474957689990148309470394108101455803022396895539161199324853754875644882816633041290170024066451577565992907172002348418464784943337364024497717786188308022825942491300445842455647948223009706004711874222819861053315594834160353070498026789254610063274941169499489550596053733894978537957907815027039717774719301018871034205050838941644076442927853294199113805422051241318633659456540674585703379771691214266299375720708321334390926588267032943613653782373227218949722408488015750934070712726968967377978090816282449131987253264246785423418753974383999218114396836979398612872530455104549091568516076594239504813787011993349770085656229637997923063742011364462670366540897437099238758229119152211455896686799634129121710389861588331165724168326804243157383181214239876658470670173672708570759505959625471043672278832301373481430004835649187397810424869507717968223313737465151408914156800745555979464385381011798085818456093596677554863253242140100615614051802697907692880122921555413951252094788807825016634334235777643798524109955818771134717469529892484354351176857840100334415654102454994596010555735393972329603897662757360942176500185093505848959270585751786699238178091019120919536588479975545010056255735983996766980335739517478311899585418885255895770733020251206354426629033850001900892700468552352849988334477279298899506725873591865543901005814319739512382744504539116266740840789244082869825216458512685334694176592029256998328848034207608617316439550906097035732664999014135623353320309045655305513101904133961164554843563452084227136687465051124792728756813551450512984734385630410676889541744397174159719334360738221289935764579723154701487513195449407416329937891122268751163345142620250724749993482908037686820844409270066496211430318307373264956732750570657050194583417556578827380374462146775579738366873980488337264096223084455321730914115734290329388216081386004110311901750912869022681319572791216547997882189499894566699236467957840700373503517765491794704037500870760776096495797456821749568575873451447120958179993326719503112181071447979446845109299172330715580653537849532139407862447969420142983930341537905456101025202496367501906965482394704540671842444185958452770767031344668222335337794089689889926827342003446208851338503215431507542478409602856859488508985414345621890631326492632776615349498756559713785677030358836169868556175021297994145351822919665428596263649914015966705403302947241285973589033821326137183002788629093422028489373461858197069393220755549194122081155072947131078703798546488132147365413514573150067340057175070704089556127690732932768109108588716430224224448772767241401583609717856511327220463435165448281062884913825981568718381123172714405258983731554830575207068414002639515796864003097641986788902073901392053796288437259487052028922130464181150189379246321506180741906099929045665085124433797402317000149308223154615478366552944902718912516649715278660062724583975026865450849590354511388149184070599566303799986518279627043065112091079401841372333527636607296279968064616650031548046416099339263928509773717311499568572355759927909193221587333203755320866891515256761401838945584972184508318366286849115939293108606064482895238930063524674018665221825404122920324119799122659759231299205693786479111488614883865866960450143869854298257441106454699752862359451716445644873876358780635216246274836783705189750443786234074855842119227526019425320121768893092613813246374148133347218983695313466076772601815884962476741817588657144808130842630278941659228362516071157164583826093831022509609183259125743551086806836710213659998421064097118466406099290846721293077539161289415344217377932022498124515752473080086397738681615740648061556664547076521472751286019511909829189342365850320069214042563441409944847306063369466304619696234597885036552497957405621845722776113204568345928126007459694256234244684898573052804516816681091945167258443932771107127687546079777679208406196129072613498841986151601104288637683895999335930352519119359815986333360437644834168458738543494558572813700246691546146780595208368887311844398896603808419061894163890006140492648265875304067009315469772352411344306846381131003650873800577783519035508987956187387121358481395064336526177012692998118495725352544689315953394880742348681397057340559803261353660860049017313084142209610372855058564448537619097163850610990534722411121567805650036528606424462004099401572521924295778327146458051541989266363317755031416834023057428044469752632474941202683701189568326842198653285292540892694648567403104161125418566140178221619657594923218773728450754761531777463597998770861230229923213424657141016127882047959969341031675144966137389524709845665233769845015175766801419410008740975008858489624383067846457447524531032360646165135455764287504815532000573002352454263387547576310898533967702712770702605788107581592243598436647761103583799082202146063466094485941036586826707220047618651840998917668792169565645161642942884439650468168477427286510732318677441611874525669498179605849851230784814629774489748376800934500594029968206080616359524741935039939148603298496283901705050100448354418379937120241865476702160823510975761919756623284685299288419097005064897647880875879226309111617587312485100353316063541260391018132442396299510194097414337847628257615161431521507684384691311936666337740552606130681757494980757033641510186054142300480040473843851464611372325018273957801803413911959713991824663724457042288396188651579401180902909584843031761524779198740827518730193556529031399372433443284348123260053575966828737434496221387317174828538866809267299729937136091334443042575318952383637144354149820588512243211284240305262737543338943498447402356871936933168237083975398472653554761119531914397020207619146444846841336243540939808584710957396187491871492462023289568735317397600667719129182010097366057595837759652041158299075343480662113826914645656205850072594422977151233749978194953522676180278281008740329271585867752961159951985205565463229340111486571595326349011477881958013152702842618988974966965527819165555559739824128610007815107055465994715747946833595604506789211987379207832738667302787505471966458707593823304077488438877406435559599524228675471913730119527207123086862082588730186898906483862522160568170993734638547049728190770702710024600633256327137844272843928267243352082400380910871434226111835636071046897094555826657289929198218283835346581914253535008463895081394742700060018764176618046884453268797567779203882141798911291201218787405363073177863053574244242933879324410758543512962535621053507292967129343378707979272880159633281494418639034992835016120082941815908377151445564565771099459981848105425511989780537853017070899830471253931143966977029048345324465474217405546661197039963963861977898327246416331316707136497217166903680310819575860808005343710968990251311899325639698157111066333140667596323550715277435017873513523221474389487873604938374254832857109615795393897564418897661949775206597502407546428941749336924544500169751798551877520602566155570003683326112544940214227411118005161158396077140368757113838264484416085384748399857787895985005017174139446524364259670781752750135490733852161155459973731974721094347928385101076392541338887025965365427244566694734367034487169405974443874274162842272634314685419272532136216686383239687763884438924416063949475971850072594165646010402868075975823143353989076378602875696653371867403136842913441739919173861478997257662936063047727549297702578005726426899225931577100306172041097389749860849396792255208209664086194346377239896556755324399435580646484483653042846827077005320214147578288906145917962482397459095609755345706800063821444351735793764785972833009285578093469068040665847923230016881400805573405450695799704593450603215726503424138882974797575878649911247306252854382782661801385635327172536381564059015815773039674228913885103902888423558681115198169277047757913131493244856388191495732279493797678823895767797335764618957648116142764115105815393427629736878914402891154130611985889910304159010766992532595648687815369561338426367169973416757406291689574093982381097399570133699363220450456837505059740010560756907220219524680808718885995324855470488799549400650163310840250820642443112221772146907744907095627475616330612661640685861392916859163490771688496308619673140509106244549015910173755590911635145546662057345005906671655874343678595821072142111821152484484508155131591069816209801348363588537580035615765137331887100392035869252590994090553691147257651478303407789156830274699864963975169962818786632448187272059663035188087729659708777867257136770028495109023800197860923186116180739827343706166656456880898836850838487914223296809532631038390785936141769648670486235697783542246296677435201280114513564397018620543168625119062263078090718235850030981899299259206611832119504144191707393208123384266451636250250278236994743661289595837932896290724621588879847689773671189831304615546485801597829889962485149163284367391262513414410237262892719290052695606424490793540574203080997194870203368795774173211615880384498462858342890275996975318736264682518947081022139940013226265190191222712557775245603262903522722682908079436881180226080653090986437262838991446622589761147570478277445446369888682012471638051401892936012737947305523745886050746020192218296750867297903513598559131458402993405519792805798461279755505398508654600084767212832585415477624881444500116376233998612346447053642239564010742186915172749478640338599119527088115935323144194311539099573874591895714466124845641374252073151423298294534956458098090208711195841546328290413488667897184392274836097064012512255411809952756472515866084116549743589074233684035580545065378581420059311630897358147233174960521967818129947256453215975384053326814967415596821427292165342459791190526804901704122445398166823637775304262980083285546821153941935859071254773534548297596357259008625385649625764176578171225466206695574146502630891784678018816006951215769829711844255391381426189753086513608764997126382330268172411579316232173156098080771139793303246711669230356472571174386129990049706874827372906865572914965269821244025270769703292241445665928683803621708159318755738276719063137877698348291483784818302318145689723307071802493780819602435865661992090367368351453478039827535467228909929553470542517645071339079066862797618617702379985520770318530013814540070492828922912450784294812068011066064408480598046811881502321529390195254998962140924794722451137402055194650835968932713020397457959422448979402233198748183990080568651193699904702391505766409392197864067514089368255339813988724472231288261706302119561774423678649844916675981784823516452871794431757798774090379999053258938138406455361539424473948019038447818866491626464653856112253473057766716530509490609661433870170171745815681185904109460034605820126129054108457179927984299910618696690552636530260821919279431931924216633234724042794631076700633062455779453961847813957639100680251695099150070567809978136465668217621126603958976377928611732764706219468049123271895952978750562399288631413409671717161945299844478918039133165993487822134334318404729257309351948753229824846792087229550463637676882186470534766636753470582171060976272609757066960679270105393636390411271733217467192682279844961461832167785341039823734068268614682647510623043883579142959907861320263414080748597534237752042798049520897638636392923057238672184160298715177113648603386729748473835443342186533977830107165896468415308428070193308582027648249976927751243794545904905881534962747397435150536594247147304293507166463512895800273585318956924249389117267754207745073312271388185951411869357584046161432630743873351637195126778826387824677529754381467951646662966903555070914553761532430868249059619782344648342988203328511644137312873097939061172164827291510702391413147295634287715000806717084313770700690438375402067059666414165114294686138611938811311085119861759452529278028466232546801103252220846535384749601841177338163802524863188295444750697398142611990357722974504702495302538793199544657526289107346367294223277316677004306851049329391275210612141962725191356592007145967777906096558296841732329678542710044130566812244254369726647277384283216373554286163393071063327232853559412744367433916207593464027577064868804764538144878713938059901033899527905978439524487415923659479016639962110857131361384432777376831490606790618293398384250237843407870124276843053900702423238692528252876126823618716858027560969847980403432226512684122761969488026568511355571675478072832823346703846681823967956481181235648683572126678019650282201882084528522284917279152029942488019290370020067189279234414483572065981490733250185490185615088816626690148797841358749623141595222869679498479937095815916761065694761066892997736459512324165514833776162863987974949680000830332271090535864557657372651796906956877209667060921640656541429697412727411452756697983934673349573106383030989716235521853459979067777261659385099176651615634498290375896543647419882899367838925337561298044323039039098006777769442458487729854667052953701803406258432570736575587170561010946727459993791362370894002013672592889677446448354975056156233535744566483722049336243275559512967582782464779657794739669784667784761593968773692829321813431376672318133713286398796154321808873769627058500137123082322223098159034134903633737583389548745325647956183145320844592612594551167853397619058309548126979369154182070132192376559152702072674696928069489573443925665127024066992194076607422339537700130572398895569006345578264397916849455021162340281143996936318567671919499595021104775467424134187096729544193111913459615956991192515594669688154191192283829263319603831642243017892534007891553452789504743417825967032538822376598819028770675944588661694038888036939493833499274056037883860808167291288250375619228080176197614124539148404955624133588409118365928266011878493866771992294854434834440945982918188771841937052251376013287926158946186235086613562124843671961254176368798186620612333404293409325328204027496320475314341669429448243139560837202597331759533882371257993998573642890799014054410608172581454508809342260451815762043566351244096438558182277429787911812850527661130728164134427281276874792314079537234935080792037642326753112549943371761226440985723285555605318122882061337593113066227202681155887613528113235923369085779740313995982223731450055725086461339535294232611460733261817506954246599890382002572151947734374101895133166580436819190061526406801239733019610990907637478044354207454631533741687906491831985402545871672717574647379327888635902975015445916483285123325260013164079942506458210661808775494988569111983797155698396918110936006025840817138147998342716338804758117871201000161774567483108713184760601784530254618185538734979359345708964591510904474825583422447000363853347648511867588277342885296927960579677292699230510282301670035621436117663502042813702641518420639705543557637755679529618638642050587502421606526625613318727530663971192753602038723081615262897776135143008255516126074612262095022648200049733284809858299186737838037809776158169531325594832342694037184402957448224718775804864612527206176197290581165389665493945803680953446615410606682462863623394948625534473963164050029266613711572792217059892780773821587298353734354069063822709459031306594147270437881634973394863625021516284323317442431521991017941745782960389641570511375030554464093259773973933967171043667613627014759836663989596063191136789268224807368714703321541380682479359817702478537688653068195231286826522950049587988736342435453383558602477823020247127881005202750183732461436825569917840883781933680530498845609579648070408718186715689622210382346684640263401802304821699916466990345891458116836164366116674896515826985563577599424760483069998919029095579733587517564852735419804117910197954814726191241286401674266854050536747733838708300174181172087744563983892676851786584684803426148550736118192023489316415268561770516111912293604231273919077836585435420826556923616126290206886550213742218256544064124359141685823594493301947689384513822169420450487697424985923981438742424115041667550862742543781061097576698567477891232131512155301572966379207607653902760185303891183468786131631408616467550052955153800541473880161225827217743935883189452825121843101312917471278168031257475176392697614855216152966391478707793536718189953368296677373496116919576566136940852282816994316254423635127036768160269464339189367850894923875163853762585170135719390320869790436224999081879254957470107434930485166096516099744148938465014732456908531448711899312524815529793973879733107332954453005962926256214393645066759628005473962108749942717892802961381268076095928500568950567528572136014606853436931775183058060907645938944470355624336047942733996792655266852840631249253114883657101656506068566226280757303523902868245436535652673959064958040815871201759319561394517980415159681367179976214570714932056004546825981776034995180542423782780518258215538433916979980370309219481200160698767632029678164937577598458833158010042372657576744026150865673218450901644174568334977174663638941510637869659487720287349403466204092320025569728951133724663895039960968352305386563654224271035679789337372298219447690204561217045502528809124393587582496447950093487994737114811539885567600215681605066140901488032772640358401636419040524613129660331221983497288183407780727645166085880180517760038167507345553400992220717133179668287161443999759058918504170754830452188613478527077592844764355820887741250681872571623915804857518501960179686893134130771011478818939266887153245971785339304371820908853283908904117850944438326764252498834532474653373432344074765368736068196000284281331821119384304316744107842130827245708783373836457508207358161644311966860862360441273368489887158691434123596976368261172352818034719991148808747708577157488626710939043631897864390367539781972199911109040198173176426408418162656279300154616242565492874208027404413863375612677602146860821288595123531794187338982430520129899080666625308677536314597010103395224364205741855537378788769433771077881675157981417422631683965236042296858770641049945582507273587447883752437318366273534722205460866712883038214019471168614353858973989817150808860939938694388059184945904334509052982085224581015984242309153293277580348238728850995783625698628345335297677861965274256085456034066541829395464949728402821057396641665335376686729853406037098192460838072169896676470547454462330133252865267523566002538709711088160023986775290378029288710534897313417412546357792897991154346704297404629311528509188331719152504053192891481505960943592632692789840473139157240449886074094665487266163461029719964648850763902318169091405787575961902815469364512394911896022403959544130003630760186382146813707449016623922190292093244820569069353601894911991137937254981012977664537807130147597000659891595752192407020648411133087887270624176790138123255234500122422606213351892102346219645984888029579647809682652574621925595205999688329338409991898290103176105959895073547536152965882799251213294434142940431506142194937661374988845969791528269657882611320867101286585110902694349531565759730265812876202878330029310592035647717172880808735399406910162570815265337920720397810671400256663398929570037076853882526868931403066282528715469149909393668016491696372812754418459221030429669068039715835818418319015845394950967558879735189609213892533638890058358030299219537067575556857542459061953983119096305621056178905367160576051272572065834177432550407155955269595542163511840333975498723990796141864828049454215248744778170372157795020021092707222730315945458419896436794681008070819749606193325677685535209413872919207789153452239097421534816540191650523394429475933508929027321988065229526347561962724190247515975770029993162867312194313529099966992556341094432847067151469303627966707770754121524278681461015485684634842241060075783560157212037993116026358169088144375441044776404289275290994759622649443207109087014609642898284096436368019069539821432650380416419213781306457301448126352540612100280185613578484049783681974790926004680802593411767613006657951603315936328362094539636591122360830480614169041145459540669447189640338802441227290820287902317286123576723934792864457737984704306192136963801093441305889279654141030995510070914107693785869343914488150338588506654840117211227257255635889659103685485788530185536980639791317339812874915876014931799007649193009849499235773346768714598487256762021827625959758109254527661115686130992719568072683065879091932469514970779755210855809084978502305354994040471864101054528983802523439756140427282854162726177075108852350998936704684605621078173668444517926124397736545830885794686118939149694879920578298297446333508867910139688504077997500527640054462519027140458607934756156849575898315367311912146229566067726121791688387040606843184074192309804232200740144349719379104896728791256940575976464544139243321805641383565031435819839821413861195968473032343691628451391144221673686104598271994501443642573305845372508107606712030642888258712530009011304311496633547928390398994996156084172259426557876397282050729554457836546308704919204078476074325664828265853487760464504103683709793682885446189081192834909811190516291656708280818637328396819182641561350963082839405648694700076513538097022302072838952674188539320824143034919819670662836058669976292980227199372649241689498901869670112688012801180116897936504320547137115899376993083177347508099694231829321212621561427064396256570249158207213381012331999308760945791372052552572663130313358950121532739865900619969820155074206362221977256579444631195884389625363177047754185860744910287190313212740653871251673038225228324574840243849934572508156824114589342659006198762353521179036821233782867965877866413223195133433148399549879470454415157609285093735238579757547628108214332950651479396542339648065429590990958105707554424938076352768483430051027885158017827588876156351825727426768190168678915002143555224345527658584080249169994522667145058274294040008607285223021959273817284833981932921634509966577139170916933278446655642720487890198428018251973228023681792840620903742127780469667047498030554863983844203239277682685108110572895243416540684631016639893710717873764579661424190906916596705396404219505723704284260085761463580948195316512105133863645843087438624684980225994330831930912358950032717133660789045945933447661454270089161472532652328270941096045082911099348802135773693849155387179188212596944940074124141672629508078905231385379409291527796373184224546649482493017308497910285781701497798237228067669115343771894103511537680126305789207192075612215145672281004128017536735582267474130510173789817135579927142016303783129260429429707305738673617479594473934909229972055279237806829431522685464031835951776710948890969379228623500751860002322795048369444290264275994437570831202729790261495599404326173250468701715231576402290997882007991677970126405043284980666999909304522193034640367007647154090461435755427714563534979988502527450610665497492949315979471931830874375551980784154484726625671248890615430001887579794622637909387267518633146397470148379247852665319389191730392322952091354997205477069253523262542026249306500844313556395476471011509350199832411446483747788302933450008904490946501915632521784096370899543253870520879461493314808541184912259959347581382165729308001294100166578708631338654846557970291457487816049293498600249342929471419230403005373250817842224323678792836853511797849748083431446139164594424589357129654066476984253375143508438531560158609406433831396785434922031685376205663630694596448882379737955118519134949740074211412908432352456532057417794459375837063884040885767785349015991050655241967718394108262548644356037096169118625042325258105805506268281209111034603009729160974970460872276174665117881398761588365886383826862752739203194983607866425042795280984889078648738407884095519885129778370277435572518864348803832400210672635880299188133774462295590051838222334562711739489683179120424781672348216057589036260591124924292039887124163504858564022167418877269294605938578574306516969150638238845616321087032538921331724159775405061253737295073754889854278521057530184211873628724525855263472381213107906320487730048875431083420045072282863212479278903783647398402081243801334174662224516189541683207334142207747283753253445196484313748615020064468323395147916031723820995253299307836877474772630597397119162432507709556071345807507368433307173636520586161518514205077990110527114801559097800120225611846348309494724621191921427659422984044340387995437989920409626423520457191353069317870750965651237242527902790819045793708122384561384990682892926258398856550312201044252421168191523782237901500284408412517348098205330908020708479341621918696726684607733605655902728242588124432231932073045170701320001964096346787535799371157868108314162594252877919290561612283404395335560862297328986225600122212329115682519740226026465546145028611773470675704322751020645836088409811047338264216971612709553751498209503622719812944064566414629511226977685528811977489316943903660439569899130131446938817792691801732866439440413689861721345085072670662555299876519053471875110820561369791179889087239775293721405301482498065101046436960372102540762995988923500376197604463985915594812767584168432128799588918441397817425603206922737225066865540964877831128073197609000028149456565910728705519727316036536497188485993029289228028489695924050762985075141958160744299347076627067095438685518214209012278402588182115801655341814377562150568531176446863783367186586600962433754171551612024400134354166351941892282512139591365204600346012609545539370702616522149153063164573519440890960514975423457934336217099055242350180008264357286188068140661688348626545127934039083109518324546310185631515558267824901143752430060621069140199959882087990593449744742985503171411826340817023919520091212997574148137008048869989102170304811968723964191236910151977039495740620640672313680133810540599333495139157852152443634621197191913684156077550695282591671793452798632801281330650742667770164277954937227896582290914006053423252472500924539461016569643222877811123649787727069787702240212747833788424263060013484745828777114119002881127025557400120906641267940965856543561262037413735014383512371134330953817759410957827543617326831497246656881785545926758578227912290610368986967795075690740688012614385623268704509504619371197991220831581727037992162682029170589252761032946819698917136578939349403784900347054229809307451591457851660087131324432814288551654329829542517188987409820861986798750233427010695482453932727547085285170350166742980822202612101307339606760803224898118556142786755204162719725913180964864312167310809493318124401872120384133909790935587690970887087055388849297194952298509554931418104983960828818891238602648711463052402788374901772484958209526187645959483063473425594182280440566796354138706153507854008095824675906803420897518880966933747831382896825606889026329923778279591134197057092804892954691614654669621752808701956963601847746668372347987500771410562661170320590653466903725217991937230411994713753812087957323254830795249696820849632541501139498840172639679294470745432731659081683674968259996379456080571059624183076840899332628102253325411521807579963759629589638781899824116378736168070296685656514059154603460836862162530474886967970187039572227168202775084698237241022504125233730717740855451058741155322801252689913669183071019000664815589291193711637519491471449288138544896030397936078341527554102215370208211698610351478234430612893472130400258963943929320510936995936238381301920995041341298852070021615138992161688321920965044247563361945950312669130564850516370047356791542865748333444230327996396337342022021077400464952197478237483632093871621217084293632468416268272751145581985605066411318076181344576820334036728185070843701325181921857599001360194298399631467436608571195028285171204589161280001116610240804602208450968212389758573638685069821352932803610527649693156354248168169444677020188930954001939153344853377869889384403223788449506434370614194759404729054964734892306247014865544678208348472918261742049325178985925850460136273876357062850756887231508800066341918154845910008116643535111323598862137265420656702494988751875495237356791007367385716476046528499770753984585497404476365242841802481362235020851669535824771258970846355052917477667164419022165017676317053529795129006392765356164231416900979282102290765347741118388391923514243258144965844439101323166136367157541018227602404613891455222708180670445715505712480812221060323857875510971385904995492514426215770669998423225878380079062643673027923582400183423676550200266985164091391037239899138469214095699107606881740064176613503903043045802590547479705792235784648347102072502160980727915720715930717227869423895652471631569900497596694314079430286581792787780688904498806221736563651088964127235968180285003862587665869918211736225877175220181570871667215518514076172732766900474559841824494538305324815163548250804862988232302697386956127607134203904515816934883269401026708669300611456578711165190304917294963289173842009678950436684399033502789341599403578183195256784743536171384166871647975073978064479741444163951054148805070444538944463299141126382539289959774202678660220580175524654715341433518663095324900366467314844393343449588712712943896765682330002528462209240966026669413323557819224149940558528751316404492052770625351949344005820157174156314891941284672243790029042674985452651558005402020445156279931710060129876494956661301078720348077019726590638553880500226928467938031062067290923446525749519830489174437223134797578085703166732298770226106744882080312654870196497424691166921864653963284877450933452132758801405370329354249796139255047737146440837465844857537116085361972417306640480312989262528500330141244399300371705209396914764488615825954981093495685467232153700077091489950509677623349992241715292077225722420822918940879593872208842488634912025396500480999293811467450794544126569537738524474783066438424794596602201881272349687532449664482992286406362768712852827731480087958572933070596747953222406369881915427447792707432227162190431753361420592400658971672879437698334047826913119472838107872223230280482442029639023433081891253948936759675055346439978643201583094271197588943322065591033867000962505042398107310966146848733551924618615642244434746257143896798388901548262816967697944222895213610253933186597736062449791627251388087303494847364007729410507467638697412375061843503891699722031639034630891639335595155599672069790822526522985837023873091124361812123937138701993046305974725769520461734204109760252329343440068610059224149966026462745801738768012254174648175126004192004082348041875866446013373135735563427454773162874022106422847560115647772526526021484441261555925543155917950973359176335915176595829713708891580026201259145258343561724299412805340903756813763248908089849700240725797349387971470382937626120160766861420555507411820444394967700661686327626403131943655869694941309203442391213568027839057742462976454642983458145347080342723790956532373875180982273817305571849718078416234802614384516900583026881125284479520362046776277139637409679768578457440142886432410116041867897305392132176311238340247183211831882364846189032364041214662585137565589715803288665376787348438340506751102908567381975404797385268325185430337322152206221370389849444993047539415011291383333943017644059324972152792753252163570573914590585673757423064614504437927233568186852407976885516710927131579356026407337602050971329819156568574418867378287516374366163529447746457919348257577881147337955442290815856747096588102859294084695372538208462254921203425551725692914140599418209388799504854587252929471834183214683861947438436605134590178590282121987316002886945416731877657099098091751765345404913687461212629053438677598034337349819389635324506047763031264366828522285443352427480517597224275552141501389265511773775983617141827006997669785307203053645331656682897221584966430149177032223510021043137939487277714469261416159197841891664250990955886256032383865773296527374411660769225570366657248356063129504917416934971460841628683572529981726885257340506584105079728726977186677253121637855532696460572790832605132193063305678124493760288126428137093906347925099018792413225130261914306485457806833883496568009020225293402706266608684525646137082609873902507624724731302316131895110332433245395587040262974502774341258982749498392255305559758111363766868910848784332353158004478147102627555241275285326273103521213378403889775496483775405238983588720131936204404241793204875653116508966350196356821971937185780224698703699000064396801150833845822888086764640528563007987931968923654752307747468375723875939881882823259438232169698933471221475784370286713700605361554570346100340972810573286246770325328778543155552259451026610483400855541956526250078017537552626192691625825893534306528905760942119458344192561433076721159387921210675298986310044474086498413760478884405497160361659790191429777253386032113808141250351830519930300103594350651370679679521475010018976190967864636191370107511950104825499438027413466861183298187445435541963594720763484994912952164180067901425646877762976710522000808769044110192918765503207913925832318884752679889634446809771162434216818043526411689376818786172476637769456006116898283567601961911765874705576587523404917312176312500892628061882019795335068002331566177659892370949471052374102402781107443066475267732722610291441921055478404542602124682154990691152947013793732170437907218031824839119955751153585327915892710975487517202684248658490704718332133258140534941421863943907826972748569366275732818063044655309406029469740179652718488471486340841363220663517410203392673255661009227636604084958268627182310552101588123368494694031912433991886428607948692307774270185508016964075176254219724846210939942151271811115698944180785607006242155798282280905392420823151570560987170506340801571523663902020099690517451825604970266059377639296061405854899074386107939204520416435590716000117660368806222043482106149528766306727892851029314473942476216071037039868516289979457211265326335264151530417061827188852391638838921516795193965357447387989025024848677318451916135481544839965139705177111607156900270574527688328205926561614992328160337120144653550273366394580008821275913413758748280236653607538811697223881511444769845288538234716269401039680034112900855531660140422397481588558295304867971965280046451090539112574135498749047885902980081877436097654756833664901720667754958531192287687353819038202744911199719779502243442435957717394374984510258626939651892550919543356983444292563735063998232147147309870095127583407870023847831528520407505323360976859058675521040579329914592216677878812293342406395423943109122938483985818225661297833785609255882806636255389043061125733611090285013833537125409069928736445666152552737899103603102835216554853110759837136659108200470184732344519250876651211824565019634485277485937156596164424123680443960379955244103876673347444737502662722906891981053169146514532927458902148132375934256249740384184020635961831935501719919003217506597963440271656016186662921055218120849314131947678321158058965142282043460726587194599360651688269042790068115341626933770644665856411450833874460022296660889076784563502897110717277668143746370276828910762567718505332102358497976033444545111775041659963108454558951838547194300165403119333058876209303299344797852811079644746181293295629056565409517896522275283762075158718058412037178047647834391747812588489763197643437099355654309901612756325843164182410845801292254399905492952397900960276002607781873954036916714808980738444193382980739180444622578810726523421931362253289399062319797936735565306706775403708805328374096554770505411532515875933557293392699317622159180356637829821771990416948668296029636875920317848496362388075971737546214813423933736968228948725965585320292895120084138893963913738652040566471975986393268815859517416680242230536009545292118492916699672968076193787047300670285880929872510322851598083203913652961872891899790910065706552527193268980354800411047215354939166946751795395430175422157142488908302019133189519549056048890616176706870198572290495256521038811984070769249883180802174266197478237759470216680343855407397261727216192798897270024521079234633791818600735819064039460720826264915032645109310181457645751998451838873153463000315407937818083830620261695084442164315847232575677089589529690428551690515740442346978052638762426874959556357395557173201748397115613866960757442744299804227284335206338918694658839922842298825307205292593462052301628801906607601893605928662006539367645468583269173395450957875665431824710916340016475492358319934359316058798255104076396473921065712688944051745962756155043411896220620733915976096627625283265320894615073702812579310917291583290503205173983409795561341236116019494279740673198763547594493373259755676182027823074618945735579990389033876749942166974634743993294474460559709729502336019641344916893957940261433376267085311908654692803615548292023511958913888612983974632380859505475191677741470646659795487089142355221680884855161901985563830629884648192345138275347283778722888481625701359059197788450813265304855620322720935998214126493554254465725170613729862952072273719511157583039292728754611314515591778957090660103745669561609744790185227697810075773248385537134237890849902457630373808838902755659085418984859715272600670231029351586579057457245282102891989385308810987558510681798071984690760894738922623879620035612779869993784227001078707132713973651528864624585386966415691954354608472535227065100568082117471459438556818686165196738141127120263328447095752293674610241305005549070844084963383534489611129866559944966684857810520589569157254297925271662995414089477562662553852107336543147328042858861902854941736766549135867729052719427659263274756226478244240395923529363557395264432259027504146234178204642275256935771610752358676800695101431158265418688130247287651563328404691128032579686606336400917258191900807422647686925417134025258440740330281024912739562481033790597013730213302959971662258425728137591515343582993829154556027025541079502415129870399222089039998140633186845862291615151138214441733985422155954986511685677745503228069459236454965084318831960647397390186280385207780522053537179689246970089369085519404844675137375322260676654611425130017917308055196643358196126586163160504528854393190465365074901351429561463412761965933491589154734273291335101063289665818808380816182394862798861791495308305352313473216966874345358777723398326712570819770748374481696627993845847900369529402471942634740598680351844946334807109743462613126478881063279393064134101281424561790774389971380876641304779720759409488547579618277447428048436816793334261967073953960106914380037759045190431951969343319755825898234571863567437900556277419183842976963706174141594617377659236520927689950988953180039144685709605670842665171803298366472002307212793047710614178865820000947556809692654024734141909044045413120790299485796796576272717905945304079724721072814850863420969527515458145753030803619539969090393136095334822326886716427563601965866976605197192805894684223248189039740009950018576591458624350223249289711322222705046554711549302004596654356260655852589275538763219176417433749844364726787038491967631267197731790604724140370120470505553328506730444371941722409525513305295012215974084044108358542989626341614956809926350197785745753742174964592930558275395322022794753885478205458084384702290673143923445517591687810998798577362455904803123807966161260998203874942643766206737735383473109573376203678837673355747763175045417175033072126752155118151819266459840459634628392626718924263757735354918671588714706611179430371894993472003547426054599274177405614502365236871464791484304874405964194143939016212324499309415760693608544649690601417608892622627392340981203021643973968128933500265388483822720302246569767337583022696628322879376523521799788996828973264352640542135041403345288381212234746485654598263018504202052461819288976664753091606078324502012734728762405135981587321151904024842342812054114578771349414739698073057709297265531688238892542186503697138531837145137550294988855606386395637794017037457850206210391178247027559340232569478508639489782636632457582329425395769468380710803863643505264021278899656970126751313474337891733558626429694492579025887397981561627030765526801278961494182672759750873202664782720589333240252232943287297830870341460956032924242739918682555500119295966254683686075486987639861293417928201899782040895091750468316952372877785921108036903166743908386048641197988960410198678943487266985280484334080614582984511428733487718185222180466062067135280201514945289625652213084880650951039489904943344578094601523049129200613493999866038864288561681635205404250435514242045321511476096923349709867181116812065649349059878400618270771019129035689863620218805502692626522395839951455244708270416699320564817169387077962441028624186327031250745487701391125122105285183409691644629718686259634062356580405976523502403747748715664295546688811088061483329631936005218041841325130080894687255262926661710343676355165124495621606501384792831107570226456594047188221467617249385521386451370733603388961471341740747908869690559454060970567974110607012393808519136779525860636614067697737338688575087616560862173097256536149738053009404179694225019475856701689708259293720813732434768063021014266520478354672774250220961919130811249568949569703409325944904339662289999064967502049862103983988175771499331921425400141023143537234182383086882655080016431132562891474394206999168151547590697960950157345151716717120470382407320079257990118585841892117710467387725832270985064970293602517151079845306460168544218021138016410698240820458077867457540460060251224065474780068367660061708155024408918355047668697728148258045834155098198071169414281968288928252298408850804763946871352418193651688539319300883147795522997889062657521070937121884476203361997702262987078604151949713375285585317844352824652091635147656501275074927371013010411344569847818057012896262237571718210750339368646200056684861235567534498229510907807564179832752520400681251361927244347974955422995768949502097489075205616307326119437355794164141889135310312688250573629940734548800608498580481202125936386812924133606144858930730055886167281691281568666303821159674606277209384386733307225491380355660644411581155284538088445974202549312036143092573718470489690181280604946618422867242155829946795386295684510665906378550037797824917827783381128459641516234055551644275820580303169327593996279526715670595992108890057121850883748778104367740670656493054154113467637291376994723802267992188176934184742966526132001506726448907245509317623866037718960482778723006818155626022121344685408198943505250258858949258937715011549663926067735772453352021998635438709469661252619384006532059073274160077884846583664999539853572846960078104270412062877591845320926948005160063414711214175090001624256933380263267084383832888036702095333622080246364976574026789171765239092627913483550505114118220431565198120324295449613108355127937008233114359523850192849828356184917970031532658393256992655059406037347171812709625907230984341623408825455611936539291526527326316763463286714181547518448896691273262299748413419546627425123055829675970557690766390251234403397548777055526434458556707784203333403038789375385556777398043135382333918915196139128004154955573274467793933201744755738285879542095685422806367334706390596434908010559200907806909169024393880041747377879573823173886745153172610379858639901366886906474052238136471354122275869359692556988607457740512282105348904031511787511585541768311134455650156802778203797785751879837689521300111069153990867985860424767486432403149738467806028420177524577331876245487595322731109723718249637513428535715663550414000986361343012133816720503476774688484450666987083296139442477852369931657971622362585870898174378454246932985382895646173955961125216255196145941960751710558098662809743082587965759695269137485465084292300215825454050421230721481164310210402215905424740107808714491786572189500125304298541160451353078189616888892429655492664111859690323535612466527279366118372289741433261205296341765675285682382979342525744008830064613974289159523165080788786808243285685786118876125595898652499177495331619986292123195011930368272072693702832000289663399889609992899387952342853653486971052049597348353290876591700258776324521416829190652390179410319131017282226605697611265129114287710111483120787188228006055618690551174144718387102915120014428769380535040762659941802092635083862141788419253316233504604288168031360334409082301934586241781133532419309988767612135127144356633315179627560359646695487014251740126029402354892247882714150091396519867694836108468311445693249951074089611829776580865964303893921634717199243138968050593899278751193195699841969294122675592839295469154986110584045669057507646716965367738942694426090202305706320548594313512804837056977761808301365202978267324172086195875076405086535587089052655119437104682589672319538820803020468156225080893640539787875237072593396725322368430041233059059209510953931368938954832049700785300103553156226219099015105179719152759160471697841210860868022389574072475966773028755096839500413529038940246484478708495385603627620872760807017589115914730155730460117656692630516566324976362387412133337830123687564649886250489932874109418341873319009191537714984213380617500662012324914098295004286630193696684831474207870428288699158594448868071436552883270857182889126423346869771467415025427616672925440668787409379416998204347930539808971804484752985649525704924654919697090440030865367147465925095004963565401140363907374761664030847544909571202886066180778608505316331772997941633452629093354434138205164317339465866420716079025535825981515597557278322213039028393953368967695117581510420847720922303509554736060738919683344781658440168508331418340050596250424606860764681687338798558556639745295899320392730207412816095419793040472914457330804944558348135412457427115281865616148354913046389605683427201148089923311242586175235205834543232750515920182182988980860683539288882029469791419936336300336850004665256948522349469407999229890178604817275615237424519281310639395050226460621597681021510997146255055937881250633509932347374979771549939013017848986273787411727814947475174030286050785161691292660973140662201136572056509401127490776583463669990225067685626154470262930737991766358392484434713483038076729947835114286835722169968020268400477507971699165446594024691015641319598795088638269977809739903505500611181750301216919826608026985227509915760318587720421675384007629410311699220192321821716632066733121151916794269944809929946643546770273297486548107725990864740343982785070161662260608396974623617624481724692158591502392319276144784526565676299344089879783962869097010195016569877826059807933939829977191481052971573988140122423296979761935337456582696986116803862775361753399309612660198260995201118818588939120602131021669510588043607508898445620759927421760972382253940875352519898302731611320633038144958114384036022151829221576116203686686751549207270145679109116309596434363754204022375961374538368561302344226776801555637057786061328421172115550916697406233553222936667572989869197035709420296697402765372863761088928718831450436443841572577202066931040219001200666489137592991055677785337123242024953041372557246721646799633234857374330698692196981978103642134549011276020275820153784821203975556426969117084642026603512542255376490679738875787823457258575145644534844954477861740731445465017872455784572297761736130116030728741272283216458638395439450240625942195511352837529743122289776179197620944747727782806789028640496938064137166162630939164775401587594478579537724606379242800312672749823593866840038439118932166862788437110463328957376156861955100509215094705573631827692909008060849180677029977064277188346416305352472696328893476907569824981525327882982171037676955692912342160052747960925203925110385834178646351269163555986843268606763396621747793967325206302253868585444980964922758504482450040978158436276369652174330183662935082349134578158691832789148677600419523912880547483742056679278559218858045903487401251751548749043255343867038915870768218331298900705099576657631337574091290247901986852809339906567689243021348874965276190533845145579832429219793666276863453183138626800162100574513456721816435556299865104816929235859120952917318756948363030830528628058409731139135553951285519536959571798308117197957204222445448900505916215494021922867134692256655242628293281777251548026210824753654483102302569461281843598070325027107087646855170313231929593992539884532114281022044331226552904495326098444350001566569532131229608329021229248523620839738386843866729079814879659083816129198609538802827043706188426674668754800857984176509752038387119543252355102965629185556607140741895028990820552623529820018591597341596761553507585197195506793798788738449827265649384237476887600797478890209882982812022318580536862671495477457877945500087497001790327447683802333416164494309210600652405335674902670632589714307873093326656072106486639201676609278815064578246987980772672911899986241772644863093335028707833923273636538908522367961087608147280270650866476568128550097193138860739173088306593071491147018865875777142047110403035683004743707012390965106896875524964908291696608672552459663713029662480434385132680920527834556848720010986340716972293730375473776861550768193448931804180815826056906700990025470521951450432916217242006914130341114334378510142978491856642697375949197527344113238629986958700773996612191544704160952611440309816878676987062196382545885518332587482070296541792176627320212194431307902395288994913103430472413355717812659977510085763844877032546073247440533941350541945460961230586414224062343492971532443054180527441313187415655015893684947078346031508952141589223984873665953135572674520381937011887914704319367067415088389037773440074600699487479531698610995210050740779441109371633877360976775314765842677612653439211002876776315397667427272382374088701687171611152733625612309542861170020716540683025881941940419926668759218882367495968806185640769296798121841466912838416833945461756855077871312949974809776589215171802403521894686884028605726315675930466076469098756840404963763233911544329807998577180022854343290826789748077049552080365784898297600651122022344920316820507347086820942673265655705391179304814847943350706843227813372952497017848681873909169841866223342031578737101338045465754923290897091390209487612838002316330376190381629706052366750520641231131695160149359600677543066656865077068021236746331812482252974873346878267852059726994701231798579045515445393445529338543898699101837555190477376830190894837511069783653853518184397153200539491896686578689614826878533143501579335633745873802210413761829516439977206310201582159372891452490091593447358057941270275346392321884079003007214875959121512467146814703087329733668072055191809567494954945267335516727064556056999292445309872658406953180068892222179689669133618788620441704396432368630185901477364213176629970279546221089701466850020304885968495913488921237756977192097191081311064272752040464193105933491560927661900706218082062284673224703565719880280041130856446819952310878386063401253312311674719093043112962447701863357491435834187142704281046709792530280572306283786053294646115932867865563430189695899114521945809310597586037021093781013639785417587865285023848880375773824685345964201898334895398269377245567914915429106635975819018215074755609952222221841168510141377996140764933624044724321149501560873945484983362081501060005249874132684946275690826981368068962578060384334341306238735010097256601750523967002008240318272296328348738790560143456514747846674672435448209413676129357401625626992674268128020184354647196295893594402474546529888604784941158348991275504796249078868113643070053530717165740551223580126772194642253908760301568528642040297281525119342180403668332553767723556445989802315828734776720814051899046533686991509809781945335282545353470420439004711864345799120855608699928276501803887705461395482216897207050632029555639465296595915334795294871926918103376017412017094306714094553251959712271722533037799044996731785559659872319975258241988315933642546908638538882117575956824661395812879496810100775311938871734875756572491839322689279568572778923808173440316120280307319072654053707920270248946040546194098864942512727618285794484593998489934213029037484417286772050499142035535669593302816483798232616369845620441253545538202731246314092345083291130712541783366420403331710796308413959691395037429839657149965351588283207745954988743340598780691777148048987588280852493409153561405944361315664167191634705907458183545507346816137529890417494561239557012916622172612247801647617474989794851210249152120492367356986341998403716280368422135920516063753120043311418793427356985544054821860468288999165324317395575214000130618978698211098029083166764902409489703724479226042515753234392311839464127132919177201378780078561344572223852764622783652951381654217852512960862912337415993834470897332453018498286274759132124668870659967819887380912136062006037546510581861117445019501385272552164775575477026327690483216971488168472692932779610629406744889417649874414132571475435771302752461277115868026493564043058610740302326635399769376753846858945689586882608134807204396073314702084857057671986393678140098987383510796013877425836592073305328555921541517439501432600792262304493492531672805271868348107835455286069684200740492746055716675885042189622880329944775629069897795788608177002165207723218684983201975555557963680874256937080719206112901493993231718966509759798281535345174241426910229257663543592084372236430724646944788784434996861822224575436872034573478464259714247839848929053642602993150793460932091058702685817991628558143527516603890603706291683324738237033308854520262241081202478770902066186650859568221144573465291208362129524501686763162770743831804186973758978202124843917849107051707341008580895571078644257530536120477258111839833314820785577773473423695675809540313856594850843876636879409425738680441042160626349459471973656262950136892850362902298599530861505573033690536715454194619708693412412377792475737286302825775132859515867736644985579362459468715752082876951512692674819704840298386723215399714904239758546703917585456215692003014993620942155595877241135624748777559136765795961548411383365230842920118957084502956241407545780590355159196141603107736283631611416664459071706892112565573692141552536335830509752740974381773407110738340166822530284064578254411792044980718275388215683465655748893591127676299849710339697662663315795186979789167871401900417266506413894348889118612828040346139200884885094441892298855033354483764052650208732034903700877393692244884049776103043875339346290678465623367734053417861466021721358010081744573437192344713613851248451894566051960193005125531316464639590547040598342038890319962354753546058053257674388335948831711767679053190727845692008195620442440906559897800701094645745909757596084687127465106621626798138221074259399516704699505913337980072951946294957549300735290969723118552372048594891305434783330969827828820824710773551510907743618584345947224713601154262915148590818265643198239841857477193527749703278047812253571971545304565098013472337371761936698783887716092363704903579816491750703340615718298987076838953618384717221930271947654300026413007941408667915406912967198519655004278883119659492714240343980183509357506926090496266460732807576423277756676158719965579687788876721224531873265622519939462914912956791549328189296017987867764409763857544315386394497572124523947750765692679929074392321007632630665242023293761631746018596957822442359596795070598425097158823275914517098499819172871606656958524698861630111699423760172793650541672149516250471851974825103524250089140586267561732270746778850655584330867923886833870054567911519433290032654271532743945685130920430621182579703785603684820252981019967516261646470591802658614538770523344870586688747707047987365293034040400007999158015127011201563949101244267323132419508427926538191879373331123515246445253368730918662005146833402953403933909070339097138145058621811909876544327917050384846208736799566822453121952724895883064269825698327928699441082856731794321560079124386377116908842562725196325483712654938880465487216514882879073417822437039334618001044157916158514811298059468309328137954316474983309087533835959368954910421156866251678578032976195498242022361967105672058044451518254738696882232450492267786983228611865909141410626101781061260726139075374856503229799273264701788164065567893483295934431165993855152721999165709101149329435247723389630495610037766202497964080057007996996427700603171193940296038108877307717413534416828238636485076195883590227351676858324917973479420783860808891327365650104874861113403267760797042721882323978264779238389117644398055803178832800484214949887473602311499136891552777081689153591118804484217829738191266286252184060842061534481062966967077422177627436484767278144611864214170299998053396842613626189796147489727291660848183901434157954208455912207922822644243690773607871647997445049723737319752758828321081504285722452150246417794500329439175622579273820604047155540062745958794933898616354219194369421967865248575393201671043876553708886938507687932260512619599101421508692016243952942482589811801832549564711119818615273309459622880460659297756006900650490732464686052674325082198567885000409486832678241339299224214664343477404033085742873345850412654571431648511901180928242435552030566608551907485566690749889215447508859743668342461705297717906032211142239116849892950473438541413193998378335649749850051559768390688658063512810518305308262394123174493075553274403922748614208876153206657270485058054157900335693257146711797113045219373134462960474830825775200530214307067037588528032571437801384415411387303638037091580606024841094326611123189000807243848680729218520886038104628867896664396290767040893414549201825151225069962570379970593477270858455656905863215405365664397637397315168126091873505049096743821434458608956044436466312022566143519464554939305981196663337492315421350510525816071078487473050210758601531836746244012227437090083406017219379177535820662151573549184420920464223534187747165562023412186284031567890682270931908852896756376116834664260005647836789483126139537545037820250227019767116765631925343247719974925818566717903119674259426328297047489428844271764156695193014318522473510808395496798773011066771674179989516699093649993764611521057783949137556242300839218478829517826751704359769848976032889723875250575695763876564190930277473668793886791571618944369082512962598351541224478901164711484592935029271734331526311557225868466478657659520901873294502675563421825991043084830330815737762804357297732657902590432872678300546004343087132011183887884279716452678312594539941365199982156307693776561505508677458701555294547636212127646173846702705241752612247266807113205055804699753954962186278873197305886976235527472639926312467974796419027930650136553577867011317719072539885684404947860223941948096189786468632128805270360168664403198030033020404941444501871585067349276011333208421621470074805338413047199682046787781747406171571667390342825489682739783424624041905591993554933537016853249304248507672875713375838445011679412646224797392680356612162265598292390398267961041518391531876122473898551705573430736990541678299732638431575913707742995841744074205597541482126948263407535383745266081545117206949431893467864300996533085164992344560662223173336969683359972084850931004881155229087015434963636900550340665425540612791205777898626564413614226644982601711391836529655738367440007089052364555401916629121378875234985334251583767892848858312813594092180689902880118944611565807437499412228603964072146170347757769841294270196684252289047536439585119799086724629103974474620813248557440943998898832906649310201665560668906406937951636323992925274196252121052254039660243580114055479617185222007282456111716463706440861325207323918577086286601677630511930586061993012999541595323324108377068965462201698277551782741243930464052432162261761318669128621246342292349631154254821000784611990478146220742983124575093365875959615064765641055893511931575984477780787959004260567665853276055347607189749955187444514481816404598231582491371590897172655485893013828473087228864532989650002682509711625123487626346608303621496671552898684175865788373388757982680676781430853025821044373060770762483230166080744113302333045613799376848630900837133576801511976022171876952900902465854375490045511988403659023482740300244539863415422893964260766484209925658845264394243062434272417410751134533274847869697479601628759146149789452452481832339468384343346772703087604989863314955692627066575800339071960947770506625799234508115358629177763477738075762369695498675580366702216490689134656946078982061965738175254668964652136249788799382388325907366681800032131212543315750499798607992721822899074288555916903570438128191588782730861384296850863023560524872172271727218546682611694287947500393125322932378365942257544637566864850564698048849348358908216086336515220796363972294983284235260783096389569569751243488505805338629688753869173887252157215793814996724373446304242720362112535939200164083228431427824838563692701742172747286332486700502077871176977384936855130418107309263486324743991461525778639205443809714389721856453025972122685185433474090125323032901141662743784194233734253255031238385747781386043406663555032260823566359064553780893980221057437596842930443323819275143076701867095227202504242931447659149911172851876049939652245079048263035720697927139379092614371943759985578658767367552014708826903177461242691283862267078657649122491617507638794115516886062969232200364847037590052308838688733346815709271209724631163053969101419105329626621423103123391110653999713814828014320043743003440148055664018368133445256352106277375588160077170010681975772173793884575477647281149086480914212658176725137348278223042265748762012483042532567562569769315096564036467731988361006671456158773477826551978013733244375227926395195668498190745609731485798303678833518942389942638933361535363034840078089595011095782001983585994073319483580096282735455693309407696590253667663558652756139301212792016975786580205151878676607313417199671299317265090181502754375190226382900518578533463045695059270441804892047402079522722382250578654103470792075004839881911486222293850196965358386812708983479931858840533829207894643967048115003706570076607722927677251343274526251748882796973178834179339910665087749470727889214658553489913931040247695014805196066356046898909178117104417423868858902455514297438154088670204008107482327253750729951442620034836526561999330352420764865103883108567419506683864243636785706643267951369956023499935291064387270906030290457152412952544910894255032141459637784575230417245597551857259737487188777872005585442170388479238394228501216272444819753876583353960878330866151647522671659650131595400895474355602639179887585197407065982022697416501744614867316731014867952639138263982898930857120658210374535719409344740700824053758513172943944406041597143585396380650423681233689188686424875690696811310937609578492104755770823777382166208324809034325212269069363467467000643996871987316137789181853009166383031244061312432816104105403324625064568792847644811843998531345047788858952090768710345660866927845833508450764011769733599395913780428455849871461487738384962904632520493269188812890734988328973673172405282654795228832988288602258414186416761788205211889929319819920597538948622157243690731322644809106939435235265485171799816132815834431369380706610195763246400987934207086794065543843353056640971717808802490968423970447184332947458964302568283180712881617393751647745419193166632833377459152058211933224057902316976772082706731629077527642438388930536221811819529600094753952378881697794238598995834840737886082549570858518761107496973149169767852888486102466933025315946802765065274579250265490128868636158390379471020291205986888579648895236213871053014399155234376892679419430530138446735319470998826212671139160928019477882770085757900954052767737567651549759100992775761781980906096980881524075566440844730109057686509685843922841854213004313512934077801616813704278976083888718258961301737565200453861260353955230220759978414517471044852941272787313353398230644672406247072524345096657103171532042145642493234651089503805245959961857872708738038487114548039570098466509133799812140936016761337293583756575129640709996377256581324019293265172856560519027368650191938474017221470326192161921943594945226394556166653823926629843405030499158881324240033189871951212892711719027497313490641885324545638343070190036285343716190606048174509407052368494808437754765112321162084762153860685144178518096916392999926717895912986657089071651896228084540735774546287890529444608745294777951710206962550561473844014387219280537858215944268517391679767557224330653390608964167226331450935690996948027163325556099807149733502039829813985117111546795443304599213357284720895534310168229131082604150392628507501121432595336914639866957674968211329087406796338671130226466426039328844862942047265847170947761910791858090457990574078410561276988616852531536726974531155804656252632848537645078297469924498429699236387896878262106071766343066298224037733078078363344785129125601789549071335781297965319893531836964884642283515851656277104957368071461435973387692571018618675866475684481143046381302866509815304416753528427041436811621822135165086535734057254704670077785556341632361693258909028658374364896981698362738627214878283516468717312300539192677350658110277056832358549086994625034702902069460921034453319791208111896723234235309854804102598311125856206438403464238397496963072084934876538467834902804621673681446350618380649498298644399743727459188264345792777226622308336856624030654492273765651144555069278717430271658097346675377759943763879807324615534951362544079372580834553588579816403134665073568487763654825583638051189164385209348399754071889624946821432251802490867188132379506986247095147162411566035274337151582748747011818587338571432861718802715084947117064646124776010367274031322730304032986719508922875196672468626646868045032606757014553779136481117286901938234739810402506883006808975826318959094997757994933729246810382553511457818770476170636695189238468416130128580992984763274504795349717358924485450916891586834964334985046328264630499037264156611812332189208167911887583369131835329851420789025996497292761633815456336751768881793840617207147047669911492563259576213065463343238291670532869335056066005453291683738888921730814295542521693994405272080476092079573003051756948525604706088823683127084696889775830827378979579018723125433904378612509245209516971822357257124514537932968241494925718367485935042523922165735296361390061502337022133929538079311295671885763384872861228895400489594865975010917554181077630722981021069251110557580097954302848470868713318152914233526417796435758591513864677853643291691738248058401871902262345997169222776883847345886521788073907851258192318788106740478811035058117920593197349896667089108443374672223065261682250206757687373517957653400042251016409050396255023414407588504997746709644971535825079803041976645345607143412298060513510167817558982715976642796626274055635819834566342763742921013800916229516010397190492909460174698523359722666797665671858502457743807616780978880913009148162468662217406966551604797001558828383400980102950843830567082729572427979326468573585303890404209872905739285807891653961995307170485493859480176338284512217576800638731115939123711264693860743236261877854054028918286177484938569072466206383378947890209842558198773055095961019082245887648639058914824235483815721352289879001538537773841737101345068190949862260433462580421119524418811561898802214955195051786428897618884488568015312293500265721864455603582606870327472234161459566114131885014459369803959973768098766725264461568952245310525376235155714641652151444544745847461164975626117771457863638027536301063356770655431208524501827471565563308464294075319093595924709709794332153096625819531524803945720815829226937991297957872795176579437708154194320126995844819419732751827899998840138000631565450659409613249760269176843572247416070747544686715174168371421797712311550862676925436678331847119715564559191971464132415502307904020668566339627583539437932405535967116161940418714292281646179722541355771238250394541120296498654954271759717612558299858538439787360956538543236236011964577012666752913353530643818809968563645454137902050542629272422398828049064393248608865094594475423085576882617962588580211828758830084994304920952289521390845438283775274192891522783593522772879518553788702319716112753387355476072636396597773896237025346204153340442408579867274237211941110165138577499382464611376515018540648376953433045850337406638177314694565359548632151044219225696187702420469530481649540455737629410933929454095177518305033671464105946822686099582244196945078829317687190907810379575776288032748714818413800313887361966046577557350635947599097097755346804678417709292079334853231949068418688881336872757685416438366559298834537519902158330152299174052281548487494657314220227307786762014502993880199727266082056216862808341602740200481961490725399894229616241172097965564855681525252291971247645841379807991507549586906749983580492156912216028265465293739533357009941046447444508672247417708963185054349967342477111227385989863971708543806225657222102764274580675538244341626184626137507486510396196938120668707051294267420594140790704804700056288230841676616924932513734710397186729865937707247523685262572809302177543662181590120297861029338835298442123470938359417247318546021142859313973796843341913942833018387020338976834713835473913095579783105592038192573369858295398369610824105250802963901494896327734227506243913098431910918768742660339375917331101190043573996918959274437347490860288764504061405307761175721937784244694257130421763817253215142326263224857028994575998332859412572184279298803742770442310566895622053866851283770149478107907014798516005090768373960701114129661145313437294137812223515396827284328294726629346523842610415169387568437323319377509862175872383415497097392094735931309662573371930346322268255387200104395017332445699793026788313321437746665180939797482697838397457364454470602152161546287776435751531527801099389075433845350851971322439839367025766993138645814612538855649089751581467297542685438090319322143896974472411981966507854309945148090049780165489874157605319335862393378055399470012682832338724993628292541468323946560964257931802685401503748384612473719735534031078866883348075776333991116138825659987464991745767102358430179468014634367014206816058760862693470656605012529068470592472694852947682947391074724611800359301110879375439680803889894576629740219487264546666328735326699011512404808903646388685204989006373198992663014208885964920816583588688267444361677879348123796571857534171008848434141400978044819864109255474758751846167284633206417853005564975273566894925413806383461989205314507232532721310103319560239401940622166569406719652652505080862811979783579870693428324326481691982394697590243776318000909897138984782265791169247728325897693229023563794929723461123478324951435094692330456640710746117935738072122576629497530265748701679601831744005028080621790511692653940469316673627653874611310050516608477208758807736779495448542134348496255633844893182103624164240588128187882575742777865937040299145030605654710007441028733165650942867189461407672469946177425025170953264300605697112711761617560085013569593796618768534462931684652312566562065232923861111531417369956252188157028434745785151548331110043318672255229441430341505711658370115082167223350706103853764065935621797978016618535775144840195851395548883312154215364427090753204315413974823568051837462372715063000478411192353075059094178838502172729626563873092681205198355143960130134161068356544761861330675386443796603277764414110222194185328852776494867227770729875703704898108759743907401190633497126806011222944992256405176628753341011880510524380516351306981593633333906786018751322842321902322590123573365512936930497374466590437437894408997673578459161013818320351914442982890721642101990176560648356869521707677967407001804556190919375822565362861086935102688197605458393357502092560418582732329521340329667612969144604559742091999932435919893581511053035442574925772235084391149983789883881499974863253004062662415307292810897981276139023237893933596797940095804176848182740540515371918345360295616919551003194153085364386808039790067850544785978989803695888338039657214438667063102169945472691164090364239497779898148533096710689903618793536598353796234391442671473084234109600592785300351744370231927504470411618743660465387390194636960634433123087789324523490468512606942015285753984658598855856295887904059097783666513009483991338586064546153861297304783455551462015214447977795973849715315804290628138525397874333167866885744028283006705639440225286149296359630965547111163314410400356959097066966834606089854104389163380545457680444764653156302044854960840051770226513915536169145267853651954191807318387261463623859012896947114191628180211432107597964846286733210111352823352798501727977821393921502795665648431975303236250649488892368623638940614999939037877621788728722505179129972847672254728347550269628356122598572899919478253654100384338887232020546073085776415659914984559662450655775707420054769139103029802492218582349615391528330036450460109099552447642093985693470547449656124704228116719699247448229828541910578354901974830256093090301760832690590910269642298780786448209142655512393955691293014032442719676736804727802585692644238813090767194195804956894179331919448728313016120958460901932982458127870378351986763034518223524789012698251293888022681139048007591823833159593504252304213276418919880754032065486292683834845838057538362350979545355385782283296155350949009843460099773054064378905862820176127944126533407760279386095849882519480071096593897617408158169979355582844124595451504923204107892531079393693263851266645506977353728735153227435192310095015494387387837953722719275340949736193940248172185263374565733784408619151792407999432557298874089392935302609846998747793093166338625490700108982369947781230645863079120923920689931376951222180866003348647830689603228946407248439442948807121793255973469644546286121972397196005285936729759359876233167748837509337754600423554871647572108576862765698564697798651163127394469318809488221535036745774471286412649111007198490531187787595124819760458876678912827663305291615725067747925769832874246546025352421009945910749905409239100952340378918236866389223403655581469409477318775204420082412462202590589239731387138156535531263839365723134816251891885680336046427225762191530938440706515362775039524654141686033862231921235492858184164961280304466882801157374151357671906671185639685756349099773895322081489403305588903658598409888251468524894120212139090407771783497356107628246762346089742968142067513362515314086360698059015994801867992765700854513344544356638905867628731787355167835912852981229710706834329027627591160777867800505232461128573462231392205805770570093721971691466246560031504590890906465620623657566645585820572408107388726543511423655641768298723358021867529448335469773187072481396643509543724654914832652465425917720564087065445665795654732513619437688524675750369926667503337937819400371919678551373933400278300919562271337267041713642144218434074296539915553130674696959309717386650492615927060197593903934972557893534226547113730165761421347042374824466701763758120601464246260198851391784776325055711551569794937216791295330075480985570253173239643072856672632279724342521869859485020712645929635801872446785223342153095609227432005461640031874632898461016692382574570539608288001273419720153343527555403811097944350077553661557666217365837131415605096171415505835114783971857904945918701876994633540717050078637790402815335417023679584088960558670104027265074126222457390576892800207164160466730561005486410668250300498778514535354051716552948606733996836118943203975495603648210952288213467660520074852196614132495670971599886728421596068960614628193042764646872681842516518151002290970956582786443154240328156451310940209722485325218846145933001315601181086516090090668318985454463689457804669054703685146644724385052281671341822928949441943730275106446620638042280605043045686596871959548074226784921760208310476222269080362384337224848474761615503616024291347927801102640647064360268555973623340474614979124054369809930858796292111774854711517285774810201243794655396484124991052976596452552206835868215693288817456198585112448973725799430314250242226327786774268913550990379544300498215221437843003872317860891576427485084970618774987119236924146973757020183793115980750743579350750146084538105851185025189625265124111635051190922740345523364729972604484337691705391403937528396442521924229081614750582081482889463825136994575312694017617796303980957350851459869027300582603223289233321665548741460586331418082165460566101173685520250652635935213123559796800774938407319665215076007750595030394429125966633459796565525770732397501145285057735669649692802468296018490731925861938094642252596749831986842172160376625271055302428142576254175489885505592979852859927146062428678479397072966273643263258815387526036378384216279002094154711774084668201730267320880416380905192869862817508437638672169742729414604534565981907232614021103976935095702816134253305152852209727165597450070611031705447067567042218248111157449800033460262770135295291203779831178638936933294936858644353049330847449578683669811238427271087024321944093829553621409544380906246174177011940003336646316772550764585966620746100189939431116477008566149478391694686476559567996226172671838649825658827872024329960428141647536684866466573078956747196852870450707979751112316895785911879109884765424937147368975954912056314824416459352585590797493258836141423477646971002753972469525791420675270773001394576448894183333468253624129853765941180028204791565101682000081170582111538093011807052590799342914509863611593081013827495401795302816996386292327388726651232418990691882174119084354703462023820615333876677015739194424900037618268144120961207144049124874459519411001778548945643806399265655243105867528635214922949012006917289538262750940148626161039134619501236490498595262610095107661020448528923818075531750832484965699032630781587551993114967324391553153195272840708515469025846673025230266683643683621686066612499265448455494196759115032769842495772365107033914365858190431140581580866022127336849566887016257321729087008483358277357274587825739735670875065874823500780707807131431194572079260248950584407592420935031739628893202768680411412772705344372256737289431417226847770341466291881812321467727790168611363163065852206782439894471141887235159774868426065011019141721228601813604714290614574709617818086929426061347077426387363478851332110254539020708317812046935990892966080147255971020516117440993191703219601595608149110310611803013073830147823038308825714536853055811011798605568232312607947947839725974347475347263621765602533433286442997577402427107064976569648645747646488754337408732869344488085767686776314916741916456662454062369516737642829841156649604507973394642611938711685173222829518167891223261709810997516987331373172678905564185052436598013120827280592103651569004800609308533780339729904464925674223753370638668547887793165685433480626396262321988629399019730308355493831630427636137572296239040087968969831219983693022951532120306005898478408664847465591266742898351414559412806584140336045680938424424633743776532781660939068220417520695317836957794276743689240757043602054964629667732857282018350719942302604363157375910787658301928816257181850541465715215892793299912096776472464013936883924497654654635435494072210753948374115000113952844819197688436453552471443744634921321594387041159770265907757754188518209617117618142260652404055407202683439115393922191291819031142234311370420007754540874435493831471440338908479071608657246974720392991175680960253419180753235393674756793798827842389970911230572291425770835060526506162442419659152567047589118155833580102938143953107325334588724675661545602034845335830968117021477238993078026601023996208506798751886234382515167070749386621778035128987614089057585045768509250164924115252746038408247553478391234284888620248481400379800537732053176056925352929422567783727332599998988618171993036240709337938175923576473767661289034184073726275448577220300048652017352121083105474224642425016476326066972032991521163279769900550998366150971505932485996673798669918380825087882206283303369837245922514824228778399501880656783149056965283442371596898936766362604031734749438316823970247977342525819748311808079403003970786685921920879365791286321262190057923409809874419593207520659412532537953525537725238965225776893312096670786854499643724556547374632607237892956460858427870896556757893557187923610976635226383110034433217711167225831281432732313128008465713156505600814897443730137327481259417030009293502463308246621593179349538624659111105822430243761631988785413680023995164564018742156125127201213042013385390095806777456788830206257117781291113934119689460713729815226792540711744203908420582880490231361413631564820169448858277041674292632670457266545364900045875279330033366610957028979352002890994844696339597414552485762626913619613690087150639599625214023210629007453397155284084243619153885546480179870277927830247832734274382982485330005382789544280265552012275011666608850186375268255987930711071528303866648446082207118590876857477074573996948875706437374829138955862355756979622082613265933722055075416333581115966612654473447995350162458588304129405172643630278033243193914940433765248638814587181927340370232266748505134890093648316892076016288868434859440454466898788551242356424471302355037487574669333703969777858969988735366982249468643281062087526132089290411094432916434837259933206284740588167185747477134241103231716516680215968121301051774596670076318251093549627578669249086752820534743200349428305780316267429958125538167414102619566716823140493881830814263101476148202052626586227190447556536871574330840716929212818857234551050417291822074602836771120505480344352232561086934265162376456086349514943734923880885749456712179331503741749478851777911048779766934877682176328932844585601140861032083482678157752446919536193689121664849095775055015062719888196859079535913694476069323536624324852391594223495696289241735387882249466056365856863924771164113154126315125701025516406965978994331896528746338057522426658378482147295193225568874613292150967897914697466085597267661797833767599234151995389094685073905032607237020901479334146316264508057164327164126390244420625256983733421807336040498762511015497558501974371988085100738389754525422043360639753435647827474761431995880291708897950434774073690530834679959006808050334678569533688747080155721830710607733918541295107699673945249207333579140760406496093676578371776365002545379339147213871097948096014862106363459019744757144095003612396829078655603915436858987021677852478843415289066248589485062109244518017418948062312881124038577222174087283589070173686148668132777296804041822318285654513563265484209543253102035813445971914101500266724376847183345129921410533815586764967105585429953450586965726318221650113293859581292187232002848812513892456558347902413439733839553429996388773225715154131780388002706115072276303131648684213795799396260185750398284603682515911831809833226810031155863273895252880853125602499080641326891146867800110758154371599063865463161008508881216926992914835344851799655541194420437033187969465612748937249141073368471677804844917828756474325053748266404051730619815323646487258068035848330381912770459999985140584717404078108309949700904526070610999218883047261311617483124965459327429823451907514448036090140529656495542085332139906769893145144399596016709309936554249905073521926055305060519048095063329786469831946392796229355471125182260533921023439154001430710901976992740448248625122829818041270821215421495570643658740995847294994801619579238859773008992421997019594073919026911641099606442150001353965366765240603368312900875103999815619411420077084617938508659453578855433779171820764691084382010436885451484504160433984516175951038413672270894291450613338336407603884927999271705447511534114868497171526743506495949402199141810053933496359372127621688379208517198337772676894674087641533959137711233481873737653693013389083881531089946039988541710109416873240653882044605791459954993259102947021761463382720655300743912668969187620972131161055252214210782459788153984624943894988928436580708200965160455612599769345549428702726620283003409188360602960860379198014352573622330738836446092858626954880954261924050643193942682456760772355560176282512634941170982907216417604702205193864565730528642993018321760963152405806843502640100997601044796472002652233645600834866084061653653447010424556424734946143751788941901342714277016256124946709327831857993877231521499972079611925931102716074088573376782027776493061840288240957937379733788360165938792095986477439475973740357387085826416627565067246440380453551588207560941133116972223632171909414121994320269165845779944331689273877223557190374595326089558952247295902296776703287742097897109470692300875512558906622662475522456692435483753271918169835626883715001998317561590976020254456367501160137729774046734478223162745829614047242823070822311266650151095566371456555369801529744148906147626289675409733146659802268533327711008465246746342196999349614084711800236047710875998108764084363065992512055969763483785277786611526277572727268662038287427345386436186447201554525684422704430468770554518430811915640517873575991072069706991472687218832488408107565767665995559695645002673849363092121456437444657444596317669238589785837464710294693699911701412894913183888149992784819140393525877059235898008283973510572873555966110772810698056362889083735296467979885902364744879520837664577052855954927179447254885215244601941646060228466385441522063452718104240238365203047426907528498792904886911374557455026770588545266897561601953698556056443673077897132294889048284993995659548951471862462506860374507694337546240560435061060148776232218884881336680294457192886134067094935727672737232278283308778602021295197403453254293848942503976254261552418959992929157766033818723987615064944938012409460012638829078058571815139633189825898245807513507531721047085605512202216093248589538959558524230678511835273879127273186044973623739895560702968484861736645255426705705346936664099276952892210774622563324760687634532116893858710977727002150733831474673197714797090210581313762720289434226461581385086548250094791906957251817360624636345074172306851870237481218486355462935314181978558820645669526107874897467533340929227501685871466702529154396440615113042125573528228912632065885782286056936989155378191367808155731698472312775152848674121858969288683322103167310341241072942349194512228451854291545734112796802670687402309366343343697189158910990405130842870266086725506198697214147236856455865353569428231009274087307823547727388795021419412225930895893934154928640037819320665061012329533346010110097594688478152956625709059647741385661799484090082838228393120963817475781660155602496549615925764736514741797916849210527549769611798578153969792118887924156671091921801772639575323028967042799716318976563619081731003383964429588992964690640675004719991731606519002302683860254805528292742761017088469434495736677597407927445379757194592812608388682875024432668783637796688357723286248746183134203043323610936689168778979287730514660466171534917301059057026021216114654164410592758426687507255671344571607608038848033229877086483364163343763682161448343595625926534152539465740982347906095202465337071957587888008785977767457385457769416612460552013227541589678671842657011140190230494700498111215459332202165059113326540272635522276536508435121806296048623748023954563795590862531787694774227123551645989568661508887058823161835546974187921882593079273606352386546247257617247033138622644077688523441675814184998146576796539805006997952997555973819585297082192275831457875073852031085802784502799117755882134889761057712334477266305838078610468554760811386554738954665865374813263760103069448463652595289204769600423329331562976372328897551172679917617934477614682160290788430234064995384493117675710863161889878722200866759892665245668631571226739379261296104395270248937302649775067833089894848380216302324389577385162405455347063859978402915883656044087390569473326587183936029367658613957869040744008823487898457002418355678972199396725545857979435230541295175351886967103609418863635891899933265395389329375662612247015160473267915984439941423775846828964909455003201431946543703229828616059292224830704140467141462121736941356334769247796371718908344887682535975454183899162906627154491995013069957081093695917768560114222676391802913921250034128981217266919882569285957285166314367083685107782476543047099264126805767054011877735151246763502256870327022012745300729649904153222697853244389638810274278260624581406925351149178694579729763091168966070425858968038397876947927000112332388114107883408258282871111729854112846866178736708284134266399336200954844028342852572985383616573534043254427940281778336598434905824221498356262923136352517598437562529074148457228464394850775602848623837855587910015579666715286894003468460522423288896459964881905506336053917302305237819228103549120617570080702023473408293412836345826452688364823898287715246835670446310392533326073099259667413791435104352121778189767059180285624794797397219409729328851809022992145747897333454631522588320391752992061247813500327916675738933329829300316120561178493017822958671929027202731893361571963472263516861413512268190658848632556752173360534941872447052494255278641078430939741813511524391963710494195530555292797058537707400134457438653569084337193704109539689094888766144061152695960124295271052118036979681801070901359027269479214667633771012662110966224293867860906238440930597983748531022614782559722134603111704130027115419348599373530583605123334849546627021422638639886182623036854561921470000550756321081779812338803210360527052605172042834007865418560468286413305380118987616268224923115319881004630452366111627221589703508692046285872358172757384216986532003537364348200876083089671080499201050956099847105560975188784679884229857231255850497354247155746320510531496464380980492659678391248854481191483570579925812629166901375929293713646965624967302625476291048558664196859753338781042744902993700489317131483977818909439550685768744903560128988100856809082547674245850606565135275385366579074452574168301311170909756232161521461629769280225971951089362631044149460098358114399316170783196787347514673754434679027333039449963029706749015019979038590664946158459991780013252235622480048732879694248145174635503359803816196723740641232938351630362867192472457549085848703182847820312647390519795884346941074969248701626060076468847342106139312734663198727851790628642565608685306900709599187188467863803511295453549728249261134534882754842784731760150291326454953706764146878231993779336699563352425018269148109417489923938099044167109094164802981409660029221822436466694144562727882540583801929373098795134929265665205630299463851116128785769033119579618309680102918480940925913615468820108578208505064920042911900863443706929219185801489381058879690798399411795118791342936166038990723776676737671949498775476485536677225858550801016278636106891564445416380235181970892692455524683214491751971260447485261860310347250356250454043484180978285869624123291044108268661019030653595899406152843781189149611478399683876784402348558492609340885415438570417662241493690644990365152249184428135612385724079507483547742228887158567611018975655835763429522016394665697535261538603790926719909276559514238833943203908650638980518387111435677568018722126881285807730319036478465014827503095045642437146923845466485592369459822981528636172028128004565751380880862061157032672891691030752243353162755428716994299342081207467779786602169017234161568377759128658720955582067742744603280907130440456761996933618826304882857723735678688834210011150140060607303725887291418797062162863306736521129391391689661697514770519812490377581933028025041532490096096225678451218836058234647592024998927569402334883154912341420798245017183712038400669977627797659662437111246699815585390099862163440159284365507018635342761176787518228376465162851654130424785725308542581691439716746665312798786675504930808815230337078096450666709762423216329329629224865957923241820164969358433322212061000659932729685144027959804842364185705390614802371856270747844720300137701627985516604050702796585477787112261245403681656090983149854426628867870630367603920678550136563302271485581161205665331895696794764517676877998523720933883595211388658597824756145388855551049587311329886960942232842981892652069400250540421489761958361879991007618897421761494658469729268179000251283637236553016593370788756411123792399634971265387161054565428977851634256324300684356345656378363083064807296454897390366904555813215917267398810066983436053000020357545621524875368961792976413673634341291353957971351685856778035984084662258514861370090822659565171457446793912852983669079282316323110119547762980954946457678943450524965789781857608052665183465085534350031516105131916650564073570985469373102113846195009611228962108845633108527026569381652363930367096974631453537029981849814611880404822360126062413755964008529945848947908603074241609759430047564167762780826694246167974274968497523325819742567434428175854484828151683216667372205348640977608148308319063146895308544323189674149619686111543750361098701865484822967862920970446593460084248622895265311897768875084343626556876448809947047369374352021449600464032543108886483919366204886665038352922776216808349712880052076234536448016910171969916644774366199631188958006439080623425025573777868948638572507700649748467710817964768397871146391670763518983558679341411553157071579368630574067015517734297195169055624540309831277176004200781199240180740257745715824106322396699873680732394959379976404149148216437881157514008249235973245997848191515797590312410012885930461810958247345753756765066304790825900800494576997449143836460006025801871455646264251227847439287810362913249605013054298874047653436690457230342735082695537655041007366311453298656523908372412243120640407508667843552743157533650051675785260203389263973204754491900012606330612806539903084862072662762770724081940547474214898805491381808244710780272168455947651789945473980458584870796257286659036010433522928281396751705531026691827072094009455919110298815621965672181165609135926250100570697634716254021364972217680785244432483201571754576313358072946531071384695570807356801332455405580262055482339609032840145479573980683812569114083789961667034814905349792568999601212894037614499867677782850417367968813316976514098494272190352171192232836013639247786541559360180749324067457902325444706356651201422319594439585056578660055401261688468207460661602639367899045542140939887393971814614334240157236333256829096582523890305987027363204871081346196806067868281515771836975675285493438575275028443877069214128480505469047978526805423228818422711477454912504564019128859727447133586073596767221442908323111731475489313074628768830107934585213802783705178565197523128827730468185719611537945661433428744798607419150928786681076488783436196911037294012410171118022795136530977163966486283668613744000134803567718562080490903282802685297673796847919829460286695995830921446467494092201758375952289749074016482171137992434657884818927976287415343002292422822052846705954369415398482859649225763557354269825381121534933345287414775535910280451438796649983578742436599332436058366736557938979826298695794716895136070295181219645724638426917224807129269605842732851201004217817639512145837460584171215781736696584530689757069366646350077776175778773931585836362449868114824037883774718619160019616687121022274232265911002248335250534917201805820475294230401272565219368749644532771288004478268024126768819645853692323512721443065701714545388603188566554907503515224571497749253776589543227161241603840367965117287806439212576474441257007941468051546499981387977555207070430372922518751494305795622270984907223187170629313887325958404678523867381197073061033435415162974939309151489234786258875358773765024416312156434739219754469283077411718906778889982332974472369978210830695860381522532375103123614701369375250796103430334234200984835252554076793560407539783914825348351556001455713911309600458261974541449989167188346223045043730483852686915084921515687398489924239900840125711658360865996769479431347542798931900283538333537834626859219486637829799632104802346663869943047040378267981000757255464943764521139771448851102898003092280856531061582275996929130847906808687582301600017916485821697695860476028212393114317997093482676093563921266048967378200002676344810041073442941912402345351396393737760103291901570801945918572191653813339945551963297868385382216423182930475598701061597577305785674982417168030576330506374894519028395609276395011874349487761662338533170383774331356293173360057158472910166265630234153037764702501523481708853325612314277545217925287557627550238529970055283339516351294744876322751370414088719156222292627935385279117982972658511288891691811913229256084219036157808781021806115736350457419610300222003071886861157169243473338744192956352749749749852842588592967742791816651599326318018029994040772638656785373118326489683907880722729942906693031136817857659720957040173471344474069940153202818661185184628094902508909323985334513214919541433861342485777775834601201651930906562941311724915594441443996142302550816962922335321357894367849657152694765348708949408798118264689911185035674817466864651745221377266256295462277718312042126004607311840214590324986576751919923150740733899342080831295437613007829242208079851836214252127063440059085876394153507709151520142072852060673854421756917931826790914731630015313109065539160482418390537058889939245786583334159682652025605656178009679019009446357724378593345512273669397648400335705244160079208728411775962052743601561630722328713202007289139883906828970768756420906639420425063364427862536920795945116798433934065573137629208359655020762655900257944389271109768806391292869375002432364515339024369872311883589864848821082602350478776517662795169357138007252452258576891626061091462127878642391271954338418426503919118078172676111010841635887651982196165919574385088077381582318025501552391169383890389687735863764698319692754725893219488503525736814073277018546766520418464191383179515714474764531746777121732450981479711905923242216608653161317464156129233456115200955684993351137294141649921867529728331430521431000590528517199530118878780230375133377760171955514347727212576455509341642135178700248476146305046524012415684877343854446830167011334556233168627872546287933975728057862824512094228033409720663920182956122355820084756280289770697922522896028542869905053437064338442315691089612781305606167078371302712125608585978649047556410348256018116602978231228686520414011172920829423681270325165395417400394008850615843317586238306015974023782829556850673269607424338675495229937175594764104998145417270452947084834655048880301343244282636063522229854110079190496699739801121593646112679281899633807345598887757291582437962569362467040635167426382674942050847617022008622407671388423233472712080058732770873480040196742363042241846922841711167701641551939346364007669632857879321609287253704288635850794486470982952150996453873036913930056908517194504417590247069253105996660187903426020841583329465676828701661804247811180376516704426080839054899876363284172793995893897226507747712673511554501453563648639718015451452974896357156649929840967280296199216006586807914589190787575599805806751453609365268880823081908540128096885372235744638054858912938500689389135155869576897866184046038053176009427321463749889245486826898648457201120964533901078086281144880999827591227575020392455405667916728459542901167152925470571546937304358768607197178646834430540478563390108090329324882766432541236833772475462732234148141357911118573021992511386831805023116184693586480763939953516845118955343756712826166825631358626371744229906442059711319400590557146159457970615066618130133715549479755807008397505015313351716531717094166361161143069955042886868712125882047376171534037847326042285294726465867172222023176575295926503761579660838546310823313094134533967381402638250699105248784898539978628980890834196440348644476423528373311558186988605741811128999071869814219388207753151968796508440210919293558512456719589745756159555767988711353281203521426562899796682601345707751388756639657212311911401854709329782017023490703768217609842857036694865886304101545335821589873774371096516620772287179308911109192891948635008575401996205829474155317129919626906624498582751330063005219727272316517776064953801702863729636419151966583066003029249530361923482038145018209024180359319666927702925908257542671759483785658704675947842036201173140936077698472381849644119244119093865886536847496169507036499334871730246581398404641781608960674428393710435634290523324401114891757265414223894865812478792552418023154848567038926677707787607945836735777002418547076847250447026043238801124671797261235940576522076610695290300554083049330876734747253139529170131667874379820141340918275975090538587726333552217926205556339962166017436661550358691578908984345471761797505692202041706368169403356265351864503412537650358340744209529560419167517258124054657497261896876472782846979879152768597543102508575239542891261082374904411703507921902981009056952718309336797006708476419842069701395825932093135778348524983101213602683555625589490872855721136695943060933127884652987532560869720779931425959321051719283158159023714302802691246159657816140511541268779743292782668135123640602251878686838962151205328749963214680083259504024278778569452201166912597432081562600022890782281831057058096022275956607247729030985413544213709075380149812404624629127417615478020877431318083532183752312690862957125197280371008508395403177488746310483148674354760591567951323577689209767637439073857730650414106589106104915922763096547855763470220286186510460953110903388176263118832318768247624802777192132854092776631536515252775365460674615256742659571517340625314647642626548583187149713463951707993989354488257548463212190000546121146810996993254181130682328566186385274523161807728179401424247499328213773518054116596632582229073538066598948365746633704911674284153423309652054985734902160434320677469318515847499407433976612628420671063063045542019031993537187750993051098037612899603497665380197048433141896170032195299778016703835118211458228281121625837665756281364670224494768155229711443022363674520046761430932900170217349927948255766327112262426674524340713431882525564782930808112845984499705446199961561541985628010647919466620975046589201504135782812719254964217950323989509198185932211871986437331934394225308700090372133533393274820431393273196617201635598783989789985908910841534827114110240740438374543723760387064913225562685525317077790846568608547080989099364984210654298230776538167434958685734193288114894525936889857171284715394012189011396807059191006500033896173403655468598798305986672417225023671494442178747022862647991987561803290890125219717451669175151921924137175649147136232165212728297665497591673878623678338887737933216567225928011341219286212950275301072935151200155960922332302278808414999631675720270549126305697752179198362502703970820984788065653493129824435821135507355141822361673332473401607195091065342607139905908115624117916886353644124906911094725263322349237957247698741087584232814211637512655878698420023132429820581524141358332714546858136433658828569523996789881303225079520045780926605869488822866270967664600695555048675594245122007037955677489933704961326996812431660247371073836449063150378814193808549885093099577184524972755096508310020068274943673946074150296871011287596970934091160095699391173825035499961443269997479739285007888178682842145607123547429556221494771960791998020914424836557985120087075970495395513748337235480198496868791166301791169882068795382537319644640508985882039054432685635350841742501043064718608588550849311276575993273157918252866096340770630067190192656885868764155252155473683454140027690093062681125137188386238965561645271725743498241222253983995801961837561006535881470186473679206285237632218368238150854287234625410169080686846643716834751655247847965998415593842089680135487209627340077787856268546437122310177422911771300840726837345667003008137890463627516009895147049246405810079947120896365859204906166967587535743203139270030345144163761598399719967891413195692903537985261592934402677758248896382270015841411059495861959575170303250786216616576989955314176211890596105220672881747970347139206806919349017942753569913946178613241524377054623840007323867335953055763032360119782031655189177396286416334591810957374958839385148945551060198598796300961706712521726090662729944998382989143013645163319543360311113364999780983727907779426541836584175183706279311206715402416782416482145607341827697742969202987136103715574808002089758720734818238415327925125200429095285031808887788757127234958965093172064267944203789662783134844926161522399394341285201136054729616744527229962359409427685016736133451533909276660060722286874196905655179893641571571327632825483481885732944236501201736591241667646281990312943314508957329059824158024483421244133884345853944535849642334561260085522436808585818272934637976910071157684141947483093756982588951552089789931313242896931680299802188589506476978003100943570509089957358740086896896199879789560541418598399415795461075230010930279984861544031391145181081925036185327797315737304477613584002815014813042721719540598317166436237075780698395931646301144516749266107870422072419742685855477477445610054946419370709784516684637390692360425827802963067088337902561754123599387840923753151027412048791144838064527031938476545280994358115254367350985923175947509323913979820132229565545276605949220032683862035737346369834746142041895941336000249901565046599636261726588450066326246384305895895383592238687514703663586602883220515400264562275478796969598818570411438548392299917468421635265836105946911648207894730393351641119568767049548624165040104224452806041054103663319138555114753011167837027006860011021315984446085001462256696317754937496502466502373935429836055859420207506236855388514978972764823953524586451064890019308382435622048128323680855672443559612839789193477699940916864780187548638701675446002415519887582437071025012361630048436373051190076947228789609796998874348006803022372019801401614058399288011755980800140212349007310954655081160090950512432520661710445196493491308158411755582788299313520694005101842922031265741701727514533084008895107522706460020382162222311162088555875355781304658479470176844887648019668382738717123009291496943817311257137817699788223202087694159274535293639396853959077719541505773590659429925636905293298217675627162466679918861556933416083726997442048031290272604688757935693552159760909818363809209248853559073333893319944306577302788454137967066318329794577680755964999946622507853799480227043500599324578162327469747004023688304839715758073303594564549783448518558442666034091326249595251747638592847869678704385519523988902046432218968554215089756927130382129382027168645399078238726044585384395564479433456954612630246954762543100868964960963130786512786379564465378078309108117655294576269384186669402830914108077921383787796729436618544195885289223662899040428315203678284412706290331320471831955173576945632255163527860879990291847615077876087132431403018567247788542183791735726272459115089723472031443620304531942024201089447588509820517311719374291995425264284373799532873205363603768901197762995622245094016660340884421498886268640720747043882263135022193143830193049308894465883077505495509373164798005112733714418889185295940504751721124335483913284275494781001813550830468632097050557220141909469226836584400583490810709465030296951933810407661547620288321907361113130080045255016042783973577999510362619550826162362734320923493903161024405344475292877581298818509096202183095925672840298074951286438097619880040636213711701119129906314199465723083506259008839961811729605231084811170349906657530888597583251145271407856572752538066287090242105379927152039739203376002811550769925685864228429785986278823681844012493252718684413883831336625126047238942642657206799935286488419283210295507152595122780412917449734044270497025045570937095709181838286304169217244715756978245314275638081972222885028361528882668575486664867984820802395164831309187010398389157865915186794341108228779294135106303291056318658873462215825484477629176686367350365958583838781402416009188386478535450202128169532269692529130315525621175717024695135048490896476608394796523522696000189673483775955431435165085863937684244026960754516543059347586796905637468060889437918089910369684909371029819379036981636274481846473397163454067573498327248035480422079758650139192575243167607807325530971784797963320697867778670720660482862243983691995308396473879218087602504532933548733421147002685061083636890493088232870352959283471284380712688463435349137997447021150786297532670843109904843440641096214918990193558868190183438737290474121451145504077887126241166920406023037121322407204038709889735171427322928114316331137702915027126350997609512988325683508446833527662567991081660891697487243249070274318614625023551272343522948158573066894382449847329785862058433840163566528434369194463641201276467042022112918972598446136011715500955056184077333109785708679273580737013482102075396501248257966114636841661936514859713198722163448813531165484386007441064585509464811531805543325597313458693746606923236095652447363141817295021641296185060770234908344958759597333863884731119889938716849976586986967406728324955783893307495520174663722074165670388281130921997065919535660121785297546280013420460275826518700977167273215233334515290952800421741551752216189419354756155905820310308319764594362483324449459158848688441416804873631704893012939389572077788266333848357859402093890183952706102376784119953131807742234630834078269745560754035170183132337030887929891754609984112060761537096712731727653390277121366402435187454498924503086984729846935687169058074318103137258915115152567187438706899938578382860587125686532603094658529513924244672848763813097719338988894383872691800960167999846937141599913254112105602931715857255995189321293549709613363059297230452800189227104873842428258000872463143322888424510483684671549608522942875470522807494937566408531995770724623370672572789092398093009448264328809105182701126417056791067053639933939409832801834338564654055661207239916100843905031596585275982444109245595137695744810929332120023096558358686092346339583905022350651129523102645649172749762841051924625941569199789078879823270060793412247460977322163773981720760153772676180629258745144085945347632680734789065394087788715103295969950997825446981179056474443235238413717129967691484436079797153394792645039623449773749034847864415064933584337380665459278359674189791969224597979581481479653413430883942336715332896379201095404024464123366847781122843541042822312916909241651618536099096318141782911360257046408058502145960390984787182679144700494911316450223938842415360649359346799706460894142071442273937047430860114409179705132371665840080680347457784552586285739852657103298593028036439803652613319180691926032065608741385320000846060320019710190363661179736669726184867705802965937521769242065207312729840992351192520778383477498924066438719200952749900199925435614695992742723648474745814688423316529796251176324020532287799229683539708385263474710794502687371343876428634906041123466586683025575086706545276237565004622937701099688508233427930665967094313742974978024015496901526951199464966501142229799943795014672760475017499529871260692792730278866810836835551681021053474533273785810939361839895300156901718302013971139626689170359962063738811662159805439029213536060466964493379189900481909218599821557374529559384784055371602173849738477834627171282388847709778342080006215589470258270188918039114842298405797949573631469711267220843792591550855143268068188498851463244510376314001417432426120897848461301012744705641809609493902742277056787910169895674543262464433063570006687786496674105836508598922832686445898521101322456282184236985955023507941634415942104227103067434917713574848640004275709515971714150030463059436619642912241998280653008797618630707274032521039657109974476756138424310656228444495980435701279471138407987210324004775335406442784500628943919991766037306293485249763395798034217912542416037425777453513773785689357869236937170970860122211696901349832323178822838284398342079236796598825289454449827380395480946761470758866889428850670353516421688374703059097250056913182721809824529763575977690243925208827259178333738304053237376942805316803484534558009282113081630797736212224320746130929787432992066720456135248869738050905357643969103032597790516806429444098129323474941691677039076728446850091101190863937336246475559635608939565731961269803006299160245030867753346135119744337765036266268754935243633539283094859759627248116865869010995850846985725017327928176059199407539612341359775271516989075800877965137783739112321381436645223325471738447008080635336331165570779539843499287713480388507401958441523251188463472514142752828899993637906589230228490513039993669077917166126664718690339247102233907133852705545782332335811922825462128695511457121915053153775606440445486925268550697572796852161783444215771554069699707838961180766529700355688376305693722708306145568091487403002611723893624177775840732597667146623178067164410741314583223842474234303548412372959852615718004916308576327103775907977346225700977593520879369850919111480306719861557106180282774351457787991758357325865723843247925891911639703158596307714497732459953402900573046446379159007462546936070176599325113725592126629278311024619133750243682565521894772594416818188681657625910893826995438326369225320908553716060092618873160753489100648061611192617269233545791877654098432187277422534012685455960348594950709534278787040846052359356928450395441406501068965368832842020068402712097893628315358178620407951750451656475120231548587319697818295332888680898199240384543531741168563769390604338142919661503127263780164825385161345871426088266701335186848438491057742379077583862952507597340543082956658691791292697208757201219915625061801055417249377589343129892830221393817191536580958488136409093132261595902525814026026449552290378031335218202499660432722774931972623603443612040628706991552657441667690304728135905504663523537656811990880143456435319045585848608664732490724072755684799627832320049966986229047118231726872754233683550580072798156887290139522084298989141907960393542311374497249378443551488669207070338623947692139126018010500284762742374823803287878573632437596863761210079339925673035634437108129651813678150291403591316427762740441705947353353759409785131304958734606050634050865126293529912012320899920843482803233637256314958668734050589444648535275136044745277113504570132580187571964140555359295646038234250983547263201548277753306720224933578070306035454372441819397441268845680320368446294694488874314624206828181970427786783079481042486137538805252798898518782769989730670423527521729626864556527664982631613582413824710670693249924211009146657699725203145502639632521916273499099457420132805557952459012657558531193683840548521398701873652899202781782251493883719273647143360110099772040711074173907184284301602957150455798805841449461110285372416559926780479144166631207259128933833894086805385424268678442715147231290271353661253896971473968963634882774769038789651343759755902263952825137928932265417834248683161097537240622947761989003337893196123093534508136164472299314776001602777959518905640812740615524555330993557007878101213423210360015895138412675109144537525309267259094734710991624992461131194737283206479622033859867973345896178397677035504586660521134218686997355665075980463767259695496273875898489758026240676305191510000785276129911683907759692720540688699745691311050330264104485817445951606465570798253655132349348726459842901864748159266447926164567028811036100929795040884146316617875208870736176055599516335232338307304071976729234561423667026356782919922224005217892700108005652746482260640226956044432050072980680068975976557790365668035694971742795931259754294408978555032374755224282090123637275483508549146230821250657314195095613059201690637022580129263593983695176698982805596780205216593492169273643559269654067225110186525445779449884323652859427693897017290895201674101169991011706356905764324334408646749509484952415643118023220187700992768492436799943585042967489431885490488055554588376056911045281173375639643961552393454611194606584214587009834022877866749662622113804386045699702566918626624668961415484895518416223284009919579370995334484894719126328585145660540487042509026757094774859576118853950597485798230829775786190261268258172658692513156326588771696206510344377587690457601863594904996678461416246879690915500634475144705228524731912436696735430862281472058051548787040096393615575171280505593665746775151508775706553075850768734763753581021659893850113983102442385983395299137111511151381265812472178795120537341894859622904671141854268331923938820791455248321446336720354226154746253405866027563487019438331527202767881120674851521561578323700334290105760030244797686748716797027766850402166347926039163360768464692071556740403077887885378140160997508674353755567200712503246064432440206856742207618321445990607588361826809352054386313864725674700174694691640249979404886286932804965866578005011573482724119915726592358383530377816584540634184929265505485699232462783388638951256173320297874352754837180920926622612692876562822942502543250039382577247495247450852867305364153485344322640939512084441198885968776215604295992185352199086465838712673220088308082573925323401853357853940219474359539896989481590625028070053202918843000256961403755658885342803310437682528498517993012065310962035996320901615020180500406758521386116793736716573594953086013344063059220846739361211973711543669817541168387003235368419950158347952957802917584079867023310225849831405916135132048373547041541109328392213783141844870739609942826905687938599960627117198606138420141323908160159840382413744386416520215828217796938764135210998311133054728493174564782370578688116867250089725155152450849899360667572156975235471083476952222110964449971959218132649504686985955748788895921661728533776685935890961075510478870369013064678327388233159283492402129608366063127083350259410546817610382525554270696034919828674067905674444317882252829001969607592304307620736788538980510414322487344071511534199403402105223339676515185504972252589037976410224662400127002468782683162662922142713694221508825629301906843208712652287370588775214798022147345368433653861803342014357898516377612348355082424239880014129559251472556440725133632768790846891059004049444587023589273897522007101326944263665442160307174733823150166217796411984991174783772817502075023722148049849808991566408817371791718558779203045397921485948089826424499922439113834789968166849341360352769337707892300416908007152557865574540043579307010187368082252386999568404496872295792575207225397690082736294029097227365186108698813536310369184078424165918153971212896198814705465280318539892642270823666915960121285906393224832624927069396611594234400156738400746374179007764552767571444415311109292549353664691485962284580355720460980688113338311514279242448288907324315857334273390132801555151915646551560990656101060635018739743736795550935990509191204104014461623536387340036913679053897400247670246587100959328300411020439564523354158231791592553783648051948405010143933646991388537871486188118765779379049261513996260482449925319239656837061687154638368679212178884687746310480128796310901120744217053888419586258927826544664982134218414424418540878420640790440573380856182943376494553257895523605324504209258789994680677447763312960793425465766034962333718688148090555840050936166315124557089182706663217852648009901945135863053945524244866575039992517896861367702869202192256467037961938098132958504375483486470227375282943967749732878104178053177126495251577265647668946246297691917586916991857179146594894004719118498925468330847764818467419890139519145947305270946143393750921631708538525000576460124204156697570723581054039419004365368461393002047473339399157067541979663444398463140700915969809994847751035076802597241378915971793214547908728595148820048221136353781935827464582246500081065366054880543347749683394614599087205145588325306052588552381348073915063501982259801494641932579923243434417050713762547575708904507523521040897871894980659193893192566038879978331474150725281865225322163250246477651866234065300230860742428786846889390492918501618381416169144569483341442722691666742860074259588198077694061728531364925927909708474457648139742376706602467818962478150433829130823896063480810407763669105334725450684719390694699697888612418492395263021887269923869211742373148295716526348266946349364424879210682533147064165773952552678018357394919799048257724212740333673141824061998781152431020042783787370057171731362366395951031346441296246271168452528848861111600201936185845819669017328707223084643217930684383961468851708452703813489555782072393810567236370460915734927726661391565970829924766153409961940084111040628816829850070982024111828827197382064022317964143869170837439574729638970372668290075170338054827445512232390458414339992199276815826256424726088026566143477394618939129594668023778094658962069282997943009863587705462836054967927612347831224603665198948678728147322491074093320133181364339235793637353142862590399035412249266027070299714502895313140531679751513086551117154107181912617341903767882379025681031099132214515236544912413777068431247884077554195419833459678286779268503449397301731437270447820279896186661410198779070998583137828272064428703439288571369617078839830027323952357462017947363652445843573868518080699231869430121839707342936218004772192421217713630899413512790856997881523871558723173528602462190769131275597032340325303966720801668246621557766853198247013209533943535972810648074590647630671888553686948476686974352734617772376444792964118212598031631028710966336467804358711352817266357628253444878427139866541515686383558737862054350934136183279047235742155877016051583046608370448542877876087622333553418547934521951219056171477031100470381572886691794263008165757612547986296161893843063794044035955599893772040639114232292804083355162224941907046711956161904403651521229278578076373064877571492756137874600908169627643580362357166405695128892606113566430168442355292298302499124543412139931531281885057915834776681109398299767625798388724223267297188998284292244760541727009856577025206413680133107059451477438072780476877077573966971582574983511959405469845272667185990435197795479551228326220149760158157704590277187265393675984600526312392729778137272757570184942148635692250649523428050816634185976520130314019261723858220565711305091488929742131667941405817337349821557362474611702890937072941978175290133070636370712546254458221813864926396110092626688034641271632924541684282701728613631610531488510697001736817419174902774566323890874913111062968604424298101238119657133875650586542985953022064595162359674727413320015764829462633242528659350661250709299026516106347190254733814677466670309523851290860643123007817554576328103638285164850491311486032613639677364971075834679790631587829365329076118812526603003087753164136604300686182751477127503304598665709457906178985719919504041025396148579508293691336176072895357403204530758511016321603042870733034355643844968977802035478942751691438976225871029769710006241915073595503416327094531243921806641668032792333267650666555758042788773401768440754685895365114669607079514731516982890700471130633750144311986025612328180884009805905831011226283122379356060742445819541922089195028211656730715526814038433403320705890750370899681824775526228894352797775210525366193135251470875125174346645885642284084154820253051303453742972932108644706557164324656038885022624444377571902930506942643275511499330102505882887091668894675444738572813300212332177934929614111300433158776655974717710830794246701741831081795766240285457287294447171299825031409781180955048267043942564304918532899402045264511610489940129516448150073405760535011625040310846366182583233112457933995773056695586798224481520187015162388022928486179905737933440131341631339374735789016819593066477526202717663665180849680298700882670782822370577423428845188329481192122854343586164804382796136868098729534447958387498774953709244160572043007387125545739498369694375504171682945797974658696400545775118220562154635383003292407252219365928570531799579437021931550153872771498285640749366919966746660009860610065366326680153994119128262395560468582625875017101431437205623536763418451071535722163639719467184113811333698091310929748413632992069976887244222266116877028514363604782651581767086558463449122697919533499535225600690548627279212090722139331435836723026168990700315843508930162266125122242042223632749761779541275638946715253149014149964666105414154225400738470492787451535951554904217607957068435737401155738890579600355354411712413599340919310192397648334394431536719067923095443724785739124247170108943171323016699006742261393823592850873202145004499331867415643021424533854548149070025691282050225176221983676934109710694041388450350052616246945059253793277737588188733105449998328240976037134400918694173830709056479548939728261077365381588294378048749681511157470624460217793909481646362197461410176499270510840647927351205393114991225997443678195985418837868126314558331710964093943983681486648643662737317103283037480891570698895201365728050661573179348016953466338290895735746870677176197473623264961905303995869873873393596250227484364657876481222582976044825654961806709294432415549228346447781247459064587261512901859888548687753412928661039789137447531822302087889861368608301458675082128386836793357262433593207737523308908767194581032346155962997674600510713454419143142434547716511630007179846693786109590840552192088842919566062522697578354055311589759755578199628578313008886507586688809147853362073532274953025842825421267287107676775000230750818399119951834701907014504279816170882177052916855651230585716959051961749651123774627034255695964098035017700826621792359476562063906068853471894238404331908459183082620555615661988396952251013985583032848703966841965673145151124102103782556846957983058324314000417251244122300694269224065738887678423107487855613977305083783139094615104616068550901937239512011683361755176027787063940148571150555286187662617894641401667578203923187061830749671502027273080091610530318002849810714859812880230491312300515647924251466014164412411663619786576267307287365623102557558146546184580644768991021041500930437262754305759152052996321017736131378098409589808819255598510097401840999947265087249127910508997018866255712983838164706785901377880320796084752591032949431021889418393453547722179203986043702927864250336531997119767840317903311052168812245879805098740143790530990697882115530540353100587381581964606153079704747820712014299211907553172695956604158436198004600605556740984976973625507803661920158821697555047748927884527598038419931012159328933832728856672329213644461918601262705940781039163591659268827806333448608157729201283113122584578859460211873646361738503614720456927670074146920222106682936370975491234204441825486480800017246615881272376869370880529489645533935549253806448168589337240371216904723571803215311602145749475585929636402594708224409309907511912045800294604060526144708215544251819082111261345028144929385494498909422753863189627205913100106941069532223197849648965059372792879011730276415939250354686157769917748319781640692971195543294945074309500290676465552813474968613045352249460647914575806009664442304580386954482026884110545801228187730888037496219241391292892469121923454837513943106391054905624158481237417238161098695118618780808321674155700806330227978222379470681901180766719998839329153884284918223383971819798405593996859738229576573222981598802321779252608933123828127272409532539060766089228088458665692493972283468081825710225672430618747388955156603372941167261073789311274149645400353817451512306491020806632120711556279296678774156080494823835207049854313304450384221346224055293200018499375447247326578831366115647307767464463706346966845581959398919661638821131383962505831512670215643317974008269082873861046513348390215423177397954733828629477552777730347932324044730859086580925584227429974215686950821676643106652798026871948543162949287245715234098179137955476277527326178303486811418404083157284158178409916313929861887857561887124557295154335469414006229831929892514748606708807864897081908749187429443561523344788357510623777339604739264794076560460850377926574183226339747488711035527294962983582452096922332055264917546938407724035156731412858624473790670595662172760041490474573400380429033330470269053323032383821357292096271988363962687508110205652967032898585767362061647065507609332414560578365705500038049726111589316406735798509767678179616582920664537089319677664915418554851496126354543858571617422620702719890866087867908837636147292138521578632862501674042221846574251344913369306701522242884216456821554612979339403538981166432605809945251107521451149265018485213781322215454438796095701486556790337918097297538800935130977250885454717777122763319271444964242918610043680434991846915181846838752938950515177473986136874268081925089341322399088587553842752451514383661527523317233361923228075904699088620801658110165763411300146481555196877502597268646798642802143207160327054426375397842339321520102161794416036112695817328721520948433570813354622825482087483126878139105541496261072510479140511342292846750759759032241088979919737019360295270292258245503177127683078080369059788563538314247226418793072074235631926527435794520473555384443485869715612448741543236425775100348105950485549306908327081592431095699319571797365341234142302769699967044595095708184551682592218693910486313084739859351033573911029933812123260181121069130589965591047306100883834210678766365226721806604546752378285049383675111182829758080355147229429851485288863188621817003909274387722884709843539061956025551443384569821685140629758768816281956642142225582626545649113291713572059786289918822236279536732757368840892870233204236074148297905879360911280196094151031975442588302997941570000746356349951327821953858184738446420109084228982543023126960439625575512122033343034577892927448928961151387808283692191230408885208829645193206377793142247226811782200259024170560492006263653758974061086393262373715192915759096786215495616006257657135604333482213414801324510545863983298819724735259395573105066616004984835693608585224207063810316431060071371913934806693959418036580222797795761882424951874811775389719481372396531621176597621495321855387823013147536882276719789381847718359427786592015245100950228787259908917926055162981188514949119598129932662665835254096641739093106799955156324544859115531918411466052449984343942957616324170750792488002784227129715837455690951329860621179764292927852189235195518778930106765317038270768998785924158625443591082724670151084317976679708772296659951315300028924018676629507518780946823994122108762086176329163424386341684580629021117127684920197174011215269093339406867498910154009792787256156716348809951305131254395178238010364011708222381300554561200875749561518349801874497477450674418094083690817121227134379688907755323145287170483624826702716243440177137931423220529521664782078907893736762592701410436717497930415284904654349153237907200055252393374259773351940730873055958365311766655885154770609064398267785605232050623820569899851565485418500581726172885554015555359641371579985075891024851010524702080961438897648548576488607850392360032526108189064708581315614353387800389406519383717616541283377657156289686810081245218741412593150385164252055311253945704802378847962132965114352221200785872939904972106632015090818278975531013606085826749671820589626491698688148301686944561511721728044042112056719731149373112694640273385428560115597996624222865406716498326481403540307543742754133112421008716442961915638229706171765033734681114443363938307378782006011246111665682912534591724822918760475480017243892477457203211524419301999592649895784122277992916527920326401383803035272439608064456280571192875794582463819955093449189153598808159275359350771291948432542835029270560984359904365793871977586221215046124266558445562375624302706134048745767352820588667106334631369363442748124153553903352625440516725431641911229141798153471550527854541192329403701115822316309560612261242341396802680774232782142822087749188443154350354666392470334967345005779417174441218187641022580953332108447394751992588500011245554783166001594347114932307903599319940969397362011004184174108272213375463008578069130083661625096184347461861331190467284245302185559989637315255361318775161636333202382103098334145945778271813662962988010088671339038552199551991757220335733174848300850564322912362855416005997842778172227144365756301488963417288834818803532017306572927828291689042989955697644300291464716816309905718475119250656134603499225904046860673059077328422241443788847234815472282609415718206963244369690767392521815607608769032133484752975198775054565773024977406223759110702620295089592222806178634358754698624027198386765811867911442043112266405391836918151513054505464774633878569221255167961722011625271358922227638597704926453479468546207086154855600418377670781360224325429626430356028063003685975625026637884221245026727949737785755854497472177333166544713099756493925477288620223620083289961552955028732172927824642047280005196929462163288655229228536077980585546410702399264515752616836281970467993459222817353439468310110881643390254588170998594947680478235372395520180999872871923653884732484062272915634976164260339950982300809238066423957996774905952838321414264832177410203773368362611593148916758259941376045894267649452801321765568361405760843279680188893089206770754335624238892988836009029602687608258469828662901293321507627972275079276638316768311701391976220717239564505611639252600570867654315393989794331407028306089683674078067162495343117148012228978457359137237757915823106175241853096899443652884232091381808214280776356952358544190987727383872789247939704879416499804477353800907122862591640500939469495794429497014747822457298734336984120803010964904993914296345811981437655472373809460939103510687763622567207189162472790932399716245756455034409156963356505973729433194736135930544221423435481020299587815534164888613669779009043473611377399982568117603926749562336597462648728544408582529068523492850127621940099196130171672621633627002318066765839288205998782319802888069481197269872388658036946285979699288992566225876129439719163591425753845656922368162267322618068114293821564469782872292362889198254275001264034335937640554096115643072158926372181108782995924360441867786160406294057084437479699277170403655258572247941776466092582848095561867564261641168736577920152991330829752631382826089940347773428312926068900789209694020944374372022341430298573665699285488450887649331933094860934274057164893876142052268308196000438611512493101746008932515340946130318318157371934465889355448247080753362576401154880067026686612358579076388009831362533206399481591482326746818903402250981669639584417072280000103696579409339329604554048881272710240003969023677197721521835388527545111549675326481321998946935341450442508309922240225662312497053243070820044726652193162855391521406086012977581115550438823069736144280279193251615010020954091412767454106287756898226489802329438927854616419313518972033604919103424088679982440475726039004482101020014244149790932425696203937328493329774462095033432915244577759873230271264858102808040897785545496554478190332852342037315159746760399209839667651156246096108028689852173555658474027208372196033749440013801177292563923068682665622661961479649431060846381241529140012767717152421008533430025270682568437251752584344137004434003091923225895049939270623233171964982179387970233215745398839244996203317795027628977835127357085713487116368840706710458153459566944163312087965106592445842272734365307745184969410098767995294067287417399170724140503352359118767678030129016528880987957397554452208676205923073757153785930121232365794472407858892743138310380796436129694772384863284924110729723815601784190492167578748857410760712654683414628412718097653283636894872105056690107824095007137043623359111412222995346673796727857344252739636706023818224180022796763687309987734180207201182353773549846904724246332850647122969779875733254714251258604080424692489306149034858283018668307951627617519954705587314619232842939432353458269379923940783501604852581616897360606357396076978474553804083967250782600365153878283879610852860024935900138564292638729787084119008190541634336763208749037759293314420705003851861421555605406778146758206218664104725176538749072424662227952327960105836134213821959037216520535069244707290303886494661450307173198426356299891426769679710156546348537872384202642915255269107983689221086541011988426091254693525623078677679638725386680436540663370138243931560926914860552124218509202878015333839244240699981555280841134622557293628023463466550705901785691525434672300803881911139098692736474165460301378173597320340203865907135686709914061365174876368019472218249215487250263580485251286268175995389647653414840124389240600046595558974802460457717074912453654388830915361439957666148980223018931607072591010290716038045885024832849179810835256217363667465597864944644786466431634410310106182794912392930839022012594906299557924877367317635658071430955693869916296966809261897811190329473488745933007393490630074325263757617549158116039365490609797075754057148095834060006781651226413543114463234804497793895207526265065421276172665227010064363284576473293553385084016624083407173691450493652434262255420152746427495827265608562295659881307487824588368555200492997956175314569451839730204861007398836062137222162180667751119980639111066095900853939247792112671859781304961922163439857974885843760977615188701958776364440680893837290505504720518088819961474949475813018411036634032762280447524503043928406460000755889040628102273801378617234129463670498482082629474715514920999101692655741854975108119310932217663561377812988337721908757578998279274050702964443732401225039281818388098465391505927765546125319580120819640270387997652369206683084437952998060749939236648244837160197249561088189029817976624937436670316349918215925574785007648283305764442451852951383673583046335329599435677706453972907929275422235359230306076779468676305747536410684114954135657320981539009004478478426200292816520220332061045535009652860279040167380847757404631431122985217369809541540068563821486437958302178696295377077936711909515367235148321882241007227836224879871128014109755869260583445303553561159557661190613171833891553535980012541216448938735771895083437953520286899646493198483424764272158367883183709213941402251365244275303455906455546468187114914101103477895975359909647584617634590792541844661913105398160404732067468680064096493649037377839436403011715110206531175343654052602248893116531481924445199027629089325956844731517018242365539520564505294680388645214165616868383462603864476440389748715558185295690104932568947483395370037287716339744345921658471927837866670577511157136293266877386328562311675864682542080393548574889325669445986991191334935352855097116676481743391884010018603119785916943517254087848963609332649689903178025655864081544002745201400175378458183025486378871148008839554535207227501988544432417388215681483882939330328938481473538161721868475993798648107153976222959144373801823333542286084629679242203392130000194531791143480223921912329543739856149917106540663722687998618404722384735930126941721094055845488946065828228963327496788834261399233530228200180776793245529882947431777792262956127566799945192135578361041886489567196198992133547010309142407115317195033727423757716733609064973227098486761804740388309404260436909366342647709819344500598016800771854901996205516331676803555002228812419058859342315025798331941724918635597296565689356333708403995531503901975694953984768128281418411542473834763133312358075671978867355311623914570833932000123978677765816344694859887650319327759257972510291794518935938507402998856093869030059131062302176582172295771369226600373215661417156133655155777529730963843396224474089398548213049784611108797190774673288754006241296133960981239589738735989419403545713597045598873132063677134920779663353893909872833660600424936268363780703406976479687195779188523704406400970306877304603560481312512748449410071628840835436010604376183799365803999336681642371728214611738053180525347931204713935611001218685002784970332842937082610800824742490200792352419470482425325908087401927004035145504667172735354510189130859956629613374600233399312990318122250359877714919084712590785307380087273872551725042449409878883951282055339763612962217404633707136739193922204012084176345716478543846639814646577381266132861831258929105382553193422894357794345448782984182739704087189969485194056977980473758466484244020310016332633330606062385248182245912078559255969598227234872291569730132991829830432281853224235172897923918601449418435879193234552741691178925754078871812007046885143319504103152470122763251412615129797280314958722055572297774138543893849642925442466879337814762682703157614642888222106795635991830949562833813494368981738995652584510086357899375553107131448027488654451069769424436376770935426414571904409201454067030824957337842491094833336182789257604443532242588633482568620517113397207987319824865439956074722518576212838007703815703810769456503278551772993694489798389039342327009646047217023282024790277146718718272366903687088302305392838563461870767335362030725911283989243834620574542590284125983698415636227141142904880823895095947339444682558971160310146498279880546550244844895972892427817592146962113216886992131038898339429048710471518845512444717719501009706247609305815038859820607153673921958979647327822374794996711577168005821546661288224230129766677441711219628118481473481785846635386065043947624979801340843374962806969223007217684200450124013205071959968908369766274558257409831094767751669023932376170591237123447335961451692112873425866009179383948423141404314175253789419360685411603073572728330410998859385198465423801492333077919260156369919375927996782254478973771739047377262081510299473122703691329328914286653837706993503230276419262832230868378848384456695344502138310233805179208225816105255211477957994249548948788602415637912768688076599380762106525159099246061350424704721361620459820552513852594503852518597643816670112263239731049567341631782880071730972030991301915383006451278294678767411126717734125059686424515922633309740641914434616224145096849953062696942357255123412692341134187545833369183151507568573744199071234739328651393040943802835340306665942278054806392615800828164836310895633084380871386751295518414402410700176721271532999233463064914887640797811043375373852729064797913857870890448851783751895532247586523262490411099109575330621307674804660851633612065067696312748590117559047321032028637377609134285358810653607419743031385011081888210870807286780081434253686913597804337724481499731033484627472786653653175592674877693029822307554248816992798811168988652078754602871492683694201966067078087634787069094683229569399044997071063831140412410004820521516619065172801919242807417497013370573430083952267008947134856307874039123135469563256216684914450472163328084102340137868439090378698198698070345433196428248786670013701789448688468539279806469305500363438939008290741709909420885170027275781179896688579594010245859393565963120162001765046895225087416403273833688277368274879239824441744746750365613109691857750280297676179879439757894372141211129021968618254508966207935672922501681392923586377830852491268277239000478313771994357245786199316271716430144749938504538672118251544448203686469430675177560351157075341987748752619893821349794900512662859692159729238950904746910051927173238737400406709812597738195615060765146077046594811514005765763556686369834142718771606623594790516145681359164796277019196065224119530738977816368819667072753547743856594790611941633167020948196862901437503478123619553044287127052951664347177963474338454861365180739458565801779240919469932968290219878740624277556199107378917483812755688308475306741348341157261518554126463084920168981199532911375219118276807941009384376008301583451614308321088341903407905773402938209055623940711434061514414960106393408987566068440100670173105513935262555236976004561029657243131025393936049317705647312151271618655026369731347309408275743264529137169817737782701395548102020350289753635860260522944679007685115026539787954388524286251116038264140291139337610285372771018000519547675904131846104061207696318629379239772141783159561188746211763572753275698466740088080598079445598108623146032225696867230864374537141070260100499855206483110849786459963750769437233231210960625809911668759534045729146754944284301673496871747552421446863694899635583944951283539441582141802603365953136865485787272373923478284175681184198157727845581424350229604433809808496376995081208884841114326651079426504073611879107595817945669253556077149033816245219048590102611654270122906821074639085305238664499966503833890796192520779948699574586019060801192160996016504750197589361522779367429910795950353075670618262044537844671857609369626047904711983232607151920802566365182059406284566544314591419988147171821975364931294198516943384757035990242428395659947833508720697562049985832300410623464130010742985427065317039243211772480740019463689582166369469112340469773792423957716474917876747613592298061645919659155648891637583205919022435181499229887747133411488102934509307091693659794196726230103121627348176345463814811633505660175148314281614072830165066348805319869008223893828805753712202667169323202915852349599778786803445887278464803911357767374359707173428346481414529761596337729330930865001506235137997457197550588017461813837146042340642528078354482195119500058872220094107574795314952295814007135662191873174288441714508288139315190685164460387848084772630958266271976364402071651871067603474344896793227631034742373648562004714214085013117059633270619381568121343813847189450349858953661101840216633837199340061276960024325149623138514959127205218521196240681014998693981669424659078155651990830973965115181189614883313036791726049587429701267512347495041994669383035609062181343226842678993743276234779378338818889120221791651407988561989634215110731701567050378037727347430604781959309540021350917097826935556758603737519643821291365804675588106889939254667655308244004882316254464764467940377982744552428122649714759619513052337556749076946443764852889090700585204787975028490143143890086786551165052812010030378628522115310806106364988148012149496159450022027218817832094345810772578547405488625839440579128590683887500212848866046318757746929290529474811410240405510069884934858899507873744378112072855329638676931323008367943363003052267266278892883490904751404900753040795067745537879462891881278039328008943792887528762898868435486265325498616322818379234684525459697918319622278307860597673399506762786814015611815708633725947742233548263076143356712540244742024379343607405748742234818358517497372167859403410020479346378237299746867686423961223115214097026521695185473391277967471493387597170806994033119125529780311724360740255871227565119223913109457051830753674919263240531817794541269211948742095545543159612820798013965173668796296566170572487095930455223779482674200210646202617464788128474415102876226992657460902447505904570761785613706514180496537232182384614689013037011220990509940451865457146004436809224274414987273536165571845390991140123330869613131682126842620696091626402774979960094357332116812350933379711336280782977740182929883310375315287219376787234361837193019014266411676957718957849014396912126053118417444818139991567989214612720113499755892710360163784266985431334957009502819377645782387933926248833265186040886742548766451249793396915637886368189437783392675935298843553594299329441788713499187357969496559250819656729234439968009610391905646259923187544193414399454930402333041777530422864419653392280456688601023810222034902695177760848170619905286177331684177448919987728957334670292509218459839118087027251791408598324106294841300019409798037477030705496476148470803049052015121928463364993366545096016210554039549584487938244373992125982994562074267417438054819001977063167933267665996612256580555901652085941452248445727487946244224648210950587374481136584664979131795321725975415251582919401655881024211489689508015520820586905124010340066659753931726915259269461125893047322959477542539012327022022838922749479224893322097558704538381101179363323344700216722544206373472516453150688826875180977069106069368463793476341959248771700970200911314547378051724628215421341101499115693727410626613264773455104954028915816836273279055514453281153241043822153987824151148909051090176922500836920470866791399924571737977759687780791084057614788934876070090766507391141234961812838506644846854561484302358995957342106453122441565939109926504899638887755262489087948756831297700154871842688787051658998896526604001582334347270076618199303409491231411154064697307553277872506734769504987534463816776903134088806002356237290664255824883287023607178353397599516741117506907523378210773630436034368399474795160568698205407956407787014264939490870458239669330871877861005848476913938782898912852808466338618314995523707447581512526802257336485527530547155358382818571646727658935894679222195756548909745024292007057718628251631347931034800267015163691433880470408496022961337206512935448478901570958198735727711881385864317342005011482687057062616219606505981683040431479853072305142724630304098298620503722038020166102152832693033678170388190244282866493991970180381711635849540390766648101507830345411755892492602976397823316160782797353260471607013996374242176335093068136403376160745706464924735809460323012329270516440373857915232281115309523614628869338986009800752344943095965302848394386856269876660676493817689328620153870883054788841854816752894767417886016218614533390190969622067754891906244235061012683465397903918037616390224312446429734974047127726308082275016430007202261514723209907610443428510902696363086982078359514615264514578140520313639958680703251304227649024313945387986595555576533747455064023036241271703485027343478247126409283747427253024248480833089848827775604686181720146480183029848170868878854543923551491043182962219966179299623348704688726394683285259156064608259008465808132030520609194906512859410172199988037783607148291412452851195598256825144104567002946659559902825552615142587844949126664349395650569022042006365905745421310069409216003085556990768413852481564590338987082451882315314279165096795671388502375447091564054217270539287049249138004615822113080518126653547817905440466736551348764128219568313864849895306234888489734705254560775688016875197433735298483148336110831581491658160100478034950735374220335426715480976467155182494343202238540765909206798290627302766326791458758812812406770001191348810466955197662337563297519454944746374966202949039269810141504366783842218664633780244987811901831635486390267969074687580533602014311319667011079417919749825716336942952055620322933383195528601833815987434468026532736011037196424833957909559524249029099399752391231398345475752854905941328212268908774086860254708096515715682963330892985365237455074768382745388792809586448000306181877032898712911451313971463018579730570881534772853677549962957434423778863956266986735541882010381675981739594903134227148070506484590495145700316060639240664590043013738273297546716730564311072208734503860493340954382642510752239056054781849908541764979681345442815691399563286715127519492684623092983217282214627816863276941976367246436920443953511885649112401510300036701011182749084766846362903186067766810358210334041323422617358748445080885213374240602016474453598754425164761967949266431004887019927386614663726576962033546689850150395215305001368783737810987953990760664350536353155543048867758332625859009068655357063021318985084014049991299420598897570239039341953648066470547770778686799200848234687157023460039494817163929530278869912011916556508800610746727195259675453028419279233808691004650067927092023363485579228244832518645539516603666137203794333898194574476911132455852225553473584503977189055537088247856287861655040978935094451581782187983192751097535733604091392026965844378353355791847186304538750636392271752065208244569944833950856549779725704382103367672854159611448963111897773588012207233283185565273932246514492935891308650519928766943399691170228866080587455490583289560598003792198524776506148600020912167714021968298478864311043643567177366001320655443754531977854344578792813893167996951588087349900639796165701185843172332884643577522138522635519802943686345866193556963943729394630346482095976768046917571078082952957609473936406680434595101417968214538762206775770199747650839626977783950676888930316483629365756056973851426647253459102074041077767313504319008511367874005908515383798440305454260787698563130652791623576995849812250891629787058551477141961123003448147662936641733300565928677088215739961641745067499090240826245099225523654241881758314953344164630857873203518621264627593969023983570855392496960579651290741182899194591014655523377445420053381921909157508358814150203948889923489495862931207980103122448305398611461594857846512793424582090027570726695124223411170052725562780564816589795423929348595646555940432892277707389972652328272805335566533889732690035036399855247053278341240762580978895953233298139425261370781624324513695003594607744394867666146373607348254447121549792138051880160380736218686380489394130817665313202383899709997436317566698242775698399831846544339798001553083108865467914851618910504443514726107710145712200835154130290251053687584903334454664378232405599252938114765168316219527478004149982258409563608436909199274552359214698442548001323245540956246037613545729529571018134934986825471808208126255660232747456538665946964587449040770539307486069127441003797705323738348526320110031401030748739079587669805603567577184493615980238974978998687629244653850414838892379371632822561578211251189574294324713013123584821499248432313500220532021835801216714828185095839168371854929378869884381700160045891633624593932835929517799447641855962857825843259627949900863880054817057281919663611893763729074757480459661918467891642199330048278219657607334611615712743518348298794679462760781697789320284508016501028073691023478522265040995400889572302264017667871806598970513063232816087721498401962074108471003622031187083562306286485404853668455301844428289215694706935833304975525057364696433306937761759445217917188532577394978465938603654652268417704252028368870417117832248847866400757062152060526357474193554967287673833307373684898530541672409164487932622001171140143685830759448772706143517533294072543234686438375342558034337866819170965356709123908840392583319674412889872478633727905495455701904607282681247638638268370918089819599618130096965552352894549323918530781109568269386616223687075680416163881883968617783524379949313867698378465476514183143044586459154941872848119545018935960899067851107007690774402534967450084300604304490924488840991911288084299097796830591023044797577508056352099365793255596428564569081089511369086891978828392827893249841046381367396768215905652378538530449602725619270605495787256174610581053201705528694662380297548171149698100262382867618981426707452968035909545323574471545012815285348435053874984262419127607370651343797858313208389206278606467346372371729279187613272220252806916954903968084334465833845917865665926515317385667703305278107697711845591020431406611498494436913250020476041983373278237546457513839505705895798175553310803322548343818900877578494995705064612122586605231045647938516535490216681858898159007683007549559375188656763154861938221316504992930261853101514551874077592293137839539529566742804803755125375128468133132757856768469712807895311352237921765857166502271677647101842301201012179763773018239092705510015721805006120916237106903331780880975011039236781048271977465809026482722615792069295085094990992697937209555151749790695387871742207400841670002534314318780225781043469063344221811445277049714767320518944715282084619855196153770394245030366824160842498629975220065588555567926424992721823358432536234531802379261311463633421094838844625347462130412175835427415341812955658251260168187158766482958303874927690523079443461129693075740115011302262210020729915946528090472360488091771736557024597269913728583451336280433268644650896840520578279296208606018419105672106279110199931238552674213016187134922725865933461997347014937620384234500907506077648306834805755481830074535364032405395077407016786526393829420047652159237397541391946805605683647008133370889706806254809872073871735630230053025673635188230025166987738850857633670130269972024765901445959106344611973935963490275173968275077952327770510189088667366400330362190502721060480555803048410750934364682483056743783033919050049258319086124241259243826915653128483541583392798498709379648687290639269268170051467109002355300476798163690115296589478862567086689039513303793713188738906784926497928949151781723692619131622574914698697517043525597737529310678478527382685112522688137945661767737438072393896442880625204036402466330305633771509404965894456899662715223537168643474631115035637988347939001533574727743369268234885384600073697763575314677215565614153693760232308561184153827381979478061920643185037484896716407373348083577255497324879646313288042944563525914962600199883951049418889472023655374270647142106833396471001321020674911122105777302342298618166337469974316591292886505174796852013009807975854169899854387760452889540236536179814906076255392325162648382023001492206549044503629500364936099046502380364369317167292681046794582618215860729733315219336529295536860993879570292760663733764966008850726919338201556731400027196741931045664188338212183267569144836030590709733787862112055017459793332424372181754885301971593171427854710096935186210436050703504514975283981717518139984050308840697412046221431807766033066605331000871516548523061521008445970311632809803033418212673970538534861030836574090329912056585906827621804385138923086626186905670677009059567980001914184723110613883252075626158670619895963505907176545207182717891965930069383815822187711807271306574361074294390841034821880297986155314733006273836199111651614327779277843071649038455898497089581791810365943307428425117735857064935197345931235808518440339680417349183552485452214121023988818865582912664051994137119922701034014677357157669800960416616169688109307102630497414350825392873886872242338563720672932169372250806143130685038284899454959670335083283568218412628295128296141821909176191796115956648184961848260157611628537273402280764283163385100038570760027679176925112781292031428848001331847890989048905106709989236265777841526061730304525158809736942999914043377246496359741280218863421203695928445643126675438823258816893652236922441244791905796314871753990673386240664289065697768016482595169559424590190800662141778998073268487855600583208465484533870637172856966935077256481491346621081732831079023595322215146603021665826469584501226367401404649183307874136625966584593973128574363055099095625687555459219672662746725457915146639367343285804277187853623829509418656625577588999858596126332512244537904004650093284159343319892478654726175603679224634063479928451897146030575965900453678835143522658426190710018852120410504549114703084903154947812727808710800668659867683278768256497524221610962283083959083676693027021438039924715498178043183598193981995116277803875245288270121224883621841818258250506530154097877224110185024752933311069990571576835900816492250338168792668097725864460609534608362898052936247494862136726390641638534522365689211244313865782351345308536544014802356620568644799618805222855761985745458890466617354803131604322605200542781555457815638090632096048431527811473146046208678212606141236241775871459463697291091727935473788853458648221454869909330411588424442265294989732284594205340425867513217654133476675819369317876434116885799623561243429671209042489117864917495687192940561875357225662679318108081720488838546028062520333033700950510944620851842547170347518009150685705387642998750948720436210675844750105992824607129879847396880054278601037677818520694627936870380744594012427489058878810176082601536936057549041131985482360994862444271565108667462639202906073052895078149673653649085466160910786550304846699479361422646780770770754455655713920336078605996081093243005953638933498963370601386485394843269787581936471912900119826312260419258576084240781180136445461849941770804838992604087667742958996683230961892609569994308882578247568290023963573647673895011635827935321161268085566256837532767053184439844908767785794278986906275675764813774277059878085876137620026206142574081772831138050584602959077485372166660754994451413777672660481338292363454155005526677260257640657633260418210180328136929852602258817434723004152631850325198812429227268201581018856500105022375325890882077429250633933597414736623389626355669736251426649101660560144978491326818791437420632652034103222457298864254677655346976348027762553656193219016869727405461441178803957349115718734396779711559527224235741700888427710360179831139950785574093763591827668727191990001998987725032463072995944201407065469842785320999055070883345114756502353764575971877467192947304329972461113549097189787066720557203688933789343763853241703474894852972122542278500042908160228810182322551793437552071279915522228674872083110275309422218967792963495842497901152850979697114024078474719351757244330366196442800847725443533508334593083825085904415028690622551033471748902818942780933659912681125082368792797919177940102007870054052815753333088980376987532826051035696877879090402594918140613734443875914347645733499495934235766591608004355605033523300183517221023031384661693464460459410428598488599799134366296218546602502702345249447540629323447727167909440114669146050231954684524690627886675301048632089387581656356086462337138720223178835641544864055373636497476340840707810511079527474867850595968848516702528425825478745141602426051926791201284299971118068588059728808791269398176096115890945889946246473386287382553532764987907966405810599579689255078297430752106937619792165720533674177006499087946676395050207580483052933674246521409152480752819801647985902314066238083673527913461520246040540612472419297943414787286362447725742891984898525801826398020338863936637691670786814629586462311515294066368732404049434699920381480490762739655748800624089985518728119932402165458737670714748388326431135766158341554243276568727920563092839023908650647387812480667116779953267780384478280746074510449081244331329683567078447749030416594183394714237215431739837692518545239586429467691487075548253267837605570004315604480446839953875775839026345468246968880275877793079378580194843553966917253281580298998940554793381527696857588345479128729603214196574922491277419883604999877717204959363830763017212088659036899090358300355589535056750078767031709464382233626282121032465057184223961681045337934653554225909600628369479287136588232009133606242491144167723999291583047678604316670259574469651127570385172228876805179276409309585437137301642676968990369142363950427189830332385708119229350742053286195247806246264259081137439591658837368301328967210770024194319577992843357741614148439882073404133071595003285822160250528528472809563834500578664693816288949629019577676670385279972903920699399962756595588644135865959792683369697229689750117004169494202300521616561605919939817842342199484400796052258524207489855600602046592756653653454960582037816054012996333962383939338810190254316377012445580635585962817484330386243473861001424067316426612350151114791451501874704561019774683073826055163679928863542790879590304254439767527887194615490969424355735237160173352425489967315406922261057279076611149638031196455679797483560373467472215679654543145368546046287835177479345232272218297206709228038600933217842870829623826128237961853378721256526135230143444393378400707887789672121859665959707578193797214786890744254053407543192517331083227226134077951955091506764010794594474074689682195899528075336420213069416826638066158818027300450820683411800364221825920732992364602222196639318626829676988431059275202339811895596465817360409656018999965647922952185243448325146708901093338983631136985752554922016057678533512222866602711175709696144270448729887055403097787168268885799503710621878770828775355760030491446013937567760184275669586197373015578589673898398243938255526693067587826833352982204110381056686886508704184727865966310389034313344518999227899866792276809688749071043397670217689205264008338639478130919896335218281901894686557181915058223625652411149659776674325517347606931250799672472512067201663675041238578940283492969386354733263219507672581274580509109604826509875349817737242065194539647594936783534189526451204572241404838643521011435983045614735464869189045337821949434267356033737947270616909219675363975608187408144349654501695473095211866529942606678871585814137588423688607730494393720088976095300716445094918721207908957688139083753142447331731606995604209815976959361960411367050600927073693227360455574169423378333092037999632633030277693395086446901466893963922549822244636377859336738294631364840604599545953662385274188961233539086284757108669936440918790365679637963956093574981978590667579173188154459192131672325241869085112436596607545265202329946624975972882376890251789551152347446253038442650457375872260710387170486194207257265083069110017379061696758464672379403211505600969107699106843781974859770219146319546097316905115907427780424243261360060117910304644816497770842804719813157670321010239273275689941742522468605634118409875052339154735496633331221951753730013759217331126184004895082848048698636762192820342166080757331298580912082103014379067913767365565188346013414579740681427165382281229763848048112759156828551109533781838633058602070586251816683040202981924207053721212836439056864522109734655232517203256319669616336407921382184821694447311773030255581292633973155696968009998708420081105097451622111338563135085296403087651656837981041689637777528645637536185373593015675190128968000472504740029644074709289314092549344393962982665860144093529685234943225757535538481623916776537359745717697497745822814783580501769153569116887625661942621077995196558374946342512026481591503704572171386273773089539043797589063473569110319123490034171590437940919962164036200175959320607065639652089335198753825541333926337659590520705051016227618530673812385007256315288181443844839519847665550817141030484590981202244643444143939814893288617486784187461879234789843462955391815714104579602574684437487578682576282549323394854197752753160340222338701448297651001045780778677528597764028687499930826432628133967171052971795308463016286621889824903225899370209617053369403594223792476272891387491162784659352358106893153817507419613673797788954502678451562111555012358060135234345468818149238722115283892396671432990603559685579553620115755639867742037666097473637349070823716791061208372736799138103973375558323180420005102193582442416969107516955510074077626432401312655914837294183432785264595686431082457693351025240196780066327079417915475102982556257561091711091209986474933306940681315537317005173737444686490005407555021822686337580547449711933401305776703897203081150215235688785611128093370610164690732737127899788947522463342574887883638998051653719177609560192589775704535917217777138267402940795715770979785450118495941207278293243459693307409803678112546231091506124174033025674571969134934237875611544261042316357133874353285542890752962325240909570292031929706066457096484257332913896949525903577195051601792839522832790882602162267857640846659924802105046747429383608123450040061917047334490208769639446931167024747130807366024051324104416922166382662744975278381709171559603312781671382542438223004964633058802091425832026191769550345495941512075361971724977900796352627411043388320917693924227529242989661949217924524754782236825773875370056360964952453187780917072490265557774095893578192827805335032674057392909054805261267217019064970285619730509500173226252693132267361147473944500287096624336598763371756610720992491291897224038064116032659433775414267613862472422613195747042037775274166864664558821323685126984673182150798808943392888706826259049887513574975980460352121948781440195629597433307990155255939499150446917574947271425727294214192639268655988095561150434532715326998782993582459337880628212042049994732914609282157856073397908979230335802028527792047830088142041021126656626749326591146098062637137592831903498979727639401183113209927381608979753455078257070525542849878544297369053724560828902652952731204399211861556170940356006302122411648460931791713193971199186667628464647392782551976812611368215831220626694792878296678830265122561449526053460168251192275508307402567004657911937446621445078829533862891980856036686863707986164731463201855199178936361617422531655929809253604620276169865428998007291401753180744425333027784419358942257167637020770903114181434916127065268126578997807469759877428803409081328280173345423511175971300804694350586099217950740807421347041912270256501025086663787193551342708933005489894042664314142331019538533340523931632146832230146213421705459442635178790425021242337384991677389715771044681774432292166262224933192940477285506664860903568692806486718834418182082399130827383468502535987585492460624354756504933557105670250512051724198562560052346010215945698388569027900255356352103121403247766633169230875670730013526109167565753383328405040029601708170978048341337189642703285743544738570605447890688656300533937346784120013565366541653696806101952602021540731410136813872285231343699355187690958278133018289687463171741175441789582919412956462741304944573071387771241371646300749974477613457189453867295845111097693098940265414576605712958474012239275783628750703490141571051353055883660680844982600542628193539737819885097501276086147025865831273282272078971449987192835596976479168315452055309093576130663322170234814358542735833208312127373387646700043946735342460513548581797987975432007785324299684824889388062266924717488017181821472453199406113438530430068741693172638080284382057359991404516111394493147718006084163347305343527693011548311541338642285051317969215553682397684983966393897377137201450615429174841050204280670294983814510572172576777708660046855962995924695552172367891763351007362250810888171589687919137630574083565752242293058207552198240978192555103619800489724990561037860471822156401240670768102493752175542796753141824068869586279482870196448530081261993948727771526687877111424418175379309223407022615745066140881044275219615932059662057837163193430730109051743626607269464235351819869557131740723814563579537314348093218100766731843371487909862972732101295779080305800137281408280588277289994667275327991798137407182636925522333384076084842306189412821532911522782396554742042609886093185481005148963316042632401573595730001584503850206133792920723958512258380284251653043066677504472248938272212510762512834225543659567981655799194800881482997750559053109897355867352875817014388759639217742559904890259544972093604171692919867874454943240852682365633403258692077188025613813261368075398460470875281712967332562998195935937675764232753532219080309945828943723389795174850152037347493618095172900989734583017240137581921772524638684022793519144741933274543572458903708027977513971493413682577991147342885557257835536156560219308845243683766547229388430852128643182639788508710044561071715621728396125559208335387993197210771533588991193393971334544118075862531670640253742005541278992345660762225239331856315785988929716017176666408980276581877455591273886644027536647778705092060211727697844053974719194142532838002943278129762813409972253947249154989727990763592163625008932246417561636879438688773495468625100128551555173389190350561895637416493403188333743034652086054871047185660583152227586472353211332281669945200743672607210838183523285906365101427882951668865080784519275424431679257205563613584310593376776396178809339876189628099925098160776615121031253886337355609130614007794883287985995169459723353841583266604393276358182230965822549284291698716893832539631767547864325075606284222522931994532663975144046446395243889201127129683022017682683366261312825615319465929324791944183159753764741544418693649125467341021552003542563940308719473649302655523888282496101647261800666109810135274123673298002421255953534219561527272736059507270690860230335984072530432739280468525898903121926467159663043002341287385003448583829884513952734287276745581245182723758016690924244175451977770395622899460884756166328584803499470112137714426194413211297279347667402748204422130185711537753649962571424937938338179864692927799414552145509393795415447709120868130872319989696324173747131388503541764506582279521031308237528498537393136891453995375372952012065488414646887690784732262641195137045147984019799428321874126303310971044770085767334131655522350339239135197781164473803352311519185122352328962518143121700255989605373410986168938188420211397900239846159705832649599531957789852375271275866658750664681394604119886127948067636384109495884143973419137619786613779650216193973721276542952655523251909453129828850155189721872726981324551028768127866342920834028386974742870608885527074727310905704010049014225994116481800554576803990484820788858035550007700999770258753534213591067715693318786403293612044288504407441453534277426506812995474026032773120992266795423603186635996995486529719418909028539204245560661983635961093327448282919105253952343605737149021278559663149187770144576745225173130708370876187068138417741972415884612261021594625210154751577797229999552610294825599468821394255086299883742425542233432563566636348624625613208364520318602564338240600229802765099343326494966744366804642350063411131263149904889179345221591232456977876547093231379228177248416322059588817176684724983907733205131148724895119688092651298726300501168499606305884430360353665777947647697031431744007379113802115448361707842683731072253254380870852856862722979958015665493401460548004201456119984366495448461399728621168309553806960452286464391166396310742786905568096600958679400917284511655965056026887877979104944905873640003603559058549058012081236752875765726905864279887404282194881140149079115662904713040734227194842470050017351959138221905598636930098401371061615417827060628343280013532848075445128529612517979052209734534220957905816435176015126128195236950121991388329531623770650122328830606596811418636626793062538751171234781056576456655248618640843651285941769252053309374075586942608877410231279933706578925489599080327528897107656936702606181374472011302115852300030632904817370214633280267607254958013728682141664638704255394605254322669699242387668237795910622876012628058521654953266185274200342117732798400850800552555301334919668966416407417946001185828288348818153450890482683612447240102466448958853533622858821004485193932959060350020857676317917381222635960652234151265858762448134372739667143227916786569125741369430209714157861112243828169432948104757745294480936909981155538226912908174229565050568195720698832670453618625693031839724228873341788098919504430510064408396541666059529882978234880537917536999139182261964127145011765935054230294184893395551418867836872747031836205353739431078833343885646775601409855829247164227703406150216343291781764535485103853045629437514088474175562340251153645453415924647431878936353299047771583980282067931778181537362244401883544487620854775503492421280954326389108612250301090200477136413036015129161356819920010943859891367617379263127527812124571620854956873306162520956724635247110506483778590681655930494471641427070019198860265310692790634082488769981030153264387754380616585152791100326105811382061932538458229597034231886250236128429463544456784109148093016946676519783122042634783826058539366213412272185506746796498411303715903777781026535973226489429777834841561428280034669271209395202391537938773463725909887602132615988555959033546536627379626043505668760512446709902279254508748245922888437218260663712823136466626660112756532109870944836270203118181355846015286639987436459902974704127749466224004443523498258310881921972363478489975920411045527200391063688917478232732900224583270657053680796876132417240430659291051669408006821381772282776242924173724476784641834557764991709888046789322417004641324230129634774074394137815548036326728305978104496222197828003766570313339137247448211551246335003012945758876182943147462292686641659368697832491680064356255851540387997133777787069803293336697284960189523277209234251089352480342832753915721944692029113890269081705773126337055095881959318966984260265228663967004426046724285092804438393029652673713841277610919038271785964720469760907087175879535641970608014573644839956770767284042904767195223273450593133940314769083442134585693741859053616863814697370394804298298241920054357157393064832167927448212012779859885364989255221909579068216867887049241942456529854512703256578894072469951997350583028416622593019688854330577708009615757446901823840923749859875511948700320835385484883705647498445407679337456182427220588814244657609142743680509105655803039258373603309744989504142262085289203863727482450562962457429577801182022917665769472875101322105466703022395070725040491782825826218582615281978779032745839055921799664559621568991050541950744013878167515827526817240211792781868316211430746158460005972869716802316291569373384163304387832876797259832663608701705971064420407810307744086802461572776870585617664194158272000674823321456953398347086707526673736712938140571442252179022564664023446988797487324598092026491354450530141666094233526821669550990152921487658889088389556472834583024942592848128869916746614920982928279612825576157193053749583699773428477418889909624677535830180103350525451569567899612822613231435119860134752456735791799636310914885801314013588597811486239453939049807537579824941892661820739320370122621078851209533217132791620331318583473765773448646636063213840480777568000278797937905322483304367259926911229013492064639676888810749848003740592439974684524999990236522804893096211516491372902695758210213017818758229811753250017592141789908640533724414856905667403770501747013015610929075149330528931214441813434446357550204379836015994946214628260743685025736375514994672432223400078249076067640978837610322216214001372911570439485586645062624846785108350396106442690515832573126254301458858903377486608953818205862661591917818737453725968313324278894431517946425396035640163550699465392486993745580521191775461263243272961166638652617483558055776611481504116718775422005283302103275093129035474029556707482292242926328758750249756262437150429143441347374869343232722607573638777896297853725484773801636935445810526369951919958828440049206337496298961464019036243213583128356130328119665151565269862349582086664942863407449508425486808622470552603579772654761517639305222892516607310088737669528961173027127986544047113783003987991615897468466732203580470267143282241752526721753450690983393507833273299044917485559772993914656527644359705810471978646940043426892622008431856900036411790796148175709537029889015886619152683971719273739815400019425724138025703026450958401680847233228524347079859011631339752909876164059263355204867366720371126867867715235005684196001829731319123103039145950904106010396284542483080909604205011978343378959315696276160961175383607219966923177323596276766165654277411702575319845363867204087862138202390732166486423144200777429718668835407101499620635567071489231941606155022350661834941713622845074829546635624867924456170557951546822116665373315654390663102847029797456967445749710200824254314670180659104206796295724892130364903339561434793052496895106772258515644579923106441286218258145911399857042733883328141528526805986302515331529246778412352572363301816156564539156131611186982228305624764956580143582298187777159301434124763130917150107184202681641060378075679449644816401437353689751796060295383763718153473917588059513621575936296411503430120219299006940407437774779934868397955833545842964771152789546497257123481068618920091737982010094219351421785956398428512850664019116580250961402525785139824096718668400393698247452542773269053453167731777637877772862642540579041309772074140525903223227326496294488429266043894804555066915281738608566931223517904663027711726067634269110553769683737714321842151048108104930396486304528923555556944771958211972578245649401305433450232933327405329018445877088012750744106231109417181316465108925805123336974118686572068002900170367768024051693034741197039960649364211956838316038019353438619642897595699312318889336004691261626236344198083348227734134766124025875144465275407477516686132574084839993004297133307759962550150120782710147996553555555399555238197989340536562503754820070318806011280668547492963048172781465652554873303466537691454632878839514720817484337283403667905353496401963132606157108373561697882634531264254246426325575019498920728830294751882365855151443995500058574125212956384322608694654034787303407022471948167882048186331583490012503443521250198800049601337573814804320477927516117558538556998377391753509136644930458727684254412831447288036822640362671545966247630989781933800239525993921051822285343065902151129626568911912305668935889924942348923878198063319339327901397258715374555977638863723546999839323717687701595687420046784741734235364610806421838785209181985814797037621616961495334749836888972512092678078827376165449973494630797564591687167989093080682723912735464991173888566487744698131646818842683647420544318832905284782588789880782626476564145201696202835078586377945240268430472792357674446328967090650337893638955798507559661724337917780679333890118976242528049994231902905642894884887227047658276305142910278549899927325508824081386102613315702359337598375590793053018012584486661420398658556221881963028734445628153933143743840405377458275550095456471346175412759279713299760863512998271676469213462017866043972692285640347981033257707285991074113581675147188619219202756734859564604363949640543170070534283119553266677076171966906943202023102268766557737557659290188594465377589227358427372686600429762830388300918251118593573136713237254075126287849257768000288825205893390569500526630253820012070907174896983682696704373018965414606596369926341806753561979781072345102030756989730306988363060164216861807437226777052472793322714098253764318643198537381184295570402174593660086885335950364078992686964729840151373075293466412856608187941048358063921435619208717573437019263299244295570997519651758325027719563886269036594135842847845731871410731115851226785387238062534671472632518842659981926340900580857291391047939221360260476291816374587680154468843271655982468785868725426477128074443895402679757672444010423325988998317597434486715591902619506509755277497525990943616506783435900797962141332449238250748325506885439938494919043368132497800145971113066163115981020838947157401409022459497295640204984429070109084255350391146091856663100802899010150707663229356883497224630281934748337654860078454572447322210144256935895559008263837615942283149178638395855878292286039639232745844635673620530933607960628990630280751934773319531186758383458418968090726299201491383655340458201477444235403867391851200816811846778939787464171354447802051327346570826725801068138350553149723467235375458586655127900882888654696423682586242879780039953773145738214990854064465508989838399371011607700881573454740757785249186901193022163831995100435879666150994844347902282844481727916343901000114126753155087754730757108519115611967335732881792764955065203948624268732187796842471887079068693064726171979903076385854452947452793448327620909393246892637544008260688883347539731478658830276245177093502260628934060691972554056215420264077099840648115873649828385402559074588519201742438612936663431516893077543570381755155473701840818946946753478316481799302894620638626468088083476432507536182917526101346738363407888207958093739767899220636439647945841653484387513459138186805784516079857547637905728458820048947063643902542227650487443890708642905136170067805525827638224614163346678730600199424038201701644559548013116034730126406209563022681585601988631635022205032441591617616380428252113935277883841541614128959966255043790378708921930204316133924104147847971667722718314048827163530731435463895009208402735120023594682774528374346951177006415961440774019400215105663921093955503217473513020567032981139063521950561697981134123016668009814322731772395692022658634841991101818251383814403682660392509310516810057741476637924765681900541622371641669300230900313538792313071713939566560373223779028843858739795200978331418957598130938960625072722283775166875687861405636443365383721454328880230974706622801151002671427185632552262852812643427540416125121818632682037494853431061711273709971248038152703412284941187771515998174007895482500073210701093956301050472826601050594526303593045382509578110031320612766117147263953237982948047522434823809859695791703983044305931210988084597435845145973650601646207920110585889340455263541907114480412084274511868121126807930732495844578317518624501414074267780116510519460668726777174632119857794187332947015602071796104629280412345905760774613185338528096152019395211007163178063974571304854298868271409948220956105523417316881399463498771005326870584102935630609878901441113334558737679160343108533742928285107551838497895191977533359424339081002119938415537618125009971606897158613225290426744199373633380706976019710838379755572399698041679434199961701371615988903732895989249883639942510682211510218442115024604354671799255899164779268091983225771073394413313127448843967520539111245212300015634014570181677178366708416821954507908175895804846490245839805749107172034570606454986274552852311895392093011020480435849980454460615467543820880938989719597826562979779551085680410938238015795696007839154779114990534589913719802795817636490229163029256796733732804823996343724810193135431146912353840971950950862205845561576481569960731407463161720682399402109490427079502869720934636224818374163796275659186840461753359276596622344582108096854175684237046684627160222436040655402011166961070353048738358697431173232909534723579889010188641093858913169872089529279679708977521473342907319587255223673115100121750171385290650783717543472290703245175479853505926376266187860029156211217259299316393590449326161830772224279399207633725254036119339442032181412714064124620387666457322182249610214621550086844736085275737814632728177551168717585528617522205045055307091235535846020901748429712086485166112776848833074725452750095265161929197775517959048476909938346912432346498234478037914134564895654811977619237712319329974187620889464875352677994458358785064290642038962513964034814117188674149638274332892287273317694724177708185375996650085704737838218682361321288411737209895001236463117868003577318957740707174039796731759070773561914115189840345129635777195670985393102785247927751990492391312556235733579668857565890507574741246785849111419394676472182994375491547449723106641393152819841206308716915085452842116717079343135888276246133806548291108826028554406188322662350225885707865207476359199149817497119672306229256685212232342162665491979482610066054637337370261409672056021697011905637193378991836395369985701647243764727393908333130895878802187699737209933781117982034806870151279714782680549082076886860792570527941499374595923274134647235085133838723025154458227948510434749121364580710165352043802428223285652334606632765196695776712506661769017606348257888967355971563564924016056487400958935888063795332308256413561808900645429671848496570368557163348531716816045200447914412127131266016569526533690697557036995612407761957890694877976585599650670743485298319857300927125237751721928046728041909620241040744687472640518247919760583476710866429704696500422728793030992807267002798129141218486469359634888520755462770008968941899623453009565728882786087823543031941843987941248366479197571366913119112618245359021232846986222731725141868860144798262685854766786760667276170898859192798348247753694053984382195347256289788411543720820742532612862599407267429578677544472804202100421329836860413846362218340109461609945920369023486713418132997303477498575168330390710741228752958046381431511179160471174782941952506399550382509702372786932741394763624154827574098307884478025318921691689488875080485042053385357747817411163577066095052943806405899725729703112123062098111814446507237834392601799011182157359816779360545724954824272854950027802620237552039876887303956888214121832891546642451156469953941464252085988886999787150146250982169295026666100340346554460243393097877020285284200726241046374089647514700464558464959750172205851065021753893124229307000417578942728760236818380545769733766965836796491871048102131533395125327460968766217427423318710585442818444909450102879881685551913991541181955373358695463542239765519466851757204379803249409747862639678876298943911607696367868685454668865476203562879974112430224794397890311869951907056166151427186682030892110513205357415479277084179551299426756196174038355240745985974629382454269708223625201742020147701095966071786410013885017695243545013170421436799712042286718030066957446500940229615927343129918774985319720645930869601223355265527493109596280925954821345861653314959821196971678955637067530505055182349012712398686890761342758014367806503927118247178873830730310484098610654511421846047413733094979558588476887158619885949598497625794658280712480869072167101898898670505055085288501712444611280012778234289630226075481219950548533172591506372926826124808906999473477563009350778817837914473484098771919232098962982746147549141846322134155062565317629584883559222222743603659436812952167341929489190741466035703638664744077158380396197009134155215820865279057229356088943452638936967559976676040819762384679422979541656645945686622525774383492992248649538565396420227175775238310781925787439335870418276853321709442973859799860969785890768765585292734588962545320475843116960883928182926954959251896920136246477716225124034747503721989548192008035152503440601985265912188139866450107851360930229492470327248895609783331276899497472068933786670419335557828914164871785158431573419578548090704527981645262687030874135957242337129565116267411568813713909934789840201577902303950190347237016626700866597513719492452013146496629161365947471232137448953336428857586192210555740965345383373219786426017408273235305049115220753631339036032830137530695902150663430143493378858600808095972515754500676446867678533604645437705020282130256462984894531876943001644521289166696065354220979845348296627766346915077710146484996967412654503368950050799340637051020875611591503887846335524142961783344296597990601181895053968247737222061148010257661374583264808032025637230832541494355994600190921764564776302880182029161265743690754860984520758342343929486116021519086374044792340528217862213287175058579885704544531750371711273436666042283652873982423030752181562009316038588684598967670190148973384654262196345226757944846095540695080615479438546383128345926537860141709078225678632326808483324797620401323410537842279989624808926897388058138766111718064747027647123211503916717619890672505778556261350995262460321428114383423445187803757938877960367263537055761663029757728127877778373127735505005934421271812545408571781165067764472990187613061943679865678775615030325511002266899162591277081552330378428519197805322033656497515894809730514160935455642454695858056251047476269568894793501763497520469455016164938614809519214340650833746033590722212547596014215493276418856196675277749981484853841675008765365842623863147074830539123846204953882284252335779605265998913244479443544808173318939448554156533238635862251143841763117146626297653969669233012875880069181135338161021715684673847524550441703270863255362022829480479915991141607355080023699575472118169592706013877596923174438928926801206863910298151204578410685283956707741161739552055840227656833457047524298378208303129424585614053888006616916865440138734051134351164639763792550494432556621644562503031369648013046877333898194191250186565161475999652109294138411206988448374758446395593011287992795069609195029320361365213620121266026054853896220264192976981559612269281292716585501239568617398926415874769761200238402776649876403360412869053836441529491746508204296578233586894406709731666383531499422765207027575248242458386073160062691466139695759640915177617588844996503990071257339059069896048130680313709977031509019191879602030380547407141624069019209479957755471205799458655187639183505832089404367308641514111825141827701244685618305725810082840542307567081304206514794053993389081403528732690462355443997293806945533304461523660251790077312711334468584870157741180559790433701414509809324190806288721924842170928444099456763970554596833444010911058223015297343329939035347494330506393747779714399454766120264176334095471542927408660857818735579375397873102518857851766308838862694270923337032315536608492132507323551383004850599027619524942791018403438457584381208564557472383670877900879498950432712989648030069778271647707764732215238541761705016326897706162782935081071420247963289265331075032296363768749164407013700171281914870882216438181513162236676139192429405088530614827855287581371823047342387698036629308722924577405827389135026959627371781498253295556322134717282663791125715764416137613544875773709878306722284860110266771663742407029538064042909056950494324802051593258037126897906578476081295694240916388338355491774364264356579005859654017495426951422217036214133253711598816923006308321024623150547643123573982428284462311493498449128714840440339910093985291446174042806427556639918931082425560524544370647110222404030755434241377207975019813758727953146237889817025801860429852534301575591202784504867381095706912101118169339516908977736750876533031802373502685377606021764768699749746271154728619970644124825397930923007035402353347196355246959559189448635467238408014446990538659869898372897661317738206179414153339941484661540526690383843136770673685018446663770069967562167185419638445353854005514731053146631056616603988757084517864313406998421508634924364835226287775180406739868352076019780727446773990118325646612806277861565520776480502704099455881801715183821770048786518987595833087764274050268433962461050591194918141436069153938666044496570458415200364404452379402978993221869330392399260501801488490293385476973051091712090341894189776630734164804848691380972511482457923352001390039371936937209592091392338011550180791972171273236840079626543856602847288301113359728282123615793065394680295064123634334195116299244261123204537283512256864876565624771237346585909857651513274935055720045782693917642610756682201469212036161151271605340029020618840453694675069165806235752131768344951758550822159265824282776092778035249991203454503566579688869094692892263121965846977325387668379490744153237191494511253933565320557495761146819337100529481747080783371109554195317120132014891560446982453139287186732779129524398859709498460329296707484306087433316878054833038732200196879301212188601771093422898662660076154421822157998762460360379382799157144778060879367381460363788017873910882095230866406884397231867479474062321583747845425544958251053819107727438974096052166505785643700639941652547287117601598145259897811377739734705313054195697910863761741702511978158626181404267281035468993393116783405126477211510314275290009536822389207068244956055084997594948862735705065035245270696854623682667860680069724975931610360729544079605399555839257570529950002703037753923022237047464978926451826040438356503858671146012272164760925875045363562822254426779499636521548443687328915917422407388323795127866019865615914913616001487784542452611627917967126648288981890858326191644252811927970625383672615943071670559984352623059236280958109947429507402601879923936969380049671319749249600165486190469283404442349535654657840977205571926023970662996831075144185483607442414743552849613043006810799683143433058818311976315121172300447487554813327397198675197437885049780045679600529503559866189503041587949616214454192602350024516802100730120832190579747340389283045179109575592080330826384772282313181475035988622987399808735985939730166764680182365834240584981676925914883706997986698403062842294952839390829866426390734717392241227524813470279422435321002108152288328551587209535846522793011575480191572260816460438549792823210236546373551437868836261345871449273216329055872371130472369049967535240625088512136955657198804211866157156132536247921486807801895709985722846597487840866267528022988944857726006625883266881754988550280834543219492570293794788188430459947401961744379123997430058426427797978912740754846651694018609320555356308202913759773398149885004321128014475740184298712980543301343698384550479870780569967410802778123891660419128148894886357368476501538698910099041047805227393797470048031805814912472571959825881518641677457061676923227076958438151838083984280176751653122772309214707486989744138007253887794310238522207441878996821331203228886757402051047987767991021274979289729883765435029333726486840165986045393648144325010735607593157732056471388983476796638645037679456635780697359734381903148660523510997155463750898772837364385262091389294849569033699683449100373328717288348694540884721358843615338541679840375536623236316986962236369680164912797667329724746143207168644672033299848325972745938020849342321526269323725720835725913343518713691794932926717358946786950704233412029914844599264975298979845550884812331622022096623810487782108536344159478470107834957679709628823999963577421678939188093866276762978164382474354584055684071034740285031398858232257777103631113564440930111950776798956928941087379064472568971880776074842028768390053537323309908841806601359955091834767628935117553887729335132862404944139379308447080782892922969343473806757647007036283178779324874482081204085684100711259473512780234028944064996299644221078007156074013302580799816293656509378418049392255816124259230275669273015189654306155146554586558258360220525314605639657036760824104684030995501960310150440570734465910851036558511202041354460537395914390488221303949184658258933800381047184957285474987237922487916413933770815441962255318722936747454101533475202308412773574809836352704678023994995057573720227056985566676072582939928168708490263976831521465364212925168779824968153295671904267787961107411039204618197289526988436446132165908905374505086828436518985901177115338643940479164951383772731868047647305437333175620796724424897731598119808716346089528717517397085882773117363609381130441877031422446602941968002717132458023927301992903205431188731585897704315130997459733097383105700879226200261143832923254692116062921838253623292097003822783571835237356873463861613206947525806785456794176629975564223906444938601678785002661346369698119060305096471067271469928167595549064802809822501042168025300756424296737736087941961435190531337852466500434396290234003869840506065095567589711377679730076630978086549621058688690032729143270846517066352503951397263917750860441918546079141847579654618694526489224028410227055584179882994909471440287678968584860549822355585746429130286763766622642737031230893273151740408034693219419522051733333888266443656118614530875272404744144136371315991536507595668139862530558729953235337459985049440308624033144799320892125804353944694959644102647557098805447221815137053835925988792652759815280685208149488926244713164364094620919343417029853301058616430056842167062087057485379575078746751518121104237013199744869682121507689700498914443456197552839057404380468702877312761472858482327416168249245313959924903205212489859494085458554953435544415677613060897988101792884382188588692688316008045726137180634580899343078974259438594790607067221676652237033520338826170201267888635089685905838035527710588472747398123907708496398440902165111814879052988789910062106022848095478677702006932561932029910389405143273686150910839653702938298817120325739087420829034673736801599636289136109939985183560291384727167083360972900286814971336290497105007561813534856847805381515972894026583764746521186548704468478562473879853335668035109364625758987068465253344529817018782104428212976829179399402071683693828731149937823904936094653688879276196793761874168170989264621883649054800741237443766560333277850687975984561825471481532064639149446050277754183641224891882570051235900724929755916278016220213649492202103259011143670737180832063272016873958862023053496990791020645287821145820506499817158506518240564899598322676348299420996528570901820725198577203924311332272718065655243538318045854952236905843467376408640092151350263268366251200138739500976933311244005924630119224469107455705463121682361606216323407535691070051710574138151911587204336982099461196099519378154442412779434582897932758806642984326375259506402697528442304434263805154009011247867086484593848766625507562721908114719119362951005775770641229078030173365290894839169701341839762522644605279223024857062075778534905342626007847435447271885519240853141658240779726260978359253273137934542603541394390149169148818247751092222268308463490788143290113884962594673505305174956546154747509403720763199530355502986090071023311142094096884657303673807464823062848966782198725394028130877660269651073074014810615031594249820352020103195248118084725182306026002154818979127006174137674469925324181903793006607197619362748232799767349501008577353065599702146232751522226671018959387816625572826884458347543511130891399325795496523701284058123801474914029061342940528962144944285522781159767467148205679708631440492082121506187202295652814179159494009743940287617570320602856743531270693592062577294316178133646949236485289567016308576373434455587602131378646577204644883094316205232824881291382025092887631345223907092541117888821324245612407437838873622515112410147460048050964570611377897231402183846899850321223301779801408729592741270229136558895674066876746599279550814268339504765822124387314652432752754820651150229622665934079518769110645518819322240368293144742492032420822687276613941885720775366932741202065936617742444939043449249601963048081269941742364961011028949816486193167032155109565222521125848621255171660531947771948878936823337341980573120013927331519989593950457604520460858659086968442238725501334642447262003971435984609488364258997816505655041113427466203310184368633084978449005637723906676145792473797517572322691898851142178946262535380377115137903360749822845345555783368569895148219475701532870971397861130698550513223846996499923929769810628891445722556195428150984410448223692825442973668665021350960854710996762163043804729259575321565797496732309686454683035687773178540484108227169297145807292050999499299854525935406339349077231356690593487027794098187584144046439811490150028773645587978805902022644757134587054727490783303897698035425420752373136172319714647017240794563362720818048929721996075668504722426059812915805673397313581295993444739027515768118072035363871987734942188850680698629094245964322769257865433884593916189701525915008522096762429334208765428263081585607972994543237277851991649137676310643849417312091824678242475474509270702799679824041790347368300757051637706860866932461637300609715926121510735450916532476462723886363097766605829419967957882064659631002073126941449672379743769335503279847603550271190325751603502743008746767746480676124721420915949831552242788843975335784996520648200172083767626266019268094538935022994752320127830255542274957295636238688818622434442033313130926058731656172179750140031820455721410601729800493410841710689322755674611377161075840484116514260381058606824017025540453462500504704748126289907276089276025396559307947536423719213369062525455833879020141397979853917277259764087922779231676154114102766767420569761390014117720797923150746814564610185598746678620126530975423129139584976616622188397708036782662559119738762003163729619331999444496495891107167785144929718604671335058748276303428754264573434260636876918219496460892915273641392215309354273155444980094102881783032138878959467582770896794358277759858923372238782575119190807939651509472642493492743266852501662262942754474510850978993880766836029812698333751072382609007153086167649613794645559470395435871594589333813220079081840159324614818237510657245888829386820550643114553082744244120341603220754086650863891065638345491757997216652334997625550873510675537128183952301852899543087052588838340768821589336620657559975978166657170881014665197170586395873675279447125244072402689982471213982140177582976320362525225187185549438237547403415351191355823391277431115747019877200758585054076484366104086809146135449651662349531331645196725989118456439453583025797467949466764193472804728101993843408764296962086725240711702067006279195776986605793550817530146823826291192678817908792195051586543269772561635056510191086769387884903613993749602462517381279797134235464621773302331575707815659526806113067659961209120699177565778450509565152299421910213870038661482141661235021559353917512175725965295752912295903338212770057321728324146866870120999522644515828365601148270003316497773647929198137667207335245793269606536712636395578232439802562222944576322562046988557356751811118580032010977982647470943630501701368004257601394551675440595066347683778977545386813846698077691968336739495667873614507192840627633782269523443382317264613207637756404588152284772240747130838067824374022659431809087956077587416724655969405610042563603825862059091646812873327091892867195320802983042627497154120294567573634753898703281232721484778308677806722295958759816723272402516165227884216175905732272341180527855750534287936702615411194153230237723522793541402081529164338177526574314465520825914921934075200500726387407712266426463750557953575272645748875481840175254953806832858620960062530388587006710345787760018230101808969171912952097324852312079469028177617500150263748813344350132989636101327647769933167167490590943151230007157450397237163705155638632896456060325962430859609009282771060278168328505153931073986292245613425672014274734395620113680258501800664705420876906589461410553760243062651354356318973152280787571848441594409893810318270437989640275192932960255752893874454546529983234507370342623611798925553506245545257734836958723778376520015976732487483535454608370129191110205783317465390417931841469692507277903144885416896809420569808850504651751848637521712849658478590219731267933028204693547562975651314236411893266398072302577302499557479646815043263664713914061228847948227428300151618406785041662659394036318223192596400366280599835144956624422559740558135167672374849530284151150702286258611626718640269091190558722076710401015584997014313709394472182444572108427002851802338221923569569545107038390601527101479950633054796632480778179464176942501343806710694436213131118857003165492079178385831926244019538522860688434961190861373955714074995704631659069650113642192703645250660250870757928485025416415172363285572904033598143512846529159753489237098374767865313187301843639791766029895220486402536240681722011270211698549473003872368891702243476902280207128112425348734625064920863544038800191379673049628834157146011573822654007066666518981926476953685367537411276708333784757134383524873311269263722449240332612027656795849296817706602710371746361566272533556474347181085455115960938499218563371493279993582184581056553098042429953436355672046675945194557345833347667444970706322038545094247221955359929793215760416932662401702777231716134417016417935590293496564174935048935020283730664485480011665924970340277925533037923109440714440823363974113697871363218797085716781174322842582651583097846176506127432627402326960167067080203703414577508273776493112775348447846318894667374619347276934523437937538494725297697336371036457566193805984593616515431460529474531329610802579581853180567147619530499563701342247207390337506217414402249809392757572963063503814000888092856619062388986677610008588564450162285898115427115710241972842218241360216072405629490859592409138386229223074999939781068235573636108237569259522396254652603751607623703162337449859420046550883081960158701449074750038914574075520672369542304808614930850100866899836389078992978010361157076189879791048478801305412342626595027936611221918352957047413637858098533131572653752847426810027333949291229420526394037071399637158679720782945608673796276070971662023621653462078490835109790909896205455228962390714648505853672777679261990433464993675773484580949425012507012507199186389313029698198010238577817590145340920954022017598489182305603944549856356441560894609512825427599958837090105280172149511903059888088803254210300045494150759937108046815382639584454928270514050529680647273853026291144902986520145732769827648291202680705971970758675851660913984332124855124408280677423263868303327012504451470918933397012361173589850864304393687671212589035737563169866188833850126232016284357506947500875498720831295485507107918672889187854686221714095848503508895128517882209126543538645670174872201414345061995561103195568892494473771366375336539656881330479888721078220708577607184483770803223148578208245176937137111457622725714821199142730668462717996886243964677330143755214894214303172876833577934465906123881818875432109610537331656459811238781736279475968993369328756839770449044441937153534169648091752332044759788418088227035339993417763657641665292277708134064686838190062958364791815858960718073374380659911397129434406025922863283709475228296480131571827440100377166109791235557709959436352345745108000671868761073980371174113923816617984622640681202047003111617354176585126297141683248213895413690580663904126546588272187989551311813626134253088457345315963884201953331616906708472139663214786209027260782771923703012651143283125710109180295336963533772732712745799915377281784472899453919959940261238182908269443070938312772692721510564521702684044718355247298938420820860325228254462857549074419941788988984819264614938011248251683672838297095613260838876360693766811212706518825771971000032736070408702001199831491898603262409548704861287188622170480598816748693535329211812729551158928197187940059795597578248786934639967783730041363366482823013743413502941297850163455639956611541074064527316989921125022264954847412938530518211036057353459832503044740761581679369507716446970508801002806258361231520957596668326100717480588298615811568116482161428534504335866712188390658075097977974779010308246120714346769045800472537443560505674282780960666775729817607179949285675661635770577229136568746633767789343801841804777091708574892997763023861532654419690446048686252898822573090766857967343371574220651991231604974895203834017213006160760008344501473217749943480572409289961302077884012827589701352439833942931466890348436376872342518215110385941755864143122409084460047587662513352465616659687553058589661349840538368621478055070516568776507471304090239612327551186611521448506918563892108472300324455165270640972203291854730024509335982070524689276778672868504389196759840494787497275134171040181799901796763537915237199309096453799240632753270129381744906339518044060556841501250958873033333370329805453207082434447822558765288949562578419041881802678080961935173062057068108680023630703251327620050925140608056571002013083427109611481805151398493536187444199497205640779725212363781542530499491041601410196517702133760333941412818373407325019348283054996967494316311823227891710779790218353418345175780885953577890873659866258082447832363428798721215964014063317470197033282536856289312936561940495295430459901722584931262293906893508620868372613400275327046793598595956378836419323713483219210415957887555251974659316638806859599241170614705161778054976995647659972940233510808503952295601559842513865665780410275429350416560606544032788578120559060233821702121518680017456360623133676912778487627817178388892006207782573743791433839797137143169041200574746211079844374527251231867102194274770892904219577640626494933097926560558504345988377130846635819384229787075296938245488888278322157289091798082256274141290139200220909855869540882501856186717343066476939767326099499693907993672181720512132648595899747710535909102496091914894295337601226963685527935334066720196111130542740561888343169950561625489288004992421735818380290420498662114918361619163959674887468188901568106323721033717372263429228914553657263448112011921909098063185711734692106895462516328743167362221050811889165656404051100675674243183411579284228394712204517449083470320009199382670148655195584627602016250796695423188741153566795511574961342140392127539535096470108288936033065527302287476524061543872372574207201097313777983834516487719748565746223458821863478669058869021267718670578098464189943098400778046911562914643744077970076942092686843886733150158090544680831646503320799454616028564084291715754849586016602288128744918530504836879941590508694574149869988254854583296009065598614277832285071082051331792277895578840075742325758212244577637377485703765514046088735941352392664798653279155051583293684066483550463940077225004624735243988261442981118708595031418861358740479560367168105328546333563658592097947270146231591025522934641848312398899175635394510690638918162057733178813322270600516349637197748886232519856943526378470055860837039011736085036686543852720467893729614274950892599976945318108418693439193431579998037603937627585998889743078719365735123480131252846772554558448860038505110653606761118296437801463253847231357292757264609978914107538408764007709595711765748230225411026649416217526425590127614201062137353425818543725821055076094214333704042813304734733358469236835203733436183439599556503907406970884480017348459379220289247776548158373949328863446028320489968979517771277856145949436344024288624249282940061347761661640682302432786288346252474353169530099117636311408931944388564787537025932391369722027602763590292804207471083452962654738270204128459579291925891791655962184883945333499560309552599571807040602094438687609522288532047829988049950408762887236131563390727977989781275039729574301985639737628761205248954429317657666076322602925168260433855242920081811105239036836780896460960991903165512124843257446358443554858575963617908409529588606385098303486430276614357438013593645475476535909573980056667401109980620734677713035591715581099832847694242941874451530691105500326801076973098946494234950153778577586640125346888626101955417498053908201931010426969453550218576810124121383363293391364122193658208487670946135247023637874750108730745458491660172192656525142744659817385628793757768186464127571791514973724660767926090121979985137102244918349160373250807008191441814796888141375658331890741448018977543627919807485449034175471854263623759823309715459313312226030160523456796262165659113561425084617866094068579371289963963132206526946518890991392238553275881538607100368384886158022361033325381279335051177771727753668694280194802225777988582068625767329946793409899084976924557383651545708369637721781812861184665725554915877786607663591572233548725949417862226380363410479539396436248315050388231381283432424839830627945873892915357884133698846871038392867982370262021148680588323366761744720262058108205970791742907265917724861304689473382699647006029550627394868871644223466254412188162758477998115174298659619145324668464818009886211917357567798474436208756852301944702687018272822611970959558780001346355510005135901042747580974035148302368464937020295410657886928222526754579735031641642842258138608047762065322980197697644566453281429134859487104844700274071085266322465092969549268196100547454592256265099208996353496102214050281067885038087619309296857830180340813993766080251198530317411010010240531590115006473554601296541112966393177643867253677009316300987108010009369129488071209486440002549939362809113829051812000429383406686945012066114384464031885668773245424896029443137582846324924050167521383037913794885221741754237141414477594994513111434281299359869219651701828297376196988574074454893259524883750966456196911141018367148226677221374010634967364073865440322937557726313668102892249897100214452851586109604147091771881095228355536726454367621821995283106877304462234608551580714030737092511511374297100265592664941939488264694263722126711106646911758730959791904709671531445897403406586823135640131681231809875413296810406812092788474930220346348860386023725818884437225724416585131108188059802546152635929290102602894544866533995212024463915749987827554650041073417571360105177676287705206790482133358057932757430850621828386768505611130419690079368835324072566651468837544913779263326144928157751447443813303024039897783594962355431586719296789050523002389615394718955697705871455076015327387218482663132653536077312576066503761915336196947827283613183685214629228414853231798898948703915650352149988103129397464342933371547548815087002995906256073512216872845236738783408735824364928662781227607183429805205290042709774908668832156734254554636146988140916600704916638839523332549578926705587186079827822787748477517204033424162897355705471249479021607972055034364211025553616647609067269869606380209890417713784867256781444759216428794137599241385445877979288022517345976229907147166036418945750832864291742204746494979207962796311634929892244748304357187966406782354398876301643488732175776618240351497219207824655792063583160088834055493308601043407109385153150463450104572147758714302079389139931864997646559545439838126356041359403820001195916624680904807770744015381748650425773070722189075093431033543273094944587859496015680186987159876899923860147804220851786507300576819212603708218436216223287164480728654148474125525728762307797680149674368143495096736734531984443787931082074213310579303383426004009939715122990365969953061668377300720568264632470697861681840349585330194988974799690906622851851298917130864290736517863864264055061403483127650582242222972439744599219776780214368658848345666273549697686662074239998171945972882728614713524124174340217354271572616747514128818736510403140869650646741744286281495719745774205056086591564084242737146879895450478600836736390616911445525073847819675552156593386022974124492607644801565239175907136362116925799601866440632468872182907000734606421631166713259593430871893600378377975481623927585976222460489302680128161198791666203205922566281228891455967511613246713053562217508827615272806659373872193908119020885738796974347656062715310385982178397612813613273830122959517992784268028992290650747630001783306739287098060009011947068955649906149335525540691852950081256352740920653776223168159466791830699726695754752617395912080191065301288242246196187460182065372114753244606455384744758291479199917946037807852096935765655480401508626486310527948550918010295720936413419295938858125258177951085525537442803519522776914824665011513024050815851133950535095246823000618123438328684424247309263791609549462217277335406799395238091008558187263912058870985254218542857998494889785649023031397061856422632450319611041783754974318416990226211012717125335737397497583320198712235995909465804672246481612155716138068239688748693335900358702869070128679577105552058880143756645086174409738942344548271965986963786106603803705208402969978095521014714944913217795208017715723960453441691862025866912556692277172832476437919819188264252375960482747748620283656084944736204048180696096874063484315500161899811184785988999525735766565486589358677082984086615209421297539101495852368987066706501102629103342389238418144599790632223416598777547012539878302110575594825441051428371194953959515977789376562668893374114667926679004033074390274409103329347092204607869121067740305230883968712177327326199342787007810812872395030722266438532207918369603753589488185255489728764985968968474395956223977476758665618600231960248189602543339833594896042786169507101640126531057320354181637982535013376723323006402752471249679911341322203453909142078021689356578362571428095970807222738972119901550040898285280390475991445254799518708006781164788249856161186683741810718559306295405976592196677078366045313411711633538669070324608527662383425684975040840604810240751471196094801349464168859168121507803410633763132095400075984795475117615238820502338641803376746316254589804163521451075382865475754479916506777523104006630976311027789698267132330359625155475748305574948498925798204707612195120787277650970086595697937776148759177571593589713919686633393458594569037952734002216729417378946302879476492654696338042760037290255991899081381706870394376856503565652964735395336737211504189334900830953776200311724998945190693519877052319915434153594284209982372616434543298708194185652664656307687841251527414320588667012819909286983664347893169120577811267981900419145329496046364172685231091292312852070629917731971539488810374245165631583063940817415999277703904946651100899909144885404619878329726198950338410583961620631969814892551969191314789879073086080529693069300970585071334591355218027822108352795200254858740200789139933451967228444104204382066116794095556511262762870072704196816739226841126388238461067837568190196890925982475531322663044475609213544048087085360576835222843510288001117475377893215007671491746769510469736113027233364885025960835763946318032383235597556031209116161905535932740470544379355865051460085158080594603319786706370195246620390818063909013901622842673535098597060822070351046124670730473289487530635922609396032674581503181348432894419045230744868413457238017502811013445671091675442630209036393382138927714805954148840503074090313891504809760150273364012415631584559538671618084906748479943627518314940716204556924128895883453373479325830872024821696357433596327029612871218573251336933784409380733931242990306943252997362219321560933277297117829480175010448765258422279080512819195518108712578629969570158667970741427446701673467748305452533352824389412738763126262956198488316554112061213403066131673278516539304097981967018321314976858046613383117934253516686762450751485391596664051084400973421802457602236278605648616684912162894892001947242430807068536256078086846031619839182199153427114611797233311180631010328007127059425410095743735220161349844659296737240480761480293771114857364750037331065478402283430404336288673743789976378216781022400728242088847925258358706103629027876996623253006068525518054374449857194354651984573282961929401634220510650554070541603267324634306614051825445034400053743840239612915760129710174635187400330594530899134968554238679012050375153424068593904179553783506980204931203751051681471464210404599023368142028945244556947392800615550004993711761576846300405642144103566367288494406175992562536205507942682489282045918037103097154315518562963913410888486285017569275308235540182340253463269216053552888877145125606177876105691413729047382166479068030565151438848543724476019836671919257160552572528628692683900301941874419010344376296206084458693858049489880355923716447314907811675259215910791091879067645216174309781510577960715584579677058669395417246378807368676477767510131225097232053758365094984170554383405051377422674390465789252380119933597765919137473791684280281139371730874956298061095039242951033195748267079878547939080733356980633011137329098025048467961297606181261471612725480748854996254395112756432922857184319800804650346244474121094387583648550759199798083407502220130797933800924523033193856661529585894792462004125142497050886947685634454975409213661164484553419440780937185423379236831337369138425842642199576312707907471936527436160877935462164824344974004496014017993335715626202475835304299353587441137957388434281562973606224538453106476718260904074123507452369406630929013045812702142793223347818755843538234708899187165841578694652557929568175442446726079503129739154470876285254840502690963711540512344029102432784007323376598990484674912360329828294368193922629702340509624411816259259276081451046680145752656404434538445098130920298008616267532693321424596241187042473559150735279805511245381363643912750000413736537774011044983165499686690525710498180505564554552656116463593698016851024422027960246783170777623494193392266901960737361191171467949392103009292646782896060529803335492694872921977018868164313819674850930841937867236184569368557660899288858666205295519942732546150554045844278115381828973833541418908633995331242729866554819785837154145896168131125429915246801888338127734837319300534802787077140575988765699128590312608314894829465314301911926675553434474981872668009463008934005648640938112728770360692526125716463193507644050454294270458579753638831411206077568199422918146956655667700900458307116184180670192176956132329546301930357588695878149183338414979308975214624719036649180701111230919131922881056034299927034476081183086369265632916871861405411881225963424961227260557971497310212528542572560295492707416513706163211705272123601358403077276591825743674648439410867966631935676666611441712895161515398760866563052098779031220796586967256047966822760283372369678455115971516336380860816401984850761162071735418898144624848837729381421445180539630172005831643455735880374435068638163781924504585072510974663023044496240932372806755790148074131202669357435334083124009390317046597220539747542122649969311879725077206853503468979438634048639722780495695824517532562857875953885440994395458197553337993957274689704854085448845438354506847891159736097099477025001036921275179680618026336878185986621666151433886418610533979257144132619886216033667212646155883653142100433434557680211307825570871060555092699896148333554842136883955494812547981758986965484675247827796242179994893672189551072613095562449256889459085298364580138145595890349609396087482689221051165208119544855345775359477042707362891934781009148909599602410818919463996099300428361590541080209379826281263538776113051335570234283996317440778228156924911801224623587688551260719024638596571979255711568932256427239148150614732471264651569348966215945375568980248581957319992097516801183831317104926088046114653486820850774470549381001848607613984782259965309344934307229267390189273802175896327494938788183443243174455497042072035305129747378959300687166214711299701829664070752049481211443831920107808672910795473258615802593936380814044625321330354385194856328889933520140552027251283145274242582546988491870829502526987269338684243671719415423180557743851896904144548275946412627084946919307617189921105567008502557511927951432271405297673436049623400765654490406329605154720449735456832534729558711360085297700748120829344653372129076342297132422187678618133685980192195810214612963790540517060614518874853748678590783042319686572249489285003717804177160898791504375493827533430908393397620489602112352642049762141845399986826299961061794197513847006757126521352345923266064633889503359337292107439835018532933399355249420442281293817685870410961628466427952359797596492054770592656508403934263832730016488136214735703617906074848117411297505921387689463463731260748302802530280999423623993869820174784275922653617162904012581439978314861142344848005431102093975278390510812382025962328432573295938774166655857538930482915577416079832512697704012913495835102532042404060427020905998756347774052158592379049852701279789961586712238630745882021042260068872531526986781731090972540435816022363428449928534879918311269036332306113969171469732245967147095258604059334385810213924167745483287634512116259852008903862643372683263421275142141397795214754759806375050754855074854805686835256225194538212626498103827793637123320393114900015511964009548917965662707112372511715510940968823690079969929939198374853721337473476244056139070675450530980230082925655630243577443743814537687720269919450326017168799040117946098143046309271210094575704780672650601959436706801819763528627943369725326754291627835318736120464484680616158781695380024881605855002408310098078752622598533695244291079048812104594801189981257891204911795395892180559948593890271344981560883188344698457046568171968354995540024278998261628898883207118540693171700753978157777286359708438859136367574988444546882484968232743904918802069043341427792942504115763729418844683785495942650429873798029755615879356935821789115304174703507210219115049900091093304175071982470462242631932197373229916110748531296091434722474197352628252687684071724611481777049339738927787777897866534788473842366172178565775370244121969812926999589134227477071137232600948403080310922941894265007432206449709396460060364494125196467145986717298002284704413194627005922584091918595276971932964260089101886438597199900088712879536578514547562141817890297780125246483968836950215793207758771307324221243623450899423071006554845581613389476546278387488334365364204034852956391245228630987518945988240376412789596743941351405830174106590848061956209985107319959173650928177254272790784209829673597192297693504283580561226121861444316129536315159024663031210153655958442440517267678337254792880364209150462473973151499369935723207970008412080170333162728921432255800579270356387231076166713768623799335498279909218376634262646931796533408359770026086151486526149377675685960134480561105501534464755339161240012555262947153993027060935458349904764917180444421085912865167081821670114488547558741936631348790743140868130809311469642379189284532281966125185156180672961988464173138568363572386088281984447126104944991842225593871896412379642035530890812576480965327491981080143318644005412736775787665155823917541631752922255239308022658835426102936172758265584143765894165422733541979384228894691475615379071919412844342214410188198219765211281323547149192727420803900816848931420038780132130522228028258960194591536234346479118563288556997840533565663951997215816562685241530867049225841470463655301246131909939593723381331190965128475422693497811325743376178507589756233217574844578525179825068869935645698043432541223240095228615813489120085964636035949576600268601431755722071073194986613334487933800433539176495569002208072933839252632452052814380994545665886092109580485158882275062857659081223033111433028098748082825288576985302710348739816545430574052678053922808873747773778429304532836210194176219154342216056121800413456226248854480368644769819766692114576581828253615264305116569417221582676350752134339400026053687759615794359362238263859306509646724960590217046149306469216069113782011242900284645523681894897838628872346672661205825424802255925097247696755618173350844713090233125434834976052861488283876484743619348730458591881128066043658316479085985664325596635623921324512159244956596168294095063715762594949956784096179439405458265426964091529985984815326085959614273498482090099077376397148244697791868424188884502929694038947850864076202069393352994986298480125549218762425737151689572480301028547669694246911024056029531596748180875628682766543722676842154601058667035288323793499920331089678894633265922865652231805517526736517485122825244131590973208270972018923858150632868779611683414904917022904201341959177227453925461596714592535708093062678271511019981100632036843948294560021210523593872773703595736091029767320314568008066766536081340512210897260252306563289547536732245803378848498232133111230760037605662703084022314275078258980037889162012992888269699184455353783153712054354676878683439288136681968450213455341913525631456330609411710447029477395573643336428552788200185539496030075168383232917561956427602308328567963584305088538162726884311043705582478650427093679331901062990732840055196410950035801098670252716967566754295824278521036495116231207384683424577867613940850611812081834149639934255169379849853793294197541690323284799818689277589361468137653054290762164672249224163494023725400659634002843530847047317205695036628586098730586521874480538370588058900573527712403906603116206975813341393309363640334951205469915978840758479082397483654172334119927012292386383177450679157712774826255966035123111490864258300804519484564712102167854982114371637509608694953301099534613521370491557930492038170284308756008461898718544380518685498366091146362485173794728848268516660618885732690842018325261180928640904188764337574239058760984078611660493402490819390256118470373176930722346088600165167139830648149858960155140691384722002627350139442057906349437181394049647194878550313818932916587752115355559707041484778212514894655113714941206579043891850039591000262057189974876396123023681636455180054308471504333864436458957076970479392106704984011496389541575716048947230516696569076186007672598554766426026744619447414654005870767969103344923333046298843771348930304463698398422407141109644448436108031863600357710833828578605754162051653741271662982487427237527117745972097490861279434535738481087344702171003878394815294956471200897585777790406984267191593616641418595197224485706638437522172244784622091153274382737782024092505401764510073211085688616738952170212964200264272157424122830506115954070944096090989699655089121738950879372737692975784118041334329751005999149126913495411361821184310450706356359329712885237839598401099765307320012130906272137233702093985482650091625682745351207624659979064274163919933806200703518532380499243218201591289626966382714126720091586255125131958357736670891316680256551046350185296522269545286618954114384096678984236320808202292275313171603086187337734446773215226502389440524855392749946045563280692566973777164310330816212808820560387597911754859402095910732221660664802027153873547165150679172823424813048107717214317296213100511840690231043436406948893639286153495468180745423278595307239712796730504273964886653077331204563494309792687373241624746613765038227441237450226325969852520837911335040878666742204396394290980155334527897905592307125469549035635210670965597298013438683197442301087834167352277225490953385312972725974357364036191596860615984787932057150962144496463878380210830243388174868188112637788212943491293745561882905277813473651066612554574274149440721570662201054762369146886854011221495077230646304418436621622453497665805680370566068583491820521441058232259805419803306185292945251486320829459731781591517533473380067059671841085942282321778343096915607268338843204282321265481582695177654525591281219563000675645134181937611909470478198729091045237967611823206360636968494630960907056674797813595990959262991157321530421166407425407048823616979544889199616246845485519252377061103655201045406077134866114672267115193657530432631579433743239437327624982586550311515983774941099650116521696175660525496523089742277569509163778800313486113197748688190172540972062619098934306149346365716178400057431114177896969030327559410108953115946986009403235293991253651961058177058687673935513557508287450704850879233236795608047801894075811165199841985632720146515778376730736997858220920559731217143059380550079311133251688181869038588106028395736666348364180894823258879489210587527801461301808345486520488867749122065817446865517808274672600719675020706299106975142331341403116891506391720259355913808135366729074864917981649566302211871852272090862356251212210292107314222226634181648752784800353699683727255900901937531940635523545182076231444234840726981206904270668719309759074080868910092456429986687639553324117110620553487289411197384105119144050135067728565905037380389323231279976447270890401968070410500585530164606730693889857166601682776788701396583984809058928443795673718636341733057074276673880742269892633924178602900506950223187541297966323653980270056538691404191344482633347135339422622400078766637534283379890495337090730620112453110671243849645567875969929305455799642292178565377608993215142791889163685408079649631708618123783329374917143454155078861929380573693316051091243548534509859895554857026799635627339952226674336247097535001388697812319074094609913668230331905338623386794501305470270326411942695276156457735767916872143190403871636386289746067755958682505759422880043862090168175513413414655578794191934254862436236771504430273478816454554394428688315995870627067216220935195604050497677622196837929015749251140136437569650615286350232182291583262245964787867071079516934963099400326844380642898189150115893382910941456470790272309453447223985047397227327211724534074150970193336214428198173269868041532916015298958545447315149540982175480697411069649244058322108672352266455279194225124902678239491819151841584892616062675978316559070438841147432632355224606672222433940122996016558919884248421873405760588567328709732285383717119859736225681818834191457547396319679814564732765040457840965602870254384510490756648586179080404982452917170514258711623073797362597114296751345595917607758233089167811566685842581325238270912099499143094875800272719497663164742626002716377400418028575362447555807753485981036234300569822018862778901787019002099295159589449750190788937290661859274757234193488545608458234829436257808282455322937245262264935454306800021878833130095080853235494773107225622559985474596086829976418604060087257363620958879174855568723735987110420573504939792460689955450946133258126724270473119361946891878635646193271319283225889760175333168523280929888921563610515633400848351692129071410808562035768750965036070044128767113770945489573712231876511550883465612551281089113604359207180101987929574685414815796654207805106122187262546128108379252088843090594581047734742038731120769775841687302450223049038259089573848508303027129327572743830862746313587583833573275261231575745934052338902852791062953568585661724003798254072148527510010842770287183208402995274538199935942183304811264213201606261935524954259782637349689966623108211277787979785405707951734636304122794202842504991640987512142062825987974449255413457399591788070879028467555954110741361369117947751466260447920973269753945465205340168153461929791791619992336194429441385937269433230304711238809530504658465155358972143037380676440096481218167547817384600076857991542049726621831828102850082555518156735098530967530632416243685345728260831807452046515800074738512127840612723594444318850921795844053250300460256483483985044758776127173737941746837260830569342599509901510758543751945200056571025982409976690744224316612270274169047028175362334263120569524098988865270914254205594675728106064769601693909576250262195578831335071375408604288355429968333469816325796309971184534977537744229186261974149714342689092748351825371623965166952106172960128688980180037454960275576457569097942079245973432714815808127017772423577891397651229200435178604726840377091307482400474867758531288318939573896595279882156919397931641584168945128717516671944838319222945929023765717165639353042122593536802625611772394562778107327969917750165130817067856790115318179514941571353130316690708429883992318842881310556837986901284277715410583421825587158446108560082363765907090103633824367379397925710293601666983181122888112472755098426777611985846580068147719284728598268669456690402566753038613841520620679469025851717735921030283698940843312470421439030307140642329321405788592716565728462579997122979731204304777607072996401555372465459870968253766196466904846598689536396261213130138846324508241683953914389141354392960632671423088818296827264924003851988043636464082140416232232403586558100175148485237175072039433733867292609803329427476957559785823361565856572028706313095199482179844162348802067003582133545059178639598195677215820544502375162173674317377883607796088971546807155516970079935789475666836199189536807680382613269255633454227380816205275217307531844499039162111393693110398215220694193151729081683726004176906102754531732730142696781432990708447698026257784583163832185849215177713102895067764215479881535187283122163244934038380176817083526875672700972661133416022700790098267252444419366575501996782471837586231854137081093655642280911782606189506418491749525794522643811340709464524610844375825377220027980578976322309400667836901713887823361976147580563043753478706684956543193681756244960798033250842132302520135823328323997097300316388389350537335659712687146844635538065114914500685451291618811234329794148222142763373490485587889303858009318289800558976617697330284750548121682282677862595564949417880837353978930903594405789658254189438341257463295698170293281533120854177219469415918812528330252982456093710288042987320473376514966413115934756636746289588983358377369264818684062815384956214899566429218928619221512037203588539835193246265250348091809227079154451224356435654211229479454588042942054178276181111491889547846361935466455995365016907385886900168493682134909017766104759021929016447302416876870404507261506268265511892909824622000106223083831819143078481127015873101014263518026377316589849992013414014853629104847410822108661251829763231935410100786855956943717513607258952517913198336867000537805384782066620170511489421018017129116643331517621100400972530335522312305507153764458133155587149099874808063860419433591830129555483445631328861053996039683809704896229711883026436869262525992195930464888971735917961805857668119962687122230329197462314058954290051276402007652805772112774786540137790538087323357370216611188643814372995488705315693263570399362596711022266024940849921874091443611494556138466884849768573850337612656058915213681648121285623797023892426095868883108452498540514940037741335251136801665844004333593894738676655101995103954164647155575637049014740810234787617646477216773533234921841828721631561057215008804710621166962968139162820996502295837414623721276492785635507688428215196499803287304816105202726725240121915148622416245245683314188172111415472183576081119849272042345826272409019659608857553818038347407824083665674367861736598553421380260866731057803929075174622603610446757353587418026900880068079324068682711254203766956233159218720731013803579168886178734239306098488214886944268939908395025662349772389894135070867659431839986353243311932630924867679718188518540334964030324683106225370183630781388859331748077207837516798193581306330755374299138507525635763320668465518763647648866691684757482566662911347191514452232808517640276064303252874096571200812402499079511432695834204127516541080399117145816875340779493720882784460612568039829551402596932356560901808543846003232823780322811880466923405642798752577974890599731621472308855838459948428627853787070919763080959791847075250312841117831295359506448549452834087404341343811434524931405452909259689979732458964637345960047990232697665663318394222300846457459069403085026011424013903737097148938669708057359388083096774085916327920406304201256165970138046743686884512185345835981615659739981249618359814832914087554402156861971914086318586528274763052084000480274878780805847101307528783605009077727463845694438801691926429659699556679781659206792938613724821481125973583791200489644014377830209648808698932747890038735565527807028079002411332241440033546282681986641896742391990801242110246278262780474103188646024555498821849836610831804728721743792236454736345130713347166206034564733687656606552515620198056488302078858989562090419454342218733115429577809433960696801240975622925901267703999652817267270284531365305874313163661673802344849386275110558255854090479717309778866958787504369256730443618917410082512116344248269314148481867302925417480906056901691498352547286645370067582191604768674715965309950539594704761590161365369514323058103144857895502121130706816027172469095576665605303820697845546613171245064842767505052146156645876412734996965220193932589702547942981497946435508797322181360874216808815588354707127514336100781076819505730218484564249829944544014300408703191563708885865137419792282074109123043543957110887329759987503213428363675785083131203018362877315542827248308084885470043496886370176051769736556678224319465698713463332015302357889774594577373549693207074974340867745703585722627710172090857104827677164487563194028011321393367052413567111877640306603889523011443503951565431382449792553720315693492720185001854329203372439173394329067939294708379164785840506786899518264812301434749776126860885731273103721100356421083827838263341245193804791078292612942134431116557483125566700414610934814606077406600548782060969610168811234923650873322151239255130372111928899251903209000782214467804875164293723486074603404612261225219361657175505805856173180180404694346295741926859236665926005597740055155601035567862609534043974740628027658434698222646886870225975270837752547284272084594223374723370547215376301056958935382118937565343918695165916972385206015739608742704832988349363211837300066324501156431810960935643844363187254413480148615770592323062514724893781512753117376202647296372977284154931991109148849500513632182067743931670444700010551615490102467389945453005570607679989807788926163598259808267702311512215655635130547090841149741283393453233061175441551114858312847505083716490724012823049708116013794785192348672435691238619425944149866468893408068453697135285215951905491599083855229950682380399765970784626193051980247672223286995343509002471112423602625490937395893684081369210091147521385338541436048020982063396432803623785503057278202192746685755577661763112331770448669522744376638001618738099259169415182860294637907764333814388479246511416013034569711427281427881806362399409966154719430380464131386055616189065171325524772280375950171736215240628283982260772631227595954966483623419395202995838333255068354090141589239710093346435823793024786385428345981922670406072121449761163004297274946250971026148347277125653617955060764228635960765689071836678092616618264326396505985661796949875638071546661600540290302610352531529337339262140790984434005925627222081165769922791261792086464438138621091545383545337020185471390183649117738106313963207487316482672933089572058332615704726685381592175052400515811711803473768211243023921310454423874575856128511479827281935714861097584798585811152577715163755656862880548997907328813848837455825110035168921223417104561894393172958603781126100807891483445468683617373452570267928933505937916379969569013368791718593418146364010111905248887287685941424170495607290689335471253877423596965158342451003407905964799991911561390564844902102958885564714790025416502629362186155723889705842210846854351986341035325483233367517309995116609139368259460700695273705149447692872822928406371102913450741372458645731317500331004313688346283389350349991457012815324873466732580273536392417747665813540279153177525615412900041812678778084480285554904416912112970558064967284246240994355508948913245292977297716254580703648027352118295248431195971579727852798613757503377069594100007377626659741548284808617314881174936655571028294787914578395743736980665278530896196760052606253849744000769112644351430674498548503506626072465277699750606629790974519124502529896376915341471305138926101698880252114406757620152566325713445013034025623530608868083858900687815465363242535985668589500913779510976268727465162421065671081732651168620438997812258173758822225825625142328739252551554666495005714738122139037682833431348342888612913040868172387617274760533887305330825288874365227379456284435353652097742223894226243625994810194970128465237433124984634063094208470848668741410360420147845895485133824164957762676779877107114249423568386793354932183062115423148544271918018964960849797175357216062757261333631043194403250042281707429948237628476109006373979338586474553824754036679777269732163731361122368873281405401339191412041307849394324862421833347229566032398313522719391181603910481303220400657403984164077716374413540538177976613081655873304979926703112261681038887272628024172262186889303038161742795212821331612445121866706484989149062033267341278453010408186139368464883781161228220822675563720644836340753801563499764290520016123594534824579108710855420916255215870679033086914930579905116452236820175853586167804834741507502924060914861494995641232285034799412733973567111790962904790628177360035580566309784965220940886851384117938006230136767083664928584315909924529776041207948326541836664302098311337830684491906475538476996457965321164645355285458444012919174748951835634039285315070893680399468985354278452949809774733169294502774490869462568063114982140099810125643250168313605398201080607106402283442975108118536770052216211775659205375369498901103593546902267382585624440334651613589544237333982313106732430401176527322543500247463341452702825288741626863944021807691744803334834870099440605711129103466231402879813247496661518973007913513677163628793229482087486840757174614986973652366188000115052970461778374028809999181373758724438894254354056946135339775129351737007769780074648967171794924931805137482207851304770416621846969987824896277087837030497018006431869475745772929763128046104444104204350640030640308308926655954561066122012836945140908075162613387358557222460389616571051805204784584016241900162889365375874743329306986207182062269223643953199180826611959743120157436308666733635854920198032134773009533358514351529663238796728595612365768738200952966861391082125914338195079072403500580548611040571604190021444888711299549918708418515602422718425739445509962453254367122300525014608488452152909577592492991093869339729394042899829618771504351110047492346893210218922161453188422021877563352815500176775241838208252628248068617136544117071434810587737848999995186704147069055829789214670365175358925985338484698323998148476124693959639030662000051580340117985263615929058115375215295088802283641973456056624841392974969004518364797287336141684943237789651441746261828122200917409007308758130242664960354186761005472495487909746115740013789251429420834612916186955056299932296079403550015942822745343931327468886319325354696399378637373565328826963395966687640146160257377551507792815089686410245915774729974063312698931970613394367622352804344294067286560494743439601947530097961035086343641752735578423759036079611946243859123448229783771110562706559579811292391013511915977245535740091921430553722793375773643884901568188245915689212896901102000520076060961678273055925721376109964687125435234239880159033239508850383938449841107668053930632490287807560523288101079416985613082837853296840363993622098908937530312698869872119750789098637482428837900445501078623489605606950105888427758297307987980545431637008656394845192077706895438155509340460313973883386924132629330887532910307465359029130732005275501976990840557982442104896380004686331505143591465278157577649770270708355450893518174718546186000384424332881804004246527470248270248238761634678182626571267114920731310021865746420193979755199389230061670994129121822298377906433481076995614128383989269577579181417920814962833293259152396405717102542377203116764233109705583377363036412575354558734821834729958496659449124583207471048429189088833288871008311106604194757393819481437833020665976927497017035924184951791658466023429719799875588998253586547639921710588174740476022737667759055401467520527219154882390528765161652244324483856241529943347298309349765381787137007317511466692453805135613930170652496018449133558064422099150188514815404552349724928753271201875841846968033427332148073744794602604511241621723540924289471742338476720983199208429202920283521226486067876187511227735689847801759632867851334154194680966803134858265225090800545419812349937669134269301795694663030130740493448873035745477419493410446242044517290410431755177630044380931549475455345884544775896421377922577091019398030248022958150637518965042227585551574677631282446190954302013313327970917874398747500555812753423740853618234396979615764115891961293141974001848329517432018467254566986370012228203666572024356798664383288525465695757216639190396930425886331305878510997367353789389729972738057992016167747499272394035454407280615477825451509070034525169186023653401227893609403443402327647734647823223545911082565178707505672605592122494692383237520254095694002417421554897198412880767953871241033512275956820934146770415647671914617486871956721815422396985210202528968707561205055456122991960347411205471239676959501047224042860554507623974711173945255420893289893139148552745246581304912138935042703110015777795500781787653454853151751535647730194670543209655857807191197671809184436992579110566255395570190157855084605737035270785450832310888714457312325110418445745049422353159083920345820460678981470325729529787111490607510345561033734339148536170453759821263162931424913032702403230244440472921621780428403674158648910731709737695247043588807663194206505359598035205066522334162891884373408980562505147824780804460452121978307756842196479078643017832197187566603183957131292623028774820874832323247721573320880009043005490929121985817670981074428806235961297191019622125981550547922337822805227203968603441866668169224058105385328118323700598941356725711008919903059321535165224819648544665421158178210336470821294908743998013652872496594514768175789033210222648580504226724259570424746517344047899588565119583947414366539513266265059535674020918592551286835568730491325071491721705044475144029155518825574027232150844723435762310663406921206769257112264212716950124618432575597563009636263244983787624044758154614862795702360947751420510890461344505954197934615460646675552011738891028300515845983547238046560929744348633030284225622033933867542963755854594723391002651972622903161268287177555341488972586204807103776728205418206159709966611592150514477239715614704686216658025314779503236607277454241535189829885967335336901411396646646584452342438082655347478036073622139955369922414052242495433176554979866297460277514374695100576261996920173153911016455482845173029183185302189487613527204692553315415286961616855672241573722429178092833384369362396858922839536661438137772072312653568838959643397861262808961817042469543803928601825718635410444848857045329865651375303949208567565592175050299525593765121600153786304956327551710410887038634593851948318999811269024457264817923160442454244958367884954951847518278718230311802457098031668067963633425629105784199992852674327637235708031208284285188174666965726190201504706531896547410795895810261411141866327897678866573220800636277664702442049934509672536590386597054296670664347678268708680007971055067245804275746075641476502524612171389999038978623092048667440435253120581386083044470876842653499428360433653662642542668118869351008131815215567840341875100360371437149919163072468638599660641103346797678775333984555462743945936337929048377326830274492130574305421796420584970895334870983063728684845370605686373879720944511357851897323451618348160329406129572579749987944316160478051573344602158497576957950325768073845383451569100508133192473590550859895343995461689574337275974324141380556721026322874567914294197304158196463626058291604910320235838648248973322658826103012744552649853525262280319033572454843707009310655325648161320092538066954978289888251768899432461605575261018089542283108521943618730500166859140690162196980599247228840431472640313575897445645404450194189159315704494042638310705701008208168587393272990193339144117498856944707645407964511411279218469284104730810676475663546812282028714685541775224490566907240964979528325665744118291667425063557043941200376585755159462394713488740794645809994554999298585865922917519285363609601682215738226729884670481999901387282036643026017240246610806439317899925948289307320135597433735136609313507972107080079567079824782213648990417296885222236134883370178796772732471964361249785148379269684645114584270796632506053565698361695171428185577992166359017107253750182935099677159313201662087825852724689020671966108584072210410886811645596638541834462481062535563630281615330786332000335399720417999030724189562961332117022596146100529848734319395034811985463835689683081757665735122657950032692898394366094850791938435398318261997760051751418488821486746455809855104321868075094269846350119690630985666209571479584069997670925516600470048587723119800029689270486782612994768587608748000461195109769030380407452253592982876328944917938673760262084898110638222049461450994467026154609321364254164382798296481723948668767765760299969006848928879668760144686510871964567739630970548418139094621756567970736866165140162315495934192905558209600644186313409252199291474354626446466819445909382141511451800889142323846011592760664694374650549175996436578184271825500569450473641485795247267458993129485217030328752124166355746239025978991622478884021433836190682376638313075804019044095646210127034194561776035105717211842715169850724784469009277871744272159438860624554631186450461528433787284235786679925286424794416870766312321996283209494425512010735048086727233632742653613370280689182218607770577406482346490475572529878735308538521878409880811887084171660918928372999664138927815228338794086546541375626883498388896142470419721449112839052687570901717609658799973102366202287931066774296342842071487701662222580970287995144161860062087647389877923825889295127151908036724098651488289140626701577572494612435419809276130602999636184505739675718966967574728171952516135200193605511040672398299367061251706367653990492806053255221681533110520756957321011106843603009122416468761946370520919506074598271637172578053392998691561411005053379078087982625636352341719892776329744754626407602856818487311501459157702313817338743356443669489243853863620310778261227238142741251169525806277844082272940773848100124899580253477251413744288347251964947683089401063869974509720656491276793317962629380634357718852153905940141369033275565371048631225168497109347132923093277490560080914251531749435435592718108811905709732230244120454920705186820665445630794256348365115706430489418701955693648767164807296807325694386989194235539366994036322836812376911196496683977493949004155139761456280389213657488525055583187519381222992108778596450499926185048234619131069219376436464493929604829470450181528173051805131685610482371767271864232569720781342821528780624449097227829201266901276369105747379610968941105412836301457389259161054458028946882012191496848552983173879136908171993121615879941294113999314325198841844427992005779817263766646505213535265924064743908783514964404898531887039071977409244664143616829589560665213979837384504143847827099209898942279023333301639235640722565653027313296974130549242524149024946058965527529137116490401069703600372943818973734325276454199148333593683744921026535105297589907830458475121405203884232491896762472002986992994792651290605431759525562134551200082856473819445336106891918220783914392903541144257537560608956618785950434186730923628230474335019662089036958618323708296807902282240722290484101332729500541687501796752622584973160394746095812718441585367418642252508718232851100240632912961671147833935711374859031051779493144805501238607368631491196342500425175075721328878764600712109213982720899484837937991786380374618696536105525833464774618208242970450915564631511898138504744989242518606843327062373744115462159406282600646900229181578994962608153952617867321926015584628590625765836469388254248926635335954080378034187875289427170718633632413453831743291133749023547368568364401468463599161985772147663502845015724009446729120499438535401872805870085538077892438893842516288178246343326872460122023035961956686497008144562867141410419661485481346074633751011758221113738130301261928775071573999955783509770561767587402270949511251587052005208003986611170127799561890389039662099786364448315781110932375469075918312297124398923889907419674585286199763205990726788486285359035237355092663676856930059120314343180054094663618588970771848218826790845045616055352338610841123771568030504379701526122488368328763685903355630320247217123834374606997025053916919067481378046464085553473886023483481853369084177009355868720921010396926906457954890647335548510804120583606975888573583843744765492269330290980558820203849013121648250366826241862443180758096462893257326284080698325998213222014352477961872762922716032146205782118097564798694644708275598970533034839151288858965195850583443361375410020235434357989082025149291330451382553945586694641688305886053303000911582790275372141134102219046262946419726857390623474540301758609566435738885353939766651387243661146239562316588193705130323325460817935443141134217275410440651220274850984733611586176780954798497717403791516356322383326681379856223569656971619491327221037743799966502132822199753066085767130151996109765680444082777521706578043926436226896748967284702251275044946154007773534553661100312060254792352319830964354303947083104575741361277704427511100029869210110516947596776203855266845358270673448567931204670970287352985698826144349210591262754189870151603929283442805732286807516111822771267078976022266577477463907924880414128733118785578010892394826720568360293763137171034071991513839863827934280014142780725040849680074500524826961568233988201367704144458560638874555581139859472871401350195220286790460325173260207427455405738456472499551775753880445686373773850030780706022183350639764562528188972317574243236068153555756441462382397271062215891870947199859397932459853118911250671273321813766179164503799327057069514646675079133173907850093478397570327203042869572591617937459193580456676150221866913852043353225166140118540134710323345559242381124508997485420112038557375990594561793294123984725156899250729914438846329341999046975274322232625718117343853446155089899577507627251887799722780904164565507257992030541899807513227284416690187139457203525102180987604604302277334090849115418707235405494109191867471188309220114819374510078883426546690511226664171920253689674509613500082465474068609098618820329984549722059854827041432504461133138155427056501194241817841039031016449365741861486017620438578465211323018007650443147500863645757817340769950350197109762656787144952929072056943968329636678402640995090822931456857404322682887726868801806529023023245113910761620592916079738080881615491231312415234253470788801260896972342183455022555965246612586329317640647446195927257601245799571380677059113289605002591816641761621533298308124636343998693925267003450783628988243509898010036823461236648514827045206404090116391526273248640832164509550592721569799337771746222026004070335500397436817994292340105011367960234841541480595838756874945603899135251437994783955958780062709288781848942776827565012262359343605666623583740050280210275859226216286116844382364563166781789220713711789005511137287772494062535384862919803072200279701952025399262639355130303695338294499854738580742953208616226140242707475385974927828669367013364199077942181708551726263688825747603459374753497703679137475703272389580931910998063737230548731992078512365374514401914131234521495266094265246871289572549246631658068336107374132806716043352036379138272007584775393717808483867448526667290110447359556164017609464993198859934128460898297914822172083758220036070869262602092166124358698933384037343038545254463980188543532883886288407206640940287969797383602110506166032927967859801420111440709559942683967395093761148385300204793601137835931200841756195137158266998925364850030426410640446993716328602381251976585067184356946613043057489895185973149088046057968378222867157262182792629740621040363573059914480323028077305949895759736414203990434461612987541033790729348566242565966309560200041362009705908423255497382446080098132026377034711368239602489117405412677659771980385526953431017709627188268136283580911873783068169398185959631722766520881668556819305883107151498307852020407965687433827795446289693327526615422499971943502600853436121744663652238341540531301293901046306757381765999029199790681778921713005660406185403003154996490741685942046715678878945854847354191782569738069806143636871853807075813378802739981164022880987458745049943543223415048575182786387812629484902423354157988790607564407683438300804524030548139636423658745829619859922180073286632107242584243240236848347747725843497796404107565244162777405413438612256725375234853598585209964351241799859985212713521271941338532073254554155304558419366165502227871457514212576257707452950822745825381181062858200541063084863994116299653016367232825244035425940879499335459750052907855631918163683957683255098211153540027502277345637071027366649835057501000724984973558670431323051206205043316196841087643575654323943165379251673280054376368675110728738744784860200441543047163043200030513879320537045951332483186131689203724000605378637017423793614479560501839878844877644651965662125912495421476989163823594377750461020242090239328324829764122314338847159475216327918454510771712944067253736489716313229572124243556334721584990851124489094766581078270144497005194379265956133179285436009962223735904845617288517623852287062769901839545717618274197024584044756161365196682380963398488852961334728627692673099166726728941002804858153085395941490405099690003808790311586404185938481388008283911013226456182185655456620250499235590208153978622643799839748646661888937004592239824420789000876614519926538391091086026573058123044483846755929444526730675043514035482127036233059283205080792035528577454680386819067063873508829876729471314943413565163768609637634449495418857134387889852746590638730124375350675150735792200547045007916356626561553021407197932585123221638343012870688665697215140636199442371694203430285282684286696772294898524845753657774432471954051978968111769500796598017262363036995968640575834165404609998636298487478748725976023531004716193881465444419224295758051085090063191068396202219930173888907725832044175682581423180859309878004951462826988413867810219995303194140724461560072108119317240550281655160389986432469458018709880433073222170219054251845029303931527822235241376245549636312702918778033518922137631147380768416869710835245032748690321534148989296467892872227219172145045782205633066556403421849828646164177130411695865561559766803952471049243305307060132344081614613349990503348303691951833388557431470765155348772478946585286789548768003056886085692992876948863152781859775213317200378980958886980561259165245278621027831246538105441068739801677085113003468562829052355852713322569555286561653332082806754141500601196540728382595513743369568783177640234920650152516491494591898363691417322575741389315867863548128783300395918298754756725117102257612872039754236403105475425274298388702518696142599013261354027622242865051061505954352172702047263882665648750340708742034872684232060329398497002324973727771058915869216724594044549791641998913543363731457785148403581268363761787036075191633308164656427352946403400007006208205800822587588329431544655736422062169936046645244173027859484997031295816469927763995507777313403287892579302692707843261662414172655377625962644284688910846614589605369436044007438566803573785477180885068649247998860738722700496190663107764492752011463136886081959343519606798720891745115352719700040092792086722604175641573037412279440444316229651149713152458039343882240479613294083317951708766598873725694084830693726436291373668718196091622469471754178092357596477751443027392461601577210818604816397930008910279140435336920008351756228756879800381264510998780686162342738063118920289955506064321532281776642000046320717019077875019545876057338785695111490375895478041997292764885816988881781059288851391487340694148130415004278443493196385656181483938866039937960481970997966628714837789494740112963790080149708580752088041265592418705101925164195956006445456905330975854704787061171909467800685659615087230012828300835182554171803453781196032390898112607656196962922180331750086626744859090507201997782205891474562967422118155954582293316347984413273315983346984796869197524818854137168658203834306738032777054882110421381911864113384675172475391095205665344710323544296004565088605742628731308421873743887551964592073366855439868166082687920803751159741516690858066056740589364209351612452084211809205764550807920655798114467588352811847025128294036542410670632756447427097782774456997761723465004303845712154348698298099638608771963466133580024254930983814601864863282579239891970335134216760657826550597649546552481460673482613797483447923529735050563710322055889684300851873530572107453249056108350466788781692480684967092226071440635959706730610547365441402130690849771920611953656786426393266542682639746818250795997354872486591909432732638796191253446741990490758624187501322706039191625181862711863736284290052740473698138984085255430087669958332214762730313168755091204695977156212864734178534210370032588200923523706413083920212189148972349265102710217227342715402511285685020050035698739242519016670123462288160140640872847917881695962100714105306548040285534081165364199803288056327735114758020365004790076026126439478239548802721578126239173146716219169673992209761339363143280062584878304967203856381868232280583865871472385053199435935112975346362031303561374124675333605268981180546516275883745334567424426752178277529473740792629826618168896466630142019505761145031745319540836030025516737910229881653725609270671919457957909851047511720121556598384703307293195358821032287354847935738633393158018782596178289545612891773962349305327840266818485084180600489747788121568802159447314700441691966476406490465453104825443919027699643656244809489965507074654018642273639869938772972455529513937232254848327611188468609606632736351470137613817229559116178742679260696840386279981941129689054814517785893426942788595026500341322666108039652538591293615884025040333417102697750272702686413430368272036644909677157583696889320822483656291694992040426953169520999724257353517120872762002125610860728224960564185994585286765154814313337022736822378787982427671510885135221704588922327452995265778738725157161053703377699348814896904976136017844189780044198606185118006564707973555555574568870447211159379960192946126359218596750944699173249619744108417144211054044354506496145862405273890329681909385214796325643094202388153574062907056518927336474665021861724289948177413150676742901270877278040165359029841910142677301765159149818077079990651654081863476772602924620819729349587239026737703513987141246612815768615018538298282003711551675930643368180639193237433588258600885702662485013221567850262293517178389358956621941613196536208538419643771258556040139313205005861469286099592178784974750180591007411669516428888068734913693540915687103784116556222550733659799583461834249735319973554601265570420386957655874926448757939638274880365293882426629491807489033063663158112451402103745762217459505396918768264538206525680805834723824354876451645056389180771092490763498047210905469356511681141342758183911646824364671362582574234647451517350748619431685614133208945958471068763649404788604662639282831540404092379689725275278683019670770858755004074670835295085009371442205007818935120210566130648849364762448982577085365227526642675647450175841835942591815141940320734821948466798369683706672741258245351286886914493289326313542302582125535946966393477469938954077794241291191827136437536022358015050711857089758586839522136853217069354940587893440519901365093167177083474208821495926854213231294610969700343364257429283009899594742673639224886722720081319990229093045459796885552487917138856643087111257313457588559321871843569832233375230859187033310369195291618859559833029398438273139007556613229726659761095829570791547074218904787688897176845318420055179388133303978746685362083252941275493983903786981134759234381291502025770470067610288336982647611941492654096532293839183729538887550821312065058229935264398525246898210638506615579651117381687647594345595042415314001261020074290883900747644283375984392106002561306431620280026824742548515823585157523904029013728479681002062652259115499289458589982280939622497684071612892241305430875810971434272353930571995149985213800252772655376039461503880999768011822503643609351708143065173598611207426784115171077812187754333717592645308845780520540403861671548766020173951749720711417125366734969684561865171923592102178978763410677762555840976222931210675348421012588104446013800285108748036753623830539732433995717458638124561435313235710926398301168555871461265205368497988560171495110098537691006646685405861102764998606595749025078877989091701558522043824260179824598422233582512365925538637145707361214719206363165544345261853396588828791904765216193849953186018857551135459360502010187884243772858620789215743194905179069035895983101925246038034010480939161099260711297094664680957196370121388571454845091017381239030664838051159386023867432580981772662125769654129245898166997856659406422350615952840733169162991109250070883607181746515528632172178261925913810167578747157702937436460283161816092033951863271863716047656553560281879397361548968304839661845555759740795702180014023217652534918240125088959379271727907853635946377522112863208355283439057244058944736603084033082029255590756247531129692158885980428601274875169844563334750195016013068742038974713177167261579203458879513903044085572991008689278537057197748232798507410140509045482349789086459153083469234442264832293510887449262686662475012747978115662108762831465077716048922753091305838934875070561152809036582974271304740955826111025447563311350065757527326052249122070213970426682788363875620808979555305647151146022382933615326869553404241011683384307602443013174922592749611266165153422730090873403131329757782388079645886865309817058779650093020022949444839890343866918097168244277712020303797746912057183018789346105823315770186592413246756125695341335960766314481962510131772682986622889473324641201293182504698982417008338071346283130979059598674437841102217582387814157600462833368787030546736533313265274922219538310135186283369611082533996610648757963519462599080866736809794262689062060450388955413955891325992717704079334127184770800590476650592130188797996780921591818395746071199707862920424373539002660668204395083684521228583507854929989639871292312877012419440093849941549935586106251315251179509974481319047139569821749436234300346475890653948930579567333806385768243915613077288601231678258469325089704405751398624780274191716066920587012350435670475061207804487104540301685995557031235895642166819591198395163737459691910507101717017626710628787191298118386178843865411817330450212730862712370782868294716425499165696707340671028434557572032355288446632714650337592648672876157628271411972818089607252378190141879046432596434864302237859782922750363122558693748268494619997815905678252436927407302978753158571419317212035943587093544109748409689002914178916985790588687441949927291047108490209714049727030213568060238572194331607771507225373621050667171777013222167345150882526139610769136645452246028821026878460781003142556042344850584808283056941120638610694832666815606958395621455548103916029947143439199578007184142539229516220722153684412360516804454977379442912784880935575197164917779281830294252169410482652356924545542211768706323964297130068678842294466806262722325926336014988499202634061582206813753709798779834303439576997047757588920946953269629403340146815994388814539442120483723092987237982342918547882415809741925289915765919206041265489203596917951352896315222961946854475330753475248967990028291199838272170734949937227984687161442435863772874100213886673679530408360915243465156129249270517859736238365400462913749291125606848509987188421307387821941993571762812760451237876870626269676479548805505531357917516063579377425448124014471639895427334619448523064737928279183092274588537384855156703423107182110093509626889973683042850290672042563405589535503639785782108465311415764611816633691498985704866424699643876031152770563964452436518176792064377152180512014529025511855884869130745866113233546353876797191997064647232337646446711500613677421149021460370398634667481107560958709416105916948160540942637127682189016348660077783692827852493606053161905635567353318702941195974139723677218966937775103708845365539090385179251640136496867361777427987391180891064822600712933711459362825401824526914728955846861605837797287359176198490793852161685186983604082363942074683243206572070310033282674280738175186795136000384694209145302959121215162097821819750320228158357855731685461960162911914358449532484364519985047227329255358521738775794873316050727622455605823262859470083871767277682052531911805263371324950085185682093234340014895212054394887877129302690555950895752085478778374983314303648681014167916199313577892768441352064066727634044880458628513170552546271092398599318262812505138614140987131497966566049555006819887872629411805791092907701169220350649182576977214757201324681443207788346165530907493983720096366434308875264533387891831761822206821334291748364451716906156021204159167076351692356429407062479136892900871640734257679363677801034019955222577116202817071236177365451714980847370554473797210531500845634094749571848237438009694491007846566213885596575133674772740302577601602662809920772679562096551090946169349078040254934937879467536487863745717290540863460016410926840989156675111652617289369114906480816896479600739339610284545498387363381080493456536431015397915724723513678601655962679473861519621238619114713342115486843819341929193987637844716047776580800349151847711747771136013608242737852004520172115868777311963484148130576319613656715328312006580122304315665699362392052058088248289938420133757602407358299417209471140017576081524394239330942002987017680362862394575587209042670357675067730054212716040171304845376535609671501152908626338302797576186904808769436991518520450014651638163713098428138596883039796247479247357439254899720670139703457418898117087846593375429706108158453472038658077796988713218433605289972468248572172758732440571313261711783222053154298441101919847202152620538118009826192333566243044813312134218328561106182528656422666707734509553379583523283859664374623695859337225632360348761313083389713919561329846330113639305543718096819921057701817041890531408904803401948243820888094862160335075977375389910685231025170165169981388764112825120905070674326723109140722227630063252720914815412689082489209508956731535049920004878739200073629205671631526351282056116800906389027141560782799498967048217069274309802471407374462128994094546572441491374937753786829367696649971116186201536109233191169508001088708205049101642175318255850920655666541993312921852961618898167154288742349566673042678526381145091225752358732562539569371363429063818774604546608077231806302096117981352133897001104092165078910272676564600378628228153939384498839293157314231415841627554116443161944711746211566625464197763628263524839827312289764269821222526128186566995525715611633908230579260593049061385195911994686571596577069074877486218788206136409197938047789224834806061141506426731476367256931264931445574068776835907545990402426910356883760323955224495653380308947092251710882601255291715873640244531251234588829782153262329347112025853013312172987407553118416650271616715579119219282609519069117730938777801368581981336619497501219316873132306832368343320156905889970762982434964817308216268519094258069581810198805695103247522589444564254592869070709466280274380116056900455177772293054652876220594832228717427207010791072494241829202294500715327285567967170245239028831811593127194548117877939704298779515039551280310013722649284298390870658332373623372846991519356101987277886442853187384645336732544737676921639932008671068954826224258125184429739250262722300416243648442505653908406397312563676759793222897510830074346061597933704785602848665160034166434125030973240236762572151117633263015080960144226303909211899199240844882294128736794429020976303680753499385227229791950624658906511986727449219130843747672556478880067268795904252098941526051378158807510274419909549383600611990341445019889760088344019260634653002562545106254327421624151000561201022920223402071423018562943805382180350036640669274362454976298783619979111680595404219239227771526768232763164194731795429929848478100778608215187565287348172350331771892717183293511109596885551422995883760923285988856759804937775274507868639785500133174465880215832944145230372905225430356125227649745421765032120400933221538580554121827723426950343769475720065570753436429638430941210740007806428015426531856131999795152635633211838431255447769223668720382401861011166541200171451633596860571496729734713453124417620251771131654626906277015159958802522947050080099240048000322207675303316217709893162169886251011334538922093130738002011184262817255795110654514222886812361102848961362532191139605960765940020993814765052883261463050114833012912317343615259468175293703920007370914864881261152356791111703810389500408708379850473438008727904875409881644264339400236984411179916537646467804238929332977797251893753579549706654693776090064787279972231305345618499804382400813973671108694220606929643619413056208766468393280923523187453916081433959881900803968046306572392269469065597272502851861937156214882903339454679881652987874254632092399027137650235530204765460219655498034400618967534008983467011593676107471083879065951738516832217322599133949961982677745744214556625673680940164775003062933944466924476035267244665434910090799936604279824450137241296527685503036025364263601560905813641936448067677130425805567257820750644028485123425277416068241842950717767687961364441552752752865555057245211292578085708106522319738071738312759959402766951677635807368250681369324848505027918727357931481678850532240723639529680028391911526886367388760478597730005444475307433110318814009468665069407003618269411351691627314461780225572747080027412087260926162488645152403509816834753648767497797702723598234954713723734307070076217459224921880276182639983917569604215404336081637163894543310032126170759424317113995065803874910164159646414980015732742233130170501286336052144265958268938427535446991875926703866015604591345750082579606567418569659989335502072141153955854815159286718297557096233060570301857864252277485124769035337293737375344230003440833898093486019034445214254132863698783147684705736519395157769189616304169679965991709443940753190701981771242523090256467493226803664205145841543107309860870553739009953160803319862827837796266108497514986693686513010972885361222943956095148204938732331719252257075280631221799173430190299034044974599662284721437647183365519000330039062413831767182354230222757729590542452364591012419539975909611840291918974115035690599458312077422988891072007472406027862587598882784838957470410159489620282914798244523075167216413993517061347309423849980447805630509050305439103388343821029398964947466238623838290401505580162795343964619154207087545125958828373434631314812043144214683446247338164759297111276821107388642486691416715233943415999159739991890182723809790863215531237557968789215568192980355551217651219317523479073452066834674197636887373297482637860587424788938578784276494706607279651612928447683441058057344613843410424885350168461782665308292912625173447462581302819334815036879226248010715396390297877944466174247463524018556936789298514468333907810842443367580185089420361144845046260829902615806971398196951030497096030985095331760955697812629218184818990424247445558118949554809389225577670412990442437474570214539859456500925359875411173494661833802499470362601420674389821976081681922050466685810331514715161346823835609982163679228712647998006449913529097735752879730439184552592441019281923766722610709543139693334726714498441317717395041807378639444953407800450169100513733722439506894957383680496948411341990668342323342376805293431942406324955874137655944738264371210102388436263412194621037384823211852013460990980280978633263684157687152967383002717000345625657425021943548136246681033448489689768451768508007509421885498688762284740720723530910207222398827081491103380590341714919707600287375567022496822070850478010390776226197587917948076272507482885411724803395947545926442302999345192856952784496616167780125576261754666936355879056761988064627731864813151327902435675657322865608875283845223588849993331281473292532052229859770957776664807095585034134585014510549844052837374046004330253735386965161151314753750901638289422139989887197172768406364683245216973809449474721019201250875219548219854383132257540863194002678721404427187245079839032096168340492497674250435783543093967424537759721787692163819412571253331237568602239275929577551161613113241956945373787275949767602226014279125654228924259196042917864946449692332914278476086379884418959852935224416421272944342761725660092999169847460123436367567855142651259499701358563958244292040701271702561779114912985749837982136165280720925404547427450033517415244936219782584648272154237741233348067591260502642258912874830463519095277436507025649626121747072582076705772006031068063824047829799986306597247199045973313383023182325073580847504039321441925711415635118813040230999115787632111244071344967697968408773409327489495855123998133290691514902880488003819512420767924311811974365592261546767377968601786573674636833767457915168835670426511286866021332595884506842845203151933340827545798730355795672436035498744408110171244929540695440868393957090358836755548687396764928991776823812588341459085930141202114681014234027434370750024983935552721491548758151546451378510778309428184646382350160467041346239373403983127594965203781250755807233462737645939779935556268286751191486957983680356044368479278594760134957958064445502533474081622788479011477995708873764838023408612631545131936502526478860194512160695484154226298769977292989053940000388104151464641496429272562628665941800298219641580891780928456451685541812470233283157248552226651622763203455759039227696250450428889490687548907210674349470400821448057201111610411369485307831982466871791735347512277454590337091897842052603880553571583372514642627185874115065327635070644856569708183860511099620614191009716660790154201799905719702291547947809184890025820197515300689944088216260755914575036662144648962045973469898100732948242242639955288583573585287631581639751967041114303470690361024696527753741186427809154617434061962259122557481504790864984859889784923808196457228820676106117869011443226746507439140211917953670922732773887981683993316579675774355036879837455164811427142232515091815596803122255630211057319780983064052882653066996460457560851124723457948537435057965763452593320203557541175109343920686186724016846443966339412758735002783665827235466394893396746043398449686667029315213204850603158382923211546089158009994298388478352515514853771332210805803932950499564762953503573878949374145529197189241591557983371315365869663708135514284267053180223469628490167605394798848597254253274693382610673497413211363279865886573500336027035039869314872982488899926589392234562995992169726525155764921587177023534857234627209109056341358348315374194663567897931979516877215502836523297184947704680287888638648921511149788490063858301051563312420205757348873844134702778126399058413999283555658759430985066742891178792270672826171782310969626748306910166511241790145859440922578585281301934129616829199637935238189321046877562187559553715728533931849423820841564786597429743693404922237968632242557994710227693173420106031345010646149027062072326683244877406084346319644672075267737940404140803843950413813916107835579398772478979507923341861055244147795436649074035977924423675044087796022945635091399170382310918202552734813824139508549082882270464082717022933729457318673990297766495204616182593288607063066881822103504848810981189272018699701378091963572198459382152484170600901012864850351070138968975510510806366377651426676328082118449001670959130543494951499946884966729334955321475023947583668362947665236203657813349333062839066014244664337196588003082542065071863000315655781052206034607855485964367319485747061786445945478464360292115855839108438232381713280868475016028408078296154460576340654291567841758128842003522384734788608732764569492254282367355564116959516944040828067366313927285935208818016074725180078265384026918787357238526760667247154144298067082674434012360931032037164488533323264148491986348501128515676161597472552986572314827632552034353266519754805293407301439990447916000645786491777851731745780945366490878935734060466989287876368051982583938092157378432530924067670343184040616408453487802171430730201296060068537410964693950326041297755618692800358285612689580294298982126671709554682975027055314953110127188708075312932711469141481732506942207668787737357058422165712064864083065475579971314332426249297301966785658966158054710620555359194942333485047594855050511193958209993783732921664586800801289180688289891399670230707294414385701178645233950343030026318847185368892999095649152404377206536006673669345611560396091169701267309584926467416561021336631842765282975457669268244835950424931493275270995721034140363811543390369486956393676370594681311175261872467171488933065185879050809986064747209790713931165546864774702531734407677645762938286318680067917481745547050512873774503971481693188946859210445204281563468008956982345017422740794575878649658593034489917263272182748578721571093986553144159825706255589295491978592830748495900607282622592818807752326832456909717075600038082046438303194858445308851793990177347591726909275004415375740073936152739993783163343029233370607988933156236612200521210641355263059171672766806792131958857818484210389513054835707298882119883797652264402806469224693133953831157680576780039079416581661364575936789218133215550935632124601590485589843987563482005137056289026878009572048467201075151209712112769658193899655419091880954201881752927413210294871413920855845127756690830941645490644781769577351643429207536284715751989733136464148915892127733868874427221186510924912188562847400067121339123906800956919057859710695048443532427661623439785584634034180201329152981029844408136183039952975673235911299520193242169575266032843571235383586741053649288218444875768900172699438054202491526458771907658395275265715991650963953900215070779280127789766697403746088852650415046657301091372353308374704649217975666794811103853378238125789462618574085704382048560098668025383151661778527114061203753431615053003318579891338827399837690761977895329820941707858584494740599914139713781531633824561989520888832920082861319678392321742554184634315638454696051267699722696453372831107319681065541659238570249464780025133707779947100754073967261126256529658974688483627820856009571335129998227234391422828299609483574424619498584776324517899193337025055891583296450596067199738576776442216961209135939325642813968483232650607809220701766837605758408504496147200736485066900815882927236430524519499564158550683211704366488584232766371400499935585337295246516306238072717035156359690139042303936952253124480818896149451104993403676052329181797022169017463040570096607994993203025669022296140766255046212630093005428974007131373098078990706695605960631487744695538808106610229593769375709188050355320654906775045195148236287786700242346850544824214514351613888057252910543150059724596578539479774686130172739936805040863733380903739804137330708026142982801743747151140989451991921704665081323713883508893388614093305223927719270206955334249205780116517036645642898870678487206826844822437073106978040213305677254814720270323345238840536396666266003273278125147352296889539861364120866355665256696818248802478351181525609011571517723562061649873562157135139615878629668996014938061423295747954418519762307239145724445998619556221342657273863901406212496485940226084328404920240180661072083001393639213541465041824870280538234641907710748920226145659915138018941320040498882788668549215950663541906547719801573407834442473576959504495787218183862424872220113174942415835152015864412483153993496497492621303007800732116690417661737297790586643512851623538191810529671938980773596723263458589212484632622009480431267868229766043578810967123618426751627072183386661914681205871985926033345297047658962181373913302758887757926163985821050961544503812384239836601716302682337232143060236829445317758553671800698167185020241260562973701660289755573622048408187149718180725592185762822911780334175090691485244771484735113512503644386805848852933412214778545309267253934788600288213748391448095355904007967616816630085582295660279166244481326845670803295623853053529021061435994774964091117767496281167978095183323353651652406269728207851689250510474362918227442201213372506097225186708719783172682765414110148339179241016474302898195049785959472506665240658210896770053848884525070230691428964188634474829432081351382321541192242089352725087091044442331576098815055730805642992269844081969641028462966737899164620359744637093644326133263536121475623645403666406976152691577502358713767142811501211006289976855352889064274795032634562286997056514252024811566589315159513896205015089839313651307807862716058033346174062028445711409761036935924803449836094035147556731265412583285443393764204709755458360850143766276232869889461981788610594636315352484062389263599543538255613470350444066058745824640523403771436082212064274424073238668693502964215308498166885732860451229101731568959923073388280753220123405507273774265379467367418950415936188261970187353841156798171426197366668154167533617549581522712873451111953972778646739351848237446820127558890047417925322793322973022646207175500085094150356773395238434454021995836122703511858861765145878183717834029611531417529540057140612593576357865395969836435820819822904200309614164691667959368069685212569792245483490235728228356639067072108412037371041566593984428067011144152378792742845852102944224945697425504574730999444585322754453092801397312943112385939898285313239078925514452675529155347203127812552756577415824629529577233591417794216577767870291605485710868416959188739720658454912142729371812706843015933745942812923906897943123528586009125073977178921583080413839600133599213585728031028702356967892153165956444182164998498306829478136284075603385325293660599408461877724940487101548419391767615894561168851338910499517996855032219039092326268313075946759697578817834688517640724627306938002425680075403905123386916435253392446042649559385477796678704010459229745517515704177484850260360416206648236178442265850786671598242870130072366312226912507587608117371724748405288681731774260391726461767863812513155057530395334171568222247543826507406082429245180800338971752384321183074386946146117501232572922378105733037205902432436520058353420032986566173741521149263852649789934870733575585475948510943740074399119083654168663978009500573333160185041305531343865092200792336865481303446145450085492686215011252105824695394192263261256976354678219218316716366189407104363113470525974157272090212934658693614482041132159864668044900117393418714530501103560800291034379997115964787040021674194363045941023650888892051204572756566147988935660224159522890665437344047230117010896533409836353605832186203594110872762220291545260359887301108413872625268390248850058455238797496183197653213768739111299501304754858526935581561391956773598502564153368204706823954831359883305432352602318425943580181414556311191750470491097898429245935531687457186539420930229578615538261874070073459487746606476477904946201102651926427983570489241944884984496618586668045115366299304522504114047486461055367939429178128210982375995202930052779784421337516463880558437130754440216133471182046711641337939954763047366033397619141879881950024913352441899979173216370690012665431348192256137674053840876404864312944523369230856045192272594905489386629264839399209216835926096847752784983750618074169894571387106901587467014039685255742124024800261822657070049824852578609317326656132975478250057469761448812416663637559153803058016041424716657974537608208667919921562755978826238860996742893767849522400608378258802383721975183841186864777773166813950761771122059844682978359391849752848623802269720567941455697360204312576698442192804958497119222717021942521945261435299762505747853175551747082357474175172138229114499334699179679170842447658751765671418325165176270378717081309345246935443671152265754387415678377342454249424397918014491851089388420445517533930492197414141438273351290679181636127011889313542394134464855729818936366022535899555613560436517694164322495684698958202976584316007457761493291066463724985750708351507282357447748312221656312411113095090460209715277620109658951389299767948759142319536474052468785257209632437597884581085930810436243652757369810662295583701959283436540818063239755401817179559618659895311100001217279569692581802790181400032531687117405338989655266869344657071641943631645957194835374167498984299275092398715702789920329243493741372160550255990483244077868995237553280424630351564649328732789969706556161681096724912383447239190684509812711095317973498702175442267671147042405677348438587091210668670137157087458767704769851009770020853603658153925177848019857340410621001082239435309388192083782209140811046317379563261228865366425469479674754935486314292953834123386033089141899520380805246229829867698123151656832773780766699549294044627308954003999768600060028549479757049760753156004655206081991515028915430929266124752818013681743009117098813823798192893467871973730396822414946257065078114574131453761372158794968660515865829317606949115757877456840477047094052724173841864429598822038299293526309272605418249554358528206709321816837204762638549021534169974309950338733515480689963335028124893487528226690013306636630056623582518245563251380693578973144911837065306198940935347189881374080018178612807003652044205234387236484745205538698331775613821978754723402994808662816818181537925722902522700641403559595824301603583027130662875372061172608911233984743594301025118572123106090160001466557532316857368091392299140225801877437765959786370457192783654229388032394371254626999421542140616603212184015364774569486533753245532239959688918409302330181375286718851547785648656602457034479007952168800020657951071094772385245371503290188529106217520951312268793615371063638813698025516623631484054471433652011307345131949304663723410214734233469184823187299485514938856354808954380094269692435585556690965948133308130490107325446447830747839253785475202220363193921417697572226348610638648574059175868688941862878783518087367385285469562608070742825267827676180521964778604644491759862718372000199715019074133128150093622452057635973502771114911566351401143139718544771351645059807493159294100918096500253815965504111633717579980068877971623349806811023612033418395214418927244809588563556201220152458841325175274796678038174827559743224564394570226565756564427073994655372249410816130099013270097542237835820267789680820455496440914194636562624748478346410613290014738297863849858963223522850986510581927652567616375286113401355039260570156123796051036684597777657642337562717608811033830827837161846123216931593389366499690994302536827862731735673918882148670062213435758824500974126202989010773293122502157028015633553256434577845570004219297748005315638715907563343005263885533604869482385995088365452063319347155219385549474252380863875420189742661032646540291497477242451588917891815722810107769512048027472240919095392408927429573352295090092179872334746654812730787399600813664095239717956362289909939981150489749698188846548526210757998151299084249654370380654065862438125444885555230339496208270545816860938977323388599106297032245824171741869041577590709257203244543557451820862960729543629100038851229657267363538626579761950641963923553352693248632831185859155819507455960128359029804407565228580976334134888029044737000859250688934957960227718922114202412396611698331607280553705463113855212585243076957297696292328143815521166824997923505960125780445763340490637019004251165530685605727277731345417124130996362666655258014316502409444070603320889889074382965543367839272734877418578331964313065503738807630235606161246203112411061527664565386233331313590394468161128827142661785477647322572160000951846119286391632180542231852398135384924857635961120292551254898145133608393747329280704826213027764264390535875628495034490690907100859480652130345807042651175903728963443214528310836998171895744173721991787487597417182504217704215421813063084884593834019882853353337548767600904846047771781191285258723261294136664615025621869256513597854278622581951600399552087306454333292510457458996152959983823794281209945032494192116682083458642690660377462323055008191405452569964779432273573172142642406803700792639092281573656087978358254351420908089408419028031866341989229106771253077171378366004469986627122139687017433358950439201164210948989158758880096844700564740356848029384412143312592700105188550024658395833852574655995794638108161187197201395488580209360770543649565768020314287177251144759073960308453202194264568256736097624894019167574429729815389723358713973532809270696461056268222517211537916956485061932075651437899128640404374844841865464542177700057004672961914633269423957087993183888959538815072320312829074277889718807559908633955871193405120905372341959750252596392938133976349426155533034119217569946842646949968360823197494336527773865096565256405839023390950956209641175022280239303500134290836791704720289634906864181498465562160176040763451955680326311335770456575532829687008187578228346151132555316041199600071043935512798279748104909564392724993545893142535955367857126686417997215127857387967512473315890794326114469291098188961886586477789232481807897505615369270469018217348752697361065638359150508300212698357962698812839531893245962417408936175317592607456471800279046869719750187445955715462388743055857331716678049704491408527332619559847713952935975495418477501032084905536565471166613224388026925090289069317994463406613658869151203933624991318215504557733946420501297092974326778324386391555000850214795718378190917048817983337463136349303369516120200551861086016481033549088237669735769434030529826581570810330111684100537169201901778497527467289592024895152043874572215544637592547575351377843376048753935073988600750666067266966185716724447713418255280023507644158633706428698397248283169047304867222655633366336440912625117484766663449461129469969236900779366431871719556630427840975551719171414088195113516406957249032345080855684192088540882200599558535869210414546056525054780279239701154287540569365635472470179960713025395051959949311463512067132706141429889727394138482171345920700008750130950004559136373710296641279404470113902399734782027861173011966810838242655817296410614872040689460493231496115917532315975162703986386326997124487290125053431019050416796164697542791083260019861881218421097837317088921559349172772825133098225431748109910982988155915812162329241559884993030463262532343070816452271113007955441786058261936860158646088068653574811031513559245053784548332926112662141592172625610408246733293647810905443808184940144895399103408188917862603683518944619223180397798372553724163801209791150862576551554633137260930489428952546146888005012869238747046561711714647187760205876973800303372332842190754321430405950525604902716308319575893408462502960903907998404836039975028922874180022970654317440478745386531251570535884265793115773789935060494452873539257128529463918094786909131075828442999993549095280410374322960327231568041202438019438624249010534098033509183896041543959850912189368127863717111398769271123882313257152983259848192259594367384765040485244010839044353384592579344026875581911679586333485749216039267482829304431162564732797993937474957393812371146971271894896374010169092114792890580297740719343065890418186760162541921842796891105099063759594805068175048364136784118776133707298311823027693531783051975645418185456610485517439197474204423146641094955651001541049378981006637796843150700486718104218985450290434413148736233108549087635286679003784045200763132200563004614435013994157703756598494478372198447641168791319264069985607787912252567445477066425697075731338720034632481598669803808378322438184038705093083786180740420116306281445542917234993129679208284025995941756568853272613008833359883647844696732227001586008539249885024640605612989107362429024213409963083233493302965146072494779358146593600179024496614874182450807203537810731849009151659743910594666522845595987020561067678221380878055151552210275823029527042590156185343757821014933935967416821276590472880832640812997363469994124357724242150983248384116272280108413150066640925460750337859968942435537279330636221326515569112590491808224988438683507369816731743575059093024782340325629608155475200683297089526105384212850181092005965887223473485253374407454566931844713432745139969762705972430255233188382403452293567667403015496691234077011310426205760016116195038045140158154505373794246039503675205240728054668253460294834309369674748308526899920158319221536170322570375416595532594687342167905401137707217534473756940791417086867004341894800197399573395945137199396861123879763933451839563558471696497066780525755761640996421774533001763479673378705678318577702823337755680925108369707875573876477976586196471594102503508949815470708951752215855582802569303336450031379207803041866536846794030668666690433386536444028936840536033113720939777365518822306799349473054731786358611409405625927962048497495673723112984362798295173168547331437631334547060632246436314820488939141294859005661366693935961645543463951944029190681745909534626222221083567246952580098418056007181059673800336292394270044414288341200139180210660893591531461915291794898696201089242103377800959851805448646550744621429130552962325117482288044641425331414370078001383112966364721515301516265004742254703498576669111680732370778475902738214392202142001004064811133057400727460125654701656081987481405045763675753758457740086941555185846639596139294161225794115641230703913153200333048788824299742284578754687880401806658954041295106719501561007626010576764806605138372195103333099787717392878982196736623514517749999780548221645885892143358991033876888002555402130269223801316427796208453004353164147020540255186152837087785385173690599924202348882616265018731609595908477430347160179852685092910951966886452520554922082757077245488609119471202111231935228879234151889383711025229758836646756232352855533751515465925244307577602441583471779446300543704985593500889218523491039470575998696552024975286652415916156568495051885762136039444812260044700486359494173151151089641358980378226670901144583920346659372017881163276000457356824997429613026676254355481392282236710195236670045416210506535689624136381154974957532567048101926405895408839099106512898605545867012445384750817106675867646413808824511252321307591415062157116446160073146870627987266963645509667506800904031915244352411894812313439323512911171911797839308482571827061469792713052171622437126224087104721280684059552742326441503730365021458924683971530526661616308353922350052870157904502591767647249591958038188046691471241713265140503086574558400652912148689574519096417678391898390160750724901478507761793826960489918997075731768272538706354952445582615043127049086521712100639569461188564814268233838622177831422417113266954368425985761322678221549697400434115655634524507019704737834195238882959581522687014502147601011936862397243634602322323618298713594566770188690793560992780082731083966699946648979413239123500169039752682693177955124730467766798365003594739338726893112744087998269564298310397692902564101643323355405646968793368645824552636687398903077357126482761339060887598445014853459742103790426267801917232177734853043142840961025981101701647320913412597919409922126425497885524863947334834065339596964875117848775317517288253429048175845611170125515836841041329416777662460798571920862095598625624400994410347638907953380107159493800175521884929588027222985806271293710925362520341400060777343344562069235089017409329947939959439183141674983428405610841772158072351596550781472828278331047352096934821788080135874278431590054114622578653358951650877412119328026468733177585767412263271890440331309718396183626943846868161404598631436183426100173055115408176276040646737484692536790304062625443346487367982129801412243852113401063644545084814058004600430729113193755894610131140753398578944504395254995278290601273752745326141371164996892021776501944242914962801759468355316895964970055771971176575416582279805568274446560824595306538617535314244928990694905394551057776373596458620956775404935611123291137718635232999334400362431759842291890252560096083783872284133964125699976362858448886353290359879788451419725463825417709820287775974975764821655284526628797524337406885818260531987693987190912265806661572298081605268673164952305433763463986037939119966225488276924660179646075250222254632228622142776141802910506907143108073215106042588926603524474676414100755775623900596653065417658199630195673303230277258804696040310563537731034040686399028835142658692408657243285774892178009681412800124488023845304554714986950052876502543894520142358761460937324011745733990682523580909832436135376565710393254886425255653454711138651245841844136132836858483348967936760144203484670441469194618161365999750400631295253224199686759442189066442251247008007969453810497564997404021474144041774355176828172308450389706622994851560324835716866191177689113277818764361292533195981178655541865113107633824195338136323622484606691256440359605293630149443150981670065091242509991397381487722601097020613317264544355102774394459544079486060504167955349364509434666174222324226464150424180583521416612443114597742648299589656320983751653609389734404608532615286787195293394752876307675558449903729650523387189266296190749626559798674620350657760829790016013097109382481561059362002948072540494173308327843955972191278946617001652709941979294147365548646502633268375530203160963488876556293316795048400331794546277873887718665962844422166571830556878072443589800789864036683304870701446743167027967888655047916943079389348099685780344694933124057925417374027183688589146044988201577683748123877076399920209311215194799625357167043823760870655128069394496856125731979112440551179824193453009916746366506570371227797012952294345511376120068845171732829253747908220459889480079745837398861696250402207276830559371933411725035107036568066651165841544691036641430545449961690759912124112063437767150719524293368786114556145235615529405746803955262030041978958211945713884918246096640646399609443085576391991789044380297299972605087489618533453812960024409371315304452510865945295668704517303543034032742317333688734574168243563314469913305414068433206765807184981732931191662081943641757111428320609349463515232127600891815508727050247275498682191577180932851169604002934041423087017248901591327762664450893176151022274179252142818109568556827674856238410273376776669623084083894278214081189252917302083783785120390889904559589148995650011568059046579500230389120957139677723805426212117512031795383611603686885062943053339339326962696407663775348842896319772057973452836907028704054160259336229902062308695328318731993452064346873964157507350320765213606227794817729677515090648110421003727293163023361825979206774996448309841339511872754651625605920259538451788995734580223681185998080311813397814631540399386784103005335623775878754359857360668005122243345051016191722263175213364520221393517204744880171412977525059389987356729742201913393407279633225144798354268368663679436147845364010598537200133063886751574149982235582971741664817021452740896194409575131308437109093668172491078107544770654982660879866063919609027337658890773280689439564240173178210973400677704306251224051523948981323946208320461187088738452978742848506929859413134379299558829147903702666774527404155164672179809240996865856330722941983650573751804922754633951278125770782874034683253146062555000357817568572949686784574948944115015596788147963446189093131008941364268582735924096950588459659960886060042873475341503386416013483506616395045647218257758671468857868972176987272874165787824307466773877616402982775271706997368754646412537812810201809118479864095517923499150419590514630407579562244278983833944800830083441293695894139201176060501395554070631937898085619086253342893424642643147202070041637833729736917890284584111233763047257241661796240661747494517699010369154076717943107676088587356662707170153112700951268579003148222517107502068098334034101489521420553724757421551921904151548192915070317411814818675766975515280258995652468732298322304076732471988487732593000535887286468528177310990861045442521100784366953696845215507848899170852134368235166812710806650638124563116745142938569575599412871375850289160785710795708899739274665897105144119482905296733196800715437372964704323258797742598285954058095967958046385200953995020035465936972037200811170647945994949354320931056830938181581295429351517138016593993237958122208349365799090793418175307330702948923219869126499640678875661909318192376501412110277863699118077787307348187347224881719299028728821150783973147815170661896176865453401441059057033103528755184513613535433621121702748383353770019562125844299974762416911886501896208687256480357656214479897146695497185476108624584639036793188130837232766459275422835055835474284767553043072485929218389254562620913089923702826084387705566059061702655751695777177561080582310948524975158764353983764346265815950781997062636457916210951979300046516681368551787579281704589423421497020540281434213603097902802672174813201157365094526796109915313797580824439015237926290938060309636462819086336166901532775961056450871420872648573250729657755763709817068008141683864701547929729777237210814084548362269652927942786132218475178913075386383856287234957166258185201319584344117979459840254601930552018278726613523120159067798410721595456091009578363130124758803993952457297930378543406793314676048401386718547004275256468425641475906223902130195458403050247965222325233470532231462839387122869621992042411079814040111149422937780667918472487710668891774621580879199499933917544288627248255438754144564219644585262793473557245992932465014661820410786920002293577359440054414072585959353275714278801233233610775172355392350405810913244435591894843093604794531188705165869943967063666743176876244002390508179206472747901169625008043008028742747298653486625366362196293271409764815622531018583951842383808730912491334210648878189541801680117713375479124332488543199075476480446826715619337817225112771068051045135911915310247565366139598311809469620556496275161757024330576174414610988735098398892456208621427330451974594144380728911262021977943388383162212767157278749539719194612249586973372350982528781786860272261489614772974707456171316452610564152133308707303833186782143043886895411975449471510383140781822044169802130053702946699976040161120569369161471423131169755468686799652252805751433543885542550255062784894991619258335787216867513331853255130435734558948116979029860082768119674936557325038403563812055916563183055873918809440192520326766471128892538876372104216810919428882784609585885606200781598862844370765666618112632777686261042014804061588311581786732761256669565753226744637876339551565723115771862105066822535241137815858480725360784618382835861590390627542038251471905252841826079038961034994190211564036848893135734784855044713182817541193503941583930732065559462360366284959408398920001235063008118565476433742987152126014924052418957226398935660572731466216654338985456246750821788551309607979397983021750212696917982499340347168547083466998168555455141777121185869473395504601832712530764525267300400212271693430134436682193024519852124091104413371036883229768372573131358367503494986233580167413609340438751779881210236083216149883015630441773346618537162100849414607705765701606719236543991066868287695239499497669184768690340576179246907200376131705558408590000277946295957386305182275844796422370738209187635551469793307963663262906204023412883471704816817695043247469167891424659216846858778004317646363934663722094562753555310002714400396949101468056085358586700825715785734370985074545851795219554734484029720431674381709673188730428474344586516693842559693756400297893958546999216718268432967339157376006367801345835816901751195157640668545696964568829285252051519571373797886752924078756136708924706328352551660082539614555563135223381593273717325712260726165044019829907250537257832026421032330507820036244925783717204646706814793395456201584921296116390079236051767168984285870460430691610491233988993109765671471113507705587436852706231878713478631279951453430854297715011756295552898249776506332715884817936651706083177551166025868112160118891276294897886099222465684043760361901600404649539041822869651170053580682262641955061892377864148257271256279166760565896679387442005382139121219500499280070523619887959032658520790083222887808852584411710001785842172263641853087228187444625851126374134894734600031034820581008427698315112518600267197940219839142168317805485098205737162929722586944815810550806775667212123161749585268871259559055996090028588594232958824633920787169782020881952231954303059128080642705427010130828753749115914310571022106756983695715204677505809030234328330574834404742066023292363113786378152537831567475964910234587078813046851633262132240262617650599555150324519968369952994041193413842065479083802832505944829167501800258532641562934864853904424675455200168013444346794657171177996474573563580894742034055917949884400406163428352655738916210402128618282232603772112797003474542599839951827367580381331215248404842443703490196158489972975300459479855364364960652528214059065334406688161928788963400783681773352553096952934200422540034840163640526259812775201947052322740949291379055057641783224080434767876135512490514389791865396250449245208136598149355954044132539138197693519307137778963282149349756370490804140218487093816427623083553942926197331340077484923637925743007841449951933766075719021070460236422946731048334693208650382463086543435789340883593133548450934221145109827695967638990223242949484042877727883201415073180001914398693065612260617321361431941538780050786444341230447006201819431631669826360680202771370677675801065868342220165644757455515844285272405726548746667155105981190667007279675416081845217559045637417874635374975695854721241849397786928097974944992018153314757045977107216225915606722670905839432341792915086482325562028574655996101318312227093655073502718036232263151306459173845264467163603777082608830599529012038292166412430119890562224356182393289340100078877909067427696381583430929279855962818368613096783998106389913088261520212120989302199049347647695746701394267423261895937793710488308828138770708306031378047336652865249455775589657252267171308655106790799524301315841242338797433088420983081829455481739050397663453923097517414138809262350645200249853715099627700002753968374849657210224999870667671989521284190015171706090169434295560765834276555266296272667667010377756077853035987748977097903035861492993427406640655248632817747792624377473653680797766873017749943011513629263566288023248331284345904425108971403767157160334424758434031823282443101199096595210820400179495054742996142186319047960579411961197535759827327053499327569751999557022904761739217288521687469084153615183046902267002754854446103158347581208044128497694893826468461742410265956544035381116339915841069119391261932240674526484357219952793504469748202510511578353444046842195391719809102677488150593137840360479874624722169864144158779692031282588746958172330442498658948262545981134102137529100634024086866412447652559294974239061177995136159275404262596805424893701678137151690435467388077097093907290071009742758321351987073924941916871800793509672358084421548952057662364907680157970197056448352163507269854511264619195541574369869613064326792621858427469651169531326303374788311137504352074103860554759060415062289711833856242324190753107584623140401674382346618978178747053255645690254712060897886307521401868617237780755662345422190355765206758884407938675839706907622328201706012385437007382341875318149232928166090253235949736031116092709858695278356922230647024834837882919970049505582709176263774909836733904050517072287298942430257258757223956089994091511263109129226358792902871218888655014643044529047189037593086957470154670033429884269534600198712162780479795780173372536574169934947145068778323924420527971039130395636676130684267828485677430964252509200270975264254378470658840359551471478777011573750251420350469918249973883792288697435507017746760569343690011319215803523897727906511558022598055007271525057002912237049793756521349218118714276774064128676782903916254850201308861200463905361226757889230381108874694281120391474203876168705255637794350964945136766250025421071428293807585765063787162355207920281573758407807590717159004813553725333561465032591105765497520846170855100197780060127771602922093595878693266857135674570915974435626407152003396540633548972536646670523514973263707897047005245762978995642745096554036596524009138969015542101925069800134097894408008842531216376863703196785435580564824620377988948879530136130591889981366853686915599901278024726362842533627677413606911350483103684184880375207158492919976833675552627397903828062928087046445725958767258888571901568620462653997380440768192087631382576490745850441589814729416726543515353460565131953506973352920050603580065405898587778002940398735755004409753925910880620501619714272626432805275938553078527083253977522158881963066688174565822393865175108956625443104511494439060081650633626552310213413093437414922215947802864954913320256465300527995152008611950153752996924032125750590253366570141197408406490135675735887724549419255182021669363144541483468125665343919115997474759547347349599521577231458550086650476411225134474351019928908212205619398740154481843905171880865638680639909436768807075981554417175202782125038720711773544515879307845779780623004427031511678179570054256580827591658279470644962305060222343825828604200011605880330107330888744193635522453435372373529262262419256003238806437253920033227392591526492168731895959896662306748169745399200820851236061223378306593964462575524674676199871368358273154708693789419205353002552315763336212323152110063762684020532454634978424002034665876857905443386161216117541634066127660070805324791360421126158220265927837390799441534970592564064190306273765721073024564103284660422752885970079732344254640029438084911926740804689376658508660229016543739428256827204577364551623739273155364660274114143609893241933639757581256318481640502203922898458812495798070070232297099678887031923295851754177349048322557449385209495579945202731927199502490168106328895256346280875917322294708772652977618176178545076764280149012228452744290792235259382034150144594561111993284919561482385184132759497636282004712072077826232239897683400423475560194378743459230925686980122194903749094518940341489099159620999299137898949918220263800245686514278672099726616897807410234238531553867890540260492946964663809464685154237141035533927037341468622455495428378135393917888157124097535540343334363696111444367144164119503983890073459164597796483870123838298463621956619787623512132067975906555830416919316169733852054514927923581608103686278738287682948094937185122761568106046262567156838904294073551748011335578960454385418249327972656262225426134911727775505445999373919576161781846856477873362056278203708279469616291255586381339503071672062284867270943878988807139567365271808097721929570719278322325724343314811014378242303437386550281505397198594317795924212045714725230970641969930211671896060538661100750976514327802989020908869149250939252747662317041531432158645938768371928138007169638967155588799625731624695746989877392775746091619412905995847768912991572603251531402757864763500377062696552571676092223298314504849586144321754807954562492753135631608364602940218530359022831167110862833626260258644717130728660797555063464556382114968862396294355560333786591012748942581865788355531209813180698112951477030219376232713939953778060119849996183020654795525314829004022726620445881305961393766212218273961262894313322199651234554575880154633907233101617395651953097014757987039661745331357928450734771787366680145936227861590487023810571243107588750512508101572460742076420804928151659110679936766140590543953744909005560749610793627099686121511828837872914493768888397711326348721572331874315680330615361754556218319321842499815615566853260470896503070543604674114330998091423507063835721428393189786371610667089835781817792670734643149933770135169447483430185174701436668638532514146591546886210264053522705119236669279649904542719437547575629933040524114543889234962290784818257696713451802448390053723766649380106993328249682639702085278669824329009983579678462107923313118092571617591482467268168153540448069102893163117328671151231066850646033984223533325800280418446885097194386868516881324815196067282107177968940125811196872368261597792139207405291378027000905191357403566024760153362610778909521754964405300640537064944820684740978961595989307011022714187194399891379388895868426995852385646864891914656479551778329838104179294696011934865056277749366672739303908979905529100406774387677994663777980767008147583301558594459806014193055613481292204959279478537330449339499902856581602935459245710236874381720875257702713526397136292566415566862508484061393775106168755431671994520276786411116957385077147115584449038735951184213384852785275445356668313179444517818314871219408769483445164230702011060548922651950809551554778229265143015642383041364333242024297595626156728622949944500890383884632060355454273859647167179673363578995667790099484109801749032509664392868335791541295195274134467816668540753433279507951359720440752006049922009826439817019490152469575360532338914246845593391195282697269536433380969942262219772363621601384832262391509537919010250296979007515730647296552139642138061029942953870884838317338784598391666115265739220676886521772199247754499535562856815952026207708957515820252363723440533032873665130864946453873482934989583700970760848019514598277296534904830167116211700660616122022110314150071093828533283114102035716264470854295448409690128304458082622436164013352910718514560478992181840153992343037061541210248815692777787425443899890604205911626565703030794321726109773061341272878800907555689908138937799680179706673750884589440568895622157904168888420512008689602814956858745638141003182313329822001027505506615161822267478868622875431226186364092595970934583197159525696059268096966957076528273208693775825057155419139131343579395967200663740025844469972829329151033482460265466107464734350748170357703140613735676065071345973840643409534793485356678263167387710381802475935986778622422218386531175039530452514630995175334475544006609426408463676986780019772703664935200927737254172242382791298498687946139220488632376100291815782212593129411980027253036176840884241938935043618846521060152904504236040949067524501783183926605022718848878612025475307825896731533935574602950101374945357825942655833777185164931167517007058545896002678514404436854690996709156251446124349437913039199944229306711576564977482938559272281979116931054122216067749927876224477211509554701514530180547222481330392153555138078663082842545445027482594299241692812595811397909669692214916512376575319232238420682307951547125209382839209138570657511571040333410781538538959118430520584624281939496838190151815567770320255672229218661370557771264810676197866235536505047283090711968165418807256161755652955516588015564426516377935258399871493397583838907863634175273911507082744415308806205191030856809893391853557125266823840221749690472010439107698065864877230557996099937819410028911847164093842756365797487963027954529447231779050511304946747412496994171288289834200750861318589528680858866113180209544666725558213267956202189489562151072708040663885260545263141312943441935069280988674668014367080292519823065363010994012996264353154249650177134526168128440728576253817054207101534446599357156922775413719851113110402196859458660549398982220961129787101947528435652546375113880841814426616484478536496822289413116467250148466133468408925441124744183069187646589941082750620530851606055676058233045930141647831683379469274929377132177705915958180672512659055351910807240259159079873018612928410296879342713099148921188309688285213336426526884402731285705201041717702841274884589215970882359027617872140525374094110857753009273756359123690093869233452807595888565844745455618755519178059273706300861823556286313001237715219940065576907778127723862992309368507874920366014239332154936742236618041280080286895731532648665663437867338774007694352815341130668435193808452954988433243509068511595853590191941273912347241761518756684957314572959767654710546992376571380566939616114220780311754721647775199588904637118551025743200519609634845037673420329526438487922302330780291804044190241672251885128140876906931915048583865126377848648117461618478238580743663551700842770143513417720962344442501297246519361668932506478364757035431353506292937498664890862410328001318335602080432407253331215925045612127618097390067364695076214611959352266373645000286266534010164438516580075236290526496735037963885862815062071488482825400109060207022737077333421284797838363868181209964784916053998616314517175551345183835387090094097717136279693301119319647585286679422813738842198472041224422222921585463954093712027693806760364756517304085420811164895773678105987438555330274845422960945989490376423014817236126552898824097881941022727106783679593927377618669698342630593590414473995804636028689544897617006352008755915393677181406385344890393045025669891703070891538987257433871779840704793921510736746259979641183199749229465274520318045086185528136996606356028470448067785806472340662366832258622650708281617937260451263294137508925216073622260599133120155634839273221367192996096055678002181415226124065164305847286728458813421609725853090128478780775602139704312830392254539745526495383204832066157728617966166814318001869450550045280312101980499207652578211932678726816599091346912366256330181172845999512646214362535098597214526947591716301656665042864595635681680203443959142933793385565503107437072353095494068743511255677356319646807767376710988260403258585123102483860163452056081047095637980538941386799399250752811619311806548584428799212935625893454663871533696672737010019738395554710543939166752234581599498295184174983321770084135102410313358083497147133659407280804349886505970428942498610720379781591750819422643733308082846356799754554978614056985081209784080683917939577585733623376502815403250128481413691820162360586816429393327273681835467089576091074848967545618925305757164131862649089101449953924242298573367894055658336326720174594240737917405852957877667958846516102292049983717202879240332215146630731010441123587535792566571080519011390711516092478241917732052232073373410063165411334817871551733774819518405620993184205411079908995554276982547326660960399165232097839278426302209792173392814656875310822443443345316747297578645340811306788063046823321305916041503711078809619350915223541829372147539702475635750996281002235370215874964818683574302927792587021465301422294906189095925023507834881393512800520595192966224933007433542825854875486316637500226589961751390835644478048158879338674117329643927410122528160630749026110982632006864805210891030085478092148886553341418565224914267887624738187988585732409306230853743614665963768517230073705269033235895099240853238491892678367887097725333008930677139502864896965769177292278355154090612308239199900434609971034428471189367227469669918589071546031316814698239337627310705399704959719623082632635897736831309735271246640393702100917982438693952673156346377149515852284683879258470072083149243952539828657728614660317818984517838805004235878338463399250424839649964637239440263147137494716464566015249062082285159354317176417539813339150161196910604482179690100043505137870018495030782025188145671692193845373178180816079474926274592918358683615090994711025192028232127357126851036335811882477282515494083478424990336702959464420793436125171526437657260566437542191389705884322245388290269663474837970520499051069724660897972402691558430771613575124687742804090158374862480564108195516086645628382274405095027488759411299506721778182274941602788087218733049804839057921881545078152779402631613325986049754450910339455232450434610737967077517466074348013485931576713081085515639772726640501921366045074738508071701936106788161132023536127247861490006268467953648424367913778023220981529266981370840894030456102597574993797219009850363121356161872946313029132821572115504203407046237280547717831969118182121051039215872530134681671813389934554882539388759194996742231666938860029039751239869429532719249964293537984033430721561437586658458873506543198670761749237068847416849576904356258394253240643356087989518474379192958875271368241938572437060770873564139208365578198380938895867984193738293159565118419860058386253837034103193478067572639169852512634624350071524792405242604760519127943529925209208483752041707114496197394536807500960438966137101857733478928960196645037347707578534520320498215408657684918573867650367582141620851582483026580142110755838700540264912038629614888411210617026442184763422519674209436283278962190336243134833650902442988735076371622777768977082768197973166464011186190793210895398986832192613028397009646781240188491922210421952763520361056390511446653469656747711230406326914290829081236142340225604956926360665210275808502435189627959608154249124790016060838107684227230705322912095028339055791915183454966832037048869405309858866465549061321663988268070836663029709843338358232660837660687372883924782611877458815097673621822350653295735871070487156470549745860125211893898458171667235695342179789733204415582216308398665963951895714006339021266475012286471550083044683104382632546544714753477709227397560815762361545573017848424662515031766251810106124860914077415695475983651384787353229455427929816843836235625231787726948368771565582654868405908454296431098437312694462699429932489508049596562177781577765814824122747773604935751014008679294130520837312458163838489673162648110030263417813948005440855037440570923137171740860851024627358143096744739548938129135658184636574227713087592264755704450015250744451300572714546312516557151168636616188634136739867562495726124956123390158340594581340586938912784614129415023188144813843204866397632959949802629066714180508669737548338673615624781787769179237267053060939487999430875585206581453906535817290718579233142567277160139345700532586210913201227225064225620766338825808046546189887304727135024661919448846423264398238967210723003592397023298969138730387484364777242678194363589291897992559092111658907356514355991352388414400324316938511767340951977017696296514673676685605917852792071119156844173766584988851635919942715606207569593160074425835960058778366198333657749630120154747805227222741473350956667092977515859300444393437964614092980408092677385188663495058747610511938316302502257333670972977230734289389634278802688978617758693115752074896479497343950359941265293990701506340727218566758389373422539676281562119357323901075264641038157460589985130156436901833281290618663033114232542466166275878078105564022225370226128772884724126150369643773482217596958579799176545326350896528799650139345659611525782702413576438243630716069492414182325733207068902075504483343449180840989039807448226369072169099173178979153022858389189416059425931430210446627148954048792211065977010504551678746929223293981574182908159902265610027582936220638483952739302668692801732215398729360980003662396999392492422014941078447084996816279804076712458293267480150468523756359029701327767071146432341641881869683052914455473041316266864944621122448906308356997622983617988953162735046307712991464527050503546305988318386946850254502515021585118751010315793864283914075999577639297051848239023975454879667394550499589081772097966429416377863399172191002195622080489908289755707390898813102413659046022183922365926321055417411615101535888327996357215167584780461540514213998696604002181895661396813632563918143425878535648799696906942703720366076880906696197423914537759711772627572355480255196528397057416990787521388308321320794396719853661460976774953465189493124858698304646394095369474871778921034657190665242186483439753389363035555316969458176355834106790414956768936529991036448250723687640126557767340336140192140943771436775450618529953179600989419107918202064415095004729579190007340474336161454931777093502539384169912085892767528616524642559713995302481308437416056286764748874872359633122822860044610441474674063019502169385295878718830002334879136146373223757898039256846379498457081002302352751608839047896962396193169396672264447541636641113417409734611541447134123105666387068287931073351641435135861643770081457098369164116100860765366202042631210673718506703767936457479264624110316089312420138914851744683386872728217467290203835346749145907350484189325508698212664217674796540636650454868129580798112608572792709142834566955681815974337268033764130268937867135659944095655203155835546782497898011489552396427162807303527669963448760879290617587377026181777649227268789809829581773513338878435918149885901331242221004941106372185827845861225248806407538067405527567540422579362316685427657167906702535515906668736570318925362971113435588850321232346676887805232733134826585023195788361324654580795331712137849084913761675260428992256986661642027929323399383705112795495869311231606080704563613873106036994577694226784906199746958056062458501018556167723267593380317689954983323281286992471671709217150415570174032951401026206161633063430152523469746207614417227877071208625541722435406235926946314032392801348825600029394503500956690500414408003135746493129488392820683393920195686461385175006829896492938493473048628681766982576078281921821040788935786803121896341906901292882816604830902111385986362388550010580816190809762335759365958773886326821273028926614296229606884461062561387585159621871217906106455526672969930046399240402975572127204720426585372510788510997735341504208177356523739590839489762199332259625450879194248132259143419706818905769182528782677402677886606901991466416324809729273577798003741368061362988882526828668377947709308118707858877088769309478509299376835446477701215827931124197919625315924207427975839937617289823530667786436121759240705176144517269473433401635921811475526618924970271358983520674568875684238194905224555489590228367827566050488375898773663421102237196521431197470414537964811367411343700899345127337962341909071024064508575268375873373955669785206336162538051211582407693689711815302701745569402127515226363297306828603075598407526689118290940161586593717801628662279147692795324661577117402331875839940642607803748382402999688969607924757640267549701912726773283996740610265037017097739470383287069466308516839406110287768673448635951981612168432214980454811535970643857004354949220789256194617833500464831011915987744333299681135549207995267759829124387487671566832239860989879057952920593924002711796334677871845650708540727923771252297425380977518255183003023153824665317853053234761165262791313377313036309039596858439517419847229314470580839481571831410516896331818948758266925847887769090192438336320011191449202925587712121410851301661551040711552637409963759344529119833509441977561702201976503321159492508363277053025033167578534656540369598372824406846446106688960759291103079372888271886724698569589170763602067752744937754484101744355187973531581599520784873984297172465785162238282858228986965069520153896746247130161467676550029700777839322923947903277787877683816168438177946456493538707803293667114365840590666423604751752683388637538146825629119379322958452681538300900491082737471832013841150841718769496722941287366964966625351666071261152502109172530336357517943847006224652792280266782018184322085622442406434510857462691729799297318567255670120884864284737594074666676113594635619259709429643810470680245248897972279077458068862045904303024451274454305863581179289037838814120103530442394553360899928444749951372712227021259129784940968673535152984670080879488853484460885701311088855001945454365974903414547884711573000901604181806924530837199777066069968748478696727520550099936365609251000804967394750415403470869294221580944745054222333686632851701987066980483782449506517038259694905345940566198161848898189698322168472967831502956248046427674177915704322827640641909758847646970769391591956318175528953308773592350790712866229748840460630520281040954411842664274896838058927742670432537622972518541412438478437500799318981913168679903330730997615050142076895107584671202926851353306778870929226115877436323098917067551329360149088827835182243127507063726098287996764004505423799484534005984265671404717067473891757583916530695460188201593729063895651761608500009441097836840510815131998100636426452466921365258930475672356523795659004978372837345300883908533824202812609226893642498937804448801328036349986501440841928806587469912739666919253182659480713076733354887679933876738526096322647850481307408386006713690531071396500268423745819681011163069952321073695520506619899610427459694946786929476189452633863001334587763503143239573949349139498859511613409209181776041984808084935272687048170925943947676557981016389728740199602201737948062930639111568391219761697460344089583228070143094066003740321012190045870994603494583923147809866224156929345915959264707945554992175787590149729469293751402395942584665197442634490086613234537535624421798145611962698436403556722643585493386138773456089329977180643724423567924763431779991764969025841394692270720507310272956779941954849719571650261473753358466122688828562191137622496127618892982761045061217815042999352734516305613105571043885025881265578389964059507810302607556727069098439587882605495075517454311411714006322632895109736092097905297029663720887848583207105619293188777056346749827096318572485153548434892393589269547795638337997306646595383737773197297720227556553812964350646597329486423965795837271508040966762183030525706500510750321045185710208732248129545554516905055843149625242616440039787162848364772732627780470792445501732196138635258787377191771804111417458607944083275378253488248153906656286685821785523313998921931616386762644767081703315134375407906297932912551261577160326739066301600128783708466668286051985430207638635543605699787341552666032028989325310371721671384032368057926517528428364758283093875590718602993770479108181743147189496018371965632588021541751301474204603009137275710221360448888801658534750233846612125200071185036097907610343568671843206657143190348426371346074790154448258787682082248296327684104964417523573355642307221480533341540460684754300996147814363089290889090300218996392476495748773580989595534318952720865929051654978919632133415184559886095778872365974963278285919848604420190256613608801106371863917274930535086522777265063815114897908666556677458066756862735237859476185976949343259072710535299093452865762296670862307301983496709966728843103673168863506562372769319896233960698053848717517922023127256172830717548485122282570337520331209262186426653906557695563346300883628285831944628214009574312982208588859134422731461742637380143169141637537510929708365820803023480000457679576667433070124660251691877487188026456030824722228064995951720667782020326991994639951976589337774698119492241952177796379056038526209971598636703438947814552158255555643878918325044716184995434314479072389141930674258812262381994574716772059265608438610484017272888307432094320090103602184839335006515413520979711747246741316782389304595796400621779581788306747691866064602854503979865035045550206501372753989613485223827743925844642384393660738727852232903311960654749990049504012001567755217040087676943608492194044173643246282920011488909079714474018713674908602264958406805357538969723772757448588974356107166117070055398020571217897587787162323566911180885846131220132955774119415027375781018979216633836222354716468316216676952727417498612465053014865617206362619645333359398296308221610099555281966176852593125865945724096748642845448290436605197919264091801297655484055927455341071530431521892779812642502793918198259990624746089958656350618279673493792674977831743724643818516302169702195803465301535384513539624252376037640876239547168374022849080332811588291553599304324798072060982965347072674517488304510580158553949587208824130427206633639270857270612085525548931665011661140458021334450072996084174540770467221068018125273734443177166990961069656804597752723020065953650583408788780772320897318290363541418587390845433124242699504022617084630524786126362845865243207743396214119972142026269738526156327945204431910697517537170031706976831396444843995051604443754248319548124773062762930969032618220150081756482497686429559496840618865841653203749736562281028974518323217504580273949557857763889692446669752548283652448633947807161129099990793997701112701971970551460695720136198891473962175889709136486012935547446198337397319865834299728453569390548329239655991964409014086662509494208965598709376313063183686433922544152520467363871577707625527968139833384237316055575874000558105276467643280283937460553571232386072035811878525659852304851997296939521391776538861568844541688922383332489889667188772062208213359833129959037373683559121288377504000750384122235517591523774663562736229381384718970018914770957624468365435211363140110979492906080672312004624947712230341254106983694290565030843871847701469320447707969740049256713606688724791300786084767241690066050134346109899121948307323138703612495746937918888454091275304493795378714624189124687292594611033281075532567483802378594595754233654729980237883552093623556760294295767178645594115351668740304529465919599684068641298457245181347662433308843225804827706041832934496854341269827254148362134300262671640920700511627156554920973691060552360697762311064300397198861618738916477397038552735628062776380181093913560653342733169096291269529154010030937038910548935035401639616379300642886280095600391419493124821687874853067337692417267256003335056482539348550987887307449451557848082034653907648423210292734684237829992442790483568700246547889455248634294095894305899105767649604972394358204449821568457839460573756391248476407949245014878008144418998675634021245724794219075866854934475887029926914725990751764335381682489400583220515335905366804006377787410437691231378600718299531440863987629906059978065746795025115316810437370309120055601698995301238864414928397974323188890313760446632799767192989996392816531041909464209987710908899556949271096041820542595439865229390180979032922652682985108762665903786312884412353169800941927223874390462825904853469401973022090572987005273414960296253059880118852233151234091006102969305157945020741445870566420614165581072531952439430251934479973781768400521302654921107598037256575649123734530891761443179311938138982850914790878703223956277012886712811193628774325187257416188053038351795017517945410984731910937596456747155518367569810512017458458775787392431033821446335609473325336643003873517979231794837344811249321578855478762903379191928698034930025041797188928123908134054187672005885221641052378279112574581224224845043532392908243135892015452265412836347621632389962184766171652982411612207792605069423155206664005792724458306803085982935591090653666882291122619988107153677576022894892906024721558116101303817788834580199561799416771752356201874187868919920359786958993711337078363626471258396705586017732183271051424320543447207748596868248626216852733254898293392696658390285858315064292375424385754861627062447921049291432728442468201386987994233960943240413887866227202634008956571566230277463874087597551431078459311444117857576009279916246207464373520289414081902490159760046505928241821220256623528541294459221559675596276761143960784870179840928272766028632041786551278525089057673058202820530862865043576672366521292416322178339463418247486671641924337772826234951787336767567642986801526145520267006486444663639020230113757723969660086519244817561206394544905555363208567422433132645127599305423929434831341990019600498784037255774033121870353085131175799011062277139791452365837003424530880890008326824127772387710579941237010453361709291316777295888318226133399002545966022377108581227268170055791392695601138424686212977508450380227502525647214170339586711923828378330460741129934696506704935014423274325575081036805763800048234193133960420583808004342009734710150744839083277729069212326636067191933307454366088419534509230329767881252890498521635860709814044055936082033676191462773503367873154574518495783718825776694676588522036726047780530820595067494353550924233269362483065375865086978650254498097651471188905384279967558093955630137093676344996411519346919381028407114036269812664664263463104447230401191719210480020390563283645914735265302121569420666847235423860480468920074939924082524884523627695639646003304367067558937079824655068593718196030599052098307330068599238076329044950848021300759444837189309535769088255773957479765890110807499725117414819433144864500444418985618808935404261391756612256127176244994108714113736558192945849312045808073783098638762784987030685756145683638672734417581435835071893983131896500965022962768403459239750033939384939075779469810634770191930845638026451236769001191942226044584721806615455839394415623669362500237609040823602770459421399954998452895486337966655532738553305151419887983579617301549675906513745761441538359219426822029972284314116125173142111533385796227801168914118690943164504329224150632164432040776850181366475069793549328065053010068605844599196628975021238719809802969925928325375916395305397634694357877090242691515758167690493843117388986732290794682335476532253667697404098390395773831766048489079974172241797311887868336724183083713228873629317874315865748193939121685847932296131605917696442383430233957407880203880650529240394376462052481811546261866036666514660335066197308903061786380037725347821539906002499987865452735149290324918339988459781046996820061109065319099351951799229396622004453743981116941915250515053306383675392187051257137764702869621493090458487687653602867024036288557994906629376994915440528201501850443957043403541825598293729326641768675174540063943830383537240805197916987120596290343726790099417707835715705324455929973990827493139878131791472015145116986199211955345889197185619246505442907921819419055975823323141612909133344540897844067498593900195946528570025819784457219134563282252795113892689785081216263182178751165396364540090185719373760356568096417345272658812675145154147085322572050321930610818059608595962295227832313895670424154593388031346652587666174035862718825945094617860530813453139702004508264523055561464153625907960501802481230339919654241284678414129742180970126735520181119377196962939565128464293984025220852076260201115220304984601892402705384099951961633107833066045160840730070398205905509291945793288138428069040042550488986127224845984763373281564176068815089530998358301845356978855151969929362924828155814327844244638865610923381829298101519192417155648223729763268471678836852209632814002556097157172989473352303028550643430620497631781551717160144824043382994726530093170814675179680167253479113962717273589264381633430042903186939891109186641917075528297200474585346610229186275494104718839484885420206936766095871534541953585599088178482531701068572994756309392572031705871057978950620597531068616984729271173968003729800525503199309374334440834906918979859890828742560251316772628975384811316884549903538266307208148474536793118914987668591607741433655205164189066079461469984035892091375458667980649924646734666004755503085065490483555948299843477457275059075732880360053651232897534685862890636647025536879376152915429228667339515891112195743997361976475121832881386563262731269825700016576120876744507659393273192772602775157873876363076252778398881823916158879488750673824580351318343678273496709286550590355140952853969040011232358305623208802073205153702885263959016288390338906212910418927027444365441756532901615126937525093197485698058484911273906442456149180738414290969712818991800275905349702422477865276266387243217042852643064259522390564472977052796232897733107235228577455991212556576650373317222584341198032104908108521925050775916696192405931582505145513046025534580746090182904028263328234235936349410064324983578338611612683376905547912918811213981327548788617155559621000629153517671333778349403488339796308843584254792394376596811606157060154763199544752581892886533509537764308419226856065258104485553563797665992612247861490090280190024241346099502297787455110932966714946032989041992106780409794635457202208678186182875372164500560856103822218631632219963563987371777723528582105661503029246178366896688564613367421763348999848310147489619484733594640786111454891129265928454714182043933183693296092302421931735047800980825339718172113228071063722136832875532071255789046767745684855787659888965717386183466225729276695559924925932987481669095708705876619145913599199046407577258409154305193838366408532830198958190054414342818483293184709810677879915946029714849349868802627031423040545214152371859439926747291911643531640591710867095872794990133484766867225973810101258767074607098269155364929951708604186793802728269272317019207296759717446698397718182011631720342029430303668202032266321641978309012918908073039186276048778030724576894815800393898964578210276883344582001755272818541728197949941265252340833778041104808032897606112332250668125241297904767407904154970396107374134389524357445683915206050325953859587763188352761336433375106786781493206342416049164816745013468107623743071454358885252105862170305556287935806637513912627283342148285665322130565154743206997959420165052485365736925447558802585914970041606401159239853746117062640739965148252998418576210826655163424813249535619925156802908754408507609574802700015409115149351439941845387496864258757025940593768953339491386117341701473961046212589646629423052583492596307540309255592771746870027118819056051568216203942354003228341947578868762848932992322849164074535860344402197416229492983187403463459037041823593682494319700139801391169746617119696109327066010409467538379287130076074511402358964527261896546636104086849150856875338821766494512372144335719062462420781510040207596711654127967104461890021631668433331386991282220887184067670401176743722365117087494521670110776534581178713564823579213162677790839319804014137244830723595678470744403603369220488504598382596225687478055347792576746940888210931919518229163674441285621259016984670268108889102580994627666216234454667074591952978540323223116587686257415334481579707934895322578086225546968565831908198333084726895648825285307417065217145019693535923034325521035567262116597578447090347788589837219413676310367813846778120740046005047121888958546742559435854885993734826678119943900727278547558881579745260728030805614095846811866805878308064230039365559455548395704815606659756401527656334552936774366283680097493918155920114312680234367090200648152998155998426123441134152017876419126521993714026873560613991292544744404028096558614563253392569575099844733243394608041274831043409788769982453730668972456014240017386321881993690952354337686710232398585332488474266827403840494058228573980608664569867882724065969660099779397385364177818132021472454625727510882471592204892122440436479490195460897684907416070676257730801001966579177469703925383282110148662925631883833689165247221254470060212532550965556920448447091145106906664582254643913864723486955646196200463731916440768769668601361150544686028201600292578343969972741015419276014926244811221038590521143166996576968820231547226728657296274048181013027282087268254091370358144193181989007686517221875897812140866116466856834467288794698335583773288015634587520125553939212674810573715561852608445984079614098726528152278148515508237191669473542423398683442647784468756268713549747500656384973927165702466194664055804789036390113673658323806724690404969329940929883647808701682112144375508577485527821092133909523021662917339693899907059047784119935510290364650752930686289280068155614451043339671887900376853978293876153231615660946961523163609518331532021599196074351714264070230681485334314339141609178397232095682277822743840768457705897470642643867158948699493359756370908764773032794462114144578514112536937025858958907262941195702881584658301745640503404139150734597489631166778655458664806397193000106776559627551698261584823954294601861088619072691297419482825232125882691689372061833412503386842897259850489158041128722595331820914301938640895471547296304521488277313876231957687191577314952302379717858773107026558260276641143473482586292300971727010918070819592331553903995809530024836092492504135039111995592846685023405103772122729962852033423252223904200685069572793120338029658812503968120821145525186897975509229696414711639013010796136058993122278464049539745896889442443295304551305196830500887192494461624161401845154358936954621575680746773131760132977505374545354568928629640314066919063797045700317721238506585995166159716239866038203728780582414697342928240265909215845690622766441065123180973746403112214824150736561814464900686282693582330914454915241626955998943662744085461218203941768192150210822645016524781954065483550592486950224932443384393004586199984739457521857033885274111077806707213314136982293413639287979498145060580912075569656503382332938574671535506719682176979945401807553348091680290034976925414675881561337653222908740209540104970768496836325721138518527986877116515136193190648682521291040464729219236275651318821173685489623547886249983299581916067545919250975966177873034196040734859789037210084983115234337133657061916487115264471217473694994993027930321882901508821249473214470897742979393788714968345631378693437383985754270764746014737817528327798671485814400106466429777566343141839058344871743983952067450214708576748769285113061429676606699900983628167482077585137865737884267857192254948262866111558945230166823424173469452814041266100057439284819214848472689939288357417290921307713384063873004692901585159845793869593542236523291761161069623349931682301150939597873127174856473898674972667714043063587699453812501802518413770926424491724676184190303522455686418730138020045302170295980978915460852295024087660937610037699529238715194664666246674486613846610875093850062408842018523378021976277426788523089321563759513773007783735991046895433255047994094464509610629859921748188817155911980265659880334978785932075968646285547520425684189661833358781049404218478048145083639032967653914595840051662248814703315174658057423222270479358360465128721252944348603370686624163744213733890438029572056360626620352148834071790630771259356944436331812715301569674396271348902156882940395470770114778890256081533194358674306844553619826834511832427171388189692667552734990690936783974790627612672333952210067709292990387853178699513303470239816019983538475032152095129995942929237619986796622662035574943457209907771895718157614769933642300234134362042121708945219153288010502585169868968474562193192923406074462481541491571171338488819001808557013096516021302492430602493945018658754483403962655132304947313990802586269599811915817924514420632225219183731988650174524504537820290204446740001941536218179745048849934229049550896451689755301780294371343834424377835643697902394903516569358720704400925198320058158163595427796849669251212546849420275201369339522476337515387976798454397222923632003869310805639957740666118037776256485484576801962914389920890008251045929707807913958886938234994899141620205790743268115816283201205216135784994799094612783002916923105559047842785660334722999401067932057879125877155387824623846160162914872797051701010669712617730679796547191370231536600264210077876913071487831498191764760531175787139327759602076323218989056309848604569218315601185774728718130118331423377256067330320527077162670252876359778312158437069785515954299268152714779228739431973525988328494090547684321723294600514482038324107642010736840116778454673110386378778534829151652272958585682090268738617103742257847823094281267427256857602948557763922739569817396000016773539456008321925701055405158004623057191667753898719590455925632777852547205407775116619870811699328283964341405654963306944297581988921776219937391094782925569936639988728640509456904708941715311923275004614075062482112370210413063621818407865528272523442246520472421283140841359934976167567077596082737012663877699328720256804084241506888186840242612322310205281781810751643594096695584877633625038145405813983031854167967960865425062303566678491433463659159027153087440588327908531288980876826059381221049991692992510610368629710749808321093306839712957317326125534619982638861106297321268020251567843628354484344838294324086014507250865042976645827121826892796834093150381170348707412819583098002448343337713447968451120435758973842391892041315096908316549569691441968427851164959956441147435225296378071056124647269065518065137286242413606222388640745175640749337611699882088234717993756713899137360777332840988297216574911753322069566553388190501452217360295868994350927485458955545590538740602206815685933737224419457174650543672381320377034096115659421505772408672134254682368148862552899592175330257537953556824789822543856674284206638064257595930280278462397707335980384049215465910593270050424553243199253288187872203050340885693086883948704117376019338970042070708874173798529804624657380398139686923129173157364107999982993450639840475126998802648844232174441102707322374713168895198845613429788826546704484857380026681223220218195024113608801907672263700828432891758120138909593319115716630754132264960128137716328182647854314871820289322447972767043334641932545758361236690424093231117770673361033553092832042269310398868907844864581710932417706949180233926065028589403983928390155439145829929768608486037454322139756913933609524305816888488159433273640733849063295245327213332532033800662501891203700165406239729622521107756653683760170356135998868075721928100824930161712000489742583113133689334941796605917675643933259361834039484041747181784749365320109909464225343690844496508873272507209442955631216187570226727476022673888827019937492572870570054551603990961806837346873343620014967319311037706536642124591405225115383489601182163934792790727352941688628371926030329743970622167033209254240186537052618954968604233060333847536836774697186959600622107167648369377244613023843231897072707092228124181893935962796951898747765767438222388434493047011042506012410889726993507108181333257651284464521371192380499401321490908506273369178908098608800219674581354020127404922566457075980048090040535511034961474769595017662905878496319179026883589376452109789389338711518739244623715231096079737210018481854748961623111399897785111663100694829424902226517868770716475459194800582172534397404701799021587077599789435515234035710372444414569487699165689074510535278655000431870694824149929756815640395557102823050437993814167964657763256841160192727109298909985914119691337455552478981804216690644280684136225376925084178483015677612390409419456574486337848416157118814950208126170987625854475871294784997682876917645561587127948715505462573970140712374760772658047280788349352098077801124319046342900702283208728851733954785928178084567627012972236733253889432070559284982603542181285823456372796864214258091775763596005230011202203184185657556003843287475542245554874603588690193239153025282122325821374307389974686626853668037757777994816526886924928331924874294622096004255063336358542820619491499295909869961090663031871772723239649959222230129276847347266885232024837306102355097822308871358932398628850719256447414027138328111939654354457039164392191118450520475784796114523526479272159192448533694634842229531824208499446214357055290714903023725549154126949684885311642613015541541070641984575306136043806833894715224812662948126028039623044242696239997205500147283866990733773944650062845808251494033494759501763795412865399867044438939047993947084422034843372195686366177927032891947758468165135043217633867286159491353197698515587133247619446699735040002270080362885918286275593824890250912350657400624800325464675622387249511979065551464828591578182454029884128896915999012991556204395015797684754014336306435195806807675239712592120164503285222135689948743496742167862308395005708444682994335562743201463543217274666393895894646941206638210325522233529729446004660843423295988520144790318290301036537736768485081685424686102833183626532065017831741645914818780720038405616974919458984385513147057435884532655978033655758593423164172049319915429361860588191299225283665715346818866716242589656919977724328018158527631745641427043423345778746450625183482615869644793372041517385922409878886559000986637152062327426627110270647731313193033410854576076239217729069524955338179027834061085007339549235251985782242088994902036017644734751574615812403628792020083742541545648312125117497716801023586385877119887907039246695358207515187401506664825114926121596119842203430686052599660934766555652698421132183358697542429453963306984321119631019335127892472358860741602032914699871932479546104723711819849087057378512080282268553928053134481219879560547582319300618802159590324030133634236097560379240052469349056325771691046613740159361466382375353747314838232771904628466021371911796397070930942638418481821406819906909518389569203401603706798994995912916652724295208350921682517485694071395323746797593447528954279496100092471417543098438908775924224608049547666038783516855081757804323695681251131325380694046567929968568262021651175733183625807492190703695868747890698651483546171128286977496768194775169687578313042161677883099841329504875885081050156787452913122097009149176729814170324987047505986185900677998408750134394630937658656580247164916701860083050476966220483018368263290663225634506214967300510751391907869127176886896377240951236432745067798155718628886885526075911515627132644106925255480218242828323583543911805056311108032124549893388812187872282298991325003507287636053650986802992048278929461950087478820003361761675210126030110794613289072720743087457514405756419651090640057830144695832854458468291160414819547195914850611414965189955388510410424113342059876389434418424567544709739250365561278578262766937164545885739562545742217057442795923773227616703730196194813063810958850178132668734997767413262687539731636475064460279312637941390684715757873551080007792275976264222865121606195305002015700321082421935697774712176723163580436328205405223884516118719782705180222384497278640134390104281331408983204462218692318508530645052369923581116456007687455138460496028615505083151242093187791176152078409513225181247307411000828254903769566151716139607281605440712596669499640434467448499379976099479506527315631348606448956037290142247365453940279447483994779131978132788933192784744648614303731303364038679985141996831688344956026485217553564441890367758054981269945824561975346424168521692783175688364864256112468467791829211319863893653022089196873020074885909850352939860953030256816391532525566839777699526485349484365148713879487092035217267561202419285176485147044461594445822957455036119340923912247425216834474121572074375225214819738549153994174341411329567226348175066898855086700484662617205917521482110171162725998849478422113489000001480295422305393066499543031892278343101438975233100742889052328246273381746701204703629800160451828072985301085405330164139252484787451067362440546096388795750512426349774223178504943348277340660487434654742460400204086721018022787156787379171425630257766909342420969251430100330951995637188579479735991367131689935369450044035003780555758782373601653564911820042528788781084129839413814832484279023240778795955662114126044422731518452087312034367181874470708444112780521806256339734900592598252342093544616042706452019605895694352490756374246961165453368984988675828341359602147359927702953878612507713905774076776420422954377841994879304354953410488574478564599486978536983259799789518494441059521943552634423795158495862459261668505218570640732677876071281249537354395190630360536507899938835265396172697797367051695998440434228371443750565515841543534275957984876463018213230720532902550374161259786450375024823240180763583632496010566972544784763784194432832420968101898591615106261119923889853855938379480057881610102399835108208530179846541213411585442079065052177751630505838511261829369256937948729517804640626415639698104912257035845694316052236101928905623057065701358455743347948106190374541388522686777077477381596407168073249705174772740782507549227483144982589889782226967888147761859995004677354644758619079590081275299744424531372147741424438113344305589644033684241683844369463920515687286600794334636646072125721101042104756894472501073628278031428308035694993581629237815728604699965366583741964470074602709541279570691185866238732889701301779809591105017525622314304907593330020348330883039049496528415993583180839113129533100383760531405782327636156998850867696647763121097533310630197910322071537210180644951519425038800444132319548435369371829378722268510508071201131037270766445019989931135029494703617074495856325728612736788762906517532816100930180030181777643949694536144265891154056880830432458357246718779110931059743634686751652901743360183394834326532886579093950092135070328697269772135901109750084721751105966751381587010247255339058682035521676357562984774189264797380268692105365684108319871986411860514949353668757623988230021953318398968863964910626568567116385848295151224102742436789391810906516131165190573150246372311419790986147476739392019491760467880941453357213189787587204299647576935055835491033798681404012203411052214395334315061635925033639470475767286365457023529161175393998062552836097551876910719014203697124226390385446152251396390848671551233328415666116028421454147037528671962239556981698361007492184796175222065132055162173345121455005081545450495539255828265958024984325419821911504840213484254675094984905379345069955949549512815116806369171886631846949974479178766774742873268684259364802235030102103331500401681646740173467956737383094448384403302701152362712669671062298966320985922314256110529486657024262134120379150881946761250968913326367390536184870880870016459265825673388711960693691891379487924355259658764985241148402250294214078602868334899492770813629206225371205560374955522344007263748746450453672937677072935259148272857019969295545957963671477415127822387566878837009669114001505300547262989177271412118968260821977478794320820344534306676438625561717366830038782612007868117179333851352763338528556596069075699163731964210998340429935349730846850613156178015578857929393727455078357756926636218999497977094220710510515344441409253630370024663197704361087669897336655294243375057212288263040957830246833606452192159960189371395070276108031796943252980926503245290520135012095430774594707010723675542341093111329605070367635454721104696923852965856208923560280479872283504230241656455156701783295344066757034928724315903894508809361472421775118636529355934683540019030540555924692976764441202824438796149309148644188647032148060903507836938872869972461060012363745457327842942829579393171989366411190036258940785878311475014838379910169175587449860814518057621678803415235172393303506954234087677888594092247729464031607273893462040635975828383408152282358603011878326069708549672498187158368340132874914891767611136901061490772267999928713045915303547937863330868270060802752106135741985984133558956933983849953503304975776773655367896242833456131169706990176871547124390217857049942626961234785226758254284669626451832396774153267441138556539328840469790724413995664531351270501563801087774260875727110426096649007084926437480540500810317628822234496498769228482831885342308034701454255962978404626295580566719720354522049411518201168566483906180113455270424723521783085208115163588884235668535804305687517988093509418330380800098737668254285835976741912803686688861574591649579543660296305526119099992434604569429999779048768106780575419095176569945189905942811264875875398737357729473078548714607528533159328466679771007602149562304676081708534038704341924598419898505527119705358646690221332179380286719560192806121582321876310400755552661877748604164917040901083276511849227959182276139654158583308274014175363963308101319626110666221841047285775282815811239995587709176979800406300531336617299589462400141103401647008665157002701076427118103061876077973436647544684948654437648212170999534399413609445071035621614386610760240403684176676297119509383134670977666421249324225048954352118805423448498285822287556685969614340939715262932571220953412087548782976968345248769131156807006443062310275215858873454696709381715635640311734924019124069961802485809123660664541002213283610379732642844535320403981500173889117824817526814968325605206017287803315808802397605628268408088379921339375661027033604079406500379171145374795221757981874030567620200458625377002647629936535721579282717516999153047340407556974955960753259418760664155479243786836547680110424914776021841581929925533221734113072088555138328777841989484503257170961930310136763701042778661636818983571513197719916979340401344261041987182756025540045081285720713333068068449315808470964357868543965459748293760856666767260393692444172290308047206274581476473694955698494000476490785343587481270039398749583332680908915848178423826078656594828422838014637086362610642759669163998400029784948473049442141152221037614494355845972745380298882484234672875666039832225285863438732406668123730413486530597788600148232045387315919870371308738828413981634180810224683810693021442509156765457733936126331124640698335077580248132401850240893673830870748781470749835555321566116451841077559044172389934410583401473427203174920505298892142583013147002578029378928270298691191778844567334119605655719163902879862912775120367003197356848431430031953955692700825049051315410557512371021121765261833654344439026084470546776781676546940138210637330315642133688004709661449181729855407878707353510425622530105645232852253888110510189773797494237509191199542609084893940730172342542633663905111597410583184078187802271994670900988558084336085874640814480862425946044966176886042997139025455039352111132436161586421159566401811116300274084938257299854776067485458199560059014109171134183788311052145071336787613940301324561582372109540631812686432954461585694197444538123774195166173900634559756841868749171207067565265474222714010522176490507356724987389278669741688136097877545389127801514512828324205692011918382958662734949474386208760942438070552460627691272404508688780419023749290106837877681677013452954385273261309530687385050305689565154844692431226916093385253065201823066947126618782835410700569209537460492154291986566086796840426505809022203218195659307065278582585273931927859571540149888710376197730965647695224647856679515180818786790555858430632282818375329952053629885327350485736186660707260390053672672732045691718823030302605913232251310055006581730527226054192799284863323498333277943934490512087050324303810091139899716453389197957214686783610049323615564046651424261560491365584361650976449773997510404233112706880125431724887561576599034049438303725184791609819112932341773587213112081405992438231059167243216185620254725995638788467693477576964614399238047409997168555521991900654055234398046681365232122123245729661753659397275139077864283168606815212122059663042248542665581819255838303394959584901358130250332366144704404344573704473201563617074244831870679850269396874274748026134171296160912916330543769094415130161308137873902422663669574914074003918404534949292042330430228613166771528055731395774348614008204778344186122394935111521782620018663653641522874940021069844809768506326526517991380089978176176438732302282179602193026621522279743779025893958505110795933021157963622896626767004308495096940757050402785235191879380360520025088012289853077633443599884762404635463696519771218400646423605815232944312817530554429021488517356508490115674240066196008580718533771595256845623759216704619845736286910465727590865389659564369099753355024003822575211944637159648757289363162097160623352173151985566863135199861836488358807362194291651309123764241603509479172521172354047141613713416937576069092100202562638740730136491532615606351871461332647078399276026218489626075235956795710554804536773226334039252223753493760964232879719220029083381345012086534435559998875743607441259890584318050287447825875444617871328261880285684749170802566659746248954728896152631029596036526242698146467121216650181373400302865336884146518160704159230632909283741006693034235094284168559495159484858242885789679248121391291567520286778553248897484487218101194584363907001288432716660625021494741766881729203181525636198567948207791477471557632697508175642991695012901920905867086959718133239751389991124557927397956409326861574679353434131883912633412010074943658498573660578039019942442030803556850279960865348075078026590750447145200465855203932783010714866644203397003997906309003805046279650981236455496243217145734884780092693350681244935081834614241329518403186767035276998152576780416707984936941558786146983330316681128598307075078693842998498841095063724668964655997146788514080790688950975833409690495088474028208431800370684138469995305959859899850989981447932406521675145346536904959308294566901341993104473037305585046055947943152882012820509397411718448113449907754952154865555320174142190711826623812452389029235479949167435976693904086859797405026450567354321024526408604476436760853451096039723778928399571657286953465407130905685982360655910707630884756192757529717857791650920377737930681153042116351338108239324745163854030991220443436242668660925552269183254794346080673903214842320290108616520466775703582914749875779908787075376229761983752181876395779646417940560186655165985718868087511017274063272090605130263387627091707436287250902674449383023450608938022283223189716062887299268953708258298962358925646357487631608480024315280661320540784302332574252901435932269773659451740133995331123244114802502487648090762337378491701346163647328208553972525028048241717609587374642189601433939109691692969478760644060459023266000641026952745528453506006868516048663701314557039109606757330159115412214427419911309869848465547215012146432147227300421828267578065004437028859384754589341727499334970956500338258225723589380232567895461828345780045175504718422540849075754613132133642165332481177914231727133523722608816277272546524674371609883727691381885873779559613607775467475405636760414662308558740804254243392445602359711732464080852205574239521612776347493072474182024365813899950138512766653648435828716062335942475596568155963138155962162758032443917347739254125206220701544453968829215352040457897604244022878779709300497749749806264975566937784965546877526884250803072959011519166945152415419050642341168314311853641007323295983707692648974030509997684650217366797193254761520556588993441775297645803238898562438076048821313882892021600260251223595103506784189375163151965905277702359686262741571701605325308578517257337393983473292790864733666762914949013657900822381056063239038545893100109113847263073999116143191884608522418066115748829696224036929007897252326130736442951926589116429392817046262405569119117335181309931164624944690583316630785230174288151707059595110537222538432626310865760472708511707678074799335549771622861574303935948000731245587124544680531373340380104587603205926376932747527895688809469695200502462756287228511653327589588382443772136499452980072425457802012541543088686560204545830753263464274815611239620183348386911232642659183709661840820359604292503486267108269085673539179411134150345975016583666480557619401785565306243206345521509744611877535127977629844557590129948894754514348186793555127385008488190070033796245198906697674060135508690776632050856868103966008228703932506587167991163643019777529827797206308933203313545279501614436098125771503857066693823269886484355039449034946583267663527597270133032009197882627034244409633574135714701116698619528281500884189365767029604575637902957946337116212191857298730132141169094373580442095553360631927102241995633557191740034999939825091240953688621503720065716905533667110485621650060285286060815169992367736721392965812140293492659278271611224930959625363084364965953988138945691260847033920484266174042532766257075389299183992039466546635502010875520480288483875356641271964168432726012820749353295550697944324982168329227057981563811820605126450707460881501691660349221252400059125447862481137639486630267887545525354061625965782986450407729899120126791714951775125001125048599462746178630243206194366961312205046962045099502940839345414082509334836843555897492313387641611792809644574540176252384908494833050347501234305779567212303347186504990717808261909343505065223239470556464807489599813359348960643377816165589947701320610100065094814602281976055577878247199302603716821272270505292898342044806238325913391161909397454711963477075788495972371502426984188545901416869964581359186897294584117566798762166335470673342790547794479967163781440570085935957102402022243298912544109284195518304178431661750359975888504751374308247576988101697984685360462083388889752913560290449724069115122337321181944482739181739110971686185377914952326710249298252515512132092541061885177089714998988521181559857240293052012108795819862810539243519084806238401725738941229302526402980240053589695348647961172982295047114650466580066404501698534445615781470891076748552520602984874858872733286414487838780745829189076597266196595764853063452552708236632461156326801181251721142437458889371985039992536355594575233061780611838507134492212940879956311539170058509051204958975279574393857039075821574914615785223519363339059780086950864747048169505499228987795825636895349932046446600650080469332855565652467204689152875891366329820672370090645272254067188504208536533419829056235958519656081749686171358274959626794560095657599093120930727000036486132656587301980731569137668593744735825067035830624197264558615103311042434394924422389551008520626688128305114247426735498680095535470989168175654995720021685931441384294959032121261117457904580259888251762784931628095917984153580532532494475277690481608966339999932318160567550227046709104962175781132498823832941093010487653384808502631652820063284292351773832306523600854552358243689954674580056119199490983783141679865345818210765093633223505582391652548596963352269464780146077370804329705444670667945774123918970646964402003018257818232004446736054740843451403082568301073753072295512407193099190968272829652440989693337371835170479676053397359016531932550038395937915743176783371318347539005716191614569468312255802560005225003982732459112995815547109559315328889575502171338855159023211142322871328133903919752470765290491618382000999339983211247213277426880033492440901846487030926908072184054128840873878332578137987403517095317163377654400253034799699521463490827611801251300804668333048459730702918760422438841146527747764968175837978641890806625410619890050633660058797783702778969385188985453823102975995153678294363794570147649127717695735294367102465310445239697671941791724865140950600465917289172652576863864624265584182550138072314502979134558098330603361817859603662224656377445477879606064109656655915717239620943701918976015104599194767208439199226085532228763614267996673584488426144744784185116839995753285612560791419427446463183808858015087347818820700919850714444994799745290735180521397419019148415420552796608798266254681092950549289968612953881817052864263097798984629280046155026930266956112134809784621688743495420383181051046247867822452270883580035000943257811615741302157106243643892855595659218077994831822989671090614050937177840249612374201270908892273044979039558829361019690589523500983587437855475518621581532730882536094201363592684855002521295719591509927685590467498192161126668354221828926413562473399291241606283761934110018306954540508307327828494398202256530900573963750900314302680711845686129386911199915565736123193657554693805108835782735211766692955112631580817066655186727993709013217859792361394862397843657913706900333935607564494908797461400551341825740297755333833317283806880996612245867781206300951554351180039535644777854625861778125054440069351191479706328761346381439996455547843346633688305119976304888520035789405774019125933163477323626334069944201184399545499698570876423795996072381966437255653822220064641512549932886797291307014559668347786615130753002316582270221386971784266148621942550532669693068544989135847640542411925646645015118752592723489319781150855079059608501634496373563130848302267912486355137173573698760629281645537951213138605950738484458600460315535924520650030415167235181603460475981824120081921321532831981904518495126534554150061382928796726299637063813314825422885626694375844152075557216656784202144664055019065428880197190849348814687714970420251632373593164910575772404835795511784059678680343448752090848557574807986184744709399962040795608990705574194687137524929015870198813098483001039155348304094271502325816339506145734154397184522408293283999305692662051030911681034467474260034898744917140759679064313001912801953190433486736716281869766984952827869280049257205190952921615182725447270105935760383936349080466448900286740257774874626988951668208913802009589747021893053887501213353843498928829670510568520144617392826670097010361824644201280756426379095897343528895228369524079169249403770562588719366360369094638444413488971198510499532306431917716040067162909072668133417265253163403187604718635306040743112725955062351900428372127616993725042896428113223816341769656712857497439355311701651316261262891679017875730730052079475481326259072259223474648223552219041302505763209299583860827969793355684383293815373582789168656899266495943801584284642753245143673411322049690208124203214673240926313736052025975432931279914680096226550044656538966688931921444782583262557501506492229038704877713718643946600778515939961898471434634616471860577360709894719727975017159312310098340707002788491565937086362590840251852328151737266988343349123464971473535372868057405801036934086655879984756631612466141807044760679049837592872395974914310761631283719645338641800678012091532782188449611037582671630163752449856496316231802942866939228145179739805060915116264912129086025804207992306662270129105230364526452984201189732183013342632580850088978131117283950569266280236069704205685511551191887393250209144752684918691172888406695863345827876597890337661623565013174738495901538974041730231552896919264028031325659861996323082355418948029139845209224243473560472239021199858443968186558506955115941043767982550881741467923469397937334897886442411007388494447697693066129749362152272538283767450174329132619609596793185789094566372650051635598871735385587123804099452038294227122676403654298484464439983016646897410801855466119788281357153811872457337262682935004828354409089240718867548493753789291823427431552244710546335643920575562659405227858859828484597034789448286135346250977143778010473392817296189878998811201186215473616607534335201059750556993675986640248157577394459582981227195526412964143065100212609366254521354718077533580898585238222265228205396278603927295446599890196377359817651342823267154438940256466914797761799532092462891065957589325386164807018024105015273565134509048821522594370650370083015697343108403191292592255697679932295863429640670553227794272422892616035784471855741424744613083885051136479011362352534250745132974803891472089943301431160861648448931963097940252365242514879684752879384220460458826616243883901683911607908770961551992647836286256245127964549150103975614904044518247587382591293994491342246024748086416950056551111544136958552536485500261988925884135802307259185959948517458357102832112742233222374433274075312864760713979117473110088592393994972458534068715273821787377667881956112619412844108223806218157936217218003534877233632760559660629453300286066048918252689137959943641644361547895729561034358071027726405123364527473991894526762999807470386756768396905623553950478598906822375399523115606516672282565019927771673194413369885059781536228984639485611864672412446938888240591372138813130792551295480853672712726530954775549594687935908629451504414761789342088245927097112644587048983733239106027465414025874940508852624644234044566424228775672798023978313051958271522000150760357731074527096629953166715850883632282049820721399941954837030094521990691395668506588539836785874540299638058269864629140040867640224154491264698638690496656799721314887247748167200602046509489856341803101745622932012769431561201456568261057562907940378129267653682327375447737562389876607070478416043574909106687374955101437826216245408163175383918396410161226510625837449318182527070318874341234250054221229193376129723924117360141770409196792564001811732264198914379699640220437054312561509732092478260135747036672010047411489737320893389343367441026063494576160241809804577867186262279262671426775760089355160698523348642203772480409667133077632360610686479430730718909526957580028592743787768364325460525341713180648793739225828371822155627939473406473806155425743415577834237339284277117041743825653254805928689391063520423182114304344930123675170082142832523424686893081608765533606492880138125257775577416058119393027541983158101393005376089118245191947824548624752933713298051366318085870523730257436589380790752695820367123412431164921418621440612346183916367383023101468243681771477890801853487236895202729035723547659481495560616923238113754267913438797568343095328590025789594254408670410103570248157854036102853462387777852439819830553026036168007077675754220462814584306301189451395292971860119274252188234097157859201675395890405886826494423937482901386788344117716723241896024214937717048930484036785058908855987478384419052080168953770878917966999892919496161944708314556354691574501452118266263757874077357738747800928958782193941371386210708521818000619703874857747288287101651475995952170408804635005893598028739504570770871072982975104563398510852465387567946806788880840549899239505443726013434296933488358347795335113978251969092006089320222944001027185355296942719261627298594036957343335332481624468265413597659514748003482891075675249306986615556158978065030977165532464943362738459797473362713311522133133367320503500723297434015660052238160340281551609290732160753911345111591143145913124695638149944367604583741056965930461745039137955071212642641703554377773227919187011311072418653392466169477182533683764368921249221570235918163316145461532885487494853062990724306947466069387232916268193043417360144141627174448008640894830451354425669087892894067054422294857159633788792430141223146181478522443105019798439130089263756407168796522809413128282052261203932351286716578376830854651601956629535323745145954176040098279921495341101197877247301290852069159408202014728742388232317790027212970520061155440017522379057663933059010649356538555863423770032182823364462827044605853243921839180902591455597753942108457133327323145801015644688303823258900549687759648300621367174893951983844875536109575801220010316157601019583563939907947655173621312560187300195398900048243048086768838907128196480779615243609246545008717870606155167615141559694771554120240920956511132699962510506547492850254976714221179443575271216076030894121010868209515899506976097808138812872890567889409167689150547087502929568672203230085028847373730119301512882153405244147790252952655825465037456740331337816120489326247332533994573052438824361650284240882606371592431626985798534112755639531381609380809452201894757811750401552583178188462541305371462995068253367152591207390811609538693269862819717949508569762385736355663263918591255948980521512718831501731907423817447544588975231325596888249779101801544777409675436169965875165793165886945678561782091791437506657111335663303234500799016153517767685287191342266571436346291623794782545179430075483060045129646616188238117120236362114673914295831690996291487163562875058230693140617250990358688820713087234677401424630316882041007625193158592628726257768342306638713197022669039391453496157669422197805510474789853280552650003021422400600498113994934916302433208961366967247966576453925478012485208909880853443030022475745565873005854180921890426086768464231300687231767155973360261310557297183553658497202890156431614555731406286001293635236929680479588316911584284658439068564474967898698384265994434361927788385818168926281271559447445530187316070040894372705697855306189298768362638385847331635036858094225083519631903364225930762314332910956830142777656714445844486787402362087553562342960436695595136113604267106910235518896154364141719151070607750341188806974315781635343914279595794288840353646928957424532653389193173071751335248742964230801034269454010657631352140827323575817593550225297247001414079226874873726422823967642047026409780009504794597610830483040543779630630762098510607142939466516920604090238730813632353271541336448047268404792606715944972330039913947622364487263649276108753721924205351241913528847101579883839228604322161649055693890679196482930819722098067299303621171325609224003981908339676416369277111423311637659416175103947203353190482910522652313057601530173209903329694865599645116008031416973182787418673079916101015554160737744617331438596938182817622088542922795709981453684536835495486460514008889072723267778706997407256370630363588060619169034201298750663971908934592767163939050839416896945390360814360712707656402479846495826608271917958713346355197756892243597201795945932123630168112945706664023747161162729701378942239013204008921809871924543198787744471292430173037251153601297847692464277325235466175689461519624443186474757510653327687983223036722120997966668897373031283714773330496563377673811610110211634527320939314237021383011625656578707805099415177610506216729460374189014655217548185412980700401321282730149479412533603395925298894914289229997145239399400652852537908793076986667145623335056542762665199101003999246620206046805673221249579741354047322727017033355923585614002355761040235738957067065696893282601960489257578173009576234506193928247120238972634219481208922361694764985228217754453672403563253542254894358364294955106249471294171328847468996644118256575319846013847106591576939919401529872723896734553626009590427388027715692579351016008026177300617079576349542623710295640932626440374819249624098826454883754644500881869790113076604668534744506811250972593515745552097468803690266390071844789143577958253531322681393484634688348371416290032172948599731312189894263770529054245856853063136416850875578691882686965909252981644237794089514435057888703175263865759068005231077062097522646748290520132375884873611438595233845164972599545516212223839551134874438662602970413471741428524920136590497794144768788891990339044424732182946617758368117138795856483839269503965289169841335438558396742815215143817925551837982086524801159642250034853485742678477488019323964015925842818754111289469802192434673656316537800696908155445371777791487810149618038584932842072720952981766794265054998462980052905959510357754335460165371383566560789855777844709539426617460890160784134895877842545534212484895094320120278008114679444509729102664934187914168665306470373303012258873296077757111518319035604869034641982893500563735723829622924941497813453089658245867420660363299923069977460624020572633933082390521450852536227812994713120027345386814639283659578295588037352204036529053054456153921862019905695281387585718475327894477445346995162472627102172173177810142563698456923083423439383682953986103112266161221367717081180869817924640254847010586031962697502035670640469753153738162462841088390524245347044525027116763401345953449946064945076854892649586007836016313025469893653393275525266809316342407185367710400458927875147262860543016531356028985850747061850777254590152243630510371128328246620754605491532672124787847677803865771958304367512990680898752087359207436494788228587566532780810499229657194173524104096153475578531343154255090035783787256145026475179308585315007082324611209860828130980227406661237967184281217422188708311242345203789753982820088657146500704970481970895368335372765905015639476499718632782188155953019103430370777858784109076476319562931509628777228914197938763582707634608863080102152841174416479112214172860992184475371741152159842690407152694916725582294013542335581633172418382031715703165956132939968160695639200281273686938479835711635302815336428306441758240975464993904533294694602909943852144142667588704391461527377503191491043611328483497327157435591168523370172807659052074974781596287072567807483823438209199796355110449634572310055203559142906192166116929601407084261846054930977754648271682032032960803287237101714790622093081315093531064549592347919101722487204959630601179484312036437815420484107437195236356844533789278831686998377479987661960951497014947305198033921775265071515777894906581370150732126350754467471912793268863828021852188069286664151776642398406109753824725782444963793966227052644373468723393168173483598135905332737187701294061050975698522713230035113554320086893474023490830615702760091654520393826651959026277988417502160282178071274042468198590079207558461433950722119941098686371660608714086161517842751209304093470796281568782750174215528647024171808968473769000254650622783072302053110483989543825966780849240057933326455405187171137381831816413339866487650828105114767317521429600045272570596848710228398358873541112223678916211877118811379054833102672127176605212271089888768769445731639261102125835876634156494355874909669779877613897598232793327870463726079529566461281774872989880253756137935725080275914973491548288363206096315914546871423078556029404795323005128338201931235167045865873853685003991646110491418486374112313121093755295136817738779277311115156579285192562178930961175344714276739163397933537694247407979598598422540703998192739699998736989538667057820611414783911186032746820826610305535663940123980834587175131981357155251476159830835182536278766115093472094912752746965605694285274178781869517008097995952354197192974676576942785584006283632239503837744032470961551013849513781378888237951984869042682028261685656755872722047406823869379097901727742769464494389308223315986677739008760469473795545027678770114874841281006725126171257340785986277384822078133172670759842620840989121224924824226569409147357359038113277448198351964759610964743761564594951870128701215358885268551458780553198626535109633670253719501542574195176419474322518419118369487218747205289250999277094095871274430177364727317418170537957957483640870768383237293422316842948494787950879790539450366050193408148883117738771100795026267303632955152254922677687947769286528428014028411202723674243031159400701265255004301237223651097932010908832433667283199924088629023401978520744265560430220353848090001072358183342337917028241461892187862495867904778188904995270469633692018758046883796589260216654616181857081198845095837484511633823237225306666733054740242680458207189165156925053634969272579219193038335651314970654921187446706725976633243374405374826880225161014308333778080503559294477306010696762855339286060781520670677203810386543203680402285602436429531023225940999491223667126482855931341579975111680802882054368458431219938999807095002054237895590625414618459582152211843628802491852601695569893808902498046193057186530828716401006139724517547034915602657115445583805173775732362384178553194574797984304148153133662528279820099205032997317547113662083740880731397051870171286067359865386299328670127725790895749436764896137293833926679703327610904694353391499268108543581108583860131980197275057387435432274821068703148818435149527288267845546753340175187901033356108679503715162086204934090054225000626724351631305300152991695406971505702736816744136855104176826066755926225878242082394296392227276752165059199999558389349883459021554429643328907613548084360406554074177556267165146448976851583046304627432985731414256466490728280136312143106719868764688878366816297657888791321037530230746579606049130631822062908157967877467248572954110230594407570517069191265403357349389483741571920797635458197788006217031135530541329360934008263435602705946430743195320406201764232941601287611241063759971170642458297952297821854069830344628219184576656844004671540169980375016648181074256495359303676173541947127816941824273117902427534532613696975059052630313930832663301847811713545448761606944177051919821012934239508795045975384010875160174733713470011828016125359521484339275711957796008193741471871940418597749968038153499470112876692679063118400593709270585319392338372401845613165902200971881309072862212127400244618370347511640337136290087835883747927324329735566709674356294335822241060528387651896463239249271384548903329475835889281230990791084892002999152914618528100931668970456672156864667469232891661099288983799004903851178963612867028972763074663990033191301324234160321215949114233174921388482596966218537602233391239585645715286169788523574233211117441331315180032278533049181937361919941646974503498448381258276980708092502641672226765450038756737871538654295209688028746342026426827254985940113376881972601855621233886300807831771152114580303607633916435544858829579489430061977763455404258514399020066820639571315604260010904640703605191654767333334301322915859640698992395840037494919230070511334056275703538534740602201691621393871861628576105078949030823579910190782164261081798541641422196505035058380193230514667234817784729184326641801501072517285914749264360289960988797668306638724168625948033941649640388605146938923946460431373612979018428611069133798628414556326267956100750575913472809962544398551104004502934009996137351487684812015119539363884269574907126335053903641343226792016064572733285353581307713806343696453181384325994785134747635076556131029042846705092415562759003183615119004985520381538949209943674583442135808472757670727334253599623411945117393909077438993724420746361062255791970613659532126844744042003007166860008599458071245963614062901197470735315307166127029236158573542431934222975758729998691538877031753699790120000275027366432227258973405388457826852478950671268222824681074301655647565284037115219687554819683864837049818210989817953677166621478209842215337650646414351338662752087740937015810505111739853062095280984483092924312146093363722459024530984165307089205307258628117604672597150075318512726837009236426139538785310148626201839848402621172683074790044138799266120453725323875557627887150530320560787475582990482173125577553245388394706342481770126102326687314518499513710030414096975596817665393126853988111744580631194991660513929686400668103370573967050237145214663835576293296112776810280974668238231455588873807362155388267748938743234674150259127232578192750908616234507645519430376575855459472393076968966880453379168372001833910638370186522723293027116046334548851241232803568675835040820842876671975689737641507313202400168229496091282718243709950318374926350666461547718619422681395726907836878127830505184927605112319109894620403276729327386653691142872598974037330743711973886566637371385679254894767672037412778159193973722842093758520495108872836815901857498103224022702066857828606503553640600288636910528705275428938652350210395544962081863274352430211950080284473315642585475437491838012103288331572433585506519883588000680692993507788651102538495702663668112304232711559513396956649641947138270829009460725554915734039957051590816383215894781530583040194740030669078652861584928730474063913686236008189536453864803731321930100257219254733358098162194458749888784706268748148740014296272363606912593124792832825995457276592752044654517322372668731532514031344383247245053347524725682965289790798265783498870216121936423907657752037828529354746596014856024178186174126166748079558954031808122783307030076843679173108870359532124348073278719216876146411292312277808546692853322343928293852394846975201465814129804924033114138566253360061280485087706860792883744370466061913721427873822118736662872207635125700380083505908522184926348151958274117922290850065904992120044358423802385938202025028547406620503125282244492742971623797678412928088232876268315616447247201984536953774125129127054108112849773474669732540812024403701702775824308298854198773032157060138495968162408070648380840738856623974784167880617396984194465927204543587936151651602722914486730545770763911823764844119353033144446734189735987465669426823347959883426482773814685289573549671464585217873356917815678001044315111363167029755525109194077168852409615875093152101298833758230787479732982053456928506579920736351805274008594690136711179432343042434244997415175967292624411048086282528443659932297198832758841934991850748705052656019893848678355959413412783591850573959257108442763014881702783065742521157476476035026171251416229077409525883950412793105592802638950257924233937436268624474132218095466859068630544756663452318944783472057072122543929568313002871797622404320889258587821597160170435137687855734284442522315820404746057433151358563974691691725072044877176032054274427940623130352114289023158627827792360740577831548481187728132578078095222174123002554314812914208966282521775355906522546992631179667807876422335076498438386937727956578789643684390363745499922187112043448223977861831304171789348477051570280003643594802863869360712832558117204007087731450199257904027189538342323931105614865660286538628880993502168408633033627243620432261155231557234148254630277105783641008764865247573023852012569637600358633992905195957714828745967609447707341700995252785394617592531377752783171107276626005286213197114614518889073018229029559551626725657059304262813514356840044147536861614601482911430657975596377585864659223854611201304197763682962782394893737246553107042455364417840540764569105312795722028975527466648850515943201113554072128481669613276113607174889307574975382847122469962868358392881674294020016359502662170807451945143031627994058011363579931228863873830965180159289015981470803244862988237163644549031298453437244517421888371389327447519761742150591444020367414827625036798529726792981697995905485152712188342270682848219422981541284250250540800074222924455231766255052882152020456950854949225480907613210189214381117705703575024729599568077565908467711147286967232807295409159916618466024907240027080551132430051537489261534399919433418010519524623118753554757443869357997318683776281844618484186882779105904568536992503027110234226618286000981672244109143962827771145153714198640954095741266813384838132400712701014034629344544170043697972957913262772092018953190435530244710189112589722529116599507206902184998681607071131002670722760488944949887436551738745526211718903270561509065196821128980152251032391639686954271018457141568773116606922011747005986625935603444916656066201320063026538176785638552715746354136919180914610911170330359818897712653701992989922844184057490321539130002636927509987147660954627825748159655587479774491806539174005948006070617877905002042117137113253447614547725703563001056972048845989306080327172876827328162721539183370578383821672227564274359722708299701836456670842397927866548333820792547251957318185006873046558126434967865784938884294921282729449655245409080857941824825061228818298795149493911038147187650929407440601520970752611863267016405952833355341576697658379162387297023243051481401909045102043606454502526956620019732176669724938147574337812439494223753455926371465275296404629249888203524038552861700117991986878479624382911643509386804694886505161983121065923878514045829490404315320193194797177329756407222894837254979932853291579342087175260083159398849387636218178090159050377229593391696281061644396284150754605268375633090588643960963306359480133678087515033039638577982608232058721371082695160095205699024610116661530224328042310971227608080795384857280670881880212716852816832155426034620562018697560535042713877202459975516164330362664988902978117565373642083393705359379545804201727911599912252063176454410024654745151196561965953602513655409016159438870962743605518103012389225526871571903016721786694291430422186101464119679770664286542809663007865827223043073394406869853451804084679941573596979285758701184060626712407544264048720783581017580229127227042170173127110408980842254677457696468551911063542404381940509355039868640333265827905766416832062813191188238986760267236438431489559602313183411998493306970736403277305088319464264494127327938712815462787169719899964552241264125815646709931268395610869867649476319035670116453263483603588163938184028892790484712345615002104571210730470599253496014062031758500739612054158113550505264517913904589136405847759359269506146210221580177411033166391514222642401139274226950584966504983317302048162143141855023530037924181765330521747887044264373911735500965518281981707630689597412423460910909593616434972655584637660685493254285837040498114955313799754069452614784558812365542070918790666772596605074412363250131644606915058166313793680005688056640602344904781731941181294289965128693780842461175162916123127278020260105546846634973558831307772031127512261875613851557938742805607661639817180087045731882866480073307434601344009985692761386961372509939336020701870382030591264657759074706193858150994030084580158884863116243785553769866435919408430199046984945262023896634616361772591615887887836739261637542566554984178813879311814493534514129961991172799506796524332850355474604725348964931930811696187639797379331021134440134842803307931303202472247987975951644836523907968190790130616789482330552833109775434848695555735089169387593858726168250101611325360451526183742047723871219027189631088772146766635874216549086635780096413581809364189140508210072671394260390430839355324597491087748170702124165614904258273668570006685953041806670726687706517629230582986029302879386348146680934205131454732001813806010008542385939027765366290096075979283222791606422040602771551678828049946834094003286795083606593072226685617097165116628482005882268986488900153735847539491382712324002649060364671031514845095134528169742348003636128541541490160206164194323549793744005137683941586183452934523148192233429468259649365503295660177085745788874637531485828533304676321162092604914895654064207649326631242185896935661882962653175348540858536666290379469816535034536031776758669744559417894364092198294780279967568961561666185195319567129915500115084101747157919627852832586193656662908337091387168857281798727571247938825438402157495698492909348524530748918295943349261777530159130375043430345385208738096952115191341960574433782965101181523659491813003788788460892334257469170501128972707998774654675192537855837800201318910613737474486409000789412513689150638639446097135948702796539914399440002104767654761369559287578468901506520962023468030191899495915161374683279598859390267884042420159945566680794867289965003933280989486677833199849831395820124231158404813766552070273935503781931277442075937880321972300083024935446131952829222445840002937982535786136136232462845380510200059853164411170054812658530653998139823530458377567452294763013115046431701913117583554531893600218221104193176056852344919916427747540196940789124170928385021006108591613122725021628375996652146790825803449984719635051813959899092260197466968897351730200168495192749219986250005883931962940708805571292352222305971565842246022037903810679721596879248010205673992182670931417194816333039014235867136957754510231197528653091233491682973676856159371753651659088376801971800175858461502050240601291725341686773273382876627043828422412653962754867179582012043469602700457627175200828937019845249400061530528708029947818497814786308205316365671324302109813960087401300503036210528939621153363830373334023794651838931379230792671059175433758455112233634337397955543594177637182783680769892831874143928591420375079006372734138023498852002576186656717291083049067794791509877445424423309980241353651153205194179952969714981804639227088445424786068225772582941129419989674226073811924682378021142910646885915490713109938386190283006616389926023584520985429425179061411786210196810887992172530214392643160302295215491006402121323561263766713626331866161014405221828741652963479374504894423265486876132843951890989200186718714180292225793878205802454283722406315415094513533448390731280150330320639580325411147964273977871775603790646054923284527795783158798941228921445367602557060630599002876673773504045243902686370052957274480333760406502093891933036823125586302211227861919934759530982108799970450610168097727782908844703904110370007901541667191463391265215825834769124453587083855555669032090092640139173557529168130730886994261372195866366767223272753488169982342306178949382647493343941338225223193251867756058573587404286300376883994687173109725519606378371968149734511569630939573193817202521732996867638327106304145269200307726637323138255968666047786886059622327664839645294140592966447149091295189519926027221661139899675497170079322395485946215832701983306833454653889348395021994829891486137718944916673940367867057002021165102188355963721721558249124534708398180448641157034163298699882520145272784158839025687698481918183033405330096996171855434145069277893771186402593073559114580218163215237582426769982593493699759854809245292123791649013642957649970801551216617462658586083145457335977099121561210887131451849587742287194721832485126068165461691344045057046799203281501955441538626228011646178909132659124834431515309368560099902414451800479067194511392197266656698827887588909786433936154009015527373392225583154280141262287752776554585981149948036995609236344875730209724413517669848599099543037390724164201470084737059043587246718651451395212656681067671941779168640861734379949676115309234630514760697859717891470709247524603323778458786603597434022103133997654968185916850621923674006449507169475304144009231384565588084928082587076166132251506635327313484345231206440224649824586864195349702780955334614328230520373762107515701903304792799273139487015151101222602001229761717169103058342806085465400426091885395795912266625696914263512238052147097781198058881865535466807565659705770444322502861203974429091834506752800898882716084206233485976191175614979043376449753890793953002705444873164826747241903746813707345117863895128400198619781823383139119122676390494209650812513185904745967492830266563564659740392505348139684347343738149590480700906062496879552375562190552587872064580244844124677875543394264113303843142519011494064579253864905386516764434323298470653864979914103684819082206583887060417457383761668600028430980846529457917335085244331141756529971935966955973702702472970219864528377946920467750191971991363493749628516112038705801404459615113991977596824195449710648188679157980699170345308650504275057880603399697648983923991606950564023703175983382015045799496726329671487192686004636352487474480269874826039592642965748562894501160613040437472812279286763710664561120593033517788402046677997679642692165908139089156653099642837348149069136676771018657149697741420404137282372778035892454428882733662136692814493236341580296967895104964062908537103582461950773342999748296232024349124629418504731751343107172615066827521441727706460469319526797361155156946429342220384831533961985802468445802906641098723733431478742285846267050464667684008263921862821099883244873543223015763341448540386787751086943473056053019325276198178244039873840955480138923321141358903409397268680133339801217716854351853316335407097571887482357254482560112371477412085186758894515658614722811072143212107352535667031417213506234240347163502376914181926009979848572297205109224595827100123259954686111831374838223847123594628122799635754173155717456884451640491768055084959181779601481544908537571737460649776412043258071944097098797890724850096519246483970924231324509552236755118718583616850573964556708720535344083755292852461792122710710214799051408219713456052596977934012021507277453442676835700282615880109222457827968066946330223258734621358616442067790778087725091304641461949689016047965052924431291934141976324775352971035102619469990028095152058713247167491500385430439194379794590843089377579108001796469328807160924477670532253617175412050034612201770998528621288375315377222374889640280842291938719421115128777651639111383875244595414210608946159826308300149451062995364733265409840056861978509320522458830383977502930613711520750868249523423267179996759925448085643889612292845527074396661525665321181950828260619054265586805871688025093941124281467655705742344484830788698326812315786163772128664905864865897646323104179868646511151972063216955356123076308227421183460638557805176084154650300007341232976513247165520678007372718812605634753257402540277472143074611910689452928778829361397302093475671173179081268896458964551367390342718860027004810803091151673066342649766866265232610354044788254533838231831336772819171501329724753402255916199595510211997451392924147028456344379666955740380192838357525406001829960794942655676127041951731590481333960860573631534256704240387769686214418605402485747042026280913824579575636412047387367863159806728396887079227434454505575670923905941442335048292398905910198050753382474559449335846488674619321375913396192609372125763658892295590807362302615448761422719197206688211010793651751706979481790278929752666910010019569825158901295617866225287711417077885301189067160775714232538072020788938078747086345811375408744977960669698834516155071966387907628472779582844354544415336857546058015451504014060114048154580667506794359675578577368443203123201059829173204561894802208869108755112792786550111135431414797446478798718990080328236873873564562788304694687561713563846250124529527048770301739012045324764916081571495172611721495430252529129576098525750820245200471823719462774878227223272016929270072784212118676321514851560246218766664445335871763086911172684613729616480551736738992768147902718551898100565142420821202251740531082352933410504441382929533156996806094347482796800929106254101493730839767092010492524726425902004731364318253130117923007322497381368460849130285012119125554555685746526262515873928657645091193327257887927978756415250931721029431450614877211894001769770008676772830062696377741481227414478929304856030141439605313201976184872332453793888112043801580025465786224997183265408320531535031809093711328874973791722769917886395578964134150715923993043528851246250132355394516961341036540300662341400375114383376390902956229416936037856269057091345368669143482821161202597157241970874607390104031914529114739737111534813517456830299385267348829012447190307118055379249680621004797604668867582164024032160671687648486716327511422696947117287256449963159908534752665500794935469719196188044180721489868716874657495730050048075653877030269909733191409945924255238958060535260573593746790105717569359533184883418469100591908315662320128813352524486838898120849786985573295240686920878982646394776062493614224828650831615234049043519622671637537100856862493765935662933888888406354311939882401612210731735626117892970249039984469190828747296601072941543651324233854178830642865551709654424308827732718483829263759006941552617935593179470698534968451670904367184751981375353097657267312625350136967612834146987150918074000667618943343974773506800922018866316106354055272980795133025949650932235724853970812557660488694935622811697152549446422552243676375165823312239495943884667996708739197853996576423000234259871991515911637589330942373601976702434091240213150350728516697348432762033913579997574781287400353297565071515077359202130823086379006246333886223271088434239775391092108167090215636447033593616647001874455373927408362834189356939427347168181239453816437005241693848683054482765595780731744486604746133129427382327893598334206139172215392636442156732217687421795251788420302780022558547576308778037105525220794668207981748713351554900462434521011930433104944986179726092124380266867389449797617241367025490832054430731745316581698656414251163058586470627390100749150023615902749720093051417899392947162562369347533912061644859976423743571198498631398412798839222085794686977574818829159280485102191392742598049362969088515904614065499486145956907197302920520923456370045904695326134113639264097867186235037864939986344518007736531728673789318543266565614510518041753174664980719196234481224857534322377590014518904706127531654185704494828535313573861747787359036227766038178293724628865185392853695187571752990442349972149620439745600031790371618944797140372181767308339508122843884672616443752827333039841152109558828755613160211186011278150175578040433170611781049037431651092158205356303263842366789004817521675507370146942637220641256025846761361005884247931179125310619768956986769981558198183332886650291720606281041937351157977921453637072101299796740032746463500004655176989633250794733342087195650530667710998390432572518950900530166245639037962722441154795966884386401080193645942475208733198471347393172348153696540846474073051666005688757986629413462164054290432318607711510518699909182230835020823137554204212682968641742319735415086796658319520102462991969521883928682384899900630035373901705349966555766834537037392426127996189957594397379604903393505729243635341799600525215877005026796713946779930893550179810302603748050141672314501965393643202427413021508038746037314102243733401031312050985258412129623569098805941818813319412766446327852596813179249542819825526600417245917392379076424069894062564318614680127683440102199870809383808676724452513143807599582600739294224265213224440860772444840551960938072268233124157800189091389779064436805733618284175309043976958839485840117197922682985307090898924732017278800314637356205475663297706472098849576698198305136203450977917513788367990226100105830777535926605014936814601256196978961690113589318970037473705672984419997799782604595204879324448705899111784772831631710234254548675602571354972444744386844893498160983032079876590675264502020741418813313532891802204356312931027572676777289450767710129791965811261085740664613319758779179844193283178987591605984380948652039391252077228994375891565182299966999330547124352122681205222398262954448471990383487601457210951317444996256023574885117039081134172070416869765974955111431527954928795632583250950367777894859895272594198027325742946015399716805493028299088295322128308057318985869468568779040234976171238932941893126718577075146689281391223886086340066212069398820242621711368654156566038496497632672252698626421907498938446086950320324945247691337765385724174965113728513001421566501762852692703819272535760808218404218811766049124695021160337314200183620803776094692354223645008101609843287554356129724183856892006511503520448425080866292893957662979848013185868492709779309447897150109050973856475365503887440943127472676050856014361619878461221640846009476297319712468213785526547535206072868903026324810423849214401636243308454487954768980289691105846123817903405292975517912104539933250212800744293027186162157040573953901478424298748415369308982443858085641775577940454564164214867609620988007944664874343629860410910547520536320521277761966682813210572864563662723514834041481033562910102458355677039353251510389500765640694500874738106954846762099618713389989717837828293730550792821438378035304831146472327702487148952878807740508049326655846737590202736447175776226106573188151421695459106926399779315322023540311753638692156493596021486282595836070909682546047643410631269734822262523448203265210874003195063790951824857900613704378513843081913715328484342742996461467928763239191408611563563679248532021760579208377437798173717772031629731062431060316558863730961473893306061646481263218236752349877659918872318491542749994192840092628177510326619051532048162238712933365513525626269546955705426267008066889889263079164535882410535147733311945256971608050391254428149463001082158959280640254358806580881952266825753866580787584244749866634487083937067811176729102960651516006271380269789032964564947279616345627400639466278778540862230566577135637138738037838415555778836697021291026550242521338205256489264193557018226291525329804914262917252218367708449908407399581583517235251300115556481055171416691267616429458487588642783530693281687551884484065084656912060863515424437614318082002268777115369974742075014461628102358851493212831366570268120965243668816135952841904887124026254755679428580363561787462355952700250214496157068010440066910958658716616109250514827720630553815790786730955091514243384180656287123169634038014779327622799023550255566465771041476481570054197462749272121955313891914146524422515981255716416517820269377534741727261040233835018157685940565950607324336922901327789101976528717895450654647195804845414522540871980455402610855337894333204992405169644510821911103977130310343699919957618198453052095763650791644248690590485790705561782280711474571390368380283206184971913850486369436837612004740658867525298188581846982286554940815245125631522597713493497986405511751767755138985100335096408175705175978357780778783812247486777392491555455886583184402328925335534297927426597689619141499206582066486143228123475406373406135476878403232077272747061212314489609526790232156198473452390528381044394505465634858626828939876900624424567028219473223653229957092759063561747690692225814866765829665192396138305318260893886823201086939220909670325830704815801419679204662195826559004939836067829200382247005045805011612703373087247226324975402778154512500002773519456725497432795967469457595551136781999900735609435193876037004487189286349887532946002626575622290153515769016863430882008868054517510571319060222784663782136819839923228404772500619024692856039458394888004634998262387097568498174177117822916856116246472404315495141399962308327880385842268902581687757116453322893777268249568191673535915919695351457968865010961686062228237975707723186174100759394084240098984954970302112705154523362412521843911460175315958831529437616557794547352248500449330059517593799210169654296848666327471084261782126976620471658691803853379205298570635410621072150393482445528138472818444416592845005175308505686760069885789132758583205221615394753958288176502303824153177350569366629507209148461205760830397976555195791710733664155458763373107670653291778432220576425225519177909676551947632188578842350113900325105848413652688514979690804681332929421561428999405309299256676711837360964262870721576274052312855350578010830775141149648690783722628713105861569077063833336382521174406475474416744590219089050624330849271713176706868246167770980995121983343417985476707137698598676528107150309738679461917069148165400540027078844695615878580485064603933606335130800934577202596945125105292312881189713959720043702508021817331894117851451390502597589152269208442183654712656494080930562258780514667228662575617430574154966897276966589833500131329725808565744114783556200611044211812571080176381569636493323507993528468960892775618403022106615237582880956744505535461452301562195085110000252399647081779242144040174079521453725998628351377984252017872040268592691656219472075451891237112063075492849568960838031657817579632537249724943103582477001890524648856577184931098076119545329623668317710519088425606188845742285061067138824003655340143659216226346644196203727257138511209080319438610603104986544988346189676490095828448146283814066133991114547770070756466063190217358865358865612574463786656830370378353747900690924557726042517945239726660746687337265086468199837531879394645840239398682646391913165022151186565152158279206862010026846175533056077111224364846167464203616075935602039150565760977722655989408993955594682408485768063091377871175932130479778416972407210915578409515996196016797001031913113774583982372843880531268484514717886382103673536209094749076285227959466265141422786353465626035888336850960218739547521996396580791949723215553591182953519691039652553628911684371107666807809455904858950728131339307534189039398717999925620167840925006105610315141938126292566816344947006878686248765331863744647684101573684069386927560886893837982531409498391362773896508281153790778315040006755991389030703412560607000524880784462752312800901415370586467009582729916310226547669731000106434051894620379595051467091241575506490892110731846462083067738745628410777355121906823341917179805783726140650654934839938937676468484625343779088230675530876347614665515973241277991494065954285898251038526214668429075088341606923259497452398011250609841004872753577228445258982681795974826340432859797935299059048804210977284528721627020529292128630743001284421328883079886219426466940711711933280725301157412577860133034531865807565285302547777879061034894736868854651875057119867361923492046771564023125484175742465844290843489783469915921500978237740802034645929180184616060183383548479458352578732307391651990836722781408441282241561872218285432606318196615127938010933805822511166412781873266161847234772236556150272982506708786287026074749680248823165095123987118374664396795196669336923015293348257993385429847043935760522716721834820547461360643412024194036490795390490550053859291703862953183952330196226574937486511843542524028098805891530449702544854645226995830331332973629575123300239031027067394312812070174481567232178435141426041823658171583976788731860363764049903980626483116977139903907147310150821667926190618402299478419219066525989195010679813352913456168729768073654504256039390352332782062858481678091698903648544246208136101033221330937788393444223467684257991958593813342977676022688882458243899119405096265357122657547138865757978232312151460720180734812810097033777313515966832991586008433860408361729016829785795524523672584876644166401405316558709124542198366490388746982728135835258935724951902139073148436419255952313900553969522799351963032002748440142684665602603764542708345351068067622030208989955190021141989527517180206612614755766531430224847762887087878453733377414960764825602426490874810232320881341020164779324306379427172828346082451313195695032939765681956471316137451963698306700492575550005243722930150667310130545788733707148199471929388622165017895759048363129402530904230811269837253073847085438851492252656081919989979845634527275455303124893919381679420882732757508921364202270433072392459890134738522352756710730910728518406451577330383296589878162431200246750544451119144054006588578631191988663612893576519063403161887194316981357245225559555204118660954556081834329948826415547979866334552859437505173499521520476621166944421144162742812011443110893458821090276189057252442172621303114281518228237958181044739743438501649696059068271863597571910338731989909691458359999112662396323829709868136402237368085170316731697793530557267818286151009732634430930598279310399486704492617731800258175964816856991287249537550276909433496625193574726580609230810814127849610629861571332383091094400929039668417146117281207012324098538634678820839152275925508796436611243455375302861032376754482327840701624948561149230560375944074101877599655050345787827621387993671218928016314769797228356399557817412083638943638338040220387703200609842036849924175491900704056220632470289763459911564846120561986564696257916708093770771172949901432662883803469822184484922867075122935091451041118829648670519100325835588974365226325551396131654015781985539050143672067865706110948117906358820474495780451474502992633130611490485342059494921448979152634348367038274894357055883648924055905694998103176267702110537895182707005247919491492623705660774022563898623090064999632184948331278518634624894957294496107985523039822627861930457434774260939239938781697577473064436160861925212026216018737686783414710055405993150349309835817547608178047422986251416581653452577175348788431185599052747369918942748067576777177925234233583676352124433519097412901872104410063286227014638035533567175330539229020786444304003457770463262862585426606229363154094469979087261598873163026436214304077633641121027917618179832792938365600430383237781373526564835877769588694103825728065278707219177187355152181448100490572620510194274151366551779551179160177967224677226899102370452592774235233512929370702820695788687593985231208665891898168159026325907341818422718314059840792832564366813926635551792243241168996515796964861023589675253560699939552999401381628015265585874788564699017583903260465110191518336722740982662416433277053763502318453398983696837758250398807088269392762367550707840509032918877327110264983375928256974760345784510878018049550788831634407037421650989885563698824033899929328677931486876480843707492127309023200087492534174437366198124075988141037123213815234436458679642567219880590147523418354206946787600308024809419342079061934194136526192948419773307211261866958206990360831608299289392183717643984323424961701637347430461761401186525857014423638134753252200729611388194371420202379329314011797775064642991953812214247468531943510001223819442741824892873329141200108189096376363667793652947081143730399490584878361077482026081676829225494581451201312595844563776954748019075121538091200409010343455542979480384504326288398219505887657553379212483633983158135134509616087535105774691385714294026930973730500677865542100915573567560248565162794071158503069444888239502505175270035227893856021362383281429784657170889445067599432401745026052238526382280872290487581259624809083449273946943131508206260728355089268518276537801336596242328782354995270950331226417600139063774001776951606859540798183637115410953979858510998241522550082714985804897421112582657249506262584885207533261136861805037748252956965900601240267410082091037446766726863802436845985668044159155791671909949786226802562732671538992074518646793398032370435655569648113849760594617393255723688016557066619781390557965909426023490320638608343040407870365727601365173574840539496061374616461873808522190328565652861224017082656796542230405015893170897403339324696353821288311691484567223504881357780654597112025828881830992075328498401076685244749574806440993452436476008397395320837211156740171244768231393819831126716723893480146610512859245326054874937202292124614695754730429901422430491169428892959685697916200449198226864741623713346378590660109614417747995422489976914268648936319612382238751633707155721170968003169931056152680774294791178764340935303596340376681016656715895422105288936513743816762929502337091036075505098391500057449748311097668128767435869288276338877818767192381506539978192567481356814508414171355636110382210964781052206169401060794598658303275813431357938128169711365633362480967837351599319903495698413175854593179633961738240552736905617276056097801285859947767647303788034405458805461077267174862152446202774038030296945855582316388629080024452072815211330691160775084494002866386422065078979347419179795151283548897455582814981537386246630874451344229905832491795935092070295681356985741055046138148723878240920659965138315492947095241595263130142084388382042479138170287952412352390720145875795257940683476064119267927904228458930540337652770521619777293880097852856227675084806411623507387727822192622335474490451371740191608663608997725150630802402614917678309880674059339284493182164633604229382279686192180271381630764693688919805248773533227050220624447307165746228878582028640119268262201866640134832581360051113181030897294496528322201184063904232575619489830315303177770106889640610039292087408511680772239047635901343687906938186303184592749451490497237085839550782424389106186813404625594616789132998716099817336920242402207096295387036416606972326513446920596100207209849115533176346521504606447080259346485404066592725465203286030501590583680249291239259850931101341722648725523133879562019221405041354730297201041372743527746059581178619164598532986935903084076554013980622032017083964846236031965106980213150898534628232041302742652040315807329589639142813378124549694200134928054609224059505712543025396764066111355744142409326449504854865489551248694315467004352958021560724629937431383434816599846702273494139244816759730097444358056880065050945678925764057543438911314437971455414593879164321820187011453703264606197025144325986756733292799226725707219362783467223019435045649761312625387892075208783070757104882158000528352182433016668720562565087639181859170890623515122229683497923997400547713323977500951553672587524930147021883972552281793882746533775795300914968934939427408370847770462210642381731216762073983271106340495029227411427989952607948149827506711210060157840471779616049827907225816710722983031185026532868279593177804962761558347268601068564952523939326985168980598153107865551274410191824005420422889111225829911468911550823498496424141646688347524043226452766038735865905866718926779878625582716293241336824660238645313422877475161025110784208196352798449730873520184756711347072843501161044490028909785219505761400604376027509818316109511470826879471385134609243641487304765499376464522795341236072955575413198938053264148411160398464951284015639549071493212797998574315734771257758752543267282909977966089713745855465602952707008565072644608852958175793288592242770050728637294830937585934727728380723001116527516098029710173242456726075349051715001346482344667984092883687679227797550093914459705927156334634101646091591558906727292611199343176974460445611779325821950548774784616623725256895829865507905291723230910110882889135822245663005616395257573081154129902531990522621771016935371853976570263420077651128232599550281415812305533213400965151749696501205778363814526443244677124191520924292015508206430818541536759803563363111842208952874499801029770052888448276463606926256014446688648774824438913715384516338766144263567643923956665348702487161161683429954319381794864140526417793705981202359603100781373525124870137751539063819841205790235262754047615340058805213970703153273525062963499318182878295146290716573046751394813756291338824691275277365711333999603335189517505824571284120255226316297397532076443402422385609714694486540189688024304624274935658128231407385797453673980633362522398219041181398613938803258302362927154402493982649558800414977603048889184042319887645612853862819795818365054139668983346967153851679494561289439920511946626853484732926638299605402137968411115696682031040939648718060888644491201235913015402450711182731499362024782377977791013460246746111376003701216316906090888402094898817467586779820661568403796694219200961594101130466905354268274692301115222374294844378204356836674788171948308693289473756843799528952157505921912482093244017203520680051875345455845210355243873657215222688160369525281253502578816883251011634667554377188923391345776334315208126395440203968927472993470873528238566907849126695574277014290806823520237029119446587338980927836127959486658217006163070291801682484552803980362733738051447868881533271004668621197211021097762119405390694889925413497243472888425390291858391804132770009379104524067095835897905239372340815044803951946525819900882337654327022925355242979625799225119047982603783252204178668269047131763423694912303670203663280897419010456074243837837889906552716780739934728128539108415419323643399909679411277475740931477333052798798364258060081320055251793584752088350493158220221885056035090451524446790476835953631613413146559157370880283137664338931627673344361245725847081815072055950377446007232523430363272621805527606418651625756165555825792204493668221814149082580108707266042811833353940607229283004342350449421211299601562869454446914044911228398178155627552268884195794939429573912040516623483714540344185975395307582802221025411733833654396068576967191122987198533011008772220501928447555099952808631660402412345026189067572219153574269360799508872014246482252933737226156803607891697235695107302561087906882502624440458374063144106316280603611625659695176404746584320164927285518168584985296772583942238755973145698000054069579012846885053951722688402673511614242702766923757301755064307569818606966075408650111201892529157657098036269203133128241386523122950408051089400471745966358060672405254908839167633615382242352118370513760454348692301776590787110998490921877211471259795511167724613972183727584079174717091766043766011444239862393657826531937393906884599463445741870980186326688208512544886226883997434438305160065471904862357143773033058380452240534150392352552523840165743507941261371343638003321360687195662255771099047896116002488369451107027775391750932896957896700334482532499836656121989689354010024659319615328164510467530597266354477941262612295482134679410455598229386120839497399149278352701817301461006122009184897537026240187621369306962891421184767451180783057240816274356304223782037502325990404165695980062157150740330921064898217839783073547069380823120714141263531795107370909051925494920895792796532270444188010557301296860571327844734547616875043494702886944210239474080642127658254244317599090785298279326180732631201115301123855345861966678816985208510662004411683057946464156970024348114450955261309503816027525140411734975020042858156791698024083879986352027816379232905133324924219602456922839654066498643032181714297428454765541953769074782632886882320560489500576630433151729526363444562865831533773982347188410775421634412828912381063080738550660806570640286294266510976062023276423533269408121806812047392875256412604007892343559888695465462334404555127620930894928101993295174729784314722227984479047917354645347096790597465440196244199710099456601639995022277067252600339571648370195894411892886538307382930732562782451258744105436882110276796171701822023963429156028022442651451554831585565606511286151128716733866413554848353277127979480966126675361347632313038279753393633540171828548636958626279536593447807425382937771033228266053337750827263667713344056016391461230688261668778201581910162716109637129315224094298153822794471655224206168254678355516379701339468645613711950933563467963225259045963532772396332218505070074874980878064888152191180511139528455559913013742934346430787297579799822421051440870749337749267862899552214057170160418300860621601619579896147491296437633738248684614706558406466095257610672532276360487240343637865707842034817006617436463160854897918715872233335515013277811292408612407640996616981981338230304150946742504149523540067547309070383566653542896762355091000994823318213487832170805082237835249704579239377764956454523376858597520512040234299168776049566046864726235924388506018623021472794663191633986998205433093390925404544697957916594800550323131789013674242971465199938188691896467335126717502127403661377405162204225754644592311695831949429734818956831249212646105534028966290999931657562957909983521134285266521095517541452789475718403379227318108708688276604161661066566814759210979531621417350901908623423613651642482321819329780075263871601469968412174831252199431030035762847264069326341579724654571988378784591436765566935872352268336353045620010123311171729927549524640403764451988990752026245346655115597315486309088031820528504864563320097356573553773995875101852867789660026888155930268314404250442862866534822929588146376834295051208363172827355824637682993491644505867749153437704325181693767466180999023723106894014890251690844461823101565706343424325970786098523683030147334809369985667013688016812217651623862596012909702756829156880765165756458652977129800235719294890446907781998214638988781667447077363974914113574279625842386118686821466968764874999376014830015032435761765961708039018618591267312193204507802061167712855305623581781171148403451205332561853847731430337789379390198650278579836791913565218719759911826976722951022762724364357955414307993601479552320726169016424098657525157533095528101659269739880828438716229928451579272661159799476834019756774233909470930939334224540965289783398291832064157629191863763299845020206584169026023570349829076751020311343278776870423399637515101474973142261201153998816895712939098623896131524254105785269070941138594238219512889404756353940912199653114958939876345766230188551581080110073717385701269669161694362246210285295000942478210418262940644084731026374258649435617865660276302038240794272506994587259940906357577061194390190510279191623300284532875336715328414493571935582141427746469932512130576909713508284684014918170377659313859577372598246554620765015881528255332628568163022183095581480025448680920445756645644165098514159100024903623285824884138499208528365420579358580835322645072242903099807020291017938143110289461994095756093679631917625139017335635575402431361299237872448188343193996356674153596883608300604437122348380271045681497412411156121526376022965901777293728653454250445127726140929350077859791866932610645628405631070987486070755943409916359137539116407970703448109072043322389820985295828015671386983859263213445115641709148590294413504766620711836144079979451675370464770528891938204079121713393268576183797347717199215977660214765780458828805511650268050415519656678314863077326351807959346107676186413926578081979326942775704194164674447691152233798827783095962455922020321727916185838728789198896362214602881782344909856167256377608889787936612921419192112392988052499455541689896956835019509414399819484916823821318676281526726978663769088912060292974116672504151805183806092175270852018289710982901393343855093219205468575735796681755180952016468735951319051258879999918577548093452535359304735543240682939066699297118910515382027108981981327990226156537564210637219846624013573033236900009161591221888372594466315061561422824949975608823442584232265575441032122668111138703319559846658910478199703266257676675616056716983282298054252222138168515617660111885882184239457539203271228733114701952778094883673985085910372785994947375625593797237219380742647458646032975777444365572179768891122913932553312602767805577609664807909496579039539380211843955990066222850700572842671694751892371673046320827815944134262653804232497071828222543177020773458163134814631790978925445593176911530206557302814910614361405286950573169917930558609642907409108321301915911569242319773332798622566822149976446202319909699449852068048292502377809893209840736277522713688667539124254465142628823823521871830938427770827306662915232349450892637541006319784482888247313747665097544027928774823496944036610032971968136147995316559505746495285538746193996582405194472270312523537966292643272313575204585208119311315004378006440049400911518329340993952503800914121625404084899577701629032000971892813994849800392125825382636910421430808631591003749860848252911830839789184746764163247627974651851171398299227515123809883522674744168808114007075106449412489686929646113796327177991138425563443245213000636783021358139182129763631114158321130889369840901005465810599420205477905296147058795329978480447403832342333495962972173328742016126127106306656129625478866034533960323908210919562969152348177744333546283068525662612042753394224576068005194180386109848731219377736132087820714292778085073180274804958218875878677625887694252350571071914896208449243505007443162103527849669002638357963386495657117587702593857525532983588924699295884710716547311774816242017240468538520584336050711364632817429001720735180666878797499646492494184585970150151387040465037407128409400839446013866536108413100773389221385699439968244145761357974344475186402389473193106582121333060943415867712499168532678068372937441034435462081176323731008645006429233310346746559634599215741172203274529205497274014477763140922426824421827426046958559739636318099773533006958156082631552281167937180172715742735404472989224735289626955348547882262108382514719677221776037412690480838065994826380637260441445695788216748925506876436447286669893089087451906329738313594427486941255541270059109644593504108345225932199061823079202491119778467173269983064617588523364566679440798241030057068383023726518608545059725123118863868603234552395567254343512193395102236752693188405608939020129965197155972351233633453077862985689035559366276723328872129037140237823141370500199265043231582922356141364497208905060800186336588975325349288412468063150976887324534151623423238581595027830571906731718303587249721051617564126156767938780241538730760076170744851185426264115331334210086843029267141345759536604498748333747039891834985609067085081186138975009850451662238652840392381377955452471224343278554257447663710755652413069738710475635692920197396395348077460525374643430865518561286693306594159517712523491838301091075666290991577706874438198972426039521114316085764117198138113976487043368220602786969746055009001219356747452415435900648264093979918322707475861408436569623754040960234157962021929775154380200294603802444351002151762021888118813522127390185985146108375685728916994333450520020079958307486915534191599171977525774250326044017545633126196975752274805654373321837271751291667755621711879879648067405871783375362311958465473489570334371048447406614892491973972382290848024466184275201723542245703815193105495822059945548520816924747701289369626796071946150694520043301157676410969053044141378970461020320017846789602234672233731101173764297102296189324353346338162716640816084354166411835081942903277077428959609914595406555545839560543781693739145206537156566398764349162083212176989479423276999180208980878299684029455470666670109477370632890756907460881574334015409562167958205002460449673966741121852975279657988458286380690829214244628732136331075935687207515661701566521973337255163647416682125698011126287297834932597713429764649606795906812480301802407489757463909513210563167481807635046791410156970530668465935523020432836204960830764732507715906203875267196169828569841334128368243740311512442500107026624216156648420252631277544901858663594342351524139797728578800192983374095483235014358417400512412542035764833758014460930561147337768130603908882720467487704217840781450182517986698842434799371123329340507787239339976908358280304073513769404480172672629727251743285565002489233732366394892425890635717743541020530293221438286003659506599964065839268830143381816163783115196764275389732390101823572393224413934284863669315370421911338718297717373258820971055276414891686321277422135034158724134036234686400140154705389209056605500353251869729998936400551239457296351839941939373121324150287338745060777477436263730197192342872511149810638911589071254391686519499924144768868274502211572313034030205438202628654477048213582721473566633171548941617932702709739656274490970900012809210960387185014670600806292110376090906293253079403217246156756744698937114065104929903606572302801189622123394340385115427429254117929641966568371050096471220100748512438114853479831980598684266112620395393661431204797834812542772638261878520564054139187107272786470835772775977896153246725154858023214812482475807813119088415217745652263077210194824664064648666914009690326605700969557918407052481942763975690806003777117247262159911079924411392749540604623210675019551611036245850071734096730565868612630577308455764628029235998627923614933846021490713956238132009413694093844606582051198437225106701597896438912247447718974237078737981105572870421858416938229044536033142134399900721113316131608797161951659040040452627804243549707346110319759336359422494944773208144333228867041988326706975766967131412267544184976524447697674006527922580789137303505091253264815274226894826417991193317931438161011206685343358647229223945111280027123000718285753273537355816749749732148166550839157726729480209671928875461569518698898704370203175946937947003259511419149508209788628263722240274573679899177826693951597498148376572239091408846884331805836053183193802951788934718387536719562292956153643788775327543698057043446876056468802809755796952956191394680008782730310497973369637740790479580285077513567079780409367114844460940743295603500035921884403762116235189630454022556527016302880699361037385817140267121984475410335255144526200031969437155187946904498289277615965648115142412717047893355601047147697684119958935020529884593569311412570521438109078231805161311591528078726140331450134561509871536401984288083997287378223810660050347309410832566617402382759858192897266654215964012529202532568488414084499023668383518411286692402906010190570405143414358874953837973824272697345908242889876517808489041464187705960394551190131559942665706845532402445314700418665792522843077589863346831031482315008833237130115155498149627906192549614504530608172182539866423024631629272530911571801620309528808806930597423117692488377119888264182170573021353851460594008161792600929506396985666542597378925435388408018127732331645187752736998235065686860082527944291885344491848276059607726005328001825882708212398826379731978497689181659695405667940107470621467004035678807088037872846498960949012533320699929726044966159731916516934314934106450482796383026918984102073519378907445315414149487910084707379433298276241193325204281923298783998220076742331334154884146169526400204638273332895645704352709876055855548942005795531989762195330218772733581685473484007548314687695478939472061400435433809410645690586638620464959254254306706416586574497531100775875571891532380035465641995371422877872201615810036522027277909164756480803315229504260214207204164411734725960262898621084889538367305451443421532544981948833895930638156583183920331154355741606989812726636732792355720491091492852530774465933449689818271377530022829318190682615756744770917114807590592988045604165676553124183284200195338389750173242321990297706490061979295366715838545783798063977293211383213313546767088057590985477362051256642214595960114236724003006328622265210721653088740999867937078737777751435865145494730237468950673567908162688953183844121798166671602075303692679895538218115088065408338584712538912993732687725838380206315144447275810314163341230633846259114362412080925218292379206164061124427445352199188341195950665335470090734128647718835206520640857780611188351278667564210036950266433800238956721015546776757136664993952339544415029311195976543003270317735922405904000424415234203804290235147487883823636151577738687537254834359852840425851682339285653050499283612298485316804312961147596832461822718630697559948887889889472232035918328069387592628873590666165764682314634231759585382197419063096841734260680030819607783283077090147022855352347259095153456902593975647355557494404632563475780339524554505829944802617301175494967737370801144078704750954290673030917892417771212158515553046078013602636137477595492051482068080812713947872267932053229461969735039076961146471447203957784153048089095526772510568915682424365632636786895984846751446158344094791678052603131682590173341230062187848527129867263129825263346280795654364640209109502460899687891465129592452239956086606645027389042967183268129817214166871113215117752357697341970195851005596928700868276825780411095456318696232623079566685688776183224859874420272053395166406852775565260632779864120489291436471301114451276350055757370105315959598738238508137608191064849308411040556575081187904080306824975773624123450349374245114937319997625223245478030412855786866301238497078904550688140722450003298753598611183588097953583452969124797427740212793609109279721216793230038353630492118016475891484922105800813106277962206628587401290564287676984243290398770144966522410074051008009248615849252301396029955713972133396732958004887850778312201273447982294718213386101320130684351214729841890563137475672070075371317762490975386377514132500169024323265696690802328140866970519971154454058004813362822822715687769163105410158052916019204851514291460856549787076370590424506565249389703342880991182931440814807779427267670218744900959540377741420828112936441545502455758014328727570554971084305943169373908990479246420131855502890086789824578281509124253335654363050065310151853681739699187846662601641416895760600074888952066677599064742860699888879130941313627638091828015496843531490447120751530564410611255675912420954326201011854439387530553023396630085914537136531182718677342286109251709340008605489157416758452478840071467319680006412477655253424016355098886661590248689778821770426779185347322795361130373270741941886515038135748424574200758369802857430492019248571406028781747415672988484841857551432265076039045763247630086312687716220066800837929134876988520674031029239113047628475460083792073296491086196329686949317325498342222110009901579058567243427989897967224834133774635159874047184177197007177540004945252834434026197840945781909192885877276785227902252563543420561964900694595844099603561023302199555336464242965100684275595048478810977545261335624224499543790112074418561463683509830644150063305867793952904784822734908318319302392415564237473970109584714834222297377433533127419145136605934836998836171916389802475402208083111047787980870260642451233533590275109680580659923750080377600291047058484124386473401763019092735976924284040068046580340614302388096281108436062881758028472705588777436821390530085681908280669749622807766155032070240752741225154809794922250140419854733528412709544040333030745240116132488791586084399488157414765222745932954737907102159046362367670707786194273741498068860120041014061412419512198778644876623316602259696722001326631129835725366905852580221406428267815538021201459043785189843703259658183241603698564096978275514458795486588251703470724292829397786091966302850636633229230355633991311092684238150187195150963951660551170247691603265959571130261185103913694990217419404223400572491181343313133586168831871613699305363769518524114850749730012906197096246413057007753178606958774477610809397730495235698422622681054333271091216691203586736365226991368721128392250771309693275559734149370833776966690825506757062347918045676896369217590658737988158092265999870780782893970717596533626854475366796477272028399940319526537031731633484529623128160403559569688793292428957682447749662689553004779592990128726837425604731730989235831201424827534029826658235425090881696184642777424291598232017057951485649871595796069785190913139640588886535750221669489755183606226009730604352462117129883444224470059977505691309660197990873719491876731975043025758085914557275279639284193985786532402494469811654335841575250966531498307339979306737945170018312798459002491625594219834355214724978995267703989390242249643332347332395694992894548073410047979295119270945910516725724873175321816350049764074758541310846512162716790434169454907469271968930298269602042780160986373960991001668057869540767886147868228931284052730856556308710633325297244268243888235562711646769289854705163431783895473859509234036585221041047298324865086727712267815639854557201678207768243652989653679389990723903734788838782158252540261538882440554031350042763497937427883585732188344412152611620698121893743990953044426852393961533760115115024650777994134190462503286725744192482742706312260321317930386288705748541884201650973220291405062645881895211931093805930971445710359167879197100152341404820200624870358323911337106737721510264114294205851248595025512794637842813548459434087210259508516617210198964801513269279291219892661701444941426490568705177775637185042513057332776198403672461389676559833536249139009835842980723248001292241263195199810858073924847765191779018694501654961932725344010201273822072368026154843093127095607816113467862862677838507455296863574270506641998866314228990361953663033847533380277682677816504885271887309810651021204361723078547493325310667616031426576745794700951123926805581156533473364119503726862187527907910947038006415049730538861086501820511159393193750847530151369014756750939904838678192106913061489114340862307984327384608881735991642799290044851124799003533670933755020128441201161149869790073761876392163489433081287045921146303977858458466853134531343685196130565844650286153566782347392327126975142760058324612004523338407335666859259107983439690039888102589952984032747203458419513203308118222579668265421555114136533664884653390630741841185450498047013438564522403046527076837684613127940046668880552167596897290719784687971260123841387561959317919233510133103621326265080889452118629525093342508189865630604476395460815471121770080887194072323446720733373296722022196710890865756951330073127597871958016066393849562581878734124036951341208634619374025644334024947888064297486560278694508792438516267969733494830536892533563133914653505818338389285984067081154782110909871370304309116798030933194033536629875534914424379957243851221819213909394074589454713039961807494469877219335735118286658602105549621508365772139779548254905834341348545861237133383332178916854812074673894767301733848139314895907774339824784576089043819829115399127678320280196720630136334774937101737784049691770639711285522043666286028326332468006013354717446758583562044370927068845317558697690979622831756453264684545770979432334521477969947697562558358789577972064884533850060782714740576581915418814190829514956675394349463554931772369766171831244292321427637568786053580185215997553359256100288620920180353525855238874843907606822687509529969765466263466901548843246922244114855378284219727542566803981663128782189157506678002216537104635041186799793038822553735094247724039984805427957493949411687189578376227052590129173214389688059214664823665805707083769641846853871789810407241559773621732719944737396581211507842224528554256025180774251924166808096342915134166766897376303187452594220192106484435556522659447525685022345164841912506614447482128085354085962399173367242024672155381952630043986800967608666029611821802491796632914478416146264498274493371034774669672714077549216992204495155875402576031934559368944874068659402819859312531245182282657136062428375349678846356622584522699875713712628514678552727072352626053133308388372943369258702044418183764506710130840398641682211241195980443594840774908208486285875169964139432735384882428107012039172055099991057417620339219156269146735163205353834049008646528863311164486332217142171233096526574618372636391200689947650212496974232593288404735896299260332800195908075427809647684947544994156654692707878310702788596219233461668222173600927822813424677085701330085809437689458886701766454382554009416705602297514225799675778095386725671437145970236678900281784995717580474419294893229312237444822602929366445851995784155384847649377922787526330625602435306612720620463264238394110622405576757517024975913953951475487307506911731055935331931171125843060250353606059510455072845117339270289921414918491736330967726020103110354451146328404288702775512690925096785995045172019507483347771841618184785799862435423935742187112039217622971728337830944244979838319045059372133642712865139573653323751247600007826051437353808680317229567549752586925296004506784437199380693867212189413455376280771005162014550499337387074891157100651028826144113321514773189277824577116141644251813895176612384193477192009298370927261450980340179305160074839797198410710199042719807134328490221284077605565714078956545597656774701443273104770073639163532526202383961253640623243713009600125691713384913258170903223149977138423252696686524829666944356781486731330733071439664223051776007876361541692796149332249167228343544850807665723559737062326215917672384352175017520611872915788339965205461793158275871885626732879353909453946799154244507589581642314768825234384458685983877708147555315111988115635004490822276430387578192620490392188629149640771725712705348831252437762380214472327171310558526854400507261372294274182163488668072424009129809907194191179825469510431834797897060315445404975221487703687820634140435814731676193227218251560465729871880462322098230369024572947357358901691163418149119777234768732383256186061354446524360251757513384394206620995014937611182886027313695534304420076275811525540962816374294939958387580777208678996980724727387301174501822845432196225485568865158380886303517367187001590732507759745233995938737516726128181894479744751657993994887831677341531340411328203613290296413664837979026087827893134771470152613705369343703325883196814064412074458346836971091563697996522419234838431388819268447497945426227584570087078202282390285557255131762848004170317388969253762362930351476346491895927750362595507622109825177621182261805885064151588879332052973217656777173176338823518902028573356627750223191905512778004563419902478241210638484141152741470740930737474514690409666280275922644621807917179916851173940521338283608453301770008116142527089476495266240632401238802944313863441989490868831084754774905536872869330952484936537786992210757999550285751580722158001532710340192170732137972779659489431145736797549532085008304983077107594801700751092279119179358580094605425925331803643625509340397313050799077477672274324014468366488525737713260271055967624075001269352020238715319436058691990007720510100852768656940067219759908922332261414808499646883992437610795560257379137217953804250156467302738410761098523483605769860885401054641754699668932693262838255886459287435913362398947929046927271765605536702814814753269034758991099127744863153946421327635609056547572789979449432389387781026498950130485633172061280241166823482824928340970210678870489002453017382501552657691184926419653195052959031124296759514690855823988358300504372580062139949128166281400070318846092249041577694420415234107391688266491330501380902579559418728779162679410310880788085058471808569292501790750422080078033810262603063889871050696814536586449643218310422579292094940980791995606737778745748336196707769444796949290522427117289392297814558283712613470843305114745326577552451859015616215246115242705055348111354244454197728329545019454131169493613637338386977043898349368265818415175810369241781021079340807078956949039795222433661002461705015209190199353871582827977161005666889952729712584979993433092544928213018796422909088569976741103961594040005219555913099416031396485191785509149756184605984987765185437098929449356829846160491576017114203698295856112776836273669019660371474117743322757642584702815512347611336774335428680880781503320223356331387939703662990240700123243866104023573988075455295324560218043667637164234349379109892480712671757182563770084770195381145719521575279750405594086218541010818207994915148296332985243741442460914437500102940232193460750498353204630071895580487215507512720183362164823620764899178046074001377357554802070281003703794843824486159573114422351700972664391247828634318661190373475096203883745365456178852089701367973297182607145160442055509283109679215112859839698018101519284927750609773148048732790531399385104718801615921604468836036155491880366412678267467183493780788100477223087624084966440168923405830328215555846603131548828721173785534933497215140953470346061007088042988327779612645354726612408728377524965409793833229172739670794188162750570651679791701684369947108567140440448162769208737397694370417048301124891636751135032446763240932637716155418386170279998452873156703376121072133825377686412498932293992793511477501003950446747285292751523095960678247872727368145160628054735398147706301914628114114269672010569173204614982743997788297260680070521193417975532572727280382801976406429211118843760397787248862368972290222453775963618503880775588682476977643002120856279521468696416190487582367435060140931277944540548343923008102814655224270652486750376290901120944959240777432218496957209563920140374632238275305108472798993433018612435701445719967181182486938331778797152958274593050760858727953302800139594801638929609402374042605737084161778585527215463296193871369450343949793948350410727130507549144289642934448265504752335806483036324087255889003620245116981459011187743055955578579446198877817424872373583439911706769166045524314242513995449973595963983173824177862273247894074931836831974700040475103444429974178401680965151684220405023253985021128038155512551450531462157686449520367928019481316905919896221991878330694489246794734869042642043998063523211388957123804218768680424922978988820901928545926012129562381476288554974200257406776096376065147025586386575607472677301788917207258553365430379283086959327561314106894709347996878168612076229198009399601681746903824920960466415152601591246414124967125689314814975658995413089297794778855438745554280176306292922157894582414452763150587409542604265586353122946457584574594363705473869957903534052178111730199369302808163147572053807368142637492110654086550625167665408599547076357244775905668215841677664434345455682870693512607694941956798393328886335005526381174783740258114853662764912279584699272638689013825213326499155800926886600021233797942635780883522925454796006507387240533388317307434419944566188547963941989401625316535610984020955712614295004179028468820233511390763905392001991413723214064245190756205951379147212037159088235210482304200138431161465693921379943111806233516109411740231170681602046933023783712003213106977007824599054003994705936376540689418182992693089083281996802373946360036751017890783637857703343991747022897758450832862922378459551329446447716479699704327863386226838294303463440389599752998458615911687849730918313785596941008128025299520465497636992002516658005636342211404991453945461758169977388187834827269323917623050735955638263653655583585885288991034400704970432147533565850625582472149180488140281122980943539315825886023428005883824301728823557126000709751849804987180590231032653400449467317379010665706314660722448344812041679568382798866026316944883893636544797597085215652578092002398070517013467945652808429986564926008294235715162029022759092808064218020987656879486554845214326622845302124305892657333502777311351158274343550717878085064132139004659857677541473775460914786757082447913662520883249101464196478580630029873298748736281319862675750078587103660068374141483890425747017379175402291904268057678349482341593746803543401680046826634030513065219970638110809451079802645064135786371378851584891931583105881854821327287848653096879492922979741473234821537095647092583842705049229168400240243419487691221493290215163425831594894057590717870015131433200519278157180779627462203859412504961101883066579545257481112092363627791646922247740911856738187048894108219260479390892369808241307257719938180250847314089326356037063036232282807725197178666598517823380557554468190915113969950942629409095645799811971826714895179298715371987190170792307672602056609316904684863046320115339765576656487791917741929847995033747796003244181322214140520667324381591781129975469370370380539365906695880326540176989698996219727528296269559467684801251390129617055261409838691530207963468192830171255784187327030450690357774322106939195034325129245225712712342050719149330411524051770946464268266578094682175338544365133718697947051809160374202288267709457728109377245120133297840365801217165849404814495799630213327181565064694378157556592353915522553295614247002007830597024744129356359330803501052890557003130586048905416639492733930194006230085480895840665841165034264428178913939177593999314678847071354617257693191611788547653819812023477443058102798158315727119624055545906970589901705767045439206469297035621060602149495845290118467625884990973265852926854885563245162481915233064390439399030765577519948805120247114194725726694162457766272037742768581099761670402153307564448535323683219279709465482384985197729085676029971585645905673948962945382539456055548758870903411808350955362992405780583913169578007478792616870279835196506424915216436193052845248225020205570070177516578543374052627788626676991364506695333419488654706591882710250459672923499543482490320487883051948462993399709998270982317368042952862743874340614256526567840397557115576221517158464521980541758769090512312751235532802740039329102393171674943942213487248872546809207021228851470941080185827717085618851153715109695552916037040119358620188989281120461157979670680909030798292059160704230262189338302498071709180225256266878191431523889743670895181887524913901382255109888744405866493056875741717828051249405798462647693186158132417274202762129670140350741442530131519606662546835142337471313826124141007848766667131207548376178780474650491781279929571495114561303975823919636276523461733684387435857672737436835659953002870191822936948550940452619500083919632840459963709139415712232857220053954769308281519911376044975555607267586961131069217428480762356354754289132392917111948369970013510370175703031923138079208395174288666673347302116464216222819642487269898299750797435697401687489332790026843460883331390199938089531511806379343519798437035013153481359342268274730357707208262900962802038115586784777479992477069854870734223524987812585220164286120732701333587004278749812118744932383562340130324999558575529451232343449419085079444504128386984178961348052056519256803395884477816836783386761541159629313236137136526190324235838054068072690467445555849914340847837901623106200106937066804086335771123791242698673456878751914596648480809017757709100400625651747414578185469130097827732330077789633681711753788712291015125641644124797391601101870712379226675978221305099461056962729117183833963543608054777758873872270708982140441564237074727194030657899332589470057359412577765825502225481542925347174501030295461756762789228228780656400032919195662024418319898709320133975597015962854044572282387695898432297396328311160404681585776526063739248033598069542234994101517435274681339533764229475984461098558918431603084638459793272331798579620156663700521552376265402082450848525776606096172974167198505394375133421441269432898641339097893045778830257818669981827366948225411772536838099142782774306985080049332755989559491663101112281954663720274052343184632822083808672111483138855982853906949299398946042221480686083478735261063102884241414952188187167316543773883540951113178179435366451367832706916050181723498942048148908414889249829263731428560882575252198166311179832801318573544669725344119606779539647812860378802754539889599464955946602415383468451624322398176365416100812928256541984148408642856529113233874350392991447073010601122018852410349053306370228270676931732104323428147873851373167447106834158386914873119431625215447411656233772576973549937496401869352621158343461434830888291747140077145598951771604262613072948846007683117185813393745737617865593168876125844511406128499950117991623503715291928159175248505661881203766751287594348486888296090881167406725284214751526069513267980896174796972521629677543697880139604642367033477469889227461626413396547736923841912254711341574005105728280826903030197714751762585522322126958122541379698838682859015669658100741404203747070709132718462322658199528048045963058909302294236890558340009198853950620649712176842362690305958524650891708542793406064832434195905543594893640274205570800536886089441614058883019812179902720719393716949357783408037475218956759415710141254185878899085831694247141957070676479471642444070020434537630013735996093829462093015127808019670518938711876396481683144816979827889704526331034710644812069949029680572557262630802874290778833362339057187815656068359374920696542162850841511947787556309816801739833482896529146359288032338932319705817563765623003434134790990032245870466767009258715962928318249634038861193818464719568429059338828834738362675350836733813378551935787555970698835736621125542513258333170540136918579637725289233697777643501589066887614952032216512168449758885455493077316786192954603046833642162511180844857404911982164928895815103768053638713399625930803084368971677866425833081207825422952569315177428080737534374978222839262193912035618910276681941511527126687183589916992548831567880383261060462817048240841831320648237862611467639970900282248220436612423217918567360346470679242548565299757042924161246628835597846495813100966048862107452560576211821292512335518785939087064622178583421730727276818573745559810084239017532843673397737029485099435481959213646939596800806739829062769932824153980148023004405258665124664685962387021245168023067294805663196296996706250989258261482088217821507796626676055755544419142192098800844804093883102691085162952762750417641802588918420844638645412953753071613428248752781084067473630159221061249953613018745244079104613124570177255349684929160983652492105825210420783048727683665348044084731308056876412045343168159944116299407798922483588076451312791893543690343205723302750359707043821012211626531869986510640394503419638206191802932499028139360030358165612473122511302404314043651583871274141502907721878074763061061805277343232407298983280112881329126036260746521787538818048427549714526577067574355317645231896900888881146582774330725379621654706809304435388945969185525503959025833120985506379216652900874428149016718356237531945896962438108641779428414846760330045089735825764865953655797699362715860237898322505394887021387143371284132262098050118502463417259594232012065777192236827377095709406474260468746190957537631190639399659776737195555034571795442181321135802427399977344489718712242216183072791139140331845154461494735709030805698801551392472779106846623035145867003238661900372654904924289482081835247158770625616958242770379005300356820130903646070554367341963085828694902029180940568108930877525086691608794582193618843683631314870612668216727252406262983778230162878583574956893833624526378616725604727973130428561430774774092406072825015884358984587284011323827891242491511840990871317256499825014506794860781343708959481672099760190321110899661329021583688668159284449691832078499037314144944644299167885198103365272883771900213557822690537782177414146517943366508531798289520019653262508466685191830828799241149805370023236990362382862120917553610748476313588421730559786144334774218301365882287760333076813253678230968561041079517429816360571888573311128647450899993481667128135824308020981569717617054554771457755949618432515337306571594270826635743919332240694290075732156880760607788998921379893337019108117013680817946437623620024176533240009905665096471189571269322784449282306179158615534299461978141269930236545439599788223129769771731749812513842581083783650130230840233812612757818572860323894949526674938886341875008767700651361449588979134652371336026710660134067159695461664393202925210056516948917642329662331603329778310996600665955919154899634988470274705029919664529852705809485586164134608490983785353194989215686550996951386209731820036694411342437230103083961159975431195972178799819603003798200625360937074159484727802045957645916976609530585791195642677604024387136326078874856775981058086556180147934089042795604919683715339001270331519128255245756304419302123444090129978509450856667793721365496630446300936845780707044426207813082134013142329100567993175682586398265460486430082375620647513305327409322194160991137426530883914807485278275069276808790016196662526141386654222312063757536908644121168073339945459005091273897191907214354141701207272060221367900971438223182644288586114124208490166183185454909128337831580046944299872643970898545269457855201989341579921105965768263298108114877457555263152660900001830711959505861066658556872942940478190007881130839744278948694891471646157255696358217435733526326980852377261324650062541487529602108916697800162640493665816203212008275329590431056019665920378104434504880208695864896708911297599988520013561681613957312376646081996764525466633464757750519790958878389371413008118722953526403534943295179463759987779852993265497017116448930573682754679326842855318722980159429535863669677179015641423147931934926188816655999037118005876511620830772707099241620021355031392370545123211821625662816630695480918073465749607049351347955833787806532642367091953191612219741393054921129285707092711337800394257124834362164894551358012024999737079330315899138575320625012233271999370994138126604429624647892945594708812824047784899803321608114145985644236353740851033707407413843211924089161669556116811368286287493333361392432911407819436939407986561579168019848910713538401152473702114172907061144312738356929796353314275769837345707990007305032737042068044738748799129676221320144001637566672421937065793645114192180917136473901587984094299584599467275196521239248632623544404109403870464886435795446624407775409073713482450419606877864885554946129511461109531479538394667262547423077935425019941847005825857764397026358355913185776157305934901182029091003609106164178468761872988070919212590480817921401046855825450250793039089914835123468027946531969343141843945033686861508600617268286516542318200003543712887550468332208173500082662145103073085822893104671020464902705489706681701596383876570212434326286910420065719365421204571042835304505490162183485250428910520608468558668639895781132279568262778579058785690141842421664823508109032743893742049131294885439482343567854182397457068088448088122290373685246907185796893679825153579528736456615893030510368088941124377090502171763711142335424174929994782837212312992104729871666144725000500625808768332551490352127679249693931167964902354188537565030540277528296513289469678038823061840549465360058947126323314567458821192675742774616867044305105807413764641674914408484062558942785927394931058143817315010507282443899523631639448964092167210472178513124710973841377819633687124616533040108406938494721539001223355631710896980092356773183262029985253461370855024662032605089034307883152047524213315471291791272651098450035774323419487370582913674819021798961378007532007755787803781471529660276886138546555117668559856312515861179354287880295108295836974149778705849218030293679618958500973858025817877621652420942474735757872322395923752565841904888646687981489920712791949920949619560217190102145567462413075165101567123121563220235324176787379271318348764653733626584306711963510166923521504195971230264980661251822489221270885584632905573786930577354912092101654786081705603866031628930715144714982846997913555616895117941804630278352940476803719947753119359135845217753423456065724837017250545476879887835965719742117868821715783065241935510130155649303842175037349785518022090231471025303222409515517720897619781104170274977220531844145543039907900050217034497609924822421616326685169402783544066795668418317958191725591060220846415526518706897370727015688092168780667918781579063525239990438881847091334781457429208965706414380144811120370554635948594414882621149499368501736913790965895274621686182792357733911194356785255349905353475778966306212154649872321917669182058158343128940476096117622657119372315930224971253917237536728194519277410532506843940755679615268534898493930232230667769925086544818195383831527461087526336156121327517928336662283885711865669816646042845441776413823191801232107608560267768909184563813505330246473945747980074923868082338639592623435741260060522963177349508679891134126178803266412579838835821753409499056593298328970540532774876141219234988238778728602466785714752795604384516066184952767211977276234935617397026639159180525303621647019456556623702758347030212720019654420902043959144396173155721683156936456611097216667587024584734692091438154370417161250501902136006327627518422077911306472809168942161389798289172680349989755411567172124133650657898735602937681990754704840211779089882036948336738146681248690395630212230703500216737407200335307788120492955277409397285399047529805276269465616004194212084827923865783061078276971062612600454434443070190816341318804371790888348958697310390536670198515349642855243358110742970696449164803593659529934039956647315590497718557938811340824447381535196621053412689912383132293226019243361128354116861996051499540984007385728226250597190769461841415728458076044710900804536593077815111235448700194034712361505844429319085002313808283476513965557782689935652739087182472348984543072544389191947688814669421131165067708856734280221716965523145817688338032928254925245465200839017885771571975415737927507744574889828994046201581973924925126876124255966737435576741748735273898435644480245062970963642809310177100221179726055135891310093147469759055952677257836191165237092419420571527435370179202099025047865337341734740473636390691729353140421333756278171792126715416911110209405961312483746912718009327774529889338603632862101002107934125467419825119119043046339428357481196480102368129358524445678170448005693783071427317917729732028873564643514351642681829113013522062748931757339524176376386160247146205319451438980517724875617290537475971737930811046502474573968081800021313163728705169875618635443049966511880882185635394392893206952573809654981924000655661767035377608552507780832584381933255464636351183935024145593729284366586416976267449607376534158279472883546840693997778443842021988671451510699338323044588567469147774566742268228774347973244271104258237452743102818508522101051476416224511556903651222756572447910102437858282830795652317499666755610642673390016502589332605488961867568359420874941988450240469719211313528177850337053594951563996855576573560043985128734219114893570899868743466493164340876563956875826824863246440700756466760648628865944643119741156060201486259599774793026056529952314698958255013028525020438551951184349472245321284541412762989913054224869974333006231893148022277163540930534465122870851389998429208204532576960097444708995215991585099891664524759065611149294622617317039933271337263205551720292643846323304815779890234600987918786041816629275103809493231713536492767518634883852104183179057935134797177546316131406888445456013482696520379785874788181438714250861790739516379715286187695231171005199984331474744991827798502549444052977851249841621337106626936023490818435779581487097197744940790430068014171404083492341654945068379663086731188501050132253922649440546117618891877446483753310109272374925811074128016465282455617322712371448080380589852474501652384582458795262402407773828237624193759877658162461825801347745187737904618414213437632483930101170843107993182201172768661129206891899449386596157235899737847263713395808628902265141760729352309865609331475971191101983523211130397516317574086544748677350895955152297487349270069314181367085602063366857142152292813647530218756947089676070213509803167285097530397277638478918700118175670908484129396932340146055453605664015542575179003566637921627128545711619332337289492248992183230401965905922359793725855394741448529343288546321706549315146616677788043638738404100933497091905409344416329031714715238420108537006271037812741931619728124333970739484235385406106277729765937664651098108232497629074203742420343636174669656174443086315335562286975789754950422432730013305059231965894666506054374348421280824458389919632822315734331556765208724474247821172651625123925298691599791120919121565711890354196667806510218107244861074319159869430502684426674787129160236795923232848002590418853670123318818601306509899246968547130987983002046617142313600659382888655708357892234969637490033570785260074690967726310742257828524205012153848273031469236358671094999788028429254516009055117113476072942369416542144999438563549095787309422491821700394438233388595180027146006731714901498976487954603277358216223238828313026086837082421738221438451668046756681032488824290402473593158577653014011800485624166899022269866151967306581805168594288196563877495050977312620558938252998074061086315871389239022225671525459839309998694310200792623965595687461195639248865839781170527468789330442117429998158452755764097589743007194680387752100889970452939615024125534465827528077614199762641298990705367525215483175144400604888741286944316681757410887870942449840152670404243753820679291296210591789426277124482406090084941880361276242773453383071247169045787742155230347460014153841687915873624837252709313918196013689753248605723038702705355352585709292290496969327527148575273793576291804144757433601259929158459519062720048795677382761153627525663975051744719129221302998869827307172509660227884109284451070685260160976843526174244538745893245435147224411273609042051671484968050131778187508922483438252491203120978465922486723943454772057182638817193585163453780046897251245408017218473634122100221840610222337605774342106505817124942672344333220721527506500733136559543653051304156370148019784069401714900989584696705761574220902332891314482209365050720792605720121856800839777805109054672009174747838276759824617767916081555830085581496802946482132793681929933664686293710754185843357527418806850929768418753045179546187359836873351312528507256268642892841834944109371690719879949401125861192435169383974641536612965954071806528384698158071012761900002497859324561019776943677922190718764366881882885840930341476006870021423754518785896815406314799625395342695921554034401128080097005617351288728871135017087296716621467866650655031014011095393381128373323685404112243519110399337725002675698482569385514323747129601893691919871489150438133511256339339143158575192415186409748916740414862631721614471553038539313294510876284466459086109182635924644202841856582720832433875147779677325177396746359020242185504968051288402355213149763568603226900073249023424291262948424176876163594547190104646853113716989430132227425745130349528777927866714734129567544265002431159772888402292831706138730521102919324086703670734993418028318281897822864027878073194712726101748533065093151416466125934001399786217364653396203596042426711185185002932895650805262116542981552492287328061746073920870671310511397282301078657236082685416453029430437806913354835156685058566688872225706052378125771726025067496889241881670247589947020005304191654916543049833409982796248431102048864168495905280572306273245002286884424678547283930832885113200607510783326718617306267250692114423262280788529523443382260110585208465800633410938187424955518289117828583788797370225738541864096164874209340600952202812634270889726037011707867912252931875140509215259128464042802940553958817236825074801954614129643183922303845411671538984496565100000401767309826825137074244202033537846417323589634247955622428568543482867101470755750416514041999565717910036438771502812398175017193232288074602189038218568998414721731310630544689040741038890990288597045496208610969467127061338460921058244969331290430233356572751551046767232453735004310393111533180703415416818734106473331281531948982505332200470632457202430668381760326227897167323656893110598814300120226298698141055138396189883309820306287255554782458266027234370684592508162319004300894455351813738885396813394640809025973760612065959537694448050386132406333281269366629264708077265068187260454503455110756975800103244809559547350396779772675602947438836438916351763077333941602148589320669329306584976845546868372572799757757260057131234137046536861720565339211172524698502162322054792850902718398047543785692723025538880921353621332316202527665338482597540311843914718112764966856924625198818741194998874536174863407971946502695435773793284829914466104207254819131500577215943140078703942657536701769658602405802203629051522529471899908209826145141966519650745586129632507280637465091041400863064787454031000307247915551738645989035431275611987370173759661502638845788907974739105309194836252873876236698472094277267569080899463059775353044451434107787698909493407487809220804933147099296720054331189650904634727318608028606595595647531221217837183108310181085473274077999329118203596966680006348587265822854125549370089773017796401643458656609084612541254257345668861313341928818204338187548482034570378000465701156103063406517304616800993955800145704711569658993253669490576334593535807356250789213062894076840849858789558081433518259886039239754786637248196066113232265070610497990377812277968394411166326807763937854278996638491087659439272605164073672905209108385742084860836636173982103395910004620422299102172442316911030598342133283439131912801906280360647671615886678848778153379969962360796752197400565051649482531006945161946977250501887434306150502044136650562442423202310023603006144392537619607850490244313113618328139238472106518858543764459809679387630520858020546163812482931611118221150626978785491239646865179154988793481306504097766186892429192250254324415158079914566773490312348988906141403766932521300957505397067565755585236358316959963456606584019191209068920743508131636876951827090991139064425939309981190363847075392631971854974995807755094990914718493198774756420460019693954603111693178745628281233899876666436460365837458486218805000886967636339361083921899235490839312526014305670904261995279489652265360791214279577998852118966447383010941593492908508421397537268248950557684200772818371907436321862716265766222081117947811814530670770568000930419297969813969316406468733573993331970886390949822451578158482968235048603147917317560710643617515594137300039860606249690877810244663000391144497308894760083868255519757116315733972316221895867503669443566179825132071254384849465649349614815050139925882841359898287122585229984770844864244973217309746536637072539454346281554012706726973227024412671101334976392803233751224289198097884195451870008761373854294408208852772386578172283619148363620155506850039255735853654323314164859350015344355540184931954415287073014570418493682769407558574212078340508600512979014284097017761094306330842368122128666762516230849595794097357206837047062828988133573251579605652574269157767560498905935846074289700426138119440426257779214917555230972675276669632241339456863797542500353344103872152503966575235166013236671020073578438689291449648328964794278584737451686355341667732142793800322826687278066247055893184063967129228895209300926866890621864669154188537754258928749937769590303365600936464521991180681555871186066204516988794504589389750673146077652061038453195136767679041973988889069537474118892126535213842596239976040011901103783362282538197381592986166666815204715028071470119750810453488280499659992102834076062992106527104887913479330058951963618419376390223696085875417186199740451129130284236838610852321832083047814825795064834510601631477095019726622713013073112270885066676386382880440594834999816358223602551014325843963782724376016403034693028778856179281201885304214848327345405772049159355807831258967709284422723980076439946474150533253767253324791755709448453185614390060759941557036911329681112558267910487694862155117392081846104830018167400138651599645680118308098123137808806985745934637936780627830184916496954184606199171773878715319647805166329781275677871839653886119720123592627982530767255737167469565944853551534167910179259051917152443000307930262351586435547935929908404744942531776210732421825245695581838470769672626307016819725926538408205874851037088690131002191398844408244187977976911463086712819290859634488960036848696679471290198905419498415813664184843196242093661384170601268668481512939506608234239595984234673559400672061456919526148236421631047417455427721496801922111347674496100507788783328253058481318375054016195551134583015741727686345813309101025452846577035731820737395666510802398078311745722522460094225118397850699082565145897751667124511333694748611014243417774049398062913866174182108798393595871980383332171464020135822376801241178446935100464822327462342021396579458711284655649115307138464412762513104805063829171579490061494064915030477678357512232130354397011364459660665666502222171904439164298316454444711756437630102818668791104649756907370498365788041666042635638365681395078373374096266039283419525635242696374629115718123098887193297807884907913918887874193084341789761982422064723001672861655416416617533613657780662322824616750009336196283952266848201244856661146365894503136875677647037273371397340004253875699385284878191654693658801376368459533922342251370990316337247959162271890930340163005214748231483215835405865707898029432208523559605015254217042012277582084806914898201117390837674936062440542136771738138631151532669534290586217591207497450308385497215173866869094316349155972998270343670504086151074439886823909049180856653423439897232664140349226404689124566070473364426860144763062223702615387835547347069851935835860606449043242320194222570868511645668509974520742696321149134299462562904022450152864819500105080858406303895478769839537508163982745897617006608445748604195130198957919831963696949264059769256037730237715736344994941488837909274366063951479397742319033001447471165398690708574634395162531231262978204255027559787695730095859548279864175151046408885222618588556401615754378401737655771487068906336307361141451407726157464943812298175610019701217306464835776331351263016530994820017191095250042059113655849150362934662159440769106815271498082182444847612559454666453398103716123514037436136782374249949193812302540560045703840184592940802009390151716948384532100491430918496857939076896381375645571931780497726618768944914482725603394985597270167309314997730455947065712967905253764976610530975231178657845865094746016741876261624474075663940063380936025871791547076926575123462006588274484666605228691717072092958966605306605422195435323491496384137874462275208685486041294724551621954839693339557124121267454966815932091863522397534556028009190641453490917818252020018989927592501715423928647209949680667885434783330631065901915606474447980174674611500043019495598535015856660087405900705259561745202777127912161290377983784458041890931973039391316375112708759477820974373343393900297492714702660269612879078890906518776035549430586367731887399982734178339954932390354707765905027686507566883140929418098448060061002155840297119011359377215935937920784365024883520232625186978888041400466952327982578710101523401318091924085479585707763740629808798298567173357676742561470343492119664070801331243671596043535892996854625660925408430346629770774592326763127470516949551256653091950541365976276269298798706304582989320027182992155420829261022727431699598359375572474282507800638647400041889147508620714473163407234714933791187891669545462591195719555862243001630967675454154398296184272638653092364692716059047746216468235620480309672361684750483957363050857882848473360236831608470344675398348387674552808605190740492034046158197337773575986767483570184764564171394892468696424135553894285866337791469142385416935647419711048771228683434744657912208215521883645808937000151065800432827127231018552314714451441378760491647492069561838640167360821580992946764518604804431014210315681140305256963253053333580770526922816823160045934709767201812826535063236779124910613798549147242543016418999412323615984724906276664123255608969183700304276474412571210248105267712053239835769510474244744396163298185953302467801609269643009980370123068349967500630655404037108631176675878710343403533850798963297478817020126683802427875519347714511169292046365385837233098356717585496994087852036410907651097712259401359580013520312949276133575924695189618059949509674556455032445760428757171471127021620705567199401864332101335956838784911008215584053400274533032980836912526566485755253014485213889986691482343818026978009390308038990694785637967954225911961979618091073468889715689724987424591747437020325062540061394815951384068755284433347446967150122958196294506859361484498393780250669895499814092490875635585282709958277631027418505541712217456537598797592558935370491625978462453549285803575829796484306954482126993873721684286297271074421135019976071881652300903772237963142715076936744282041930743833165739763459962563031487840916105641634179805367114377112046294324811667523767788507380674507793031587403844560638679216226459159735476089278783506128227092655672658022381553344455928305490454873427839289841030940878395279349998102552307453336431166300661648173716949371374883257054678616546294267553970074577315308631945317026105243936012463380436374171254038490716506701243543363196945385401590596080258639595530445854158067668380722825022540884911806685200509975206863431887980114614592070952402634516268856628552166956474925641292615231973538857460332789693557092398793741803982805862575936546287880500396708647451444750366009550018490180234237778093044797555286526382802607600849464077191914181514359234677016456526809870533293232444473462572714666926266036783509980165897921937545038924250657233825066741700422300383046873450492110667163967536274883602831123607177511795293167143874682796087984213734122571747307475902294927239947953974892932366882838292150090431740844657193677699360657962231966659092669476663124683609921739685276346922598734302396977501475249999947088353919460594376054842380927849500424632201045915276012651612762701874390102402686901953974517922083436241752264823479852128123689074927375507767944853204107098790397873525072253369143865859862095235153498573277014558909640244650523168914215424435911953627486922896491625739204848275509693437811334581387640484210760243790231670828883826309602768483503754631732147517431455474091328636606892319531657036162392119300437732929159538559024726807445529926396011990639501989339334958226037476078574805540541388821962720267406655543291503204558388735949998535385104821694440526520225203963228910498144092051798794397329275612647591020033795355499771493608978521872997176427271624074013613554395070455747831929757905801599738079747297349335873771995690087914642513834566419954042234940602969209559456678752108759827957752630109540238761370038287765737687857264483590095398259762578187365143997622501534636087028627531769514204634615695498620596897125976832555141618452883459268310733378791589104296344528086013520491610745414994836581379744205254763688069768314682277564084428982386594006466223198717309584050483039550827305314820761426284422597143745218536187375576982987911585189001992077425905626073519387292867426568199416581443886517349678217199287821345364820795136628243240955341187277330113366679980686694400348558066330774166523258138082846706361022830459432379919327480103457988769038205543580157772159211388142868849723065931613590188293137733079684719599009912340495125002166575676710325248349663467463876886442383166506038195509205713602701201456110822814167435848600615032361784570315165273262107691612330499013810090042437393495157519975553758660488360409623487866279504408173644124284661128603433764968019537148080608586527881975722125711882050450999627107437679805168178853213935665825527528932822636879852479984987269107286398000430693407612474901525150122413514727270380684087984917951170059703366352903547437200764542925945012580488287729725446256107204089890060183224817841554929601032303105308868043697959873388500480689776110982336248443653014875104599202745811609450994002605697044791047733447380885974380030255989541269770059151622929112427490535515453655814666597030739758345271726734326468047421115360582725061350983366215534762854476595661145181007314915934937313963397396465805255435694422685665377913003647985272894670788251718176767218217369334002610158572034161060139582610460354811088599324752731710062105475802640249448379739867497633960244078211853460935804900671571181368586418089760643980936732266401924580807262862671414631826898702594363021128552857510712838287350698970223435468298246328348596355709172384644932959492068409181403611069799754209438700577397948677411122359674994491738338641876667775154169199161698337758607635953933875860780656957996226038212776984675354948146692623072075076137051531053645261134125540965652514527864616088174507009393326810849280562984942730145144738964042116250937113724134903331168769047003207809485338293635633920948256356827089349116751005409978839968698540681182229823858475370191541515271061552348482494798718803403986401477567018688425861573229420308270228299280750167645022820617787631670135315100440830419667715902528149408222216251793715337546838389656780619425508488692012915997480141170789099065497620275927251702596167367338570896850394407516774711179352864022277561034248217592301683040255231691371227038396029943688555050696686784713024895491995493531953211037392555597393156261016004118549046729759874675760420316496901857423844005633680011529717249335208086676751875578414809932082081651392503494737024357142167175937991877564519236278695104893172637102465719313581456325048099424025168531057970122403439572399874648822207254108605698057329592166517261524626748428263036031547686372407866667169066000750504551710767532956683600277020533228419599186263271619438269053058667414039845735732153006907590886799489569055024178033127857153484416571119799946241753384693875315547123737622358315537716317823215606205448851366211473272125358086734172460491271045699722173595278558599893129061154566209882724429310476611005742314409022700975348296055714138655987562995600999746497447571427482834673999506664590811169421408981430509102045695370797889652227095951804806920773754918514665655072586809684457968634012841433606046952703287423522751326947992161145020028612142296532980749868709835149761540983235594525520890465117898856674711887586128074076391633778482195884159841071722436326314279300995327265757555577835993198254926523522357554857174151008695027183611630731916692212180020037590791673490543548803866234183603573888673337906415055078316335173450363417030795629366319850387147162606277501300668094409188424209207857861820817366570979848993697833239870925201562407461607152915565613101835075366561934368318203152017090242371462962313724573936040164152243017792949891258561516340444132988267150621704116400859042370733924756319675031565867435829622401057329310143929324600922706421847983937286934981347518776121840450959974991564949456514594331801433712889398711174960148108617436087496749379516917648705894942489163954289192545294069730395556329486399422929114089993314591244178911102243505784233041270073456136430631253228105290140105000017214693545479143089573157591010483849082776238597815278472769453356242453726239755275201012878484976026831128169707194543255351274747056431531908339714696954963689328815258900494085427781030858337618887244005714708738176859076115418703149004352829265459529592291352186057926941565659444166133578586584784570597137689622637065219445110143823827177922535801428092666352782929992855078822002570120592729507633986606286075358888212330522207295995168844492318419126936830988528824904571668576880113749032303679612391044292534282835333948997031444585647774694087431877716259127291911219897710231915673751175414644793204409341043776425973334387218882714784264823867963269475088542840556456392495745442753149459160699681236078851809171621903470428846711999400996742394188404578900537829698877331428653546004144349087631730460701389113251101919110508202910953438484383080595440356172200957224460767178403468345236070707785832334939862743544765798579964812144538155372286553148233199305946821025618834198879750807290778225731552007908561682798942411178010500898709616513431656005580344279460365830824967241765304746719122645762189691270007553320222829924793960677910730331113218002680006615814228385562862035665584554148955515796418757893585647667749467377932648334587521373758296173070620921044773774925104619282452976290078325344490603380954177560021195576634617529190105946413277472629530556423929535433465617120139218038030239985471122255631569749993534812108032096685878957321870041011673126291680242263606849921802774121898260794972291406189579459375442719272671309306657774167951316665097474822504759239507776286671479563348150298552915847800083889762139392307375443576569110726977699196495779053344537813472850384064391040776078996682501564917032735765586628433574016280524725958134067213229014268671536322929759088837910998502412447909125445535200208054579455343692992652633917661829692286323421051573863803173365666880223836031533717976190083570247445540723754517210810032280970628337180434098859497277080072284124114392150693096461267910779182985667516516516838222655756430480546547759866567743145250857418497229284362084915199812690426906159736084025086418572615362052996063181964819476644809942845233498154827079563150622788103488026621306663496271622743160468800008967518144751265512841191426778968035244462625352690985570684575131372763632977057290895801309188153772727949883922381494476804153239042428690814444543061993134240768258883195494206924576791382613671725679073851678326809705836983841116131785216817617623955417449768211198351495087214312658416381469853094752494114092792524118588891981176659700324649340228897918717206149784078345253518194755370747441092795182962151478283809622539146596176369962552731174568719138067901145585945834238150454796890423192286766920859248309168646055080918626794245028625727324532763647567488182476486000719016977174622475842620710631453439709817618702262773766260198901032762928395380075184648026908040290980792739954011178849511504477273926582752086202364471607283871166622833893551848065793398653600150988760669462626706624924101285979007621696280651520884174377239243900625558849411566568418112704379913839877868086104328371970109459894192740313203333818807471253888391129923507199266105403021236360243612996442328042736970877273601826311950652746963900416057796056063491156919594300310545801421823339547344339821549195095556185039784345164397962542861770077218222126484287147800411808088320139925292540329861107305571944241153358810973867688920209864933898253477512868520716107329313070905056938083963387261045582021534338781208100876773384968740951042279627554347834263285278216148707992746057246935994892200977273925893527569341408583730910917095248111987573462613139296773538170838420057655595256943899450355282899211535817032568057104248553010063029094683646401319510685024063423672923987245235875847010635519962481631085789963836393223347080334816076929496062031599718242800713824335490261325878274620921727989581774186349573444459145710702444097553512030933203881379684670261474388230841360775314844433093534519347792359965439795553078029100556376237315252824263162743793679094906199393899704490675770452141529884189679811248812894615534933581794581149971269711572425048852775033530296365610041507560957260988500242275077875894203619708249829119493745196652060556591499987708813828196115946538739338339949566861618747097918090387466660537500858203389317161494190604832082630851117184656185212728715974466135839917450892963926918083645328247867854378118208026629406746525863228699897746090378453125404486963006404232091909003513248753432051089493580462663151162078204304483783114876639856786593656856820905444861910392633033474134916848900278573598472348351855544572641465354131521468631773583767406757521926213802762575272794557232178103614214995650978206999739713440259231514637900160360927102774369639720940487783033892917324251758749370848526719297306719011044004613323176367642475270298454770995986309650653772436489814522050855154547186911992385942745810810400705335375740374776830386057277020652242696477018526939494394163184469841603121118606871239352213777805255727704757260097754034246590558767257668145545999181306440535010709481505037614245668028648427392000115872044789604684281891311255140297012586514444621041235316940972503735324559911303477734187700641422586488732388420246942927343776381402292458543605357975338149266029095339825796438257271040270921098494190454892064933434511372995939193581469789050492330539331935563367337602738660099242469553224112795628639717476695553759462400756335582260371037965209541049648536421123478809171545346318877812972793380427123957997607453697827225053477533309821562736056876831622665406349061125340729590727369678621070595388315539412443710037027808021865477637263156336971225360420743482245964364012313484712938355708729731065281669565212197822714630633128074643120493132851149974091882500472950756628748306288462814594079901132832277700143287825610991121361681724680239689328594416296390276972586980022143077049137328654284643707003439638618342676816252293130374809331802181442045350298526260567278657336476183179156412628573308108643631419175709286719253851648203240824854056771940673525727951002263436528077818357642222526588214493206177837542763966641242512598179746989097958077594315146831186376637380047963036194500944259598167544337349170664624057315663404664674476597093139593823896420301103160389259607631753251119894416522286460285685895548130348032345083897487757515685445822783389850380837560878785172341266375427474378007989282547790030383345927384633370958311280519402196120145872712002659131856060881947873946582085630161040432866818847920103634176917067433218962503626563775224321817771969431049812612389912281489226628101809682569372882690469987845864718543902035788570926223718826207781633312152742295976782425256327037640054291831057190878498578094578811407735742713657511783942044666878581523241808084787170064599634896915555142798863969516287235824914188814698151725135225219255834917296826287292298095940976116832558580090836340004758212973003008477426026638364993189117927410808354885326115037411397803062102781075250157677524316857076157241099247740124321009869519424318975153586955706174521138301391739582271206170228089096454086864875037862616712744531819903878493173291237074119337930772083024915973153970302057951589687310665936008955633385452816165672623548181092643644591938774891601612732013964096940785748558274959658192103207650614267693036888568773862720190165812406642157670664250566172484082481430722168288207974144174711219694017079989906672161635007205548740902414931154156267413085208634931204454816983780814150117294584698539956035982422780373564117993321283737759435668811066759668213681576351597924294250161186076492442221706222371071302946164126552861117920454580740838154429548557644167150965710480994766466453976404828746288997636615678666106317147756225017774089766626401593390521973933177538131065413155483810086292090263476532917743447257358870807266899717497150924749981102209459177489290185904038392978172720416542584407034205960579066129145596662109464544870216552579764002961704146303008613048423162797852357562090419618428140121723724399024419873162669961184393037246946277510703705569115193091103808128059529868609630777664201443023221399052419909893551717893582913981397607110634885041343228381613993254241887650217434363827179736060531685803864044225850633720568633771117062870518042950686210570422090644790177865124375128209330078101240825458950112258805758706777716676875478358735685618878452346204247361848767158063062456606298595858092095870883484619644007502431319068797572121067466881821196659108371981307233959682751049745689086494277952621802161433820137886637848681664462101638316912789688809032931440580268818500600564164685688416223625372969499483016837867191191246812359814546743152039749290219020257888325335540348703978055656962247008839882208012612993674884058884389280639581986260167526737593101692856123469181510527097022819566327138944241172514569974489325680447218489048366147399875146340656458001886658002837189423742753846330312023692736764449652960346544500936248470165509570892789559664348343528699866903588007274731287003044753230098455385624779812522937143517216107905753416677170148316060720049561702557758646616051274412274872203721592114027062249313173154293163107472880187623627549964891586048127328870849768924957480526109414269787593693987553885239532903917209933937541727416289649504460737478428542868339568605736717089775235909467799594466868740631597509655053153456245507927758120339687720035617800836365744268531003891084236176667365335025912718254532845669832054742418385069798316633173320704558746761519121582302046806879880779872900484345195854537049255185810576728296627188555426949895574672957042117358752675405697096243338582075824449514695156117656380364282068423746208565503791072411677366548390157164119986918609393225310478705509623151433319973138104791081717734770558862667070959606453440154443706796633731511540035789393943547807747338029867187597026079914737902459466213688418506235444697611693686858288189085368929948555120332151764243097587286291956606351839945085860577074002711435092421236077259463084936067946648055923258819753349151303516961756420264150176666243189995861823745508204034512103448518014962554772685294486784925214454599435848118045424842955968092785158310788444271581409521148166503902214053431097966897816524146484918995353027855952888233978796487453871077609233656610076428185435291021140585034725784732470373657310147883194125017569124646959852253411105515217469785804590202748265791994497686965621664932309944414759539087964807207111643508037172351592040967980996449407689178767417524856451756271649069256740630632586590273462836471936551696223239995456666520670319853353875740996798267172872188507766241009077339108608272799359286189542370590430902649485972933316682389555990324154223951519588744512372052922940591351265828447520042947780465672911306227733521809843968841108764810457349328411449381896920579512039101262950668057830444833156591209230763417229682630891470538497887244294165700636309430168072851032109024298202869596155944316625849522235926974417962962486667491745355606424217430573543155388153322113029696918162710992029442416006298157894643187771351264587981975352402312228853719918043231908495965412070641553634824074260595678238978040463985005016858970053513698572480910288526027803097691792389603309108032800561233742878106932618751065432042471501309590876494363262584852821231175645305406177370640784302015196370484335501542076579971520487809805564611841632382024454773901667456555693254641478613134203056967345272177780985108626758720105786507069956028424088729132072248606506081748569233776037159690293648348873288382375048177407830006363391960204997870889329095597664937278716601614465542898722369180397500992895169445002783329074444076185472340738747915225686687461451021220855436379705189619454058801414293386664370874585057934762913352255169252838197722349962401873457879390567124434232382559307094597385594676357048453991573650642515806871781014743866030056553205426963417766720521330195527753376088151180707825098411331067683779940211364257598914807962331736220556335983045239613976536277289769290011221309401869835531272197257382892800016774200852385248986560116317919499956102604062481310882855543599827447170644836702709864573619604542469580755033497633408597489238410177145669511073532319009473460349632093129541998562286058857672224080233699382525327879511992037416814349885452986964884527064501686012862736544217156619926591322285194501096299804315535931843880262587231044230862450656904214996314303258349465598035046199897942629557837611918204015591383115150876681347352803884049928896651554438611563611092341109587205274868417552494178351998191939815609487805466699243174941348404573462816779639565447277393473808372038739256510535676081882122351580919531866399419042609060818912018848308523085789225428074638445348649110149834147016434990814963116950616522493811713579474127236169952133466436070530796389174196521838861293481661355742772125842466361814531872866916686402535881174537751948177549847162236089195276550993711140900813328995433775720803317135567674435832939701356194188616256901425247616608295871677313804288678620479612281575945394673935065038486380057201056908671285224975846690134969657867482753189370992460438357968068831510015433376789108421251718532058161405947467835463169885452918683204202309566165324356186842223928243052814736644365574001314617505524320141488605982900001252672778808292018153378412233635065066164919322280995765441828006552243191843092761093626929280674952425198804242849852949960868472610038169378440851825025940946361495108394382354068237348163262005827534309441983021113468656235342929746521524226671408927124838285689861841384689291897062801133965586063176470879481310066887163548821517625095746621946829064011403173543264340219376798290375326657257973537290139218063333698578023820639183202161605663210055333007771461146306821774887963508757836113472408740651932995554976354146073488734205161793394278877344729499499531726587855862789300008376103485151017551055218723179633109480433327447554063143474787753983243324087094437592217591146884958166599089246104805890895193994187339492404470262017192906571519653423163788539952551644584590602728260157903365746411521940131475713378538747513540615749775689660532425722141321622418077638384925214946119642769247568875765851985687288658162429728459918017203023172323784697167570097357760548874734692148925720984120199322767982595975053590376564099442486538747437183144808056709500333567779666283827001778628781236745083323950048628485238342862509699132267362550626429399274268558546941588027510884060619079122262054798893032293183388807807882961421535579912153441562992701900597775822309530304914334635297817318656005260823080952529930607883701334472366769850562050543427620600493550748131422285484843627530781318721836471330533792557433433659245078016799292529358947143715727988721330493853660801082714918340824314335663939591969161515771270315829682697774912152788134742546141134079541742273289328685698772976865831971147255644293108678956371299095690449731841538314570071819324945913761157329081104310915982268704609252614941679799032943113494929840987148880892749549058884822866578922998587161706175649615747087181870309490957192512660269925612474833738892959115093871706496333903718971099965756166158907834226872435362540470621301288833816239610338483707382452384350977361539048471550391448748087326170092913441013733402930665227051092283827718423445763305982814270751264540752987696717870156123265950497570743909990898348653971319040284624490871234155314413407859034992749418170058552899074087304307552629100818311840495374638407422362930857045834694215266220932509451663727103457352740906353461008034854428251779028797343315867627097143845392783508541127685968170704009963333173275995764255374824155556381346853422803510642140360867516548007456368413860143291154067909993970007160696923953701307347720656991390007091283049726006509995064631701535178277956165639338895673121925554423100273645184860054932418013640422202621475879043127878357716313642641462546584084219454614381412037847524975162063299848039750359468738618789107380020178060051562522916420000627536465726918832054099658377270045903654447821993440602890513218403603887327434126992031737751032833531725983780299285152462010672440408433072921407540318208853437797006861019359961064589638217205836812617911524665513800776303423936069577321826650985759859878522470037617045321884233650926990086789911289442892251503853876034402795555646027654638975013109968787562529284344138228946900085162539163939166691924484062767738886662492309213009960861311275027094658251286190371206032863493175230784115968488855864817757786849266964561410243235463446642775292127521600646557471751310226664982841548780681933641278099040114380728825033650208358946316683191553645160696591806918463698651252513371389466316250670880870419197724913581392872220119474074567819035157734834988756844868782288409901096184214852198042387215923379417860314299937462511615026068277994777439248581431489457907839796618161188181010445428879817550564518722591999304471558900656660890290554859509859129824751777629103589966263120684262781369201874169157146391632118616322284059119892761610819447961035369364182747724170534574931298198987816045060513265358682301218742285817360613282955704664676313418063642396580469012585006666846061348267776840296960234204761078833187895714920618232234922069582325734367073623973888390285673771668675022745093623212145808293512612232370710503567935063584410163360096995896487372948677761576782929816540392142833961492450634655194278174091497041799737221864885431903181039618309762854903185845327479122195832976730308613851615430976975358997409007396005515609850146437598632138529837166983975946254693042923960179188168038100316402353605517968406132553373852415765335640125814758567662217839482860120829008755582836626701186317682427200032899365191028982388013701242551796642907663738071327930951900131615606627220079377387176647779775647357139761894039223062279357952955992853908222135115741666169073349815742558907478171977630548470510549700537857747117112607756705187010002264912754217600238479000054266311206352961487537112089989599737508314807493697610423845878877376546656741919628339572123160692218282166537185534227628217684882673058712619435334219973940935992116489961105807288977290861783135554771252651987175437559776283160482589031534964752306671522292029338986937086101633690334113538443002417896824684917178155964388132697484891436136873273679841534163789201799176621847923689227437975233872411009855088649122137659274479430987422741842698936916868378707232114061122004601251145350810592237438573711613698057708422774607628713512276555726056174028231732854472222877164133423995679590230203750689758129126419548960666989259917159301397885130745589125631617278766792541717429537765363215924812143693710185614843117817581082755222047960775967096230018466961388002821518454338090352213824903885086820114683838884773899476947839410023001388275245482946334221962608442002422346268347488831695685627690235827912862630947863431689703529543685782874892613769069583684450267543995378169858939396807797581698128703276849938752136392104232181660531184427619648324036342622425942466564076154899603850486381109099204853544298178019183626126483086907572083150715497808725266833713965887050630115268460295488690345038360874431816160308165748376575494920449267309234139081889724357567257833971196139569218698506079390057542325499042454992575223272906095624055792234499862942477776398689243127276055906014905785841019158019308801971813338554251500541453704251592283762208757878623926305831901323868165277447053864699822749991359989540192548705983968401361944052293778990395409723308398878245460245870107739871865658631210171143052374223398546296049166158774155531004743418703831457771681024776226959464633754940268518913834746103802245377661931718170230761972110368892761054620458900655908601612985328701867416903264861230981606296181257372936997483315819050756352108169683523138773628170134806496068787694391192631649049815491210140897783400561260821433558865348575360992894635133900584262824797788838662510705641545737954763826525791264592695597108318599756737240899684955140167468607381608580075546017768916992925784701135677393961849858768552147503109135200936214016245617802278559672205496031568728061509497931721544898660201870147242032800546622496252579877620375153588198152054007557488727699117105645733988259776416279692511031854456483322022604161554540982540605213290787032012523126398931917737312094550712337824591940545178471905218408972950370254533858001221232598046850649186594201035892833667159901071119003312827425770822111341068471592951361554835169017274362021252713592003841623556892147598169317357152507348530854747540198618619095153820250575892739548443190284141817470701539099071675799343818036974487770520734658553505948817240881900528646643227366694867914867536180166598067737819797184293180068942915608081922600913498960949651638483275838659188324651416735822320296260692836208962257100330374355234345888783430149949927169737097305111056439637087297316301497127075777060990463462103795051441669802742607786022865740325949488860569892330021041341456421716979807614338669628489310485940938647766650223999015700181380067058423453975016315777909296777653865184425895711736720551727283761883619754100000863361928931533891175251541059142262801441887339619143802109134324414546743320454331509444564952386744509195864310242159154064247148066845965579320185713532862485133194022970158625195615175405960566891910221487528916679233964655953741591815753236631116931890211308628711218244799431992239949584133449693203418760667741855894689208066552125464492300555473273211426176956886122509313279617104650450540997858820813126036938364682566264417422118747316370667704788378715207725804626534589306361361352926857018487111237085589427871544237311014998084293758728853147314216303293181438023079779325114675712667949303270155898368230158571834681233143701215892199635202245914226554303604293687159608816615927379699214172582581606590206770423380615480114331196074124374760129346004883293276370133844327644788065175493065392906147486551065329090104068086543102717468962420850271337678431645646580803254503357802154072220606947073727151183406119415073219093818257129032464533397962304326687503871325945993404059250516571336214301191956520874659934460939372229498201918211538880773843031717738826847446793026060101446007497203864154907253617978915794356405079174884569563717298916012038482843998716456207366048115762414669042192351018862552775063488987331748247751484268316050565140321905087490766037806019721982278260077063477978231384894597453436183209054181920435837998846500608833938164272849090396971350316223931676856553031153098253254334752859277994066737333961895429236882544936075831445629896589414628698148705748390241731772328739155956665868269211516190036409525597652100884786725272887266372154452612057851366017182904706627262916453970144011804465783807368343148034735730650185002934504613339988079676463001988867538349658977471753680904790328686631736844748256998079547166479304197650536683443362987614657947225481373078286677949872522109009109701699011347940788989597877904897169579222434652433050054469230948058492574303851032933776567361418309639345888223077660130597427460030053924204602880924290091998386159243080043889710413240315254705797595473554403448343403842455947745809105461093633608953956582014401923903189174207563826494815090346614035654501906851130396142525034256751986914975002079126644935570904700589363572053429966299469703996370431399823339626651670266970314424728899836301698715143472476441807336955766386966997546558114879792531979023738953761220576803161686585630976282906880448657704595413105805219133804500319557368473766207473146723424070043360987143218004179874480297443195166574715534271348588173926961173101373428892199284086097451770283501931755663136184969577332846761642728209209257693931813574418278640596251575809452999038648609038009010466701964313394649859948008068408579843358608752736283095370422229056781113392247064666377192452970496465173730608299950035235693544266714019004852132374118394341997737499588778124831910315996062264754147084160656652880208596850680824071980227990709903556069211114041381630758303173341039621035622001656630200067676103628004257216434976859605550678671098151046060377576758373335365722799182243544589771608986727802008887686565269269313582147144708890116222950347594906863862368495471172961594274909936953191428658043709044503389553748150222519901143586630109887847881562417382095218517774066623461404954191671588813417847564047059531682369297120895569596736737900020801214511331803396861096879004981221118107585575300011463822733592430799799766246132824374573578981446016502295712604011371914419998105986066399393501861303304418627319287251995187627092247348243710636944724118913251662431630421778205763835419625333888886267789058973014970303330991550316286890668181229114009544026963046159793011409773179401383391045485007712246168522550286058660590213623960660474560071540910446133231666085026920903873261922378305525008839667167172268415133534435972129034366513993150259234311361335435958735861569629790795507405756264245867960784905631445272572993601450134278092143543656880594220576934283406973558669207795883637235412436972093768255364087201048904491503032386777954865195692482052299235457103210218398049038719153005645231192960699909791564045363125271298322127729414476683812679115757909256725552975788610022494748563617642337629641776827706327023242775151132019984450504038421586759657930352849640844322228336066649199639375182123246159058510221010300367430169894376601627539719226620607389650667418583356012350094129743983454594872351647967238995200821293895811359395150379393945063053063518196412133870348551960345951807203226374393960227056317208950130648996970509335801583772616773834169087645581161447607002592703795199346715339837831159315598946087919832529516862017671873322194888967686910506889889664719554210664627040447032754815777361980486376019128169508881892437254382620782894593922505867676016674394304669889589812238868661560132832563597250762382569349569726537664046296775545867332356707700997593113215419842947788985798252998807628436273595974398989808473592468489761922242423121169846435062486918419269740781831591518193504070324635526955482927073343365189164059410860876999732143651213186200137766755768192413011713653822025738173030446222885631410151122484130973854271114959513654055557240082619708687590901141310994634221343604588384718178274592469918365055870685904201177940581916144423397654813459983420998708248945462002880561796318407983682031283362363297058161617613819398656360388120988238367011103884540689303031559749966334141082913564985721799432549997386361044155101159408616469012982522968796302111345505885780365055686703547510303015488688229550142692333075131779413576501147294553335768159970735818857245452215103102672935210744530080682384614034931353427792489590094649615764608455847030703248414919791270378199354550235101687215976488918772240299935972380036885411212070175510167130782777966549350116729426127887938688581365467257903946262763942907072318609957735414507552982027598156887406835759605060849731626215507300828050107767930848080883760911247897821810893521926165223671144837559973542996616388118217167959648214588915893891666353589221648418784836749761982084919273099252397049570635823749621622019679025295677378929035294962293149980262329164787321505530158341072266802304374112374837541711006042236726001397740546647800262608954501912017395497401331612836675383137180463104373360896395335127555542759405541586958164264128938112333009742777951812539101732255088248348357501479296316811168649919428530034088223036156575485076084534089194663509658213111697624817634566293648185557765446734987485323301660864346631830738678148692662216963920835129544426274958273654196373691266746033186691490001817054899176254758119350415756217176560595497609552774905481948196548771278421201378151275282502764735357881111889218886887360551496534918045210323131564298412974554031328544805690652229308128252272834513537770677664437456022580409107321533906445396402153046403343270973764714660645117833492575884007481372956038057362153614788743269395560834188514096081964716615302749301805096951040291684528837444218476698460219266179101003801306549328313892938910660534109580232234610740379777490461422840466267519760675281772616174427733812396306185946917830527655373109720698638019351457528165295185146408585759794770444809071767492384708919253245691914176169409909870121171912971314783427528746652541860847990582812086073452031985081714826737465782684328354540882986983521730993338827045410652160564773638635009253579619843005431561749817322098750811499247239365981029846945254194365503766790099297670258756896299391957876828058594493530926730710708187746481282546897360408490331463386409681199524105936656184299722983995351028716928531168760729727768310811169256195467535118962067448974824632744881735230764388897784285092049593784714961152826042376505834959535096753862270545755893284951620873063571600657500906714074418690948704614188492970841956574397738927387940822548851346716042247754218771280305144819990818637699215368730286042320205168375441823003793446740232104511042372592382366488404550088279458590545111397236999683173372891449734083655861051929521050490918073229875802048200430006904967515909052620473235796068845768232507175427551078775149593574303409765239589850922694540808799470449635942805651549709245802534061794868781213303705166707289764872731129983633812070176942621212368169336476854020241538776863439468109293207341013561097138658649048172441053208068785626999373338636380304343633005657514778896363742171776595216936650683032771896539453173306163962434247430392018050043794550449127728193542617957895476187263222386730729795290061661146814190520158503339066512368799058636213621018303829272114706031907839571269437451615824989184612978034293335124928998412511633031758356947899938873355708792917800017050275595735307965344559342684112803541509635830248775250811474600092872457304802132267013468956121301586594684278215207687419321944227971173981555416353334932905240300311565881505950608514328329094040900678139537522292938963589265744860502187877216464785460682388686722799111985069133564967970723188348298428138571215427223350321766524849342464907647020630345928004943704164980537149075038777683616399425604139289457626085869124036941507305463480447605735279595389992629239087179293096501335873830297002185682301536243998488657030566922862776514759765883174214584211658690477089545566005321536087694456294877590813677072812593685002914313302806994824947459513536270589893593810099541631658881836236645711354762438293342262769144025431953133402916314792482155559974625711246953746344901718453911659816716867968818853942182875870512042618886163647181681195597655186377407334977914384080305135611716522007748978394234646133399123579233795810131145532003031092783902279928446131123141528322137085466692216724768948109840159933142962469158923307956332729412465661778074510434005606028446651596317303074479418991130488848704163591106368303863384494928187147542267466232894931527112292706115115690709992701050088884767320570290101189112290187039596212260045145936011855619845550343675250836061658711203393821346417331166604118932808407265264683238270022875056576316111217724912846678791475419444213013796551629071743068116044505570330914800870396650113596515290281744002997154555121129429435675567605555504918459986402139802108104956718640562093505152862966132425452464294266901085726120097344203244574271267269934763289146630820769457452975500714764160087249810565028279700376535834088483105357656266334018607554320608503521705420956275213401064939876778232132928692854492227125292094673048878705177137196604532397056155261865707468967590581725229750857587614048011553433970847237647402921003617091924615618634112732404836467487591905967146387425196002451348964197697561055084465497449863427898041519614967344883577719902814913587412946700370686570996269495077185152485334688198549224804280916552906832628082047843742270430231910302655654702131870687836251396483079312153804549717827900832988690299570548447079069791460811822199342241390460724288853523815936066014849316196072599139924556519615290309752618515498595951529726607022384295145927836688729313355838477351997907121317664724646177944311561138139543430356546216370923971031237021331151506360123049031712324574581930550823968743737107647679645492703181079967229053648105208172806645948128051981873278544116376556808112413570252516939483983461748135521612054498922106384762703289680198318203267732563508203862293500041101997913447264672125251769755006524250747707167804916053174977455648967878379142208708724019739769348377826040726524148912515633651943517744562569366116719881587891010594949583446015818151395158125892402399528435447940746082446383469338252296693153865952285541413549057022644209783999153343982707211808593317974587799855288247822085668457823404263533008876020520433670038873186801444925017470221550063041619134389606453649772586614339717602813209626590161102595567385627288821878144241990078267427893130242116470882054582171016064554860165413161360434603031566648259728733995038332559037918836627227887690339408786277532321878028737514109437145960715298757568885959015502291946578666036605330115597386207260485038892347483665498767755778538876896675245364150910585332711476794921907293361454260661046410675709989319778609714175194969843576384802499795444344846869464660927724407055319756376911847956804023883480306622959311955842346662649171138963717590035951843824432900057160170024403407653774385039594617381169331564413544831352188386564842715424616314980297092268532416804635518375849246236988959056510132606900137085897661170244903025355223902715662653255988812367601878395312472450640554244157681445607735500492216477125853408564272801281866635296594005273853706286111938158954933184297766195349087070474109978907394758045271170095586563634728506044298458825660978480837882499194442689111815278026809233653459852216628726708966623012484537985914169796543742160790468281713223166987467830158163684207760421212192721685446467562294240267582572089243799903121251370716263718985788099692787732073832783924867167064788084226454791724469359246871400372854238587533909313786136880832899903732279689062692743159301011843388890681451868463138495379056778331318830070902105986886607442569317502919202200846232027928889991932250259983141268968705639964155775457277398065502733729956905517356061096316684552665183763236964093136359618951987610246228131681044348305695218213155523122934941169529770994936719208943625193028329306705093876469991475293215068314554219620670657157162166199895532533671448968935011229324731431293845198515352362338974059422644476229345348933256470976603714186419298709652020441475933954958611614293306273364514284777621346043077726402309800335944138510035629599494697900941600948084305479306523424946547558281444555699883975948278051639615235663562474507969621953609680342666566394341083969141265005607884697469351262997715783273225282942699946502274650125799913547262344746078973227356118046018089971672033307216204821727641597033800981695999064740269143029875186897744591662224475601933405811791479313921575241036465864146367551337014453641575911087714725010297064127681066060956312421670752069382802079784502885306202924019696014332680947226772286296578579837730635632212228526152243105394603865883046869671108127739824787650973840612633599076638081298281553959742531811440478587066676036216022600437633351270563334768003498513046121996753631288629593676002221285920456135279259701935032090722827665312546632888165179609152453586811067390989478261278007329888150808373597297319820622125414708104982514563778933818547138134600712808750312958852180016492737870073319796335624490672770172345889514705259840913467330861265432467654600334529599260614846288754340194129180018682122753256400367248507151114313538070066503003772475941671731159736751458603832214249991716700958455962590548621093610890236516610813968252721353714332185716863646717064160737783968557810356795612043995475024937693820892418497581741531745797492911304376507425982098483372502117037580187075423748643358889209137537755833334913939550581550852711825344864252737404156436909817558270349509839557299130408914846284036035255477227675569617043143346788243304307825664142055787469851872753239508157094916001708687073423405703712588527852094788830928770021420603762169138558872080727765872128834517419158958482565361166560640485848919798906883300773130569748148354289913949361517253573550355041947402761834427770581164999136458803697099295725489453143192949352500691807263158220565564089516443955341869997922232138810131382808672492481653911544848974479478855531603832637156698860982165927717624511718648975973329209072009007157401728899646938623426151226729908740275025352266154279642776183220333781355303566479675626192850869499683282606001203398414587613684533027414318233380924401913882665925238294454453872639554584457453591803234048043240768471178138557370751452249535898801503499334078282814719658751699622069222659048251835065624087300665470083489758098116842590706759639874543059999194093937588903904346705714190348344624016426752541202402857198719749613808188004284618344390599935400135685721304001117261770965580072359515678066374221146136738787231226721141366030003630135242355505101731922699184612315425477618236791842782079628880942776450477076035258745650946658884963372756031218021184241721449069436760352205204288400174085758335224871765496315469797566440969699406663200868781400842822126559374703644242787151830847227063842514784537111929825068744890736904055933450215874875164351095075696053998445196691007325492514921271847911574438681570196707244291427231512067356042941656921133656077275837982324768855303089294645232085109300723276951863503066688601037960961838331163219219094483716915269516433096891167288631375988706669829979673288008073994470857356574631557696491556016541034993396943634301638475028065059027287569046706601640940103409654511523568382145926913907266763341773141640424706832549356436149830769573245748982415499463073833877863275394174076359053771564734754308655373306853613435681742667106402159317021829485386631219592909063331340234819894813555387967475626779793046070418682756477553671517423664979803235438627222523393463660957388072682216566985987988126626623129911427250797420068581776777480037023863721820648694644995362447864222697774129590861611657575261820636210458348394665209074000395285858170716610990975338028437100563276545810452925885901991176178673824607988132131417191741461610381189374582408058411527171235243365396323970480789130237317396059239111194020515754204454216779461437188331226682415200553901441050991998871890492003217556316769720106863329549315369026854053072535005272754603232530867783182419554827359023405130759444357424337603886539690990905374023670803503079210309336260297852211218384441584355500122106379471954170536152397571588451637511705508737880401608073800160694042473771329368367458813369659805443640854052448507646578364678574101930308384546230406593475351684754079781181826089707449808569926032429765378245405925328482157804764818196871807349140947136357676977207105319919910839459766013956305199523846111895530245829875745802595163962605872235919787777246098633087809300935587068848580597068172757802942528061414191876347999538506524851859219713636691971268386610959986307901299751732812025437194193048320714664435190908197904303364135468771952777839276794808638966883850923701619687521019221187896652629947716342147314308552626793705084129086660723228085561816804407415572962047143572304247130515310076841353369996128293508858621638259901731205919212327951503018190800984598573343176915474612050261311114498307124053865383868181254205414769587247739499823283506064798733330128688342372258574241390319085159738814718402589481868667601394000650869746424689251261774015522974401130664106562238370230566956474452582431998751680916160636513588365693497681864113495716261064629750938743349383885416853815988948156833107191363009903161697942375159590895753798559076101668948273716773802955768072472377558587745068914568470820643394333089292436963054442203132935095025433161102191874247407600022581933308349394725520160612832653095086669325619893928011857763084824453400621290667940316282544421862483219267453144790271883729812375572145605850000507678822258583672793810049386113391246313863788976958937850838698880455747388865142673249681669557004172970907879827139345102698205205935870545142141167562354599715502547485294035522703184563511418351968359601912584277009712899306567180251160293431314279845435905186249515843207832560013740248877663091662459451760639518234819559140364597236820418512731415308091630061804046331085594733247230452772905381543097656164632764098279558867811282689224798995792493852315892114093036337724754576428386511102402871723883450851425410437807244846428224274226993893151193248810294051495846021100971947388188005394387833137357406609501789842755799964173658266143933880070058398630681443466412201736420956937277047678134474495089790997598917658768822443774360800347621843247772012942940628033546163574799881901021553953187166826081034423600155615990057407063332649163262203595340438709089808680919154222016982737824785898947175740535969564544874610166021961083901870574431928395341947376153994514124559364321987156962238346780173098740248065762089335183035395493549156275794798674346395329395304871295864316849807639440996939866568035471643873665840579761136119080248196497839404396037141178125359832447458706897154654125142399886253480723780911119299855417085932379163430549985764289089189602132659475843748194008142585873023131801780388386439801644318873666723438520952794974611716821421702057092596891272212634328611752679334822754565214558254982381005634424761241857571005420096369009857208781333321556659132308510831913270060220689784564580099110527254957036845051393366914704568265706452560332235100962046813785693435085922222833943659976362646867135493933160839308319671120335653415450010689076948403006039954789711130805939976921070802576844066897342711524240977342743415043406250237295875212798515934251134516736039249976069613928592503405751258496496999926248829308622568519061734998209704809435175918148234791434433381378294666677804440425444245706556492717376718716012238862044384604197148055782030308562676286162187940264212244511265150213940082713728871167046148119745564008089398611885535374864285328656691660040033870507696548583039582119164567254151419303508700392005377442162762044090909689571101797277626234845410482545450341480537766305110609455757945636129010217003056705396041355462208919043582941897761298333657795411373933891173159078358101128511886864873669495175994642462740027371018705260808564603266034194136493963571177718296619620412358936187131481340626634022524974181889606559707818573652087747893900748911076614391848174438320704536009075936612217140214760904449045434118840736841186892128262279622451447766033326589030877469398961246327220420816872136379232786527630405062740140884953437455081491834433443276841261344856806357146745573542944913075001637855976376644275696986452670165377416704117138212970625602167468030246487497983051351862272583012147433937534017366602777631807908407753979826638947362117511533375168582420751495582694298528117964088321988576215371439524276988619518613613223840581651971307141904620237866527093923859049153412980793082400053601844302260771587024575606840581259769745870369348242519619610246058376575428927245214883506598263260421018758595334711459111293845202177112765949599994252886199489969443590884626396517929525704295841562010773006253068921121834753536060997625534917191568579022387674138053582310409467837434189204567136053971551201854111374431377830498670440076428502719866478631103660827947431298162981585186066229180352707808490403011216519244956330248148615154594480132686410689018149202050524696491369980249591668932650256761298143677509599674863374903314805634271044457141972029209284609356224935281084680884901360372444485193963541430420654857261550154239007123002012574707416940612493295411425339605393593577544764701238673643899739426080838616676035042619916672628465666379718399026394899060222250777513346958635096638799498363028505457002536254149043061247961971739410801032807273527298218446370857166687116968850325349731692522834144844906304925199169372954783513656823150004155469827098457336184089730121303164775716052795625547633821961065914729895404039944299166620372779658527641754191727369398833648785295954919270886798598055804640778660474899594170521311101595898869930725648961298237634416337935922401671088621841292445371007246484486548585293586554397870647938725474964859532235598709398116061971490035411178055098043879536233194171223530290365331298670608168749111776161579798728414165811620958751043598589972863117689820323508160038913084758597848329197913195987497375272703824307938116312833892952070653175197212564459294326198015782553819838507030429025818781587423426429846643712895036119979277119885416905834310729984422344029950629544685166250399247725655295231512493389810707444862562193244468535056440280798592532987865420536289050871362391009282334973099006807345828235684868891140509603986522638659475966880849982008860832565726188480842832210603240299941030757496306462492856720826890127854476940446211193997566618052417108791475223623439652195172531826061524749635215173131203926558551599580439754190732812388666947522961990730949958192339537688860577373114695500673141278134483862499925225424097442863114593178508029395910983758505761729709235613970556637891795939324203180605923267977040544797502778254742063178621295122977168219148413821155461259149909902854562371523358107014792585284102051716521005437176181698972580768201453762429286971844030014325557257155033490328713126323576340835622968126570054467032306113198901478861869794896841921902981115417016308851516899940982941564237392026013054590678627458798146061212577779346001837175122300929600328308153303355030190917379259602324599649781431760548565176447763883762722667969501479234547885187451926317531923001142118592889433127949197464352098473440725184316461177957277933749593953109884551235903946107271797026086735135319786212301977058717960816815851918033800415892123554203787611800987911681690731350455335253146719757403199684502462482676988866526358208558614274893718282844404449309180973544331110509311807724416413580286786540630011055955694421962573619054351755809305488138544535945720690400233817791507380681132390341326082986943796551226940081042722315430288096683570765075073836256752467233160100179978316318987838772309425978139184208094711668286216176970056442648452354813816404678892817595766593444629073977995837296039909084069312205867632223660479346220600075729802651935373365467327958934136016741458318845712130608999858917240722950101684878160772868277599198358085777548121833377968704831629729624665562931500211354447110313093319211627280568013343180794750282218087378358957262625292193355767329990818032705521414617139700698189268098045062154303307829514277161506594272279704178179005087909323736124055751715908959218688409477588696392972617308500595472313805965945390366069298538713138112707369048943460965864737012194750930591722345891601579687556452379375527306141015921567227917147666409044771741692108694725541998290636887594633473895926051716393755572676918703100161314120251524204477867419949786372944608685334390693360022634804391752621189694083868390134178143346663949245702405795780851487873844329324395859961165279594241772004838558912597191878822249729435557219356861148113712539413094636343413847209516282545610235387433904308031135614686365471056693809978352239017006812712515131787163387156823098893914640235886005145679397815041610071805311706827418458633987630785304409769099918530950385831931825354035898094382773832342351707263624877142025621865586308267519745769636511533319250984961292536442241154768536147030666577618945167973040259488369532804563228063738444425966869751102878338526178830020307248857221199949523860638802991019540280681575128183971484107918881714277702556826688668155235938914718032329175966643555167572323424869075214213952957468787412610897181054637050219014051078544134640020489651334918542429926498861519966882852652627059696230664767257082765406466274532462411211290021262740568465017337566784237801557872656721585632536674887847731968881897825264776327102701384394632301218654632351060203194308972656360766007226044684498163438088397309532809004419277399568773962615376741556367821624259246003414649537505575369489446204599345095931020733062430097750185153737826867003515974338646776833086697193920959966687350542344395277306538100450059935941248314078048821863855308090551123700613409839586139955927675929786815226338888780229410245506095041705583753019044405243234579872632219499221240154429381027435525942594641250476997909834963012920002299703104214512008071167284027146153378757435228329019333232257579546310637300387687875990459432236238404368833764383910062748371250545792189895909243859206018790651950688048718400585221651894598427992381270500683506064414571997549149259319998019979179205813913875918389423154254713285984646391220606507686241896600069601038121501405587017292559569873728009407053508299884545737222378568549824445921644616713961856125074899701281270271850527457022286012251516390240069639583256991728754614855177864127956144261384926352550159812166073103151559124978346429562700407237013476293678247733987634923017364282452536137596093993611249175373126248650052248414539939002875290794234204111048824258391230996138550773670815557834247200933126676821127309737325263384593695555283389137411639432288819302571018745124451221676628693902862355320287823907954523042670600863087941163397391332237358792396278839561358533244251000147884335836008167110108933864377230821261168139837023907582494356340852107175213074254785440369118200365539162908188701324566094833715205355739722994610390272379274227189601821716288206341259018800424352159942515990960771097730510091836646326966030095108186721765779643507573182286102028796706935857119948096773072142761244310654805628062355472637245019236658963978578659242278643533473542652971115124347917157357717726175744554199266914091991691484869196405619369778022347081316860784543059811236343531191071283326545670733171864943111722398048420094798409099779583469537669707169607858350205145864591473370514823364989003298993398974935613471634730515699882852944582484953036171957422203612272546146724296221569185072671635597327138823629961804440480934641419691922302462329542265751748539608261278903389219029625693763113656968059957741448371699246380127942457195265043286971669446370839358886591598698001581194816302320918757074971235561198578782831540385193498913753927487365282115177587977911386554869278657474366073552678814013315914817270991420856746324936112016935351513809261683799794652031202642018043938159410837514009759288968704809512231939269562925620400386685672366445059638501510565373907729396376843866386167123998305739966107622295068015579300521980081350603747086656924451043862385986044797629639817463954499068079682615947307590833835885409394267401513838202414871012411004943404000498603082290600013903825533880925730969439586336459314038240428609107933297924796385532040302731284650933805963270859994193007533018155296053371230940349660449415972035341189664623709675786602815235159260603028518483532552349072017798989193659632279486834702940678790750225103870426992885331113224862721839366168740251919011212897051216868861384977299287245611743393191160838080571672505441932773599098987066740941614528268728945770065286103154595469372584877905836263798892917058436241096776677127672355688936986220778265467877252074955178636367977412396794070899163598998646056080992709426954289542301266399130412414340228673821355177943991513436133367896896184856609442094505435122289705085950249305019045968992469225556915411957080541102432373570436798593507639079969957703243467075226827953599045756915134089304063055524623814379269254823112033931811019435557041436521449604852244159125834653703568900166846044917772254268217775584637163672532895349200680410356715497463792506545308325594625773396774562313233070030638080696879054937956346008541974887322046570376770102046848141708242726637326924525236480840805118967194824533306021888222059732335074410382133006634021619307290473096584886650558907795379767501978235656950658637931668578274089383152705786204318074236870789414973574387879630774486125638780793296209013971181225731992323722367683257935752672415132835275776032260591335018773560865471568448133913818076832538480242232245649130325225761175933177130104553609806649948923717560459703686776292840372922736247170670527770047181212708134019886756651520433782685131239820062516797873657024927296906967146110967845945362723107909987818320812413583880353056319170121705442020160214774371641012156493020258459046700426873090950785075917254834797171355130506497654772617918828502326448869609296837725637685991696833985888222403945201434149040931033855081853247042675291897859800291939585253552006288041535305806749159703605513427375083007223065742237434245021255070711485390540299813224038213438655855363583270923364208372862742775246132296160527529862644552255208343133554926262374153879736840712180013767334265176175706151621866957299549912620088502976888053670663821712885123884988030998817595166352532131702735287312986208181885770457554636567825384118188988230367984815715352235092846490594934725804494832920377260242087154693518341232761930489201984459393506850209704670622494575008002026198776988706070535379611851212768284817101946381008524297723597583359753394086052899380340394488412469213849367267908089946975521104045264838182641986584327505446519729953402666494661932413735094131204089965988859644207802066814151707542944744315746108482634371111316277456170193297789261912071050939937030833172988145187181192274587163002364815023583519651179431836084270004541891897036054059325034118385182770714798774745611525473867236222094343046515032273736094582424314176254993397603773118912407128036260859364149954325487199311754005657351595060897805061985354984250546029067672561260100604747833867157679051898891127732404304474552051233261906306644867939541240985847730153646159878270392726617070380324591184341086072864851766664917187480591187946701696116239020233024039494646496249942740404841636599145709932076225870108142510026609708359855773886444596905757234030751759480510470639225644267216149326332543255847511189062137881791041377423851036552612483904930690256124323553782973561129091830046839458186870290210608325453012056719276674744244333696276968021323506412010463660359832437276836600133671400109123758837076600692975064357530988972011921030602886540790467590704739211441177509229819284962521309102829607926669202201552602180042536173951658762512577244807560216759312886632916623622982757122415527414850422764475926288122704469409126748069876694426783969261938391327989307993043274369203834406039110416356569373010407972427104101096010787009822193917123099928885557575576026859157550582240360190786631155746223381749574071681791816333510269668495473376404247966837635086284214030564288539406207399009301585302829396991604047232596873264679056022652113447623419765496970374959940431359959463371399818530513323214495709066357572933945556766033725455510250411045650340842473494723741606423651805054864994239018960923354180243773208426796712033764345517402947068587751302825458424740439703581914391674975292760803789596144845204511004817916678317784756052456023702486883739553783262605776173646539521901401284751872140941885275264564779278706940969846122017243877950411449560420449579657881159362450951252408422027976379010515113403934943218840817534141103552890080295387912214173788527076508598398637376955460751845359433531709902279978226510227836139780544033497156280829519234663391986183983970724124554349807185435568648556684296958149946814443980477374256967417581768349985032465090189330925965114217324356287062197459762525688012946642428254379848631910552136251299007532505000489800593274804601997020538472942838085438164293626401226733045110382698280776030489811756101022273782344534868665944548106499398951111129916994874145523134502544408788460641502747086561607228516152645899319333389832575742876835601407583034875446182542199150218065890250303790648905908551900453592823361928088995715876539324808067718740480943924384382777065880958213045744813312501579129487870312113996472771267197645561597951591237975141543667161081422872172822980026445144848815749507514176565820525350780198368694103051282939581240152714521737658111767629695874309308584149722358489290957631638335284635221696522432672104782990851761824328497292698353504798990290333878108088895952405193774555962992285981628273457941009685009687265687517547214359444636320504598730207997065127001261854256066168496662250707000783687053153081865454564012930974328423147606093959384322628965112468519223310716490398286845038304390112525397146062908925099816782365056557370807267471782733243281964116226290592411094041004599550418237779966148104595063299735713785101909486253764039630700409015917343750302122512469578005932785819316780483878021505996750105594942995890225350402233489233433349348339862222097465985032308484898416622992032006264027876135720791121794176362327728758414102411763894922565969640462597711796506101430632863444286690785416077335051536015933575233699856726212570174439208726539049147159785057989362481927581422062095671051776500198514788765486522101032482208737205579097985275547037077145757270985032850866160446367194350109224988151933558370766443319485635422498171518576620690428270299795257474074930880788927994418290079252293063118009537186840891717968415815482681196942213368213565062883421760518663550471171677073888703619617879471792160232802211363875145791466898672795895080780036489021395980502143024020480539205530727176447047458688108545004451645468746812964369066254245434072036382336412130279477965284589922575661817261565308090438035147498849056774731675824774625611171082240542924349049430953738059090434324630725213931551076158323069223671404817870749805650787800515374431879788344817766494205747729419473437099323470376356345163956237303056027521651479064350695722739701241143704320351510596749582756635283699678410062717254342796020898407866973401481950484175285302952333572545849003128907052824932136334757009760734801189799373358955006946041695695412036587208868784044370507519102781860585811526209764349720940720699440589056027316690740891353200869186716784431619596187182911872916296770936365086768297454072977693966374847591504834537318701100284786953231464892698109879440243233925638511587422425667125405246611766301253502619842327818576291506497116558819954249508809294709409032646916505648870580196815093775430368076601962020536479026626960540004575297442776805670505162475240022853451033021696485940985548706615387552199133811428404185153788304918235462557628406153011285091885982090975760995038274446267508915397227749391339764166631175089212620633025686932309257017981155942466377177266636942217181083246587451230819890019704856632608607128241739505535955628917323694884061763534844533021651176017980556569402960578578120327210443248836281519179202879919017356841228565791236794182671317087613946847152622194148727858592032813642364720689943886780293814858251626887988700104548158036121290476678813228513917925237666865153799537814518419052892179490737821078532319609441490038115355159231137729934762122887995724140825546215832088001993431534618827277495452322078965343010902171518436384368066722151618031179217340388934266344616460967755013491894699271678218889297642887112769833855080428826585245542467434293692127485297046076272844896132439018753185601906408396992792624185213772388344284266326368457017334288198057650349780304422759839246790246528846845596665106427970428421806087353609572581631523024297229688274304179840759853922742000147528581064657676770082891814056089144971950028299896827902265672565731143080383553452165684376954887267727643121740837543896513375607112441053561761752134147346235749106651186522969309744856636101459202735895033406994416378411732420912180777534866117591098584399339454656659839903851067822264299469553770480751303304234635092398327457352285115643906034378252143194551533293651346302415320944167368943045995206173192147420659433093234025717879220599485197398140258697541981038035562956231354706941347653929211673273701073584327494571597444992004222248300687006460199255412592844774953034894677616431891293172623111966000581741617651172477322804826509602264972615618783244644758185711542723880218543921274707653619743783827744815929866144703873142553079219200580711549132660524941849804472866653230005069016171196042915794388735660842617386056757467777322298120748335695485185330921130099905317831420157096482882114004269616641404771312739127003307186197629866498331456667839872350293547073915235488796722478445867611195330389257912333486517389987618708788436345345591833850934042625208478258330191583274410193167942231073734246166316332063596864619952698767645170878159084675001883031771135393158191586953772750462939209769808106583009434404901356615363138386488996469763216491999679337594746186931250429369224648991594352398875640228101938665927511361443239391012669901803523657037290595170890503669474128684769868457794029481533857512407239363422423208340719212711942981720779362550982326092899200109188671564934691182310521738039012024759929437836293041386891393420219811874109434598350446380716947469346280603421749004870916245810491198558367560916956626477083364132002449786159063048312099222077718747013134364752314865096013795372967706917127508208624115128072349671845731885503543369414089637316580917851627981946640116275201751854867917670030685908510972173609398677955961407612629969038822092245825413964744241822451652882377360550435274252540448242618339872278402686437739424931256071728485245574416202785486006046976359811348846558186932066892862224870635409063111098581804667274543484583549386027431681974774029040873260520488539616953017976377572462049439899760480747289757244348073349137485480329840963532815852267986903314480624206664129789753957322288102790932926863919545858120642636252010706133052585083495317051100601983187939415765061017140875394958681103178621687742856303750074474262377398148403589277516960242067010069454326697294172650386708283608818410216982417275921746110248944865585565510947474017653786565077294797751871436171367526286195261145425696854593989092670522972700414250400863004891786878689557583604175672372832759699165257751012979857099037811664043209630336458434938025399899032474949842179401939104885207323218882086285924900755623021736952594948068308303121015684971228265309001765562068930735338006572812411100000552107268028723266505925087760217511150517572469204466989572153674382881584865494052224402846166021591349776351353675964031273443890798303591653793713328455864675196395468577075985457733302127571731268970446797657961319038815752483164342666837499342355834324317251237529534496097638607349303211016686584044442866850254005760061229272807966372254795260853944390319577658395628188630077204051186405842103846665230046334685206704082580757312638030401885143498921880501181966522419762112524518088794848093951108386519001958215227179133577333252490714411624501122095190485013561327292121099361913093207068098381846317506006048243640902050365341535344160770305051152694438664768878519497830282699285642794572922932414647575023336040221674577975085900383036249160792932740338337909774542014527032982691561485229138236544444002758843755244027816153303829102394466617381834881665784274249177122170275350822819111442512764638373777161937901981144621815953972884356319505294599668133647502010993615247004596757171372256037833464323048414529786638596354847850883088695169913907963742146674657520270830616488670109634400773361350903890212353160259782389868677787539320606899203410117792844268296890054988172167108629297472089697499816020555956303668252661405149018896605114791635358632792106142226897149279127787232621117670313704761558586432955711177216817801326695000317555034363829818504213055160547566912145398742378110337756629945393038473164695739194212390893187340593840024428286219901998408874676345110775515837850652714065518432387870735124308071929612758389560370239005456038838671893662124398246289703241687229758281039536745120854064380086498917219887369419537332824783557540272403126952972182919369257527984060338473119897177079811785025563879798642644762925942009844848930252300926838572618395115540545351484049430232513357028708229309855707343331782363942459052502017768244712723741410350694424937187316549414811161786304856035237427105591330227410542183580447117609654196214037219512029394193962607974032673021625437797799495410635948897177950148382023798077650832700981973431593414782445339432944147340774472412638079463158156673435231614714171588050114229671931636229902885828724136930763942709633732959119380472794037174469737119336887473700014378856546748164188674663690268360213009864796244710340457730733356970575436854112440226720503842766714503888613609936821552843669934158134597165173696209594770183570675950260992158615143059697887860755177417450793318500363573856480420101172474482508046660651163431237060716301775323209238636429601277258432625170402962522893386330579752996897792051858831513533825719722487684741974044027300877828211939545930156117807136426239309060289320201463371704041691985914828355516346085675317395879144500843683258083465928362127837417412076123397271985416126822094831042323937242227809681252824752248973728705528402327800882462859596984942826235548561778299580110377761966177601179433254381231691983075113209490282544844822810153577608263534635695052301255524304285763479928566960903123519085193580117458028344942798844209626836066330690192105404480254666551057706341611046780126818139082769229185814777953614633120624363175164699497685311064387348173130641397155286716880959195732132975083014835455787089706539061328741265875382361669386249441560987568007008346550992002960849264737262654383437928602203945780547883329555116248846606564322946576425953744130089938962810433362191853772059577830802473057306879644249222415655824669727628955799852955524989927205691087878564445437206919241082648957622504671740209617424394480244051396472297584651565482392149153902323044531566325792641986892927346594914713092677702429642202966975506916211915551789683716675577909349696293691084435502447285817061536960761282535053716178207261083304046930632124072434045144445853572275621711470986904112805258563265026632679246278960573195114864842231649073386925341267813057357046285218988865304154218177442061159248811672838828887063484770479962668208607615616157321028682593059980823380742874616677692527914840792329591784850319388095519557102493539008894577882719386781796592763758899246184825629872875973969107659659648358223615730000260865842981328903519239250836688706685410701456823378214268740999277736680969441464921143919368980267892279563687907080129738501387122218989413470192519838026091286840071424162772791741735527600164457865916670195460298402349161893662529155676337163364948918691215056131960435918530073237549937918718743206635826602394343581415218851358566712881271822553872121605267880497554592353727629469382323490077422986230045942224462530035646866422850854218969378240939798638692408380001760565187598302929422848183086127076501229763153340087781773810644916215736505873058331769347958776861551462844242287474252224710328229746810221566300040416741435636189998056105511931895566979418822822803143228343963044619628433716266713174012588857277978517831013303778164902455225836072509783464087853499486186888412325328361740363651591002535156065431253594416217890223258073132738894978412689365297870776681325904165732747937064702241802148754139483940134158464163143193587135817605337897097765179345963535142033098695490815845360351495682924627629777976904050471479831743671415763385986286568197839354110836936115110389163181536602451903785082892231971477801937200074526245761425763244144287511967086569059346365818818906336940987213950898699417377397938147844672489490861814178147585256176250041461375937757500834677238544238956624530957153047768580458846389852954816121982308418725780605631553375618736342108965857707204063877886966805120707323567404906796253946335527811108361477311159607905740344139548243970143649950984695409415519981129195109695053235170892599477825645107304616003198972936477702963035104411833249847602062818049468657963172087075680225080417335159293242857244919861384820228929161035921783104940089035579341810815361253657671673480918949896732341068476061537695607123602056575272334083323477992937905331839410149380301264161781213615107796802030998903160892211139066124554037739781387257303055230223395712789340912651461436177500482083964354333833714681995362225353222422338443884189922820268454263478388999795082145122435559257126828554643051677385994074896680086770488331362504359217045259871508439422833912231833168012697449558005678431137485259167437466808618797676936172153120078236418084274160232107149174042778872807281870457367004794320913051534593164125579876730419340151663905970879605500713012998369997588541311832047215896723136092349241609172395028777546118356544169271614539238900168753999591808442426866485693290881526507107522019800224894547455420131234774832446244315276448497239867278574409481054855041197494271242107751078055636799541332961398978226417253265242582015427316401913308598957084084464069877089836989211240476252906691523619765550814029901374894306373306164233223541469075729974885316848852411222851186787035638218198195669831951492188989363465690845244512271583938393783395610635510756977715152589655258726311077201687172258294952645100607859219532214026497681938973565195650478975666633424057100787124795160086314343991071402890434425453219493672876441921802823990167208522637637140031464436360393340681899587985650401125087200876833821889555011191710937768574989095276037361844696359814743680869107998378443166166442868320690527517399484483211143571556357873519878056372802658838345995188215738620053569709490227775651134643423011628952202061015385728919887049396381900445379450908241161749085907412811550213016102062159589058779388593554823821985756965709387791990181256213304352234400878846295828594186654455329056253463855919283424807804689473436461885173402570022881413590335844487853474575582040797520400879159845425973622035978245050270218617218862053440931720375424561444056676876469429415539551824136026806015797324451969409456385271617030532684441317868978996585288220470854501769687725575405235563720480026612764211658452471652365562540949162652944367278596862975231811217158805502109722807724647132386647333866312719664228359781019212924049555474689355123707582040262810950485912754369765129945532699343189349425184226159047458707426336453177999981828307370045342580294869845846086113249112883283483305936333413731364467962144736354769153849087482816523784906940380604815786530151895075492216867516655791963245629895512873684096916923648958358839503963371260182170697962271667690481923834833467361315620788121664785765800437714584333290120230847128787319284812835801427764619774907044944093477373542752384370582237755835866680233375459363976446228789494134372032357824462665443794686994661262816959002122041125504070793704427033338099610770066889343424350803306229367580309141176362083434263410756572589991379964856443524964309649784334771398949091135255133160987153338411530060595471070023427045184095952993175959265534206021267647233251768838697238174693031080736082524186054668615484479034194657022189146451137572133596223391682285996280738937863512106309107350934925362941412160487853346832721147540572627566619856348682404166984210522898429917072471734470867416590940208849967009359300317527278437248336606038897597170976747731724759662796894749014568556155846806482698734194376728178408314180030774611056081544780066734965803587116251857720468745477446624121375759003476292819575115599321414808614884045412447490130353532826514909448137635882501861807752296040388512459027864368302318416173897611695006167624456773392206963522080470152210012328378428094042067668163622023804429840581786830632151478705508027119626641985696508677052926727229824447157092154746004454874730665700117190683285198861813044943290548644445253644233136065775758239023045472656754426080668568306740123665121534111952016220538879766086829232258833236215155879937034006015399606176270345705352141565304471488804012884206365266755069420476073563207389716413471279260039911525004685656231477289840742794924458502475380887172069056330092643025063615953045979577086799003314829493983987957663844691166036860524236837630489105257323934587916304642348737833742139717075851672366344718952989122068876119072080785541100976641820781019057574241387777512462238045997410630872971489177427380009208551584290258280352901200873171937042863556895944704096824172691217076018199747111479500311874425786646937129586149345026120082740988443150747193927394538732619995496330590003871921830108101818628001862876537849201670214008093383355899819429296455732084733693269744313071162309310804822224527218585496256061552829423923534377895151850790848465574084375436056267398434799411182946987450943691631215888049030006503815313155225787241290167437062049472503368077698072700137025621543754490520146719983935903460380436246550170790537189422224202219672863041909537197118753224870282053121390732659753809634007161337121945355992285891005556393118172979860267973974367608261912064788197686670670516617500318436892061514643625387641450444959646448212891501271253045290995819803636315741006940640379486317495502198518052855742336928062615951365941630303311145471265139274009777006540139870381552511997284156404946244811271591808806037903759072039159223708052356783185508496544739262996790499011291243467574181903537329819294092356129690633047872281618275535515788361526926595315860650289271994112861911173770886868162845150699499195531564314789801182671290742036865021092399664227038177198856986232312229966491338166074286655869672106617302691176004777031609452620035428109430220766176808016366351724243293996089718038518319740557061114586132795677256059609687168167949422274971723753031466900649923824881819677369867959756864019645922412878983858491105044917897771162009178540811843233461726088696029664372137001218870282583139005937861272852375551551877389270763012170163728188911327982940765906334888591525325423560871895825575661983998041877688013070883053013811379305158558548907049533459195722093755367154540264801660333139014205619141173473808096173148442886214892051379605272546216130675501365773289690548271996825702998768184400687818405926062463729809237387120124450653793335127165294950286499900582525730671231696628818171218689754701982624711720680003936491798031730577420827222086305472614061006100812256152683334527897464157631031325401498834182700242803879826485404908900264449272054236821523855003751463288367502738202351485370962683807506646857735393591964640416522472198447120163124470464675455798605855963087043807471275284429320057715132701712530825483492115954547286208539566018096079296254451868027053297517269432804931867761640680440276227556764040828696731415668385942110053113233764270747537218353807332193059337544850547615334082661671146833805034763773583491133382014061498760488161775278394652435778961140875072576122040491379304429592002205500010624054424175480128271779957399008739206664996513655952319286621607532632846668784886255167414050138653721448576612636285198678723089518115773345152689302241999209602745089643241197468792784582131491863198281657519188607135464354179703387856865210657214667970291384516320385247519173544660697332436951047399275209254189046334247712170218265817307220276813017590026619525773979300355013345233551930341883841421376492811805885512687895695001785559373748481947183005714602213501566812381247001859587021096735097983733472975823868065101101548708817425244903840031299837346001541225478566436467980737508498733812187546563842327426281834658805004409603083329385207243719013248674298853017160747911809899425312143592211524572082826289859487021844306881696207523090466154180291383595618215347094672448095582737144418467827530801200116825887630666982942583864930649105262399125847924230390162983511574077576394223220697688051198070488655186215109029040125843124823285299115796775857207987372622765345188865085417355420406998061343003519994995067231830488122675420789236875625009831628365385930062190816114556081489004341682212094065598009638230065957377473143779448920902456224665610670721217357229731158123439819743962378233566744879793577891090523446844606415340551872336243921150798742503174581395851861456324838152735616743153195977123481458611615555154202625362871926658046541176460280506643515398969407115630669554452939952649869620550248445297483163353385504265736603873345131635034708410906408059685555458473443608758337246081284047072447110884868914264166161998962185605714754924603250330715498833029366828701519109461237932079656595275422025001660460773143832056281452277107359082074503069541384381819476372730629301270839385617922786856122400154339556043766585029165882514584111031020249391635960802736260376339727058818017066502322335067060898398060278614771194678155076115065301368495963001319306997698565994705232499095535653726407812747840869113982649759840922084255674964569426928345408461858192484692828400670231510314514064042260298146812539978899976283324847789216265277430598052752259645807977494491462035466809275028345517914420507585348885444668598013183474901445727185762697196995923255214893695928327248729486764192072668857548516457950547483292026370970316659442077187680561826756578642025997342882715066794761122657810856067120643189083971031820355458485916324833703747305265728472124260395230399893375538534681677407361945884479534298482321527156878052224020373880127234921722298319371138875806471858985014637629678897268224229563541436560146390029486290798766166119397867514848694268767420819065867966585822573109467378667059652016040350971295301134079267284160658191055189275740381184344013261923597247569930707359849310903368240207747677853056368651400585653328856771739496046059987560420375831879295503572688594878286857991500409028087143423143099820691343680612170579060987635044384030634516533472553948646640164984354787610292511174690309970557199166242389990149856008416324561182057014509373429535530348703216391425056298904058639663653242372650305128441427712254712673014556070907683085714087312454695597327155665852292725428230502541198268516492903604471958614573924594401539696762738952823796097983621177807152201611282335346510804221432284252061525113669418149739021720932428339635187888968639011074177894636518772054611031336149359151574016194178913071590143170188769242472129759832009618651173420335512886422844966485367759809679254173573143325527601753434051444006765271041040267386303598063668747884836183612313462774019288076272190924452271899312066306256415266628305088546163375967459743294111565604523756572946714185162590359960758923392717084564869333169470242424736018939957497708700800674299873129306308867916360175658889622066748708441854679504810797599570686954435023514518983633084940462614137990428452739666724816468415776157077566770780154528784303549605122884227923576428568492043180497939758047246567756164638192471519806904648455843778786929775209602924095683993975023734981367376040336793100201913033636612309469654020190215649654166619741507186382549214357045635878216887031368163309955153726838485695615489711601208697361484591676280192667401504943375990095381546072424924100879532987261968542068710567459992204602098877668940080473382052895007300853273764773374322630804484772068653151317003515748148445163276452893597658304370662345132177856529339802360090972080196322550428736937281626383044739421227532333483109668744532363879158587319121363676566694104491900521871222153053826227027422541277146895396261415090632770490315474840748767920993088382562324876007240033800275665169083950613331947054738999650871826549234954008792565581193982262001762988157760642926126880860855851671486933349827823987532353504199849782565638276254592322729067526884866801123633579314827979296649020308120058047964131913977191554027216418229700672403355265075589994829725274225719620302302761114048862940609334049124201738323688299678927873409430411141355934853776882983251173172554817598911839313502664807271914355329728694084362874386920985632615081195741861058177703655765687575794438080025307784247486528810200761161611951121706688951390720024705847540123350491548966418516281698863944061979391945625118289943760411404516297299449272545831537428917543692747202129700208026638431748140877803036241120747472386264457021798224971026229759334640081311953808006137405764721229921837107708192857334778722937954263435974279725432702372987169988492847979132580504473150489739198995736143880198872820297575710444417316834434647274303925000071091499960098771334613697126410196604185445994785245489563235549042110756930205121057610498263020855440278203801089282045734450735551262733393984241194346684395811129027048376857006585796687079938802124632246173067889549535789016716778533512754279632832103149092031829835165055154831243146179138432691603615904454303646173296865437061004155637928562610887989939950660503590691646609688871528281198870994797417864013295947661720679434340685760009404919129650986676921024727265989063283635376323257909725149321019558678248983926008460038130425664214515062698158690148727126145238173027402599696444756330572130689714311943823299633298800067708489906684436598220200593342973267616635423618418946474292594071698702514859124067745743867800121073803394557871736511958633094357693079370355662347626897579568879499588137504993326828115395444793230187920084595861875182250100833706756657202899125857144121264340192825568429280407100962523756160566851655269989666786994474578802154616510785735226119440492031415246352411968972324520602764576274268101961257858980003910003968403315014888274304709913187002884105527258884723256619483341323979016455091350342345556281958804027654523311512333088588340385937512172457496683176092831737783940796535569613069071234831090774194621937499859852171934936134940552125505199251107255525186787955047193783890199928415244836973469622141059389235095848735672811467669979201988733126892734685877772748036649732714078727938646058171820688562305406133040484327603310163153351296419550993469218396915071367307108859708731540828700706151389957149636156494467083616743495893147010043343115773715542781673769806350356916954374440608385215175389423955691169063798777108196339030548287022086841169077190952588803642098233998731603740216707704126148508656643666274711336285711307718471291575091205665479969222717513651273366638701201284170275782096596175901194197130704260591330819833200858020020088772358030136041003161104555034843522069184072412414881782725316964143124315881612962703192396950045409965274992152555905521496747082499050465762284465764278502200299050983979064784075829935842568756694328316121170293742232319998650017682460309235294751516451002327557501161726691395225235037635853617663104684294317342789452481208351923324079565772644776278628406293508924045645991982658758112286657275655521762499872803680406049161028359842474598128467106232530060529290404940429933025221141706428075540585422763163353950383406415619579437974397452287569743120925699800690922671677867399835765718821090323478938799514081851461311625923717114683490863181396109134152099190332402967571727628678804545498357644215718819070651333297403602827600780860760354056669736149150956342491699700740945570290142077255965300972809937583349142606134046226585628014119245853169882584973534373619179563617306469313724930504040873211641479663333937732116453118004342975018612903793109336820093257232360321650686132887664702389764871202363343122268786494464715055116142533324458954350625850312533122113704860349557455259436168940864356614527896529669630507695366251546415664191404145519113823839873491206117245567945795004425829895034679952799936524443903268903251873610736233935012402537500327231212457982846325860386478031421810873245666221596471000359061561956707992402933996235071197866532469076475198853678162607668486095743650313100991633606398431953976173386628091371585550884967675780737861496790969231188262317690676090768306151936073353020423123421904121076556515247540231513007572084255655944659174484212813054829725854219375296528973903374899819255225849524768139650061262723340245832907472426159753552748952507459387531830109038689428468499214799721862170682898195360181952433413194208321150602118206884743331422654175889663971448584149689156179580934027058284438924895460864357575233103092874809919636056587472411660059409233199419013816989416605048404794690588191517996860820342213161714882385509819440483709278466507649062684459526368299418324284229943382099048527385665131690974149988247505355509656733400013311252587140548790497006831867467129619733474002477248955846291302021214216843964470648367951976802453147769974844458766637301570843698446206201856897188497294058950475801298243054482975716906576965976444618611077405801379143424588280085636360031396763773191278016814140024540575945865116658483304202616695396279927667707160329077093111875185746334844871762611626198156662216962910235363764743673935658543631405359482809014203785353758027654802413327118223233512042658648627683657449181497143741854405956036346036980592221454026895333657381805428073460650140573007779440982206522828410449350428722425525625994419446923751914435981336669997860588859430587134467321262894222117941312222180539445566244808442577246940883142017891153902553374421711355825624476024539309228288194584272680570423920429869358224287061051489458982794819541866319198929548181464573025347533816610410223597324918786417240672481781701760513777585717595203941573171382064051885758583587931809122829849343244398868731757235164356529091378324234417538942504702155078495908107130820564724417109191218931599791868659870948947493316852455648099199628603323814311375006245635849239711252061092637027309360979476772054805078310103908888872394370063812227778498666671276689042987796181793535358789697269304678983706923559783912973231380992906517099035399573180960188057548772594728057458841810084089947455911450929796696178305625873183749436379252279472527567325063266910336697666812213046622777344497031321059495768258737236455672162636328742236738586321232837405277728711716411848345144640845037677380651510431668273358092272444344196196813317273716202770297769859380290505340455298267223153628085452370082370659075566897053562505400636906133869135030870585208791480735219056760182160321159257950266467010358590649352192987615628925544786325654767522304787885972406490463911898893268346441443971525617454261808443654416065751322182222022134583122500195397747390582936232117565593227853721589622751028532402266249281327100544579172884087425300214745063745302572513148471082164210900859586059404957513729226678594721891666093094206210879263543329945752733649559549337470374340753688567373790438774490697540439461041440452233337283827987373827103647479623772797222818208391872938070549828101851842533176824201749919341286263912142574594591518253554750187986929222434494866726097677047400221981692707460916002977482363388647331633081319270631540099454266071610343709834425707801710564859726642997903672587047887211116465719303058914554074301888972384210945674862302071502244000961895993264048241911103822184533024720153191330508668924583008922001959969703256486760859406237515205166863862809861017989606944764282001463154829865962474747523355455732194201580874349909927755198378962540552299436830438457561337935375586974899607616559203753077322941360038082885874216218597229800547033815446120013264196746243843954531207203855298348859638579813545349883503117722426957474362054297473797422862427521640484508800661920851940315920750084720206054045308209758691335335414701754794383595504835795367617505092805862562512380990792046443217005507155948149764793089986721228486737493651781200972569712323442565137684434200829876093856928983446765614524044554320592483233786839072522597683980004566399637918835572408301107785124849629592098154073463306761266221843800848715504703638852303666244376868536334159618081906922632478457411134447192453659499887178366087208109678003585804555239203767976164104693443420529602978403512404487790491894915435947506941974597809797687437118573797199408795461137289281747854591902809210760347418721637327037154593467507863939326504435956932901201130558481196138261791102803748932176783054902425001304421237544173408982555906786475601104781388082480130186943623111070872707117055188335615634122824777571768279664397254845408245509681037859876956796947922926073806920460406266544123616446605509055124640742200797474033448809065733652803842315788497322683797761760944226510545775348050818800840502970376587016841611511531610402171936261527819914988003294970235974763985295334024730887528884949676210252329795320438713619413459798561405913043725434644566865084633603897667062708688192102530270286401289538165780226274584398273384130481744407803092964087225826123594225872596728184090364506696916905858162408880102600457598137827344725911463404746167433561292725639439438591718882683300133824877554771137524201286548233342074593118535439757044537398714730408819889043775716217618350403250385500239255083154521770870259819453907555040552306481081687861489882628995718388251859053015064029191291534473811220494921864580158284866597954483185327746768650455113889540624336815798121373627387687975446097591392034247795203224627885787002866454343576951458432880368053991557244927514203249597284363542622061996332026541060781200896997579544026254920196799223265827943325164618356237192721314180406819749351992449310115139152686448063279193123505761844373882950697840037009783441483939275355863779985137816325301110444926152961197457059015097650186803179770050266464496800956726506817754142197402787363342309886245397304115256636921371618022507558004063847973198090787027673121399379602026447954971860920696719583700302067196787177195003268223920268004575756767607391094776213352384707814443999831928152009652856108556012811599027875929866537717898425745942627741202607938165559324440891723516944749120501412347352301213697415330389807804845140184171309623445930182223485690141411737220261529578348522543482804679176865811967341476557000451673979604413579356652444586432725588238800100284747353905342730520317778627969163496236577073503574436158256123127765631008885537458673886737399783592921033542555805133672067354256220571023341654173546076164060695123294748689116160238448854522846351313955461320922459646379589622682554353356992351623115184491874470307383719236235958358904170274252546065698650113351838256173773216954121722820928623913804999300701391311217530977634832751229761825196736602385205538556010686819692007445113165902318050077316777482061963093946254524162031990984482043778829586716314395057278485113547472413438796587513018811556638928581480165061051312764953224254104261509468608928444369209548551441300372117941556865401238890575022080668324130723651830012164019738964011658648243609876297884919019881892666167782983879729698701520001954689973275426102756424871209840386617434288801060120516371892220206302859202140175958403692144341313942384874341704656527538267902516837548199657628325296042697658157585022811799380029206945085488182459514443766544774417185403686043697128715415563599069896943534750158311896925869318441482633833383282141813272243290860489311469234770167735740404125331352236382088863102548721253474510065799153445507219233531658864700019990023656802561312032914285008218196860860174247161911700725093391419002994708702618582761456808347663324934223659476779059959084774627230235258978408005796490129649305711862898934600266792413284027763144117822340180469479131321663525535699352438523093504407702932426135775144829502674337481207578734589793740173654555767796987841417050282997707704943631886615015086330902617476990518579307969191892887589297374032094726935861496396036066684139927169654703352674110524592399825252189671557919313491874184087799631802260290383258062741551861669723702349477599063619763147730451655598040269905846630181295335753689029265327627686950777828162312725162061948095294755375139231973530224476425130746169354287205107448071397929653536995344462676827511254942280203122929694352424157007084161552004582592713364981425965693242686749916815339507095226932769464568042256069297650246454432506714883428718549496182250272078180246635853509922284525398591520125139159565023750532584969243529579000591575446319577872106302033371941035216013844944004537932043841270765963894463429222901980646485688163702793067565520549899288738229725552040535694604063952624671383634654748503993289646399635411104926624275804997548380117843621267420258931634556798189598316741279005572661390316927097603655729690706010324810452519536708620927165443391381502684855454754078369006375709529865938295115594724697068778615598663531598457861142312167874986157022559291805065086087024006363312265911617391742689266319659546335150613916091532853694899388638416492194979348029585722984074147495027213374368526781760979459842053025515518583632595913707472189858205238640248636490976906583923395359435279025430160696485633264917303353417852064641633195779513315901862253905435044399029593013828762384767204321735694468986677262762199786891493114906792378809198017160629162998273549963188015416472144303029773438590713644118805974478522513894655770186596181782333639974490780947472170269461034224229812240391137620075334390231420512046524694769268780021543736069290500429998276060586730560846530333278968491357058937535352634485347611356481880825518781765291049384507770020744241197270022837244515681895666791407437885673781626733720993992885497800189916614737462810612363594823799135120307953138473279383672314706221475184512095978134885634481749378570454005235717207111481653752572351801589234668601872022245432601382686247928851949218688674094861042520178793179070467937723386705733084793078004749358272275546804100075648539926084230304932257750634023172134191244319639335788741548489946842100483827985746270127161567318514955117657931390780151264117806880712138385580644117177178739668933656322587047693221959587687337841107455109313041231827495873950359167437843439535337882416772256040922067197492219224197771884154685668249565575978381965166598775825143013998812437319484531482278694303727100851581141309527946698355216007970208666540691504497260947350033565375075945475957697667551717357747952646522098634652756584088251141542103751243470315462823073810500040310116086179348033338920449399996187651276722948475545747301983797766933193985909551918447564598389926557527674957570567609858657081120778462960564805364412046199741742482897941059769524050470101524804506989917348200928450484867845789812237950770046387474316245008893233575529766194784631322433106981515808831978644326687113825746627784949293164628698374228819018330663916133616641008537905858012962829207472318258215015094823239199556740013624905881109540975223363960141169186102226908735365545807018802513402328944746740101550766304586526223929933697771234235594034364072225983900448582029027940657759530721715375773742940266627781829763456277506926082143378401671688179275287941093073553102023803065717834469016484490259492291872893107556060029492681980627015535395120465871755766802918270319806338949411959467924509015356285695811604068392624044117617039634051545476988524372809283503405006283176901282851614036911382836362501946493204471341401575598031117112366619170789669695094288266177529570181733481671314428644690470792735867890053917176052589188291266971980366758790299361324932175158046173383779490636363810791259599339062291290723463482132646660709670995613355936245986601361534732027024746664745230973605055250004533359798452628082961855841504553015630228842841988472559205555880298881597188960970544393010626422193197425988620496102024888868690789153986074026212117178094725442552698768073908057564149633691129208840483244660175181397363749326494647392283151971009666425173809159792229659672236481402983333472940807385211411139909271160124147531795499565704031161126861123649709596631166839343688467907342857519889951178700145879231306391460922554446537305918401953534246263891240027816579168976538917134843646207183088416999523420770714604065278007772488832776450924437012486282352446001791780107802684820846371574598951322135755399842471505578568747068116326247127334607503971788808186460656513847880299508790036868158152686743754151372315874839300615877009412675716320492688285959084051122514258707909486451654343998190816045417522676584903641032601193681699223005128216395820219811844810023109740826908331551746016980003903443487919611149563326737688970357491963751270968310881607476794686627848260247332778054463575574393969322754325467988329889657913065645608135155462427541372300918732048952548136562244755695888172833775418939970861102723002124896011663249813053342029090611515975671163970547866848886129358856500173302351136155776463615888813291146578039233572781755860448878984072866355322151324760690716548620267065121847763777092378983062443402232654570682331812778139790871261920938672525745773411135052453251514843957427515022623032876258509921794670520417483613315537121142609629994789046465956215719769724911725488900321073222378604099109131709761904424040075236013330476003137955303905391461424449246756869925466430959399814424320268655245062263717754801259380743551045710697068810266935820052199910507359936873889167818133974957934346327029565873524254021775694596543102047028738312346798802943522547490723648416256740869571316448893536839840040433446393211381953119355521771554571198524815039805844509136252813721258550132901327824331676296534629005491012190353206257294711788237698835792789603469655805972709333732523966361316902144538999310034579546595282937213802764698751824245154568159205745750889891894381689908107618358481568119756035244485709627982580801412227506143575608827558388728974788494335447581242336836151188102917164598049834755702291715816928096134548445191925793512697713302689415838777446140067019707239941889884369240113083448414249130225118019892758234823933858192055703980527402154965938672196933373607211725929016830461972728353667586217214029812540036887749876472927771432364068717935029067811194079277881058379239457465574176627241925532246979256969539905079296912518473839280319466740377002660784324010199791439411024216282123480045029777556188492128185834914712394474913400955632709429935091158046265525728686227949366811260447564900306786072925700950002765740289553313866715999124431218085460871051445423466180367747813487320559285737774208767276028264651061499014947582534782917987157660795578076124973857858847956899506156472334097501446678787237042398173835897755764430246605862715262217428535916014861832345512097344935953068295078505153622036240652295723743607564328407469561221125164625519635114326538720633255301948394352461282280931992887465300396126434472082651744202331622965282936751410025095394238230972131090417554856812327999788434795170459346112442733853010531985481579660272056870000872920767171693819146445080038334502799564278561406251133657216109314238079104821469304909145474384055790113999662187880175878143662606185137251776443341388019577014966926840689846200983049142110482799008509755687321988152492317807790599717627549680111112162508296780553072620050157440279322165446113356961993493384690296081552000363201440975965578508302045076546374344429281994908594549449883091426915553997602417593054450660874743438471373500422142181923721185438787570341643872188917980532293797043287295659653828136462154837132801149581248507297221977018672615669288737598755999207933292869814504990006279806788851107162438178434306942375650605202660026111784250264577909295713804852685062456435702215549771173314554381067190300515668820571435077983482416149627556171659478056414966457894424413895523471218751703079818847163044830795523558302680378779301549524633293076989105817280359495700394851637051522509807883204325578442179448835683945207376136431424321528194262575018852623434645729509769359346035424395078630595925320712343470404358171925189477579472133229932453365705921799572331027491449454003941611226144467505074287871022274650132620645784564285892118854007986019929760747603377699013283854785585275566840134503084922819316656835351741233900033088472901200660875978631951571315956758659013258445739724701364805845377076923284621609712505935213692190136125430940650277384982856597812628055751120179646826242563388304324630090650838015403901676464426329028527577491823992238806906903776588615963473615070700106733186491611361469995024355452257474241542118674495688762735939078447456637092526734358694443605033150529422863883801931338703523365587880298787871431060944879853916433437376219648378066019506094604019176261096271790663087453829766219708114620113177790155171799141759672177314220098244334025209713871711836923316249453083859925772303833855077263102593515276883659280476448666423254861743344025178424688729275499776490278417944008297506716661462440035045467013742166067887099927358199065154814940686905305979191311946966006176251493993322863131523901351305792011822023886427903719094698249436595801565950909166885573674446836221482120686873496638901574336854164844727819106564036730724627322359307283790770790940612762256861056576220085793639626240343047402016992949867513296645500269234837801284108078006374836052681061215220985493898581538571733924639496170374760689049654087372263134302310191381171719744323841610068606013578817340859486219597053853458543305779251803146098392702431773067418646588268675579968156194142098917520053693441720846704208934096419351896168908932928593515259812857511269442730327587128725989556668411366611917176810977923679246508070307552218631013531870946782153012424544407482793833107427064685754118513475868395747704523178292128731105089833971829588727010299659116189313513714011060588432192998533939334259029624784075924441699650420494571520284951074311614965378462642114180401337932044894983562061925150237099884356724403110666185876333190592954434876287164576336024020304801719698072223751300667528178932675406505975905227622111444667733430649718543999715991068632373147611858188041106335556745188505888745009422871422024552330687295255248503055309272651413053352613711802059259709079529632291383714509074898649181172844684979845051202209789986242558257836512656377719838503012082607125776857058388838400287952995194471628549050571717851112092918943457423906715684067772017974220296533629784101948726871076682337498316406698306926940798007154541466021048679881130540652971374735185999611177549145581149614352273647409980244827061466245832407181650983686336709187546760457360202896012996110011752818093183549254389500688223359446254302756194127300327130097973373674296925971348286379846261928660666877686835391350060374633100594878995456308825548845426729368091972694192251727658748838795807153522952921555873231641990714132655489318165510213015251745467833802440163198777817201675687628693483221268127436870426064788429415446707972774886963624657313285563561685106370828867666350642975872405605685085904351137150502761426917830578083299437854020823002380074320212822819062364086447031549755826087134461403743974306215730613109853206234426410314243227974807091791607321523751118886434487265636393368579223289211136902763104502224045596605762158878844698068255007427945799590264422374178101110836377311494472143280072329301059855173690723726438591386633483687229349345545867740707555831358923897878725324036902478442733152982236613678800714069995934393330209911935076468164658458596895109043110460879926081393767145137949537295217211051453034519675248307261603170193953658549974556318285173958930631684090368892119152151130594502812681313483000820187133825063029209373203964415607573296490146476351113028282251079840451341230520746033000686415170049581606742272027737213344857344505608146639196095904108618583503670563064407694085078292647344810922750774024650186889754484164085293734192167533536049132997544466104366822327826096119652921825528573354256534135800969363634380004261881561654129858665902251942938169234350650111366620253524339010854901032711780738172321104847703528781214995699578739217156448064850486077125876848994294941012005654671860345824584559193009278992266401857192922781356812980496959609168272969821168166250319730225650916380978049329990685803686593360525615100906768905067245770956396894345867848063395998017979045216833866402826582756291480244897970277194527966691703935361665107917454884799466482654399361976789616060686881325619690104934092918926637778901056396374816050383090827139958080505145692174617527819896228539555528953714304525682867862897686213255830281458021023712207531517402482258959487285864848312797837282797069033634926938362627828297700535428946712942268776146384934019775031896353038048665669049111999256093259318631389712524549487046203130836619113098618742255676754521731603529276720114731050355828154872775947514191587596947707459532160007633538637898568564736677644848079658907336751542705832448948267226204974948065776793868221499973091468438327789068034071096773111187006972235890202429693696780961188917924201425176739725104302031310815961133125234281950515269745329107975124467563892759556174774613271600317853838972413062451581602321770809480155101593427593685118770243827869707500539020683044141597878558314256212766922907442124848546730445157840988559066653508847671501044816494281750693269340675723022787153190263744946117869153544526340476610910057204685273811906015306854891324899633274438881025821807580180119528468960024872258869728614966962609443210086087307103129863628979782481351596668546625521515107941694029217347451872197574964519872746158870042823867019733707561720283771104182505268131958523855742229240166295289481002593829464396698881682784356820693024099629000561725766170384164249464953366374755687560523957211964150508974577549236121368376198223081092207481442612459830452221204876384789804712364151549020677575154686979018807770568584287130723845225983000989434874429132487085716321719263859946705176834416752272425678282922717051094539243583272156923654762980034650165646313109655972702095431987535906455023428124176161929123463747831797239208894411117626585940002317641996973066664168942717514004239119044466427905919859716809918709127409125776322449993633406595231611420638455776448058916695884873196993435842714530128884288269009036454440563868742419618362495844879496209322507975100031413973096418651527298666658428767619219307878175239849129118329292546355450444372161202507025482100836373248590969100242628531083890413913333871158920007818725787738260936926262049182879606814392375376174160744784762046305540406765834174758244635404665669255732737079407667743719944053763083841495071295362544516548542398861708630199851719123584676674238335411620663339047871420829979147747788541314423524714401753519539031722907120948315643305012279819565288861414295655348547119991095901250514774855185203351394659225137508215851495709756808303975427527656120521394313109730937728274516709529011994172194483100187827501288811262782161424027420918497894065537503251977779526898927034213449609113739320081697009819049581321041707228705129480937421829390189207711995661577692850804565378060166143905595976197512001039048104142430788517144706274278363369845241724855406998866154205610045213087137380821766030826139704033255771603901718227626004957023529580341284437140300805005265412052141101573287885221075744260579769311442294589922412437101264631349577793112911573314009328176324809061399605876272138744153081822787700001595644383905892520223801622169057902084720179240368163782064002961724912900343086920201692988855160372251518908485686220324539305871071437067146206762294112863392043371379711890618143665984426162439986004764690147350279320524309843864918981959741646861880644965421095197271535918942891315828571963103645506852303063207004873705782942195983225245476934095065788993406334615479570250905034278425959496455415065388224443094768360841103031603744713236140867195996713035299659724832195201759827647120506112510128862842896081612211206677912389729304806652493503028241010940415606681431711464028118855531134430418986014033098171175881353989220296814908914303734879985283605027528643843026823504631970551120715337673170070965067138129650045617650003097706757801071018514960969525619237334675044552421647946947224610085216023645842251752116792915064027279458591547590795518852426505995296217205038458855724453724800805560964975923845191601490696059936720796019129906537284476351467092836655432893014273967594544164185669356887077293265014474463905857010435314233230855874229518903825717451450266950849852379884734662707890865527565366044502041934213232030491072335821360866432124543714816281206422491748110833601173396692132793522645106328039796287441127338367835860572538920738632829210529587851272184161110221620803767231369621772931143405233953508180114683063733502364865258941343190838558039755264658904352996346497631020449306447641488967533865197212096996124955269964621262497207487971129939381056582420744324128664375599250451631568174173336129637505051806484005575954167640179146404284166424673285455211150388829606738206990406650634538679926572093393895359173195066954620625836034111285834045758788789583277109446893586385665100852364570998442907729453348893392667326461243329991398046363231917141504702002974049860395459864749365810684364734099324634838699366148680498073000183414039530936926426849631415878698050238527010683290630641396168656075869819902710068219677952524858671148586584698918584843963792172408500531286176349923379184182907871598444621710416690124104024867416802007185808600358863109947976881997709931626435421100779752494284264711180180266117428238126167895156294055003936218043177347098289666595829580340853165759122504195414608747373048819110607661767452535678376020023669045025825138988574620870469847547630966178013605583215701190917064662578577416200929277789717544236460403731923588510620544087305577178894083136395094252353388028875048416485188196563538327188625470297278988085239008270164904240257462903567334545035397572630879696128783616463141221734697429884575674642297595347316685048155877989547166523756870785870398281489869907271362553330880512776130127294131895099690044647346638978795239347753919582883100648007481213178441339407383381030138497704898252901635955468468043210092123477525960775682555000249666243360099782802926257951313263767542178947849716494907579184702820912464231440970638105591252089192946624455850763854697099877065723481178312418109973612675284133321923511247638398593264543437091158483221909568973558338285546377611488682508783764056898236907289541046372974598932313257231989823323146444413874430478057318785253528055497225245231472445419149679356073486082892890869575230545453229139400313920090247673850254432469945472775489051880931064194568967663511118017608541010942940654813645242247488030259085712181790664846058753948702514660744298935054491293717625386054867928585495532431509161710857241157302608423851622353232539656337460014723950597347038762368288919156289024340618616911485781928820981685304518357249587474797571563790060608347217224174748155138656340289248483997624496072758395009309535203913626813419794965741167998241845358713200640595993785843601688212830897566451758452232528074738328443275901346376414307524147720773012507838760254038099342544128543545924554808011781961205300554986622286725303455609119790404830267819692431467399725958495225515692228980215441277436737416432391705251182027201363214991216803661858198926519671988232808557332240945588236074786275475147690041658557134261124560686830481367118940405125868607232256450419475952552316585661449442773880480908810846348978897096494450745857403848690640471457958747281468841645978766355185310057161917622272895153101115270159457642648201365768129833993957121903295072846593568218956944996469510605748286289382267543897056609766680828984038670340632082560713649921315927061586443322294082479088257175550953472656823219706248042883746572272924399754329951381925908042829307614735705103438188937437131661586562663980459386582922765857452288846028563560350204846663242385507762339655843757670739935376893628467543781987654530228840486824777833128498190569423600124982054827480863480126105908607567218467147006331816857243675162321513005303473956023900052793874202695501040979623007603443783165462544666327280895599651592242388542909653350508438143404659339721174277709167361018763324440063187296776921845875691529011274823903528479642311239016766826506158000626758268326486535417100772252855208291421029595061124964505027380528436279105766881355184570842306262837185059670414214129824832030821745385473795512694285094944794173649386374853447946420175440670592774834864971179176127818135619412140437543705719229270985341653354111271992443778722692324676532163745588505640958256487286650711480447200186117497271223981846161171376205750502678496336825847746219841296562968781196903981907896726699618352578985169626482869863643446048444244769975348531604643135651458005465532154394382738290109108649872013274888071347743318020906616055330693762956665508661538251901916583994675118607778736862919259739511408569191901808707156413098327617343049976323030351140315544013216346111773646587497409540992288743875164494965483162997175595981907541129438744810969580147565436061212040595180169922758160148276261692814670245084907538127554442101858654878657817080423608653565805904291092999715965776082457082437326358250831095728127661896377253396032197238936156933964316220255424345599533388737587134170380630367747315658304527066977577469578772181261276061130693292633042254145312021952977156261993006858992161525349880145977023157702880687173253323400209307564306637011429860608774218244531746358426038962878236847636659323997356695220276465446371128651276260912489387692444272725667106052104229985360564178596688684504678551969934372506461755358813021693182022501118528699164109695002434222224278158013465668084145527568330956649157736108946029598831916854015660549501063911347476924254446972894098897162929616582260667964154235122193087403337022810606468104181334663132188980679382074467020877918105361958161384092553043183314380791132053159972753673508214783152975138761442256380408907114192084888970420274153438764785884617763395315126369510845610207686071699458520548952187427476473894770700400995370893143326344521017086755360610092172455305258577584693651427079716696594553261136955596374095004021047380394578091969616100055589306564227301107671732599960736223417524809821954733891528287469092817755445033216650938126352087275163678755337038728036434448807696617229085469614851140178399107115386548718399383230121302301722784315783415560395872801767268540296098058019793326158361483186402210104336305519368024784695780051664575084135159361470651632768458497889349645830276826162274639090457056892832517740551214913971789267235958463126681453742936681157908289600801978683167471865467776069786738967650293446271409030672231604606081045379807487473007610891270842077944936790521182999289953305603628125603076744526789832436063362217478677719812088708455634129532617974791824965725678303246932881008657551573025520601984314514038370792597838370967228824700968400947802915291036109560926619035064038537591425400454873043403966123712733405161805034474107509475354828447788392484145113317676527222668009816792414397381619452708581602444530116135565618466458864562710123229885490116646977017156654070805457573283598248479038662737260865876221892265755500751253939302050982715309302518879617894644772583214504549378890778058516343600335834657277634316984306048806339009262260670547776725579769820791894655720409478340402204591853111235130632740215478395075338747800039236563841777075463793139478394130060054547547785119535552965570468644645676446082764553252185090433779036459836870562058192076748542374673614517531179649998183805307081821352377961942128259305119592880222189886167381315606289939667154258028625348051450386702276258485798595073967774906615240505515650748401009750140328870863565423490722219017342842307458559543787123909384392483825055454931584690838983221285484026694549028597535193896352887766785775069545270155763108318965041456744601392256609078476880397634518314734534503581238805417520260838383509606467808915858565767705177421682793648609599757157979510058660178627179365698587394228796940154027749142186486744863313687879324547054460025686339133338402263220745823393207581820218738930620247259026916314198530549859959566044273972577630293006694582232342724735680519910060488019446457644541024908310318437040250266866725013818597366533417226050466264898536690148452778675008636356754316622646121491487990229478406308349375820510545769810202278143748593730251412334830605300023007231599559122309806331189559585455563477440403118746004116673105208810958340602954998433781157833333447870379246767414183019360578140631082525845145336306519626922393729515421167493208991270181128469758856449697630569160617668098150735057922928936545553475417048953588263520761302612110946800177906282828707794395281484923290958766152811403342477716819426612439144020922105407535879844798163994034399156930648099752519799912422194109432368188113351210657146835670290908219732979360435308087306292734879816472530043522929138895555628212302432172859661810799463163391798011529327304187856466194475316487349609727987332063292844276151321851321677716078290436649927807073776192981460834299864276390847561273286225667555232901341693185603106890260573989807317430471393019522264123264604679141938802624469710669663276384954480448273826662699483433648372105937324832260286548051242370233461346855685544436134074058730716753411474908406115357343172351071736663856758030485837545379994947851396127908058817546306847807683221144384011177234671578797337750977590470976483010844135235741914242045132908662445562008115338281392661605701690176618469267228933489702683399414350872424463544106812300862898216932789375146781628382365456420365598314507085649295800930829306768097424989171264605065936185926834294181629378266773608606283742465934166127453137307458959480931291213355947241630420326584936682571679823199060309971951568556336151444310618091500586248431653082568048482786538552915671303622419336530914870634665782810474237068748099165421912516564585536910222766789597259060865340566364044872867933745563273584185443773144504505219982460328523598177481850299027782140998863491387895460711397351699171343913020228735691297083771562207202239846143801275858724049799464603693436750162281324868376790242936658624859290409820266151003196595740720565357163764514864295919109228256010316627480151003536893880201650363792067966965696994845213288888994955131681771841350522533251437066973377655978801432612810251793594484875180033114088578392026454983005294334794363528719385715560227872844062804380313732638881130048017793038401639653093062753447485376579257129476137413415280434228026804365517704293529328104382285135769644065587673679030248471643138511613371587678029502548483644501075594682557950409851920167801845817377191291542809170565799744022104908180126638050479651264207298779621826683833744782311796232248081924142690242312411186750505327290149706099393460009028762910712807995377146398105591194159152252463623535084761905393725587963826146251225514436585353611286381373081992154025176021664887265219439879805260326359258878669884539228250130697043158588609165894703179245472357851773126473540214418799724425642367656823444462935914583440072418524791376584809102171299596977977212466433923993072503045140779170142603917025051757741902361215452231227523741681998773541439451178062285864625754201504458158771650426288040733740065890008811376359538113698319516850956615198497312756491416305884054553961471491637383715021483320495430549283884416390855482093375745426054816132589944830871339847358295893205133713837245875812800456133824370642884619564290773539966863947981873501186039053014638982316671545042420581977854784943125093833082630990245813390594522124805840409706675172272522855322214800719001709812435396086307011078817916270326695332061438264363472114793153350737624604370372724364018117989027330796536789868008407113046701916516948169607383670845707095170922525405566533938213670557776959760534279372052705370883369944880742656185561825433745589888241947440592294299083924948891322680406759882225627795823613951874553409599597991626566996944526221763835235036823898168487206016169673466558834212089067693884072903672897369754469567643770469920066763259143604406860055861081477385314345240291504359293365290574164283864309049065651391385445243643679375224216470571578658081566661636129735265348256802190708793535296641968119592158073390970236796198797076130207355029037741018990668203470722300427767692811621774107230572894289631970270346107175286045616694080636077192472759803599861343450360443328622264029752862112255072208696200777837801422407002446936814199208747274719581685179292310557820755702973539165217831259891381085981018691225037694990224736959653241060042433852513826923986604728979202060555548391325826261952564645416203474775247380134111406637165489778129237005077046754926835036235460704619413556888544120149947320646561489688463028357283869372389717072279528861808774023789220496690145242978893901657675984443981219944782133326879535714291997686308504513158980644964411895889890696137388806323767175145889370838544864804362473036651782434094257473427772972693553901794528067734158735801265294251830981451763216294789063025164821567183554842183094811959394313144868452812227677983864303471712589699573504703848098383285853828235813874951691733974270650344991697543308261259116957080032454139540297263293907011901597773597267482166766354804193640002580439628908104464807454123656954273723940902604914992198516375070656855029639460482362119079121069791685275141752114562721506656271233116135703662926777718242416697923549105818713512710572785566235474764441936671502300545061474185457328033018932610710639367080316644550440651573398472953411622736316945871785467604392589968022958901206403759450095373845017974857286822181786524156901281223508945536015298440275369217829392354977984614197197415300877574066312826384912788662304282756690046174910806713954565560637597572123502179747974999069517653045207980024252433375935427441465824652830835254854726208505954572176365532464611069683954453028509782280517440280302735418247530170870619073827465053953796424344974202081673958381238906258996591487720627034307238532736553067712033942309609258924633634314567527909406439488283265823160441224058588088513156270716957720234058407580808707888828489636828692779567847567970865588321197861936181567383918655259820359261864766941955117821721007733673588409588096473424913785723378317264703081142519110531185142187898385578232123643000042102249589179688289748154915361792033060478696558030221345507625744145496229014915843910855813830163445696389627112285354786403924097631714389104291608067231207389795838699861584527143603842921256147300135559197123140586762552465549096172326515809329465831176201141780534443873090551775523896199943378748657654821284297578496936186770644669905895825796332692908273931884014015975189817555803437117625654233869951167822834155506773352982441725049826968124647894520860050784220000940923620311727864409664333329618325627265227059830930826365251419623599930806737439667650575701348571789629320885397019753624666660069449296807887073927756287540505215353689051599908519162572808993847074219061417723673401397022926076530475291349015177004559395387532081423815853074082379120869412663793811557834360621604346483675618833139489356341371222106150602596556775728719028808106157412769464238282467274701412786694466615805437452014753204016087584145262787029122417821142565725103638744296153503057181320568103348258200481043425656063342122194119022535800673239101714480703016195785993003951970534323139782484350100348729223066206478399561969850143291587737022879817973756236497864753899146922460028608956124153547137833723734859190377197073981339472246742515750821465587691663956664502414373175713821501312919148032729104979567092202276264399681246014248601419857537054961023942732394121875600029242117288105751368795108856345175906633713071599919410825034124091057062639996565099265304103499058227207897759457170955018075716122523996148269046737876332831371270016866755048118658901398820959888962191238412598054249152781791025113683434005415800678531036805705812395101180919484481528214863107619146142115230725710050697100929491144809482785084541334516597486547635978075065877718818347948175955683475077033845530119729225503943886107440013154692549723262525203481245515506569406504326058895947361320709010734712238399804271120336205830454585258896455530751595961914591521705449454420093615378376633491617735423987128237218983284814359162357937322695309314574811346959609252832462331346665217223937715395830885259140629256666523628957004594560208333543424971362202598804718934739666661818775203726036467368281185819200010302789202441076997575723635472109068660937130321985688007607283573802308650879103623598531338254201851513242693223290012406557050234229718340750950620779770892601742039618276536752493765944166430234246440474250103189546644843546054522996714082517374031501836637573139039114050141642735013629235070330170675371208674698477460320134993507856208270179776789007524575058956683885498933765002511926446379694050765186524675991462158171771474059134894586705631302657522311954363107987350090702274298000464663268880675001332877653855050748992921473399519120789777005487054518163749718374708243598669501480355426404395634601815096642608120748390026371129041511618897125482172712724938460858734434567617383955851624301453255095288502147169652066766293110764046497056348420951769203731536397620672518079113121594981080524201225524831497442531822166256769916002568197146281506466211885981139510537565941771780783808928408451146430456648894923808430261238419756983776793681561656485819642561603081413157784459474062550603162096138772861099829553506873295367073258934958328628666374459002584504034455058391792474075393078101498888193750149522829377291297706680097145613745878826740332196047711231948160022466442445741984719843965547705216239979572355278314819124608962889572271014672802176379225207214791891010189274330179444535615963615132556767809633987241466666492508796870605637047478151788371287981134679010334252521698145771937382252994016441474288288046299612003417972687078998084218079127417429811600284711075222721640315347863303502245914323699472710190481708499057762212670920532615529234904392471757908225625677014421621096422663561881652583168236417031722776608862447521743146173149789557037727717336267113746118752728795794463353990749495956629696448099730566025800384833156309464610819276773605642362543186583815079248597471840694418065265853223666692843901367206173085121625648843507311639214732311301471470219030330288834484632676996761778046990536851857724870561969166971220084505115781480488400781891641575727341963922765695805407304811929332602952667741421096435394632769330431277582557616858235472452553526635721292218728124309268456022724014973749953234121961414541697846974884546676101332347082338065316314112623728916694527210700959009194183262037578050685446684373758467718305303528143272377240192975556957063338789609187881565101321441863799615048174139993395891647818084739231168305876033450827590779672602464604583814636731246866528564532031843494720838048607393748340908837423502341263967913610139661763404881904790037208346715640294745451824323210284112401474964584089036996543990412437767306187342697683479144539880693957721397938956543521875230486231437667884139632742343940629870409471558895568760202838685011505415725946802201297678563151619117191519833494315616260824176315154394396864180388788515610251601946676612924688369466239290654168882685822469907871348295565331742712165940248337474930308048072378288606448763131911265634407177661501859566542924816211515200759863416557128105996875352224872706341289646459843789419977960598550552570174665208302547694913723046686836645081756527167977435464899851588227339706742830580834463999951501102721203225650558771649030184788049796750404881699486237319776324705174708094440575675874951699956686695636828541322759170549761567636673830438604869192110127542992072588919054525544284213487483271662966869633053326833668818255676006756744840268392665930311874899699655895957107330401505312371500934788463218714504754239269714695928041651232271538060555006428377365548846433952352541957897595644543993395374036641726350858081425265252404414073261553336404498979727596796501675067756505457599380763368183215793520578307696572622923719945929207637418553058301012408266237984853599182369876458802060847099135387597653366280090178446858901571958811747074997766172595380684339464055370809239064590606849379476131020096893896813940610124253637971378686935098171030536526147773043940533248079249415069657006948425257536057328968125309519781373034600074111198635607102322746691943009477967412635851992779735477036919007010123567473303478050511003414799267380981544181282356217186018375324431810915382356577985463680692767332609325842175625393190187780200539853223912272161908401390379047737982560040498005790815512558357147847088425907967765675203082099562561338351449533049341962121138980998868781391108725611906876104720655652516248170418612002515941110923498514109489051768227549216875794689505807322253280803785030524165364292419692150394862998119224516788738747984779762978040191744245600966475735562626881976233083524956696262119355266797389361136772941756242359382215768770028087964671086670051914546269457402372734298212271683248684361766298474364181852585632087049208930900907551712994874219586658421227640944317083553281707196057779892714792638290685265357096929115295267992641858765499405973128112949572531497689060940077962905638350342024141330470514621087510729114745600197016742881760524902521980724110820689160876169216484522804301745529751413868810469487718490467623279893277751837840206591944392767920687988773346438909133964323047786396637569758956172898421912591291091670447114192168945756771075090114274158161003226331800562130916462002042013530267935744387956928254901916340883389307547174045345374596593396438781922013118730966234409610088169164301871868516766362182353235559169695569344377676721800628035945906792182164326961933773768576482508853009229344957429822096692171145864345205155675917319965941310020123367448926300248758909598292949098435489051469280354072158134612843903270356186356460617037315013150068951869051028014535644504935571816737767846478934889253777937446717080637821225114437828396497755013065015986054156032606297625646522187674708006513167692969755588458351277933596687524953956369586116622845010981837607575452178684406141484822559360151049941587752514282831956828824799867903917682999424887003282256997895546175608620758629303433446625909189624473527763863039547120435530995070280865738936613684449783087316987377510517909712822850547221248493598146833129127038323020962785569994920650068477428457675024814996343725696403993315569031578213172218712074822962564495840308730134305267246560982226853856045945338242903515495004399653686927706456066227581854222860673206164674312529134522271305602641440535156750235678258855320076037823645074775846123025865286509294074904206861132033872354190155742142443973232904796884375344847139937317927754049661648565606828255735526689274738622468665590236310385092333376392021266226290496369586621393666668011206954739328369516976421572472531613223733976645912152955871402952167345848643715850135315963266902781907753118461545897025409569023067664245077139924403207979978459990389507182254555244871815554184840481268167816817842444380199846406140901210313318626686339135229234299879006222529904152767832352540908226377707519247381276186514935001828972515811536816304311721037402801515885428508354369451264068318412514492131599813048364609908892914933693227107846564377722085733999216345154521924352609098399474595357619239917984117787136967268018530693699065284872660057786059058437456941896718997631370302112103613124620522481954558823614038057598569120505881175726764703671976180164267175486612812554179429407574774468232765972232359213917980272800932467012696354076141303275183938931877124404689683854307509012044432181559638541989140680606287567628343021738265582517836338166692811718050137332919656291861313496421777763968214232108595981991175512682634639590285987232591464104827804227793464662589534456158016682718190379199389597995763567956148507305891709476710253905965126935698897410084078114083618795892903790719993965079746026616036518102762258704653250801073606928709419921010943869006611615273340308359493895521072347189864973899179905511136805580165323012932537910636656020358116316384474242403866182514874966929649316072466913532975345155716219668259154570714497978261487654188034328854676307447371426727832777382185186569724817856997188469194295855407555295871722411399788127724859079680374359529666256441532672437409219419418090065860142248954718503797564652392073783075392088045816660915274029591729773740241201486097177419783388623105278036231693291484360576549496242064869319945820840992539230664741722564227179391868589222310064602448340977482285829580398777734920075114340395579240334966247092438126164789390659194191225292267429748113643654093903460837539832889314617479285059814619410360175392865701449013355410593539216736386479931580659761662664264481788594959663677353104542738768180195161604206418937692723233178633597291816226873102023008076831833699149124208312076095412326243901880399125556847494227176727264739548371780869001620662808508399555349112498988893755116191879628762845239610917318875502264565622351704521337314480922157022390595743957069431504839464461736489836909055491028880305590995604110505495379915619266699959166718744293914735704815090588157878635050074100450810684668045747056341557186357570339509750457817946947240970485210937437160920847440681405005969952111377258983570794754333532964755755738733167555394776503647600287840284725187684339128401201798169353126954242864621711969740970814690292412323132411768187195371628397705056420806523024808856617611853119712893395988571814665568269704046625201038980000642849718606709153512189524887088828821659258492420473223928124697967958623056026949028475530446764062264335955040103000959258343937282376491040189269040759370074093190257241985700150867087337217484545422807338403309693244503430822949349559381351269990513391881236565079172824998689170285006845028148678675522653495459983393084971612630147406700455934972751257088422089642475651537245324425640042866799435500779190615310042694063326274343955174179926127398601392696419710942268421575111044527777457134842331809693733792621659325878777355673047460449586867062671598605656320601438207421862751474168438982036504859222626979070547715620981743698805536232567269278044355474536500681287969936634411130688252130299992706548465657838031194936525304110334290011997040933604812270023183451059696509736541601222723198503109069936817019866645192656274111138489549553150943219663848325681764064194290763780237990419482101994554047273761844062702073630461221546885912409155220698353118453468593448886304237812023348823335378977501759660279159061814627178619872553563827722960867371475145589077469210742029724463067142848478736069067253582446165578214761303782611026441827959411278400920864077270073732409118909465703655835059690814616226464184983344994759807584777454444065447992615139396829973118848219750256134431319370852746172445939845287377381356686888606188331467048456484393796209798769683873010429241692033027933101228991715378600021763459386587771074229110545191423859333672200639304310388644084709334604266560102530437953285307723035725369951744214470663798447107946082806183461225880702663544768453673163056603641086319976213976014014055595818459631781920464001274469677182840773766972549240030642977428935252209082051579713124983427002184933624963644318288559443097603052134790319521256449250024543284378842564656170456711815684512904521725961945399673850773529071577555145525643142961250972987796292500145718411176232257329413915579416414985806696521442644445583708020274829675705602116153894462797989640405361874881091773706571622125915123619119984585671898917220816972241714313318724137223038810919943455420910399505462398902248787161388838454443882961241095424740217495051512490635389099111959545849402853909391931545925223064784320931920404340376066391980231269316943901357458675533558709692270725413483749063639868545098474477953464665593174126819846475891131525351686250387808252325687701245469437064566200371032637014427225767701761651667014495835311439230901006663409265794830164217906391985258849434268861463189501629391369182760847543022610524853885706464660706420851576698729137207675620856357468375838140513124436976899356846175710394870773366966677172332311570202689009909019730038203525341358360275373376918785895110255214309322263475751095779648486671955927461741796170800745173440085296785490644076752822353134644880732933305537291923362972404455630328153864780487115618351542486955811126308280293940130274394057495814141150309860048547065442966975034708896778541942018376758629247650930975567348560097869963992396336918466313541901763964304942188468547924785443867989331123457397904261745405688084734207357022391622993763183003700848502200171285803938974183389292296132671653266368196667775811408235500742939336343437145410312432557194473806987543459547603979643084685154451096249762750094469496651599122298408219215601566508246121947999408090119221010706185209722048289364124538462163187438767777474206686119816903994942704065988687709419592255653577395055747809044457494609929751663611918556163164340623973810507807389188151891746456058145297171683816450225565832663928610139462735824705390997645104896879312241076167738680094990774560720089950534634368840209817988123043616740500224014271898332228234369570922694280286785928946741148849178343968006516788619530427215225589329301424039236847446410306887191339436523267156943846125292016928212401084146767689527228736338140021064192210202926928907687833973469925673264201814107089542429587790477664940821137835189111491145750992018179175166224433867585915489323283593250334508055042963618055251933047365356412920127793884676185340271081334280306172136651603368897294537540111706175152353466656998102680928347774790648210404991824365702105018028574148142740902507524433957117477229772224205928106176136616628338185136063430815731284208816116977655165456951369186663879791589420845976534407674113389317970208371809933902579685023750203966238908858628542186301923964084220270065551355755307580061131041386715606594552913906320154581222517515530011093541976408040188091173686826635928509961044081471926462909951389571878061417264125989567567519291604617711829263016083570960926255495626543086770596383582373515925484576899343461682926259967319297196816770083104576231344750180842505491634025594551201647354889707209034989926388747041623245901372369902709026209730464370037599029705811877505949072793076934203282230377786842311322491732803281867869844300706463293616845057726664045229604281166856517063736018101025790973771643583427625889819427917276982881645871986183960696923069660492191059296731200518045271728917434297962466556680210140880713317583186129614975417496699115700276082615513279797049198447012004950225680672398885564508039330098913055779064106384548134930529822302229207144175159945403869895023685225705770366492259576195386369184055221619792887170323591728249438991805336568505775567435193431627467817364326157583923786255178947742185563371388565799573988787690987191920493252754244133290998085406966062639707333926738729463364254360691797203481632756996384641625310560012304008565038343539214311259680864387593244752246284766225981164298032553583231556017101159672430835810379750501465232149912253100442421434644138759779681573488230683476299615385363899969049059666175850549012695658502316103264834484070804432356440880837479266562771606639902226855632215607513290585491763622316028234981465476651739139116535459776958396571503671423392228149954947162836202431914190103927761268499136745638910056803594793087826799829185128453129666193025544726334003281868805293574779503463578699162958307024134805118356627124847413796365248708754179279874728535610331502912692331077758366126488700455708834503748010892671228181981891204934378160969045256269893540630061614149840546707625029313370400088671019759298210545059360863072011183200692102348418798110698360358202087142079131682506140401598620651638609473714723912264461107946375041658559689658970498000956964827999149015787280301767010713161091244320895719733281675759901485400017235887907697583665587600697646081236926292276165976665516882362681620648194530717595808557096733958721142732557528413219187935156861032821450551101354936211876020032224088132637952691824381917357063652374031138515159207450916089449220443478303948631448894001801998336111880043040503212766630779742862408212857470356550042205362229984091519008986560680466852169003891689630162475917595824998212870233922406226115268766758212215778510786321750122903765897521264879139662426142352925065527555987933736009899026484993079457329495701604376068713683174675507795903343472475275462435492955598032781882899017647799079265080327846083704400597045223906259288832961160380482457389172733694342334431552931563679809204010861475443083015099269890438382371469198752818101644101857268423847248953917746610202582624753347642933150850280662190697970414977938697551445485539182427928209502275142350706204777985671482053045979402443667615035575046793971320999778988112420264426852720979510084539438682938615587694718541677278463249044952513239403510996930078348335755524270418000854508450136166780731402781391741656765800244260076058988863405220764188151349814931679004452778087352793234521451195736213261649824179752434039750252455137825523514039592002262018100260859350782793619737284007884018502515468381032147766794440003218818027818501237528448335528594856277536246170556071586216868377847739173476936874597259184746702359649919219847362321044228143685655100609775633689209896307623414001823715483231627700188608249786820076383618429778615925321686146681288937544329580600617727027018143579459190694975529115779690362485485868804113901126558534185366938304131595847709664520591255647081735350336800271102533405554030380198252608080635011170995133527057040521045542125688547361805076998898403467479661933450353647128132057294330383596739601376362289047224844419067360635243869403774306663896500325166445468983630040198679749810455766101747389699123705416175983044513750438089314636243298721084450480131661381618739021356437206621725775795529279102075313010485628291499697163738863385839284715774597647315714304408361714459774922574973574975153061958251998851845237745331039532451954783469716158132836132985680998513194154675296915617344878969018701702292536103306698206512333769414485006608119038649979980329561869879704790356054870450982393471208421884723222631496504553695615651194636876016104699899136220764569439561443735065599705459102647233587053386661646720326238780729161217441369238382504054153543715991131681736169293593951516279925795475044806151182598514661226854807539998231700680983258175518330384103605473541231736913114678700615742482834213047936535040385206858417514071249065084453752947083725709098375229256670198122169534588678711191189720713663083609097760446822990482808892498009096749630443913189562644518781106895558258842309253727996970704457904021431699155624227253975052487820111135550551539023177335799894145182329786478783259509580896153500757981026353882707658072010456042244253582202685557689789079845550886455301598505169012597576277750813165341569557228535819049901706188458460352110948911548364573227606700218119371110556482361687966188853500041902317843319629452355066576869473935926624352152593124012542526833117754310400060499989829932023572812870151109422046916124301345649242028204288936916534426767770673339012292240121624088589065431816256940422385731352077936189459302555969315676464769437319669704587089931994261176159684546150702595937600531800540029570207878308014882818831363698028415188496848835425052477603661169080054032613171758650904427460585578556933283535771260944049956297169846779829299486044501050736820101285549675278360372085382308912303244155408608047988184152807123760723228763771967978476421188464373371472784252585083186343859137782730403142731082904601728950316658175281894512166170576161776246898554686853347370350707644671075096683293729489166034410043289737837036556983860426022191504084075841885066621703355309960647313389554478373210528272307461280395526823913874282814209488872721343172337181034484822111525285687575629878459239043128922232046472906412592619556667861154393506863863248764938787482863446640906742034443671457200042426870333359282752332974621253853567035345174055814105138756928731082488411036069207177737741019838718962256718734390897465003599760860876207255787884845355525487392068079347012347073425518968009612106365275353627797896740445022475936768400310394948740523648045187599710794397667049798589988247630520118675166473827075023807615045404892035210245267892137065373677880831801512400980617180630426380781410180859642220336710883957113036195173093296968203806297911431022039748562845795107560912432600199974832641851647754327525939755012181863349973453014966761876488454866277355631259830483254441549593880120566353901275538213371589186281047378007605906719055010254608344362442275137882252571615974641766179680615615120547989780691631431370408537725017456904126246506796075182347064561622898246224537699560167732506388455518494001314340984339522515210416683287325653229691128519054369347674171088680588223866778601412632968090456464865168190287309997545692549533618216565891251672231047585435561744205341282967418784588526867861656395615196977708770096141027618632747582670958487827874330225445386785304388566226124106388998145143752584634747090758339694639729291647928347937953543324322467368412452509074983112325292049563402530610185703540324665157760830808616290206209934138784775673978739553218848475669566851073184117658623442567119844561457199341843321426893580468166564235111358627006687396917575992078803984565353955632161305883333414485561076099462415610137308907415776487276698545431139267108620013220690703798191928553406508833450819692236015050447201937151804651255301034427709924618651679175129338992002885114995714858012772925595863415087637346916419586347905798344801912625239732856558031474492489864847266257095935282340631735672844573873950597028735343598385464365029977214072736847446502973719210184547533347865181662132912559918850187197464062014566105938691472073359010260371863457833210948352789245584856761645008616404992181509252454669943309571522957101710697514127701040015140031968873435795882706374104716361487087025005751541384489632430509744033864959059366509075259837675146975440063440187270051814689141230292025502267321762958235545927725527081744693327514069789234533345879290273294546845005940716509438385567017584324778534998279492787819903991735645723955077284788188346575123835300291349138597261239604327866182499704417744783401945208381676480528141619093135695904276687908288131151813608764024341953141625888307775554043517786442439245130056308847206500955678929952266055314932420008679749595106876632886860946919440633839004469210688528272856504938059758340257434446544660708448978793656575312441507842180756361837904898790299896911223764766842631637941137483995778132611002678964776695548446883839246336799372853560121197688721577745251101680344899157833484748380443468803163249559070970574484297320097423913770889625135717680182196215527989848209243102683014530171373039138614991014058557003979559098523712784294377749303396714128354581244269166084881370998178015382205317375663200563679189168573103229583576793909210188270131200871409945474944153183140705923707663080592784559192545455890154201284602029380828570934176911460099877902256443294822611454595388965892985597987047284714298617869860656364699682201161798004330502938993950555191155826722693266266743111368346174427437408441063624921120711565936365575820193849767332476404369512333125157616224009046919953834016953426714589086353159551610466223676123551217369809731825270890370298912392206813689011030042790562310630602165576568268763255245518906934495278640547328447044390820631311625193329348562163467022589013835595771429027357491444270533558850299862275294897162413475488230167172189662012502163071938486641556946997469983911811496109734975313498501869940084600719241953345796988487616733201073349285549053459968616016957505643849299238117667980766233724527274843702167841084869537811144240143334356899672777118785534321840789768608482727031819488394422035459373442922721844373952535348183286026446666694578171848911297321648071701454448417857685112497812780491170723067806892693404102724754706808570739376446791634096279582501086474004901484670471499452309957235067131837515842040651284478574610264985553489632328048816633200001693536310597113776598101057794364551845631838254227258944198538629195513826710252635398512406868274113010450014507285435263525905544041630597732028399415258723655647258931613381231869240065646360562273667063050696970499175842004005695526937618732968111873308358229693549683995856486876852653495882563480230163362175064543545110950664018165622231128057074098980809862944055721658185782904751461442809549504137289258365908023850922147851012316162505950212072069251212192378138595620505707628285710885082520762853195462999854741865951641858327075478355100914112030084098684898398811174905617638477222228632843691496007170385538419194207005834630030238575577972281460520318713486323221190647895466529301452803021835662764106659193026811918573555346993131052926895029938592773858808322554563132668566413464335882452299937831063142952167931000813041067668132758993000898224631303314273599040106570745268452378845352054653133118639203455463693966335009541966693775644884102667641118761128140498574955659119146333638582310322781578689319314581115898126738164181537173499503191261801307450527330331134573811685498290700712194708940577912635974647424888779058348640407449450936731769300405274279828152871975405798819807492003469938975793735986383223821067399855811381890032493507591991282386119660019783757484573270862523942762379066988443233042009604488965896944742011301547620517366605294982105195525364381986112324377124783730624815429634641151770337966882549617302366782054976116812348646869010826184322668878832914720988107758574789657670857623490547532931062285180365103453119959171783247564176145032102771285513025995143098067789570197722385711810833586469923764339972658628461955862242701226194515102149084800636684096112848312168179677066550729194987860448288210689638510922121717473658050825053976226543707171758250320433783904127924081214298989056380367048422766210382641389480673558918210245959963935070260548584108729107946138114873110888225415639072013035212674919562360788812575450999172606752122698670774239751546440069520452677951559414196702232779346938391233013585613467962896020381163534085379207668299518477283683062749982092753883521599002788140076185386326383615093219722771127758923461915823571428608507421147745155687004681332673760023225715437799347427494074610144009918639577914694066099625414937035005861115704759297539253076949750658987701802093171273344881297463482535288179285141717979731911358500711381071357439067889719680526953389236827200882226262622530347618029163448962977956716389444792173862411205851809879709953855851899794771765476915945265386710515897270215732308422008792688869492380328279220213052497960395191967287382605363689566493828764845869396680036126868310686508303106763933185600219332956875568989597803925745971711776261379188181850553274001159573312948842606553831496920275173131855924543256208931748755076773993715216958970773971396353210037481057768701960155341727463746983163088261692355284077724653890259868013104013979228979016842959638189762421476152577110957512219844513477971969564532025740076024637020837873635107316100192492297507352068892503862839756414504062405768660709753414219119640985981766428807464615737188706266637455669061015059149605489823360285110217383920729181297138979065265886025194845706102069376889769550568190828150750262531362429529459998930558663068760231049268322471663077972674221924733398216962570112225557848596532451096096585020767306781736325293676657643916908312368129470318688087113111532010763614033133275793502997116998422584109931718090202566925454516020786820267343207370137225768248901610870093423516716509687248998258763801095099744423917996211645118461824278752785979857351551285579594514751735841497831663292971957983122115168218570199987825497808196861668124924518715686177975967173922675604702247743295388514726430608710113744268980096695855957516314511410218452650443827121743630481945302690376856507954503386031340986445197977784667640892301351644032808813250174330302043524859827854620870106396145200362249035910238936719248942994552763934134513651574293915834314333427771000129536242872002509286980527844689370190936069540614375032062206500257943051536426626704309131099965160471845889907435229343412149147429372493086818704451840501352597142120632034548902589975258475404100321868186437276583895801223880008526011664204102555294014303265110862502344283061974207152869735430690833178270725257603195242094955366086239818791579513638075615247250221813950542879526071854460157986637636218835246422661509830481606558520495609296305460212230679693909746138167446225648815011006221814109024776122663437993673558741289307175089338716576107504046609531737210412877507734228862377710343441297533815867374185053732346195188585184097878972551940882165413567070695424114144274385260121507970724125430960800743790795762085092201709613945066757882683511926518459646768072770467425047897659291516690188001622147824644404446316889917465607418692890914677322068467907874431835249912311337010631232259936661723090994398998051795506650485895295676193344784620247925290870979631274289252348384176572499349798848325400713694173559942029327240451839719724578266340220496400329234920233462958266310571807784024347209559276198768366727030662585130784796096845744674063757598384983606444903696137637366932398363901741361159269262326784676092773047559973617028726920609708168837672890034221997189437188202660753640123743122724151223706521756446283503643206223388520865556507116377206651022567611640696133256300516564057922202696917095405664749715556232996433663274764804400576047085855267916460231858079082561497914104708418077975595554126417773598283274406767950757631752747352077613327321790630197503685704364162189225551263737323564592472726139828252715748184576180037349096435379266796631092896851706263675881170887782456568378676081409307328799802830147153976340782496577300613587010396765277372783903416057546325476658105469597376367929827239874725903892374167138420576025999696825425142949284398348771196692981102206213795518077361572134817509818241579753930830974477988413957082082694734312656198401475969819473321400959979542996239322519088414568008955139747602467921935858121740619082460591840298454156769468626393893336782503558433911057027893970539744724307233611286010761346409358951572463189015262817212431354813063706815790466618972199245466894970440723194057238741121422295282278861652090306766673127629385408367983407918849892228087691453023278276639099640230161576061606651893361002103216646508174231775237628881860056124779078129165936324016227779505964345503297217210287708176537833932907516462272545679407197055702879735381900959888402806410083498350760414278544665825382228321303483637601547276873216925994497661098711014298934510954598713847146263294144807694856851302354537047761209289085375693408526805523721931186193649602960914357449938005947104874929340291888899914789330477774870358177873844362062576892780931431921544940084902384165392938316793591501144806674408236443013751618649919344757928268550810778073662086675805896076304552053423814973593166011455127195314238693784075088192744581407888930828122968172614294214046031348178762713636818794095485949583436897992246439639853950899805914921806605697317157139264774070348210422733825053194324790485426031102104572650480919448760283704672905235211305469300428744880905677944598065603147051828250641551677080427597619464557011528216839383390534838924312099206378909291868065014967825643210344326276626291937318474768746164203551503016841540048434607570720821825547601732737324686940625113533046784291179327579769178839792853935493072920251294779356867929439474502013161195497059155272557964306516100193503741361802964033162940931576355188063553005859199225422886581622509216046314982467803739742016954723599059833584113670910971253464097109351461262540094740856067258746966104724344109632876578914882629528709075975140051743437066130801332294592187996520166866316763185125158527065602339709165613531498508511407392953847662540705949400973083663731237024154296280159711752327163872225950452466174125849523399733247966820248456233841311280337246986353007915390702931679551037359177212675211153797171626905945298783301188683068153002630115677596547540924222757372700295325978984526847407445314946319400101412754812552787655098934108416612815767749404737787853097895002432986632194442433318469463463748411190303288060870588200976478488203725974623636970254302686020816356366675752654126803908031943238414516531402073904658224184107755500973971220646842212586278066639322493243120381909658092439524240016672301863657219599038579734432007049900154714068026359819658904670585725088556391068709379800377572966962717951040467507889037899225547081042862124857288307775335744656133255839584813573078126745734173630773006146648807559764897368668047036569385533480549450875621108062273480003530709412178727535419816081366206338060554939071772237367774719515616167910802166652989524513885642619396467042132120460838211944927527208999547325916593447533852802043483387880710683673834403085648852486715601875893448149150223303519647120606769240342044087597252495712180541738198867480287443659096536188336109121827044619140055367354653433490849877367486743334844470968053838271317081881776454703609511174353863698562945623121907495099991732209045184759370944839865101688178174292546806177029522937823260737090881799752719378838860333262306600453568731184031984952146549007861192820063263257426934758464376159658796277431086204149808202442709556242258822996143544933344332552756479241376933172827233777255861576061237800651849875294780415496186898880056088075307757037233171411468870933049187331672390135416021755196617664239501392431283176439443490948293188472110178859590156676924736859838853127461624704060329811695128039662016513549140951304098450477440328358772626651274720446201787430232127222790669115603444458328884944253048687787005758359830743957488470535820778873972215641903045599867688922002445106522582709296957337628990096337299144238462945438795113947292109052316568550228157613063705461196999620744078172654205510662050445748442532675069167602811612700832196939953060378896993540096755165891747171523291475285840602649306432123399783060017439240807259443414561351716911760376150609687695950250474645398708970873108637775384194749565583882632162959355833534430151961940632872938742480823319746165406778322201648290726418500215590321182906944498460668063436691555784407003614387835312790470289720667760614473992077518459499112403474076945988674169520067472338459915384819837221221889075855770540069002737322997838402467672509766401470787484959701433315097087089349062836611851697467083038044021815776475549236616149629442644840931689154649566060775254138570214742743917652385773887150206763538803482653396023055409530502878509866083285998067336002882230673513850691132885282406496078165836140543439632150746577383908563439432289058435706536370532669087273535824008657820640388642525633598302699513143668240131970016128618208746480883664905142270614386199304161178778118355589147790274444697694974002758233682512041751931646345060388491122128630241203974737388094651803443176941495036069687651908612687290555002020761881544097436194777985607288356428935774809735394727472316834062259004847594610744363053154399276814470878404592415811781016515867387726917643893678636411126341339035945242871654345852777502497088790696143880794815494440634872142398552135919884193867092133836889916130189449212018033297359966997178738725771074314071484744161009265065583227579681688060972365983456245187183684374293481575209727438062235681635805657902606474396551664952371221330466681043119290333869948120387451498662907691220988081327073832082915144630593546296401651578507483913675331709924005148420720240738055590352857738439164911692313062585600259011378475286549822098938530001121904007311990788064606934012662379783392453930420163110736223354024964626140003937736301112027478805129737493272432209103386481337936312539909823202690603147498482292980253812804681329768631241497414719932280293043192347181263678156452665516320589496649625518464802694785380870116773688785258742477617762468464752890913000495895873475297758665810373408325149778776180997252896414201009573727517479654725164529357968654122031508322069178897344527875932838974856717149758023974378630843248710821474036877816699711578961081456659180646828085166543509658005378360589902158196469516138135168964541613248764471785388006289251128138769025817969723987229262790794365233232414571666238389445214987148494716125965186947650766420021103104548386214467405119644593780024409669290898462350899109865663431534012432199688499745027906942031379901651204016748174937461446086640549236746964094778020660075031217109336607244095127827309963436769468487285975057212650124486572958904732181518003492904821882013165196905523412288149785071607706027456047215651892806762112056663224575722221122694821935613004917450349261170794797983468608086307453289986032096693901197518760955021256314378833529659956340434821063611545800173056075833117443060769040736290164982771793030407818961225691451935441837324333472134348751438782585367400336995773925656160753917531974140569300469447986353704719603741143525857557427762628917482422167488801275656688901054344954139453604022018199926679589318376133413660400688866895213803615832757293884729771762612605036073958813793865996064745703432017347499865770211752730267887355263139086238444388801318828521603599533322434651528184860055862028031361832410883725324798842792588754770216618509570846158681170995092736375385990501837789155938209894025490932187870601922875534531072768760532908349213132562086352946379055862285828707143706127426542170351911710825388908956503761917181219941272302983896595814845240661643657616851087957975255803905511997555880638086426192383375170615172761135669797067858046513310912844673013231625746713344067743483427119655240449044979256012336301524836946682833952822667050994243497625464590457724828356879583654218242185868914188406948311574223731560699021909658677628888986014499698771899391080797559562790889506311293056845909017473301123467349859512929068344326305501848862816989094071434410729578518307232564189681297090325161630638623299998521386119179952895829948928962667935156391708775668232459223925004061514300326348278697407661646064664309282128721880625345264673793348328811717148252286506568335156505907102518832345460677164249449130566059936503254614557894843773709234580815223876580816083666272132891652041456454757151424897862358502055554211774929052341943218328287410765963846989695977427242335138532802820213418146442086707522588993100935821351886886694306978211640306878617232049070769897411445567822370364551108853977438207073988744595106410544469203175042799137756738485588764598681039630686853432131764054094726513036260459259129314069199997604173266419727774630877776777468747675287557971724323618372964826315477217076305527472089224432192768436540544729618109222040155820020028067272403739023936373287932329264596370414273116902188296461303786160693192862451453216348613211049247475367608260977745639152272522690911549899195692625018541071846112422613570907521512749822412435354811899395016506292119489372900918880487041018411443904990506235327415751740804121942894290933154649090387695756751797068573789388436035023688584998888715825763983402144872379363257710937666748937024404441555448567509316398174104843523556270554672127843652405552448934699273041129893897888033658795551272839004108729212098869640541672040295253293380280717557389212681159864403984991970980709879736381470136000877313661713316725111565057288919436801590848740567514633727921178017861442325698474404472821019083502307266177032838067009542997688460806725717882144227963757782491500727519044855349206598215415174988433648388689590421904059332883510852525958337439241504911878671909470814558444024590906943188677062766967888804187630174507901916207101660660185897757379033259667280921591121849185158623464442889643119003556044864195727432328422446006348209759950875443514710707695781420243982651039461640911923164166240817423473974382030650048150419185487876921375607562746226854250023389644872217935317526062374828635856663863046585427968331911827822171061640372718964499000455918841585385456888798196770460556098355952480813208263279514073813370390576895358312442685200239484744757732974934385641676076694698314984790199682890438183220022477500627160211126113452228641132982995931409373917849895519024513150253619060817027364464761058734015810088608626809274737338504617489874973235540823361215984326478557874478284247648870101160707916435795434790141017375084027081448563937044901135789474930604149945611365616211743925117325565186037193107050707031937457941495126444798785404777507796954273881723003804750860575854505980133300168578141087633582639899047229382083286225439783591061470937327901745233992027209792693705459872614184985897972248443615533363411754821048145448604204713779250238875172868771882694767231859947758566990094346384074901678830789552088937524619345462876644039654153828247467474412137942817752899647833873092059687923053869223922119410498888712168037108849011861138322613612063596689945535030864566967187801453720766278255919287570057350420109522462739780820665881092356826463815813824261045337726684417064768768393636946489522749367979720157554450122750747496388459447612911572140390582967584236748848311313482331900183931043145250306073742495410756772689786989487693848604514156445033038091517820445707674741466806642834064535358496789870167782415494367669845695379870204368712023040214988901878096468919697256162288148794176638250969705137810507389243041396349103522574099124075435190544490564084789991733540668958305240913255078859957684577868643402709179118019523972003825071913138920385541088609236769702528433562853884876812856868328311625956022534581643809886724278893456222399506860773958854327810011886913978226958135542203167221602119694856025135688694522293148116979159439458433958328248855680442060595246508731984777367743833894464866044006154725764930146217607116534447285745478536673244305824483028541284918756887948945070324942208878522647362172581076348847637021786440966507396026619534671681446135567906498480683253915042296745092812550245695348330269433122425519034781726487077721925221544682912746827763735463749926629282989399272367159020458584243042189392286228781686155329775648782313672046659955161974358966803670090273660764168964568167636482221120667787028646269798262586988161329432844871243879706886231328273598934031964952414320301824197380004847090892327099806130205048482841033119294241393347584614024748720064994413264610515650793144542736041608472323073918526078727428865658124961782674228856718090424488654964249082007644324718889900755859448946797018774520876499907152422571849779915755730186669730799968650661693656045726543854850128410507535929380901066513861274253857884451307617084348328765379073230287927213522805341928076156550428653032129479272604332574325576097023615882362544626178738883716732394533769948732500571279765551401277177768699145158339524268573337125692449003401555435143773544303872279801161002567110719990510876973992122937962824265167460833068085983077368915951099089309258390091224838253147288058954475263206265592194278077553327362151650498777913164234423230842082333807131677384141313374339803517697976573825531708384491190191216588189883044031219833981359853542503247172852422466550798228465028250280252775790071741021280390435099269592122163185789839488847977647047988691129891844409076169645917153162375904974170007866646930852537092752138722026659551955526823050255695226668507708251890629544816780795744544139929890277863057445491976263012914740906349294665083029940929833217393970468071849831351759232809136891348839318013581279156329390102249996169221051449301052510823014557350389710542961144602373908089851926486960756802307457547274236443817350729103976630104069418523387458036572645235017360738148450694940443481152406091019443172353277419022679448028623718325787516942162028702789079871538276383697756426795014197381969532211552363353765287250096784524041342318099800773680385017032312630225861825015531283518659527820142277538856990312964958901445465658357398988737360579714232132641465843295063846775702477044198574306980609014140390148205609883436895209618137071718230286321201042593397523946942901355526548928612966858401637940433049141783687803587990416876816056195954830860615770179626492263876720302357954446883844974102528754229827324660662596667949329799079989261382613076352481196394279178944174600985318576587288210961537948553316771853922904049275612838266707238973346551518815310656053123873711785588030531040320903684598277547499439853954241213706082077604295794863723803931391850169131972808138746462898453780795557995255872047865661540450132684023831720075418492996586787226046406247254635756507941008167864835335224475469572080629964768394787460551690074703906451633773029976651852699185854031634255076363583360961466061058269921187538514891543946025073861648069192548137310073654914742359568549457654004443463961866103704525813020897384875589120686434677856286518698885599851842384802580001450536252541447859070355129796500409629624611075876227249300700336216613336649650522835155921122353718172348307281511059612006787970651232971796974855460330424810616734877096051882979578177873796211741939058520694215580860376312790919177628892930171095609697544377034576830525319764115476322430034033148233744152024312497273021243740985824985253887960353882990376780977692612253416290470263326095683907090134044441696791365391632838332579448624788039057776058981651967359926325744865000513761243051385755057025815854839442876444487132070923241764316154290625593441542712294522699896554185995472337763785276672703598284501109088740530712564887505753269021166720643265649491967776208887405373400811951203736721104167145648542289673890954261503288958865111862074957377358382285743080406855623353733762094243497712356398785303313572649859582054401317613930168940897019871981625359446670969022845600686186978062486016361356562166212487100291359877176512507850705776701397566788308310679624114603084427669632884922654516362550899044312539671665596534601772045337030008598674253026551003146939667327369504800036254775083147765763310605359790390570220600577869860145083828900396898944357011013668281792603459921117275046027471208779077526836965624229740398841345536904727649341911228539085164045583384281205980778145603014429419168068563548391591393678711310749867664801798777498746625931370145870371845851581848086621067439968366999058603141338555351111878840148718702674650065221563774501256292532156685978030274876512683910491110506030531832555182320887356100818233162015714473652104229618578266518166383509274602408863609568929058112862298523318982094673066445998655772275950427359653824462942309691130979641358668211379965287965459194877622207391997485089841716396376835424566837250784734314636025647821157143772408988753836871812890319875797347825729011050119377779072776243040619484945912789351486883044621357490852029339230930049842539651143735267159340186719481089814510239913468442036359918031998663148876487447281723854875897756934605560675946547794012286766396809126095249941829004665866646294892982248093935552148387048338565778877560330970243184659875082078502642467578646419291668331909436863444129824242922850546016684967612953204856411891291808132751153372046628953910256142809472421611917979967632713334199101209154489355023054966855845701595358285232497066367269405227843217143181880275813884478397055553498088570882519377695848912570099638897220727661542607809677396944097155504211513833496567914554335759658731284951686440739501855433760956137780460592836327136144382803202282116735291552734434752033278005257549144403202557972839029173307011768834957011033254745242695399755908135718198512450395940977779263035416640943472668215974877881535039325116560757067183973262156433144265091255601837446721095235364729362996359288022411511015201996612669096057748310036644700160569097369346826083640331085010271573403459864960532695273765812989063988414452343650617254892426791031801196550190126893589991285841269857365010365180552867856692992160922623475173031691710737987027674411474856581874940462246563474873657982969083887729175023373179780392286715768888525547357432685747502188890034486537981188513496846956767714021487012583126285430532734240387994576854715667778424497487507734325865979474045989277467384679644363335404031538251688895484547055310806009235502334919801137862865752635764832424406203856505484223216776746701795208327767678514235747658600362986861772041123367779713883748917584834012293722547330412063658299355751406340261262558410508267313613438160091007002723717435770872745716777692493286647985415094673912938486395898366022535373141705213762385935898446748019666826537723074403976303092196254905340436795338944510340952565433249118944169951356374970705118994415361504685709372039965487428287041610115470088129894962631600101105322529721661331119165565798612816601255261960706248062045739515127879529754580754712093348761523770462828721658600100841956777489584889898342522691252677593830415040187621443989441695268485278045693993912784926185684565287523746910496104585715874894454848605518516715430389934241516037989194392971270653588387724684630518019498610560511538719607850165098383278341522852334255833138271369843347407805488815171487277457475168924569521873319641822557279977140472548837605470601079846221935507502215275485352954887058326921193196688474419389902870912094538778674466352397972512251506349705206993994176663191673413308579302635002185282265157046571298690077091323151298332711904736508376493840173875041442426577112243931932794636101059104790336271453028752663932206457970921898309093852341202288018668740333431700099161244155582950049303958837285002130513722483125886865062188866946123364520828872843927165298782930289660157029688837579192335018218150718484541258213997118754804294834777205219203613392975291026235328578740180180349600691886457747834035287214661977838861272889436210545325269150796028820745364674993246230287762889955243502163750210060051423570681934205295325258732111232289682928316302046574534901446862177196263329719280388450987232091859658481040198089330382187531256436246690114059987632351575106034374179746986895338469681347564315678863441709058250157102441857841464987564079578114108430186364030402854372655279138693229281481157398460378844446858500425977961206185495370011396215353540890658379401864112708218272427710876744577127311084093086208659451421726917247328987556065647914474862429438189885220414637585191042258550683017120610448096344742182761614803455162863601992311746454949368140986240500344159307634536926544302042295452096260674495348815537925790801239129525618666612248816488968012646900591964269782585426770409507560792150969161445889533420638672740861656300967287514421084825122982321574304952660234584492761672777717493326738598347635084538892582759879753172322620860447674253810288200025156242783138605373001293683891997655276149628190109779777397058362904886484649516059127513818189070084079274270156441892462328363858852082003959528536979594400033797796882968806593909504771264526079663621671409220442362423190552115903030222522394951934597682946221286450981418790722052419204110961656369121916632784649969364493549581878923276564316519255165973697458923275612755913674309049767021525371453211040706657097302395251500552342467241737180957093589822010623293684379132504508419895340738542836385204861388708382544768873178094603385387748716470066300396720497450036696208954469320345872051942552766516281744585502709090294060889765051325297264488465529803498716630456536010378407835511559983379915279621780190007257595346590818987206747166754710193194015496537136149785468851639277755965272390981342567581207063706174607373347842472628518657139602333396727844772187853491614672825384236895209336198406874481447356014274913002996213952291722749605732500068172485653057902460049649976605426856177112926602594248105362241824477172376045005547083939560292988689189056868456823874706089442567897035062509925296502545684976751976332442027810582715420525850101214683258343110328599688873370048228985402330617562230019173176452685369542184938380483424614253533711400018205410197074514471051763320031727844754553130769592608326863342625529750974136330200122827090420751565965121012548223515473397154250416555529939708906923120701055189187880102150245472433174733140410346798137599864519499800654899956712103366417440634597075584259761881991310808489690196914287900197952292562188636193936841290895236652471917978450538493100650724826754418174927133480685663381831072937662378646767750327572849053993387403411857813282348056631071650015623054559965563953233567677668103787721341316597773299607609201677553655180768808470134320732671545805397422146103916476010012903523693179185133942055794278008259148940035802089190091956365173151021433600839473935172072695097341576631472137401572083924689248827767487781568612619161225848096547894695109344461735374945418138576052032200123887880175141197658409567337047724200426045251425291991553159991742690541533851521820825653360776460154715833103082964539837051365707863053528255924487197239345460160884312214275525102341552770311902348200673569256181780958306273619108359987594896743831211341702469199847973528502423908373482707129507982927648634160263156164022162483774832903428358163934324437313915178325402665011925062170450764334649466519936909185932448103313119721195110146742582378541362760966100725743607022275048026188934438035250037587751608712985844245644620892300108737809431107309483663395237138768216134961516222404505776794863288451915373135750637404439175632320504879359024405579720843706451223503872666028361275413320221396524790232749904729993571748566944608214523627729538392688768259546233276439027501832888936174027903348842903304263157178528154211656680262762382551079783434639357227206549253736143801506080891031773207579087800863106342196165966278190628745184496781213378798173979500594053881764424442173288802618761507698494188484454879298997080712041200814498085228792196546607721430029534271862299877996895851245088153655657199463479563862416696131459616245194891626052648141651435649956938560755657843755871793283279429182641725026443411194890722314294613120160878926363364951536751640936334821334616234097073099524969945771488611530652092176046756985850385918444183530593350106169118257675895455517452873964929845925773187502321835808864028786427630088368068115189560798670465725793282187868050654980147679586797636772594283266113369088303558455526589345872046392976630110906783411423541775508194706350320987699659731535479057896479772836821972146562913590865482172384162284829166505123845378952727022373887748584190446806877366301288999933395864660859727432506660048881414335019813588359699286590656182983506771052295298155167716078212413003935054867859635283510406740563758672144856395119496188252639595944491476128019029824576202723934560991472344137281583416057528927048573202701093226559222906934865403962329087165088105794628710008622462206718044335178524347883352584911444931691524398644623953664480867698366634457955767984653604271856338128900362336285610903513445980213599030369829016851371772213412416683200495386764445210877566907261432565801910772692901715996962100722021593783022780008691748355022570510384628517202876404566526503632253424660030039449898945754438106086418281356421198982849524656390258243128731328464727968684448868162825135571786600433535415927273289466137659914751125672657851136519065244793783703784964887213302750208504114620304197853134892838228608067904316956835846264727165115214533448188404630322546975868793111113870491352408653495867765612040761020789598337980923991271838574609101612705919339432464378912964406892320802332819753470725219884891292810632347069321401376359522032939047550288926822489466112473811219574993209102712200932714470716392558920540004563373176563757172614510940838400468708796035241579141774279894346208445580240291020544928119174454497396108360763848936954281356368806066934799250755704751440038452303100070417871153534737141263503688212968594426606444123360383333768334840296791187219004035021014022962963330450770057680415061609351241419365037889435170945625308636705874056224171666853063863549012247688247465636043659125234137578434203602412444121934218803858588029256798276967068943680188613933506322610694572881304994619539535938502510365038326339595542836556973075695018211711871853217806216372346868874244575483896857037207472698784521725517691095409865935265783086939332407400204368231769306698870207124487861438759850776194319083566102510997313174767208518845037319760624510724584828822896590702535759752174282097767160173087859822788895934550784511325893803860284370211979972653321754481645266725257844373053434037077480487371222948804458173701974044180156238231059706765725418859478058215702940210377755389671749146660858634102172914892034089236730444922388264891889727918314140269441715579320782615710936666893214519196350823702868133918361107758312812119765789767563514872476527888101250824500614300975376112988329328511688648225863808020381164624182186957681044567003123013165242354281389946741470087652186384951260191576766785145344769420316938818292614910584072982311175810730183185437738380527550777729413268035506766784591431795738912882000119085513754840331872097260246796038955623976860805861259325035834148280348146320959858502354735179708140830083807408493878418503168832293863349174557125144995035328355731380548341341792449904638348357991614417570293539348669757606553639355655394586080141326768460021025173741151256538701708805737359112330889805590395664210905495413864780747988414587796531048807991729402215522272449781631425428723175437048014494894557304977538473479110706983945392572626289973579491378520540524790410018001030932339485236811188528800976368052471826389246073384734335355452750687121812480817202952271094944637750802937330124497932161296142278257858198282491287697566192369420830463597516170545753581054385571574764329252343692199520108434679552091435495170392048535630040150286707761016349810978302679390236007047226228281770938457194322303056237893651237967344720884780892017838269288201624254063021001250346246184201610138809779463404565888458711452790502907614768756072917963378718347973738168556123093301661507348373195388721765533996416288009868792173420977018805944033488875568014790343064527521911813243974846057573077525201543788966260945619991941346541940811826887154685710396266157601049660677135438921326654809332385877379738199926507591912261034391807852466483391366809976378126352131074270680220119318923405570007411882105076813791343517156923660871956575553549138639914714054122141379853970765253025868179433248797824204210059118988491889489413796780946826785776918164962807767359882690966898702350666423466690298521159211176280028858778861363430393154643620532783730229254688637770850538850577519039379631429200945865071313890320963359317138397506616604311726945269873631882938030723852447908899670321155953297439692494701755094832004755343269756803339270497330254535931429378038026618687738476749734809159113021705788368413787707627065658300802789603059383576783792703398371550917912120361375994755134857720705862164058355888431940596221074088547850519422909247660696951692968544370691260396040230944404329991199945168696535763411384759820852680705785639834205632420232186062453309684973617381484433388581375168475885203628764870817545188012237772508031445953012991921488021143771413356840708774098313065329804426189305548111938394981570342240513783462468650407871326032073891446261771676456867778121508999185769815754471598240556111865696801584059343538441271169345175318210210325508980127843295701096445532578286383207499442302720904090159597537005869315996923008303274296504204137567029732242508544544624704134128435864660334331618422958002589568550833884956093904698657236712736858244756994576930055673173235542905221644375123298174299434691215407392869734650246654259828929225118791268370984840070344793607721952624629706203682937298364951989164609050430404639006101004840001647990468527338626397844090886823990954462070537285046328719230322410061665626878348002500632258596361499675731977505109384540004313497128513633081416296201957846828518970988880673156606123258464771547343170752982318459328455810973407713568974235255076827757245100808479413426873691866672753097278125961910903173071130344065411975562316796123758496598733962489295978402244899593728721728060700596317841759503251004053757664819968466707020632245548997150010085724225962147406023465572500693812686237212284522681582775198960255714842918790150485397900105087844510072899023183890992493155960555554050975602586607715208395245982231290061618765033816907612032981448421108822559567953507629468147217483428869389015140783230679370275295789573634835777705398890658827965103840201250583162259976982573752174052067664276345124106470003349806698698850925797011935961962244675360882646214372802632736110699220681683685500456755489739446405054428542744768274758709000406922879217432681256329885165677892932555007893525731480477631914600538991807242470831921740822671455484757194856638777382961831361664848972764321604385770007399024597220519673437144164404021474663893173578024331247241897073270846423146815932848615297113546940009119489440006161899048118644540190122847773386180263880633398772076405774972507805062164541602955331714164713349745535904528317674341812073308486973272211286231020405759424500840663338538925848615565854673519174112942160087713008714452786638677046076471433807577709584087064910104344170888690719742398171490701328608088534983038673807616359444352384710575677721967400893109909789171906436870208968265195420335602389081675445398946218329596893408638120945391995483562109996770051940765503414677960906473023628164099016863156490843279750583615916586529381815984857801964822426582986126559007973921620055491320637819201246129252287925932263012754026067377899685653502468491480450792388777859937794604652188038458637682352600843936929982679960368825660868426718351579754846095327095384951612015229783837218583699706207880109950514761932848271898164460803473460292714225588365069158893984838608300764756574628464208262823513890004113147699222872657291211220992942982281993879674144588076653103094247171720058491108494816090797276041012572954733282461539970472786697983803321794978905392617223111674004929697452455486110071752211682485663050293169472365996439712733360362464228894328936952448351540444872875444665802215462490640827778319076434954606703080612503364018755991202233784127793097990407895324664672121091677424153422205279130894023518745037280167830154644465785506683232861261898790050157530112682043551602273335512438347436451258331361603974550076678416015072385033246753298462881073405131620245006672299577056587393803253054179051450014809982206667289827216901294008627922987355475510216541544358299732532738220180868350235811051114825759793674741699227732874005482143663144490117312465705313667379494879390904625019356552064664145921162211994806049857106026565302984949921914775448226298900397603003669147672432149019024513725548956797545633448541730681512523405223330175903528884515831316422960319255878213972816466761648835961301595417797432421725187379242407766839414278354299626523626207993913224016297166556572435343299045893658756557189873279260897913011680269508559657399043617362948336933724884151040537240097476657650350543207033068986816365433165682019084237333773473213165467575111351205018208520305651824729429253046444917994773123252463871917659130539572907685234442349407984478494434500771043461505518423735151660348158332820313646122505404275695638181402076933163991276145706491975291838649138214843517237962781840619265534372735714184876474863332702201987340068234540136215175512825391724563199305982231077620764081523630903860051073445654176036978785467152912666997872955712801425206828201073476978192290090934404126656257354968363592015271319583406747282905794283082553634745404728734179660695549642937675236827043065764529222785125609424465747535249772936174330929066424275405741251893167025546842262398124808624684114721940339184925679436091631334911707126658502767213181855844473130169078655191235863880663164873208973391886619127541271334970214223371196815338155305084639691398121186068475091922824971236231958416319660394693975822339139805720937201983872386119724767879854254801146376265899161782449143088921363731038744595949667057864283337734653213013155694810039648581538394210510031915084614604692855719881661689628985192543327471537281388675337052683796705550418940399734931943379599581618539501112069515688837234968431163663756922610345328061595599434790026362308213430497591830188972157056156808118226057346844212536049597623521982717355952534242448815172607993178671328265643403448642393002005399996343646715263577531665889333374007399869147496396637150367793192831655156238236523382720238937200734088065038541255940906380289281290962222044844245224391555240343078734558873650563326701675471517930160504856272491795949007970224166488931008184819732201142618069920125546792656968403908425197812445560720692781905889863680118663143079939681738639323847613877498074739362592951342976050892295890221841725999368983321482694213372072512563088073210185556396232678586374658500724515239846540670674881280614147517352932095221304471935089826623893450071801297777518308812992593669192534931469247445599436862249618676375764011536676796860039783830047165441798257277464339783825677696300104849123090364634350069932855128804965338675010067225824143117918116033002863403277712497068054815426487016331894803239176207571649360611277371693351828764280736641356620385412846122365254532009602841285788223662233599529306353967994736110737900878097833726141525633484952157122275309841820723423993684489681825457979048763953810008501351623127736916678579582755834934013795903809421279707172013346116323573500457069760085188229185449937417334719724937004034854941296503472150553404272814579401286982273161801997060432085298525760602965946798415391911115221299101658980446773932908850197535124014623082697148875737877439409933700342715476400601855944188878905423671872592160564936197977753815478848988936995325622806706637557343614101073346811007444724748315628876902171539100502640861949364573902951568537417269794912450020471817242672906447536713745238215518008674922541698502586158305254731774481077833360029837483849236138185058013069195168483524242908395554791436071666785761350695032773686783808845266035709081940776457541283839488390804854422387501561545195431494844658589212657959287128416444213863272355741896489860265184615388476421883514598604647860106157929767435415000932302374705585314634553651023375899104321944892771898166425849564857208553216168967198423238864701457101312659627243066847313608351114449550260237462335268175138764239124492966267689023977240950910268016828693067409456441191131198346263894720101325917609910140061216789282965536903028975024156986739867777439448635579243623005575567357657878630525865830955933837315784411777801366381231608526394368813077587054283841050689469627711474903430838137619947835577029140337740362191861252935657371517715591286640333024569389921982578821207264749843556314307107155491638638370052664158368793308523826394027882220608965530400403264933839551748001517237021570162427108493161697590411036230475828242474244495155393667503171754243679473958761374236189549290241313393489512084538864639396220087370906376566831174078139732283042227741699297355641170283390108034843806229911958753864950659576236921951389074571064786568712649234715689313083909548704451589978047584427331551664580063245335438199896302598540115081102284831414302195966870274515127260247988036576493489533695488613104121425916586729076896424253998451772822008174598817468109831371651523947391172363301491172356139929825901734786735010847607745914621027316507932331709682915425461239677036526793629485796663268445945133744887329239020712634599307117114847452018869710806332543509050891043968238859365607701310677596115378697720235505425015324255808442879802835100489209150679162712534939932571314606711260237196353095548470411607317429114045988998524591670776465370443612018059293242305363427688930492747399354579355711996415054887755678020065374029561867703676749123841038741424289420901468994866203108346658987785338912862355223582567994101806773403612271614855768402453447717327548800778757684696000155069813840598216415368980196252758142440937749298850587825380526759876327787456432441980230368496667401703942208548749577533650710150272329157438567099521678377473675655343012190466265921834827921953240420983137096043571559081339655425383000806213758326271010898744362499277427403883170735701186279729962874929296855410774729321690343763079011471390437560427738294005079253650758456581475693347804461304801322005378358230837418621549646824634899002908463128989405663742365665000591991322634132062058350951687206411172730688808428268416753603974474154767063214546198720468199524178713447976695274879905963980178085387098786841417655247931935058461705861939526788229436795038570384943844929813552601624713515178560285435243615675620954612029261218439876859367652183525976961858431518672608494148788637358705172249366591711706976677280007800985314891065286412029652599537474268106395103338270684892508413653830575450879831144299054684533868594537827767132064545229057452545891334290773371990324007761040075779917856367163606993986455108336359152356918063619546895858027640904584135270089657453999716211603447712934494970047017766327825411099457140797313036530190753951467858364097878545181826529531602735878337664379559571492366505038792238449226803692597610047034106630974679789410977115840032547605926375830436500402199999188065030631086558607758501487356770308954141234480716229055392857505142569318644682737891534894288998055162743576181065436465332318600275721146264637216779203982428278112471333100892954414728937737872226982655349443426862920942087411021183599924643025864058831056478128071902103667564946753280947554315984916342900256768908864563960258103051824163948784695113387375464172029815907662882237259671907014656630317627239811757186572461239347498483760691495328532567694683542822776680962847197347780775787580936406769229416448245956131721900967148217443427611086058323202702218608161979638519161648985687621118199986330348651576747855520131616370390082878399179613349872521842561374202878346229616104974027094784263344757631882619885689221354979239075434736398644976247213203155024625095547383242069909019508099931976064828447998063973290560954818798881079945654683577152943897124417737359524591370720162031703339195393091402178851988468986891453516149126057099670061292240015405203809664846527707321737304134882418263901025065570739880781686868877200028862312673156840053633726551338067450866403227277689682983899651179124615523720406670742474783198983690936017924241801696304054798543670341881559143647037236362220367531272221014998044084649195038257994734034708309531588329241511802803084067123083456299059968662963641797887227371982375985433090024040142924526635324202674454357727788586970412105447316281489980346935660792876804592433006943761456973486401265930608898061936410520650172058231271008391402470592101851500504805327220449914709386173125061334521468551167676581837888535922277160207376245818533446433132133247935358788306234545736371652650334776668245166984488327160845921628951459064847302970512018735457229388840741143583724129136005378860818208616214942560900143496146299757484804037324079842363180560630273646923044479393384437015589977248631178257202616463404642191549955680246925585902016885356456978197358329829821510628884567783120270955389832109318006182297569131298788305275536152654491979889078217991031489627824397086354381519935874012216545466318410803967836377527436771959359764620591637838266355241777886894933120005499420620662024405505428563332942004314528679159030999869119662790074053042965537606732828980488941348207511552505995112097303536698495919510906844855466869988544867937399470902904121223422598926540753545195581335089346192857572261182736933888277597922734338453151628926898992048161314404336263850344683565916039574859433971336965334003056903855939954174632253098825851350284800254893404618084806282886300613920989581587136890674460344176309867781577285208442824277708663481571893664254391205946260185899294495352139367037719321273803169144683849381848508266377413482259676046806120477418313380345685072380860324836184802090067696049237519625064940517988805015818180856676184802945435670011382491043679898948971885672987743948427811189439978967389950412358225889915949272979262176679313144088601357817373658486747015392309915934683073184520142178249212079979118349060802510499889349868309015602216698986700208534324815404301593744231569388379235172562745277954162129287498873315204354364117220114002353960949756753909816585491245349666137799748871192069350405982267304140772901791378022119562563051514239238556170973679994892845293026514687380275444725575978103794541639699162114160371255213821056405668352747532678039165021475844375805260620470086926235090212552680683196170763792131170174664379694072567868780093268306048964512222270705901266961072498632327269391660094454097445056550767361210592959424674682116818425517746784140284691826884548378919300090364534657693080817313146931557359216644377749569564068957340450335681806263853092588977024680354702191250918438478221017112579352561634468282782472730190595770242209384867392149299473291945638499613144304136746826089481883484469597873131452678671457930424792488775974114677010323129176375843057630785389445747078441841913532624741012171735359906665453801250794131855013758798687100295898138735035852587000467941424626274146430929200940317913409693841306386916329158865192114067114218337346091104959708539367401819670734841356897536994563010395732523090355938522329823799359484661122252514416605887139899602819558069817874809154407853571476894461741013881732026555581670182490614333522460030774533195863031437471079220244878376288688413468962524482858087703625841338120591648627663991502845244207655086391323459005285452655671248660709355596361792635548627772103239347238529043632057967449740761293595294284166513890825908496592386974354930224061369622022915760814255302213020758366077172677539690922984211874404334482831217648501339163812795029747050942073295199942509465042731935937460046741063096737889000328418153514259234263563946785776297323590945888603788338833260167518101649342609976181794263322259006393362142792203864531261702501485352009180525187456540306277541638886320658545532145987055523123547769465613280008469024549615735693914904732789424909805798741625908938316210995112584492892082644290183589169313975173386044849818360976767381063444084557666095965480565735546222903552803540081716282964586628846389979670131298761098694701198982771298393534814523105639951716697636961528397090836422192132429613452061457844538085555618003311476320645408888070340448241296011331125182270889076418905892065479303601018972651799285705287171405337684302195341722967319352288667383623752954387530132003811208054010314419025227299911031351876816434420316767736806215473092777961779956475806361003124088053563566296556195163532677459330782488815228117229873847024470569339362427648946831826095921690485913901616666708639674283009959611624341163853375978916206403322105042464452036486268325900429621314025178436269163622245341537836299906057498584386859168479732540075624147031850409347934614157688734734561508263587984066580483021476038989719488076700058085656569915768137780694035393682319414617244463832083307920717327594691028060551288808285341677978949679525719289667312942896029423235117084533190397353485831931583312889283320814361699308190371430459279966558552400794571738728553354058845559311470547833118863008117422444311356700049618060176610075466962195880038317435315714365408120239030241164024511427790672698517219187403269058149363289060028077242339465508554116662831269266528399885228809426640418871759887331905936231437322453305557834454927663341049521495771680751926916869298887467549950552148382382359439608896985848150674071582852347772996624925183767831111385561218177380262382273954451865401563844704492947489400816910022976176968217934321623030394828419158275946823719310010784055311619492568138814409647515741085376892484598441140798643218077219808762813610412521780383093625810169508721075349378766158334305809722407157088401147515052372556207857802953344981972269222371580606476531523139765689848172527347108436848643513175493672619688801923825526808609144975886055707099782524772393545176992050035781599529459906310801201375931738935128482488247496992075132965985689419169243217166965207515320005711834419893567971549026503918460814133363463766283183567913267674439956097843763374605558887818167856955217309567107645190300991003440094702038813875521618712812859749345368241025825031840939750593715792830674057005506544985899496265716575522264953321552433716923415941912636112855088868431104834807439755653630382301913684039629957038213524373168293852209938599336665945028746193830207323846880175993445605325485140622970792429622857670125985983047592090848685655335629940349019037913251353432196038285608243684482375509571095569842145549625556110834274004414923653893860639558363481915358789363872870763758674303633739082586414584698841872493801095525235752254572861345217853732652587375319015092308794690642105539503633351901182081582930164162906739154261099889594833149453683884545036843015402959811532602181077279801438627467373978580817429361309908162629872660615118540409993333355623958165975291476966641522325025740871311368721699285404183920834314730092045738632336162147694486213397300095297263706559700126374750490917850374637948374996751773541848406601375560974604795863954453755669842218141118960285619455415298248361714675899233970487405715525053516298146327133821534078401107343132500028499280498537905143740093516882641781255965796167548614136159315652429696382334704380751469621365213120896887785070225211685801940847079822507037594144151927700693671659707519669636740637694656946497582766555639004032032253665984438861930604523079038714245776392243852427522736323113863401619133310147273216179147292013386373545565198287987536827456709941220035194677326553052861306545904682596409726075884320887992802320089428829048462512645407754039634312689813962997642779786663631301884071669573848793761171525473183615123196119893872032383105064072853068179747027108515645326389920100507796178555591097011189866498851655647087902028471152525181115823733177915014764022185454672204926057628568163799749975255996426284572062188659332660236714019339929218414731758076521016545626705428052611914155901278998910944601825572289581871866451904370768049195072715045595050569675402252323959294048551074017193328412338880670876685210600474321232526296251116104253274960584864694356468086871111155586507626128829768461014999169164513181538601199169102079798999488182114577722062355212070314970972192353238466668992450915628542123675119392774003677737783943837621840716275978207658393385723853246233255026866016363617904652815033268095675292832788862602576670733103301571985565507393144111571465403881892296825468353602774237607787856536062649970013624320563894596564827998509669479474955334430277467947942586456008849253017624437359174923476950381511089730095768883768710416834622520190086756647407649249509532708782517477500219621302616719800483885082002294131867633965896288344569476079486571879618852343400617356611587439918946210375324461575007801568498143341859823677865864323776675840031045001035104518871811310879839677110646705370093463803995135640615154791374797755744026674568874716056630088115114830552098019576480085645638084591505410518515670123769146156783202742656439912439620916463010698041859118148436825423074661844856113624306784118420644406808216192147616191057402799697569501657547987183287020618288621665326408239022593899156991020546419696340819243883709998073359984816267935801164519203364094766451352934769355375422623818166641417765807238793864309077604606461740754251128549844393661488780330778039720621746505358213143118071016409916373899426575391019845624581140686977007390172191176493506263269976552732296002469715832719855883125929651601810469660559921666922313820351745947414357184910961306608295555030575253838279804102274487182946940469154679113068701946990067802116797577769669477938206035344019891761701567302174386610884210643865526488424043891459016785049005822118476119159181292317161713954022185277732383400790183198908294838450535586556971787126515528712297354508230607894196862120339248212787632541010823833576293582670168319746675675426025864390971457576172929870264524587762034704593334067840482702547273715932541103970183998247685845523482479372604120743077754531765696322173960978008377364275496919007495168709117271660325901160137467257250476126964971307458011504455360913098839929050725706643638755348265582239229430354523660474067253590806075891417670814944065668629649961323046937840013668314239450728530230794976045985880352133309575316879026641472888589475778705370644969548771848597270427223521968883053147948505625060991515436831595952523350909776747785750612170934530346035355660089290758151176594016760823347730329574835614339553148215681768978689920686522979481225300093555350667759873183275387705057429290608269922313929575202884676735781573662765550104637913956040212540491924069322673399245325710948713385890012801068139545011238159029709265505523783982198781240158792573996408369223964654402434552046857396998823476688564231355828800519891237523479730831991146220811174493404826647067992940511883875026284259926573832334743537741726059160700092965307502233379858834582956573744667900369351868734457617417634153288335257105628579607243229132059212617786310903861796407350287968511806828969476135122761093453402600015841110022956904904517040364418065539585765794808407229160812547624792769593962040357639297997652672617319677618429856678163433513322611217729287230372599126430304890833200677431501119077397741934963035841845410128579678276283778663520680109315508462796315024099145320396738842821321633784435714312719213436224652213325653995848170130541106168497359377756686243051623676737310422308506578750800699594469631534156139588889954204223702253646192971199699641133850830692514548376104035477616750555573889403615237310563518378583660475020466201045982090903263605299419918754169499324897334632249774583666210683708628400313516311954852825054338280405294154851528702512887497463574306315251272267515949207487158637280568792636844528633521075068066974068299216166407650779971605324707478589035754597892316673209489692513673307971897553949502730401063741948179205748854679501361307928218487504730724587945309669030377656567115086049286061729499470349467467541915032246144348657415830616033736090406831063310314994318484529373918141765441895524356602884904232844117938296414961995435280637274731508510118985521606399951780436101321434785080345529185498238838585086975111507099395759753546359973677956606179430839188813747091507085390238582194900158631698418655070015379814687791818551375332671507183354840513726476226110822979676747888883488460309095611984511310162028982612982985627752717515686204975922350011716866087134813273536830583517111615614705621592694535992570968061353425749499328831545724802854262797374172030024325604151304024140056934740518326838142738814644289834148035205180214831796791775135393754660264130580093984096416156884952690242610204981926101457338099172079847410399006990646100072027863409971106900541750073581364553561772684743844275278832862228898199554141111895581050909524967939507275494919197027101541430744069339869297689963405349057091464746720173927765206403426286985082030701495904865768405834528397001982644775068095849616906612942111349717738593665607912106723591164359482259184672775257835713304172482022263845646922385338499478848378933128416976484817562654157016280808068255400086942938171605161517069399817360077598371537241821810923443058223394372814900918835888065208807581582125359079773662486219098608122935669575479267413618190577954448764543681041327408599125320423577251780830570271415069152264547243606025652837366419094790511901188667840964740855630305596205575867031266374029537783308753394956157599688143224962544500557157464737542952396352545995507888059882491143081427435344332973025451272006004444912254218939336202926865038187261387373438272987365988235770847228725503288361661623649246836536612583380851036172554862215698949619127358746170088434273079405028328123971302443894739854387438382359023178046823287157439822780601175004215081400553340387594014604987734977658362406472577040455352010245947166267753910116611898336605117396088457954421478926049848623764858624824889937606430154676726949404372441892254024650451767361499319614343829080640188384529989500381131272685773424646179127263122953760324948958907322469518525026987310478656757959408289209201016739182532436062093699464501223654917619462545331409750810636681194645886050377159920924369313840251471563155704602268305093463068419539618047674402750292971853318732830490336062273698989542511776927761288035326118933793663204765275668899263517303130083731676708540031625251288404716462620310966251914718023079023489547324326240859290007655513055297042365238455903597354375907013107872746118291041228464176106407897253350285469390178296066026495258984248017172053739150419416637808371325012884826442543109560053255834572315243062770235278986509906731606410118153433732319103403475372566370439526008763370068700704127617361394331337963275824132135469931899062038716370234483765113141340148930696154532271953727516602617198246055011359590506307899710054091328073693212082109617795110376321827737723739940846869451633001109503931697303801207301328684385169032362349816791888769284467909230736319221028469233807315183736295483589999802457023691501759488607135468321198592006363361276656344999803141387636609505726232160040261755226223253407265326525427126947780592764731657517681468732978443911000945606524588824598270507654097518611898816720963595833238889478075944045290246454555327816442818213061032200657345780371835476637498631093511603256332686904450951399675658427496317258252249973044965895488904442616386711819701561633058553736455525372216327069591176000973139321164885752945373200958143608408539301723327557046129275504854591802999796792130882465983012903847629952503828957572347670228449008671614252925014057268967724302407263677466611785439603052385404804943645775136577046022809765641550583926494971680222888168225089699969104170844460328457215865404119881273384749388884240069253773638485672628741599667341935679948616375460680517473369395383245600764044597325833633815520594324428623165755327249724584701866987423261324398219417028804951817018532140758239405373154420396326405384016778628441478266885068876002583472675743452086235592577520671716115381684454789102582269098614483732849004513470979095191356661482360990265935298125741367207381659097837239588141241547255164103121097818971132527470310320247933974609419964357457887056407514424274825299857920733800915374952912036676026217861259411406636518615412831949109305598142078650677029574586076645132536946599551809063756446370902475261348242399679912042287773497896550970244950504066055306154305292729413650843126706700859563341319443645881318376467545876812660493277772308661918920626012460241473350007363442993270211303338336203953173989731581771628773055226151783591252812465450034103917599817678646324541429565013955489262838875015692855525874247106072441204138658583060100475036091252692989482069125720550515213607463809287091021041043213771938945387749058996711485331108613014036367992347081404965225449469098831370785321358958631909540991468562706697216619109297351307089751270493858178119440264216710680219055193873230234470233753547443764208043031681018797512641465969500960959349321271555287384989074836624465787454704959947603952216511586625523339879444855454002579935997545218334932967394183955185891919394121299796166184778776672536854113865455221333428453247746638721147831167929867034987828289067763595746457010647555435608559881237137687188308901292318043787471872133845373618620133795293609896359462262235440792156665200383148524158264784517949311355123099624987984605763694199859943302500240037591816012631056916483094296241343774988357300535195628768034937035859602672331915439248951902173992645127899820940835542353321182183161309702910368172302054637376512334812538758911811571879061634272838489495013289113590895979828670118392315659074815444181983556862799680406438428608637445601043211707557279314526357950537680869546464676642871466417524557745259112091205065240211964587250059924361463168002971331819434802911924386794988899287390120256822055707120264814430628717120625534843496622511421634477026413060553077731695704499064476768464481910670923493259362783156746933332852916548619930891467146078893467687370713062115461906864888986713041879868503631338423552951959776433874778639928603832571955421396320743292745074224344801662714186531686151135184908494118758048448869074243200699631986755863015582803670099863290682091927903843979833584634641575008820457936278632101252058111416577754754703915166237700355324740814130752558611318061159653004686004983674185388040881665694828428810358902221456212045314745774328210178133085375541363906136730004519548138160915435603939582076980630615815350104347418969861805939154546508664511252427028720992981704276261241988922273807401885629239795601757306780200364816538390467094010597388128770039604054916308139749286424999631194689847531724939162434399848320280936106451479385185845979726878956234640989855720484288022098990342525839196476048143740998185511306325554184775967893224494425116792720006193331875577230406036638951466167511033305035959322922043520114435385529119201726703745908986538169027066227382127038955971363602783688670847111171670803636007712732572628735054283743416781689663259002671749886184752768279431651809734945285986009275722051832026422294778978531837461835391935482565655298151667700169150752633482886717098161575122289110451740438090409130061270945356801585713044052995168894429466919792797519382579999583557915066190486361486342275751126324267418218509394023140532922797057861046133904114351938526706754118790598935796467941423247078817498971868291515396490999722854280384314127317593998454725248108159787306239786759240639717413451051116834065814547365304261082171535086272495262588797121561916024718259858179681671382846933529921990734026957680474982720607473853291957992293134064529640527706020590064020475032686996105651896804995855380326695780223631075673739622520819870892251426994245590103786683650219644088172488134159134884056113306911853466169502580123880854824596157322579506047768104170406075194182434690784160813034496615387622850614209671237131597861859138578250511265887878180612130192588812596018225744148642118575663865635938686322101698909536696486347391518232004711105850098899602892875959147406313543282407846268838421864032849214664384778868826849775432199580973634872929353243498507185668724809196015326882349293640229989505800820297346433969530214355227743251576027633739080130686739620268138359369001933367970441607191270004613429121996368880649988799995829838723393537981438486285041007061194207180057496101389776645675785389311385860552908466033352264887226113972805998418947072326746198426048938514699397662943141880985073486115960762738130307649971122234512455370297213204697930198526835337912851656147475706219547109000033001008653580352605409845403030105758888725802432046281115921077078702595000519350031867246326095848279760608760066686890710894296727806007520546632469426981691033777745459791249257712597510911127322307592991777841213767976740613180537421717237770780649496069142091949300453707636277289454637911833369424429833284966737507793415403905816083061537965634198026886892013961050566110714072675899738509758543617260847057428058977495876982834269041187619925382899879705657532610785700223428351612134964429690972743897987138819619066589444866830355678714851372486816810293260608628172333523424938718843302931734481606072764058030518365530666488048703308315986631508361124368252271199246923185307641038695037932223815559852054663976665928917956023751611415403926432280816182780361032093384362127965365323951785713516602624584026433740532544088144888621344224166815703877677410173815110078037423299324969502452847857497805248073216835574648640344072274583636573893276529185688087767852500646194690242592264166615285753912541762345014692152085468302236809541066616388747360760179297840646642718352064413633231306369257601776100134093322037220205926543774040514340792679139234169814927110054655147973241151678982848544298361054684197004315600728102891812349226717495164413473686154347631225802790342842565185905772607000745900329485560435381302332688631705273352234591462395136590366307430862400043611895686336665304120012776390374402271239711376733376212258580491392377559249351706005740382939241852613383125283615491357540776582616663554508438135116717533151823309440263768308359984953736462677036744162024097838614285844324873580937950362344361417149888900766683013855678775780255179325253264905146555097764994678892371805899097998503738489751589673448257323771875580404619831867253749566167686822682188753452652521191207407369145517973659434073350365174280488538990301304525056307292434764625055241468165079672704745268996909648099274204172415615718546988764943080830711363121463079408053864324221068612643477443105253120926748923758923003653949109288897846322378235422326329189221139368874902061165204526151159301804959166104369764070927560770202559698342599886193973862722382521374692374711629899809069295758853856845551641192143229794474958435426212444538943965063437273388121781107634929317766222654829339357490506669303827817056486454275319964490410052726269055427817040205537567285118597762349305569431437425524482803992912472745523131799709377507816691716999540021361918275988997475436655205995545402630498748378117448197519810292546888583509835526555120962267250050801352413621226372763084208094974794926372500707903920615746355047014458350257068805466542853304946339058972659675280781530118831249390570230574869669005411844228635840424033174849992121832857793689359369633129383333271604349463813205610843225467096369649717723484238488124857000829385347942587707007902009772485143632269972246605863176681823150899643309114010442720626362818801937180919544804576897149064532470405144843516484742936824211778471097664319419729258952042761366137802518351260391483449766470748889563525050501755112133459944872178504108742980852361999385604474318530726370255129452598523215009195296384178772719026403425354624991511139269918236496902313482179787706800079604153222309430894782151781306396861358577915369320986193768648673967814477341437035683137313640700449324971769861053774782859793438520600677218783752396098652417404383489667607485558435761183159980608987680988652975766791790172618964320317132874272492865140437504441902372460195322038769908193809570907564003704206064283258490927621099733231266531471586392282454405569933980081182638448919968765191596319470309309896143887126128824700834981591401155289582699223579126696509015779940401338265120271610650704601435729583225652753036202848791697294421047577261589369155292504059370972956848773473431400806755747150695361219805143024269683664394096743887015554923281683824498410853459991135456396695299207671671655191830433884449705301650125734246622987079502095503380236612010355242404206792729368894860408381106634444529860563371671524355409368131021470525674914811955720274047191752750372613961332974603180386787786088837133370891938039399518719588767945114632214835999371846325058913408060410193808981966060561589156062481129278455049425088149979143710403133134535273736868515754775678906681204622132028396264767593970651093080879059190589349442600373766584569756448605740864753068860412187929040612054327665187181464640407405392898320126031790011309514772263066086092334323151251407361873735371483412634648977333716816997784403471275093020296668284712013939984410372766973079039384134466434300040177114046070075649915608621392911714232455974934078275689812750140092712421906246517547625836675485353361964010689874154424027310677774945851841823774419308790744848662031538403117346333806164804043697194225843151905784573121876148367416410072662981077412462691854158444032880796819826750091041779387195808588972390355226778830729871408957213005274886812994223669483936144751753943346446691131304232617870961456278571194921899002780817442182270396921687463891943922834804723295546472620505439152135745637661219528518650979949012772083071364075322977207081940758431589919427944042245764339012336271195341013650548779148803398753502797390635335743255504927620037737384608031882884898502676002491689943645965024062848396851987452475127156737450481584012244721946868044108256136213158364045241874212275450379003946336793137413720530932470346346200695389721249187855386739672280451006945321024760639613954333836117705625483517312192852682653190202156588234259564520746461611270634313179236639227015986943457672107404364949981153171961658880935375734019842531135039193109963883290581095246620901529747045279975950588216871362933752291276028055197402922246051689489238328033464325241266996273855514164281289355249206210674301942196405395684032733636621636681500869658767729837217128656459819336366856831969987646956704997048965833958187458561002104767392715664186948135837386864005694871284929414288696765393131960913001510780492183663665177092944916346788021216619013791190355869417148836726713763313993273970514309561079273773460813088866724123287655498794675362770035766131339158050182514964996519816238138661362106984566139714329745805013850687095456886881706458059319836020789650597199874761444802456372857961821125495205256052225367801102188345924210295854555055168280183656938398118621065811807557596018092231344976506509615870656751796474975872176118820485660522030286135186143671284610069948873292371156835956577429828131219646917660597508881123489056921594541200912513374452626848166812942712966143423057670204178243968848804243555169569350736435229144299346674772847715382528673392149877222154589493433288688867564865719158789615492130422612524305648219145774908404560062129968353307777920160093260753973535947687320115844752446316208595870326828459514620463954688690036550640902004965691798164804889715745939158088421967000071311829225199816114237744000228136772723505724142794446785243732499903828768224072415499795690060768737382342991252759146172167399136208405954822683640061630803106305017320937115090509835680025172165052692456809401282577308878267911274120550391599365277172691311841889034342040101130899753373258398971158747816024815966527684621234830177354431757507601280018771380207811100655818578559725937696950075847379201371820421689805305127983655250383678945205253917387146495302957823224943231624081417909859810017837648859583557455913293448727677649280116785623661686396927937048117371446158526108859104546022844434477938057954551953795927230287708743152065591036760577919358172868370840760569002951759310807010681279166371116671684733392193273301392851634744817357252640636975187565325574020222378785605157012412011140089213098952828039146824564481990596876822020633738705306172524300661132916149101738076731761656466421876683076795728120806067461660507815260588399119846785697952192542623724741854423335698915789436912976006560890930968146680648774667008619612442402606412239647314231209128507247978382596314113105413703421311856587295368923892632041472230424879472349182735815320181709709858536042376158241409317627324775097772175989516603968490845893539872557738232948289787482139044157389204543019389221513392631903903105007305635399543429562890951116788641235556050580986061939192755628206466656969690675425114115164737087328420097940931818134204967057016543782506093026401109478303695339802654653100653364012597028489656604108875898687480168087601203824864614336882713322756375130151998515812764717978616000280639604842156942718218086396839662107699221747835675847631818444672011922930132894401239234408316574734915452156645129422589635739005631345028422375569448884457506050829138506384903116331308908298247349127272834151497728520813714312768221958633633165400411881929285848975512966018573710007144729047085076776982126148635342433270808863500230281179061834883519320876726810676008977149624679392266681332589866920901856874267351061075373213615981145973328828137739952227357917045181550257475410475385634631828669869331418329206362243220897704886218648796389999649100453278651464388056021010194158379003582382353589820393036251319451967570337843697430779855600964563985136644800985506226261361480595921348023642506213799480933695740915940951636810983324345422915671945038523029437986727168971059964660342173051385914316111137154845334211641699525429629592127129267181614580566104081988454247178547547911819804797908450187168727717246015123577031854492382038305760851316617104083780299003919964146140334886927419822554711707793803124688621060116623271939508347597286850856915044611147509011558508631168571813784413072028595266959982933492683300258501213104567346154293736674794699520765519654391285401552072282519702259239408049061882558298857383447063293884938844627603458911999805194469262825334611271223514375102230627007962569056511791197932523077442285957098565675528959821883696634139665577174123478955740750776371388836292947409801508621438373418342738631338520386734340064225929451590736230756160919010233521233474324479534920190784783582556120722577288710908803479497088304970659309367763610711330109565523671408449004960803612448809334756095758005119428742350059867326192380320962353687005828988570569487678285244156670434559924889105763183478105307078570188402500737808827348969185006485831969009912640242641733549836697708486086958441682243752224646129718528308151036367097566341228316257845999143382792886211241707533374148361322932406059462184631763958886183879129088489856643119954910251227515572048886282813202195793474880150537199580115135958722719402645775352172421150440772109961306070487085134869627709611527155324879660663665076676131824099710788545438067924030130604426339775405630645050625190134949867302236064522400270573345111550257262309718418693960097765864172600597193921609065442860621563194119657588745298986846126723413047351370073404371058401128814680461602101997989440953867561204784768513731502681919400997061880640553245976647491379269827774372440510989208680946033318145068130842685234569725428017092944701888773015636833304307223005945069436626557976666057585218952880067085505219224571926259002736067695064550607446708621015976266290286077902006394817754742570008972178088658449624360016969624967287685559839539205133890910043939230534701991862908376755656561001402178302099522313584362804316241626290743613746103273471496719712664365572584835376814160470411499758626468755026067690747601929004728040794195349352302538014505476970078545785470194247581176758692992199575726383987000734864441688178265183804349489245061225382135767892879978111735403502706312057119588986379323340952941620589679094111039674557952408605882581487628296350660661556303414583721015868903590035197835372332752758543115447747364443984560444002208076384028581685979533563786906988721912714964287549967322862780455074652077321062285357037922904943644103049199996034467249229947109599020156347895694187901648657492055977334358168798720130367937851599908871400997655150474244909687342668060879353538038302062948336498604230489851930677389495227632468002479548274190201212988614226068966484369082841589183945693846164530965833269002034213123053829949343734089986857969130673173136401234749713750087712955399116949420304797673192969741625715449418562931812454458750877957483853058434327397193308882937109277116596430587632895396643060107010003239959012171848602942375470769797963515097592685609495757381942784068744403231963571234540786075533330175433018559980300376339642981407952356742192478076624935531277581409595926876434262488418919654209800213870253985432430783704246042798538111053401643384630561498969524898129140073143369813385196089550680519438306153253373325384156505341237707524695273489566699231524625899230265411638909413078275073984495669511190929349323000749356310054455506581458702027434777169113728537867539399302493241186139201601572976299833112747767624672728740740264087274583634949677463388021794675958005408621708853519144649238881613511320604685895050505250992229917639649907859761259131638640380756945355049127819991071839596123631957811287334337463610778362106110562979755447284535963928739540410028059244871191302339400174440637306786351337739239670049222002136800581690107689163514807550769276379080519796498309150798543465230951504343859976151854450858551081713377966073977018530272563143634964369265069142735511762368538905472402303228487870446777363237142190233239876639853420813124668717901876493218042560520156581485380225823888315164622966425852212820356271799689680936466020953257870592702790719463216259114504055650030273211939336405900353450981657625128761818464688070074054846320566966418154370095419440163552612754563137203932196781491066867884313556857498383238497738372181824835707124529375149516626867300117170289636801159075580360486647084740096410166753296532814635426804426608160209377251888506700241438970013918774046308110868618660280878325719967505338849885600001266365163810130107896874952657064872475405772998805176056084153969135871757196559977743488854867566514070267241060642490202108832298488121117723713480600416108113392921566656801303284551673457333192908524146294308222187805945905815584179319289960113430545126917106534262772507227472454230963344557521162739542148039234223559066117856082404225475306314578303566690784668079241566079303909852593846665473480894293930878806029661839237622628949346160568278230082295560974360227540835550515808715187424718659575554645128524092687481686822595603541995384709102542488102121273034987005046418394130634704707225485935741213892012479211690606319966180957789468878313421697118968464749360607133075644155549896694845476190053933741716945984634801695315534533552848705028008803948302580332077844602215405605677948093981347003365036570336838186418281197085434584118609836717855075425261540634654215157116519606895254021543302021665743998221037379232598395035061041744701721502713654734576734758686074417099692767229601243618718445592838507099538481528242847170841109103892829060901591335018083013680412484280174754963397904145742384651609451905295171653731813812076577775540867528008681253811162429147670230337338994170198438246368635985894345386925134851712072696109415237076181294123573658925739340353063801447158422816011460749896564079704052974777749139442185304016201884586080827012470985533521302753079592469075779073467272762626976633213790380849977840563251773087537484233732474380908269279685569341834220943528440933581062073621772721579511557604064683143115405312551191525202118430301085198206690327358359047755250844975987590039871108929383010974946053574573535850492534760162102798428830936136480507013063424442129293563322568910503275919920267984585955278128704258298220426283569869065065055122046496884169531423061344994578500881192611610927793481560967750625378584070483634135609671252168340751830238171467037739465439857203387504543043175298367847869777228856745001126533008523529917486961099218703957865716415213701869734718077094827707660241151583710557714613603138244351646345915422323924723965697947347835079016929636036485803035221802818236221154908595630556945137470852951644359968271767319883757312223584682656212227971694668711279320575537091375045897794850712253185529417672493788684062567445919281885042582441701537157135634589527691030076081731061091509174806179705713628134876016306868011533953546786008938988906406067474358088241656863033397970346184964813303351698145516502787629130697709243428615989435168339982783930422559286507088673599183996353566319644977356001133039351489589925065996622496624696794553273706671452881098548794782461420512576079819959308122330460531628088191837049256265504432027841233514612303331271756505866592694509904597934310538675488899625059874038239460156914752634151386945625745335611636422999383503899295402018359456553111864626835775097172106740440170082990725308661404228762756137746010466344366621276544961628864080793551783144745100905264674970157388817208489159804226337839197349674420472900940541025714545516582055959908112175003042852341736504152734574261146216336952755719437131948576633507306215555198799254921864704726178013481865721953470841424606837087306847858981001394326243651654337768585884243824813061214526561249698405966524228752334305896344777018190186977730495612482449837550201204439398484038392358500682181422810295522554045648703413640754031461214824739259122799029300853634910526857731301137633775284182217941864513756968176146770306426011384606575452157441915173315392568607700918143723944481424971540738185311962898355997659329536217451743861609923981690225328612911516929564982731279589866689339231189732958026800447997678131595151426400762997800534655550085975785091856109550152662049042648222540935865317877619630570079807954991930649848428886563304982439260515975164921399645900460553141840583574520749617932193804036050751976573511174109240086679344710503604581234812561114574071680918802200500131161160658902089782399631737294946302735821867970853096576637160406576097522035749175433137302460196741113898014642795376537633372245508378462181000514479635378916093561651329928567533253856253283042077191621315047609463566740239960779675015642821885018864525892072071236311156575971131229617425922700095865196210010692034747471449396758085819798649958078095886635357673888640071722202957728638411097845588082491670371206517854545069215571103159041595936353563434598198133717483221832856588617005343623650886114028731267925171153667245816379121264061058976531018201597039889844243790568125313069463556940155066415070078839712681443825029879851758952573871756188382864713008690456098679488901002158808187746061453085868940527491290546813685195039178885316412377077001940752974294300239765044401737108687883213993700700465046914133607174111569686822844608889667774331268741483478922827550630080590645804137339803105380626485738776273474261735882934962575540909865151997220566902325898844915060461473640133191523527638062868645406479649906355368139504644101756130487899465270827168429156439723383958753962299818409153526226529992737732846056870882246103945690364558860286166612693614886539041533186344049529124819041247780755882545650414705046473327805208668215145544667194660567614537520984780216568541992555882904517613695326977693634684110710559706593900678578335831868713339935785767482070759376847045059279188480794357786530381122476647005837117514546682142080010515001643227694341198065309755879299536915191759044084610559608597022503668083294958989043133493817840189114673397879551463975545500411879713781389981683829861744616190095068391918708416700856707439542324404358994339684168907745255274211955944871729341101325846275267749215199387609347207763878063005879250140697845695858842287986270071052407370548699844581863941954894238832275085713081644510304011610351847705024648124576122475916848953264022603046584004249911596576838170609185763214057517545774637026159192797451766238571422680341305717060318099962673051444221740464072781313045956946537116088329654465366024090195704988597827770523155795819647404861199040148670980669183088577620275705786115958867448291358331190721643464838899268568691400345794649395168161356013297159782025736270418684661212396674053292674884195279030625848897635392845426723346173625267341045506763255147220371176894867917748439581923294668800606544554512774539975031821596908889918423372545861370756006440764598227705364071142327060461737755438889989496044401422712895427049934776422398154797920097903176957486657848053626885820239810038846172492397650805421036926318365363461998210555948093802948399610283663938473299545922778309314563123118983885311230142005250498364028398543098960241078347932587860195343803135342168836970867921039281424315088129268941725499551978141835980170806854709608115567263964527022098035166193748856820478893571625544548292426049381843935198536712267135927097468870828742572216142639228199334492670703523758098165936468470304859436581981773966576879541835603961473095796518110560150604834770710787022158101239705054562663105427210352822595391825873818834619922631201421235120441628400016303675146315947904627898443804776378907885796384646631025273795812502632639649611332661326846279561779368647971452313740805195049062772746086876657768174028251381010561695195032178481578620658843050990551322400263853152999119942046533186347223679820336969386528828120525297672838534806296569345142097165945633419934402299209390386814452941403695004340216683420601914810466128044351590325965257373512558791674762433859042811753105238896770173848028038910848148519381169135709683377457444839998490435998692825744360828712944973539149222429192463339159003541974822121552365579702391350519458424839887710693532858737098586044977652898934158001575001327908396771925215952296312853340853201865858550636603980558026396153472666333123307889853527074622676428179562695713734383766925923312385992313982727262495445540850898848847539995500252828614326404551153138096307976227989350915727027125123366340072721547682116531406572238880165595204344568449109933441724415945909627977001569808436615018378081745283543784975814690681535434515454998742921221899018161404665913776001571075791633502000661537523306730624713206499713301764673773057247892407461257025233238663065016670153277179947900959677336042664321028162420471179389511209039620561641274589523200149220900296454768707604536087586953584447318555073599848601290114836665681532731422145662964053101250683174773729233470615246171666961929027121548012754199638242476936976090872329930521176158884816907989437263269185370948801606591842430434765261352947083060882164942516501186312222398178857087666604689296356967746539234325509758919099648456288101011457676430304006724211699661107889415597759679225806986005053258586317581289495523397993143498444078009218584262010622640718528089447620898180010475771535751919535933371193943257602250357537244743221988282045177872914432972304835136993085760291233539061511028569067880057848169277451134791716292801319801149429205177757379914656562171908029072237012342821112170573776326657767332636621468069547905240350631686848083602541255172588522853867795157050066960996370763160352214577552226860533737548230705518793889618591263873307858608262268438411720349869707278572608705236840893168246500466754207791696641312089352010911185480034505571184796866717375745085419558456183754108700434648385169902419281627354401370753236610286979280535582401015120435070188781378828106528225191847358280021743804268669844427584021644573567057126593347827107926183832586280432841128516195005698188174508499442317074242299499392748116750739648973905467370757087373539878195121585910241740744563194425340872059531046038152691950954253330020075433774174853034297325581772136262706325671831532415859571173131080723322499388057391449723132823041886324132584497681862177131617454541274811313939582899093217370733728655175278941768351813698093119282937163625321315988651400176208073757512263910910914851628661304213284977531664562258216036685101223719317155090085724881881742696213202737463087141456190865277646423250528477227579088026557254452320445716253146868857109735645102966675811288832221955578804020766231944506840031235674304754789620081728473916669737228007165966855223608581284889749390999154935860206110667509899140301741264434476601687141690342760140230378521003063743483229602402557386604349888955287878128388189550793975029931282092296896424657146620691369126858493545624837987999093389347603371094210447017196034449855901270435563380659137551133696598676248124146240161839882298291581178608747761845650659611050768794272235492251118198626579139029606349589821453910417066764143119794963259064729794038479034757873750401660357204872148403487474111619223679188574442086188169587580129032743726899762140738825893776312654009367909362322937028266806774504540040592867309578076092509491131301200853152674211714638229751919412512594956491626067084459324111405175898194726344373863993646354935591899138553921336303094130252592057612975249479693754294170479512501416151746491288357507674167474642484658286934825818486402384502694455927304089178511257074090471755323120869394206396126004485876900292360991248711980322460808537170928881068682890158312916934937613336150925426366263713882346927618450445326339720085622619204469548055178479591513804627737380718857608532420259620009279125920348824007203054212371106162106814722741954600881781579305931220829234415475172329667493341023977043653899485781549266056032149771456716102498675481736560291683143620176027480923632848788311829535186067440960441127011713593372231382253020438401666382882147118784615882108268708295417838672107298857329127576604946690053716849834845884039416443281234834275086683685563303999560659518741376167437837446437160253509214043030963063704444357080012428588544486210981429366077596691579830726275374655294520186861646418095468480396072246861137441483103777679182782982183086703414158537836105055016942850237417542808424114811918681142842689274499669023845438830668322840776748922579904284316713756831835934476515573967524680699714000250371175103834612783507494971342220343151088060293224046097578136329767001975957224007017427702102192915451919514895045290834627301691552128075932826039624696977921873044812695099547959191422375133451598753332845838080924781743210623224683298387933450890601660016722110528235480274139946880289198042449993747593208569053548527262520991143874154330450555339034717629358163057727406858099971958253106343231392859493362409259627033174063833418019148254234421132602940410411831775793818681530340605529766427882141484173881206238798550075694613599494341462726941795721987314876925610619934456798047147913526698219553200044502836557100887896764758900286942172063397827940285460163415167123165171002655442947869137950586407915522743627190507866038698723268963530036711178292548102813912758815317399770979188741386284810074691822606805511340685877213488067492409109300520644985435901116191271884316444963595442989863318019147426604602813882201214942726325607903383781060383792082884305831517045856627720584751464756988371148087586888828411018405694011822684371093139861858726562607041825765266981019249592506538997412442334995803637298724306969390077616108281791677006255347547512518892698825719932100936917233823104711613224903416779361755620447628700484431886260192302147503246252069289216438239632435727201808095084482348371258863017390183022517322901029165877706373174041163371707101293064325772532404045431700646567823441407741169931057147858106996114912079767704247918518540456788048252010319117542948389597031088020488275083585206235627710240030143461298619875262540440139154746400595381283535655653854806496799462005010890949994640548154567251989299876185438930781782814270101908975654598707612354057615372976598419979708918325321632884830925861487394306637106760516483626171160692723649543873178299992673004289518669641589091666678613185642675093404577877286954129362263937434634376507437100266120176999883456029371564368917239584898717707915327334711557189564016760707978743073422870187931728796751905537654323268014794786871639890303146954566295823852123176040924623382783789466408667685601447979540137577394465138543905602932240484332396745840052552812422259490076796561939862972917095619171398227184156834353299226745596195031949306555750054486874075688039840613348828226571876795103057689352397350750421661671986333643470885105096627928840007282227801445760000325948182323353205818397019218021952531851314006231935448006652698009981543952543495886530731717478570232782016728813946992391805107941070835266044091825299343580994024695312601010187724609298545593509898394164329149816382754905934650922766308094450087707710806580165121684248019075379353128676306909876005251339925478214339259868507120309158162957595476085080531207176393861162009697485392301668636039906185126550511764710153617073041707631330638807021684121186620634923537131362342836469096564087425615768992360011820993477733461700083824486654773822478306675591041053875561811236200172576352665233373654274365532192427364110476927298877234380030952697565525148104465504583023839496827878691000329490839588312186527044440000923506611490229216144001473978573344688114255414641852669095693808360956835915617695753924473948653813930168290254676626251839419559062760314952500476012277804594045016570726478814562859127030281587515505937782567054167031503907627703452593065481678497097958712894134724374037656524473982115350125997508993738314337370006151986141072301673064238239938647461347239205052856586907631972376111697489855693944826266699763690634694358108538737185555178696579296457787037882144052280498582618160876112619970889898656063456722352655747630391301784145153528769075919120541435043234541443974673630074476327501413738923875219544889356666677697059247068363442765791116172734440229311282483037551839501545867697567485843424210212090747529188382302017119663274938073072998822708947471781333546443084584333794449747178136060271223758348695818803804851602108944062083959450661004616437734044283753125422023199664473713615271968693981464202365920423610461653026591479922448588559188480938811079125273961299804076130411036873599900954985320780722172214447480102547059589937317577404733401010931891695538930084036514115114962718759266876129537863016832214640272735948987055848075992932838616808696796614937690601512930464769429455788632568270167245497247880612128391762320045053147833366693202649387986036528594862536374448859135971462698948685326193084250172502300156540367648674440385881187169842866244142337070130956888928944654303784159478507495298913097506979459902812151831473983564026087569374705790853144641940414256424484566567908415372984351733126469195263852072216698631777120710381746725370937001567693456477822249424548120863864612635028677911814739660871184988112171728749023886439758776594983487674221280688582072308146038125841305764296075571034748227582293012106885922811970263954629976116456762756084448898686120490998225990627077955113869276186226871280422010707095531337120226967437784793738089504195693467243082625822011124398329690543330695909710902467584947741279199181442056852900827532713674662222210923913683461569140333141161916637025202961448847094009372978717106362767510489116864983442420327871737506831287983918549855262202176529306860965804709918484667462071198026754307555438059762270650135987692292685885304527483126497943046764442958036322010528383855510442516087422842256404006965983116643097165672107641087649212025606259609369796712758367966825064152045243634884791558589154744756751200857249663451077725266114840750613547684856656179200328942561978414802632470904227617224635522933679010343254804472461394162165878727627017072381686785923727262391869521187208913394662667924552499442353717329203898816118375826194095174085208747454120972683182053482540885743850863585245991000119807802412132635552210294944405935959838116646347754180125357548100922462553065151126636116844046807585183578599286613735737922752714571118233321807469660557734361694643649990882658828480671986858900436589770621767258335976855764180207615117033114987145924061664623699788725901279204656482614211189442899910806933820587964266748932142794285352187087769656883665793167199330266205301521002646014678925730323736702689933591921456335629561193270879525891087706940218593698746745650115907965196209080798172967408234470623305950850246616462725493444150107844585203018192588808454315791924250135628570609796698905964932269137106336405671777116034502119385287024538365394083546958072782295828672182281543522943097129898107652806492662886908245397803679101182982762330743812225311559928055692995504673136764244610190786089622775730632935934867501721664382452274206496132210702822627690456026689015128150271337081309421486275460675150976448778795322549149040764009197835562928726580352285226801536743175750736675943772486588000108338686225522850623397077962908962976422744178139132407979521305473922481880640494500394296878155672372794982049163214390810654496381012041508899256699641886292762757876502561650820023264963069675874657437251724974554371472522540220038296488265180206568529002381772237410035638510457699356344130996742069309068406793628866690773941488570818583854184527029405035058439919168736497950705419018550388802881937119714423695805597587271703526511729848858174768398865247495966983259136033583565373215637195242539861900765573165597715119564106416736492579192160518383104051428560616617680529446758334993271351964615006723724534746867168283070676034234365480840980122235675167928645129158342751477806065840045122135807521277426910050892790450448792020101846281688252499291233715920316273498760223665406613569695850150829166588624705352227994182606138303781766908063116271506460779977536147501664143374582289353675652235397931775021206896808840048329454969222585919804223622674739918553783716860511181037206857642311804631955291401730983664182780414390282321647942280822523170081569304176984195742839086741917590649216521634748503768014855235737335418143684997675944962530238377226746932812411221119863426653803620836047983247056491989861390928777574300882296595870342988693943561773285950498533089945824027960060180232454294262769659571983304485761164341636763910497753348517394189207125688538834131037163437899493180220396377425014063589038998505615806948240392060750565755169293472495523760057690510755524638506615417030286852466017283746371201457909873478805878443573617307598377227792265974093227035703613399728727911722083313412896075013222035514767668139585245740589849215293450892926731522880940626930950399836357234166223302321302820489817845303319555080764854836872615018376421256566795864384200383659829152951026159217628257540161003123903628178250463153110885741692136289656620286341888616133381492007104156513307546273042830348988518674921133031249183829566178107308053291547406245791782306518867255264403606687659235560763559572810476087166691070828723672473788525116827837484273399233724400003576595111430750660021691893724391381931130928950029755409832461448998797918519999464939608849922497825533264201465417737350590811144690901680596049310764198352307221399156035019837997008538837237464433949973520207030594204616163778225825829718537291496091461247636338152885264604226475638010623992438696048702864110272484588712323381344961065249945994017933179994123043444561595956611009242176515724632312641538627702690620704776305859719180057010247674065697319607537632247591750193844459087191857454832375505979950656406765020362569363368509928474865653309894716701165566604862500104872355573507463933303649042826310402147660077170927819577916746439684851805393309355335109018373428871600278918912941888070640206963147249773990529278203414565256123495590403376035387735006792194085558335759440461435777437001062454720898314426196681569739457320533405521788927611144567259737812628179566910928433990468378252926804430256429936373866905082067458358774695820063598597389602009674394238891995466576477651460795264845675335363038809008832212684262911712685502673339923475952880875112856929955928204399177536630725602600170148878249939565504633053848765963540297592141039675010621390016532507582401568502302183789434810957724241012084631528796192408349344405703168524937053501231923821553600493605976867335427692059504807305399786670477087053334443475478471155268726785970083250994421549488813702525609773773571677330472670649263353430390599478246680358425763030428876292392690701159070166500712764235469387664584079557331910718811817813276874749109747148727009875014128967645780244498190359319992506569777093525906628749606702481698787901287595915074581502090497516488479447933494793512184779088677792326248575251389532869629745432779436161142752003826988824980074204074362024608070952539391488583632590202583248752057562726127581061846391184410877297287563507501691392110431679521473121954882209775243147137671569920442839901181806248576178678754065900589793645005737759669136661563351724597825379772999827916863229721176704974818124204695224999774968066579138036169989086382858640453703430196384281984492531984374170720502827792458943333019196818270628623657491006832423416712417120427071641746275743582711930195544703748498599550626201393302119722069882530425305243593114386146281289846017371440076542430604659718103889821551932837140721377524146673852528631254994251157887833818415150732545839800117029108577781199719573972806118538648169075897306364378646966638056174138477392348125882825283819115334797757255355399355458931693859248196735629913144101885100033468334520992601385353398016136636274855151962919864024387579553199246322300744653696102618084010318099638970412354660794524138996066824332977659964102687876961786191111423067121737098006307623830791649167678524297319935026752337033473780893443318859463814672492893571165881172258785618098051143911555656181373964969579800726457904193288889176047579453220388737443904402060174899481278233927958865547683827479280737560346528712446704154579239666065133913527981902281077759464834024914487758109371393526685463724381353380958953714962685342631579327278324472403031153581027599500055324095340008952515016413934975258473942288588073378419531041318066116899213269718301894870230027427043573200355227766510403227911340656115377377891076671084232233414579779078312299331103823090662540327278651446446044502130932464734711517127859991045872652189669125492694738576150596198565523483992940315148497364518090832734968661936440303542676145998828634121303663417852653367160898607391965664618997544006345095450757290027608094784811549766335505118936496912404341609935050512595974584848579880436004817314879526576167209747093639583604470413546930034208348603800859059019562161268080614209099744667330917267813396976941109815213800420210890014789076839924829310619087298144073377445356381685566560703711405444232827663153430908022416243263546163082574360646956862814726843791338733067273362745659131827295237295456637167308765235194109511914712979312307239021576050689622006935410043756093546918093313708689395930427059897681732643920252971276872357711534763430992526802247746568516292233194613789737759825976134740273471699866260129574683713504340179960274065955873398690150885671115427365756590659316387182849461508138141547001024089569616917650659010663305689036346672194002608340851311073974131919204989898368186160317792342427413466111654235831318420535384517603295519035354158339746857070362387258039674973642383243512886088828011898205846178198498080806390169341860058147415269094049745204738643851702152392193326067810704143375814214700027495171606911705351805552281634342077808189951467617202868404172177784417594143881996261003684284838545153509363590457486735423087652941703551869785939717698794622882201602046037232818725957877091461541922521436298290449815458224542585330651692698966237898476036985307881821258512996890313222588508142539912436678059532742228177091664041970601483188556276276699206008467512942904408294677369724809538734479721906314954887986929050037749533468331670562057997147313266083036435339420140032320687711108946788927894644675003957356535237759199637539341661098387977380050256498282224490686810076916773821585179491823840457649570500342847189874670991253358899471928024642308912406115543068397654853294900490039759009987356156960406881515464846074798508340255372049090202227656466109106376566832154988484953111454527426374316905493541581322798453634366899838306174470612578312300484556692409266005703552684477141959653141143543913650238108503717278111114894425273836246391019734519081463295765979708979038318609774204674659676368068100992390027704490309813789759217419373950935400440311631291336059495031748922893646967048694537957764159009706644741022749901927307527115572147509231331197876791023504337399120198022720715693570671822264180465990575867387242024575481064299796054023792298465212117870741779348082597816860599867816360438552899564860835541300426935939001178975269258757520515081056690025888565568769651988681738369778856850184128750520740826451919081053577982752875124102638701553249886378479704556315461507255310425711424084923842788934529678650311040940788799678246239396935552581450936754280076695003185517016832901051579671384607546905515572935405475503949605450063792761495553947331828388244542116011116159864718842395497054660823228144694932651850213235609633430054074049756660393217243671000015600336227336915246073633824224777234390078086077748030743659324047119416185103883080643375041181740461203722643710484757861984035908189280804288489587673301574759803092760591907393643146225963463020624525129454569439557441265608358842110545100106654181809303272839390144694224425410121105703565009557150769639929296519186106066243412628441134786875084194527241653383266841565973911030640993585211720783178253046086832683222376871886040622129891439158789377119102523343940643313419472609235833545227465282109276140653273035572302059816019814828969897647003868467439992849745830083847851364769218448541514516617218669034358607313970082774554251600917891123092817498075070479229328324975569480131344786077313348476187775170017330436110149462656689473756641758758768188543806410343107095836634889751252694860305435202341534585005397271630295264774057576120925688749654596503771075689035293200337924105543131320167652930696550585618587955039610782590240711827277828234281323874267311586990711599429157287437891488785187172434301161909822645773545751951027012992803242802700031700641927223019729217482645814285504432396129297775453791700152816890715345242483781202422163575781834310913686478938921241081769537566148446354295933000249311666049925904755685004321293515702609740799421035348089168937145445407294652843766191028262391745990154491666371723821397532116539988644553672788982393933282292557593116550122711645202843979138302595635820915009416660552347352522088019489457879194396748542208130404471496235647846932255640579131141953210646800994352183716555258065596644323451007910537804584712585399298381908154459329353178351698017472710810596671056618403384436804358182530349820040229818188672505039956556398820937206720828642737950513449716327513703997598890796246464413338588814395493127034406058803821662909698637989061963401953978545285881518769709025430609524023122134611592057428071310080776698232098281817936301620121522102707781004996739158246229617965272293750960681948986498715528489360558036965392719547226165621896392163514196140367593245328433851972830852620697477392874155572426133795611377315266791789775348338594429181933709645619555472425146522832184358279003105162015108731407266602745035984457166790767321031202946725537208819402584062603220802293098238557380590564774853134991524984965229573319133626273572493465335852054659451724775536302900706857070762209549627156017941840053377761434739813675690870143880890352316591544215486858657283952169977751396132041264802698122349681386928300461171144624195367324919639716807079059732318083270960367025282144771079479225683936912902304691823281074693215735352434788494102520365482161255016779922184007525518869907608557515127076351063608925398143660291710934705581989511932393264060890243317173494269189913759920591906806721362029729723367556671203689155490745195337975933875527573871580886432408102609547788578711213760221840992484706460412846184277290749053812194750528734347408683690910544749507047630003390996389185537109178178230822561646015788665092217610868291244561893420085918965657903252251814133601462821631315090007260075859594432510878677136315468969414901371319405170399956422379145961755229298021347845578175870625601374718891806640789005472692677698922561828944919223540677593103852295444384843148224206838737905758251267177038882929163662506108842663687054430635057081893693729745790656518851960175532539989283343631972603701003316679722097849500812593826838916299311350848210650865653370189754274710321089481895394310066889349781040338622077530832378398557272948355960881081397552561996299744422210161954369795874293147746516072316616067332926328384781805316827302472750462427372765570424266542353431562192015531038754062916658056145048478202272521174445498959802741955330627676814638980129570433484301163608395413229005056534708037156170336316528816221621802545806194534566440878748732720138941760261242927764487137339676876520118419889793061608387529643583800386191213224785446833112046605457360604300157406026077054514800817707834681832811853303442043459966077691073099828144308376106304675336580490807763744753955610381217915943919883062128670913280386098818239861488851843246337460873101749770429543669264087500264040012551212545686434964596266961153731215911289136763933348388617979982335978800320691934057489770596934602664990867690485121053449830317588148789731809159010488106811532377402620980403996455137827436656236544770807021492804060786137760122590247562917351743042264223906544123422207293418350650169277885953495534293303159064970386149639730268171447277255344378249472837935290540646360851138356963878921391805085333297767151510040483149823164790279170240095294164000893034554699275901256384680812612946953597061780209253857093799904189907259859320448203795812580189324276166973913718486207813552568563132721054492357440604756869010132331030016741005538784622222196870103990321392648892781041487459914353615244504494851176398596648236026721872378595440444956577723698210965277041836427098908482363304461596010222455842042953870269251501601030172210914374044740156329071559685749722010329043795417429597156281500357231264169045212473663209839808343375087112394766281644222960198406767148143843745479189440989990809477046816716138319205841607985538298576548515160367950329413755401358506237239832220582548154579956301920516268078232613599514735472433919731446397422939528482689220802966131519366317241915525929777946878157771232588391803515520304707030446004081538504022450463396672025798243549594770702472453165929105125663287468112825736158183189926833623153086202458897829351273764897181927181895880491405730981994811425127129847753101719768253301555111232382585066362531533089781794791498367049514362391379558290798227166082545350324641948296793983597293900152590963135553252281831643903662116527302544234662124926481366939595300036651115422790373035115230554648069443566415401396681605642295100082794617405046325012166741475162407586394869569721127185646406385735739316432857166786808947746805787753210416485327845851966759263053157618374348717374409421550130724262588274536319826575121412927418520038789115252252357060614934549854360532166157191881414328453494829337005077550039530795871501277783861792452621703086907897825208638879267094922614105998575976705727471055800920383968489625139656796219600660789475292457866706983804335257400513594565874622878509197067888425820774564565237292822130560424623615707149945816029459040463550892239383612495807807965171803550118323461925913253087929193866188019653504845986534082498923798471729569901514182338637572431504898046012447530499807023345377628381911462094781482406084177778839074340759528359775904909337656501101674660465156152742048211809643992934032255839471077210301576626606132490525279919963430648562550490899470735855975424100004913967998860989323608655554101533961265994974142887333014319267765104966412624620826291609043711215447502589554988500489152626110140443888570828666296170377605565548711134943179068920591941880217670807072656153901981466055616710951189791266254945154942358110681664531036356839284009256421071011360522252280546301817741453337711349991257128285363331224335297292733929837909712067861842035833558605273481814433444230829741049090183890337986795416006860464335115927881216457543247652719727522723964378090184618417147862625636211965305326033905797249929447750647495526650458840092427946617962375691884934135860640781046538567927559287741549457943429960332915877888381801152617651320836035619203258873242025150076069343680251800218941384033542950535555436159053477571544471571280325831208059020190934828990232589043812299662466173606408577885481072899404172804198036950167397094836342728731697039913068913122167913665020628906459183183494948841336455279435270715302269956562043322861513039861360945257421646485623821041373715127948634243716586598222714550421551664693315925773242884088998593444994602977296200398784470244851362343306261906193237824262124032326757811185504285444348548071780588144365617377103966174057362320449995664430231912150204779445770428197259317511799456167965522175265000379401517613764092423968343532647567972646319054988014858280648043962871801813717374954612209509054505418590701629381304033773708203783006318248453185580996797194647060277560531124501433763555582694301680202667256339940170585106916326442562979267959621587068133282167481773702332499374679844367033631139910733052770389996425226706247833510692215873653591646602397588945445056835376297239666071484482703738898296113492909603497238929657073602366102360877415176813366849384413389722564450252419417477346121442224032705142152012321797062885969342063579192893772401058610977481281145603156263773890570929098000113076683354677595901795054088177922397443849410940336406122515104611016070285741490492120418225997328810824928463679405226177131104959998894723734600023102692844535439704216966115586938142235732473460031558011595219888116576528099634480365972596592798606773431401141649154949171598600355499777836964477240332828590604855979282072571898248551634556491042999547992380554860151279350056978489441669440708886295485565674975155619027097104921571827101978959198242342571724999300606823281131697356789727425688709750740951832819909926883863610460592111417081884762087736149103524830275097953070609389068854481609317271020626079003532674877253651914953637083680261059547175594808668992960670737113592287520217321616905155274647852278207263092908241192748954208636442149170432030017706555386452455165032078612442813250055173242732928132846493444065431931415759640096546795564122124821474581960174573736005991747786019121081851857417027236247600545866271055574371674361589455271101644764816660432014343222673918035816559566712271479965948880432361054790460407813216759632292430108331381217351956523260056093052947561843398143705588993673466265202373339061612037562802110788588381078937049533166463941315957898619516070748349957439611393015502630996316909073528401620981416372459065826100729873657858081370355362457882641185792209121234385052969774013450983424990522323389799075453528363746170635036962008681243980514541287045953254486141394836029379175147291117757952124277465256405650529547417656568973858056545017051253401212392815075708249126902185399450107521835852529364835554939972658922358463662567519140503768232204867194090107477159663715473599719077777936187134559974829151245983298497239095952883690485922145263973440093145374445761593595346755603983545933560731711661717547114083426399880274480576926338072896835994407708324997979169808616126716267124753278395921014647450094171499386269645704598498487597599823815517503465668998446662834542213374435438165751593776504705261796590710601615144442349341836234849719318415102356729073296818766010488625592036600659735072300703820369541235638128216093260264273340381929076704971572220316671729993350313181880843997271996760415937659763861547714045513506495420307534497889952088987185791851331489756604714488187638025764971267844830994276031429406574374650673685600944439546347945561005854235750268555056406338279332741129867836096494450532673932820504956881599802758903229422604999063692542158421136784636386277008958514684018019292347583010132191447052411056747115279106779283182434653961529838788002062785681207898863904417431070892500581012551329963032577198694135028452862714982273090025009687301158049678670872440207616200115255620499645954619833592730444942151837755308420522542261164730801140295770542778136823264694765563713999441125134599218441576902314340650577936843269491367626904081284451218328366714781393827578022486503392955154829440479955865636267190094648447528986865409805865379239808998293372967225036646139098424865171132389522625654716259417243792643861392070554192998491818006207905248752499103346601547752933564042839511105068057709372841635100829167772597862072104486317243162024098244748172760248010885945006240349582131242966909947772996093584168863741511930514843163359944267671541386010339461876212240625687859430395192243662572321170195388528497801720713521904934035510658926021439939894665563931845720511821666498819647671010185378518573287194277074732882110792055365464088224023816543817112376625227667339426220539649858159351513926381561853093229381915383121146508928583830814989951926650939719337058454601891880202445032621390907337785986278556368724210715631508399652831153369487763663627889394789760994920359801667892703690528477272561069346769797019346999049649522807295538180635751981653499061215136959935414867733634987250581631567717395225515528289746381567418410674589349644791327331663492859113872932048541870997028862653551156393235275518971382461735767375745121542194188098698400674119322707651435574952158770387274816738283642304588877006365920762353712364075825851245164289568079846726130738374838757656717780539997498071351579334337300546193056579467803363251460037111670856268589861566237177745769818026846221107991829342473519177214529252821696471074674555217480294620034568369742576386483645545875562346118880677523015809959489754800209320271918918037391723216253916171672014747321220014919187444173329327686342022160441992700032521842728687842487173105301809346421596507758677123140429245823942754722021493111836922667683212770347589419593383653866614381488770904974221817172127550502929662769912833604207524402092042665918843172072810456649262055153798586391296072539624780033017280630955145148536850730336722912041909715849396387032539133892941866110625279510101909044673892991138022433324882022292485434602469617602174794145104338948392558460162795525498726544195141795846314054619639502620579521975436783941865397303627781432922691982055028019957793816346141830909268431363566653301896186871134569011264822306306227042934460063809145843205492783837371224630233752309260804215571699748749563396365206297643974653759358914851308444271256489074288991290086764448538008594896510281267135157183326676076761843975954479893849670288650908831334402777362613682872842285492846997771434955312989116762567694784365882507601165527169823231830019558875255622911648065708639054748762496386184105474762598969837184166202474674663985038142853923519926245926643210475692478160555353114932819683740818073198482841599948010821000945238107966085771530026058335170703199012269357457688978066373877081913577057993926096347782882021954971863880340202576920016887322888530450008721498691251287733496250906053540595324426213141852240588063677020692881806050032731941172992441683583458890549044765794357376296640389833386469910006255141736221819694231114622835673548168656039141900962648923347547107204443255869410265606270750768264726127917048602807683349777571252856445755406604355800472385905618653575528014583036031233914185303822256628170701855253203490375104132668822064248591984281354114671480338357308558812886710682334455421006705003525098607128673150179927639677006600103507110742396005073372780080784370911953886540429832179763399739241931189086540098556621716058294015947319941288189139118512332714726041759043421638946658205460616651765511083013519010365357042428124415096885629191403797141236395522903324175425008395490737873089234399048261204304637103867109469205509517388400428915752445649677577448301073262613952978852297774290664001385104110839336188263555032116939898503145391501678383300986648699166934920094210213409248005582222506591523238388116083744093616175471913024982075469092029077433167497661576819148701392589828844803243500239673611504371803525017749024384749335312218808993991145939984151622637641788604155706595403743377064462695027453356727801513810886253622026282374267322986335737456591659682989483985184023915767515310372356802683238107519983427150735380269158373994294371092914461057407070820670796596749352102123785296167057246453872480439311115589264436677005307521317481723843186602150711180770880837868033420479897589364480156351972049541530990189498907677675245054877244286260618259673672101175469326985396622974281556612564276379969856554085675970569236209850617530224685512266541397495850943313142694407190572443563359374189254567319107644598348431332448600241701190985791550699489203405612732003127336323279620569578564795984838215148773154670686511698815902843190127296292335727156969936903721351177327616332648499569150676102513869066930186744544671784478198184670654310332713494779284054033503014753918432949359367249038794746911600356949168482830516366691159117197505478895164507305346476914559846676354368899029170270197927997255802527206373702489995324997476964589135550288360665054020492281477662190564534662718627062869376227126464271332857567591679334829154963490170799746933724155736962411122174331539372936716870949736761986247822178961908818831365058972846287647868513733725150623631091655074648418564443198872255395908323597761933301504184706315649978783759277210890153362041929833047298288054569244955257250687756784608153971835054632641154443698529219381473075639445193442918920231400020474687786013020963377589603133996300140492678556598290717854949604950020106849985100275316913002174583840493351688975896749602336425485163720942814055442069631079049858307081259200136267786654438752608485575203030629554445643615032273443906067131308586825258458886914293419676624826733274067691573325520968312209146504264942859622849167851075833057896319744005552569040811025351153854656221812107191844160717513027256670238916056307615879049829863234963517659750032717395923758001171165870034846298255835895015319926161202340031428968129649463849326531852295859736409839721027443097555933525717049379955070087474492917096634953021165365341769206075031774316134950247306907173159211851287652353744596876257914309543955999850569967080469829734913025122176066247539810361279194349420308907698176412256874952072713140562790652726624537710733857602174707283211003294053794457624964565238984824585772502728829905252932943668281013323495720045925302312649334333142762154695382228783794842618653451950942619661131326540619579501850649893421282077559151028017353199984860113264650073114481613631695908146022530713648139510907505037920288320923711484214937905138320465152673231389563736517190482852011691415616306478862319384398364632349137345775825722662939691728050008237315394118836410438171545258891371678167341063606025167267446582979489328478744170628494720465774380267260267612420083247514292992374979818091249293988090376551390769835622513531162262155811771632158366415917333361174086590316243232253844748242106586764609046170959402539941584877302029326684653354754870841552319281909874293098326434539029943684721871374868369974660705101824046188670474151205681398199570809289289540072754019843922719822023318690661199909906604336853660246105607203932154549463449459680598869633863290466323328191233483969480231382890059198536238985459679488759172039224399076312101492084548701368015069930533520557152593836605153285692231360128134488000603557150139088210817628179761222318177128310031626309022986896882687096967117276752116887188703581256416225606721916874174438142062248381899080341335244006771712285381883119246976385600506145500189215049364086698436960911078811310649819895028941270734586359711387309390586886627584129155937971730249211769066701686126519908716512039677108590916562830146482033288857902159674009938173293541138442588457085357500130689947239922734752846227316174532362304487698250353808497004534561631166386162070884941989359213979405241012587186173803405819034394740597813882194086059361704890017792232685228550124305036622429536042051896042983003490002447871969559617719526287533513354723658036617585036095211874708393312924206717846487856365576325942909033420900229056166411767889272184789331608835052868075438099282991512357843917639142578772931298954082799815571022429105476577186844521608795274856783988401984024512580600748858597391229720981262368221743898661572067372660657458711849309676553487747651444676229533637503093364114935845659608431742249203350588989354003310669988942950698564953682483131617268936781936431516290448324149839244188421451752859344026005509418419830904472727749249399485993053979657520615579519697954355066621082746629893549038781003344319934300726627232040423017400724143751598400956682372005538438993906083807905476435800895000521521658911378182894622404258403136941351698463159916625820058981222670672360585374036251405204316035537214288342115016441890419973981778770203579838935778002318183579733699527819825266441621142423132343142988385274732134581136934335465560030059232546840009018776463609247714441759408039845747471388010068453494273262677366818622278171421101681304949339677338316967363196730876560071178320869186696620637186789347281271344274537682340312169469185059896691472322385331348053020959326903189531651749742981268042746722050092971563594632102698954884867155376385304018816186588102516545834216114952808813165333979923466665115046845859759278155711588234157814398523479606753226936786306712146448086819797718306329556583262874478813259648195553251481941849534000189395925583106265314121722905563270697061673577860936534546689429380862099493702020953901936726397720358520797794048382809527915857632093108633450563994635734272963271896598027010244288192863919181335914883438424725771223207785405495730043295237266814551346935242082183290429341104782101613978846895610472473750572173046062299316122863755214349524273669898122386228621809597179929336841088403011742136100315881661503199332877863983977942854866903703705039598519361921822956136336628674213630227022194526844048212195269895934485516591303066293620084923280662517494330509875268064319496733091431789212806188310209374388644322174859205470642784050740025312127652758584621238129213285882126285493569414495572779706958589992020440005125994642484022969897691856866750833911154913552611142433493652935113821094028157787617264807331811074359573567289342858678986052970113152664446028512186138356921449665669991885544143474314364714931695711053242069064072733082443203904570525947589821377449297811860814983521864656767247630591472740187523670432865358783191697025302561215104623387111232954801568043781107636398494078567786365662424849376676542458013536466689637771897804214831307888257362145288132128063235802130214529275348663071021218119323197914961301328206788503624221246243906637876966756722437192839010145389465214023561809452018035496654132465713716384067152784104418298240661102362864994828643075233749226248995044457808514571197618235165879838899170994307025182259101448908877428955694070020226855373243539150944224207304719099523211939798913307738401517931553408079469177242617218739093326204988002018995548327642825381427117527986275507941356596536539947835442500620467755651508165036150935248668455758656068139450779845634729199461433964629660094624029101263430594591408246220809338466963907024711945927452288862263852284360935388638465091308939023776052894285612782611684561090568067048328247808599383467919499974689590742643400497380764387842548464074415212371157889762812876324289254763602947594071351753646639874079833047169059900930089240536276875605771764486634571655448447242329820466071448161881463005082406812280138875673205289307635436962106019556373886613613779290209149215599107041221352425472552291808754850135100923168310801295877877158637466118328987182256972764745862496444553734993939703866875532827317603994849954490027069877556060090972104496940193271710919234745366891109959206181355989845041050662087116209424809697021749823885267677419324565029507597943200276221822300140690741685367502226414200760735082323977839869482165239475596513608595598674432271740099354607920943879247615429212391199782202361078547423362010317668172921429752786833300897138876107500759660312707744354614434674944395961940039054347987659731706349308681615700747919412863240845548007777911044338610311852044697224691818522111680874498388860722730586376090700430455560304641713119290506077465484843558395562286325344259791481197706032334354358761002323921413734890938442760011720183497638937618633890132753518893946757776489317685666835372808641413306060539354201119131932834135178878494497636828726821248968915487675785373505244029454011644563435173578519224537709948538315817145430914783014418802496187504202842083331960929035366313460075725317721886166684438196162797913637304604395281738846806334604274956192149638060853131352229532007525929150290074519973016178948717645111687316603349453635858899568811545190994755504470273028387564189940173069859963952166053020475326665358359152429512486778667055099711029511265851153761279630341175413448256548306826375152475572822194962537001372926635637484034648464691052046511305471067684433392838295770775003679426914271343299809900593667560580137160441236074710767796611326657724109274489225892228118324563510941539101002003097990753717242714633750803784393447712536482617154283113652801095697044480326912538056298688406286203012419491965432112706640875523077101891971503796039699060850168947267791040877793796329564425825887728040776793454704920411181738291257912954985669989631350039668856729732697079409802900713256009081615540271460409736300320395346623851310420255700402801420343972810988753729506232558734877811565062597866792562789254900156839407495475194377087060659514113897243791741142424694687865162176838601035329471257752692940373545401511337984966975402657021143528788084300341369553387474026647688807780597997397956873837882043121708906754114060889957656215719758039258311034427798481927575883645282232461501408829310816276045106838729111786044558528442125582449474064795778807995746004943154358210871496076390218977776503502827257900542375596190667775751819391641891863031305155951162999798504710948920588090228524168244266766778703728037389710753646044080604739663147743792200974961472236017011226239145971606938991456876641284066887160766527209779793257197692039740300985498619415133919890531939818483197743646799536771952132056777592638153053376390413797594608632333140732501538013809003479868848423527131427971169757906712193200320067772516340773705744479446359253590204136765928728283047211226160788983503364466084614788219023366249514413329081558201297559030838155257552067598847744109567933483335688846159246428780179810960335098976721395744608702308249013064440556535374341732551459267892544377324504220713778563506179830450902405884312210795467160186439700307299937285762838216555628610157184033669800948975720888328582125515550153688078823603103372900031941309958999296514559786367450410947243954143395414425237918061654313305062212525424168772722295693193742318620903684911389026636873816216780867639775352754631364004643611632971486381164219887589845884608535613020837609945999608317009033416743122489799772386833932061602619859583795695527228227533230140506145114720648735390355283794205345180634542674997394701888530752253131188354045243545826307466340912506998008036498070200254897334806312637669744188507139501004181963050371018928532300641243283075611937806780154194072806889156451586528272971925842093479257511153298268860900039505661714942383867302473955474977182637522183656478837436189618732107452338462596644770949993233087153313551373283802999716938566197685988125145945915395752824833709034403462228603102336804282523693243842416819210354826639050521072538979905081599411935261645040679742270172530023623265016190880080187679552888119714503572736755672225232469817135166293398449608397066245084339527207212312907165489305623205791991230296237501998322834990331787959850351416236878910839607194747135248690471875442967924659405845064894873983522814022536658644632400358577904346504182711747323335055296131001596440399818793828207522110099489647957592545376652935788431938600405847636914791144403028329512657431904631389643394080197981658117256477934998662211392716920474016567710863190982523793889051185276329716638748225454745894461355093060547770675577491396972672029294260854682910174787235765745542341048584773594911132191201095659847862518608282170245825378565673129065230849300418681637641991273767462593186754175586918168245313598802081388672210532262805075219486099053603845569839271930061548905458826521515903105242863896139303960830402377098133725485592021987176619522195915038474299568866171488057274930929091827645143725359706052131195993739402727179934318140032795911812045349557234283509089969818305317987050736137031187770094130334839278814839293646919975590122958693519136581714913802839639534819090993334471086690513581420204341865730925548390005772248783820898030118659016323950937859209511179199386459883294060158802728584084559883872055128519846209822144360986285123145550543781841035613852016716269224807218761598360280069919629938867067583817320224210781855564788278142647867696416613873598299151645491757532815356254383325712249474082864894530428592778473654495654035286047896915589665006600662883012507714702863994900733677393495164059726606091084412932946790747935558045072207140526516364420116971588381245860161698627111850520683237887888727865228122865529338104047619013071227378032102025558249270412000976221548197000222678972962152756018154029093679625204480248793938629663246952495663443243532330404010905219521491121617788462214190123162222881114040834817880884656114480680930790292027815217981221915843165207115204999758075311708633126548015493437375408541101089989515192776979201642056051011561272251554319378934563433032057465642327904769114700279140619285781194388474245508324959897906925745561591252987108543537486484438463123767937161280270791080821688405837078750071701275564818388536182327387684023842234816107026757581218669699329410650878084382296551586809497523599146544232389418705530104023213908392166985200215144211820566978035094562976343500841037969647956733684171837575812666343514749775142877509421624179084011204113699590849703733962515041608949189718237022963939707995397750585674118692341929200669809077702036539003314948021001169363308250280759317797837021301525177515702998399845646552412648993013019502618140471114762754613659380442419376117537984279405839699384247366776607449969737713423464854066697015653014990197081093393692381805102519892334352509421962306755364884306673229306111673175271742334782576042092433836315303332140380497169044916654162366049185619692492248237552786644739964178820283064216057023272467446695249559076799302735903158878326734104254489276223496925037577433457728569723985398332541680914560877317960846037536887387326491955842023123569653931481555147218732897444671675735547196446531794280380243922866463945490493489044116787114168916753268795438480830780203432952807959807322952076941465300574606987580315770433975331464324446787665319050371083292939760071652379511690985878979457517861405799421367772959268045835919874195933347600929874259657421822744914291976983777356676466530782726003236069080712846025374881907207903537138682535244748606938709637545050565982895608422203180832416357165871062795864011085140145424178675915895472545466479153340296598924224769158505717284486253459858188204122499526187745412735818450484429432565531650215852436682750989951594199333334549722361906866051313259627935299143988079923267332384718539407929937745698055579730168781507449757915443494736656106375345699439510324384264202291989850016716324629860502262460800709233199390896905576912279130233796339818033232848317710145399689918761583667804291135034747675000513320470206746354452557772855495199903883692827986081131044983213490874319111886730491082204197130402102100153486316676284982501341207264567081629348647567699426008380324218966586681875407766629347976204677231489057449639880123518070491927333437515214415713971516592242500440315224200308013162093917974050000006994071956966859337650788776861671466572279081763201124687344773699047492758127184405149681484709951433995495043568279397848371527939202671500450810641472118662324783882221308148551873703939932484443620436410816500857483911229607765874771010711521393563671395796381950592904077914019378388474952726825237909389547229362182402007758531271358462345553219582440335229447264138544777679840524097275961102873693629640244249859252431563531968171766480170119888983233354969837770512312278632551460889691987480279903401187959084152824113087572998388463968626318219021485770574026592248198403575657887568314718976098885971045559109641967249928370260999826780297001852889071432052006744734216679401971797304705620052998979844891120893735494875405372141210662253221904371069328355810031084347445014204132822915821973817384838616066246781893785235321298733288079656733357059942476040391338807179960623587622564330671050389633403149956931948492335711844608002384635071696077174208741555957692403261293245147491293414956166438639677514324752424106190756631060706430343324955850169205109042385274602790152443957945301613950153564414904167068009788810641834916793304804488060096422963253846173859262932350004664798925549812813708373933122975628944619592592139826104089149236322084160480145368074969744946376963735608277795520749480067224375661336265919247140247417014589865495220101180419955802720516787231492641164447704133506892509671458174418809141606055789909583713030560578415709853612909304646281158777097061233322906051570082381507618452804419311345902092555766856248507239007112197926925577443372255238860737633275886451888275929785977753633271448061078515610070503712362602685843400171547460226536667058410510956820110488254802748316087685032920977374973700360064898249217605010659447992897489002844816729277365847010601093562710927792207822291933360473086932033735995025513335863696335474861148695127584108795791576244691758840101356830570865026833366563669294625478383132838734296541145922603049462657738139841672792422007416704552707568887587680912811294110116119191919931641279752949572494930442850745993238354562550820730458391427035796358509629401464120275801402384341712493937336207255159468298823980359454807263459301172737324450216312971649420323603605187460976242527075767714825736513063004298284932574080032260478874138220282263873184933488913042557634671948476479350490143063096007526557650048092426226441054310208824257265147045745529448473537214050836637647924018342042832588400988416411715250621127512217658368778786583870879510516732650338154798573722677711567228220244499721901903474928668284012874450206149085451531979403986209836245026642884061043899641756836165404291948777179657424253884608989863426799767995042686674536876608461805925758221125144195342866085835161011171030588328474497589707381169127400802582932418709464153827390309576990838872057136682101802927273648776023714866101618051324321719177252283863020743330593759358409051201195261058222192622026795316975831767484384213696232871554121622162423463089761241183736526396079369375043597938222123979256080102558912909840117632594536419175930592859754755203930780863164206272097089224351474556224194288049893960349535909161597505336334752372346201806547932320901422871945665932979811484620117215411063739475426368638128869358962379235989365299682271959533354852530812549325772552589053536653179561454199832733131632087881392982678490949024720590245665368417889735236780599153716460835503701308397782708393939405937901732793407056957189339853809997994569652697613047113924517249530868103453201665188523126297254396645172893080126180836692552179486275536613530544417049341595523005270688681725832652524452077307614928299410036616113140266374368039847771568133407787755386349155518124733578840414876597888639295713689180321308503011134407646671963674501555899450687921753442399782191935005014751494176698030780473364787130905072533392168859879034091213380170935678940749110503629312426900988214254241974514826372514910727334148871628018954908784722196760677975403738755341090668816789194466491825114066774751725512723445036229858677116899363363113653494417356016986385164614396218940097463951310464802049737503423326069617406948905278987187620660004254214052759359034426129799026720896036969414080592861564233292952817146723531185655723787961406085210426628592771557315619845450449344827478180922539216685484053207442450620342021639504374014362741893246730675792991952739825427804801259013941691360595825341376772664739009455478615883566838466321519455471184931815893005075102101816913449549676814121324434639677140566988308537153260132891565518346059341877749776031271129463158304472873088132161319587694772791963826388449826789719973686029708360258426954844545736750125106839201670227961614806244533458661041773716665718126169761322382538765791358183139146398521553685915278572643630049224898891318788666351021110046608807464192175873171739326872680892354055654966324470190219868526723218066669306683275517046018341980109886011084800913434304824576933256927342463578279485494941205985084359177468638161638060952788958733083508782136420673680126360631373813922801914946393338886540677009229737668426917989129026026492397934500455398685515442968811393744194099052931220962852709153417115228995695277616900650406201921997005963895352518454064357941463923079352184097215399261673340180460418383551127179876385852569699349479604066174150352051971708299299631596304334478154195342327687548839592807383321534177275114068259583833418108461220391094735621137887609385680730585584787430022747445078726487049813951654987516142693692392259893722328657669840983026786166269002145056818321179194211302861657487822269155183552783913423349723215745702653989738757763090858004727711762946081004357924747512440735432497579474280143328885024664997851657683636103243822399654110466144994362876462811879912500389406449445052944369710962142107059922125765477959148583524931975541958861486129576723563984730720518332457716718411167266131075590414748275888949047356803928245615881945423842219866545931819446832985815583686491557783530838680266210259929818596365125241029259823372097549945127904886942334388144976933532245696407302218378596969223519121774335342172897964485857998151018866404930469254447527874160985367799925736449855264565603681610793795760088979141006908216299702193731654374540158626277790327814817381848871412099762371235683589155749315305567821923623349524168759215932602118452412244829695902474405545241268919352817601204726709996553287638568107694011413263684339674115802766631022080611402625294796413360146280470720295993224335564392225027147993321353263219896687149946765853725387828984284120476708324457435671982985863475214193162171299841145199982115372827980042431666251604109302953312448126841755356804348188214173655840570296350491498585027819382853594084794240714631153629532258699220493865875963118412728066407952899693640823768310466565125747706661300007634857789275633940781569542409771367752718102741822413076419742192224564022324583830193547541718146858648881314358316868586270085757118941594206376603659860392466760163601135160559912370693025108752425000583032044243487373170132575496651588256883674104753919682558010892550425890678911321571166361867608514850978258908242526505080637768295680894725956909532450314336351037383935471694893882435554506239914416752649631090787651325153430192776341808202887374732847495385489983792315026771264933408826430273260102961856040833352865074947509053857235001173273964290249358970321661999203427863618557243107937015654530105070705564190327274106985596546574122785459640700755405856205379600136686880629139421937051232906009230722630240750337006440374515934176229817916036861441784198237827161102251956049065818146743271436768083142425638677065369712038324627081849386808634118727252364548586628036652361921675959247839054002984850628495227033073321927738650885221690952651758066275304674814112538294149253277142536110589614858732989422857270997518806388853077536227998598086707521581840792062496739188323757892232062539679964134640051376626027303240468005283991906358641396297454834090022367526555107676550889613647056134395051606325467849382067488485704438763405527365112966865858102892835225610956592863416739763000584034452970607865139043008258426311788586162734948879095879229185906623163201087368794825194191807265562821167133186492515988633079346173003954539787058559013352445267400255793284682035887675996195746637755933245526328929662172312347667224236716520329638224098640873226336512862340910321139615580171766298089638457971102088168188081339343145869210744453294495626184899650071345066607096319741941393422166003257305507896108625514683798013822376294053450310047206084682826739187939841097401857106473131402071042601988005730660902200637757807166822423892256439675324731867800351991628417149860106097800207231261462738741871670863036806507155738120041344381017668307872410561626743246693397350451701239349254903152821106682623844313702082532365689661406242013294944504210264875532390404715518272305816561452635698979412765462687082656732775842768172092122694440866927555953275432352177511421184733871297593227069574175832886051447422528217993712913236987341439561269296932270520570674136393395340561045501930842434003266118300709363480771673184666546776598075602642403703991866684978318144662798330274509722183553798839292811614295131289316125947502485010908234336034962070416698426180800121462453420910204898415550996878754761024266725323118710646588731474081836069451497905902815103354546261778491607855597734233814254440831264854981974488144958942866793831005820534671468585812674794167312723399598398998646664093893979558886595849552028382732614058291996457310418081574127093943810627497636834191460706971462063489521534074117811799136870451927194010758590909800259029678002038807818199386901768226894303338636677363063323086383206050517486722355006682881324381108515940647171622911990092842419766473852846031969241746444201325686240910303635327920173486007724206971905018567061963325439295563915255474604441356005653255637619895699352294799260139331218560314900220114297050256511423221713139273610391153411056484825039219626092021552047994817587918439093733268122993000174301165444477449862228536622182585832685494674956725126316292873514891826406734998909316606693630508093607907141407003816907500526216568057076716143036283849255076019102098259522670417573926405445551474382319459853772811141174441813663890648308598358307209057062163163531084679952259591711200498393651930637759292000993441278002414313407455793327176498016395725691759398178407144680672873098417952918878142831716303510416194031496612779500594686187121757571773669908845407822202543076979974382436548247777636231457754927672548843203577480489939969093700125219150378730324190790747599097938232315230250896005305264532618418808585557424483832102863833899281064465163560964332789029130365398399066066670976995372857477240847806766126422488610161014435705804640585966963309685092341472821962092466272336409562256988522372681184733099954734213855615728620066187982707554987820459376254832521264258697188655019542362923615288173832242350060621188943256892714154362511301067259268819901824481775987740206743292745455198606905120329642520393861457896575783179139809181813832044604483635726306825846986998274120208604772643276676516047140394288029919380302379692222159461867634225605677864963614651924834135759435551523006870226292083183765687344019977994299466191433497749399536674002586191622393325015104232899563427470168110118906786242248446715024645248117734848604793303850619315622987406601130397369415687269829347346211987297665137008805024787415602482567536164883554508930979024418659208849180549909338500436961812860349315218782567412240844726166093601793935104887402833665976543944334799451594998511860657836666908503772509256936830646657570260856776645920096603496382037004675212093954211069906558623708996574405246684389602683126787697195071107756383869067704286942565354469177450092272841090927510232864233458920535089803803397207602546196762642656506489057735802063024367256852764216304582070119631944582991189975989001425432586037351895116217891804154696508792962605807048653931415471892021215537029621729915125765437213742618248455900435958411783118286345427219634525288304879016265051492451711633897155487367077860111689344962908733250104080390291127821167834530930931411922850273530222379453425677079337744346509978972081403266453544419334027658639458349248132722283011966293264148546616560910609153386471772743570872178685431286802094729560837656697915032346953178768362037812145146453227256995882414412452293730680121114826558635154794703037414233874795849195327181505725504614786515214433166639453897476751631516746252797142412774332992324716565876087000546492181255326338364623593492349435842338679763261475318034984997344479572901703080110800497986204095740751320348501421161355712712322220727707329125219224505248188435259009244864036765492427858775158087397400275460810120703271920705039362003416591771778811338955378540429786632926197020856584036709782576283694367542391562602585336942313036536825808091931415563857784135636933460376749905260067721720138808129656654133228412497424571457880536993084439050827825229418425176420099618616121468476243941023947862665459659882994437649329740774893375486033964458398248475617130886508365089112748148380273243403920817502735279809286366450943404445033352467183912324507834890530846485896129995839877900199168062599642340794204715500572270217049146422055909429005876579142897358393870714083818631935886541233331406234853433858767927311891596039138974605437429087114248211701178524969768068321846458266998499507407995720330654627667305499158150001040116226713405807457393820802459893311646466231053094992300903675898492807121746513773398323127331749758743711764649107655889322508983394687495357320694161631446452510324908517665126788946753369577437160275878625944694731371681854003939183104707812251560341682766543833770918424996753148778811653894550889859479623137515349750754924614222583986552258763824868698076934218065990529076672233563980375519389065886447040098995109887167310849767481029736984093889378924168426155207471517579551378280389242659815490874910441008718817252405568924226841746052963371703271141152833580208334564159567767418875975507255118605647559925463627162004688456986970870683628423069753159240841465493889679707112890216107928859712099050998411318394207884805820251947808496456487026419174526457190984400071486206982062470258626361155996099335876772105846323177098081757487362058668772074702713921522077574350641392790772535253474200333035590483937852506395046402486029676346150999031579772983330462664240932999777214615420158625082548351105651525716980566678768554530918330015550559196916041739775173275264609541708018647787825877229393072668071690926539236104472357631999248211054744514921130038863161176726920032909429809157247646948911102123659507538149167255137710132559831524135160158759299381119286077482216248874193546482599830462645635614091856104254104454539986074460627562038372288358708729834828245332913391891612093295901495165099446053714016816046539729117510307456459486434599528729587820513646604136616097594891548511191164471134468036956126141862455223941092210123938751226449216292983065763245862821465604034777385984711863741846765447488974575957246755104586140951297634956212554637822272159674655282733553441322013450694374517008801259199390410637237351274000456767161140441297220935266045516154545304200820936675592136349349314759423258998181316501807118837148649647709022433898362546240585771521542306010654993871708943678386789881565477673101200541019213560278680498171336252528637752372660516729032638348021926981541596163690395951199931858156339332341378057617738536896936038723843990009089257537881021267527213130910476365980830441313485572212349562128038866409004868600703883351093126795180676837075168619844899686921384531006940124295989419581590143722453752208677785947645305437582312749663027896211000110637074413535232331934590260625855930568815813863582928839162336874251880237827967322693159893552387409953976420326998318622164246327411475249067135300150654735003432536691769482104688237403101409831370875353812585064024568470983632247950918571431206234539811123066820239672068535310809140629353994331878804097616763451806894437264857271349700754187491361136515148710380865729638972697182423305935129150883175951551154189233322772696688502539020543149446538868666225450168033410248340393133735367513367762372651383300157358331722430916731560033955760368225549936117552567094521766697518954106856766294735484780939840684235273924246808677816837983983161010321799171287569747490372044863154376438464143154210986458499563498495841735228744732828250251152353789557547109539777901890100833468943981762983958294216992526068736538537689055440464077070403144836412231803437024509385354560065794161658758149324347368234138633410345865675504654755732197725626263326284712539165849976794895434964580900051495060491344711840470763440651045231204271033197772858458753922338887038230045785972182881318930144447038223465799451380224962150163926684114921019355683472121123263338111617033511023819487726744619000524489795613790789814609269202878568868029422544607057809509915973879107751082430174531479419228471124153360634156105351355848359135051052278842104259142863097688513442692992246272066538425643027030554120288034984134918822936183537421297890570238976620705327995877775381384437388170099202334468315235267088140877751118445387713896674047374967429100875009307343906253850398218351980573735881262155702632978698764001237004414215439500454715201022103512437838616471845165596200789198900790026923688408397679871239438139842453512173171590543297915396243952771925111280068215074038181600402388664140899557230130160929825656652919568861726237196061074275998596799633423583084390715203033918531020656943296478214084832426633757775431284646537809773164570869933912864932063162687875276649047578086150148659533206832717864138595544082466218968414265818299144156888927397998324179997866279209789734330353624221478760839210496283565005436802238647027360986853344152291647114890602295031927084137831014084054684102104018094595902948492928073423489222716810523128337804905241755117794654035525402313160544507523879011312839665611531184173846753989461009124594893581477570430940599547742251290503151428544695209072574008461169836764033336647107435219143448955264710675146067700227875099405473408526792674769372112489639675658756619480575830008914608479892652850162075249443618282324465737539407542062086827652277601074274149848496823694293039063091824972613145797522317390909063753783049702849108802070408455910631733751182114136690661649713196140389378207803590801048754586926559980857663607495070110406357276637393686552690426898574630260740864877598888008551544626955752068577689975918435917951174322630936747613137991104237193084796664693222465288733826192784105290024658272665138229174335102263875353122671110256179182941353305297240537567230095151298852945950464420671503115218507285799631866678339402587110908728113872183644370647164115672615558340711811378473726693640422175195592941712556757336728086453142231453147066213205970561565493120931498555231876562781154176866498877277179362508713397980714661274052418076877010751800798291254609437331048979698083011561607678135931921274333505967979978990406816404769990737961678878035509632933932440517180262693499002250859399137130354996850884845103011544570781766919224216929438619644388196043971240665796018130701648923023214452798062842568604415008270474989881303469709784775655622814400945699516896905598545307781421662968419373710842917862182736553129014431829013322151278943342859559156338301248266696556103814205414263966231071764408134943395178116024350917356116352106863184189049260542909764417875584310890125849030983080531449698820565982894609011236682951531359199520519923595052193033550949792925077585302307527123269800561092778612261239479694729803795166087717460414717997050193692031336721809265346495218127681994515856452580451023096822402606637187405059869054331225264006131220139015883223257712087708980319763779884526409208646443665575589966757970398960268071900943747577565126071489277355450095764545835676241029311962178875013203294929504581951510277489238544592438416448202293494712689656762526757625211219334453127461693266198100368840288470097365891120303359032725519423344186114008515387675619134797228045447208391429009902898942837335399419150553432227838256478986698319535880032554705979773246239128838855510336569148898527625245833493088122248185022329475874476136025542070999328630826107726550046280065052894913311160477026516616691079959760863363596460895194352442691820277786480448482501781962880772895071462373042454331569834259003655167545722153085446350815332755591005254860785758281113855936148499449054501383141672648861714297257551732767300494134943668903788083303313791249450130595740026339306814405464128531887543161811390524148569096914867401592009100964182866666540048616068640911271419518631431788136807968017138697991818278098200074154070034247919145315380371595031108551258567808046123601957106013379676673997035183629901121320639727505280236317952156431362728908902112380273556414878650322188912128636424726272200253953199298534414165144514594272630645874491702210306786097193310176178742684292980331337461889762184894050641019855907702900099686940237450477550532685160842327163999569139732195389453926646509520352568020097720408246210705492052872856701533148907981217147060317971771813948977539579092433509038159935147728947472822178096283434783508843021248453755937497795538148255035218830376907632548682646115845500267536474306671397969755939201180694123236442363091770048350522816221264443715104263691211821957682236651346562766984042550289300946152755518617899306866442355903840526072980504396077212862894462489458935884753383212147885438931688906676978267450413229338186295037650989770237775579761217622139502846168095922636599047214715055698151266268897176929252103201102442458067789468881170479640500932983758594114032270259548238406938432766419662044804656979173749979275638410728582388590233491590507809294596990793792445765852501448482414746725105806298248707874598000357956418571579565844478262067237419865441982308313176446763477270029423250276700431553407715343398524818414756768458928186629616216173978124884347411450879253645361234041677364061136290026862345951405555676659412284133350127454216558035336700724824736350957348614225613563001956578366351534758501200877617718407042556227260280861664492754199266792036904754520916142990603610506229950494761052013811041313471292857971378126819831338848412133712916670979423951538399048377295322725705652826266368830776690404374705080456225254026944321516040963904167515614832077104020476940939062142583334265388202374927718559444257828509110033607258932229882930312154595980468374942256410458254571277168290230935089813976036537925368734597748430460497793126024806766753329373005970681615779874080731353459997682725295381634541653415787842136935272722823233633850413088614931989542129075130335073489886739012060830217614040686220413347027729264713151043159245918507347930461234846526996022597742225569535036256207774369429843673129471025716859932166394438661571340607655728050923042066120442342154670334034696535030464190665087410171954525719856795560659369056635157655634297594008210662721736283467356660852628567220584067215078611319327175659247690182716716319734167021340503594525693969887386415978390923391998986814519901744543822271533236935466224096474103953893002553930927469327360795294572741590716874925432829994703443834361946147952436071767605197602370404220958901088020991462052507707827451190370103791433507503069702756624843389804630960377493894645270524858363845813187613750114543456064615114248085207036607014155129298537383164580544054480771077706435491359971778593978776430787152055902926349364875573149400414168815624415830057537654294572393998697361503149294327089525111375129547827085687680209895023082264906889239905113846051843200381450754355395802683573771578761515995467691402181209271284331520813579045825128999606712605415539076008610915239388073103344247613078359091288327346685345295996497251505212880257375445215473768949392037222828165457574141410622648982491986055498924357544742367141035036283309345460802807230876251989818897108855818913031607583854248109525192796482303364165813006852357100472932565372652961572318072858967688242235465341878599364798075366765629945545862055504084278981819612105542316167518032143171367719342066037930372933172754315777701302703587914607948152035901637788140631721653157803261613612594101110583531638115500540239118300082563404143658108950037639486721900077321627745672665825231833195855428344976993729449489668451364345577375842841619712991258885617264190040989183161815742347966744354892303918201603157658949036376471893270152794207527219599961747422662400414114913956033125848288547215723117428395689478479575583951413005942063503867836651962210839711476344123546503617012094398045017342246848355680099705563518533108469541875437668146699102479434085297634533764504045364892611670086422144775827156756726939722428076011845168796661361901286530460045449587167719685111196769514535558961411921408491455864317959121809259248320657451576020360102338207356524931104443950146269481529416561046450347752143315796414409172332651007751323447853862376563057855109052935872977864688937732915514594346990535117809933750363171860370372121826224568465062894108589224438354050344638288884027406865553450142023053888294343438342355452022832185073772180542660523321952739498988579636776208255086899576130324758320381711277053248581048737247794250718409041239608053139589469815655636204504555020484233626069642126931480291994119126481156404089355959963664243738240021451284720638675111797179257737373200443967876704430915976063354980347816926364911441030232646079366695917673845484079192093775674244388896851491173440728755722714261742533232863310234242161707627783996486296297648224860396641160981038275821285540187840121614434508091791269708088469754434101550110022673461358605413246375234175138402453173743656672604357475303501839779504271821759337362988330126291388692541644209744001438009425754158858828865294098012369947364512556023714482413564320405995165683303030946566799212462924370424551294795543176841667323991098459340656506502944977621251882135734664833065191688296832526655218840246034994820435339623891798388747596942330764946166345410574624527018972524601703343851082702212997313722301555540172473398305564630935897496282983313100495314413000648732491479076478927000460673117650456830092490430909964382481643640175746126389566255432886843726639042151582315484590579685985502527978486045285021936898099119603907238403902814223718401810514624848725979315845420507611591594257072120736181119843667064472337168783097822098815419831103042666537689803182096747815448847889905442737011270044292742860732698209584820046705052346289619848087669246544029180708280675120174079327932511655775982774042242508428401512691049418515281202606520849771773952293338320234208493579221855979877232590676491640365124590364850721997062864757151414699174752840391719597313704408688182303291846510921900991530832559397826402533584007232381427779931940004763719738547288261649966726548757109649784382247736103502529099970231015179357279123749563443368628332659194469132504803338265794649567106198159866242204034084321918675189191016289327130927900082418789290748102006369565494662636341498198151899237555980810658185532448511561394271099695068174949343026955969919238882223686596168224325521209100015770878034826477216483806118998955792968862008833209840845728847554652956836177123398773126027855805944973443361221699148680380570430045020925272785825930466458664462055502919941599455978101657439470640205243862119848534855445143792591541076637347956847399406906116153539076867145818174777649345999679748156657849629146813706980878771310045042443129009266293262961463106674594962620374857332954969025506193764211520358769980179712910286488500405977131808006179507037206171328407721129760338410618852592119583876384401751253165903029261895223668457054975051127657820497323691125430373616520502105238320558331533262876924656382514945171360519539746020897584513813346711530388671889731958709521009771009304672083841898853143574885758338076607651415146264416811113971217111086297547049376707682538510712842197465220677928916671466368615140694590002194214723490959755858077267554088388787378990814583517596933006045851843893745866346096029019456001905478070553393482835584631717214648684638204267493789059796367517765234175697593020759048269580013554398564593499594785691171929447485316274669558990151577739698478519509291991116497382762998834499918391915174216017122250453062388706521474272109509392780793653508635029466352490637450110930191362979533645823209080838161842012843021618295871251622907062505943363821147116334804040547485890751538374888927294334211133195286410705154340242078486564531878360577229794169594567961808364807897142008102349339205579697888361747771384125170881131483310221423217543955595473458658137824563126777408451473143949128254935411380579445477142687260830563024672138644194680300600103655018912575895167578579055373332937018145969266602649746576125560506243754259778546889046069498455883323086949357757590964608320575451149074761733788881438283093772405986981029128265769119746445423072967231322849752026974723609054279741629914290876255757322144434149931207283070262644574766457142240610725885624575789986595632215611388250422451648421600025062619225199291813097368913417469849849158678202889809678847278108247954491708652325604359385048928654814397319686999595447144542549551369306519171589936387168767836955599142575013830448574305339004485046658543669199936114986354856199129115979978810564766358856771004999890147407859325066608919213997712355693890409355317101193731974917256554969552893934379808424891386086478166988453014535290055530730284842848837369548356689227059083774450174405778803242606343408085835178208049089758213673060741332769884158288060124330715846707686037261268668863250495083632103059796943948095842202192527691087614043111695775497889085836294428356446849093334451166358144254141306089602571780468254455213029368717136496308873012956837131708316222006114551025997492694408665120608815057426469178521222023294584976753816741033954406846013391340035964340158157380399940301326373431468285973070146528618716186215610986553831910720661330159990449810931980674995286906097759833714430313652528417744324831732403853965697880593166843434689738553333898090054425265694266596721426124245551921347096066428629464647899230859284842560923837634894416460674449136616763797147759943952422071642033239334449592829776488379065068845758046034771324530584213924311578995110586408934694260053479183711805401103959096863069762043727108755958321722428374446839694187593976118799694786993518388278713793042443732598778921260125492380848052130646467015982704354541094065871276455425657586407283847334994792428413126048193217768482742724288004602503743013605157945587056002840627223368909852333133816661118020782275041004231328824159231635121549848985690029036679805720749611412372507461145061969639041197232746625255055043740524217560827132304428966090420124809593228639287612294322002227562371523158814975377371891044055675630683360615942098270757468366628136985915543127037295943715762046024687756329872783104833381053350910402569403952460229706734870130178934933239215723506819006974736452800793503907823159547503675911349649251440342390055095353580437486543768520197250041368427618509842454643764156656524423384495239678260386353518085580879689694147627778303192535368495969501470466532012454489662265375144143522533213829414418690797645653276943945891126710547670673194234212208231009129904751755622182174521929540774927322825096892024628361467831435346926140164972399751419281830116820433125829539703405747079640957333737019869892457171362508038727796523856442772598045182215618464789292116378398927634382994213036971034121842904678200171799711686662421149613242482479192286415640380633823276212536587997741011562179476255883806041563251907336498202834942990206213429020763954006977546955846136547675089990717930824669385904392396301373122423607709609732059451185332620940268351712935833390267738033796438084121741573632825040029266834714367882968460696006997085947848261913811837337715951244523406139517437203276218033231209728847782384133074781527695828723295814048838178088486915843683515612319424819678202903940476739527405711128357062595204070979786768422633635277389447587567279862279562072448128468711350806786649036203200111903143538693365895159737730982689458389083812061231755521411078888645908704878161394845850342876146837146860594343573483751309615025973101867089753297601326547320818163573613539179229750603139899417555833742048773675124635109456925459172826786413104926389266363368749881275547483231026108977361333126725218824956034888133633342686822292073678785300493333462981957921847354548609217934094612272856060303162895953672564425759062799637843524920379424544925779834054595358563675969302952903631481799716458409817491202359148793832243038690692155059579631520207956946894190495028245572713187686343370034276575257333572042068317680495373831997846795716580580395856429112208762212115070787052017447452079315245292860728313691351084339896787612958286299124328084454008276914613279394933930592560786682732919867779830214826258757225290446142837260439560732365112587535690998001047104419201903451865807996605753599618941048024275041576873600661248980257479967402237551960288508232793664523160973021858303772790177161672615024819073414561736774911412272377281355974023367394822605198252293010302055210145000318650897531254384694036204524800442892343472318882668774458070821137017002383126218235559830313816055081924660283659484433005078869006620259362730301183722130450137483734641686935191552969819913862229417173873234214074311595604516585067123832103316873847525720778863374077781232212871126774258740104747115609184807824098380350625959489821983579453306935640447787634618801425175121935565648782450679815090253315059080195934398462850497035440427343203324970102117209040652564022237867270026420448536191765047962195480114781449257187936108169650928236000686297280853076274982857315900692733710301535136182766630307268033311436168952777373112395795211492215858877563507686575540709511173252334762333393767273127785405222181811882627103996039355057914753358047242072696452284898768260976181319726910380836575044129018912775252111913460152486910999862351291201562105831264519364944520424764570783981140027261117062889573539458300207208602353831295139184599932698171817692508469180540241734091007054406998300988368404432342721965098466560378039160190663022664835107529771230093942959325073952578973037776559503659570734509898790239528779122261000916215287414500871602841000173814168403631421200985788763852034223810622024625306091376380788677472895432134098898593367821094981058197661272196374350514223136957616170499759698653479721725621999472690070635737360970765566964593871296688752960107135030759584500384392802482265835063268824745635421544040602505099664690845840736862027761868561606978144527272891591540590569185041422924479808576323792000208911958128220678009974534033225805040909891626011832022404021226558318952798779050717402337458662071599269916758864944967232821847143164397241758409529168012931736816649439310305807513361446981772277012526261021201793571078908443485974206755175081542887007544112858236940139066957474584410660730154113478503247673276090017521288729122782309835093674244701746513928657390720302153150877576945683611896903658751254016957423550766161232476754034278881996148268513425997947408323381472135005738987410720370921523068076664428129106785982522601382979685287397036666356510251221598824526960530284728437131745633235041768050063168294808091246173618778842660425314500698584408962275805829652444793325645612063669529793146226718269571094399706641867362329543187377045142734383172074424367292500965024997083585475462205624719263493717082708911831842614969723711434625941139481980333507141941534233675238591782258637814130617698492310236416115515024489978846077944920866922323186123968982440985262284222053626351854365945587617058284401961368173833746934756365944923438648194497018920745413512187389318413091690602663274056339956097623519273391319384100102254438684272539005333576190120934364992499415155610703409382523501540081245595251509068537220984799960277744271407148056231869267032911947420721961844698480935925968697214381426740122641446512074549644262889161863993601130932891916549914036586058512622385953400745384885830305669936338719546277083742227860460242786693043290977357019387559964238408201942013080108726109215217376162311696150168295225828878088407527216483640850547118772461562219603708690421028530581850721876587284736604586067883757471821845029253493626062071194610034446412611667131436297208591288943493989265455938341953995149943498053527305444174802187010530910576920436646018057778937100048756305426861999544696179607091433889503284703374266554667581166773835046202468425009565875440650734966189719284560558690019688041832348916234137745334801526270040949745014622229191571830417326999173292074469168057509726541782624485470519869944073324354345937682581164118444880640070156917322902084088582734784819514569274043076776520039521817787895902141731523783592777880879059013470555433700624114094100048371609606042559822194539168800992413902700164728185725696176141318375802213394530943890385701877288535092253494952946691543489300246956124002801731378629787804818085971400018351801720584624610199455553283762123332889111846502013114351317570380278634051019204290519937731307682850416986150038840753331220262139010204000109834383316687970608138982853396351178242864353713038776286729425459438402212348488827929500496615901678589029089192718542594799273568484190231733022224482664704334086770855265826809908371088766796174828347224046587285625686240791812456678725752767852423816349830457882906039757218877029896525094596049517599733332165430249806515408223066269857305377932199831610604428392053150975771494545866810770344234776189071227498377696188261727893260964113536811829494278737977601475155940787231609496009637400878704240621211069339633385748759173177633406995072900182819119920624164373890214003529738970466666790568890433868307494756967282970008138413725306578691982503415712395886767566702215079333613723175895537266232301525797386895073191804700226933166206348470045782999047819508841404471153945144359804325418855238223673774739231106414376812753145061505050529343703942903773810486748664161410395188603746898627234468733653873042128995366426761048447770995080439114372214744400048710849454951943396360363866371906753761046118844536590105705179343206735538432412790791651699986287746746579931289433200704767036410680169761349164128286731663574837429308165478671515984166943748897624112875879576344920528949227382797932148744133042187734911178140296841991370309245395498890937388847094493024472443938616002667864448763754303740145986947848961293277229003052086877507693919737525762886089663005957265718861065440673699743080511134008654751794863860768850781477776215390801038330279320171810077689528579714956273443018477717047029822397122904289929972320250578264755950009087955041458065039515190011470193963078362148964113963525591052058675289010964562834488009340576401177159845058091300937629426406622952212635066350239350939061387066550827858772349749518325469968990653952843007331847953217126374982095324010229755405648885324192376436176335013668923082663247907120553894701833352662407459083769906171673162148619240768593030088175495272126340097709365373387578471190313695007234663204752107323926291466011900180198546162384652892989992797409070000568919379013389962309095647120666969459144545823063843465271573853904655858327156435506562854624478900231672219651700721214208946346985584746389712799727160121768595175026814323390933327425140159035614274243751073517381371624203848022446934267328709253770970175383886043470621998427104625429729555635282627979236229812812572720686152888178792872108830704617187836580734535164871952439854823381416955865699535187034112840637821097032123659320593321040870126152363843401984549108018672562060012985936596629616824354262155461203185809313905275283249118963424895772600105489672966809546458089230762540876301046818692503950791497154180083743287135350419493408132860050354115177328641280176793721634147479004617798664183728862837515661265829562335488670711064211758367347189728289880408737076364636258282547986494240301233621931031031493613032317478194169312935561958099267022797637935051002360761682219150748643764233453275877862681728749811158750065439232635656777468541415044405739771172975817641511090541010465593964450360610322690381345755920807916134566696284928830029372441302672117699480918954634958800306334506777227373529719140520838148210909965249972208321090081008384972746673813515037551338361559413889497919917272557748898456870391329282426855278932870340256697372471713263142001126653399571942657980120285388676857466499749113596111591987810172807663918899263720670031866433355082630721658582350551657612253998965751507770516032859006362526462319995811442119157873003942288563633875199058871220299950243277791445737970618489682610150514940889745156908976117233815810399290203073296693650643754398732669180348938798597576435988893773116051279545246203548432437493801974432774908005731157973038324420325593616884568189180378985152853614002954795493198378479022219275510149055748635774885787872292791431218259196275413574811014522313807993525008482785677400295623748842904838768485467358167971629050907780659840322476062554628068079852846761644230538950037956901384129371223643700450519140644879312750751724709787275195708329225438334740353064975048748810555570908984284002436239795145256536548895172915201203506648251997342015563512310367873734730339984105077608094752268120835530454265158200506871574179582166693192401200277797089007592362052782174323724745380686457189383670159014615792793187397037116571333019872550442028134715738080594064188164691439042387878088124450148897145147278337586405541770791712790470055408338963058206075377578005119793593579717523377639288845382892460307828830802459060921513721602678943098637762030881461004550788240819003642920950481862652956055224317803407293380759021674088110607122825475835825186483021765842963474307209303204087236067923128542183767472469030384713277857442168457353358277747403550502459056258876900080717302097534041074708401350138489743778804457811749205158951046711102822548334383146488405408458047426370720095804770948106637603006391742101406229115685313032378547006482829148402366994230640203826440191210372659917067732068755200642326649609659063455022565499722645750225326725759931692194166711786791472204065962817691070915536524408335848224408574978885606642953880039567795348140890308598635455563275106365157317091562861784696803373455532803264949198332151733580301897371154105018976813807738796265839647856832310179285649454668159093496968011833029756964157063455079489145585153355029601145365438127989187082948928959120717206620289204036100432470558939299275348261849654822374045686758142240023578058076685619060073858809883500240936821259302123327376569313096791234981469222147247013931295483318674582009965114365558630361867112457127336091175062613099206736212483485884605146220216955788878294851499049067387090204401385421375892145922627613745333294181031900149718643098761521942652903442080484392819396042911213229393318357954662306746437750360059187753387319857255994319713223436520665724413475554581796709252652733252473661552966149296531794057911050355219493903684478067718090553961840904739555621263301365164165874135555403713341588324165391961338428589319857827526051774461872398671685448883184794484329121253042035277037460179059639996386991707124813621383486050879117541525501196931567720546774478564878426430165483436851607311401345040239766466199826366440372782247116246795879217733901107437667808236403588993414478571178683535042085706459523866483773835800240798440619080764956087118392478375090982372492375608692540993728024582914880794570381877722118157077279989493019504464882996019402194256535859927495945353785322821285005876842918215587419759225302009090864004122851007583439556430898359564726800069250801073886929790974374970518076091300951177797664397977550600916829757309880777484409140164987278169707840532999096848058764173185296356920364012177154020919846704030220609318074284712353039825715520174391970954404770230000040478692237462515010243019265093734089899395492979154332078466999984868669387002929158714271060940750407322420687033906249058409993219127671707346422117695865962001612694961194461455632357698987471831548278116912794047484464268933959640555432670664199186815545933178856901966710240573207357396526294312685466384043759841320940740113832540370394798609792350817890307299328673203653894528982549146023952923944815274245533693621709901486260208610698191863552758515932048798053235657214138526317025691011308420698972621746302875140243378282315794325368724723535644515330984815884121791027008373693738056863979844979506297203154794967711746365103062255395211007409113702599132500550212348274881203494180897062417496285602529676509059555465423455988802884362138842373391087676140070982305978692607965627208673456228830179654181269141234366651045103114663961100136674289790390834014556971434401960700480092528939913022643916795082483267634318590598676269712623538022715386965654748232198222382851570918154089499394525753183229866215189444697481523338529597825208941327095404845015489125040374788869316817413474828586630092081902129292951030880731685582620296951525665472626774521901292736075883594212224168200479976290992903835263926510494840409510637424715135726473997203893620148060896524309743071442003342339549108061737048090069197714857000328077813632768150566274144176629323452669683789748681787484728207856715226615014474891590769408292103381426962107517308219411546046184883979929606460756747259078044735471127393406288381353785170419597162728555147211875758901366485418928320300882224778168841690599237224609315579129155780646446814989393774258317811124694268277206541529589723134588064483679079177730509015420702658841216581084968344625738349077672906258676153728702387979755301605859504956602494599977465386607256119407444136478657567137821825202317716815685608892367719335563042348352240107395769146605879677190449183706997210132017515279158225111913957987992735678355605874088561837045965198980624217389501336867694712237678770711956067270833656802480921997425462864761110270612500789217976000541690006732706540266853699139558505710330801547679184440012870535744892487200775151685234478550115051316011835890138152694292069389093015067341906719965055006974320921422068080739696221271254152945380687022717634766236562066116337330585423650431121684874774372312963013750220459124571919598960878340743156876592642888978193352053457261592679079310747908748977876308178255349403045735168420548423967674602407463350659555595846719979079287983200382111169559326994048555222775660971336082448631880540420897878543554024067485219860567099903219600644219984242049895011307166898181252359414914776413194662061312911965511917179675830711462624174495897257021813345807281468938256367025368786302017389610964302899430834207857533263876192596296911420539247299971462657953655006404398548452793031432255071717383581310248195389235018835710224015632261775097994476593932388004360728074425083311409646830823880785659526802813861442322105985800037893114826451690096358642148337731167567119009953405668943817098384755452994559914000564482410283570308809953672806607821588085412809850014382739874880831816458027770529257254589403866030870922572998275628474293313300153661030987069426715350922219352078880927230260015758010941006693611748988592204243882789686239808653405661038904085402750399969587121544177423597572715540005606631404129054544023275324680196214778169804957321816637134143505368430586641326258979149031943659016500106772053854838073479182056295838215377271438060061060643771167988921690668617377315242145226754128936357435518746719096681048161650352298224198148152068242707936367904017432366417839238559412447776870230736367996831285576054871690106436392266106920287868250586575076823589402498747091815975737126402499227134710326820792087718919674622845903736561825579331985194577184047884700740693444390568569936973553669638864950069549678912695204878270370461714621157174207257426676087269387203913741838441274789076926763614305447537024539602885405725700503418285699452186566581998918579771115720322414136943569894183901777291062792238346003661853838406355260826955469565217193876315164756475269966545543997654142734148997238062943469678198965314885432038988103252468002401353701002183612259716314452089665311603004882749690403550490469524486240518841869110320991346494288237656194376229593999470807471132593158264662728707378551929399446960989262985188828863037522421575914997420269007808253433918003810017370257942426394330752082029980677222167526367619908044196987054525534752165661809683421915373274481361688190841672911922082789980018358818475016377925567315499940051396853518807686024318716463859801409347541899476934836494863544380973148581646444587569097643271170493834519464923085733761161433690743723689193533043584352570418024208472288179380803985797137983523091288090921296715024724609875882694329823355475946992380001767461015483012462202919141467559910235616875884347870534732847859717206558899948270928776202734090992914812515932510085342775301172320960769082386108273685595545109303248405149267287591099027661506733089908126834882604566886483014648497327427301507410081634449212497060523025958321435476909709412876956377625331531825832688535643965856420913566700705591927561073419334483873061665325834520841737274894462067769332700833540037192617751113649919488434897801957942349812802406830329819911156105802609659871945043651375142270303379252546922524218444708146825463827493415809700019309979550723834978156777602963397257210628536857387744978751288189560413682951984037493870520855521556363998824499233187067299375908833444240254979589261633161392494625977913287546771683225258068472712207972403752346377850904184528187975945202002276554410689949063253672469344821027754965796220939097559309697927523522479197443515094464956947580365370467979079255001488398054470603059578463229688076531679858076448809008440515724859487332553763442602283601564593215143023926850013329910133482649611331277814454530976668258209987389607358701409902209607140868015393733261055570631330231827295770238471324480596356043280779778637350624034934984926157869723835614164565477221479711772601131258006217590809429413940278864626850590266259528085553763147984511902153052083511914190948055923079642328380965259923909518730285160294489334257234263946735218686635596344275919093244587885068340214886568686835778301116302389754009525007591382438699379370782466238618500587266781476188669096037325134484621833548999827893433041406178622095933390730476996262570167483823942672163014830148281061790689993753994486908547494274898952894109495932221085526245665715925292152504444354804526559601785589648781730321185822344705388837527493477931997346349166413823893135028359963033938528300350722801689199012191956331505781283272566284094071631872077029614899670338211373145239418192508296531144521080711959449845732148838614376822667966502895219247080832920002558145474167209722456826612837009370308678413874518801508944410599044835886401875331704964297360259305704179280204071239234310669285963034556245373834442057716706260365427766044424952163716501219134060158112471285901494559012258530094446682659448325845406031738172301596412578023285103930299078231854497530977469059166725911988713813020670612154150953274925894202416880148310436991575428040335206192726944558770375695182383053746053853918222580902024583261488008621505132172498474144611934155266023674719821387414581553996059329999956756744512468901474769026178987749808362463583273024448662718999554820680381108877780661307375400302485468456080454271309660433493111186905505417626126010481845982158624188082554396070111121028215811875420327737811533415626799137685898570537278598455310925396270383450978025128210684475600190813590513284877154721796304466456518553917747288647730140446916262425175830651974841628045057334163896983394737305547591436689292108996088151623986532954397393215029497222630896043033103966173609707115187297033477850854536308006714791526224357968025536856797254111748263787556948057286711349033415031113047308936037358622759394273506344527758237740279061117326879854529763300783934741047700347191950396581226131996250533116028541504687946572705004104423136654633192489924106619908278472499975524703704641569358673241694943759647235616439781872902501162321953714758924023864648960155869055901434300664374399564953479836456886305633276684803933571595849419581083146554214291783757912641904178183017633371466787415037419258943501221820279203554743685142225704995401596947711150862097868119095359132443168435207002961696596063335197213339365311506562946309327992151899221464874512801136924928590552803049458439494849618856085945519504362886684625407250171499875242260547190933485718634369306740342698417117607721646536198451068021401161600379379348885606496342674943579490679876312318270591417332049944031988463716420695641174168037194215832147482536477324905699480872302642296122653974038981536335808938120702161954535407092758547188048955999206984516589334473999971927610031004439005511814558435963646982678515330501836488113917905772876404363447467233861176570601676415848431002826593548091906767502925934218727767589666030944825297145705430239829249343378933614377545543566816570739435114727053835824267478881435967160122667982142661254990796633868713287219386768631788690037098578368493415199572389528759804523779210964332853740374963670772204850981528081930847254739838357573223784098377702239467525931893521105716929908790990904920876737729128956831080383518139836672620730096327153359771463935956661851829978221584631708821405823272108198721385289225113992071232177854731325937208114883324804737030790701536666135717912178396330712250658789885828263242915413582724608789227408356096111681137145895087919586877263175452992429408988813845773268102503150193791660722149197413916698673634487080525955296063606924026574621832848646896181093922759121933027890572593901371523523472500508406423404246479782888453279295296029567445404593891128072379234780993811124738535476718587348725624702224681371834295158956988214984793989042252820963610698838495466355002944133306575707039608357107971806666955984961832128803513029659558156256314532904149306876183911644381755373340757382135085260183016772610325536776457247352120303516114624105208075086790357607618087523591559024189861165473808252419943170745499138185149225018395121072708500417879479276978342461747638019201201596531753094503523456516552406931709016228810392524249808979089810194788972974759290628106125589622014112555600847318845859981364163277352809318906800472718174698394132692192140851284598971284708504405652123715619602094554021421098028051718011817214638205334980071159066898554523640251234225783200868181779734524318978759549694894722010208696176714462197138540291485829398571758044811804973269807394106177554590099771880578346977338405678541927105974157253576693453735158986447962164281958389736264307853146308301406540269747288943721141214804775361026910650551029235958994238591417524331880132717218624802750953491296831221129093232190818804700973382767516464486558246126841290381164667675924427143179627266241354967489375225798352681982852092729983031720053807459543017938636545837237374329727505900646962706926768021760836364600114607789500009620363275708498449753715094608840255155262910287588861526848603487630405762352618762119939286855258131599850916459661424055340039846158893737678879576691421788518449562220205914628634752975726536794980010987569544497928629590873822481579655179052969021166777653108212737613641025116739040875933430796749914888876790658647366469869742536895480198884461974831063837322318568304188074462163816572403763132719809951366676500983660411837932130556773261287502882255358891476807284555051301031064502179702213980528697508460156234385638197178503179715726602801545155590893018734742990816383247787699802526825862824630787780826284095408828395017359656081203535335393540960845845420710542214894167517015496490428437430662239303668347125765777952316653926895288170791201435639349937216708637674714527067639208965848364996717685341630690198325070096417904116114393763891779764495188073312777997227086714986544728195978489746128087480726489343492536140595872101030595454910787334468263052787586394815706926554191553904844316319872051863932456401990992775218496378919878257347493136301559138205620758133126379471735346219163860776175252275860825039100815798964376135725937838627697507535348968804953373568882221847360571770783551875533820697138477787431661925791511062828880482571242402226333139186207662528923728555685583261657911644633144273961011331994181149342437595302908052505527661994351449533447035133483721818697150923721359453655097987541333303885479102707519178446070628893789771799034023250412450596895010699298600290283874403296198144189991874920098873952505395151636260388279486853666357630820540780231708532476419400838498443399736889567488781702208244990542150330868548472519838213738241106752574465127979716182767023566150746896091304786771773110441765854381703504218122141708010310961706515920338980239860782760979629347961215525826070131977531886876526464498498910914908316086354193968553418848878972756250459246648642223751329438492239890255026785596698852100084709733069409681870007974128783758271941716209350237613229965757106299583031564705862343848662577489534139662188898396564724440303097321837916314184272845223874750966437538440001483562662030223393455620005593946645651413791396331444218866495513071872277734014971749217226545975452044349010348982670820891828572724156993569701045141759561049983559698369065382673791018814360317738757712602896253325986590577533540079830508966059045901484698043757598225837205765646751389191536430357512055842593308894473029315377125909599237103628513973775550413375202828349314821869201295309568769727691904467940604056215013497648203888429682589797800602068351589388405886770839564507277950304686645710407385699996267946892298659984717020323126970464626453370371649027600083497700313783263802055054525902791848633750974569924283021651894089630464589310393770630095089919174318319655106899318774704386592780395131051904057516589654671289831883090787549972206123443106112001876989231362205988747029601400107706848947400526053184166373578343425266611980301157262787832096738783077192529616373574183476820637852582752163023524033715558479501831858832337383432804975211870234541813181221800731871240171927476738476513170826098748559599570152171042612251646639459535778475705193701793490364906840078621788340395760534608032334657171772256030431684187273558399676529563441742776406119702584331815337105574719134059972029693699872580827947750794451176175401332343580872175479217787226035920057414843997542687282901185294098864152001464788079197300544213338563256809062928124245351590513015240369745651291670339904009731524243026836078377202948316505426963366045867610714847953974047858353784486981715536839048605552040201905902615834090887766147634695194605554782994989009966672520345128220109234521000896587899721123958874227959834036648719107605321590162461077663925727102417346271464455741291715487752118679596442888553761251732633215685150349227596963719342215401333252378616796151852011363761142788406966056578467984559666983785688148098897933102345889379201985113921824229834622436341008836000619934396933989672534877871577543096469001268520352590108086305107763028808823892995548224038220755199481117700769864435275618755935405207793813549021139383352312931958633586343619689935245576718710645563968433307013187188619296867213291976319565897707172666660734174365625179634485660504700864762996901885310266380283231296265011826206659843929760748111422351759659524094068370909042662112585479858963839750888227777033357630648437167098610981786962554564657496851837194661059546182338061384586594753701904104684684390644233901891071207641823905395156548369266950921959032844737595338152841901482460117601019972524003587073940823378162417210541821903215722421005107128853789291168661777921943614101826970960817415837812718355740772861444259334234057897630029943903344891429786734349455472128316027407335050940624763430872239461340356908274119765779031425113683372326026939526978831078742994870974602290304282822526597079452803713590692659892289369574446324564558322087618877098736863553610212297480122264625202881415535127161508607833038315972831653344823339243287924809130195086013839438790111462600060302076377646103124859882597567705674907006033933339324012096764568148519698323381906312225644728428100183983126308845017930952691594814490252709029143065612926670702748011052392301938893121745522493112842983176420423568437417995627150462896371489247354515275727808485550102245649420144441208241399591715499227788696403977468421221966456786527691459906945163909892199396044277877924787781184426803444903008844904208393285767016278696646308467092740484046043253645884222522160756326812961461420339316862011905887943693146099324548722211150608007077477364049278685967094995321270421964512465685431449694446578699551042745433946633929307492729929005312957912326680790114370886459321345650768895535075865555088697606658261067235482290846140938502321502791079078431488266562853700669783851215327620681335821626399811100898573553429193834616881997432982568146158445076070424992644231982850094519849756272204667991793348683937953148335341160445831755126441918983717944894268434744928813997974379578964217865921646703738164673146942914148903439293701208589586912338758942567360876463968634962371936157842846688531335351839995964294496351689156032163958758767928088614288459222160202126383640246327122806558247547420735173961290490058461482888381909440770067326387692487954921358275754939379130317764403908275548641380461473920723749444280196605723242661343609915135038072777592789500424496191243861997622419397826813547671777936008027038901695513606315343761134747854086509936566330177824579171763973257194366486062088980150846889442843364835189866320659167054592016253690069567337659892202858054056781023567959345999659062899319669749440485398851689924976737442498147094259987532597972332834259117790602440991013434970176227461088409897015909740549325103767893323119320879142528449734493332732688542258927994880175641141665762907593052539690021189325545713606195121768934171420829912553014076561102863732561826188734954166115186815349825553991440706160762318077661419742687772820185855831086796587730957175614395982136568641551285266095839602533933656558945586350132742158194215266835844815259910263881560015287807019626895914838835454515055346403495069992046019180379506714010418924720003208123355105289510822344103179787642045994508387819583834112732353225556196720943482145288138982325098312120719935037715553728329172537533974766833891961067763888784935551648052660450974127982355857025175015140332110633910360689352323867928810974995757841015002268591111837254516113813519016343553583978878010097581875537605022986942296378585277809822684259333386344801566651215160499510139056096403425958175551794198814335244675903450176574288218738869509927471124199300516756987511666833317987425979252703958669987224090335827203704020662036252489932643062247047717766553527464577704958884986198713286787849163860405992608594030536167177612449673547421299523289132815520807556069740140967918383687727773307714065668450152110605308597360132753109883448862468459275863119904088524760887262462351606288066980823985664448931485017863882761844987405511778040322426823101731503375105981780362645787757819132482683797447359496136009048185075214563453700717799797921909803327887863230750146303397547450951547824895690773448584117667114783695295844576540719042280559567194019063368695307870269135896421097870583220349753652223709011338040346080998254542221703394557071350649013011786705532057957294129333027479793305295881831136374483412346494185102516655757580459569934790006586549286799372257234321742279670765063272132970352632693867831636188942868274732804957242358251574615664681707348080512815505353342464013400266623835510248705053044743403530573125608385731567991364461233232056859641950980491802251600716059497616864920360663090476448135553536000751531881836792808202673831639521240992704574182535784041954991080551948786165861837912162834497386496763459996799431479925311374339767577238461995916764412300273199658509335960797590820830521267418634974022841554682039931590776615289239374442175531952480409129667887065819836632680076263367257220571462149292022845949512668189531428069625709612640001734576129135772659669984107779229142186654850788505041238220090287495211716919532870990521118920884905897998160338145956630408388119579077779178055508781128404330190290883192234038092757546076340266126349607455397396832368936599568708687546599184792690796514802987853530315346484406715341640759924642609233417168722886579267242792230516645215060062207811355174186375372840035111581901148395181086172193545838609004384507567238025953048369365400122033222694814208705286873953711468010758102826060680840914160511049162952952648686065359519345421757192003293869515337558325996749810490737871207618307780551070176546821960207115346467193358022361970752160498042374168269703046258166383556268968472594622979585244630259824377264633797878030707853745780385006193423356042771311818816039308546722772810582709822644834799078927498965369601064871250241277498913369432298426046306650157872327678123760515706595892742951585755359218890396194682081904724980796804885381225068284320605502488938165480224857280482690034064500717104132404950232976960828076548977390194416814373460641821751577274701025794431182650581362183002114566929763328555489058542185909761197872567437074124962782873336050555146678424351541129543950101981481200611216310779719110558041648565187596537966063211286084440341613095135183992754305499917459853923635316230157390714312222151381389712690242700031250253334634193340372761585828856807253355290778786426154514751957958946763084190569663902705729477466483002767856744416134300789735516388407393971296376137351185212021433025660285468481901287292023083600580948068803621167801254950880349529356628329857152302692888763939064270761826845837768988612222834534229469540440682675660264474231010708330424924307571894228942729839417676558747329677286824840763530176352776448627309183093372430553932404754214775972385918632087130488844218994583883164663752479232680165234435833323813787433437805690683751257090093707704866326991512741087296623946920134512155793573592191120232080924556445647593851857337481428783411019092349848022632269077833636967663783515440965643920404338538839073331814012262762494945545373567825436340974930677970746694538902873915044021739651212754680277035213613935519105741598757792325182925313714948636777360568885263668854124141366570524136842345394505577503016638484319944747702410204807539590663646496387459956604961093480118499034764036464922671937510339785923366859955311706787287789450657923887766963933821213498788911206564532449888354786810562383051551171966881350572387170061257585383443171428895369718823095742365381253001116750493138359195735649389877780143215092860709533377836787624382575972686798426872032572110122025904843085140931656731246188388611659055322066709816665844073664525458472332161295759142711499028089475534023480079298412083617404552320106118787889691881433962299336864241151664266571165433526318764800081873637153609962005112537776508538963106961397657324746653292130123514788312955181490456617955315271228592908798762178756576353508266980467840602208136646056839474771332418675514963419124855647052546477356140126319251918912442653285092328415415221377588006396085314795816497884290919424784619855902627833817903196497596528311849978950199476595909723707968737393472861069312342558158751281558407194776478654215039027427955521958974336806847096676756973653781456565298075251432430953985280112644267637312597860498363783635981387766572719984506296558998541699853743816865908872935826218965552715913926801657656691911251991628878623917440131035024384097141492284719299497168150580588506921360001928191002494470727506956687762950410977330373219777727696718410601932752828506514143157304848653702864887579006174552708426938721967839600085059888816712564235148124521908164870202248376370135425698291016999040920720620113167684101204592104646043032787237058930960941876962787447711315938760329610303671984424258264963282359364841719429958624631163605357931085457449516354360693303587748656274480542128185508424537974293987655273749288978079694960957416287084255335229137953680165182227313729082216925434294984091039599620990632234328626209033041527901663353203401233071543605021367457320223140344730231917276228956788573568484804980726825970032787948205537103580190253416071655277546648955697187060806792663426614661886026243981517727026019439218427274895858228280251899990721130762669663459352501223166349416253563826279366592678078466960379529398554388823382135148217084594807742950851262123183567766699473804286689244512503171047039517615408418988189281225540532809881104156953651701195117963037317679406404640867144742789415601414688479951401659413303579815416132715842547236872512615914588933001191602759798458627448442095827769197552347340307456598631586820227298989329818297385829847906831191903899174804580960709033480193537024708816366527656040009405269462596541947036641920373802009407934895342246045005709273893620015185277694553561742067090552936622968893550566523588347154963180152302359891592110023565127784259202887108439310536093317354127590482740002104470765257340497245989865565733594869514479172571180516520424875850500221686067715062115593652232230160543429859333639810285248282402171187890835376813407077183419568128880688989039699744075671164590916262313887072191586904747972596657183797180139740641176420660883744776109266703544548914941970425834225455932960513986920219895150075937997480450373501216528934214273201395064021480219904949524703816566875862788994349600955934366837871216944197484437612102069250627179520770243080156177045037916677337952093816410773491509515366616014776073031603360068453907241395436193548730811031132707475273580641419642386213470153929777215008078550739753046679233656918885862623740471530499852391782111586387415800787075855901225849441126054948465143903618324675857132329959437162512200557288065430600837157230986911338827062180577249046491787517485492787296025793655478713563860721717120579779083387248916243309248573453050572502666847107497222776831509728741343878229742055814210945377237949746218437412577574761152292636399556338301138136223949396428972847203218830102082705047902349654838931322116810185038238970586362066563467831633246381456186458480459194739325680433421971596044409374721675292917661977141732551848251312399300056449579739475664330606026900400063856413479102944427003189980549569736172869034822935142927289829486704489594791015843173969119231438722958891603084597319143000448470459587013854131833520859310966327286628808832604469986509427549037699911644561433593976548136709064532511364430742938044113347376715166234815286117206283731200045428431836945739701266997463788434259429004311601800249204283427126927537590599534910994442171963578894318707725711757512410554936142580347665906316004844493708755766898315874777245924704117808577223548981439668328587766312223161545108012554591882523145446568055376748056634467502839618768862360147567553298617614089144404568547023919285236458110247000646487088950532103218952893275268507524071493286741876012732711176492628272875725598248122192478894317186809414364839621255814412009685726032914083668005731840391994732644199204442355012033338090379679501738934513492030306006242799510384165578535397883079925320397793586694016604098504298944387929881791250220124746013632196824068122925111601268000631967569380512863406430079409866348917815870694144893235425534247110650883197601618595262286600703161019164598358213933620186207246542971581953862527699632982865504611875481717964390860304758188434057504070651006104274060177047863197584995190031378590429279078601432706231327242339536692896361385489916707041219717524520574896299236476863929281962828543288840161254308515936683250253316254642256088079688656990093696480678177726168010717689873636975913764493870309725557888437247662913926189934922872809229584149372574373931226188781150850625459749411113224264625841698939659459180562352681119278131049152076454325394695834846296744956782925455404578332206550551406144389945239381983045712390001293183474057458092740595497123291348820776414753709686154888980889586496200850968428462148398193547906019957364526059596061809897413754401030199608300794209091368313480465846959671951254060437769354806098889713925477668203651342267085514306753147004261879828584299752131163623092689393202767471200028370135104066225424728156334530384962592113977068706124163737028376563899294736305267407592597161696925473624911528505897749372437142086407965887051547581200889300546060009960034688311642779153144409631377274127930987278679214249135940621544134846074553651776169264022274325176528759989132837369858561465656699778441116940174693359320219004179828446677873863658653911443952619586717344775317311935683899025496677798266863269090371614815218287338453939940601830970001752542510958381421707424080065871727358718488538240543135947379702098784490779837060254782614559592396262100789536907244810946366802366045179309678349936414987072607867336172994958113953911726652604246869349126829069109001239590717281780572022748454272696114967950414731469583553253429880216813225776487749031405440484789034872632879250215952851076504842550561339044774184579789340277360992102711357176821738418086490292259810105436546966197219926096684897379179469279444638287079155158192252775233051248092757703634642765518809535921888153256947124031785520277219934550705667601230785092071958878404403871002648283415030757889992321782015553631585377298757213639222406201177538535760974202897565505308362960887810399406059827512847388679130871927975778547130773664859920522263600441127620271123141154391814248165891463929877619527646625804463280014428704472538421011273034569523459709224140864890566597301647596228424087368559668609285621526625096753260457591326357010240070095402253013550126140438156996171222167571996834228332333550503515302604089235214669684224255027542863696344402382947745113773945955128380926801488510089651750266618807141575176836849349952018914194288231507380218140934911401946354016486337833435546855703155367707473223516997423159900651197745578507435429242194699254179967056287753840759853031331025723659600699522547557736974007114442305642782558456810899116018389315991847954763502136736700717255827169565693671434178343457518233511936946594405609783196855008934580588820804671905985158376286682199874220314354570558072892890157564890460058555797285065545430311555508068863270134198026114707520506431316440951047551871844674794032391215210329365969057669469195269614256134323982043788483838649685128119329957937884588292947067512200389651795514782951984046499342125455684689990806526698119191413707194096781906200505992377531216074121881035975403313076488419364167804532882097355246569834423645887863125244097697910644845838238622387972340987261791357481043702104820228767967549507545675274597730435634710238434292727946301845347492546441487934846344909268418935844616738075493275370822409729612416040145272480786755433623316750772986812294959421967942343558036350717952223197118380079364922463096870305120096142410407129355767640586242525007902349268404175935248309458126979233268747853513413106597245232376139682351161306757208644861214225651514459083999278779303231254062976567033311345658122174823953630225234270590554558721805009493094396508936981878069848969450994887827046703279727212593528270372883478630914193493789596696541080804363205242647726234403289890426282866134335319248315569509310626653326750400377563091231734759323395128282971746550836354117870909928687858442036285287260532223448565980638894526077834584103184932658147817778241024384423715737668218972474066600708299832311612744167302225866086135296444900562034140685342340763400579750531253423545405614376169149011681625936352127464215273420845905910623146499549723547723585525888026223833464407699370425872381166893108742102346100313843485467350800446603843183016790711933809103083042223840215678302723789120070058226667722462808404305581094577078877928636528818642501508840327578729594365370263554934399114311601712591090799002097153877375703424580219401119845769478771853752650719386447771340710173874705787566698068281870188376942008405676529509728369134464080135879044312513409700230137178876141132791776588154887448553592356611762179999091308422430674929567891329534724290639212363587949625138164555379219605727139273877578993264405696910023643651043335431966247623167150582956149158790100990164992966677150446459639731920876310159890153808276947331189723001274960821263189761427796007370137110181834119347113688577468562860098525758157481530005275337697901714656282759074534692651421123540855994530459459480890350346307547723036898014592863735928805271030807466446172208678507922029972298212416540163449033269726234795843148913133429534496987340558441628554151676671836171951401325378072694566428315703599787938175665274019683412415358787810942474658261134290574182227305290122370212820820560687046138407905923715998605923009897516900681895610982381551789931147087557344434559502678470169222017650386412118599109861191008349383952514542800873021941733558885668876029446135390386759641770568727582930433511703645340886412613554287284760756833425142094936691873895589856716469802375939416018943513909651496469845988654108565918501177367058103696489666674516373756602876452479248753672616880399499819629410231836249498325518092843635071503270730699932456038367411752135345204444582915331848688188592421248414522076284055131990726722115617737072402707264613107419018790155584252847223383930208748300732327100130335887987155322548556055744801907521280341809244752573539071429425634936667948306526390716242682985588718835405585858801882336259684912201946638281703663915751933676123841491176292225632039835024390322786444124728916211780034910553062342473956473897432464954535886946739596969846661646593168522745583615366862749325591089770361186762113037671238643076687340756908371632325700144910998725475507291572269561989880190989245669688153043849952678419755320776947038816611198209456657220357457480384714973762582393794468075800083585823198355019877470108358757728188400264314443721498263894735279034624262036129062182894021943617367663479345169996841093616165428150943061907341870966292478703256658144879111994572555195459359737649828593598027261070081616348387139940222883139985741697867922316084579973582899105737101731012347438622236392317924037367059357148059708868637088999030605556831973141287654144766965108430070068134766020867227060334292716697735992452769806925760850066153999774023115528477855148304264617108602864952742170478206571459751497246267581976982159705200575488316800324648364588717979386214917012385959256527623411954793848751313990826611984235459463069866121223438175250009216720017278139977691957570353811575648787291681533610335322304961932680591869231645595464532861607114770879747044110154414249599172982379222817194979716680349249313258079020130953206717280144562978945937628539576747004676522311227463782428923973351990464823506361781199774530910431708419409566948443661261300895395644260396725557595841287233244521151944257067506616902844673363642713377735364955304986517815002057013544723521834503028524682953028546477228640322667601796282147595163704157758736718642546874364008211077624516126279262481737253182250395236066552149503507471276452072347632431985656274533401804232303896494006600197278293330243988884621237521390593271585871014229064314377071734393225944046260648234243243987267100369977550106417702806831402240194897527530715150004306151715066781685692392462218436622433507934086242001565377847390080327053601684304540187283426413558796892386995331379728663088127063737231707298824503678225365550831957706547868953565365232634522683396484083411675913220594370687779304527809946691131638323800149188997654878154400546766656424608424874117872332586539551886293515534436474604078612359382757142313713172733035970365577566576613318914438799646302819001372814112127316112234850368971028632855445348073370892833021745336262267810863786597748436981186913860007172687349348034308997778825986979912816970343825763313504471954408360634670379458184652964044667626613488096933548704256244925163417304657779409822108423537179024826848888609107154977259396881541459770398041009927212891395529998285645986124308995763699964219483567611192334581367681811324938133490321942984283081845254280540098445243675850009216421638221115152365550129215827929403763026357197731169211583874577919594070783383057262279829747178822506345184209335158124947901751235607519302935511935676841434762227673440892869626418929418641684103555173451486863014458422178385677066338441870842486256213700434588773607792955400673737720981476155774831441971583136526360976493720672153943400250343399605160039916155536044077462711677907879598754540628195721798332310233457032832539597354314727128552347685112443698074511951087031560579495763194976289089313530159557170080786267050734404230626360992956109412419097039053066602373364471746179506088908478712200544150182014273202746706619646565191089626876737885145711550555039168551682146699361886136293977387405578037529187585206387355580323112129581373984721541474404647808484650340233647661870200372496186636400277956381972647167441729206988615478357673632598232823581212564235412453501177107914316661862122984684084602261214680192132141636080735781047176131169084435207633727541979220203661354545301100528541043128194448777716671123917947860549823120563631615566057519797627796155028610829444446139141578247134578163923845534855964115306937535637908249769191463827281864277367803365554170110090493411307198183286920511030894791851432034701733858306782512781424094095176615545796524186756790238432233208776237137030504888712974331962923489861569350245874312402297290861221117182247128992294388472667077177342440657268553416579882002498593156985639777306531130866513994072162302221128304159670567382162170691266137455876900746785379562176602340058278440076500998624207769114548735779235227600774239040170084670599279229234267354075465480076848876158361786897992907994698616878753954372220343731900923894203044916886878764052567126464131842105490750685720834641146903412833734814207404166827441523732548107680579895488843309648372806953379810663442838015126691429392464669109332501680734335867735563005811977498041592314123359654840842899768021208884966039029714938949565681866242107280595899823250359293790879032718606422922518971559419449396681325942586014537581635802986347227934464444153313619261547457860416477122010078307832493931184071158775721184358452076720573327695596785352604227698033924154004899187505245333203642444478521755178881758984197417022642261213761829723562523154486745885728931245904237669280639121667273015959542720304219284807291973568676174925586062468174600964420924167761146031436493554043106419441173322760948821772903579719762327612730770389580954513463474086364924252550706115915176921422170553988343640506736979720535477557814535200952412777058536879429428934163028031672027529141352135538237265126068734529288982031756619062384853971634900768931906417836579305277916474616673402747018558380523102287718271475488224553591940214920155920106602497506703533148966097448635309480151501933248885751763193615059824310878988087136565942026290602982086704623532982191015746670556229344168515175845913383068861014109273828821399652009181537484777991900121106122556882739204951984557480853084549395884030250474993611771524718274019868153384600729934097414510528601041653803879075687284853354197181437070517141754557519555819950315770988524640874461486937147944907415477099556763674449083434640881279999106527758488725397862213266567076981479956210709340020308107356959714350255667786363358100552523277784519465237477228561926978331763331483928178660027548272188182090377124500668251002226332274572885498144610084101523070218592616541270637657137077536063588374338855107768841528250421972398448915701230217668239070561077671394318048744635510389855929873224607344794452220703649639134628594443827745065805396392735063580351335715300531440648359835958807080294256174792732050193914741591881858331012319428099941094741715023478299336991032146628877640992940724039776456315333486609235842060844415467806910436933483160041351825093044058511849182479181838008608717649645622278106896263221954486289757133892568232844029244074746662000665458089976617859805672937318621355831689164547772953864181398919369445953101438694244271154655102105669836118093668789557325589618351717016430385785089903048826763809719365688347650355730570678524093639284013214197976538774954291475030289588372952657436223642940039082310876016008262358171222761810332087239810098325569422186753199602743011110013397494563407815414319900541090188006371925756478579609352150704522100751813164347689784930924218872644559450939957583546893626548180416734339631163149014716475479600587924103559079468257980139023722397841537539332796167200708699875632731016776747201707710749908203620621332194411010866277065575711512586738106507679167251352923919622119203147042214492133699495268226454206617858449332109524759722619694815680551274860206846858702952335158006626964600778896188388852487674260296423796521246080528182534208011279988712788992483906063881225564185372566174026797513191723258528840733929703665909165322025043155783555775614705358009765326960835366360489454081274034612119195506451845370906002262217514173945193047982458142301064684766024984108719087841469579766763869333727116807653958361344487049921957681700678379420874731771800299209048383761652168904704164018298291465165043462996597644193270289271818858200614381708293321417467012993497841032293051712977881715944098484085420106845324119107692248985224172870541341213253632021136734614173118202923720495433417873979911183951535815083659098260132920155796783985380693480815070805714120566948739541231952110064527522032107117950090863744484395221492995752790835713925717373647394077379109641082360472482904099181280384108864734559016060318258082685265969791573754801829258242766475479575420648337206829558264706495742682259245534474299259350467478359570145848719266761743860929255745400845039660098035704347944446171556655693461139535920423297099421292776848864346445632950309499447539814264681321872411295503895589967284122362311530973789587395666566976981949994780307983873829948324336694955956812008446682752878681220355773935706745541067936803521102307939994467843904762695375969668529923135012991894755299732019087173567699976536966712186934837507790464480682783679762091100804815582132021404883872930760628109769447123120298278736030023551212008806229141601899699478010437707141819149829042280018541206443749914712861105645266376547686757657660451129282003621059904818084357822704234764268004359629315488928482574100404781744707855129985332046527445201655796262291353437772152156195661846210051996918724360590530342360770854256719562051060935462920353677343714689679369865601342278918394343668283063826556822199359267961657140211495847641833482478431433991399602998385030933821788980122661907452754776937598402096663080987320704794586580795942277472839441984319436953029010185925497500816888424202787722178415501885222358991840872238955231453111481007686561919065580616661106409971601968037405013050163173310043872050011723599086210904696507698595491726716070336113016670731877371756482374978322083299461970420440881471869448088444550178278330080366084837422371944163003741413677721860824452813683937504749982392132183063941769403026678942550185175850234448225030204012324907593490333897708043615595381308602772904104447255298384289768999618374429060474609944515609866058030765820191226989070309592143229682133313648095844260003217786165751340444741791318477881840235153418758152828569955942703931547025453854321845450455885792873717125303945881526181085104950067238962502266481886053384346464125305613977202763694666704428727338795971908458115830052725335042379241518532080051020486162472783072289303690516480065024721419300510706105199018647996376050069391151061276643763017574022488532496091406557294720580790678030716928328919367720213366988007554772169849470605343991710287958341028718103105980082831301025969764166383555395188931392758273269568205104237251102399700972973870619098407681420224582951394715721750079310196746804307068964795454969112937102564734922651981121322273810917077671514726750392846005114323994657797141468623641519468128573886403013812926949476264162349661662421498969709787154638782273733362204150304108073102719900344137934822115017390449762380619376096940791708638070543775244402975196723778661123069803544698654332789934676839986507653108861971721677275259070835317310157470457303114079879513258319879302027626492842889519328243855910669949729200379441950411414113671279793269654690714012216776606235637925253821168209375536865740362782286313630686083421267312763391511813374289369541226414393582081181354232393183585833418527921395647237288583093840727355078644667954385571869537839960595421962009954418505824644389837487416391290375518349970259549275471456374982170698296865117428160624321002186745167951350000282159682049884821679644068571603343559703825198690993293979629054939451389272511519109880951747211191817431388304625026967792783716506125115915233542471410334913788579677504487439496063483723032372930172680285357656253072292569265136028875601611361979439217388750328579300360635101851234564372055889550894500226612717354472946648718418220241278119179017304548712517704191810693536283669404336269172229449100100500193819992350179925371246201590082598799486820524637432118790175020156158491169625222535210426815114466737011111328015498119610809291440425686325221259059260414143428778109434233144503684612943816249165964482941261406719873933862947014644777633511879661944790272573116630744476601802998477115996819641307657803708446948682772193843891168374292878938369447802116408479644186361437417361268866743663819745761167591954988602406721346245914540703723587791520362103131805454328398495887136332403018920047751500123595372745543436017371724650763891839796390178389853266516996068479667465417241581355611508700402497653176259095405681647574396525258650507346440324876149943578213235282381410760761557010200279996228245037710458176274270761128926683029174579883010672826331479797553186853205771124149674882109634475705084378065394466286193514698362771233158658097907806891313199228157264171522629776004236498470405953902079821895606097800570051621806123710614136995909413811834471781834120614426811014073601534147299347848197416759055990286756242414835830309447419498453745641621087840744863616955761828107396107888839163276746772115898065441445447212509515657517866203992006052229690916483588465393762685670609135591438272177078481351143699771169666138335029948109042886544435893308525589914220130509929870045205982966907812305023860586770031300087862115488316204171112237845931964430374176736486024232267203707340499652922259267965901974451198948586794898273943285203760114656993889815288332747552701583152505242868484907055791995147548061819286923510079381550938054878163977425904358671093649484591954181160781916844657623105421370079499671326974364451655981356986266565597781176195161148053191952712002476613492547695256197639310872248481528968609008468639479200604298263548857418086366116651344036161478076979653850422746479479040626991884730757367645785592385577527278392576300186285983826353465429657866157241385697188663185214286053531646840738546474076856577379883077026992231221690408470486655315159359455415721662385068125821700067524288747764897108340669913952791008427486456203018248984161441761870825578693269109462570359150860906025833742841034770122786541890649176220085821433291451449458357346748484773115907470539727967740466815721358101988270212188856141870261257750229932064878365813305051461699127429435581806731791399344376087572161509378682573045019447877570628736693251822864146775573204656942687251496644156109554615054286023852817090370996946155749778165298351222966062518056059284729661950677149219761359531833518589191547030041029405049820863478315221570140282685398202840365009646070417839516929673863914256834670135897581157691082130667521478733991857618071041608872042411149872582473147091029972738165507248417722903421387208251022585208596743425446085154470998068307033185491204202303379518495497994131636299043576732543663144414264588537731513233417527289285313802098282272755998891516287634278749448395786546435899609900511866858796379315226792338799879036617060081314085116988633552445914429067233436260922572149007965360553733816516975935934244684919691723194615070656571675447110384891542024762945390685085027226148071211696515813035342982641108901901244377549995678093900790425866149476787465801759732194484309926820504290423567887162842936329824207910489242685160280289812462709260507726922279413073309795459422399578588278121236132955797661087336981081308721384012230578229977812954883163000636157036437641779599212346199091787019614727368098973846123530799835219930337074468764895187460787697007703479371525071919039709520242434990159839038606381968332187530054131655448846299490898044230975817280602154111666280153408406333451859813390574678349600751505889999993636359584138901799298746548330996829337590113089865733511537949473543309477433996289734143216753496077907775102650846333529790469768652878999178368419669562906976481574673347410743888389551187319834550480411829175273323161147314733414670321458297087090706166141261940682148089211401781926836787316050376245880086039684221455145953749731054821765826935799344191386804667986072080726793918846140532730013765869708733499732178793173669554404204975767878184546115621329515119592593067321358909174565840745051714876781344698238808290577052932453467812237752780974768986706503326762691297742393051847090388426066551909451428518206529525361879320246750828596645528953185491476129933400130904086238775474332580347345001395114665322366420065971527643113716726404755459493609346531868025774200652936058318258212730537859141331512923655764935665601081587479767986226574697314860474470040849709687090296687463642495017090982327679822887921720693377839234238646406065640479301199524735008653360157264525098969239829168803354125736491042726001609476757012529931907643932180740213049386410259294245239037009545369142408349243509331205813064196631529737944261246362837001808459728929114175316983908444215303422654760761471971796440851121181986467077723593543195035212479365319274425971728942325092987344590419955215068077669647645722099469286570751176890466513227033254713439431535235267511467466090961504349615325939518009062771516229442718799607271476378663843895592346097354121902262856563397938367756883728691956589116875056394625826043770113574064983950509671914659193256439666918449442842457451022889200936920203700197478837289363600612630789996699238079910515353786679724351544060525483368845131037445877719852037063804893310278138593285946207217647891192824778541539149413485767558751456731765837022844232976671718660210343144007566064861403232888167364851636769952181762939270292788497185916668830794787927681145102378532205966710747088339935615103518168674743979576203208786828838381221572265149674609976769351303990774873103664165777556535996812392561722123898941026788020455863446862843344636286322418215828579258928459989770726522726996318230163731025969830258725114729661422889347738347701840302792506277949729625617497844014009888161938575825105177282804731452573334014006397166714009593898272459714595673307944822725145543821421256079302243924315171824372963494099411409385442024436112891481892059864787413395934474974619402028519224514534759630916504821635286314062822675870757391329475449435982956762046677257395323592785160473619222783958645758721734330401129080021853655922150759841872321311096752725473193476416239038719523729739691139639293234236071720242767758159088250668907392415783594906377571896697636019102885131020628032988342671484769097687439330120269430246670703627362345309109330921315571859367054302905983896344678597736143267577209361117388829334988664534054963566378050222905361234171181240412219034598035916987227150670717238667081915776562669811166848730273302196900932263604474264447398591362710438056968329700607044158614736371552736703266500851910313559612058989625434698349520806767051836488260250832418685662419875333825271007270038832824408395565993597915935149055750285131232375755663522520965201553477140469099689019937458244335254416618316352886799167961434527199590914284234619973366361885650312617950647478137179238885207311763549771828627218350334119854469265934281085467346304711903303953129633154212951710771389699889220215019883804997574330492986248268059816344227503208448417086532915075700461016436706815759935667691994267639286826971400753185614811442280603857257512305559606343737183999787355201103823502390719032719444441724882103184438113756404823766553788863700619600667516552071686500153277536121492132520044726350384991531115504174797891949419127142124620693667321820378710766876535676934421980474975620561649206645980288418582407820787094378192159379949974870530150194549994090958414241106787250752071093121559502179233413631432432009275881022716296175646484880186418580263370605391755628597184605145420394811081120164076842118564572043234329478309028298899662028537040097471076449911558024456304026636486223262458263563965017140343540102269860748486290167055624278022547681569182049875447100430473176143794897412441745225296064392605145538610881253294264762434865561638669534084639641350416218108391446239745732987174975354463451057177565536655176083467792399644006429210962519118487702707184009940734847080923775734102214870742374422479594509968394755712744179643472419074963179246728084806759179801745950399698373332684940712934220712087665183484647304628182929294722633511321989478034777828135175230244585590360275567178674190494832373130978002093558547995274583631679700165666172737491610919194667444203860694540651092249060620101069728236712195208981462576584616287743590159257707736821920100165911820095615392945617059864502649760606762757713001538432430034130563868397333717344461981315704855442227565656308956098906561008464612202189671644808238041265523990264715735236412490159832803793288275847452821644024355672816071875103490830399189323578630276402349474563924424523901671502651397944983172611031809478833406726117367425407491994225563753262879388784797692277519027752787629674397690467826328065302064580841822114431141519818473848752812095293628116228580915249990820016720894877029920074085686598126774896411727291809436067951725220543721879760223853343671394074000708972994420936955749515247494462326731783016551144782836877123400735241688176418721520775706391607615551030232420873671556246004320154034503979300875671575113376539227571950998573082569628540740090979959933904466517875783655706764086064010738385530374936127779578436512956370133542014913894930891230473536131592576408697326109681831114488189509268466245088261381634582841102602438126002866694856673499031304593693604153569950671269196260462646667552337574511635593581763673087790363746908186512136860864406463493992386120036563221836308310831313035299638652605772787231900284306104827647962065189340763821204037720157488175886520529427530468385559912274014652238830639021512118301621087727515088442189287844278859041460714874508417398639618677695548660609528771325012424083641365602571027736966063268299441928218343583867828623806979311521764147371099165979488922385360323017641033231273428981825723640827511261028421848118995156421064776036879665292854563836716033221228227926670320332741807807909311811884122660229931821949306724958242355880635235913855077551093583595207393047031759028168107647793445817227708241236920887251056375834525476553705869254273617701466161196230078870045761976446190534808891295711692788116790181368944359817422385122457884771045309571544418908062485847617267512360941552882666686921458891808021106684384575191564932351174577748484540154714080953290173416833744265071612917848238544975786166293500354893907308910461108455983891327775237785507154238629455367008513298593330430260406710964364015406694361054976869453129106943526162147446003146654120594492443227502466903980955430444130199027805460218087428515757922787578839198669587974513218213960060599834540191270975503708347150181352515337309197976887134264530138172341722071274209207327488671412580347958353016760350096291033365169283508482041473470252983286949846631382261074223474960382745629903722830171628293742947856458443753876575513416079237644602568549878021327935034952426595895186483572816412330072316845591742576158057201498536376449761029475129744752266752568317705452006052094852608477955511717330529194133231124107627797969917285672734390440302612256270169588739726289225152715602541128548797982422611483257333029433761643410865799699725089892720447948165600139112140807970759844596025507071753898447120787848755477845441286978793978067393931241425085572738656089211549837593668805113667877804648165983546551654971262721405555942450053616035636625570334181512007375946489666465017683606976808134777906819068973172562334633521376942077624350360605880023251343335643188032030963814416527943882803060298501824541223420089289979297965707629253489453607879980406275517396477945359204998300923586164864801278266935858955458989811345680139274253844536213855553685898071358026848582444250009421914729223257584811804933756176473448272959019132163941334739897078328719141088038946844210926123909103118085279483390449039004934697234733220015257505398510978535038616358810090982082123485963927829639879828150664933745589301970551631776663763390919704265568156655296626292383402486315628995095017768187313363169438849401515839785460987285322922490782090645068802139497534934474806739503147380708581130749004727574517119540596117799434521025820336598477685608037683756335226608056090272328293830638528148318008118111281745871521046225166884097489910506317803611217983023247635880092442173280612651066125831231944164757596468029762279751430547643859470492107646629119892957928490096909201106367021680712623496798028809456050273803380057505276542857236010120358864991884640016147530205804748005982511389183448005421109136466595245113026927036593294072334044701836010519742827311405280359252219018712439442300589872686826489059652617255313279463735667119640431411060629048548007462076792272293480819227408210381150621415180146724879798423936465108722569679202161652666542900909844797041330880622149915735838143615849728930736573201885331102281963676292478249818339470034672029711182950006082452317240767815946079647507899666788885703641839272845530642524873062318390466162485278317693418801438538374720195984268278305602321907209130992269682847552071953393046721863257769247361998185514799176746004383839193156729494500331769318385795215051412773926945254295986640381922250064208438752617129289405806764197205073783911021924357287210193181591114898250621917948431796467628385367477372345698341546588166465250793972747215381016532770514298367186609268001703847870600040452487964178933594728145758153865185465325655120594797869585752906097022427149340535989825359540428566374068757132285739293005667210980940188054832522829548902348941124576320797146558005231953597119217590178466082800915751762046188021019152117324485466511764934240983134987687471355518187858034472028140868893413088110840390052802481447267143896558630282865015620689614447817581727617905125279742286194224050691911365679933139556876294723862812087775810469553355332162093747607855588144664410022152461496103493264439094815748599955754240305324593720866211277697772467346059056357225604423079881752881420210625002655051562830578568472433815472654006422585868146945131729209627781243997447928578509781641037739001318932263987550921270605553455525034171151355213318970179945481127837153635134337877390393406201684586080236589168059490840462827693777280551670081594986294945270092970432898075628494433199818866568831893983953354561027683540707338930779737875954793237561459068032666850208062513092218731001239606113779554899975045815361217165533892293108506468498480163183288966141017164212858994708488692181446843484966173600011313097133915109145942112365982529913782776588132706728999063313171747315999430136009002840576124306780453364529710864658981490097644118930346310824647776008400310221264661672359104699978994594361798036543173825370919195551509859899741041032122528763678449067275301612981468134998079179346752264210111166115442350496533292748477059087948935967497698615487835896854628870849426269906521793425289963861561608003669257242791680901498076175112709199199029018245767731436354337824755900135047555868522561920315027791146824532982355636796292708910927358162892606649991572808528800993829501309286687005643264413485916370912480947533725745563414451731037107887570681688229514979958892307782112825842914449444846139176034811188193756061269195848713170982488091878139329050694366527568846005675027329514557829436120974182869944326246590570466006080550800742941583550145662246609096021528368721143254583142488468737606031884524077292051836935408483313047889364107728490147980277958075321500821746601876464455392920991998787726209975627705815163726342522253845395320106147786305350889775059078551874961865823515735128197723764346354252668914606594901282750888082709111587718316158617105956057117704763242493269686125123545832058633999234249093682030345917999304806562629827866486997907258465267005145825458897675114948554301661630087373203992925399064857493122691126799989361277746645066471558264537043164351730617113535006499561722224349483472862129184949750956990611965016118587343353417947859720293066640209202069769706509268621913275643513638208683953877750233660253832527130216957749569782610024702155936297848119315866520374903057934830692236309523478333078014961520546253338073743115642591059822584770486292005964243581241250642115037864926819519608808221330840623430734180239743261323753979945052192564686348006862349704496172019437999636796000486819757834663779276608134673029483382858146457913236365964166670910009827311529925672213651226904726346447154184245455590979206975376406139358851783895536052465419786305288881893263912760567063519947362104077823935201560467423254713964917594174812632494284926504888895058287932153853197228125153055177480044113274042978598568520261928803898116962171478627199402243744112163852413350151902056757863440426114537076278352339426962539957660720107203036632035905734044696465174516241499021222124223740543160422471732907319397051344601530413083605630594294285831306172213695165391427854731901371531984827785588322359620000017711013378186551046983954296854391058831872882504138487682619928658923750503810873189941184435722400505211732443048190008029652347004950214198568799409005552750803063546029414142984688921247478557905496796516264631508989454439163823289988364832673771414546075696481928179614470108290586623679066630316145752242868477555880785161401879289359151832903415408612517191894179972621298119057910215788683554674741146765189969118329512166178093278785451243555395141737406975172793943358163230918446129673418404812063677608206533967422052699310382471026055760386824964123574762551979956838578539037443290318640130074619985080749784961046996515603538552412199985358720485662564851934969318624460163828137122651028014316760447232523234697898116184450535931903098869944206357680389301201961279040186812178813090693915185639830707548360107575678347390856062387480497923514035928127675809946274112239496009353632989950832734489193169427337023654267008882043565797191769767500663421930147457841146613057237497909868378680693504634862903729599278214831155444358253194762576634012434595250403257905776740732354894509855679077031743973766091535732518344758596864069112624246419323018932028392903348657440664331987472119730765950681119658091379222156678952684010472092917318285501372891420492542526353221363640394792956979175514809570088715453804650078429375309603581776075336838140917671188586876067020451941287241862110563344547710899734906357766627073462784180624953456987174616570214499409343684640260884468892068025946318052017574562400083065430226451039074302180207420563857917509977638439130608557658907997423316581209638741518765162505543370738950741996540072897497358538599946432279100824337906736714806137119018478719999391792412067060918683768112408529536520298047176306184287089779890687466256595473755241970200939705591913947026906950160797318876745144657423195862255706364637300267505398961768194906125797477310558668363758504248959203736859227364415731354351040526282209833332549487238186237955241268000938823682333075009522482041350374283231277859362263915154383178061103171155170194372424518254905654337030395747578349101102831014326764944236339579131446109359229567161417430271039969488889859411851754285730992230829679153631824093281513453694609980741557230530807522845225309994806675426835412341589804555795947299616647749648827040759957495154244827308948766371601843199179196306010504221137379760939355675475138599340088824146957943415438933447507399069991352873763393589662893242288025085530342958920801972107839060314638424075145361661647929853115557120151851842676920813812451125583103744980461011232477224345919237403116096935889066832855322160140614195351806473741747405024215768819999522064682005638322095314187038874692752589598973436230381492147432167392703104890684470135868734833673980619031276920672973155549650413428545303942286558863371750576016938200448080271056409232078044911199218307470320193982809399217535043230327153078731917061183584464961731572092475633055605567110533292024550669110182762942391108658525874763618687783194071881095454921708572792191757409538046997666833412886846227898389001152029216911656676731389318949820537973918941638938874123101011195210335504678277448483503782487420400347986975255822179959629642481125074610526524206921982640976873709976238486207303007550472937676647981530199499233773013605934114096555026211626006032178678982164646269152473042610252508616310518811101436019777255077610852296473673075719844887731300871991482845169334595281622785925655208144051878004845362686772967910806176759667887862079174940978326234505543861368748879364704764853509161381609890533795268948757341371222138042408277991495786100826202383752158139540990417525421486765210158734968674943960372902064716200948793962830720081366213503094078553298813805579043485755426740576284171701789674125362420258271929439001362224477192425073286224040136628115092308129716963648174172652953516163161396822628803321596054883900383128689929533310144714451181935782200129072541873366141293668437439875668037663488487783070051133772731036639736585405049526685762444495618710183766691572207129989881153001204688566245470502265518408704274034673945088041869592872810892651346059327853908292905088161332498158276016156985317436854150479519133866594695487333715848512794675718096388708158907509248577829656944783043561973725172051869434626793437346528665420125878480995839799567038491812212069403114180115725233893356875577933809516675103219809790388720831789101586619546024267923927165809216977876493122834307526136809136439675845610134243960749560641426815384631949687486241724574974915910803529715687172890124973393545600928704499310225179572195957053840476496803783035982624471945131551864279930442663559846848603042863266131905433190454895278988558686880407650390901295588779019274608823337210016526259701948582340772825844340841274104305253301199338367624490280684177026856868002061009063028098674671261577948993122009531092631258870819326874371476050113793859328118182009479713241713827135921118945036182687465150152142074710186813687935108065169416694233234894487128624415328825322344867009677816598466848658579716817305530420733447832986798278256365567140605261215242430036135139949799064980889185033003953407978968540463752103371579028076779812354510231943736980680050927430359056532665024701966423045902121506668806202194517351625763016907724692823207200136213533151157013853685938986370541708280137460492632991803817590560083461607424809292107389031008329126182807885504849417288045327953060732276146867049175886994495620034320189683454510248842053332216372477227619293189918015773682489960465625597725509862028402017202714466267147242250236448433449017396305777652826547339311190033481862146482898313314146304320410152911817741517526705228807479353667502814094191930511683136171136523047789972550135775915325727828470825974721130426972624380142356487693581218721564035439136581453878311948263995834740623933587003478116413304728188033727868508293453712799706948205633154497342372062098683649246513538696940709043907434856262037621185908598303894555182504683475986747529412932267217098505805677305369194600554662584936718188148708313041997940350890262285121779590973525387695227860351876085097600068551106213856705011512562345076954409989492483064137413687809575676293289542980941627588457149105333002938652848625381206803230442668616046354530451539220124488378732247373739430830698090802009211181239843403959806042175682644423743111664405344165284936215591206824156335532382769347822989498467210035632519417424271130123904826410977939394125047574861441536425024013753579521497199042591417117191131877737954654632105253880159118431643654169199882331256727261417975140169882499365756246516772599891592045685700792088971261898517368214069399176399733993894691604277944248314959210008972735004505712737827668390067556899794029816879731344767377330202014755293593152339900752002689111052290353219121778080425312018341277272345534498183120214578804322691491694914098158706802008492876684076380654023862492032034410232047975796654977988199607867834910152471556081123637739234923873807790341963074396536629431590413753798453557126535056608514288672701401076316422572661572228193026290564005560586439248647955765404672184212323935388270608097921114888781370779908851998967554605172251232389991733240666645882925740767223471685651385874749094923569411903915060322058548764893286363842620814019955929313278186441634331907059693791221626757865577653400392694058551930940326466295246061670163454104978110784656540858591124398577369466733737698195817655301087830259465912011365517054657839731589669393934174059997050598474592953942919618596060496843753949553526499803155301655461859456440466888116830488712399305577042425831062562359673458259779269045583489606243533965177794446679692972245667487265534114720271095252046781005805202810376518622140931210915244400623572987493318461626798220883462202065386090751054841598185246660607371049673441724934465959341864672094435330539886087337950319228724104996596389212623051421886910256907147120235488903721922461988574109223068326733657619271480748472432485947777663340074750126288577621792793973617321499658249465963377244737009036076620853763674259238545599848977831679494893715379391408820633048279588171134743745180908006841806678927242450155138089550283100062440556689293379573659129737480289942448722536923440959719381667910020134442552757143233440326923292246858116496857756391922544525734351553182688611529119923594787826942971408651734733494321122973866330356622763715858732205701282745428731082338520514033328628513638341451391910461544217657364766258111749680542148653367132040845865198780661818136135536774560338124033764119171830528779272205035050820402423358637114460703659526020142971030357024916970023692286480565692356529797700398910933246819438451500880892233693408220588157184811582079299928267106495294413226167250485325628877324434648672858495959629362409762730867767586694189631750618669736149881429579400734929096015597544555616059279093794673829907989170893562144272572417336213094142414024036006552511443511049404353221958071457409482819530801156185278252253786823027045503488196574759189595122854063946685720628248616454200776748443316839426469590130928537100755459602811065319792596436576592313041520188590298045251745909624561683577029076424899900069405799320331546423562206644224389280025630914445084426322749518146428830350237070516915845449296129753896938812220740610132471917110886062724092916412323799991831143647274734728030442892365197996316945032746334669492633504704670709857055829507737740692284939789663737009739384276800809132685724818718715819551712668357960020657762823510667178159331744417712678208247631863026079216590991350471839003313794326066632076089579039363810929044904681186793059548055854175854625425531976972454711188541100994654960767681561533576981213241179912697640891990996858524356678220936865137029973711969197760024683905099241797335549045972326489867284450132205526171159790119118382340379181530815545646667837932234492436638288602201448208993257300116504127996087144640312298813052562597371413518317068222870789561139123375898009163006580482464910625347884820630442660829162966909873580953515129958098622723440713917892004651547664315898372099492355318880938357591908720103068554740414632133351050327830167265455270765856631177600026696618744025682874021249906103816679671030596791871041409745866692434522108620618502058298920163896863911673268806521987352344998854736587977927630234512931271226457077951238392003527006155497111691064946804091194770249130563722780191060202157236840239591748608619442800086353920797534455311419815346555656533216286360427639865779856341739024923014061313718640498388182562780331022293223988788714956980589093746485672839015912646796719413763245361109390520180568435740279910440586965470544871573012548313464699563224422300983120637906197022506610601209959070967787683743409870322535948558240696208820559747607784299347069966552410737895886427383150526698547582272053617253199727881481586618918065620057559485820444608202760324292933180906939628956792429010808961926406705038285473345464209838867524049552578366288779114995321113499245648561552230773257566201408435815996356584128080529134377206170107205528785710217793101163762754750692817956392761582823665387853134130518001489694419576944889345375068033285341892803195530268193619493665991660117382241976393378179035242869195247974959558645541790844952727230466366857777910793679256425858213790427142618655023303918564510127707573752724278520146813870217804371257689131431472043984438594815852970512733726121019251941281372807825435424965057646397136952864819425778926670369713199192047197391881413992563224138859760566716912211741036096806080853100588977182988693991305060497817650422429471574692904289821929062160937237982171031987214349529423960055013587391468346735118153908363245735679073129755680734560136212448536588760373240844892700454191015769316205849697475975591157888514698920357327370994859101298120977366229860671428385682850302953155280914379646381409381427410355528679247647857182395124571423777092085530149128408968994040446461217362304240614718109215682063848077411747873278687653731352836724628298816115901979438347122078951348300287190900622402326079854168963901030821109621929177175847704226601424351619783407541117189315043306099362953661029738770898593804272388810980347397378333261439302186950228047573804863632732902582910008289496515043187985850166182491315232981609867020233248434496569059555522643132470181477731534562286989988048758172285957338171990937359202986349345113898434229201051426371862061657576887585034537703316418351580888381459419603210244661214040946248189018448373074186425090201360159218264168891927485968379647220421052708304261038866392681702638038283572311864791500607064896106117052717779701275367646639952008393895496099316900191869048554219577336149377435777369759202487979932617093734084172670895393819293666810230400854448876608033581248674453323201063627868673544626724390041803730986396255493694197855866539335033561868407370644451989941362577524834522180420942474190460964099953273240461030837989889049014996849836635033052944854596489328414383996797068830945844170044046546617044588311088450267330718363422076264365474450491109705896016123622637435625853890328276053525659446239910203829437393159705616478977687587531889636294705743686574303914569974113384625310754490792032416556039756862015970913061391563471410320081459679985466645559799326809787959942740839796611025671096698050253534370978139796667601001932468760438300649680403351580317308348561064980194734072022832476426989611870765833071821078759078472415621861457222997483076514338072404190856980024608099835685151195040830778802925553083725315666025907762445073976052502480615520312607777114245474094884853039850973441057211341879499033525278194577845074052381433532445065128058841282653148769575700412526116810536692654997072496084112907936763583509184869691432084893216195122157754632112218056009160282391777613108321933785832313313498630103332520992073644169196895347946698967491116598296243894697742416460694119997922010501065731499435214432550197606491139213874842036910878161745192275795127481079253082846439419323877201278473104959246074679940465316430114457369045084301434583888902938851287459528949968789703169099572112136017447576074178773502097799351621722112243128580311616532362698115019642708677588860664598716312033057199657679829905123157755903302216845490050752097582187811365111258894449847504797295820503004676287172824149847639232668728776888810756603590949449204498603746335471099198417752897802585282642239490414580091702164750774033214522505202074975929776771366739145641775038416411160989685548111159238137660978330264291655339171327633327473056298151403872227322124124584115343781413623451832872746199802142650382248197517948829787153843206587865042287375897807994063683652099941870964005030975871075161905978716855667788688711805426536929048369929428653971585817526835350515019501516280134424739615741045755823089003881588268100184981888505949475049236787243164368697168456645107834181975002501643645373451141059967178887904893478627264681098993152272605534112105692980767565683175355159764680987434656169029049251146818816548251031089735644883202057052656179927112621002283576790608171756664836833234542440080664419476065385299217990088864241637869004228352419557134761352967918075035987449564710512886037359674290929242194576401560566745886150850783039388563705024365451105627334946133140605083693024765515285940946394099655047399027813244969981849162187692669198473736638936399763332395501886625167950407971234105335845192273201379137529494175322233205536161594694432457717764537348421024570217293072445932690692989544005259740971040472891286454880587608199057134246087800169044300697730246909362560613453694738566121797945647592929152639088250509975907921422684717563650211231003336143518968594902751273364699944174586660230070536478998487046772953438760375485465895481588661958509020499640560540452221209209255008679132813397824754884676474606024553930479527538034899148572618578928166349148167259000472826235198659510403438079607435638716762460416776735760034281423643909459038974221760692131146210287834030544151537842893524260701800852609026509087332997515632677155783933193510756653430112617192561297471320895755529804582747741187624651524961544283229056298866289054933492446461622767716242642130792101330462432319488889653956553307169849590733019873036842824998068600746226728729429771371628210066742142506752061686946271123700916055736935877904603625547909636855551434666561653515113643703081575777880032847641782759295261058657555314437260595796709097668204399042762164787283209088266495890707278318962797795034961298781326402029441914539008888047320622355108574200069018401724601804937819414544275527693612822097239738303592342992614075805095090664087822633767112909394241272851200071057231691593141577617344849182727336904767742866449230061244858018143019698279106207330412739682234488415195000269661510979317759379800947222214137483287425036187847081329862881205947444214775790489080262126825530215884624570718567971477770574444545542448522895010384983841656391320063486002171862955831012535540337045101475711481047990264118184880664701274308538151188151906891180888488882787045919090768094510063951368943119399413132659638419074622262556086209423158870595084324736931797491306599750404339919437903716663147089888530144718865139578285801394446312698436367835850608342633306078613371563561877423660755143757693848709594333520472676768106221662538744831811389697943342584341097665060830783204913613666309710205818419898857245673246177439550700368907387254537694871903227067680541219613535826625835089643410804288620758247023051805279891090457129177560172211398514518287932259624019201457782853569271778192826275077107952541662293573203561019723784566425135670313338377270431998739102618665316528440036203722285652578862414268243765388061235056650193554842468096769088065213775658905321432860484403759322407563061869558726222841296976699339737628624080825794039765731785910412080323389960354489060635124619810646870600334984540935732810783139130788002722905117990807107045316699790875328405911716810085146602441457895936135004737678183372149300348393002145241074377023573983191462332514267082251235910018513625840449410152277148744970461018765768602415137810955484384175104199266873336804534933096945573709040610906254636306586379513593693569739662978088640178622349740882899097842978021157977519896239131244817313696426647432342553610390712118208395624833852360045127366908781288257629989210314056160031871800349323261473884332357831735045029290963611550608621803528223921411179080325595281707187237030460792025813951754019041088381421860760819032856706761786321430026743916796578399606052833601632048337288262427202308187498162840249331087503715024695348234395697952122971338168060310565684553908432678762400041551891633166762233922101876738199223548779450172263281679384260546402160676139430481790128709497132906814104142636175889239548995757530514640228965892140972859328430668219925872145227086998773533440636637773766489546496047313073630997390701469840500234247889233807044122204106591546783115803338396188920013765213450472884603565617985795562597657977103630395609372206309751493875515498311757564075334802445377756789759853720841098590589625383218014851962803862192403635592943162282822645326993606397779485262882244801201288709144786598221365897858512613285656787274151032687687845074762751249721730961374588379976422345239578899064012354916703236502250951576798711112039928475030693489830285838527373219675245052539492704383007291924624168052305490450424856020211638456525856192935265056753189591941021174357369335046214628707420272141641303676115341197929565733345599206600484108979712269016685497808387384813326454127547689136226159242765155025203807467091513636324924331738985123382064061711028551916197351939151736832582396017637339669122706093680453718736812769772156342088151842354697142230559345751059368244138963698249648556566851185221762317122284150498144592119211111652801302381819009583397364975717761144030200034279656745292327394295710789508348804068494705765950430088732059405228723496825298336916501022747826912005137685340462483634622492296038784073521152437518848393451285005112820027530835441225166185640315373858900105080326192493764383552629129347584536332505829431735923462084272767931706171540335666692528210742757826229432433910494889415665416788619680524056890945577261281549359840230532427219356156293945925446115602017012208187680312155974503050775731782113962633303360333981067225345260323009354516477352217882934144469668277237041124007238275501391202893260368860203832801105082931080264763475798756352844241935969164094074623458045751909777204301936709086879557145438715078096744042437203206851185230524266376313155269345635826194740945194501572173257013278155486834218875304610295366021955109142323169655888967286511167518541116700673593441591502830479796615316265905829344783935233173144686947385440916098504746459091255099258934233742030161851931020546885470092770137859296205462267532254509502654949394953269418948106392243534092991498796003238146372594013989318318850708630224514390770960728236783101337035402001868862163157901621690948500775882797973158076541310850884450901680029032060766752619033408324402683290078117860400443281907165212603912946497963198275435172012705286409923230424651977294021100637101680875228273221508839418263542517679405692119059379555679941511839230052476979809455843240999970358943421422777191156620052895215892639250674915427693383750192192523337270598245067928622188261895961955351151357593527124932860226883562725084389471071991033137305494832124467833061015176448586145301408559801761319427117987087676190446154430053002476477007669839221203129448147230017072767154290679111979063560967632679056410887620315343273606700155662903310884941664153217050807923508791783256528171514280926472583342687276137063570210548713015897431588068338398737939193000178199840111281549022691355634103114686925564949751002345201122213057922161810278960474350741300285466330177386433810597085274243880003303822054482417926198131302230290310478742280198782681926207942391159418326509016428741410080344015428737353174919742784297405220093273308082912572007321394950917616369800696624238431895690940104020579517568987331778355903308282620728420614905807824204483983714307777910909627581045163341364485739185223323637258133666462826508118035907352670430749480017615120898044933215138587075034124525557307701314816276844515438343107224407008551294181662658792046715640155400447584511647910709356462582531545198753406431860819495991707645474607725071894408804946592092223532653577087779799482701628787810991600437846360711664591123388544458317624824629127836242320721035482428049739450052392718462438806579357450127051511035938254099722689517667218012236384149960529749433957697173347605668293637304784750997427464332725077263577811634535921515388532545855252451276088137351553533016251275915300433121551793637655535299120192405411002032302781903524109836649890442057861782452738890617088356483707744535244267075774290652069306119813955049156339358434185098093357881075880635828352150520902179869903324289201902950461696876297336167189155733326550464247559145426631520148917121147871415936377946715959720194652963786968676273815681149248562705893755297913007105242391967009578198681023601199995576083665530943582198499518955049646358316047790994540884311014418147484243783565146204487802315510885803929229598469666238602248814829894153031887527768082547173045532475993939558531898628011692655293057239950318217973671756508435757658833248846456634975273997328938815663071178047806738408425517829055164350688139082511293592362575112334512072766555211797899478486975548721298499909929367913967030626405047042211232496961420569549556020516201596163605419511137929860363971824202481621192008456306767927129943471871479133064601991103001897239996394616243914743600775412494361586004084389362180564983165693442542394076940145107648429765438860370235924727486341461331423466352486001614272425411737032787883458336519209172730352269287057613433918583354153636978143247991689422522225082482878698041071645850547721924553613917772598633033815922744913326434319219171241115750927545793003871354299802485232135027777938483720767181534112435460544431866634387616947752916413381422116831564745347951597591800011524661999166870401261549637415888274729405396544188096858244551092087952252702787599713199122392376084386816527650367044992339661595129901658406463107496474417923030847248001043992798913039920558355748000837749769630772780488833752517378192646922024748422311452333761602016919267184564613134516780621476696777790342419548620159483641270198843810531279717975957038455763601829786285201659298488933774956218291119304065315290124646279715452044299368171994925064723054371326345568648363475739865287205252620536717708406987229986413255767161237179173966150085318204336760545187925245629257497286285101998198332592923880317379820496532768835610491575983423624961783451477432375516181069496559082053564909742539344264726499229387066869983391907476551299555034148620919249047990560994067753878523743526129852878393595974383445553784857144810648240960036208390461779279301502193378200565036790290275023720031506179869116372985775437682947299027215892116488502033004133400938740098039013846947314249100279566592540731448380127658473103018764030198109449306947975950613422970271141309089133578528197323202534444766524301053423586460735511650751544751552169722263507476259109307661768409162544113974306833128326268040977920311354521316369927182707913548455379548858049181833976835850403635098634747605354670443348622236073902753307062129958697024301630948655115444437637680418173002657379967417044957096829734985621698399778282783658485368065199258814333502787342043889985681888754436935340955603400964919814693337638331684995422682218550066213353453631104534527034256313858641748507196027743831318882330789344971882806536186008283283565914680860716360389753740867655584116450609397453716882047549090574168185716646033861875479137870892410744400682761748893810274633043167357001280863608512429438067319320308322579496168869532101797149561686833702951474818699933509330618159945291451535517204036384043479737245139537939580461036697167076956290018660596515388592814305491416376724065076617526559288413154838787670146937438202762540998035983733372905448666447533659583682491166335121541424796532139359295898454925695849883188686357747889567765475600508171865028360610610047596163043288647331491920999139381903895626095955930853761840095512859389450996017154569955054972686092727053471131890370435495854240552739838979383853799588617785377650857126524510434780060655651870853001584406194111901230984659034956682423632056475697385008358061677817507790054958105647580029336278477476643490308510712896522991246791191630429977332649505278033337141981194577213199491670992613264097411323391092187431716380708722286377994347319171696637333755235436260940985914725040114160619900008741321508717810087168758387891972631540839335695163286127962355473542928972303620031964358057340964578736313758446690444795640357288298897467401628711251957040196692776976733416912560361915988638785554271685662084439383609394182441780392718828441283562966059121776122253120136754126285071326593960731531531812821916073386456427416579982954885830646109578386509042293948022479680112773002922265286043451642611434606636535738968987451298172194563068810498716074137433804202123463857103520673649561641763851455569991665854127678633380046098680472056055938630701947686934236509404521005831330475367949916170030590530360212997464451792051291251595084777530627154514629391687024985090610841591707970320723418840758240150637244427722690294207168894956484494594818875759771408290971126339624017199906569527161462721778410622934912114006200127714487431678951840884985084014037358292873708824702217532607522472771383688197377787816652483984399579843447960613154372839598170617713684049758630614097036462982812078511491357493346903991067129463550433708734550299749253456800241834489411761139325505721842595414211359140228020733076623587531615303681203560602666529209317220517566453238863428908289161483727524271523004083517822046954755525476076252422767712502635093444383309840018796878277438755242146926639731189969506442250365790308614066373004379579245230763287149162374453298299179602585992306736991511866201813238069316467077238792754860200857311459023868619875573029400666634265991976047596643499822161385019169723032828139823201693230250582643971356573921463059976082927826641947976061592500842578986020257917151231649300620771866830850779393133437799986142803973668127276091913876395375233729763620700823074743511919975443483084397841770255676426278343493218686600919867892347012061876862164164169361141391032507281141096201508376753909141583264905585420117831296053568885632855679277826774541101763892378979073120336897739573314507509623258427340322601255362267141752317058123446961036801667463492658608547903566066239002190181910352633728879274289237961974550098746947971998036501801682562415209983024885658202448769030598231922618359816098574138635256944796518166610669285828956236821998993212705498684672770461214029691838888798668164892265533863145246002278536129514270353071006072024973606677320028285606043642324568405331261651394490844748035647819720181356989516022082150638026609376728180919027767104700026903060210071446826450594660401148988658029009102629946069368244344316967443151226901862243411973253787580097231612468389581140100310379157692530404516951784452327271279149338434002258754611139300631709912578268824158918311582147886270439120131766519031472978761974292432559530253420296599947363508572383558579940854389242263912811264543536506680278406907271232708708854786406087608985982019492145469355504324523024541662483760921152714991266025906391774919907706373592038424708980376443086035304301389472698289240545209258452237038808153335776101981499636824120326226426599411524817237986417592737774786133955364790488354194396068208406899634810559201689837370483186894813600080366945328661822738685238475218321331354980155695411484145632179694135041659317102095531386277907388511503797497702520783949901607088801464242426293973341747342068388404968252922384262615729986567601459711327094929320874955303492554932971488210478011483613956791759116717164379981607224257559709011012796257046869095567147636194906617427455559086589540142071412951293184765907960045026637835062456627838113014850837754169405089491765945698043829313533372282109019041557624490343262934597478536029435084786034034803646809027345332923109712726787180284057257871974027361994481320868561425303485885245866003993374161438524036056420078189300063373359878977384065124934460601032154286580206018709496722920524651387372339746233862286113693034299413858220621862497512689378181520063930368686763174756831118378167428069926092799720023727078903641248207699958180863165384413291661979885110614290932726773354516658262770852360431240242666971579536971848931875508466943040799993372453932357437691921143398124850266985925560190714734350941762969020021996597627074747188960755974744788065274799299717577175002235755869854047560125151216072219929320527445319354499173750750897666100715197792848119460791331860116855965395277633056039500778644338984889222113111382377623898103504909750372525248552908937683901098775575755834980314387777203515489404635754265877594383102059443951323555564526121373032839384413652786223525603290956918872183939432726783902088633202978737588067669127843062054328236668773620384661043006178645084605995764688204401873249587509366256942141374578643999948778028590017751467782687181011018474804406632147384607010865567290372021757742388815099290388469142658822392676928737703233481250210822148436818262230284436863652458198278866869608221799158194286294428012369988997569591867067228716072614889492032101826892513242970491150135546896849094414792488301980648982929050283838182731886370552678484326960183611351245019630497596181272804443206840852013798796052759827636758043174053273173641570512453495518002208578938932465133913905996824637641944809087600230769555806580223084066314539488998601848570803949387774315858919776827269412206773370157364181555965514489766033234632532677666147157901900645595043962218695055914145715586565558998089319599607006507855600809152611712840790416913137572700555168236926212770964389613990715561859537340155179926093034426638643761888197347495400285368678984453390641016237437257988933051839081429321745991483152556071731287538770951374557695603286794723882462061078709556983137628539359133936439866715966808524049085627239302541708629111827197042560065250983556153479903703633211035833876750058595028923692659405955788947593240612723951680809821303148570860465822165461184575009733502899109635152632637713082484899182151357184605338674167417377255952952305559890181990096967809706479207697135238725785450873789726879036912505497915851221573233966035455383764299315296802823855043539356649929858224381066231854438260301571723254868351804391369662164037787152035333159351720206456290896171649442184562147228841088517871104437266602912993333880431093528502364279269191960921905623243237293383498845356156666186303883991850413678811873425688527038175621410521439645377129361139662705466209420701872458646152738684259858633772800689936566381757374722960092760484218869447039692988505267093270349550894077055617437957897710975066498743377165086997938114152685242311667916819546512966460501173560008064250035315215709836860275586518729352993962702911879342337914864702401228040269996979950445909478163713629030669276039343415927012146797988985662781414743501936367722281717194711361147038473056688164374292044592767795470102618207883688102413745187116857393968107875678388424073438498762146509216390007666437920774601412802668265446933028990335240616627251531255720364750951221147513806542066113423706609191614924376557180303587800527904982821999425987757399175526002707755237105717109914835263959524557005763340321009620791629724224262620829758465121249901171669263530042149812534785677744449141955391773656237377919113771194655510547255541412133588482153322525362585759329316555101482050673893715000319973141928544007858446657631322028186264609014323069959011129220055290088396602204917298133041369199082125620438889384085642109203155522806664723753055476460394355332023466758985235579078345778781868473154926895650822506378250437899056699388686799748361440867590340285603095155013762806470590257580077979620941579497127583446699313333257788501599831882037439495146212542655033118450091753379679802094912281511535665594179320679864723965792257114066681128538075607466724661996750196717204714322275861831027617457727702150544254740875297682654487609973542565785553242463414027546671880116607004984719202640388350810746365219698969921483939232324680161662501162906541801202749112180681943766931117371595970977701758053354318677800206924600681769983814447051146702208110412838050310603506088398198199947407890699269522791741084050220593447377456058935963604354172578257963090163917778114650191648470355517259264047076661974259381093377211636930802285302743770426395339590856772067173589301769917966895279665097750664403372655676084838139053920614756347794261230860389742682749417591666093825112784804862534205707669720302166102252390760727497324716298746015599405096442760533561902125429002099297223245983333037625183487614527483461410525480830602515914650297986030744550524271549302575140176122201298301112547476334257378044251447398899262941261423475353552059727554762308740382385006667434156085427068005134433801963825618313996342380113432241873296395060977616209030222261199976211407853912219111274447488004120257876220751271887748492547716035088652953471878431700547984032684194355682777303071381482537627645297108483906789778012301495837649250431734937239215318580166534705512255594245711134541399209324694258387737792929743708434736225558361986072087871954127294805354011467030652157917249470094071557195554888413204218127737640760588502195358121718833929493611253673782317820748867497503975972705902515885239691062262480827764245745499241414173416997905460421555932652199601694654564808491237774327261199492944028291511019540458132061545448606927370790290364242712010063971511199109910605950528998020209336031749640163180252176238815015131720147588718620018981044455530814620881925172194967728222850009174704243387029150294757343259741811274750024228929619548822653280116450111357415279775099908898143631703759432806009719134555999699080439510081286587259186434769411898273177107956388904507052111641355897902881241734221319158753411929719545026844557188612524822824373586875470916185677771802383428179913053740562855883330644403133008707859528091316789550953112689381148342695730349729757441961822946881753916599640266495727063627921772177763986360430613796392902802111999793799509369773726596073202199229679255962665693360583728715464790361739770936829334737989694850328566361779528511368904519907495340620944022854110690220054439058583733060644948939802163344733745700043647705101485028236712464625017631647528064165911464272432595589406522397477283577543386307293514173453017645833687861855485038101065574929874795550381868612878728195143277692730932476626680438887345551637967823233379694960142264259510692505211551724472435822772544277649013719014984439211968864014125310076872107563814501969037538241262208482089941659465292683574152005102733458000176464877320378621169330562594057057925497762651178263497245566077373743283365775743056462594521889514766824300211417688570849125529868877182036825417942774694760846989143346705654287341688192198837716704117760196859158650842830107488421499180947309359108702349852792412967164479650371243023306037385387564888801626185764973065048074387739769872351813966544485568470276761486003283829010214787258768477076252492495677529205428059926388548636834751286413021823917117042287397766983167783007758034673300662800695119784465503751705289417211395529034117893984185617596482420992094157417446954223419046871320298118997403776800115394792084181174368623990761282767593196094743974322755026441258413833288552563834246476655598178745313752475631479302583534135306632304197885139184150682101828963726015372128287789315751187671183392217591167371663596032657825233963204430285602396901365146927422962176875594028520897256172080552983055788872568977272864302586707334686008425956550597056965230462849481375524858572730344095752350548425968441734913312169264749388317890941447888591209701649266016361854908584903701612869081854470551764706490483615865107667527819021706087918356911978786917535734794008842141561565880158429990203935835995577170714299908379139412350562605329136239384590130022210166531484430342357519382758094030353121940386636516495738259759164095855972802676815466040836838114307069751483740591564301656898115478503238591826531244133512427928163712673302771115229734864173051310552776371918594282151354331896918786765323591926515378712741441936042458456534799633712489811344639699236821451215305196788057027931112939858579367490502713113982961773839310842397257484207905449105079948715029037241910991813444643361847152780257481625872437046650509614189607795728909667666873214855566270084244878465138712310329466822902101079105433988201471977158721448864957177426113336725066316968892915867637863816622548554156300724083922780304956606283879739707203830827169550963806429870454266279893688572127474653304710379579652785041329084894506996976430855746166601078773841491290235729488531449365597332150612192074480336532523831265090024901350549748967643694914143749321765274873322673948254138112008489368359053826559110642561419157606388709031902168309596411836435770819512641544163025760509565313782887471951715252379990814096679362914162119453940875274062569406632643746127990770099282228017623988972237267914751015868845990880740330776584712137215273563689716129089278823365663989522631693793513632814960775226507200074869912044204778595321813699177844263432253670493687464218714937009465819121564248487829804034017127727577388435149946803528469967737875187325041823608821876329233643805330648046719043262559427686085941318709979663553352345722304265942688272406603596577546975967276772294431186682765630419049418573299105331279650286184499971807115936435439979890657283540062986980272142543538784028830795676325393924601209891411197039972079316399768403519700493437256791126286859620170071114319582294998328965661244174869300696360416322600093355807622097470071288307941580006965576495220367339339225024458419254325311425209942983265806420351581511949390383092498481829634563155506987461602535907363523904697288435965264757163618669486744651239155599594474192284157700734604762002313445243017824551535966041639620342952226181584583162749721732337672778987243752522876527063754651161715386471479848597446392244633381494659430731157934294374273803944174880287376554945318730517423396563724396450953798305068222213417317430493633519659652646561127719669316310999941949325865411401277073749223464564641458526574381965619008716575029198746624012797817778643257385412128200245404879910333499751882230585112831968760486436903633680755423537449749665028992373707221891843455549589491555110589056403525300577579803574808506341805502145729038654550942952117389797168105772812609300179199281180377107742074275079818558558058439040640546230135241636177113038226348937655694839369869759055999908409265244296097552145026111048595950720347992912173944062190053030524929126363380407351150578510542135389968538867607759790322588564197787136868114700767236785573488872378786977728243880381793281728766047587696682599819147517923166532925866892204618730911033179325485447166932832316836498121019580329948857486920061946381000421786173402474537043555818066123090996152896521655461538071539626167265914279236444437894872799708168379755511401636992665368546901013278952130360530027128473439310646400990361857978153959041000011475169334795875476596367004957025909448563860427470247440116878573975292263717017557078210728846229965122724717675924964435190062667782229238306579016518631488130072569587842837045931254394834035483517587938180987350392405658377432896932067640872591536153977850631793427402117948364608333794652889052502017348219813926658110336915377609569995729625666066012162436690988371989257653378271704909619703521936796480701401030514585539345286358580908271495154783876933127776179732223868908484507769070491694867225290896971143041214896448014522646141528468935222277000534703254117193656364379293954875658880599732183087555032633256135426030789144721427204439419704739722154158225223307257175170730697387573548523793206634963457808067572820092364988486644444611017974261293721115539808520589141239011936277780680627032676110298162934925229622081051576262305199150931990013102805451617009610817404138247846310651448508106401888128471980167332709009774741574939032653632787883515228089584375416453399314352559186998768632242831761490095318879374371461241125163919846637666338564128540243954630731065625466782955453989034687879538316702875136716102678841553168052102966572360427770569635561051628483989307493977921089645132801000290605219365029292369562380042855994825447577848539044037836921382598597036159478797805592584746974548602282634729767915738899149904415698598847215572437736274537101204166172891697365931963482321229667901416254125880172296025949608038228707795758015261349563610886906279628184224401761237679125268012778304350697938079579681810544789142194007987536639436785309562467638054298972481570036584312291969584437606907506808374718423075842201038224095632224914972662594727788247564861360173222724621140805686352781654031211168849357132371939802867263811451864775790318697046359187815285303732923035242875388664476019381677021111239683706375366257464661728452954167576736844720555091334307287331035397086095545827565330253322866786710736874204618070846547872985466864081626655929346093982847524112041426206788218383544143604706586910288546360659923309934038633425280467775060719844503282879399519694626873521892886799472630807119678363979924683875688782857591470359674341691897685630339753527540156218384855942466555478783375257598267407259880861123233044866431508807610419120105626461333591776323233821283349567055164859157065533433478794660390100137010428402931801508535659372839286861093023224872672426576325597263607449141899594425930458748621213327615529359282878472000969580504932386525061851424885823768375275357994434909854479682939557847264461178387003654528150325889061718943846258989625671594657387836254106562466813468179030772394956453519500718445605382377166606595522473291665177543617943873133264182217088578072117945309090544715139852686919606777835717924557956932464149841441196917627769915042770904898435072494105927401202085509879353416307709067084535033915329857174354770737171420103806269799954543418345788738020395719921348504106466697586578018804454022213118041727409407655881044600352852412431675510501931600565448851929901281827000022843173037167544498187825875384349730758676209405395327719807738131065836700621661372271126119322398182966655163290237090120282265968197971780580409177999035299122210757765669649560073800416481143093788240425718583720505036468727349285970847554305809958935175780810547550761146790748813076248563825804553067391439729896151426530335684030019611153108051696117025697945862386821584915618897524847266552986383970276415135112244334959786729525031658657215807280468605523013380259510038566793954198339985302391609090143076565708877348227988072974812433237987595187554326550341760895341476983383817965049046044967660660707950522605840168847377158044354506012845147335574980280693526634077247147493262277618211149180533061844197545892858375881575841806495957422563052520570409257640685639322016521017721490847902734577633104026788771489612189555987985164018951643489656993484085185723343168041571415640486528969880834805252281033965416736577497057288654337092775040045315258183649228268462319366672305887139332386816230948669141867253518371028803537635468393056258005215255612127320422071746891699630660256470587091864589915316950883048595908959546746978588126108381699474344942480169723079069705938484774097115556779366913310748392823238764203992058551207437050166310902260120608699623014388956115127014082036562598634077906643961271238040014623837749577888543942429827228752480512939311409766707561856970220736882516849205313673421405946740299653750289915532257766098256340074077628113036392732086185223920805559432671232151093864897672179673896530582881586403680737099867341391874504544909555763910411281503693913585124448292492781894343289761949571332379323993669999075539334511991866899443217879211753175193107570661308538045890339607997780298049240263094851055721097245962043064574167707480706517843151414535158520223971504295135519595329740766520232649299197943355830499817473219294651960681026062128770729239992301421660197225552862748514515163514236405465136704211129350243931981307826581761624716454741263283746178556748231195403098334498982441552952383500588925466946376006497681069569063495220789132270204523733018403535418726080477208311819114407311732552524547563817861201787943222050824246216337879519553736909320926140875236917958073349624458435614635643962523749049274176477627783263424527432255230991550067463134492326409219620253664414123242059434952775658135707798189046646910293654232889917907408160283434211959344971293840391707804122722011590517886699424934028335177892324212979534701112732650859546480236241874401291883599792311625849643526849691946241215444268867847143646279783613381726851970142444576989646710394193507139311575411113764604765495060974536522051819981856327386391591994382071751151736323878910099105832055392748924071722621936570644844656440307825755386057165199594989810281782502030594079203986275565815827187071674928010987271106327878392900410737772994592219725007463449582329015936877246839314693804076500154169824322400587614748707338110290966314712887336460945741448035335932489040755462646773892207769494002147515042259948350714304496032825990196238979951558976716993769277925077425287903966361314729404865538010467723328809172947372771287278483924162007627801973060488786916154545464734716843718031087737480203590022695515464755914255310241228784834864702879037675152607191810702349160166444308173064868597410422203839411843731788137443138314833917023776547542777222761668981110070514724958508023502013323648926668414745585177732472191074009032642490890351245694497410035129186472261798452971827435109688339046524795698690264457621582877565373201013609185503891301940571611236739750100025711035710801118886328208166836045077272458363082736923603202099301065265409771291592792533562027044577369382017049765534499296209770613837247596591597161566239974388191297131109904986725197271486706468500336185554569593759453521808561648413498060801453513497485543190016400474524885429382508957484663480886651171367226203307775041391255872572788489122290598902257622215253326281195516639954557309765920684735131999521756272405835517222262562254554669725800932477412728771793636042272909567746778636629605503356647726811736927145771569032171095778749399154857763027773423466557440384118919658837477390106484367829347379845605997400081237861946139992725780982779957624386525111969108663772263784084550768706989164417065960286105281865305865870604018655957276783175581705155544432091285784673953086223085129129738883969789480403445892198860416212197810584628076834653264267607648907839656776046957718450669887928641774299737563577632895601545412034767673969249948340909957348813022146692977756321637380118764516507454178178981726722841160729134839578629349956684806844966797938425837064667183399643836326250835866071780849098891522034978119095792280073964607264200497143415819201214597860280670383992490202201723029066278365848519120975935814179625041290921947675632361581101750227977308183018221977941769497689729113216229472926007251739771051709552412339241316416946158860395266469475931436534561834950896783233794052817217457180667070742550127179575530552670599060145219936340292524637166831122465525638888985287608006645585270976749359630191662402645697228987016118908474071624620180455088431345133589683286452404940249316136629967592755839639691699693788995289566107939746572779421075146718073683534415078960004683539371585774738760629081164196632378345651863212776510060617501485806447799982776350651643811179351504598786683220707920366055134182287170607857802858444352370366232789066220528728069000351778366256202610947876054266449068673998277408497784312253717474519391396726606173866981366708225110713106889321160321435342903037447494979479113427954070064489132269203098908676161032077476560526655000675750717388569133619567933701443744911151127699914023739678228166054362991705011545162252087118804950685964313849730484403204792417161145269223230629072670544625195214603003288197277611691661753765378929077561709112448870079504050934021729434427688815760932372059563857233219554766526418589796601567019013243448256305390956026200374249154691818972790455104528519483395560335282516673608833497037418963029747016292743591812037522382515772266446634507815598685777268389101219181257564811586262684123974035721313452824250328743358415407626629177041644691928651226492065070684752366507196085924897544160121893078106047012704829634259169554284816816272677870600383935434470986148407497212510345453911792842616576175550489567590638693001599732946524762494700018944368063871732582837898335841285971915977076840665225074740630118158943991152128394585325600851809605137456623028441226460075404250541535362805447334028262578114386610160044003827941168279833394776271337997826913700412561059729327991814364815346341249532219027963200627111642963608675217165555018328301141137360864036408993625778870071825635804419737507428129441449941969459233766163807332448478552728811304742997257293179058637654799099130008661112645829973295505531561041012511250809739701313146709973666342492833300643076090570782665424649734744842163635880654712304533218856548514608255282098553334888815024893707663609884069868350275940589163900693971961773938624282211281699516089554358405105450743129721609038270719318710927305327446621653365480849340322505707287547100944779098806167607888411839005323682930628560860816779153457324768096928308355467673380700279897201511446804248884176948168879151411815008875334878530201262951109028984755154765966614792560473979450331695055527433546741688738331125640348034558376294504821664512711982241965345143241896985110601180815157481944012670722573614743831961745863056091410883435287018103977873408188593049455996216016585758782508926868291179141761592885454232938805491702652362450180086219918535502341502348169718323855392551414429162552077845979024363100618386808685767167915742549168763924510505497041194225445340568539807062661121661848360938661123382850921327176036779577019199535240991529912076844162708790330055388846641056394062333294781074081090028634984606373740153533609294269271196174167322807200919286403154972657028791803438279838172127881582350431255399441530221820567922355446834913968136615691236061086161858303044556684519002786269153339513077365527132397794126302047165037620621045986701793877978377380805146450443527300644585424280888888136321468472040134219712214381279951165643321976504269401372935799144820755064922010223546918579829997455787706349166701108238800472851581934499616487874664415133704595435660777179318506046505154983885699282547891336934764532599966072077492522327020246484516050055400585614515998446218944231479895065116910366854473857165077981608842618280600568760572412520723124313037147653084893068778271728363329387668874948450529075965006869456312786768906925198436947664145638795724796948467549208988021581858977842268091224990612929436980831877274421601743121845964772329295736447725940979265723330070150147081346718013314025425687341252735754185731273804116825231531778145868398258383954544758459128292085182515502717518424402913847018258352040107778819966322520812489244636778791310644528295630650792827135593806182426757755397303830770814626495189295339416138166140511455352133303056509644910899653324449271435436130207850530663497568409964918768883828158484317608764516430141432955699938215509457129522725330417243333793793858444645539320408465230459296969630285916771618896367877229964161722773033432131948651776262940706132492914719582521192171003742484475995858280840103011999432622619390547584186668645649885099816999662358081468727222469601738110643928840517395839354169464745453922247069116168514347204741407017045862349006540974817234454844631523290686353889140803942053219546159386476453008519684169240235808597081889083262042978593754561872819769986457923998641949558714629945183807120074731566460097490064591505579634453421060660485905674861564523510851314333436650014120238890578940616626790724188438629763842093163845566365235902844258284781836293656410768628671087759368368345640839954242564065073170212717867042688299996467308081724588136477257759838242486278112974390537719299909685551149025409588869976246585718747690868639764478530798433599923372222538822588311922293030151030884465266025533627183944379780331215742447504401616229349618405013483677716113513098396694451884662057840694661369464209346709566071308951198904879167734222287124263468020753672507412037351290365974779969639759605197374204698334501443800233917180547901078896930450463410889905776258927340208862940550868087021558838163447386757350199692721577612541825604126406077450174948328792548634433375478155309250657344466403135123492885836614573704369197029894539984623832750975140845738221094797705712014949730425131531460359903875223693853948944682868099428700979379620643432140591883182032859710094322322991287158845690361686725330023209505971995768719456591335497785647690643787074317764334051209394090880231637877305848466847395061680807617233706283459194940466091477828366089809301199324436386747293707398946435211659124385946733679650530865181105804885836924508996979862062207187266859120173097559443430777538812786080612931685932031396483898875079376266731486412280601899544401707576645862249044808440938378535751504869936576975590354989275706813309943024952080849102554573202444276796771361645426354760599301897867010941564803653365556256049822498330402916464635336782296998411325840390488262046624780081469633797176575495988490342358790184697162060038516649558615717208526976762266030903263021557329610743416132043674079982891200898101825803993225738426916055088545434779771496391097948296868425844474040186891702886223680858804121369966477153774359184751397525568772972358604985637994041974837355488755689522737542739849506696672183877163796149098671944086286851954004264064656250575908158132190581938461646133276506772370989649190648582837394661109097158235528875140706342384535013473496231582702340050306976677892840831714089388699700838121032650840153537086279290126044419528944381331840564365090898191046352855696506964738195068901308902237229652752295680939239491881586356683660363697948150590249931463150384374427772623575234700059253327937891850879370971924476398538128633226022207229572762381320174319397461750013018741828314551005424080100234131196812150175807904742489580561177143129112831201845546515282070697198065970547690014308688253132738734952741838250740819766577288790879118969489618273413483580679737774748536421901847563144255059138286939807540086637344460475183321606215119039282414531007605455344066622168459764141402530146032572761194525569649291961762971352755997389069993686302652779784578726835106626909990685176761612108806273421983698677079128896311175477138083937557016437589910624751249489475663048919049108041911860878772936135562583600942052434585191342729621761707565659286623251470891208703599712830458518157676896894050245911803942682669756595351675789474331099521944513406823801260838087977053351918086519275404633915268293257402562866844331527837937193348392041583992768244120952419379932835883348409370742677896260298326195337734256656910600240998280271186337900073430609811360218637432999240993844874110028995656176681630603393900895718762107298833452182276313313390714865938033713736055566415206178525939544466205123257239659617489128508387386223188787442879721575180056033473965963544692540718146949520367461158240267592764989354005242237107595333623877570259439848875614748501177263009659005502807163896157572204443637429853644306751103631159916705715825968144907474072625499296700941012071554952345477237364519228890509494801054704335097253948684179843341464469662266136817155064649568515929805137645649100363476986596988340862556628128167584621970457137082002591569086862961309422766347187718364835969323408719573956465853648527128048746310218135858556032386086493171032054931748729308405046956158381209104631418812240949387581350729105515755232599929633193081209804397457756381165357345811229075408015331654525452715085881627509847582518280173571843389743589191141326996943006115828936817266732855736175020706458912531595218662739456294568243298394021527888021736757747350429355347531792867415297989777525538813740217288425268170162438746788997027851728882039989865354800081216346795080378296804691864487823741237257561064520927113285911951708459606773180724837191960852164365844083733262697727132656541857698335860960113933697854178323221954721257134425967168341568959191235124776675401161252869616577503572157643039794195111739617259140056166893793816096136121697105802430455498002719400962918931303807087470582757285725614622696659627435513517753524439317788048852741169835199712636831559281917049118626287424664999239715084406704601012934792315015837936578991887385249825886242241700291952392322426038770532958432842641298811537963408334444058729272546319222181305270126066152223674635336963832861628690580267357108425950977586743145103925390281398193944273871133118369311063632869346377225521628189561508004956798961129383463912260580099677018245712255841302309528214710095266243764246197530272204987021414496325637817117765553694357425792603158658789436182706956684841117824882747666027714837108199683563604785035263632840888776185270361791694579999038622498037958517797238066771068287809616697653497379367471654793747372737840705269647649523925855387640622356817521182195717650160928931617936460739131033879600657509534318846338865478506075950112250819265064904560809066839880115526605798107394079960749944269428234121515301961880797932094966930566926608983764964300944102748284418078682662922488840212867429076707105462823679334041105141461700814385016068018700584081790545204294486819428790950659440644777892629418607082759909935337055362501969407640296918736966822298463173579935290407451066818929437139397110849559681812300735352826214933033337883815599185074482115968967624837198065200218372443990238117223476328239603138084910912824606018441704710949574146750487695563641870177090952625335984346509085851449054953782888631098341703294434858600664000626321785831854967284230766488694329807148961122258137266511112077489942906093765432069060082763783720252336389188918692967616082467567337311981564063087128737792834982964604190246292346250938059077782665995816346241933500252009721477464865870558982995996483254198275380611545958738122195232482272754113250519752909728784890832929900417677297893812746788397257703859360689699163211138234000625808793792976391478025754949118057014780897009965901245518707925306718544442479222636621845557555914798253977865173023418542245838103015252233544800862743939398129519110249503674482667936386359956599255904999547758209716015311097865456403591133724179784382161461071234380171130497522382326155765043809359839567255250724474596814207364766147851772934180824525262982037210636106882354977000195920387459142983158502566125596825509091403597141328623088182768719292777910847730656776394366157757993849313575679914399066356836070886270042978337984522433441414345390212534123679830838562530375622984065056362881390061963016501195471421165012358859223086881281673726203321101069839925370519626436238880851793966741281559346294183788882147251864785233001606354851964206726126453706833533129578949326146335901644325822620687998046744974568973726364103255473854462546791663010797712719413980783332198815717600316400414771746800839379750209616937471912400150630109518831827030934869747098366180064209962525169032481522090895465604363489116482234414127003065492828029009754287155438189106368433139970955754838845282906172166115196746259742626040415194106347479361063100733216431961661654563299286003554319648356903351088098748656878527626263810751279813618186413362108893953277481804386557566977925460834916895804599650818082392151646170616652556640080091309562177107268918136390993869375940318549530713697406904725083054596150215248275158795201729917248561158961842575602299192319585989444547315446374210393219110744364241364319580966098852122127980875344663213711658864880809795522997742549086053815392432354776892392463601306218607806879568436375924812885891951707998394242370456143300826835940405540920860294827508222020467006077583403663574983454765516854708793526826121697112055922651898794840121018175197080265872875443762563871884338299595231505948909421052908014413097617635621389061516016811614226586679771718680641593248062866982401529840543809676546329883663855463197213977532505794350133512338484063431469626707603779349970454749475441803684277875385214182957381923666617116051953739168874059658706590367793126615250376846370697989799090024330114050457037993692994211738225425953543627713738713471142140552651632439780415971185082718136243738075095024280095530593528482830746933026866290426003456037165354237899419995183591493159469081787780302492050416869238028651835834603804735082952338447955236215882313585347435472624865607792001646962340663897607536908785442636540691833574865460153470082475479792281374970937917644366355161193824223398809037700153447488048667282753771563700302851557733400232057797358168737536321517550986809911328313021127116309816710179105452564363790529072115857087413977220480520955266681448160690315601821218950316324672450600407092055646356649369610601800960276042177145865805361915721256312483846503097341066886325143365140669596275510242933383910805934605776118749922747968731268219124137815583962135110193779705388396754796383214098378096536673166322180499362565919575772521119183961533456870050477059466684111585056214402410925976048527630297070421642640936052982926175343158297844509661301033610196467377074310848992460804735066372042530911329332689280446612597170913947204454282375844260708431319462547900528354286252368498680319536653757378453214128532667359836783556776759623687136275849972172256641728223438993957630820719001867640835892280098996783571549956971597786695033083269090651137292470706335268614384655487658678838229627592210404021845960222747413161443991913372726031564342839342176542577507549874863407913395280512794881291564574398285686366568207905482464856201803003736844773988549260359435278267999483407797074029518594709043052077839955572790462980484756499686675377666913716536715019633059656309691006271875664249400738277585175246249932661310384969949461609598806327606120139877831937359686154720151898805052062248748954578907427653930444355503406548944147179254541912804303305379667853853622432221454913358817343049164921991217762546418655310535247407857611116219667695935804388331092684040077052855791228678173707558801526739925572029769362905795308585879246072438753301424742032078871920082531045536155254828254609791037269515078731974900993106232373350629524604494890328709237032390137758047841406764735050477544147552965316116366773330794375138520347669168336854814703651788762825732657186649002459063031553268464334965139103302384200662094604407327599053433480577104740627607460492461979733202082119821549399013610810687496865748151269392600729983931980589251835145567072976461152562515561007413167719557479967963532028296528195216337746277495769585852825396081345275816285174284096491566641512647804003746749964230653014663510792260943240574116615357233555910455570790711321346060641292572441463508295340601425657774300618189479079069556247053867199065089580160113613993723062177732503508752119264764287591126059408898645949840103031817084983468764426141330249015984034392072041961972113284853293118596750821457241424133267395920322671140262031148468515888288164594465773755715281842414855165433533011238460726462514075426279284358918650987035064204004543945300748013716861816704686569717488674299101926352962350521021820373587415995770931436456189464504942103251634750049811659746835921317531059980656990715736602570509805959213373083537876098510385995163240412854669009652904805955634992441904497520469428765866947881341238343762537399021977500471910283590700479829621571023944782583389534936407173611297380615689365681347779248964040578346549041241234179972401904174882268602234101941933069671235011978291249943236719245026695670366668280490117158626263760655192720767305742488108767674179876174140398459194818732570625780166822797494244177125057218304917237075566807232948734853601518595264929125301632517498102365897081452647755531011042986291832932902597924055595918639795295638885124829257374095995113995014905056918430548693153478629825385242018713264362043588486370032551583752130470326905832618325352181810109205922172420757573012611073747192595837756864950151668271418957288139132158528661749352786919250850609655736048629281066872148376586432963164448087994384220077367957932596869598087530193127862124660227879028132837809292514974132765333466591731245613882567527005432715635687431093961803099502733831024706773338982147765536119665432450276485679231108773778652403251829033094271374669428154596090672754538426783918311207472516192074948403494850877380171784349328259119189225526774405688650371007991144420466415241113263012071342595931319495694613165345219018264528223728927942031092817042559339367725393317051904127685296766836395652928965358911629857381989461030561890298506099231458345103875648264815111822348684205893329135226788834546212567104466092602958597655812134724242409755705121252619804762056352040780456151669328686541852945085931363994295488157425551232757616951952821637253342727055099411223239638180998102216184892128068836158048604588854032124829419385731543179177357964509457719176147493753389568909753841506462181431407532302935606678429056929040288615833608959708906344233579411743580293702390357976125645917893073754033223294625659206147908200861530700446275138931358170562316928813899115463254965591016669172982086150846322099968795893770895857437021310200494249314380935095103701503315419305310704915061716327652906595307959459301168093279573150014989760024675734908749576009374838954914208930774666334503895396943131025219345033201806813240205351384695409018148983166832727178374223980989237542017199506969988033839087255528705731065103314879607639448064707875606175622799674504512519784287269445464019007367222612768535638759650513413366117538179364701087938979111011575251486032441300933917918094839517192157233019521003243285503023825295562986593722396060424264340660013178085215967511646392743727063879063660498090394402313339713856818726530179345618297064672915908030439827416236564066817166665292642678478619457227408224592200491749247632292208464788413972229125006220600752517411505426980441487585797825033477799571106462881156855147944890891469534820806209545066511713973541689115742854216768040557655678020727719991940670373454918069752341248733812554893798689069282224193189375548308935193220539881508125695734266497516946141623950131184474674475295393396352682620607276551636714398175826661716910124927377807872637176992160372645034909345485800615522867315576189169502950327816049844615907716289137397946057836968474056649423849659317793720459592238475559584942576131739269451648266086487221320699357005707047995981583149043100871311169261670492162990174302089757301198602300908955112089824824328457466617717818796939062237302461943207710981001631233575562592854052834252529723974986156693720317877926163466178584041676591622537696137145032547801575810318382292385479766257351051608083905404991648509934829348381271166395899621177081486173662069759459579116405956575573407589451881922490603505424043762881522544894372795929826760236819110163318221040930852755515309113191213008720608371114084545493938108292800878370820133429603886240533703981674140100153091146756440308152192299127344201718967783027285185508077291040613201236957000622842985720467271374526481121500428436612355196928132865551964692967708562543785038237554961635472894502281539219972080245151718663972665103817131608332776806355322761423008770626943292162773390185160804672085842182200140705656583775626188194633022978525311832290561538524797033678858865518585890605982581850849173160926211973660377206902458599321683375970003322541086665374875888056653475895884810346337018848967360048287317189693571825461091135689987020664386316110603105705778588936830104312794596177464867746395007061836330561838689937469514281331842934435187542354204604636900228389771136177226061274545638324416380474777650479717205938938030310880499417727919922530230658463379937494406167221221345680518117152364528987256667334138857212771537260407107722900428711717922057981784907699285660690219173766642417302291035006937304071364242599150432045674227895269703695831979567416514168739391529485051469418327387499423046363480720116415642403571841543555406687255971463887020200988408796996361366322998667077933543942881379218049169696605583916855817340248092125093803829476277526388581289324657901970569392383029714770164959980752140239857669024223649099482112888567749748833391134739805129420555009465937122709575985047417297150991778806392875148533319865002949141123436774572738200890732033513682638189296120278513201854889829708648223606533762296500644154612435277833638925988672064701367481280028737789531282463846965069236015061007376542570300595689170296967257328974776948570422345220533949569852805117642114991525653793828986233809484585450123128816390865078091129547091279174718550388331710628459538566863069607754983412289735476786196567087844007340501536391614386977631071207788940882561076158805253280644103642661737218492580291670211013491970584243417811404054625226324485877506411848537792583679184380870601683489892361936444927838035949760681547613943185964153801278391682827639498135274837834846682324371405906064738982006364398315128228291426182245521388295618218856307970027788700940899472741006274295416515106106882584031818999374956204008314308072766824452541236574737824342037725669111671880663138053176228449073474942394155006229530615625687844134271023808217646980314424854480755499302195810864533570622677188278605650856831612374655470302978150329251954511500359112613461656865380824401628363434260797206395460684454165215841219807287922882155668437911110646004491883324775897299287752794265577571005732589877218713462642440527981411784318495901086208242455549845086125227284654458732335151434102559062134939266742595056919222348659560433989613088836356214626242183346061951250049384280596250408585661454152745778989429859031312424673569298300857594725419229492106944324081747092579971133942037140301495866682779776629764862456135142150984637558326976178875711525233364597155719794888805516427640252011249603684154306868426432310613260920532164051811937156990302547311939908179978685968668149431678938069934373964871010643168650209720509760066298569864798853691813703300834945816527043054446951838695722892775442254251319104763175726932732148950675292806053930814054551726485001753912692438023754057826133222087171217385572777250329592120872487012229643722951465613958478238405411849653869186512234884421552662624201306398783676657703661995492767837428325191137972311342352078432194393966853706575669252524335136471426997495894757716939792516125142893369873141254415466916990125817095654316591044793374941394684362698790958741131183066559027753523759547449163391859151033819445633180113042376691984614237695865354506676882423696993467225494429636904669947309224351530519785454000036498786334163659853344474291858792970604743047564908580148658652582430054028617758593805001995862558561889670725630977195292449951902716448001884812495989269328714900251864549896624056439942290063126909361604038819961151169336753250270374212292792927509642953338001117214406165079751824234571509017958941551620679685097576670407210323157230197657781066680967360921164524942299214186259940765464486560124913746295180258552130934099726099508616070648061157013601521384026123767780915042181231929947395564353455762820363583349135873333492688598794332639252942702689258363618784971884965259650996877692197541867893828657103044058656504878881298296780004131452749292963764392464316759047535595593431936178638459575221503744279508392602661774642393661893393106769682838561911639652840842743478992508047649754602854007393542046707017308783966770863309978603435478198561298488673939772427660803886368869408649950836312495352456713785984360080062768321750260956610389101481360279209687299001242021576531784666439759507106473954838072300148181692761938336194771872484689860274786664749718602128443413746170015423339653624869915706684919134778194545973766408975688833134229013935470028943066423776455197177060163790878037075780352800877608438098540774562744382497647941754045186060593565844144080575721355251242422011835601935572391916083707874741090323200299359506166039147856950376020167396561814211207574690683466602189151883798280915345679727090001948046248102499645373606410897523895360682379210539075070219058646248319759055373220717088475663234540199943081197895487025279613216348351209868197493341475260746232477415923952668823293093400102326573970439621857828662338220359932326521709408861520682135097931628094955790231038002306118848578886950425198958696157998836768117953845906280760228775933178852976025701802558170018798636840343751110461744104352078356718774139129203146272565407921371653211774029713005823169590474540194284433662928803098805299300269339653821275088775315150696377236106030535083356999941556926613663484042128637841157139737294698723232106740126765433102622775677511734506055090473033923863370381059747287319750686658221006755377569007744430980170382221581337666195630233624646342115761279484673773241048355903442181809540494750542206096813272449793658933978895140018632232397179182911134247832500765789959358482556673713432930289450391145360493246080051259778293673020118409028966994623148000167251996951243684777395565760791516839778765070802502436948084858296058510503337585304560482224136588557936319759208197900693368401993505122981700411115790543505401606223248774732010435706788322255410188584568883772647904308522931843901692633687572245259865068358755347266875214994786809194242608382191550613771868797988275713538519674864956668906850471523981015553300384616806934016099315586339697752073363363020429370703314711937107013961222250690354925903565368253010150671506314944136826900650098993500591582734754816526102909888079583135667597524365178695470666117805580195173683107316683360563597430110952514874287801162013315485456383360905023640138435414952721092524906757348671061514460027067491456704912435955959320715751364472615116346156821273888604323275205139752144879372028580114938094202458795884460211354386028318938792796476528361729397397198401131969293508331846741565788076545613662385216309484433512703111994369100830590217688108732337707200013492236958547937683826572815836588606470684960860276294981641530634260483467477395715234252822151778798534043474295765007141404061449701460899749791304933192810361212025118598652172949104786521383834394102902517447169916849384538342527303298073121607688551038319962844703841769105387219845107305623920870298793573722936892750453786496231797002623071344969216942623958788880603002626366964785032109072638965510122912975700761971471703362846040076790515262314736731332930736047747274657912224059155691080221928680941093643670870040681726005326505096041887555494504658841212731866322622338186529342880649657091329205988850771559107320187973607683460841210955803667409435957165852799473951112470988825683948132064419812231151752063031138385488975837916103122997026787475644721974075466881747359228913430935172573647493412320855410305468519299504935726086080756350661769707483027561009390261703679783495888338130684150813222719250549702608482016668763801990577217689907603966278921418703272829015228409621810924250031593809610847663010738360670946755042913169919817597582910786613522858801058167206922514758606645429842948793320084643862030903623087796913118130365858323107719728519253430574681488305313391518212295782429527758508464738672643541180707756824454311221163541202959546733435237691921157135619725853275421313780694772443349261216034472418649408811818575479183507561185987448363245910388137249220353153870874027373442813049083295937322710621352312126143928615007392385920833970092910976824087255409826070523365055303447696318815012105424732791740553816744795008788794234378131608166453993618499703492732449434406908895092902784872564183450172600792715143932420074863313186118396340620838359302166511540120502016628550240153013753514528194183459538502333626125018743474080115141964397173183973712401251563981581042965436985437857669608480705334579751751174792446479494842705314935099980536862606363985678427204457659428161424693163142832128890939528644017352888432012694025260286749240377201379115483117773196579116172111678463319017450399537905412469970053316126983766130606344214558311706748465649607611746313785678202958250084747533040896107344295950080841426195899878537411564445202343914414856075601066870405380934105809840042046803059204067809826344580491406980325070596327981180737746887110455127461764288300883572783591022184289267045523584557396922701828040023908718879615331020775135924342626020847051531234317950766576225427743308638504889628862749283057028886462423711206256021657585161858074063268637467923692344974613657704427246151818659341409941612539050122636616678860361995922417937027582003069832404559281807919420568075620889943249982031985854437228069609485215221128809290314374849552500422087001583914938225313764306925328072892035489629201302788318618233138704356455401073357565448586271379690680835193309544150670745285237781284986160319914356447335116987367122553765412797326420368863317732598272806026942764647273543017947429409203435880447618432579710629466231949013216918214425723430373053566171146151684053410747946411775280365702073791975467972361968952543457830952411506787508364682493962815908645519715929413933838229517225275343200452421561123596543406346954170593864041580528817181201636675958279587092079566900746894371164180422991074988293518323985174529412428188012387165227727915637370200427318239308503709308397371725323216047349896592789177003206908451003548315011154129936411135766092619274980157239480653756659617973314772800035460000774400743111545080719641686990266091500959685115444458278838470188958807809815469977596460155740654790828132434340696287294198981118335550209408221393965048343325245158749247920842557727552243499325732552393409790247004227565802659368498535092871741823663814585600180147136727969305973103076850936169955782105311076022626398121748892828456658067249391696877081408791228859650114848042991365912785383183029694867542057271940918951607569182274246915453716512766851955729176369352836538244465756160935565508584420477770033136904998488186666265603501703144180028561849998450076517337955401707885845046091878511166063338378064767167071455361485988669739198295549294094238027468449588941272280072357535159610067658767111523193238957375726182200993468399301589583785651102798276314039454191670133454200495073657699463527432770037691059130443067909012023411944648250624518353932014125305290418661456261782153388847874731009577292680323958686128682156641032940976583680525291799543129740014663945867439077253521446510108700575882498155290983236530553710855855371907010164831981868417532244036575842044324600164407270540746981008795869127278745199322202876872274661113036800976493807794214119261957248073449408023178637864860451571545423457498263611374582836609932120015348121031176996560434648816875698043288777616251318924970006596918160968424772237065066751960586632022360606219763525616338925672412126063059634844162128188855040791920732057434842415740845575718631634612761922293287518058104289371643658244718309760252445074390094266818188037444582011894094671068907997147406888418557074507173113053285937444052053319137788276384617584525902779105068627891739954137608235779813398212168017234065794563965294727234544970518240607017446915762582130892689192124411469763936185198826237181498944470578281638814504710906547048880081134841438731096002869828796722601873959518875756691651812092752307017031485906388043317964635298151845013739081014633097424490373742089741611346707130429894963866747302925439252791868319187914571486107839808360613773326730245389097403945523285608104748863562763565592127107916017525576504072790586640560322728784531146090559035411685470189685780028008576544380568284597387645686632389044313834891270346722710338094550743292670204039257980035418402328971522589727443301855624788100969960809134223445048550301869913416693493885392326924505669389550432425309851139943150337101746878568208913557215679105240517329133533064515822556569635900864480800553428999747683358380775411864709539796790120134617601924097939006869026749772499248628078947904532993638568740222261022739322345235181837848966697948850573492015940882910556935304279856285976250727153902869270373361310767195679640697350063900433713811955219824607271731112101216931305016635426550715573106115389327557235813988690615036533537660704133256747894358134010531923854435126213004017987086127506147681822649921933795132325175607749218939294990445135294989673605162034156044420744241540736337811208014162426070218443035369474508331042701600223934784417599090324088881179520610531203504722017060831687267830355282625935644005416144124027861411623646681949362482669827896504216878873072094993550537988981436034307379525546725479671742376940157072351505683273560498671830323625196734443500952060607456642701079384264061932250217325827330211946883364041121803945885538906498523129604519528303658326190801682044171769509187653752032925673411079678522839918673391079416129479213874711293101152083138831446003592740782130172444799062701799900845918487170414069263027015302229279648480874639973649501607712011545923540738241556905647790931906651337715818406107264844545764595505200306442869572825061408467540907059415149676244094547587778508350803377965662102417804701825106625089847135694272360239469240669857013050153510694227072806373213134427176406615624925425249970221459878890196928588874774818610273322747807344870229435423029951842255973378883519659269556144056746499985453870848917094190475863587322157108156882591942032459723561494670220282763547952607592422540896845524356487148168827230401246096546322289881185208219744774175441418903842168329279280860001238461665225801807206549464316552518871930212072296507854037750022762150984260746904920222086902989505878848926960386277060647333996213053337989490388230641444925724382091539000559413589609117681050174086079194943856753519604291749772916790220353125447869789897754951403485773600376950220808700803140467445932437085329470307695312392455965255023642630720554461571740094469653827898759427630978342756398106858666559630959054783040717883111790172728534402992957896093888475304916431673159116438991904673566698671751514862536790748401670037281063667450864766364399303618352617247322001439472476960342352196746278927456985076755484425881341393867074725440336489117358831349878797613643019378310471698812630936052626682453782989838189460595230195130968036502114020214117691125052808840915311713947360333379801121194774132035082130002338576979536584521091864208398102417784093090646549663307289383640310241873934732667412341373062326009061873636591748891754824852594906597610524074135615194469997120978368656365786660874262159610826363703655949197522925044240031575367568555523463562598644864258381190396079662271241444579220065007877826078905938602117465416468567676317288738308010927024392561391776582223974977264293395653186736823620226531225990719791716545908188188617556393985104602694171013910602059853712379161840719132986896135776191106351451429126246509837025659998881030260840377120412590408676882567039663862016910216863971767037538125285889302338971808136864039809812025844180570992916659335717638822651455945969295045084132540613642108815543145411661714379583509054210094680215236769533819653041895924235536384548672058667059362885088449584994450568755038046952918799729206802981699360596385931304253952357363846952117769141014639620329623502659973996041688892114983487818761070690375249009654482012259322905503459816151999824587023127692101721385393963866414585143509167417524297309827792986776214582240737846874798709892415890323345369210984066012530487349615984080369846132280955509658114868358338724579384312706843682107041118172891566853037979229649394357842413674707618286146292442513169811599700924123057751818520604139747864121298680620914256981400159696488975087900803544058092894464565448907075027419889371384762508487799814414292909704662727998004107297088029914023523121220634493627589397422155840252319185558162712092958684349106642141113543562020600861372605385208934896153395442584486022768071138536922778815945076804048422178866068876055363923563338227090264631236504496134039395991681951779075083118695457377148440561700538665925299463074105939353603329279146741408117263274355522654961046671806857426883819040057334731007130166447834319235410614210206600657233967763856545543241320794592117608866163593424565030359965355023483174250084234670696852441831876478021720780880454377388920665579560720205317864566177199782603899404883027880037100443944656605492076165834986025465271976343201643532276487138810255632019911549707559287865096244966123542371224142829582734667010822875306257999017080976225660705255136276926429290776721906081571232483393124320420757877016958601670416346613471523922836313010309708304948426877429921139095170844755015731959337353565438637534239117091750500908911661962037358609534278957230802066894222653068597994523507632526614066433049241729536454408447435901226140608060592866698301655980116605910993060523634156867924663835691175337196559475289185832071352288348626446645172184026296330009072393803180654687401499673210399821868293258721010368810493478663630744386485401201906979240692577354361700414298148418029779794823600883006251777211471956927756312591964182407863360054209289953503791934148131863122176656790207794323993869185253467717295611039560589187939999327497065109647050566716545914980960768331149358535169659596874301692516662936293437653254488842068583756833895979715499326035125181319208025001369024686872626131918454468771929078630826342461223511345974661262776487264736904494165304872270600849748826294329034660002269854766981892586913327397082623918946060948291007929885702875878079149790020483073894930905124390727899495015400107873601794546396575287520345236202851381817636044517543354113330100778880268130364318837720428857168933269416276819127607941089189735212346531158947125906083027522402335738347601080357441692172367058594139247818249458708146354982098302884042662613608584389332468440106971320200436074554858604410726405041371295557986870332936210116130033889603059997939208819450000351059101869272892929502687121861747335878889796172172191578826141512414366145556212166086683614996039620132023008620394155846043143699049790814083339973775133165882732541014647808773842004401242874299336652187588904539280230492503135287141376369534334321495232836576498375191837430290688934436783154572985142990928352304548674756181665750986949052543045901939334116862572047821507815055945401776674012975433818208197365701113365378363409353095079951859835843898205088647970040715727027042383699877036895726357252400947837293514354721505403258961124863838566793853577941062013359104354273505605910265290287114721197981201572136419968400498857289152072890392366050555190022436535728865177628862227780675496443319679366487760093730815610256128449630209159840105612397817282874205584471247440872074852306010309084133626319804972816622403033314982893059478180847496984376156492837228694513811358781027298714469321182761084115822806393026551454822755523445361322980466566752839699840213350765672080006351511983130634435537048551359360751291620630880522247451713691874284087691577056821331314530534108161234896823136165781439567021686825269862587362640934062129252462555074303145769255126798105088787165320351449140512692262320068865197423863683354343958076402883693674732033243824609793801496459660175311215395590960304304231011417893014490023890209001548605813940910587990682094545847579128403031961317247715346144454185374921662161594021344388608308596673858051097595706141039250125687351745391159163873797976176485050663536123271976809070030855435861335995881727908677551254641984162409961818124938951535564732620586585855018793262336431354816611320597903106595096590110713483964148284119143375696504498160337132037251502033079427518870328838019827951465227476490133979012538102025194146373011077226559380983586815863429009654093971986522333418481944166649940951151558223186246296145806625301943962775411322620345762178291327763952047735759807972711661223430631829475919033869661565570343362362359586200436709243196119551723603233834982532692882271684172494332522603199804977984082406891252030517273519365057059643697284288919174022520378693004880473576763460267397482835305969997317565460062150273224269954739337291149792123496325839820988642308485517026664334691755984899596611970331412606280413733593090341377637936465614151341625590423269543586058204819447117107767058278222039547551828789286116527931328811074123567884040614402854568104920705091135203119592975402541746146074236004596704575495806282865062246578869533381421089808052328636795161936762076692148740884126199139318542704408396049832243086256527862471550386846996825419456595976388781317672683495577401755226289978275597240239514461882342338140401294688914701644133455537908946435043770163866139939895267575317876424032966822433403556607456724956860108470676917312924011734272226993266934018579114751266417271463986508128538409737464134530583461238470897818615376682141107858436575758971097008397943339946628879776439166011749343149090878425055615869298132475514499522017335145172961769727051748984273615818912944170556203458672446037416745925695892723437013748508402511138862246455914549136104376899240957901990879198904602173336051911552410429387785571931626452832451290310799501759861943787480490466840341980742932352229082931201218893117838093606556109924811632221571310127481217620581652660796597995989774599846846984273697914366232420568077940669038354462310750928063542942919379904495224064961707672070262039499272727145643162671810199560586474245909265274756381598962548284517345305669801970780838609403609397855330495670644271897877505642577785759981801986949080344019703320678974927119279465938867759860394820618252531134573204619466540366215046880219212496422315186751913999441259298546840278924258536275620305809201560655954810574510030470191588874067325478578239003548680037000985738781328711986959580161811403044955093736059382587580774343140100291059301711224010852011332701557900113794055301053494527314280489352397443695024463964731485775191839849256045893306950755072495255514356545146378928032974414335128204534307180211341984019342165456651852080597960001861510229982091579061780336303696116186325504379049053846456673297454567203036740399407305780975183106219384812730143522354196881103199293535871362641284457124893877877637936258059112137988538018853648794077343258185925014877849425933738153300185032906256342090618792581931583563965445430947881269127091627637217435720440382799715273752883573123710659394453994900311331870824235848042547989495058205320634790838949359489113648116963672987530832766240575676230297381501506860214973294268046823982193648339682179760646565605250268237241417079790723170183014480755196699297278386140314911229884993990510171707659134627175104655093339593962067921008662716653252620308748532532652121412583250198628425453709522860708517841230871000393275878517329308808999018388519583940988711029769782154334292478356096421491644272788506479803770771864914263730979502688597809509741599528090125797660854531857514680276100458921130160262438381721242950576923849007386028102544256367777307887204985948288205925040573896796331152550537684359310039200245899009717762059079268225516574857783454467459061892250198382984335412051562084489812658176504884036928828283982939526855686421357573370494186823895552801034518781590124390150697014755507469438216033393244269328211934579156054284586306334515350345631101619083369187081063165647345858467050818839473165110853893033443305692787281894396065728988552518033449720032494853618946559348232077417271158694007828316513333676856321523876958079875395249166216677264083312523156516219940684193991900964180841921026692177268987313550911831316554619117714857989866298246252226388261003175182837631284815172522001706628907697386594637685569402529696628219381522974000700277682868028465856565017482542075820673884111893919997293417188854833647929268273898908397164925169224965441061463906069346831428038089870477094357996588419547451691345754281567037274892534644312789629731992925803240506983885870519186857256859990608330375974636466666777769237060373112429012321840723013734199693021816412490907015125005652154366816915468048052843385127637055503027778720850576576411093068379753802404048508571903335629124159309360137675722629463896591010019753206530072238858870163922023946224092746686216275424800325528830761585824542753349281152248181847991430002035268834666869986216256115248142503948555863825147589981727507251978428221145385022554426548620308291842555632726826050629534193386354574787718490857490539438782924267562861043995714589351015193600650307858102011148570329558830377920823810549634229751430615445649874368065531447416702126410126323189432408852468099558314805536687811395596824273644433596772998289746853879091216445933589248861157842884477685124772132004394534303991525381474308519928878005913933222471037260452019568039441227865462001621794601352927494194497435417180239948312664724391996161993586515062089745681742884882523892361426647776473376244814534993666666594522407141192186475906477279404971498322793931288725644063849516890524403942113314844130821941823680320408778958400647258380178998957011689656359376368050436567097389492707606570794049927599966965407277881307202172620312234730392479871490793474540118021346187158276584178826688487273846787106175139873725882097957469096302072181048973352794959187635720690732182849157326412003368546682415879177812356959506649653912255035003355560583426880985238917075306870035291868691369115959910977118154260649642792567727429210220351674042736049252156751774402201996021845097909915216764863918788268264739609217236490903393032436175572281345022701297585940449712934135713002543077804220601806679847303635605010464480674415844192605589451750701811978376948227810319563769660077728892318758234873205244786737387112856920994855837010167851802676858959107008808222844506869500443703177428291420974477061337611571422583198886095777648084288603950484033520437062522340286748671547931778275872538380560804455601541110444627121189207945804380210948277171291053372472876949864246657184412203885003462571671468894208250188194659773513854432032448371081495325391351237440541937296098211744065397550722832832403533199397091581306572714407808982973106727360788842775324787865634808418508259433977244837610856794178106666069481997460685643535843912606636613653214916862384027776817611013067182362609675795846742046584103004410364908432432369054336577383395254964255015943669422181270794385557495234641283808247014098653994960792726309642089782878599419974136564679341447059849405421764584283168206991424704574967750024710095039504009691662693794515051200329278385133447624402894276950428106248093542227207357910503631621039577035156888118289983362146874898914706480700022556329466140345801421856782036669046571824977210887831210523479425212984019935416613309932078447480857504266266822127717071630893744947882803614164253776005075032308917197510228176929952388795403102239180248172106458074762291434018458935778448475038765785683066353657879747625679003708691195026425994092738874545519889269042307996140041833285424726732191642056669021179673741869844662641316244796411375952511707504503273657809423893990549058999549927217698130035467035568828651769576986760787368504972710419826540030505329137734138124238178424464054854630080639112478747896058756923086244439810052707869330150284081264921289586788663430281648700757278066658431766721757611538932567138487851825031428832861161286042908328034640472119092080799306774387631889131746641481608399840471325119110999382134560263923902605953912032148897728842739954979106209371361234011120956529298018464619286447496548002331507677274993928583804767413620977657124334811521731981526988527172713033395315975551541259412687245624357091067059863136760508298426645715305034939611392385913938650977111886800057140398168419675793542810027654306589078655980185725996231910309556941162809359562681398909396284891606462328838957198598312979758387867418872095220831703266181185442757692861309943766322791056180647708633200881434687120243290669289115902754980475631562454846534252210272634757608218465208604364072156542796962397511870047132846700858054953992285582323996298144339098443346559637469159253743484008639185252014732969821058116519333599636455090975131153076883783208855610153767495184091217295742114176953303359076453580316502526242205191173744603457370922439237164378660226918304457499860585017905526060499058677478923119237525167097922496729364721510898929284450459394002980353947674447941289033882305912512688982515606496501620051723572539455134201689710314628786912405207336243679709887425718034595380597369543845178214846143071613171272524592461752574784460644024907622294784210153389290963726339389624501028545835748053846145138887153730777298595845332763409424357995663470308170172401445090839593518570152001246689772935694847241848673400778959755636083555309198706859851725271979333459697801118247594143615553551819883550037102374674308672252948490510632367574995789992054917325132227740313661390994343662246730338609610434967917608165129758361304265227164268155162110927298719727925607631762546701594611494294334650623917481895818768085994072167561428251628698489690272325367809426814455764243161757023482050154556224590808954611357400344787824081609429538710806998857668292566227876294414792965916748137443811501882008034593699245501439212617676882772194767223643002894467675513912448124733154999422554692573936035155524687402598925066567216208408021267337736973760807558798151683998982928550053801157767268775334750289727944016031798019998335780823483562452533331087354098154799066289846838981877282771712378160682096319501325367567516332045096196924150148157105084535453377645575927500650740410986139012560547474224104927591427913966669944715122649596798105533837110355986317371275284196109147799182217878805078217784341137704455966484514999503554772729654924641763436587786950016456833417868613433577213695295849411071795091204554790042063977599072908961632905871250206048019354478293182513413366016861440979575449037974524905154373733872890404115044882136651124077796879945697917065537727637948272159666140899706814593145694116335532587169424305168299534495619102458458773102207890280139642643870572238069280148108808940236838748361668244110102281319892510577355642543427198979438172936178233206129538437629766294623430850288702814099532490200829871414087584784221505150883836739922734424000940520509770718201970070788850909819233980051906599884886051464619865393609080628902554117401869810303709642625958508180918753648856645292555417094476624860789393175707723462258946330955899812901043032878459583038904133245901908080051041327608219250557443865924565770428698049310559690334948216223382063303949503673250903403256987156456773215087005869683495550345217306967450010098508060153789612503579494578136458540961995478908145742136200104347690410020429822746663145567886226579959784649393893803584520415029643646644237246693089518162008189492341693611150965720010146809977858050562343408244264365748647906997472958816192060823195837860008385398558757505546423423071756073053475394474237348499088094520614852618456258286384249362688221794883978327786019606542314587895421333197596419027596151979131507376880739426702697316208225351288813935889933090172691088687924847523103695880546756430003786455527922511488988860564241364507446509186551788067174075698824286789340437781418752116817233454291245919344028709122547624260047163903670886468341755349255045191146368375040470675107200320813524104997829035854677177661652382355032105972098914637282835055202834650335349275794005831776545861719037343331959972743369325638949339414643363590765523263181805151307791056327604602531374775921771947320593003454126073590066060972739459015903102137448446856038377798629229478954708127792893197506532735493442231772063657087308077408487550963155451617813959664669073485631073417187747465676979409379774663757072227396010107864368115855743632926287973839662902391702535950835693328000997848928211663722283033833190166019621963621231862690174199726953574216045741951284143890318620839186646624069659464454880292595700767028841292747559897328301571983908684613741314341555615952742422954870561143820341112329899095106999378338228303044018097974233068231976969811559962672747257950352871346422614394038372668276755030471742847710996281572494896923350185812349459399680553611103157743412709236171352386711362628833085506566026297408785121637684367083916714167622861065096403336615168466686678716343130395704023712877780211431047911878148653332153167680358913771384186794474031550891040222483218012390067639893893028963964713951144013019992936164959418005956044666015155314287488639134645434910588484286075105370812299196079196568303461252792684791972441423068908505491472556149265342408519306000902581016396788640959070959887690000050827097857987682108566705535784126428591013153338086001774003673066982507286354807248707263177646207849406770819164266506036176470990737171496164692109098479673933095695142427314590009775928809244855376972507710629421260649180428784897080327815478667254405171364290808817806050912585341977710925542829257365062619293665083870074969508211313295693559230749794501500415284824159035650299142463112713519325058647845526556371151314635859991115189466915184032273468506275150042819132118770917218697270750827453149270050853908249401211074052311152071396776230098656877697090350208822700238083378519484483295757161907285286454696799491251582465800828447658607965507536591609927290528395518943275391793313541467921478419027696517096078088945687556669668573577011409207607365399159183690606559669339465672935896607424118055678664188956793117689004968897955216017717998991979340440459568237811885303733743033503555514165644217944549039980377114928188444069630113135902413595049004557121803241849726722275165472002347465449321889877456149615583713891568000880908021083494899868922001596059316376302997542410585547202344137113460293524174615934735722520242871121708783828200047402276420564346613919570162412835299275646665118895068521343171283803996601385475316089554654655207204052681034762310320853954024696627410713699726178702774604975337457082661330594510451702660576552567940916758128089599217173158695708511417632029586589466301625134514593022543624437544715583735616632405394192024159405801066438345264996071693576419138346990572181623874521494620948386985514935099701256634574889756944634489721190969924996847425622319995715659859957441855485467153625468220838040323740471888760338946813274946042999696773907576955138263005109818396818955488428169223896572835885759401487493128145255206618952228357347761436912298630660453443027893989330095749963347525502096539162253395924775643484080755233039016595888595049960353349530052347898917389724874662030082873518281047464852983476920274079920456935136412303111559724576526134086146802930918000503690213374882230388219167792855137370621106537708405017599067195010613103154922141165184820688688828040031822194275952802252641176161467015632124962318994948695714079404496056613173168477531770145602285761150729306776077545932037814072646863575064871258628408184260679757707596382024379141282242374283355496929768962425218552280022027540567157482800787341613976229983755599443785348255582781684658205107456025397748453148101781809391564877961589756102706760486394797175612016605117165333891211152310684985649736691535302099992177182293445504940491590699661381111481355380909844052026812363740697688062615931274522502800751558117205511643637558280826046623815179841143024489939516771556406195708550467235213095785068062684702580436820373487164333528354949588759793921227032480348480987213043079465553012037721788250867438095657505154545332756498101057346527334432734203629600569874435629498629153865309399477770757121359777420012326733681166641769336467160734730909300744108646804709830281470590170611826364667502537716475300701035017854566209377570627867639175284797183973182108647353930705574633134017221609935153303383180809702211372981260248848087375575226366638218852649036367698530049970914318264342724319409707853261816790237210894608836748239324556022446578657866045060449304730438419504384482612912082609894594487646491708165086071919238315118644992372425181817883852208979215017688529938908355797911928409436836687309520421441299610187739454793511136899656191776696274973983179199875274316315326991266818747528880059867707984067538299994520620727654691477824334600096329229005566642105724541880694295416824885802476694188921399077698398531963781214651490963669024508258722095532362130405030238273386890964172152153415548324374225901927422261193445431408425953725101622265358493332151046573787062071989075790316302805043137192631012790097570772191565456873444900830833075696435784958595415863397864076093006687996121424751472827487488472936104124089026763990959468703820863205085505211398920926930013610137602914930428497285105958420146468899554098107476993798781903764972923325535208503525265167541923649124253733615673305476430975429874279792497484654967675060961925816175155841131915931921599047467545998813492141952795724656270202911489312037249594058958247951243580538285446506586656703774359180592276969097571013599674622810681727331502228411356680816332613778698216892975321196402759401742540499578547035674453319771041527430602250503558830143710327713843188810491257403498546782979321673181824699122015359712237066475996119629540743676514187490242084746260239196481131332621121284968405558956965896188770284837201650930892166623179724794296321042838623852467234322002092340682516772051517835069515344937890367437409281790963497947471459870713490636545346445866699271837301068733584270121660408372872248594167197174709853928972235450282145025291901793281641738262075556176457970260351354454612781444679786685411893014751198727986566472708659470009156324936509210671075975374766658240561358413368993929730221313914962838378404380834193411350969319487020479502017176983682513284957706418315949436123303662243220243588907793936235340030173148221079944619783431642656390362953786771673284044809373864141566466868558992771887028499856749479778682232289527070176734486865490745581013593232351967756038172017565026520795907623417012848702932088090797528938318001186505965201739441444415185735552195469260141307848290139087378117182025518450204067409227984293177899270313705913731168752373085538692715497074466744101274491866524171945159346344832897429662866683917991245214209757654048960041507560470476318335964111930755848411743383360865056509772128801290735993694649224912120859733862365825220825418840546141933794008185822747988699418651743462279050785410046838869226807404832480638584961775402275359198208574070323330288210508772355409289246318367675600515267558699248977998396306743646083933870803334863388014541001852227862915476688749100047076460899354117536395752181525870831731165922215129368305014919141831529355589895325181309750429019127164342204018991990456761197637970924025548563153259732301987938244756303111073454666077668312107150997338150466783456920857676582667815470049241869799674075006330262840577784383683364028310005685282035623890534295936494177911145722798564909998217647139461235467939230429305383143612475017738214761168834251066160604933921690952171946681598456170243623979309845617307585250440995677957832155369811391697883034694227924582721151662144761702951968971758005918201233370586240269715760268653680690492503547444340021783756899131042289049384681022124560922762466960224288364478578473277754819465426420992020580074795547789147951388958494631824733811393232032865186334931143422410444309022184324749464585771190155735134590264474144919791079007725996464200675857004097788102562731145952110450485540179731628236984638228365397966112308574617360280475143373077895109344841757692087825549968909327458483724206137470026302573982286893936722107793258052917504690534624764495239676964642088568671912750289419260021137736466896231540225608853853028019610333553414654975671747068556023154946194499146838397133159735874451237598250256322163491191975298182267243851747976564671697655285667886708439664576784385674673964432881741172481098356479468153865190149198475385466076815495123030370716983074048848864559053074547850511964601294110860984510497322694757545988245786372291663678352770488764239169656377592832195805927508815726079578177195690545076522338668695757027242410493082392648272923294269956404162612408209354204844603302602232519999185099113054218532992665747893954528743067388527415468134131252479610612511447412359056245364292505113834369578856293384656465612176056908744814075918028198040327666408133078602874435027078904403259763675987300218603250688457686581813002857440971187169276062646726524155765269089897983136608179484684733737779819772733857075597154827516665153914125058159967797223420689619757651250538728887213438600121181421065598421138082482931898181118132429227137528909324611035423821657072100733334624687804904673373481689244554603514057538577970194833311540091012454116697617398338742960499675135344287366617812957233956369788486742936007770788183935802392855142941822082014163433504525558990666195152561467934479051921426135598818905157616861786317364122923756628818822726743279544684484325534339917408773589855210981367137087618173496100092165376640948217854737885743187743110348170058022575579324923456513140904934996347873632145483345602925727550171032148250396557762666690742616256390273506879028018064048808892526937976569594534546759882121700296095609532050717859504649293991477156441622325019710737434481908068226116680523393177743598643179721729901570546384096206733957343369443521653450575097996101169128337081515913586277476484942169826118679196192229896607635734265340374648999224303651654995760178364895202641519580448555982246905571970396891856785748521253616181694558990945763975639641600155400845296012268005496541923482529790622426682053431653063498616254003799152458647979775995199606882040358205047917126189264922933924690806858160268119497615486564572916187588205317687104057486298540617154052131694662580375408014516251857434697618213425289509426093151000995526915477973617805202192879145367268166572452171340197826146992568463889735176607307635862834563395842192775780979230404418061236409637679204295247222649046736375853822658251318936350494283004567653534929832318067807156090038683562797009137785325980515147519747393819543324995330335666365876483639096980761250759273105747708711456391140219853796816873379956498251653396505775240501280497335652749242239381051553934795380363210421848752042183579324672641486919342139046139161209338011396952514399256280140967206757696006023999982997153895977377085861551853181252540373714868515304193642564648869348028367586102150847923114379252680514145529033762027730168207469457071475524393504109020517196744719261734873305688252658762869795379785256864881268643991869753415307391059003397631356198176629324978601714590877984207838841746452398033499093124021290302489493366173481898959090659424493708092116590053713466249009960470614061312631848103561852586460781542912129918621314995602734353907585915152887351004319549600246616690876454137100997201004433038029786892298722689975485655067995838040718429975886525994068825404713120960451967300916822980599982405302213312524413838280960136550588354972246706133224913114100094904202237399081580913146731411069441286885882043372337859703477208924548459299472835750268677378253087420928523711750889426805449759490999328317936121993309667412956306935475319044523018118889910564702845811434898295891798529211879161484268182498004800918853797022772708054658165455872121299130249230980333129276211118336972665080758843036880230311423610067380848893652060992117262642526711394379063691802775167178595474762246793067475978768819542637132125320144631631524137710426585531029159975612854024029223718734145471047422929167823116997083372379135577918182469805812708158721078235373428566934407597699791915544373444750446646163765241341650523939893971320331252024404632888200496515977103201618718476606872259621442054383097398656890870749343062672340140632759912460587481865628054452038597172981586341717048998405078806439470161070203001944449550371539163750515736564990700863973999979555288238186821897788878729165804411735515389973485289725783928963819422198603110566859275496298923108105033814432838000686878011029972926009825670535182817507770014118935104771259915432302709768504269334971420207190901386385424407071456444278639060147644557966116204355952604255844619983058876116235213380918895493546330085856108170548351459046685065645170350700759105593851326356197824131397405060652055559828820224308580631023261629332202549590859722433404845369495297850615861910297750076882206434736172870392838476977627299202590650986822302610387867010044207637866117587544484191805477116518579631444810883493478549427545345568202407512381443274808176291660278236485222844925770062721056275764885018425530698048693648455058205674561998921385176964258637359124600312517612023128960365922391286764784649786252995941491540684069983083809702450653488600509860649783696931080802364875165576023540920352803182646479126264782055113141646929738341141532029624193050715083514327688662850641305392117530581431787949956287332709364993168709762638825451990074691396890545923525269249746755725452342896895401407688967091491159613516916618528273594550142160539410550974924379752839704180914831552397351680639208067278436541784164652753993876209015116410746067491814689065950511869329659292217449873083194807838937006647855044964871430669285208113901518419556705025914526593464824776105459120414468267475846711313839772083367684018126132512936910312952526830045497603953187949795696019699463321757799400498514654444260694573856634582602964813191748058906896275791953393702538914830643804541217622631235552455642953992322886316183456141568671503493916307269021068232922389538684068517356088350867125547755992163438129169259540465563940445451684194672913279140013696149352417150157059022701212574778201713260133204528344146201441119889800734523924271662161631336049550597766024941961664677992039275216584795151436476399567757329633433343386204004397990444856320263378435349688253761217721447601577392774653719752457996293186580584953160341577632009135544221429854919774107653289178731362223284981866826275701826081566651800880699903561611105797763652700787858795564158707518703647802442267837901077817577943924065184558335501917054854633820223800934538053542162814079759604384332326128997284770723221168764046566200954551168419296454274046593353582276277811246147638347541727639491348749424435387389169138667216759213131842419181255675140471179433775426899188860321052429563825301996868611805616741824679911346047007631685900728575898957187444649797454086160828083803390482247739757038874525330291440243570093477309528214532238074940111445494218678070230591558045149665439691412603437297775993739748779853549511687446383207033599479651364894376855309771098994291053848571029129665519452018595094866634258893281084789187485778459839840827088952707440531283145911801187740516780069349972679758557975423732122037953094460936356551651735298541364795958477107996192943772189109895156788900241301537271792683794718300697363450683200596529131991572659106519592137857536081129178032158054046208784226728757124576507260630071381708237590975047622036804057023411744604591221512526078950539162248890018983408866932177439848846012305714530963781125868931091525572353361051749966128850597036252749933260333356890366340439379925458796206718275669928144833682868560350774936296951033405572218468830629680569809063542114097750926394003905155937180967106295972931757154143191806780247673356906347420933372011238521285961119620697198115924680559504732137743784933886100057912381134406892033878226108637809118061474699733140370291605744190918383123060825224094481042857822827411526892097158334841202165846651299002524989874130160257111974302490443355759636061811149292696501685989710028728260602370521337385894346340198354384773730415135183995440613556695419140952638771299135286668570854456499356374703528104353891657937528532771108226700002858697766881465288900068068034993535278454567100904252035942722825547421456098902138193247851730337210955559785194810553078673362638124487944095414589942962034080970104168258390428778313623662466378025695069318054716515469084931560812945584759033011395142762842916159078844446499754578110434505519918638970683710147337962350113758654977489690017117014864177610014171985487612332816790514293054793365895599727581197966005148876156346418491350391507749941808205630572552704811033630202802666295188530852321108020827459600733870053817332526218243174776329627453272814711052279592125594146980405350862707116962211604690484600330755897200165395038790312789626760847687438675732815167337317018718259954681612957708149995164301719665308581939831031267570351160295482639672075955837396723437084520822383536198059766691688411826955584085941514773096638677533139015239254875229363819981502813838406842076237685530441448323944918744946352304283639589437275168839269586028027250793457387602159188787899964142725806574812584806093708263511755259945769986909245232106632259131417267651145512036458316687265645199187778246688261945819127992966713988234953221839756040501660965944100905715155279108436685748428457953483435772651634668792762546297990330870617229527375271181373039910113780976049074975764991603276924960670934100777906015225203845427217121242928963555046737422471183462069169564430810627271507283426915826997848436561166890115390878261178439598375229099334879491329719099683043159982540600305615262986162343812135756409795756824048799763884705479153924474440167992587692320863335337251157234844111100774273794612540955220467552418769045462568060584801418809056013735808286815747252339042047318987857462418154067367840932784863189556270132655608273826393448118585223681143814580521573304671222771394868095629358433948792773528684837279205430123890600869823439500528501049901853825311687728172446018752805348569364962896712113502970426643684593724919006577049610704854242532099580910108789185251008828207224279500456352978418615068161795167752294370254258921951459691080996067022171714917410522713688049783704737555756479837620989486825518489591441685271963063782349811349636050020664974282890795856289334640538151851500789043306331359021452638477575318795594333214450525605066630683031827891865578986953193746184308588464626189606112063304047482643592063563092775269409461490502067911335309437921652909824467509555463226702598145238027157282633300299037235331302474483413875995298700748365610865312469252925192607888509164055979440808243352740600401716366776235160645154055544450716405781289129189245067789869895003726696316462355866873554367147491049303255910407046001548011476647230184826605550138764387468608225165154669446476368322239607410213953262860014896368867045567759378319550335159295473447550675029904655099434907729865530894364506808621419515695154597057366390363269883311188438395391323675822401633859102594082098635671590329554226834021733093393292237675062040762548233605807492189028602168713380447801559539619864154099442286393903421976176612327955851176753014318701601600283900280633225740613786298855093425987832000344644655888486663360887769450745324753484973947656405947076666655333855184008105458210645028817860112846863999547200717997762421109467153595123957740822472050832132917617321384534022137793931582251272216666692565850219908299146823488849552004512077612504419444468822988707731206868702365058250726748248882397880099997792373541603341933127594540102839366420834671072732139948889193797283937258634348533014315014794392560745663140961759461596430714725869610753301169386997114135133526034159444818192788279026985222761374164497428267967272198182516993034043598506400883160908829639594748957748774400321222964986757970267894048022900167183115524624906701933095161566558776816516192066461903301102231057122930850624177410192697992927675163910871916668985661136663923422997808927779821297517965688320555521675994288478030019356912157055053535254496135130380241116981263450047224223760820937051186019268023736423733016068041058853854563666122457917526437440758852298403668582657945986999066785158891179610953237925085666087834931512284126099209986191759053784752300296091760363696652588542202457891909199276370153467373127305912009475125849691567753198566490674171631970135521817377290087471627901315044576868605441364204580578988648472871976066966038824511836157927607885326300952059848387849806314401077850139769952638968352274327444494120541612539527711536356985554777401369998757817152368944134764536765842482175602656288435925736117209492508849560786448669608928981350017309316610522653017390294249966171161376935528200562448351922999919126081792867035344795505033694341481922553245069022889137393162938242569224366359379073573078717791676810867929795743310007198428744134226784810014661631058468808972642112700937641630909332699575976930324517377040798108025609347669847691494665993594118644852367508498294323931886884069993726396773598425324311648405058720592039602474644247797052291742796961197953795151327627230389785294358831083216481175006950264800946882379013548197913899458201994113603252804460331985402254626259915779893437719468737635391184024238457100589954326890120758916944997942874852526575810511718910040705347826131652416113964089035655928602498904684061573819518661574928543381660139301190372011081919436403939389846726997852970548718407895545390802750735994443075750725614075380141549009623216419710305646988657481130952954677725863385613363341172847011291575222903656095650552992711273709982611373516943056521926234620800699220147856038578066982538320507035845291581905343924525525054142726072951310103883989834514185704834402918385551962521405466357952522506956732677866471161273436719609948925938958007433166930409264137580172368747751698057112941607593466809784940490590881379087888947650457426971152752933602632132370942105143549922112688156315763152829578046918534298302835578019715615472961692240856847206805848747994836179901665053727971756953021882959878404489238472551658169248542836451108706992158306235776864328846057679367860813133153116082883772718210076134426580431841646011542829776256750274388422907382986042080615339965930090216334580626156866152724807958524467425307686407882767228578773118803287832091518264359841056580704303158841984688226437175672186911404944969993459718444765762710272789236789929861470686100096154649776943569844396324937553388593618182605534149058539525669694111289956630797559549326923002262088740656541000276681587260604666513175822861462277640271435370486779918174816109453792493891388101243201523697008078802121668953077441993816072928988246191786012261564086043568221419674549220433749271678082332857059199581621847778195033873894706760807144537854299037338940135434342996462181861029942619357783024793619162608846192925352479417466330915461903671769901957270767254093440325072508553984083021026236472532751578084474334456194297572855043135030638796755763344226638383916868589729696413761268240908325863346131294623318445239427606430017006173339316290308357182307870964715037109829716135514428600939844381273649731248266550762499418713788990682148912154262890750606458278198156107807489962534015132724677103647773315892207447505980372994738495301623794101768688986481673286221404483869279190822448445822559302338045040398972033767746420649587284257947734982812201873529814966497003849156571755756323963391867328986520459793350353451950916431181116964462061462161486498529053787441164782152738192967883535346523376537021993660564023500113313034263312636382343015551635312483350751324445183428153966290474405877483602414770695914485138263076386023246121744646605499476180459321317060181016004250866515187799691510862459284614928544352183708996851891830205283367506993318366885662146123807684328574599773036541664630079906859583102398356226130814704925588316050406518749723432914395760133963006903101087587529052262841318119654968506510850453668403695108209928817211339797058995017074282549513473726909845094836876805012178413377596534180912636490417618741082402401591743563582965286998613363844938103572357101743259397225393194183825285404932685074457963024200106923117761046322815662689212995380836420044495654399641152934623039658164077461506460036838240051714733704313158328887940329015753914289726733139735460146102840521976824762966451181149406190200452085279867246462604650103110448581751299365662745789153532576765164954943714003995491846496717667994034360194095919100111487506136207681816147835603586639536866130941481646633490075249815783191279122918158543857299339174263933754251893122597641730874406917844752820743480148011938347129808544200101161742691895695530724445729372185869923404334880282880544279483115242584873518544562877072289866036907217532467149361828397816475170659862487927220030017864514548231878625991536375465440889632430658225520703189549543085623359616860172916563053981478987003214087504956543397282699197217940378802035247647984743935357811855336145262058185537675084442727372669651143092235171792739255038436919498627532306703372489500455843953500890472016677732837333068504436042667582907443913040389299674579798702391703284278536918059405690909961444318037557434548667365350465636474427448234663716905754059417799323190363410726382363049943600780856214465007322711835277142192967518079339496133731475684757078906362639462718566824734248020393557480353227399398245524138292527298140579633304373721639167275510656224757924361908008214982096545136215609853531036640614674916918711906116259785056898130967464198433400755835876978732346244030266155783836374767180091686771559188741266234097872588704194613527923502600083214058502061744532947695731203691688641072822652390723533508282159815529763716121633109300376276196621318091781043518016568897351531483982116667768294760637167494749016156218025476513546886170591534608264438797159758272749149370373993742337236776592962367891093484652891934691515583595670931377749555103389765978791831703418609710877907301355164172670167844109371594675886513410434757448614054005650823820495212251171868211932595482618749477480112736843592929187746359698972722418394662824064263679996031257279396056828578091024398774462981494181476114047465015657404899213356917704037943056206686890214576844650472637615833153218541697746030521466112576785497615522771098436157005894939915130088582763983386645860698173033922768480426398603826424836412411820943143514788225404097214476122119445318099512553464248514294566258826823498478151929491341432195185930754644508166846133012746071388179663488377199437164562519449011729682528837942516680344206088897529381848701351176568530073644608842906775060719371387135064160100788449559985361123161439147038863050613176788994639148066570145451171589827416959022199124630150111364033235766989288992863647454101655631170309196932245217644014914908312930371715172398161388460908418619794398393584675103813499797067831407142058030682706385158698125168420445879578846459492874036072802997593733431145999796646734143248468189156108492119307564446004189682089309865402950982395323950224625600594768219357516319871789811731613306673565008427883757426831970802203401321226715858448168224133550676073595168239394538444217545848994163990239095332711227956767600482377201181798337180621011405614084430236277061213374216150042741266720205439294452832347427584020000246734375486578292920414083075314076791236809545869579296024493683321977491188262583464538477389154245164428365683946011453640673787021769246950663780801650579953230773341068356407543888738670601520194912461050114253880476201951751940971893999205855756795463598587531676236095465582835191274712101979092928929748104278172352986558050322688822117646583651457255272709011221667643912367049862676252822653254419987055375427623502364475706968256837027977859172537747503492272265453539837290665577681914403006035495765567251740934592846685849814739259984442055940919863478242287172747204943847662674904061012779568075873800436597600083804049833861196590113956625889098193518333281544743945227184301675207625222162600247182718520376071587356389276454827660844159378729437398204153410414009034838498272959245322459509920590211206351447103269915283169735776507525922889480627897398559467888388453751602629772038087412906773590483758629912195351552260852453592775879676647538375538956326518910278443988839249095817893524986574662459515221956599140930560835148020056897753851636608489138074621668740972958229153186446802596540042216202548592191911144831283254729082458250132917782726302643363282661738552055053109057845254835845907856664995428152426392717682380501831099330565596441359950733048014345801591610094208350924161096679649708156206293103447918925315693775251485792421919001483958780403087628794424706739957418096887178765472779585688620226340417107021399271138238770707302815907256559188087028942878762862877155978478350802478930220380862512623377333841006963830871452345625977648600018697954289288710872787705819864049739937733302021086282082820836936229070476894864734464932191758049838633478445108048899408893515640616058404355456295994260576349460834578753303932271488247876272675460640069645264914673232300747155121075366487755157748485335065578911495454008094983158471027960592944657278317213451176078687450670553626574067387343746626097868662728036945655646381683484044369448090120218943149650300667528401382291913023134901426595246341929644049875056157735775892425244465648332783858031435417364138522341746781315352891273735502650458373094091614603214162640600410285979740636723951663221751140156866078745388907693023819795982443574147343932845429496099500281766731703516325536507280009742196008331254752891473523270100049172484937266974484845409980737134169132497748325058852973718150119240749918024430401446482006013421159804509738646852129476189151282250405498506044345454801222738402269578524177781421465671362934073790172046597016928789529744307014947663515068835983863737751437678656697772622265337525382732992641472557679790915437520996390840553689379506211513412182159510769613337322351101081648954943988100982988245701082288469672246220429722361660294728795884734177245253529963337811814855531846680529449575187228755177580132451213254796507096731752315637564454840443571403184801826449783251102245288974405493235077803405931337770022248204238712248059628180790894277964406402978647879574783613976178867359832267267896917682095334179084657754174406911350860484955069766320666046569277264325096814873540270233435327396468020912991785190933577139199245009624660014402995951194484027988122883619396149621003579640104373350631770887702949280715618666955657120915509301329565176616322800674930708267484524010016129944939341965892509674576700776962841024877903214605728621998316695197107423019407331471371134159569994034339279785943920630469859991459529796739080855029433509007496666664416393082419315472775834018798398817605065587173630389109705266326937078011173179943247824894481850347135883015913375353692160753514313963072947573309661058830844884293651770774875004160190701310710625568087625055743224504810814789649112432296627763203465760307882146779353391244719192257106693631123656952608104306860500842784146489448411954190840806810135149822645674969809517796488095287459106940890630810762431716095010560116140402985069968776379961413677784014273285905706522649837710155782943533821818860580916067538080057511012029128858805439162387971647838580759149961829528841082699779790164092976823990852227088908708612064315864142582509586925717779102593131663709313644291638182457463377646480638740136981885798950581442319663998780409841939912059776330785832402333710900874933702763348223100848359190439088061196477822220841330290184411896800526542556053725824939330207503135303356110725254779331207151038213234581126248259732852210016196624392418871435941147985452545983163668044845687468780932269248822590491983595168883925576859640231656938213642481790560183523926897990129450417654969820616104990510583431341396638685398728701963535642993368830792761871936878318577861723395563894483733719466908606774293463213186729905445238064318044529201520062612031963048931740397967856375887182231586156556839846514715032540864758210360154102292337651007417361165133062775225199092390490045826178685736678273095088984954082367317608969895859176550191005003837093835148168252327283915990001972247029444992416949479099284090067537859000666202052434472266437339657264865183677990445178951259599271645275307295240326980622401008676724428792609452983401263656216677958708548354278604988810359269695913740390023801145152737335015870159616186638899445279048956733464548980385828212702443887432824644434206959420167121186857280265331263919123148154829403328197873100584512998162172092516420157759256807476037585421164666717655849613966296033138134416910054061933387499908894796258992670927744650448097908123819282118726336096954369424200302520106789637341975202565680925696192195545769594287708024134900418291785784081917394445511031596078401555815043195048020950958701860790536016346884713842438533776647136205159148185510351813756143124311787081339412427117818556653578911406011808014771848387219963738971260620336986417927221287208033542904851457329602902670348064688331179903926141553580431646091422812272168883882228816529065642858451903419304776311447905868734869575494957768307226368146365173645220997492694655281840865244393485997075059764038584986282333673100893694985140091692305008780446682326977526310301506135981957155398015255311014550625756435727751734885243527426013650022708238620428812033325469533834512914610722317166438285038177667262323037298335434604143427823877743798172591936217987952996851698855579152182941560125462401560697630021581434631785759327119744554607503670739961380527881118382999310826426274784077597251438194403870265784398502809469597040894338457635109420244164158247817067343286063677199347234412606347432235124522242108004622776625136157492367399704434522850621203496221519385554101314048686084624013813915585302500054743643559578583218696600291415661547920071338788772872027733664973840616589264045820083297151225411400846387768204102523678136734733449361530873479998740095515875223977006481857165885973432653733336987813006372488886339793912058210421180453670048769664792021375010478391395521254304325876369087349642715989977157121365011577553607421224612247898755636387293194641144388260701922770173590304600250152354254386287913971189811905313374510483170372101599933976375256616666861757397891489190175327063761166469292103994024788812059650770058629022137087895917684613883198620137371645243970750557263170232934937230248520362785492269006722113866446284600311346134150550774597358677025994716982971246512676304765973860318558145732930250036614964293262118654422604372072515271614095154131058870259207412934554765667357217802995804371259878549021930980822005863554773906173024969304867141146586922118513347606533699717043457626339908087982367811067682648184840521182195102847984985286343506793153630469815633724700219120317642888312025884694242194920419980683229692682602051208930254793961091541373667597355196563194031462121589526304482444717652075246647713885757253263832993257346836337876172844910771964587403094340538295644513650897371980739631278211795891640947412067183866316694014678828727109448117325898608320341790379494037367712279322971133290852872445441158376267390356643894783560635311836933015947037076805130751474620535503719027615387592261629968122748110649313958570917772957920828145012561293099976189063700745972218644146467496198075782761868640254683117955304918708548019502949177093542190196958421891852779082975176037623372323846357703586134476459357209721818178795971210923904265914095922909823018149236577680607193471027587732092346497932138934876616674475600309649128595873243424558868085650133909417177577165868421327639574856975435650832758075109869304189355824336407697470067012835255231694803161719431947273597562492089585234931427939990131955473234492235918926583961987083501897198578621580714191158590755600821168056118374336060844272584086358419089313884687636274495721049435866378410659917702187978974848447826057295279085575332515706351299749495364622352800980586904615874403293563282726650056996493685241690735414255921606406586900507665873495471738158222052712322520533114306684846930745592746375270830421933719734192079997236176798280848700846452969791798655590981479548064982464328762597649478527963290699762142005837604833685321680591498153743523371838776267909630164481076586981287044755287605337227627023571575818163754475604836075328948216832747250334240099569795442708074917977871468156835209290821746587841031517532092411811795687558843682563786931212172920421229587474792295935732755543143864006824205940083676684086399755093006314302739798709672038511496636814801405078894830188320888236483818559014178567935836561135576770442220227814896530238095346388413320378735647098657634621427880389255465454339980859453161415327225488046033824616684564745151982621255011564990417746375288500811785421745932428602368087807576289555073637304312436844594113721129868005958218495358069308684912451409976489436343076878919007710780508903701711310142500237032416561499575712826280631447240059883030779433574921694452649111576691741742968898186326232857204331352820965717383558253722605649493038409572595693275399159377704598013726087767778027303023241600169912277008997939966238689486769836812092252215548596762456967530666762316900584691139975096471839030229219191653541116185075353989339517069549350713115838023843755026827019808391073081887143000401942007346575060372084931177995484082526033730885400039786200035380927507953606906250052295534821763136972163713105343303182688133004334075251478831090656167252406297691841105516795317347295249615776292124483269165538417988244669566832684541427066508986229543837600773114170156731633957876710947668341728731656789266390098057435540021485416006377038154970558161562640641524460975693513649114151577147459814785827686126742291812630021184281527050714545276319243816488753075751964469137318682952451557231775847102476809386622213927851036335352533219816264582198271795122938403701231595161843633091105527432266401224258427361426029195932238385296966213413017388349492854948516046946763056386989221740480050686685455281591965655221666307870779936359660731493799417107431865977216529913224265251903863401555680227508602039164405298485926818982799304091852968148668431954122861061691933790320364318405170210980738520014130352638913030961735134804731985355278754632504796133055996467034999957890830105030709511601104934403132316638219561992729903100873373100791035279684338226581257398648148337298508100457785930885131403286299757024148667375590830252585099598372313455173655958794400736849951349809736481363602226094030296638331807471595950152990270703111655166566099138174462980613931790583145353160928761115692406331875884237888041462463363104549102458661906111383387934991612053860811940544306782443587810938788209971363363140753309233822687636012833702735336407704833346710305695165798754082090010747577252666952639224642986746186389115840702185206819602388980840139099272425876527508053097791945071260251562621204503549629556376867815870696627488285474960394786639573441880341621013029095216308695387493673928193886537457746227114402354606876431575137394406973298876212850341082167456943537835092453171650093916422772948999169855308725023976166135580953349976226786869493288616815594225045472072416185701838445292944060478114853842989581517044888247298598903498477995011896540586820745949234870784503282471583202649113318228074819722913231305898860752177573915499135506016516785103962888629544488240113891580336065652116033316677489567965581337181805377638570058985206058246659301834132676384949054923950359453569699383727676892938911217775122477719649834704285471799778402694294130563254806708506516372857128035473638730246831347375729329707779554863498755741678221804657490607848254855770352438094615862080135161632211437409014708418874931571106711053546213712920112285674173405984386539857402385929054320618716104127503832377319211877685872035386043199190959687361405337470237465423901917785349757115996457634979299264849359795904221974150465033005270356650910779931672188751789297084929075300311027491712891619460056459074933649839607633552043046140127825136105558571046656164055719004225023467713663531547863592328722935801657898483229299519720780201550584080770702120840055164103815013657059981305536544758864695102591193909765210155430939875601178567786324958599359747581646428011322469702586534296805871513768767103254342088616953537390774957509248981648019044502442344931741246207518445922992921283402995905683894195492707950794101540322698536102247154760592202102290698106052838039579888039775232388682773966729158230179270430170526157100383112862302944940688144168556410456186791175718883016597963218074484245710874530605848075429025938636651652435838268004657125865808593657026519569637506670321072741391429215445642791524808095168757356970138115673445280282760470174205144597426561026324293524053124825486819499445529401979286008860833084209759951233129479734900986463228877200095242770047203354440749757772328494955110980160671485178052072867672972983443510317465933985509898539418226456189454430488791888643331396805310632536275471657545786197812631150959335763806838201981788842946547158532163744400923390187077036505652153792957704242073809857177675352048108678611453749682818369015296784564439400034284725350940835507341828858862181528823585728372282145336597542827214191354940291347429132525737739933040563548378918863685526551784866475559404085468186662242190351200600937481735843355258693317753597948192221229330745912321879547289878274563325961075421340773902301322567441864958297548905978754165184183914964956226521374063371935359668249080420006866043347565312543183499182530667345151274137678698218889267942768891866227808435599670988530649862970610260687414686861893005731538285281386476618257623475799634183976513334254064971213457195385121935220160561929544906921850039298977687558128732268350289185260983808216153259247046554398637047175794037534872516746700835317780978696059173938662544432591131609684380727279072941241034785979565597074117417116153047147508891775095877704265743694652583086933468148659791902039475817190896456163361923237029283333853203761120740091346460452443058627044862019040882089557171134171203404006361415055952943951447242959433664425304805357083809137592369656439762067119379045389053849237765865497851674634401518879460151150121199298063558725848638534688020003231713722274515899754201619629913634201086439545724061373829856531715000581673225639561189086269523039967318393131361854508176427651407325572742848823355179821755903572017534988858356135432481886968516042706391810108702577611907830134098023032362032134026627050807130381772529774671763678063046899093826296034918044045730594496350494046870095773213477125728758299269313601923068713485872110568844151138935001290823994199631671219875600597580129680375417980979725246559721898077144636508465003473619008116249908304884034233154973743287728877623121530687627629513622000988270017588411663536177091968735305181086448684469388635178067624281825190773173129406021039129438599887954554648956606412604361060579931191769530654123564862611108817336954788899281347003040031093776433533993067845941264850450744602051877222201435829544294371101808660786934206719352917714181737590943684118210933903123957738939936076119305951905577625575948505305403113334206121145564137050982027933020968392410487948718420757371759321590627135041173697883828607542779652347882996315016993332983746370566700966725943226302904232386829945963216954809403373474802313355481323158669924630124345808276869212308358363949557308412990229220650756529960651172355540709931795820533686965011940578431320470839990075670777055974715903044758834324322825827391824035326220702100884782870935611303928797645116472509888323770840695960067988792869455860243061348658915742202578695555593271627951239115330888356478989383393838722216846768574808246636082594537911564718944845115132415571670508469563795927713366427687651734638768687655838128924553058984239974452998077698725729362796311986343802009791801910336410194685649629037037643269894338859996205700132967568396722015455385434579572936903018331815275018858678258540998647182405376590845189287586237415956197975934450399537807792015358604089282542184104565265057457139630622052760728208830756548821137231276513180519822575395655602787341951023308261170490407920363839650364058828005348566656215294029886480833476504121737547757027658820918571372608556087837903818683724674796473751742683427662539758928171549163046430373902502965984552588022782286422151700429104095765057653932919897810536391711268902048592461688263076622889461917437327570587129538792338561552834954144776203327414800151294289985033040253283822446147346196565088918166064258614790715048082243525759755350483507224403562475481942601082682992905108851152641969349732946755383100632767841191003119966578972770219540802042736385622503438849928916974249919684908822294326352488476228360452705859399278232981154017575130244628856555487552261781676607154241429455382683827465537070145912394412331301595137472868295950470557764213143448833814237256517221817639543077868495823973526469964364384414351449507135425144957958021980762892600697827831211598019035490001493162722976450247083119739991120586829790219619297163696089933193737784363708588148931235440316768420742881176490332250970109077567868334365381945472115281378416929925034855972105601789037939552908315277752233243020580404457855474730092668802830112231078069970578177594413559494737563865484441635826028003703130366570980737220148814793414210963589322613637919666633616583200606624334779334488018448808141980586403065755238508645247812861243379480268574475621689908979232203580720063957138637890718377018434016163944273187348478831201853792166379554811389238118845338822675217649365452905904740889979230096740351151967005276425712719626973785429250420168754881400929875040743859438369112777996058331144106990672000341808781107586683129307721202842412173950341890141445006189692856798168902068568534393578606702933170485437139995943667556845790808728186408724646550434072662038342267732013382377706266706830665281307051066669213403540808944991161763063294654503299807650708904400689407123462402116820194139284169558356308217270447040792387578931010533045225146418754042263569917567580013452994784190355567735306376812306405732877523612382856261581948954857134701382741015887519277978835196697607599666785396627463430755531612342356582185825090736311500769174121804844671789306261377277912318002095793898534409045281121295915083235517177244733738374758371570045676389409207955958717857783263277995354629857348259844324413307725237880702422289942731572886921022978299444897376389766406503872818202018965086614916388815047858389503106380596793447768377880741752310932076743950499766156095145667576802541602593613965531934712766942071240914348082536335012205346096433646894306491008752434807610165517478359236814084558120337477459763377477922933541414141896577814248198165489062219914420540682605936869077475522251901962104293558799201310093151952117369492803886040667433051909773940905929621659860892923097599810598825426547759779571781329825037707301385510576723819613049507209128156625454811137897020298020646827359888665544779802591858148044433358001962501957193737154640277317871389110046097085804284953627525468356875864078393253307276043695311461725641219205720108270526204678473863077061070273977614452108300415337822420981919554277341080354589039029011385094592810626662379124701088925046039270611446906923752480567340830689411762910311806093559731020575687895705268790114857528922329554183014968709677652398490232925237661206982490550814205164239911911587839284487517838597416078982455840671498488766228101490236602626268986780789906193496304359478290927893498557583261576116039684477707705108561253060766244585721214965221199927913723098745579132328327449694982916758931357563553726327350049723892494391424629284371022100212588634816710824900962852187953578585184795945067961059933923290459242116513223795495517554474488138878116383802263141720699816943836633274933128038158174830788555291442084243491689530408612682743992696787646888890144096228502432861738628649761644525125382979816701287807781553233034628508892811894757449153428453556107399859848129112000034944243741578464035628032991258118705994020630049706441332064733528085151522425636485744665039258838993334013300090393222973848033858703600370341531929942459598738525675039676689325673627543704746819242840488285309890344768682075005178518009162107332612210947663414411856158182930905345966112692561508450043039268614872567579595602178238539053134710724636864532302190050331182688435586422975919800968393552301938722278262006903886100001794483052936244282814126203430649929119775483280845472715582125277443275923678117710054823900747079217731090675635123097990450130352230309564250676489790669972192788200262577844896511882251217086862667734059689902674719907263644054675408275965277700969579010157321250882416819237345993355202227766132834456213004539141933931581366914587138387159412919102205593225484852310465113552519507475507501230409500511179207831580681502022613783615622347943061765963464987809410551208690348956216553324329582905309206597264953611756764566700249603005732385058391647949720882161158022822584418941941611959176664843520099273442971693205540898136120284532518405748901500056847129934198120508827366178613064694592181115569388586369293218037989322581832642187335420396666232020216760806797343219615762224504924966773783304387339976847359628693615169905287970958739462445066922503106359084322899368416955287712867698037511178446182959901867551921881610592519396210002527878341672309088764425551853716373389926632431151800649860709945381740348400670218707679556500025207234423607385504025886828789958486232553265550712505673737036123639387083620008125264916305471253092245076537519137808627072957646705267874289770961890677170031007858965792023874815556390796569369209327523389175673996213836924229009766018628659266850742418062414055375591439180324713882881061549564898613758399025816079469334593974280422387293645421753642298305507490055713562501195346821215019880187369184755734156291011673942439130271254185435682430120765768800418992214570234587770378581851137384947722858080496678656119001989941047201363962525727786245614261758820518308820624365290706054741302768811338153798058009986395962391544563967589571938604288616933871387280798595623282833916117583529946533677886256054766604847934474859010799282132366346216851579136452662596762552281440734106029716872866403787857123065982305335419696769702258014517422211040266842274989535034051461095320843360520642515837172226152783578713481416815763190477846624429266442770794073520126522239544953435241756500592753567481545308089436699853360292751793159610903414046880417455731548203937908654932655100156024105099263196260649738684880505837473323937402830215163489815245308363497719512263160663156549944019247252662332431287302506493882082769083040354073007401336387896418719728391415519036465929677515340757348182408236257631009032323100753969350144791834775368075322084973189241875186805667054839179280876528073125578725270392042447659637020980964895863446498950580412297631731185136926372580462175040201046907247893563422469136562225894533596156400115763504488959091495075004164073208623900216747923611792159713937607211330761052536334575099121349785634853614038264056771901209092583762001421369224605052104534857456536566560296729008503192705644021213527094013345434435945579492082277221757724302754492899960226518751549892449769938345440600142879404838229405461458318338044831991251851534435454707113222275009654936364245703190926661205920811692271556855073189334475978757790835859877190947755728835904040568104394338774585023320567264349115947686242059766368191761370301206587896184501334695813428164786552347778968543784047585265932929683813240950718244680593309429305922068090806536543108441432010554636479724117455098372282659262080978963124312303230181592595333925160406293563302850430479671948826960454601639269987548298137487658434548305978059107477622253844144370831591324205541742011345509184846002609670055850881544390015127201468752105348728646286095082979988902765922741442553002971160067306409832666102937661755825909214581719755487412670675759974788870007321580073087110687986040952312963006448940469520298274525979925746247144814143676482599516378907919770879044381048733775755674887581915886306952934666752447532869450961498491179405755142173218113419489269577332649427053602784002434447744960166130209573017036035707840004250162251651561901275806889104806387614830184534796903205133456115027011152462330792900748998660283814026268700082455367321605952392247720477576667477453426052084899373293332070708276723508607631875520601210326374464966350516964287935869583608483638186236975192568787827882339340737786295199032879954369863881412700160169661495946026266414203630774861229329731991909903008617956343908816621855770641846458098180274506749107718300994399359553977211897175907725472710755346201267699832244591016890890068540682676486699891951766165694015024334380364696958909487943976453731148400569973176639888750897285232051400924354544364317890367315105206613000236726582547059364288005036097326063264271407046975248009061030925346840208336173736257230979757369096387559114817901067087649425870111753945578584571976434211621623730766860246582206825482301025603596929574515600362246961349350915547402174247421512825434864342297891455238717861361259108605831351424583066567037174557209842737882910914052672116538582330586052767929062654306634970248500920905506667561055373081639456412386464465518594273322685637368178257721139417459872632441318674196585979473359322906697420068791322470661555352776124750922239509933619164656863910275143118418855240804138862096908290358315911279071275304232735856913990648404324445956308513185518200753032652314640377087444158871982492464329533617534689558886899757690968843327109224903712732068763902049098020477915738564401946568586231835654906692160429806766484358786472807365529914123941641235451296942175445219895840600359550361393944058674507424986717288447072497642704936550135662775375231196135183413085976566186931550766938301745876949947160200189853071361374166251436945341864202421733665942744549293753664196627867298909240588419060479728557471077491847622376164681795055988561486771868545129415840769035824681655412723149178294981307277998763966829805076191206341826675614260185120779427203671178808234495079353802286219475226507673269566839611629942951458089839169184342984071596115388491895952741596683966635263655622960243336343363978654125059358226955311400517007081723882982477751395701108800132348594082363901019930962901601011436959590945171221170241122168322071768272701154628836652316998476297354833511650743397725368894156704078473192987808372020520577872676602952608048838096329527236659679769996805436511601907194262106103117590703539578464373910011599170758776595823639854361812406751753266453777805146467044749115831799409603680943678865214199942620142565294038087851510623654983318311131320911162311919296135972457312581353356790364705672184099946989820741318033157192055229840968812247678351198660147018356759071003307048682371873125933710746431807145373589313436668802779288579143634259661707576142997350276251030227075336369183543113146220319124375477065395505560697612950889206604685165433927066076469412362155734874552708716603046231358317268368209186788938674610698793816549726235644835743955865583781406998985150117765867449100319415516174747263290718745267914904557681452624120976531189040013387427337070198811260634378151527638240348231222237467475830201319794066737027500667814928512443800730258929790696474417070462789918692678302748037202625681162933652507261851143486301521411283331816464808598409434226269631936778385801787440940977525346269993392157375454764708991455960979471096026365313730258910492163539842007830127387822100975628479368992126123959014435458606800619653468200254258124417156005215737423015441757083293257180849527678085666026894043351538615835765426321223644006869105730271556384293000851254861966526572808479758977158973652833249773599810625323610953513585886368410536558251145854937172607301977667514013990063827883416029190384348048137946153419509201617133544248788373914064799262269948775688853439903008559004544137043746019874754109606274736166007732249693119936316087166194068914403498609990502313333089703486713666220764325524974657785615894999976173919353230703314722700312228661333948504881747064316124281868428751415157681965836025645195880505086286707741362646054649412879290336449794454037872432424434199836417150313745900884052811093597707221663607959514629585318548386149140102565652243453244421167422676190149415243470476414170699242702746849168595743664705531583936160078216561514145749096546826220487676781621612263972211313738311339819286236236217031414080656353456876977339033979855664722395678189285714663505650687578439043369181238447232635834943865831386333763137906362596736904963416257599273501847495348145733142686402971261353353950367407837101236793130682821791515420779862399153458089164558329753295474386763961024729017243645284719378602626502160180610923394482965107672336087484115638049400391138971183294196232822769961198640748052302999359897279925706781369862547989290753447716949844465328216189646840759233913271074551112888936948658788022760551523550798037336620795715752245198519894431751759952621603973131425337548744435021590058425654228876480427461722101700210009986755608385108736469689362040162612597286076114281037892392814368260294247989792843428034943488313095006583842906869296148442074454844896797512117930486025086111781275985803298910082084452483928368609379577606905015995829462631712269528717442268176507763375962114644007139193965236758498206748871141097134255331331798260204685779989742891335849554502719608189085782717046887486133394942446509851189915241968711952078628965840188771837873996088354349078433595691211545750124443711883635502198592732089996821712690139276110833764370745807057989283876706234016777651214726091935234532829150946572450202246656509241226569909445064297387172209964751716074168677442846430447260499846367214970036149089144915842049868302893683070568926054794552164274403185168825355323863803383940609728618621570661682284400083867438224448166419629889343352687399848910193379172780708395026260307071339863772398546135591440945907849837064970915417385883893291835996577168602923373663468583616725761856320885315590296181587829022377881089748273496535462381187389519009752861056405393029484742829114856611658187412997776091851085255462742094924350707886410702824467252793288389012503579403875666410658542245818299103899915726225683376853806191228432526677105593514582769997180356480634122313654612884830572774438114051588698179733166065323174065852063756232212848608374568285845249530042044296804441904155064355188628763149991238123965015135953592047468634212800284775328331004774399569193037949183480337484972318641165195502240906404413151996121828473183995245104545332897296727898518930443432432798232240339657827998177266836001306331142492429401156998363285881490530014705268698078565715159476306889959869000703401656463927387021385984065801726639546250461147780763093935362352817442711098074303454530449405830198553995567566372740043367712985132332077168236974431497817547848717019294511788996951369545185367186790134950452425459912965528598745607525626769243494511516872935241225563403440581334367773886449425711118448888254611908141972494467546127590650086215007506837785772317314759156085463095119976179330642310921058840388517203568882531498738314110712998793501337890470356907730530247726601600636488502845450311428603396663660552891073698813681339691647541691927250053370341784646704550408195494407678541009286559611802945968913859054094411263856284035664561285266366721576354050177617125949344261723783942399027192907746489365974331673695053112185480888010706582195997597916906352796755533588065965459232809517370971166765548776546550097557573386165013605477529375933557777646834290865323394515787793301787374016328650041809003932728814898541388909292852895995619126680893562665092235027081699139269913645583198552355552985895376529190221731930099391381966448088022579381603190539248562363503557653022162548579633736241135873591514296776341453094129474547037117254684629827314602245166379083766301803119525151177792791382097009060566246527398003538934869014952488851609443421718277440753149378870009865392393749589947323755924502213468895259034723041872374648398948911662316176058647074570811569538343343862025023037624400451514790687221799390873349827979227612424496007282065691010850130032302020404516691821023930607865813152566259206414241102416794852223516964568462150529046278834259794142465488493066994231413919688119910042064078323117053118724107116920250023390946775615204034154369611538547317694934028967078568138427023235130405006577621292978248371171389133486947922338198069530916525774648775008676318458752354478331745306783837045724654440247653595238844738982236274996996775805734045896240766471826720481241440920518391928947873533225039832851389159440832508062089876786107482176914670320437675918145575282358424785492378102929504371675330580792577201368337613598131849746871853764290846252981976813456601051408616183567329164394664972640455457492119782907524869003546012410784491101947196722715081293510232799764902610307809593670141023326910358301398537668758110245431490178587028340483908831221537940539007783876228514223068021733291233070170734404741870742793066833237246819485837132068364571986011655222145544794675868539825359840629115456961438806631633006164317777887758429882445343649642039494332257137290855225360677956464020377579783491482367588403189719331628769124089858469594612221455249325306436288673652493229993838401731104943007794492818721980769917408441091211527302891103864600821648525543266619508442696264145647500758328338756414255003961265702549484277527898498450800852525294949871330106285053716857490376863942686006625900860679972156203160807727654611882942374458325992754779056406145588962910623351431074839506323010082654597538501906804271695188041547802076611988758403816182259391399653172201861680610936230482569944556436979015171009326812528820920954221286520117733436170116335543972168869896325846363133260003613450683810581697846713058023816553672582280092458647230529152844126387885275877884127569573796714805075800231569322943082024565557567864485022333108717780469394522120855031332112751215231192556245010460135331451511065517763575074715346659789537672188483305117425141636283014530899555986831160689887360858965440858225850970827805476707456761069084155770941907415931000599264810999271200429821509315611061356687276342092051288720746292432976454183526916262111113708664886790858743460668014127471641660876906279255948529007885816194651048877740514813434601200937739940824752286027738571243605522906440804454677758611147008607127036697405977561906770065817264707531052909042633054493475047372335946247340349071819092836809657856203313483987377924992202842410992957353202663385265953196918301262772173722796648447978546530347225053569717890106572195565326875479865007200302636504062400488328905790178328192766039238648544433866261684197866605537228104283571384094222669603731254369168408562494454536392814677972941832710201142467237033320356365334096300459280691166891292637863961251758724614644502295511317410537322894051975794380595079262500797611950232176954984744153641838316829354116335225604400079036305150051748807916224931334354244627048512234024294437626004297534749764439247079935510610203850473061541719698087785862255247758231769917939310121814793083530193859793711141804877535079850431444575550054238253959331178303850052996161046829631746853187464618511714229503869794014894811248056299159265711054865444580748707191260794312283980767419677590576858036805677857010707510819383332496250088696594264728770799949817174192428293720319853497601548689152692514126945272004136529797878527421705040430278710288064551435672140946017151972111550757090751047147294964257527856557027320923194059025883403889683405134263828212580048219800638816293016235892025064984711419653039011960078426221265891018642037222561806164168948530351387992529913006461041592113543801064985225588534324516046484124701024726960697022905407140942564412961843527586222201236803408144645054323172167848370167982345993301744729116253019959743743525969371298851749512034644513618552309336277344232393066967378591567059496437253091574161456283487914717488799846929006567589955405452097536374781972047246495039720661484823341737300455608869222115392831026631274922956685831539507227523990579548105352164883709439093951508651079685680861987720340681116857345041437815153388062352367770887075483443795033075850352935032608429304156838074056538688025589021161145906718355882131803300497215379574662642233124868661820780403298846235552086943862388477687829078959775061467047090591183260379037148927312154191308971385656624597274308190274569937815077033933004973217399155595037794269773847495942462701234671597917144792307686842173609876151275431006076590270211800416146413314228908823612671485131660103377630079511188094337214343750363021067181647387406907366087584203422066025182035042055379675406546754313849978746284988308308575442724235320807208378112803714252316776241070393670302179115824649026585872225818627161430548622397334757321959697538856530718276222136130000306111547286342882845632607150555104876795435287978992216908176499703129895163313734035142197511529016841288492468791576729040826594536280209917357697184334205353364576694581856351314480672921872940648847902260239782403578398349169907151219898857174787886377729909581135479594022780567859444211798603905948481794481842343194825672459276498026091901745776537899941399499794286672581329942802029769563958483211764890203100090097620185727739027578016902609264473402380969989924838653600405974740522586819716189188755289359543483545746069362783663339245139484404819571543935909011385299383895674795233746124713584307236088899008098938636583406662800080658909234525526013492631746937862142866954187338515694067341150356198526469115972343955238469012757024884320960384204369982543359378186820683277876673017965689398235071558439347944713305679002904460384245245238387574590160812313737888316700556365686083547987583822528922529271249021692656594607648934026773833991996297289174672203078765846470919460265366359160980826282400255942701714586286642017623094572575964318561094628324003916176802584312121533486671392564143986456777710468387834753676065293573470330531566008228182267050470758589530751430565475706896290718790072597265867726271485856973128151926865080066986855845743165811991564646440316026471865012757638131167203002613541449972699531143971259876200609826748673459629513960551234709361152161501212187904286502424936523048529297672992425352939200870598305986364459014140022831951476127623622578783167209801888221080525475264727442587098273607135468623099473371081198549996909280732072315529834287977966502892737488105909276665012163958676948788833366862538925252317550741761098942933745204400437387495015203180780146198682775183826534258791243337652748326269698934935282494095198410170573665644118385070124819320795898207237873209644003984548493825282167958124542833834285601034945388064362279769109450842401717025476260829388030926350259029898829351865976121240690494168052971365148866634877169383405463623347458911115471291102419823087889773122215641794588887862554206597126864499227718948013183849947008878665337714835598764640990600758187288684376103010208007641203649573593345514363184410596693808499943878361502565480164117785894641018102883467843212505692241617819724594682151667572547118218456869409736038381778531307798449455223816003275575753504382736022714448421572905189029529516278433883440372543527374815306542394859487029504611676032208099864985143247701886321223713116810303395055834432950090048123948242818302702436539223431222261844029506578117336212571740114384323651950027961748968086046620860079547841999751871811678810011795541473243073174502298119246810447874569711543657563760841294098847115705613555044950706077333690373608680498906799946764040115182990898148555311479076817291415704467150207655219463909708719906141769218246582580136027004258371119846404599903940964927653978812870639696700336945190291059612916453008345361136110980002496042851344233419601193967070606099272120221050602238768158178506720826313308035833654869436861054014271513473921029846312861808229475585515703339321552637778016400916595482148421663141195216691693154052836219062656666021721357458943437234241871118678223606916833059107086184650590279632092224726205677832080558227287294296496144418842159602242365271171939200928559327413816686806828631981798885314522486041515897478425932590643868792623185209739996174348661555668795336601331276384100460816808207366504667471223937043973708527959183965977354751748361846034887162990083396390405505925399283362881942450683070284192752859225110597242996349879826559913571967522940148917057653334950425166739063660422245126943240949486107470135707137339626750641295695587960484218173490286148828500676898537216383786068373265498886475564868212138194689809290704331856008011934553174675239342092613724546464733542871652892210870747189321239522267518681353242503143705318503925057164205542463995643467947316179013699920286073017010905199782183889766439696060195606543115166794774393196676870184948261593382051756086224365633126187402110943514250667067517808774130945237940873765111669593329260035694220221984163927539174219542761570941904665012713658285973644433478317922212587702573288220587882915483277930662618907133195722114177330687829496928902089738181147421708388723742370495520321305344648164567889277566695715997071055394414462966386825684159595612453475066329622538867998394356664968851475278317661305380630008968256177533741392267820632569497589175365387966070904345781247143794477066222980372256678375790778118383376516341964343886770101392462696234181992192845757795300277243232109488343058190714755448036915728383357731723769173993794704555572841273639570186359313467519004793465148671979687797509954673238523632134983544353400578096495361232837908747289637334943128981901799829474373113987075626677433813161462779666077350659249247800710413275712374912202012199284567842544854822567570261755928431090987685498904004061952061575099156435506458822373880078966785788093081189385743835190416019015935556197093397003316554304877985101225000446150898150140496828411779005808250362069427830633177551993316588313044923508140240210527981983502897584520051063898409814691186019711874860407136641100629640637371800287325392529433914239434350048246039175696809341426857241979281705607900084898654698679127781150002143910938035159053685076370872054032312947497971106577099998803921233145721771759643012474693216800637025812313180522987155142118412333879946056556457267730438923149984751398496200103596079122399454941211936946045908535665325131645351159547977679895730477550073231217464620297680843888113310068542499253004609036399520387227684223389354339947346574761933780487767144948808949242757614245801211556963469192219317117857655766493901876704921318755039234309401554795656618076650387501950167839915493837664310179310919307902749237178406710851557277508656872086282516541182005753702199548401073667453650081449902252341904185457506666370171593804288878553384158964587098740344439830236414037945100822739691310134197579734501763871891239906895663931932623728056071676488404850825182977071333472731139413630152394263031640994599729880576003409945685104443854458377092644697418335587908835329159245862705971708071394245724321285861119008998801010873386455203655822054793615130333879753784637565293634812344449730472981412974754517736818044284550111062054874413314217111482647932686792547002024032208841091048690179721221023234043132899652395940046688577996429009053409242464595024560418858360421161502306156456569890349812265670927507465737888282043954360861968162757338894027299952175125206825130656966757646334978443322605933165011201015188818648592362781903589628476596260023754290474522123317126383209733077568327239984931269229098552368990999116456085369205060133882439929483687295180602354210018093761178440594340831926671776345737956740046919523210968719150176802180909781113479252633306051156698033383846284190523774032176211211547178304424616112353584272957475056800896074310460952962744050930430142295061046472616679933369367294839071600032108478399362495964954389230512903503121076392867619068504684827984217823602306557252096543181185641181230207263680631980348406215642932958704071949125168124896111274026961450300214750339457438627330450956973336901305771108339247895615057661716975046535288468293624730805654440383936453411139818524281033089484564097567846321619380827034695501791556750207595811178597076057902712687654345044101383071631424954145231582050045472438519906195742359433132681418664887156407623776907028082266487889262337281598210769572676761163256852739693092648391927648942634590969989881830225873685215992130387573078934475939620317865346183721189639599213060709979504284376495835232907601441255588185731753742621048433308573079627946885772462261372567647849502205753363489622958137175480215146715271064457669826232088132707070501871932285342088828290980455915770218898938957919250920867628221864553592967449534436207807193336504365038719182973200069912712597120762390607994780305175417759294313285147933066120086184766227270107624251783010541361177102342183837053789827350625915035336045729278055735075864563369160320296025998717005451416754459083442270017326525051480115348850156331873322659688206685523083162224932120672090016910297963346766185637905776927805014819646003940185294098273249385000458761373984932686213539202760894010415605264219646422068088937904392286305762660815992766221024461155463513363550924008506278087108076077111526158191235049383746079975105153302294343968847391375195153954284317071356667392746974224210122002664672878292088137157547052917323406637627408859312636721229476371855251288248182453720926240683553359737012059647962803284266757724203099291743682355541077888070880253693923570888700330299215575399058263745521049399145641186150052426604220377613083984978533056206794895892216695109122501008648222564308446490933844576089347204894187489910163671863561976788641694208305967634748778118295784890244783976375576782946587532674127093667448474503422198393289595676297350753946786322518001960765810161121867358969202599282093488657926923909846161309157956934444945801554715845887478075710249320811202993141190071975584506875883097589415703432224635583269894925075716608086530569207892277981444464310585429775194838696401704554856184694699676122720067663491897883082519808457416068698158137843575800203341757033518642956687631533809317338715278613870521043280711667774669908865456170808873046886208781519858899058742450061124342700062344280763326947384758348111765067880528102494774565480026152877975722903824775694202431834084933032469384382132306589866240097476850047460344248048149059253410385036418554890598940590344789961188082000632630295678402338676368071175519711434744701363998308471784841236188076790214068090382129336885105651291633528038094805637162152768650265298089025450035583630697411096322372543776277825406557388047107523068802740144132535241281367200252155503256505128188938369224515393303285272432595372222318512823245244457158643890273825306067246873343962820925968826162833815827506456861114812646713891557372451990822977542972923892972127662590280954859259824241766243437598115264202660476708671259588394513251652790158293712092647691717525690618264667476098110520016880594025444346098694261154993951339099517284715565333645778627208109033630457412021183723544783132807459545327806187725076037102416020669867821668697385173417066154722389116395493814791027508585328146936565721050966397796037808202417541970540306564388245366841328050861707413665993217077951933247183807852159053798111894077073698894014913540163382854927517144358404646975355878270017217696309967679340587913134396050160880093171382234446182128253053100367022136281612486742261506076647646167025248692289980836967645630353984090026337588211996255116614024999560576547368997584401321742458059750772503093758063747856911845607130360424272529828633773509606585636506092843867939511245021367234333502108520225371164390408262898928860918333366844567876132324976537812755462171999758946581647300106225884168460276303834322401590757768491272246932261618945567873971869885262008261784577291277269734520465109400160084068864491691268089790705955450499774264838231597221574303746342945520316932029734159213239782913849528520897701563124594149234482862345947722737079540770693494249881913412442902283439386418510414669842036058850231323406684477149946618775211723242928120477130491112663047896606811330254560954006105318183260693286747935876564182794676880360020938076876631864691575435765335762151094504109206586643482235655073284446863432695111270654666102338520447533429472224765433201375876073447800490495989634260457484195063075433811839417000256410677022673209063181997228731746890916284781284416625579201920249070115155601615216224325663460302309136499458217415143078302354388903000422090243055328797962895141009919897314440737829839197445293394844213030652123057339946327706431334927635357831877921425301485903720715976946088401310931370301314270257509307545699092174062120163732407874479280441947569996755679462175385612934756324430179250657938548380553646729364208194465749443006245630876035531749380829865527055478467225702129584800825707032719127542029914173588763308047853589262505415029985325335566510937434210793530878293049601842749381050791697187739192663767665825789452186390076290869717823837821114623397778752446039063411299343459458300188012579074348069335987486802926792864204067916550738351643834784508374873967495323234964662856471643903019112439202886368969208288743401532582189613104373803247197048686002426638024871196215992219563005276314871292077601470181681510143800801470957512625737000710247722223635052254224272919538883916444455120819739108858335603455953326911203454557427138149619329741617075784136801653641317278080329978993169555173952178179975789667273251311127941028507271411880911742713256333835009429668561453859304156224036570673962106505809214820935082029974833514683516236698036130294556681622701767862757679360187386081830225068542260896636642221096450766409222843401566682317661684691511926794330599421453084848863671691630070827936369551937418233035788250317214051219155661545718487599050768526121237084167158106973234508883453058502756420050295244626624062614178184767204810235464549957337151458754013189573332912870807932380073851905489974581216416636463113985165334594497034242169303834619433031592431510040709197034202295550187629027388194579886401239487799749991754518371585635930926285949367851755733125462780157392779519481931173541164621832722558624522803139592096176391108833846198117279219793664861082533367197737140367593155803212961523087980282746075063738076959552964944972052567207862022087255192460606814426972779817691759139921510160397821673162270843738985975863310588292132274433977312926275947674427070752637525214265080599303756937879153180539116262241510846434148163230190931673274683386180125733697301602564739957224871700079105388787037249593904777075749239464361418049829361785757251455165264625613290266427429712362799300932097991778888295481350945650024990922061927001155740080411993710224207194887637205796308718783120756056208812571242895062706697246501981926842190755912864978919463232069427310758127064180374944807411833554645899849611565969826430478670948390413641595640463401273039315565106213659244768718774014522210881530197168602945093210196303005753900230640162097083845047737274504814514282772191304337997988703048600723345619520411576884075722839309981892649254738143383750107124381606065955525039640980358369162434907046117587064270681174341867192172940234473789642700292326372092172920172741075359586759603158934764640084109273629042147018147051739533393694487720132009629268232254939083552410525666176645255986290608698784168128903332462530041452164748226661222193766142506082911294140237448105963353002266154037861535893094485920783498475453013943891336762315684708992047078999495534016082854657641857085771845035830608511754996796337490761469943697086759087886824117220820378590742872532256091805018756444022074869393279181989193385968053988559283366238177545682877590743954132548615942063822080658735363039172440793046603758549170408704738827534246346821289477712598681151091951068176580127109974240427170241346586906755816448817564186123397907750858042211632306513231902666129511435896836683485861225724695536246329649524555566053031757965192540363976165581143043683086965906574430608708591475585457653030214120378442641256544131652412283037148608357902073544566058331902886358747833034613212564885287052096573400574161356734924740359792145840666957943136274527697756692782456970774347830311214923963532207337583814301672163045275119885054322303601504526320212284850816489667446157425423782241102042570031163006490905479660074454200861135982325845909463067816390872586639354089520709104579972003209401306049538924255098170471941368358442909697135837299844938581707280071930020998875561462962777486778313602368878122908687505345734508315750902178266258535933117210023970153175792645197169671589051161944627164186559306825788635415480127482615308767719157137064880439938463895399580689367466127043619294683688768089672662906430218070747086798867000258022466987514292656093994765559063821563594904713009640977615965168350229128754798582001491887026984475995043542068187768925864745364374071043057939793968513554378061151002447874447325350183769901761766711311633356167152113990788548893844372165858422962586972514461144916038273838042894464651960650512821677258342686052999024990055687981540379136029178441647593145118602423673536957083785405666089687494672146799319292198994452372210257736283415463923166743773167003345063488620115678894939385234235892232700218994616259840366614827997691131807739914163939277525944833374927966456266109283031374915401533030464818569247895518071428279896025353374985637835513411717000583969667747112972583767824200589603391154419582291005607617517379155391214407571195923881230912050677001271261448655675619856185330355241844643443841738093319032486471275182625475735192988625218941219670228169007023469098976102946679826858745983446372926356629933823251698889131441166083399938335367986544357567181340289853743335345227847301493122513918112499472193225640062503837940927676477304070377918266541010703946145243542511173955945200440101127898695184694127402510968787069529140138662106796871491116226122896153307764576947361625980429115214111664596218294629769972019404037392037042585729136815399741050895040449243172087634734720076149442466141605020715439645017410850443661082773031246342237381192581368997714260130143356126915873296776290234484582958383456243980166765565449360048739074772520727696849737426195674779628945922114292592227842246493729974565573199606663598164472909942759216750704043884183249336167407679215001379419213760322221145713117908545998273604533386836980343864377120364471762638063797672654889734821618007273511634983061954894413864799605096520361534364855654074510017413753632251926416482249285995188117079550567794241427041135370470564270564055890030308525812435341357937760577960056907082373791766191556283976667987752335052490222607736846123452116306415345345261039312531058064744967706331620748298189055438743656503993232772887085661903658387262525424886177879744823649623316381393570005588218553018135362247288697870805199059967779005169392994395296731379729886108522139742696266748857460750182934910168424462942030978013263847132985744017970754318889491982852267137192944399307221835836098514758796454093359663444786572220097314077436546761690690439299836022042168667652257252883537498719947412991739776989663706175694394674572692095161891329456568991179550111927554385909344610142594466419765263650424945817712195173600846391443305214534312602719505966761782352734022248090848635333037811566893624551316027240172165430336515276973370301445344182348696499256253341995084066234125523690993084634725125713807539087446211481155372903686921041327278567042354505880134363377151539931934561812588433942768599789346446916114818276567308748357695986540734058851450273540800905628552275468722869788837713429491387681212526362588745023526367031055985309542494824822857620071399859482083662966807699072382719229681542487122132217493448347903757655897318018019922263879129755680423572939834932121135954971965181227029892288779771323151063112146939650602483453587985269724892549140691994109058203810944326029823705250086242144657814636583784000442683734067320035054829464388601643331589636709258045190500098652970691312458772130590323813917370587285405300692666934881089199465193841324850160709771268088403916269317464451731365138393672777933342397707958574444003678808278239768548446998353165885606826917523695936633422021766164070380560561281105602282194007241747994263955530494927358131576561852265236057196451788470282894731495870915609534878924390737657274196563171095924052574441209898841830657666418096648141278002656346484445899412512301345754352498521929325381576488687392391128837119171977354454695941493012370839330356006194720268875400712021343076319213535861173185681556274219134194318794913957664348460820255764634916542178928755984076643652581806441761549517975535829547595748124941780396993635004389440875458081805300009246364595608481656166533884910259403672397342251465520697700271132226178078732526727488470802218472926850798448965817535876076696269388784010255143467000946366715801077130552007190629911733239845571192312515853745779631377878822802318644942793383833219260376453002691224855800026630059426043778424990270861179580455490522401130147315598566941844832680131647464627471301169109361781019269964478881838789562415528687304925866575752495026004339510757553100954316690185848228111351073405193528658261892623759235730674161187855272975107219932033962983438112821866924448229383956699848543008865955280907191426291179846168124058162309133679347963196167914810743439247374794395975766815692534740494248793016899829892462740280639353589524795479217178252422248507086634318101701645260648342553008043841969693202830627432125340513584304056663997336757107760922860078871264833063282045033848468007217350816993444479417909440992690312890294832736358444894677039601803187517824874624548186818929396261799036235399706196928365862535951564578055453802476359586516893570773929287606855217992805558250129968540422214658739610524919666454390797642290549067518489733659415747353728757222806577191157871174836682346066710543422540640605061501332431122546074638494392474383021324155815175580708054670240891665935783621523961474953050251533249006013075764168757141846013727682964763981231484497854953356068854391556140314230762041938429537521252094617342315031852249947075953287109579332471368411886058963966880611658015191894031827079992197534595870625531073634313719932265342370268819905484755686427505360656178232862236801591521516214406782594887065081946749971785102141310969682288705741370457817178262434848070940682294932757705278852947196142725601517927893758644419936658367804490442677738810602211846319955380767308996468712828301607745588645863782590539546387579504569472033528496319919878104893755133355067031820667171618009543685846266365201427291846573522221202430924007444963742770235008127770185022753095483698367164455369827836909546033040012396482715255842464680311878255114833874743708579700400367778555967687395981700040906389270242899084951020213061822859697497023135983433239026900679157978862426710770321272546411266907797826807276558125865528799657786513260795778310082961684764276064105175509570897144981641160358008496435920681714476400468324413105604152763203654290015275328384715128745369150732507979279238166540126633130848960248433515034426701898026814849192616735987963916257343958130925183633255778236127941615612580622401145423491043081252678488459583686247297013176457984567169730105983636640381562802686619597199729891468008154486134776298717739062747553454759992611494981195223546240418110204820656897007569950501755190640636737334303082432887690897911680297833944656096739372837767021579747439355085767611738517562081777331977847751324803691103406951379285104924132009138515183928900334858270569912736183080141128101196394300072515753169894053132168205681716262322402297051252124118014715749700618172082195562828862765315936306741862881381309557916388644544382175877347762933225361871016830199378715925752624554081438806155659459282944593452699823722302573553611740456732006138009789572890658304890492647371150905894959528866981301126595261323369022188464716086567688160132125969108744303956207939053234038941734463132395035112799399961110562284734470705842078489938060368726107763875469848823411947579552326356464491382963126585837688639035584278782912530469610589391104197281507755460630782605442697440360042786350319824056061100737952626097941671651177193484546661612057188596469456160339715470719791822173243357584314277704600300064116649193452588948589630081191911582270755426273457323149162319787054902019799466957637302023499076244873469060150910097847001714811336825165973060265587303639328476410554702212761804672842385464212669737785587289930088501342943803076937225356746473419609738718717167066908544028343938972620672620480452956912471432815477706723487263957860360734598962556056932074329054970985555026894269465410396522429177357113626888530579633029129859914894038219314309430149552948529014993009419748952997104911081272690080681802265444084085579984517971479977790399245207052574257606327601983113690722650326196194571290967434997775120913936926173918473062208087738078908474557987239915877130206887891786225923737595473932214874156245132394012367236269068629080247753436182040205012940718446035836227850665493749409665508101212904934648288241274692740380678268455546398282457218948538342543921176473547278150967427902335216328766243838686016705260621467318631319514397185050291537840559578415452152638234547802140514904607339030353963782055610980388399889438525970940613501643496941886366781628883017616068042200311776939242052364644205923387278396513850704573822052945001835815420311460261650465688958710379988912612285449449728199595533639944354435304558934311193611570870331753270722659242285508191094297180915953676665218999775173790862259659220969054540993243292808152102977806915808101802326899990887265606842559364869722465309466274375030758208146679437803478386013521129348230181667504066462415370580809384220787398326820889604021833253960121171322474138613132840900927407818203698820319255797259732190043004977532829040779244253228128090815244780403701321791948691255542003127259523175517546651229354071146408616295926844520068182771083007673727871870293634551812800447658959459501670329087835295679929344305761068882603589689755524836451158238444972996820449049372264297954809173691323179649741384060323384665148762667912632966234729301090105341355725213377909101419921759140444103060911018534148300258172933911388435388132702998652045753191009085287432266629752634300396077886438925786777195283850599639945214906748229371495086464109589220916453119094020191446474847150979151279969028066232687594459164455256046218729084402473103067950472913760927357733751651067972787221510228315542804829621926184211057390263239041192204317827701390247615481514784495792318692927314960316604969473757460665359273309450172990497256053566364107498152306369620542735315342544119409761952992165577360968959357353084663773145641378202609523369396051709722611615712379581665092086518603743061494473227778486410122494438023582695551570630011773616753679125740655280398023879156580347325024759799451200418774867813608729589550285916834357486789617547872029865266455227663322343331407378441389448218513234683457814759917133430457247848244907940973894753262135032907258570226383160588654172246320895641009994384587900894751671273168293824788947667129168281777501988373538729363837674960291808072030844266296522508876903594565340657704621983602951553681677738698470391760132758019676324132688558765096222124461700712697355816142365351927494955482442108294219314084549905406403471826208869641895462004589981231202980489616469227460630034511518692674658237644716427913798368016609246646497141911397178039934968020113546034730318824207053235958587086615856893466013038305088535571769721191761009677150000610893608625150985171833814892625690735532435346254280214298294124493748009543754655281113034269748202248842488057924839839986868527801384507069192579736524370144003661384394135498027721719020458484625087456624495468942409291790933869361865103603904094013826780521391672743102851938510710107307966285449639332336699813265650283108139225548597969780987637746482347654181445495471503704863794584500826092360421959097798552444285051319437249880552044077493590376571624288566008805667567876154026617035942811032068600130307608862294487353956582586000691931163532298356692280959799345897297740303700101337011205934125334657264155650694007563962618060679688375653574862115626280095873202815655945118759150927974345411146782823755590014005400282481126550389284029028268718011186872100387970759705266128187538958437412681125287988092288403421419424258489691303579133493336800061208963178753880893119786056381934535643285409864835051376253505767568140368145523777806436859347118925756492034705862987150289022759924882102934211438755309407459082361953415366295296058048247425546722326824701249879595743420441319005817660174705945995313847382541325728233107913915693985303897973961035294808741149380481903706058366037798842699532174953839531075203087996580534990149224295086924324179237648683852469483793950629989317811278277618315696569096042125229311727979684231621073727532064230202822707390566340644650376009538826362657824251577080470663658766115770854138210279007378989605866548059926355610278149931239402608849104142854626464366059611551116148963072351078434344762991072662249834180558644573670043754498880881632983047933593027611950607483073083311624299200517489297948526546032938452447802608997497070589634602834375171277387513746033581138477869529972115187785593575626839495087551771930115901972157819519781828185043463048845799882109005605491351580017416222819885019215644737596423357453841897247603485756997701134558526882763745251924282935523103985453544465223664962166649252618018179256467518859020020931537552120471864573635433593989855118386878031862799051809986408888382644149494701369187669437969972261071115971785067328774228671729583967024575970584537777420703156264713406019970791689594853414235564802731246943402269030464895752418408744068144513916096000275476394148837265463160850288290833644708072330215615746343990918176794850504004264725617338339732365627302963768688326538485256139788624062633859794444287269301737095358060253841702098730830262479433744076752499754107144040451513558245334541200624974925261123869069568470028487954291111504841232998921846265593182282087997366389861625183914032440227511766492835408733568064994424262067577430055937916081574165119386869314501762397020920035329583420365157360162497806699247215128977732291458973825098799494039413895489039476095226690987928812117208447397329543110288331968389677480444801940155647497472326312474523260256913587838224540454502693735550374838395491884861224087422756938079791839879061995126152496189841665295305279118033760303315364514768939683047849338581291022731201013696141808670049142395532675330206042895954487287053597645072904237119000904113841912428048899400847264467493898556186319664041832490595040435668844898523710448754449042284324919707587666968811091039926881350177828664491380792524040861643336031294081415905526861225458085815629519337369974650109458623500081968896796604114704489055909002277255824119469940943724881741287126803723063324993937461876661396296276683418238744963735317183967213854570710190344635576362571896764863122027257660324116037813611012749921498026856369258331310154894331277574324170332619432050418196717015096061143686510067804526691260388637671072654650078707195114960480516309823126561342117672798887979665507262376416231035267844073255280012806183511811201300084153191804696818475491496684455952980608544284219456494458614711649514466747881382122311309056458204886978005528735308207139467231568319450270664596176563797483024060522862801624226837558300524244310943431273927796114486138039763112571785638274064484632442718247343204212484602223666787225531273455928706875847443736129186565444755253044790944287533240303108377169730928148315061364186904159546593884773050809357899069418085812006874308270524678555974303419158280283172894604925410154802148823508429517251142168383146584363649929852006367338342891979092553726657661455942172920210830346802020199617733387781431348829041910335450717789042572400383001415066903253555132409121780112972047315039815769272953695852969007873203490359805866900481320688404618660524124034614413863496706616932068454484595013265308749691525179780080468420406497379510806585993821861634390352264848563026064846782849944291230409028607307232991560716395581466547644846542831140440743973495269911748972053468204348566755139966562536477497189126003711079545432391280105620208594037296338090693253926999265567651529937203996163359316773320532220348895834134162805365551513793274670889040680591230194158356191169005960955688729126880307890253661109719714983098831523413129731015689125712378279134868799715632294437348252709133767730538294540454845737666868406578167448119049180676270388675514281491555567655278676359665588102138049677820400745969700282241862393785178232518155314258704941282232679155888017821028475260563599509142194466034105984834265064923777810176210875992011034209666808822015678917030763848925472181075808895757389835003613054196837095420184344784988293003148820950952962334300852428563107003506096141699710901743510469532335800379836281200713434645086218888388621821727370002800347972811906853285609771380643636106543090293891615814751277351331334560211258441344446477844430033326501668306299410312417536654214731956470425335076294464620373609043321113113537359497324139876060715364996459912634054845486010807738702959222815504966212913617394731366336509005359062073433401723696147210269863647835595376978400608520880602282395004641353114037557321762870892252153351016414549590638419666542470100157636151395861868238565730225153689933363380721199661817639727397353076706565121446918568092956387189103843044303861552700368762605797180394019985414377658053334676232851350183686665958057475849178930850446948140357596397961047894774481705778920553151889240506037883266168988550548145617402810103999539312147888604280938610119019029050402462848277520556439252634627242631695849255054227739466399808782210137811474205881884275052841941603055998447116239121278713323091305623030594306014206995750137947166063219124459787233509525863684911579378419015981673766101390525648176649729104281954929214621212824658227711461917965931705637592486359706765573223455523254850471996361633958009835026212670874505073398870463338866833231804277153246601962003200651659461431483075231851680638497627604705312076475293632396478507176800408550986988594371284188458015092237839168146864788586084604236927977638037771045715313214954883484587689747178341773796275459031783574139041997749047012169152122546985907301385023131102220289525879499517956569909599708169886858415779741066078684612973575581215386713344704796995911545891317383255973538770200560961457071608364967232464648718284364070759101122210166027490058075739735894206347169972512957021924455880054196291912458833399301325745686173529441468602959429600773156704415520232534148014180957259391573826244881140118893549790507143167663909002120913471760081008491427955736397592981397500956600068938009571749801003064055289569390920738209804109531563114628994015417570389467079490830214063534891847596851403016184430072378464122499500288825129278171892040594500925606899884422558820433154403739872761653661493496315392009833818295214150454468896712256620429941142544846188573459461948544352355963466796624176282670877022841925549574515908744200983208240858368358581152498470770574750705298078872321151851875030396089376603593679198717451723102069247416717222115350811168223873335418963144756767162623834688551294590037976915035830587168960414627417020489215848010179927519244253155573131321201366921485590245140698668402191083381801308595541719907585121810020319970399809617550693221940624783756275383215262499603490629259117426279224364666306380359284893471770686071010790720712138308641178871963230901329684345612486574231259608425939711490534262853025909656049384225418779684821664946240157393583600896099474963999790404729391131250387492186962756801432844570454042558521233257720036858581490657026541216667074398068772502680805250249778210005718630920897116676193032739495390524921885987820500355863470614827453065879768809277877746255486362756484546004435716255111944398841468027319455347675911787668835118580419216812803269214500757689638723420146192168545224247508606710134653903476215148364956474884250981504643274737183853506313236200209064656000805150120854667375001657952039987856509467892163580288721888680906995248045717449539435035180619445187654338325043285229740418499538125878170729068246613155378415897611490425031126634916249687124907881606980858327251840565297341602391137181593690229000725026174004113026998418925305016002042849146569897343272469930426742325580511776300255545641750840058873648171058691997022996953138423100154303368273417038779889696236535192420427351405262310821320291520776820016734259552896050740117162286778417513475901888977997510162598779426523381074606916346089591952289539871991080611761412061399090044652878809088958982134291086646669539076841563186871982352694373134329991596784580336027766714113040278096862303741189600394188185982463028015463060666453467829136680317228197740228916699962719832507686208698889372506567814347517571818931524305350071320993967192801793099868793383751664845032337532036485413539888123771288791338499010824047035090105458449908528920753521967149067467666528847756297210448159164578053153975172219626590378205562387976518012466678288890770468811560005990703802611813725052545243779553354501119790578130412538173980590481787967417366315790697685643939932215224331032321241775856070600413010600512963533798914296582208356072544392537652711417817286264847567085626886327175780036862881733167508365210302183707613176600066920484462727200064312206717441893825803057294412521516275455882738348172726767386131562516792352216411122401292950256991015983342747973745825407897725408173135451159199896522076775090164844443706279683242549240724078818245259401074516146573016267142369509477969167154572786948709097468250537920689124568898336994438565163341608303382391652484966273878838186171652379787710985490374382751712394460376967814817498688364319028277204481050600976312701956669349366197209717374830167958870715244436475886986806497138636658987527600214227987698418106707891008706465171251005359228253936436612001961011684942490297830773054017162707812927928009803261650310450901871987647034682562433762112658423600438073715646461462826126195504451054385412089261025406347776131137287739254047537798884599388542312267116071997517096396993199947658139028876204437863123248409774158525106722874255765800902746218367777894473313760485274672284729705418345385387294622118673055205607334493877430302803860586435301865346778372313936627513531664100397753078936046170073072896548297071464772357670792260171749745299066664136050524679630706020484644191730562622592739113343026687869009267922683905114046404510671753166006194697532881001004037484200788361081660933227230309421389798018074028913289580790600331356043225575574035826041627269053310030708282203395615593884352850292605168230005348492967351896375423823305569809388179191500755716854225188302699097128316503193434076115928213278559810605714871395248172357992082826054873180005336921194482723910596048538060527900297229983135396947970927552165448207039554311362179604282056857656585018611603381455267406094962109290177337119902659380186627407207905322461390224034331289654829605925332901266355852335000682495304436298215173504660137932710614517048942773377097331733003917404544962154205895202551010842670817282856488912114365752690246283704988708007235642417914486373443531530875183305042649163673454689779856786292167074133532013127763962541845597450694025573955273000854984504506118085953454115089682453303147592606548483197484111783593890389128319653239710704735310346676606488465119180868449859719997646135705861493785262523971045538909603057141386039438705899100448659771299754921707733730622886527342576826309421786296506868487889289998785871683131374357958120321100683933980575123543401502355945830220202713577081101748552235519775197857321385032113180075478803269959181133975594593513307461647592937348974003254766339119168013036182746002714604494283061589319046962241131392938725190704456690671147249602454365338100211740365415090401049466683679790833869809374485466684191109093947484008375457220162688557792614913589524603464828947279146480987343724974305248923184491972997339701668748278422875679930729331397303208037302983991862211882380560462824273792754183233776224309210620827667052816148401379799339347524722338604326415517466157638698726476476436952654244069094016141662791194939493360608606518940130877849459196308099711898211422502788284592980900459002114255095251418230311983373308588190672130301024880443198861920345599772240671930246819376784983318225986565326741238743484654980159067709063599143441965937810421073730577222697369724131096329867338019936887589358285877379471129138953279769605099736525428137283538146480656300640560394574028456365689920745463672079344566229717390368356929940765190404324280779279856604464797117962295537909961871464082940803188063792874963538107262380337246068368825409339602482267628075300743380570467504082952965243095282074310452889145902693307768972543286186696066407926677251092046090138236997217549801538861755952737546779546515009314637423268473711842253913979864685122488116569620326765944952175331850554888871836348707985931692994920629056211586464827284456652511054919319680658732449893418237823812876748795997439378630997229928344081310177054397248381539862586976856252136922840576603683288278254030648687317744476134061150279704780230100138634233134265743372732853780114559440126728269836997810078761495837540223575655764442756378592551206251883361246050777375000504026835793113135156370383219197654397052119947816216470565518567149188095629848188965593984165189962679902339602020219328385765476113073872729244106772154453843892923535504438155751560879672019411925134150070275179656328283899661079728621788131571534134740822241617096494919327061551177654521034944765838982888787593330358738922660181073153987558428916296654913236922132127138538716803314701341676290590617117932727474055087808191096974916749529078161841806965330727042012895232336911343944716834567007919667926545448389915277150352373950058266639526877177121193834893291735222995743523584233867713128215798993286691215770853459763559967968087485317769746032071120553205921307885423886693030998708628707345489497414721862136284580695470722469481206475545166555117056196574489933136194603115255196425275438254983157398926664769787968131700095350279600037421528852130909614257561044588767312220529752557772808073519868785558071249732977655083871414351896538297040188508123447445431120466892100388948058175266936368208181056752893208080964000221159703412751774762119917482243190406883973221942714401559751446802111846795528883971225926540416487443276439739419232844743716697283470537571808938968000860701435144519611938386993891106560638305969218408572613464307899009560013637625698263375533080221817670357139909525405888118937802833850563813746699196152575631176470472785179611508929992683354745875748786922042958769728698044662524614858763724372450207689544077052823067816081072823139949381213372168886651973435520838523263090824263448817873433487431707947503062680790345965242536882484850013830387248936767498283445528965508534348607520082513291086337826380949152517186863442119559381920406975828123584604446352113378549033567717423830197638401979715991111560922674365543642790496653850226609685494542414898838125410926915659328884992433164119511360352454377443685780189260072760946976055925081930905305116363003098873382430435730269994264456131908759093239664042956142992924649615501206707333509105322737016148137007490130042501858933819443832614872461037823987534115334596070548282896545903053570001082811499735923160978044639917204065743466893707947206024429030833578984356242442874251735284095183526688114266033895112739078768842460039289325084999137972614393751551062699412617904674402919523193014656221940850770166528706444038796487186554273405992931095313888981818547767512672522623696300274038721507810481151231527125870726517523868689514723119618228000252783072586167822022610997823813172576993155083735709527527982319625118323850293046723142444447309856502375613767515939946894708957241600000048358898405514299891662010350580958279329363194627122153301378001058410335229366385915071391284478282532130374651531497075937157162311458449237157729554078604444224371308530955955284672830569462360371985928551120430653043621852458916718801446088546003388160995434065123742482894539599661362611979311800688633554406189887480479265032469192306657675064945326619174798683945024507924698912191423266076584537633877708149756458810033417358142792197777497873622117947561916622096207155637106595045665654149015268443532031329568609621461498120437201888018583579502151037841821276829363651705642400330079685041233779211999938303130124532855356059277253052464314286298213594683226865855272505121943351443843095732059837203869977889778487510508682697855796508055103205951505192484665785674812753817045874982641969846210869218031645016743830440204493739216730699127874174260443487972310003573775799502956507158715248997571718758066486711438551687826711943214661891620873119015126793504823001113052510716436094104092596577515036934475226209818388475118683077548303052555481757017772791551332165562508406181880350700989082152615764729510974551233725722769646983270156650448005249930499427746336977945528853666229016171361194916294050559499491426762521218677984056974072675149405458458936508295155081274656118618471946740579798033385651840959100656325118421546133884489103747593172509792290085944970358222163359809870809986800060816198786322944590444802143358533867972492255224082824800185454826016311150383458926573987181046238433509298713331545194642541836356821202872795456821178506380290500008028508989770164037143552942752540780939926264310332808199730993183029058620023504245175081891977208617250621047881273098412630104938671867167473772739039621345107883517140237160079630591266531108942995650065621721230384275417845097170151568121478540584325525508411950048421908259169086365831539417389760036445502585102832575356630134369524321985449320855797428403653443646429179856797466283998297326058148929808253451932084041449627835066129658331921519629747287429972048993065008783142244517368739312670653775280328095186004003768970346317081687927303035625606295444960075646636809259610987034993958790654745764849334158487478864583790465824040490636349903716867233681868256416303586472679977476420305720073335382510030201656004886842482412791808260544264651425408381182937845408283734769028319495333539060127139446994134480222782839925658687679635306091190871982072975107827342033675934446869695775696869483843554697801441435398897463344984895441441051753420270663472732253452718035156310736848409956999091734394230041352735695723658014468614078550493088592893136316511152597324738565756432845829976730710322842988215717076013404705256936482243603786142723613243651715636151607586383104193896389671790000305963104630692314613855581551620795625672994448485406150725864343515148626917653342725323253076764988572126132371404986848546747978066067384965242303434362168908030761111123311831647486900243544723171868648828419707259098825897640041381292096871574258750946040856049328520642620914662545418545204444129975719760269726519890258186350696310763853321738659099998546188214635857200083411903423734158130787203526151128656410898552795832189970531703683273774331047798538254077995918200776424028901667922774812861086107525593950245057594164037926582727409770540031251033671079675726498575927626888287859395906693523499977901578577464480240658103998893723937268659055077501331961124826985133526669917395299045990593589809744591563777273428329961708774455817660600298136153790546079894832033467490459810690835067527514941793124248303773925034042307555232484740266935560087960791181310312424581322243441803747181943512467456319359410549550669529976057563512993052700248929445370725700095585447127657563108254253227883060213510611067211464077027222943806530954403387130220428042538781915462795770933471467364084792460969388450945347558960456417376211801027602156777128080720320231049415896589964937007230080734986816086776665443056913570882092636782151171142521933463017624081148519866958676520861302405873901042258118329182328650007193556611966219866378401601318616037028675894379216324194321557541129918246838482136480063031432310502847048704880656508533824764389292877340699200582262610977583186864036066516489179926571196662238626723930165844427846378103552712822791447501039100298840988996566428966290434155301981871710810232490691320715738187836081816199446283093635436467427988726205936972120229723350055773072523466598624918574362056131382079896631049800557380218937252153629105867608973101920185576780956842785378451299937746604423557307090622429716028527443172619563637668756653171515610791569653083055847260826212089815775688673100231605900117800841982556569642105849418317281077357150471557100002255872356997195808445263055014099807704914794468881670908980685197948683331680273753198335459537658093328224373195036260969551459091682771200687257323104831932156673066481076242979329939604699361435568745469942867786255624955690078930072513374318916241123679821489213472734777808487341265424503334174025519894478554189460023382198747640245924628338773743539417246497987291962519904087317700106790607091611184345122038947536424628545480612039754267319477291040542059903218047796418590904417697821005088735990938853988871031379879633524671820069198285964615126214368761601809553754493403453274478400752803475741765412851111782336903471024032066335995241317735488959316969882552180759305906102765471167375717465811848359975558181485435059020643083768401893619347094229980918827538453758447950910313624494369909670458128407550765601971953217047267947502493774942205649376132563525193454193376641108578540666626766990701225435662967064860320054637611150381855483856048971036531434406452644129659609486501214279197497094825635329343659305021104642325142531629519869171058195700655640162314015710811371657702117917481409690180288343033658070192627473800641865565772885355148576063822248340104075497079773825193466385925373992949135785773720910034076774193574739463448800672731534506509853630811640627360882468731667443919266746623607215376520673659920357752966018396456165619195616582624978636156114231725634617457461579627572315875174315801603840991429936964805298754888736474455524122934912368308094697250386612513817017398685483031584911989772520250235521280318970148554527437248776660912405573797820945586555233927059946759090502189683713963319486187065512240847239005676786721640492944750016611951564331151518595404508925808282603817221060842807334003114991816428954178415053032273017048341081433960786197380549617530021265771526600484543334126973959729976216663637353621364145378469578483838496850457223326070548627453861425348856655673382065936164910285617153121625684886861578007950945615933916305111554737578388486358980285986182960620503895400230610370905394390028748141303889041747915017091989198073098717272942085020231063874762498031416367790823291740225062555415711398037677833223199818775886572400307001896593651449170414822887825339680089059931178724791395785265742009960610361125991153453440784366395207724264875243879410881305321162070793436122876287453338545169519050753841480483968420315551596361904890074888904089829745326602285306752580201866404617977347597717996288740169111974504337290081967784541335516640171865410387755346785414835913386592052177178143587435445060941630712484333343789611377784032178010116448285861687507780889581641968850728675693424779734283112545955505462819552795890492186185614795047887518180190633237893748108903560161516543040251439021637811290623018794694385536481510936602318811750262169969938318145261490972245987360153311998210332729103507708154268007081895328738186100147035550921189526830437912919708408300800867750916781102669454265231553955478452066878145733429032876009920934881209569274632992019702340725614954516361708995273901938798153586343907438616323136449419402312228321667678312004496921450847865858163007860823249225411837624898305113881016923804760480578873544980266426810540791322345199793883664093384812082730697725610138673989713510942907402142522979306840188757284831689572753013882712196089110561612541193330879817402806295017138218393165555052592152095724571452610538094849316238621787372335305007008690642197017008114170281236818572244585369042030012113371510824220650856942973315202758912770963512899131126012648621696504017226530203570547535826774005292736444468291285059479460833341781822278846430492760860584814828141465000403844710363734046841670732278281838331584737286378500256159710429544511583336602309699602889022747004526298377206176743076129181969969364528698500133611152082026285912319610051453207960272277891079450912006403409053879924657785496977532074604367759468507791573631810765464581768648544809820597210885512740369621711566708560335777287943277230771917026398234727191340951322006828025800477753843066367496243589954671030458712770466795210660418127229530832965064694433248583810898063112562576139879877617814238333037054811992286010852122531217535851934337190458488109967196974273210984380424528607532422599255014882983117467568561960116929834594055805593702460455507795262333756376413432131307541127842536988613453806113544896396745110909658483945438233328502390101577543278697590230125885661795079357739195131527637187580666674964929942466451103259439474192438402792934668029852396986085888358897070257237504457707528297156355931069204056508158518857214273770755021671467665372700844636335463595140830919998490190892247179860583921831742111917600622157241126604086777964620432893326845723847146330346246632749528172584576623646417207366021401590600305363902951599002303079422018056430801085931698074276053987901523494092620062728115177642424222292043492772991704891102070379247489693285227933790974791784675879831967124923753616009729029534859259170774160782226006805259027646398154234024127561700333145347933090003277047569594836240210995612497305761593758571978460914450855642805586588647000264004372891413866998176594359423099020946529625193962458749749259415628162278771166327411155780073669970697290423343261942678845062283226545654980854389078780833088740003622363843848587753212144933226422545018860781389050968535380278959922804892789712427323045226599147731419321210408253177872344505931979413538839575928846181971782740962502259164777384754117967346841549512242928271661472811087391116634867799479118461936866721510585117773191248382886896981948096782632824275561269836750883068678619344949471091891319628967222181840963134894906310717556526876239476658223678982691875222425116116620776243594537534672775222645317150123922179007267689141983733405654984292851273095461414481870771877032893607471812353301938836268511656201121276052620965490776884589797767468860011918402215000902555238287270913634368457875034090516037488011464307726005991900220181375531551853182343206021722402659311016322496160734697805976037960495971890947926375853021266956933008364484462387082863532149066872503483335497399782780486388095828952269206275365493520614281883918003714341485330145152733545190396323638485044051933354517228840512239447806353878518565203463010798617918692005497099890735569342274523929361046263683680306183727577176680550037308453165293065108495907050535486000866833168029170127125098477520530828052104287397523845573484323817028570132747500120676528114577624445494473951855354369527056196748408106240961441279579299070018589869180536414786410400196472985015031379217160753486768547821738791655363510941912783625622652966922935801409815254857682396892474976756265208282770935793289402660302805835164780104727857337394661120761732382062820431687554831242841763146544084368569440326841138069346258085976369540426150897902295389668672844750166045451044746796399537356647218411058745497680700479045002784687158207469650053568862123391453614704729015420817821918373129633763399426709058643784631576488485837390284273789594193233182325456120340472696466340386562267804482585018582136653170548308162673376493383395054940583688296824055585835083950640785109429196116178742176653723560439954382107323344304485039584036416899849742780317272636535715475186422660821990385724032763894083224257960918981691392288438158279837999946019095362011280943945288299447917335298671414228746575727506668377466035558880306501503873664531783140332932804580540602615716496214774042920642061708460007552490834613382581113504925383374915148088694593126246185934699050338544138333909264834081158917483183725798342193786364273215630169362132913484658616389480532938667028322903537255937502342954178695217066943157366187852182806177166055988258385291219095294793454504177477580546257695399120738239024007610475425160418567045394291376723411413250873599083190367028910704108929917367656984959725500779939530685470116086755733192474912726190843306492772541687079615835691783692817939567137185953635686471899055706712836634046250434454545912515332358990569828169530224018372322076161258036816685536519645385333070378414506517674139330858955743933790320637767172466631367039756032031396142379231169667613410813919000017668781938908651151534887080233647155690122825752963280614845993264175484432335421759808118804491932582220451086098622529253282568183996240913998895823257052918623224333073229139980417564384640847117230369198575643336281617828289318149876791714607609464186622005020847269563857997550700658204848830840646449807297685006294168545302789622015493972988293661127669170477507433695904377787031356773167138891797867827165343279783772834691149332328751689117390987702572600798631774422068157852704226993375876945345514636444110305502781852182344123210373850238035122409161385382107124176563133362854556264289385741908849615853753353701613609557700658037617608613994139093537925544113929890310122498515337679113568985701921098319586427227419318479836335569607714963845780885051705207192914551278840726666924398718333553050736461665658887658911661966743076339652709023435844776431667144287182578015980571397642500476193813282368129532815857751759222121883448413339707146268706102028977719953350179742552848721353614259630460202736257189339239113309470003654740575291133921122341906332231892135115184584766226944370058408288095477906309052874041041735552700367496934085624769887834377691301119860833366744367448832524495566995782569294263436224921029585018874069849059439882922340593745632614246656196693731297322462243064510497546321835759857557395853216032887396780289650576178773838138929473892434036010950486712164547351073196486223027180956230555895110610605592639113160247022326115872719036558141589994358513419707886139084836058616057058740843036463991223827946858260055317416257656553407021709791228450049844509043640394831053617589495648978957357289491186765538684665679855587336468821051600498052633650495214468258775419892868064907740977991761554247614538440301069797888433342666594053816087996600507267738380564241596511304765439645492743672685295187446037285468435728569409229202245681211144170418967460775489089150179280484493504790473085188261517804233982689940437724922980500477497333966372961363032463507526254040127058155244591590301628642029206144121751367082297948649563011432556470238406700373390642799123305746100977137063308825667121887037683898126448417658446731348880427097435794629339586578061969937437943318001380463748961381733206484293455013425706106461527571133689852753558582370760080488421508835390393947685648439819320539081407801092894346345124963562805865420332468224312100449726559796965394315318079252527615793693009772880321830074491973918355998250981698871902895498782383090326522826643466652632378672470134906759209951690533861471321317953591484413639510797998796509207314721822461491763065964670194075096689841432417496850667125727346052285852548537087820826362614945574680035885533245839971631492096420224062519815510390970859112087483456911876437322250306248770888200373364562808098059279557671710323301447022334129279771424600569495706591447601530575194943784503858896410568067562658644760501449381053817572086106004643281754227949426638654295390685368047597691448152077597424627998377534379216419827041732670525441439077633322942981242801111154360703807613619676132909078367439717412069077677360051703733824959571252084509994987267611549063291318751889060241342564948975292170242118515950265742845873814365933536797641881731859179044345733443827826026243721801639729670650081786687984486006337804859361783483728890275290649696025535720304457152633866508095697625170624506813675954123662823917727880739718803297804573575766725765173143460225098860754118658603715489083841862062982506578104392848360046435832276498204483881565808351657439187418043424665071215519127872299371096491323406906014573442137668341322869784338768174605017052475362083029233654877288346536583561435046414658896489655604879583755889465126549357852335661854391815603037004641600463301339198571670277404748583586705510718689070698424576844986029960843369564099881613912550885857592422306224391336668255734187961574909957284430639404218989207624585786371713584904630557015873014895994981272143026489850619390196313299609508386620225194554067144869195538134758613952553235382775106472179954798512010708672086602470546586266152445537731703807033471010594178799766858844283581570269115687816643233864779608440516269490956606936807098507074992023749096928546217589832003623229835691058324772186081899048236277426738075678435553627901851793911431046071085768071202718389646906635309334703851423939808787390901567256006154193639566396504230691049428784466530247963440007273467701160833698728097853990613000023498632461133360915061926936376157877551620343043952709923943272346596412447418425596539479470660764027767652985701611806209174786739485679256983312599946037634072819731201188011187373184513083416604226157210416011295584579632306218484431369513501089092175450060963161068601029556232360295023710897441624253671272869963761205634974210643588276835708836726263295013140225126090273171567559108138624532549224047782524768109331637348207213299389047075375526039870100049120690037736454815174849116749797490842222727134362955960182718606317264044114404030488497582825730001209135069171179740665040208327790502673232194401421845244860118612108265355729393397925942237672168148043740597429697205344210399601286071279053858984438510426115457004592644934470326764995262210562720928221520577946125273870219990039355703453678657912272452888542697893182736858797292799538820330698704794916095105653467788515077100328957802744695572999642310501467702649802354739851552809528544943900473406520768099971864537769043910801693529987673543111932052015015761543754433727810987674459822129036389568672196822793926285217615983757370109292349999716949990858446611379449701186571931967223375808448998744217954179587549428526640585261123498117410360952542669402199829617084861460640722274789243740021858105803902035952392921034480594299145228491415107019074321813713491970875224340735159030394475103423334360081795078662436694996918292877710160120762859376172795740122979963459909874314668273300799538137561884034857051327583393561761828618187358850078578601108664813089787928653445026979642716783965444138945290906225486638120617864458098315852945180495940668328797522512276430833405493209284248181696043477856433322484123452334223190049345860541602400698918792830815319530305757254057684948826925548786743342947801570713040346771189623528414198510883264940343888023390456234879648934792240014983961453114544312169588315788326166053291403557321831670599688612198500227270248207957789650195416495986494519213354530802133311429839868154214975202348413034374616524731362538817133737729354389310246227342533971281268786010313708928179663416143641498742798753277112645868609576635217470219112635971563231143862161238281735337694882649839500894062851125483469303787503170479354910203120329178825940456403770433098144529648814157859392635061085599907123361235278310619118001128867684533793183022457188518149482215026931427684161484547745252858899332231541016406539653482975416869301378223601193764779443265391179013726329240040137468262098244880810576213903104480083459448023049603638773553489464282222977970094772714039860682620572033777087750699182393116219784181234058205207681459946056784575247395585247274624736519628488978720451670111830703571029897757210877482110073227065941757024363780067522907116877497146498534910798517095975619016071938628936933757143465954400323724711098495517575508345252587404889206648858698144785024362723286604360689906603030045757409448568975703522543205328543203594267218797629467410557122460838374006911874725830194278149623747583599353141931407360644164387783977925759930146902569797693426961392572754695477989562611686779702097039165769201278893412791575196213843952758115340077641839914721941238523127219701477225353676467437161996966531649590942196653090719198033358205825533128654668788552316083143541827076443481619768159243910521346611331628365875274000680099898342377054478125873364529859192122347258090459792780812338680193060334447656353130705982454572120007817497859810688572379662788630384740860278247211070458882164201398610283524526576142548433826859190638279019347103118675141424912641940743828661745986327418233605102870308598084977278405452890408308503806766058074670994298649056452082034976584882289468362618375020359363415604640703021367867328522531701544354511333353616992226542023279044201110744756902998477249269197401474592366911746610776616705568042044926544599825971981200219824795879910922316787153618062394447140153282054040851484077286310337631524018836904519856010226387976333323623352993793574033991889712623926486586230778879141553604054989051707500623873072448903412092949616029697257294851785612002971009103539555580342458606198363504078334000027466683456866880090492443829251057397055683070731700267781502690110711624912208927251549341006444606043479961970765365715939773371049750330932419762639583549159951913246072106702318181364694949679491327703048576581414787028613316868159915271158338412207520407998636288183878918414196385449630308550362195603964135746395388295943678654392448270273402123485977842191737121947177201691529774121570559780995990485338613847677798425122315063533023348045214848625991531615698207536610894872297455709183405867050892470364182981497299021704592495927032702758806068005788815322474866346490755991397772434282659700958664532211609426858949101478809382970525756577975337817669071919591653022420393288537269316089611253059329420108196919501784446249259761140926456336503484288206633224770790306547673142382803255788809774522030408354145739903199324196661372312870849335748734556817140954425268767713634859003108525294020324316540172125047644208549637518800458694718608687093432510098076655265627432764356794614695668113640996367047531979674124555664223385573107576966732143512455140514745608004496650893108343040965220036157940142624418173158264204942060663010229392590109907652281128211873083501048442929620940463027407161247650119501000389105209232554924213655673701299498959803530064230963131622270880435098139623592722737453141513577369539039802993873597589619868664194914200887665350164709283051028619909013406416256573796494662686298456826728647100612730872340604817294118370102040898993927421518074788660735199954587910926710319495583875947761038178497518183810675226623440239298510641845851843149911643022914096279739546546462026920665278293214407610338529097886688676657790099395337318997662168280238466028250486921676221880454329640616840216364810257875106973377705320291920164847224800165807458225392980485853439301551064816620609974101120222095172132674151816702767710228606778564141222101373194959490981054444582574716078199732648674109300594349082971886962766038625778259012350937379300387797119365678883692565434133911447399713747400543262674892955103769208693216453997078690160833710333413882799488817934892795862945706790782609133795663445955996910296001443417777970269311267969333204235831754912579203758604181921918914785964559750451636028496180448437017094162276948039917807701680714878132279238321217914687657642332960118690302541868990356881871231932868959861818499578180232638925493090091323836535082365824408892425720037584942932440465954365541251199863045073834031101126420382385604613461070280861027671417583900511356929353292061652127100704920918584162909523628853255739033899011103204382354772082804069006936457704918584133725512784071985078746506968947187852670678928161080287825265607237320712513788811201979214158531426231605825164533352874578080231761883001009352495504123042621641047204420119648621489633889442492199873966890380026605022405069527473518365642845304540295844420136446252846163683227759812101700690489643721616763032365989344811953653600947963540975927538768982301091832252719656184081476962978690490109619317971896289053673202686072270998407883163574892954352961878504362005856932437639599343072517113266671122966938519864905773132604095236842723394202101852703904765441917507621802578012500510302355824967373608395583440084221360351157042683917722600155358707170187131540548478400278558068822774697033626871033372209016558088220249710202418997539210541907827094767539546655377516154355200013324259864922359604287622929959344363395974612672724662274614188407066482957433922964998586202704239269659419116926937968875746428579088621205911019885404853537983007243354495052085498354970948221752212655007118571035584975206948754629962474366625982171991994346085536698113532021298124363205984064636711142776082193688899984524260845019448194731939009596650915369840610939327952441307721722820548406884009449363870621440581270168745305667111206424025700813253239684482628929641181437000855798560999371388909990060635340350861046420986451687603206307307230564053475218717967167454429489006679246198406620820628844892916663329154322902023749900178485334671760700504385220809558200185899848776065329894570886880328141619796987820552085159598042089636192486175219961340532660816872041099843440686701901112982060442117320828036359628296832453556207327216261926415469654738430161306895552613830567804132610117463348892617731153806997655062715502364646957713409792443941485232912991912922690448828126945973462707169028282431186643811717416713566056084870800383802685524754968064932033333758699334006370299333296604119911571296737351919945667441899629931971668797989282829608303021761774320211455227169279558965192219593042032223479031806596248566089754484850795030448753635580516525883916477726675447461821922242482422383482602607064560936969297034946759376490361521904316747136232079320463270299917186509272791242166434704607348593674730288394241237062025699450382386672001163022005156487835557641785955999791198335366928667278158682630673714334399248940923889126165154323724778764870155064362499386340003835375021657735056591892451452854430153080142851716802004343770699695320503912360201203329307856800034946883882432806566053273055339292176796349401083225577727220878750263146637993032471613469971485524182404523305999370914547824425732631255686538640066233524538739503704799623730696205411636728905351368800963674916187696331654452973140918154127366018778341167342633126249001054357670821860785192786250353697074701211073358462159665280031691585137008458767849320813871805187592327566630233514764387919413366890380600869129908594191473980168480055407175697853860230725487232185155109439302947075521969535004501506252202479331788796337030218928717169789294124044018877445863266489311445253905592071422613140482498611630473162487894199593102134562744302252470327714850136964106842098638285824486923766784049318084708052424160520723132500615225257332701435810613590561421572749497443981526455223508948977472385600986030514615155032672299403995783926281039448525121465564059152939348170407364020715972232493180858943508115620117603685392331315833351026757992412523829251326334823514419620677282888627878827250788959023986451786799745443067360612253948340146621538943860158827158870759648245191694345281217277247375522039572858133376062229661129741745824572404033812056089366235906291099437834539425467351719939884383935913096121332587644594779734649034962482085136041731686246778508340338662875503545809389764164224607865687887042328016528581745305883645998538425361739921645917882940582414285533834532057957770228002420779458294947972479255046959020104098848160367802666587367548206742814555450591886568042938170431168612266448534366372246714101204658800727934089819771379826199644890266875082570631007444977300779316684165395587078562932879100780276635429494890728104946110198279949815338459489933732968284206210349330758822068057507140263211641053054626091173709670895931292662613706436614129261478510052439867165928608216250302501158723981217224226088437379832769873405831454813789229206061252525649671377311880236868779364184029559290903928291031123679347339893886834557825874441827601410828545663307595473166399812433425227664845661027074526086352470083825587678863334187254092521027107488863990401866083483722711896376068936013643677891265418692386247769241054303616947033298712515633659129044033762108284992744847573352962498874204913331538124577732481933814941940650186321822819519240508548450327364669235358809027865051505183670925625287581684561140339757429668184489173014449614688488753134110334938254086576855814126285047384268977526089807122528702464606076233022248306607877327848638417338082134423917670060301104116321959514617824311200510790904828499568447129668527694290719727674467416379768235980828082030617496084571517276433297542629951562823179971997921734759466334521869990781385616957253109250497269704796433053538696303792458782640094939432920142566493467265818107485429517006915700433639720040683983974900878425397461724967162133931933549417681675284144545142219715329086730058191288862201900937416298133797268404579694279270643526489957510645853062194605483263128030179177099323722258008769930873302549770279391208864715512433394187029010757426220793964193066606896598060431181511081975148784371663996462261652938618547760017099806344623962734028325601703154098465817418287725588196797412818126829372040923111330414222422951790367572502977818135513331305271314617521419618613984907418898178279839299125865198659850326764092987775908127532985787249084128220122899649730185089495365666762270010389670455706251409560809358936736932476999277701295980146806522788483734210702051552245524888709982303125549241931567417895866252313548614217467506203320987034451570325724834010605027343045419432473124268549291499682368077688501812418444652271682151688014300935724833808861037511083367749617995224170910071174389333045455885622046677473128331878476092686233892496213341537362592282885231300653921317383263259459728835856559945448973437606763213041056050922342226013133232943667674284436488082219148293398363851061521190025622905293751545715826945382609172350300413075846954317256765234232867550601887050866441800873880962383144482553508988182612853156970773771888548073163092245824367999916391842160507070929586818649674825871259200216958496208480169186715392364900840861563472212332526668383695471437192658051213204470360612266537942191654351530721412618998385832523329261251355164462214075046019105404568005166059757128493468214527403509152634765990965449555515694961813379422475613057913555019897610426057389660750043371638710319248378634456329587943987879186753223953132415187277728552444731417759923338856218060024013136730920557637002833786431274229726422819033443590452726680799876334743637039610945359154706410252001553372086582733973375530969159741851871526143523847382193390224832489948532843984992342918044245103137032025356705992691566005601498245849750059546127479648769931990970405349903279626524892617099448520403659466019778968229032686649179188831310043880059126294040441808634929432419960569939911734798428504916094965066192088992360222118643467155488523750570865552768337269422185005820572165978826418311667928124009000959057388580270481056126290507244170579700121092462371734670144369342408403095883277075680245328668298524134593328902325246212347704716102554015244167141501669371823895329588281977235377001722705821582313397069849316811971187137007424653215794426343797693590649733827696078210678818932884555987580763793856776625816531684151409755407356633253287911211743053439395534499734563863366133504495708700849433272281157278663677010500151771250350518982895694244617097019521558435545415045500677722607651454833723145570217195774652284740760650059692848496203167544573664248697775037873947090766632878987570542052125282349302542797095091730613335635590603225285842870741632878873659094722932939731386445544347819561390952125402125688903435386234517263367932493865296315828719285259932213658228281598311955590719050294509247350728590255565781044179234500679037134654535181321706910889976792843145802193901263596415907176076148626069582174954448473334495131677217109165901078627624339001790813863650206716678208048348463299316100980388589028717588888379520574342619889874042145681525127312937190257813941945653718088242675367840154767099763749353230932341584153212922743345340272459533091249537456745829349510607229745135191414830120128812999727863434782900160015610614846855663907628819967317480244245629545308053490575480967654856320270426590782840521938198506450892801032555951254027816924510766769812542771390555026042100839922876030170839282942248302855388904339682811398528068982751405899384867655918664057586858656026921922319398303384805186494018552206434939646158466510616232944198026801725176257045498126194849381436173495376480297898783720586663081508246756669352185066096876059817872853396153824396124014760523818693190039148822854670413131656535390625973794275258641862800098885148340640381530476202575791026373888481577495538987125407444655909133435261582967002313591932038847202165521981347979798041377541221976174024873163758640781451040655353171107593763108082982778128687457996129381028663825455574005031639572435417141424998078762385375645280048602036533177492279396742601853381380965184854000973434009841895789494725019820641980170373113264583402206746421061589461001671225090313548425728376959793036445184353025874949111684152417596316651102850172242763464460387845036841878580635115723034712279907397051330229994288729434303126073151151957123941174547907775732455382241409405973376504228258849150806492775164270406881231345182069132083039469924324161284337033142039139511559744424688649282991862201348681248820388900902611620127305269930992301822283416902303967959643774898275085976505203290230822349584209197664823070309549348789965316536088684083470322315010359831655940794475399665724654902455433868604808172955982678749144020038795795748671609531839734033152011031728642430789385894673399347115035748793346241878031813610053325410912506301351961856522222813450261650018192078555710988560675583752498321821074505282375771374865868072597747026636058497795923282443849222059600295168503692654659753474266647777812737212996986908632013894906154969517298541652728459768805992882428679067840529158865581693544773227574305970002141000336623989162374679935903703581752201520573763065852426702749185378405149101473502628071890081564962868041626617075101675252594916089437487398756796572059699065721550790926160793428171277848899494303741503736883584226484412138388010680378252035999024291559041690823748142937886289653825646981682205756457161583151131302790220704819586675124390540204619558198542232518610626284030840622533031925288185348350932669223011432595939058513935569705903965222948465237985705533816018348092781420792722726520972076523384312511735363426078362208040455915839288753901698900043712647067793424809892443022686381517870449078372895358552593893701292561211936929610436381661187106446117088729553259613638935423543711241019223819778468767954181462388478043443929644880546934393739896681697583748754503002118107411308305270856241604710393392413266422842579807279505479278497437960917348945213768808658732180075762908662350169584775144264499883927041361326077434879243319012300425411228880567804369927904106719664107038273511673569392622247238522239397407751707822775860449358011319648149568584882544279245933307034439290185407036807889069206029494267554639386824763196910270095347809240480469921866598914762629062807249543559566734647877588718705744666098747539046445844158204030964953273076573637994829750837114788196150594089102858611072115186412567528972452464560349798875346612418796478151140558854667483867569900590964614873196713894309722626222890913727003078629871160187276111324555807925980045098008288192551022009456203564666011619782397194667293500515027837803790418529987358399570506524085896548836534238539894192053307072234007137734683692195168783945211148447726604265934615500509946561055105903988263964186953413061434922619415533415886637877207429287706588232253441348405929740595574713070727812937999351395834746466800553857775284048467866341520838651011785396772637526843484512614888875200539066554634023649772232544217111761283669105724648502373911459497140868521923832708799452600375144813574078659389549319822396593882798371051127611870847729718095673096593265858518739881142980616320891362401113743035598223118754055006440100451503282416287478797701416249409471921306079452999851152965525946461224472407775476799761785767398973411990587585587132809437835407547067184338783880181131697780540545809718418093264402763438051279838960204046794649277091494087870376510158560200985346971735651503200324359642200912182473333872124581902492424740999459713150573876565925971904532215341270111060852294071279796669136565219004531392458222212476620946864343331516186507871392666324480960075458908931674645363538152363310803880328999214006474191228499263160743787283121174780566385977096340080624592470170319240930739066376403402536507419064080753212075782285495725903706692764322037494474892094898825127719505429107396954972246239975591179985065849565442351821619709017788632741793154056990835316198605794690113833308776398976125679124101699017846780875534470277408766980189759980938674965504145074171954279068080442207636498742378853504498952235764664576238331429847701149251277670237080906383050282220389631580942930124603048215271159015350701014760314449577914002083611810120269539206631185353744871040905268434675084458878068871807593160402888874039240315613457700210387266904572380280257881203150303975743172838360280482300592381639672215537840862637040079817025795357592544530086201573488395147238253014369697699903859749969328718216651886283698669344618251081935917752314650018826082337394091915961691681407559613951727877375765566070959750215202888746995839935629301732926446625740607117234604663401041356573123748981962893658594637527977284706922495740686273266442501066204419035405934996005004099576208554957453497399797839571533287993902724622097807328039542698722925873345351036462437367882134473525782862807070433488771231962812383517353501668211402465182855483155051865202372695138096378173034186146566785832014607831900582742150164605730305892640656068573737196738633430934405718630155861545267368796280914399935674034227073766948566724455813576470899105184524642380740960635436163054957285306179204894368308746719701619940070418233980950178141336742952859052303429206745388559406874584932973613896092031014254727348650761241390424883555939109449701176562433732051154161541235580123605828559742308588307008980257602655912326404467556843411932053176916009126333786948164150297325437537270079734977497999400060684382895086505192084024030291818805104535054500246399871140058180125619126818247087772738784828960011935655461128100694237588234941798933415779677833109449546173152071762431111760186010999679103935979133716821379562348578848806066679055135230894926929286751175116666290959519549912393263680875998807293322839769726890779194054270094967427656102912989351849841211714162329094367764291232195181678952008849645014184521638178433697395093121055586123484426648692758388271796677869276936238228997641483338407334355956040053182211880475283000130071907018203243023066358880741971692857830203658343054553329833069281957441624768031822927438033382824143549964479202339727638080299143405740538576539170050570219787324109031759940938316360063938944469291168339191907759195283177009391299847461570173417620763568730454982652960511135758973997521691974156543391976019712340766624694367590364379161464465920128380905049738183719382538674660486080718573734945998287168967383041852019887949756569603496290816319084046876696256811131576061374536418126895876851537748082626926983377082092010703736834322607941946785196255510543163179904229355246020606856746875627443695437821937473232371168787280507909595355009509938989813710730977231610881212372884418427337120858132117060542376427673953250244097266292420023812787992871261074719664934726702130729572398461526349353535395270628998443476470347436654137144827567458673274915718337551757389873563078186030566318824931777415767140395973744541181570220321263595859281947159524677792226029018744939637530362182291512596079527870867652540959385819918473626211828223495758106559835424140071419144493718418670044845802667276793058657809274587491304221181863166781521838821273160261780288111889330970080695000455090400037845894005021645193852039103698217962326048732547735250334016389226331821458237455982714936163782605796762387031550215870194967382234560046443179730177638142070598741993708147174069753438810963728419982055814519840024500354923747666783792236821785232246887434660505898124538735113317735860223471485220536054558398155494967977887239359843066241997441568021571811312794594279554584779910974418131680100456120922713177532958038253925902782458252678371370259831550698599409272165639389613021409814556756389787219158523396453028418863103707650776088575134397496109282546277217629752456273506050290393972189603515882132494786871612571967144601132411877512391660168767186403078325752354028278435978050844127866408218220215198426632826887412408853371128952372795312765075903856429929505580649947830002901861402346083588305616051759590398486854069989358963220452189524597124947864462641902947877231689747815956095795277793351900501286272191757398028487982017581244958935706275149353923028494796758190526248108348706653644308981929064069772888876418492767243538106423402929817871804241365209449187464662337748120348705618509353487168062783797049143197448777228124823701561106997560103078466202518040583715295964800742999869864710123228668968466914268065288044601333845694982426174434020230565670092943361589810758662902706097727359897544680191138720253764181090766664510702353776809597023832412746298884650422331806422754782080934793792215455401221743630149478612824233744896409760938588149403261358482905795260729326640749976623788380155113991753486845282304510087694351402999030932577482476392938956740759770316391413062671568500605670963158642988703429649343672551906224343456747736044930291972156737471802412399397039233571336666988191566011506348112428957711267262120723002519541987705456795920049229091570372539750440430654065033024772204798438200282229805437356780214588218256693401709675613801436427016027273941282466080909381954769191752947227297164192601816886866357432108064113872308633732383030221219393630270517367300835130126891432693745127540434270133470767721439247944722453236764374885365834311754719640545305394893369716988148668288464221442279005438868588777996191950705237838110662140895872568077234850319860168716902686267228527684467576811422031304131166428144266555586009244537079469531575225557940104498504720575644329085906257308777342410311808779522206926052899271698217202984623149084708947582793472366970305095316290656288441359191897416762591715354563519995341326677373136246774150994012349224088600106609932435790137727399594649298958134583127058831288024882273431210841801256303737766392137570762336712769102224319288717227629288224430205884709506973182246189780954712963568610696183849667146526806560139244220384407716076741002876130947032067989972569531242346171196606382365932568849500109896924557887273967428642068326006813384199658770869166421222960783336613910386937944508100293905941826287609553518106854080297266850536673507326297213094640353792826561618243004212267193174901256317451493539506052068559164599210075136869428113961982865049902752565660147582797260835884342476996672200860122462046154115265751050062696202130553363225907397137083794592068996831861123508065575274060638443207587927516556938328469474460154601009766230210316789207765511250541187811427604263997508763582853704479420469686377942738681967014594213800257373668876656695662625558574328277815703491695923304655723024587515582809176840677714813487619149671451859446601546259604147797041149993007667716306148607822180543982816524356338094106449640882921389959359986058036202301645737513365863369496535468093666972175793756248331798921506859059273951030686915208149000448001438873671088562986693341093697269116890472496249337962754794352765869521061839919083106085147079877518217758256839250684754981869589142564144046018512660721464787929691214527581109627032840859014651318966922605424991787572811515338436740171406601918178405039877325485837671874273710186916164775453803250303529599341414941733707436568180144745714539296173812673428484666573781741211198879209623488049248042209376896590242881333201642976593741176748588122585007819961442231615850935215449706802558196007754959807942852839121788595613662742585396273083005134843101147749644889635003348772711397658985268810407206907352054391967662033422615669689735637564724250484297331269182411942221032913935506154180279972334527644769928227870726446239786616939485541287097968216517516012597537113408662001744455202244259426943914362656507582821100428060417539080642668255408327485081327387755282549196042823407133832249816771119874017037452090065956573073561484965902949955699274997153389220701047725013843124468346953092306025017010781678362840419226086961879816549847533378410957459705878018687632707742208374052446073066533373513694290146324978638797479168340865755676488032519504713772235944081769677061438362628599858157270880991792081441584419428961930947557179143967093102720199913343373021844111528971348020415675739502397901618738833144381625368976159734511121894646431005825110767289654576199913798323938265896234847571056585431364682963544442792000621517160426473312980492918083085967445034661526827122983807818913955085308174375538330180181733082048024698106248987888406183563929394421779754864433060158307917852676322041967661445435432412579720479909850568617305591047239439451299726949623203768347856538030212131871810426674754471788114299016447001506872034540800255589788707439955663292211121477718799036923095764814928320889782667395766991361495300011559054334048795174795439614758228037767919043019229733706776812815083041140765902514347783505682764918812379035055146686862253602698925702037660382792130753177794128435310543001397775636436506780567909137221429184255874313198363706383380360387819569170001509532011798846686001370080679194725580615013915864586710196681175039345984399880872684595100291614086231436407230407570332005224793292125301727243076458403397417630164557952151440987737429518405385150369867927866633067608251733186699302755781641610337026091621297074558473073700183160845700662896286566946574792656160141535019000443224467661482707566921169284083919224740432429214198842576998880237691090321762623060235545117892013680034866326293480383251384809606912252715109293934870414353598160818252534006026555312980952148031947566039114228284130922321550187777041792288684548940082102484897554847125297904561837145282728762367760280690496785086343924872148068143397205904269892428945132070887247062851285631303339118060108901758144615514073444326642222651006895295438824364256521232377228727822914578123690762714349343030960076285172147167815277885345921982566923218804319761540466205117400427247663708601346150694135955360178407394684879146182223866746629115996340589756159632458006879757142649569201524460694133229442595040552406660212363005161287456674620441375839491518352799573077244442123405469673697251087205522912750111988328960208763975406831054113724309606340442249374160152321242538254033220135123408890711488134331289924750511211749626550489497487705085449944767323439365032330476715480574989090300246885123146149465442194276414904761496219905053004237186765542435009434937232983949864230121754374124442729244944379804552262973168279459954519288019550912533602800734241093105980418253395239471188426471796555343934008894820366164689063842711464256518156481871564456261036980416838217169701606314029157897375410440925494406625224915883175480206006692867175584109846631291765443793915867697991649253667855405706549913693016246004701135203977447801290771289993325258427513654328944506210742947120578254907728433324816315999303146099298107495812750736957190842293099087574178099847894699562830160139289899169539950460652230275693125309442876576829382603530907214370322536008132191700940021407244055945797757131905271267135145359255380624505084134325211862089364279201458526194486832441326297056522415301220500177014095059730843270265044317337676681502217932425843454655473519070443655311883950906572720858992647227042324372729921127003828865411516386786783645700314249610648322979370071479988851607438304546290804498570184692938195640933236497621235764179213887115522476419403939003201610982883101534464542003834267440418987396703317750159929243809832478402502291448172731767194456882354607560100942919440405368178560216230695455169449745158593567783588126088967382989880228514981145349926635105627151248736901968267335321509297275025722424507040616508658999181452969762466798166108209084254677275179610946093762006158969023768594782834565778526613247183248557793006784255770679322906743561403843843910820324355076772556170500775182743510777575321935985536662797443561369469856566887799756788206258162518881618582234027267312703151730047172858519810152418303569492831275368488721666373792303960589739801689669566651695573025527927394911092834443151034411662967720802182273767064305829814623234648484265209002433578152685764424196903849961118111513118924262092821486035132357464831637874976827572199417726906752833714634278301540620912985147025976361204026237051760403238420058078882156534747134285807443764007186546060705875561283140692306508809544815791567847363309275092683171130643912266957797766628228167426086544349984155890205351216786098971715140866351783383655821541201499706501183600720458860046796454626060111712591430172386385748513098183028265653326610812198665305334971336495954871904924930966638797119770395362215381185778169560887664680609420199140838418518768126775000795011779069720493678749887293704223449105502659458220799072984363467555169600203975281558395694394264090448909634386574893259550985804274354108700171141871335090697429671273865906518562140752009426686228128891602898643562213241116954874549055761832950496706355269891392796777803554636724854208954514143287762845395682540177013118710591072080012538647225357032928455856664314758333328637301089948804292956908804500623170151559168850842086855811479542118132871602803168245300376464946846091036153625402945301633431434614341238848817972386051778674548333364689578101899181034897959429292773316866644716380835958142243307386215229491933450785835712097209799145049241424375305577223076770039014897098381593270599904073848258012139373739308352439740757318332724059890292304313092521105916012537099782244616314264267173958153040084752122867221586101389640839635190022661171375461023177893880972993910916279369510667876770185636946281139123394345807334127228538714019104379575441573048285766399638591665711588858330419242714077903748318565175504037551496353810094090761536795231316297003400120642572112465810409945925413311407596737688910024380862099383195826308018924256027197850328245482975457609495520349674423893749262892234238048887807166336939728332024570456273430986392232855145480893651600823551872250015282750867296077042870982326256638498590960386864035398079262441695645915767665789804773925024206040044008291170295493994878777217310770753982340552276602094846697429683163044487446515548856430799941992099400353653051355907480608471230171307738003194254953689959277487470072369642550137707117180159741124001944193578297898493574368612477107311314140921071225343558027709411117772006268295493422737998760220990874155944950588544100616401948833897360190790335285391087102413887204402782838799444871234472333372406817039093072495525626825810483086556663226073428041899862617084896403006904643388339073061161531680107393408806154015892419472848850237922989013564362277944838673715659101522869590306170052009689838438136324504787582683966942164470056994279867436239465526433076812998244148403676269682830929406167643075035483271428827616145771354720755402930927708216153095136433069998487728254062136950210674088866035724361625755511152277281747572752402946640367518730305039675688515927443153196294682789214737990869530062462258105001972080052123707594472975133663851662262987851919251847689502224135311294676756968584654374102811437398620767598553868160731321186791927494076505880138676839399995314724018766589321389333952163443290049379179989858431109627296364273152914317863814615305656367731612546148175042864659284486836513887656972954381894820690555639611923065262552995135838082862796131704763565489380790248509048358437926616845630718986757415562097905022873077281132917967834648769569772821727033063862287212403413949264375758671374173303396288874814515636572449800886809808788459726143877317718967841732888932802631316059277248139464558649904976963110388262096076971128904907440006282575081620388119479778248198949356773577943102761942602031226685575552340778851319358558484007320776220447259231787923198833744370436932697859652817756581173504175900770344286889204485166906451653070518290167769452098061279788310741778203428128720261218662676658270192067358267940136561164835836576387945188237383877347182004594226948613716304485199671846073618449745296206021725476656906997202958288806159174736676947689290073107994140624089771660174483530572343911669553296001558551729855094204562610578137786737281371808825065149019650196183115485518417739491455418847825741442292446662305836093399873484632682405766416112684804062734024558101635374648954845868063037116197557834989932524224922596183582772061534451789465498533525198844897938499951117270572136081416223322952737191060392970012873283850209492596957019839353772459109778958344915928313881834127190362729947438814442961438306282866026263384128380465943830119624800153308274292989422380094196639700810059001195997298681697736605808613380156420492225261832685006055810773417526670276127601490683347796086517569802182873970746503762069067512560676357370397259061486761431785343276433856882337332422740697563962163903453410890487988292610576868492510052467221830468712173083517822376792175407443290353341788392398801888046428508763895533834163834947813012028173562686669325433631866542176299942316541405688578612301759634258235915885877830799326568183817564756122079699803700094606426752630606300168272219262454886952213769452202266880619555438402211435958626121128642845783043039110081705583021500977615254716825349203261217376250270924486916106100144250301873646998126692338872414737850782598589270021219735149337697051146948444275202394382436124464811198435625903903581583110598293778289954396269608243201232955524092061788081424820043031134041409781663427397787563151181988249326076256342765131140703108663138930274861267877984897855970903573986062355013914019071691735173019938007453662306355340461921406302155168349972359430742530327829900024341531774911533763267361896438993247469131108135779165643613805272354673261320704527699266404012110622354499989438216393059717628304428045390310900283152190513471853370432249472142220347871669517138469977744349588257515240520591564406114801303118502679409387128016791950536066437963085922577650257399824870368297440804359427955958289329470765629644364905635619035768601989262775644604589482282303492869878559846025758983943777845116988304182174287948994271487386030314623630352927094559612933298752760552425114633649827718624188217899207839765175099707461636751837342081588326151480763980944013686850559422801895192461087560499620021698633465029248045550436702084378219136487007327522067825907048448841679862067612768623673660820391269931613021009210742819556187749555167968752116815375275610634810789049667487165844657333827764721418600548670870208987810637370731512599060344777981780145718241856747209000926641672879819913361757416475023717243196058969749813280525184174257447029033989465787590537695452663268649219395487451892648278359810786245969336244640313194730585038740040917906403543365125420519131374520313304457025175902571308809699960705688342977030904319568279149927769677620303729548232582382949273606986127748091526521087980502519048977749486953389459678045514213604409196075549893734737980580998667052680668366184596934159097656879584651124823187977049832646971607643468191759462238266158176221711139224121064452472126567210150915466398553350303526222475351074346378439259139791655678765859895236523478030988107722356543048835226441598249270025745914801060232829235307898159764502795910936171786256347263581619731373538764242419831350234292628937335007907862425825261710635743741520654417008386483401026793520170486348566946645893843111019378218760361396493617292799914877982802844947601166709854505049682691971619850909749545329309281269442374434694506970005114243678555185578996464242934229217005856061352668932772565271189139580405014142501758553611331421160824265600850805695273314173357079884980142876676720563041313421594405479149162245188232074469138820870368267858240792168765019477650432103062319312246644982483366844995011513094183569262699791749637553299521365771673818067041442501359355916704378472814938754913076057727472646834539689743084026992675544809532858866243592596068531147319005704822086312122170310734094695105438716285016936760498894385294243878829791314179701167199605147499802766563476303730803443340631717979174755380460233864970665698291032173601143614219134083035388351779248620591600406946327510583737221768516803485055353625893181427664273405917447314439346322345277316249272608848285433378431157248857923262845760195445774380285768281293898625125972316266742945806907228608138118944153541022207483744414063293095534058592533746634579912922860531802560485207680862269773160407967356626017615651063845799741430642590074513643202265886355789774569713078876393849752721371280477216085500594493845950403766343814888299080258318963034050315195257608015482995713258770835798315466559443573950874015695737109384909127853002988725311900147068975878038588843071064575155863203709570546719842252065118132112848907819473035773530113659987400540330999521451555608876721536319950379474687148844982417666238745144001768021761997015825879987848619352378896386586335971345613488924831301097353975083393441667138608102492048832885828907483129374135930502907665570888988549433483478391459105727597315993025579217443658854168534922870384806614516479503783859123560455819024932607994255253318594636858394734015616282699078027710121109554551681030446015605055494641724004945553809192262598703423693053628999596486124385453465423284187342911476634503998125637555174348299392652518380021157339116182319938059531286455741692135705801373485576180334061519291663167562680138481367178278897096171808854420522993958915836871898910190613004068862807383961802496280503833903258805944261842400900041592860339990480228250650510903202052248208833632491681436028149620477887011257065271984183013317174108078318333088184177131580663672938787916881434037362043635743719011701385720778729926956604932996349210451777500124817932878195884531184066499137788341578689939322325875304342423805512813802579655565757953126357159194611585382850689955398299826123278224450169715614751893185777349581842921683055914683883177816858696966300193741663645225648882226671826485114698177379434251403413383375181756560437481493063663012448404869302672341992079041625837905829137165819967165995571974125897520316516621039210827424701600959907543310987119958859101566375073982753697021163828110047581193142080140523377489695076166860111004242779928323622198098072740786551784075418976390438009795198425974482236082561662322878903303377859587491307410596129533968932380713827027561030635045087408478203479886454574301951194820646269122077219605917068138708300027237435161368737974604292533280107122065407179096077768575282820980810910463054388880473982109928981995391134319952007879479597690216784102861089525236049581069837424738218554751699466435777040109930403152725133263755348664961772201071225908327307381099760140114674947994899245205586718311793665987809063963284613239051991047977626762947395531834296072317691780487879968265422428560239816807647457203342352254113600218325371973176239155220322069600844096373028011118665513561072215714438700107746164925466566473540804969076631704931150068193297332582559980290259699243928869786508305824600650302136202336719275423527911758157399101418431267060944925180140964194276517835631593974292025292352364642839673836667406561539842783028666864663077843724201471645891989607053499962522587268562788491756536293205342655991791385305649032581522677013104261111049836720746318656578903284156369194196304440552599372808152289679018476200675948348636411036982276775520631165256188466046400685683040231893002057449563809173128464975429956299881352661494056285422619865406721560517067534505250061967290079531457814760080563511680681659767394886833008089697548914760865074416597643304970521661715311269507640398729665193456358517807525804200583094534138672899465551868400253687403187182518107024435599282584296765510079302133665593966336140269168934556297183618003138648663847511331430559835575461118307346541142696162786547410778083467844098909001079847299070677071525617652352674543015058186376503865002989406758982840861950472942496950316459545839523067269737673224492753277054985922189622004702085804879475082126750264351443237638162498282748446548845518095938195909222046353762955701424730236294575447042858574106425222634044848897081134740642673695474325660452719321277888895027293874775886969501669720293846230373238529321474861108958011458284182234098075501437996962734887087069599911584586409432484249825681365109403210795840750483458975937315981856100564574596783086881655578986500868242263383303833428062525116485878523581040253987261176315079122721069341096819673190004766977690013724348217647571543331968492718959178271833199106519936956827206025822304535473097618388326325016616783822394627338531455074348931586090574557757702566851368630115606455248147941346431077529216754514395593365005620240964406917523266874965664341915880526897244702910603659253194314264065957435109379076185139639172452654764480570386293373644064497733142591925917829538044624973346898520746961502189291256218938382700542909173739471036433735050304285108701092983867751651798475014459966402596757869644465582503144708828218687533411377040561099333321011242914354874282074104102651248131770086852443067112052718762291340709949877020541465558733454388878733659157679025845273116815597118820349209313828820556646108117541241310547329601046648183588554666136532811955802690254761366142852988565640118267025020176681737927641179163074692498175104130735482448392446250520964865863581177005924110477673385178824151935538439096638078492713684828044602914403906350456531451570623060695357347916509658745135253768084497253084272103249885338883193122937227385178904732231030962960036718756460326222196434480375273490725311775401507690397465490859466105310681806957226000739741823675244700378905798897982662243031367418910226042966524000474214588281176932952289350318653938150481827698827663194247143122371873815456601571900652677095739041600974089701827329002167042265537486011088168423625558529060098429550906544038103526371857222222284660206898792515161640663092552242378784166949129973781598267803368338098922088303525452893546872045600847780017842830534763407595141625800270155117467219788669499252627976025468443148477620402613126716942275488094673545652686496718902083221586834717491878725131741874739174265303703745416604640432960382695577518005629236339572192687741034272162839391149045521127379136730367517515969380630802632389872600875546205985823781718483125317419932883484377631555962268984894808043427997752548048284640253409164827348570686738554593877288602566778844884862568638921325096430998926948727469721589479947731611811214643513742177593805351254383601474195195181565460097027315268802043644647364314025817325301502451127585889124863293690149402761675619897668496487342519072385422103681889032954383854096470321899159264029451137127956200369615192341682166773721627487196408979024571991766366262174125389826531191570896315429404165156292709953428746457340506061068552378304594868825386144623815179723383505293681658386641237597254339444788663056383189314857547122487084452622559624700655751435977574847068571586363805685263484611421573191639439277449971344866832495515774360715750300780318186400349329752102785749560680154754470566493100819257234711902285313674437628378444457003314322448038564201178128561579870615595564526053590376018480347090184427780794387760436149884227229221456992332058495560038595626696609859898323309800971401940182900579743058764938880431116394630503552576011180004893598595149471312081789844507454843794756939384816541479947187408294142038419753545788686189340855352725972209072528905010850443100055708813650337807651305080071885614527353067671353960453747988506897205079716326577882728260051962069379984577173779681408959164242329765748238269165927016411618706763485144221231261004439166382672797497073295500614811532615641025623825745371835053932608965647449318600089652397032735675826180872941186265912859227445153103193722448644901126970844896211992514902403803239292205973957066446404088786018683631472940105274647955289269974321522611883539401003849558350711315533398631158840884558766142866122228756613819524592868908661621624718259377574728431007846943956441917454720914596137263934666815831761778352874532665628481632946133251344445005474745421850215712081845111199852853805829977361041357589566675555718188993155424484255199806788352158618437249625709280864822502998686567002819344437989643103717591618035171327108646434438998308949460451036439950304104103715347570178002035599592712230778284308847186754545870756652184383761895693243298711033860634471531178195710471038062999319829684669436535587885088849711303406075948117874714055328758098431887208203012173363741083429203475043693056410354125781509023533891614943420283006085995840222681813437413427215467868727655239543029027821140581300789235668541243464586991591719009578055694639751920569813058401369380277351195546357178653817728210631091393883188003545702912432123451963785704328537261742451410108989264893372462707434959139308779538620985825568268937261867988383398425511317907796894540078295823505336539810395942447314242540790737569852723214805776168376722123667089817049845802878175506644857834953541219922231104591419874885538100202348714326938874026673661660673782405863010864694554105654531564387469271421995717424390375526081282842590620178793357159734734618463804472570204404884994142581637999524925554910133431227825158166381934202414862624275807686670050713430820782091286106251961214593597972499353618874484709164836936018839317689365775886263254345256516213713551988157776698757279175924100216233607991653770736021114701701931929581894454398413724406164856911392325775851658048647892075491869730339800172037641580366026201350722236560463851733211722896674702250609070466620943470088655715616281802586612148751473339586033467704233806727057541498127191041532895154751458489306257375870166471878289371518800693760621862969055464185270116754592354498045869856751969354743049767305217742961508441067421780632105751576879149850817222235173061285643053169773205640742188978403243934100494769254108706236308894606233693111229270494715358362267483501475372514624552586693546945835822628575923200682821606597143317656124570739681416733533882308375594055360941601756991282409739462772230264799390785174933981058320514429820603998244312816903875531850255326173851583400123809449444412696611247192041569743642354705964410866087481787029135622067021952214445657646309077928627082756173509436803252755654278804942561743471130185684508077179931575720580285287859023516409191381316400685280331110722227679716442709151531498594047566265271599825478585844008282834765533147461065717065591461390488748473426302952777670154277657351572756483998545349001222585302257364347885121715558090373685407703694999238284723628625801682975611688817867355687212254709047541939781157982821531496123760430312853141020775625078556762722745804820354498855469086198498405860207475478284187303563265750227281583200163481146941081265343350754808005949406766591341613587842212052758078107400251284886112298735916493387609148745288319549597583761696196739390659630728401856039292975404264145886566086762024805393507155492174239104570281015151582566533855850097648717357247432340062229964717153003978746236330391460324825441254389653204807187433882062794837851578513966500197317267410902467126610062682854304538369981463615317639666696180772002806882748612556995503008302293082799717371931299751147865735253099824900107468506594640163693288281113764111466789635544410156736917587933752341067076463878055493894234131494756623283676784619443328247433847792679756454149209835092054720288375570759043439668353745013791318992416334792078086576566688703463296200818239297361118879670708202632553025100791566119185920922560191734470401453035678333121260683098323961941684921497140293666818085823761139747157626066029458758625825151392329314599727729489398906712056444600539253781891953154333714507962516413956583241693291589051609602745691831352469610514417377474315593458640667084350652368339792252266543566767334602149877117158342188447427368768632177384463937959517215226053446571287504121251778223249238231928800873282286163525291240648651701909878295266580879271851681588130374930557462069807663958513967831730758191968596475514344373138024284177048441954396483324584195009653561781529343387879325831620747628475553279957197139936202601965281650625484823624107581434372016512566706959961696267360604615647364952397133956501893938243687225197307407423518868089999919974748753373913089639382460708268489302267130536317915457084166901082106917699490389571337002460096876234719784427933052892796489499372837112451960914414146117664779029850930522072458450505203891783094467534843491672390416088502124122886421094358620249688877606592220584651188117831118833721530374704865441954285123437920970163145387149870978371833291242723983313184781918032623536729366090197548643180436285730726238903548858774840817298813544509675037681582493617743530317128045013305708611563344832571019349210361297899242768076843028331556033771624087113268338650766780682827164745594026575334473494500079749125011701516278770464717480864209017657724820557678933092307074569974049905131607187072051204111042097289085093434951309240115421921911235554325146228144453848760797674388667920761720609254172425905700328010856558699726396728146057215855183183673846637305312622061689795616717992945408887189722080359620293231269809186511193201535593580161701043090914703247935387562941023755115380972869428766871032482061216607243761530355150429871641079729485362564773928884520828379302414580016276800882212526558840100531478004789447998531974840055545917790850642921017468573153662894611635884802368752791511978329830928630069531212912123774732206389836100991928963119132674754026873850027583410716264471169734485652677322020746878336801165467257094130051440950126447617945522704381184507275391550869343305513305832318863482308935975743471538843804247488664317494850162692358974776244298618718020707930673372892146290647455227104906359167577279653158955488974029085065306349507291699878529105759977599051530984551192437027564907317277925108996397757414915329757832245802591535157991102601800781821405866911886898542738613201673996370418823486756070319631672421462266520426082204315774219209835634702563778116660654715982460097536471406509431546032640551604602738287213562391354702970141749719035402773846003522773451367209606759858516130004045114324924545412723067718427210671445723068008387387362770485619085800812093271996122351403676067891749738622182024080210644581974785736963446093349481654673417533384708233249249014283532985280768284595386368150595222735461933724291339182873084757332631979140149973118131625609854586948168184533031600775010055164199251326494516521427110071140672430592166907814552167618323806688773408748424161228565212947588119194427826106858687357786891846324502085298549779949882380180127461043522072552127457217025260330155491136649337727366391911874547243358858654209016569365966277794008985242379466508407493653461493348366675349766835603905828344059053426973012685089132160802372273256791909424206192054141008940986882479886435893582049144519643528111241409758883319242837476017863573937743948417731310840380351304968268562434494575700746111809260352872788357297799844163308249446580254089262836063339554505574990409164795491597411688985075425838066979433766001412029133273510230764562925309690226112858328458455613578212479668916361490976196025443686816535149576702468900387100783268561929697939633722893217485410987233124415943100040813550526374867067272845679033367107955299014459056216460829778236582445368853724240084206529175743765176474426184410293196110557067369415246167699059970060051984437971467296030137927544840637418518333759020456356958564910084082826294911246064064353961435344871919484233221292555439749268008529384512254639748962071106293053922753510452193800661436327063142337455363322680895567751673636307630667242845218329012431650946166912211774064084709136451507054532580896976670887084908617124676576339274953863562443198455035565699405615587663756162891730100694750017163367227388834164343642504506053289501323074685264172803806925478764025503271138573312618430735772539915001756206697310698263576098654440359295625345831816909588023453489961319579110625038515955339345621125978319396672451306125406647809067527464252387317315605839218723823631914267372119083320386162761902784138734752136583607019618472925695098842903753236617120542931054373851730277890165635648433612578584111344251647480654929814119825925593192030047500486123920144066725823998584436520229726460964209520742152079165248585481190488274555692548892073016457877297492780236706029672824055161459746974280754310465317712220240071098586062573723827230004758196496516523985268648665478230621106274699223874043908102557700890935858457613944547148016558191385388368220991704267555311108033669249168316699403112453027725479959751963634520673394841003442147175921076382132197634170956984824501494471797003206686127994130453715224062661749756198389037022915360762085834157837185848508762411901842212396964780915403139757638818515236024196889650117683481084818658605919263965593344015830246066335029284095932423457587114524598591317405333134213513979623970792901915049399473988388194663538410415382660614833052657078492366233170263895770518195553808851565583992885236653601514656155718818361290774572801299699238450418197922306771188124844844698028885110153406780765688280252705468242098839274234036192131709616753582314845033814274380116175567365016153985117268783106189615994585977712124537768706251683919005482626070526592248047566924829920503721356374019565938229356097832962127949113427142133575195201186331335896674704838554873092510171999152439638865520485882649883848628040442898994656709429541106778599600410270967499905919541538942105757624392678299366400743283632914154502283967692989604646145318811368115016954933341643467653442258444497373319816259290009210775015848419811879492563797467971306964082908202022642796950210183371834735694552219322840552953944027217346546947612879408132443323534753707765205231086333913776286685387041835891895835040607294043241248133003882316008237230531084526520393708776628798268979762184020063165592192254490497791253145743690441614510155247534401497700693281603927436938983511235098838003480046230632432500097306991529746658023504950331391969262659113533373857177974855744197961858176956815760981495210679128118176410437506707046506344436009088270867415736470991788877438433626280631811427697933551703065437054764791968769535898761893295607777054446124535068774405099063401167786709725500746014191591230092187282650413733378829112253082933240205191958527701324237892307645280580250168321121754546641002037822674148764276285768765787073489049197900691839970151072576571697800587991303431366127157581981257311622760169438703640031688628632374663711798031757726830189676127746411940445104825841256598352934864778462951623089076335715135291319333396655266377608343933334766636194044099083865428091666783589122818809722514855539319642057315137043116303970991464318928506168372966928227900157643513075623388722952431460759354229325140747018723977187105298468010636408751730393984515387568593537137129146452465246870947647960385652876698057730384451532546189734370111260607512996566173179050237625468922366719007816935304241236946441742194281634720319076865570223177248870421194957659836311265402359474951481661117223246048678517796894383289992317496304083272585360578527740603101724490190949629979623577381614427528131550108743789593599811224800719975695281952276212716333764219244951632179866778666714339770600076960987413911166046546141936876482081099379974441091615502859490902920168826258189893356339112386770246843578184350507885042987876416218937856421960084798486740842097139836249317945319256734213787574961045240387284447185453731993534721934916796661715413547949451871890509005360174539905229576634159912466412800832579569839153313212771037736798864259889762999685256521320204060754947117578995364119309348450589990027500364822818754795041933032138979147151363359936710187563493818064710950816500858829317879377697864483042554007352047238256160319883807938988962815950740031586293853826780760241026926833008244169358661419252393778956824803331970990035522112950251373095002266553287053964339223200935236034755203614927546118034059993784225037238624659774989650216128761116071888043530166986986243460250313699392464821575786824402659471500527445991573935032235020298833465503196568730036839182669616700909686219603881391316229076545950275094006290672469246565391455937826117935588258045664834175739492086614505985194226527295231049397970901241357091052120641979199822538241611665487478639253430407483678351276916557465885746253520809512034047377461739861250499908571377971222249544020871530447924016098225494590935191918114806281979476806983239121256007206936718652436759581773923111965626149029416156171209256500519952025856611714249271499906747597940159041977652302690058498480886378313298438476955575691944845188208036611191114219880980233938318540670727192323072890279926644367752993284350811861641079569110461569336756254459159628007924778280848375954922264911171930248420817309444742725699219452425805407240468043962404027495581833725058647181657688272993956776897732718223209828873554145402686300673767623548405583355345163418157670621838092773537072858131002265315831919906789572375634742154010699548655271762842238731710538950044719952099442715984524060935869840401081759693530688022980385580277706697188516230786488385299568309570697267324009465709484786231164356158409901856037728328924278051624500001514535841053046483108473879477869750175051783336156607635220024714020039661452719802017909774197858747221391443395679231061475914269298599422476543153951793642799042201430303501954992279702560183736595587735005888465756090776212214283612165277158236525148512789829885775811855311807547734237672034404501243982813387088726494143154073122221577092895410549028636829134789338009675795528101977743412936823019085930839356763278523570464467457915074086207066308505102407146999220874311542591646564901592766510438559840741985657191013005542359866139859229628273703351571393202153453268709588771931483433026254747782663265705573894221541800523421109659757911942873642226224786363368788407994051748144000656494005424308926765670260003464198393947683390255010046751724449566316104905735922924085237524902545129458352225861343755132570804068348364745281139227608497712690042975836801240784677263661763656245066329586557451765986231669666068758326989033481602160938935834141370904337069040641428497124873777782482865327153460067955950341242390685331990580582279992168418991673634432377300892411648309034774427129332795946082750988551321358304811468692267323713257717481665594971338160059432257023418161658034274983304723465821180031448952031849268276980893874722483816117224160649767878262008030967017356899420028534957132870256340474496813321507148814754548417815473488417260258235274220598037043345215932950063821631769150513402390482155203997872565374243829456291498331696102218790019959809440479336330970009684330830982392928997746681446606467305013232901993425134906645899874041362140079646681790003067232982992334763807431698014029473774485412975324714290903701375354776923465503786208432797039999164874676964234857766020295667456514787218918532545045806574738984097663844030611365573008510046181202232483321170057966469376092145898044637416440934949956919064277464598501559106390438711962177094962097982819363221888672272921109316224782323825493641950423367171136685042949524228105040089940624122763254754103120831879228854621645051535486224226301705297964077145239472179970652707533930544497625255812126792175558028450403943481556010277928435681433458683853902193936263443461454308406053646535360485319388293701682467448282841915158060729146039432315031499217745381177314714348768617622977397779130065816101843144169971131822473339975752426370755206367332645414774248189693921091698937896235812598682941587256013070318132638539905912041889261714303341345649047396142160271249468180191143635137763713643734244481176176665628266239426499895055003014134961628783897382545275251801884323505639201213855604175839514081771631802088912317775630557404621083447880342007032428045835058566239884153736820111940223484461658361847398083435808367349436762176636868345407834958216681536324582990290756444455039149837857215953547924152226747066472878830667075957702501825867042234963451789375832362728785774074005273883810365612237033840222802232203666243039524364214768216939223985134201692288558615124532202363329667110764085960507214168367360644313162051921522404421746921312554817857136349848484500517698100885184268719742910222593165978957546415974082711104398043404171512473177841976162254875419469650631819628894181379767284275301852387024002208155842047208931491505966608795450506776439202791801647663680766925381161345426577649745502485094218167971061122572574003623364694863318695035626803945305793860328388472978016647279816045214291544479187681869536646355846610376960893903006650008115754508207726065772745328046572723452235326199154234813642315305474933696085305761524548214868637629320574696886323996560014528889600681946155873389494934839915255513429251151817848243601000307677052654761344846354294529486770374785790961116648144156935107385770203069602703314762165124289253612172967456964305807638848623175573877097011458807550523395175867212853168263060798709153910950622202775896149526099129423978564544011889694840298513417320442245909951106711510284585362281953678411428892957016528027339598145010177685089298699154246867724516895703154405465328369815771910004194285096536999079129786685830759167412081236959563835272117946718914418350651187492504064469746420409639413037295675148249693589513037842249450204481319355215791896277883546117999604852408345092507467715953622414397127652182650274229758735893906449473488348290737117170030459894301645722791101673961771183533525641381568060648683187143867213757385294925116518267198889041209322569307920226280875301278066597240823839047027004004204153528676680766928632196079607930422730474482223085324834165832248359227026242563883908306863114904288814670476362928057504000386693667296053084601504931646444872118402634701381336437731708455834934000202041192111312215902472838484538564314727232789898344208838401399340976767404669135097900963640875612838785242510387548965591073748791636526604536811251079634747595681023521116197919843548421627882353026124990379150263489225955945789260898264429573853588639530687427185823184990438545382392035713448240185757282905960336766057588931679504225401636207133178623784128515174622085802414629778528413217715247421792009944017873198972487328156428913496563626970285579032352790778211218220389228258497035906716543171925742572202044645516241504290937704495041925813006807949345641678694451922736791609714089660310883025701856996030614903239881949537893721065706996023632321622750069074403532071090545463927221224930201000087757506126529782523864374020122912922461542040612364217760918534236647873706569279642965653008216244996920177249463994322427515078715753492202034827609440714809693097516066098227195107884260965705618152387927602739134342613743005372037387024997548083173116142036857605890337105217454794498475155696799411111968189659974289987555241514501421857731987433284823682162271669978422959770778878046789993775634963659569047209783706830207264626929175358537974234463128624237524471419609460815612403608059829536505218865164397460891804549172198654289468113975746700278438991219868303628386989775330783362918100321886301865928242541787852344119636629594278388666050754991378889594670405968863107258094784052643692892252349946874023267178768717278104391371233678848616873413913625978671439230752149305720898078041750397500220688750337910998961230599742396783771289816662445669952850975908560780107928252549702471065501243641699698509461551903530449668922680535622456210887412856556824538077590062576883459351424110673945127937153460737058869215721929859917918898157051848632001970927710497663913962289210844860342845923759678021198259977776547543418567528936547543234672609151365801027336390002021950020242866109755010604987838061497954839414562876525607355274128001290869045460377053076635883721771598557981467782581865101332286920386251474261819222199105240896810111697379966691448531001677915487688560656422682843360223446080249529666313247063827899648576313307679953315259768084606785161802192462544835356494569093240881328160743595678294107798029638890430027863616176007540476947730670145763693159129181628922409873844603421167773976007623009582111150918016329497573105567194332650582773073089475480333604067225939555691737332871332433066003241717477024748101687002098158106226321784991031393177707976389830899582161741560245684443356472340937079226162635711099738778799754454272465806005349242091934171509320412609953181194444647942256612861376393419197156743288212017677703614440186524860084923063820749883868714202568131917849807171536501118073097944563389664578638979039736028106656689232164998224532216199889113255960561071176777045203270707851517054001393202288979786579087321085611183279342795815583792706024493368428042513547635864106981397688173473726318720009795084661352291062483114720797392371448676360993037281726626424085755543553463425559429257457506631974716994411293255599242997391605425811227506759766349273207727783781221710959091489340737238534418308855338843467406396676340225097180490690859661157442818166723711704277007602788206358390613451631807328520919554714922183526524440127255987440723172508693621825580690030228984168922303478361522210480470385885752765158398025113391762671285719253788110740050550722658463257749334729660550014431216485022894924455952289913681386390948694848055654981958646050545842876777961429426062319683288703542080007373964569201976894445554779819185289043219920984996112494602234364789367847246847554890764831597291086744971147700954158449132211207398755143473840361963629070885246211388301181588562992344271505341737072515742081761899508118502092418467082503312461227049208776637816596615298623045946587492675592789028362762026747899003875143757034859756496144718151760008816919961758040422069638232356726404366306661092773008718079239550248625941284171806609446494573707418661696661583448899251180845391199391432324452028077596588378622753344277807558078343724658832544218427122695120735376075165089283477771070348331775983088843862110496533626085267560613019664348221222617372088432924657867752195903204743170066983433437283591520225089585903579224596636298824022992614914561882588045333753634581567715121503230949178886049721147622223155071442614495886015198092717378998257711709267538429922933334858365214642504755880916844190475400549362562263309563098173491088169599611846791600304117613068471417365374306765656548322909817305170353342198058656286805702915700720919384809517046923991977827890867776331805975066210145019086709477779622833582631139886173366218660611082929683651313358138869073662386043858664339723365510142572469227447089580563188697365411214914305073085329415551860272306787193372027181855463974951169779940061816305512469918318886768365266647857304050209832703083827695638744795438662471680502547502118467423671996896857625412775215003640848340917907147804556354455240895911261364882971425213370397138231046631295769014502153610737166456987809484899254484024870846785661520684779149331917561940458278354732388094292050655792909609203521767305373804023562131950268319632760538102608983253582042041283921160513389668510696176417438340016659975480848130613484098419573029411362618914810509575756974403555846445038342337671180732527373491706370819731301782696791445833867517026272027333526272489623925970552281745353441162824900955341252602826739468730735709294864504850581441543546479028107876196283604053291932288401419398677498265822753202245161884517227978699231243559052122646910248602861465773371285518813304578491232408282815311615611215322038184399087202465670546365028157956075782499629010502071137657023219024982214894353875517532101599566307222388586702382406531452415176254592723517621075062262954430769143621879729425257018229482617074141614365169427639037428324028848145732109848219157614169788467963078316087095700868471878790731440202501381463492300016466572755060903705894435805649492627992190315957042019269119100054284813683731953390383955507508752045426162549929531167264474337079300148280518931606819784575485003818229547734541608356799683801052018136507172370937851036595450106750964171286178704329666268926532554886569586884928172702624868558768354616140125539664825093769344236425702015040522464770431127428888821584298209332543322571707913526099339964439114033384088790184222802850724849671686064974750262949136141386941626950679875198298491076811423003081102708921065145269692371655287563160936841980216887029357940077411641165434497078979248811976419608966521990361867357338395724237415679937123067582694944903597637019118035354554690703036716719483553126637938455837346635445118098933986179269140417631204117493965406309615758359142424042139502710283956691329559332442312481183199883448090072069892946306062215234919378494127101581533714184565588232586842852937136004630500019789383763932852088805810646891449771064422450044754667685768362522299077158110176735851267233431132665126035695527605679174329207722319859839939649655249754141954515405097516974850488670480040483684989839063923158908098476464813040003973438235634699071736976545459999929193255139632779647602688276683769392575292724248295592857795493285496418993437267579968281779917193758605191609986836157951449383442703514697145761240828288259799228596932201695087404141240417916496027821356707808278122997854434160216082700941296749284720296730993127869576584615545468926249279301989831082322266034579419205368291635843576832358864130016404972487049386432419409412195750899103858711749621873230401123166046586349846442456532168694967132825000090654269280742676241469333681757406185838052136230762079111854046403908333850678148899199373719581837542208935538048907709721075692425891358243222164772304473230670923624832571401087077231670420482941818841076906148915836981471222409121232023322930334329081813412035918915544322777574464212804531754306877012606096213586436823854100828977200564083975200039000075154462786764756959246522737996460110875391129792238009008203292499405307832618577714217382351851627509926290628608852487603476471353806064850326201382027387865830283418719561679491361306296223116426081352770013205760382058719730966618925536047577221974876724262636463003468085974329841206147355955453596153390814412615316678213072546595882699503084811748194206491146801401937121002129399898452910400236637512413480998196774437922479251343258129832981423259122292390944313741540996190200133864556236792480670482224588285056883350263071267562031021953056230427311932958996501061481229379169805531608589346322003687532157090766299448026045989826401670420878625978628421159209962863731238251490923442403554287285666125665526749258084958640858980885943155813319578497918954239043480693313811762001118679295538431989172499688601795994473304663047222165615588875016460399853446775761296597930361446247147982960296477053021302106991871182627626341008155495114743978838719006585991925599760979466764118053311855062662022526776875693152882738153206849967841274355519693691240200023872393688874546863587039757878499201715434055993398117912157719756463148019491950100969941830413627908203982355670039415685005430833028963508788332294885646628746279367157812714712178002483452695601611105730656689138469678620318498877480551448753362607780999486761692733265197383517887887045008242115838959942061853867737575447276186387981858098422001404413017606645017042317715002701741111732428294124131720311971799674159498784423621678604106495092831709193679416595333311577216182968355651837080632659543475319051326969898775864570940802778248076785556125441942336712950011351845282575564416231326354739586148703597705438966225313214246860455936068353352383187850246377229735068797983072061381491334191571518051954802645946115732719510344737400618388413902172971909525610153016279436925251435871586725820134593613020123363376821790316153025288307409828813555782374397534116445832628752129739780889363531991610871557273459377120687523763757089019527943279529395087041691839272527702103485246281897792464928874354215404955793340308808841116845469408156810677916606910300744260378434763003505016405572246254385984136086388556767272423174627285522560400534346062611628032262781736015439427500925595022886271489109750963087677630865695766635015661419416289713710961475274945978151022353506494495765108716692661782526680664486320302334318146970461358313079294765076996058454422244184338899255696923045459594314253770805268991617833189975104908583565185594620279459634243292128853760961762191542495136246242084284172473193332862674123808986544354195113125600668990446141453069092599933554480334467281892184072820451138262719797399472756247055483363184944616269589267909672488676462742737531494249598150024267182694781906026049458977516984410495529015512444646814361428739856131528385600188995976650654423408655010164027067781780833017493448866640724490780579306043485099907543520509431012874109966320067776390541871516303244178704559613252461675565751753491915032630423729157266755772332822476116939472836029981148352912425108678794775723941103828056616362953356790225715561947024322026432198189549467252768695820886877341958084646927547863144266152347278574159760978756041922268446265627384638907562925207179422925495684830885063360749364141503577164127085564659211475041905487857524546649571311149867834371823627896579730721983174563911696724044505872617734152884581069868873633632896183260884842430162087322149008961800771161517636267260307219409367571351812319673591662153610107929413296306581020175090194508333507264443302239427523020639093998826975441752495461240426158411590107902968227914209171356368974011388174425018447598514626985899637338313681417155566256008509481854069488378458955528627304116631367963336162042376438130320856673265650232833909761516096474655130522819082796041067804958324461799647306032452473304466538967498909990485607014992086287694759339629527609994518606834007099636519209100979258067637838489851227425377824319323923518474749783127691448411244930791726729660538318603406151673382735077126639155158409162699724889744884142147330174026185624038508019079290847325698804864294629202410852744933440655264749076990958260518963121595776451441459692289566192914679954004643145390989337591365354360878623547133475698534718931216015660934318784184536850660402608450261460014933653167582570945746626900170338151844252399311552045539161688988749731068535543450530410995800534596679582057283814251789662676358895884566349809098777659234334230655539190312867256258591086770623803858662016317132893968679658664854740700342650687878871105458721956757147359242894704813530642595072811306634588162850957342773265210564684397261240729338922589620549835372917243982783560592050485662779214973348983055010356147675497589295429034469926069495433982249054526038340758293239459196882713451214298265219258156826996428252152892888202190421384574013244792313581826836830594789915528786412462319527831787162327660032030837096518792681398715359322721522312826714924692187618407120371453556718569820269595803128782652872523768727299576362152262680835059491869876070225181864703437610486580611020876239493966575674523240439217457552122476282998151756237512847390424341884771232052405210521817170304758618334570953899883681400926692288929734194077004075234143250258081600947179099538665094359758868164023793599098461948395093423980272916468525769791649838003771171195556708162595410037712560814112993228082887532213514718029398927340854088904647961156954147416732321152093627009425428255099527701631995385438430313971280290499447736431290867336561979379633740606033360711432706849784711885490046784187444559009704820030335401118991116239770620248980076008760790158587476383856995386065162478474948978943715877554617576915614302289310726647839135192546299645756172697750017734350408925187046763671241604407135812693779039159895531009448777445277805736154964693119201713290703286485156384029999640886624948774266903872162393204237500071527927962857618188622042034543034245930579122356635091578073834804777439201384829408191160169944463972932050762906183646866938537417865542447805211058748172861685059692754430410408169493018309258232754191635785195319349984540317307207304037201174979194575254743960947447957738431896293004013201480936020842030372321991256050221575374138588604378658632996492912628438929579753558622939532737866793312587051859707156468596235197311843475694430880114979811202526780250183683707157958411456541656271176750198549941709481813990123644504345160292868814607795393789611502946881096731970370988238737575421945323824780650786711938976638765724113363144697453512613115599097362553964057347116393752548948247356754432414127717388400656995268311085692396937718077117063783104772495229229169552584158432142508635960559389167430316056108440950856331298791357658957406308796868286227764113727039079936161120951024151227075172176466450607225692061791289749170148606199657003708105138326614325065697385824392685700618288414880381139658363075958597413937098892782838177462026968563272267328816013348136280729367677487931097826904770025290680094541771463053152445410892880303330965033370866964439922864277693549107499254353932186714401938469148441133548775013976255802202327004400638944227625744772370166405757734538308167674036907454963569851073961745689558476864101914727994223519917666194987116636657354676133415316390145684655251263836098962390750858472401760749130365820419212589972274449469902728968704233681594659337822018769262557209731358728213370735857951367785693024707058560976415585183193504971614912616890391726677943636707281095191264225740796677757113042786736230673901664343561791417809743205965399462542652925502153572119564299733081125454624851828365868514466639046985036304732822294268541435316190948162045078055573586256029244552010092482841545314737392855039823665401905094061001727991386030279620308321935486299640133573748422738323809736322414553749070181355729486409874016376723615030322708994512140992968307489924482281175108194991458750843865963817629716985278162788728298020026361672244490781721586564716281573491437445262404318018793324820582976704540525789794519042433854728424625444359605889745249758052425371694098297077367557527753404862065951987101295989669428570281486907184533152380374621742971302583970532522996399735528615838968280773588642823270116938209352781135126947266718893827416580902750400077736153200321411069874920700067412860743075881950188524140547302165171010779563737635887883605455319367142131228135448642550849110791521160731947513883469873101130493559204420978017098872639020935191144285431730900062806662252100882820438017112091254634439045027271038435042579481566881524368350059197396552038424460317173879370255022095686712731117286077963801669377260294442287466993899654636799579703139327567101198177885693845221281007496679960169903808156162687231447552678591601921144983418035433382565588231914872991613919048565094362865727944218776825203447695199580232502759023115661269044704568838088607257067525388468446418657732110153863030530452251776067181551321891284578057234657581446469550590378200987418214983243378010601308408474068993095794304457214684504229963003565026453694419852251516754601346726146017650645783637750368161758024514238071407669287314420022017783863795227186426833326638622771967512279111634165669154883553351795615231900745202186551212532396090416035973407943518379681160816967542959639489424666416712596948526673442082274971619415695129984908554375378584678843346747721162965035442413383588422434711780188995564975068437983751120021563110680131341411436236379681247201956277177561828195077689811976633978304890924902566389055679304039083520642920309596001431718773965004550947215097769984192302897314637849474377291391613103717658287917613381684951636840577652270132408056214349431334654207270649227575668651175786807233325068907185145791862783443942415449500644770319804221627261030149706866285688889591861711284562261048217582895120517411666270692202934725619949594059720895489565657035645404477663754709778515874466437153352769025189863698470559412696173741578360932259478271339804494367778484226210789031707656281210794788769286428377984677883568908993244199270197847813320117741589232783402617704256803824566671177085962619241563691864811789293059848726761024919580593513208237585507182163865080986123003944433455024990077137967109465525615961589616001691003829745276736804658717434859144261715320684078814080923109643943366254367920339308066005751860115303163024778739737954370303161627544332926152194312783616712357359746343420193587463660744370900484425729425667161624670503230105215025850959082997440125043089450203144739209580183178093977411098929767193169989289365529038468638256495002052601832307535203016048348124822328371367707252073872146514971816030285578580100867516838140917401375245657479363551837680531237417828547592593841510292356682286749293484273521649436233542095596760986774030536702982371900607112133181429404995134773730644295679683290324038512739532552789457524396208553747226223083183136133072506043008155216193839658901573013816147682719254741128861282231038149087196163083413557188867913253944592571856346567962027446462469729143243230665391939366736856652924503033796132935281060155988218010090066913022600308380555806183670868012123078029708465730897074371011767775676167068003321411939352524302154932781681406207454549051724839148119548822349899124788882038965127627319628124971833678063594496813429923879421060698956791943241078955804801999863855668795625215052053092454242719583946564435516258839994763245104633940155158017937790642697549163955779593749947606864022982232276284653185260006910855789643077471959175594405483675419643171720616006973227021413452756290618618211589794215044471960488094843903448188687647558430073525302918451623570251900164424117953175649399493488783408319513251429139605414988539596096273869746202057592670274845216506915867004615408297518486958400715711802378046651512550650343790129858639832471565496032367571136556147773631186333231765232500517803608598173468496805162783100771001103598133065043116638529646829013696736968229101714766750892764162209189315732788297233708417116590568199902559734662472745480356007850747288766591474142998892137720343506128568005469930787488914160346689511818858135829410238068268201740403893625546474752212553323415230759497834540658207061159673776281969264221123296341338455110275433855171913025740788218116678530269457147525781767526282260690544584907816547810832844708003792589070172856606530966732094224327846195084061822941353570062460181160227966427659944883720984772910795927923713175988184005954228125792937777485718847238828083497774877743290441442448089854330721815601381630718745096803575568213560430328999863408768917442809434051869444707016203617844718196289271640381990580956824669568338584495715203113198208673082873280147286469126546193788578981871575527951790223704864642555631138527791132915353318717108047859155784180050151496242937535792936079358458650798734451724947285087266404116534393653053582604834558760285287571879633155306834054952119664959580632605755954832673605190282798495550815636801410258070287620043392537044397401613075993818195743453681051280775802862471901038354950405152077038774634806486264048733045096308615238605315513599205433433815069670390949315775996300423390818492219078247385504587769018495659696925669802846488265601583345796506322656344965661694275759689530876202320400765361658326666905471791213954407081744055044294165491632155231964491929520140002792310683285868111918995843106206793757682799397363838505338800745811351729615406697272216747609545109522289548415076950596921783270767687464763584473772457122492598896592177317737014526378971989499721503480446865487069035851663363012747153970021190860565757735489009390772679025377501232756994275610605286689135132363443349014955676440805970797090617323023817177314670847482974163322853235995844093234044567387224361588004689913054271449660968957138946742581034275304588983438524755081586492907740560077333895364245387167880741633183294485881583072677867112306353481465618897121166156098575852791220790175783502278487600130517331194544639206887146733413054443258405837757545464177548970560584866238439093704880531066933387773054289196585829625009689904329382021364081211568751819273440010181638676028364515549218711074151669539385446800843015774318767572910264945150237101947422877443228197528612281427591589650901637728041845335126356551617686603171057097730563258435427883028676413743273066193956235004232359981375860614680489589004625567287704625788847808687052749508412572316007114093442954549989925976339100742394152617414652594415150155650596234874686828021326102254866512942715245047368096919712069975117016647710922360496352625249881366254516149700275493474752682525395201850288680124462322543680054694412461176869824818635321550039548791042482257091634956948251149413586693481381651676885449307387068911406256644119283538615674907140596417553012751608008351648543222133797666490341154735211129648165342527615253501909522098471056652291512572225214739544977727964272215490334209193869181604620946669710645515448120389702017349794834118631672160581641206664265408885203140673216376043842945249585612053063815657843703028070538678381938238589981690504945791179770121803402303631862842539500264057279709275589812170678969991951084664555465841852435645918360694604856818802791434653768669967435009264779185406733275359147910245493824273106901906722250210641484322511780283426831101552982125124108139555304182118795999920635253616454474218464156047285830204538164166813786642983469939501216676669078289035956020789701876706510737010130673487464846049867796639646779191382279537686404792886500404828079333994627804190157597040246836962611500515372641753080287608366638269190346549520170763439556988523305196588279027844378576100182648265908206197408686286598268069676426128640388681722066756248732587874557467443614665957544298440455819766304942429138557527198011290492608738227289432582745302927931664419065649805281809495827144491708906921527253004631246544117209484020734496481892138211042475894639370835892218149405920132924527603263952997751731885248161974282987103797296832740644907424010362080074198234903088067932310328721190963735859288087600503237573682365373560111281072093099465507092298545036772225941699361127959120906097776904750763143160117799010217223236371589717981135420942418591503596261006521702064126972103723395756715490488864783233392513928857964435044914739858220253981628512285634483091498929584455004294149460278495872772165506072599038693226577224180694378441523536610490946644406319677571185345540463095335604751448173394371646518187118698601637641977993021842051877990590359634048651685051933239739214406211444301856453574771130525967150006064610231689197560422573600499005391273924262684085762600671995080465730576136246521125894885568848604161534472423844793466208319355696156462747950458968690018101240958487288274413608145415944669717117736922576836836566566492827046461198428525588263073412717329089773546057198359387148320554161944981954516806615538077667606750143592396279005755047771163961973167090293040449567407550605488168131508057648413388091189459191313933158825368844732011714913360120231507972726463688254428502891671708987685423690230270823837573092142152815752145472325702645867248802848334853282632269122586544295852211167868222308065196560271315550045973010589874087709988358110340360166012230488703612127948120829250607292533866400976711008646257967640205008112012086909130583177500511853110436791669881057498771810223933269197260447214201247020188775030204242091300930939852859299813833287369911889928648391623344929731619013399834339769438459006433654175127017399627762226625704300470816807021626193746392105307972840235242354859158414581986789744622261410095979430834953831389913271464517661943984309291902809822319596509066435266524464469579244387562323624770806652966358502794885040286059798370882446971512762704678316550125970849979349071483869508602932171665452508855950768587722037751075222111134048825342668690570290789297742056194077569032048622404899740476762124264373899313561107187436201987555772635010888690842552645473079596691581369543245223668929994237220168474707212203091663842646223763822701359298977838933803265893886894738181057309534343613524175811918452884404589301927628704493672793511917515008939031405236516531586516717087928427723507104996568618542325719842634463871884150487791749112547003171133382185819285535138406966307024009083766558121154237729822789441657594953244113835334890357175352621717091789155639894792391852382340280425910805778990715564417408966391736732994715209159752374731515026226524162337029337547005660106934949379317139992832260372970931595613834216100142142987265442543978709968325418694393231466905979074790454302144426077650842148167424795372114019616322777418818583399505700598372136074350173666139797070934603347758850657957753182304287960993208224102418410009674526864294301075956814578940611586304297660284270347740162283529919764712017711779970148859739803692722891438114992859194611234735023554891713046502811588576700284885928278131800825021948710306631027675204755641504238022422600154746410568721773202009065248893650170243376922554893214399568292738090241406123487473390177807559405694682407888781776050561639416817154832587448921323525682114328918947457776758071972469165225732873658244718623821567160662393102050934967162867621983430329699377635925248654737072162443943293933702817983662763052939385307397699939920054908229888970422813852737324545293143995418356215132364584049054458593671745921438966098205544541598352496314009522946163238094860453000238966690987175050250909575085338123304757449654473500708445479529247079919532030461903649181123944722778000366028506361389497234849097758540007842243300313211741780969744895490421497074151380563171559207678515757466629905740716713790996060321661184096927877632258382813626301469911846336332365740611710167446304339242885981715508730221416566163689123328219108809399345946245148637077061389243333323088406665256719756960368492948804748105006842167281549510603763780704298998843382458614115187178281271297770345892261512974875953475374549328065891013464849805503920875691011705054893704040579347395835163872467217589860756762432932589439437684924719280209667936676955277480485867679630033997139217764182082473100194480989125437933306331361557598899155532424446476604778593638573637062899414271749644726443727947418387331523111866534686789365831712078645952450340314586698297101753198631201412028318042703736598140713950104133414332766603205100094388338503115508526926989881785732937324147032417107710203995857262570851881851271104507042317547609196761673928565698607811054740763158353356099119769380843814155852993303291325552043182767231953073465230581233041981205765387477807732345917116942914001405767547278366908406617493684459846366147123945538675627819158676838442827487422742980871348706577844336908151724296940897366815852446002219589655852203040294122234669597295543877398846688246421155749924255285983663996880047292163082766279387771938778974587223384605505952240073761160139715681886016959589329851614916328382535876913828281619052785865003632708956017281402999098462680521002945152522613122602944976137324046418838972997366905683003584948156812504256626426939582510966235821566795198216621902146286749103953996112145983173223385834102135597895672874421830997162706524808110848145466489526334862392486440627226963623228936020895270875375710935922793834687022921809025646987403222537741834877618918254120683440087943703630943814217748987992116590211224443659207018503636005362482925628290560922355437899556917026439196399975838878467619430748893344557421311570026091343383553707943474663584400196890474805349928510874071202043687604730826249115039885664764820518201814151074420995798339786168057328905055329543850180682263260899021988364472604353582638994483412574774505879538373790231806101818922282794776022441900854358687629750521445221556648398636778046066920995921422897971665021902317563508781959211934103598365241420191802744045854891586514885226122068536308301894044603229368344900432198039778946976304819399709508730660925686665425432424445799654181192671378129686753739511836553245050311178822545178028895129501363726284294188936405475339958673091021084201649492932158300072562065279187498618716703382300293354889231981935179823300297831662370650119114609960016691745549340482951985395967350782350120536584493656539971902074194739416971280913415939553582243313813812577195712956289061007298608687162764477543097465113583488496183959273026331461065557545878976944560391540821432106823823480231171443037207808434395582826017632780064999476718519029606949498272869763259427788098310807226141735717191794413231994347040655913350644889362513679649344164341602739857125270692186157218916297639873067532533731581757695007699844876117855462828373678280450162133724143817077612182475700641374891318293752901971630405456907268879580311740486144321581226440790785977085178332132566218562242927093229638699402299910701125096946208325425107967508682205708304441273158192605729725370092382681079862598097492842383167557946394648802368632324225408009025926485204336692180939862642678275802047323732097990043422138111217571738888071877078379366637746604148395369379740391690253210083214550026745778357855731976453962307833394872225876776702002087685850963846758691177436433294407711822543079654526362133440507262971438179725264295466690501984214741880637969651758800936120370152082444233551349436530145600695437378898604740893418335494897585934661191521918397661341301141468133113824417486333643397486383663692893242938886760849252466093774335005934635545945984685072403893698941836122556413022205761780808668197011780248887827724228117174708100620159605505154453263009370829699630062654461936798912523200114849044009535801542779299055713025342427274067520995028748408622073181153481910843731727287170903757790587979705491980966923709024766111871930663009090153263124363514184390688353032436475655509351544435503962728965133406695787759735587550095022220355066049045890974726605830914200303399464065994795899620564766770270197611407240684946218420587785764154472434908713909744055551150654597259454882235626563598678264940539508415741615624695267761524707669401429207246600332920450590342162189545371859423694272895495766087152926847160674311184513629876566229383595467314148577526490812560411040198295725682516419891141683873593568410337835623634392580194909146966933976900029371115115540995809092921765526462699180418524146253351946711796818866256225763816143835883826135917586665154013490082466048110222331287056468049309541182801549260464936301035317399191345005287821672912509390314880036662508303360891588100502917042332489640334668412409835845850414452814553828701025580796401953793882724493281806074284706715928501179485166146988488450568454769451554352713821627776139608484591396567363757302200342726540849822266181081412911600931666229055681579697914126665270948280806682820415997289941995719255876377787957820954912745599902448678094762428901264601111270515840312187881984465859931328230819441676422051310711475267167889450569563763307431794206538454390163322735808612215800360027066276395819918647961210996619765748271618737518762795235576909535451136158114559673432453731545099926809535869594714531989861295601952253461107251678860289920480075950707090381288518711393972051678636157548211928013809356155580390983002864655932798809274757448453619009066008745409877088664895048730320500695240062863365126516554768854218900190862826923359194633191210467939419438829190669125532656418495937680109628093820287895474657436941391008805422188037177650270117719369102289684003799504899144321513385936414496359416309188869685390629895170410162778517614018204139373561681538270006766340567809755593999823803191728674737318375288010384142271468781794806944035140721632578928460269059190862488416531092654650890944589190041428512609411863658942518053942326327245075026498069078225684097979736482844211850976696046712038647712866578403736141405518423389339198743989871880310579593154592430581358303103237651865373263310975584376158411661915073030546803941573116767312871706456298062472067537779416389997981870893436345724511282478729920666637328685095258880574529787736753264628599089775052724514502514965839579283326947930052825530575748823866119227100199617646499108003414718422773750801383166452687829157663475104652340675932768676004428334689897481296129218213799833944143985892133816612997497341601627708119493737838443007635727102938686131892800980384570741523745707043964634364368464034942930990655365971077930011314870186491007010663321083309882110757079342305030379229114422528008196437481283632715867492577478690910065016390488798564318794164643270273079227907585250745543688205921441401037174787733024954058542335816587391513944183977215962999457657689315726850057049856547423707835126642219852890695212954044454218720746692202462910086189764575320048352410869209257618280382927018230776673734948165114961837771534297709183294756987806961918353413317579625777485625127733110347844294078099354734303773410893610913688522532178654121428417759812902819869661696752424727618583200937479709637940957056418437253029064711026576986987647441348489407898381309362262698323230588984893648041951946099168898824296210562181384998165860240293485106709173523524376427075632481185339118290628412591482104736393065273533886151743297176832962229913774801413844059995424310934344043576901435862134546105751901448793615546007735508250320867990209810130027506691911187444328191980772075763506314465052967109710427717304860794374566255932524790426640252149138779398444478370372592962202744662821394600798743772350876792509016333138554973879639006281045812383258666483058235846668659672343463974369195169562926981791987982149196330361642520667537887411111659046492316158003498037117106197608633776608145271154932944804502327074627019637595510605683801761479840540753079221928753136408599355324054019653763380259859924614344411674561560188025828172247570252312603039367675686429452214445444158325185539162606522075211264066271202763316999309520407947885823708751888828488130817937668156312213881930053289610572957864162616811673309149438242372366255042696453209322108956366319952545776383977997990679288474382353982499530447046396571445088789193453199544914801260075577868016550484807155620210786397996924329083824483789418615337221580357263487066827131500350579314305373158238273706103277873495269267178280637044750465022993097703529716427098866358337535330369665315136620290981105324719068648197712504777523272447065019004056630197145293561800696933400158712594646207179890204129008924055995943474823880894242811577162030347307387519797430498401202624871248587700206350472112783456598633711079368357573844519835679885592406381360017351502064438423834086692308440947294340137205914268476919579555844708267646908718442389852508892458195146487458495031909431164761619357588193722643964880864158313736643255980159881890257066590353669852373807155277900259430143724224580636289401707251070399359493958837813332844055059388235049392449047675165850774722073611624365315223115693052384228804607615616277435981174524786517458298556393321611933804395994536659449806349832224502288733987209368059812647588162873476142077186412193486794603063769402625095324937618756612286968861910679173505351355670183175806787354662322186121533696160062567348667500577287851061685760198968543242158350046382152343497768305457126563057651348946844783594821142553647695942412835717690112301494478262927715715725224508574644066283869370255030797147619224986099696360520070110816630912372510239396004227125018729866539203133412066613896542632388352354905946101003456379409595501802678964877435622567927713745357775708454348328457886472684822438185282461075114642668158754180557812455110157436025551643636252644480404207729794467468654934983827901867949410081761514138586598008037290923323147546556487622032653649449454871450787691954371962984677150497902338172304851328870033326908162202255381598750755962790845668616913042696296475831108688078873816495551813095115372762303695225259976928668238925707682200371446444029138898954066537128480564920823106612841544746554539385508339587584401395210579464257514572089333785650713871714546209832884652423150220915973789469157917343930727603325444232086002462479532178066021942688862316424480438585431985037254703440777004856532112765629223216499097596174038101343237040854113759847332319213513032044527065554330080108246987563653316290390468546246987600315843087673283824191281793291282431813657529134844671846704761721540504916965534167046705349486714086914965408448247246647130741405520421035755408830747852482075231856953851403039954505964920130708097859303279851235388174254696495723937402204896537402173614293637089405784556363461088366631538742478984933028342469370188689328191551551294651276018899276128304753322706356853123704725631648609393654739633707754926855704173650089327187717771206050641621345766369070834989347006826444694121580127805672755347409454178279372703277827859545737375079317610376158383884577538401001447192213094640662272956520694491548194622191133521970118917465628352694809660585179123789111017219638309898055734090363237734713565889305169559118636477186739899368552315243402505134164210153099267612651843626819073936195884796793894174606824071135707118775004988994475327087747225317856906861949339761311010830037373542968725294427035211224484237285420882011873597772619738548998889411635196389223872933317065144113488223569215260742102689156295804268069666070587933000086081959435616893650367114030362841025502295352862225814166656917158480617918146210317470176545832560035130639965098885253332632974138459328037285054534824120162101808577250144699941632511658633713262209561059533286546617888188232635127470006424828908085668490684659029157463852127487305179843449949307491166730202819113204182172103400915480231596066244815290680102730896372118382928709153591169220308090836457947854935284075614006840228228310634518520465071141668331927907173435928028034267619785390134480354863551779955174162092218761963814702672104420063957334783824199221509777079429067220756711994614059249495240202882778847702391635343747898378022912641795882253423306947398245262410667195744126760293596351545404329885957526680334185781132980749921155925320603305360545800071502946481516548997392896410064324932887740022456158277283274822280458654454212726188796237648888422789135819484921536260130542362762408725148152818030751943198526929827670385521137638963547261562637780844069916917029777645905442981556134609753062422221839430667674018971675396060412334906053924904803998914823246743458485600765342370505412471106266449282913330043975571506559493789901088991609920543196900324547232877718959596708802571425571031265038121077915141664529661965139071753307634638895788788356542873565650255972778385005217097088032595846220785083650441524884726353381873595347827834043998304567513269694324862765363200242217940263890591277002091604549140458352366007294790200884333588579642349168627338049670405781892674866702311675033244396543354896176176477042140851839733276925671189031624705457782987603758692057092417115374049770751800523502493866054193407633902220674948150390640412515519188983728088312903715942475623211058601501353630842248340511215976931652191658290855479100265918440895576167051485560182133936717348906842314215114500565046642771897278444701752212242421948939801818949920410374795213519517624630936308330260535101975829216407522444899003570660379605340056047108644052048126044059070521492364697059222435615388148121018241186899892476987657544137080552119143415979404839272781289697287020247682704851489578198421614171696319750909149673880310167389315346110530504677644538250485350622388350870332139740010144509636112164392250804122096809170275546744351163749982064977780080165556952718313650341817410500955544241765798339548762883704597396862692940200132015478568722118093079304563100955629543441024540192082663964407015940308312400011744024607712690030595420499416657817901999148949409102327550973647814710917933156479576563736134192346851506764594227459794778533071976208021065102114003035266359091662487177314671076394179107209173058434456897986415883590888339804399276816787051937595677731457321875996827910408798477479831681326545511222834626540175371142189634584504252713301671501850093206561905970595439621608370646693131315134042008736572553411382113241208425957454058952297228099076359651584572120800206305749326937516661371325455651287812600960975295440825256153603163933919676720628730838651914734078731442349361854434416045616480421629487668029086834801648156209277915190638878413137067275835086647184833952798360239869443757381235341704212148369205995825904644632117996191871231006856117065188816991553350438593817989669675546274363094315020133249368328415993833097306569242568009034887615938345092411727961545470593359002144336701528795291393335367195561920563321972368040643824755256751340952905188612812202512591999032231727013177918965594923121933579401047015307711766064003896605416239894388539799075832127610232072444505415263996217533319825913631054645569324849786897060858905759461413182508234157563965218421147640224420631195302607805694973761575979740360877673217346049812165950977136921134598817828772152599901551236623530982699982401840002213190876490587227915267122347992000384379271638814064016533546893918233246334212268098049938591183458257922447173215127227878531988661528237619668259032980974011170039647934484677576753053068298639837931663221777976395409030471442208101420086394090551974948280294491720889876890032333729830051588143879008422609418767710793877975723191955734809087015575710710419138037299976952929393681612671552374852480528817271524503341233931105811861902943254652459763952229906079642791761458954616854748636809920595867141945856537893974456695422394697785622773789872365757706410160303252587282810316158805665187954260699047149371924388067180710536224893285249551648188435806367766900047499400557681026198972698928515081966844682065304131034808896752082759629747982767975380378092272252115050980098666805685298592158077104190647503344450511747954257189886548100891082844692077605356668194983974294476040287362767278922156008420716973188170220109813550755061256095845105614365206234379320099949133500205001476473737876656917131508450002207289343855655751900387572040299768554529738388821650537286579087255296455419488782311308560239825516049865453772082819152809244346822198281492407380347031419098536146393342988220740902367928298910460503698671611007166357173475368469531946598418484143124171813659968647098905417366759505698630083095694126223129996010105098890180168843946855125028986469800211452975095645875735913526834268483219706218960638627678371094524304366186661139048665982552764542593366140132982156857991718085960355740497392590986232047289413035297245290802163688378946148230713006431149421515031630480415498490450033596292367634570992591621873580210401773933492258519701315635029872675818927531108721754232107111205231000891214808701644361663316325229676691983748165577707713825204982827406634220607037633096872858690246298461185951007856293072510833384916871118462378388831447051656394130381761901265049211226051097173343805146941729802718010983090719723534517921502220972693301626678691373064027564030583187921771352806337066795395296563878573075534861089901299957373141951461344290321050171583143115518384783738176046916100860974479858097586409122909777813809976436603039144569065910842672650615673865065082652029405883681179984105295201812695630666811407663825804863812171249989523995746964401759957583493049271606591599374170201819761469383992211434697554980080380900822794534543527156047498723962139694455609409936729075681199838038498655004557115279085367627218482809952600049667546506778487792442295587752367722548884262959572715846879331821895029227915209224253784875939890266416718882416586956279527150129817244320884204581300857435568396512749969106030770730304215207584494313185545892412083953456974023967465542221883626713236208897011659286271944977110233092159787650320827414830013096119519870953252661529229949410257878125872686301073485899903473012485168553771538770778689894339529117079580872588045785303767402215732409015050722253581668754829447078324419293582320604794171882622307325640690490963743418075740623012369168731579263663061625037015105993756905398037581406186042690454138510272938586020410857104188758513882973620233279470142369741676027984226410478673160238849805251840050076791266438017211377038291942534877797382736758846749311894450053899979039992245007521751982164792827534306771629472756546356091987171247637203755422028321608362344760604895383851447353692922425918402489734845007113583201485208956047493500862261268624194302907941762839453350404621011597978320515757029163265184512026789917519250492538314116735095139222063937534629613565953899092584535680089201449477711311434524854324751840382782554391846873053339732890001913322748378847627207551757700040722423094863201943371560059600746348315318185585871910376663738577447123754917202581705487498699493504045289783589612965481102970640784410026219691280249831893168236502028032754963750918054429775532170150210452534606520984380951201204342386643087502005317180128030603850146673809718083352629630589405480398567623198255224566049494442395256141533352657229649143629655475118701999549164080019902629318475718272493521100238840196970726099166079706794056153030867965685134410773421564701963356573667161084296901538478092432012233194077832021600086526454357710802013490190438103639803043657450422831737067391663156131783084803568793908704899470043213901299488648347464067595395254425444192763640788208731363209024152890220403263134421777575369657799224982688709769384146123891069281012926374421010184507993538309998242954334466926659929859568042927299896111332173427528721379289488913374274628319171569455025180490589905899458264129026992445525415064544166434590737871943524814678773346358471075501546785999484872850318529178578063901707429404576967356409985977781718624872344803494706557881728847991609185077086269176953715345739016305218268362391663108240554765980646616705661961060881856244545020968827433919031741077217706882266009200540589665408714632269860802759590470778741062295733535807837946302183453528457560296303783424766450445041119349067204078086327564345690065509002267768380805312840374784114165261263308454670716792488091151609596464720067320351489325830146458527498802647565883232111202298766438815782844835155858045496721275323538290006786628973470460919412042644583328858499421878491115125561175685790786903331589773456947967428155317027212952853321649931856513944437952707313334443516071226900602117179297996042751257306068422289478422783476026626108590510300521646651712835126631943653205188255906565267865148805464809504969715667937310011390672103419241788874812629972226378342119850117609119222863728813653020795071235389631977888812303963826431011168209178948379700220751634873805316385133603491169413438489486462453368882270029444000063393333406837728633466603214530459468076912513996182579453962088440786979425843419677512783094304396319711640932453557909326764911332908094243299339953726570116721984011627912370440250497077727444538139645326965366729450461618694276869174610145409683294427263018301984732037151403234163544274948392436846133960495313480091243226004312406936161313119219358212961759200494963138409068255127664832482762058002607058230315033353649936932484095267658074874155348214728581081809589661970808136576570811804714189500390716391543078147084053223579090631591551675308867543976470662839359378818189742958141617010486347677511543147197889561358769550813693548009682529355043515769028074453468094143228682689386664466278546212137543762112908868239753002286193757182509171624927451675647830122582743025695182296118166096059775863789542620557269931831091886087167873219812458644354222195629580264076405087593658318348758558802338799406011529735416944484613008972864209651577440775374979783635589960241868685966327271460834693169824324011205802036437692740023926800474481090058291646251831581188815505366490264552379248893938113499698618357414754354573263982568525076553361530234482766589702720614630525697488124702111505800814823055653219561184172765166006366128586470482520204397270904727838732094255684606046458074492751164367956753443435217026626835742016146592892105497054671067622621157209061357323654150625681067410290817047871542157275008052934698597921238676163770832618403972428277579362035692606255997294922746807480240701451968530390820016828171822181912709455213778420770314166089275322785266948999781250347474477860287308950673196298535032016346481015425340416158786586890422845096313538815851369219055862384443879239764392609837330219689708025618512821967858943294301966962007203387802356654224838357628899477710687407796097196314021032434414591089505142220784733396735571134609383581301909893954249950266684132021702020834496551358158188812126017288514465497622207974062129638006545715932605326990943463495094277794969708838667772291129716714661993619505550031429918346404328293806839166984911897161129021760138040387189000564500555658935271399612425007056919259385811784721359733763847892269655180255308625836028672440578222580668883545263870853376106008462040989811015238949408730532897776301125349759918754954152908429905334078743798647866719082222647861966890857798333052998183709186981019399939666607766065625221457027549825154773756347714606404691463164653043789750649335162899962652807258573114349037163489736916736670613344718499464028976727878030153822152141374420037175742637202405966654717161551462086065961007998189288641878630056388542819770394837140935057894027017840383094704527466742169190514167205657932934846763976878665137077121981895717982506703937695862970990119975304613246961009606763834797240235138310200561588288117494067054115689426617795207808765102698786258648274546520820689456126945004205253732963430838820033048419082156758617691124556535806832368515906949945911743628636098598055066516137412961080879613283158057001462656027685575203886572445397599842011840916601447167907160008290946393152155326458720342733757117928593411898860680121849529731897454065583767583778800646990983505476328829863932190898647148609222141445629191613193644045254740856295798944039091724235774988844160256834880661556938169520035988863270248897213259739435514144676864789564024493873842062253134138897917987389584731067657977149766885996034897684810972282157982742472615873407923948761706606749885752228058192835953711632477449595816369128946568670588299898069782395769717322417304317076911782448310373489949737744855738163645454566692455562721508765017577564580472039102701042706823907645378829528217598664564734808845842319194755613081491149586891888419141820877854690438947409165680913455206396761303817914274946950085576359514773002457384264890363301007630102926654586737161652037854171973988796572451808933496799763887499125739621859713132656320958062044969482425843052803830214210168700354722452058952216364350159909007563845397825789080987606705146347807284419131974825947238267593881599294466477841381239015162665434094348304123595933914036456681365963502899301355485240935981754672049064953486628192773404175449393342173833276904919629293925122624009518564599435845378499591245982565197468869420826989618657821313508345624265474087251439006128822544080858287538500665960827446620556955705237339722771433898047803017402222475282801945935601479075719276956243013646052518252107880207265167412300250992122438035243458248507838929723764824933827120776681620584595721385926523018053793614619791198225677586261684407291800686231664810609157801406746389545529190584874751199339970630090142846755485593131088364510949765037503760692242381805392047967759789822220773204951113872323969758473272231031748392451302276881618282379034033640002021652027145517824682995121269652290431659126131734833954484641585633006930613457838786248427843597982590958597192934361765334346987713197963111689540835436411442701709896235778954638256324090272335406980415268952373397240493172751083974897145362629453218484181536431912387571204184934355221963213233710454544425017430778219985179205246599090373599453938310909626253488793809926719350620370219637764555411104157863973998316325939972112335954856654084795656719374264737174407703499733257420792230761098454682387193353531611090990584481009773640416965138110962402240060995340383972830517628345859792076858081129492698077921033851891164618394953724763200719686875765272706358445593144630009765669928277572190381852486581545613775348687155750642791962832478778779621269715198359407989532715003898787799503354164130171984698369244509424152090621251544009650857558284475758066103804559859048017943485009691000739672157410038361213467179525632108809601179141115001092984675091747043483191077807404370190685920776521362056814847100243052536363143907834078560625017845362422095837289319187200370975655339996146698461696605688917611673351635134044388679980106821154788046437431656904912293219889968902828652221167042941008239774636900090297183782689443662600886476726406722337602169436793295911494434634543303956019382499239380417203999082925946413451776848943475430035998273616753336966379547650028192706916217534591276070740217229441610148723064029868698555900109016576266973811734055678329977138508388050305157634818617814101140061836990166190092864635367113118880051682423072978285549221985426808189823554591603331181721577789306958074173953139264259867264668673036780188186426136097351156750612437013163018492497123097748866195389289730184929821902222789383337777971762622475205018009204531774309696450463573974025567357254222435812863988189295056295071596981830781961451465951952433480051158712604240312886546354228082491163289126257683517692851063769674427931172298691220985587481548436552061906556375221803309410566609294930246901891042550079675992749948927186025361358428771843085529668184649662401354967878356241720991531965930667585831470083304573012142529355966256569036557400144438653503714500467280990467635975800803344010148490105413237527182222806197281565248321287065546207698070302477636887260215327318663318833667493851327185714694208758614917409458952395387370215391199214079967274428194289175895614694719570180668018555000342533082437401937769593962053012532410956029120497384016993716436306965763487965361638784920277956910471307009228397475287771865711210243891262869489811075925648753870465386834148035018074372253719137939281280001428788030888731303047184837960744825938861973579744252413737844030288489541961585299470157415141837003703222530893028087014421396071268721158439352862792595065566420082759444432269455481362532654332734214123230844629616753986437152665021232799564759427433421609364675941912065771830031686532719038353273567483616891119656524665859027872197218243926018261377458947222307947552051229645508392273023586464009582306193561215971082189393515869235098098384653660613790249105690998797522066285628854483338650465203732444644967575490786847261270790214111409986558525559474238148243928212162806391419769224124000982857424550028143719856328710635213445315102803291455501818364393927199541367331877619062013584443105275864390005795251318270337997476570880102763368942874979766650183175125386802453747382569825295648445386733385875078132856730852816373431584699235628456257658008202698810448731097808939041589980024621198977690120990700129309331475709659706374081035825639936229707369334017929822471485024672920057169138279176391523773385265083971503781292334868746462180014852966328542529367229580271829740094467089015828049390678238857384580468491248341183711487598370612303452864047975844515765135611790773640257809485971839423227502531671610663099262104257363944776015319418747953462709390525870088990462735337134241136434811837087838866694993227721275478860500115647900096904122550292235976104151594359062785246216938077481958852566316480199781981263173554860285055175987929637812572797420435845013217938420645178976057705699389301061820251992529614446245250905065905716975683464965034501292827062570315912591952105394566733634553614326553419916302681719369099064867237065950819702083577495039051496048190413714976141214540304034974790356264372092887795880789001671758426135552271642572341374769772922101747699580880951214443325671212761558064896351705439327033490996468765246493552055593264627403283860058621336324479473180159522922092936520145288779799392875561693347593892792302339257778860424890133616445055461200955799998379762573205212524790579970213440917259180949566396109860291371749363734428852650542607428342764056538207004320845853097669201428417015598973901954021640742734027002419183744252259376458974112142535605532989774793713857985639672330357744703086404830024946645570639254281456619036723856909346525703835921740031280419561646060393666468818274098962986551529377281526746956228712038206893538463522187570441220618809417300349486976038783412469894181626062405694274775425612922369577731069523799602915081711844168870903841623442287342206325747132366243595925848325818314145133874980026564810414295673884470460494232572238029708283242915884045033027620410427634532756051050858200798890631038939945206432302099228132108677371935325902902263199321764987981450523551393491964656769317362888166059423342408180330827300709433764535784017847153536287254494917372300548051806673297839203678494795193015533342035398772050146554632123338727121473089961328658291478204002524639464018691068096197129836896567351807930615225234569394207584924451429906316230256272652214634196063365194283143563591354196732908836307418346810555094544094847670129082721972434030092014616286829051009903833156654424378656265723434148351212375507061399919014718204617427857955687260223097148073711076780517145396201908088875888867776515708970941971392306401240469639175297705503059041161037719204098537846329345678234366596009483841978190876389624832687763356388609942911394730053144711732069567940541589820302567957849860412302808038420091474481344624651343841036054897482639578898142208622593610678434773083771932681169664448285632213818758388868689815606472084782640202910251108625968340979017991382808491619877075081625429077771580827496579956989044995779529385474311339926137210600513394563316440517287376590423379235382660233563844333128727277032733762848930926722903826702520882694798753731151361530340206972794605244204044974160685570858466964885654810009058757085524757064211433257322099471044440718642253755336819014707242974841494440234901508379029394593580324851219257442536537172770706790513012279785694864473699531183269726382009272749217332048491149151571546734823284517356876007075182143096836938047529340481240984863954748436375040114806826773193911520251727686880338536518268967709312528469571708960313471578786349978035915022166820485516511358130737240831591393883370354171652041486590117201058911202671315584633900085023794445818042929914976301850472615870973993174300584101176585923174941114860670320201919532881889215346851438777127608350345877585457282134553512363622143334126048155700619173408169666080363436043849658198835746091434092999450464449318783938936617710674887197031791949754426937487402593500829273666904215851656812254249971561548472806162380622774887872917747158367636466664411521344201028456521589971967031255418305596056181774920216489435308029208460250043850785756967798021263422210594596611542939482651733893558117786267793595127778322712094290280195703311104577059747292125545668796736801882551934981484851918404123707441502572850126433228933905226063312474468591659695637928843065265171308477036312041762087156891585010865847781371966442508745705481859368619802809711435822487765990801570854607712431754642423262617147573795569983254845297491405575027993025103670060937133631010310569563376883231113942096416377876338659828800362598238647327633434792881577197751989946570219356889070860629131452950297266854379693286425214442003206531412454360141589974875553358662542765865089728473767593756545412535146735073823610100371430056483479676993819089683353598009355439546577053211028463573260532203634190603014568896519479833101238034347995781468126186192497159117933175676919830875864877563421569391056480000967579235728284078021911184157920445913186613105300512618840783411904800166753054505412530257885907298225732277854840242064992274635888446302517101116051333900799615745244924381822055008168230281886307671711494647616677999234194402540890002542113048799776888956614006298019717881729864380734568865838303286791250965075157550337385810070090422980499076680350020252050770251197922490537202053442053135439995015757367140532000990670158104541933350291244059481841931969274129134865298055167777351973733731195521980230473386495983054893534393944075002641364842219543946476616422418472907419441113180147690752408916187223559935647314730203931939129441045699705340364352027735592617135545918391433359473738875324113248725831965069516283093589197047166037951148006171729143075494820784879488771349620968992303933011472141543642007317339466499566034950279417947101392329278588993840554509072243748427952611608818188436823656325976458006181927857823191568866740100324001429547514327725716634791827105722808397555624654718189817110909157626521797707490958285877871811321308723626251725859526604886276602529353051535016430088251282151790133109890730054872995017919494045338732181859349103030001264478734910496475874469036398459912935124748960956581646912910699971732612914304239538696491963227921270190015309595590834023783899109681867754453401641903806905081227361791094065304359091605507176191819697115019670687965203520043942840261184004519693186244915858882677505456929897106781189712743437424900273623232635989685625807070993855464310874071954530969639343315724993138592269605129802726541698950967008101148633465507494002564462946797174419809465173274404599439423635821582586992115152741153065639027534077950064878404764442396436448400358813139421790492438943446980082529069756187695272561707998541535867104235994774282901956140507044208378815748518618090938429352521823411031661564312018585383917488909796843279386030246040296731842927815523061153553899312957073132715481069392890647659738762870257764601052098621728175610032099463785232262592669118310386175870870972574344905178335403982428158456475926680845136711746671577820991568092029713023024057982809267546108449082655785678269417101328049102802023207505835964365757965781415449398437197783998020349833223734960947334737082869319751505600694285157661811503574268154311642201349148896808403965706416328816773108272619530962624055403751079894122923324980365081498957457223674299053961515712258200747880644751399260664188666675517693388868414023486516531859284026471832357777493540502447080114215977635052298643469366482630208142681111722580313340136846440591246586610463566062130516912794045915472646302715434560343817260473525536863773409043930348610629042009054487092501516223725289379042078650837316457491804562902947940711383015995268582760204332894026900218775912420359483515171266307087500289595863872507662518345527275884346742957530689115916523757991244968947089412477341764517217329808804950811642198933368363047461999691631553218122618546632585009920499034513798666714234066683149989879103239563861245546899654969118965058688187324542288170838012689978508399690792906223224278088156099264775628361520017377137076890319627117561239716017858429127551409336614149399571424175858059728339403576568044218271081960041227649876933262172364538724841185013608660584775703953826161272599673259149984741197562554682374413724556310217131681628228706022249635802545905130246579235476948944942760299711776423327302225516196170170225367719678844029380368555612049007395890415987837263527871903926252889311198540760965189080755808432576228127253479644629593327029550726184978948417585863551801278004374934039529685543823822336481517352573694175155426746868239378759017772403521587283236978677209442761585356596042520567082553803674185321081119337682142305153815015061588111599539986050524560226445008711564955893325615371687392398829029101052464121057450810694282669464500838834495061666525172814342290463922767523771218431411587688753803351423022887097417228710076695047914798312644955883400493627563494560993612031136209153129162042048666466515267646034431449287090529232708964066757997774654476495778402820257921864854913104814764876647222376568157040740679653757721949473659479463359378869699487504825891388504185970062731716735272722040193397350664247024527756514450029891435627743464042320652011330081532096554899231187577178600849656917943634428225849052450111047951680268297621812536558454929600624189709319686979369441523801856692928829586032593758557208490860189930624366259186293749801561142094068014859877620841858198841666563787653151483746682744036536902904269945714809426007880868239750170698741607426554699935714178626135897873126629122706841981492284374361665964642957928197357483754960104208551575328422302179134587338936962128643804733685018107190322888532646340986466941059283039358809957516885235043998054187714473505841909754901023797812504628077153415466831286227948008317814192772982603534671761610514705363485858725599682776801198782751860226105855252220015809673180683979691764870633681291291022775589733296314193965393162840659884500034807064823303911206341527220143173366747044023730675447085604008762229592731737719013740985223408446000918580348814636539365493240282812126276689012200413267144822986944699268415856523686949958089040506057197659624371753177506776998039712867733715090475697435573072331335191920519308290295561047848070800890785231927366959358016285093898925650724568102470631719297247426342464234089211744202410852380298694754524419041661917695490308610900389929943289922098831186061309128746272272066446397663405448177785766181486330955364868715627032865167726484070199613255642300928836011624351183972719817671758747188435218455770552928263283906141330294901299681216343498310070261374736268362885892303521040108319588612398647282792158292192516729297142680091688012142166092993182148257017003788068946439940494152537999095264632940890957879610339299274924823745806600801965009135012250640331217029523536199473494978655723947424103950172791845584796497403453089543069653906575554092657986578013142279191925296998900201661865542812589746801783676550034401380030214220456823358074077236572881624642253973760712612890006295738206249733418132242050978368257389705122034023121286176679024619625016877815689324139806441063148600116725977660180847181429543348343953380156784429516468410242336347500403770715122157342098571517991348000003066382480264301334620557232109041471587597621229127613616198927319254858962845337544194779774929013249920552923432410931576011770456797202357021487585131031127998996720542189528607236945197174781409108510111182793256099648927311161066745709033364872319216105972371482331290395008111577735466266982419629092639026382325432456713302565823962379012996909078928315940717559957704331581213242602735266865739458068097868862344928544325476028645997699341503360222137965464075643273399204888096992547086967531459407501120704327223436443221653152541481805044057517163235004168833232795282472352785506398166341299482384670774589231750388811438262009494561179017200212858879824085771151757464418794467813205032448484884086983123145781889752911673747899516515790095590461246676138524136661539346965387405825551338075666547407267557608348696306813847502123051756891333525033228491619210293762494524261146282770890529859458329682574602391206342481568357047356055529466327671285837942452900160516839314526112455584349385992933093190898920721344995540824958312129540490520770437684270468324172727554068857508529564485664839975730810572595527953366085760280034054598099426082180072505922850841694251461839563218414926222803292826268621818900036406210229736294327600352209484455911094807944122196424545225827122704172518649222773023088726344193987842274135147758542573724222906263707872092946898527548813710900308195893788469795040203369891102301905869303630328227400537286074928502839875824333046675404636647932993839518356733587939789362621819660709541648451122439030193424599363933496680220549945168581585362347711320008414899546384989349964509990690934338248979325251665535167199890687453465474834169590349285470988123447161960051149536653512257005032047494914485694353542331967666654591649229554789596816898160571850530652722844189531170119017698923457035337605891971924187017903182608496156104444454397045874630465030981121659830670962244572721480913376157095254677857047862630513142124580592688557981285344346068527047299645415347603872441205873470889976910577123642762794772283441072258884293727345733540444890707724100810245462012216489847146086883173754188618988344601308390411421403549127300041172616136570884775167457525499859057883959239658921330245146004077099262192146978592822788924160079436920109853113664685186909292828707383465175291391570299098405826508309815266405408842833709422871426369196090147892319691509594439474144877503141457482295661424672951439097775650421343772557184729477224915832130875769333773485992267977494394871879983922832701085729166538170479095997815150556954733590492111064763465441476708037584701269479050238817566186215147797314577284702769121162548081121087602560907161505640761948407989767842314678427340544036560999912993778912777975721239859865365653653888401144088010926624734688861750066622392619349377542880738785196155256880758358693984866645254920081494475208095635452832148110672719131153886803400787190149298698399305530122636650135021445053865660084590668624662884339896942517272907142425830502759582912501349498768402847050376219384865887676384830812754872440894921001012910086669706557377142834259815740609825510430938708969387894693753425848324765093461532589209867516462250777800957981623793274697878739409462072501132607606193976152064358840049778105938452617998653548040989488959475828199440376578134340122953284671386295322281091195992166583577936884760082321351984295935127159755787962065218541930577317698086172848091046171960305496403738761901290132755463713231463591345727476461461477154499098789470519841251928902296376334872183430754551921672315947177393685082626865590954562659911183673858080626248914481138787005569559326570254160994531100122855360297993466471420039627754483612934763642555349350900035543824047391124259867368039932898571217651199593815795026455799985450336197564686306529487199283419442461106597846319196287921973556089527824579456288931361889466448191881870747119939491310583874980967306084000304945554020730290969859630821561449114244207123381417846701225859771217774722691145760948043956608922030134998669175655115302248792345333395578176004166431746381200265190026833155496632598188182197603148338271572684745084348919464269085536755167184809795074527841788344931261665445414788211143306585830452713019730338471683433967387104216557708395466019312893646069969255109556619811934296207504312375860322214770364294293866772050105356006909198908651047178816567452313058585615185458713133574082180919765442000599151214276458224831174506382668513503651012995673423277505298698899313119723933607911354134714385329976992245684582095008519928115849313235300115575354499741738013653218513408879814419552440391916883823603807248606966486760973674105959731242443430229252649732922505769216193333587537231012916004078444293877033252485780916094703658717794660528193261853990760361516375582651507655840606090991630000631933517731682275069974649570496044739122785984262727138386341971948366106218991535704539613591061722178873429171428686902471358064276306033493455167212254812939213368376357603625188613720819820039017178455656035528643092254926076591209664256148544442429089995288302776982389766116697943924341139832722891322723814797500871625143875810619380662681455245396523295851235562792917935920679939212844993590171362437661125306072145862458236603581375207385307093162778292964256085185295333144681100399772346738071100779364582417867524198687050691943683294958585072408323244186915427298462179430943108001259003185395432298520522897905382310354849891351690939759715594879588957489583527977777576422266506507989208668246528344304641788095107603200185978588183031414460773065923381704214923310727453436454409757818451188003669596618053854387529026200597596161518720955199343889137391074051758260292664539604985349009501723459973272336624594652412555792898055694657695242845378273452248350451456783274414255060522417698300347583529642573483844822644426524938338382063391858162834966056117967929803226680266447989790387094390401593834347678036244784069486337709727656471960922285849035869301568735432108096242533143179850708018504044831381363489897424051827639721312155144945867885830925933205635638324650083122537913758876036721970559778506241687508341648481831030375143064310356368170100173864117547339982079609200094492105908695776469171206051781935956610567656554459673882022059712500895183693495037415291882173057637385122065999164662936167825474869350430947884324265805450473095609223513452665263074060958789736158752081395025936174244186859689083662617346600865891766908667687007834340032172348641600288810173547321056801741267006558797591411818887338241738510741570205290165369431717359261907676878984760168305910466192687535750656455103995046231323615212334942427661817349168702224653995441182980562034544635690536630503031406095386178847793693602842443097709172129189264531673325301909123085063634127593617540967579656815066764324363968730459441868873704271443756113133332731529773881689782135834837757294206788000117227527603660310498447995441517071184381194324847756314050641763933522393614127076937012436254022526388434984145960502861629854316529647385297529716178253675383308653388555582393905825122720669637817585451639677908477632146926693519167214269221676417861273042165104254498388796698693493701780960185021329031487709160375909489870241975385656059998344144737780027775732104716862399448349837471403225845920470364121975340182681689536311722491527267832958999170795023686046409096253046502586014440186668714310982893629414852216954605061523680838647374665964347927704298193951816882986101980006878498094235677033869122697658149203927568222807486534301394430630482246923545876586142489984259191942581781194593132784841162797299466433815246922774689188026338468691299932426676202183933535788552267995194145504661351982815651828313093881612597416369667182067475619925418895064731251636649737026740086922415512113130555165810120777299400037076690055278867960042900519380614927522963781936686762773409363289919885694234418134757440506400415461675939285717366330026910928265291173724470956067310029474001944000383350424885504591679514310296767290858186993194401694700975176896126843387549748948276627468438481616995008686061424072548224392632669694145046290427328169740349810828930481220997473132262602012315434848055277618072606433001157172100437662997979683076221917305313381261603000173822648322250900225245499159311180855432428429387198548369165357310029075192909886900652261160059930150949586963605482336320418185594801862624511311865282961917172781983201262575959027823749183184593856347739073326325081329006081780070038853989447652165739954235187965253392526064185599908427575143349330693300240423408189671914241725107793838207652542165896218671414008382672821404398685761687822205026520491868090825363034277003576573737939987031369999531407979815343820485085569538826044244951416841213498053170306492650658124783781936113938385661381749584561336728682397917144449873913387208060515378557868639852814083381239177241330194362480743719541396525103987306925531571177121913038551349339914138308192234331666095515833691621522712659304196871494718798440706092746225432884058807055322625463867722282255086924826218248100642647674617649100091376651749656718250237681778365330296775252525476525492636874737312553461056249743724638608125000526947662924922036316494215003786890746133570676091700428893521038452416303816816189318216129294722938186154936940967974963699419428977269842758582972589600523608238428906798557183472574146481816331396587337066886414695743900519165856291925630925320905915011197316370061230229575391255745198157147713371927293296850238800734830310875522735296469662198837897572671211216399935831469850256681893139704471930459642495259841276786788390411894268615781638460020073849618983172875319211961175039080482715139465914452502255040429024949424177489432457129065199738944748119453717300314207789181035000138959432380847568092072307378650174102462891928389845573156559689187570223185929041947884696661400389267737084944879709708654690393421585530515380284687085748640193470996109799432313804348202561576014349302739839001107723613106609616112217469713900338912481083472477862637391589652631241395936407739718711262329777707748311717267494517255601108504158930394459584548542361840339961875677168023527316267967561039087955961096458640433307174241726966535096720352380088349703481654081294904116073363038568806671666880965363160259213493906686657072162981997494912439351743833957434179706031779073065552692479437780731471862135536040419266855195407386165988526069613927449241244136297961388671332511009725701401043393487230100855325189893558922764168726022198464483157388669099612974332649739837209842410688767370958639882854818630121032112136160851621106513578582356233010606486986799415430018280405979510955406700686426610625375092036256421162022486480750533803201132679386927201622403455452566663528342122260198423357602695555540097488818227862149981905187968672577338842839466568496782505187731887103153435337455275743000311211073877220002265872394278415404881947624170716714511796785908280910466266320237332983590344129776846027632113971461802177040814624090707497014749697198192854386067488749443813358217934846418828382316174771454428031806328695708906204163964216082809165950532605662506799396797384646111352503462005740361189857500536442207505005337496972797710053497846695672811281454381591776606746198050263204269998871473916114700865051991788280995118302825068277215998864579896110013678055284715099380180651196305808318305907307723229078282288521354649682831426890849476749426511449006210299090886280221776951237556329611726288230129702431640722723040326436799749269014273630808190089576538284907788470977530286524031008306313956477929439633198587912447666702167716783100885956759697592266728038370794626916829175095520201148665613613536898491670233737673569544300268133935348537652011585240780749070027876836182800078557898841572895127062620694135860027025845967972357340643957246818873863449046375871349158822164995614503582264409324007800248029394089514030479782917101345570868983524790275479645346625830992537248454511519252561368316070121601450904871083909749173375609735653917892029015830561997435495741255932796268644920103271628463331645965599974617843121261111406826847476605545925934450809337311393163925370789496166795677219843676325378888276062315847594522733768127322359990689732686837920460588742525573624982304545986243300393199503971852718616391604205946649338091040763208918730460519691920212307287773499964216425025413768187319683385294294298232277046822398284085654533602623674509479512731581374957021330061044800358745420353234755054327872630596641565673210190536180685187350957402218136002939406473962264935883388185412399938791071092669267833922783372300048834559422319456127331843615518806566709157813906882057970105126808664244376854817601323838003794020039885452802837060076250577950066881195670781712898544151132645573337763382453591062633678062921566925385016193574923831620422924328636300695313060449318483735262151364426894623588398792586207806398515826970604069896170381792441162226056374564924770936713137590730560604158956215436445364314572837447856025060200893791914673607277371921563746897031802660231069041947488286032274983914377271584174039798509909287041756548494796544462789278919862428115911313830287325846750496460357249940989569351377977281329940508881083072997611520879976266394713900565478196696188629000867638828776441434192753115459957146464250044495691305569241417056067894721944260360708272854316944631700665205697518116061024512828082284318639836603731659447445844095827240474413459115268932867598891859064092363535758548720807497472347846255403070603445563737885817323809772934661480058355874972856819349173216918153869581714046126927580183401581637300468760126126428765006747320934653921051669644893593339261113610800592616033417607114592143496323596144704393138585660326685630057379917796545355170525587586640718201250303102331391238919369975633787136278730418331745265692665243198833617594758745702583528137299131616686241507517462183163502999548019203697174257667502970559296687526604352930547706355811976362751579710647437540835425595975110684086065223582967234207410455002127176148473621821468464234275101676843320213527288706917181189605862287587429442563581253257512614758722673732739958409596809954916272615539845915907525851933390909115231663690823891590616178245556808935653211907586132461678766101247803521525183312933122557743380206419664777167890409583265019134579539082770311548152093023077127068177636759800622595669779687710157162769658597567749132717038559024635523457301823485936925373653893130482480036604523488747287287442163526195697163895323126287107417530012608217717585228812405951063131172088705534256390134565976138225017773702872799375679915271195469588885658304691109293522716169768036330610584522158971025859850689308716280425626168493456427821308406875393924347162732245716046692381357716805046419658844109862907215748379703054194872168836057491023559552275035334711160550235442183597916449305540696119930084293010650191443197306940430230602248577739542188690676258150050402427620219466306029101630525369861917915443113596588923157918427014390515578618613713999764733146850152958320242723169755681974759042654788247924927475551770456019313637125119173756182268782030885645778620005198031651457507946523889330921922176845986719813751227006037335295170805775640505567798400864967557953012973199596580406513665540076588452117533438253162510052877939594268293897449295720429410254023687761330625132838426350089395819024686986873001974312806109921903775828661992816230846064110928445431404514299177078367447879887243072307528585466340486956804844504007980416458519545145142679203029996373606990140390469114546321417960361727916969125050694389445767824243074975836994076482251987029743295326846143319832228816405756407624365509361541469558898526317758081879567150726144909396724528628185343654588316502019717424201438064558869096510903920953004362722508720917500560580751785965748078419270124159719284133721225763560020795568107121765092170199259090452762886870935214432516310495568744333683156335273362844395603101688938973868506032214659562825109126164361528750189849017806048615683463453025704397705123901279982023718133745324304819145412734156907644094962201244595054084547087848813418013591546358489757201207990685965759570006406686783345907350832614384982935955781536643438905203217224602257222068372721136572727759555610066180056351877677070060986002065062778225097954947014634382755705250309855728070913430991623456756682082706382762025716529711986426968623429423968080374888680310159731532263687695592731172286424511520293603777756011734727329064601554489495142314227092522191766428400886386364558082934466041507621325844469137202639828777527642905383855625618528549710984543099294993821055174596962840388349459132345481732561156432196544056012453343891374085029001645094019421510004037257582066187522816032836614521657240104126914415044057561367595479491301030467557576518140529657185955649685204992136699332166490147847115714024139587859305692339401057820539253042666843956615097696507257175016650560532385092220342160602658375497534016178244492837705990216471753536258137877740206961384603925419228896439195117974194970765763925472989111741035106148652374298780874529007647678578188112233016792847544907455654676445711909103281769778240763256916449047364045398379087266573856637738382407657387122677786425263787808933777437936053672795587812131940877712473450724696042052302717279369314708790602822320990076015653209397365045301798474415741383905645646245814320292598654111702325670813150008359253594156906327066673687808876840332763641801426128899927198928633542295428091179050246260920239622919402184712402696508858173370416964560167043900057888658248367936893910280303855895592400978426822815124395708140569824845466605537326879253337086385188289954463474932568772874486394179640655060345277567579707088508100170897395655492849581703078046571119781810389881350260438339891561706936370941319199379874942447508525777792167459860545169478536544777497034838618238568030893796895241392900162216910595788412600766859034062563730076103224382639379161541136778230865071500611115312878761911277696171329685803956139980841708065187253928979685716274657893527897179612600072567792239046534346888194135136765390759176891232883878606033909389044923552547710223610046288535619708363760349890448965153494521614998518559791328902696042567357888837679565215586772367234639930219995049133792079552736889427950665123199089385653899066803642485412970095196511778908467930855924811481062978470159838041372747141553398199010674136972919159683740282945665879310899880470482650100467204036607761779283765928201785749464309646276292906172040644423436699635779811425640541914544168957848576877761440120246969141266163331286015668983657583035194946517556659541789095662777075860944730458008707096267427857735580794630496120075073101736796324262553337759032519179570549337488442018660938333721375462080615127212867830568319629784264989734949478925398920173012565880341243312794972294782455006003927475496643559840253208167330533724642351678217779540001533909686168854816338513623956726850556348298427051865308012435017295236726878056947581214123295846651974340102412717429914289155202010417518372113049267321339242848796753254499157634324612314368108589476365662959387663509983343704186090420898846699492407956894542421461595550115412443241176822522097886331566448257204261955920311499611541043162189628545751246741379307245554114258374055313545021277244871122624665805670755760043156924875934222686969106199946645765851881417456316202221621515672476461034762841451961282374410866001809246023152695780056979464869194855976086533951292265382875177561818447094981529932991863223423933225415390580750028435845808135491027643416630299410210070287729747267568169569012341063032594897173946378526875934005507098970904583518405475910008841373192282659285523089907808157886812010239929676647875362020853383678437165334732428092260870637053969697389183245278034317978549207169249250798403907668907978556116380505499924525089129862259206289794661724822116485681518322164576105280934891892067859967803969324051974460986235070932974633743841139746854853052842088010329530211677690152071855711160885846085400988784531953020618211480259913154351316039872864002068816733399945402987115007267775741311480590638001431861416880486933459419013006884652029827018551556004141270093764624827040595757906110950128519451259773726789115688257624974511012371451807894369373253701698742439920763265839774975639933498802899852506731857097832628390137903255221342997866968162692917560684771835699993104244884834223106322265098989815061306434020574870919221929571740255911221841213994165398556322588203169573940595975691752658378861568011598640372932869597354345620072031098465341251261827479991216958803531720808346055880942600073611812170298046124365362115068399226171757313643101938045393732614935898114032115196122121073359716043038033760451373163618393335634339149736874693070462677586684589889602124443907470431450090794319100844251268119534785380728478029010171325700300667822218527325344430149317145425927489919726599766152203388956580448108954290653948620898561599987549964543040803598775513008959654455232410374813522631064567092623200589923277703254183543479488833280115950695729177319523518815413822419542135275196713285391194575952444838768723696050415997806890643170350114018038281910059933611547488423015096537254756093458591284363630709837115278902166167147690259519331246760093671605666720125200541089119172868887574457138145948718528743521449779315499501166631845890471751058625133375370535263410551492564501036836745025095658276667263613952358646531320691776630407275622075919366217097904993197882074416041502506856181582992003832058895238080560033791017448536531362808877083601413759468527287977883922670193070007582693609784600623780189912314490149453661506291364751477734788087392056220104648916693068927574643499051337622992874671511171177513942341553157672692556487214095518495392583879687363037084797377864919793588901076439334809868605576363595620567692562843290129853020345385198847406261465199968112464057223404450508702402355202366375682345235680356892510496933302610639515887162067017136038387490437682214723049644989253707271472617341176411425170925503164484298306363058460850309855479599170742301485010694690143640556485188992654468539196394355494153919144228898995537888217038684795387475075937575032804083470321372522524178622401461794563088099046797449927056221161302701382826741463581340720200891530718311916402136052214555574263392150016003949532210247551065470953073483694821986191927689028722578183927799439771860848712174726174193534266960073448128463998687821157860247702905515671718178824413812134773747459309658428298231828440515420696823261957783014536612887865550000752426024099718718566193452796986780946569194631762165712142849145473734534873151510653557027775491633933487950331405791385663465809947240512577033522358961873470110250313343778635493953306098473137335432733714499745162750353910809421901820699376271143268427985182515305211251875611832225798403506611039221030946544054176899477201319666054602471433675266954191811227080875735555517277670752858113411107171905594220423559603377198052397080855115428719195220331759735815046984157062933614664418583190402101761849862078950528123726500412291514515102980056093987299017853725159815272734945973532356066891848245582506903367872594182094639568737830881937536356001384767311117833903885136547571345186408172370829847618635858154360717683823961733288612520963873688639701898264804196943810176833613593096548045088808670265347938683323060530732308439825005737022973940133193307791237092749763221866880658827080330266535298214666871545205642614471960135892555857089384713311979537408848995394472415795444961426399346823453590562660466816619370925439773921415563726331273020036447872184847223879279450815639859446536532329132012157085861457350971915026501029521358331471388056742256813071709161970683329083833716367277654919289739662525403344359965043452658651756255050773536976413020157196461417374388163349325605999963278440505351796954544119432448543047783526132972534754572593149919216339290374897293041129920353604227422589459838624493838834644816012838134980882186879225981392520536479076452597976719949628593343670572639239072338684988446593717725780673077192666701750814323954523604715471565625777284176236691175254945143470248557861577604408271025186126587127729125951294325999740829838523777946517263292704606398852934445093992900543235654303107196209980509526394400766980376037081121171021735447436397068267279807174491125276868898205538245026718227958789340961982496635990898814195404026479996881556261475222911480256397797374903691265613114371277887884943502962318332680538569509070561553020686197693503174260116235883992268034702545640970920142907377396478038935122973694726129808213635417385109876371293860230201565853311669981712379385302989128378131745903068462162777701604921121310322165710438341663121669198679379364022720770407935589721530899123049379068265068307099596332170602487965577653451391153333209364946940478376875935000244020930737283212223688921604007083240067556399535494568917542706677462496747574740367368900813769892728632537168862337525156485168904031913436852246468133015325368690014619756191597330618015973866387815569206131529251917240901046031408553509603341882533616294793156982417670916616585197750262938213819958872966571980087860129231148096546705445260175022796868684240420205350568503558230374024534332880491048212820903124208973640334273183511426422410068745358966620569341083000298643195020084711572237246723121597873986525560783297667135627078079911119245971270687985118445614907726283981366879818584230846537376959709610893432492022522901605834215644817564795816605756955070883991066745375969445498459290080994043749963192627207316857213482822700566153293390512499524668785961161505126196832414246161119166966657720762050139055373236812327107392332501948839476380560609565995591081141717886367036816939269158514438738455475230758113174213170832962928674841031537017748749401980350303048933493278687390498160611362144545856634351285071091708342650011722990017314641947166182427200277034802267669060089998552711603979898111577865183919291835699488746558180835055900286121478069668667594100625554140361418126244935292565125445025065773722570964117301519278403833281167827145748448943395806332849695431395390811197753588360365221510788548560229684198178053063946739552964255912427628383564069706904833052811495596593367928797005142484782668629581180290100481002967719435294045791700185762092532384528677997467867425299647396834349893272956448364829834576938304897267728938892524338316142101948187313730683244048956999612699911967465739349879794351128767960371603537178321760792964635212266310658238437562307737463563776489802216728369105485248965957666796808892769724223453075130496313476830806132742269894265773441930166393325900941059176249064804848504966860773364245420140760414819176432548801699483530677960936505775344019448469798623928246286246253728626495313182345623452750185858192613604673641421258115844352177939703462825766317525564983445713479327446941121754839225293559360615367357082954172095897815444740134470719054958717558950929533241248448596114514501415989400493335962450695294376391152162089833125539113090108589157136519030709486179209460480631343482932896468755618558935017606243738462456229437344267334586019621624183696009494580607758344909621230393741878166184329295820184316793278800022491416304206796621684206290028167466530654994591038142681394190545753185165574695577209732212268079976291645782894810213792381406816206067298623321285685868705347204614321144758559066044654881269549870371926596787274037910968245699991768075813846101728968164050531308621163751125871010378596756662053700658847332191587370712956083874315287795999206605356451161871399314980564277747046394620244555149052630897970700074982738991771251408825478675216335007364824585282308249457553848831943142777164199482312152040715639401996394564712221118516992245096170056818223071778260400322328539660584078910287751761318704198674310142662067858527231394270790713454257245604613886734520511141153144236348371399851553181447915984857702342621605925732608528571569324767488193947114936780638962280853682985289979744630095244234087354711955050377083624969043798478428608299599911106749293668863662916303132201957613489553007861179713929822869331660625768024497723580244993727535363186179856119344988992529197230583284123281456213375818171696198638464432218143163966698562999763070411656736910377360989836456086739754535383417444136726959577404219071901315676869297729873080559797094572176295705592424286937193774607592797301114633983095181140590612779489357540662748211611700345490223840179695056062375987744380351446486808791589467647191320050405748668174838013284767548320088726694389874113083053069681809420124278142310267993333407651836961706271681597473451190664892025338440948017524872089733974497966406404308189063661497011346706175525728536939377520544123147820144519495409957172665053272447185562859041148358730693131707444070091792956404650610173423237097938986062777894559932915514370704592916090540805406502332746341381230910630730230418904638358656573629661203632353201296831682011151257816433632479480241330495458989697641911127360651180157835588359599483294351129217115001457935924705491005540882288101987308651126342010383842306736418981593697542957972152072174962722456254133304238980124235468060467284336560617648216019852742907289692203675105380325829108168591834727720278888565420405563752617617492737383271757021891001928538894528294989616284349648497429652998615728603867453621928759523413638078672692070426355410495826591580267834501330187654770542864612807603920074957069447799160098007673459809510171915257951966451413115901339141873989736195970018276772550054817610100936616614961579942390370078500293019824885517547156541488746622157319280576593223328346172065486379808044886128028742474400711780110011047046481054716105444025431362058925550433242169581082021904098165795531128121884515956511302874415433559627267152836797191035407694280217233698755847253166705922370314558729247105832271749788064720460129720326341410293730937059460092349893736322527845965683498449752356709504676578592057741694996476649666851996844252617020767933804185568234700419200096388533955571041219190799884552179524969291296439135984777033463086462915572663065388533735898765678087267834881939310201849016051968258424972613946947581032233602044807349479835887065830997003840920967588616839778750807618623249844174343432850403443363874461866691365886154905521126220252976623449473210752670162753336295552950408740021523900184318119258785887509458644935699346710731327186662258606321513636239319460737848746541755072606391149092821766635098158334688632366253380826472143962558643187009491123450869171500344181624142187586100043475572294736869747351715109063321063703217093533998324033023777286961105017762756139262952725649304271842915067574695561474023909883209831189024521194592771355502850764861700569758119287471304672241345982503746601232680788589244363387068430376073867097804474273410654184067396728404494260014477108688571327835588968434472147982171255067454375129530128296714913969449947158670233550463580788680962356750929350268164981482185874198490571154967855551280039445401684255651783288527815993183679165975783049894491816216869233998154728970554453452309191988718394555843482879238832279455838634522452349576262594584871388755113682780498360533871802232906756382405984124658054363796054967533030282769703281559746630618000722288315634647323850912896748568800354821524424208135306924350369978682594766656995294662525565819412365307049644024575650188707479770617291728754779449766639721758852820290472804145703952531807263132424708348191314319119529716157036083777606138908919383175602972401056302936783412657440294798664919047277259504292320556924267312910691077366333197510135762121045206868329997921685844941265103381660368757632242338075356120930780174325700217036290201776408752208296396979445482697504211776597720158029963680803046279255329385742565194140631041499488448768114867540812918159544839388839038083248491791686858314122703475465304100404899913063864804961919098003518700166164935192166766142021378106472025363932275594134549829414432550695388735456370264343475702863286726856925895165386734507217829467292803034303736187840970486003552645553735464089056322643277055644255184277873145454566051545362741399849421309069559002045595259938932197961728513371687418796292776291950527529271345380637216297629490259733682769904354150153061458223271842117360777034500701272507267458639369471843791847124342619564784564028491556160873057212284998271783151129401250944148876478581643049368726166000584532701812797139403531156352554437808814378454228818455750565067462216663946297547731216341455251932470263373999240453098544823489419675579621110084898786324780708545820458633322718738697094075741569000863294824781398934963206998389058568300055915089654132957436986183308397319922799497240714754769210754144259773038624470074265513280082606426779428321895088384528584299796115051533193710644259078712420679696629411047627165845693510246339138526391700971552332602231983580510329128212535521251388773768433896688454382901303638774486891162196873534593891116254344975171134044094918301268917298015538076432377369509063318496493218057782310223430687230963716588867949339090717230020254333065417305606612513975159336440951939321786814554942464654782200505101087074636702450514238800181294123818531426803116594872204199703463586593482887975260788740686850134431572581294082090793873526274908618550056928833718324452258943253212056840447283989378896297478796664308784964541713441249958583986575570901495713171339498671840778729480808940266808384239301995305255383739159091327036638566231129622247356642372383731653774466361039662933876054246799318895467829595273877093513680981316920939326968967907688381705432019263564337549742002237766950299565511671181253653175825430344083241272416100922899685179927562188401183233512142597781717379393110605514702345869689622350406796861839522964583340641577401713899328183998767819391656704989024992132715171918264025458483576223436422289074958709513288045331256975354667990937409213499405615048437501913247022041248654246749021323768809777138914979766942986891054005453152935788495472016221965583146020735720112950611496258229888963655738626630641154658888847038356998327888749715499866311109622514700938688165970185229605602998761824765480516680497900787211976938642861953452770069237219632024684249838132420569063971429106084165934784754327754713324260003689790713070036384732653321051526780577201262740110906703671944428198794389964228207044378345671441383034182018192427863443883849069027228755380738700003782491407574958750161930375613841613468221872030222517461446433046361963347212646567706266492080344393057608124797594000963180879264209547593093639095157518566156327629404543405177399209580736389880993701776785758838501974790152941177639782484625533742429453578098937093108777585815772426732302103063121183154746620727941493435709534267855050331144776994150408147052687256959867520077645527260407625847662037808226266410777925306584076332401555228190500813130708777247828978979556586701596516314331425671923750982153247094524621959827654745980826619612614182348162622882956089247755279091092641557106969562053116146324871949646155551916420130189501760980289330628981185394272573892338488305002959345754322740234231129656172778510452987110213776889696882315014130623698375334019212339060242455204090053440395935010916023597259264550214908134247783191689813625337110432799674075154535027000871346408751295656599290229839573669553553829343191806728862042903646286552249473953679263052751769385570055781098035505791321754215562686849664389353277834803973676771577963726542144720129601232786524949352816294688301033112294582214961344518683533397207981893816024597713891105705435302796324589848804551520947757053846070158176229769882941732281477301058873766084233118518530394911603254762521354443253608433766251959625877008539279957142731321218856384841072854457770020433893197042282026515328262639753944935357888918670446057665911163923429631045750947460795970007880943508716620262740889452766330529683978577676261652065628361567861195280094721739003644863735270952389506749404701887252356850939819595264652468854823726280112083877086017463190047167684731308341755446988529733245094475592414772566296989345563702533457969493082592096766704941688255519033137137433669893096229490581515180221876997696608093782540163391416054377514828707903021387611565469269300577503150273719177405016427444298302134139037214447583882087625352656344099446332005294355929477514635388693345245796754349500387804822124575505151681175094994196971693504291909149638632467677136881969923248048595543309760192878848714597668506037282352463035569007936331421641209882985270185151080217569214429780257975118697046899843528960704359025672297571212319841343291172203282175514045438077613107410615983292432386411151950564837382955818553663909720667415262680548905746759884696178066372820674553163832571998604638617929876262338042372931253821956647603604703976185773547785664934607221682633830568962820619069522216234089252562012047102390888074161334506410388620646780130533771399775273284633609117512004763448036748850359542236460982484093605116152638777563666923996639883522659073299831659007155812012029533511219527694375951917041932309172554182051256329549414606675492792645557356021417260273055797444434270817783454274338721078016018692933164961775332514064246519709408040910288226422036137305431790287295013925817393957930173413537007738470324399732594243550012415631831347690822048537653850583679786529260774119882109743587498568421295394291111320208010765167220761259131578717332764679711693252921253028935857699047529627750284761753281709810578079007725382432476282898653297855242376721790415697510668271873404101535996438768219545254422599950744490219363033891614573522922567297655845086206003684159279264382789606565508308021061307490307539820457382833594698532937073548474679962289003856526400189394465410213385597258224152441315977849757613145968979527727956802163200663810525203780618227499728101176849608990464381276928881691547247631788215854798880508966310949559421688768537504014029570428377521270620851136462442759044581082257320698328866250867881551155392796262263705469608832603995168368689824361649404328772257067218273979788466418992979055692070108550103042732996714239643392426375793791076501212342092666393660424950305065165121024609957708185828335044992510802999416605205931313177814054899173329213813444367105112586826117513717085536790766474236883634043690001890249175558517427770524325167348158058454606223440720460626145200388122197986252739492855295715352914755015409466319649813319325573523371735737145175594184522416624138266929799886821862764961886169647982860226347996111946352404226585750888702462062115704530598808737589618139505631057075491972559160780817801336744585875643138230410612809934784999486337841458793593463888928428038905724016400110092997727978165271574372371899398688851609789996497959225889272749944316846761425870125775435261644640644119029416597921025122622686066332023303352119775684756661788940484360150993876781941718600352774360372467012879377884449008756848502478045484741435542722001093615724153159615323161545880272545050276078823524888238708002711306198830296368905074994706610301534613678194955376474168033782032914406405799324087002876840695067341631004251252543474456233116068958976582588389161870436755686500255708312213590368948709984239085664878721355144550448887297662933207937227814424606930518164461654549946492431297951453381248482517369467104748453743189302310764183203523234378829902822035490825551111335883574212676158174296910803950251381110217160449917395157539123833511990669097015073701344465032837263662226058585016797221672951644273771524212784672198660928782767760713797947184380966600042609827035251231569465917237989362175823232465654033241568728301387117850938780137685791511320817778791030554787884804750743966956796774665061242431180948913358231751606910158385564246860674375022847792787123447348286237160772848291190796885634199977356651157065117723012108597372204614637955329151612458694095090751431174672939717309334832286604907816148990853496152023241063320842473383087207358732339616920894768577943180834357648289630562256842153777938479188243379031367118077505667644266172313976801294344665282718531714580588764710720667123172191628214317685894517166723153514558127670429741228839991655110917278073881141773714432507470268202674897437578711811559411826538816827857867480605801660603580017169199031388570271207177160892437915299780945546082266843857192852035337237277218752223075237482019738293760308083968137244406802618591644331351789241549087494610412633964577090990487700984718219477068109886437772665315401410694789928072952978683031085560872090538702397494761562151038450272044942946564576061754900314451513227342964507297695479605388574072335715280336750182924265922299498370323645004004237211820119264389340565515357292942587367573024320731933456834153363512387275869949249883039173384794234191724796007441740930563278722957767284531608922047314139212170908284767985824117617884120881359421072784787444128932990952069843349926660792171019140490284840125803117555828303930133050486564042693144298223565468593474337808233396426301952549993359328350959425226777713489741268205405126336160410659071415597393129201131442408422731846937079299923039823716470526895150089351423992572103553767473335127263268330885853809579437513338988882940590431337650167805804503368754032909597709553503164927702957496652886470649602148996982328146618070778344112342919520105915163797574478928625301663148016455865319877776434696698713346456056180518972333095667458462082581868631672450292631294077512911334325683452519651502622355566978605100564246019597592521831224986281568040003229932874894499849427865520315557916063428164593336551833017829045458306183778761415940423893860380466669938633350643654076525004230099889420913001122282520095925277846926522452007241710510839067805287683834900263074785480127026022309714164759264844420235500082892315763479674468865298634710820174986100496931985634400515545303423363358734047016085485894749559324251770395095284585210325279717021467007740680587777507717328814215628849369863707806368108261496757839203841337068537036949652952172702249030314056534635680446006599743814267282212877966412809088634728558070813244286297270654808017471271904487413379171923301643067869627181041286214092665933747730317245028588196916725054586117244759328481690918368377107054035717200218319946892853477465383266056499478192545929613248768704869069955328625428269279575870952209825450737140801254837463262887911875500601209586039250964636805619191196659286878030384370016499354487255548123141626822609326331612324658992474735474048543991998668374715005864130820407888634908543768118891038319057148960374356890397572032780326600268334281747266611511854858265598471791003436240209665101816857575685614484276114551396252265509657852232567985424173492767837898797912331647277019163347172499938703220618409668412530964120495358452769773622961812844833711026936855817998915540217775951180622585846347745165406713794062276189749879135211594569869338314522456374434831596500855108361212858930721694490122120848797506826762795025803309058962174747327943862035467816403028454980590171773206802468861311586650071753245295135546193726354837585307569542729688764154094515382814033765186461894384189851399861171277363865935229214958192281078928899993583362551027591142017152942940415191048429724153244497466266984453268816132110318328149543710708749636960205351601243697561933803559163264361174956328929343040322195083353877458497185125668572482456625525312267373306926454354672284721098331096361892457195797024656945152684417904010198892529761299944529106586658856792398196835788223249432866123476814188682276066244063406813312262280851387930979790885751603955899608563964893208404832456133149015905102879228266106424000423816069903537748704841422996758117966499445804402786802204046352018272505514738224734258858045941525143397750434232331499325763314988376102248390573581917070219104880619675885629726757498156705341646740846442087092985952918786603968081489305739879654075110444233551337748664981140774011786267225820941700407994923043291714051096294915516513540253320679910784277773967991744426564780508872634944528616447934915917854278161369565017515649743470083382576315278778994220621622943379973048473354021394354439450865408179958669793661443432928541489575763790488858288874003268915915454082770488791158838353343872077903497166780276845419984762257084606396426429386216237884397342206635347657603815237984705560043932447063043759554629982303202767934540355262063198986822082389675944728429455758181066728278536559424785822128791500662099628876995407388573985096749641874827856442928024918679355394493086878297300618305132200168649899844685169618109825382771899239807855328244109818141315033243389161133953477883259650497662411393046170437603614435374840835910470304289876379434533057769150944608049849484987876540572210575543711169174319088268429837907884395809020484564877426277206949189106297978560173380240491567040497714202566928971736964661981349730333576133689400562374454214286568779279237859879867117703805033345150421630860768080814801852029858962544352085641033382036257084676235459794268781327237110705604074050943993764163077963601991336412038831135153627292549794364380922986537484195314937200767695410036262990314393950559192095817931860272932294804000361223785168008083888179387357750724293324521368481745181169094912999622751926641744581334035005116571609351536433760783930057643845143477861200316176566309253477221921887937795155818899356146758118718312788513275666714022480427415529544759060255765759334852898311435866087244369396124938662773942996903694949847275777728055578722409801565409245294811689102242825369716490061805421090532600309509899317209654776309978591488697256295239498045630722118201379158825963384475697713725471322161236357484202521176641679779232505363803267505815134516852574338987048125135362172413772382586978474003925707836060387947887753276765443849945897777119673222107905291721391177365976029723143382006730521904664744167328467523217117287259438224328507076587004241084943799439226328973854774523241664766820577509505821291018976603003065684350695671141708697892759792147686294927809144910015180509243039342115345135403608354234690950276539489831996499817852321433228966903863056400572003741037005131166358376717841586928831326661626728142138217019278250645843748963481194164505221477708904861517533211268070836692065801154107497356700029219268716709748965730746444974625308768588914803811374149906850665930419510987721445963754367610580898063718561467640576969492146321088620782484800755817646244533158319790281898170018341864053500392649546392319450796614380297538541051447178285066092833667784163517643763728480483232655911389256879718458766167501960347996112353993442631782812058375596334405982447446906459470783380213667669817437103742250332823870995223869516796935296641573310835303814625706637703586901156023010528131950219718481105577202003220970130073063978532292032625631704785860513190349312490310551976215026753235266853733355065555063844982151364852261055663136069655686563178629113105064515489436438958644726678993820074104491601157014310354317524865531788634355752746364195898694572177475425301430422667412817994525408381041203209872951525562139145680823656680300315706864677132250368571591764542425959194876774769342045408788017097450488085929412061300431623060887404126629280434872215016432641214976411749200983062216218656150093366884347176366273228440273380734644748998111321925959853823158630213593681723422012176587186892457894937395369294914228026955689644281206471321029240896875368576205290257451736806449794096200260223956266282824441083064613014132589731249876136308043618284781881084334046069509676436295604958020861034810279517427703860743065875453766378207978913543075000814726829389259113399481538356703455846382131514901451514003567152174561427847587549397674895279785414389967330430705579002794452366884995149099692704043456907642926240198393663424468063687601950067672609952447921468405408435064900254776731730189540276042555194758007389923780544072152463326173026288575623003499736003309225456915566370249544070096850483085014657204231667435019772469843015413748668428076320671452382909316320063702033600059760621362970334214396459360978734992148018768756109932164742693952907674843034717081134327856819416857480887837052396777340406171716293444659238379072079435796708208242593474537521271322612791797412420383171687563771550877134405374532918685448066817818468644087392972653932924908618973589162001986470853761179119602256529098291380128250191389413209674042852060982149349985136364966275510017798078713868331627668143411412910232382645203894540976374456327949385868942384473787156690212817192753312022364287715637248625010440386155031938528688517403088442224965464382945023103477086791642551521549394984442889051552503478067507596447231785106647642375156179004589168832586874957934155462860202234732777503016626451735573700756420346467842949109207898783356064641257142000405839755061560569060016771881523311108659466812960294990264996510074405780774280625296302191848302821001425435727460107193108791902774587999323302192445724373902972121334309654941061150024772056578167585528778642983560833451397841509887640754350216678794430499853452624990153895091006469347537858480979153133265922304561738671924583031295486397371072508826645054430808528262668844144842988824664437709355490260995218896289751750390894617744099365467837382460704828375068613354674205957556481718030409031383186008841565281968202066683177200347325260123816162234557645358351453494756506582911389622855650491779801907160624725180418093695140733690687484136738414085061053578560851134549980484993466803302699780305705409544459799305277021049552622034009272602559541339399752509498558036526069782448337060924836657379860915194846820740887405401449428160448053140166934586792547223535919851550994179859767650219756177975650279822748452625319862093397036092442157233669412285388678642647345433657847044172535892372821740032519879220987555248443867875765685343990236801638072278848997117564245164404763723473052579995094764345097598614543679566335030063985321408750240936534798299227661651378889307680200060789215392074686024393465513676960452785717108979698234643043916824739782636819455543143344282912797525637798222004876832435798470979798939739279534072250323103155764214355235836333052716536936154245127044185368829318993071633795437943495484693192162240177907711773451129084727967070598051547816994119189578452882131685183411418846619283695038716550842683635109061388048722722517471956482985597292942276961068161311364184445359003909949565242919258849512443278726701576703433888027285998425116492570217566203800202995923927886397303336530670308804905045396409446173750125850955069497504592380919660217297329197662887056055005269072472303617699179390242405143770381329939528796113682520111449532498014067858738248077119005699924250102731466063698121474268417034348873393879328870085037982080754921710572246267225027778228763331809987525297020665145158242197279971943712586840161378373796846735400795344477375878316913452575765069362052247507883718967820768497151756796258357184778667785995208829885214273712633820553608493353532025667084965728762578728258649228447279795553861599744909178745882963340268660415846718248258485572364057962353399580648290626131828719482402648987520499990938644542653079554052286564272666532899436465553468881151830869625978247184981676872170017094241411679712753441974915597697853686141882662845298981525259903616260244715469137392840201879474660934136979752714771783380512725923182904010850352436688589527946746129220297083004323769694781624670097124621236234524707899228674120165422923507325940769445713004405773260808133136820607547479452402409278060537310078391249330195042631600309601754566049589859734024131919357919231275113086448075748261194569598527747075930326935836626225263911819086156636959690794552578991208845480075457155023252778903527455121996004735043416337307423758002017041355054243432715386202318868913352814618600001851959956402173730249879180497126039418395408705289144907175429636200001389235132137687875614466180619309335562786513438897734155612661564319307393076139387333368420591276059608665869915858580226092020701056229261214463462977997756178750960920874671426429571509954051193152504213113308909902468567673291052043898021478327412217792431298023973560930737103884119601570513076419120736812478332831216793153360704766802236020788620193681323705086879263337700931403345601677319027235885417299076647618135376600853416930330720034091655094056178416159811048048454760136481840607069243354347099356108583276540999922682047595587393472379711596620044549189775568566311894032855886195415958846240820104504278486512418481683104731030791267358935641392289026510589125436640385062752394098938448893104532105965848558286470481041745281307794556841489535316542992228453710520879136728309047646475789577858143664623122311112411672416919883505154187043396928587745678741654148412621586571938635595586584234970977252786276367915219680599291502423259703121864998800554769921658903364012038926624209466186223494649547466297632789203450113080053132021113181434919139026401991863454150126347005430357380887574019079860102054370354536265766398663657728352125950029132488972889027394149827870025855676969783228190552118182796114981782404217149872455656973835907819675710852996914456162373297784733691095042043525912844646474108321026788975756148223029515846434926946418606713638313811784086668534858190509012028471876398850724458630838137185132876153409979542146715605542804895159478598309445452917980385164942479569342600397617868407207374483391488982211128314645814193391699667744405344924824892341095442078717472560975541461459701734727019234451145224142078758108012670695283893030809057974298420683620039066824775133539698620644127902127994202483259355587839467030301160885222059497435185500527687315503577554419370703493327160221888781391892649928910484267007686157150279643375757739026545481633345306317086719805974110058286025544584039389548697064105367292161241090905023214237218951615782104415877189023354407420864602755730973488544663142344384665121224204996701968517075004723540558767759716020403749861160248291643774138973613771900476405312839766075293093482014620520053303493383613603948272319005870122954141087406325832177360890179601498067148417882172129148922306775149075266884279409028389994176588553177932384181700533134587302449850539954887958282204640925557927143545180293661946685182327489673135279126637116844625094969453753437893574782383875913721430296139952546249254623210276594038693722361155952576605500567451128794001244956713515372001684297379121484691055586213345382653013615256664873375016193992257402408407622127815244257304198807382152461532205925511402923253017072503094164139643366745264969314174903046463286947324257268668661593614200211228560418807896967651666722865804938997628822029365074694052562741009056698495693831332524510870124206620639864231107564675547049334498612927538970154816969234446108191919241656269573004999866009251158549011065279945344633093751409810888272436577516044971460076230923476825438076036247135463855034571227550827968174174506866796231514560958123111405361690445896452319863437832931724796756348333779785745826399866339428135885677307946384336004818645989344176801916134105339909441968647534832095097654923998202113162919634437588699483170460120608082430795781096328615262713088866731065944940511145165479959443921555221618958656848616888293862216970250934914311748303090403784244573893764045332273472634525431994753826289428800585147450277519905746753915568070022044546916866497084610276880944662713559305641842204779329447480673087849995738889920217538266277123450154558457139812962748817542313491147860259673849194263062568031090467809758405904714409446514520047682354934146510490370924634255640464622636685902524541809819544025502673136642155599526618010879283317566860616599741939136358791164572371590024189757677073532237049694693376685077511701902612923520846208154898163085223303353746927666047399813601253047503952066738191366229456118559494608263690967782985196231288377171755240277409706313182309183604867613283005252465391514969230297324426663827211611746135714048184009174717603328813610868271685337985602996299544151236583922164801889508792737930675241498130581817018578712012574923614066128482220301180530366020435069617381282628085145260514675044835963286494076953639446668053657892233630077510893801826883847433413525551585433384746048134583718429798093490844173151369537469473759726352796927290233517969997954765344623013534018571905890015704146084246002778884527480086360222698798481451738170832757927315311765412247826094206141425396531660681493750773348253615771191716881833519949981308126632456152949628270354900019178844208419473210877454328654460341114438679077887415116963157451863985913072166921184105508567079553078097470448800540949982063149700734568613626250361505609389492477280151353517928989282829423870990417176783103763379069915892075731882378216887003141948779153703744427020014687287642043492910537805633917677736693228411836990813608455886756392814932951971944796979096955457283696906905392293902737317144744993724423032776299291156593483904148865416686962179689269115046320203408841277232603101103458994957594551172253979877833111909233282482439959766772203279139482964457299168428641135110136972498795445418607992751704890967545199698298531859308286171448056149321615949375233334391345495292245757527283979864320992695836803086218044439388230667551729792695992360638887130645601327592845921365114488749466165779867533483676069983321233033139664553896834654825190318652735130354711889633988164571011229118765763916449171133319667591536342995323757688640068995403455104520372903254116148384016109545012628680615033188874403286234667593895500184355054898569200919564334158266746964758951012074664619284979605841694256764331258507963896776051281844743235660829132701141547069557814523725522640496486736167877579191474430341290002995413570918551419274151109005376586593662166884804155851072990628456066746264242269521037189516962958333269492257132589474675332780456154963079496809809997401810160385328590178065688947350561397456585556489675056663848941079688752972628842930616196002937256385488483352881992075838515825675434082990648172640468356659821607162374460340238305633786374527965672701241718174138032176186587197540369286211916132406057771183918267487302236967157596413869718063888807254672230363807856884861656485922535199787093587767495813956728905627449444521049207836838448385076479330563265356976334335375298515910619398500364532259687727796095924239730147045347635115898377818684619767272377929159121789241972958603713420356863171588362244731416592750644492053696289738102740092318660075890634051515603265495639944251705712065149139575752651917115500386480831873614023844495387459761977273700293507216393817061948444044766660622034106564630947925984281180419596444094102698351523295319321101073007041578280888594115791963510041407304544116468237033621042095536126092475795839148257562290024505161134435685971746928467860063839020447254366114261681722190661719409114169075043461328604993370560480572788204464603319820695312098978299123135856052970621468341403761195836691241002930280163159066307339832300019466100978444954446232401665163055785845554241758442245472329575612645492386673132287078960427407563797907210698281415295896498363930247358367632842056650390248715860133834675414442210071361680454554001948266487812086914249547328965974655337386816529604726937550497908340326605261888179586033670333307650699672174983700428390679442159336294476400639250159496119930423846223376335520214852781110767694227099461146765121209068978711075116373530557425808584692794418865666916213210516779250698738810782389034769196289610244613571543929700587704061080483440863408984479930872703287296101978084597120260509993235685118634016376131065378400519351836206555744072404802383791295080954275159857662435838637894088288211023405760682151887318055417658651919950360867369625729260119831054134851004884801682679555783751939823973674463574315492183965549341566398747733253052369172895006655509092490789494364264373122071896518133587573394313445319578842049436537685507323377365740251731967709610892183034756246603847459327407156130293769211421108774759175788666511687496714949050632651575357485498990511342372338607939100502672276635798319520650231789303547038854768039360280538644074507901701552264119872317298057220931853953389194948548005809334609557576194996446846126252879273953727385040135315622214088336710775162500253973621604774369406920820406262153390486424119609508148899910668539000845529004994875487512567736065377288885963205687257294672657352611017025348170425256316538501213388538412489548186681976006109358308552681670128283886170647578612244844576396104052443149875047525672565530518210752950168373306041560810135251188565409102775576062852311786543401007569315723640936457671381831539901475702248430930534942343887503819984225258255479010320638439519028889801188487091319380441918153696227471809321846718832883469028455256995735108746609493781282870843456405908379463440518135967321532521080204863486908025092889722570363964004377176392060266966334202670030118674155198814049627268032708057117753595955434556146392066404778956352066275411043016726661330766974860247912781830826593680622692351471581358786162817269292559416197123984197709354066081833619953947063508200573120803211865506800484549707377174467281087899568271761662751386555721436377597979444891798238985669982943184922570619987512417723788709248279265208191004402975127005311519460748976924039447155642357355434598252564493833475093341953038852675264642898012345803168105722746231512824693401146290738554974819718370501316129192746851865260288209454587945677171962480555182424021981262698289507279969068654484188787101550715683581552628827628696791071997645376324276902798711817859984131255337712289939457384287101445912806890332555143137931502514650120042749129608016559942035064614721030679986907801711850888007038123803213498414602679980351460917529624650367415246851805978982075142806258855156308504108529852074964126101191126452808177841061382555622149445294998314325009190781528393183343223396409158357821469268614399705201579943283412010627239809409736523811801124659128250928296706653155537005336454599147496916686378971689077726953090625525364571868307650481561516851178644143827032344151930518443547158411403979245336549266989346251390700884327082006480036794325558972827641625808305030595833268841456302821337106424728018817750013844650129760873394601179869157089004040996417340752784245837336333809619227949849652780414591874004310212756853291666400359787705343849170245649490717953786695207468782458939298528419539359192595366910578560003570846106487358057540404496084430414632131121599510487742605378247880309330775796640532195086234562415660641039157754338732851295037059961333407752198995260122392701768697961291243638737192166045459519028357645841659508538719148401247298227505108895169496659559310009185393837286059100355690420756799381301019594455974682394514804466942345748052350172495125865068455796041608960087483460705357672284400015483252407054977023649396573741797340684787031673407618131522563018858616570397460971450148431957054834214241316400701201281440993632378733513378292645909915164137667810264879615104452909482989090860533681218880476867276212643902799539799440366072626773128015604411384889740739190241283978260265880340293033009636046261832209466188085330880279740382308153157717005120329238620635540574139843925848419482060721729816452481649335332338445271014902194487856881540914402873369874525307417648088286550056050487019087103013255624636632913290011129697632668095801435900369752286363807359499147280165302558868606109733900435360442482367811004360636717112630177397630392251947565959344419892406283581911885379786048260103723113370373975483494203334312162803630292881010948700516680052642170052092124635067066847516754398092730637305337004794129463965229904622874769317569009414921722986126291605331398556466232878718683920234754432645883603936333178900467128439917126867094592829853550102269307626637425266308353425886640515678207064176789604341541355769418245770739533851209630203877625733869577799895695121168060062109009396369919544597562634103464127161834457674189446571084435588752794357113941304924787517607140221367367906778327521500321108145610425338242347126893846629222550603434480721256208900418922432054818147417369989334906684187235432294495027923415557123279950861218693734612633566741934090486857382364648461528454097163970618334015880584190368920284727586756600616038039677225688254363517064577184899633268742435520268882397250581011883468417106931947507253427168840593556575691296043723038374292452191958497645253236049515063131451346910796550635976895063430267714319517454489061998491847416928375456532224416748052595029408844277551881837526871580451992733251975336347653409627614242536809646116617003003888294838833087938475758947107828449525201817219700595970962929629671988356649368736772271813855118875199209622575454542281723544701373587401666358384852869730997121295959321914507209046483740379348311464642097790040443033696139369802147537584232334512202948831425621302260803732573565947498604294867369291717278793484373758956972329471683918850204432955403996673024391867758242283117401421730723878474180574416931335810159899837765926681982039637341755557714598277023761137146865606002102144331466383636467428857726850244041083383661509306890384057935450115019098888211685856124582361222937866040266148911755735645283947968050734500191467002582153051898389861760519071860719951054879978516415202857858038507972823983388656359651855502515518006394482447560403120426539228148223753442494881579441144400392667954394706131210585122990152090792065011681723525570282480397733332644494000681998975078098587424763748201720366263378130670693059350154034850886838268604302217620184972217633432945273381206896978565597048482962838758576778102696676257546304270352043063347285637795422594896017705404464087507813334345858262400820215066287164665390636789847771726083074688456525439817951282754199516176757807510100711733001939077353885368812188204435198878463460965679391228318588761401953557444526055498931706814671908596625294850222934147079725958983191528124195828811491330773606183659747822796623394057148500097190907763125031852362093628193081623291480674407263852045710345558575316944978256070330303227881192984130086697446180342602499542937189886491147587907653443486757340759910090259795204336207672714818702319613620534490428301770077054549318612572212469667887592385450921582584996321693205082710977118082326400189974090520178923299275811999962790885211933846521165954502006153178445529756268649496904662020406767386598701987111807158381044643374536138053530693693251900340860493591590885565750821263381649981750613660811688327816830768608783779151074139535467172386195826314322024387060769454993677654721778080903425007464953646093078988534899583731567860424420562981318892675879442837563285545869310361710165066538073721293322401982139999690879410588349687467368013835031535746702873868455946557224822029190088062501248649928105768862072258022613445686956700890055341116207481657536204267691364082886980636841206066313850910678052680678589653374216329908893228264081562879442259691896269672369597700803691957733953233729326551188835498996609713580748698955471991209513404885774215016993578226617149564496960284119549508874310636366178804285919593208363073953978056350142646772301837333524909539153867041217561596023827552023994193359328091418957759340068378497494624303866252467615512346598489798222065698593988420134336685661815991920141415815525051220601368731929764685914645998904702037720797694211227860588111237824363848761263028488980812567838411889806765226659992012158019816096180982599224107967145536224199305106304692614127809223778465997370528486057659741616184508250150673142445284424372134522208115458256354512644077319533099171942043349236928308518773274435175594138879429812387823145116796205031249626931451276737469708309221945842682338937471795557210311734122959235960329491337031275528195441270952469812837210811890314505249774789038943869974838039697982114449559033820166117397781495432120106138800048121339168514459698699923398937122133620021843708356225228103348789383298119317870677326457225984050033387925835698640235856837968342460161660478092938392655874085964533217959661735106099130733478122731513012099798545197041842571931319611224054471539686838719282590591399597246120141278156923101272137515174897818277337381947969797514009803080650589347252592789219441074226603903457876763328109110461551880116212755072186842538899140014779311693272128036369031619920809603359593697660471926962044591180430363207391880329647259408972747706553071244379260064537235795537646984129385467417988664157435668740788272291695598781940043342143636363541264351143440734293295241946659693437994600959259385857964794181460158781274487874824444776611263726425296346996845477910809272891541118685881418253545682492950465423598563116212402576950998788126489975658149838200751250325877997110735548802135267064109700355825027204321705459419104916491304162300370884774041843546766784729088096576767939961413166263277900714520697152682206163590399831416340645557737625209414680135429754736940849548363597148497689551577087777420737574898210482733138602671329280037946186341594868099204305093766232740335066216888793793554478423331863022296633947398461092959590747156588210505270467778768354128012481421942362096770837989497441621546943094180893095571200020276642636384021600425786871563890528267213679714959511387233322016905768552506263775214105931170500665050949332941970940621351592829786817322371001705502662342038552600700010977981129815850026493454470259104981817872789117365789289188895018915236554542699163905972536525370303795983307144528016695003585007216471782770666308073315371373758271150306629574821784795621491465996991338638320950852270512539039166293464080695539360092702060296531878045490903121162047836898079717277685775895691945870339841304645850694362696202801982339293993814800122680482160315978141103934283503847987164158128868680010266404593053934536397576545493470621793727508514743635035531431902302002930445204617317300638291977749176341575965014889811976658022082285122406649201499354537672550494099908249874856088719818053447057514788231279760965460011201200831424908572039358007570279002200327087107797486863496383388732607203179649039303326476913290094966658119841943330051049792613251807105473676354091538545907759828120985097091394486064759270519467392098733121740911545442234439782418054699623196805038197705497473324790758893967911615679262295297104720213133847794252528260824559221713139094425341873814578703234557359951204039880399651581446223670946804878952979849042247821139828348554959650817811895872237567214005281882242993578304101221700915794859575694209820054840423665851033753781486211678884349766603179522527112376766377011021999177359443890531620657231512480571364031225776569790932266347772101685425549554791919962561866788683740668927559134036748051615161911396273198226522765457762715186638474161182214204375959371633642728650587277757300531914239342361719258279208900048291211259633419677133790206773119730610140326479995111379922423639291860648087710248402789556900769135151874714106488454398494460613625539843447263688535931846594660576646922744310719291752935429849667206701799691940852388324306769498713977863148525430481064747433267454347438511624908770608528018474724793505242561884938887638997887244905816871416102383362327163482983259185724538712985955512805665468247658613837469978868196661990485929820241760442528761252710640990158641490290787669306908817984179738287423436793793889047696390397649262848994722993251608464153757834923362795467128678541200864847380523750586041677177607375765276057055671867137101753512166281563366282120155560198851039755258923239033294373652059197411924718216043515286972818498537342847899881319160709851087196873110803467352588614568535313497576305723247756540886730448871076026815520207076559324731154705682063111602674688775950937911000903178919563611812825431988968982620616070494763984178722012895365332890284791768689761219276775863072682887221287972791848886431516787069947730521707002245207802036598328162544878680704011375617433013033612379123680411660398213586239366936988552969109108962532538560787437776642104849616239863065952707437147536249277541356901716752355229030313763747001280125767863930949860686017916462303927807697675530085777578295349767989077769911329006976241006622242764733027358116558043931498133190226831306791525100908238359184869066606167686311100437843763290831957858773995612622873378033020600539960642700043750711597336430271919220795185903034511507058639990163668403284236798317336894992783580949972627333776804852148089970430632916684260406781475702847403247244359335800011877984685733694037979679559083597209984480196081951452293748387751876688393964664388629835559524604101903636159058916869640675480631145848671643803239482930260930847466384979597103439424744776351162700406525399488795936284934482667272895258934277375097847494719638021581688331830656744683927995664543136889380966568970433041745083325162521672840407757641595700213181324704066233863198273796710030494594794955259464278629745165894970713360499562985559904280865917420113190765885694071046807211453955155476077920179736447195848165547550128045536611002916157572340186565984956617607780220136308530547764287081543348698118082988163170133916054900065540018133635651528842247742637196659662672165117251702449836327682976427686480677411142730094548726149855346590217800502873457889549107143166134927978135884659229887467298629747707753276093161421997296902166157486571452125763489218430250118917667127389261593259756104227949727964466358247390112968295709388114651854260811837348651095246077682171125375298348875602012390288379540751081038828834200728620635694530650861519086171076740802510884022555529962391936412525611093544196486108481995489837931505973791111096908605610318731559811715891020233811944649579074785907935956356337980616244013510740041016491325120059929317649870694489780699200349801728216072133634244248800962322033070124787849468432559515560012402095529338617203632848113785558973855062961255731870957579405414253520813944683829213462785976512721219942480858125330179429606015624137272494036994108965817825622420784170310817988540752239647559946611116448183768788073456538451043884187009163503539022378411574455528512250635602337530893106516079146630480434147089261120369278266453165588854863983089369637219544236808308321321769281885974754057425709732840650229083732116302263874709640253815927308378230908159315565272054165241210769448226584888642161230790168913196172936421076840839381304413900214797043794172791776217908222877423495981314446490554480997551184403742677392045832390751012311661405215737419099777607221227501921990063910389087491776128329325486774403163870724793531904819729893193779616175561994237886532106424323947564062529191739160303829500052967232851773928707753681863610106303471483041072593003657118691531964161097885751798464084806603142422917235750477861718135590751287722007647744085045685826174548206362240252404995631812977114329957180108628738086457836857644701485398785619387324568836903676518393995669287310614785012421923756165653357119991708237500573080413062369498689345482575448569860253790322479968461561394900320913536062274603319896280998951758800216958516857375894257580949649414587308606742521362602882957939215463779191378001577791499372058885307872414417315586214844576041844624306069852987585425227942902851331624153237158476673724804292049545057286822629147811628816355140230117126432949852719476484699478707140634491199566064875816843736687566765007073920283592372373353330483131063029833823097639795188350131295075889967540631870390938818500276688705599117876886849593288263457062296762884861956499773588004601696313647053235662873010539633340371622315239788686317766426763547947066862476292183640705359240091723756409978194274293593518246803552340245043493461861291928791248007219970412238866305609046379207039316471162977627271124240493126606681470510444230205033614954215019406118413010430984571390951096306670065143820453068083248902218140654698378436257268940301193723742545960427057864494926917354191104936010457808876603155045603096615692320387998921240690020182870301955539421921734347774254180603621389180497373447731069224102090830889300911741897406410298839483423862922494263958182830708736299761151924881463514682926962917213317272354301551704692923323461670410384469056440996228362761932212869704011012910769938492013016027560292947817481505136867453726538705525691900015838911949189384812193032441833464577268426139929855664596991623028676798926045495055762078981466673467322215363233096192660250666255055401603752654562999229604982149899033164445255538847521432156687321906816089631606163378716673290277850655354246016506650953304220239317913274842965260910910971309179723443188505071988003720879236486032748395014527530063877367889979141799069457089850801273238868144874708243024062257176301978090193003574403104305563555812504997969473014963840988375304122515164848014732872259514200312475693079661038269639661599429900768805282560444063002291755842837746097519731193265563705599614980019931733014506555759988593936849486887159651568080112000140083498650886555536445077556842730101545290156190715238327948947475591491983117358497439554811259405367536917178088536985031051064652407708159957644649335127977615916984890418259187248633585291512307788269110001952005858697003419542061598282072706454070063275713785139987989747546237768782312861470852047133125545084271488556596364319599240190412494370840795030399690465884527309869709353661357862702131218379569691878191454201131716256275262246171208019106904814729794536887733048386156166191845350530335756847775425231816092945696251874561864517155148092302287742574180683089651310832761031303093578055893353076916021883977662949389206023043148825545536662461544416587304333059896942826023049105583487828613233621891593785533771441987383436933200206858080873841264081710212075248542251916223997251017135218452300492369632226772101366709519653213771463744309539131605601763498677149851184193314440723407919908004318477659874923868579187164765725526745845321333949299106979442434464543355336929949712699140130500344703434924999968482514704625454714224255023238909050058712110057062535271671505650792458009627157373519779418354298937930039187091937252956972439205842487596253984646021022731184805370166418979790416179174624171803824769662072196637091718798024091538783820616855608325159275623650042429480686705455164758806693664936160593581459408439330431354833694171972394344832623567720570905273037855817294915664180487562270099493521261905398233797336769848644882736145574483637763423136100596028771322810363057999246520609413614615978053569179427695247231334395850816958731466070915067186776768458476536252568447345544801812628699519381583776080570915473105739240271525040173772423867504494202590010277527297887594453446105025805752142621625142392046091675540164789775921288706741063452222666133419761876960500438805179661189563973242356540619754467542013914077787745557793967182223692947896029438136554820131931977014252516509637929392172896445017640453218000183748223043904288346657331711641144762951821761072740496809169362404591781902349095675677129908267955003833279409806752186447725626776028397379582019253258828537232206403827308413125604822499534784990623461148766308765430477635653115150813433312790863821771902582804642458559406664238371540851514945756558951860430678876020640723342834985238306966476243320691565478856668773384929820347675684759510158931260531567730976511949382706598172396348328446925777055748686567739972023070279271633554418758858165248834127390538700855381218372933597243945087073935622677125090934121211547399518397672968620359811077019258998361710086153502478704765962529807099922179664192215341721616288152259764106491634858235255108993462246953707691687636855001325532875951158432191276285165880539164186875116593186470274057769974757274825888729323241136389696640216419589467437510029842477734036528766763322026377353276878493552044447148836419300309321721976134214272699120128520081411711364375233002260081181865954072281006607985810045764019934397929754543776587929882095035342651873286274693001765988935223930257399104542464974767159353507447656164777793889643228448145165491650803057414249867182341864702892606688351170110549374796315972825515988714841537431132734387204063005476588242015115269484677409825638674447087114167621687634587326769858206918566851842879319859504682382159159420876997762855965711125543066642011636656493061717922225053671264349539647137335574209261913554257299129611622075981829145059968372433539477973060884753920068611462986553849861737417506780563787944889621097469426581448851658431684453195409990478404783763759474350967677639730579358838784233775354229257260546645770743351815085928624447707721923372161420641509371336374414020307696923476891981986628746537304287712906317790323459339275633423228664681221298501606962059047387165753014550020604828887806600735332758711081937580513922224610407570336736950483644218968773770268727687839081947758463301855674060400883136729122584019862891893504409050571407598912668536593711433806750633501169326839483664087870226625523228880581192587015693091351742326602102966441187750856006205852859467351457825775510379263015783134586464856209933986604227093338914176894526947448123043988249033027011621929069595288609322722996559131546619818966670049041066793289809354854314350485213735870230123084938943226024538352066910555673615975915169089729285021307284487081215931883827404052864138319317372515934765453351574933359117132796241529635191673761789501760604488054487312205887468761836812629781160768797013742762655045105083864393577088130315119335614139118686019880525303185485556822713059066993392715239020348794574512313476039828937356618691694856114975767970642486379640033011956813971367229387407931731024422207413305791783086833174585504627277918900383959399988003585167558495279299479950252612834614291516384158570675739822446214455364246584182503945484267738997959722312718736682330593751301865699479154434770183623470961284884676014456448268110545514789324245263462600937616209026017378248142146463718718314533405396429322622216086896999486191311568788464162781297620735763581525286905365682452613525887649502145096192878745266113275224344593012183700414156871765736614709508287805345222063961978454128422033168197277378255801247891279790870079005909941654596147149538771020857727125217168645321095699817496346906897109204651788291145272277368700723166040500690288972624686174194767332735812684602553899589040327574354859206927869607232064854578119538441967476120369639413692646599627800025637808511032957776952715047449808266726685673679795479048297996180188809973562470478298606527112809296431047030320034270135525272208270206594396360151405968900016691599847617497108875195186762411200997655642029141561784301282196583675570623739261576007452762623398927831791668580291199615103419232413558088342835469848048177777348170361798384508999573741148946626017421164793136038300181960892661528642582906905453707311799617885241088974745465876580836130117020426262476070933413490059686560717741734354057710058843880121491710746680363752831835624872284234007228147776519229542732329574199866080527970804536542384819219934611444988279479080439971811803511685102987761567621795751494833504966766658102498158013512143711877856124272042698713491284793955516686891889799509193622629192783260859411293088841407142620577641397368132556782099885972164524089128556353833042935354675356634127495691735443213942940601387766092971484604353489978976568393040099639828534506055723501873507712973429984144417981718586021153672407618353419530611737304347823476810171264296144565576632432296104474785516136628597691345089224199394424464149741378133438942107032875319741298021704922414700188701988240049180062821410440782189479918417847643826994977038055560734782140224678338370564475676808904537716016454419329890119577233029368409342991937384182938240477429186736966940855213541526891462067695613051792272067492463817352265575026040145240992055839692920725999596261006705996901661135178732205405555647127154634997972318258908515496037858685616185662961861534114528316506290469332094449863415490353856550407692965587904534318898606510018086553246174266863555177721941067111854763855313709802685573268197469236258398413556882304611820944976288021730220007132045357284000338584074942589666648871947776525131559128709662422338064078967295719285354920629027905006922228059242535996577721875407223382535917044538173438013315557459374319418626510936504759628408136135462397562843281244970145065037760761802398864105463904908663616009056489233610187162700956602267368398193168053876647645030800926446330778946041288457914269974443564445735466595441774535310430479072477952903583910805260647601313042902021927644834207107679058116214304554196576508914200490643903638788349056995972119314272251148021678068411246556580135792514888622946240121703535638034411090875685624768640519542437013716921285266461313803735611993053879987385335335716976077789059687490164279928116584806508985109405504949785613101454751842713987935585746521717408381700224023930882605989061831151592613510470181265703392721501358415358398239831003628419085106980943374222624660881901022969217854954922161594296884890952645319380480117201767158300817234007223596267860435129115295425496341953640385683078034259306194895281481518364573733190704557798708670463419933460295070913166595326291652086228347184885742550094425985708166912036828021854488504573353988586147999490731288840089557179684346780892157348122770101747607933830222889853844490231913956076260558016996369213266628330898480247014116439968459440404930197908201670739453537301479936353591220527026885600853346173093961659794979813423381200722491177146477786061683449545842593407504105109040363548753346857938697489746420833570436067205001025070122470683960493642187096782504251809169222755829511573350774547146310576259186951115069459214016044435270564978248373763727358374056975099317597021634455864565840618273641317157844532376173829989528756383499211996077272223036924727144995964424364713606833919955159184269626911561082414498438547961768043435859593868146695545345808691620252928985108160094970501834593726980583610808183649427248615888857805636584671075642720979448282883079546821774375920509689165411027369908490016915152937018141276662272766177948609588620706380774929982999779073362048765591950219948296689252646448677785211104971873584599171269453065378845443741938997316365060257741515360048388534260167838134589621006367105786730281860043328482914749080759733607711976649162805980861144074260287125082296984015532766824907566240649073503142422228711220545922932486420509803450485105412466130550888524289377833087165661767454564920764939814316706073178569543083043384429950045101104500406964135056837035116103080361234467947355241418956959113589367809618228056199144520190913526751230811834917064444261430084476297667286088744345265338341415178184265037865120366258056633122145084496617761592927702601589129278122639837426041255789000999607387970603062863892160899716391217311454602912437585389283074352585147995856492519042299277208174770484102132738238332215907676666682463419775197477752115714155722906581345021226740333228988614822074195347433229198523964892024441108989824665290331371494878773402394966243051520265163096041176095493881823500523588522390523713513264268983135228137570475281812573723603990461350832153167016111054576526394625787701316705773941563384632925794714075051608694297503872383427437301208182667809457424194919167368041354433001671499854129161368643276793703422894001896333974448381117849495590006798398233941509218511096251583944092223242070542663430409642203891007887763131909465437143876876890229872167631544651864009316232545305649384649828006571095341321313256379813425130122621532233461340617384595486438235890718290955921812864556154522268576933758762257054510264076407846862998100669569042425595286280545019666837465183425898862264818121904916141389477997126980304358804647528692039495728904349952349692630309044345783800814980785932608412614540973694365170191378194777005668833364541460212763819273657754787592817205602107719572218043240369360623070195222946722226724803470679844666119643069000700695193170640575802267648537134104506029774714851061600232984301630182467445958042039950190040333724632562084220554942976431757007727909726731970802154200767899441124453201814203322692693512692840087957099651518507867522574105871541916888597265916344395503061111301220623874097731772323315594614056208515444875888429408539996911984317504504635015724804327456861616836531803157465629321487453055948986545241746342086841673403943564573120360228049506676879506035182228818502074691169829466488718133011746340532198678802702320244987651912798786756481982549834044008779582301125320840023896136731524841995887338678443508743656823516034120270657967530480976249957514996618202669435164503092530193223720715942357746025697314574897320930511064434142649415993553223418902518325374124893633403820427497013814144339921827115301941058574829196030437196987380173333758729404970311256036274113206765648328253768931450704631899712120074538211745960639633440333358522107719308903328010067570299851024627730288677800076394946315127389171059894160644313628663340224777179109310153544771940271439693807841502115282738740232273737481732732756761458930326600463447204415494639473970172087071659035838082281582805415312473294204899598590552493614501256917172729660118017272425788013732843097472912698174158306196918106162824847277555165048140353095873060429045650553067147639969100297422712300279119837026404001418391531822473507479961497961823357479626206727170538531672571916059229904999828196354125559572693191728882312477246247716319553541759871198498703238424800892055723703320635421226633694484161091179568357092036335901237200795030555012320786526431383000311126165793715092102662830195421063644062395150254770818845744025877015143669387923008901558787817414933933523539743217639147737423172245271513222537993197316964836042990397364199805967925178699276625262415170372169236390051113269812639329712700849178741425787440252634046299097956135276618290218957910631413253371947193536393369728035467044322603600499509596854065646199753834403924382747095540706597559413300282281726998661203225087713042318786480463987652232148781634710503936099939914658140994304777488679627612931897085032552567294651268250443020130363163161187526245804258857489483476218860394734411520704832900211076840160006009160368033408099711358593485735645378328595099474157435151961858820368154954702888719100984631413655756030686926184762264806008467648900031553044699292482481610139587152048429528431878591141292050667323692020356999445201444829418060991810075199448990590562396556970026397125737705916856714092116791331017848696479869290709765189286001058772890495569835354202898297225625289578916051846631932603674009717576739960932239042216970238980412821990594329381319733715263056028200769005921255272721562763130997231746839639178775876694446777156487603380403162918876915093824601887475826090627721447832180271205938060337425155877387561733172379617976228864830444906754101139323142052380219428980635188563219124704523688636565674405708227435737248700473485007836738898134329593304359442898541223551363753665413307560052035917217642363093472480385908902846336178861337219409479355523716576829701056706941646893262646461614366082566936932315620831304968820293957104611297418816311366730050609055737698197879201262683008826268009007167714810709262574150777438761179248213042901380536725705170818959782665380767678846628912977389698827421763925204445050371332107820581823303322604622596579790023312102807221418346633056137300358781401675975559095322307026475624501304164615276907108851236144338300155765171261381068150402484776032237130000591806271092405942566834094871102399888316045548855026756326747611180964680910472914981105640838399060039595874696541666890938938012073289332257045406676553735845717057537557712310983223584903166825886119365148774218317169618167154471552674951664911259955115681679961651790881539589978570076212705350023392859348288406251136562067963686534195275170894704083257312363395608231183709842606815497460151447546886340087373966152751081183830868663221884611752149012867635481318081581295322974443600375998818998261777447062549610948252333427300442566977177545873990485556573969557064675851429475416276213655407914273719038125864017424323305226767675410370516735614382616323952725382978234935503933889460757089005375242372500890195125774034249042677910280959517219275824861439120253295079949983293799170766348553648469191411533253087592092146671054119093383131746343848481530074510242664318806886841810982632994346220783510645325889690720605651314792809686269075073995170286458394330730384724307217421641981910102007629012597818547057321246322564196098476509886288668491603080198113039167094640368206175500140303416337663743493241039711317733351434088419583561025054626542788660319807444405206879306175756339716571265928880180604045418262638270906668521054300932080106120744508476103647163885329248648198168522716670383790122768390477739634304919447857203780424444413111035345363378230697716611937833287218972287739744430689757709796051148916193154298003661145805949112581858393466988030857749782789925863680938752336075175308057078513455421867427857864753065686772041373857876931175441632391591639700426638590989676036695224104416520570056143231671546015654203319586464632436722038611023173333233877809807352263624048462166805800403838151669225642404748806847392830690817374785240430412671461785837148046410027037127152327191842765465961850098219391684652769485455169741346884345889930284614891241854112059400073366293162378190739375680458568640818649465254954491521884662805283922385873164564748093348295263464461064964888543898587597166921987456342814249629904726288156683376986548838740633325948289362719618477793633514399320099991969360962427215143999394845403195110156699306275115776864124705769133327209066694271849269195277584017156397600175844893678611182370743891596250806129368616408492020390850841699674219872156856783856917215721322286614848940223087634301704994430455257302726576160271977280393965048655985960349922656588991365137542584882269362987660423807060836650986910745301089927974529659847430892202678729758813302982250933854281920557124301495455396821918270488385897761092171062485812530111222072896463689573015340750472486172274414262477858454007151612341958102004305625119150634558614104284746630229119463617677929418934109939060277379188080645987378723660460766908249862405034056923073090808626723781164946943650484299681768287812122174275124197384000930395668392966765137471294915389990150092969510934283622819981806189528169697348570015844925756074391429691623173149688697343102797600115757855185123818215323193803062549436833952580383879833193206956993769257678834038714115271750572212982686799318186663783964903841309725775128163457446469591732385608797053832634006615405684071430225451505120023326656234226331174109382759118060256386358590237269564863241195981508701469186731575536586517092699153160778155760933133700450501567776817230226702108973591260030592076566016805944342749579821000009758877039565706718194921534740405270226267807084370469576564793768621225911980410747866588944236482130691787012003423767664870039419717758363970648067177589407804676000466073657968818691151396243003344017223114191104510342874681176118399118973079415190667433189426869846304814284095077098678205941260143199938540299597784585389522009688555274922951240805162896801454956499511707409918007019588679721803242156378890406678944399113612442993869652954124234473887161976805062995636913521871130058566621142399571830897538918185372506137274700087524822489473756981123285760089772811007659936523347884134108618623090265001662497583222285047684088789205114168479307612002300182149608844408723352484757814831153683539896748765196413464279392597458715668915632618941801462038988095079327237428734952317167610370771157437115676913478127964722258830132016254327680892456451674721478815533730325797867749256384100168764201682801164008599525182833464725130340938136683614617467517230165386880467026178533887666262362906780169196853473051307582666512985442405727079213446706726731091797883493051726386423906345186995311113131164383396177308774105977926569132827282005162099533915641031580656939410409604366560715184063714773561207133789055349456051817062806265075889865212604086398384527971802519443505935298191039694898736319826326538072324004732165631564428200867126888955526223794211835130124010764558145379291689482940274163871046086139334843704697583849485558586552203991875676229786821261871332556709562291888982556817471256269099279473800807809594038630351300011537748522916978472496309856192360424570209998026732484569915608415646605740209074800740438931913351337440860582221698954436181001818956005721426138856779098253083355009437305710650885096523597623874016772084899814546788940969801881396151117570266757024086646144340543924865002738055930584607304415436335222152310245941483154661276429691582787765262299227281307547487104684599075701785403927007038556903669151613721080718389608161960405930953872814172053737100007296008896008395915147010437421474768249499974876407409350814460077992606000168250744468469631163650706538521761341511172909246846848463800804894720111738890963511568235350524106124999748178684504993335083712593038923641403186396032846256013394971651032815394714206552657951433207869457658071387113456769289373590422061157582591489669668407282202654614344034205096487450816432899488717050629488920098895087713822956776788976696931182726894770716496593784165479090783915369073823607860610845406655323546799251581465079954138308705222250804621135844596559661348915649415160239800975380131111233765326481720984362243165588060684829141814652649655625240300756485593177994080961908376988684757568467791159261904170989499520054661271244841181707492652750252157652973490050816171356920365475150484477446037563153398907589618505583412800351318463689393247169208139343410049949131416865638538706850463616621614843805581612886692598940647198688356794170268177090874178380435257037171570551040049512820576269010031253008169185223753288742137901131804384404234970140735301051235432099188303748401968625321950374923361244463697744649851407800702573547170549248965037478568655018068455361785823796264711093630205931703018612543770524890796408341266331668064295587466318828871914763225908005101682484457393013081855419514238383245446394152662457641658294228267227998397460349477882736605124190461839515072525726511594724335697491781027548331336460644684495452208260636135979199120105541686404289632076235432338164796496096121595495097258480944148636309496134152673324215151017746612815671130237477351671976925423158681088722485668490883107452915021603009953556572580267073480398428478777591134548786005713403610577174787834722927486135350378314226195795632129545255796781195645099663595426711371107465112941768446551601661360203774550060566870697883557346208790616689255823748931564969265399919147825205565191561737970633689447114506915505481602302300070386140183759592923871783221419877771029413879667760285067604904014474815840223896704604579065446938786651166919508335692364702754577667139591073413883097170645031623789678725969202856921210414110672376739998475089366010731446897287762040503534608674012916634983615465056537370339585369546133337073482640087971535474894716875984069227478839742036566608806148232368893713709893168083022784795499598519975149375906546271402028857745874048289035172102751749060170877572942916051081127127475349776057493786626031489091618646309092123358993850230059044916428491676576014716001114466082463958823928103234693928917574659737362830696629888845167869658691102347077754793361790030302136646872520878206130785013621827281518224224711853221339447986049180775730627782032721278769455617955695112064023297173810266907462576197541488502520107944623429109675226002356986459217969970728454970432293269533187626306400146195573435142519492917938794937134006497629499938004444659011187902559375455404823066312283248729987387739121811403369913790429031735709844979989897523176868241796981379709646603570015325375363591669347447489059988333336100514800033961245021673844235756460105993103062741093541311254466922311318887051929226588159092304696693038170651543072241746495166498866602671147704251826484655788632810243558159084446307783548732384505348896125874339450112427028658966384262071999377872138622455248019339076110933322020097671182867307940411925091886340186452936654883851649121282707095178117056666877966061665547962192812298081251562321062044866855808663140798138919013582775387680192467957178965381060977733283194577172258241593201981591909271629160164799188096423921763526273482582735952814680931847981793722880636453969941969663951861799259170989200034427389437476239672722615202893928609925222883338188058806289797200142804250648203607338798006035555860365441355835517924509137348902024830211513798202204794557984860549434799951941121481819087409029299523715060732604696214285784816313387193726515755319066673262084963244345358720546334663941680740809986909434028714523277502855971050697927101013152851954341431009017055179597489580196732480556598353394607103326744634112643427305794358920878475805152668075371998647942089818854262267787576748259812662567687295695257395454221049797776292570331967703826167695822673817579186027067374067846741147141402838824488868487142486804409166855779343087735691936865587719696923075159920659103474884444315017236000270925114086773974070409749836178974335596535444096342479706149775333127580225482256032960980232203614852961968841903292516386346342851615124372406523781554945884997419852080805866241802648835103801291489056672603286922079107712041784061046637443709985617382503219882100555080221323403889113271934688210153313581547228944016764229787371563979014337982472286756780617210912932876194812059258126918532577939338526425200000863431035780204914007098906995556620183514699611227452781622623616526326098644855483385599982536864053617487454366938043706062555870509842172368683095388685526818715527992603142310141976707610040379327926662186883232132018783955373649951055077089622355411301145314404574484478657955211619233208602725807966064632120629326851759154837919617238124992458220522485811681911488770619202796408213018732915438228634789467936841077428649218377188454275558873864665375368506636220193464934742399064098414964267510230634188809437201531758841433343218448322462393549263243089718476519041363212205813147835161892912243697270112173891373770810719416982038224436873314343720534682093287572507149173373216649165360547128159307299661933656347106531959636741230886640822877475715168450375661838908211153696522213726899501603356682202420937225750590359096599755855149476539933766532443047028977131719496430884242982655369059636650368136744551309485909440618849251890432149274289674773923901940605241136167662727904730859673783451023923990938527606301750449517715920200302915354997475400488483659747618523664331563098229793056685066795381033632296908736111847802263665127431513776921311221383299436595327009793857505892929389208357331772313964369896268348561947757508671458990298142996819488630902531174226317035687314249292394914280684447938185423146953846752453037511104877663912964862569674996017663133837922972917452578412071629030306150656023521241743496733068149612452557329654603894247622700074654086458962560516218221054924533251035738437744752056416171419768104815687363065544040867635451355732074832900188646251200291075318198353211240397229117250632068880795124831143427390817752349733182508996097718835969964116006421577121454311509272698993764685826495861282503075530232182267498100615528227425205706179081344399692034193493269054382307247779012625168171123867963605668354224287473206804602312616068281472056615532267627465635239788509617725811774518143713445004573992843527311066279655655818332306056298438221899061905567067876734343973502428272897114189093903740956039896991373712304756280580503423881861690040781105484473521929632612916473051154214212386617050146275973441652684929908087224293967719246252647204719982570114740415347038052250286994372394087011818151120170406227750729019757576478239543394336191828908113897316061862304203695662548762931586111207981012066210244810056832075348292200918089654547513140570896276944299079125834905702048913714196937154655316980706232566693343651486263532373203869060624654358327905817441214754115663642245935539426596062971074886531134436573053500567383227670650902671727558811715988856760993402558350912658988743071381328878575450077616642639094211941433874307261748662440976514929056546348875039479936915214121535687643838232766530786923988340386783844704893220786185828695703713033497274245576598568325195065043786752936360233449465768510627908644719786169783925393448843780277418447197361996681753179975558376889966182476249679677514222495758774125316484770025725226027606427192529715521074396994636007352388776324962886353483977959868748990827229720187947585047018600915083770245201761865984548336252450411593772708486373563710238512604093096118600564787358824577341179275043510188060159116293866102668909911855948983542844608260988614518695288409143192168901649547551324392199987514234891489902210022095288901403392683546535894099330640660169156615625417278210599930683794677367119591357875347431485676961736922121917784996073432828110446796166365627585440115932118639828673415094729662699464904260080061922828431782731098691951341725188962262046643359244947542237047578342763467171092461885908143874366097980344903026553018404642244273044406180119581248087109508832457202468256228981903992406450969382935658904778631469769261397213994858003912346910861283567616735539209201613749532806817168848669520799518621598850810847835485627031170148250825375383174299252891370593869275567529850692042752915506037953868407958977337285186328123599848477741371198717764073511443005727321151202143977864740137084860926065210451824833333262791005148162515803574789995381094964363026908200819419505286544500518987384683515916615043081939414725105343862257360780119510498679957685720556456650105582236066536752313717246787963606563245092521401135808898281590517604696487145235983085663458500773616194973712790193360980045325215102640425372906316095823270696593393380957375400354016073820003265492865449578509010225595302337881030427630432078897700414775486842111178497716630570467430454950519177415659507433010231121271913994195990574330434550242133407226300425448620780375429162177676255895762248633060067331217181384937541482705212521905944975462280234100073038377205208549903673856278278557854405919097873756879341281769036144514383585905390620421609418578231039296093035480492361209740632365602731704955663512073269290873237312999640525199701139958371289135731095068291904366957814546392130323050589539891536090343501900331387575827622719621433835399241084310585270378465737375633127275413408141358133395028354894554121350535490813474836569813832610237146255980323510842628465246341426211625511791887302583935872372240677156815159822605433453953212776599421108868592874069487640451444479897198189045846250353841605419966121949038519462598724679907965697612793658529964767979127501012749318372573371710482423608865910106030265707603937087611680078503682304992213042252825350032842336244424206810091857757670521625692466007548677298262372514729651406129139839867210265193830206054104603292079534397867869978479947214413752853966549621188607591497670013131605009906531202105542311252502900431620109468704099501822634426873550402574445673765572143722225126415017322524173485583740603776308010592661025880807695422669140821092494171145733901203848549099502559331027205752978189100478500738354018365244072495444174791150319702280880217990006219063051055774428015163203309564102920205176764877120039679412566529402988223210615339693701397081934132319105722996048399536554523845674289809660789157939736015464327277980451986875478260329551540281296472195714524983180301409439110277640889346869262105492990334749689555044497759351432577503317292614983419691157367698540124687936832347824248451526088317801578083943342175076675191605783843734646952745884358829735108081660935855297803978245993870986616738483694566113055757366777392365633454629276090982003086044146612144089269602997095856598457505789485078669199482264532030327240816917800803708808630073628159234460212595251829931496890116009427519546705744902204289054064493833949543508209983565343195185881094080746309722859627536203037602332431891558244130383359695205986097498188788010199386088617270974586480291730324811573028809109426243801699867284302324070786161259793252097307869829495499290990074899419596452402236715073826829113985824344730942052813818855342930096757945479889500172558778294559330144410437410797981944787792837830913240581206361761074170059101748123754064044103996532380386106248429784819850880035455202584064351562398572004615035858066906431662860457610723268727399983943469027507774123018238408544380327974325901897594087791291326804603531188640971741594033242119193889598122480518041710719002252588128462616474177002247149721604301312384040190118120250553131553972440300934966897181026707177010384390006584610156920282468528792177595866021458399463410146878901639199234748343659994743141608845353847608375711683160954517235062827885985770691961675838153952072786136708325805849211108356024815831101544575622456391787986272795854075673700925041105839546639703519957253795961928843589159714679870014059876784552109080087457275332684198916388427558944597422365690486603051957215290271565195612071802788750273320802841777959042186898506982872767409528509760005098847921316507564241038901232467833072987339203564083794284239235764716394230061322418620057617952407055886616665645433514400351675382705565043895670110896852146880594114017915758655228118891434761747707224909910567435365633381548502974800837511552020623249550448510915319701414925491042074310126654591971405618610185450423931021612880798059780704176441378823307628689508019327319619149009939027662169378181601940155222243072189650973908820087809191787491928134596457420970170641316165824860105711201748886663930574805840006165098865626632234007700063676686721758650769907843799288090329147742293847924296243450989520282676172068694549866259703050221851967182172657928204916658799660817531361852465739937157682530416987726243409180086531509791527188621178133906381038590749613957412646726749449724306670837068061995561506276352068493548236040081913434095663604173143204744039601546129982117940928361221130776644961213768343733412480642769954753013397240944769244697065464822287704859990258339144879435726192048586680338929681915906292211762506774398383838027462665729701361518217688666393127150646636075755831701219504412239883267577286632675447382948837653253195126897318005727026303612571664426512955965339378425381804999220810256667160369843721252401586008513853199534542660851234881355463895859062223621356933571013873153068618456529213872908505742440413421252958625128995852018692223928232579352160144661330681438666516972356349885215410929945646451282745918226302841782496113004924371649817578228993920139577507191680743566600953394300288147174602510281014234410642698896600334995195671897284571889554865155992163003435118400742575274230621246977555911022197679889159631102194309821433737397388295161510519193810087746201587114722869455292405287706164835962568372124756845310603050307944393339115507730862411484878323110922329843286674479075734148414079050790906652558209126503939726065381941716356721736361227292820507567896717677883187828008706607205006193250893066715282464750593092663061009615850892155693956360234934845352338893068754815265750242319659889565381440751737857347988306098975719469230724162668189997101707290826478317189355771596418474399759562736017851774294197877377298008779283316234633708124156929535644944427463828930173358739729520954341500584875187234627628648659793362016577224257977173309206142518706384755842506173482736732851960988594409446334620183475403995210551185058753251582510594804088477493990457883366481414089957428466663469152362784328558041983481426660883094361458972167994226844359098973984228405447909963047329656192025767167653886541230241862902234290795137813174509135807758165960632140332209027125525793560040694565930260650971255778169132398525734738531141113610419137617134911175900958584236090936419696977738599375234976222367698020038201238946591733752001002012043624993242701080639532474041297351191225940707214891672433022982506711950271058478738582527047293531651527596459115881232698000904603795392356459490959187046059991341491644078580018187721149378104817042954520437890152923255908045899099110369653374470566045366762989121825966628026138524301138361497707499392309606699680439658373965222419189167117915057968088110907392339270702975783848616719733634288004676167008294078509625526844315388409492881353796656839094969074525970428361335219037190296013089820925126923158776869497709940841540040060010108516149804589880321285251256287312542082011649492094764720873520266883980029600688981531078857053684189967209365069148397756156661177759221508240219249431321872070284855208036178666494744722474407664496892225163595404238175546800295951962182562632341249784926180355997920999900425367764002889477338743813383445694913505187656016203302593488816994777008230497332504026274410555940017546589578234651630494193743998565003397629095590904855438358438414091938679823392231384228515673741905708324833539014575401236906128765992852841714071426361912548477163237470636961184973316376399671312547354687806352461485238587655125955894005301344204856289871647410121061034825518289463146915558210736797042047352467534298019643654971928756717896470835456984631255457412637870272243625936190131461954565953235379430496300535681530617848242429442377922583505310181650446041130809951312415522376424471499827848856323733339161512044510410168330119449793621935374089357651919001430400115517741521474079571281353225735964895770582309640121632282648250627134691194407391110293589774509627243820133746689438907805581511975976240738939186437740711826909811135560050430373654405210871302224968765989764236117438485444552864100140502829123502526918244397684567904105798629825330080238313248149941103507604606965680365433496864767680678453051320841784855155463582370298012107711129636888251247808233004100577708808314831859806850196866414640539803763891000950359000610415220466557410481616839790919641956600929957482826388040541419666460268654572389796657973753266595435982698081401982390220081615190378410741560996918727314276782265563491826603374310698812735611335313559612862634499092932150036882627171107109523906938945849489706516503528764107801463958247969177539733774439985744279242994946936617488460874774790486659412881737806394105042968390639662806110534625163844851885046497998560002652326219099459829778765596462173833034947603657556753613375428421144707827099621400954857066354941936667257386101214418279326804035536386142657506632799979051564892393005227628009003992289791156678906121629906808563467508156384073861544349867749523668744857433541817142628964270805060211264978745569968794056213803817425166210997376315270886255313720071885547524926303613928324301120107895570185136965845994923869722224808686483250726934684026791626194620853612864584453772877220209541040682128893543134538545775448186002337570509013778340472899367919239738810672081235474685331090581926553522381955411180850138119646084774844730472694189877325238065037471935681781855291759754598924338927604379706901751904542920432299108283170158203960996733126652836947153049461316043614560096577760771026633845379788517307527147160467979783580995673373160549923733189812772468657316865989753613469874061599771126149339186506523789158467659432886697012614617853273757774960957284764922645589920185233789933932218390514612260838467027112383089613201585203590526710836905804425800876023021077062994854154636677657752966696169509428644878553359442095357869144767831815505655110772775486979154318212826477073841517009208610458142525974599789277387320911713195892190858755003280703043870030457498602155903148008197354269192748906161285106752007968044178908959734562932156619166644625196164788813093455931861298982520886939981030396956453174030863867198495515692967578481551624454752559396034676466407790623924091760786921426864214940183666415738000516220202147106993671844217054898774623506429398888037848612200050193544281260279070271067916270875312678243863860644319599838411891340156050580007809598819128353282112240770020447093164756024853773803913570379249530728853986515956559472011153946720794777410401078733479044304119222179895836532211552127255792314873501290613068787128952616073848599006095373269689654615697820419097372553641693467050093296713389026360999122825064622362801386675934111775620292298917664545984582706603388163583572724811294098476303895902543346601854064794885295807482002038400756167185482887403917648001454298942898441426737362133375303584194323786216843810285929425878709818861874213940613706130339635468928602533101432708240660554855682669702416885246598989900458746407245992450465629799124264217345429321521937819296076689942197211464107560352400709103264715495318969504696312814321601870635982823088081983052621941533953607061171928070524010134552838486689701053073516881385796113746995005401539417892071730046257200778364175416740815580852835803976253532145099491201107154541062875682809018000978599048648598525182906799407377632312090031377449401658443918334618591590180228736871592155160987856381006585326586160774517948780299610735453309795732679061997580718100892352093838454577587141130483759834132160318546486888216501564040144894954064606188923391669676916487662177655507071350004433481709282107046868412769205975727862805961820049883431078410913555407526651686314049555353359834380281877796025526866314102037947882866803284808466623034315724543578673268996257235481127351554724769889059690894517059794472865986120028332166150918015840995461349965114883341908036263588968274492516394954067676519042161680156505053447362104308803952024638645582876560016985351222385016341568950939901694852539075479927973936998575819110828546721177946738478710415480955863696718238303470042122237425308314579438411464487818952816633352752093404065321626233455664056527592835703888205420398505931404166923761931699917315631156627661846693937907012093701457788234462695647174329015803574683428806927060439755908112233353856184245302701200896559805246974019837275957955046440974095702976097719959862818726276003653633124452658205859358773466719246179776571972171867980716805267538839970417831395213612349544221044709741935539416617953212161749043667694871445542172611036319397653259057769834972883825235409732841151263030274091073047326692179312022117857725096022341588630626862933158745596289993906901213195156375189223502858385573749737438145950365896291975682133630881883901295697315955677063641885494915708981723623026047265832429991533062972816462087089641834342015055919342446933839468441723586415388165700824351534177408829810949803580211171533857824298537912131148207836252960359143372978842538355677991143478994883142233159370739855835321072601698461983256699056489661292343929379920014438491511507110740965596966464070873656463928903070077426148303639038243546720948765794130999019751840859375640342255814558418954837473299380072535959253953316541113865814661102493534207657730075551157324209822772668858282797452202402810160920697304689643788753933633432277147048708153284149786733053075379905069907085675227411528375476699596686867969464365546815811402970392701652098401016291882695204088803583333914578469505677885641092007740795332096810330084605220784622150804962815226238928477617131722180913935116914800459551791209147796507937606581188177206805087951020004757485276757710150225526304925327675106403146963149559204218647604175523438995933744709925326872275293613554366881850871292433893481590974134930134191408960150388341323587002880024149279917271126373167720670438302023786140270863596063348333561326666871609384842796008320854139437811744104843556277757273151122301696573072526601466905269424157228706976145536500868717303106495153903949036737222882666133096154620034636469003513212770237763007567243970161925824364578244164403276099991240646121943276146101591944182201626726363128359204087071107875177849409424802526304962367997457495759678242664903356548402199234473645170666597525065335147363587610722101608949920834798826015038346448308527064474387431295866087028856053600564099996765685783143275457160752000138039615217903102748768545900875462713327711951681843492381008148254572904996729028107260543342555449154190436719243716719386275156976167961297296769332924096528087680755608819499514506445795287290228154448811501892717541645685050566668293660879924322318107018410857707387378636825684384959231757571479868552990422482327243058696055526977868723588156467922114355488830803454769054226046544537424501821307774500814395768921970540602079898299752913459797969360830150887725759979942011273973777082995511304933678864201779268129787488298061335567632173783270243089007157007485594891166391475582952213829357855317337284799032611535378564668911088152379018920053086230375085634524599926483505634313374990715062274033828044079725014497929773369530264013366469750831943378997306042003357737476619143837950534792467956319329416204230356503108048783371363624541335346622188562211079447620683593331766526793433137397778057846168355659922406391102705027859569936892648515533631925932245855076626565362963367616087987514746259339173856474558718841973363056445935945960238781459998744854497357608548745809932578721222340501865914806918906157580601567131820421091425921173823119414808523691760173018529982061258505245911309234677684042566368154472667161775637674197148306084615649933075410393905906976860007953295619256192667833339158968608686171051059526610140178948985640407084815412122979228935820425975955917150788013184111769403811166551104408097052791034565496265567650252348679329009760145069215750014144951154073460753781033606731533197276124401864248194546652881133589062456871978324650838407857078168059317810073969891848708344924848732303963388042855213461261564033774680009885413078028937552368274259289442520246464670416010749402197924643982193128931009062195390828624397287465408590490904678595867377214067170373543322927953174587592529162142534181163334645603635100626815903552772229557205587488001424416875328485842597004203425348051718299723967736149535710449788563089364213552534039376003991464878830624365508387639879927303997607688312667255341301166766509931233760165852001784480823033066793786477734964702176845991887935443812989962462466218865873414407809181238760206007239439426960474982799886235695318791379541692623845071714096937455640569357300811594634309229977675055035035557921671797596598037434496430392034544678628304775250786172778149329184816848857884766613025962220901239733270682976472038598641458933783166013531046710587394586996220942048712397849018990193412900890383254006413261576318943444625306939187330726142714070576432046730540419878420300701878136210405037686828691231763674347851152295427657831604118665828963422596543733499474645908439283744869090183071886646507429927348009572771302898959041625000297160880747637056571573389783084511280102483735338536578663826900248747773760962327601378739938590097408424383659542887386457630749659230028222144413850114055534462109604622235189532174449626998345028668771137404399548114482373047173422866617647457708112260120331793294086596548853486931162018621965531061294601450375932181137890338466843039631300403120801293895353754749799601963087461355647540340605317386160827250727005184861522337578346722253812046912075053515791086802988879400654574275261649848046246380284701951863273720816775926648114473604926987279495429666867633749600810483752155381717321817018706602772422976954268784092744258085003415457030693163763303312293757746366522395397401579304983115113677531184243587693787343398196409388792175422514965411500146539967938090327534360708494248844707690387315586141238240058460139538492900306825498623731306400190251815366344391583627115712771019787671654195732802141647203056612118774753689815013161371761732794993775022216376794946791425571195812433764846598483993936731504908692942764364552881481318814921378539610741761172341887566227385152331070869690910766439992362553477278863141055988919361409801930259149820020935533326363127974994590160350630238941719948453567545231932306361362878317466335814729193082799284600828387282628721068927133998605415892862439402019034522885530648848237378559482335279158563859581504763609901267705221220166826134187135425745579387321914397444808744348759946895505362319226221562762001934705676213912150988365907959367302633475232639928160260518802986604981865851597842287504186067769447138628729615740844517234579791048436312861943755516406857884365581336698347181994419467038290069931969482777061375212003234654745594079154828991616522146420116675856014646871145465052700832586620349292857400770661699942479463671901103260704204704332276662886792594217166407840462049164430161257419914113046273299309643702220144362750693238493302104341793289555679299786965376746089251333000219696075985030934860096374535017478940632025765047219654245320421199298669889190154085119838431489561359368274834646260277659699866498155707393121450615239813112300706367968056181358693940783408102305306664988313860491256553140403820428785679151681502045163982564477786790652028755544980151046772313484540720218752842754814082585286008834499774112595131425967240889144176037644492403861159226986989739785415909383435238353062695916842093091822948549544795072542094707093970600386624991131587410963150989245490986328083170115717359485192822006715372744124733520144729829896518812589962236846158998785747476781624559337110539469778845576622017094276664272883311145764576195335684280108399292650139628502658279662780726034435441045133675330408070979983001522525750680007627145373729045004020729227464297161570567198912382504932372926593049187533327616985847548825180704971861762942208467304662440951200061915401755198908351917018282422457855132558538448307977770761847479095755447287864225180677311665816305813842990845715490838061242410780931730929725666018981020769379292152740601143003699393254239571023458193393407066167576098087259408077617471396193203885360676452689379861076610867454094223821786521827737205677904954977070126037666693482264099863725050267257135214098273557765812500031348994356516838301456464642090285903850335723940700698547247296043184935676931893777664319517648083350015201097580320981403237551092318923046534009168555768201700304803574742450485090143531527549544757944642395205116875602713789711873119072659338120094855272915434012065296127724627220897515580498699045111445482648755801789382550923474447219461157160525182008851066002537142379703701362959954580091388337987712200758658649949692433588782750376430592075556267965034464393433215183217434766410922366901782452726607435693820120398694162827140973950797937316375922370597389375277473080435212432945078889247848324423788537947966325690603895278754456585009100422820447091745513449740006424289460224481109614981689288920017447734258885221346885311036658354075826160941977116273761164725675789901116901294135677772896981891153232024862856649626681654191018103459376999766335932397971696341558212075400564865282437204736270641779506153794102777276842416639801229386146736763360220937790393067475948449795931287517310548616748408456948064264663769438254144314218512104377491449019152759199903176895873123911611521962895804870008577189749286675176626925535706646888314413203808568426790480955309355392347495816578057948457254876394463281336708813401238387565061059056890221346660893692911354599212710993672205567234194821216087911098897006500531371975029913310450162468990135672839364862881797518639415219844333731377310774914026553679981328505409060676574036128346512036439347877775574707873415011012298407880388124328522212098097748354351626910613963776140722538212834314518882617554208718686343770552353056492034591708308119671901468661028915343090179023544693440168490430147667520974552345649095082862204141166061613343635073784070830953363423931875583533461244857280041702947534438422491431870318955850254990593313745826749061048135017064192879386314431812229361535519401800989568966762775887097141904007149774690484482733204178739021193863016129062497466688769922743874355476772670713181944384650686560811256000980648726392423872390134943088601319234147863728673173230387769937763563885246099346770851208888031655857725334635042609068688044862892550086475150765587563880005331854056298025947967515970657838894175345152782315063789398603017861158740367791819614526283877759658987669035034589895066558727806285356369672344062024552791267475093901946060223559620087643102240577846082094608721971981974526331602046110009656889728771905296693748694952714717340162905500856958719482338497646321279220370046163061074898025632530083431850009872281959371993552658963287731925531030315844036340471136796634321937926863853017851152954003316201807737109281781484242834429039338220753940033610420961693968466207249940863257899035352184650986768473646989180451079033385386737889859825014244295017951139251084857929883152113121795941202553032994612827415770785472943217023861062838799011019592176692541497927067254762309706304315724370204230484710468520063427825719924397870350617625162434265824448445932136706474475729986428704545925136756036714699926996046034917749499520656811762903113249878590170602147331296558813877141504881889394060442920599378893650629166509538257949758161969940849801951939528037357457249468406408626175812755883103379540088642422395604302178735248410340422188087837751393580038216191816106331550561416237189526796420996184102073255812984655532344344737172507843398897593164641304686416118699138582410734361984124615619417665863601820346993281290579252068821250595744384615746161288710039085121713671871350276859709702169173953100255898525906652525508345311742210020780382020885940834016769689197198348715188624903107774387595525046475571922971429013186889235574610779659374126312255847019325612925392164768193009187905264263639388878235244597193336001726665135750273792782117781119617295635406174407198045077056776168084018534741662931195426284150101152022867364553821393197999973388687135840678469591589241431570084492261337812947749592841336800288183349663478628562220682225061143021954201809814763910964813742069092362572999126798213935494143172046753840844149906486605874123640272831224803068088994793298863107710928127729187157622003860782120007083995399177008663354611147986850734996484069118707564391286573922019723350505447577922002206524256253603375964710466466098679500150105117059225019963315808782256047283970249426023599663206492536838338685774190400548340838299066551754952766514534085712733592122000650626959976753771083108399575604516219979871943790770338415080051361000783135501088454557052083231302563813480076306104329944242522671429162797797598412307790215047818272104221447144435757594806759189367637513330998794169724453335361701074846473856994506431376685232324461843709315874708490471163073013208061750369344692735450978693649787977854693885086559120517047355881334793034508717690547842156131432689136996509927338850374059632631525497480455573330827896792513238862739903182723148868547915742860682069630429826800289656822962845086661232662443905395047049522333013088653399845598548344099860161348444041512463065063261605596306310617048718869030384675024032598865685523326702162294218233632058539613042182932059527535276861474962055262508138290354358993389477957690700033210750289232251893814206333132051755333353599508186066643347097012510694211734206889619983424175462968060698350363646078516347961303977476813445211340030430340329782982156462849013593904969611178540553320881048067504132365056736063592321667697988745742100219017029430736797853932568521456776643172977873104147041741865588445148034107503796711405738338041829905776483237175910662651206382291734618739414534835371426429110185240031476083834354449443826975669527011920247517426248510722602368468715266732222771832394379898810569700680077310633592969008306863204727214861361819518860439893927807536328749977257744127695198893707783872544138588674225726455986467801051732352885185968566855187510341084254628866048372801180133066626396053215837966835191708416861917682689486969651140746018832532601836999192070703396287005057176062715338910841307137427993097118859592647157789243315208897851710909505287277261354929463266877567434415184247374093435631838237279610593098234135902655602604906523135046213293454577722356199060544530122753880725673881720872481389197089742750826250199800884831020642668586389568888240405593187979908105389955598422914748258169365231372355632416486255071131656656090007781369797996617444265310310845098328572056368546008799917313692251999811052788305575611327147087491978968560069113244342655454729061864764174820181608537995897282934089067597013716018783660962358895730118114588080532192127806866029382785332505953215169754556284501017682385767761906811255274059709729908816923026786327155015190912559631242276558811113575899364340274244690255023400111640733970877633137439093961390512450887492694417100176794162673991174689353692243605628543753141819507080307227176227076780617472970196559275826760912522556754294607910353393244429991928340489713222180552139728767536634369890094839997313266964425878973298707819767803010204650153600368334951308307900067755303033735474757077754531327485292965133743162770060311152478475604071357458177298191066060629995701407676448329799122181914413383162740057021443028223477435558664874052780315739353934922605329766083144791428513568122853577359281631409145494454301738299385955125345210521471994998234421765724232889671712900396508169818168465689342176945485609620584546392277472428025212002028486287394843611086828730317094398489614582784305817191372456148820121524240945570979733832098320908132601519336316103526446324342677782912819430112294550414867100790928393109053027342681471674322813718353511700643033184591950845026047396826221667893338987633115682012959509286529290156351204109058930255799473402756676692670778065596287414202376922791391362580314411874820901490888381844458861780707324354227664439241421990462327554645871256170777872594324639838889225897917925426754305684022476678621103509411604324431500316047307490003893688123226011418312418674493641291888623629496557416426019026149525934053177241459658412782102325922689150179603635226471059569395503708275502199844791165493426777148099153448198507245457417937462429006764342170824946156913822306724619713772688802458223274823834865399273291084513635282573517811628722769548318781228730687468087893477237569842413877581911501795567593713039131904111645291573441823995209806398316041719423699800910832049228162934221043889868781475146527031655093094913955755110598961987507190856636905166165918340592483009913394917345313484312690276865249199100524288026102078190271796053170699709866338020432527345461553766857039275801235804127761820449192426125627472047195875376274548470881754004867412535522363535905398598299970104890148767915652870128937460027995624066347072899629131535066111873375354839635515264877659052823295041882841451441416819575529678381834200234559797391838591275461903299459443033845494210601459201304176792801566656177019556022467690446177887603059334516503519151206388211651405292224564396277247031244992300438771987165851255655828366301669177461776721266922961707313475944996773327005319381926670495631613191227057500008072979506059638488430500594966127997731835176971590521339968808034478707854417111404882011589256194040948925373528443491471796564206451414760980692079570580998150465450403773846347458461115024478282297527042377159868788043502693708207684279264360974732854339875891492029376672734786474412155184355521992621560249072752957382000243955712212501877702640936395712265819025422666904512378021838102166796953919562747285418673824901317622691863789373405170181034198852202905536192357461114244815492416573253193496307188069145980263846000562694086464457551755595968773725114529545742149550267962940509881242748985829694862018067467202550774474295041053964349717996501594941256874375906519958470647402586732070568602312752956169015011314443901697840726998103777705437522343452917884532253848368877759579242311243096999100734416324797072293640529311900741707347227150438112509368663408628612596714238531519102743900906630948182019696382097270261532818183120431507981406030535070390274909609749771061140124933276719542045868245939299087548963936222816783540554613770028790689582152799505028130373359543941390840735342241160442546319524018659844304621769184972187356889752255827149851624591258913537616127497066328491249213227604973452875253650003164428824142848171859350002018158886878848935588847676839971310842410949251146516632117017877394983612165982656129573580342517048112756949874780675728517536333260616596162330118627747150353952183782855885549146781216652227512669309226398246836617179768605520521515647868739860002532493404947527399539628554881828012505035831632237674066371782073506873198631606303104666789108874652799190954490045978828184388475286204922504285596457203152170558537631370591099160521738332645629122232600945089383858467306913678195228220881450046330063181118897550724001454183520035418947220736981747799782509357141393179237210491082392076790279462504741460464378555046793990989598748581707003890446840591698937710419065666498278366291163205753788899009628140398543111820913959288274356517797754975321979824561808213962019790565385492495392596700770072307530589817888092896159689296782402266455665668108892070571827523422191579994072136195151951821268250302725172243189364128311297778122467982335190155033998726326363479740684545625156404276998198064787623122153634803980996743094504977013705522353349799472379833409288251745555127624888520696216653384263271950481561432612808447526689768748978179049717741880897148954721392423997241551886682623053774842777609711098237959350503112328624625463485725563490891282556833701842259000232879656378199001683578890767966220782136861914669588538619377201267944915835177176832750275530130017088745567955553884993505237045230208748816651680728742271293883327293104171809928610615357870752818840985870499789953326465430064119226870302859829232232368550802021746831916510612316490720676224459788293867092737914562532719133807721784696509848097905582688561759559527827975820085607551288029890200717594408413904284740041943173287412078189062431939217887681860448430946585633908053054650579243408923213177342369321415372689197429974709777934626163295133923776422286357886208438408421548898965493086481186231145165961463936916159149123637141988780587655862629974058140822907516945445166750748650652213025171570587491243496234219494413342958698734946489079790249124960548513941228178748683717345756859027771943073331444114170503515843659613134937199175259346383059081519231028047803857235761168834638188517822489336802949028054185001514865766241696206425277338336686234833084967751537596060659953243045286478536519604945863279695292522398074880229788304122035682297282627051185778847800853329778783767178330965709457813646872264520677390219692040151255195137085560494795258249671053212913071679703333778539619730351579448781920422658978715770951848797528195339753901078760416598995147474015558709907710895424546321797890960844984377352423149306529502081388344456818672803122616798923103713487905266089595812591042789305318617241134590446218911312056741214015218524610913508431185855035144873325385187493371041096621372364821296769770674645688646600761567125971781666182429419861022394028187545902306936947303626056285779341157591195205150523052935952995160955902803177273152328363427656123217401173107461389744541542295327261361026399707174358045067486348280669354836292401491416365318390748998111026723817454025027822848582363329908819206371299023695177173158785717583147168375055365984048851391596298579462317917884222427272874585291950480072295536344393152373569994469551920260769098300389379947700715387453581562849141281373122421014671065701696410945680518051322693893909046652839971079070877440704659787598762779880187415141575646406523671544821115999836328350557461929868361207445017424251463004238884732660837259688684380039845348394373165565564438753391030622159515822493879193554968385951246141897810392269531987797474858802652787667994909386201798407511494498360353502613389399836819893528216979888436140145784604125511787652688218949958328215725248530786118319968812717726975836322877849140143462803526036695892217888253515961827148221154176975983688973260649214813631498333197584914734822690702168089156041261550715230813781683099554685217675722051192115307128718436859129352380769227765918302231405061731964708523997821054300723858271640871506067309570781604275938589364590508055089450703089978750784566641370535375257159819609973292654013700833598697150396700678339699445408911454134057263264935383250170522435440680721827985012585427738764606707520580004585709023601021311634438930775613651459959242496405384309421076651879063344687448040491666651859441143629181359331424809981269098640318065048229782664203327026459075770885251289975324001503336867836710106041425417100780998056406311554304679057822738602400554593808650156602820634967549020139551165208182355607592580557103869878987647072433386188212594977483981354403049289791224948557109751848606776549555220501683563305955773689828625737819054608119076354924234660786933542981666043577123980791445722158509114748463875405235392871157367400666553326839109043714865633928628891284489200098328140383899707705330309869882081860847204798627470341540480579166497089298354624729085204499175552202141242336674067519002927230011294288434797243409213001063244367803745372309755589663229420245336161346094031055140822208206946273443682920363481140104429644297653147177946727312687890105946472351309496248284763286998995879788577747096343615189642668284622684827385311228199110976017779186701685232974062821419827688882092957715628590766587766526742004739322219605616745908348092643183165744370358846144516533477159799748853493896726681112047378542843701477819266794629009754792202243797143985903598807551042165029078922409134503058828761657722162954315880195605121932840688657629276541661336962480465414165765100106354866903773240293132525410964305635551474569197052031319486300148697255502805115844010814604806154396407924009362680339677021844332427700382210339583901709607203268024482471733214230695742840103201699193832792695008386671872950194025219599730813785589776791040979136150120956204395713007550982014126386263723405670266473991520033692890475410037850357779555654797671944386583206014151820966359982805726765797524103887140523590452090828309076639108767425879535315789324139809999063932154698688379791151041269431811080883252194265167074865068387129420393914648950902042664542139087731589346666066023867366462590223757415513055356694614747968847491023189746299393693446002508903193454942496548830959455004094888292624289010340525697318053167232434307530666932824886943686664733630738787288893151900226923317501557441415562619325145707763628147585848028453992378360400800327499015257308349022099355493501413364015966292888902207579617471490363353150152068555885018673976766394783198422414736164701498330266750362560204605442981171028132704140649611955985228017414367258651259539672404713713937757900884922710905892058143101387765337926478652417607166153354627949593651141310300743165357102479443104457630153732136254555291198369685300481174870278501733079186518009014089863464605219070991634384585559023938996967958611091189883388307611273737365462224343988611107659853662095158727123274190519634039720079876530123706986214707582990761037237540760066258005350643036356117638634423137535314681312429846271802010434559288821817859996700796091618145880822531896170958625551589933265116897567572223876503248651739069683478481046337789610954905465313062652664280952849063989150298527404272611580307072491443451473159806658504774575406192910324307374282571538291591976622524066588805438488165176116587165639843011857549379572822337482002063127065719107420191992487852181658439467316756656766229233830876845756327697280990810187560346238781897437845808977039945029377584243097667873326125387627833171296146092648574091309815242575364099109155263726756392945806614370554138443083377966669494468545670194311265136611947780628429580349252173675886958548779862503013970986157652802325957070194563603657872871466277009574885606247640669342774602929824245465903986529375918450491021121019752696859522837203941465108502020476129388705932140895223737329110068446483859922810992752449782740636957824300510987289687308393739825361763964082145262748666125412402855298360796960901679530080594568924854195287646490972355926935303257434909439265680408914039018455947457426597890553007202042987361178641811964160821159364497233888785494741443083558503846570276441606982964060616621095627494233309928818377997544609688681416543313026278476566301226633822943648293958881250018825221154311648820943412899528479470378894913414808603489722149919809274061844213169748074453105847047749820072333623149407049562091618731319009133802815302226699987807920640306650216970417311352256820101303838687598399472784766270257161569926881302079396737465281069711965411620858956338999128110675094971300046514818309645809870269545962041002626386782134278389269012859728493340644028163048714545654148821868986636087415399826484666093688632000676012596276239328221706983591296473618830013208790941375156616616744854427603162587071595802795764103358834812165927105371097236842835855037351207488371524945140165158131237360441408933770459864546864417506849786181923074023811709419702548027918037718600084217890254085015607948691374775019435893311995804011865682429436453896854625151670321919083396625251298918954701650619159118545624175124335142107666053829833609204513970990638726502346291730960989928310321620425519449719458731974373506810892813969668024215043115181789355082060913769016202551922965307169681560980044718802555357311243398652622006835597973195113335003374075837990029986307756427865954654971044940620022123883077865956016155132349625116940074239311997294449223354722987177001599277460057286270065695669080058300435437279639753721778385627060837772781963018932138908133071380627009618263437839321230190426280651730645361666247404616078991999708179905308865879991350512505050070044813218613513371014204673063468999420936456100661147763954069933415026908536406106430435172012939895451254530034478654933075070069075586054516902050074484974880096581183510838622953841543230413044650160069241544777754973772127981889722615807400961675779362179701893559731914398522721168843743534157389896905595988924377791667198811013187972138540194786015814217797178237808626207239530579454106341139124218932928616717709189608824040166667973539683346789312787952883878437483647450824918706194978634101372810008204193468799115184546067105971672222053679977095710318867537743668272983521488001573135612155997085696169851982679132274894320410759007308637720098448479605992944825364330893000743703179199323618745153384426354282046612986104638900879884407476319053212588327939444002140829563027666451170943570873094658266977878136247525874209673944281146217387266149969460549073618420426679514798597839004992186466137663805258279326630459457918753388030368928078802378303403104182178894850709843422472690023852358011309047340882515744066339130818993427564257875758208732459549663919424051771870647745080666883033403442969762776631747516742194380568710227360774176428006575267192572597483308071516931856639667326368510212628132726786219897154157246510117578536483939505350473933482544318140897087676534430346521527832209397483406812525881349250491416583294451998962008938476603756066145700140502764852983339117308886656756636564116374688718154115260944827571616659406356475834959103403706609817995654982005249804408049379575199461043907219224734169152285456081800591555003829599873136705778338350789452051491823998688895735245814155390559470478541970731403024188532587253859065615108831806302651974282342302019414654365942409638979549885940636087341148000047782091139124134889116571347123994537739587739114217917181419265147665357223866341038990316179552466679988600093516050975779683863320379070409747915764892419468722940859173082191988942585978524946782432222543475612913381471318182227986824600332844011208046449206529441560622774381262358915573401245900450474351660358061931393226583652112215001880377719222084463432880280153531852871712248957099747182601971534929087285263833428789368590699578766140163554610464128206992741771748317558002679213296580211574389368523160517231598301540354508212926888468296575800367005772211873511974702914657330352184914419229317609660910564169109977447791646527827049176964679150278925536056186938889327477838550932841295733244102179283431873661740086006876497799976208831698801732929992157359601800256993388433903724580913678988177096694681786876624485664731648522856946351521838697352383011660114145867796743915186131181967868065314339973353219922641030498688290136887138795143802139433093599869754125891296027512360411459537885388550926380678720258195400451511773347758662176325050734774510574246038248429447092243279039609154567495282479348229881489450647163125106932015625974722056428393127638071016559019080305733347366604307671550686467059025335082348616197267094599684608765076898959213275493309299604076288719521184785241147035238926694807209485730170801811644565170787329145698338708420937226684306407832935433401482120899328494419191894945760826686135192018987328132084164322589468086079972615753029913009923367905213032486299956690524444505929281501345422536980434378104997790797079689385052200043870934228803792258462889835619266271609261629053580656873617963037942912186889434063645922381594963658332068940158635779287079409205142480834687112544634578626619241593920973119116036792530752465872695836264105536647788055540585583787403592727158495201360729717075033980397315002524790658688232117879190640341685401409489676658251866615270371693621218097979704942326497152830824771401318835955301166626936204960651472253864662840677856227853173920762146547619224127758082709198478649913831511606335652668231633131241796099618195012071168661901959031367865524773183002939819095212094233383565728308086365405832412769751582142895591751010167055481977695054330350223552077447797100286944884446805813525279726363017965340707422358690609733819612583685140430704564444735112202864369277961782518650349405493551305263127615754690301737220582150541695119791258272204956547438281797626423996075486606765026438467391275853564878265298936274945276932838550333375158333031190934920051874537329592263798275307117424927479950673162072568050491184964601718899639766637781920666018356093195750086046286136644301026524702079544376086844030990000213511938658721956252480760767984525609593355499519451732486579513563485991327647719616752549841167040884643665725611171716807662871957611013774200604724450514488877880246128457112201185410475785395958475081449219550637424255975693180033056799938682096027639641797772038449584006548432562020558356838989143126337354233276027839206631261794569851664963411639051396187692950766231969316949677499274999173754086216793803280168389015090581063829015512960584929647838321203405550650493660359138148119776306866682849255396396230443027131530394979300033216815827294234181753660966631106005055897720051739370328556399424711088587504330304442225251310327724201645926238710173152385431327844631334590112563571608647934490720320633366230782599715506996544815451367947848090259367065599968243953645324929333852838053826059955366421552659264376125906707862084794640605399335428739379853880481863144440325237648894376529846353961563632950726881431766306922876195360550776096965930125376268259220551864927734685127319887602948805695271559985515404247470292324681726812031682099105068113270817008811807435436991102970630245897690984841101326017778880303080257137106953043169807210451422049446475672046619302890539256478708354463728742966328147076944263677634004209263685666489418738278709290798668150544543412285209428778307217210352710983593076777486983145556651573554234363469367005970980094645676233439684672221536220590002860833360180583753846555830208611646862226774339524338992983537019321143080208412603565563704012397005966642236553635649661942387337207165797111876112054009641998071484534169599782539864756598854233617483947330172862025748527694885322741433803984728954221539556860960598644889947960916802084317907731778460426111582226712984695571694483641187853670736204672077319608504430263296464169835540474146328334017099822808350007186730660747818210390594571294190682024012972298664496438044838295690083218948415509782400375258959721766353631140267651108488831096393318331607760570281999962267564580114081894616386040810420094184074711946526505843575499067821729832403413978838333098796019156669704658412866664981049382423276362841595219094212373407339422512867610500629422614866509960950144030556965054745174494663053404147045587959491793343727483798261174688141678201451296669493679469841097387113324638867823704833722389832557687748301151369439818109800618668411205303567227210737752508642673211883183888936976647533722856761387757498215014060705411276049278863494079825809249498829062560697100061619352244807594398862991395591895867391710533772379698828511933864986214779689778014039760283678708099851816919289970692594061307014002909541686694034632011326783893799917459285066188838698617273697744823575806706323746408566149704624428921664718549424889631804854211258254413270486706777396566864498550865210163103567601991897792853335661375090457392053387716829960823888999836746032701338149270163378786819991978841168706673543549893029848262869686892181834510237676671968456633725243988031027085263212575997510089967779390558626971669113861506256798668878051287284256913343358101597540102085152228578207864757986452955044505864603506535762845494137241173630511535423325083199241388060518337064254410608908947612992101123006655750381776819219764859128561266404969173922440395837511868750284682453040644849916596002620248564089426354292285139035500930236563653393398772697441385404468072764319962365498616705103393770334665408745336574653327031074677123833649475159357935640473930197368745790359569743012059008437591704210059482327464394518333728905738524242351111301812728365419870332274650346360220746255162655340105132091609887877787545275788187459251512595617451628882027271820571538870772506923544803303020087299426005343158528369349554963737111083956957285470849774547418572223223154133267573606552761612433641733214672971017193977246512359813304681305137126613419515666453694344619253196760783864261676969301326473123498329181998517915775870114319448130962831891997505219570733217282658730715483307193084061588396456886331779428590147240894044931510903333878302943776519631141996966498726816782355529742083938554428507388099455415017504008277627090520207334541773399706096347274929275219588890300114446722473869844257850349985721941780612277714370012587477183061855087201190651172877381624096041914692382935906227369486474533054272299821104187622676355064048153915338997430799560306714321562804878096750962687410276735354673320451449126910997576861257326612943413230375099486454607809809174082203736862652274301756768390285910858002045105545634152336007214218389033909669513833855981468661108157064955480400383734503352824225448622183427877611860280927937223256949458118785512878452692357819701614914159379574632660158364822841637022255015805193209522295533560743171205403246442237165362228544283716863616420618987906910248844902573979678691242993853772527899199682381297012930696787407833614479099796170205486495411947403072418174544534238352353978195928686902238889638434006550040428667015607178795930290784009088121861841394352674400205632862650886833819775414502176618295731980015157573797749509018046711996814092727907048066230623204404905468439085681221748907290019500893792269953853677371938098730363322191287088712741539042542223527024128228746091359762167332697155946818446523386215298205542148474690694284371031425865607128532899911407110967727488854748185266112430636635812387993699594946329675429262973080698331756915084839555616616117554258288195972963846891537327122518189806012339091900107877214581375234093079007880921667034989807019959824184400320714382202358844704305543164882800550444029787127677410382178537946201482871976989085000614039122244724276265984915068933337991853645140020883269760773276325366834365004252775266405701499697095114645735595454967016561882508684298059894699156547303578065426677385952209348656451690440452248967119547066993948052487976406943541896506392444378156960454146982787836773687675632994342400853842899338766630309808151241769676628870538333612316033502717369684186990324543879294873140827123911312551391344000454309940316349957179614793565774363495086131049910931119213363959830805204346715110001001107920524479468519653826309792746005835419465488643575489853194548894059477006866027605462381166796452531780499560247329801084100974726575450986754690345853533248312611607516860950825145280098870583040424441510193724206783776780290912133255717014406281790878663137214868458424591066957536433070861574293143558815631033842581232522237769512586116658145492608065395197864766072653153119968057541606022701101546729578346670583615284096677124801277701046529030157280826792617899305707982638617347459720947399012704357265100522290111449339314135443530356521946554836417619903444359214522051496944636149687764964052522241654257112157812867473676972865172340733182172550839777865642921166626039061835310549804386599861104102785601502134264049650759224555457574276561550534230707417033600552171477305857663880440782340064344674271930970277712641799917871765831307287771779429648235076113522656009239071844198691158902132917104646285084128602962082070739688730574005668057583392118433132532240821605176496578974537537986745131517844445710639498583182183797776043138645306451077285394121982991107224478733009286915627579168694016226652301159059561997230925643848686662408755493495015680442439178962335156793728318870907942827049935181544583673473022317860733858113725299574143516812068565172014580362162637262033750512763395818924355507176995264157130995203777490274262250143519322408553550397427249613066555494273154717793391730332958365714364871704614765849670741672549235103868853082615673634179790284954250371659586037936577977686064410224406800633081617031950841503563248266395327854298400015301045692587197060253929389350217885608607855661565241208351193800979805832805701127828990029690782676438589873556662537260755951658818420771389808806011611303215789226415258613543038577452244562543915353979405203766214107977940850169423097976441792973415905675679298575873991318140047181451948910562126754930638699405754847805047063340848760634113370831343976026957913135925718956137671216243205264545181411637539386478231927956519283231603743323970489830394583641762643911262638229610872011742141885358747520168396956644912495981236664574677803039685871067245457461657921827263389324139485317140867208286525467574628528055151295982380944371369721640091554342484804740765004484837524293010702463285836933581735064535166019517426362402240528187819839895286998449029527391286921546474051703371338467745920459417211066969373151115320375630201551900281386368550966558011949263293745265466494091572475089880903882070437893014830886010880274827374272942242028500434640949886418023543856335776696724792898941552136195474330295811378652578599386646054511114609840047752135257594333729529976605282449427342264270512555590757424469095759628982679344936587776217907251387083464361413185289359864213680079911788018482940959893334031862740966970731899805699056404790957642104099975062305268189999569609441423994514751298937470827810767287775471996011762906760164103452812514442056770636938560874187866744177635604965884101435057601604155806643259293941436441381404630504199268688399814904150540765939838525470664735955744155095059036587472401523032090398886725457412927532009970622403413693677645629775892697126259392114411370834860206271132729937538172481016066816301499194872599167737526863767053446182718325041685038478185128515478795694712594853962562117973444919270124331050708082155469805725676011016627365270048863892183656810950928896063960858963325642875247540077616014558889467315657690333644730886696724448962297182063800180400682466243618885378460631367536425898480518634624358928071758524278600766685023020203001706947399232723079781626768776179207666190025567457613669952377005914451985597796225642628428934827302673651606757334516067227387249493202190673024852928126428106499793135001470467227711749253743974585187248238625245789146298384892753843675460180255907524258581529512660619741940480140078805582136792454109321595081093434651350081449846100549493352042809496165680606533359544953203575339516390586201332985009162673651387645018007223591493697748893000243154257840543210173053951674433745835050147342490294028987077610144241571674830908526911080779778053080287922189673505103293373526150526399079314482450338594144238940929731242634556874965366768985674583091362980046860519234724888090346614083462051318295658725014904283968027343216627733403724833552928307328019694644219337466598522154621603436694195750910710340811406429789391577049088176174921433764202554906638177321106401441051767650244221363428905157703664946979076778076750791691406214306661376670530961287693903471513756737934114765309393213193637988963551557722353484186945290805021725453019242048637111190729105314470116486695663899454542478513837681986466085664011452751723976784738475010071595112562440215869034318835211021361356109206298137551936836014595426007773813422796739539212765218310638388482263983515275786841180581647330956258620161251838670337327903807252758726472631401289149559848714309781321770389476644231691059280814418007473126974127421789458778760157170189406512074015938551291898042681858444906819139954561357965210960189260566622299735452318641414755262253619603140175988443984699458815545130390677280705455500623395308633303575991209426438824867051673633145007178154331284272506882855456206007272981037220294462110404759349121754977440160232338189337199837872667095098970600854713364112703430189609760657153698279842334805325412330954714240638883656740084387380710160356907303458712772725451900919717694412286378093928304966294006117159912955959594563014618623634676720380001557642388173034971380550700255211784999972570524648514153512680295615232017788827523999171704609037644195608093245072710670571061699961154915446749868410480453227631056150038880671536046593706609346322919771047862161622934033041799303162928742626160476244148672782896395129155417926431887658944205281290502174268392177342594787440371675058401509134948326985484561792564319345908913639595487145152798676449949914946695573454964588119386140616238573849619758816894493286188009996337612279466013018127955939230260437854853293746932981418490896033157898942355938968594294898523871894226765129670633142802610404089936027046071239170097653733023221674280722152368648574426262302241412498906701010388937818396242495373044932549304758532072881946240080860166390025057820445074657154575672971240985285346381350488581828334799681681960518834487800264775644880729113324307343279443152015546098672226457024462407788694798791635068116885139658563240499622734098279306189868599601620276815133528022407108593053135091132262785474799894134035763631806730152075104640274619460847252239296395149733202902409470420493055433824905218712526946172147167570812716703949501634925228976906269036915457493555900066217596136567589589733785563558165673456801208618636148969672866400003109521129705364545525516992499276501660005552570606775295333721493987136984264805093533525795507736452755203024656372454860598819843693447706665103123233406173424669508915154712454041224665969678846360938464236769726944320761484007213924947787745084110771347037403185186678486969134865920720421535123127033004246422482357529716864385646361996865801930753095596512780939619185651377432730150120913399127244573507508322333247872775397633293644089631052429981468103978973878273587038605426429119199435130956009745122098174386078025857625146433434562728376073803981554622376712045105519143234554033168836900138382873156762628135644774238862851250900302691310694066188014541357008095965926908370187936525720204600928115783565703473857242301338343428408436572046618960174680052276371393124607397699848085324776051424034846115571001740528804254584941253184196696326548728550139458657769609745022150625231082188376758196785609755081919535654633879929243815523115336126475352373480836213214460495925618908050071428710377742869588902540161287153379964717067883381657871028826445046793301000391013499730685124929407299332703416209077944372424839783764001440365808820777961730000833902360206805210803722062805913817098749343114230222607783977460833143638338131719583808716514802438975183630502791161191219056725837087453046563881446725207157112859163471980132899113600084529860569534320446989311846395964871336283370076611975397209688947351882207472745448559616034580050228073243702224282869704836755194487450664378825518923280077288600972536427149371072843546611180348355020344524170842028379228335011964274806807497469591370426829356737539373288463046438789558971292651899509768639540654065596744365345275655235826866295710116795561004030931164658085056382087337754529516415305070460436070568441452178840803366300525040855773979907708072470440826997055179447688186659006601469548570209274823217256175482004356134136099808763417236137096314034898388968317543873777247903329415180368866541843553378944401163891242393729391299622844309503367817322635434389016134589403686365824950235192900091256057531905927406296883015757442755088613832396891423854584401322437619533730975635720286638816869097747825711602124408806258893707111325244906191658390963010616474610263658865036846802505150686321647748302656417067982416905452806454625345136061868549675362526930029708293220828494398007430116109762364143544145081305613003860759737583030401721773956324075332501351472730934475296348768039175519399808602913272360098381125808380409225903579780327259990862232602064259121218950394053924715337118038487395260616250183674620877660461839306358637605577795979416440787154872787130175419982055016136871722551267456441407074597442344626350099789077009950809206757743062651643306332598329342567945578329624702796083160890229526226606650863073419978642279639165224514569060831984530388784176759767505507359401184080642658766403522684522529429410658130695568070439424865135327284965115182139984700834623935583553920445117485498880701311610236412745476156214057396151755975973440546250290748112057854913189168610491181586458360873321492979943511177615484937111054831905418067939157951195223623542733638863411728125311852549252901250187412547614717134897674809801936756953975011601029210367152581047338712277875394495323135368693633331795516635644701703045363850275807928408777243851821420153543704735699275047971067725441016315780962091708844331552919596231709778793634216930559690922890167517484112361866353280227901358083940452718919245031642915636132272918288846891723684783460259683793175915586712211781876326326504086926905917435763591618907305027062537114957079407219026240250164066473626042884445389169992518501290853426914411014499700891949903078506239626157111115233993527246434073800719112141684740397008214031948592011792550530177637536592189904881325112145830175836423652901918524349716809408555256633831602466411752231779278139452694174899769413151495111004537069968810635980281404800575827982819942790431182917542973256232180367537408717147185312331475426468256970836664975724520242062046306476907433939222809062494836697967786202895223361026614299677747093289249757417378905389985357187899957720723467340644031131368872563321381637312254643957380991457776743395532930432958650782137433755010870410318547296078808901578947338297153584796699340791957907943037283791228313104567439223468210351755568889391038071289870127522277586068987694558092800648730639295904960219776742507699565617891205614576189995710934136918521767660921633673706067198668062400737245797095522992823693710889881756902569146760168313203826795837103786211769789498257936439736750412972655214940556072651814761448995628017799870419853227220193943483747325177756928898361219880144509506721336997113750928285880211868783713421124918511787088850911592022370527476168775949571578992349563600868292102402607726271838140233885599425750061038202042757673310811423761532451244911456375755785653961277791706592936460476797229202705772025315836078396219478736417981534114480341738932901198032803358783116957917641602636093411252861926744775832187447092543998143525458122584260431499060247498944407758203723390652964943890584633256625041900568930753018607798424051333311785435952655809226128975025044906363486761165298007396602588864535417132039675608480151554814781726706027408309715597704607341062693657335852953198565951130931910980335061660763370703995687785962378946652000879791043024596183461302098429953905513323810562538016959445112746629053748481415379767413082869672080130068483827548444251331184132038666627532494640690817212669703254981659090438426636846487629815301118918306752227265931795889924594554098008953130431998938822120689590191185690930480107871155282465187751691294520922128956899370802142686052713527143473269846029650766702000923633976301288016171456440970484334754906912062388663508241655998375445736394390260604071277355742960219611422353754047845981868488944405269547895189418831223046921691617902548270027074957625111027273897830212012479813920998142268768909265385886502012542326643177566597194734867586013937778778772100993340561255523427874513316960105739492173862402193742864130722278031459100208247603112138073576226838367626525862209580935722286572381122518651998143203091327048735200338489551409975187299625650235210158961506821453016094134860981846818143126750981006857746335169093806387840009638197444629190118090660341934060269011899868749858383705687340139034945573493694167903240577870296679796801485441231957728714272563933681777843039216574369303380959507578627981530025328418321893425269205240087417552756738364757265750282822337921939888592988593928605198496529030171344661376010346257543838900873237110831684296291874217478163278563975814391521498947163754164473049854601927853190312810192497320844521379164807873205803014649551020811352949994187091475633082640697044045800901517221358543270559673320321648095089222375469681093991730949734448573736383359096457790360669666918141388986743652788302539562719623358546352496506606855430962843584014615058087768814819567052511442057577402976439874791725808617275585124811698429975080913768407388373708184155580326692952869861701280016046384028553565882488627505693691885736815199707064701474933149081932465045023834498993542932722437199463237230681386372566082783258602441839795193558273966745808714057764989897885624382832973987895373159875007418981565949721463325548825755513021962823503724047193387399903364725812999309420229211107149442952646889717091134689577186789226871689925799642309598412897173226833288503148938924025678571312864222688535560930462443094321558964320421581204965128462602542297780639739997367642051988960038308495438664571506882283637789345210463070246770804296978837842285953551892967571617279084575673276253493923937294668731040596990232113269438317901636505863175693345724897176565257572350244084104488370217600962375254990909455045119624381536259838071081386076437770711122791027103183573504356548280093190036885876751248771457978608048195204301020992296097993008654433393217857566391951661860442234761705156519177470376345499631850038180708271001493198690405208959350032204950791375878729804707145112402562051116548365254462703856233240756658468034398107814481549652376454562017002527383584109254880332379953713023015457223492366999838100235326681214837547543428101191135632833212809782816927739282416004302855214422105893376074719154830165737660265146535597304118896686719500199123457392138414523901464473097014137181264877345010939794781041618210525431178126783378261530339609247402848524593561541691699520143903361335792995973053309018761139206447763597225355186542733617695491669364650130015572356835479122029661865044131612267176410054662114221921950655441986483465608577592603779485174632817224245647093584144293818577935699162204466142993212288326510296567397488950881042104919943879140181653861033979470907331986231393558019320099423316767122305968165965862683140761490419510470702045002963053826600768005430747674904840723507113169330072477569795581676583933229712062478913819952082855453196606747447428210100748399238995595222320408288206908148404880040016217837483225903473938219263710182811115811126398610403917473913207225014820184060578683268308369898584812446484040164620924045580426161488885155893260995870071185538145183084748616736618149158353625392846622939996940151924065931626726139958064838659248421228394171792799334831149930893762919387423981349730949247801801212697173775478754618308792710957575800525658301029481673485838676625849177692165810295125291434936246126668421630562629816264123023739123948040796350188888738495204958587415237263221643660638960772205243887153731094409486002326097655932188216599296072444415075417815372860443448703754468626110684046506778860669824504566057252204278003968506060438351199641511978529767645027458938056646613055372244899303930219278346403318960134343592167618449730318830870422981890745716775648012501158889367167461800184154164925042427329604955184234656153398708612788368049077737656141490377287679875038933991346485914541654188702103492052723864979195201243741153672519153199065911570389650754778656202675337649994925163765765456721263691258350003992488806108935999582943020044906366842644939718410122128369252184117283558365336425181514934573993361537134278051052655991218606481744322700168170349622567827193829690288348129943003322311251983675401157182961750480017417070773110565993260412837372068921938218056244718590241227267516315300831827288183428546048624453404626239771282035535583515831310045570470462885406183196926996887085136836325679217625569869650298620723693600358561599679571968771733048983947955408562169059680786142942960485821456153896807788699026645284201834047653010045542957664781251490897079321440006182402210720178196657310207097582684653917910539178431881320127820444650466038245165914233676789785369096622128412568063891758531901949918472930902008637726961884993673911773537222918497032396011948136286481334658524726863838073246379042928192531303119856838619591602310735044612146439600872725663915421478928550854730472971644576199998551091440792786407896677621773875221409600293837789723574038742064854508367520972812015812110632614021971540468815281683586609142225189547492964144929528063414063110474655609752164181348315455526174319767127780111770821896919145583181492842314630255479855561428081616273373403346648194833828735506188626067503015660645706609220786397558533867314160323440398844986574834159249562365838375687514999558204974420941363653010658626323962085533549081358888614036467322727463129258334262117450260261897864564237130725998521201964458377946291563645363083368532062439369055700352769079960224410316364682157427528909536982173078111157289007144848286058618933070829716018448649343168815488009139438159798701704400230109140248846922955108367203728202075824103788148677476870146973041904467456380852288103171593667324223772348906269375415986937394776043086004584869049372418750787485319029012467197434298976635243136051830410870463433081452930116641024507591461300348659450943414161905383093218647587092509069704069707014398649686339899738407845929595812449942127223607084812271989683442869559926731836534406230937240055942117848258612935891176380227453717735374631613501658977869941834033065479165306376661292513345544932731770701804506964223103918803110571929704865814553397124511777019967335761481207541554248036488667342114159031371699041132203230660263237191816549876989330098430964609668692782243209798642532992814144085294901746100852102414731458037985745864610016467191180053080718957708808033531046007941759865837198691254547807013558956904317695032318450268333395861637398926550936298875887917644289119907953898858426056084318538803450811207232159045745758881039216824539383729284321823800034973759111035903433387765943615697499259898822538345872209190588849553642066849917102404233410917749706552565751362981390866000904438659567133983312985849804897848519646133533289178539191353827685449885227086491741773698806550426801796723127387573204674163487010743653258498253364818406500338769674213262403068348076419880683510698124172256531898280796717719487152997466518685874408990904193222983467395911400549129526909672598871847884755781262949704274583128073022868291451179302162110754922715324459177511654591596221172263665890130209828294287138013028015720401000224475760705789606421053847327952976174820275681070360868811235716753773548285112454260835974158005853458922308320671325343471961878116030251007160407636127761019870941852428265473380033101581537395191988782671185836685696607219290097978286326664745906978461049552786496558880693554290212620397880168174419338575029478476260967934983300017735311298787810079069701556063993927095344861645726235342513690907350928982089968898937703173968921982167676474059356778588175587409374047516567897944146294364118788418737033798468645645270763250029902073790299149943654681328051848233476815000594193073184450267060011135904204498844606356039627440632347702032629882634656620774863380520549046832869742858329248378424060431266776367682479737260097656926815602588650202725196494906376174034535713776011327517598654572178136304082529130098359101849886420734915069889952846162902374121596667190042016493611471477128263497129420700974170432139778944660469439318935569550228093983112501062391837262672274260696230886738562248971717513675396427045098133566588423264431958573493664516935861977180958007792323101342633237422709531005036971091662296851707956124766924478837875636499020687997387246096533026072151681695584594373527922987165566784993834894107771879585317225557253627765516655829852704374564458351000583545335043004308849996878486817423406387690667231518698837319736693189799552260591227262193736401388722224187770498390341884757324277376056854253594934867243999324993391621719701790521803397976358626243218596234343969997046326567771969643195445041297026513365446286627870558768391022245677081444026372998796244365052752395667364274246969492557782652737727365021414862086108496143079226263462205578900515866419919626175713524062663897942983379823183475599770813088848098612776941402350142161185915504264798192963575524007567249708251414330919683050179875438540427070198209974522653150369528122416292089849436890312746154869565305627622638137376936461439609728342173099219683148291594101958112691553043352772276237054792752132309523706657889826224284457247830414681780164341252330953287262559652313201257632037406421370782220348190380235093492360569433999877797951132345788189465382286483514389579978076745667773011291616102172406713692759780412586695729787794949202775819363389770814254265733131678558655277339310205758264741927946304113960737406522513263287788139742512057449384402818090785424941776969730729669990527848154948220349943224883688294967032741551439842060132012435659594220977816170586596455309121034093100548455378645958014135432563905083938406543520742235459227465836016222178914897060219605849337785708270588118285938005853503698113829391903851907304789043308834236707256403770066883152425867837103269933177264223494078054056785904447609856829501288363363356712728438317343266079420900617828052760469247055140088968241226252125706707497884725503866895676871571073479241179480688111238164520997002233644523940605269936308937234741143582560222394945477539674234068527773694790823441895389484217078331089480270326464035344210450340816743997346201262717653163823142068117505143837580851780732226214696207759214917263735629910167483817990296724817887959878940296809200826692956933559101561924948369921932010520279061516971503670359951765655259143961303619719526715769077617266212804472769610626128188498355420921215082276048131078375034128180975065210262005961274816588263489422846986092730896647367777983737488202107398192523196850587418550951188726489023972113878612767637144782394734766490562284314037133940000216459887360686258733915809842494742984953510470761891945043594007701164000415312951735490190858466658943973070623795796150416523336712217272961502157263399741635773647609359791472261180386186332210468273707361862655126810235115972385337505725123666990269152004756271482211807284749018969351211793009078127102161548697844246125972433434711592372477709535803497407066052163842141480015291316759024502234222186434020941591828248548107127392609838975514799569740374680436104937616377574464257587904548647374672337475367688892641873017769554427237639759537252075714432713685740624280937735297793106763187299306966256341865225858053127949434716265463187520764710691893996684553777990165275016930713550333438737191469663953874480703571288974857266722376244178458291213097286640079563524460363343183851905356746741379427367412554688962413383736034362724291534722108444596142901248750348670237044378956262299443906305536348688713032597695136303392108313488005775550274140422253637968851578216606648882514652060612736203890517702862368594959186035205660132864435344973249298670412900537382427568073144222085047111384003415732823292521406040749681790251688962618800786995906430181319316142357042340069187701443188152280908747252097212904541297942937649970239172121465999820274421976708953243762138645367134249511220953387237089069848712721399628115567829849618186397817584314372963171810187744590293030687250656759602502690452566055145572508612037148875538935241154381724463249735258289801497978815272479966633546500878432971670989421654219960582365502792470114712214403788355487297662608182246196300862516391464073888104701418502535801302591855707639642468148814149432487949306890671902912420496813272874464623198346044994646155423287623655410258382970596425039681577651686684924330511105473570038367033817639252966592714262141434117203261718628610645895655156590661972174798916525519935318825435894565791140327023400159884073085991639856552926147178790966587341895389754972444749825232630653431883411339919937359799069567220815954405573321390904649106771492219811173692939222989976324805325479372020822044528591223104281278934534389225221344712793873362695183639717495308787631445206865070920433397773788409741307031351920038946691691385646159120847313057229064397761975000626007858133907578187639748988346299852357375064901258819721458703378985946290718340226536180789259335937759912797850921215672443613386733509384663941313341045297303343097890175060126538850208693259940739344446385804144733482476676192084142263463183435285282612808268176872527518837097434556590049702409813588452364936061751603547941035058022385979187100521677189507209761965520407145286720271401908904925740628559838519829692190951841833152340240052618126943205634419586221284699500313463568058007270953483465758184930061953643614457823171652120592096184110981515210221372931008430878208253849758876682661573868640724454211045881623083739331852345154487902963115793744564425028502949983835352522036555450536608081577785771734505219054623966184609027438701372568010674889975032812020423944191808529845116464465050271604793024010996154260814363636715836162909509901070526910169888801575794570419014622331259146754566175825249500482280026093626579885879779158449742753583464337892031837793977603417773250694381462488972712661307726438961618922370409479394469629236845553564160530665589366230451790017989568619275591027914808724594484600250467518952860856570202641655893908592226101594487323333689406786220175789992347533496089946844480331689058570173957981951402310602174277618413955669978002962217345851218270984959955485295298407399114920119570588519022250514114481690670923576427961508970839923403067947204085217967176232071233912941214191008703447016504132173357250331062827373462777868614055996458260314076133713570273890256376589494803021487098256325238081109665018117394377205520772294936837316193701818377256110357993473684074079275169499134412254306830588174073664859599367685519110365569590993148676613271684809578115112154038654594918605023719351168597284476436352364405637460060638345510551284424395223135850793499715204360730186033652488072429310169946160014106300992335225468115448010067704822669740821728371968309974317071325277771229048451075132346505234493038665085313318384241749219151411048916616854409934334503545208264185607722814803685042204638184511894798591323134270064552039426780933016668733644968277298042761967200961947952791090126840635723395395960071072959568174892172679269453833159172095529641707686308664210780419696743843371618324919070049128025894543954481138943868849525710560875375471139654606311257496865446417631832029051454141549071711351881726556757903031771506749729849041290863302575804207496939448600150775735910999583793730060570929598705707475204056082873623025123745419244892928414472666731852983498425839835559857247007147545642765467716058441844579582736748457400776789482997872995995320742966035870103317421233779722943149516083372809508630025123112841298087248158527798995014368238986177930005893160421939369781190163697308588273482406439804005337217422999707131249207825929111128933836913165379875362987908247943319603682687955122541609656627728836319637987619662144144351367965317252245662637287933568751913473453049248063088594551028429058011941962936065939658130429253427542195534355903104061753966552741514076644150249584509839787770188638164360407488545754384374777859121887339469241610876320265417462359632515997114578676334204616876163096388764771919488481746739478985517193049150969648437222472533663157292966404373519018061271294791464543758309363787078848039078045830741837686979658442420825620046936166768822227833347468229428432140195019705037376010481677054383121451942469670839762964667558868440030463619495004436443798671400247742192355925666081681886582947462980874296352876351534991750208313503599726619385174578688974508689381212034433945738419834769735465774007539751509305441030850635342387149804014587487519450437135751529857733592079703600742498957013580255147574189754777542994182898699342599670307158776791631764338139630728372054118536660133186432381039292460147935751021772269906737845896183895174550248127737769520137348098048492653943143377928129547900387244986436432717884295148395727089079040435317276899893163167745315720306680283118592632972274463583127603718496782165257428394654275012451034351045820366455108631215517438876987654547370340857612714309483906474440354950478003934768045751032260584434063631474221275405879558979759775698459643486396773356278134574108063714007174619076823117280887482813502240292610863175408645105901197508025428931626976993152144773315674901283746401097265751020394437860170367976715495505035755377694342409329797914592050064724764993874573479995235582169409632939954838055703041775629627163089910232527932066314013138581669504096622857122780739081281307257956902518260361611675364041369177653927875121603807660782311236292842959739071936573489959860219038060908704785096658602310676193616249142434627071672601915192619299910194295025593654244906535953286830422556177009254138192452945431197228244879729910715967071662530481114750301599877836505778811368942052058452149731024807149354143164785860020080757941190772927422139180973982033352373776276922237173339119361704373138293154802044476563659454129991269445496497814892139999804997103076061373026883387310922350791490438997032739621800925359540738553835585963112109781093088100596757773055943924494680987544043417667144480997677519720889400690476236172363862373165535887062617172558294194729269597233399446583513207940224036928981122252189406272554792412008632423569580070554750900627043065850642848850579783991339539170930562336805208134510442487779980546464957124297512675825286700329631787200599500709037388604898568288179667081191741930403955417473729712402350698813558263662382420360554840120090777827183192179551655738944508259137187789799180958935319099124754555666673995541407948690142380176432737069435541188762289651088848710137664943042273019746202813452784597509150599188274763968128409145116756652987134036535865981646417122924176154280228834624899327167884719391502535561942397143331753209339409600082621137652315429054182782540537334042970394082359646203425571000474824459663257121920155519428226358089118647370740298188041854854885482049549440690616758333813924099366723883365543590801374858746344710212343012227013170119863035110312049032167312747190256583198718693523169190012212205397904465692281930060469081052066387865857736356713524606149990060025489597726392003682120664878764905210361249367157392397005484572145297199667993007759582385835472438088852764078469502543414682893107664485605483065034806730174260423851411662878597678522963457923339029253652327000849313318208194483387789962092195503219468784686823828543302208122853743913904550225241735294048592188749618119702892213946105799272038368026698669514552685277682834719244226488030226780863584511373260679490089042637239117588141327586379385713444035964338030368671192088870141440326580860996033548464060994842178333077161791574802968969945049265339742690562359942283272183504318556528179225584750897165302940226682348398666779930209579159983977922572846496375249984173111163172839025287176262801814522691538142927000046618346278456337904982093037929854760713321809440364175608809868767755971066426312430616259078266560979335393766469028748874089915375157848983867821451691157587362405379148815517495492705126186647934457715076014642269085916210452820230733984602669884060575069382348120119810280382798487340074648744147392173127232898181262168915442821697264356693550715250779136058759104682241977604530631141335266098692723233536452987364832028750666686442795320793588748453596947897474947397898274202030964746099567685059838216619712513464532294731339344652839752073826242182155000037426738519649371197674222086678010032777154460450958203231190459547000413056998122269409100296351638160590228075790776107019358231796840360954488686868818878134161559958609162567508990691071028530241440270313067560257144912117627427695839325235176435503721432958932678277392164121656636959984913997572056845064386848132540821068761220415242377921521776528584771325436021334603648224844045770868791335398899494177076217754741245514422586912374285042684723946393843644138435696597334018050247241715212259449917979442201090934289600056898730970362058397350779654668066988519270587211937256886950453934869417733554281530136977351121073048210576301664301082993460224859767184668101909442240016445701819647967850376836391249100106209216978836979989515405838659287136473338425310060363475201683596904659781172023987747407692504966031143997323613742143679266783157919554830782200742249286986944636480137636271464495915448807960277764572001384171640946578252154781471300497746968123291627416419836581962030810922739923876053686289759351856031892689788988695142590950071291865188219467774214798954725776111180692882582102078193060701058571107137212163758663643637765398933704059381811834613334104044587378069246443421205731116703146461261502893688973933282192195963737959629953354799643107714483816080113464116628886198983233019907383894906642806496382922601955799447002983041637414633968883198681566038876668139817110181913278864284836339631713969883838445646070150408926304390851372018417120359756512427421860079807129847362526641553388193022910492521558615983786783512916472171017072964142846921929194560776948256865762711557181889593230225570188168009254920683419392746306975672954025987367536268658035853050692231533260085429525065210846158364272299551369072242977646386887236617126394718409592640350962309106619394159827532708743856176082591160749534755330737625328069581892398860064702065623373077333924121048410501536585115257549816031956519887670005204314613062057341311119155752062103183249554011912737761185356657755038332919759474082645349444639523192640933566258803950534511016522196798768027904496396959281956076106723060149101888022245607015303968722443132822590762496851354860614893297610230352493380021089532289988988474621854363141321586038858317920809105434493489339367343656148877037816269328022653711642298582958503287249841254956376997973319626698615577348336852728018896104429191979055569242462777627717105408100247443697177878592557247415117154704997092456990593833073545795347383420287667954890022710249340273642024843549896723826755704317751300403697131883156078909928082912043494016015159926008605885916354864625123879444302813908287553252877186176862502164499383513139249371527245001500740181890256258316741807722525200589198652572016737244129228321348591651082683218822318137497957134118335902116857138023359088028911706656933347286687974892713859328565513537627903775519383891677945721354984790746593473243287230480361857877172186051347021471045648876935517088203559887516023440673139059432881064317950012977593018462978976839447558146903646930901301760104405024845998482523003971620527214844269499382503568237149380475698133955887045151027674039346853460794312996249415141733061995913067996706243095196290347353661202404412449644857931737408969057580091491304653721159729367242540521040848548749191827246833711028325093975981867848274961226457386116270457588504912623381626259043748961230015464979702075803874804660804364105191919775239698628527292313298028928456210235417405351597870241953591345167875244168281959697428428684920737544612032609354540207779615781925873934430910835563382730424620895739805658184957138427642558995039147620110087703016345960865767915198344249811115617448551899672645327544189739684633771676710907984380689480378873508501359659250572821187526194380046264636947560612376643284337419989180938963618387096530581963872283715703596103243793999887308912975566668583383196761372478419820861879476583310555369099081261284366561838644549512522866167144808605688890259971591196021971624048644159166124886456574265697526298700917109397854023911755054525668450915585238590271846361249504667434265796845738655638433200802746716239629337459167398767505771917000751890430445545473571810400235642665877281445870755866104184758898691601661979980517491343189647537713237300116292431254758184389274263881103323568093157980285004607909431252112515010703026081771675995656383030737470506663350572733187157595078166669288272509015728063349261445699358464474270560178476857110673079169589677448336091158030245377091022153107987208400694486126937629650946472710377964695458412886555438078460900723209026205801481131197869858061311624346462914457003819450714021929098250756304030015865305259660328045590097147745485240809831829883113870895738444544670156819827620346533427080495669999064381497169900599604415689595189299016536929451118126171368519720358279573137366352369731322453793798750094103504104332130403267362627182215582735850112887680406119573686453406240743081351502896346547798865247971302519132520246912199312705967261466915029653933019721655352515685579584558810207856349294862384618011268329430384817170603970087387748881897757613778692066034768781898003697895610105199100529392484191498085641574420811336855288506288115864730431804614748129761867343655334900566749330858210220708778405182545686195268907807243016394490046687979566206976034231027777549913791130125704108469422663976058711031499955562266468673647026026066699508950433967869209693588886843109583812739902258149741778724238665986925681305863825909483265126658491421458067122791561923870691345712703199532655511867278172698204808544146927591783776446344321316941828012705140519006633685933903531722228698840005892444698483847443695655233622489041805893536018122135079466778209964648179996723820423440040950877066477449721574555322806486079307235913065555513043328492097428746649001873415143434972691858492853283543743067721323879926586166113614673544663506978774120324701779176519415272468433720291948326680887389508872668560528847250237859969167781954477490758377052086642814943770648462261927063405550167697942329261633906828608285367214561829916321319874539309990781563100283307425186080799404120960391791597990881915089728676121836926988932709855808716966929173313431367907527184681808390972602714375038349339437710876593731382176396285395001238250630998477187874804144941292481974761918091345965480698415648545562563133583252819043288030060498117360118208484717229669758557016005981027582766813548099342109120446773481330178164324314445939419975037899036103869594337153654331262301161961394016038327416307821368971658809785973343343302082322694534435505341143805216198520055312172493746863850815600823795024794119599864236853760823131037457706161352970252653828712220088236273550319528256176698205722546781101966672275944804849894096290171647246091893602745552455074188049634375827405371859757766638786784745077859272536032372078328330033808561844124338028328967829801604030227105639090215251092242731457344069576282716355411450323255823270129452855248959532901129166316997217225294136040836996565461304197942497339572024253300334921901180124230961639394257218334765119530179864956856283124802469779725052395080193870071158948851935263373649051700773107184290726968482415624789963890901650421199269679513937913082897807263676512688846701172952470505760108217689584969138294940360067824462992511487004096576136707204270886981786659916400387949670077791780448578016881080373414132133167264500711256551215862121252965890987376458955552308750310081033639032808169528649301181908149639755199776220060790328528603508964178658907726851492751788967141236579476206756744249553225755518900929615297852456554038385401414550571714790945312663757226466781896529339091064272253402881707989903954515376431280833670411538740045272870120432082736693140023004937216471556939056553496749835381979938774298268735697352697472434628190497611988172637316767749541075295832844033775484120523228739157430419095483756397567748920911657577710066759918217160271522065855548021582728924225409404556381511279943465918143631896667600715906399444735031277779494227533209668461698267444365005716056948380776561995082613983393213086549859182895884901298907212979073886643912457394135919039473430088057898491196277535591244111304889858602937984380772083400646175823623203755534132888304881109838323585608051215955516419629976998520064107491862032690892674200378299593354231419767894041069378202586330191542231881080889144580324451583360556141626896236316083193975566738321220740688473562795936492224504536584585115709160519753570285515152208483534041767058586727143926397702688805152690901067516056238220742866929017199558410058375893529732591167519404526642574187872488339605235046261693910723704454610718854026931394662963280273609371078431261187934404879717152234657404113714084095132393348741518016173645965620400818431189553756383348553344567018519288618527358543584352702248724498582362402466749133032637133614221663311532319615312761386693270753219901479248826274733393328111062143232820120798430977417046310163766170515723963993911094808335371410761406017027173484337169527861467358515403511494178714941522814437152005956828442430013387010203239358769315348531461227616185924797830068999190498804266713255392928907530807766768004657924800726943576766383767138050760979734142795003540834122451301768297800457484880414835962638535396510419193983980240008060273313125521351901144955225904970326955638741142218604414846572846160209290499050415731005785077895696778093807247263463074492089797835229251028364828646825223998501623628187754709994021421073240258527620917487253570292416921323157306928226564913193232684848028480837696875696929151220915762544803414061178509516535223101115413538365953956122143169719512490522935049448943637002766571514633547609488459808315848722820932177083837531170750530202200593351571565257967865158446665802182765779772036582979478981151931918923900429408507026558152467567322229565221521241391373070941604924890765535782362698815838392810517851046051974162219360737216217213507190975444290610433613618734475738668759074729020059772120903156878640729506145748333686652448201965533357244908050548062384676375869057564872868517549803081835230702180590931938375707240659956060076895563841207905647571078748558901271673533204141700758642124636530976538826359156409172974453743304145058820222379385026675089147065399997174181806063952966088724909744651912906075326701636829614759922203938513696687697371793736222480537808277788159579591696234865620231559664254918646173916769675189426100046417305344627548695976450699266464505052623492086367296890825535989875381163540999470477201164023712540193910864599500765360420370715138688021368725869447775512551641799516573619302053861791317853462272981527982515614819367348783345361303201647889810912297741323837616874647691095915025429110998471689755900306011722854821934138054106085261869304887358622120075234320627619407541488373116091416559027160582962374697157620315443581383331079893964150725462313307382462224240042381068825205495288597531782753580379404310793799465189686517070564972878491124689751102559537534759120968774938902658775641467473511337473267007976453636076372351261809507632511065672432592243718958279960585501297563771704149725017730632341651985472858737924825068303325962076812783605401998199820586973959935511479318767974707689558539525904061702688624578154240927052268886288172039168772875895593107781279840286490646890722932037948120392860324682337875991643723228665545409219453785817979745930466105045843618446075019153425348551109300922439723472864586042802147507863489342572907099498826993833333169254672292187801343685013285363019557420305794224907451834002499888310809609968970246651723686672434638151661919085355547585844156655070148969599115089671595290174705982322478204145286159646404040196423426419131783816767031944381179451112302908306596324604208540155014007413457997166036217320873500547986494314210670803732938525040162750238416496052550579124222505126051251465756609499133579792866770597043292932090980572934501612599888613750279788625588452589233183371326505470689401723040318379797651186673614792141107387756854920861373618426619083634380916451509549349614692078061837316449866616101684002431440871904230350391887689996712988450539822996817241707389962728722068624483651344927179074507544975347913629823036971324904676670735257865979081241838967806001927961239478706881926188691362764349646301307703333108784158934017040623203849117518554955120036220168048380814385509910239144713650317087495753968196778869410741271435622285888402717087892089548253652020835578240103750646476222560453399949442541760597191923268168890155833666895140284051206505996393025045563616178964503622394308760623198455235205077924082731224306423070254832474653549959976465677084879958724566080025398924886367170867388388065493139656246370024812015429644982335414669356030881891210073427298258601515922889721528704646892393050844271621326003448806700751401496781795687831583378285389274813135126139129865678673909815486926612197344304043266423392691729771558008335263003867561409383682700654253413389821345895640878903693850883534853953109264131610557763931914763580858611358349324934334602223673284676593060823718408024569016577968514547364177152639443343225720938833454945641591790362916253594359440049679506413642521667639700260937481256015331566920084400622845183321191611561230696957687126294347024187539480353635846121303709709463412397492312995689018916960520768587741799867207241715432143237695436429373240195905805588413179240933941324461023532961524081738815518617136118571020250990453726310967736049774219511329132932088176091379259722750482262345410024541515589199608598048813440923913718871087805326954738665283107429241326249175221582986719101028818001684419250761295430838701556584697004686061271447054632966796415870291646495868624722492050172472533326991120547001450650964420797516501311406920191676204307058525565888168692987501954994241909165204258089887044040235905553205858435910515210248929170410121827065064163939921043485848714511109660144141741664654813589714771438299396322689467851997503691467221797305337983203371962836096406587165562331502151214977537480848079842876962912858729638726030067735440844464795847930329302963487932931877728645037361747583333541693297683615494733840775508857003641459083786020780557019659897897574697895636894985981425966839483807968351288793305597416573896250284313280803830266656220750516793202161179544803290604012209871715338975778088033154253939518087282697333311222801153788931544825703769621436485485529791814813396534291023292615431244509683357516279307782078550116439099858324552253018886761064716815764691821165719820173342759118843671441326870983724080896214105428314064576190644862879267885358652912064077829447420102235355929374219341657779747436515414801163644629728628942304932476512556545513979832860151583824799126813879459469137007298338055383384255356071750064192966311463749167405751695572171262455909707651835825178583742590798971361641566161456181844165168506914447295084080833595011352709357177613725394542732454123435343956953795990815780582552468148313566990899420955502185490335442675995288030204947373174036305653241119060998961481856229891877518497060925724014754751134065303202115451683847633178321881130741734863232226614707111376983057053361031413389911548611083487597347325617683297324854081055065241370682994724801305565888932407290875414796689180409285428470149551290041128517013069559509265208875628566850075118351490618611745824555838114125018838539691886634989441413135969871216976650687940251452034494062685472880855937402981629390424227050824898339228720319058786455042523508577469099682012176535172765078211353564984771997710186843207019296220773151650170612196422521590366864778132796929616899292806836716283966673870812096580411357920834895544009444858834999178855743643024252383838519409652055156265838912931397730691630920337777081839111010124142039993359160772895412879664045246236273028059256011773891557198238455580591138050399268935067403777595388420831914753361242799066865963359526236387411586276311850121485017834157245788199555111390683878250600031575568895705169022025716458338210277302982971360708144738093432581751880491389791604839292041740405398362757998795938520022103310737807801473236976612674791845004448361801471690903763489577743038437201377234614943579571188006361795373856170309340641612558774416874363407668738141915959203713475754646640052085602390906968979804097951964623861267330117721093566074207355194492941999935771680400169606330107058255954822153842097456238059606577762929034388546862639890259869422263731874059498350218497785197887807925870558996545920547009235345816016928652646290243261185095262362725507782259084123017886395489329254863504993701333996184127904284774614375705554559907420241592553718916679444178740902100396383136928136938176592518686763035486336112323173364297207525287902713883133440029898427503906845768873782663754890219137865904588038692805266899956684826391549707917916236820188520340067185454881219031264251368705924270402390935676663016667673705202490360411289350436296618995014444125610092069385826841751962671173129766179724395846933085045792965966959946940420320120259850068217880817870027012310160624259684646512950576295554395886565275369416195437149185902747667756015778856174148634889407812998536440959655811610930499773453091566291672799950956866252023467494169953512609329390348657888320144051207742875298540201844418677988162021017330372932175081606455351161459136458776124537151705530701996906635934226181144165800218774253533477410497030707680314155572156443847506315386685557461131663771820486373864621716254757520606392403941902166298385407333659463287013282252435073914691686551779700002315104908172359564037474192644708229360099718595414521309186166115405983839314284510424164734688345973282754973721464007005240575940549274024962598010317546611764533878727108034397758678872590732544935169488047551106119208044801484437239763133170610718740136310391274981288737742244698167779007156845185834752149067810755965336332659586154316601839440008347610147988991135804808562560092163522987347313196275184110437881441968956182121232262308464097138388392318441151299797615352351391962705036513769055861441415767052380435007530844901194253016027473691604914681853855422908839411611077049409134941377786866007652221038325167809698976338851497794063818271948525707506530623208276064890168764255059882057031289555328227587053648154715003177207730563741852792147829388837465994408503400343132615847140907300851850646988822085600211247512268687647528075081519234439819661482952426161610053096774911280723617658331486327249577527072871998019995496076094427207666416219033147316755543388436313330986895171911847265377171592314361188320301117316767653164027402267515035458212412763141650617933195389077844534081100256509338112686658465927089975034961788956031397663225427273246980862291514328146492982293593727870721189203580138915662509973210319287020062930685589650657959255287103836106426207968545050915661113954227793272366025204955139056461023741534831425746738764586165588228151530797914996243955182316426612566906284518740592243434548600231873028727150312671067825094737390985147192736733933050891763967301084974704881488816894808035535132288178154118643954878442840584172712109096429470258674929237446383666650544453087205740029363906790746906348070306584318671759781731012753396249997144063518575664593137621028791355255222701500547972890096200928966419729404251138228729142262824140092102341923859478466757651555188510393134352698237291576479127288647979212237550366993451603026703003466970734318748897661336547199148848934103638880788762704898001953505832138553845778081259245822660675294520689225932685343928533710240896167070511671658732908708682458379825439295938239117222332720739046464107560933596219591841522229003830368803013874248469013474529038530507206188671458585414763050363726691480009850296346659162561932935434634475042466068090921930526604519364560020005234069266890207566911996869281600194155898937935526603452781829369282914302676416138511036988131689339283666696197767054604683199919845749156247383945819424173166154334347869972517354940665437173763918554608042234148542653023178518391396585928727009473512132592575859888484868222853481022679965068301436788745269523343865549000733418539589402623001060952334572602884794127692369846578273299281750397848894945778702750268627854390423379471603251782821778657173118046100146284322480272570215222353998083488918587541057044661516042497156733149805075492241049157776460669244489042761813244817395870395662237028437093513408373762096611431627830434967178800878142935771645758722604468551332421751254631087741880017367647271898928436911169601306395258865791644017549566720277543459327349509702144477469977851603099801396853205663296857025768419084623870994752968507634033820321885501633493435559855262820066777028936552351274387226196346400711256798766673156687864783814725412170523817225646354127835783657789515907668024414557791742764857603280271044288713801544124775668278997766834219994445778872049067121272586831305061180306974124789384197419614179240250794636049437416332352101134338007647516945914818932338434165580784710124899099123977658882675378332041810648210175794246608390892691867775142216080027072910237108278772916994185967784882593523606258949397852349151909887819581658023399766568141352399207769240941343578893165995102002406452076611981232656361227912005743938348112744848637744773363906662613148517358730020269199890349091037971737901330774491536466340721575189265948242808444551411214804050660988197638626322441361048369512359502770686666149037515859128142829535274935493865838319547956578957158251173177663696492319350527630950983788541812127416485516307078405658241515509165746454895731042544530795669595025589096630589632568593024535925766100514447129279270977762004952997912666244646548679454606846991060075205309504983911208108293440841270998962826697339640221722795280959786128271345959715544019944260101395931408316476891041637314217223024254521558755877589293728585883487584652982425480790147294980315352924798344828441554479781077347024329303482268322053378352587060885514141817269642021540346776216953827639680153144091249865201486380319328308051707844093615297045632887972577984123483361790934402576777166630202571956711433804805994548554349069104800595836578420511061196818189793349685237673307464585779116153437887508214021635688414765796042723249237195596679193916234442694794433620754310690948218367487906904951037952094287864332537574571560324167815132191949342772044646012947907347284994041304384310125849064704666460625949358789989932947209467392483331394031338993510303324182981535486640179905100738119172534609383497808842476414718672515660120198472441281850397500238157511726591925574465190765284206034548648795207844314114134769214575342531207193456482632189395196936441383150594226839727854609833894573995490573993366826575856895029034737297136936201743870910621370686287986531901865307512458249063407043162849152622682889685786776510564989648228555552589110255065636598861849103903856108712112196595363964749691800097770759910585081978014065983805766614100865988112336185925817816799279055113160361278594429522761105472013238069955649590143383492853297722107212633136342102981503599200837865916357212258317246302556956826188698853952433960241449527908719899539262903337159127208425807143975499103577706359952508451177862224252219903431138856721163842791235381608073519154787928498148529646362606705369445787598151658307646169012997313224338227933733896664187103425996923337212520783429747744496163196332252148621417645641362421165780814968325198239370582148304203658066028223044418851916054289746527127450020252753534147530547750865272578880842987633964753476953970472557865275140022733187188197514689160061244724010236517821333529156315172045885840383314867805534096528291436392893246105229586607019010336608062089634507142838468437134499648535274989022719257417516372233728192503919138636151406942905399094690653661592635657172594386519181208386710979442091651602439857473117176132546626173012739829716800827390393522780098348038321169847358235938219671909792327219264651284930711501373470609403285054180124192806119400377773509483841160082010834739486906799499788568540488384102348689896132931433705024450935830300560859205034291038329768498900657477275020047632684079349332639373649968557852644852166658252435290078478982817488391736937595076607116678335049119150467753983811375599634836884983205087852245272378284683649719709881474123640261306876838227904512410990435326163540676461860742117383126087538785596615665167164334413140688435005953300094680036363304197932659486696673801972758878505936692306996046651635812799556794936268739986717941326088200898226990399397972075735282375569256242188111909714139832252426757538192668424426383421956148551649178855732417334928743516499605995058552914922061439043016981642804922030876346552548154747433640304709634598627935936713916200056420706618027754443035369911009113456104652464480804607870341478039426131516218124675316940383763358563633734614171905022598371390537031123277515227967341810748603530962647093098375683130369152565952688275574765541608676584010640383434341551640219949220810238973340768192735420500883463430615054859541267286951480680093989349159480811381167153180418391111446119629879656512523300823727076470039994062382050622863124268877176305792539348136110347089684973458098837252345572692356416900833313251572946892842351468402740694244504650339856482718275790839907345406420039369143301064269657087614337029752000248975159323471018179893500859299945631550050728607413507940246321845245476504231838333991885202781025277895196308379040649102286532621150274198218112400527298098589835959657543683966676935501665715794805624038937995986834691821716592007486013072580990512884178612197599738024687968290366385874593846004877541151732034781818616871033341007489809634033102687318876601547865259381625450998088427641397866343769749001679357756649001562376223172522915707800795608632370122216198631489166234790886045158828749865120026972374457836249872923160481573994640649609058499095560922800933289145591853843424861094557041202138756355912067613123591814987017537546413218107006630626629279527974479002170301244355218968691764231771386319864389422665102893742908403097325570291687465500359114395111164761084372487450594185442239553209850921016246729504424550921731224766690912894177088903121351661465791068549169571674274630229263581676881574529706893012796781840963069467616315995745265305848098345739584591777262159434999310230586242301366811509475853058400259375856047482434980025746555609392145833222560640867618246433397821435737981438229792764926434984211459629317142331747630947091076507565367058340733485924271115227391638309938735280792986726359631226858922670620007311075128459016778657257940871891052047883462688290011367981656773026366624223758094073267143791333696544459286909669127462037703855733577480081064575127203287281253998191636717758517406222185104904606646500111987821942645922831616030759764820090633755562393592091316097007097288699417602547131698670305890564608513820440745405192857941338897776602008110429573700797793134122297546529495807949711618513149300071088807674001223866109738945269047094782325888985908980419662576209762213697401743900358880386057193457275108638912380808054253631192113702799970706216800441935655912091575560407187080684482112619340820491592117622589790629568613314157677011166805180488817236100304637720685499836462367735825943461679922618242953059419586524595075835819872212401741339546002295318006144881690003035130371212338122940320398393524637531086616305804634814151896042116289007389818002366520842724785535479459453589473655725721192323324276945191151869947258642780816055935719394996986978447072434567886055666298643186867073800264563323461222106643719211581464886581421027214852800212533297819821927475853691397391243890582836944326155650913117881280370843514184032566747095231129858045493261805651033141043555802022181712704070475089255150329275795840444116839485563194780033652949387814056332948933569316831772134272618206456880306212928692367388024488866713031789866590854939339526824849676846657655796453343153866339093946973871381206329874279003990761924789760286516779677509248709202894939070046965316001138561369590959257423751610282184072555161589607985895013862383921458056902844228369962756244473446516844991112602663492662009330286107453920050391687935349652039802635484090918935723671509014598857246389925519757387554357915768820648921369722515870939833203863824615904843544406046293012352567651217529299306866352233744664996293985823625690049980033670224440729262278707380190125949948742800394527925686469638210992217553262776445417438905018062179038835965982391242078944456862638388313956008234999220494645519871825950388592163522767173531840922348952522188004935648411319835595394158539764435615015778889106191187228777490536188846547363487406547101012602439825521912141281475977470229156489035394451216137248628248082447606487290228358830426575206033199072015235737993216358460367534481699333995358923747594548788457460313517205727026873887618742292596764236088879244380359419938839994927282395060343600798634895465517273947819845863916680726298566467160660367543898660215278551132197577911635179886948655811707878298230933969912687617645310543133908169031110153607742246207788873866624768967765067490383859099834581326422015681438671713001861875983981116380738678647475490666127789312134620359738955145165209344122308133282072222547533982851461658140851842041629598474012034841428097117812900934601848040176429959743663454396867495427069825602369089551841501827617121023243544681190952881680295438538515507933129172290208490673835096621420284816998583743378955182531882894114638958434611502361224655508003662138133756423836314755607393809357420016578991858910930260315230143572085978247190491859273576613624243642808812224540555598638203068271671717962773476069634027128186638647601973728110149766022931906089381550390275757478779521650309361012189414750095142046749799446707313059102195646579777436428340647055872572675626658675150954044962365902647386652152689689795324735316762503637310479800191325197711065756813765055756414009696587220912069082872599885174168901007048704169784507209646843939923431020741024459255442103038321689757196478476500040066689109126443671571770669959710692513135935483921656716480290163716179363494995509630144200756624635862743300602277729604471048529199820100747303260462583018240190955030869910740999923456450997968490893604284280565446202162379934746403305001165427276614323804901198744088480129908721239492528934517737586563858026831141944667575593240159854884880819216994310298280316342351937673320334706060937026724000119200372566556865187910556076144767503200932010200685708964105085483298371404009375864855169998877059098741780189869624792857575893088780700799575444745431901294331964786730276256433924416394216611141041442092960042674072763794664332941666647026354067071110353956833970266368603175469304409540933186652226724851746967900179802637272499399737971167166401810596903460033853539172489095976926800522847992757699997138373306692290549844638709503949012522350715335895668355681517029593894769631394624018589607214925366065236209221657686983713852441653951500798566329776699891013921158974115457786651790638096864283450034936123773966396160360439698989393420991175788688190299985219927786238138576688159646967809566789301658570543929484498139449532164803499006805184674309545934932670618844527972234613742809767839310821515292105154733629404174247504687452788042497579143838526511477855791680670435153817044073517323852504893182949893480177203228424794172999386257974942077389202198808392135058873832279143513119465966200174784205039839069288689631724329021482092320894965703613039710646086976884903388132622115153571475557566869590794468610813680965560446747159317708687597566771517045460570993984702458947736634205530534685963947679497295993064436068070552491572357720937350271635455394705137328742946406281702651547652871906870452006416899249955727231176109333220127579825173050550298772360942522804140110132758426783231341082235129353732862914867238905886385313228353601461126858140299122448800412412401673349466562318184252451495190195094937971147242282158267875666017958400278883611777506166665995601139158725208960375645689720653178290237075568760899179217973462216897176993032398429679128566915086196107703673061141639236757744397600037521182647476750075199462389246034116739671671597468976936719032985158703724176957504728662884580742863200170408146418613942196788486943960552381415732677123897982022196344663176092631521795047720142453758498170545663984230506941466544903424925526219980726304599567107344615588444477809976473153678603033601217465457273818892041577101887268282624566176306516192283300767369368922318750650618578455144241650908193556508354974628227346116269497757199594324178780149594227752055262408706637908130721650638928629863117721175898619744489815766712690481150349603767243077088772295905304929846857630681726769283946463225345929941008668792954156605457067036689457280610366348259966448353953565370972973546841359418358998525668343830602568560456960608311938224030716973168215040318684575146663095522355294747006178828135962423284760774312879022565416633261539075041947366458525863916298261197409262415640019727497257459721402270971102699711849575614359881621400345739395568162069095156242652383591196364588200128076695602811822803284549425787250855134134138850656995777724039171253605315261873680199460279904279533390527803310572210150180671950387452107353783053219450203549955109113542382229922529667195048651483829157255953194724553407539783339792210283504810823360443540655563040498907146813883851125149735376093284441160470264005895876999786708740397145806560578353142246777383659752841628504211043823101132374038207788315395030438814518652871547875267817760946397335743202894054910965105977337160590865249205893473487604678667137509863163263595465274603748524217281038787352164130626413616684894401714429896344004407103861843328701020288927551040329771897874188867424440127777568956143114490379035380449234841407020531289804932989321272795241480973490859204198435747138386476286361711768775360515448929638415626274516763104096446007257872645863862744781852077212483126584942533453596583573406689778889887441930479907059470902046560267844188376173827885088794778106222598061639873923497016539194797130520274435500827415725113995341853078542848485888396998040287587692843004848295433367807264270704804870919694764671718523079428865459677754010147844609289933774637729867967412749671964810734693193577542214312019374351494107058216573072674425341721081291220341601349770681482260248161356346129713481210359416011479043355176369129074031456827875850781210354614843331415625730658243015233846608141760735481252940340813774255037171342323361265047581801435731254576368874291096659116399735424114555034409508430560828454415752005289696333751203237123286285078398290213689703067931596435304235237281628264866508049535661104664252503512375715032947884352303049882881342383990486646872303771672226885419510930207643937799008239473460888860037316085219446407685096111473333288291393884135423803840877237374039783757236081090059321370223122433908220454725147187800648859135175934596887560083718755652237768263673356256746590478928985982016019898856968035095454247724346481758587810235676091051362026567313525508828754960011396431994827009228706441429520828522104212072079998647569017925000953479524871077886491194727132366465771117664229907532173589768235597900879171956190989285397666397634926880789901548956497919090843891409790046018135897116624762014642041940276705990265377714568164769677639626656731183693598696088062842815067329500998288344618822833067115273879939994673562139315985421667318974088110395913753010513962790741692733554075300616103041753712070156692216994345160560932405255369147633804962311881307902233934065962020259058159653726066401885717820513424689070773291403510464228844897699326269454579615350032503142825303648463015207299330183633225099187070724021177816168271212407046988600451723018262528731679505219488613867249927063288851283121410017206538100880505349177298270358800601355683103345438311835950369266873140368874267105218404395729021714481926573263810291099618496254427144437028814355902129375165584639500611355972076947817693597423266534598786696566571520939274338027963206542623577087206438285311591955315266174333536756917412020633306464380307676115631951615946224720950650343332587880270594623551544346375063197604685456428777307353212853128255290330143164262784527141566146368027321523566589053584948105468724568392324479128975996615267278423454149208771046231312395961139173823210139949996153995579687085075180052030563810157712068507766081488122870832505938579301492861904488608976432217605395549240563267480270821709932090097867644887808673930358502951793801975293807038650252264479453716567493502904595888212247655878779159289043163861442873851465029264988946382145512131464339487102497993040334971283279969589536404264050697867466244474355682669385926663025995709172916299375644178189680853549812378420271772309918201054660925640942699574792322547288957717213134857750922089972089552732494940043295634791336536034956041834219281662951509785874054471143004242488870127106991108738452542113334938490150775564016595308181350390308234185654718738612094874084532184838967654737463524736137502715234678183132188336913635413749373880021727031946822585811537452728991698128683156199983920465149734425921523532403952708284207237372474460114170780108354193387883053785987158804937251985658047718153388936419722121305373197222473914692129739197234598510799539926693419391054071289685061785812067210722047873012185435343357301847995932193134589140385565039710249008612553699923088307124903778243710016856515292806482582590765241944419544679085557178684390133937647032691721451247984637126535702676683089586746655706234091336707566036271732463028423785692906931546946082599245832513121292507196197794367542467612358678951356841219265606266360719668228036200722222560770832469973475980661663810356775359661975707293618091485979190823884926876313563930276862295496454737938107023358683184549761870688410328921490666187568974267253566373909552540517509882666287954965376370569142829044630651505337004829153529353082382072417658552582489121544372641418336359566184583884616537776079370418724038224357193452318792663564424580088190135904300697966703082165508623248098531458846467918236436658477099863195750789610386555559165814838817744712313245189181005427406393347131047431767050648074452388139328949706076171561789783349141574667089139829051266513127359541879810428637163011005292827984288326395022835779385082315101809226497525402507542414396102789041047799388969424640895777625108912219192129763314666636284751756886323040261098409175323092111196890072999751370695723014354322832618677795105152953842227068338719114043360109746939537817483859912736604721271213475567167086242358471895363696477927493558727088179643736154121097169040755583823270907414169822027681617809018127310526506829488352119466772021558603682864379681184591290944351268360959981268260198857953728663970029814334928271959114896464431754277038568500440294735282981161557686613089134345154666369663894632850897550572590902891600509881381877976542647817970883810311172498059687403298179652517948322685188754415109427449260844147160161571534122177355856042603630142920834381258365859622147668330400097391349569094454440156367023193331705361995775753433085175232819553071812522852911721011242061902124975532249446620294971708940043658243626165259196827678401787047414936659301410334244689612381990226563023201227233080862671750364557713648193095644786891159065615636624804264095915405345975315787266735434455679221054823350894714082251977329334837094967858959177330091279518563376782684566301400877945882893595157207463986899884891117698071829138128562370382511544321199315054064441200314766466496573494835517301130185074385223047825754559457687749899607824392619771745390677340759960645239664153382947856890739283372679837876272662246531764840899594209881931707875067181360957996056069347295803798402632955615488071969038859448419515257193078525813438647727842284217219653415910176517910167368209394973797571990920943870929384216645409700378551661247559628206578579117656140160753852860029634058916802157267029081080839437699063339297253604624193762359095545482919827991827187430194247531041319058496657863739253561848130018838171077550660211504790269561164916571011681379629885168436410172932436246387440334326966125111963655454815446370731825865064113841742958259438517164139848968058405083701612255238616480813962969908631090181058607642672500221736342994812958736891396916595455898825675943716881785867150777099826035567231521641116864721471243408070834668402632082670955616428438412171363432955152268158009214364814321280420098691719569714364979530047333200932253507878804355662262979928340013831217322173750709814386712370358501601641231490444341350593322732457237976180516006904765968160019365617052090654676280347795124496923445070915320958010233106533649041170457824003145415898368690270393450941119221001181157631500483233113362788574573296226276476354575215172916475785939876370927898024469845072016592661166228911856325847256172122066960012407977417157460358874285938753217888730342250216208673904767210242754767782397422652367514629012279979293415903226325523540983951174341237898421702499451622962563976494485346977366473759245450728266084730185466339140828845104494227444176856809620696239501483105578189298392042589311544234901221032835022163390485003038194995845028805367067217969441817545522157562540452266661427041591198418088010492293914536599435759111395353857401921476830533095483512603385785672231685876105537769042070218899914334987650154958652337089541200812207222116615293174166086408025127512838879374373756278991620185409606521726028373391732341091436039872489087783288243189344670031389936607961179811127165093541888425267276244575848958297492730139997329877097638250969361262007254974730819883208289872040649875764094118024059273742522477696715173008620957221230412937571531576809177996623522941385702166245707295398261690302790773241624664361347385472439982850161166608242581765219046341379941875841944658345428601343554283999534360323437856780201316948132488308656037973157361875315403758554735969429196545636018967461256306147973001361072071548678575150657379932260907106991174932066332116067130327523863878787813744889374554853215765036375945463267509602512487280518745291916732553184058880864332051308544328956870019091268721310622152215539759884019914540153978578888227387312138667578468704274144790620014186552144805134281876420705774434953754876244283769199364162190246332726097268026247041098243046731787702830386023706961899393095395716719564271086048529235667649689564890681058997441203945252766045474850209293431463579052654514585343342808256772363754896144724364553515794089091988794692172807000008299400366715104553268582442038204773245983735806668123187317080026374908283766142440164141055476896008327321349066250834845208340603902003436256853905770956912580481602221798623089042984502379573896989287107921074828100940519733695254026009955957163452255572047760655258659493783446091846883970223028566104854513666553752378360202501174824330288167400698100228042636862190588610064848743509070472804592188414244850290843788453219457912760385656640244446325862803910615253194746488513118225298973568184299544159165476524684139563223112944903103158376789291807612271273807730827980959981081534222126128614488844392270531963705727602861537643867267795730774764328079803378539862125204851818482606257284664932152081623803084182607131626527417285092405865353421574993761814849068659303762979326877353129175097442481592137013031607789279232179619464788907148531067087501907044197907940078543129423549424409268144870176048838983453062316047082294084223501287559388630026367419835878548124191208965806298410031078248082577727440368557444276185914170327120044650402161265608300110125512745874502974059323093133473180370424774054846343679632976902506519458594904723607911257962573513805764769348775901111803912339895716456063627278083185252154557929494992896110731961088824564123692654683694783218052958081599118026721378015658713386834057841042162324765415707387371540259710934547614296718767542609870742970859877636074607151573202884507074916208957756497671658450978441670242378181716540141589723396889196553581886189895754144800559559610352459170851747849693111224911794993887998683231529271483685652887616375603644153394063832485924519899054548302481199536657046004761733361643323626319084677093660819153766748223463260935313515739774119635972101171966972090798978469415013946401239960878365341560454193552132882145913360104378172700616363924565888980153397643094615665390351105157921577987847098933450284569921003574556368053545159474372322664795689320177184936955503525606115274592645005625819353358391542853704400020314217896321425050591862446272786611824382265044717703498950187815197568846279865036030478281390422785367636058077590401961002785186149275562573088914875828060968096476615575215638503718432046710605864830037125077363930747688251175540106386072337780667519676195848043888907695980817975473110753376945300692001663691952534508556435723001292650613550391900207224046473594988195710397272452716479423317313517558582962181929907399573627428470751548132966348819519631749379989671524280275701006667278901907031712702676549601357956484232803106164973521731346433860516388729876111583216401455190185673895596497357219263429394943493802073543528235140600652359456847697349702911936133341130970333430337947380629891650499975821678486397683698759573960697439029779186495322012009632333148093388534760785654241522428459211704794463115468202965302164860499569041269828747748243438313045030977950506955825723934217243254751122653399095883331556609385884768615285489115555483086320359466040251801328634727824943960281686252786048276749462274960485141274771665316659309745550560491911422657782450280421297095531936118036681832229880966747119204121568946199324843249184666503285318443293426957270645016334605057428651402130551454985727074691082105888935365602445909901153839021096270360726834890677958885230891672006308325395183555525627234142278067082683307447169819916446368035811163737514604063821461849914279905463594190878984813849823507107947227065037275445006564119672752095733450213809734337080795602955301479652359758100883937706132677759358010429102238630737657448950455352056947375892723947961851029708569485508070598144550452640870163424845871961400871989375155333737827901874541253407298613889010963303615146731208415973278677478590871639147246938449496198041005811111708237439120885534088431618709931593606597374156955842635019988978075873702563925003868890358287920442662446258615583198939363769332636208520906458918277894781757275369114270008044265333553655406336475980107752645304616877875419290363769485145789856949838957785736535299261454173825352916213953193891935268027093126910851537743294370411216037676740500581107076351762200699234287656550093327801998143508577654916137947279387084091365743186504238762432669025845947546670024033711630209114117642745526900174154993244007090751557953569331790278901150882213676957328637306984530335111277782960414945731350701671043253624808002024138140082872720808755841820439192406046341105190057366246442103197630917273535760969053202093281046493609801326023628007940184233410475718333749940244085717348143723522531036407335492452362379441487926828497755968543120890873594294781165952988563105774592296641375436388645844523662944483429117500049582475301594000145022410721004786330103128755142670695151640376066317596890663917403308822339024344344912423194614695043826062024731142088748609870439930325443049953496977103553822812180494492389769212410650746922227528830340985375318753939157721405920278257927570757377074045551912233019640473717774882802755155013322269904074846539064466893193054468141649996938312317075722635228291278217988832150464420633538526056461331849944648877253009087727736398876989394339745287125379159435473954008921915215348115175547875107773066290067726971120158630875887980864424427844495301055325235032847613177581864174064662158834668121109688581771215703555417146324325524158929799231326305963548879327114725259355517512616198407737441788801446084951506993653394561983793321807438121017475586960720377835329192954827364602122216941176333375701717058604809885569075933957366698249902015585566825601000790402391066018313269630758600076687469792823960597188824390414427380577495570214800321668354456691002718153832475800167192493582473328336947147638285860003284054035307403734083449907894436821084758935674081836408204519528378751109443521136341812119319229273195999891206532648890426036004403164219233273388112097502260496181714401996125400116601580320342827448146004051347060437823059598443287854348147629848399640825168812911521671193545586904184499664397968993657708613961987361779980511157383492202897687994167548151384121461628803791570741166853258169975880207996690014987648483037076084540953956403449116429202492854131492347749161571234254427355496637570346326411854368143877450767087900203118317906635959869960191417173888075304724152672941445960581211286682159122141145304219680835046749483036975795129371174686765125565227383889736124695347912894057241248847890293820349123094563989975333930005371677918549807145456377938245490138640789794298764126585518479892935087923812261289095343841507154495459829602458348596821332520902988380053754293732405538130410802249244259252319888922350886859798837496642838748905748991229413767552081869057062407377296587574888747309788561136040675989784396384318058849093335544458248169957181950086302547348171538021283322390102168069963778462642255312588084640642181315761372312259852407347009269715652553988260558145450380602882215445532854216918704187008077865745430864209599501308278514296973735887221527431445044593118157175206529555986352112718104336280838249716870996802685582202800228328311939301549139388995512147557122939614785697841064202875039525303312996440154634767910970255796617039348953176688239964081090866775926452031894598643777644516319614074160079063525176232668674741855327233092349721457316876839159253358436398194082257472984157973753884533936534849223922916749803316151097122037930565770418243830813503522044686927518276229078929423718692200020210177878400225261847368838518193630457481977858815121667706795788498115426859492340433659451842475220540000029215953264614429141737289707392032723627283281352652310616446137044169243267685714729711778966271351839116902606085486765182870304886432572879815059059402877629078486182583367042677904730065765102583176823753176313493318350267821864262813168862228285477038989180490907844854432012577508448901398654110004080454246274023360716466950553946876102830038927149739758873097616340844713215978311619672440679288752115683188477034584692927343722419373266744938931767316062380841366528957082261003269395935333836178239530951914366597367246193128279457205690645049151484103774087465562172090466600630320255679735474054187025714370416712934239285007854380262457510109792282317054360532234579169906211339748365534394163002103852058873096297948357289066681541762681691392727250759937301538745910936248351523456931501821234424586307204137875800145248489213258976595169270772355426516403894340244138965501635149399947835246142487619012363696101083978880762684711713077430555818413448897173286838944339626653186697710752917901517030414802369222999618872614424072316765648309990741971869281410764280705499234284750616486026549745725440113366818614416219786254210115457090200564485557813884347273845666621800004631790453680137730605138031620742409014356529336166939287371838852887242851013314781932231031719772016136868146260155091649325109196809242465962475500446518807364922334005460418243981304624932750195737407471867962851080101987278836511250689689941510482466315033738719928204041660101612917128324605659578654729910898061474190712230020337111192640987584376055789837540415401986142484518867422177295841883530302065885766601017937543027065090461680273810469955312170103348089508284543784858993236796906473770933318229631523111738504906028934583212378438559838685932615132156083691667958435787709470994150404621330700816952605443165152350581307732958198534824592589300566873635348770975912193535065940842418553147388649601119694472153273929461069266667836148551612317298857418237124162587264863106340976987189306655554543418349686245721917791705325975059036897594452886540242699130607155204961383660878382345505021103628997830867730686098227900089881977716301796463097297535670854279816654526012748675623509979640837514486051161345298407362454424939340021234257434832743528185127482550371631751973429839321774443579325563014636959402381866163347849523062574522638506736498815948170548442331508933869724531686644769759606595925365049022466367574891267528840789124793428295381253517337859376600439071552404689437270201990540816309632465730864200002531388580741080513880010939823816544245371689720108073964959713165551964636103091999314803949573706773441813142928518218439063103691925820566689281853230758811287238692257554121460181164182441735973649022305416113350537208728250812723796256492682969174982517832640831995062558466147843218920439027182986096822677511262207603840025867711175952146210098760128047644644989195791374839425532529892684126601358426830130856181845271433725618627259727831668272200518078133500876244517733263986232197914601775906879453827292512906206386526327245317094382606812841456952382119033947508839285059810681136268350220360907757136759897322546016467534570448415182808299063989404882989584459988655521294932196244904375940551013021211249895769971109964513190220178845664468919727373049286111165500895666421191629606225622854821099828154751650014751520122675238422744039325504092023923819799444516671358121990629120820888061977220579320339659102012933892550547179566478897148169107095361129775144010787543260783738079777855541211155196423459794888787052505254009708810178130001487487179543098496580736034023394803517829716769637394516483080761408553553219044248318874182068145717846782658038161993571160636059444942742135781770778435418594619501887941515904687623988990397619498361909115351834576590554307732545978260103650921173839584604958738486530975509484226062916550104293746754772175208187455905470129489628690076319368294195186976734759884841316789176158668221254502927937197917317713670962471272929274606108671050065143091802055134989399040675929374818896936596071467406696736655187741339807117684041554056148432407163646914509723447474671994164422144820212159541784084410421098441941645032142080665460967047185513376429786433364791056681025120766731789890155132594046101168271369229561521411909637718905732717238851306938764573800942274417506994764557528005709041159011020011320972979648154214825501973661820020754347297121329797617553551326720884004130242060739442856842478925109994298934715279631563477517157459777175311648718867187438268804845850412889386154483105741391846354156566612662779755286641570914714917114186623144793491805558428842877746368057579703372314611112302290409687836730552871704895651414584427568639462800978975052954101719915653570984146392954285753720133158169721642874877325425916370608889301576232342474198138272595653438241978955731127517311014379330513180497285873247376376390559831347280590173440516392590820550156168201877632173508369149812494640855137666355999873082243131272335096591262841303004059166755310256831974880034929862696516842237542883420553696965924447579689065154397171638608274027483286744929008823020773736720576816348460105313185750198798592594903525346415083649749239694952623647257238100508925361818101490316277164288683887231026576005876562358796462498876676161224680938545871633438922346860808167467229738080255825230836703832951705754382088864997952546556620044107087020585835834984689628089166609725338690537505680714963337246594515967864276121792316448368751446036336079509979218507594254836394621772295924312065650773889234444455674459400985819660640290329741302003828293701435962949879237919244726772350900627083650287632232942904482733461094817128360616008644298088059399301669083586457023676533150706517689354959518653038100609757436467414416154037027409036668733803705732119466755476051449401159708244946191101899801825512611790476663703543948265925055790579060432429287084716002306694154470792963240729340357613205124368674225190171091922693875865634438102500391310050295129928451312981804655052806735876098870327126432953833849026523511579522411422253126823067871793225358502573790474490940354304321569354878627865447059837554641350537180099450742162654781404818475931589695821268106174525245884769541944087378432402634138319414307399289505425144222849139435962160127175974741181660238161649848958354392099218325168340057912660459945229085402856845350407841513664045606128443808045934222684945400436878049966539428249879906495385730121115792973815664295126868290480024942272974240566687730489563169170530423376817766276211511112174724431784764239776372061536110550904717457874022335048369647690837539698899192571334051057804213736308731429035831112543066764781938536150652016653739673371341785872153385639478780855109817102034550028624188609243497678783480158486393517109010033617456745323089341444318769416743212265523574755300159490632420168798992277707779069066885547447398318872520682109764723382122165045301096158972641541882397457118774749411682977142421473423902858234823061731609160594963611542300498049460756223061534379704172001763347816105248784414573074815420678191825625549720253157833387906751650530318632070694125596275811170546840594682816204547614330258244084158298879474051278752317842951070659734708674457954533907139411887387938517225116883809507433217624312497368327294319350280517867797274144375558220328569837043044930557028484454841415009952787096099718275495960809500604167907588882210466775424349067063769862017629792094945012173215896159068574113908928250871746823240676439025784459972576680939777035605813661144741383708914306450139115006004597778635432502264405972049139508430992943448047909533972196114623477112148703932047389372927927025554233554255426859384004099206902683886019153377768179896948218214451350495288510363643118105094037686161975852797300467035089568005782002312900368894205335360111357402088930162657391166562865298784965739202543481092136723317129975836776749811274110263772366671004666201529385100798451913582637149834521948899366680628695161904499710465979815309091711928900384840823453381435938160645888511812664987928140541386758808761626778766525569138046891871673761292303480495790936494862590903556159011200648735837649227526855830826707164139820572436119515396289890368499070264104434818543310911557965912911608988928209177343397786614483080310536964084722084421297268474812006731051187560506915570553667823038780127156473933645519409423220969468020327254247288067724697256899560772846107422527536775340157381690114458175495305742857744116487740556891081394748784048616093380445383881104682624040378088517707691302690369627090604171147149840182109748982113304961243019587135895178057782345928216690619937457786821320744007777714071532185145626801522765703919941748177059420296129363416087269457812982110232456553390133223206671295018358977177609169091277487555317828975978994274724305112513349942453164524140409478279178867986981829056985914872506864890573321364459917537687513595450227290959759351107675396686278450520717337673897409204025168171584207381910188918163826545767228033754311742127045858090826136079119790765474434261555073070645955134670847316268516218141254557300961082043233339921982019989554407668273353312935751935995099972644284482983847328533540710938906513285309935883310730741395360602443920363049839388323721994229474093424382672391384584533985257212814511935289578203336136551543189471035398433504451828623929521991558648564032541458038900856367254268373146613961994022706555404796503810165693217449134614924035852780243637843355147568743375075345149459375619809547358467202989601422760572742589990869722896282786274731854478482310022376449675563888743416029727607513159176360981344399766135083761246631012888487785170997993982734337838970905213028877993405515976199907540021381939747472617189127507077345016987495774735740913239837124700299003511512320795677826952288822067069436997693909144357100597478274505758931475847417838532004682721242224939202482348801827490858921401273731075675643886171844221142955732609561807238474657573789157552811416343767099928624639928001284475840117916800717852607192973585253539723467844980797422624665044011232663902335676076519445992681865067803461887056977519015503528102199582284917331066769694875742976256730817053331698008641709396521251208316838012246638071857186260002100736812622040446521132609197072302484645224757540193329064511262704694180083703770510633879262301307934656004570827327943017846672189788459759104036226851704655468638852471717321987072676381558747934538593421219397980687415868399937282440611314485514533866911841433734733580279410659012162981976182690005030086669525418154008973082740847717278226620400736342305595441596602245046704894644325989000949664519867828661316794135245053907764331480852555604399652444403570160127504965206360678404630225556701024139133660015628245128078478907244368102905834562888728599219053039000910571364703685531336303702715341021409968781739483620849361241549220299803896063702244020438268201130755659957648746139772259169470567735792690535352975997124448986476705969968514329778687208560059425593364458640019184096377562279953370721995118397245080208794146689627122539041634061408380509948971582093062627845764638104720323841806715255098614963073891470858104247507814380943136899671909089382239707425561247042303291599872995327378806851177752532203398761606306334641960558883035475028984167056444451667362051481809416751817661206384315886301542616066739472234241951854640930644106283560275900365583742066045183648594702694187648480824728089000644029610626038963229691684883023825747654431748496786244754230443841406325227435831957708963133430301683251177223819345181155227215008749721041639458790254475517473460143581295150347419426059531870141031171541857002856509977895054534998608038909470073108092763157687648711526193168170212414974500600074485920250157922100681058287757043729939917260278415133822485047390044068621007295521890349630100749572281590344560245363696190287021899062825725396541619050539825783652419172315710191395655177909558125808812801690462906960513063402993306720651265920997266164960289597812548165270130706746403633218807504955995546407438569734440027012050287489174848906890188746786063745620844386661324812716265934414525184760109724721467576973633123077988548847149534160246375281878670848767511759053761750117765920526565214836806593183904732399731226491701096223699393625496941663669776113032056460796994514925443908306627635260918157895863540531960420745405996454018688510737742730023049582580761443933583734912664582543041866487021191881186531687908786506068496575157531607143866615493333486462276875328423539220501167817554243405848939377195344968891772697557594695370262252564470566715549064425616748491896987864288823798975403990015125285761137757273822879235808898009274963822678319910471395459978798416708109336358954139366914382288795279821036316193932419737514872855807060608347347387212134861467854146721874618307831697367882602062691163986161770937898404196153496644326998785749074789696589776633836993878513083196341491579058233273165099057116014706280953373256836745981414635150902920954553731312306874498648544847990642778628601508027644073092316264669966027951554891560628427376114342368870173361027584016345651352487309604896383955209662523999224514027317042309232666136891893069489212501900918585333290489930837365083020752359645989875072787386741109710262126827250613165283720617643439398802501636161458150714481183637024207160988611779824643383646580389102822712141225293600838627679986578944965851336364412068463674545433698280110073867398014512645666687508305734535526399849951808808930947624893636878269954864886495431413590099163298250578876039366129427994935960825721285360436929126658623001634545542087950153112887506396381005239358679687068031654872820833760517988624533822287741635075432486223544313383690491116570077451929197708624458603800116982368554930961372518997191419842270117904321579740626307709464895224928089785001280674581292449877922520603522583473773536574432057656751891289483088293922848254913069109433427468965999938310594333434330042474563783821291769768964772796234689451888850239599465576789418054322619122310507904615883184225737637694276865363249700407314271024814662632898883744180690126077583232716696736215351496817504191421133597555312130416169041626725699594499668854323017328715584616074161323351736998409882379872465837795349777638365427903922660155056038912675995151161735162253893178813840688213173562724982708827755051807174909993384628434763209104166791960045750212488204767625018606671552875335102509226951885679447737331199118471395897163910629613414709561629169060589109512592603261652760142806645791478755017029904287285784617685873537382541654881500752709397403885651985010310229038488190168174553938613034393011459496372598565310988791869835374172406442296323769064659539286128686374989129683710575385710768419528451708516185231174859073657320614374729258081135763088119242305924989257480782388203547917284079382751836321823665994899897935524085441263989893191280267531621340179146980563819427488211054535969091119838596211865501325250463462817689094753604355003371552283226974817698575052334919458329470883201592474723746876756500190390373973704387353844271594873707877386010505630272667576818594365653139139568737412455498929798370461022867045767606954274966503482146638593766168278654956780628559800542985979102035529568675340127079491300556372600026663905064302835987398319435792884905021540234166937074987648710057858173893026019422177619585979886777550940562145051257701333665746587369699005228448391467106074835433851169615786069636051050977450445660638180636114886545027842069157323421336497325080968590938949789645481906225299783753974902389417394434832076358960030548306553348036688146085845792738537750356197403694946952225291271585721676832177460661847558120474290243063262259787357713334316652558530789578556071941290662300306900311811774054392167499884179037254941803569646369067241161009803786269364784219963067434003928248478941253192795881694117442486674226698144224733466863318686648603738347620322247383476533433851449221578910151971241053635457199678804270710813942942773211240100226833922071858418957872353634268523012540758565928502823702530433150928311149732000716530414676028275101172385348739226035809542698602648328858439933403688898303187565243798117244692270524503636791150419298767120223316938202897249659139237127021206581992155162892902384219911549303006537049659843026165600056897244343779217782474938746615903894286947665566923591124991413085427549425574557700834151522311363468188199809684938200231993857814210637213663821542767958429800183948516109528823427454581188421268356716407328217121141071181400047003455229001098789330234230027093113488921966311652278170517350162809434627423484892408798284297158907605727177114087883818544917032362149433107383657782072673024778838666861293083313194064894754215487511507823376547028823674556125936342395327995315538567292399213072151185703223402266725052493742711658841970194547995628534145209440892952327482752804335340758654521877089601785515331685188490006457767657383503809511387116737709015618489979724822618491410035988078310073918238438925560486020382099629743778786450511341495736166990370249043689848178968682164085713521103655094802655804382833988235190853118422407243321264820277044909601262073090992992431549841799830825464489098456817579458974405585076511854757819981786866412932960183099339283475782812333569920828897102459673668293906615983824352338382725198131686538727593603436519218915058375328612657741717884043921743036775048861086778217040871185339021285055247827573334249084704431812049482541550002022160333773388221424645955408853274196207956442655548066365281785887807841160134154845942970157298613231921364192040629986289671454173289964026815194252330171046353945740811606714796362927400471292637753850129441487861252842591759168799228753830742968611408889902735087097740491665928274949844605995526919114525165098491324349875204269559495880076391985240723767114767809560128414407905123540148879635989826970300308550214277417599259972298440051426125041191299021113409549475671019197647297785717116669557638216879405560219809271665045377781977890084732206146858558933900916669884983786705562383167097110003128885158117020694890507193413421519480600637277141670005112528002039645190897643204042002463529366065832322808663055930836654562156230347254933936966606114254204915799194081144090790679888520058675295106590502268944800268751295921223035774829127883370429067585712643931655578076891665713011460342422883310916302156286318483213682986723766503960399892021344021502145601488732432611656220186980054910685448064187757603357620447885932873142012313686533241396453916424518010566172373621942709765632718228790359114909317989114735870703368585655247180510099610162411521784804042980631463080972415610734839630523614396050848318052272706499795239320735440453322269565301212472851228683152942040558952372995488786508615174698806710996535383389366234089576639620785068486192746802242592285094007145838837632161007309593274868433850959239225766121153404590226298247766375827905291602045895434747526865111485020191474767817340243667017252785850056854350406012541767673344414228719591881391664431262947223253928013556159401766339679027671808406637536024212207834239978207226571355557610715582614420695993347748389051346004577616262845996877556714424340582090077674861455686666350510439734369666684808924994071792790258609150534289541658672425360564151785210407088416089468503656372188495138504515238955207670445425452524800092324838326771290729339740604298777314408639884486633168652813141054980398884028473607202495775550810502036639912406026065180226553984833316696203686221562322062626937072236755171049309326050598928801919386254155982400231450416740782575319762723207995122287387788645856069389646822196057352187296220029099119202565026002258967094531323368460094499436949972993749344881931644897914230350845020695433950628337861949287220359250717004624188819905488853847023146999082341260303100204723946432267221893119421827027505767505142580619935283468747494775048945490661389432819389277947567787721870922774037293972882483626026250038669731026139987464678415102634224985595249688476127674777374601748336756715181767226607609437119340788727944740050898248689147624944783797311168016927511739225160206280892195422293539676976910287205384818544841695312455151644639851068703533183937579073281274875239250362146744431886364137898820455217772204218863099895037730049512792763673455773130856121328363133238091019137618576632958492778809520298174818899323792019263675900301735535361998784851432926611075694122098634950638714535702838548613510314631265541480328163548352406219960876405303337393135688082075257882830572189672848124940165894995264426388004748942360875504900739242775400650016824839606190366843968669992617757308711654184757603704685384670410789991994032674064604370373572927297400542275535626927717917145984579751804256594906972486668500925412861942780260976940279584090493334543749577016033103946460394748638107693000793126269778283535755616022104484924443662671602083269397554559911064072295001451020105917992818032896459668820344347274107931670478240183117817794727317619022358446076351188280968438926679271582273254355757440416003774570551374049051582625554319480591523873132505884328683965007758299051853624588368783559955843713793215692655997436366289008366851036364875461051772895266298170579031276882416335722740326150433197817353771944498891409952127621112972103392450963584318819988043930631554434161956339542347852018709838217102574222406642030799779392144922569271805084326340445319160596053768976381985529024256311770697084631304212659090054534208156917395030497883457318199776050296908986406877684399688430088216411605129711618816471437166708634349034863439354655754640855583225706225051216178202975376631475142089912228414128445292863732957325579363929407033182583750631554777426824276182598637199849636046236945417765606605488829720338070272008589878684153650039356589260968495972332314796120183612382481621309318812883623307999148976173609253168495834857492001210306548791274502880968258060582698912096537981545179617442070024569122050093950857735994338105499908985271686277140990994497700616418087778958856701720951630612258556010360941608464686322199082428962455198513189352489421694356679318238075582813952531144164782338124136176001812483284300391434278305649413520878004088694306583697862944307366127831770420009327828059541859505914292392471333184040186931901269749001633770968316793648846064588666238577938440925103644475133608676099955454237482134946415050115255253411072038345996339999941295110697227858946343928022901444021791591527694414565322368288815568314187860076095730629388796029612092646983093416977499577358487584043570958228921186439739099634953905410899475131557115205770426258938158884020134745165105862107645659741397738908388623663192055014377958201333381608202070254849641767858311292478622915910296155144697717940808645966421841069101403314879268572336964732951838767017645346053645097556877444423522834154130192769104389151399084634838510519869774948253337931987664591070659432311668313543675783094558489879565675195503676494047514103395369923947508190738385518075140084442330849301588711360283929337618742949039483835769832817171131846521673950636348673925007134152556908882739271104287748899104815500638699473176894222469234552982177908588255875182943145595400010777815427167812766435006284540620131183627559399634042169193332412255294867043126076779929170536204371251040534743006893673537645095318037985678203137160902954430581947327983772016908786965032142346094481191533338607367564979984862468205474547023869453133061886128120156143190861741597580549579470003749313847467439280659912544754201920134238721616364275751050353647484496024710677735804724010883702350053531890939484057769368326940720700042558972401895205326055414236701836230935093794117697131773492728763332182259834370332075089342691543638673161334732838126023437100383466354009166514341454766754440831670877342395363617545875753007910680597249751153797961901967443741794709230522035347291201501996377791698297824526648143087433518992286673251399819107443173220390493735202487080545449159537306748031161513304950630687130412218231809559459438619880960991525795243127193380371663237296237919280935027449915884512811947406384598735043448422444361374921963686150584584403941354306117588351813038181214927901491288842754958213916386119932340757850080788913888705037411690960689931300993249002659312913470152856753046590489565716177606923216783027592885730502358025487905452872253129259733204939252143251949478425414736243962715577372111035580728590869792473744532186881540201271532744724107048778645785381689572813171900959377630985503658689353111752628289490892190262668192348581647069996948397676324521004259544450591470859497885459946671162031109633575717883292654787664611681538553227128892437798679639392354781280216620051930648989297119940641013800144326360781266865159521577400094678476190968515763926127583805630618250453046760954030319343189880701338262670866858803850624017473322078182325464860504410955958048062788295905961438343883416343850092227799638676740990147389612600457877753587742879167105748854574135592375748188940065953185798498481510167837526661529230690916495661605840187763011591502446719238224822159545213063068190753877825946925903947032319501122577258090486680134181721124411620841977927182937700445781461279183910843120487260000633789656249094872299185640495087820064076908822215143926116660265885504223149736282592425447416391075994796788365439565663024680199232525340578095385362074148170194284321634208299141473524056391189796333955995245140005366310849928284952353478042794801111387964573653888539861026023713023505031663805977962844820788553078290722353064899091087583101220700414572421877113654834203880955758146434764283827811964620392256856606353427442230614881195700368140976069042405431917765452825627127420047127845429725196464089712562052765298110052451882126597973281365522003288935449244975364900010925722661272862195321029237593403426351180141328979382966650654665249859520460468247075021474880029153302577322011431880288816167500548995363708123444931496401726741467729261103356850718118073015577610645815960037209608631784512462152030492714821612974505312287167468806077314351014217585177417263751321393597276856255516412507186719977391512214703390727129846704999299600238330416424013582429303389010082350583233092623256504435822430466740528855982331350629591976587781168192411161320339351195037690490002731727024539332710781480688142410344200649802724788286851962901508475678498124753455711801563205180844015065663253062782329258550466648910451336698957522600381605964033849918377743845539974533548441886507567346641952106272004329217547035006604608570293617945856772065891933155304220604801829825568914852599699193266132055850470215045799129878967924720582052604278729417012003218492019227325611421637494361357611341687822149783560090741277621349123953930865659967799201047458152956076666842475417738674893274506008293138678605783327167112293578800378890240288171035227943293025014689218435692239993985520934278471695934467659403158571765717611396155498978558782488516227899978122007123937825699029268228299346241445536587252648236562917310671121982811069556138836090179983164272232748589308370163151526626687895833612549558349048457972818030339562027970566917570561194511945970362382853792149250764124150827107689525995081884564068370779423065371284562107153806490454490311952875466797679773798465782837406604143991077502585147655205239399116718235940179087764967747142154535606388358069867813548462299460001444877092120557545124493588541769818528859576811738748637270298302110565551699633845412784122215551576153470629554705494143564505035772937847102184327144464486772212372100224866602923250190661435491815292476774140309628836407279382165668817806058779270845144427418502879806478339979474446937949416149984242226444959527320754888348575054166799921104282914182165668319089567469151646187586225660324628363034914964279356201571966315249994051051277670335772526886467723287060636719414908728940269688482989169975790057771114498011473474129871828541861252680936508675949216893168449682598352780343876323191314336906371887172152378380834029443032679461664258766333376902324658866822791807383600558119528137429662483613776313256947751257089235177094015826783974964047229179163023911700093121797248572252019775988169920454082454932815829440671074137949729404356911956344626948425913369535436337803357187262502001437935278041566771101750832175585422604451037675491931434130188394002349767800131780906338663107834502424832719436266032824351424990749512054977062820301596111053279511726115377022779918831212423471591888791215136016461833798582199947703961484104518805990116785783710855152244961835505008387416350016138049250236594442867991032938885429300919023497503043893531760232239390318001597393531905400684197266255454203596447736153858729724966198850345796205754686170370482238124211893911176923351173642547046736501521417713493111841368298476936188730406548137081827173664855747057739441923990199560561833367971781794056085934030990505142090438013978545407332485611260586185234355425596995942398787084350995875509506732547644673070842505029852550033178338719803271275245007143414353708939386829827541973999021595338860329314756419548036913252705123185033276624561297417436970640419947628490494435986272185173184320994877314659357946248984470408082511589592117246702302545585111312105316080302572395856813355377702339483046902430518339420020310021485211796893728418396358270011854230881367811301755202482097253413637351689773619817901462695784610824013189092377471431840348146404377400484482997278861073317659625896725723245600457952853237439083968918054109551675597317723734656294103873788099748359488486673766256123993378658873766872838391193764606282876393149913666589312852715061916496478456572062487767423430131603886292335473852061099991508161524029031215180095529147468229191773097868801653758145323269379736474925964379866181276967318280824075326703949599579654040847582886598703839350515836614066236570445065564976250348585287145568572104834260439876949509156742619623107026993991073871578239204704673806296927340771545842619664954256883553216617434918604004782970135824180727140352994229640306559024980038077074216101192367246027513238176309400377539423645266700753132838350791725309553677833100839828133504454056752522986789560188128412460054977819530015743100878740089315349507794793869676443240480840209255030535988816358059916988883495774847454447220779783091348681565587849795264284004419869025532344498268298695605846665604372358964558335304065324316365598461131574036111711511508323671877321934093893966812325437645920544477999499442666560604070631043427767916622310357107283583837082483502062923821026994454132805283219436944373281459987483747646148857506145181859237222545769755381480756303359012127933363470324150136178262747116357737653350852149884466189129274912649766125974006001548976752632086964675558948725778901548943384895313446579364550602564449321044624490665485181961901342453012889313977955713701503919101542919346140196897589733638030680202336979914767590046149568322097149922516569190498779938004814967059052568705974867912336776777192214585424097116118012991403404273700692388110007050938293765915780212729542508730412173371020385813570897090059911738723133513507661235787529421384570041755601863605960257641013331330450983046540344319422604746873325241585419955672527855864248380373425244860233237557923910740856082622650812468983388484206019197451950269268228568351980499799642946291618684011657795349419357106970814519285382141433182486366606533641069979436406574366044459731897775628914054972255994461010291353578412442415207316693847826382353610523058221121127404607224411367050617298468260750351641940929751408628556220993800393203447157558168307379035716095849285943914359671218711385833242207399797068033067575989556039024852431113491673269194274761007624997661098315248409866913382824023873552277059365442100051086390692057737422988392353763715300195437508774095784245930308669503180868345333038742403439582892728828726635358372794216105835721082126881312970970429996497361949018801757883088972899278584220280307371814890304174107022880398925338633670866499325205692280848280192920342582367738475236378600171393671500234482985435560419068031687171994501168171203323549529382830375883230354737712927274425843056551479115369874594490899379472797363942446452317373052736770150315609698573390768351591398909417638853018826634967776903568417269241018589012540032003520599393437377852504767313118091504243366617413576617132257584389817822391437622887557081572269867509818581484496632314342989032656174563122660236153227422042444544285017340562567591804194803101287791994828012440963939792696384732288300524062816868579071076269668599734009695193298544894446622707103045731008602999691207922005306321215340644240871533166560225184694744223131116109951368745563819171808695118980502723631501833329192607069803810967092901648773410794115441955136165838663708954618974785436165957800228281595146045135540862763431932913352727060506322235833786690388409900781033588186175336926586939126876761138766950388601243896068128348185412131717418115310370851101370510559010022592018898128415570407759162366991588440784956347134213294161163536531167918257560625668489461127886728813770040225290241840628508470699057447034666994846742716552895591009988571075175878799260917274481358576564289777175991486228182356646935367578895812849543303137849354933249427917408640039073915267040441174363605969828006471647082755443500813734220820842813460015915087625434302935882557721952534584824291484854980079807651241876371386404139395994818464219505125826707771971434187342085070533422435761680034279669586483581609267392106885007414072197217943314484400713535011976209040245744699558811306104244422719995900111765938795827072507594407666189854646028918802747573904685142759900351919722720023424584865980048624044144974898126461423178246107137901364549124601274552023925838627402857033512330456987679014383009941602823652316924930329878034782961710092928071077783798461708212545734599647516896268754606342120628191005383077154473216337981211771238134824141012728864402082145709729789106351765325405646652683107953112988848655330801913423360711379900795138564593228622633873387580269537122250782559863368821730158058497907809938672777264031626608570999432930926182143056036535458040727662463309139627380087475190923138803129428041665800437762992367428792735267788124570061423581174388444110917081257610645050588054740544083813918993454861968908283456898848409404140347810298578010956743559898573283774056343706531096122647648540416170917161600689983653891826032426732232185845009427762677319583346488353439511553327346700132305321503330491623110431489004745303943425160351036683797132052588113474646733751016668117517382946517794643112447606234981625247624906378253461437237176028364015289428617662771490979799339845797701088799318752470813138395913253300119431070777923656394674523402212881836853735512233456601382204614654227065746360647798673730416893191177655070608209268194274998648126257807803417138851277155161247303398346478498538707877316344726089821451490990231265096272116013510980919187131742338009792399658711689878055814551829296690612484283400137506176623200151102427628899755432849584672165606510581549842952519752501849496177212372591029841859260605789543441116864849236749849722827675456063887731163303340490168640579322955662131020642656293848863190242749815560259868635046921808785859022371248037383863283558372467872361525351634204104285473061387313257200235156008071268303562508093371058407605621193961192230373783152936282260504010615542531086370853232311760258432789559977208531159616505126978619511438804425606037015234893351808631814396076926246323434963341598129413232739832886169728546355707872477571092452560756701474064189989536430556338039622287149703577563242664091798144219987364749499953754111787225805665597084509831144464629455782799576829867393176369800032409411273288999875331662750401441786642564653872354677496761208943618833758269933646846834820431639165711274044074623730057033881681724525794144221729855933613799886530016160721600393773123490108206438256395194458940229680143551462247580836359595255209530386196155202287966354334102334723867867287388564153028969929110031487470667513428461598725991558630533235942939331113619895827338147173479938713376438088521607523666536499910010221473185371241861958025549478508315140236543297425233199083146415507923259366283242680602112661745782005706450709933431380341629794561703277723114228170919088157727526050066089059350121532931841450899945844387014615742282741032259188985553098871506287417089176926976671565386442688870316149799683809414804725499337560993834000074607937802522663308633674133851014510854135679278566210182239274237522657075001098835493352105860487964374752426213144728025372759128581800132091346368090485274755692470334777517846164843143326820823619430677982657864885187663602562261728061650824751317766945265864598838508078404005518725944035051839652920497233856972097867523819370043884309705716372928335461923455740388138514022668821165312129457044364554297683144869069077283624571123536622813339539550334655486109049302029430256477035227940503527455249138884978248749454959390850616278393374141831915677627824489742082195301640631564739195651149154924532168221124242701255448129412799141334985877424945588512833055954244981951622556692002357966379509913381114318541775180575441959921250387232311997448550811100951502324089276398925256533403543634493872111296152734504041318797181398577767958225337683606586455595818790323730375054890195693112234217397979083904214981024719577634590980642958263259408355450995964947688383560727849209982701940381248038718108898858177734818036021943876796020261312638336098777463913617590328039519968902610214072089057503051711331314946427626860293853928069146093658040392339947910571437282056903658372090143264498612291204906558548574968496431124782341389870188370582888110295334990310946382535008056235915943317564569307775932539012487135761929286136483503362334046290844573379180934049523353155351582107222502962983636035296591381125908080595525774462618001108114226158897599077989626103315451769129829874723610671899756597480134346452990425085591635716230790441640298484518790816072826977406781138981465731215397633098122927380997896802895464034504189314661994804651538494224082912312827322071126869045034877764288694612416200532795194826096630172813634908665817106961933237978391892305240863662474193845912285258759721643399149394462750499345424125267663685637656726353555703725981264278511175020210416354444710152104258879726299975502978417258954729163489996472375455238301028380640415681448107367132728675359306538477392987601934610628083206287305440205113645375990462578681820856160291889143447691601386355791771057581914554034971694464701819719448651392079183844284901824540565518194017548062212117922401280815330770944157681075882565855705217768875741392558591450306927732764061043950177479755711500010515782386214562697158350927882314278122304168294215081572912144443357897809541793195629056162708897046458546798652618850150869809045882352366485320256519471379112064082645956010285056512773214714029172725282499457872852932168059629984665948727563257151648202335927573659197788187107923096422201037754242365368693723939389402902731404144553474136274374693247871240769281869571130199107314851550449530139920698251399559795393348630886067879373760434977551739808245647310146826336604003256275893041985403246140303095708094206362629641043531934134130945716200955020491682896419817884189726099319045970711180451962201268061615299217546514387175801961217101221238066008623172205991462392157517830165614494524775948248741285456933340458623328233142202411558897291175576123107037742486485469392064517537152206506325697055852473795727662936187596686482896693126742557622438553317703387663647300739001287369987488812598922199773138763114627003772088298814847691566764224978262589318698535100538939121081162914362921168914582734108232417135713728326663651159790256476737597894994827805490979424197359363491333104588852069339017912781186821190319820519326906499940378759100545652530904239489404257003609489037812404723697920568072961991844064975643882563743928114544735882044742942513567803722985099503836947871886964882311319688044663474404587681656514239522482501243349525532010380027961101064275280338145018383458372145258483276506211527806790115326305832496999075360855143741182661098261741557665489264203599216714480622325587399121291774826827385201215762258945128986484032666069786062904555762926907461200313280896432358874376706238452165847262465685839371154064160448728345197180390585571761546007261884508293811539722877571271969966847292513204045070345063808464432286809742882253728265127334451277066180147169824925768591576996079778546140740925607536977382523312601060106695152464320062010861956863765183756022158949728349282464915783697879762555458112865468438476728813360305703751673644333668158316931567395954014610951282768555983511113096269410496102482172523294633368333156696931508855035462653914149979626470091888012117989106202317843173122769985948091729757708360347438724698044191302783580451091595300843245583519812336527619056152621996569131234526669573473149066595174625849483294389940222130332181855556554733161980674591169337738927540589824509579457101928624854101307425814307603433525129152880678764354807538912148560527176000100684306420088141025025833650897472349380656052138829853726138601971830484043212401965988841389520061155251524837003683300772807130154153601197715829583428065011421697426683566932908566044420214234951491719564548115629908072285460109498875587856804718758262966505256151526825163761950220092438542231784497698683576899965696937889585386249902794813933071136180739294912386948467198621064427269879496161531076473112367486660101209294633473907372277618903536366687750849919713722002889912529891329568637111208653878583342326859351741918682166991177868668270741121835225406870159439065516917819451485773891813076240509699954194393196259836510025941808445202312078839114883198647261699805809902743358588302342722945868578861776777289060058270913836830229743201608437725914136988157749380381134491380015155863908515493708559063530461536297176884690194501503679889257372203608170183183459203064239507627070967459214620375673716124923164385270378188975503314001131210103642639077768697826999688977580342906333659571487973627662475786184443119223943046257705270983143955936426202717235305805525511824350683148605661409283292316810404246804864568374286403587855450669721109027272540879174145541286076922775776202470715900552608607610852753928422197066785612671415655093478963909436098972332492858828497723875593773255018562029133108576341176767568813985313555197590620284347626576714647004520174131153083344339093054667991589308717964075259182163396966334675663392628122554071142441359609420657408106381895348711694160534118357564588627586605757467512032988565022632903937018035710201225882839068355907303366577130276089598360412733426071036255623389142306877101295947020153895145181990300229890749117904406527489223134686386906827239689890249662626654257197897430002882543337899854815745940795260587194012963188141117882220998429700657004555232028785006835995311210008275878215000484467298296743412154572848309838255226520141812356055009953735107772899500164237581000548486636484282958185694409420706879271999315483774498266425876340032371344968245872947538288190612685236930864613829429230043154542296336038210934894076497812195461231919281082954558160239224806402920986003346428025955068150459012462899364216502470280373430207314792071326905204674041309255449132556868401951124168076918288311062882976063668467984583819415124987002136460551080273416021088239905052976377982217186132089018000813705797208054167076583741255434861663304525598812366818317694154224977020198690037001522367053987341751821404494188905955584240419868272074293817185193105162553625393645282017826708971108702535343061926616228052714945271382916433781263307553145478732123491676570358412149170884835587431361515416115417570811642728855861689535858598106543304833367406062871831980659920894942130605269707245271802661104867824199537374033337593376857387381742724348457989335238778725837092006535906038926071808251325671357899493731542412848901708565079342314122881083212224399951499524860429291256967871895678786690373060203114853937310297347686787738475525602813608522132405869994594146266552154106758887931923243312640296106193665549347202929766009400867179227705629792262840161692093572493995803487934641324808361958884670735069601450324906544694188811808650322516144951802141718922632983672997980286886842311642777917774352155625852063535440363626768965650276094871336235844825348013872550678723796891435588845356452885247990544983863768411710212783992419300919751238978147840846517290956885480126261166610690194757693560828628031096784913946928099610679753831958129013941923219699916933820373726894838353661333266479028787324777734913124379927068624022664749637068284434450965023586656744034989519227184914613784679671325630739860615923663275828556298175045633538318589575356262352930569765230769402066459088641140839775013326593655716803754754093842880965151703772217692398419117278804289352135329850571933497673908918844580054624291981078809058136082410405878944141670624448988174285857684812283335114873605759457518456146372824628914188161104708582904812972102109425273300218193501924383487947524887630477888335360429012776232000641025070086367077553927696219907811151515383764662510688506689913065958807467221747626675880784479934166844358481114638484300467027153676899054226650362418974916764746914088517660863618057929943663577441995124827071494135882703026912999124818956983397024071515472200329955276147187310432903334219234302098520052085239563099048474078596212754282298259265161142400839766352407115076804266137791259678057820851324945737502479350201594424795697116285205412928344766125150377250767123298787047389164500168671007677089356953404309680535464750241997903318876485944384797541083493086658206037476420161048749013304273942045645610952015238247111216135674519819035296335262643033599164206401198485543170888788325733568908031275579186403774170076741792444243792082106318818645493426012306282622638401186834413874346071998739209519737406699567144569294184736851264240993115431537842178437603347817840549782044254837919372891459893439422780883758047149454488575821044313350117075873153588523987733915456532181483290277465209457511950900478026245389764392839700889262151223236538157039931856919748630381879907946730853370732029460810168492277551891288685606867823072554243382603551550109538506399617319459623775266222573609955321250970164039229561670583818630054462409219715715229831379078769803031370825830327246564020063982465111047319584090338533044797723307264294432540083593551506152136350218209186962174107653556354980603392307338937691794724129961207878965738464553591386043646643334638580101833883883222289717908641769996594326805525093964405812290326039601371256643511259365677004086294961203321895335863567851605186920310437682875385488329793453058290629346696350669572925886921989838905676886173220822638083242173770236242457007808806024675130217436846660623399969592687583359722669465195505809399253103085363521360789882462879439346725619479125201680137366465050773064670431227042114631023896819973251622181278476552856482546452920906703631414682010522228784062091017257354563545209542770541003443983973084046147608806558538526039057970872742245036915950452353763730377997629095379329173965014659751851354091774547879856634436679372839896086913436567384955056077212799780369434676949273044104822315138366796291933511488402393726351014290570342134268134467249778448138435167844194288475071040671689943977989938723759268743059831127751820170732392588805351975424213296354130562901728782232484138752019933558511967293050880591455660470797274340556515347460234546360890133955854719024083727123205857550819955322593035040853179515353092921233750962410928629326074555844084501396605872570165882297181467266670728695707599504489322695112419633678857789111123485050454819773719803489475492472684069055213738840148431933502257050106468398652986930478054064032349660148929483238903577933060819875089998431211747851309955101792867125038749867486018518678282100693958990258336444700729626929743170429300078488103550609045200602954785906220630809098846063357052720497051303762418660898597499952975450106010935502049919509097292539879947090442239780719454503522019774393997935469151542665180932736656230005284538050621314060624714341366950806060828163174725298845547004634925175475297264545563950638928465904812395987252039706024837634591862341407105502181300937455118259141864975552786810651886394380561161757069263907772666809224246192643691775829031037003488920265087815974446454880659782109993646065559461887327861072886722023140199793303563501210922364813112182530029779513959288170361595925161261951099540771294101351859285917512336464386706784039338016801984684787885455954322817088577512755216250012705102428923133907911225499032257713200111746371347448606786382492159339737051022535017921926357251628969900697310718029980989062935255289188854897198323382445721751445729972296377815872134015270229804050888897468523675640746350555714373093594443523861711764140394954681459642215885975895626611525876825573896533977181526825467205044356075155707805472769211830027959724020945849000434032896725546753013622462880961862200960725013006346255959659281185279660411650610220341051857883212528910630461508269040757844860169436052213281202914173563348914306319530114472986829217510287415851802153607878547054762832991087920551047505393914891682243249023938874835747064407134807553476056143333854901760992517701204408530013013149995506045314314982184276321157476315229170778577265227085081572110396676605810589552519303356900256558685066013901282155780379423895386746611992430890789224597968759758736874072472012931279726512027091569259066226189952759614377798535376962309877310137621207652423004308230168680972618940292610831225279004184351966113459946131280144996180341503371750351988805676144984106098298545710580329290594242807679434466806258600129741969435510517347954293322128176704881319611658275478401685379406179748526221707164375022440898862990994432553318125362420115757933950180726867544685891355553029358738030738371996309029543312096241652924842230911209628344321417402598351018310715544593802661343982729610931386102504301233274496794488606893260142844679364009695770207059155074098613921659533404739516811836857811775907379931557133125503335391696911041976398135563400995644492718037067505583465413912940965706792498948598196816881840672446143515286284414684700178028740397588645103809572955002426796943159623911150979830264460007644791807547970715487264604451874789669945460760931720129795929907281064841614189126686039591167362380349655606060499676955569358016352933785127271274442871861219145728593827795365068959163154613976592051236004648917756740010004587175436838962050958983344474238479787962520332906416118682989115908801174162645528377555104805591829554174615817983983633728337477944362081648159066240012747400968668350445720534205021174518726210234390775233196112969690564303344035595015413358228434142043076901303033454066644890717720329087203587823087209640987899973323716542529554926367364485720731363121386823034337805878998123329722088212189616019321767232354207083935402954809018436092988724140661370520440420895677391152838870803822505356388821539934687731252843202281000947970077604289075772701689253904222068556165382101120669944282718400542058895943118964982901812775302735053169158252648510496985372628676693089855552142206927614629805974646300276629226084772789756599137163995649984157456029727027495608900405518679474275604438212879323670669900045471762787731413810443698497688333797481719402131620359017003988826275649758225282058983445929350237106970659978698374911470066901435199950271178623158656899648542360765489410775220249140590332486351299952450066435838704589408479875450574595597636307154530544952509003342391978653453738314388896483754457430577908352764467121617317270547648831463453021453743660781407258597144465146550820931528598897994793985535341059360778949941670216223451153513575733852498156987406042250846789539516412551882671663433133755330307910605922196475932175281290583328492479273509601796989848666737439659335796248715814371211666388792501394882786721597150264956237552502781040374271642757260570703720476693114576496946966568847380419659076680741169779177200652981434296484483170084360528521545987678264548153056113374633726107214778556632468888234431492949986128538481837225727036242696919340792169672522442495990987238561176957055145542591183265888268597292312895351044290573427678673587712604331242885386395859477126015817438908326631192477427301013321259932338469295570318578236800244107096875359301485507776374485802876512086009648778687075011646168950115516315835798682422108859538817974522413906385949639177659261780224862803121169832466486689070310673342537942836218615467145253328380323281048118784112668209162880627952857227875497126570551138050094732154503882146340864343327743879398661139251190966520409585675141773365268313382071373092979220267470938506531649397638142135543438525722049472440815609108541593532545380197738304394529197285986403600601249412447439403157676712377884012843374877160442235480004417885453044221941306848757709915213999291412241626126326264685880460103592966882655851669050863925800893356894596519577475140646513405629768289513765609218696044311589092470602546299442592270840757656006030930546054148489215917237336177358770453155816890996908335416530692871677474146647719193238623395004361154570786286496208591692419632349153672733253231978741674006579618451542908593275749705807004661728153780104331273750018733297259486582837992561921667646779933393312621640885924290766008094145354577622218077936841068408841607320833294394331274997415196473145605857356370785947622832643311032142439803763361057903815763474402047001787912776433550268127961632485857998746262321488658127050687802021726638278954462456387083552692910491277074425242117878705940307011892496656826095897174966906784304327925471110250929834562956747544469702850056086200276688399580765880402750928654614968132983091473057305476117541646841775058458121105124269038287114753069457327061602221752456815504313131217165610598984101497397948990039932567841418850851006052069242147694581334082314846945835364013657147063275638071110240765315784199073661294698815554348865307567526759895229925468245676450523934554414447144285071336267253195216227795963332233345305115043575589235742995447975409318593609073484809363329508250679440592019637849443850890879464721332734397801621378037210218366229085725358651085561860500787524635583197442674678673380169520145009011430049624099586150613765402901313656584209511205252277280618876536336175757989918655225415065570185778158986641551788291272410143829880160537726399409778106654262411822215664377115921129449261607147098985229645715015389975234507768970543809857178270773423266915191999565263948024008428854840810273674490211064897803305359069814903816499131610237998096734120216738424014346506610129739998722287464365190094242307892803890085301711568135249925992900252321357514589577361591816267333507319710589615975861372621354938283878808432799494245077682261303469159489027784750281460590169538969340170879452618568152880770322751496167786798134516380072669180425284927490869273273424861325954843505726868169299314570664189823830723562580508534510969205593908363260741868381653651943407532563110962834623777754979113624554799665242160275619277405931314090857104093195703147976784076334749692792460353941390993710239854199012633687212872365496252259997671501526572079199186967071583961187953005700896779040649002874072448277787913267856719401687110589048315391873829000523166477972612151280420734718759854078614152960748672493674714550289516977227458281866879709530621699587654530737455004030467751135114214106555824173749527512366847561319445742965961004510919835570800271902022729769827728368047836211575601311479641893830067768142860261136472845311959784917459486770386841858111084113228486360213280969742792475379910380331401275135389200385784340748442491077856148933568984779727495780106151048374725823935097466047292292878152151860422131204281437773679027042849493922417422841115697811412282989346882723911180052174244128683295897730694621628235167875646014057864400615720014922680762658827237899533136647902531588128191578752427321710831464989038499722908790261858903431424541027657819505098824699618180476009590923840880564162173256028039646013294045165457876543143542149314045546962178320300710390264902064307913739824966073422440761215110587765030404118525832757290762873037089176551225241296328044948280601447286980707458457050957291907368839172378685901273411918853813483273413869538088054006872053399383287594456970013430025556548085012208236974005652840649456913683214327977254429900472297389266308455359866838902687340692953953971546100812176554786854758554518319671490415019773272379390281099242726224207909271633026369489866706518804181189466110885827415906102483748651995516989532637322989436704266544851518342882722563761580292470142713370008614112522264817199461930445912976731389104348291176528857897193471172633797211855649288866718529487339488389411909108494336553702086894061598198204187350739857322814062817158867299602207708481162768701481421625274488376798909079688333820816262786112385728782307040282520629454136148838415266999922500969217709578952407074156616859528988848310983245540844355316399931398044524057224307689646926819054667903839065158842501208385663123097356285857714534836077715688618480741469000513056395653353743486197209961219873016472853610618012665211940712727199065281740454462284635566524761840399703024587377986262570163066765147559981754393258649097134085484434734472804821521777970830074388337485751738701868936825625896291675701839885454957533760059966505231287678479443383639822887782275467380017325763108956415192102062676351612716479760113896323239992803013394252242512467630504208172832777848414460701866814146194777257811161437917859874289569512453800976240899909449018256044939713226147827916398497457986957744701329089764534162702062162444651076232534694267944443275739582576476170609751067675330624890443964342696828620819559638272126774931852487550406234435940498773311286990708666604469968172643394296357340439060034462275327613063317448132281249706661472231722957925818634758376191747274521586380832087752316352688468862401970761824942202960690918500504110120078700216848998523467930140867423658927157551371505202488161247670537784525783239923291107494778466622236794718787896933114753691617670475509437951361741841199553644739124377474719840398298889381234279623064451114485950238032782666108209384761660110642349879635369223067252493462671531989338303267228135618336981736933375079746833686065974994010608362834158089124808002127712889266036265113569486899971934299075347985697915536165986215003303115306092590663002869927860616145908493850215493541779316071018888264503264905774346493039994083076149547578117216503290584957163066087946435020511200504064053002343881091441218539396928043592309356143203238927388591315120819654609331262783056218726931413565773670575965417085025409188787793599021857712979272069376136148493997566290790082912736872902752860907431471615559121081444679840360413289983044419459707005791125561093993812875348423606891081948093037233844870505699929862706052035322062981829094772937795565628064862213473514052169439233902103306479635102880621637340130880563398834805527131324461131129857335625295083346538674122014878151500195000780749797937805077953178142397064541505298669092309471155867826017734278089806978767162408288894369725683400237189370745228634843661202468287186555789691730370788502976663315646449687839517263407053560656019380112669204646673167612289156216024942325992682714446843916524051652896999078343269321262842321723842955961435438248703129758456866033076271147511518381370092004201160448326726706658741839741675755251636935956017875223124097477976936675790523942677742954056307984227793439984417223600214739066711219163091987637501486337992848972355555202837332264209642724225928757016934681641681184762365390234728656196652123817768002768541405379472366362081149086389526365905942624183666753969169387765301182380137121388265326582798311465541167342734807680418986127240230768511228493370520703719949795776899173151731249187027254933700627866529277155974036644390101030439703286412383116978629965238526598788875701167187832705545228529910664583251239116423169798070692053829934157299743317326748603500571339871869823313914499974191491809628539247908586771212518983361299154042643887642863118663745763847933586658501026350585716045608779564974081795813635520473186514079193683979155430144543969718673997165839249671874618534729125472309867999003963618347877705267504646726395360535042512239425702300682005965663369357041260053374852217789431412113306669245853497456665314850376375055617201134864180208629086352042503635838681881324036803774154419706878618836914640685127640008694416524557396207121559704246749433811715090241350859760422319655311959347680455955426955539455626130851450149163449280691339202517000834830355703665450638123512506415744822934721304857837452709423664727719019760700348013351364706821492076254552574032288981900537510764238132361097916261928053431869729338731734905882945890953670804514168820623184555514202127916009380230765061047816759964841011377603751203048342331254489465184277040350014846430682792842466199168970750904557502035778564810061052609466109088675012293972904055344278741244520807896857393086346445635944301477437006464324490544406619738081487203458521803809241566085768839054604021473714577360303953725604454424049237303801104361728520329316010632751945842122263817114758625346197447205151053255179774409455862272774689136810720411799905561939585295408450098567721566285049780811304047367704079656203019225455712602793944343672930507617865213411760381288694889640363643594519700311697576820194534663814902244615682188037005645466668193587555217047084059126430060899958516733559361135420176282813821171803239181652616636780972157956655123315437578487037898690429782856537319378875957101035721905371140348303902477451732345040142626304640901472626962475706448401901090742600768574845514468421901171081246132947674161279092894343656710777942657047894968702631880416652326276714051619863733488936140685319877040015073039387267064634554022977153775562183025243380842904165647122183631647490648336884890870607928536274379111680082987995446372450819743877434073202406876221144924432337694354763540273076387474656593277239312954506884102307593899789134098255704663240998172310784556230282621731691178628208410240564325412876001722258808521126192219456250907944640407407498701682548356789555102839759384821470052557921268659029992693802259569415782518782499406477640967881391473217952189032280082966005979254574234856816754309214767596233095877604077161411583699341701893307675352979564802004476012576863190560143591583995239285728279830472889409402874610705825699057499600343764773630337131736355836146635602927748801095764525786829613386921509103101150729251276649490996863862855923802144857170830849892240732212352658666021505075841046447417430649004056574284533817353410723119631035851645097567899753269820551620208508140894420548676725483033608459126985627377912669698203639361617344112082884151688126162958452072609948356622310187740085909588001967525273496320581640308624398874674352407823864401230597071230472911794424692545141736350433847729698910280400762388999377151673325006489243036139790718175311628861321986760149887929525329145204374195704844854626844606886211542321048171854634976621825136501951492450443293280685949777142812875069279759812206788071849026066243446767333813519789141739629602631053607943119832992218737605944343378893025315510165439807408881117968219665915637565967442058282946669185994161253893022021562154878448479666210452406560736473624307950760464592794127529574147418855182620402147134738091482233841027795002572488062551221541700103825081218425576426802869340932838239975399455789402680910499361580875360888707771748184468806378041845992538319966311898127520324053360848434482837446232353299889864509677538883126920206328835284613188921689272373488149585714411971265590965555995804174400667537285377538784553405397898847550366132157265672487675022427488103678780710188002162328706185223466009368271290507540616540807910445065817946270439564038670093181592589652981743930900506935894826013661981518815996327379213429499648628748785401407821100651941298816765074466265673074451695011959971874312871865052855987477359892863644353008291295831886080596390126008290395468746408888327095360487943481675754870977288159912790282538948344861448029433770017583206424137921167093306409153230290314563822738515737667757272638968181100306335349207772649323151764387612444456857341292183625937606868914996753561963232407957009849968414276352781060931676521436905301595533191527659515684757825964577835261861557444698665094375955013209090036239626958508968975810852273031482758359668415406475387877692382714975242830184302746586600017803750390491028588219484529141156457562359152302283387503009524303456855507388670659173087028180838308915796190815766886620440896541774364250866565326641632831694571727875764103516111660574430600763855583090395361487688900638797258655430406421539422931971137328493644925428438732509437155468139851544777726229459775999103807588182265473029218226914425690304449980742215771618614415624225048963348216039597277241263818395777217559680998225367977417653693976181260205304489804211626000009290102773853273114140628174080231025616286091406259213467943066846777980947895774599032132132074750604557163318866036186196720190772307915144170126126691046970444774863000206574940407384783891297015225341853446245568956586976162373277243780440648200489283777096229514284875928450030036543565356492320940668690412666130663224331175294397182315059812664368187532118621082527746360964801385288221293614673483992952852237604474715048183421203673748568729760801299623900898479886066583563378740846055111349890068419726221554839910706765302566864090244926104988945158048145316175210473858920221057579341995812488135478778908634488692249726555252452556981148287638299126370764120281104116997261553809482396442653876745425307280644949909108751572607168131223576661534951613755278034418118613365779554066860739510266972670467348300065839319448971029654600861348235273625497305041389521092389045498656178510697566912185604564347623565038010990810858286684883004276851838651177324637026664644399340821758086194892758920694475313948029999813931036950305153746518610439593096101969369274659659887637675284214561363012267331111482618908012486260250812535228229093531543139486363939696729256240676536656213570489540039353977559544446340069515617907773873524691862830573873831916584346789375923283790729358699790460008184224424927413418853461259154896617844612488358144260617311138566008479347261125094866615566727576877223907694374688146053107752133493956364963279507561398237666186627384110257911161007508453547831380923886170949496411339288554802675772517412419151314472144036704983008754135260394370576799360495201404645284667859176128008951170003493387175206537280935742828936250939250017675135890442404673126550394422380485407032544216044315463961014825775806174967312087844639106431147758895327409248591827900793412489998257238133450487427154294204066634701206809417856681285082754647997479530970592750103121221905278885356808797326583693658269545616215987377848688050648349508833227470068947203729393277970264033899605090619519308489586522559610155354919195551028736954715824581667584832353014216493371268499498980730411425067892950306727433322511942749276804507239201875508858035177030552631930834902007283267356694665435369924590068674621417780685435382066872071642584588767216244438083346788087077871583531429797772914129584382890973306584358132446847938917990108206155793541921760613052700749758977159868731976975290223039159300760810825170794878296699023842430404749816026214318128458237768347714473950183188023886226743298177374245079893329474261346215111606586273276179346155670663824700470803538049269391723355597009337353026899164934211333069061126901272166068665730024621393756051462750471476618090401574943010845474672999739175883256580100456180406167874547203618562664589872191307529056696077178314553522654062844738559272651831754153867748669017089421298278404694714770464586876878263494684037597915125183667725196448960204083059718527157199335067925810804020542626547723748288170769357428156417717210581143559867405106570500687337952771992452011122522775489055474971167978937645223085694528528136777032184106924066133166227807708319861793823669830295964091249589609977228292894932454666041975346544166954366431054235099176410253646313709366716999081601339239469503403560044395000642914547394796942845493739667222161059166571394149452612474023140891464598725600587696494512580017115372627748826241270625043140237831505835010223225120068934610953207829026801707678333124699359313621043699338920635537520768256390254824639722299348356387037561357282876596918580479130384867691619443165704250965082818786238542473601757219070807940409891008911018012384436278915235860821659705559322120427313867918815586599574953564917105838382341170561316563942090405832789963899696287676750833553039248460702169913845102679474364602924204098580216104254163363177729883339825284233004642465406585808341467641842667069218573392155247154416617604132992668113382861890017418588421703849712385924003876166073949746043887544043426557211732074417216873252793148444463451953306810635759752629807260301294184462558479005726596263214830521126829916408814527314402943204256452849534453606925973771495543359257158942738329361573222743178839313270885327276989502163867451830028998500400051780023961193424716206032023397093862973594584308129032232643298606215656966289129790606396052253983167030347355994260475017538756226257345695425434545310746163273210290136591191892196131017325318796471481930055260812618913407539955074759768777772476614855771920804418254948450984157257280675749951606513309836007881438386538672456740365159981645984002441427155473664735938651376261915035639152606936946838335202750886848140357950558881454711699681652985734888251427619483148369741696932598814373479315609343426252194433832405681422171333845705985563501309313529748728532666655690455155258681166185339421585520817734684890326685491649247760364173251386402915916338998047769281956037020368705777282329521213366496819533453437566451995617919361846810343758959073021357941817525411495379890521220918769441568508730907328950115088971572167252196390552765731408882173477148278229460036188700355419448927628272038880417304506932997486209497707735504594049985108704811058161315037527368985631316294364580986655920980574863296157723621044306513518838808045397737916024192436043097486589105719990320415388688077728098809329448513639807762023720821440412354813461795640770406305860576356684323658594038021374189431828844120270017933818198693755433960410807215498128932251528534273051089174922728310340242799436761978419153474435893027942665745990562387983567219107350776916506805444900274436828614662921370130596864408650133323153516565918671866937895402450931754972200170547357618442951823039528702803144078310076813205621214508683123875333278046575655967125026892635554647323766771911279419534921841363369840086418767848285696110662820655046939772372225273155295550652932256779619079997670703591009960322053514731082443144849062739977886635576236052026436742098190324207576425227247055409909347996561509238866347506749602050665656857760302867559974872627420570065063338715710660271189505555910057028144937908341556245605615725535738905586559247131932664199128759617971037803275497083984336753386049477956976634919557396958171757027953015906600531551966054332448512401738543608392135432182588293114498836055671419432219715509043438429231202190805172799191110415392237211906642252533590422034180200786204709100367360357728324606501415271314239137132551408831099134842977176895517409129034945578840081371043537956037925102985950019104233242499933668640925309300426044736500761441141993464610764748935639124778305826680787365525704384216574981733132405328816580482995647959064343568028474904035872162894988647457798986947883227390785287577323743685521055583843902846533940240349581804719278424990733005291660168194801641357663203905074145343417913524061796721086110357953006462531473885862547676771931678662900131101156916091841511800257991224842792130920945964048473579134546205517864727871330750296920123144709916555862248124268278639284757755071881425818721432310478054873378053613196751545686308911569336375993501946958376148619617241562791625973266778519851351671108448237043562498992964154074150359999255451003493043971835771131299275154362373297157707313135378568048119639332610432783335072688957590366696948471200695321948056188035574702318838560510870812564598799927568661604137387998722235333475613236235267276842799057178411068362830491286792091728879518328554338515523512270745324146914793289292643724433786297223775023057473556099864956943329165899163720594205736073088431811921502278277929509710251147118289550569591391320703640468041146118188190031549008458351496098433213422231444683225809486866962631563507410993225531873132509476765703742120271818002880487096238402752256262312869631320355104418891130441563835403886348712987398705629995234405473390264836394364667355716303308203564264571710927993385190819952076288152736452030731492040869232903817610656211597221215404228459355454579671271073919449868674779892564900039633856407244258980839093582210826154028962747070987616108441825780336847642005307644987538678947542570393869955655582568129861529071249678525376285274985362023976805388968581829244908747560961008889434316319740991997417200072977231746841126267739406340027277665367095893096254193475822940423312981932769119221018441593868952171483007616039485303817222476459097891532360235195019192222758329992562309640688432960424694113568998000460773750433337344143289996480166274324951369165428184711049843903240785487221204401222543521994265442182723052253301989725298655769192214645858307093716448725399817608852441447312445664959730877547961654120180711758381808180546232392248360954558296547100247182536932430730784098513911639892269965037623080123658649513566645497525744894820458990113293157204646635838856095139939526438094789671942362729068634309607511035723705081330258481571308475226289502574667094998511349303266145455925079263812712020470881167408112491134485801646274872577492185366614483719068451616573948740698182673317370696492644108752282546601864382442829039982545047961311157397050246948427219883670900398404938581330817693561814787718068154146900148535775749753517146668724011373789476406905643365340304121400819473034874887697955703699904835865376524405592861168777502321789736676738566334538825190606362087350154117217626592854005446973482773892643994918765647878492989229029435792369111748335652334521016899397837637247269563003578106579569891845202379984407305241915120733988057281803846898070069014975052434344938628632528409658329594008176838924871942543989150302884328623811897706586616281326582995099676825673624741556871730665254819270445685074850865561205046126224443297431475335225553873602731414751343439952574571616010454386845925061805724675397384645263588075376356822429445138551545880740616609009209268014854009016266566486249121019278522093062109405712504942902026301413388541822509432506299858475701003707458943482240820599692015277389468909463334892257789563963639910551499248550553068940946487324129662932459250141099777788638807904213314912022244821198001966930370166344111635742833210814049989514001611907792532953894417681265306787036446308204098106414460261191342186605906117307330351860508740918043897212498989735829246935031951833952787002097085748914064024148902834257116403554178098567443106260420855987801653391398258047922762133536083867841819683161491547809042380235182209767342273749063129772071088467624069860694808822996568159437363358067999037165188203853521583840086055397880744092864870032292370666023645449832145282497202339234414001438927456610500570761310144533912711521470271825560877759775116200058550910446569503949859012964663913122613676266194482893038961347493559980899330604823510140553608185648339022925561318531432462754704563092406667155455752153419559426455569997116574495717557117362920834856636092490585816577168335429959197448972330972645391130753575739624841173273474229762400142041917556448746732872733075052474314828564870669812013956135684897832304664917329093379081144650401842738401196399199761433703006901222956449651319608779804191771218012076904334156522947633841242621522897120988677859866261831618583065123336257765520181874809275979676181269887681389922973297005435115809955065773370140750667329419326527319694125689219145327280848294563356563708897758983415588006256851032666767300864374257062850751285409584622459185865749285167583651684052585276372102589416318172258777598885938034673829778110650035994928233877338646268319697367023774566711270311160108152169281704225092142094128052962691877616656163936243333903228325945652729850477779877121289586230219251171484334494033202644821788925536942849050238588774572495892981248915925599947176354586097130874011476750664325437282394859861844854128035578751652734335687061004671524770601133722625045719752672471157038397579901116011730193232354388227912829203702298065823702739239038973453413729970796936752364705724392207352259037993268842306148035508050944764747278653886571121044380375665113406921039175181916616507329840617363206137944318981158203396169197743158490620584568304044266419451655885547934127447976285535003655964767469557088309023760682703623369177753443561393565068869805481990112648793517550847530702305157078002569898644491933930185749385094244526121156868963035899646445019460554652409594705800713742602875147598289734330895942337427877661432055974847183098929451227122113671922604141686039646282520852304053232975886069897916304370557008096919119816714945343690733094008140799748063861205361568850069062967527240395650607272153360037169855446140903846936096243324151476443758883239056285679387476319837839613648803477006813119677172498469830258416423397361249053714499969416109593644669015291748434479799988477178509825939470108942185640463616430275755956556058817514349950503180690263552499445324504565885754036651249918783670380674540058872187707590807505366156258669787876544633771577531927800114503252901884481983092966080870173426988164164072475653467111566944749424217905245319478988177546072954037068300656532049787307831949098587859263892955281739265127538115550241124387917704102801883297140122880270000495222603193684882884691661130869076959519728615212255775796806194366876424404523162138530626733190391661422283940232514422990021565126470432024859941577090638698900650100269460754652199914004336774468156509009210452711345353969049670733465824635192075186297229737867021540408149499782971070628630204267591118119635234258691979618706848072965695745829336423431405270973714775492203142611076448580692905206005244499094053834844703534005036381762794590733213704709043438500819638057018454613529790275144810790582010023975529114007196319290020825401069346343362630708138439873027018712958165092269900970196210881270820596233971530090536113374988778802182407047817340606932390434051946361968197513038871988428014598673558360979878939757605172564795750016960312437445950413094593189156017097286193725180451432490717660171106134193846295294510090418988958001924584948963846703671741164505742977748625435139352273630576780258271649218434958602703942733005157406127972576220769196123261293210934763323190746119454172422371227499813799095400710018397949146137640882360825213910210513231428366602308583329570999871876826082097753339196729662451542709280708167415481590683768090298070242079473801053452185671670707494620626509598281304249721777070282850784125530026199078110116215915766114456310068238445957346872673378685221174330153484046397642073767142551616276912258378723068318507651596370367567123000941293771440441132442210661276554045863356768474963199465864786409734871654370570345769159749660213874598958057348042903846371787988774784891538174565207103778062558833772182706241018160643205999848093767093601294052618545124866617742309051536659898611889777233988919704285277620668140120762447977053625144301029964517794165562603104763015437657794535390012227961612688433175329273381652720477302351128654251578464485457631549636678874066488726778998684314518823863425430752679130988481253969866317832360718434169323636256256767013563871143610358874120768363572194925428980907555281677080575031498202115083861804726775268878533169916582617175398983025564045268098607839945508365848586718211703036702760880362010821458899052489329728358824164618795914916968007200444425278861768771433501577302314510848794450857923732886927838849364193467243674116787668163756605429116618454517121545244528699169997789481657369116390517280739612189666221260398329962736212508402681392647857038119539330319250981789625463544247481979939810613799893205718576026124244115436059882779060808489229638703166080745870006005131135005724311864887116588042354764686198909747327810835444932221773776555417379550309229649155094506976022630434090623507062992981761486560055323350097332545331790933914056744001887989773969600964685698437794731427312355858668682869921856339829519270592962211873216964118568007559351814415179265066346792643087129274110619984126727998720977424364186991213774098531653437487740252272622102500747917203698248985707916227573265915684637018541008544818314292733668550558422256861018415716713196956818126238068176248338612916248090185586870112109340603231849209075517883187247945621454829595572971385257110432232338979332083066113420902130737414766911209029926776287747584659911240118981447841155110165754336455754259569855813627005461058857589285723805784439216120363685401211947989874559971239595971886626153480404535567923953412532513561021613338270097699883578927187578462538915981862457063713950104040088963156082136493880952055775313240390383381618554159980132344206259258107750108154909502641296020180726497867685332101155712829584430054521635371605859676914148635216967372134955596260251018914568853781635992270623965584835269131068367774294362493692903045694771808176653996539882625227207996690111988093440155557845716549547656356816022054996491305260279806213897181694732361966394721348090133716912876826670648200793064528216573110605613050011166968078404372959356057455462582261364267108745195608102532155560987019547869787370898423389144103192358288145732072920100004707745592681329011759125805233929699928067599110294813707917778410128220096514639095888343872682851707005340230499492036103062252280520726899089576341536526409671764764318977192782842305192845758161347717224345254812615408809596932140965685096832704083831502879660210012175606515736028404307158617076021080804589113950150803612593494498661826336446935385975443870991938777896236609155327038116360715709222962488546470759206084714810839782171927908521960140177249317662490550126847722493811915590637230872936439017308946079053708419033189881773844461899537884798134161596473389003200656368879098356590760885946456219580913197359751483961366362035754919988755371270484430333272426190902112464749011657076171798411970898847616755642025049268515876241744628954938405875942202142818544890009114239147203251031382900063388668602679286354584119233986476533807122279224258565504833289924233262516876919714752477854292903897282751564944209703844578762487648383368364420991595994073853888541771188869639363710579130272290174508139589421189279965014462597749195820823062961696463495832474574855007550738638952221440321864983365059960508890310096040225853241974635206242099721475869956963866711075451357921962681827643816527693016680448983586164104690348418409874134519117434632538075923470798001234807476703462960646288973404757905371302037687408587360538034013406034589838916853245412828410896178134238028688653535750600229032988507277214458072225316269626922546678997740661529956714092992733056248400616160080171688804377800096955491628902129021524249380881088219744057077917997162427054192175906526992642825244076035177237517666930548730847825940348545909222442422468852798887588823655750193504891774106904296000199061647668690779083326177879121966066976055456047182748509560596685079751120811448573632380645446653111739298824385647511593075224003812334925994753782806859136984789865673593168910081123977420564295358336183157142445582744608734121029667000779210593023937106300235187051127024176121978248493155219509728209640833466712943330978313678821118195158066251178481237168068540731819166341853336990455542264617197684131758316528059323850906488145207706189125326896802948512912100838646173312920670792952879786957908623607731330994816905138402456263556523786385607076981670719686194319040905684528474538133100237502567800093922868990383734298245935200672821280007568324283411133180948411531157224133958762486511844433205057337483586717541935792166897614564047561972769624681614404120177377025172261733522884609468469074188851598725210692187272190333066063022397137007852380488913293340657490884547196085095234175554205557573132174653431813384269804660658700583853332739039025937100357626163333178535316794144125712735501491862419989680181931747028363416518819224129388751534854475314974748632206754112431579004377821229319128660749311149954594148143217449081395696410787396113911945804762716726515503999055530224560946703737988362663423378225328405914144181321822497132946693933604767967308483644452615333872103581066280829473434263797723085678797084373350238697593144347473345254981725359039493272296609665844345576503673721895366958810197553799574165944657950520762478240684788625258482694969196686128944627835433021625196020297343707075984348650216161986903101533349375689902462866612216795300765464494736208397457582834692361673445442739921929275508867127106554530892463438876092684718101120428735638635691021557432804192483042149866760554038133249348386551358365438931953152975083137897703851215974116243387726843234479756014553335509813062942184676326281162974887826936849687047958529181076096880344975899319247311877490732681043682117068386339056389539365481604615123434007746232054539014496482170253864116472822176028874871541076426380041320675131720271786397591450120331508400093459102939820487515470039346819877007467742121078048395453677765405158094231641469591089129561336278398677890952940234092589530055178200852491845099541003147646371871410764099975015877322625466771616588836883432070993832664215888861479623608894157497713841088747560617378201243898445207517930577520648209945343375444235870690343997421354432937492101760103929154133137191486175276203841436415706100377666822085769927659851741275457159266296763473500464152077287609730856514188133916774223678733629989840842923984505640120950001388160466751909735298795798425743203735209793611486309367075279076435693492337829108833378803437698286914137753458432952765732322899942599094346768646312160694446088426716748408968184491926991061681029415403184888845104138493613644689405544003551723823800709483177299875610720562510915963172113984973576993407886841512076339960500197202558748864085890437379515710526046007177722721593443918848101775943624083063143598135734347885176120441186745384828901823445290734671545332692897205957756484375583464112328210626858517922895655337453125975067277142059327795745167224297763418755171819526618823081801659292445357171836223661234921226794678942647707117046735853909085049300023596930209515527945047688266420342481899484237563422396953160223769114555131889620046726046729977732392773512419997822079271116702373090158947584388049284450500649920526422939347915879991889626968785785931214071175515558278002941410659147672201290121299723118753105039229109919199674434103037033024232714237112090664698579532246331123228293555048488219808855830692214628697351648639284702257757275063932929544568266833404855433853131501528982260757441330162546878677076128051707362391054283452617665032163213318109478877961522222954750006140929092419659115716006528376502735900665217007928133173512308410100227172684358048063352882409541021845139188557449762070298675961071839307508643521945573122771217677775753603428697361364724674838567397618649221981761102490433062500113848403478203494247023604906080536395193028320830042443731324850430488989275905377956386782272775854041494088198413845501430764664554693357926274152192172879052477759827552372810498618592979515843104393081502235555177553710478729523429584596555926573017891985736471351418745769642176809326562436771998820835819976460182786234574704456462411278786627995806776359550976250248849661685921789994018592600014321952230399237195238328978013814878017341281944704690215946310099977475671412860275645641305060253637101569485952327072108588658332078403137416398531302997367547436990701598961063847987576577772929388887944759683572964483545660566616929188091802823409219487304935129555586091980947834306600444336037512049575574203616888714053578941812292915940256163111198983990359119513033796057437247523458873722884615763278260146363358593167556249594290539697703066610787055477190991606333014606361369161230588926515467583426261196065949780977239380518705645318435556613977333757900515743151021772358011246648411676408706498838481382519152548123484228045416631462851085783271779108173080455719455318309692870803307903428776523001699296197157538059733749842391007064901950326911233709652489862997999431998373971115191365066768368235913489748756391851250587055407851324547563915949257835772053626618652850707261003231442756737314739956035708057018912398952674739192779985668574701353257740974467450768473474818790316660464540348395953434411087634411186895516851042478262311218497769598883548212447480216413456146370930966611989985453098505535234522194017440138370002070628021560755296995852650523874772963080613806989454891302947081455117941358431135089257226479063728793256725701172492828961638478625677891927938310510871076155016321400921442117242426196411629414941774747599848618424137303920073895114650224544836525148279830011384128431253647573537811971865466116767851893554520325658158003762768888919577177495892090862488037044227898209094960898359418623318776053044140837469539441640218979163235449158390159966810307219935172383761326029808593679510842243564881430863145710959159405125148780265539587745955568422491064410017028866351297042609010584103723730977308041472830149885732899164698379356939806584495080073057372442154837005181979524242541551553195602767974447927002388126192624400419969542046935985728899667426644128340565987094460067090330677190845831301904498501150045159712538229876492708817189291668929067997508716899228522488090226170787646041174760959469569568004370435053635696627367229794393551744379466513616674476855151962227296103642488928984813203534924294161946842967077639037252209183584561823431437535235848431733795198526754215837104229690002743347608092506768898541747834102071692236352582262758802042910686915248846434095562445265021608179599349391005232865219074034467333231745181817995198846464829008588987815471851254336510552845965134851962698914578301845055552084601605657261804637508827861887842161944447555463623810164094070116247669504164590715981089101291419514274962139125971506610077748219753466642831608084781197145279421068991292938511058381507613883730230848606232362443431424172129242247264278688759197324267409254494140330116323192740683317701373051000890729534269932563003837181392731171878289038117885158188150868600929330211735820933669331192332316129835253034024472053807758488933220278720876814447573978687777774955216068188656332600466212325844405251732326830090514189440714186728531772661460291423577765695637613186662088568756522815316554885959451561072542152298768804927518195356941866633341492431320996676012680816743651348304920144178273399485200321379057034333085911842749756306959448142562640224636184792240768771419342992173564494957593409996614740461264043442749669533116600438943074142949333707209019468293706206436241251650501609773153038524520583312380368803187505626473113560832601440214006042295731852410851554729667303063538437762532670589278625345286629232607976030984666567064754034813060958031629396445921372456522561038853907524490234800463208556965877934063839507326333098664720717399469435510773389960409099732669590801179391428048114233050349431649757332064909936368752336437068160416599125742671654987972410254543047760970853561637453185457634487451498468721453300959281762448672438791650652910401520407077098062469692334037300672675511063797423932072275764614236755059576499424626823440688514851941274378459653576786400798095490461388699630638694421897175511001393571955464447530744305332874079366028631591390278116126858717849911816308576243752798587471214410397940402236324621171991568444289704154740881490944462021069405271542560448365762114815413364412924967581423141052702786484578285232233221282242863693553010989279424807012409002395427243899471144572976313999309302489470882249123801685881538562785582592192439043563541082424776036059731630172100178767234115368495357788405097580493980911409762706463066584668481663599886138150721625805069228778955942050852157929327315755074370083663927379998315167382777978036198313125901139532399315885205050198192085265894967767856844225780060717245093572823596473874914636504106985743382695894537991334041855164672275242912315748007824503290682086203351549665823264709303515754062227366921609448333225646886716264893704444029214988642044696980312459870005446516318503560591176002219302392819779219639627972777981163682824787873378749307929763189494890117235080020019338469439372083175431806284108090611424794846161729444556979216941958443181645730549182377236068851537402309851106369369497859097228673373104984540490522684759840488252410346936497672282933705322581847236146152546313840146116033911749812140005655240010951790625052245247634608135714306209692470655305675699208335232732738067541302501876770300785310838407219441111118157475425856972542119982547921370472837866000156328588264123875090847656604770735432122415364195621266429697984791677862411439411087078066069076029510524855089780457704015445240298207949779060397059169041907956249509352100587733887136031213852868559319823191467082090880771692394482337421972009753662624302587543431060738787785461565158137861441917639071130871192715253170098657490680295842832123100996156197443424575560383761346630776315493087514937691937312736573298589086493598767451969129210795238224369817057108908123780526679107878715692017208430647451251660118676776438365989807687436623609049029200904109924769867924446260926020147272367174069117880656925578635999793874930172101680258407145757730002402390814048915823348905173631704003363000771081730680179494431384472929224445122157221265084895136108128329559189989369702505861127775638684770987112629717478831820613674256671050552726185427125257905952279234875646970577496679826894425878958654864647590790893265379624678273450172372392523617573118844084499853545006950722864455798873706441244390217502824825235902964608596357026360219284485986927201776735155833183195689856197422921300015116550592146047028530404780583964142582115594128151083621441708452130564431469322487182797473375465582460415195636083091836379971436220892722355839780327606212026431486250388714737534178527304035744079687832342922640588959404041045555050339910260410671716973684449739290722008911167234663082002440177088658279140451957304067205804938687009345614839022688059107221214380147551418044583436052939357506234627552157102394262330788094668497679607247175588552105589282843410616307649076612633410294296132751717449851862624619594094609023899481733872284439161081084404069782265523122179254734308552658521861470698149604429674908978306337671213104554711387912564563853828219550864315883316034709924922038524381304823806102565585484452710208596832759201046672275100152075020797519716838057681734727423359782301183553628099521964386374527302322743264368435386269113747969808290486378339373056255561036484099261461683743594888962575258741090779265137652997173206496531125235020664700379502165896857618812038332417708314998339074511466790462338494733662736931876184023461466476939786328905961112881640550510567219681080935556274401793912085858967284466741509774424963138732060427447103420828982108176312957201244259111355428429995407235354375281389674727835574095704979360933708731659595744250798741602424568907665056917207758769152438531975417879956578772498116846253362855497843879953719078492678307002100708500299136180107462512491177697032921995895437579902099343564246140730747735171291284923540609024672440170918892362998065528941060351435691443489903197619589360919872120593202926262575797928378541459471962467537040810713834545714102991343239583623122718493717142740782399099196408357702522837244306765278721485825079038876208166622966231356692016139758876833763105243615074578293322901361116967821376281613440669980508966921997436190543254451754213425878150171246103051021621410682056173647547474743996415721867054960052233404074841258259499586328686556197417245957942058957766030876912497127884276414715599556065126726965090992332941607937860995369551399177307275482582967692710385207925126353350648520885372560017096132846191590834609330457315113797861056935296924487034636192036257745721692732077776512672675820386175818508630821331940207821034003184334280463579014617995917665574562664061138388167859027799479220546930839930773835280392169109217035765752010933683990002278188944145989437916948885914843672459652271845307145492265308625182663098930279072994910891344442336613857816930283186926654039242275400130475293833939764542739456802747960055272615190831802869031074322698033542673724111964786772489862776494248837587688344027840957805688668081587561900413928197180450109986499975101590892936652524307929451061554802030924967746515667157143408553293473347683235223651803955019399476936278455770882946332029492750033315682895573736208108581863021053455447349049904623871887501526011359993032323881938503439154763769051687474516732763265743911146494626892764219884165660459062874975879772696490535992673277496723807217061934046066704760776211932834628337737443498627289566954716856514584587227286697547671476890308996626201999455293979363174535282665595848138456144507664186968221696856205978693540662150059784939723547791994896640743534464715949820710628073417225620730061966860825184972358199589368412264890691102989980917082791155188517681233768169711302137234289625558302381562480199775615271895659948528274077333020105408905018697895465617375948499486975489955676466568577317476925168860605795030164435584986725927556865203857273993114910013434138923909518709352143363957445719100602116121668052127291226218957768155492335250151853651771298251196766478832162885608241909481299575416903721518352685604499278075295975842740236090971162570838101593929832951766299102875455219707177068022037120428248870198655983984923325284596779329481435965967897403802753788887105294202882290268509872585509036115712881565227220887462157616613346068651451456352223516262903820862819467057694456835779267008040150748830919807741841874809256472938991985446511561209290571627845802648938476097912584606807609785417732914272199309988906539531882208793694556167079549303416334292670052313738906066834057268001804817150133879867458034012118239253466446461631770656615792138181823662445024302223684426615661475203893948289424701352220372679289130339939586439335710282549795392970580620903459895676267585490379918555569431654050645486879422167598665136560596089148912142022182583297891760311729863232089579134669932871709163231119577020960115551731103437828590932393389288505805411565956429845148988911984298717175888013270542050628393835423421805987389401940991842098378267225719617202872236656702252839834085176440588411481108001939859801503507748195421738584332460817998474781654231235330399968738147465115160451918760592857022681586515415852899237473992980896908783531530776978733536993883905974052283427885691149641660668273496573565868845236344641346297683055206099003920507047319686383768007080397968189279470432132015763446110830377433512034842823592521708961241455188330387050831656441652053197373145084429060339433791072625608524635162223515334254570001156666090984076928898896027977630630483701281673324774118162264208585651128701513782008406495327274613610790437320928348539638517500782379072674662772480278879938006476855335695014769527379626219039275040049025825573672728737181042619501529926532907447116918507361629212856137954842048275945456489296840648844093635627600237121426408453001708768716523562373548435496289830788676029977637257668385220920951462697451329246808358264419541444852649542551746339654296029029950868688170194665931452623398053757587775229396782475250378944033532910123292747883192157084413966449349567640383028492465280953297106053676884190378258099432539700019014156841836673333868359643776223111789268650085921258836877587834355121395586657917414109589351090776187663849535381304616414747275745662672333572749094928474824006010945453748122873423920519536018564889148220549964376623664274135174888028738099844469312853249907089121946597262098849602009776400640801995310604356282060494478461489372126491348707630580234375247018761537079762697647613508150860423462802098939943174783543046272989066172962157602173300270780542043198929740211480561037748338001010596480568224974453254199797982102425033829314084754756800797346303262966388356886940263925786390620469527888112868088343510811387595084276383300333738185522312916148490240181008719293964306474074208620806586213208989916306126019588212037680985684414257878032779580306076370900709794639308645662768451953330948797826385290653647339181742532332765813977599688164251316275092422653483109993667853711791026115987403107063395300816000773267278772939427446273268949989974484010549843299967275877511869436687391231702030807075389596651862099203934741616591379232825759158189325717719900128266196244493411329950302555256101721214902382834894131160464487267340715641134933499090814352381622493364490981090691661993039666190429065359905519588021881718060629379486708473034690170781520703198087516143426637858176019912499475610523911461851046565930692693649056720663649798777059250520787192354726077418969639926374195132719065032468219304051883623449756654167925474691697572384190772057010494147437438757796219663636132263674505637685406449971030949022687463726407088608158545895490227510916067309537911229834801946867778499415867836849508103893676253699815916488021273697804300718038619589744691204967092491037887185296895069597859700965591240108875258551678410237093065615250400697187162308159787715191968892292042986572751037381060762073981144130298636126366468240757591665518926154242946216810422539676114016870915222432106308150515394438515728571874898940235901753802634563957135172145600301423988382820815502633408817930109458469016595577548817307651416943529416386699895247555248738233776773349924111795142515508570232589238658353724331466513987879538020964491417085718892770618889352067081990841014979339191208380455763060755942805058335086020043203855847873143120196374839522054376588658559212493918015634966734131762581442836191996647896779365250135833678918860790176867692976861810030483303486233088326441034327414962354088484132745987363873016799782728834872497362970708690213695285172113732752086884416975551063812853206551773203534018475305679827698253165968299736087533035183357091950638758638542069973670637963320269679668691467401431165278152676394686181059720898633950381258697676661139965837906673509532022499863742459186521637031047631101944021298308190995417030815281444697624228842513491314875411828535122846034417343706256345133903322040317787092305749069014917161006551774341211358906364645189017297828754497145796216329262544774224362868461244311039756309774563130210204245246050388189357997949521030564057108246212868472177540169031587203224991195899119204839711344777388760654211329384953135751392157083991449462633201408569150559952869786297430200908292826039659520856373574294620946549562706578018378535530422299457337493884199065732729562965091260285787190336004392810102786663055526401523303144336050867304001215840566445896906707685528678224562644310747903957186108671589457389930896688292379358717217717664778101054131723020256646199731113917577075421805467260531106361723522708903128925242652327330493368063897126348794755100782824607574254271453881736032641423524294729296990510034844800448951504566462392352766469754131293022898880997411201991837643717216329279914433260795924648744393710320893161671798939522825742597594486382490799985055329654487504926752551270569478697781435975019844867848251104601314664255184205622388021886342638969771782007049609535942471848213903481706811575043644793390254093421599920275347497882707809793202155780967434706826252841219322117727487283689890180540816087883306651793388374302705949399785550686452938557707878152377719063726866829480428967146262414706546425543296990245230242463302214239206591697491390110664289139521891555391734910361468023503005895471891610462419242103592422627264165398681374955644045860595385855964938216091909681337164712732559262639098835399195493745556757221953997510614164836611078397601204658470918539522548164077412011224635773936992052240561312499884730397317445778406805293959461682698013934272911414166734628519892109143864357895915059449155118004919570060941027791886036830789019595989185656924569957641337741051026572804869941686906306761066360586507465055132426814450287873128372449922663998660974426890362707048444296360540061035229296766479017087397019913640000817469412157860057411791329372673682491900469093482415765831031614169955207482196131933134444016107242865095453565103540452551417388121170413429531614871252697724591022212569432517639511420272274537130356228509328700873088280885869003035484336363785801593586651675253262960203413299264892411149046617045209346442518841011119103053089947192396041698613749992515480507167297759159513410330249451029042665901597065793105360867508859475724435205998181085806433691701779933582741094298197110643283259732429343328176785732819665946165002454459048510240772777655162833701943794272197350368226938807298430951802919891446506077208155238881743043412404582370287978924465355642690810271986956292153544686927706721446121398993397050562276937404602585686261160228386162118077430565746212623043113872135402620908689072294269785488387794101533619853103752542889133809909177570089927438190958257701038999966900680594715270674000070736901835953618873078938185029194756211976745813854851087582541024186948954906461833571741757521278890874793735855214210848913278344411364963598020594959969707504833922454101546451056246100501878486288424443451546751878816693250901868982692599514752097442436470909002462385808289014757162930691214769456527681529198232942518067498309824549693169941746696461840446677622851205660703294811204045469413857151082868012267224033954584178308284059429501728135259214456958362515271537251748332651229189827840058995771786154367400805060686061933839479184414051029589962856155979226105185254211412401280250072309744826679277386871289520943453435418735969663003502485962680866248191367908057914133437757575230592406667029106270833346379888602497287665884046506564578472278210095037534120168527807868406478884025593641371191496164422102003615544067619909294405021398126023940158512483288291235451975804717235602030391581027868617913648179525186286607413444511866675627866213084932122417653318906958097205358892389817774303860499237399231836807424693870564809886628731605020640566035555973745835954563945844435496677066286962686787346411535920912894566269302763870120432871179495922016124923150258875380765465916843927834582397773493071944539413120400926055320842854512824633827755431823292810265307114030626463602884550677511128932237029291219558617973956060924558504573540928324792105203439153488401036626841711554519778481889145309594256080552406427906326600323091328190869883805057518529271561121306982121909723470612628511444811858046214189993266179411823204833120412456589690441632696597280590160982014745574081196140624123568558505293450346428623210672575328150399071949812142345029740441884985094314020063627836493494035840090984193141871522607748293046903293634195764082580122402024173208528809108090081991354018442379936035841934647684228331995513050208561709835088476517873672380485653611949436285698060587106580999642072832138275630084170508642554405341606232783641303418994249184983469981373450252276915914412519616400359190347941352438613631016743042270522678882554034570256775503567321619464784156153286450864174901619314467243807764459906828272992498586043189347817353529292942030261443251417238750950777023678984779168233825059584874961709194309725745310731412243115487639736079026619922899059806710132902545952017434221982335982709294906062699393329863120596235908128988339690321296326593922503662619308907489825108716024462256935315008668218783204985074608572826202436557916970337386529159181680968969132717028802748973183584759860297241266591750587521039793538184645831720149772062076231235870534191408491326210740780260842699223613064282842403772186592764528783415066791785928557423076246320607480408573579158516256895418971358330748138684647385390383685547915053994403946804135098693808797797749596497907766892141860234760513806492609758218428697153988817049014444459634874282281609156566150270090727166794787987623970775414886297842746883261584582223138125033007027602890044600512380068258451945103291399455227017552719699814653016069914214975175885997319488082384588611364525431347526222195157023429286228611442933984706323285315629638193876503558090402492148705318065088479655770880574640909875793957063607894037447175048661423678912744321892799984787444582512985525254086978803948819454058888901501168777853504824958585411631092920234472340553020121594221970339514008451480158700382489826484146527850300152100995847064673435285039482439244743471347807178623028822307043457195837067046970896564392399958719607068823494372544701079926160124404890722138055616055806800974762908321112976629142437609483967375259052732846859610516977088822409539746084112412701852182022163492593589831238873843439436564002309183916957759611159780672558367184751312683270721723938611396171938478219211272188557218826889109604446203411317991635961070691374750084310954086592971116660320204687265525546508460859860632255046655912318405979354577744416762632437578038538087865177277955738123037630242961961723119993919149227271143815128380664011819231088175327234172588713979431340295355716901559533065373958858305572851762688748868228668038625184834427666817626704198809816664899967345902188741438564431635155651281156416853619422717161813003464728877068562918384506019277572611373743429925988558624624104714182335692379505171338314385551076156163304056841219044429458395216014862863562554479635791826099723593473587489704513120628292892398509925451944076826279183519635504798985722576785323068714886712547448305923961817880157484221671359204200407553657486695419186822719349534708346869759650001175626982821014181255873849779456259279812881495749907191539755006721582992228336760736638211139661518807131250641990317886360280839570923921214758073191719450959748146420529550379044930268126551476263387378431715962746081090596620007120846252350116358836601490006748813984515186334881788538786416308165558777663828610250467721155771566578085591975605169956782165190275519545982614815304409924398617512524263669029194431610598616201065839248482190342738095210209117353269609090694633263425307427462484274407378034081123635171893471755814745149858894640369342390694870453871955849216191738244524507878857063789978429340794887155601412641721556141301979964540120575977619654108799006555754130252160361163472891589871137101800426132250698048349589778799687106385244990477022471087632930919746578944335471599818166431102659255908084704800484074240972077311815754463218835783161470601310074876969816948217575367515575087922377411958212293337732766047272038475900658903277235991273520858432746737892001705721412981232958353370147887375607947128689196806145243045032905793434833942915119185798954948155657245769112646774658781457460366791424901690843729372119545807097917934848693549701590301495607631752126837699831810141453433046996296180643163557141234473716862177682513534724333213607773144537805098813659075257008228095334809757353245384155877531665598298437205740516572792639884467288208508498842251143679818694456102120944174957687569846320154159915952123191598195828973893399774557267064049723311038567602846025829498177868700178733933877120300596211379030980427628251333308022335365748491670357492099689999500574955834151769666507839119175951594404711205757013154921702215006071481646978354782468678220724637302736541667265951185785394549054614035105121597886015449326631198885656227273765596387676431623312909399707704497524892401712255588435127435167837787008162507661068845768825843236621305988335244604838929115021752546345645719426511921119483450347927278494281955534483304636711181128406036716070024221736130383697816726006261870167416930444335131748157665751285084775998698284047108779967087636042512282856755987498953146000278343763032930549434936093693021538158567088687171675917081448882101893386966949083638265033180657668961108495187535869652744630116686776181082332305321479452900522618538185092976149440476998855987280924056684110595385512561271287341729300861508102787350179252693246373973949559073832815338501777366413466617408026008557492355920207061827275413512571711452789184036668223694866937185631185090665513947678703573814130045115054795689923176964278455038184009885091374263257614582428930690990412214394000203634894154160981700949776538594221340222854023402625920642057054428613759367499776826118533645711321177071834875256651691376114347293993215966620679851994668007067275457757826650724822748631293426578949399196379850005140633893712906013742128099343480585927220035775821611933309996688617862810454423939685508880732258421234817326524448200533986714678525845329717779118550031502067061914884181262643792440210127423097437169003403500408008342405990321133436027304382399677529859776062582635978984559305768335132256983073173650242621883195553167897930896681176498232567073813438465093908696916291745412409152049704678967649177858446787598360849795128553365931867193552168695280015016752765045941437365939926308616277872489930560787986555751595796241559013995054064554482978616179922875434242037725252268471040957331776791742885697114544850580659038747120731750522988321963212029726860679648423819786005931147747864358249785388305996845735455526676995389185101091014209010786405510910219071147223933055146976142786501661350997021955815783354828022782999163835563193294303434472954094264358022188076278163056888582583916027767890031272403377523732182577785742165914954859880446106782350076704334351532675370171550328855926979975294571060838198010265796605443267211679134810675150635474701633359352743214691538382825018860763528809372494626021678626077554517428226915743236062184720128060910918324416233414065591033622318004037992799605823003931671633746979494601920085905493619934633226389484576234913346874218224723059380111266171504956050553114415719517295251279015282017247873516635019693153319976136987324984208112181192610669854942887738764181115811148401015795231420160276897020277143094511845438807492375630347835136046198729623358181022824311285318300755828433499506441744168948981724360811093624089092482545444312571663767338617978906501647015805272141739793670860193391143958182411349151002014608819775886652728180522675025973389669433803245914992959254666242586615689187529654355586394881685136792374064260431510051980911055123484123152776343782126813908503129532552621980775088018567373404232842816005410762868935566107767056211372435930726969513193294289251971181738269554042100187342029340059522151400348423745467075218895882121705937155562595049130019840287328719043298186605772173565376102125263233746334298682419450181191669453308997977582218886192195681462298534655341087506646217296378281920198383948146939337629789362225853524812349198135988319661811680639978142622261207384545533155157891631111209360151289686465867966647416535764990568827416355501925502790754572337652626216724202799108684573614667661215112044556371304803508844900663470081660419406234237726419597383423294135371779441127059956263240303819875667792271136182502138547714731112601773528109465997014229188841494972581419906756406459902136919960187273365083344641013110857874002809345336285557450993378052999787564729951389479138737474120796435769152785776449302780309394897088125239567867806846418854641039713697319281062958024527473611422446052373844831933932176500224867851697034067119026547294233971906681316665442069472181618167791284806953766703769503396171218435751800786751924577593076981032960120213803730734135550237520502506777272492748733044114692941557088145352154331230654653901015178605284325840296841085616316460246789253346966539113123298339110824940463864528232058356486956878152296157185869085845956395866059482928239324389976554902098629770693035025250178822890192362213671861847388045778522236901275076930228140637333272573354167047638045639760878000418837064487762171951386994649148137812123442535215369363544350007342988010494795002308150451827494493643349049852965121525028869410513426351656735925432314602944238129189398337038094821107640925056212453832611015760542032344118469243497196432334266087692623930972277289404734591505848343268720916555227884998427789213473089220533222035471206346436748347559441644062921261703932213272429944915392179587319617820715362814618331876898417825105651197371412229949860699238947080704171950625293705032380403919830122235885478221798278395325174122231854276610505986623986753118530001371722051297542341127227150048519134468296094030209357680364885380826476736112684152014735271096377433164675130022385996575362576797433636000196799202197868026282724566005678580161362632753294897617325416695788438155503510889921494165689599715497752407271028602454040028501937758918512874101627957954564743536755420319506895678724055691257390905777612147829388866003548460852496744521802404949131223838245819012087951534219457304224707962215531785368504614744527089220799349879412144309724525804521775772908048640681005482173239809631098830523119617350400455641759518254574926919487815622167180405066566045568352118449809660711428300386137455646292079048714553907519617870542168218433555921188132146365810762696268541558218182628633697347996523187858005959969120064905954183474796961910981816410929650028090517460514519479924774152434249187976664587796575091948606085459658841080244503672644917500220606504493570802563500830736245636495108006739443920254687275510055119273213277487630360236730447911916462374651299434579587227383262311020099723100498948738602592745595692494528515848014319003685672459171141115174097747888791011402295033735893358986272522563897412332256092179811628162097186477000926348548398330686320789542041721144940053292422571281117891757933525549117535016791333093350437293411706367493627038263903146429707862780823388217261702996699654926823030447016701623364548765605045851546280301247022720342020055961498223551221687458384532989677147252313241591797898531278990660776926675017128823247739396380199960893666072959419306033983304952992500850165645439528078592638658223764458067836942800792882618633377553522004501997349560217933300052074101582187514739503441569041738958938265177903779683768553724681853450647895594161003877540618816879121165822751296515463689837488727776130854402627391749850990392785164860364093813978949099741283462050213542666334952816495193698853854561960114200487066679523338800494458378715997630929514457017305212875826876131453812052515399878158201137595319071183687275432348071595724791443966913656497035287774132883715165025639422404923258358032774798458395424391534507358143154122520726966825603430454206051523473821612348524223711018164218953998025705242748938344537251092029936329617737863090666209475321896050129957871294654349548561399123890134682548846548050503203765383541733841594575175396857702728982984130748793921568886616833277667449489365288109634872242935438747918544727915374145397547972089268056101132220704557210414538796353998526737425841955576253209352707545664078960121276955478340546189338043005147340100451656133069312779192517465904526148198067789418055378169480723435987574763720434891823971437594690371302577587865214780588036318698858795551504360164721532599019516972075708920859512208403857140228652333290289863621940034780113471141980852255917627018617210596314279458829077534896770839940198603840482304257868992447784589936476929776657216569778694375719179969922390037772869801357289060819855126242385311259658659873016251156739444409838919075808624380847211470058876971355123343378423790847416672392592653773898810002504023915081028464716747820951074449284960750838462146000202859446796824445026686829783975275845186956900642086464482644430831470797030870552726257187241156819303502658810884861676123260167510398511659318545667386216640956041463164345599810106381309328493293977780010013897468470140647786125545361534651919748947162800488048620738699273997614076187953307591646800276076479421660645698449997571539713703958712539417275916234787770197390963501394358391422578429658990769554284687704002720005460095770499180794468212682023829261339276871082619778590620489419091699679929656766431737991129966295917419818170255009359521586539311333975732149652690308193349288696309402804068250840467959676561395334807650396427239205433725737434315167730520035261615197298247672626548123660401246993847203758848473254114305736982064028313067639460952555696493850674113279888778712174194165497167591810315733882153450579292819762763028341150555114521096692605772802047720062806994904173498671685552614645626001748523741676100977902023606973677821705041221798655625593104485825584608549297099556454415085741663383453208458319330591511735212943924460607598184703823987904206505556067987400742754857639204716506921912982394594427441963676337723618951646587527919046619287879892364300606976224538215515018731189122069886555042380794978841085092813601886222686572383140993223050491400286981403990239873735554962516523263401066119038790630083955555289659660980977495247239226463378261396475887563063289492237907286060595966995081856149763522992067495021746095617220255818626855356905374015817518177174095793317836944583210147176609640926724592340392136253349127714435481200961535181356482147091318568016120738282163450840424656040985814266707263840686057434039711709883935123521994227524732888742577698672910526512158711173532369009654889393101507995935150188826854624656867494504162385546208620779613667616315965539080077875005429497181221128363088735877563696901041302266187640968005805619659903774342101578674414153394229762714026125149747699347691035716199945481516395357174067940960215245914966361333298054764963539381441765855229980249505558558172093838431407003477821254371564535703039969704119540130117692184252937140517424172239447312691543375068570867086892613460840695794071101056388155595677955424861956223459713593971131352171877453871267674292858925188850203039420141234439994480102566743717469830540446174971144889660109518522188768463393787313593549515587550511964590675562405395847951536790460731648871978448707193834365702079541203653931054726122601089297832951341963679251741027088686598476021298598819665085632074421114418530638699977168690787593402415630498441640930763394530371212730065077621291337106857926009076601490064901352488051464067199758598560737175048184107141337164181576886139339011250757604750156732965738559084052820165888023179120530918763894921297008699058370085777372824677228936201086275798444844410229360050924178831751918570696985367543002551232840661153384757240805242189221238454099315160485507636343322268191140711686511962639278361479057944500848496341839620743186831444628312205298742020777424135265452962997155969055269650745850012702108051111937927213683886960395620589369460157905262342752710312553428142165886420444563616413816392738487934039730427742618393638313027982379345189784870727653817095855870947220858365815568915306129179823966872530132380360027928529938008227383170268959245121199277659443795534125718257204442818889098430697735726710117103706119622636889276756549916320356049066409674307800631627813062945358687457411219887628719265998247947490596883243348487586568145845991332962488329363120184237628976301016576704308016477193983514432997797272237967261627904412314013848066196554669443763239809065307078907199311081732344393166518999436353675321285461983056844991273031454617720954992208958359896194393733708685964731947099360151639850758112922318717212156556154407357421863466503644972473990942707754476062762321567499593584974002478532053147860697884943366532349260744146574265456369476769961277162841850416031696715855661771018593108149347416113627163600160595686071840308293714075103734430085597488164560434194777489655598807205573975820139616055706225038632649921368929922530298773161773130824891929739240367310197031811131483414251601664246077419706412230081832059916467729707429749957436570995403997716555896011011496910855536045333515364120222544598001793807808165411594372801930591417292265459636962191998278503072073711455012439183399038492073507760862621058077090728964050509244479790919083739153324520891366436716974899574414538057398613846097197269099309429096147315927140257283492867518284425901042352884095561986096982842277062598670723823362864154749332633006397287429209302626331110805854131992886160533283069188225269331068357982496480101635233417005358987889798119800915015658808719028580934226304642054317751444553777286140888971259022259939503590899180696742163536515011134223014103673042753140988310387921395943926023599910250837527090523205510218796938309884676658725636698995366629984084837310307247096964827019289715179690198096003533185355128998503057484037180487343616516672252276772579305861222742225445512087452162629734278634619135364393739489228118393762163794501899806929555546297905679650683219869871221574994112259184686225332550037637639334196069032948661739594797911457702949891993967679177754817299797110717783889883698846507517530040651079381055223936751247761676569217759235935980945759054017948167484190796931050787775666167355095181916923010818278378911297847431275694486529892913943954791499031506927143815414516739934953875305931714247514352256404163045168467298483693290330359249506582117867023288804472343896339270877548004685897115764644692125871640779586213129582108424322797646933483305587849233915204109126955576813232856926875115931831536252110069393486301982817820544053560922859777605427430344175157521749516841465995891962506283428322360775932324639238069478614511251965105556447067382307755325072486856380137804056591053218724619548128473851749650245488005724777477483866640881411758388617354679832242977728469403750150511193522457169043073214045499765540927666979038076494119983498335051539119454156822211380567343752507207389774225701702013559777783693439744772255224555262375148612082663682587823536270185338907342388746316188111827301153406430186853238665855754962665197320128030128465593783058234887932630776470158138547739870046008707353916685882794363794564793203537335863226312429633300693709976311445366810412119155264767245008525405657565083332643129011147868951807688821705866479510026899068528822748833763411426329332829257913662635955088673148556563922595272416230122248685877259369816539121956042664140965769575920810562903384095180232781966790338801054605042503264995239833053707166522928249113686310776209680811429727133736367783969454188950637173359188349579325243128376445502410841175734162636053220674611637453756441908920923949477713470556841973066606903220795762439005849129526781512425635240317911665049833466188797553076309510068561576990351334745519616313877578819282292148180079172276653211722836333580903911293902320176245546240818959780936404879824355974808811449791182134630792758363875593048436229384928601453706430624960343356974295156377462912524761491171854518445113272194530874969283304152133844704542434449174970005845880866358435583681054993993255796998143370151339383365065918766803042574938595163236918046327862534880842460070689739429706074270457191610514682806674995953838237251047665270792892465320275015115382825781193833464978746883321996856181353691974817476365657745801506491483743588504367488534511434430527849930541957142437186919482597753527244399686252085295064800385770280751991757721560510692031191740412332541270055906750414618133451177116991342222895651239941032838093927578386157267517157172358925310904640287039998830427859191027795192436042976039514765300107694850186115764874995894528022564027384268828985918332448237533921522850491516576635446719798773183887183719506633518536013648871375901836031522244701636799941323609904411016294741234345409739551527206494971571969515849101228679539667026206048642116334392115766357784864752958870195129542147770124477788696057640092148948458966429095263633560396739156878742035392791130321447053596823609759653528323262059751982418151163023844386479509625562164898983446832474377715982156022463018436672992219510221769963949767155185345357457632455573260778427382634152406670542001901880004837808585146438063790074936411965210938995102051912450758337591269946208437320292595350528311363865475294104779006139798228875933196741671340132585104843167690368200226618372262601153369528134279356151743542154589033198502690755952298384113847274642266658605820629028075154846709576276873463977805598112206236578445524267934824869657089499985483894280497182966145652518712808513002519656037034397208913967790447760591059005539814065652851065979890746197258792149312733055925454359405717486239276912633508257008586816986786234332438779272361564070481170633281362167292762118760607297708359785454792135131056833980762849151456257184894592652045501907232773147938058933012030626558558743788374800198258933198513028235230823899355014386499800598537856088600813882207480814109734539166534211099714912254158805864734019275628721322140841513187464402111885732915313018843310032420632988273917055277192365821308355835685363377787243613743145291602069505589856267219787232573821837688365391294189288457953007224120290114314598368450328698361834201562776249584899912106034578019788940924780550666671047993429172548875323704925389688579011725894437722408569490911090212390527866861423116898949891104837107685724064595920740585599597369384756263853448881857553376203303514420616153273784208450278251141462561751108781024050534752745579645920738503028096870002767922991848084330422486879861042855389193615893507975486167511237017360222980240768789320508527971311842319887885022108188176132345425001713391440022874721502180173768310079206473883579351281750786374552382021424731352100523339570060192353754884649267430618761586640845595958321582769986171820491453125115517803290901859075056354991806183501628523317276335599519990341898121176165986471070532445308716796914860949997983254494957315070430296226807805187344973383001984534061362157676970922738702785221416890620068586635855445158113741436775944584744944268079286221995830845755682426143526508380732877905787235683375855039941518874733136637400504114354851217366424959828964302549129630367862406205816547915579901438235886579392545105637076222586416925387606457808383447779269046629091330696703673865633145916978795366342461201182605305838044996806149265225910764998988482701402989698245767620331645511606805706502095827064808842434296512760716527528868999419162961776013351481989926799794726909130756385305400074292909175530995956041427627166136365038759627623593970695355594288010063323886774911148558860323403304280284688824140067372523005377370960142630862281109900266421742259947319040802824574552112210286602848121031145583337287857346090687649015852054206372143478371299835481738558405196025282235619228824447640135256036708417629388587452512592614562860587179488928186888186193786379320911819562426874235604574501425664424962279549575222070290010506952184561083103164981220860596587741528410378530629079864773884409107272983147061225961133174494497467157029635349841847668663739928005242531862657601758190294876291704236893811139994673592757931597333767172810543235901049488137522119331344731336487244050100182053918004140924479763677079850649666968330701561136392358333662469742497338967897101370768999553370362561862534508861473463161782628113894055770591052601683428990642835422632242027743752840611594466068106727728112067397754323971953056978035502473846261440217399407890539529615001690058991828946605128191159971050270497774927487417166728562959482566425958159535491325844188781041983904382664764426752359115757298802817364453275464454364817187323584266127596253386762702915238924336994205858421200318677336682218703759974623162493015623217543435138975377076058507176271122066448002281974726871893929974853949512331619256746074863045102279474591233914565145378997205553595161011189681933135122985599148845383990696135725006050350522004363186209099515064726897884286118263071044403564433817385824221622221978506558716304648871241015423646797364337891161375928450353041693775384749137463654771870865986956965045619207934310964154655710924048190472428807866397291966989286125850497773957916503845462580313240845441609652408707325599170922049936983887223242559747131345578259000681150384308716338722642835296176858500901447200771647177405081553131108983804576456491102538900711051798621574894037802078995112576719685857214185851189412189074108644035682442209744320312259486454292588801673790826253128235016698105241349884624270500655004383738283291894633215407944684739440227207079994744991373623933235232462651905377163800543470837690643672423378396329097249302128245208109850656116564350726881764432831959350821704388950695419926496493260823469055113737800595075243327580561697171077159126645829015136357240937935365318394170930608983083341634494592241213893594174694950566160339530236493707271139479505917139901031724214293350217371859150879634831072893534681445098042895901555756758035474154256876723778238098950004364862407123690407021517153366417449102216414008713584194419226512917743849178714856098583427480608983517252633232131227721344034532431030080353946271807531965131970688402971504898321747994080200659959422999335585169685859045373543271703961902093223313354279131759923539892578124217252604071610969793855793390351276419450646048372166489725932658607065090250895071136013921533548483156476417965488925596138229800324880985911457327851273084065860928613384551111955033418410390417414960920872424607321885970297488919161010957419999824827897341597042639342150941296933403478428148124382962809746099683364576173357376983192776242136779768932032692839789756321004855914876892982507873805841466716551925465471095817284941996528308503776254500061463853905717288405950141712113510252369606337510003092722828544013937534634467912347919236939592415974134504196530162327150395867819216009313087624965552877881703464408090795240562447860869413698098016699852207714649476719750020710073337614127505058872498704148501810351310881390691754899752373708738670674709217038540076230527036172561293472015522173534920237907199360255293408482012184876576696433675934746933621441183700813937161486132278441674269343062794898059561439192837054419113053720534173337577524138887549654518852448625118161425573331485380105556559583283154768294106917124926806933144573361266154745257157853249360465614781565115192548544382859862780165544753819565587170911577386294761541015916868516306189782691935743905898676102659081877208917788147131072799795787445862332742015811752985436236687938539124008419535613826184909291456763940227367987409479331843508667182607520326329130504247414740672032747593479250869325837302000284730221819071165826833620182406325012097584580114879154683117534916281671161955570101535296974505323985245717333253998380176497080360622794052707313694269389230169477898499977778934586910443158763935879358762334046094059577445556616036441290408490706932124084858977944215084537403933483410482885915405532962284049828313328954839891028426687841843521370529048917931353763440284679406929656334856484310260029532765926931804283414468866259228537930645923657339901694466032670542163070894056612664636227501443009324863655361720989336764809027255918729616144501540474647835989576649526053695834327845190802549579039207335579571493880176600374635636072849869643410538097384825750570439671720007306180797777698150036249164690579214978114607638291319658820579937081374090627895109990037514660017219092023853730462565541507851899259426955834133280540639919627284663511891990162339953834128540827206761910799320780851259396562914805861867145793752933557068076221400170434071533079237368682290149685805224751570073326845260599068144590529930187064917728160475600272945596536742531341145598851585123273913867190513954387275222065360224272478758837242926838273536113028444974781562349297125730696020065458723720499866262514867630746778040038850894525430379684271418665934383063011021994363759716574963975704303877796307079185545637180845048345756620784606926726415177616121949879783375773721895093468307975330859360123698987094459663745061801386325340594766608182612720544491108788229084513556472375925568448374271504045556441400599728158617542871511750351225039263971048556189832943446356601060690207759899152721459866758143810295275284416070178170234516944992995080256429402340883071626660307009770949167893880599890240894150800411714388996560414889922062434437599855357021842234246812491920897991021757755733699885429706792812983586407209570144761799829625899352534737394645081634807231584706382659933494704072840415148397345132106302695682253269026385488688750032959417741129097192254540428646985824307723854011355501904368886699902012080105842161529380723753477847151245996382844418502893668662603748460976661007398755161086102478675285697724542654554281762119819223771925264975202034410659053767437207130159350277910028287069646863703545599443179880385635638215351035116121687533739508528151754988330379047217964072058389220361864829744221586195428078976858690599102290563438834353701874518926265869205221881600552154636316087703379939904251662087092623761447713407961550421570038616600518209140651730780779950545084559696403719739709710748925438739110262554266289153613716085466681890353306299260434037743060009202818704154662557063733786686256743221754430595008891496759048331168416160615889670364154267402678731828784640807119058970664678454884726488870948033795486564039947265509492117237177445633259708540212198338772506746532750229398748986974424346976864383602016560951286160919206958235328573068465070115102461682933801336029695581863613930748939682649577795950345772093144692099255569062964441586560182913958860537593874941165139174097354055692777457744146069028605799541086692000218445493204151228582959757008739504631263878091780511404872503897983675371623248462359818855550090784640285689243050653125068191724127484053864753147023005285499204210810523362615699285998826173641581390316947465836916451809816886828499929660311469530218530525846458042996310273342255325198708495953003714068293207896104966977132355307821304857279633292400774839871366438174311737542190567238795230606835050071326753952960501671435952648474966432626784597607599022123122762473803653428663967733701889563002744313194781134287041926642672989947983370619311186397933442959200765623699916438570911138557707772089958006931817752847431547735305072367591363860180210776679693970284082296172044003183574867624345982120322664642440597194683953537621030814226180725803323561686954458261326170468068256163148363391658312654996514318401413207220492412711209087759349334828340296774709249318440537850818131241794321637799627235781660531261422831918625472190468544059469974821583502082788625459183895797470158016166686962208718435451320566717411794598854765756878503778272461889322963520275787917235147044845571300144754256177482540390977773219891453888917275829039224759438040685134124931229219615045231705761611153633463756510454316226660839701075870013250048240418984310437331339516208377809397633493092226484257776383711162205382657484519259132360729274177986591572617979341726034808700223398450255018666873017756496536150343557246908760410372787169254996051381430393262958871154496260513924866784103860536508920881600164343466523098853339531504313701884664749745366854438431578837660382101035105011118778637627454537732103022717928804699164893668316113804133558307958304639541906430702377310897546933363272796112205800979645976831826426302309190323357535490797057731902770558913871680205578888390820421142662420426132303512303955111373196362984585243017852576597752340829877944770396847542881378053416157852424288647232740153671539159793124590234325395263238282385823778560494993451143779159410680191137042732109809496098604166138884885139238138896825770201250440946531435467673744003019858063301678568705873672235224147305830551349847008628163832877799164518436798742482982789205383662807907391773910624988180083350591644326620447326178576476304443871377104666714750979991365875986272941021828961457503611744605799321699335239494908368867616661159965665964511436294984461463834299563097636994439065538495141890267420972950206049219774974015718849009462084692856436650961743309416316624752379799664661059525133348973620225443446374087469531997128979389308395954141054347388796997199473950657250940220550506013577623751785758811146997019614281594360052698260865583209651551295076437377152977441928370663032103266794849923552762180059232170719865404006739014710077032574026207662298633508406588658681111989377959594431738095146637644082723252960590633258602996419424485211725667905115278915899178404915589058588574265541103775801165239771901352411469035538100333265103352852390838251151393032745353178737318805370093595992474458349009158971122866849282556933206829379465252392097814619333932359908558152767695456679452520307708784651859619260228879737410153862199263543255984913951660788443348404082487545143868683159907292375601971742423670413927536508137731018601215998286245480072384226335786560655020146195232746712649180697036177209728700653950718491179690687625548660741959502642784803535506018246626293227472492193686263111576070517821721186951132437794642974649513000887445555731728312243589188320509696546239073426687135489086042576685056350465340964057769356141915265907715185591985144154632191378397266530774879538770635358635750539904737867157810134210905766009552287864029178590638158508782784474778717261087576107374155036436282421681359808364624580180758332652838106813015251968317269689058351020552339518053148340105968427769197171365163991369076476672839045692088851105600053331299603612133713187016350517274359592722918685056950551537604023889851990810154061991745487276187209239604955416717692402482311165506925729677939327066279642070096058835151858478546902316881372999121037897735666426128515604087032496968859199890718115352708525008439019006557327140344934861711312896771436808964749751447509197000421965146579001401817364436136185008297914768229065963146628437820288324980757654959306688306488257720673607221146708481356229029562450574079631094462365158290800139799431522834505090517294868978055518699726009651116680250522871479682480425505976204595641312479859253014739797465068415888776417706905093164490948564548793474940067291765677035860112523723102656591396506118575812765479534946772439833658223680142538893767566688977752151396137063155039462569195497287379876841692421555316983071651879976250311655636389352215956320869227784476341830276343105398017166649547872034090242295049295820971668479376018472700202999854634632456649796839576505027186570981809305656446290500641034488821744203149432310986678588187728080358053612541449324198412225713118249273357246186916403753853013721205037268599529145116162795887444294906729926225092228471384164524992763828854500246338579725730257948987749468754419837144294081367284803595093741683457006303906053372759607747169681760394294145621405865511460034078281248620207478388880731265967788270222830565930563034399597594564678699418834422062099423921958110169816372702496149179025346692009822262592903485523769009482342070456412351178487329891921688477170226492675427933646989140841227571286395750730087490206429899623149128989726671397707101720901029756960015879180432505595670721238491891391094393964118381169922352264370562840717871245432905523433515557101846494779257005479227226483079814137267283262289788357949761336032674188110651922644942646930213462085659179365384918137854334349608102123837963679848420365970532843560864145780163673406577701854447425103386595293569505066379311757256275781616078915671194121724490992283254516905808063143750880682960279258765602678408560235142136025117056039179232957040883252555658757388188500165012111089058504592269800511021266463117163904081437217845928335469048384069300236346162443209054131855380467559096849196756905306362400356280084248846104324896277163879367123677389718455990814237288893678002656947381666862265031239345477487733631660481747214390945299502041324451049142732793630419692289075187689929651700092212427474674258748111058441480739541745415916799143355203283881537290255590390996101066091467048755672306557720158518379306240418926783982482974949711368566346422057769632766829536196068150718378360691242931696198416349034869400145471530243019256407167711715560072117028138463060583242141889171170419250317929743216687814797469767268799699079901159561039503657483348954368974046069072957192441165415087091955239420064452547533359547516358337166906272385355827607189829754959150097532304539177837616496533233776943750591053127508544403265520162626263564841813710080595355927133745689557853486716589684254597838128529311264063194031205660143991473415747734213248093418390455477065472010561790556803808146591567857003472379643062703905158172621781510120708704729019379742425654490004528858910303263031700095412826582958199639934445066579319964738417291476779076475933451010060659491854569759003916889527254374768062980001820402835322213130377144720219118363989891891932484641542154681951497749113127712127073757920847676468954516166532543556779138491529691744225724438066153041634143259189282855760565391309370427858064037123750665117381444732524289627243027700862753289659629023703194706671103745366675162622738406905664536883660624016660264593755345127787463260753536199249899129904403829014651721334355310616463473073457400408384199926823451564644304813276396350244723480230557417544029046260662359573738844449262939309285743059223203624354981223056786336825170987551717123675607840207572749170350954729237164189194151978737842796787249152427430573427426894154194216310058894882405144911833003971860645955614012283329508397072555610835638817635196015540313879770916700357049454208251794385898898777276714185086596399761729060445456802467383824591438793366834963457154646886832756692583192139015372909842595632496872921525690019488140671548274785832668176646911522760764428239015853411107057676749912961875423819194747318657797486314237233914083925831191347258917346485185670995827192442377743534809555126088421214204688383534422717375616534238792048466631872639062574718122145670675926511519234970311132711643990478893351194332340519273742331714000282356902918204224219776695469506556238262352568632648951523638735949971543269919389911607270117080017075138512605472895772939458506412033501008690459698177165031066992532194506714151287882373115589190145295638270496326728566452564593479256764975186590815821371224611590477599868221320992258819702213605035977279346820204232778103299964046425126950170372333780156925787008550995385695995500788002406694383478277498801934053189400101328837906134134225548672985928079119169486514973217345995409994717338816112051621219260283135934419260850091145450653707207698312946307499114137653406660564568678936084370806338124736937679922008639314651662925430988214548506299234427198020504992638094486238726536010631056758481004589846319142612542506261036414265286476372045838016673004512000784972904427382086396036293468452957779845555992729672376963378639896739805421880985123884855103826557701977851125634555876329660556827196836629850586476983813667524960527601280317350656879802202197059468059183065626871452680178987020171333107450843267889909663083340340265700468224720383981401295990036544630856858846823280039225860153543575835653522884767200772522632663571188031603872745041160794994642136215673264462349410750612892322886781723788105607557113056339549426514594919481881591484151644179277080490237457694306926124565765390271695776142727106319609962496190861671329556114344958730505365721493124995371351926698434806637989958630020835219804115923145438699667073083664490998523155453646871353152659439399565816520130549644330092402050220616559417980701290859925600589847286708083927817865490621382223814309561446839621085340310667805840939489982108536971873449226932978746687852067476022009398761159154260147021319156987095502582646208095177783126587244547595147764486154493611685814592339233530523091849164090291168524802241595021740916079673286438062686706988991576801101996867785246950614646430237458663950179170000006787481058566157029741146593400081042940582019141059071979680509292136043665566944073118675344822099972933750457276536188698867370215976488592988050274871121962787382631855139989184616055647754758104837163731486813327826236679478589523122128998065590192052096654568268482494163554591648179395085116194354131732455967083066174574234221769695120681585324188376368922747261025828642016773609398270286007043946387376689025260967067396441379009394736926969549233434102649077044588611574489635499465474040618045954726364640668455063537513852818152806208922440777846238348283077031250770764531027477429701219704667919667665591189070885096127252598801708605096697896458784958821965985929202800180076111453465247901165321905591920504488759788911010152523906179874030191520480166613442723785734844744272280056983702764704087969135328575825896846113915737539355947020885993858589316508218697776091552305973269899192538919709894395317310497289070088348792689521182149399708506584337790920602520578552456089453794322903638647018496843713197561513854511438269069388838505329170139165167508440793699520733807869046769890911332708493197822698704846400122152514554209458223442042059040312885044827348061392729582770057978845537374789552554833811080410939917045274654709856919153879970097848907389148590273273788572587431499943183775324228859365983348773581896942364028823067250977652079733800562127941466815682943855901509293918731508188694158222684954536743878939288401915003243551831345109486943545639974496735268814803452499911045690601089641909421562280331570973126042098797147885548718130060665717860749892465308892454549874826989985378571782623261995396079120116092682624331138608577986037764687711221007462213556699376590785937503114195377048658749892729202921592444206058882028314069034826950304865633412223656861608794706876911608833387142553974798846252366684636034537263847148984662151659085657648023389509038876403421208875171672171926247595116064496995903621974210290673323576845978570780435744699430578106822988437261086512285082262596664245481280809701254139416339268097734063092054272479994997357826546603428864943304288484152635303559004551346808486045947882230416295008216058469474034623100575964974174476147508197957186828001080689393318609178814631021059321815415695641012611943061806156940137506826836760926060049049687468791661631775239145934414073040056274182712962524690435836345204958304641548485306795284170198162049819912530419801792186772120113281256843203263807087089610605621026062513437642225418931813689162176820154869612178577661111822052785161549739739589938782453593705554514618922590153578263225157581169851202815794748006126614533772364342068937358625098077269262809433035204620619423267207496051998784281479287370877976209234617139338097440992106430383339500111544588817152935967354829325127674045265276631193320449653273540324395396326636842451302266340547269656002982431929039828673274908834579590209477898041540837091258214560262061967090253002387207461818228303674934152209601546426261003524494909331215681429049838631331986353267093715607552121472774979508427445524599485113948949975441029802699749135160093504247600110863395893370020202962221545756959671056502670451332195161330122753951670316672722647834300839093087827206547408373358513606031741888552300907478996764356263595411826849186606574557375312292358840618332465223758654878662864574240956893569502407246822842561934303511548853764801457830347150965223091714551733956630962173260144743294039480337449547684506876168931497492108948702131928105222091748258305481288088303161102330205531614814796793097954032767288664557241365757952744670212217264194858418177873701548612115862294790090931142663373021599283181848602775329975667288620523873759346482276138448588867246212006156322388987854514305776374631330506799214028781538728936895348613058904464959635877399011629657886084355305882956245924644739501668755287926622516770666489394157071866440077723579576907423704947605583451361276440056133472219094028302510335495979216978578554712527243643749193568886849190749367855013787373240151868173208045456713832200879334335452495400839138068627051390814690553917902159743791388464945334627272754119783965580722332591449688167605112302820550580539194320948129899906452952823444761061053517902515218053694313272906678425568200251168044749267505595891796461135765764369936667814596688362816428898096956557497265389205290635872182211423047396977438793430637237806814032330893555614059773491063549384863981902165476662423246843600524424895027545880322430619720369313514470461170914915254198966032077209082585591057010512770282248440886539060030473734109290351749907389491964111957110348126868706132397427527965241329381061744952680286082990553721979410985019952427971601043876155690554116758087813505161705616568074961743728458766012366930995816890641172628891127497947181674431881006125265774161097620262764005543356012951128010559217797530882062599956826891218649712923078013769046167510630616030287082766954594562941074582395739772280832527130837443487014830497338723579247273393325441145462169734644102674573106568434739972190164649924411211978552757784222783707052592232104796808609488860335211674381614940154485985342144486053897045295785930417529894764236517994906139748359317687184507144408555608576471435632893182889444555959052208253687751258234515182761111799809730331990654035580788627080194731865271814638804144809255387612082169310843101259795739523316544733194305232222182004632544583831339823601402934088915931820821446321359122773620220549700691560589851363473823311597792120023844407621046676945944102480437641302024190443536463801278255758473803421993836764717875753832882136263742925314934457925335533272435303300174679750547825903442200856948861254196867459070166135527263835132069371182652397093004725935488583633879807916613271146961166937473992172325402435619791366505914016943179962686669522977658667756943403481195074728381463824014341784751496821402436237019297170499334443827717076294342191142163717251910894959590633820431741425276202299436856155118262952688474241986524154340776370337685822730029342601241645936234699744605961842802300255123183863751414515224609159930097246487860520430724772518344202345349626529949097550889972839895431994335217546249586529164917795275077718987482278791550078385176057461589004167042439673579673306618090659800605223383534627037030205718485955979245524463990301013106108132522171076069012958263673557672197716395524785533163432412729095344985576321030100550563384795325878332243403485263964439504943006788836329978212567523608218977288422835570331801639307811577821142213118777632839105984574968627000872109403843003805208975698039186891536978715799516703592283850565104372762131488843397865482853591308604025079717582157697903589050868143645824367492868205325091899710515630426665113599140311889879770435956125519322113445244325143726986112010105923828522829395186139485627785760670394988488819591384617054412399568975914947349355478559086461277499395853099442726792797446717084029948354527324103588143070025519586723824095793200904567417472031886106544364690520001198312511960860292872665360258274162745738293060994318114740233671189682128240377931536555694297498023891905719800737947701808356026851448774613247711029723877004171685397825016566669281163794947057082177635172087486385339976806754286191901450454662302681028359946140593626978903087069634897916925624706507495115354227537681323689667271047537642672026812987750816839484301898513782126708111704583616768038911046635411434204957549399233396877254037589921433095460260100416453345223823896281563755657927613454856685107822652115035208943275711838926987434085314309977409723447983227127918414117265370499458958352364559537262230052157314529135533884494573110796981060448826415360660579224371824815981008754978801582005454631434614515720498939434430984006179656452862702559705033041357734493886443053424178373338133393809679880425530505092668038952896680901295199153560357320202935431116226703933407176903529836213862394313588564372505682868179573145982733800240985517720956131208550586534315249607544165401284689296194677707744047226393014119946813746315807418543350392638532321106541213101190955767314086891630991290434433165681752121352139511022681165124534045574203384543776736426749857059379690317332006891013900793874780423164052069792578314322232903438662853547244618143353643727207399029647078895465306624881280793383087156473865760440758477094379224460447110901294187024739523424677266618785645391334906237836713037532394783470304928954550841772634590559322577472907203080934609503352097924449413416633040700647563580092789094041120132307209244189701481962465911995605094540461822435032305409327433791073971776814256806641765113002679006786651833960561688643645247937130914155398489177796575220282687250243467670440859683877639504671287317506946876184991139359917238974303929104191804661381470751321513314460482893964853852335263706351929322228856324526030936897710014245218771452658338509115250035643206556266666240820278324110944876448643770689463308499403304396052914611810871128979902651117193843232945259992400891120094682599912200113224846707548208799037748581077511645888635118863804442615626526968554593102988063947695394623823281687217608746031229316522201378442598530253837312202227884691237613195121894914658657918263804947930295564373117523790718516454004498261045906484727959646164463947833461667584267561332574953012220824643601624475911536801052813550657630051772957105620155849706634831709735611701322999956790175192239588465312195806847540924003792731070122745341803286644326230320237222738098212352699238712917606211113705122900046817085724170180479483668047916257271376313006683135690057565619001119791854273747122550397877776013356634956787056901371132851556976484981869790983041228523930359750511691836643649069164230070252806501802650357144806983761469104789268281675863578075190202906725667674590705094235042586780390627199398373230776609128142247339094633749901884003459312190667419070532188383154972046445922054721569306236433414170679299782291125987242204503312948228686500250959807607156708420529551144385146643228752181827001001338365125878991679752862950015177925583948228373000007260909646603352327758804020687590700700822524374528747936711503791635436784204347349571283665204838473683749177843529729460594622276224251998152790112807489758620887699492732490764979050761953955028278828664778418859864710444300500940044805311163121352210736955884350803634828520707611603742391704366198946926566396968837036126506705663185995044150681859954147026115534976158057252482337228868568816001479387447226730818437248215206890753323286920543861172939901576758599944288460920686496746039561157087035450771776334628821817071368672756749185015269237351829368723540765119936043133853891385774298069179614631338191869927463798505376583987025673259104228829205684885606244400162122619986705663090550768070263614026087240455312675779063159504796002126392085207798352541980681856868816336753659319155640442154350934999364117963149077293749248394866659228475051485242480028662400840595948002549462038767363907306761933297109512555062701913470513309854055602618359114106767726524828249036069236792715730961482758196338599376038421950324553596534178863987139514955637773874883655805362674954922170312724612914012671970195754921372669980691544466628672046457080979795085082987542605867928448710597788095001352362159631493385726154582809133849115124488743873795586106097795337738451223262512684664991875501013960649443403215819822211150660151113976100010425656112690187934573085905230108542603292168114409943069724928007914153564671921104770992323319816626408064691010840158247440798893198091632261235672985890402802049480364185503008116361735889961664937475798383189635946711549383064052448497841923874049603619226245662196737271871502233286183829619290763430370953086073639744954322618361744424159528568822336394640478603558392907566876957333348713718853655925540153555825517491619844921192373218781475164771919110397773457181305665666421591215587493526717207990473368329951653773384818172655962693822123935857221809103373213451713145765247566648668108217922817346370588068649292551734898726277407300200603033096323113612311650296907319445763555258404975448725625980557835584825628056905144507267725821427749425960511165724828630789287446594316548044360071678468429202009591374230221444723725493312219426241525169773201897298905172118840376253206028741149259104791942467547393356897258837425899268650976629139114500748720497288031604384634701185347090334041929464500740815903742834096812665683814074687458941983073483161541600294481274485265426633109886707418271053728167951596575104115572930174431408380205622339264933225804694157945873279685566862171068358550299927743589060891254128482426035766287397394660941038040872922534955417832363848272747135911641568976444639898127777708390029338784524549854546153146270244569910686494298603048869916129410196324947566910383951556385275562348457842433114802094586312892331687368686113074493395549823429998714464710137457237553555237420108296537542685259063344249186856760123521243512167749218537768441249733675555087471132212677607669391439017738290780447995040868282323460400847240648718070810747271308650333432729037540513985566672546832368414989919872078066527184960119901073149151452124670845040855939498672235763933248919760514169688479932929705463503220546598908568969535226663828144177171520557119386974823876309784858466023926933818237544139037310424169362969284436452997590606081089846563111513869678225795611609109655439673831412158315210881633791465229925840728159712630304491303523955226832367261338613077636668593366373856500147473380519318573947937681844882376147575729282625044938358895889133391370179084265207765858077819961567512987562053660185076882479255679384544800586179724033938211520668667588044662674026694906890763467842004792058895893500749971288678990423777410150572183079642262884348449586636531937808097340005441005549457593231403248233059383243204983028777205864501829062861527587772535841025137506976845318602449311334835262297949093525604721211767230029572748534039731185950095188940286597014198660466036842138482449524200616613087590635092518016647858445621601654340280462132596908351168649112381853308606462898820708367824729433678580274356663231501474260861675503397171757842200614927957478136788198099607724220029439817023761120350403885515366294555691508371558959742880727842342042329834484565843140999409175408927645854950909201769868504879540723976442443968179075186950966150335542641141568093888082629541968912748871226532707546439378671696062141665438810467220366843108014244777597519167629865800552453679579892643917937464945938600137325569725117878907662117472739246978659241047287739948744480000006860320105133235373155805096588533015433235656721991402896765461847030830546612263110982049221802434210543299356349762658402417806260978217331961062865340660998509635528986242119832425856159407821243717386279709197595158047639606078726663707448903632784328203222592287081173673276534908015105338609498476772211969188836215386753932732504214935018255807031922486937328118204857946595972403278354713309330025614369149528156728100346801054029098561041100603498140192436396639998543782605013083632644164294961482426995299245998366816485174151242868422722609109392786390564118334582164002798926325465020630203293430235173959393662757369186372989161974676431213781779994174446293433082690802690185597510433021412954970028963887108120089838672222082762919343695374136367164223139970177014250206052228762339896375932673236156342329342361921841276138573801537126481214388961478366785554944546128328598543856071411625231024893123384383767900556142007750674774787181008606266770539445873944895261167133716513970931211605510721064856544677557960945042965846184702219921432261742108797231070218411692987139097334498992993726185948220779634019676890705330577801143624233471830609458477325540430289574645896060786061841050082727225469731510369942351213851736534001209062499326722725144235416897377591669322848661743266100961228927705980310091693641069049923976432446872060996858342168031747080845052598247188422856082559293193859715630824587482976399605634147256814362361735418498449056070166243258714940590956665262100367356638858714635294233508384572529061841005951866745121967028944371157361283377450127192709838868270910731053517583053867083709737547961966547739104370632802199492527337085320345750887448761419126209304017065076064643410994518445034046723636731535338273261330515519781673766890364490831944051494507122046885111599007361619473584795195285065904887602146757080761460631783261564528419557653141261341237356453553368712497790682662784330804308592586877242184410175797480321362722922081546695163144082670590691867336105782297550094894870399144843311741030551323107728071907586643574976099472089659942956650966167512213333370076385658984966588302930645908276519828841575185370021370899850500819748470051149786583866849159982032114691462922308510021356971078542295061484235657557388283972555579568789873796395359243747445079130636129330042576794840830622126598357298389673596062551332231111597097496355650521036274580814486811279211886517908920658963435959634047411616239751097379260598559462310403211575334029675805532443201768768647739672474508044048339690122369062303723205911799896227777161032120127360685075485796921516909832201790937474028970835382530179734931232088562251110176992532324227735253450127466451102962281355371958726442443218152944946625360881603259908382780415796368851654727802299065087684881260752660205622714339015657513450047415676762792203539182650482794554413658203093085789160548643134535927824195060937267557513288384825391991422865732054628319898889443630374130282057137531864002476811742537793486178794565447290092872073065494006054888085468133630988916633340638547169429058748173689676088712133450358164093179755423530941276346956785440272250215983811944823178514360015826041308259429320667542476431264294925116267299509867111854882284222499233520634336144720058453809072736459429892171270356574335245972053975428244720071084399159652824650292702966656183520702627149785826103279060929409528727406441429265393949279994133730247998253364724450394075284555574684303513860524264945668892192238380494350878826467778942405138289399343192016184440130740101118296856351442307023582069558109808984864701764711687240706060693284450900079207428307028297047291789674261120765697120903828897997777299865882867614962948111649583800733090254417215326883851849626643690201099867250851098856808311085825584849514765710463951149829186657837558625765016089872004379080303016237516748176828416715157840620438605186241661448225170738143822589675663109909260926557009673399718754968501669683517221510182321176830135002838866594954192120031517595006355498274736290192840078662555615650328639693159602147181995846282408525462553747105052631660438118787399655520486931497221032960233885345477159930439234250581618030913184702364027547883433738783741787934937108177723668896729485259220063867203059717148965461935380105379104132428684191903080007574318669143840236170731782471317399278543812626873336769750365083536360329414972332671043960634859458478916735274357089602973793873664441707633151029784358536592400153128149323567392241549805589936176039947804972943300357370219376064416166250610235749710087496230217549151365860626049508602350273350803434878430348386802556477692472666073579043288250751696500135765316122262968626148417686995231335398234578681269094807977651534473337802029509667572897271508393604828483822275777240135972760253880581322996156366654223756166135331045175901886921631412896978477744539597289944597338174894829479593297388450433880258647472196208204833847416271018357875076870413717476722352293372826785483856299290148571353867901326717999245091161605642198181516811875373064373279008596795029673730592312352101803494774976039194859711408637536334154279883895675909499058775928213515757228032084080814000183299969342080708137281081990366540135620881225338784989902449187737277452413363606293329015362275414047893812756428134171332747477456875855429995090321311164508796845422913814273409661012697535407814281606535705471757446884235147972641013207811949586933968639878527498162915747396269952044161639637993934596380045772294044537693465471238175795217860484400337161417706541917634699579077258770544727346237582935690705677770527994365538418658259578100795250155343675410618898260377744692855201342866595958578796593907526698490081117586323447360422491912546160840869797521398680976419108762962312910169769734914953739841978401144063362375782008951175653291944242437787082629211984715926213914566454799294906857362043781029615112341726629134958885172268039168739932791043267345698317836409512512604413993854613315092662902999970540460951375061098870887281600971476962516669664988999307261198455368205599384466436563001897182505691382052718531175218402513780903600791660904985489406241625409044749026256045284181488621823461421409537474865822508016878851917278762878926652280522704808865207994510661489100962304637517192342287666586775958170755337968737403742347984913897805215196831538597101009549927780054495984008643882828166304643473848665823582601184004362629258960216252583927600958546874682915266281626839657164481419835654442993890089621419404293737682703223561961926523484594602876854292210141556165405578651499612566830530875555431784028272186008600214278416244809680978452004168601216034152120008390472913477459412544422487202877183513663239751642699101516113819208003324220489655774775766388466562085663223688378116595131645546497917267308752862106489296436246589898843462572390321557893141480528343304981756141579973417890054207074542551681867218562391332645124149878530353927378196256940355981902272240296587209355135575553802950084048300633526191970815763633012751556199807421688372768370405268946785169848119886665015479957412377638752169842097665066640233326504875301947156577761188973271793690091790995171824691673449707203171379227090633750060030180824914487336590176072589110820929210344442134932075347049418619613234528207049606522253803333071735893083849390591013181165987661186262803135052280730137731004136858866728649454353231270426050929174783143159988034998288169867723617658681665341968899464839023389015385601939389030173245157475370228462198170093822380803339268947348564485267532481523557151245231758159208689455401559894870824031376434561677005902940050164987158714896248366120632998363799301190197070458817544528471730844400323214879965653690298581000649142684802296934177008444304251257084464039567932330290154368942574079075652084478498348242858329515693093827909864014407733107461413626713669528845190061895708643755909815403255399814221404732460831244036778590267474905188320697218753367936600443428650046848794265558282389247063842340958924393693636501678141029892740223320528526266311981539165896635672375121706308703447749099148942068018028560581647619813778645694012068868018709016745034942762975926930598910328316249534946499634455178918436766865122276976731273181802900229204247536164672984781346295736635315059993593552376219367335869981223080829494564046183438631286581224953570040722843072057357890397463048296821241846185082830211006178950079621613321627265640786220323863433169719767211708881885804036264181557381703145559040477044559458170830761426599977112322401255057101057422565991240976895615310058470487319037411824238468443463709001031417683719101683466120009861139825489707980462197602706683626201838216764664562383828477420218679098513787242753352920277084936639046879397192595288190132135346033408475584435978850421668728327099476539723730769598241629498682414976424409672776757823880416488884489361016959390518777878480839525667643179858605254428131227066339946093214107653066642797848694423226690809981838162592951861606862233046304939548386389102076967490117291070227354073108130617482237850618148704954222035436254942608766260190183520504552577815273894979958833952275243495228198358202402631132528027142945124241748633124178283236129343617767722495038721783117920039801026974239652052123621099558817134031591722942269917174406133377141062535257369950393078684754853552479182559966710298144119272387379312279127937001296023301268650966278426995708362101500233697541293898344947063701451669655436192189249690978017728889804203856469714647950577493665680018305699568343571539907872816648411986091444758488141806258959302319777664930839099136264769358644769242811880334633983158318152910498228824899839894447090694079491200426902706611818326871314738147980498830087834500914044241653839435989041852099524539471292109531848014589917339419856545903732135277009662630142291818498255601711779926015035224896381004597969536084083566700826107899661702568817259169153945695260772731352258085985845060020568648649460986645427164389661071125546025717215897878522157524672940220144902114406818694893977974314523240879214695682003972506992923404883747796133641504864342135592038248322077470203413037893250496922444189741899762835453537978049696703122384995040782656553319603012742214739876317919348492512838698950892263618229103281758330461333995281699285429821693832385424097709853861978753606647024089367908355533015021359719443266596575477379591567010379952178558612191606311310681264853668875041648335763838894797205240911054020146961730198173358716536202270149735670125861075647546620138609651313850960357727909116807162506243840649266203226025976070320438167721547576453758105554428731505635161135895560147343392635002527441178066577973593210463526103596220444680509498896798355351064449439938669454167328936301738307852920990119470586930018580896745605674797690939956367794157012079852972502173709281950159803391440768352253000057589952202531382778858527418638181307834924978301574844905619808980486934952439439636604437824539265040080692288595280123558202387554935931791419379304995939941744224108036191291620087078620756897290147674964944809628162355925963911213175281982379168575651260237499114122089984098875909322599658943084746519516988587539777217068668272379859132086231741746054534730034904991174047941896242101818645675880137398225783768173348977619567521191980387405913555757427834360863727496838430924516438346916711603824409987956114224821271327934843934095162488229371759606144979035280895400867567893841270865660651467424197276132741497469702787799751570326750374886938190272674393577944462296736229028328356755271939185756707349586068581547580532809147041858722851414096888984431943063109878278824937655555856819699533538071168694053779755578182210293133067024958979165819060304598146235698082505795180349992055409473350455371418176207208448805404592120197480841836231418922006708390161680375777980915465860238386724011591948831431614781002956464536601180923813493898502712408534355830519639068779065218720423600139159705503002005798381306923797520612381925547023299160980744215705671824272907946022206715124797064192681781045803149834088217333745575257727675714682843792100691925398730286126096922903852121815879587373814560438140569138621691809971578347323935122271674365545371935323048646719675788650001673478270559301398196506671634875761768140810698738885938053180946208697168796544674015769276377737413947361386615121150457778186243557545160195138679966555017944268980525980996373040907945754602938921828091143351118006448726813715977449493445297024064726497517737881840628283818569870400466864049367992190464193974264988441424037480283874463408052881710637685172515985170145053537778530762172526308471772831285775709200893493950328848350013972385818225437737807615711540165392348311655313238510942765684522071629977996167823693160530947717513713587285578150123332085622119708459059169798716337273265680123639926669952752067138547728938950049418742432698394761613402970478127911560784460575745964180905658025622309682999453469480935408743201354596913971016076949850642970880111411084013736514242068714968846570966481265756044029725619201798609222081838834098754802227988855048628037733713752209769117723639977071952521828287986136679404188030016538897605678052972471156290611488595638172905096772692740475177765733676185195573976321877201297434294247793642197469250409643462891933347983817630968784568366525319556673091186951920884527925453448385758068486398567929001920779318948602222635677938310793794949881871451832670007747562828502834230074614552835116736222628328816702590682407475570085328017057459889027480021037639686028518592306398914158610082186486626609438249959227128916871686158106701255325654586342101512349481249306978266623403358882364510130691342278580559040701669680439945236438454157358994655543783995010227358962182616199172137498261186823448060099496368239003081413724447107649156697515246274599661979622644333218796927830038607716547818967714594894471341220930647320006507425243774054307865507661363024335975428735052158714433826017206544439534837557129846996314842484910675108906557480827566806705548486226790962264944983354146732619523280368259512699837106459141860590045321513587902650140270246729450521764098370332057567673008552421417791225115950627064974905731095556342701122157766442286564689650612687389097032615924247129055292459937147006561641765923558065906977816732016001185479697917924211490300853990202858994808001099030434637662950903741372760646123173579404288564805929673967785214774143666307107062297548959071509026250264986085352981293869235372878060636408838349110299028104650164230487902149420822188881941336664927959109230350467454574133680555499478557585495262382292022319966076269627884708097206921883839212394408755838754810650002063407221781958737120106405900196633266102895825049343184660685767549503103427393943228374821008618566223703152144282357284256678687178510596262497649704111474721460837762094080210252028708159807571751247888084274377685106070223266683389577346474320482127448956794637189344731237177585522483550901043815627821642006840973744018938022528297889850474290694968543259763557079979803458251040371991660591030135442425244698539377789837855126955476275618510472478080831678842472173343748252191434218418793390364558606402101084135598808001207384440497527062214687696675478108092745845582001035319920282468683895113107683669197487092451815444742781285677313200529177293090774153291938113668585540185790692300286674260640418933616646695253064315844646275289941018341568038185554780597326178365165063219776192842962863350247263387548786594355860123963526601343417077816295524871048450578230494232792958903811450632517184959059163004914482873668459340397628456954603409428101649218240879668418950466578382485226523193729458991377057575305601683345663074961717858283413600775723382369544855026431458554490430662824551091562889349767272945662074419628170448595724567164962186237333890914016005348653028754592139630443502660940592808273443401101851574023333952839151537804036743959432497722050849037110994396941301714206650487866599381591317034378859873875288628662557987710211128519036434884572992148862233231499577624737805810550496013741082156551474560857270700622531851710034413755872134371284985289213546159335763227291845821483101062171157293304481494138095900560258340592979143162324705550667665014137630373777197347038707761919096513129195051776739791540405980149854824268778268297371333297708208151492774331480830220899119165594070395940819506763193227608513484729764740415399715638705298971380864032443977160767452289360513905611842185929943642872948815523245360848552300843234118159361670672674534534890673704754587209584553939886248427345490228600058825384733050110202547097449710057337759848359453219247184839398162421160144293984006953493162349172486499698139455285633703231348739384091323430153097225039327139245272038369969743955042839238506787962053251371515803705607518448433859258564653618045584964089226629969433347668404166344209547976409949906367667611384391025073762914180903489746385276364541460798045512552061392023529744696530162416105572549405636372682049949552011547123116708616985974672851902850327701497917917033277569420193995643949787195038259222106082090372282595521325475068163017978535962536677292340769001461994089405561770989551292700395818729611160535456403340717508965389527397490543409609031847381627389450528092254573925976715459757469043770275767677365167352741893774811005047441091527964921283427165868777218119792826309148169278019155164668954109882071281387336291962251506439420438232753088970470665480505308485382421050519913742997128171100533268037375624474204121183644467200035898380155257754499476748877960770080965898303173405656960789458662113149268073347085913095521834900564195928363014698464688527119507037567361092908138396285440923385191622840920278499585492843376617938874226441310219310835675947804688380400144614648884202299509492968603444924971092895469604062209492856604444852933853488833176249837826675328788912855150861135075668056210816548224808404984395698958293758259491218962228056636095854311462036852210511015273237431679249721837057345246324786648817144167105061870190870280844193634855454924191026757838568169120388014853175794299434858633699854509747758351857542014061335514930633973481163982924146141181708575252094726959109674587637081106546893398101501665517634262572626211863045986886724236866114702733879331629052319907645602768673503592468575863353697122050035546771768917731279804273579957246268218859759349668802582705612063621875789525486528006897575134977313342870370639659733331217609159252100771217065140700900052313333817194258651751983629534937032906528165464927694982037433891116057830999729101155478583138149494610970848904449236340422884586801439974793791614491064106168269782384830081400622448404019545029459360816369885023530616551437328294106019852946534075520337799689816187910566105139013973562332315171053801865152613500308059547398303107940675980357799117890010943671955226993553560861220546634520033066195652476421995823478001813754718017065203062230702428817286019625534934409251245196363901177918107417224914410834405140406346884457904727299688118736970209510617617582911003869063030902952623684665231201999344664915806264287325974296725034502713324674194754586489750171041871234876424523554668347287110822579130320063910272867090208031330504710436625899468561382160723937541950417776584682166359436942721647360729879581538962532631186626432166628497316885204826903340549906119709019061397317289470282694732009366968867834453858589847413278993386772473147354501964040711517837635160124241019565223628109556781754167214202084262083833815199534151947214007686120155693279964329200428715477654700488240739856991599152672913034476389705903062506846965882220452340419435647005832065994365420893041186420509119581310911222518528157830254825473694471613641772094362848036170385926280406212144979841405911831600258416090336933968255744368918387082273807901197546903157594141842893089152899397974508373683573880311035087613137512447966130242336140323485381987912526869193180159211515210406180227262318594810566287213488592617002221347087278497156242356795471435995074921881454679538240956356576868933443389922635268659336838942450188057956131627843345310563611663053753033875338117241145113731071948611720103774840344157390942387920343895516692570365799624718003641414724656613259299915515793861751653159269203294836525202307416206862459416530458009952509604816086744734199187077572777880843140762276301161876822889968019389311224229391618124752050736377902502519483075923419467046564314361560631277682432164630855179575098819559460204453608477705678518431217353407183398680454347421122396081213446148360137077087895152354723944389184631691734744791430179523942810758284351622570805180332108119790879937293018973377801582884195842147583080717202945531612575399702334996884899817881738786809932841076319792070914438990249914891548448410453235676260465356028933250428206083988601137378419001250348866724837680040072568626387729934937485805678085885474585777658586086096752779920535679817468459401844727518105834765525759766868337113235727490005515336538417395572628499506271351366569283443285650462166804163008450346540024947881238167252296115043961101752725527444789947149228757134845544591657944483484188903967947826423096941456833792720132976218700310734358294082356615187417458639047387872936826029258179172624716328380168863337951745825219307838211346036738386721774240507428700755966132471249347384609603577891064413061976353993860938164532369102934188469023642979937377549858272908709712201053701208650254118592016085042450082977634178733590360896079546036285053106279584355963759075893863225555514807115922035642969721054077541273736881146476634216307324608098049968246195360143295447261320191232018600938206393735189734165416237667467718186715005983468840088381586800362427515581106855265072773832763386899643212620247295861523904950413026855884688527030676795751935114065074316955103467979600294225057140664726628505938300270369387088883029879428928647369582144027603622277471777462638158293016081989678069904413819241633770554563300933026172957797763862582335651777970422800584937942937545275806480105318938225057361398000399519389866721285133326523184286963503289857598435391211930867988581865348176452133980228152546104392297072430678302735223824171635974900677104280776435583480016005396398219278734795620734540821875590030099734157975086946729174208910004303811299668756006839098853353180998964335829822209109144048376379635777578806385105585663564041081910347236866460382382862002471215862273220638897202394663681515771419930362783872046888756782179294801429941136104977823628296845555938055959442912582034535446020976000794966387334209056995441436996372333673023148244874388609798955501620451212618168043933042943291182236883550966977339058832854560422687548008145949914859499126235342140040220779245445839154977264233237404826298995754104924082493879478640606324188730989280887812240204106567400517953407919538541101017218678481605623436540959292634898645830475761046831595722467215661249760179338944715985204652073396202357197637850497646662522466636243963283273861741647323457489328319365191130956660212156719419120612804538276388827784474027437662038009710767186708302887191221102212621183810269142650197440456285862589770200174642231313253904793556873776286109289240975211050505473478897007437522095499664114379320041040054015984331443407265325952165812623824199207582401623125500144118473638029824620440493099754978782273067904048989167468882461776416850255093124587070068339625690865127414729927111001331497436932066490291147602955127319882488173069260747489615924111216684330909200056457613759178843199271318945012107070232775123466117769512555849984750101834482591474057096328815943579727949814873801925055066290247388857506410363799233976389098383868447636097340626015219705864254343497975392075392463461234186148233133065205662107661102025382067841043706015873905998918909553051775766584290500542547160051312915550749462716871803551908634008627051302180266184767458984717543813499226943147909947471001209408087046093408359630998118535096335855232774126022861112761932082552503977943684104490341847018095462687664302515453179436450132811731204647303741208758575413923040728849378441075536056461138959405979633397001384088063641168885201683987617211975962417970995537233441290167402351440213993931723035837986910083737840751785429141683817335860752792776588461827263015249823424166076666359508286682363667984541117676547013885811350694136141694070906806968154748476789765488423650311204982333702630284374043745882374708644924436310997029232842641328218165361915033796576527946338257510138359333789145264942028656981033980316395182910136338503399142993215858675361880284164497129024338831252862643619817452692827702591042017708683556417122099285461233583668826142336360489317316555297029678499226444150744247382486611741149497531648046308473116318761353805265227003008792752089103743703909670072943274275553826830656666205508342779508633285732715832096056041115042398121573544742686217493062971798968091785587091177421854470043513794445783797450363263704788095276276545771539156991712295762842032082843282652975333490440459547914996238632923958347697220067315957331491497277859429453475686521981968913905403565982541009751950676192135107276763542917296659234758819550031770817519813550638607063553784883124347287904279025289039572518453740226165128962216103160652750734639839840215093660533933705263452092700214961840933788407744853783264087524598119583503704586653477844309372836591021662153454382904161543027613567348079043432004638024696263558206505946621282636527381595972671109851187896843026477237053815535519206396898089898365440244289486825826436795134808621501938201839141874114657250757021403133902180366515138763679253088552130663582444256226499435430563625597639466737990723056694151877235480921236327285550183199131593395847751589806035667819498525788211912113286789150937045414547764777377613114295162273009711076381559968217953062624961092030339198300599932525166606208904123351301019950847560100719328410893592680942625392967636386292974991821535053739608931263233663263253264417413232321682148819605175844645907503863069251616757744901657419328253935506487014367865801411642903642800470777945187612342267130856517557309814664414144183813829206888045818221218846388437218820293172340835073698513649708892983025406020351111277754584738310696653385213176770712937677251197258634624408286904002621614137516190538150212628089663658709280326825063805028406153114292567298722967717510544569594044656023799538818402432477628269740194736097215901562961313336898964097188827281643476468167436532980448493390234334608831272272850904853340163943317624788240384431924239156087371168100305045335132088447697908794852458302071270561407638912568421922803397455552052327221812073380583359681275377031685731225171788731305576333663457917903975406396554160207335606295632935344670261831879752108146478479093691532103111600986357766421194385786269230544526639701530818314351834038128097041759487117273393088392194910941773989690645707532075454019766174400435750105189769588839294088835828384834153140857921408142162110453749042700437150060512797769740913288281412807063104304690087128337283496923624989182620930478634447549117365211657965966010589068509082168760670060490635267578228698384566366859465780239970469831531457934327609249398544674515200861133765406740867350802490829668829046751286039333169119400347412748432688578534537327599944610830423962221591530543691954611439795743419614775385008105838090373337359351602191535331293657145204904523762868749916082242239097323087164512503303988188771722789045211427395431533206540030909481248392300646987498125075651993770310042804322799126401474587859702570576944699726706073995908997835001258493015951053467936407153243008082067631317069595103420016316942727114434804227815850735563860368890886660732460759050353742894778570550891604460798913050298228392098793950019620673195741824737693890915485125671137931884986669891008069556707007585057734461991071202712046582816066145343745144329687550968146932708039427639823778089737091655664772299779119668771550856298490441189136782229311866266512911724993858547434701185938112750865770975043828586882339565902231706348128448549306310073456612456838342615448315540621386836856362954648695789901957121246331077028716700337093378984397038161849609400487882070567013797965051985089740913378689465421318481109424936951974623210556000687856197046593877005078000623470334734379623623078661762401686810653042900191464966237166355816061905705687014233838686758604133501441887342893500892299045021177377563227803216135284730586762138143415838041180692120203889805469534475173050894595481570005057415493971191996219690563768472286924506241142324921972172918654588993545707250940389730711179717782101974207264413773690491716040459450824054274868657115426427787975094540688223358127816551822691222122310246019201673068508560529205441842178055647770655607913981243754987943990811838021026002853272946504345218503763276545643667746489615534191987099091539500247723461868262712218288818616908016761825752335812787959544565978303555741697106993244480140201127968774892272442761136651985866604605964418140486115697145931643239661992624544007324501371063818557144972267646564540148301164353808376526197016767782539645089906531174880993140248575848854197388731690405503638947919979961499421094871295192141811754831278046310916136392360581164730366077547750438134583360890103407256868142254030532620026048952102411613224256484241280917129460698685192271806235794293333798949277254943006238208240572679797166018409350715058656288236370435589832618552230848282726049258720382762039852866759844822850309083667249921102173907771715960924415989975936672639744817840773506584944488226572966314129253512050885642124685671819844758039498724054606056981794942933249052647931689723623868057124701686412940087909356921936442880323954295739289669705596815005947923906042858714247703486001391807461409034318895550877062977648102699729864962246882954081400815253639945398445753129443859628117767162223385002546167216042748823229224174259215923236211539109255518987839360718463367372824377027238688629991071298180014116042195975237410834203987403000785337002707093846213449192381563341311813375191279157777182385744623259763991867682013182606819456770381333191100294085187147722278763581106121059794317292613038522696847228725752362992653215792356858451948390713427895208351010928140536967231904787099536432055863989693870490009913010012344540539074825215139237981342145165285185707260055931929430927335349416701471414763854741694740566164051048656669571176210133753339609148227812416310467073666675850462904134052323028500207809145891338389008314808603791637829504558669907516151393570874234321498132227832746075462858309460857322358464306813150836281056746217926477820013193073852908763361310624981202484441566360798746195134122078015815040623967431489302985846280152829572666640924757308693289700560121868051951305862466753365117892903452865643935234639255123830306694508295519545743753213086343133720996192988578819698114601236256444479875633236081956726568198478542676368676178553656177129888956915055828434030079552786899123513487204082125676135172069391166805103046061177892253168452062496784647652109527875437024944686161595372216989925601576080093080570674300666669724000781050770125688202189918667434989052785200974167202612861812033878399670367836709794971537400703006128996062877998164496784285863205484287338756873011913753288489713809491287726372303252862629801364221098987607001288607608060647154217402026066709718797269062378147274584509866554960506913504144612602506837023493797472670766415390733054694838591678547607165053417626494444985669857953196434789963158436070228624189657944112238389567643223830166461563328510860239621456508787433936384097553789925971412909298757056840244040575118487597259481767624074282687002157096693149240028692344707345558859411786364044399449726416774738702963897698473127737657262861399238221316713949935832126844352181566169894048025683823128049735875621603625028290602979425768487959008080805739802035917376272082166977428623120257767251982925799946053511102192500531847545454635707564719558493555710679431210562592916379671923035682746034348648108583128684597249218361091052253405522256182430616144406576391779153996019808233084382505973577748613274404138584987959464878344171203981075432808983029639459018322899089333820727313261358131567733523689164787303181462245806033907540679765178657870963388571485195892471872867100534931679774170753886925707819667062674838469557112359196152651042968382002826101040200926142501362545077407939459361003178651487605334066902072864980904932070947811474601746478087410461825067763871958650946153111040241910351031840886135366144599790304011585783859246791015229843220752339039684868629002308440818364593380825678131192460892695009678955821102049270326813549146708482652229527527818027229573906695649464397745127901079641725172016194230718549047391629483602036210877329110043003967013058601604788955339856722245128982673712301323306398907822160467240898460253814616311877422069185900212551935821690409699719053069739978350021679932828355346129763768887712976650791483287434902405170429394770290304717332817159371321128000698487769281683443921921024115482743353893275988926711906889355209968306709909066154810836681829088402674330966268843009492878681798965875900149591204148384566927853167354413146532960723620722446160773649278525550777444341724759264183472319821336127341980296246893848010360344567160672409466436344539161871933972845151591681768290387272202473406665631893793635382819904144501046056044403541972779032586900046260523311944720796876509765198779768265330473817394504715261833647426127394840307089867942362378157590073663478342952193622330367209552223038232851775037179901382314552421970299428422471166047151311524593161992201985197481045249365748491942720024139921455395323005141175239206480201615585443181643236668646390263058023081979743105957830305002481283859999158861302369232451604150254220884161023398456556099199777876450394426640316658839563733914281634182175523044663835182607175420096781355860291318012595855509969761996011143270945594020184980601993007349272587777445267353254495635315567687980246225558435953988467642941063974956717596777830189207642851867610000293031228821671050846007179554964114324301314985367554517924272980354379533910672126830999374377540288482745850187185508211281387688111917596947906871577100561499893149560063042130266541668124222488839612593503240136523569580152325421907775128810921438074948528770250463125180668001197882131378385495165275151620306019152940622233241536814556979591906997816585031869239948829950437855229129955560560800109227404277347175396126203580836939606301242454827793639690912633424966205991399603697846775047665207538347807943372389148583995095108007016628196083342640110571377560373336912424818055077824028162253611512240718531887566544796074507254891636428138589463571210856405607869405181741791358602593587151313596927600127567812454605001151000768463406981209536949358707713228372750759876639845424288744434668114299751855938180064486364901072542011547007368596940094452533355849918617864770118645614604234232440812715916315312981687992562158429178331660942922028262566409814284245706775313890808590838300665460820465321462946072670590643353229563246211859268643487238753066936688743245620256000722494416352491492898323470787748446224155727449683806236515133390657362626186221488057552088390953499707240794826368112520420923158262007216833957722280594444430836444934598153672542868853532956647274213810995381415743542779348907016982330743757913751466012799258068283238348121961083763520816247393004588936495925817727769076962793244299700412250741555883204612571516449569643139977439889120536642141038852793647209113034443824605301036412122884437341498641887361703556795157695476346643432636092611476643286419240334889715384692744603716998985173299791972877044045651815834406915133501786514734923881962863058139910934616088920408319174229113245654222156305399053058847211013139440661562699914735998069359539646802437097284044277112681007445955289858493284215243994552990033241582835374127652831658311918365911795605474101045892302542777281064961361265461874791800903345213498923551778167571974129534614121614560632670921954442036479486470174074004499932816805419480343840673899719097620574221002803992679449086837522023572006944486608894834251992972387732255263325241594308094655519095186393091965216170744395222551963121494872970580231977627512788982798530871113721522791466111307886111363424417922172391625925980755897307916849348097206757040547056379876793028123073535388361561420640587634038176992970040913494565505043887577848555563118590937978447801656848161156586749285827918995472357324002864267480332626456492899944158193274931443663873706227674631921894480432101032708879195468981323663901130253562306189023725571318838371079673966287033694632997730513790478446166612302418735162744878197684643540548738133094439787898947939032383404257534121225934773660722274682216986412203438077714931327971962411241677835060299704621943885041313570678738352607253233068777281768538053044070306019802659683541627610142658628914940591442797971020136971921530984621421668815646190048920933448735097802058148134837974015133174971916634240741317297982251110099258038140304506608604161593750899895294551803530390288528794126231974583299988446510856640612966833628141592014036148194530306171453452493406407885987140580467655052780625040752015473220040007903017530499353566631425759929145212457964105266571152856098938382328805710126690071498398633911869572781580827107578832061568135519426210042407557051492413122470884273125834227509964274959718728905168604073829897087522923035258768595257455927115478267303247347326935019763837008593004269913181663672509994206721906899651647951720708167791976531524837373766529006769181099894743990931127765259606891479543299325013237481937449004881746776182628594901693486690271589842250415707130390341962550479793429191687918385544736039021828026286307851331565040429658524239332815334225860481410629466832243933078503907172205265672761077068805691304919847222450942691418926400725010454281371564514415291275212426236708480843316739790326505294297073262418205939693126250835806716835430783297102419642317091499885510770699647810941244023252844700683965488858010893963195878870129315959653191483517371523218565284544201695214338459547540617148311433232258199466196594223384914442905467972350923268942016703483446441766931095160655541209219715479937617770990444774218200533273960277396875878535811018371306518024356737144261356529414401500728999556005259908444623830330846546942797254654305854519459791691114921181069010234710053460165879085251160300373915689884934796963058706175162300667372601221750132993743710193857743809976636497510649101225580395937152814063573304427144704014171361254537583302172926262280559915993322339366144286992727934151819079295629226152001065038034528071889580604502135928550505017969691223820763009338094495051270612200262746144281438447194880616751537461444247290936128420968443529468943119041598923601652081736426088945738984155856810947223359245769623787141823517561407306853348872616595273066964547110507449622255320875055046190066060284387124430430796665234920257980778565815582086931379732823871427303161369326569404946107191970857575605081397670541044417831067193784670303157304282248242954205573301596805951183530353516101780069621350621357483022510578169910643066039328289588175493817170958992400439504854046569274790585051584524074061779749560954505732903467156033462013583823874897923863040967509337345010416259287637416960747415649191083754498708720831627774715350867627306180027421015308548212342750785253594686596460788165164868060680585347450875001889553228481428488858390414986717012825442274615820292739376536618223362021504993467440021098861944378973386783650705590411655807221013238998516136710043826467868777241575818251300636663707477721318933948687848214108607859517331490656483970242642281031531719358085830082489182107247942415572874482895903683768727912479235768468685485534607560230811471591389213725088779882132319339951073135926982643858135074343743462043751844008464118300714680137645392077913764639197317452545405831526936688069007412173408441712000384135690236234745779775577478232158349483415899993367210138015989924330537781793891746800342678995274282390006393747634592144172224387758384522320447994648597958519019645267251813666139742492243769118183170281743715427957802661525881444351125188633067235427455446370401251228650761201427540348428634992715805768198454681942515293935755703953860482230418336279252836653931510198573871338588404350916181479251457200486209822483215824364135946713581937903835862980530455540922088141742972934200777542430431622232116108710141907066737912920666788669254896593337798855440848225907924134297807308708495549289965857397514737129000670327325119257531698547938558372852889795221373577345703761961395365515079157947942219266692717026501467506101778236693979551503736794125851021725306117403637798109151135155781692809101401725219512621757608343831626009790556322217344277545949567812921152822991083466270777815788517974767889322414227654889831332574399763525810060708675537146273723017999877381908837875738132407328303203313527323378139839839234177043973643311029704003480288795645061491151259695808943473947982390602050447283162376146373999410174274482209229979780775487777510337002628518140028513651198597963421476249608307409080668084294294238664360251723300447422262400027242174371926948712034182111060565139666628094847109659505296559777945067125601196336110400222054354715368004289223938326917007793085380676863125390532493128784247363240335380126310018912352520762141040233706067309667604681414263829557204607664844087300555995742976512932222772978615131571327793699125798355625936991750704614525514083137904780847383379020409398811526653637231683058690234434706902961163380933074823387930850844128518261922780244258353128673279877256981367434159935874521111629941037302448059693685841773365250094953498553931470912109126032839404712117626712295126445090453856879609244462490491294620557098088352401725437960573881748135493679235971118698583661559914906174165782096898954605125672331881692109995019702299876105467827236322518104998561270803899451253665492827334991031024486813510445354714403903376837883900804760981332935813442551836645764079579943997520860928591527188029209093284842336852891238021135666268083696346422195435349402611612536385455819990921188261210812491190128319566893993906382168458374103327625561951119120539785462810323586413403442175695430781615696770338130629620470258763328656360454331201855676035906389773529600511163991119405367093315477670546086346459415703490321414285926553222732482478144245007439480927730546059281862415358085662567789239287902459182782924424274718609075906432601744473798449510535859687999847853502555561851853174175966928555622288835838125739778696924262188882360596657652060262588440702196870740290114134272487310833336338250354618048945985848240048541729459311472390162379726562347047445475318238474487893983224582816680544795255629672470900692692506038250321516698356612590647548191358875177911190028058306060451500080394597314287495010029474338541632975720086703543902791831167105235301634603807307149321504998796767844877917337620450561942876262234321788125779582807123836478190112875354481540371573622345181736953997041737449913611171971469800428275185246425539003891795372470614560444364445316299968236982454756833078735150869752287374869444264918833538119876426604800650262081604229566172218603043884865263679797459365192153773906185564452065333937958049997812183818861309372422123493715292962111641944191796084246313334166950603070397176662268876388618695092537931403978754067247499947241688968338620533319087553093127326315372710228006173673157146123977533844567089801225933325058290748054129330166211187682009669500424228426473062660897008507804784271021739750334506699411269674056592502205886362690826968594193036333024511339615650591172064357340320485637917488075763813769987400487598820870373091864845361778798353226113644710754560918993362032176122846810078640335126888664040266987979360346847039976698343517577525158379669597757434622418880906348146059177449355961492502172971222510868912702800320564195279890897863928549859704894224697175540217699681593029313738985621946369795224363886696768039717365578593050336385534636182609419966594208726977762781163390066438581583103623651805049850105563323506018240786606012473600460434101483577419296006815169129707504437824428379549310606514128591780196092541465403814372646243173180126243744336516555479444283006571080938314695595002009069200468406026396108412959380914837097793378115792152835722645895013175017636983786002601843999668142679313877938672877079982677166277222991152514920176517817004894797327208787165635799862816810091411472286244162650035911035322962647315796912475285608211468268732301017375289617362217871317612364722972863347127878081273726015418979842534731942280369531495204170042684214225119284044208726206583981278492539271448768914932500755809612034905357544480358184343186091203618963987345395078913787958770480051233689096356339346480075926615350626201488027481935965734741171603613732527749033726916477884210394021827356270946348525335535107591850248002563494195054301488172828230805146811482728837122562320686906796510917608998352226281369832480993149594244598054091490000322835454734417732122290787495673608961710568534507761030318142467790005787028935349135890509780490102711810838296461911607152156051919956863545391818604242645494401842680784343298687378062724537528148811638334902616151241103840259458005771170158293051970233207547057820020795301942241948113204826083481830392945307510987244465704196221099255967345799250440490113895262288040548952517895038840631005710977946678194364897190835336086424745306534538019550367279629563935738346831274499794072953090502212805162310808402277041333084316392611218372792611335820408969993236065806263542336255680764484811468116229836911185712745358015960126856805230295325129500613413666362602671800346605770652182969692622432482503304487858330344351710754156329423230325089247676909966171249034433613051843951130602847518349810897576729017715865922865382203758101304244975712318974659570692615264019317622841809016729447218671140124273410651176367505189923830206172252454766697539687049907107811085734304641137137759570046804437185558872619000977189247423322609679310220342979714924525813597413846138768419345836198061482192664066209715725732937225965045134994294248541765919067388268572063564062339595968341550288886344477569135382777018265128979210038006052405460194195589907289382012901124718774564787180319959133737391675558319698249792194730888413544796542552285697371933306034608220529790859925488793412982530840133959468441370975858315111537378193783852298138330164974416570140059693371471944000542311105874709478559699958126836194306044871933115798951504750039116202095559823449904697990007513594534312553707342423537034757537048889082939126012377922840889747645414947558646906174621261053201051338041415863388357103510891766201376809855876899344721027842269166172268771534398908694281855496385698204056295822629433114558173210263692391846053382286720873747391648530435633416265421538424550888308877240726218365009645994126665088741741883606178695264259031252962041960936407712242066960603940199528186606040747044262871918321317870052171869365999440373447550559726613416164049781185391716179230064304445272004167883390714832154183178629146392874954781651983021934480276076384701852344100447174651911167886160894000658800418561827719832879183973610932741987876961886626871273570202855171495613705641734525616364490805020159361387615472390386770422035695215166641077930825949483712428428976992249498134298806251243272060511462031062786919007052642550793517160439717959693864359839372720259819420103343804870390526002218949362930948863127545157946493075523458985449943055303117696544286827905613581747707162045831550196287891046128102189714225771440281922413926976401514766896070903990823731997874298087991743479716580946221637953216096653415622720334554789059411283570173674510544925731313394262327153345710292352460407488261138137591279747266322483319303825736926105482916110618867738849279528237612265445020747277022455793427205098279692367865846976545318250613523206166483915648103726551768636203429423371456321201939492154900907096274204081546109053073455657237745748858478303208653857014429618513279474815224898277251954902768319415900099880367370724910014333883321059459450473035642704058141408282148203819256001950575080657269918541408905899690913834083223831762795960715603114150152937410641747451662785891034800025792546963526314970334780225529434761271383550751323701916140720045086824159722006746374077079358802744497406053978767968979919308781240158054413311243063464951725744348404763914267472548572203692291118440631923112149548092482554949318532360106625359166626366607457740925587553555163665246004735634836192037095534834813957966985131571914351044550258264513601055947446997615497262748247157290840848659126029288251230689403922546910709574836302474909553270629096778809596043575533441092289418339495106122174362513868251311957911789513846301979184180642389568162533499995594962758512516791938916048883349046117383938860545674486039051036456583574400829836349105716988436841417486670783193105483891549359217879515712276713648528635320395488825792465601197387928346935895632608774638337296079577702813090610916586425550596888025727175855067090696250512976998421090726967565294874025691959396288874180883916735239845777117162092836733401305590229317305427721241636307540862617809271752933931763777890350793463320072841764851525640884841625229992775809159691115763629328244911795138861374077500393905712159569454382506480114539120691933758175441366990416025064021867302358802991068843139872807588250715410295479542481169615818432134702259735732279672385855405729599767564471418966326163625122780884320521544529140924386705434917804529196357646341157179613434932814582090438719945376705237431422311884635169012464420498649361213596367723396649988616973072789630177705182314986242750750181394599672962461300712007192308427035469317152625338958784962158953824015621051084167881691094211560141072052467736131180495989219938845122287943917939225411566769544762925188043199313442641952156904346758447367560814068350173698481049725287831887194570962064230783485859635232109273287452434058809257329082815914519377586344449082208635333286910795666328383135392379878935790164482428400551960865946302280043900039935479540734188686075170587987035848284268376741940308396433980358628012523517940537251347803258675946716131588010786899632660399706873797038387100686283394493318407033382634850188143602914485400255158623179504854636518556224561699686006533215138580080543690603753707567318313347582423867408335783363137025608426894631774645848635236836014955377528951580733409315698593409616595786476886981756138049484314528175492840802535115970810690176377754145691204196684382694553953358068363154725418141096162936823994472569532972666017966894338383589065653402252684119012073182395018798397002189915003947586730010597507522185434004561919469636219788271206273871913309586253879715035986679646623008029614289185644561320792018790656444218375063825478942307643620972524250596758841540073844839584514371403524664992310467143163666591086483730416127952860959621828093171832371501756197897321653003065806552773804397232755251015478777675730975949356998434975913726024637876275902298947395544361799662236026634253201544315020726145022432590310541715523569997183001934180817386022033771056426253724837363374923761000709363487927785171024243877202458958578961724344954074476447284350295179489668046207695189972179085327547146648153067240138104398517707135269272656760800122094454213073381252010902007848199419819073586601963245441081465586408272347282318033730415544538750232454740200697349948821112117975893499865309652641871707595815685732932809867194528413424216917141787796387929035415897769385769042384724808678906189890684822497216875062788343587618405457661592960215904427223525383158554951517926331496822920903901707970824575919976772228111571795323240953147044918028885953628459206134312498440277237488703144064949297571388597478081742583872928652120695668834183697354389324531755147540183210991040688724800524612972063506666020242242091338398234451728148910320801039989193433089923736464277749685911590814067291972001423667463068946543110967069612736201617620317371763144246369864079464990240597044347694021315303905053906275313377035505892433156862625673338597637856922064349127119121885577714137187322345156456195244206558086656159082526563278200974430826375123065307871385182162151979791696518815421381851429990813441528355087930227782953781532442207109267728077731203261923503954104838088620972359115892472598482074955226079572015080521889934343275176529644246111217670347818357060008010448150860988603838002037050284752179151711560618854382610676885246947844130041650239529264339046110438527619441039134827861702995419443228248381055897000909640991905304673670441255595540812607904665128720566994802345334073377590333225364368979322437682446269783630943268178350079290312109975478022229155540482363862337529528305235395082674822797302394879101925785240530849458106228050025765695129888063442512406324543879070975779458801807259266060315559626969525378628999420337402622862533816458814326843856034224251089360067735540349008474200744998575178182765177946161944012942358024643165301232857955011279181146943296708768257852959699922247401170832025163746154853597353715407716589381267349290336576741596200576399206948494442339911613748123978758903167618314354912395972906863526601575411104287460077699494283017902966829363321453104654351807953692697008683534867878409655050919314590526700183017667805696697441570067253377635379483087439365702812422038035962821610926476450546295763656481744479529597494679003793689789004225535443965456905484939458050585577436533430169779211005920886839115273645685847420070051595260291955462227466674444847933696041926056364500355798899656373135250314712006565843486250744627343930455117272316189018207684180358883250800793284261302454715845877984313313537213982353926089801423438516195357679212372332784297076256734097452690462626034041706954253799062607195501291549554389501347027223178717447859328823987978964902822089360262997982639760515530337012670754483586554990425229805575082110388330176650937094702875459983762385792366343758314469800965104661360066083412480126031470888068678987199831759164130084141076156257193810403772018182173938096393432815972092625039533346262180172511795979926787728228526129077070224595549805657196016903295255120139568883551216658402246820433705469454110525795058233867719493359762507343522902730280042809337506661623851871109899688716517240465416307130466966797571445497225874917775109969570780652702036781244026328412528598502304914398706707582569662451789798366976890460339876959420967639226688188123292753491162838666072354919358476625968396460326268312088606266703041300560631688171647776940759283048834231212800951073541752469843012264858276985727775658352006134152704115171278782189374169204623607859451293386067785846712697401959539531291919381849048906052100009704185751248652393507207750933145064623976009649184747170212338139202238883280018239840908878045434713358838068102256320916357678871661709814244570449534630510566029459812799712280042104985651897091573020708046598107711671190425572423442228427154630069128469352654572892439371350923191158541240322290832097194599910223595260168466022173252759129596596711874354304360516854141783964200992975742177180448401714521123684570101233113742407103131927677230268173329992311035614865411513783026535354618296216012955363402340916590637301697090900433660116594848185869744050322364448987163437529519567923787839033044420361231294235465381925913179770661426186760800338244810703294973283240195202004478300046159244844269609419543344065198470874889305361244664296882949503424670148045855226915099140995308647367407484854070050278169440518842911563844128824060845371265358686613241190046158978636095003988184705150474585026352583686310127301070503645257518857998012195279436356876477048612857518647725575820340409182586100174531612254605789170149488343057606146566368674904518015103226691403539325744514299034924895955796516235816177903833608738289753591002299307521420502751488802044210821251411644019402492989598691344804349677734847469475891985111692840411345274637148527966924452233913205012206144463560655838304993805108615723494442699499124866348026948150244165561810146898611522374898291251055025132427637152893837827431620679703661207950225293402172672220986209711158184398935552066366222140294928517560092302478939509251826753305972127259894805112134541962737927274929813060743594930344319441432482429880982191791143142025868351480319476636031413731048215664092889869471499834936391027421988606660856047557056645910193949111151258495880467378410834945420496217952056157053363894903440458888893680880601510439737630869736832867409712052452248273927376722497821568083027901105699308704308098092654260009517012426790612387281530326715386758260105375638198399293374973233334211281098460491420260173694644098635604055775319296213864192920164351330614435602378694285412391563589602538187833124025986600548962297121917445539688784765307775044568504514221525135604321507241719163703871246828018181389013422386796568809890219962596704984289460284178823029698507465419841284890145770777809493429354265228755806898478280706157441360962726894614063319879369268832419912939056100740468004434257481202694793079030662894350712356192508952061027558906764413241696387998767450025314979970487176332303269389391758177918916965811511225629352316147281937063504110525617284048766868067077974299851803757245737741195990859764175751208576406366837415742742108994893971375322956598754449535036448652554673003624707235007808397506108924691509014615658901017602601864938153558964056400259387779735266061565442603138817147242721139878970715508815626903025697954632498292780514643320548172527456442849809134721683390397921462883536366731773294558940804327580761774828262801878563948732447374674531609941878367424294826643002308420434035527768143448247617599865674750064392633332893022017802939555789966085322759264545290590753512756843465913561494192392336190123197024353032116926161361738566262152258732094552815809257156872635736773677978482157390695952548366881121402010330541183829361155993847111896696755085849261454865911941540246275775666999823101766546566972013249084417913855843575738171313237461562880350893910837242816804774969068514008538499696581205993764625325754097723881309879849347502416161692702777848237041089089727652911489601651419739300858410899834012090858906393303582809847483857680763165710919121475656014411481999013512279996084517437045148132144918532245580531856137773041327886753616770343791840563558338839614881288119521924845753333067749753232640948835314534466661348278233840305346930107657224375849389906043654741916119469920272297379602353452319541167868417761440987958291922795932279235934650785992084627175219441691950805043816986976646927323889801357744072331342585263560088227902013035229460229024972746119087432919810134140907337876060432563631166089848483518371339132623799605272853548071830341748580284939993136388038355562700243067415936904714748095161854266769024209165496208921241084283939297264923816865610057901428496023562428359208687191955509520015538244882201476286247290087651007671352403092572606871836222827337871280776360502002836747267446227458221975434384041159598260444292187177951915915622673682289299419609529745842282778713292814071073514140079001543491330809203526557217129487027002446200539432398084690082599486664418562458513041340432163135864912627003388359450622958359203144852523301432531626564399045842806946318671940471153233566596659133822014228445433471798172413573962069648016568847577150493394969437786290717428795140134712817630997737398840679314448291622135120184522236483859152278008670003223742074787301323118429524971818895046015507840517078994153216967771491144893319846412132117594359247097528525571336500794623299353456419923974589487899930355290147430248860867779128216429435841110050226565698880199375386596727152683551031773104131039168134736373240622742652830947317064165541301796230257041942571304704726533818625189410095723811584975820779033493908598883737768216868664779037950816500211667177943530253600618932809140186590246830345937373614997297422579181951943103443944903465395642030524871499708009415227400020699280743901276106564331384812134004642745737449134528602497440178358824519283521828672393895637874748779412207048922019537354281085748916543658327229709969167360029679551102666344994733374932791574544864011297601275033178652787452051773221301440607782960870436921423463225814055092166297375502777767647531105987308947246088241935364684324165012010021188545069810262175056732064648489950076849433059449825068234179884580351428707536586968154617156853137212383890984070315178940256386918200549009982489440662483575529895886672664420928873292028536452679981031971359406911182149365370996710844358003279570829406923004608667679185955357493158920725029515901860502031333503140305425255115528181242618152012643311063621070248172877617675078757237207786382819548963986431796543200553552418488437990530543309779585600695919531569742703072907508948498251678781976064205411651022607922804096062890536070730557642745033090098955765122724093417571148569822030400955949375660361395754174029126020041164501223728868343624503664448795084349520620791076089958529115951351201209594999294190572929015628865618624576159280451835058436721631169539697198145437847179386786385438277231507904107839364137536553508920628616984514345988447821294802613791547431793592027288024205835811351313320022441387520740575912484114525691375894330548719957468038026298814002388196192371006645264856329720619260361641795142842201804617508742392328265399350630434475081628779407409481502500244452907071290174545981544590002768740641803013191927963167255955378887290364631972285960572182213109978801257812485593728304633626373206832555207801274929893589332383957703175524485948334697195977625010961951847926301729303972648465007511824808131513662100127534398282478307276825178164307985945277621801159438475049436262047023905239729892906066609518148929283748085908290540144450243465282073370134895542528458084493688132917607517924618074196782807558421184506053561371117219316769299855261645120999054831925728513907300191973972821118737228976933294563961932233778513134397884195088518723355143217992393288186774027231031239100214426157238468406209039815800249285933435798259912628368742808283925360779535437454031418234002767160484770972578819986530532005847223777309663580641268650208567889438374128364578230085906174837674248570231535054932492920684565402109327618746103100205052066602170898743318631361309867814271381718595656446866872543460299892068834332334488856866574987742192809070240876034662066663350559549385039156524092534985305001650560484915954707849891201807057372561543661272522803180934820142187330838626742541271114537485641475588583525026795967031386038530589639056949489036406586349983277405934717590907704859441796843288407509513463598932262368989567194693582734826432304952292371050832494882737345253062634788146035260959340984320893628115811922868794678794813149603352512200384951726696135937730940836527810517905875964631552510138145362407694265104468569310168877292819823215939628383456651850648529673057104483627220910137442754989617052305007171640506883376543114952362366205042830280479792077545812808543027061937052040384449461318823699057361853683056736156904804961401143277904906409295556790294790370268448652928695621474343567951043750651203463715497358452252361763433223620039286101370459160422462139518078905571261714167219394602762392616579683398852614658543545174282496338133015478758922332082255142274288361219317829039869094715893609300839197011872229543316166470703783955292279859217170446767776779624815471592952816564363714654722207241302156084862057315923537741995212920078619653362276369751084724814852098749915180155744846691086554567469645709600514660817090150590010804947249738525506883400372803396624530236981271194002593884768200960124274750360246152580411045530943116127672286244370988281286543880221868680354459117318759096214075665031928329555043475597901476898481977768465971858481960879292274815662744699243041208944653274831959324541277451661148595505267882194067475222711274402091524546787578664037912450605853487937568951498327219075077093042233173499225504861698094972221647858608388005722891458380171299031214078684292104073289221387917284709245723890890173294223194166474031459291529154673287242334505501569899217950611123648400240326069435203149313786191005635201851896185529486397901591473742906842593571513077589970568248429194899420542550100388879010233939446303650580167317357655884313588449409564522782165099113953214081553629558290001615252797116979560495487367692826306797599749875484011159026493105292273217421159595971653093151419718411142473529469967383002402135326923877107360971068030106038467541566728226675799581737138452373947403813866384951152164852633666548162325976902050949711977742039703478678409344037500578017113841500600277272490697837307140632324325978905549755335743823733353317892344384581172186217823341837764200583508551707357211565360083965209908206952130780356742742898181383995635894160837542807239514613606574107360955006529939829768124189728244721568752402982333805591504104637698497890265647549505423204336164920896780603005547541724652680676637261646665363320389589073849158636203866750925700304734559878601273638276738488082528361404202639350790982075337993570774656414057819746178572573534046428742702474644995267962523329277063264472703844261525870310506760651746435237755811647981996842022190383840346903580160696680947156800080995935359587312498903599701091742691558483786510978840442756660453818646557577428224809667105534406207053891052127826232506337213199683668058434519646986182496027955887867505628698755152808760908029507770274986172042955552302300188252233104374869922107803214299706610219656113291299714282041693307875065299023308401772000107893960302691759994288846057029440371274771168782264225971968210445559051102277735680536930997549911504593411645276668194421301490129878028937834215503933059200537209406229569088217337621552180628850758597128276623772097933319075149823870218374857358597325309902833981697298023773817185606546387616966393555087790829711527030031303920066876914379385724326805833378306921946290652989196059950685582656526356679677761075254493779039053698078524905248990258453177441332626586211987340942097751721637726962020552692461714781703893754136439021878459921597512076059242876592109490245628549258051748449530397548702029051378346076219576116580844883914948949465699909925619688335250337184814072595761446579410620833928998934496095674748328933496573273897104869409031584214768232670600005584702148853412672074693942303131457838974892737957184198046491759452948978086660880423969667674012568589585444236881177471464056309239149274292905520307087289998301645179144983960718588055650484111392594709159822600266660664097903857230647555879417640972289333639139962108451272777296611946490710876659111123169289600903146501357590282103802709958136935280283051674726430825782122295748261460466401690756505177488564901196976427833304541642968340690407578702626640236527314714017072441170565121249600062346319357557165111115690084893080299194201155053314678777209417100551877893435872709209203512819183350036663360964600435181608413964270472664161361416270714847277967875566995376159681575595981683353986461001989787801086094609675304190009428592077785212523724253484081581799029753630099616122952765702953006575152955734671324326029896752170187709574022398052032775493634311547445160360441416506147425877874373614905932889198650725010507017694161795608537742710263623795242699558288956959665758791745774642879092886157426621214607521086103598672970896590487213382616164564698442163691268103761618795581438882896858027018103273157108576471745907126318519468614498784708044238384018195891752846947246963067002655151635583740771861176533759885539573242168040995790403556002749003346180060751235838579535531174428533892091113190890988205703434837821122743143724206783189156465209789037371497864899723046032932495398091420699497239940701771252377940198713789356702204275888026647169753506648985774942798059478375147466190196622577206721149442751981906927892036775735459741057018904349164237672798631897899741041388153792726665453620691337126125610588171009248568571218995845973164504171491001864745731566071669151466158203011204487505274913336417359445892040038722152122979692773887278486724577346672292513626102368785054400900396701397976960855896402613178620308372948397866576579013100646221793190263656605349805633910787048360878142338796175692005532066869053874888370121378931465007411388370932628065312054856718402845680033766187724775405242366263356945916934594228070829173116802502856318469315222066863948177346705732823299298967028083073272112801325015765287681089832860855359385474701311619057866332995967462270097407704784227024321405474696302705640383050373650635879364010765108814775470944590229360249891689835175954917683715985512524193298125304386595373743342925144772312028097753938204681409735716884112903462615182701396040674365674766778344402138574906316231761143696260715014740889322113782580164469694675053756734269767385312468524510774655944595448018898387298993284890866630520558088216677426135833754785967183182120126202758053816524459367160478692413909601165973749930941510912424418497761954549816580829302323347232532515636029269645245645585455290937220231992373606420961635438462519101485331672652487637428854542826408218926288565011051090466598048737036164621238182121110079378290974592797134775302154174803841264920987437459461793923861809839362366568529951269063922950796234590898682819857834089090688882000630748472220439025471239410060032858923844376453269799044742881325823088186121552826896854584542044220035222484371596594804021450416526625600179599538883335602562072552835590185422032843142088197687472322879329841770078652484926182725653878951790102123231552853923686463820660346778380716606410222648528030296095214278561646452639417841560329760283261006144021757120560396655175927361322207271662074694825550477293619790477339038901499368796089597507250920045545738444646955244445813333242487161780328437674534975418534789206240656506410121714083034983880322054511322186285094842458044786212900039848232323173191548412341798853003822475397171594626642880467904285356567209469916139090281702033153109918560167229983506174001088847554744460479611485709854861355440928782266037121376356064732924291178729364221312092921027651056228696651092282188604018499568109156321934124332403121187002492730463926039742422529511139714770117703579483290240740463069227810924151768345569887947395677734920656789069722242578216738183916779239781959015068715996842880524992780729532887356776517309132430933193787819057903114445811772721662634043699033852414601498729015479224474025076517226648772360012840127502270190514415284534272007814288396332334481833756067137210491916475327311264073698770687144619896525816413118275745660378691164067605316417075542431105815236380467962139958082495586711110447581826798432447761061268535528355300405459711058371732452914806212987454835274039885526705966311805926222495427052494849087746505412494999789733144788344497340671733460452281627884836335828871110070282835282526739508474959563312913873432814083917884171419296426615938896350744455239845739267080053154914969319230692071185795783241584920404266067861980338051931179444185242970844427534412964945172690845593298277246772195104960011248824850006285328732735868953470903038074987974486185589935288929641771971790374809432251876134712272791980987546335492147216604099760624093113203975404453358110746562111534237470373137146731051119172273726566414981811262424460210651129212093098632586873013840459612283843697029483176521706284119056941679404472279124087633210172186985860049220458542092533267606843011145446748195182080001403195927329241166308614625425721935637527860582711611497242908201987821507938621303996842439609869397431979979821766691266454277361007651693954007352612852716636002536997023147584713653771266799544800357168592732642109495466212965502403304410763293636305621195602211954743909715323455123334595265454970047076509749383554802243394514178630888495139567917499085304486932491969120752103938817966902665887374233486705390511813637569816744400013086671052242549272840220879392148631748383083323537323790997309220541625974155508005720717659024822836506782257357432984944994154886350295244559738005409451368568257026215697611645703081515089845431374660507913111780404491979383024339613805898394386896353320699034522936834816298954320457594658673645083403433938264123281897489823561852412346489595289390087308351203470038785777786453399272593693844480034172723592527691028960534275489219496880534923634687953262968028507032272420148265084906704762711624691815116328134180658030592504670867553634252191846022700199631218141321604830439085936389722472718651679668218744281696970243755344805210182635282969372019037525482825728826420483121095183759464340374179281945769135107625257519226497784186303726018206141363104061326644033671617490232804238562685070536012772233765945177102286894543629394940320053670626230365849468135796907765176773447334383658273613713099306088732898287561538789697420048154547855343126510534800866555796259584920572693210292782347364311944118561564321173311175266751843036300676620608565563441751009013417539267703256542579190063542920375850406279198440143953242955527594242759421181891231051743099336512187044100214592983679514154562167636246575741908646617192752271054457596368445652262557461957071206987512503788827420831912890524897869698572839805088413166227767944033144484545790574367513292451790484540829713733515948479712912757112836658163838677896691677189280077541751477362079121017674458369423955329367373428241839497843826356952772337026851779346183075254789861109701609478552234872369194226532224213469563201541323862670362845172495541591457451867762632022675188481975328546522295073068043593008017600131935574910833460322856471443488600209530305330742417199275420943685541147146751305753447148748748322726410575481503276092749601499694137832965945540541695505924355495816423360102332702423374154741535579850051612531148772884092124572968268094690234166830756985140083423468408111550163216150747925103569360677859472472644002340005608890520162864554651120363266208428928609343483926381524011130515185155105401186802195519303101310198069750855729459778385357909031917920582730115151852049849431368123971575354818069892060045662591305995554189873011008952215863784158677485395446914976057001306358707637385095578513954015441726903776798227083600763086095960851824321753616636274373159090019337289275424390380169042267314208186969449248074496707740372739089826103693691223993456201940057190005141044246451595670243415291752426116894958777679455789027463596512989837217037334886554764086349258841093474645886022745308462803701493243531912804566321231286669937607807522506689482375180056300244903199505480418794327952259847922766249674815793232183095015886809897463416067269512363337500806981655833238956344616573319618312412543195459841409115826224889714052895915744346241049015045259321367605288829583094449742297705739562342311188295253867778970955585728438092843569399406257888042681914691379202808323047646769407882970862019634921709707488789941388786603605657384369245613408257388138564369643137267469127208108533905804142577488489989578797586729477539441104806197339346320550057594730693874955686541759702644992459976571215292826064817129844578061907321102290313687082794008987305676246167183973339693803386724888496707422293758151336878095231127687070273772799741989673105849066749076956531980081969956932139059616991927638451428217558925830057851062911554523918219007557060868690770296268555121454976498233934892490170057130799910403935403477599377695676984885011692618991140466332788263044526598303057905687248453456841763940871538661118758195260044100301924393770622521219244994907711310125012524846904860006110659381533147552069674454576071040079267642752929490240676896007798318770986339216006440492831665514755390475641850005519403908948816805500689326337625838811732400230985071185404633418057134006529435041324444020073221912613180337174392940587890075413147708357898270746139863204452950424362945085051851635575570910023257925608436645740590607497530854141621508634251841077524167237737727705596525558453271413378303173514503431608071443318430728383529825823981687298272333155118494811462969271328333801221152135870428992572358961211007589705530919825449887316328202136437817371367935406797504420348980730791485909609500685337327735470026364789006517669670833247984779818292824245643283150375520383119050065007710702086842598811233042076819026834080456785245234093075164671388771729198565820236876864685797727504896173148113486311454691233434350107187385405666901939900001123504509419141466513596271332498314051057776857110588405045237304592590391962449031651153812123435125791953483628441180289210218783037967977748463985321126624533909755594053507457567868250575230961463761927686108330689388927013463712572195658852442281532123697113550291686914578928583095166963916329921340644531463571342802134154679825241724671176039348733179535385505858928306776639388335256302093230875776255719856748858445304757998351361246565007044443612470576894248565771822091632872326230114028236672274524140146356087221614283209678935483318412493888826398929363854637630997088157661598465465635413114513641546218333004295244915728602509433762721728159670508452817964957454509647766370547866242314959339961713753036897100145445236312819265868551597087008532628922140605148720752958452626112333815681625868272659450872698405518943085522999228790056047224841548562512916965392473847153343083787084637174904050600275238175113103571603920557301301099471654843767085619259203506929711046867832648516676369412082657175353461858925319201396775099286737518905402431761464219545654302070733045877512841871599930708536745652952693206511592902161458971586252097092890796504590626774438238102019819867255470776307839663722217606057951051962031811167660059546263227618433855554587157596243668469386610537160245780792826014512458540000918453808922244340471848376245601343682294155421958762069233074853324128356736233993526578922367744662794953610003078399604064659338337610595429580688813727215455952416141395639423246559502958704422595071957557760528327915644569026370716738053568816107121222672669304424743391472771670672682294018983707969752893078534011317627425567424530640955088974248660737334169044173679565766096076707920736619496461771885030869057075515819061079931723013781927752323002727443926435826535252531717676877287790656231844842786528385451358141945512313391070058790182150407285433967466773985655080439488273725128931888099771048027666438367956095234606267446758336876156411591031738593974447483287123823440434723830105637386217330467607572493993089061972953619371884921899422884827134183068854308247473163000389463494822724872275202808374036432106294615214917035297086750398548423268222834921315319921896114168733445392568582774321157471923558043223186747716449472146145725619203317359113795695756413918570964191130652017161199949662120174645909594660579978192921038930582350775522423001283259025996608058533356241182377793347141944554196592306769025936405319293741839790456096184339376292367058000614714336544792317128565856729147455416728184017801334424240831170024970261702463871019617424676966511334497106510306394477515547009341516383339275235843385311168249796093104214392482419943682023688426871320616423600226526642721044584342875015463283515086896904331696308479149882430835520151153363884193364394884742634469437949018399585314143905939703705272094957175627213250045868770926838421437726973362931380925747512220436017242654566209717617067919370208776507355817646759154298534033575135246826367757657374509812410189887860137716081942938623893762257166615430332343852906579603019983839785015145972311745627391854392849313858398650983400461709236641568027028301668325136553572818070032634226179994889770356324975496099844736723858424043290802023521363787925302158877040909712557794029752141367483452032950739276668262804159369817171477734077448704732605897793186549656274622253901727369815261358351124850152264584415056755012021094523808199320538810724819063919870182556973478148101110062375812541274755639807180669529602746858441640701538494818280460040684447955960158625750963358850688943595649754643701460547587613738152464227439389010854932436205347203165591740006011895806511824176955395682171696286191823820646370026660750349230734698219994151751654466899083372001986709292385435178138254887239254750026770758615481084512380316790213269958679768363960132094270923232574399497527978196875748240415488077339724306179256656759747083807412652592983518648002279591689664863919582993252344229701711121371381199678081551181903995560117738240457753652695523730856831413771968869067627853473175596188400432684808282647136660439275951685658065634882488481275236848406026870305437715041826401721886651094211605863398435271861722574517729047677719145524541399534816759065291915904756909561383123090789694285525855989182981136213542909389944286667544267121859601294722897747463061239452104073978970997327113828716938175653928738484764083810065083739595578644701968533143595830819860433165592624804142185413114024795645544205766263433327693192414266861190790762351949408176983499858180310633501159336313944638529256172495884626915485773947392945795111278328174199887019637904826532307601194431743358267019070819769171972798940449609936742564894125054709447740960705574621031788676918030356040362525228823900501183378217891245065495274162282396687231751289542267461701163436660894969498120267634275660510599481943574356839478688586876659270879603077260571321772747281029856076408691033388678487967340871145704132336227232595142321895753524488817665950175335481747078400783096223327597590966333421753079514216945354537600512001825086253637842627809639556811988639545289667281273949401343216926817712828301161624752372706415522559472696723041441747834019927508551970655862988335731554850616767223530040416433516697607216373882519254571543542894096295959114694531892370576977604653469135887951771557464909259555920390773470768086513080214704178345685078739778803264300759917035674310227295327465946318198716660555702748565924453284938699733962081989254137332635152803563401223265575229779986558092607811722437611010506663260332100745555632003422384721833789717133818247585228755486572086474428185056069809308110067014015211852139790115684703974094297558000158412734524227330927961646620247136708179053246274341488415464708691108442735369039060747144226177696042749799402506456140666886471377727963742485903937609425223916404086078094649192073845009712610762355894577295825773978228226182527269404979741775884671638912521854386344427344013710391318151164839571313458069071483283751305106527061843988217271759114809276005120392047665689235924660561049331403457481396384605350653335119592814725873181546039907260831268624471642691545168647147915850895557696947362835562797240717881582236572529483564893339183325305422579836279149702419496786274291950838963054885230916340376684204635745475782829298348435971418520194992905575317259443216501006872784843780065057857253803164677766498421405474822990445735604621915223439239994110484914270855540313259577387464006095313794355123000415005034600271514391577225279054168128230330629260740550307371834858981945501344058383152248498348866319264937630599001896069215731933885114404124443716500938832211506498037469685013317093922023995597594993358380653715300094461394831833118648398686112061274967119978912432108580700547907815493669287919215562071062172994327040950331261385260615571179490408766025110196849958464648478843616845435598557783834887930859169465927475374750583231789312002281066413577659826399042464010047386738217366954802520955718336627292727564936168482290690696907092451263984218443499207595169406450346233452749576547347679124279247708142274482209581507751433763632141249092505161010632812931541630966218217111290716538346112246801838130085503247514072264588364824866214141308571898303240702387888965587232088232109168839844007423342342904170730455351580719313477298439859571330670204187471927762474125619949096456104785673686888590465019945436190713204405052557628785789860442759844515905611528650923394824758891339565993006955445765910216860248959617258000818140816413042731526226218687933048302242128742529707933194461120910069473927897422439910909765570013389922520361351677755778275615353757131397935515939254477552567396755046222578069035994348843780360012554812031339267546095793284847180096137612238662144971620201286853230806893609842580931216600437005611789151927126790163927489094799636873623244346825215692228670447801418117066983914568967494061584635599265780333254753782591740729099389095359929915786114859812157129717088402790709490219450437455580144358456154992887692961350963656245386333551196233099781243659446212042729794975568074220390979294114300260926671185137474515242328994407486124568196724148961121119656538075177695277548428122110767313065624377648911694657257470093192840261655448303583912902105415248840939222660394358615667593988308994895675970281335342439369754695016554877298883352635237586237364788381346652622200326550563766077526214753981619982102522353332595118021985833764148889739007853542216393033558434038434351447629976786438491922079876093850896949474194298940964896709447487487555121069716003751590815687205925981616425921983734617792138583214704775497769697914088623073888906803749754680083250233790498840865909316754488354355693575601379046941161771391935991916687997497326367591608977479186718219636079395910502680102059135532170746217169366400850755335187519174891153729630407843202236970412044340247709288421779597305068869109816687694461555600396964363163359540694434603880972383742552889906804608963791164872631080130474631009715319813634554554238632441730516319282909723961269142277675513195789435214590547911135370676263187165955579556627331961385975163345269847038691234785933396052741603943976211209084072407034946133838407678087056894401099958138219353125788661916350890307907232040807373282956137194931889504684348963398802030688742946075811667304267768104390500923189681662664147568105655362864077697657861720168023617035674593678929136067126071511885828970611258546426731003134882842267797780468856005589583148532566541493020692633190013987268402622473396060124281449505069969691830928108259607671519061132626642208405112836676496611387578515571761349664071802485510279714742809539857487926282708201199386582767655412029467563196306333304619702377855270712120274431430916279532102204220177819478811748924825295956477378343490065442364188648617804278887543425127617906827786972938234544304657347447783320589174995753642278639042494036991665717114672631005842409504352759773181583003496784132016078622632029256675255917834977652613904423467418036365372255239407886379438834127342699468865950784030392624803265238751568904280201033793461130292402992102316793089656963588118216069871820699488720497040940817101397485234887469525267125166929404873799494984484797975799006831427239694245330087700528644265660330874050641413799713878944476927840736724505403446448910131323448065825667322688125821014472043840392718817549763024005859809002773182192470269616514579844827951379574915306213172415506954891661780915893086551143312523720372922515227335933087887335859628207922448029161797764881778977327489592030855210790003552322991627729741951275353583415275117970126128603789681872523211104715232507889867459323442930940236349132910140488672322685949539502829047967960556530162742083643008099753375096648931426456251091481485248086495328290454630269163481527283022296453699054387120759897230738823932803268546922509330980807120586039292973047309249684494277929181331966674803686860725292341078263109165798722426339743007997178815751740715913691541861674526427013218960121472181995878077434224435847213467397543932386985568060855878130180352139185250484669949984614486613011861314432900432840270428474828850644625720173508647608929365567181730613704224894154993755093947939726310408204233078165314434110038713681127267535103703796845127835701132249600754967715861468208826938424533349863828531656920583310689914423182508723886255783890609259188873098717971941147014493873662010253435570468171973052124134124266352334132804382039171235558412368750807373746574199087377905179471961240499001656987897344100134905042231496902859481614981003159824741816268261904421099619443133796971780623052921952373298292636498822400284398144155427809192143217486597172476095052519621216287793780528387595537750618992324007677315740769906417955429593220879014337630321937697647190432851007082763175519467635332702594342155320885796102326388159727739957292294511740255867268847124959209703174988672586846550043142193096060037607830757289569341241100784174481201640648425024597446216722355159149724761688528824897191281631167905601600655892139868947744035300690495049871347134997861976480332237864736037481696818574703314643511045333350258757861557249452224052990068792075470916988312894245289402508739122023741696172720454097030944745550472887878722190299257457449738329235049281134858918392193144622620440855794178715056571355079505982992600252242235251666621600551469855865228519753815429260595179070291505010677518501542499855050598218885811707331423045403309936062321482739521114529459171211459773816080173835516233557629296617280022707416181484825245298640976480269020647691937833840634662535781626543006316318610985276941416748061438879407882492968620508836013637467008903918659307985309710166030878204439707700839935046946101300257398505631114519255848830754908271935831369982121779424326047038635911671303052676047082576883107566129064807006881118507983258949479681927526792154582282713751057379936998843890098390601361898883886519247523123494372340978159263329694300449644298969085604691732699847674252338638349580851405407117187344798219334505768640312366457636393902798833815060953707933649148528824811796399004853325364439197548341042839773811325399348344503452531788915772393815273752201874499351579389253869578112952768607408573904050844361116956585505662656260908277282931603535628542327785856682141950713018874282116113118257409779070990428137533485323195937405550911738275820168497994924995218759898893046346424988620101430860750218440525081542435828663457293581091042059067570392106756411050007690309210695325193869984584727385278320119349187165280643046273077622513510993632357647270172250676631639580729239719945179142035098084233957709900497796560003612823350227250649427849338076781159057944353639579013466913022391185242360209717108632942572354993978426773774399087545878540443586363204827732759218270463039210874939678874155090313272288576331247712035442665950485034755873243505688699726178478334482538506996878514185717526906533241947991196978211217785562063171784311061815403657224900714449470153119880123530651105698126628289259964806374632489679504251021853814794913887473137435398531303404372935970614708768160707653031853416305058914553522661868469999295952825395499146323977962762592112194731189479280300329379070988737324544780576830668417399514940987598973474732051975675263946919817685324144569571031194184710293569043829421538137384628068983575490789229590027778430980596087158828945181288293240471918258631284256047975102369436952235348380888683596495532276048231126328416578707183377908786888150331354462235969122122808310110027431822343882154676657382832998745818378802667588107609448243202762782677286839746918201269652629934303757119718317944169515503613977407869756854217256940999399065361699695388776894464764038409656360440720369188289672965761419279772138194759218484998485951343208350570605472344115873366490620396661770523666031049377393618368256582691882822668493436126821954427369183404792111724614198971732530575980336838812938895956688156398527801391106267530544587272307185070175492729181107408513065702132006897636973214602074506073332679293908284935022783341430459027555946465370397186117606585362671736734423535706474644104347690340739447343292890939429152116747079564596741196896487196946852169280580428009862919830663446194630838254351887033121548955544632484475210489706262303461926066388484528132260788838027850426358181704779660817942354245164988304558975999481251599686727901232724707936408234890132840898640125876041666924538965187181803693837716342800603998456309740910199206500486998023778685285942448127338948786174139352810802042103533824158592535555450060581344336658204866471668468925789464139128447299315272590791572044802774725867568929914191509732535975925775804329313023892996041105276972905722328837614931781241140816117082482785819020921041367559030487830801531232279584499090060198409811828236481124968685702763001350660846628648253084167964840447957998669471255061222692382156566299445609414580798996941959352785565785858454896752509026540730696290063622510747403768629342763517750176630052043868229434732766780227918376943936870887326759452831976117559829454603617063664253446242147340114379853073166813688507598688377844335325677913174763503839698173000955649508590746926003883223309983227629324739862662658350883163133137725337484961020779515522144921847412456918954063446232778569554405511887414232683552071686387787967609850112144173276221961972273996705083277497886570752044971250975905514697938266211508021737040874071671553643103433251025426509249179161193486323578279185666259393300716985704679960583221721599226803997835961906488559270557272087874558773615944366959045113122226407782427218896752498661646615186011590533980242844655407884837128181227945396321553413554105571180130039934651939546216918229621538556543051926500322051593744677206350074516957493972538560340508103116769443753200936073448693560060323002316344033555932356091716491441476003136775737449395180968353517012183758589903028523333562646379741969310696175050638300725431465370425279096596721606999547673624491114212136482468050069310983960090279451194711482357591119230333181127970728425165605541000465005001837560632524770578065899302270308543187589631684632780966228515955269269155497465365644770131589063328098596880782063819052419986147409984126999780177995055561821239999679724739194555437060971088045241594940144560423650717506036787078407717409116484885096646735432878091562446582028902451889364020790469277640045598850787864890753307448278024964347683959406183169126080619328925624056661864983907285821640061821875362609029264876821188395439764268983625168432124168698242462162969337907214213044763955779108748541418344281839575844930303440915384723107603669435236913690299912691206506305915419088728961094016961196461977104948291540267161559990626402014978594773664007836227612014320416871549107239891353401882872910943443512602336344837896266077722429398087115477133781780388172004010110800916732597801300084955944807415235100440727926798153725622762535718792122620492442756317894874334873729928333631834306209323665480866384669629004039190228942565878291280970816744141826226443329504014249881434228742685102219361924027628032698895150970770783984186508580965909449884757826302444608417796102213382479644988195008271200001225530003387713892678580439713656803724026786012474487080005124537006246331028564647057566486267913863729111044820377993878771876993293424692047969911926009188035661251277484620669270694382669262878781769245853811532556401266386585185584734698808784536261189852761445362177484840880813468406185107405347121547397859661049692054998736216317679343325452707573204164956152782199433691291211637524115950623867677453791826241330041432069563666289498472717553567730084428247614948694217854752782704743481642891592624889409169799221088172694220797487614756552008627429908766887875722111843346005173852828167357827218581804405585415894399466320721843901861411461011028509065674601181989135987590102295051454068346647126856410636573662520861501665504418295569301525968630647175053017287654152845600560994081873466975445334456350109122283451089103611622617098443520683852238776440615369595323819886504225148223408304995109741347953088692516540556210837552075528359909399008736995025645458771051588130359479954914987869985599713008281813896257581674641170111629389985696824405929060071865679949030152312271180048043409950203479915002822471011044438708122179015029294255014617068293517712091064723789321664856604743706205469164912332527182776782933051029965566672671152538243327986513158271115721568402665259156419950183091641426751083924237855562533273220602684100991203384630578384513756045036061840134149623749784714777584679526128979910214889480628163279390224101273448168750737737126072963544435626365595082808269003242782816124334897415475632372321911416725165299093348945967522480028308800276592806850960021477427409024754459590066564316806318678505454085920425034502025934858561333093152428027113115117821716796923563973170413743199286541635788020057162478631914275294235681564705046727292487064853283319186280662874837172611552524204898012320030502124332358123036099620735751976449793249367306702156118498188890600044811116511428458633622974587789362782562281649011446154752530057545538870141165229214188755507673323971433328025788227803480189368351371124423999574965278565978294031972882034023061657817169778653379626354851500078587615660811444063108593953958278115721141177900440888610709265664199273539849074048618990060491240891643678313033247161913155668227131212020429106715552732127573458492184162932578944671764194200559325338005232893884750214304311060818362876425580310136118798030460822092773614520263456919978513654675371791657423193069955007661184227558161268283850585710219799817468730159934455220027196494644046480489572825076692664410119047447723045252687605438460923932478928306361478199632800950276906139708919193313241297021940671424697671832954569027554059989085239714106512276287182733002154995871980315459215853478812838081247261682382304745505204643075719737521464353426349425747660420798947585096741438770489473450699548662057011787348878246481948194657386995268692662354844750854828273523574831190224762881315439776807293679253660862635844121502612116991619282132567634493778371122974588414322189884385660171056458895544267995965244573551979761550076669845398233510667733472271127906755382528752004995224055814052823622937794771312689358693911284558612262763394761826974199254073496791546793773146001994758331962721747630445638617448813840590966614797732362090606081099878756123032701115172819679125105072875044521351546408234501330488176255812007033903073781223465423419922060423441600507003229095748061294752149183964060678942783661994025160511607402706911636227480112875938727593460572807580816478150358799654774006351818412914510134644637334102571865573908911058114366713413239321836970569133487001646708809426186403481295549005997200466712195689245602914498406573098890765021332541081082211529671531061411250927254575548815394647201478511072124479105933102944802766641457886380127609759289369401126396999288060706416395268923941459384658627277274445376171468395467923210633232504750461313813519764233748686491086051749548731489520454901907333366413284541407769421162321837618906452058654472438925130390825728929909149696348181006107288348104673098544666599866439606602665733676598882118213802012263421693716514291408045952527548232271602095342840856998895380390759035940265150900499601438460347374850259311042245300745818358133219534682066958776961096514894785976242426778909064965365610030749182871206105225305413984270708889041391617379809457928935038120679315688241709476779992257488111239220224138173710568815297889477364508450817645736540187144690547997853591484530949237406903273165298136959635403713385924695484316115779863939614073237558421449825721556014058309441198159508541149718609996234630992920216965750958262130108723775182979892608838406954754839350379957035937822869284501522714568584216509975424860091384041837995013925719973677920595319291765266699966840941376318570215564005784669312184418233860473511439182988194115291227873545422901526154155303558327716398232315697430981364020914950074936969713217365764944299467769489128716561678930128059273905098888333643141624481858204717812869984454631870193330031510445513385488591485301451638842087324383417112780912245755518777737771024815841681374974922632271055209047006283601356399800418812516868452851626581219323394449817682048875637772154546883772797341721197529063934618848098013162535669713622101513724475777907230946421069859101963750950035894626682223978247307958897187658960595608988822272088498753336526579096868392824788695663395378644545088535934209687408497956497757006166622007369318920496724460675954372736686618338521932204871023135759562339090432560878233951145491834208944606200715672369335929292955476822670104731625886570285968211912698436021354762630833323140138958023262547325121279379859434239806136725507045497217415988122191473309369727201218093976094053805232285434698731837505353589435271786051894293260795753177356396285437246778301042125997547671538019815988324504682808411672349941660743538798313215791035791110383287935670125864219741426043589300750204610069517218519682803676411404570548063315416773440799958882071872712147835810248486821142530420839448565932119154031970960466799241555054531746192548427050809430117786281939790399216187356110783122189442757791084314171979292235348526139942442388108310992263094966813466515339023236639114527615874790408525495168668974850636152774614640818216379507410707914217117025466936216160431935701204191820335230162720075425352376714018271895174287111522028365724544838739759040546505190955466500181410677300570406775473407929607008003707481710566961548929896522099902826262651532467086042047666205478097474833490806962849514944484707053064725955960259582851807741013461465921979402462549595018296382604975694556242529616660728111237102947524984131922498852873439467031885076692819553009871282735515225243546469663792540504837038500813231233879491969227851640505498406618706726443369740915067292303608184384827905937751748374270565751943783246394423132657292778579167491691974182021066191532283440381457328051878584618717246950791673079320491779051544313393491298420770869260527895659647685589821690161937066433081997936928245708440436050712038001672842084036498914479207856413933137172166500917492273443090479798448068067867647372987573710815596284915950657373777077332906643078125071002359113768026651594272967995570375463147456235784856069250745301062063560567286266723268227605980856481874554215021472981981762243944999778062761387733683934199469743816793484806756927972404622999777542719779719841608406243923845181364488855568835412248474797452619405259125203254942193997465586247681914865582723600549201098751858757537487508031490731504285434490256025644466516544894168673884487005717582289580355229352721991822097381785304624086557655614292530347855526482267847642258703665535125123731987282953740542123537660854152735775205549300673738345172163574345425226495135071663581892209599669706381856835707567917223196492053982171890945051356106001098760270559154119098243978028011142085767481986047146522074108033994706741798976108621064029370305414141196016803557941397610340248117229697219927868834665542287870026357526938162507539706782073167746531023777726411099607366139020515948930773804300410020098858935322442485329733809453505204625027951795315595483007473747033615324602600090742694351500889096936626489073258360517544061681904060155050334562782270447457768934565568923494058738663306665825509817397875834004855739102492768482075414958973626082592190183377032009790150441985283584685701017950691295191408101494092841271958208129570204800465778290077667689646949052658132665175954890592209009906697591509916871326155747916341723989703507840697355988096941846269568683672715651935414133489444636088335710959912376938114375839920542126983705889190564081723262297373876387187480643799152588360952503334392543692247467344221489262351804089021867084905529679101666851565348387340986943828621366266117138516609982746188016789565955521231873288991086103698125889110401755214476915751808078994031239788253164997686806775966505668655199705034302851733730772809432211385189450589258599086556488166313942683280216951824761966954631886951273500552713818283597118936800898117384503531949651849118928909627467042466990513585123135532702316942821847995187229982042532330360332381748195059269908714921821369359027990306249804279554157577731000408081794087923702602187613121821264509042386331699541474886540104851074278059983908221688309993491302165743916075624675969542480318402489116486504063238212157607031432635403912253154013507407296410303521813044692401970892993227562871248534406397046605247009146786341082315897104183874392093744338799366062786567560776211612359521922755666805143601562560066302462247847832328685972868531626350747533274707428447416212355790451218470384474777276101468945751429757495403520854734469349653882957385908230447062643765134106046574996046626658442602465972724603645693350766891618621812834639674523943194218957402385321267365935139015654087248960529296431049513799411100931271583271658709350842279055760969291125914223325467143958478386759914362738704774783122961837664558271733573405559940908755747965021097848788916291514639197197609713453013828208124970117476405465858563393366350639308930867136826320428655169539849177633950094900440458874618404247717156337622614918532117136810907489876356277442713371366844976055034462426146949526459996075868483842954044331924293836975045087906624118218352540945403441627820692646003369767903476047969836009155852662139959159476814616641292553227509228803293350776477273082962231613590248109051421264470845158060709057037463344113377707302079613654909275604905764410783523378917153426386859633170982700572396597473996843506992235758267082331863427539150633972263251049330357199675221072716062404033900916636567988792017700304143242659409426041557122674814358974352450252452131468457107349103598120625506635351438837701127576805849817325480875131326861291285418857973445648504863816328524581450723075518277668234326872688940387418757012266098256452231661695245611216708861655107587617658246248796970662393388671551979499046794191559294266337614296016775586533594819658942833848178450418759243375827113613651418342879038731150185820536085791933935618725975480101932880887136802726796331775298679212727540891010940428264960098832244958876829291787198059781172145616131736601967993186460482058813744525261896578997335403976727016991616932094637470006872740005697807057172772005112566239631929205246679728144528031267556125868761236549164124190194163823742839813099188751835162179307801891452623805314728457611329068212247605689030250103373983117954588931446934518114407019327361691382490288157089474209259644571015831667399002145767374468103054170416823382235261420148736299107202713871063382120420759206457760408677704966700024732719532646749660298419250952813330580244548181130539161737832128665847756684450366295397401684708312260849290470497587815092515071926489483703017030140787429996782403421587240462370913747183545086033877944533505272843285063159143244334919054651245089088347447107405059147593036830971163248764598038335183887728924455667786875176660924357331016996632019003116470831643029862731119893129534089257525693363907542478712980201527830853960050866413315122730953535760012760975806856410085979197621869928568675376455544553445803847915079153661667882333085063652047657216960762131535344559954025847062774607971926002329283949047899747873811213656452983051330662450989431691082000818005860225493089945754733556353257990197314280219222646304146577845402666065814789670899333232577892515338667603309738439000269954007307366659262215872525709360673240953324207020862956713481245620641153287035222758294256445329318095513932240623713330365704210408842688394527392725835665336154280907660381029634397930767011846117463647061774769487979863291639865212910548152670553712963776262229336933121010169130390291753748111189076796762430769359388998369228496641693973477980153257459511978489842827890427587803929973457621715119081697409179156233689298423101571859593455480465908305718967095404360058171888024103084168026581090682791009176988570609123842775868926101487375997451773408326601846048066033482029115642601375051494288567101121871560869488896340033258911928475794661986889923439901876036419123965255390745855438088211601031854133018900009486459975678849884851614333140467476306113226689786372871002579302472867754461770841106996134348172955496551390686047281885827194395041865298374868849328297366440815399709942143202592228388653157268445725988758535515682383073533588834665989862928229907904695050623515976896283291104147377144399316663372462440995776560425236324044899832259515573046975715772704221881430046247223700076037939966827992372628869620174064552351572816376699475970909727893413064241255019982527479314146418702873312358103952096951163621389847526283963623592448285114877167722339041585773128509142580243479163809106851449341591616845008282137860277248298692256219959260815837938536218038787595281086396251966617485940129166809423319949186296018181961765884489660712304483807188971229893983621923426205257432285314678434891301546067804836017552722427539302736113133743740898708637316996645748656836617592727854999725875220984410982108569620434768191550289411713609706387276625261995150548654932771536909974504657613592590725567615191581972118527706185352132899712407976731896485036077244778712296880235399238221711828101588329354996891470902824883106423433395799012352894558740286123151373039764548282512195006350124707632089677686970934750838356819995081173314784082443215135985370024231886941357602931626028507785356160452338889469072208152453700224073760587889671327104050143007170680598975652323375683735643564024563989912929801645507075782679544144753467567132886540970924337822356809973667995302889649291146027517128732496573716769303172467017216779968313303571246662650185922021646976090035923286901661540521970971016997491774217443284716078681148470417969396570047904643788567792198519261128021762512387959101127741359914400382456439005002901115737397578369737299343656329754855254350996892121621682008039581795534519493113545019899168497144686706063409925750340276118098821981066418266891009248015441052717314700470886595609678614342989681637563340789348641891112175671647379766028509573062701203230813542047469296357058032276282587500602998327115919499519328530956294132698983452435591053022786297285126696652460374391234649467287597198085453087417945511867071670192677287035195785947416231820847976211419071935853232038128188030309415192046174799260505395421215490940277224966433311684498474600421746284770376447012474184965831667701835733368185138772370402302111665265466181288025735430939756301449181557223164561300714530380113096407989377830055195044012537793788492682164237012077777122605049158591584128373342582190047679164874817917980512996708943918777970172203064606732111783532111187819710233401690713644789670976745102297688356787323678203313502544668139508890743466539734740392008466733401321032926120308599384692897310564892276651983926810852173441396083046382761640563397933477894531027719439432665002908409628324257926548129201858910781808703008152417079297805187436267924905815647969276302757732171549987772639695274113112882053337290980906147752317245290809019432629292507304970735744106162445405179670238598466957397183997673918527943070645368426034268279127302679933100962224694298140229779112682832925038194803205667626103834737537970584603766072900546755297982578353605768325988972181591503300665103167078233754206332726285039467947865215508673713624175302651858766761651380014926246445364130006688824602925672432556503938953535456370485161450965171148065500325213467634450000650265343045033351499502454950210405506261207386481149881167252363995658069771261822432017737819177610713197290623157962539312747994662353298700300632084484065800411895219222662634045502351134329319633689116523763894112664434188829134951164628252656701796070623644915690561216515381785817916811120567910863969168863999396496940733240817856089509390440290075244554346544654903603588908543764162695135346196867387111992001080376752435707791376079123273053460936975732834670075208709473113684246102725757118336749283502243174705747300577993843326825412917167962955937638261609989810823620613721970875768479844835063821511016434063159505457229790450116962899984428851291362422898614386878892823392483856210635274028068946276805103446380452590071665373385550039101585177096223504016037267735161458404211145430236299176009278475212481094598752465940719780658056965555946971627620702684412087829646723502880656948666986964419365811834088750953224748451439652232032173660284060321821765447445292769085102897993193222277025916140368651822936346597561646435617585208091962535198152647604075569006019176116892243041457020614172871639028864721020459427526194100027049525107401953675482068971586315408954998861852384413982598090212824867736894154697475693350097818316247769387336145982593095054414442094304049015158207909530147716680400385920878405406721514386348207013802604455567746677685951704131281916253038784274592371024879584830748079527360012429366837710990822650295005919078146492437011222582972654534351489475766808242455829921211798847565861005189076993810494934836831053161992832309689557516870251403190984044773032378557259383323610938789363093638020467302379993219483160510066911450363015895227491419136427747491123586965334434235070112190076414450123227642387838840643958604233914828046771517569217738976834855222035242710902656806719700727907111405723260761297499413267634929493375473188848227597708197124535547600955802801585974648262520345457494994489603883984039525611744176219452885922390411689447438527269691206785622662338605696417752211883232029494190347285159391160080382984761568202384198455481523654288857168862588222431434326583156470644289395630229497559197564158572401393169391429051724115340714534740250921141140696859847106226324021394262835314132405049280412415901431470122017874939158133469387369477123426664086752897497995988421516435055250598208519329169751271685129675056057063889943254048994012454755888265626019847404684512007756691788325280886701053379835744640920466584234183497802822167865774276174558314868587864648313579413768652903949101591902388259998033391596963288180573956953850958359872136889656059597843858114584495507116279878714649287217738953366747994093881427658700658575129083059260207998914637839376259878018173762190743133435159780471964677585109646342634546252604598086544742674031534502173455035014717676916729868252149589704908544497586278493617845584699270710274462949415784408154420808288767359131110713094364255973441572096851671066600864677965275440148104912083047583642730978756491769931953437576955153387134738606635740232977725815330528490144484344097240327291006745869856709635692328286544502807941803335067687582511303159578523265963093876359260138119527031536205394545227907223973677004450852184409523581793134718148834213720219407595287985081749031862436035936723593395038817121187651043880618085653883693969602049211111328974729263190116215335516176201157110688714673145912456672206870596328554513954289523170847668023172795958570582487479051215677095626632190754857148726262180392110539650144042370770262379630339544006231574491722875859218993150439440447770870109515792100856893961084662131953857754340442124985036009059505471559999141488058329628545145936360205398287153842563692978411312304088173178805928137193622786090067249887274531152671364459398027628787761765217217671481448854090428525050099300012985537068932808553671248807449199275640410267419815491174079677340212187304117024542902463837722790834834169657290441867820341256112412360747144401501186898588665166858295063282269497607273995849607604967133716577433957010812302057288021152883045433077412495870673626521224340018219005409904933150904716576828631544861445490001335205378646743222301974214204197511202887289355365638634242905824912049427689226734687769712802769756415434423242539237650930253074291246167309996956880151399884009359596938685271958954119898818554634463730490094349183029393366878371214673815652221492652797220231281417371229891656038623600403046694912455295118308165659144085266122515152561911345623571659187624558105902385200923579994707178211249235082800678129539893753310669063327860102104486344846133597498078117121561741754125080838486405989296209385934706565976338378614995669577368621760052716083104308277991241120188045121186356869315940937540234056105506354421000051127394510363550186181215332667712436706029241326732877478708199962766318302747200045129063802118451810573203253942148147830650555452013599281309135185573881544977914310017341059897519513326619049095875587446253053181137665787627090003903777331845048241921828845352179933615686495387527373981684605115999564129026290522795146979283113212143876351671852924534323268489845658987310592685754903620150624083200235811693233881236883143912649563476702502799306982631015137123106436281401765869696170203800479559261836291582600618939742925320637433195428701021422390534476444482990557846919751721752142429561924782193732580283685970725030221810831492710701360023641727983277413759371702712123954576868855422286875625734533182551533738077164529530337729359780138975246338156523935239805677178058338887849236166437251170083349325872084110265346749526310671978466796462793743576247198029460109870867733985583930482117421513425902938458543128046026310598483709492922074201229627644810739490223415281718619837598622973697640048219477530488290877815426449936784471743921401145623879812546450009649805707722506873026814675853003563587890567750670270969956057794277786180998577682518172209319181718912319294529684610681569188246597421827223047449396426290054740707254227238167415291024591129837580754456241761846588155842604956391537632880436103302719929868899061070910743048663137414308811312890310996345903045084190209368417629139609832144669182328571961317572355867733362929885729233808697108174596431214213222122461811045725927367467116204040461883113449652702832886411772922463226035325829480625964515325437072236487566792036466351629571185178873251124911092312318035016706859682016437590342581232458230900744805449059529137587230565419038425279745881125807845924603584078346360032677972828269478168622213783509836119348319444464281673174738565818243159787473741911963563716580872844784613026855503561524134081837852547120065000182561615580831993970276253913158600012964552069012149763404127957518479104515671646656274614514973923013694956479159217532161378493777607297147135003440839982888486841345719963035128281710978215004284604566516839699636537999565296976327148445791162939403040703770952355135340815399233642976666020583164412861840120283555453062513184463522253990281096709565324718788583624930884159788562516402550901168019564819357351822434051430302874706656810198240136481807702759046113264606239522507415688053502305311696586871438697840569876317146495310002702927465332663773534437638591796817236654184258650963553648446354346302676003581522223716507626972316512966663162710698342311491286382305866679654813043641725212579256478991080845433897637146644251079518354518038730963678935899701649776957287108885908946484695471930128625454028887766901548488549963044449457152245986153633402773866963445034638421060161043494615832561786642717084349044123761659312218565116265333798783358022062741093962455270296777414637860483785893515737162423055622238672568224778171090441157861334415244478027909140954508851125798604450785862004337718917112185533244942724501036497938216793499761676081280527124638389224673939761657693160912015008006892679957987437880416307693307821609503190112020070459750440951870864248666964346503093189396336394763421789443968999776581408074923549940249182689921990473140696613322310236535342557421786190183465099014349613704310533762920512512831249008140751417617798170441864973776162696212323241017270528834687584683740820553661342841350223745240005341866254686395931204440344707300086222154846440142838402508451858994279518927315754810453872190679363137130953830215679815662661178738880571267421776574407496629564935297891667746037826528656070507237350790624418749409356517430604293558394122151083433585185552866074038712863478538025995188920764435712615396376473330756706858941142864567352609148711035483789385813765975619383815713155098379763152844359038516054282169595186499934053677699658923055800062544486407144465543465728856223323494441343604555371269452528086382868275355360231934083448924447389961429043385173042903115152566602267006101721939334937851005664858883387604035011985569010869728629734402576759827765529870048983093754322008423593918666644711401599058644011014888701172452996715996920768263109087950076675289588657296188004724496493046382424146801206243531004235592999625875604698408631598602413043304011140227416538979350804385715718568249579531780228491107564114484166854500360293444719952590337652697612486265055167187509956300419055744086212492995759473856020064874508657125576264811424520370143495992281055142741471406049492598604646185468178915318239141176566509368708322157277833527824931932237308759423879549244244982225010186553522942253198141607131771863631789625403557521835491573136216171084650216571455446432810310689380773521350546484335721701352878256212284951971612670462386158603618469698946701946502779044073030125382302970318967377264323598735279603917864322356964840689515643174519933608552271645500321190553850920241871349756286210432911215021183294537559935599357510847614489674090372965983182319546465542059200712947619073250369222307690794806577690597012206423182336250935533746176539985310666750732950738218713875210030547526637086870501252804524323225238019463478790004687217020005660532842592354764505257420133070540490752353432411688548282000587329702885216584741933553066108231480071682341985624424603209615129026600549657247521844283347719225221211757694171237996064056264074859472355133602653976265350636472701932877767458735419083134700233772349428897434533916881503649284014311149962075894658637746414897855651689544801850725270473742884429051356836230196418025846331653928229504858254292720481289980644919573530436472845930216659390619321505873522220541350458859598844682170209529457588906350181316460480175432559953485301079025035210888129230225789794291771071196303481493475328786577374848691285238953031645608689676175744997895060231475742068063609132875651752706997720063358461606444981624922707457192479993124013851249979281609349367255818395389507135014996444317051965413504849948997072357201476424226196027088354708834757273714721121674106037532297998747475376268318631502365297593864711077460139982693295290281987180976587341118174589529208312777775405142198459045521345267298162644607623320007691455585372522845024014063051955127023096340476340268330103251708405832631616648732205293429090030896231735769069480252861947827434152192511821147950324883538082262316412654927411983700990264317797580601059615214472034146949387946613085042911896459559198279858530377320065089975192134745968014686448050003763794227952435928682008778542966115955197943840690354129009800481078695284487398714706580695248345156973705813872548109036264676579434653301407476676193374660999484429411404837794096973271494227329495664383674014857400479852760848940871151209429687388795946500793231788432406928569127584498279863260663639066716872359161232400321003699548442966394491063343567813239583672316555248772587580634952957046834507614614102893072146260008993887000880479077617908687611100291188067034497976195485415418634365529350808337787151296442246749122845192154334344326676242698911052911279663691878582005438831333453706514578496440989876287654282179553830084050021119707008256090081315087326198220138913197122431142419202429130728570964166819343856512530484362001053169455649131523353875799037796149830682789857704421773630275179247519428836008488380911156174947599487149808906594738731501827464292710505016947862498626331138110249709577409767002631850841024833442148057715353128142225945572715222590719647695906371141594725457054133474941712019324602594647877468942491884130835392253051812405358659937484470034633591064199581648236396839885808189223182945890109687236721383031087037821266865445737228535460109170371350030932166196894767651313455983676398859824303121910614563070591922525443075025005237046793421252050647056894587224773122001321485809131819692287663240496485461801908254701524448738750055118964381006467670109442934454094061532247453709063910986594469447654494827768959069755514136448352759871776031842586733638509760282112246759048789983341606083505566861240272447505060820178428708993344326245230219198999643789800192831413549209226543321067603896892503633774446860721045666410033724665065474457228060567300435713143031510980363810722428387218885692845520452842293809819565518269719414624406384860160781593052371703962468760923489973581952318622716449179240065928844598349493768202093552985752417630748900455338632552226367932790318909306802601502523311322936504165717724006002287805120154782282445189658036699240112936243587746495147865062169940936694151835676562795603578982771302792580350816545463968794074609320570574176285390693632282333321677117504928257298860335083655832962160850159431070046930595831533036648006137596200858062275336849184528695956927826518819106107682037983950008546825486525571020433465287865915111925176510305211857071804274305465637348480814606243242092667709650976013542600823120738741990374668568252249141847350895403385808247273192555052691768003278026144332061686434640382620524486025724993667900097410142779380146046993214944619013948527959981951523614761988053583295148229332080665212499331897743096011753222590822187291536905356413374499197689166414594466986152580778491798904574779927584138312159374003834199397083863950774101080365215216331390687845416002872743981334121180082933455378618755910283265112860828609061539974923078053227192198261960581699381822135872188586997882100731274496119021981882843078460594697098538741410571450752708516492150135894855316999170494505626762777828969901807859564111184658040393747678985433951394447405363603733858308725661708135524327974002934469706521961930961938978482054364317858281563099330626871338624474258963339297711024946683690548986460534149254472480397766283513408538097696367976141530316486984036719995465344895055495869284397335893522609767381522302846078980943733457113976477282268825598165979300999879985189071928730741127184063529271427484444339651559861210026758972731279620350789962247544409344933834255834306398489131832630902416861587844876395855160522499200375708515436441202937153463256696330611916584048290594286802114323101975395886972964819265660967681729803543797294602272285540399994285195813029016398676124835374640693026380851516032194896967256758100823795266339307472036032504584774888574947512953562110994976662916767140970120996162232697562344995008051191027791051945927803507869072704334166895526697841764139851236695701210880178631943312761847449541836195340949475191447024250376877160835762605772962794582364171407987854634174576198162634149867606932831704001193439873871940241194152274099166330547869505024430487842452254301569906883264933440680935840097254845053212684874489615172380202177694937458867928288777799869965285270475506029088236847392546300766614085260032269493891512194508887250258705920930427315180662229225282956426260622192104559982665565048624182515057600518360373660824833218238032406250693182648383471657810118530487934615283124210901774615095720628631970621548223463182592244290346806905538600068026230348367892864113664102497501222076119660768626433349191767971427610219228897293262654930060444259738416349882416851344807306411240932048313713684088055467120007384471439160371393783185205222895375619204112309781436409165781111586224339457661737033158852792262327977140324963266899462953641852933488598365059370512766039033499220561551556410410955583675476139958028301333070905472398820924294699234045335249746998753822897318612373094132746478918533833824793165356546177675701321296894717059527066449031648257639826953442834753485051769576813843165538909303020771825544139687526690942998729128996178818787576602826379755264202513252559278395321880256039308706947756029236984000618525690242893190785916863707389405344002240973859431180703191625171972786564089434528281902473681652633226454920748498227200305934862036016711152126413019603662651549361559496629519473393705922591595950192236723086480596294782420271046495446929310835362599349964734930479458396580485640060090193890619789826995593237312395884503634700035852867046671358734123602289924442365003819518700401228699354286919537818770051196034740071260312620719995514505899389995419828008558354755396841224659934981270861629351605583103790863649166638146803937888086086734595942723123827009824941053941482396946552141516369149983731432355644888615879761617361112258510169911829873448542391956718500384466704778986490672289335817079446020309391902649012696558627298733969966683078014108522186792344585543696275717103398203480352919574186869029595254220815000530284033357379174316909286384105171949785296513169014420010735400984100547437089349125399809989182265179116748504398129004095627142517041407795383101802809834595348918796498443527340717118779135999016991560705234383538529381701971676903898917367424808700676254687511890538036373664460600707083308554233162955118624393185823472569623987575029207198386317823492626984019664161393122685651230795099563544100506673007129354857546064267067192761649840940317465175174475536021279680426831917542431101871005074757907454426985611167576843784284703447199594652610520473649637352517993999100005743390723681489561103611869739111939734682409132711741191904255237565467483010870262482741810969657282239127555902696067111956754318864469613878267749836545377722740350777212936633663497562095304223314968835025668036065026317818210203850432718068878876278849306202519008542133139532083394141732538641711953892726357903899620394448939533622306957940847510614825702567710453800569080167544346531796300425397963405201001678892316388555370935491023378792643099802833363228479554334215959145099990080528218411281676198192779904569375331105349441312873619409945676651099938762119077924860571085723181232141445393158502608703659350492216050972317739867877754402232643422128769162736596600000209144848800308061459816206741167222774851483186824413849384931099803605541280046592049754197787507387637506117049439283145704255960568194910570815643764673077295902034274478070800241974447076204969317345542503878547988518526697586931671237516969134486114877366467137939124684915598658381060681874685231752108115046911685095782229372508506428022000002588636278864209576377581666356143362756627382130937778109313708009961999634488795553338823256657268956036316238490842192459574765703246299148648244872326193636958301085309598692689667605971317691725920985634500416741448575808618110253884126363542755407166016384285642775711714253795648900754688025168105632725362891138322394094345751522071110671024655667137336306427168456499855821326576435724314138613066108350607694688457676656571741428163873862923632051159301915212867460032606739065878748337004325955296530128944266483060951980471717550117494631565921719918987200237112981998153693103638450932763581808540664663384326525931175291578742192467631570668380398442274552395138260453599227476545740167986103180732892086400877025407367002052681157938546070109962568961729499193002717505418158121581684713520206333517886152967190910649040904127171132525436357155557911882204390559658891443206179068119912132926266600212323330566944694189037948711180954447174897646969562791243004822097920291990776118993659157725318514308033635675865257064360869813315926944679819713631801233218795249960367516991401627133977424019113845459764298059997201473757342665285096669762267144161138048775653366523660716453962431131199480325442807514965314822238114599353709549791694604491314235844540490201896443030599214495950619685443353688859645270677540245659730515747376069214042030370057486273195338720932095034032427225991475717550388883944739929211746647095674165921362737757837722151008955370762854692598782319827462641198934457008059610980904151020138393697591313964278758126479271881890458088817703777750565789946928081648811243596249131633317485479696351939379459144142843818033296252089583594924313683517772762783086464458834989904240779312830060022315924554974816088114030708483678123423653294817673786842783459276812798675430363552246343307571255662913795005945904735650112699885101715504458006267525664884776198233799318514411165510991670129823745861973050908258295748193804678643344900777910477234614988589566368334606053465879833968441422953446625003101611051707912111165409856011643390434273807740246934652162072969422040499597061090387938683640631827342802628330376758155442331607983820810709180525628174153430845470386978618120818275813895344783502494803056782797301785152430239573045267512126783722795819255464265682953182874806646051719939111048850764638788451624683650364614408828402472163688949966076997671778600410645454149334850725994534434468726650518558369072383934037085917999090736748298770964411168980766080301162403203137442326389567515317226343362044115670748195662943658192581454578930107188761413685472431504883776256484497293528949997788328173937335699216673292248780107441791251221901404165943159130154654639093534849658965228480032034153330354437242368488623206253009798408127875550392508942564429471850358985030631265708053037176862688231493283983667845374991190183991386848120569649139098967219249215598940245529898291297739409144886533243993506940162064403259456400792027436753802176939211891746292512763562588396058523598434936165675308660772522829434462564731963797418961900377592462006989666513837998248697019248420006622714588199994942720307590025983006107570273440332353695450034711837917389706910745372768857793601205735477440400114577974843895776204071448560227610389697719695061554424884875451366037421581072981828608690312225539543868383131301968759111472932908964849049753810263328915286126355802479721185645369088341996723411060971177490651100149840835108576509618834616909969501243798611922844236582120089905447885972632982474201589129206404482155046025442374643939660912730714727430394439376428141502923566287914802830140062433838816870853503527310736988793050729225571864858062227300517414889113797089878778177204345932246791507633341320720294870931840634973290229862542391488868322249399443103896497737182182446122169401546809124823470957880624211605135836977999444253515888249487145399841212081151991772549169835771676258183032531932358310243272242044134395376489058257385979014866632313858926728774030196665451195163896947182097673599462358760963535509659318680916562044760837380357296766797313643780560405447464950244912239447285042931726455732254790815542176069783989307049360231598729538176473419682387663556829046128342843148500408312695041875922562552468918861617672089378245643571360600997218470352826290520764696650172372002100283673274085165280916718359201184913375226977225610786233299434953498351497348868977868978504154104364492914799991989991899183490532100224364587160079143965125627745444808662369996491748366865539514530407103324542945092328393483000427669040229213102058572185078375457136964777835201036961545578164500940749086209568425021450969329851261538521073167735434712213202576112130641651628447120608877837173027658417999773134803127446984489832964598164171911688058128855199661389932051939802711489623893928931513200152255205235043618952918515103541981109787327255021947333665729558121586295084837522387815216597235288708646421795094025338581526432246762625874226942030242775201206135158118653293715056383572033370919401450815831315813318330803737970162002590990172097857403532866315884048844836806024980828177700667475679849494310612421751431973813809539841411093944286515789653333253337244115718380417033528509713835999548261675522891068761413581578126452173651641519865064201973295303447386497343080616382039524249786222057415411477502774314668458084297538141443882846446739823305597289691098761335614739848189115490917845934913021979109343402932819102061358250616485053768111643040652495273059873655035106809728977434396687210501666750576790167353473976344611669333629189068597144662886005306516425296753378004999502880123342499641049903689185172514830051992786947089805655354812259235449489529202976807974363893897640684798502684585615527585238219124272069609966787533273263617655548592219910110012329751088383559433492053601374794560617977992730386288486192392668714398236327162599718167207462934945366767300637481956443380281742541221675114259571863303455497580691848240671054677435231724574283626585356503314696383070131812682503762508847400461032529781204111519432127620483040093653540571935818623858392675170953460363002599942557020531874094803609055098392760768883918904526445837970714962127183175516619599368520380603601275915136975132594503817170351113792229002125224159438676069355058047365965129394976348196054115167945442931242203805233501273422837051852705479552210322908869806995728680029038753688330972505677381888694583162433926426268471662332806854954100386306643707335560436036228510956281020298507599685787919577234753812169417511772934522532003986076726237720532268155127571502870527512102110046839325759330262678952508716806745177934057316982090158782369801875637851239547616417687036047984544007580172428948333803759083776598735516086528818570286333269574727109837442882679735124152080896698371633060714936652652197232853378068228745961199288133303108941506890665911238124272180038920928011023837527061849072412287475756157087700948556774716580355032824156050688487573834615650478680734111919094098045080599005915191473022952964590952151289838795130044566212978645204009101125834005193266969623648801430056528928867954039502616212134829882188202280712155825241995702523087885479932684767479570835949793014553803157731869869034680675290885218079084014294788641926041213908351933680236725837404172055529386161277887311221957596154972201598925659936416879738214740854406107092529392897385613895371796165505076781676720983528680336393772356887678470909879276687411182911313733871668118623924856170152183922992597314462971192101207311043999006541526308150030402438896719201291590469896615613473746938079318781979165890171080641198131399697028214066647889795492318116738556675089825553371861832231882283451125455731883581056213796249825032026895004125633562082301145570242331164112606158569502444058027843361286677019622101778435756171042764663834212453666036850419252562465001327521835759259434074676495613907732069339476133910310515806187572536785844585881555173508418999588752229255508739488664447255569018632727120580715184259221839101278690171121417734925082925065091460150735759114601938786217176329807612040745587476759388147320892227419944492584234310038408883195274682367438543251748334447662741118757691119380331033700672114193162864001926457680534652889995666541859969522146554348415165839549205577935248285591034649490417727009831679051028665772796045490592377050997678613509853516745557563133465074399562564281742304351421830608425950572091848202544929537685669254693075507067773921110352115643673846819084438746135081878175816755116041601292658500270080974461925330386954676091304004445405049873841042427977441686641397680878298837371870396047410232591622939426827511577910582858799693199926168879298245317626537221751957289314486883048674220476620586807259692931388706199516883527588570903919901512406182695324926180231139932271297770752976088667957869279089694393033981460297872595049415495733150193030209740880781654761337517758011936800447151409541099476936243020630362728972489083236119125845774765693125805296598715761186760070795500609714507112025299086949174025921298060705383515303342105737373571002179703773275160529436645781120663903729069335348792044939379254876865177287948060603266256425728195157717528062948975018225249064948547134162444327009344930572734334547153810793797914149033423421883537635834148085061443255662241738189406233011429838998001449192919220007004752623261709483914609412131929007059847531891520176946480153675315379893826652621805879228732978911980953488172678754752775032409118744678033336834650434500030213722187335757425702815758125577836926127007376712731542036970803179818699801803978380602685363580968751176724771612961536386334044804769863634105245857033067042208109593625789955511718181879011258788843700980007383090458459067364228195703843893476292707108390081688485062566739616033105935213423373876467397518008164896024536588734816383495342166119733892002447973493612425060116331992743635549449593878243239706387093573288775489064969199259246448892232286689836047167827703149243443363372093349279439288942856405446639844207085396600573293651837467546322982987832620544548492514991107593348333495058175421782723056635083461058808218596257373923770387160667807967068858157718236024151719991838886396704621507736554602600962505407299655418206781143089031496470663623859849294474701083225065478331772566281783763330690876642783749849787017202159038815973386728436252529441281551603185569455757096452310764089721065523405851637273923100098064188844524742143573892971766889939314320337509957983843734913821396802386405011246708808014232857591532454053378792061685127716303601018453013565291865335870871866263055534840189045491954697482437151756292079508265685460013036032550798013885922107106471582162188184988685947971515175990993585685901763790881422068728960288809901153755512759752195856428027233912454497550274978364149449943869695579413064727020370353676721550199004985187914372023272389092019955946389223432549834879083993763536856997112848752536619577724245661280681154344192238766261087740657886180931415567752627352675066497712951927604090185223409512064008372680517121478175891883414973573661069858856553203331254422655035463289599310902072588577232912167979714048157066151675863026466656652209216953469704760131239734348434605368270805683801843782524118005877643725047000399286885323093671946545398989815824522904276724627782948086517681098117642173456639732050328804345213804046175728802119037966513751807563670331905553059244630133540834356686290749073945096569066580728540056620698810845982264449249303572730213754232158853116643122922391178061331644699594426609212886654225846102848761751493475868327073753596287750581667867284844204688900379780078056468701590348575531827960369554908145355746962813402017432730310235350208292693113306420086481440994137209216350011014435151247918998937382967878442324417731826480386489920683749985563714337875831297403864169592059955219616700605127433658025549831410860822906907160524244698871374127308369735059806907903710625845723917354490943277784026723406368659136518928476564535903692977883713065366650985272535706714558373853666980009001211405926566875183339879696242531137493315564941395846192543096845041097649144543777521110292637128778743347318555090964494178032647465827209929908065685939500369684790930312219694395074414852438440789734761258592645908166373005224661920001347109779942592662504113806564208221764731113350709862338876490487663880710095880618756708509335242988337877228155490586136901126094273193240390380923322102316270905585541011708286283332676972354985997224184222025146364456166366047068902965040908193293551231564716451158361835083047706938678088948238116534338223376306223338735138781818249845671127470653417445881448616696269038577139486979448461764339519843815534679037584795619820319354129277314376830438640690307314869071588076231811669816067019016128061239877890949726560442375897307899170140967876871670384241553444470308123445267457513982212492493369669198522671846484054847641815046039037635842244623646217504548774226527838334602322504896348190740963014189583129851428308430956845884224727976279146936866139737632633393442908348746597460278953950402986950117661101661609200738780956774746644849722716161881197463255746723832508802367548081422640061046041687367397568913906136811370600964750124246671613522419733220251141143238445032831510204692578164259516730663641812052019651492260149913551086650505462994101787856950415250089991503939173961176637441109210769786102292596743786502431006909331786854771508763672533640966723764318188418784566232685816535936152495221387110161902633678682389511164099416477544560949968253888378515507175861630632537841896794081987599670116603276998935292573945595363837335712786922461382239073799998198507235961460281621122710578777477846606416771797923234940276624285268166494857177458875387307058092025748340677544089605984635256040689828241099772946369639853953611844488164458078498456580571571437677177380990411752664543222129476646055121982688007388529151867300129271826160497518001856880836140769402744694249159905255652304304698392416996052585818062680531590456640839974469470281833924328723517034954618180508997823100104299586154083882839065029962427171209873542744715179290716808320454643215037332566527372968805777988713701283751906566980596545040713601233047373587028745967290808649475623590075353249301891699100015020523079223921158208614683512025164668206233318749121842744213586107218167508814113297667282479516148900038595222502888761228563506883036146181488707114435914616386892411196522644436546094037380779749838819601037472878982651601497421242524486211706845304637619859080202916602205394846638368032484359691482494890408903194169697094716779291661956681790625679442001538114581722882160051350722107499979996462696979283129842922413307140221474287703203307654636013080002806673558755545976354242497640058658660127999430001109775080021913207022898670716783817110474078584236776663881100793933219187334817851776881815048232096762295271239492492810549451088038887739777623598289556200708818597565060245283765944043526320774164198376866186632414624935334046909462666102500643282128017326605130900635292721957075675509641214682449877351722980358436975616880247846834222013655893358992422558315671079861373427642931581832052977808179105731541181005089798836537262495184392663410583440060504987290017947222325061612283187408111625938260517852283993814329010634829751320079781197584401071197826806516703338590487132788767167531500421615829405407540683425813143778259736504326765025198454495898008234635203538142903422547307537085860590788465882453641894929225660079369618501538350623503577821994617762290202425378168703188687855656925051983735474703789034506700182844330371242852822345784070570657002981704013505084682564341175261465237525341939885767255766171994343569003737387134670489270535699601063289880976229412979010236687080317919883746398568977610433944546012418671150674837475838432205876485117199017213258346945281629896733688280419852870267328537628427109766247638982790130634365338562984178956507496716669980841149754463988961836943865674341180915691491543931611132907566337201571432820077986209173428966690019082759371120862136378203953694451191675624564369560741380112526391599598622138727477901986376419660562958799083372444693962005345731901376640839392609566139828388180433466463636437034000831821207455115616671215272730914138184463566272016741563570568839578913428735284976431482250774337963342394515354404817180011189143561875732336708840728752850609310159185581240124615028176088329098287197900093068456622654363480287108922989678459374124119264381429776761424745359712321625209424505154148686331106816023810028537127757709226989725862233261378348033345779399307621412457946805752593069780673611070487899747548133897421685788122827218760124309168759854897467786007481908886155474556735056680381496382623252093702401294253542346220651059718995849463856107809765564154256179577244037837421343765763350292108076808474891446898117092733681099388603939567547603187144346654744143561541182861782582137658702570478059856819164380769062363186418452425180849545331326336154468499333855986341392879769877130636984756496622559482793479660474607632783077530569750140183960747841882410795504069081489386309063416339278555997454358408379362075365625121790048045071296484326955782756227603800722824962601026282634213410272046647073317044408791341247178313837108215959630191519933872748927641684376003232779306798668428300594633797841506954536120350988200445865905647739741275612067065654338676476312509268122850184117864037556569047470139809408774623557115421863000666107960762652858775892833385089226889998084590719703420785737719281763157964768731418160919894648373953221146302869474648006555048998408961477867375182120013874586810505926410814690903644464240753410106649429368758467941051865180941680234593509720831351551848422866588203651650592818569017764434493178309871679724591081975950151841776299538356688514372810044752753871107101578271057028962148364040500588787720602941192765359177442873153503753781156189427019951745188156655220925988011782667001783702792458356240067322136841764830299840451549654505116902061296845860436707204624685368787769741644616950322717436619334898058501461014569334932547855339932450940965148511803303772235801878943276298396563114841629031518354881459529456610919958037307121058111664745453483898971659961270539354183351622793768535737331784248932170323162621316198582304797677143043588013245600098738508530641979795609330979740554269099906098898470521297496227211799512764335449668466731161744431214981371854307828138492529557639524830930299402271316393646808116886041331846970300940157578843358331295493202604737734073743243733131170177663435520179135461381764343109415851505433602487972192868856710789049377071327805594293352102459469415360356161369928593200623452775464033217134003338393745815198183263719422130098687563309667100056722768583397235040923009245612697132626894505754546932105082248835026828647187044784387705207603658564099279892223775842274983826698505032701625783343819043076002972052447504711183261723090335496174714423821253638865327278301591071009850658070536859886637896747261915260550093936710198431431735643797410984536617492927438621818950469891906183540579213018943515854466255213462521150079096474680184759117196078459714107385673875893304683280174046645540000353588303431465293124467702007913536874539137308245113706932461244618431390390826316297871013813731470659112523718959807069900183702223984237021479511658468212693544075431176133356682197266462917275801322315988956870614349718749510342089812764747806220842432462394649691922385845444783264722245346086880211339116906258834369198388033409128235906640682017770860328782064380507438709169194348345307443737133241082071682008013400567242888394508398066032449337924735599406728202970485476159347675534633891156052784248022857976617135345876572580105936556509665357237693534764395938083680728251100684584520232900345110331915739587819842894626424721438821310056942202585128882817860794816362276204900784173293577295153932696143674475791626359056591996913901076741236448314485663714668808775795776098138252174988353830524530575004949094249790067983264707256402763357781656534268507178212972078722741063145833418695143331572764466405663001253650980095876940140408620425707132805408722253077003384482475174927781290149141804811094763658281591689165136061354180045667900011909272946902675116298773549677995483242495918568130114717698875584325886509028446372035456741734716684242473226599825151267784987064563170433293302264699990693180651634183559604226500174927634899593225583586530992878169781057979160660499239847689140602617883675436347709431447028257107368131118444533444864698599815082981509198350331448091036528391166439272590437106575958525992189159813987050820929309847460646568530318903729906084282447868987899046077316838848700558794882893350653754021641805348357585864502111513080904130473998526213043752991787360498066836910705470082604981021066071851898181648407788380298277965548087869705956639471734541819859742760457598723866398448304806300842885014710059174265712052717721397354354776111197982076486707121823367445795630934500491206969436981337493719120098380779413809838408728059717201520041566222529532814793165874370547843575119836548736705299523056738105165865749583075692727300913814383859336710245245390701731284614363257583637063872189707813584659834837113038363456570487231149416049235987773689513894628761922526893473561270416801257627175316137851528005666730255739038432666171530100505350736831739458750476887552437273960740178859929341811468857922891646486397463915264144199272137772680525881888589784817792269778343777404427613840386642963561218086397038556910404361358424813197164680822360882258461594892346067134546799562688972720173026310292115767294738762737932413859898437073343306522213354176735878264548116326606170116397102994956084760584851275035013432900365564332935116855368630032480263933312171597199175333166434499751513823186540426626375186634180162592581700970880699704032008088048678560445767899962126614872685913405412048010304316141015320309210667156691707976481974092495291460448707050044633876722546764925583691711950448610091218788356325667949799360340329041071909249075692673201299093180033145565775319943407593115715774409549479013881249627938904081846785938281073865615485156173696744754133100587692146748495720251777846397295749408541582933797896256899554193876143014170826804803209821601419658571696886514383004826868032662422133179772377298874616207220035801040535695222322296103503074956285626240887649087060817195479837521208924066911289429197956185368010394760283082872884180706079097318170139363557679063933348396428939720843125449735031655560825278735824871413070108453147248334690972105227909076523329444980699384354408728053318786666946886441006606407261958743679909762380096067343092366702456700227884604372413342790629045345519586396170035113829386177728949694735941507844264125235138603676440545594323790290494731144421276830731526784824602047441808441388754862767637251120590368019320527379604624705949252916726764243132252652828163605821165647557465591621674237598651285242556510379742022155931890470352948648177185728815834333253446327436742480727115723334690329174091108601791725383791422823346897221504200491758025541075255764627281849300444067694203404349360412232578850079005097150774396705223266628079500339994687826652950323261779122219249553917335781762233122591035915547315673633132965064820675938737206771689289370828234323873437216336784525500924702826957532645914809429937213120463229387554525790104220885652797183157072028353053220605480535176007988933144355931805905477307032305480946246848485075078047346616512707482113971472694654426894250404593893544537613465554774741567187076785795791837959787538044910085429769367527465645699218785104975203236270845682250916848767188176259856056641516016634650253998353424418076234468810075908610594962963308702697969266339330103839833963228891724444240229558119217207537447161513847693704645343275772016924554762177317937857653135523964747116546893557017156908468703299778933296859986995697717438688191147338290478272746354081471279685881917412191509568237424453945248081627462121363541445821855901964355302094830405056890416245171284214813513227417087328966630888238376893927238739081006687760811363981990910549846449915416930681786495268655021433483136363652690727701891142589427625239032931229485255748495041565358471291083423526680922116922751717400574681302010947397536773062973655646529083443934141102045656185203447835149302541138673550135066508163409265573208014998530848623536773720729178970783864526403262001731218103122408400821459544095154323922083597781750437603567427284937292080363919794607504600129741969927160479815041947303103091464352049019516320862782729796075731849600454934469982156224824464406819384108020856837743395513590344754182990509137866137084105677398359204105596547165310798677732715108679737413295911601493477142819320161305441970029222080904050712128083242333841779677584804241304076566418907582621889369044141629008032952759288378916005461551506776652644653864752306149130333332028634141494570441448878504929529981953843184313590381922067288829932210630400879255323891705710823176172846939125471554622486066681874118380244125132878979447138406509000662794012584931345356955156283903177224618675993762554949377788517307236664928508991580582232158284395976873462940930318530019978619933865945865977677373898184928204727374956853048618410208212063277155756643016027458239015463862278326129413779859137269065710544475018518658013419212860477646366754641355373526652111239433277481345698305093542821666509340665461087024138570912740413001993808407498256502097632655628306772849131740426521647169575349404149411912545735486729746496599488277936547141834013275885274606434555580190788969540825619609858555181016641921472534320105553122756447117608097560325572466236682870695721850198345676645596929949622879061116008030188872936278549196774855718414046778738927613022217672965639994776114210712433378379689172958345816848534997023980021987546151692117473500790143815420996970414269463244291865925652527732149033964154909067577838725001056869702267169738808336480842061518225423278048471150789156277938044729414444020272208226468134823627770552570043934452236799590903949496334440697194235287255236449925782601286996707872398508315766496490906992918800324421359069616446291089956251410787850675587738759825057061744338459096308086516497550703506815711745117253719003509842546012242747027171337106144577051152038776997574660766617431230187990541417240171968566169629573521025362510550842122638750254483390765393578425767833598988220004393000841499476129248754407747341734677235024596881663125683871127878011934912725089307238158120469728231034145754037098684932772257452237460655897647077800806018765786247121411633748930007696124551050865362095037801228575052969887793545287049556923649786905051665128104033179884435267551493816510371355991077221601380405571181269789379386265823191960962723398608703119633319567083306932227043611265924730972250510334500292674714991196031368811079313989188900790348265961901626879854786503962597732815781990991471203732432692508390415916038630259531216633683637091663074824804408911687417047686685134671193495057937367632535283551278040148404238684810932168036867557468392675606274136628864789330464086295368688920379064631561362186858982748480874167603379720203254568217479459455377917249138305451421672247515788744408916974593108106498195394804358332419755100890569003958611536627042000629260957578851443699511602416632627042862247841026155777052174309426050385674879250528781593674763049577198036476582700151925626221302543144742990503451713148614949660551125452665970490632020385783671087990870983886381286944200720519365120816171258517198746091885488389178800117591720347684035998361493740293344750086595691263937052079906249932194866196842713067948052454060634412455242808451199558822993533095866694927355110090472626084637355039827565767217034709118773913581323412100886079662593990871013609963767509596275090294427646835922868519048545851149737271652940369310619074745027862376913358393864101294066052043683909780224772205953608339930481536074936493438985094269926310289651993066964993971124695898665463432413576655496562966689361260205754089095608763460038688511224259286235850320608979781159336777125433362694420681011133705021226332070694434223755790633617834021577886512933546103454054126156750632772651634562432800427039736299155215520835659489166617515124655396389938486281607617656073859280733313373226906803069315679638988416474291263305275536921951303622220666982006821918898147556569194951639932781074104641925882440530820130137897802111261976931203342489723546968191175439916800326991054285685165443378409413048844277468267584901790105172529194823693587513342950070270432548653620108609747770549495989327566978134986769510880689776183663132530951226093395216345145034994449528644136152628371442830521982284118504269496145370200561602379065208474773557064993714882163075097157389289681635039359855540490045283315175872490280896272249740942090366085996325032183287640246507186365169786402485692631531316316840976711645030424911435929314695868285878656818594019426575092649732001361736242276569215187337378910788413647123070531211211802938589618624624896062477688182877404550517154750200771100489881790893323695976614237265235678907536018867354507547888378104208609746047176814755380426963509554989761768899324720876458693040092067424979284410163825166547095055192428348447498145686870955330411901481117211453302909527054497443468781906607960669457830897362051577725762339238213634830959582584431380327730462246990256810267592907706769640174680640840652766334657777754939361731821479970085795513472038070513996642434657439366242500671207448390365396625492647733255110191984180710262518616564039625086558030559307119221239090764019118646425861825854743716341486800327772106940815025994780894699877136128952338061773865968297757408136153245987123595896000742348925694575568976912363495959288496138607941986062314202942937564991413393825711688715674953207107096525926644415232854290146974736554386234149892829272766681034411469413671930959734834486324013237554838074808731909592582667444327397719970855470295218008008838094818079712309070254578163795973115406776851204934152122526302866493702560363781928707461562920042868859062004885606602577767850647075297150510889351882548826058451593016827286131912023859158182325818156932981962993916024425378688891821427458556881716238743171218569620719117564499227174361747270811366261250943065016455175071642687947616020695456715876175314772207382281855756420433473130931719451104942066238928034821058415441551950998336508241761527197519351883005239674914135813073380587377004623655739033938623878217550401532894440751606075514185625170745910793323423511182638530308162183836030946009228364915568408456589837451312553471148843338428560077894520893068782627328697944257099410007328765662751559815590102644133836741649847346574798535967144655641399255903183594762863175380576392670351377529081149620032681029121126824153427287454025850988657730465909049331775610411525214572619797420438871357503382967527559128638327212145436759423264175768115610679794497026323913305005629954979307212985993095856462178559367093080816218934520905995491532242776719823886070651345086739644741646228587095980541667647622874320759629996949435250472563656159720539739237703094642167339880883958470097259358223652569920443952728571000013102515252974290469060893506401723464026083575776284481489979811312240383277796948251824542652863672597241462466526819515431695212242299190774668118912153203599196376316961437988255788447513300414948054208538127362276259610776853460938517464870114250691654351503467575977203790124232508179613037143742623575085078570765450938053986308635705501641350122435295425075597748222182359786723516582502096302925778410029539548797948988264838164410944070204426854416772261485515191286698106352526397767091142023839508281084126676851085633627824053073636223358908414533249929075168563971391719006891122265657362810739156245293983448010334909831948857964890603112718342229713188784274984743249413761644170686219241065941065757065602229735659664564253338240396307012123621338155582755902482693455452540280983155057831679484999176897090891258477217559052054448053593293809452244759750878016073993821845166867409064875333071038383682778127805257178662865873936347655358057561569007541018598866478076093207457089510541927204834466211926134900872362124328963606149004670751090795209105960293918990784973220813769022532391138025231710118156183568556887981341095551705986877920194438774177823410666249563074849206236766663822550206358963996975525643977008172549106926202543160432706727833202343324309165667700152212428424368594866927158985212989724654210279050977778613992414683666429846322858986973015750502464469109904050289375273819526310179524111092587937258660906384298524593688009402780400163874745347723308615251103801249109988075222552319828920162305597002766184567530553720287468104196222995916535808303400058471451542385191655477677021167998483390655943576218704993498209285966190737507269723411863069590787746789084322562523373769982692035872920526929428661459152175282617139867675477635870511861622427361631629452747645353713368560357223496751881812054420989405778093678774185272757777086989895710382826730229812820148037918850369744843726421914256633141344405600433480672824899639607412824092832822053360937385572861576131615565504071190766182632149868423381805508460654594957125502810588231066681154095097293087583975518404642907826233588555241454070986433483191107051415001459816298096767421609503092904224716563930650756345457482503915389003466580688895798718492417173726067675878488462302996921272991198765399908068902008892152500871360537565210391354595012535958702300989806230034839691578001311699625319276425818756986493628552657689381004986654913686324364827432560366571389648697181701465186507934951549947339923218353736296348006926950347228738085858815011691916344286656584896870945006876272987061139266494990624829383747763284104426044273507375827811080629835034690822195008712960929683772581959934706993306306793081320311515784604861846579852946624832031260388501678277843900143074548857682608170047619324484168524175990449262251225484748556134787062888964825746694779880893564554626714181886286252550367456552651981479350676763865295122129326805955826698183657346289550062503311898347853599240899847686377604230218229880751155694327035075698011560746969727023226884368862467048897188305001470139202325258511506945772228432567816223087193744210602924864558542124080312627629963485197690321881821252947643244203048399890805883865862443946381001245443956694455144812980821382602465669901134496499926252718642226766962026062973349163770114298972691723482268069350249125347734586128989641617380553616092293632928562717848514574727306567411042040069199538307153788794249520525529735194097496077959220834781040719471414628536035986321102680562268991788357642627320691541846780214509850467367121573692970080159276681964356442315144525637424054056123758605134056392145457753277644740801702361781567630581263349720045917111136509444793641723694814884307546594244847074920658831468843612052675068476213165060706543370355453706363120505618696382072213857293709301084071393457823220286137167589626579395022371785356781456112340362340192257665607723444527773528193577940689468753967006584717368440700443388773057490941734067078451029805659392386094904397195526120778061112724399375769290341569343902933479873000041896147008962203623835981646624500316117839925196388718144811765879975537174151555950499962205846558698303693728730802162546515116388297799183542433381956274910918337540448091745060638831549087187319149518992975820248977652263828253737050080106829831132406062021203900863701800310495041577935579786882901594790129235286611758067895436931036769099852532486163562926080685157030162640060741173938400767061134026905572001058112211394932882163157316644097588886506810636092982768334283797369079938711918408102433444630393395524495281416628585508488800605723591629695515529403276318001637450153028488490282409879232096895240435655293503847853800140994772766147195087946692709629266936072302776877966066658033604679480777978858746173282592312240348104740823714585479004482024187395522999147224194482129013096222889136287391848172239451083947176371848482227711828144796723083034990825182995836945364447909344061385900187206912616507491573351509481705585529466347622785457734727631072080120263486687254363476444463582219155965259860313597496016679884112710009930249334475545032809592511508498899934872812446741271465757456176592584788500971992852359921254309136492818788246691636599035725881084903076649588338895345360126272914171098407823789943799017838041368237723255101226264182036546835045833311021161599231597346359647985187611340944312760170470430638803976367982289471168865070365906419877802300255605178401440654569141871925712807296530946651383356264964444762990887837318575001039782264538587269606843713047815247317616885271600907493570854711539454210845667406533909798868305947527317852378699831821011205787039075598321385415989453048416355985437456803961294635212900992941396432598845807371840956235572614314955411110054374450840169517339494770252380393334882219082537171774664602358861151192060524478490840700695802698735741418711598302637851373685665668923370195392302681098779451183982468840443424792062234854260430792305696624521129128845924736683108537107839009868086896867701092918336458226083442058738902855929277483797000663747276115368939233581373443361531956962743164125200368073342762242875744680970857592776244465706328283526527749130714088431340152770742679677744909851231340376897031435249801185845429856744694997457419971776231156666096465484849317219756069774009132624735655204864347623203369865950571933881819386927793221554397590724507833465962170029839979043272152365208551637178067533800715427915742573274616161036735860124950176060284023130662152887717995142131377683187458931629056510557735504482343308506761420966891634034953819962488775664608110591227180981511875452085645895526509374906499850201820330062908799896696658581845057993569032424419959555809855150527703508984299331000092738607647511362265092350002085590652078904398195114975850103897657546687320234964695483694025568431127422586698068662791591020167390400547876890674565158053585682103461914339439942613461852922635795024184495174184422587950601458320325069685369640906249212912304815282225627289295629023801557766436942579580818478531099250170300282066962519655016096857253163731126038549093478090956475980036804902699181744198491014026925319211168304837642308300776689583386092976146978097967358747471725078461427416494880761140476920661115720367054555435286265727849427753496949112825364508643221722263053786825478752543644489154602306708503575988379747680153569472670212042394045427759605589342139309952505537155288957330008784723349949231609074861861291439712536939897472565569156035520120448894784063662404419751481550518619853246258374048540031862141994532048078028589861033627213748724519799877301647969037423265863650812311044446535245138558822566833127599384726822170855863265747156206723279915461932234551133446628349151301853317496338918437622981316038015173507358552377982502294552946043776266852763951500488891475996920552988477110452283525843094780298444771734845656892964442037394416467552785746452099471536377817881539485188082724940279129683691744570240455476559664413352747283657472569724769086262446557823525333153371427205085955483380234792509051021656613649905106747632769598595583428827066662771171384659985068919645514543891618735943295534744038748604140715520114066857164810534180710218650335606980618552176152218040258610539853290105724945822826246045088614301167627849659644848096378679496787040154845937613052666419831105080050592544884575532617630647247573253813933480635519128361919895429330787295063278148019523923791983958529322338262515777759617649098228232910056244888161245439256401815060462404819298425161651318868102542518103124888565811342188539122009995768403768937832902641986519218133076303400987603232228012270130037352308212275765497649399388223700106906612604865256919565075556856063791503704213194712686146009857816973530487877356798983669766445445677858516795669091597920144255289591887984595421160549995301180858544733312066818917072670494164132520885903858886629866693444721968844280159764592254026104654545122217068673142352550960947978450815520584166878907623004748727479266215581861992631704834699828431665493214715581549479295210433581507288014123835766505522873302413224018991045546364763709566774619009800345819894030808354105347684456702826208797426942783494123133085790870927552275286684849775519511623271430627860670196368938386493990284542791583937271990182477917343651313133508300681971258202594035516162857451021377141306873016349531605951850774266669296683802088743106938688327703698971139998881749478351939165856948771377779534486406231150693529070517114402380090636057478722939981665138071947613202828899763172699143902376588140223007255068305662763072241503373341313857922501366847443651396694816420841182219146483307875326935952133584599320228606835925243409696646376415324871487179250409129142589470768303048231317073106584659838753947886224354749768772841472954112695319072375108087350525180232297874738018129199651072614074081072162512986974964717957541172073061562214996342429826485434941342561398964126554250084112984344275144705584366353842421789564744889067134109821202947190582375683698728336319390413839207636874615221378198104163439792841595849750933012416980227463439577798429231923423143682203014349726875751986195564879939749440764133729785509817824732057109560891075821322863441199843741882903912587299248540756277821610491240138202910310008754969572525792695574713998493762063922808748472604192893380528510904863903343914726834672623745307185148679008584870945400156718091107508239622616546658551933299989201780990050981054470476257011495376436245571304847018682618920168256439118273608484148949478541229350130511534108807528147581674952855454661777130577220802894409797364375270925512476121541196646817888889630439111638571610942087926568289819517400602109890231816147997185216050756680450190976264493516490583035867305579043244458227640387370030643274474095169519534912633807339354262530515810352857334277829730482536008608916123674637816824782441333250209921634238578629118305673309781284551160785280130228216025293147756053129534895923826177282631343572110689484548797272874701951492728782968366739980605213852925881564875563481895899324396089144762549552519582361477311826320953763109886474043936445799259422887399884839124806756102489568574617098610945530911520423314042196507678248169499709200981220777972381561417641219328009123659212739563365197366956393141717804652747356569401265277482478370357124451739315190452736980657515063739738257751050992146620239326039845560077012994632767139451103035300600651731400946745977845076882043165577028436785278022842956536143557043776216431790534761701694689880231069333014380998793028791418520637910304919802083372533023827966742079618242147613199345243811791974963622321109387221725512709635729436593453501878863731769780977269129795155563887339064140136298417090729967089745726543435388757039026309371067614105724861900554223036838237148982056584806787123724967161355638046536086149547410245263279042560023278216033734188017129578420645886096626164335302918533105178774775389369820467955060854926298814334432770475157247542324931241992521686287729048544919846421016558046218407679774990176437391456363582786704561856689794796838282241015530015138087627580617186683014351237940028592902277642966201398860933369082819240398325447487339897842641628351944445572766301950809179678967819890555238855696869484221395389706453005629353961736451640321472037473465470822673564246720455171272219867966231341907622098041919488760796201402911632304364473302739202503941194637793279082209077724206815389906486281136944266996512929395451764255501936397672176205838332422266276510298434776449735050580505259852441457548476415124592328778138099337258439447316074913903965239102979824914361604560041074698354623704103737084873579012016442263217212076785795913808201288950343807600747905816297808895258421536670220248397057423501282072382015964145855713414325212755609068210666896217669670748252537764542712279250108798593014893116748149192184359861659455090261657221093425118985851334833214860562058834184030595951028803155214558122365917471733638910231928323796515602129456750443013197686246322291337802805642822700601620305518120554368645953252540760106589728223405903430506374968163665689542084217720448592215816250937744587761759128394191437837023817298972147731869040465068076258083715788754871089567113758719359586535887144671262958796971107435122991135513012434192860389127071805132297629268062016421093989901255162439487716011984499010267479968060525160737404726554866132194467725425658358187973019878191012452540641062848714359814959238438096319377567727471284523954871735203848027981972026219326744404189671172491427880576480370804851746327021685593316812570565868336053192427517359372645470301703666670923318693492759336371349499224978141585703567060001321094210749043748888957522081700180543792249081290556646291690470556939416649016513191569852339105591497091216504249062592826347375003625396729224451626841424025481288847646624027106219619875106756958345181867714582574111558342092521657121584272555932401927399692343283838348629267614247165117757613063596565073449451609242767046699269068427065855976778197513216766847266203937482222665185777960465437540206589267437791819403557873697659092829612931387754188240979579424047350670824858365989967881168464945731456036082421793057690674073452591315377772395765510136757957633463439021034851586796408421131172567417323267224690154606972365885677167708370754804408722838679699686731337342337823449996906476651228141200022462248826659455338519943201038641529483396857171956234787791953327425164858141187102961748174737255244366323948757718565450458157559064507497264672286089053683549625582104744409832795998599845378694430638966145171750412652382081007689517408032830098103847443296846864116515351608534054175865090144104069173627111778061874982934273441397131354346443844171790056947759016594710281435690829527814784320903253079418215830081595524479940462520702354178243937027812770627824279254242551314131645527984470074843226002221809211687129417340499532343421838947808467497028637902077176949150545184391364625043939178537939632281540073208330439169376332193245990366001893857426777481539766649602407258382524036168389687488584086561191925715742343599242818070762346365022912949952960816058503770157881913149540376891380964337932393677575955474076956688891235182123498805077778364227669761380116097996899888990441786196119441882470817881637634224689587118088254318891582290559886591678472732481764583410220108387490673059262482316322661145559584239640457596807519977218059689212537523158869887891647302062188034877366255630784954704267152031625350466144386056035273351920575436021332693831334422634825543793935322374223645754247119019866996457430951001464660469803304810238681189534764203125248133807644910470728978380239866843706892611424983991271113250045239361590170554561966040892098202451321558722076301629099252435332397870187902693400015231333332943474001134478405470458751716995924113341832295263067440017068646711069488921581551716192795081484379231156706005215100851628153064738776163064179914881905358168006225822195311667775835130695326222556278656432501301517239012001776491708134821329784060121506185592036344952311453396652773028262436811484468172644239848573958464459352596499675200320815155421501037077435270696116913661179928623447151483290340210335702657967591089772792443717115577327935693802349884518971707125627650813394891114396367771022943829056604861246926606730492531028360220824499648628298172207811218047884136958386472397267611600682391987664588198092027036563457817351715205495701953905422044715985508384822533601043289943610853397345091211607778557386899979232825609818741901942891979268329060117990555340707085469673033655197436984703172277431963677006844489061642408476669098776455058226547754332685830933125046803269950907004945683414239682288234814660716340971620110350762920444567934372420955537918874820592133655023890407156553611134883617062308970355419101971270958174795123010380558185180654966109355481552317278734517128963096685179475799218941279058553462196779341657631407352364131136337134785719989300421406827859599328179681527802295650676788648100657050442688599831445371427687179659326788336340549104442881607903535404000514737862883865025284058665199447615181135819737214056236406225746644167944149810029194053813685311117475961340926567318717396746472377955892191263211362124827312494717973631412594613842781320909763376633973257024100542174775540105402918423235593131839395284053301973287792809352556799210902089432619955711576341517206747482521808931100106914615596237181804671228865724835403759892081430218629288214751709690136438406349934043201754999998926546342852485868534424703592424936806805327092329746138500862538062288559823567943962514150945232553263114256010513652879951393040719695373117436153329267029789259956627455249323376016961421070328477538747335207350445709915694847750269381796276108745080540863646534095397129535316994131529109465533569742215173448563711069635841785240240761213659988091574178031218436119063206654003814121002653504623848063849849174852548307227073595758856465399392085748421730774123327257138263809010015630114409848327598497457415625618555143533225411582364873745339248328467619858576901171352116234171848842761569188935587114525752585583698117251112983371910878005715460844078268726948679237240037316989528836326163337281627534074703654286301027230509999611562435804774459002887974123304807371393101208039502786904801099535774328766898057259708941253272559009257082294520339236865806800608891505077777717857833110848092824074173189284686102600329452668601588314024066303399126317186561482483817902087698503017536427634088127329127564972394281961561591034569551902568608301309316422708108881661029161258163279501762201744717497665578613157491928550882712006855454514663902065584554145663057040036860727352533774862141212866967015668651793104000179724762961772937595846424321114930441620244319724703252711768613090264989100938974478133622255701794488550598218461634298158851218783382069818310129193707520583942543995895700256760329186786597407904925952575026293619207801901771043086908213715195804256546359561553898273412451999362924848441132969498961913456064559884457070973098552015056830609828649448625306321296601697273483884995926753958061988728018570694809286506092538021359489676736039227709951003602448943050301808214486061454612495580569932761531219067112322586176742044124373815524284319987144930584306490799197292945268905063799105862324856927810462979167522140700175328832061015708518382250614258741742598673595431202268316556292862655911182219128849204337661729420788594533774197639779211851561962785353951612057640787672551882885321046347998767133842080397767883611492372173287321983632271768957690911287135961724868638370640666151258302024585896119517653510527985881184823805918666082926562170157211590962073934404916274868474926286010050601405483285835171221621390874784359765213779949743423077985611815777242229006473942402030323931472351799347794066907322684829494807756173639829500788616187045905261508400542114581250978118005879373192432335427701814070310486982716890924832669197426412871288096435890502388911911260621108372263974725599430292168303331329026963894807952583124162680205749066161336285432410160190983797443788915123820277941728840861779573333179431933183454474885642625218738188840524796493940648612222739775918720316022916182878365022966727874727797219200053401370408654024700766078425347203424074968032277942383907817799781082641428850215172505962280342591319841891981238425692892351916288458932286835881868978612408051410048420681677678583668261843993516272146904594487177347669206861815949002573251605516264465093489259111278006214994395891485421043960179576045433171703374899940485703465167566887372981322191665786452962530115016375717853716898714138220908306480123386953522110232562873473352668239987472778694406179575467236763389970851776158663638215857622109974566257919328336029194399833348066485335559288958409573379375532550988787943810898010897559879689471354009050424575740221525588276954410204090496361765708382022381516837418504694722373090426870040175709465123165742409902975271571230117217261721519454439074405613356591801356319737714340049419498181674899191014699343394547592809822723856265185139241055595034939132858021060412855760466404951046490586389311979207539704087407902838228979182908917522932375290974798953060732141902699712608090081199979118096159513499921081593302791345587755551909588657419159668833776401368785213731106562001609579561816196052298263174274825829853784169032854720943583293020580338695939819889910044484732173402830406696455677556874145427461274206767963093275042513517813068652042168942652717261683768012740647540445988938336774642648652869762438224498259981830010948244534224886895464761051752205586008289496263670319055029393184537892236293482999852729800336967088376767155873057035259363027717765363203457427101385556342315600980297540770982257045695013847993225823832777479505993556955440133513927223506142177531985092856879172847278664322549487925034893903014359262796300116142997734285222788743541495927537944121492031660027138554359138197991437734108984415739860702370188504041335552544475740565018896827955824472496711231392709614066650357908948890915699011971371183078967788829333085689574122874035367509046424296248962460511155218040540821010549986739280628429807301029674553683135563210934935855444191063456836733810708623242408341376172294382690636332161305213087591886364106038294682308610937290470315655584601807234759591209230663981777241413211433690097484071870082707248629069419208192918671704240184150509363400799387317320436828287256891202367304437839698555231492945170186723933607465092624215081653675906301784111934850817984705824945256278140616579101287769544228308217847522330455893487666159792214842124308623067470928136189147375067083705359914067253758929857125952824108245727561560019765036451515536108198305110214613078302530107945817851863341008791648274564607549181073423146579895722227578755942454788167748022790513315361857973285626562764829987633066656461533985731223012980937974682117202480793331366654655857583492472566106254942775726231731921606041330049400790871101525087117843843371526259916910847477097440201994168953994638852176697653586426752841749875549923000892547344068143742977759992033501925344774510625862970699168646679707767071717575430660964366167556204524370084691747759308077620884365953758760440781890770102227238810144805096640666740226945900102673748593966649296421914260804180343616043984619394346371307901207703878922822819068823609939417771761192660815223987301784293883699636527152501576271380415034069666931604958004557517672475049189710680415407399723231713009509087681050377248036217093296124195135377312010584184979409486959463895034447170356325828997123288840112731499771896414954823103161046420953038070113456670829872835471720838439616476228258355073049599593098831219311813034391837268742254857383044272430975286993360944665078129307576630273784653325493647599072307574387401123211256824366643298472820843815470726361453186846526782533120037589349501500264185518472907468210513115106370855375412858965200983301416791327108663886345093668623357599293326030189970092271335672669167458454731295126900407887034015079382258108703302408066926152107474371543272818907458751831965597702148606139336691790171627697418652444627109657372300310459057140813305256931944976198204076510859580215488822211114359266233066118153081405488624625307621460571194466590799973415239706933279668527894468647597035962294723387013862022941883241780808829475263357532594028722655097811352609084438502897843313354737597854240345273555029988808864739101568094337368043474939551983396000880703901097352664236093864061945882656086690889485079382867264870963265641656812072947961592458563126234768850302569711297196703543844096874808641101073009791480244695158136045029611313456445770057648675563999657025931883049220001823053329458301701081972655444896762204681030362603180978668782548012790376112971974324573400084217758522284028400459093945325736879782625217273539830256009254601472665540526467285114628025781846598493495174445551962739228614821720631505903106035332240385863858204108286327505294754672607538949755200235204527890045070874429902648594653107993242938242783836709431915290093700220864515942206909986381716899423655944912193430506560713546237152504557034461747514921529290970619281224770283801402967301079732101866387212939397723532139344481797904842501290148163691614956313847402714796284510576342177961093484046045767955340151858123380788214161819063033842356857973531782669560362766461578810438088853871252973158740064936228499714381484560619546760864967285966691769713136427191127060989156251967598708318508825275685408080145404961649886809182151169700070469969009462176733323890207797750962620389502394036994205165758959500521285429755752060346989626975528158498185696477854639046346756113146058420277104329380827135280841641732810973110745557305185925831014067984114042816860828290153709861549509013950580239236570857575451357237461897630643470639799434488216728144206093466270794045068456456222797638481567700418949118053777229030503266352371029561690496767346668937860857463686701524101897706304047047129024565534614718977636723055086186107329846222615212431405777625493401093825045058324135213839778186028705317132741433910614784030214439278887405157240125705510032899941745838526483092360582818475076718237723342488246130579575528220005858158952411985531034904983097432441267437714389540945110304294370010867623814390978944140745273166958466452558938414805651964929906459327270835443420950457003716359656255874465028649923083093762326145359762184087236225117685819996522847119373053037929152452220504032431228523012509826430558997119267098322562174033924676388952138675663647735419942344347084255181440098895832032029779535170976853168011281605686627566363874541609502400756358496172165205328506404802994440927684875248317197309395947426196855803431962688131650035225566401970768276136959471547832770969383944683112944793225058456483468789643174626342842500052396595862307480775788767319732686238825722164694586579359551989758726362311663198148344945088413838058423882612941630570007738867234040272183545663490850169950813164066020059467663085940499270966791886553059492733121604874198932224118224595077951739177036201805741415222585799929878787445594114172387502251885454594736558664146310772752278987319166808676572545082220849935068110320212931673442768450254363674972130055425803968897070967729193121293748509978090827775599467687970329962519107479890675681404706296216238849999860276014715679185434191364380190292534253657811292066066479292071359436017507989949080520767631257040067079784802329558880471433676874600475954841344404360839874441413047789216348413063980992085934859550539878925964720077423761780745724942816328338461561342859723166630688731259631260910384115327963396134216740415338321611338306876281911429075764424158468843491861487004363101337943373070197936086712108773959217001584001624109368842132134901776471701053827395083277493939593516706236167533616688901621295217535683454073327341449328301726312716668332870365267161413171449627430964687638891088978858235930415744599150545306746788190443553373684196322716846448700994536504089561173896005261868352615598029912391043339816580169222179383952410905012018024285611174369707892970723780875099549639744491889626713313473208184815100464904145078804412446939016492899947193079426935950415473406968815777020825173756718119110898577264262931789094814517090720527516606511743173885320598360796843310565882492303745684638017101044215762948074486824631489834147035737360100002424734544820382400573882923458127539725971388060267931864707029990374951443631819734887951986565157332276417117522699315036987273373639357228544761360538113583857986413952598075724298851167341625921960761842378929450613552375593508294795982944579576534519575736650536886466324164893855045372598113407757269816499752099179203174703673132581329637936091064930126169184185164522872998393622615937826429775913775568758036788053304857638583654271791304015243316752510438745319143300051525093724320291898005704070115274469679223634659214233124675184354811013618854290426315705447819577692746853597548097770947986793945879534555728194801682957098034037928300104108227190432327811794158505449989375517225265280524073525241212009157226757437689363912594751291104051799018012925230180384679230394038439468712214052373159893613693059109588859695797248039445065460073601232893311133565337105512612309413832347974990602023948878197642155616098667949755515506508678290308084084074756887809686457350603361056395665849517054767231791125238165101231289290751111202275118943890137724353719538188906806046393346707513262750586372624749154474522405484996435708393728954572489595638676011579462060963646648240325175149001385729949253295406848407998780988936132767473371265970208671115316287884262407933222341425720168101112988888606754731087518231664217650662332212136915855415177323227352775942087355567591897742887337849517300168504379195438171487994620597291350006653411172520179378342373961151601814477540739932420469880121874716858107116263314677706704939203031253751541362530458773922096919516116742828076961017078270073926892207979373911236231690297742921555616617327233953696366026662251449238086154425478578581753618926287901184041161439426213838302933893233947532690585730068177937124729841404970816726727243322469460809095864594826527331875485489985598999459055554978296107346352286888637065164887713286228376216716255742429342091027309127255945436821576621442819014974802507206287347002337858773821291808136470714759361426662612076029793114381713711965153116595947488775794315334316763328730618839566749566465459801168342437163071923254973942962352070222905925975428079058046991559555403124883888505955782510777318279411119342845759146784580349218570705438657764788817010917829006338605083982458055390970502210344805651774236042190283884547102034105835417180946254378989020116514507277357660535418995472986172331878753133069247031182223016374250597596875903411770082908364285208024615464609132690935625866654090557162033164456362730695254305433070395572803730426424606241131015233006211550101423774078096231386980354317150345362689628028720642474378028418963263813007396653288601867827819100338229770304514355360079554616964508112000693907748747750429167223935549145661087533947561695045130330227785798228518915254641240767545409319746175925045863155009372321590268986949747819780431214146264733848659435415569431361243158705368781052683765378395785877606306874213354211216806807721398235510945743286563425519195390224744633891662546795871020474786467882826415229695305895305521135143590486024209249066221612811980636832587620986677970481350451494637529391732086217630916278848576748635166175903349550685410291969953619595594872452097377231763374616013201596023178748930627884820856455878748117746762021913750094346055384694912203032584264943239429368377902155437271094424212110079962460653677817235963198310782101222157578077115330476209331642597781507222260259498190715512638161328652608589386560816844365088270114566796605016957412607914207600281095633848753552008129215883317935635519835763081383050539556697275319697661107676433521918411950131858798103045125593093114951068590040561079566940904291173194226508289037525668288738420257711205074797713661736388553965839671185855735362074736262114206551605013659943106641652204305465877323374842471280562872044161484280535177246955576554329685274872125199204686841478839673877845829485260313466879439943299505906543649458668481427307428430167779497617232442095038508598139003926133538630783376874519315248777295576232242838684614908616445277226600986698452001688044079991313155764644730238568854530853789363865152090746937061519842435044865272184204870696324703934260427565090908588724280334302143719378440670856207731574736752596324955522109176211071286386884670900250193840942811955624447628358353308887441041331823059899590354843823885868959621604511282608842196591055903396403628758741619576181425025010359313355931531743573552304162118703793540855008299033211533881957914981721226131311931414944336751422737148297795758223617507843240629068909555460885508273669275416410259307877016898712512580127361946111699340722413956574103921986747139489394152031175854167403827759283721126948573355931735600760226506607131795542382372224640743081666057837760615900209769199562226893689317443010646657815188024783570272094605698774101394998055837387302917269868719149044036720689586582555130134658440459676892049129162575072578578026367677582521075715726633536873959518367430443522540587182049496532319769272871621213214714094291493651720686246957105434333650228820898978806237459330560715075280036864520300331919506410016522088720171462885394707175213101927169969908870647321139590232566857263644248308454548909007696588240252547031614524550770082110619742853849613088406931720199651888232211149888523241050945083360638501346018368019463485468833222698214234956323709683370856868319797235220986832811550646552149004928698931304918962929674246702224208914946862299796359539912854552624466617732111373005028096748104029670833394996870462936495102904212106598708826560428358012554245437298659514772119899812838898101942477094480815397963705081631085736931760245694276439526136385193761618775286226737619000338215543863537810778301513894932365530405459143725032569609275187246420804600403469029243890583083397254623753005895800019571866724378353264069111706464967298473677631344551737526778082186767996793056807228769222456473378173766700287455439771587608604185681339679924275502819160200828840099760782660458692649504348863497134932887083047417694431429554379738099546603470761147171662325156033050767218838469689619598490717392018462494313964392695386126524799405772700467332723504070945949510860392523332330412578687540856770573933273260233369437156934598842051140649982935939521282799375507758101047260848816401363891300373263031013861377067680855723587743805274954498314216058994666277176660047630272299804602712377404366646904483738856603187536369181202712713188302369174424135785195199349729889901235411629272296356515527730661924952522361770598127134681000388148676413685044003775868015141771298238257082471115613751889588375068950000891098684075280498002656341902726374371500258598518443198160103213798585233551751077137989752266026721547658282205887728684271066975004060246249898313365031156322213094957518724541587033366660786164777275579823668097501700173412733529708938157448775217238146797680153470944709798996983767876744431465480660632577215638068181578684998412142706812311161287766242843271453700372947064872146636623912002532676676591166117954768301659696952706942542061586960041378046358205266456346850290335522968502506444645657258913237841202726523346653498628186951674869865016540257263736152672717618417527284892719768668378185447528028409883138088732908936494032753048667068634334140016619043332931097951301346666976183319134887779478377983355658957712277491127400241295404309398914464566970534751755132843309442428002033946927812165906304791468072078189161007275219630925503940796431425585518681138533940887273728956526399264017490356512631700844218126860481293028866642671946939080383541354424433169177505809991005172810057996434716568070464346783305183172483763953899523297054514718001942442604875386130047520046634733550275022391346731231149959265804157987993805461764941463229497510339164150938872158738778489668366566468930020918139699513117133901913504390240452293661709325466865313835455386556760610830146106364492428547614511257882221068964574293370973365555228899587338254998151580332537178641372522063557560943896141488277390778211586769501489872640636848810329752208321747092557554862030752586621036731497614465322358728083298396620746972237211547619135055813358413614283318260499645701148312838424204000519868317285957363496162504179854419361152551362715211230610610627660309408345138183173040373005385570029812258852162727697559122757423036247007512366939529580872036696801972104491741806681264884059354608408114395111573318544699664814682545476851890757002149559489378573103391072668501052901284391980814951082720200183932835607659588182690632467478254761631909462573004256078523826940310949444566919958721159469704446475474970655046518716478802292195256313503552481392625770292453926455514930483001764112795935248556968852521134742269656504973290091543186867712329306076810086254313095765887623123269851432662251327195722379681009620125122715279107155290056832821927589625980380488122174806987078285769120015402362093047528710407326702334926673167427190554920656782508136861882665268229542883901123758709358843630624952996965752955934857065855098900455171945103812209547270381379825437499919924495341663177873706962360860603003841191680691446398389778201149621905018317803139773691565788174917385522470356233725512588872634407010002549335815283718396884053389346464289507976472361005058956978391776963156616784681613213525341020354671357750041330949755562740301873595397808945857936362896795503617798569288219251147101988609027124126195739276080170251027309217214977628763371909239047505822435745062030158857369154457982634108794576976814146461055663045170467212272191785334153287171410449317921883286653671156730609785609985840587004372151986311421716241228159554258571354073173745950199652097130056618985246130783010934442668611150441492149021321535089533934997409791323420464966188138354725197050118410360711238446726494527258513821317553898842893323319495157474739735017792786345326298163515755503470431280760532655214127356372875425044072829385955385481947593644075680574065739235656123480166132789496751851802904717006773560159925405193871647391765130693125836098013083825403725192933483495367314662441453149830474391222461002423091580884814310502738656237674260026845981349042589761178420379752133149178611374113657518991648003863849989536797649477691514858971704816331847862163753357553041051563561269408163508777253844180566657279735433408460828910186654687360673250253568781681970569602713032643538619508712713628479775268180147940356895396941669751518294767201615474528891103333277910794008677105378858874535593743939118905485325208219198033709150111517036365991210115427362712765518089352677432921023796186636957134798216289286101961386601436513985567574297381535728130703124666291820732618280748721003417314038909489226873813995052399891380181125649134301338658971448004401083763191105178307487332907138288855737462987184890341068716069345943631580741611855158885560839914488432942737661075205846424150300606042103398605575072049100759826770506004169871944636445027400920914190932656632716377501323987132192909531755157535805790323736884501353667043052124981327521498468116770554520746640680745551687748834887669434871462236517005966187152103334863478150077489814457172091019829537221463577153631191068786356191033690465368650449391999211352748090529471895018170366956120472425153424867065186435517170759312301754938944548030813002491151608864504714927963255093267322362939823499494768441656772817938912760105327033170881080186960830474287828560621951645947578926287364638139503701748805327678555740055528792651292789068887900358856721297485061767377365144925886606178796496560154516349898709391699164964002658768406523182854301787216271854396213728792795149713666592006508025437018661534726168778087083353428973788941259292054667015496110925134343626732367683845491142187705379035236671104160521308893422332864880808355736865306284405360049605421396042517261234670016615596659378159671896356103727613217252475665382513308390723143717483931642308888413242735107483453057374989517463510159095952143943354728740260015708509039400456188416582451475496755768029248234883866508703687818166430571846045445146100754238636142816115673465486842611978952864506833095849775956870813524724034946376597080251119719802383002812997048040333693579507295625248381719227194599744463510879926064908482203444130240370736960226072164965024451261281504244547063631185656691791685293561610673780369824512233337380030963262323045422705699965263906798318200076909378971001515068791156859945475518285093634478692165755727276063078834866781399581238833775028359786257237149162196346950125749411073302240029325093323093919078958279843381391621960307430282679334572215478173236971006435341657498135192357145831020609553932869006630124816915750272499146837903953834145324103837427761408552958510062695915092292904270101320280652627999273435978491271119936986422724986343524813587958656337696409670014014452087790466900926386627148708930262129807469686117382292042337377013224860366391984776008766550791468665875216478705112765416938362611914136048034326719224237650151019575623561222414811488694316252728904490776590500044259295215686266703948953696714632509469134518600635205720925935188172516759891113539247598384395115741699530762777796651232003401784822295552055213999939538756665630609699473610066743652856955013249563675656866363994591167014592118077851082768477511066903005781538306070565692557408984926726344665028886284656262690694613228885088068268442113004328013735949001543679258780205948671176534962245954147336140213176607749708039169575234199114796154641703914513027561976927811398206318527413147191838185219482611128827166512029382144080863418906557102204066025951973027276858081643015979537019079077693610689744737101308534020177547141116652046870688314803088649164066071844532774018363033198921101742916888477317800904765995503504817070196103951884250126386669992267721368929035093145259397001967054630367219062317765114778997261668146918521362262215309278183958726643452552110477369712185203969648801212317963344886379774745196404304505081447962482439740101253717881216915310079821824264972462822639702915395611498904390153123650206643676315372916307530397633674960258771700305752895761955081436337212777556144979080857624967196862376841932246749508251195161550632805303033399889754700603075623030503744571829158637541054065024607283384534880934355987507486525580392446317170240422392971222349643144574817298879890910548360834687581233972402483858488180693361472971614902214835869903297485268407155317337841926807925999645155717165033497413062546035890603100239323992368548238750420191117394291275322494899298502098708256653139634800731055284966762065941438013135848708718034397680940938811676486706694191925424322838466833208348773117519000663909361985009564954074662653348166377271351365883026507227148914144895414443866964372579778830464108790244783757973127606667074706405595159160575723038823219008328575937328843855829248198138486366976648864154552965871488342763687658981377259512436497395372325854501977204222466917695297919005136085382814204071706361357978904208936041698750436358820389389944294731407754467916529730654102613655001106883562790013132556268861722157044809979204755185243552885044879571112674872266495077569197388707405615324230802765867329731901831717315345803806992300296279172707453077014114539305634405973849057353463247424385516952071362319474586998844872602437304001734726772207560919957136770771942481120435006760942341500504974101323216690295088645070032913366019742484434391036775001531629890965792574178379096786593625928295538524953984185391196308814812330160338999064387812483961199627645049466620062077565839222156092156070153587364635257404612400499650120305798410011548351831309555153862716737723085072952264680980848828200189857299145778034640364770164249449157862298755766326381732417464604337486526952455980131344632771079714699753204965253446557864253429376809271545385870819105355566198733396259235325943740825154560033669777782196482455671101370019740580955921053907632653430534430850097917958561278804734055805583495957126521959628456456130519794310800624286209361563180699815169493640941495078096352684275797304395321462565485170871815705350588268290892945554967715500258958593165877951194074365889663257238039481342597906619859039387013918394607757050563444768275504155117195133427345832506060670226727118095202387581563865042205130632297685803698263530982717621636440827205446853344046672686443601759255245167660535748361233898292569870047828676779659022272316227392984584522083491679761948460463793589630285557351497176246522614450983906743174896331596192132695048109234387227727076950542628095513813432744472720989478087716573418008634694427465005948944123752796157851811687921299182034149518850573402214612931300198905769132081588365088443111128802700705990429696002910829650525361134560330662160464123524729350344316625192537270933174335934044886757620117467419409437454527763151203229803454992230413801234050195714777802306189636711548333292402864805451603405021831590009785722893635493126998713118859187604281560502543298142019921536368203264942460988726040084556238541963497773084952482696053354843137135913815840536163298706989264622641770596594381709189795448167806114202950896406589927993999204283951692752827273999127188364514693817467167198511825627995858349913065431924613498626475457417930012774578167324608939162656655050081962069906950335108094854290128937144220239720842444019634439356053778213905911652170843237155226923347870235574257689725449060583731904318068444796578960519552527490977980425088475209911496571048369603970161508120439979852169794790359135236777564897699948082674385565635203333033656427762147586707795135910833896853835783830957119241234867730433065247663738651626785061553690915737446841385454995191499392946400246903221704256226330268871513070799987251005281880041200167675740457425809340534967120581303693442761707357303331490331307103781338805627180587103526157197615498850931606388705127176110919917831179341257760432298709065670000110793038447810520164152447324281890528438704348110249125640570568002384737839574476512848057895395569602170459278654222403197470437580154787227066928415576265065321475054833672329497541237331428102060215143110446684902199176621647363823966173581640598065882028466420513016886750055360376641187976500183072925416500070056369347263419654430396656381890546684586736341124549828230637813631479437799479981794744358145268614846999166966809152580322975346621656168637288052102918958888573517315985172972726143304101344613317328990147803610498571044077552677069601883464737768828191743681117164130191258496689111106512710180409805647850039677789988633544755881213489797648592293021268247487493655009523053390338950874717514670448249179921744258431106580357538578006546233240428379609111617117992861690156305919756316147467737266905911195532488969092922547529013675950312640377745972626855904006103792201817596583663871805289607429337453325433083278135529131705473581439694044400467142898567489283614880091594194330645401851917792249742606042809798618868519930874887989662616539744293303890121240387843275359040566042755527816104258588746110550786536028342713516622211938463921441633007958844255380244855337972691240457227552457490709704304921813410239686663966858243388302437575625861383524242655622335601751966218613318945773002264410262605180699123897962387737731908694400431717391091310308370006930957589523054354473203957413755059181820690695770594918335047263647536800132668197388636936548150738958521451911202429273887762010013163309419801611686839499932678184280255315168114810788261256511901263834693836747359501833305028477239430932488735767063756271578328412384172856903876279658958256107788414808028444758260605613601496321761663445516348419032882196309568762281099411851155687927722032367507770271493147762795183370573767022261690542029348670851765733173540827036929416652287831718151105682047910358171003252257749113363452784090067116659544494053979584623190459755555202241660597360586484695676439217967038029724764136639696038184659636042086311936188495206484506667273590792704956256140239579175949809704103156200748562886294255177090906973589754404552793527587852464631716988465050796953497250497472269110251051942440465816211047970822693109481621774517155696231241908894900469345741525555360652081859261285852061570977836237621484184938680008213922527139885823265264989366155419774489786609381610602396881267861977211808461796921789731484907455849364668448236403912871915166087781145948874061517158402932537406690328112575744927296184581576855329182392164854984677240430780030327684683916306317718019477326301263505660954159835889276896131003443678667458990871928099842602113400113579660339582539026753782563669352231251986475981902408338535219385569897685699036501121601707754501294041571766720113601614821130123978370259282278157522085014974226562645437746434962588343330633833230350237397012404568363801898757022040996212094467074051161895481968831207898052707475083411044666313963677969978001754203413117230984650188606432436798102741450963597901895428457717967435275351952490439699632809090929634011890167187064878129693096982645279290318105440771609604626421677878258443552477274900748016659318035778825561401704230012480009218902826464030765189022873961558283214788398559872927064275213735652413437107827764860026977103747773925317580086323133291845865861465178278410466752609013933426203970289875368849479686129525620404338643454760941619969245651362289639669950820305370880673801278194883154895043319966622750553379696380789004258453339382491544318952826499050875054025990943770407298805244645316715853581149655511283943128854584878335436643941035305404630972162055540788647922142494255624096767612046789665007498579641886930804911062723923002503208688268705933666637194766318291437901376534522622076755240512116993285516092018213123598319816030365331029202721828798504364686129742803536893780260333151692235753805316782151371851478234082226562125603005276948517224148401030334769191558373200815697037818543606309249085295514678374603195266516590072573102233061475572943400532577878503680188162901567598872417725701083578355170034607199311518951867360510681654923375358508926364487417851646686594619474021688934494467288846683108541263762758981944998900601835109446858515559179386968317451128012491385340036607535128372326972281113766297622200985781689722619306515851699733905682956305714493250261841599962360502369394963676990968037028885846878311834447652900088668776844143467311855012986998137086767695206699802758838136482355015427047108440526011320378594709241319507712767394306585559561587248406335690356572997559579427548429792183700050496950220323100094728260030320144768889602051246411967076897413217330854108588314252582181731414884974960756043589425916839676514586105331900813770418447520094634572026984456233896287834597484680581447991353520999289668987410191389603133615157150535663515915314483676289245614704925328579627116930230411545507460783422370940048652788680518445074650504416659788425115714269166647516855321630253179810055064576746764456056804976679276780181071047042542682008998673076229226691288477777758868362993122374714718092016222515598388821669457076036548229580612319737446878401269957835665636318707556905889201860647530041182021522645593632803553544185483231434112188886180353210274650597276806433840710731193897448999646531591291941114693599064967138621037965432551005570075287781034721534888323813007504851877175084256833188073946685977485372879903441990600665762588004950690857922453510816930962402260496009018556059184237689151974634447822931006375256960967828388748332657760219033808741810874485970132829617162954476217059855194675457557300160928144751578282924313711775092087834901368312098329683963210889015023245034449701500749957139716992122276015186524605766994520102983628473649801835198671508988311063948414296105595904856208299649451704343290865009708696151977091548530127469825443363488165329282414970308933685070640790476208817180414213919028960454406880846329197950225895987386180184726783623619612326937023121922089200076728381777299258663065516888937227122608281734566144815557484265669231824141700019955275531718792242326790435661000666636597341696283178884439267135010001501706797382353604358057363178593855720201969849256630266344257654098775944019844660130388265882286577747924695525594938239096988009219390245324050399616945352135017555974729882592180152155812126172778923946946967909455261566999395816866015916186055448396418459083389889129667480110527640841583067020482670422459475164478085818702427781747425548260797608804571103656990484472386084063239565461517426061647380119684648755710180321634295027689514858108658868888786419523608736626112591475827640591168027083493268461287144973910421929950447311279633666132385473289521549137902293997073156002042400848583898234584948546246815755815979325806935569190157017455276673606157928345033397228492842659258103038280692360280557948454654498389088715982853454757830962681123694162155428219526024656094192280078529213584262805824313860330583244438787156127116990058909361497644695319878170479558451485431791099731027156311448707073715678656829687000982109843321028753551135729835088296258826325880393246417054208416227273744999153855906304197256011860300343831505955486349216178772292660279498565526620891883630554174079423477109689833934245651529595930575275587522262007824981305989383517457753119733824727810091510407794753250832433953163579280973642914263898655108628746804467054575464960928824624212834135519666342963999589596001855962983299410789091275689173491681585910353132853354521180279929771275326777964282674262616601694692766549203343274956666545871437325007941181195712870122805113303307841693733887588597299582437995006685083928835999930636952055651485292072463884113327502265066356402676073173103790300950472606843376005042422277370407154934097592522991876364803445681362145658813859856394879504594996823302987459005795105193843787757820686523079074693611570104616488162174371482645112375884213493968437452877111136611743836330092706596914763128181184746044819720628612794878764270512060180964200885005483267735142072387961471059671126000149408392822645620798967605458439809617531366320113878191165933263971629491361203757955052790638185212476614259478186809463885972004483878280685688837952590377165327585023225590587203934961197726165347950548450322534376409525467599225253821822437071362251156404751626131985509133698148687396381413237507907957231239055225094134708487406702765441076255137817363219353863585252857563859975990186115648136526408391767353022521797200276235371161428621926916026070879551362361778467037366729474794288079531534348031954030058990766853482918746471410267379243023530819657333045824967814416214889789562415033041180801595016866196399712313524011114341465942766031543479803877859185444563048648192457847921827857126882561785579749770140984981290109825956652632307784169326376943036957114507992782104080236332862598083776000754977890587113844627470201424646983537015328493928354321322294014516051734607926364442258184953032450111044225435682696938009714519325742695551514941767184860972581254716988832748300462033665924465586207773676796069894363052269495047914622816702242385640571371181134821751629049297287130149246612447648840003968906843613549969059181310920310627763223612117476088059624283722865577153129381457255298433705002381872288251344966119829116538063194721261802946412878892931472744227183047995520479030895304775356429778944090842659522572616376124797323885618439036595186001771765867210745663461814795074835833656627344576583069042331774385362866934176006182672602107692229518407269373625134904932144016424509015425276644102785565075268881459198018127713651779066635163779190620067805261492205373351381577256053444544114185357950425220508189298550083604215624245017615050244811846789114303424426512573260994312364799379044071003403551036590553355759276616378070880619048844579767741533636215343549467156613375105423651588042450580190050081228126089071335539798603411988617577714048497734830454856991122049191583231322046498613467414043790431382561222469778769050055377668160617742161959117433852942823239405808549070817223117786180579897937599030419614685796435497811607752292817601822346056454096062198826384107442258844313804243814883838758591381693082321131117869696089864477522321710605780239517199012829861371384374728748343854740123044732555649228507384463771698922434309852487163032860336943831522428043771959487577645964734771670043939746583015538238851873464511214790792659222563240483282239130479229143875356842430639122781277056261947708890767644751675393359001044547914810380933299072263189873107203386732911923754563343362024652165383735075143708945544517527298873721476185084231583724824659855555489957909178723017952678977087943109693350392627074991012998452313115133908102697785878469953718386367678096500260556041063031275138350325944488238780799042255114039359877119451798356850833839939008886659747828210554528928461150105474503470359377280532539394352816734607853684637954398598806682459048934735077891525073662469722256920523057329628899756196062798310454498055587307769612717039839320574563384452271552314572244014125299818299659502767494956992039114209777652781854593831688919141641162333980655836601076632133238855910611990018710980666195291439790290720843229779226775883166145206911276841726939263708836013773544716511628414676861562920036325187488003533367959656719563749908487239512529042382640484678128572829732804520827256398460984100996406073681342050681807623781693548434213827788388677271298176699560368021612726636131879983052337060047465870885385897734398360432392850319794824718868899828415327561208417142768729117481689288643987792777318406134103143094102267836411420540141672613041478261245127156332302772339869924162751731499837845031009572345693111022613799344770534204002911961958975075025176462500417193603024364529747624590596545698141166362965305148098136844321441290716704823541299590445676351416273961132492037175876949953602074438560341894219973637113544868050162841911452455648327251486870099519131762240779580686627483685109555422160721394821602073555117623797892992244079774915752670705625334390436505778370579849522116476323457336627770618546261241276915639060395427405068523138534330060728820431878833113605449433619875541199454240563120842017136233067742176876466251993225797280744953808078770143699581351708859427749763382012874958928065606109558371874604828398271076058970474455870831693732693873124323166514516189463007592604922709364464166453766468883964934655887469233100448131973428149922850070929872239900908051299527959011346219685106077666022987795020120498974087554495056741985317399836575517717998744557685575245303344537319824267158794452744112507009972190491522901112900191704509728379003197618916712395854085827355852983121186703319206844945770083350360041385643754364214310296923255250556643523753509861205430174427088402349340753813931460832999155343768976804329995524478929696281184295545448719789271267644832695881410903368616715595180446787234327100899425866764246637778601014671072924781240376438102826070336134115130272538242235761209702261502846534875713546850510877607816972350426919804366417036241056847396447664391102537549973462728348854364233258200819962112820208107900171985097849169828446395149927283559407980581428965522595771240797443494739991754753912637756623764898072783824661547313600925336062173744255189714248939625364171645692787740139995421666247227794619171068711658176528897725749956677163203092510089419239980390994217229112638556937502292911683464474155825050320901324828569810460866273537260864791358645548318700786971225914072924629366910750067788174619627636368661350181212522844219916324357069194921825244890832495416281710808278580865863034927207020722305827084912798280602468601075394190466664538385752912826752799306448761821931750819723504513937318156171505605760989704408994740935942784537064952435091574051157370062001731709131525675401806959479583907191332879516403198729980919648707024748104006538075610596943278747954230799129791426729262333837148806500727223926685534401602909510157463463002792149805450633920712666784904530190529145568073911757425405380762860575204269147710963460749622587178565397116722084351438717405297805336472480328806313591224793302245506351527803202570078399985312100794879011029339055629994135904444373430638176267756122323884246277522945249206753868633941583056208446087841843237039969711495252362703315108610059495516420247749053839044282528851513510230590042186901379271858028550376437494316259150217140656598125208103067949635318915992635851056175229116917929202136208712669820656761165244297534377910009046960942348078280969103076259287718652786692711871257188310465307979515714955434602829583169367113944063573526712840877603029470246561218938057080427187537932497693160643944573184228148531705079603415664396492746156694743579796674272219187884847862498160725858364971940888878493078228598668713156808983711634938865672584442852897235123436425555451226296318902319411082645032770332104783630249728092618049528824801483863674848586152781020675202256163122943870175548613547591434349658147516921819671207076645167636473422829852435120873452566406166487457636563644054071475397475773368173888402297731279263920703282978553581621956911428873042319667627619258593809066298834859531768644940648957689274913535292844642904433992015105501580468892639418495680161513339500572819007165194671285699830370014486512127182475694116920011550004883331935152145381841880825651114188294498064202266982321326276808067481060648101579727314704391678304560220668357758337480326047538893718738928254074865623084937548530459778708589086905045252382803038349592437874408498981705486693256100082608042052237993038342749723379348137670954762738868913671446115641687849487964000527655688177519870649882951089033900332543410977625198885671364698535517979249452222180914875312148998802178988086092224088868981761705591753332214385207127832717162397235891552960949698977444740454477945878869328875278921415017975880088119430143319080662103353024302400809806407013853133807643332913581630869178115970951789843693254591216306819806704014997909295223563006753225970791046932260455969687641232961233782961611136264261179261549951055616085955005818543714494661233650687480061004263674579514235139241620340514422737356057794497988844362394442448320448392038468370587910930300765324029872532246076298008654370741543945072797325608670918902325220386775382596685978576088053716485132158479822413460204506891927397728212030348469381376699586305004923698575660051412648352290919401386226557610845795465122962684336640069314155674453706524228782404208019780005520390367560367094784962219512339724175562478926499463030490334793068917987251470985645710661978703086301701252534047015943374926697345355305211622269590050045992797879752153779423476879567038906087326578999368230452775698582414340188307754278616868895293056764030442611587659851483375753166962630626780069400473841892406528616713553136012304804983477061882008460562884388065614246136587614524426066040813132799968271819549898785385361343165583245678042446591331043601863528245536053364445551143102298444708880819911171114024835414569148899909795084211391180722024675621907975964382016302013273197462577745763815130688179624549298827331584451646710112513210167780615319726597694815349293397968485085635599887224930340188732725540636104612467952773830058698022819988237674445272743384346732164590465211698964857106666195516375082852697019878259057424563225966561172839462771193713396030154496660055613578699419094434933872312714855674111329991523856665971521416048808090050019641909370996806273417676687026201594288244818732567050197350236621420042431583295355295673620800473538515497483047392342382412925996891514748014342883179066792897930679570261510716177387958140468332576728467582398128490524001501664800520606945754775195420126064132525272901537093542161544917143545715037781136338174446460483486317056528249639912158002388671978987554342841754188499631009435436801847684767048625468178063883579150422495472764376299900254164933944098152481846319979140723090707325760055228311400565119306485017619680895871920378069392543953829406623604030757866193305155815815379751990540069226985726430216973465683435237026929238435423454316000187571122070166806352825870624233938419679991874139697473282663208195304611150019201101845411127422368393482694562617056731511545389039366821584033878434766483587514984573647699780473472352430658670361672084008343385296979559712743567036079577809644787814887997090349445231872325375938308572366809872049008739761638177976718821729175697376900239366863172779250362666293044459550915592423480978461271467914471190034542005287020074755141086500793208674903403854386640652845620742472269897983759156336581635297752498949412665094436732768764687917062723467392958262788689457484850935646322811013650597459726595904804618444916670759469305225848491882517278672606539104190245676303520491289367329255873131433980395413035217394807560652507887899865054349494100434790725506891106047084394070413745481224368567758713393827036329273787371010153433624366513424115843991662943239660374779833124496163034425772755331296583160254269428527988921122041002367371164498787080430638294172831580372108086278029668804534676590861166598725291858867221309908510655402490918188059704565950971304734375748075777747375934307372602347177224692747731320421005423100850580120383718714661907930557773100122739566557662488167276316713885307049678072405216551322335429895264146135777296313635197855540314262255684016708201302869483564566834884019294535240058154268578610553103154368672617953499870239271958539763479726680445632879265872998625988958308929510786196865543512165676103038474916752554466267927623673513592710310607277542947446865409965556168033752209641125184521645971384503940394461755867839016159143677640283944627791853110215870818656465930784039318254895534096892989622475557981387405880549230685434905098320850430324577116461656974922906780405694260285428364935276767058445527556077701040474162578913589952032888270229339649152970928430038313902464988729781689873861097524589054941136828329520386561640721379814632603041620179907345914654114373340820954620756773887560383032229278788976578654480788460586282606364678270340552195467700212612346931705651666044065328920135716245468642372793837961083955108624090427139480469479232316371861237027537578579447554179292918118319141255988720850348989631326939097387286810939475397730209592985606932819740677517633186838750117821955356560991251541014512286510233227269520474797610908803064503131367756478733568498340985481698394887764964407929325706898341761022582539695858951059820184300030941669009343044069184354810851148670151524184978955125890302971297926981311776293780763202146099641851806422398496250652735618323076707055802970102959960614018669441601773408436230515577629081080727291309627766947538278936932567961552051111396985427511999976055596722208361458921522529199946272493982126937285469308848069332229869454800054595475609796207207064957341284499097262064729329178350964276826603864006017068381180243583023981940093565880000785087565949381565314896954826953505822058726352057074095582913151514361444528763676831343001003286524025674366509485451721273665542207296349666196291253438538229228357872923510136397754932364054498480629031702549564468940154894888021566758245033079032383911671794528165289229309571937174681825923160732870810898776795776382247581551570410739298610447142342745516433338777700409836654850569212202611033473034474542540971888260661567621294826552997028424726768109590408037101699350074451642526956532492662518577439558787802870850711409908646848217273191538572459695944194547967807273229526770371736457530177363172934875274796504631493648288248883391496575699253995145776839594390562053745139589102695119405591187337522463948985693314131169746268877956438563773360511177136778888376705875003829562884682138383472821585333913967172216790411119686688215128735154662287314975281568051270141289219586701692806357907125316020687845880450508388043180465700635345082782269961450519823153798396885088510841196257230544991881283020533368605446551045566573250205183047987627625323865299581873028345329421309017773361221081002330798777255569776527736980224461186055816879984625041941116414195760554000147171789978562417515493474750255264588374064700712341559497672133193147079451606102059069559212851389964665235799521669831690092079842898054124133016662560065083158975249912490476553889299745769418602793694799850526360258347117512180311792991728266256376957257698499254074186609525591186163561404009712897878392059303240349975299551634632371083087793609631926059829383336631832010256786965374205375657211548004044648832899982962472868754906882978732239798199584779240972167818222661924332984186640684270501969306358038320991473449430661643636603083169205911730320377406448862882881252332904396322230079606925345833867264883000393081054639406336115793842403951603776422771259781358786489250032460219234282231194126930164633942291200301060202881815126929616730458528312198467834397941635514288291578820981280803387487503624276977477495984022064863437645009400771483890165520547547097699960943853910570402033238981993731932609974469149343950419688148958477596409852609235514253681900304951475975639194319673570014253132185867456884102504407330763491306337856254831241309087195552740116970917127883171893112352534727240316389178193912932291678015063742842035431850832673605635780139328850616591882980571150180263976872509149983354240959928728296740961467587964440886239748059313696909424989324687246439442714695723036247554925461020518257155438577074616220254786329164574099825412693322311455143259801451175507741983987948244152043988809973390354838951876527631066071198575609304333021615645635392266619259538474754494438471609173603279025208663713596417387263333198614030558763055670484082072672288396631789277665308686326579399376258657040459341058610923050208814537977672973519569925808265129185144336602032446965184481381167265736198213009295674392206289806147625447179433367900126030845580851245397514847308264896440660044963994146635124617681911339260600105163428415225117758879763282691898420964345649081075068650551944415295149103315393648651274291360943912525375486840297684626728942594638349828169203071552338547857427004519900455652905374992754097570536607683225923395837546574093512168964630983609500986513280401347681708666436842480985888112198480701134559794189890395167708298701779032351001278782389491656433960054860577063466208023498361908196466594975873441146301752951626939404603494557468873127065812325062962550697445486610536911210316689538092886364874712097481848059713812735156100610076540129686630005397429437321682673457207363667011074645495254980496122906731606883187444124655283867752658897680123249183575239487907059430653315965141314749368967306152248631650660891338877644673485094574113115469959883965650456683443534714680447121746982211779338821423169247842478916252355024517182094554196631731668587708087665841463670411555550514090709192736099438963419250890160244295460470219026378874346361010237692212621147346993356893716420860956739261161868651488042681956307720203356459968504644847256263526722429834262518330092601397138407873047358868010192715806600819232829610283349611185201660003770285105669024392663660936689135966964472176971870098378595315000028928538875458958191313374239414572877583724277860097870350088497691979598791348893550246964507719179198793739014740853833977559057932428196411394515202769692239923203288173693413388180850435104614761682683712500873594506803730589873047964538848588884537284331153976048121036486020130296253334556399328930605643596685840406152294069584985229179156043831633285691141214817328353426587696059318079068381210433539100902178099881663905073448919787031020152381784354436560962857543850571287470328473855354772839531607723208310734150434637026079370363998844470649696911510720414628289744297957296998659698300065556922872385618984415619954786879830007913343757504349695140186483518380096441026470415924148617720237545323789526185843352171244197868914852317853372837001234736339058879234093583441350552892784448900221439841701676459995325231620944552680635153705146061263922684303816311095752407201215461199784010491192796013062180888353717235570965147325336273977871864980558131065934817613268944045310429432176933994844389168876259360073554627528668042218786897339509953567016495998356182844714709524010807534835706591535703006656958522234294015392465030766210951962991657892712795158790890890694114495823870267839184237140886330128367611741597062642597192517415302046474022810709400364007372736053759384742683412682800001950507274277979567739920199769572677230733069121253473137429107407033755790860828799122494144870846516936620431234093479338605261813706928131344173058470676727092496038965422169550283761986692295902113465642960322450254955242933688364360101849882276723836055006889044975805226316884171247459120953408959956434910823593317921735039290690840612394689171276137697792360697851615342865443578492564437428369986519000708747745504305049422751466187488083079065308896198188299262329883653615499956072783039660307658829203606456791688133207838901038516374277585537989263666953558508473491885434351706965777419328975297405375000211942525883775069814396219137343905801845075815082109781787569148695625697239537568681841950221586229652468593145969513711767921513985099316235882025803035085933756648657844683452449236582446482283567900063242601818137107943940114311151938715560283013915929919999475590489755241600176951555562527452404650709677587961416492050173223407240885193408854807911893028005946901056703944511515592436206925441727175490602846922193321217654722308750561286684425649940718784062570452501702253680117738575561773753719264982511786590574477828641224972848128556475264462222181117920175167868439220589797445328618293969530005050365620613606838953353432283941869253499894743559281586253354151097845872633394181757740130723369719743743166660941615721585523410820905803126325890406881790095250729448793475616939252549800529373833489736571453070396148047767636303860383862047920005859986731904633844033048354719206357087641864974454376942542670685351109321052437567671982036618162037325334202624928473716686300327282653029012702353976905596026798139680655729321048017721424110178873685509171939621855094129835469633323250349261098060915358983384858105102581727421956721945520274581001249906269418067787593858957405505200695776023009345914989867856584551512702709423317457170639984423736528881522670246517770660898638896985411166096933315078015383494100909661122674318141018207297493808865086674688610388454018162583816809393936547479580595621471223013379492154440606912112377339396425849886440125625793227832375338580879440997622982294332430731151889595519425847051458323594359294099787990310872054403302999626268250550754010648883014537417707230827890148714663956997711277070011143195239601174531912926555872959624209488700997772530256752213997484350481304681624737613417113979710540903414751100796593040785137658330543494824517171319245153267638204879983574848963518303723093195801578888713260784885801098747062725990754559107074893490212117843285836069749400921181746588639183965936169859817377205349849703990505628380061764107276100372444561462673873806647235755194298509940388860923359264789239715554657118377808777144214928326106734230399363861629118168514361124086195952246717333636679224490213354397781035760076898711172653530769135285639418476936973523895383106683780505087245242476127473262645344917816784356123577065952538901871076810169809039240134726597968165382220875901197744925460560269233848594015439768354894181959657068624900557172114482752659150601856801386763089297987843987064176121742523363540490111500507631734146747003697551230046705036587472989720697104216227096071088483792471067263186490441564390806387125984409477204580549332080125909495647995622540393963294697813705347544916763585033702190687186833791608154834046063908302504014738365968323185556639056068383443509653241915341019231080105155039325488455628683531042288703822650177553370959886031576543126210359380652606293036072757660590132768021188870238657449659133246856187742804742466323627191256425670884688271401798537083759567266501900732299019498566001778584438714749476305888985075613466702612498292215415482516564569946705595477219686901380242549770234131519716546080123342408002274485737483790035311894771649603089936914658986071232578278160366336730783215792885866171076213055305634830706836779951711525430194405915105030361931979971407894631829542196587922690831905171803345602470565077999679033096359613650342509643614293314425771932733732266156733750589216688728161927463463697883312525247141096987437614070583659821344984664323478439680663425423357296295121893772154166231047683999734288460673575154440924638945069805244829316550472059943544073381686957332729916650991710234729712342295259253034248583890964481737716069080688368837397665822848866004200126148003414579468188162928417599863566214172948365318296267719995287616997997446608170171437667925526823452531731684518802283976067808160197806621337767199822540218962476156383508271750812079775732280908448859120777597276711731000695581283680274353607471211592160141728632914985102707364878721846886297500306174380063776577890188782021043325077130610307895484753270274135103752568214457576922157718180733327034620638540148504782926346191062657226847109564665087927767680711870291716965619126427577617260757911405116890587590692563506247013284443674643831455181204632634746581153688945940450185226890745762603111723327843629381787320099770694141582059967786145478876693678774294203443096161507157433540538624188885812810324957107282275689873536043307801337193893887161961758388798394575998333367547146463656963998695976096483531660459432023534042759229241071049190525094067890623655036944813936936523073237063476666595156559467426788716448405269393982691967297563750571581061904274386068342451499863874397811655758536578482255647925966815716026857710305407415004334724582990285885898032536316576264719667892577727297369685936762840970964119732769922443715435223271301984605612511320524700482479713901255721644960331548918126591758512154274344450220009327850756970094297229962573341038924308519239188959976405102514082697828431195281935523714405120664294815691897736315873588119271087790172728887522532982979046194704264655163319612476578455821788124307826282535437400296277177894755975036327377303878631499518453851437854998512008009615910928478743291898408495970917509529845957107569600554695483422857256971308629523527858947035296676201727613701044332177439484383008368780729276066412315616485784119665511702223424761875826457517749278684651270148850146421822764247778497677492940798842644250947486704897359491558984138029447758312714240186617194557709905807145163232045150557090254061223500248599949170802533315669296045350372685653235994886273176311905315660703244909331504935338701254715728019406834907161474328001209028693287041322899586585896703274648041851681401557127946356104549621596383942900586898150795976259778418115383852708830213876597446243687210338488537317618265282877280792100448277266167249514770737668559851719446001362079208076928502441125261015974887747717833221812294799480862901271755736725687741058249144760017593545586904457382248166122722415816344513524548559961846445341460205240491329038631196568360516321705630214529901397506244945070283356112303323971325964783159641673374238589928257688969912046920692658785076190904032753605428949564033571662984271445364621309743442345943125054829181694103182676062596881795597565814818028949462602472568223405577528825429278701255234642187765277779672541350910929597722527880755828542102354891043882260548133778274747155548972242159471163164288167230086833217044117872003710905201198510954963355930009604321767803966770104124544994221908444407345553434908588212615833546853533163098386618505474226790361668161406393360451739720574764271504697301273869108623868833884679335492813086550024362280459301277557323068826216592294837778129669884373527306181512249287935375085944083447397447745331579360886768536752303419342853533382304571303443592171114882509233294344131994287167856647907894330255274208596670761376221714125853381149812342235422495957178663462858765523694652897389664637193555569732783049963579714387545951436273895499145770266798574013733865128899361437186615614694207177121005892357911503481631544777735041872176762223119438915298801698632573463628883374938429033303105627368926193710977959223789032052842534733980945723164587193790863806130162376363903851261985073231842587113987688186145228348775659975540906639880103187288079654454460760899547665388181926387989654089778908902778428078590903902199180274786469135792600559907365989406977215334022552308535458887613495572684415554207136408974347870047609779365600228999431438642962004517577905251122259464588797220100026098385847880365888241640403915838225425947032797760556767502873716821137927795620613365270859342777034327598936111093945612333206691331036421591288486984988390910868475168270478381297101633919979655010466821293200865296600323555670687168510191266487044375761353277919924998340402136665343466556466234854328663144308078480081284052878647488306591138153334540971601538979744326493807532068347063690913102329490209826922457363121875836398904938043359048844497632230394610230877778086576919121789173413488179549817589572159881359837406268234646555191047294329518336333533605609991551845650844570149272190285116618246822046237942785644210366007174678466809829507222337454780940237354998449746409658102333743720910078171909626883382298356115051568891569895479746793280285656946220633767854495370563732428302121234934744523111111961828490305024164743803307017265279904925079572237588096077021656977087257093974392794668535128989403963628662470332376447190005657599147777211188928119982398255845763734960874220070931909048529006987392564913575786060313858680809299745279495990937584003025314512627987077052501913204946036249534397894212395600208697491076872531111950867808692494098969627705105752118656376082025516712918675290267346273947747762417739661220438848490395362505965823478215868732673036740878393333770070467820418904333097176093331842426041003567936655036739456148347933523501846439881979314100167478535388807271577100059268187802181512586398379082172279316960739168728552163443443807390095823673443782689633507256904456525417621271899166347328454959321527732245833690747667596189711427673078633978398564568741666836019857121806422358796663045577631168130550032642250055874067927251005152423357758506911817725037208558876205337669433465825871880809858433638926508109112206405941033879811688953980877604348247718477376395074184470433013774069178850765992037326022894931878558260438140254140526007082643362242822292750187670997573387935391828026518356373803000866332284082023673036719033501185995916951571195969488270702811775791471178791875369491914231300883240708263028379715801776493074474215298664674407358506031526091097818734692491598877417720968795466931727025921504836975798171133655314852214074966413384125393243423769915048156745322732121565637111313820830633423976460373491705384092162101322356139699394014554529787660848121079180390082193391425952705081671162000294125836273622602684594868702358291023547054721097954196664049366544838619427836033559905089464628453689283372748041556514632748966626992321605000073299102041697340953947111171842651902763174133232102877561965484928674828058660354215152044142549135456910403626976694806768393500588872563180983240206974450957471071209661178100948015909364615764643621433538017209044108313869785177101556098663296577591458450022155574676041109488339580887716561050127133806329527574611281254991059791004044176247825141563713775928875884166301870331972721288838434781059985871392325735165270165973972250229444603485041167531431638427873832930387778439677597931629603835549704997360965909872622621000402812171543573030349092805753883511555588690296094491975061534670480526023140920586643404330491285676757355170075095755427298405626562405332660535903558515819657043768084141845872417210015986453347769994399261154306300109141624317852926821374061185125657362100725258388319525568681696000998998430245333053468287841163669111785490848718759411001849045065503051989756329046621939251011625215840764334306682411004116387602347899988321153805323454836922081482016996929202606432459494041597664463711103653549072226082531582528712212788489139235381134540983379482536366861581024638886870598183757668676592375885084849790395870428254786901672740851001258213347036680431298103621763632478552269189013190679452357851663958610340643625393925601410189966545287374323277617821440799347343838971132383849749138393818088252137573655522150301487633542924991091889411769128901171827216276065036601616721493028083770281295999343441192259234547695308500758221857441470507503653532725335338560507124556459677800949787268882781948820048729070766607907552616736075088112977223881590611164365515773789342570824356062082263287711099283617001706676089283656436168684116872429465272185723960419987728019692778570622231771197553823541574332896302969221057618267672651810119255899653584725564444059530350402198300660960948781834841184790893483679840961136581490962659437162534181353597907104596861118595838570785932984326225911547228267055169165165453855718569247236726314399697130700245489603809839389727564074159319677987645618421091644875438010658575510608532939456602669440937024762339367677994244674386150455435302689032728611120975198235796066646118322574508794079538012109325184278416669554823000599077998090835326023239435371334742701623416483129339004203448393235255685197445247803488633106188240868493306244283738608070455836192051569898957821125907624100216563717080065145077945611251411680790722534868134319631070629757776682055964686871516692770813632458719461281933063374896256455517200966146800120968798073177846172366308311462168868859841855834638411776254137082850755295886522848593180270132407599882708514869316947500555169623973627633811233582233033126124050616948736268394102966947355903836398449074967029914639015685095935668622070969872256734346599113211340406157601525772931003261624316441551130412787584157118314873795057793897902907769848410645063288189262588369623998366816586866124706749842798061840176908027942552726621651853535621973234428653371333269300831283133045608515074563108867548418337222771905158796896160351012624959518120169825149971036773235140037744626184238300700675260541649833308819599815710198809146624989844791018851968312761570753395243257779931625307032227128225440871100451313917765431696526559180203200889854860773549210137703578295902266430493525844568357276551489910230699580295993442373833552416189527415780414152324258179667673059066869626071349292191803274246558901292047651833538883540176015521715153761478485444556698591140710834038967449450447571411095737211273809643482543359156819031825162335326282202161408672312464065650787051367827360254734353237586168173782111853043845747548197716264089391864119940231789474155829845176506525943303928398846080841913965939306095611928289819209356385959237978153357583749301347708681377847582189681590000872571105171996409973056703730553480484668767151487776038876935760519357908490812079239661153840970202692129204879571355957862661151334829612545278514520941444985234701650011155237504032213060798653592336970486913694970745027800127071106694186888560763046220982906246279926931466441524836342429781498599189250529655006756185596814667355793579167940599869198470998677477550526482741619752606621807775031783006618661635596546233509221608338920496300279246895546883055382939399144759889440641919423914319109782274241131252080226874200530093130916544925973411405634528447560092546715619814129782892934313702281869946215423313951130255908397523569045042976653816994531165442061260811173628326574788370572234497298892416793904593751302165627822834339698941090884456990414534743535157151273190403088190839536973009907314429149471448973665651165569152550951209210911677225895082341265955771656843278278912471052855484555063531499972263871122067364255871265077584433319833410702203138411589286209161674681078774214414511546816694399047517677937381446471417896503159064810738789811231471674228761010540241831869312787275004967080757774460447261983243720284103348405599096055009025222498777724812403071282362614781634651684748589726518108367333499728306776633440500347943700178242844726755605573078605409827626181095131010596573991892270122166949891837487589807416742953687988865130706511598446345550871823775091669407084947428878045191340680280621308925539003983311070062590299184524839921340172789806555605964833371986306911029453862009698320929242236287217376283073289765341608301557087639242819018082698267858753885387071175133671133894473650046316219556699774292293927731788614439450136077066504458955085991461081130294994244554939153349402476362826201775026711285118645031631375869135887833035763410320559018436403566547147981686527362050927516860341516256058250263738476108965591306948401533380679334817358360538161510491024333823078980630916479562767647485729609219154649039880804681868272622267101024033563783100464557344369967235791622086269264958715150371666457770747245059176248441279486096120141712243649216320539703864199917289932049547694225937556670004707016912918172175542692384342232607058790581502490066466470454819222709662438461929020842656267395040279412965493937076156327489347820964546813398726153080099935646390573209774573995027966995782607557735897982624055226779536870075631595087978417665512469242092085846569774579171725132905752298127901081289796122871048559190001081122692423508255838141681130575163073242915434041682823879324260162889235307547643839715168598842019441133495535811025681822332941855953313143591857807346155650706574877562873958240110687652799283950871206871340858558785282645152723392151905302818992473423940510414271842403418886645437702364707798490093353117743293035562700336352983924742913580061279629790436337294504430283709229014038144243905328726322432080038123894975045683275357889702002260349305399131853010579733183686037431940690100922777298410926718210187810609886658004971078928700698592576444486303707822145209413889801887480379150286229879581536884420604961606400735475165228847727006869027401893976867595885321982958055121087709303734992011130625493439217908539406471341496367179933098034413292425580217333138348337311592070521321002659518239593256031300532200965585423302964377338896690861593662854527078166675217541821229280228336636781499759344711313575931316813685861051937785532296541163140234141531009049344357375933669992197121006962275469496066985690794937027127702963681748943354347762230009177540620937051573261532132909105584907037125302843302610431917240904116575395992060970066334628631372097889122118100516130674941433315448906906683307805634074373943652581730462968343494599776831415434903967554244743318854049070486690440795239215197362597328393938360604737208269380271723776857886916495561368792345097085622870643554863490865305645711457674003345833611919617774934338428567632747104032336249312914915753818431751220288508582164550044029341881253821268562763537469637163472890019855651299426608964562333776159796169044200240688403890285208637464073059657561080711668017966044134058458265980720220041555187068495344948156561449587744360403823515367816883872289619495120267774944787556190142371549303437598843957365458025733007465253324685112812662579621955576903429786480372116159353622484756533410059708336011828651921446135644102904966071985976819400490498221912670859148881039622223038721034410980759481771617456873039005512778437439783586198646938655365823687791973655075930825802605541360737664117585368252915826845433354758126222045559456194340202764003165463002047368463362480304658341495530274435720396496495782159495867372492422050510510059006425237505551927480705657612904543479589061350508392099728778860264075085924290378672417048157164631371404663920834778735553697950582491348039242938435589749036602929091851365315826024934667854864771734658580897219523464840316482807202667104189707549915455465782549427502046476949276970106807155214774497297233886211924301701532393169813939169042540163823121116331003590509954815728297834982444080757329161094059104624040720956270151416863652179732042612944212550089188669012796037683467291451621842908787007348577684349055801680440959038033450831107228785029425062152584725700259326522234607408315180260092757449544949384266195965591195555797390986837739066968182133250787118391214627059458641041191776818943576920271970012443905747011286572163072061974122169069844850944360108556893659480774317768478420694193621848760065299823178782846360366664990874646974663371765835821442215077883046677808853764482193216369395692246006891416742324551837095676195560415864200162425671579767205061414691306901649752255799597407840644137887260909369693070992478354508242621755842022523511450081194989383595602156082274030367383468746848934583030758955034887080484793177186377410489831884271961122705209183143861526884166871426905558177947269627722096873251339569616265888807821019610509879542452490779173020818542960552772137614587089215255153539511031742504491174865121553248411932735721314245751765885371320268496340728314534933569631095761509392138774375280424953260044650493871724800550065970374380822944451442340709969176391869320633385745531568728596839558669528048765817023811986382366716625719011362006154509384527282248367004686899927065999900442428733585594957113493947667134807483991778834917574549120767591448213656479645126402682051244081746738097920131514290229420509214890489912129585481586645247938722658259121683795844388985721544588113685501597123728994685029059700939335145639186259771106209193432120469930330274570459074357212651135976204031125388337265651717287256762026859773753907104719040828203135432919333110203661335903262876123159244384020867585134914174944712162148299244888281512134725311928520773001478923460641890380987139219017118948543543539536214619841151210386568258151512936721836400187670770797116062432958619286465990539654067063260152345974119793410126968763435157598825380494782997697673634314183300668299574118844261945026391634497464393595277990838194188938866287957880449382011503091426527745747996302694941547239387729331253165688588263018800711262017902189993513029498253590932205152660952013650115493970094389198783125394081573447589539031903570720119142744663160011501347262974000433906087579491592145772066283780648318277440949947867138671479490849185596111375356694422924379849096301897101554215127546544200175109464343446720062823795136490935806176233318353624334322937397924267439798831233759203851194097293179925640864687862045225109238034676221272825860106776380960850389758373130856531224357181963199086341360953312308403844887508374343103980667326051709578197090814222397170654206775781807028313690753179150413590074689285661510070847449714988912507775417635622846329757805724650587701277275058976636999880752002048862041469716740660850772821962786991984134469243102464195285841970968689937718920819484561316419140458510314233155242628719692506052833192757689784063002691257811416182162678768884952610970681820907574768964217763287978110948942629833461892068955770962789768525849633933810602012838858768912468805460867612554973040550888485906120494810051733057707572881285343337426013639785203769749153612710713344869130059774921308261389355229568490016302306763909373227941960916660919652784429945982602868555062363984177683803200443049224610928306083505000344009835326671366262773506477620141521794888171210995702318332801348215431439732529582025948129577191856027152074329121937684301140746009929900875342382153292869606290137299733609123293800930051886794208795950129394428550452837343210061442688062243060646629775700810069016206954176051401281311356821066947307734658638515933392110577202293424338175866382045232751747444783531400838884532480167158218546229598074351257787528723868970141533173180789018378196815776303511077923644291561799079680738400586868165139610396864321109295786710526730608734119782931913174177478039013555069438237647020042878858916030891253215343569084809019553138578410147523066928798014443390830960420453659337026405433609318602218137139936149998953745699188379325643286709249743437853787022394878713903014581720249798336088833865423707163404817082077574694805369836720593075895649692930690882222667476292326070158992881562793391462773941677024446110697459807504132575020591399259677826076407412625853539796811232200954936517484530577428237391425272991969639915110205989091042547999074420895010466561023429968967910208299448328945576445105992133646049340971862805366227167677150797904662080754488150207666800430601081606038689227319024646417046758649323110596330433336668380721858956488592226003707781015979777010297681228124414427294954265444200858526130378754996351764974336550481690263219066970602036099915905505102753389187539844877287462475878723422478243911957487645873228358333826177321341835432277865283511620000334124474770815387865785344752480780176733662735735507220088692189487341434719224187686383982312496927386099440045406460298969401782229924507179105543533022633987356457540157326376710024642540513134560491526425119329038479171877465922282366052801146742272733008057460052186770347752726332375048850061211676959075233417791637092615887984292016960441478367467236719428893386318647688649264946532100452377997020205710943515473996277974797150493191822027908525578562612239413686973364052657377626983362754904585121055466255067359994830850362538085870260791748207483545758188693337586386405142111444609205967166719421112347525671739036617101677459527773661195631754755992338996999036607743559883135989083110324143332808590925617378215832706149382183952795998204727045741180481140273008491633429164601305093962413276495031450281245946122931601531585341961768979609068264192687955470614112709650901189793300047551607395500240752441235492827577440795768714187590383701710880950031598840612536302804003969383552463883811131757467896997724615776335643599094509038916988412605070148160914169874810568488101790844658050882248133236250866069218865618985609498355374416423819076814478349674212483030611089358478216959539697854436343789627534097537794264953043416813798861790744916076440011686236499843322773998871419120984424923968479844167870799923834127083430757043531969110146693600536178533787155855118995372828836789830295059630571405112697726495924800401897354197876561962537911058634916272450267892045098570221220367020613151614564537596235198089978611328176976642249969253017185961862280013097594122098546432990904380520201661196700461677290894609520975820366293654933470153181545914060569701550283746065025389338961383414437207144277384911602611844274005082180560904872046852454790165098923774120160279938920724643083564049094764049945681105929720850150307423706234479063644219632169407917710818980239149642547568386361446381757364801682339927078934710094415130292670787771369892046059391090451241251651594080840377824482835207773167395238570464194598242938579275792764085660708337651823313413756859595155306125089379891686829671796250566054061058514465397081369259735530740319878690907691307624377287890684394495269849442270426151966562273297822626895259177182284552426973341367110188395115585901136370921548374914281934372480669707461936918102210261212198013874982249814601182782815213466767684780081518191088322364252875051950094731787275921485301464715030822868301598892707904264192255887767915380514280471885054559178076661163320050698086148894202693716291992979941865396576499465132493310075603750646083983293361220873822037481604183992938155099921406146329888687439105546843787561798641286699419337701354568354812881846062314658998554729355104872279080781057555333642007253679149448283395091752386262219938161900431749658465793430871380863364213615983890315964367488578553827453523711079804708096458615652821361926168379029889195472258005955121350167896107632029972874119519874135949950994165136567090644026608195025105184644856037807662046051257081999528345266386158765310939979250900890777461731215874762619572644317091674854962393282749619381565604082316360645285309896803140600447833130997881817570014155689357825208919411549946344015791804970909862973493881298063730273061739489531996364783380653921779944931125690922524034155274756001927769111209396289282378739495975991520286277544736850270935844893745102018274082696710494896739593778972298701522353685557725496730933329578678172184939980241377269531123482247250347250382729294315025136476839613840020159811386236262773759241703498442442476324992997611820816772401520635672503937402737577469330537393771949278462657118766959448686951159018902836987257276116547695855233753871634651968752156585492691432187631256372622839808341202764820919337429208238120848962384276687159633989610447967460057240728449217808355838829867189598732740569802252986293616880696444777318063214292902014357107688198392664543750175143284226335541208855255430656840406145755471598613530553954239459601754096098553725359611639367312471062561331298717175568168452514886299671569753597290391955276586063482211744352282067130491857348235444670349072542894454981332248026065997222598591550405525369105458272672660019946627892950818042760148429516225525196669692655887557024978003179482977533004754520717674031549552083738220346805885709367599065278074149845734084577261385701482437237592489139891267848916869388274456336905114739315934319171408902470934579348233893613689351325236110605596500256861237339668050779312230879048034031653142095009112165738390923779887243187366991958036291564747300923175300495028377196763964978030529490243214476181766952802128221211626355419161850637468792374318081209519463513428482745913881226356650060551862903380906499388047344536189323640509783832954758879183062804741151657201172756071167465881575175566621084471910540399094080461213447253281761226163371396001779326933835498350522366940261454946590446983648934054051134853154472662747371636772430255453887278191860382626064909962991922574053465348729319246096308686874510740001539977565809524096666009936957295825559076153710353436627768274097439604227391356526470745015302550356196866175562573597610902328361501320227010622168417125063377730480581819412075697799827667811189314965302146746002204662182192130880565402993774830590308402844576690471397908239927592191633681254252239960148161273366710948911835940574535059919518678966037043212567750086918675848217702374437552052310385728543706585003940288883912431791760869301069280718354159044949560870842572748365375766614747268462348465858811657260148505707460517809890087005963607243622618778227608844940907966026538180268752075142240153424740966598589087040021877911183393076518369584511621888954260097543231679495578728553007033300771037951427973276584090590747764292672881756169171625880503047068801912220948775379247705807613801624993076302548424525151857466789385930501641923286158329651336736809948389654663543434815075249090866533606793027399173477357852244842703019303630829634993614831873881913888516497365617201424811743310529453767462906828712208907681191667244496337878641141878398146962649603474611777092024221878907533493402734136411682183718342896410069438397354039407499399392743992210376579122278122491129554982103650148622898806877430463615176913683521651917099574209935445289361282140579395229622788044308588998259507404689549522592496322818612272148283725028960337109831184307080680125247519357220354868353928739356625813530118708116542778956281353782120820864345677725246774552345573624999087907387411616094909200653264805157685318909424629623056184549386513806424953594221504356673681894778789370965726959978765656632575591972105142588919318545240033900219852554105800542392717250718492848466494643656453753165191242327917437749834029465079842242128885176874609148765084264663977297347871852809677929624371302818746208905222005420277478696540425571402915717141178909341114018102116365035130532265970768783716728719576793372025045628917860121345357070290106105042760224216730212836880833170062379772729361606962682036742424490017378235738960209987550027206930050156661304010043287790431925262107906116885285093159255286549888327025623038552670047543152907673024432459200689374317555223323345991065090875838256695974413517416850675157735330230172962591329662470815492614659927449927251126107024983577348681881559404643917367636525725431808428485411111104950465973017144383031082066838445901855355189471534435245488231726715596781338550759094103777096338177504573564267404130940538349618507729536838474679216293428512488294811283041556821919758015261546368423106157209088267162183077280441258272111027532201863196650886091978452187882475315270432650300199321368023806149158729617678043914080481150299571156709246305758315590760953925604390003021578220189369654335154806388876178642079182220609945868707106761948929568353041466590685905161494485108683136550583863575507009597314838667432611864172906820952482965440151762711640959662861516457596433330582067282737830450076417253720763730693717021997852396164404709322908184596662338058019801587375385850310227169664787016971108114062163395076132707272448054009414491532485265486446292465232767487250936742610448600539445432500094567614596991172620923846710319498306956548298472542006080200334766916075210934936120521365489348051875249505738541168785783927864265838393138972319627440000599631453453213966452571375962937822500023717633829217270901536114131031364535987493476782710167943917137839378481022725369498073073939972922140767873085795858579000481541354569685975707635103664378294450853828050820327950471084745247348967927980603267279651886570741843199110486252435477966280545670664528437938164195824155987255292997514762177736211755791056925835365243477661171393749230177716922131190914512532001729297107199973570417108727733720764127256487694145098353274108924485624756926810288991121228665205149565974134489678536565980974921382456714473999974189016983108503969688183181614969969278609796743016162240895505261888445467917770831254214758788432357874096772853404367804170819793978441648192750772538355159251658172490280019007296869514130555910798216868566129523216310481258923225217974536524802744867988297239227822238607666551219231028070638366507262331709966480489624156484757249538902916395233613048444223424455275832679181605337224728792869041657123136131393758011372542551870464103921683328011167485262947661964350035253454833588125581675417390797871344044589419123525477223601447722188514539537918538832186038259403828884229359793885007671965643361448622130465008105566941501914245161351110065356612058541650400957387709392498870743891892776660098886154507275059339712274810279806075583486018756407295643499074573231178445434194762845372246931109076304547128166243192663422849956126381964490330977054457134581324567043982596288815742573276157588269430304486468121242094112293277685304806090576757487613592657354696444685359533593485498057029638591832027536959468407658779418978832294076763724878005673639281696267662085248606114851885146960927965094503431458523747839596923708630362426993136636189801126612072337765029446494693070915070227470868299202083685436038327769368965596355929471865117752222516074291180778762032414132131465769275310740176538858322212658085864037291808918155763785215511560360062042506352218263268713031039577181917558334382842327954680391009653733420208465439966892145367426983538591761510949104227526299968013817881845775871406213528405997777615251361065436169373185925604722399374297431391612760620331894545345570429181216756675887926999965733735985091443022611411207764201784332288829711383357746770937836952490448324688315672667140826403334440225863876269646107898289883548957391025423564342618451247153268118484186010265925314727249644612346647111252516673949777494462180880809049398232281636238842384800923317793648122159479395891150176850494628135734614913066203552513355162611224324842381106100800047487290014493349959453873456734319466570049814637938311761493525520246289858773846560480209391951419704486881791344595457310794140232723923845430820252297935551994495805616405599517020386075746459722231328057153105189792176262872906010275715684274347110242176630527486990298421929740537064248952954010526481644034889209378437816201442179302056049854715833908239693085235586444702613678615734156015187470163370750495612036309302155320199596971466444700009207604135003886220861339665544173036440184252744879017314926188614016651076904379505776114564930786763882332088583460505370666066201464681169998336390355610900577831097974896553746236651833626264731632256497459986639155318462475284532604565999949894461900796878009603873231466786062340050146691053974683812071121224651732672213159454158305627265004698750766375490903879250475191198389328116344489858044861787772575527180918137263628202144995946701132093227452352806991600490072027569817070643071382106393705586831864665900284421635663532980091177352733463550845870282313970095911343039934139601500589868669999954507075982426643670427280384418074908040019592525067217049553075211313021756195229993767636558239979893875922944748707131984297862553024538279017000253251680510037660023336907574393509995661494864356825388059840764355552596816443494974431904302854147262650032624815688977385112667098512676185749097816910965100787024468657595895495341389884574392297495328033723614776276420519512115528197585342834346693505061369546521655351569359307789360175799088057297027502836760828243165985811258573817826174750938759626055820399009638723553282343570562525035682228007091358207751640333187982008620905325449467641865642577021160240775684026311226807950990533620109633773445175793596173641650479901963912457498728352936122097684867469484567031536020643818977524852362835791948097935917840634267273275332582975010660410556854529912980384142668765561111397136034824640774836884356609038645130231223499274326824036710740688170320520153744397802553069330601534263036257100320398565246103208711796168903617855736783660448822377586136933324022491843738529879652537656918330809054234879162787577838954198339607331974021331047099053539179133216717539586952362335661991421196348636919843009228206930623273132037619834327812965692199787459248017518005999005263301806821595432311215053280079446664714123781577545626098706349223191579569618787233205579030577996946194401946703029926845205371656419806965311792324279072565690960890177355488528999719626906124657870867164858177701554652654765261091038334067703550356744468021850161133299843527210035809022119438135043837913560629233793237143129885220247462453519349943773147685867934098308192017216587070970260321089563018050307907121859454390266961221215260309816202830539283087397358971254879387882125961167446363097749070952156335675899398861305116962209524754429751189367579538682979123283224820945580235116419390304613600611322637216632375575477208611985685077908375159705078609969442934760046441689180722752304560342355854605135275836807897833114352361718148889633132904878108273766207490551344578576134348054839085433635711492517919784976921602727586658787955663716717567730195215643559909731275586298072040437162842084876457670055425452714021976155433173422182821136314765465793409193418856392829395901636947196225803952778779127097158516167127257650011851765198567799110623679456661527426680742711177821430875150437515512218821352444884372591509773784148431965697264172035286065279977681621869902060125783825590437411233629285687759927586922150023435136419786460349850041167156752363912180669705745773895042218486272646934639756517879161040916431421397126412358380990151298026229397140643083640786427089869943712389467021265626821590322446237470086747764495090830277642503572693849202183290543642706750486134168465466022306987075343912309798648768994426130235625871401239820504937400593067501774402217338052590585253719918794756097405246370646336716446896629565370725660555683059346491071468107599319568155092746994436730982936020235781620491886509166639255259864236017523534482826431813192187256774807064801907533743755563074340638658730754049551751412374265643559517912102817346412059685649370326449278327253895060304965784135068211745787266981913756718678455331786568793783193543954732520681166526486112951441225160377478627706322946472240873895501882771562657769826737948988459060653238036655436064526015111147895316784670829401913004974874109748098281562213913471347565367227380486223954335855035986854467308659403760509094190106490937556402087775738974362609552276542749173383276575103516654147040454305622221059826101073527726759264836909741324746521658864827169603437315569677340034902814661661124229830732375782899526912327850383982355365148123722602286254496721419326520648424080519098479110144647654023552410452296207481236179830031531368870419391834103765237100147937083583472137097914409938051510353064622609832001422517925046394408357999634302694525188888150990986522427144854841546998071745972535826258472470529936271335881306654436068580002230440286385996202540969224729241698339731958388797521672205744509584891724104286571585840392785306293884529512662458085653542226582549248640495978920560893088497551657996916861839273192783773577166201796512122567089918502828567826044219318672624683088501897380505260139047716981182457382379991187687583367708868902564430278909837469774760283865484457938517530459832608432780180052891913904811303328027522919309623459948682800471375210753064502145208013780568871585308780865755917053903330447226618766122899999270457345903439890756709905288945594311101110728580370746582095949934210044053711644294894289440385613269694528386295102667506092115657513207323528705159262375609988575621614152673082459773577655629992074193748799322455706252033559155954829198162223566014834158497095774224737688895278484414529793237359829048133786979832457756736020790330435627912894482682331566549864809511643046905981805631829398710817053710580284195202398676930899446879565966833831950232676268334876133538973572891856253803150555179956106778496973702744652884041606891229048819709212243370271088707750935136369687797863248316923714557706136380099879097628284593778218938219093434756881208213563862233137663005446165576886422043676634014215552383128023214548133597174996948070288363014190802060644144229584995872214444995917327862242780286196962287055187828621968208676716058291855764937535826713231277219155414533493850060278740043664600149151888072718907952944562532559459156404595240015242191345172462693427297740580505061787428297488695872473599425382183041276377408946264867692044254051005466959015918225812797096160941379266053559972033527055906276828381512461022420166532583588295019136365011660983250309681111878243167652166914424641021702799544284991921557840275709404432603367590980239769130132592910161970893823184032426385098540092872686127270346105478739235074639581332728415561966672606404713461798623187946369615959606531711740918888709899349649976649410502645620028376271985287987348526318520479471128927875938949856007138304015101918343894192891299323309779903126656210753306356555195846572844891650740676600667006231418911846001957427425809290020138079824289850571857347627578834931337975526396533590950597250371575229316462039590572964044474470350893754447655528569071826147399292925237310348675574335954258127429596753274562833002753582792248171042683993696398686317329252019463154821929125843956376127280335951196196330939516928120629208131536233906632752822621411438805271322606150558794361742732526187341880702325493636987265467547400871762657409579656323688284937099007043094214332246982170542930220830717338218996311309525626484468089796465316960588182905061797323043275091120993350582708609600770275932008880859864123510424623975706560565792380226906260451410658136389928373730150104723199448074997445719230354952131111296120159525701162782010106632262088587213222408018179090096019271282924269101571008027157923983949481092759347428822937459654256782794464115995287625188880699582975322657531133487406674853784230734027539984876803083072810769301979868608624579064798337220392007031886039565514798778247411870828219678794233228931919314338036540570235436553938514296466749868537989403655184299698653197518293464292531849289227269718826041820969929240167060195814269691052134242164690122844899363388552635148544280076880267757733265175284774788866095006079984205566877333931901436316401718990043695772878753201370504714350071846293283575952426431269572081870872478449299367600512364478133859537348194814839513190481188009936923475533041751480089962208716508793603227418720172945625354807516793199934467176191341273842041686994885933247605586127947377817680798947272032100300283594675504754350176589790417277849784268338722279992291059785382714463819104890023322233494221439208147646258860700982316653146101646101022019162492265376717905427304285069281111488436110498932661372358825173447135440227835082629385172710565581674089182524089762170281510645833930456256315274177833447412691493625600496502471013327515451860294154180780995013319401339439926450124791498017839042079233981243702261455464864667809605949652339870867329379657779243598859714836059752457518981171777946789564563434378075420229297296313472734295216643388900691402121275902136571404777082698536086605151172475342243134130733995421934538480197941278078528027216312404676911050766245220200208373375634261030404127435174511343634263425917424449252980352860343842450450328439097096127152713846503984911458604186573535398364768660341653354040791661084866515683252407660604992990755309362119506625700743633412979688043476168882367802343678921747020133176223245344882675758344685980515746311662464857744654654138853307967995637746244785868415016994355120609776122914980538561545649129145333892329709896822032485786183788000640170475673046006699445027010645704228939516113557336688096170642351986710815452168471577691958722947042442531857024713322243809643190734537820829728864694578048335814831026952811245009542598465300583592596724822139751285358339722789429043594347026735377527342371001359708578192825105695153094147921467645616048376481761892161725269139374053238475019288545933313177628647828564906584332594457489391788799003073942732877068055184502511353443202062452430736889395602355755238254284233551082790264394206312381182807978939380677771386754148603398254693835463007897692025407427776647505262673062352801483371005031303218191944791748725224608030930869856051148935724102954705923351470288350575274844564517123499102488229898093168898055980212264356353125801855904177019619724823493624589073427234209945833570265112181326202461790288420795475658565635164491253665968524229383957540302356745671025561956697548709483952591080868769267784544782303234592089570580663678805436393454575457786661046667641743935633255754805016236935253856287069074481004699517007626408978359798194116319272275443113578143718953290540185495129445364400371300083711243749327067103497637203727444628250195897537483916242908437194203391503546575267260422955956645215840196308510744712473420461514900694896896808734991204104207969429307294002427699410382929614208801047014790938245948197189394280086699365202480361104089956778103870588779952975017395469426915755585911183962776634240669527665074503460190068628777709520894209439454800042173263930531447003569625292360264013884459248625011401365997490067180349250434470403558891147828400185548580173134378300958642628878774873905157148393837937561791134362133212035987255541802359843627871169433378883269097024925004073561146035191221798149156990152752151249641136277184197014267091967955798113086018978268327854282439119970876708484272070654211993673013936796169618079534054975941258812503814260684847171614909265497503713181099073797452410334772080961645194181116002623630717511125023702708948271933160076440242137203300372508063498021310227322233411094827940210838034079407096512037052388022902226478822723496484349180396838120886488009288009297713978985750865838116070496678675125580554991791916276748997321839586967390870853329464834796776834535753679304793441756584502284360160208093012550491543186942054697397073745879440805364536861984083900502385577502392590735703507009245547743473952682565715301000146306117411971698845533949774582265703286701655245490271387373960266594275651195304505794511525701075529616121598305363002685919265798929395334401817122224032378051262925839045862764441604716034444733246900496775897810340740052667040002937459575865474189014190032714174922265824856246316788832974210299383528074709185179122362845389471114622757632968409780442774695318593061436540946429157380824736086816862354271019078085294194079871551820991691487800622333070819984252251521993880019643172086430710924303323655469318552906891473646273446440136899487604278232710201685697026340578608870833642939123258318649511279220915798113201054498986147365865948468402669696318597853570497319957339174149299624343156287985006519427514077524140767438048730059186850264112901719717893861718248937540014921851833554017252001790486516468046840906435783845767631352054595587261069026865817528106094167849904290334752874444727089481954959191514918503971023570427991313675944391136117351043416512993863844429147493658982827109980261181426650709616261866917900723522392657857367867300983714064599386823993643927436054683202666121361960772733835133815978212665878710646958275070018057773749501942059393380397690022935709194207287835435345174486796087999067284236970471008719437306768763730995812795038502112122851326894777301379171023805839416292892337374624958252897590408569208973888098964217248360816813612368463058675521226751652175961230953358708105416290105920114411575387996028389986323673673185302841032222384703235471484738836206207287768211374471291632920045378124496539208439430339471292408318517525136884593129536625104386601481559021029168003227230568409695038347122474594172644397158873833199434420275363823276112944335966236808268754516775391217832527870864880940515843137958010509370214899425626268314311587875891414116238295902622157171580243805048961784607832028259523122846807872436082543776000899694447381378865220443774810309460278769941186768504427124857552004123895496532757875500732143078442935087650592509238269318873562698665850297270049064650525337338433349789995237330525900902780960422581990966583619827649169814367135689677868389494910773232017619881826094448564535878820863024887200781223504037280929300384793451718411209741347868407830374846986137066932248169627528817304724757346500399931054714040623698722755172939167325375891046356024218918506409564602301686633782223169734822216515551553051693923960964828038791864919639448658187612348517618929898372317378619792872855573926439271185518414108939799981849026991161163432362394838987336930600670636046784872704635740106746736716644022086805622526595313977622676617240629937007588793735973242293683804794811475347077504633540853766961646867891100109359818489575743275854127456006550315526668474432892063617707692298680550102612956126098473695215576736895908947138364399979237682224722882231096295056134174265006860310383551730251194834128711631345061725371176383559322481328371295849652190326427146807957477163636060521017148877295848959065760227350790672199548962245945293521652356454902878661354265011914740032007025006579637010844273061922327853859053884715606358938598507692561838168677048951663244551994178626732386776835324459162656422903585582863271628636681659150799809114709656460151344665410292331353836159532455485452328122976829005886340664715206972870982147459266346627112524169483394073185292309141611780658052016339258620348574676830851242030469318502173241886665163178187998263625128295760737915346656472948241371321578023123611014877068960042578050720619255573454069984769197513133740850011053950044380194078061450633702152210904518118394095260954451827669714283600713877191362681300955134206392532598073080601574364086396676964875178675523703306894624129887727384223516608553816037470808848063755733196044909485707947755087619716557730860607835116405040388075210714678936977067081510750810490160727657613276330470449116701350626952176321361676831533835835476589127262345564925903328854801801405115619573186926788504223272884718458715812760493625455228163664472042213062490164273913824296935989260033823593677768901218773030687907841620694660851201367100993172739168579880600500331534519583303339430144293837481681988477364299184270257295328778925834083317942604660152708798760274780208175693650035422705379458133367931006554312553672521531522124044127569754508892122656694520359965466448944294020502063080343637134030450134426930403367310148960054656047086567036840633656549632063888763053975829915593024605545140076864869857912896643100636558571985454397667969440241469619006319162067428101638479439392443336592162767690186131830907269903461885904842971379388691969323579690147497313738934620497119140733728261494868430666209303237342782126361851847052368337097095242001587827508691244404708129158145312895342539138992718170458284869992381017930645670062764294509555101385795189802872101020905900700059402270068649608305895875788135225572246416992698831313176635722464026210178977458565572450825647785952266866791850215959280328737696593584936557426545725614582884542627514538657130151509691131667164336050136776076974574223676195365759269487526235113955440025562331413872372626782044650406472641005572371661765308434769535592888850257504678980827698921352157835300186141302117845232462933141733821825833196244196368864889221264080974970297250717311185195689056555978561184852023836760960054828937378722988640714904580697436747363691127862494588486311361517069111195753389898942946694208762320721858769851258359104764631473620064592703196048315258836908117502024756337190851882642167749469950688674365396110883499666059502167839029162677296238875356700895924912382302225123106970920676418025225740524830261155025255431446033350434201552086591637911029764048030232753716349513110543875359835822875697071355123560704188565894686200420920061710706140605482363039804364379781338878999689495036834973729905183061653526629896434225761753535060349845922365793417441366016937428979044623195092651654473788041761408899942693154521250814609121894833974688949069652516326606565957232366313435130611716975204150830530561505909254852825121983273378754062698104179208686657881671398149919097326755279690675828416630117009774391370088688745916531436849071990594407867053248765645031315805072283578384008258555804183888357832414280460228855057307155635992202068145889992401647694413652361064595016002178599717694108625186210993063685401511939081371236070164693592010839890671725321352578835975795269224375082382929024217139451219996743957255561448505608650913855048891189507522718142869440582799598845781457854504009169805183284416158156787445153931912377676071720202951690452310243790211274995563947777917626963527787727149396595077904135409109892967068441064297016078209180020254884082373802810944439051172017920614145876359373090746841820730150731960452942272604849731772497056132359218685846009573720208676667192367131876737858703862505349616509521573540554832828640187868596902373380181308247629084239051602180568078450762690385161039155267936161540681323624306744946204157316301505297385714207028252971556602786633320604431714130269567086379952235921383503495297480506817127565224293489345838918727952646447588933870790733342346989254220560070384387559190923738367361006954496374212194394834824907020538382439281378999470087234145201546370920117190675410748722085908786911803313955724647696289993191604731119991745538114676294059763730502786469700240462522286165651155467836059117054205589239562007279539078209220630822588750589458951703020773389042086786391625203438070261645989964236215892001740371785114533953433381306300580548343990088930452974898402685489362847917288472802481127050952919743826926722737602819268091959064951631480198430572228442603485544841739846232987197328715970392112195690096886715539833544538126851544429756479318593962993804561282954341713460880176290216374153840441278336987184446084622575184022412660233033899413316862932597588429137467063454968846577239025881605436372179068777341708208620318295748871506570888198020850203210580808406525257305600697673147816129149765297599714008898692583930674549858776208378127954311721266783432546761330950167640276946547782519203577921850195774970313117566779367447501583881097494770242271971021125868989457799762355587087171696265135992720664291902627950888375148356169285169653461561834941964478518848971378955810184957541104347798856292059293263272420409168729938262156579472891374133269736839065795453075539414118880214294915831506909253756976734145727446217257187231054581795087297859328409697860684695222591247116482975762530929109237254081602745728992098231036036738796849553406551366235649804132883559636126135876240220743558516048352924794607380439794308905204997043630137486253786905999879004862322836788963630528497280117941476161573751419009073547966516808144430927306002368733903192131682261497119975829871035117391289181617534931582972229512932679891535883425689442753305895792116016356327057986365685136068155553864435673206635914652669991885854228403549383831356212248717341195304051884644619350309002147620788893348677671526076784621247273007496288639411733512427439484123812356209015639634261907533594285181052082804968346748782177647114514855578226601363984001926090034526314590184244658850095053842711923994853054559936748238768648263229172307218585197528911273524952965873289629193206489336957388240202580414514172147158985547579199961514936067584880967353309925190394365809398159137056568642121473697558480076846836580774152000240327818989797804728953573932447937773942967563336666843564154171151542285071982440745565422530347080132084640586542109171704844249240818739219420473641370034152830479221703647514279774446061401447083481826882047521321182442178129722246641970014869322903606585162990598915114250524091410939974864001156189586549316416290880158506509102285261347732651362996134031154008174759037399416541087703762540151812519392491592777659860586271193941004602005951142339319220159109297068726269790140549407853637460531836299971155161461916329296113720650017753747797591935813674546255214200638841554609124137937288452904103189380042377453353592632500171457383096954146583589722648059941890017551746880389246286248626225456094308562893239760702227105675194805038397990044487311897732999071967745235582151009572322581457514327279289802256416447690626226022919431448080288410884940417691130005375739857936972663224619600395718359546821353511310667025803067870676088427367349582266809171450390722699325746349694158136731363790995142261277650490403709098027142268222312458011446226424681372589322418280234628642483598278896657355587736430495750621499611544892086211978768944163920671663007397278546098105397274599117547306059354736923828837341960892889918980716327982364916775762883321141018550378339235408337644776083445475420814362266245673303119259099822401754623778021710031788503667998436596744162719381857677891344447354311366427583536646529569368246455852080402449626983244234797960640620881643124009919386649901991303782673883561262908827704980338467422761054962168699137458680437700580831070025158266375473573615719705200824085309683611947276548488988428068986722994402216592122478004197272249209341343494403877681705483276767267267555021691610314385250486194266947133738840482187754652017782524560767109247044975014135379108568640602054696284707069596594656540299770301364014147683637622848456961914347205263131044144741789322945660411699812443474012840187819507902826116121177849815789248376635930983250407322167387508313873941362298283808652999457713188400323287778404211341090689616677389442951557980362413971717201668771527588912914372404147457545320839300845331612739128770859458271039558886957492595495784253755211688596079549391953709678646735651369109562835407355022633849925171687548521855992099630236312169815028976428859248377432748598947557685210337914779414252774481423058852643972307085759540348924467717805849498106698216671741540082062906254383762176584556198483994282629338059233470378402945224607362921140266663141306609673609161308448625138254028716437429521604547651474856731604341919472833251375123224665624388467861992895412766747213798046042033940146699470180628801926801350591558940262462376322156961310546071405382091049203581356929729217391989078854583148409679755366962153659295927703242373044587146106852515122683665170570774538609094477581565069308172483138466661499194085188806379795089562844372539550568952484886276030772944294566301188018395839996985927740250969115878468094310605032159393245852407847983432537733148986320626117233281121372307251507263904563900857970042761020675137285393571661530936199055298911820278707172765532126066312138758994144894403416820116351620519171045304356167546115625571478316533477143119644361096339801228310467983786424237137095551531200250466769204064161799356891613794656933040529687337957241956712618187569426562234380441833519949520019581801483957886777344676846729618571222686029703443096269283131654161744255005150025757466615275900413216921299692892228313393514362208944018515438496731804695117436683392771305301776188450961776068946597194304565135519126715342887720002639117957983429349153471440692160358345964667073621282846234301017398772809907871728534180283025129321247879621248900803327679226801637567327966601771484708236959778988379803935344025367567464405947227081868292739287366436928353114792198690467750752400776509599190829606654035379145090302768064840090522992546951918100931992317310313282456854786249883008642855765009903306311241745989268738733644124882217058551865609601929850649577065356908467599730846180221955333341274073182667150294900952696170911736803838912845894470975076875058278499186278849899412609536921111976601251801343448852448630925736368842298014931101973205422253125274661569308583034561559330048277181081949571239779040655403977879766599727385497541831315511509277261809349574011336533245726743064121048405830467364032954436144071602959062297211287706552821622031161930617402208925145243333927639786568639018458342332559925994527096050419251949135670064417181393111269412209945869237329694123464169476312508591400901508297978181485786942920277575869446658322405690631534092902578399049931003200670246996366354479151564390412765221915567994209588019670597326146377108383474233438513235638235344804472576103652890138684091600856032501990887181907816640045660011877291431920439054997884661520864513900337529242216577392549033512233811591632789663762778730238242424004848183256828055742128805948433740564484868087728645528994843979315787050121867506428092098111200375652170257247230428869341079071045173235876728447859083124576496960922401899377764243137036751622915103073612847702802447807394716160041847469756597502025045386910936192663924174637053552766000869814801590786603907460635679909759943107000017149490206454978003590147164765311167198163184412720197462158812731058084874692429619768340612300808413123450471279523486021414140305788744271360036441696340659593063938143528664087367360731453316028014008758356888794950795903430590661656009210192010512916849129895118782808198636134928511669631620084022988436231985437222716090844119622727116343566733561393884164697423513648185030604215220752145747148594617571680361298436692661540390339608071989481556479034850062943520389824676274693623122986085878884626932298443037530786847616344595612825242522341410457387143813090508583340063620309967666347680197399555671408569579722457431474423927528197781750838244221211813199029308727077265849810135437369577129787658923493642435869509106432636305675423735578931922211995137152146681129727410755304753131661108977630036444060211514666397742633371940700916170580126252425380565758710849930184945922436474351586179285502064911453005241085826613297354942494974544788443914091889357171712986986599650542563961003122917984790755273782540090953642006850546804847237350256669488361722629351894065671849787550672186658984710115486395185123168487133863911492421280514687205517220272723498376753996524357419059549265878078068777866816116796217662265480532616385082855502729536667025641785148434496871602659555557071006101993358815167891419291089054502800423562119138238361451851098339856947938498739397971333733484294052877958069448283903664211420044302344096883599232006588946429084444095261161659469312683446565337666900388690285778563363874464691311152651445871157944193962977135943105018123248227197297214788389399182928936416232821782982534554203751526040948452330753406310259649292382656453581701700456662736869409882775033712166472480993100365102862695403676399293964198788081989778319556573066695979116771316183159056188562478744009682366252131926724114554686369524856625196173038676170197396079667059390271467140899516504561350420478270367642043316877180573654420547311217326906613808787852935628783695544769127708170282889680216697463246887783613882721447009953445447232029218093982489472658823434327559956709614599520848267215974871291689070311909365298955998530922636835800919820439975809495062472715665603329151699613013088147083323582485633244995853534958360041572244778466852920634368500525304280375829972495626013941338742346578592292211591021935707021599257573919019924759507448830351518498729717322236973307430566102672724824746703810101766353556745231783045180805403657118341485216546020926403394592113717072944776134228780877883323848138646028175266291717433099140884464286803709118532094442246905403727271214418741344707031195664725990169473151218550068000590125312184244612618821042837969857985500275718271656908267052620221104799627399283489942299862625416070557185952788689740508348492548602499851005692245918033087275180915230408073324709100441649260328168154951851085161423063981596010527895559464220408948295094631908008021240785328859161900299495951044040641279330462087295075339777423388167416759476906497535955283624629617739862917778041150135113225626163845165081064710876014951914249653423603682061805348934026240032173223895372694049257694830193847066598416422647403358996054469566752077831486451438981157457146564346242214752788682971733522465797498239136745329783584060883207708538189561554459440975772494020326769576085968809149314196924384572632114129623070308823534029995178853035092703263449407684270295562700253436032392672544432596411822144612688093788153014589739573969581061332496384940150502552985799957298650159920748825691356980161813502560372605929114663588663809709035014716552587857587736227593355253886324173842517392950200861531811957843583425425401636409259598077127276258258335437913679222305107009407736527638936132034585836453502969069733068694797935795383617769528807121790750536849510231400168969747114771725352161234751498932381675027179890223955876533913896234895548877103334341661222126904591221878158499941205862187792253727135162314253300696901297946471341846413138107906698561502155617498980723963723700053669937529540422840143460533134051558594256884771169646791991752916996738992928990519128882659358902731935627454016569916092264776184551444373277297984734600919424180915193402592449073332334764126205892998359491783766235683298958924355062338901749467826192581917063496235266316919001989051970983103396001230657444021625007847771749973128997525638775942453847769382121694355551353222908252872145739334577103787101493196754723627445733372784114812677472794182704383606131358429228583753166084141231346913295293640778795015710507336778739574461088942363498327884846572877907776051208312046038444868439836053038564444971664250504776984830340338387688004243180184908013177584669954151130389610801436562929929157624719907255041955649415605571979765207127981481626427451261135447551899127061497621759450701784662762917230863318539696133281147494444305337885951643201811402998000279855203298429956546263108846717985456251889165416051682087435698999328652809931181320294028795031951785222606291294526083988684353946272465946066786004872398771278390632298096615506402978664390177904543515976824597887539109886022367107053233484389600364664147372660818737904297798167607204708546604142944537939114012096851100661587984258970184110025781836044789763887950846091343011738520430352076776434565043292410337029021160864674241700517188340818524374692865937931736297319302627742735180334131651277139959442694899597423156173579390245209206691280997826319104918934817137658452629027252672893491846900839360158250695587977246351085368967337744203422560162054213826903433660925300661326003069002744811974742183850692166596353869856404277567784285109368954152974090781840501373445970123987825848463485500683507240239810773919055501228808413700686911447304372481898757506935947425314022091165571320916612353236119242141095380308017613175983075366862047196328128503511625891864360741899430056568581969102197820379996577965129266550268836614546241643948331815911420827920899475302185167122033692904065937909163036448890607327987716092854645105551398544258994945958051566882033488079963086334189331801548981979311455698645011608291748501655066663930265308084551169539525838566758138918655857586502697597171061548124211094109386456160519034569986019728375563551461210837436885464678586546727651733099457498852449418554179659724177523303301883621136943193605847182320639701816233509366545399774514927092003698853828527534844385378598176759226042896634482281917831351639742672279249107776652885575280372849268772085974317644189383490822604517150929197141068451138047255001311591510092376644002233137332194830138629126406576429822993383282030700216825642270364263648869328961340748470153178011507913848907619682409051762584608015124874297137672012058166004729074530540701475419887133478441877408921836851199187548952721742681032302115937497245549387814446012406421587064380013228464013584236373093673941905696680863591845048414607717279669168011094735473931275301376956658834317211775136955700626642145893719927751199377201946037651725170016476111610458019334647505241790101358566002659288310296214229844352009409981051383133963306828707836125328900776726810754352814675242366857934025951393509761939913310445574196216906809038568383386856229781827919803926830465780175008042120200410379301061085787249980697510626999938138184689689244001996343915754291879710916609869190075814005449887846458857222557846139083870374495386844380548016340115098937195131018027359428471851934450994204001756442641934070417883293444646053281889201219572002918134175807761225592158227619593973827310223447529027659347005590553480938571585837082410824200031172571549585571403614476209074343337439086918064412656884572728323217234902757151314840156521669891788946935365870721305144103468961131118582676574788222698136357526702811796084188261443458382797962053607904041264616025084888889142181078485161894707483223458145852202070592356287502989998191665945123867468549339040897360606795449095102515795949454990885964611370328879272297363547824143706216206064420049574818389006603515593405413030163530810986704419570550696758016231790755826352917214965004439750529658630259555491376988755399114640624558929856961232264450064354050189723920180394340402808784682232376824106505366087879287683252599759024999883196188867762650516973474896306779675554941395272690511841842967757999884617704536928380909411579295240980436210917791196039698777952035181615072974908660338785988697132005605864122381510215452037333630523188629392593498708160683190870321775692168707114795127650145848176924913694721921605442997315355027372355652510135161125852413560464389203777544548326857022698871663662370622991169182385766022259252689435724880155796304053542224141289239328955621617007938928772514638041305889403803720333244537022609848845520923052453568694267810950972741527564764223631236545432514479131842453645716701585635949820694902485062403951676760257649709542554995941627226941264884570407688556370248817408045886431009338292034298997917115202179454530537321739492034089399017535409906951043082904906167824574125403128344515390884827921410027815997673615539547000798282380141334091507429335387144308466728659604384276477558909159155048048816499945891602815801329737064748220814894079015245454364491938243260197735287043485017397406462733453396610892274428754562046682827343084603127511893450546128999177840170325698860617968394118281193161243262172946164808612012311490160947448994573145897835082906228035492046676311705247605260814907368874138421536619893596868592015220733194135034232117844756524511538612439684291193600249349695468423085093565420717973523912243554189133469464800191177035161169380507260578777162100707538915177953411523531920618502785664483251659154291606018604741143389260587332954348753926531968678367537465226701099289737959886142898541234273968843289417097684388346071644264308317811469127184735696303514708426581523996970132981042470468222976165284587800927933156034867713287851810788819948229808905476989387494314270968771999236802169805433761599984660563467800029776840883955569122214850536414528778592236859729731942997529318332614892390181688834303934524053054080958868440550470696423961386691347525156562216408486379894196848362871461169288134349556870306566337564555634805108025696078401924617529096512854493039383227296219554374038878604116700013951015208491703580223348740123612249439132949390716973467529246410944256923799036086172250994687483692912546151350232854350453634695464057633471174378776602460031252627734645451841501046571683583325103409917594413033451575460556403150984874528494842354563440787699969660664471129562540211941576968542967490668764465910686841843099642793136856965317181827492518671043952065665152031785235508000980936398859125404001110129686915476913225978655844989693195259623847538190636496163242924353283402611894215284176849289832954715523952367214115884153897430974775545501980705860736148679744967855655601922152059416608317260060986728146385857605446725641586966884553069025150793878198455068439689017746846695695821405802772421268152989211606351357092882841325228026112689886827989376880398437392674992276616919050335430606419279401403376644964025999835714269803725259183358117069087717754484065677285245388185557923983778995113831196263223401422381553391085942344601906419450266416547320686696930256209321661625503815271211851597226306087402199032418118663839421437266184657012432926891515923094793281708453078880568121675684483136602084177212244224377534569699942084088570500366788310530446249801478313536506701154580660181714204089982401415263113730876925939667210864848471305264936397514189088625433200918874375954379083249965477830435771593150468239631770355204157667432857107608535182723670407786366198463904596232096934502578186518979403059211486322965795118558597887025530707572873090005551763218970099332665574483510828169147643758582631044119961469027874310804685776517769379431407214164709003136554206173517895793558134488843685186225721199605900565428432361783074913307758592647065848854558655973383645706720219955749804686794084253681113544158205164753173151222461092575209288168308524305105328141973374896203223721689993250744362684716161042418350311130756008547118294528339332034767379097767205578962991676639611876540791501735791122149560363220853529870248637792867175763855076509964947886336298041213204009042638612043510111845518198007851941202742571659711804876740990840795892624421979479782563162857858912717064383154789760379919551567445350525304419364717521303404212614789829093491266812512927420138515101069874665879619208516318740097921331435463777154980647519908005999287315979006387383112977229719872691913306018093286697186458105418459775110434883923349823450147921310131553508272062719166940880549494103589698930353671336163508737640884930326171513308100367357754471486831934762498266716825333646731572695894870013206606790086607527103240870182745010994252651608653971476236917640091638283270499370412711237435385058869449637943125917514894531586106764319711432850471071337078521148831737261463943476215022838143178160301779795190005306320707045210136969093308886926333705874691212971303672788751603962768931507056393840678324551144348496374337077184405316107088235096964890483313107680818526677807562023381486281644664228449704782231384044421783730314937009967178383095811174407425704010285908773686659271608161222272168555508371324808480912454896668213699047649373245622595441004974625121253911136935995643284887405410514913738808557603943494267295972015940079726575894083093909318043463166441539459412447992590985634050263951619769081321871075519092222196293495510189376817699696887122729700697105856629607627153074598584277217726691946508558390067859715032858663611217615095852564569604970943285261768271446097606764149439244802854928116240368289522454627157518802398323042813689960131991825975930284995703228243891421094518151151096262900211854530729351032941993100455085344202324201345577295059044160088213871727607933304941963332666311654483148976298401200187098444568028881636367709047089948595176374663026075391972981688037019931482877577221241634769215095433888337862846323041499718457790414913442430553450399719339830359293971597622313917288624419121849424261441999945203769331530811520601861476185418971626855731530164461699360762015637337000144242765517411545390923686890627170789444429689563987332280159958318589501120390914358315825557551184543676615720031109791846213337472530870688293647597007618784115080343322952815294112949182336034560939186016307835777282841135561693977437889448348877857329192841261684945401544970596033696203040830434530730906984276308847811273330210586426966651589123797761951340862397653161001080280475252159526198530490465200787379193068435103062224666591489418607131067207976901957398998663015621424155007666310389760003743796286111759000860775274867969747024939350800828699240905812618194433059924732945290144304436019310005604509711804018479235138093598518727562213388659485188547700168022384391242696349191964516106981210077230990340884874304136149215292151043342729849430297162816179201339827391358493710450956511734397980685185123277319945726695214808742317584052588836029998654405330911631584831602560142111172016936229457913335515276189732895549926296208617555373310643923720941976327581640628485971784326605820166483790125321018464721572176925775773892590721456982881787043124950092990484201536789626966336944918030495463797855112488538551279419078622941147804580299898984416508162883133895394382075067655194243514433093100096534600580343988939458115657115993250662462298522548729896701678775541579190997424786579945643937772501123322564559898870836446826924626899873510004952048882487778224127417767385101585400538744875353797813447777978631700702469961854820517556466124639134028920937294672429603016793037848756520587275885200942850398389794287749278044359531745777839791807358777669020804195461921905120302059229316054079232991408227286311870819590510721569231651708855328106962292158929768608925544790373853857482383306824472080995641354250965574727792393864032225106861577306034697300653971929221271212445722293672913553822065869131219626241451734683389848570702644303065920861176291792521558737321050952387253430185555331405732286195006178024258424456951792770038393609327342588699908901128945177633891254560066303245732523555344870427546782290226958712135762941798180024163661372974743232404202269583451482537363271619177250680613585214499741781908984354563848192800494753650076092771819109140957179604758726212217139478889234421282379362175990529821835644708904295690283086121996434959582656751210647412605637675513964497596279221982461868863196973339069201429887654007068755414861827132326306139584147164054222473241980350491589967858557776713187373684316155038449575618105369900408433126454272644705173063138826345637913442399255710735799662713978409797094032136029009586436318499128541299604721571077412224530343930812561698083489040793728261578049595737157909797276079934826980770550706727822394786645806916864680577309255989189435165912568718734558947601721969878317721785076306331067759283251467962281257817011024651137381649273643128195044417953254493258593153940862224729511203958741201640499760473097198439864798658551203768048729856665882100499828252886577254850946487151082855574999317156652748971837259307562483914878776510147222379673222962580874239352750335191862072555444975828884255712213723410463266828037411651182919227538097349062577739022546747278250903024273334621660999330150761211851379742018317881576533460425366940960138628493883011406705943859203429796559567675535164289255996874611240369285442968177130729081309074590848142395630422001747559956902415689404820209294176089042656081755279780121868324427747499776903549705294655328765784999576940342810028702192145606279004324269154253867751642353621203974881850295610694826303817488844568146132833727383505075928753885147572612692735165015711769421048554542070354242810399654361818434719368295880211535931237433001555632976125517067238832656198962396712804903163460807889900455815757680136423762425859441334204043182719488710026858997575490531640495516781368585505093789707465162374472594635303192186027800457523736914087572345280573582290760786159365573103411656941154299837524431065378424263171389392503981802231258902494671230429033855062825713231959546121944159328268495421309068614502882306685204674621095308256969356966666766122525003479210937663074013182258479003776259660018390304186466680541166053348960283479625237022809287121367595035412388744044239611099125959253128899911561645519800839555380239462136585122144008511669438366731995929073949405492420376667900709220661029085283015313020209709353205453100940616219569699890073702752579781990447223321299051721017624632896030348813794544183849425079635953202929022313153882892540799943957250868217604667523913653064124334060375797053993098870858523925569551046317503267316308094719898753219766774801192095715306219452429676672235112619631124511898093133013959128722316359970678599312093977010335452375559247513370166736092090574456433935326809412320945983397457233888978307895264420984497415727585363743626074682832958755814810413857303620091867799157897717816370068274115248960528274698108040982945658449808755869473246102650320417565929326333845882881971651050422827167517217104077596445639851821114051157493683810742635894989587153770018278377195362244743702256881219736218684860948822804680372683905788860763784533986477496313788065737533802234833257204464111113672809491229988919947991795967652683775899411128955951192049921463575448887805153288993024494225114846181324911929333172586425902963400769070966780674547524819161320115526059528080497932335046143508301607356995551138135221899924205441658987658269733035621324560110882573035808304072355874806601165221300380106171227325223607169643034647940640274196728812685274359873136831263006304656408003082732057145836452832749342169691650056423485009941268669027386162308048385670033338685193038771493011380232542606627863056495879542008502880805414597431918721140739586543499467219806560594594463491032112494815385909833210500205613224785507955686310798735572301646316881150067578513290365082904523016186112843814915007587050981373192528200585212836159927436469022295266216885842886283541168435491423443612206435200312615985127614551538336788254276085151238128100167215716946249583221211633605185262264069826487698226340774759325804582030928036750452733162194921952163270348197461325900754574187869316765041748021247728341114696283137238241132703072892565047017256070192987164958553224038662604783524706391069906991524023277641976858763760725563889404045989828296188363974426834619666547331221836269056561493107043484318346343411475093269899226313468745712329235543360037295089819111904059386839582621984446596316963297546150063294647626697219953764266457927027340885615772531125091873252272631720640711228370083653607953063966368539633418174875074650566345913532614686623062881861867940125938472555514150175878892668241647977405484991419271908695788766684695888326003078198824938280158102105119853025234736617481270849495531196655661715768166684026623745873487683652386619666355639937499150383646600096807370276654627545689468079753869411568560622648148436216314541706050256951217683850550908625856343019208992016576123464661261550735971396587819527471639474215022341864039913267589476143958748419480772694891876107354960850890593907735502548001841796792050939847360739641302848515884025769068825965128000094082932828425185127571307806811021566014137747217500396206467318236328472728097244587006255110004387076673139107890539548237044425824156097472745813889484510045952711786663213088356470284561630536145733911211501982498559661378652360008837716700665916159359904094182088466513795823005058063121856319768396898854547060259393940138785515609832165502868314947370449487779964530390892155383590390023692179415971876176592249636656381113826589897377081499842551722439426337252530994596174778751181423424680795624001342486697294706081955894585101450977165425573617905395850244915088758935285429122592897205739020388981012219103072788237294091769962980077342535757221203418432941160894491195721474976140248503388095661248856303399624473185470961208389849497364089926152499372714312126767461900257797471626338386721581660850283507213999726146996488880344240719182687991452164173732508414685589465566787507900850964348931882684127416216569583718865186179077607670768284212983451080071176708817105228624809865019098195861939941497726762402041596163844614830116358288371997283985184194730207775127152436881970559903935381019936314364558639559922774096677638217859692988481300751874779727369526983254228482004737475300601145894611639421903361542467363398501213360712764417631735649678550486168557348931723787449631666755925096405388420369000899823675498940418595231221124702839300409345079868154948846294137491038535273821337280923073066561571295340838166234639349825742531988440929034947891408154177059761366410519193787782905976720890307576151528553316507249479343349073851783593546847123913632317567317846372372327939291971096652559582205903292595274003243370269203049324145385499689795170515221185366082570663023595873763492544773603562222041865184936584861074605376952580232459441227304672313077798557817689953001914046558315659224638037321740731206559663846665380449252779818441658967069985751774361507760632473306338252726502445759875834871204639048237552141427963792683275544636935792646280943485974808671305731317578713870826753062785532485971180515163857814634272564635195335387790856226768276941062704128562080429519453144609460423490206419937481199732267855205929856018557246415827525455706864267319201498125939133636714741802718320717886300110626925183795204888855787887577074175725533738125950720887537347424535561070805513101891852041868827077572744561484507989621692580702474531396737892574081211487822662877745349116593605159156729383062347319921587900818366263375185880512929201354088110701126470098219065527043666507770261510497854421810110939448164451698943152503830029726080006625320200040520179245423756623435003697851306995140939428112221787156887077666700996553940977847865100196638963793680794359849638596250132559670956930630702950500685956786026466642164670914885965443826788159172968736361750853121710960943216081041183273175072372979510932032707301269938149379465406662314978556702280247061807840749645585365531777377731059784001374279075667126829404401420691428539743615212045265235270020342773591042248858071522271717634727058170889255945849978358272909482745307711627865283163435847957785784204331403474592568358902869580508083682878366157990948839324013768122883315963475491136917562120599218979733457959534572149730364692025753379628621425560376150336131234865331480952100942562919092867815612195907447519075702848866595472646015551035556081284275895709154761612756255933563537838218546865844078922862911653504488308018863265386281092349943623952916911800994368973104056761852528250804721512300692864963458145445824483255347820971019037134918448707254745206850653894432236762032978483159463829524952362195323264147219039326752625951362604184381151201904057738161252611925280747039776043474177503147781336990996919064942871360875237359941670395365878590861020713873971762604873830849508908012873375408257950968476922137739771956951280633943969993988749679745192342266168245664058674318538055485039476690938018003290090236054759622892898040659713033850716165980944718452347141559880780878380114955636535742723043861517335290976534294684177455400926604329110381777931646248669280877734259217327196551182876051069094378937998098866530478957681041712234028654814888131905917338100965967892105904872037723220549052701326039928145857744369953383502179965260421607487616386564209167080642716478434743002674937050453441010443763261690528005324970941565858883713075211923610042437940366132842674210822225377442008295832303515551577664045947949714774461631465489521645334004307392187550785436034227884101649637853170329828137284208283500390335051088335444889804144240193636680405045506945107766900670945080265207220629775145289043426209493622922698949071647486760777583375902678903033515552417541917116831920969235386210363178340142088376835379665859783089587685055987382321249883841574762082023550224777416231620154972919616797338160213408236366891706929380699309382655725589983852131400955787545303665193557551849817184165593365979951473928885116704462909697307413848285625508693816562385002428535069649358928942133410498339509358743238421258100708240981684324015588748900210073711189632579556893202705081265725894601082749868635408291287727275655577194678573290102125825170086035040484232150083873752248608181136453201867435671326606977944341526632009547229577846836509584631478014143242089109973941543461915606216507593774651354798337342456830706221732699599404891443572094419363219644742765802843047377754966405058488829663556837729409551907788535399293285347861049382361971538864904886723533163555526518108089165794242738840483426532567116573561950749785017442271870920336228551370518123427274915388957851348199146248886292202460461909449387799404547323228471383272434509518959763003992924141367781768989737192380142842480930870660163745151894054677053437758949663813731086050689938853655970015147503026492699851520693166022598597745443993102720868594698364075260023774606214962354309012728986735718634321860950709688348062824234774590961613161691016867542267440897067507560966897703437943403507640327029920132338651501136320187054532028638411930159413554051637030423512363044690672926231282955661002672928785208664335880075389816650085084439963274385171195474695927672430033598079144242311921525996788373513654588112383889333096959159437466735558002528781348486414904534841975530061966636837609804266316897456399354047394473562005906076283284404144760258327626346822249723609784022284266640167406829766935730547995493397732516469482827142457873595156038351126432846012800955407956490920052018903825927708293727658983762308165427623405094258068740796603172657159959296286624149252997235091027472703913687333548731718324670163174275390959247197401650352011846318171011996251358592473134551681435368155541196860917606610696623181694010278717697754563184304574051031316251417321814436465802574642340486590639681201291187904325423883463000424002174582381547072374317826855062473107242229379988551935153323172515346634969183786150690393212491421557259431601899142690978994294323823701455876899435701027711988523201610548056453523444886293522865553161378465722184410886535242333627527542733516523178563801448616569777871266310856980981083265484822849932855678001489459170088613075732530863428649925630376186463837397308319717649595891329948031476935500435455624472802073612082490159442837548338608997149512076908277520392360936700739593916109769626922180643001693273103231015903595889440295043710159967479745735503941900940727964296671000525401540398322046231484132414146522734920594262221510570275677621990929314710602834963380737271070288090610378802128282832590380454744099474544024475823423611069300029448152566671254398291496183315734126950349095433788609550121370536720897944676282971514061741813356823807214052126186677237917061762095308050831446304329439937071327622779634008714482619517421591882884564857745434451695839757168658602296470082511046928104713149718410278319240989557949617500507602493983229636996516181879248613805238038867042316790834445118248350398858076935187099451934164418604386532498606170986722992365660231560797843153063271563788443514779059325867733355792317034218513167463952654819901721072661329617972243858054771469153313679079903569824071541414267347642696831867177726947155656881146631552600659665339086575811617495588594151163455230475245522625388717434151799557908743292627383052511613136200671725892534486589951625093974617098029527682456742155737175172405092487412877427726104127258563833096521004157905311840460169430219478148902513761775880336126562959473608877491149034047519425994930010943634498412245444953144336327898345603332066303145383596150609533552626076533974291676292520222993544890595447763984699804855737099455124340411080149329007965068939642875966598793118861731518565687833430262380733001004274757632161788972467376401038355883147122045655417374077689039862452779781839087052098679901858346677923542459663223332896320277381850596157334347770172348729906509098822927129256458759822022148675905899223701855342614397565799168949785172276794741291817053475659937814099096322493287798345840859552907079131941851845924978930890383844194539751695676304445440979399226951057927567353902123378132433323567617429836405674693882979012843963545679173544785848300456991483147524835614986658597533322152034448755973801377843387416121618325770724277981194299466405751199714962550505961931460003208378688600697287535562511561353741330942800937125995211926588781220543050793133600977571300717345575316493261113131116552456564729964211166953827380477502910455669692168512370775791921998418933701458607271980668851921215647279827360610569007708219037048199782326613180016877201036021945126132759887663454954352015375170168409834460173241495891841038683704760348913448286681729886591072160275776563758330638496910512165761772117014218307648002368508564124251534325744325150200619087194810802766401014243496693556111879011015005743659413330696167742714345928315642238486722207613936082765444674753643019673245015401158035294318941694504003282340504346288094722514952930566390079555219140253640807430634500692703954257664588339051136802116855665240860073178786885650369527815596099338746885217624137243309377406258432682473698123856721278846812323800523899094812331031797385082566097647683527155680167791435029585840321250762551813762418112720679792769690866155435950116062836024517617357299375077471540795387059677918240577076318566969034286390680892769649361786429186731198405513083340838497323017341291665242874326038291059227476724681873022038089095285528312325892317057447171564266568586107119616736714549794347808003278134762213519201488221346110993128112856687077893513415219061475447900003346787172855136990369896726234761766573434120220317346063472952272448337255062510228529267217837408000999053462932567240563915748622080125769517191764241067406016748583234922264374449758345335472756319379828241513641931305569917417588037181616014143809924932815205237384972819733612397472432284330850524080312008297262836302147245200038560927530055107972035962171523150447593076408931069275649553824699456639098916444496161304162260062809468943170387565523245594541390596714918145438666365246546689245745252183797075819106401688621095090876185344904781136742970721198148732270007430934044162627760132691000439041064428889806484706017813623586114132733425060672589894843118595252457295838062837756723070961999097555621312693240171074279326880117579012875646897242149277321719711733847922115731928250467745837292960083626762963816606551910333089802565713724087856118524918581719093746642690269863198844748366997116268284884368956879538194705806703531431056228296083150238377081867229146744353871835789012778248996205657486257721059529362139003958407197605846118727799685432914642353849041036953711586756992815756327217521720096961302381377127596746142161465584340259602921178977615433483541295992165658263596340670327320536069244112495412363099809748623136280492559726572000121012773632723232186874038646359659313335411741986377232674524518311936160200800615600429635668396443398608240138381453539555348828809520668650250671343293922672618164192292535582101431875225517275156244026433634067185848308294657065781313612333187215476989614117604764193870049824070390252298809177603734340651253905702226976376048325436163860450073713974041915612592963513181899336076095392230506144227238850906884096411226788496045858993145820657634536748058856366595034814716735903322225538839040412119431549953461843649684167360232863634751895324380088159041201260951139734477690321257856902465088328150238332227062011218576991298827520598198761385736954292645294739043362332736960911682297656030238633331077101268093359002135119818251165784736358565832844213910827756810939875737660513797048087212830249723962232869034178428917376717303193962118353690428833367142963848446414265213402632431280021812074077690599564838991837322457055487584688300782931674741952527421588505181772954646170874175456388571904202961155704241638091890049771222993560882607585530757017976115911952573504068485899185279753762116168839347698262976578508261487838425170979684137701862108542923170546596460306156404277138956175949663251716200782253165307593778468566284160924858454145830995844629201491234610036550994720604274010747994182047290396253090371963545401695929613360703513847182528167503041123557875695345148849333373878221661597914625141768649856608471490174335372035803732351926907486025754354842534613776172532464984832572535768327515844881490526436394965491381666855076287249028659274095686979696945198655734864082638421526250073179912901165289123268134564957075546011359311495909593702653709528808304361203527319206255621182427053355523738220543519710773823027223132679409054549027775442831961682391303517600204237333862118194475426289755761451702277707296393110874367826413864583316687712366163020421647994185965022869456180502054458596403848859734450439706379578077870372073056759489234055924602081833957044028810402633147181007276051632788153692626508130702707830109702405142375742568419348542798629216613503700224922909908362756967090718765062996287117122844552875832676253686245799389139347595728796130675118320390234546149454670834544066751504249565318260879787548024790810406242979446770552154416876492294406310315063868747949227667643522600864761140306345611229860052058719598080112513405726991043850508673056153216111279402593981367146011952184836731842616498365096592978350909805377026528677488055429048005842504544916043525435324839196075878203971377320974647754887390761086856963049013283076258506575914329816700455049094722303642254364304091648814168098173381551507647451840591765894876168932070446719153865778885563394359106548684288553018793931349583552982338214542407468501819903786925532138802130629529098777680006753126253854314718569126497309812667757846335764528008044743562285345118435913758748885685594879864112389106367979121888139986792783004327364119893753061888675915333749349176366347890886613745063816053159920032607183898558968689280338653012600491398058430980395201946943542388854444000055858141675974825186828201566944126809011668221418794920534362178168859039053461504460476069914854436752906029763172497029609187653975787585178927303846292017360994364647797926111733027583009901478948142498646050043384417905372444496944931268903403992439434979879479942770637740753690476740806020801710454552641747960356018611000075327714584507962849524611361344711030106554670886569783549351323472351078724105652355038241838555844441578318898897841075661324805417277739332769753229878009533719801417423717313666316764454014990399156859077707977517319452966603848929548766121946203147643859218537192034137055336190268636963058032985641995873825577893610651237709670016072925893594503879429725356644844369457063367975809117643474014731971118532823228103463727833891957592163856226387271372429509592488058421511831385280657337089399662239655443429218802228965591708765241250189559238605176854292179444242461723322080591821954493640272208786108598281886459759692314444230655863617042966003749533599343444299067214030209635909775966821498340709476574982742975626361536197348818815935501209582816331114190065579665144794580602485080308964385242752027554073276904441994742300620961000534278860867689867020986281041455223362118835241941456837374714610865864568645291801251556114543295407946704515848459239154674697362046769950692378888452623400282229572771097864392659798198120240197353543864806586525947929048554297684152893308047219704843370016970882052587840387773599452000802733392330852193773111937412672718283636893383215630142400032737271892691705181248987246618553302066839687590912371211240468267914531697627820074789707091404265029387340037461239611811708185673110487114404012266691870310903293754640403271664054054031912932688775829488494218505928444172129187673937427196330336208320764067176296868724103052100794918399842606946904871448597136749757736111773162227619803687659594502046448768712433928152891450746130371363840410652293080744987381767926003804237892897250070164087973176952795916430848964367355031252852648768212038640897736280350338261671737330620125298743503844523768203861168205946555596605455582093238709190821962128470602915507921293592334619676036065507635428420086916684884214983250263896799084169433282473644210160635044927739856127451277473470079283999458575229066185229280691034586780160926329240765732680304888588299744689464994108431532283171653443414242090899481696014101086684482439962288210278733296216471163833421815158182628780925586888822376897909306036637374946708996348800367884071593894189661170610033279819722547899021106547658767686329565467340192500712897979680541668798912095138454283147936266843360007998358472517268925393871497433103500260131764613905861497962548685784868541870616476890052054360871905454655898279858172895200401989572997908610245435983881775481778073485685280686437649274986446789130591483504254232332175529710386658191966745113523053141424685425139495773476499765216478342651665941173618190977760333055902033024384872657818030654017969367276717774151073321085648806703356599254716368743780435558481580420901677612523062351013895737100724228592786042568062107737070455298016087532682896707417793580491680041438410429719485355048967390077083264076388962961828355167714722317592320370827848391644942096723000083051140545514947267669412742411794065533596103361280614693298573505162109024848678846805444169389172880444459202199494048082706599254027620417893466168039642546239479115579888099508078881541506265016124033559988332674831306884559008169520697491862338365532536598453528357401812178604851117947719542710951086824409856100233754444509156506524309612033044307468380982299808085443186944611386003601117911780325987802724509697758563569259876368387783384445129328511747622420269287474468327543669712750010087045876483039188262612448743317728915516621626117928029830005124141794336250307847079623506313999665194361825372759554249153410409183212617839868864103466963387542758472981823377132373705218155899876326725148693305330539019825079506915200669816176853141244218639126304023460717648561260491304752397190417659490355441989951017923363781347534097390865285878713869213999287206432420591428813538474675427365071120838127090852933886855132467074659111619562676202837617110447339553682721393207443178100087281290328127247995754417112561369100787158132231266248879352067044112479084983264719316567979730098905263038939839971214125363374595449573707635141922973606899863267118203513717170433039789596536469181497589722384105677474844905758137821840079076214530863266498003585481182593902107893833177913181849103190059822744292417851711479256474699638726967510035840429428346858333160263231010630496996643136387441378258822080898873556092697023798721959255545396334015302827015098278882056425796407239392397232956476892111396520995380106278438049505014310385628002037977902342337953441509038027443751788409647795347163998505372089227146637041293919154433250889240565419389046881615254952215539192843684215009688160143048478425174288936100775193796780226385547070020977100232448289652281515049930292617229184091202525191531198063595801053973022800840704784820872992673381084005297782343938327568131256256556479269682116191970768182614229880333147609172301916923262301741177109260781601217854297165323575055358920478415798239475570198083676524723732443721300262383496032229363018825463671828809704941471635782716644751740023789943284631348942200705853972063170162160999522318676804601177537936627216619729996307440065213281090770431889594505100065182867806084601709436238031091672854732504626896312812777387303749860479454260177399916200320380799830455371789509977269120795136460069828941964283913639114563165542028351436779697736012732130505604444455371864253011387016519248212575570759544350300410394911712983683487480256116765240404944071453078624209601699176550394924695263728059698427239344574058568334994293958067050201172176527903831255634558691156660141549393766696012071934943913115484274145611946517941953647564253582160315995646312482153334988315478273989526252540242683724236830541236622034309471438246112615551638449820513002540172596671937995950890217841456439422895461773152928971746416716189142162226832707855341736394522956276616624971481068745171032251034049232482089783107519083705544483110329427167156812372453762073876597310062600322653745302365790763812842992735426252772967584441103571265341126531113547564374734672749637234245331123902641582310161727587194654820019745248461910444967186016515315808288045176171982354508272827342998134288376517732590806731741646926697645220363965337029581888647884083269348422311188394312946664966576342575743707587339662217616137331805100347998842149045530806752988210418006058418753314405448022248987741278254419212167907247513913809199080977120099430357639246777084441307428712977701687286675151326369534571182939832097138277539211087857845034294204543304666287969390418001964148395441950585989139875385590303656172371883865958588952669305246099659143270060682140337896079144474856544934641463457116743187642826237061558362733788716562175831902298531083229638653440440706161983608004622754081768734857773060821454468762114085078283728322528703124406352925302730439883083957062960433131933805251166251016516012586353133480420790304280265322654521056475861207824015346424935504744423845300452225033526836425238787590085520495882779112008317065579394509061589307432948416881923424474290449866305552413901153102825315099398690220349783947343259307886750559442540988350203305909812971163685740498026947552568742893148194039931588949774879970533633057858746599692055215455047758341238559395451364663345855366317867564834729646135099456744369432592048585375426073721480890163417968348771979611796201261934055703078567406747427744697375104481544174648392058073961466625235020024582203728336352291513996986094874256185854991791685080610990152615183539431141268099811068469205568193602554906320524475547400008739279711976842333574520456082755846790218280602186437294624862024983441427312544079244000546368779893873401987689994139764502950120535623814651179152496328682910249901517101481506652197779995843784986616670792585265196163269309687548693399925026274529874983120929133377760012206983440549695551738896646696623215989297404939889682211203871991210264293681094984244844606717126451614919471553569075274498606834230236244188673471146480974222912913190835077133047874227779355449828577436433382135148447286825617062415926762449443728082702594152969650422064377924941930267935071028388877977321169833232747163440353253267310996104254411980182436239920932989528451689694933413127497207631918270182676302127485882281268603369477958295273363096077183636740912148169114371193784536985083283902890972484202917966110587403035571759093279321546579068745466402869173538417399679967913432616667493472423683885050166547388737802472916691315871855235156383169131288239318486657200525012570680483779245895062305563996056248213482889506529490849326731602153691103861305209408167119705515242260230328181186763853994162100881480691066368892478404877203992149495521151452388954470838922703040997902010057644953843550762352493412461625516857663997431242224058532904415463040318981657547924068998352340905512922769432663189232660532624769310383729592362068547593608870650060595998679965602401099581206528441855901179236109264084752724366794707368982983662815964119286589734902757945410714932129839116396093317219046347535252888532675191606088843875874704897417239471005188395372712192439557339953491560205934002452889886394933894272876308578328365207808828711179168414259608721623927523502496933838393457428793799812684268463745081186812542608260392416010433370499507700262550122929377992239221001838726579016707269433897219539181198046996270552010482235766338117964157087782015985966283975588701247045726081902762189402650251829084546816223344866210194676182912059922204477959705048819332734146379815091689336637524364929460220963810915131858272319214244447722361468406443335470458058476096524583701198853795814194075006705352196186691443583504098992079423235067419872944433505006490919945910122365393963068675031001612017103258770523612905812762529618783138917498254606071223794161893929138158318492869586319284506799780520258148846418434757172582539680197211239896881018515803051081373887430733579302857936347987246794958623417419429344005772328248354853243793452135104398063062542110579437391121744333277621268803361233870053807734858835631158119037843272520870441341400614399237030405424685086969334209676873847960351473045415855189050061935563675860325737196305331224200616117943823604759420701586851918934776118213692003698143296911827779608976902811079102076977531529767112475797705469941229849944690454883867108141635365441785998612832172078731369693224238350664489830041969375837730492954168824414056189177355243792698783340215006928345368769559408282917866296350367881221914486909281942883774172556468225277099168948233363269376192723282146302600095692542641230168952832808020782767296252162758279158309609901824579182783475862945195475231707460244704592911907037170463420716553870328632217702843585410977552727578853179571426925599166549172417146799749102636306227725158367344936042547477882395693982771716539170242336675432623928599372860615402539341517711133977203531243722443236342194516599959933119653417057319013840058317604964266590447854633015151169560155572883996377331709900051645714663763918039987885154552991482841136985865084362152158860148534269751984844397959659541154452570788168014856788893150563412107003327047917175608066736641327494691545502587836686470543900605031611407265198528191303630102359243280747892485472863265387174287100016923860845185542891404804013148439924817085362950798439012571245294319453680874984297621879083559961049879622958121446250977272050425320306606285354131036018234798168723775933007682271470889574370264937602146359025600239134575821987227394131655184409614989848052452050047825246570071847383091645875866444967787488715092570483378353288494333100243532798509567792665615520686298617717265868554483221802273131734612661032743830350897147803774975682729272613252561120319446418663617613073417604651296686974217157246208057861952861449113147050043647775370610682363652272529073184107569485134814362346172666298331858566637834196595986365952192757602993117373751993376240982022046768164013072730892353206535460420615453828306845064572279710841143088294916480565499052053231780452709336347738691084185432091593425740771458737119176204820707278821927881237999715660500391048007430828670102956344294413152721409742583234620622920149958839401507308588321874257518577454015486691118240776395195113617978941287270038060672241104416380813481866596084061389269915968822028613415005304127845266957647364666971447006268523630233338557768195954047187206851399816834808772216058899907214656297856701468898199002670897538114564811203185835683425763923815278903690461156430223677411909657946160510851724502461117938649188706896916643100647386608435009014362032888876619236325895188793815266798862745749706106506479882841784374265587592487201787224373098975492871860166082283468710997748089885840506529333845407436851264545811858011150219382219604379347645752726499057905150287589026237815033866055841513060741379915825878998582929687214813356320581894386044883558183977960379105215077320304083497096565950049247844717920990156209464246465319920084731413724649680849865624353942634756522101830024182863430051114033792560919166380311429373809216260675605419465329833069217342770062069910114854122309568419466033974970425745465958459642434501857107218718971123119035128409371469397881897585186815839826349668895348684897272245142434592510987805458177150724678725955597572346697030314639370121469502591753517282960259708920370402572873668104886195197065969267129521777034820643407887220105303673326445039573491965220140852099373287097496066528189949670763124569202670575438689091780068906203576694972627365839671817041403700470596773858482647466658253422740386133664081553709159541174919133072108261503985103953435914432396215687609352620960096343448600991562558419385880928151195133819461645063401629811535925973315584447341019110981111149706001374055993456896605278761048310709211922951744383253465748655614969065418392744017370377375608550759362781506368559381726728384072326697363971813416709993146028944655385588749297346365456959114182017419736461042351537578562526360861192213389132636007166630688465861845793249200530984871337118052561835567079328366538049000765026660193283827610694377236386991033229751951808521388525499513635262158279242092836832140555440560073400798800815368345572342841196841776387409383235530042643016233598157576728148913234819332275139630485305213248631070376465143794512837882619266354888676892805621625963682078248185372587841125605767234982225832335398064349555396985773729567056635308297992371560784402507167563027751094478581659854067033868191303916285626928789030996699610073506183572933532596339597393850107561478020502636655197107424177238059954997596113108530797326730221541593902928402203537013461157400029690401018493046665211666166204358469378270037154335172297393174216485248725121503420789407348063010071390329533680395832223146164462745507692947001391529130801862168011682334726174306540148627819204922591749092957530117430325887019282218219090978955988427728058260449952412470823197052218072141448268294022556340280424835037795984781999366054269958464848756034132989648982594176630004672100306420669039696269119266434047002424304992961684986372223603438797819484384353394635430444057541507063104780046730313182557609308072789153374169997239711510719201004146322412608353663316920986121925520591541122253715661828079801510527833549670099274999491709496634797804952932857198183668205021257866073343269515780805749389229660536820198092203125488215930605600587871215355666786947276724188859371397186022037316088361644778250635732470283112733535882031886667510513661829843034019999366571949681969849682084052150911688023906378014439209673271095202669737325968584594774219442512140578290238670364277038061992579648721487593173393207142053799152823564723434564350409329190846459694125478862023621048556914061770048462174812408505137424445492506543641745891873073316483436025110372033409414375366936230200146048423844838414222181536161846782557566949705129990399457317472951739351261785801569373006531746227303795830634471905078669396560542760146379669021643572488418097050893025590199554295795706543531366724681209496133773689664432242736962806632150627534622628696277077510944576198812116430408186561256035743377296796753686751890504705022596712022553368728773256702500151227182053268086489632102223056026852803346516545390611915301533611348807399922403591204386769850013597096118864581989012298699419693608912191636839613732507209170461145233627185216472749398726187388990898189072770763439093403518891932019912725290645779059690621337569264285348222066090094878456059640329147915129371117290303237021030592292670222600257154169297352315605872027372941950242616107672081651550851175860508081760970129153374781993937629058813424971416738761745825729787847462622111216197143429323243979882172155198450724432743324593383914275779392026466378949664221426758217261729189612423558214554557530186871267191947102151847502999069169775012749794157426453402514810714255813630463781984050830254865209463222758745147472766510980305219591460670495096116671110823201629418036748882201818294124011631958312550585096560379699655134740460699964608823579841940631618525625828781657384293575242467614298392763144233040706366406941607438210156643044786205735873503464511405938522145093703885465434530735210561296019227335529962298999178034040586196081730468342798518300959464372183462902505433801844615599865799534642971404684145057569993210281188280576380630476530898526074857814420205480880241965745986882792035888757590794028955723716426038374996849338833559932452586140266980621095536231170075323511149959549703874931065696487492600415092900435739400306052907592703711132585333727980373286288670017682650389609092934885121741571122122522159670438563627632093318547542503508868040766214337070703369731597433132311166657639703621370846301701084026389623048817026599670060667179439333659021086744872980762343474736850569676659392198966474493386549440578266003053333082186588354537106614542291246827112581749157007702296911868697388959332695533990793383893664490479266584417068318037742909517275737752426031007789585674447058166634659294898928747242045552464485236746664115594618605215011300979599503257203305217334082092568236628267344985013843547763747294291670470047802535957903623343437020657368399684449287552889888880203129062399431985481008438584515014481994216573219583855853079228079896690042367223924686034122288594762514295063156920898268626324315648438518115253097486962189148392204175667225849729286226445456605921380806939096873523137739383560557487356072429231337045956388794601217753209124072054129226870360853038566338677743032012985341086807377736679411843981276885053237024566110977492476771503290546214968037644039099464550897094790834706699721099093962105141933989673930311744533377700960334854387571900917166103110147659659249466520068445609386964288807853059316620168297537668325485865933457802112500584670296105855481680915545548493226661543911393834401207529878360642713173185764710955795316965168787622654503595066419923217967802722002120662638037373026198843925609680220606581700047445489383482049687424919708273040426558949264737858957795000647403987656924221176443040064883708642350687181826694136253738127330684671591046139531052380463513009771563979482572039356373255962151917782678034885033802041340129743307199619097233328082112196578519927091982199891936230707884150909256521034172632719636363521091720898776970242833224965474917265555433304247123118529901137430226483634327023856587705116980002239417871108319839335638375916623376112622551644810012248506264063930696610562219410381943149102658322223197937678481813606320323699975236696958471098649016492279090076170319133444293460176625184596730698227677126813761817095206400183374759216260051198714634392579755479687180879190796483114248786555371475678369804175640674090949159837358699752195433129180316758566131223351709999638041718422810274331742990951257636620822487320871048126508092756280813100554855211139957028053588013327917122198913433071818106630726799834134068679160013593971386434881103024692357575907507241950737310378630079267550429153247818977789125871662402801817970872230855065646737659095854686462731021415354842970576968804152717934550262318495671314963350532602879908240807832757732293948247536523380578160035419959569518108918784447491448462412137418453134862337107891066672513801860616334230471951919517332173304443831825888570780953751285246788363034446969626939150059851898851181438879042925484763717181004255502719943359115166733248981645341699894704254697131017105818736921223940408423348327786889182747938363197834154061830902392554156435407750023440648372792002850041562672250977628797299802214978598005389324346539531346151959450206336135446778280595249259803631172911557769108215311016978771686168595546843710214340581040942062457057063268692935603716295504038082962288048509583861974890393704110182548078121520718185644411580496296222328449947195432046602535916693995613387298386507408780506595315914911921479890887876215147909650969304494024066526586225849123005910918762077646382095630778931931346757319039894911502751747789498886581322714333727068639745872556065409372964047414149112485677306523658909961835096562150524751732411080838317736182448888942933093895606268961589933047615423272673916903728978080611533502449972674774081096598503797764942645884348944430745469525003711295215098819964187404671012427952416187725378727786905246794985045415946106307644178433464705275119328007348019306928824963025439313691763668782062798722899385610912251320386273864710861142736026846645135909252188754868601420095021015340865605644836361824661745883364808968792152117307974651908810149453971159870633496883740865752565135449037461668645546536077648975314131836748112145478457473219740920471798667556869960125461234055817065490258859175885285628584953843509517596345668867505554285514889167723323701287357512050015121692853591733289118440862766300652866981095614675608654309989995315886000143998396135553137185067726610036120538915455737935969254199703099817201510016250972455795230321269903048422312301392761770211928028354145329125099838362391849211101165159927805744092684007315840856707737341461058167772487736756099957717675473691906129786667935252772601061545028108768302234808713497985373365297948641274430587203296215221574345961230994672277749803360359193516856495230108290157840329648341440631198938757251678204970382831606381915680275213137697347858002150727375307895781203485307484473883744272906555288266001200817165258826262727075675725257716591635432186515157473223028150029691816263095111521243319464687471524172573139458698360269407309199032471050474566311993118259412542660668932265589562359644510621963041155865548945121497300650487352449508777784468979694634426513537772828317942111001795535398926324943422208551373687738576946773203556833098798717698430461088001099914541595547024954646661375472092488807317408350346566913250338108759540057985638077746993955111171112328820061199590600392198086227620753162995733450662226617445858927569420001713969236741989828630948180833574450588319731373711903855060486799396163655564039345698607544221640498442973766672871947487979469414722909966248710467716854848458792115003116599818817522590148264094305449324482453147582280389816822836854210015944291926039665417044690293147086951495604434926338440415073721865665808932423243575601380338700059714852879549709836441741792488804760726378846591083870419550890803508925668510146368472813839705019134484498935191225279210504017880621011896771692669192394477447440166720192313723588334042730350887044947130110782460215644430804700749643815448553507650166938668054991125105434580198724279597187893972548768843859476682893225055986729703515749312738767242055270628158233238534019926995810916703516383532611009665143392696827099246745248977224111152818798345644360054261603279547328589979297100716279561540712943114618304805492266921275590203046470203636551642092166022265362566762546370738960837486437866459650389869806593224265320782313732552874022794962248802750736671302050352752120230304707971219156606523660336382633326253047512680833685866519554769865607440474504381564912848849599097180344172766554263659044927696453738129653893073035304698701389172510771780496590176841936802151865302761348571680860263800078944912709327518474257759343474736609289889105392195945940000746985841805896029669677428140422857731397552397809310673109543941799030399233912332746909040532720379474314864021566978377272999873251707891022051812744124885974491031634008496623864172978581577983914539919413758085231625469667730235632641589475794150619183395972377940177641189239226657625046058226045174733945693943844174355893590502267989305646823114572830878635472028383670799260779086531568156530576845009341032709356780839191063669854308311029312688643910201285261580207886915380546039305180612462530877827943880066598706600612979758508212998881582897494133293710955955985826993331588592945233699689384478195600705114612726689386411902915417541739722185818090830677046968453077005670795090213319468045979170204444417939789204892454179728320165375524005308500566034576737898987963338387927353860772957957417713894203781767418175945758069946434228322886626364832305818776128766452234091588613421630721875062147987187642884157131959721856248529547606092402544561177488541879930776491519788923792515974360449087741645417357637462739114342298822449488187925447916954765900423004967351623437219657864840355219035993039116790594599396785462664174908429791311437980311512223782938982077067463642987019739291783423614655181492841413639280647658556620357148149518911979895009180223874198959236863494003857864411159793398327948746669270421114505220792854363615888473381011079923117247505220329255356585677664049314931629230734678694139946519337087971609776367779898174623016392374328861142948449742916775085759678693119653700750168380086960949155499566245625135550996123286503327737407566016747346634539253209803424081894912348367097128933134033209026020920526051262767537200052846118918745143582729289330199577731358958757254796901415613852048390713304803031372688616532100864025281156160742231751918640277938786933279800934032756699438250850903544177077853064348622706962004033155991744455570733338788840222264221266664891084716761786135297032044831651042874811868126397255199354530434313486202898701144716879556183716117541370432460740278817242060540347609848856085854170627805694801842941615250401543504213391212699948914910804665747190105692351064999028855750959801977832495194353143101549225136353247168001837459736824936173149547807188471426445476015227401706934327807848767757336325025510824009433502513138922146800546689043883983149787607085958395693289260701893919919321183030860599445814159850534251962896351695986897766011919041978114140714983494416935751421063702068007044310480679452041975260817105506127494057357582247594409273609856885729000793640560880686838608267126958654156982879567788055716707617618817374388539281886821449527904354115312748509120129073685182789909760976977910354818052813549730800446446874519457615531316498332465738244349571527565475528584183320505598314279075643305780092136253732995604280303515477296020030098630164900624809975708546552792232732595887804931497812548989820603875860217364313691023114981455846518981589337372697630105758577045758805585298760632996773500615181215149248942577011937115969226639196576285542223755083213106481013536345710106975197354880439042170721512606588875626871291468039208325582667848267793318814583217696166839037034965856732672573104509040570993047873549864636586600946869375686063182451949700412112614062825535025369096039498999786459019338974755584869605091453890220980249724670669250835092282962362604651564597481214604385189635082615431629121350820910826403003104538266397774880192975625386828828723852123205725877131574405220506823213765653859792803475707396944406032799997616152255163897899136984037149467558546869945013267921757832589605660179462129075221352149644630061544816890087955377134111586515737551040593447043669567477293756733349854129195479461700864192599260623687005158702265543834971108475695856200132141587902922373553429644147270249243041017146739209319111828763570738792038855231606786975550045686037268880268607303330586172832355166563357701644866869787011215556409687697592410835684658622287781166365700949235850476601903932841899635488286132183954552512417433223303334924339654705215916100528912735989240745378657217464989748075108874219867091756643632429813322406428893267512651357808132731607560793281317488930697318784066778729498494765272398211340140242211745682229072942201493005386724619163485130904202022091217776519730908780814685044463318869109903553577020107732189966016453281637553990660319723430290477329685113079511248182423596044961856001945559270844627709376213552713503306822818023162014688297593697713707841894004409850582679892045599975966001634962127026713760374488052368095345242805696062502487021071687972772302629501882581220141083181076951985746358773388927907625976757550591444281248073378250779875409940523072802482002533661239509527454279786924661999204412916406204280912651273951132005208285295535672054946219909063837891634639790977596324712221807117362247514557358211612952470344212183474804413414990149509238809439981619057771473379412775437353353798237457912280148997347627896729268852473612972362885170036225882564646393241908814115119934908133209921329744803362954544571384054672485606555867486809687826750426438839796751035312179020137553744032290180503930630534678940036725322028396666462410228617497215678718630203381382280829144160170143580813340707632098894735475557025585558858317991548829233513000048429085898489354762155716765006324871154793028064960280500942150729212027098432581056149169539196692726925104236330218751432617354960946370887350426489780721257144754394145837674600023307688494087209669333797381550176303358866174251878302019050729968937967507517270846921824016788799781336995320917033411725632689942649554498335637010167419336397232175314998655332242169592696906697141476144444424572400870971717778539112327093067876138444783463800876611888083983207170083321675644346805362198574921219111059109100372267243601302670233687663251072313975126962413948139152406974700118429349842596011773552489043196030217174007152774569580400132491146359237068657478423484202211804013344777553253599692544155932950092300826988479553320897993796314426657955077699014392247584812918157176169368190534123989043536752438109810042755826283158721013604068565913231515038679203535774504928884178369058776894642258278853266471211291480173741806093935311166204259716082532417236816725172477470708137789743596392612802962813458872462399296798134261238446520863434750113496557572345823531823074027591865316732601780534409583367579844314703907290979157393877457485354711111391503779658172477434811024880365347654675781477997577474979390531303438176163007529243286008326967136662258537819323614067995723599740886234360675038610103654633077561502032342904936845224157878682200921571570514807608262712820939354644200563619075573068253686673646848169557361965294136255243880597473518025255880151873301938205361183230633573763674087414891046871132819982791428226247945406865104966202772595464878125689961295846145514583498887075170207641605324688111630453813420062433919329327046396236934320749293431315499298684952943373016947008806638339563900522979936609073019926004407287494965736676597735241315537522621325721507728413196418072788997482680795007208078046569608069944196827332061266496001081534145441660360344774867606382807211870247725833910940694959170126826548961702195684758189705599548769315920244533960032548972113623329055220457543353041269543451440682599419062804836100992533425411991124112397776483338528655093251579500309283728712543949816673209314559344571030595214285649577427768236483487781634245981606078309040455844742204232121223306591253630936402159140292261092527288314320898603456305977832967579375429819674011396789213001788988946809627910048929476955644132821452242575943083678670396189577797160824208951403751803757745959636916444678928178262490278900744489859841376899590820297060880208764326832810219655499715645182875030846044180105455968645011129028617528067591868558395195304571341613595967472340204533275843611808771626489099439028176272179599476247906422713481613150136141144211032231484478513177718518724335204307349704430848098888900314380408407803047558182920363416157590393474201758322857355140086325058723516275775426505997676017643744621422565620168537551757437967227778353384132258403862334015010854869535643721815748720947374903620386231472364654816478601060932480490971670131527194135844592109397122911812349082989414273158109793407410829302717924288129171972211128560120838099695116647197895261883110890362512335778620527397548542412655856276272724405398125851775042641432929082505819082390835455956464890537531633295976680271142245187035903492793005705638978976460423897914773054844966957581402429799615966639890276362680668228659391388057708450163977332133527844095533074381181449526051833330300011585568818273478801519953285803893083217947276316483450878127238237927024895709467077127906494205978130431086207776140364420958452660793889914830489349514792388120412224694875399827401676058753239023832818501651457187459675315788104015236762536031772337835259938081959448983704863749554709553533135847155312259643770274947876979436926182046902816743415680364116115733311741567971389799262609152892795182752770729630071995011077212416186943558013125428772350587986322356261032726935620930929980062492614573417264113849082713422075798309040775827279767323796050849105648641903261297273317500987402845812916250475092054776317774418890134212030915382981829711173335987215980432142669894223406193121085796882453207736691817196648818133674208065049498279105211369641273734553147221621698608362212667630370922569030113429791704561994617493957820970496840173586750006782875981435607716044299423075557510669101957966520114042131333305739827536183007394096517331840759606833443208090815365465070040811302682384428180046938733870153323696139984801554530636931230419271455124762056773085517820715246145848368432192587566201482169736605902261071826244469710669501214911135453215303798275432257100229288082549352829521765631098244715048970826042979471511508984107091580443293244345391661860799146183369395902617511147076746030106619925352009433356430729804891165379772266851494837126850216287640894924015021046458072264404233267024903604346511778076065893219103531623817760886885142951544095975826674886153547351883681434185289303611231521616041089976004878543571748969489117028629777296212953323349455258063614460555046031403335138039932283043681305331953320692872923250177683234735269492119389155854123038279520866835277702312501263446629141277507452684136614615664602825585732149639876568160244855720212958481014507730637454455748640349500503114247221693292357196494079489640919064611806342106068403417869455065059257357479659597339750857105844932200810727415520571233287246928340126697639448929377312469596790606173960918053850006012331482692369632981135308273096029201320018383551143975076800835051932594200470053138000958652744400211843828069616439803133964252708284325118980347349053547067046128004825977501090354135068894650282674706430477601102362736679649105402975515573366812959916011548682536892494430060265960757728092883116514166456252596416071551044792912696948787868054209038559106289367618233852558162341669639111588778458891877211440955507620033485472749983207321781619816128919288466578439263463894344212333596438238529598478867492032713320227839147982956459955834133770281856032356102041354074923454063683946193317976351317051839318730438130981178530977940376763095445971614795085627642423640733668740952243746325846410563542410872587489089744781089589906095609148915861023310569791787164381902974729641039370835671478966522863544421304461378778407515218768334491785569822936477703076618142795139450210242676126711147754538340551136688020523885756326461651911661865528409586685079626436230122272315169699125916563209546502208683464070454647637642262551508356579271855170967104157419421590207084786740505572024351721719474191056299860960885091611041242788567265786651408268369542670467322462315801710770699824511644903818960772212717896089916384354577937380021186374075250659786984825241741518218892084535445425067241395844904434233149348178314423109684119028070515546979517570484530631163868747619218181931117408912306592353135792801215546418400541427812629270079846440743243356506400575920537758853809702717152952495042095735417853027634933602383706389112028339106706258689334826644383076016687159227125533755476679633715979350344859038289853902047035799330273909046865310677610431365709743531231196212790625683888523843883363608318212553575528489295604695763415565579230734745398923040975525985796203424661590667473045741478432125961111547573101928684904922392250894274825854974576257097814195571461500586504178060108677864589537026410288652807374481794875505642005225548330044177531365360039005070272517340908528872290881870250168390075417466336059673756586969344538878714036930804376660668563977914422083976407119491479829166334223378949272159674895639508462999694303146527267408158274977345550770561323126834672689147764552889468934313512596354544836843725044408393600233997245207391575698561809251628934540843116888728453773949153070655180109624524042333156990603965111319273651298391458411127258046131967134620903304444881460591875163980538330653624681761406497934980700233343891792284574498775106183497977969667452193447152410646280514344185279718176460251041395053721037678829461738254378953078405663468246777457354858039675998355241096553525416168311536304153695518695618309916457540059784752175841310886897127460619802471164722404564200600650074771839816899797743429825930009201986374834627731767112758332066130168898189392108835137195439050399086629514032102307103579336161085412416153127554486029951644923272380907379992376069188961704127018422528248726827586278839057571998807648473900112586115460802969556430088809375968020189041844685022056781922198962971465338313594502972440392166749694171727005411052065294337969412092077071647721704026613082450588574997329856867758216421272068336673399811264105843547610332225558552304182062413041942561167771529893602590318931545232773087450188685159398103844869605687878711149305400358723971968911033547794547454833270442110435998375569992137823482661229026723969741611365115006272665987498725912333826366242917125821729521471755536231260020947045523465294928492438842200656186871224329972090464546768651302078311324452528962511950595342549099578673610590552835055529073692556028916905926064814318454070527677991414313615925730898318412466562564990163323041355861919628383853159242414256088137191252280048016378531943833137528014581367233707144725778086710843095021674497092038114123627784121167157510997782483418343700868336934947573303682107746493677106954138797238462566859185550924647277136792083937619055813237304730731005743586597307717877887044110879449362749837937258151973261607580878575511700023545890682255705477599684112640496770572260433992519314468453095745340387736187494462901588315566712418950358743772023934749557380182734764221229585940644426005483627431890761466741107252352669121336762797244289060452622172213290346127449034328959940483275794816062774222982304948822110911696877653727753717365017899966674711812085896529015355416459096179582998836203266549359367394759872343302291818235445634107361053333029805278052517666247373144185148261119005113631421971022174353460671062044828196401256322724559684247918271602441742700392807848914432437990563195635444132700408592459207811301795900179468755190756788999083026756687972290609104699403628839678159009268220201066238958581667745931795711433549792994644705157034109666684453207981418901709657341289180089735714805347578614392327458309535490188690923861601001764955810828608987950064344865916426168792870505460405418447761033538503358683372036244995605536611386294572079058315846224570347240207725653521857675355698120638510301812810427989354182619482524666127322343753148059799817931797905784987453678334802583273277166082516813414291926248125507137012415914293080319885251207325173206112567777493143034812737493555231927748470718393412769191949590316614050903162135176326760436625761325473466903161360787973829534178220913589222474088098297557607501713314791186430564684569580506982661761809823033079978925353452345341974171390787886685667892114058735723191592152174180290451055955765471917601267383384184904171293632039491330126900745386004836624499099719052589510454899361121015524759755197722650517712782588943175522333088678544394821189360769065614405609908556839351872172618199217910419360486436620757515475604174687045589695237880109769973006048079201679948507150761590443699628511865771151062291070732019324817079414841654530832945335019983544781562350658193264798208847642087148748137256533464608768856254885980669286805838078459287399386384956081733092706133721495717411846458472924921126867854693237434508947127902597994507563942404942696197213183908542748332324210558274912738987114038533875149376830156156696098431609682218791155743275065299513269470101667160959175436103443877890031999078473130756386292480517935846241707942229898740981370536913235297198670795275536365114988867607265043798816276596908556324185982691903670805029716854767023407248307816742459009127009792225381234764961255306250273036200825952066518344903361636994113584257588923870710498783074659579334756087023890662255571857399622799437548339977939648328923540241131505218485573192313580427329807343421772106305555630810347477123226905038916091926004187000262565773186476574875677096359937363979898942954059350120281258874028391970420357969748021604353387737709030939024178967405460497652955193980676206683738946281864781756770469861993029206219603133814677740984723459046425892434322665983616164397364463112927207353235600266404958275669665306893993123915617520258607795830338787294060855403780940071753813473298778006241339302416721115884916983929373934698490999389911356706197283992197234577389588519083007444156081524215801693631759220566703669413913145917614272552118273976509057361090367569230364572677994595426066540609090371742463115143339009546786317010895432012117183968674732603955330394686852390938071490380374979711175455735698604969999170967858102746104304636440068856935756945951403672707721669166627909647996488423607281105041356666877548481450831901260102427363284515208183387242539940313226585050600799852598743018660971991102103939827404864573523326454400929669551423849844856330296068400538476450890604296812763916562041186594161048193029691447018429460586267570281934743188866466658584297904381978167310433004732034848744128696789602574526257800671381710564091766480271027434743505940834659266084633900145473404185430059320991869109333589809228931913085459896953918219474788615557162245540781979836133453500759730455093602980656446736047092158655741565053565843706773026335432995438299357662298799486389289414377240616756682803321501632858099033856626360130695626315464995467274614078983312177729988095883422995076934069206142965796932826738542043401649207511619405094516503297443380434861718120950698841472133836981946835864132466552253361808879941268941335095313114827078004383994949178398622639098251531861146871445288863180819519070167561315995915531236405272207236530038963439089970529903855234735489645287110252978292184312057142138473006422433350921275821205467846569749354751374652957132410403867855413869205676909319489736444859069483234067286979553770771720086760552317950443027612559922971098752215315834453194946870845055454700350442570399385719877440672178074742099638461931185304036150101736727325732799044480105223818200110848975707677651924999481619206712601617887584507265590332316919222321200533253755205470341784733117049671206979402946749936784284321392891517615018504549880973071419074664045271629502585009008002146266987019909187960383693237484052411366668408486225712423968721276887368460369033431913298368078481419211837268937625015277384974189881802108314667254989986691519395615850518336217659022815833651183931894835648794520340102367715028846885619737315741471284636858394789098958569737586884789052761031709893797185012965088708517158058099662091871242506210565898159509564184120726421386950406847573047314765788400733338794765589349718743389003159158962622551278215864508526272587358508975915364968063109379688631297881287890218350733557608675886865977929894912233509386622492873561665217895765687303775058886432532655864279486419137412009362826532025025224100932518076087491346552064722520081162356942094438483022387811959513582772603907770339644627343114968726146030931924343151569062095515681297348853507580659012740526024859223907311374057389712102992482007565785871588090626627049086901794107004253508071932197990717604396337726441612322797417759094668176818615627861733454276009834183437845738969059166123904225665636824805113593562122649742802952676354442653291536577791960898233104318406722440139936427942025175043525078218962519091517350437594580540588178608491937524857321772669692924860990246080422116521759177920752225871084450811230243098644349431455457616861276411633304948406773234239928912586187911856715975405198541228689813905449960754013446687811214369676540605697102457820577384350296273236484068547668703171943941167602729305225532394501851858936934783229012505645423379122636125503040012296762157287399120018188690080566547976234995731665194136910666560406828572332511554238490497610819331448989140364861940806913123007216790593714456388942173167561501640966709263341322129042589644858496800511357332224247775502547195421223946942430911515834712575098216940546156553790618384562281054918006365734533232722804447880025672444502246557771658736241668133504276915715852294955992475512240970501243942973188873455776669765180623894468791131375480494563699997753784295266202924730412958934995768652648895097848706565137811708780696944890484554927835939890517372129399532805582253577646943137343534135656170453507425662014900247887146125071679549570610958063255337893353413561732820282642978599708363941187493516159008553821356612477250656044436054384926496232163480809491069240685062603349658351957101692087060246263742396524752357400252006864232501849003701343577089513484661630450750471692486424942789507659811474233304453673038041944043913822566864974539851509728095421797686138637828237306197070518518682090139096129655651847793244106203373894240360122444084204010359506296880087692130756228727186255773599771865392747853950978365153292805231130017547660054215574396766059254211528608644238640460585873311453754441615388772611341446260086796908118982192997951209538710541843858024740737963257046515319902140253030050610889418719679648723172072135443949421281816949053242673578919546435412556602909114720108169850258947524464404193381145383023255906476526780466763259388577651416083290231391980854880018038764360083685599809456339594058023928074817157918318638495507852753615596730980059917018786921024425265814088173447346460280970052077296145091209995601371462543725318057599552367754317153231695138438878398582333541752132436329482402839667802618366374877771996103517061035776464443857498948126096105947629691367002213545230482653167676535129127976119270375190365857413303780034078855702045419613982641772046812985480839861459134711863022078623736387494898221453811574585428132505334495638783649609303114424393996379662585521951131013377135197290150677243378487635254974916772189409913159073308971061445103705960633350971314487554327762599056397737337204381749617147908567931754934708157868983961731238397423835430361162450751130199064105348384977918092492885923753254431379555534553519124219631305428751300232412268716635406498416443429716772208619494152921259089217582174315093964565874287040311291432770370870984755611696615662516778962429178759973013668701866423180540736580667854935640460925206548768625201108264663202178540168800392305085846726719406950985870245325985412265417642778473374259230062315841195074775091925694271924137926272038536734330911738567965917603342058738862670991285245759377622793353555595760161216156312948723030939051019313428213437700359164482095484466483464501489660315806586404487910644630033053287755290685432044831163529962028375636616215133720490025636262780867366686623015743192556837075784724071187318046263376856427668226743848849009749321920864593575310360493062027136119933097898039513500542523186806678327059981798625121798675079635501896017095248131726133144530402300797555373392055173945274344883730852725815915813711772412006769664928738559418913089270888504882288520174595132853440395214238879009583507403757228433935046282311697327449705550826944514828360810557368680381416941914858830869642420682500831887742687519989092309529567823888159762502193673678053166197023861255854305750863793154488354805248178020273567079836434089948482515044542393678335337339839867761126460620206879317004326533139266312010267732906417337772575569900555982726047337820971843808341424874933932238636080783912569793764754731989777427326423104988933356125481916361293106301966590388838572839908801282968572062775182135767643677105337211827181277969009005820924970377761668123326963953210017326056101137006415795896357544928520122124889161737506698020199592052490953153628151590756375102786222495849807357865891150244279457691802974816075820376572305754614816996914389726464882310092000544789879551021790440378556398147372223212195863232746545345216629829953882620156722881687567626863046305661489300310335414976711866767343506492610346703813201586879310215426495050885440151335710504001917981596591634814182542431668004428039167130796236828538545797302338757662963403055490725590179708814422768198026505973232627311052988081793102475778461274172638973441103844756800827599683242145278778330185764456067437050078098384506757729115189029082124406508095747635752665624362211928830431576492316012047194668208450420534654380751595257316721961766798799185613401892415042063186565802483164130906278847052346652222015671865187092919588710219975827818418589061193136307473499400280429740605875545490927823965133661450773936631407905300202201545450496953304703126180504349391096153273497907008832620072577042511559157847305647675963093689304190065505773374431535818191475203546171377139921579602431049778941389421759171520374162538423296612161671032961782823587456206234741899560673539770016350464300561565482828281823430526908243186105036261143156326527601622971044792987444439257371118547159685311361344688368035471164504758791646592221397104813109099529786725521753772627985585844916417523421679236705404314147853177770137310410201616288695433163454618986060719834132388704606733734688652831628154013559031786970498018463236572634267694184746015796453287094212748055416208942620267552143635083927193058925852020562298914696069343195090221817033128907880392865716719403348058549041709319764910326892561020085753414902291032272719183767265863413382285168575504950950816220994552006962249937684646643502249927850966606746226018994888169672950949721376117977817330084471156269804738717138158454408565694441567666468048341936277799846781831640771949587061481960546274812767989459601159840418251086482761733553802520970512287493115457262676607538692279471426048373523256170584457533635492071246421080892901862284296250392171771618417142595528941587409067076418437622112209656648942510723491690159334769234011590242728935468921276977021339508050798924957308972792798950861147195845255966388327814100451133457903134732375651274079728832966494400434634549635940977409732871635117373066417981653191975092056253864222379527712931991003242077219029205405600876230879131164630744058089698071007682204171368998916990377703830414889741020891368467135212143964302584860408146154963210075512613548605971850571085620530410843643787845732683372276412689920108612762987973698181386844900337724610050251400335341675330032206446730643981078628536054422315041591801484976358973060074416559803592818950831024054252528321256143949012611307214139002090522339051788541024017287879772030037467741297033369293140897172534167443435396221843811104771241249586873770436408760591260201406070905552943083695585914734646194076993753903411502388947483046624748565356116449234580291690478641129836367278311463341865046537673496240788922319355868727164008499180968131131737830743147182614467506627299715365852750473490434695709429660801032681873627231792468678594400601234992325519794318591924708558170954965729872253971339138367940956803508809788495600493490269586665456656645301410110821051357413254426307079890553876955354317503259285589034411194072540053470339971553112754615374061225443867295527944589093465229710950103019637704464372198872100535975111361221225794640955232580716104614286488706863608052711914845093454396678239305825667840932157526765290894427899062844681119141146007285528075847820913154062720094162598323949610089608990171376894765315823547635826248617495026661603043665959391864496656575979343132515751468046513150084874177431082501569827708406842505338502610635512219675943836124692913894424765296321223159141020226196112005209419417428910226104283187620295480740909827322795294331837207626523645958809257558182578462751194031954765876048841347264016520496495895054045712557227070757375917822429460284957659425370114933136361877978239064394329363354564473803399936980228410036753170714129893349037918864421259522952133882506794525613448265450264937147114108269384917759397852195129920289551885989883191687496945578820971890319648652306628796452372577698298921305372148874602249961955717702233471838833518076555304882189676709619634142133179886391473695077657108623098410580458342987942627764065736937780593529974721154106309667508669759343657040647263541105357419218621846964992409551651978727401498019165873518394368731701726535395979455710417444320531275734168837453787122075088514260056871454067125136661759622498558904510634346647081337834372254118728346938854655281499583678704374632031221843476450246530273946508941497705492042603843129245452589656387252327013928450301826383368211055533947529321070118355972396177315142026939259109979334519935367978276258626836991571965366501624340306511515063369899845144755251079401014676171132903940682158669866657897004188768335599537774835119245875315511384657129652965542283117433516330719949521422226762956909560344247612887750204979093206143458183917407548314874918991124997247894787620083273807392088907109692084207962481898718813556684223027162810590705397499694304414255459743330052610646234815565845278937330907791285456902183620057750564579034187759133937101073581097741225310409276031614875831412172121228448816535028377500825670514026198925864001180761462679971918620443724761351968480066267425571597805017220221160221889288002153315280316772706331923662448398097151419831581673917495383281177863223678796313139955017895153128447663653577053052136750508100117808479237940569058815036443458487056172030495510472985406867032594689388576752800739451875776788058132261626176410078263012101201530176205219906208282428321505771939835202305708363328714920401562449680291711560005208710379510655497802449474432839021679558870007958327835806404063676378126092445861719330239396280094180843793713707486707665588048960253158426902599482703656599904687060207420490454864688755999333077316517842820562579016556000017472536333231586958699727655953617851644363905442077452932078737175389015933775001617037091101696505012116415103890498890320059497791472861378863522087637203178097220789060815674623697584624564133811328409930105172564151437254868680833882568822169761543770064201584312771028363833440712279128310145724202847348204007424277820825079744174375716660806530440470941717613438222313969635461502491563759065566400408154543717063361702194581409014349221111198233194131449069601774841851460224831441930306614250767808171183591734560164233040416663142595042135598673276262559741959735543547563434014367714155501409801563983998027547345254826722359244318637684450499376203834935569019733629513225101950441197332134352244767031382858407681255551252002717817505787234568460086205920580885551939381578607082692037802324775576008058536405181305254190470227724660222013064616717809808755215121624372838307217791064252426727322510847359216725763516604363411280556547394358389367697387455485097355067324544083660784965480188157188701619688922453330720300285114766257708685893979826745784348933522805430291754679475739979063433752229402461689663090108316055945331650783941766582734830234571428902426479739969479052614022253695984743098381609560102934165875722208575044950400865508223320157991684017933127889245864289419511962439012659100145719819558916790924762365619525471608559760159745812494932758114965910465025573256885870944359283535567679542707489867672176071236196706096699372479198546880527471274006255438204760218369961500178109306539023116486130019923383464850603278871561832949277296985980011697808441444211690477563050353472841256247339602440963656644690938233498661752009922105862496525021127265108420537333670266025456045575318305603383549839498079291098704553766688046223143782633176738302203507045448558583130737408847792509208476681746363623428074034432868263249431780378338463647746062517496291387867530057050113333776987595081344739638742161517292354997476545267880084819585920527198020295248887455991870279982342703454480633102368989486759205766984737973829836981568395609777654542850146622888689790248611032778345150527681581485686757544625043318025751498988122208605893796783060802128882457647937145424308548679648434362261121145361556367706368420056825171329865255109230163226922298997296154081063699393711165173901436182568821956505048585609152742288357284527824323514415150849705385088338470364415787715487213238325297299223181557059732616255120738028131849957866376008706769528219618966701733381260886779900441789070621422536898447554713273795799475374811740808351627519304974035338002348305043683629391992273698229040609318707011217311958595639352549263328773743986865649822582429709293730117078227558145071974929277849602254050927808814230241529045653386677170996159584999389980859897870442075329076380929464868546956951659807120762515132230591132812558143263038750905234452958518164623372570000973393292772954279469855517928716683087718841366426050559823811519383791851538228670951583803666905149926621528181988690118377563938890293776077498645642102254078885514245669378347825799752793540851932247730296345797666805794550750918344881180505395677848004459735477400092933292805698364568112777476378389187367374782401866840918040687084469353936153947178657551341285888986727987601071407156919814658724998268809472869853892537244006908745722601864615738040315360024904278247451922001536739744303386717313901579276596592872617036033414351147636470208643513543412792503856475682727138645627590220372170576207398981206323610199134235210757140966917258246158764202611506666907172072728582330937385589486338653805283843087529540888917089120460418782713087018608101282464567901820389905194176339274276996850596308655356302259337059901699197591781450269476920236120611763759155989198693938865633959765249499607608205519673290330253880872555864172636363206321388037554039287281583550192500178380015741350175069249013575462001546817675936913099478029924460779825041943888074566071424085144959952319308983410066916892639220035636260746828780118922626142871706174090463013316060582518677125232016651679768851422855353429271913203470703521912690951443960393139967684427207046299212199964029027320900796035544289462946285614967383823754061263038961652645830776138929884281830745735069718109551481569460764879079217590489014248099369312301684308199833558254982432402020675968108265342387700624092834838764299985637714955308930356561958367079687029692598741596559820239093968881421405948925184040357019445043937704390064657569595343876127112585054590083308870288330513751764140445173830407065221214624924597519061365690453649492023868981526161968769844424137350544336701573612943326986142014846097057799738531504382127122061801096086778604713833635409184211882923255702404750760007276241257431323168098314938951435927816972248096844890035080832180024328036339577623153647490320740004643533555051292197017044944624089015675012381360757460089095238285969160893758294934420038716052186391688180044846457871369380276484088498491037257531286399913403975728605641824716182729840147057153719143347939248046394762741222173149563073320178692064048509050411390060181703749778239943577406902410334037252117121265113149879322926690878573799895708356069597320277596314261346056378202262399514574133477746358396790331880908015275650453692815906045616578558547261299059636331784944376204961425638928912523111169107599760580356626140730287370867672489976823782154102519197353686638070251479479759173114278267889947610871023444622499217370959682955344254553410365447011180026218066326338501626926914713299568359689751949901585758286325501570162731529153638435247799167172692785390273681998511726954847365055889911044008938882121016722149435828928715367159157133388198132690368812934574621140643829930360588558756367070375127740129630554185098573895660475754839675290090311098135122780950517152842311205193261298443344724184377484765688485385079952422222091316264623288524760138701073647020216915302456219498414012731747406814077150006002385622927598652706865464285738611918259779227058245727799060345155542108609625652422216803899378602446320815324250336046478316362233220928677821250028446682061854797465509903643847833425315566477806829549941519765250367868648240875191192476523518212654726594256939116185067462804038253372535124034472204954629034537063519580564293013376463632252169862979998658791560240796849631808790149609794336298129932564673473586815413039071719016752140608728206968006814304214260827904066732023087262472139729981578311140275918621136343828958684501154045199125426847382402655118187508525848049986786946665248940230787193358719256887180838732869181031077692972864389144629518874120480680598402773955411046847460344968203286283379791123581830853272961646947904924574961957104728275964720846752677719874597759534816489326066273924176627157975452305008939496218471752589525620476809230630366396271422504668963804511173495074285579722139542825821949178012369044799366105868391441443828228357580761302554717036047735686479469610873923771493822992396677673382390287210277895053277349144359908340976035270822651657219879427849860612435760844810916388624802604766088420097158333484614108221675614534367317542587025808630929434931845991504371204393701957828149083436224178261290579928685621220667047399167453825832529053098712578015354542451491339760536983260731432523890157768825445942384928973713195343399349451828360928992339905402432146066789046960093928831579874998090152800619744752245467378455919449309198742270878063002215076262287276748462578434199403377557159693586761035310790620104180519428280531338871815790983318233600389710322029602038380400828560768318769348693682725634956003621714160784348824023237522257493093473199551837950751832813551924641073919944042945364082686574271054204623979205777819622499861246651761994862164248648708339726458458567163844228867168925819136433902958394026291962320838849348445128838888707840797227203211319648277488935784054134557971956381720892590322736997326561730096395268944862000794361740336119442687983483147728176902615202886955952513724612900243102814334415580051865289730955650097693203135637706655289373472258880021959895092485933979909600271287549825836786363026183212800856680627627016366327263851144173934955120832460819909458249113919969134697484295679111484685180666746385441619202918879563607912262910257180280606858084292836856803242150837210103477478519605362108589214798499118539371102923049733988005132761341684278206201946755644719665797233188232886177170038715170083697190434773270053260601431457931258398582972060177290048399120738073035495961481757554182928061979476289130807213392509658408701511918351021075233266646483437032747788283421969581007526500351881125401761132737466662723683218200413614768572664186781247882765360832417567112093244847736564040297478830576888622219415026266172330920676280869930396926060932187605625536847967144871049286069445566598748350281110566987163775985157813411868915776082600149579893875136186971309443479363318949645736721538145228849897403922629647208859604793892629253927037483485732788829985936320126943123205948249838061696667290613661189480316935243542312095768626802992723437282720398171919108890383058177205164343737287096793371386112856445025783309330318569663328562233614180574749811705341546289637413218803268040255532078897320775953560208359392819036266687960973558267728057758708478001806241788638533402310620839001781884124267907035247565249488926998238674908328627662506050154755921715560943622660276333271513917013838438174693183247736986126063874696540783066043473665047724417494185844264857095830018930791958589503498896661576158331960560174861342204235528588028139815170712686860210389750298142395866502143385678209551175187910097716750002841012408663936379027427732021434434087419902273324502632498575178937180020528467328966140409957851928957121441873495106262885820184156508706150937239135722887625730699620788229834429784246488820128455282917237493079711795023606506734806628534931930153457655585821816416061433199041014361111373998370530450684736620033470270850914891274900630310330032242285731669647807670945477578216198068416556501471111984925718830828680094275204174163546989751951282994959451661288785337382783866177982274329740786859226987968115240949404447384642431117604009222993647461107326397249108526391441709211103512466444164587025033368537007728555545189188186991346478935610664976811390162951043474224119843886725528227097649812857729437744030921046348290300089221043428390290108585817100664280735116154670202517044583955007932029241405277239092261748534326388247752529652362606565444170978768130691938636761991516684513049633109234562530910624188476661901768537638976875010506231732753457555699551451629013032306947886970816192787010839764081175358601216003858306639700077685429494737211831922737913407680992451234780669875158550382306786614355590887434230968165684708700165402947068124570356595447223139682281706443315173594899300426778334314176732830607583110662681273260353283487015872612762071910252553011535255842554856493878697030489650590229906687664988754976693591511153125844494491514345602961612952659198472586896170205843250156877308651328699869129416202128128005314250512158112013064720361527628873096832179504915270367071065849206983573771500093625967054360547365483953741329861615144361665486573973694089487742623800362454818316392573730796896189077209108265095456936806135221148759434904777294894041475514604261244850487705082051508717746103754352586023562927654995574358877212220174140063360125604266984938162218829328396774365687368422137448820158532618864672561867582298377146569383519885646705715440405331839801716798674326437262243222573963393043666586752999186819075702006084736349659423010861372206861894826832252881936716036877631315018665670675184881388195966085335934530059941937422033328847856250664810154609328489179294769032700700719871335565495047105225811332307552848855771021692617168915251106694375661386974084487657270411709310878170318200009878476208256562322593407352432775871192127996687200543263143518226096300734979706768897904132743601791792299783962715234538862096238794467966971712389170535429419861472309101152985030512239002667396217027491498493551303214321539742098190742700700745061595171793641767186358106534545622603555707759091335139296706395404682361939448760271553796449862426363776042589121817070146881833640142571636519113324702903356506093022539606505736320187989159903135371971822684606199411411575811147339426919039532468142075469967120152822710900237945698550931339261240463176609844583266466464523468888460824652825747814855696692221311479573546640401750403783779037400748888237590426404652014258681959073125780060835882049525509915198488098611661939058731589573753071642513351372340127838315714298124793592336111020319563652015188487619023056058779216981486939862627416825932978749169328376530331518972773473715455273328331658319563162717679193219601178856814574013169135341048250419778153713645911451826307197198004052936270696440946318320232504658243488050595559714745323488180150314061752871843523793359648829317657743244684643737902604065513197643519356513834509758704243859026067350068393029541591592109103769565681506436420577101972031122664181709606509831914804655861835687225054401319960055640233478900761303727495782154634201962021292147747259481510023371307282202604677983816304723562831748516376131804741580353050138351807352323599141818427439018461421292666018540227561795435765165466101872428621601408311268804353826459991967548824099964831125812930068549275542584772899221401803027925964508256983974110981099421352783825333318024554609461518491826771266953556552993458848824008979339756875003786029743024455088467686974597739213829059217309580481897963409065420952050654064770306264742910687858802682288224021500669903136950155015609382660095647901755895731192295645115932567107122239261971631252827876601524894560291979395490438101247384856469019149601065824338220499445790975557765154663686370730099162412833807827788226254347964697588381548485991125418325616443607995672758811261285440418470903611893907012071205685439631912427229420611457651240537964236475864931837397658325473084813530083858371934506332332508697619407753166273001398751910879749171864482144636350729892348851174118745105528102704342649488875921691334045385747827671314260661074967488722386401944125452157752745690442728866198752119784477127529146683186972043718869215715427761849212078880272731143761606462298963091292730536821693810384180614998847067154832599398508863777691609165280917392796150195490567785859421858808453361100274999246805725517551972052243995237026228377906399582961695686147696482984880489613950283588513262032351433060962784454718563960602798928981376863914221301832465208154430596340448319653167708404530927638717222847885738892849022834965057624947841510152784833551684943805610005666189051106336004127250217330174630048123710613788540203376664859413852684201003794092230349702548183666711415367974508246112566363937110912794100809786659846010610340308547297864614555736380131760934380272841319909454730040407299564488309230447723454517384489150869812064634226255338354068948652731957874620030387542614277263135985533570111676253878896079267283146148371230897369470661239501228753985455462363384847478729322309440804131386833941683159013682850691229791300874003433857910446422952157877947462411880384519824495326604616694917099628210148631436099791534350678371801479980115415727412035000773886863956659129119118329328203941378386709379978233089303206984096343418445091426245212543952001243448581786350554943270530591340413028282865290786512030189488381318405025666941508824194398255660213147707734260058860260338462771719371376036484610129396740617820683331432058441979174799627771193899592990331847541597396609813643346115837495082218527271564953888365948032329463878855571712606807780438478442996444676372797144005048253684873571332082447840343410072392607291583514790712266347884139115888521623584332900725499170786337828205079977645127637830755427093180838187981709769197613494085339810264442625241661558225838750919774477113601323677014895924161613835017179565867032761222001353737756548211150125581870328052609860585497800397413762433212518478746501146793903551412094612167672148761770491559789250098375924310663640109265371479104402281945137815207223656629937770797965026301995421674449429288508811581207996630823095856967514331050928365664696473101542930240337658267614866064705659859722552217687654536818432689759592511925787499556540124257617862962221985887081415038075824243672553198793867050831443271617417614997821468266343325079201655427489402573387230533602304492025751970381853052843458165983295443244222477287990034772587624536620975651349778807060739770948660082200143992787871776399590193653589852453319469938243050271525764647353322191153422547167878115600085272881552347537889877747628882851990147170393595731625157458016240757763923012710208683542581602471225425686877745824110518882283306092772309455043702184192969168453416748797221768234897745331752356738543310031211934636418721455987252886973722945994804693739438482127928722162332575157647457874075018387798057895864751048203439180369548139132029249924211526287530681229147390927521692656612510679914267458881558640867341690732263589861622026706964198915998584893873654455414349063185318560640377826685454423155434993700915540382284972859154756214953906037276949970362019392137534290518383070856581280679517515171031848730233578365326908579119236288736420652401688581480545411658130531290775502871140708692376298977177365652316902424692152217465064529747420801948252046843290619273780565725433466447268286510392317343611970077601113190242214617750221339389458643941972035602064169261010760392302323208949232706912194467626459645502131148476129726291247287910563993615820815407992794674913288878974152169425110652318155865290929417963054461612572235567229029458696280673931885349838982447202041377732334340461789476363046119173467004457787872087061042646016625602777367822966344829216118552803323073195151196780657273675350575358243292670596857456914704906492815767648765740984954959571785219053135884264957712856516131687855713707358670636890651349963408168263931024805643140108816323827375493043618868198164664626950654117025975448392411847006220712266606134154527066526775766468866826002291807182665881789219697911678839513322739660624273722509569428056011440402553718741720639351706184760568263756643850946023066646675662880658902794452050888485217131004382119127037497916822410890073778222084165064366230918563681517658511836126038096866939982368414029558034966173661037054969235885538696394532804909200654567724501756529228955037316362386528161539602364626887054969185524754481107309360204164713446011590354727915589838111073313718500570966034007231978276767584571745345087576000950344594793023180713682084751940127805869268918085379568476459683997191865764563560148072011979890637812250577660106789029057726904850842704369233996340453253082837509065601951113337558814297191768014044728052576758078928583294228177455104772777154346801180248633728935686831173620294417591729135454200428757249506012513673920206967813042624206587927839486283048705547457561878360934875350019482962400678815737499588278656513799780094886508354789902777558404957081682626992898514545495291071609575186005462675853137424263890568209840624272085225730447411818141480604374100520514952124779724009802829772238107207860815732551793021362919162572610822815635374470145972636628306896871251372934702669763528066769569641399054647916562130095638998755338373144056785804461555059452552096152682683146408915188980002813325900884077101871381177742621030464279036004591059905464340806415197167797334457999809862390596132145733109000628104053252033462582125570025607327670740483073606277024101713651699379070921007259138286487134121958349320052849925712155859733500686142755426012309355981232782586485836940604446280916633394085683632659107949617163633451813710480379042743810492904633622268044915331595898532061276195517063290209259565925976273205204460853555808178449001330039947271095705446228317703066938737233695625784530254891826376575695624486285959425495486082075268168202345257220965948345314378162378132951452026987774189214702224545626960832781090277942935810517016572396201287439907066287685134911646696713021154668971295510232261986168616454725983458050261817006456413487506688112123045479361850066181175967016754993185625958128664210653162720936749355365629141677565797923924298897621014594472098480539789749107655238060238915092242080945862794779074149420761879898338182847054017762810397006666636817125270634004578510174556427284850579400322942628790582747280768255495295708323757596225816238613117771201824818790906779450150259353292757716624884622145744681542935062120938576023124183161182126634644156442068662387559267668078706996387541543673356909440425711999667962815253280465595339980698646593789932026264380338556633237036809303289044546708443621013106670209914218940317472323072851408180082399759024265877833055194548235368124412677728350045293844135812086708600479897762114848801054959482827734840148330772044241733064026079834636309411966668060366689314037849399534063584394598465665574016820328618719111234807424256901118019986589893082773513168467325788260809975227261223678729248726692173497225172643217859000417301674693800567695651622659410611746628840089881448262061926138706395015731179373271248792620129964946916271888106899796734794138614764511108322668950419487261507182856826399243855506459683731199719426875965864296388328021897450899581813831162846371182800181347586928423397311085566118472436922256859857939766660491649390780832406915600531989311924400013272757440889798001861337197096266379692540744767754599279455769658882663072004699558997946299731523457627551410750735412740735320374307733930289500267377518483531406974616312126320675388124361954345839458277015861858612789996054319597578196869094967022235198329474844355518619559215386011184781853429057696911203694704645645090496946380218960930001145117210853473569808707109470502764696671611619607286555669804836333461980447103480902274721903961141650027905940389330423523762015776217225147734498528879504898705339601851247434274837465522041129282351527619475164395990900073377337790868650872095045642961485273970396886106866160215773993472802194549202284837312712776506445522302449811854737842899336202782713794001714339987464691225466933612389635731494985675548188297441312213966280932308505826086475191472090811400877572284099590899550405256030022372347207255425452611711692606500872019505340839392806362026749965871048770192480433259664904532014256150211715726008664711252363703858832402484624781594322300996325453170854367921691978729908515285957664029929940175066399577974630058232733349934095412535122543235048589815454612268468843720666893082765802591020700062083177888208788804098077275656721560647335657705454222194489317801958452283177739014637193064283730043177605481222019242157844555881518322275276531029420976815420797129997357474177208901922205098350104092614459712209815888708523558765883033047643793575273761339896127781871911052096759436615852001524482991535968896583300236049685459543729604929306267947760634760288058289617055982453323120890129588639996442478892415739488673371875672558635112049181659994602330448497432275114991603412742251401042141069566388699816627624764043482558079124448628837050614422065767517434193854518317019967321923032911887751998998763653221385592497427669992739146815072653568302981676281211248408141367846352086190158284650034723734916123567931015819445405557315752612664175560509417122734193671956037881012169575455684171068643484698475445423448019810909698449480583042421360568732038746768208317219071838037565120698983649707365550016987895651568837538271128713894131870619468597404407482484960345146344416839721346107340325443385014099399953394315306652992895420166323583382508923652412916742337412467121213768566775041327133178542711567125320683745206687689768628000616600830724205992958122198296698513055871305657730000035576927861168615981018127594600960018889413390096467814105570181572532593528367144007101205916040002763126032207697215697526458273944848799615045366935369326520723845176515172031761784135813314156210759987146879713896901114549164284916814033942834923703459804921287752561629943605189652142972596077573906225988162424535846802599914999575223896608226934584639438324784368468577261689804246009857984853780025268986168181604860137646978527210032093598134087310592565592489769245442862841290153099426957819115165261874500042894717318757001841701456427366366593668335561451760763207439275839529755038588526517129117768104541276030350882407785486332705977440194516652338948038238687960374470117504415867707026804011874379569355442332901322338893341897518604817293474887025645072225627274411246409306953601829941769160571403827736222783723939470531139275763382019668805628342641909404888532244240754847843518764659102027645099762257750444863338565248706263007841660808461869551497332552660362222869987755660149023089638862217310935258284977933564955103632362524499809262405678669419791714325941070365730584167522142949636854438529983189847285567249170467687814370455876113821763141061953176999904919885498179452651472576440734706553683474472923062294140397110385328430079523848100529686798758721257794159463853459197189594420292362920626307552728780025564596061929518325614620877767080034124183883448284152494300651859083587677887380915044592667895862673960889008311782037017068991614909797740859153677488882597477987879872854206575804136295505180576601030855433569186192473050426535086306877014443673316891800326856698550228189142337250649785418138139498720045030576778577665037112882531573954890642965869908554670432584271327804468206772557179669316729368973117636283219634529979138972127525191813660196213014925245900132976139695088843282886059222109323885894669573103498929964157655365822734708931650469495696623512365235972101678501982267188002530671347591325928026959942933243420108445564219986558209743472656307484993630149556516025972550568521637678122029899301601006145347839048766507970389159282945102461306272793872801037791866315391519557723844209027907084375268458039257314880207628514374087538108817029950559218111784846354388818463415988449494766240812284356827941560223997734206048390836033765104824793230734673678378850377598712702005639468987379167333800694442604103616738211777046938689789658007397615996307394230972769598827378506687829699172468682652929830621601001692808929816987583322373177304097970499375098780347687156560775439776366658630124785418159166322222752871684518955483208971601185963110844055577841769789571874333056390881220166828530495159729316306573342872904646186127683519498999612149757488678541138703978048092919051327133349445647200736929963718893022747863007577990800466486959906333059508853099773389864020891215246272331053655397200596264191818047402318681284184202531848980147238168346524443663285933957477429782829388784872286757663420620521926506261626000099566160786184530017987211733387551793380798482274163919767056770950182743899091486524775891680976841595359375472645546815345798465735100110976366150975496789444151666934565965539639474549488185256484237018078629933122276142611210709384347790118437596534941339048032294805679444340206364204310228961379834349072963926597522179314240823870422161363528761042996387812205431243787950817562456919841795024147259118118745810908490869022254020916235699653840012920099109641037799050842652909609878942285813464560831249874885283804333902527742710094696663647155606255343990250500240956597180235467570682046701977815791823970593914461436577570868263918390214605692887984134470304545906603180072354190155216265743352483637120149705322121920557976387783300022925076533966599433867821916342960264297992276930105509145425065229192695755127141759824307027630813718322311102322182465962162302926503094924638828820310061791083922156629117325859674960657193507142341039950612819040957122603198950071927721886663243620998037287055698595870992505375452700751045945182317748250045649084094092680234981021273085772201293041744691022012925251372851035773521651191561703453973755134960242362403874632311085665600460373228968695044802196787874289296263766191584303033325705302850715828338085173866634514789060260770817713121781575393725198495499892753553815045612798475456774598697481671293202242955281382950066883869237537986940172752518374161425842081399832471288835788267843650999233622649903782907032832066501371624763907208296661418926938552929438624322550573397970693825614902122745621602716880465854605609016872210805611514983462549921404076181803031516502083327788947027497014642660983888076577986177193898437910931074733275274332118555422620552123311950972245744806971526345173274171640485194601326390174590140859276044715466217720585430813137651254492748451791098333514928861066298586308773449199927547210420009261671268906216750729460830419507543819537393439812649053747242377714265950638786766992015749874333428393788889073416258828882093565612784123533226555196508046490317177552886567742648616998710416742660659438706561531789002169013654411883469904751418623539429706516745462868458602869009940975586218554993758139485055235542255676808268634077006609834394898577761218709486099803084209451373018664830311504070619331639585620522443103192621365659926083389168776920799809039019668455855330571520819704249171006658923569319611554942758716800708080501983017877930551819589310247765721506851743490812821377488521948922012711509350824193139076780439577162079024644453245295011998417340474895279063383439800491213509892782019785538261698801384194642287944113911745444483739587574333351617092527965149811825038672892331847995518952836570942077099564423191751893552120522913284988552919209512563410900712989804273849287865919648325279469335767693402791617454528415146244855636285800918781464040460206950449520296735751456801793250085464043883791446089091596806939851435489005178050946301636911162351063895314159182251898159450599112690844358396443345703691609911115931704730626000565347708457979230270715416082987506245020969613383607908043309354575512355495332266710759085135409475959006849442786923849936218997430873793769286144287195671729537267368549611215087223302699425317007196135032534793519361803322397436837996030135056989836489050902205658277840025008332327408063412739736065158370902136800673167688779897159933963675219999869332658817388829599593403403723952553321050480588811517047640490301794887990959161369459475199967545442089859610355684345233469952955236636322297248448987199706399817214942384305757998187099080147269913496521123590716927520402815147642758051086035948659401079282273631256693831574438238887741898878672418876653785319650431307097683473236324761504206310251614295621698765125026043936043403316241048884504688476105707938031960379180950659394991753955025582885348337808382960284032658498142247628101460532704707517693549540122872159780517480756064379916176068205583798142667685731956290606008303261632941740685842919072084810296835821488790016392382000072651127274886878057101981267780310540951411778992408714460206600548562281956191490033321609947822215995946503252780746448014646716872772479127833729583367861450222809973891113010192016336427499554045952868315413144815685070926825458777261442936911724674038624869756288226754569505731924633526902467406197615082579151317219038396770823292819683834171622821446035480841496861509483221655126381454409332144901365799217533777857858227802580014244583775668901798597872175311935370541343178525164801133114930832044874942971541050093870575140970561392919565468624872383518911292295427519744669894163638424074496894772187924700389588579677118846198140410326339349742189711684378690054047694562715637424051656524488538629564221221125041369351169615273946668534416340275570830047641861667546318303451303546686573625221123232161630386444684029166151268781571457525176480533159368742837405829751355556184737264275071829966302074179089973531207529025870425043271619787461127774656596893673157198282107872723946898470018748916477084776938285846324387166293629535746472739575665252055890687129122411219361794513691645100582292366493909616663202986609581092145787375708316445671529102832228567865826086375528331617806060701519132857454107544147096990394729755671781162208445352818306243731192436721890535944747071310207073288986835400573078646264517872393309972295378317742032221261472874389871625334519302258380592020391503512321649419424966250127406637200943967701449279755729137754173694379627688041971966536066576056447578055574681403878686151900765192051633364458925838548892806367222949209223684400759780242134674194808332834781946579332282532737074067125351323006867626642050232898034929042076361081763859128889336664771788887243991754038062902624624723250956063387535478833268848871928999399474286761331652683119358173563933928341073802902287855601124539350337288106356890666669598284129177431052001736788252299296831600199888080303463881202024567186890090796692242140568934993090092432162574307466658005739895556694180352259235152478765804408806171384570692781083669467589470709526339941787886072868478789524471389476173164760976512195671534953046868057909110496702625769365952019532502331825798290843539599457218144281049996957248539813545417334569197091288800933996927173530263451342051399312272071853355019130320480588122282331195522415741622426064483421472469703595588885309221857995737510687804324823947608730672223675716979935995016238739766771179877756894035292244720956627047767294585846090977773273152521923408011591070746668670438944521413881386253536879008512666249938018637202938464897898889363465576498409986255931429169256388350122619447213433208185249079603112174124081961055615238879819051396961689720928917134636325704929131622192993080406057072262513646940827165823657381154873148460258401915488325036635698352560732222031061481632172705326337116257071781832402606529555189881337145555278649025486094909646531775390550446582036427122110150557467817123192007238989081437733046640693493456123569536061101822449473004384912933046781332033811655499779438942308266133702090487353890338010881570459113979944286833378241899815706319372463406478692659975130689564378049969041182378048369924228706667539015619282851651464410262213511019275467723993723811877529560206992861360560248024003326869475489078013581326652980256542387152653169638492175945692659978661679233635291317253747150866372365988082232775618495931477395795724318350164301992751650528019153312469882942311149503210104936159237203833406785423702176539175473866879452623033953520666273298207299422791659695027089640542184164612023647375019418032636614127348158677970887399257993381602458479567199403975281879481659133152468155718781308379335817431966074327931756864942664185151339971255904317149085131245424974855487870100248894567910785815124036361020807214889122968688451151911816399074540493992509920104154809393245474555615486263076153453132968702165597073484105196039584638724816463566410288199212227067404809992023059413434275180203703770562583401513752506972612386627337152894117861101537351469864096101789755052155702531703598712677403894220850460040658932795187810858244530376129404359067916382412865409447437595307460562866228780901920887165595646889955797799392517626588611416030022285996238866514113112513159987098228749163474620310211031229178114141548596665889834195158539384673354676617854973571944397903492120360642645572175683119113606592956079462957497281691284691118315871662539588962185395391222022916610636667238004958602742506015141494127372460056434091976183976591403754921565527615702539417704286735697793177410786664054365627485434186990452712882908179968950747187974833996707252631366578375028635411588663806469245016359263353970148880168719376382229857562919043351838855121287142695736469216292667449525350985099865217202202468726817994732639722812964071018715020756611070829986319778569352591038886563072560362027090723619003500971155472228248703381909935261409748054719561093395464131311471989205184437390046397841232474281716861995634874204679653638819499688980603450173988618171722920972875821723590373068935628598161410986754612316246108777704090662806850642270588316334804322954198545638186221618841971127534855088769109585659114792856712278905978243535133129618448663172970442478539510710860619584207438578931866933173198358188186755351470874659963763303496446219868041405579072303126682690389703392916416957124096409890197410624166088820562630275617754208316718626351819441454252289958852488964574620912514209539419724452859623888476850063716688887427200397166530620543094225398150548200889607620043645847258393580284381136847126391406080498176057498059630739765427730960110637843306801540011558256733903716319043566662780809621577666981580681548036180814613021053372056631954535161584366017785023358202253481225547701973456710229809793689354292621593934307474021779811846031731520406317265756231958511562890036961972421203651693636322189626291020655910367992910040727959091031310767049618627554855609367016963787110384362130936722277647813559412147561057618179629522456532762453692742668808209642697205288259347636754597773491187243976748840510630674792139712525613661736834499928895149646170039672139836424397522217891322722180063664939105785435129322503000130215609074093720189510535373922462450366759034276175406174264609638345408365352717101447961278289976275673573547080250317444264148668980167145081671389392093410568211280556360719486038434536848373897923292584441827399231647927475424794174346165010710603294854814233886815746589768792517933933817695355701219177216223178023070194328994373111540604501762611491065200992562963469993122927861161530658736924350337047206574764513541600837415988092461113242587851549702102408040167618522987220308272455143093064812761888482427835660223642756609186051673572861068933932171243444348078330676921875006524108506222540492274554128048562454934053574939017845472202189111689886156850965913659004593374046559863192367932843699211729947808303916940812156000502757390857932330164901518341617341936721333033840256339526489344632682880415771796747829140642181987767078946506380506700333474248961083640960660917317469408861298950825602474519455027254453316031259160050260957752838194012520193018695395171684972027627103115994773916590202924735672843911844385545091085551362046837387834909576687365168981355092650448730578147103371971613172111190598252751355160259051134209933825082846336000113621110058660602811132053990634008723355477649543558989665791121297679020872436330186712152959768995082857712991545811492022155812351509031877482501422305007375247980470237719038158157965186349017977498084613177703817388950220490697852866205487695978360250051876536575596019316248212947115822203378423033848440040542064370782001657218647814712625810559748444664830051339482596857633855831203311247814930784904141110784175578917302063910204820909652208127453388797660013305338584825471846839981218473715375364175637563793688401823855377707179478042109647861427652384075760946892654452785373367875122357702533553859023427689641422065507921330915944586621009321731030647515433375995858090690762432394147981924715045042825857497658027714777733788051885564050272539070695568996008713269807990600390566443543536541788159265934526472524329475078525092043145400289972223922542726612906116621162085881438251985638359266756587099813795675050978065507970620627014781812942850812126151115006650714999822256124572730897374113646192033918760205810059228599482526697135662337227696660509861422426347150479827784195467180093523176631195904323534060332006718890284915083557759921177743638367112292714724673312536255706047006602457876268986540067166152254223055734102126718685966469784076895380967826320409359723991027185847931095198295379655315839581682617436089158343607300253950021245269391543741866649338486005563832524174578502130413540496996735588223897816786395335236425288835926878411182217856807179626190897498952923554081400226376159397235398744678488858032633766434916108730969932759356476554610922946823443755189758880534699022492187804143261377395099961530851216900533214707192676025751786783302767317087224886433115184150648510521028783081924954199258586230668215484606800671234451551814384253316163669046236416508600719819355750002583185994115157097468700647869305682268135080025284172632197029061719568809287412660374997561981348095899955427901535241567244945861922643699008589603983582770322139472673081561053131576793880267732328181300743536328419630829764608406761369417525285560456290395585188257849925314373245583098889592968163235496009452277970136470659270160759344262102371453311488069100369746944693058163324176966911144870298720576270311737230112903038072922068179397293942538395420409028648286713372091253535107798005869919361414052708700369794200984734642047292138851514452336154984577592073033061386384363825329921338354847340334625342269226140893920207356041591712306150159043640546032572246149004846163008057472045893112445489406938094527919224991376216330252738743377091409079882528247851188487216531478717575583121031131841031985389911893268822652081910340644766551295164766531301615334054498626470684962867033701118246986011522785187647083527493588202416559530410791349666174888517162102211249452168967465290785000984769133471585274911051042405207999247157812463875022262239767475847558845017972890750523546705281999715351175170271262187927352770913087755338218265812144750399598820001007577577327098101578969288224852433987576037077470899168617247547902343643742943643741325712453360983143993172356119742609791570550598296386085734000537638551146302143804592085319078348722483157325620013176131276537050868323894239693575093751678071378724635199451341025674766051772137581495678999437413041951322651552613702461455653843362648309414647303099725648326461733237898670108384792954853889665424534692086212721873482746405604793309635273359243922478128334783754081197590951271264285043417199982671209402936751510595247859157828809168392336305673306027469025993308258633036927396638410635263936055314735192564832683255136644529301814665423381302163874377346250595201684699491434010495951545243483077249669230552883753058210137486570078322664212654948391927801818837150698704426402822297720289900350780916711471546749914589254205535883891365479731191556455495370499082198378147701002019495411282160421728246979539110087640600950237664001696961047023739738491987684258326539033058016900886818413798177314445687930509289356818118538672908988097953525583252724560614402501767248616613963674004399927360130279308085050565879558861199929287640193944421633272123600880973075410177004510924922538825919682890491364615111647265068420117434871454962285626610465213208177372501306974808723680002710236421349963665719383317576162101234056503060411610228660464493318500090958219993690984733407548544633145523106807632257941738987504847549411277894600425545807301894163055521600019820934137728610013884912042996926888310002545415001425539793382660102917001802241436337903172050941109171043503911303073670782969222245871453334678339279893850209776504557914579431639652344118346478689297390399648715894639372267898220454480628539373386796534282592340411807262283603158006703224749566458246867310960526298300816136470553178447904193774720645048314598067888898002112717904406719438670311989108931261406861516428828092311425843273065773224651098966249383030499018747863496738380602336053334901418910446008183341386514281988157883051280507624885590068645854809666708604935932425339659208138137854070285506028237080457784203293120075564676767006219879335789574037712044098386380978055506273293318855960397068653037636872959418972979055706664145909567887057454894371192760348622250239981143153816177671395031052455504892179020340764001687096901919405222846970463302561301912045725076762188270002007235215957086433333026503551188101821290465007168380344205041418940496147222641263068784623087642309031943163167229804798099754040583700546050781486397908348827859658137114619315203905097182718349257790561597253095448838263789094829797868005795531785732812883674926209165911541279503821627776789412355043105800419767521847534935404199111165662546143635693518769333787168390622105349419265827223139966355681978229838680411846669072562010622674907878384485723129013319964739165277870899004971961395197089717883381000499262445307200640177000899529389157970392801598225385668754180659039036102511253587071088916826822239090799297593543950638394138398630858180523065961726109592671137038694910283216144188664858400183474340613335698580969943885337918971080402717025003236487955505674957226574229623822883050501000309568283403539567706930052426246400894312995054906311512444474302286374370574443847030715134730442969777265836128686909422705602987315972027787948419584006455056657180434981695036221073336891796790391810746242531490839006635308521115870646320406296055258622796484981165704513984340871477971122027834763150631791608742903442129163697646049245885384025937525849285012243213366460525175771627150880129878161854416299666163620265283554529538836493275929164555871331096791438310079471515242951725606790571876894789969080956135414138818002954572883253789747907643322687489597324545016239218559527539095820928418164532435355786622330636543968541296546241800611210102208414797980796746576515525303289378879937611632093698417347454192670459438151741868493057770906701343377387396152946302364694911434780555609531602697495901803461328767673609873416315425240633312798912301217892612216127669593568253504406815463383968639902114750325084984183318583862326518352030832995132223287621024609067834050414825892081178371309995129507553991782110067803780704565912986063363138167410526592894136792732771585304686539260257722755044610910168598258414858947310905021607992350946300599102912180904423610494560349515880048800604921285594867562954553741291870114665335914888774852187206406462560250413832453984830569107586674675720041253047312192720082496582620505687036546807859808825228846548346072264726817836939982282452517203267803849152548418764496256376107931074454647958271229818218001025977681680748044541369492888361724138930556298540134166806662281340955831620497825102870516302841752387595630829577932373464540429194071803771230231179761888151364281536695524254078136547605776092833093292809257841295805024964240979846324830450854519289780321007771034312797275481067446221831912559024711693317339333808513176169030816403404986745730299881999232794710752666133706964291779252455943051590594304182533563398624084367202661921798529218432771004963576517255699473239834357965821487021094480465523638727611659867858239332069209943008018738553001431222171356858858130460749223014262659737291519211441492708220547086039401542576102842307115653625825921701738043570722296151691146909642663864995692517218792471356205736113039783497398505628901632399422305168033735517740215894559657946711724677479465305903820002185607101779469295753792428733111123729650894299359943772521236335862560513469870031557414918866514329855242725724279134817027942700140984112773318276562559178830119140232229148916537517407072767720250782709246773513329982720365279073870099506095474847743851955148535513849184451462198976673919838551562715112725872707261260543471572351160234774968547843455097694797419881236659891287904498068822942442871323770881355339642418188301142004108346696839127806508426940714597565936785210198673738970645488286069210111314214213481650714378629346173636288650310278444615560433806499587902045029556943286246464904591816381035684487810731719857455329062790901305203325894615440148845628860306055083310110423406773753643795668033824988837788867965410795991100735810445508881290318768958794593120364565440233504170120056739896728972934865502183598221377976803218050012075908107421593389330767519013693474245490985042804227445591769275436723382062093145325527794575941534702488540153393856325649686713622436839555760835349029330992458918025398705000649023939549455588166698525329556301597569791664125408413919099164504034672850764670572970990847070104757338209234898013307394618116863249814694905798926709039042704466466115945536187637870189452130228368937355201044444349898185741798434946424210738158471404703402323892106578298621872807071985398963209175043258988386903602109120502347729631094607578270347964736846351192203540580718260270199481357148073149196863610756386615189768281485708990658804706716105421604940585183442797816306958265790815003348693820611991412804232899408934277235019511865735352376348614862955864127468726090379537233781286054950370651169619139735058143798527819145892670531812037753676769024879214026635732843095881368830558767443560229863446721585545483170657375235185377395084743455570419063216473316589225873194167142193557154203892750306081923363347502174808050294586519221468549665888954737125701742217258434073094039326811217074251121410268721000465067113513486266865997774734051484115745880937231500395105757267592192649321734563924395326832044313476786583981277547178469243404508834661379059819655611929424310054270172849425956458163325176879927748679053299707287324348617570543061900846274281821902560901703000743166510818817557325125812920415830700979129033272571081483972222151329115103021662538833011331756227389340320994827170418790951144507267483847405433497802869335996267135338025678686729699353596711173620161465521822827563254811133057021403498850823937143805596771417420102193884105645110950907138792682178449880133269843696267793856758512838492530541468272584174952543706480665785418115441956859072518033107622064570866078089821440865766467639328992669474149428282422184965409485220629518413612568934308353312885268337034030124485327851114616568301101112531917971009694830583791428354905067838925545191834022216947140542578807377629051878455114330089796062394371719863718325443102746935704660544791169705555207025094781483464943123051969362294227920279474740950746517244713207906822317562647671504175941451076002736664878431326290865638511246391505364640429980608502111648440749369902252721979991665875497834396606977383967915747808586050055758419080272933754317678816975038194219787360742934276295533163516052094643857283968293763106097558410604230199201108081486005148194324335407879747218196430610828911242792926833087841490706791732447332958821724965067152057920758001417235353660582472363525719464904963337420470324256491605275290878272897533835548648951651340181970010400321231334650981025487993547912127936355209986088298716504782267597743106823224991381415126204523219329391966679617631308170867251069651198392025667224164605817827174467252151073375739817110558484632237703552923875532451219454740330528370704825271647915114390223410485328273137980331828695303010362086234556993383830900702002408840383506625429007921624439710013620972918953460798374542129527183763027867282043510262421522114726240771762635151668100143786829700666877083579381765073491146484537295492084158733383144629894565879350769774811015973718522455219785202794761740339774288761256324372425486957122370254954486261913456050891522245205826044325492481484403103100986684098456621718330903895477489725732890956853230090633780260273890370314540126446589526415041600389817799388303971992648058741317190129596474260012904541927465266797868245119299111677995928826228048661920990388612853153758937462271396376382479124277149731491381818669782351139743586793588731328597048291389510763886863344304812005794010988049834175155807792101555643104930284140653033989485242239762374971560565470045720392135162722260863382938727771386415447504484030988890043138702203257812255611060463677562768407836315035047390462901754292914996260479193828366781173110885885653463934540409523499994508199668739102328012534070335208908206589198289739583968965385224128880632035956003271014265585105086943877030879797248308008288649290015337684751671334657799791158372693719922775505987796538357430142914084040471543726755517807379149536593505101034200521691096599675419673294339716006083641085186688392264942552517661497356610749770605230760778477428638614898568811013066660838720232210895448131445811767735557393332405811210008533102244513975739810440724749896218569645208214556637598097976612251219696881860062742715051151643366042006686264825376398747391607801752484760006607406716840792267880698737586742595317767110450543452249364715334507070307943181643855261983726326768153821001047487950759267423075551339395063291234333691731730724197518329526668391918657332161582497996580586315801261943626330681449831161509534797608375414409077632394630989103580493035429738695659812632328299306857334136798519238213337069548194085281013554105499613680078405195488625946409020528358652065118637557600747596202084448532488385354915555498691573687688901907420166672426929935649102588008247738903090249094503350793630589934889414320485977778804106566725124362120753408275010598669849022203511841733262706684410108493306968656928477532375107095056894558272774310973096943281909369378160610954408979196423015150218978692329411593861676855379753734117167952490320745443416004859218499428845585226546179036054017825407966417298768386620922646548477036085862612921392278596806401920411801723890641005955914914218687831361271419918399047130752622584220570177129863359973093120763001434166179485993315918931803029242562678722002881064252337365298979465687494754458968251132767866748001084444123075385548504420852704597406981482822443428349822795891004054714495257392443505395097289534648799696876754173816389043301260592529335467133785028341339991051207610558285431488555683844523193684336099029844657711816774722324380971693862189107162209945914291155022568352877393313006998505943664811577043319350063075411075819236370595639887182112572816581026037612723518715659013846638518999914253340179623357096216353868554460253196762098265416488210394339015080581279485122544654577324296934131789337437428451142462934975797098806965822318094022620116919083933200684847973943912604407914592894742218182796995402522009572527436331425386441662067294565760097486296254109179866502017879123144361858182563095516054333522348753874033225773752394839831321268498313374508299942435073278720889317063353483492284241337803951387324061526889743348191517992519121130033648276577668834603984692009087364080668576639692487839312228549308392625557872142359317394059292442527789496670990346711161656758525243883854062174825775248477222623356752110812363210233491463780597045521542112470526924826198988703310858424008035491858400097918066383048208944457801876221790808564777840774519469777558292974428459272770407875218964164306636748853341479168749788191735637038570509805094033181112914125059374973324578978995090625308779321449624623606432028222153093274593982498723311931091289209572580602855025524821139657507516690444926481274589382137524537287197531266295875834084302589523800136608344571481914596968323244504473611544437145970987147520021230363124067498503147511172036213753734636795148105420933812496380113073180815854822998194976249631175744705177247972078618231502754317551715207567822804721059179079882067199505225446770221793229476617560795800832765044480432408819501545920724957918186625256044995546868855659681250045657732351222581800900385792041253990996641079471046864392519802475317923840760728531078187293277673495111523115850417201073883072506630998807883056879356327289707878958912157131476991930765794126012428468089038984939241925835289140799817211539232505924534535923529483476288008571064467260634377800530623733689663557461494549320484790142845138776669719959106953429605721334069913004541398616959975346720497786764247552413050283857410552844015816231438613511844332819186780288724442651564481146184907918421180829953275492459508084659264692425956919318064792544553282781270121621136528396476829801381857720684407563479392971463047768537699001445649929623676694825270340503656939836432176754733865083005473367637884613123361579605899308102092754407540602038682586577488424540288823201250363274630058544597845659966175634876518073714387376944152258851044284053761442517723551980099780531243563174491324058081286239250197227587305732925189290080567248277818422947778701830536757061164782388154834157105357169581295078477966852901041815924402964795641527712530709226847636840078092999488039762971565801233582729279555379447322410449582480124886070950318351564866039426121435015092429633631719960124162311247724595185932189335158005423975293575966867089240264311407138487332416924601419823958149050132160927435372492742977879636826588595103445376945585028513388560563906322878167115064949026400223592292296700521413271618842889824963674650363175737882815406980848526686124247853111104478760834885748532685467145656712932038790980091117468777798234918368945097536638882906589755958644884934802747641886518519085526279881557117920855059767320175843452835737128106364681467980262514608761608293242340836441782413791051328411006443144559650436750482638461678821261155565965738532112694457640383514661156230644998357443820883525318589607504563295173784556180243068386881403537863408893003764201125787105772037776909641645091861502500742911686784305677768283287846178773538766510822287761918844345965622297303764074588592998666976218875284354306765605264823140662303541889642557503642688452205000641038777392047551243668855005829370873246986864266645767961392161523914304473185870243685246668192927863691388953684661282755182760955303414471277057157092187722092779304167972667061967910045237556196895757379895980971616279361035979003610689093371106189546908253161246558980640115785606214559887565339930157059626499674306184829492426335743479154917073184842700728181809342041424904461467410599968678413987522492336250899713832950795592138848150828936757218944641293445086861984573135213618774300296735424084481378736138272901665731552002269897605762527366450805051260248869866309479734771121226625329882120870567466404839947785628397260411652661740853437481084017525026571581756628907663246877313412122008529710146620121581761019688287633736995820424889152129358575010089734082024705987840094431324251973837290561812141326540220573207724663852219443065654152232817492477975076271025286207089534864717875624723058928577382766670532871270821016965169787273607728929435696953184565678815474543377102103191302110143499226445632334017752012250293815146047583645931636294989905146773331949478103478064516786609842440940667318905133496627711002042425725271590702453388675199051088227564288941548758327311588556077846422084421409777857253048279513558198018968557779868585896020371799179121309934048221565771941632217094687537665813445275398329854163629242805041946997672485129678939778309802235789078734306485907285744012854413845367254673253344659714558197924457500826162188033623222600711115607913777549757366354205966770448976706683173419841654846855237312004776159847587169490723204355903950131783873337265869584080309308516179295777345672417462064540706605889004712222017172292361482830908122678863725157784822915233162626157552661059756152907610356734816484882591179186360719284252264106495898046339602830062890886703623944223224048772096673311530622486993578695962306893140963697335120307654050810262115149234270620975393263800297050772125752017427004804539753481507960364388209239431034831884795077467278427922924422958505403670456838097765491565965756976887283711027035381843668400315672435957231006867810406165648702050571525868046086442085094927103840341037899721217982512314818745705232116692653980986418968162378302377558247954147294421484577127500014920149017230119134884681300267668662871513832557866920032058736971184477517637035490933788590269566483572703642849486321048580827282161570755956070095820406495887328236105915765710686640900565968148946768141294961627781479892136788576529014241191701389315822429313370812260075430954105226688686293693924714927088432644319105689734067659949278637970913092543702792494148524221637903314479973469277434321112052236405888202017819302940273766575295292881129384040974448155776772627086562957931378044757946475368179678542769964454912633988558816648320839632775157275756461157606418634400280299073754511036571245897844429330311133608732566576546717122215742280924467912579845524687859039442883929019741549273336842220557480588949326571412604218775470796876236435218099213581347561160208047135061849907561550494021377077476812824321069767162795135168701703296042103549723398084066474606390013003268337664941157253467109411370901573287256793661161818174207458013042961607069832397797156559795817150339853713349363444277762800460938686155141128801345185450952166501786433859686510035946154115155399264181500146803292138176707972941611446425709830556315592399618499826858644906878056101101187690631858931672858510896803847044942874142671146106283223818589514006953073242790803619083959069834806851076814847682567035392438541461946305159642538569573020061090939339443605263268836007052075339451217401162179933662144800857423513491148153261619610367436915428792885067717441282307249018250698498907199294527611795673143269014686246138157822669689367512307277614686028463918784550049619660540029431760717843313605604864460816138449584498902615727309506803054326257763189650395574150478521471882203886042102505937812429209546428999276208661556920912970176551143801532390983294967409936092107308387279989344757078662810648869711561322898436091327453540404797291668815543451822235510252852118854987369474817323519256080122770145563950598425347294683771506928432975425627939369318238201567709763118459143359227079797462546443077639596639011157697769880718851085064976981983039120681347505458479058868385775660506047364805045243921036942563911789167414034666387911670213048625687944767122564427460006628845931114457303793921029024143932629314618004621152828406254757232974465626382338855241518180847452299353629241656095329243352488088720387120079357722356441234247264176637735341728309458316274903529812128235792933443688228139046442049528686954995147698485917954440813257820674522209120705953382266628994061763127686288192390436741201339301717234112648564479072489557478245409621366083185669398165461297112637907751846347377729737872121966537544336619700423358802240030862973904076964516813619208992619404765704655579167135265440717283928790180762366312879631156942298094379894629751126575097815848781311454134140688402747569189327832415483890912831100633194474279630089073450137711276702449155048354934956705577965038345608319654460287062066217496268215126255183442056571336204798780515692418140523038334057088988886733489547185246165762039413224881618392680433930261839688169902326919005648393959985297378673522284593494980936160330545053390497414849796890947728469644464626139445804900308095888070414044707880081920319450137830597829601006983428010286840258007200540494625145837886162661331924971200564281781243121496936293922470707900417626370295225204001697894598664801934387153338477122241345979678173806588455639508826923908154698591998506579031689458875745142722237278672701655977800490404846368510018191540256522890318112077029284765748636682984985137760234661220941946569659369391244987490359053412488508698724679834140362482840068426288880533774599238884155986634155521282827555174334761245078273712691840275962090824688559093514769194882723156442643252785190857522209340978419441258096824637700080943119995144562733574072297389503865503628779999028682350897046104209501048044477013082397806841871226934003072261549602002462155728233392482311361878227100324041967964628584696034381542047910156802220780712163289709563490447575242932383986893711827182773172813094647530954657242781062494025884412305634656953284652330611834480990934540013030292665547743097382047406344493003447087375249850871225182910642828331716271424767883622195592879487760906468143098767395255557766612373772957713448030722266644902335635138176486343107091597265085082085268405528804950453768440191870947690230716470322072136854649852625992814385232569133617866936901532018543681018851623402492810420900389670872727725079444945724565743353468111631988894467155014822757884391423722268789242115657598583177842688734268089970592540089542964196816736894185506179368818885597378130792504324492904929329628834554749111013816573396049702770834348400496532320592368607749221873938564293220308289814999874808630425460206564655770968356336052182433447980520073926745313285317170636835028423678131583491948057715156722993962080810694681235209271712125275767206976928471472502317013494033990348550670470297888065136486729354525076943906467806804287142479929294494810452194386691922834061420019730620960669472418168909235766285746395576587307919364316873118664406086769320874310600280924538877869216528026018193348189059596070097320713280890438178025311689616993767846140276095835549188427512830062042192716859477129951000260645285330859253998220745241933694169886395459319641516489209549111054425495450280033525894223621329707495958398775444585913571775549637365956112816992767940201408774072556240777849713071408160272156702670909807128771727556104892505286832823882211055715124112728929447225694434750900041209295298453764449412432959570363800865485293788820754023641673480697106051323036920533668533069327147357068499236295561769873243623447032985481454534869760806272219716994310752904345671003469272764538673445740915466190491294487184667071611104271762919621871247971367603228354281223577428913179977111825458767622672673596163779451960044677987158198460908036586362423247859597818885616403546526928936893077275863249732033987250329348741499542905351152059666731408470332201939198732773233217163414109555903696875687753938111937628980638206289570432929889983421004675416821854002125166265928083735799774828862337038146834396805771920554662572296869799915715167273758978926871468623707101141204892784495383195769811926713324197537807906102859515638319174344502845093571700906756965411456610382551967221729183593868367662551498197658766739213563647757824562302281175445379419619609451058600842955194077755701159464795334297514852940788938654831740496147939437900100978428765765569801774316878662867574856469272939322110497417888303523438012454951862339942058484267324184282155389413824962845581249607741423507568423587248947580194454743776010883862319399766439899061376405263399902343346850851126802164759316933508348475025564278165427244650676588608000064569130031137248808584954539185741942418956143917250531381121887319232370214756757596410826770419260671397550524807209931869447039220888629893721617375771523242321333335025716022937495862035280517849196669667205490765470559651316771403543896342420907075956364501127864728682738604763391138691425848231810514191015446389134286039773866418869227039241558317465824971820244933375672537226703688073576290146550778099608444208769920372568251189254043948416940234479107424704868235900419704630799189050464267294789998361911172075127103822868526510424263419969312555729483486685676538988454155702154167427746273846306836275557277739598104302518498411408685294673898767930968568204253858481330288736078780213319679097945469986098266109934468746748826562293004320092550992515194441179951302278000145315042245281674303271472617786943344466155331891772322527940783615553411230868246422968723188556630850304646718136545204836856158502728055027681435598934325619770847934088936659092751173211361865618215857106414424553696493530609809665125962383283778974157990986940766864431111919501853190557170988704664287176628252992026705023241327625012296965552223481759156785962684440778209583494513119269312980636046840511473730557464473848002149604995199812923956392314916690757204242595180680622235506818468462131883161287754991847937330853256266014646465281412122651119016529887342006291313959895804922439099160788734390726198426754469516930955077727497316923330022577445352796274466928874917130649546830134999354370234822950359718852753432213709172810632953916787126357627576753158612043329427125264580642011783949385545872692652776727616093714148569097218756626359857891515113712531330470795114857378579767436611078712422722097832447254282485515807799659429276920015339672510714241020703467719103639207198739353561820654998716416860609416723346877838711068294814116909919879406290675640958070945306077415818776797388253311271050236162145940625655068639403094007253104973042787048074165584694653176635549490963171328062334760165442977776624397299292127074313932648256189532813429350743744740083817582452481751992899172274258369027719557712203749317236625423709827646711073809534886375964409507683748677045849609323747950937895938114094590051581681958235962340183292623097065873945537853591922852594095348722432247400075813185205880512068871416812787681972386929772015754691569409456367925378240587114074453205551378652297160702027057696807387513001610611329886827134358703341622738716737948693015000333934748805438681974112845881802407843552799204797463170329612241852907242849190509900786148378199135685261939211366168406886343232795726402623228684504487911350781256061179962426865148443915977297497871279427255507274201013982187129830042083261845383264674434901997405864896888949116116152571034735685836364032149849510182859569276399439468825848481419481967690939574899726123033380403212535168158484068843359500366286268910562329357218565356593735441491965362695306015808622311546899742147082057834057671300126626034166520755465637651531478056172235743132118571071772238813649762979325180237953707328628299127094686745423582808362905580469829623028568829191301945593064436602087896004309058737684248664602260388800941207167979533733799579858913000963093133961363252069956514542573119781881712734160100639276037009564945956951816265597662280025381091381654092178109348947458340903201179536683837732352504455102804112093212453561624416807888524196509941849890664469207911392148192856438368293523770500459114703751602135434929792738969120567517281296365092430619720580886288287845014904174310046379625978803763291165408825950992636941866652533706242228410861833983569254708302898411678732895315275688098735446269400430884316489194381030628352413599015227079603267236467058222357332705011158056851752230922562588137195934050106053637753825776903307330810385299826220537762707101664601329384939168717796890588530655491093783735762283494670057823884939712161540132417978030876194994924238913478831165505332552925316833175985880112899755544826363922488184085175674110971954210107295708887898782565845305062829119429221854273605701452110172871885749858002971862289606342037656600507205101361213437418064119336150581889275846125552605049425401923587761501791503206001229887117323089148887072564958767174244379237947137110628933218615361342080484096961158627707089390833279853204047738821642081192951669832450548413640230220216465625986057646867730792791773195218552235366722812051941946608179157168680663663670220908589667421983233280749000512779749818141683703788656636210684876306287530677529391710002967614032372371988876550311058321708002585511932768717524195676233581533791468761059955792698692529391297881397315542075679110513580279797257541413713927675836409369296418378999672027956590828801584499915981583317908913916885005103741367480904530544104299508169817365734155830028626989686156525813314640072607959611235378094391502917989458126211235015503369782490072771425132198275747762326668293885186284730465588469817578694332683093713891821132995588802146745363773454127067667284551451944162132361474528014212301061824791382923949696091086895327213535958691274161707947357273797527104525826730258607818072593790315064469020259424967013446300020521210094059297222903807100540305977063817003609866881294656517922218040052972753804784996716980292703204961079088010316874532757734261075935053162254609460136695648458491013905942551124109377684140209928543817522737182546839939558424383618726733070207030431072736184614067905395887131001243692798783938576394662995895481004222675642768141719945652311247061114521374785483805370083943525115511986636680534368506344585548006618044780293869729087455230114951001188404067971330178191775906726593077160121282506729352308624636036637523774312876283749672871709807457386380414171341547262153488639334873184652791488127195571821049836575951657246894311318526985924078532467398514284543294618066106104984051903095427233623394858724202223211896076750177405657994843181574669802391680133862318759484999268559096125936445466587209519229289986314991271714100463389168822252997092691773052958891836596440271924714802310594243855216251021802792311412116905156192107283343651200230046138996194347067825818592706532162548068147862145516436664354261647849215579476056918243944248837369634440495935727955285838552186793892088634308441829728363283499691283972141371018742921322274394334074022584337976623621607088509259439956338190468418286999179660549025550862969852217070487607912323993517890671008555246512010079303061850711166080149874304695201038689944081291584106462277738050546899348694856155316074576447835139200258836045877185002884378957005276287335671310883915938809920229360988291249705878347933976600691568540827882430537702662061941204316352035395411935268071271087862345393213846142528266196002717098503938430463688254581036795557346634908545687948112856771755735325539737528622645777225783754834584212670487395587100369913827515101476558960323677786032667133180440883102347385220485336822987677436266505210727449626919249884969673614219966005529194620125950997852523716799217634590665166856563834137790863603380265730070265100086760520442455003579937414041032646443678878099594954245684776294637287757213833186703239050041008940995797539258613911706473282054422661733931866723868440158105064981424383653228071854022593707190221281925875108605378965863822511086099219795493705374133622654198313029920224222645613652789236337101929528541428990307175585421837980152056997107774087171799538945049513469923952594520195698996320292860926865085143017069549124979648265285087200357921738160643230281918756034751072961824402269300256119428709139770917496030667561178823331662868898501622926421795277402168702101626221623836935102070013700889720836911767475168590235508409217390960574899231363697914857203699516565395471775731973301544794634881958442140556439840192970182787085524735401458832040726393910497135718831873085700675358119825265115014918864980114035622787106417066801421581744683115232806126050978700749657818392534953476520088790305580104929712049344336326344548178544874108624735892632417975280678943361632779589181431616299146628162210125138171686194478898863274231112728715711588426938146276368881696665867799839455395608174583702678659896743399466302514480064726407944063479450431319004029730486193458142617972294533049885449207013055953316442879347999915219100753508459947817735897391741426193908319892041822527879254444728731373595549187910042897564821353609075712075351076987265251963834622548269346913840856880900382882705869742806176423273687660509038510612096171443204267666693021984916424579891601069511983045846322893082984627872744032629845457004370818350493181287957471462735579981077004962876213303368573574336282853587069888992797067479622065643224408326253861879866042018606636990795341178987488251683816189271959783645690169293243958907022658737842627227754733939105006116079215088274432339474031545806584425908982735904682784557564108165307522110939005577271659060385714806233623615163969445120727589663359850882588654755044757674693209573204536738887846575764669879184791596405625672989061379473154242998985746011421525012525860548634681828894725579096644594424082515611590903248105864005133434267963406296051684122302590042442494555840380542399875503436957665010371751272195962820585050087040835792236699235535163695138711363177210503635926600334531651386124338790862190618254522244128563798625479141274046103851590176826398955072879733208319276100426270065979978187263730647787042215379298932590026029106203985902750651478371721319779149841581181032579286218463777648997650838757788358034223268543895727955925650891107538103528134268148807433437854875177377043242986634615636960670961097230779404050904839151728877787434094848307305049318330437011728008423341150204416692605413538068354557449626307789766630618263818707575194879395929260811233414120114569192664649949614313428942491677798752348717975298751810702287181705980002282341775733433689837324367601161692394128828399644759610760769732554963869441783832876724103740324820509505265426037991423609167472279229815432419705238942715990245554789347479765168629879765294606840757863504471203751501482864593215450239912056414450445081884850722680599134004553655258746679521763649663671173397627528060054189178711403997407425478898989271369894837710450861065432213543464158364949463174775065221799785938558610802170572294750234216837573957989705332755675556689565779028008114597622102291486163033053963547729348061749660412937554983111748339866140045282307968408141700914912474012370441687151001665662474580980699740380093309229892594243027020509696462710527145929184396936483326750956287001172178916950802705811905004473607595834334609119960947732318941825858131713207070802737082007043632149138341417917366675239821078943215113717727873063833511133348487512607959934286798335220461389564906492255849731638346623002922121569353681273108938863971327778487359011081103808588070128123665251937503145384045874879797473049340251064006526083079118728787061443318096398800656351008949686936195126285060570127656431789785643995600782559497506957819033520517565028663010119548075015627897520592506062427669831194496852743414826771843590189719756225699963594424693427551082044784026033232432676848290249465967891443629250551711336930942056898839985635844276351957871091235629987466575204888692559625515913556925118317847517703146368629046996839774092405547691024774894182162977006309529541794588890123241884048417354878328341462483474193513809561818117052953792368326152245907583507184786338371008166923599459349752865485320945556316871409265661679925094454253757938961480185992080591046704563449781151248035360473243344424506207271450125468951384373511008505031771756575668716935738031851185340261085763105506925443010469702069354753158210309631751631497297245284066139286250308568765253652719897141595601733700750716349168647021461529494624637551261355879783397916247762953413631525950737633900078142042123398231934280016617139148211576229545275544989796260207752290218262782057145242260106954973985096938490793743904551796513095802796323665679536678976702407194676552001093009576063603188061017980511148333156152783894443339264632598104170226243709781457141122055974797612261637434252673803239105266844608006917583483395861556486452559949996888405370817246924081984909174676993440398172442400974710435975779574538483204665806871036454131578200981466753593880208133480584385368414014777627624675227759007700549170418274638511559979281822691351554113792740654284020907301141865929840617391732419006771516699724235472263825164665156513731260953813734545030168202922619677191809536004697765062725037320527214691078597868207938987888272285354306544831420908210864820449656317408863329069589433660943037471835493507862248998779078652587755101256615017333294899796093030018810362485112170627247100502336710542830198586039060432725004023658594891988842809308612270350727275569637978415460259158597047308779589642620329596441924340201555065152446287511285627862306728160268581642561670494044660287170964128461055720349407000965418938387889098173476735901610681652064098280863620910034228329975672358988553081001383056515280090167084315765692696860280644484027975401972604982371666060712348263413913541601057053593685046476384246932943972535593058601755660237502407064705209950364559811758473148236244060952929600374895099701661668742440392594600622310795727129130930470407916067513211999660884307894256554438637445842197964740192625578760057949735997197336844587754977786940442010703424664689495821995795491148480421195842573571269316760656258690978589414182109220430712626068592974735798583508303625960878875282849993823687919612714675375623444421554736280680998381876636199153609316430049949102640985813219067937313114471814068619512550179400883698420605199985771739956678104910073711444772910050676728143863304784264408525778261677089940280245981745689648315754833879174162895855258415336159063889373561450436433340242619586700830124311657822962129313834085592183170668643462122572269867058877731366335954599855637336290661785733469421292140159104875670521300559551321934616436042484608529654280022123287856720039925156927733399630257883558155148533567058466607716686498294234190269996812955512101359199413379336205228882636287226173999732911325109292321106408750273009389137070956119826882874368069915294520957510007946659589731000873205942098221102650417978279505295644616658189774234841342192968027895398663834130700541730300701417698164591924294371500430890983611709904858265406161267833040099856170171380373383204368909600036300057783511450154575741936634464713924797944490330792646588290822943557755260283272221945296484370217541624459299385323006895492875738138729532412579781072671043076075791741346544076516361273143866333743303942759416712687129468414391505565269962990368653525248391082344395726450576312929140823531897911209421116444065201208439789404278455258634733979151513692355305768413196685044474349920662055059828103643417689932475328657074714874718752112483642946618117521969306696920761704601368115913537280842097017154936077321875155027876230828715620907797504299331345732286123211717664693067310868895415322031179311913459109537600225783375455080290256240719685371810309417379634736745514740940519716417801164587805618760242927934196972477715711430819697674999614790875187813432973179792003174740646557622454253619312074481604194095071878845063544993626173435431940617897586662785578052892206847140109323714042041117669758136248099970310962364781686909445506685093523841127556744341931979966449586863093630894318883530535917855400512758297381374976547334422427800323753752185669714947464843592412549718386733368842469073998793373768841852533347561496297725701997479117931956059671964046904361184993813951524260851778640847978477192787027616452528875589459642515228935666213742944598403409362809878978692912825958516397005097726603573341384553239640224111125410188267125040307873530535407259397758259025287808757729163316031351101503174083860998520859976901769737479186029426232695281207887545459906570321247958785727682795287371073544550141688889100423418031813468441785436050400936617851803350959471892301563452328247877876075619394366893912328087730207031638369250662402098289377981637103958283008995138025377684869728415775529752169765168235171373050707781668772312389777330749816065283774941893286331726477560166352517064782622959022458808806487269745607630607870464648294620255068551397956793995659410157749084243244616255056850175482274638178484041165563779797690548367299921203033107336332350711876019351847718139134665213752687704514923447640337490590358182839802812474087625598403422902224908064800266184347856679048610185722203914165935397170087131482455324431711796377352033161306835065089542916285820929346729368038328773660963500464072503946585878319728308850564864574424956761796960184975425768634375255948694985932959083163560859091321360040684340870248069273448176906144610381500507251532372285466785001200950583856442785560681678826681239276952786937048079394870292974789929429654517830504137290863280378682392532341909623043050727093808352230385734186499935824322152283915478912522194215484707831575972559743764003936024680152917295400276108312982892547686940569512735526056758136210253551434175891908460722349627264527416189687484551024033805090495803761178961329818129267445092191458192200053209816085886888048631571320500319818769585184707399846698480958004927127355763683271327037884940385678664256515759310663331848723078676409756127905058729085040677803551006474901583946301186796897843614608702890574280599023069437831358846849002654283564895568499480675716277567780907195634759887363497581555681538143214845211629704461434773769820415210818102592034157440075004685295988511973356135441707671658705736923812440840820855647847354506005256915002502787916636604011373990233182150687010957959582215889263184784330917853311100994511035589430385374275642705704875352996253494251743412070949711053079592623136302894254160713351194308955938945050984371013000327212560868024804943473020946238374705377134538326175290087179559179135332657332933589632243073016752733408751530387141765966178663066406252511713038469841458789996069443871158560255817095632891065835341715638935423215655636632321820570574757454775426700375614033911342443483274957982548378913090903522161845643450593791785342997294299188569363067070511861175811251146442650781849217700485977087510173002791842996449025711949959776935117491769101796242441940804739554157667585064396115351446651907849664193724229510795021768824192558475170019865722484969039024304314984264514077215094644937542996811654528858750934495113262901702989455427220484880451588984054498228204087568863014131113764134202909480011533078140758606715328572693867126608934226412118862534538560866802713402742810939225895611282421695045551844820198370823775273869981707040229797820433321640622402129213449134961431509113346312293450319689293450195708443904422940215113737793144121829593083066197321791207946800162435934689600936586797218827294654579510545400204997709024727703078591020633524012237911495154340742379612379332219314974625211989736896257007682463858321463663157466492303517025093001118631307818160298454206911711022501915642872406319387286512690671616375422833009843978148790123473774428219668919891712518397623585217852513213937511175372110737806102390068867300811887448625794486918537359753142773110025861626624190036925102563222685154592578643917832228555424182335628762891230035536858167716752274577139360376262579794076727912497610184715991902473099745174544634299750836810391188554537896600588046266108551668329233353288687803153531959864780203922286607252160640508898213163172056764072746689830542726360727377482879614389343437679155824296015025219816508902397216285097957607724289486569969772339290884252610260418925973728279048237751591702259107807738221221631354471226834997501666422117745755590105684205768756062903707650160593810110299076445521461069019772896087112023561532833554591163260914250620263858414812432959239999306780478348395215483487396360292255131978894855870039526366523829792544395839482275892008621485055686737969459500336888635249446345031796731858568534234509243142686786623387997266846459641788316563866514517524180904447549750654833669815871184710230409710587397571002404781205466494849958711801151144016245363503004718639035111054319300200696496196220191556084782316494683320289308557653945846604341824253596438242489705740889842710074926941263113027498880307814984286050407936828555954234118076088822226384946262011293704661988742317468662196855383931877735440683689440728975661030714773865805379534989556687384377018174488818358473262253222729953676712387506996677908007728230984126950207595370952611173524841663910043720084001259886090414476672039513175018373314160498082416247142064785999190313405024821549935692772042607674297002988122157423703541641798428992393569410462201602441374625453666974423604377912207507978084982957643737405801100563041027584350817304698887961107703106587835402621281551534588482439615063707580186743249298342209353014907880735320366420073148225647016465898599007713822966383307431448556257663991672174858725986913422095198761949938375511579751977924193171016005377351603439789042247286418733321131395429691104667894167130509747483682653539392950618339079621963665607494030122054332038984816624714929215731926834710182918655250108927595018617097697784001883754607330762918080329288904241855717520281618691066858105620573051663334587610836256457008244784980139618638681855541106375595378012261588524734022598013196796813309911581544939223370524799792457061203992745497423688890518330781857005637515713085216207753568417226672608211086310375059625828014562103973656834435067687975833770655128206096636151526188587427740441984900252145432173716700383283728800174476758728102010265781498418917964966396149154534435776412300899885086556445217401664083019295987857669350363937166327090341736248805684086816885765635097597711790306097532937964514289604706558682957968728365814050884583043705339275337345416473533979163012576936058199927238417831580521535470686253364178346455067537709556568484112751186602962327659336830999564054531239941536382745366348418001415453713797490005437734516709094207185366741725528686038638176865171704390872760123153098749859908056476539983877758564746481673610580497343594495171939531369186072826578615326385554980194067477572361856956626209007888522338088314301490471068421156164395751446769686157781560637495715014427000823994253850716275517127819271392460166598117599401483599530270689289495106889492497031618975793325150517849597207336734536127912019593511723305871609667830804512796763881507255496883396119354382772514115603139067093918813474446880726712686876425575925106174758502778684912129046498319632905598077309497992675665199313684281474527541865408919740795580338274041060901335860433697149143157548687497255816525861883970519030829651659486225128705474198885026579282830030220353587365572094519546454175512083776602496281722441943199723852923781550522371391187013023995452210423986429867052580348721646961647231753740549892726905688901796666282482521079181181338567155926812357953281103551812429096443669560200705098028826321942988430054080617943617720265660433182184626797806663723032354690987127798336878075310102849146099235218429871058188665185368179420498903568936227469318771717001703765813992705887201831658728130732246283626534500552701956413643525374434387707948429582995794722794476634081901566618560428838946997824492079223874863871939467914620317153774959562593867348671160941745560280315761517479388821466444538820330722075278946854415446852723286751088728593848599504961912297689995440257121846652956244489787705684396409426512298951209361827876941986590701827253694858442493624541306106521152542283242765415900722129218115030320850091822733723093410304888732737068869967447505819094752815351014354616789331585363299286209605326895672752431129191040133409211351385151452767517731426388031020756974362965670513816751207229547306997268095353684623007236677850808298994897224126629461529655818632748754531578813918674412796709654918312887019987993258166128528651133772649060732196669273149379514432992102331749059271675337003023243256580286109348202692518272852815361955597540126471985274299129047997108225713199586793716030883853562919935354473379551145118117284293546793236674242738424410217774252960113169480114968008718529027122235278757690364648333367755512927299987286626869335249754082451536630089100778513409271124770759889938563988818446387352941275970470349546151726179307982051727985385619269113125988089134376028722848510699538499794450702080878954026615488978246062148103590254612930809910393046743251687440203411075579751904558281377804975281533226001717202877544677849476291586537920818864290950962078938284328406709827322865878249784153913838867841722403021678698955933488286973339926058559704431396563907573242685807340193075286558245525449342646262393952947692037600764668496877913706768104110577945928485643234680793147098886056922101208033415462390042138900744545398422166725430044725159026306188663547493981411830957031256412475979441356079119634238330970300674846784426206202009404022840399456411532771740072786679896704586697401130949026562517871683172993417402586278328381400697931181807335110918708776235325682136072130127977827539475499246906316852967100888381807997148995587471899576500299876153572737698638084107751804919944880069617427570928140657888863314848369994938991445491510623481489418992456906700137041156665349282873650580607502964456328656651746251638312983336185994350503815355177487000183089275287779276476692007541430996013124084121010182101361876452832273792616909588803515828504745773821291989654243456239047333110907513551266905319277934295731787264445938371566085403950234559059252886634662758423101300191600000590186509399055544131200598967837215157640521459885594222234635215697393256174741947301448833876892226084987359816030182632936810025567265255145529018683788486530987654018226811617831923669593341997462086272873701447956353223624371652333452432187458131339345805081683455750216149086698996748751608177987996339772308391375829648777444576176986342088228135755568838751119208949940538778483479503956281970363914228483336280371312077696546537283229163734175609526135129946903291265473579738573355591697137849380516437186292039558988454273943399297849009459496432933374898343813568260600457922770879361169848599719669609512022542835979652519994026951195270306763307059891100463024417167897627129898569775565726280537533571835555632092086941471498006632633130872602854733571816924034501551668842856125246360712077596572333468280733387084779004756156511036293215429755782837158284087517694366781683991240703813285314698687984163241535747564325953836688491775697586044769901070669948555380119611688736113194588011583322538148257049838645142350776262889768116055804381848191934956270246745240193690211157124627419445395808205202003210934973835824187380813987173496573564892279594217491275244246299188237381216300542987464135671364081142633856647339018545513475191360078166725233661953472659241156015615393275699639695418823156398741534246301271863278655238939708082356694977671190249867269591625919814268569082891895704592300793691793981316646063242840796006342010591770555311996820875636232306965442382029518215648595954550256535014194966176249328956453653657953436091391486789214830051345272941929538254495603599774246553811785401191431544561543155720142892129093931294136282789552105831185451439742862704430971319865495935447681284855468267712242091080686305689409759984240386024613283911232873757945148586850173284273808950477466686750278557131094395588135901110354519042595059853733076298411849114794758370023743423104299540917088496175574093254503218761728794779590930479839952938116810437989590764973661490665473273974894765475163256341820458911918837303941315901257017396255068910770655579316969810335454911163643013516473958539939134943232056237704878745667369254192793639897462889960113515794584589399449548425913264716499569737236719244669887966381570725005457065638288114951254002072685948066724119204136351544150700373649929325825796208958132008720070203530575652770218471740314562250429691803232912275995896901027434265384702506439930448907911968364062478969164865234188025492697835100235999047396608988548873510088461507377915352711241831512762561179018315600107029476270491990960064657399736652542557806249552902421234180766116167353968724536062433722516175393633677465603005219971414353291744836775691786094523404829890256382234982583497650225972773429905958673126445468248467142760022984093714813366834257087263388642012102273682300628995986338033054374564907243242194392861712420819088915671795039602806989789747809407416055451349246596274340005759685338894912527283225405578508678716411610129913333025444055922012647804848904545123152710166612831119722670487622976011862195713975917450092388955101817537578692752231172178486650608959156324687774181460420312736727803642202454833909117875722653732631693180331898403078182412112257195490547460750219000338434546318158330013278446602026937519984582155078122466993734903169339980010686536544742340341625961050592651393436197075968780914784464230402620589266334252420387328642875393349917522091604228656461485438520929337867601215956528770817781903029339245436784224038709580602063766871507197793787751653609188437939546230115672021918989002949138919025193408604562580941198318089508686205781803714668486950064467421187609956446686001462656275871476613878582701493264093690016285448164035219647732219827948744164711543120653376070127215414768154559020248139622283532406911837571647129126724944189169663482576796760020615842377318079711278664127001802683877707309269209091782730009467033691414629603048529381003713767756771293079826473444943028707559911520965060138965998125275027357556700434092080164150317177686566491149695752036227039800701977093727848327957807973965690324291295659043533908506021371960671291199282342069767141350945585952617325826067879534980904619196636899525548142799360228408713083048492177330684881346071789248151001769457255054663316199707378218136774386256827436991088982667716419547715548847826992058534212165058105090719013617686590441487474829154641518081518474206867695483085145311323525185458880431870375331415523367570276668146844206987277175910180763413634604828448052296092261877202836032531498438062999332074616615395284603683068377967857545128716153412565603927734130045365954171382222688116298721560561419393408373751304056103308434806580298303530920515904126243699740136657720024894530741209625748505266051936564997273751446684625699627419027661995054180626918346793785272997920872863186847729797814862313140708961566596113816613614587249305118763299390325491950319535460014723225937825852413214999998788195371748082402092622469771741257131618479763422854591056924485617649340793470879870101884762733719879285956781208621455779541311695378865288003452563096663779813809602039911302927574050222765929092073661124903909602869497389251085885446618251251593174771672461742249438347703352328198356890345025349581809506493892920577170883594776113742545287382519786109861068524273538432984362970373891443876481808155142909171096488887713646880323704309320876609986250014607199053175428119502414796737902425624960722093293482106574036047690463275735143608301598508134690818157401185551546727200703509057211857368420646843402870509266759199082419795761931722886983107495112772090203175170396712747386360162946298446569696838164589270349555558761329221161053248571672295264753081165448381636634460679190482328035210598995006392823232838631823239265270246524427817187782636543646869542298212276154084257264118490851951269175862763191578610564010110639977075360653690996058431345856369772050197420454646889276747485979931561518939762677118897337822687909176112926306723012815766496027651949895610523839617779216961730461544578972731462113471951407457164694830123451763680008388638693738103835120094832940673676829384092477961656509150601429671150164427416233193149193197381557057412161689761605259104996110162107658783863362065960026636287986589323375082945710883597910117325885840848502683523335769293208997127267412153970533456963214958915855110573019787160171768477168412343119056391001188011277004316259756238013136602647648531111162603017197053634123859788573170176723156637881413830457472485989963051803121505414426110380671247437492310530554306704771370330417833938490202582689463546047134000615089625568180926103416521151979633138622157551598519954163153384530661047629969727324851169927699570575927860931635842450802298555128657636516005644759296611654664948683364745508955321021743356279844014631522016596983285556003336632902156383929083368291395578723940351551227395504532034721173720771957272008307189745718540717614075911953787699781695487554249499622011450124237973845331716832091453731514448473527436044034382899064967725198912814108218642329534274873778308789743860126220355466849590284647102532503795329519753164924942919847206164597692104564220904134408846362269232472532836019942394660490815275997197117090538009471953083652322279270853222108163622318950173507138766727892170411994392941859953418136692686769053084854946118530039776905281552221859521953115889925983487350577603750510753635678164857276839854893841554282442128329272388036996452917467283894121449162021686605171489084276103304651161791019464788344172779078273846312417086726243331223605725100451864000000280374097422001596068330181535363978734634722386263239523532120691624172243091241876000233350001125619754017292675397236254351576950599443832699114487588335057105939318445305983816936095681740602986713120038368880489296385759657798498666382527137019940972364889881821153370463356554603730037636551395120765674329806939662442645755168290488988499233843797646919259566730396552777069943465585256316366819093717385652689594818957462218003509732678363621374655863766554074348494386793004422395899058808282369011053984868302716612868257666463066419578833904711655596263469519506431105144487132882269529173928447653597118783490246833443978980650628759972797847342870702048309244156288193328937846680910338517159397097212481387003443681761257511092187945224057014896915871489996889544873589627840799905637395643181663128001765637197048264852732966372394319798194934429272020819064991736868584619596780461228672867149232112566926109770106973070508095712149813548019852708956938044512279373651379751775420900335043805422980775007015619803384770507746124186289059892607391144629253414129457889726121474801256089289667204602998872094224739061731416980957927178769869859656776210576740511208769962064985228986410061104794120998736929680690974815329548542336617402182784980418649938531252202868659389599618829240369360486783099840003201485897708533592646008271005174960903938795551690063944329504402224097549097200723656373123550971082355494873816033367526899450312014595953640823668879963507735584611343912254639724300236805226866232153593156403316273898804547972835887002447075203446863494919771626583369215461140405980706374029248117430619790840053865818319270925994261932977232752871577491282384031690565662416368125591680289752037450247523045813877116932542055565409669855412775392885864092403542228366456768031318315517185900323501410768085738905788379539481459615048214009550554493205059331783004365845093012265751243715045162965898697008346302950082634574709385302553706677045593647874202463355769085908437401894185684288977497356040630819882388206886228054598459914586631759209490959371229689864534385921805245588568560392809030700156705310143102151049140969494574671686595824145779857070933431225944804716192240308601377484240461829725234348779604999742547018945889937733385975309950614842546444368490580503750016719213712242167626471323753932276871713164682721761949722014575868935538402585260096423282755552578188840940444979437746997603523086766990482928617773418258256719422847225628615111314041988706122988287312603689613372672697726157544689507665790808886708979402639266175451091790902349063964424799397945993489178763619233424988188889061790923954377083860282762889909882155373332782526145612668774390548334654580765577933519709330702857957264784376521143873067843232464280836571036329391260420353893587485632537514442060145679996122004516384013152805312886289367048086126594372470642116923571140846847579320128010622729886330719138375425436040237881133437018319280087182394235134464966550860138393033547755600861186484833963690906310599678824930719152056001527451620272788834121372112389279243017210569824564685223633366037122348020881026260486991787333698376520432229880050626926088624252622094150779779268628853936085909116004962412744619261167553779508813173898889118488290194206593548846356226119409815051429759626274599889226958411615657599029892415517276753050453911246693643785400135900843405282016757274004129655975584283660061704435251434026915760589976412235742662582688543869310446999588420792823758897911759439080689393066639802592679363330267361141313977560696228729046974009145215528758924796085640858903731334700398229833858242246039561060142115021988860598822692724151411214964782624857112574264618900357165954446881229223673403750430591363652904618267049874283503740996783212053398155291334467896648146010911755862550387465898379841602284931688325686090200788515663404164938760620235873789884560560620468005597953383970966763522655295148141353919144688112797457805170718025344273909435574660331506863301380396907867131991556026657886962936786586555943049040776564622887385977417441784433374490524901046834174355926133134914242211847711627004488216529435113651617838552515478262210710048604886303722571704481679903946416821066726570350750885261545467502561205360189232456375070358461821371310334313062948869116145179370121022231182053276280905375990569233284089598642771989934394346042826386734829981685283221417745769991683713948654078950071157308633855761176689099457824980945217304863163099769082026881591482887390754157603579683500378589899859085702704058783398163226978543943971439349719447063891618648751119829323704578896450300182779976216659953343565611869161578658713843839740258934007331268411434278668230661110574939935618482071268644994362384587306187181592674893481127420751543360271541552595225821593668666739523700088543690908354346153319094895354925325451521055782691697471982409327947776287174065093736104921488675833100444873747524499423239201840269984391597543647676865016643692647331237302114339855235337336061217949554884375435975226862173232478148201457819183091074160785968333330171813106607577410758327670423619693354311072414371898613910781062331815950043523577032995044566740697286180334743254501033141235728259025701461767785797159825935133804525088439878161723557822287751732438326367615625084192608254404337494037726502213771982662634832373338238640717070493531670275260831740044179701176417182599411419831876127765187913361180709188107238501278410494175579339310162776817411162529666858309839356181730230034032074056380559156258692671113103660113781933925475009579891183318668426906894703682077196266095908459416052463030586413350647235152727355433773718853167577089498482830009561737705577861983245121527125598914828761613125644751911985098599252732894006554937635400472224762782415070420187265222051542248454646295682383095403873077216262955508882775793807078059363945760270683353365168657988787980602199486761171234845500319364601628977264368545934609417630329610653966379576770384100958054226327886802771257498495669228667393659632194293997504870832736259723331059157052564253471707251057295442020026624380370729771881028366678136519138305126850740430175679875098528841830769319674506500972531977941378294908837036960041523442829037368503241912788544298774446756970187800869207073714570213005305801949191448542762583185395790538144605506248644767907176354224738729054479912569594372245355054824142959129142610671325804703884400575365364422064689746142416165236138132941408185564892462811107978674008205388440885237650776247454392673747010527471927427958253425061936743251072056092640204915076188861812040137542613303944775549095937376044693491168225833238659756664773078639751595157020539215272632495074291213026565757033463160066081881008235687106121597577545798286290560492061363036065848249172443934384342228247929085432434308763314414313398432677623952449943735174430710846070568478039093625846836729042031098364180423993329770019967516742360965145310814518721333753847534093041930830211368335243064016683805816761673021125183959881903739440997893793331954821480252594553672636071487194294194116507467109946973402939562969578955841815126156554838052187288837010696456266210833460686423397115537990973431176312511209948638663584727100625363549909637968402508330819925575254096514684145524328856565738971456177732418864707114274277039369616072806818261552155500455855451050042755219205923533710810242621822369104934502204987626378586878501981734706258000691844050070644764983692695559247722338017022144991414316523770633544234724289335746475792899318296505431390628805108495790063850317125174262542145259531892380087658700737992283997444802571223621674926828356781041241895929736134110183816351899645440310107618425586574016634552709687138688795785304032202794490525254279915100506669066394543582911184949598950445227022695706889070580693979443920560026204418800652826298212476422610174247794012626248791342737523198901705069089336522223567009580693662977453354296453171345278513698666042842181800087042330668473041363082393274248194417072920909669263137989076528442542995698394242029514581592424719156673916764698887414201810543053807595176508235705699940610205930553872613112066658808915816970947850174874852592102729945080859568555425488808720260937857336226743873411467324544271117257354743933792482513213778670756094888693365858914180369188910535382183778715986013063883444967079876326644119584456585675786693310537501492242295293430830819230273504839784054932597799210952430754025020691847227894484512394953617886671206262336873995857325201656567494456841345435995161769590666133807592585341953383612430394340551235003035410760819646686832486532258998076623491533180059652092448712985339911144644885608070365708099919814050264886359186005449671758463170605161166008890898753676153248738454496922170341020651116854123475444394642002489829106852202632137592690933505336551824326059358515611820692203474525356717599236091304015112454255454951501572148078105697788249927795351908528096817019739201419369622214202885383425835107360282280579600021447585260188454824795669414505286473727974162627208239200621417399294004135910914546672305927770703040584582997507251860360006782250141819673765070578697232115280449081091609570273744678751689780875636659817197008006899111156606450340406510306492788269558572419945078583425645413367562217848911514256794352780152319162322397296531638823123103883443704552763404085009294195214736589421426036841759711832489680867442319851956103205289627655570503548391417096597986541158574016703879145631234543409212403405587568290408777814511527192344602982585505908198048748631784524687349799193339403986703235209545221817609819091764189918815363824216983427284224905697279322040352727062336611913671610252142437529944262749855361603440941965269629259043313390318359186935769993721301053194362113851929032900245920565245273478652307299160130921300542373607847272026334076496788824832828748298210891106160517026560974149660090647223688875396853242854232509574986746184284478976294474757194871825848756000877281052621922364388433088670298247943354678455112659686589572706938902083419360363584969351649278225729465561505896306302843465754697440885770077568339104418237647350231815762155518390725183389794083361651246448838578549532685343639693513431112452040804919505075133985793114451201530366181791890082752374297829132108354369227722352177010200853631162498871591073589718723081668852595199382090747519368892667817449547552451693016906389093361480946038411980202776237352129317618842952220408735824283672372555298277045237989199562418033525019532269394291794319895092546722088699390142809706133095895503346065543240144152923300021340454311653193812436270125971300054656741695582389417810312320706599491621279418635229073522536779047031601300653304387871116684370927785995904509275015080560256722541418855583791290482387538991766119361334689801153916019621542784379594924635753136550409081578007844816391209537575896406558346271326936958921567820918976526336997839257884305791122855804552110092990168733254492842322975590570408471983607680732065592775853975087944334626624173528547349349350212784759514346393439183526888853573872053996139073369241943552479014629513653213407304131621386411399177872963184447768521667108510133121105343987387114653444522091509071270052986843140773600360575045510330890004402040049082380205970045476069517725814327445232807966176932713522902593217385531267349236365659874469377029076949168395259476323462914489891381499731791892167953735704040724962181012854632433527709645135566170548118508776471043304436647245959599256424504089073972228532297951395863755629464670111122493666378131318223976773583236415814074261186313942096952194898344184504220549838111509639364149898391245346811161414048099454589915219631979912898462002746737467363653553885355398416969518879125112557590944382247108192588242951162202845650714372197487477096484612461225956493298814890423318950006955749777187820518455700614372377921796158898591059705924684777782637078734646361240059013432307528839449676352622620671082767216704210926281405911251357667966899827720100400350440898749458692725095234782062021034545084385096829389176214933532590098999776040073658937695107895119632332531848641920234287277277332246521297298321360787872900573553955053829695748295542479509310161611578402349167917119540452199867390303433754591572516879191766342001770453710431349022093508471716775711116966341152873083914805431189038437459869157700708793350907934443310103147241794120132955040453473970841633165731301312632241500799640774181487499350878931463509075108811357616677602193143094105127321086376188028917677655363146281196293492204070209763114929729622536500896104149415914799365936488640341825895445036735554461763920656651837468803401360172637280978809840674947629927102710642531240556504421792337042911985220382966724209345977211731647050482420042296467647236338513632647730491496089523621287246584421336478934881192451224868579527755843327633816251367692764815529990918970528552733153243747803443836431482818943250522895787867545188547463253016236960749330030704079179411080141074344409376347274969247138123781833993858631439696532348081474354587904886718392114195879626507754455644127357681978036608203893658426353036359142157508021090478638038613266862899270204385319018008711418141691667066594471790661464539044159014172622397988822771107366211973358473617434843162091594973424097589045039614385821688221025117229861670635715386459260065149805560148424696188348602145284017599280626496542220881622862089024752268342054595107947017163306865643216087839544398800570246743674132528535158720345093446348113870887438775443710913146110866196552186090204615557947938686345895105669170107394328327061735180453844244250921900214501906019443617620169157523427952869521437813616954844639358084846285397510073261879510618004157289036150655686073820820640183024816340738398328991679894423942987097229167907110371217019887001865001563425798666676094549900994697434514991875581871426661581008591144917269600749203113593373965566988352844771807549386264823336928764845542124847698055893404948854457505521779257076980216717323118887023948152070446629415101065601999200126434620590100140909567446958306418577693899296372606942401610387025849817608892106910026082385424228113605862859429737045663904877007647933861530755739495077428576700540043434523242360782248630146300277979353622094278388925815099513568038935116511841683704434919761480635005150398537982347337513008780463180452052192664053252242064828273221999818854363133168275093592033890750735120232469724510239376628221191204300627348751989751180547350635257045437946526798713478592342524707349888758745386971854883852109207990619212151288193225579550671157148521918467515383591917271918764992216961079516506339271054073842624182124487534710826390617722729279832659223634677624582333033398512544292436569095893709561144876674912663075453300822908997393571888705712673539108840364012882414996447227191257875051004754764300768393527300436369981486260627423505532826344526534443225739423637113826786673113177116712038321504955940805722889338636802839021397797923853911161651183175727475907618669185420455302756508968611777179784167194828802583659903821320557220978461718644796361417210299121947417078856531316804197375296998986897098300371008124070042388669306256730999262212827147014583073466260603168068791105420210423440614589372968788349620007842445790390242372429452817478660855072319093176696791014645619524766887523448119461661506176824352226424740823001291409464770596568980884333872980070489552226541210221102366740161948252464727316569529722562834698015355524151213179382218374942246201515670677012751341750703409447661320983365712767977022603389280164970028338418345282198054198974200508047481931523574972198533462712080330945174455698640321191514944052689785931904773039664317499147403950719326873877447311009877239230889396586980793398040042513325981716874513881293953522363580876320257890382434859928181214006426782221259876521122443291982940852940989457475390957399539566096026402797173910442776705666359653055511655458280710561313009692618254969566727453752626232000900467581851152840559303428544815421294555081560145559317244120066546885989897184634507572201183340232992191871478821861719637086671834129486744682604346598662431833340037802924466978083853231327952557675694386751571275068211110329721379480721175482198138768900371333116389749250478524901905738164221116002343226844178480009719616955235913034382377243312005035019995991436038209291735245787235488011766389161988917294208576773369005452850639229025330067615399388443164946883483602093489643807260122510831815389731438140420233771043054630924556357110622883652633767389453523651615351452752350848523877093417427561299605969509203625190537186345533334089340884999033168669905721067469378484013026885780638679792535272016419967798157971170772003245286595025525307971994249943939385508693692364456220981684203454838425222645068840577856325236719325886684875413871274919348011273053195290785614851780633102833873503002316928555985112262861646737505785999010692479899421621439968778844239953795594081168972035895650537401815325545173045848158570524309016838153702667115424051550799721509352395692078137837107073766085583091878607293942620987474266635827692421529577644489407836863691839777440462702856744288695127662837892012861529622587844143699745396114331558920217128769243744146482156072267596183097063349845708386420394021769070444284163323773979326929056782526734022506977374060401736065784515230093015093776828078422069672752362208078193414339813490843999900055034785166775128918301082144195613456450005716197985948887393249949598593889544623735898175890053243222103103583276347865458949542450233832615358548331421954797122165691449929075752169869493408423049275129612551034290760284696880845927176290418942121437177629901205344058012736146084508352904158165185932518889540505698588218279921934953203343557166917000230546103507322613888811122419379361036779220190132433234634118926638649785504973454215163927965447706295821215576732906788669008151673371533572528789273041558535969206226426090671975498240341803168557885339969048226868810497751508036377390507564638486492410677494064963545783814591093377818306702936503443123684347733013931052864748326180977279526899129883197180604023165978815656041778698308831365334590525428533293178678115804407177758820077811380386900939792568129765146058155766507117222936982318322437239176787765992654692329036515127236777389371406242796485122757033713512059826142262178878877528360947667641321882722925688002728789397674245118184482186757194449980739768188675911575106931291823420364068628984835641816006836135956165615832797638083122945514406556781543554361174058218295205234846367593050679964519722089297524451375967741856803848717234547053092238395860706224713376493370204725734486466742002927149106541058402038389776588265210957262045407183449872146066772603011651951632223274563760560993169817990798347771644825383371399543763685492240627363577899571418742316979940137501474897847817604481132506174359993380147137326022474367392541570184185487811582047294914419393840091049951224860212822509032061210173089753404388597261695446703618513971569683734719975833272123571957173462121411790532033062697392108012131958856362890348157716286181271921658781620427893693833026783119601861610787433995839712245008781181142950118026873264502749639340287434729561339238734789067207012224156462676887348434694599266005467623937866466151642882713182415148900127432154232593065221974126576731292073288826166051933321898337482031723361377141708378168871988204828251173511301142892777332714046405093584699343404880845348800968153807105182558349060562569523316498379298631434402664202923265578422694778458067879312770810898890142967770434541197633792434350945982622028739973708217459800612109923265615003773720304956798468524553702598816762078950687941738016890129895165373898297323146870289912867787311640437756014911374190798240280524911250215515765054759956221204635125412124815534622131474552973525756985471091318704242296374202144967017897105228748969627951401370369579968135055204064623765245777748712368920933716159447977984052916608531855344783303330786837407126406362443818048802734471115867758206178958279349746146208392760279757816014027692580285528985052619600020475267339289635286319232439265463550125926099771509092871193827773654836809091023255950925009111056459059954388867923999526956888640869914969966957933426009399125422286866603748656987870698636515980031066816053622512929127309729658855312526179274010992268921679520277216320787062515510566427248574728884786206616777214441001400765295252386987979308408901255707567398598438737313306113327579828197838451515628408209902909783987430138772334970597273382202963271465060508101534435276332906409222161112311632952250463608335551532789964632395101662525667025476832368199680179269919592732150922258582501971338123730571294872225446640723467639899688138078598181520803187999184217790008899040609643889026342047249819726640964348738537412972392589314412022528530783556231245030182313651708442479367061774901183458760339425589438282190306682373704806850742360933556454318580861701782798885653101722362247302785509223704603048862973543949295947637481477631244276083046264985623622161266636993795226782684719261525836174010667599502541731134606859248406667074677889060690675553410003581497938935745452234278334460896430483309524000514387102248212393386932067975851832625334302853850567585447008405985932767794334923229100664660790842768979725277038537090193337576098786411294755439776186853693672878499476922297594456988621067834574897186611454034679778147496926278565376777950644450697919264524936006379957733538414472028687372200396423843552504076657337428063696772828846593933348665934539152127843096852413665768223299272780479250043293322872560978313567754335047284206121350856443548020553536584649227924748488212666115498219505907158078853993648036031607875929018319522769931331854880856233687285329699813615164543329677490816231548016505185974491579602316994506961813232062514970208271897481002984659887836377695373687123499787158051984666868137467407038611073143764294899960498095346805488358786627154518241862181677639697748187222713514110855520198611468778421917115749078246928442287482335037882665673852599312768089926835950760967114483668283182626070311411913029666818994469610473169456749734751887282009867504590499342291936064632558743822668170906224807204692356990478761565297893956317001681486491580189464811677772551198162878500890000563626200828258132587286683579397078907315938277888779314571396974307558971244609045223252535084121529170931412355675816362261406601315579683647486380678353779222293979184607409761491001694037399325703433499514545777399716398778804105267323930215206075929092651128263595439552099718026842297563502373470431167560436855679138745385101227002215000072843761442158490958502438903515069520245358715760782017051362938824351376277644441779754769166949216602318163920845365707633777047667231268198518860874041960982799905976913456081470069617214886160074061382551377315357657199610529568042233563936514883301104223267050742193784868495454142303783502046499246261367592940644331994297172236317710655768905316783933723875809495753033335631993132555276311892220504642376037129245997425951599000640659308188756355217536650729001331887160783839339397708088681643941109631098797829599695661334385753932939181091837851893015532291425367920486688272014180598610019793399645577927347958571323109661565699850377581637241075608766600449461843767498111213212273473224978160833381901856065424586269974920720222907430254432263205551763909457824630316087739000727011252470101785034340296197405274194184480499652942582067388040160208917896728487066962136961583104002934178855789279621042507871987392336054747088003667663211743444778683107021096480908000298797655301999613936120465011896100431480140402899521417985457126863227284859500610491973353391227217762971054519332727658994369482232639827317576784621205343815871896025114000438757840274370946035032184920283456439945203259726913991243512940378636859901167504820346002451388521854740310705390037045538160609250182699366464334198126360936309115440902134016410561017795568583599279447000242908786306925692819420664192548251513844518769801599534238279208776487004776017747943749876064780141518341637692517949784784022811619289784493880927485489414991439637104134662190171059396263558302155548347178008551523375050474547019042037836994873089368830519971319248716905323933249342106554942778172241867109153552153383707311333786097675271336627455188674742468602022790249291758452872275749085274813150375326878257667940010689432429558585834862769159694897623874141847196955118119466903667870516787750601540532361711499319124395285268292292286447277300435511818251850824202670538216093677801288454059222923379958878613801057441112693214977667332407539324198893785372291280448765159645138184221708611475720313951609800753967958273103857949260720557171041940645267354602772785537456371960139403141063296480457298888174293225820088724601902578983674478783532083472446170975969665932795411821519780438920217740142128166047037305810487547759316228185910819443725586388527907660481095829065119996386178064290409259599719492392955446872759874407639042585668665540524451002574213692781733398648247473199375531290473361513850712960937163353178942545427200838634818106868093217185287854756281291468332513835408689640162327533371304090253413902449831617840803987620092094657512653889798711388513294137000694253290107393216811354224564759334756890162676781748880681989943428336451212230034736612992595459386287314543224580913754310717533642185444313982662788566746644859819163158743646372477718964407157218425951352149700284826309983541298091786015269015511313440616202271596207745406173594220300289846323785747066447172050812293805958644916478805805073022338408407598410370044903598528042945545456190394819459052373863347807018368468668097057982090241516381542432947840376600125427185720529036057099679031057513724129093939078887276865666111937860381982352336978088953048480844077802778546984200059669252452139293036593646737146324055091480715843785810255870197934992428932052473030170890114186355266136854133764058963806908309139076407434224966989037887354494414957627091423273549410774003694919809880203651455927875278717608611009229469295836409936899906330532693938029199727740627656653120665889289236283638979547447139863880605390762997203876147836118186641850128691602559453134026607588073299843122314292121048423416055021182894006050088856992349764113257984833985072394946494441160459707711170492262444593558351481584655526511128430343744064216621096600842240243605018060450605655276135028169749365285849193867215886018143648559051050697121016137460598726665953772931024822063849996638222280779255473062663269679105215242846446599404487584310957001211779251626803798502985470095689893129961085235115564785238369577562821334396759781399801459300179671882964993892434955775871516856668892063182245995868552624001247648302189707652515246605360413019480501122363723334414094294683133522360543146648310668765059420340293468890754741372867732369101663838998358592596676450363848409136247370032448430016338618908375928045664885165184326675352196489295862038350780826409676538572804310034845263144018382777284816892490875031923676364844716405372595101416280742973025403820596197540604351203684442075433807773948494641530854325707049544791242605646466473413079610757570598666851124473091696751269028213196964762345732499464045731807313218450799946451193350533269065773825343125404967591626780075737100473606688988128473192270473797137613577637733301584904397745683688136284484913679392621457022329567216283881451000957886209042535306180139743148884311627091310997614135236602651553902886821770868154469399852469235581685551164288227438227500034114331844668179246518791759814792506104968908569802264647425040271781342061796299625805192522448449427581173447537388995322997707744130742390543972561159352000184662778735078069470252010944083270290828831821223722070184098425847431463700511100147311091515733662577989113736113434632149615623639603407510873067891816068619666596205402751683173253728262590476005776871094314202803061895561977258858042541263852306486526682527203109083445614086291729475544778580376231463769803667195418157868383945925541180621297685425972578877604877438459870914735116018738753693619900455213248983823529493888943149117271687057955067416319353706450796435419442446169725097882789952081613457601167892248949646272972437996266950311023679210790383081788928064653029318783446581543223753904089226134273598836668190879203268037906748042239166992391296182664736844639278496868971500095889994151029148141821443301508530927518511617326583449840879860931570243549630042325906545905256756218333589183095915952572153837398795118449563897134098948037755016660828195201324139399523259794844382545119592420864290999529828658613619931346596347677108095524036520076219077769362541384845996265328484280430706373735430061884025827727028783120104101590107186502975732674474427202983073481077068751310984737867432037466987303319333008749191772746034115458129116512223611114866002433500686749026710535914374740653826088703840882595822507898652733654362849414662339849502066370524531776366136406729670483656415398354479810465400707677084964226395454227928113153623610455533892602406302408837990110409864535645391737213093794611350642268876056429204043978586677561298328166541951692044178072612257993577322616428179806415122812471404099919465865909062036834249320210169767909755507357350494282038705109519794850790581247842109654262409072099082917121058212040620456965912623971063067476009135730298243449697424573782730393877448399746659386836501644397131438974790848331899340373936831752145098888074317158976710550122045077722466006582346870593720697195841612491608926550393987721186044796842890857743484624590529529081724319545162302374695882641335106891532944380997832614671866007431726100441514955135158280148499998483076168143932578951757709598770925725586457370784328442395549854405078586892363922634486900980140247811091747327759765192134839045899601823976265269822180601748222520314799378033737019977574450227037142498659733126838275029754096898231504392480449798956667466082239376547766434221204561051465342749529448649485580809603973202048550312337706243637721738612271060902409751969151502334760019191000003089899649907782310740921127809245504030774816770809230780317898122464493741899654929165172216372871783179266631112586234574765565021732886227352080279817240051167208693615771412635387773197308017251465948839000556548287949806735702361957981170239037719521684236535075151780835670000835778142095098582524541389925132132326057916854641508527743532779737635735007944747323145771038291526569629332051065674446581846387011140614274951557913563884940739508585778994727278937463917430625869128904022874432656176372382563868623456568378856263025095634108067398650062864551333047263317948857490437717373546594257419002012671764478138390057013823531154041369456679167251067319286344495907384152923309515237282912747956972629133145088874858075119015547240793339757996378573466733808960958735747047985805217567942264657801831516850432711200999729522076027668943024819299052065744940270803223336909061885182891143907147937665019782664365801276378327286668163054515427815907111428396647465424179336086258323034654050424319687971194372828278744245098683145079019128374372369266031245320404979059811649466874541420911422564955581895062853118166708390558179752118838705160948219090067399063146069757415636414723276939818840971347640096448477831239267435204285376791480479799901725967325853716522541990673789023036547349088683386189919936882914646763710767974248850395272269642701387070871019065524923766692051086873783647294827608612673215366480977852179878137935956902389516291846947900382496600910961829633715289842865517834746599878080384536865403598997516408131987416696230223368484036783026954221789841715003280199464033563716332067418594251774077714651752532660230125907149808222979348868621157299533835571779923291385235391456953818638127558964876355543735476959610746820912642958968622515816963063736086886029873169605184568554003429981434746071054010490928655918113780537297133079554606529091666607175624146197066235244087767583588098444822474469433666305257606549885622286900699458215884371362119411707204552652125952369978993341103037387996489170441101431384071185748155209688969224874514358016634863204984913792668328662920612281801555457447948788854475926952004865587342616265367581865635517969019361551635833942926583383363856836395461275950463407109480060272807541154620261737920963000866145189889955177807805099765988441057046084936996204243355015653848747038058611681483235809188080689268356664487998673511550722746701688740688664958801452703219236138284422085694175183003249656882422384642494094310455992612219566899619488704625632683516076032418569171869053350903939635664769697348228969524685349980314121623381841346446379657792132240997833890273122820271341846728774051011658520288566370515204525711392781856375881542105370249773377781395764344274724028183374795570690555120311845592434193784920993785160873000939000804128291893825175869819676494806770084937978789850088952429175193102883920022806503120254636783139742826378814276403456955187507883108600493864758627803565629561240620160253245794047397278123902682653750954792379237775530061549465705255306502354086883760987178553760957805815885793471605299632854093757931159088095999062803780353028955650910300550242620135895136070804836387912818450119630812396633388325641328105986642563172478060581716573718656433694639425532219654630136563574649289146846013779171357181467185093952712443465465495252056959677773915244118594023956829009856013246426977119768026621263156259102025325180888372808835085230893466236875863136698825011913804460739391801302022671384656892999312593529433313805892255457620408309600222115152287927915056149394289693027979662313869176732672103770449977751003624926468506200715298135566693003874174615252402172815399809762966596458578761451949788097500570588215118911271093660887558728659186720911318515332534183551708906162947614970173860581421776092518354743202864259316140380576968451844479181483208374035182245038806239650599751737200787808103613533437241532006692482666332054738377740703084908406085469618508044223518450900297744327690868947104927510325379795763694149551932227679421831203639426795520830277620248982565974677103072793480995798887887203249802251362195170896294405677964387845481862499468185176177529622554313662468608755603266613002739573110558301418682074589609496905818944000176819910302874323864346193812287019252830552477972317550728465120792430036507301314548075249866445686378352365991781097822522273652159221180150884836479252686042944467107259177212044601087376376218174675549275553416255396506485576506099707416112297668129862350693143590015227054404881038558379230832001472065369864932303560878756125426249784906924533653144632721432415586162484950351360871919735385566778017001795873511700352322757307966641380909357218721572741342894985250870156713638582341269649031144195067244779190744644636115786779638453387814257013989902762818924220890267491489000745280397151218068243980173548831392191503329449784088909197001918572888402769525552312971201795477246335973657355088245613585696044604110462392852487548679429607428599119045064063151790728912145391087579198969876377730502988345103884878331060884433332086748428064974420635454010176177261105206004902280849522925048761769739722814163166451448946432802839355778780853942713523190640750724424553666057503376823829750058521112484863216358801647132190359487220718717856646168973156162218070777297663519571841591793019065667126565918012579982151722843259346803768848982434998245443754229810650830952032399175385694636021890102013195914563403910762708644454244116553126804213029817517594969377731124078231045653606051137637145067107861234482709600873293900052545237465617699330834222748735342565106127598653510711612269112580015636313830792093393054726806711105730852454144686090453662788892830802710913738516307025415765384647527877888352875630139747339056962530356236605594607325893544713481191399489647664626500707048318328551109897248685667111603781699739385644240401847998457316945485025937825883735433373814724719311848707399353132882386913534607898929613610648788086965978703939768253040820376921839210682598733662477389199069180858198029904873022955539343773846166406850789195967530003335447284358744203691253216792544223986757397108312345419970503291788367621473126311722278798106402855990166725297732708325393830061713265723952184963507816755515662880788737244108482786802757419836293795583832747932957547637590547844775968702061836591059379326045158976312481383966630291746009441798944945408727577025871955028599063163698066589507443368088810593103837988642108193547930190934524078013360806540554485577923783129536958911740617973656353917902400963034986869703094441093850910828967480542756715817791182312676686649271876396494529043460222442036289748056212220867167685770301864070756943100072612657394918166289506484863214400405610973648108684137681712449821298714342194970915479985807103004817785271846908694108512585158325384870800205004882044786079282940958752529120504141423991323269685423392124435578739070833428484056313261873256443767633540667501009131360844229548288692349306281207352743675508781513035252143951054307272296333164430115568406137514857090339604780860166971057554634160177325491707664875480859988480305836096954290258485772144239035118783414404639958281953672889947767661112670534057177398526666769025165853913088095903218944925012199653556381500841487206313081150712046672843514114291528753142478719506225530225226844871129011001327409767794342193261598418418073192828233419585584749806991978512397345132981415848546266097773413531040040850315666583837014685361445206297340014361959555205922003894112319786225561802630791618158884764650765954627459304257465194575911742535106483064161377433873971005788936544847949290262548487765559156529741099399682165242168447456745798227294503173715944889883414138677281745071830286406258036367148874994510793284371028682848540255206131832532725235227080666329759667596478904025812133827912076870517067134043759871265726225128519487665305419883450399186673079405633967897960065364989005138580428174406490301622319763342266525547878408467651518179877000484886766017049639442947607067788694874313309599460479347626556056166942969501777179405644206530306437047309471813156334465452821090413467321662275642670612748108616829072628062492358397028348933697083135629968957131073500533158033531435302820878440326452237673335403604701383239379998176893450425252899908587604238192209386061105090848140930881478899794385793014443110118642796413176430939402610813509903382249838949149879667697016336055339415292369847271351633538829921857848663293750724166108047198610252230003241037691651296341618747709430627961876173069195819089002417673008383972905466432106323649250926663801622478809129152949414864909644168397003272237550208480348470059491981334505074995923227517563954751718269166688325427665271759311274625065472039665975048435355170280340300491814730129817046760549827015965731865662622038406227665940502184775810923747871447199785575186996364013935914664490312462932555948832242748518274920124119173225306007106627449045726901093789433836444541649913529984557232591946815105178114698061692145915469407490793895895098253502659909923874532476557588444732717351540258740398581098182931210885144099818496204190309403143497894294198691594284540377823356563116407097372562783918542776321575497531623346498575934913600813548779387721268634753408067878334635678767766766019916941850952704873012585672818660218050042866620896830883824880996341564590502320574528235012860873870466988993208017573623895987942364147004276884570140888310896324148012908907527000251776084208455400836379564450052822542944926918538902144247866128911550748994655246696674683780547633305340686563705968070496635068275747647586964967734572934264605138080018964239898963425552601211188216168929599968232578837130752010682379962993131458673932193022967833963192123521147540480519301576792829803206754904386011153318731326223428017764485709126127362442134542318738439744663973836280132198663910666183587916476198364433052461703543264785355445480893276256920669362523531240724647258374805342186998762663825505238255087120694810866924317954647457433527199917778979351614007253778186141862115187035534890134388484642948442682099014064507878230716271408687053058007979566553452584971664584256916521918211531484869904952691575171779086862795618300691357522583931091191391992851805101267858123155975687077101582682189181462068667412767442092969790099577900235114907288457073844027360790233472718293610923257771223884469653595492190921360684707271386480351886886106626331102021524007378810501307958970172428820166472659941770346065063799221863241576340617411180590765345285314480533614621030766561842397063661712880163918400755725061115118054904030377080149222371652184419597907360564854989544586444774428135170049352692117364363499740397911624153079058409150970759881253300979187770136567105588351635791183692179553715529687819938399216040907085474804349552395935265341268875916762845569563678617803802054133288908868026451124568082712483395132743265363263348025477282574261383648206493723737517908891565427558892847653652923666778064585348227055959820645187481451324031747271152631257251422123660332892826695267261230814022022680468126414736531708550574185244367013382182561239839941840206175187861798694278376856461308435433763968228705328695859040631630737333320629119895520510322400656561141931186940223768503625083674155615260104782751113263293558629387738205949596844815852598864506040274336776359548346882510908806754052146155411405355669412095880402644782391479426703826697247159541314054393969357818182384580321568465493917991378488481891365208568315143497246075626154489423101051756294689460128996676434911740289059357579399561205080567946985127185024693615938358164833108145736504293698519442283042730445185851547593870085838802657604547642834418919458208126602183204180075369155192556428917494260414094891884394257363698791695280044615634642900704312352531046515469117749135701335366128369489336776752770923172972175653024428519997732062074984306870274654240080933276227673681854430086973556953896634569373454199351446405824834875372301072634243300247478569454027674090272947881962462030459169694869695513760610231965818112118111213087608724187495405191137552831374138948955385377482189343414052216647652164603609441243671290942187845436016926299658398918341836928213253355888188612946620912271532993564299688385700703427304235470174172625269384638012854839594135703277305635056301117749561065736159014447090405040365603503162933911544163177304668449980234783811152702155176784117056301836946206555621139318940993014462960968283391402000706783436518585146132467449585684018472175114647945570666991718267842696505839678276856746574869660926240844307483822721657774134973510819304537207675138533275045622506899678846543856011950597180195782681477165536960227589444311585598276438978066426404109675435950963790972348068805074943146925183953706646228846329515114001122772411856915275600489069062078591204725254648673642385510760472626493084669048825887104671755815855913073343850281397628011240812994065050932255306259325108483456553676237227569711540330911241673762654507339600094330419653149580034023818721048933483780127270516946812674024815029300239639364158818401118543161920228831006712354235481658777702259088733537247121563719545417264997221242041593727277042073776909058202891879861994150658654244353031318905732944899448932551808679957861966913941113133808702752798820411246102089320346107461026709708544635458918044912762362249547869244689466239905665372700463580831382287388096441258860319376012949157645048592204533111811076956699648770720495082639007412339668431966421619907353735690459728003946956550740677263699666666750952354570569567780978143937605454461081120910850631459079049847411550044413747031628574534575586503592602413184275152856605207587443271411954997981157722547457045093984383901742049740029384202594856700127631930086189110675915475206679837875755492427767095616774194602616640655599310586880917025920901716444383692094981335043004607199999996808410043724314671217348631939766195942929187624710135863706975343377789725208541972993825354471946005122132216379873583314165933278919138361995157738075818269605502020107953335071470540168779649240635248150827873619508056541688550645673546969777944640501877247118294833524061304646042995125422981741974909582671605303803506060565675722997543651480462471818716124970172570533658045358828334283257654267517085873811829570278901617185317301114265874023827719567819359862281461249028407927806666634039356737147981719806955884575002196497605028621975530195155502752869641054580451567030971312272980241347573059111956429643678682164411671157226707424132956667260900977731470917064452410135599525790536604330936649268174519260812258162684443623363131170158136382249367377282317443781736610392147783697827925226041925648381106074726657700092308000142650784619283937680404331954706044789484441607907984229884537705694355421326801758427325219572713218405213398011294622642886632483450798303672486101433243327478246816348583284393477855049004620459738073301282178432256629075883002291975299155987449463782171287210202679626941038428607257117962731742924085442938249236444901100757823414948238756864055653571303818993875306122230278420867878963317119613006036573441513178869075524718454951274183380074739415739247512306625240994409407720610019651391773147315193498334095065009338841752929284214716705316061062749286698983929339418112103670279280049889786839961640617944141870809621679790189527755916974550055213847482188854252984706962779989152268461665456494893128719673525535131208058013870740958982214940542042602152411278745217398693811337711588112271375199309687005607698883401792279674744787628914990560085993527417158680640160732238968350262286704030510846695691650485888552058801495019035704366385952271736344907110861610608410384959500982212710465291531968734059679533775890115972861947487703236145028317905568784965763790583623540046054137205814249431121539320457010044152429773223702572117419128949243634306216354455124607226999097095598178030997131819123901948131113359595931786800504246890640380781884822375210893832012519151543669750575163460408512982944212946329904895223249216015461784974916158541152198451318446663928025150847519445495502050707506323143510457525978518289438049154999544925956705289792129514545095426973505165784020809128379577597739802531465700107926063169683301572735833227989470386061422829599368637481041365786043836156146581203589115407865124182920884536935841619103869921104042954753676929427336573964975147577610517165423947530811223202440796135482983895479005935250402876497287113877869422162208979223363593642442664432558272798243205562885290236093707206384200475233230498754534082804506572713857219708029092388610691760154677976968313110749614368330397962705370087653367742368270214148207734556667418579652006616343209723064789723496630766489218849097476862135240941594111358105439003753913835867586928045929598873268601737598967468325614401243400667973634716845994873141513053644043777603832626767084158939659458601321760563070484285624690805432033889668488027749590354919940831570032245140848393437822268520003733906940769311389245719396937755531808111500035572541605417804991116446162479687050668678809140440387773619896597988610310724412826043569410150050642153595196956044897778356353520985825383611974765736042185425445339515024757084176383294862105148188590853936184781118572667962885356777717243121320763231034079461286155294834119759943078877559334233953818305622068879685324785352746596622785270189648019051758435149406980429069792658058118163199885647087042204333920808730111522153091134686850119928337331770220287820924820302848692097460401851974407068944060376651227265425498081148295500806631224904740651437200770262705818973245010765967177411271764395797092704684573622739021395672900012327471746715982499424088482791935853539628867062299037573201187178968097708316296026939000621286262767233208053465341420584628139482768819095197138835582015141850947549762914311483225903719498634933429860888621812240865832413691734613294353043047041983746040391324002116582859353492886214611632111801056096521083410435987248917046898242281743004141083508557307195737908796903495074436979051082496829234325572166418158797776236028671889618313439707962777449511853490946080506642029562777262469976211979628191690705863038387891371838089532493883294739057517566154806839431178782705597622271626813743473446765154297961021126083054469294237668113450795971474619899215497131130609834852988515012930746006501000089610419943343800713957486104434615204227103890062340021698124531032449661122374287097120350415241825523728671497574891193999652919077296188213979954370565870341454919919412506678756755723709015292707828665392359765509057880127548884454377552582169899969730035968517270018205452035404128771394117708010071869755059398579212509370727887591017400491025362548410956258176853226688489363773155557227834069917373610207796180128580491314238487733983332184775784331396781287210765911664367167255690604491153746000836343075952891574551202475857945661394858562194222400708137574689980313891522733764196970146116942826137536248576210174800277841124125351481665878680803758037906418625058878887689645160029732672256605047787789375300324426303973894543944425526334950874254831312640576896477875216587591487746937955432944881545671504827887091397695672705501417262733880304849068285023691832326889812322545246145001032443097098254902487298169262667926782859597122574142525341846258779998795582148082900155047708511131830151499626293018447355601628065345272685593948542338177041140425935385242788951435612760606709073616199305686278199780796969340304670064689988643801397080950059846619543041419802226971156994313796510590081453234531324463340912215071334473850612453875325177730655914617148313832139321344001704413416434273974083613428198097346576603984791036675292140482912482094644196502430221705146947039756692702761194519630673231088785758950415248102428051846547319923310981280623942555077728143223397170748316413891562343639126428843472488598738804742327811922134474670616803769304582576547619262931264682943416253800849114904684503538786231528708801172357198566151249489892617388616218667895998214173855866882033621689680051987519256534676422033103938580168631879190616179612925285605405620260577614314822630091923956911803367231005503178054875578715073776710421565845694655802707577279508016914778763176658399378162091185224513258658119663516579189976671834128803015053920321329431050737312655886575055112144690934663019115056130970801331195741275354619630314756916780205774497133803748526013579400509432072720027819575662092694350327888706822647704016426814635217473659413212353614750554848027404196757610573260291418349992075661757902452217231097024984321210656687573553714766316768886969332466280686826813753366743547684013961477156546999554426655218244529618001396787801954441040379642375468188142309745692638450168512653259347619481862048855983569419051712250644994134252317100972746948108823647389522711436705811707792167829421872626607180830512482337794822761735453815976313640041419460923962668785799768886678761262645108538928607649024869785347063135854217878485053642999851515611650449884761073571799469312701197823534587865374651412888186378487260525754991179751847773427823635334097227472809731298333016339399149840948767900833444962114025799487034768469906241104898753806548885616922029546121034790026546471571538776304482013588124843572877939336942932252595737959371293635269974300046875088745153094247556963114918276725460943105658057064436983752805722956440612356151976094741267321662480474058738056517258109791192357910977695591767825902956774934560848248469870147587643549125620943310634844602303453896575383001012427839284400181333907728366386769490844816235923862986922707556882435821362561172011336232269638934879319406292429554406586820992875818910163529393604099884115991577644325806653812269550606638738746785489857758385841695573308319499017768415571839607834098641636889748131441978538048765184380917549219537037609182443253916949424562912338572172390645537849534330815154873068918351269572182530852932437845668693431330754031774715840704858790205687930527062015118195493690917605454428156732258236630775090083372580884264054971782049699629642566191769679336304999723637887170140363894921212147337379855640173832574723723758285716120517938221966694483791338648002965174785322455736390739169144808248964922465964361288730072735213483037531771226085987491432452913071692642731954675653542780614100937520121466241994038019095678987882386462970060753032416645918907197424375454206355415875169503666000346716007287094944043202572626154407351156929691937712715569624152908905005696850821706170494561950249246300371954979119451194542918064195455739202732011690164719870160939541700490577225526856632213542173929140873275747462598390909933614172672515281807583799243177949952197726990328430676240011801333664074450832042552858153889275182928466701012096498724313140376372723948804199444538501241091495491766384145771089334835932667782762752710054303812036425236917783737451632719774842269341469112145583949624954338895482930642052494653545576452159098292390993535953362428770534322527711054202614761067498160156023197113456190155873194307654474961759673689381507366775583212512293755638627381569089896340314506960777397952688392499501596379886183565741629557933997322043758506463849136307717443778988875593839368395155798627929227798055152980946323286525282627717364694541396361686855960476607415712226426178134085644007501617320788279497459895649105811670131049380654154688424636808021620048478268812340896568709806903051820865322517949032423451687256823000573078900057504244137709667234202306756977154387305094630406900885926743127374391235162438150842555479369932223681584041670850753538949210446815809022907265065759154671010949152758712156097861723511466090288829990365389429471552105347691025611003637332314354366722033360262177480390663574063898581736501510937829129060642824334895082071641709896487289616919370246486335752028288367980863315908320631192989318530686095030250975265861983256306414836260909049164032470591148606717443134098304231419409517202221371510043647551158759388978469696798018279099280051168045779959188059231597795603657517459763487918544484955407436063185702998162624345207711503098983564343037326547738153436083630453711184392297908815873426888692721334804760985053694123949802352547970053080076963910142138426447335854885182881970723767669323192990953125312187557047798279682180587366109015299343436615175533848531305871250860332785138329974415750963488565029430779722550821970125387952283334807962678338200440157154638879656101670981276010811834240044503830333100881712012647052940342683288793991210815950149012566684533104891593514985821829458703283646486735009944740075349710737471545792602147486166651545922066238492387770295499545102435466930899317673326327241574761150848099696403782503252816594526195410932934741232821977841911710413080722903567027539806670305344572444632729787033742407273329888877652072457965623895479718261322232044404320365962335961017798996766072562788135118651127268958217737260535527143929177141526809933720588380591786166229190983717617129831350878430226032209013862926880048752258757716863531425101707056731936464795660663509035488692120951993821472409844077083041393843399763338000609370192999295274534817551049768722831489072994494928418729256408117570052431818219637956146546723381196653517290953186044199957586500689648248883478816280178649400796788930032074781676005355445732561945186587059571937762840142281691650855188407760251303329942298305510124427849500240643321031846652133846826383205074509944083112399323273850607244200417000128226115232814375757812967816447060858939347535376811661382220956017681071690156415643929025049970526474342069804301874812753975527409034750862093407629330034026185673848851452131879535670246191218807696298837567502185736886730779645754998303908670401060299261849846574220587091958914620416350932969103680821834902207134309077518598086524630319692341541519766177834628237558842764800874574824966281518383192218826496469951581300848856431453617916387987583551140975583458217311053375894951019260337593011021502873578461026045425632291216745685795177664551147114273183512882492972188304943676799415318578967043110717895829452287556531457969682074072348717047643741201945808298297563727733843160729202681252243265092044941212368079090970728477211500454443796912982439349919920145817281215663278223519373909589253170157249733047843182541583984265080876781253644517441632644855622337440419508816991787588307990099474451842651456649258166925588094974183257756089866675580453384173779786369348447555667726042324349243691521506245550557522334096912266014233587050101025933323537430401364642912850489401766218280606189492438951076601772001899467537409559233071831967945706638550225661475189811580348974986671830521478303198701642193042720545532960050426680517993818830934564189728804216440730668838486344237861089836818836003712136882141140189086016834642410185826637106220246030340770477084622640018243555359896427923056610753971582825224677000962972505296926637924758672445385204181142530724404477227474158186849589497069266153792549577607151351069430956416168894917355642553127796366564737958612801945419584454288811019046387172417183426472098992699516180148856614694298004297727070947912935963431542236045564184775203281765012068637557215342384496708402395607140073985691463232887318869718512655728606810237996505815034544524060584417642321667287225546573028032713826459555076576676725145028483910350406911522266589316509219713589766364554457816727328167374691725695026128007981746790136389450814798152373537698007702389589473704065146429752674587475970679366448780709776267284894572453645129704568668202283188538960988413282518468104945370314405838122151174069639340801048746809890073172892488444136435263689713544507045786421072929359473544349376396321945381691473853655944280895894394324633656556476252577720522632766910342402583560469855188961402306129298848712505305420114520409881659185176465222767818674347444702460102013432498873295323482564150647889248980581150660126768491076370607758437360839972913103565378640517859619961001341482162558984502866428691193402243991054440977947502345794235214596964114877612123347746149867781991766618583721899867523084311677432530526519781135886525151405406986168958263928945251667281819512078223486905384801232178958776902826341980647133541322340063424838441666252007274225854131875657116226473593349516210925517171802103116542695934869958287456899054893560530382341122561574446829797568627899702251028429780386529778910458823090193953255971050007320697841330170670855574761565611283022421094642075190396132901875075740564570039269294458276608041868128978364312168454593397489794974494252765580363498070601096953085138098175572348534850513844827861909709133326477678529841198511331248097130165373166799071172737600095073210409496900132901074870099538298794000390956640155620289696984441385521157106791106321655891005512540259445918876193645590352827311277955702055506220311042904079044127715442169856079066755704710773304225686372524160044142644499081514284527156428432845204344074027586575426625234812285688495735770148613973098728926445474644506841129873451870137066088511078167780332119368246331248485997296950711454037480444991899358184360511198527977898809267874571304826671064227062830613134422572953268345378210122506466168833758300733920048500291748113007255180066980135673219214889687588727035133284129252379368146441475337726494553375934834995437288973314542988507594665168805454645686600022956777484185346115661358080101957966203148584553363212849950724059690374770142427146378540174009323859556607476054944955985504580963689877920217171496590432308502271543372202055747028038968319061249123038568394879598419760556040586865206272276924290525967776521074936243392565285540163944474901744906520791512198572208535021938160664462145972775049282491232994721192456867307052926816547452997070891559196782096120810015529437284275177387688904299981449753840946560781657732156025146674292968209096660290170149148616124085171996914572073892042463905032689219372427930932210662365014556599555836776888361083639216149266401898704849217633497858740548088341580350807291480981817306881912496720308912478465937073743468539755960752959093198588031037662754287008995727747112720571760411824474391858802594966564236065736124718227717520133608836714984294555465955599178618823701008911179394459838723473415755822971952288459652900048932058702631466141631317529867350296206925805833999499127619315083719736965227429535358134348964256354754120385021863292992370611942891308843640689410973109655730912616916122304757306994642305538200234396190309765820879205635100039920546861635227048249012188446746771919869872558378405320257808602666844443869887003670919066566269568439833789015603764483785397264147655244102816549170677653641665162077866290877860750660512130006264954733898971118926679572726540256062350362548057488307006498415475945882565648548148380036658148643499958733470335147583468670071518996817623490246871677633892223235590165817504913548016939911827557702588705867533103504000083407127791044992816074555179213002951834648587156665238938288080163392126886923880111861571273953462747965814109066417310708614285822492622664664748262518712352280412732152144085882689704986204923816978487573710358713254521970299429679719570677784653515307515921008043594757889461124678276094642899954685630236926203990525998669003958659016074176078524650913042186240438658173293112606234964130570613545320004418675769683300972807686322723011573785629506518819172145695303121910723117800724538152685284210518151638900883745324115721849676388260687792438059056097758520355929149919495964920897451106810268015702985347885161981417048715166830562573813032344206981855063346182467791542188027679219460566176989179125198043593493847248639657923607837126788980584607367508450211935175329619122146745671878525292949471366310909161759900041983787515202080696098146541880184738804853529076915202339767763707795389856731359082896359325426063693037200592168312437786235259210509524351664604672465798928946124474492194140150096872592060212692764302544491903216206223989748840488974133497980580391766188013082875196425289136961727793746071393708632944888369286080462355505767585946407524374177071527882466348942722706316949894427566705907718214394021957074989450506262798068152628688854700399383891854229842642741384456312822672478656757475336132506788370152227271812707890446138790092232331452713198587225018571350142482135826859249295176366761995717913842073896147435106288940377713583553992935106884332307818381649217305828113035837310603539456684497470144220231694028054246232792001100243557882955645234519885900771829584106361475539737428729007588065264440715266202029314572275611202612999742832292435954703996114030303184893985145231224624153795926874524118073168771410568774881389671389565898022486827096106922858228665854229935251319530552132206937626757073987945187040211613081609026555859318727506325582019619363383562939541770778254754956854573426238009026646695685639669331288090185829694768876570960165595495900288846309105739978348480931759591543337856101096258648118731324528227754728064407740220118394984156700796254364856599129964204602551921094426370985327745559935599482088679207161369415893329164691238467699269678508437477715585521679810019265360703843287445874215564643101803787956046344715922035459555457468573517018160054437277582383654935981652067180140139507889874964696909610264114378700604927817654494924964431109191567947082041386172592893007732566448487062714069337993922726178910714715965412102013749288719747909582293731719521722285099614467450865568985513110043316412886143114533095764380770909188488533387697580434058409665831611478251201852078147173193627519214759945478119762861600655357642334056554434802638049142550809222969157353182811490477821367042006009934363293575916402646842315359009408241268145152539728046103092546119856383789342616035033818031924157167504361457776003203295484859347866950448597320905370951290969571829600942593562074739262622183521249809220467181291491123726910419209977855958750151875098353004770208900712625721723913982266077618361347875269241147872125912282817538653159037785065494557996998324181258677256349251217566112048133905009423724648247385355165443845049381074632176146821134266868944484998978368373092411829888764992867719632600050064173087013750598719811373558440267250923645288805418752359367502679252242612726233375786064239030669048907227591308886325236669943312698499097802633688163073428329693800464249093622536147132595423018050595308564882557275167625290759790520433505200073832064405012706926376022817576320122984117679912027801179060729739210752999328559111578339506464248147403793654241250546069017161254218081287929537138545819118932178418507712838976278255120067842784492339378485036765123685279499723471293100292088806808417739104472916897221915634258798920745222541768742091804501513656238434811189862579724215665854434360783570904062787546487211654419267052252547371431855054684264690749377740594874864588729899987004281256398879667608829918115708454277113493445107045171670835612477037628660924032143869689514745898785974116980905908360986805533119412400136208279823271929676850711847531881227021022404628261961497374471167698325988518164678063272705224446347142934812693672340252279396019162267540352000778443250179120098201711043032784903797377458890082153101682671503174860557132146661950157935340029814125147077012647466586216059947246961075437274076884256210472987142271120092392648246921217684422411898946138253074849893353933409294231622092159442609208814833045300443757175975235667571320110644298247827656420435338936835708452442057622487780994760804914330915408358985862555333240577002628396508722469153789367152256603906312639344855781380900484392467999596908132212935255043287847037256580307507307044927526476569714416494871942115901799363486082191042926882690404037896494652531417035443893500736726426794404619098449946380181739648310908571248624830982456681100627524302848670330145737429926657280145137254557919462107336120090184466465680602355783819326511809018124900927253684714431961246941453031725678825908234245253337273954250577681892901317382610417236504205889076933277740815614778039282129998404081280797898410023186079010535886143399955634466175633705534941218257190862594779332555631137453599697474385054036461952880490719228066420290376881346995718584211785580704279260650369188921862194488310150038104967487838420838894402807282859008947837280894057925190942630932115128076125141996281132576522009385035851271959646921234648417130080987416763516326241843192611945976150936329836571858999773359145843004173277834555305724931692597443781201133221607503746006776306728318873373331378611685247173324260627984876673417157865131229557178967771471782241617505411352030598244126381278852983903979859219284276292373160655109524878406941920687229515876735128732944245175380308772893171320349794325759358914066420340172094848574080243384052390976089398160553630971408322365085349568121588493415698057348396543614369115095787237868887828501934029734469709471206055335701965040963047082367896601411167402728714599861033042243716362806123987261545560630091284797132523608151769514317600508162879286482472881815735018580144445461602306394467565599293447038524534785162601020119927162722714282015021437047862351721529952622782416085675816039946541120781219853372308992185801122673170568834396511333611762783966042104331582830775091309153352824709346168135264252555855863010128588938236397257520069205504749718025704278070539199976156384477836277201791798298742176154729888742892977330817208617641795040117314087113394561337556901027005783428143168406540473121079039644072863940379528255850805164717236068992413801770445163893769426145550407778049700143469499954901701147337407393182169529360477760685880985589332394391361968415495230729927933357578898896872024702946139158250694172746312655969007645614929015149916831232407842787565451539119223205488048973008352319583396018063327920916787530211610239233147680050137397635753246853909360573228633645465076080176167650768708608182881177306302925331178711017812362170547026226588557742079382069441081175649165876346905974612924140652724839593940320004872970974777750204993908319317837391334156941480232029305623464383566236007092843816674974568233135373794370769382877521598679233428803884479621490472194670913440790256724256011794249112576068913042735613799988728082442970962837724542243630996204161202459362218871854608220636931898786498691194293749338768222647400736237087663500973546024107732052986047113909496388432041144204333722302509945022014810352890495600994156907029440730765384304498965455122990584098334729514693531042650214483152266498329190600359530919060997503737098713079752434639069211601023697992770366878278999363787125990442156220891168445127682611519367914943275410183074326814410950970043570502799684671809083728687851527657897042593353997640305119236673770084097403823944206252552432324210547677312063802021410340641504109011469432149267056926237057303256254615801416028742842872037380922716885790861530004508906194701271259612971852599423957588655567117072608795220851394122918787431878131245586444053320900976178952433202610829743974147808738455549622781057603498223653566559935664846111744847540662730500835679663645211142870036779313663210818977242109522695232703600329928635027528686742165482438120241700733345854361335497033730449962203277687213919502967943195686702112228602946335771542853449339241026546680329516650061176214333989676173080008142783356209129803541048285970865030310342933629985383508572157406879724222743507461665840940809399567791503891434255255285082136599215247031301291740072466850455563788278070524189129386033324462993273067869953170665048293941472144364436118702646076713962522062698814003151714571877442860597158524585816378841638980185692047813286782140939533418492935279476404934593716298263454785222454817510290044337206672905516987965327707910240889551351206968140150221204993818083678163792809836009967935905476489912990348404576679126709257066329559796533197635683223520442405282226536881411545654699529434546394590213491766071190982448523143167452763895520598823272027892038975257579609484442817725342973075239862085662704085692808836735323130963183738078173850089998523310995121013093081875727082300719461556554944633589875343568266153280246963771045203771607326210259579970792234379475854174650183035403926753568094742022674742734843928705600961279584838827487755327477074172647763975882391344195034476538145502970720454227474677018518458230117694010074598592239611621030585419574971325619937815037606178665145966396031142042094269203632372974105878233532313480659217881636130727409232370763248218428495200497395484779562553793107355018153852200014152976991170166710100496052518974192659845576986665188403296645645628093107322749904879445443870762701881343656419447388807827120749409443746420062091948278679694191477394349405243497220081198361190043129404596113876269553583386304170615904857055130806820516341265306577420230019070115768788787830964671262101096389734492885160376053533140454051100929630913648437998007896522867899744075498260346339097884601344501120503730045697491653822305329770714671798235564990486317186813321357270335211929538935248004793267049788863239898381300030753957855977968592215442324484691623905237467588075471625826290224284707937094137287544075669594911678113827648262113049144254245910623134883420528088796338650129652338717884766718715489145188931612550830762536228238124041155365629307786621703677298808944198695698708547537973822866930839751447562451596831544322547632398471944006560463889125901638804094619519386063731203433218714635595829500017601105252823557787773998913610494065066314258664502776402270956083536701872901588048146390841107107278690579860652069613993267923075997180948573254848842372297280483096235901298575090728133171574099487452913381893623180322983561189616170048146885841021401635688392496842340178993525706849766112850780525598693771444474866696677190450988664100006132147400767945226801568500433900687839130024503991099069025478710455530597667269196796945293690008315256969238731938126263117946311160941798367930077384515649212951500495995290507172233293952512380170655137111445311695036134957867329423081935596271953179319852903061491996879461802871004396984554207015914127399446560142968063960240059117041345835886768678763001569191780918250704850940289497354888948659894694119415140012961861916179483122000152993551578761305032408252206990139304467564951678084827177099839236048482113659181427867012421755269321087398403806082121846099003818319407727077149876680543062481185500128869673190968217128313604954495217241855420057780041954615018926560525575626166821736467584814167113636885610579105847700802383723418567862024711527023917696767283710815118676643420967489376990718871333209257076382838713094803583942622116220195473692519892522425022426026774000491271440790520200193002181484553289310530920558546951085628564977104911096497136999873238643860998595762622504251276214995922126679446313071294539683350645734136196101442429429329850496555060365817045769284063957656357031664817310713900374042177921142625751701494170932528061454530505776593075235916987932800556994586038643047376077387248074386033262621795338642304286515906479474279826844734063145553008024145912525777130945700778178101547650479753257499795093484130967185780052862965103232342568640262931898341470756632685128901231748005436110565070825986522619427542734162623771471138767454686380932275246034636472276984548782804680266386093719110198724881203461902541578598415835903541281376892600375107722867203281425121693092940848274036637593645164762460817180253769016070244078771154569281145145376651088828846103607170753987127600278791884447855590255306420325724575712813114061669789413073669898844161762550388963385467736468657045320612593328860202648548824197653802833278608371027527433749082660405091872591699899006766873250236206240091679243201321702268925680218830710978607155967733337681224733977313500447947922903333896283848670762097514127601256078706487641720942630606108758713772954374405965824238238017138523829781560102047647251647283569465225296441029197682266650857728065305942905678130039249936998357146701156032752949538138701863226135871181468725173503911537357370829587623032038285841732257245837898092050742084439164167031191190653719834782299227434547030877985995266733241381352601504666818799170869621348327110211549124475145045550860083896558444557871213032757048154444875040340253603196033371863280473566874276072710112130925483752456997286477367482613901126966034258165643870462636516406927204221786831288921599671458501365693190469416540487298886558308772891114930469960653787313349436622747743526904930183896169283875237602553952172267054469656979243442043009849041529396022620614567183892945899532168345956150522950307465013196222399685422012266073793557520097651749062667448721147208040119267270684477509202354634953745972781794299757559490408920572268790448964265735888069457811357766781452973586774285737514654268579377775756453694540851015639322823395398526779950279740004986535595682079997930335678076554917836051303720026640446000347735392388218348534505873194218947039428894530350685243936001256447643290116824475057309125156979200329330388794264202537097481825946328134083415136985711372674835394967975494964869559387702077293141172746259845187094214515892747023114998476191217709445026109484157553141646125080265177929455623721998100231149522100068354544435258157919269143223691239644290037764374301337657301224834365809774052115673931849127725517263684115848744152096712482834485697799025867991947730501430660097474835549203904681900895420358950608721615934617708926716035389700206519210727265601017165340244006797837376520860035099502137084222830090941463628032428306521827940455808278719828502730205255466590196965065253421141705787151154501373519127011208994553314778448508834288854580554494602924444102879886188490410318301071450681772289741193913521227753102631737278461219088592279741055889823632720623977361762357589482254133137429703569295415169503211291535506183845619840526243621363725121464126568838001984957853479462378418026795984934870889697859247439501221526707310328957228097875959394381063006427336510428778568543487251554569318235130739126783836828146608328204037063911447368030102930517389685881874070497611540386990948612189250478736087322228092866084227813702726571386706120129605365917085021796347055067535423872726789315411430505737716988451892934214464386920655997722060227978459593338062828682282188202771585332907564455588112462914347408209443450574941938702818685345555985723616550408034909928393699814067670879382941806953217504532268441221900665535712426202347401943260129203048380488478156935162659764258652277818454825596751294347322795167328599814487093240270906098526638949071359313048321407817989167720690977773463291147013585219765272439157081853768562161671433850956990175038227944857361796706613735452557064155928656191942383035659702074427665978303369159983841886380292867774635968184972891054766336678043916573775867353105542970231583241652503780593618506404852331810586129971134664952164250596513196086726642750258029908026819974166084704852551476486663625652949144035644058698004870315191716051928235437700238329501840778547059221729513507987571301599210494532973179281336746905219344471846306499434895460093924338243478008971519076207667055343721731415894932835821369991755888890039050005754565216645087734491368255800010551305143656635612806422682736599914318483000864837707535189811522352929457199418892892955226261661724337231605004688027686854209523976720087655972483495729057100705407372589919009138852240374364436227311956511560046746962009958608101664677548363233754775083128785638337955537532866585123832412726960231521762310116509024815127340651272414143100901483194763462662836397949757706149853669289259284073076683019821857532591622403351985469823793896575019823519819614489296490773497257092243298466801198657818228138869319971850526340921221041826586036905403821576369991998851503523869931845697449473793618674270901767622088099023901988355100109841679240354505716746187070442191217435074107232341525251983915564179711553837608216383968526899730544846622119216402135328448797595261868915743608231384066317199012724425151614089246596706759586488015854337085563604048187493740400665983220772503560871761917407131703390978525172407879629277096685249214625132760827916845338071012398525816269091107449680271339742713730852537353411799136553590799258944744910691240883900947341432032937669788249161833365451614508121112577615304235644240544322548854653477583473612457980467977266320716082843420499654771409343287897106814964714710501301225280260987439100914671171612677967219514584458599311992281392635983424125594479806354371307542377412682303749455025015428226457472423233758831085368005596005005683963354536332046911306015316876996131383895611462326080979493581549338943158326245506543397214458689937554652233650034812992800791112187452629645093151138261832097691468679931084354219300349081847295817972143380942387506856491621806204911080766566917048835817914909997842186739283813290902387534002701816671524962703540149519043034761161588595371710331678214037213886771049709398712450462099549745983090915705547304868393399387254193609507385424823715089505573521393067613842297181954954759867786747012068285032519586112579289881193910692017299362631721353295627882950408570178373891005798507101810380960383423587209293975414558927002054996117198895374153763672597747896186135220227231015446023211107037836110077410430041945455820895722115673104976946127561740679453197237576055660093872299607386813098929302071935450863785575207026682310397517549321427705506474217708788881705962674200341608325616618419817832647026332348758597906616717493705416956287096821772878285035988436973580129946474722306887218441781295266200701526259937186581170081501586527300479322779949855334389851671012677248512783594276847104770926774688789821123270474648945091427878257283525502194768124276912983249998142606399628670480225725154854644286096350375037347758447622044058952208788607155235529487272318375755250327097844039591755527380075444475145919336713940314140142138038211207695426801704439512962749453705862419333576500908988808788871592427616103309484535719748739012979712088964986803257054997504308419851864313099639096826988218931770349835812140599620000832841535773521589039686335652312909531452884951626836985403267413682473447888607032502971220161798186511623207414183809239649412880173454547891458068395546124850975673100001534404130267517649770595786022242304187983701390144644914405335989324492135809928650492844100718738345378156355469753210114346871459838253081987020007977099684094425198184444751518733545930892428395068059228632308026665650473275153678444076509584774276290236485379101831998731796930903441565720797687941457714166421092246412867982346594917187705777906501569329731805682514126619706240840807763218196972596220371082806910898910001894983329833438876822340684176648109286085738112834109397611133529762991505106510619285042491465337927004969686621733247177516104679071953912191116732221894651498296568476052557046992831625343936020547262665366983751873869859133236716663541588298163243813463676860231966775151460400134312435751986222501217551810207208969857659074523335976523324325317554399814931066309648391363208149280685917309421292375007837613530572697184872779709245763841117361155863309050054151698131391207056348322643759558430771582216424455889726085935981093742412375148013449133858975688332262328582538189016484518753887953926016676461567459645737594549920416258016892916513730903709061776770620087841255651482805639922854603012958278544887133134921704601311861804138587434812014832227183185919753879217369002937796717290820276414955591137649567146881271609909324129846217474619022610613359895431107472187409321424153631556802338824664684441195237246221729703512593165880630453572871399414905941328204937637020938401231101623370010295590173179261039479744628184309990954011514954086176138483425742157431610531439885576602569629054570694482975332445580896155590407043476717469072982906941265263058429209595141523737584239271571244406725873466146817563796489411247358479401710324894605804518293996439098310479765626556040427403239413743716732516671385559907330437972121349286568167428943121202559101138597825345759944634139565082651716512180936470694826804605227068798297517665414470263500922537214074712152010919793350460771202283248901659166659843826480246814525246951308982856341299053009291276094082542917991624946721617318953835604599169764148044350845055605372470162320647968700362496584925014004989724344944283728472427926837583412108616346689506096652769757502103560280719665586860665944541802752268483343355009673434515363105220743940479681141762800938089273739959597423348765597048241992989870530665492006255203790042772383254915767299924150510268314722530028634370582161976797117931861226009079210849276600579375151684027369252628174978907063083828242168458127076278941468581729693702427711806708805191728318887691840858502936615641697749105926630190832446095922269622235838785229558932271226437978238283828197463884300642721123411191107029446570199795159788690641931404647210212177844409784722262538845453426167324212417729468937546137050144224788690437502979384807384501417491990472607655933320484286839830223005483483848921044279934870426695739606563621542289124449040610656135999747330805677634896694216317013817390586779555960553394368726347647025945328457088933186090245970798572447322563204255674448012610085337749188248809205870323578739294897852924267537534737972003207741618803468826871178359310713597178919838958593843485761453198067774179484909913966945552881858726421396761173973764940326062079779605789709619787688459490896089242534163547405727849064242799947736474890279299828676013181295546189562082370322280954384323282791339910942737296018774851619969696936778829158169254790278893735918557438050019280069492083038673476431195313728964234045384089275592113916347043958300801467827725794573464407840102928016187109013256447168597784978951340119523933296663839844753295545061820180806888144365813718602204522152731237481708821688036040180973461092276727478293728694292271792439902682127459411457077550052016870964219816718822356869340931977674270947878133391937961552307718643347264690364143158487075741667156155328803959879247188729806563346503147311448289819226432701592727799557096334459885508530012161195750729218445741200384580795623919423160997748032518791963790853612145559336757669981171270848676958990382020381257592617409485170170458358602121051881505527072600214182297685976759565609023419347832676405759288653076618588136107064164754290903904905078812668328740274125735974134454879044359610602214441122192241317628713564839417106782432614625906057963499265232682254016942137504095061726127476838681252435703955092805245883105458333121198591638391670997648684928054709782670298073840360884922435615698395027285934425220231132195859021166583913184178259098642964146429202075022365926511551892377358610349830697159488850350970443092753406626184201381171549319878018255454489802787813521393872993703518431196589302911343504255837391370402499643403919707657791013952906970489974927568267555026739775496071717045495171363474792446566729083015922581205061387122877018420941475336541320255104882937377044303638610882120592940697472616374260215589218336498786172781324865902842317561530251164180000283736871518801458183710254555627462050955936708667996897862393165817576281053262463700426716651191421437964423992492422477977172556348773302096150880480419284373732284066189791636859672948823963327741496462456671797736816227477696157828434210188283309882661280704716648707988984773797799354153423149367960187262981630294654716151272308227589006411865247548986324655350491944438502837818973380538897934306800082438802506422942209645965470664410821146125605539390018467108837726684104115634066308673282373350968568605239771437167590225622802398900918966326942045567255055153715918390968725869236009560782130532126968175490137969643368920249354687709861297823591288461168843910839517271339113887528249124595926831833363282449161542514253186183640171511116459389386564065035379150903297160227752250780376848372927612443414529250603667271990164069442718239448841716488378041542579724325794817142048454265477692969842063019614082088280963353080574213966639592600780694804244686189829929307684950600266930654575532424734592143586144921514122830207930032326976574399749882277518683037048475257938730189326181853283128731130868665328671393433898439433990430232374268941819569990679244283295208638576657480836659291903977926695871705633328755245864931012597287715186867691019369265640129538795661268749567765736736181257316387432604725983275043327364494151711918642672465621851465605016666973940300983067854515856674419075888803060404102607814172886875252594974427574020155400860447839190687678485137255669397644611450422535524354265559450166642977328757973444319326368835502071975296353298369880098855400024641269902205544374821921115571070641406372389098213930100485827145169514890189207216971629141461407090690362793908495241775569959561248623753319341703507067825768499377785095238518725744289340950830566850122493788236918334793029688260387405599160480591818449682625004418444909051868290308907947959848367006203767434789257929032078774190578316008228236386750722963363754926461741853134746158067516403465826174373678563233279423771025306156326245149401297613811574468345949602187786526758653427320285253170713791888946916674373436086682447917297517915841467845789085199033980118946927161346678111871867189739242291160247360120250236568294429301764532687315407005134349899271485482413754556838988644637477887408226938939701055690261180359379230703928931674481127966950781362883500273330273693864682228663280201842858234809136684635792463232155822408035352516624621474189203617052864031909832369126300429598128360511255987946244830187888155946457237665861160203475991413846226399469980426014640787048380052362662181979869578766999464156991328471915663653184430276837282341681855611897867676982536429647836520149810831317374275802574549818553655897230736320798706757674971620406050835930659784791142042795450391841738136876275819419305897642772739340090258437065905129940947717808505372649069532510551150716523043577985509945806221570627946826243015615025791173162909506648357818178402877212185535885259747870113826853562004676732168886311072630826724809234847431257019527816826711908833204941560454230830837095207415250150090975433170393879666442416243913158334546046861906739005237980495828600162624630973949913154686148206785078951787494687633596991418857772585384472021152086102977569543966359282044369028838661014516249791198762956435069987351286872924258089761623557189096645375797922201040488997371365517298548001748797728660601462630328281656969422533608429475860011440149970717302926892134451287161963305747833796862413901773808794183991904798772852902382669053954742597299133735036386304013743603007154312920383933243767423563371236914052751605134072308233679572070224988110689939110039849268420173107683035802805145205496500642491152197336894625227148861022472470830453327442704480092876676457261845917078324812251401042695732259181958589911729319341601626525768323926053954900526376029641375653270354551070804823009846271892238158198554160507148397032533818484057233845337132521679868874250347615556033496733727324979643507351659726006021747913273319148025593171417098234871281199157966830824517753393235237977603630204166684431800313320717315247842345349869851372179034677844334150536067439273855542159141705326417641068776855646976466351412677931429967835148951962025642527644344161012226120658811505044664304516948258079547088171315480195647237150440512196178985230077935749742112544099376313667554691852625773670051463458899248156117794999981447128299996621298449380537490695906663225740785115626427880382966715858361303389424437281264147573254788090993473013246582080519864775755125425098629770719437088089249396041804060063796655959746707427182018270857625038957186085258247226188592240106444291820580935251942619485929888742692470664515536313446305110383910196889113275434499466671009757374221716410345939802321134094317456783045317926139791373987271542058349837456824055065152595409926722238893142930365714107869249952229812200220954865445570318317965484391855478082834508237815027623127637185912565232096561089557434290751119022893691113502938542147609544626809243109840476376346719344040898744258693615318084160287850286854227111323600634245755994012660996797016030272603669752992738748459059039996438702817391120229977807943603859970015118188192082109775682456396159289843583748253971770743247155915367500802794757042440555289684860614043220377702121778127240032329908014592950470202760857617773011669724792439701583397822393925821910188782814015723201997822804285599408068655037899258580112818239640118698152800679092149938894925624984018733764163029698206694745858730903757210647322288002532588466185826356668579093066209470436857747731449884397658802139558366784249244347470120919498756676534324757468600640469708082166734314650139211434109257786629410759470797153670788614596029529138613665612487697410374483960762321088911761707939839656346205715628283674862954428359042960661048380705583164819306526017070225389373300068578118562545310800158743619628419489150234083128303089199633169444225432933445596565496758857620263558899659318363515856766651265638841631699265114928194840160872297011228356426574920569175565222094516436980827977105292541970172290270279018157210475564561780028650559729654093860425039772510329145657269721744685243302296293949326788048137990117605844932004245061629447780307148011501877253665260538861033189412541844671745304841058233962533756155551423738894192825603336627017960421043039027967966649800347473970106673596544388857188376825431489184137348170362584256657936357835401664379009580168776214997089849082256942251831734757896686525569796841057515866134550141370847758592051866885816291955925073000507621335286093361162638768694237672170981534850702548392869859155987950843695934209659358655964966535914117402176281001641386863555102031561504640444847969120417796514481152170029076323990686788124367958783040047490501361402769162095463022576454847652923083134903429868180533841167452759318697053845179191627906857817371420309973959864834688836846981734092817013187662604208299064058291862712647095376811976091305243862687663246379774843642504698182830300808775916305542271312707578534766220873889212557517486290792830905877889581484185379803537869514049589499847149554115316475585168561121484241863781024022951992402272802876202380001007766438861358740235010305539193524762825072116000638714844328778824857326119978682002260434329532145313208325214764814976337038011657066880096778826197832631668541155407929048192999264155490040290953315239130626598741994105257888098467174659369714037587998377666220249847267607013487050745177990952983774109073185089963786853147512413793998401009555246207920288343348947836018711568685139251706081578680835474787349964834440871346889120104531256854704893785008010518285849016105859662156233183739669430261631128594746479201172164568597656854458570734450739711461111672319713484223609511472706949137547051024104441699124856428627454726477902526678946260097072368481124929803990654469010667284820273422732466016556270087920731860573328903832848811433066096628609277069877780920110732550002510685668654543903319746640310857531602683230225258275474903087736455460190334058597110447517090044141704597246980070361989078602054350385067436233509359671217569875482831206315037757732218161168905941396829274618145619082342801561451171692433709180664477650398417981100797676387207446127595617484647179243478018704469342181339006399857807114599897966340728452758484092978345293504114122226792218844048320580464785814870529864263228976126365991408318960396863356163848411486002405915185409646346007831741945064943254982054851544999249509630029754411320597419164342043976682861749660514527023061718265378566768433014762049407213339140573313281728936306646988418474947536128582256410892105658100003314298333274458567037442552787541074522038725276937767034652567120662025125943650471490506492624704368834267355498305945336281434533910989677252835806239491555033792622205299357990846172941157657900931161635621908579700573092649631719690000700507669209610818456348157016828328659123750010811038369197194450420363780173713973350370081744991041974951171448010333661553961836138858924672528232781975978450408327422489849073884396372733843977685973374060942828607278633644864228882823698527492281645082081187956757498345775726056312864187596808426453658317436306887400597853052287769265195258273350480817294336596222629701528515055705962083560587151903508084905766579035064883570539555946095988917023348473040372078797873871603809302992309644605265391379213660997613411547957468050470714202069082049941760184717904814559648784913726064370216061813951893012630563759585008766371393734752454355219314003854911452636865495244612968944065493884850657158147573611820979155999695013447414308913469439225169260422611509594556011048196110169725565248468802817668830311827618568595158394338012185720933059794106472640932732217571652435167769340383628433453447212031194283036485421898798875872642426108994521255285604884830532960169077747305567198030256081600099565355227228810275397914952250956612587133014440324121764203896795234362292242738059207809436386838053070411177340120136920962657743169160760921624009133780826998165194366769578478400830722809511922999861414315491990378375320294326842206209313317086584719063852079258159474654723997203495025886672610446139649683230008385169935879201724675643050756543969928461406522097480369091679814496070066641639934366739197540914363758673723881048027721177875830919681487955248728751617669894985076310077824705556717713271254352654729933729304562892790188747155940407553682356720657838900065202537147803649253972993908662048572314760338948315192759048634500026744632996880779282211291846237199468997065691841205424473177010327505805214706563451031827469008854620257712474274316018600201862631392817907468051806106706738689838033886443806527680210421833875724142656032815487977876202558031247057826671671081842069651282264807435218956103853367908519924794594142160301550703928638217385437837622703455711414218604872712479645471035043118538862956902743772183158815566878430613216675141823710675759972622177816793391925003424375010001975166679765088193193830335060312304764309893833731492257548845919265305890136419368915516803773228123826594610373471858581772523247073484436136605164590170025545345857252958402003854602283062171441078923543197430080221862016418172420597237475743493576900522678590037099007138783894844689708312429032122237486723820162792541810020112886234670934920355390010598152934653824662195764570645399059954085572658830318941011629722336854469103853318927185419627168560615099191218463483958077429163989213871761565215800857654736464841115897559651122819891399299668700757372429842299197315338460391379165295219962709414973589079959890351665608057818376897986276101806375293728243233172974493604428027992776827285777081128542005347019075507172777454404768209438496699142578461051775015245530519965969318960779198645953419840325591788513819944230870117299865428040439753904134977817999049886356075597978860761354683030143986796138380353107221433119208584770889726322209977570877924364047014033163392407671296377527522210228537681393539315261840441302857914637263454053233625762767249606225145786990989006718204040412756903845751100092516738488436924265005209966606930871778164445336395397320785614672336350851314258084933640989511774888714574183719627690209073071711454520125704825711507948507050930635770857324918921858792829292347939323571022782253928595043076447808308031120052053257505686767148382715170287333757451223394824678685423655732346133013058512729832262532946178547630604437720907884502894454966185853297200755839295175122812820052130915243191921097259971466355211266285785605907565648028635715002143422655702204221564740611906689638045480895318384764144036786896831733004366648282589415111989088121605557325789641357547036883732348474972913305058903858178482551843359526709261675981518053837574366329384237008565365668778319369217106570480073996128887214790625291312625364956145135769933779787016844410128862309361417890896738129544775684583328313098981234100103162824053417916087156394810181379947001929041890888466151757001786888348903384127354654894020120240361086263727445319973674451432176711456084312428169528548464504557153834671344881982983538464317217448972911023855060675552294792390567658782385184099097539660128221015831963637012923956775975478449006791918769119781231490807270368900536056036596944334266422773553212530198947353054219338622241758978279625390291247041761927743692164408750661499122796396516760001083528025307835734265066273943185288889400098811664004050343665201640065812228672504211918026431816100490482984745441136028533997931880929634591189907370063880365933116029572862059967803995406356863180013433925710001866827570790430019995504580826533393546737090631853389435306884594584072638487045715944461997907899571871355298592441178874323891567724741239592303459154989621900157170409147907760803146188409181787754120944581161073017333494773423043703606448554769624417685973582562991973766301277597572132926459386266051239062670348963646417898217887872623098479748839468859619971377649097003139626024908012357924131699149927918946408449724342931844137465017542164767432917238000071786810617540914073446748271025047505995755706434371765968145881541446928946717464821309449344141321243726934684266125810231355019880766324943471608197191221269326114205779187675394763580260622820777657748873589450046271182263674995148664654183803078619301452542603278010979224663141942646377451822675488190838491247554286027573522226464217119593161832849460647262567376007609310192071194548747928443401318008729700957044025959355267968815475023698583676833480616108287276097912445103218421107014448549551241841602598157974229581940364619166224812424270074183718834775477076674875759845045112529097888054634328803742472717385386919411426078024864232727047129752898528586971091893161611477429524417847032403130807011604144787508865949776175698994757623490020348083986703722720863883799630483484278502598160426773102843201748183938777335407500648068483858927856801830851104221034078549494212280418276052993062524774037670715034136555871989425016250734838938974124600439823730992305248179281637134134318269913809619200173263336856589234030412217151701447600772765510860562571884013237817702663950578619677443020897018876569986641719643744568963687756583220295678796116218101737955691913589931925067789641058617644224965326030616147392000498166801874771778782527270633783111040393655244197954582102931656590397496823523509620180698893312318425433510672037535767965885826945955920618759864806392997769244649816475869354219755653824115936293806908468568320374094101638657585390516793245898135040559819000538790865444896045834997934326171388439387162965709723378785390675973463377126268149287244809613180910909316682009942360893309867704810654103078192693761452378238294661900558991551055612097497218662550714597277814940010786212357840134733555885564670072687606053407893776930337946613379589940847231226596086132418120534637846486003189267704319216230117362982381716467608380400250335914964295406562707811485625020070914504384194605129544922275086155785531845084202758744168054646223886783981015788956440521481625995643317199223496238640446302138248378908527952149298362444426648368786345633548395815229520354125968498787525225872244359853466457342082033737538233412880227387453119755962061651198878287358284771891933465220188855113892245525042948644259395230671931063471917094454868623463029905027955356126042093386103416392590597013133838132240854096195543951934222950698111035965775511951368049896672133353799809845951331173193716721700036298448479420073578197871391576837871627704275579304405741412885229501885373798656218392461128410462171311496834237675268461202631386615483467416711544165211664302855631818978668563901205752625437995376796611592968510540199997662598952656229587722872639461153580554826728957126922742543313499268559304322645678732724576143705543801149367451260364164799490612319147153787270908190507266812933850015413937483628706555313851185397337201239266879805758819511074064326630090031112959393428223288399611085010229998893763294371987601692026075520226263172713965443711123355868456363557615374118088021353644230760293241096550852237867760133145907897760386157062302697935234900285102137209947127952458344886881912588815002474611338688286691753673847116141657197951023991395127520375598180033708438682543475524478355122356166915880898272191459128320514730046676366388873114687693529885380412152762542928066466253536988199463586397608961202823782787182587557026736209070759546535420295614173241461858630036611235579116324979975821730534772488832897632918009351898335659318139877272992037401816462482740802572372392507219139929108507560949367751055872523909385689463863282421214704509492069612150802100037117415684905282870690070361523221813122371179201863634439785252078541355503400135812682124258093630411539126871327204570337514187476712167002520711421082385781585886599252745439256774843778321947906616200395224869364272557511830444617300998446650477725445326559710986661666982793701999928454096120828415417207448928802544686189970233997894316339851454393030230935206201694424034034248883944833395578187957247194077167254888742059589790100952481671941670766983450747752760189465993569458406413439328764060475782895315052223041619652569891887993835445431239594292063063317181874453913906213264849592708361087537566197326097965600663126300799470062728556470720586795605463478284431696174034785293698833987566107350898254261393721731501087211583431188151532625362983408928572817329216706005287707216184909983679387050078546679723708788286141526339094531686571403501144163368998284913260020122247984956309456230783247959967176367007418781196939906819347857742886058219316571399717252404678392658113859180049947955869996924754897444792203710339065235341884130919343228344536007016002620615407303950930328439634223111112092248966722276542036931100371520858539402636461929426628991628713220632338048218975755060573010079232917293983399239679167160707450109325780143831935955791382010242648945369565833404440029483023351556389548911168148451677416366168619818645658992466026131626934224474975766989939216604703302935516487120240678299584075758727265756220719216936873353225106438719878114398299439269727595118195868845822497653361041465092197547562935289488914514449103564296732109501507922942628571861205349336698979623479232946178501056255224645474984800940415633334047087623617274464267170510894973824714180207331705072527236943465846283474034454333482846668017533234105267914280218830659798171221784533393322353442039346401923791511368669153049585110146266089004300812513996119116429020093718915665594169943860156851400392096028867396741282594630308764766816916219941128854858752647145788416001499935593214046673650815944468479505520322681839924637810404070107159229852981164843411340372568662566985597681582866681419971318759438596764613935638234781267229535341610334708738440552122887403420774138990967508630880816268321273828684800506926574853485644659897691716089790313850964364275356081866546595504957296156598897949602682215106546237143016443989548572134698781196042262873761412696222504371262971774409003142325452162332707374349222369090126202427524892515766862852510562986309354364252703074639487080071038540034879346994046975341749174216781117396598035120837551628406803098858334016045051952197295012884049846948089207873292559864367497645721236032742042065773018211709264931364957315263511206475903347110058708137534925869959657705040180612839973635897906938514957473611479622091470133014271742490249583033862672135645002432522923997640923205226465486378591507555670979383539187950780625837742479616340611001043543776324640204253297422551335821801268541404908163436586184080074097449585724022292633337643372664890910630692771521902197927741633338503973352488966087192290361182308980062412616226599700322683688108096910924968342788003251768421167108632252284877341959483523621829037709825211128653929158740701183200372142774049625954598292519015682431474201290974406051569831150667281708720337361125672928961483836632711902832574178990470100341109944192726162126151565573547831647219287106036915176229848182539031813884292356978644096547255805328701171283096183940118680258966973879181721790931629573450082303121399278699298838760675557955486034820392916979801360314665971504731849935505534229664526210723559571751373726224112818092904823503135026828841118140386112094682013093601815823262407575495655499256760116680867951019784389296594522910200551529317044960996192709150338815851100373188272438612380650996819152158557674072055759382259608832013074598402341163059618654265000677774208703386461345256277658955362717361564781891958091769086471324859915116645696267261570269082165004506150350425901518736178937429481174088461259292341832194419640136181424436124962893575979458083561537328423951262796357985681695813446040843314784628373834134141827370927234056352401756208064596478105125477692870392674986820956495110739817461810193386715837095435814205411350257638408236762891275717691951468811913024213748172035038377154576204827744240208013557593794207016003736418957924147016549750935387300153534925794259057064983199296867850783634919161397719765949008293499094389360647774913506977396562471226039217046655528358014723498816568861072610834295904159772152046110524549631902948725795056660772572222739682557325777826735157688044721592771776032800366545080246567054103421160958993062253898685910213630643649707876610748404781940816801838955983283370675260468744310522573817685558510422929489410885114887396146375256219682270523180886082121423092311409885962104447049770282407820230288731773277470728507771831398870803958902598751906953415529242578198189595708189499424511104676515027574131602150243171012331070072926655753259727397624768212604134943181362417599433354984544972207042239011972530126853052941372066154567954331462214626756405566587002247170443579002401252413930708646174254769504552132540583713548859897419039105787826171195393656556823366428618140075741730071697799132270852945685194433363105228496478177000760471338915593508037663426606991223812218441426463533989179639063894189506312736823079661340089641549335012853195973413654273108262799186972532256927591379662027941343097605297647105788708111187033663335381160665869231012626271383258147189445558040724173941148592735460715528063492852426618905045645091215341859010895314065563013329674685303420974822297046145056384377006899552508950760167130609345528830984776577961536177320571929471430360857317317282230585261222874387849388377738741798416061187406268580963880553446446943099430217368919745133059549640967023380096906671050424724744536948715532041980142102067199876166445074947978135314977692567429716423397378087151624880379721611202329228643097220908458825453140361113656792147971872983567841656884785880328403097216921109009091715666296468146749528982081418073583839433880616520114780788690751702236016034887609463228287897196248871483144483805318204478423196522967688359143174642042941567408489104803186439414458472665700044720178549911794045347455567711355428237109305537699345775368327641377300408665213693943363001687630106528480258262062264167367683396126565580699576533887336717445230589457957642850528042253383553366270095903197158846052796275185994329463274871389822902209212891288870401973382437587954722059047441087408464602716293824061639323513203988173496965086084508134393424442123070417714329811165078921293796688187920364059446515096468990543630301064532967257056126131706926424057458400780925571737093476565341925210283451445841155640006023775765733272333027396695190310727337435080200516249816062600953548393368361252261091145493164312738488635731929461542788776757789761335622994507492433359459259943313226806621289379381324777063548090208901568545481014087024440541476559943349373363618359870372117797450769064065239592250131928480116696070038445906721450455016791411702255846443082155209429416957616628309822755897806144991811300680489885900069966106667951590731359740537226176998365156335253397344163491263530451191763866438063056637294974433848645088909783957254682672318819858582837243766299417500099062560777492047524939467458106686595296437295407377759658006627023237068197067415238348117016623790139281751464698986106967272603593930035738378945858916418194918477963640583795891833883839607621779338069836557722551153569023740401034247756407402714137030717406178124018074824667173699755558422987294731323133149820789084509504967168696149739759192565284188156696344385308046024464767938444049102020530336549120487437149184944573751174732039511710884928679318035107123279060079786856023324513359059297428756519293873220242044340350431246034187268114854148936657838347195492235219083737479196366410933686920774031102958893885879760169066442298337474473754476955223163276567825785058063489789619759302424322587614404478558786141952908390065270230240777364421059626620294923100831644681322664811276257718855882846416057797964448375664803090662515758471285145745390015455146668204149386895673412937719258587995886173893614206872612848852675968055760003706646482555945534897468914756015290823742716796332040592715022227075299767138912244006294414282724880575248068799838650352268757155577850847689090209283828456711565031463008753287901714912687466883396466731848237548310417975760038432353846188058115992859193052598918518852975152434789368549167466236410515375630388916483368741006873616477413060740773711905768732193827902439585525493675588825731389536364761359274849462898972431034768238680418698908263256204442091962635544969128248954770266743844705973984642790686343055090134771853967872414984246416831403764034141578859239100519425955079680050502569352321576969403893301513230233421024147060613881463492575336426948406079924240005930605527748187283189837620536170295563750387428153090467291902564197934836949701002766049644574440731140259136597099156811068149891797280815002539729104464054045297373936386464217186956916181745130505707221985915260167589236711918333081067615940085450222225852664414170037215602013807280151433559853294639298561752390449229429268754419573199831592295151758343990192812692103312274266132579478812738752103109683294159116238922649056331605576672686320953972551737591371206876476088305268532771161618866395657428859016028344782622248911575122201043802942844023797132716465408764580597474244687692386655867162210341067724058497949623985107859171619001650495165556595278125934435696815430121783016701080930743340647051024897084603485907260831419344386425589192054762092581635739055377423114000102545511655836320194490874627183948478104257394581090146764651648491109463321422493983446012267354009103702657709148650778316905570423200844671506516352121977721084466027452076811297159428128239686869383847254159157153372491464252074626998612650673311330575609703578817743928469397181174421857088867497798083593016770265485569965125106189567091489957251275110158097184045475417354791960934891283436160843268241771091477716087895785488826276721372225258802508989300027649377334093601208544800566308353656878495215803952515231119061751134591278121720084050777906202700322116968934774959068977462506561041177611061535937362151129776989977425448917164756736637843252363224177579221567477914369550865836043686639447708871146146430201006797271405120658188599044590154878480218934981555976764840202521305716621117006930905017192620983601273939620238573040923107129126956138206269075992348859149721779783226768977971772705533669840175595662955226393689347961417484047929989805987657193584015856344464882632049051209153837774947115278823114137202941668425681258104507577607151235114699599881493502445289217930034205329463187226062379952455478404651697930790087237171612967851434780238751143941352327396043384524562239421283884007240754977784777954742634549217415852629136331583063987918990243465903710456576875864884526677046525498596930999469291348142859068964827413646484574477245454274503979992278913597387018834322930637888286617593178204578055514117216314473066567017582607365377714476112233879748903288012930446780962289402881472381191274427842313268067611326815479937867106292985725221079346960332104411544307118919703560434128779538650318098515511491454866757770595362817178892230753370916487024815983010733561545661554407590662730073976596826612603730241501958531025261108655933493901796072110674641228677581565760178069817450872868622582990789593576387134966554194000280393716943039045713771717273454641430855705139788050932652029122010530378300193465152542678727514883837105113178095714465894977051835645061516065186682004492817846818858265047574324506614760125816645059290043993336377246785902547989314714967794719444024049941141877933471126482851079850431656111861140900724079002823226312942834613264317540042329312900099749535385735053999182378554889632868782865221086750442984781577096070734454716211965073022161664438953311417129729132144753652348671973139083029575219248020168421655709647262671364374024337281669906497252191658847287467859969759534694911018650064260003378650302020256177690985971070000734083063165283639322691699835046002995218040121820039654634468796850466350305316587854292809767636265556821942845410509633932828460840814965620369974233264501695492589017569631939007600023351880344337831709961696905012256141388230318805083575812765023142151381087456749346315480206811933865895242615562148370789729662718272627157159441805964712069098315017495499654206091494041699671580983968730330884269257831865483922212430055890317560463298485474193950142773183959198000866232030072009521762250711733672881816312122242787405789228815692807342445526338817402499998595565450267183705394347725888455233977440098609953768785345398701664213514613156817833401356873035062461365597232439854876251003447356806701749535624823316765492363656889073114404277706831049106019124283048284610888772882617799802424302069424716050571267427340878973080715022080764003345341562996050716030637025250549372928319165307775701085669185683586946385550166574596658199090229299902057622557879369114631828598179564918459144007290417196064534512278857449101539618702488356580198474537248215090230271732554086762539661767749392601936319370735277296735336643048753372572359349503851336392876365216222200129892322381274564976404810466169252080898058969034450076417089868708958709773770278563065008350529286931912537167260299443264028332393968511038360253115415805586905561897428953843554329156204821697238511540488692249391266582904638524845093011702089791798289571570055201823504774674164623173257308149249076292032013569979001386578573284644545166275900398577369987110295769234514543200305690953340976088858048278570714413572462559411736200312901777685764049624648438606104780358069259956943083286762016275780947704365443262759808463516957328479714781341196397869620576124800458817307835489063537808645342776318127905619291180668844179041878804123087796547682165098730091319346935459184678082200702783560370833489225780527787080226838752213943004403259862610497033227646435190613278329151240860820980294572610588971920038947067154594431978823798358615980528373028189797273897905550571028344955439615543507466777969643295877381881279547518251338440888171447086822616548959346056659038547952385479972736808633089710183092970737579054607933198654191182218683719989478511195170484793837298122015889479356505235452999538122568190947363018575739735937105157917316009896827715792808471478380463767672605758455064976715356332348735470165961323149689381675516063282156459667640915694967583731441590487597391698731524925461666862112002598482196703714154697292088422318324316476095908651345804990260528210193809384166211835785867966718972295878820093606215863925843145901468192982512283181040465127617871972973373706802894217596672347585759662451580027199966018102573053469574763937807673721666841288890612326546023832897665677774520923362411998648578682571565607997495483216305350194172375451873569094197114684898564012330429414592590917382551852657000854840660052945446450520772928703347835614472006021445812379393538769419699669584309450984668078561821967950696142902465668681379306712864937067239264756142664444100508006509531638581304260296940474899061311923360634862024225040280228378299477302956843498015943490168519481089022361061674802320047795854225734833693860152968904775469192674823534583608556307165399684231831368604296525788652530616968236625690329808043746029010748641624706774418592545533031662007248522163425579967188827941634827183574385650056213006264926140922174515425644704066809972794472286514580164222017702263928854106047998260313860822000311722733349252889526235906678109280991720707374256496030486824531170938734070256645376746391787480821556958066827282190245110471911542189404804332775003343857190432538235501777995208775825383335930755173584336384141585696453831704752926479328685646067972149567671207586292196566085711670120754955650894468762765030452806736035821858941423398331952694409659191875514648392458985112829736426489965230190927096182906090154755644270228587767568305222725166472025698466188454118420920950990701500513350234821677047151522359130455582819359422394128436623199668677738643849777383988407095126961427672333070534948313172773284078110610522447167724697308839865076639198939137342207190737075135068029279250859115513443444647905013418684708147646305517808833370521991186478972900865572289790633702072056746597502723007031026704919041133040345088263574171713459940229143997676114401555010997703294120684453398013644505112523270486698879042017961162157988999902802612614303235153928058996508687587265787043295528358360393155152907507941099940177705537176682739495776417498456917266228267959657608962801941082212310840381202781879597572062431496120465461242797612057014350413325619289498776513283331020198752201477799259387618661027107281029307668589739679960578883846208521070257677051702999682987755267659312964161225225425403163579849991774353457803518505132242841586421496343878362917815730654481189841003494783991427271682017053061584654065082151643509094621007809754560762709783506858167542345801962988739805949380966220801064068361123357154755224133738819421788100743528652959704626386499309581593903493002735017686275593814607583641128776539028339372149774269976819646464252509412977144622579202887131418536276756721934629558727532712119324909632405522718700990471895224465818257762870992237912364543482708451504463273426002577895333363743888476992009085087671017444409698254642337804100663377767286445634542060177201903547945124536471492349674811588919227575988099498185999689193405846825771150043443629492922400394620590855983225580282363027709416454090175481619349527916150578670434157543131212808576048620511785784145639572576713490154501931832312587710835479380083906437799185538071841272206754402878520288465222777634014427225657439067294286601652627475406188887021928566940446306937858284663237207797061436997971905422566059395090646105446276640952160629775335576053158896295523935004927389533951711196548103466883278603672468643719328537950616107844392315314506579920907801451797423542180953096375452153216791392869069502471992938712177266393312803166418610405004672966114219363876101252173592977130592748381860455360013361409651380244106890797808381029846917879118529896074991668310517535544302086255623462996420928341965748330925289403742045239566900082743676495008062059025637607122087318036309143979797539245323347058325672954885323579961927493329547376071949775601535248948464074205046875436798737110090622391041912251012339675928396012468742450657629456995201054099064971053738092197702152454941083820588653433086930566459938716651503085531445105723589823429121586714312602368653905681418646059288397620056350805598592770937938594231975056895742551202766092372575741061665662105165649838703744352580888503128693678416673406152686879724718586585601862574300291730260027045162391989340409070845178914240740465290464070518966776060807345262356710192621012491792916906970600160794728020242474619830180022867340612055250012896065551820205396258153254540926931382748706742500489197460049258107609593012587203015054772372241639253855659258816866735727033539343424844738715319842500216156677808746213513986722517608392495951712765245308256603066319611023062876213519665959941597938313559433570997751232719349033801467684803866907063638244356476473457525943853856999704586848719928575606219122737412740071436700612529277166588011375107107594318200693629249356101375073057966376615992523558549522429415149438727734825042819581821204262225611964050608779753783474888015154252738800624115772273199118495087426082446756891086530171709518342666870162017128636330822460429409872973129619159583159619116524214896238211797790677599361141738633679844237615376449188279697139911159718417040403485550260763226363282488490203662091863161135480600506623999012714971022351714136376155086430170780382294665399078020998755263029415960379440377320855564404043492693734370721105027877627589983942182174422950788560351386041761072061319632318203262328379384389521914968936447133952895146868484064793825853763040512313703810268020879951180312909755618159215511915415634461343009171356171737137863187056916817981336436412180923214392603745683830856099256353468297048568661241501344021035005704532561922316705387169476850035327678367836676685665166415358664281483544542891213429923755882586263217573227137095555287810889540465198066042160646845669527782939867777629473644448777684752690093905240932795108877724855429486255309738970324760498419833836819469962068008389052041931556264814478828421723125005124054108886927494626627747072222782169668680259323467893256245354788995206842474186310809078258589339411698967176850000094101196064779648391860074431914474583445144359204535797508340854674496330166548014350599324302351116818069016820039332872967939134129092765442361222113759576849882553248297223036196852681180792429662964835056253765304551920243203638552218943322527051466136894909482507452914531236193296435701754196626052075232340676561945760042009437054043604242088700810148813487754025206422376594275166046699797598613159593076898433271643152706463906826088286655226202411968697866999417538864920724892010260125858919541715244639218662715280766122925381487656573716907618084182038366953892952855099084097963488395692137931904845854819391641370609211114405785585318488746243737788386352848929713314517938022936307193871982325050019258380826188455096533677217560538164210923951394626094773509467059551180874042146039595964700750422882992572483083006592954043903683006458950432728185160316989215193380198629891115792954476933438977308498112313772086165433908285696505392636135662346650570723353266352653071182307245746410431729261397314139507284881332531823041199604181467417380380126957588555798218996406191181640026377932172229077026348900450901539573936325401675101782165787454556269557720028511637583646653781972137221899013258720116891942389239642069088655290547933009602070790866613517468448168143350398296878074507680125272899000739161755070112286117953043795348561203709373062889370623524545265212390527532002422429402346252570591302497006223282564341235043786593552033939985096798145139795340780122776672808809043595226108865324287357710791170198442497514794163745009641598077412112847167582979146747157856456339679364084172684180814007875920451082323410063863432177458512294846717321497051013686382687783095003600148180914460843792500079134421221965328635244579382516998781955512572374600559737291266765114501181026765311822569877462496212389945905363936528536709112575872281291629718544443785357474380918145653965597379686790196971000554188905803734612546876770579946867238242355564496162611868776638686013254551097644842223532677862651474563427545115036350478610607609877634131668869253756283354968973221908062958442875027190824369511174715144342171767762014929908467592098035352561569735166099741144809592002142466758025388426178387102206728399585257613289206915875564045013587141830204810817804671706197489489101562415797436231695037737334622226327415441189644082752563443554849413601447340234727073235217695417843715659766362477838122016019646611495083123156094038533921356990277755215744067595948098109643947431969604023561000222580620774405052840384517021346901998902802922032180030083227444827303346095144562810745580949829520373215213537649401179429990157406613530367341766492219143946849642639383128260745639434039556879759926114673113677393922561287342997826472475610584843315583067327934938706808511946972376610104438466475660032278695755487278266491256275382802187155007178555444588262293561942815250691127732253467468023822687763498898416543673701220412778773649515368263677447249847138344659716478801247931910536261234397056723565153171638043936444467547213823921015973589468437739878779591863311509753520503435144598506675601870080645201960582542109711115526582852333153448557025531883077202620377664153034735134421059583525858615589536337834359911363620429220497025093243002697417577239719257760858041298945227127180821047396813570121685420613471282582646133265140389057047990585024946116052366221502748023665781742274408623268313275968082117350870570566967868414125722577958761229229707582977661779469957687980212836164621234487415236598536982212975701078127778145447815442843333348747069151740841103802599962755978409331285789779115382251899959675327008735104719089215478241794951590858852500144349686369692363875697943377106498404507807158025308383455052734298144283928287986335571188832630620855842171572769516610701735732489071847607323865695799087918142318668726572520331348983177228439652149002559714858888894640608011371600440080591604378809098920731459528300096321951406549240444265810684080898064723871280416670144591509352519624623184849672021216282292944859165089874521272111844664734766082116382507150417859158058744558233904674452596068755058027027292736655720439832753599779824583734736891878784464951799618048606145827574458924290881230125152304881020249320268710689196765419609702177172685686513484037411926197408902990935471361873775303204419298003798314899636553644672786846164734159499621254058730697832556803477451511358112750978641228431342399876912975720437918457259548803418825912830700984990098872079289557631330627953748527370126968065929853045214794992459797165350899297778703979200476678312056534817027414654677460881936793818320261359752304126449001997797359326528780149360145543475328896816903921046071756005030205859355566367797197364059429279475901012372663471224629166961581269274715235544754847906978368980386809792586929358187695677797630231250752785677491739005367050771570174258562063194772289961551877964611480528792458076952927825495631893093122435075598083657227659628629759506926144806738199962697201953704376873298347320791736117342549562554398631552892726350488886755663277074356329509267659738744461644827364626637285582601042101029956146472757897477940083672535755889775853095314167593691013226581512399318772419771417079021403407814414281134612357238684253230895882271250281284403139620029085401073938076798924377516066020703799308102608402393912392750200297011068908384894019702571700625976699436076791525474701931678239440691899179453618892778058378111275234875335582813670597107639446201744152340701068922666371119022333795860447540190966644630059880067446299171937914770443420875551387939755465799118026962634873841769367867144940973202004156786671221394119114795729681563515421294627429910144674164228754212092863179072743554301224502762975699930796597528144844058437029693216852301563526036378053055606693660464453284139291782762203521169595740621144735243942893909335355412399533051529025947470587099735995655718667710052540764083777327906858257647117360938259837287850092299359908505351156597188110277915511671001786828833846118106625600922632025027345921726728547818813406818324935275989228207446782656565577340123399927349375124134277277587793526901240926382831967583612447886757895134174261514754154780049718395223270155484917494493423289028105373814115023265727567077399415638001170208365112195109810868115069895657096038841218843453051367406708834412592238118826934910045560985386216302487389029222022094504654522183694198382159915670357019982294871535171140823104188364675705926876910737424993316688576410162109938917884174239857404125068828106565579562380586615488276234117630974440537589964747987739308021220531060217961866818884438081522019381631075690171776460570110942993752668176191952343036396259218904840736219745250822766449592262369345401270824074641532141163260325340719678984793390179041909210529690104035531111644642068267209558724802371104067847905248904039788191231605904408043066557557066313402518651551934960896089107798304770820767773962349636120903388783250228513719008841693319945089844443398825030415196704299156432620781634853090198636011889219050454508461470157544574836567499323155102466855581733656350766964714248070847752006191309534611475804533224280038389416421258382566221410965587905363711340605990333793147295296483127461508122543716238371116753094676980712087035384161291400008460804850083508116194168026329712859047841333514617164433063559302339051033571362224721914685281944984174504000998889656714478847667975864421814118433210672087662910404775341266714341458485832595596642645980515425009919755320327747180167623911949699355452176253907109078699847865602879097149414487573646475255725928632590183334648632024934546368334378156612935209471618685922651461622024262158060959956566444183002173801930858401226380679283653772523794259820393183462110096532493239128456096079592091791771739059155517316467863195583171739964935431852972133082639107161388734262476509415321554339497250070761807237581637452854866949187403300446243185893080082125804483490375137892640686832134913439830932286900536724338300095010844457249099075479213344240407565311997255066579921010377979804330512740747273217549878413065290083882557565414665406163464324272440520111662841398082799392087732329128424408085839859152490033135281917716976545606381989591208394245573431540894948577636926089523440045550158936403452541175069728940493184790367785427040141082700630122936758655221713567470682485376066684070541105033909002930369837697632292589834783475344204502025034103511593287321359224448385898875925680247054897395141017202722102242177252001075812307788091266594813584847345446256195811166268579966310022815558649786807854235988774988073667174204063355717351470067131942565451198833426909422851343232161818386723051697638558339855370468957111429970777407098425457202979674997186739441860959714041286828889457737083521756784913715945559827687288261842987726892831549107278012128975840947050880723796687103001995713973548163750781569556011612717172198975196461546355208622383505169303012498899745673031153851719963290144376239251282659953308318509753523828580779606679132111830510813155448366955358874283947849492676902077172733827336796451050033236937797783096438848628087690753677850877011347375740059703718855982732924817969009512060353664068777174921340688262348908633510106140250339733420928292898232750303098980177402853711879858203709709848795029675475173376767908549796542089919183169581623146656946122964792420543030435886482482502479155732211598417103523776398677031529087665785673959340305263433944078303730837742454874200443342555589902581305281948885028956041133032770793711401370768059448089395076137773823893506638887531823714232183350591914821671272203394763967693716632668116121266961389065206383341925696602460200288958771576135012735373417781744653904570795928175688015525331465560923127780430646530217644277782141480351385644872325943417345164168194334547881825922327890931212280213625205845776644097670990256391058816179679965550342179232708446171111970232063052875102460175396184018668612133288382986051508185673326643019705343205653044974981194945173504767389995440424431738959858163360021180096170838781286821580363173786873722459661341046688370826653854396659466115562698466162862904930356937382724910900867179340686632174404106679599011310986930492174719221582531633954381614840525687520918442581905816655838795329305293637215198948370616345429855612212325383778016663806565707671792092653459852093427641405902550469584739862841525415532466724030479670607670674843433237912600405990701196429877386481963506481082530972319140470957310954810756435530642038075080690890490515395920182356123836016364734249060543167380719742811086242123459570055053011821235164753653093030951245043188504963970368983155102181393780095553695790084996568606211157533065776413996370198760244060785162277047554451049277660368266087615310117942180318454268074499120537818023458030076837996827112148655863722224821873533571884995046634499150883724184023576825914745902872760424442820347720158506660918051256258056444385675999593555939780223048497801977594908276614129549523965845003587727618692469495197525585362458476634986631954618070852861445154299121298890568585256243856424822992719326452804729476947407697420046233056119856321702964709336093120034124563676906213664209474348188175200450959583854367242775747396871149298927544074167239672582699134029208684372792124119355154921855113650142636277391335962731356314312421294293482048922134434714291855512168290329890163552076071500565889456088552228533831214209737699085891405808449104688474903709065559136458575587562351505591601344775003774040006172457570301527709988782976082061774710571368005137404015242431523786565570017614081688342836244263284144339952042725082534982769422056254943534498736617473839676561140609964158483082485555582756127182199171775828417465693634118980348972893249480036388554266093008850687484037643528020246549973410661119053643753540121596605368589422859227220941457083553747672103062129947651539039011584424624845194035051305308461454114081425928595786513885723467235823610441821592724221701390227315033761865936681424233617662697991786658186066109327608291683331296891900122800586888119668804987181369065101879955214158211405226866135568932357163967516467005540517192768484471181972546504635160611239876803914851243538579320674132536538534328802427026602403093460053286948999795443800301806219822024143922928870203186628725795010132449908226458112219029832632117981263945962027732826338584252638868593950572682527571307984269841881284120570521980959910437945918295293024863116326558822701117185641768423820698275895724434599334244998292563467160288939638074026059897639915342653240571908851032421986443787128107189169608836470357252261486391187430827059745712315087431007235603067749950337689833040060005057859423241380165987512581211628066984835191785724029133300101799771495662352504318861000152774124175107290509061400373117605533891548089253508176675063523258380099970269546067279437314925236358409236015072422043868438739500293265592307957449582405847652767893283025364347131452152745131506176499200420638626710255917392283860962101887504884349146206175249049968704661934526227303568224753710415099292186084480135648134053592983797824101733659101960916205181747039767958810271503196579507331544026457304526932790568054376577198336459364624732512728290626681327596950774072459486641927633498913345586851719983073371144415120758642476570585426380093019152475045868720716542775652952863017452952434666761051864669084262591605841179687283764236993765258200818156814426277871336017223289871728034851536721904675705635132157996882017074692857121986844691685909749836940343102635775241580123224576045501636074411303947707099225250897550719713274776168010907861271635630697081490308413886922619164646201630876067269423583997960093106431983115363017868936409949847950260915064750160026190518430449205573763002257098519285728019896159846033764535396821933901915207510405052559691273652763367219361655252374739231538804313718603852944512682185959678918191829436116384937397888235128811517009163450915000037692969072267509332684357482042909263357523140334607205063725164208199433896061828633678729273461113729053560863469600495683086760150686399742309958130646792298628429801941081279046520415787841990608599189069261107850011368972047204080429356321966732986682838337757555996487000364971915954519372791409801525026556365459582455817507196906387644954571640198593193491196426900737810900545256694795251916172729112707435537191873535265435920435793590708847145425451852585504771709014371684812542771775323946491347153697793949650857095703008799032727710649517017129263635877886425015834832846084449211890477436646238951579605039542468498582334317281222812166271641136448547851756300663918474409353831058872497677461968703260116515029907317222927163811262137702915573326106997772879347022471692627456648906846038954312381294326941440396886771707457779978870002194115271619925144868490088010274226828932951912453383948082711649303204803397696346729071432662629547763871099063220204843467492157705658417586475634288683525996626619263295162616497250570433188857729194323197778193383612893540568977325888420367384394169667851348758433484046270736191588924837475225600955618293194997631423756603242088103458887125747171760355377512826294173425086891477283641387960447277564714322608698946667953600404257715900937318874997678888713742118657510838867728971981263490875266709497327251321466995266941355451746073358972576189095575746062652174432485580215525599008166294070169937913831796390302290724543251051903816294686372057423739940047508145730015819149427735329525327462634194644123274204918956448636256642832345030014446310337236205743056388411169692864787473274023283894238347469343144051933876838222436079816867321396897210833133679870809895905182320198496038687923919931839366931632943190912375097484777923865716091647404324404608155376109626716598322019457608725148738987906678879034892137837682118183095113665097272484023235337306080238660975147858829131177437142090373836741420080654312866109577930829192041022188544548116457138186690322865775442162876844002883217285514156790832254957800498564000838552486904900363512972599102302286042900361629872750693793029251347369031069331831353933681916210312277185094088720645172516389338263368671905077030324667451452740941272861151455163342175708022756436407978345510231676437587019155474937422991793881349535888912036250604241661198528270137238291059198699911380234341604251074211246609388189673178617646643092820862759108233488551576713702086651652773345883366546931454723131972600650889070724676757504640765402345102828016871602421738221431446453888141414905767671350748877997773835315192262412974011931541011698746200881971959654967203152977554282673901672742534589852302976234944905073865995385981043867481040652251217119268458076556006834986054138694876364627819270827736635683403875745225226793504305184040822540521985604730931387602604702767276288336648292335217370512911361828817753598988335786004253837429979668156759010746395668944936336390480355474402751656001225568895076270868198759251389467405003765353156466456608752839359817979787276200491504012346881878436609007789001825254307402688318846162872059304775100783150011783442726562240381559731227825099457673863455676971108845456410741590100200837377277105277286694426589132261909403032493005676382460653254790004779686576398023236058025803534059447378242654589825270630341211507267655487511694860882313692350001981269892359442918381763121230503042559094475991078664593715157840667753642971659300013088029303586594991648207773270933395265794775123616479593472070100370585794993196939967611261321995013921720012539406525329067858304315274874740950878901684230751112780544010651277102698136232062849986152920516491752997980966620704131689736639048740681837773297457161398647140605551918963321259444784180043174398470011619513668643604447699767514612593638327428553694893492287447536288376911800222112574042175475130451369525157738265715849665844153474404004244209132421885438689953088211401182148280966733085321540231638830449230491263499635771289235173371204229695322510005863430821520791927782992631087516732447303337354824746114073971220317718514631552104886293532373865707283148697012428156296181445342809900489541150655935560442509832952527316019229368448568965787317944618279318881813671615821885287172034787590512006060463216770403470895048603408719177248653760063734442255859929278248307911657342985613967055967650525087759853881157787019643728204946905829193946641556219784885445738924325441859456371569415537588334370699077974796370029391436948748874133367639366417820823221116719000478240745883156366848894106603393481832872966578476407618175609620583614111318667442908596389132020254389675512745371097549899130100597706840324451253130516605066561665892819391078120526903281325864876382897479624371194489521859132035692802513955802288985243571289399455956521295788844436808572696076452075513807570255133048835683913259203097908927775699953701769115640279530900353052372300842779018818479534966558111060268638185578395680559607572932047841729497340038942677340520181973145097622200983079016183852473160480341515250190327179943370573913034631957606982939398631834793579112491700788670532977273651682581101233569824351864834321198111116182705753832694307675389421154170728073495056232204278734991171141454505736510778093429813670389907062443886792645173527226727000503787945351249274666774295214238703977386609555085851692144292471650184312574369914112662391701767968325201521536094090962551804938330878340834159073340350952569246613249134654104114436535763790978095738016435559982593286234756289744141290014142118342826638977642057050817615127737707599019556202904555146849472282684484397042025444097616740013305697469667330366064954305728246633429855277127218620841780913525854899928286635151284534366342716660473075025200214973718605048862337270457531315282090305461755679197170562442599294580476934436584942523606272765993352287736095238238223322139703407681150995171944293027699794001893940775429436016306322765598377520270414646390536883486243798132091022317391040969926328736822808516098632862638551234639263489495581544334520608202607417449503579826565785576221380375069801470967138969688601990544574800958590014676735245983287143499825374999585323110535172293652507897194995721454177528025497460461447040465512094555599501695732468977798223736148574233522510732324480579856652965473721383180499136684569971157988191246817558460427541628240079570552157906718846989718221415362319019225497187157841764151488865099478511696240792482541555420209094666253387892212382086816413610153741902266582321679293839746119229781584416660760909476105138069414625878271157051799326098916681659170660127452131804442499537162680285297567813863486028032025091230462500490518340038168887790091962173641706605788660804954085602500158702908233763517897340995264273054620928858545129227409311727864044941186913579042132005992911964782501902811031980938665937482562787885219385101113313900068464014366092335682367389815482874751269289743701785129715499566577444569406620576940098955928033684702339056668253753951672035424205909932050692280121059358574646022316242368782831977215075823686463449110614981186416566851606080922677530868135195422457507236258439017747985366339990105798074452572508075873089871052619054891232438730643054943690621135473023524022311747300155133419981652615668212310283730334612012634121292061101472885608091929201382222926137740144617066425125551241723619135818027649391230328966138667222903724792779743791996100223969176649745925901799115953421462343399332359475431789543549470586038823481553393430066793157635825489718596219743556696402387795211174114637266634765368856773700897805880011405516692623235563288668347609307652068363246757399591190342439605801409742337774971050123967232669004041484895772102165025196741421617337572894811638757979050940422833663703458428615897257200941392220486098989505201732731752413917780122768538375392091818145670764265063738010446936357329649682450176307131543834781726551766377843727681878343783883490514107801049840217215096424148173536039052348034310262696270920235618716674584642530541845174450982740723721256344355692979859638278034644711891571184000087462747967890079941297370493165028271493001272981075188310840869917263851612658374669838121858899641139452753976501444137501162590040028473224841280361861747444054543854322634884011265494565732770740844779272380734198721907529275903474669851559463216484596034874611303223513689414105548672606284380288029626652616139416284496593238229456668008509653165593450945278890284678765742637489929867972465663366357962773342933940638944456501545587547851666979193675605636430199363215816701641863004796154082712008225346838579109485035539445322197166202483518257767996021320526628379475249509107773825829771900344516175669056129956663088250821257333634022178562962285785168343279372328919114028164761526060935384589772309801962038000630918895903839015744246391188921897188668122561553944191033156666775833071107585166384770031559917963372893985762703181780816943366893736006447462267181942258117857993240423388022966238888214232555670360076995024726390420379118348440565436442525942355157913423171975693511543088692621513149362181976333108183142352347259590410802622309137812648001482091894394817359408767711182852918315049479918997912808462741833028826387547784913787292246744760128839608422285734145443013414048090450428250344895590616965676367396127552406195588143105987107810847291688267588484939041534579241923900112371068428591285303758079574969758443002709535941320694848787342824241617057274956965492401211709075789970672219618942617610620346061262881898283904028071290616354863736920570452183168370191388361744299609212310829345393564917630478202414818494693444758112693272423046509396510301310173388158517407984681349025903921598497527551064692289657375523993322373876508640792645980882478263244799227818202466684608061984750047504950792236266550608957588538350912294043572401310355947675658454845258195873225790566278818475286298318140232912596861969491555684771777459592223300078008858592120329918539552633279771855517767840077040455375981596836141630878155607404729120641381983371046643284149060341947672252237606331675307128574455684505749139822284176643329743480137376529323495198652128471927345535525189625150750686203747191720948323532499526094583005708402119589813067114420344687449832020034039732515473637958873052698877461395816409688221404775141729620429841360645427982469289595103820750403154841482652388492281959376994445225200941116018029526458721597043555728762555137817685034005438456652524866187519806786310525730464719368124549815067529682417032624778328143973616730711056365475010381851326953434972457804802195556033021043265262053882531178160429511750035064530514484297977578864123883180112863562210706901322233796445990018845187550312493195674018510244625363276082460727401365198744779633987734235783492211302245854509500463988089411798154898847656361992388973428897284068236869443252120684165895133769836428271487287110944124002166260322682420526211409173346570351706730593901079001523033522627106108128746816076155363602677642938964801354498046123124201361725872678752838678933764477992169635219167625429079408987647399807598278123681058762111143888190508920847221492697465632002680597175165933461989364795683184020026167512864707768810215452556140076443153067800401630564635488091348908328783129607114827166480496708477339733944097167877769963501816019541650364048553828985111009887989694146676666996241539244196919153769719635470755537755011285175528646041450119456803400709697426338177970748168162345025720256143117914115494084803395528181957479949206465470186212775628279267058952518677117190824303392460294873890040456270219606787924096111713139933715548329343374823266318301889991991089471437930452267733086917499710575806307943240504508660037755626804987840870351732497946883440435450938606498153785297988424985460891844826255833914488891601773348767268869863574239549519359418372800290913007636371590195791868210187730926877366701845374767996438436017389224293299903597905493883328484841506377970606388279487774188616424886817941591559750619614139762446182102873681291470291878267963289198347110819967164791287333766354863931161088280898430858968614302033964444838509005883892906411609009872969707324513479474138778234952379307126555801160875942370960895094776740746655024494735585649107765433567769263638025640968585842535218377944741987497830062758469639472270648173966213017523724997076394800553908926249474129380275058501520624640469175599051285679134250025593085350460370119520765461178910997702883026014985886673686365542487364907559706415950794325479136048493867023742933293599037910672556883382632637799596859379586358792154005322606518101915372709415093392774447270694199146996544969956006212900810345431831204761554163409696535920312531955086890132193117387792657111785634158063521848641220949174183843929568011493413602987211612263914983509596327647946483862386538533794674815491909805008283240816291161587962484219137279914046106235472009173071503923600350888384266221605097597261662263683333598382916299014985478818782852461735085834242938705653366699168370576089118227444844570047447627633018509851404247466714131725575004530180416250146094390997423880522735883952664967631157053711754812195664590710694062319413288765014466301986045170542809869249782523243512488546226116970251175454118618103468994914983408761263293356387243281085138362312806242449523090346716602089465843869442619447519236940945797663207475067068758153089720425265141808702565056317888032324974177398429840259596921248034644355719390026502208295543313128971838738401349940778175780488043573301329987967910246016135418891479216154480722715375703579636020790884398148832974180523013291178612795648514118743715570607637858300054744062514590420409345496938298811575332709638336222774115973355383415714907109051658472226572255620936224465957990322661279744971989954658041131815774182200763653133117920461152344881263897633395079797265209497685195839336702533258379585028358518168168287538512739151494132950266817112114730253134574716674300035739435046547078191643154093469133204216182845449349600381132219797064908094886181971053265517218625901338041368709245333392065866758370621486010439740929263558047361500463159379389278189120864243120000089738261403042611176642906491597329506695836981509332606896595362331718980086333223683915976621840786779712598813472676110748723541727211538287484764050579184692323186049891711512053006943072874607566135948769728163808072886665241553740714349931997002655048444142417114389750153364843674537693296932864165897103002814046541544074782660634375543387422249345850424040259804575587970783541206798850023128224112896382780709960784254488045614901037849627885235580222151083690275422129584032861223601839436212223709918193173344145977255397596979813203055624781853276982138734964333952170011049102064218193257855453833606776473129736347198437603656310104604042297987629458394877383667362760141075391960687900585209556942979578929366591445471093822420099193155783586899666644586414317426510556413908456028415262173448077308304251235114378005795820912342332128966071230411604444267051498277182165246999786340341894338308403762603293613649373764370739324969649603265004278990869294527619446886858120855135071680221121288548625895939838624756704651427618454184695128167023920784781863319350171798640961573215462282771593554441298102156844457752789491311802901206939078540606111335600063819784842853314536788197885463203550813254583810555017187460141516709075379665503839365910039119721599419367560271021058379118244898711875535005845298837463595750723984465231529415063593094371218904307414246801311677737468628511357584560933393749891752513206327106478995349260530956934170766197703520019375290778100966490262908991869448958092301349002270221312218254660871844205107485941438430142576230960662887741973124452038014448011878169088338805817687483716649915885285171032403605815005418365136931448909717802881998291070427955662436338857307406596342670929285515432047388825637567583708062216471839157219922958023596388543316873340716084655754325102672200867236470871264236755115304638858252162488924906088006196447150453141051865192709042734107423209586923762185994739778056663077986174688048589378592112024306982731269689698661907505960320580133347383129245255448663941773234671777374500907809715208169569429293184529089505173674017206549630899757500031057102746391695633532377011135439772961686537292286506903014037686636652405116797295767419192880925558295533258337930021330223460856781402229140633847010549912037230680738872668296954279423193361841715117292925584984604413463304445232621286018794259268366098458981051255985401337090490928599728081518438851318697441297448458774793743260909973038450853793137014405351826139842113627697607446825075754440922672117225328997229172275889895600731625411668203719507354408297955275973869185726320922025475440251052750349377004087015136239542237510159646610647558173127272234470204969011810662457902335525031312124160100996966882877250184807210922513605543805698456114619228867209220526684759952402033037499107358797816987263554570392665305907301689100690185332706384227046548292985297244882541493840174959293243676333623600130162794983980544465906159976261867985909597292321562661605175651031790569991108946055043918785107461861841312340532506601305785642732969179107768345784349828482006082367847228362790020470739536368201457412863282299558662634932270740236481354027680123775660125618929444242751858909080050064194058981688434341905905623634812008553153844263222395170277535220613750544586915776069581713864379600973139731693710273831976689197262004200510942148024349362544190791729377560965498473711729090440595925382267544594423636411995836750904711255384872982819825312378635176059008643973987065909997556362517982399036901356528039429981468813500441014278692633613748725106863491343857174328795157083929706174938918869210491343352152313443054729119622906577520314585466390483761578040743348329593548251370549969157897828227167586865816989063055659581480249619075587229629704203185176989236379889406771171765700423204581475258828897824141420804568304994535505128633496433364371327749327416903385417932292817049701012959550738869832987016476572189496950872115475471973981915517310571261040378819718350925786423017365383088320002639379054938436395217627965436394732377355903903995033034323475581171165848538138740641855239924033893401872908766419386624987204554657061783053982842661156851217587493780499488440468679866900742830859779774144964583474108777167779279882426567202581683538592580505441335044174375557858437369016259361645088144552007315430844528438097773081032494709414987108260984092281727440113111189877087132993412998002562907037972754922302261041725720118802870370456937743933052435393550861843463073028614886995820731971321498230150866256658638493525649369499551109474753493535477941233798674684925462140428918536500562945200036711913937202018151147600767323741103895048229146730696623387979542027190752982502902683072249607123923176049267228545735106140374091687639180757817418828528993888936660032560707959408129707761648124019100318908483815343272232382247094711451554837459347468645459152036220357321677991819581298117427164236517067993605697250440911202018048449716948541776146135392093012209132296035431763042868238700303087343474590835609717640379845887237272081586466079199897970280844527647686551450766061746567852115201483677850878504129281847742123717258671418575810301271798239136958680971117626853078360148291048438284764932613252107974242114281599536175200109019310569699929249108759579218974334937528678638093031811720602513007235511174478069086349358602323766542670187829876697757901863697011991729778647138683509556112153003298593097652107315212716690909577954027618204974465956330082344742913075764792445614816362506934801169281270749025689942603480548077860670853076754363559616405271697457369610772148484963077829569221532423176169132209909364543071138952526756538643282588746593813149171686815112029311778249364601405568432051098321866344200738588554459881200898308305053451128683420703524607373421448715914072743039444548666431218348145708115376539092522637189779334027168283892854120740846386279092913142692457097579566127800994045579904539434199451057509138599387040015931280042656268283396634352927800760246316977004678674658685219376640845214071277388316034104371693651368611735445969920109068987723794275798635424760857306220508224074430190567011622887777324652400773655688776220153789127610720961279050557034401521102592613191787199493829524079414147429926534832167946125269262800689061681654746885733430161345137894975175174546089603333998778295426656752281042450334965469916755754843518593247503600932909176491365797164122482471941996737236425838285581892070766903055275874516111716211478760697603585947327806278525478423401199060820415519115910931772028627089715744269692121675092775598957575378190490456524745385567163730352062343400102624615147490143448301347541001391371389070911907809790337447502258510642636562764697938041034010627903339410616208419849247096288205554543633804337560090981597756353537147241045365144166791533180918747889103688366960116511337938648570233601639517864677243635732952506442954996702682843453678677776006847898101249500539456874562353406273626612870374559362771436841495628247883412287476745494660979725536550482204951720589019366962724640046812221176357613443361993484220128490995997224002711466103484406916670862957987659079450006087985610058883294477660265686050237406765545777838485700125843652031374042690688132438697203588903467825514820886663228104866574850670078384465804414871990484909189783590319592139924338460164106431312136202071155434559339249871310569011127502103526026845175894019040975506495271987490657368967417126159013477087850166014358014145686925042103127080990268897541919016305436159353307892425824311517011962020075697373699110234130555217702561585058226984299056200687915482692898870415750603606152944255970121592196215018708661145080911651869826378210935028318265524789320866300750511997876578277807030870884384304294641154471541492020285665388639197565437408989145975337336138982892949152078373019397228917340572398548842798637968113514495659533526658295532112711406178510203326393977983882851247147875866944168442722498279935882806697097688365173033069236085973702503409713728107195046167791827921190408998602700694877521956587223128450162530797159408752371568136346829361986626629704277284598062627278263208981659720595229234576813570549297163147722882111415630158245386978104610489160700947406273899559089007103139161075509098365312112592061679779174688088042228386376866018643796189544423767383486986547883884177865398387633706389642902231546415952679984476488037596377096203736418788708931164204607281209645203320380803933303224935853605038860957430377046281512558295860856223882993954226179046136995017514471122723082843723212721440136233164071572049000846682666379042748880414548598685322245627995864999579359969735702034320865167019247177092094894206354134379130646057849940214763790217787254046597241234108131329338366976163735161563899830020754777540665591275487732741698208359476916602987582329310574170546415945446300654867593614436512435645874668403706352920097046761463905776341102120476880165835051614202024802791654927111910608978671621526094219256789867595358124576053700795127074255474303422043427585688911460433983833880811145549038339617920267030783623487603646720154715894087374438373889314394555032773380431879066466595001578558323873579194246117102258329625132810796483494622594394437694055025832409228496081271734401743198341514895828141911593424341608813666377078316916093695576731795995381630185904570435717087767330763790186619572448260306282911650650563053191280142937074082463605106151555179955481822557972571902386674076918267966986366073463797382890620524431318432742007550951004398021930290022484221224005943954539009866438488966411154152262205226112551677709289905237486711277616729221912958967930271109671556267677047956332261007638371913910187786454225393098724633426348609709525585499628007525534343291336658959563694336696414170560577439244450682403727007125811383465219050807171424983254779180558945737666371706520775436813685794728475299099837099452647407197288147803864554295187419172141607231378194163817628865027643753976334706631193386071880742872968195458729754051849597171801670504759602857149155888421900649336383881771850362173832955938980703030501394869522582671824953112570966395332196233236415206073272001613443717243153094083651300291079392094586507162181582577318068689838069511331429927007808215207016254668880831382496477136523645629614426703214936569585608410436317335023687355097683525646952128905706116717632667005671451322570400104026705672595588225079685228929164012799271530804825420778137799753195119621824319859663353631029159343416820116190370702081966161881952963406179260999299219650831272423344048176339880340462701763249629949421073006677687060425911624329094851982469443612752095612312056475420980201414518591730379549324368764141111935228847560849492730798037011468425485255345362434065192110645382902676558460339978455351301848948493963964569412763295267448666146324493285934375917893960263815603253256756570211058849246143115453221719828291638025387293066872798015703628593034663168489231791766842062895689466198940930831699615746971697813240967299912192678288170601818280000207708721944323512526715742642359215398175567778018985441841313003645015122884238491434347907972233832091184808846072436160875781213990323133228473514214053051295831287463909125524949860801802559660728886963919504703157198213474442030049231441361671408433264967646106210635008456018854502964426716696195585335364875877211266888610716954312502425522420059274907049114961226223461185293668352162990209919210220437153136304786127372508905464107521434165346014999803939812511265623403293444702080808247549157572924701766218963896010512031211611274522550673344963552000888257716899940094362462297145455545425650236077140214492044639655424117810389815859570782033369964328322758589068116874945734422353830840134617595919686576386140981818366250420560872578731413545616165117263403596054482706304045822279529768538635184171015563729979061711254506036470745791768285505827860671025464543922926969344753138481228210139464086429835587096770393300636819186773982497832003652698531627076811738232846653560011639889472901009680794149613552169820564297702691573862361704853394636866263155425867699485856986218889170345828451404051126963237338657541056227490308470059723696864041150083273459623284054963443643871878794350929939196860127666805968404711350908836747503722289434771693935229825778445427964070588297105407628875589464932266850668036081585634836300617356169401292369698216142028937296914285689983635802231703165151255841477583637569879442913210945237798561816202801492719021630599560224618381102862275054837634064701765038036902013160919001400935987570386316511345286459850913969100387575227320189446826768555003539919842153286985037282701764981831599590650879953500107747936845505240393370811161570956997096527994160952362578922006913582277622825973242001640443671646138883379951989276719426397162595544247911089911363194684430276975454660332575752443271771863651078406871301276842917968851913854581148085557787737797430028719112029728017169513891301314190998085018119333344385714833954519218102035771898352899170737127310785406904758491010909934449367437413295448970179198336239289651585266669122183125728284268507701017002348336044564502606703545786680271110223766897753968894328993651645560177273767529206847522439856932535860106156715617948455916649111093139062608123001537697108993951687706889117201104920752737149780331212234135390179562061917941860066525239729118097338846152666443433994923859645629739870819956528720335758865899667006693210411947104550022263544009260431996958282388071705908658180843946104240187240573705674134271458333651644899134153659457183519921680582451103632074817885298853363813695965579176771976330453933144218250793836313019593081037433661571950696802936695865206044098032179331721246386838226032686957859395113297599390040858557656758928888907310417071050487798841691987243216516626129211465533732288127747570972984143346733652787431914386625176043397940709546601383819045618790650075913413023476918447517149959833558252669299043974214933092206917866903377992809467664948031463201060127936269570328079218555521870525407394881411148060237942071654769741041112630792476534542413738540169174222997809445373823618570420781634999596054323435808314234146295046166799897928691235686898630462857397347647839228495511177295517002251052469543582039216094861560892292909594764052274648814777225862225997533259257516098855332447935789550272950138992622156562358850135393055311341566461264086609160523316609955591458701500297729114054905923475868820363043172454290977963213995330228045261239883904383907878802081427410517737359227881472186298954711441653203779950774075951844654288128896773717059110289763522649081536255663272918514357520025534834089866639812343484992809608353036324428305591180224063328222995469624762890757237459698269781271698614474359998437405840667394749983205531700960166950060221671632580878672149950356543578340040327556076392861570300765671057486994865888429713912319785845681867485913124446544499035265329374525794515220557074693128639132231575406194273656671795160352622771529396870214497470843391789276708924807345338441742795683760613521162947583938775162354942867072749983468790775348801273872088906870167011101333596386643424608868056767803673187879566021054255207931769590285440704458658107206204965797952210993693275445140033986577005540831869532418188753252266160627930278622063503949070831107815179727158902256388173747640204819288669735928427610803342973461223670741592187840408107672091174197350469762952124450240457097250896751065077295462131037532982442645509589900388663084211414658478951409046546147123679913108175052179743149127954787219335406617807621695872490679753120983180253749222618867433483828167411259831044305825737376415920394221666703977494716856219472217006458206430360162334873868457982294381617261462516079128519088310963018814691106425525679690645801636235638443250476778697419357701908759813065380706258141819029831292285852902581798428115253459060569425925328132185655251931793502989292069949107858016198317342636777356665595619733646516410820734863392433728480214328526678821857824338550819198470825058513528053837015386140643492139052588731282640520895389956307560266577487426720708663923585281038524635767370193270110688723152855746045528410328758018152628899595618670727684190045113585872154019372588124958043066509897201959972330360725558328979263793277241251347929137000405639121216241130358743952507282763380093420652861309885097449123223132970711674771783877650222499283530215580421383233114337249726530321656311945695962410165552983665498636903753691469045433435878977468235850751038215787266591727948410819345545647970402094128074678209777789948239615143787024691995768411495461956547813829848550603227997139325924970361870611420870218631536221142699940317988978807819796906985860494754046767525862700397346959418769149325938979378764996917195694186444116698358959266455415273441167658834445596035646269500102124569667532479830402270921017899196645660655376624431689338741527811112565038427006448637397740488762550581941240575634504332427631238823015455842930371226150705472220925053665235873006481777901731622892242332391644098880796104240663033220626866930726105413786329500645420283380566634706740377883115556334551049655392416302304738966864153371004275493309377376987110839373431368748524457200265187329401138992553253397131494633836684130620841713336911423592487760481523941927420128011762482848891065202642131029369812790921350211436566005757083742802961296811981613275601088556795863695397664973921542259098396216853189924631758523752476538403735649795355036965630121902490709607581252313206161148714184225607527900348825420752521948694287293400335058453177394768441202550440783799767332128201119743486133540892192481796586801815041502763434601923470113009446178831096545795011611164111160430370493367373467422975612298658588351909043203553846575132756048994638032011834299996714798320260180078669715350823932585586305009545411176378429001639054536513340578481013801420010095540399910722979819184874487296474041124402944051003681091144242481148364257215365015634300925315793524937020356638034693651917735822434842941111732981892367218299520284334302007085688216538698931332809001281990880669688611040827768981242326448740431243775966010411749560987203963471282857882309452628353435922848106314514710798937576937828802044000877626584492927889022801296456238274419833209573957731674746593702106332326319480394018947817208446801970195846435431769657080627296530082605256895748604193289940300109177313308254782092809625099452084265145796353597815373392669192633873855425264680064233278955824248809236598390194535435300845409300269436894638229780491688970760669328532762642656294542397984883459250735769942984912483062492748604171794168484524569286520157398941898257830183497116296264104626186725887318931030224928302774050410457591493300582649494362356056879310716325163637335015490416703171078576634653743401793018788547058638143616707177477295580562844138890746463678584860533361292078955238349047071633823297691934056321958097992706501530484563423062120445245679920042824975021338486258770283038004125190018236268281680098865288291645345283858005071619191342672524517706749518923339892364917069347274028799962122240309813668324053436064768023779789401280444315206498407150814111786831057559712411537300711128987155338641474603356372843567231205069170902148075580501656593647120898400704114221848652418175603687958873915618793092476684007200826852048064658701411029151228795502498939302710987745413870735465081736120538414013827684679610660747257096031353479793238749583698519998900282699640592638853062948738332483533534840738143845156155352719535051699390395469614997726684750415667170621620040081546561605495474328051869810537953836676355430922866378970456660553548819497726737944560390856015730433772323505119046053475375726429279501805825729625146617144780692462531949664114472136254069913187477601423977755495612392717292584913393105404691780424343665939927095631196080379630483714182680264521787637815175012464756817580264261843321994400648474606775319106151015260473235187682918983765766000229281503384891147690108814969576217215517282822650238323549002243638696261739816436352186321430520545119562136138738503194768589329218157472033345943129089099087612812541776672187999429056944764544400006738353461679914794685082965263439816300898683219013818795279197137072435551991915743843378837046203868269794978263273346312731621371264975653800455849195467177532210286523624015203836052298942179141326996038325568096415449673682002569132810473312635660706697154584182084769331150387308601128304681274624610159340846387493125980377111532070452993181957272355973622972347849691081545964791211649693850238889483751952483240284974895040615893741704652854047233372599177296716269202306611361152408474053369411572513128887251151271233662500356133681451276178103125616733888113142690334573864632919494714446797887619682359949822560145932566349988610370303202978647005004980455068440278671479220350720699330124361704016720342606584221107710664509226602134706841274349001308022509078222111410080066587344137323725593192291675795970161623300206819865901844110893534849667131716140015363538414474642642859175537757563581007719760169465284984170964920816136815381933325879885988891986237616740274279934687140787366853216710430393370975664278552948578296688769274147983371114222257994484026823734891629309028882801417927210602460701168804208700654609069538846973406100341849114204220525031472486767759115303374424964850915526258557010999488883001319211937681877188994553773285609400876887635545484171342798578391943889868744509160704182399956721854482746354494230083345993686411253371144095277672551656117081814540422612854963211987322126245981940036659778622295449561365142670131482374043344843195684860447901629064995804724412419100780415915629594930514422845661116892583524225949816873909595543586616097776165600867318110093984394247002243972008459320381413296878646750781181127022013096255593335259450290324277024197617447513968978873224749882844386500712633891487786768188898118637534241983120441642451255998887571202357451410818327686529397881765903470600607969120626735746127218225732826282732081219837766229717686499018655991372449158583030520737195032447271736385264214165244222490146763238307720234279730279883074135633630746436629699852424214035061438936721072928907560684662819253086181449401245493710754773242141748616075785408490785983710365705433797650388129296148323156485320512653946847319042276918582094452919268544094438562848816796418125230492632949493790184708987459038080440649019260024445087729787830961129039606035149727653335964316762282285391904535644181425688074863526249546274050583229181251448217071387498890141178825167291410882747736559329427750616875619388216869607021266138064992800127285742689765080715172602958391779228198593487142300305248074723821299991747691358564110610333110416305170302161131581259553325663608808126633826936117936269817492744510130645545609101301267744632738014307943721037207051466999692923463992893860656926272079238295565702574621000450770634143087331335584565295998503765346977462677257370240043340765840207916913848315681953399433643920954544491767864904381594945054255781055447120364403288018968159467980870117561498030900917381493198333070371545191963411447532275574758998770214325854647097931102214691178177205280407752698769961974062960244659628917207566877394291291750156207062969364425052755359595928211305955880801149872335542015534291308585057707615055720906655315115356426478002882316079716750524815550842875863451064100005159812928447427386536675963562686714573624168268298070711507371669366089835070598166904534171816862151160053103538223102470025281370214442653454112463761975448543433903123665943099280498338208968171152559554757800503978018930949270889092984658747924067926834626020250140013864280847284240637340189497657146949099249334208785866711674409120913801278654296865514679310436048487496937296420711518326349494115865358321141255117134930487232168221025186707635271888330482314107331886818793476763961928581343622012381031712328673285020872212549079987202224258048808161891679749847154833102912043032973479430845512402973506799403345040413058443910542904416343846238049174293790904362345043275121029278535759761153409125749738098265504941592329025543988124091680675358786250947693864359875428007601506446775567997269994362352197182171618594450787547443376595273509781321241464434452059821273757541067072516570831541895765488417425764313953961461418045702346193858102780820123075105518112244570904337954429361969626516891475107393445781637398299911310215074586775642436619399166081473696385013634759316054552349278382422115297411998947631585956049837356237755154408367322692816997930717546787606766436236471670932662005646740246824420660131280407889991404476604885821805235848309516869069687803549509836726656686583552076575121407209832794307025661658733698598534006921286720855834934642159859533313438947841781671854342053950681435570091349131753047241191446483806279327429083726593153595636850667657819388280889681462113654197334237441224355752170523739559559962636192721525058301533109598250388768125220619740221459415534627871506432589983249321577367199972155447639534165421269577296830509936700184811086914821128894197660593045550365434767800555369268851458998656359086186793862271674796595582204872880307032196884884953853178574867115480747880718762838885197915622901501457084426404620692097317429532403202196160147661294503230279042780621786915304087371092751540598741882776438941806220122317879989086184544187318988033781462646498065125488705556399941679128515213454635572725398982169367117717382113342744225026522440313644913389570020589057958165963060371511337837172037136267504689294003748566835646082306647988791463649006887810823688123057395328541467011686385269549858627508769720696993703671810254686769352484071759122165527791833385215389923163555634738888635391047459578844698211543351917065442222910690084485442607341753694156725889227124848260810297131409009966470457864005174673105235886115337912454296113944347530665526409600998554318669145720555916116678124462743147610172124576693084518936946558375682668707980998866224385246724408240884121717209454891798305684368903162728773480783974315489390430100988165597688737915328766065439243289108718589736835337331434752513657888178116130290987685220104358701173070179330453348326105109450240073964294150080599780868284123960223371897722394405352360316050733413362800393529036165359373299865404524632241208336453080138478826842105280607250137742402531129096713510995479102014256383596293149747419506557725667915996460106521126054412293603849324039793665432893959013937400624261027641717969885198853610924694564222000260050525260860289199377388236935579340605640320853339404203243301402078808842935297256977097445349314628606666725534722413990499662315990703833036314944568401249129283599130875639391840362955914406268426612367619611042674158692494690128684110633247445272991257364430087267579886541986315272280521985275306885240821638140625833782870060133915084503940019811500769501104742344059901437002844345417551542446456457366096417424544780532923091937836051563353381591738350014413538859188239817641297022481203151811485439920137567395780217790698022585874392439865634858139520131296622483623903588046732329186031646634171202577147130967925063376908534901654192193048760385801041016981387747398748213114309454151712392590636518280917643565960965960932962995534598164973359721465098834128104223973050105443114159779271409689997079695582946460546174813715215408375235846963397881342935292100612754510620924338120375605955789086763541820785925840817008463208598720338571071421999559160200902151508378499945779342077076464908636366459280620880527373578553518924850847965922992757681093441518237159948688768515091817663299700252257915726695692827470508659749448062888774108440173664679479336642738255928537334811668753233018006569955248084764155611316828141013246454998921144619984909341718343086257252802585090743969662507804076600061803898447749277898368689248944828006527998682069143352219370692748079619032387836108360956452899445083401344888888589021508013055347588062922477049138224949799843148542863697849268642682478760649047065713402945866258758337326455493878804861812746888177462800057688535432260606841788574517700630921224875350852431504853567158518633281162501324480467544946751986698481757994989000176998071215294070790019011064511815196150687321394022535071926613270939127198833190434130313253652531608932925769573372379901907608372370270996689143375653507695141279120895536096166019397418814485062837117611917603911709245950880686740936130486996248992165108306439974568487409602007568723996251989104700885246693010088178554577041595910979134809272143241304719934409153449375796404534744411103327174345076027153779774299544400811092265547485356331043423438487111195761578103898252548142059530830308974360930263640360584601076164618616010222017876217551586612496260148821909084705490073914742023905243138547894412550228233985973042951428502146052219068264956238088067658706662387115727107970513056825879001035386941128253745054552119563184158846377168277119046238446208253377948172445350196220980472608237865852372123224431534397555497192101068484265494063384090580910560315633232240979422702067649374330923863908807643660336527608257433974229891965113545479978975404358117004878057054849304007376596609994339114307568568247422169526687195987379368200941973140596106286690343281469564619174846349252486542720447328947154473024403645259656575961632265623148540521013670447943191385103185940810016458693229404536443289589278518485951285360775145141659645770603833608574585478705121315896323080326415884387761238647498257084545719777374383002904338471503688500541313260240692215017973769629579533281038718174781407709172806706923820061748015835892710996568860754273534047727321710997618069481998705651770688163787682732491515495215648164812192945879919385830129936985590015534257546703471503781225207913359071978777557556817136364722639621846537436728550150169384676234988820157318672669587592115517838538941207321575465986600122013456251807402638181552331918021186077780609079862940402894409391776980989539555542433543054784390541247704611343077569942668604100780924806807248652499430492036329674927877759047359409605619605257885461721671114602039276313795822109410564894399318189046812076566133150587583525956432218138905409815925596653825103119770899929884576579491625734684797631645143727255517336231845834895793681606406765941724541142726810012020948891208289599598006820896520847994863574364500038532230006486551313857260334379018205760929793315142544021596986178892638403145174496376612977085139387090564822439509845814969532881337319381848271457619178095870060478317481902720297286761564007976604518190229559780486649679847002556903494067375290153843339552506269280109581051142278977859829004627794773120288424738935388210585001460525843485149506011072767706826685098029222054440753994724122774780997663097794560778700762818600121825890015174736428728497413525198388629222168842864188366389412145066627384297726216641429546746114009172444230980541731790399761964211798692768846970781394471954610867895203297308381449703114362159158928665797321420297790076235834254785616783524639442412462291823811181225903759468445215565749160807210879778980408165183438717406475253842331322078925922679389488629367613971806367758498132341837044918457038797312487618146334961816126472635940142826984927497104332731917790518352050799517426940979533577497085011399609908086253433572790617790955554160001177602963187973766708516134774189111750838195884628695935636595160707598457686787973421103402810706959494942519493183470867287542724273091179105775728025141717683578248189515417228289843393844031518340864800116211758573628561800139542773986758803676046230323036131940468021068966676681654059375278449301773110300995633938931686943893658648380476501926976099897918150983475460858843983939970628314231196522560408410077589884971498241802881950836937786028740824280737267036992160019769089211208168044600474246878248454972157151151439817870274271074595036631064269478376830689282007909908194901403513579374304766924818977992144554144752643624789668503380673434043732652951260269809551283543463414366017628239342568950819079913322839923428960696840485709552669467799600961770205100400464729197862502984356455702066311651053219278767802224046601970619219421224686617680113054931701065389559761853683627083854656529633838995594006939461846795255151682261999781509047785603889335337648404749370715451032764240650231234476833697108331817446333213638140972101149006986802704690505644450227095576511520074537901333074008519519217812293286094571806863152140042260341737051290089152137972904152496742205734565165602573293168560933940172824233018614587279404386871558280624973187561932075632335877973973869915402833285159892020780335422197372000784679582322278956739628670640394299992712736543653302831302114869236609982430624901564319349651229193929549020341769761504032034066818017701002814713365784393169592774757819882744036526778006586993783699417437855785247378503589712270596781802975701363091781093499576841315007965563459499995229694407886488149081263153838011286186203171908939219828839272722892304002318885707244952902665939613970947804082100897140325664163703913534400152925516124230404962125036197480025822402124586850516530813310876436868099107033042272083165759957952233637907314096549977282683865162310503314361941659410824965005273363995865379236636728496722841099303574127778343038066853419089766294613513043363051485252330978540850852365453570399145511164832257326897740800766361885191316893641865373120966041594453924220602443959157326315214738933804745080516617594282521782495243711279523523605554060690594595101247468795157470274658348592312213927167051369112907131254000635861567688700779955478011239848432140905600526821616273788714276952510733174123922769718054809365163356959255623584593622914943483271173885054517789092752712171955504045428520662462021852255289019848719120504573682360131764710347356810383029124600899092533197086765646073207467769134147202769708224224391091753333714443617454760826915032593411340013083090791156773951139091215308959546846167577932246395700484181713317114214343891150440438713328542526246706792001678451338797147397872929958964529981023721606918331045472297236577037277987583167588114494566262267524888441079683162756662729804325668659849636834524085337807908145724009953352550622258712843258613266722194761649788763283511835306464889026549964801247493030200727091239845594489783808135360170518002743623763575971096769000868692697112954733665796119850870402344133282534320426193402282637276418900998938601733330123443080598844790626987279694706053683356111329507386136696255675840111352207424754833308262977488225406468190933234729971123598147089786932925773617258231921736529796247428872252070366382887597331497228315666601740388596061524445250617763004470999548676929923882561504380278195241283753952518848419480091672215695872667714149528490824491381591370380316714241182390735312403087185783312986842441328897741697338898624448971011839403516905799795018105057027725165892251858483097280939991977348434480038886066839032458033853920053242010254159314521040207519468872927496180013921168450799973184017392034696800077757184921987654334491312076337638859715709303227512901517693219754327339996385257000135709926810521565299685162523222118505998736172621175715731846606340742763143644778385018559758388070777511753136730915409019107269268956401213640687124120988964968549241806570108122978097386359050524434801600837555376737838338463529583262949317771540507812705834701722993703761905500333128549342178498090825468228873964052526176094402497004134042489752925942332835943465986969478125511593845060104051081409115194039113690106593292910791509771854432384505923448011394928737995311302909740529035376936254962479274045926063070229461877531249645190629975964751652085380947123125618316265129618243179040194667086041426819246187468324874467446102417923721169141513013137934509513543773259653411150906561304324123655588551395762619476095573878800748364743629914589292685157496956621849107372443850251852801647330162446666504359943701335803154096297241032177771087195571742305708500253603278905278148170364990097293637414876498354708126695501413139870121281053466517905389793901612310979195428787736587431707073115677955051605697324698393478949293574317898606617036851982197347720280907229958755611560363995511479489351986800497671938604221428669313569641753859328825519970312909615533858234612727275633157540599528945998873673778251667079936738437553687744307295142755241252671913290035283275070436666577399041585114314558482095036577824170575115930905142949720433018932515076466799996178909121842208664679816332091321472724796598182120616919422781493134737369538328519124167586223882937021529713541190685289440467965543774190309721765957341088808629446391008724547368468156431479200776737753427931516306746257597458772101137075964501009613758910026701334672858037506679027739887695239298436777743003747301608852279653454745284117177099444547958467188994242426710779092035908749279108687448437508737743906820833185769166713439596151884229561326480102912979916567976686734179695634614277306838423530034465038828966900553471766840633349518077105593004246565166152048992230545453289551735092939994183812180362324050803608905178621861511173150829629948488677154902407627019817268689511665961509158385800038207940459446225715580445641697869023686935903109257664787018999241150131376364849027408855380984351030332889692277667025420102080372743809663079979089816886608766567055894258711322954320571542918173702247697548840784741659779949176817277981791673724702358037223316778927864070590807155840532888799296966047361377863443420348929228458508318390267523680558137184814482169608481271298677709912863557268257780590938903340373700461211310006795333603790417204259563502281671983643354378986248125135238674659809879611876118002111571060449977834669536212943689461879693094315379244487863547139069637433157536920798564430966597028969541302841272050134937792343302321540015187304032476650757162500031713715811768587273310898779101004311369943159274502423240687545677712563399422423653742913842097362437648407166154041709301267570250214905159570680975751513230857084734542251575861255594046930327931262078337217621846911246762500631572529463272615544673143731482340028587638455254859846658577803943514050474363564921316810560109869632541685333570768235691162897965232994985961527062652404722337526869809322945805574541055079827360592189762478720411428847120313548749076554715864014139912598780500746331943139639952694868247814173535642911734712986441875321556680188158592021651939894901821888864469888630477887367778293442481065856730653726688698350790856755470234161154059091847339152190556848654630886932281014668870994548883877435552562373456243517002777494565901481125366816291516092307557534643112908055202828092736695330273990288666650379832965682240055640504273914114342972761341595828990717465342576369912975071473282305758246794810018971612368625338927264359692690400094226780261820514031693211055165786615271120945267604805438533360551733843411720673853472039441146455840660739416218358320746313651125382518482490571160258373120790028198076707030269107946995045549714938138772324767531788246713637532608060952427336398530208442385886154248205328826091276400899675827707443141633686798001418780595317728804435424880115786337020531878502991929695295504430647847432036412612830826424966790969113297007470927444887665856994278333544866805762333424265035283286763029305177936672294904834588836798834495382153150304601090453871831696545903866638708253271324462269977526525352799944068259061174528347374763552527511947855599831941923786324429557964879422500761381434337947840599325227457478981199343971589457466233055189955090320875822558577653251591249085232168843070447439571022074533268418135626538043442609423375676443286500501357450953495747763346947685419130216271370759572139120651602846102880495719627609528130754651940591586024601050104663455383218600487609198467671240159200988894539983754180793154919712060390799559046021754169746897938663365011470781160154813895597330450009538509580345756446773808335490196668863931141086285791764134834985898120250979298753083835315084125261922439249064020848639592630218433525701213597983732695613167811477240131690732390909818684200910397974582930761975042826974708619412817061887121871874948708106500484945792275613997188801227213613630808115131867830960026690161619690052583553513226902276001969517882149988151186380569170658710842414659940520803997170750711246452328887030845315702499900860800239898025509424201848273250959634167008401823969346667595193877980922802351821828418782936104866060241561989816231433226856987528098093046430162589577853556959811942108429033579775113927534889916725841449883374753617139674112303312424583028019167725240760613580101821717350761404152394332593213137228431089628171588441212176954418414453020346974549340788528030551593092377596265210458876546135577048858348486102616063455456478087185505259930422592593798514613942122344372041392933404935722605558907720297857760130147824463619277168650932132970816446039098988992080070994948141985492813385280887782568372303147033413925013506127098714461975040491631511467381067631926286232022246827410393891742869320766592503657108320615988168240995556164500678850840684541316001831702419951081048201763495599875967528992649442789373610640151755654968131508259803731081101421457937212319121787765827570265320508697389136564565224888918702811149149512835051927699508205522405147728837523184511232501499014338100165667865885819082014861480906164340058119885905693353906945351313014060155638229301626485898003295111454993784347605474187622590325945392844462208993888827483104189848775087323512680817223277373555129143559169836434845610285970926983286637456418001271650608764004039228005353946399350869386682383806214770981830646770853627572175712714963656221002704504450621969008668384272540017727812554329391668915675141336931264863233368566452564260806362794475589451779822311120947514725005767102562474632478390930436585336846364476526786681824389459444284422134672786359225172847817589415224310160794034723482506232027459641593570731912077738598900832956304007634655703816353604839116085447754432334420775023887630708301316946676841984868678733177474470284907407505807987138070622745580735048066347037218294356071617342547617690968215204089878626574144647658068220984394470208500031265163831461520124765110195486730704470422741498606976258009621507059909003013398642966997709696490790115381419566950423501185758576251241733576924853038333295676610166389317817699998780630324767799775079568842525597606828391133914533546411169672783254731859287988406497551826919798232545086997960299140957036839579554433963450592293553817231590896330020167260441748751804737199408629046563523286261860691146156188683171543928000649597144183802424448567585222326167828085960992826429305015296495727408505268388094878415955331820164818100381014193526416237855247253017297865284355312989346036124090888388933940213721739427082573889010316719464112220631075613919842977574632969320901161435293821567785132916440997043642618558017409794116290841136205275526813559420422198408787020855936182245073070316149120901831741813049606073378399650325491721381239616550432855531279323961723106766580028189389501882161035831951144756962479325048178749325310077238749323220943762098277757902383212341374979144231506102422865223493587954751767426899060637401602688337097880992934930436516243871619991952115954487166064886607744571780747708006934771416894478654866823250774416276743423973263233325754516557236713425832561618431853282527306717092739661891000168935424352242929688144513862387170377090182011299752684983907308968480686976757764039845776865683592370475767378427701040553633957011052220510033272539007389491977539394229336815431624395008430581744127382035699312799120511163962756946378012911235897930903565340817154619078213824135724822765298329738978890399004972116910794916181100082923207109545725557170711271171667335227603718218969189058561114856245639922041045971757077358607192813283262542992522725936896871238910831317405955019989348913833729919095925068059198645556303496604522241504129247016480468785122818132923264853572898734965491226149926108433798540457369856276602905176372223124999472891590000564995134056548399402420935934808752638636959091873781695809437218786590920136399204914881224092688603553622515630038001805105811718315159201302696780229540513136895200895813513362199144605909795826333198315149223900060073776166708604179481532424808001039357217105086543493027919819402827299116427337312660287777271048475491345573744378045023874151329675312756016843037813354209767869447595634315407806107022155582497019262536672182906368503546682058136516786237762684171973963715854492963523878590663156993029381952325547401227892135308512147061368542305166642596726708126696353202154089959608935590084713289281147229395550838986897960958774325850115240242656769678908685092199538792571553220574416954123875725952271961645975941173253651563838566381610892302866914025799902419309682738629891189951286954950965760481503691897728907681968381824189874103444993201037010635776367721919220964126349962966460439291867814001926358296688734332730708407399844434292473971477933279985736144961633546894380436114289639544043048136570172825609296371102776227081284493315693837361691758969799779501783351388824502978951737548321360499253823507059703626163133955416566058832042278940804208533377901106952558434075804832434282182576982903835083081260302951556055886084443008581240920241848892081521713515203864708409659717823111133822175752075774113987560131027809074981307112245958092155166233474423761036676213245570362073001157139887447822171165876245663486910828397608190842310671753821336953926589047150243414125752003314010628303766697784032671012451266911470258742714725903960051440336387369347735732087680427735573956467106655965936496535819250839937386888276471402507283497904128471883121519195969283687348014642345609840776921592484281271738545175399850788698290048826164011068105024836276093465118587439609799825878338522696176053060160759554515403673870086751165888402470500295094261732726989290886643387808431532900763870437497719441395635230325027211557422856807482160380691426392509504287189228710263344988031070615485794058846168498858807089872511056731003168104486578775677821568188296335345128918040341270353467452724313733452414661938595497291398930557484227847751814615739758999799365634711275883206681561599570742540517058249233615781582315304524165633672860585737052174916828926695585571377913174296282840454630434451891332540558444484594465119094730478324872849268181448727202272640616799874497088789442204134366988376032489458418369947306725372568531935028945823233282793146652035158130780446745554352674998474147973237535204424137649147104252460510522897376193521360207763128120590842834724642105957254072857026088210797374088088131956949707717630192709333022709587919363618289610757964321930974436017906972816428764544294182473940553533322665431720445199540352757542870396395605720072651874176274184096755388294965024427311461754896486359768433951443369284179908335209200726233691495460694389546860372954399368943162885579857291321348626222433249048281512468875732185200406205248451292024211380202872968411593557247991354246464437130293360721370828294218540660406338569613724235305352597924595984748161191076856400534093291682025917246886165951294505451930671870592091363473978636309420981971323430430029732186345280108546442981529097232247418685046985937517656835377623642986520775174734397829370068022826275400061249591658184002524872358570003011700157677681879480731142695487476553931965722851183971548494143026668139926967254879604492269082380587747748798117168875389378194057880929943171199029531148030533651040567837222622924678759739009796079425940163753353826131133510008554971280833854233399168231355402987209469419097464161338190122705293713654264470784686528955388179304007525668449152853856177527343817641591731993534284189111518552823142838303768723987554758448220980191147515467579613065556950655356976739731127695331309287232486512880049142947629826800326293086089738711877008361113944675046517436446755643762902106157453052322493495152905901591843810844505358626207121127347141721115540588020967488009362406285564425186294246578539883592753011511060247688188780090649742155685810026637035466768408897588713371183502842808526073609050987403187506355279998434988841237260426673007689367457764134810687028728422859974383093029677964661192805009888002855260031537504522563356358874968587855425057256170214271502090656784943393979817082030644128739352020837427531772491403917801275612872450881393912628165087810932702750787636332835308839504619575822348916348080670966938758172458590906149377759978540728839604766471771750185338298009014290664579054775650493398278286751620927267328237233443131866727576463600457361880117093201605039288590760890189712258223383837709228024374076659303653414713724091844771067215070343103431571839132683952840779246569119880300274028099504570419213280805140296514174807417035972881855187791819369349394891946598348394661924298960999068675714814233022602712612807632046164252590797943658974244383174419193027011343463956075532500185762095485378952270718903618072738684241931753177983964584733218122372349647784449381384548233047086300695911146458816929071240170312798510681306042330590275004229152454454294568076635125522351192978165892460465927205221483915336425931283970978475376356664888213410356477991883563105258967253345396434590097152186396417158539514608280264230338159965403563256359379354850550628661404592002446574964298420747784206090615965018517041752767714978679762501154684375636953434813048415095929379470268046204116822493834731730538010246592287373782296287145962496599216103841402989742304318063626665934843384694771623947293073555823455191367901807864241070346628185058295765100824293266240337633279542331344305549841077166585585646284578894520667956391126306462898443822339085897182361776917016260789656283831231150302486168882268360826790102961685464441919119584388878599927325238159630574577810569181220441706276509547884114689067761819264290704267881534239550885220074533695539299453727366161174488842440053597568258215252079934402247449460074530527159815373101697791389809412253729833604922007654363030745541316481570551530259593932978844264908278964595233673401286950189433999221059020481921025775256029129415130303354466177508619000719633011049481622128128821721290703896934307681891454171558778531328851577518213698687232089702973938466876064427146865130387717902924870257552758260806696878348676375334851109092923994904783467803078209370688912502357070411383613276902118414340725838528870783814862577058679763277522919881814834187929175627415470078158322785055874718221436753191861830241023795938965461567838509785296636773043925635305726445736983741205515299403532227331059855940415299104298423320373895336451411279771139206485361769941777450398862484969454151671289227362667854981120070109435838410641698912091878328648118826556719284377546430611557013962628886773218748705244760847230041263721708230039004567716283174208792339091104794223211254808213745108312571486159518707352161260212630862894161539863278883711728772090826632560846522338106504438822616544342114057200442194900512971757099610139936005247968289251403132719165709231029507655094940902323618675521948388808953406742638546175816927749885983615844092784819221830751565744580422941887706323983629519932401685575407579308394845153721592482126499893425617896391668442716799714461989884943535410641753190239593221640494717654170861666461352836981605093549381459148381998345843394515734821164293083768395515162001465511982508980158016640669719877684390257254949070853981622618308125764574242943729675340852321629571365133341122913513862452615406437456334778450523228180865341144542653218642324835127353697904457646106269827134704625772486699660662665296548042444093121896333191207117945648412083296493029871188339829082135103312593270649888642197760817594253929550940681234446456784723795761896684688299444715597367451543946179147436377605704139306308645051618507910359574947432695668892577486364393767094595797770755783058066667295976400234386508794829185661877205058358079751050161331197125619132167426038521825576708228436728146444456148074045939426061717258260141357173239882895163207686292414395510344920122948321866750468441618261696997630378904592097477441904213494405230471854903338048664890286386720032845206797396765415606002780268113235970452466651829131923190362323470584451923691314552265752551452827238600348764541456741402131124897594937225932838160866042856523259805115971053234563174164676420342576236015776485220392157025633171371983018250490334208778574699538160632099505666970164826224611359595314401550441069476206051759382795966602300004211303855948739868908858567093923117147993384661518580388210815273141272813330396776674062503679760232715502148055664831439482024893711686863615780840028017999350158810619743131215698443515692937089575429384091028835196091340431778819236958934589622073563534586763651207887421523255893154249288562659679559024371684353412373045558516580975716217161851561285345394618744140646000752289705695303804671694524591418701948986814517227896864780436114422872187246372724208978446865408194063768416638949203437742506246459411969138701200791158053733891448444140104753440845607774295255753579278028255405975194877221132716208003138322643252073921173651869164669545408568205556339255072744483631527903432449173351691571316769716557910199785392823006092210367078881158434238618398722941550191239704461415128318245795312151317394718227394483295339339367379524006426725197436041712758797548422126544782634810748366311487856568078632345311867209162668144732789050846240530604024310276827380798634650987503596161054677544196783191857221110045491534420031413191641726299945117543961638991718130019047548816982056576781696173117510259939325228815662482620463750957287694744149897259425539924422027427296277888538397084471148755715518490740157996605566448019753835958408156194618064499415490257550290066017446453346238004493320616279199095884909042884683394119152359034023605579177081340227459149180413153801486462070331388810671214892582891978328058183226633471834182557020435515231508234965957550992977719654605176718489120162885525458696015407443582216729436155702351592120750822559942232289142152696764979416540350774699168813723021133952966026523912412369237765212501415436885124195911393825849414696321610864563942447264342464843577273913441137236393836797454846847391184286482055675296869830434503696841380555092729935675318403655040810344858371815191356072661430238347182229322744159249157658961662372529428041738761045170467032201845869220010854302187484405871706746514745228097567040488360147097814614515587513365571072588393069114421704009680634754575642447194051547386576821470783993965433255621523682294723780705224648856777848394585762269985683147817785406142008457719412550090808460364785446834496895067027776932554283736657434547535762003972770019307402704777835190544060104863200198607168912810140323358542939949410629831115019569336217793417366026370469887614392938564599725837093579588166218877972404507100954340512432946707942123012266339293292001174394455319480765393995699106235269450103241725114922826622183430368870857657812619346149012275852302446969068667389175178379522870411908996284107594981109440579115162010620189537225869565886205494821638436512639547801313815305674206104044925292061176872873281684435875532580224570142478834936855151426883260760478320777750202095639745222555503382397330716210480684055919223286941183773753876373134608496816951609112991215887732303101815174503699843900832013586019035216871538404360405059521291884421431639235706940470512806113807187792856655720112319187253544924233351730584359115170518039908031325333301399026049090220576009687165631867728288997958347184897297341494769044151606600662047783375510032323839032263260932628574648714837863495451525175628166975346785094135605639479094641091145014052708217365410061495080589848795126451246901732491910330271883185656057934650505297920414756615288659242325006210625087439192461597769039656798546308741466456855955453559659914401389911546565809670492725097828723513726387007156904400308577041574246610556743744555359005460137096319652337819180947653269285062041095664144603866647515065991530018265704883239017142891566294968012266947789974869935718520046411419629478572824896070508671952484935536712302455869743128585111752989583008412445063850127926178716966122056863914696104939312675111271903966036016823621792497741579918585369949183671083734411881795161664624431139330891905340818980801423120789252211674340899845741033411089823785863870357596462890820388741764046523041557272467600162801398015486988568742762436338863507271202655895689494837390915289640823204234469194587810025342148081006660500214143801172559602838730179699743713005794797792333245477656814079777851090868601131228312676439067545600029705639630448796729707470775156589433165216043707813550148689527453228802111797240631224730400145433108649072922642977647192868233322714500655422361110768716368244585301295421838669775375942250394863042314031685942016534231036317365402955310251422592744831125841627066371944320473156456274509067355532190438048647392212995294791970132289086762391964462822366744740178437519004884150811781200851707315366266479043084199342347774442381565939233006868542051250602231335104181042595909505410190695320345901040720682375020879953301886256623858935349983918950465385843141284906664597902291244570787140211686508975418028407826516458340154894534496093231211600395484120530037993915201301573045511487429097255786279683932789278193358912309440678493032692981433740155077870325496316483155527774231394799589678419674662988336238309985151376427879800389096973822201596845132577592800890946502964810828493604388816697488231373190892964714403154928356713856386446803894084058294117635221990222797171230336586277840575460284547292840490294954721179141431895536361596148742360804762940181398492644287733488791831508160022366133744460674414253575126934652973381648698771882033290527652586834012366930203657994096830010822944815207438430502244278576254155888212543151119451266823731928553496983053307611153360771708580986010896108772512290924432930808446773485672206282580215654829496472485316631367062819443817585242949294714354195065057271920912262495340940180003154196530386633061463094992029536788643598768967862279252284641185143566978760716557044166551540623317576105012548176007979818511423191737637381119691204455549831562079157438449385549380398634340589151507476850474382233715425343430352679993586489290846316585287990541370203025406253823697889537480156902083885579931798490762743544732726715074796187678169985494156731532658994251481126114176933551789490242823116497254203052083251314712654387309887215538021821697746648659033236286549051038308906611190406079013973873762529320852641642684629271611559268333161518002318555723339992193298879904871621936407746965839885025160044846094118866044323863789877360624831302097900370892654894199532153104014795664089525377365691085315666965433376133277190569207130790290803304639441491807825729400495015375816999212563060113525177689493727729288306766304960585303023232654927135285730085192108298374984264277329557275009259684886761111355836484639388458262493342841832077116626592271287710236563773119361485352473252280815956571068709765936273228205965909082252304385203177749924226803309056287583786016634008139742751080882403855316549481393842752082446307274505446708022271168670222545523902927160323942006922030698693385476243412814142553297262478395230834694866399982426384585243680909050959565561149272158200990204578949567718303466746489659833711459664709657937498269746143445988611098369747415557603506124226489365394671300846995956278105158639165288297553145321853384087019783445075052254158063636938607661080821987511220547594642511159352030996771617230694974162832294088210410130410736537202094079526028508603809511378884123699033645410914197791105872760560929274472521825160834663422249202469065100069009430557367137915831829123933598006042728349195149596601320068546642268360670540679410826736222178682859990006573563958668018627776185533308518180934969233249200625986922992279023136240443740424488886569935776381465573275137519348672331635947458322181610683184933990339790099592729835401828450678398596495701369645169069247024158167786785858438444796063322108716617619178534823476783436417176782726856754350183403014628624107536743642508362601403985650812997639377960525848034248658110173120613605062736008323171772481967176933690594624341128866832434931151870085916520795349193326181355425956839058597109654593901014377480285820202212227783794541848281511107048750195606930262290263823370492729781444032432008695105603845463552629505076895058306708725028442063908891836674211503107993670318642677623433440373627224950739156397221758718651551666104857907512325845737612240283965792865262512509941153895997722367381799363598491670503426279919844426758510596922564503295339799922528531006696657776935884480787878580985045907857472319119663000827745395904216100326983696466471336955983680778243701592796802237541011347038666966853380415685701531639776754140323219852584047223385369430599852868250322582911360142497180486217808014178821491553784282732613429191131381976998899807995382757959128339318376201931645282796843152607720286147879042613906385787496980146747623759343679589458120307696416995181605021535424915282040324692178384446886930523117775451027445874807893935557193253184983405907777016020111364586784407415960871550369264467519515019978705690257453629625987263516882344512542357756129357378845975562230807047968918012095100143133172170644651591697178788882010364059969983767836767591073693403891834553070085149603385049716628037945243048229110099143231188608460901307073946701128910017002015584330033854554826430201836936652293694111481566404676904829606985068406785556450879298291292839615752114551073599613572327060832236968813938467413431767035937584004302722240654383622446341109555823957720199815038994305040325695382296220557921849402913002346985476750597942534862591890815303628956478541386085839212390273070075511193255704045275901199161121566984107248025571669047973990017259381828931396759343865928093686481346766862868345303938160363371675648942271093819739307762291211399145971944642015399439738885548012756650976164902347319585329454490824699259632907882591776034227826437435623036615176860091804332134720457848324992616747356301509171511761076963956768854300044248188893248376583343851471026314534307924099918482182985215800773348563738005964035063410251718338860438627244374248790235102374721463526113556479246983499758076685443862691723860366887867204031710024728551748434140994985579761538908263728075812885225212702851451219124946419263897806294760760151131469069919574804332330488277833796453180046539199189559346861718563174766651597690350848980088265425150134582061851771166029292193433566723555981368424528220439147004435310020084088879265952968610204203068403836446485494369930846021803855800846669035940953172682967237561208406483468964282443020234217356396570533345755184991488499860317884911371495558762196900055075034650452538400142002124635612629626551177260306565215204621922698987277312431385437695871337599948270056771790625435154323578768280233172675783418596009943899698574538843338954421559269703643317799073928813813135987676001826099478966273031720608074607649343577879698782384582541395057215290921765488349231269058891594100244468640740713342167056177817585075243212476439168925359847320966747793077940032793446634376074461388072173050634073927824298211888533491436380251063340537111616158910122767984627033966993795483561598527046765524189220378826191895143107915386078274516777650234585548971931310453577864613709873975712940880866634413345644245409254541920753557648555713428638224066841004789444886300545073783063252127640134767494595869070690901749601369346831286351488652136414717396590949719203453617190582775385120160750437831272482810953865657363093605076858858200596992733532798670494512054232866292640549637880371858619706081381524899549290184874619233808104883755540730391298192253890268703801613802049624241849680676796662760992683949845202816233493078765171430632981594174744569608645266495663857611039205655383175372022420861300624375669902699148977269368515587908436425545027895404744815439374572326214311561963122885702146412029731256738645672316011926227548277891259799453965342197348847750300408991043000986657332336565978906689829290269494477868369208944760266961959626056929501158519070051577617478187186933826366173096861988634587772435398662972474915746090908495826244645515456197008514444411735764203105875848271283079742669621546139129519956842726710832988664778191934488147182207111563083516599177896470587957353363137801795916319680156738809859595737981529655249359987469772846800799951680396397412227440055733606956013173673920453535414893692467677843429030833580695912149038928854256193516652117718072436271804569175789595869012719505217459207130360802844065040887321164066552143393074960290195169000022048884346083198330403944788639345127142756036214221601251488947944332525664761342247226499265285818771311591853761126698710375959508791546844016855429382070264172414785721501671591151004395853769397296770640741390243519631063279893871437296643952366240970600057478593541866680778199510154680303539264611330750271806852627107248335602809836422125503028824146864479868171506212696527058984671718598026035528471506871245294653604157041144647515130687208488486743207601280292598452896579201380276811792989254622786970774403049719438729110530670778953161956905451094500115594669149004959948516921720212847390842270307555448607852997803658894366371204746861983761444952225131781862706683260260049780311433631280234738000503951095948065717799376418517340113751428699967668245013779309661002149987503606512176343848890271169469737692512563014420378139900969671440803089220060500106586872438701331662552303077721220115026982165156174411187731153661644554687026743979865204333311656361359468956698843486230140334588403332934662938080419733525885202756319878896474454590423156745530793970399823885596735174394856750340572811753830512855777347275858922829302086555210232740345556529680037726200042920268424023131426169765454215130614697266198464465696411529292074240038486339514245757801388379119470197019558801650478994467953709900023602840636315242684369023742718153909370697484822923511372652548402438751152586486257140712817197378907857318080811925048537004370058103397001744245166710025090346156264694536555633153224346512677503424251364043642830072651435672026442405709409190017313130441717011849236130974120925394889604104353919681864028238595042605866493961025469479185608975465163218568251056528420827994337654439794497634707579315116501854446227703643026718883725847398465857362453115341689216625923516986843244425260310464688729763138824225857996349238244341313631321323734957067230150328252253163692002791306545583911827103196402586283837704969831140606523413953752889407572858380175189509653200788755006320946600686857984460087982960199643581988099874011716455801588798628010447415249802943298047896774589986230938640300346225323043231238916746390159972096541762269862148184583124245876129273659971652119922053373615537503637820680458288572307997275294124318101101836896357746751000347899880703522228755368019960959668792862514797790801680868563879932065918082577763431964273632083583238447356479876945222315196938943289781885704436373528549214634772133752332962217879002358899757706098529180191781106380764945182339830245779327558820389939742969479699828616577791238401565429710785549559359233552149344876866479973962557300989020442500488920266138508413154458170770311125453651421429745084195591961572422050597940308706563632829710879828001857048344052517789610022380621222249309979862750238362230648620440437812453589539409709408092639873907866326313548944682206966237162786076739032411645920471942009706515582405082732200999985432993519500607331340272211818212421569048651545222707807631954544815860658044059257120009180209834397613979399415776345971850152752276398181197808507113152113445968824662673340206317426227007963887069627225495741575652756513042452563749109827251165066972799703671020045537202119416073637505195093344279526148091095174405365521895456245578645754959976618100655405461516783465587243531622879708384347875041820242220529278621832385048410762133638639376603752995261793318788251615179469440406901638438102588376908720834879991540002811060349716884238770720110329724170256400466893868635626370249860445556888499909181886049626506910582132462800018400391844238070476333728119043604211473287680183835059644832569835462135457447011378007154509280406829234584972668824097109719739312556323211756047392599770710515280912502988396241509860557359640516646822583432903572868438719218668111091638422243331719566151786361708894228081861852525357804978800050014949713615231923860854930659863221247405324999981877485422387685719616973455975510060974271122441135458670419198090145038446876890574507248498182805682564257861945460260740461261812179293203272050617363365646508038114254168139379079792695385218343384407531483823342256687028907455319210649641326727487050422981627156897697905970862460048813703789388957498963370388603067128783490505699019471169189196543432929757212604097175385751134564647910284641133909673209827338626089149680025022947064711935293189669069126853784675063659599612142794392701188600063661583688000065816533562513902213033094803782807465557376930104850079326472478642363499791233553064927368391730728203390943833184565080088616391658685187092514098360029737933747947600579982252342746513497843558769622673719163097872768195410991435141372487468236674424712780521745342031351759245954310783147117058387965114193063347385297462093843424264692468231601646353128666509415446890478362050360107127598569823823403608698216864079215245764457670469942812506714967579196732362301946316962308629187942680730051964070914368751412044089240023819507123005913321912830680056423069896723330517979777842728174729691039655983951172067937980793810532807497809034906145213818781666941133928939621826788644195405052521692824218942949130470464571716207831303898867449256352801750343537759430304160399994951577832638662830190916130027377686549187867933592553479717985746788984295536133271280008356531205629126869758881581208517129177785437480226493726952550183041208864274489541217577644109580020728648347149546252804806568589593031686772859731359257002000217022829793471932075703604611309522856516768980261783860797318634404827751569895772712039535765141671370818860696643326511428742844906387642988804027809311542029245057707442029620476746216367703740753550542893172049483361767981807801195845969385641806309348331107315881951912778816799942054921594387324175577649988634389846196976229144704724523922836124313891547819620970776350983372720840870319507227014633197670451093435217279721374071607479334324327300619907695578192080020536792879107163429968133765609667387292569236751625212181574589535665741181360292327068778938886878391205330914061082468698136487968041262189014130758512199879595377974632577150803797801106672411005378062715733592131955823751566473582953921336943520388736727806181127442814465143322134359388127942913805332739635968789594309704800869608842523950760486927658251560441414498116998693246378645030431459044780732062128324708071784090225755151230489150250829710866462522156499369464629330085737740763649637939200185684407492624968396885804948908249134615763621098656398302943810513809779057749487326120072540686464068443758733837873314640662732867961138257933780861563398136753367884319336854094764652679259506912899865842740453598043702183032214778175170977964573883771644493540924743954209416733548986943047707736761988199284416355324711137459818367498368717417076768409981856391288075116784154001454188753092472963088027097288150132328598397773299564848714836012594031502812284901461094460122789840331959938432934097791183801969054750583877927554775685732683034864781768381986138850142015104798916891372513055068733726382899827093829388681524368857046929946502429166539519060177915465557816924125202710817271007899070059695715627099335489992656906335729115080609775952445236191682718827183971058209218038702742679192562523855803183795845603517473061628816800384183567879530806373838345628166997946579760096520640100934298153201746048874236449009011868411781551361633205110426684713808231863010058493855883900630619540591559982199639823005446176337048710872723111183208083950822339369405552305479003102926310859086782505852463456879244255274469723098460594070576594340071342283039372304071578698728879990364435381112063647415218994645707337866834888786420503731790154655997655703131275953611628844805661234586836292813467708248183880755266204579605371863378431966185871063412721324865632619867214644729548624499344243490268482748925443484742315742753495717357339597191427232605227079265201098842128006231561337504661090135371488434470522886391521506032411430631761722730338939616980724718910043274148103147130695259385336156161989060604284570553195142119277504684287792551276213176228306434581115656197605270059515331081177712296560365745297895334918380032323840000667428647959172964820597072342449368153985316730577225876194848329291280207404057164828656281869874106595416702564546219946181799555824919785588257020387514645624761115446848878510365186591532006705923426805728946039101765546154420548847834286196886053935912162094359881705893405632156869784297351770159730141388001632286663163851605176965592091491487173763900562362555647320370179238379431560429660774120917118149710313390963792969738980238369340301490714042269451646421146354781353537491527847481797913297068923112449702134246792231689953310519922545521219876863682246070602593758909097865808364724492712256086034005314343498037349935864791028756786543303802414851520369005209591737045089138237405195429115420117220674584106221281663023835217967589600389336736078238863654620646807327778968586696947228790269214763204444942326991180471752594273705092961809956342851704286146631883642278478508828964205577672337694429721040239916314082850961265476232680361477930365226039080857792483671831952613459159948307700921644774980819590702035604385001632258054399975820958810061443623035563845269423688769756987648307668358547513569515395832911907750337138290903560880414163640606973762657113965238019489443749769215342474318769093864102098803493165557550411056976860140945961713514539880361893102209656145165022148143879668321670191262795996090487559033118205126454009076496133161477988572197156575616910492372482384626441124490919516349663299414349251093826360347164093593327899763210950514739701167254151190404985242945995544676976892812157622993966537213573354817140770963294031531342545201377036843472365909480849628426781909625549278090324074048235617957625641476679691644871139737310842385565202390773734132296000774392425985269906517590064190127152541974406606048725455521483805126850542283700600742220913295554490612315570489752296022896976698437659627931007714848124481987607561578335036141840960477932366343229418849539401081339650312334913613492425258968388573690545857017670152489321606455791867541492290245801803378250288500943604238964489840521206491192674433246214144254741787030190855666377012017125307803329409715125294720968655829544732708424189511115383912751331651500024950116207494506964726578787895608858784474918548362391887718314735547505668939751798273704595149843254967906893462123105171856749043783009897784277046021774947116879349240709802676258875953825813066950077568164131292346216991784159828757977243960754603726436981527854659803464452365517227957670982171205510188806988823863791367411213854118550146911128077249380542009783636043506589343509245612054396037022311654051933267619316901955097619034940827478798479244093650412978412227403281621912552976232033652381999908814854137464969713786780153697241555239548315628867134980832173844379981674052015009398825041241660634661917053839191797838277988259229287046009799562377954956742043174377781522931053332424815439658075755945113588863591848136556263692880554126966047934866624047845330067162001536027446388559643182061906703549525300935875582957864270352504387894203787844569118519532342458774314666102805399265301051253315208047553837794410336176638854433713039322682069816718833229925680476489743348740178922183876123495077422919455534671765585227119644431777781079731936802635742915712077179812504865595130367800381349337000104259101078967265033052221729576000220796523467772488049362223558892010959176732811472178497144327701404123926754690053897384415414031080441546767319565473111309629086622865952829301969887756549971635205752816457923037702231098048997945387478537508121454228606850245825531121692937158235637520876589391089999296611197821511160204757079425616863426970277643198553754434982477011125589285399612856136708122186402488678434119159387463038142685869199474921231023547407075445266408831603288993359358923329300246452755339092329628345270514011017039404292021695832483573437869577839612891302248157341352614432763560875041044176256546995266039523279738653033040966193674790606317885074828409719242113371621036736100866896137836341093878009835021068800657571150548989526529328825028093186652566327295666733198347436418656915540005844149482547571523231454569692987867857914276817926119447680193840294655757910841294164942867555635172968303810496313349378806278783383728987063854567596868520647011023968530788163361718034892575249048065687157820355030375929070622961812183623192370437686126102091812086405882489829500521441850443880285002869328196084336873135205064083767625521787313936006858231778637592358414847750202442417060103495940994002139989120927052919059242514338086215265920028884387822806233930622864957763285826769716109295270147343994046185339802413062238648643184756198425593956527929592684296533073306703220253259520005741644257173986307138803638081385127697860140179793762098529461610402449009277102676458493740390458704972236085018117559057469370174399279286567317155187944820137669262703363803943559472120864707018066501519668216471823301797742675217901433693909340234354625068552914529318670175915826243535113339604160245266254168166577743539347292332660345449455176957250330527264118390466133300688095214442484492080933068631458329811447117855658594560803700877740622076446081497692768135041211312737974053362303833067870304261196990568434253341198613368013376095814639523726809997065058406233443724855706848447793730340608178306173167600278550315324620562872224913237442675491147699173928432026888599126331439022000842602188018885353312441623826536973195512014015154547477527987696059805693364319651692829088637813617151718562123808793924787136838839765351033737087068538889929532361609344536524547668181582416964037809954754902043823545583961518417895512216930036704545803878707378551458427115451818120235200382191437238234669513063491952504259017774711263735088507733475768716550701561530318137063935367950029321432449858087520477860674956977338010515938275976018298474006536445347798911949282386715711670091643383212859367948612150433567781318388148309087636167435689719128408641673207131329312290778604579690421491470208032801645528875498130622580265482789164995375760574767868051345878239052372177003834504192493975117188882294924858903342265776308426061613965976914721153245522147549515867470274751823147980312678682250595277457507370587046796436588129889836904708320710672114047017683262289772464198149365381614531276634683030991401486585393918779844156394211302261709867477742458931406347565229209199453240906208154180502517000177637065244610457299840039395718844105589275345675091986406890932811166475026926621885752066501436329833002022204985707015970098085995083009651470839661151016765900055323943236775885905684354997923219087384108119516828826733729509867371843008351660505514528530336992338388429034467022188709578612992888006487472648181907961681929576474600527754253540433571723624712075373343885811370535388401168639284639881120794990321574523511704091117861992009797133208520828176095429112588569684355349968628099811583571726548267847183812574399588113216643354452793835066562873387574836978173982589858104515881477123708486827931023960188329398851661051667862837476586614894647376281480247450638407372892855537032723622487856910325559357479193144359812907540576442205617189580808219978776120309071450929351103825214646147179652468891636200298601059169093949470260247694277864524720248847450239563440002444061926399454169285672706795024547703065976991942933027439826892425780720004068674667501518153131009407154755615480551349993047587064335645860805472257022443397249482267990393573043916909048397164252950643244713595712483880847680918909630899993427663161049869360862535271656033474892189438648670650636205132670754955927644657007778340086220126311708140362862873340661046601874452420567474952109949013361450445187517316031175761756505030392776555720798853859931808944529370382481323398284669867139594925683544101812342634240215225273020958752669052318787425033942497003980129691840556678585279106759077963437215527572539362117932828731986658432409329178193501159347733234796435195147643643010427155057262439755461094779338713857641699875206327976827793511411370553368971241497740270913509423698027720584120247024820806008672551950557510602190024374215619980817146880903786028026906142142220605297195305684207522051113986720537964426268329455664969887814841254071100698342938778667940747623030179538716770366942360462995570692230333527451052340672314837461882543595056454705636419260439723623584943069696543440490901534910692587612983254905262893738736082772502634601619557191816196185917352907051514483216053239401868442448826677762356281288725415057717609008836999414172780286073364370160706429805423383886880698398405863613044169885613340407995402541399801982512055210205368675906870488874650151927017979096745135997187036572791252928552383287591379228741637909916874566837109665545965406139488882176255635265984839487984127797762653769711630363184059547836006515587527299842815474581565758438497517440141035814998720659551134063364395198486104167035520339895176489377261806827923762461578092942982563606217883625553694401801960211538707335783963570504324050797575678060939805815273791435988618727409047245760284273741729501064595247214253801261121429206742511322803027543498010704514786147272498029316132057468775785001237814837091031236680453801037064427717415621017878582891760230554554021008325515871669880536148502500327484968231194090365307755426456752119125215942170836493095257733485736010627241263228644709162149515517807041153422704391956047147185444965087610941066405530418654634232280413174259465819577084848980271213053003598703791317330471964734674371990215878768101441506626105340830596392396977087933411031486176757349400229199451595062250056031194695200581783892833106736475533454739485157118039670976112879629489582783141302578703978950722968514605074248580493023768611371535813454697503684478653846414790733623346116585537929552574919640944205725060803994594477150833797676422956198590268343947787235827569504894988964809165877262620489048496285982580702783417616104814227576693762159639436506230153471045280827363066778009389656510261113574566143526043649964429736876881117109707962537525573344300954709188672363431889162980097626632890147489200369367659931215911322160677513136000286176338858345140579512410458020424067572154779440050716010143551876596840828425679705410149812868657314445804677333152909516941460450793680169473825067697820747015035676988263317936408238286575910301210489277703379005958964456171417698416472789175295934237573783284137139083457747779618803402183082558582541214006043407061472513087575619781921269715328845757788403350443995957977348592292913703413624272968408537607816730888419901303994145022915487198604191924686809758578148430486633901816533531410288910837308398663686207462475034119530783563321431651114942656561914172986758445931809238996976329313689479968595143676209773538735988973580118922271934145611333416275451637807081977823421051139924657431226759600197537182352167121940903869472081365852765300874153600541876341377184480797255639618899337465918001235165330582777446745389829449469211919708185711623044950152250202235668343378990727357544869998615602415434676056786614190698719920008576877384085854380767744628637492714535341985512037582516443976462489126643663645966282781639482080834112040067221457770017854269164113161772028676286427775064654391212672475059839059310504219796107677647151051617616946048220851832942458796646829173740771515709544248822195490284159504663801050268907339610980566814070100915440585190497544578936432827344263873384034441059105052617146946297980302411753705259972632140581899542272480989963434909378181763077576656907078912303739506769827557752213818267999663038907142142464730900796448269944182525461791071086368813149280041718665673265159875194185303309417536621956412099620742372651001921849877146002077137601702103987808945337143126667196497495463013353144376877976072791452364695458592527208660655237968438748916847906703266168387423655182073783216178518334060902540457532703711845346056433884630450304625201610919051468909033540305360820118300510575862279576165816644628518876304741903324541662233626109185688871233239426113403039773269715701655471065200045401329942866646353222418274220139583596815017472928913405843318376937894782959431167697902341201334335699236698579598134782681001054350466234646020049509695313950447814144648835436801845918904764698816465156890359471205802642263368836240182505535355968499281523364242636888344953060559859349120397546472288434560299722524780520890520928372798975826873889707200524859730023756410693862464046031810965186463154136527496685454859286118766372773015122373368889234556562736307306167483107538824552044112095160572170758809075971949949228340279525000287299445695127870394402264797349821080050280234906582161225835592404735881976986168475093662458397311261873103007818746106693931644823215426994888971847346025258067695676279001363549492484196121134891365823423994325024105482802114690227930202383078920249145557768153369492662843129514393315624480878068071362805902784811096712697730377868046457107761712512524525676737923877741756236918437665572756545041648012537047302791750139956856167202130720424237991438482889876022983473876838417192837288947475923014091941128061974582470499287696789526449093857772724096982014651200587539919194358980432385578467219513993893157587654443621938532219911244625968956847754673443605707065402977417539279009853905522803114316838914859772441466906842664775392276447683457600141150532768964865541694578251751640953176398097178000085066247729541640897440939503491679161419389064338780425157575353962940993412012310825219600070553837451782317080996698209391554151217188657929057432311772678823067169017255861960628303894977157157086242029373306151304945659286643786621750905849936758296976524332256064542281701617789933574823040909440512902348602574345840109342552087707835676821883139811459406613673767373238812828364711562691488411744333613214368894129466101498535993269748518274398047966403524561079727869909454056201139140116925374438168440569984378501685459322169723568834531934126964612824075323743630664913744065770641877680100433217212442657359647856667426668407052131945975146814472765197128982264087292276063460583636619524276639970645872593527740933725421019980140283993549953319879881566079092110660955602529121526370412573113140841139330135664690367502742388542166579941977198349269462595360369508779541195012853225773690405354002674261834680994413678995589633122716406221318096058988316027277481462828979113674066143983860561074671176055449024036757688686356239002162767447100736194794482943971819215730419212631185754767460970581434752714669945379142877433926713178100987971522839974448677126744580719309538308432948983898377577377199700156446261933627077240665769219554022959586941906217378352239158333153577471184748940749301878791457636849311059936702186790643754271748796407512466363091416937463936496408999103980418882659348454157394335024762611269485715074120812307857931282141181409655713473796885153470114787082100697671637446781473710043121898307427463191141059759528696901279071708547516398428091656329551565453274787042238378711245864697188225330620646235147666592196418844475105382566146981069938952778290550056288221921974199665274305131712842291971014256034175650287684137293008547332086098996907662006723876476377228586895464175404449479985984234624965345029479001286192156104547854074988338794864396938801792815579754764192535674404102365262631902662042341349840309369280453646413999949087213325360749251807436909481110892816721125474919187922949033036685832692877258750984700500992544493389273980009926124545447154067037464219851854055569867817155307592922681957545334504750956679585842039989468360489108496756334048622753640605922260115496038143307040633787664361990161688568421852049382998834062492569419933856393886985974201931214806617733323694060588337326428468779913057545814238835826058648419951840640955305368416704388509837512968047008931741211973825186537657063643976439935854644370503255792184154011783604294943631846834718018181670998692999136616535168067685270341163350439324867844567524502572300549046304108481509078776397784697520014817384709659645866988366095108658077679456140648560483662342803013510485897315772244888396454556486684250642935345217889780304605265625649908380002195635264844916963438497700550075625102533223595831042091704688016783445870618323606363755729236960242676063110711718663353461544907095484080613754963096722982450072652639138216114245790988058801805784944618395650380842722680821946887262650279275195018114825302746336884857382258001735165353568572441434593972616994816242136872052558628929751222154177162266853883096398018378687196019295001455958817915706884279113724472097930406185081613235364246579929254524439806067924322548849771944791748691010054074846893065615078044367106873162069490553461661275508432541177340552135923146341054932967968550981789211058143118789088034652577888102141337162168435323806070838667283713237914026817720280152200304024834929738812764205870780879584894750689651931329472460121458174729387419577327957315199379183689350484520792890740798541753203757839999192939981604312991681289616499853447971599989052648552242301288339736266457836237399196417695163824958594210188318509828330963180959948308745711865184085388948576017889140703718936969904069900222387063305097535392534712253362729125572685629600297018688389007080954425012446526557004459149299306875238973573034485654965263829412625402313277455712174022570149626209584587539178982648613572169412381234645240800066351298059217605637876723310538881147737327146346446908768488139140699068840233683126725571884358473602059339789568821738319591469949932970737418345662054049498697590049288278705900576790084513752566258685479430501590242005721601587494344297330931700386317439543206069434777539417740584586216192177263365713365357584253674970892077643480689972832543622942830173260781470077840577634648519993307462766374982280881640827619012164803756446977720135548211410641513277525895333785836969877511745520472196601939928853265084155581300372215620092620596343854115958958312032014255595728756903293330757724277751611048309367756130134372654133963841459242783944795544745750042832378164304376660795498288964360467040720824362846776319587402291721772444551989038338851889907345145493710323316784395071914179055309700055359935647936995489649822523142483648787149303535049873382168220930468390054791353930176708541731555401393091607943923476589535222419343406507395515229095066434662991574610235342732712971656048120171712910066817258602291093042404505356195988469357248802753079803626975998088058365029862877671654059040366399883583069678823033770042509572626267362135329640184559523907547148759349111564704348175859584885043465306389649934123859501153746305522307606237140815143889881994123972745800666382217453163569608458863628841873384926384083069522829859390758789382546634490171510663238770197587152177746017576189047770868147635759971824608546727856207139192089356048137447929418423829961571253530353657740545795965588687712460072705634308729437861701173964468447406233399503359804681198124864144389777402288838736872768609560760751507839180495535233823501410763419187068026546576551972707339172921837083020281482541853107429147652394988720523603306001765699930455587797157036219156042384384380660531719771332863100597075529997830100168814696976023920616060882456834645136607240612790714855086678956508229316845049812080283853811098422691377680142933152677939691095843169901679674428653825412111023051476963006686532821033462044387000147015616550190543194474535953602538992128255926353063237401768080271776573995137136117374000553976728820933086122721438002554022551980315151168538545498092045446454432945800661025332158848910209701451575192715865495686270013066966605060555712651964245490638165759409297685851819157256951365830896072320100188090520363239337514137668737455802281202127738156430110559883430256584506095161207551905637962301318939433714634885811327266122199801147359622139822857277955590673842990338033349260159179849284384775519629313775987498575823967424604472971878629926466014480323202003301945093989642090492385439984665384065991097073556982968732555757776425292996819778182613402097408682500954651852795882289865479841754196388811298917504314351641665330586294972360100207809495441656451328783637089874719639050377531370874826177995640016320663448748651326880377493175315022936039551682040930806552622435427784095390088211085169041474961354537377722238600981426771748074562088346303832506464212005729019475511791375016147706410705468367345900157827562772402680937589055980499427872898670766473086047089212266435910289970553281481523062401601323313998443334796120813809044718664732057750496118575965520829948484723300817403967299453600194248001625691741456556302010039791929140493940763755837634323717161236767840150622544891211283115929129293685675785625123757472400450715587903433346078052688322218849302893527817231811888195200770145674374913942634724388439960582528472305846419499142126936060902468681332844084321810011686446145470180073458242563681657080709590861314311417493547580293341820241133846669585430117725226855439949754660241475523318839915598335282838259574174466143298984205807748551404515462594097189146586657400475650172954121587471337178687474363943362679593976403658103714977792714333535809138512183640948159871870097011828235966744798911317560414855802876618442134666207771186312138446353146470075120383298698789033480642298778088676397240079887865447724396728561785024100193884457327985990430350594197722998009198255890414416110814112755722368358898345705624312352658697897134595884561424191970849600043917296555950633810036150155850824597634806625931842863575400942569004926271468807847084184698863605900408155315465401327038406335968067051675490707566604445399210152112720860976738900140764796928963227859871275684112108169708957992273024290311411287783989982313310692603734621738693612727489030219689799350528326039170410313828231410820619272286438602657656712444154530552465610848085767390120330175687255995219861691159124385670177166760485139679030754127910224935123687182566023716192640076555435635479496861551194788662247439200476916768519077835513499251729270693327606863374426825410184776441911829704631661897436219215785891644102597492889348895409748577597824793475552053386797857864771368988974667370878216961103561425598006339986990473889441780406233600926712937878513264896073222231559402226875894560659373258621278143855270581593036811406548459901735936691271311921609360041480588673678542178223371760234153904832173254000574791115831908458019299508500032794749994755627257156246871192789002048977721740802721166406858932290479333498619191714532204918712842865750969391369390841016939750641772313329450188309668965250350178059823477871040702525503500818941766439935281763652599244379594312873822057682070881671952061170344859560992819915185321819283354749252348472805352405599569423283195911779276004706362322113584925992267321531633697142084425846642078306696955888960184955608748144031944217766649708613704247832116365129584266187855073728394293828179488323108351812566208181215888491070452813111297855731974138241960793841038661164847228727357080266335874302118008211196577317891991379936863681143461711370334401556402666619007460642636436456660710858986326021144122861234207732605293499898150735129885231279014965046911834787944557736152873575108776578196562087226640561070491148718521788908743804506484054700095340219028588142965467195750257598310765327242851642924701050939462589049388120824531011255513963001795647338904714283147678175994559761653989919896219457067430971675510712434346755795097593575263629213241187191731184298918536366942558320746244723903810326165811618329068267015146686415541343453108228971430021005312852196460069560476880479452910387211260504381179234557261360007744116846610223134750094032233449968460417328999671249308833957921252762639142186961976794211328961883290731407262416523978884278694086628798988977774272011792635585631079236244829793640508199325620669418150697729749860010720934126022553943523014205168718320903577618754857874503513403969899621881818679947693617049815967707013482497001893166980043735733260204451171092776085279864752741947216355114797572434098400756387293551235881670888812161018835035017575960521109582854504760012272348502529550945939208101038215382479536174266588305796307013846585630022710586481562073181358353479543749999775696085196819392745276666289801603903328122567497292403992573526650740329576400404498966198652344781547891297746270237383394079898896435930405228825712796693170088100474065209795104493272423549234484882813478586751927865538752274747704738958458364674827418774446791198660318664898288621555997632386341854817214422420140448222046974901901276135247238543874529716377523136733919537488466656373067822284624653608731108577050833421857173557318400670106140870926945991559695456567938716501447269094638975215810033439074243518697633808744430271351025804048259157345054489781772855209113150402326246300944263131340880830490582070936592381743244146745836571274855790469472651957815245612038158689055332724047324655237619504126557175742198425740592716080270186428970152538794716598352583958445423792705775377607089855227543693415301473452762487837180871475251765552107438935988620437761878628339496111937755535437927736988107113024210683754225698125978412807828490470687129011535392416635577851370833431538591724541050513356696947006817558144871205658127394862084501654860512877432080439981672630873136399612490822970910661330359614792975841168064465533075901011146135388787624026152641169659195379496016388267496668992619852423461746270966631566004488458308192148133095687755556161821171963846593849037507894253599976013772829049513888750273893712452771373630396564069751789461323551523560206368732608433146451789352734121991190838414042027250074312095772926848268056544051075088743564681651674520112359414005581993290191492793034430685623809240777401042712390658132835200330626114005418123445353712896632577689590715435095199423058821731375988049877042957521025633102969280692267221433925466212859871697878012093455329932792792398558522332404547221536077855493815079535640220080560402934986892997616857893724619746519204736826858366128935352107277228658401906308992600936020932848348129809217787911556247947927794676279664496244404993233274643112200829576935089041803191175260179415840716409884108632836463464581984442540312955272678584237219590510995629491604871270647718066189346945321184156599092905969824439444238676935402755696673521066400707455072875333173090867506456256866151845435756807024441613824471232191581073901799785893519303317261052821101750957285275415529069378338817811031119825187395276626919837106181559760579563561730397890579265948951426120015182840749659015548521142815281538435777639325017638734845374980295692763187469958371007931680834475033431773464867139437419874780002940314298390018736659563457728009608917952468757944605548770882129411441709661698222251159297178164713129927143111423157844438894488084990060716140859615526690026167177096276266226992668181646075614585496442620438953009188991342906000026019585122949936270526564254237625596827291817690786288931848676618376906290163490258691462059539894735975634880127910500209112134366365462104036884041276965066239810788000605098668745905499953969503142436577617632755893475116083354616032677728353668751199850145955457817565285111948450385185681583505064645979383345471594565688520976526072952221987166588829694598986296255635312044345635585361020574319081051686086785234647538870075029568193919185291566080337332666246463959279925940085618641123971872350566573993411437123616534516893785405675512804669424773262625205699836179240496110198068316856748128147317326628184557394476019663432723556491102001200064642387112093424726359736682449280544829690561337746498712675246188891202217176653454727575812165582506175742313758461914239498078740656892304191316112069867152502225113672251033065336815566788349464983266579022021968221967971788780971831354603665838467622016755310902512776740763903222626866045441957063505423077836725935533606437253279973061428802972993474565619368454853759679014862855745812759740723423292721633453787551732151059483931310094833129701704722914506807829606101229683350988462784362493588866076282561016753899151279735808383520229611171600981027359365001512313762232429251691147222175163258496443918929214318796717367400826738788516656710829977866558257367477953093514843222625405845824832199558865790926008538621884749850052326838898208732027976133805040965887694257510556177014535026727267672240044873384661165496211927101847951842128205991761622654157460466700863863707696073049518413725556291883538812650443463962912874153473581727704993279944160888822626721605054605422800507025252900091509185340278415057724754429973090180031461168548611644946668518318726453133864066810898250342327258392632901131899044462593534619312212723948302048762340172927199134787194847586653032740851477127465775724241384893727238161316833885450110660646926566014374312882700392210664436297027659247144316616615233658752517873955194876093126265182183855218122871232811875232473564422890782193409261911229085501045857916379612209848939460846840258341214248277769877093621141543049243708465712597597089051594394981333048338661375276403811046572120826377242044697367793486976559633233391308970053610336107508742576150398781287184836992278502676226401587960383224152882550883139435282779137297425220108478820527701579530196993967549575761263752582741945152615490218152028619976351285533655715347066407353941675014988656205452655336478874158331864223417833996340281404040871416236446037319211562295746631243223349025497556407507882760074461072551895708337013039989587113531258316173093147227191184368773504964873219960228518992637272948041263193022986653889465014067707479053419082171658719802930486174280795309470106179123469890269032110308001658413956106371785505757008098567855463416321926691434546151286861333141157859674492511773673832950132964859883831704616414058073962932361968222885902495109980932511026577020850756822168021069630247749643132749917662190704192321479203448380355973554073125453308966478830765123923483179311263067200065549497675560577703622777449464281671108896703018198874192921260674314787358911260325767049079441249290242009750668786862885919304465331755581329489537298642324982499633216957841481217742723781026808690383628641660858213214098989101561640760249551498160262820104690948345845711001331143387523233610937100819158585326727736502793417228928134517662534012191502597540920414707794903101236116257060402818447499637914163372490037011656621370378380637706741314366005296130167518717160119208697857630109943048186905922191462030017356604416558012757670266664716364958654239770719165098832848553480518453847596283627223418430001648177918526746019794085623368332881249089963602590844773437012222723622765293004623286968531521729858920271012675508341734052727884001143653691988187503913705626622139760244991257866437313919586788589138930261776329667773897436382283743200176579829647202356182538975915906574791867197762647807666403340019529239360442911363520946954836748594846717227320589267694162435921427438339407812299379470662617791078220383976443619053668757844286603238043289545541640475300372515922233602929681798222165157544746719050084896145877667726782732496531466257033056696361931463148606978364440894130356420835828588699401087021152530798843997493144522577017904660489186819182566873670333933109921539508313533078885423817763085568022268562649582913298437665508107716409766390201875692534770926571091355673082427639147712231599318503947588709509465783948021467026744495733527739699266996843894231400426892204738314625623050170933172359507393482794765015234906333550748473090744612415932626834246998619913372476132387211613203948509395084609559039744893056812700636671684515762756789681807993252297365314067337599985676187614536587704508338105165403825190210779493080859319487196703813579198182342464669193062536075638168512769492009428624634688073560988953110252193377222477376123638559079847482160688121430492279820460215774475915590476753970536702197905016230454524929123924149925223309913519132155492869306341003947678088500001523366495423897432867269505520240085898622797420828446772404141149049868376052177988315218228538342926426114649982144618446999604484990830275977525320794397356692318439397222333689375221233001076195600410901737888906392904738014129732288785351060751623033399598637115174520892791430630618295976939410695940888118630452339561846664006462622119655911635580361548426112276330055208700024513884045169909224188999055570157435538812711307723050604419202533537453139469140367890621999809391863403556946430293311789024816979197680057399488520896158524671283074446891096474201818062114882948230866214247003466654633429528620481804935912091368664050841921999837993229481788381436303545755880579239938791304416341949072136964793474610423783470914471044255006445734537909609728538292046647905172284996831548811919221242353712542538408133266558538451327167832586737354946700700049014582133971111058405593426429455313112285018424333217016513667752229338099840208023395047494076020181100509757709187806416727401327134501316681324363100407379070201232376460008168808561165935676344324838948101234830758429527749056683813585918804961333802665554931341011857122671146745380628796273981844740020092749932924959022189252128927979712784871171315043704186232460828394096780943375652786375186337599345885243881614887368813930937454556214119671303857658432417436031977626020871709968905707195316051622658154319419383093357395580243370076266152659103794108293427908579297159226245836075761338771703098860927716206365982883520534118985911300598039140472765083041107022604858936796131250606128550281495894722434246333334453972620070565013157950166979461882521824430338094692502779723130654780101287892040257365347505420310921365816001132289829534783186030406601052627653177469352461230535159125150453531329223566855046680681087180149926937683664340728374354032035608622814691354274740738350895698998775057979386310571648153802431387610644149405076416933634469903764194161110998422142154505125808951915186091587867417446788953652234771339337347635033931219316470517698166056775407467333981812401131560496083777337489757468954396783722775398464546396133048136549186732634756882518737722579614035289904526427780671391174555572205938823505958276584364192782132126079098215466314683742264003197979090264397207307085623025345188603611731212705373783214951786670863893399834152012253287230801138833878352001182988666406267975520762179371492497626432145489465545907196818596342473793398979991779868493842089547975842248329887275739153018092236953943477454636937915622104689272875310748678796010470943837859080254594503100780442942069218057777794125069060721986131132027872271362614220909707185036089807339595736346617298404054554645135462790002467844182620107272089010523079031656583347056333161569036420760827932319864098127132566852205005751083828833598516020441741820134896079177534591738255996541136656109640584574065102393916238366743044953790271201600895246555997585348498015922553113905100996581721909697309500845764895753390216234251432971557663177625910303640142345865114430020480197378653022974991737091394653554289970811726967970773441437125141095253886373454884199176173230764654543634632529551463808337443308647512334846341987229139230401512185414664693982305346407894825301514314553062545995496410691168494717967814942130159101620142040546266973968429701395803116719891350854074734361163728330648719392646120732587341911568323160159877301604393889220334774858206873810661415599813037824335167473874609884251076994126306775913646484487952660380301224208243018996986354533101642707786218333168289989948853126183308046708778066582796856570673778831461888420581051438621036988350880038435095630501864387638274932374773104077634808953426912630175231741202205213784479061070389751773104352903244791323065347336012227356266164086760527812982487472490909697399629324668491301514602488772146062553701186138337384228255127245883326981678405384102107517596794201228499840520353610096458585450910921674349567108724773849164312016712595686950896760056486841186825686069883188294058461724291018526672429335319237150812174744902373469024555076442519443793446517969915339988099471571401817213130863109504095744800500246203225167023098903328946616039873245045711378469767608577904441695842536970980868302298838735748595782583762300572579917509661479770890707271711499736406718828150649316792475910123156812331165834769432362567808630961502664103046039687654169217643822457959056357550930692259260560721206906094925000918819049736012160885966954717483935841979843879227389754714571749587604546108591649916858706423022283141146524055221613825484075039118038173902672759881457791309630006416779644941175425972356465829310986634835868477290258344078247817190582681712278480945819846920626711403801644544776708213402975216318027799891732307360538768262257066075122176486456266899238347960780050639666872902094909810153911850479784975029563278573551325959261722796283099092398090023339281227662804673891748604488442088804432593530794268621682488622407058793300537356262074376041727011903299627244959701046251149290995147844659568602078082492293107222503598528216181310756471777039255395366391747850720440591109722090299004968875579617617133763032893094229084870036556171537851729265879269613336847993809946661010054287469283505163601871868790106465724642898603533330093451442080532068558146677799704013679009025307629426288887987695751050844789693626048302600796958932623825595556817176454516050158481132360299905110505021346332679970146996143576726501030490157562715712093661191425321797308731252376477509439832067495749330518981089640641312218497979208088231222994973229745208386837690114694251170227499816307826567167477357127316383582826099854853743092743735055791537625221946162776172024240884012777651520919188444597523750871984883459836048478284103121449522974577307561571538825970266705734847673463825360841777351187167152688623639132785728203498672684323939992582700910654555436962648472281288751331887387053309302471836605480628213328566530183527299964217909002336588068521679602635486857397757496739874739689979853088278928318661549003421095460742361924845037442920880434226275627277079215361102540106034145063828792022552644213788486343129597019634811769822476657139274658936176530033919079646762695431326198702572337307592673349814503935596180762244423439089183052727659776128559708805273351072739410136816828885151322932410706087634908925183800322488078613638791108107041033246274717868378904015579016935028504828497579361003697480564124658432128902165145454523147630715947334844387666859994201142981843462133546641230992075087389886758375224954803086574414522566375864476665688024405514627182586901951570645692214057731013370527053151298945513336434036285907615735994400245017149661818936478902681699360934086581715374703043785711621815221637277794328668053943384066496775110381333357578099958817277744858483097491845335931441211604645167852768524772031957202403098247653194839520855610522587724553903857593867733697705834566460091005556856993180946973222795401367138887118424784179912901700689620276204980885400800860577394403221355872092120675599315242176490291775216751481571937773718156629328649010444696000140198744892773033330820944873713422324327640004502589995775415059154678562777435442657329734217521383249210809681746854193571991261593462180981766313680908310672122887027138204830115816615585127857380269276545817396386172266712478532664324755492027096897983117010667220183609249540755750178608971872212051822313975951113421286597020009681897232098032932325160014748330445307512984361830910920225834339936199096127572320256340641013825644229795841218374557432323611714134007775242505677197991374997192130053589620492408167882591687917926533308618228779993812479962265391248047034800084304189846712439659979176098703553615999322097661730200927831786708562178073800215118284142601104417339977909144916244941911955290570243298578011187071005993064631257207762363597881839252642281155661229899097257735461991878019905741371257020654946113686283191651217768924791265713068904073185632374376822895537180852968102599928484218600201367654573593498166185503209997196334705205585199364982396102898436513222790770556086746992363394343664812463664327430989090474953845549198826891339277316862610970953580806664376271322428237528844971334414195368864500333814929125791416415637306302693896794725203097414032860649476210305595451476907734243974055125262684906061975082161963675654413652252153553458791233022145046886435652677330833672877547909516937548773965527753875752649662692805165561779712368850631836955231609542063001280695610416589756935193235886697456922369000112442739792706112530838734288833905438988454893571148148554634815655086592611402029207123938171082611651118169860701655859787813528044245818875009445262950701635617030461134344024176565100213802529473455770158093811653814514925667622936182587279148127668284222608925821415000901706677399695738573191034069334223818566213862376739624201416163025800867262853330804438928789853466309228148833297311827117570593452463547508634297304746290188921169311838206004664208874910104434921111998150040120236852200914305462169733866455992355598653414795365680288219129740825210007116597474908797331189654853208007117016470559896555120108499537782208488162671372637212325991817233922897781230399999260817682362954899480669513026518118284977003258228336799275637615457643389283042501776201411063025220511510575691841335890851943661958721631428171883952849164609662298418961971656125738028820273154782989588892547115917119646115916648401028485769508244729410168999094757989085561033112278476048333673118272989587738924429390847322202101158859459970967065947642846770163634189715766505082478471400161611446918469980201700933435126706920640486491336570636540034329877477633760452514361322040384469959741202451282543729220230921200355194498096829469467504195629878838608665129477366577844773908200279707531889850803344302151349904033563353228062937242614788173694828460365859959815956243891246106261951766083879285064737235483221747457455387802030233435923944604813976956127557729336912151315296631421965573440301196130709096717592715315505888351836352638439859603963900424567798360826672817751856987920546375091516389457066563573387926060357595396839421079986529936431835633574434144264905352233345238954143793334788521305069732102652423077117204454116998503775480612768467334755271135513730728890541970258786742888709550107703909252194573804020819760446084311731398070126100528642160604731582669892298888015961219106654270227922744595698156695693544553957801745779463333829891225931555911069405416386249084579163826860869637817313251875365420154747272557143352942106094411767317808201988291694437605739623699292404796830809867320404494456649499698883375477911858388582197528318950962442432260519125060839446893886684304458605738002527204776695898632835977967056069113375997292914252947045151409426422562915316658588837649427867920215918386457459669555351574271818746077199220102403917031422933533853315538885172517283959831635376365063755697531563535477604406068028888609299730588873918405481876746791470423165391588947789338044788342057824103542325536185929499809923440079060949525922356540103285120401848249768555479235623114234045835752398520970540625351420679452600705514495958886523039292100657481263535007479210538956611434544854418804403945676431699734964913386222080933397108965508642744143371980566453357780073105536690918226439454441503579403852558024987451050907742847864579338565997131322372501567206958882640746571600513739798299242384894629446469967428335705377801338082697426969983010478182226304272587861031860869427360870037560618486167684499625272687789363062854597528715825292759120636927338018917515690013812231216492328063385718136134247743100246126556122774051686832412105369108027653373561359499490255042309337255016473448529199427281371905893937817250342238061678403352637914028261692725573088840836050166509835719644582189663071027011526497221488096325677871647661791031051436832321503345253788530932089220171853930552099567205956009495748337710901954134578785814191319136786397129272458059727362732470917427969645726113839765241978887396243442650720404141715450317578088844370219861073826838583530430160626928508180839428008858542495576792464965354321354698167850830900132612437746956788119926372389825370057786287254026852044916165018543994796034184270850510622447294171399513553758678078305041095800291352976699798025332498585920248069340975015050942292646006007502627136447028249825422444822643487643705348752297676100616758730007453107433925969075474495817307946413232796795819945929925582228041157353865581877280570161448446812420635231373986608220292399702804912435499394065640136483361273471723628624705469781286668964503133260166769083401713380937640812776219428381204975308104131652151589364857744652437614256368269564534255055156786259840996480371019535105833401653857181346143312144302819060404187149965074764380949119891567128335925898310597749830888417754748850458287872644407885370316567698207302272537065245398272349504739167875645285832225178151261528227372284451569572631767241154103377576118821094803619593705191000166208754267219248850151312942862130597204813747313599809900453096299377862843095957612073762822653053551595251194231472246075369044105837607525488704653915924909130046576266921687566017065721786774873245780960349224182533730110167334489436970074406247108499285207259574895894878451004488096023517329364300601520778495167769017505699748727767286449566667344114381048698503505022144854558701435799972523617265677848659419343701716737913134623419102759053294432397081001585658184899450211894227873775371737711029171550363082895741143759544957482140203561691887964283009175485800674895806516176385476467564748197902209322588026547177846063551112615106143921119890492356116448513602185195687432956743966152508550604717494587597333639222577741080504093976767135211967370411121140737420623551854610545449701222401053179924105207415813776715714209317412518950342140511787901583945431781207956967233917824849592538046814230525419476851647643769064913038517175893984006622364884741716398674323111751076668311819039985434229490801814856027816843713611179058613133721303663155197254039345085577164859652121981796402207371843353042895019448399283749542778876372644932755911690387128019285906765996251389315159294261611474125078765455371070554684240677213489501405345439407729968087745558965304882024908554823041128169356709157683133549039972992520225249101513018477100997507003941910420898289994258393488338536355548540395390643962314993347921910700597520597606951618818411061496955772531911642099910354260754432993269767707819423607849680185485783554442078863975990469861145881959473264330951542515004090897614389752485142179551131485640683180074741809364743665778740444847187763774433575469863050169616427142201415643390807915625576110746821668861977927087817523059765444438190490029574776740179977649880494640980147953535796221039966238300290814648574502286346755935131878159858079002973509669442237344590666433054894148490411236859689436255854078859070473885821007600583282910702896656386597276753848712006968856445372890445497142029626023768977825810381007628317334881601860062376296137026143790756321282628940928427330751025550177964244967464178176259395122323710255356025728401140691361259275712267622589567826595008853770564979746799350881210452107231937739345082315021167332510780205787069316973140897927972469856873570200849953972590878165539321354844825931806914492776067956510862955577581933341601905913080736252411571210960063339986524620166619969116679172721145530293863325127987017809927651326683468677429537492373370087875227521750301697769781236813500903962768808791625689837219925720960807715505130162127392346261796706291819748430906045935494408537618848181114732055730419308187440186671293648901952839587694145202502208607682483051788689020418512425934658578088748741140501837470039835084933139155372713291828691006446369760918808980665397324256794453300131952227280377100735883716644423751380477870334175889161540087578312619315740634562341022669244890817437431131996554783795799398553986831663866398266580427836164230710152639272821191106094038126325708634388400459816209992377009640658750964111289668364646799326460015103174269882555087041899377249004470188926292271698198628398237504185522641452359005672922890122862594864775230007681819963866218416937183238186039694122689025066905775264789034999780357726186743274153931468010369944399798557201929942241633917626629857075647733303154021872714056331030682711673930759745952332647185743433745457419267356674515347952280601644198110133267811872369026778029230144712772558150377691656429021146476711863315334256364905711758379713177868909811070847498895938878249921536986981970282559025292959109503091895244644419262070060774907296721035351143088927320476351916729918486344031466188560812679979735352569097299264152480005762221146295080686407820938683309103843076245300994054457461989694441940808286241856729693287061371844601892380561142089606863416223699849563772235944101738418048779180929193150069652711957530934559958172079539033702565850643738575255052396021100546366457312647371968906571687953862393035998136825546093133310191856667003852538018263589413068276639990905125822740004846020323760815307295514398903274576679208084639826613585429665956586082559018108997696165048355632819914165429232370065666432099892295152027942079647238974159355733611751292577358284168120372443147053871718664877498835469718180791367270916313371800749801792849293487637430635450437017470748658317653603702263277881808101372133688415015937495626987433528465248770179027776400744230915176533425511517600711650321878566636268918343923778552192565032422932627453610307858270779515053408170171457269731857449639508953740253554623848871855069209525927236364337190372328939078529219793909146606324869868526560084206603761750202835427542111169435112575734855338686204096807018069875972067080511423656297338884786447280644532121627687478323339543661469188629432515859635914106279074140133669765793535497933901385919856262346479973815506339601867674331915282421704477238082983253092140045175535750871793556532428848203118509332517312799585945353438640977822691561142288768436259527057648320495028016440209708562310638722931859915753239287573360555881655110516321022846194878393801928912179246986018393991463745035352615745534091799618777168327315336550658081082626043462414215345933477282695506524234259013140649126083485154622461090358398324296279817516256131362944080988278792579791649662737708213427145211128140123848277594863286611480664271397321466123323512797579592529440128673710412364701015601391150906420284600631632917968773481025747007765737749113791296361367188986282350477343176955473923151327953567356009862727801765638970867323405707917401664330207110600067685354642118699831433578159478242773003380465955454829434002723548154082605471854751865549196340770529669056295004224406726745731308751682917261186345649572538010318690304571259755689096206036850535478768910293547282299428306332607234934907784142161722438433353053946497981016413313034429405407888907086294345137862804139267327666780683387383317771600145991420222366662280536280610714773380213849355723610392319783652395076364687783946324474000364046969310394220912159982820045038621310356716503964206855524431086874021714011644120575517687564639960300330684933499558896276477355796587896183277119444302618104995046449345775330238839931770620747272708946740657103160581652824801575920031545231699897421998795264227199110880645109707756386429885318572618730331293790830007694887348983050865849017227351139409160072018274612684258572495771460670562134995290919683771055425779437706384202934311148237210815925437844582089388012428702137609333836777478617431224219024643547224392692561105960840435184280731081832616575126209478245435808620367842721155108517791874262741442395382646201200156341060194253248015957288609974142118107498326286710139101046828585299458687175168755955768595091397180722839607981635611352459662138548244681574991675984013897188354684318519978960937850723796255477672490690514616616113169830428158538561371460915904328292587726802740895000593784645568114521556564414894376898411322018369224291764142875989482254403521325965903129149950667685092520898192291702615073468115004365009548088159224497660809557907772103943399646476499724870835212727242970440549316731136951154100277225866639544366396151100223344592815330147997280390021436219147066565649949691013169127754381677183933785435880519597363520126046890874357450149886162579395340856296119658202625290138892007316386396471214283637581952241376773623018094642098958110900638157381362281970258771324073515873702778770747601372449305505104070668066280424977360201235608490085628448832725808171039030091926173198445777271849181315370558751243118290906362260367605635842577630843399325890562449106194480675099689134443310798890700120903209270143068980616517713030294888185442907377796406993392330648038024390537644720497912497823604084048067981049197893201922302779157185997309114084721761721458252173447634972978571004582001536510579708009850356306203569912906160312423453177207980864426198184220809488937179076338783551216589108383949810181934227859173301157406829881521005456614813391805114701273843348780125349280817135876841689399108894868256126674115566957238707292294849064819032443017758456600488564909071865025276818890292339320696075463372710631065187331638464053543170549609229303862552451085771917515103659369118313706725445493560647220623795027478683314169706991791588805034330384007736020174919257230415228927655940483788414777791216008299761378262325704609129715451863415928581854701588931303058675786643695431384065670020830765389917690098700463666454184530817856413781274977949905713643648446731364624060131685211699624923843838797152229421331263001492727385446823032091331427980112690492596078479621947829728990562560115502235564830326763182101142229873535287335914188176872782119505930021711547005933167152731224609675927290651274060443661871692753283369058069825835624689891641643889966948125742106284935064037303870568719620955388195101012930066782877568396798092536246442751563395810478437698411862784957694747349922012453564905761137409261172504345915132483733339412432452432280304293287110534570968136432968625497205479743551865102392016793637511955589838409236870074753687924676989879293750341491804240784031516628589329846781702120668195956657258670734190597488372439168803904008870274849054685472695401414253597224106503312470980508611676388934049693280508621351802074713452381114818835534088630129306090949582162746779786169687016174483622077669398474739213858490971182217942387728879478671221303672933328962482140318564641217440684599371426698925294994488441588899879093887813910911108954614702359443485004563509593522463248141373063008304578046198074459198726595190501304067003212383272300388231482873080971947989279881534541657875297909806282067904818864765432515260914491524444611331442688172356959489516933882197889117049423399376039467590550462576701098500412133453887194421366922657786974652821177003030370530001826146054415389478981215659444794010957034126347232200565986406148528425609774136987387395829037838638203189695170415230446654635274083060043278354461867432874380054347169643078601216312507379660115951016800793311614429064506337181511443875767030110069664794968148817723732254780997313063022457670427184615534382951555566839561916128678502986449945530968141309591723345016750770784580424994854185311847429853584552964464434552565308863087808039511350748090330156084796425543313653428821910624702805610397568515978486723532098994598362890436094739684557822474859834143412660445030712527866289002770627616521768086514593308945234691920413098662771169002504776783421749665640204555642800184960398251448341490684576346937674055380597762238742954679747653111724197442308438152495323357416063621528272687466648953520734585738777966247547071284338937663219597366395579029170863427957826915950844705614665455723614982861349833858991356834530942159590429757548291805373734227234308239922543697020942870745345912249844234264710833168389639739478189306666616399260102283812541584894930458994761787550512785508462370929527794898563414247529659065513314113239620305999256889053822415041030867058365492545736427517464267118844311660128434527740225228815399656203119919321694641337859954251538739805711237334075446689398238444887303412812232577089020608673955119961002391171818307877646813303584749191600423465421431309521072331659710992396990467920822929597942741977476002194567072832687039429264934784937204209931029968916120519692185183938648747618322876841630146502781084971577056678084719771024797280004482990096247215287386416738611247363210843964209410712096898100803804667078233846018109522114984207139777357739822331222716489801495617136868917359749990658621613882140719651024482122299519159006551703409231894953768723928887396517710834460196171711949512588144135344767503961467697248035568547293543153777140052025407428132965146979853187622231482074605924456654419442377185872644978426522227218356706143522712149566120223895031238194687406925560622195086865122944991998699649162156008695467085186425636945169007615478348556937559498189029412198294261421155068931315858923563923962854795332522227808663686198292586498037892052729992853296537668782906593783639872143809925074386560633221472528840392810257289855394766588495355905840866583971220865889845417788585466315397905770827995843860959624203570147017258842244334056163284010625621052199331233353701128429277751787788667698504043550729279594106728790659136467806705196631836021098021300227525783241518565665622551925459929988503946135730339015320089846439895351078788473249594032989447594440704191304902940065115497014264019994078025513677820079279866417066073815096040537638146280751520161777137204125266697064688936094246479712047610983214631540129323846727296462518376818319439501180531920040143870835957758248588407082116915909030135291759312889457053121003549494378001603427001981892069217761702569371785443647961889989277443650456827728149943077110407091568986116332127650160339504586754192455895900886488783310246335572581928349636632811459325107723942664157251705324915796131167689998975801859781883576729438700981050650460194126989272659368812851689863044776182279843903592546872442660095500951922409913461562751674106844774274497249188198399464244224143557008555827344455340850387967785304580889858863983570173983284740897258158327757791440918429289469005276939768159878745168907040097241762237737432337145191491979164770311987567720576965167732354206848447954666450208121378768276054710963951083850257319220796694189807474544671972879530037210236018208599254502267162352369642035829898385282822290834767823863254735038738913141006403917693847645912969133898351840594017731050678149153445414075747028842398378914105684338727327261870699666581114747480096204224830994516141506497163645743631933565212407603370668322456847650187992580968638673783813316933965857702021953052663800616031002059776119883661781345022678008070251185101870670159043200866571333763920587332686426282166574343970788363738287303997772452166956100192373779494134516996613248122962033870558573571568890408018679401238666183082623076016341389353480293314027226416975266439995820317616335935513230060207469389903913301599512035367976403690048131282765083357636438364338125591894238599617993062634943544148981575255741148074780668053387978596899221400849351064910233017660563133767699327588899025746007445779068874508279914954992809631836536298166651256222523246319268367783200045962396711723250587961857138497909175893400725295000145655107712694382253283974503658335412419353769732891655435279792008347489186620923106407498913257685372167943488677672682371181017129506382170492707328882346549884250592110461200157705226704601018564172393679416166452578000421315380102417088280755332537380157789644786750275997576101360045148604351773992078554245324858261668275230219573410742207395418111848621105203012748318369401671812771164564263720750083946367224857277355086684928122966179013765288770003602912930965858286738569392322378791488760438609057941550062674015857366563245315678923777518293444909542452376453953138104879073029930194735014087953282956794873887203394125810228904388674157776639881085256072867860182433145457217930476280950208818890464970226021236181038600854942172771389164986973536193725473459965960595902880352657453499905305223995340835548299182023521026844015444918419652833930626141501921118964253212732715547076089339053697413342683980046164150774888678901631307341381721112401265921995679374394517473501933725043597137353713073022828710151021005016914320805040549218215806774208993469491801554253207550842355068556973347640272533285238340342711499162920553818855732979394764540389019847377692881099838695184093069394180151311054352791338407253304795882851418567372001140532283978830996818825276346827435033523441263999528009545423495576839701142403057000418047333305045922346313145564494747691878686255625791436997182281572584688409744068679193217999685760776484351630362180334005296982555203942670074866621934182231597190322211320227825163709315388473657271505455023104111500839632560372684536642549969663949021122856082105870731272034089074263822695429596731819378917833437628662013006682909731642763189450732808986193237926798672873047176120652986480106885606687665996666124989113636444766316561514833274952307310562865611996952618634726701784583572836951800649309086755087711489510122641671732458848700847098204377636962677323988488087543142587664145707763190709818932718105488003433910219158885623870950667762287068424656737942321991630787835524937832470480198985312724230954200860469991649849979571458461110864002320932765425777723107676798130152488153629290640091117454385463153482284938133260746475426117692985012035438185252107991310891318036203332300360247053590190407904160796100472068528382675157654081585270171564493447459766001005130677581099405007191796901610695973553615662394381495388851007357525141957754827009914395390015378235733716449302499819216021372455236101339654984191924943887830587813732654842609443177695392549220175630526447455421930943710299716341471739170105259987961663280975034100832289680259487089198459247412819776401513021491651983004410599735481272718262275929520613743104865615360030930425731072212020477051166207470515076196934292273749720852890469563943078595779086465203840507296376056675698137174945970630999748089886993607392080578657293708579999800546999839471056434478520920593397308855853118645954109633522653537271279392756649631558334718945991822258784972079526866718642672870643475842677888213905776464585193219216624591609765107255155431094563982490701789397562405252823509868136609661239653031861496096551337593841877532162675210593597434235632235100281902614006442137096018601813846713855787150759080143119613931201065681664411153019916531108586382324900618546586812018839019676506827448069741759222878063107436275786829079181110327953429875406932933703603186776389299088529604465563810831234511365490475857029878136203945348332246844847055657761584910381223776050609879030374298016990074410967504616376891973069637090327918090029480940187002942221790003690951035584984392513703217906885440075556364232674627993636085859340590926870051785656617201335911335154357709618432660147611878329933321245658054593133859596313638798324000213343895394742006811240679954451386416759941229573847360565094165632447092929720615712158243666137628723361558762856613953865461813845488309036084015193248925461186215563177037163753077130025519862499871072719326714591713586571828113606480430015558220975772482429588088432034933870870897687879403345487902959809473240439594510836230583551040644545649297590698308419616518013810569887919709004316042155442863370672297504927141649662756567082284582306700858986552811802491789423823548822944122877363058883474631543911344733149015251120393153022212610966505146840744627510652744572916057315492102911220109744322639049041178669001517529517369412692427715172959032839792162818154042396298227862875599453181843299505592815905324308970631448112783190285362761172429218795776990344512116220769021969661183419480875874649024907315288358248851903351547615827090691643980095418206980160399493131711137299494146567949443361080126265916140724048891747416413973804547024029329527107856616740212929179720758727946161183351420336879698115871351738419670766161881929184002754652740333681076128156557309839566912253809911816429051933514366107019073462272398217004457922922610788057577126078780507821309354896225055039460359393706386399348531190216134306299993812277605329307257617680222506084068724520431920068124275032164227988959176451972376269066495381864142539056301593594984696810454387795105008396436342761476295832906608442961029829735204995022937966645910508634833438659012768768400215603913604848342350076259649437975226432729082400697938050870946621899182844549267299668018698486351987677090578039049904167992854626845421119783018563789051493963710033781217673449138759734218074638582564488558763582581918207400419872589004750735605638651215890932688601511976267045392572773343455033184168727625564796548941849239241894947171103239657107610134633361578451810406969373567100317514102764626285236795424037478886706744660352771747502317662637622610307167987117738731477336106525414328661696591085268806552650868877228469499847696053024365436439682538402483587472943021262187450542412221004410377303034904290375041508982747000712823117300995071681024422042839964076243102745105352108621411838368540066435149263890706235104154813812563883239207132913779855479660908457901279263661973651220824821562708790905436724015946744773314633627199417551887220271746680745778137433393090088854896199011235121354151633789365061088272254831530228521660249728645156721363733123916525765257077076243664904662692592766946136022673299460671085691177584928369245164534278829351112914136904576116189330656747489630534528971619216326008067748570046728680105034252452108973820337020991195655698171762146663435555531898087591362876318952766548152559056376820135269004704811373613732188323426244229602273554436543793079388038717801831396569512611874067628402586162467442161676610763775367788475949686649515637498567037106832203476794156783669017672957850220193253096727692679913970425750467483721844463848122115044697385692886255616712737805222022117859846818424309514569341409284050500221290890216645006267321266765843252523103535063754104334468451943524940204949511553472452971579781930205619942130918204826839793961505856820554353567754245517985530140209003539770603036330328519605434810290304714782132977353496688222678871709251187567650607723582147565874951100725916068455441563057469968998494556847750697476000448496239199056405412192036997751614979153777690983686778400711702643463977877763993230403281406781323209467387909125876075878253941838641116686306461594640807991381324439810877673985925067817894881477325359622303664824308390367295053825965428572693332741371372363307150682909757721693262514237247412534878117119996551763972299966151778080820272209500751275975869070984982441764666586763522571489130590222239892180131312898015511438446090944687446245015008659084761553480508094964777078210587237807835403508091380924956121852266515613761429249208218994072702730544618296528220237871074832294772258898890876053758852160666984259449513603792581602333871757696050432950695515649588694944707596501996081711843752574812981630810892099160950750236006271719560446283448110010117580801237345273368933010382665307592760920886427417903307092325780868602442084812686730408425329503677618072874141890779461217307487248761800070842052687337596458300762432684123850989922097812193549419295811250479110594081500309213159762888131863371232852759343655175090282619818544332835934452347369917838075904063047392995700749921469102352631090725387757253693408481557192800264824160661920233438260978494931376691410816185356132792778905650082043820465847915867596258819333683174270852048280331088798059215325163728919046521897974647671019078731458229998472706812323771234629939047672851990417511177210767900983340293951600256171220105322504712320738548853207376826376811820911826342316269208191599036785346344258543219650173746800302588791593576328384930410453668692302121062126025422946553488749081151279628567246009025933489360066154096242864521167717842548332399354285787774517865626275734900486442526029347328456040344308323970072010088238566163366741384302890123200669006253116865191136450482160068469363041945765849900962004727450609593391112466102182477691954663465555007523558983387639473696488825238171789551111198263056828125157065280282763321583534866958241811371337929200032796866020459175591490287444706260781046865108645943519727569603869439441098655750771247905348145063166112016611042296280952599392563143469945943246341089304846427629137982591341055250325298457429068012412467836122791995603663664261196946502837361181576162456766846044214156078797404001366540738484686695629287703601755752005834921067899042356569147660100880872940289797936166211627413619193871461671258136839505109830070389728943136765371525457987989817769674363800349029624593534143088961894379451498869170274501430685299924948051465979303859274752970348852631659149957680048371032623795180180637077276187855393269670659580418375080357986470849498797474685586318947718930508654099985197312154957053502601070198718760335931932313164399990957377506779908034861992057718344067973023438503321129994795021500916860873635690065115916602858094596035426360160067937337668247200100453077397488835354299086718831001824232452516507049932531134002739414390750309266128083462334401699850528373098634202716152464592605320665174510100574562521625589013697218976049808618468124461709683854593297194635832605767094311682169356404662556438319190222659108808695891322106903402767360203505643400851495761607599513787110373985009543005110423473789666635436154186502490316960849460277778500319443928965207345535102585205455402042259950960084990933998918327954810190610242327049398670784549018746719135152770067555490287458909710015232388088602062466623901081946135877059089820557041497377613214716927199057168701091234086944639919818757465464717121880666122084517626117527750693833067976048178240411600237772748393072789308122356775780975047704900527747700659798191420377050604160341292310307394303038489419069925608520548921068763943224102078607542847582958708815062127803483666271675787107816365390856587546708737500464254065150253923068639154623531138518378960739450515766369536167941415756258507621748812970707887850059338398923895420543087620107178639511112218414171382064845427920889876807816992779002517903326709021641195831705187771703050483530568938895301282597630736333313527134869419824205080438638717197196964702419420458819701424539639351575887594725090238064617008102491968264214648151770464471338257492053016261034132780890558365196532153583268089566542903302182728983253047906776295893258226891119656553996200666381334149910066969060122911903988570896237139368001463346816375875894313115618625269819564795954702873961625520393610564462118950875762416642297980133341307486306409450277417358841616476057469300418510048625328005926302283526295547528176785134809557042470481943465563207473429562950079157610085561728290307823115461627647659696405772970395578979866735307321351618461168734327843593399777212218800364471273339678711955665695480221025274160271318496241610813745057494042104418219878002587829709221341622788014316626207253632680295075727177933972691746826713658113041851745176691822940349889840425623542873553711913380981378368354073443901595025152828455898424290487830079463302178205802097735273507467576119027457200776697207528689245286201500318631578649123179040381181966353438066976383683277372140014703670289008749056392008214674493769839011230096558315056278003006080245938166808264812666437581788518996023677435945782416323118713761396804432464764450641201710262854392832425300249435882043553503432342328392176226525727677860055099281792959911316255785423215920533020669514346815556765366906768866200251198446220407896116021804506206164614233130951647642473160768137802297426420132995774169627808901260307242956792545168120387330785867172271505367428408186516695879219205496331520840618546842971727906796884291908814709685130062416117024935532406871048027902955009462715359280228758291892578051235802332441006018102622747200741699624390145236112732376510984264581890173517631621706361131464405907656116852236052199947112387746080548232402460581752044121568834028845107946431976710464708291783886095951011969762108993169111950672117289569924872281563208371946631223088579095118714918675109963081530661851910701866546220115972635340194941079110459907488444910202279715059656546103321029254088165935835798834910934845127121372450496976931101106006103085008572225959751660146267767904292848989994870907411092729609320741038338851807610451889649436162603787481659871618461569626689592464134956469908222973983308862990542002041678288301641896727287839180169358142853452173978081406234821603901735924119417115406356477724024319886387826946664345373501861341065769568665339786433375094035369990536260899844818952826616710873690431628170922932895816130482218696406859016125038395322719857480524584910651823806029953647319496839339777548667419927767388102738557974616979190589618706426898095713949509779069626281438143872146056429798883541020362314132733920084154590182067450815328782402903320011615767419769736735584096443885392500742495587539180919362289353598350662004547327058501403504114035660881733243752802915014350871073035722221434154125847203563407986653839829301551999750392444040337819977953635793659180713209628006524990379173192157177351522354413645200249667393345556747428492019383228614708286007062064035734350818627564203175755783378948193408703431528712386521319233232268868431222081168805503959733349288400012430767841856295783766807053770489258119457662908200998383044878395031274451700238882733284810952154387954994298709925529799319002852782992985586399819518025889289474702852130008819267337641826729327072835242140725273073965990611617848710108274204212567538599050404030308455013904205367481474529054467727925688954485008771164556647498317470455549232860784718883364665088247471798636862116240538509034769449592199961349636002168536017264849841524926000186309367980587614782558324801258541561443010375916595987536286196319528262610701545256985789525285807199801027593069426273907138221529010331334487881435989375940032750277633766276882535575714544965506349385337821940689070407104289980440119291817007651244858083573945000227299997830489187301356302700512337128993425192570459003032916938043378429279246117657621625793023192992508465794665497390236526526356278623550782361993018282104465276287987537590020077293533917235254834897637608062286933542309220102734193562177644274618821392312042309047468296330256358854774614565721269116494272114773461542687552918606137669598721367178845512634914182848864254341219339662487323545275316930646220569088269831777375451313744847402986263806893050411383798475208151102360564819657528262091522547431619813801298883291429671878966352877701389843458913854617394222833985229978604293486930893881648492626328676946944574861406585130353514915305594466598781659611884799459639384470828484756642704040982788823486002976148371332905577991837067984934007154484984096115268969265379909440707194484947496465855011159332502273126305825536581735412046201782549061978429362551163956815586079964806335170416679817519887040192576527341898970128802799977203335989761437633527592835836440566559218405710909385500958154118134183102268433413804188764067928301131865892796665826788733736118162295685219397541922064852327498784923267121828888767619628165375590481019341347396619799272703664191837566996439424077675253526349034023182421777415684464727029838784720678170570720166650287662234215155438455045614552843117229303290660754584574015807586302871608786182244175427256477777941236249896077807940172949011384118637010740646452763233563238700730769870778739618017799555795293607966997424589822729144823005979832724986089513090129786745977005848498821190251478825249825725325308854971602279832154004202660694562250857053999788733353048938856001200118740053112305300357992853508745218432612331147631398245270588413482470721364505896255422870448811726923503564636859851967277661273572594839868094258393002406015091388536971830014543857622631373903005937758065071243779471684738365529501413050072748658057730374233315765252642089884456424816844921136381122523899797622369184570224080057629682658163751070820432399050176594939140513411645574132507574487181867976835922407455288506662025892738576070531212347163580773023991964550609941642887692083590700004899222699571238536340281060297501284895960213046539447618870611216879888608439158903622599250827339537534087073426069876616559760444605290166050555383099922401190104902556670399754450620638161804452561037577006811904613552831839515922592729200224077647236823509706812123331409133268472653304414175639208478378937420807431077673439686669072048890122801696459789857033241366555599046593305997570271562312502327141464629699138318349973786916356738233144366197051977800607700693290123756200031288480268257138019301471742279057580507877906798036498378816362268366165320788599975987654205214993505855499626881791885932587312351787902424635226225877472812950962693724198449266918096072029928747881832048422202899265195565944400535432990639765519669275215721233115860552937465392514601347160691906981766109331044646599167103954395312375313998966380759006479583372092823763381425033797149219025774175990716371784157121822083767513933726687473401918755302776962555588490623787909314255698140700041042833912037208926226894408399566072237680567665573947246264183877038123706039785838967178779278728732002739199220807431306127208189155190199837976357499396319127256667040706436670722499496547695845742863072122850415759034037275309971242957870896983285342890964523423330754312635996615902637186274705556410443161899803347466516479698082225815558299497898720315894049260629359581073193757534015119776839867370797200408092347610579961193005771975791823096503634378544972681062965382507971132430119321891711387739466761543281120063568597869518608117823808162540206961554226966096983291303821341706184624297536148436347498159999043473108944550293811902391775585502735694235432779047698447556178596446265545866354903249972339657975645488262827584691923923010060861387019518883370909797835828355057282902398644247527222626766898827226572896675303341408144309767007830686679531816819757853789965287088835100587085611886098246898601782246602606923070342187920982817907137994310703682414909812339266113181945525038059236791397318350364718322104164419946347067540589674067954873574837093385004369295526089853158866272877290865565892086614786414129180089812492445907142769783449622429735334483587114367405927358270427257028727327985645605046707761431586424567734932461443746943179686275200364158315468294339243045174816060943696701653814216354301996112179038839604122209391932802234625011295261391774052082003424535981344248589362821296509106850871512531888926277174780554224600062156059829399417520636518576634115877230450881084333411577830025880689947910403320256364146002266488377723164941345445364603562570281508200402669754329331252052281744739412546318062411527424264841157908908228885594561726992037599129708406134813456433956828238219060193725318589027652617539776613344864536424127302603853773996813907560659785853351888462163644022551801902458175186623816350698612098172925752287426746213838893251203437754934554479214673303192880232596510601505156141717062028405822015562554154911917976850230501241134760300321417232089895273423397085027685242927682998601155282247323098452972377834897557941158782731891698419433532138386396901811016494518324323617320316798852960647055190559173842767152042766698036746866623403863410419288372951342223834130909078208830828199648352472537575627033644296609364658596790352738230228296885618042354867020509899691699158623255945974435904525572177133374801672735190987937437005697399297832590103184275060842204093290678043636265289945445995905640598883893991385051113739263919111100531565370386475732146660988435727348131540638628101184005154275645393050899766337202346240010208956525791444583602724242757819062123780875676046485023969007406082615886571195044834247939096962031588100073820863640735575858139065875046984265938049101975738485780749658832402425644284333751649453328682737762695239112946134115968212492731492752380470431527131864567450189103727315836559032491474552386760441232493188474197827516509176068793410143516730842232733117163233282038497485356714194683039244866567905341005482241723657878445899231223471060280140699804213340058788778330528331901553201772714688638165651336522833431160583287588215859361867980902061360812526748697818749457347304468718963631942088685262264623873883183843291331493922185593986655640624367050920942991865051757345984288179779941221906785506735426771515587232263918271310313224323674456395493985610754160749495539837435992383680759113932022170599784498985457836043737283219697919332165543540876328913033967178674335959121643500422896230989556897603745275190437055196965125572214735243021870409406844758839309588154813561356636728661318906422640378984171966116670959791843965540677953388982161214065574259954687679364895921211505016831208254508257958103971718896621675682236027895674983351218370493654748183541434386984656126918804905192287133999137821762541866561108551364750861651458991767480259611153817952347966642451953927231447273238489072996288827182789177714445370960361774792858220846377255580315931949474871621028483304939942708872511779979807879958686021137199320834058067174849296383374781729816948011713794221802866408279568687996885696801603934826086747831319204277261956832973662915011909131184132133027209602811884504512194059021480497088373768254239039240867340652892010443661529470576276909017644431250554381603709766461893761012396355689811069496042318004999809495451156907858998932703052416502834872968080373562818501775858536740529727492278882549736065608805614987993448100369559156817111416567346332008261222242315447965551752618081639353772146092368214524643030849932077644363863723997925824688499949747488576929207752758807715900629641111127063546148676501934526555629578105004872081823739527209306880885802449008055006041612827478183054573539194048363097230068025996112591682855866561127569577717842653841962598470145210614694211950178787777868677658894158262125446894818550284514563216708859434621305857180913235082017580582301549213676814830146272163726652653967631272105565860226401758200082922864715699742989676833683411968318132653064443526393444829939864148625092470700494067999362903369201210916478658550287417862681063478976933190675259589492603437684020029834504536914999398816037594717620536619864167321165987288537548196172791903066725448126562345247033460256290909214410867112256749256312685638644881955965414593119269324555966816112812115110788437958676030534814847827510556749748434965647346570828369233900883401559230081765817075697757087504602864893617702479744615120182323865012946953755437017722380513191713900505984567186666925227455133014123171183019081589084091084986543227330688804343817179945021542168053850150609520114591693427278263122575715553408663894114428340665999570014143955798248667908589475392394819224180132872131144130733826807962169009233449197123494713058876364305554998832108866516831233065239341365451577916453151590545483763995998390890728898957013699711111217502396144883719206720194371496395004948200093886852093341903601186815270761846517565810221652427080457008380927813796527881305473803176063002887764203197688875699791668502098677886079121235754303390569357452561362607559411424119926978077613485646964131011671508681575651028279716718136813004025766055015775960820596858549909241675070218548907295370618001838209275847280714571132983408858179288295673987712880732806051476759065370160896293964833026295829570719567670565590149771140531876374131496726024980203584025630071243760451432455881270566028613653310298848469521654373751207091394029049267189476759364755051956157606103239436127971404251867130160950362211876113351282128500636788746053817825490282393190937672366548622039003163698467944228056626194914846486505152577851120660439696345488837620901455842524627344766685208030602901130047374748306564939638658465609698695938113493250848552714194239103450613940742227391080717429387455029178383255055687662705514622173660344050435911147133084764450731083408191849845193737307408337803621355834304497375263415552243094037269936045811726707038535700203707482068823120393197837305986014148777738947646354602848954018433505197970443450322529172459780030610483404135833326790601037236727626861505594664832163049526500762333799817698498152589286478728030305183387872366949873556248750482411341709645821075141803437594546021079534129191924941352824220978241985147558966895080821612848151087277647264139071258367404767360865753298816892254569702910664799528524657515864802846804369852527092415899247683600957535497064448079740302416527838184319979595830121241157628524558913863093237902954041223993847520788860618301609524824085651596271702075612050171323816376765895639925796707753117935231226927793164005676214189538128885191015350628709493315017701241171261866925984326886898017596553333743458949093709314368496280140369064819246438016846908301894347750070987883783729668205810211951117400440416723117043622737161413066381130751369180805550812805189031898919100146855299556176679490425060972740568656678252823275843931370460345457303442017956400886275814095936137837674764234741874540886966105561735231375441627433089739178997667768571355642503174305928077952360161082341899856332843029066553670711933949688208357791255728363094909276363593098383888770275522573312638520424554838239535598971897318731527474065500540697544479226163165670299122892493400596496191342949409496609729526068886121420820472765607977570021046314020274529100031108301254645303860552227435391801339370546223763321709317414186783115220802205646253439014141752008172968488241522870050756491908925406281436948990532629032901605940122907904926603602895271337943954631492208653813600567210427290387133930135566938392594664397410626734620877912714154126748914234872048758667590744435387730180153259750187241702646627800185036749670148714516476079738534382874534747461976752620809177680707263480181956702229188885225190336265982495206767289683260601627451189544706271519804891044327674852943889518712044991915811378976589606609904052263895819212184956502831555678229582293276411964718352078267133539974648086235050446267873443631151208451473092664151405165336134915367602357352661244382960680026599452140369886542281547075003435628834135883899172204566998541721677857262529141517072871582875169521386768987025483750822847737674187833381062439049070077031192354333829919786872394003911645578874748341289733932109542272295855898942184391752898575252604297162462310442353806326977623017270360484617638117809005665726934828805362256136385716831136596101434661899231728018509291363779850990653755620495958149228679951537793868679032887038307586868293092326187439506313221839554350517647964413505757531209208837170977738157581115969083466662268595077785435581329147559015727664863545526093356580734728053498677790475083798871855162685885557873895547271547939533254844559473707110922491423302599095323468532760466055532159454247893042604448702718677980637425040088828897521352531037098461917737366666192779070675707842552653742316443092370303620962756022462627740240304225209130930730733226848035498843807526213824555221613639160658497755988819822325650014080276618138627073476940697542159618347736454023635994921543429210492915537759464519881471686434835059512712606641646822314948422977553557050241892715697937104085734147484013679406879723567915026094987270116169561481241099568332973285046819904515838141701030693226918634724901153959479712095112302911586013158725262964763439132232397194533514812125456277716772773640423967846909963263343054525675176051015546256137874865166707107615836041652169072796150514728458603679900219211081771417091502132522436819283675966984910691498086532865466280780014395362697635917486630326015893033513157640093975494532736175939443130030194775873149166666381553504567863793700601904216402115250868965002594702434241770082410600897896185324894902843936827949466448604185365835312346077970812036127982420975918646817076037445107612770689661192928417365504024666060141653746941010570995515512601515501351206400253326911529203298451961717604329983609729802154535640872644823243948049723039256524650691159594494140004681249744922708342489576154216474454399261509910574978128457182944203909077385900602147175062895954269236775627707256537941688416497946229268522109868998648376142057893292507646087151008558324473232397657194263215359341731571513320563669558571733672779763263428742303089132463608894216985858560397609026792109438720801795925682990514409327164142814503113647616216651406006482303802906068291865858590498572187248476779684753372271003543889064454363400719611883466482955394925622895909728969658612541835088798677749556367540349918703617755869404868560090916701822014090959277607761418447862546822192730882396834167477468312272995764815984516242456501127229295495831484129625819347896940598121659544736770734640208646814287680815608093801602143601714327298183629766253545303690512599081953237280204178747122639712556154383592606963415039246345955912921277735486124333585234538798266915471477963032536283624220214828317151758253203075573655484172203837195835968844892656963746130830618904423795704072837157937915474680378153709043785962014047773725992360194848871782649390477231645479511185975322896322668771154980225805384169415748050848430206542168612950848635996002096867901239323161738440528467246991931463654431558546342764972178206398266948333152420649136093218012046020174333555048142959895020151819659138914304806893776859929579127940733424105875720178032497318880883797927125008602834306147627929698726000801170685845173281977688883120170901066360152733002005123656245195690370421012917064882667197161611816161941476642950716591731829900052715072708064008008508923719086089352038065690332714373183549428655954146478240220309467750207364316387992451445995039272265683997432203458579396272701929385405102554536848169150720776504046604853991159794525214451577136928431517737676603422816824809910299640586969300413804880451245486572460553454621158662575362247780681052281271306063523063649016923842117006657599027532641677271159357880064697690032758219990256892681217349558192588837646139289053880843784465939219703967608969302083916936591753342991251419978269408074105962466634998618933669869661434038074038622617335144405457249638119995986161780294809919734257958143706629529677424304167049297626559258415055914054158422842812472650958617839027943095433135466241118808674293814609370951334815955988273698651435778704021104260696087506094230528348988571779790112384665452991517355737123922536796088797145382437396437395818862746735277291197014668833367038627187968483156056235533782619770536607419931069950721688895856350783180421413995794442050165173716674246984256176432208361396807814026187885966265486059911884307470884602946627563659887125108449296485220950188205810158375545491740415795852734602950784501224205489817721645250767626814165156017795582296509090578813810259098083574510532508179005668984927239602809538234630395378462454401169173656207391706189526836838828433621279746732123177094201223505303717895404665162426001087719160492665261878840405051276957039772489498193402891626598706070891759091396495672152178840456091508758209890483052828441071978976534052740511468521107576183852811936629215086533366760851351036622709787486001570287392553957728095607829784682584005847561799978157587456833534261557896104924747787844027570755799843098212121484758839944537219043482935795270636815982694197457885049133491543062554758300832413166451174128182749293837947552874156614115745042250662915446363523940063716047254616220404919607328056175103571327057637011239110060611017386473092761380992305784352735195789581781259794591769579174444127917690062545773953465762586818466790272794336474456248757134945760227617238011170898439570213143625195368146834806108767361143899137050889304074439256455558602773990798072872913906705159894805860737411860042136313961777113605668079641226776458884567187666214303255283490768404617308076978860514486957900855451155822168821081250403909069633713492569553404726953005580445536916433257468076604632634921452639243152914860567824371162174939652067593053114739604470242359191110361408527635751378273545263363275346260898278285938011877587493085602513161799474274462258613235922302207260090750598031935486665991590534244885644331822725734765958194470179184102283979517588596520574090322873593234699646863938585331285886528171529986795224242554699938211466261966756913602629581977329415436553933624032862531653426386854206837393041798005918620213106386215282250669186529655644336254214150826708619277898985715078806441389943581561372505158678891164468393065190032082673627602241609214153446897097022487299037260899772728061485254342845866836224680391062275473030826149832799300770111184653011496681327773738722650217675364264329501832013393443382174173124613493274987660282986191552499625077034182879167390617567248229958852733423370417950803180207686270551511521705833415694629315549112501715669191566963651345962093529882957172077810464544515126868721429381881568820701746553639098702091669791611308183922778895134495557531254795501430965016856247641637564536156327101345585195057641347077747535022525755594948443397423609432247516646992217439696608909380989079980365969767676196642907029592839086300849582454323802701402951741597534235147179671864674258247414757062550641935790446757039546783443491850540403701965433183190177567710886301466294671195146636061523568606390183953366372031020884293518992592249239767949406155525252571492024544113124487228786524390872921161157549799574261870900683912633606903878264066468644991526413035049908849819737628823397916958993282953922797131716281056456993777722780643109523271452282162268868257698323136778437213701166484701018623150833265065567474352397528528572635479514265660736645703125068372799671290321704148094389454252636952574343464139669369635336235778860390171792266549693062847662205548061676304199821059272931941581422865086663094099453622198658746501912091818682072065049548753631478015421973427812900082709394521015388867306327345910279944284423996787277145982047891870151745457408276527350508273939242762295806419949923760153917589717441024233844162511892218613728212605203942485636690037569414869745188167703325122181389042555494641721346650022232590359486796739514244138521442304492747010376968158542316721184275359000151025442915721632830208552520995321802402981900718453705568167698796863623545812935983009513878629139504742498132978770490882577463320406436338824179890192934670488304245217589779525392719126141566757408992490402086293598876953961659004921017986711487384601280404797935436179490897336263673135862428837526162833324966817620662293455705302134789895652912815009306333757400805118291196705566964222917773029271606140598440656950071791075788324830473570211989742087287745558379560796880654124584903709935091484010252011900193951127185830497700978536333953161927362337532114656121058855692779807195255282245764702718608830815537326164243713220028965237349315999490769632778180262117192673509550517891262848155079221338412752262472842024312520423979473534865574148510671491695455739527261147849588317943253456439664057567249225065138616119023838254054733846306601971893827383606007115816323298292981877762181029034338721698344075251083827681861889333168461435494441301199267543896782468361824244445203202317000189943986034925825409418323957219826751305168693302662772778319436546406536317160140573378917120175890449582979229556139868393486732942434091678703723627832796243066959017926769899141107453323641860218241977188912922554639470574857453174464305018471452723023142826202146595384344712887124807481800647843114796069161453742232683718407332903790806218602227798117714712074633684313158249849824570147922704735017307435313300502621536265343867880134699571237981837463434113052483556426162227532530107063191440152922036446076336262124812263618281841115500281521589704783901644686800483348741723086523352704800082651657116710993475497625511540524273283295370776693777124106632739908242722751627657948756712289962163113499118017964132322860721069928476723131062502786828527155151715176139064045518456205060851430403333661980219445638374441065526362357137408698218648845270884663365435706407625157646417762323458369205498309355007736357989016083784208549772544588391015787960019723495021600712757431502446141942143102536668021564326878495431075771032626877858581337427021325490842770756842281252270728638071637265341977698963476738572277602665550029961203530649108357859964938627232117403594872858546218718275029526426685273853371642834366315820918249936622901257925301728268613964768019396510145347004665675628785895359320149177741203376193591083448905048726167932590488656422368119080163112487814710282999903857031461493641584248980201945694721066985123107735951114581403488026596209906785894182579864922019659361753838107370940892981901760686562900539360325140261177635862313967688708030075246251374158120639842018349997608043093097232460921496531712094034091912192570137500032502674143991152640959242773880952275353498018919712057891390759641854761028617704805759829385114663581081261098187169153841138931786406027964765434380997116496427451237184126392712535204875975202556358844356459043729940941225610761403096452789222341322111852574146787618712094517268507560533776445000832321586510638098731079226907872421579633913122955772655755392184894700439538312968261323685838384987765353653294187965742491948461584150593852017317356012389654283970620707505914859228178891601404034923923465694888245632766656095845781230014247993210895365577311532502825709726421735604039353582132521672208346017142491066893499206912461318444475958541915277669469898388057296974597204133041054695219539680577214323028334907001159334999849039082271791468779737996872288958520945357065965916448849206459284413201135669783139564293252019413184112899630695645688350977985343536405035815921444113934232071500044870377402594550383250747587636698102571681626198251676720157253849443883592950162564782775080623250987190019256869000786078145172380965399118552946467533058932230348098976784918598923567486079288832470259922507617486278706497082684577551929238000682769437402644548827331950812878303180016481807543599654261611603239970257758360713339484873938845908230349515047917690633085617658550518478829291490252593388593900410494897118888107851293942481991486993918409570615880754246010986857394624516185839514441101034568223494742130048508741990321184560150374189263566521463674222947192276041919699021138874180202181190554127749943919609026760125808601748047029439748797075343782555839521019714681430215602530835478621539515891689062086507357140033607714966883314070342536759731620389041775653629917162742770257997366888069665303572137473732832314510932527079013238003719878455198974520304231645833635070019510129752014860915126729786401577003401553570918186031863410947594812729455226577563556272217847206839556480924641846904604457826605348964404188245177000395214720390221479128499258286284664607236107493983661507057513633864978088946469332325563248071508686630962704782549110775655033563208134689573147331527873939065203064068209174839818610354829369002903178934117751565703317057268228756538030003794762254455245987596278845833497241048823376183948542289307549830162712818205522162914454405624315148898902393239273098422851089559387493726207497305718326696484314919783418697558572209991371670110599443793002029484505111487769595557497468529091046896766419548268877121613108362535729967026130727142215473108381997104870138740489420886883675612011897091243749723845566724475600262956079748596749532323014419370716739520711980888291610763075308826741933912640421670715480336680325971781354524885557310505840724332497832951762260561517710760563054135541511907764079310146807444322136318243433458356786595542207313868623583552992557055723319238602705695772250532625583133994558158492641019477073978377808374910746227972102089060234573926644206071641531621044535320549172401207055184351426863264155613601960388692634933272182302194863731890037772371922814655871990608373947464559545509680832057701824269850545178489674891244434152284597217980030497241892458316247014014876590280383574410057661188441733870512035265613659276216595618127017775710766082529378453422910329040133800926934363443244064912435618625843601593051476207386671207527380398364079242989392535342332500810239087287232162802404920529166885495059332366553124668229116433988334280080370969646791735215416219724427218656534364117414681967288118238512460196121207743392862627459422641802019130392472241970347593978489034153357432945227101121163471521531881736612968372975638336528983854776886774909334495869253633031749522265653527906164595940952986914461841488656061216810778282842540810052641805925109698928710216264326832224633499132916984194042790322755041377205182326794922201748778041837886279585439883913917389340153296620961490621316905576451742982228253610196597579459346360141252580977440581762508630905375458331895945385820232603273208028586683586283807112040832224653139826899100009255396982670473371395363667158643115527437406259063626494983277291914643467816104905587832242206745952512831456961471829340143770141354964074390152945466659722278638368012719701300092341008169421025177470903776626224586117351863114085213958476682849941401023383632769850152302406979660600236363001241053402752995032135923764917030082304027992612936495840228885393840043678394590578803349603644971197044116651399606061499605147646052840464920035324808292131062755769245297897715940405201979419135891607357595121649091690329676488134879460230873266268239712934532314820146268342220820439033872533660675047723060988167402900043938383166775092989802363418604188729327819837741345140048866667929081902920921662874203755805704825233741164348023707601534139922398253013238490452930856704659377693379487001055210102936206382182321466240381006776827266216795769090526192491290054651210896961141203980738533736182646391276008000413710319504818735439750541304260316710347064986081012991517870907867650491782841479942752446402861934650755367809360149573185866286199635393808653907773821223117887585376621990700823206090156428707767553096413678695942582231905941522532233064152479979988970034889538718310828752559622009031938398760258363577196507190195053098839803055468334000945712338014792950028117261740269982744759586515964481388371097957653323196633209357188339271386637008851949435756211207983546083799358380274122846626956488531849968129104641824783112739454139730777148499631790335776892432011860023758272045983940216173821038205342559558594249535867076415512925694317468464491379871057023693049732664430124263265364055741628663643029031736313689263225562365174797226296565882962186380375018888462856530833085421609879217334327808679273907790680444243399688891687868854135223867084742955649292344589983756547792087544644834822044363008570439512152104235553692439432637102577131147944380330456032298784744663039948640592502307201541523388633972764067888998693438912206405450744714939640578841579052925961325547297931722627030011523151290234558961567412401076150619860013620378815680589046281667157632883829210389134583636325572624547754209197159666124777049132736349728802939044248884135917067230475945450530785104204597699924189765100977628767980030693023237772620888874581718739582547293950328788559396535814702117789852268258499892780895291027584404487757615764318545875600488592229566085694238637740642892062118870988292755477215197414555212814254852390514862195416614273323337550769941827385032058148884337459658547788708650826351300840332145833566003350656304345763371700174323533509408286278884423159995259309043219974502543856032787251174500252972201049207786256419133303210302768438114517511408337103402326005282671250721619141391290121121376522051157015404966105533147204927870871407860734911552232992825342248693090278765911932291068825025488776324513870295541032028096521002237799575690835122386137694535286837152657666519313010055851182870138938620876865068338140683486290907376251257247854557423336881964667299558945468396598434003693745350325845413537173463445376252612679718137107993047678807281127148593706499226378252658257444454944418615206554927194464363038471639014642301971654570409059860447111579041106289796513411859536948032337890712609481807628999685435288468968224307590620266061095927113160342820196597603592506894714744460144696603950609673169953108252347662056132923858132435765402287629517372272959357207100879440378411947316911119831374834703984690933215733458982959826886390549898896714445451696177381662778900219398420387724381779447361111280753016905645734912566910862572529313312679573097077287915962799047359233487395072923467830983768272715339850250953039030377610852586699527936415172250633467012520681183710046329566592160454493740879322801931622408982707025399419838530211183482746410645121722873781374022351192433900737934693134416729268712452195357371831394431657436485025661648461121200584374104831253300520673742538822784801275625799138410112310940805804583819132894485153028781501629978182086441379081557169556675229493681149648996966624165247740647209556425099298818370327080685176631221900962433831400737664372764665866355232948160778535035027441363282379916975456304590402492920182088478054543779561403883620226072361399387459165115288294215301208649855192943280886999850880825129873579175539028258993994389499201271885716523822803576794491702134486303527944322351130313367869589568562011929568284898081692696368779393117272747039139694516751067721023142987766354152175204751920952477237431651759786501324627808036879558414823997250820171269701486066828167928238898319319287453666830284710009942422588594525757947863143068184085505995027876066046947303647794578312126820935385878634261451522224459623501326852622301265289646201989222418202254511471592371896441038324097174124117816254008531144440452662393579340950367629791407829044181289252499150546414260414339353251515365594465986105051886869065264985746142099365072256417253387419306483246334236967662058477296524983757794166261459591062884262971636514559876573669331623553810534972365869561837588535197751061526486759706086148264484763984096911785529592573849241154802811595767874182920202462736070096227346108795935226757066920389940270409911992459433641086172889054109143698452850449637715032509126753246204046338843136442773725638603864460133105049673769650121743741380155677082825565840221820698016942409321016909353450482369872892666621196916341004047991001294241705186670539028710078512579629569819001994391231200526942093038811345768305101053709560605549910549647971722130189113676428394525384424528050856419733182403777083137209832651725550369597332581464997332533050410985796859101490315263379982252163903968051165504554616199898383787869851147217312503375658599616046221343409557321931807544188566955886741091272659382644951887810141352549875325501351653793307241091018612692447255828873338678708930572805286301373312616703874247846329053957721882659432668393354233398833264212843677696608791480095719331591964372884008098858862772676823418734082387995018611956919516246261104494947029461927775989333061419325438487226465558104133057092267922219752441777284631333476393200918905307082567016665629006969670870260335431658422375914020343904136581988710425158539083058679022767727643194224500498834099415968087567238798342304099864721762069873165469046192970928318517036380687394486505585695112405948373843057462262131361346049085945627121170389276537693460705013331597090586964950583611347825426818076088946622038644593729658396953018507872877366906743588747495164435813046900582628754091353129236757391887754269401836488377601622876534581752000723810558389352408734730883080923897971607409760711243209688057897903030282942993413415463687379054422147304918633246914420106761035855045665152816929261458074134470087567824103869660817069512194903867789586947766756275859972461843533302487264413845010288811852913347687759870261374213711750738741324437070902208974860554161595652056003314750705121418729459073311843262164799116920909831887138838232630041967441999530686336580415679753876176763787142114469451534512603668460472310430814203001749329644869312406146354421906916243117036798176734415442311426595899781308785786291912511275492464588677273352187732725559446207079255310163465913128963108523780832913364521343039384217714986291030895743832206552761500818150340758081449152553714809671066159160064739104152922675885946402433844289332277420667080877136467608257816855221700333942977753927282717158239993694257591529297546525282434881002907201398571150783711047788913678786487368094550329305789928441219124299716859991869065736698669189172034203319589609880071436517420214679926695578864342780443718779782307589489841468426855270773470375330584116637672406709995975544573985650826643366485973373512339337489381621798308561303488690827490568442928982069949928522721272307754854734220749788902352541779535469593926899407643433228168762996481805396948453369181860287214344290859854499926913754528687534922501432324412413818746384790495462530087836956240294842462197333140280457312929171986200855584273622366305619328074551858130537368298838966975857721824563486004069946645887397342188267812986190544650089365660688476992713062995759606085064841039758957149697254119240335865976537519341500661232885514612273546944268834834215010781360546216464064069782410638791006239965019419763213415226709530844702216575073415475747417746983418289994545610399222615596985641601630515878184782405776891915835391535206645592059711169089896635510245986649949138916050592234358633610866803656507740895109098294362125533472615086376186202836187041518023080913065899368055714581004746705587707323281368281114937090733969588510397357447710971744453676198011123545098878407817773990211539796891813306925268590939612648213925536350563660108461066830273896622092913622376719907373338023007415128176173999516340023057752761424481628645602264043234128641218973030747798888261796921466389512586739055509193805540447956710734364215934597518847695024579168831591927821645032701437960372565275366410863931729850347504852525026504212529905224742771638369039278483028360044093968609662525644516746604081568438128405849776630799184601629041083003283370016537361202802781201615589542651265119889239984527484446563209720573345816431861002093605465336465639028132673307192442209223786341548990403151386551841368544661465031278355354834072937137915734370159572523053091555115197983935032938668801097385081444059899900834449017453018301154295515083466435161276423094284267622113470020214316284036180478390809963812791560169200384782200077296196453852919786535818774656276514703491449240834682411801630052880284299872918211229381542597806325019547957457036184695307059711944193552123015701613304873155310806230261004051859035992548074467598310049779099492766349600700444670918501329570682866263449418027669515960319517968838753443566086308096200977037976688731253147359915200024149956837652659631244348978084535421737067506123690899614285707625399294262812345318963570155842993273251856728543287897127406863507922897826696066782667661774039040951956613076102614963360848412870847263597208192845999336947349054419486112633149493151132549785656617491007768200574524368453411848902981188986353852194699577215577028709865908644082593732399352639460004457031204289343053087234868451176805401239339025939870847512339641741632234450324975687172893195473861120653131369529193275210187104715372055256701740242190962637759196352785788066037185455013510131973614188868985163465568120521896180024655114397058100757091565094277402925102860334104748097892685263885561768873532279798515907290645716783957866223477841798234616085726538780236192204227608082786828685221777813003209024759941463968480031951184708875660194313789074404696346771647028478624358210253919325393446494422053330991744178664765706249918851889027815110820127425563910402813750567175814549796402221256926300705181831148996480192897296226928652106868420437369680277245094261290851659343096936989310382320629497238647826508670370392970102934902700828779729077310191929462261232301222934780780035123158710945323846974187955129227443946885007086970854507622793430327605582939285611100562137031974273510096396974844796264712286261196171658665055143393399668374232365170434644376925590025721754278833081611007557097608214452751422619270983451634478283403127896389775961324115068571642354003157357538567175584947985215888338940122652375205698187881947001822686050130758834188952044909637891510047212724014881763318301417445580547476324966399555766548727183170867013498799439304972007025488726596066068941438956316508298621483625450306235941004862222569173332276362597413604539279922491111878135627663072686285027155805409514723954888821535527960337958092007986819785782184384536514244420777130604397720659737182235756982887390705896500850747766373640122357913159314341804408977800663038345764454542193375748147607246339245356863132715229439815370796801534086642418892298826095269758240897957822644173379857342946063301610591376089870587909213784017219799563163248715378273210391111529986246902153778279008322328904039427199099992939166969787128646740423172093914051029722838772826132659747648621686461317396148661652863854379123633399783368056919381838461077129900032389405341124054572029553333737477615470600509517947844012359110688150905314601815219726038309663072289799012352209793204056951362279778843648035623128542070417802415956995178442375870944177573792668841413591158958732007450997466616297099580445702234106756181725004511302377120555131796755477515895739326310971826839191151162985420466288138918614362298066670037351612384569876797569776957966677619812864989910805355681142545965638884871704244486879029296319488305722033063694387772240155551137142798582074670786248517632531407131875387346822618771885337502744464167353524493712633084000502068125894573978574768034933910520195898232695056298256473234506450293466410219958030738510222212054321691648045768395114934548410786880843479420269409203123172409537270005534769350943278045984935977625661073450319124394627514521012890337723825554401423629770384651812943847843497120260401758606672499341452336969414374877809827693495281598948530800584777328351898357892955000728139267942827272525247984810647165179926503901941748012896089209609956147368846850972403742430182086393413190024830517464202218125368261311290949974349558321767145806000800236393007408300325254739738166702964968418307200758358880641448740098248057486273707246547505906374726391167882179179169264278822099762116219108245566268179771462409223826358129720618049809984425859574726745023691828235326105445463520339966245857929843546916674195552054922416952223905626740016804531550533797367746820562171801775087060267457755696529332243496363686213771083486386699631519283944614226506543627063357184481257238271842958602556067099345437491015680898672637439572179597914929565970176429066471120612860088710595953285174683146213922053552588264508171995714887585043561543456243398400901606360209292086035738275410713118551593078818652409677354080122498568903937447529785427121585316585695691584200063746019891097756731203209916098437876682507837501591009080931772195164384464771554013641268831600866927877463169384251980064514846689713959967783268400749672651783217197026938048783247883311295725067095507361109629276432729738986354254154432220502115778340024206259052473502605316848827274227041412996065596255923091536897535335064897361832597472877485321453338991907390695934085436031339573077462351792697384134671401861102432158609117000525892411678766382072082820711574042642236486246016999957264001729413764250952306691205159991048583666440034629957278280205617920322247086018335824488091401870485927279641914838387770365857421816150661036095468047586823700823492178670563251263438749832832586226312389113482668003035006808361968118872032454635448778442699671968284666276826505878597465612414662414867066801035910774954848323810881508986898417247174002832750552059044260282975331016929191376253905958031408013445732505727186817561383055835398796878934398293555562931730515268313053390160491755531147588019271002879721905539893269108556506926231734066255863184376984964593440410711833926705360336410204780576819860894089828974378831664349612920330846719529210450457568642401278138503839871965290654664645652193416891769180281786259887700003269331982354996110498443971964879260702572884353563204888360771120307498758695896647875803925892503293608648166201239707258358007912053152337093858303256228482278804215964850046057945042459938316765966138739752510429531644291487814396389707588148227247204570684783261981021201784787013788411765621141145180695361756092298600075647140590531779282076184861857992900331643319556361362420736232038532782536876741209285453613823283905823700694133980103648593130858702294845341424808142114391287303582156219145120105500729001543257397810262621897949437334299323230487380786482562626502392327038001256899763403026028949716004836356274919091717420121607727321231371194450269396050705121795595635634289964153802167986916726289237057982865084507575603649045628730622622624803146270945780611959239464744475019527547956594665894706293363541087354715292057758308198369823360320140128394205069706761055094325822769103079954419055215916476015279559873452163691523753482527180195256285506794911421119096649906693405460044245760444385766882032799860257947777298634339411530871563765290075614360842231503614171825762341821124973059084248088836358311791763750015530786977101134089223792102396277152858642945910423491571223806788870139682679041172864685267967054578276099294860336687135552640494914244743399291645829756106437578688972013086953229762306257712862492717913656692153785393254983554159051474671699281534112132579333845703734127737615796098087192966195038881605590138008616054460239680782550481709533516309157287017095541930186241112927857740379661669327732615140398175747125899792124452919733099774228155539244468398242973174445363051258353134146489972116436086826019424099264308370490621445135206008806528896551718406585137685706250661496216103883665761201734689049930356436494782770275034266036663359172179207048031760919600581684601879772416920316390264191828252183528743477905603378188268270541548240022473148878551917465581794594673089838523904101200442617936713208339076895466829071934202729274479814999513127631819242142183854638362476586680124400045172489800563862868737072955260261329437440975144383385718598989317384759070696587619709745273412792892708870019059317640080984547227143555559403429865292776653482899453973900639908289963587153525340164921566012125787948621850908327775953078163607253491694988400364524792771852744076485609606916916528571308876112089582979758179896769100226357597860466102063576197844998411427624469103434250815568896847471024015857949916629233749779761576540887369917633264959506463243558594284404440793156800048622657249835193301526457471957807253694929846957846396121165129750589967131316237055676796471588634217605195802970232596953475759283150524969288509762101813115526040067577935693237277794339177680425644251111934318752043000187158889261110039114530475170972355364267731488665628615466513866987520727338805862211494418151434168950423838081062979942516635965831347105571839477782344742898105122444492524982646562472570255433993232292386822872535034119119633572442409043508862726693861452551456532024696470472184235029558449289275368007828114779790632147085437671462686346255571805311018290656262135369712678883701786555737317962835061761539518403836918465010579936466145401422057749008184810108138705573127028600511573464339758933251406538826130706701499437399917899907549989233328877794765763404442827515746478049713956178637234757402796670949305247357837475207363684188300646044574484669353666907541930322425845816573842206469158868796512291864433697023895446412770756289724854990411624360655368191316027535439160685289601316085245288341329823431742971302223878485993361235122330467535557164350318264653167951401736504455506555718258138239621868270094845602051162390918557353939141680689809070762311346721964576040374831516052769325287620983421975667480949921560753918395352125146581283615448482086408135708581553914671725897256105887165907476450109662334865836318178678379160519394929183559141007378811705549464663824870808397739204627417183390466077755533494633715702797315750813485402108514191081299495997494711233606946592572778929080497947788553930879718481260424383090530870664234377858324602450482898954966982428250866482551884763657589663137671865191503652851222302140638509708989156548004770236675629943173715630984859061135938459893374789832854628310188235160418006778105833528453072959118956851707741428923054121177133980911708679326789137712695537584290999354103453256452519828976514792641687494507102430874249268343948744594114998808524591597994692114395380312085200160245639120357761114917511752621899667453558512623781631572557285570016228405524983324641957127317183972112994867208398781325590176546205509942332973492317574216542401076281724787874216043783224250729026139801738169364992783717197757012310640220363940252996340573064939794467722638337704465579271074036678460512561518472485733502280035026401509056832858757441140572552242192306773268318593761801175200799921203713193929557988520741037029327658729021250400097958254636881422933206753839022560841899233501350512774328629703052508867273612615782303675087164779936705396061928758307036235212487086144206381660701532002511362406893396340633038854155072472309487420766337637137717356780433010261869202738312174547037595258430381027745569036748609456933906182073504048911206482359217484788641879786280361000864000989985750441642218372536119092465798126238772978167227000048592627588577931876236625108578145593009826542185696107207971021112227805916406909173063070677406957634113440320184644537314464635277170033963252685916935098344648580989606825412237287966428513936011333444413930080715251460871373837263217127310602773707279357974501107440628128935675403842628077942026328164638121695378084949016400169556049769057337217182634653229640876533702654676353772821947831246847796937716697824505310743069526159726028260983051635084292665244390898653093127254604352624784663525462466374407693878850880739043190048490821871790335218908220845116590012550212202778617681997561009368204757233998859760798986336925713542043352121776416942974042489245491357048856131085271700642962070693293486219026130121361869354203587334761285063743493041492502593952503079361613843060406309838827310371050524616144040086399463591551044766707786404623085365858198419302778257204909502765934739996894123615301979223082073731282123542836892192056311826574113064855341681986107254294411546969637973827835911619685795272916436704600827469261715862153949018775230698571414635072064716978816332940524697602989017014321603604779817115565730053821799198419101448333450530090283407890701463801700443797823120637346084653129003232086120118543159652779421954003680772794701182376326609483745833562823364674056243804528333851815842436483426570627597624263340486778769792924352074731616679508392359129913837119212870957757780215543140545168426248306914111121194984945178136503051072040682179749959557187297418638359072534318676396321272522905801637411777621075232320458183342958989671791348225503091031512404113274701693229758206296349926795338261439470055898402061092236822783301209176207803367685232759966327066258948690317306152812330879579320678957516325288136338540814161894518075511881575511586395614149897868295317595401829375839400875263526151529438205008965506051100278705670842953104952825132357377967932233373621105787541966624545146683582746355956125032385732062128785827317756807773265148788258256399520531386197292799393545272504492009596306161051284680219969572777132124352230218515387111824232873733072507687088307062756968994083670237193163165445303963947127306922890212084621041764798533057407596612099890787876727781263105947744018848990808696269041953191106402870205539273722543741478463937167482345439683545397476332807147279624186809703176658186323669134930997631471559935901108259923266875767365359051444184368328711138425188964980138509960882683393984499024324489199308807393092727310470884654427836049839287135882117655174623692671574124095503418056190211622532556835886724808675373691031630276917391470159355031836182004798293548567988362420794974955862329492500251230335011552033189534439848091179921503209663078704248273796120742168087193130539204130187209218065517924077265738718912301179719605038511487812259513210321130812645123782787508453176852839126535863199622317649519223896780244516273511419183008018042190886851991539429993016886440427844881885532660967366750238187719023121645448513229717666417194322144848256713670785824151961230357753644707477881899538936859255584439109865777338093814830135334232697309677615798635069056814756801581039187687850040109583980846540726068632497394674789287530170028182896872746863784082645602630514207356902257060306465029414834720761809436320465840951032559958096254609917648737386511606172709648187905278084331299383363337070555431772362297950823669313704650272465187504992580478246864542791829159421766398325514800021470996208452545986882961442884563373684696752369132083921847551029427810769599792506497714458167982426191308859808533421366727990702123802350348919805103061520988296115952993691902946703487511399808788539484951108208572995797392133385318268885162995389966949286411525335886654654480624686115452836272310410697553016404001819310642462251341950231438036153919253716688143849352135198783422723364810829402059426452655976649499597129728421444804925285993255315793688663903231519796208931530684029951508905461128614853756960407192512494028370286611300402368033446220332622365023930801824157902193856772258673819932944012534192926980149887985352175291378401593446427032496455673069133192582661440925916252541931582949766668834267000896378800280211228476157175092583486612625008445445237366167358849101608205350968111512272181745329829178478840222159449429905770109453131972872009434888796217254803276354509331421565607211637396229514476578642427750245529753132979408694575712376081514304857544253031987445100487959067090541264923528504152998989264600616222680614238706723388905385206321908940585346152462731737403003314854214805437179074271300841008989476615200347176431706398410267411748873761923034876524364834617207870129215826883525796329678180186483479967826521082543578125848113477031141205306330861479700550390403406115769249381380987296343496617707615254646538603825332892638760880583944187834973316337513033818072343371413138167922844582825802001187989956162649647583262163563161769159969755564835750139504823852619377558801304251659814587057054594756249120322094483550203866600402308796383250468511563251350664949211967509139795595911111038924013889794520354895525919129972292599995442649560190328309646610130480487541505443236771357890997566439785226066389516167219236853507156965360822430199864378465213119580659723664229704960948813714525790806155267065510577794744128160464929325952696137940827642912209775649762347207428954871648357828385796237069995542324552205531510905005554586579038038951609394762637888940256495565813899872607397528570544485102276189409787280192365350709878425903371996549705955144721319157259011078448656669199066906572473189496731284678318059513132124948150537954804247416358574962100749731535145710148329001845855316737753556856513531237169627486448126824611820216653396244948906079165366057480463959933240480258874362654467916674668242703151443512091607846877379430214350425010854947018880113530155495499539148015917169006888935005122752294832198229246746903692241351605273952051682840501475389818684644139337092503092138865921336580099595106942958252263175480912085852944790756286024719684776870658593764607828859067540675463026337407501018751692884494602027263936435251378519191407099592323808117485388391138049877652856648128419099861923533608593937831819125320951743416165181596285985944391482015420628623691930411842314819018584713374414621021923299634256591281488159041950113861493541871474759990777265787811432737480966658007357293524800322426620853069160539855745852868720652078445897051401686411845079553678077831583009196185762137550620362572072802720548979596350207039834523421602688398455773877029248065992669908495830919437357856616855321828398224465067645521494650379955414620813849793245469467009729336719531928092995093989576494422773273151201439796713266440134241233799955138219034061719454277717497075027383332546360726238506531090751454672740900864718726901300697999980652046873973186492018778132177397090613222965683763810855635888150860472467636302037652873359912610037099892881328051776742563918009053262265180377810630586294276475010505425112445997326271300561019481499450339031954711380970761639336867682848840601261021295463975503035294385625572295851112898553197565992016841795273911465202306552862818758659533870028628608483388735253004387266477222186153239605151288399753197157809610611295704914535209096339719321721946230306070386964467564153905317740583776420874604383441899182053710103507782820276758292105199249751872857292888464236035117207040247983410377573418265373531099705876977220160014826943600297459646189743895692373209244069662844171050437717723898149886626070643634925879523773108284829140589105878981343680375864130199064406691098621730267956561784981255754956357932007032697645491052231227847923439951953826468053007674074381110392965820450274213048484240886633133209140256759787967423402575766213883727064483500113367137568773463680331377679636151196704171867153237999385713042660316030842264399238736280684905386024552034017854186074369895121517039756889616480331766674635219189698363417858288652863535094754842048930103791719567704174002255555146419023052448959196629924246824197589410545236689584973218282573623197739810311995504757613958331875701436264604445657272325898706346977628985882197719243463960241189158466865198229809893251044734123766473986646802525167016487408684966576118897183130341040055446330268192277254510084815151719222494939932199852840054724084461416115524722547055836264861878531433770958515789243408744591296819859182283518705391979293893228765991300565276682512763085494223711290583710547397664769620816111084180898033963230138074308497382734577426862058024188910501662158508416388718193172457794344313341894161220204558849899129468551988486571990195608778664443193548299519358337784741971886870709182354110351599283132646696998172979306728563102766631562123061609889637940397447973889497937553569219347776544481838181597237843749624142211785054647027115859449351026293145286261807736529233522627018277357057832142828165059759680812274652188966743289008668351779681017619668602179954912881209205287910175571875909678807518069224135817756388200438687174689091175568728010153045097719168076842027175761542029077945532559098599732267210601122150618352010186179456410764637285101722409581945174603757659417566239217951216195342037312928326411417611493070181208196872501372009659870110371621764105029575811630494602080336039066788735058802253353872132506825050631627157189459810795343959973947283809572044211092347514395797445877233185489978038867887128714880096020958997294199494933533641208240879651369042068254310754956288746591634385823634747521071144670725649193946944482675768356920647053884751096181832211033277353776602681917817937537248087648982995106772415432687126719097034803533550298345291700468429214311234296405502041383632541752670783081003320899089861512247424199720755426185360659912642761801125866983219978897328627684737443323457261103267307601666430496733603711289015872251806021741847612580432129782268159452360560560959701017323645169693417803118615661387779315131650299190010501159499395998834811563443131318373385936934207670663427848224729528558666169814056260459111369092960225799373659615644150776210853899125319337576628075990652209457754453857344460235376309626016593309047896403961096863447212592445059374544069859419058765721227280759892332385145286186059750226664927759723889990270089262936100601697098256810229080803480736141647844033824783799134505672511303257963094806077758033393878442198351080461870512219583707154482966254944144658726368989947804516156523942686020251963719680113340448062512109331216307935960506991782684830753047481023456858150869215864466174930364897701576983734268441512869864555377138519207798846040287809808275175825439109846262381547992839921045406501371408994286163140924703679898295586228178781758248088989255768104595701931044677860190226856584886359225353949979932951240926061898342221326184433735464906886279475914773694043861166142329944685268051357650137795197234886236760932209536798510920633290604996189769386519797883041903988330385770824959402470118001697521464592804841096088179303928660472434607898010964479549040781760911650143962367477315127779730687670083650211309485696052029575755437564472195748730713938738762286578378480562226844725755054402108606076979245066017998693606944582676743338674495208233871747552574895191609576063775284266142261042888735449165895163128934628346612025619528395697403028610639774716474607679660962857927161552952216577516545694162603456005713157603386616727307689856441485468140316843049006359660668553483878515613711979197917220813854414329278096973651140150086781646899239788885259049159281639215836798582059863756565607394706283062319097716736887353937653337672707792256413320543035506720914774402346501848012643316590042445735847379588837595323679817828199160809435066090753430044950207649293568739801066626011785935173248546179399041878188172026942985554025022939591182950537906391185422335280891730742668191311268667248923937586979890172510934433256626724834538197055430071946497632344352568955735893615383062643323400793446681660630118021019082588503868984151658334050400339027137059638733961704877715433421438223231461763153962382881485104468785863623857314229918435094155855874360467329912079414614967395694373686377590945892878691076486601611529386386525445403269217898875852867082267671973298059381521074379681625886960578188940277870719125420490911893201490629060353921566160693181091058207278768031616922857162822668354827956387606233669841237472384179857528753541339149069069365152708864320812251120182771706141037780946626103167718507794167229667581120873614846840102364563770840306522967628921649102612496812814918130422274904384608485425516236205843489934060962554151173197192017175799225551689769782400111905941979334553027148355285192957153006673492015310041358935586726088490183632304881702901768629833394954781648327415770516736194824475297906701116746105878973701162772046774048292755605212546981913022785429534081938266044091806350651751928070657635152787768047462437872448107881381055145224515356391873285869048777205904982721051751290266507568276210037210857437391303396038514427571759405584411312835584890067424498539775017141541259528830945184657383717816692994950685774179694195782401920953936118881003841713904007873803259447013619167856291377281175092133521935903378199178426154777402558092462775662827310802583189897957631736709853002363927866285185970651654555041040490189303393944340678168251627870945134311663029948773309230529365514474596255042773488644390003452521148291785512178915048074000313347812350285922235413212064005044406448675493814571323036582493745538099865761477753854875318960758717472940948543568470784629052733532007566754847677733883800489510869876303836154739136509465965948861980286672956176491803631221841494069411553777253792766239629843609281018488319314956161835786273332419136432992996226835600574668385666060776286048689202875493011969576768210416249263669580691589185400032078839264486970276780170573421018397998839239336858323668370686502949941796219736801117497953754208041469940043912731490546051044603801482866954917881570588678370524102898983254835033409072420439520056214252717961959127979670577812465735152709394367476065081438482873314094925214362748543495958719873856518863184912464291854118576142137474077694968070902378570894546871916195474396702980055805672594992533895732538837423248364662253344421705845119903694527374836030552990523141738757746673409711957171276725267798524371360836325554961747377956872672421774738696343177424925258932462672679569234689097077863940272812751555474138159989692086672887481624910420197698013852222503438388658510885111890805022959858339853208237611123005780575534133933222864333890743561843089991473266416742197678843139144754743665272534541664432044737046422444925067943792749403521044501065688754775579979445516732662521571005303602013170726864674366186470118178201671255828267992324150676596259139101799262553542622820116592160373206337841086418838792512565705358130768894426491627962898043348551547223102426946582513158015308702512651591382011100782981414112825915306901627706401717945166438353273509077223719177676864632028146904719194646986464538148925054171830318028953365989293038528298130540253295943455165710242908536573999158268269642884411842712250112918727030643181901775519932210156401072686888061714569721949995882705683696858882499872848507984168239069749940324365603622875705411750109740811353520443088476460380622039948401757867671608225640816490937930723255878208851393545200438575469841391926170343437035502085147686280897060448353117822127542150521984075093538560180181351464340780125997924591085694390972179960213812867606629482660994234522009636415459145235538321607727239477645155455896930845756039204949046677320744830518780237667772098715182767585257823916288541874767416241504789738535087000694236892477539790217654593160239835650622540538328254047890573677702744391545477322451346780188135268299886377280298314730719929337271523068020802504839958075909221007714424327244860084225092581940013013953137737032887788662072310340039306334068283590770717580426935651174138831620514416491926754172333134749021249483051967350296890851778095971397162630046499712566325045902562975911354677358580170771073813348648010660443224320111714735593261890246798871665072037438163407581623658746342590888165140208333356030806795677135591965329110373095766017944279370555898866744442270062843568798511998676414938651117047755999650372455595259380064256367091149000817703529445861905440201253995669990214763142719570062314001787702713956909029338302153691429672545934316590121863334436107950145033967631207325436898864868495543435172888618622638233383361867392447713797753964204866070238447761380774798648501038442646574370422023129849695213266382353232393015672799153759568810164954876772046628897671652000596500258245723484422647135420167711694297479232695214905127127891063191006888887214422288318729244957704724396440669523617724482477739644607699876992725700085466856076234377788446912115358451491828489959965982018627073278865938215164632298100596339361037478168158843380112938284414787448233595939488762730668697539238991166862004386664673717540157796586336694524105390072194869455835135932139963731738369558725074383724009153172849217378120608029282047490509265835606978448974702075449753663299924604301971789058428779980558244223938935695180311168230015890934932716790072171153798408319128179247285395188445999244802425270107770017722125406997622238739944746712011480709810268744304440751307374781018139626074100553953812325746832925120926829619505283856868238615280140907281868922088190602341631134740685778158545597003970216613642350534360834700500993421366373908583447521300315227592925733750428473139447070585084470583984358356727505653560070147005907628351191670622500005918976647692132761731565313756497762977056047116032722828708920783182873194815019210811188124916204874770845303460405754587703842881023119473052709476907345837605103373439013433492356500299544091512828427933540115548438908110415181067856482332492455046150901570997631990129378709788853504400537856098983963740031301844679937183708951258646763726475848259578033939749890960686227783273516996819079007646855143851524612023464837325123249682445771480080407526140782570147204443360435597316597243949779062158273394284612896292186934391373932532877933843425154525687863257963495760879062692774634291799613802106380830415828842828486201335793792494636649022312911476199511846975850392207779349158722805499559646843374174851965092785642723254724142911303182525487767082175399932527208093051748529647679566362982622866059132233695628657997163874066947671695236656150302742684669005886601697964532082326283154931010189604742996429891970477165330857750958432734514893203575687593581472359767158971110442324914515822450064900267214251747358268325165467450134955442939678539128899449028850857307730618198635858260492137180619993160581199998847892865962679302247725766523820342132195892416302739445247052613070283675075652624179674800421557063163359604759470386683415811134450393315542589252033864367007291841539989717938853287315148309351040423322810316736843107673626784636767050647188233268011663708553404767939945240332446305767022994756376612606909792264125366212818940489495688070652745367046897135538852865394490867101172822706433550688995135643910838240924772748740780058009851616800821298839569186940357259517712750989365164434502337797583812600976897488471871380964324319355833464164347427230079805210192772628886279321564585807771884559894278835359806575733312991224114900765771481103740694785271242914434146981684961356471554120506402411655567089797048628388954651047132654268290860121067699463716905879021279556218699553642193262105343693463053904421050536594086109120597306378567096306908485693095939392854879470438503516366010091939972681180139418136770282667907149539393982011752419277246565279481743168959350171176086907169624620369256804550999557679119240356583361216404013653737081401420078325106118136072094321570990409413774436135022105484790143071796684098840983004923959310449199584601807030437832558682627987455136717857948370638855780300455205765293512041603430687758238497847403342910754780214032431592609141664044554263709777555754850941264490770379732647914763286257887208541422213871633966798837857991471171075303312393265071580948230445535454379102500374450909390903351371090937269124588430811938801512297241799184619085566369503019085562484501963355188007645258001843197975126530225800835534096805746095992912263669467778897967335180257122512940918728969334863762662494417494534497711498382455807736385024773739408756987496812599077808978169109096423928147857403851403314823415490692026855574385690246849471520349776540729940483502780573190007580965777517231855201456156123061406845293902045333604340259897488667359829054338965383733081929263929668969875088899794868851604935307588029434316569567570026585436875672838381247078716219985617005715307434372709950451523747207764200801429409460119368437810640627863551106838747687229316129593470936529061476495916457616740280690790853715853171717507581310416485675736709891178754322776202262937890139438417805517825182318948682251900764869775950867667833686628619295758563333430792088210619495349130423616579136562239438284093357317917782621246447055346828897552488712043693961893670072866600126546367667342989139083677907853941769033268520294698127597170207498535910868540567562557864968868746407461991166251136220231228760821649002617457495707065800144620023121126455005994646343108937882514725064887818289648237057208849903219309511590993303296081910238128095161200324294784583279802737743073686847264185627649191743607018381414165029314608125289622774726997812761488795584676792473519029969354520679548414847222267448084822464266801471514373238256997183330660648718282916365310308039002715753729188888286533011846084705374752886423095793861913765226344583733563506449626447796349762048347915965234499313731802131872625752472053033742726055015537273401711440089547872979703585423223761655478068578504214444126161385203725230551977919432435107005492359503189105477156870850423758995346000684815985023040867440056845236603124498967697443819085941676807417175089701859659929006875225223668636084412581478980095775295892488954599180124176510679913342678473662185334132456021244633979029508337625171121113943094687742573748481547237138741089869515402676654567796086042887927225487766114869110863385302574568007173641050351557632106975355937414375781714851057364324837944869048334663308526270302335889702194984012761140508235804149787922724547668112032417957226355778454381343789981100778183462793427704728380479406649106003267302891871683721105721826387789899014527027090894265539199045399608707100643209753500192170350250515539252212119470519509058892815128688905090285108680710059964097329284866237310212323182310363383405006494676279322722868672196085541115057966454260508565055087289699894401181547139477621295494923679559590008369489740573185467180997921656578435541249846963931303825881052175896181961141953463212209415652593375305463125923906447500496708925411188563399343903915418874345824155991301492787041496734396070638462948507790462461853339015703867334187837077664074492099517426698818761821854206024330420347640061243168344298193737570727805249346857570846000032598524388632203307909377596319927522277071777444789301816038356125533807691792759906750331213946480321141201803261998693929562260226346724350769881160971849915802893528766804924362128697246368211821296194897137925612425384708578391268153411481202318998611167654842408342366639344977499653265669605389913692889054077124180972820122158750472303375897328414398530021735999448955066070833511160820172350794664412441667492441970966992020998954616027909731113092936942976766506870081782224354956403395407671515154599581740529873086422461712188857149459174855047435694670697888319179129686799214246554223565965227459603984041491003209355542491574036598583210283841915105684322426447026156336097264728812574811422428653174724074855167529236880662278558441217614065949236854443122608391627412278134613676001897742472797271535738672504623736186973460142261784073132089868544477229077486304446298779201973168592434566137805430920660789010059787853441260588541778884229217151693177955073783753165784749562727263222033248553400031545118366766459928638195621638943936490839029395054337818956529606731149709236613429208060350872875606989836696200270738450114109207797914495383931393012890094002539931045236608088675568651285872982889670202044358360884662163176340374672978116515250463051830222807530542079159177313567267476915971869604273530217533840046332311432402571671233619650503991363154253274907312362382772383264375405088419715192138535636566334369641441185644984661671958911804866340236399396836531978062830410216744897729115230888217491719641101658600813406275150938757007805699611008701082163596719802159850365392226005069068296865074328953121202876543551218913553072980335813686111365192139147401603180413239217212300839933109030248862355302675327894958169198763718016889503652216877967848455022551205239482345219000300369092826225395466303898843944982634741471655208185507426095208473803046432823031479305667353191434779252574931262166165152810865930400733397569961086243679786541811513301006673082818659993231065176882857206165336308144169135565329796333756597118750605172692981340566133380720737329224486324117659107741472232052591004791665687193034689487154645804886509557356574812507265513007196488571513974648689810160006536376295080317132571802798734092600384792786940789143208511368272408244090587387948999422882590997917766968028335123268881321067346258001213663747274848052238330587287706313482236801600440838467543743722341344073651476126077375520324051021970797769155601012147696564824529609177020743156581817367413958920195474685131983468427620778703013950332755191821828999260792670352854105168770608021625211816063235202119548619651788160978075277783365589784710271016418851888271823649891571411130664850612851153930834655451453053340935736812443591525383166991927308934063263641742334825469568568598918235760887268034967872555931713328083366816652942381761820704521316829917020275425535524894154033543040257114680950950014613877404128373115873982082172606625023268660619985668294534049763649473546187265626998966786490942789757324691729162575269717664480112754012987087825158716996831309431028301962512825046414706549488411460472916367826120427141546346544513215890216625282927513191080706889418239210184690500597638243955535820965699280413176857672015004193765264071694532004103768044193778809429852483475788931639164086832956510081158390937223059280414132157545248383680015702576894887652224531782841536277755080505287700623724098379264109962920016869304932209480704922455111690441030009343301402351816425588960978241232812016806162310400126435555190201693586393032359832774216571409779111025782861198725503924821410122790517172673152069733586490716145110631409358007695452308651399325083136771990193306523705676971647103341832143622312968446901785782494179412215195353398311376173506064670615482477517711903201364740076854436734182080057200724812748777942820900997863798171618270361668594486537290616278661652803802808034671484281393480860686724837077248238348109997994902193074929450536925124391144465725660004945464263953279296070585314663807320774802052913024981723180894310017913865060848290340501282672731888395502185509372713662761824602105357328064700431953809194906793876146397387486743908460543392167816168806354308360319356328537400090732114776404180324308369933336749901660247408237026667077792038607853260199462617854659696440740453830733068832409681816503629682628519270298276115045292286416938734020806788065854337789367914709625546855847068801935876900131333878383599979372799635451284733499832437042366285565195388141991856089112834530500878626593167884958325689577158337467777662701345428041536358640879269541445252036223205326288284269786798665333921787010208174833604323499874082370819546871087532529356065654624796386232997714862293604820635891976175561136084691364775305607244264992176544226082026249744330142351506898310517881764693308652938786450486889401325011290583769909229567953239594356613404630610327611176598534912804909787050012132265186521238562685968865177953008225274073459685049700218018311180060815162866370415103188670856836478467738341798522588637229574336970515749911718848264433196251749114354706982675075789417617534489723333342674600565810068985962655515301452088389845527681937334426842722256073075881346895440340413962234366208761820394884523096032144280945757214454215069827952341672702933942253657593853609797958517342309684245268469774309857517106857596276360289290798320179762609696025833117431945650188486244260580241386273549735452828609249350860565963733638002790424206530689205452155484191979537961583928112122698294464153713039456703595174280155854109530276192611396015684698041567022548956281752879683866547423787775406574303238327458471216607087971952058862433822576735962302029031766351331387072285233973217439970569517812660310909242628743401202684725007125496367545108442493629164143812238064171720017979455478638550550309131113048940310927477876630317360619068847803430561128760362255728467570913379982831236249227249825335115762598530271111925492045862752474104390330340910192771107312003138127183378818809094014065440433162592880612091625877856075458775337509854638455460751757241437619006535951990344784002543584517927935055550978531696071043306776971331711990480881373540327026228793716264127831672915484229393436248769086061872967464048765631446821455015785377378925620366840537049179208971432782423623069403533684543108795788026748861350076640790147189943187521289510131150391115227987413744889175901345182371983901361535540631736235142290275107872698223221947638741341864605059478937595038304881496660407709744929646217324797989263777354491231348270669075681883886332434526293538806494857731342658230080578210982793613755583310860539450826209290474543741655702238153234377564794890383227096461964396738259836903883362556266333320532331282067207876847893646322611092490401710631609479763603219423688299837316168355345329229805361628162430065538547268893118873801243763125615909312044993585738718571920998049375988383919960855592850866521863684695578618354667163971500224471388535002875637092412513246421243632426444606405019293543214861016362035342449687578472001305403413664177811143210914763415183598540796392389557630134868106950916637226487122238455501513852962986161611574593423712043355220452561235646874458823382391661802559506446977100080209185593643004856690852053968673314144788636620144986147140562612168027557373769771718692521776742183704525037773566911151611349258461989119717008264566689781036909070769751794709279419715371833184351003994685710910367426386371468593739526226622452090271109359708116168821340132696442830077111427229305373009684534755541873783163637750739835327297328272076163681228740816568428552163663283985887643228518767467118565781219449497709965781161685009909275450896564050213260051790268063602006650562242092069952212120106052104796740907638102176126047237038063857355617256153776437017813858324010315261428680770437670492757260799770692443882606297583404813471541081561635966320710254120997373436268890818262729343367851571050760556359761248046529671271075803908413346019203218057507598854255554433262800014776256002195714598672202780636178515684061009830232069120736835962468119589245324065093362025494989820816745206896406077351894845050502671272608011204182479953269457826366244894539514192648698082152641893042752907035226228111114172479578094891721595798483666828652921974634173903021531698369434059000465561536242369639643273931125073495695791909712989587345379412373179621591232361571967559380025572540698123891245870206958329360335868875710030145168518915805331814593323230293107276164364054493818650017160359943651225916159942582159418176036408789693382354732583006610999793276423482260464599094351690647127337026686513710935467333623592049321620979350236004813279065521023353923732441964862859317152926461288435918760153653772607582797563758292846911930293718189592563531061173022326084633247106998199656772222699154419470134737659785922457044266551452265759483928095062572556633291300025603978023752292812067646368818339707414761522227820924003861938338795881602616772813117134616726647631162298703680464733468559858987120334456281895436271740330030159777521573414717136998731855050767835830093718718020989763439091097220513221276708023862696903142582990927239973743771946858448765220717760714082101346969474625671104849504266170575144047335162394581339955981841086711694110660930825235720986458821441854915184657640278504868010331206414021634533313891599793187543909659737274773431056668541524392279530605203084741210270618992475540076381083666585725052206820380965587525605058343978405882879692294149570312518692750866183242859375597079450127214113748102024014408583369724185835041882575856498249412616842499496486972514613019828132761774812884229904258562374369690159172674829293000830601861578249499179821902813054556021467585224278727535261285478922441096964890657231454068864259800629352259182585510749525578307968447299771778601523169025760692254852948633391319127626072410528105533616777220428557756541456077152505313927238396273159365067188258727989772784544051108595702747705262803063050161680945463322226914302224231480170439033708107296832865353389928837575571555854326592427347237216992508843568545610119291844061016102398489284872228980691272737457954345797790387064598836757097051827016184018731834964181576167692475782357218649869770297368874905573820412360669324676084895078433440737404143119324740897906898477303715246438469960148925282300324850561165646206396389901891516197965826372800508864803206603146716606251696270933487386266121874978305903916019223570767896995111132193339387111306076049930918304421235032213598602280600839517395377378434076867787346227403556793702421442542556553233346547507407353880136824966305555703298219194192086667371181412379650385756156654263071974194587934271450251540652118777163232230780092144352592202668332298068257049515738379233767810033319443238856768838934980999842692647142369009276846256918465714655485643172975783562373416680949892998917340370358922142003358766592538922892144718426750633553302805091439313565802210016198128316595989754521598305354354370267811263546363722789351344525604626792176248687001466087963735036134141490486466554634535620097652980176486490044006370348561051562469852952467079391722726405055350756621099759224636687275385064826854900298087344744020190867216276210256193164504810622355036324413166145373781749564785504231003091206360170227828911810746290530292447433105987841145617384895048522353694085371340242428180437557905333366330808244126333336253551695122025580865625989681333366600511811439894006544305573840846943139671397785831605272698554991850515523488007002947967415522754445543792429465927269997013386438338242190487262468842132302367807653912719815488449318141974048083914689597817834174353442596464419477874487296362927376000266758484707868752979674319021651334138076117342430057442361900533488591518260379624647973224851336990427842592045294820820920287553994184149726983389225964852874656104715072387851577998071084071606352076992473125286112793099612271222354325713449648566601886529372588506374946098700637286708275222898808339712999405848507133548873848839523138264831750656657198495986335069684310090676697479599756433778251324532624705550822033033187657019515107816179335840994589742918944644404093314601606334527869312799933680316223035127159395388176038292496446725437401376527108229391458095413924807450968980509715173286054353140094286103916494691059420418446756350960464140234941990632848107905972136493728287944543013368202456217211539389182049353283695894328586662641559837446012855197701344422114322104124604161284708166060270264750295909448953162927479218434853732967510996478616505446107390723315365823307972498532825254036255720868612907758155607634599157614875565264450869429944178620190857523055305883946285585291781129710685365142240327418070377608638887503291855783608978709966127855663705557805544836613151473354771235292597184342606444435005094817031342877061725772556420490189130129751478435966405277046759097868536532792805327436543793770351701726079601115020531366261880657856552112044722801306924767874684938668667875530083515263692092708112819106971048928769244334101437773698313208316647713330038655235412605522639332543353351835533593278452233233313634146827077327457387161235373668244035274901055965404411280652229316899498347534554156076693576088015599376453591673606365611541767407990155559231714683453325084323689328213043881988890621406933885254806020253980594061145814141979700094452618566864925474198214956943499504201792002148961608213906418663638926999048200824827796181022944874350945630658000604386445196710428190102108955854256497780070667086178524871379680284177197192849672613180040321650392043885752475761079010582165983226493080092818418876364481497125141795796845786098198440133450711149104302672026902351129866579390157137105223788995730165381344267590335943305389641359762774078927092606578349335993156464619646594120491185976292953272629250532073432948821774489582229132494802552581828280047752769576053787175582891919194864457614113124846710831283281999984304866441931423219197721056488390813955511883495275238056040537000743776995400059407566762339559270168175733515830185655347597547777957667346118273350892124204205578036497181091659120848685101598939739471762438364679013870732779953038486938490267545145239645014369532646547535649964172199005224045547110882488747661300510689493134922459199269124444673047487428935886183156427893568894587432604844911596910217751145350239223412947420868263389446747951980542995288026518786165067871180133661433692357695776764205879502312867351850059693147910522160921876010975254166710921457485141442345983682273350023590612787378085870507153830098634323368045611001614023957700811169949336020142717134144811675742059112816011029720915516780075600664282112044910104925058039414705513106692846722234474181783120836558575947550632035886212965614238378337206423416982882113068275745215865603915279008050216991322219286572467151478517869714188557980533517424141928336567118057043851644902977769243615587958342776619683249701732004110646647351906005427964111677444815736658937579880031094365184954804112961501202404483438387814579424513347039031920480277553560397497353630095744917100511918681633126344980137538714926761595169381280338152522056759639405522692990664121948571916297397491029232179889726407801811943087638985910653455730335279826825279569517287890284002584549269745121688333474170694008925746212021327579692897285914162490050683823666690237129006181560766324822268831620013473028384787026317778120249473419924211758911265471000148634335041171054450508092637944871028081499553365924287877827049981642996043382372632198775532080420942090500304558765741329900039445234308880495185793180686053721804951563712912252344458989443422104397043758980059201867767564230673747732493193103825184000225318892173935091467714932073754138157544721976747637576350610565927737726448712739113196404283803617692719623562005840901161023088704856656281994896874459013168708400889134598905571128215358697911004580496596646797360491450687112792303763147577867593369978084885178430397055859023701784454269474017154253619368246961237957951841017155945785903773970736248938172369588610255411319628059158776942333955500524138622859908226315245121973100510726651005169598673182754231758507859176480123154904369247873228523638780108444255308088450563803445546092146381657066786751116341568411005912401761228244281162218259949066819904146629741307127212920488627832517100620125255322976653338845367399314395724126772717489840068061729025085675868757002232377272412075901353278911480065522893001459137045073066533857047878565765447789973247554672164581870880419360438526170163437053543600197743580344533621717698718189785846613114888861635918976272916379630188215905027470305110772101405307175305032022995616347450762068268512885251707865117943216593349651859616731079966045927370135248327768290097897129540794928463484040322504026169866128724860383395060601084767697897363727767505990077489717715845054163880527491164880632021343302703885812990475945805475446134375996298006130707613435245299374235166042415438228523651678337842994619505532746537269623960023890578089254593583661748991613059545110831577583984754224472653621849718078444637505928535664152795018160773702335655694178659929987384575250440464803637620414994299451463256359514565523785657398589380592363899867733469862403835119023992159447368602317293351618235084564852703547876762911991035029628517577466866279951584822438087453493371656700320332113230103755580018888618592289077862347612508522532997475212998892496967179200772444888129652446124108557632805983837124340483032997937967636930611400162005283601872230223836950975511175361273972342057600352252729200528796597765549253438201855589918056261765691037442279900450538188534288851851885203033095566290649459071187591236314903491121926273001155536449333716108189944857326170029441491650237898940318507227007182019292939983780122253578200850615321178634639416335209004967739086309264446674012602906047691944591072687565087428256461649565999367411485176771953591736044637834313944522958383342299149809444746780303850492449007669898144442549316276736704557922717540061772444833464224900802474907080962470246011137871247659680708524593537023573780016300044993005444317922442734288223727640867742206493425115367100147222764529600453937924537463479455842827844941289757787952362926784784764655501924683748039936270855406405354159955397641687586591648233883114284212495543836053616543697277584422123118560206434665193012379552350722195611167891195349711355987588970620004753999204280426414955617060946126657449615120320709937469587524295262336295601767270921642396378850515335342601219949648375235515219087205822338356663965016041429622272592892554883525558943382414969347116566175237884825136925964993196995002827474807030906663576506620630042711022336163598229660522485605063471164489589271662946454376948815661598027701906233361950487586588237288739019867496641034443791296963835418050074982841229346233698824969562174294216184048527122974869020340734577109518422110990863131316345858680868500923247593740458598560091334989185388334475496018410870309508339896474795491823261248088417474151116976815037356795544114013301915827265369585533719844330413813334277477443481427368513879202833978000153318311917112556121508730135316900254663497747429904134845031245791594254263559063684557052777839054487028845625919968542400304713604898122549585100304909512777981905212945644707753206515446721521278146833041442190037958856280283784717889747836902813187217238805763847252871763490382903343712364850413058723651203091995899309569879752036222505497145589241738806735164246408539861520059224697679524717052039138352799177896461622408740720156977387444497746518360333400167576916450336785076054874836159367428632909263633949002237026913073157812011564236889925254206875850767708094280501122506719057080520364440898217853411095200999484385388919329307169785002295181062295546052959040181488293415265615339573927837141479444591974146382930794065311889997846651524476093220474542924884454125120864582473719466098789154136047418584997959638561830322421992913304573728070995364666190893551921138067602555638671993603380409440536179514460765177698327979027699306416474822409853149508399798611921213532226176049058129968144017678771361932499051384180815486427544733961998886617744709362972334915930822596368811432796510815709763453509643390216070699402529115417168612466862007227414686855193905109274490037115866077012402068901321855015454535712430409771367176349821175007567691248798170307877044834110213876669972257881219500602854714316925310174999554909652341353883883524120547607347699781325269595772977731152491179109111176931735438930240986904870065179483652864214980522181004422250065794251760753282975398247753063698637179704713433144144687190103486761735183512621338265729017984436508372276233735290287294292094075839258258677324841511837879561087659998319046750653719947832869075208085307541240306663184591040258196465932893019036417788567577531333069920221434348345344448178579806790203597735278884302483224639424737465608412714468825001681284550501074940474805866105096071180525441555053044839781291982231269117792573328578506720619578737369008533972554696430524787241466706774431321100273646008411588880921242533416635042010340893223905242568801725141107268087593319333929411084654445106745594589228634305304801616823436075386028733716449668465908123613027221433151716759219378143984052953850214831908799495472737455570662711440749279997768053855064618966352308178931071482235802543258233843214913861372734224163879523806431214488527714271174122992549751309367872368212966950813716993017265047704366896742981735330039595408436469798361369633380969429820339974185601732953420918931263453881137084574033758604190936769411017509976149500971860719875309709774636397819870178734335696511493250944674414592290064899048974773229679124111764710223440663892651339330727928566672577769239153618505038768472710365801215399186982413529614570533425910341263908209368023051582305065893792619937397354390804945894421033795264405544781461481750317025492813382725379209678468882054886781632981951449516848444452436415622864611218272706079859769256286240040313744342702966401930063185078696635937251409745725998049002928483090075048120430624547587826316704097748886266878072200800242948250510151125129521150697263970408064557870354550964593826433751225934071386629139474053869840149909323318917597058072899861982966090736045332351874019856087026844663564011711741240013141253974742172235063876168543375127656671197819585796816492708276213184499288520149197042275389892808794597377689134225929490116291475444513265235914749549807367334980687875803242662398958644227419987742322589007435718169954039239574362953309260148760961978431548387009004205921703996106165715139652495984704881723893634101885033914771405249307333862923299795547052893926356923786778260571245929689099699953119961656224980379259357661791174163992402655463640624852345233535977677608807069953774635050754238386344368463030377745005674595517105718092723525434677006524728382542501340261766588077260684003203941267727227859884777116893131524273135671266295826849209425713948758287053606487540192008959277459428445102294407675627465597616961369590009104430300129011010892302732634604902470212827041399274796096229170306645799684546410052542147681279690613155766750217080329435752308083653060835881092861454638555513127907391145154979200883926791293753947931855598288530307552248778217279498106968306017684807065694270926841257669728092183714108995314186212262413375896582728755467004399014366620495630423933899033922813215985486349778858052090337464455638005972227641233494529665916763648943875064746405829991919174589775760409264572443406277915091258171277279205471614977571557749989115868247268792839759540514074560359951355902246784562385389821878783096307416965937475370656904052921201212154567587733522518868216052994111109768899382085419703109952053619055794382983074315077929885607857392365341538246981419943568397408779002311063067365155397449146561162848175855259950498861013034322031807598315928357117132251091514564921243472890955747214531743177619944432345074710501039192388502501703663539352877487548542564219363059259338625025517331947197541220882846778514514893747298629649082554944676196175570586252742139363694396553423489660468682607424220859113321292135539989113355230354480832078008802711590889061743239988090428313378505168967967954934738627358966643367199637332802853481113985813143257194393713059511089696527599904500453467821634862999690537145789161900716106842079476146415020350977718162164027647222164277621947317847859433689737116952449468737998944799985644575178947985978813899932857855989183116907519704653851159878283216863375762136970338864381370316069744445339804613448381242965108392056637278142564745178347392093971354265272988768161440389452684771813809137202937221258802861251394852499719055227785838871564571735505902063947439562414233595574429093222217747030178180761979049473492411454549034490660774009404870754881322669717994577711289500111803637905237594279385617338568916950699364326114621503266942315584433737078078648374269476731433287331557535045331460063796163276488024672817491551588352024576127931148440750816332195239323754820547698341169465897067247007061432909369080673590259978979256836745970375242782665894020629392106130051390371257777699628946824733969178364606473862489826815358247156644279574771217435359212626721460818687218063620768830075025613342763114173360811756780133491653685047412092011853321077759571527400745678869431339101017135204918394963823524148199334447830104249924974243144754157581473407560869444408395914970498580809584405010770663085637377695875797590603923316742841735975044830947864301646148356954540189940916474027672734266404337706061676811815954637425475603791400910963146592686805136000096217294380086338950451374394131323241512843793266438012598591189829435788959443543882692309681318739132506439817565723602245564167710322462795529324452744026188589895995523188330734957225786204263663951827384375954009654565695358180047112242825441906938116786625949758840230883631786521199004510131916261589229989606431250540148499404848059211446998509758037651100425352016470421335699231536172509290506221389633839951664122696402441433152792426798049030762218608475995152833817673217085167795685154878809338280020286075705463148577144475202363287120793664197090959774556983592018839840683677579362693887679426440834665698484861176790338973629287211241749034720611626303004468954581440074864125090896389538382676775941419917206635796376449388707383361149263785149871341590590196875798576437653946656738776634026012606225086044197924983359090046825345204846646402816097345980898750885659663933238780480220533827202466680927442911871486967800653561371910366170251485040821328946435934272307819007528716057189668757006847500361757768969370804788014975724455396631030220267410382303216825699998403320048397634596939475218993369146629995685714928305663308829241214364005038610641006122015598600371681296682109211887122669179101910257861518922898672683706476810686650167073431026963340610482858409104608099573369442907272332349409587089380872179992376564296178791626349638598789758381899333095147585906625694307749791678785461091603180999473275595653556384085976172609238612001212791240273343107786380133286741658629167125798566892534111139951941724560377105152345856739430555592803780150963828059564201768322874325193413652168819523795587269902949767704090891616038425166617236710883264267963969119391843806487754640156070396631932425198666136747952118349388795576481386026812567399771175333042107369041274453797735692564067620098629491998145987510689283002707258648304576245940117230943327979643484048141944603348907160354683560187497955825202330241785587617537024730235354593299904230599593126890203639413995884585153805645556175146732347341135239992859874516265949514774208745095203730907992473461612045540161188514050647325497281294937645190589680582031109735054595277506039320837125181749701323450462824365983561407296285677135413245055204672837102524777884007309807449287046806757207290122240560915253236940586546629038492201072931718752802415333997796644436342004746841628619439931382547940176661470916578581555143298982565002981884545725568162397426040746885849181433478923407805781354364566667727256320696134275942221450544533196627711357000340111043139072444820879642952757873455783482182153634163509541265547248001094133798995524966780296250460696944919438908249570589682050356903572139083920942584614325519859701073643619873494622128009921695631305842166957601238626087397409446990028012745950212039359748103647620693207602783476132929947658142446419423237194794382817589057830767518187419514580296207615058243877596815221848740190628120797730538480402264285605605005793049106567845954976656754706606101760071351213797567189846872662615829526312896070890108567076835654176057893750042253362948318860792878959043857405996830731700426186334272242871087553291114854678079421774375268049022456751970084144118024341452211969146914309262912940881128287477615991667033647983634365483600780012152047853176059305752947523198645696882444953920542548497894202350736127331772502267173325664754122384164909048924312114692242942479942145897597867052576879236251898064635502986568967345067812912229864667428651020328623895932786703381246019020615478274357631093890893386299094686924320070484788876678502461159679225327596340059112189956644235972982458032388986596983252346124151606110701518307069015846501039485725037866600456207719025087541412722226424986818201453296370244887118271748613986634724789317967793345019474154307956530921074370557559915628377576197224961035035252608452028799609178509797865347458051797984405430814987036903602837052088848027219367946652243329436236640664122792356004678566182954902929456861560724513137762378330270455008850729521536658309121028706595659717191227629606573823441459237520730281600835263590396634636494783530963360759422033469486112514050670228691623734417632587658348653541898901653290327479351306684268983598405971172881236089757967670756925643131014023105602983567575666707252132180614793165268457984869501479432015435380382797925717190622328151814399169335285341287542811243151576013166478214241029730957942909753993823405557153951087374866047680726767047667278473047217673648213639754804814472190701052133662607104655585543130672527648717540331479160052663756641342296364833372685397355449993929763960380229184094225471533023835122151830559395772715412462968299299422628481000650416882740417993361603979603799375266344573688772330227353245659513402539848672187094066577327339709807385391999850176673580750301936581992560048749131126697310440702247414001386388081793596159437440187037560626935440343373665361644337094670688600144052952545314886027210109216761939101599481462558507660041082489735703721152400419869757000359148987563848458166042194599523168403888144608182241659204439583314919663076056231700327839696993256514337193409676620862952164508012408569241203169626136841397297221457487900997925092281506973558393289205017072704104975988492171985824911673060801536557181429532316279343064825934760546255887742026869311192857814631224933818176099380588379625791955576019584801341308877016590908829404548373764606549885186604550431207743474709550507563992317238333513912335003550999157412019354936855098379757749736397829460555255956530089612626201779991432903110415050234070923045073772809658764059065907976169265303879004134466542295882525052345570109394068482386278832001339964678293573301837860059366418731589095948880660508485839786519464602062539197041908940014397744506697077661765337706164681799305469694443808621484684146821469983067039634099081689823071823803769731689769153241827870980898279490384749182471321552394398355038725689209820827498079890015923152076951959453202941213468880762000526912747873117951283395306754999527991917206958954758616203209793834106736726164815890697059111925027966969835917914498342027972207636280438704262707539397472200929367867995327219771968294143752967866272209429093024884666311797423594817755970957780370340742451888742977884820491826991163019066419250294812941872406867159515972023285921735065739622393183337947237660990220043079525353805018136317593106206399353881845916047375646443118861925129349374221190967807772150882322889164397607098154426943547189013413179979220548659562904647007828230916375400555383120575441262331348756835092108494787841316775276015538776713084215157010351325237631034774190589168263511121627508598616377810448637771840092616649128144668136304695225589351840578432506691684424227821636460107229788375935428722204596628452201566745884728078930712131062070791492944108147146213958061574507419937826592698364848878613641133701654966833932418277440981932366479749366341963123362283035722665222931436706649077527488202783138894801219544515580737823446072900554883008338940669150068374426458021038436456187565528044309571597209361155016091672099852110416786931019272694912755281938903666044999177884237993169901273335207794463473632893617419334558420073054710589768972735415477742614789839775661910957359616228670083253367968499511252086739005906599117122363107938508914299876161552270484519353046005335887702119560031015499145553720009849753422333952377982220658149347746253174949933235296093788715975732844777754871387818748423816311861386538905786973270684146189218871303892532143646047383077573387718293887160577882505820557941164848204569686948047634741041136285721907154193540745013493534293031044094421484271845245244224440262324041836009330002487456694335834899475873634210891047720784159148001442716247369605974685577380007669063627421676105542409420601591878300436353749435940866875469105991932700112646905162799168173640198593576648671294121843291033797532236755916700485308103533759187469425175172948526077265054953233160480247380126648533465043121707843374344607682396399531685910442084645491261367634602216808898815581275691324007396034851561845876389350903917638439951970108533660396117148381566555740273887961186511156659435775611570934793103626268669688288090201645891437005833555687820032198586148156587242176639604870922802910631998805025190756746462503530671096827342870272753600789493784218834710168878802237366626940606706705007033662249066281786122804956362372323306046910925378837040694521028584708494424498667423312564593427519615613751026636380764591580446196296116294556858963577755734575901478037329533464664004360208231215114434478801932273338169157415940308307916138955787600224222026636853734872130023064274413325140730769048085147550037112729934786934135146977952619042273622637877978831461333524921462800172537424204064252495609458572341809605817512849832608397051299901417023953784180949198499265001714516314635830109070189030903831409556801563784342350267549917922638685607571487228377227439390109740701567674535172823425060888465290690465875713294211087451878840870836810510082581973922407725524886967250427495767114571104241450739623185170898360532386381585670598858274878603400754604308517410505961257673734413766713076943419865526480605874523521338867781903028339264223372621317312525958803072219251094869964281706871791983936836184459089154786919425751296731721222774864542665381876854545291981823004859711741727165537661337626737033510817801776976064312762133723223472839413022894223794536152024047292524662367624462827139642482687654487677464282790665027945324794308455208325004359822411576225484521542786462799773367639977237745560791400779831762010451449877597798292762325554374776521222004620262232614934609510324137565789568838610904438739631017549398806294618424945565521374829718784666519889320566538042531384394559474482635520192883347063298397735361319734284049393337803823865712960195532999442112610852387604770704218748610811871694576754897486543980428265530851269443920468730505096375317070300782908643673531026089107523960776210230828584090044715180479685827777944076352834131316598908892250401716468517866649433392340823110027495650295103672932493860110037632038522043132497376563888572778101013950168544251001993172967099982220371086120544842244089024382658908235144485898154860609911729136404672877054962062098565852327443111630427854421081517248203493947630454762016977766782086605576979211592225067190010161184638157576694767099479928928485893503731129725218067676394998425155011716631576569970590349671405181974738629285858646328584392021464569179792481598190043988124535674380551840574121977875740242377482039399593227289223299105617749077764168505573116298913181872343252525146548056602076158003150552992861169239977803685736371743127567298753321145749946831219637675226784244724730985929346309917285422900147753188599444002691828674720153179069637560364534949194314892873821387499869234940403884775099188981505487094232143703693742732982255124322222322839404923147579465959525599267817617143083614130720473068765586907937115314918775219434551597459534852956480656536408182279815654858834783728253063367898241146891873345259227469336436035451589997133580062257706478693220533991056162986779643419269087108893865411775304325902427439928889072698253874151806171986139488721439746077691845636860895237452571972892691997395227973144404595131852178090080994865978671111639015160080894299210299202786122757354509321962030031615593991707537757422955603411712779293646751064879030925786398580130327095141604029875857754843711480258865647984800162703234929532863311576712880110533536562373055582330654972390058367132850196465843770784349669199021997593245825365800274553718060178288730569982081463076389954617123656523570941059599946177730921990362980248188503442677309354948913191023382514675301959986248201646177743540001192410419075542169055718370814079270925017302749464588327138273726870124056357074027377108022119386595558822647536598616658656471108365545662280737627131229297068015636371012494537465327498578522580042935359357381345099893385682888221197639940238986537002474871301410155512190373601278965676171595892177556409924913794532634934024584191362951022224740330057386457628809224436466320557524085437144668662073416112068998552578202591454637008099451679777267289728766812918761589047767194271258841214382259899119763540686471961838979435464868856798278145779801536087518044928708015686482346519095738647367058023659764209073670806712888406628355552894011793366878186925725930080295951963535905530158436518923384033594744362450593714140998660365665136685078943171370278715110416134169850695206646530444036046478245505938913128828587001512028507830559939803745534370037941157264550529133407678512118859842537595188829097478348219795036338583887860777738135677861869083051440749567883749664096270138726233355191665818955412704101059446929164706586275472072887540098956335363539717732747071594039282620389997595831959482110177241970459271992829318272743200902020585216684032747157522595599572676683362466807245009282507629895155236391780425535187265253132685853111709939484197287985448231262720147579987086306723999076667976393837810233643292149542925452827789278464412276712004150242645379233221519315857203895035962326321078576406685171310998689735729187953345382648196626001813355034631015616917602196405579925785251736017238651506360457749123780264056284323194589556096277885123341016318366875217384090001484370754206561104692321951121931266653168557360398437291904084482406883944989629002724856043644320422777755438948199764193280427803827496004312317876276283709781375481272078042482822401937461571979877172578734994363194691219800444932991542527754070220400304069950652405849792204872106890537309715992174895147901370244786049801872594845622820255962163727359824866097913367362504825027188157449281420864408122548212689022524239715037326784128994226389907766386657616432550612369860226856285601278463745369608301623651673491021453151970041989456835363466729238701716084866885671313529500684412694288633440541163929716725881771105559311858678040271570079766333577575905855503948074288323336943074600230117078469098671480599931578992351188261652230753744198094163973576770234803413260293676423599028916627252630587290812794895416265083532457259054622206071950063184953598570896214774763549996172468068381603877552847896463904068802631029026614620168900872691621756612940456384151261713838071700869598718505390440240369360069496517318296415980470102795820942487147262990655542558317364153037094532631905322048500053625613874495842173512042099899659332974968195125582867576365946497698232296796841709613972593127874874853386935219136812962914479595839715451478905381485172722316829603650742411459042660128637853188724426334509452440215038915337989600460871970346323089348544010133159555360894669820323920240424049022413387433128385507792593915461960322618438388294372514030725293435357527604180863442799105287490352429870944579832486347883635280960267772611543091886590594391347303893199398081947060666742283014299259105138348252923351939199765767409720203212570541474614383108610142613311555691995658286800955801065184352542188480823408986810069224751513896732683774852129796795483973871025375931498611061665395087623528651169581749267807248479392925325100025508771909211769773098624927430329872719284011442238231782845835354458588333977410909096927339185787049046358099204132277411097618711876423159089943973298188759676379703272701407726019229863285143505244209538510249688103566572504748336126101606297532448660323834595629207827631366615804405626940707560145610581427959709596632592808604031134536300458423779266837793762874657770718311365667882095450505983391488129016641121199779303595469657906392812524037738068032113347416597405222449202088995725469726222961824983151817653851038885173366852438474720300771416119525205701383962801367978064706099962218804067469481049549719633956260084739355047908350098814304175780034092487480556857818639959823570712708726225143053563325858947905020111555836515973630937041567001299415056518204891248954971817553319576730187666622132629922474757369449186322712056394656598770632692629762339609704191257086868072323839652697308097736913537317565588563755418052538972092660197999960587176209143696631513485277191158343903794293623871650944660600659728685095728507878810683706070282179396768819874242451922580769753545405681895658995991997940041761196664230499283900281173611221461699358841665730924701800953055847922881655948207987464262969316513921990323851899115211716161557430135216191109976873023856775494928306852666221092137255991653709339063945873975933749759672073343462148695908543375989042501260857089447934251560545854901501318148220180456531565092082630486859896176636111903259005261370207259494216136136609800387966582628320346680366511881884295142689647674558342297480998332109457799569925912891953227237704572538663805741376305599474100997658754906020593575964972786689475109563894772239585305078381191899173570241348667046859850153196875627709714082444995287818235185743824366083368563384464420916985612764740581316033952124918454305505469914894138988827347304637151711747395052793072268738276000376020814014982645142547273677632589073832614715461768328516835666361942987313766292256006677971049562948115160758592414990514328027692308519426945261115781839959895196711036091670434181997624654182265369037498963884920184943960622029809194404726634236723291589994973868509862020602633981211447758516766874338669010838514107695660966138919861134428619325185507447347323564073564559807283744951924136855312322525490420280833693206846296450756803830585413242707717498026600439628089224778120065968370904839853446424927698152872455182532726863161262961634484339789568367109523892662303897813520163214499316994873172701523853758940197161888369152748211462031470618052915384089414750345944919485832856166555313499186788368026126944447600409838254377593546768227278386226038878042330377385760681924996104266671683729529411585690887425169771060410856910009966822301341189002528404272141510971386898119922514725644876037749666988403366988053676504253340124166424787484050748243723237845501085663149768002013984844096676668645727619991049219306973479695107274680903255530688580235695627701632882387047304685463325059764825967495912582156836011653920257263779335706165431140533583637873231918227172735867703251761963916018949901884818457607983837968640839030433722015161251131047960966003015392560697340348864214194281879191083419101027588989967139073600787281689802931510916518842697186545645702024891217428207533265439417832368274940203757425157819454449191733264872961927916972105182514581572700273921417613958484078492109458575650737574403518104615303273743642847286789933299340412387214560251731356451633143293243537879661534858819501869769281694639663440969898088622921893780322529604708317485085224482745208543054646800292838492527270263295600524266388155610960013265169161245736726712789485205463343676349189728559210876096851428732421504960372919082004399607813841045295489479755037752473384571454211394506362017090853335707170184901154628142806795671585869372305846906597825134795496731378989818279963332455580223105071555437182767427903097140844852850290925501748465854831102727632540759036621763195978258737187438540298735383669881936838514676257463295088380898620438441971521151277158993166494633200124400113129215285095486918489352717284651770778057980276614868677433770935843672554467285414444239520961382239248335376632987697845223260435858606208620528854432698754415319097783669496148469478295118497216776901971294614103808872727960801548506121849289385526319286576818195197935121930209848819257516355109265206092483928611206376567768198194672577981418448823522787634718671242334759452883340992471975404735478824117771088145426823943926048822775494388323496545523843298653889376110656075814258904391889310483782753262718016696238749254616916621452558846919687398093839645625839612658692082749227407027182313974773428046253527365141943093253686684118263650308771626434988625721540060708038560046412397522883308491460603415250388737447976360442834212205048495593010468593156828450717575687807416819593550307738054626331013884453645458585850551929022592597824897699580743272175945231078916537628698550388770357346877066853594770707602048680902409062504933866008257158660500919236403273144996826624734506874072929417455846497998289703057897617479499738807216884993677795030708540137056315474335648196516887463838353255667053723239343524243873074727615189014616163573678360914634927705928011657837985019329515073479079281171805503325831151711400278796089793448800768211605017481043347441613831914731459295833542955091038834537378343312786985326394403443524398826874560602637366044959467218952834632289178123630383568234674115239737096365435451671706514753851125985232965977674617325478285514773789263277598997955380137180237295509123997864159925719710413184987131812335558558568249640882262158343050021035906853525355434284784162794720229674368477230983220201131055617054533128358232329321385242437922016835139287353801101379209091825296304869281356464869649917614399962600475594639628610878288682075930142255159110612045454442436217027529025741019519598609105388484850985525191563674114483639883502952833536627433419472722564890670665211067888333955367599024588579830352450206086052554719105102049099357407925368995528648790387312151632086025161127796536018714055709102361921833340773464693373890848531185249326724678419589131083525651751065898194422663332140862481231306546963474735273581803247639142963660082461915919045624545118970347065863066829758310594886268316451174872723393718145403130346189625318539715403924224534419059715395839552985706762146738199697372813581672410859816679824445312928066894485743669768733530859587293291165673779218913157185927725966290705975556620157224474414324235027126915456554088239727079388093675833261084805967253753087974579996203540520564602110772009301755654369008743335465720336513202920766453446737375654555855098654161643505738969095204114350417414143727297028358463365694549669210497924546074795887005382635679285332435638201345765645346683395951315012039960485626368330264701077138335048229649439018373680580610268568023627401851288223973910558613519151732867293370343804785841370472805209618805611591744395094503954109140375595711044228904051370415250138861015256201281037930290563093211266160940712749028058330670054192813884988916261167094715527457820203009459160786009851206890310066522119939015329904733600273866543269729515873407845589336332929647451139094802544749138548362206139822152851504624810084336049333146097268394245237632555574412502826734590226785544450901496022008901942086608018250377885087727791548638831216203344055935280881246407974503498084866770176805896160309664426524308491928732028450670786401344384185899533805164675799052364007347798747314281956775488014528601050100024271441383313660082182518115046576325435394140312766495046211312244972397447984623911429696225232508432249685481726363904210794149889135194206137847537885005028704483864103705588831498246888426745898220725378739947212396329483939886158187229703263303660099306841575182426203058518353726383948280129875775427964803740505918189023399019278191020315046041325668732657229993771772138488070916526048760612396704996583957835240668264212663475938540891150941428901169227685935761032842610022461565320791538983610750253777869462180318414904854654040485860702628065958469645180051441034363819392379105694395989681179871824147730520017949982707750174926723034309401931717101533170267426137490352509934604712896477145368931362865169620926597083080229862133090223635398191357287815519612803532752035792147279184975444777394088429835226010638431548597018030463461671466840193122080332422381518791839090634535883097527836122474639815341036033822181542211699493822271872361310052765162801190803269835441288633649340002436883696892738745362650301961775880566108307762211736706066300108594289211281706888126144562009272867877263213056157065218231356562128569078228359864576846199047589336506168571398563014450087946971752387997044415230339816836348788379787605534286137228885559126261312982726237758878166201039535805072113150500646987778458703410261860132135239065812269872627951892329092532747179047876805182064635143840830141453094273556835946244593292089533081788291191555236218618103694347229741362043969657341448621801545918190620322636425944972492723893121627856135889558446789913755167156215012617953286805132428727923689649494902448479125176169618887063030123421021331423031646554962634405595705676970523445524083531545659184093338896601381804731329100108277608039260260814401365862939982030151589483976032649029127618722374853702152194886553964598994815500156770665714455250663163221553926085859191961489601782529907438123616785261251162969376508932768891858910254789229526900173174705521929481575124457558005975016320756340492571122660860183768181738271664224136980101856055386241181466465753596847064806634057317850298208435409892392725380409440384878408734222833355181012507273344830284760038013349275340121023303080289383975271092228325969170129708400190280409623154405975436402388568098184807878474172406755266136606652964230129873182678576400876756596597331408679960913214606197491980406236636246302332044106125841989463631184044002732557054780440889789635948037269247324660053842458698690031030097526556950395991515675652249118938584897596501065027797844062881053241230836260146813571598723246117887186912526907325607811587387306810144162861530136504374053127993440360089987395866843577538049482110585866955938212822207834158084206258061529786188200149713970143658229577710092232831104029058345620568523923007240009652473317893456248783537394100233302669200997485150727226610489786241444852224683514779734369415038441078251601389010349869017832329454262551265553692656769554740768356939637639283590836842088044835059068887095700103860823956133654624288923218931628079581619868120281321161891814374347596516673676722388260464036705287409329590464041558530579245231724225774286014693439011038967986312114032171338697001886902451860564115424267754571363187086684809418321979023501342204487186647289033268149500473764471796675134368275755915338866984338012121496261746816578931567531222817236688116724961784481070623403873156698557491283068229447924348075004172696475731432638486661903076189213749679615241528636693314042185932895963920785156738644535755717784791571758340781978142894807538950144245612079986959512054905005265723925600921903455909654743685395599819107406985072338643269629460829271853723208869142047111726133894917023670613405745993124569115713895008468279027738190053567783366062546340880900492223035906964345415690632183131518471439232286784016224917570702769661401237549813813099303613787373418787422877676089108974081767421086556635712831734249735309052392312972972729757554546469209153726687839118374130352627769812506410777721726557780756858391336253890455623465411887445038624112530143029602143120027054882944030558826511658415406788483048716820567041196037110652468037374930894076894892406009212436754234164245011762729933680314899497462196812066325980487486334610861593598145738889229830065536068111499880298808365613317146486596823216363217998149646162846954726995414860594485405113288783833723499016526582579477397872535463582453555061893051521301937701854501293223113503805213791786581258729085734014901762831972951277030001015242791006112328712400770528583178788904672543331063476337345385778496620338518528210231487875003426456983829424751613883462203508418998021111324370188613920682460153847053561953395947423824529934666441360923533115682383100122638103131784720224076600043296622830479188151627127146016068731734633176724874100553538731781595006734391617247608689716181002143603066212398163534543252617836244143386030996038254351319393882067014394765197189358043305622842341987608773682028258200807507452110528739203002390625045598514527777248028101986661960338026390750863748867451215096897133845812605711263564926679179369410997959439067444542074225520820677074815558985705600217916194267632841996021312174816920709703182487673700603822846082345727423005942743808116406831923136387633112543278785264273529007551030426915916744948327190684865942642292118191078033344228844313029479618307697415260050480307015153431311685204054549456659715461354759034287493718140250637167979054343709298734379821628537189760868448824812819750187431463033893921458413958744775477697582504376415828254354364634356867633469950747682535651028916313050464763709562151979297430218038949883717450027188551588164551654516491773931464909190307427857141116188255468545510809242089821190145206232784586715724097639597905229052831104799933248632147407220111820357438148992809986152891324979185417826477821710199719371488880341030351527427866785609052198663477507340240904043920720127608768980907077514188967012660454499383032034230333281392292882004327644394638274188724804783076380453180750422244277739721348961267779925751417270475364842664214125815025689078759384415428209889058610848946035139721062996277820795946181275306245971267350271953910885347486016067081966680563812334231512864136963715406014733159222306103679165073420412136374290477423377817924320783614401532679511110792118491510730774861540944243906868058646977269995397886036668709607143974728866183488940880618767369691105806002374859722433784376100332358492234252992390089816303720848786856815818537379556300246332774970066453334592884892291527399851114471743993732895990836281193557721270987247937688266554881288922358682961068171902829875728994177507781906509825235844903593680847813579648716812947533801998785457659743802596987970309319636308401824501098386062343303934578394181468885629406880938642009178973627448418452167901478155826545186692251278336738678207775756930400521132428085893017486826058896915329823423779674762370852654388130770112751532787844477322754586416947850654919140082269868692439778237968457662363297217534516905636508295898740358077723693156146949069750755803921940678150449833779845087503059471878614290767266739819914201212692902681425019289300041633159480401505930403646574287078872673833381581702427356560677664136883558540157442322887495196230743791155296817175126575058466638852313792745374895610495774471224837426514172750154292978037049257174578019101032972485733033130123426460841758490483528233076852844244113054777010188797148550369534867370754488266393011902489159530132466931474651234272807869337211339373348532174483333540597932195447524728085283797963463371280421527035212517177316061976246974100674993689469521706050245790947056275358511376139446213854302880509095225778396192710826018084285616283012758240264041666679820612316849220696128007156722247464017208094820848267408850924793445378280112718195648450263759780881509361240019270331062503836015814988324842881686632362599552855534754260145212930770255206289941507676270371137150328624543804124456503768960395472186218952060585353586397317928939015657448785191793234675066659340433068899450160741439971021016489131687814778381667995900672072415367261279595272099248147118131230782888231144211372028817549924018350649675683636963981512515031193738865497877298747959206192921896629559946152375221337036108940431766502824167052828023822229567424550364184335183535851423223088713612463695366277119713318431247548642972582046819207874033864683542186131242734291760187181730248341681960215722303580065000100981006130596656705113505067569315092748013899567281260975593902188147418952459404740288714517578086589817642048914437404799934324667558201495974547445697381376092520521473870666762155458141773661205362557785855990280609914046024704328905895492550931438216293845113475518064508314241526624560342464182879784467883972975731940972566381842341221569278346544202239104759216794232406330974531499499361923442102423753874756008899552317969846327552269382654845459010158929635487135816434782164309675053054175791810494242822295857905818928024571316556861417718845932828884683005615130331082936249602501256210830799698811598208937070392222243367842867790713244287567881810280251955416307424714836927982698026859721862389175300252190857405602963020425650138283967287459721598265004643117817621592118881251616439955675746414168116451004178271309049485838098405254537247111252466993486989363659087163013790382817240791464773224325677009454899666723898428966231311420504087154172263505961460037638765160410206407709018297928547754861279817669467130777887721234539531260539370299287007100847264440544833976484459129820425349952235277185728537604768202877907883889482496378181362326228196344855157965021013041147897362951293033457772364762908134832730731479019470447349594785414161898300526667658931654730464573987895976095571761116464771473133574836002214803871226246543770962479526334861438503990378339318204635338194800506475877433494892243323383279646919560563447242601701613719785861506530273266716390465498477354644196707835117356755381208371572401929754739904299381174855518034976808301806612876886875840202596971125952732692257199738385729638300661322004949912444094478443171969742683786568583449337431928225047707149112347458348696451849558382869035454988775125328447254267224508743267055230801235072206215144438799872660912399404844696349767008697848512430729990851268053990590495727577313004034236719868128247959561195918495864624008157375371905356191684229833621892900023647977001793648589313578634642986721700225680106681409536089110762620962931727500407059903682947079356957830964075505497221209159222432127712751882939318654652837501761431776624696862005286760512044774272785431914808727988056669784667595588217573148441371800421970800481976488714757476132345642176630788290010568822157131989264054274641192447093701871107859602362383474901407022299971448022779873098903806416454685279538470442143626532949036448814798770468647529710290373784620534917913234654648957866990412424548691145672781540156063046676613549801743870733907730607256688348420284384731015133702447537490818160961218337980208319844232814775109353236234217314070998627163748597416454707310609032019717729586450929268851976511455949739267284065380210927435609429943867016083586472102583247956629204338056914871457845816359895284174129408350916909543937076010661050070608453959101018467298233477069725505280954944747946794602938898324302136834345596952864965875744221527043369121121437760594736113642084890476833358034645847044882001191391723202645145974483676625873074067915904080824280142350119193145000639412452584629972764688320510705690312629731161709073525500521088624480529864627260232804222044365626448190111248931443825244997693274185378865243981974769949386464419388968744443533315571398152715206509330625544143006409532026551699330329254795076693774538290789378856155916284916896754051281027991202948683158330752692202062416844799678973177209767782417497860041494739804094815402564293364877740913283667306499405588516611728640144980255220636885861776833720519548173282278701817209712285543383396222597768043667752044044424683265520627691713716871018193588292210633398503323619278622700511897079769205452142603383752088149280494530310057312881817593074052506232720257124472858259058547218426160507382556983279956330057330771344193421947703198525791176010985553835913471829568787223164840736427561716366866218051777208966132582609813657358551912675293884340330579162594383959300970840457716282585496391354464569685389917543330497931979448121915391772676511899075085942147028480023580484700137538117164401412064681019972524534617642929841875854873074156198916717196457134618651302683275781683276215626650076861430423529619429172072603893135209780297019428258250345206464861199853651111566158869464621947538046809130816660901745693242204984844030008820949736231931687170364940030303160638868003854129496378424524958635757668046834148663122676978260632059582495004140387835103245009415489566145624542563547513544300758707867874493279618856328666931649995524608501744079100215675230063809643445970976606601074747286053383714766788187925821984052677223213712005578295859096306899744820124888210955396535850109265138821681363799894901488457376748035368556130955417143746524207307475766795799437522819928215629276641718841303928784904712928814842251795918485594882008174692732564282558292595129447026956973543056897037714690685957319432581828974043153423937991080527532548509998954375774674912695859731098768626459923180606496249513312186805144636148962558369652474817489825340083988282237327227632842520658726517372215051157461777457658836856589690744991449850362060907117687126568909155127016910073922296994445242998178944448727908818855281913086515126053861816323912760839850329023602002858442398245709166520449891746316073348885978680678846995108011177439893624950464894486605827987534156429028226087528108792991531710515139257951024654981707947200556111405344453508280530484216776062759670175771171830859394634886237860482762739805232900509593655154861350757521620987877001881435425180568928936720422655368410139272561464137029402123042189615062878730831887158384182772725516839448149550942163081951070701466753762080556990220429439872742677553329793510659237211180617868223187850443174568866445735315696554819768862570276987991631796614113454508777651132431536988797486572889856797869233951575783749261944427310562350420704753955899924563892281674130169745868695140781696682469568279493984414787583446799029829890580652358536883793614809279032866234421770363960205155836357651157730881273824211056141949864225641543839559343819389403313473536273897616722237091507941525991949523360545403579897379999447758959969487852250717571167275047905515216220358999324760380086994756996720036857925004534910601157579082733325874761449561028510602389591332329090788333240519221568235785694900576954751165707630618123725957299903394411266068858590538861481425935509555306432513472136993034892803543267528511140696866862959287896008077301845710392332902872596283383038481944527280235442020449934005335860144225954964929677657511046387532421259842619364315575911542613305235837869927345724324940437054972149830914789198835293654074849810393618083493782039426140653915876943583004127879827769868709679107052568529470196912514240622774442037267865156320548401955017945476959516920363541146726520978095909738685212353161719474160598739042171978063954132996398780856361823934829492986869560206133857720935942399220582127408109865028516507189109467166503442088010533368169580805545243218246683619338080598704964084257683879361644939449741561648072618984315725622301181865115821863898168215416112407803667859226753315838279889228910743675623027754656535110550590877396776505383327301753504649375581010275879502724899848541177186302754180675534447283174290267417997043406825215885589125600452320854325945614184396365137013884207614853852546472401221100142286918975763320621661339427722500051863459377829515129684332440332274315383464883820996992666214977758990575114374655915779628736703240236753516047520239176130394597797186423950113959971609040142148274013391128534125087917514425624863603765459420861019272074624093354824948224039247695707442398227370784661821884551575545244582168974248495618017978973206183047307821339718694830949887023589242120267454662249273647147406134736864338502272129589663224826362130375389288632746887453948229304136517699638981282106365115645658100589229749500200658874596210706288716845875348981451212102490295938837500790558095053602073334531930301049895382311645286754767308157614847216253162848388610861491659140503083429155472748381457432716160175333419623716089691761190470241802333493750346407274874997979267547619372157594972768198854704991485575286999243157805606091569804033217452315781254838169938647220423040780280482283136709961051497466147699159397335167361039268952497073572186241743505622451389284641887317995115053240479592968451590679444351322150316286148556397291609839445780740475685792417345149996108828052345053049679962335973589107554690757311690972959348573958337260990933493161393345980910358526909486680447136958535968218141867120436262570905829544122631311789061548089045370403772220923434897126241081334183072062772785766884233765414216732872963068751319972872919499833718545553186727133101551812201858218455508950344866456588098032149637808038754712582625692764346247317455798533177759888928044315664940184076214559554258303890036950362685305115151676342727525533449007815588222654565139442133899454144018912209503230478084896716541437576045961527649739271597277091338344728386408112760061127697789940116917219695242133772532690795519006664241917851337399275778780105195433173007681864235910446878762472291361407401699632791638031712491593926382127701701012144767621562604729595748315655573766006502489184194384860961885641765234017647910592831845407167186678140247237328934344943182949750723775064788690477673889541891842206485077627006794203718602941802367633715323290070835117387615690467461093283938272590874652720269971675609376243285169252780081759969031498789123873663735748472425688010410816611464415698094791844025574557598500019285276396670581360389529472634630791980245665316403985945000302905545631272951310836331674155904156567157941218389710598619932535376817355789522308311555770658171235866422281231377392312609749207007582752187208133551723959077846246415456358371024301509234225296166681171241902590327972383327978789679461417271740824774677686032120924332033290481095684388053841933390383236994084663037569149510293173575874417422205362653192513511288902359939851993090565661106865953314426286524846991384759053216974429882888988877530618814579544243883915528824401179717623810750213013892959897237420938685897985732737820600945840484981716463154386467614201735238047648045605389756984493616091249797123307424032028348962452506422099814256405957601614151148968342359860635083463497308774509662031890254391869583458529921604470084662444091460876619947239731281278174112894153521292731032898212908728296569439418406637443681608514225285084346203656658407433086723851088449078497261146120690544863875806125621797192084546640546800245738792753226446274172660725508554672406907247751180218495691928752773039047357000553899098379090682703907930798985313673934010191388074741144514613191065079903699643676001830572364858894477507005908573368281551986456087411876274675852896037051411467145808173893872039630094867719465084725637049263581715925990009636695717297589997674841217739489138408314163786854207693402921172023234226154501212910433892267320454158036967121536183579028367417902814426313758472450142151045994501815152632932164453144276478240465223110411636635326389666094037829641906422014966110260840147388735519792789771039573600325266399178048320147327811169359266777535741645204317986589173831278912080337469965231478993684255811787229259415657505621232041721084249666719298235585411739851150511288578546172006533907905469683207263400234920601472717255377619075368996762267877419182304377114958974929742789039050544357323004977623018999632035362168505764023972939777441204396819038236207761308950143723092216490218062243602208870755561048511037513900192612255273830267680842900111834831320761087260530728373294798419326399926509480171688674807764855986224908303809475614719186787908867789092777637506022969388581168115192753755696067200610402596408891264218520063934126702450986792736108550343255257246065137250904598180080072387825872730943872599708280229694989198384493964849266730677298449155318595864355968265444297344295007039979561740267968082517488806757109363694301560373398228796912183555517724774712631624025232565910673022940147910048362037440108729047139574458051394592037722365533660435793675492193186637053115285547829953015670879228448051154336767908342992115277699008140539696094092861274067144132186449088998893100758621852254414002620274426047855860587157447227912685960032863168559835354511158787594515846435021595282600756501878263752690028713885766268064629798911139723584786758639631191450282898949279115403876401101287048281316859896970090890570328049510464350258182346003258585915243280833067542443219462680955524643203924623240131773767977899870910207775395894970984674181611133925559975457585185807569968227209011923751018946787114232180283205631073731137275764055557357024990868474647081230542497314013972436013799992238008838461577046637027924060043414932115231945105842077546694190674058075192994311776960830032986745000836815692321315140974892213964605298058491664556364719908202995136248667202727017166830015511433663193945597172182284004923160773577215362931364955166756923483741056301764316054711017123024497534805190755934997810147830153007117476685753641167467784555659567201994117593750487139736916647705816045229128580225530970230147358900369900456943616234588088213809732629246526711809988138298285760821961664368757317728718131639996801482685371072039094929994236382428853944179441852834495954951030249815556702237223854491748014642580128543785366366340281836334460224600991194219301122985544274359624351484173321658587835021793289846693875263319433930897137828180673658583445669766051509614978663937784101116051089786678598420842848056073509674455588842288549035519708184793744622210747776836469520865487348773892297245582257095494059623007089534844071317900877660143095302690647335177150222629622785803132316286975260263781189711146923702927370808704542788116385138328819195312777253063240604789772994890731649514696306050484813086302903017031447952596699266380824326699227547163701687137549498916868902024933456331229295663334804484234813217598106840554749286049545511406695854601535965408412334637278073073535384756107791090740408913831622177172815691596809273215829563217751039491753199037297287177526736943317631368194783434029345153459239754951051411524127506736253517843382788734827177615982774961589871567189383564626340733843046113369073214058463898642578718773011306211370119231399620973166161352345713805379332276264578247813237654782888820548904857418831725735789450634002519150037411349186146263761357174669659582194633105643618782100343417254173766031679681153703576767621895325258464250227128177567245140850776854234685495334697622054777138694110942855654244537546247838372203564194737034615223816241724835640832978898852587059913254575348624163248340233250633004955799236270145640447314366906277926334864877693316110365015369773361318557322121146237627276552165355379907390069780462046571992547694683986663238442347593064503391626265200018233475931427207137224880906947729837755840122272097570205930955767486461683354610882931437805519578560270145396492179725521521036161965730005775819418366814825802685607652221413678091598761914293166925894738236468908828165250456536775346821063983937951044363256770427602323646135818002408394027451135911528776769979316866956443124612681019672327998891551998345760280540897093952018092719284956616081538226010940762489942274325746626927087615789277947289437715897544767512314699148841397801524996112109464089449421974123097009213892904325854560871656387883200896899898811048145289924259702201225586598418133157819154245739227299502613996552075054846981316505128910472805895014326666971372742068358180840238978984964404495860518139094197446789454364538541751681300538123319524467088730750667773904946268513952152070552641010374339141499531062536435476041177565658801112140032713683371456768846723257391390033776399745223299788093544737492499212500597032818839009419378504891291076536428966209100965151602079373187930743687285236104671151841618843391784639775247818697474773264501025140923277594154873288864690412715658792903730504110048717638441392868709782018445181507124207282531860234848177111703408249698402230220148202226423466390639019011782313417579638599853150862515249812869085615931534278038144612322550420921181432312532820274327989682987622030274347479092376879852024786404248561409579368779820338015662214031527055175072757251678978107362254553367526303019310838371709124106633417142321408858884442912952158023705538504493750163019110234118428286492492271332693235791659461401440411675097858057361743956543975687395502206982065738765898504957375477614963184962269409458999202969076333726187853795560018803906015142139471056926665271019813439149586257686775794626509831745129549457792875685445722665024191895222066751701888667561687262430822394064207921738872351302168011830898015682232574930279219407100684577730068876879116717838340320689146208541060676282235950747946432109289911595242754463271423567296478803845465385917592292935027066680373260607645475097780165745900478951742576226830179032657928988135783474934804448392246858522053138746095240489512810498435355329970302282922983285444000807220545003563427179908619336479161589434657686968166317701643008346492821566294731036372997082445202761499360576283624344837578214541973078624076023838035486896895502562684681074337030382112988122279606107170793345157570593477424879573754306293385945811820614177518623917620867863459684243207178463817759816183664014874489557712240020284376085385892200243139458810417641373308026300783204236027220387494617314027118177583142870371550446066983392067430726361831287540995642912312815556116131623951252149236841861475235728479532174756456678271130170339489052594062108005485026820742457966430822878778939589278379959807189271920039075414787887891111217855958667469398060891701756844408372222878825130625771809511749081753390583987721178448217533628889124612698721526040136624734047811333390197239520623229094651556477674337808976064386267588196273599193557900218593172314834389349226571938099059176145418681589520328587347941728723257709238019366158203265191476056402078570995180381862024730079985083554130391866511622403776673735165493186608771050513118351022981381255799107495620740365121023748544891675546207243900366715877702124890819554668617324371528168094689579058895623541598950999501867520706305718450347344930677489784015614064955292441554164473366123135893892061809760530539109988075284667327071145301288706777591891588452709884913524375711281965918967519469033891995537171732192001547337827462582358765714881800222553306676797534512357801684891091635783881794157988106107839417294752851571294448560682223664559835702414241257145032709044676931122137809127904326498818522730487298699365798542314353248332158235344220242937292609273678351729859760840576922224839755653430470004495325546971012703808220930879937381009022704286108403588203230211016957733054353458838862830986711833749745519423428758986986325556320086536834434454919872972301366920845395362769454590889380713706285852329850539639204311172754480403658651437280001268424223239423777452347616217791757294517320087731003617996727898786102513510079058424805778520377730689701348778502150598742802336985968291444797191284169174421839704527278351343879532872556239727265402742883584078119294205527865223806456992279524307202322028301674448723524275486298627338934430426846080331972801195003254233710442430967872597133059693213398733305614827023936370635357314573813166946230049221681813781585944133598356465120434488447729534290407523266939610865488635442930932313079004936077003484443138502471306915857459889777709043474276708281470244353674378243681216566739607673271323179084020860698171370141350955429377120559382624946689841772577582659401438625998817791547046448130743897916054730361178815145768372229708495101539326249913655003733021125175167395475011149255030071675590137966502390337360719952859934156482619178113556916380262033736231871675175067436535902014303402793774943475356461723480872818631192573283396000295254948080192512907084529091863524617146986326445330443358088640006426726584460884152559376812009286805271316852319676764148674147837234331187681567349678575370493279077970069415478327358946068612457832702343235125834862288314102532358574335143863827702680620278805982376344952512453252534049742057953276241282023550517861416400718086953127005044287440492322613208633100611235345246931219051781413716868672392581903604923217350403400403095911011022873868451148664454527010308713556822915337480301976778494781420678644870555516368857969713300609159783855798858931923841772036160070982088770725781150776403090185615642563023603148568528377584224493426030146047698545126067252345195428003642102373150647556083149497230086555857231437136997565523074204488322363141497891069719549252377390373771602049185494983693280824461387937597753636067503846853840718765949555918716095550455247617116922639214174567372261942099612297912373086906643833230538757925338047544216109227506861515351011151473814645018395492819453552226006541391047430441535056388341660159651038126992876879666483767747106156627984536991192518430503948501186963458065590474510593302350828636437572996747312772971675337911517715850383023039440966209924462278809577151316121001779761584996540088275250189302832497881363072808838309645889513109809003067008162539443955045053248836975081661781178711635215075844984207641137799053429320316402754076738383258559732053924765849489053043379235734657747060697392860821583976233857311484188658351520199102016271488937472801863258552637598174463221289352660072346266704783734947048770948500881504251982599140228731595919019148672308030306201587752493571127783837603744674969475017867922371584990243515871949677773209304077755764638352465003695436620266553275012097966723182127028500875158310313942276431672441562236734422392085884791220725381267279383127099877475580147618634067954181448276133555526981496599407138883754302343378662526446296049415215396075548480002475545722830413277265424327401531713923260665695946394741782037630134497974695394291457895923483324595855352124923458766717790262696348017456026643395188991679729997308418994203518624643129498541064460058794132908683111963991563918437128074301619048365586438920961885351132592247681126553460291515554667262566795023514550585189578881711589581094677474141968987257830788287282005761560666390127881591154316388553921096879203153477099196987598171657227386311829747358989395839117508901323872605367626177609414477051222293525173095513257059275423260002459246028944229973580829804233883421920520829331396747064782163835872280326244498326944736720384626188822290919202786405780404408135676081387360606665942475634939275830325594234841827467821433984866740853657309868005135773829743541802460198932998000254684041121164038447958617401974899440391846342086779224120076472280832591008583885640421105417702977193387124402554763394698265101359475954490162431628113243860351295018614980832362621519671898847695722693419707985537163528737761996740627103360111640658652191929352829377048087690962985911676546559521095173426392590362224370034077303586265096349717287292114140308769353646976679417937161185643768302269660160434979962084631799933957162690744915069687036431030072476031983077727625809401509475975211047145782148770956683669979639888546804443022051057192221964247109323402348371068673106806423698482301574251356113392759969636276203077352172391960813044367920246851377112104129130364013781208774592755582664517693024145726030948351310512347507160508113636205501306473646459361103079323933022878797068171709067975938635031829644954546779339626823650050144336035287377476133179779179655790101693681880250412611182602217754286520805053078945197957158561389738754313576715605511964133311174463344367058392293659531647740562678871276059115620108053964455706003655232824873169321848117249741085617924613679467546242152267566716246513475231124489454068342086191563810458100803255772981647779923213223396890257176954807953564059090120611052385513431086588270916702469724532085757802883775456367004065742970113759526166782841432940213226109999767821775076238259382137737296462647358839374827207505867450942896590635245307459352485629887517168169728187598864927691130505248794865898615271288171507559238134147542553740677219936219531012615632409379065701563028802992541455767167260990263791105883340342175659443213039562394019005042705042137849524304531646666390593720583547567163645940005034702700326792289739709558831884556362911054732809799498359338596112347449921563684038019646741120943870401488081745442378827235769008723852902196910229306143689438627143713721271039954046617114366243017568221342451395646609916549207133990865801278460054911597585444007085056802291180692185699101404207535897189158521278894889672801740283880764081896433941456791816868670810409088810076597576628388222346518180685278776329567486319737568682087855774915372037479133096957998581108364512946872651572544353569111088348304499032650552633686480361165861080058287488776573945721235954359868524405619346479489596014357808752881764678876955161894896527238597746486326481602648187237733013896387644488496079138528275244437793957494006622099244143988667055700461458872779260999010484842722212427817624585053104944022264553024897699376822172806653660455331487786022743854952487091893598639460558756069505936363912170354752940862232738289844606081338259151338483111342547744380686033474768001697861931848461139012160716576718898276125029964324659662781007781957609158591356777834983339290594665734181837354303453081511310660706806362682942129215046209386673416415571089558614636551668656192545461108672480877882640534923572039952084584354324089660486227067317357217823652306980385925034159041391242670812628787465566604150601093275150088201250418499008344168428551217511303703215812104133831157391958796080671662850706410496448895497792640296629452683651741109540636299189453774380506107497219928153411364391127168015541001352269752468147542105570862133030044888295944414477592133410924945257076579072358119729079699865565211363889414964454754333337331300573911557857319665189106961192093447104834164216703008068377897177721188399516640409465691936854404672538363353865253992098951755766303921315139532783730193011742706024985126140518209891515897375033098747842399858420054899666454871100682570160888661287389228137595471543560248601984892437620790746672482532906167298842182912764860610285806171771874776262827569989183708314202697573032663702081529353831000006496233774512440788367319104975531747110357736850868880111073977299025191489079422091859499741060951624184856879083364662539305936857021123916970228233614730379854629299190724883863078986224892482690703680281368251216734606551265349091529736769477804830244548128288983355905329669260483910542895587433048225395443932328747860891552161368107918165483533974379899545764524347564606974507440790540075402181441103932832363503169474120839930949614365756332636268192745675567682041674593319812952915486297139337854905938600292072565137595549431246644131107670074044041442968267909770061528995719378778117574918987298112857115717489361814337220781975194793830126755712811425970273119949638962270465661390060776192484966182641916669941015427980061563369536362036769279431790756455634178618014908199177115966907694522981690560808915910374002883105856127726465159741896984498190407833282859204454923609094335709139770072047919356204593181748347094809894219027940315341850884923937403680310650734176170854795330428285377831936664202194360560317518593844012395354401593313834975327349808871037658649324355521138787921221441087623026503270142069755183571490808455313981152983024993838234045280391996136941791871225513936793918335077912638629459969602246066944203895136975412848399165249540746016971646985266176124386661000289832534292604133330355209886170845340007838604953711684926441173956218371489196989373687028233452679514424067025618616191573967504870385708748028945772916169202356232364731482400429751060745468904452955496698555405277466556018454199842027209008367533784932347106175881627952806938586190234874069695082854385015373687305691250861130650721643158696090532516004053172933187228064413433839422847529451953042318430124967299278731215862887106455272351918994119973439337019344127767545662297262015877055325595934962219990359134902166641794484564113705132835767253029254057563628376276221065733237489537587790860333460981421999982341817021693626007503141602076894131621671216694644862499487786685203909081814087931276261882816640512582742711647938331158233170228036352999000420226001002587201786319648456016770237846122736535218817798430463443010511989627828489187486917302007869203253084212673898296808675339296305692959480213280928367669402463266056451598844389119586389570250134909569620705488673165686864351605299952648974266292652350998989386274627441020647494525794771545607422447626889696504625276653638872031943255398281775669478671189868797882392103618029810731981331146434128810248053632963437236209033398260307676451884561396878944824115142268303806699121404799052461684356606081492605672200313230001002760894344117359885383954486457496476544148335424791275271810186150763777492309865818459466883948397658545323701451037634163145899449495637482453515052939179279873224018583623645312664653044337900363929066915418259997027586234123181789223622909253053428195877356679020005396862273030748839608757877705469777458119484518613382855848832999626574556354448771723654350384054731558659576835786050057813627316470245513559265002077235782320498267880449078996569672254085944400234933335756159511391164278970122556366886393530567055049236369787436175824304185253248871619071956669851193813355160531950556229306466178581930934150729892926958425514590974471858297989447047075244172469114034036300632930673330849666025925682650775657168462396194105096256208341576114828561325256383896454236517998456871674718243738300239639895021792223951788554560528761229549121403047301621598869508831138677285959230894722223347883561893263223888797101533629242740454897382246979223128871381292410749202234583690604221349824460757694022186339560325748638529361288852849029358429161703990359987301953628646115093327360721906079798906754893221968976638353529921596703785509991158506642365023670714465837179397564642327544384530536342376119481279628473113169991216637136110433058741363107473377380004570568139114167674307470091922705116891670451251235337976885167900063526846320610981800178051822105058821868325298344305386009793133422654156235877710636890857178277213439553699285908394196709345956804315127113736783826543172613275797529503232345385572292545944815671263199535291188397670698918180805819211874747942882745971652980673796234705928205823603847235378589403251661538387043359355127099576491186661659620517271832390327822995229269501221753905431465919417992440222316998922082262474577670507727136890380691714210743359281789098471491694036543965656799434881077411129861560498597309943611423669669304943969610408026741268593682064672193853507892447995860916022422187974035390301535277433118653328907957157246282782099502026234261325257837798048720597332711948785843414851773154892876306856053833586545598997319904675308604277306199221991621928372134504051200591072963471269320461738095931080419123540765322942916266172617374822506243913055728617913938946769951239859109279489192195515665087110687486497111113770363315563682859019330563711490192317853962945561022984535094588100479548024478205867530615521279396250693670273143539277995457881366110314246059459545150387117600452816308610650401489768722201137654917606102710670886178075606503380620971665098887749293894641040247270327261442514918894392807568333347177813763671886073813097353974231108662437176425733456246873197375561419252959950254930599498709539281861084214733377487710422122653758510018451636332207837495315449480495548603814665892688582656819470195934283270538651256100977976505791195666676170324809476759515305711373579585842799960661174434338573833287653827642909360682527062562019543217657218439870710281177550959949478602496830317420313101982529049485707616707911134009863856200904435362716396775318918689185274496400980614850178828667540762160385791891759170685915210112131361565586879526679939102341329460417557434191421486724518272815684685252303295271857979791298175424724062891322233524970034463685976524073853982717560418998474867940369584641231387989879260561068706984080380173247721880760315531751311714157183984626143645282635609843154900118183557072435608337394254366843001287549546209530815002821764793411792516274539251295708633069106075590109100610953702730388365665960111545178955853203633659388992989722674663010404031365105072601813367816363673406017547990726358388614867219094886200908375299748412363587393008040258349708905187781039611966087551326398206293085205469921256609787844843523637965633485536382185044983087324106137199357527044047132426510406663438321692284996307549495318508155236700191527988742312056940087344917017370692820109569537870737078867124092554731723678422565084515583946242125793048524857522546237838103783436058341535117821548895865648007526369280499685445522805373717647376073906396161738445128983596657138075641029843305984949931965940658713640676245730728614521609125960061061483951917354965546676621913178275593705339801269470597876483747523266625970574286666182300858613470770384480899937928611684678471250330025784369866004969401273708576108650525807828022504448899206514448766448310202681951866197119091336339124939113736338845415174822889279636083329382352034115800562117808416114791766791976769983188962649040067222727802343331800385426108814616339623849297130196680504755991969117597003763768175902066325428612677099538838588170962274164492456254534746311310340024990078152243311864087391605901263232536817948154045743500636801491734707799848985934491308711689643947989447485178719830268119555999277730746066184864324231418833483501755994445036990976450238671033665343297329843066605550129261805375709292758334452994995989277178809154538285891586026340759989927329981037588289112933529282088997228650536022089901902183915528471736850630099431715063703844956413269072320942253715751361830583175174292401807518734655230686772121604664516399891621777708273815280843064809811589548538167323679317763370534313191564155848450540453000576677964847967322819291708109230208866818047748789423617712492847569523957714609105654832558561807421593463950361991048040831671340543146936692421081562871558399803558888486926014109291925293457728970480172236656544586882872154246403319247434953376332173472887513168156069832615314381898944472917103661651227841521918708699083221796889547430370969414822329890145981798976609618171092594144016027350317726805857928672186016544764799050414656129688053949721279109632958224105324118211924148316156115902476927293433961416455652005456498113971005985806598288081923017835446450170601384646456992633375289554412546397066073035729434184653681923573526461264995516921444390048341590254655803433793533998946030411667373101648933246229614897424566569034871226867565361887013703396890265669388416959136478839122594138515735703457387631267733901642581833983727931236441140702226476452568203136561932876773812339718038395164448837732306849617762457261658830009374185299843407397992171884186093841483135186614992649749292183675001165513168963014870293440902088039389049108441525282427503257715567325011358717888655370985927557660376721932067009833612768885719660248558922581912682473755003558057604837147149342081028116165394363506837855087729190648714649103252602418987460089446012651680822064376102428821798657832574294461404599701992373510969002403196608080393366098241502925846844331714349795733329491709742647518199826083015840661218265831502692070315977155386425052625750809948316060579236944956754668831001011203795318705029099806306724105608398350532323805651868870606412959769928446478782824448765828718736861378247651571579857127494104253906281237287136125918744382675179191137127342803430294634749157025552507143714443558190451233283975655015151178005991796820587140695923254284243305547634265006953633058130459690058293379477491413743333690917743986685829908956312305209983695051587311888656291106923456602979458338338317717730604211892143849359630691313097934717305599168015111087941359951155153110088438123363182799524650096048487377641260498889901250009311346325256457559897681574495590827449597657511452281146753458409470684656008599987402133030209256514915333004423561790235141161045753555534960217577385547091794584373715340360957941352065023763405569731456078401790523172106232469595348219115337231717434584852945465789649036143860692444217192393136109673266634568858586006666737690691403294796406020550138835764749287519962863888406986166411135316360776100689550807211642130283275903576401277274486567223204302190463981800813568324611400674675331725902974708736424183995178044774389708876552665054142915853415156463584374641583086208419890824048575359997725448408696361673148935035229255504799103821882754397553185587777307161079892676170100535991945926914549862990733853968574473610583588905942269042628157611347251007300228084207117949746944682500780776942950106497883105159235724888975309861081035575307210772111027671205338182027674837979860352983206427250166026784642727728741678068366346935000221943833376737762081410254299620201327178030775240609261125809724307442308081932048395283099923389974287764641535387867122801446422781951167228382772512318384420845490811280813329121773155080138665318957227520666333311704182492400550512069030427403547561363073642079096659810265612312320055342757630363714222590810426086819730786704907401875106301309524182898306590011401814758728582971040924976457037963807908016969931416132999104348539909102423956900725741102408567219301715491266389720869748726539315510217228481427646416988638615916729898174675722090046695280943930782100626259364448152812326893864115418215091500989395898855523789131378866434471182928395602507076849822865150976777306945932308035421580757426361926958689885118311813159006075514037217791923772706011578429653181796494641383577678833462455691566281084545625439585215039624702971865522684174697135806009356975817056043554046627359255198362926580794494126802295507412555482047914872260623949317472708050916073946418072684145065733269353584976449115117228619803761535435082041602495878084368973049293151744721053106499300289755121656817484076964205322723466266304568926462175152130378418851110536432197930045801899798724838897490460659775130551215116829746875661367253880789896170096940884030021819866920344048306502240695665187795143893787956616500601494853852821062315788889366626935375200133490041665168081537475121421248886524006746886710044198018362575339442265145400319331850474549795434030534452941029009450563470228066262729472939533127832515653374239549447582810508490468199457419999329158704345384224374355174979117898231796741770693618448110525882999327389071602856792070426279179410212645971300935098395604213325215873414313273316965347266827053853507946139257807645034437544485433464198127074739841274529971545173443788951154439188263130905550613053667144580563747621233921004535610419400008098966971035586730503712657661133274219498045513657737870276474777968828203866195811778288811695712706249543310973600794335139121799187262802916812491531768560617021382317300125866031966024329650347640503051565315832090463187282838059496712746905586142227676660508008700990306818177853440353986810214160876733857855180474935337515530178463429555180977101489093098593633155794382208920681717635319126544472709732833069724942481960022820582841799187275012961953444043380398541189067100746164958684517110208796666350172578113139759262711156559235998253057520773499428991736890194194438162483215724798290560064219360498677405503364434725440219816005281740916726911003879620162042443969582924928645037107822663429515655259126044060533694077997645525444428629656042908661705263265964044698044261353797358719937307411687250594971617992069743828341599841216150777101692195458789253025815449586389580402919518121767366904670097477503947242591159458380535082309284477105605326643128033366582798638675781377134830564192273251774183156799270457347782068942104061640510311628358181604972204294051977645099568699378716341956165003250330958876027101233142648989722040556794932459720918242076179528059982939306512451572879448637921786474993337550776893051766015802137892291441431005315508405329168223436753985461089671854431359891847681171767357977481907403636418934492038616893827181895887483265228853355315694209266752534639184518956078101271677916635619158441968511120650742103102183365125471957089750933437243636266305490297939976163517386560815135064005656731378694951974064751859402282360502990602351680412558404893844048716102221060058517634438373317139577911645312430700977392387919110803132731165419258678662497458787758845879010342116681211713511567939962011967929668125676636967886473057935509680051706928516234249336459092313689344189817859495759965412411214590382938528153193181799871691146579891824245440437668852504361904769188774278130493977852943665285609686784724371808212485592884808564436580952919346318117148767761753088640587235988817728501022771225276116326731129689911839134270092337636076907330587182903857458003266571267059945781723432828256554989189121974821087565671931619842874977591112917911364287540690477625178965151588362734606126443643372081975056883504728507337634726678304620241617921723724479588589443552288348995086859674729638196936750204481110757234468160328292344548720461034546775770076132440137081828041950817354573672931449629747202572649535111752005780631756342307288931128076891396579619159744051175768906939083774364319718844609653560294121692124425669511339419489112280189233141385119399349566596581677392819665290180874886720773631492708012553288690895747693467485794378348578993277217029526520525887097649752881159491266746452853316705283884625233274379995212089391152842287148580991917782768282965065930671583150806512351902550772318507257940173081207231991254790196116715176618300880860567064229302672542127317790580762869058317506365527246593151533620365174395319064952873731013733642428252861575938054320843867925194034138128288391396871074962603357719759856465626600501004850116292496156967089543983554636985576761002677170194262400242308541060827661403121764817616612916805175638273208843247930284468181913443777985638227319353358121857742987566033453526329391333227129042849517485292766986891836425217423572031022910560582642874004615064610227966812970031435911460030943325822428628383583482950285621406628165682264298511848802340230301394676632109051455881999870852700746274599292851697477380064985084578875164511460187305629934439397253766629812239054586594229630024596706744888642260633011551393018093462897514694599233050611384051016715855551127595277354106589278158580057934241748753808938618472224607974958511073485242975144797491355193945599989330305013307127199306096810766992462897124219088696039161230301454102165529669427363200669078150140033289769883540031352896823444211785218696456123732037113850691212856018641639440381376659986420056759860033241287131218446348460921727970609933152294583134583834175406157428827809606324891510190902229445913916609712530827992971536396586087038653228885621854263734823597736347015004416713607819267019612519295089947057040801809388382634369569060011946489580088665059988565783594303792336500963352299496852231697679728021795646352759018537866171034228853576136437956153317451504678899663691900833810598944958518444501761076681758478520589407809887912240426863146355406335477053522231795569949754183410986496211701400448806983973265481248372959746763521999970102666041316818575549598382035391550785850450310719515292123188776985310626017382108922413169146013149364962614464680444650930633098261648648747308049989527299279268431323632914302257002470953971628272658429898838424778780975171671197104913553856087420719843804261900209254559231942541516578240143485752935230528806115708580999289775737850432171608048445202717053913863972484859040596353547240129075933835026545671808782505640457484783995763828398153659509968657678024291459685829730888488206755621948700531320002722251753874440270886798957592793405847329617018125272457719347382890076384852823250094639456837069795479522033378289576813482188924787290366539317533929210465190917526486814611303906021223872074182004119731099805921316121260989765552600325644740627533988855648519379767237105647475181475864509280457641721164097008180705337081341426652693635556307658249050432184657273418408936188916991707848128305274063931627397979985843671896138871509754532515049403693147662698364088024234991036458329457489876176620847966598914463106182917795149036187146794700268321574914313553465568508497997700040020492661875357070903666841402116472152216061023250071937922545042982134871177829190876240939295496202522645107242300750092377010440566050745132487741702578033829603488608703291685746592322592030296857783228520063305846746832125293875194246373484326433128498123647408637103704593377710487272795411366600824517060991663159557026938938437587864245126671612091266286196749933782387402393648463189731630448171901825857331214171337510843125851072261038220982602396421661410918876750329850784684054109090040247506459384302205745200695214113450250815064908869885100249547205027733498456389098051483559406773062691659608572458695326000836788343560307414877862993042700438483497280148821958807736758441554380336081199970555135744847752458688720472008084014015874730168650271393394681966023643931969815573053573250792506514078145904370887887864711668817187870778791475622541162101500917907484083230256963041800773830858401846012818948674747548226129254891498590213238750475318867161461815534053933650288750087647225049902656766502127647041052710298705571283326088522346330308141556903216109041941876590479936315603094574618784877865525227453002531713930891514477061429282894151166985600071102353697254196610358535736940328765739203463098918944005917032719423883849547443314773714713717389277442959673840462693052916939367045466068372492272646338692172070961815192492613001371343327499486026205670095032515797209295768242904087677516257397405123600380427618654839713261317197497435008603969180124970044482253643901726493266072391384638163253540675769093558634377836860825991839524599111672278447392471025788936237523299642591341769361168768329083832092932619094961267266077515388122575085792942023539023867577844561890310718003030179267165971844313642620318012357010344080065972721856562900211142984394446921440549957188128452473948351958752012546415028247352492489598503728893651424104534519156700812168316192489719927666280819383474276255786818905048828732032288018596962177554515249700758254809218697609960389729260445936276710640547074143183615039158657837424091000941009338877364930667747649519981970855237051731874346052906924216573931156433287243718290366057487099180556125976592311962838620246865944902550092168089474542955948482500807447943252783363392178061256829762576553534988960457278766963873087073879150752926180363261335765259686401671425883868612701653359819607706801556148570948824608462879186285369982844545494462324644579679931787929912653233088769249265638627594031282368089124661124854116143313320513493744410957708023398419973489017516719696327622822531573941029119742496173653002103568080452898801006628739378540974695942916845690825334710430210512213450886709361607395837039059985243803565226742877639125350361821537833561983915519249089861115725368416041730549522549729544252975295576536569337836834457122070103919384242168665901247457634600329359902534035243673043327241307471653107962257871571472318840819979484428797339545706638874046625580783876483897219743258029045573174835253940102857899421459932139332536630833850736197351665235397069931523743034543692568197072862995745424892882588990434008564951482088585261378784345211307423216700340902698833576861366686963539925349611173598093863332953382508992217810993078159618680843368871340018781605286363699660847223626918590732136836633124334173283138491506315111477936566610817197019637363137548667149825927197890840202715998605605480965939569851496196043720447559967381076643736484039685926553300204974889717289498033921046876243055757136933061920332842256735292265232115266577897105580431870864698949511130061975452053978591724068663598786248549040978338965455131326906005744659776124111819741852948506705368248875084487897570178081208785444233727937759012922942683397725636245518833614132264937320027763741230001998802644213184732238823426464203034939990400552373176930366562338689335507269227106678163910564355915728137815201347695880114983817096942969313995305812212886919693983378184849341492969740983179354513079134333648152389825111163632730349388980386703431515981111605934823425280017449648968089529166683547426189703458932394804852820990958321184917216061896535613766235707135451788888425980970439526349751512654597340818338587621943049844834208945876296050633677584324041829596593888122247811306943684491632461076730779873989373743790689823183498299251088283775429567970011795368882258019781339728198317400887104462334844083386584351565959252071883955639516063563171135980027108905062240831197849545425236461014517570594997806488438393795154647112889299468493087388072639052739314418035877683921440833281005895691776764653305125444647872441236228965603807152525881540730777595445937655186335331917184729655462733619941266773776067177052864085350404946965341501428349150141694701056856720133285925262033341387452020945843752575184502725438728936678511179519456413671517040683817256472646352448844208640460157792282398187447292881691634878689031875473342512284166310885254488870183422224891489450160734091697019603152071760997533385220892648823623099243914527331835530014220019136813962063322687166541834393584962475217675256579754321535187310744818627242164101183126276688122851904356548606540539771804455170270859723834474554738499899963941147075441631253772780974814210172091569748186507456010150477367975399198277355587689845056250254755485524901299596657393140129018017847536405165495981184572649814313873120161201959803672978186163379982875015457129716869985577960293300955870056615724261372764717153514456508442052339812879912066218140142478435297070267990443705384062963380750507428860001765698705328250327679858243287739045641335815939414521386221294973058410497746204226289358415961287760585902451639592477188721815593803450953066887597564792131178015242811581417803009312709513890930814503744700949899595192363590704406749950967141584310361986575358184431551605834108793208938813432621013437312559946176904920584337880308468557298938348057944658083702352657668400068986006811993480793579114717304778785503120860758487650569188658153701043400517369506475099095161331219479600178655776311935064170433633176952860158059828148031760910439207033062893576810026879587536693494005011864968827673607513914652836363126214367588080691362462447290277900983411400407453431433443767440167734809988023808082031235458101074090742406692492531856365248695517760149243659470734861372260510263251833856252986041869742932667282865813200801172838106240514957305911965686421416597529500338390419624841030914908554044560611663938512267984630756243645268711703076634434809412068256494488082135656168281235565621811781029654249570515621649328829507119959471586911632683767461969024336022659994659445277645028508233178183523673735519524327622476237893655517614017611764677407198577361958359366683205058707058965210841981054724440532385468350645213135236465418965604005187113069402702021475378561374424202712125071210072510548919092626107972960269277205141840573920831833242390493981988046437416140487831798778508288694370401142677371429095117374246733101460437149862204649901952416171749379015740606132153450262685623036193890886970723453013567938135003933403040568757764154294570468275524201720686548359959860645003843026809898355784465178590180574394748254277704915366398277837193901149269316668287963855913064373447379027627737173566365424434126974607316161462391404292458087176002087998265598253774768844145697918514953502056896025956620395800850112056843500784834590719177756408296399302242820243165525223424700902449416740300407137559650196127443105021208043528082953231500087381655052170175640699281474624725972082126811783072659429832342175192179892205762531589347869243510288615025564604800374504653372138022370815851644562552096745135757231027147216329536697828550641908049810170583404476068615813081946568333391652976516242977515401169806201988881187408539253772035944646370929086350924614160935820881147908232130149733228003867915547071525448474403860221942445457936095598295422451356114523574765789992703843824036878017988942133593873619066616682699028524416023586962306534209782206239286377233886456405137789745010629962402718551577095697567109925989058641971915456703294629821899144103555748760675109975405635115126125860429376447172187629211370394676560938179164124975939259616624840143708225113415324208678515622561473717652860455444631699556716397595237654425717481891125956050454588147780065566128006534911380452693338426917794694936486578040382750417714017307786649279797441910615611606043098008572574413915937647150632512820768507299156746988970510632741864177483381584946982188939325239437791078784423493015279382385007783313646544262792713867986013746803430628926837595421229844618869825158530006587990568575971195023727448312265558544184785874396700397108525050476917634090229626600006863981618696673621282487202825855250568283468769861466358413497327511722061972344079798890357913971152500416665852792273782501090012865052051745394509442043411054753699667742783398908926617014243471558462116085798675300844521629249703721380911961758294425634242940413729864112033669434579891295710523165817893538047329754506633187016370505945101109527852832298798679238793966681088250442394282486492016567579337663037588504342937201992179343457893508201299840039804457225938524036886833972655534085149057476220909236331952219982354479172925982519853410586022747155849240085897717851717742443729522650195745551998724631515763508522040811368841557384644980741536458156366318235282137457301293606530366009579415323160930755068828471192289403009042248939116929388572419790235378974526844968930586396884542553000149276087563541762866044951581880441999209188361450590652336291309984339365770141359402373812896753703639724185212059153986247715794738402337533293506681294846127153135797004101670905612350802552951321217038886014854227376310278677115515576721090714556638900820455314170678234655678891887144170757224264883110083059197955322936363891260403530846751827867349332912598382012775541691970188760510829427395673050008352503776556534464433153704385036847624331302540898773492218262448796577811531769464614449865447174120269943284518630950114012605966286362633521869522885205681102865531307703859310038292490572345416274539728289308541679725138299575599989117436761936185098494979490354758921329621109866413613531288562250457824947135709525367739320581943668209081031265415081421575958635900305478567799384123868158371096565452584350867043792889757105099463553695237804493236739686029677483224780393094238913094238673502413310711548336972307611758203591189178294459721742852120130442803880876857764560834811558444983901816669226028549224895770533858766622018873764564357504283040013653593799437556443153791690492131453894242656281821217829065140668817254929558400418298450947064459087638566310271564901059447401398935017249030809305681119913629754743707003537500654064319575038676178662567670870192624594303595455504699182403587344184393017945619288938929194217865900066212628852730307404773958521410648674229221832776673474182384091681614030323004079615619631259513259684121013301676963172570120582739537260573049135321434130052796149942343116174406413049257404350742355360943252290646073113374855088260323772531034767872334220788935530722554382061369495189280535426893944484835157548350893818076184215585648397653420135178843096847711684940448397627772491744300360982523054647362603841523345349909672617047902368927815609878999873726411052750723752014401427000588634753790977121871311426179925166475196091513472235175239766102051214735160730833376597862238623154915460102995680933480996660058261151796969237180616187943805013070584117668532184408808331995074217831331849829110095558887580234746751373772198500941840361281682977027688108961715094182073274621684841933224960566818011542252721010945122114846169913676288754592736115576335237367652957575129230850521513000839831850530510178523096825151503286164306464360262840682450392684299027176280442926102117122503852142663389364733121186902710135186728900181294772478975367843953510762624593010793371332853796654114338089204912184996984020031860622557734520879815803973157074070945699957050207896313252771215246338763128635100527345368788380723960805995991583995910669424518837043087793005885200975215844873099005617021369153618891683169676982513065948139667280519618620642080896669791789368696091226588562753398107288817291292871017507238104240367334564175969217705944285128490060843267617099020582369457272400820141962139416048079736691359981507266239060132591850237960192192869121313189200791860438320381437720607863951123139598442231898733867384323943786093507887912935368271341766538164089442334586049250114024106759831936083113477007443079185173262076074733926329019389357495645278931914238460716264920546133276382470134902155152089219595713523967627436865328544494765908521726860091295422708597925914469153011561315389739198267695789058883357096806529314691300277087962706522196076964815077667566658833250646643526985236983223748007093310288923955799703720259496666458836148637534540402356280640851937606375999593079207679539190845531135046040558030117326563757459769200294072245960792703990543254096057910629449802807576443635289841359425824540506518553662992706871902739572641939481340167590545488759756945521744237677631641939991551846298318172257307458648354726716202461631450050907954055544347591970908860893796640120963063525597793665757345949569637245418775147209630623750674749141354339639050974881013471710148983110946960690761946379347604421136489971195589989445092317149843497320275238543008953703778500298591548035080522550944540119039494708969708001091942901089137073258967055537569482441819503068260207601638065983645732564732004590453171390673828840790189899252753491047824822440887597366455914188612400522899869216505680624650759547137102703361435573300495337740253328587162442919288152517053275389493536619503514017501845689015159565627691949403751830789084374777853496061293906096924885218920553769764515694435566938275703036963610682515753381475035155827283097165611314023447187173994156041209817451067948276566895909538523456159311629327294429734536070055847783152720334415886217881928155993904076645467118941120876863616096030838659257547369895221945631843164511698967957880056531959440898417932381462261259361954148092957936534819094853603574796210178287104668962094162900234045525553759491462321103335124129516223763622833184849699484765281840868149313061907943792763268371696790439581101897566985755971022393392668827760675191576757393802468053296503264720712416099007476193673585210104685080736986484683332389527757376854037893766441781413613543351507567476542015337471359005735868001194786379742588338331923845951604587659218781603246285198164866901209761314827012806646078075002400701967251826583472099140500677161411579444808734334322510999595110009041518553603313639416088705581843771088561766923049932179312423496688970103437377140697706970432100010932613847731227688312607503029467078465857973354963807101289545168351680765509681887255587789612595194656110464908749746169290167849140560169910911111075686629937887634610558477353740010962011795979176285252862861352376711920041265698791187371798972889863345816074288924776440089265789565802465368348418797107185351143105767180446508207694367922293315391373238904040219996001399284231782036604702628719049019612839270774473730648287462092693710211122468687955962958363584447269187854586352757255738001467544574078103948184652898217604164479127149734273250817546323321729352355984591285326430813648681558324420237172865640073352358520139547869792607733761129743028327154454093964336397928717063287911418420149484593370529070785066408091879837137600302069495493108270705506252983226966912636878965299174367118742930084429008004455593401725092395626604805394541049521138074208734033411048740982123028346021942572736592602177022178011241185166422724441722509238189149470370859289155289735367260611949708066802091554375485240470887536339952345394328590283058047680346989854428303204995728917902590500045236008387358787230449979074902179907006760393083769859166359296840006908258843966479738089781307677756204682407670147708150091797860584143987868221812302535086274742824093392384804662903552556977475887128248450162823542627272387675040918273355198997575657400765650587209502295355338572396048788308391761685533792439176480313362326254494945831884851376100530067646956277021309305690097046101762083304671388107861748922238861421620264640251316326193901576817953900674936872690815474320403923585352299184626595122942097916930519706067825760870856672909635882970956693618716434928337853832078268004263417265103692058846042617129025709370563468447374315439470645088595998166854296922713739963015120528366859576651810822012227420221524717703080409640075752271185459418426481399930803312869781059860883294471818502189002236107512058289577017345565014603072477187622067867694056274936236422434159530443874730199274815781331303594292263010653619929214730958304512262881731286321368716951683693399328066222449602157604484439571434683873368151072527790723324308871571463186540255395808985995972697892077169291895840701238624606729963245957018469686321362654348095689814238765101753697710765103212075302908509290649661077927185872417227571897006083741789877384494612627184243595052988815533095922488370344904736742095390515426740839076172292048629554402260103208817754606166287571716608946012563233709913497550178227783520949329347910630570391350845149910760610856326363611324396370848962258716323243182954321420340856572432194703428071894928039027619811713984864412468006275168353093830811218615712455143604740906892850812297750509104528401250650977829603992343093736292743456808312672515544500373415519375208309551149464539572274528186132322288544950774736153636856825204246183327566911635073049759143773291724616067031264691618163499132529658891223209537228437418292509224631809238963213938109330388905189807327946046603163052889770376975640171575192040305217370977993274325564984693296304009440927673029407202815300898742902000426085905869766048795393432091596707351226167868524016625737852846357506000288607908093995267810654945742506205454374902608808475651004055373762989608992446275720545070777810976174113396887954887607228997752898207827078147162919424732072322836472502062071307533563300998306071853139715065140797158210937773031455749437334780417476231247068777682154984238707779985231189014165860996014667877328207068241839905971312929132198360770557435377827585256430108773312329020647860804600517863214909031741054654343896383577805799388485568814788453714025131436103040092935940912868948381348463547362875860767697254904305982069104419059898445705176966116627554365879645515230440912938091476006464607247166668721852412405985665435431604672037227159216479951708443167474120918743810194518881264629628448351819214879512581988430218681613684365453842208653472397615753373784690432130878090860382596131255356973984254619715138454715884206857286285590690673706706249828529609619479922048773174114532210475706837314252225747958343919982632637969658495746642520383877724031455225429557991033711120425002853409839159330852607671010453305375646224492907759230775003939552049816601536909853119175771489736397740869326534274891587445078920831558224210050655095989442828810830885856580431048821942284137354510615144322744836532870573666489812649922675056115539171102014584424324842413980145358698878697589990979567548587875122348657188638320820123027202381576940591794592537338460801012984705237118794438166855185218638048258663092583998927643024977058894445295425445518181800005164952246456764717242285464585480767129002433302988302539947320432878643666127397512564822333035713454527150673845095212731960470075548242714483271925580907855718647399505212818826981823983036004935536936223695134333108574432821528311310658817134010661783844376599156224915443981890424871793351078881324438532069417581592296382480574485840009225600448410663639363307606408903858758454724581803035289069889280641404694516779443098887240679661840322844343278575246525337648794749505258448852790821481712339103662482099042556171767410758606192306877307708066715023409832640283461959273570350579459027134709089816741786375368697916372746986267252029687477274138602931039379658104263975459095527382052286136250756316490987852713781539023709144461709321754354712514996993848540216593307143113338093792181909903667605997365954933140243491635160559873547403048186043055739862313757289215173636851756188955544110082190883267249023245637375625220840964384980785163871866058722658461228137988970854514736316501564736032966363815875121199513396963433375130170405898014740596629463498246670066683133588344769117166491705004395050044178772658634775428879981841095377945138786800032895605298727528247145341114237740873170995579118594718314459724776297743422611145742131154434288843294775970771878856337992786996645342183707661652667047407834273947543419750825792246936262630957576825303287603132976403751831235198648191837606367586255068835081111390714393244883371678341291194614775668740135173735007383256140560334076280812785185391901936973484853898496108748298733946360573146481309380480851492598499550687109972919120830294040834060477137841530882613947137109652754513921952923534033620481572067020056173609882134191560735321976150767141779139174546458558418659802129005631465265172786953414662332873974598759171178798891655082933245515330025087690818529233642623587482302820351497598022002315493661978104057986973316372625901274360553227223511428844069354752494131744582362364933650067417673391981414936050094380479295455215249005403128187443288208014936479379388702428578992394550333537398969614741279978957436174546206315590042759536298955787859554377487245983802328022787182863566465515396452774515874751331417356016925752130730922011690919683822427010706624010007646215178207412904225631214605522868011874842803841334615348448669015021733786872727314042102749105143018624213268583152741982991087194484844698307858788861247008736714548562069478278486634113069244658961330305907234236275486579566923780733464164290190970630945469279947421047030837542602889298010447028385448700464765500350233455039424626338909182662691762737591907833345928353935263428585731631345846872871769516957278161736156192420116114263857729623316016710480137838848385408973448804578931211532582614206009997500331323312375773642723306243976036840450230512669855628077689310323525888420322720461525616939026290590601914468035138770605827351965686959379401565974742018253303299340648497464231434147595443391495658296888522252818223003472613117688037164646454067932860299653091789234486239062754398875239233879731085071667214319793075361119526548366228480248669583260203423663811795077446781345602589774560267074956440884632570106355799927494094409548997534296554348850733017293245304122061192921902223565111472811994423281428348676450154669681130302661273968031606477074943120664713396924406782964577054691923842480223217345177010592895588380410291356409382636854792201504853020255955078059201358796767494656145673749735600517836287781777451302332787840973983471004671260526614569978194052123724920458556347257807473154319542548662533163708875012525737493406270185769253142351452954314265282942221825574042478727454126698806571818779209373202875403671993936636532049271752494856253060189307019102715265207458314747599846654131253387847666871969626333556612921094652443490371021127853670319331730506638168579563628127648934719707412843540734496448633878564602207130656061819731186660876073933656393879524307565318107722985842366635250828177671092890644362463105931121988442973114511393538281399493269891568454189011634609597375470156181895191848724647263190823306925595005273802997679410012097677585191198057568126526638522862874364660440390776699568652004240925097237317193392706401339313556233490619113805390876745210893474831630190204647200838504600825710644688982969001236066209379031730227446189957187100038264860955354423886114998702588548232247078993122154570414351546226466552666711834093724208455778074346337261813892692242718555502632663895873053453131098954743574642026127083183197646070938038844423839290877683724167372184779148760189985232368911804509358406982072974357577303257631597362450174516868215833803476660333388237096276253958626613342302267391636289383757377569440665291687676079739577875159804499601607877692288158578374702833800130438624548318319929813816313502854203190677070233688018477983196736972576773357100803357223599024424111482320347247104344242881798355811533251308612611771219712901862676489748889850603225202613521029538454518760176333654480450999623514785084291591762574564811077209514803396171915739895768548580562185766080011175715508306834492138661383076532023027594070982983385081543672981465335527974995594140551951339740375779391287936799009158630575946261340570904602264932821585855862614743525479694942739255497471145056383915729141806947083320250138665891365464366058798336043508026718486395979917633609035879558210650085673711755311552104644482213878202867354491305332278625908169487186190478326417129406942261879164865347234501934967960685070595232036351608033808729274636452933583170236277417510577175750907340649404755995873647375212522960845588295985605756792485660063768611849882680621754357813019175092155201025150901508269003169421399591112149464550941844107189709026029205324264485260919991253274206193925377013504971578883678646423383610652734153791200968885343942827313436304176873269852408861955705262368463586066087147955212665312920656387154586239282119060563305177728300471887343528307722943496757884005668849840301910424031885483899059272171817628913927728759822026709579570432156899030930582040031454101575929801443777987765775646973268473116084002370772981896742384244444758344366168943469188976576333679181816654464340499488049621987442419027637421947300005799676403076973246350545140607308379998629854223496951351169855688788192432341291346039732766349818000878013824333573728769184492677745917068812847054199409151104534605536155461835249241367865129005081479560051281422635264596956538295036863121618720448426912162679924054706748979841372817796491111833770440703729297742053835316423788176965215613112220280406668492268317407761468472093662713164296256952228561017630718334207081139629454084390881363089864182934313419994260889877471221691988946889652623942208952725263973945060666867924663719915246358117313843227264119923795270229963415291618008798202547261700715753355738033720080699462163650651199452589758269279802891919019784008938391042165630358500996694641949758603044351306670119857825959474346756175122369633520727969143367668807522734693026429250311585741812276654475285640022390333159330284288404032668442791995440656116971582705804015003979276357506719794001477497484187872353972022259965179132504020711630787565883637362843110269375024848809360539955240428976394131181711421941330211369977985799930813985357900671972131087927590327236847517752523084982637869242375059259385865235990269328333850495102996889666654914953065752392567070781486023304763612746033296046981183975820761345543522966292896341360237650465797121511083557570861315618078620420020032458155690018074510317042706510654065026369609016653211574507928603340437806843906175280813824265628565399087462751105571863032504628196861398296971321475565194043385506688733026106328096716886810538921882619266747486637025700318066543162807515311984667356329681690875330241865619850907502037177810943423574032100051680845623503921217185829477026596836890924869939450064628410616542359444772834275471694317684268475312491818150511858769270470993878286326161103050230686357088473201071295743935267408405812704404314931152682850341207106308700824357732631867371603090137636008667894670903603973400396076013349004988995472584659981655975208236654788088305134888124064105908864214890396488988865940444255458371050827048661318874802235561536576959570955554739737745811820370392700094254383498768114899915144691246947540566415530937097987614251980289052852635999759159595041628675042053308642755278336654760173026484464113287829736844197105254987970824263679528591500317576516543864131476676688864863401744581678768122910924259379869804280427403357238625749741707328554404427352707656077300642947725746303343072402781780784310697882026564899787000758741086054531138138877947477911685974430135326018249118837920003214400649756328276265498420941916834010969998069499560734618140009197777575165175519915627852750154311703503768810110032382052291143646767634827093682954185821143683613292499636128463393141721002133517366323828283674196260565975809185328573546021178095974125691407693431842095335504033211601859971666552722063674031111357187390601364701893404990103302146890713653373332402413936991575846873626605357387842579042925265115147762514124294277173943249682372283440301011345622604028684160855373286438977462928192135167270792595653299698760967282352193067661276442545164061757842995538684531367130354937441992552236646634404489507275685855649053921030957462501613551450818672453755429984148630439463833545992886753028765353738029456478496190073865651179748534890222117819878325968330146315378606302408220758540686571633992203839399879253643661531956038916047286951236448164833189913328465005274506396348029542875908514966889803576692812460169329596531953095343895658534474219201854648559324261059225690206248032398101855524849278753596679207024986128206322145326340745395222720003454063527329776061023796086365846363455469803439758953673986427732017420603307027685603802873170851677393086093788526587105737764235047889528496875956605848009269343131522666640172137761649720359888929258165360965109496376834427212458691789165685506570230542047535884944679455588175010292222928649456093525276385678012895110083225083981547729729454573188952793391401131942064650751352880932369959404767368801887912171957748874877995620589319226257749585079245075316719060469256709420449797926400894216530609474177596600442558577366603139440550540592028425503194990442492770707039604618672056321416421889276470230824189198708784833349420709255234225747522541042183465537718649831444379127402477937407155061521601596224738601974214911669121837354714087795022300297849560257335419579993276075524842174663716388890929678783263611538698373029825126835678946552503097785442646976621459583360949782603720903511583036013875526256486032983721415665079294172787794533196973277260021967656487914971431625729301602833334443132006757913887326990076555941502303308872361458540704010118853348960826415620071146365466718218884391927934942942846798417049081244860898690371452790222567887353172594324855023585143482212967780533401629055395386496454973407085424945183463126113628338423706694044550996213703693144035054902477989959924043398974862721789383832305552661920893135604674826860579856794060422744687043462055720679558160251332620003185405332449063629399547387634216730218403603888112975563607556084375830835507379225588314329212515774194440123710563277134264706174931517963785817005156781123095699490423115635553410383911169698856324105887900211284124443132422892399285924040276539639863538963562970068835021154645167591168430073882117053843766950935159525826895679071990618089338562095134449549187187094789663252875461096006089586408669542693905688791075506188026661287459579434924895423348575263780236595711917047041163443424474703137524579330689647517696810494193781737332359889264284322494688369410427576292392223436669270585725972996494313929952182094764086595903394611976174823409222325685797170498671218923650347192272403074172080153569828749623219304314075982259164782647252308544291983738806616028510688360469937887580225684268759043142945286662096959810985675330983468198682002491101207525556271200703639586575175104758912838697094839710031333444519605281733388898840472546246990148453372351115048281282890213258690204588961042145687452220555699447857549834687445390232436199021344971235674084553454293056946491287201254509397372967505604171929720118440599053629634944555022179415760218655191928051365143760201457585275254533760297720581957119910915985735354842129983631828651467994408838775169212069891835417274991598468693400937012670513476893348594355601813867226954762474138602455560565336411228040098835643561512384527006191131472713903042508666915943902625754431910630862965943700459343753525860273486167067501160494110312606104367146316523135016320370391095892678737740339970762021370513593778020095195430936712145319732974411185147644619250531720899350602309355778428315524473506140713948008010339576101401587354768943035357305607843249929597719389787323348111596101387509764667089444019521257215201473085934068081811855636928431954698696783813350579730080423689638929724709757827025347546459412851674836046978649015373401594534041926085509787543725324600644993869036928856386299955163488900372848347165300483173400787680576236084779224024269304230780730579665361989671120075392319739716082526272938499785414667730797821998237830598213125132616922116762946321289071793934771118634648373084408646068084407908942533962634357082583375839285452154753894916876601980305778355882765093627404325551218142068018028536624535087417802518962575116630638119509718891051391208488134167606949048568966636489972410132548368026553041123610430942660272620130362836206259093637641318631429999197382743714531551206282810176377358024083787253417443392538280762913907183837074950995423661167132467775296587492559301241506402093435686962847798561444714745061747059717994467091551117630544306436851083382739121821162495109521678212596722500568730762216142910165017938846589312383864330676363248877928616994689216305040061834038148750550669653296062238139930223036043210622596476888939459589305812983959398323150993695729913536883360996325012481781212470862110491441156515920753998246653527124794604548840211051921121495941122123832359414413774783853110497555385246231356922816920334164897166270933933062188194760487932818625332689812311206051094137126939461556691066022138484138113456498298238491584001217930770899707739077039091176507312405439968730561391096411954356463749882860727135069790519976636976855756903443759801642942697072177987234179274593668812592645400223725523096019170168080425368505621119414002690147651386448702856413921057260219310796739225583643277335717349147474228710162823452354441662549214071684273530692596646830869808606417066139876147899075343513197241771646640312533890724903140949991105854972361836813212972669392869708963150768941265500672924052108178825269108977618368132500308889583324666256200865243183281124754060008415803931754921222341801158924207205195884871966445758751776773866435974925913629215326448733414789586270248661282881516904795519226547376358859653553096812957816201876787756381444200685141109579692018374052363573480938959632882693166606721230209854382932164153851446349979614534824690703333137248519040441822354729113944914640261447468315148823262628551753943077778390159830914118132956839803712287072240398327142707192277280563555104758897639421658795763743974987654988811421292026414686192568206414964628921738916783846377478386386494448910397856048910376806481973103707849774667137701723694526341460576636375199005996092423837043464570315075711420331781629669188929901131809663983027483680128216562026561290949320017458227907037186093628808097842864209203158004212786164190881082073637489544593669141262161741240569222969291737877697168342558484782476692774804424782633557046878108902244171716004216803624642987427036745709774776236088659533128773381061931631659947599293225253069221368169749252505598991333895254318678500102325120777616086346969687938654271677149082056665103865103977766544545578123910582895390676013054843697390235538930482221417055057135564647391537236935628640223598670126394493883952898024878284449852594140451550098354557175100726570763237034263664428662069761072018386877486423880488079415141366258919753971216254776568163158062651114162283799303131994650203918488194154953901196861083339997981590751697949636707245091047281949595220798951036892045240282464939973732537749693975119814094574105638559245444609026982930333199753043550915196014990856327545327443590595170799630337924007500261891134744266011519293796168225891569140708811782350911201118821963180624094967995742622601975574647189232949764413056968891390706639715164846448007948100431058942089071133785596142349177176254471155475488444002183906735429866212207568897547653466604952404069863946177622407762136627137791779838204575496065031948935937773541889381963756812613762866241344832231385692113035969931620542202416071567665099023837353602318736682604760355844736300113866681759184496316444738069955289516074684187522225566676978449922033971056878256574771559508011296595961279683483831200770391152891944696514671403323146967950102786488034554476001511426938493821213549833855116067184845259750286900024142659306946240218877712735686657762875466460066667342296500999151953251756125829473319096211333015839069319878146209568883340979550511937481599617834522193500264251466705813261059522361408238293750997218269665891013892827688620711913512089741704120947173770984875424816609788726556604689164858905636876188479024560009504556335942260595065167958822428861782131838217555009348981160225959286074955265694083766744926761543087073227236063773166569546117371468163780794071738471560325341143874049278175487187896147415952206215445497878072732318541262824136433504500696553669716516233307960469358263114775090833516097859763276411072020902391431064606581345174013551465384549809693353387429573802286975474500183288681959256230697671933448926629538374556885715375629263765063671575335822144579630266805830494344454618590831512013801631418019504807466700118572404746589468309554520502118247217319741215937861729197146040625439664855928191813660612301736281882256048470564398211557663339255656240178512851067647806801648477882653745732887720159701071643109084674830794820007102660341586449725115263149241006822250540743145014405835340546441927689304834934982684749423849042171130980238426492767265090508834948433821713595750006952448352127193846689026615156991005521621844712768348524239037123986530630875414070403185618532147162609030084878963103169115858962102345408421281006962938719830423097310036866339311344135441885390641225627797948566143059369107466527894452011364307809172590160404421010267176218731614047974739534962972027616735446813553056861486504769152435739361004193781660821114961619075307304092649410020572467516114223414839309095294279915046987965924840175662231851865693753345381757241116674936187860407814357386539653215316760625507195254653193152013440419917787920996583677406185845051672206427645969080648992831010978469567640078298004525658620242628088627125569546360917376344989929900207660765660642653430280443639080637263883866221129916081335704110467055303132143701202649700156982455755395291457370045426398907111508582604954886325575531289914851840640237379996447753138242606848382183268268060543537512219550934085212729766515847131203089628167717814760165243581106275333953637073475069561020801367437177524979637937157626940263996552955887696757590304783860036741934065846074591898441612361816943697071277128028930273145759373553281132522340692111351824860162652359918211985420680304835428047947148794598676506537478599566486658353534841834484764485168979314031388379177914734970426268377191362858120266073872537443589332652224286943599302954516587276157318148204436709875195539716564636304342198787050735073382265253229062503412138813265299901904720362375444505873536073699270174032317153785529794960420660801701071745934114677253035775372945445190269682661008527525875665031329543768617901475595978931624178206448218089071409536380599195774904608424186835737372823165100825337969285057085989928027724643737068788968908662267011805817204121612782940695456277066743849811817356333009826618617927843214692163962543021499820761433894228234371231282978291374590216834491180774477831435102595816250929916089818408055279792717336513019911114617488103265672748433354495263704298608865967131254421650957917869942867718692494893136080833131060481526568737154578585907135093841182816025115431930801640034578550118018318571791021571884907528826644012295693941505323131398095442724314364994612464683658403473394078105459219848827258739527798102518575636782693544815182508646155301673974484842296861599711310602749226737276491996990838358376832922739105209474516351910131249246282792836137211796051714512543223465998896870939577976941431277465966564575434103398599308141696373719968515169613450507024096758240782415257437796763912869255505576597564323298261682998758823466806645679432956073772108085161163436076983057513386240998077682019046463078539971068395226281876086526608010446112733438688953469900497843074388993252133963536588549935148709280807941693638213478184636735789239347766889390072443530492564795505608946211260450350682151280897115484877095847895446776781851393305542763655141316330539690236840006957906050582448989993050919266927602897060187974653459500305563561785930022801879650568224710542381550405706962012552770863248173019175306606286125126811983278328566491225503722220344420382362682041807933375080097721352955049513406508150538864042966494599597451647271134182685545780373667807869336949483246293655282417354860909124880307963444848968596875840980359719390452410803668451013700963647643540574591311480990963148771305405153931041820606262305418380807379605500542845789616135690281888770768313780130913412781571317013806388236592522868924048786962456694217890846981498542198026594925690098467384789169301366649716028248737926899782641108190744667988673934777511423695359349455088089831859019396277336073271792383127387268987263981280995595912331346623945110476396795587996997008154405729325441179035908077172011810980190270909798077348573883929924831613834094667943311509299092643060093854928724754039608330623742129797924757512121017422336911184824081972174015805966388392355503988694485154149873271162615396255273899035315421765571358268618842867600198079752816824458270926972942308935520073505377869515521987025762432326405240563271056564069811653165798606557911839691169877791166990890708834033247978070924746542628154570074800237370025595544565420984376537230946425531789113357831566748374765268189031800288916664933445329373666062505904161197613068244881010317661218467782371974969006773055124650211486577784766765380119382020020903345167440132614561717123814783902055247976893896513980014063677831242129296419140906711093194817758276538634274563674841689326507956698254426734701538767908360845060764396255375813701005055422474176409911758384974514384072145865149386745427321558380502342521808723589264100304168233984667686950742165526138416540755709671109960330582920236611945783687181588259012991408217421013615330108221707766294783975444489800365002020451426084814255310455175601038090305912676920150937305864427163633314734560216829165415825970478442993039922039485934608843121342459469048161577156499224002174340786776545406081278500939358387731390719677184630912354384243130562930709913938844842963513196560021235148269658004734173875639457798980462729938800668302887790243759068100894537421540658941729138660571283919423181541002947429698596093566379889950933473320176993838992547839520321643372752341783664962178219281292214825325476533983712284076617069000560744120917097869661079254158201170272594763690612506844910462945246387384146243919087236798576177030784337010383412078697167438253310467706683250085083589050243310710008200170416903947444426657644697995423834188850432359298268110398251499514931462805941921781669800182231997104607299591752133661539601852783325183694575686516194731801406926629405427347429299717875832457018894528420490243550145837397825219709044795838308122792081269434656550754320575090041363887779361807676940257777086622844054285431540728875873020814150872109580401431514878845951280822105881520475901192626932328284405446084223175901654940062478571409574600675671791408437234265419351250501371181681706256387843970660251011419457335670638698831910682219235485123515656784367134560863238292035440990116166115396080436554281180336343851369235397002207219219830483354330520257395001265337507908098276990193215992787806017973362569941166479503687066405328784252444255473527975372702466188678666202558644261806230387760069437972826501089338358618030609394621564134466031279771497523777294175529799296753933529687986630631234911686119157938827114424905803066445143506140033260584191371257038466832600897752689530048223309537182041283257393351839200648258890284764758513119268449163411654960290107487878138513041725533522699988327384279834235067205321109406152201375406127535104211364276619370106615062683022003174874429700413425148795699823568708147508907932542449738725585804288856835924435378247940661445838508272061860469362921489973929526627921045400129975368117764139234291639504768146305334020015994637113318914470080507457252613096255763833220113016436383203871404962140726129586119448862003646950976215282062473614714314292707444636814361244886941018083842046260808791363066912550581005659692106349187473792006716395645877550905644480384002251981766034371286500880830346933324431751660279232706155995962185019580087674212663793709852678569680179547284776268357532680324091898269252601827817495943719868952993161082401955500200571457541925656414484030465626583922309261139205268068910059936367920227896091944458632456040761519016055937907018706984985238812081686426154191553741966985485482236402848806874295031038723373259498942714723945937264206230601715569868248565358556003910078059612218579425506577529967108044992237438678304004194079700104633084429092664801215908723356938161229554053980927479701437831274891910450719510767408145749748489230828262588316619990717426397982698345590235706589726797974843367930395442990109409662718620371908736478561455126046334816112149415022397652661615813194881001469462458196706790845613635430438197598621944873425707386345952861969030401227339739020338627070950631187706081056867893961698304828883242773689599718550703150382088923142677241794646933643941292345187308286168242247545157724572117756256726033259907008313476119086547039859430145753481943868440954621551763080109569461008921813654952905417345481438184338533049154701549471266117217702569497219678669017682011708052123318883420101369775980095553108411972645672667579591526085715809367694848102185606356619386939791686459485338781815081417462501779489073650185502614520974926690969471463618205064325250761168259541587681299146454140419109960316704578669893642206868917735752417317668388599570301179387545443064004590009174056875223827971121986806234127699792681080931660823457470172528159750444488047481782368367680906094264139948468576393071186020697374303573925852198859192583681299617454144676295425701533946933022448994013245570652645096035047858568514734178387336433894034917465732253510148322359472525114818949418090578750321838147944477246220770597036880718395661107691146362138157895024527701600045038692953137552656317752213305996379705133999627339339625345970572689112526006990001213270121755442500625262540819679114283922631705221018234013949803240921469498940541309966249501464758444955921012761522528420889796447164744649687880640893179729021858705143540184517787083471732176781127970145646132990431121112908711335058786077876040547141751530619240175841570240971185189763108981843519493834882825355982564500180244433111075804310990217306020992764146201367393560405393712959608817110991616948514540328729635977607356781430354427441503898029045738047994235237396081684897130694559061446823648849756385528810437393813274288789529981607214146938389326627943278847668450118208063232577732011867572363766745127195529411918885302346480567656449899710184809519405277374025014099535533390261103555957396404117969948971215513312663759724182567112430668744616098197808460452322431603294834886911101483580304281277142923982935455050288515646186389403746349784421980361821852704750558490998502166846396624549725131456645104132416783091222352269500468705657547377990227887057903560106751420407220231288765417775375859777939904812427577040775129859061165725903135643707233138767503242193509294087760509300682583163144613488933080128468360999282530520476031664929842725038723361006207685206615170967679472849817982528490342835205607718293553885180366862804916311248811803212535888172093303818830079027607453048500731033141965132328193274605378866107989567175844405520602340747799487564289075054062349998910670689158242483892291939124704061485542129142560025869141197536065617560142019457909251293113168130514626220384461553499135903221154234005993943840599009749750298296238986133033359652511156482363835509057353672082855389526584479060570037766236530015393043650661824086324039092231509045216826914190765667115295047522392904976985496152904088487216186805876422741391636283162147510404834772749154218265003466381502959205022206366156869201835982775364229369989409071839734669724734343757837452993018522449937332028066804246697509051284412612315320106745474345193482557631677279256983624537726766309230803006101312819443784465567362024905987579060523848533270894368146100768207475213721187827763692682315925616294624078990202121130849544385588326184965728867746369419169973537908481624333697156927890805170488662858543139209121416919128011661736056105753578306309416380900693767041246577196380394254593227793379721903922991724895865332775982149441073024463068868722528479177251013048422556325124528141190549650222146786858120323316581681520122458448618114679117292027347215778052968171461811746284059624231723074639849917245261825489557036455295412681566089279661685349160538905305509473111654546979759406967623086702985211019420525507161520033538528245177967871729797453452615051425452325423701901863257214666896223176848000371765505754027033495639440299242006152464077919493168537154592608842713998838787064383928563363390063162920064947427993149079739577097335184910020975595337479122665795570739196038818458916792075339491314381477627965504432665801744103333532251258421922541571008995226401724924876682652514938010702322969465149312721213123539165112883654317633722109298932310334398607790009984637094865991110088956435660689914183229897064036244812547960478778760246863665504962912515916662040716433765910032825680936502368261820058458188333936799651238734960220058903834716099352984952005085912018050197406376228702360037525098796346314819432491754297630508626738653928180996272590445586644754797157133157352497090360896148878534297168804737387531382719495346655545758363280234734797537806157102789874437668525679347564679657748083436782047389902616270236171074351489129777588990040684688787201308797976924610631688452910895143265540868700700037532581612845629787922058729095481246806317042444864361368677358582527342311709718503541618060274905549068964512661569410960187846237074298224068226338920767955363232953193674897150841462579723584879722675913443368258272299426782894758612340092968972733024122671724740992387894156024100825216341725396902571843586578629504562611069006735234729304913619445334471312523357548369386049532850435409030897072570239726969173842348060641142926176412307856884257490482771087270891586087454891969643972767414480997673222535592489576132534665083875747054750567915576752184828122286115116690530166761717009013219808089944668093692904014362257935045616125108221506343118334346830635214955083738135295431422532899845016769634968770289150508437412937441179148028615483854275015912454358134617096190963818711332802545596550241048457060959311740080646530085055344815743968407940667643754537337901881375755410927541196998799504250225687989773588953005524600734367852846331434886140503125292214393010341277599480931075405818777504578236550757428015636066909373837752704314231649841471012973044282117369522417809227035039640561234439511244741577270965028338353077030254451688296949747645359364936745462866134473228483129067407422508663507718064046768624662542745632688043565006505004747173725302665145817469599918881746930569774399307502478187655224266662276281159460330518277602241894608243315369607088526450264109169672342376640233032185471831517454523642743495304955564165719194650649150932360557152430716776440211048272250505713377310134811980291467046727452075209495002342171351600003297636831319230053548619406015688097600757847168654400280490143579359591053244740822529757430813393561682630019924061229508288644303048961709014257839408841460666100101940302842866022615821448969763995933161465415891970257716889393133337144918736861651314222212647104897265537114861948544161509910247112087092577373577578464940483082746008406181659486478876144957237450298404720545121196848366632201109793347058132698181626655416240858567758646714476654304967550577801759937562079115795917801027473388571986869487008616306066065631450611841940638298060373747942264372411854674579653420979073941980958930310214165123919005746844142555236530881429199742257432730319633160331626196679191676445651602524333143130259372816584632832964316108390839209109475947651257194793095402107989829450527923223319087495378160844187282642218496245716169691122973186365173207711420102106639107983639492770854974733315419029001780074035730173449480532616643209834136203284360865854105647875076397548444586333990990978426035093602132567555425527108254037098172094448435959062636278307341671216368015579724555957922439539157931373169320247083229128985248414812525277432672142161669138819194488436139646495127978023690330766340459412772943983372666616139668711947023871857130790879767999208498475750179545299713366354896720556982553097593579716363012236661919351266201409915598380037128434414631696032821979517467777257367643801350080369739620877735914621923013536528233419215213394602435560973143837156987230391825762629138148102545532148956936239324720303501988184780183476812482538455705254843126515199998379429507329794589961431738812693166549097391794455642306010839097814493362814019378218249747983594412802326708311134974272561706410099087424859192978666124150150954167455604478739983572899558172502200749949625709784095108428260401518048152466849809291293517028774214522380031772702000070934125926064520245366933265886477826279320358987831128272507049046527164742469376313699138528113059397933317226280640190614739290005627812504465478999144610090656836176880903488091865211076655259944837918154176167839053273308507843651714218111952863452986916202695350365854475786254584990513007208846615890083138666543681390242220954082961040527719374295556421113627394708439304231459751224444684568560916271545819445159884548283037646778085227721681064500112918778165447262246458034024994679557626736243734692156734892300101355685659908570211210716039787860756946968318144994172732727157809479260529979828385788440353226188590833755205380354408348621775780064495755891267575385786990666768065153907885370343837733248907973488429116048417491007299716834430115754592410617405201292870459920942386682115329524065052482503158435522201686118695396804935221839695438832329625256976154007894029989086423293726155602457329997557974084743213628946887490165869353165625433002808894623126569846106241148868272969687080949825899747253111661826585658907281472011097394614923532025159643266267397594890378415811259982069627152089932541876482661239381120751406333231534549712958025939100663058676036645525770890027630319113320127182571894277745169053815938758411097516560664180402370489986532771351567654298512936402198828169533123019676478311139135406094305592270000224171979493378820935668720261185903254871986779899013918865665894120635070162070652566220602306445013629390677182725107993327378756344479516276052346852665750459127362740055421955924603015378055551992989683425684290922089328544562120358288827487895298556530510263893802768492281639814064363217812510631019450176986976496473176122384102180634295216974068704831299606596797043077929839315221766789947164773238293383854831164447438647881516866717443838452377378616389904192217896465964962804482283415025464012921502946094503839053393100686635167046188215689268054462421474492823002059962252278261952558573948405015733319117257701813210896413980763104529809426538102683362847898589810398548402062910834882895380779487416626992585641602249114399406604576875649953436394266202238779781970696499987901391963695148837606960579153775737284391812903947456062785034796922952200898357078783296518745102237384217418219981094776402031535331375564000572885243130220255967506170209098474989215420709498767150547078713138993775925628428124573259891108191419792353470672316311819512278308083902009066572046168289910970882086948692665171144147621935903392768824813802397348769748371801476283378824979693119892370313895459916004632997609010681776716435308536004570529613239108294943125781380380760886617932468526219548433343279099533018568369827042774725531086144859825481048794091204504774028483637742232843375295277496449765078050115368587163242754791614644005635142049538787147884551327381848056614763042267883991107000794631479272788652730468446829057045044946460473304298965467816955072093852211636209447570477433636871177469058483617813349159430235428832768832303413399331890840187600200524111338739307185590112488800720319111761619438303274137453514418328477367062010660491639092503651403416611213570320438203060154194745918841731631009772267619965461127697359092071748603562258952264924227484657067036987555615782966399217082984559707165994124689526009267457163941732832268051348389599020239152650414699688758285603070196204327073438003725989017236932853633815292301398716370701686098507078270003113935929490214251585832896400774286343430378618952965733387927342093264734094954000179481461486322563555913874224534501072709779380634456727662179740098461760818281158110127177455823243264649927103766086374519489170884383672102913790956239709342382618818662633558019612385580627311443553629368308298654672908812677968318861442410521034051212439241429277245436210390356912788064120813062261488557059535973990671953088674387688883461805753807724045423071968273248571044856302501603131915464779065466294307875559801569045833052486660881502837131420007405621799343881329573840017422016089647068499502909756498088133956578272548931597586160793792163388827560086830993822220728609785117672937089823569240985128088127545524968226222714378150681985370326797200015924718555990186815324128079592516229759618196682094355661116696710492940832902577242753451479315949856851505678670613189237543970596397656914696007829285049467249400605776819840834252230997606463715582013096151585957356936212199044212493184627244227110126983963304487646888199168771451554553868531882789851603001175566422653425872586801135886884907975415876863826314485734482688860851108897043392578042642917634564402802797130402549244723684362898477379747661297226767175251372856553841197391546333136323018969360502197123086750880093750588650749882921236464384979012608202412607755536376309653312964410349032601078055726471522820025932614153490032133031156020304033953194659281289694898995092588958467207074691834737532304937857177796481261099363136364404746898083097221537278908434653279814805406561881991069227234447725607928366019746474076816224822045675734623285812500035956116884783482042828430565703911523856057089312430008963964147659726502781240002296090880449073285669486439876897701240583236558059118632480945841873680841386634082255804025758220354521464307251560127869078328881130647713626334445137665810464031035042654961818442112209539415103698885674600676633076452185341776529297657353906628861781992401299207424444436782720096480847781272857310048906999390179035675903774922509525928063763599661779468619960804158025856805936931070195073197886151842317062388850272319905666633600724073067931415882939710140157359851659464493706783801444524315716787879331174822795400990198549546857379085934098070960154525801445566893858190510128075786455289950647679731483905774716930219050880055112398167704378260502087784745901328216815339539498926282432858826424160672991676864207737810263161748040435496492418225295590974488022503265172149819728325852866042856769149826166067960361825985571503027187699724383202719004964831180863182780815588063167851196049331341001351127438070844685352951153610645659306024938658876531308066373477531264091492123546355257101273294821658380661983302688711448582790801115873320445934838663327793655909857490216703637678513349843342164796270228351662760017942916718683806329700267542224248134229035661526579485478434413652467427883796128878680512595878785536082691254649295435669895061962277290853204896510704867204179628654275365885215525638869427711420352744940278636903252423115533906606033388349648640204861686185130471779746025942659545708855297340264622229107550294783416764907404259670634746616389020250487069158849278623107176145711853040135704030611789154073102045503948754283292127125016722384021687930058489535794975019589574074744431839097519575695941988014304041594512853807055007221614838806811661770741790047326990017812265150649494911159661331962749918717358402333128909522312536341756624135485705470758545800465865710725622371316003026630875099512484781805268472875685401450185454399771390238269136868229880656532174068094123883259538782138736008333236445342868069960915289040861778128665375082194463749974255882388190684570702794347378369669587323983545119581172263355080179262944796033040678885742496930974305118078376966759289126415075748999248243854696677997965778520787550894750550341401467856976231007550988465255517338649886810221796530302585860588233744762589191291417746994540783145355331145413434479282689423942553359868598583007243086540120940970477494837906522489638048271173626935620301384334013640853065314484831152945550903910945039945590223557737013103390585180572739208102080277799505310495160991951125424658370464172062711157173213298070460114144406773341264482442605238460449818012024692874303923094635565741812258028486253082375348385024546924422818122700264441727772593386677087025574132913330701874687265833629412250745137341241179359670613674309123242260576392138404906958167075804365913868543022909082852718861269573213367929172423750171335169548800371532882808275082826729718062285148971994482670738500487796185262531953694453802053244765409920374281868806926004276457441959699156946658943267661185315687907011485022949575972526478445004148596397841342671050076639081645391906534565244221213921323182749288333555577757776886210547207820598683497024097916759464908917335926985390037148025504185020574883311292679959317741517020622239953858133906657913344912621490450516225394056372855562887492685326809730063265244788858736790032153484775451273211923843245829288772938795441242632919459221024459425428445150173431969544880559347263554963336295528946692286638549817083571219830504066074647064290346877216278095612380776039920735167724355719452615630541752646613920166614356185348668267891436630678617835363008301738627667759450073819599059309705140701752689713793872706234378086325769034545229088787289168161610676726278016822474510107591318131789099975451371759809374255301903605620464195669591831250275439742055257808314121840150021987609228078370112901187375708768544961389043627389873270169363886225014452044163468488372776224107576082012623420004144610660965188031482533211573890651272454804763368378801433624929923447859939857388658729777088320720662960496230223661445233891299705701557500718621517678852230399572372063465607761215679360749689313458347456217515546673351437621508034913402589677097498955977768301895391530671480857727065388803298057820003385648975901574028902679343481263876241778482306445966759365235021423242466725131539693427059905288866974542284809480038305536415152807619910682746287921865839108083231604256533550460564677786868751318668664536106826152690394781969982878929780325396006449004012257810979774052364138554304086441908072119837139453927485693483987177698656622111114794150615321727349799827278830893211018722645770751164690147518350027161355855162862220642171901434765618226608413515063697867383100553590459745827193117638676588585521023613163086401994058111959816447904357053267326620235159259959561682148351573026181495738107122707040471061186497897264851558862696736140430695530622708821331633361621977871275579728788189320533116454189276583760115214864251508846000659116527014515244621234324474776651865120713067619261178145916359927653585432818353445910226866291267701667494798542762605125162590949523340146886310693972925062476841022352171693718436115829633760872042997052211780188160347922943425285162426991189495276329599450452253761930501351274828258747429277814208046321767074670513075358826525480890876564035899311776302979887587360793728965215564029617973834408105757181600276404576936332485767748163320221594163744633555275150712137505815034147272029680068946027290052819227974934503621377852263078140575820045796582668544860819861644596661649589464610673798043377091307491834213373523219697338163609438975460701983777585564219336792032981778389698200071452376013720406370458218910165768892814943096954820528472252491376153505802275448957714950855988954060575140975676529130391528694628153382499624970832319402637434671040902339174537208761331600555271421380798461288526907896689305429335199666116031926824571027434735332766696300843462828804577848112750737172471716579594365259871713357979960478737273841724830444031820483964344945202498622864977839087762092558261256569306371078723940575256577840172666377544243763528328048378258868523005699146339903315354532033007789390743426790618150534891698098650677254451577725550765722434950625945125950677622225772268104664020664469923823315248181581151813282621799580076372918206883655436878042368873773960895102434877621312209553819194502633689425293966817674712850495114350678423377363275332964193587208723937182831437351759230719385096204165088635388617664731685259834387945382404586225894287375697122081287396754482756635603273360804217582721209992917875227803519456770485714475312207402309927058817334406853599263348217264203642989737809535060616263637477340991295842636354177155755777176201720520108889373392939957115417499442711534786773006139390898315450310896105022571220490742000107433286184770270291586117934517715485666511762125415255278812898058609811729005939790230420081272408162409230920401769374212630939567156076670303466525940801343152696350708307949606781306140840998920711723450233409958621300118233205569480339422908718414804956051697543877208936033216308762985643611972602393399082594946281062901898976809523567186293171896311253849646634732970714593449755116564962112158990313088073799006625663933909620996291732083264503875366699265086944251867973977599514632016177055307543697445436671072180824978414021414004078813228618686393907985443860800197212015615545584682982737902822763703418142888909442579263264317502149833137291500021750879208820827841596574146028676172107303230175308328006472974190427729028854679640602359127166213289180285907468339528119974109407844513826365388447127033267266282139816811126991830050527808714429906963852233245098080067207667365067997521182841560992640960480677923569309483120819142581225614598317134052574405102048614439090602112340356424817303592984869346511128508300952860579557136680098659612575977619124456452432227001891560593498811536538646599153798222445338579501320985792954693107800092216140164043902070931723176253381416234014704300896309672702434926081628538664383454126207990821368984828041825223075759065717063773891702440308559672661281703739019333259498107362353175555598878808981637984174996934118565413703583477595254061515658097077876994693910112881554091141173174220738597228766201987441393648679808353304280518076769456709801305709374801549829142031602165789310169439183718471254092815772912992849935080521527770220627774681798369140411535053418550743865641362709839714556624872776259013366152330614449102391959466135612163705008914544718146619136479380485413691870487118220954738670970170184114277615306024286826011490758497190742078256981231018743137476702708252549895527269985380463911090241607277467545067136776491847349971698767032483959390440836373923404615598135994646045865878541244488843862954135858892856065247544138907872926913749594816215784596855553195039098653171511688812857372388513169963324900753987136789853387074027602427817696464892715851637831035262819081131555558009394404454411303463202336417807382681297270627502035703895804152157109244454021574921743678348625857075164098905701077217317189427596850750765995177312191854696168741047938670304284243764383286863366461865511862041265567253911342261740360267695404653807126224457848811725034671221898958660997209499284415180411757276609929777635105500149978868611483579477485748388084277118316636538833284317487773061007052167118335037872604148777714517311701725844817017804769602890492216801480599700255996609347779507460260925507534782051000104282425647448604248831313051788326702020177945334355148663954503313699232853549258235640077310390246840381924086677816704593699662896004310989983310192137986273424114015972681927724025671547930413879061238319824595257299824090833621466685329602024199100139725854271681816488291106433398212188611309344982843855235827818093579319367126007653710393377260979799748201601035003228067479753560998738697219944555779697818277519468212872889484629902701740194173653815306991003180996412878726339777304404636558538849649779241421956877142479115907826074615901131928996844902482933216685178197292087636363740825709323735145567793162002522836038125520422796427842668278853057172676219596443397645635011301286835755825909290391959823205262994107170513328909163671577549411975723579721375549418865494507254221575760883599666216948601833573995404931015073312603968473479576930121008814443598209373569669890771164176007863706988887367601977936522299022477319910209470618196756309899660425670142464759664494641128504438880983598802249189159896732786266085997132148896154405739386836464428589141899930772744239649624672048268751881268975077091854931960179585575508507447915182963828134226231696963554682519270487774024132681259866769930129819375189460979014802803795009682629589884224289536365139499724706749146403443657646313331858882458956296874356398093344009150916042848857418333891276854464136958040444775950585314338276268972488532070406828916934844425720227224806056000226759949178661112858339524126715342980771906695458637048566791808775378428497711216366436774389032967086094477542495863390498928514725778162773022320238322396907601323406210522554025653914070329459213816452773609410953669390283267915620717865882352382373043490722620544938527393544400430956816141154460328017162027784532567107619395451057370159419701420483951440476573859836396060692919582874698599642061388627273131683422035362855093969407802809874189346006912561195066856938690731648984465850739681900882672779837377139127605398405069088140543445281463798703401116294795147992859848910842638796935575229634787996170209203035283435842194931210603527257872551131575271892135001752285296595146772561835709229990101520409541518724737026055875870163750582925360424922241703682413535119447037370249914788591304996906896757261659538719961051514188241676156644612599305475081674051161139487642784596236597290137097538339858599476510415743516026863987363740964225469096290479309941691040286312741959038052755353538070518812721479809187034081709234562915350933401471258619513279316643983066774772614351768987711242068391395930294252231593607302403670220141503835156224705294106668350680737943913720454406046506285733685292029033293703005598081750213771347447683738691699345828934349615865426718429413464847842743381823822462522789310531578536694481440960610148955420191229124210422598303559367879766427534143909521025509279818824486523396547445284820074359112030098212780746814781206708675882828015311771080603258380579575569199230080985663821170779804371271414500630558385685305874784836721541701041296529007305653563759254180161380596091713905059590728981850284842344124112884556988600284752582260956420859548561443290947575432494851689953388189871140583068976697212567461958385217137911973791931326809363354864339944371135043848058073579705441380753546391472586368003333538389592013790163156558268785171876473619386038719321938300728079743830299320536626795266055997534344433148607176700605557581890934177494662589540026108310659690104215986519463882639507532788777530072570742659148986880921770864929930725111894464869784756993674060928340043186872359459855201457640223710765754617689601027557047574484827023943650848729082421130322819985879599471596266802687204894442995918517848626978207265912639326552332639971072004447808030985089975063983539860319057558976889000250702095810550728356513674546585859485909384930399235239780890530994116710964075646909200624537378711627855842228870108442603195562874245271838664398549371687101462142840432342162843076940815986288896909168746288394760498083223157395942398394168026537645747861407940410904573877649470581191867866500850750678818247319818588166197189499211727995565895815029229339898727348342070858553316610397068962638287353371169559451749490390971536691540114286541678653288819295170256473404085585999655292423666620294070201111172972319968715006922945315262372854212947978313980049109980682800793960315468598049825116898443848164244691147219512336626068685173407524942543034160713768437353199969626857855140597304335119330416176824236574362966541708937054750284573111295795304296115217926540978696169709140774445318063129033755735720966521199477162469189536287862914965968995926625846968997704238305176034480008480089592122732106964578163528842707273860259251093664807315152956375578642702882681012545528354980649824797579124142930614172112966274054202673250315899918141566258795619461289407385139236704514898429310987191661561749603994012895783753135360728435045244579575834558046845282714737440765155336930538738782821932284557037242617139543065584256939470652373685317130731957493373446747012805765119987919447934903320369102113352554004872181182099179427868366755141593444197066397740930301209426477621579819376541659610722247715912282742020432849643386022706454422779153780822764993332155933363361811382800236788434357878770432117330373445361420750433792192866307233040491467879986984672182639621133729017155985698066760152374619912154904763566900726695618558353401341716954381738975244604821731031243405010723496101300714724537532931192898592324653058393483402876582494528160069601563122438829316895146050212145391765825261336217559569744485048098272200589143721545426267726180787797183493552910345680293996911957036896536546402701158753331935792181362635415264489315693165811181343778771223406908938555950141245283506468169375407707222942379772313526302174885726799654454126153339517009715837784383018743206339490517146304827349313430566402577514273582084975040878927181745949859769945447083915439767362350114820343301829741320719995516156647787577206543626759661863010813055706323072987974041710837076616504404234046736794800165214028924522607263997684548582364511509699703417332816585952650779007419382298947264423780730199429623691026687174986113580058473828035714285272792989436816565657919047247819024559686978387268462737518337147380386435804175341508576057507104157310147560838545948439167016659206826974757103406665460777961273873717389602722088266273817318934402307320213168026287278079452143305697017294250979988259117475719526932953583699575251667016285960107433187383684724068529425401767721801474274585747166750556117503410680173454095182127367068583207571631315709238170790089723243035500318573864136191135382323466569517184590263268237693424453345801210324597833357572755978475648958058416902963035460097508419097905105379281814338148594278050538834810782763207874552095179393724656833069191485301155264068077523078540426159716446040263495966793568257643380770403361379484327134500796249530180226352130383241075632513541710853119467517259432602715222094918539092077142153434872988392757842249692142243907399177743992361031782307410953645774616457842934650707368669946475779110416340015715713891911467828150761760059523117864780307081866874048252851610566009594508513404014524804014421652457250261434256205853019099722374518809886411161608032740329723056680176071138167851366387919513568045686180769247926388458534458253886214303958068798879306440323439876040568798915966842673813460454119864664354634145572331315395300121916553706711053356413910375187293761617730755909441330985704044593497517843213690543235362351454188185341687966692378353466372128018141126171671356512554088017261074792951106509934890728830573666731057725507800328644622794577228109136690666351620732235058877207088425496297398541978666205218665672389792552273440907614933232732664795900735144747983206240371919717392927260226348560782281530067853543491263913368058577932639369870586942525821933379471579488536999774892067546775672626204182524474957350805593011978235234035232681388568898701036720672860307754793053322393856939221628350428298089293199310345868774436132736358489615552325138852416765831137228210134337439525587975379155582211290295765503265335755239566771276445611774730792910852978176631108782482703204385999056315204084134229324413151026394453069015800045114467702731740925246968504958124262776459732880977922045097740798793589517445632229070158837458790083139028562692094653411299816605441852856439182558397395853132527284869830555423948363933910141314346885083772105700147646230820024074984908723645867147853571021196788979849563490791260485838187408327051344825315727827194826978103489143962052225463036799559572638031954132394146567360932807216625749327348774647612064572992703577644118748003149155183304843264660735000810066295092408966449574077985611713457367505530274830826808461298144476603497862788047918020624687409956268005223813537233127118495588606126468657061978795603287788148419584305841406814966907484345208410730730670660567718125404021001009850478782886239961512400763124023409659816844664861632375043035836833915809282461653585140963283817066724299724812018562948074193095784122066819742475938391261249268910118265466012693990109833075981387146283236819702728788187846258771694524832869398447831479368413148475616569357142263968005814054588224927135813509906964505889956954790024709265063652343329575684047959226965019526823338073805878424018041173723021243668972886433229551139779809196597342235005303220656431405642011865531642346369770858571146355343662801140697461960439540769875921319398488426407296841133610523786554487699683062382283480317911901308019469430400036350715547909661186076310605448709909539496412220057178319067661187104059790907532623569223898338110759156842791955103670623119795840169818713130780746043848185669945629329609436037589660536529080608161116362664402969403287010179426639087453372668398345306106488206920858774052916623293463025748862068731791897470916510853574133834944398688022165916982059559112859823159002193856280692515395061188089979785746369634295799827966326532339379297386235499475496544631903365178869680745165511939558332143609519215420626208929021054331410688846282618557895273432542411088733016232906342963730305889579944316571716414447709251100639765284922358969380778772374645122127952125480035715699303974892443517830362607132260800026532585989505354187184031156685151570569974372696740711528784755705352637244973047580072187194478287922857990624793568714507850647467451607596949741196651993579913465723319862091091531670563108423962323969935111065447155725574123414923745412333547863328396429785966779532630521323162587242506353155301973018617334069230507994592839302505309811767209666681079001281523830843854929307903610783304120469425692127660462482541103213454329553919268550222983788523484390005592922223102600175229841090599668240438584354357302984719992262420942267143077158725326342882675954260020212563100167157690981821732007330501487651167720077061561363407974455869484753367220055508154912160386629060348551409579029821218041820364481974229871236748405082476675918294890460038924345704057201500888248303600041609271590157770550578365708542218083506850499502426032847833657509562767429445114322930661591341440090251478656646424722398502801998026201756295878037465687946880832949040931924927341866373812538710005316282352495868898975885703889913045919978932509485522986959390035128116566479298757243667929487805480134977809071767258515369161274851174154230210496437850918853860713717292241312020851527929799135924166144822999733815821344387615529255423254946059275918925828609575434781506943122906959769920285702045393563700701757433097927293989660819037533087657691190977538326128866886022833149783084531266962596768992981178618028181341738762863330414863299483195260210594687296588906818059838789592574850376288964224994491154533451701074731751723636245307032819450229327811040697087828006145520129714584477869690738651740978790803615755264748977741206307351316763030887167140052027592991438307364165046231349803294960493307004046417849404372915980527472909258254490646048055686336550225847364090318624304299547455160362916965099748835823459139229709974434207070180701680921609631883636535165831703076783927713251135610366616543380898258951098743218640314664163329009751096775506616178915169094940975338799856365713002476138476850548548400851445805942930226237704730886821510273875805799021468115882237135891816023870121021054084298972634822567902411557455841557270456309286744781605100446419334181808708949292548308747948460292981668311006818525632978254629220323120713394821502708679271253552857701549533927761997480031691805618361220358534319419375786017253061039403136207232259578518829218612395286421997812628452064188974927943319484085360948100426110590295409524148301256929652647673863338698422614513160897413746529574232398680306805748093224571367593737619350017916012799410081006566329737837427977280621415510405279044329034183881716450523088109025779222608646488272312414602820779096021455638041684205795082528758236445695242038638868440256117894210843694778580692305169895877421246392266285301636240365283095541307580043132152828898328493533443420313928006563782071729042797777545783070546837620316624170428856874037771429483723695146132589487161785711707491458370101823346544127226897601314677801282214375608242918241599623881596045421002833919517201297055413018432060867661378928306182626418913272647049864922194572431983962135772137170240604561806913590776766621675266790607828258907247874690793003269364193475158426676726724875634689508503680535501611520820410324417656816658932896185052857112173068039850034386550723553010370961102551320627626031974214439963428254463215138708379631325567219749285310530867898971707239883840664083701941484826527861295687945765711558718055310801754086659793406182521616292355165198145397498123631583548547197894602854577287668653849088436942439074550358351222592122969478206903096037983419181854774900015859242985944381443384663968134506472222459316820869264964421064292943588525535801683982047982923343960859208488833577064821208294354943287491626872227780997781362505537379754857537158868323109525711148409712629700161177932130759830380564848242684985511291551505312914115113206200024326937515718814203695871535804488082422554241241743281728452993879036665218620372684647638993223126207853886451829952308536382832976277031813986094831886699305468094161599599680530440797948550033390559930334337794376227427792956752906365053210290922141724456733524916496801937042356486124375880435925004307206554547083241966634588946645305236300717136696455150176716377649445751192091839743840228588914582515462375957611740900755087585821099148941166387588882139700296901442058350242825800125398804379041948691406257765167753674475496997171480219064808072890670566851544915559242506347588807402248156474193626279896831472567505034149485281212634593143222347426979432009341440843910931777019920717897897393282524089518651103048058731802799327726858299504454090356030469745805510439306496160163296314064195485439475854050735421820978939134044527480989461620033232871826357393977073277072855167330040329525319558428178947054813521408672692561116545330298973962083847153110100729776831276250506764184236264883014869441051213228658539041082788645419586046510305300291939632413142824954442150911939286077526867472217149778974712362513106395779509868356912723497523242055395575677511748052962047827056260059774409273498908253131687597748318533807870082069575598362149800874331283447954506652864299841862587252090864199820046222923325800499546725558302096886297206350555727867458600869976386042888587199825799435496600552703223468920199719037069024722611034218422011701949569933678394068262354170223525944933118073788481194130879962193331922163976771139570358966724018599102335230368901159310699675748309985973115064723029818028730360212236027467524151393780677606369493759109538546578059968581998790119208591011845533086921544186374287129759659179961023627857072766081829466064725972678196353316916355532138204743948326822972406917409120327940948167652886761996360922005098383927920341519871627778125358381982021906015703145324160269615531824320734838551936733895979776546425163916433630073233512036961993805828216250112015886670676656804728356880699325843598738767355187900319908618466538693106269169798584681661577642672716627719195139297377799656118208070278860516148581741816382172953179587769396636339074925228805242592372280913736311209788916936777763805825852366675406734364783969731067306593089479837167162776139260793434049870223870719301273622424607118406345138052501579050788080574226382317519358458933241971894458011608677962593393454785232105934952104161089405616785496767496307849349151512238049411972412860090820477478537939350521730848255446814028125256243598320327259926420167217046013952423883911854291347586968417116934640510981231686136876900799578352051247324907581966400344883694255700629836940345100778968732261641750450355440705692448826813776609382719473615560199028837852974847955594548370736000976531603793416327092364461148758288092925453695766092630565730338066253690163201842377092159614708198365774784869636178836515454897925282847374934478804179647728671412683038137810929419257510879931469530729389764061714524499124565002263490290383126666381458394260253226257689752570195957251087263820338511190463839239568013698412547683668761192336056631694274220545591158358150500216708842376867632129202203721342876007931648214195504953320051840068742650753908792884404660594579877960578646716705565121142787439031185807440594258711992415135285489731407998341182528067599516628885914747014642739806162304849265854566153413667993692041826694751624461370445055864864974663094993425207866113570007276088866301373188338675120268450221214873628558563533424753147138169157965111530577781203728283530228623211144840538431974758894047145969581391507127134783493729874375415998315242128911353524248207259668024764429597916163827988441140838699937209180128364056814833801699876473841835313074458948604535737098076686082093904619629232313279747285738951510559944076571856478459195747878716578430586907492347440475425575005338480021604772881409354521582439004073986114037800383660791909754933731053459880386892881037267088744541532873672877024835297814939422080415616813615210081203762141215022742715395795348884570798256028065494271238518301144755299128424802774321193235447585814114334338538354467850171032597767866687733675954500413116082015211892922297806701059178442248173386120573296617665469343710154068056603911341473950085566257450679278694623090610282749230845762445149241749318479949628633768644748670426814957471003659868323603534295751151422128935433531011876024534069920188088918858596045818417221992455492179247710649874375369855815781171508254331939838410756548082761070651019702538322182051671309555976680621825224959509296883957481971057640574953041969272498824242055684226815937456731898296666952887327331266823609803037975194095974253777823133312192839098923082034250456813573921269673040355704632686613958891479656642909485555462434655163124624174012560530008976810926866666157310587353692673750292408967351207508631601676733980446914556175909637223399090909754208146719766942379198760291783460087648399662886330445299149016354988393255234901332371060325749344318807263051493851016306482672322090666915813524506117733346713593183893849378609804091876246753914138914718366180232062574408756622955818760563297459002906397450818632927032201144093026752638533910795605487106871929960106184821789253277306151091229101459581912673894767938456611288652257868838409542216825697126906251566033320121255966993077475530059098547830444931600395610173236524358920495355403028055463244571804545676272196033861980282404935668742873348289738846735854431034487692441791468965329963919907057656379870265752718405343412378402426427776570130347791971048874502410546102799884390225356163814963742489424628994734484918945273288212319867871943321065261954142080798612852959216355621607121240312890168164617714296441497046936286223270227282380869962781681812484051210087341262365813581906492144007691286835074555816936060151131243880398506869932968148946145121149878871250202688634194176540832144450332885875078111197562920065510820458441261927902408283946058828766431281672521452054770200866772641163546032166938811872215644611422617156242987201154377640398051960648407590936948765396578537936600031715798660543079610100086703051758777173862723355678005279566694906075303733109516547012681768377300825479642936107341290074139539698054080620908515578627423334057468778759852604097809874255681074302153983179980288292336467070032096192784703035847552956546226018769426495309738071412955738640661147628553608129988836371739185332945648806928082795011595298264084136437454025025983825821836061134738774969232391070355455588267363150751039695512512994323086745142130215190676717539207273270620255801628721642852609527339328374390518924515032017709249438006946191387331576796915488559444009341865146834825437105970664341037374454169194109111065084095215634152180427690938119279889686648535686716222319875168937443359858146458426383711312367704969511740910511570373237132150810072072649721389312183127927958401704633220990940186917163774384597706183804605536405529674630786300879493482020773655783439792748644669213662847881757431002267610601786912040964025713121462316060519355528185966071698840529225386400262646695969030166296424517183869559873434643924586705747999706126564729002274534218181834975024066019781498177376972348540633694572888197421962404591602761705888689512555563697811476763128472006499431885603408436555774613577704521885007903346388901070142005539160188460206396703870331103010354770673095169780660956973977217424727332678581052449098329377380892049463908487466954845444761208125747952214836764854973103259300559136197874114458784027802659467427226479470261968232624107496235182137521946893308744624421098473626073042440119635768172443232024471199063821546961289858862227690911330411964589999077387046996510389015387655677886175189549242339442917942765623709602700186415856428105869912265890636712257673715875355651833052643278693667284706453547443872856062016522722417551004483249621492451882341836220121680176183055782938887435863350826855178538262709195641738303877807368781750457174668149292836568555615957084559297646901292926687401235424433819179413410246124517868726220718233042428278226905569510526651414618628891671468542459548431384027696811051623276505970363642117926741754643516712453076335832661297062801241679510772875206501564759715157860067484947200064096032490902410191343126487311116489714318450962272364876647235724423943950650588736477001876599982866777732656353728657018959916352095220606939747576835317925467279935346268943393442395497617745307238573329113272452426454577517801379476789751089783309897540240242417683242391076497642711744396324725042182508348126624425185212360049143352631921290900041836544851943138942959259516749766239103852145639101419577179359261227746019656311210537132311085559589993487721501612113544730082681054637496671172448485395308680238891398228283641680357804644867457202703831105638573112737052604370825487657645743573383560949674324806295197235613780672716277753674090601535525155153276641285026784997963217193990805174631333613583268507823989770826334358835655452645803901995117358055918401863722301648035685976861824626775499058033838706927440735203763446274985858725980925810987630086733467269023028101907211948849259357513444285077824907675470012036793913979792537328841848197123249614669091982142141769769672430634452321871811645997769029726362794876922155073181649358854609716576816077018482344894564630892872017173907901216764248408025336624165815631689623273262112343951156953792070778892722742354634565913059674391852060354808721891406420780376478200807728592195790029249076583007797174035793248091632686878013085467279894638583775183453994519688292375703060881441505278387976223929861318482773914991858456726067565446256758479301670524250633203537385395548403289956813308584841428957857770675622536859871663668754404476586751956131212943697433149417005030217196040470112005463513770765225332424174578058608763798732783414027169069246483419381943481698157003316719242491474116547812083760111248680404076559890717963478637933968521308246197797354512936839132508956918973948608174965386084912111853716358460671649429656165951186538300303090855685082526014579546198189906524132663784661312984621919096363977432324797644124669128020968187220411382583643858239209007417410513501276811366083278068723451263874907651933859937704139599276924050671371303578230867249907727043508799938503072000761795299193696220221756779922511437120333985237927977585476696469799351559786250580911681476902485156019835715479240702731253944463833956430712833496693720565637203382715516518998911372809837427593165709865625781691354510570904297384729686269270544101965658539742303922480707214660763506180354271214886834588002811167332889801398976597873994727464250533113966370947041462795451851923664962610260031738143250604246101490849892098428590107427887821365783255135340304321786118709657889233493562984184555251682880281509641676585532871300960072733285656673918500838289941453967895390656942906858545361612640711587324694551395536062663356322958612998458151950063596953740612600444938672684441715148034063854096937294527256390949512302974533955524756416451273256290940702698428120735079717211883965191386729222403076052731868036152364318056716243740224016713796792524607884517338418842137025269001117880154947617129800738621027042901814907104648023375547406390655833677117061311434852206864026366626667720317767307987909856310033069932700471560035018827832725218081126758529616518638285316615777892466759613310320389154961639488154334453462461402193795706420386505334023290635781920220639257448134492009546550878782228093320472769302276322665610408158735874134724200757008622481790660818679891093551362461978371835811429563133910673840847206572195484639783825311335469542925929677199696896236905610982418734314995603281510174445324524890979981450033264246000186483561558757747941957588050704094599977795525647978610820221824728478341347991582889396759977536366350999349463404003397213924090990734744782612434047193264514220032791208687107669552488181598166792336982868666802669807891644002023879710818739438596887501147755561274047459805337678188592903962031764026667936365118082778643259706846886978568501926483941925094548718620063547988047336708691144649239194114415714166362300686123570189862854572457817879252007430674490743692736787089807122211228875665680777415067369471584907614108760863400227846058299744984410317314907435516489894099503584821578330236831563935483871184957713536596840703534569785502801187406626625421850306075219096255429175239999957974234388799689501738425011173703152620306961107267126745204855288720094503518564606265845994100939630018844515367903362428728331408772088018266737823730344509246061025617191633131541264646779215422445901942445508506293153917430082808335686482316299254507575963035569706452744632508522302818899424483172229435609736573297451539049330404983300424982222836262463964381783391820486929219598983001926148874309368124783880811034377034506883722930748533568852022164392588276243313697512416545854325070958368902299977276481657217839855363325935158660686017668312701227901517822168642113411011746525696401620016706973121777474745178213691263581498779250492865121805457421883927926222634232654907557893940197407272615983495140089356886458325076301667503946648135331766136576745178191290629324067291624640433282047865524174623076753555204273632033577502653861050373650900618770179682396965660427326246536791017639281832098895746586143604312599186543703736729830913878568157232278424507425097714439583545816454032140144916331133381406223596781521918705510383015099668379432947763301808679104564069791012528010179481084966861598867231735134143035937854145748617668224445695431932487568699286342561545911996289445422955100637441340824584727989852825249135732389304134572533413389592002018786085624820371864315352831882589728032108390601806841998086176929725885680834930664754253692785633794688042409099258063470870805866762081538779259739860356741721804898323439500058070872770592686720838354500044460225541982793333248981060603062504018075509625496131466444539105900482677402177442083741422652973917756221306521193911137149868391870548596155486628931827787767727437661506283436505809090211377874794701472765816031644747102232323967497236974509559632863094648613705587868389368846745990585561120275670178673251126227428403557315722113047207256066041090770697883675678204490482865388024831535115401859738389171776025740154084586591183473981950719552564990911438980477153263500251431105277232455366219757348004048730697959172208892695112862488519939357496492908832712743330330904451051154714601617359000124384458533631134381371992325251951452607674282166305872702551539884066592439089033497234003901183841610147045085011761553403216365089385597661101433352818189828561396625853216568227930902687168217820695884972460321412498324350812989156480517811998333146418544712877950739149658272603601936133639936657712533069515212199044422781879370389358735769990866617589202809652144987530488352857279863869399779654678984499909130181816917596028528031026465624673260596732883742665795218090072358523631012475822802155334576784137681325664286579980716938419549475473040670815775869376498234266845937914972299872346159179519093121231841743863446299651054006375030960891681239990006957192011140840976826646916469947092729329325923546103034851459467999867190967108736813167241812923722405136731037217021500061234012313738441816889563077923847522580510869633361602084655142021079238900188386963807171703039192027727116516575100443464638113052815083363563632716844645338336149682467140293075209257099949389209735405710091072245496873420103123340729719812076162945831351664626624255792680454630394582883082003410859408911458461010487635903101173214684408880168776259708696047558911246333917561426778118797327686838803871307979292495649915485499110792344036242113786847310470371537774201696073531205106475891045993450941930686715102663147718394393826196776416541181148874704149948000367313914304045926285586771068025843095704387797325618391190652219933598507025509013663912451500969806364454475538533105035159182011260673965983988941278649569816934691476751730240399916447834424711377145818150069096672832436838863858236396760501777987252389715738928749336265516694923966526216988049438656305143343818304353196764097154970119021312818535045322666420662090599961935928518837479360930328093237975559571409763270194054220522711095713549412380780154472884335986762690919057944546536671883326010476445981574725049189655750350278706200051095527785129697505782388800480534856149071380631471152805859160741606808297362144256845507810141655356405444326660265738242667764332964499308082009490802478438155135883242480448860113616480668968159692578369942981239641533095112977203667964699867773368297217212230896108455869183311927637140640366656206180248574351590422378985855739525181854686174793707508965828420159627893971019927222572878473814595839683221146860469600818811749120318665991781091602981946725336365107797402846210990428482772704536492863457329094266850972097593789821451232864577934841603493628536484609420871213231355245428338601275641332351498119498839311574133514219802306536463885675126170033698950022054177540840591072542371465391767199958384054300040580964969640968314143147735447216550817754412424067844123418026050910706655097827127023571368815549101218057200031533225394608283432500084542219041600091243066019861885034878570549639912281519003808412743966492916564743127975032439744033198988574286252746252544657355233586462852243928316679478888246510689023598199690406519164018389456878323807231580914528401140020296080667871740406828691651036156338596892741589496139155970584710290933970303133543270618541282023079393793100305418967272535567135363267723926125926080809525147869025269448929942346165700698833808227317480832161016733652830094867070911431300638321907168611773258007856400688467988173171181996740002729100832087624598991854019561827416474571912977364605776803122514000829629434036234652971680565458311005936554153135184480002473477771938095753755018109701242966062077376312543800788777801709101330100342130239922124604505107926555337783127690089032703524632715798110308481499946596785893173440982887440885950813069475204055699075194306663716640548759102762235811933949683523050606911181531687952811151240369517882216596261782797228799083551462202382596293917425156090137512486513360723053185975609728377426845305025688268056280056397104077467414821066189034749312644182360440898250714566975818967572841583943712458826716175262183513032635180541790966919621657347125286350466138584514817535668929895845398373329586072883103068147690198007021868213162295666206567877562705224998341670633433254184112414379989483101410174121029864096638272260387210636265837413921640151769545421333629137015458340027306912058027812601359364696839465119046586160296913354827125535221582888702659355194890990942081104615413434177680933714170426012949787450540761049202849957520147383555209172651909636274964359105068952826095560121136747717003109591969939817111948005259374079844328029075495051068438897532572404876937052372835189530420702673202209385037305758716487776996111632016323328164935375029378090218494582622028404631302595502761084866604186675267336390828477165232997649980744939763511760062455555821339624615168922899292132702902813888858952456488987076130814723545389653493116639637376565965766570466376618492535049266968053821929219130154165895205660318032989112126372345375096589951228257712824869856568567021719327512684331994817313145433943237768440732640404615328220413562845128102644292594959955137484063708733216228537762211805151665162648222214182196943218445763939083000542964518158141816943712423013847500400959612812786183921175146818594563487583106188076154480315283849902026676384010922470258044662343843692171533412639228319124261859851566473161775637723097680871455494356511707588172868395458887055042508054330292145982616912194197917098961223022875924253369942513423116570403217595525418633745240156587599499939064978947871326277975113303192553630784712082446247736420885579325904712076054401537783480627502346107718605770777223202866392695119812879694005424568331863327477027248166160200159520910112777480378018626116238170211515136968763915899146642667610495011352456557683206251723194098752276515605210327313914471374435781703707359452256348114286392281855194522984200612578723330687946934190390151810348599412144303592619973859038315251730579728443410982200456445422026287468758697569121992649466806235258454320109354543351805141763301228581903838839052404170545726876666453371263921044936032618254445179851238229416787461551487049149834385383135561674106277141920014757651468501356433872147247486367969140548908175124795047332861036142099805512462651502041909703108622908373922004697242354345410427292533422257417042778177692149880509948021178277156702504140576045193374051955680548164002233898450686123528202903985293778847350356081874787129757789277858724706333094202133211779444862121145656024744655274932711256713154808870272940198516850312282259111510251459345537338509224334774156040783433886695517556551074058679946522183965893574401460396105252821500124859039281232402192332168218959265998806253745749550854549468714592563876241464219328848170190229214473409056352387299223600180876935814409945307291103551369558073667454351162031900516134556915964772719433028021224270545909682289837489192365022764248663126563264311659179326986065611105506674414600661576287569703346954969387468072761335984803868502114485908594451308448131268698286320796477103844621823334541078950106050196567528387820654824433780489244409333934960980763199300515109741808642732870575297592142497574057733145350160688001098499976937317502113820387683526757516224760246784088636353661113614299109332145775645811469206411744960622883300833391681348716169846231126513914847718122412484713673531019476433141651677744396397882978215145714638562551964284397650867992061059558439434805468640661974818637859079358930529489323303894878120777394962784402760923206661954344703311790929387801423691720994988841625021033510554624573201820723768372463245592307361883796033479008283947008162492791971302121399620656002420728701038808273731026602493440598839394863416051490771652729922383630547375944819497841042648256578814629040254287118303513251664482411841690541378598252582675096687831374984622563223893978691865928111221111993834931553021534972760691491322298184139743465257574612675248846395215367900963418161802241991431970796696805402127868884263407129905845124556662366906541333786957776626263821671575691340551830916069441046162072656320937233844774028465065664914700695480004676731756392070172245941125666560221400607021791078560223814825552782636266646743662854780138831357627764088503298156285598756876545820181735613711206262011378263598399098650631022531585214742617046459567255462285842669276959700421853436343434224694583745287080035368139196915857726556617681064961485305331434634465141148736183436671449119101459121825078697337613488567402893968262999290508438987893241661631940550634288748053502962125080269865438345329735483208830223157997070793889055531235846648594164346405558090081239805275574385259745713708473116099475367346165636090411302689485481226106095776616623244673627503639675790514839356163092157716898971957223811926565980030177369779590579530480144486822784701673060545723061695439536903371202223127907756889612728244903218391487436163024182093999664435382719051271885084480886131675013601489719691879304638784151854406902878488831416933152241075688415101322426354790123273261734277934577098595421813753483565997802471112963426163435408883503980582303341489739136825728919981423158097669920119767514705251000744046575123874312550401433976702017248758396057584804258159942945864871143067694453954369268685576519489934204776579143901082949803261314657464387412322907698420228808674395106250732332897226361958815174904027691802288901207079896343809221116991834474452015876860470683484512513444620801753042825970861150506027247729855220137440951384166373347138498573105355512397335867267197258951033873416249945275343272000607134349483861140310213641103194499312645690511605719279861825690862802142050113663430440832855757391740542154331731200069184014902017039481758204408355196825013685062601649970773907365444683202135487286155673041456893277272089464548423950183664699021874606714068748333079369821842252758900607951046936845151691889419293555576833841137146507446346845014842076725756443842496414826162503992165581211595551693016302935353759944071554583575124115147460288898745535299100575117879031760247081523790089172530199049433425626987267577831905743133996302223865537698837280998611696929438770722646630384930996088028260972815482506197833603357838420514949115700218992273379470985164332926825956827058996412969466400093242422899179878449873438824195917499505239941943864074617653068397220465395853206877160665593687706176142797874626229500010544023414068046257718640326537779768626151525189798524850866874380505514291997051077348908535098082159762563971237500480430425419651689370500434434639844247508605248029119889541830964496650028479562218894924966295083157200826784298281938961524555462856869923095210228360498685910795697840343475240911638463217691794207875759267234079800930037397031314738823533368170474785251876429669008531513719548052501581365583540885015309681532376653809129489360830461061567728186236183063788172077470177897034200357943297608358995383534991778519723435478782583750595127307269839824170198103990141877291058731781082784245386812976901378438735739703196987273034801722153965005053624643187259484259880585060934816513852949179604825306319040986361304684284763709413545411059569358674470480458013766145349114495298908825266359182522243058500599962148295560993097563859011529187783953378911535694506313236257406902169896566432910457274063276645005631965017885356847343741851453419699945493478536028499701319125260717660597809198341628670460881716228801301506074108873156525577971682464082859984610983447086595063369416097880876287183455181724958123695537642659597161919775901946809924357980573091581545033824244103713499467741960352836629677087112939084992333579038368112684691291700896719788072828112454809892586477044688791279777246257906096633291248897425456729452918648722501046101748652656330467967189109225170321611129484070094245178334054385244052591802923574342217222458210812354100674558138189203987180785897568508062184877741348417340202033695349917995182807626891008703271417808572088685203037953334845293272597419767879390196194622784551489395169937480220059346321265609722347123342315808441965474870075785222336543704778551859295553591743671567624884589638929876922838496834258128307853238500962445485835936463245687792601098920463323946836992665680677706065156358404016137937720388644314363396412672054468761301640642180194981847331171678462083887936441779641449436966040000403414689303245935348127110155460329120606297492824715785245473589449430611668669624914652723789546764699578270256939617459222237500044557494699682845264412776899464384068480650791343840253460969894242468122678920689221248353250139019098306908515036835711867030338666294353668341018368864499256172864851997981913627025147720084422486233672259557723708044920813099352298623194847961208864380458981423414238276468231234286986098150057528341495801375204908181516785368449492983081519119665520196462282094510040266881035570318279434256110946262695328941749701903794771507958706844545276538462129718264741761882844923920120859553775290341401626304475374895222333716145245882083047425211261132348851140542202849559684725307010137809514698852905772331958373990061347859992778947502169912950112742683772976086849273554041450328962574461554178744049589764313735980233939425193205579374615002741498521476310798714008322315000178009937160960760784127130574427287254845859252857643112835122175011740170831555373796682321046736724495306444521671392040490126804478499764211047368199445723544874224426099478104951128533412788798950511157263250873406459994545144470411865744161679772049195926708243354862722463912799316266546565957953046470313478814732774466626226270262814659347451579809219867005104804597130846182724898762733603925001759671163383299592416982379574856622840144807139004813401458583523739013215413389886199938058843754381351205589555689250055933369967366069900973412660884711369901164566283570885452270178208138045680985170478964579938633496862268461949883964761808772846447643155481603482415918376854796581748063317742757810020365673273232630978218246510116354065446709324194756323176969628102089944961399406261990270235651394496574802249467452211196067606268397539609747981390912813283834310536569370074818057974864113116206905601941562663512859321518546054867492117393225856726863317320041950552535016760176576963901282991627967556455899289684265069197203467004450358437078325419931801873040985525826125996833402086920677197470308932884005515521120492841545947861188098996190775623314730067245461600973732972401885292488644174425911587523065204162942641594620914243872396943392006601763069825773513508925608979731574524282914995657815327043722236945402362760661941957901796857572594558625944209633136785040892492055812672623783503624049518576032936747378671234427518143316263175912203360380534848765019439048141838150400198280449210605559728822587508046214396365400132931362133547607981645041934107008761938993688052390663664595869013577753167400545531100420155711974511883308252671066442642410068136777594224197238749527368936258319457553526108927271318456719279280800998081813456594149601039887409212231733530130866806434704837885922524099397062193356722776774895670332161281431157391748765113665449363261320109507484813820787249600929319072733824085249530933658953724467582211696917493708549154598464434461157575998137804232046491534455841597667582775466200872027471473705210420639451400284092868532192747198566076285836055231484084506703321473999855165053377868244827078309616665313408597186275103667798855471979470914961887926287814585940888496737840670903501910308144832083984703909632480864377987749356915853225953129035594977580241661867090571091012016976257544377004679120264149892078090448879970074621149334465237033067438592936525191118497319188750146069099053767420301641155085181686084925460699522215350455745580038055072941139351378266847906248741401382002966643507859775665776293952815286286274805045809484629376764499988485912733892085257930943453139470579075592257511717240417166328545051951048908609750299602759334634992578073872451959201019017132909536031000276313838565632074245109998593255592142339363155122426911373110482784660096736178136458859794359624057889919910345187072578746427479845451012301822016418671869434394892268138345993989225607514705926661234952228407097598075671432781128038714555629102107173384716134325742577895954553090874210658343971092069325042520135396231244791757424737921531584828135024672352536433233570141718154669835523044076825580091146198134083511772929294945358713200511725789508925431210037385674696677714758394066006909052399080516965501207869717661694922013826457745972142468487008713566265912993625834514921339660733627947027921443843929527810324148185099184181428827760207866571895581425779779106702205979482422985409086618820119043410794006059263113359370456589475347283150803368306246566835964460506419450889098853989809319186292650180596351101326127332191711988312834752888864552861818149621315376159058944375432972512363345296215077733162506893172254331079894218648501613696633999058929818061484389399640351984272311489728312376736802600596276641926857171642911768905199330604264021945544585121203244123244451535261571179506025442187190741671751155449277766739738215031758650954563841240531060087765365815562725893772516447201650507978431889775885324157619087421587814231194839672389771787655155789078875353620169752184990976430660176644402328924141489221461661953112699572908283464118885571334713250301415083156386439969687581139515589431125717407614819795549051867094972312640253603012840835002093813177580486777885641321594992485114996645360292040776237280431408950844955371363060962455698970162764284890963116302668704854323140902233759645213577288559993007201934905686794122562389247973388287398347806076932188517486917522169768177190815756569180213624909843223518054200733724883079253116741956896988089177481965986230808970227191593813076332556502406497577356433602134517568174811206579089207974190466670475126706853363021301246589498924837092252828322269965265623702209289159730491356374144244943473383007821995266289122110516795212182915825060889458326045186434008930084142289871898397034285245229115499717094204827337917935424214308115957278850911044256620125252904412969945670392750085720557021077645454799745129648141205882763352410905383446723268597410431939660919995134783254531501445228834889417001232286302675576300193222848058107208376799995332854013793007891919242769586909069816802490942811024952852226437081766772375997265034665915896685240475625304007158281673492573999823286629445221532604920708522363319293316485919450637975449171634259978552555234686871169779993789978208547103287918699810962944714399793434122750560521302118086517625086848325717786583174978063949987064809248161571994024752172345872897721881578881445097574930357723685708609510178560217204924234292225664016400034547595101515558790446615432599984366167202363799924711989967291019480392830477139810462585507985956099929554766111900687102881008505376904832114590220098839509743136343730338036090354900606462551807167477674070283505991637956477092354755870091399032937922450271215955561265517413563387599837980563639317060641863831115752752417764037155193160547500210435585457042729623048791557545330308550848524448575479063792571375435575138604483740697505601911863570374636643527898473166398820204604721403928971188609092318353124975033375105756909959381111438909516574261512521367694696814407471580023577388430575449759030714512664851423717787899239748355328747455570117980249829022448223198772334390198328162698563500474002350350565067636923919135721980235726922754793881559925210495955371514528024935029676988819823588030656214242635208985357434262672381881428233728775901385403348817554211463780853797959671720355066728908385487181000767656945446196491492374833839527944566233641973496454262786810737791408031867176127844041767496421193982488817888205411065190691025826686450471878034226701493788072748777159356913140789095087643783737174490738728116174579709903151147880181037976217507108023565784300807420777921646541668086009906860403431913202450385946992435911353342163848715249710896331294023401153234532367605061443057447471572819797470395156052537390878290191647891001221443435172188440259648608557556708380501859589026814388329292635467908873420774672549225348143079169744466328975631945417151972589394149869335802433163602261043909823619326501625028540783551983651876091923390989941544964716284631798054051989978134181625921273443674480697790352040698238198006532709989878866869806520657424634560856322341634994138591578162808907267762675962675830336645537410181316911807266241445474920738033615232386153800621033784547664524323165097056509591033704456199470155647836860186580728354103741128304386244865923040947054945265531505060273696639362487547186999136719693211705975428695803177131930639669657714268192993627323333317890647418587679451683620274016117170515202204120953521385569877529882156837174420298894954519573487463215050334865086725346244486958857971864316372226586456377550178389116937877218670012405045874991744217979376233542550758404227439358730603403259638489282769534935911597505112225186780923835876918451941743385814604734899193459284528308402652567720701677310957415058444549817324613460587137885464281562555664067304927364379104199576466775074068184883650604524870171316478545024132323181852596928267627681144099297211383242845428994457907071297766132944373891595312642331268734045905968020790555400968073331284352373705733922879422725751899058164420254517794430758106816710564704549049015784004352418828018283217472027978925535343764621426536974380039135040883535602018103770399026133712139986096530398938997035607659427261314503507313549344694243565878591459975428921228091807395880036682603492003590741124155433666504385071310893916463770744444605251197994228430073541225314267992465408984464002346732709248720408948905194447944836406511673190851717187121259720217826267269402671691733708152119704174677189561712246833729055181644313183085652688522964256066316565303591369348675414821236346141484642978992965595944037277720451885156251951036962338568555368703037696425276439558268855177146886296648432335029055671652201392904967488640166195229166269660617870143051965214959078987921714122799904113869780969767117317618170900826154968416433045529043295969554012193985005667194571613841442461498991952384859814288461085760136708339220862434678662926863346556283929156989141341213276592271268558614232501378405340278048455534754154427343456372766244086187824731655304399278302302247673001262960467693716098187855224238512664380054185173892780181568881552738414518942569201434293693397302481898085631094532586328795535295269368670739906796663001712185138935218732419041443928708251505961418892669685143228082790987740599174229872778938272217285835030652306341431024667658119732351040766345810908690218976474713800615797746740791183081585196094198261419464489492616033420354235493607331991563601856179482597774336421781385839351854436885720130568753231909744543983966985176089255048938964888180504156445265161487637074056237580727269248130457291140997612049157389569362586566129141386003882127429275569889189260471104206711331381028571306883142554115402438796201339670153149906277340578667042286677500914347155671518112452142674674635837146666936075799487834449468248631412196138806172511196131416524221920589925547598773770230030889492566454887542651605170454067828366894477086042155159961419815807926962853216223929282535693500231290742696546416830525965341382748081586358680973882402273280775781480039484683434480983333692521682663400383657099211470517194419241476654857286942323420733991151854062478438792380874167335405216848710652412838813348065534320899633901837649235375733084987175539458560604636388777916755277677846180065870367392450559542520222855490080550454004460689388174160835168886546017122014560085326738161364043526637928888305087777119877812864319333981102640992304909519653381255409652028518864422303310909344451662334839637058943728077320786635815919379169093072243950462180099901839618434648724008319788854049152570086071953043051076351021798878726242687794382104010688178382181669273059227280510451458464874429824793712010173609143312635983839039723338249546311679623404656764164019739896654322921724766618664079931215903359472740510359760947376001802401564498979407505368391624183855024523057023436485484854655243447456308254240671382892984040007897018830648968145218491356641136986761084426082894638654261267718159558799979857303040757040328075093262207705075913064550543474786032699036173215548777519106336138712083294180026431434639890475495058839671120182798926618238580359152954990293813485341860926857914917969050079650464828888424578402720388542210074970948791926310589597977154456153824046469322509990765057706989267664139033443933853790179262761352537057920664300382117424691104412771858759621806959999202454873579700588176212532489900062440063959693412628105323707301863317839846004462922986118693574075748718761698640686087853358342016318651778419523197067248115115490168977206744018680597579348941823865578095289217817561745638176536429401382336802018447656643217319260794946941852958752668489048128256222409690067825833791820039651848139003377992051477993346358300212557644103986903713138673528644838863029842459933683587994094272177581467510070649297678807482857377014269644588669026162655979781449541739031229680404047491916931720104382253481162448397792787015615519629923008603761490474382623694834591314930728975987747110593689695139324064509428610626677987557859211019490538040718765002163568200023978053093895737232214164271316843821212278912404824121971081668713038728957435248720949013025208120595391849914491644670640661772169919758087841936654526118044519172043424166837642034990837210841190328064469015558983206076000703412187439726772778384176718075338811775820958973396192655632654556200567285235822374986715111458145885490213725363999087117246347930701176910731530314127892235641500457178988580086870875977798819050974353049056452790422181206810605052651188773231786346124298693294884665515062371111732542596702546771504144328503234956428390528484659264692764569139379776884281492295344581725982381832680749053030849418783662503123157418569794346511743902546513326244886503634536493469264148708125425429931172805597456651816361498257345701892813779401548575821412695579435943137337146975350034704370719005763885629132424396715640976849458508331338189310006154940576838228559729463747133368966800092438881732608061938878585772486726611791201043710296354973236045167064661652870423692766502056802868818027078408791112796232793520220133203869830130939276190833405733349936377737293449327542869260113047766418153876944779640679573760151517891045723693382872973470519990227865115638861801125940029139195395312464404157312254863685336135178934171489882933814385832731308618237120985401228143618269085252351475167593081423927572260948472938349894950115476351097840449903210972539111507713780982786531183205231776753147067597362074280523871114307453528826473603607595460196774767806435908801789476409975564386418702958675528341373035263742723565081958578886606614287137778642675435420331723938021735339226581881675877740621456205380453499280882564477169411617738572691748923874635131559394050754735705886519515767890951270409404426002364085967402294017020967665473101673617718348229533097709816709772110069204817349143892048695126111543661330475285907400848321400297625037005568228751242385714648917560912757745861248004345856559440319799796410092652703488682194371681392758011849884545431451996296929599036032624921675613340297798380361232863822325501587376554697569734320893178463992549939063764393115492060609934108468192281599149725908256023569133469301701680230734153029371870587112450002907636216192307904047305733009038837711044388303233326866697368026495307679089623583228421397642323500964531136175339602309984044585046187001930952464458404693136309034016351724247645484355962364632601998072359398050340865625923142208870860747802103976934439146970868222636853458252702186468370953571242933277793140212070943408895013530417611415848042216769715365087036760396967323807213435309252881716031501574209244893241700307576628451826266371597366195365995634592986254018422290886426327488055834778059580247159363675113756688911921660944138411829680577250169811478216482266188308624057516050416232600313201760571596733822795459924411452610863923790956497213904528550015851028707511059978209025453079312414293490915832482308280210564203698141727304229445420799383776928586611519016599623924642189967533735056327524385264240067124672872776344580936609349224216331212333085565742538756301223139984035475272796284451042680378838082036964777074283071026526120175855694712057546361415389811813967893142232331763917964518899762865759984792067723236292715149653961763685617986794518566710216323736719333726028986352013035895437526015907020627630710782173835190428566647939963494851348822422524505599154772741812667078361426205501485719049936413254638799207195330364444059038888534508614872713289080489660481131281068523017894394085459318777648709231012279187621729205110729300832523214083380666184720824666321046060850619450775011188797522376928426327652827907523607301281496927349286689514769931664306238080493514508409136198373572762826292769559104257769782878170321063858670638645286149560579672858425758781036211029294239987859827440028822850329754631656229454023542125950535732434061160341955031967443023483346580563123935968856714814546943574113238808259934324438611329204293833292287572270404086336407203861554407508674230709125982974740337195873868986815458301342707639587942387577551532858960911897027073169599486911671518641061145495908957175851793383795918150506423448674808931414291243194035813944633763118841966969029236700493286802516239204611615011953610397649898896777588180467919835552137151078289792068330624913843594677061845336861497353272878222375927241996253578459213491511513369549493079343900163013083935698905554263264700064159532450192259495651150418711504308245380094509534643687911447987420332360390002731296054664796935116103013396069522158068231797784266608097736482837972088030381737439897863576228836373908018124860137141728746206417210071556712277641046166707668021304649452355784547320195900799663570303484172452026247183702168070612264362186583886123982536382192440323623761176739416101474441193701942601363019302977738273592115925589052156554374065115931175250095443450419679488153210016104641515620626389348457285003191305711660672203508740779465164648030803115230096805070207730723936286422274898558595842473405049004379518676468409638027432490604487416103189467191906112011428848109004351719077540709269960673063257623203133806722020720990965014280279823846645413836655992788714129545988931570095822480469304543631103918159722216966353659837637658756575204052814076191637275869951782368721563332582095367927694816303240462706600082710437731205313127684152978035123257591612487073330517436125580936030556585253165521580455610452454157697814585927186128899817501389364621380946343484365457932722400914736361609248179249213180159142181100455846385053175624968588441657847463610472777304874356432339185753987196262933801623753678346444461592237024172805402581844309194517158169194266962942478956820399815321994419649100187976969315292093424689183905023332680998635254641166249710811379319456278724828418997839334253309989364337410571270343536175174692813463564314376240787174144461509032219281873717718975611289137346954475509559883173598643234283167928134850176540710598113263887354886482758248005862424787247367342549859001126116903844143719728370283908800646394001932928070554655895982830869098415491488909814899828064538869310142576680794881815370016497059635596937773818455583611042273767036376713133972233726828314004074532841129134741353152851892802966349190158771968992675475551197029288317617760442834593307381726040630050040701962465637424580596980210107028535037093923610249911716577205607903795312153605100497375040669769634817140171545315476477212110872487402020688341783601119311136233496780941319754019291956967072974342267363088999926873006160888343467142527954270074258727253170821606703066451715571775802290054113968650350313475864078625391769438437194239493160908145682116040604849647153777902521560788487365173318504815319609999365481888201962426837276266704346488331055923825056725106312838437892823759990150790549868206812290218427840814987682522839713978007444523820214571033415241636236243930190955128875560938905321733425441459086736055252283615995774535256319009126993904240863953039686237027541541315532506710775268891226801427851469841605056322722840771975585900566432859812585232652474330105294403430725238906128248543549334836390104388976686758694460877665111428137937902747498424177301481072706237944061484058480540707337789054850746469031252795493105673701742757325616136004052751972094803670489744927750611412094941131364286023939477522422530270197842415187832764520389872070752636016805872876222884132634396493094938872773142217453032754260126259176243944663292996876931484592064718013544386353681194807095688613444630505937704897472869462088788153115303572802268328278506746864047708124961474017937504206982234083212891660950843648646751029967245028939351282822890973467325627605242792536739006847822022328811107833994881267846741670629946580132112461654152805275821225303229710344304786310300604823836010038504403173819853810263634882102225668662986459721337069074328763077846262252348948545404611027980457546560032208433643345146061334456141799474884525560113528937850715562338993043628093684857095606338336801593381171480648753024878412247661300028712221935082764048057559606508321144840958957421497653119210037114886347136458083914071870313485919383251861021351366144431407435645718705717688388668692008081962451209890065083716989810534698478452801275594226958001676437441996993515828744483862866328005598783996078834526868984420973563589100589758288761787607877184588798696443093530104975804284174117349283133577867265170766262234695662006138731299034667307537908878125228326175189592386533122839126279050456389476276518558847861857893272140645350762213386678780393641676797034067811461503894772894808545443364030751614112129742400720335943222516130257019377196275268595428007581451987666282810406590803815985883209223379466512059910297559478110996624403691040781194508378964500667053065278319380600425889311016702661142267443840090786589741213703457234029967521454142041562331816716732184910708061098367714478152825458303197869166448670248848251601144856661925893537535397042281202727201787947965187036529973687356836645342320409282616997184626560935292064895096797789657241407608335937350975960486185533813148535404188149740411599529730429684388889507056651737643391168495507985428024593304209664367179744136755052581802651635856636485627945878609131844241140651033075701082401035639233367446188361481544968108594045539904634160052962623631206185049186588513210793339888082109343282777411543208729353685176186130428657267553275029875332426225983680448862704857027156971941682269387038361188713698131199157948825771818821519636025349008341856631371480055518262240543056180951377848300988477386066646299142717173850640257926911101369623781957279440119944288393056383554407721483591686605987770461779662082808708355262019858152601121140384160639809906783857862723609025593496733873648488067238229300807687671938623127087250034630397257473170984596773746208415717354022511611566166254362022618333310575422141910841049842063276285832042580403126273529395337098832067716613891593027545887764876663314191621535999322936575963188054597187629026078004049763309812102635020489342610391627679217512574760718294561525310574956894198815207738614954420400961296155783582953949616412634608042192827747175555506429487484251732773577101924056095145457875078360385868284831902203532380774884353233183549347126963715399784223581563924211131535876674350723128522583103497906245608914369766577366804751573817941389225339866895144519101984725490730563984476241259452820423412517802810990789798551757791959261406339685492093400880942854307006943555080507919950073249301814589840622868237800701275179824181136031520965729373742698445303356861223663493822916386018337065626918674567860871277642282315409514979975211830925264933634790826804375568401026821072557284851280862056873664139492021998521979675670868581018194661313240002515192605919507280557977861635780779152265760185189762498200810360788942181627048193987027940519413089391642755331795042532082426994223579957328416672508481503486365734827675951003488299609030632218242944223679778692323859808434076062594157041231845220775221298480343966550395618572038416465262598760486941790472193513963091596536595597707433788538551260671449496084625503789895424907934324878766206287130035909429026159655542920792229382577365809137906846386659222280348975513404583473416638624719809635597859128839427604015072417858363517025150711934484118715056461278242012749676757801662838707658301113778497902594773524807436551727535578895095113431008278049792722082664444365611676478531882363102445211147700552696857375104253586389755532036733675196580914777025357157751290681818985228692065488881803755393905573567619052711853448275142178800360154484502551722488011486087187424224829571592469789975522455965811308762389544516646861552953160934448342676071811795178705422107266875584864668890881514846724247965351820989233684369452506678914807833088512401108009354149448045865250180166814213620102930272273679482400454703640893088950806400423881862441600180049784393453781850435281790717098859626121584354297596654513661405413743504605376874349677701720518804286240182681253957932157610134522658378293159543028283721573003842416572309720656749634862159236740163806921512074596761799361315704126694569913806282562464231683555684423808950200253447058542484665857004742346817926415685862652241117801823260482503931278277730582041199379836460411479322355418621950613324963531536554957616800406930390945945856970915436503224239998622508509194114200206409546573852512120388487875683355348173812468761763563557499482337695325479345634321864553035607985525334922567439237538640999090900233670009979603971665323562656982249894341151611267117124652320176019478169820091528154145078846728649207993781228862739721288134367283918057535732501611670592649792238312227386976721612414705280301562904106557683789469207800807172941887659581288141166462491350759748497182748408528475359958331657196150457946587969544531816587417315175132320355184548331682836200139260321649176467294078639976764001560181849705753585419348953165949599869117732580854860185134043226791040707994769933905086783219877261690495807673444179858865240955309974528185838984944494028245347165712718301524904552564411010456879960359587597103759113546618614639881473394925075344272803446005583956784943143773761515924785925544354033548034156698218248802404064639368631890755535428050180988566462482007563610248573545193184762075422196413543823168472249079418454740701421684993373437461042207969775021308395328900458995609515314148026979568391597052884079202504210606911229785742859639010659297931134947524667327165012614086868819148257579157040966823784173163857173797721599164410426056914459883212920766030845829506811496431465392210817347197909803902961099302358839983322290834822510028194824396803034181365631866325490987648036564466059344637871560251654295051288596057320969211347245932252347461888159958389797831516883105031951326115347389230390275581608098295330411086534319211499636742280519303134400221895262917315004651844797950624931308395666041516225738575007219853483644618925155047805484592198583160714941723398015696558119969694896934171410714574959149369456662056460994466843183566961830132480043438443722021236492258614880441189435631313063286706354704519688664242171183550422688937719685019566872522965106498488996427625373197794996810402992099998582937084490457778980922383338493577169457077366559142212865412626460400027743524945269995422838942838950814675362863796159069254982402829842764583621612791303971828993999377675615233635922635950910931778767226180543719587170326521999957036161433231035949311718856619623502420246042871023944290873214385307072110931411756415037787678861613667559258866704681340433166733974187722342315899655549960560069436112285078948560244917850752985470897067480798288499216166269839296943470146276120031436580854591440541714035593454004273091953054081266169813187645489096685174845613199801311908513709066539338926633396476046708816471829098487081289418997091647585308236952035474788923250098598752090817513957084260957625663028466932009596970672150299085694393616449465481161036896932853252864796294389214029600254189490360988766489269600533242238813456715356653578054310880519281261033115343304866554777618552105313884175461115564982632088667553683429488895298473855061916900713450090151147519486751218919542929288374002579810061974371038766057448699352817800579066842970295931194503321163432769135805225125362610869531034924410602305383387943892735266377390446245499026376610194332171465455995542698458838712400965183370228833698146186722586303987937546707950235539668105229107430538047560415901842521786886658847777918432005095550665175864872993007066029317928623045434084628140808862000579927931188859010525005944364193626718271015137758106269036004526055234566111126023207724065220842340732012197921845244582930042837943780710155095383966190985846794928160626562992715987959926674077782416722865021323908590416308869612895848004996030257430049614976037249744044454361133735112458984431781584714540332790690053481527647860784219505130591338606588800404476095753484683505405608483268092439630220988003390254895845254819271478328385009206244399844942979865176211843115542400799694029025566657725951578565948352547406941897831605910888800112707498275565681228852533510812709726217637338247364576019397548636126973423323020406010119204137739527600716272565316157406315866821260061528310462757780330480743939627845122919892555511589688931895524747139503749422021745868940712985966175198294352208133925696589100606827344675487950341762291303476828648226521059843776755396392010101403750194930953594478038199545613987374524046508146374169029503119903714056502950817581088623917556164855375453072006971700357587174535722736401863315273409771744595912427765283488658926663441627241824165926268907091653804876714406598661802373468984808209663919110727531219273900763209053910336255461755986274855825528801330420570501645763894674972957184569747462890896576609375073257933559655583503612750555470491611984250108801304010413612878471144369813933490007607589753126565757913962628355049264712399854275437906526209923761869250988831180733065033754870912144160688930114053489640420273538179927611197300761240771738825443728115998326708468745157382893098079128797458462649864294527842003554529612365325974521069218453935950388428777750277871409828435823853139389485280073574995849615688763752850073568295272438004519584770575745868121042719833014474781262157375860581031458029382088417556613687354506860993419726244906196602752696008613601790585426514877204822440962146098381353539170578408463149584795828920048887441783647849963435013448717823138554560509540927952240695434056273646595586322154039350391316298044007643730235582779066652579550768482338824904990767411186750310749014641711326921936735508996859108923720728376139468056578645745839992119348642383143706266607388326413474118467097698776866876384746567351049956757274406409702733724419088912110442638957152994484423489234220872671741087373671098030819550035658679110575591840984566840025773895779178495655717464610564328083089920521690664084268956953505105292173546818435022336642963165346385596983552196330960020724885928242185957053518108968503769488024292085478891088788732033872351249640907309126666300878942774691270171168228225504293297515742932226388257527547648963764035183352304714322438118086537392375166495156524220280461514820734037417417690876167618960954661629708189199919156906016064501034202229024111691048289461396978382730386645409315990317330650106009420700742436879989970931119254768694932446885136830903716042625948056205140697134374465291704707415539574775788890462583346862593886250593998036012466940550280634266618240946479359400920224848790918336203488406683540265087825855145461259204958580302434389040068701651111093996190586418906076504416369619181053832577349603728586465708917111275769492264381480720431198348585499748465406481351159819102254896148267679004799138638596096580630086300570227142892167872050195281839024904706385408513295996287722645192987957927620117286696727704688787048797728658377649152929264286976637792720234676415892450261796921713078740291767646993194251859452159963669098854232264982130740402686973611206392151022084848607791089586544895092290769838381608125494518028918013510914342434559853724293645361061805966489406852705144822635828409878622081302022175690501037592062596819690032596149647845729688505624051711940113647709254383941610737892873135241406002150870496781610253227900822021755886430090078005206862003981839594441480881409032247166208352496839865505532317050458993050960437172074953247531121401982946497891744433526887608526343345708606228337023548171607070734610859169605231605398337261620885558935383694203916460273991325389559923769143561568455995692486478495320234696990455536124338824544641370152130776309192269376709371171635350514045552661167577160939341189408150808412459400535035088126809182294919529737384689168357372356693161333534844640454192874842109660952938895429276990249591910659627206173488131189706403997897076285127758838225948674562858881016787597511016664951087314449664647540683069231058609255671116135228073152650781868177915238985649342659342430284002362600360246670727574191232966339329133175566844931038429220565400377414849890635057519089634965215770022413123670544566785097329417641563965926173999893219139836813461819150742011852227825312281012376802643958568101211144198774970519621467355457302549174077123668187106886733351670833421987071848276846208728236022582307985506448625394336974911676280582854816398948140206056483119091948927932462048188433843573085440044921858789310420908109198212833610870968190448835453534641877056047240650236932259210884126154164427563389583710861762659633144383788941272829867835220666508010493836332090643568651836863258249047744446636815200695523149071514994914471012072161959653026219960629564661172648999862363924795783505860912355782487498523642935211683862401369063244899036166759457304726870128353155409884416732709721145511376052566696375090860965567137316329071776279066960867216316899031836681304095934471743106704346233787804937608042597771089475317612076143608664462059123134669289119584826971556342759964289387475827632238485376177727105610905237435956212240400774255172820482038954088723428339201784034528735448139329420204400789299204087041474189258499791583338045049587313673475781956782319092728372673476330889030313497816729432489975032137621502333789814061912192195479021628867777056150842361705247978571465895104277087312833287024510125519230506499325891214617903907152572530373459737767382367516427296837388288465664434182142588245847621050971826242038868653470227038359116852852738855193050693178483696323789878694481265008897381709219198343647802786788928451985154425323531084756889160240271768372106562153282324666286333927005017146774813514862865238397113847740991150472106905691609959192010191269906400647413236533747578322034004778946196226045518334322739861540739777840062130603998073335538498782633866502079952519717177174329812007405608869524144511838944779161573582212059158356906678472752499072295712769468954714335192729557453822570196499496136744429001463149635029949032668219597443072921913013405595505223589504966749902560756902080546105254882685067086063893671258913443517722725033529302061611871540425961787326829114830651652249765395625197680586219831950363597839554027855002782194276758238362911588222352306423466133297245335703959324361135129215693357627119141917234611380518568903786356374901600899425564292779608033868565965125636773273883128616135812326796838491032769769653555033221120288000439637214683093956024071508181292674158957349593094651238236564846573701472832753283271204140858255308421413930177721181636777069040423524093522036805007464533736208741508923602998058496060788946543110509911275145885985328269221213750415784214413754859190411889117590412829645858469129462434323821171149003451239065301970221979364395070640354829038683718016605412544524974841315801925464101553599389959969651951704967912249754232982088728336019946996561305901154183203960213608717945098705532620718715706919003502210538475815714417203289809167680415145599623291659907776047057979067160962180608450640459481306001577400046601820447533827217846007063642739636404491402306770242630271634893527176451446199116964291506050016318675959107760351991401634974079711917118993980664689621977936543504587443869028519149802347103581221544885383902598340803145558552725267534976694047482416118304307988119832932724282893479855359499303089679348464344237820794598476764053133201458902190177110636117219092311464266005134509485000576470806272504934060274438684058220503057349663507449199222898608848445576773141520781335539751759186801806012301172892658802419733828193546851602930192840736269416194368115912408362924003570737683926897918007121133184062707141417192448682822104353895923382366863624592670187306230854640143558992076127430838903130454628812328102993546049466400330602182435477985480543742349656637330737237866301724729561839677808516327879403756778099434796032877305307088034000144732199629794967609137899762581093989159972727616706160422675560699418956483526939719602828694181121267740232223617738214465550931192805605755900326948493637598806520478463377865260105565910567101306234186144998004989170548277324631246257083453894316897670118792037747537397345457437265484406327679914709383503547488140924099018263772962953975133555998396633769331845543893911362426504396543964644078627399699767724784435972451813624938510937780497408958701634936639290537610372486915731046201120063489244363650550357426775357299608818337100633157879139490521826387873019810505913922060978997361428497319487574574342451184984513017143082801052080194260657134309600814466451271440548486817561969778934916916047024484459212245360006510951952604370212320654397986234573214123414467277845897086788733421540914410524737661968805696678646466625245022649742415676479370554824841463886095467635157615707708217942233574551923490605936166800006005989823520301362492292470881558356809415848018722008555182446832386038761674820072038138712105243976323239389529017603036064200688434231548220190881094201840569639216150556641560000464825941326419095278783051395109532923784813732521137196539742009431638247069465109901185428256329945491477763587167459937143483762765802824783826756987110227778400982312686748317073134739128567570916457462966555699046653475028205048273408866367504782825545568280511326548531637470538636920173601112436594532327440221535058942455761846664974231166311876485180997341769379443460913085989222918461154771676720797868238758624689305166168079169092422521560595502838213848616971943763710668157688307532117237721629375011512629060166146376738986558195964999101880581722354721131984276517298808747557322343932240400534343372434984264783941795983363131671698809219179828029799348115357974287745378116448668672780599811367961199517829079027603374681956200877139634663657406367253768991969550120370244271264349438647552494696449709036741131354455269370828933689782746378424372903159098009678284495750498967813408292994740673658894580969765543966555282933330679507553188300035799007715798394187074663391081682925895880388355896710068332220470311200679850992100949162547732492139776064757930030217598038850345329464923754710487569968029049548640878817680328180621674486474426132529117811926059163675867460548182694361082480286604427090561481802644259306890726858143884280053048837522889163717146431226703529007874885548966646535521012667217559456681252095052630306112513085705367995833788509065934801143547576954376413227361298647105878067175197913231389328017888489228897348612566951549631754417640683190098409582061972470512756983732747889774760347417894695516560246038544837091282420431172391893835279721758514373684212764646436013095292729899500001429308434925204104071115536559891983250579654455965983071126149395018167215453304853399056304853260020681016918625433969633161943665498794834144100422783806819145535261600858968055192522038272260303952573601485488759269794438180576886887737548282041449477370823198065927253423255526632129497355997313353976671587308195405152950528585848873251503046330013951332670581101993480433077190225749860664161866780943159853554468026171336776294055414778061303584725058760185547757468068226538118889637686229947672007704053124407239229160149211192893473141727195027843732326078745234077465081710546831094156734573174758984140079039459778853105104072079820742911097560011935848474450898725037534390164617843513308736189856558143185240472704410319937704797585073975630510164978191394023812023680476853815975578203118276119523742277833816744082527979565314311677977091105608319483238471389911421544544989228729920841896060010492518168989505749928904876941909129151356949203860914205632246510270660509943864786427697549968852825387404198073175579558927020369928449572466495211003483951991979027990042885720406923063834612358676482933802719059392972812145715642315569664765610473345556356164108545674749520660206740642480563363764027599602809033544632168734027330920730343587550701011622488099984051399996759857907488292629447218937364183538365680069468093668421475108258890122493693930594455413347750909497696825225839385683364027077254442949453908648099094005876843700163491451764051389483934796788386774059544683308697930854398941552207061074499457437311574708165211235056903383597433384153606753739831066277873310060967812861238150680028356292507756920559173708572554511937305151683076415454137671876571762444447602365573295570882659191373032454365369541175429585057750449105007757729478168785074467582380493845643755871938302516733111019740055990416522982346386986695454904249835978498498891279866607797307837286486298869801661939083116459833589200780087396361564474862425372880218967835148563623115771739969646567184264343120571101698763120324622644145201710111144152743336698716350342563383506580582051681792774178648045412271683768237626506379299917643127863732241464478209120863079949328200577028519046789220622773039952744643177379485238816921307354042710294519359011764730812043440382741603033009766804709424556574577589155545059799027174301692125037055880619031403505061146423495299340468788016354652965718810361556319827872821449286671431783277895555582439709789142282245162881149529039230138726594093173597086563364208388135261768794608584258666926010522709512996096695874082119742062886788230107141730929221678953194285762781710237889957921234388280002053556398368502820335079841984177866167384030576956350927393749560002120613854949359520015882056928924335928972558357063502122602091013877394562382422921197065526610549082040161663006667437633666517969861763448738928398800337105325522174961450793717563470864997396413826492915089968142971903191578576276961568928334237589253329172940290210273827231109887214814583954709948234551770280215401490524102601395771246725651709272219611265030073911939840194354979532204518905415362700004980814029876291235004696166240904278205098657289619543995600205095300750062690848547987177883535161623298203437048081891542474835957010124869229076028082690316491769536143688001809274243968887640388997617768855406934748775583221476907948264183327395536124218430488797968710328721115426683513637902271189715518404677435169770690715617567552099518933419415999949288398522327374371656920674328532088766831177001787088858742973995471118805818916223426768758293195508489271498884346477078793003228124052093281146724708339618549726516963210598469534336542608606460822877928228171272310411371473619686095839520692119344527821035727116161498323463109237705559885322612106593589669522837827068059795205853306162407028088790272453852363133275251704028025923331139490173409162353493924978771939364259830852469233700051113231312932987513808573277559318653373693318502051928003196659147445749595220571393366543505811199999547238571373523824667826513318730817260636989388054078958973491132753420092384051927897771303139429753886542665855263592506859295167215042869357831907580966352518632266950479168608361702280561519640686922249319496982028579116240460708431552780668830343471134234930658218057138927491094665835134996040398211521780736563504491835495749795082041049562166483595277678403503224073609889086320281240999554423630749024491582373903430345970843143753112024290141126283506408945850770687452456792656468510716135935781158815131033203930283734679133284765598915764520250446195566081437094770584513418866038552830622852811360241551921102570359434877679164346206550263774179014344070228271028813915724569977789588308258550045368873253862457335717887685471677181535287393188291219341575338353469600408654173951207257751883249825605333884714825390231297150525219616458754408726715131547614911420537514507650634532681320921148067852085676565266774810280901438328491811350135485014312002248410083979364608811958044525254409039424718753548015360687750123146976520952082566358174837306763526768951357597335587885432685612075949241279310058742944907941913348485882253094931458196451313113972692361166306424254385652137655023529353167034843145123353718128615605761475841847697415279209081186017494283267658341887528681034814416765466853417687291286057674248950026619372103060674572158778970722069332545114366180713370336308343666904654493228574716009210680517865906768990414859120119525955844712556042085627061615909467937254771420315080384773875017182458577037303755356221167119473827741171383273427000386977544987522424644913228843744664798140049115206965223367484957847545750079544389827316007359711940367069887617802255200647319702588183137869376960808403684123211239018641117325849659406304937386476308595941093309586723155040981254474754327850988857092791078577320043401964284004626410112826610230483684422062369276090970464533399664659818344480689996072038773681954536454288672989129141084625307882206851953986052573559379824364088598142625879180230214056319964780169812274541906596928812861637093769531658662738795786219009616277053815590355097045708284109762331919857870425653369845970301269580083892091668025624826714549502915922378723193411061450733178107360835921424792552723403528708752338195292698042159088301205694911091562709441408448360025857062329534339536700972570069441468933184211638184327604643336518708902231431553456211623407010296764998411179476459812868773849516072325924036672625213919341984399278605636135227514474225282309530602985612285836475605469709622004174532356024056557724139794972786267211870675116799959123049878825652822591630172778690591562080673749341919620849580468852650549043996081280193014394248879388492145540542666000818971032791221726765829262824612021808631607534594100890464008945745044392228083816294027460629207668313590419524249839262051713013414850074037498775662924657871970965823636714987519733692731908390077829566059444353918454372750508839005719483447738024297005158217955828843349419294058499533612147557486409941063960698059325055053891095910131625879547050074658197145211207115594724820798446077497677814455032397599730979669296108686883196777492701220884286083572427534997439550210107613311531412741154675239419026311637257467868018586513139058003532497355590057929613554667018251515149370926299846856481700591739870158582383224401990323645191415136306137496261244585914301191967780226243435343095381368839264109799852972980098434949322314635157535206858466032437023228275116368060896529008548753258164670148060117181205540620558533988412432051421680794062006454271823970136110453769006840691241741361639380807624289735732452081296277922006573029487929942627647900675919558492512098957645081242859485838470873570006230002944458039578271253843841283936142335617647942982407858431197542449710119546163118797643316180319965548721862940688358046427656099746271341684021608705117327690136140613913995081700357977351115907210980223069969168567190244347263691469220538461452345286088508079180434739571179359997657911738583038890644912931223586074523053230884780497268023170046292866547703769418434296081822237783105548804790509888693537897451269885590092960372558456610533748399766406407102423053029990771801191005336002529450988001927773488725994593148905217327414842363812588651311481177512032777839660283455112091688431599253868212313411133370683153870943439212521178456599960638723055558237943521389254588298714722189678410186418994696245109691591041800895200610429367248822845640086588050342541436036544007815042200162996641813314419517062205260316995544880579285959786941575244063307016032731249465460860567235842657243415622670971631814066163805324633552761190454108905611778092297992781368993604834323114049786032468397870886403778426682912316820420552556303322344594977394577031660155889957909475513476597828499551968495897405970223100324270483735097385622645995771930328685745568786583780230541269050105772121549224907351910774997846635238550163205867364532435073100065126361967380010521193858872404243357483970945111215091333561843487727281102341192251268518176642953585174651839944165250616946579449749698768647245220817023479859632071103633768815774573719416889332324619287830588145795311650928019137753452842011362311914365170641460581986210932345107692727403149482161013688910071992243777765395080474275604992100730878344313434176953557308586420512928956536879397017919666666885663791200802440902733764877292025484597816945810084327313553978931092961364415483565649175069419863203047027323873729304310553939503836718174909470662472434537969476801021830115590883357095886352184430195112952955393358502746120129901532657037087238612102977048011988912336490326380022770817524531165572767558568905282135840867141404302658792633706835394939193971870098634764133377490704217414440420121135539117056659707005367621871238581199077203554854593435077754881346796354650700803360156333881366077350563286518555999046091755758314861432333186081809918299087790280280521547716088634870592618729126825250088964667718908560394759990673869332805791386670245378323560522927177577931744346184438362596925972007061546215908395890637317318923442887778938205636205533512909394446023864912675450437246127619581435530800321382275077298504053392667686362520883843936070966264598366606451517559644141798195770989789713193347474129561693783762015222641545572877388021089753212351736529705924169725565099218902975742456425622914662493780996149433339201376000871551688738493706012783695605997406900464047880481259016027960362414345577756195907663765154036804212323556115650212240986495224029091050839531678867766998470047110294654525305074465154855489517797865167848374681058687544480844924871505462271698541723782249557664045165854767145716974537075579439482245626520947053304388064053425727868113304913911115906718140307578604699974912939848031418073200064964945383364345596930101884754173927224741987987011783753940558115116402485097145919213579509878716127873369573849569968104054531188489872814793564394034343423490485457022621519455130718129565546643022070552733254055374226008376763072233706573509856756073679375303001464520351592531383463164142277085486321115537813247877525320196042289853583586913101218824574749931046735802528722035496936878024077264813682147043442037571795311064050429809363378773991102450346590546552391906840900757160126431817183608068932890102281627865261348633628608069730398514469331544782260898050569758795803566732386408234575340986900415871876078825885016184994410282916961765825027508096296162614909264283044115908699510381995335655516336545163970440976795047465341325774240172263125924184447960055037575774790181868815534734361599897083291219897226618871820211770732238254849939023094513421820581632534670379380479299717953888898132767445832701088437609097048388410788324890595581509949439022570766964584289205988340992450062034076405279621178307648534365297931810984272718724886213278246473031994902083305104420165219728563629642811058750002020012175215658167750005173220578961635460194534701927518000236256011869122862873895860846616181149588243994368893750078804644862085685429529250686437646863290365656876972569997411676875821718525256526210830992264409979337803961214214470951991099356907217637995253340968017022686486366688250255539668252390436375887794364633437344663780275589762825701589237738480006934939901903703768205295435809707998038083074874540221444285137074655469682904962632235976264405081442385860778696662374126857656213584322402305635112398616811135482862161373621592485856129411801992495315949016817212214639686335768650955707735545544839845888736852000533195980335225728611283642793877802483924214479346874260770787725929168862386019645014846066473228348735152246362431341668334337681160216327768644857992248087898047897693506629401485396919485787215213569906845979873628613664249382143266058449045396651606485526433711425178085851095109735500473487518622409346844461643345344763518785213922255500061770676645885248908471044333003743915882271061076405798139629849418066829874152093315767285938710729083090546628627361771046230351792208227644478114723654459736630652386876160666216197496542645762109609999100436096182708725497089044004383458518773844391881040775209387269287391408295804235526109901278498089616764003972546183845937817334800261770444832808290596306016013178563102252189163513292159642326588345771273193062780994476930347119365429605869978829789073136482585527048251119115010589383217452926127039464643927474957938200512711778253751976875790377151162634520484076852714410994595568077590457366056143723792337006183529435777604879690575560666228269461712878914630145489395234890870174028491066479540455147506645981774812003738857680486678453817332039317209735734608157045020936853608440421212860445935815491980614137057118126380864247814838781028221704971560571058027315008286932404871677949504680184615585106056711513069153018310537222683010134391045013495865495994976592651300910636634923965477816526260028218527582835686033251168036767243928599491839188342916817717029862791747407057278010574870596772457345637977965206627090718263739590193215411668753252624204565848004237696839299938282279898060293869485695856931416825267155118590421118473620681164216284449218579438849567272646628862894858090440656722662431695758988195767781743655117493133192892571449491635138132266548449328534810616375473576231913217845059233280781452179600867799610640684103415830037897787471825725407302714936790637437472451201878586593456347982950546131143551760788700572620517321513515057180451567725425104916655116956303402127795930345385760175912341381561462514929814365183926053424693466455745927357771315481139283366368581842951714858830274967637304182322850160269090681256370250579678942110370016451771913211531807491336515441820341664246863064074650047289930925572899385885302250086891118033865044992049823783309738619023649719315606650891878471333189737066214020064632674356533504341014133619832722698763397564664375934838982343809171728566968768934337212779594570859426196877146989759871210938733427103419668294896381294561383105792618874812252528237385381125482260750842451941539305294025393087269183294761899391242813506516349681268412759064027696557039483076000032125745360638532357775897864745838512021111125448080953097033511869458594342037371275601499014217823051307681260738893981048761777477372828862120971019694091746255385224510342739063516304925718101922807977199397259503217349408290482485879843160985322304167510011484664666935606887651617475794543529301289760729203453847156168403393376567336911565341795654575705136002940450723995265322381739745955101651965894440946156604147717938351656188974251115250707448148609725341912048489881232063806537556242531140602704356168164914387131590749444974643437695368879315667474022352567668389481017508292924347219376597923029374467344131536368089917326517964401211499954776305252848823472171532664330299946701344620155944687657675985968391083817451614860014154465453422386921664408852532020297868291401047180993348140700452544597859759420678716868009762463325106451779979065074463034426617507011958482473433131015722480901155271353909832236075677859275849240573957656152123008819048720048408989256858314585597754075556197171634367950417833601004119606186385355088843197733168190509533311806530196288678458085517363892775227665201529131518250953615506180607288396431864224497150645438799634238783664237498854936361866656667503891521664612784273714535455346765060654685456160330737420121716080059346463066431212105165284000899973920912956426208620090528647592927284594820925395875744017154578161938307537524834470966682239408236157721748263728034445765248276563186608951550996719047830489006539327429643401002627399540828586276223859427100278176927069301435616005549944166987602856505914921545971889337482867632170077666611787505289240549944708148272454944266051379350767133779351206345870406209884878239604004189339695778988283443192403674534699681926118827838209682079508383343600897196203038308202831985942954168900489712227049910045215757893820026846270668683786583428890060154496275868068810688818368890438776617803366803632197607753895639716245843314329307978149942634000157141836205879501581133646219510271875012652528941312452752384956693413784433638780006377981236241467845062660790154754192756515691621684381241189669607497424019125995160194557487314642006134637625042088286745444318292225415910718428516447238137573763780947430077186677437554844700006537909176779216851326948429607403860728482790307802534636604466327927719487873720968384135090503376278621425388897621024550923466398221298650229647411431721279196456163293411100915130222458340822384338947585015864017686643545405410794771695431248408576415643960123086363874546502760779077619595595449608525195017358182680035961566146241353955430086255281314458170061120185201845296700141710749095049632831386127003030259560101169131797466702148823464978539675335018012570798873504699740646659252323747746168338102797616392503562576577873439257545116069610574626239421309923792455033039629192361116282180936598107569383343528690770297264166281462458370495194909248434329097146055683500539794958284992365902278052971757832287319663658935402092615918304108808590753257007993789854209306733070533366878186999716409242716278642846703586814425378120098732602058163149772530908429773438494516417165887424243116611908710637811626215038990248520179929206275353612364221741310133534160668459045799534464057367406964978279717466983680517501988950602031879830979386234062908483922935377387802186220167044949751359096536036049619243902388692713628409091193654737965153271991351971349132382935152722096947928818840505238728257007119364234732717258083324134267373461715209034912487708062777655530166442804138243890486248390718309099322755059615460691469832787625914356004105053629396724638254452323857036948754172446370387635641897353447547935546180783133136579234886132055841210646788325744149687360407490579309074541003873979209707764450483387144500816186469155551200368974241322153805460093900035711354124417434346989229775331924150595493631980599978464277102025425339412314786966329654633443522563251737063485695335192579143175543453389026045321018661637660913411080361227425588683557985508094138367382187204254165561006501783296572559768157063296798823654543220396649631600582123040989607972163240282562090429334558966687979699794864245921618529348841944930391736949058543750791017062944551233581056494909779652313302001954624195372774525880095960891676284660694780063031078131525136798538753069641914810641804194364519550445124235358726577370180768854356210968677879348999062614754852460534637291516699962749282156516903215646007413869423524758161587558308023103344201205520791738379305925295608199884578001050198383724130985919498266000316385360047048296645756859553843888912924145386966748022898289776886557126463772663653815802000224267621393138563568275794953219044400826688322928087758399030147368785010087240514435803990427515127907467752107170561959619477588020594480157608755002025460155208577219574626915160025635152227734661701442850779422897919008362456261065940965855034567038359984894340241741880535556701627781109900908767898043745293088238622253217423072708778810573724950264654300089303201499568030440559721040851210772444438711666241919003904684477833941445343652546350915376684970240498447199352187902430925160307262874658572183803981100372992273886852759959952031618145845790694234371014674571404275316562266867797079660440719606300356396981478753176587009002822633884478855170983690191056017231459733047974230475895944523193825248991145389887683267364192183774295071196865980531827503604714613573768348628418670818041652275973592103379666515041399428445200987725873174929514690162778212235096868548150113975353582968518004188840367210146192530786787900085788621822820724723807676023773214819116732548380468596277749559634671001387212101757035493049450154097495377850353707742615726629282318277818485588355101601368936010141345266779209334622621810251617580481742401191224138947209450507067039791244926009624493685510976625870649880237543419006146629540910850148624997241286289052464550006286474588987512577278039214503050576455647636146419587867712307081353550303068103866608695907982187426304884183675299100161876755740332910635891474891900524383985840116661793965662974824177698659846740010646506171557334817100295405813792692802330709649934790752198337145912604834669667940791410187378592265336195684302267954573692764773604851324437933556443229514007291994030899322806059095706319935912439622043724887627758414547999049574697528562321079333238173337291565867102368549217175611070414543962297349159377528476197535569667174753871996354732597413712625661281931075424325682041870374269374326972893686667426073572354345395260642420750032611471457264178568573909128637687222711383279658824254937659702208734483925211531920840038980535914488320182154852416191891382783579978216330671471229085855774263225723698780526188827156256182259755964364979392392451979715569131308290690651848267384664090214171580301918978991308178927286913722819564613823602072293984358539655519695908670632980423172061511014043931850597092797346932858756009077473577080165117016598721969281277119308432495999107918414147690816825419090047382956167869100117495328397022123242922398865315439118636629523770372681649015099948878553529851586682334903905860389116997549558456244613000921831205306085336875765020526489826250248322840319501004784537599856158888167829079431798006842433148834040797874834689224956449937943719773226908715814613189914683765341601432148433893006443638652697118702654183832071169706219879557548061604566272464982422160474314340890673016469845501340554905506566156714735783569584634547227926965931493608162733126748539018289196698349435289204743498700333000711257420973025389352751317858470396115062570936455997918788741253737979919926532324387227918945313374555292957875278263645059605491948360176454019261414073293780896366800051630790883139658406653125988515302885204150737898576805252056969187977858287031083903338183098541659907115013808358288805525362942219600543913515933582426451782442459114995520940598937285243957491217080525153890098568169140954058405532422457143328731058939797123657729679446709308286950663250929957374734535309148642190109613180333240508688150177643872580991396916861151343781175004614117256805452019501880320839249298560573543119185840941291927820045365969157442822654916731492325028397978831899275455419660545457757685478509204559944908624231611072593320589913335944198003975909153211351628083335001552858366731692048283853314884799291139556137562036595424154448123058627950314187074957220099411913708614765291177606092245368685730246359269820166601100102273201306854121684328830455714162153232828106593090857091109527900236147770326493572160654621436193639958823454616219094095681231097565595660279431988539583126941355991227972691447858680008762854839551323653136926675103878170417165969710265490562702532126841355194363765464431180218780743312436442034017207374767958230616843139820771027409894065668956066853397079302418859326755513330886611286742695000921293394525012373279704304901631399081683162622610904688673334752803272480846588014001877737631196439452354125658061439352775865452316187687772832865232373568529400206334773353317652217532098371456841875589817125757131827800865652864756939856881570398426400450793960031766914538863369980449022690780742256716475114388338883198973408176065743140328752890166460249177881031476649457185529901729652033660091231890745367954381010231279527129226157453363056969196294222444302426228445587639366319578670145369017908802679646574096474148303944659880461127499416438916475310544936291156544980284050946059059343113096455945863115640092234422439753210360722989283259654619522400091470409043439582679761006124851853299079222304945090726396789580677915002902358992265954002314688543200689392719566484460118679463360809446498132778411078181916786685643798844204632864337194477990410695065386559161698620385642938104909261633028980370117462107816791843101774413741734869086531876422594951826753231172208442931206888663634389457568547944019437783708542392847357104047837291521723554911398495707986665921922315821794730714919329964556431222967474593785404820836507356035813128010915063751330206790207232955720134812885826544237173830073954082507699790755139403696573409391217441515115299712544105674885099946581709642730103011742035445134702250912748112122146966283976149413581004450459757781295900581721333694109536571018658071016435709407685572741103460914965176831025310482139475549013891268470455305425187718483701721434322634834978236256651851488909599473674521492054498956060704974354151885984283620538868417887079726924744759950047012043302466559347037692705737212803066357475744295432715170572763656409796444778694960416200767800043595300252537655701691696944244857686177083799516840144651795695534053366825988720638853164473987704548311208636636503953515637944200887472117101900680082204089743463583906220439603793425852084465673720821147181734441622212957276194792530116625713441182086392324290119631587704453104154416334523067774702034887250264343097659871278726209980611623585744908147035438269617434245977393224477504690112584752095393613942160017332762340294992857524518853108851700575264086998417553259389077953095325193377615913614016585442464914789813137923340042798446218576918600832040703324316288807475621973949529021402968743291974754401363736762605172048657655934164085783215247835643377712471782969160313213425103437601094129272437764220514354551548464785971555017421739005303792524286760750115700896452474906738895582774094907259761948205248320652672161833740941186073435044105809507592004119779675291412727095446217870435270669224087767869994891850152145099539705419729652854623772584376285775802286773993687440262543436995873704623388687384783259960166804552760505372367616768443238593743198001296156677833191102968187132801494100624762440292437441983539831101867282679815830457425647499903503750196919311571370752489805161549929258694863700760444257722123157959990117180889939414420340831514931464417446424620337411359428817027067978482356761298755360063904012536392999310205561293435807799761222901038041135281820561957241657946402154245461659880773725249617705400411895307245306755779954964222704023564982069914847621891789785779766414044009692221971311947618679181433989825904318123668611748014763671657256742925901545952152505750455043039323093123227899430153516904793182682541131869532973967444435666354303170461559294485885484633925664233652320295300765903635592325845567086671784360496929498005363468658238750233965923034074188661888369814594191347432217395110139502489377563011770480304259509575384258258867190990337549037035785951939131118733518596076589947546625140841887544920672434341904560201482549665276346317730703302518145599737428322244027478965349329570945510200432023301078613747451522870744367832752255711824545526309706537024792163727218179632570500269064877517600660600817339094230475140208259876720270826299353044034284512347669203147801228342046464855105053897952468308401040367058733303836328875684197087204955307341077706319609554273223627353815346871532223235680242629770186982937965688382931410307991085298672426599757103623358407480868683180320667470532279021599851857979663305652187125664528967442682678942507804500866813992825097261213029898407120152340108353862557076218183037541926061622125820625328419412260031031079359363215342203485364477363863763981197142773729663307570120362037923826091176813601978354317584891990483367595478576093250109479414273192256937568460108058363648236616906008332556755786635869855004621647021057761266589426182581402458480148558594185262470740537624258789149921300116782677617222562509237826751154858635518211436388474897539363715967391004038195380778461475011939470930335459056016495773260683335751498942228403103550449079023702381040119017898060068727070664612447266768078877480503667229455930729312654725777821821566091644656843501788107283853811937787123149888220925406361405613307284122933895109536086522047483650424039244050838496628795850708728093607962136278334875529654508085287209593152299011825162301663921364987481291592104291087512833534453402124734800112075685427089597455519778654155918773533673872655997806248108051124916834092688930790116915746677089496292273580418603417293028283073806215201290543706152772722159557438608950627550173542448276912848734667472867936286774597802707534940452682517127983423377217249457259028270244305100452767532398109276274929674736875705844781942388055570777178077205234987043280136364101012094647519940731274997544534982799014504739286382108691054231536346219110507760398255160099162940676216443997945137492551147974211303750695700929560785199529708694853584820058831977918027663448964714233904478396130158843640981318637805851211499397980318550267287923843121937004873909409965402995444009557883050655916959598800776384121155875475754914307940890736231525601883929016208348959931711807635236022749862202431142533568591000583125527693093963101259545092246598268278388266725934986179552190168981182892905866618470180599084358494461481838178904935706986738885503689718682753935763369837355866688851730242804759416572698220538085575905586162327735492920974546341016895899305624278460153145159977797319674293469333618262819193866880705054946589359129520631290592078646510758510010253752997685852012487016475013186630393958724495594230997397652262881827422616826593537920523091641787968586067479435207888886642785317549630218166051836427408547450935473113337004449135506872568278850666273145910357855641167206746123636114561784054606875954469073465300162637136731787381338826731051697277332343326242385475808858287343381050023928868983355572898631098559918582153005519273243297925628829806093494435469378476259501717806228559294105465881085902277572144336098365849356934719080208773200980352251071433731557012386999972777045025050177802989116175241714835310858917131411699116251885583506664780146166940292714445754214790567719828427484568448260292971747889459565314963881075285174140094349588872630689671062182980179920156654057909018279407630251737892091420052694740222479135854182094548098099702562822192143045725945294748025399264764907066233969405445184680523898378329681508307974109781493228186374499421247955608479869888617005917456308537576115028577655860306214659497060078527969117170767792827163995103790388236899415167327330369240400961680278893262978568627965565420871435542581266798867402272608895174402896167803590837785797035419704975310405941608338820063422475783975226341603623222886953694578303339095041661800325868701431299675895348749921048020161899178609941967083475959431860212745565290235459993132570284851269969519194332352008894018280004071549148646220234601033216876395146461362870638660942858530912057784178307504036124370184218448753458697413609063989357431819624457622621820033146504692434386293490695992345637159751115931661197011393902552827461178718569532575905723691508350365730798080651519492914027597490634964490907106618101744522902884087577408225822481144881863050897605154714817176842765810227559677128294108261292722818202342485087238873801502810621221549056578607511437307996473603162940353245784760323813104408341200387249652207579877446232625369637557346391011444186985681504728948394890722330248218736613797531784822738810798646571046568797417629864744882899728029187733827046231582003393822457660484845660112177839925190365049475105906556915102330818090233677963372339507793144392774829938695352993243066738610626431396419680899246826601889757003570997445784973163996069539194442671920214522027615506367154738189674472718841104664099609814032139139123893835067431911746582148034982597523053215841203370950235808046400890598275242159467666554499077323100717175293127489984592932165228902678813169894341941574669616273756460146584611375000429260089472791889865601645315624218301704705887056917211232993232277040737295462524345999087345849573129084082023221388720771719778941396772937873100094686782241930595312598096719679375123705673923449892047899948896944185244076726798172847076090869577296579706619855399049410568236586086088475088339348494400366499899533533830673894805311258021421672888271380989868973096532532995374072213798102690223894770682322460618678094462630043356142766089931761014599203917692019835027712522725335725022662123984490213963833138972479529716541524723222386848783157946908599906148566237226336216374997149801992207699390940796493980137721669832856109684406686348686801266424646131323890108277421206672640385210898779812577772600685390023153132345121098806285990189102610521275006157184386170124147402996211297461937853313280182269074115422598545834458178775380884592713204823318819853255817428305402804658038239985295812703714061757354985284579793038064738477756074438420398704783358900368908358054595824624974926052903409361409425288365801749996725060402266074607106736815381877418386526720133403272162386977035450128702495775689199707002977575801243582857293758253045077752873548477281691150703920613765019527831793792790652755666321693033420147528696544753605463489791570614572920223022537310214337469599693094805435603389936757936082739095563704971297713950245061087791426316658042883789224325056250154196917846592527944676296685148089492335743989824184440590577562619948467302436419253221479732938257760551673520088076980042293732278657050280529117959847619177718557670700806847709567569649249730227619122758324189740590862461564156969529218029559385530659403506742902027730076679829722925085230762713303594231516423379406032761106200758888027123311486318614311525538732708297603961601356970060375864181246816885730506100632921100370524990907675297544722179706550430750395402615259533703603376537807809026068484301313817729053984896132096388126329229217234911887596920141308975228769463353280248827724078836588715578146160612805849132890302201937228790431667020572868419909455095543123106617115461101195554516753243766049711889603048876000737722119980682625193004486151383244789003763269826590707377866350701401402120128413478589146478604897833450526446651995257343506801366242878519331515770906615333417214523657367733145013708124077251354437814599753477863872201710551902312975586699164223266809905569545929860405181835374116102213370056089163143129043095200970862379273895759922594414356557676965485766883202510840234640103830239355650540928757010887907271965586472823799325637453158102155691357543479134703254388956293391861983787859494747707502673353315236294723998436952369799375116556318269436800290241337922319796439044229792594932071584725936216626428049027735396879270470587052540269650396572946361639127309978706210604553049806351393032993375973547869656885479689362391886142855357911083866596500102523490282246290786333625023138166819661781535800372953592551368613238674038644846463729380621476456781531412468094412069986820001183972302149516387507092877178566656570049497577623191027895371299808230504634245445606117237590294271269790383819038775870980049445737539660388505816732309341565292516342522637423630223772064659058051727535775205887797221610069370858669879908160938747789235484019334256069255453095000734289892089331678719540995853732299395732882074677789952305918178854204415195029723456719322123724186242165910332914129518122504396615617543816310942627174125251865276803998160146732667412240438093637090525624842939157154557612097189105187402943094518281918988216770298651246637147303174912192043939089869403159435652816939223770581946098398396463057390181457770709134691925612166269863301513082001383873121834758376576446067122453745789023543583844577332156080341400028607508164263443574452710118226556654762884515746915907179470308395039261722777775620444293770466193807517369950534559170901158972002482875740671791438296197190964868510046320314845125152327135167880772823759598874487763850159620930128471443444103317416891038149899969088928951599841911923678026890131248557085332158174595668383875373396353434970913016492134440325734983786513084949641573333896944138281332291886656586272385917924366498687313625936287114178846872663089736973934309642270594910100137924178877038540804975060506895067150096380659301042628846334979486174893955166399197553552493404995566294927681405452677289171130226080969961023704577193686813435266218369887443196943759281865754498940466784736587365317444910361818681976153156303767730572446530693559661493445837793443734121585618311334913940247561374163563025315275864642374255930479637502222711481525604261661240386680053864123238316181335920907309552505620593598834344317533719508772488058922480836527267985141943582222367597127064404515409873571178406181228729698051384209226904187053185160357917065471769310397235811624389482440816045064054417072040356220279307289862023118756614584360621271617200909757278398051515238521962240763956019946352319011121620986196731046844427287998422126756073035084199998696738882265153918690111912102078806552987891531550072818027526186838017505121913050528961416782362303775979786153937874559739581604691302887038830415982050928496177095007105028351112907196928225593682404525413404637041492923823415256618137919358890508687070327461487897283887642663322598529647349584487987184542309467837530721584137452592748583374343125436151494772170004910051581787575474111049270388053245163252351648857300687122212435784049119237440037021086048288083983141228855693116802818609247689834544088471054086453261573058049464907109868613176755443587904131714949795492155475089227561953713533500434643545781929475287213576372274768204920679121126387094600040585223060607554929728697801081240639098182643667770169742166594487842201399078061849543754742732262861855823798218770381938733371303523942191173199260582501533368248157522015232348684813586795405594965067231289907972975931573433441537213643842485335881365675375730417634920181157071010723235798375717829250135606053963179924127878978211987473661996734193591392226785587593940532268603440579285082405145381556442065736783416906036232912868070334624224839976476144162594293360601964599622912288536280832532102957781029988600099865694096802938642658407371847339031479462155953097809398283271975814202059588145475512630830797004913852766988543437177680899479911480386709833077637764681918595840706376206096229175318243781144061375422456008407142890920808043676090260154457134916518515615771478777528542786130619117432606636965515781210128375925233540367459039979555236224411374696822766299253808686814837216702515794446249209683609730376654281243224497238055516631418044743443423756775510041987113289665002963804269615398552694419338553183307179705270163847941349800172379553037032968390724988483626633773962048611302539922426242790720394764590892382499442698824558386817817222355631744221883987177708057647220276293767418836768911941069869904159023780231479749037287507166472125625974060036797709796639420258839888645684044506284223208799377731709155808810455492702821074101004247876336508185784460197456960227877436473244825245823030902093401440924881121606680856895609994152947690925074951044076891612916408756980336029347482940772075054343001322528916516098642847211447473979272809619795469182994467937414982782157270901514823142395511100317261932340008240244512229789625600658738697032156252589901671375292557300188240576271713009403778893990812674174713066805700492200249296676559813970536030364655220713534634577893585602882149949208183126949597228999982498271064204369186924824782774172215701273374894298846267067531086150746183017328152485105452935665627161386324021857591096831291299172793717275000869428780846505477478090276841707963285120178294758645725845314296562420249192926293753570072249094930937836544782294310100139737666604102198314574235945250289710260717361373279616397287321057165414276332533192888813905673436221027820462274332040455294153403346215136556608985827024815286945767481640344904368330828690045198883324255384637463134943944909417278749508815404891764388916907339539071388879146321409590144067596109401338406801644295386064281348486465440898511269959438584954296277127965006858327816205298652955182889422393967310729618782493229506097989720954298879995322727850482550370770995235075536176430069042974384268687421403145321664666095076891649866790913766177385816484579067939719577290113725851856194229392191780470863769894534373386104984011914180924143198150204143325833991680138350559553050084375865706473133319811372355626045801972894744236510097589125218350176243774590364425401679420629218296237196304028370792804673398071971804780294753218199468251268681245870833502516758698551311444018284074555423305734153619094391931124368629508527059724308595131151652933010786392634540954154595266312271463140364327403767997849866601532524087879076772995542630712182782229547222441833330135088870606136350875074051813798866540610152046580583921568220204299870109952316126031010971741806790517843829220975245766801001190145967246297142124784479472610896544509358174628987702072247116908691781629713726553705432208518080831109602971015072430770190497244449714056366498328208212784661448888800176224931016223429478703970529074179889671834928194371295743095066837802015174766904109135288795054023837723692109334723670626879132584360430483591214662817740157420068331890079611677288268565653546489252196640597762351214136811922034933239231044454601583876399159685689559510479957270196667387195465701661451259652817627525918543449413209642789406466957815526623344443030961202548922457582960772488561583088867394833783976229572891498527884520830952320819196122072848644530287465280647413766740693547165597546790403293556395833989962977710189315170716529747501975707080173465462433027392448191855007114815812058738845740656536735711545636468155729744585333306181128470243465259602753040926835052378950964599581774122975477525112584486735343017407885924940740058558046927052238667755433167049716260202430646934396281734065292985724261130909882786171932525509093297072316353294243950186765489177821880942429001293364959654436376261283156943721840255957180752894112031005782789511389819039526056666613257319399208131614521289529467287153450353663134318643070494126374644893041198603366212246765164832484791272650769960027093921366882570185941723051653631107545868672328819100254698516899164590143026331907521914058797526738661439578334703949164566981350755006509029299949539517561161994977321610762324575710939845365891941203450366842455866114941416585833548762998070344984091606462638843309370657001569852536318557815796488278136709199726290000260153579891993690128297799256491292440447835255966290488648245603956863914844309859085414160945946468519258351335411102964141587931780009858974224145086833553659311490559992815112291902606713458178468159182658196494586015112420397194238212790944210167356565935956167758462061324954699775169866837889994655343086582152954019012702670019076957375570437831359748921720399556020440694638511016571348002621203938423774319534936353868049842452236821991990316537679402496981187970458139392754070104059789814084656758619416906693543976920944106083349367886415588521656248965598179083908725885185716527160068585529441818688714038552127015136563154748589529869144497332371403852206536108041646606691013755991509906748033544087132353313152361090415523063304303525057946180296612168806306992590102535699624213977973021025913406778830690854717585461812934359569842136683881111619775767296734247927323697842212925989905012342744568331919594090163164546438767437454733587618609057600760940840154037916742162476292176237190038659074005227382820338514855826717578397522382747450345076477551870331232619440309213504071088605109953723272420422838523230918321458032491254924064501431580471540198626726641271676232645621883978411931908198908488577333020603759534887227362110911703849326888851368458406487861033472502879799302122490135139270929664223610355178375010986496571441801143615002287814240289398849672348995422613178091708096601331062132558095897767103722220017934969048874663147116651187608345317068475627432078808487207211945823810354360075484803485781482507983281410407955327704221267579730178349164181628666018075775081240162107035882739731384209785427385971549644380016803022659610981440565957096986047905115432180971759105045745610473610718521828028699485131334943729456139177702284773732923740467762359994182952277680044687282377922515220405187435935990329835222861231331371494835442802871467933338221937553842794988281445578834916592716687072292139124120318950230138093042360990615189829781899950295511587943290972725719850249914575112488888257275589494510378151894759794129232079390419369960641687409307860120622550309296416159795090332558016798902859350763495768012682932463620767288021510441381523268769942438848404131790622381138545883565971456589213305705385568303995972616637647708172251349107001422600640061253080539476964507140747051298572683540630090898933664262938842185776085007457819415582983772036255307947866454296179550646527797167341888918909982285789011504384908471630594632379865427826992130513522847205425321554533713015175608191968565607646130124053958802581331751477306965252388702852922691489723455044888809806770291318132097069255681085462402919764122829300471659627204290603795301018175701239597959885435670026062283265628985864018477962205066177041510390564846295483637962981694134732299684300943638303304481622240251164173293513511229992559619867334377406808506902296062057204787735077668458713964131242420940460397969870720152684518649003148413302665411404613132924903882851159338859492928080224138635766895017526146524540204828087957295786961951641417489606300266814888389622512376550509761490272036325129714638715468842045411137091019784532654465473593030648129409167848368299020153095246615567965920859338576743084625892224869379367736198920278597539765486485727149749696912011561261915942638979376467302556413336261525301824928608020609984774832468283501254196127569349884913143193288577150519924777027330465318750271835383764973953283442538852760906004391026491713074532783539593656027109512119608185829647785745655319558805225246795359733520934759560520899509003865076013355557579535271482788150032766112686847492887917837785558476955659118493094256831857903384932742511225351756560492408257624434509969428443176586787851406591301172537137396307223727019926104661342713954528559905922964089469493275989406254237819328267021441903703184447403665978527246591347558421834924865748232152849281691036026640602970028674002682030720468335473976728043866913382811332179377675984103443956334177250703572091078601032899269158451889856440753528562834334909097141887781592717157217047000793957816980753835600433778260221714904508861465834252618088479202912608907862160545442255881623808539130070279100087004555446639405013002357493180905363146989771331450784037651781314697994408524597183950928002140131315754058701345237823332885057913394377376163423705000069210300308359442646812778632065585762403688419841156573030597827112422266965936049170421814631117197518341939700742412293740363738059429244703990761742101876691354979503956131168123445289943749665336165837123297944941951998133057517429270118764148108914250486581862538254101012769069890011330945116550836757669227255812020359772825060016592846896780206108793187969608825959342054340653827705822927973502863244078544484657322728400871768437421025101790738417037367856041217484476746874895294299267197076091353291144172494029604846406253216268759500274250780735758248382524235064703133276728749782383875585382542262004375243699847922857754035784569046870286536896163453264493312669200203777066013617521502901739121535678653402112757424161012535295548654713052238814461592259339534692900434739132521722168976608188227299198170552485870448356399119636172372335939188378324113390321411949366906681959442580024401182095086051361300247697649814982442808883721144271120687121709193446366118025874325055520118057748082647847507310510181461514486060912236665780138848785684653116396235842314613608852521791463518300543357989594040006094845384706384809252116672885327004681576927564772225760059504109994363111761585439271278775314441205291345242946002278809655375017089232674924429574055690692036057094738998501051402077181767518249830226173739908034895638117834103565691899179188213793276397904639736176221116238397421313324997296756965334341527429653468905198934957260184749295970265755979984513588450168005150609630241354489877538268888323365341251150359554258407956511914499705061966872620712692515923374681729299843682498935386241881828185285729036240510700022990364249780164835792722631919719925688444819415393621889474406591916789148091009906755474647622086429951789597370051765914986121658531009177234445503618330051428784250163932895547161454548889741496424646677449455810425737567957495444734612278791724735272619907269827778804105137815558568551440212112369229765627429886463566436325423029295410259718788919239342422186367984336426146960357515823184972416217243281958630385012610264019858095916308122353342795870770821955986596283181238715845470220013495304058920756023339640480022464103492159971908657238419922510566517994773480650541228339781034364407317979204199758637010308035435656376269289336946259651956539579420984498426756606085671628923117682203569191163744957227607604339713206861813880574695729356497655358381257360093277728766883998340065838096206752514054818140858136097223138623643386747142700682414274805296710761996825060984447353590711173644455899859219635940921067512423519073197193754583331924039355402985218828441028490383963672228663065931375519456272059640808432176528319817833038545474615688476739670609586842503327750357067777827238346049592477577494813749375093512014248260897606323811918503656462132581489974681760284120043367648213155528205765449215794066619747106968519529535154198900424840023613878089909316668549491357661278388572919880447146145268292223029074294435059772077159268705875658915117551894421435456791139136164875121985772125444198744292457856948429596881313801853162647570250871361954990831530395546907369839145720336677637766286787422706526418046337346450551492961329467418792930977222200228928585879118407410188639005695617267730663353409688679008875343264885598880511556516439168423698598759457938296595673731743989965472712601047060265797596708137743748243214065955435342213814373006208711906635142641013215229681036028724922285984180486237228016458993286581986360285174083245647735738637323865502340619404558107338418361143825110798929386745658216122096444179268197738720629475605185781572622150413624015636198914567864564842940914842276708514689108256603889591462713210014658274888182306332236210355067902646500310686217327878114817750916538065148237659303677246439152455328877659869279390228673681925655311766835407321368734106887602647609603575616887244307963424425533581646400286129907808404310141259910512790614220364859658691977134247816857071916674895290818257611350090314258459297638272423877427436638335709389811542181482884418846273337481736531074488655165253276663070286960256869752625734748377785193104361816435293521206875965522918271829283574773282839343108383356620056456619069164814466843823421490211719023063701217083264462516584201164587479899053809890305983783589661218118462277771942790113010081252083714100159168998447905779247847747603073022118115904037367061088451529900876366223158654308670474635827617564432488031665542152802588998692135705317986874801118896587015047532274751772578107256436365740759295669392663973385195660064872015656553951569382018926555267580504051632308717328108866425771135314779698415253373440146032971058644945524616579352163757799952712284058776192437527808452660574166186888891510216876005830576774354798239992997877601091331339211343872558690995710258789245149649584090557465403455057091245279348973343544864285289302567952087551898086600926406596742995083507097852048390057223065419662791425798934914830028034287674835750211852375863261555616985024310672647633497666213352780588612892099988455313780230403423428448321251948390837254120707696184378030633324660118057246423237347737078552080185040583731874184034857984759488134619483341477468791785114938864924361813108944500705162833785234872193511180403241765943392541204805300110351707749052235416976956075836391995695242460610508612574320075331655077084830274889612593242416912197861272445869775626431339269177118456081564875113887905464227099051501661785907580140895336603203131934852991738789632044016325849475645920571819115585467859947295933136270430138095597099700210746500589112681352322107309667945353735437438065049924489742094955077528753864697141743549195434232280883369133727324771511681227709368987695286436733251166621959270561112900056676482108409269612432032196160154478508334668180702286381202686740864983240756427679958937031101425002138243455871034935732634527284079619635975816668618959141351670189374131127919143307014527153894606237662264833411441079977337333468799394352638975017498480730726313105087579285271307056589999899433837260246788901704460514493127312325476722118951169451510126319293788775577639473317835120962617495655290734711609093885031650643064375862319732560625823547024312093285736590635564513789167383378369953020809533394724429965707147888706094933006635559716644469217572626010975483926409947926683881127415957404502478309462686399941898308825506808177339568124342360793131607265134978903293190779122141824161389059988534060209822251779454811455053684389266983909418680354417747580233762351447501575340101379219658348079097097161769094277906773940561940543674246082965068978199299200687221652669653254693897129270926165987369537614843182177156172673862506630456513702988086977436383237665396798628948829795433168688441954794657898631793420192579204752910314065422835629895956182225005005610576829792514686460971664284583030985858576425335479986964369209904053689316677469177904539990696976090345486100824687324410296964018832602174726889446094794815154877911147128585634596376557733692111579456278616128687300403479581394008925597509809439087992669966956223202293287954867599977463409025865428106716852468829907271776994050339100216746462456210944017474876106224093898209540418846775132879020236636895922823161778014228005239243176272146741036981686595234955736622120523271839649041483104984851019349972034174244667436952650407281632988756324774235032645017675314708179515925111971287370953017521033348501472768026947368075789516769728702810164888244172321671872433529751782358549708636781188157828285064259957315398608421500718851925325761479577862200044675284763634143713774756723670003875055698981910086759576581645701096616538405537237009206115686684794492888311496031863612901368734913077505340170098678027495344922550203036999920305181238181144959891506567037381625056579485082953652740741253879569222355882831132850500886083171345790313526286963206908498557023563238310299027259597735178218791893176512562067900774683830668077250088900023758315375867286230240458470091189467251259036650012848076514306572396165150045875890277868082466671308376667492795891737202365104401199374950751774850779384300304523666416788875490161530213086312798958716926517737415617146298439721229060317130977340209201154523097435191796446901544112016214298282593859806666398933899688934317827660761964312443193600060104822009479406035673695299772218035985234970818744112105195222714901306825288418254313837879545329768564972134246222936340279218753669272920626954363022969681454537574583091269311351929478203226581399249014230097750148741599231398348118431308990336752965601539819419621352117749821202197281512550836005504282272749088745137996679915847045661032867970882143527479460972497384007530040439922886152892048003367507290480233303421899828721360570731841131190832192708687589909924538820513564501918237084159913375471608406538720999608730791385407799333215897268749466630942733835851326027104641264811313246330164517804399852981376633015428124450256797875364632299875868338886530318027209707712354468154409662055516255805363310988751572025545451500988841849060210753384461485682916096029334427514689299075910516909510626307996310075562936130847548298790363407572084099674605314928998967738270899131566825741827396961585072132805498680950643661073965130787336200597551962612309882888402977111502204614189230476937948255235508483329776614687462545940853779185004311470724871437425088566844093162053211007028452910929567782220100086174505893234918841075008193358707640179063891888723075685311388532522654686490694568099696531604674892791321156972252240563218790891895743303019370235806381807019628736561981644592523292456249855913074360401403728638099781894865243257744850576510319951134079680978062794397090363471857169251634837086410450099532279670693223288095833470125803527596567552084258041477781057842994214830626595073339967188904416215308490943844505922525603025091019507749566773923023090913975941884537906196673059704143736969958718433838297284918480814913310649098868499466724600158894386748202447065474088270055675736713008287057432839698103228256903553577310895092726130500201023285090116744850394405972602874226991353088222323970576496857208893890820530850797385028208431609062524032648817697042948471711334892168112967236108135423731282300295339293731099832472720327945575653642218866333978119359860084816788458676959705344903342268423412742497539317454386778216850214542231012575007001730553271534879577294378347083641501449033518485880787895149555682888375946839378715768918573895679867360302432347258715612077330077264486194711662459225482092428537231298856351242628365817025720943979654858114105613423401604719755564604103816094683605439004914591678485240542019146668567200506221019912970240152903764642671574554203510909463384736473120112537165357696209508680956434762125909739857447789871639758309849673345589171666889005721604031528935396919220261809230853479206551803771454740566241538267837139449504459171883245091485819036954892562978921323419499030910583778029337428078150079658191467714873669114088663618677207285647827196290027429294006298155094321891664527931877493860696020952643110735964061118170339421649983317740591189365166736858252811905017155153458918787190352418553737538836330986846369594041065898083532708739829821107951082801284983264572062200618101396155568507733944487280919515235489754446985179813091794592065164582431498417373257715794202404513474634522322786354378258413877807987540355279107592264530878918966902264658424215304897522595033904492103986639835921489794987322276532179704065416278682311440608357377005993952025770647194540908214362393334216727503703085141819259370870363098228317901408811564464198456634340596459569908250777056607135297661768406256815605028602142095487058957115951828010527709707824291881117665162646029038594746106723675954572039036530412380938586602011149888866916639263192818192503827718516628785457171278947143348079734198707701345634073786811827275893356814628747580023274190773303922280982277858023362753787744945468420451751330222380636869204663321277801944603059044637522206848169848206177870946623331021119147204583090433281824775200878013686936829475554018229118792830990514832558492255850315547994519720644239444019457994669453857549779450242406798689030944930305235133159404450789167234032061248646909371332658712423759633101733898175779693907007184994655947995524251409499358762032146816343669816641566003805914446300286792694151518797315917529135071033754874430379286790433073500242001215048251182086579061703512711208321835690179603171489541346276828298465183724116210507702937121765274051132948676262337766764743054055822835235035970814441764538241337757250163607409603397373407738632526510263967141509521511945345025640287243261444948530692386945624969032122624964587861871904545357191543267631488732519643456076256738411091629102192634045346829378688600763929854369164406625468936236276340327363399827108973987571656899314689544296894989149322371134653164689532162619691843700022905114324542804577757939639996260911898741643038545550759963197909748123677213145240318215768615679078477271866996761755696885378160467170947508480516857330719596672835670944488721560737041354025300785667477860602951282273089355414085708262920855786430840792267648316752177452635500014334728364046703837894795354354939248287898655552577788902936957067358543474368802918733989456488156104536510168649784080181287549812826164157991999039254848353445275267302853632400850790606990446065033501114621958573248296441125151828169837035828532177227079455693623408170090602018147192943673063535824027114640881141386159893650574069065776462896654498510245478782305971345340622219567514707346150010937635842520056162481506153023401080831718342062353033341971498277540458770174229668200673958495624408774702166822042981603189438373305684091814166893161790040506961042303262142910993425503911809101606142867584376445544865564857999190174420580344681097803882452067473466819439164074754752016093497122732895475687047106235759534742041403331062078902831775797025644177444467671117478258961476767936875078959438278602913685076332294410297152377004161269561229848659911065240967288333633944916527127910755883501497330526317045028162162045514930019704243848091895387411597203360338932785171183740035665279916974964139447724948885146932745884345532447494710411396167203211164250792559045397457809107933903367048586253068320905175548631257351669556470971139088524070137348398140865312062545785588452297307007141557067825951262307262374767716163983183932905277782470072882949351353310662994763057781795409970734318501462725960352410623661988040818009544191572399859213790370622092641112172534378230778026219221551707310619995731027304575185099609371184420649661702651157500241023103997992698916080253678040569950455202172454273466996180945786692307451148175662381339098786426836612699270364836752930203439811072942538018192719896436354834433410137700373877680890978120982734704978723060395701974592164650625462503124704030481551059673286596222711672927585890197255421907248586083601275648980553450974618513493181942676893404896549655373462185557351888255352112796823957196360237332508592808507160054339245761302687532914649006646080614556957427802510301952645238454718282753427380365472298142475274491928881784954437320418483456903422214522417728963237369577273607400906557218712624763295092164921971265785538977526852393529012909421722850088821501628683893428567599142258740836610635022951720577888807000335169938625888073618301785615830303289781491058142020540190222258306089861165530073841018002578526932693622109064265957405999837284148626305727834624912436183244638299717662178942617090852009950259834951964171423908527503966945355952331467270422214235797471763779344647736431184298519417645075498488125569192023051299269368924903468925985032441593620452803322622258390721936941253066565538011984690897740064886205819012052893850262264336521145714058505112454924601635251605386597754943250100390619448479590707051653639715344934669895386076525136431222129675782887865745406863392348939814615298980073298106733079662496702647843905085112494453334218536731186088034865228018298475860524614786933624276454571838736973327783456118554734931558623926233632489165101265281765516129781071949175265322245832874993780460194976403997433414616384680686512370830660330082306419296970454185274432060899587986689248124687490793796247283347602020405560589819259320635904836194395309047268684806871938234134820158966554769311692635515939325635363588814472853429016125931897976352545332331472632312794359471192893640046115653931166602544016086911629850094064795029933404612142432227445883339750906695671043306283626092421021058262884718827488331663531661690888604338676831147262987797825816330976936189302326730558086467303295787144524464092985401614924537553116087258231995012824865721940460099453448757025357008132198965866626139855636364956128117837529415116504799414536841486195531102028607559491820732741123322149324003844916543933151992995386765010068646013511750371456304843173916435250577573668642337626520617626108054688358211288566342362455803593552896052000318003881545628894420354206135727308180067696404101430392783175660749131129413012919887215107867264749047624765612713266161580918942706729234770625421869507730538206617104076180737747220597134512790432707965345041515704384313479427556024761530846243617623070640942030294112236326166608172923059888491316777869018619409258583169407804798431573932781036074036275223027578723212966682879116190106788004602693658651576277314036656811584969758178574200804795333052499703705206269942181916047662362460797610950428740206225390013073547244494256664454268596229351982094095397126813217941398345179687213541666433756336178091690081936712427587119982251560138289325203189919591178259363563460465949947606652063446434129905656136367292186576092628666762029142925230993694028117795908158519727626904585143132782960557175154819371209292930496247908972419843107794839239133944250842599640259694830004800845957267116013628845151499114213690007344501607427998413206523603803683734960377106844520155990712302239386559807133038220684341992368486862631367651284956384833345492024097016313223496227666641399925334668028695587530395889314255155514968000991254134577511315329182662612902168317313406876043722405770636185465428346056444424934119398126250243450399338286359211765703856319080916131545571339751468723384246854543271570637509202779601911627300521765648119010331401411466987899029526829701285739486367729196893762755624642831158839681348302500282609662091507917848612274653386841417912756530819190499941358006455825598581273899272435472926251143169224787617243750509651130453476543573055216044946604016892570875766418071733050419176899125994907002854347320454309344416331080345334672516336220431779473851959884151871103567982607142824905414341510832815197259911147958856841263214135952466374619317902025927477498785569519696334854328403344271668853537080892855711909926194357639452780773509024393756599117171189678835683351681883576131382771187145522396639588395322122895128283017123560905037380948436265694971289248750237412469097847538970436797632629242386359919434459493269263123240921100904619379087592132395233194201512297450561898985070341130683652010965503791622545793104346756448240061458505268569900651762157204884706069278985001114452747423297310695522997843085405838838627118271397583316147957846515366307091030581282924358546913068391841893576725467517167660710345559266702077476664976912520312031595939880389498769479216093245447647332545915468769133336244790574035393891122601023758453790449643507393756276591188389200475969211476764371099941927180325155880639002930157549215684700816237365832576530884303133502366425929583551255188006472945339029723696258354251346501034867335773477489137369780802505640352692828270372990061863428219483769718939263695472253995169938525202582235670091549925322065423072831979774276836783466844435642258424960336986945453909957408389150493303546027153791366477188086689125823886594954503621883827204062477102696280355555653222649431083458722598156621280564384943965431480289865609926784080411732384118367755928149585908023739246329227415652728991397481791418569391963861034664650633727015953721793525603170748915912785949957151270753331522143975146474271171009272164250783300717283440565237762377002005966995064315875825583451303309284040550951504489694788555547491003943571256232683386367877798195568294832116387094663460964467699693644595108384715621336697592925019341265267199622742370456908471768686743563656391888258380021111348130413243234202064382122568216130504052037097451054590977141397656494517574744758204939458109109175343987877354018091251196755127300840523555803018452490667732139303201673967124690207759485120226262147241210710165603752880216024294109111533156916012705614886676489764463894536286744353866807861645215644949552084841086926296002683427795200313546404313683484986698621688752658895162323323931436480573286267234068341599954008478030740955491718506576008146658444778578321555558270802146011362244747747683062130937591547873443642692879848889941059674388089579943723322481651195742844442513882617811737893919601027269415545310061728858822208842208866394141964280338149748623127262582529094899583398682332116366415570738288968719542263518047443689734762433366547247410342482105601768098455514686312897880697242882861128938163677976473998401347369216113304838932650689524665714459349084133086236337284677484170348637816569152073363494405509010582518546868366678548785967917426603253413174337342046809049026502194623456406671588592910748806289852760156076814344619995259582962048641303917717359863165168426768488958683016396350212473868034581489345891725483912410185453584173398289033242756120205187506732177443603326338316059606714585586059522576790614013577501577252102326410360124029943115940506782080457470388896197633423989261572520488112637514157511647504262002871922389454545100191902937338445897549764594127769191430720494789678339943142332634357376371885955456462698074099722884404055461037904824173196433103464410647876826462964804255929358586884648411611840415428016385971686392328079714756827351968692814344213343714368315150334480089574281638071033003854643081681023824239309689441295218310310959590863536097383753607011508549814258717460270452958309909681970938609724471810180895451725048493241541612477476770181589177422552221324524040133627477409448257730024411599870566500744909981004387559096748310724898713892136206771631058715739536941849086165655142475783955628949237667271717931200194582039033948022181274900727706043235129444530016702274883517955152847873153265703883885164378819188770028022426871303281927249161799997348918825002652577868121687984524158974667225183037557732273533771948178154225960621269747203494713337592877546006951440579470149409282768215204865849889157658250712160037517033419948836389001458076209409129453619411459471511662103049243255837068279598500941084240871900100815918819984577271805636136741159933689643548223678145417323903364161532086013098447431052451872847515574082868072715209115844275991613002486255486305158576141286217239420512990194428800459125274285862730855712253100739745273130139708678098691269926600103412934109986395038952638706831913249171185771073081947937338844395295251514637172999233709425939853246767670433264616586706114521412771003624935006029605142515149941466000887509371158231783790706225468603531899872518981166309381277094729150386328479739685913752332512223871484258685290731418680188059692959901355869308072431237413801666247881995826323744457071211688449934017162503505737779043652684498880498228983044903831100044102030555825916708674042753465723994459679275126220267997958846698227685619979422589791945850788524373973673046048650187785804030776946844629528546161153186596786394340407936070505160008899204103064683790441062420781047660613242115082729651891511502477755382325376051586454143933330263838707154390549102675912905973964757593017795572372391669170876780080550453637176270716557990016035968698951787995983249756094774948848787753087450548324847237423597136227593177049181292122351393320716403658679229445602460527206288915672857220181347225301987590722151595652207856896632226575642657430970069188045342231367909559664303496452027345828776197500907024606954347193138550442940462745899590287369310904189925795258744398677676583364224489395569641064860707694540855895347260271655116494780397806292687374475637697772589769597359658657443919016898666011655350616413788269881344551077466356223373035964887650511966827873592018060327720606440548637637489376328456402198870525304268389684936287605673662680742602280742305850492237846140859861536840006790352242735700415779022915400110333082601937224893884016204632192357989375353013988820037241219735389660391131320921216610428351150874634149775697855204811644885557506265227338916966347632711168737520974944162386576768740984228633535890982559690972805540520074446430484423725773877729158052332186220118975889703673346726806758950552638126143000785261307481202582633358253289526166171782867621660190036121640159496025901923645363186675004752177350607941930238170619661481368950304917571963401647382169915598166629498407846767485475316813041511437628538458891428080548588276350726969818100610993989219367365384118836698227740338043857903174879197819949912162090480538023910983331802638515155495582451703043504408183132247639527268946893172774749795440877850044623035655883697636091551676406397682922933620930517807081143831114943428578282681403247173971663700652329370899962972369727901816899265629472311103332876242100353334287264601147427618645470916314220061763075718362247511761090837439869233475304663031700247817167933912025557862427062303697642521202630469225714801014905951222168864710003645632011347004562297016358202859857930910271575635981150022021249239464759266109004876295613363319131125958519141657780748333292648172361928077496834773776436852367412110336988727712828706855474722493754577745524711360709141248456693930366257719989270587092272854344827760910624614359383913404153991588511257671338264003957597071180155637772430533164787285760250125598841935903204191011019609091754972729444983342337442265943404194786168039273988998378748669051942436726601113341179859912821157968529040992261915533761934525986783874929718834255640895894649915711273816247951722992333990142044153455152324399147735023744816122370240689868857222246461299810539851466589014735040157088037015605657785306910949175465563804575759932718294548013485114718600360454917253107586139762688628632986435877814624745214494405431328090316746779496880097069894354983554300573434960515501752140429303707324788512980495450239463767099701649972790323713360918820666531392038050297727378613704872907365793786839019102361338542054981386638879834065961243053981626976891082679609513065019046840005419487940736254136366720963314391639871548798223697766393954825796317728067481069193872715370803112736836158725317615488591998561513876014679462878753400294331367227857377768221069399653673218917111927051521428659033948499488003480140106986239003645128171499816096340676974981043633463544347531042523239199939755505621764671570905796226586248044008498279463027608691436363223517249911203121328644610579531024225816773518445454065297946100832313094744809130615273414738286917984065653122725708268619435064988072904704611061151801608340724577416050098804777996764147467213381972996447118050941903634434291364613787953727166849139145959529105709089389227297984702032638810210857095611849745816081181157086677792976439119296090075146736590524482020995105840257923952941984718469060429981423124235034504732443316931060929786325663548810397643420449393909740536320813791712865693661414388667045860489843376386542874452225520728230321279379026209411501496013232143249048544914544761893791256449163456259951627216745580736442701178028178907369176564924528381922264238422433188003346143137965530052137840098271059640084775353799104285079014923472258351156844559514099939631501493289674305122306336750826698491742895607012081197494268494454483579062303064070292070420253862551424610691703200804592363409015714972584484974133986908754084445943749875326457038850287817933227018873625273119273762978704844421371897065983300646020166739441841309665339876039449630917808836701603788289968728558723000216009801239976890294338473882146218206054778174106551463961415746495544919861626164266261007788065935864162387266203395918803505813039176420188725040394228522544075138468613170518955212114470347456320904451787703484879048502930861764307054904055287859374818451124325251325604027569519725982595981564685337408546154187554410968541062369630578371259207241006136912831409668892105195526462750673948203318001613028069329346940368487306830079679561663762402833502256636180770650573034439405361963899597977172327973891284087451911185407509403891625011565747936770614587897259305150208364521173361886669923627241271144669695741444691624633704038947804464322141439791478934922496484635829282562199665587541339176959455794567152341622263207751121236027374642885582235266057993028504720680952224862625827822116183799225619305972516634587508975028915300127735536994945666669251348555222185249988116033916147766139725853065021937497592743085765714537893426398630557645493705214595666887796800447887078051172770290138225071993188261206485621226957086573566722596073826305139831672475350559214404339688858205885972058975809333906425710850052849802990964627296156071569976183598405540929109804914008450853705740054001330048247795811008950082510625870507103306918553162266104093656834090354903418991523736052571393849848261897451679396796633543450209166761396021774450727246993013346930970723052251141319439427376760194025419090097513233187829472192336632593545397634370018477144946714801190167783500576149005761530057811595877720098815372533607969585117979652566989388214861574417356341202170336993518454982636067817184136443355601326045138418330806219455627230196053962194368341807203013012532164077877041814876803225541513530063451572446103621625909866834816659338858789739886833025494751175168230787803513100379826381933066216570219821309085799519546869879994603687909261957056600431894089226150741068926264554278990041440767944218380912994888435967256902737996364855436522160984813092875857702124662060547650623081357394860594875673838597409400600238381466221444118336251020658133822488791190258056203799617057693032651291435646744135744588939218956595820813695141992935679368866570149333607285105096236014300823805098844239812840548485154985723582713612601630572441468685479476306421687759211307734430189204270040592381587653559156303037414160203177475672320345539543198125905645263142029803597181740689207514614777310902946740390380415303278512665665136032051154633935124008335717217198813587813085442161290359105927508007114545644527699280992260468715055452050196628667479278897405048328242487575032353777157134025367252385583871300315113528425825041754656535405750850747368491646942437453193104515314183317139171053030748266514466915478672446427204952756591770756450736569528437464384014866867072429621160115483938810876366661039134222017973784364879205133032596998958982831271525995731255717614215351922914139013659365163797734549393815969892495917333712582901937423151123259714263435719799528131213512654770062651471119810166744943482348665302141553184099492268623603272173613881289798398747197244176208563665397443494660484197538311084921984425285776963053274046277959926754072456186776348851769893276077996041966498472447440971678916105419138469789181589148577527545484760530905608628136996566127442190620500698030348779407840352314882786322729161613570996295684942313121683460152507077105410564096961546767222255332182251319725338103451577194356718173640183669974282426432554600168863688579265410877162130049076168791815481115206526533530660403150874202648881056859285235307917112645539950893539395643014166935465029834383544690559542845129798206417981032403468553309871317672820884065985577029225645402205410516704217663231498294915374396929947846892206468043808281018625462221706128402335467580705304499557221547771187034924869981234557100497590139434042620860537812214428454786593458064889159313916559043231373565580051306627600271337233732120299152644267263914131063702924099910379788828375274185266513457357590064616012396179910432036433264386468802783360090107164387353294270324715585545903965744546008895920337083091222448742706071948963489092736172202753500483981063239547546743503723116883015962915880871406945855634344370322174808560228327468023066300014268641867627192342802077112158343987372257412259705090950153489940015099184134225545620038139502390976082080389737712883096773814795434005868910079612887896256152044867191977348740063269890669086368286346307649010581915019160323095556226446885584772819236572996592072698076511800268780801493552221210935528714843698329986734386446110817987732667477773377817813339112454536047337132517581973379756309327906030800918184486250733277523320603861471386079730256031735021282338588992303082580388951663309179723550500024397499899070155116866631436948998202210516358062659887432083614311058051718764216248231371481022380735171058161113739168087952223688598413802903832532180648806290765466243285213508891810150839644765206452374767383984379344958170316254992958217983293429447537693633782619091702146005147311578954354562322864984828423629300625372717279998545937527548911032273215474205999906607293803753123792357665355764204082334308643405150294417553657614902031681855199399136272943440934505855505703967346646948068821574685058726413308114703868976564962706439732038941123605121117968174302221239961937994517773447313749789106218527796982480364401530999148384057303948187169041963624435387390663916793720345952717578748734056886943614569771946564162632555439132995738401954020198392695197673005382210783412217726193395131440986344032019331393866720081176222630450530577628050194969225279520662815213027587535666111822363054855562132982286158845310986726391488042367157055253102593566519459287632456059559499566636005746424461897758137870387862130724459907265821571576418047677380629226211042487636779224879012002001830126475916793350954212617135765638234542624890451965302115933481511050034558216362778951205515841542905946673109760541098749345104426200589476581895085692438196086752948878015651666286612983046851971878521223975663366562283138686945317297216413235965383998679058256217668169391151384528028496567573891536000032134090604842239875678888549811372508239533573002233749451129254744392958489398049491207578306840844849080102541897443638925754752047719517458747147810680535922077687790762980248299888988390032284482037195224401894277448459832571425291004738787920351154147573409395464815536337895183962460030845514590796893984044187703351758051262987098841897475601507223834973425873014653767320785315131474183694898253496394288081293956098424700495775306535411584692085485602506280402552477015780258900473436038064372443242078632622024609096038761676386183104214194837785000214424525352059646020169846126945241920508312146689363432840294616303447973446443710287779978614613649731571030324392955494530061289137681701262496057761700436566470224566385997335463079721684677513384680475975791703099806020664212286107465730530429352750211659348783177829402168323247049588948121713856808818887726889944381924817827407132320360361408732481938626976393081080809406984753503061360653566377450454042669022413015718407144080736767668735231237265217783374460424268455221061372691547205862259283830306471753598592661281308845917738575926598505323319663416625694052986658065017434973190303646186082573957706612242308864307973333278363234670728849401939458126861354956160682665404743628659428974318117581646507520649723825680386748496318987622429050177256546624168965265741581081706423383570084592215733201506411769875854832491469412892500820743351555492778715065339960451682417836849650376284145600021482170506240746038542528124580528427769168365446479658896527724929443590463874047265438023459992776287970375869266981299374072904773679997465802545671292730083327512354376615807257912333738102506189277212613470230813588174774920950645691231112608076172482246672066762909587296607552932655827608404594694144899506322271753848300235728873509983972671855231395094245570389174225586895111213587762368938343656129394911459690786565279968024881749976864120458559356877739775501744862092602056464408154401247858610015928078685679859413250333272388635380643389939026858244338830330428141932257279904510516177835617913195974885210348848516137447327115607090402618539922111901623501382376008294803592716193978111571410805329605439195208184852094887625564791813128592277131485804696892522590564515005208854583038147001861234656055781002276956489736646918609638796103798704800991179960107965085525171773503570102686924980780007361185126816450381666760563710816636108997807278881021923651414476836543418576883841333005802533835907843786989630296062831841824485129548155697541164343074401817009780481635136873627544455395854239645744045608406236674505340601849922195123961795300502031041880713940464379201854135473932075790147862983688364653903575332799403062036406725735862993109076882994896796937178088295031727055944296747331029567223356863887050431575258416135775297424576194067910039320461291639032283615752736531574998226907924897131331153040790120551338851063869800124322490074070140046874890517087542352246853295570202948844743377337634060659779741052066358277212421094514335095730763969193210243337064300660162591672028964270614209346199243111578227311483502820492886509274793214118175599933056471364715349038717314308761655338113335635625744740067324626528120620751534996684624186894750374818686680526528261836804275509524174723424019887957849890359478691846681555633523607343266057361366187128768748137257416631497847032994217877392038416034358917830326504742952974603987417519653166630838475975147103447520361520397824654307816873567011878918903111965774016391060462848450063870813315644294280382545529709952152115310441504021191645116238910378842511324439058038115107266466306432245596904463007664920080525678183547747894972214464068795222136347658667362814933162792527346495648165958827094728276953587870263079194018737447172071512480878630434704619879027440513260759559413838117707033818755065093501679403108748840624265454497982688452286102563664360581606327613600186498510965640663848987890524492359886336763673562594650220461676752876161496843682154283986581273933972794970754128278321033243705429023759650381973857803122987393555217415593043731548962023387975029767155658258380772384130643824095984323747750629518809258134720608247188863673750945768455242643456757160392582149762779062130620887202195051802094460117189427264684619584504653967766345116338959023002331207869248092621764755725471956144427558617336442740103574545484751760982654685183800991125360169254425645083665574539328898248403811665126860658306277891229850583396571592944625578645605211772937334257255469822303290186915523278224350960509211406594767413555192019678912988244571556334336369807291577886102419861783135576329600978523531089394539056571968616813917937112251109089900174445365076823460873559598494712654640956118098943439399443348497944831490125689955976615898428824007404881338070370821140573088619883149404230151077685974139052961528316177063608261247669866642878963731736821036690396072921888485060593083256085494660787749780323308953083159447554905935671396278054336608951268625776953513702805320432433022584223456498020354231150056035609802162160375641773073948239947788237441101005550171106920880020114056292343842745039699457924031531515628059329601806936566485373988697904948870755239827598921870640838707830194709808927177618644262954931359968007088042347601513446715953186561084062539828088566651087375129872616360496967810667151589809189218350747744713407225267458345210085722434967600224186150731000812376418902363571409594055321000722657633136348667489846430500481164102173009681949287499199119994075318001342908572791521993707695524413991965029751076566546517129499467615156889065465610209961324249570121082886518080184107849743316491935949037795854206555879207161027064477996119141276747532984301725866405565142495856959801889981045944388784246780556211163595034811898921881597173236747129857763459784834787098917341349053557742216828278002941839855074644668823629630656214307118826761746831545182536153416753325158790358268171095403424190098891259460408124404216372335626083587040681650544007381442220887116722963356266238536918738363265938630441434198699191732827385272665939488522506233980854289813070836123311259714227128470765410968267967312150001535105533241390031627876157183875876015315851362268151497745699293746584605709888650099717548082892159918509703941810537593840933490862607581059170654080710044665870363151746386634590029405953353832197206783413250711948787580862658853504882139876939008614992027397753139377332429113853569740316668666217856961354342722887308943859530031739706398541682396987289010043910781947634990937377847494738355435795522566158821517668981129915762358963798478418021132023672235585452859425754837327228602637761278590488702377516697154135201795780135701976308369896034461052768063886218717841707470053118137247001154330424755725295067467219848827656286231334061788418471593558539687725317566949740475561679213943904550476155471997283557426764393863116173813210156198997525570618687315292770040031874388350055540495426663645540196202780467799754117133702903684563515372160901603671283350024966002726999264010262788905468507274463417259132450908894850403538581960639025971334310222158737138226552845629996481649970078328444774686133717696860941996158786423801701943233701798713591606816787758503766493562327304655831438998775901733351785349141392455036198270594889135944091212506645624954727491396652856254102839659770457830800303612984989017220106953519887665343083230560386190998580617560304784834692210350103090924924962154596595191022911947277833463035916336483704961470968682212757185697347829495827853440485157560734490945517804067424293018595162418865117955282094571899426707578361853951653257986283806533334801322079149167553229862311011651357185321902872828435245898543363414063547685881642644663283531434288101582901399758791673074110474561302388938556298995206597748431046839132877652787526068189484257979798169928796503851468077046455089895031492209531460148533333549171880267535017540744933519664823062008542651109155527279725331934220748221712243608657962599748163465901557003974513580190418851500550303017606945471723851862177246753111940927230626572991865150899320816159243610475143613357544309258228378886368936440637075411126421698429826620393495344546412558901425243094371986958291406387102636948987543072729697416387035509816911893874397084849565271243817402585061545806996979210686373251346499572920671223053082478148398770715526527243825267901895719139648778198083902210347522518658534666761726746516188279687445749122272134222536100724325810717608551098048425217433556594966309862700961573853375096792145468012735695659057591302863590977290678476452596174410331322852378068103381552321762511860738797801352358889924080653625631239785154541617714052772711295736351203891402560757227253149457511088114959828718472657135233639134778365780031296453368447461807489512315999583782159110905958584554650577002529755355643215858562752105837287876379308319502352544263716727774466904178543518256427208706563424573870126186760692932491134242064421271992628796240011045972347622214860100598532736384448881323151674014134705639482219437158370069032911715417450808858205242231573876929013166737723645547408042317499197720763990510906979610492605460930724473756206428113011745352475789716773003933315840991941724354796321884745705903194343562966564153663393710364743760370242269948630407354488914480104981970285170485502137930149963179042717373770268294434367681597861130423975520117545131571660731330225967471480742241166928005455029121471121511243557882349936903890575161163792015800728303498003037567844534020529357042555556375174664107251922545084258062047578068665779979562932177155705624518653803096414851628213017982031103024923349878413287985467718907458232814371841245677835220758064752956779337033536809533230029100337274184204417364733880333056485587803889784037306013687846996831141013047501418223842107171340871409961483856926453962986587514758217691545229535300297100413047526032610849605695746510478176590514644009680471784796258543576129878867267374650313056127198826608705546118788020872329175005331254359077376438074418588220257548964522158870905949678648090045757261187752104586691227542216513976556315294953918717435470501197652222713364909890691824157014135260862343942115768094591558020878697883672256736139848401565371271171289562712749049637281370654570363742181451909823205426681632293923115144707487229615311461161092110339221619080926654279882212881853912655240721667251553036862221627332246619246167933699481593435726104443775016543910430108319071233158256906863781400093929085927308529097752174989666288312622389589865047942490014786042292269302890081048488806859839657421310173473802878712126014748825807291467383000605321206500795945821264800484318879402099164891947676836082317582678623215617554955171749586776030360757560254713814370050902060237112630237103762441922368280215047120484159524387389794106139893937567872486695575101561057154866201636856920175092510071689664430789814747262973530522624224398002072276217368848607163066118713493406591174415198336973255365541070838326611515497398945686164667681270336796961159419702020862385387015589203327063883510010680783402375964937383772253379766552901991426411434785184958770989223002131780586491883772202887775159044570224137422596396656846174041887622931171121240403780187686207274150477653549173120868780042483509834847882718208777173907457849387936208736564540503986154120063904345451760374474131077902846557828569799403855624007022438716199719096206831250814817786829054538383117297702242007592942987264281193736013281622318340441504385379521790214092640902399259793784572356338869137112763281091306545310632965116460943397770714896740046263200321438046829755055522233386933912776551783461918505749246084901112346354495560275333346719773591636349706489519465927289482182036155206984139903380189030812410726802680921992749884224484350493397133414935550348278319867319385715497413142690663727667000553964205162633465543123084300603655417508675921958034053499952435649376725756874003382009599104144453914340999269765752609147333215824294831313240854164988832197751422510159394793346222574774929425140887174874355261915378720619209116487671073252132411514091834138129620760395588610372770682956261705436267734942652869226794360794804023567801692718294338585477598073053428645170547267898930103361667814762328295921895645006901125401069090312662385719924798416595542444958455460575426660458162813850398788461628930479954843673573359031341126780375316169737674815512670610239732556524580553005761960579367853416220649543141613374337872769937496190475017482474829592917824258008950014958635860375053792197820895053500003026769394620140275021246362439506880282895243879484675139095646579834119952772018041387071068239901685407624773927717373780623844114568117319377329425716904078212968135154009833834526065646160799663058954778036969463370229942656605004660461654404547709552113328349722319605428041178851561249066559165586706371967140713742370210894198328882129169542348681970906991531935414632196835928316316857996702854975159436294308473574293119843364486255941368988357817548553700647794186135236685724282601393752403824158151141521117537045921428800060161033423184057228712052153680067509622184046031246440242281750792092990359732893233240408246603045408930690275357755886602966822298965370036168002200502717136253423142607611349540907446985895196613420676814738893309111987759232268288550440802926542006432315264370654105484829936289024945724041853166790214191578340304223497944259213204309811547424671329853717596621658889185705614934439425292931853000097426158060762450575587645315357152725547451379288505288812502800599769213864841060151944534294064938859075852523449923864307954326974523461720336376283585023138189743488430264334623469566102048948522356016838698472741619888225318555804318686641206082094477931819249370073960989461024897902766047930844379577313339472803592043123325572029236539799068802504825189225731296932934825599313985347065276492227218420836440628448658447108534057154912019758149481205571849200070932209043249685516216320707246658039994871359546895983733880266159206652383625489132679736388839569388234217179106146462865491783185587180080627177785102702993468915918344861211505302671463446913053611030924336528905076477648823815595724330806086920337324870758607326065920730496315212536528307561312663366336834548046966021543834293871545546982527776110481598778212641544096459822055741580855224781709343645304850581687503838192596751228557424530669675302434146691508131326926172000916275034168760068075488732092991816552144172301163529245829227828228480643470904223456485931131880024737748224328441977585325972379025098586663398999936956023465050604996740076643829385638008378597747883881411095300307300990530763154055369971361027986873952352376727553585848389479046880537423968951280795507128422182635751807366496079355706879070679896716472544394161470594178735738192519527301243918126633005088344130496177901835536146723665718395128534603244658712180933372261675005232718887115682375487318553693308293781608515729461437351268525631083321729421170189323007961113201213543139826062411140437494387793777297471216489905749737334924784359095239884800678592981408048356893405433576899295860649057886686052195741815702237973062471507420230456439755815659327763717984987849708699158769510764961772909458687056939962645541033046513947751144232990729424056812858346459182246901938323057789550489076909026052258893156954337092350252621790026547510604546888955657199411274635076143351434317838169590243317422798064616090238849000658614471551275898257779491532406019117375917470266161046010571926473378729754482725797300242642075565895679487691351953081304151970364337911617508747840396966412003404943746110882337121091536319185584807446239089133527891040920180451094511868463396865561421949078497977744943078782623015759913003657163390763264810516498294085412081775512030752106201339383950683574386034566222935362551170800044782360410697951335969657060000945469737680252223909218522183136876441248897123911007896633953690553289080675666807728657595685298434475330526354560495382588377246923356588673465543412788010705324620823902922291271350073369745177279880086948757574000488877494280541693277955690931954332814346997990720442531109056501315181691662824394549776245419531835871031730481424244770460052420056885494869659237214141150715150100326286757923380194295055464551194689473698143076429223239901898570687451899467230539195660397722710083484475320071098465467474995722102704443123688825380093873566145016947602240720272688658941139419766487179572015222859401483328346573106272761223272740850678980781726042384873909011674313432628118599866536637471437070067961745327049640518891377064908433236787882476446593196372448812930238879551704213715431298367368990966957229003389383702311466724907788090171030771167642705126337096972670609172508603478922189933886278810019964129462447373549665462692610148705323503802672283164759664235089524476999790681616046666128864063695357662698463410035077258800981446910356722264582160794547914111470528538395659939181505544331638879250311538616152437689850043609609586152334143026934504778038682201877607225148705619244642707387299295288527951991146777716241150137005180493235985925125186634374204982142402063177218059760536229190787578854650292007976515021488689434115103376355934769911767833744116516800375320394356475552803847106709018128695762758325160485055112924585107617302029302604720897055313970043806992395253863568334464642429417096422687486040020277948341463252642765811701488294231563320180378929684217530976695342808847056336533705621185390384372283571960630456959101756595750003118293220764972273899362550925552608107816546172104423337618590143039051707648238145701818491286821602050062435296096366489101871189761182474471107163578096743751395497646703991585649866965917115017202932597275965814476583748279643331665493917434832811030865221159878827409459131050674015906206572591952237354236167847962537246033215082222033771161459646974850070370674196427800213590528386203915322702310814832583023745751620742414544586922113494466476853081546165284690334982261507373188761449613960961230352531399914714748773046193698763078707112658356609811433808558261216203331142451339479056965421398548704649722517748470653113271528569025580419554454685549775344809516967280972776043857655757008091532655111101191732510422198176098475144039684013821757740966463808335842152285789247114588345731130026431134543016052341198273038344800874250948032877738546220758843553652343998325032701764246507613761049358457943064071427896252143688273839136600100687161084253952619652299422754416664510055256318112061214346863654232055132822534645960503000059385264263814273404150703616520523766853466543313861805585748077090188721226028033743957516125719022547882304928417787084004544458269416149924060905115000569107814020326930571086669415145002084078410704843126627085457962791075872061413961019739048686948347711339498392483006972075724761017531453662641326733075796930537956069333210692553667448597990692090775344685409141498981690630247408193439594423867680042263049051785930791515373307160589680103252589852509058455194408965164395880372579812117145796048182773603486153968080862661927535700800411893222787756643455880242375488022232476179891443156385864398815288919493599802726887223091639710636033436997756152025772311375335820665522752767472746415173147281280924487546271369219207888488446444733242736795907397775258705587063058365175660067489169675071107799426468907277622960013545723714949845672230877239050082269802406087272666421008687579006093514780226210644032243622347329740956052707243896306963261281248834806267897799585366189968539948803487677118119479531573459459128002066074167647152114704946298519121539079358252100467296820499222678739487013161854298440049275237130050403843522220086259396621546042326325714823252813437109346335166683660983680528661130507544299077442517474194150933597434160677875553196116558070727924475607641174116622776493431965090709676399311648643948196490357313350573235276007504915016392727215651023779331869332800960996341627505315221722436790287072318936853553972311724314048409834942327595050405580481903407689383827068911617549071145991311690675763385558635589956475764036878645247194904559786178525492851199937088702150093724462847150395679451222057304388708032785228591061182512520338409602279352226540224219203052417697471417876641175170900562500715458792480689595261105964713299821980983853194933460661857630885898995485044813143483023289774920102991940703171093142552204046740380530734639350934028756122290859075467846751253802888099363727147240953495305780810485851722683538964158635179925110371493399794183971136785395586702259440880649760380362665380026070375666740672974253680419605350889242519279021343848514223294648843682842303406438265496333361781515761821723824589252011587587445340571846234174197024314063127832350580809807871949782520486705476569244373104290835228533661536738117352368814320952379297928181219593010898990700345047938521092223108199056102989710490363219182991680821822521278564930720332723089981802562446049783901747647416022335998289370088467508833001589158877703190137952212932791394938366830751265151267223199527426281439970876461312938661369224926122961299075512129982067515071808376419371351747897826212810394393594744199561367537483305900778518248626743829830442208498164128928506432719830445181473973061429452736889178220950383849700140561481165910747714398507371763046583259556167373952180333918067652481886273294913366221229226007801504530028377487373993430552148523466064434563752542414599837119936809067643962894920887084439533721721744883078446003267239442437828304239479118577704424158497041772837791373182555585401085883193301493329471661338861643580721123620939168372121268827281269828536941461087001869640234960169857304084885618913544764929364886589506294870785433955015276057179058179795189169747142821418340277126598071328320276219269049070432826409278489253973884118190004255841381233793349992862792851851276763567791701528430062005255937165912356510022961407678135170489077507918579050915740559176003264354859361999211579530135614343490388297890019945893509285382714989997316704869901371547165420837245135970472113209170506420142933015756723727726512568833230833854462016919967770618302923633038220075744988568726098711984076826728584276549919918097068490003286349721110794647420304017690020743889139987440478290992459200512889072568899594856404283798607312827238049389083676947093876634753900163633541988295810238534070471802533851875973043397839992148482033927545197207390921299397651899786743303837580086902648054652628933941869271434834575095481082927866015216512444703184347723075890714081316941456013801997447765961746064863226323440668517798116150682184168072614244083266449536673916621106112496465103583927451385477670670304685387640021659952999631838464717545237769385335897714004016732103106719883760952771478142025460588143729453369762661173985375585133008871461965880380061225097506773310817520770459514224390001143602335003974835876953214918025772504752437348220531482731167235624423621396500172889194139464955345303625407800004190844100755545799528481812717685802841467259698371980321065883423440200008473467301344897186200946032603010756097177334225570316651754545624944672036047893146315774738078266594449160868019551045726213966315233644605674590128502040684272586987934660183849631219590610542334994432646590606047605172627280393083954100802918623378404952041448167147616149340839403761554812751917520962033189357947146978150577439959546276620337531797651649841237561260482725704529052846420435550344680450685331722213615993261858338267807577054918417044509415954137522614189374308891104709647296210085410818522181857401010676690395712082213797829822254599710627445399831371791276887019373889819165091049591840593009627359895249534587458702876015727473157363025604966754692289326130213974437005123564135677096799708605461611981792857234376915752720714144544298144905733879022956921524766142260827660213813430516749697926045441236126720454468539177057517564113948527411727364705225802515325992340716487242320188072549732798342808412569096350971021597984695008229501279226646629798528121608584125353025223812870281321436708989570495130213674628241815441817224966423008614089708800603999118251001507111383181835901077398645599312827908127556533777768415403794109327756449995871825924956383615047935758422027272572551211317856192394398815115469714563623682078131681873001554660099277085600592869774790691526083506705035586511298573555040311345975886521775697794889336152463790037311118953980905262417330445213444202628868600069017899659212917073273351158281093372629822008556202754550209687429830351177334282065754779038475473688275326256622547150631024046027029998358362184186029667779950806230177769435046162039586186583441692213069514231738319447428185192743881396053305598549963024194297226404144821107482751639157687481207516095963379285738880279418900720880913321285720673048868123905339763837096926022752651498622129597829071864067467499747302080894813631066091112207585400933215153790368514852665762301146905033760527658384654134149011584547516581467795127731969161152078398149572889745772563407504904285880428804539240310185840825011461020172254014413998215797377617199799307152548221397742729912977060725470904907616059705761695179331767838930402781702165199264720983909996889627749280721017966606037348678849885384490423015271984659333021570659970238168562400721078795696371087410552275757152249697825227583830534356010195389092638714394468213510166391736635033870911341834206668581135542641308738382453334750870926343348779641886608610865312641260160666145305626743123577375324539671686836989676464440428890595299675701024632437051728289657116474973738313388274763048620538848814040389573556906713421256669772588696493717569739332348424011795962772549286224680449023972029119664058509172082817671574847230121702245841355136164894347315134674912639129912707877182955346157927339840389021406679656602264606131176892638552711670234642374147722795779060437586928191520470661767377239973799618610287864137519626630986096111878641511829141254683400254173006887265353345942450542584434317405474988389110582866882085336187895277021595755607093187338193290681109624632868170065171071014965873733679983964441928220923718329080422727183217653770170861135286266516278820581022678251486199941827210991722728179376874467568103454444395962323777844191405215790382786436391278498066613606136888936900778441236270558585870756713155371382445205777707833686503452160631526025937176614262707698608749931203889684661612588197667452452238452602974738599302645994143056421647713989536969170454738444424920754810210760563375161383217092511946705685744956812782291362205336652074828573048303563562989862686381923260577532890750402159426868052128892416867696887955922572907632831027779657964570733180822131947260961862389103577155260033157260113595547670440004157018425134777510840296105495894465126081791387690395278342673309807417766327395625246198367109824388611540499252288172199921328242901139613155134805596797228638513160014510550742408378498939217410934177769347573475404745836006763289948323373610644730774274449797895199609517052089205723501464791578283511558031887515512294294180994480296235505271663365922819638369138156903239038005326106499903190100924063258200831491772200602940133463743700896808834168271437998412051810359731210197039296932647728778643548028830590778881426291565676702629240221564833315870632272966874248207840659346700835396843486090969247803745588028592154129892652400358699866447709662153757570917276151768591837976486410837612294958008026302728706619479777078353222667831492068700543897048127759432730794791966339459196153332501131904765713324688432656871808167861724431779803448072135207696195945415817405437432213375324459164762772425021769527048131121666525030402210584166563836876127690974688158547933912000819984771758334878822675675635466267175139747222816057210815078453577207329151400012342770949857194590664604254103823942650265752514922734342706347805260245825534069146169323780895570387054561500742391412144618747587331170954378763242696766508905442450404193846543566687214417365120360634478559216651933931162185043140850920763779652412473268582121102574620101555497540943842704351331938278879076269709097867366242086660761085651988900003555578540417082460181012872835952533440528965658896595584304309561622965694849730876168383585563887417545853656422802579305698392988990830283118644922071845909032211569226995414285825528865353398932814344004001204304322898413599525489939673266115418004864123795085796171898338600489131149225710901840780475761173639630375500245657661194483397802209177562393964493876668136761856287570611940758354140072831800803149471901233114472413093997148635615462382664974992356949489340243395944819072845102890803231289791907042934939881611536899802896656006367971278256365636575114399185211647044849364346518053695515652946252892226470341977748665196108416527181004076798292016243087230220824158819099980046811646513357511416374243732699469720523762941770597098950531871912268865551311620169302486981500054404753089266850136832299220610852440775078258960576532501813916729842302554472487385242869215832114346159964900036257744562666911130184658947909389434365086186862669847523447690894959967073363641321909710045431308219095653938240436532480584324797462025973739144232822775997676058099481770374032261821679671589264442237827420138804221068654411829986973192029518664263158139348750631868777860066402786274515387133479657199337042753844570288653755374115128241504674374047708294061992047370112365879226142785997447666859468352489497797179627193962144946839875122375715276302921668345587861566559591480808953652396955774560119085978484635315452410128421496421538713198145424561134756085632449698367044390823629027386336142468023471146254187608540550552399622190433401178087901586361657081463768207131497001249178912801683307576953513624156506295604412440853309331327705696265384154229298826886163630154327662891799059713352153718072082422108038058293888328618165187562064466048225555909494990710730823273840246997425170705576336124267336132704639994508980070979340793497187657977765133323115680774337080932608291227339517009751996087273000375363683868123345647636101196404787359132651118641886396217636252307748720734299464419573737527010699532317120749292545486433066497248823186024958168500867718811066895455472053236766893609142080432448930151876092178539281797677193012583217246110149693405772245021437295117937640920701556895591573279518908486535765796222063862057079029261841322754980629323518923392785247248226925217108930007353779986522449044933083619260344988856042732392623353626351886543440340080357915281190315169518137323379352325640726796357529256688720229007510682709612940396581828478940402307257223590234702120083609876475706209935051662800573536997631942743249229403510523371458345226035594285830500085723085004404486476351207198747727091643353423766554221393967048817675708329580209908785986507989135726225992922902881788033559650777986949362710444485089645861230479949815054139840776893635123304691334703172267019859955828776468429886805876975588247673623534326478629073387339176022327868442565778006793298669839589203467208146513678885736275725008384801863239205508013416055238637640263779443755571917503855288138952539762401309031616662654093095984705063089248470238305339166355390224982524344294459160370804895300272443671343057279682664581648482369538407546700724116906567925014482620269344282562660062540968780652524212874952099065109317707780784865059364708528578183090167482776603493624538441921955502231262288487503785401719823889883387825066686875742790592155035401947015555342056448528386092827323427217279214539590807296791541948353437894870795902231833455691017033437995649907280077663051969290159270265965920202903401189112787890660954722506078652047619038778090606463452251058495304160935740642606003892945925911785389994809859065897751319279857377914410062516026425731425122353576360698514033328438587702092121727995801187687542214333234313612747683059303168588404873440769900542607003575649173741531726734898479289515379535365870857887979965133480798059840506626605859360297323814308200279721067907696990883747892659047698684397924194267086151275300556119118829612234350261406180781750111998459099242615755067767755481230977676770705609201663226505507424072759768011569778833241772722761070905364311748139871074541372962470806802441088078076954485952569058816771984294272904651000659960273750779469582466843902776730526733745805690476524843193199770745162715331631726830675389158757335166593820484594624070522774959862913551192048749197882421281775733352714074445721670074551380830295333481195059385059905924180141573599299418161279097875253878723573868850634184708418075497368147540881841505933020589174705516187528817549961023064393178259695336579130574592620439633333551686050543007925780197667265949828308193001738203174796604562527724011670934094781330614967194134896949611876366225823255399415894390290984211295357466197908821358533373801463450256526037138624783040853626952862479117512118358267243173291885531225265189079630489154452188195281292461214253675495098835718757417198239471571833958822378496265719383979429386203250086637639897389850811623492980507096290133069612658185574947004525725160228205019621417014890379985575154867266137198305522792024555999306276343747905853689625711133788537223389018776124743531451057552362595527590538465366784995205307786750108616555215231350102197619832136156246389918235936906861289243378281001690509993066354466740891726417035815766257494209466965099509516198074782585278110593419163355913153360528198810325097993026809311601468936674691361242290445832411182282031691874220819253407967038616747298234316129235782292113592025237214347701190821987564203739772111963829021769266150816731888091279628552222062576368622875609764515027468379101132848433781882749425084237240582037714286539331838891096559340484406506295817147737829463198991839280353653633906687354000502305746113509247163812104839612210669707674742220987634178951312938281985200814043002179484519012401557032700793649180381847025462570948763579052988907095492907408884589293088281606435163526721047334862045139786134108343780037643934319450468402607704213942718200869945775377279710554879482559402662926229395221013091451538110660966114082371798594847621597941273449548022460890747102117836693004244475757249998167783937305426034650088491528448410159362778323132511212187635593385081805273109303397244453471138080525013634038510682751659855513858492819978924706724130023006833823599970763728105227068486910604447770724257093366458203102845271986204896314632167142791015136285132937712376631861525989455369007625108789983827042733316008844571049185736933492203219726626936829205293912983031321338679513558876068390554818443818656696083890185499233919140797985920381663146190677685231280685381889049792896572951589986243842159247152435576052628829942452683767301732085763401668691822263885234903687096612232709418025504242975822771295945436100898895936127839343894806539319783721017646454061091774071806339884303762677315555355005337867533534404948930942954170728256236796415726569891698383236594447219835514726451395381470828880450208282355689056855859511350354409647973426034784830186808236709278789198329584053091156630909234315109133885408427692261848619197830895299312357833767590865579003911633179856338642900434774535447829637512489730425559283697701954397415132361004915445250256254075759929975970449645864209385355408793109512267322451601736333858327205138015022490259647424694541280748410887572808973348388835656883482136031515229975459781104012141319999230268328007436967227583564100690393791471306927316721074176868487039160075007725306789438176016588418427373529705288541713423145841603386034248386754141419936248704247369478349295034627073065169122690535522046801249738526430835833578909401110148774844275619792232100196409705960600554154219770638721947466456364165798513029213572930989201134752850042449589144953941520826212618811185990791781796431423342104959772960217225806433643065613892789541454294563356489068344360841833705100225574819025816589339289574628479697725002345971973959531453556874355972655455106261107712561702455011003377526452694777158987475421277954344439175782814863460249171269988692258598759781609446539452497817435371492504337889368678371582581619119323579825575179949978916044527293485262583345294729976214749180516391446773585805691080479808520708496178909229099765491621936108185452379422382754141257213443202351973940132052358488571258479329866275513530926792122213609597090063922041061495487640801220189201676058535964120179699618586308645835152795975018167070895791923081759755464246907376186908292626882629096147524899893459252721389195423593231628894585581710906518650836488850171345469592780892930639523499762418038379845936945410762157052007513952765262085100904967295898321177348227806196556083311505960611149457487754516184646746810987983424663769708116834173296467144666593420301413973980390639630182150253498624128271252158552024565103949979792696093241429375143824125392430488024264290629640800968305603868933095820937290384747296558196116136135216470202470490304659740920965428693215502230392212299932227007210583137711779334818201177668563049230433270728026302746940018650542058939528998902273839506245874397714204492747342726664686422583257579314288078748644329318151649873558179488752798089048197892306365395808564693783020815070427195658088201620368493563693724392207495206750549725629833806969383943539072272671204083307276536146222169859556414770309854426688103012439574855830735254417238356742910681454389627261338871967465918947594611498122706497848593829734062497931854603095835781185737446697542515137445069671614229750878621734130461794210697506535588283495221318620568124141299863482643529037250256844978678393977404153104812906782423763565446616895744323280847212686814431765727958348467427225943087308828101853609713868138816014062027165556823953276186594570863746840905576947998734173159853734720936657955287621279579025542132050342636622627696184892044724083958243595230148159966672084257689213436803501060031578689854927045820296963086560993924267215693750728557524781157085064209836464081628498796338576266539298731930291078398914088532145847492447047105811297769746896788121143340049728027646943922844383355664117514591264707729206455854398315193779919924686261462566781981022058371158246344996815076313778316188762991816000461149733843681119813766595178776479019908129934671535546193326919084935469375817691962066548099217622643059369470987313267897172892895880827387935209816253592483123862300803955616218479163106984669771121063405845074525441131704883540885374374135010746998170838415914570946717521498665320482428568330021014079467419048870639158098970169666364951065506475113677024411115479801104112412437024019680160985590452630378984225206271500913629385722093776170667050993357903529097502860115947659158190997873210853941389728698665870786684259701694421903215667560116208479955695965407489366905897129911712318674163578906841608123081885121909507652129576822349877786019825433069859592299126500899982419370598525092944119164912567272601199430683322383093903282329606850647405036554623746881593754726596278050812618004037861425380718217993982916793493968386404159945261495351115294077854861511878734072511419034602517266108412292495262985872738148400231196154215834428085649965819987216729786091991921603460006661490910580812092773325925132869596285723257132253929950393410660858357978490981973096540034185298303553549187374827451974104403554691070303938957186628616991215496644706321690412838416354034935293324253407624383224174058013514034294121783534555083520639610571294021410280983357638534443478743608858548978151779343808935754670769525651807049834785461153455153815324980315128932534300619853003087836531171366775535267090606071659424612669974318918172144641268605415754553926946971787314421489126185107461720675062828259086172159122517619621845970247538474164409636235311079620153407520755800314312218330850267013985248889983524384339013159270181336323285256355935100176430859978047832242767226016282278068690680363288858174165917189046314581339618154645158862644137514600204254425795625031354940896121603607333167148180190046906826272236169662306022440875883453957406763501648461610315545657480875591913309749081671657963534978810382492563045431749192776250008546510244763815796509763309024589153441012936568465592020683722904222451174778858588056335978284001313667227787083446345214699445309502097857881163925776884862978674659739523869639616683478469644401537079057989880171146908239758025481516171074596839678466595114620985344957850131610430363014630040239919883554866202861308713306901554440346700068318377103475090662097446501540175788276559368718016060943873102119795084070431670020069725635672687104223927792845492707902631537310212636783702226981891364178782129602488461404404729718258552028848446039262966646135081951028606331053619652122263112849092218002057088564830700606831688235202649255111288258801378604300531742827252539918898906781624493740234299594042601436036498605923282718205208698640088369616719937311864467712321575576206489334518933469073598195300744812977969416538313394666598323797086691715694435043737717099977095262827456743687773469198027985789158961210295987170785960463485080213692759483734583687775457392359319564224729069023533432945712340184894859501127935588720153248183104704852304596754187480183299165589111871499852864206425069200778373330173136229743443787407254338362817305604570620064464428648031671214417882618767267300519474177976764052635224809144688494948780587914005810804973304468487333659593865500210883077511927539813610948397549165010696869782329154349824624810596396031301076814141517483707232147712619657622641713473839417843980982330315079984359542731180700952013009992788722750465097597934353123625512604696861910823140094451241652671267878724048058630190788532308649742323139374723043056086664133726521922538685608651414410730721816612736851482863651005326720508793220781719074999503400255642674581297785072692725362502637957453693350700877730828852578459698182843630465171145314153037949830366139095904224655576453765519714252554651860963395108458246891780895702038076614784678789220179611177059059462583971855219811233227375052192562792989221515672759668198828872889338552951010547331569042767158338851058942731926815260890505130960511448146064973645838207889132921253249185537954848711821786933231929740472055217513249917558929862912668225511622217608418700614703736406194840158942970843456851377158114073885513895524114259194461025035566526218655619564950598292614170814939862590818194798262174109694026567236717134911625159328094497277379768673778060465936144606690064382563601845503145220775911179451569246968386861065229125462283039976135924798312389450710207454534573637750229616319438548106918342006244850440251848227148649743400073512567559683898164613342777324537224384682587082834977096996944482153861201322897379948623525739194789150852231761655538000855968253238951121344232200148349304627896301611642734501217967216845233503295271168854485968312918906227052802445425464625220361030436644720873147572280840579072483646744190527286923351542265441785862868862813437817521640433440843627488772413902298107190540933750842170163443360013847895049473051116605576561248059274513416593226479578201596888359846208363618502204843471121084531539926250055473859914552140994978399718768518222794216348187665357180695118252272767775494624421979263340222779748541957922282239759152950955625203068603120866167903608164374334962230484347778311484420634501821208182043146728228728764794077591373833730682584045457453514629179266260178284220337404804516648114507059618866985969201288772809321698854715358786901365953951053982416550391394157159409956170623760657375549664259150341894563281626526808894129936997188501467954817771380559064507006208437080558769535173090024049104693768777166043739702143653620874602421717907019913045300604111422590906757172931473125890312977132835369466307683495063391199939295040131781617572437467776604170426374421138507956730869668772047944614168936614464765785172940148819302634964514389541098740459062441251229700412724486182208215373074297913305946646356697738209052812939805407157745862250259508102900353454285748180384577479433469562522513210550010146148835625425490836868485510245577388489023684774223420331553980491851191449144021805919940772776034456078064116132145032989381869805125267581707960382443546406238264674262088897810714086509526111575489479108288516088463706976731366433012266358150201182617777742684338482319790184476820402835780962680938068195458255025788084591762868480776093397778288051018676756688956269340201880312586728525574935734682991731510070647713883149985523393245751836138639359400726945961111407796199109101507122444583331597318213826416047944252652052644890426148967713720066073552824514128458104421628747147835434180280320966462203642033157466703236337220796406406285851949652651581601031782836541702918856370075109996893178340186386097038947795646424348923823736533760621374358301337696447065543342699487641220069596985653289210326777992515702554544770798346274685024486957899394297772563514926205414562885908495206546732189451559258549354213801020883186056779360136327835795623186971009129032827253814630630560896879490503388360240834030025834573889727112362228086939817777469504259627386319447474566397962679492424398794022932776450506698492541940687463996002676219928097731663759698776522648968578551087983479589609607813300064370597962735462845023353429695714499201663511446789113235019016605530422626286404201064900458659821720577217512027888342098103890226507170645474968188100076162336989622309394503708536428254953584795043423104770334781998312587736638162447520916658968425916453169588043838053886872775455499982894001162611704057131444158275513106533249864435723652652247209235223722159809653095491348501049212478631759997255773983858227673219030836348215366003381431924836581822051754315360309576809309102476562190198529348026073203098403310984076573990978092568927251497126914526475356762133314691501774809958263842336120471574850689857613506547336547710559814721327848451762482228985925180288018054791058398815723146067926655069787421012214855604783102919177396597872119011224469851385719251323696711167863199469932464712708852953386178116229722148449940662346521305264991906795211088853812908402294296717766024207031906569126214501394210920263485242316252226620707083520803396520513499882952066263447691089557833323013822603219698070865149560848538264970582375252284834403644464607415313128914422992259741393197067628739583018186629725452079818465358060484609272657904347587191366093102066240851467386394682108666185645133819538020054461723506668725501057697207931706491946793785398729434056646483964479089204919804674414564318606203293688500442348107218473475012695985247156411920390970036846688480787368261299294316795672652859838596139746579622234906371801983852911687091790037737829714399548417615461554774837921169638776602235665422991932234090365937991987168214667493560642766589084497556126618185084198946983588344374361573594608396718999781064679433110543934067993753486304000254756700466213523723186254617426720867872902347907489384013134465699792957072780014970859008276881089180857473475309150755005033143100652046661578968847365803913109707112377264856820977444373982422818997592654211844639071334323313294237621634496994841512328576896069553235523347688731602602258392915898994142888951998700236361452417309091356955510871640236448853664108622831203637764627422902090542715279242527734714683950776862299063963347036448323385175253230237841324029335401122839685800929961272018717021017356661112621267845249875757173143344891103758672920757830170655414230422369076754261029479932852680741817790676673760376669102417491120435896120786490720878193296842561068543429329747534061387061111835236143497369357108357232667451414270815783862560532623638272952721536621684786883087106602624423812210728593396109587304967171446144316523454775294256612609061552266599758454747469567218469757055127277477136318138625105671169908978125035635864687131150498214265557380793787829618889261926194947756073144829288121926144448425479742394121164336065262412211286574512178683716087701167261990975117535902631826007353830849355664354960014279742144162358534947933065658274566355301151272407387318064727221946976970413130068828672762873318213644177897582120348485428996255190965256904398544605390844639218977171700877593658990267133771235453557035899720277632452763995450944941310726356629346306149613093706402913753015469191756918569788151240901904644892587867073236851824024392512376609820360305065702710965735481455744725999840726904357272207415237000030140638615140229046918448546073594777896874634715826406208672679746615423831345371351101404722207981019862247566141260686035794516579839574991819400367522014588443867982555476460909792039432228605885360536949031065500502681715298050068236703103813840146073332800899125045935179533467216813995694862135424499359180381188537087361523912794932689673994651716812746927394164987521427937689938905377826741927267146651025412037031989583811474184849578759367065620457447977215668374853428031226532018760098562549948904244688668779623915851374498618389942723121152973381411868699210960283543598571185360949528756825521283172075510007773022276773792776714010433825843895791263151798038287352538046457802334481493310797988282644735364175341567858531669832315658102121786599111098159712334136128697185839716417296425099990951692253767141007647675845338942064840876378607362639353207056967186635925135917721841391082918811052867289535859681318229488305648049021006638838579252979434046736678944558759411471976280163095398905797634188513113152202830211221985076302310077987699398709857520135398087362937084721556494928316840487311803176521322663557588295490132936331602641790680957782284512339138705483699733520519081517338871056066737832563430977799836635858056580795632606170297758990864783792523786121133552421543384475949820782539728997058826596314794174289664316604517937601689576177050140193334486185106227208729529526258557504321391828967406981257838286965915327608696108892728762342531407988198608654351260771003067515434538262687798791183625724397244517984640979750251326665404020560412118497694871182890007905728817648007639819145694778993176962321802381623416997950386948549347254193287193774621847039226192373435218557382765687312076942905791164999703727923061882512046083295492765834206493187986560238852459125431217157793460329910538274183345671772909122620319519056884179460017897971387637817115828676970207488957766363344522766675180842936828884333357174070315473612537762623686955968999861899332271598653846998665956496897155855666217613155821279652351593444439389243937226027482646882940056062573640419615584424242467653557265480261913025624211124386958586618506336609484873990962887169422786471102463086200552090203577939309136785032609834098716524525812008116880163649596484479098114457467683195203757579075872561993911047190516899967257053270452023379224473821627988499923727196979616400963695777018506319188592148272538876263481157784174810885606929100953534678888547977195726462355446698392282843434540479569600285604224458987789069058722800408741366087484100113396284291088824111361980288038522431353566608594829627321386807098130230043176478566283269437598918445294009098837042707463570960891611694897766520786709128456364727090731677401232711514312055280012068865738343301271914578683902235092471018075475218028613727395800210765681979937031410208267348658831937603038313448889527281517528429879994498080392765328704349406834623090002347019157085697233644876460927188424747214628606451773874725328535029092460882027151885403114806097747253363337370459757529187716647354103547185886536405027402181074026180931023405170702617110473943496725378109480583069989076650764661241822433734122984814537132448324925894389428837011209483488040975448486245424584134856188823115819200640814020083697118381940407454419596844685627465730312621873767462488160617855459480468538505009403954863245428466019604023903763457373789119373842775834316567200463333095844446425431971983344108366287925766140011961407101737094369941232534143768144444405254461679426819606532392280263462558620655976731172154774643968383505164809074503538554803993520959000242838765489307701344903595418044360741317670325835841492264098472165676279433462793996292105497119767363358697704053285568607651754029997842965247813372160902882246554991291248449888063442628216542071267995664655531928428554727068594965435218652086221425207715766858545761770855337351845801089688093913028773150688243714621970517514291018759293370920836772605856260968280511399760637477157075733452447070824398447151380135999867062907901168557421725039641777447899507785037082489731418665876380549076584914046102809120537838961189084366218824148399191829741460799097726727173165354097809346735939295560607229184788373784234490495042894006265460182589482316905024467943774579165724335731822583500131175762314891572344297298116988149869597952516792033603817529246212518738335440007913975842438863908426378474844532701514742949893713015247427087445577337121231327382254543967666568031790188480979286400857026746660865556170725171858697824702703985795521862991370624982142485814137470554854005125063735143576569889191443188108156389386363662653750944127249439486560065629696715416823371002992593853778976470985038375411346165430172249444673528881325405257164213021849733053820022439738705991185186075635810486742633239997338806763707508324268385931984512297574384072384409251219870271914193285940429907089861674415002541744909333340251744920128156432824949398929042023651094178047826630003994438169474304705933807605630279055666252769292636664977791733437891843456532746567061961386543215382952980817385532946749393726338656341432612305415521632534765805976268065886632234124764381465440425475106874107305188598465387151832318390228975654787331118860641414832718564789358334272154700534976523252543666835300486617550761300848408916333792273658934492844455934371014474316286318799943279617478715525932616251550781534368966374909456409347418871869086955947625788142851800556535177013084674430355953972248089551606188587003087579528183480535044163043025139271418005733060733645182353247703257307894551651583700697449134642010815286654281986515836144627548377672710102995233510050991727488790475912403219248255164387722136623168255630263361047434058998972444717203657663087485266393290129040810291898985645310432024358268692365989032021245404163133071825681920568563276298734130638403428973792461173094521281286692000420748615889342803599844351867366227869219986717528136823978191852754806340650493215874907254436103176781084739266136703163511754870398503210828598836903177924403211179116704834386055264968465252407338876963499182688853612664413663384661227812494436712785781455959735465634360992619311386740838828721088888081615121511209842819269751867264473099426000141319043383222637220415444028435019462436866791194628854207896400504033854128316516823660535196646306449962164906555266698451444529271091075076261306214718195957606099021702354135465111694981247467006987373072923992251040083721125882468330776929664491019389185237047667633629024773194457909624693976599165013936450472053733073318943198134245100486287198914989558680188346093440725299194053029619450019342165070523051447390887157896575577401909690117949568694330628469529046120991289909071300868886021172903151000144751623336152463148315810296618636712563974208893520117191521995816901398966886113294161278033792035010913990703250369742602599548151577152410840438766715850274796324777402054200730621114085579635323351055065539563932928949524784847469713639050785692723918423574582247773183844785990224071120730737404794250870386761051415187296016706061852610250880422854426880684744006796715835894870700350242178837529347167140623665547293021880311150317190300716109364441884006457671321899626154979347211215548514494976972645679499378168977329373384869895436410514528167250209572355012407547773159881078093154974043892679401805748845144848984871260108273656268667056775969611082072283595700184857799998224091177995248556935080432186346858313106671225279001877216649490563665508198658560016621373504726740125843526900776256552130301868563730170143379541848288149061756663494404952074627331179780906526285524448021042529345357343118613152667596714465690044819722739088906359547796535330170444193417553288568465867674980797405164687693864715417546718288738514656282234602871263013800765141982553586948487184339884092579571140079126886854488206607083638465137395782560196504174540786721696691191237627106987869276442687636151026673104148744097984247567177831767213647218395202174549491733465184129955990223480320809658936666225032675724185164513560069815423327971696069880272212531942878314180410332388304938549321737473079460067701947862380751532449394812825896630419422004903016912763007974915602039924297979542105364583943672783643955669072002963198405129798867984894830377222392901419392874739958525495506723634807953545131540003672921491838717755723582036633838532017667705579815909593356965119848602867211399146781260244864749504338875312817921359779605807738466020187996966313054551354515584169320730560758992009305486391998628592669328833195721805581870416513086448059474939744669856124752540293938099543980375505908489637287781919709699896231555737388811455895121428601025381466933640039579704805864763116057191387379055234601342820204446675188387797612241817712039688610048431169419243337588209043790657116762995802805975716675155218683342212854557748914190482641791747911502707040830700529275243385467157793322460807463439518471555279991593670603244255853223232690419065336207948104451438773413976130815993391698189114150432952446048996223355319029533706363343893455576314188745593686895981639876779110209826778691479788292474516892785381076555299435936954979422273216891129680614036598764282594125485006362639787754612482863648322985483387460932941535980360074610928511303738518704396308037680120846631298350613864108412865880073178382485955301881309793321852477424544893704328839707308688369298719616256681119918942149822448918461799887104287701391830118465290535053114571790351703217571962794011927901683155405914508274468813387112012290294149338030604467888789563059730031293706068550923950058150947432485933056619840180081795723790329601779592465565372742594962219125938156457741742463738208966825957768589880407102217017574000422439612751285180723516451116120592578577366767673487113209325454235842981944800147159866752174023202280887438168589562561626321283473719109580067155026999603776186845030661975830058181593884839475041108328861305369334012109821282841254583145575239535755621533166398514879314768374625519832413487125565672294138333134372059716254026138583109262289678857435238337138610714355075138273907397772791810847080138403606599078640355413874949048511997209767643086468226686491475456447461813886263070008951271279665565071583545594735589089087287155123729040084679565628090415939374902937380271422464778918363437163611618345592785011919062010065492252336386313244432134218999834813917067176582509030703310220890664320221113862312901861419212651546732321031340517327388357479622095007046569014591302995689806973351818100181025839757484900504480293890534504092856892281548123975950469030228248071723615445076397072900575367444620523293305432860980208515462302727821926059497501064898543699578048254025482411314977618665581137534165335899415812838831055765335250915959690722163653797562546476005249640115015418686502600550836304331607172981234831876123462990738371042113725072218496924432293871577705528024680702996565336181140911942559853592114113800213001324064856461750390052836715699008224927697813510117047521578793352911594872130683650855148457808982211429267336920133143405088481208621638000968672202259605927149244951771666974723096397219416214640716543446570269522547977813895574811435568675545225473232077839319238162022832132224628301195441910561022040367157916651635537460582855929811566433269533036777387779064954751262067127934623378529221166963267798480132440887660678611306521082223549860110550203527045805667159265176335148725643109560253524192030674930255495783172951383067046079937861784821871931134544979794110848211826404780980646732811474603345921864692905545775543230061128443209995526570576939801840744596092341049332043689067962872224147443530997287190203415745710159328558642246562748188935595749271564264172730735227360875702833964541686305286065973821404964105647330131859416751697218172595676044949251520098721486225456199739382591542401069411684119895741887412558200111451884470735965411028600483237934548642825252953567506933407742361672536957714351259721393776455324016567877460917462663946670082591094063483724043332980697595153342625670138565523515985157714485169197163999949703004023208552805355476849490031085564129063367415052235918859633733662739778815484108007817807465280708638805963096764281823693593189156938634646423598014546360182857033861339122401854012709337080517554836068611563114771278812449861629749655820461858712864375832999866364857018056144570289936399028076354287466265483001606287402551925274312888091545448990529649050469951084677837620182380635865553292867077266645270999288961234199689418498654948370773643681652905784428144680365205064341720944361307609652281791195828246007074109858072494941676082458305010222160135280321530529449751663059307357888728350985043690731873715873338660255714788603364612123697707020710693845478785736199284060619613852882055953650481311629231888470045488926597352982148907664875664931321639180376041605097473318724091029962983881483509318782905141360142571568927648524503692181131558156851705833735490900011651218671459578092710923899557584602716360719593736224916238182124301338266353144418580472879517579051330912782444217856058818861477527172207203511661488561324460640335113304713935496149571593027209281785549111745122547717274462823890541170571747864130926735271344146256216533048382358482754752410465396927235013890424753184097696121153103414509575260737349782341189193843286543075576747082481129032744183027154957359885913518391553152547165182133998129518639070209313375987931811169771351932052509139538328460834653065369501385979709956371159231027213506346926481177349945318433181466171546173400274635483085481776373033449816960793024254498786301933034036668218821863988689870783319885443745708803991570447569030285810244716613796547674818790137884210134566583108107470249141389804017439707169653778464065499606885882604234687977297252756476063432960387310882446297431840013445105525624585744758964040406863911199393965067187401871088643729150687247113932384978780877626988373257492008224738146008248689951169116268485611874179677938765264274293099020691997269112089875917903043427401625070040102731924308340657765738088439048204830876210927681513039843703985376376616285527043187491624823905539987695016803849641323738732525243556754036693213732003746690570648225945179507315796536806905187840184664722794011139116984429800939482777434866416875673950266076650544155352423868465132450212375181713016814384910474193901754084046282796854541578634813829167828719234938388126576807865642833613211177461250541604898025170267611899208761054073370309574606368396288730535931251123401407668082813659498348164824471719701573254659754697826607079485835502098569115711037365804777743810736680957420876740544728938410988526216676372149701383765239758768825419505288312617233178817721079624220123352785051713552458333000102839157744137077112159961775576216131078850109653278143503226734277342164255492817390152914283357625402468311131855015194709829603381439973179325146400650537519178847922599214790532876007230728906211940304399445263477292343101962257873719573886305183931023027146329200222904297324293852221221962853707591158614393237610488160476389687285955051240178565114262012779835946425429200423110562990874717534542761425058016136935563713917264870596993458124693178827522422541389955127890011825138383372121937077745273716239399801604208386137806680478004733984502236222671930203523939890281573973054977392038284385779183963256125103520978765491718535428063373286793021190619902847945295789105832410264452984303229633880643174824401284982362564104985300254156822752585102159564887509248659165950049817283153471390657919455490938055332218549622234485131246250579241783385703203736729374320426617091067411438472215110435947506439030735193923615425363802936131942858403917159181507025797954630415781347439847807453334246947986995849265676081698265960201791058995061015271011407082163927020589599236022907815280923146828970645508307703864534641040216564226159598207833016017570318578646788138608723679745185693944139466452542233509175574666952965030111190370064179453978208807719985107477329294303594845191764372018632676978038313251227974531109853700828395306998275577952341028429092782248516111551018824758822692998966776000400434310224018981629061873530422333888417187931103100468245285020212339195290518243655264072392382335941243371851694257626789464996754766011397055600410162665700458214444933268890381577551355619714934871259201348260360307097084742207152559069254982088447519021253780528313854999824369482464624503487980476042795885605241119846544344119123172756401039166740106827280679528887296832390597658106724595198311348416864056883621121042227568288451051077993775385881474892013559781016782522816613693466772267645732102740960001933114118165750117675622866747506235890485263676630806794519413882104343621880380664113676204359108423296811177088934350415531481234603325886057956352953084199061571532192280745842333165754843051759585163307600532533177670309438984483610112024947724721162184693279693160900511999428366712890932364260952310201098455458935026857660943372620468631598160247510030096537133828000135683712081019024373937112846926642245127531458757858003924506784830891329428205595091279282838850355020796992500247310020356027389420779436816554392781452975004316770331187573316826493129922163523903280750808014076556530031832333112786055652386694780833302368009160550443412203246623472212228358418359505562358043479252919874902687830754950560653024940643682602163083643199397004773858037363435418978041547091002663407666229882919396453626255890720433137882756582887672167194245970398904271053171809880702013375724750686712269496513465116027853423306340971562204873643934067408584543042347181789466999949806016381005839199959350031050595078213953214387752987353769985227004110853862808962478758435150197358252890296754818703350232986174794811737674097677979991610552373364179851643760480270250150083933862309189168821526718484930441910369942873417715076633733259361344719688299012223622081063178484286375759349128141195411673080859956508962306788618129613743230262861449320180943267926820585337944861599513079970001884689555237265263235557987667312973196025118862743259376492641167087625697393610157328920698059218678251248114535352136878823886899033392637812640947348672590553107347923013071866361055545190417985729875671661026457927075958068489410285613089775101475133969890341839162501349874663219489205931632016146555061740947080494372243898762082597965345118578211022570155936855354097291643507586764265305513315071189687197093860867162663917114654228564713468114160809814053529436898300819925840851855453015980196425186727887857720119007559130979504916796633943547601204067479302833777597630435102324991054812839370895375994218355539332995234997619910252153868047275396075763104419623322359794548240107572280832549017568301387618811695356889601162719822437433024576020351021012811939994992621142326457768096917408401157270918403278007370348686574189086058751749142576750188283869973064624533260986843695563115316375477958584260673612324602776084990501017943668558587947183273322244646410202226556242943210005731867685880893476247441033321874040598396426630995033431844212238350193603818713387479648853443134011450577915327576383237702254065580687279741290221675726865496001583633133247693037440993995232939443973942016622416526770544301962047914780654039317846332566104817711246290127922346620886664585250747329023701040726789544914274570889815279638485022107500305490540194013832186433157755295977139399708897642648047241647663241608289759249213497196557198208178701838609667832484569059980130295290327969465615992383467691933983929570051604656513227883107344159346221413696254281993306651418982478962166331406728652033976450320564798036073193837650635294229763339117799570762729205108215150370823322881177362477589461904256768782177015869606105717307292288145867716046525224246775351926627981961019097694656011623630149094969947161493050765246109214910188454049955775109388321630390068304899341369985445616411640195893875029196790236358974622247171511784162132765074263366828636833654532467931712666266644344710539003475707246549514760429133145996417523099484399139032594777493524300115519827206206835692450185294461556625534894616380883657407357582698052001917947246949784695188383305727162460543886310229111097822896506968978893546485917297171529862746861457847009826816975524683012287835638413456831593703147605715331333542329307096992130303703345094312279675803469598258410652184781460078341378211302041671041620982521505136808791291720083344761549635797066137854659616571308387547968225910346234063700026701505556551875212604441207280453823811239069962504823808236634395186358904977089182743749140376151386423517474405807810191172847143977401687350508867471111456248626294102398274675392090168330023863602483643560650530001712934336351549896611806226821290383307255230989354019159747919186470295672299956024099545310683269524864631720201275691295842405374672853730310663397243074848769147733676027001923508973325755864551143610468661252916026619770958712466133982890253355475431371150087705258454854948590249694799469003658033242351598010938013193267301640149125067066483933021969396536434083740923753226690925818308141554027935159123132815579452131638473462291681450375554002166487533517047855006377119769184440774850046608995748849964959262467595899220003132037337238764192374958693937512035606340760254874833562811732261244714052673566377479487707215590779880006288194802258272971110613411328623695107139611872996437074024467809296360246175177629718821440202785556166454011240100646588352319219010629090257158106593600636676445674759580735694435828599419271275747063390574250756193875372711278714521862669758317741272270363021474120768925528505322379749687414988476454238400222853921281710123242642173851126418345994669426784589125827408941028000354216539394283646144150607077277537463130257644067659571393103161521014042316345192420275640641377525848668024686824569836592068103151865174519249433088959175942883643487495408572716079030572823981211165939917096288931319661118032989499652203348885137835449445893617750387094997982045214215219152531496074238064155978248450659385365222263984113645159455992246269538174661616472702481599593937516451777503710398471403102350618565790247578179990709671166330878955413617706235113185382695909700164767695213890922214430281922250726212409220597696382545852693071545256483403548981869194483475763466641327515228817794076963159419202153142813459615016210757861975634626013130552138500778718332973640215838452083642045448834780816703832602825779421531279843642993803013054622095450409295430825112216626540457269558211615916138657574826927390594568539827787579373066280334889090415290643956934872504940577014596608673582207355390594159937945970221554189180432875163086640652453990349772258830712028657092463323254809928392921560378910409603139888759587280542561098899269103770680756454623487002630240833700893617228994369956992004850036099347959239843252755081431713064893067973946344234245665483109540830748951236334663572084879097570466601044824220965179218446011790753418401522650345915972480471422001311677822820062555795643104548921324369991639880683572275241436385976365210206300930201384388319355017611114153891865686335112818551899254875238687690478717249217649202165226148139430799267648468669295921815232811920225316141795850204430520566515332413858653361120696077217616345369624970873210048384512780589694835474505289575056110117316757455464420307236567067317926098614701781832672100065310836955454206715540008230160910277911199834997861707163194371353180139956195375311539876685050400076768698800986799666597944882540143999407970636783659660325141416697189938096057382776147130743730682746668095993827246511691226733642038713017051804672634290667107877534499207635828438815984860849580010483470012507225850192253649684541353705901433495517725236949240157819304938174312502701029695272972684950619210079396242206515363024505073990309357335663572735896766607793223487788987243035216777208659151751954503101712883184642854542572191926180974938276576600953841906754282057786521024059425197595775758959752226978836458023384110919183542455546363843753752451038324363963741120436478873345397762172373217620262487148798167013833223206300450707102348748948649304951945232699668745276494224460500003278499897265747880546158013404818556203832594057583329924000243151936870968750849346158207529003709653092184525763052993537380191051923430285150216645386868636606098857415000353399292373024559674156718379906935260673155174031761582728287722958312874311619969991894162408375037856301654633522187936066086299777357728265724775531024078124444438820733145505903625152200758177428149006453522927569993513718074847273358173388759674924402271858964734078231116399433727873488175452922989231263766839679347922131240648821254157606273043764124164715142022839526199059670088134562226129983144949223623749731631286276517369592358893329893885033791150178384554732289738925093182123949118173764145551432737366767711791510791171140239006611906190445052202613745490665621951442422013369058368829758065350807617016397295548706808961308092498718303301590695610755504387110288577551460081734560357726833555665450449931632197846560735720341651770584006612849686118770604157051989310453949762012688461947634221588233956615673683946597841347893767324110872814494365077134473160225474971556660609561506045008231640687811886321664542934208407946189498951996608035329860445852342914230569007090201089804642117116790124419219172485401698193826080864529080346811252117330636943879763332180042552438722069205521475765567369493192428123474940017339695895878536926524085375830114218148633780864750968738921479132786132193539051139061220474283475176702378973702199116703891136627329835009031799111518421147545478808394176649390139166264879427751936676440907899012322603095075332255350653802000500040767037900096830158940148136437969631087625500266070517969945073209346636184908683763410972476641389427121806293448246160411414534601817167019557101445661017740951104662879030280689098465441884601941649713875888466961097008055989972746083648688217635388311958268343650177917121567241591677866226767103921458150168437976874543033765715706932795765312149523532691886827528304274093185240612839022018124881768215505155933303438089099756146547905250895170373564767850646861967915688391505529830175599547608164366679810894019475013773053368719893150861188841607154410959124122637298124700493396255693003534257756724244065814133679056825336293554579876473386181419012025595106419053461462156404929969138289187671257195485755992812163320398044560956470210625650915060599194057838954937329337361350190477603520177619983704964273778279807798055941391850645175518034110339735870699506734688141780973427677047385727168242786689057821260506555292542732660274851830256185007894808362335699867552007550514664342290078213053292046615666142658510859599706414029776954090462071891739008963373601953492919028354222935663720318682807986589946784928659475936878872395574165351830940074781584106077002489026938323878054513995150476634359879392585374893563156939284035715737910384591246454606361565013022820678053857229245740476216192420343107824395281947675523250960573278855088124113352370645368851220544572407160994361739787731234751306330122260135265217004015330272790796090914487619366493501332514664248130157392791792694339620155840730824165991176329938289536383493370029958478381460028034618810235910263073260933445086120496313343292593244533450626795441981784649805971015285161126532110691167951675780255499342507718955051417120665983508165651863505024995024756342641718982906390361481559246509100335378964735475110418115914766464417152256915121857983848109369871950977598531024253654827160588840868367571050961589740775527331708703090811717852937322566102443813514306752305757629233079163350997082832706299499324205484255040049414170318964535352963465215867401504880604895266111843548043909484193967688323241016031710771913129021634475427366238875417175605144422175518807490801125030894583561642170136618943101407358835747873835002293206577710452820115122885162897211118950520041122621908040537342587957872065792262042022000198338914289803458940839975224051542367718134468628482285369706779154397016327080965816873609991214322988868309720918451130845319473348241646407086146023505951595514121753420362894645356038927115225815838582606181251867776072346770783046813705731754029527152978828817120002620749634812743449417599301293505077083610615199048914380473991097851058244589505348793464397604057180916505693921456882026139703849921147134556299192853864776905517733329145419277895300219283609262665213143130777981192296983160835990893973241715044154278200585821770828729046089604885771696309068674360055145128628834244927571804474520087003876691146206486332477680976705090253458000075894629444439570509682331656394934392981043165344728890568188817746957203353351022044925395096561404919379689144933550792768207786628846444981058257894743690380943507288055015550767399073912647536473336591337835090465456522330581976749878474590834650653098231445768894683734711084216399716344721038450218502037030246144908394499829333294342582645897877426254645407848969051178289725675128050940311921336069217195296272102612265385215206767161402165316285146559650845535869629075316851280443425687459735840040799881197624640070498235211758632583739563590058836797489863694893849022037024322900394010121712993246268467856445608381008850236252501732822966105081758540190127299442535562974426046840054733105064368751998784207789428103636968661168288559116826000504080916306411709659693258055817107120878657184966114534528546662822862243714559297642222914552957928136437163566285944215036042360083727860677674570668253811287450813131337630948244276231578260500330265555724122912819790832763471615811776068332325285557586648816766673103561316438790552801837002149270174998003427679031733248687054019514141741963073771346179848364562937322486404247904612230020311502087679089663273228772455167373057326092251375822758431934930191133496162321245508216443974568163814044572865548913444500510560742147408346985293582267028206276388495352575601013718993651351748460449587431066586179705428676623771984053454176779948163189685012653732913410770413189695329547301070105117295228516556839865347411187649038296469136136280658278037773284738304536351025862611353035582698438719017025763269205803139718923067210406390427459371688700584947298325549064956146516257457093594087989051326602747236441226635011199315652152016703826631231240216503473607772294017738246554901025221541013124607397364837388870026742688158638175176691252881814794056932664404263982653882159224626278307680099780197122095322029581734056280146839740420772965369061952529125038689834115552754447646351358787087837432494383912423690767585088755837016954507670378378259706890313228896756509549080613179514796621066138014373334887251313991507019968738302189613592147944806065578362896867490068222355399378314427561413160094365066167379573983460026728235445790120239479523467520622492868100587589842400321366443337710383209029084833074449126313280245453930861315441439233249965277266420885445943231713832066237506252632896826613034114728942382966934637888139937188555027717107354147779788221329687819210485656076527285247578140721912418844868236080255236355867754167380256975450597140477538577555338766287053034796280906461299910125852028305681555021743611666139547132146527728070832448219185416049506118847592434279468513367138998414010574182155315610042735586043516791964446217816209656801512381307617636674628089548153377826739866683586025669693158141898761440394233486720276719304131599746728561923750015878526020470047277716221412825686045741862672115810637391270416377597449334420286852876018377768711959248909162764429310675388299764649933185962400123907808161307555619516970283288788518763165796673315395898930312238309161851422660314492635475791050679419862992911070087127140802111076363947542751939383386007335684192787741187943033425299853217452557000353297037849488418050666874013675061708248424311191553215581798571710610156426937295411661936840576855041628610295724572074114255898328657385918162317969222550913557136703183772949455141859849718183956691741304518561720816037661267484518012218230458554246801547878781130033124120090467926602847604764375648423298495543262718029547104824543423362861683101215671566130270150119375225157928916378657021652440013275257114039333688665459570175194624861751642412621404886029090603181224375556893989561485349342757183375354415312132906667390886840894636103643306326343427679930628329281225297363152092679606942948003401895880828679753678702426680505709485392862846954423794008372203992689550510809338218222814018554624958292418390269182346243921272367553364183467295943825432782591522687025486786200761651589731739431967218272884546020477469452975532066533706378460103635167446407754328583153740111510184177808265437666265096151967971452908114971029808520626641710449110112130403843317612203241620592068546048623869207652786427976103755654099358528323917962184324207143524618464083593901702388545786613762149832729659491355799846572451486280969059614321420287451103369924289232505973053883148117528983167534550181058864834419702353754455515413191190652168792457756367772230445025754526983791138777009843464462236053938303451761566334167281218734462383280448714196054399854762451348437791126314099215685670254815960155816412411407893196197018615333310465524266596651251201121180158780764198602987868319658885905782236852938376687251851575267432625173086512019188219466760536907647399364932479823697053409081610734217328598687587393905646248433302724749217042013208641687837949909722747747087013486942373172762469131911596343202257272663022665724566208156887204249839231276804597294857156614287989493574719871777108242039217920511670114311925107395752781244895247931368221232341981920381687296782658105018011818983422831749302172189369782388473730094552958744908398735579986638626714927742866020169193538694686325832023910508872248265809035503662951683050781057331150254178510938180025571726334012844094881938166765546872465763097773863268703247260185782066107599410970733939574435229530052163922110009473444467804516135224843047171062347094721948580378321078607972885238790950248378957729578233641276395658698006182448509848819017932722015188928565347992418772430505116858948623994980518215846421626283488099578153259660835600015227903545886015724289465263971585048309500665340648389471728770280187047168069682546256041665081194736321658025836139601181812012843963579380720000565756489553192411644979595261146144017045561170468438111802210512422793098378017987328134666579091415308413005661229560380154494691590667398075982873681927334960347162232572120405180865899807082915576397989528065372104933609432220312836554782222175140391526334481873895562732644413934514097952510847358061385656556068592350941565956687816700429425399323117526550442762175989520359249597753501128616266711883399140081206109963634376402440354579344364858836581687833525291314771793827605151843349191715194335365958880953029770805673156106491420368058932478802177919763163926360297801477793635086673293912772200482146701796115854863400777268321341198628299211166985379820549827420594295870650144836248878310378586305379679436210804571243072616906263412070370320578870809997593936569200574708477789439693644863188094445862127436953605347682722707762167019908318241651478901841413568189745856080112699212045709059396191730857661353508610811175926786720993234067494257906338072834149953707264395027347661478440522199227230885165306532022013091846650558757115046249687922018330059963036923401922990930435863776375804156196381732545388702393242825839789843845693880855819839838578455671219756580629892949491098165136198801498215823331308592512242233362764277602151729727144246095439805560542144950959260802422705404374878761173887048050316173470506221130419545826079641108526432108406861415747415947771301363432228512121688348552287158624601106251109269994169440625857816876122289355970514038287770179977194647202641888623372416996975678191991590148258886122010027916621138366882700812453535645225718444432265768353011901411651366079040205834465924603552312049217784068753097683475298587570837351913148373194232265224391822140859568195049465701389178230739759826297422377115074564320815239629795878714754350594058687798632768500397870775419238407059709855522173506294468463949664432025602822264749248561130983083168323013970819691229530000046279504012429776991478856897537677014934334299017094020312823541183469896152159153771188143268754361655489005977458444205319276036266304166940289706007665616844430475781098807983897362802229426896868549414342492660332275356151917099707795266120652686283249851290442687281132208659220805694128406963750335452709172417643813627761377394091418316192529898383374129839281767464975877705515832478516949512484144937361442095256054816784542557426977800568432749244151567971310185875944082517160387116054922719911267110920117684411455265048106576896209173325441699553215098058584336026246120877475495118333344976825935388683492346773135489322460661470357552974234648003648439130356919421800663789341969289809442158294022301480577763020765040048614400567035995707050958015679269864554957650174017693291003083998059875247520351444868464333712677515082491075379720831381301844233123199452684905972241547622354758713375162068374607149832905780101447271896549121466407343094320828149562056420393925300720704892224557620765550698734153103936483075544565444252964138209359657951108375893984757217706893630137827809777650830012220966574873513035240100792156182640717338297063257839248626655453697809479942858264474890144466744046787805278335908764411034918164316280756793122661784555822913835629403346484679701879476865421044763209166721987153913178059164323840828670369488185074923533896266482980057297614955096396537115753381091404155747665801367354632983111602433489374098364313880278207082487242977018688906875905686919608636167421896786327927411038071719760672825111134323676976347122593010219746197841383929773276488935318525515140158473218926398572226806199676722445612311656058005034947488625794273354091746297186652422312106776952490094789387908922684218034239605135838213952647591800879311515356536477160029573029380849485930732797246675412413685676873930468085095816391754014005259935523212657892498881223456203932968548981296044149137920487834641287366715989612718282225352605685451529157108913732033602813212736377101546919830439203265674348198352973475693644404865115238582086518419790074248273721010171041422148929713702042564639614811922319398592773248661373642736736224063678699947510176755488272007340042308146482016224291370690243634478095144333852826889039952468193112488350167362769037071861581980232980071227327523038676633848105495319521807115815794439577714756820496170499092857089909961965748127770852823622617162988799334054016935483404468667384665334295804739043634779520653512623697402035205462913428864798549885263971690202846022195615440743676707780975740303506022895971244961492536199683032322176348214861464382074283309679705118725470287714073939311537241831448112145204122862281084331694772342144945986241275042508380450025154636589740948280544232011249985435914228818797783098324551906788223509887107081820643854315876225960695413796788757373338666101324147061842992934914820332105983007159059732459800373417456394856718989446747724454033857894327894753474288041823070205673399683790548043351755873863017789040705772735403722593864049348024486484740877194766806189289853365965377280312800819784706836623556158485277434124658445053110987898969543149192915132869670868487944750912918490929802701270950977570342070910283702215374452435723407298815943112529177380441800442914056602974144945720074792359395658000988680595774657414924854793122714881134525286641774345759829090654400156205731318630204185567249144517484284290010186534398787404325238308619773462878539147639141802689024234533267730803608676132927742596097292676491774975362501529424542998344106405202335003085139577305916064918091308883948253172263368818085883804122934986380838130603606460740405952394182755067828568759140318653215891740047609860928564260481700843852898908067368090558666076576422178131001873722380363246494062737670934601729112376879013811454322330860576539878601215227930800820782851770847751538615148957696079774620602522379239709805032469369484552090207276704996596214246291690430913416079273494410616472350410397902839024916992065732223655677365816644909375657106670287340643610845255612248509713584356137226277537065277508586083114503125119928492425203124915863856136616188103210975605951448442381836681603782845718105011368705098373231827520558809716694923351722409669259982554297744615306309682771700715278709742744816743712934142450576712303042504498180977051957484476377432336355324316611744156660305394968898426410109800018085552464646766307084552856008474259037343212143895443866466993327519320432682882710832966159881076828414927881409614638398454153296136191345701083036748571786597585137676380189635300806333883244578457517138447502946903350110069836884960957200014650758361705646410273744772526666770053558352732797310083919412362901661313499878554312054419630592527293878987702240535127003311498637534474630849762626551243520559293680680408647280741169989150798961581963043347273603614534745346880246968020048406973955938663429315576250447898752014198785196456634983636232561854112322008780966873817782068698395101738492512506485575013453444969316331355532307183822655536727157368616467696805926647814248668684779156072790032071307888972895850666546846874138767832822466284767786506420273570433678151880215331198037602601860145539811408665034988810460585462533881307313133095002556604233328357082096488076864866660431873771346106484365351105202208449868244607437736564530008122007913910847888946870513123246062483914653573709388004989839337801495705852549188614419097320058492782112589313930472322986977782779694076863195069418427179222472331903549362500899118513351637014554436246893537134346363410635996751964666574998754354168770329134818604265563758264105450811480064857487579902542556172791836931227648984603813652545080593698734869970244109284300578405670528821575120265808050376895399531925079665453844958889750752615439913090996970796903280426366589001682531661608645277802205683240032497832427501352645742654279101826977921052764654249509489966919416322472315813459009823007105935311361302274554950646486224125435314897328419679126168697206002031849816226076133662349155768553112365815389592805263393036948753734628191716929949072183576771302022084789198058105619183156498130294778414065991528875035451339900897449167743758431755013695304073224180418418731304203503660123282318549024396270129560159941719931794988152125723652672345167452749514295733014784511472602243106637887671894866639741927460526488779231640146274587633726538788204842590781312533511119822468779914962186969203570074832989143726434491633979791981996238242502744963385243960867075772327875843564192532549205749536765649839204201860553407155635304131418938146010697721239491407156653319262213434389980828235632729610227912398500371003781145920892244683561871373309950568146443890817475158579378797893101757940920291221659959458176635863150938104961017814609646774847135300069089948127425468910090406881368689101487870151368694219302180635785304700752653950374177164733955301441393337558494359199174923524486578740414159421795182620607906995915743242913825366975926969369754209223904868383642021735839916674811309703561111671891049591587967528079813574260607118807004658490152389244329819393027871036836811727763005422117879209572365669114055274858549591437097482982782708823664959563059424252332282507164568710297461219742616013507110014976724920520130283543462772505457669096342987891414628094898478335290176330202840797410892747995431865853945356807232726230708155282789392177938239652142705587398556867114414362033868130514835674979960823797877534000588254364225487809447181914294281361563348474938208822015095189648000845741618721143055949359796086245177122276147241958099093616219062999915281891351100416275004627356025694599878074629693212482036843147899936686210841012303390042389216936535374104626318598374919775130023952510971563542922580831148108475181156815509473465803583962433906916456255746609920999833229150095196269869641852086861293419344246132878860544120861587552119395548618461378180492900735680425964999089031299192710159317216683833418019640020564671206550902681087007922524836908209327965249368032799454302890432850210357708995769511402268583599905577354096337270557920827803939788326375034880606011320268854647185872878991589047013807525339067288179404355976869234569916840954432651976413617661560680877843946486716866216419424312131640692129501348274656974478761234372946777335741496342898413460373725217552111977270795296792221813678825402853922631660889670369764506332957353140153877967676021949482113109250742251506645096247369148597393289482609267039164531074581028325585846703317175341128484659464928090484609033375820102929187451723393149579502624802819486512193845277334754315005014912892316495569223953725812872990402059268523789942045967057747606956224324347651690635724201275314975917172137068172930986737596896303151076462573572920867406511172505323823661479888657576433794821303050744704538143131416144149622907214912110900305170948516322733778769521132454509765836874143566068786274067951242678383208840454939363480477160634367426944707268767105605648373396529425895126451054334517050104932711064508827747492554876480899206118627355662185074493376643334068669995889449554276234061052570527471395999287394823891024471116271884677541522479734734496978985896768213439038384669865602202153217825740615382810515162067025034137704327549197976445747538860369472915768813801353154450190821409890027200161678526615945449288041686043141430629381976500594305476776966463258457123030476032849047331400965402653763991887694133620308849911294963091750480985895229646943816187067938428246246317047016038044769854998457442413038587720028935912769215563967786982599400119819227222156369571048249785057115008818492414244345060132580247547278318211363130091738405609434698579120806691654397008603645693950272679585428550550744799815770171721630811199335956494840510514291218638567058729639518398963322497648426929462785433135809684329997644296701645246943839490236803928765025534580843518064304057811312628677620646355746061142843454675458269191609940363761345269282025627011522872061345819328838484265407182106144043675260564675287958462668911060976069446514567713793188950113176921869978901224261186684718464516502145679426446982633794194431998595332181218964426485127323050000255633907877804845739364155078007864572270991234386140248538867276687123731009192745136206637525967080231024105303179427653678363074087722341578386066799141628862237857583922053544775986015139775484540181430585390660567453103662454952855302431091564154556444379262165642494764414373218762630877252202103425134008558371526613656516285849566963962994940390578743523675732982166090545669274547073572999397162224274790566944523532599337914428307573662078210589399670565945179371498415059311822727426720935742506471066158200278127041688727993242147483949427590042348004850912138481674040783057614117073349767028100325751947124692315467145948401260770519400341931390875154062744849119542999464185797027757444600807052223620285646028682747772094412325289399778249646307834530971678451557548545721707878532577118658234363286542720497001630821748904717160190271771423046419557071738962999969359006898860431447911846011027443114991929082035048865399765247209084342930559867763761977560903881172364010244431162711008379475609793191528721610091799702576974421062481830412689371429359102375847734178869191295483635108736267162040558517967280905815196236156715871003186110840257244918497497644555338843791195984606794539443720633721522016352427742003014513231733717394374001745021765916001549052567918629071135767865494334501689786073759634752062117061956683019179499006948959828701695627032584081911506237927880714692438096246512190819546920366043719389373922754414215708551379081308278842180546108751174035760535553661634838940649268566617878971738886827689055698406512628052617787032556185363952524410313498958354735269805885855290172024963911687044622739105325549545116148149057185869596105135226287947776056091364335228834163848587395253411551528240405082791812942934215320932743492827353108325977477705766282171183926289603202482473088956696969739156675245961675486082730581841791812241282501309163245054209282236267037329960053952479443872519470829973495672452297480061276718604458291543619430876823212148600747271508005561508659394230725896543812836902953671849116192339262529060910868026553870961704116853392883269380912217062264859226157466290720638687959311255558792559559852934693043994671675442741978018112472302636539310538179019846742973479807826407598990588116415771704165503768930576896419162099303614030335253000179207918920625274561007910021286277275433426374262671342898417442358813432211262569220904788095161342271543880262860218714625334354807186675731133661557720834299387479599867862472423464085304747599024499228374108942542706723432842603858150564263427797050510440542174671709112760412521207554437470539791814443517643310211066566604932805225348190324743135140523791933574316638998145764552856033063672413090080222259764559787144048115600645142116288097858929950503958157970781471167114531015270549655204081704311905271773186464541774815735046714959341683894366490561551983012129525982921610802844216979928903193457774906957452421725468250119065664159603297590075272821026875590862558296506571919097406857269304919770523526444331411202347494735138428541007677544288164627247716078092760990263538779693485748133612361958742307400120291877842892908700471265536363497872483148993980639445154623564112931142562419075986496258417834570311035151836591398628790243641123821184312672361159970179335860088397557757418120908935336824482563030085763215585918374824610537129757571034237215766443046963493621302466360907037958848392892147291592846137901838472795347256174879862329006537560099510248198686624889534310173229737014232950162644708081518830783544738977719762004098252393415044925614355662947930504526732187456290232251375243013582403545934042122767360919479465294239013287496666128803686698850124087462762419438638955908582770529106052121935717839386005740645552673935641867674274241836238809603048609799139865355901814818453061909099400688983280820859411438105591002206640512613727997212374277126709574801952199914195087185373913240790641184696446979998569466676520546719960164624413774022280426791303852486015514484645881561526771581560143341737143422574500002261042072985456643944013291551489818980456319321497980835900868648879974963940236054449892092590348554414316603346189607253808885564574442410909337598022000478197551406465182259168904356059400154112362167129710271229460076668093371036361253356801556491553922267007170019535448833990821539664764746470608214525326293208298723623668552219345060456660200549640198849369238869335120724329238655457828371321162163636278578557436373763975061546415462970579845617796377643632551167396628954729039547791330039019911547891697780935554895422377593399811154439288914028535730375700266141981842486997621211650762277334703717587302895161804889395385563589745698517610264659140912010343183929889272274075321735147809865286965041700286244498154315178025826148114518391432471000967884468493101322205983802071323111657486509197655003935241741221392557640040308500283002545691659013997168715162669302661382042383273262297662672063944011316101652421074179073542497142260350831521900788967624917885132246905786710043766118619570429642475806241728585421736371532576732118564652654028551080563459781259095915876137651951328182649763828987772176459274151842941563734883668342174857625795924572406054164713824624100699058360731893979281645720759463112601810500605852689051550612324685876629157721317260899609210280730739972123214056517369827832859326497527897760135794767882427706451233948004700450442975214278495174340491131758091247697923423226616378019561842258009279510180984310921864641590449050249016938509273298842887032828305372457390302930234456835989463275687950665109203643618111547289829955914913928075884814343858765302407938853479630090480295706930115374247430738940020787521341460181751870555147220607793367167986916117316631424982069430441288431846253302537210837564952655910226351970467068803501015711722468668962167809058258062126114598388075801483228941407879120898661583950147806126530889674058848222436643873078474016196302820976369372430201220672409296718271484489269997531941281631166524089421471739308960652308301109970901536177774453699999004351856140423665025747842031488911724308317294171871763784134783539391429915351388124385243209370314812068814882536561832321754742273182228557860921174069356101733675027046749737125084943856630299046724008168792132807372439258219211596236990338896125811659800886517591114137517449768038487109062264922877364020884569779859246845563078180538558155386194461653059792722595530978004945624331110529983984666883584349299234086202180161040984299987516654919865279589733661840617276949567657797879355372299355082633260077567086905787884578286582827485405528782909243421205381850778108379241666176970057201428277678973514965091990973652227500459116958964798588307620624022085675774525276990858625844435836619052828905151837683270304433616030094524080333056939129989610458333828353029268337938573108244591523834178768375539938368939791734156897431267718631528706416537659529412988432595418743997595521543142756386293262874552894236197158506085057251688046162104455807306577556192378865876568238021117371064469574366288166094428139016271572860191635393527960253689723099017822125575250798126192985409446579849101502267938010911435798883795884351771688521330027136378699061056296847946051317019329724911667937184243950585690804438549661134919668171137257656565877328175450664969958061659059605322384703859727445402372086858221351157615570715524353464924703132382157497426824448325722993508127274609670929108644187625322355690261837449761159937141308161032605472221691609848051381785130449964329187638357414485817394045168801435144538666872680701433982561480894707656607933781983593649093826427685620516266801816492713088341931883254484419921369111147266365244558486285267014026371447613683598942359376008551762662469020930762324042518965264733078878497408135475622940274730996015488166755418820760052105300504072971970928391365693420227965734691417763872662975162747529152345644692101087175845009511949517056057039141629324611929014543373121090322322827795362552388718792088659913669411003979732455667799592109937516599660532368669313457349498644537014557573690137933021545523553600250431609593426831555251403664130363361961219317665485345406016311932291298283848672823123863375633398965186623745779964062257598690959151063742173542095825966163836254666331282871013099115169116208377010669717835738082954369143934027296848808803243111251629135585000964999389472263475239734963125729970112739357145950814475213760677888628021455992028963383703854886700942934496693255237292680309166148200546501534964124322774899675960337026348529339752820138688113438675478323498353186617107843808266589724418048660416505403215748956054918060297086898089539405443748729979429669124968785582155654514237918985466487403971951894201946621175093725702271440760341441108200060026954621072676998859998671863344617828190931242335520332703102493716910408433226045064492375421341663239742062912390981748149452313412547974944419734758389662890411943753367914813863308324551553797277715286349308524094348968540314102663601670028455034584150054858333223680958876494957975594969115788436084481303633100451519214825474765527726145312921463083977754069445645528357263620096901780165733597585465383579352836960660311382018782231173062677562231490429031678775281538046353648911467622634115105965802940395276472942603638233774620677735571420341164652098107317224251160044962025266487680363221284130430031991395220579879643705292803901087792842281128947163507896924382039727225669048394215973139601693469147283923370224871755221003587762151270839980558927459549011949124061010766976388028533416056523629121243774511242267532871955860887101719414766787180803678938914190312791314302892661493052572427424944341864944040263324870255141042672615975145796331065353538775271866040748650053047199876695009599312116151472710689188056900359078836671199750240282840012982564970103214447896506884309334677298010789254843249436323721065341573752931206904291613781057743144491442638563738903023302422382470923354642161057455704653287475033617396550411120001166009644727144106255051315409910273851622456619833046724726151545855659199338530388440461227644904182643285671170107866038497302489908005503041715448856729865848426259001995898746498148502989579246452460869198997985740168414172326430039244019483732801828768199558751633627159535401596516438757799879234523404676003818646090634887483371031605596743095834161394110008719157277555817440864877518343855938688321664000131642792409952029107851533143923248856058428714132120015820202405856261009488190457052076616151886755375218041130676333618081893667019587555514702893864496156628685375622229583452573280639025583421681968997051902438118452004275305307632385407759570216943042791154308410714901591479455894333626503197450921195941274391691580247972390137312111973430910420924309220238431392084379616519259038828507466247377119145753973914447559696432873482378763157382378057233562338765136580800385729265400118312916012544550213711991132517716113668707716908481712083891729057892540527226989336848837361874588274770466768104658896226567667982905440256432113153252184219325970595152619336241269794481165318292261391143123353179462180890210188080928733572473728093915438781784590491367670574910664593683646153702447234598384534281591305721400802097152926828825618357405193873198846035764412959231415734698085724363475530502769223392421810445278651363440649539014180720659401615984796394508684219129410341185200653093488824438884894322044627118499141257689485840107995878447105641445908694628035488847275808536025865505805546928892861196025510066781666220246295109101364118923749724190637335681662295778275567545914621273455686100402243615029146785186311932159440428985691493837734769902604329010206206103561118259615279153724271181514415951287396145976258906968521813275570536299316369693056247030368358904340763377644213286459101490252709246694479782666479780887336575679267678635933355193664384897460075284744306552315918364958501233509702151320713730138658191101524812364316314294860925020710248080271589176799579814624350598323811824876430873729790289525337321574609659766431126848586926084290939942089354262253372179757046817576641870831922487490735590851007702469479353940970721021360975305740823145646642313414257235325645775619252604528981316195769882160895463282024995179021217863242299216368239776676425662744350847881193885708360825602553607972752651653023451050301213714714232707959069818171737857931233751877336196760478271988874240452934181109678703885448618997716819096030701013109545860267915739014669437116784626782711280559838011182576630153445530079042189468317730075919307322983029473676186102463964374528876518838490756740326562942370350692110444085554468560264495210291929376217862958390767054806938074519028113345797295140175102873104115898180130312221800630981219895516005196104201051488496649640386518694531204851460130042659470985624053831328833945943738062442852148459990836443791771499056028758646456222233263571170917333656897193901211730626423535032039855581690946242954425151809014942795792715530246771074980263889804304368768704023735143648791543770321582812993918424351694514270256957510923378338610824478298581716739829967785597121317794847003069670326998620816282105202626865391981540671668483192865538667019877995249955697265813611075047975623155605784777629070170301334228598929303384147018838226591697027789447568107868109962933886482503259485708763196071278742231290834434027190197930680576979279110381328934894812515349167800040879561497997295975823714587395641721738039878730015601897061468575956211784549281812745174035802196029825110724164927383412460831168966333514061007134934996759972883538275753161632100673150942962189916323772341372404263695240380164158788124383405168969449290716992341164449876464898980396221529780025182251731288432054482317020654273809288785446357681968226441569525151008092044419254204786372617667269789802237525551379649218314815384214222257887444513283968722946104306054116120830942459339611456062760673641444676805292537891638769162978271419580373978749264527895158906229364945446954337721287403157696437547295317973709429162562585421549341536608849300089041707683213705938413339955355714521203054326651008036320124131669932593401779044101069569688655907781954579405561954761165819567687509838690567448770501271237969816647880887063246881786709407885946685436230731986931276657999581859454402280446610701630624853988830652319690343739495768501700155848918356215907956069018681598716078864368316490703642011898853978194463763436348392682265096953326449892913009826618475805323342331470092281576127972416455863499250260773595628538281450297379760711249684338407587992918342325639873893205731877443072451301839493442111882986380079361468342000017239370802556581776110970904579687814521583643791629166967050602386963095099772546865993801509607334889868703908705862657016783711029126234378861484140041756861054890024854619842498504340287627348911883064406785019260439098972034203797194184297121425868674332018777608793690637335053714180034466111060030849764259959593755641634685521944410974798549787600707241413348271490187628036958778268302959169396880962188690988712605315278377622018089180620627968520579242407797874182256800059975392894838673770966898306479965099058331088401276322694531842893071462773304438417460566596149169911932200713914485099411773012355520807806176488726937808116036809745744442598405224023661093508446512756345296455296233149781210465232273132639432906478913780154708467163224501186789115910499495240705328826910478804972718696472091045338825432759244943894763365774422448742822732882580364578828298166045393226804611708625521258146959934985883835477436009148528268934202202102010203044766858199515959242525536478478248216859136672161388500651795295426613670803382756502181812464509050933915938099914163640716536786612577096318197596216553122746229980745084373673752256461901031233503091628542919066563396430754021296878410425354658380835625450574763017941437581456535126175493171425887302944151259404744839314142688502641716276469868627555903908762812352724391921448891109507924926032741065067054242386698594350600043657853548742956688140234204495667284553726436645470148577611868563389008571052396681202567508049762690162343247962495023573459053240985563664235855448552690801033148381494115410600567674790496682454839974061832360904615039055134410400928655830819849930559444543805210212258120872285296117652954041334198795378311891670978061924960094943771728143726565714359951990231349936284990682786164823591505535588123272835219671602463568619534381574397447256017623249870774762523940630920628392046726600267873165020978647556355287587507877458465776545987179690648382647944224473807950107712376792904266986075161378731117172551134343118789007651005702741521360644695801135853773962787946474329050083260868110756703341376680391316115963026355760866842432294405521394272690074776045126054078199048854333117313467189187028308049900489764653964792445226341993105923212235107988940876807186482280299690227597029694685344972398806240385629398207388128131152058767777544564980755139688431073713594756253391697773975354734719569525461520526910026591432011086531838217055856393868494586192032779478610276857949525061006328145452642578600295611965857607849396104957124223925718899866495895320106177076104232722457914808197652367997592287489975221281648171566927136826095773341683256288896754286958891229656092047585596392199884440716195858274285068496232811280340900737414093120336043926774241019447006542208601844031911815562999956830267240758778555312864055165222430270978880348814433740378006380442203469837736108966109120911496634850053794253824921129214631300970554420931234725896912944584253110483147280367033661643213739999649400231073944774011567067263543224788481828467694256532332675540559241834597724890870177302572487122457417254106210199138192375733308229530052864097314249938234913792417908344713141008939600582002490773384033006109985959666916032879228364073918729751068499113795354912350072981594914809442323758060796055243791507984606911530247085064920186241624796303839323696817916126529098782260410005894147067518821357146887642333175792050029140786943612438588556436543047282577427369865093906324772996744472396454397491377154676166368880113157494549526397902766392807823619365389258631502717952224220030992278554521271422905659516095825523259947160468772077258538846091740838853518412299063745302840335620193336067975298916757798555644527175703180441336979471825521232106468017189084717807747132121674764793902793630195057658131259872640934101011625404210563239560923093642612856766605374281473775733727706872386145116303570158160849374106891977444433773600884374853043546301841175258431050991063603133604962961910163856050859661845852232201795128285981038590891195866794437553031391985714858564987859452554115316264902896502861810030902455334456674307034224007477592168978404351600213589448152864049468604476300074173347609270228686646896360392071650198364062486934365070979732786780144744526925304656201923528622521209700136973713687225367001389855361390049442753449230586768230588703509556383691815779320267310594944910243443772645464288034283880525145992382655673514400634988166789060740825358231383739227761295255681526615499894023059156220225565363689381508670795851533864517734046773093123230238831532633333366833389438526427230696490036094520526742890484178576078641517627395476091111870581246394860525707821439469854057099206801980541032749993058492333341790502817258971367538004401808251876574469172384165286813870846318558417860955830691920434408646339829187900185262136625118400892205375135022415089934664905525607905560856966084598216588518383663065637397219175588572978928485194731370036938797817768575297041563090219526525811654316200454665598416058778092797798251044819057061052747374546698945517848710183481589574414993482242724081611465863112078836048046177314959959581703122637290711388306026311891654484568637438669040846179424325381107524148420393609847338108578977426286683902552667056043599503691014026771884970481629876066868405294950087142405199666288411185942053958330550644746269494304803976487538617843672126678425079678266641363501730854829520008264304361435416684958746836116663592010301077001644695303536345173801488213896460451734607101359583896603541966951770365355364057045236204125058186209330578101656418618923805338727801155539451898069333651915302165072261527573597612007680711975104210763747210545113316582598871365996312849329352190542145891174463610284415229840611194901968699893709089206392866670160147240340072717666547098721524634337227376191758157377367842938297659436711945164574772693324736611720049308643819507824967133010140414868868443404114476384423073126451647172475151742475115367012765471471784065851720320785342273154229410009503840779628111728049541158224671692747492030452033969382974627929318397100625843858344451257467968728874887659004362425259886391145554229663775316370633935329057633863692030543101187322865898711727980646574918287240118080611893953206309001922459585679384737812328405705955972282153184902411418423124309536586180756514462775427260877440591926484159378404220163537161686049985139544907997064601749071601770122112117798467909481122935170613365791563425206940271921079240352729822481967863147767964938829636033375296283397084593777643825818911475755803546490911067945697076558606621238551619306439709702282375562516320606484425987438168103940742815389729557628675141315054561415281073483084778487529348975549874841038521963706001642601251578888471501658294851714185193510206760185664161941171909388046279440514809490166913378678525905755001927221424127761671831926720578723093856719809027981236497155203357900948046209805088783888539816221732727499193595604642895848747644324230904829095739203512887015073141202659721085148433946931621850274272943247618230891551395985564471211045874633386723685208525528892896273108931685191979748406243992556954378339659193752991023534940492828028215669022835588634489783113226055270241131976847458400512827951810406596732881643036080818989088830569201736640315851454956074363039302591614689475657318945730969674268936044526778886568936149149864271519573380250639012275825006248002696589771757707114038480322774055570362232170033253734280033738091303857048029823895817304838809156326392978857735369135303863765342344390692894924752097137455478126592401604518471909570236760046191131612314686030318488257636212635519868081810656218427481772375517206611344036596001984822172213097998241680047184843035762946208681188468586407596036849987168371786489618397839058062045903179989548271964423143488234697220327583474651004181443661670700051818692352226122539149260399847314411881755265187271237198334772158895698120928751937837791942179884759128902106726192396707930324985373525750656491187274097633252559179600693670586475291098416239866109581205006358246978784032795182133912227201613770045897631813043377093195153292476672360240074810318079126542600825509347464873107377642271727376213176743455853411148648589774900417801533699038415357010548584322808528070148007488927076552350325341437322226608524475370579961806195459203919098733317653268489218648234636984648590956453571056513350606389915538482908660695973542911833962876839042961511796194949936452540315442096393394727810973786132255389462200657938240690022159443030877496419127941046315989346114810833900507805992279001391623564006542815284964931428812975235239163351726515540472744173549263972535614649360042977079971647763949677658895540350891733276481662585197256369136115194354917949291157088665124467159883233471441175673120831184084648019717263387809467716080694704301408438099123413779138879269816696100873486190982877178188598183863096084804984076215070769898860189267144973955045228547223663112679893415377123591668245827298343165285577383716882760425020508419212152720023930188774226292290243121212269428059209740972711970129365641008401677804684157556572789953206340907267821189217784418844299666857642031537127368639329242359186489139163488321338185387148713265176148934504598055269360466604440476693985773927031830263835459213294411500583615184384102660936556978788861358265609763813740829399950210769819878414602582317107908711754196500959450362745544639924380044707015634299325984902632404747795912696865149633131453030735673957672916587142509532654593421689154862410757143537114387630753660164034298702417539470375129125619014151563993208562959561862023245639235112110537129228153518132777490638559165688134892204532364796321425589666115461411256454728874763491640420772800375611941940159441845453153658889891904736677300057933092154035320203312002108816743514013983479730665448522593828512089720713832197674943124284876748347010112407373801289590138695161213926893602266671283519078627688329086191889895407733783016600534332563243189545731717570211394544803095860093934200445113934463494993634105946449027961546097693426455400471517508830449917810739317853043551231703521601161404967262423224581967283863803557109894447107038092360224581700419337458739693924691940819986843817304385877091703450981709788863393060228724164212415816703128142986341488291073748576432219267957499839054233842856235804802310332248125332250003198024192372869705331202155708209241120204373996264901895413564226544346608444872125073517058452716155758633266157303810465117467522349138825547484933657311663366187819008112593577524631258386576340181092493356132444218232638372139111922070592433745672192238393436997153996244929457669859741828658919813528642185977588241073503554896390779590761663749000211747567951199087445868885194617404733486350245791674576716417799460428021722837134567339526836962385809781040542446754664338220247561784633259600742337785398337956687224090027838854246704089919711122293836172553456952728874482473517154142748498442484570397912127157376030913259332318566714987646949127379663880159044772606220918458191878014798599635014801341480869476854217547095835317690238925082899170881085420549335202424736291961340223461841150090825758846044582264478106121492947080221951376602061848963130585649509176609170039185337001760858479590136853916407122827853140737811131662262294721695030432871342751654817390528658897297954343431040303653382510134190724482850113340873375764113330588801537293906546214397210416486725836862038288505828385588732957708742826409311133489998635878591688499473723226811422033813804879868175643375478918948321156796443366520602879947765715522550247961207091519410387285933632034398132663251577308940571867741880455347084247453591187327572381397689023349613024100420595419560113658947194094657909266696155956264471360576555772456307009772293752945907740086182601134603421922348855327483472317219470508497977543792932167711086392826488251384302013782703355460977137725726126274612149384590738643963816257211688157977596616189925220958534751835601019847108792928538588082571384605991029186641269663937766873245639128997697807953207373656307838663064131325473815448844258465787215652837751760558116064315753208195934741482051825390723876273707056647026239571667129618267282075132361904288631772309850929386740364264052696693709482337849433738598648101414356145996436202194760899281706827689300117038829123213895846318091883134440692045445790224050882234714641668820756158962239507845307793742853936772174125455138624710372592602494077921462257618523917221385944599297718766722499643015771630625434521787100423621460960582255931597320957983633889883896122427890230012536393235632742765989969409274482908520252276934578362000224270733781749595400170759557452172976366144605954119449025029803378896081848516001565174513393672036867475791689278382022217653189215582398982357004656565578985694344312917281542539263181202838857550305294008243048918543974311462595420456539405303355596738306233787536570253331621547684828757431245475928042233205874814905878982190871570992262249564264464875997313499610172011810181917986906162782816902740431795111351885953638819640112254284081892305146929421165530601948402907963368514866037948182928119633090024552340929086381047838567383408603935392197876335226524764857703187114137992011031369412984959572301999161080513188442624775038728994237572031518460337902454032817452266070848994760938706275454305796221914372783007752659774802201914830427023958170406563983147616283686511498480918846013907796347853266082400661250048452343344530420793604578822258766213708664953480689134314475604537732965961527603958092714282528371166149255000840610935482750948638350356520600542151382456838819593420794787044101374567822790414425829192549017888306546382160962302059185356568675808941768326230759806386159257178277388558052643785521925540754668233451846847238475040510007427603711282422102347537142299670323000411284657129007687978353155912013261362637954324960973215881323897848976534942335542594544117708881687108918915680854690321838421430504660387659685512307602277568903203281705623492117025565987972156973887485491692812796211064608707812524349418484565762521229859186242206510581277472739844865593150711216815232261739091099966228125456871260089549465850728007149837633892575121636185989888770432477563886891303079614920073193260986335297285898692089471225080758110305342029404844153988260425315961513175548199508746108704676852019954007376180110892610059272787446407955085347673993960786977779131138190329439274044773125855429942858403438664598397872599087616037499651920299188271041101663798330263074964301479949543561114439826924523355157452293344307086415820981107592617193918487387590888941577133200583508668594169866590076737677035756471296053822757913205802194717240303155870471871994228676469302355299035617997050429350370040949308128932194339953979767690947405437109339058816974101724605973361236484232250551744415954973133113441993514144450958668905230492581985952920601857092814943713541864402960434519645397002215853892260748346122124007664329554205077531691894461790120900583363107431464462247932024815540617148609328558775652732952186127209850379106658537303075168727426069197724242920849685458099500946189013448326606595582370035487838262741165541997560116458337578171803008786114241722910391503059733538925942966865875451082250446689291062651565957705093569324376363312466156473190281244763454933021473793586354486131067308903581228401894733468884139069082574979146928324046972390333575779934655182894162159700812534210671295014404566981582877383053487319506971484531737103522821044829718334148408315768711528130794168685970405721991802551612882935321249181332203369718612216418156096691687004429818087429683153861979040707074555578935376191379748041380465894027145697758086242584365552299454125046590541037217720413501058237492607968590130260648417241326348751152258468268928806205513774279398231903188132079990246993477513889856331674587788226701115813988179711285935621051665652794771813357357525539209939459369385135615965749615434354577174145821417720019467741262992315806516297557715622515878150743279677530347809773603627887443641434705419295296098907251828793644580971636181985000890924853578053952528406161273695189240529068327508218239567530234812407664952319627088050309000430085728137847635673007234933953180205613257665947830493749917900792583412328728727497911114473283645050744462741668251882742464321207510379022067829050978451898323354812922606806903095593754445638971930983309960061195295298047069109295420185061016181008572842332286465248809928065277993678108342784210652466545282815459229466396498222141445381401300894853562368992331059654082616680239412785569454675463646068256175401196597813175612959114475769483882820440138256009312554718808377090600773377332227707570412760708168532794384322595307332052160323876885884527128470085036842877203319662261163982209849980278394350364608197296275037933603851411580625252031336596587471606188923806162926549781993827040165604460497769420396945149566863076348257742250339644236054477419548770266149895650447752254627406991650827951611734219934269303292067946653535237924834742458650793327528605162817462298955730098522931812167824458354489962700123196316375981194059298900325760957717809741896126202551803694182131291989925069738710005060738362544149808097785192211207257690248593665641690426948758515762796181769092930747417547497615128115042304417508694378631238052439031342492282154503322931517743986180215993714612754833081989941548476091859768690760470300116963628971130084736093636353642620082440833603238649253298354513876061773576540567554072679703256135558959231247718168445253579010465986468930547104372380812275779901337805075461857812167485052432723024989642392048778664883080542138977589915959104995152971948843187335890794028884306910253843530218434490317904733462262930118486431906839453338479992439309784742686349888629992304790890317684892077909884893742754503190477416555486356408484167696411838902669279810127237953955273533020406668925814511806876101293849837166280425294969699303280919351051718584998395258697113046925265716053316102068048698928596449521389454400150446666001368836166826963765084769794561465748217384124948624401663627489576083938314252828181831036894129700731212204654750527274087743787127865050285707613344855348974891054028428001417879149415817374122115954440075722240187807547069152591235869241218517604148185498203647422993930681042918699510878876863971455718229329235292181500126713667916565040431507647538927946535237480301373327685384572320148353417076779972830613532825226884412168101824806790034652596250351068633419698804635666662731209355850958062585079566940326236394002232691911589287971342712712019810387434861405136222454398908527077643627098174922088826850791407107803444035682314413424595969060419821091713810938901973818375370027538980186085410047648035623613883835557265773115936157076961960741830141309056662944259929699760263225194949165093786885502239424225719420906898296333195658781775604534981374234342786725328934390268000068863474246459614500649128923621793050881512245832671627256380495953123080134068520017264012868503379575195107050112745155154226841456133424618594483975506601346963869337563940141104250737953834181935548492008282755237309241207049667451939079654041274092579971339418476999150792713489243647046147417850231465667181389869818611837894090633106052818591918478115496794114479065314132148638230598027104559369024673981913102294208889715858843114895712177090900247923920451715182212923495526807401202057398350636923175484105253082005796812100631847998471961685240142798866772877493316730330819818860122717811785615329391586951105828109383060946199550372728834774235908101462625688942934811459884418160139940279403804547887041197534836643657017192916862295031817451869554064528372735637616722603580431584028753157798725042462176912485628481982989027802940491302665944914320928793937727885121851407152308625284287696974802263921201543915489122137454480699270833847564689332091505385548131497070152910473196295123216346071904723722847496443688157881966357312415092240014139961364056927481653198480004667927384009071825896028219838904672517590932632358137605499688365837523095331183136223491135919685251977169798686847484673830579201754955095238458071870256992258735352166255128227674514563677793118800407333457725071734800944981685925022524795036402548876189403363428652265817177360972983231144924996024915280186677140534863101369260688334870156273381888915448230984684507700738498970828102914108434430831732484287465549350181495194977313158988300517961677865583873837938970849700151750936953622133696052975500670060132306535327966981905136238117601380736014686051438188657976037755659500594226597131253501821922354099325366117924187604031757157741626713768819817340519028228051630598542356656078539730620259763597128691045270569760349860788974107715685093088014615002844156953627109411804237149466464259902637138298630120679843815325220260322221433672091380843705641624345843403894575209945265963384199682595649414291354379037802019482315511637808015278048413148596170834167547774108625249768386728091939122322494716603556782192711170856683243465591190731981528900884899351022970169109040115594076125480902114561866882851560374541856671078264411699508462569572486818351999211723550929295262400223257540358912317528028621066861364316352182441287121822034716032575399103324092127766613958829999379816428227786675788902500654218080991228997358388090338550423819314316576762507466211390212506320064687402229206116280020691136828105645582289624676383846439041164289237520850337208307384365664271028840374401907468275705270324795991358148206584960742324112169956676062090279640768015448522752738030465765121100363212810764404587903950153382930270676042143054469665121943499920327369720687305082768643643332179106172411078151876298225921984386492277232644562610411652134388464574121400875688975920144741243536176174995971650423230007071527705908165202966072546406716641189608735671338002886420382051554594880547013696951356579572915597502351883934325141073286139889054836711499531869063238594669026426941778203140160579858366960603350130368648024567282005431979244772476009246418600987270821307431379604037696667854887669691108574022527878070221577415250852902908374460830557368849880213737210416422602953675153532467377938203014696577200506338060020286263859069078377651273315769149406226667729770919349315768613773557232413889794296153201220816177262123240011282834054524735718632727399089454037721869730231450963332920434059243115572133456886343727113805340889062524317230183010661446196202338207867287263601979979067014869953175993163759233934510038177579840933290804785408678604447435061826408634949170725943027964621181141668966950195641785348902174750945493173152609265316940314788205640142148844499325109624737215933613624460926805102080071739357062713844869542863187162447634828939954907514206182622706036698224146767226673290684476778255514289841174723125358161535235228934499453462322421600960613675719531824947050695646623874537424838641035142592318684596112957426567506850666773916942587997298613777481901699612613199207503064018245992076498769377828258570316716560502765150760666273014632487492844415101558660787308711173006215203889270884035927779033230663188928308047245388517008299523518477517047924143262125759668024338575826056538038997427180462647731648820174286337843052232654916206251910131148807001362003447174611531329013103545379665027860275595677635976392686846298387031806986262608721543978449476846323688301894290533981174771763875057209647436064686520139151635064134148673983633723916799196484313450288225002889164955606338514158914417045142485881973345714028676983040994058774060131533292324843190876146734461289722010926102385503567312923325421633236503963911193149587829048443853107624086485929411338045917921430060334044336711058089433185609776111251065115058161351784089617568360891950208401668407768712159713188219752703999252600405738459809673169200477784754195594768790188006143596632180538785028143402961184792110992274387905387632767887723346315117062274742487526465403828631893039037216930716589110395615687914471569925509732696910959284515802471142114861648833846730560971211303716599483475836471684698182572892859059108540301961871606422937090803164601987001376100075748930883526309136670040314459338359430691257346361178208350421035535605332316413680404537807533321753602639038468151999087677306540633537138628218782807869505876430181215114802301355857965808279394706113223614553613193622475560084659435330381649665214591569201404456275860271434788726821803137319581236346580156984647285061427879104150319013465464748482485661507238948879228625164444113576822050731026256210090448532994891309414934376934990866059037150888817896597957002526825054119776330531689851416253556293064089940246687259798027955465934777407146855158667970555818778980126672733393222707872930808650997413734452239500160367665983528273246240111945035650228219630048634925918820887163706762933026190797588934283914129029078820296253931183307518321207216097415450742700582777081349082831259882278120130466996479985349278813107003482671809227154733224909328954905534020472526990301418860302857465180035934420889716374034587394976854219814433602693069259183511313321708031396451220699245066967829593062651982586086293187475738966925366154122956934373509581750450301014232714462695588545556230942853062355376643912809192349582971532633540528679293048504356650833310686399409433908617915889408648471461283563896144532337627700544392818080576792886675379714676115732335380909982586888089273969010521142526127181924725383442567974882620517375045601269107883830991661778556049663165023527557393751490772777217226239735736373775092399484647797755789113475710259725576175791777339740093299142370359341525964786081052308089140991713811522177504844499485538342635696855100896664021653397369160765651594033167262844681690987448539618833166736801864655246763513413748126598945850415148445616706815594804996620451364119119674276066333552245656760656384204643613619082542876906456492814427978323141735957810619569838124079999759029684156610904084540044581005392893964681280329618894396305749333475250183546487839206632657035120415369490438220080291597752320104613082703272740007157943148861313648698897769184879396687612496202833909551595637489718535284990038615582299811713012471168014514506290209863860131923074988445371437483365553174470417186384693225026321756098436102993625241406424075799280941760851846696783315819368127230065544378669806023913776801102100069181746885652695625805470451595776202536624662516547752219068398981627828203159550706472060538430804835655034045596769289468133572745500825768625397359537924008251182514683861528543835307884968831567027539825787756419747179252471888784422248456528591737597950529726785237266854377706063163963357492844373427387472977356506789509095482805529092127390019172451374872942244415883478832744881567535557136730706463779769196333587956468149446865780601696826495273134580428824102535102983298009498650861285142743838660175081704982907220659239447427942410206140432416985446420334146106583222595391357859539038327769130454148598621479534652745995562761114997916174689608105174297624814308065263244957942358917513925173783875649200875913100996332065729614791019737457834272799028783271402777878197358699297832807511171517583325545656990010548867222345666428297826919253497532332650208704328800003029884197625738512864871147002452686433566522866061477974795051231354329232550839984002938109745710235715307883572153817503398247576302869837460324488973185417885337447099328213250220335257574790697032624014566856494224198913592021081146840026809809622422469489878945713661231444185671409296003608718203670169362411614832860954487072618958527395835960749875818801047320009435046729844808424553009347023828994691004671922227589494660647070224621651130996071645548689564556607058317498094044910405075264192138910095878937083188093817484716505756749588272613537783843287504990867543093375471354427613447664087609831975714195778558183208788649705324409893866432430481402627144760587266040453882617575498152428209029239380994133801635578969190398530794045360698140891618161310201322706599354452154200052026980672588606274101356307179170035641059217876310064923354461049803579257811199226823539451071357900601736437837125066714257142879106503197527503140035363662800798534527418051773787496096939160985915021667884686717724940600776579413332855554201378272529258678787934548057569225873383123508273244604971464638732387168583934682344211607808457425922539788367981572555011801951577592239812347487182346717213632102709717199952753036631891218174792495975059759320860496492493600846002413485717801311122900985639768689676406555654921954942033803265727832586899114388710143678938477381940095259686310169515985417546578736332226740395294550261628596562675097926053437924523518734371726331878925826123581350374483271235354015093322695685208597481867985606001684317692362952319537961315782368991565973383566080556647278387910765939556198145427352507056937940806013263118263308223817724865426258568711505279443844130468939418354655504631057445269067806852605962760013574367797119040440308782157399875369702093209762040851545417543813900115300675052416567351646641360045614413549891323027463138684986456045101619329927746808199034973108570029301966710077535269648602362421169331871187917518567067940665188103709684702686934959953750328937571409001916596576121443294081605382770835133446798360951149177770225544313470178929360307063200105554555336203093748627205859782868336931144221415771091874063526625854874968538623558808813898056787734506490398258972352670344529498181832789271951019243093179339127831595397160944354807015885890111613242421853736793843948664073072741671359628036048019075567679027571818402161129365301537337888523617728475534088642878225770299716113868137598577600940839370737218697551145075161406962641513417897445438532094026686176401400286512288322457350970300047363078845322043008498953648398084840835970582242620674924503701066870438632484278087024862435815268725134108085474402625948058372617466791531769641988126218447563125035391208509799668198120665598925180992170138826365643167090077560368848369637187471782835795183937473274682524254912601356795121617522777806791926111686026478938959235339751160776570515526169894604100177108986671543650004754018699236768635109473690971643494765099450989403018365907440862142053832920431577517458882010475439096075708419935214943462046219933047793005935208223436122365380510486331855261487147955900916413978995426599011946379667980705337239238519705711769200552406266919058994702676421719622402937994479980291387227654803446789321619895779054288940502801691819225994071850658548843822092581250057439385206733523564525434349322746241744304897028645438741234325510243534650554139204892196464883288227438194463380224109039601241455103832480227319924695751360192351793163891561883757266836525766120287860446991966077487769239831956960131505524792079517977593526866687918712960262748101546327593658220462306280451866168494530593479639806815598884272374351819614709702399901842060832096875162066885139043836570649773531800438379393679238265806541453592014872764829281635329770796974700234199024124757757476062989110259157272828903968356523344421676671003099735503112122211207997254707347153147262046038943867474514079331978914044401431190958335102378351247050189281788951645530008240882217809622673045002805661740884023927806721347667430558554964822307324365314228350510260322537451162098127501644352221045718776424102272189146705349820974494471077173577181264735311891586043750460157590652092023509411734917025094356088464892426975250569288585913813217213582534965354845667743063905426578778386868696082832467771534282208647388614103898987275541874572621038301206045604799116054879618239216247950022473526331100597796836067562505537891038547927734100823575638401264348536465704764050015058020149867736060465982344004096467900535507738698770222473139365203377537711530010456210909662055876232472487120290946154455062878406129533544751638212447108884282645935088893459027936793010352916898899563744952284800372713632179227997657087572328460195286373419539712394251981662949675139383773629097189590223324587265294351398744260978729316723274746138960153291357836860737084048482992608032385822259560986146468625524134691010374690611335341075326165138686850477719075413948456058942922524240399722014698636619390167879758732606587013201117430670149735115716512143741740720498244427648509148851904941265360485359173639074073230599904259568056562950075793170670498632619966806007437193724861228679614213525446008413459844615724003700487873760642618643508365784353012093059677276600870254703818915912572014595198788818876072224124814638887270585704752111711298139956447048169837226948592907247563997428627049950240997692565038335731219192913357896786872819745336427986603686653666804285132694279122374035373614153190412273057302897944621248939037502006458126422685199385338924295689034975227704803683993311499190978456191931538313693231776267798192708959341882626273859959637800545620012297019884343367083879941889952963538817632273575211539345851988081114034906128358700296644203667482915467998397603560379899192103550581476195701824087831390521858893082749464217237477240599905855960221386961536049947774529632538252439039397697112424679429602946735251413067454719422445178869615637240195588604342897794829442381389982573362219195094169407508662609131428536699919125934129819792739326895214154809424679762891773827227446763752151027639264307258903659785148330969306725007364610660410532056652943172647641426650632645442638542958906854374012876996048108326958432471327952749742350197557903448057636326301413621841965641597159967238554895626650857103341695083665503005983577614950242021852544341004818506684894192130116352755666434827307170904544558326320000128161433602607295965981076975673144698567475257115850676946291054028142017228096533849840440681037943190316073746320654756234723560071726242263708933630819161673173073037810273367879538636652373675890359812012081103110178221408956552904495860891133266470971466360389506575039992043329090773981159546120756792512342891931268637664922417118929159930152756844318708085376012566976871693484831096491551659652339854376303034410781898092936990356537544546005741982164820579480940310785963180515544709212348813598931384583116292468550754914280501089322144454168616513654867384256191913127070609051765253190391633441577056910506413060636927763695071667552203765456106348289237390779602854868865190698368724929142440330394538795926417247155966426467172507771478546612740474787898972363924915328196802875332711207706349516293268347172141855293333527714777417980010956260108633261333500450370802860288185395896266165844098020867489822529308294216614101371431079439689840149644193869677571719568737149238927673172082542238426374457895270453218188208093478732262308866099998325545583425036210297774000683095832563336853193358248419464381213886675521678708438236971154255904532257920134338162618671071584720447195216527625451115210985798769229067451406694979312913663282815930976596592637516351746029411048146631001212186457975430244054424724027463462165351498578902399867362499703471781319471705524443297375479360678890198561240232241414428937888916233190901640825555780839096500809273559103099057870209270391642841929546100048613017333070666797449373441329479992240143798520706313474618655495922072847604456810035455815414864707957459013648279053836413723453352895326624599726162952352133834709327359056975200743905466140692784312106620492527559096413095688156012324912048858729963946413080418828958344739169450609902938672324032260667832389443780227568400045724032803016134967701233720499248982461605169098711614406483029960899326811957574370061124124461745183318743863450500663616560467730151957500542873989496442907842164835906187199677364683583866266729340344868275393195649297496220219870341987975834362428861882794963939909902817512940458244707951928370772232896818451215601115256175732128119590107151857007454240381184754299544752343217755619539131854485059752617722960503888970200309376592159716685277197036616163495482587100775573580753058667326868534933964348118029367935311758477408161167934855721441264759080356253783913535366228195489072864096943283443572265365219963543970268399856166264840549800657287449015703229333820958845064464029298952971485461812091226289304286540587205021315692897390266726111777028401692370053592401473257576981820077825294332603039733703792889333928632944067107568782716165131631204993078865180629812532750701886315508776498292028151723476314533772879050513008122842558247485864650220630119042769728895680427398115395717351005864036405322813924675872674688943777052635395594247410336473343589218291215415168452773995709800683175640860732350192894668242510459189505609654781348591370815350556937011310537973181111298033404414453415226460501364417978238219041539582066895429813280372835444506286330897344908053346214594963399062317705917757520165725293147850853572011729256573282632771456918424756136798467031430119268397836361818298615013446826114045833819060733615632066101464005989161220816006407377432938514508566833463864753421240738894275852856854466798125697363141785714100153410590885946877262939334971705647073295154767333205741351329821592619189464422016918627064609162046539815239162539164649323044359031283264164630586696478602399605222856783241812370600499070659267053031364224022614441973581117492015877249087700916434213805094790739550458697672103965263483627149853890542045872952698469576092491278438328257045794568732113334213423634865862678301230156475957656697496207241740349850364877418070943421330214422312036276961262755562645956320304305166832419622120465740468239217436219868815642427219411355723536693730167713480961930681010220590801989492503779998701098134979481975759051942103472619700495708926131050596165294069591560665931219760978559055055543634401008511490236997177714679724814547173073952546339740604903485121614829219667985589109422918227677040143318692593943555557799685261278127186474599561771274003372075502544487747796979915114594789120458393590247807069647117592184777252323412945706320180935566857423149633708498467862833683049972453194177306726214139338470275871337621039903604615635971922241855347972340199745335209697442699377255906183323649909518460517522841779961533219310475780462950216524599359966830859924407934740054494353163839624052909731923729539822189768178668542702421201370402947213379915769110734855939858418623719217875292617856942043515172775673060129333400770062663236125438085858869062184605646008956317749006909800268018005207536808707053970187448810908780866055281532843422869362649271032475643989981769587866684259193733886549762872765566047228551272863951503756336851184580823682354999495085908471404846691765187754216743772661701694991100702119614405858495061611946494711761059709319648862129589668954900097828266246848123558671248509742474653495912788303769620951393098994211269140471433741745168027980079432367557062910875921669191658610704221702076125536830260634153462727867321596241052619227355485688674775842335629236758056755444828306718312497511746259822790639311850838500447687041976807491214556307906796589466509667603550538370518599417001049911077871601403424962496692285270183663838058475118800281913880237589958937785507694575884502575752886036603562088708015566832610459395771685898002924177539186170923533859964535328898971442350162737471333685018240603077725770454963589860303892476487056689725684599983233473571002982274551506458995599722342135500840316781337906315707572784180060724991457605546728933864893646928961036785077989480084281688138121905188882260200975321558128025869788283107488264073278785833809559512172949118623639765126082669616209986853034565102736139601406469408898006140326761418622267529546466142019980177423964657651320342316229346406180016637288642947167746403879104659911382564506200190082192652070273533914523313445907649446271327400133707506667288955238479739443924215858968908772641093346118978957992461361458306624342862350021613666471588901573821708683562599856263158885046732037093680548212488573439793942640387563850884079605018323375783043303132990480477275846288834784264091762022704419266380156525708549181222769743037079363370191498318503820246502559882323102516454154586143322398927577401538775288122218598890574657854510585573901851951168145437313061467793918664094866930783991993311693034784008187169097508837894112474564833659249418611169823172828414381886635978545244264506287356854877220916146083553785319541521447735261766496088707373943042145742532452244804368810904946474648249395063077939792740506761635837699027990399184622173629032490326844455569685692489612886935559531821948775832689126773475694021159845330160250439605153863833189724269874907399425629053695248691900766605507273743866358827901085082251172917612353108750777054598224764850347780440809033396114510590391991516038150325632723780138052464647017359489661427583745017090479049348616248872070997869046465648011152853305516702942317139120670530345417327053246595845066099943235270795355057498846656533442118339121305415606058518285396286040304475376935366336021378258472107127947077563684338037660610334166047332106299297670954001251419680985539440434692697427708073915611970702758347218480061480440811228151341298357874111703054410583028164922406696401720391040213803573626945156030586448040015825047837590700698698888614858596408991835938780014184588936292956716265374337303363658729658121960961375626866307323882201655959573674641478155008414356026238775277320842685978309076197287608871516570187847432449099633426238312584731600472221429822513006157746177888283603246612386335918160503279373562936232884522462572998886166370787385115058515197882165271045694545709865491161625968416185014221478114328193462421315793543542069369449493418115676192761905950053188537712131767295563591349863167282928605782034124798186103678850105231420428470049746905803248341794560198462784120926620746728279565408678195324511676200494411755700759455469451746598139289098308198403916455120374882800544812103837913723409380356668097548804580033959229211679285968588901754285875560542703885301209333974499941810969027421356671295357811305062732089087606590100551471206666106995769553057097698948542360572810002214441136298123228336129800923503405503098038066073289967452257268102618232734414700482360512476776629930287298813917904789155277965786662456849804021558964913213286014768119692046990445190859192593248519684289144115593291889468640055144683776440325457817334568824749337863938975599324850545265287115408138268059711012327615389221847653745017690851713267917104562262569666051572005004836594799844104460793223577505322861847327336223457244434095930923832460740857355402261118992304976633953931880968874118054437855446386666236525950041160646044666949138664284289042179865075026239295768288286898926872919849919507902726851256463791971011662370567557591891452373280658876965406786387589023663367696379219270343936562564692570660674208750912250879775279468243637033619101088018481993876663017194137940392449402296817806558576289228187756303127432614688994678790688513420891325079589669241984009843716232418950026124922522022776164214072264271768161615382723291748173532662682658170333544419514935754634487659285233956256459742049273365484219775875494225720842862114930638577988332582405976042797631641074852057165104535059990868223543940796434160972924015494431569363193104127814463939114272615591028025984826068988934624971757376483914281096862363265819096590180781053534224086165396920059722493210551011913860598100617235036286222131648812500088685008422762860483196855634291833233167802390892453326339475084874313109693751470603796753808280661534502592445569429276532015035234452939133105448796659673900562049296240397511602314606983121468593216490326620616975387275620550010268108562070796077431594898297011821246585200924315065581092283296811810882467122406819294151572047064431629751152124905605358760303611272074192991286040329077135362800945721931284425880591989592026427155121337806131892203123648503001937038520741400438548171469640553367434966116995853846139893811230387277125792701404620666820705061059789202655059293719541846895118785026961119035846124277232948678594966252385457231115487135329099389951782867674855289365764894160640762125943190119122175869948547796696124788788124825219805107147414293755273320038572031911905588617170778596068240804743179720627080070126560359346424555791101936891680848419328323160908244743194553283997437125874091145819436649470886287704257461042676929511447814037809835072823272645522028122097885945633505927012144651102512108901479836187936991614253597850229420763360239730051370254947714974050237771943828950185051194471840607287141486937186103984808456828425161663804324121949179805107942233551892639437746923167671004329008984769168960689332841243802141476608037591841638067702116906494393886445669651967784763798921644607109442697868059227085232904455947453787627128389861976941185012810087809904115542865724590184228165863533516869550643919189181813928654500316328991515287926255008258239787733876147859493994318045618858234454161373517332303692127154264182143923423259874340147945499176206364696795843149828099130476399680996026875784954971879200761739877328301724302249630648973728106084803873799039917009118271355678369167209977284240227400926588392442813855086733127412286373898326477502420884237746689400992179214121826731743345493202476123248670457573820478722324404565175387870174879953491067637255665031068730621084082135420548009801249259130219335551779824286763928245190015195629855336922074172083776738169404665828689358781664564563441218462144429799234796083574528979582618944014736535423432771930628247193610852017536192719730057465086136341008975859635713630512963114024417369456269947520366180461529262090738616747676267115536074853732538669018653419624106520055793552910459171257209933579090825769696048455713962521364380650501103905654877120214376380209508857343592218474093800088153584038430314055898140398258898089586242748917492659053227419218042991353293323428722056276746730946282944461778334581227459705727819749393979526802451545664955407147466904922640133013577243648038907430509212696665505654028483584837969973164883448832109909120293941971620664096720189557310589187609315864962704150613698275673045989224750993415329133554428275032317361529914187107436510149739834747735732853627590315800455617998203024854465894594220394404215331585707918820876602063957955159948121049212844447799714269747121306574598675107014066991599838536641067373448873416026488219864656585078054616788488036264711534629268904474069667879851394149239627082668596163438642198531797331144171250140242205200320014256322881855775258674344674202381965480162980713991223708506379651020254639397825900616076538421447096572589538307385917700701307293660313750106073519258293282961526785550876079504255768614147177379554937370473130659188832153514903302365535868667428239434662068756309982686064013676042857983510256864011933220314273562626862026404924955090589139913007982812844006968750653674573662469338393011168337393344187257404012570449594912842036068794726228268716169269223028383695085925512418438851595814047717840303483023889696619354258724850242855049665093050008713992223283525016493913580568347886099960438604009705633454864008843057215407820601656660938301558361736468728720854814873514333197503184094719104904204659816617368442606344596169550480178281024419025738761218682149013938343673527467619961854655442843167532353901047463364039494554213210082404830050323415642360094156001272960170901563441839319892400693572571916619201719252752419890904039182515693287616497974848565582635565044017993183179559131637712493059633073300926357602183853789594969367884064476162813334690982289144964957696317003881892609775308446875511581200070677035808366270665045842923997044273425278737721769931179909005826971271919171847879675076862552495332034788456485029905992971985820683950081389899641584720745899442208872329762335640590183450812968329974535018115383159497663252852604904732332728032208917192301976454446255091910502156377349498868637600892138942911593122712119479198926008094399909906662333326669798221536171790150117362988052725651025819483177063997596838645697861777636446908865367876238080994794596518182582738629308640789977743714062833133541573417051271142150057485153094423080192006855396418049509837326074903182245824528025260819802087164056647972376152146189670278150293454567008995031070537196999417887351789370354084857540699834004969730797245770399891121669015807130139163231083376706026784429871544680818604519403512150653791635604354303017805622351315893758918371785935407047482540569752075652120041461281925606597808752931295090365716348059837318674256895388142289010501416599324147790619338519025540580210087020799345937937278736787372178187044111889468915611276210875700577039061505182691767910381870225305832747769702959228973186319543749036021234488909016162061855992629568136572017195088544706697345476751573212857548373183895385029418783746982554278251251556886790431239667170422283047504747200461865393706583938933914179389712859856544525051991104532403371605760897888027789051352928604507115110799166978549469231128151735670534196275987123633341218855218502993167876195970486487851320127264624839031728109517136367458004787472521048842396429044095908651795191019140150621698717993329118406360839111713183491248308514855344452207080140127489192862339671898638944492541667971395537378982940309714925689925245706060565735757897843692918876746139903179933901856342718875580856496253364846999654207093937125310590497699412566171752211685808491180953330042263557897436536579028197282099015690507427129664447054683082664875892851990979020770029603521192406503624730840815491349094313403202110308136293369095900584891154364369365590407810874758523628910415634077473479514216509648324840170887030026875136309451924121962442934135488353823154798890244092972040825730518002982833340493504003480987542993570549430151446537448589152114686248328263687864369441406971913466944582018085633332065152155584091043271202171733302509204320930026209750601107827542000348319062978222216114601421317665460046870244041997874562603528356137580489904238199925423944686821655785382438836173858554905533331521882222950019874622779959433671448162851479408544633356888618759724629053247145333388268973193825835296781891615570642144542535928953273083663895318101916693598800746348694470573589343484773373200091555733849114041217209926493319450438664782103158392798114175259280445718750539104565894716308293500603656358090539412148886431151109481492138228194333821692633101689554421607650281285796535652349779143447162798098246370755611513170873985896968026976613143282226364874983269211077664598554931843268920547494330390517582698389097245647806633459574029897632045637951328697384962893323043480785773870130902683807102885525983033630949818131847077068023002268541933316904037422114378858909971658036857723442566233118059247783730415116369027927536068520080997156983184182174214505325153310911222752176062308266812985236673192631768576673314345073915578717515459681054988872092906962870518018950741438728963643313672184946475525066701443452760578764807247089233183899141655622321400483572148639008484969048699176882054789946401979200394193608947055026395865331041575098326389388960292478824192075649081900013415968968898755025674238776403606697234179586140324138806490004737753451528909046956515554790224089693294226535862225501433929819818426090601252251182155949964030921989467448811625589763275854225334473466253200534342134938188218753383885089056285993535010396309522730419751268054713559828509492710733261998754547623788213080470230289791492221972619630668066274275241944713019100217842947472485156695539845035892189785243140240191073392346856096157104032601917189023622901659514890540275390094521537775927822998920087709842751793810111770378530465807327288257422209806575971308401069191433085409628274399589301249332714755885393282548882105439129275878253373386825549954466530045645356125078389740778390644950752434544642958760157106160729609133307900239304646175316201196372323372128228407049550530482227457354580357389856777426086248400947891877471627193768419321503172860670452705293010987925657166155282898084473426004658287610101800113977420215203890907555635076924878875405096690424484070255274292627325888408166867798651808122108643006592063415649696961110048565534830695249266311022661157354449343855869725521959886651619854335878179804399449598684967488825508068539601447661157491494543213865709148777474479683492076860378950990544790268595011736883481463614519837367018559860441336522517254249560151624715990499794606187444123738348124002966139438862116952086383600051240590363591213331099485849002618388396672399393230293625998670331716557942067560706657348853489263879795007583097881816618463699668015387196500316154957138870617059976103381090663632869792803986127171394965850679176199738497078895063502947425407055374794628889764259107449547014537339102363293838105159208325206878457898730409047066777120105474526144223687826976483606274517583668209532176332839544978264277970424039859221017345686306464420790952604372124091638921850508400128895500295935248635276510292394625588141641662998756798782405255256495974029627383253637110265598951555866840778477575731688801059940170019295305565414462006393791417650414068821958189740140335875470803443752081892587902401468160776121571657439506719632515947683499707630842248120170171130052190516228697868359908191616856133769536727601036264275901371485563500299922759136105376708774610609514670096701041006649644691840725829105137911383827417939318582937852963089469262751222434606912564314483201276663194990064101663793975726353923920663692060745467942153944445458327118967471169618134148844659425136292842694502627003412846952528392079185848891890227600065048660622282810687830693461449328253541811823631351343835230093981482236476134783444319845509635510892215470421162849268662222448611621389823724714991213158683144800104948260757047526501186527837275086074449039352935720475219844464273502360653712596351443343971674452043672505354660559961576719686512853351792611281033544738017976497319227709464290722004650568292037548222821580631512480992479561917486076528656893755298038940827061322518350606924580230101704715600447408999243930168834335021415198741033862260645893368837947066812561229055654955759178332697255231119733805868351868406025745799995981192010711807544309254920668060114585137286122993490188283415018325287848761218568638434348351562470075810791437801004641127793855081708710229690163024182467118027961281509036693214050858122992842885425966032749293969768300666166567045019346508003447904248460161884988026785211348042189904075512421700822570357363747213474300120813393798247710156280946429610555793881172506905844103592688137179918740499718463606103889405423161488028298225205817683843278714148394806329723048571734902062367572482501271099016486345388234632276707938177455631677958546016060859153998888172138716164042313407251228891589086969529228065211712820850737120698733469776393777081941049721903852394195466269947651478237773454309645537526856431007473312324951246994092871526231579860911343400016176362929480641081861166245183998544564496882525473620331295276719034302333509694549951224964483602427449444352438178023754815577585818530560052954824446803482130683304674074393615137117864348548698288626413530801964468937332847310377129001269744984312203802807834679574041202369830586650625363646939713822515975063169517664856358480201159473280694587533488987764339878833940235941008852166602329991942471921758334214721682969063781599589016348587733048227861091909954374275154341208860869254260154376848385557954429265143951566554259376776865034788435310551964887024004247130327411783727964800683355546425910747523074660037496730637607205638330760742573777248990633462430493932985320928177723846304133301112687819064607438017261161179114607725610045449406522014777367419632876134948382665601478148517676998602381118654847746591378510451990248427711746378659258125317599915959317487344064062052081643136313403248259218767492709842933755977695968265688733964393835323426245999367597355944440296468391146072196036012408929222347970235871378515257278779468966420707059066202756974626267758459018976470181294216756477058030944656002194908966026320988637321250887508830129835865133986074808725257222858001902992695627121526279076022836159137730790639636731350867613895794343961676865547322742451016952886344222478345157488087667896238839939107244276898866988282318947888431401621783108917159133263047318037570357463331441289360546248019793498676206714356581486692183629903130108518769240413377797057440992706934666144051474831223187172177887102108184050002731675979167616594005253950877550979900609305127848203499006823812936479973954829016427955200036515998386232343641547992671325201768350806263788796859085560763922208085609682029589180937722278716623082794597080078236428799877606339273171146671959773058573424050079304729997019377489421249955008276163162059184965711218596426207915514125577082286683371029780121580779640112010171462980840804654909157780179412806061629129925056482349587053770752454175536588899217523849345337585193564263778694928170011422202991646292109483189973779925346284472424626296816936668982874041143468558926456265515266973623555276458951502926841319774723682267096993685616288478416129979412238547573921600738217383179350320190197893912987490729722159453436924079029442100587479929604591367617593131952113373285928741392923931953752102513076040240480241567223021756156047928254267415260233161195976678011184793213992131210873953581265417384464018152834064364338346106708628992407006346134170051922519303679998503928271389506397739640656722117452243210313776302237702952150255571292470486234720525825996604940341812407996810351220780319893588260147005497967267807048319009959038522375465072660207443418007837955546575193899960244042647140720148886244762526826886265216213863907102517371106379337085014888741208296691002811704391658192882430448895699342208724797694022161609013534422589584402676308680233949709510201305143571472073301241381040187278264536112400720219201192976497039816437242015969954977003207945238912948658854318985402016449010986258724629833383919318043178898794351281484480586226935985285178502848460525339337738386777624980546619491242111815456862801603315854291987278592117258355107984218342847717392620647350003079921835850529007828374876146118903805807085952327070470158694389285068069378299433438108115093168204400233643313703181372555141792035583607026880316553737038094831477400110608259540990820462154220858864651381514045998276742543253381946123843634608123188718637699697813630374192273461576814870025367958134262555966448348718695239405056757220685463694651044848768155373889425458655425822546353187944565979609097113268044290718581648015145372073880690144169880243456980421230952425309891288260473475010931302479629521766523310057523270038540788854393965385122362462763066467808976416680415434377029832969571281621413777100138638272750894728934615078405861742948064558505227240733041986860218539806758423940173530516618670928463567978021858233274002631873813932279923722593343382845913488211908470835983146386580762789821175486154359521540322509353298173726129744088189837439384139601817895415031918208828910846435203619046026594858242585980351560223314572074962908868661297643038624694848737746536084632178271220651109973693246713605913396042689932295395657573722255343488594151383131461244209432219738551841998582907287634462333347642147810298910651821134955879091331029003429656871886157584418761513740228615595399205911179009708551163477520726127101489350352151629666258648569253966094381276372324932378841445527624919156591731104512026666175344798527205708947249905068837741766293789997989628286245971891305271589696156994012034793495539268903546912412713522079339728217654642842998757721859706451699759212666318999035738310775342507295926539273661657937102608578118201689024831311634761812480637671615962045659410479969075093012674859059232382608393432308053117022274201689255864882011342752801086866338005768809133509292028901202455646908393932105841730817204768246876732744468047901915131164147481506016948182319165325515989730792772824602783956841690270574699086734585900470456820705917559893796117469526610438423814054677225489448497111200025150587490905338443920376382651370832118882775775372068902333749829055114440152141292946557643335750513577866800052338376647182076970480883990303198218605018509036768854570792019347321125483571425915498530878175675217942982340872236045798787955004486958359502633025630339452727352012009335277345573077604250329131566102081910521031352959092359087234395421631229346527458538039600923911179619441748977946903910297415573672274258526931118742892200786324895239960090382796537293890735234000367404086289997406670458657157901749894479705189530215221717300149959520382014506466365173888760244442575227395287410183046769218251155830683675314958736293921134716974895085818960672095960071268159856551437575938558044165853666418885664709407878390326369332118817343470071963057569702456191148724779804164188376504521636672801271112950964051490415836630758617042577355565162744381163872570138568487967259725397404507177174851218738281252396501903952937544448118439651814005589876082494663253236200078872061767981873477174018073725872762736175290112433214766299890140881158678072072800086801563296683218299851324358479557766992152994608191764995797601627909650015342694931594726007287644640825573852909356016833708891337131204946475008998454707384007402589170442365323568308835347541197702441664673266165780696557564299662899426483869742064822292107177409044065379509567536955479098525380073908926798394334253954679748537253106044587542588919335921982913781501979093373928730034776371489069837864868555128546741948638518442848481818483498768572428513120914245335990332886215827097614928958218247080301729619714065023161623453211563986170521441811153440733357347103470294858479802989030907679733584119324658362838922113987933658778565097478502144969583794225578717543882041948625215413336761715665176409966649080490615277756250561424383993788375431311717668465539268687623907975584865198368926519580014134296323661492787016131757127006654753793979614248421082415478626846487150534096168013568147748320736075008585837069524804520691735334156158432331794339919098966074880261727667480615734036259276299520365971264406108791328420005187491799195049857207440467132163700945050999376455023970336729569865449505962432649974361095289486820245248625615826453007651961204548617786036874359187353666289496489129837470831997768381042087927420276499595104510219794912681958365886042981522965885276986755677180170506562785375145532537550173736051132327994593430945407905870542291458346002300213025920679285630548044718221553800578486298402015240992678816004480775973724234953336309580615197618885903220360016878731158272656061795061667302850222473014952504529370217113401824442296088380142023433501421938409091054138206593683538493917016193135963994518379416552535835131977470751801284737402934629302493630503027252575349522758286760759228839038764952703542856405790530391899556983296456493269063866136158893030996454567095874531033743625920816131652601867277939275789180474798039437510497831596472332603867387176461851583092596491062142818749728501684936707085686945704715315652394268881606655431702074765335058761499302253728916093810430159430508957262564070818817040972584844917278985280205890465321677180789188447087574304187094337575991069716799253698255191242383876488222812197389411096935083724398191211757082820160754626194494299078999382156900359165768088077001628569744806641432052768723020133308845035724222368493984081897512342535326515970032311760332152594893894288809102062042116648206752962802921760169281829873772389221185262820691828775827037574565338016018681564316788497132746385553888806209096511557345642771358458428039352515190202394365962861836584423693162506225038220890731390109866225554722853352687451691843749512898802102875697038268204463472953914533468743246004707316669328551503307257756545907422111522638224555737868755421614521056555176753035995170847527845794453170585811454978239699359948468075885151591992106932508324302981619539547021470875156527291909421745793238931241804929787760855246939643007063028933641890006137583901640016493323178528489218488284149092437270630584660245765660448131176477498742124486141054382243713565467605193398922967107055262375995844448473779592485087616822385657944155285864738495605567993156307771746396855135826903738310549034535994344475604188892563309801124916808419005467209772129979547803656291609354231284008154403432108621825202106229525796439299630826896090237958899582583502468659675308877819871990492386122592192429725445076106862719248031613833826600016875543228210920562263697997046688940376972876669280973733238930002036377766618930640005302701665714705761908890931223801836690745851631267517206054819444744558315158584543529146569681160984012164230418171351196089508966129245466469770662847630902804831990991812727693738771783308591118619688057263941447557050718173812821780585565062261600574526397260808599858481407815226751533205785905683618349124446988208699243022130164951272987393553737563959067999132073533963728431962650727192744624737010127610866601473915635993569866824473233041412835706366971507088013520498106361614834971542354184677874160188659121615389123717790041521452037081872319370372643993219605243356890970489480698548866849417290759058007505626975172670068552331416691131698074657017905655258105696035156854362393682116641505668621162633561854828769786158999231442081320818447517398634278717018292511663095846465657536924996821857539912159324779400801788355386845218269675601413646135952197231393710184883118254601363295988766750868909925231697668979693247361605865735505509495830067837193626451411533851885424621221016764420680529726930282002355694258635917063453365404116342999064727059228443910091795802712614833795018686438275037287504631751095240215964596112748445223065766195087305332057100578868039169035666754044252388290650692193113323533621343541636121053439243417523718709471740069624096971474985090582821390541071726580212089484014752179958240642050690856484969705656562103249706620908465557807914597435313240913991075704468332002891513123849203317114348285349940687964841836494278176887087245202938620822076461306551540319773147476051430416936866362426867253084603669924242435589968538541448242119793367314050794254974331069325434582482935009265992088086793376502168335349802569929822557600572660040614389921467789958158609565415190776954614909936105513484427844785602078934184808470827795674472790521081003640062669424675768785478140849727135988227303980318840955521717840159390806572395604500016759437769394239188696118809527995926704066424031172629105743856837268454903795305596172522111243058876891031910865690969855534573517909449380313884604099804959753017115035873392303253747965556241973739503142023357655477915548319054387322619008154406196418375307429372907360548890155785052419775792730070805980344777202172671825748376999821714318385087847606212361788459897464794041556770002458859641829963570611011621663110936687510313065510670519800688132832166749378137781863117666998295394705186242359485979113835178703096960276474501565386147497639489099492490027755052090541001035900732009591706579967194205360413147323476922991547726394258277673962573550048953997753330691533225889239525294243304793773053333667296753980582750505292588576687027662366935035210705267041487950183276749370610380735315611062773549976560249438077453669779851690670641623188180580798790323765311735153849292166094973674857412817218109606432107401618567619930492679952115837118698107528100438481935349147975736560324738709125783919779895175903262860128941746561197067392143821224826656270850646350974383569211027268990552708396727359436770906218204091112902913300949220768406893788564945540841984498742296440288439216582098445588968235352750442522457751750246833323286388733512533567746882274122806260275403447967290266608360170451567711853786296506569122165361591927997168856253747477602615797763558409998278068355414614481852065352642794228506979619576713151961528253804369726988685093965616450073368618354720686700223341494862958047069986886691263428975331691094081211630074067122809982088161703415388976350936637481968128567647138564044928152727562577777472039397894124037719872421562965661428551900589147187186892074772734461878943718301903081132595752040512013820167720725414828660716606053964220647679613442738669804906237016571407924986209460481299504877815387920060397470028944163598515212440371069296670179074610401272264560904615743114328223997199156923695570221536414417109718084424471955413260951697501828050458256721904059866244871127971264132082845669355082073874733512655922189099799282103555241523633384659170790622279461274333121623554111404351945740924807685730595995487092876966199764166294251934725512169365707503654622930842162414927724860807193391273754069867170973227505244501820983175655805970755517571745678467631923425289874202166738093729959667740424636367122844740255195997116454900407996357218154333249485698359930438340180996105525754975941631565974752060359975853064930714715145499331523327528246549527898068967252392328861664353310155431495027576490718951805957679421548690357586331537375728729149248843827601881313718817415877715382885957982838621938032279174231071454028992874600449471169926481308163501161060998732685438052555763521009675423163310488851765487331131661499188939692641698596645060028266172476331540490708469987436634118263248594915244046644204542708394054207167689139059065801116036012173364366517967596048028320010065685952682133390023456309259749081378732237490710389407966344670466393662052854806808533485085788888620789516412804120045560526204415154303168122218495112540678589463524613013444707070730826661093381612443826242719738531583247907748945940356030135195647290510854933682998000926318366701641069922465674529879771843633967038339024389466928203043761243110294303496856979257615975350431138508126963550820569928922164258128227844144498064702306243147683491953466853649145251468295045242227106958257564364619101596566503607149544690741695088660788156998763466824236552364970209691191539860251841049858288162874471856206378998452558039148418860169780020975271122113670883475872145573283747376193691905548801480161880285976573323554072095799276352824890814138368930758712995525859088417373820914409999551419563891997416986896100339082845211518325626831882441750060437251147507070724490258184807121154919069904955186422962484918884968106314467870494062511731705159824980317572706268915599430630796246241219474298793569954631806939445368376491538729908488880768980215393843002507769752231201007803434253271528207223123681322847874859769989580508685673852167363427953227412934056829538695590791415877870941105587120058409971421800936675946095317038672485297317242995358029187913106335318503348801251346569742559444687119732751202315094707639756424853735119019478910591967372806377299733204309998549844844523165307992596845425533340422904776874863514674068412065885632193048032520522189144304147155214052634119745925530194028733084802704021754949815652850842851400376150453573386999776453466433671426515430898872023721475803181500618895665112196037959662617214542911006641194458955630020476809727654072039450382997810832856957078684184711699447485000169793016701816899322555873193033831733597202808477409013722943437912788617239858229721253533753871131339067189252803336277961183855551193005460629004828589645122102102392949427298459246319120343513248373286718255582693916297360185977672827902720114487875485909815413764159141005117277074923036886700572190254828490742973176491586515739516491608347036153929631888723705663308986424881830260990507663711312913369823018289770590785852771698839760030766903594377123941309819309193782219890285542916527250485687308760073714091556193950415793963630000685632493057660664292163876311183483720465843617321322804690389031606268093622722464146767868994808616696804853832936726005689144297044668727657822993862832562260694912110663844137304022583277272220868844540174565686177865786769320416376218763432914679313131566688459614098132253017049588149155932399958725502046384510568629547821898326415320697834745027092246948990244729989153596458647636766201188765617577643180983497510026675314321649656381851647416863945628682370769411257038232483554334505045344882043707257503869497902073914156764809853817605135476473447416211073120103502170699260803189898919754014123205259313010448394623924547894915305869340081534329131760456847353265148003246599182003922430468615364142484481893198886062591045064651629828004547493181600713681337372396360098799132254297250046154176000154827591852345798086638725267263982268656926000223215766937143206040574715763502378411361840387966688554745270846030910639099756076299701143785342566409086030769780654782915923733725301858018786907698595104561351211149056372510046868417103082858120760471991055186321403173673171389401651839386957321857890145450144927252042770012885967521449088877819938628318193235758427366025455880226768649406930561347322279401786566560751901299481086871915749014815300578227056798596052607802154446386184727471768603772292052282836729819308027314939477178426613661793255293189717644050151883101245556990317852301620091492948039749905014238600470950025627094090329026200529351636807080356904477438875362481111359573207304026803108919751840065746352837364391027097965598076444845343593791460753943717335035427216062515230565122237044428897368570046063484374337419373323582755756369019447542196959803692381273366475008023571732419788696702681023010295933938513049471457208902202626609158418248341333912218528463210708276394993636629909733787018178405344926008989083002651901154562573400599511325039046763819686125181980876459967217141192581803644689392048329471312474503864746320445341044629959766679382085376924416620343396043566639655173581794567266187634828593191132233871450174609679285206650764146048906259347061103304658797640180466395620854135101280989882645850404806827146401769653171815392075339941589350557586389247019745329090720445246598334755859129898795365796856833236782818477057379942891067242715934885432628767883534712101579597670343793156757227338039771317619937044060759834187104347548162489849949054176323457500302984201058384770830170169548151935014233897657242338177130218158890577070286582799274975298070665653336445795372351917661909620845004430654833804105704270655509485841468146419846101286985380863999493055147391362695065131117314746632024282863613514056101698651167996401026326642654254292817909448914895158827718714933579050984758863954725649963759542119160292426166907896534971307566927375116973483986449831291108109752720256605672243613952220747912212304849150959614759209022854342693093647065136544841887273937479836783684595122354416832627773227224844468693122601686659155628527387740066977892940758955474487775934706794941731898537832955480728539826156386290914141288362774596844154862289001923902697601615843767310715375118788680273485332910016180314895069344026583400429499458820479860430018997368201702178418209188639296762985375250241533254201110279601236636635618811699001553828886958577476891438821054814293733917659016322057991905438719491082677085100237246267172552540571607914109742902229170574876698300601677602728947815679046340874486664875825669246953286373588655644231376941447859891435459217556304064299596954926610954642001414566749034281436531792295324151447731468564640844077226754219182023639932795880690937827798920630707344892529106849463641253621035836879335902342821209286056786650337373148895433143653561788189598444473169586459133676945856916279731325552984875633613199777609441497944423846195633788465972767223827929128047782169261029606685120827068752441847844815953800704768858746716572005867517515671853306229435471295156240907680696077089029157184616703169381287257957804394168376369348179412077559817518432639912445613264214698574505871216257558530465190850897214964396809660229067776204071416328168863472895316566679853488312293606111100303293924610185405752157858687783094436940503023241163478687193392539078941626887262622102853202475938058272166100404183844742939235879774583466047888524912164609738959882804651299012122599763798748341181410586434473035811990888670127825408900190123861960973992376348739668665170516443443440144905500681604599145759496821543412972484551278505352795106187346259876913059974756427205750770161010047380332950949510417771251631828765341522969380207811080222368464216210783875458123446415187984934330132654361653822137623186898445396317584526290754134305301883242134004805300866806056043205373200844657225518029480903306415365273430155583938568653131688739765452860562432346721370665062817743393828321048346177967530315050483112471512002569206309219767329712811412174186836292597064605998561473253768663979498571447747257168116395704163272788731113827854416990644839939360623977196092441789110213527841515307659140369822720438865405140403707728534314912933221764045430957375186898258173249102267881915280072373421085889707774266635400021160286948743718626988732575179057685873095251626821986216137819318134414180648090208147971481755705587903190143144389178686742720234103272097406600519317172471955107832273175467818216146255787605921344367495527135545891727047242679158105826568914512357521097792759388636200961001762077845434406482723680110185681927266660566446164695754955921725482787744886947189673294512755871412400542014497262238593197527891805266427998893333849532350715619137286240613958103101062236407146070148620648872031946080518295588900594841865792448249671924762780338558729539755186499823588894588084947339814452513115390531894167411309159683657039223291613068369605230738485990387269729020928892267415070734901037125313632637322254362021538799395740977381531288267699735306990533099140888580475959380570702669914993793664961960923061637059372627592159153589502000103106555275568953360496920146899301978230328587357949790070254100838212066732376040216105109520418992074904958415450468252496003902704739181908981877383436268766884616867948776615049967632493485623722697621501149109991893876736464537025111608539993205552870137956391838085344358328268985332260568884867486400559780000839160454917072136315053631579065362757539626618877770434374574917013736203539583049758520350871347824348024189376244793314110221554113738145106637727166802940921847737360328932908650211708572135899949389989981241290294886981632127790733023010298329054181163855843404946653264947342261100949003824454381723908857079348371407153160198684787613494031209542829332300621335657398108441144340552035758511982233996722491220932589272559739239135015342769672948259197649376563933965494219280632735842217843218556489746270037853460074580697963254654827354133794655783128891778473705184111031994686068289489250171875031694367411182300004117713602293520446313251460127852140979399214379589470686597619617495447318371773528255717569605407269920187781069555198397696254913975278197258334546409401110035346091932432567174856441717147375027320155123289006422567103197909414251579047068282661789863040318530925365050224176197359579544075291278856133841311396629617569490055956020386486121055372331818792019788332585627543277732910864976926677003444169510997204519207211731098423997065592387907951795468012727077403078165194535238375446035251029030276935375177728254746349443617742005704902851012960588155542072547315614175880116498654571621520818796847233427589636078312484503251251630197850815550746682669290448517958118324231982551456686036689070714924083440974705354952484481936485301204401545583609423351191687571974200742388417549154505760049819557892207896851489863042694866265749391186901157892713485288075196454496787690104606819270534499959495269756726070046953460511772057983341120876174217886506710379152125665842887902836777160321274979162694452579400532008769616859971416245376790507197340511751334119263526568403240565770504311365244508552562281880121920469810773937966530286355705626723818449639223480446541429397835516605315942966285161731355239251801664843411619347784185535350929433210867678711877371624692033222333945952330806652260899198834283222142522631615588632122000322936653019540839286766898998062581301468179926989084363338835232842323122671263631709556524442194304295247715341942711981797441551649658367818439897082283410954879716148732328726733224722529179302722778172225635991886470040903144633966703238441706976086047243060511158858706959424119855849063679980253022225079306776173290993454004133800229355365618203186760425337274209041499812995313912471823017844838091573981593234811373348186934617957916887154292327577465035091325932295826049481194364103658281827952267963291842732298928714097925499049408583986628202862005683607352557199585099085921561265046958568324015532633420703087411241674620180818891083968313144599845909967837562751957697740214886728141547676131727417690886973639811305433501054673369734538893058154012022644499491428447330232033307989367523536684695458740524591261248463157338158832855323415331405382790036833804288559826110612566561271843950392631219745437915739267850582047509051300550909884585441067201542466562420051362584073887511508633988062680035391985835416423619163507903676702919765760847730505873886888313368832956780311081119793411989159123771447384704915541082457651545719525290913077038881484495762250198982986479688706358008933531197847232228143564262377335375723054268690339883380670013024080644838680436643455124924157777097927384234042662326970769868724442920061806390897145046404741418027578676956312407406170963216213296465429728675114749460716376143471676559229731255807976944640190165958743244498290946069240071646465926133070623576100532788700763457013251883662620629916064231393144218576516516672151357195794000540679854190233617838088366163593153263251897606119772798729606508081899481894243966438243556103979372331174964159735025531471179336340102654859910985897814249319082857354139856083870630338304297343464963941962114736468646157767197846179380255302985398465938671239515470722476089917668789829139725045745010222835671506032138422066733951745770321516148627678445486034373848213456194891552873469387968440525585667887187523398388418360085337046844387052873573402591098812898656081737723411779414391173254235120843599836803572793139065318471082059321956193586050005285068105187312693583074527310658716496091070688879502471039420483289442711123028717537102538916167700600980675117108226765438108554715788422871865250356574225270521515298149424565750022617698940048502872161506742289589007464938705938190430943094836351512719253245353030486725828866652478919634860551275409365402056048957702434336438550292787992019775616672658171163839451665147401666694636975352635423618444455819638843643321093292217769012523340607156100224365385436880054840599079525968305378420214468255657497698437371066973887318029792723585756514250020086633663848643725893723833925126316278395569232937153896389501033129441930110804277382803695960665411700639671933735242643705650427820914754976097654712571585256262099335393214298756261761498907914676561295878547912296752221445701054291922767810765418824973224128607156194150551262100449932154961756025806850219144281887221665529529142674795846672293309142196103371255575583964633283447128149526707056894518640814352501148582028540769295723993537299204813360214365909884391231129035671035052761266458322099276083077783130743492349925516408018910747856583704980790961058289006480387705176065477531560895519744952348110765676279414781657384910408553160371090406578683288996681243289220758395268712899345559788939509434175761487964354736943059637755351244185023102394706640228927387972447019738020008151886167031550479760124760111101090477350760299202572847014229011342266793112601907309583878299824671232350395353464007029602658427717265167085822182885754254296399407357659477871006308635770836155613026787557631760069658502460958563288382854239053201717996640080545214631852076334708361286555765469337106624211163373623180789246185293473255880151914155295993923558897167618437500387127336056520456148370391917068221711214443118743585809629407562984375311343892148566520191602193632716910185518362223855511032906896752983144388491812493225875177948087954823680462139476500914595476110696672924825723082210585057612101729762495904105019037491058783056017746940139327088443856604715464087085990743538461072913998794497355263003019013289128423386809001193199900522450914918857648926717764504758813614410301015536364409588456398333094778109523501123519981601754032497243625477053834747048151265839660135228320099856351346136375941742802936850790135075999487562223898392070826819789104549643322783500587294031374674838589354242755461766629711401392506998912992533217347894304465934684247189163457789810857787156933790679517752315105791015165401496671366772224364748672562852044629245435195502787754564506997232716505339787371438450957970912133731682482433697231664440203186180291867341845217647596533187488164335067890291876615275126380439125317344079372320496769549926748293562250033881997141930033009325859583629110333190799217751814563303896000482600426917810354213415559002833663317862943271095769509308426048677580448961082852093820794739154703125870180446920198598367206524978811740047240647522447849482471655590240785481721807913994458610916583836553025874441717687948924030103101381049492568094528476941006480976257889790166966607004718986350753520621311502659887505775507272651097152091501579224226823122589842972269808697412070277607699990151218277064372254979630952983701336564288705065317171456606333097430696316261732733878574470478288303923503223744699538177617692717003639660791547263884751846035992429598735902672177629656353804630165086179512886028380173055220482303214724251722572764066179858475408422764561628617416026067511718156942997553342104351743099570085615849128440872665509407219346690578905467811448092348916152584962085515001056760565617104267866293370302505751316337168729165175689706658946528249854155120007247315550407159683071792899836301488607102601908324869761139168187311193678923583163669916237151725096682794671723974825136512623090395573024169522085053242111379415453703048547250096244367920945775776404312694998675426261352279830549421591800206580325461224097338437775337355512616410508500286362875573867515505241469573849515989851353563887770138278661453264068321976865471072099432790695411162329764063867096047265673328562466667412868546555725496366818394384191586749164830075989142157457248431078461325513150489781904438833092078714193053445193550134071312619868289918356921560618685039081654670315471461027467370354686784716729007000293270744741257139178806669640947439202674998391573270225329561198146729360055591754854809922710672631676663231978638593384145370209793836041415241271447314587653846519922922261570021155762514544896238979548386137967987536704752737891405008967208902128863939102703173319254161008343474158348606616957591639389766712944713351139875226320677664273667569678318658154213704422760549468489127361407404785769566814626784392437720548024393361768310974880021458733515648451167756461167976678065385573059652803682412397183493633302529565268615624249120985256249869276723346506410878568199020664722473372875578246132876426009697408247872709149283944294907892489849111511094065217328221759276157387158680428450245459701888067230396471633510802962770973210481314284126491870669854578305436319710317418034762848262437662095981202021830429957586676613689126577881529490351942504440274352761466720371402809248268292548212226992638298278138714009005984307818990232486833538767379418348643836679421570617860979751807718687619663275198346568101979261466470345555590404751557817363784221667386898709331850560909487524586908861825319517710666500669453261104705658651237037220006146784571942244272549043949880763410583052769499052606763394281640316785111416091543384643557097176333908351795349116285486074596422289516286950878980422912009981402173516346428162147833675134349092256777424711663345265325102041111590912727498321223337434853267593432890870649592331041705982957438156725587161555858668948390839044432807563876637343126550833617681982413700993589857577449463373049999213116289191443377537774480354461595533558516530831892791097972756526635207761266267535520281555768544181156915167547761961876356188175998574664194667214866613913081253499165117626642771383607015649011287461315545349635763422519380408452622266231215120350989010637705913232206989131097700895922720398112571613060241478187035230505004473794422456338565502616937132739779167935421329767634108291657013906742138601598379430368473309515828177949854446560303645497935733399989616581925526730671083454562479907510532409400135464226431854588187693820121043074320256461749647764305640409986809468490318573503373533466979951617965393599753405500743386020877077358839957026218241625239627048513009420511760756475831196690326035357674683510870915920943757681670898757041035160170577986319365298561399887606558948563690474123449213616653452763443216156614556544146958991124962046322007921580329310596240024875177365303710619506719817701479832533860055192601752198906735370207072989027679739803054950373480478006292365603709911372036467418488371323585233704074150808800355437087717662621408642213844236520165910622434772174568724706958423941709919054281994661442237093826162754086400991826573725281639682778754100967950808900709154185897497445581972636782111366638807762137650873393672759543005265465343271430868365131727529680460839541327573463798129156638135648312265194312029368322566620056046217576569101720903886875060483706267702040199974758348253852401417516705911349327279209557523951872891806413080533732915412769424558632254269533510014385250685113896749974687039563338353148532496108721704059815778992790166838767831102526195221736715323419671190767172401416289437577032957676288000988333280159779142238574774162549898296647674071632120168933445058117358267515050220461068029516271736140715529022395887011542273953733648390477771641208269538614175579039013069810499191365112712661404645138436925530963523172769395199720689433273823762466995489723238236414836026652221222453685046106847506421995492566896551180214677272070660871169324188142810590878619794469992985374658470747683270121169480622412461443688199733991151457715949460991946924247640447103030273402176056984843474966044312631007572877636335747758059750116349266428354206586133803171577608400400777450596974848488459491747619906749066117810548762683919385429591075961829201437248210164078210953034979734988863214825760881666744321800096608721602224931946427524675193904471615110314944567045457596131787378656425935290797270211046408755080160288465351708267275329640100361949771958922552549303403394350774761813334166120675249568754107565321183823820000858554856606431637536113716581563241531558343561226407826974799792993726426789270861920126389184701144377479865219508530005519936153184091239965194393029775576872180754777528016058843402041468541108920769240947928303792903292005896076071274353417598149285802137100430751918243432545364747058542819005431710991303828441912986371816570327088885639200682360436215749267230372534816746038900831648259793388367017533700289088198321525026478726234286509163474810403235826422801384682870876552799251568081285749145796572303078639529785255600018872958270833080825362846711211805673569855782477730533989659960712138660648571838044199718796482025789663240123608957606568705993621911527735221115058001027664010354751554598977593750097551414007734995607850267897954666916457347403664309094869015799288214616321370033161436453313251071535102936328059110827384041609610540031472348449499313371235565081207631832737616360859151855993467789609545356080642915903877057305191799943112107437745731547611597152979686873420657244850840665966072258840897864515310514232672824927524761411759583391521933475169878613928341937686109851991527400821994002296503248634638977778227489618069002657493678091319429742768647255808592128966824384255438944055666311185135999541223658794656705623577364266522121909747262730678495052410958441374884087753670754877852549337512733695763519459473361385389721641522657501632928072872051884099190068687432589075850486787438071717963849620471506832098217385474389913020222604636256621568970488054770788393818482210639437794724413388501516456866614349930600611172783244083030536627857025294502730139923740414588001545576559995026962914808512024352239581733757475343825307377218977740630469708630674607676435625293149736854769959647398157862227262264851320428105249885771539693282041309801367841888991388008611413660482029457018768481685308317449256928798409585138354758659574382743950574274979822572430699447272142789792259117169284174073750108560775906232656745098881557293800542731867367262326521502403227766871861008396649570634220081464409504050534502154497371319695793273903377602635726392240844043737116286010611514935708514971226048937626805175127670422434654415754530553063640278993259037987313156048261817163158527146403567890722244559713630575460397265130530419743458795542376090426566903855361671695153371407304474352182818949140807186663024365418966499981102055260216204756979496911130374139903163563674167040744554787972676631164057971676263791854926032606844013228503278343976150054710786772514125906945680414878858992172851167336535694189371802282448791301935008824409301382838493985886072575510910423651724798730004335462868780567744659043224983212114583754366554320853264582178713423851213974119028580735752161803159250061806902347192711902474062317075030469367498385663482205053910647839339793573734988407275259364860090136393867515508983117346839485511767756673645689667523363827114883538161526660770652654996866832646586550490758468699905456984806057843901077613100418324200208106069793564504224093030277196458122425485614353311452700120381112349914461270859933320301233233673546024776562584806304426645782654874859932776406791733452475119796924510001701791850986720708426530703493289917225991360682884104774169357966730596863142558607495354732511840631867666177206383825252151181360410427419768837777763301627832187828475766407809012489387371321679294762217921536778348846626326749669440971354172431108998507320035515558362168268138265754854278912955134556193242621226237944484123615075852104087175223065230936880674210965776357518055972668740252305848469268149352071784870067964025021210542342570611983986108367106625277429129087185329352261913078961425322278959160113775779723747835906553606362533342871207691282306425851825434128909671943658274833456617341458657220504475937990929689139511883599154270200809734019038358459440950808370644251068482867009476160696909988192846721915599277147781838015900534081673115772874911139364445625419185321543954433748224041888583959597016999447818527996778875521741344482587758412436135784842775561647850923141306239723251233543126723266962535869335042309038412073869499069955439752343257400834346054427334254349522614927983909289264251178003527861818082509451284257092050562017504069857188328533366019485309871892579556729774501748154675452550899559669537834943704263881898451559366025872922433639545324117185399627359534971234432107481031345515302898756221431759823256760839006400904192922404016172785468359035614133494706008095803380812559121928203199278082785500877206531494994683186910841213986759228080570895622119360279626757479423793820353930759879359544733382197561270400523929794915561418581080820648423773005231535770418128855070249971506018200748549377680705719143103895350357933299912540727484801784889897585738462508499259392601298985466395490442827435394332447753542118672098948150276153034602091299771493421058166312925706699434207972188645351756548849294662036431282716819397430735178569964085734159323630229510277964567803429148215796939119302663635285944195132746181771788563837433543998382495420435234187999337642624789397340894623967210582666297360388355488901662848625981004331918987623597649350526372878446858563601092076633428957542793968094041380734373354998392208356176855301871702412820507943487412245861680020203561671639612651095863439980732349134916544324348051820613509292062490875608064844531731413661811561480967906147086963947934383264473630280805382103341259632590144595133676354927166321010198497504622402860264310118671403085663806045554104256199793577736116717760582757912603545667810077479805637466656640120142906360389174161707528071142029301198546834124152422503203410888248295178831530672322846566644933199501632041214230507374280500328531348962480991414434203241265533336125913802235676692275469912126726542488501674457932568962560143519904406560655705873811005758881771870862168781923975830927878950555111110867638646125631178485182444108346541406806368525853896062235828284772690383179746111593585265997539378807694563611796361105686448343828924381783444159549333337062264700811098490223347562469302005601731625027325045457235846358894516373471577909486176467841718552649485414511224796297658514903491717181816581531719968648344745415823363113492730611433976919220538220103037731797967439050107811571696449200470261069406149799221215990581088368618699788250315478935476238461760338780963980402857861897194492465573107489589934248361779194545888163984677246897150063174631884366083380919812764937661008988829987750627695679223453591584625954752427579555707183175688673014977361010996805055516801095057800544395485846575802256145949442144176037552659666146086035521790796977817935138949148595832126530207823081021370396953446621514323951334431802908962053627745720678490368640653807227005728618295843013185990697102964593985689212712357398462361260485936943318616606426398032653295228698588308692995536535425934843397064347849186993389474640014310430017796969315815967380302391687327728580829115263067229430674365126137741508749489442284545135686377601608426802684301946164701877685490002540572421721400852474381345457597256168689892072772827183309292982514748820578280196758666551064723980905605379413321297661014200932547937200599911480373920375647996190235073996168521233566268245122927558246612834466493927402360194985765763871659019467407621112391086469980219041548271862102338033738991017454410729720082751784488135056892812841197200999511094523095715237700901737044477434524918183062297487060736455796122117507956138570341938737268217354216737574590801564124161951477701317444534337336316942912893217851845967434605156998283062444872245636209268592114133042343920999693017208520872439754260546465910161795048571734895783568280912451977635122609839097107049051586175318244402159169624183913025917832687808315708797575573753104376199972472541199458975259226489748364040802717343842781173758340827747410287750642772749454804537677256000719740901669621736661930589766045208845887169842230930209651918585877461539216938360393807243277619102820142623332218206087548757420358896098893911533078370729394616994975301907384647905975422272644263840159271132762474784793961681793920862867373743666723179468700108086112272679363119778116804101694368695795658773556907236440648744878000735091740673604796950126339037175543390051513150548754675478876329699576924054490686494688203126343224370502188992658801450683548760380262265091585927209157328013455188474843851053551495031857137580221100936796230637735526043096253658785527406551009480634311763438522510629175387162533106447370731913110394032907428841781078484899250402717750590632013475167709704020721183115982317911594219790283240077656216407099760646288775733147220614250715354248572519472426894117029911008119364754916404358417445891577954710412266988108114067460702830167709827375460283254601607909455840405440256103178589365169047236203659012766887927075545424565541921687332243276053241639515883909741572211053406701416141590392757761870737979351027564690614635076117559544569163992948389060211050601495078919997037306547810054769413189493965307139711760093995766366148936554598539753753204380992331092018357944630310621612341723410564096547191664392587526830235217199655574781453209436588297857564744142545426329184508451997875901232041218129863476984100939494183465910887569710102068968516849868705347742545009225142525195938517535768802786875821770614193585496752660160723073037855369220055316061467273346044021740447962540907183831661857536015680558843346038267512400551322761193236461377973120091491275501416189080167049478388676880404799571941442688178162674086464354136530916604473030422080976519758308119196511803100590501025447369678542277693101597032661851020313434593531134504694536894235711468387258996594050694542378770557116561038146337469531827922655050582238067552083496054459907196673290215738479456165513348690690753977985195310347347612169977919544164521507521887274695619617767392951477369169316254939287303441946072401637110913801004734065291413600534670735149834495213891800092546646793781152816142769942761929381904356766750547123309077130672676196205878994841929946908685282350305512753169913749350109279469583156781522766028307384810649303514391614248951480433644661248577733722150775517952565331429478502443138103354986469541478447263451609754640763660795834304525362245109950740290735652258208351768310246533963415563793115774660764898250650812007309261611580614279906054629702690402398260552833045530681769934710774891968354191724113031287621443346676359913856662710957624520311685355794270573005612620377557678306960033603789879426582304582248623962213371008377072858870053618156959874691355760749460961121551691006790264991994557878267096463638579000142030498959598916592364201431220131242815386562203115861943267143944209490670868093496758785623602956672555034362215371448904409422775384937509636147473003869256580438518667572021268766353986310546990938529861682480563233667810927156260920456065317958020525245664641682837784599569659808043595683098833293854504327080054852366040358396748578918567845959140397314199346135011172560431874384312763945339247970724578156129314113107337268970196747822464269092021484682876076416607227933731657253389385804148460741946530068698323288671040948692336022762978959318489213803677799942633614896687142280752732040045258087178808548348272417070222356730878180883039509769826928289110694835587796878564230016707997020319804874352941520789354258050261397370746867246662859749104188849142888699314108559785273016637312765599487586738457655488470304023085803363574837997149123451740093942465709479760639999458238999353015271840882704342911304046387490095503076835583133987070076218815514188442058300805607484061314558189081090833784724886046464268727471457278736439637857333280156933564285058530402688900959925295052799391063769433193515573670327047098480759798412086745909861853790773412229240216103413902513472132949767780293452948274080433094746890590913967337500482586795585114415009852248695049166955136048014291332988134968563926557361728902860611926763012246475315522438021651023650619926582971284643742558284016363972678348479401398616595550767199696640161991910017182449314480944507060763714108282433641548256615016238608111647833452429539641503842248251974171051342269268495927233257757391585880711332785391682045757767544285579924153415555791072966595356100762911844323519029861791718953243965604013476066614615230724309370349165896113965265774463702600980556903589528242663802329969613768737527194490870889309621836550378659061385830157092882430972499905559569558500977655129270106721070417119945786876188466139907085391141925119637489312785173828344777988777205858661124385984476476137194558437813474288070778241801011862422683356012677079374075868046350476798924875768571581327625928539795600454642022644254601427456241171382932981223638821460316121969900176742410269326976845905320318904070934856464177328061942476777104878630157980519746500584488354712824478855539721773816559419014211826512488403117341722218209707287845961039910025040957592800668745919295613171889777115022117314264001020061979076561767820941392871825379099304162659747981305244686997006628219142172896107007318674263640448612154923826530920666462038688066068941845305605268645564338159690895550375294566830038562315080887301349706298329062929316627314160265473532855191572480257852572440458407441808785926805876331913660251740408500647125658968399532522889021050218430815363237773456223072337936494591993868520764318185165330221845665049541689915404663349754854241761882942716852046978930554720222295425022814187642774083942890629588841491022189306913784242125492393769972141199001517497301420158756437434772496655063436020077473432852448763799416912987047481824410502038067741502882928472940692430143059418268469708261958501108972042943530872495297927364584800591163332499969681914899816463949439494924495656089272978548703496142060794898268320667345202016957232285625058961621041220110739167373205847731059074918257371173671927727509248742616292896619150509338589884060210756027837381058940981427521685417999336293092177264191821818170885342609304791799136583937035134184893635503261423006743929066359202928677141521459045154290043168252693718278628806171662672947256389446180324751369913408811200093729146053117814228607422888001024745734696517819187243458638093349445480989964028660731252220100796105406986553418463983804646719082158202925659839685501864916477858912758693299388347347909991266640479937768630140926953205933542298757251408854978732402716509562790688670055452271538414679393101152402332259895874487870883536651981379417293157300131089217408395013997554871689138051251564942343628193916326131916875794041124323702678294049277241082613097920044052416734682710552695748245771854597839704190977334780575986355340817747748870787282637716880974652238692192814768279683385219332860464214865777703131022587522685766878789150523120625452496049663177509133611000783310987395165099371956830532771892097842048248747986492382631115416619689142584810174871928516825301612080281787867436001530124589487500391767085233055986335121500215808876451486523302179172670846525411367018019008213059967350261460944674043520596425455149996544832971312107410818918226126471698674692026663698202282998720359866800286600300819654684071949031046746938470453476131539090158974442104979809248388473984122859180613816826157023805487232414623363837063641316477129176196486303446655530833914366342190369721573547184616166223277662979239506293875673459508909392971264967065642534167611077667529291738085219633062575046788534202461098741600410707826573172258696047927607829649037360707322571515030763689143373149605688279143580452542718435214931879311513568477365736139273981945054922217977489050525176814387174341661163245616662314644190890592354611063128284659731855426206250728999130586635415746676085155788676049073701863990668436786305818667308629519295852730204371409284889231733238179735279046453847507851304109959373549992232322303242903588063804998387985284275990598662598538278248015455822142761475198242676109721930500429323964841181792891981742847165643033221908906628562255636521244106377016865842654879559833750878729538814461410197635791629466561384977982194364862067294980011811344696412181812694400196217119407159706896989614596519241942631656378655159801376512014532299323813684063822364891263940721807822978328403309398352681104644775694115374719274078354070769772868714994368455292384895992526159477355855698051547660413470830634682209158757234717143114683199003079923519586034729235037679744399677084651138701653170652311831444659452073081716432688613222986761984762376009834885702224896174055551441424213448293695981283131571745754490985125594993183516444091355568465595402193210905447269262754072763913265992137407779718796292484770382848024307453235702066789937025806345413782387509253227301957624153481136834894440279837403935426585820587756588867089428099386989505335533108693502537663265052497812959695041581807002269830070207256096177653139196958123877354407357696836975570557316796270937804397341359473797507498952968527480144003715968680081893640351089853990738509394038514138046503309015974687515857620754538774668405770058867749280690725622198897576052701488164433308956165027131787777223858058561777800921991831600586828564495355488831877965740014939843922209095702331797164000582870093808861337642889854368958349969346868224373237137409688517291833438801778521169741845129431981019954013739160042779111995807732621526164058267771338513780204622688117221981151141676373536524371407122378012467146039078265349477494154575325192286884683691133803712181642139966779728271348184449520472919843018808474012897784696307242442390060171641584447290211796226796829952616051406326836428129254239497604591314102755091708029610750067491132969433548028356311462946871010266986198754978561883130316967455766029222549676435427268703286980726551628428573304074698127361650513330029601041832392074910926893344001758212264942567650084452770633683302421184111294743530698779620373075702948425466114886835303354080635614715295378489530483917768683460931635628225170889444987407763204018732725770318020904807275551321124649162574243898101480780551953860183163789858430308582250445458330655205202068418489143882440218205091072757238619166897120998632360848115797272386815322564037903854800554290911861660555656854730879344732971167758959623920216695221776747997924386605149265504214501123222182831406768083034427308930252537449832680169214080048565120740775885363979618940336237953110296003942318846970897261646485954192271869859749348708871716252355696782224541378282650165474888562806019287651814688711051036792244418708289772017231174797731572015112892685349347748385229738711188963585555183137277230361248107041343848315509324327866916061549943672292256888109034697247946062330818791324248740536533517173791075935181807771215767938401168813235639697126854820775525032226260544380928522822842595647505606307366623370373217497439979135287344986062070830452346482577980546915330029027097414157445789249229557603078139845850546666476226484102772183391060065076951505829045174804035384033751708597471476060010167532750643607894098265528709700876560085795097749971263726309677091778269325217899274511723117644388965411555886908563599997611937266126829329126502443669126289949947135577128611900753876351953644587030014027319500577165703020629992648731352558655806771606070786184601419867755077588624963541818483117315638018725904375760838050377624079991767614399451799412070309444791052886610378797432667664162770651448627523859181564927181311199841195946003720212074157373597336923508774793855593928710359357803746524585538167091060320361030932564324516018278210351585440001986791704645239507475855843466817947484336813636303341854910004433005356165310175414737729777380358865481221521523513118423737988877197918793936565309025635437215305201116722991604330982307974827311521155206141779731355143209815949736882202262596998705620159653220796896745938735732033420054360593909747317841477734305517072727898533001352671447855314486098163225949127032257684870196129431063394015746130011994589207583057509596995461499004444102862278907715183663931958066981998077016263987207216258051300864369850375674243446353418715243349404104599855337077966437179400991305026961746689992417773914972325125882059966487997354131228021395169150436651769045470923797058269643556408597272649265043257165571809417726897383099319781323809749062775180370392676696762802941080335229522715623571851341278814225786665655799027192753151651215428281741957780092567386407866836172951181292156947353394104231406061262002830812087525255365499179046066670670666046855446223143657411009064096066250092251837328885111610306854849706652629811871126353561768493551346102499069132174121080441548225005513062531467002781904126270545471340172983091185818205411453045430033020297165028226332191530581110785939846578473886371192390836959767885541161167661544224640128248280686732221648024664519580423682743577238399456558987373084232985312082925704875331591630771144282346462447660688029599712675620182955620212271602521733247151025619748003773090390918554363794644565787966962872723675045439008600899261202049985222552722727793541755145352101252190075716210949626773455663072645744738719947232445237691737521098477405688061135901841094657367319218939535757317012903954387714571067995070093815861058907992134132594474515301301975803802707749059403922943980723553438946161323450089755891319555766808093104777282949030256666408446244486125665735605478574662136707654728509672920767087459884431692516873496458126169392770325644283856307624380197416881545341959246409748424016821021153121156617034612663501370449807379105874799290040282220806682756649095419165514735066207710218803504052669547743083790063823540906867826502977446983648069223362168444360469379256265516880375098268062048749505267483558386303186025282542834136851964069758258012354323582585951943425691294129093031458569258579804397653190736644525132377794386247552724219807401074655487281413494373855459883259005825631739197523240209492443434250466527995684864298575835332380714178754700990141861253697887372657715750809716853144852044644813395627280873088204152285956173276565341616487854277813110138117042425006638239429686382791876060353250692518468052952743264134356420162189831286630522727153469735532407523894056056506722916069766920428426141258131787073961424696165214053068665922170292836842762075625524833335045075949875069093598184345315758888085328999123458500717931420704589561454882617903929848881821714528347157963316858521164173242644122801530829163434588227695316514970966858559597121689821252303245272205298749368896013320546287708923718010318704129940679256294961999028562047909551973605791751822762897748799081968718525761187066077431969336533127045879734379078166373135844068749872503517754788995360224408384425221452350088952438753394591466600989343500054170996388978870623372278669197234496299333161282461813329171385797553386643181365659287469689907427064400736157595780502324282442912899467798753084788917214681087929920663657295078288227727697451884282611452136872653922383442650954006781187964282285759909140872584456271953425925439825784646459057784646276921144413010652748087408998908866310650236866771368044548042833858031897184839122906210212196042326376313924646282703141557620849027987887402661999497688284077091643917920791376225493886515296853919609628085457014378556626790305091287783218569368496289243807883323350412235074926684383476772512426100780438639430404204583352581564358042579152312032998363082290805453470759500734361702684221234308524852125510046133163781729074395489652468578629308182627456601171152411993884857729530416474745680742599860093665499992673375057575583424444685046114715574020727347636252636100964966983093366957814234499422881238051723073314856712316905213802642195460210878113039303202228564514395794217649480274771370909582625146109629339881615696717298337328726012725465097959907800375309361143156772399695040090020657156088239807889015190540530116060076095587312755075075091122293894065871676805403151838941899923885586126455119684618855844462936976889532291172681212730203549062538286144828600009004105278101723225698580884669119714035545519343235611948269978657516326976345568511620473425025235947891150073573508825238984800900909402274385315857949029113961364738211577887132880294880895934752380048909887362117464814239368462049043023808443158724394784607686677908925319399007952476802149667782728541503548363347647434604474323618915131812695288392233128202626679843097905438504129411483872956279694352950565222628825794086784351130610287250169010334948252320797298945452483137992868436870906772242307238127434623286881432697089458906880474366167425714265270808509073327140323402549554606790414133668548466743275609815122595262541074078765288568539846132860595511203830045192910306778526946453783596528016701144409627373516396985512986014358074217502447892891586204099210016484130268329386662131617202117159254372904853093192226914567660774077659789667134895501013436819794019474803981259023212482474415867170757971799409515181791465893205958544985628030706815421722732082723750621610257706342052368503071621885691299090260282529872215875028301743357235244474235030999648958335144474941787242380832052193619721168027435782731788642467908816725680768046883271828308636492145727424218303511404536454010931959527860460843499189838086601026500720491524528878609894643265147100526681104401700631013407463771506327078067428892856814417421877122597479976701376357080483361529347296984898181304652657765404992536338157152296171681505129673103974675986424582690168589106336064194485517515261519425527217766212534708675124971225085907602658120738274358844675282909065879869146353833034328619987458295560939460298470649698111252900222299470788293583770678268663003903539385470779762497573077383090294586718492313866229692379210311870936362805274184350501308501113738554915465188017207882939571330774186796902045829645171421877173612729033273073273807434902654983720265911794460527654577828549314143933452727365709820914824646599154775013918297113886294055868698748199081810774566943175998564685467684500734666037730093406412949127518815362891270690858925689616652303616279651091760363660350012158445387700116641317611843144232974764243530357318533809671797375159695722026483775638622303450892278017197976368363886892825337121319577308244142695288878870991696100724337954125154613336502987066481492532002157340723584884220973304955437722495876405607612358048045471973389866599979728570449074830973808785229363609542646032390397660819322445505187583878377951009611033184628446954911229006871303343402392435272113189379916177752630258867159796520419262726866853057136372019711650603495891895601254753926264167014679856373698048866441758653460591063724931100354932179919947998132525185145221849887657668226210558863030570915464876938782038278180067492149592154982680099201876177844141682827542068601006528598204473149504968821182989746481018869238399415872188491725212902083551302567650340649719959255406079607776872171816218794208201340560082581302299178284920265328380714056800572540582304092449744825318564611320400263377955538420724746365305909383768023075359141166890530258190672497764086026183699000588213505559303501377142404467588791945520454139365291269047769398612915079780801257912557789645710567875914520776884376305185394875590731162184502058243567652544182238867026244230200621122440168684476985617620710534850040435409088791076607710230388537646876723265819949784453522407086329256170619689764562612752096727632147568421002847589452971688995419161416859257346170300266667809855386407129335555734611949845627837194866082348828780371826223324509532378586866320064140082926321821964832644098314850486596240848140357412215927420801535256906835596730457945374533861084518637804830689740112530963159031418788380238478758310773931079158883961928957760210614509518323083347815544914257395956393966063840857716902550351003331237372690217547861938692871325249304867048899233532442316766630790922756400443701995395305540713145334737728744795899369563691754174346003568534065748678397037566367426888022744259479039178345582746804733254340152980629713665334597367029513159494965157276707003751233281820619492602099309645282544430097783867422269995204527951190425053532738434491088823263161178405819810461104012185669650267782233933582215613680992238095141115633944770420951427491545551523225998660138940011047433100732801742933307531617814560407320202381050923781248900419961426343660036046860116888428623048341964960570034303819137739218015805750077141902002984362359803874390658836837745181195564041596425656363036251565050299599370903865360494633617761583984028003119144959411012290134316124295822746908316085908901119221758975639885827892487582752648381582712546355707649054550671220437501937602946289257747654066156170536316689428082011677012559467493564262828135715310360561391101617858528213126712574981732594386185286800089112492472455405901706971433565301463054991194985616599431690537534919405530520488208674680991538633340770203755668659283293714922700178408578412010229523666675458121671990127368341282248896178169212485962888789520902361560260529563720354025360356930945723217575129613495042249164032800683037288809693076896739609158342952526359225396972412926145335176611201094044447903401381915876172254956309513515326785670031431731404574845757890961878934068952259991976676151370777537164792119948106673612890310446627682709642377275343363872709317904739843749464465937004116036090163200630326807475306051468195924239614177341223273164424764835018456708133548238368721761598983236705117265028639544979247337369394327027506642679672588943443678829252194513907952815037480174087063987711564872409329837222300077538531150144762880131616561592722810534697001499055259885690964448496982905554348756916350667658664562581510612428291685522726183266717949998764973996340642645124128498408440274556717399561565067631796318294768415257331961293715557146489032871943793400523386533230792392669023117553327968776561626878202334943750066561608334012347261256855425639173219628905911306873551027396924858823372001430577715839234425598082003704977293668391101082933306631124698991651373607518679495764463753567126438698179628164087952154103373840830261033675157960035442762846230366364157017051468277183573573763203171512689947229320488556322745193182494483821721699914980046991529443128315375144060158441650758380192750280184522115047525300593452240906832623561481469734352740309692296436198065924479783875655294838093837895147080621659047312003340289108747889143317103656405658319073370300423917194125466570896775231223569961691721481291145173994854562776825022030324393923068996890292237049320383624991115253495913931696235016998653163993623674210782222016403245011029564036319614965151403014212956177358790494243065755289879669572117571625988992159712191421363411425477056188100997249828855028904433371782608602939633400758892932334980962322854237010531341436840691172098464400742439930145266714853989281509755070616098440009053405439968042208899486631914583848343518882048527213660716081282105434588031709738297427801447085359335924107766995955180783019722713845475021900084642286169921260510980432304360136613524683230292619359443460078496588329151724539099458709248552350128180457747625444854924873341045377602485223691314170327316680056116230451929558231130832055347431701618857967671910173760765566590436688627483659540799903912467336544772728835028112720485539760923596074318600531570633130756084119628412971094260432633159447914565566254979705320523921824868117395695032448854695120273355621773160293061546744091966588234417454979583764920818711451339882024126197986411840333453326350927598769248488766910528482555094334559304661011046524082467672434334709291457365538075678841686006752958487003177263078250366290494116653249374539624000686282514005818310823257286272647358019151157321851508817749825491980226022957851553222143752964514895359195959599621465316095207893673251685694905850918599409211823665407884843165182972684666241503597943521570682414156393600188520228426996235049835311474232599072021403863332228170765644425623471494920727608665618749472389662490019489914959309354641997261087129066664157376714439416465037646523366593637653998322973636460846744113657671749805232506753500486556427974552315642841771794110054071968045673205461409999913162122145579494668379156233167702905801170145017709750230720212601746863222035696834940671524166984709481075650314274303219271410397880371134789770573492381337014433840993212019128498833611685609058929469393750662551313371218013558782943465241481735601658451926736976217357155310813155873400516804197509763797225295394053895182179539864828516931058999776103544389474238568863395963912993462330883302510417226378389888866476603003801208958943674047398015471425191688263779587333792971728646924752577975978580135896987407703452495940635851203695291236616046127774519025444157776019921423411034777680175591513143355626332141825065275206649594998920371299412059274354852258780862762797508426145994750538820434771830218426499496400973371851303389769986569952631062643743968859458604998443294735734595285480096921188586567806534094197063293883682997470483700828758387582219060050205188510942139068086200281361125744889362648511319174453475852698705732412660584909121520254947362458707799502195078756035671043881565480696409885605833724795159998098845808044895111006679605336757592053222003827850037186021106362309765478324321726534640105149650496570928183876495529950100302958837626411554292348094905168620745971234533902310410948575358557167505270386531552741307824133822080348224724818911041328006276432496138536328410996551730209316728471241592561388380151514976500836554340263245649625589107836764053694755605938321959407579647302339090679491047925678030026586773175005705573359978720999208723070338910825718207683430795471063069718181155796149953478864405249895198553615385590273633883208076848790089347275761333737462912139866163398929201443554548508349050567119913198847793516104860456095628580868880891984885939080217243022882744418434335554982951173385492952016749163974510146839731576056303589270418163393247120944598098225796462818620351053365664287870096361258391102809107057449358821010183124739981390853625855275579805046664316205597605072503550013910445997436867408528728298733691414904623977421291729716137054131999872289664690794928778473258895130163715301860457765289972355013697523558489731961692866917201438805631513329510602442414140697867465270490896528722790174570424285798862647507154149928715342964243999754365470162291340359811780739857174009855911807537352809380029455897209896070424000645201986772854201163159588419786624769283603519081228189615292343325338047799350088207482047472391774691223116841654492480997427429368705427321931299249980331303943489131522394203754089388617649961633162143482993148312624995211927403658730706819479320615290747839330296461122812720194299558058665195788325952426644185172072111857810087075421055580973435789819633796509738462673429395045459043492612676636059836573862526879659482557009510392647137923216123470458517900485743631800781153039792319478583865294400509165399107110170616026244677009031572922297739830787171592381062516664396657788633282978990393716625428612364172284548315134906315007293974229449358532247792283237512551545317341493128681487661536577179772370162122047891739565126891555701831685119269214435880723265770263108824510277786109373808717192523103762266239698728750384825925408444335700287034203204096530322552582686393839911091372343480953929890152387901909573563779683550139856417741763198290706720453407816169224470468726297019464366057596262458719625755469087379369498537797410359433958903497459222611752265964549869531034741830873813800199766489360026152800702683875214277413170208872560239597623450086023215277805443928187155436682631579902857944646834757022672277376411637623011225053530404178987407508635338857652026311341453039359525679722367621228725010711970906707530247856192262192503938113230128986016083099320437281863658956716926218408231353011233040008845319974380017122251120516917236390022632705318068835575787578885387840439628157326452872723277348463715149672545132568510566637491127186231029167260599774002840442177772445252484429473352149056646764915870882267980960134630199758867725239209286661963291283881707526608589230286641916626418870621892811419594822712740773530768602367678720589346027455261763252515363975753359053746841729687565939674923950505001313159541459788565393306923925704454939140349406453461405587691769826628256294760484658495926127300563075265640841789179893445666561238965470455432907931571668288888327878050488545864092260207938739561055172608072218639125226159131455846708859803342302181985353871034131594533774167086792760170406607040794437068844344806260229493542146109082893298997613211878195645169247285190664569109102881113447387727739201210894000575059722150224669640247399890111905701322855291742974979583395005109498845202126537673459833309428187586426659653144526878067434949869079541312672731205131750592491867010230381031538894677981755574526112740451150436629157756742120890678221976169796107020591727001647065793708654598524768283260643993613070430043379439248886044505713625039259369761257421202821075500771883046101562793907034874088492270600182609553402770105847977025392951194965023522291214004622322767447142811566874117498044939078348303064672509690092085948699745215008305273116904314542080385000785596180987264806062242183914224805210827391422858136561990692471425030754161516608689290273258659972494718643154207460315101997729532661255934889795662601818513374764335034998926241048974496378633230944965616035286467174601447856693418412499563046600147010005594087155090959891654691039082009164262490160100274714019144420722245323217052679860276163659514335507858111131983203286647783280678969832659890300899102754635773241845726488862777956804191381947079172691337308469738424336555627471776971307249839141530097421443299543720227449525697343867485661882616505851851307613107384159697496300858494572464453296732865209485612189209223343213585470978464335779465273739592553929246408284451713897435622228095374200884793301373391067819999370238185431720731672721844545495501878535087635473591548824396214014531329813012195588108126917812187340232473630083014558011345022331071911330285591470655629267943737892022571371461331666452629282590710287632470654845600908836318245881025241473430949118084977428564811499715213966806387895657193883040593921520090887124727080561571043850370039821801507210462735633009246447606241840492898578788663718245214173441253415366765439176816513055772418632174529300870120898379960157508774697381289233277713917072632439261106511390406391826552209119973929925891943910878380901127171567236292362932620895066639938518055304760315929892523658039970697465801674030155507009716959230201344747053929686683956696299260952371445894903200401069224876521263896283651272279024495139224444487101163487494055252941882636388616189616181278933986778336176495885092160227437028813854892719361475843455996826872073651539570208394915698234551486368062569703934640280381155983957658622501066230507505559004903693240027405872058597305696276567578616548543097221320486293332440979377184465718175365481080054985876790939773204775115439021315517437870160609287809135715154287066377754487295166148591019557578613892045912862470041124704544603021694401644365052475843921874531238900502735792558268372592067700009806115153955512743504398174329944396060800714483913186083733115065227745250591228968237647458819825768283629501429595117831652106906372938489946478153724072087918143401982935080963181233317707903636765073824903510242562367245279103032113315911178608278754684077230760702980249661724993934328930591328300426890906333508463863721811200174127823781918813722163298883285305464786833112922461092227450088384475756178184119078281627898734485570688259624145110381615796977125542434344682896294981078156097442086609946926680826728513674064091590290968173475834711041761309124819891323392615054601635690456631540590915922906938449001543276330830704403421470729714624815638018221379825954349742892161133987360961025920745356056083187390437313175177144096737778469802324723614491914538838418347030997973230926102322799593291985430094504763022859867904410014608596128958435500273160920464610202639673671821560669253528423640040935984492875837208386362731893464753125175246949627634361654471213697328022065118649064935565441986111808101685818112791758954171394205987354534468521247215400596788489063198408672119579492879381054567461772139516288131155963293965737522842451897440000263264021324415477910269878960228937986849565027832582427698855515805435980014486516560121888646766289770402062873511328602326212744558262054835003072181274985862506192341274933241764155431699060501324869331424277280696077778263354853294396094183676890545886032425902647941857705046159328108844319622381210565319283197238891686906556118074465653904119126888097376910687130502010993594941640266910416744523683164451553992398362271049693090815607264020161454818029642130207370266819516901502079784668330222119627442739690157421938151066643909325618421863243042272380831328643042584625447624092729944607475411717939369180284567132690172257205234943372377050243077676141026706507640399195147279022396960173615152573894127482686923858638651781345589368892498435259641053985495433277381997709196942311331104500471327192881592516179652631953650946004130077749129982211585055649183760493967169776435707946741105731676354519952045936874925275902670328913569331022744008051592557016571932365852049421704889443306744035384476968297708527753474692237759610584722544986962900861967291514122662693570489442693071777965060840379225428174811741410166064668861446669694299482404224686171698041157370096829369780546141620105926134807780727322421780031335992329203558013237693335219855786875566365031690940319591374197817919898782680338583257321544624485952653053107236497076845437845964631969823666487723977941886334764480853716670939329110748639955312482947819907274968215270025146355697290608333754479621249337917921923594163505882767166082635912717237194320469634816626395864870754219329568144502169729585637393486654292169560317711241793417645353266020113840611783952288998116470713428670884239542156584926240098422588357204139304342206946739809714339514923267072632148253668462350792001125030258802806126877005521123452896348985160297548659788825374905160767752586216161746633756307329364707580225773835405075866304532323250544264849955051359877724263458017631883948149009590459675906547233750033324940264485667706519815343924358507652520455514974170322464228309090395293456114669032415574534319917026647925516123623973109653397110089830627038479497553343019527783862726242627203386158812660234853741700006034848566815479948434078829780171881123438495179869596988202764389255964209108939076039698349211916326159749516568856239989883284894325626185368751523637585789322265750080198812461450222073784995363986714738903520535111095803133087475278081670333234491387782091735895442404006770156018963220003425715088469352646903478937075030463494084281540907448751113036917177444527787163723041157083094723897885573006126266518113866490297140142278064204636534977096117471754676637971126223640598620120665248158565534816531047320930055829227696115149135632698222616187187548209082415614069929320659304141959107963175610200008908079806867364779831483510399358710938610633329127205455397892700764916095945694582678730398502516645345730641531064021600606814896248099501460531884061735258296402880008876023866477723215574405422301933489217311109708809640379250460971240202874543319917020745206888830036445083823283416104632193230004519050834044655802793355071111174773756589004236604424046009363369697762405884928504830053975414974362389391165165747730850106885984029954980892334234086929560667767382130691869047033158863544757204632510267290881045516453649663230016025652907563603281843492058536520156106027892560599201093329424496927509545719039074183009967111313459906927968722921775648166109026512234450986352327155265324061502832816382799814279667737830963525947552960201816096096548929572177826303316660734652740942939536083194099050101188195059827411411869774239382780904781987715083550588364236893753964672586976329711113065379795033755590419630126802166185512373281246648095445662885221230639410794318753137547427222116959540189066021265115424892495224386282509484649567852744667223368714672146992163572321119427551701450134787451158569646991463268890262661717978313953280389604717645833127340277989556747135273791901089237096390304917501929711060199126104708470053646254620715295671094583092661661802941314735026636992971028639345429949821651616841688589621323017907053387660800605044017754150662333179245791569909166614747918314799906305981626463983094791755736811816952350437178477130630760657368611348135809511824906437812560350553732846191349553534677325636365414830023770974478365285281819251268059984116453442411822251469820313910095604652788742742777633559363489422744946254151841715685652262342302296103233663211142023495448550243883475652581519764853892118319484638397097660473902068366405193306009200641948795398658646042822224152069623303428259669234938280391348520774584217331869028080891956889090534769819425632450221174925628643622578852767742705072311885052386763457200965012835773982592011946544800684821478365749460941711751792053888354321169342451995674599744773860246942888888833741283579922390835031524069170094674213284561853906005196120013499375740699967979089085611353523044171394323174926796417742205059409854858244408478120561437448314787158230918682346137263753311894322021312211944258321423311445905589213693667145715833225274010601964484460450414651370710627943129890435092138791450535530738324284542305615073575775730339887381765460580915059049382747849053250963795284053678469374637759485739597991960995124180833313132289623317028906711402714804363009225842611413223242734156180414449679084766373239942606216881061593023456215549794231753710840368865481564701243074293682384230181347388853923232853373533463696201818382812761646149294672299126291300476029782861601521504694567979101901387078201082405179242420306593966305973695364757945869230490092273534775410884995008975758061161450546859504354596672180337848338276949819059004962825217900282388863546967319888122246948664130611334855241837508475559670477520580319786316315549166297644834924202826162671502303543084824664465106049534198281144437472543561755062478852500501663226890606374725732157533927527719063795773756016939199372466827744759765596430782792409784036565344836487512447586718352304819004873406971881512635750918782373358733712051288190001227198742867608254748038414191503079808898297683277956660387398540983178833698386040081218740771855834902955530362736485116869380430941521795399781796761313054587142870306303682163175250107155614204872156391135287248427007991438097870396515747431773778448693352427669722199567033646062176438821324671790077737938865442294575487971816271050489726859447741859356125780322693214142591684356037361858490847755199383934746886259834944807933783905557555349154332320198374578819236201835564581362927486624264498368435350556967836756169882860671060538831571130235518332477109650204230394619741650199649025663839163674404137551607806198372983975146895821438588404654425903080080991016735410596983644164894435521489950307838311745305147297182670149079488879193297479221094804981838179903057797218373209878668834602674917746326404875303025388683332380999509091604103664153504030103729931353672911066739019846108497628995605866448825223970328027231316242284872910134114810646963684789208988588903844137126742107423185158697375619968253063363734833187050654756295492814814076001332863222691635402246161796536470781667931051052707461742153861873666767004227146804602859910046179923921018815862881904038202417536843909563893692154112436189485475952166184331795384991347599915292569508190920904721250448954706190659549013489004742691268398534208347460497240117128390709148413812672080902739383597797245936351365923245220262192689829105189045176133324514142836339985155862733768082130619009284710189353913285503044193760423254345728442600231238232266979858535419065182042464228249369440702528599627795436289794536019061228090102106988856713055571646610892311299763396791322968995150838114722831452017128785795812025321717932325697420918159340381735086885658281855156771700377976975931331988049915732660387319711898559504626207948793089485696869926385648543916736060306868587303168330940164266734304309432485955973429908396255747315427891746674796616129517444314719030442555127388521443955294369466635282203576332297588044441061865511849149682000911972890712557183734628105649009180438404768430459394708028752846585055270436072403391888517190874028256298229742759758887437325290418511444896744562279042180615972484652632449873428856000819686927385966895822624852496837656974589746575608420130050768340409708033810875755108544557106775656999419094902863879856113958053152534158634521259119583055375758560635554590664017246861867291137705403806459014916577616895856775555374514404175548121662429565011414158918459345074294207120611160050734284631952480233319239908547871442422258720714028402166883091222227509213565870389707174236341367775272590192724533175840412581572821746763729669779623344610586158986984588469283140530955850401233067075488188980025391661764101934408563953508693527715712466316494966954637006517739497762549934859914083415772877388799693928332432642221073880913216877261931490101865754577182386895270563106423584957628665160112100734338896262545922869812575934329147795409969701777550236768214790080637556711799943098822753543868566230666716839501355653876897401335002988426021495899663132811628515566763131015597618382209686869187318641752721026402410039286488044867246474073533848675742522814282323928609013211940405759924938204749092152535849034466673731523129242902580776569915194805877488651238277295712151589273884405035157054774118547243793254905154188831237627257223996309176642628197149498594242253582088844752469151341454806665207853660636454594769100138184139899195693718612633356474849572885827556157676364738724748638342632154236139742971529386045740591326919342404959768837790678490973890957537567012435979083678602114270709198580280605031787628515113643198466699196435802107476848932705503410009794898506557425727275806819677947552771541415060342935760793389899357545330996075430175234350862630645274775588711324024214748225412945187081935534791747893358485464456881230891663399210162050274721472895688867039175741198669418539971421389268517988178322145174898938109188620183838790435095384547818424204297014536444475980377183493727016129734873904579458293813126926739431098125924801522191541102610101736670902760740040120054286649537462636654160086027685220811024512506925953329191962839000364826591085175854478208966220831519337081581358886990611173268669389549560802097576806900510229509274547945110426524623559893165252455149192032928236547233641784118645904229816972660811687885703955548328515526764801854921936521824609222076910664707859200401334975411330588630042442994726963795274717507751407492895029728021045639386563503963298517592003162271370451198294291301839594302778094509166579902934901938291927350639728757974091984203976287109427794634105979899580801632801607495870414328984903911298819039215773004233522151969363648553677733498118559297073705305578584551997334710351525578261848914491081773327141722150733708581396586490136348391619955946803137738727718464788567777856503126419848178451239359827374481605239544910989247968880405736214432900101230482622255444028689620026221403995778771708956077005388318594462854373924035706026524166534574375158701641348382125315319017587149671015132263651578140908636922245108448938443241143451441972552727389263657469178425960286533701681729727859588068989711554131298870584104362643378686935338267204004997492306375015499203219021641927628922632143620092769039966641353851066862222194573968178034157941269460745312731779391826411666578664813771547196733484904657086199866460443890538108121259919900389800117120802386848720049227035585623298755509617506777918950887203738131320094379836097403072160685996594310959914027892399009192406527565018742105517187207621766386708955693670620607081761741817737625035072513170153380748965901723626804992585795445110236472473030117787812075322653719136940801106390673804494404832752530742839774013640887448082837681770973265932543070321763873450459574027960297348072608312558894957111719358606057644060946275710762031126275125574136408351131124989997293062890602314089796849509930178686177118165656140976842019078773783174637569983562573000884780820705689180479769591345689735519255779781787170492188045679750543688999291892481020150781647865921241551012967044004610505909608379939594572046006581208325498875950425664343143460049953382152660518026846241079564696043016797319008681692045430488820721082217043834882078141918710797379541919143411829746375507788414073272669603399208394183211313989526046127191912520705634694760358429104631866391339561578604395740832575588172171631459949091029066848141250327868125095938636099586392539265015464473203229000510603931463970107496788822997064054000949520918794090094795798877185772411241573742549307485901821406301840659575549953781780842527929870601656067858093335592842960182708383831279594375266344361275570323440614245034854393067472814817904268493168757343180122774306755845574229922341557064923931909460304290954036896821836173172437446451893746538957874803762122611302293130564020802757759484780403145915327835350050201691730811741697780634586408246494216067760953673093590299210033126537785889636876269349658095178004709993448184832037894615556830365945752145225183320160111242833343863710204722125012055864709384576847419329085578885804877888308696476631536465730995636173150642363624088861362025060324612775186468234083294375193390801459924296272160432279741258193966576486532266290793965469971566413863255700599159109354534407228815542991040312231858452623778971651417098365413339449242210296749020795687678323279203976397878627551593029991538802692213943913656665665137801099006126944676207320880300056493727603990146239250940288676806831087288153821954837706162930282244270881876078727325586061534048950766574988665104149442544080921517261607949674329661374977669331619042969835027169049400409080885020735240327351199619194755311030856424732026075488168180061450582237263574279760749924428831839372024926058351751051564997406531641219936718273069561031823811284069427639138539769977952277668547711068050347853345689544314770815890390326991485935665678716742091589509108047317647976878656079128198166890084482347022585236830444524742142831513065606515912884691669690510234495362112097652734480423859541024445664435648128633385745175811661390709597405948387130740730270366218433060019086336530658736386235169707588432653869172903042647341357674112421280291016684664079565211258643900572345152049806125147341011128145448504002270570573459711467195803726826875710862494760892097026230705914431057288330874277014101471745050112380075550640426538852921185135685076141975484929506436657755234113890248636980443918343477673677901912463955746597035914970630375319463374782490844618895403676851333153494013437716008455516789029534067714921048067119213923747471651195469145111916326286009313096877873091673286537975974809669039802924120287423190756112793542396374308002187110904802816620248055834480573259666695877198414987234664198449791597733928115995978992718836671847822644493997646498874955341985107780310108623440214160329881640933280147556698592878118253943056452453605978165069261804930816150050438024167770546947130793574106644666335231653865219963638299911744980157701892045819057585488403858058535106578053356285969034280116590526340888138969321360628937867412991372283758911052486264441413024039118654954020763279561088529360429785822091865426201257220566443843459427850203228537918641053686414786459508130910598918813853513816736015234131271786043602425968599974051013655586366501470943837780402086109975296705895268286496973670633607433086849280322021153077737748290720345509956519989482076228268151357800503164716112864436862875633194036055336220927652932081200787393499428090397745214966713175025165493717028790550128729235275422886814970979556441335887024164272891428046646626112824577459253021585094663550811329848996730442564503142244129087604886277482365529436101056727043350376450449247974180254459267985837790035534796318189918734437101663787465307884107379674021731618047267993738056178324484685680660612870604400693029319164234027616529050854695875151204278477776301624443594238224821116133385871729374135621675210273045844372388966854034426742782712111836635586501134065707697168800515473546591544495640308849030903524255225133247472374493132759058012460883285605259707779281401417515295819495006139424299754194752496408847735883645790508991625252515336197404745513686855377638548224136947426669959211050249780153105434000606770970067707505572948938608615961622998943635324552635347334169229715224661104558305747696751089117696679531995736117238726103363891055581216404047638577858208160078219181870748423064555690533674197393922466507073146431470850920329378034559784625008693378823054666965947273824045582032551998168316406444309428351093730205528494135004089592894145800737701508800667717272062570957826178095689121169035858828069394589186282367127963181846351806250852447485825419462607971283205303987063129370388445153195073273107251395138414581719133496365314153828917424213146995670876735747067863682714861876955532942345809701288010695348323943625328752126020636532486448298199359092753326714662562107885390936430257286660682619974381670151028446667379034137202960295318213461976116199243482042010454612134967782879965720849165870347138470909572048462789716896044046558236890876426733531993654080357031214378141880161401383402874604244904801431847986031655779393693018019261447460075981926594308372194542659012311045473308122147632979225709631388383027987488547580825198193761983415553331055300683377221532381788721507873338018690340954168656281010302022637718623011588123519440869565111998443641234281664625524914811376321625787713908069680238250551707045354922744992489784834683054045994201350092910625748581108515699967430892122927179014254805057358819506861680666268513587716988693195181019889612884730752449759615446098247470164683021068478407382335046515260814182104198414074341970344099505845297644280286608233742690513935786002247268887775579209639945097526316719231427685887026974280993422313552167783096433795741835271776225251166621681477665072749406888272103833056629132056105845794808534375976065276265173112379676773900415211534405880975019415170056642061853300722579776861537286270091878439879232799229631661375389398674172598674120482328302143727347045050690388039456794179161013804705052025634738174596078818549171007868052642278880394049301473468154952966421150108815180661322669324328733050289688581577424672550830690094759724003793524487942984643684904800467586404285212766254373578750764201240083591629331152680803694913228794065105317734941181374462023877221642346806095490507569394271345755919240588966405777982059395653425696753840060433977389506331550283646283485421846263033812522045678959817507387115801196271110658725766342598736322259750266874423476235133295299297520622955830663315856526674574158804553494252950524513420447029940827756662823050172517658795373382555647475354943269805312154408685583431508364215631654559993499711909898443879612512839518937690782907004974211025955615668215871176876276390440232093022488385117248248039575364544421471212089407299569334623916834962555392228106128987153533002243242723988744789107737220459821246198029978010405579626782080600224795428977728162018785999674484438164310709270288265097441334669921862346850009130280984750534893316046628358552475452533607793780439685744149116711930891877292927097259002740392526935464677510098931667436623243726930540128087372135561448391735155767485241311011761150835878828333389743607413579762144322557345734595443998788338056438106372334863561261009056645384525428093653874835438662391974390247591097665859288600553592391647816739315092645086501669547344870305013446723263687146161635454182522677773346449925933509467723282216851531962887721207680299052121695537509680998477235682263610856027365607213958647519814051587247016780717003454830363150553394407049910082621528640287345392538121591269458090773873589700538878187789825001711963788997619639774005881821992518187982801117624954736356605740555248283684855024298369476879377847824536564042722109429674698207750007304008432404738445602901143840230822586222919134240279246246987374130821932607374429117255001350525157795315420220251054327396920974715244941043134525152061085069026551989203567153365323617081929195248880050610064001612833510267205469218945593435383421895544777261672749270029247813230952336780254847131950092945806138403113933751988015570800296329393889807515923148346520662378999843474243761153827290568972518194056541484292210718009749368129350977045511757918241517880549526275898600453196172362339657202594856430257929255842059443599862931614039126198564638817841510048020806593346763970865242246185671141326281975535651564863412050784228545000527099472857568348803553522777498984439853619357951587058976579819292972256595828181270008576316788482642565911618560318052781486491074521819707224309922903343251475926778768327475560681938432873068754105612588005099411525146570880331846403699066822476480596755183569777310486252631537823915037208074497039271689232441234972739157980327194791968567222169949311840989419865584388045492359127675946802803626327205585987534881739883603324711914277708471425648103576949348171451128312407894018643639716893406516742671077368767860112392948739271721460919456323145545845488552289297615365445582453559014058471201023345865327119702398360664486940402461769170750555655861706848401706158582427949063292906353646029791279737733608956087980366990484924117751631939529967019463855372448962913198878442351711167645677535126921402043860866905938574911598210150945386849161057571850637338167608717743721254964701615720364832653414019482480345441023728946505634820087964500296406236379464836260469420011710031390399367145212572523638312152097665362743310510829894476281324624573734144733291679442889532111577053208984126250157140140747314815261615036551541019898365758370863912237056039029696875707195230739038838003282500947641341018617041226484803568134420709862475339349995128122473227488665787768879712528948465029658849373166270562338270788981394110173006717390904062201850949560355191930739328199958406933365013260280105636608440415238603577334768938330611259527258468206796128833475029945469429466763395666728656325053945213720464649845248347709888602548082802722257866049665221197907528336283960919087816450318933826267842385722934912506173154295917652627213491138555644939891958776725280046813512657084619064241712859950276936400170403390309351807505432582394365455319105468874320247653216092547552724586360029109587623584381947173374512988041883219508503395506998217962180070420550474256921221128826088411884056766083436597103440895551007744993693482283560008589358756563665655102696817450958974994921795290016247153855596287590243857739482751946734867433567425733555454645480496580725933490577356014432380177407040279461560058085151760754122710365055842850212531109561432148327412656338149926024613875075471632931760936327191278987921837930483354421088255873727512740860462495456144590023232039882192434085765059952108298150501883849561103461294292380941168653538269627615441361887738956097030827401244968602565512090668539902126811789954113130101127701612440864046270499712595837630310082375555344247642899230266568487418518070744988474296762435816146746478324767927972331125474075030276526663513536502902572858029145174789604063849590332747030907391990833837026202894020415467637413450955738352444238097232379597621529859584879038217395188336141480129472040140131457392399074383498304274622090428846851436116123079533175489737950235244964746319386921702520688442221040377753911486320183869565140461597166556933538402058639827435064359821401687539826756940891567240529133715147788314950162186881767358182443355377189124929691417603558628592483766956108883659987186648480900656156110134027063809507746972344171096776494322231565443837401427658806103069361912703167879324747017844790529463991436327631270725674874722747816216975228085124412319391352132372333611372387592338862037973679942746376430505851170619666711062103734962597074261048374670682191889766340405554169397133461242858678720910176786754314695677288439003404182137888923812529182085313489838382070223213998970502429970985450979354879160501986947426961048070788506625072140161252152890146144217319098997144511491019173156464964803602913925547488255474330259306648902976341694696960552603185605791106459641023575411175781331306443935065809164905786293486738368481470495216712441277285255946324279521572848708895785348254994911145863744223893601416135682578576054002785582653501846129865643337389576349857163805694578653690177748509772771989345467247654517886683681514172291853029888023586333750047216090361447463755441487517135873232767494403997180121837106267851243228602343959348271734524404284754522492584191833081240634293787539551950361598734373224937569208935890073076135227067526055051280735829363698573061098018621174868036231423603320753480743631314781128123593017560639400582515868432970589599459776433162146666599996193808036398925867367224621593136826260045552125627053768645171264925906030496597360484367801209174463816439630888836282524325053204705979975315800581814827068068228874763857761866382374857749866577187726112094733549987698555328479781604415806312896457285331264659248555975350539092577016140462366930846468366191057847980252361528724297638932520307709961031735757703095738297309490291639849806767604633469030752967145560212586721904371268659865067256158311767327339196199279239016946412210864729967692195108105809728904153510434358427563113531174064970783946831121067018885701716119795856542437714806480746913332621213289109876713442574066684647298306038733492580103438653981318696208396161912142480283511919486155792497752705747979370008766634397534429922569843005836359056120795754959580553588251620370713452727605215685172003344062148560247990241808773825514744186658572997927009878258903878380970144862391374929778807350647648845329127979126390257286083645417026045503817281535859382721778862399442513937219211096993256899733057052380160052338727878997535101161922286816587281487761680167144255607046745435422173591922405360463780751817149940325375021802497921537451585463023498124762880406540109046764132170242953415582873414882149398883597762022934177533198384257262978111385606249275874183727687688116015435980186710208908208830790655342328174559762180642901797870267738170895853843942594602474403843769348309248256011086793282415547289336332332832316653841161482943678246324798855959785541675091312786861216197663894879294682446714437862073240988367245335817601975675137807842240333052854761676838706180519834392566440616476769353053950473246052832305088171789256992684396299309531338124629163893205501004342909092518126398342820374413104073212493974757449930126364570772270210349463660128358458647756116502970005556345834726912455459474559657389724842606000555873392929020970720577090627208112180845897590408499157367639950402988841184031597571377356741730458211050186132941988924849168748098150477224462033936507256911271420919428015201894434883378846490621737740351096154190568802016525520729871803386765918445171537568445057077645872288553609069584675038152605859793544054701266005701878602400768677722308901043820435862173413458298071955736848638368970930014194742222062348601694914103667137508568003238079495605137074480187871867018918346031444571176930452505853533056346497732733039147954324248812813138776228408853100848627119673078116506579842435083215173976018590427229668729773133343341180022226748378609284010616923513383829658897514681197067125699343680341817544742974383664636821635159725577557845419413557748642699475287210615561063483746645109577700965834911182508434431209283903772831914333721428889531899139437227655016109416861510081743419234701986031969341196476243630047141996781920460800351735116284687426637170337838185842206409434308364247575976637342570962458136002728977118939201295685138836097686731871301112512782052377602707641684272463960543004994454303486906669100373890598036413907285186806906080994545404373112132619051740350977191284114976782735116878655154001522377795104786664668772170174996105339060168256346251084471876986782564627878202625916143725020292016110211416228091296086760926698115700797145048266988628644939450563787452640040274596969262394884596156139950918279757553808341952124443009353716008509454924707932978769129997977176719404887058518036638857218520115932076670757920587816793290674405164287041166024867668025868650744029613265644308897296239073464020202676196783982428934903964034798800955932000021773933538968347276038240549677542411259287898641516063254178268247619090194599584233648857846470551625049810678675147633932520923845347175811673645032096397015540333204005085599967645729491633587534016221884651646772148162143360738673452452117898280913502718390471863244649882880206276716718270206814223595559312404260341473854928933639837126359016795750635054376710742265441225047869913240512007839375214017174821150444030597798590023279093754660085922210612985603175055567059021166130251397051209849045237686573986507411511115953547226772674516446939404372985574193424404788969397780765976008974547281450265805041453703363206550481246293607143390859127600770551484510350962173982695233327601025128980406718716343964582597963418133554593097125852581763287852651901788419612944351887226967991878398915132352607012732486592949232144323529268967405710494028180007342387608027213261963573790620087652777022972488956981393737958010432656041070087779085501848715059719559460743120986610078833683079359433236885696653104458229829314792530732702141774621170497866215012212212896312875217904088389171453628172310163178713723328666646955497250729792944972706519486334179298557451449611333823024597862629404643716684607864462672053163043316910829305861555710392697481874626019487421863956217105286081941282812190131655511128266571456173296740038858425873038336576181809758418637402204979367714239987501117146632499089435217826869210302370454908575351823875609537497095073596138639432845227269810952296171264745703800208701123321092013654596989586624143457629941299553806516382073662438243475839528486447039109233971372433821885824880674498288334032586319242159347273791156350948633079277240334086469183302263718329163586941673109125909058920155855925393048955258846893652640773153445065915012215994932140749113917140086290245822695842789064136576224731755418141290205781645124108889215714794359439832556117294475999686823561842915932175688124893671372666074402267288744728590164903617474940230819970309494872364120815391081208929356242947518634303457092389054527358925629374004791205832500681482678140182167454165827462514105168811528881473586471867647640055930705969753884787045663910191378368012319915096113768003588928656540022707434922696701162628505260186682617191514895885809683413652303342474027746205524608759893576600547342479327257496115400958559802826641700915636121652505694090226261770993256096237268445282715019813288076463297654365528829938426948614090144095126654938472574049746096749040096084604193047870045495210224886959760653955709689958539520891845096872731230748480045221377402507110755718091129096367971101489376030929373278393972989035127359348011822811434285022182524796412264907446536376629315754788125031537424559142419662925947705957645007224703999670538656605781332915831077112989004194286037651253817678196153867377065420815857408310997470622358846411424018068896062091964161947785663280739792502342989288291821045537829067050346021880237724703467252909894143961306041120544798651978231853829842607806697226628959887362586262498800313102131754245912257383576498941290618639155599386644449066375303716195497678513545215497467870006559869051835531987823854078198882185158363351554227173892372135339413561397203422822335629702846247997903510066542860834067158881563814583376737998524497501789162242566891396667068805462673160895770209321788367974422964404011332407077344464194287737700911580489178899123051488595460072240819289522120324381267783140221643183716945268050065683662590223867457809660393386588036157030033572166785417479213892555584464539433545791353550206632309786247776550237615172695238603348248717722149401134335653455639812894500280172397670780204914454960168581126265328776033630346381954734629941425490281063140512850615152336298744613874378618755116075020591483332350396785119688417584528612374984862879915216319255036563641742397885914159793736018389439042805036489959764561918047850470919361343191415892051851647145629769767895767304123614479678865417951218992190934150289818070689907309228478289915623788282817223641909935289993694220787444375761143556419085602621511777085101873344427507279889305940696500886495199413758161255818946919520251018203717138699594285909854834017164106241545783265030891560129911593797784104529491247690383904283703309697155739346809473326957236904942259565610798608769802800830457972805015819931290235777250469971739145549285491544218072148057715908720249994471899803801212068590142533100531314183715367455691238103313553314397646754892524661026125556480819960850057217310243350098740454513840455098405184812320300925502201302368873308381832176389228974779895355995364327777026015802429517041604342876866430946585183547589527182454634409497014474613349789537024946228511970877775337245814754730577427909558003127979980706139932897420148905279094017988737617179672558623745453261975588630935950568725791479181311251791715294102350041170545738689693248586535305621091984182623823336180100597777181467290095043210657172337246176412128932732837157168463084445908461413645732053743562373741784284565968228110934359615111767249859217563260502225302031999735401204989741384629942405060694198697059938445051033998530319778076463073633166913557325640790728548790355225366703167015792685794788331315377470605821191767006378380527915432278610096664474246415147569897101909020966066727871968321157627011910398272511655143680785280160977318372801874668399194826847888545573140838880427802640477241417842437448444594228584253774323797704839122761300444493868087515696314431283506851924219712642140133294233071683303921000539662135517263081158015240817292373121310237062073424339443192026326619630976876298200634641528653418844743362103431969056219397867226672308948382801921524613729777674817906072652970319498606353522931889279675066028623796553995642801299905258715024127835817891828462652586828972193643847134106672543528007931422598961837994644651114452116674697171170958878942400344449237962133737573005270476315396637585943181041195699742478532386319827647765991628084178092226189574270989965271291385901526539264722786683065486902075799308251093044737196821036086983913835623641638879520847328010283803850671862437771326102121007389252834707435069173425641558968282465191859224692700053422710965783045531642404676650161578188657852599266120727186352514658202362818858793016958649120475802889851380624230802313224607233796175265346885494915576611711481520536101485387144188288093332870271847394337746426568405638682838315501020363181301067952251767520317575721118287176828194249171958943031767482350255576884142333013447677313283944817646854451502661608498326177817329135264937994166513518836336316407977533541491362475856186221500247540337161024227188343656335646527533070855134531214573398408637996884672640798016754490495284883345823998876797975846999596328826597342077555208020080318941261957988915571189250473307939436934189906146760614003503081240655773579960007239572145020704344351539472488960487059145682282392074108709830334564037715076666339226467364599544819847299837041743037096085834507238771237455112399139967686742954216925941245970604101864017688081336916113354462092714788737764460639586722810106837315820764365749385676069571111656387463858328848826117263748356780899313346014427931915957587900709610169080243882201009365695094449078592538724066603730198509471753480707351877327559117057972000247741871029576274313608582706199945209994601876921249038855764526425826041543603195164355579116177502166603861698156154746582215048730120404273521677344500326723965313561386655770063930548519641843220608826259906535095043617574128056962875532939883528625021264143547871375570365701450495482318458643841751645767987502772460658092783879304648950791259572416388277065112893024532351920546811947492042272440796594455799108540304266392038443010131359480590598867932504589740095236982280175047760849972697614236432578067606465892195922243632470817467515999178713804937904600149045113964108896504573411635456179258698679852030837313996041719531978580846649545291131708467009432979801523205397035692156987781638324942974658597538808604322104506709000049772087318521728501082823642685486314744521490359602382730504608301317138226187790600797105509924498141044340887983854893719914560785325147232337246072926116706558824900949405612987040406384194002246367283203844260707682108811106100674803413366846974753611183378266007127263575965538758468173257011339281287290684083224491418217209864642743438491930684913783737049802727378864183031696537087241250988461656242194886807610463234732556874684354305959388037405910494140631243533118127445636053223949964501085716025605603342367977189308418770891678793089870984426875642036587602708277761114748746044320000037407080886247726078296373133349995827000576113513432066809386800212726046527607352999688408356650507238241127527418880536581620080943728142379130042051680464359959218312229052934685472873777045616030453689383196904283479154674950593549596951019109169393479220945001866613125464300483622154611312535891266156586682149715981178251040402152228930048209180348490162949253160689365087104923862669753196350926334461180357472248437544052443394254333390258579499532310085443183463439095094448811258234703696930208632334683547536229997277705764666642246020271375999964702961716331302810611953397641313876843384759027927197393137457467103865647991478367532055738420632674084743910361430327295006240090634214919698155700984704020450267602478910672548851903164161100177152332086670455543347156451354018491202064685812075273583543240533218741299653939402649874082466634957177668771413449488569977695033752859051501794479995549230045145395233138342237410456033003404320242352339493939328245367006068188061830279487927615955676755968306043601204626977619238467079601624104733889563664552426850298067775371414938937404269604053382723343269681346204200375246100754338189198707072882673544867050744329311731128968355776869319591837161920404156117410395038660933795532382132472058224602816999913293327712997273421274186691259282400731242364969649924547631699632256849402634980033777171286125155619738318750803012571236460060032111842312877941952399786165648482286746440286693408177930720967652661453600045899809492730450730717852554698501562979659434077932064486585340251772144720597385313711189858512147545026076357121386867696299909461975403418035350004111493698893592779403854266670839340699054100243859070581704576542352411741818403069153240163451230310983437564637623735106927629332513162589669542208231433714375972266995163146665207131545152997806579613430383342772355224738681886785258942910191188030333045363391932143556075090555371045271523710264075112604980844218442701333359612154078610769566031881174687001347582106516719764675826341914024336591111205168644949001664064669547395755888777443959485101590722585693614355407734218854197489895891939148302861790032180236124803870530903546162919235333749428910334257533036346249088535729727918739131881611647198434449879795110283424547724332542439556853173001369334306576700807710100173621900766998944116883041296939788990940350524412813444830143409750875243767004295935061814795115092254955509667460999383606922160117658441513923843553263921336310257094063928879346176460031982221563591765939169745454160501487440832024621049687032840241004618989313607857680891040040848927456930828576814161414827892509505880551676978062375901728062037168757776351223579427201381022958967570295740566230008137194364860711528053251493183592460850126561613971515670077576707445127484929575217719636079154635895403661497640555054884620187438627585541500297557959150426166521118531139851296254771738290380082150482393368856969946411497986024009126272851745784866480032351504167242366572588574274757722968458995541510708294636769077722396249833619402457343642358494015050816560841680245300683285585150403336554924511416585829890473091199350509833450918521201089262335833110928595524655130231752683877664038387214602639789370018719019492104399622264629450300561193092698820506616868128842164534021551605436007518258426678086564585901960409473617370721476860468433095704966332118003074490394646990495024770545753548409441429902219879931010876752763708760712500647980357789486950491510333810135640100193477527198565545461361211182652000732042125846049525033776922354058110480840014846734672094088809340339701789730910832921290096639222667838913555029681015950556083384485757751646899164290171368708998377249437483245775779324920782987287730683102976718717651085279984718909318981621452297448101609159846219531056590372443952391973538598004845805754039155283545450606847995765515887559127703235703620807224464772455633483905112662058191959978255680317024244903591101220764258286868574697460128264550075603512273641732812851861935522151249596614591881584626547485668030420759703320772402682018017279057846735801381749332568530683969314610363050089741745222618440520454011887997149567001441195232274079716081759238668073977410414287013751218992797758876842657956695873640612887375920418368640235828160827456577675486604304808826559704878801469600080894041897018534006495527846222405062178650320297192124745428163620207777392240701301826172828865849089061957709949151554976168044693882860577040222617391211354145003807697957729544110497361444497236879344362357054253253607531958584768847394766592299213626335697895620695719173016086685905371882058913248623155967048618085474673509740938753484961207896331311971790342487262615223176928564127910624161790738735298759738993734599798481211029484854974875462020021788813383316165268175398160902259738917069215786278010039483540594004269521668331125135158776847454326394645825339770059645054325024079892611076410069240103200521483357075858191888029861794794532336837617793094474212653543268575524543854516643962379869257504950210881105234004217507899895815681589971157377236010866291300218760640180630567449400835362913391306056702005948212280138352715077596763744704820562635512617089230999870610747865509442890527068046930383378270513328071770201795501003194677303409350536062363560545523942803907131219402028902942868751308623888856129235121990098078945517541295838969562772259478718343123437149403865323273875017730801539210980791413806414495201289363798788331351607915923975240690705283117480078418814069377764594831808393393148821602889465442580907753727750151510024814912210350232057901390587595789912707257714547048465053218510786175805115646339863409943996038752147124391741881350251520716855803424543739518609898060382405325145928351781264055663146877694624754489174651791569825296574949772288807590968750689973201006153790274889730148673484710182611511306038092921454725704300343834231893371345628014000508329175276705321914432010500216618472975306398093353311297819012073889412780714612763641519452219458179222196735627552928364290729342100748078688333234638569472958883717934138274972916597149932178070362345555617046447503656477512307102433575982360696068720977242784658862361923153752078560115169682824021582219722736288116894791597063307913628984257964426130048449084674851813957902401835943548647077258954934890679200787360889163599818871013400365705439799763559541256018551756134900676998688234608661376530891447202910823138246738484768497479348281978724519362161609334019716307148482184591030392647205648807051475137164443150496732226371383559115502887296514035051709471869707330252501193314264957435606166174255479594108338624722512447031216396662623807118470037899085207224830943125346792080944253338768663129040361406912222579660536806272479654524248779251127788805913534079769104965614841285327425701214960715481763720472280650403112723579075866095695421822654443776168443276464086965641958204239816385559766885016574052213950004946656090203279642463513005126222490528904926482939928918461789032465225597977341379059802799647329309097596687449954483020331119942263930976745386012394492437004227641351043906375887022286077731882021597494688296293987368218065693920206410994325390354775861327170214762601032328338856157440361763792325528949334299764889331077948786390133943920344913849942233200587492657379658217619881389649818285547039489159526860515371618576827596432282247743509456577654819232092794646907939007577654805593314356035745688083710327224402972209193276928163569596760945971375226456551539129975524140573505204914342923649378057433827486279666386741934244674116557432239236912222174853217009203720744347666084249843258960525471848650715811994087158508266247949542638663714804985274266802752218336707989384991525867278377339605848292077221096122890729257903107642842732401636248775421199859382757882974141825838334122910784484758384027669468751796665807603767037704305601641656200938284344498809934366813539670877723997357493154416573428613999476927385515796718946671363572759650739542116307954625459751287308494189947468782924498956522836180020975295505108762677551488716010419330809808933915742335927081428025605149567168822984826157455367181372496303230079519470685929151512683140821204531868964722176930796821429261595880998816668177577061624499685175711161146177027011845291571878463223429505977909403813023421980347272967812727430238124472798065972729439685675721585479552341930437376556462694729370995527256905474164383308561220225769934729727693669843930044764581517346298358396845655148008153274960734105168922512185175424748982598098760210472314862870477359194457227556990457598428316436747735661347050804930010305795186322880736077910783988942363932633871868172638344728613936497622687760941214186844683738453138342328456975942980504076026958914220280189521344483614028974141783916788481887952779212057040311418915093963896958867346138447875155860528293235125951616697345172103555218170503011387075972696100067773988212826960294330715738943163247811089814149397676703189439968209256782291938484578645095411152330012023457322059459913667000231125807914208046038329428741279678693889062878796646693580846125165034996607850667966095562759475841906005472910678252319490735597891777522935219505359053279306437437213105331681117894029970202181222491927395245620494227136026269131434347865134330446427771345813420364281101638349150416652016719430466702528083306416169958312148338433995825851438793294121515366931460905852575603841812801781282866365385581106575497076479018679048930685127098316462986404442837544013229388477848016042666418904360083606569967033105615179365882839769132872077671846391495785513411663973590135741997856071018363492219848645509163585612066529753495452726892192323561043331405366987346922351511224331235858924967447226884442756057411773026110502217903711578843360323305031504566023471177578096926044197117475818540924879801916838450309978784239648555440098746860115577611367616771718019366990341721928527899818456887464999468527490656672330435501870183050603851909793586981866165554588243947934306041307127167282662510639421548624019568930508329913317843369927367305922662748497623189259440529388488236998807905067001939960969337447811268060889017971053042567250804029298533047493810725020447018467937822559438333009816100504566195761749771656431646854999590613382325465013225865000732007583064115982639490289347106649065283180192207253253578775989713386834052004512767917107924656965262528403557848473203258093546126263831617978921618793996318431338222766214791260188684507713677942594639386475813318249278692692166795547562107634402304879958137597138777147831339937842990452222304662863992096080362192227632052200399576751988014568117544974571706947622842345144024799046742125305140462995029502506596979237704041885956594127659923218328588103550877276853912672607750988348248941978204629490377027431905104105902302268860097612528252178377481049699903689969088405599274027935701288690210319115960255433241734529661834990600884985977777291515157171918182101108797138856864965362184716533058982696694264094821406021771914847458453934625659621236293842812254429206325121215039595703439174877670724770793832917153928102734192661600564676085111992406872622653696466231615205578760679512047451072154199594538955495628030695000749195578851694044583724748073288502394882063587806298254556926744296092599580306482792897868362947633234143784368801626287346036342103965280081849901925359321916049614489267021634966980627117533378140717849078787919987987542709896057725933464135967164163314689960788000575705700866281714566750685033111661727224571364020442429464325591264196999322283298783121690155240378152501211173200342556896929432585959948238321931663765935672403208699489414149631814083402471315606999437500081986485156401857369001616870036901631793533953293442546971781073528371431010150984924828081667384309336171783159130695774477135897450952933361077971644986046832213553983023829773078545694478953758526230568002644791075053875793749400280745147834263096106402053890192029402179159878332225423765333053289909067996145232902683715950817290474716501711959149824480119210282722453992835957848869459944277479051944500070847447194518356069467838125389533770268885279985224601045777138673852917942985295074567341728262641669357108885240892806575045410714523980028731593570618507585294338863699248547785587165239256828425465997988870666097647603712851339054530389670304943400957551472589707893675528737859071675344830402485016773996607002857682070228249023461746268252074476838469873106862025487928781409010669986905125291144863165965763674155975861098886109582097345951484472720475176076515698277621574922632792005146848592953181948901352183020033676642000451055340302279934899152404340360843535604529660620819280545746416817815691991902748743384218096389839234093769131771191335332715400776072580272325272968619017003466326084395272894405355775015479094980088910429409765142146143839476454733839724862711802498296532628824702399569502164432272450376737344181251198401397423377047341416866663504547868338831236087037736166643677180651066536357056841706034275981307792158937471136358432861206533185566203328131314032875236859218228657549519319568277333471891157460838114935005012050187492699021611106402533719315176749171505591916816863019689699173533067871076019402915830084183543771753531714244265884144935187457947832056499975098248766015599271082396197586766126963158282033790184587606287117518571405056872521724508367036235321318918033447516745993476153749973920609765437814193178562016050252665156529261905190430105906606796190797911000024133525112375556493628459879673243037837104370151022212776436717242820149331901974908702325073329835936642271271903745605361904139484623640453091005099243801621480097836580466747845217780544335423949499841427810980030684184802066256146858952544771762658891235867348435927756313096834631474459116838222460489423898761153975410676780250420920924400786493164820214539868910963884631597407831707406549703007887366095925920291232395497103730111742292504161254633354392359757503833865074131133088398141579758316491246592570215299415542398827177872878585956826356202289512734587096251464774867164835131955892823599450893459337451919280810663781842185271454394332241272949919644220376175808167787329262222592959813641525512372823319921822085113314838963509958381915682758651978428257034825647296580500343414581460847292856473117165322204564839691970117773776829120708666258861830317680348206202078509991360253119699291234402623314772885794223208166677211155582928133200762362832232292800879098516436922634409462893258318450593253158172291872738234872614982060156285013959568110997250891069294446181617801807502900542832552254455858293784290684751450616675386229181501461285896760819576110541613650391736475598418001659437744123766831424841215679443783587235802981000219591824954235180473494825095980295561641919727438107670614617090325066267563050284257448837733546001143854417696145263344799320215970237158753791411511628043474222746287382750244805999535442523011921246662501424213883141033584593771660898515883347140010178522178587557471452758752862070397823553343517078944932544911808329702224573713700379938631893645407122498825199779799611634349315197468520468431713004665115923582684881928062902857899842032511705753592451076639227103817646483086133545749447595189751850645878799124694250570321739688039851845349741107838257528407259722125919780592461737673453544061303701709068497630134228436941773452071461214131765273810669763578201877340785727151688635637567444799189027295784888833793681887860203901929381217290221848280855263483858312822038489573652098640660904147365125291174530432320154082199843365735027532770712674064710788735007612479730215886464521470540084574310072056332973507060356983499073309313037707027482142967036027445592748094214259240236245083598774524541532414206831176231664128166635201401516747027420655040208300702955235829461632935926976339227725583424428169201750896789552309954888834185949553268612894504322387103107980792121470957874570094357665398897055536717513927635339451139406054891486147771311349815515843780967272062231102784421022168426673933462457866522323738761628540102975545468201735127268965679790121300250572558500409033468966297940733185790102539091286077257486256270604758360358179514940554060920804648887261967392332328424545007853809450720064803022768887819170862654851370285529408389703804319534774263066045822693050212105281469687544841916159878886688116859456393271296136169090822878835061942457218479374238269478639577526233621197949186842107435703734702604773909894189688800638622542891435929975602929360184302253416425590264915420196025330654222918927197779309310794320733642412734344673036174857936921061178954976107588568234459973160571796389576482366514759694497261680004069715374582491506773676721599618184959621548086986880203799408820005827783964631045822449679783789811653921013840751757775697761632491559260229904102600361382748196725087692643065112195129186633212150873285440111248096263599999781220285892118759155304511650791758233960635667611973859175032630003994340070565329086990939709926755315415056538611529827724821128478858835822474284093279525494170964140738396082294314143353585962513054204243252579643831663870711064915778169301388258549744686835999509712422160135668774890009264469938197969351484522366551448413552210773517956290092600657149797720244559573651145547677084249350242284368950202633472054793561731836121987913747090202060718935538107460839689478619801099676120805353393302845317988660679555945285829679364497568009327669364466377485262036029509257091658002235982611675803541697448401273085345046297750811393334370061967805651995079878117482085467450554403755268644419115680792088766529293891155600274731721024697440272325794505841946244958792282146936336349347424999410831944147558887688440747008076173532945850844649951174585952392096237178900140270080213743501643958322195395739721812264404004294708641507228028564959557887360722995062970227833503442242843858127862131226742329957214487701306513491882667273910634119431896568156575075721375786185232183918469295295422526850384707194542732926234146522832598799638484888921685489900266734972807614043103278136700300208567609777772872190040553025197076902291939215132369525267374039590492460856638967962526490877300919493192507204762665304115058532326618757780009749798861350425481083309401646616291346426603485774535019073923000144531272981771612530918552661811263100922937245453115444427886043740122988136998290146652694775094102232151582381757748144003080876121355980375603551243303735015677722517877414046404500637044970162737010093228064142150154128299093778012345057582444436217385601860736264685428091569627393877268386284464430854928279717889864338700985150596851928843866524568270562033864557267820017596276616407892639681219837810604318724662050295808173690763125736642181462286486131713764442813009709216688178895118805380440786581653297376761350205225973811743623854379410351439040272929775861548602520747537019397553798148137817861081151837403554766892583774696189097520240808198353490900122426163347113097431953072296309357914049791869702041583745463446297640613560177166923049768295916791993024571434628815431006001743709892416861870163575402957122608061756580588715219471777720431200712610582351062125847476597961069303239422347020188113232681916984816973957421784405214359941554212015178562791940553702662507803175499881668324467456642545126368065325758995443474462704305948914443753638742248873529591600720390937201356698664653863433594245727056657867128252559997141242355161500543065331738312968155760769614465592125363546995779812224016943290314111141345645698833980323016921464917496467916571080202721107007148444648780979723380072249633689473254341846271769211385752752030298932102906711254877920496449967043182233802992798931736839662447981265667760453117944121829639531903544140121241269010902568568872187044434666770920083877545445591289723493837459813071438953978863530240599929376674905506936233433219982251885196406778855378623954220030932547652963776426055615430945191657279434076467552749945612470452363459947506021234157053422855149282056159386084276520639025430533592485894652918805629358038271561999067818591141561084894379883873752272189510586233459985994085639787430670212714710323866642132702223248490346874505597433490874236895693694650171459912160024369561506223533010464176886941334369484877589546118106909933264148859639576386701110270827369577625864589137250845827330765477919647369265905102672982747791559287261942894956975851994903824060563994364514812406955482771563418673226083407179168408887618908211741992344117343001177233887248924709968363916071860068052111651684485742720557951633271085328603705741620730131709298535250914946842384111138495174880407714917761217030558719785208051130899005935499984997761824249259734333335633388015725551388127766029748010843761197284607859158557766323295201178139754329339267426854799229246127936718900225279696466474024660013707186318714337073228038394396754420230961955810704732250288115195167350063592226837365620037763356285615417859731784211125748364772277703692551565210324583249105026357969088175524758039139279574631804664501782257323972341783966811173785463588459328663764756726522091344918557232812712947805218740312331304008387086232858477677394463275125765126814239497158910385956124079901653951682770524833625859420420909038526996368365200338308087750047063166983771369483640548508820104491835035878435946269384547271690739310674480475797499985610964699948062259669058309005042842105523363460701435812004476636237131995727640207896067975169375956426602208918982134879920104427684922087945819377807142585521864157265149078050101687180571440703389723777426237849561213050308400476254127419986030644562029642056747490402181689112375588646442937365123076385251173201963460937315640665990276806221203328695735309509421195234467223395536756805838857410285218022674859367882831816332187467482464507001953953768116251157562133185158834509129166997376381091328908713555165122761019742013138857315243854889938934740076718546591695338399670985813910292334614616894172651404165466038984324928693912837493176313561755014127435514107918632526522548461663106209064973695996840818660296261854620252967818365187726417217807520052404313387293230395677005040720095541077224926932653361451787583675878729924928824475179796598781074297038076152366302365046398095352781773779950434722893050495940891320484702702737029746157505028387248133748236741250291178387265281985453687828740393839947332186596712722706675701551718338085197991736118285192396316131492133905527002608625173826223708233694122235424472130271144164576941343967115038201869377979422680089861598428238017084218654607549790534940767803777589361120460655938834106459594831822316349345819929179108313027673132954330467661663476257998154578552873959593943840630846644832361313568863884266222658822948237617986475036734401817305102311770906874783337418997371513662917317044913305478367243424987487059687082195718854943804783375027050382614883102110630562508676971811448930614919297392099725315855303810206347590653603450341716793277120178127543570195611751942984959777241521729517389849984604509025565353566908838141275071037733804388801063429693403346527132411861274282295543269727274603253790571389752479165768994338653508937944536626624163446111993421637361767165047016941092772634622845706194782550524514696781701317164830352471451486889180538066442813429597545516533343486779969066666719200249421337061612925849116783691672592051816424677505351827680471461722307228772652825802190415773010509088327351599247918908220545661340755644113927954140810762771811264647711518148835074023832062959956830392568514767466622818200622844715882852125621572930113381441874810291566320614488195370434841568817086786994082266035888527534874494010540314415537530584744948065116203526314871979390572174538561031722582288763297770290425872136559955837514487892128331547151504287504435725605880397048614256351737491956171451080487478872377916287114597379344605544680287527470974812941864747060774613951939581851601259993392596938028940306695344731045046155993810198955558089349529094216649061698979759076327925777776245889236687386677807134892000043306773034151302867936269888976709919803205366463260982510733748063096317233993182877313690799473176582209565131567355455880614813864172311171591189976873608184753662363644512828022503534719413154418068240581717540015749465882999566511490257391719452630785256989947267179158992376037375777610002060448918505417423168262282658040959738418010809474640838798742474222258669253751973798277874640654468062271964439324962176461076726484329180982154055850672018123961828739197095044905150038477919216488952443034802591843358229601874059406116598212525872787733530371079028648187273013122499891244561017538353933307116613710205458656801320898388576829368802228424392099963951740201388657763293398006888631644180573185213177421354626515912380887427658281170940247966315598124088676182519803467923977147416399070340275588978248120458672924560525700361544771415752585781238885672132278860880408617029252539291537132607855388130901759586513236831237691867715724813674628736083307175478508398640141615227943717800397655457692119439744226936443536698464771790174798303602287679207535036512212838865448553586899130278575175126314517410940065409240549332381023199693728621776233357013167982199044848205030027503278516161498046757224697502757892864645596306493104857771411546540253694357338786810987257624899337129714785369024920767356897987041953423214431598268888651649586464683447085103775816083362062144779347390107347011880062901418884380157413748406007715351746804666199832497221306367351103947642856279858670038150830608552627606372463043991152756374281005056102600759476138420820475198791838308488398423319727468077601148976726695200024694840900035259385940201449461946557747280345374418251282498203794874976652506476451410569700430043565671767991624403452070070194727785024440841904601454582225178381253293620191836892273544142545859688530190008873713028482124724099836943779184833622695859426643197310238723297705392530570037849423127559943160752583813831500548272612199762322545415089873876381352068544755097402886301099130730176294783042571097301379800679987443008020384615942702959658350223679369287996482550525891664240054247536744911138653573993153307658473889314371628311452033726110702346066108227939706912354964277847911877574895110394716674043731875370604799759835373107682448246845347083181144672448191316355585151592396776090005870041378640945500019836311981568077210964695822109106547902961711047956531920007987800118277506922402854380528493081907303147578068027814534034591006032288433152113462159098721053216013073071373203146228270303155734256022203614543262123129479520061470236400397653153960233259571197160195522081256321685344814591354368671793399888278340061299114317161115718518743723234511551155411372846357546405807253558563679358362174386527932413104447154223657813999539997422673450166126086480096308531412156995214604518646467610510383558728368349614592248444341418942382382210168966436271650304234119737426559976596050608822484315253592747481761340222593500580645016359251542462624254342108499026062084447144923146953535414953043222981960522305037372481807913237056817822037451500840417910117273261942343444787806660582195698450663680140970717696969685846718014740437499923327129141830699603170805182659468533706387893072935332258633545367478443429508478624093377592734495127820041259416860298309730892163721297068889307987356363910361696454756656709474650732396530025889125357537799543530819976847910540781902322511845174735904414110752028630315581841587617952123958559988666514779104312504934855683342672003917689502226787599552092660605125839322664009062504780358387607923479995960043304483570831417172527411898004610195850719624848861733874831205744921438793919851744324765726612772883527473073537375140015623758511849819464901873631130478629512411789247603128806546825935113697736436645258452102947720338943369645524262991844458313979838825769915726206557070894199813935307186979405077838452431483252171594912416841751114478570575621453630991163970843796856115490157280509616263899995169773415243659712401817216106122519950952289532145392342678827807767062249908390452627903975344991753848728373585345076659309106161703095481560558157380279339154690397210027301784417956058579140389091620322796674840321461032197637280299907796724629961897024733290695243652431541859451092756069352404648922406656548270511686740446991960237582310713093290751160333685225749586257085751776179748478062814924090057476365751704958165313673680791170689742730594952882556463079359116724497971081232945846971834717229023897531955407826483275525383876800735751603755063075315051720647925169490305253527646326889409816189984834165242565315591553520068861592332011892878258945173063933589111838431847476130423407189872731426406466961024390700496233535267871234091308640514037425805825563615395037693323402658023717669724372925021195992121490400410906866974573776350466422801160710538988501286208804694248910969915615303064026825196661633591958059972123997919551356056179024382185577537865441639161513981768226487010942984554183490481873872791693554304696005243174237567598329461162845577579179977088869783175394335882630765886097901902779349044993508160354533896700443851773041304889106641203076587088026673606649880077397093345702144458153624386669020617656567799243813805439297199942793251828485509060146326072388441703656400186437555453471916390007662457723375782229028893475883134636255969208629352563580983313788219593914710838115108688431393715946793241360564266198779761733874954889142283715260997966686276037102890407072673359169815306035674262939675429101416374248997531609398510667226632537284904077084022457933341537878611393225714927532732733126367082441291527835345664224748573254489135385734419243886583284261099561861492707706290639823754395211549727248266066544627203545247551209130003265567882723435972198050690719602132956258789436104606709973616626378831657312445792372156084574655633070000148872563339783425326835775257780500936267560740275001244704526958006506266726893244497334636757228370963209470064986242779415050454359963154383841562290728899486181668035754523502126464757486247149654074189925278276444111607091880719795284434057850252877669312874170163536610312881835748789745386041033444585042459063959388958296739136853484033961654917165917127229985517459184082710933242767542984908193463421587318729700878625164295968376080338013719764082841165125181480164447660471423205654037309106983738730644767702324771722984030124462938729453231299453830417448400453290297664529069482291437505874667336935001317467572349394544327619736103607311831824798270976945987597317655195127567622633746520047820890780159433386935832394993214446041571618621200055080198149061041503037860436685173531258166383583802732159146058292062783017645189578423134626284197145818783025910596835283988339886362605833107763925726838933053694324833374438168290293722546654346638431815162733770483176091886223683477383904301451846828938077010920428820369099913677125160294315916187693655796339493696267730638308374661961727368208788672909607605732714620304312412834166766040402557664435016859107538142099697560426112180916756764000951492809811515584619967846119909999923519964601191921448154659168324781320141816808811124353730893940913006372021627368758924166206006492375638549531737945900427396573881109800994984846103733859977098068707907252506342301932514254218704309404558519261394090378820274127093047544839113554676077186894558971900515682197036620909414532211558591275185224879392809586763061532175854345591892906112309590859154687639951416449839622406554079602673343698246823526983282632177926581609828211973976924273403407515752906470976782880970366100861130916659914583005756766625381373580574104952916097227544658343481238772032999794940370798278590445348607254844761908117903966433918426950551336231861046350598604222234269653972177465413026541108637944618243131020280473827950092501723099755582947658697019616467032876997024524612012030740278646325425720925998979989865789824823691615340205497694715497427198898936639736718100693912036381198183136646404189960687451949843311234266002042865617885879095386067326609306787073330625245407556158454791070396809975351828024183634917905475875684544958835038699061263620167332290624553491015251932500937087912804135920192366606591218576060155242031939627694121225287856842737669554098047269140636468713232360048717042330459996106371297369181512431939901885338899805548994726159361524226042708420767178652047614333620989015219416826375043275287765167704570853294405417868129848696468170283288443930083054476480619456866883630239609744007995999107041380966676786634723963679341566136842643315745373792712002721313563261848814489153990991847603416983137784362809838607824899375012661587285035498574866237175707386829032440796142124956011866036854835646755325907914279573868350487594510882238644960538551362577106062013068100998262800464027194765021299136232088221697825795532618952030251373217950850012776754838300081291651398405582038326472339993582359856241775278210929331864367671894824969368047939971756980599647281778122872648159008999025747905466026443457292364970044658506850729098954323157880873170906190339143273034224895928895465184907211055009102548262027031023995006999844862760091644849625959226500720678511113149870278173013774247212962753619136259773234205526089414432479852587956544156070162053097380636503830934402203303421316674679412996505291651125066052288780051782453999131694893692346506974818238265029062277387628789012830098452069568084321057633062436196240560875603726918213220573645908518313994040978446070177721183793926031955998463930775217814980063831949027707125118835055645530217488486923197483169389486198193966721309838956003918723874251867280873289382109805104163006891863936116683731703374094704060007835692171256677500663823969448793131640897474951254683541567725744356083275853794683417785065111348027642257121259076594676711597350674741812140068317485361265855047263093426399898829006309687810019017709160979627463596439305087329766169751254523540914263147229260661119840186412297671471407034136700891881907264370444485024706143575067843510084742705798516007848719132513646509772851598323912724693734640961909040631526949348138668252798461976141396350106898603120475133539307796729489644537405836447879707751220589326095950140986484324552541174345002280135739607589370972384173319665521388909225176905801562876042351042655007951759978763630266730414751345099154181365102465064262208601421401379564942786641163859977119222514402495225553510416133514188968880278655555861727085799351665304461558649499471406349881466161242885936671614495771642152095102336211935164765055067555772309211602188359721454721119360115466010928104088909110329368463459785708206235939607593446159583705405497148637282989498662428830341513729983648717749519949009562736981057875319601371671214572012337750975538349365497658864343320631623138064708380661758138335993556671746563856644168359813032947142696203215149713031212849457566182938993899223574206357237747305147723899574993833259415903244678457452055766601766545968240117983657707456836895625228706337468331903664203342074669125751334686608250891085528307938029359762863953569762500798478014273780018185221583438189741021675437289416810318066609610483892696039005729642434043268085000385388929553034824495549957785667760212120578211683307495366794189514232860967446771266475851058327929034954644539777239481015221459531864102477580991158111948489140365795474475220183395901265666771504444904545331539211213544583119581846478586641922766513909899470384272883386543965377322151689029357533418104140240236603940655730927385784637226387895866265911601398207932846334867443542676670125115545179394819524911998082331623505750609347514322140635256502056606557669942695065475148349736854194601504889901243816469784858853556742222009077874439959107318728829382994321366612502032096059064417834896263393418035023934076522722666066457494583432326281092784342166349435918519117370629021538669601791243353446266633656232837514714750600791256484404930456788002876426204178657662345265042991266243339483098637181160050482434066033386242888398894866272690919828432273985151162650507055330398906990444717453356708889213268217563070649777461766673772354433428390965512892714276587847464823040565857235611812302647406906468072783610060536633540767954186439336485124767655404648992923567423804376852082724732567395860499532371070654058089670589672199604850148380939868857256926503052889033397997202130751431512795737949054659308713961606292283342118242515281071428746996540479368463202495895373788751818544615660547836295101940358164671716905723663667963307895694390122223177785822675432528773833155508984129371685717193981299515870455549075074779371434348355037387725710292654911592225838465308472044048739723014370974576441171289185941848742126699666345854412805609740639496463835668724516613112768669968638013922041660007151054862089844040099320235731415307100392001045761120144368826056148122426640611029034087428268659096239009678208675161632336759655591983351057786827257538277866052552918347087348092122381963479375939701450108413489586043561580436867043332058432461265920203744964178025970245180706868648804862271147271344397694641228070287583969232889717736141552846477517284872131203857860373574778527624000266028986553055480394015780755027751364288405314068590841384448099897389181020706403842267212716756881467696148771826388691234556077448585664238370418285314091660967842678081217311546017092366447876952428849629642965465614851408695963633335470301954542650002031188685662702784355121272593022048377997083344830450433592462944213418190749875347883137343183761720611783421242134534291626211899703425014375994505569876218858796023385014178232233724239049748703398012329200227988228622508653568984658983154611616638657848358624254816505328185595416395504052516032935134383654537436599878186522201248181641873263003231834397099565672232034845053398943311379155868613928430589565595893362427095839231567330581233268746544350026861268192755287426291152078983399458076805016536878225421212400456658974980174938644078299002646203906046563006707790870184245580177947867474331131659931429025967748045242975506227552105030145501628193061793525624544983100599320293332935380939739398447480420271624183202069171856843383844391726712588632555905984993271332139570445315531298360979176196790121218478912925292948062724283512136805116085434560471739632808940529691943596464323237827763344355652924895193334577137332072344443997624778585762628481089420309372114400496856556250698240267631428258421062525754945509585812475927268345677063755692146137588295967098464229529013971260331185046453622805180460410703667230105026607479590980698957853430845788585556515359542663448991205274647321907101203444533361414033812662921715544744048617305880118252226158191280550080591095903539306045077734231000324392644657921867248130241652930206807644047339472611652873104682534694559531895095746887468041978818685525218172615897585680848215169426821867457069591512773115120890125338751569778025751525558969013335040536523030512505374974089574463212679610710807836330190686055269088486222176144043198796527922781281806104689084205590094688791751390942076147966471024464280135245901531635867009029547899963250146570529108345831844695878578360427932323413839888823724224012454737424464174155377110277171065063082118202508204664471058094149976931912965855429190008026508296249311906271685108766295191002219815731320430133109277668927038211191859063976383583648634348874114110634074715418060844272378322688039127515068046521063002209924088438771272479871862254143514906621065464211268584796257976988837745637828378435706129173806923519789140192836321885656502973577061059812620798604619654875505216663697636272569909217409563188310026825082828906629856869902069656937566081054192496704662529700477541438522023211438837499685600685353262244008666560088841041168744676449689985390845184496666124282357387031279067783775323076314233346260296416609801806167104141353183523828004377440689022515503324971209274921898072683839877536370343393283081046354389060747304836955818744164579676526339022358897203825801090621868665803490433773085012062233892716717793580012377550766401303509541595258743199143234842135902998325028497551202701467921436844418380025276312573700978949732050055160124898404882562189569516675236990350309526086152743865695164770470779818226654781767172227106069220357886387549199350214962529872662730715487553039742374901199000355400914745992082472282362076693676826072580822632590851286419738529560485848474318674943198849267073187022709413460626023901702690854363571168806061421962172053851771995085895847413322702366296013528034232366653505701613394628491651214842571794549529204569710045866525322976432793118343565456307860774215029179673987806453514411042386467128421072000311120556340067924161117020311601818683041042655983671459180884005908613546937602627216056938950349313226384872899681716570009857022973359994587089056144643185554007202258820543096072002901286793357317825876599990337260259675043011412785580656625844686534074603347412360780694564825278980064648026315951475093288272909487309112390083896964408480827508251509731060310484051392251300795611048764187667955754468564250985626858211030282638590875536259748543387531994314216261385902565678152028710788249419476511450567236119802164998947487574339795601965263788842497951025712222511058725563274495541760869490410027561009182373429980522097249119336180093745293107949002975937445329142430310989394671046252673613813089412647130698515363559453566690785601941502353974082024037682528317615883446436603165157549994302037917720123584550466371168007211273535140629028688110293566853593132609861953600865828556989395495749044363615729055709219807444060927093647221218653515977437022257725008310445889368779113700872471312847806666902110627661933141734024557760648208498804600341619095134549275293175691505949966669642415469449677832924666769434505226034072735817092759809948152696626447866648861816852135568946412847061030814270801231568502228566990682292426690679719183289609984509003269821668062218962490553565286479116644441253403406966991189055556148084185465129816242005525535120662639277293339798296361683291383260975583899985052202197778196428218670792552618397849687652375335545847335796379518880571768361016361450439136448439360758315217050670591867211360426943021556205367871437257595705883368681617850935482685752731374160640281235260489326979983778250896371448450770644487529706930523955351637420077908087301209528853172870412992638994235751984710200279588775130286253609458197300114079172211806436230146823232620826812545624914484893378293615506884013404432076225681962678285892835230772805131168436929694216326021800864814701535697790271026427308723270940039922688407422031662180003426887783222163052611835515600784773431853710933568306279644382251146212641062186805387266927946452235118766470060206648428781980223619661429262624088765456651464596742986757839545764075477619257482864846337153711878508971287695325819069029464000614857016282698207285108985665018269426843033287018731291572532918150233762457037068410807384922270371388936191537844472961774006604545765544297790631019998411878499080003138446837845271382650948111310514476195945597279518442255926291509919512059475604859805145294082509927808732225405666085492000255926091112713104669699236612208454816030480122906348693967817894559303586790852390707855732485777509260709126026484600073720603297259472438489608516979089266741718412284912906463185148730801767087855192276832797719178158732705455389807476765094715235241009848589940315691076918465358719647437120801810558860774751036383902448530190999219795868571331275740472866646412914676020234219364672566523249774208557893666451956148317775151500746991521947210764211516178163482597968312963252342534689092555185103085563875341215753356706857934921275246419003941263991342169066456657307468289929110811729315492277364911841106611107542719827071497847497253936779502883908887397683042741920250092665099624778564910624580263337351457912800044004495169204015691734284768980543918868905713842730602330027824449512306413840396011880950413847723780141632866144120752827781462528809611187530280866622210557632170713403827195263338850144404217783150433442601421158079619360306636855179723640776186951882847730205756687866645201920988361716725202990888594850172094195444966637710119895880758673360443241570276324264076300893307988056416929222411186075695854537974077713552496336196349750093565342308893550699858400128296058978382963854961596993347314433704642427517278406354545346036648712854712400308460474621192663004083637007054664690112524709975637724474034584606659837253315692905571949541961781086560144519336049752038337657210317842055053095947952298539568399524303305612158661545064796116254724211920703169099269748778814311937024245257844078792487312558692954907050742200380399327491835663300979863458144091286961157614571502464027524236786546991629676110161998516392108333128238274325785292018533502142736660476443458878222753793087164688125228519665197804863442307273733862828776312260677967985955705153320742178034205521872250369867367359765749022644286229883032818036919164166792962131062878901183967124668501567669267110081882992866250629006737667129051253656651558542744497196371426082672594938426698897427516683821968086320429503300236117665148379546688051199450482921343817223275482149256524081882530034473252595597963816616588881616174302551195340150604510957275882036592557558708817578797986504568400540559475634320119988592615617562491104912257550022121447743821362892246937805639530864386167520788337711463612297762396845256857252831130241240269199410046265718899939687124793144899005528103435511409409809851839487962039064768673523546066620874994855291760531463442975795905747691899829287537942485724664428537437455067445877904953106204688786747409548055665990518623544400471602204502487906730354642000186759467882758566945991824565191783650723967087337948250980494685178148382811581620711970518361177191113898587136476943805211582382132763586130857890945383378361493848306511242104157769164627320856185861855355480053513271900171093173116435924705866559024262854962274151742770345702508196431869721801692949124736820873569442771883222464207325995945440471806422346708976771665461643633647661774410233279578166694258627160872050868953758666646174099257969564120053625304271005525452948184897290690253422900097510107750560243878003829466007391874570692974931713335667244803019298478980261726168232046218906865013157062461332132186543006978016117459191302864559335004202828348872320403224097231128672434940683989397613797695480842937705150786425053276513372272557185701233340008277621908885990413931783630466799874637030667884371229139336300558070753542937210596535932402267606894664450858207253751206695026727867355378066649279193634813669665286191414735586502642506826645988223081924050085043019656229413345678369091071194608313234610301928683855590857319513320870558843893206753049326649739399107052873133206538565210025837029647231247609332364425459198819324175864693719138732419147381714185093048242620189186341188525448415241985854789289131304513067473476397978282550161357093278243088808257053490941879805292758941733181344468695007336736108679406231810369227686567225698738055196015158183554129656079525003696238671484740688250772986995775106329857247011397264248619068779841017885347019487804038984435484990025749678519520588549661514129481046683110814748481752117938560380954835203732747486412959823134322095015589995112621941556138396174696427164119671519835375045502494981294704635106806064056711879057698568408270320918142823588010540820076693747511053383398264529604062614760314641643947190708694945607532673279008504322024409820171276394826855233308383836242968513467049310460636987855583360142076679624470500253311606193385058601933501076556703816119702454120620989281474054642219777696523284889697222660449620821908807114944383518165441927124883459417545346577580334640856657785822665049944260243239659821901895712788512790648965326897022146005062875132535990472694235254626719704555902583603727608672770901016266846136716913281500695431218512208786828001486911940758132616405780168454850355538287247713496126483933375385524099567415880102443212022409062772300075924010839116026156017559581765796536478714794363271544872424911586233522621417623087111861086028959970302107802177796450353489722756277292492585582466054125398452243589262470801081533971801238464230635592345113202269856173363407223984245784282558055816924213736774905904311923798023079802384436697861565658470644817189116548787712745667428439829770039868092041497804078193749128948959204056887864414236051848100820007530802247572879955881897538475568148342205665397342415829764585606695349942725593280206047708351861374107932328337272378536487493646380134260026252486631559938447919149762071492356681324840000548576494885669085998103937388526082440347341761608587459372709423377538738587424466503900852978470159446089897182614510343342985482231066734180760554862810398487516231096846859172454547860093116625067545387850181607700629585389776187380357637845519120548146636039632001934281736472544870513244640143569290956033937972478833436964601651365526051884377627265059407903902887995407556858827314847097757798229508900348635749238004019937347954379877543397565008905420722142657711795810161527743438470274246441455973989049030201148262878066582704033201872494032161625556253431602829388713238963318947646383027174881072416045563099152000000636723332265133601414564722752864142882247174730671422929777586205672415044482275670526431237572757719328789042920405651204292932508473908805164789690419370371503493614059299241480810332378920417612470439858565314746265177824089727661223790452445908982453878498992762910238439138702917038667078818705853060821708248994053475422913576443908919305234094768313012514326597144784017518764808030484250160137616328033150380401874653891501107616545451455087497698603976215140495611115234594961081099599296165210135643378505316970578821579048247051705879706016813308318794610553723632404648083818864830986540649574229669169312305972707467815748812650426745935816266437437511057081704178111470612513358196010005978494097528741201958039954770980001985101948927809804923202025535198662335397312485957120359313428871707844387260218094649833354235052454984773340056933073175919570774439360869808385388617764255670590950974524507917292433626112561778723999868334842710100115559505189169996350255187450931599397258652050859739338661531882039026275317052605719469158484529057592599083312812339243444238653494685764662010895195475112816425275063346923837655248764942216259155714204041756649121120733202317439433303466751207737650408112074525852377172813599816898509036675649241131937287871548959968646352353750091117614292723568492022916206922784077180530359737896869161872432509201380950677079364005869937548920030173206833126885315872563572381590167685955222078851582575382830593479521055764352145927229628895032657136537528853054706734434529745701075330128502145951621027546270666779051604736967895500951155433354936881104588170355504108611698002227868220971081439338602203024462618665345386888243484676645003923282127403474319465431030223230291888292774471082371753418933838346244356500235224626500767029844682805296380823906324447826814202339331029676000968270684704464865201787222165581127497428701615175503056466801044235835265468637080566030391869821836732134702854221075491850864479832811844409516386433702899443684643081482271211514884958643955943314629182213718066754001030452827678299796038915280361118027997803093090268416613505917198984316454838329797943923214125036467616211498990170887829433591156312961447300149836848904697960079688782350599880964154193409896040058558880521192143579090516541591852875862448607265445214051397865886411627263982297046973550472341982782865584772738937285789976570612334415874916765730339268039219632267149810078504900515038129067020162888260104989749565075495240464868128625020961304879004905180590958135193691646163561369158201300011683396987806219601083367385692051544790354836932529563696430184059752393319163447417392932794542103249392172107873949818774513926237896067406515724154208371900616046170306012324964619150058074284204654538508641389256440259446810443810655563163772400498785856036257573130200371212910861511814923386164667912960228257822577523817870891292417507028751380096968567150391505244324239963100255771773170063011729854166704595141997243976437163646453495219309769085968444611691866753752952828287434376013324548346360117693731968219609263101899459953702842943086296143475633741617300967749293500361321280418229322511468319760041625135198857379235600220481802558897174895156132447351354796167515673175294748713461096841560143031276923345210890017266776052123705869300116250389141450481048599888448388000637259678241813337724138660871544688392618509596825919439365826779006659070926165090573533351525354796906193318874682078016372783160801397875809047285838020115246230152722801537007865993092372492065649032270826592537139007704983090633540873246049713465040573356564824628122638986378178132318094256302687318050782676134156450305004918660905107757373928257564062968446085769806831846725949938024453333618367767927736083163524887463845060542750232379940099788334580560944817230161327432164527037650768860403698871692703838827949874649420569890619567611568347380753444427144180684486349932894095032507685582816102609971714548460259398564216073911872652377406627713314422703493500240913234674380718509920019501851496118322780516201154786380465128546734129273639335507599968094345781187702381099495467264741636254988024210435089473528232986266667936898310646375464253036447776930467640396164523678585421355943725839482485716519945494298805555777969952580071279127185559252175298972350915138113047692406158731123663333849271603599424287032609312645029754134936578331517500520358376224988550348986790184807583075075267198068559638083052517115513084214919886978137689684471224005596795332168185183357790421733669480680274038666574990375800286523532004281880148735151562267437192559079245215439561619053015579127315439268936069687445369984631898145197010710503002989806757303365448093149617622998568840922172095931024666925122801601246697838993908302388836999293589548083022730845236908014345352328940794527506977596465854809913342267071027552503056299473561641366087985096745800023767822370790506510885089764407764164641611756806311853341479070780151235266260256479134838718815715817284029882674514201057705892850709697980341119238566735157101069847988532988526029045532340430657778984649928847101415528098632079910753572013773193411966502474816870901694734816268859862518421505602998992304673425126207040049934644676564260274210626077624701781242236726706252405267678930889554920530409504510392868250451906112923580890414397134577202762257672103647607512235433348474497930628313015184620986774377576955877931983875956497597654399495745353304511675606392196193374036481715748003606294877521870869863457558388180766024942849360408889609668814532793305637795418261526203533286717003477999867966997918905562752040654251800362292978264956012531049582841604449477945638529631738393408320962311924556874130079350675610626203793414820930540496172213133596145796985770442254890274016520259384150912966295740052762296589427295317651542327372922373441460387185118897246440089556375985642229098698798434952121575179437832414465216989319055400647374992517224514429374593455699659497092637059354412257411279729061709247878925584984727459303601179769444308647945549371230549393561927258514442171280149654369404753028848408404680981317418136795311510460688024810217390750961242728030082452134119903099817810855980916093092573045368187428728106444957501728237066498164392838931200455059973947772842641293472630840207080846219709227759592963832764099770348160270043218615349889008044101974635632785174913079981016542023655718825564856122644632863392319174691120304212818023938799623197583140196541252696758430722506575081747300144536790058940091515215274906456963163092566829620369353925109598930798010081473604007259561344485176349415792673525244186961427653887233958035187793075515357519907091683013591593205356010850096217604084630185596490650440167409387235862860224956733134782294879626208405648999680313644844023698731516793863509005559640187039143226982583622799587041297536441777231835113260267234622794774724519287964680519837235952095096377249892873184179811199501644045832351322902713193869884038818236930820139540903674024184007736308228936575232182601611996961981021301407858344382636529656641714474361586647876029846752249694397416790548909174746814537114707977171961520423143876380153212731786013202858938073514260432089518075040523367786504462674061176542879735263946544261392516200856673563144729907492256741717147289050977141548005098013794229724666775456581595879982845283151953730840026808212107257226064161151504024029489950980831845721114534707104337677203295042252894794262820972344814973075190692960100357649896250522948077772089956572759949002717035706286171500113712349278808999781809071512361581463210115249473489559205511633964942581514140681793848467838063049785728651902182519839439866166877532237209472189979449374622653281860968579597584415727356404345287243770236230139242593776755677895890286904265771152947622683421527882996976516572854481108965345851952957096931406170358862220241563664206036154941616669998103336054342951164466189595342375306722672355609562512105265175712816001978049472702702828301233363940108131575053734517671951463984397178152616942339129858045093232020958637875676858982523485796448553015805187126537272375630668382868998829213680504644269310369104686038357435988067547793825451686140728134996467010061970339408148409967550235548779646719546054281719585885543892239765602372163772842492686135441179438428981902882890512956873540642314383576357986518339131260292135662414653648239956732498203762393536690217791997712239997886678359507674893735598585518457508754230092195497635107204552102883545283115088290506630169624161646696870495758306351183076692193515049335101528924389770915365111557431142872520060152393400256179542832832541200483863648888245099784108822116972942247488484572610903612507176687332319762677754277992603233437071002425962119773030858872231495753306474352073563789392089633838588648180846787153294171690379067085526251429645961617419623232960526901955204140806590978551716891500799294421828415928173267888483948758988387540688285634584171116916925888024607930245689680730039053281445653577428066010679459606367162635443259125743023730491516212107184012730437864827471458483387553520350658809248892470407716305637069337172044180809360950918254346029791341809888860057912861699218819854050403596863731305557895319509394446417753896608580157486694271225523105802441146871636374595916352417909163152300451378913547522169839719429393874243856459765224400181363127984986266171763072979438390294026001816899725096912873214904331146027187801907484447204954505115718121275463250586699571942863373088832935784063591940541846907865280411318610155144147049679133982232838338104867767507816559620561453372719354104212573367415170030013653833467068057298589399121244175055327285081082219574233000631463988710164548983868921972256683488658710293360793184184463478291421585495380835577294104281122063571337148458499127469892774972094532173868706043288194486887724331669775012296903503494099302964134254772154943592167950372835303253508305550648508480550256810731944917201086423268200521722425385689607409320531408505666977110713497659631749997322434213536286185367561444999221753935455520072961372683380086629332173125647521603627861523900159375478123114026173819936496088719674351917619647694684274678764432021468462501553422638071995217222276764561318812720450665729686655596942037974455637313363057550324228075432904970584481991889148956957042982444324567855875735663398539615199425439459742375727028792906738866602694209307499166616786555637626485218971365378189408326077002642428514709325729534962822392215118628333164862649423839668022530632671220348244042153235765236607052022138046158913863574253584203819020021667779787755178548693145291008462808308500764702975359072670211282091680093228665888617991470225039984082100756535853894536452406669946228607204255749406916159486534515317804967250333398961932890441687465285818957570956701914592743713637046855765983370645339253800450328566025802265079147771600701712263283320883829392846248540310450175955733228642700650594162178777568405039560354565183929612160597370321563934391951952840685842318381099774587795963866439094274640103028608197573263251063300347368136528338928212185697727029571920316374612329354624777996873951622080675608666158975957221382891991423971787632955063533754024828609428547987547002179227339312964497162417657448580476415853788397850950330806358004577844791982837046859935436971797263515285630615303785237645610809138973110633768539409171318307633206636952874284284354930368135817336674843451663884785898833898760267509271805299912677547192771286593630944034508255714536545970829229723664177767205462389849555299157532760109929606386655852159229583296039948661486702200750564372370204978803599187673035142870480512821465004927063957906466139148111195494373793273720720490286954877132098768786761897772068235884124172230593107369498500685905788947619966857166236420256773218976307332507473135727535096827932937927594343920507657257770427142819833797591453007995349283065252384372698202880958093769552618149792663217609923815831663951657563519558332692378959124416255750821417001453797111321403420992244778719889128023303163982189629871533046161960908922414415969406777498736495095320319049716729445912914726456978068663553189278709090744598998784023013055591012349905275926000867063544744497617152596033833167792081910047847244077734703095112440985231788349807396904834268967961343310445316642817594314208512784260878306988405158432718316230030525833482273719830228382908879771539401611461664559084330822967371783553824716594966393308029341469217253455031725935578108883549441735224405850282135859845018951604735642784575193647644584295937625468434629429238248813603662113103311780966142723142502880846825346588384814887475905684003212851850184170594634163786622238126453069488795045348411936338678390966054242295173724358753473035469309146268004677904483710080260979242394118317702821066310595829542313133216678135059547483989529300908709115181637502886528809311311120446606352586137805116066729731809507158560491345085185687764053096784152166850303148945485609716778253502640163116953190638267636466233267988084600770484868337643456556681620349115987485884438027799110733377632124127044690928399684134957069792043764618874011915393929557636756167861869896320540306888531791858196633660776503062340395080789187152023486062415375870604613050699193377263172154185723742916600374830465959302665963229323065861273062944152217307613086117685080184967420271573285296881046774134219692037944147074192581191935797739331500062871631472238757988532140662447318310790417319546702799538142486915296924400986785050615345785351764233513046179874272863596544577546508334948412265845670725402636298475087811177702330680117527336556826844581373419809896485795199166287741235527395900256128616400691763743527300286010392732843334866224750678766962186039115893296515822773946534707776225215337935344330881775646990276076101327243932656320085911002433101035657051069358501623178450027069389736359076007299663686423681158062925301764132526496347699139197286739740147503410682621015353507698198179236092486457804128241546752828134300953397145972301507809834495899964093955179797041941400825222025480683284353081181956716328783428649594035850548679106537521547454001327938408307022736345742511176588953526693453049908483115256116513089850297009353468762443307128921984620281326337527946365261791091238064018112366107237891886583301993531920301493639019395724082451378601767899050710402148023711267948440788478215346975859696011717267501918702580564848144852644323875931364155524755012839923799671744227195001181965562307747871536256522907669943267274827437900793153433879006489832089016189029735586339240411127801864590843531286642750295157451992771150546919020982349226485289861396626437339224320596717841321659426736853225224452209825238590643202960607006452398778341591137311087391514038933755802174175386588317350105979348460521639816529343268876967977816247326925541600352963778997483596026710653311512793415050208016151304921368791630164154599099454159285187796889439098744146358683240455403242450414982285740109309265082702375458500380416842470942054799240619685310166497789865259828592384255099002035751290563078955641610394223647593332654214322626996871153330496854963739680525924234377837259426496400434914565317784193390981837156874521265450231419913799685932866110967806789005884816533482482807577522388003616538434686619385604141444276598540701557752945860184643692711191085494578111670140663760475706471693518262219761999379851303976421306473710688190897663354413197868834698391811185378582122439178896071523171896243682718211903221316929561356464374269775495203649535503379898200575807827328390354755720003421191233568394431704368958782004034909978055935281003382711412722665015170064727460470397554946862886195855518560394896726323916505083815182209899684071593490998366017074515196025554545501069403706365762708040947446087663835679480929777245953760880055596600202732480387835101475507518660759318672625669407810359296886448587725428391099792036743573848425487358699502833157903253458056602402051843859138343300523257683929817517709848066891190035349064040699251945327835986789934891845417535371533410199403036560023115813082152136457505901129009774877725527735815411101611991435768110176886088544366009260324927137022115301182494737034629401326483450647400470640629119260774681167717376559962040093419794114108284070394580169527099014899876063847364944441625995341613032571147360922499600944736289806118953425530684959920351196366285979792633490031652028841212435255342299583198665082077378459253663091108105812362486050170394280391159581386625092681295053950496673943830606025223300580715529262830392044249402232399349708078832856628300249084608201756075116515869414312801951645306953875687283245278467937911636478849106604368962322309287905247544746582478161255417490434054968875854796557488634306552407955483088496207427217827505076636729480618772926151318389311159286013770167968535496477434328169675830451156712946376179476643058693508912052049210118791561948579498614444335089365641725005204405647609950851874367082125818279786179155487417388322275880189840807049646943577139345881298505314317236382466451524903870666257804675397134475750785197468790659797411893909167670790776539851363238509893783720512498438300447378987410933711283519565610896413527813812032464562876800147610427797444129724732261733544385053928275832031621435616824190996529571567247368494791588761948507597517190647420073990080854884611454937209007044950273517754758019320617782887375535272535083590943630822987317752610225988370615488254168852808106565676618977282398134335503313826629745940398145580237321713201855180463825856334339232503285103225341090953615380753725474107464249948339977468832415278127754242889525269824469344370380592081127861001092244561853914968864161729756606300232614399472371253737709703949660511519081257368241841289020118661902982079510693373388639493989939674748147711134994519498288894113859235312686755057023969937421208558087541103357483132144505289730104481359937343163207761460641602490903864712708731206204818956639014027972120525610026278416620025859141403641696249658075043835586062052493466309946317044098311692292597527005212818590503019390873744624506840316678601988202748882702392144250062400358720778355118088091016664487414024122321744098093882057199694659664612313630719026988073638968101556985550878942794451792338080076707228683218051103505122263896158950523522038869085638196508222962091816188831130608964134695035543164699163794356992145863716136921286961192279414139049761767709434054505118941419961875925425842110328561271482847079118237631207501387980859897862672584666235726411796772445542583692530508852223558369243244817036959361895595447850585911961868559537003013857111767529806752605138584019830625271289522277354051959080938351808764144406788733935496492356696565280806316159505799640868305838196871954995433135500359023388773556004407690687803656465972967338192697821312008691998860349474632620724776710947038016952270159655850178395950188461080136242157372254053977207911785862994860473580080488986619485204437122268674661017247749763581335052560159884640259660128741756803554086985738963592534817938855637199311410788696451312346852030331325220810745623756536859966390869054790789105977435949898242813759782228344375411304422273224986643626134007869332933525433672648104257152083516436081177545065780760706265507455404023779086856641570771596108851924603635379282599385114752083075901315810392650332414790315816597230387702805756778759181154210787311563132629879150911081784787259975725799483322450657977990845549095116795652457776641084490678313541328664305849573943128809625363698512747228618001116056043906574678003938586868188664301373137825474735595478124232585415388246597339194286449751949853708766837044629619763535513241567269165205655668603137923356030192523260195359157609019078851111688770409751518024987953231928881698204533296267653907936564034260571875243300743868012659719505872637019989654729354651784247671876715689669799463734811028872181651237767524219559031869703499394337910112660618676588675729737112946313057901750492594513802543906587313006674283787189309777542213356170614790448146211836839204861596378656735124471711355618792000296770510801620291435653185086402699809496881015014700105421372437697118172743856970733725716565196350253040334519467906621567320816142475909282080199573207340022707216686002678566728867774830325768199240291710896955449675218489625915693511362379190931380722508144183440385522125610991346054535063972451923168962421716424502575413828016136270061540338016261317794438673573406708543740341142812950591359110937497318661911844130327377500889625619030227631563527902919932025084301651954827589770138013689879912198015030551052630745282735819151889950571706590026466054353978367184334413659576850661076950022601535523354073136551451720410547840422850615778525509367285289931769696299227966025803100592713989320691644331189069665478870826402693462187223415306356706818217760404496489010602331485455119106369970060811639455027075578119578634327907573948729035510450406572834817910028046363372546599386476918846971974584313213959285957287985507042847450271583712582761479985075641535296312203345151273115423883390504079626554641806397763431374102497115682601894283160452921126519227678768221748041915856794884981587180629302271587122338439320429792830917062800634214740532195161861534535584564020341899784852877544626619568360556176934908207627138006504852479357262430299441171302242165017710729930292128937904150633793226875629050116966023100949818021957153193544116973764845269893314301387134174739564499887407175248193882747787352151467939487920581418266811543061756000225642251155292910089825625343260191330745785289627772927570239736040418741413678120586859012712930877618097614371841510991356507310143807758437624565321120685588151330505524085242404273752835876367099413436202437862582222488660818747725089579524952932693063866336305007580289057965461369564796513021978689581539289374405999149361102219665755201567822864898265175591840689925129602697054453148523053332106860435067394392771338605552632450117982348828154314419179541682016314144480941326228403840839519557796013306195048412988391705996455526837433397235510774647231545922448242515818382774780667156417373794593254379974425065819501791470698443049240405183539983827921309196893301578061346543585955875822767324611014140241579627026265875847959780600710149018819128214247097497765710642218401781758106801777296563003087822338231766554730144987519888192615050916155125266667930505610158684500446081750502241215230401317177511330723621305297882348664776440000452407416362731265914240266615730609107079953619368883471273251278418645500362304502538712489648537982067130388534022749527726887191170021596807865174735690999198487250001179758465806170967586083324039811999640478727465071100462800411570430780557947598488766767818555380067911998890711537942748141151048238708443255235634064234318306433454418592852281987119624823672702119380361838609724669309889840762031385148666527803315888094840057497862557380604337832917825697469328813661970330664251027510331943861857662979189925505069734223028062312626151542930430527660691888298788705212717674396506462154604236887894638825404548462770142973537901356468872881461486211342859321015357989953038991337705686460844822342805915829572960494157856348620747779742962963405492951742939493678988209909993655153445275179509286394636726589898407778792689600919419133993628426159018721105924984142691253485757404645727532759630273747486784690539980267084443758219088984093341390884086371894552352636542165790044288315231016293583979844533391512216279042423623676765662532772916237636429631240066637228648435599324207380564899937242939408615396130322689187437284366844077767255983848889529520666443690515685840774285576528503490419344315477160855701785166683915889614782669152917298941087038156010677460375463569702609689297327539345830928919848367580341832696957880267001018438372614399458258224836558394614907348640675436174343746542456902601776478182326901168946393245838295306148294697078397353619295415432479409265476559741132508390703521157707654594059791573868451646036688250998611293424995798407673055367966359087810279229758653557823692400896552384557959007192511853267079030443077903425041543241505043534935660208442099994219044647804977107695079571936143195453878972593547521204417792816732951060795007774521222331759815574912616690029660219997994528620161447682664543120355355583089723648656821778913467038836698886001394350620595416122427026887978911826064024828476695219937603327317880125826709176076738343558557447880556808976082411253439974992834058584904960396977354684183704181134274335888188397494955440886090999924656860472851882588647603259881781829179986598647563592522986258072624123949225859760951790901729285840413977639298621403599664871480919501752434923909491864238565071181709167600779612707417367295997077831489658455302433319496783118097684831375303521693558428672647755765493601787218973205451594127484513248042385717391075792731024640218306292407949540796843314064568274363909477028525129921215352050313507722643239191150961206895438320582118482331174262636974482339472705363531704205155802700925006241350218690386001040919490637010619057837151139224511635106224177665370723714740703732829642018439378260883853157716814992749152136745517000540997638634231870805057672855019370451102753242767771807695758603695778827470872742168742869429008178889286201624388012283876104190383131084083999225799375053186544855829384627871140608523135284820613805805959213453152804309654449100119411221991633518927090359669156058786859318209737947142760573384344924021838732766639777561987848580149907351039170288108222541209564436588138786771086997053391893066850084710560265709899596331768298799389349479852303564041089720478369651011354782884953218394502672710085506173751679399636726727397902979128816403673464856784316759219677375464597034073369302200443579500825081103599304085127130995803654585891381541540110840174672982207484039724884409429144257801539863379334774172059324884280292639703475700973829594549987969503948748694955663751756843077655892190883480984078155078920101938962272369772323831087019356366976305180413321673333228434903021036642411321465016306645545290488610638536997130186298927184896538786401727593559881272611215088687501650062327478632935531490110160136647029452048700587841916550863530354353002596400441487643883586366115846928983019778654329023086250540840771645739520359101216196948611976956752888230365569829463812933284920217986917717617638899993231499264668208834543001035570268419134258508060115081717298404497975806179345437552972797546165569657056326539672566936360948581690546195051114990780175873231103540420411315303860281425918053943063117247684700648569973899211431151861184179051245338403125717015862962597365720051565075826931905291274183147204231817971701675187536668965150188587056791777501391863216823034168095081816998104827137941935420034167308273986998024256690874213389483681252965374906838215193643872937010192193176233880933531212492134595103413545953718988937178161994242687934719408321981126145172173211795947565160452219858268216682210183946930165704757732161362132353164266102192289523502070334370966201240479647917709346971567630646011583616822608167965757095386798726750854007773923121734914969305992302852308972567654184623900813484989933722282745392756436007955108499646207218764385634935089245781697345922773447613144310817012190988725297347700539968897304353315367270058741248691526232535021580819730328712276742203232654812535057930465350044596183425609608363096746035510326523265551386142174718363618994887985793397418177770873895991015703613312447853853755825649582490507776042047219531874673792993027115477989124227944986434920086852366388856275676438323451676962454635531226062239869144375652849496750293149526131640626903453764151013000523627517293442959283971642555856899978155694904900942948353414332707918004303261637394796175724946358834801345898458728966817240930548381580738788648993660584859001686052831624003686211043814153611823703035683745096422428124825346039413702952792057502233521513480448470058094294161201248989128617877995210093393865185201343363961153610471880418629241005866306659063330306171670897438599494944272236904025660348729767059303713382737319699720441587314860514299919513582966677426258529653844092069737186943030025454179327891815586481779827083845574975722721666267257893916611143874010766387857719961754677101935409805338456141559328861996842691131843668841411906983664762057867774857287139035712364425725047071079990618281959074977899023986779858924690098842915146058299568797576101294334955299353961188084881711647556650096137413425623200903136796193982465009046087414138392458968043063654725457298926212292091169727738933392660173764340096949697106829693206350217475272243217548109964127004826105288214103481998304614667871847541844216371302196717555870358939716241073989710307928726809861227627582560850786218477661907733383301686637542093715186339207904422222978459181741637160821044159641651439093575807649427997308970658929230124037510536166308886688255876683713672508239408406171536439395911726071949537914215819989051548027460341486954145860669624697217163128640537944470612272633235066248463461057981676303266605109311780097738215758822654822243472386006676618545232573644579649172486186859569243748450964197001636547223987365153507348388320722983079254321972403767264797873175251406471414100537286609553186930257910256362991068661531273198259766997176716592501529092282229861427268044471542760449455691345429947453369739970657814255434310937122063493702194348724197007467120959773011270311854068230554816123647836540055990063006323506168044156513004291776475571624578413010110076866441174637851497199827091544303604884754401888276574380253420859734913206839821488448019697561684292444143043882369609336498418909705530175532511768375648076591516255117041811236600185116204524534354312930208995739827008986272426148094633979821947330129791340132145543033205081666152165445420779176952437157002025225546635477908949326511773334722289804355776520634901320928311428713384699537845695088799121482925431053319378474427082713174701491149312514823837124376437545259308185646255930041426346230374781388474156444893068435518045263065112385553447782705181113682055864026587533146122740251285584973372732579927420961090507900595277869212487070813072467247933229444354543988336788307628814224526798323461986994410249953465147312224965651302498010681353791547242918140971767531767933588936055630328967133746585660960100439768795007927945752128462848945044339494742906484985263128508936527854766716300077172659669442956088185515944653173413149248604049632741532950154485125283821867745569400324348372268951157431094029022865362135785636776452905993143192260549145189571796236630021649990684771108504333553034494797120817564186494345509420076247408573214571478374386813194114863368663678324945839444381472281278344148902985186028660812812933163913889341820887975911696855123933997901138880198058698826993948711047962281779106869793915959055487078005707411765176338300625734189397540664301791845975151069789333988602167182330159805347231086310331916650086463594963425555368305225145117267358483307717309963351140017098727717959937729992736657279680094583448002425632692648828779038755304699730081939680210337489162447595882441703764410301239594422055379184919664500013745331188016456996165278679618785342592378114758266923332429218681530736480588262906716653543319638623373312188514061536124414919766536659959919203401947568630181656296024366342096592588707965148870359990578912410609061012872271437819686623086714610323566294686909442266335509600310246019679028780275392524532422869689207449749739246733959565678747214024052496253167508281745245183608659131100998369894620464432878275957606870324953651494085730042266638596785425407216462055251881313730863910807445988374853001012377735033611518810109141230478504122583772550538984610469313566054642728506432898981346039179451029828743065837537975355221607954346259828279934598773236915724576120681901028386255158952676204391374817965224853045907460112961650324274691576574660976347475043433045789098329753474132289457812209692019384992620721970125986730324735456031591936047333467136821162769999486238925987780561422295259094368243409361583394272218045319913662037060066950899772320995201729257121061815136631157771109997764410685547899332915301514284558145667575317254547557312904509068525982850887846542606444934152658067608138712588147897860806011256461809494834517691676669844812768742200742509853151076069928307965675666502711693945034017346331455536099121753234693039784637479380635487326505117840498913793482265436209386383824934900686697150866107127768990294088473671711643315493579460697838882994433909179813705553008887328925709124591434512303878120342811569411098336338296642530749001746230739040250520874595394323310265417615912757981555123326167470044822371935731166852350659716704671320369146448939637657429841646756400651510744973283725009973813041289563376466569234243160174867747089336000674407393272677604746682426025534502048031414119639513032892307452433053836156507072396055641329510379747692230001995723860213676615083162807060766913509431450077782922203418892305406553101573141335329105971400489872053310509050405180863903306058562039661956716171174890692307433399367677142354965261924170036907273482761214886237288006272633813120342572009679746510374475225236792563858893483645811327413017288392282387964116275748535291205879496985791538728809115876525163112548040701360345476647819881315000625670920328082122793155669876507981055330129969642148884220348400118989195465585734389347986885813642323734281755287741517441086913325068466233895619322961595358114702176692415735894594763953714458257266315126521892617883597961503309392159518040175330216386522985389987697658144303211324018426697957030666465704278275181842667525476792986449715567583407805164532593647966636256714842244152177227911415026075439345624554786955214657399983435661295319403481847068378649420290470724303395097482414957253642713404018464520191646698582713956531800786440145474988541354882415346408530662232172370983053930436408962101481307701830717780185095180247445774990161543322298326561611685887336674969727718668242740362718502608196743509548026748197325340519705802835311589557172297378446610576494218541060939488424031804753591034265532247816006202555650199681949325822895203591197946253579011591773582463216990980580518969091825844330861537553009022812365035522718872238651009876889429281229425258384653235162139076323456759724690654975728372164884637318768678893086345782949957504342295007836778345170254476599650294045450200054528118006823046807570884231068624923456348863850731135974322904545436770174750914906088390614510467701304206825416101771610042599008227899354390913449709515982845061231921675325267458069817030152474458295884019316476154155351868513488801147923746510202431033070108866079073921154069387447166989604674590756932577125892380352883081024215766737269448627543810565911891152707706733012356141872218256542822088993967875597720111013291054791880326930359156717602950962050541188422253997672719661184360180560584413038131811255752071717820952435226773434798184211990762004754955426127901414693611525906508709715657857832676392043263279731160075337395735595141436096566278743778963704628812003886289043307068225261156635807385106260477528905212006153226520476408850390424772168734605427163915452022940192439957967318354245659333872009931066847237224331752180141591071760783138563495235555818481430426031494310475429326323027476912985221209369424097216806772921357344460929247582323997422223668856076948733798410444217393639195039495457935521865997097679489629843698507414979011149905348260712858731831493637019578997693813916192169538451792300110850464843137804087575733507417053191258122105602092775288478892162580102191255605039532459461073195870420348887737090555671682592842224929293719801306337502281203034914054318852001959002460235340965836917004586029252610102074488616944424585995104174188942219319330060855477328580523353479759721238443423341158404515222134664142372119957482209097688386353828216755762812860111169641341719857560398605116389937009410825651409344968646095036854893558432072020419794537358673676246424883454395523269785262855963953344307735358613562964859794309403196598017868018034549746406217569005953598313328601036908208442334744247583289269430797706431644691581394191674707829592952671016932425788270159394630261824930066223069996632156881982163627149511642412147039431582646321894032445075009487692305067901151125363828521512413535753440186942133123421505676229229619550515437707386611253430679395827014382186174264911902717621394608067115078892819098226236138022672235912061114704778445070156216976003522283096153418810807157095245932516563551264448811374195896586442533535100199660405640584870156752568473664604509807371007438762188483340857149244812134147342798994358823365623872035467149730654245118858136699751785635371444705489685407149842534087074971557135185321607700692471584452688667526967646009115833661355319030915155976970204199718520576513289188393411547521980805166067178595438546736993294502592859005215457857710837296177498729889421029697643782364742976173446519326390400453191120883574633347144784764610468599321844058394074790550127901274759759108757655353694349646738522760495545500003303618531697681201203235013266921228039673865019539054753939235527974784110647836474164540581517513930670106704985722549337411377205411328827447789598851082574441021889814754610816877365053397609376100008725291199319134770250868432633524021211351809295456223807910467747544872882007583738965655601300261196331100479417182173500414348821088054249582280410829463275269826495058123089864378071525083179168785184551535576475085290210955126640330418180318932513272543616657776551223884950213547815118970395991703263035871273357202096891509321320959212844441450599172486459919023707685556133173082884420878589702966619743783363939027031113796453369586452827177858266709606760935881290563001720739181617666933487575013426922539642129171957223886343684690952085449086122392224170019872980534031279311219257212154488282658711227610164963604656727555390915292718375148570264547091880364929588092527689219809736130522984269194354021391127397944349593095869774403185597533778544205145529466406817315284584949399659738655935467706599258206082654328517155008818658821672488176233069178434996470300477047360284981545555972929646477863611081921949207956467115096046365126428882091226752387135356524556956124523350606559027850904429304407106122524156655237779938274202581023103150843272143368067985577313872822129792127364679723663588360783227218574072787902228475316550996200030957707655596807313880843541406766724906709437728997076200343572623129682774674466944895637449072257194617352318515516258292945211010746667738707524765088811923423967958585892520662764169829916193013839600149818685432713267168602586538569872208109374815649072458551688834541918793936356191632539253408531483776486997357257426578311830389148510042905506601053846425093388951201275524558194358176729358121460176622238845329117251363893312545930461107633248630356530739093449078137745091305937854333133744573958839055321668939795452715585688729758129143134439426012644568565283088401485623712731113881523585405781933188660946891465767422885066105134313276088796609414057133011319161149476525924432124951128470268963738820179271647621072801179244592137378873740325961827982353627833214259971876854898645902742854967384548662468654668628893807296021822035282481641335225760079206305790460107416923922600828708685861292618964340344171985970444583408108538848911413768934200094263814676138729267732650559283556417628514032673746290685425202025578745715519641644763189526248560495926041284124542217000197410705358624937860794842783985815989354927950319979312888750699625462914615467466763153656661383055235649254448211706001883652947550373670444713630848711223582708925275722010395253603687434792104749994095248884644518187361504373922729501104282609769110982081123329561821123749743470703273610644385844997483170051406905424372387185162488842064272482601961717954929499348334750264824625893184244218383009075453212973046110479993758546358620705279097730538534475213667372704329905051557181723522940797906881874570338400036045636520083746895771104786256602344909774816076022282653668456476952696033282124041277602349635349915893990959862058975931897460476187829624455701219920453460198197431058498115698058325667429002368059451813790385151739839010753848841044209092773623890494674132573761416907518917671251270495841302883702664796386310087658669770355651870606770562885630624152938563557145881577852474952017794381173868275670771590818778326872560809799172194320283700202083339650621935853105065612854371156605098698005246568094246010198145582866069386496298505421127586814428841968130940094431066923115693578180067230016011485231723315616122243130854759649535959656671237153506511695842801333471878235092211511919091710566838100925263147848768323596889208536347418076937059949191895293570680551390390550066941672426414863967353443377577275923877040107560528982184556574415143305356931689864207682324612812672292520835724903142513480381817776373599617595633186015271044456847969238798801589146527566803670804043211278149728399263961020374381876815310126554828017382988233141071765012904366035869040150394045251169216786554106104419512003581244571815418789971752280633136700374116858631954328895375079672247098735602061361001554438772785455862534090787742273347257890566390526337832229573893162948680126489198064219983283853983349855718618803989625980730636309862577897362938421953037696791055610361771870939355086947189603754223114901353395826522519519169019765104406820239911557516261706531821500233538512811198747435819826918942522594568286527279693251319890082022095315443478367044755740504996655658992266543227617144925248539150090402135407463419644118235429069406319575810249741394863956324797119516224105663819904589391308616247753480029136279552152469586113570143170471867012239585015740545081462678609498824505709358850620857867695092513681433431020480052473633822883220538052395286992691809871377115584304548571436008159433999854926438434570848190863979279869103839342452371642937852239509553506200622016586565727195161458548162322858195513920393769053228041462473276531847513276958150548095931617517483027724035606927191144224296669261154087913474987882206852335760089729137798452428911479730180789404178886188533345423919281044501159791902720305003558746772226875263781637396689571481535717482138324915157607829758389136913244928601072385394979710331857923014536443720855107133523987927579570643751786008102562424398510640493731599006734760620919112362630423516961995779409136964540281786651960738838651014417199732298105060919348991121580169223007177948865513853780832452288707457457364059206329259867425590087274302237453018517185067943271974599462247883191203483184382965938811541940217215509567718595242612654553320788993715310761782870753215685462147156921594184635480161300500667853295981149705426439014174377910164541859073157558461210776866389134262191311818025446322643253141199005181583905450355678728265589526867858913077786570945313567760301895372895755697999988212833311054900948010728935829445281597709691604236953017618932848117981493253142391180071977340263275528341165597930116472543866033807066361322949678147202658607235918008998242366737608638471058421129149046084139555179672794470349285892624623328737007578425323324821057147832511754020926000437189607754987754412802692096041820563965348578312828491211013202966663375412457676613205322849757079698221965434071763177381764414050723000198202910073619988560763317620687279700528958039878483228223170911870532739041775696546211866422233297013585968875412675618511904070330929946243878145238730448817129221838428404459552810497819336897664028944888493006960711311662411849519180343394758638672954949459288849941779779162936458497971590363896987381218887118303817072203397302820747206491638981340343356155091856218147800789628181823937625401182029361948838420307326079030767013504347265246053507059333886598217400474366505616790172000586670006548276305419844049047382534789988638193101900675067118865504038395140590956513059619329875624031090642110067638679040618311170479582126281343793624917888636212793722323665204914503763937354345006602809214968569786084390642263956151578520668219860698285876063581963211499896726347291992038032757921219411842352250274407918825058290980431638386858267619086179075057429973988742116361895113078821282450119237931062122627111058979631202946171497683721951580467071934670867081061115938573819980426905116280780553252327025614506804844072223207977433589285517003616816002038203636911766121119453477813735385356379297685803300316961299139355956534130981556355817258908928268200475999038121230761381303299336852605424276363366993867453695135891382426082654088859837610300324657482755126019334866716599039888775457081218414470473851474268557691082379810944555886335625833891679660974028666261624818027195164928120327271295501920854511538567270765158178514380542343227518604421943582847016881189763251090992958629678998668213049136427791456919126969521732541970393621529871161220120748033341718700597977196255921907932117234727570153236480510294471933655653466242548025235147306867353151593568866136435284734528716543117606552657984525546641311213670920387934483400826740586499623778973975779379424924742993749351233903167350058952846705323239697320104246434112529973942819621043440048520415008339764785189467874616080840778088958280877143707333458868551366706380361600540285667593750565223687781010284472442625419625331143098241293641087465284420262449965161696935252849073807697432277044333571776942831453856687202709792203232427867404158528041165894393036329037716637457618763825690177543361632156976317970346466714494272208881890332375008947950594630775960551945497216166809368903939163121175566310717683290597288573977520626088276797001606203818898773175795665494298111866559583744198991987490480245588017930391637345560796510316909754337299774767465818717021580413944027864793043902360976174705293479995332992941318661547267367393542302036305671497727504686005858303725004068107366712807282507376665244757233647567671131705069110977709711238990002870568791904376124103560480276291890373416289591252919011603911180466223326896822664790914370428257201606298120896484229667101320813082220849255262780354158942989163554605980306981285654317430399836502307441153095364764980421053109935952596307936791816592973265339253182529805554281317063174125166286144715892158640862872739411220346032685963006721625018195058955212634336764117060691069595117873365575269380086506485401683388107854926517123823372384771208052178354780054223528738533962088721548116343925057609961462492264332525443815920161873661214325562512438977507471284751750583724098188196702359100112777523515892009668723627846302442762124935547512102083401664085301782924506357101566066906656942276284707270013578339002965820328124888660258271696786006642986750171534397775516819959612466072815187578717938643541554158615391989859526025415022038210843099970635776814715963833153817459859460029493537364579805745163335815480821596370598326914123586079897457174846894160316196014157601456289926372176292121027939344301627863994384668136730839372431626645905821105557219262670446278001838010308204043014891530866089624587193037350573366698987561517642563141056073588647474873004577297698743229612853183417359661971855589652675187036053626420587392516140010719883368174224102684441709524220525440276899921710326940893255109522810081807988297397075894203847426815598555551343595383577244263224310476583124963185742807302888480983353010493743162063610071522673600420593199858990919179712460663837598612023413262966961289809416524105613417782742239067605170559770205511105900424576153591182715817176969584310534251217899850253648916535659591668130982038910273089631487770495435145109803255115855595266640115702723940329605386974099064084439232547536375629250449211334929536380296517546399262173254457651016601140788410867347539874044203875405886081929028194072890492661083965578626520335034701472817037329564154487486299895776121206723584979864345184635419354991458145401472398506490303593620963595803917254008975590875394570348074021613488029286548253940375714230224399107160998884777330216505800738522041774856248238252568398867397131269275622355129135270356314652784075963486199235999752110169793060547379819785075327391798279972724437092178079529558650916442175136167228405600343160550411491395046159289917619922819556685997726663408599908308800265291112133582149920991989997965942365287007889983736922667931512652426618745140041418544771460149870655495766988118091475953836517350287536737549334365575484365207729666119054522962705460912279504576336238357903714923112574576954185700463603602440139325870402894137816417729379185046647926036785648069471393405363137063612936826022027949058767027667316529075741125674386079843966064498302716778219296676202686507171957001331416036088312037022402960952369846931106452322127507876706184840397326544556988162308032927089376707346172644545561589570098680508259353731447874419690124436934950020866232406225218089306628380347903927530031990900477599085285002171958698726834299269250619048438654073037496729400367815006038078176063232625748190894943813284694982604385747479581604639308071437314166826282325882852341942058559597410110338069687748800409217041144564181645198277004696707202294174704349242147244195755506390641059376259411262353720356232791754813994159303890276439148606378249078971233918175198523098070086773021875810711601101033454008757089359904973944593119121420845823532726025512113519624842955581811451883086982700717345642395741367712731084114751005901282657851461994788475415504836034601398676407107850450120486411414131914996801005640331933156183247341870313486314602073481223059524443994775722122353076060841189923805856163350691350639383680600432240293739894354853485114771979095777412390434944556876761727789316093565054998311621208063729304279075465344483889704140414637746128477217649475575796364977820405052862215502180545427457386948797456087834458134189737741756042298834224369223349425550737229281464133185915994733581738593387106122879267065008765877256911800954772523208893782291070380786772373285977655376142642226317290006736433039869050480468383980822535152764231322388093068911392427546340939771514771264468589694840165252395625548662612568559762864367212742431980016022912302813598885992339602838845340449792405471520445172754387611100136042329315982505891625881209659462767804623977193728544997474789664015911122304563069652330649615542918224086218775434418975834417270020664972616122499162816315623707884661702177632803199437307383253139665802699071548136265178375674580832370195019078818157847005871910816748412968342852172015192484583956117020857643182660805892351817408267639845373288058022723739074536227507567942785500103904895692569631633201435653896238591912695245899894102499331881926932141148367554519715949580458561547679854148175231239775137737558586665420817769506789500263625673234932151645480707934621218847156699913381617803885671432060167627439070268222307295708718413540093250664040612452681382445239137953713572645060501538737855961735386819191814910320168129678199865110751059160858116499077220732223451956663543095908671369225198208508143496235015392110222758993285193703765964783336315554821973849420606955467655112196089242441859748685689001561573325502786256720741270422775512961389922969801784478779865368435966181944914948192144452912941048192855586166104072747689794050207624631698997083760796900259683019596476141167305334112583451618223038519280322589372972880831925567012619496161130530449829943872360050611110830254656868696091792099815036601450333507092068869968433970527872990164101096241824900938255798209320747837311645264625272478191438996584641317772255554964681330054760131591770197183772077244227605808869092577038259556632876706767937379516849089748601160590911111606885354272405363384400489091901632254590104959822698141266384664890770050741880060921668371106172862250568209862195315237418822406196894544078107290284416980306640878115688866296725764169940952215836595293526203220876072688793864215886030957664223141676757658770888358004180191399965149142893018340043232793982423368880975242080219985035018856425306714785782527896152314408833140837234551624990557175529384266347585527043521334084136131984490839290236429816582972168779977602672255500000489274322239926027096034542117423224297374554542945057876277601157292882810549681720362340977564415244928923880717760066201215015960991243709242738597384519349097598399655777258883710099932108007309007668628853698147510830131210467859090682213461360311538273733743246415931268341340992299964716695432055030892586087816190941050951676575354482639856920219257643393559371502725621574682519134788152804787930725790295204936871850655460454015909369182626175772179151939713649133473280454556382040295197527472227201803910060713004004002311116471145577567813219516928025624363986653868429013990148322740385330179465984848867034748704091168416491207945397311717388100268801092159869100478945506522842872645581101968436747872340984306355400842768926568594333990191221539939968578274625206242557991777619296965816206071453843673241251622361482818749373830494267013375517050799048181535635528843884648477670216126704859403017943067494143653442986878033440335981716100434671518538509801519653055435139348681789295040282766534326902209313258208448450288086080938743435177846125993495378809241193409894907224412757637889123714663910871239252573105407708899529594509833078331756899467311149139763018288588789433773851082520115145936162647910849578563390840617753965001901284517769965568705028843308596970700813415380109537627822913345198554493143153726846560760814437285449015665839267537856924542847069006979586882126172958495867183278735196825500525416439896746737175470059483657719960440806019265362389851381374425252549149326316444895162178426260587756923356965627511078370671402036131754891972021729906498255403423945763587420681552589397908856374590955591471650846909857933580182395287469555699139347607894535730631576314279552421897377796118445223205516912492360770125902969982318298195329762194527844167535126445986624563001860325626511072836738638713975235798564838317949548796894012892623250914782991836696801265647300356309088660756399765267265455503955144460950216207953816046777799244924638603907386137951647322359860037092336849842264451128704874515548217134901526672739051559299779840206729455296149443893799149504586301649052407613085708349392252166387109394571002146880179117161480834791156620028357935390269292623626220282293986122166400269419631085330359880651112754772408985847185771070435545282210727790040624912702613786985994113187581827803498808574462081354207814189828184646503292668799069388154626376617862821376825257675534918142262384672310334975431265098238664334960629021623725899547439705103378145666431067339454399515202609306274343171670190868405466753279080065460031442101556530909737989488275573586301939434295608703220927994888665208967986862146562106846545456572271335588179688648472509691471729403164513183653605249253683880793445762703133723940001315284788274675698200306316934102175089559749533590497571720544085293000188996577648300782354838647123740382372976217000915795654591858216887793551727862060504382250850780654273902067840079006572069600888896172262221424245003196445383920173270941667590931839738092061584200574612551861222743188579827506148345091879900193120239436121690122795119976518434333591073647361449886115859369631941904275770979802264531346609391744853208444816645341223200325473825090650436334121563683114814415430619272850568754936111555474636462464097610981484455579292942728719476440915691572988044548051938980622645672407371537495907393174243618917458345896747083561977565365922351878800698519102151024325758558509176477034803837762888345270158150191973095496390508643065889854790961488367280308757077534193725257919219690117263692390320677492907884486943150040235872042118293967963108517908613425553369633625319747286014801567339230586949992466939352992732221622139078199041899750470382209685819527740711273098951827816042310524999090780956134406929404439268344297443389627574086866326908292173278130165049916093545163574075779311161616772027918825222763625497689421097332045154280323581661703823236654577008023244629971318105470416809553227267963764830586696066078005926030129490500214033612924836229043422821050210919720212677448906721922382664365297174401345715715592945964844620033333314564146396294222693530945129456208419943815616490009433497225214436064515433449381597003795595255260207593995938201565924204541706631927178364317923939577682876611008486185506155762625728483462725115919528198552694782213049867897845969874917465609252264436405122878453324105447593504707512495108592805028293153084016271370723519335477320464251855987111951860872482393102807782755370274320438639881019112515869203757038546015066037641750702780252245182142316878340063714564716394551084389467489972932048781102226544240933654756801309238935983608504201031895545411168387710598913492624886148691996893778687394768758840086439456653375205737805634498333037574386131550534920804648129536989681253182244292740210567395667662498694982781661156441181706840179635835585376667073591642151368416758068132117436111793496587759869887351856907141210049755553509684511874464888373548709781157701349134585055035677946812418295186559305583888620168077877224517620454174375135192098083901387990489121798338014083559787334436216436978375340452194183198002140632146473750813237031448581918685055177832446203655159756411776640742506049651056996553592877620262057079116539225091069984607526035098703304745092237937433438873849271901986112107825471546892324013799386743740168681182050255719955680802306107906056115549017820216283724334255854023303855366742118521412308524893065977127893488049405684676301063581094369427043572918320776076764091083477760311019217741591642185684979957451902726108962168547520762351081985954785264858896025906384331061568922067242828011947712428015128997527764377248464493388753083820982688456514864143158183729660722698374429941834587423334166943332777202867591949832491213502129971037150546366279318541241225784895704096120122536033285224561855926595338506016452776183630574450590187509802261762136208296198786474746720282057682003953190053392277519439328402018404286977624613590626416248400456634898466516902404738790595828772323882306649471812206819763725814994811121432800517468646766798315804874230951832080432472846636431846896167684165209352059711406660517839647203590113671687828582811332298724654337863595114151180050246507782408719808973077086388459297592849585662492640292754345505387003937749028158085838004012872996186643985492642168154488935230324266309830266094351164240240522865979229109050228328743097284031818516483250657657383399967790317922846620252827377130854867225414889222426294882997545683357788542352681699454058254460758470863552012594711011689273991281996108379345784337169360875007518005446365714708717053726041548688350324918519642691237008840799372152097510136146676911272163610491184801921189958574417867111319554887352476513692155065767916641792143036975446910122723044896728168825953943939255942382770214569244628808395548051260599143581222571246376887603722778125236869643397560490724692820293484345908585449746334568102438125323973073523827088341837792352487559592799213344221661060284674045995280838088636783422770016415420759171102537425765383065737467619728121713862143618818580799615421426028132821674613192163618827987625977099797921720721466241024301216903710637892850330356622032710984656978884392475186901875294154976250410601812800672518320225343243080123094853635777474766444772913005655834059251106811609918936035140139139805999762250143732737796526203784196661586235610659363553696842846573322030580370053287593118664619826058020620996851640890142079879153646490922185900745352987295313245715300262911033624136009095111132926162682902025020323909991373025291751686429023361427324578305496821362952250508459825264576991297546203119425898574099896467194020355863800655010672368267009332642367510951129882599069518301795998813911611050969846109042167346166211324525469363797812662585121397014358724550985208167885245707769502317734781093367632552263841167001279432879598121231674472004378952101524444506879811742502903507954732946119847232262955405219906810530361942832563452666093938472228590930257433878587092650427769524898107052712602505050166019174294157397053008502130310327642466516239716857337034654929461033608678188388288745416121844523385525897438591148435770508611354792588676631526490062695340489512094151721997928837366719750058099639421412687984042438292289162379885567966540878836441965781814767397205336471406655273896725300958120915543873274136111956644085343173464695226826291457909984000534129600080632959412450521101836491600259576593826750432947572799673712761474554404816234962611705098300516300686840616233614877819282049101389689555394930109146199011118881362495916805779364274318733237983240118750225350577635912758527102342991631119880010042819685049614773548907221185736861890107263054332386217049271328858569175481143847806649261028809907124964220690806224561619944686275617303590736449055806380055157182018421167596086890228111854917386772054175172009759842500357889477634256211948677853577191636390911473898492708899854152545410411451600785491775495552621143132265107867279108295416699126571720664879313754689325187503709804676915262003572805312282481325523862536385955857203308043666879285165723658505871780219461173247293933602263264208701957406844317151005556561455608912426837667356774440142641973848949131985406040737886970849841535747679967851074107606792095111566144424911391112130002807148215572170498050553058044930384157071412109757009036477062468721385966993550238229314181674044217591580373140975287290139890263880816097617316150924610952671684630413240690505630417402214252558257866423219806485222969890398034173755035744603007345271770439895140046731765439733429485175702651393104929538459148790989837393913773457931175814627586514965966019124451370377549444919562083385787084463033688295361139233226263460522670983133693840275379611780562824335958509932970295924768524996677963616060136159177704401959349981024510706431396238978187814776518395113904250610506147748075687247964978892717019258687506117469663495345941616485613617496015012526016848342288514853953972400071788367091906877828423641454832825362389523687806498222913609703977545656535668013683520652306869724606947815050210572906208767677903214842922327893974319107491151480707619734254974551692407804456658994654587397005813847157162128766208401178367058089331824807184006188034809122969363665557943647988921329643677123069844438966215516534239424611962616021031582743130828447572099741555908583356433988772375997492339964519564817797674529775638983243576586763433596382074334742067949688965529279358399052398315562517423749246669988863839770545305065850669814947987794005508023676560442102205301456206429244996172469917528446245011264790950831043932003895085177766807855934420736281720424104335130423193769481443417521825795997404006245726552992009714827646859617205827903347020399303934491864481493402967025428469829063656799769524071704147668370853835604294703696551896084738742550536706894140219451303233150621794269913595561670735741065200792954586237309988262776023398330912517594765401646176491510720348324897990922476811906888643787789318141865564630873091832709626594872232027675244215382644040288238064075292370357963089800580097611890581220562815854986743827977848388020947313199977483228920692778508451016082522096672686612393845889359013963072907782259091858100955305612689121742332034814617488686159472762252519467341286493371020275384398731728504078070376498581327787441092771356514958312077004304951133358759080340370658822380182561022485210657752968479609313868706650282020911338267279543980910294773905767305463429580368284377055825987695441423230950248741945147687337192246410974636654186758926334650210938239682126361704127190716907751496702175431652834332289688419884874285291027033413835513393234098269987873334041737545964030158756319891284849549167912886078120432159869239019664437540474943493139614571790504606619064601368328372801667878536068625886329845709458140194528609828761444170854899061747324618808252761588966809873848336662383491908202847655125676049007485953411848916437029393133524702916192197556201238375412305552727331895477495575526603741487204728026664659161241484819139771403717173847047460450076500059499910859861973398790254945993663739377943087871604114426027055084868477794752002576835215217748604228657304841374906319405166076994093210401797622991784057399616070900817948817922358353083854544736887999206049463733373097662345174317056014286550482846902115212564843892902094461826610148159069404444629544805797235815456765568503513901439294201551097293065317285381173043746846242281739288432459891370528981972136618127442416958037788444264538528852040153242338515930551537557158872891236389319514988734153918715690033016245309816239953681106390761301224250955446558608602300629460518937218765326169144517494989354392382504343643729636346438524054401669142777119600557723648023300656589061690456180413534808304887110193022097847490946153051793015569701529477068272927288009735224176359331978551553162672361590066420263588891368730288922416563742477028425869624794555821040796842928411230089457502734542422761117403474350666343636657030336718255782305846397885198147035511879574961191205975345422417917938264904863792274959578173675902420243667014772001365816507389567708707381221706977071793545694739145213493190636847602033352592006999658168568328440492135036456777612739136982598288245336931758059182216276984029122735787159815996028634011312417034661341709047719471809140484288061777155987250870413972791750758455436275371960916122686086197669412989240199703083029624662213094109643932559927085664526556521248007597308608501381173353242394015654319415030877981545865803751554377477111788516178974673746152462995336813488728920655837063798842453363161600996834307240376618425452323561869489033142225186152809518993229688507898197192345268326367299937242378520641811733870667166673949429140310340282127815932904228197825745564318359928302288688099229517574408486682988591686104478303443173108863384319711031617913897195122599298765266010456037579352695389377949462462344009823734482556243227838904388847017428246820269621993470449844929563991216115033027279518204722869456337249459277774335325075971969748518809384094512437856620432152854359627661296840011023043081311540020443451234759667429765450316004290297475834938351406651093728532158238446021443346406670036816479942235204274254351160385371476861518960421061521121469872604837003554312871448449683806486585822788462098590020780211038733049743739581692586284086955947360746504496160082351053089552004570979872745780555206046402881556957882633773093190572884178622297846865136059426776395274164170764444913140591811650564712221749904468141244070515379576394776450605612417042073679705216929592959600804944514080751478528703679054585216665097163225138472136738666942931033147507698359946758151936310390830578253820307124135358771901992155796261035820952719741366175230848948733902051058691513952907692272212850960202889934352130126982303176103279977664550051351353398366311426080098425397143982525404113579242563072871577053232297338447817755438996670791619655281004644069668942278529182899173555878357142272112549264368356500076371362983677028230225022006546408784109790737264016631813486858904091473304554008191982183552828418675784837862147309630013532928149675235232775907199509675516698874612654894067643773701268230713049392409805727826678573499843777656095364997832244561494671357683140051221401199181107572211657712359807559527230760427957929851209694924567703641810599872945411004505441669878377050442589320521186134055521391086669896971129607229887194111026034931726278335345588682358356372855257243470572757500513194221130810967962346227938995074368794866780358285313326537530419927670710971448772895406912086879679712400915837008291557658680714501426932237950402190811564902278088725411816274183658428074875180959170190553993820599405245080944041583230556329435474148758620143196379560013571022748216989034519864552933378359671532843461543766169160024991426361118378335954733710590050482747696549810826236915576563508478360097743975076033959135535115399262192705022376571356376465250315038746648065509177723469077890579257910242558675447595818146482851792388260025194431563840492444460827584613344968932314122713177929812241885310318975470732034178787196755631040583190355232819913702277557479658582269266949526486502558543132831032566810603622268566538102063424739946251994574180766732675869135329153156627130277534333672120184468285454587094083528994541633018489210722676332140410954012290645934366731938175231054713213603186919648507639686129900197885479017663839296500189413926171861410805845455827842750989263546216309435067648362509002707300131118825855372490263673526345876533851617583616639137234577177462740377590007145264657127278337003592143250619100824169972212322482527968105628290652444312298688980618739330625319825979941213412335663504471338159904066312270350167573055545529863414914992942590884501575369733568398498967896109370970159851320698477086893450922820722133290324343680522538138387877872562773910625227261862267834196384811567361767950920187945318838938166854925508003353913680765264378951545913337656888033471394459446133878205195739110799079984956926924628753688575651440381159966699027034620518353655188636030585668824580575112600546763920107958914116328663905928706965992482915197245299948280015111367424155363939019576508256895355988635614830571518657902641889661901876327147470704141046457489648529342737867521218471013319859978617408131939712270381475811554861203686815489269190143746113110111253363174906719372422863816287849653729981555245885949405249856162853533101299421109407795531686523205197906016438581847679904793910496267788028928100859209151342926412799893479356887966477479376198870728068286576643479117423808157406539172996470770590181787023854058263238939980297740861276955828610872364022818230360305047363025516553334999424928175867741266980263471745013820799839049947195945508439005034804883558309519108431329868216683143790504221137302568882239180253633030530865586407429374557452069541593677012840863650172140430913179337786302158834162580729380139177084222194306860852305693046251368806423698225110977635016971327939239369618108112353072428931944629160274087328032991632933373907604992608593019616964098938696784438532237237753588372455485252732433192195089145671869615061671041466475482010183623718693165366916877423674797427300370494024010638019084395272778743918708856124042549207195550730107028121375594881570489008460092568916744143957055227106050296288613601492314347115104781354582998449316340720108550438729754952668710884304063572655910352231356526393157211009229815681364179512979381042589318439249035440061433562002849694193502161178740869049382557732565097656664512284502830788839207542503282579788080664037150761844952551722491385903716758310691385737563311231600992037177218689955681675101369777247286406529823984182067918224421619273592547802749287336738575858837237016115988474697630058097531158005712692119790672575523810621686643170704809079603007908284852246024591869264214515358497662068652805143620302756976410420924141000328276857200487643692435447770974706174492088780588644550405994362307202578536276597053753780946731460768704105277535418233365808349822749504829814583445919983655679747035928084566521305251227127352423114687315471714007222338873211529783042761215928450166692778496145472583267809741601760869367552005893314961662386606585090391172404444482249644530320361245778793815822156073382993350598312741934661018639166520886063291932743005332811789690686837647810410101302024689038006787994948637988415711969124547770320500839064603180703936423085851383563394352752915181270293928543339678593058577320600895109715200256519418495694575811784601022504304029897696278926055300592871038758203144616371845579577384626480552076317564092893656389798114275351355367696759376197665806168250561020659362972657057988521063962585250812010532407513149741678498689177513219296604469934472775197713502980994273173149164566996073098584238526228104782440721994240397046414981146361741762767297658537085127497345720325624445404367030184408249562249356522114003021032096891779887610684428305700598426408521093393758285011784005155187222864461410856445902008242263321522197179946193791948021920225049641683851077994320292880604530404139084507947947995966485463106811369653500021696968380474699284109997395204035380431730820739867385888786123727711614240330310241991414863160739321238602842137831573882940124258363228661225170926407164218681138185222125005140557759911262333809235772980028334266570110271788621144554451294107115120767243700830160793820067807302031382016670338812264900697083839354678266901424130988793358066372311663081180279076715997775099434361087102246377976772928049125083985621431995071548429061510999767509965020443945121226099710828291788156364114350694167183378373120028741727921889433597078918697129306662237964651340128885718891625943081837567991860532078973517778989089798277684655252661753766935356861790631144187109929140291797702537417380990363991894088340361260024304614852042015582262138928307946626612670845198303149036265457843008344759079266563868713201258520824078984148474916160564236916706743000584156666494503195994371348081485657839071294835385044908434649412711640324616918723290265273155573414080007094359515462021380433834296318648036573328413003676508293187428545499279717752522171983748513563596774016392190455182589763210276779164142767360156930006844171899831383045813541506011084881075744281838856465237861573009827906232690565705654923467407910020072027282978689759181362945351733551728249947544386016173116607930184648743224587291167208938780893578480050821462875453382088082261789042226187101498034958477247898894510761731992654196476359134821519114186594887684714777344830869211743483398480140995004180568924640618099032910761340244298067663944928467549648258106054804796849188789557940355496479589329880244301117721320634058410026103046356816285458776898352552305750927511508929626954192000206788218002204186673370312876911159786884233253367043575473700300822407118458893317551281725598667748774965031568999877224815188604746954048789241205495262694461622932401018912801690554293250023677660469672955284976879749872598381813184947763564422487491162114784123414148338264214864554374566902949888978513949704870365771914426515885698470193259860528536086488524534375051577277070481772546145639506793417339236750426713979640812910979212086870702538838028958807624597731152493088529301309081316781926097824718794467318105253135969798740798398146767771868186683761691099053126173955584357608843474369913885667752670039167245701023987403645979517509187874660509456445641395756506710808643907606732245466440316238763841307491781289045250728287052966581381461829392988339887466813127167205576728054147524308597854759123892094605249918963389017446558994800779371653167422537225291119026212750981931528731089730186972759885701088665844812589187060345384394454757817537192861212932576951483791391986058243656246751420096705968168380864975693750023790524057951719467877085133843030112253954063354713136399709313658219485765640085593727682371593241885960079542827719369088463954648493200440258189567028582107534958331529084278031200256083922094348669277923006344772885542984982894790157266556328609939067578628666464396545363250806751210933519104148045035132619178681987921593857137523247055425652416891522525689619409670636868496665731532585825124942372279373110947508645620827725903885383283192202282416445187581865206697219759744832515726122954470791075455690090324286261676144940257026155997808308996178635670167173546873691235548181165511136356588390576794104669957193805688077692503512853872708087498137837984764452494603834675914064605085456894739253995070543343958984755376769186723893853083964686983711754445308777814318120775108800694139247288502708008647269081539132864115246833530262922819208967909805336822106776306941363644282628682181961383353720356006390099615337600594470177477957151790611114224271632000071651519123200514234158189752254956697730329047549552904093895321033906115637531878339994967762059315284943926593888919126253688162669104931377527507582951660963177324711599626142988931331342079655779891236940824378789529672491900266523522013074770648215148779553235750009121245517756644996766524034864609904337156889995017670602428966366496381079847068779382718305678503336650961628616512544464255243279250935579801430190644864192599411234246879167407232367820243412021584223240739820314089251930096073079815761268166101978901250610838796042787940256479363886036874374715806749095294701817813269570757229316632413725820766324765770297093722523244997466712006488819619159531945112852727086310766315323387264093578250116379041245601244663787369439758286057591603970450703372061322599407740365878312583788155105671899057778672472748958870388843302456939789603566963057732330008943168814862287224548925581535668290212258400763985987516339651441795196808954807688586250716700787247716830076783938666707589242837531086961182736581045794298064064748867547977048330886500458833472179517335040140513929209093412843297083665160530201747575689571549772266138122276069380281643927858666193219843552708528213556448078132694163156957880892119194915818244563374836981293155497447387432589431938621769340439251162531811679509313985419466895956032450432312512830113266946700427767133905261908591386435403398162369243381422752376531729118854343159359273980205110835606184194867879570639288890130631706673601898485616725765877837565050429341568425973429353294011716085261430582064134777681525082559446124481373290352335843029755337715275672731402989373407711152592356218599547517037353652026532583169489982133151370957929537137653056593808870232913137120804796189212304077418968383115362540913525137117948176302434841982764165547095078869844629254755064380433736570845343169401831515863888938046133540690648953613834912520078701217326970515392624477638384351050357505015801741077414059286018462560469860951269484210508729227966404241189811835379350455460887118019421432470061430448183910982830841052275024281823673459153928379527440589209613377581805589598198119960813645797734417662009422758791421254534162987914592294781542360068781481793504905015026195123750842572594219489059848108777959828520974510794828943660718858693390800277727114690465720031075044451729843146550075803825772870882737867065418832405389933727514074299710351242621894672336650228025353322384892689802459711270375810466388202292468223667094677082295729596015473515932597844408930563546666427517399343112697238995759363101332366159168277558761040724270690247253949461502885569320785494995555064038902562136075761822735437872040388834112046439925433320365188614171076789045347470540984258411600602940573649852824051779233552772741995562425991638426098416627436013336680199305385853861624627948941749044048977716180980843018156189966995527889071830303944110180613360911196793048564892816996538054439611633816682711794188808762457937471478612857217416343783053099509844000805492664566501203892923059476702503624985765646336106699781118677255299631690921710194332554335790396885110398613105739758624192361259288332194763776280061294436276670966078797386229843467980797472849856318246785203391759156822314743700317266030686987321940399339661403208468303491281148284891513097779345932576957180729918144235713043023499944550359283118991410275385238890558254987281988815870279925810997097545624663960789592517625867100073322475037334038256661731844306972213520521760592592667622207604830546020494103660312843121945327480988431303765050218674370057893834516656634660882166292234720496460822801458364798645925522953779088329865350454552114348797347597331769422628346188592037409407418546783495375942749918163223291675065070736346876841936716543556065239681307923363442538687500492553705991777969544299437729179568516319473684136032147393051797489717713750711707043419892346693456466085293801836989041884609113502510038003480916575849293498580895308796459514640189717072011100222145589844331609021258291223163626181397095368960080758615115854455566186257218632139928338496150029876573409628568730076161504803236312517286910815678330984132608291046646953208993621031846001996543104720482306651544889967578225174371311473762285587320176755863087271176070306500446186112471727149440933400291912747857584613804447462175117057208469190652868703049655367453953983325602583403256158182265561085641162942657598474460641135583117853259475821957805557075943747679664892337942441099969858021798601182307639467005058605788965253677536250905257476531759494046255937892786659087445022532671472375943453712680685721303688661623071654363763962249338200104552999413201575035894265569021611652973083480085885174306326153264410465902335110110900377886532410613123684173068809210731371191931332291921451089799380894720585895779541706916417929857758438856265904317515802058992169027835373181403030901943630583043754578708979427014653356011589235904864127748272895279705487764722440594279309100403587701363260617960623793560657505808521484293429816822869299367258082143772768982379506175208709156443672502063123393125746565434146213827645887556911817307456506082138868135828756249110753019939330057636175833275695150162471605014723881172566306635094445040973178137706802599351652905954170423027759949008627820668550591643339403532976720895794280439062109012277070205014369147232208180634846721686585108282592010497377422096339381025280000388180058949475215962275099154581460895150945527466886864581766493149213714168711554077493298237804819929644255363180163247722546701555479369197229523428190495774946494608142104183129404518075905910095950933100422489628280882425734936529576650911530975749195276179516974655879880434963334549797729985441692221315776691212386675137631219990608890698278854813062496771941745055966130186713720407115657229350369451546703119546204735955779658515238093502372345076600332021538206835367814134688794202737334122318323842842228067201821922712880139286514700891540626724830446262540257906464352565727035882091321577032472898510605790940455331042739273480823028979340447404288223355794733353082722244641199863847226641337938109750734283411143090813269611450556219780572763669354111104503599928346198781367963524516058335959845066890899883366114955704749030561121952212493258304536508189950556124223497910827850328817411658483660592880403270304101872246267211490476346327793500410014713388086194683947932693625074834951835740400940164698307411253380924707720403373701454814368565551944465780545694387111636640124010744387809130811788691775005605899776412295906558782955103393810505483650678144475600251523568332456230264514501561435490748874731049276579780944858313781097030713086505854659068862756841711054506443367354475965119180908844955809116627876974005900298623458885389119571389439043018700867830405974294046079142715407901605363404419150838442206667504854263174649432841853218988845029407790666418391573391530952224547046707878879235743128801917510987988038566090753045956409599569806016330694036936806667469266550357955981109227835484451240687770126127317099808214196987449370452850046192996208667538408916678453757885976384831935661171091822269757894360643117360303453919734121840747940317242946077982014256460941644707489357960347900325154492499027327251403137263609760425872671004348541062212680504126399985262162102179560679477433555636434157014946860741846425466101529002587423837905638685723095972095137473988720804663864035082009802394117901363296922203344006126194387611688401491674606127468861272910917915763729415927739758572199752758718993299655956255877497194928067440690079689763618734387103443655798809727189494699852882988501322920136853227842993428584489512780238575391033756183137023858662718389221632611450835022741852034594455973261901131329428794677238529006732465677751957324684332860085114795938178563100560233989864154270399642186363368159710081488441112976164281886694135207794014085926186160966638642293181179706134103296456865527818411112816925756428793904497048558843443219725660322921410511830657626716477381577082610572251660831720716474742433030176211345567517370461096101390629730129055757141967566376699784415143266754801936065295859887548001313714164233531326968720452635679602853518971375296367478447494864540973832206628461812698971583939552298127431601404371484456594466077738727771078934132463732271304593052176611119668210119509713692607404213584944501837322890269826463586367412652964653746882831966727928473145141294536287401177424237120995557235647169388972782897603181087020993649935641208614810259185067355827930487408114273628177273611374455262199610247119992071697943326229145551189327134347886388710718684685076326001036284360578215053784730910121097635226906377435738315438863857775449944739025016769532823654824005530684025060045877538090113944504219277721261986073291248638591102994898752067334224071906752836100658513335009134319423891879810179336064905422496915606010419913201153844679583659839005402480244153154077077990663649726548435128437481104684642782589315517220735247305137728899766889751062214132171617885117034778730973072441920909623519677794946295926480498034297157284854440541125995059215740828744623138863223232854299304000460802750279694488440341399097308509004243234829984372621106772128872061043805446405996614488716348936434395628554120691370885169559497021699178329869600822501837871145478963300837554485311477284025606898308248853570629214481398190570296848277367365316867265463109332860086050976646903102445275676213839614670121202904544979132886295645386586198115045970603724680122216348563206319247227469016793229824464478805477717489077961797320530573028821006843492668877483757732138230310149713405200282441257599883908142440849508837757596490829399388417349759349061607618121252653044982904712007457315398651129854395087122494746426649793437022144254220941779752281294047229788248449575281706127059088143774423992121430855768547424125869346417421179723012468629529200907210959056652884756259329440993059542939203905085364519744888243657473892095661143031629802064249651465156888444178884668461978228049390310364496385941066419414036387632977522496559879991621890694548684246035967812372013590920545378641434608452414820566216544792072062858530380593958207291645835947239379754085052380214334224792076786884058586639595313610628556077045061684158216494489460223452256254594801794114468143825823913855417539558536477368655288650256523661156453483209998571771921306224882551684410445755742042623963867300316726643690388648500298606230409267827898478593082966347927139113685084200033768354230079996424413293868731857463880960173286485679011001272168181993096057775321690941639061053766087274269475378929255459544970480575749439061272719218286266140887095321464475215359471523071097305742602846492056604029808751081129585742201135903482124016087577920877774809681501365661078278728514253100007518434504194147671930569483737279870862814307562575068980077670843438443767416426101570719851146626569120427421249960436443316799997515071321229684974624976981233133320825928832596080671882825475175459896519016077751358379342300560103839562797377752177371215859053448815614894314764171742471172880429460505463820272444211420172621493401902513943752915759631313705377476895303229135031549410816160358479024694723985176419228401176407443573930694466918146095238469977661929009744277366266311217555522513197150572599294584749885629820673815757460675687962390355778814355091665581423934160243841231115503188455641585623972158422779585434263204486522498197504374004587887589396054959100938031690286485721755187169224306711226275515901395744114429862653671769271669254697040756958991014656604175570391145777582483780259699380747059490702363610648407944227690794972715119160319224343174541913539344034002900190613287463123869458156667339524451095856530814808097081426847146191770839042133568896163431584606348922790856814438619550336175972768588349025287051741446250041451473624380538638426742537155363266056544094681250979134292124232774165666789656795076864363148691580263839195557450270163138300755323227210863353783727646490406343698577700132074471942037747382161889444821705184422392464406820817426536725658242711275155513883394027402123701913836624585392519762364355012030981367803627616896093012983924226735853642932699515334621863356696172467403021174900099503392988664599833063578762693144933302226455570336003831831154377551376553712048356342524098760437558127865247557728650495203041748195517943966347210423408833656124788142859947277476737388988480170739542679846657393684661002426463639063908458973564988320169790932344871077635199716076538194351023838112231817561424114082665824019342902301709712374164889332690307797502301635031865469492799314024677554164814043417565295056641527540782172182926006543639632412841476981208237949585441360640343553717832527208026000644720696832594109028272927007848113717452969650819659179429002137783351808322143043622717128586045167319744566346896712671394349378449615828590279003573349601704440063723080796535697460625746986705136596534803011131119878665851666209544241124001773296977846395794807607900068115251979183358015741490648642721865132505901043905642672989728891883906243471302296090662785008185339656716707974028717659352471955522816770222805733085181471791263993603790507979605308020760711351603204710451407027564109972172444583893618129837143989499019061447039210847590379032967589676295864672769663804590979999873459194060507195794796250063872764105689000857288829313456493250929890884796071634022768637614147627592336336554376427403218758355680008925216204186633636792306771589463336244257775454057770248425671509533382623711457758384440729526376279091183127886402633643228357978718436182538613584106439011763689219203721463879911626454341816295447066406654329224109253038390045997031218492316305993622538393520752550288772328608203489465847066124615085955457696841848894578889112937017267244946850972785459945354658345151797885377364331008045732626691325520768257001798439603809380713442162197691735760979695920245274944676695037708671256876836922465234884222217250687855218925644002381611889061981270981894399614929655901973874556321127695755071791671829203705908426955316096831336953642607777214718117914568841794306707346640894503028558912091560471391294034975380365274782028729804704747073874129482012179619081600852016052097128141560746074597091238963645008034357289471237946969645705444895936941924462969373013735312309956564197907873828132801830340818706774968535723617868866861474442512805041713733367524582524018477969295368672022403398729725414997246903585203765250046722405482088229512557069892594554019139549845749497415291578796621643431445735910715271943320669582278622384130364937080623647186546411682142317051779816502141387635487035731825492386931873382760905261730098454211141854130422451852354610591580537381349085358231617038246844752856586084085437715199900536798244392508508506903753579797965583472888035152589844804723191060947107533121320317097052556329644795276638556154037886043956279465220994763324214503651065541775706193549214137351133396853481169861096073283841313640959858345105680541428106901061473802674637826965971997877141865199626159527894312161352504441837538533089231204149816500770313793301135746641108946780619969558132667411427680775424873971479445929910865281863983460293266601811719295904632722849135940078382461197639269770018076391908292765460426380478942012277365369746695184365845220951849115893649221385298716633047813611654575013326532299635010153257964969600892416338064105567560603785065015712429570154492410591090976691721791768846384178328600989364270487319204131425025733253219026647227296371475370711307862142855813480724124999262253973097154531370484064902058580286169599910416321534697093578913441579445867662119039366391034994186205716864222119652489067234772796709577427342609822648289420088765656698786274412558599161433079675760854239916324079200436390543205813962699883918376837774797103815386769527874308117632388416004722016730448637606989223246230421352487432787728821424145829548391585188813581043713310810065318263667201984088395867314760857676872021380569656065765926618858498655954503574344498995080368412408461814569815766205532124910116725105113138803364235760062220652579158187796745035880383658310564263428489887281872748435360411690905076323073413420281936528346343415646049842339238113471763824133923375357233180703256788320647496700372362708467619919477056989643702633549694626040984090210539594817727879286246715284214191740170030114771199181032884923182237764610447211525347507638937796738556102458457715030492849081336316801657528150672190756072872937946034578409235745523364301388629313081842434845900273579617122707417543765915921141665476221658967048964635855931624243087203999910529701653193801334309803711705590011798573601969631083460755965608605620724030013863669908730673490058376917007605631713636550237015862947782849633588179150175155254961013932337308337155904485995569385572743541673620054309819630044525438589131683834313935719474576305280722737589418685099334834219871279965170445678565206444312349166359567775662148452415225314043296925860221425350485547091112186665889595632049731292098873349089656560818580428526180062264505350979838698417148830242397816082021775118348598445458601451249994497157731313267218002646011293880699314513013298391335509165340282416211802031057302039324331429701949493379745170826140729288550218939898092260481488477617491913186408663759784832742741449056979964866434561758631056575817036520502557484363133161719960299364818454428863786814655389086767169778466824811197189807486047124215748923856634642773712740758840699764611739755300658288291318175025158181812402737939044980573997635179763731977877722551812633342217499072983960370338055754358314290519328599079697872988161922440170905097201717647272378091167095332085270356104923141640627015556140228473330580851956807778557679004991924333383682561248804490859554950492468610256203858779966624604219022920145652689923215464118065357655548762061240112353286813331455943044954654939802109799354924486955769127312623759640893697966667105453067060662883664116422841945702526007112580306463001841559843954204507612837823287373243321422031530248496811387876271692051840357010987555163919126282243371811500470380050083122814282257304324033055285426903299095447308616377057591569786064511460941071252656465464749944057506112894968202220518726440131927213582989044646846554288495702925935564302012238087694802679335452240038614808603631502706589676648149011249479918186156286488530384308712347913195370062996719009078497137080602337914388525770454689498163302663136556790465287474966485173648947775800630746201121132948305467829187911381280426872959854915935505672459018953710565771616723338173900321265357120452641351893346131718970869633694828449257251412821130228594172560333571298167379847544306803286557182421510364788748022598197265376346771485698898967353485863446488860856036222890108302185332023127507537869338511941107619815234305307885999278768199843025481516116026029070167035384931605993407980415955412065551022384438399352175997575109812254259304947487318758890536880553004489693493696348755812052441383617774694566333249246441779153017929596035592031147168541014154698244595210832239553952875818028878639592257532266956384935244051538522261181614617590805222714300591525547847502442562010029107560962166737070091105294254848282904132934296975952618304840503065939748633044768668092403334672046024498321590462183046116217157356577304491735951188829004750265591250389485549594472231249787246151625429311208252742389618344831764408538634905757262110603074614565594280843217522498781021748840159938136913290334818268216569850937242211713843151826083798867337256019302250469138440124588360354999743497851222712721781832692256348307235160029082384915310955207849716538311544071353397487932199453296977203010301191404663957668590712461455198046326087410354837618936085157074901936571609217351693176186481839203590988277471836462771598575469543901251219985721059357068241799838716709379304584811830202995055037173798567767448297240416135060614553584264748803664820465066864555921615967178493464543621170266990797023184561219268935767167312842608787118851156238632009745971789408009070852622697892791994596445396810871079092485685694883258141584154239127451312673262333873539317423708854995884234254781911274112742319699527791783503659473813896355788001483117306893737643121516451423488346519464892712472336436302140108340471184308911720941156475619785407630576723775383166956594427019635570510406683575083397139258495708423786001749366839010532334357783375588828021189825306714258719445051536345643632981944814254778746447645167905262530178236817231384802454857549675147774808187517173972466223134452876128942389747928339392286751164034167492100024950984638205197247056864669256730585186224119493909906427691173864625655600206375897451365104328744224267963263623543553360404459466146437664491335186741813050409904889585537325519473666966059762430571316565549561911869499454910581167788744825827213011692921135420981899578993658101541485724903856023802375166290784207744165189654233927007123228644561139030522769447520470172176863542834776417001765621815448909596588495526003061905813567395699471667132002331142787016309686607134591975448642475812694020778113038877090902424075343931983187696431841943677216586287724139344580511024540691140623938373790062969710214921756939410977787595221816133643140304653870275405226275050511051551256208276578832867966452957877683813476586844764883992906649126342776439470265919441148158533191128239315887540559219212852226844932998322923027471719573889567809856600954275692966524387547452271470902404610926588832536715283459098965510690669636524620563456764101018733457888834347167551412685771031250051706384871177199743628063188162962676970929666310520651556557327147151284730912695295517937804673304012366066934990785186530966757218474452490809590188970130598708816222253468357441107986201073395993121752932863133180481126545270182200927275494702832144085223089585244056062766627486610181417529046077332804202439244543314520418331192138261018947122158694430871167988116885543941824423771588546103076965033114494658312917207086001815905002540466423621815357127520336172635104797067808446817301107106061708095836989351605458413696831018564595841320721306446952517311898552685423516754131175417950567764046053666644103229073171975875371574650928074968775112003769330191870323832461511738286744058673493217769019741500997886205919485758119686253898366099282211436894882509914348211788769041421032061962633194349991915852667426191850513396238708775222970991866336899735438050568329409671970783092832802137274551469229437020677344212950269674314138126400138680602019840818921134961374963065212033587053799279756013859265543357149863620542264175376842693773979580377238807153852312086926431114837371617223085450052071618836943593705660351034756909984186059240636841846315680041290208769964020319060519923043646581993252531453680386465469290420127720304073372046312383525951240153138426934886907294942657950425929632825542354639783767904113189683551612400420045057198626321563770960280083754198434045035487647866862872847208546824346994917200694202311567827295152568349805456732665131242481059028764823720963048866292797316380625490036526380168240114706795407065200372734006404768382383684821142034370115891005112553192753295357562815334490117287201862524863406682110512492719867841338842187596636148522016331794954490883408644531233473767170019540427503757297791914013859696125893220290811583255429318074155232590051990380963999230546688735455851878719982104005846579667135565527744488095008679987226812523218607188552689927725854542186046033911801811447682048694717411374742346910428639377905168039304945748457946103682751234483182710829206051311313758989276277525583227634940481600878437534856388141402240468845456544007248318475480054401554274445329606006071447850220596534066492812645377154102666172113369289998296308589550985286721942327857480648639737807106964940667599286888295625636929864244880952465908109861399170659134250389922920069157920701831527116181914887351999552384366595901315191211866762071707659639774308513000689593788349902460156550177303375641591669550603587766377754632791564009448776753447213390762044204594010343248353651651347071730439709574890656270720898434973594478702188828987658999288399443281916987435573944083104158495106771239805785575399879106576955440516254127253409095324632658572106028269899636562527856797028932754491571304466416172046602309536383420717455933292863287947230501811586077887726534594415062160119401338843503639866377080716938764820965199860449477207126842189455449818685555808907005948060286970879941477209562641065953634513581487286161838519088272912733143021679300981434876033168367290824075980860201235564520806151581401664698035549975854302085004199114052725328691225014772853450951202052504081296508756069897966155074448948480166970718365195051460512087342454983995035372497533735466749905725221726496136649490940482446173405016529101014259692352806603330094261526253974260119062748483562119187690245908491738894948164891784147609513393705556901256338356870249448042198199115837901865409616288036196688753295974839255680341018194411402409170852389803579058634119749841433506907262871548507174277873556187465385185638486627647138321406412842565066652591009380473214813665827889808735984009939254486440475390949733241052045561235956506165001546664784973551600668080375207598763424214087555692268741269009638820630024636633722197936197876407596453365693706216250825692920758076938365900592136971340048137022360806526972376392778065623888139310974045073368073849691638996836031069230853918405877584038345603508184149328323535872983883347926479899850438319641407278772867567098462528853077284148730045456125316499835039693429779972762721970349111539465092027682615983768391667157412832181358987325774560514945430986999654712077899829153127918943404920753377051639890504458121763341402634586762329650237690919119665577340245154809997523182666895597107519935212593496589229419316117061783640810126037433143116882474820947677004402863704301381642425802725935621976356629008901713423273052750182769320334897078267164873980466551649398835692230538594887282125007693753384718179564333494616334387285955105933099720796546967826607061870444338615458225618669777115290517326204568729401415885517008930131665657319292661565670643694656753032948111302027454389560667769965114330080501182035704348101905498293274283004385642509405041072042142747477725815347957022212858397521088940971429020047496641416211630664021981857027133082351539418881721562329794759399230022407236535756452112521512586658982454067300984004597563863331592438400467378047457105820602275748565324130660881015035525057319371609515398423581724131219976631469239515875876775091528483002167012753398225463212938332237766666946881889849423527092954056327034855045900245091051595692294512335923014259152710502535066534391797191123516178462278506777966645573881798175737669922800987415213608539897574068266090339367755347352013937689669812826350447506588281800601591513010905627848582314492464802979410854067088586191043324603316906638489445674691358525575474248636736341871618707960791969565237846917957334473812460927080356841054212064763873352470479707901138575693752619445604154286552553094205635249442980215871511195786364146757078424895165250328803509850651305307289367471197628356574280240323020151393221160859830658093876894352571273991048297748995237289693828492264571483441354872190173032924605608947132848593734333121810589839592741787379390984479252465333165397524400150424152023483357304877726104879508245087990896050660220876074047313661407804660008709951218024050443644456117762758601251246563785964368217327223400369840584104494952123381797048552954758199426994619908597141654239625096778347939082953016550873762385787132478635212004364791104625883222902203067474221673815782364038061801753497028762492663553164333680643710211490810121998951321373276924873285030558947412317908284916958947010583252762011924584917260283808581340779555691347916857288957765884888484261855394523552228833126431428255667425523519308601182705495772442953025129788545930774159025645125635092274293393143755060551600656931776873743630329469948761320356463925621692212858480377399036609300405006002468867701221613286489464714137492056305123235152433091337081036450638747982599700880639690290149167890822011176997696723682408818910024810069062294159307074213111336603103272267583218381924730414712573152662987072760531557597169373415301490324771230019350496010406732960520783682960818151707112799083929141028755019020400946830367438324993043995980356997223078838191185336031117052754184731330437102847344101376510034543414510227835106410525145847492633830841229448407967752382393712016163755978877887950790797021976032958830514207975308123849437903987022212753090327172178882307709580799182014227879773965357540478507677181997372743085091432399661997324615371633346619649333308462002532609711526201745200163172278119207609590301591663695520049200076966674364683375831484160307579441391363190671075755531767822760610134635084279869817442335699356007224480432780408194439136813723929823957705617526431092011294818648702061849419386061254547830866975738989884689065975053449472884427547653745043137686312923907614162193661950041847423373906742724724453722633786703113128518561753248830762018763856925893710543390427137512913253976996889113639424381315610438376592840042118611271030460878656995488795429546491983314595353926308366487091203431301567682351200101524082603797367940510002144861141932210937534599543073258369741994611413251599912064312456021354004035744794874741635786103218791653854619171536637001035818628737322802309508126716034424217938404472113682719181362991468927948724859662124925342988948082457172950758941346930167857309451868308281773416332854630619043228176194442064511717776212174140668842744390057119857639657044861826815611584772531895090041668251839271180614929753138539790252849529504959955961591130279432534583807094888268729009201905120674253911449494785537418817057969684379355551455985977627072677339926709104375971179035869899568401821487433745809247024232082191745827944285488965111057156221104120992457138530196030740953770662347313465259562133033954679733616289841932260243594736838529070547115260720302014757677909979931566341139233684252370830867550190694557181386574754696274337437252695282357709153615377225039453853220599870748303686959532794147734561645534337439480010238821649564157122597014000358885398959306453438117144107947684370903096166573789572757047501451009301433935795984338307879899977762629453109776674289848409948905225016857524078518082390139991997351792645425267957765381767392402951599882544331134662089218639760276854603083899365590281454670809097185135462449607655627523441378999073145753477280544293108956318895022891250683177210451233351410429658169511625093395602150441122002098127473486820883870472635295448751919072185618252718311274817775819876626305859399408872714458060195177137230433050568793462327867228046478571386702841729207081138233452171419052910629915383147554589700276625071892958689926803700949050708911781742191407880970152909388036297691177776356636164194315400452942660329847974519196999070677027716117066271340982753849574507356751280051908657786953718832719234925814754376352844557344186468636603106191414421242707627850574152565655278833700058556090073270201287268341467966955586148696124442958727559543864680429853359557639431857399310644381177233792667999239063397208242134361309250817971963830307572119123039574467643385798043129956902449707322990474198233000954542243329023643010858790833189736372810683735051202798704854352557145442370998383113691833366323329869911881642140685990321975377242669645766613620276532319580274963207428175582100002302918979094162746159592909703992209693081669411274031651268599809985344103992333312899800820202917583399530623537500255822048837784894334440392147464074289540225530964300365164011084730124559713071705922158068414678488747500980985440353227644263701003727103589404574817507637692736331665206280950677787116374505786885395896149444366405533628949052072157148821290368147710545744239071664620448242510719096005532911318884584428177994989636019289066381140129764221310996767336431587074227281285151875159686354603359510776990632615347874004522205667897682208257679310817794860500329637845292538576665502873237312750978599315635015208967480640899314499742640370365558897106955801479950270135894809529056033391165773518519358918076286368879590517911721478526698348039052795103188960834502165094256970106288780122316873221923828886783199234369909983005833607374243142674410376002361844766379048149034211979444193611198101898430594034450872856542748392603673335812674932287294077622141488186492986724175434470719197828246418676072866810353117858307809029048279478667034109646936553362886470853026904393399771968060493630942256926839874281829390975430588968015475849016330088605504040033847698112902837349411376937426302212588774927707428149358578758234451061265531461317968921773820201283721161906763301197508102668842585853209779548080748533003880328199630251897544594270933313396660980094815505481891874558062239877143826697801943415610317765471082264165522847624097114016139234150562182122825549492071164538920239861893319883219008978015294649385501902314358733442079100394285869115696224851736113957710586146023751285792039216017280815896481084535798959242521545172130884652815160702593561648282263697570385246318949253579787562898131232895796522790039093420280536516362419000448733060195807666436919348573947352387246232966387006503715902500332511521532840776742672974730843543844529417350793803997282742818561956172540417517401994203947176890951323413051738396357141563695088632182904360974899254017774375040205133111144555852967105365553714159080202962680194795827556370033734681985246085587076838829891498403890204199139819063255116141059524921523276437860036778748028089230116319413424596018448895810422049009275374247998261655513089165089091898584841583852728625379175934055727251567392160177212950467350385607570409263998337617970014662321392179373335325951841679732962424411853577021837662605964155607567145505226267039144046761747381746054077427018626979177331015895203683308909935704927702981801188868712403518064040488924061530912899808431289861087055868430002330649776209373857118795197774947002373165251878474550193929984520682423286408338241815269188724340691845991174858453585053064030253010275503216547068546755000637726055325944571622962953319915891370091420572832988333929318105297746916783241684420215245563511086317477325969522680245289825825100710770471881950856628701483448296623938018582367859774548857419348136444453506066910872004849370709705880919226551285070503035047101068031803823925251940053522956615429412025865377630156092147918603263496428253914831231041009382210243928795098117703991183063225758446199247937545253849816721906049677611408196949861283719034496837652374018295722187140629264708683301409102244981538197333864848368064193921019636469075910556992137331470726859499589063954019911217897024950439941077945673306953317785754612101649402189723296008821254929243770869528697652781657246215222609659488361956032257829197314127384865872209795497414022005272761854016328703897537419858443961818569633364828814130405463408790687558191538585463092815331071134312664499702240103001327848477880903166764231465327690435102513790416451736232111219220590428874323470203695762109042102886080892720031244280332542365347776642776390963333325756851244055759049404870603141697898779663088739465404443153057601489073478098604783353229424359103190628983054171989660885481951962521400793148968824240699427467450739066085154872462389901482571814485222206362826785771768061988579435239429091421636786869868745672683261062278633695073138477643612328998718544760825138880839359365212412019157636127674868400083594631593211369412712651317604199820480352846584659874683727766218621300544752432390464428388369531218347741564485392255100769360255398423935329776755713295019853006223373955412996514210265159812246545030493120384050710421650001560444723859053723219093226861671439662185246080486748480510593664780324507547555447630905937502353559927996210758520506528564652446672542030650787289066643291802034226546789921877952691941403709162999357360828151935941729433360690771066814687428845044864307243977035607053839717235620729696312026780392803616926043055631920322023950417710212469580666415484561527616887420874124497716276401494653342375530107184476728697467225687923853022779229259848260223825045299739081845591589714936335190704259202060433801314881231776643762425338307926151565480986755719724529909236966948220927347907418463550528105112016699962354059792730085033186114348354617984874947919252665660211393428593339192512773030066779017588844583108429187642967621127495732695375207916220411424410257069144480315387920478680284001631989694422736627762719507409355608050533527098336635653734869074091343642018757291588686577421594119471029284060272949930706379178132768480911091807370657152353853059986962412106920133192040078185328674906174625173817529982770393650486448115418689413960251611901353747991487863621609190922442201411573045352923859683397348312016472601034752362079093978517810336620468420415407145199317556591745382996736991887523444555713287164348870108338440362334890868603699333399614553728376607567129315759820569590370078927555911976207480319759663970483769162010351003070593520979635564834133814556719159762089917481442108410681097069939631466293347414974109582809197629042512027273064770543880001500392972542027647613366737472780470224506470035419418964015119022808981227690361588448400302035699389865372917696864416029659520094443860021597755257318537215864786422738321069048731212489507002635576149594427800876427338431781636185207639229956996738637663570344952764755820251128994155007642476181605009439091007846509042836163392344549019544775514956561588368385241897079982527084551072074788084133082825202434981501217856902790457069889564505553420693416158874506430039793329017753788528744429423719183192215520201472989956116507237409888507218633084281833069651267124710803713515667068616572361825661030747789967838546425572692709581307329316356214058715981142872139524751532388595971404424177844989686126252203424376617436234178257570998455768974485064233790286239917155955750751428295896460200297569494557072502585193064811903869184484161374903245820240808786141177345821186410935303727538858974534960797481798955372496176598401295458900271426267544824256031541213157124099659855494598761793918395735259567557940390673482454585856819362320484506148053007686946093555468799454307424816141289962631410995803284012804017882291204931020275064379942118613040467836171524748660599093911802938289613917875245875619181235393519078569189360316588363880180838796324029501093504730435098534685812988016168336478094095218282665753864782435432908616283060768726238639077630870312584835084803069262685954946136728000382688127755757846158133320614128007390441964162867997243140292086888912930803893671463208322696938663343691745651825104624874730216773189590567714783290866820356645897268268135001202464036954816732675827634821084441034581997048241882481503247832035510859899210765738986155855010441159678836003295593072920225741890366799990558460444774437568040126254526529764802042964176499052859612809175699305753293930535881076590868732893637021560430642951585301180863273169808144982179820093200844243643517746029066372073413992739698545607846982827647786497372867971988994175915603024992168396343965627197582481177692661379435896705521807678950906304976987259266605311028292813023992032244684854570015637397459419879586932480105054266446465724957938611877246301293664752587222877360270085532372751770552547412351307848455122033918053075353576833591980093424180522953507927688423785490907448940169432236166313176855131011777126208533205193749204456082912957421198707781581389550632138748715763299221479067195945136861950131514904269285766043086339317894968853507881222318895745525938691224600144645869163372815465199434068303359560654147727034812769419419519586833557805466255479283053171634015064208961467722079345425299886964935940324996678805167116967608944194153129473744247798513054547812235416261914130209651355217337691913119034004073933562876028390692905314676054662403680632106528194972397820971183756173466756636173711541583259155027830742044919489064981021850826745882037316725289407732267362782376265315968045667450894285262339190393623035412353534608578085120770750373337035182509032761978707116900595518777393292005140345493796701910184860244541818044467895982816585584339230825947624093631488463191019206880854430984744278741390291089768122247685840494438462790719148981541065933706530223916527891970223001104090964993211898853574587001890590886589290875163283266109109466273348954785516304094940042703491053254434197029722322175581036049799402414738555540103330244091197647135645337455795923337436811692724924341796139500230243856480222827817997644755938836473177992596074528489516057212774415816113340905574848266745876619487323125171650482365127668054450439001113809536726158846080321920473359086194291439196471594947087623001568062047696906783042792541547352879300739284833755878783070382087854919503321885285636099363707513413275930150565044125158956586022400270244861204379507589230438657233783571754500935808940894828052166968505808879585252893778355703210858773964589622024714886681632478492566827621252636236034758553018096815300588616779513844952827473564043395117545565065598301606865208480023312387878371890386450002940045989937875937734945378625557521917605038467586600529606924001368687176845693714295675360391471433103772061482696216913710286256306204460286597165732486906564329794743935624894225802489414442900179625615776109771923239026910907053843590810554418262476382350387944438445353306222799802261789606318757700923625514744619506992397687191050898621458420947437205969689663177432785223112887341495160947143969114761060144552920398471596276536875737777269426486881508179021209868409818921905513691742557354000090793335473898153664999883619459872177652973323705704650276421898913031085283902854822293879266578237393446104650685577749414599391158129292644321085639570812958183214210746422741705943765397705240517674477107019560339541495639583191769464246500542158804218124364090037556432397374316053193093543583463780858358401159262895948036307293962611306462840022945865971561781955435240919938107805909513733821054775757424164095030036080664680772098485270510069204472589208110360811948433795306624450507388009541544832192745048889793111176870816377296096901591282460239909098609583771309492007298328723584408706086757548433677004974228856317480440202783411943501468915125593331120749208691279073643862862669885501022285492070430763322019990822260306233203706813237974262548806343919110887216739554408167982296917548357958920634031394343708151005699290685346291653740279171029733214280872032105707077246511115236586491758816557338534104502053352715723261071780407442522449795416445765701842544337472513613856805315862801821467587865010768837729814641723248306673246879387165253662425013144561753953611788075787829001285009925164526055585507575858665913453173993631042061381391056193367105139851664464689764867971380959794022248264155326596203210458090607032664706380051728788348356311793093278174142490740027162864634556550659485977547621767191219772759740419722785243853111325327280017131750131050743118392598134856486274722610526467375750575802418376651907218770016222864997081314971806476389178031545640322203952076801000761961114076381008799035562407016506060291489634289916292596608513057311677946598250035997022545133963483916253638560814390141217991972292627877736683042648772252564236640390623290044415841883124542618967693782313843048536778117739245448098580315753371574706273850267419066954833715294428598896465516183796180719895640092376641918172143453161538199266528743059514614244862093412849529675341339237198944934618737736597199918039407162463845837821132040382893884065938672404821689568247373607955178814637664028535023428384553800888108281569034973710614437609962518912046165484045889117166286504422772412137956770363244733484611972309100894666375021174195698572999315056392021543916287029286373143433747540166442914775841535656639932331010232188983856815124591455544939940853630425009575944903303542176421544700140438269068015489653676508891435397279365314466536038438013899972506615178085372498758143712066013522634740281989639032071065525274175447064128895054552363187259656680436452178569935574499713933002072223849803983497279239526755310102521588820617511528813547104376144870911074541183427080454356545364470177437694903193260217662851377877290722744030091916302248317466884171282952093128687756140828267416495851538394883571549206365063675642738575282398462205828554630808625636135106910095785482649463063978437920720353541527545118106428424259387761881123232889907511292732487448990465342581058340890865151823372078970848666139504279987971194853001139050418953658212798380114278796850327085022747664668433776864310008582173824834779227821308724979830698688025293630257643787512101699374183174072508707678512305784448040315470373005134029961263350143450692911957927869228654680879162519375807961966478823310319984163965128491216947165033664151323281668424755185685422143515544274725167967280357849929408241879965621642467546600450190363853004255915518997313717416657266752890608111767736542781703160039653526697586361108608402403918485507812542504921641268258693546952177034065463222758697145942637915771336566321885136604071550502606087653429181574358640508230858878408617897559017435755867320032167509599136438780451641229086974615752772800714299813545697550097399117866463772783880083711800320552656941542162361191597403673723239846341480307798998549376964161654683023158499413295425741568433243093665015882625247737517701117886309653690159819413887174133471940761384800305358755422076223737672527235496759478095672857911707815619063508892628522738793204766408659289496894764684379379492593587031496452173292684035121181350760062293863944563654004077155007283367447813523502698736196202934242313849227403104992246084011798296389567983199149471079484627186428456252072870747603700030013326485999910933837357493137581583091453167324332408383159720338439031540807947018314928070149807768588194929652459716255493495182756262837228265752952626462255683304341629853586646320133513546336823168090817413026125287274077796803943840235942730954833547323219581595211211394543032041813945598766580175601719799115307861646906876140603754818265046061466168239529045793274024132989251001042695273546160340556435128743374217002983804813123935794577149414284029028966421199353701445366315353640188199480008200233177625076019282918332161268777421843967141049921233741241176015713134474354255228266150286194086627399871804678868915785182010976181709296443632761297013980168506437111609793315807733134487674910012391483649834418139348252003992084165714954076918755956051276357451104277912264701523028362478845812397852130017994434567014407426417126624892523269923016476922391279151376762056172503982375016173748429440543403028152708205132425821039600702210817305312456910991697453352367626098425049183697259838510538989849030715622271926591215522166947781551361366024802408697084018539250491277420723547489376339744567919070371465829241292701907867965070451127261665768606523911735729355540038260514023730854869865358527028784067044498436417855459861845797075843029734921323152752123285569921407452936466758436174667242939761887852402546172038999197341652873222461752213184209770128453563858424431621983955924114405023631191222021373889242810777860817059774095084308653351201718592291275218591196852435797361316737552102466409832916351703573086140485897900155495181348334772528764468544168744827103182458699873325400777886522632067427928251253158599111316748560213067662028965607856787639735298461489316233598501580647919813980827965420984134237923474484411007143487483029296374851943670487273392146715502059411072122593220201102479208057611083317343970598136486414542706858159899473489331546405883999091946269989001938848971076725496641937645304743196039493619853356114564581363703589513762136466124882532520229780561719704151427272857875260294218090332465856482647391186867369960728343771044621177464376196040490217271463333039843793059118130869375449050528755132276156556794083725955722568257070171553870232030952169059273215732812314251149780222192412261832587502490737675701507545309598263982978030933106237256341837633914996760378531660138023251250299415554068624411208707494538959546638653677488336633282340688922871818129331319132914123822081275307987383618712368578001722861787673785354598632374754826884688521936814156754650724872940136791940158360577705496126370084328975788125862547202754436977674988199949255034014661732216861715669290207284206213722558302666138284590379711319063170161198462697444301746082024899306300058647198010746384210607597947459917468074247131337892131500400170908547058900182483854906156427630052535420104801623375105969729824073870236319919159096848233781692408410034975950334917541101770241824811394076390467527809180577277995330577574920985698277992235188450944636844917201397599117605153828242941410314232052625293815974941560339454181192526906317620037867538404233611970129808383173011558594385500517502118099408027645196911629539191912196173062775057500136675744513880853917952545167028158038799588873915450278359571582334900367700968298842151358420661630817028112935783155580829227086939661494003009492684001745083226448522898185582260428024414756472218987764914161675205992095287562185910857341490809061262092322711825123675640875356177837306886215274878293362906103953427701846728432310560575150525372614160364419615555713722737552641118623976012262423272852045430890014532256527070947506250840648853401977485144666420906109846085401240817493731153289365787266397881095913014388623447160765806023251390528058153317341019487355656016654752573190625713411194358742584482791423302446013028628658268775218723518957662129713859653957759925727733086167325161803144745885611383489754155126115179989456147846203370733529814952475303478445951962626922977674161781600220034972611959241553707307655927356636641605810571771966929792610272563996522172434613608183828469502832805527548297074433009041839466131341248850074724459393800635600167259450402904022623639003613955726149683315959891383844963554372787411611531215523800517320423198383056257422897847269640046751104300702385244878598037338169883450443312987354446645262338584118511979915625814472749728534603931311940411306559919004514139791904190543451043856412583568186316801241349695046782181780825609390394143370541263054587643504801469616895735788324756179523220471952826253511295344609653340936201335827749330641142761667599122070276896363851093391230107351598828669470422565561801769436782129530403477143684551011361305915666455334674747080491588479074123712680995688268391261296703715143392134627183275798589665116209065868946700776956199562787308515590213186819552276847271652488355392964867821171951806423290069573744611006080550279840165564359510135319041259651479228195026841436825723199029002869117612179500537400659099031852971556834901746866984332177742773285016983058082145158335515298561092044016015147005703782038870550763983854849619970728794250391652355234718757843495713568069430304194294885749719975485098672611154426378630321813690885363220870128575108493497868488881478886106624664768248455958464445682138417698842827597545912655524019984113118614703232648712747220649690317453180130122818778007367547938528530461418722358848061317202635467713236643163286829805740612985526346671248271989631203504016699449898086953631920652374027044223456499225569187740971599290569975725957468594787964671810867892524297011767289321193747020444930879061938885240891918444495338342383642693297027721233660438924004923873514985940487147812668492033565903081059359258312371708527886346503765075390703128919778857323518265147940997570948730110916763970261634152026974360443625025533051148059981855600753541084648661407273284347667650471092347264498434485199902602836906395845606251879973970307949689717959706245768339125987059565406646331010182250188597919333997401251318508182283314335657756994395741019125583993416407354745283162353236794805500012704393262939359011341399737404378043909711143732997423114828356118195398888853344168261405602342897235573769087109139240983478199814326012601796571474113957223676167983396791136882473599851830237672327665120917932331211691294699632322329610903928918798750462108010714626029350950126524847462240053460056095291285806680998390357250985679060549113411425326353691385765474156795110576537180933343573653132077676904621782401120160748050275764538904389129966483403768026086755477870502624460822895352445511797191019896851395696344469912769487250999583207785458084565214634480526345579404011490758565058650370122090528665854634395608213317128657959329917818663092270478116221286053849253313832978218969866705049105771016689080750236602421003728988399619178776796043645109077038354713349130056699630660079417813555475802425543014658672840034244939618726067032634449602538130657685168444396767401260173753188792404479590512469741867680529544384798716650025197582515185486058362609459467908796147700051151180135464890915208019838622856055690722695720994046321396785671634186898963667581354749224047020921012069724418681035014390191186846911845893374209100980820143148699570344936627143102484042946446256064340896422985956460207818527569518006075202662471259104170365352331627582238474707930357681718994617527667291048158570539670622101139655746614945397364175120154820864684498916636185836977912316282746733845171060330885025465737757793820393004344545539095596241476419659543589925154602668946855784430089851369320537696489843412504645350915057292056972123532994773077271483658248717488406584664715951532146553947725428830055092919945453404362955871537921057494908809779785068849436195873840478220324088273000447302220914900206467658812691880329553004293061076116528722677736175724716324765578871642276726876047333488392215559871234735473411067948913391804598300873362154261522449666272896293268917292102355005449059645966355934101986024990849641394174062651556405486394496130214621782015410168243969445112733305993230128802198010047543055505016343348205379919204485317269267668981230901534678277865503014840764479884461805079767032776910807321646318435661204186786265700655309911802923593103597739407072391360327822785411116253103567197834066695234599108982367130499314888354549457844739775423335433348283792771623710459094811910869185671469585604308549172483952291482851555464607389199923267596274366982325384057440148485466927021551956914709496634700091702724930128031193549840607683225588540905830539665096978120512835442902371066005675659440304051345323654670328767749652542527547854563397411731599584732202996154226296782609429582865079762723345089528360040707171668950190547788202908070012288788721477862088459806888347820335927158443688709147044102857478179637142056601598930476041128469046084364927325180556390913274424692454537080566135965511342878094726192123507837306453955310381183678447375740000834215710298643048029061486993390182653915522863130634210236218816017656109286263126501980749899527625682003182906916182088160836628470108299155674684621142552062214152050823489453276064788040813386184574313938076064852689410348870020945029290882387787931247124649082480420082594546662925796247572729195502228709145259420547133589279026413444327415318113793855855085938807176570276022775366757772584476511428756081949299899800262634039268716016483983887209598359175120651655295058474884541913473764330415548856444424822244219011201946632932496645171917548649312252896664250319803752987787520326064667582351067130518885139630963878570912772123101347193375847798336771746842240458452929045042359696726065838473293979786708287081547083278708783273300987397963885792896065920284834842159979850149979725703941768933051529591742607982354535180328105767139026213929433865128411625969271985914338498765650006313757846159795030806055756495802657527735171719551621329783890225266812925237530944313806837029880321079135946876696153467488061970737253099111461605166959836651888913391166451574140944214205802837094136745644853975041142127252747677581418985051993450913396776842904900350104110832974532074350481826906440770951353529851550610654987442649186517263452693955416851206704851463680001585495211720305314257853135604123790277836001625197353829841557569257589794334152741971116180091001450793951196058862743226460197505969145058433538152461193682478525413780850005839138427851239636524923210211375419698335028417673425052705856623188007600804501278411450176061041940262102179057467698172556554038679745502797200742956458522823674094290291718086530303207622119558548710464654141401575498494881052292481508582722340682279744312043284102850318245441835607641303909930997829815884211891430621637816468075018618783473102203574130873878554731275243863452643789580233366548249227564104839726790107154768022635978202063225158077078771289412969035444106896798661970548689586338707040249461765002349420277297689890202510282265512764658186811881563952514338973329176971375474278977227274139906833910923033512199787905033061756731313104876851322058669212256213465524738189526963631872712184326683928523520804715828978243811299961002374542295768440733434945072791490629899081554755344750475388586323656136209140492890187758004326081031537487640477349098414962128501701041927721849788669832972094453449506822127377038993663675572922649213959403353997438041324022110969123529602122874965078261841679335278302317894185256735302712207513871842068013915269737160345685253811480440242364081244109041368611356457705044100321889501773598375877676998210040556234396640731041116571292589256048014904155750232047027344316334135418520326647015643323702244678199211563648050783622084190234112476995276184094138390495886587022280437698117373739103076084868392947356153713885304094799176228486312013180606757494390708800440287723673566054886803386686051278576169698047512031582315770008691173819796182631225784840593810405070761938975495016435322835831842799411047965755133985843539531189065777895965508296626986270864240769518785460089467812861013979618199842841131806264330534830648065988861087002175388883793481673806482456089032821276456816404465476644185666501658872835839357540221053500110619919395860369628437792306843242729202835741632263174416572241184225060539709687820783144677297659364710141496537536950775639676929880973393622654472540790418774396292686966811251618465457698943626737071928420413252828463117127426935758370482874419800453750723937765672182781626863194576060045835528387989595312161095832884741072490961094287993517709626855933029433487305050867824943055240518643412943917490854151928992098683252731352986754193980264604151298926379299855011081299557303988611896326882515292914254462866032924138600078156713219044632350216400536301538539057676130687703504616158983546533564484931653625007285266065858936585482082815489997180811743305498376472443676623617030868258445880134889253038805108429918778242171900763907862226700464100961084308418422449432165137628738964329963608915524526775146015922004247681621258586399225616562279385386681269112207480884896064015210983515911818461524815641992421201716713420888645832643162482892671417160917466250313472347504009376732033538661278099758346227301684226084377768984294290476945147623942204328294581584247396502167948638027218550043178610866276010152307143890059913347672028928592518940062951380226354384431186244723695728092330613791323024958764607424694415929592761587084238773382878007869189451031032372503236555788516014493693495433669251995814649890454701698568296932184172221719314537438226340336524884756186920272388656798218553308536601535744063096434947515757285882780998660045620188869685351978866787671045912363744864661651250244763102847493051163995530054952652134892298009145275434027943470756435910127182579658641036458830498603866311429278584155263506866332087439620616997502897183567635556443559938614475818454198732118642162707169675140256001103118573278085836884205849163481010216560017381209018295218737853464674285438653762534794991912555472208839952560133967443705273054730489786609929947057955818911567523426004166834783704505524135477525107681082715317282065616489636933242723629836592214633324059894055386286922084653760376643408726949754464221406361474388663722217803606755702438692878772577927977324670909705639001726815792375385013862111925510762610638883132953748408102925432040996862264386758346635476114552529378597480204643090099391685004716783134681100621631875833566395899269598418704106354463168036861938209775176233115621751787662622919971474468015564458864245229694652597564827126376595708142621931063865224756715030977913653140474675227180123049319660500976619303587530849532969637983749727446140134242976444978649711365395619059140893971671076476440718851721513062359670047944542706648410295134567320112636470048825551327137329052375098447334411901515777038212358041135428744348833297557403392955565054481139938794231962492509771795375934240411277011771165415104658479356263030394867310572969640116688079820989350447241447910911203831722921413948393013654324075150326472834971685254290405860382632791155410752811461549753691725736860912931993797830409126010349992381799262888433744737598260709207957424428778766035434018934427731725241740057399254157774851293259764398225812631342701981611292195995852038077825749677722709377287959763505529149131904374561837140821333518493090102033665502598965873847125614800048646052028606476104537641083238478729919525420927358989640424370372329437445423764661993741810898398364859166126377665441705891217944908487773853691146497736751118395873699509773963469978377242102042565194351657350898888736183093792570282292802436479422329739093340222957652429364001712186274964585966346199335211871071291338308779377560516467451871752673804627251192258987420247035701456469488910193813151715059600308459787004793034244127917785010495059912054523038287571942813636777657115295363990884425053612570220599499752871729443922710531127010121739261459895517438357041098826635714403375851419941774045990804700217230940868808243394435408060674219540085405700772458154142307462767539991860058543451288079762441965625007980215359896521786529986222985208957324463137403785899801334097691522731267778641570755584808553519056933042514040153353326077879636181248547073392401978349245691301077098115925848409898590620572623018036083748204927845695198786005395808347192721022097468843754422040471621729354480079645237657508494825857988554866840411491863217732468154396807700193050818866037621335070658382141820020878162969361273743942451865763440029402869545623694495375849896872930820921129950217793372407282768586667308627302119752739220491857020115732545032817794414684287656340979916401205856675094899793452020940860890353916864289675213035855904925586479326089149672669513476419576920595999430783433190303367672414069049580650885014083220313345141973282884824955531380564969745207649939959550803674564971428093828826990742008539683251840166472301602520595360214845780614089819048877723933191027985347376209884677549488687520941775173625692119086013477568534524804684996533292900636617686475214850423983219525766712597417215751316338183046686970024752047685356258537606461751105102660753931542589466298048628048994912956525465651756556832301717057021455005538833130350104419883807136829002887093876902458563321716248792753703291918985376634891936277889322993543897927269010018282375871537359814700541045999905294379033930848844847154403755684453537728051594093779385130255226078802476931422682836752487714842622607562840042424123779012383549666058278500644760088945957027387167010572052988036195421457814681673971902436783073897646228941535445670306351725260013162932331994992141592452072811738948471566969342373486338970488038376847563459006034365994431698784305641399515429887613398619132146886513383332518460925078293025972462339149354857834700258072385361685639838132914062890970676233580047802331022682001196649924507082714477522784172568255646095546038669297423462096328883861721631303312825181547328881454388406625000426444531846878875069634502843724584682904527042246708781293848548720792559404934025789243906722141493442203037118373589863035025060643872507844640201591889123715478657915853974824883071055621775113705157039096372673662439458439803616032094787593187983680161673796713179374935937170666530340650655703190433046715979523573652148573289657470999619579164105695214532095326273745354089369938474362682031222003207678311191120923286879048187995587916617184461582344361951641275754186359820351616566229627003326336073066884453669995367523456812178723431375986920239535708969067073927733063646038499945669032696170741585766150860588698546975740390641874471497892438843112299743276676518023016810693291073322934269478219774479070092606528705713016354355755555931268020167503235912319441142500539110286227999608693853420936162436890753720247179944913860178989757524632545877132177148172685326575823300892344897210785519979064706112396565137695843768841640402524715807785917760037937028632617614761633111723449589026498434403144342320687076750705847058219022874804637043912436711996013600274173477081899970487104851273828754955150821427177396495813675604174427205547307544431769231575091922945441071474098205738019940867863919519453496880715586778737232389662329570479920220864583641472999634435394820512427434941702146046349505367026737211607863152028969196651215693045693046659338418601925988283458066748430641290059696366724867208093678836129352354274114389428054001528279942565886444427627463346753455913757976480234814512947009217863250254930077584586741287496088598145555625282822936902072829578907887902242554915132205184610302293553728268327340917301818542538449149607772426234620555582796087580821526840754653154257251392064412753581380629025467213230679672894131587595983736341804141990404971657526714076859119200827120059094977673971585021688836749385408150474965813231080248529553290610886711851045740250326149630580347192626580284581219721740512222405465851202692705254866242435891001712055759116187089355574960391454314100004715887664748703184181135542273537686165628323696641878721363936520892580193499518781638702794168134780279142405402509433436373103838789119201032869174428641417842707529069592849678737361896948816692020256428721076487192705093868989890892959845141120915438906033908028893627722389378981232611609696733950514737706361157528696578406738481508834768442753306953296443244685749819478989633785109456553144184844410611394309911883180567017098148089299044817311257326649774316554679798458306196571671207407207591043195003282041354454074712637016828539415987192996857836114181709773858054342597221168592815533332330842490271733070878339448667113934331707088117041451793124133998119206748001344469107129957794554430576969252226348456237352716053407365047394837392565226817325598603947872549121727606338208204515106880976818160983573997595912876907370045960514292311766467479268834181443199636217488375164419491407889861935659904846925749063313570500951826465108541384329869558938184370100625347070842969811753432030911513273332251588535260029240854711951902056132685102023701191438530319519461566671109358401307832418116484696156924210663876182215892231515286866325962825058621234197089088898934788464513059609699038946037388996994101862590317897396509646094907209952620847397516996399749155058198443318152497677132196443618610313509457377739411965741129209547327676952417651146024828912721176552559889831224359166420324349705000556500779160027838277800265566617385730827933163243004666297655405862259898544715102575914767972805082793677771978693418222172917890014019226086123457689152163581804127971437138916200020480600181852268235245987615136616418116520611454231277736088642675320279582328903672628469325929037350337975095106322148892934562076981181478440615841059837065947563437094665772649995494033001335622680108086784542780585423549329843613028562023282887391060138537125836425336332836278418044236716394362265066363186499671418063965344773017943125591496628935991675328642830836186249401518503093681326128490181367467887262166999186676309401880070223588019869578910750107773626839600418996048944048611861753543878789335262512755821474492518223885672663537366572765163233620848282976459141024840566175780170592090948168145183850108713698584782964193135129151380351164276254932884692878855879377917353621360600135180607353930306310426051473924456201882688313509190677980097228928319908597872736356620558602492379429757500927724046212753435152638173716013661079201396377849316668906435509307126713638657418794273351723119212103228763924371740654539078688469210548770736611250750750672628588173180440214059591935095603179147961219829114532249583323415423653095299531860035102307521915220625265625594141450862550429348212477702324870500446210716603322263695975339208762278045262093779140401449664522205117655179542075532244771401844533791923145611762774266679495034572888110999922700297922937378803848562232159622844450172510758741371210981909426497471388995141559180939345771240351007077911111918630006111111085241263440203768252192241148002915346184887635835543614662769321294170735230080429138488035973232522269880154504756535534362948722245919913906892577502951748242872974105432307848491685280846999132461232900608791777441942927561895875735838245570561525065995678011532438465542659655970534178527185925815306431711159777828842535694146664581233859061173325323959127227676232406306432859562050838394789681345733614980978702666631061460237000773531258913389887650909925764560058809027169499130505690934402049583795177362877291403781756240793591666159296635348627915948922471137436406186881942067356275997151422429934809993093290494143942184731072233032779766341118024219597563376028842182490970629278203494648947001055111214507273468332282112598230792615128818536108075017848640529230660744013282950355323976656676596594315350556290419245736715885965780333953546768667250947813113720007737455743644800199066391018324493752003919679408583518177599840169519823848120795497549443636871966916081504999694372139610183715493411230359877920646335565765998344013782131733879305293065307039666340243743818429890167113551227412870038923173628880303410312141300235894491695649440562055275525264917657766654557557546950186646592229687953599217522610416968314611934972093796937126385456545232710126737447306091348916513591825900574480920352584464175499451992201837883150584813930985775391134572037721868292185863842039733590679261368030072565940092048114192372229813513729983165247992835429498988559866659651360974698977004104212346792174873300335002053727006407562443170594514026845686770440607750358078801329670045435779799574280642339655592428530790018734839377333566555553361941387098648470036006976494624275667247116940991251000655124338111461144690916904933586253493627723110877470732557906944401134189516417317996905290243480452982255286617999881614449714801427203803775125773869746821076441617709487045955935376723051074105946977098238954850104744028480788043524058317182129106668487658590496340567772523715412963176275405919214958527093907181584922081293441990031428228416934363085486297398942136727148029297483175482101439544045817696289428873971930905005220235846525957421930668645180941537592701550522690811237575421814531049072231198157947038783521234390012427919689233530078018234718366124388048035408039485579031163068867040064330009444015127928880967426503951226533563865354049327060156049522393138875752542445697719548478587971959199088219622380536205750729652583117133993425437793180901156569029134879542735086730552710165643262224808471765524696267746540417796060395354054754630970586208184988909617588388649137017227829605597304873739350243397912188984496851062379161636807894112248843717108247356659312392471675039512572128492529692001699727431778012969747752190906998970597332774966958630953511086233895303260987449682539040667132911605510049904668020004307538761171675321578399241619665747628989974866836436968826800937642806116562894909230059933559653481092589376920061651319394670130275384506640002256278389706897003319755123538444212003942788089489804522754661577097414950418114891979328080349741993552352740393262147909014072100878745451837810666257187406783098288197531795390675466422706062354568411006131640651903019798010087261144444692343380319263133910421053719437062535219282510314913401726304865140182700373944437434194825719168175628900782805433366193901259291035450882280437298881207532791723095801250585736233907980104698192571342961885320614577017011266430908741117549865059907372139424722488992286986653960851902612351510411447686504926445591949713176511757250166154817162978586204275607480305301066688223358248171915462349414076109414867400312077207850179955909823015826300326648528434385890536842259881978110913162749469129987188502128731586346717632911718833069409750703852673082856483598915079052313231695449148957381534479550225228644847480903844737183962774464363817316148192477238821766077527417036477907832977524911393329795201569101985588605904374845630273651656944911183800227149317353941625355974530070138337565536354476857157592818901392812868242918238131017238016507293851037997249989763491176446337916481841130362273721460543874136669017440743302972514861584443110732668851851261891702713961020510019111297478531301062535096348530909972615890569162367361163825604384992393468537422133747574330745394055325161673074920388400778711648003436363506462458475542428451432075588032036963006034042398604011406184956981108623790404671308187406045382041029890464743479971388688064226142888454025866296684135590317794311966307723214947971365197440888876316108454107008386947119227447993599581464592982544454142704823387995428714595324011676330258035752396289224849291888681277095479417725321244064504060218549956007725578016078868188279925374249722367101581557708198753752594402726870526840898762700964015526698936556655120023538793527906684315669242274383964237559331596181780312497645812944626680389118296003461222817238104097512484475801327187628550506831728986514369323793255237256175139598744559468237782728779889658256231938913177168637601368296677304934076922115502164063819302831794203478408684247223843931685314348984154743073737697093554084913511428647745032228711252822705378925998182022802189971830982232359507544120794385102497175063502722615637095943999048278386137440098364186880401757901434646560969940234439758264064983134862140173011438600188714014721493614424633219486954387198722574268421795482516258872343291103042985087180566332772032836419660286673208932137773754406656260271656178869173297069480077139663225148891248462944844990477808250769615972149155968051688750001224509504918054542467536340168165337576185761491315595562292605203286163029589379526371328594185063290873223688958217360648665351710224995943679918661469080845968797998975175962452580618943611914189215892324743716383001215513862322045955801823496349205030271429647857368732773498822123056616771152275303789725919140745568140765441768254873396838922553056112264104226187621666671532394314714505251365487768144558673371307065202492883205933324492100174593837233373404593309117231865686050355136835312256040085710524278988931796482656960661278797038310808543903344435275503348344413566727909111851893897329170197424314627783700805549051604804535681965447482106861701846504622930289104739486087502730856826215558749847132739187238553935432980935073037362380254735856875141627921642490695076113850518713147698131690703587348577838490665121566034656317734443225416517401924684390246354324631795291249502969383236409380776361485792680049965931206570424240689510947584521352516524250482595124593094379310606135032963849188574323486483419626047114115357898010813752933754632541926046698953533358555219516300934909971077296741219412637753878598977527763276313536318972103238243463763862102184806259538086540666828050730571305145977714188232032483399188373774815011242516784732476954383490410041084045796537636237207356279142927769351899927544786771824776317446380054486690670106764205946031879001360282249026460017455816122273970239599034745306623659801902873275143279565208517697460128107032006775495287031055155914996104104407826820154417747195247002570257874336367684313061297998400298015475626403086188077764746165488632826270812362986582965818511181982812741914708126984850163512506118802506641614062593397591677632945024370343680925038838407999163885466069686667052957940615991032374426733939080184730638780488139844700137446984723323549188870914202790164339038144897270550267693682835226859826807487144547291407331965328025330594577201543599940384340042310171986565509888834561430780101597635070341236559775366375208862578096990684406629922179324910174205818529106864589391694300525112960732011729731298042392142427656524990033036730543425783747467060696327865542391460616767594975476632495114962349198712913157940204005726644368525924667588937688527535355760541386357478325000985192103313147069764082960806997140299888700248996257509625927152315906618340125234255859999755610107939891281117905423341127864836818931056583830755191985509527738432532148019424254231534373479960423687390056720201670901509943192087719542888372580147505782374886998125030782256013265995163817852091695025695669952330370932033472555816436829584714479064956815804303568888037168919465432197189713957551419852925347517893950863185665438666504327951615551525105968592919001816045482142716079518040568288498807763645782220616920373058939320239920249762838757525215655139367324030566284665165308542193426446163899630893764130253387133198399598771758466757305595280761721399716706899419877086633356006437938573742213841593558339579016399422522307390758402966718822761189334841042350732535673492582741522395187112438097845359907455659816348507957232843185297970051571295604759600278237452542884465924640202869616914853864409971430471782815794244581818183955164530081264134775785921408940965602275787632053026197542876740343470140737200380763280181643466639474303015411134259272987575842430474895243885583575995926547075089313625168533866901784303010409062117490053344304579866802707084952917440347619223603354560202351331610513042019458305886107781751925477868045300480595332456573894517040829980491521123439605879951427270809848505334639861872139921952535150459054632164885384852274491716433302356237315414293619545146152852229998060475297658765771235181491212587929382463656390945929864544915058833515406176519099596674442450194114965094856429886188444183645389064939119279550495998037599062822832261539726868911925868772229513029136080803184771477229352054070258977708639779998508806670184114259436152367904337879170718562232359916014497749444695286928647836538532687044336451050197739335232536269011726815125965000094543374177491058958779221810737450874257215098545690437191370812816287659283093816681144632730496468761946537661355288900782927298277984720657786859565463030065911818634132223066224562525019011159249036299911099095071330972170183697915744539923750070220605522079503990398600133500520267273147916971117706407934350446107826355081085160517945779304877747045393806879397986438366205006938207073284203707433757900804883145456366342498968760413721746460527181502759088294329368284508687999307499858633332045635862337353244222862391540556946353799369811859945952869164462492822623151234310625933190031877718122291119588127402750662333736921677829429952378838923313341378029782526471202599568700685195906286745839941750072874048214611381280748838058879241889442909516231580553976885361821302752458870746316920645075293421616968376328002054249034030290599012865529608690798002579517786988464238698290686445078945943296186879512263501964682223070468315116635291865777431637150811370344700668198320574271993053309157786645377338452056266907852988399689441551512149760724143462581375148914071507469768108635179363363657870363821318212516964622682033314761673419576708801349852852368288596419055713321559909317409507601204575188700156631169094954488682031204512536991814160543151997879536789838589011491692144593697263471140764423719506207694313492080757769145278967489306773468175232932754210716474348699459353839395012259427628582671207382648146152422185816302757176372584189720558197491786274644152777999998046867211481963131985971425155822868749146359792233577366476069466415624220761960624969134157232641421442827950915582348385463056940999692504791622346931576157198347101979847279831799217895943896366563665464051731807152985369980119584730087213688448896772161718520204860722545661352064382600744027308010877513322416452596860774496660640696381762194084061501499544417054546704313282432832233108850480913459695720027965692709318286900343202349934102507552389232058857655822262040743366413447751398655191401515693540062703557964285905931417883296393757503455458532663708983622962847413776792701494064697933955129265895472226384881966558461094301217481504991437794447462483747986759806597671650672670822535864302191778823019684189643092941370685737671423241281943765674853491182371557131467512843510100603946123194585196860654122701468556908082637690222858702327023439683521372170356794267475232786442360091462768154551050850462305522212342454571948111587465636125114548423814191367009763407304237360591642534118073736337339866875902740595276406622550450042687574836864651221025042023747347469039001221806788521108278479460391538245409503670912259504861281078775013846334427982141956240453122651382300170173531414018822333408512223580505972004397385736999489553472216883625554430408794913669727770476000229120367068607245180388556511447229610682015358204119622062565820526034937164861142670997917874332256150685827916384355676331282062255358954347732062939068630552248274341039537355596329446351912897374223154716862616486049334046820699335665305322123137877023385390264527347610474613412471283184616343569300230538686411557950496952960903687842872237605102999018578910712087661959190569610773993913359888959450212576812040607047061161917196690257124166944485955171028425649301539082691776946906395372287040782549397402123557164372309168006759825952863088396325058577567236787634243495883901217751766269095923196599848460491722765202690016492991025750968320299239040999057787429069505759430055586802176436175986532897756473603125615397366671130012318584440852959426043444906997009206892678234773146769784457058216477917296713812112047112529652305686646550806675590191823872987634424324162749714307663266004559453619182202711518827406491823808473847356941293032870169809682284588424348970673289319119690289920403703982726120663151385344183892224688844262328542147327969188355586715379239838481298808860598438564176183138283130355368063270302868178505814254404886424482095478604095505386061130478974131665903142192040486424309444390386311243066385824477286296371331319636584560258557676366969501978229502641617752528053841194605260615658928797836596163093220096378292204386253359406947199407827192519838040167920984473556621302695907325438440119658411732840773457463129319400480994287566216514958741641319061943550521224109297998143673256711033940425972340025807906954741692034588991420711972954402219506964539869261679836780518839739923884734366848679350397883787511715579484141540994878059916547334707466914921954940615928777550337861779732338486660470869131978911523250647507143846459740882393091345213504892492712106342433079466023828085761659170699381769763240036114141689755029444296078468693214939485613009048612389131582085850642150680946710106493740911350630464099026304604530528019266891633219033394600566022132182936937015180582485833187138250481954877360063478618389536632265841067464925440010396564513904501830260867108246911731958260819140059686828984451139219172703550329268913538243076253520162795581436888830907536079620136845063240923306179632347185357894339600515977934725408488184313989217803885566980906707849589781039237827536092798412293924381553877869064182730805727972095906018882745565606901665885608326653256578138227219920375262244041262834391010357134695871589608058131272696223194083307913040976375413719139689039100939212939209469553030694459363763683537986760500374075361436976928305579623312786075205357765026461573299448014305965843376070744824972359640793285580178569910488478644959675653486650002238665341702662156217849224867198883118640775976389595085356591665390916447659036773863426135561380242140866127248526853078688947873274096421977254942353629242890028025737772383825770624146339256833377408607450724675670383350770186511670434141019817752616368744751501269851566496410266100349864620762941422717658721794209417911235334111458198074689767898856135843965819932636096611492309238452806910999650936993202046654287894445161565601936057593176225340287616457686039392980802757921692652069475934884335433177939136074302140326160523835623968835019234347169754166347905543909004351796534918002999430352100399952630121099357643034387922212731713265038824545369940894005657198539286232287170370571219472263552050604541926653026376981143147919067625753405718883435128432917729520122616865056797632575180434443696170686451572602436371072098997984310905901825956090307796242837947144520883867302894106600751114759236124547981130927558011617312256769408068524013419748507297685672403107092780908702897177548236908383385792244824481924994227120579832339594913438144580211463535024112768656306184626619058888648536919478106757600975730657313260477585085911788366067177044896068432079878567041371588365031197420252401195307089244709001880902798396138974331318952091038103330132144806024706859889661937183557766300292560144366312452391855500446814145998999368056881563991086647811628505376734848790340122940668031267275311653768793963189590737695276238331495642974554132492484835518531534769479040053207359738937851406499710857435987910365148156650667293360747167659017384245954242284594252549014265216647064693366000848251739497639587475183356102863394609053645642158071288740024237763001824788511570821394611818983394763615363003325732200294916372894559097277168437296836289899926040623335019659571032575854786212071096620044341903229438028727144367937548579944903531206694155384520481984843752874928433817651982269249577506136347446687703240150774979281908173535808234120689151961235194871444382566333765351313370405933373565776049021860402892157297324717219424856085147526217348150195190853883302819038358134141597089847058195164125237426550273701465844342442099929026638720290714252511106075711417899730706874026106351446800964554585574489913806508594085386022924401781684546559063422651995958040188780606560835139048526172750823762322364879975757948819034053785075294246585130194185529058871024922836510356786484436785624935075575669244812715580595500057029336971446844678437082436327741051055004336820264843050199692486153992137395176266228220610241442492495011772343311111054940451273186010502586548352980693133706818179759145528055056781033445461299243462277445872977132114906856210430768770088592168097785250857423912111995684086978745114290775229716899488347328327733301988227229463861448152693642861348685170075269484219602697507536288242360164921621659143182807083548601511607754866062683242729070228677625304778464237561904163092668999615912091252325212829553935621257617160952544554409807511914112247831968618813931780590711072893782263676545170997543049044934710145055125374030026567218104171593412856240671560706761650432272163904367137537473259072624614609103197354033322696860450765939420353690906955014812272092499546590544582684273773521260740994715276248683948792649033070772124295164614156637078125892947238023970879208257306329836836203936239118278303607514932423782113696300569271455121951185515419638621977050474870112144990529249257737751811850335380700707366764015631632324791669745272680934075693590640525133912119702785603130668161254652897870986987480572353848593637020554891451478268249265325622713355117000493646609552805465089304103352770942224282108828050090963836921177320110110844481477471196430843153519440460010437927869166402624913824144953488130358615202196386289981311078935887020942154769493841487108384460405272193389621497246345927983028136582779930542968667654539758748497008640093209804399620425697679788507416874702905343870475454246726561300476783644640378667259610086017264112680166630313269345588231405492830392530595992182091386724282776859226406047023406653113510344840888280220880340739319806473591429050785884531065649147298864416612861485134387731039540464591200890437516214132783320562860711494967339134563404330141226066251149081431431651622517788588538353440564964909863046901219680704856296139099781007361571548422200626126214843342186231281862919411177274030119931627787233624168772831472243588367166180545539310460209307558742525942249114978719939069028115368115856349644500432447438282683132648533790853059062293989994990892504125485970777163457094173544612481647784072197674992503976610095756872285485935596111887479286110121376047299732101620565155393629528982892649162674402818935102107291363871947061171679008042516961070040317821897941547340085009052801980086739286306315629963430654886165355032228413599067744203737928721320767241658988833808155120461128895787231129550935998715760092694226073501701836843208378258533990764194756347330204373002036023852615890007294056560519999771670705261839713537938852564344637630217971388708612915996701695294262535872645076627182676861284227901184519642758971605917880855873301553561147394827813142910935214553377148414332176254385909357199544497966918455746544216738411829668476775916085728645676642988583476259135114748860664927667888221055253753111617198185318451315304506227347019032273409058672589556530809464087812878403769772583980790492689873212890111466267371488967942532103470673186607694287064193353841465094184785394765644520232120127804750610921468014896596535811362006645922415775993403112288601366148441962336953437409857463186235749093509259191908055014057886136144462037373000516996759866843339113780837374353104811108504299189126070617005711656716739322556553720962973209007668799216370014782881767703313368340944076822511698242121930279185182095874549277455734271819370708344879193805810999533172837303402218282810881903979735048565255522370790933820818599297466678753948083811039375725773862907892210929982191680274549052689415096036272953621227364842364737365348900006489468601448998057102862720509903174464190662750707518817006062400164480761887979538141231678452013847224036745292336225382673186528928004899854508756193448079805289813073247441748103405003687622738477035649482679527786345596715502803278376676739172397395710001909885476691648282796812798737301366744001217632490056267393177847031858344385687986367665906761012488868455789717143882761030245164317061120176216530570715253001250977008864867560622072762750738315251328293169489387273947932854919658484689230189020060942411784976428538164328090763552806316640749579849869865849702730788026665854484157031327795399284590288766815687667044442980309291582619796763454309671901136036009913222053885052873940691667662811627280835391376530251366659852894467750146071200379900472229659811512562632578129384809263196678544385630598026611732841874000818914895962575524595584749742295770004542853919667565686967810685564364103927503504696389048002274603169125289768244490174827986631826772069938272075055058947861068917740011704349358301599969845879611017228278528537949140399211665616635109435573435537307270413279777768622447340012391966785339769538548505081821058667856539948884069431131875578176471226379833006271125760876056853754407891837748216922768119929032940789436715338917266982351311523975805313323144384901026362700110137064593175561207304243518766270455807711938012147964786217441836325181058111367381487265204487329985780541034075551602775534668191849590381892825649256544308929882756477680739544815873164361364103129268532032081912652952383278041818005646811769241117733993001111472346292840827697408267738144285410719587317018180216210474685820210266042773057369128124794209210694754148568464332290309814790486615296478089709392615586533572299103098829701613316388516644813393062728920857746965804927056139821015211788275864763475746078841408698618622294561807746801196624805029741945325992277877586227446352176879083437145794779817727043016992307378648415706069199029519587912136374373325604531634319861283129168564332851808427144854822483880114459437305009275516937332821492842515731981748995737910407224688704392034811857494623619120503058097523275753531711899171273164311713755867869354779249393055436504753687377314048524142157258509374361989652565629153813384235419930256723166289308012466685131818419802665543705828317503570980506161197447019061712290119461721680871937144222924552436341698217893813948490907841896005362132354475125155455471368602780771047195911085286062962526864605467433225648673098888614740288222623385078343603214267550294276380710104335136355683116786905461408004309775143907693960630646914399517562962080955055111026848334393605943735065789649924890251080639504772271013319494144675234541921700183542513615496179680723834273647429299044715206653432008766282299365466335036525608393193294381479877990749924333863675140981393200143690725356873379792151899471523413967294241021091445879962145638321728836778263058406708789300730636703735840316189042483418594123061020897443123096193914473652781455554965795564193805000848000229063451499005560970662610289006324576348051294222199326678003373302555829487648479209142573969696909936992584016312720840596647381824877509525215869859800962168192877874984303024860313599799059278971259500393000270523479445952090283910306501381438293839333369092628612772945047549410075024144244800902931232474383967652968836458086462643562089808658453587800565984779961268089910774546432461286776775368585702367992894974155674328687724998429554465818305096935671407450506204987953363528589476151726906342608752344235612487729495883612609584505388846270360786721689182366161760668337973181829413366349556168873585747187310862327549881528552081945462216442706002525038745970173926819012856888316834612470176311148406946858214859470633290483997986713660344481751051835033821167477046880699846164782933314435877835273927793091757299837196442534441006242984913985227418240749688461839159689082426359924171342261631769072130365126453659106670526080988371472949629296402884160968485056088542228288534481328754348949220030667474612872213651861367830958096588176775721811318266422890887085791852899120485806909555073273797732138567241250797681477095018383724525572097558809559409132567229830126358075394220416995412029906786008611302890887063632083099071511315330102255658620165340560196443335266667815157922194613138042001763627899680009524262555559946422218855556588592786471961002325649429449278503717502156055870910313337738247225572135601246626758202315834796444546264774694113749305064886973801695857649969016759443556204081587743488246531348235620186758995992280250355621367975550139734100558255033643816693052645358727557137830611425996315144905358040748864189275012392398123377567294703687352990445402915850861616613324956399272669757654698800760416039532165016319106798977378915827351944741186285858321018490820365676502705919774397729729532248174857159693242260597594499418685579528114251350951167466836643626936060352249834615878960878391234855396373793654777396503934074243816203068301817533189688860707826555672299024651110811956037044094415663190529329034748013453546422773762109728091024089757576225480901114791641621014386852111902132847057586453629309896010457222507067579304195594639618176009834509158484814997367586347440304459627836384765050122702502783074574547960161235791334174969750248143782088787365783149059419094218158332572036211621264899115948451118496736800609540907703391481496416656339188856121858054546967128607809913002930808260295959157954588883348902018192708790397540023033567831357075369603195127769073918396680795339398290192024672721080526973184452494730594270295271588247120537674122679165300045048941943680991671328639182281748462473973390516517535906986199372198896790341766923430484182797669523653962009237602073588253398682932897761643147204450837712093868935921224864793510292903096788812097837071598902769865153280167219323769686399508605196922582641397525977382063194112739776926922177953718615640685827147258132168632632066596300177284001921732260436103835558470448536438888785336746085576189567227124843252495325662537409166221327878523993341845605991085812422652672595060644630187061564222367947356601552516518207580835870291343980851860623807393805540749898887007487528416445378326982867980545605183020029878461711604344999494764209714026070331665625436203376344329769272785232154550256111954911156710491423288146900224001845180991242330586277042785090866286497457314512673998379631163899948499040283353239864313767555756559723747553226146074173742233743127206647307020677666789505661036023488008250600015930861156004559014206833614483731844218815424671285243881462540968359416245568551328805757545267489997689418735097483553906894801746268789945960798211428419850795385630896714995109269039469267557166318210650412578433471578938227151179506293325080928639431921804676559953420544919491520424560578170808231022325847182742892358747509977051077430539835248624697862445284549551454117756813094581153217157345792831455581044793806341182124748258907414886840967242629121856629867254578879260496715825683376930976687301209148288539944139113964635939052583875805440251549173705845715842566340673964676199356539290132386225351668704088581993343353266755575321121770117897494200475449625828179021918432057759751062965529829006904075545791674785510608828155039448579239754030522505713850889046021728478168300930898156155656778376131550457820451679287143629445860566999793784386499956262138377107115924924492752456113763763017281586012611360052526326532769671400052796013254189377920108790578799304886332735255117623953363378035593717010312945399737740534621515956299481718998599795200175357294998938263810198495220309900511880789964318129697897669218930226979233349793678509048394047853392797607894913039180126121631206759161559576784142827297354543824515098079427360215329292616268899749980887861331090711467078670075391643139106669694629799420846627790492479904357159743299012540645242155115508365057027669466399840279042167933880616157427234040836118996747384794194948518354619247992134063801331129392111559673552746929806071234966759724143586734793134003101097195011211379366055199780102691930633216112666195123179140137465478061443986810214708754453349273763992820131028932235965261322346722486346817605337390902125599325981926634792093671545848646271235432385939647092624278671980527832802891838868342289358531276206982570247415732641763090371398023655410397374722464294151197679509056859560240787131968289619761735160673127769914589376656105351294125438086553730274073548442711115225947291369893730200197664145408488769737353744864268821260890111879106203868768602441254803961271566988312663472083891586212652486739155892582082634422167464823575577901094171976466658694073365529578229281846128117585992130183636402599657651259704888622209698998888153713469373508154765087708588209299834407070808287552710770405943704075241670357846346489751797175353890448354287533743179187073271548600539243565694953821829159599144154072695667339682194556251752881965978040470028482743439871743066127355882496400485749545454023714499132217213455035946553274818289903245443543227988162012977472988665056067931735812638722756785235699603204006709337268679063332567773179282178991394877416180339939923460818117718020572292098397207845517982600427447233332554210938692107119454465444022112407024322923790442628939118643468519619814906060594676103270470660780866868190542330685012203690373797330047311858444809882303565889606422662159470822873280798400172963752715306844341838586600936159858705488273336190443465867364673351170890175831884317460672464583292164931015954510773020318624906457321177427647754133415606700725597635871473676907063164055134424222034021922312288093674871005034390043409189465350883308613650870946892997829220591030973736624076430126145905712175860684192926187986226717171912950193678153575922912755600918682714686847772927819478618978879941649435545719329457932854595001049491515237740536454566376586752958969618426195687845978132399019534341332553936862669819596548425012399640787007538671497823066499714772704914057401337274031424825544381078608320070757956589195960149578524703705644532021098185116879539201164845591020864134810667545544325402112194676357935206983877511359121418137833085110356900551724860399642600467457746446810603596733295880867751440467306813747692015755386404328945208627069620422775051412893988700253821328869403082149931976166727113248881581186036973761155735629124798565099074898808265202034637590982043830735983937009604727657107422581615745124106127825606389143664957806493451234380824229907394910943899809914690033455277828479084115153892198334904440857462728522771112229974816406515511429960777371826566251231300914834244107177986976452401587597355244517128383411400977038337936713970066119986016583841071175643386975283587303759703535450709384336342903155684258454190096804573410887542855536810439184510467891852643188139230337088155738428638451198352599969089239442586722315405381335555862950758436576499294808336469931864331223347891354551038723957314909164269203757329701341055193096623681387854440765169245966285971263699093626923178213897250313609786722259795215955046298216024359835416348935731920478280346416014788697256885111196554248804449488453943539496803791569524882530446931330073011480615772871166447376584708055568272839174673197318127993713376379720384106894964496991307892721609513172554459833892509416387204864208658472318466767435062745190159027281559597961998951215115594191552927126558481754429619227830055750117257015820187920932113150120664743023378840848607327975612903123937683644501986562753426610011575988659077421326867774049995204226455230894465828557470432546632854432194663935999970148961181294185999216012491727090549473875889131008232354878400714838000647139093176251597323894514650052027585081264043282536612249841637617683929593846053666060949362919161731201648937195500592559706900226628594071918062802392607557508607461895417641428311992584906279644793677931375813885782053971467093022661406910847970361948459035686552585307825679268982992647390736426686098802984341466829505483818544381383010370338911618323165584823730086854964553015134332008941442077042492733858626197632418513211625487633099834618442591871951284991100496725986107324973585713854172677044991259199595825609584631989494963340266952715044842795259070489601033844320759214619253227552907133837640868769246938805420594441032846367338822753246070823766186610970222399772788430620698326260770739697835427671579863766839461448553261161166760742224308135878000173565322495655113131971386320753424150223619847640797975246170383576133057051823366975754464330001663958599965446939973601508420265141659608300863958681811440723424659254368909025607512466933051026688645644815639891429742483283307873243133538370221944174936926882712993398328976820272770852512627053475138564898089273748533157767726867922417533940858399851426061116142585629329618888123812650926476462901013489667309793480035682522097466748618998816943735673843201010564958720977877637261476573818801621525867553753051808355928478920378143226405769448247610732486618494463409076080475293729902596349094009643332066909397242055350524216577609045626402952145920149158068473855348867849821970086615585048288446140530675522381377685770795711428406944146129914448999592547186702190103646876358371023113356445820796151819550838031513503449262599066633309731458137003986317532559480206578487169841358950301548241148551693742375796087784257040641860780556662282049316790944468809226880327897333649848500675426986299523037929201196611442846995353517037512835318528403159341151749459863370082348004157656673992827986251912178666604525388303876886479693784960076166993172847549073286975797497593870971689714824376011471975546227724359604862743503672066634039132719184787468361911132836066577234249622387465704794552809874035093890615783621211284250254296940325082632806653699035501592758198987085461353552419084713074459970348949616685308344938959567045548430374500889286966681303057121909094029832180926349307024123410403599198455330312070771078086279272524892294713325669157704849800178424822919885346814264502496036232200842568354096455387197312712901824750598242898450463272237869269796398390060064674926771454935911081695002333989095120889658638138137253382697913744193642191529991372709017345617637610256121831045230370652112484728633572028695035651155181164706604602419121284529964724482308738993369215854965114216125734947090236921100502598335572760530181225209508872735638577580399985075052085130311462541332825777594404253421821531052943904409697164616023855696564317743529303884237909070829830230514217736893405180003398518392719030581943741057530499107696558063399298594750824608185510390146680015654209466370853025628180837250005319180704908740060211824032728988367368722573207318179519736007291447234843237146735520250857447701298033732299524596079976996136956178352161731997156581937308308322569502876457401289270908454205618885232113274676766591493306563297283423707506153304953031957281407247400483891871642839088442788406300659595126787014909675429909083645162364956318052395643938567757757255642123482325679914330316425802911686265024174251679203087996419565383030473483650889466038155481234979066813702908000166055338067094132207679681686570163238613135604742068767161665706227598261185976751406769786471415023563586106533021671789862642276191843191187901843711929132628364456674231598848739305287237431449734646629757300916704811612115070298958817325041828535089287178410138049983031665886663261238352887112875750639433253544356418812674231987127577995797636922565857083568660694007288004338980934554534663196397957752199303541353090760510605716511572725959162032112388616525407208993830480400824072077104534102813817619116610873767056209903389271289111552369135916571268476430522723399031031330073133115780746687251167829577151098396893920039957263376020448378723370666683679571075156755469959313633780586032626305827193834155366865170446952039492047646424785040043864435328691053742658483569827734970873934439659490029180196411456130722891952604503839212016381317225823898402863319581403401274675372797667224333976241750945309065533773900510436398384396283919765432807875141383087451419897278453278063498834712096154619812186350984417219689209009757708701145906922162659274020690138022791823664751693335923933721403836492911498733469273770172376563139038694264139253670255588913169601241536081486091821268551039927368817260353695322076683129656625393735678234217391603678493716809037409432717913673552034005540689866660946843556164789283463512282274172898869417978784293462866807727421170396009282366057300272533874993114262700293184152000213211070161170639524709521370415012446482762680017083133880721482698115222789276876745536357280844651824892270916014135974014464167832427177424179116899012028964939608435952802576791203677817064587175346659086977377831235371775827156704127396650783204319537938930349034663800755248051689791503588153462394981796506144762166348400472173199173654167261392053081268840279289651561921662934180884050925136677604824809334547373262386046532989852545840692150130821442969554666393693539110061648823196772442143323757263588428645010365950735570015945056650618708930508484685204828454669755885986097600453878598149880417359216936890773744762272804543543946664854761157643957169488546178347780183559761379005017435128022883763063336865963016243290489561344465297669314184136838744482551291662745654218288224018880555547942545189565614393571020326448719481282472158274967529829163151793207514551570455833908739713263066509713183571032229645968942525024251603456770259165764811554417503824859669548692280581967115209987714741843106819184741331005450709803031393260032281989091728457801275840459159965740612739941462180517074381494230461591383481093030847689192223917879562646499529440053851202477505261625091208515770820814187965932311701784487740130349932270358757913638848998440522791704864160573698226564488208654684536517065020852286316450317082246244026487941078349698986380489835646667713769606876682251227263015161536147518958919955749878109830831724282176447366143100316631957715530841498592130000230521477846787116494622192879538802067818237513764093400141025562300754858779298839443657153141280737982491101901608593354683991626276636596715120486398622703001396521857513369449373983670177868865773770020380283742420647416361158355707733294287133908728258513382123996515063611014604694219415767004751934774067005819699250757852409623021263115863325237751295023707223243236166499475560184975194501596270395791472583289906773810056153151444508022003117227819296873802807209545090362846998827628430155193248837252090566009134071268018967184688947693801799780695067710031620827741303069722995441146006388759196276369194332627552558234335821295946771675550737268826812942939428847053897594414673956825915131528146187692307069787468669260396672609966688526456608777146873903472839020530309844983113350819337282877058895913777287767655329937374775295597741511142573769990101364654444863760424552323347249530061461313613386690761027269292753434437916910592818485945075206409520973984704143181387563529362829483102841549820727794191075812359458344737164227333768191424593440556792078270163249907346672013066564616324813396265242858496492238250084556310381124601620667159600637711606112059717000033462504641283498369983122511314959506930459459831551063523420176622943477901232629415261357930678396532435089634036709739756015358672861132239556739254745572608100776091471958727139914456455209165709105161537746669420323359606468957480465879880721053423058335867317427948709834710288127073152680468876172270645819021124533509343760671280165413200802350653705913248547304985656697608771991407831053267288641892631039267660348241791308783054938005175142760302474565487975773915737983570002443277736213933901110586758817455072246700223511250274777917639454174968568420756901350437035754594550771271524324089217922677420714885430486467474263844677953516146990694406045272778370517830615156566034595132544700878058756197850101106911647664087473705568174151937156651696014844457956026919758167166665660053429551843101398689219434539555302757286653972982331372078869977771533986207233167943818634198767490901729170313068921137794021795688791052809301614509194237445002610148711020511669422152588012494035375744096271957638142763860377330259533480317550919101209386643152345730145212560470811541431500057383527191295263943131765495251059150385591306941734476796251320477953614105632336699539063038447998471796852158406429950812303668836118833438773800749227034614220694849602364511621062193255789035473292803651587112616921539024728242185756945764007396934603072120922332722441591526362507971909870658302488455168506377880505036190052550139216849408527568195483807427538975913393217151294384385145142448845749102440689499071124057671066517256850479050558719115387953645439667262116081281038550530045472880911389715231685788567479729004137818006003159085026285831428087909329712328277326915479035048577741466415652314399771473316854695008905500295535028223699195561643079787425421794536975200286618621571120679301011980318268213509243985052496962070001282975706880627070239727280702290177891381504526963378556147600823090492159113331019377096298406866517063980010215891840920422552262747150755465807791789818773265480985082125740289017098163298324707448278082102215398298698698529705879788103742813914641967337101414351874680686443421461572579961848685235698036201713124224679423501781780952423366557028413099886713581031826856963089317444561978002761395930779036800144077566319386966217684381642711047946091762985693450110534947948300375949599247085660676430639139744939841257738763819558050557907548417214391162415116836063553743322899559918750261832294930879568537175531013984646145505968009289054625072023278429563547346307985711239958028588630039649852726462937317838933418350426065092871549610498502666421586922662318086540043794396508715557730779434213302518665861208868607957105245578310763936282627516746777049933668237835238118257532528831233034506121219351074330156268652344820077810528942099037972707841876003990544955914065076887282550960061257887823691955195629725611333587034172807532836149244769879752957049119046143976127929372318728299492234207813087833043159850490029368336666748236727859148159097162363289867644667086591314879793561285876647306509013627320764599197434716261129156246395663901681208219030104290625627266078515043899212945770054523609967160228342734471681004750950289650099775676500085199569860921272170445480631069608740131888851317426331432454886475161882243894250334881759222691525024966544531728641372886540455798356524271770805612299311876881308361248514422903495754788572758936320996033467668429837014027521838346003819240206194837453666757054716721568062157659249676344671966514006220955139120603496634197976676370878433650601156271994588948324688181042079460236605531222590577788496466574675398848096219826078567348481804851525961847817790054228231553324698234966544576063889317115171007305518197091525325846370590322828241510541076727745573882324124612985714371881134429941660125829040433617185499702267543294323197199032557608259037918942168901491439248236802845243707756946513276192377008284905139767977496725983302714240728181321833652630715899389930492938076511696808306679782581697834870551477910509295305232226149111343869648488330855821823622329097283725870519519618989252072006978667969271925442432558351316468268413572148940978733109272124883574246867629069152835184224249759760074968146026692074003905870788074689671233863968817053198636834125711696156843196954143937196528631543407524542114736713171584651876305641857276386492331937451367784091881828798961638048931893055677372238434712886659992577265346187781856596640987849881608351503224464619079662063561880992092131420092563948980186147747450580263447025645078006345188781218424608725369461059776536677674048642932121746715067408937423523147985176167915475361849981431226104790035939370139474335906444476023142227281077370474873484075951358665233721986984377406361239012602338536110030151566191817032796234709194910463032872662576705780946213444397461807289122505797875197978451402038076757613624828132211022813107007786972333439412676801742138749407348487353247493117079879405508899575795465318850517487986951821003688137253971100694223342620291473053825047165851535683681826347760770163749930575593188316200245570473327713194592065103622496135804957843431203211863215792224081565607516034417714799954988761812323654110150330414085938000210734254047258297505749559377620302689495531746131725732123567588840201413310125150564321241033782909027701857877355158718643772369360243486614011742352623466024847880526442835863338894630287856927765524645917584423173265146833046956733377754701001356999808219013618497977854086013624568914251692048862114925887284009964885062840506529518675675894505775741405589932353098767206993424181214449723016407050963951034621782365291091466150018635522471681899635839017316581770556501142498296074446961320923029810334968740268849819485254569315644014367761816359536157676332832661575974149917736688785549452580862901870451730239780875390007027576271465598532589633730019203128890871587385106091743481818151124026241121351571655936807223905585561616153660905331592713259519806041437362932273587890450378399134142303528199647015930016540676740153572958950317222789980192010078234341283271938794532945471123681999780825122492962102893139023451821891519447106225598647637140653181325074065719155986997612413134287666801698751480171927215487007764598333406624277251745807516153241024937436399540995577213710748580837636462725245222307548814558873834586212895120464589999044533638687816135850323116204513930407107518335316845811357393690214694931214037226552330497829322545755825347261020099070516662256217491984253605977783359140294810469785432910762007051477999620521328414179870079390514120117952504299393071608753838459822038667587173642802930064544313037459282671315137192986832041312886475826158929531502725563356013276798506986401502409184386479140895142346808271951930835522158541193407664791484796870411356402609382299600724278831475531846673705323382103453219444242501594377567939085321468614977241618267605333539024886989525892764645386041614109364131845955159212673040032540130756291320426105371194220115791238993182662080193502296974427541587524859685835563433031106971023649169216388972934605712804387722873127304189856909597156354594913805519328936163804634900662385474067926297017617131149765795431588357031601922153595682459918447907157841372932763313294739018475465139964973880274753409766410746015728111244613756897485084040235360549486965662164238144238556422365898196010518088405017339203732126983068588284348725762566273466111641431881710691021750390931550994500583374112604456020989811960456049138794507849328451520424644551598561514712745476207550667865312395832726950180454977386250868043888814971362262619495278580371370546806317928867123331838209058835066010678614458749027032621306759262009706395320767170753077987317033308240804833009948409298317145454446763679014064202623116065495737768232271089250011564770359904393494735594452055935273713457344728781760531012025997671148259841636557811655924634542795592335694018121199057144859062903977844404957230052828659832182888126202279118739057685725584787760631976570096053519217988035081808239962628059004726911483976141276476792029644570977515739429769275782353403752212406912074205749632753206599883926511618074962310294846730266450886295783921463572016413423665194895646709805140676311962859759661228875157722336736057867697948448645240882045887939608002150274065330458745290314380945440628105896699522932753486254921431019609495212517450333326396653973288769523850995432870564461406467198311710703154969483598093093823615737310797785355731615296168429383930244068106422367088467814713109804732204575839064792981493878155276595896054390887591935345853710371008712510535551545004657405376842719926746696844260288472200270171718962188532219950596121488529377965511801790117355201380814285870754565548390333719686875341557942201466854225824377478384791039483904687185202649496053005925263314421267841995689125700416591161569088416403452144072058661782077826072301321936121313500987649972586817942411111897768175848130552377352906244327884896036990275440248521481400487820922650339547514191885966786551367500844788879243896660795726291774636948161060981013006351753373056360435618245405502424792534254586800052521615718335987569433837687182278953004524389326800811705006930111066425667795360088696222220001192698015244691962050771957879970153745287316094704422019465625750632546399962666562927717813479027245074830984950191708661190882782609087255544114807505223289029145079631021941376741340547378855379759121138545899869597289192835885506964266049677769222794072185205610842885678929046347948283362417689865075330736992119995638062789604915770613146802599621792826920589866814889977938632025680071677745840832746221156241505357846873860675017119328809136010992801877165073268082809032472673790841140673257235237303526039802300716712978085922451500649752466317079698897805722817885352036956336554575217163643973968025694152892073610999256730237775719304446885751325343418106868830072612625454851783256842214877645454860815398062553283361811243477849894650117964688459588204147944917477684906677032954963373759584183727309087866309969793605699936090918957884141152777252612406928972130178357982450223147893420560930319104410084709069007640932110462579750967952123506916776495720440420939777526803727224767786093465278817557586294855612879210620659375103106184251677105574970673041408687553514939771104543616253870381358165941021649652716404151500374086845936052070909635358099840450427594512336134948588406179230181494246507031258044120968137436256762627782770771745637363755445004640253685033682573915557580457260744948039446599548720474086131497231552831827816113191028201924741089078846859393943634879072560296185622934321382839382637738213628347994652234495788511309739254483262802333617415303860031480892102927711697661966067877343914036856257511075548305731256473025136119712466884609708829185609289876848644320529034297806623242121688027101600420195592984398532754168977211175628608935667280396508906027334132036031494066224510282083869194381586017412305677186244775734054741826101644915935081645483200494357070217847423107331092788413425145265049876700041780652440626740795096129980855913541203556047534550770600715600626710440554678250530662958726259364804362336071629120545947347586734362683402252125118430577678940460478621380462295405379572380841216848224863112424681694066544588852053329482539371635201777941019454772881401198443010377454237963471806432600202320324435719242652174333591251102409441056528158499073648766682107765923371918983418663986408922695791325532439025249151890823941873049649805299873869299131204956774739212808376370663665183214372840056313546789724686202792247557497249132175202934864446863692689795670778726887427676429869349285064926926100007516916411258742106957834727986587280829464325100019901886176027200082681242182963446391361554630367115632329551845721310804091016535204341108880651884603152827602893445384713441140377969270272785614439825700487140191601574458024425644285246059252288299845858873152461396185885852099823804244903957847402074718657071439329329075165294987087338683526962509487556276272376611317123844532986050968537641175508621068467283526896702305529263983137907917809003836306499788035954018496423108477637393446272830082100982365245534068162973545569065417155483416696543834434968814438460102340689464285579039641984285220530751612626565745873315596206840956480977094429787933549881557433413479380960808695509675345649296034676104778719539553266418081883357650660619546143658011781158347175663880984361036927998773762912977589554493558355135083281284963063606869989279247003663256296704313851321796967119743918029437422090623076083646838891422158381485359814133159681505672320003452731501763272589085206896394864962100431579109026558859409817074015602646534752807615992313343677135528565932666163574867944499597598888459642054087563504002476681328731790399689332029218015659059765175551335293398356152347051525253498190323480622160438179832553033977817369270469503553241393332109529679107569632968098176123756796744465440255223823093281679691289843374866224558001225038090317546527989916940194612771167914660820853465532803500875922158875877120144786694389388231980223835157819963516919998390875212278958088103225177489133165451236576299075463845127430610063509630999790860804491176525647009396553098749450504332375109490645187429934669458651321997160690371423392595066000358240684843496205925777104019999198654853902107618497173838428899892877222595906238121322035675062222692780259223841370006309197856028701422276429392942403845783360725735969097693423379176490777469608126778413524025438959574046652508345569493698666647905217231759502681840691924968939715875677713934265690218328427461816744597289171640279045042557195088979277858649729611359942465483165164716106428011143829522489086357235432654715248741207694848467121917805821877811937262177564919309193115837758713578204344013156404974255495227887548549566430274408281709981148317426862084779409202643342203792713176957432330335454144232687073278401192110389328394727337875468120146378532224472393336978596572711802812997915121174899180018851764767924928210508996595590407054687629058760373688766482009249570034828581879036752198676717735835734910042753066381970772648658816840123604718025600897204633802318170013487773854684187196832337881492936939299504530586825131219071242878192417297872856844919968059161764010621477586072178619369966076891628007523514800810865669421336891008898875866459757852683197819185631806789552127503023422673498979586204938821605039580852902750447485444678854402728998420783209637247443393052386920119390388506366619690928997204815616777551622691259095145822599697658137453578786254099869966998891468138043340236052063750948433013752185798374830914944459688288258116756239825666465904672796091325030453101976020723489094193540088685728865449155044089641031297525464610929902614070015280847623209539085156033501771696496781538870327931590342158956408819402334147345923951051941052834100615415273210882457536019081021468787406254582389868299787760108504109283860928121119405866301250693772759255580647733878873669035915864248824334212724581210722593553311242421839404716141057870411887809252936240653095185459688144215438016383303231529737661566039160278834327731059132418627752734986590090041793058817452521860363864984641929825501540261942891392538852454776312142712394308335903005641452862015866252492398491843054467461268571255999782907870940822593439687421364935677871371811294343585279746529737638025845887360190193695030707407934623440384633438309036000619501651798983365245323637188327047965716690877431447124814727474453176226875253079579615578621089750164635419413652170445461286318396371869553889713786290233614085110922713574194328789376274452852135546050928995472837077563990717104228752762817578313425245502830616918482724648841335217529970688116921547710076953961552457776000123268083818853356526704146060024997706029420423610923885621857576662230789771815937524056024148460662159333758933424828314003716161760818892792065271154489656666995957718174288904480551335564686996574329701214389312162269185375901849165089897476305969905578863296445371388003100124403582814864534875555907857968254265344039906399788424346950101114778600779680940639640645361691815725525466145164959692351410816931090802994433143059530586903211383143190385946248706785051802573697957587311339005498857474269935020567689614398050759369611359956683779073610010844193406938006421815485292812951519279085417117010301417443687808058816923695767667816571473446257337814912350926405443630030239828481967268106341998533894184874609413891686019018435267128052021813798213166503778422463999650752948648309582324668376367210363823137881019228374544232940107809260626333208103953107085968518611623383869633243182693269075691992387758081360305862405489420525216484098809658567171168174043627687057663111595924227939611665826091390352063368524555139576550788933772800301359037941015442503967835677922509153850161460938413516937041363117280167230460205996337120988894283760180648911005186501638282932767002280946575984446530969111183686489509125407162523241215122648076705994243758173330580288589440490290714626584676726045306809835091814557692864842913785859362080283952679287465871785845913336324678157196696384357285845158735186074009148620473915103602381085480065054688083862319134477116924753967568113608597166392513351978632312480957896578249881774366204555107103241594378623989504241168548600310973307900240388358594020549603839571721572339711939807120838777644553883760795649779291699827055015421621287950138231218613845967324807253593395330132762381901190666911370756747571439608821596506551367143595596112628640190574190384057097751452752933445380848763632778412221466225385763931019884658414474578200224213317595614640880500757738107336431594354848449954721672532117835704195396701159408556746284204314985696906130908387265312811997067202030495912442872542104256485256262710962867320394556648772410749181726682811220746278813351021263890043200808321588925326212063057364672127122631414264505807806347407944062135359291602385826115708143617912786468706366475956404193637339374368639168590821544077502399856765003935690660330980649618116543153597334381195110425912245856520287303871867801532647824804201995406395206274856323015166356968336842412520652895340047682708488201790412940891782529691085288170725086904873733363541190402322421305912487846394818093076456700426794580559473879153587388167805677827928781239532739063230792632282606515161959143753882142946754892726424145916759559418555675498412075569064821900629914807049101777275828309605107971854235181198077195986580000991565167680786377393656163333289778140108392321812041044363277364188115180341894639544901498206689256767974147485727884211676007678850663641120832538839249284924993037223304747506920258307264846245751234270338704197580009928792541078820443085525659980860161635117846825914673017938793606082475949462225249020458809873973902258661804551548580927536109077679975395111577107866672102496780404510669479165193260886772408499314525201110036020167219983682767287615344147429315845795158406579803404350900718541024476297572250216079214084520477188003567607179650866217859811758863466646671523461610302010721133090605319313046401696148579920183495543148040291399963576149385291845533239428751927423653903330209615634715582057491864337061680700738955459380826620411532134906416875723696797643602209006556423722589302101106041496953699572343551013413026094232487439829418114119967149724824753667677644613998275943316415293383493690961415992553796018003417938778640955319508315190300369982456928775635176713609498225466303807487111930704845707079247076782362829645043279446522568321942451181131661962305677212556543762993667601256412247065076333496593626069835963695229647079972380224790972646428495825951237789325851891657017302115286430161634169577488358192935695938571081580585392384744685106379751115015393400083825757686811112355873944869790800398489796392427348692309639609884817283704497954326988432901799065565026947022486628272801936718675981560835690034303608289033735506654970721827718537567014598218727413894682171072127678338209459941996540886544692473698083488989457718502374122252457207037477755152134150067795746753903687645634829486082470066307532067589774088663181913793196874226362785825213056577855931921671407586067764960659980665074905557056516379160979823137854497089818561862435708257575066623935760747756038557211135493080027678638419392274755783064444766154830687012764996930401264610174704468063792275895256786735226557736681897575601103168850101667956945092644746653312807406724899919940287476059788074494543443668013083777406757890374921648989160090826803868784909571404103655911334984220571333331114077250058886002764564947878021553183351744879004114584491096160837061570382954064823383553871918733581022115619336361580965657354989903304525503076227812949354047911790882049436504736373605227706127066883934751374494511135950742727831742314774036913326931503998582344493336204514821233153499757581969260981646799515301973931645264593499031488873873512512966767152291321467695614280841037870569207482062152782350751934475367825857878119465900320327261658002928537731015232908181198043106194368881917180556107762398076364214076911002104462608213151974564332185072498801573047761339674551818999960563327451969222029235769454206706685004997368177280509492810926880234849788154783066166613829432468103924996330912344115553221437466710956079934183271462063232911424226072422697459503119246704435851044392815552801132111286936262145800948449513746267351874680636390216334225837650597468326541474476283418515972878296802173445789310583308348973353051144164701557533806823597921229455027982631402746616711930846765235072035912885521297474038196157495407981851683913588351417760399671767379139564158294935745390646560368127013882618094460655597583881173690254529087758206187966932207027851419141535843417814899492359832306562895618468625681176539100640587056662644679604849749664291837160821917247094797958484572723587292410456344319475117543095032853907300679262922418631625347294507911779617458115422390554458295807010207782471336476747599282452156175207047936481008630732272716439558354435609852047326757924411179242375087368879416918540598022588451833187220930487320656716857821625976364073725217169477826316444879227944545340526819900881154572617486696076366714751523906501062391742380666229697007142337287746492585349433965123964576627708637190177509355062844643966705252944114409176632191019832946159298044855986733179787253467612683496613451445634555530187631504887497612136563224197748854258670632180063497878708351000685692727303855565497236747481728421796397367299962462407767289613411594971945180872876643795147428826870485460190263865087117289422563273208439901182506561763615897835416136114998971619621425044423388852168667566893886061022813389843080229797154686166095519873951535887119407723464982840122104097518801598117078745048183556428051914537220562860625824354638480008671588649347133781002061858709064192790716925617621877769500450679121506625507142830288668788354880354806044568817843071624501430890160955750997676062404871942355249764597369998755138987360769826481275380419985638276814421064343732640939431681863597401226336300826257162062347184345962243230870368331484976328663291113504215589211075611120595190156013244729731979552745162586574017575620353699352077477029162275953391740966570597171987555526027079371518777286199871863817771384287207505909554967751679824361274418565269992637519363830211033839594271936945451265900259319693568137865915686842361463464386381483158453978734630120779410281266406602178600383524995634814084835009579129893057809213280588278326607050746022571918990282086152110613926202305205005727734582477992874531965180580230480167924415502814395269736570636272649092129352388149729331260876861962613969241460903959541863960799957873177765495699913166501328358501390327191711755405368589843259972917681371927371120179652244795353362506062883673707854568048021732105610685218227777164724726616274888031887910949292829164554500312839133256663438513116910042888532737768415876080233383296732191128396270136020366767340641660929634478916778642316250160930598503133105319244619578400072058163829517291811233299349567461542008830523481397092098379226532076271389411087508153331124208599499955754829929938861747603870839562844452619985109281002042002249887746043308166439730762767166354990659160444613520927922502588624234793642367489199691486973905160968055229844928106293238474798468188828875170991760396471795568268764869508181973123813330225327644172208934706786009135098315544244327835698586112019032176993424645766749840335212574160779581566627128614763367965810080140441815333211548654850409072542599374050490566650872297349311747696717174244646509408428017371237267281518998880305149826819831412766165382904749655647478151173371942288754077967892339777660172763140938006374993918461756265617092282191861056127231769498251225144754222234973589448891318221093978284624173317407116732615776031303153200313483664502608167276460822705514012650751989891031541650958456999040122169705921050072998358408077214626913698492967646427798320251662320043842215668937030796941064005965407632045374852613647589141719872507744846912583040313704529525462297021345134372534684501772219963805003379897697056291595853357928429625648032430174347803425488787916612923132948611725188109296178296939482391981208466084419379449177497033169972022468694669553437616335102595487608983795969490488207322973273265337013500218027690449555823407104845766989420005482402294252378069753235965309000764358202065021779280016511723916989851899057077444017367765538883752615697804413341714281736897390104376949377012475319313498989551180402283898921950238785769519668975461528771506652394597417104582234655195446436112662760480775977092883071582061586000841198728623787604242418691715944607358229662470264798194897733120514602557313744527257466494221780185544827906900127812633483439869670368778004290157520487141785233378621510434472622211992382425268799965550560865313896906280063545925140820588014653470271132603637451142669950742365718452195373914566820273658752351388899021789423800612359901401076573264728637898808003556822272575032465905834996667674824207077196572206220535715606636757697162815247673735331128971645966358479405527599222680700189314349029195815317966932051407217723974740610190094848026862272757009009362677905249437360317505233894814150405928098240861084638294343443442223582006342244602228247950119990678823484317174051785592904333494853557556930327340459095795307508404362044694115245800911412600514111419884465476848124818396787401540959548965971526042157298434220158796444791378347432861510134954306556569739278618098441394345220245864089506616323718348428083415374052986086288448415182096871023252003436150356550593664208662704679115147691459204901833184813945125116323256232393155823685725000902857837038698169451895602527966197532386727825078894410416545474464548886591508584842259987816632450108092929169941942648938794789606358998275694721343857387026798804326039059645052337546647459123126423146064770476839549684114695253251404161039388265232014435636756430488743684568257037496987789181754973103345187976781725775687875522928456378640627521952586154382640133415078446669825932975305530471767407947402697417370254159779124279294808346928995019412390679264873626745854640412485833160909561294580035583466016397014572329106310986016172736803407632538326968575424658330260327882750299557507566864393802989020705767300181614234018241345426005819593384857491818170493238720602468066572599876651457657062617467288960914759394310086384143432380320917468781240396221563244573735147978993464995087862455167396977254632536327951498362615980801106808921334793791732204651767044931122466984512374280331358409611820487347578516679515449832823445625026001775460026822307532228929719888214942098505045508456347009651325148957065307110609578441841787475269700917572663195566911237977499757988554812515987840877921752993125494481696057262490830253699352197093078008201029012025125811265466442468558065716092418486787840968248941340470352648126684535744620030162837913225417215117670103984190454858848198352750948555514238238190637088511874049467283323095030070188764505961112201825247925396396724873033336073450791590952697714896755591578393462229031400516511327600960491377583699308297672137833301801581713783906856074428529536042429190362209534150651193912353614528344939606928307345346691731658977074241955041041690497465588872341886708772130342542218444294886222177808113190319734071099284796960587992423992434717413609146810369927295752970788797787113643594372054132014517366334355957170630237181402239876523123509219379439498122041652774274207913803829266030574564525521948139457795456162760490245715674103032841508462264832549390804354910866237111971607673038613396075578678303206980537988629565225686717744963229501150108958624576343846850078933351370308992480681646396548475764340789362268707740262131933875341552440433338975149397149062011934751735125768339520599012135086647787788913832398062042317798181212766631236779271519254797560380347449736817664948029745597317353036907213167319795357850903942307668375081627033410866022839170954902859007094350567981791277770245625742541236278272511616084219999214880671503026554164963137625418970471773634430386072719701583075701885971555773470698338065194484456478466700604947518355141093137691242265837267016961428946692423848101999292398948847698999824572193832297096211241938105791977420760140811034842526022643325894742142493020822386673403362240042664519942409456454837717933725207056414801712369753774027592021769939762649412977865782701030165419111658578018843171961625187316159396777320832000386987985622426970395404474125145034924832320453366683427801765984936651871101170267560795262620964868604731515368238892745537138249456939272421225921588557762723714597241438358946929041817985524155980659411702765480009879198824501790535807660544887611735884305066079772759302693637286555960418268737270403476881618640174467429417668523572744428252351020987924902035997006214830689261788181357823924136410984623252845384636705684684972580169325730373974237721550166351281618491242880705965101082430915280571900051240401858059072465851156265236688871223313429819502647789686752607465586125225560946190842017760348272802351069598868884668987938661720277948041463738108757618127426879819792317254365999002507142560702506973148794964029869660940618674627932136647834052481883464248137576349764614606949416865848512805224497963911835478983457066866651018662080392357183139622825363438557241192942287856105976889338180322855083446667430590992617417854751817278985343880553203064891179505278455097346815639778095371925800853163154329116194273060149397339238239824494756488639839816803540306240128252093281373674713900942601005423782757755059770131037862691360478039338738332271693203296135624027174004035493350641054632926946490470521120221598359050336527899076909252758078787564006255391622488037080084183832673853379961285487144973312738424001734610793141482166717583170244945036823159366358108045061031468726328247581625221776602083996748220287604859811883224265005526172452967026151355628295023348062214971046828025216830035473589042449481193399571949982008800033931678072303223371897875802590533677892687435604360012601365183739285999704557243837343514164331112233405604889213837858192942671615792962685183950261126562037639080020985170460205701507358969142088205064132961253478469245711297413906695031494136284495457135748646771204972367489935762543647925548746046538069442473912118788835786827419507988003957827285941922790711186547816814712175737353222355863433527002768763178346879049665796927387714947602150857653419715405605605579828009734073817794170797866488438706191918078739718047310431024309259128478424475229271265504993440477189470531087631087464952489940196195805391836601659854514928036717635686939330192030037104446689420514240808195136485576622035950853157510656007050322919355763232604725054500176029025750202536320153766335163026797940562686435088400911804470073011666905986660929631802260051690525349014682680495724275008744731828679117461413013929472756170776334880546437590651583282393335855709559341845872673117891061732824964052693230328724620283224864373691988164857072548093341152598684921608767797448816042556886931372547291465960403772084495477956672556643231188474800876416835106569374181873863327862842112417746651867906118431486800526952968952013725868387262201336018747081202974428366878100424142495848629281448565234695479269143063995179986275872576559722583763983293135159179330361754912657760787883050574833073997445366915186113786476294543121308854054564834500382278255930230461605303371562868805917798378915034480794227840292029811495277694037429125410460127642491613906209835496614254183831191173839141588098701485040390087825432760363623949685248915366500573758374451467504388188029428362876768337522743120982363124234332942433176205515024357248233060971827556246123141933268358050043081219205935412234445060923694385981645302248914068900079985243206054062786177585893589610719667430968278347494501142671506434627717120663670413282758787265625701473670735183491178941815529182415777882678172658826215929219304874140222837879338978223898109217812037421036851526548205829963177983434542771156790443093876715366970427477264714820184430235675407508321663714874277366867881459969991535723027384383806032810529826321822725047569117790861072824401170962899554973020142991409494338167804533030116501017314709865349018744926400709369063765253957117588800480254832066023991882255483557772733775028614947556878183825975368319731324168524634040006230984857325704855424934292103139005483723786348914202774476754007392346625228733894972506701765716001160051099803479769173740485592774879805346388338294496124377632614090980081662416797667597009370103837137829567606679093288966938399539624980489593813631638672929834246650703956156570639945182224618825601145521653669724451994010590003732807274569535446838687170534738276540001954865004263979296844227007232071055090690235953428102239233868838445379107230987126335736404750697670696312641522822549523191056723807734827396671787745132186919074745235106522506806417233631375472085443104299771502556517874938827103956730816005817298789796430495951151263113931543672711011344352950936229636723017467716682141334254772917556045219016817406512322665992489222870563353420457344206863069704868089433287387396510507452506418110552945081047492066255398501722090072325981407327762072477576702397464533677555260223704405846392876397804213079267990479268524013991060486780376460090217245408182679237195273083662767203879180731749271943267354013311838802806247395129829609910431326827030094249087412117873670498227171988384327522294249920672642143910557757752916291006867336342098560148208474000173830876500670341867831934797639995856535011942972266624130240923136761375719742829264277168401733563663308491455472629369338223599469568671423444625896174300373663849055911264380531721944112837634931360105878658771415872744956363456341065698715563183466385960702427168349006149205111669712424189982162867538242588288672786835272151860828914810577434944110585371682438804095037093086616705578728132384529063287276962445276754851488306945261196162191885738176926337205540972816984780083036411203075847817716023928454052102121810040721773975148676279946965052264559098285792753484409769678039131115468147456455164932940686687975449273225089193452201044539564968504945443123070618931897682306123265054267356409115798920252883003750578049585294688491606788689420080070645877378665472487123759353115712682027940874932315208355710422386375447310449656249800417683282887323006212724465725951975403376330864863058758943780009582215508222361591288311193950611208853047974460575290012908828274667485540795547306697646398853759408403930864597321152447557692953645355212841440324813708884722372436723659060697375179966103674155735616017155686382875969274346215655243715974391105014697886516685186453954509574639015882381219168604786641343946911953680489351592191115426970874205314344719904530553705427519926950045555909573662812134149527163399342859881786202142025749349462520608127313937587215153509991305881314774883397290422007365273567246199235889602658827240037159288245093194817853795138507010283052299007835316324160805927394941944779256470735594378244758510157525340875024380974668368957988892761711717796341616815399681753882486906062623563451202900586942473883254441809888200304781706343930552178777897399764982116157916129350683697313783266518445467936075563445276435356563655752304957672534512568643431464506076557802975151231205850350109079724401831190606277255484106050636106072393047108327782158115037575367964549107680855741153384532262098559592143694614440025745559576066263361664631029710744354258120236540476984213540483832376528879054050826218803164860959436634544006760401061700396791706828388608615124525442023654413087247767618509688447108713019568158095991486490405715094540483649887935579936548245470920289796866562845393306621820049824727533087610787637653780190423886861637827740551411559913439583574388951037102710506091845570896173220645786058869051896213587340857979151366256298245971560446082981277466567837761224035040829447808593812812494060387724431720993505742096806924169370471115859643506849997816081272359833115810072484772108789446155310306040369955757281195825322135722824198466181109296602831182457790348314651144834081450047426778316764765399239408121130146398680768807910957764828805533852087114198432595363099357632121378705990128048183406899791312351308722630435827636735263742603335696725973324632375094468409984050575530868431559735274397720746652172501910020719053771780426043079277253544255205768751406587360133183343515619706315357456246157214761856819897662456499345572579424708032140700102403471008283503971618266077494054871556903862569190519675457001923238529356333594661755352457478740105298803151856433754302970690977176316161160084261847965885129864204087420952146837396718629732593050836884363745220132606982834547710777245192265856812526313588191973995226562545608931980682339264724758668555095782391236589819376565396537009729716943184363873244535120269073141846461144537669145305085596978657113187744253008692907957072841440703900451578493576963490639531038926943273670733583527419231054891097524465318402925392348246864833702866161817865406816896536210898659433227041034588180801903968979085945499317085855487674161501611681279299284819848883231162649235867251585465215224104652387041009609158676295114685770665357460565191904832208569018250621204532937656468481709632543020089708994630651819034651961508660164059141678242785216516039798743754558776342821778742244975670213214418829542858813850078283772607922802907181040467061688677347661282375974619092791868664018718655493876389171122985147362029676951613563423440204627472791710334419580115650947927416211231198063679786124266481892793129115078532361778041017725961134811727500393588447579439812645484626990372979646344585007673363286610593675822763391418885348757932921766857061137627450762960290280928090617656311393544192360289414546693457480639278489412291153790409981852997369356088365495792615166913709848248682371510764993880858339536155690914385622338195637179906197093634230173530967149696270258659341004400598179242942305606297592935634223368169522825905465451191435975780893905498696444019597000279797022431625938753908928588264377107978558813086923068034015132273151550627135912872212610331604398309576852204155246565505865758783387857742823193847196804724522911923556890356306289614664077199171560428931513047687497353644068519812215661944817543064367360150467786691106092609478030073786976111468607725164701318250343401327798317199918406100426284619394594110444238745340535471902998229190152390778806326075411160531993967952987269832982596018998961727770863143798149739594116206292698603148554140340580844937930980350144603779242445308089700565763652007958115650340489200863518867533602226268305611411187558875718716667842334758278769558249003657663072484790658456451703034502807038753249910123888164764672759266829219567980769019501088649416449858226999518330728771970725933843410893450403420221633670911136486165195555089719231575620747524362781804147160089818760231456754355830200746815255071808641620526693069099474496645774335842228162690497168302144696247445776899550955071208481018324923477291859433665407767266322364511342827972989579382382693858493774858936653769226960421896647597202374744169619541011835753902155512183112587009984989916581954719428940505889142181127023725624914985384914882948549876086706313365111133630415923102219132894412315869567086293126703383870382375945350053688796813849067669675889482088232978343124668485116330016505152266580920587150051547304803726385021580164730191446749394168716354430673970683730611805535537798940568691368248674672788770863339960631958485255349109451793888916871609136858434912327338208093972021074268707588258183142911385647081399950328932927825027030803406643700102099913980857275620997723077097750134433276100745823490351458162763858412626458275548535254680812737562888517279413230929056601138370636467727608695661818868514391282386372497760343239651635739842774490422477565156010195961305623292322152111732615832365114833734792652326938677900538925513632886487042673272981035745780700460995849425062361152975821593378964703850284987360146838824988576826621419607914282890448875974847116483811912406854439415861518753968787932185998675941911246491275151289477325058536693457596350968975490501229439486653280579076781254866855364254042722828228190750421235669585041685446601925163021486118253860677609705133521558404988566459854509567507589498943874027019056298506400370316551746641525455768775540692544003854011705287857947744944306928046294250603574003433636435811310571248645547303426095641375776296360414908468307141594301721871722917069111658233112898925205749367100443507185046235949339312344309999813571985585468857173981172026389522216288275263810584347856068753116668849070390139946993400070077758106927926920043442196524637118143373174632330965824755903711783971816273686651409225054990036667348368467182595257524638486365809386449119964446327514965633332501947877340328550960571928615346658351305476409262006399931825927268003736977892592257194249808052991483931375158132143719667739834898221946575298656791578440173383919277012261160877273525894370340813663663771711030226904326833084515931263488030626385839024682669042602664507543947930255503281267576338848734690584728020435272429600365161723513253702367993550710468022490790612729706506332340488911832971707656848363784827942956910020313339055924412026440656305097959605115262132557109683267467604183848822878902150553579050596677553162447372167983922956468728741133642849175592198817832158959063788585102339140180926006152208752065525613574658693862325680488822869254266002463125615920771391795697681963444590226432603243331331843212536482245442420645610222261161818752940921217433316520476229161302704776481548948336656772760974966435451019702234634762157537911256768138935410774461667360999952981079973760154675765487227117105955157903915693170835411252216259783348376462523364884744076252571160240094559885632781850214841059662931972708148754447297764473677722731741354806034082291866882916190671203574188001421323842905770381020001864520439542774402564570272396881849563050116603488995260692760184198532679469375485158862466633949943984541602199268147497124978280125751092583437826250452418465420113045649780449244726329030770036523919459804856398442927352211321460776584618958638475802150983753960960184447719378806353733017771621320757479401299460503280679636890184717051361956732023961555927903565029524507344949560130876120735144379148861366049575830440619014522967703837118222551602237124788280962440359144416934750958914638997314737067138355986092234886865308373568121838863578117446008479031220595707312794866483415451076312988479295641374049836899080642691063315339559492964432066079241975899711886428685534683328038351953146382792420464308356486105343529122013162317810314747163609580586359893367687800882303820316711482790730952257725664649843785859144261517536157190055989910625722791430164754573377654679858404451474694331799524070193969067141503187211719108266949391056178290801854128476317670133574053818408121029273116451410087397006579560565074463680318490648384782467165069421029262066201764109324949136660025916522652358083377315358048466390680120102472693888042688621702216609355163316402167551207537169861523604359106491850606992184678634698208728372067658876866566475110318258305454817079370571809532216408246929966232483453695496753376617740552137974468124487747475333536724687790255676198892441893210823527614538554392636415973154449942919296381564975417098126259639694079257480408720223023261506151809191075348868872637491711122399812528598990450013958175571452558513491059242773141874258294755963499818472956799422413968817627565270580737681328076209981568291993691288427319029355382164552342966907387336557216589617779098039743142159025018108438189310139589600996150261982296969529801067071684287974336864387123776897886075585478193751666455995988353008340375621824071428606403942269706899878566188881629866036690599184954769650017010581647832454220631583835021528415001656309323905008080903617857422222845872656154633413028980685064918996249322216814067107934116799887162365355325718654242470718733145183032895018405075158255429366906844893964361176252300012508726077466059766358730784254603690674091622167031677722302128118725760220187300484067412216089361702185241253640082367511152571872597017130197630058878325132455115018083548505843467147808086615446308944747007353317876824075073090273457731511137194512381261510337832673512600684532630931599342400293510131007879730194152006946574998342444583170733189691448306658205698425799811110202123838884002886939617620479347535449444530923869368124229518837922756090196797159094880693742587068504878126107201435260106153425055200814859486124186274964104145358712102734606031131347880450236600141280656229725724962849876549322245785047000444061401509242837408393829707230808373587407338729180292994757806406409119277526467857657147732195935654944950236213769700999734544278028897163394652331352361612169650277492144335730545223430857779683968739385326214037347454706677625929527508939652000730771902234609056886704691702868979758750913566224727468364778293896052521207756899937018183256730105938350830400862819547335180581674063186809690701409022666543649680798165050449995983680042046856529614300919284615275880223308359044621287056879462406872658568281503201123877751871334916204434239496282441787335541144184919842042819770668415079347917785237187590054575381123037426004416427289865698989955465952052076945234713395727962107014887920354047320174612918560240772898886228512005573970560750928738974736322665682479519258810865605541066363507600633205367284589922292413540541310662131704225384230269302072374793708791240590692906640840694551533556327809309146383761539031705728945604847143023648862664907191781633738568447379509325935547222622154141151293663796039675076331952703486438658601656541276838756476726262238586834850708345354390748733704678426980598986827815066057265471724585350918971121411380995436667257803502489586123672757311646374184748989657520403786318576094687659895290958968426109526662306731995445748905079601676805055378802659344003006093309430579383512684788047245474850879871504138402593902213034650446580957237930073802267920212908356035093759582829180523725075665501960583829165810285370074595767865137539817941365835847878634789053236701334353160778813985377399038617630912494843087019918816650832226800162496908883800405263106659163858501313361028537641286121253924590024033519064329953169587395148490616857656667032785182415131812707452299982877204755787349192021018451930890007525097292073399904542437067029852871896419989638271239832376166282396540917272422378394275415334175996376354886976438237632472157360720179779682394508000018890642201591961164189374085212645516703484995071711290285641002398049668390395536128263100563569477082513132783875360549975963352822744539892603977472760500039886943120824894728184099863576133498005979910901084300644696315371707386223409087069338963328827340267507481123702755290799130202014841147763566368691461585848317771792160142662619120251622378494994160274083225365257845034724391508041853225154005388248711323487911021467223036359074648425182543972546291385762874141153887732887973905649196391424936401521216575821662998832335261224963006556132255701699241841261434892533824077149540069956068026283672046687223337955231575610574243066134484233350318075937822529923727463263151692868929155683268566081322239212294845778301324853408481565330417042397991142666253200514980289575330929666545966328915777704395497030278023762977116933994444476629562972650978636695166736266877521640400973626785717456466176679280487270410981640762929810388589971461201935307045021825823736694319824023571489716621207424462006398830534358742233436943513985243243355995825181450211691545332886877598145327681673492470270994762873465318088279569585185842962651403135101332560059551585362903388086642900347201513673669848968195742982512323508345719701866566704059432196293834026946497812508314196727182998129397994164257161321984256101526564641375138717517645555992457048957445712833481986675502446406657851270210805081271502419614619932223835583940813052527432942322615121033332641128348963802314222342822014948425621950229577486211380902915386633010264540752428362244472873568415622486365154661535788391095320075984663309816977225166376935349095582801340860666016433139590600391666023808860341721202551631388748943232005745840316621558154418595328145715661654123144333042475797322477767461370851336316826932124046391272458274738370351476479398662703344866159875932250118383499839377454441419682456077934842849287929022819332743757918821381974919100462009331675849346001918883615935796779940547822831027890628192926514216609078115968504558276756219795344186250026985260042921744342237277862517040202785753214601520723675853398709199206911634018181404627286532041400455443121436388687730306370446821449610894566906729614438893346170238221111989970738067784330849400897469131141475022954635018644648818590943318233109254222603329701690898599803019513789770293165712719746922230399779565831031246144259738405366226681796207532541889857677051365094748394529771923358634278746592603622215057219440496546739641510476848473994264000280241966509653539403263381038480141404658701980696832211316591268695123503906468913202490006397031934128938831341117917350453474780928119788470091237122321894083596946222291833342982700169443561660111825366389546027546202851780095547486183275607167778840395085862532887257049516941559769196007621596246084128065019078280562225558598398166468274526537271299176677308905562481287379540601185607005025182133823683185589062449452322344262637867148546376927713019775103964131136030271694407574313479947002058814454678453800495760200704525298673523002606456451532689428977129868169385331933861161608961511243441153800606867684238485659216363784034140718454932208493414443133998224661801323404343272012087826725174335422347602271472440753223874805544278092170599366974507673981968434640940645625107814996409421831465775205076743247096493532224760593203845516091493361782544104276046642097668126231139047842094676660215554828797007842191864672906168129816775937022072610068382516930264998660215201974150614745154141944699427209066679250354238812156239217351265167694008598457411458073763337462188288600403008233918398690167804248466547173030126444225736723697881430146507808715574099185598378560694858257877641539799411650336347438026665921463535851881264199781116681916191077554164333910041143121779221388892471995611662230362549976408795727482425555863669877142810428586738708982897193412816729629588533754030069534548623264247359178933052151454614673278346915522733903700050783050778127943568940569722207878554150011349498051862695050512927336046631498070310089432148845600519289416078437987066914227375748552726345348232170133792945836570557995380144417135462438314883640480358185973128541845488531970888909007154459019046005555606816368447897513071789082848975016130941411877588203768592336747822307116112359798052860829710988984703748782621831124022513149726845609574126518696636910071719118067742066318737429418005588186375473410489988606881866191812005111469782237622429579961085824072134104117420098851911534255973666295999497946806237747173904602622696913160162571439411528903685737580677008243657336196182009245848180385462134348729005807331866065502406208566249190731556351534883114057544416569739912152771639107315328504493520773475406154818503260359581989066211129286511392496749151344440353822807158164063382120102077345238686207428115185400965313464469193781360212495874496419321999498403030422303511106061097392803680657999299024510998525705268586424759657526184031492380941354420901688986955604704946471218670738487540851988902460204253351345644438322300254092254921984183788578777883219261926637604435568629109529880491624368519986678645614974985766025295009964377427691629045653495452837611699286889210555648421858415161886847780689402967164307040242164773733461875067102728045816758603186831414167356736331914189658367987640404903214359368409750674360242369313318925493188008558597177196586410613214319640850599924733020735068891914252657468996858425491561882916740092168623649050889498242850430100996014078683118292850097616592829182115195573316981825442441603195278030922050528094772718637597135295303237736760391045986648551022808397276905705765331264530802487975674011296790376983835169934373840401274647451366916617559126304743115199667878210583116391955929420176528503024301432375037591968648238743993654059153995405320619874150653161014964602799892950379632349027267132951601827228903491107819416555638329635386250762073922072561433122762378783558793979506779855687206083355449075165560783755467933153760329620310232986853251140665422986823697788895141146984577018981754546295796727445545089375163824542737496088405519366554762480978103689034364657773976286302574453645745978781753069982299640686949224611087796237092192714545554039596823976283932210770221407297366873201597647400095456009217553330835938652841799784240209575722431897567013036205230636004090366556869770435563177359835750034832676640052225447801280667350579517022140210109339866110037429414662418930508410510594543691411172735419547016021253020450123477609417706085512386889529151740896664073332946452145510331780335734783174344028470296838765489086027831849647782786378689256979975220753290516820145840980483524575986390114570100256872902418342329581163119745436370173135209624809853298262460995478275344816739763165575335281612182571940211586606338962972558088465859722948174620579305362877337997868851556313915685437528698775066512020555326585964735320307912231631064988633962623013330601168289340792300389959705937273275660652077277914813785127670488280985777272120733637667058921201839678149701503602012624789575541369969428781374499174831446867231362490904878831481177912396815070951194913912805131787870819966513804140302007487086444148495957019599087024392812452735943227187022633137113433675589467856803137331721313196257734738305372806177244211809955547224935410835238371855717426978296538969174141516370845505943868670363755957751623743214474383145084075990937821377003905037800570774381328136075369355927621587240651220947604870086945242855092839911143268900137706723287458157697195631625549934215323951543087511856273276882595821344728168993751166243139341550483856108717306373416768013418253825679878336928811686935182349945923955388698520876761569555213244749798642856081180014212962876348655437248180092235598040505151472701771185762602825107459467917810714029797906578397743232174112583517406710077048015038032647848328301084632897787628416614881901351988901133920845411302867939123475205308098175003048857130759655418363277622671605474231979341146554501549459030013833367910809817471489338928240563807914036553419574288072260768925503406770935841547547976769876763255883118128340735457757376065607862351303342348681415477960262987164196309229815490404649071759859885321440518723887313180991934969772523880479288517050688037393836460821581483732564879963813115894398109025733163679241264617863106204661896634852697620408876424326430206471735746733749661462789727672999382811748790794296946350920450258337407218692622155579293872623317594381053897711274637959893460937668564430939743758821049429867596829129604532087369392933307293097865260448393294139848110325531165422940392217990588758678887478728668066899689634662031871215323164437360398542981629389978791104223864240370902381922735576201869914460388878183311488674846709931867342801895573097621953044970481513887754036117370931453415228203408179592655614215161768355717926891322445262043066602908734930828492721650264752185186434106339242738637233564199672940472269856599735532726870140338009491024178833980381211385998405973606501221192255513673589788224124232346121238784321154645732918996803236954244048832882676585650349241936717243455911882991607751416907776270514356496361155141914850197545641361283433578496619432620493202637010197306610614547216884237411393269426962519798163553032167367446126642582879683876947806592889778913241141114488458332651022236246326194213888346718447964194700054415706085521213032268745855328847700119812130071109880891073741343320548694999992712793102708202321797825938171681552368103841747410622578860503830222321556111915049560256454723548863557585828998297932667921400142789460925812074063947921123182689870847394515916659802125394193265219301349125680679819338845796234106945027074978117333445956814821447905507960395560136499021742808062145967414181626835323717737984503113949939966904659243912919492931659480923008473560328261972264652536521515135309316432837619410358438814912906511488213684744393919587554763558546677718260720592269714931056446232477692839187946396271257395664963511288202941899877594313331850612358184388723289372273409709803423999370930327449176708622385446038433760249034453368591892988154486500859632918241845512872426002658252784513095283060663588433609634963303169284495744024134851684610028649030136559616880302976188423673672225555712962234754177655306563746878522777852118592154655885278413383233333768126059248966194346579089840526496938105442752757848837375248308374700552191312503083638417934344882395982583916846638555403446681034269411930252046892503322021240249336781566262642895855868369617741841845615835887764293082638929476085493766840646782072093509950916521781935578197934170866397222389978100563915838454525502736375915704808626270719434628816446168521626128841785243909353669282775602616944467059106026364005463225220808048046585717326382204791645352818072523998589857390897153838720505341966987859734420452715607580485211767349717484959459549872544008677032795134337392441745211218506257046452616883659755205123366812352005026705274648022334263457471054393992571467891100911994086405696835950266539966856604394156443412699216628678489104749607865927220551904270401714627067397547681182793691454971520051602282034640501691436226885214152232586370740371512542416016143615455033959337219042447794427630424889830021571095819658363528724816612400579156274898825868927832410268382163453932763597087033565164998471052070339781134297508315455232630562306540577379223814112729054850875431662115765306653437065547485232344879449048717498551258075705444623549042733038443442716975754463412485268591871537198215176657261834593838733597106242788323743041704928994681000197216297047042100162998649914944568392287014010005478805243455649831923329564116621045386442178586603219416372543308713930175477488539328133523997205757190987388266773349429017115405702987648729350251472883132193509255555242273018183250882240720672358938491839567454820486566240145764738439773809996687197606894611350133467207839723078184987792134825839140410659522601874542966222083805347617921479285229046068635621171526772472532040328794640065089178467362493530502501007246914967475162126006380957946311000539298562569513175479412915003556592477168141854466813334048284522585350049286271762069576314960640195161676562476241375406843779520864882098619533066748775206605908941483020432673189102364844911546320650833107826529670528808892349411380477247813168343583716519439655578187148992772930487828070583757030892880782627295359522440748177420581031725087697078338471418664436589346403732117323522178821088436776825873583480517843030985152897114981263430374775329936768115329858782907467129058193927988106409205810494390247437672884894872747330881080269218485082822379959280387208181067582772115270958722611727237481913599353885227163819939848596516929481417393097235794640962929731650678960755477433742237829594713434234839836307924149210837311624481385139046211957128506550670570756065598966369539476684880798147950631878431454627723185647934443718349540050900409938530722083735231173075509905701219532547540798817092942675472499344654629237869091453354316201859932373331421576726685915427407507062944435099310923951543705324104332641929306440337005237689676397804169388843898120228535655278841391198604335673770149308638879565434678010281601202210776786650074829002962074129028132565291493035368528095561926125708030235146461271593869969906693881469182345705651813577564001467249239737576210074439266723527123553071776023100979840739916570267223119592633462747738292312657894502054661807006387850620976155354789018999062129968507698494473416917565466392459395874724735053837546408393456946895456904861781982875196025527722626438865383691248916025557533519519058056324372873054934115188828573009916441195190596009857656035356479909323103385813360934114013037034948038773333351814910807318594675003852999621551613118994721568866842803927795238908753051171567103931654171594500001768291722396712433118559561319252868153473909064116998695658290939100346705752988484575521942023556473735250111894914528032886032064123496237552715928941276429237877426364751016444570151576549454816594252157850875973506253214691910147233036743526190639394593003589010944433215321337777900268498454274252644326561970414361633666205403535838328850960041864957071966382146122039641479370302623725878408887657959552858624590818726478479192737847042395227218807227192784593537749159423653440608415357216988827166115502791342713220967490629816523429424786267854817396672320763602994854776439629373939400828509252094346892632728496052838886885451540446942055717122902814327040567086826464817660454081384371073812123137594715975466417389773280883456139600266863067112840152052494681258045522868685529181552584183015438499693366037796007076379335536942997695376915616198163093809560693446656163868284883277996220045807307658641044764447620251364218023162495501390217645028691893828996359033334393378427860750081575671165680446590327839199110188000229525643960339041822278953503180891868237586953182371712747363400333444802942380633662234336431755451366339736980206906631419125550650665850662101113036400920403452585890704350078318798004594820072037391395458318957650379246534820074136374061777936301761539316913009029992349895057327987946297257203049391050028444323622596458662855794380588705157072451876434108842683956468860835964549412449233245542746599339673358774021426411077053894061251020153314706726202104239974674731152626141084487241839924708522901314529290086462363541480757217207166696669102586937701855762267766809011820160577295994800175071880139211772781046514672017984360716893219720959369327747591455652730689874846743505218241633808598981252439364272503436487714892161689034537335369731208096220596703165734485511565509965310732636083917082181187697611024324910048958831006558595611062780940757572476003899990255996363665165584578654900830948858081178233181069384263423188421745554266857176320826155465250868576124335836980551710239311400220151623845853597251858925908820381685796184388562110837071589554426715414874072673729330749264221804588586575034087077330011446364406146255594908245100848744281839427565283863811896607344405548879528981219167557733386271951807285577174073634982243349686991984887734390247112506455258732102498320597759935728470116068735767388494496068882159703175769719281523941932259765033072918979882164641285095340148666482775932898881922743371394206104082159038698538544868458028654181860958912928626764726109888919097702374769047229379492411710896028196897758238083586650035877646626171742901430750219659345671578902447968647584923647501914407296930225666504797684380681710510792859509556455134815076765934446006041954415073823087384291530463652066656961172945953613638918102380146052473452384868402809082733205632921554160113602707494185738046472268135650935701231993314396721417304420435176341198180689397443850101981192702158367184958476865022878514407326553937182127678875539816081365081998188703707643003493613156375034430544462321199514992448799357958246251977595274772391934851010371037924944050292247657446526737698923828630267392758657532925407959720098965594546163585593525796012229433264396167915842901574298043493364107367271015654499734176513673211991899447729965184725642119498294836708332013076325293927553111184436466843749563347420683811859695567702437650918222225035649275466286558828671955219233013405510165212894666452284652749480479599460592634818841561068996431579722048407264714667768793411988335103694843849170490665255717033808074060060335988117757745043085459916372730999016276924181402444150582507792057260811128224649590034802353476118911112107856563266219371952433120504608202330916433193503329787554401262422030286264540205872015294189737091465350217926179389931714163232516377395461351526744988070485776672244954409264259530661537836671769593932354602583355085241177470707902203119108244232717562160030541203035582042712397159094493457776064538649264197494607269434020200942287158581560172391539809144267832948365352514404294122863743864874218781415956729421664176653569730390793860646229570522532619679902241508022180972444113936072368428714700360862392357657232228855759425374029174208752979778622434805470964756800684826644445570603339222031360801879974848629297315221092210185901361139443044803373558450977353622475620317244447541417734877897723899946332028229865342447783771686670745190929157572746032733619606646457226227839725994589905552194979171540414047053815777750296641216715361041913650504684859777780606598836527191958873810693507873109042947554167781849462074667639195107300625779762981309915825838348156186631047675448944008845142889223355732872556130354520015366471562371509839392775320902260060173888918049537887099185171685241335578148951586452552144496143876702301477022690159394689050986848665569870623929841520035764877257136571301352484914651281268957635862121628381464219318374871582708918652831476965348327232402991166564594149764322349748593996867763525851202289776693464493265502123443317045788423131019657923427571321072867524739688801596493046262950595261937496944632431877998923336787091005879513297865050128984586932986590436247759063843580910220374634035460444608114655779447886903877079561990772867050262440668094052509626898291433197183566619421060364861525512354196519128340912965082317823564027593662561025825165822770347567018481347256510075393473128787682350063987044480978502075099173113518812528928904789411728712557106298449012944038976396690873544474598217568798841790501964731032260968251451406317140420534568546831536041896702847275311645447998917358026172750523556434868373307994553041759467145484218029782628637121945565592630309070325359341532286612204507046007172942980574560920200873958986898824775659737926795839152967316469588145451392364802296926869722936847073188796797418689554153745935420738381109799157510528686117918195354746794498178615497843119560742332092232370728288976271333567627111510026791642155889820247879008587131093370425331960737331089714633149294834744012922937450729741806774608601021515571238801374984798361976146489245930575342020907181718387256295728884172364991666039834695243878471394326206047757361807487141956695791328167572076191037377349511500171541582245717997740733372540814196431283366241683142504940880893686272635483413322909710867249717782404422101788930323070086977302139450463664729194595957070649822388014488232515559207251573633098946380830602591673851652799305533742765795654866040196330004545985288066662056072354547848218116531327238027765434330093539444702061120696824161665022778954245721317347678990452276787493219695680548701777328233292809641075223961149016414018533713320654405573711086959300152146588472764245435019441463464048670050249525318596486938019404843857414951818747997684158865814129471613504765682186285381566593671360988125029715414079638771812910140314230374366331893539801400542762456207411905568837803626858260307323938412305315665654370157238571535530310283797248450323942323585539836948600973686503842483770624132419389268925266847681912258594945809828686701543339140468180782511970648720449392482602711556731522382495908960187034166378815274050438719645826667912811801048561630145665454126984624019786661218629346296810385440966755463645320073102969327741434941239698438486322785860692235902592726337372142591442801070284948279672659460447747814083663564080907549832550035411247411235421115071042952847907257518912112372050338916116892842652107847439653772950144552320236838407256316600136641450790311124099342564247600075490114344092411732285901572226802382400125188486763310398362967061383449728713767711021418935913664640872052968812231940682900767593601433431132583882880286656559880626705725831617729003187709131815419780666972688397448205520803120467990440474698537307983871949126690644233341830665148189204922828604901769985809472109160285553264676134986250616971715265217399465499579024393800130250625464582570497394705664545408479399358769190277123715988019055891353658565014590134325073283541805253336053046662620718538714615729588245529876844858635666456611014571021699362258013578104945396204429259012266115361902303343922769446990269525638025672754419448073098255519666323797712605357846626276205647488055363179409598649593925121346293615755579901688513715240608533070604464945637638055371336417485882039855820765722189518870567689364632672440290393517310882939462945959814865039852186145803012569070273288658324820493502967534722766246553405503804131348690865304359813994036216120342975219246957049595596152447977123380047963411121242201605695861561458973235103620138866163034714785485678100600208629194946437903123218041220687930284293579897973021025632527297743812159630089019093697655064384026840817224456479724567531589438336865964944520778078170242392897569553395318028769015407903278033256771026883438170881221662812965982106020925603533997179380063190901968307255930425170621915938184514560220472703499916880698484031085304309757332065544168365612458042837670012208763035635505642022106987056828566452084808071758064126447151615001118463137022929408690835627500266947624243310177008487282342657681994555555834842840376822433697748021278703689736062487387664256979878799898114037802571897082577396298887028095786843859205910716287115792340963886846682423368743077965238583543387155933228812670084181705797541127998223716840083318738972272360762225537445283821270143336992610748377966490959179211340734365269016319994438054029622730202231197101478037849266906776332426439144025394322027962918618170822445840488030303477579515477889246291651513331344750787934110190774612934153528366297425572212797621873562240996158797898337337445734361965071310344826821952597418081188048867958916349188436674165932187263048729511807393772212605689638309315058859697810998832387347306700201709537706914901989793745131533360662890897674964174856904892716777805384392243424081017355811464206162691935102909657331971749758077567344573728071810388994561730550552943377904146378769752700901303465761677699818603421291591690674450023043127758055744349862212633657032685747224812895346189893825064625591378115717335318596351893892334983084289714664577638812193217415631911625383796263629889652728824901998533919565285963793756231059141971777275414619952622106687647385259891039493537505368518891949346370966113390918435386248872564439615222095899532639227138055878285266638946412264604797839988518341266683279836009337996159624890139977458044758894490675171072438078516764686957947854820738657537224746916095144535534980084104365766832978018826052804602133782166563600635510854811849082661308193280344202358244810025937784625222016973241194475331045149148241751087475466866380595427535772300272338912490766329855682806634523589373932806670755967165556210668062937579107496473980678131814629813497752367367371842405139484078220698021182013763608036419378266764026193319158933891862337440636862193226382806316660538099735868452228812434323557240786187518448478128938135213885613609651501350914854146606891375125794693965687167522209229662298330543110187240915436412905117861541027124717207980199026188092050633997434949829420269509561200534498918333584835103194029971024972892811640078216456558251743961102819180033174273715015193209857916188957518045244608476831124730075795548137588598613056787782352772489949333246721378615904561744259019149776342675413073515405962229167499898665154474653794966484575574742424043962109518750794313684894309049490198484459982615722438739029976481576226941451017298022605796449844472109564384228393205145904063909945499938916676603565071968889539872700689113336717238279635654453483561685046538296527665479866539853292435334184514213773669298490956867368357024047774472953910135894743471988457453903886710843233581201882992336942618817024369356477538254042502341063042857701413868915439570645986608108177607269609482124316011235011639362094326323702741810199015652394744250216259048743199015368457448163024665167250404098902548514443758840607841525373117238755339180331900493321519562914617014485663711298565310577094820029908296150660463320755055865092195987508644757800116893075989024197246265526268859234931895154843494983361692183151987036113966969518383110559209443916560261447607645960515662957628175958991700303560129467683151634321517128351971490468352496855166812551260498353045734643594223167018068215685962785555685660621076006734688310766888759641812531328616865640192316648134186023994072706444098170877618773269065237976814942085179453383637367682540641821791359193750253663255576968679912779217864994972581717314430913013871439867601078166553804121045118894086745312431666050463979011492220903229729614629800760435299713111295599864714485368862453370189541449065226914799743614028155575366592134984432236919266286376114521343558768504280457032917929679046974212743387948694423006139707155031610230323003888384986900632915438228408035139378318587184232692703631185629630959101924947539075258582611704467432240056131526824594150184680393027275225556439525356296662211703053070618297059795820573424381393758210750569210483468113194055591870167908452121868221577597167379777237308532566198422780522246472852548678981574229284097019029996504890879769934728564778484061773123969430803165045797588027088333833726221263528023354492616572133877740164235038939886804141344717372587299160793837847599845041674862506296554667787837772298535070422355332065653604878380394140069190265110265873833235669053662150525921948535699147925840054583305765224535849135068963595560245404418778702235429860137721560503323345210211480991577636936607100063339887487635774646124938096061689646753551851136640306877463730256334776970987546558270902103682201362984609935910848525822609870512224577793041638033061037950186317933306741951906117720501090481045004209605147518999812317518868916332402740433228287597734583236509425222899997213527936339699349574552837779411202095213836360463554193657051044866709395911965653521772418847353630069899664721767842553515571588262965632562285900964391441183771815749342797689758556686892008763694639057483527492736714009878444188120549052014048881947878399024078552137300689452225639989327407358896150371152451847904793850005142823581370934508667844834802012190430155888399872369306062427021209656865272610228818231096439250655183833269258083747202580524958610388477537235296878375895486085717512637126611561872122447786050372979171340252351426641395832392388914646647951225132376129829353866077983309574907904109971527550526759103814194342812848203903622204964061936895165770247749492959623547363035511123264474726280001373553306862332328614439250070774571040878760840504709980106462519489675379253961760744332178326047287947272224851265000690561253144808093193650897518107992085874316205106861205560183575807062346608433957619692371410170838335763931787349881837591732940721317282850508718858499051019917085462920176770132183604481327475627483527502606835757523337440333941528162671263285972302022257474082015669615882205519735904686728176353852515671414246498515678612807579600511210378114815886541634836336030163065312253660683575181703542835741394605971907787525233498300160564471437267076615493061274886311175788445241619010136416877768431337051923263983069696242705021086747449666549508437064003747256719568911553504273417611911496769184585198269561474992384090163503332949551518199694230344797156231812810025549946254068285694442306514182399094178514373765992297576700682145362415742022143695540758589593488086957090483042307672776761850989618693482683549301511061309501888929761410948021131401110058432078416329935775642757468009351028248731449057459053392675966134823167961650628883036197515572782356488272764361681300442175711092729274117609517095310897845698253504129605700501778803998228840982277019906788363247858468529734706262143622972914215056242447042414097225581697515434417861847726180209010317483102617694887320948085982897108352826104713867956748344315737704257957478956601583830010158437561098108601143411475143041115271003993947853417211798291081745218058191959711395592917491261699013432727072656493071115543841767818216462209743091747526697121496882663533802852891025401906813260543012786815176801213986945301727708792729027372956332865801689391303740860934170252360380552929034432727799515473783381186208605212598947457574316876467575545082925523984908126169528867059701088447851832843644478851899030416721850517300825212762947196189317640837724513978389070879957556808057268404067478911595672232290473133576428007324993569679890283214779596085460581570445994739463662844759262714756118776802595425055473929858401000109297920451166188955101375888931380106512964873079426631219497217147358380066782941766222693642121061277163361803696148308625845746459452724971842631074843268201935083915474739625229588848617623544625254967058271829813843021784179525597576804649641349228068439007436313116026289384969530166075281725213727354001116374959850764478238663513467767313411475520921266994764590058945080231003090168416364420862527144291965974204431256125996877572164405321950117979952142643739512416205302634899290093378493918381358346008628985995399261562816546207207510109590016950390244841057959889330110286449895496892410568891764041834013832984083900638076376537001156346011769504466414337596821898702073215126537079811534587151068610702089318204191280214525640306647147191112321327684781124857633396876737435166404879408363119017197302875069040536108370373476493383530502492885955952452571176053190433741531358632162821745760497982828824885557950127032175034138047069698312577797757131213681154055159588806076981783709396365858715857441522640177081215431168444626140325282076104564466763487812028749608030508790622182563100503603689198987393223236425708895167439687896508562193877199003875088588465293196931610577284179436579948603120525603343031242713987626099134684539190395323777706450807515661281203007908655876321247618255404712340814002179855106344775693425192838190053248893731987617561734668629666844912499224608747759178311921390272004505361822729435941445589211337356402187573547599457903905645175319031532771438728114089901551594843705228486196436636015730400748097207392518033995382918150147116406952803835423331117717313652140919759673066400325432837543178713641633626939980517904873743667410408287213575829103383576443932497646976086275470106289590200564852439940879247270028831068062339656159673034290507030280359530274390060012681447907859303867664961794329128787078232230298473990748296849891834470933852660759269321502132825607681891659399864812934775859836428942634700252116793575022685056645746198670859068759724032038501498768940839071536494806377463942169676874453445265092083047542454448860302539803462056345581101615090335536685524444288447135559515371221082391975478456216239756905010172798783162021074393883727000678799065850907806218014230103037931917494716573026995124716122315732418294975678839657241389719255113666739284686908380586969271260458450738312587101354067411267046823554428936331475991344065016949638776439251146831289847987521198271389955126666663627358941806565732735749291381678171793445939908016620451657279256010082850006148877099788110751735879785156705448509839025485897666157465460905434387187586718521509633534333825968988054385673187859129131191107685757303266500660039420825314383485953748561961545013335422911673790901503094626542333006990542897891443634490324130717389870517339972615986715112515027887362255863550418554320033797117252918192341087903222663622698460839782374265078353406141936535512991648344860596181881237279992200595383533676688078562350941278415753022248090758414717491704009474374218218230292116291971041087406231163867332822275065513908084755879596367497387270979285200403265022693296533975637387511845241077695325865876980306648102047270017012553888169573174286971957789534070913155397495653576530019031039062101453705716027878568201021616222076249981862374928382599516676736050768976922008636705989388957336177879944059637391317098316519138688734597125832932733622399845255711094098528876233546555802911458489517122742180293202310756705966548186026063795647355566156426566588519799991760757971323953599078654321955876995434164886153771150874199630056961360917652869086432307887170224882636891649013961970793146162741133527152916316446005115910203300887294971295484467365069796419337061198892805617726456780295973565601308291139339329257119341600847867088796272803870960282574238841852669321018169135964852806027204833990619953052834728387316609667608618535427432515358623514086935694881181480229987040997757947102062491363743840064103065694689240458723208220180773078887956900478317791207327828101859692284609266835966128010590889102550353905288234762766961158637822601081730480705912257853673333518826439008741641050502495330548034882178073751251625066109694412303949832380960793307829559161646822040451730128812980759871276149351951702861243623247499924072630141360461978274489576160047810181959807151424909457118170726601318757153341447144069987704556160637114987884128598539124132945253889330514805054362956689811970741633460762431597083022351050888169059353412757641213168626624928475293824941387771642849366830282463135705310358170128565880992313870312646984191178897765183391770371008807172114080438180680223936327399277752456808793502345581699114097868333547775265586831297627790395842782917274195794475006382503382452729353497513887087973862061425189718492706301075642899676672725971749394677086512365635325216198153872953008103512936749477989530529737406076514771432681261658010205890199471554119290191982449441024682864354051013495004608049025676281982144912859075454877161461344292136382526452413914495534855896306419739578017430507067800340675634919153938271273620025768142518950933464162758531620478033004823997716312263631182518121285450683900382687576213403311084428820173366065592700527032563778955555570642975884730333743223418091980455104432513861356745530251341473852695241197882015048915172657990423064545867970791321549100837098045558755874746592805184320147465957169870195525704511800290438813374739330677567357270360911677199881461566988334991712240420968182631136672326650668061551617751724152371170642628905886803812547760281333047622038920597558597993610632147823549554638112760314727261660651920468672825418113397601787910601910625430453324318651252197320291572177871233968724003680562302389500939333724631961236579542480299140858245010422323758495960087428845886034134731074958937931652466499504346001700644833837396779107461897277507586613904478682335844064045523545539504852597880906245754140781724784032759156177644813492225944259018325194328194474655070070679871212004203117002597329578770788216212436214774846996730788826684598292072365872194044499279596286272239150890353685499976246951281274192592455890215642708131587452120462822061637817584098260988553595530151492614383690546262526377336951711314890580210975509374340053186274833523792578745349967815850868294144313498814344269407503332655806333660730457770046403339052192935826597107841415945422688520531149088254630572271268313715750896847427763098530985897527884559768138755200819707941066982029372293275626142699666641172566980191466321827527273306306234394378377090721917268588719758150610178807254977546988478287613585726930136082534353695044077445805546976029901314211269149927132231158185377498325385758668423563484063777234253361163933320527973474282684745975571934728904278525049775912447477590133195766339747884122854457549968844879936298089541418606133861138006585514086101363020369249102613571759374550343141239082083221312888568541155433389630043313810390809150819172890248263458587750876846506396126105682873486575027597169523388528066368916199647637652746838957288553885650593886732751481191190326895636369377208261992608488919949037884724666349785483786173544915253180300718354362880654468972615763960097099531785011295061003788500262242428853833381161270439358313966796359280092676022529696974396517626333603844789122809005387782806400983827659616271795308564186166745073565999847594375298705207370778858643294123897004199881060246201694734050724437138556836663725071357435041026066222448621147446778345381635728050977941627411258345531225623390509802691311963090011122169506053310050722574901480635495051749812992009527254284404737538653934391943920261034333987709888140968812580837188479671854508405244361603070408070565841746563708804255285976553030978340864493748614137942680158707160967104163656450830190195469838038132639104153212552714842614597569004796219757176458082868026700944137555216964031789050990658634766064475188246668546787684050498637334929744090385533199514465971257507141144829615803635058514005975874920788529842035602220975536452916208004436332382038777492392863938680374106174812405962021687375544024433389664774485482867682299032022647496615996609824484531932553910135850269628907782214220911205649184923556568374391521362957563649269853867213842263047524432084440236745559157605898187919946082236906994251542579151315573757932162802896533513528653311242865752009478632544978525648818586802794760041544603585328943319051383717581373118778363023161723713845288579497111265100516070791978361910611062274949247768057802752739095983890071808694056953796521136063211228524717601119392792065003992873709080238589898373008021413288321717434719150360620505364550065536045811156408899570046765703436201682181322766487102892911527616673797568886359036127356466624860099825733182934227372367269575559655524891153054712211586704735805921414617247881832958202593693248919971704638588253532734009589593756964037695002125166589131576937193986701108826951405016032257863867199183956837973080938935940187093495349925126929955008364362033365025269297402530390276424737196285487319590973477802653653875662768746980282340230852799803809701975694134282127336111928857633057267927544690339315684231136320196655304027327466321460732642425854235959492986518932476163553084810865384649150421870626791138607233125350347605662032034439084606062255327987498207538472441087570413603166314698215280774847924407060592652990205468719936026323974959918266480770261157235708392685118424850293400513982776210230237474869910648808569773252003913493776117399172167342939727916651952630972790757317277613643924740640159288599981994765466630759346744273992500257845749882396961923288664895627720914143243846878981179163840163059005095525005088824763177107768411590735141682795877161753314127956704202899874313697845477567355483011570997417429379982357002439265632059537867555872228547026727821676839085895971596009419515316929217369636463241856183589607132155978287362536604563042517536814268577423463436725256634615967504412300677541215358993905981645125353225552580967604423224023913680057013035157482408016381182559833041895341448432647603092713560430205503208370057421977692941535804425071271301557889975796634067379896680349572411578047989672284483842714870654568489085987721080380257913182391099352034862842150665178062010535931406909008899943624523264558428037287055952564677827035623750350530070152649570949715831903959225485889126200236780438920223031644192199183782695274340654204790083386931202658335434583599046407969687278509818890203266780732086342665569597759541241812510831860508378386063636692634424648863147056490055718451357870589204753263325391461254333549450561242578636201893133138909513546533929502777478796152462739770898794672918786865164186579637516724507802993140559908777972540037413876001095621926971583321073608174203449110402548096515367445961399468197640921930345483831754637546255976761241872470066080729689835160868478895783719368352011954693296869068060621540579158176276737589884808104023334233227203321754371454371937839838883274056985806871811675503344693379520459309204467939930393624834523694088059911513450135734998562100208957902791858216646042522234444907450324895145415087448355291215479637728854296684249507403312657301186834349991316901693610005407917711513263333390695576782972744004856630238035904082631462565157123926796677265303685100401514080536079839223809710573570396269605330174292756163778873079494263420175942985747453334940903576886350205886304578138296416079278522207347980767254561499605079027599924659214801997713050268781178467512442759772553104615957971799104342147621975463562334732430931176951423979934285261045271320008732915634691327901643346681256385924481076348815703956950385375416881998145006109938405588780632069650985437654452394367167636995727851755408273667831445993183453396301824066515435489865649223616403363407287025243519760304399308996910280957631905491736654459869494956226096314541129554060032873433107915009545788897088754605311893894947208524404754876597360325700662378144375837104145958216606101474778667230288795306272097309189090519998475289589191264283581333299920284504725603225640653323298539786829918351771959426506922651332510071004494610624235100770663344743320704082754714954567022634862695892987567982265838470275508736611946771825903198022308419384548737460186417339054596733069486273335223355567507957581272365153087412439218950242861828842931115747447511821328063537329425695538935038357280275827589428547127021825733694176179612087948190928807097090607969191296519196552224039776880332632717439495188667376757661354034959235698192731876073860685544678340388198012942521990678830913205220076701522374842287543805903300671320602992062498894499349082153807643661645312075767001357495286760246502573960967782985773955954332824006606528101810808093711830047013738048800088337350797482192347152265549589673734391530995802660651220646605705733489672218165769490908206276099996549164005619725229855609304472039604300876635019725183020329849856671121561928058074651913861925690101955558062170526763474063511611322692043563841941851650660921642312862974919115361004350624892664026178777589011704398798778479515499026230823024519320171256685135835270554339551847964553794594990905405263230627995371532193461067960013628139944341773267263986362851401492160959194824909718431860089575614465717858830040378986560523495303601497004610832266079701399595160686761456397359580697186755503425357262611578132173407077134068701594045711660328075549708856910525273849871839196211730399568162441648645210872857964761511919972351090551243102508093036020924802742648576235028660684227505556528680026455653328315958070182763607576186429221699697805554752868538159361409845177011943933253197585372503633051168742437404768455087303161226546557648400248529119004503789299799340584137400417404276948814723991441254634688060260628883914505295340866164499157890267624480045789032825524525643623377584027205619541771234333214217225479842755070500590968217478979154692919300748815886108432827693679701119823302166967276377379789410054218530000131753048158115497655720547839782288796437753230663788295952627060920716096250642843902509893551372809048440028374816024495332054705768220752728912637470813466271763743106598384180140503000102172719318448244189184391762405313579922924530914511656108725075625264719927719197674832737115533706415458721417945732075835300318739432823402166997607827671093432115613094783749529900330608066560332477821479479063130274814187457760276268347405847848261313245567425503750733535853489395160156315128711292141347749057002156595018641411845824090042785406090982329582181514101587258648545392491921194628469764890643077576667430611115448571473008717417040103828191235027846870265333390788084128564762256969716431691581697480178627649606420727414475832538336629181874089106985276117712172802197869829578821529277672351656739394333722529010863569075484584562076673806290754345944170026463303580994866503480015001655807992439385956132254738845479964367659693778734103898959410033490777686453105964467457415343906738366482166611730150280137207732537484050731358039246629178655991276475779993061253605471907190402204928531846216341466148268470416805576609818965418444883274075736570266925353680011274417016641645950139506278738575997967160286952418978518572566393349304941443153036759055558001348654281285656205286002704042909780410586532721940487515017273274037230637677215202035175700919373856755456107143988094151242339690329702118347260660437166216174473481452745768511383334795319306917058696602732847435445223805960244994757476097622534239646553735223202854830995156081059577348469924710596660221351087984757385314564064427936170668621427353572455762704636367055844170804035964919165783937607170255399578829962562788953311682527121742092272584647743713612141860269583553440095846042723860578113352737238025608339359821592210219493428878359254143660406656954470812803373241385633714630748164898797567962691940120573336967671801917722407753773749529062006244189255524890578824636895929861129893491802701236848398973271581645066626392456426306579635680553575539346003093151009589121939640588512354058369332271662566973468659974907953723994815954170048087562598055363961583450994994617798053195640406928213903834113259397057078498651096120762489602589724962655253971325669458859924871152083672574221816689474297594185847408263945870905066411548365301363031657839233899871135519069476873671285092811894871016045409648837673325867464464576071201688619863635608748079718946872777699288395851658010400155037940273252823843972875044470897577821335748314503436967791711062201510635204928886014214055020511486455509204850091123789558024972433521748392219985490407763782496167918742325456097555934482847141098930898386255103164042551808309572131186880754036336040347212314336609248126910064728353515098153804769033131737856771492519575456934807425359532491501389220127949149166620965130963671330460706620230367140589724995973989026160150898331146395177214210755422656478519469774375824257754098254571579479621202804903458451372668459361739263397443878364723150389043665108604683910468736356986593164512400045429803486987930508348506947266117795246138782109812699282176676288528672742487999951935630611676845185459262149166807892843313755370358473621530963571489368685265169831716820400798707773365847269638832945179389527044632168333831713027852743796527796544584884792866199605728682863004454673447464364502157786546635720572445128585090497546837775418036388094936003758247977633459538161293041730074720054145286146229194818110499451942348818422595232613345138397299160988993910552115965485074497599116580465129908523286263241111832128045298201429960667329808039353869517460975837002881822090497373538970864907279555401671396293841902706668905220477799689803903528628494201830152039741313106627550506948794622348846227819339031597690791008376372913643766484993589312027620145421516111262672733898293127121197916072608741235601868068947577314571685495780032268222880887409245836187702157834398995984184610613258442596151229648485029503170245278336155964120979622050515837347019957542996334086492484325969722398407656416652681021200211118710121038584983716820565555503565618037856668227826230856750824024016010338512756033385314397381627679761795931063530796997132607599797166522089436309193388086789516684127188940925323788022097404229782666129518684070123819333698202451409350134008325191306152859317616066835923989818887086925924796245580430704732418595962311562159718533233770279251146555828547758114862836195676776664350147153084322604633521936280056896565145838120442412951641954944842456413628152467814181829324183189044643781025180734842884768236865632930015139723708836626763414461049586590340819615542657724871210317330858085282678690780616255616333286043314147288671815412863667070662368111510189888447071680003894458427300833790419940334355779857934081023380071879710239074473839985635021459842149648746231425737400407028801043085258147511098633390547461321655097635648182657780399294827662467067479257933983586703023760508764472079486692063397395222985554941987959800101715583101315080982575483296127820915717671789425409812777746907639171169449257583277071963206967057010242588477433235086741281105862502449072994938618784829623738454171425473641401535950926046356647212118503493264416770515203303786302655449806794806196641520125267630063772012692774898527308500854205520401399805413716207592780120315745020541488993881229282577462793837994413436818806466247742949217886304618574652707346193911843023267765941343483590129647977673722655139991402989741753537555313197755725528895765191655411222536608489173176450397290587658506559961420507142885766096340670821431195277089004202110333680033862970042947090478441434132086274642968153389283532383319832029362335813058518881540893055053506318497499851304501660169803930298771445817620683420086237108169725045909569125263179513070503088154429544669224782979764002326847210743629127574317043990399917799100923077336913423275604251920843655349597034626129804655767042723788103541848475105062820224515574739452194252526367783152096382462034138734866093195407353629354458145475452211329387279587135587916810663882909669298923377451769008431004977561508635256016537961656448143927867746199415927230486898313851735584025181030141116669921197062347145187492327190164111419994744562896329684248983881071067331610916215688538001186143580272048684185244857863516849930754845600982596606161142413291660432224044103564458086821012455468681765381518556314550815762408936283559710700720127650921344681366572892221298672219128480019505480201469433110128559227144473686112376791615484626990336826942032831172327260826485761772395663895094811484401591344350411072465122931467536120513488073970504930518290470950782967271182346768359244839038896653813209737203683490979349428212033887415413376637857579856722272269177136097044200489596657864489127676671317079742741289699777560124880546808071246591811521822162531015104088514268087235593596312323175600367842467749853518140229803183353013397928739654830627003436735718345896895531747343431108433590869180989397498907352326038024566990326920635670765429952353561035894183197273380244324416107914682655789091587494485853881065810372509511296347403438848591272629031735156050566863196980336806909553116517235297328882166770334232515505748126157616913144641686030509460450355750043234379623437747787968256744368890352363867287228271870005394402102860705039576062496400177994909719225710067936280899258339586490775367233952687605342047188683107757572229062269136125651209331130814466353749184609551944735932476199251253076382609751508965118098360802009082198824228685166601272715735563712664516004206121946502828983313052934997558373364526886502973729942289871694599546496567000599219352948225084868070994968484817294053510611755768596781447333587171996527754009176003672181574537150704577200456104615339495512405845267173583218491934722505532231291285085939773774006736544651318728212978051228321308099435425259298975873037572287314700647221210634298708112211485040108004996142857137829340828213804314660257389699777138900163095347069167895886227310189110382078832430730495616875998921864415700811279044413901327082728888439382105942731728134002009326803122334864606151520124546157080436950686813677862272672898289298368811686697730680085227417898943439551886696607735847466030927296606304356062315449395293960750550419527254813240613207478389604704337641746067882963071611261113150467535266103620247394977680499394332566892907555850346893890420544344573095115591001190617341932772588890246283055581852516371390044048634874567052512859825826442754372639518916817126381213196280289557025042253971411251535245573987764520193713521806480033134335543596402217368415862046889416054044951798207898719662844272762897581937768264922642402089695372972365875383847237870673695638524089754245897486205043858614751390073881191092273906856839891883176295027636009082010162821000676009857825900946651329466478400143149760095398343954429758148163078696881066172973945089860087162342746507832072172100637914821034539825450639340335383963734968971775904730645976572825420842220634431708441129760900616339839879018341868430441675774793023397464621481209674427052943878107510722363734012074182828087574746350353414364007997459879496595952617945843947707259945528102470962036523948067713413430195997611801880485680645915229509381139175545017208867364568140328402603512843131585198985671749395919901461161177003128715482496443514264894398846829709771355790904300597450284792571592680638434026828099980204303313804017334507816181284040478463978261548718905210608418355359219962312778389009317108301761215944965369397874970851380818591480628428568161940398480540543757837413611450764083891861081144537470522350479607804891433858277392532852910813701983689943805804807003878454349049949108943329049927362351481292619655017241196999816090784359046822865667674727523099484454518584834510857336782069583030975922916495467126694775970916452883050008524247500027596861059863876040838740104806626406677190375704557173621096397287617858651408442703125288195246579765935801872035189688989880485570959659809761648480311160931194143152045787490944504559827287059322443733824144069901794441154207769063204854293238413967044961360242651426414508944114015668720806644007559245039172242464624573787836197797298824275216932063024911664677909709476429429628092762265420622821811331683305508094451986605006277607415708355424138887096097223575411007467317693812224941437318808273018918347488074330855954187183298089216282594872198401377102824631771439975956557072309049073077958722557394410948636664207016279567779547318274660485294637362909118002243948731612903954499518764671449183105163573477152597164736490034243161329645568998304643894985428166653353375194330559413972074351327760031161346899417497321890845799573573980964743541291985917083516687095586013979226780041240413238372100575033319753902176963656862426613497911045436513163788094209609703300806302359202308387056542877581278175202151075910517957418439966498988746140956583528092030700666471716965674626983839419378489198739275395140056523043644561387572423481114193963095409201697793954978837777980238520650594908231316399647005539097612585695320495323319366017955553758833522514379214256067390610377813088895469649865100099983314660772463188273609696117100022691524260115302384214473667912633441244475731029022076252715015471955611681554909817792041152874630456421736525528126557726229226681683288608941475819242724407965835930869996426988995180014408063364372773757457752170834224792674136772234258989607381522161611859673325868179743602589428611507787671670077480059141523102110580423598113349369784091031733726396205689543790705453572721054396309147765138296210020216258177003719112470660755154450088567718506958277929108400203305681576660904139357093828849262053994295532278393963247789838457144794198257729404758750113255878157795176377765423237335386397393671237555351225830015272312687460316643550153372879507611292812233765704266439647516821447933581624158800764525525208633858483799098208963729524648455542299858448088743978478282426473960703578477064875063906275314853778315391273383364658531829309400964966641658910572636295214479993721919088459439377469156940022118114881920780003613007365597736324127190022247907939726578392142614079268555928203446618067296457810068715331665810501319606342736501928418468982807879745566031230334937475998931599983069012766922348210862627521213466132584008984664174672834409642072445399594639488164962734603567700138002124698580196320414056646781524475529099810995231684617859130177576999620476718308517338743860792530553811112788972051218136924102974138052980720680496510867519343460116295779873306439060510313310422689428841695837676642292246516889782653857623385928755516978692341893252002235338316136139069785859230912027182475398521300454249688111529010358060758156097070369249824671798406180510034247784944665651482008804002558000479380650422443338461346582672488851006673006102192265255419187224752704763181457572389725504251890377245767888089119453492223409507855956118493613247387815130693183751742562471522226816268339693071012934207650873775032112571137520093357701299582766944757219614300963369406727798955288367527264712296120951026333036443309568754163314050078690872704658789452980384382622193017166390570376947952466095926703756433399685770482865634837673797984111919354980760455727859720797159029202598426924065776356250261703372974943502413185007367692488497931555957496787178796101492498131507902048652556417515387876875490588231220555226112058093200995982391089121593806755142422523019242854181312727309823679530317730535581557619136368368992473832088328608630723766941583544245124820758278956647360599956808162072389406280061491308411086919722507395714587039341797053391604281084780131471030447173526707903175179381010996080204265217619228701100470630323873551618392531353894424195448371326606355772016467501176035915832118466525316201146659655680957724439252838592088721522248573063646854655575554152671512316505174162053097785982882158629152937174789696045095543820288818673242818944369724932163481820900786897628124446399097790816521398958844777322396862062796365603473354577538470393960504072941266986219679072388938236290809839180902105007905020350266363247674803567219142574478759257553677833629523429160899638570615056958761131156236865739934301456482530788587787791547514450579155643800610131164582521917141049375985643094667977583359890241487835358830729645566857493457100196843284483037115182079438812075716111195082311650860767134047443323749799215386562483352861768506161092248337717367945123000534054763755877178317764876163749945509620030697990306719479361259955784572520144114642889972091497055802838395466075517778721153071241129197091473156483220519482241311198852050579681096990223078543248857325972355722366269548031042007358585149221437690486669939257828198962085825911258541484040288572686041928299829891087570384966743807120620424476997393443999575946686331498733543444700551054661437977393769117442485057795371655457655486715647662270569370610261409251481241508881921222594085712228458620112283338953896081168804494746762031991027876891838313472896575818811127808559768040559250633185590397598189522285376411397236896666417926599320304156741022717506119036876286969568533882560027015578566734655677707978965025545789266206347408105288178774364557755541767234047210860650684833072945612691458417405973607148969285370332163491457421048444199803354309276510407659918744420929517469343566713267422660086715184811945649267684989047117272080752107824078746045151792606836513335153725875213597512427611883719831201318687896538858397022390145097392967149715995459915232124925047294778968520475693282625702340218175635134329901739401543019415071287273439572502225695566114567848452770435450534163894498289940034197960027949032746906976743092759351814628114846688394611327561601194776129994525062687509399964754688691006546767636325543910204578794733208752103204250232874927803889364414020818785531767850846441709615022775785576930603158129838473653216574717792400861190169908094131177623242701064706045245015506909506942280433900999951067229841552060863364276363843439860989905314752433724077791142366516685340321830781684872653818982133041320037066206068866835841887805843920026822868106479870199777704597920109134316244698478200097563733580023980489710690571932142916133196943293481010828171317645803316101843456700080742928501812010488828070399641406260977214459290056578104725791683819214338192581165069104528490764419147644489014260720301735387634246426665691699422303720330236620402003377302694722474587205483105210695789910590385184085229696655290096650288976573041858657541461143558127722694764366044034107642607364280942266697954494743514120956552282393025958709914664152045774329962852899184327565215781792274300643194318103447653116886880470529523001173887795270605341131954310493041705012241579417626130417436420536465732960148950117698842544156412892403006853463202680870547675771837218533521184707647146868684060084384571369044318781201727995450729275695278832012041343781459211665667931917473602942736054869999457410791751384418205462882155754879278167892773395842097748541467266879016071099999197042983528915431914228479086988871336641341621945399372505806977798642360551210421341018119970880792758073131154294734132315797553183065953811847262082486937323460135287308000842876752637071096447181932207090871962154332986259333573676474425600802328008202090208219432628332568843942259985012811361458158803450671724461912364736834177085270890314388789582873652473601595104740613964946188414602052191016342891322485989343513152842077973304254197605409163477149631617816812164523134476041069753334919312894451592045077705298920179958315979077229284555591116948497540901661681540929441921911197059389824250601722081154879500508273387431279209851821882059682785711683595878990757635756639702494596406461898098356895212636486082564583593105392837698893176756111780455624619005590892297376170647623536537323072332063455454467875204491268672012267304998286543345515269050450047606430508522301024952559119117486307129845591711944993093595511919139316732030243694137945249305144068008231465919487422796520751487511455374560900295912087723029493182419261319126923132613249581837149894797793597786635503180041336551655334901975739025339285048622886451250272893428212641924807834102106898063464855474770051568254663283748146373254535552049154990403246043082004022859132406058027045958688498434786867104368203213018655587675903130091583956785767554082417717876560415674144641837211632859797641728498447640578120217826911438730073222806063731266415965418773502104622843390744980287286289716087218806101229344933814916575079861739465568882948518864184999188111579352552811995613503072498697691700384630448815527417762474612558126550927557814631923443551415871627439153243079920295367783873561501877258486290230388814718650916164330100355293421355226825835459287006364820355073075197699681435537929784874333028251382715536456543626346488854294737195366737130703853283093404262153194936764941089373326948833858613989356200487866614580478695435174763295328715952782537935041601454450337515244577610955365650252633342116804720290902682668551097192476955666501670910416581018665109572243746632425112793067788357037817786455269556394012772828797835329466112570322987599516592177710591158152583685031971515304978049812836167145927909522334294401281578241632721455810837675250074672160391537259485059018469104601736446873866335873197615810785574701975380834600031551000943105025958627534767468164031304725983030256266550052433189721820105737093559370235446585334424435826486383829127730092105545092214696014758323674588387697460356614027143515393027320543723621158947763279063487183199479241642434290942905370484835340541014942785376858227013225009747625997211652872444853889020750335006844631958639994403747692861835501147818784954333088217010436444631786747738613518432411070986097059280156406669693493461144046894239573099104531232844643788947227988875755019087230670861961380714395954458670214921689101362859347463877521914193437613883425550809022189720140910281079014538263093912089559619428730367695197993245600548669882142403557406621496487572568010331583285287476549221702450162669471880831841222586760347815571445656500638195345386266524817622313801271216523450968011399672590615019497107288073216789264092490794398611677877363344510424194868640205247444052968739134122780706725519314981328900534353202975134786088347273794702794475804234378337648599116609877151875841289477280739362958795515455012869446219067789655224998523943189355042452254026208493587168312130062590984906077589888952390930463617868510896153799960133016054437599872581559458784310889739511496775368023352583817169771720988703748742522576603100770570798181562068801834046653283620221905477657022876574768508539728317195959832927270497169703172788360230951886128155213047782802909822711518798684936478858910987397517075263343412600867036359238560791048905910473159227613990377349502228958891625038689601773778830597375042583672391205222555682195917980223368626121751900790817214699124619360377272448392798516089618582180872343318360024562254405269122672108061265789766810420150043427373789826051944534723569646316082191724710282497895519508432126779545900246139747266191066141115602406618952042226108322340595864072456896020302665817866399200407169566962603686677777494628607190888005522280938944526670699090256551695393999944393523048579453333285596104889966509812344050051938676656951607456367131290571939095107903413215961263914397589697044909187073828000478432682841387729433701247762450420760598531529008182651484651279708333552300343692081494711624324178029499396590096510205234369937993188143965845277809395893234393511940216625265633066791140028342916151859523982402860603275318294560779686102766526225694370855137545222993564414079579083796757033920791016945176721436040270070850458164574469699234992401888883000812441871319536982695850064418169413157470696990446974715435888434629961548780297800977778653302141347689801003411887313561139270876203709854278718603632687322670871905564723819957779911623793903561026281571424646201706291063029757646539251693695609083623844086297197831848622901199386533608234799709294763920717231458122884862446218766963753834411083652053501615691280168466882202215157727714354492263533464889769849954980447169405982264724202275835924559163089857060811311738564102822820120362106816863844305102353244459320883606727235358496335822408004819498118284612800042312982295581909437461767840883129918713139479308560312068321475954875861519587877503911928271170589385731785473781139055406762443844977533950610773048038845651501163787264244967731925826178787705634137302641181662595745434729557859538567623487587730712830197038515827240817296205863944568504123947978701009704882905336257488553231957586067201263792888701232195711079621384478987239196736807253300951056142293786360587858152550939801510710724109379724961719740849400000642551902522824032099138864188022108717660060874626160057933700468209431488519024053659060970950484266313304905359293808675604914996921252305397005594119161842477328881663739333662411949283174078350258447513920116029433628712868866437608181260385284710983575042499751443475947731073525393524669221958255733861570071857795255663051986349034534889242507151823709442574223689240931152792789580372604778574550979933525063706833866910656808031449023755081276594708744216263494816718349250472642266664874306286060592637049430068297075068313704347502988472461523191414086783496820860912802875586131577467686055005579929093376737944951121918329037115570899419312664851564807224402712160492767352001597761252561300514954270511355695725675753788062142885655098664154335390414582609237314560786872816266674963679472926459991603780101239183694729346935525061774386131132614902642859102424639388960207152827036634170941843946678376560811375353893405249979653037975610012052602330049378903908856521360483710767532525862365594059514280989661385151706773120507554293904733844235044030472283177507756205207152424611974234865651671822374197496135427549800100015133160527997589093850183211353742694291130342750666366449178062706239935995519438175063050940395534840168150297926500913635472477142547173556659132347599100413351924546906516055427474731837813569271338225628832837582977065410909090883504362811688012074280729854955730377188300278089020446849405786702946322864649521247346804920189262286621657139480289803363949975242818090283416557645983402886575220455533940630689143509323238816661777904502617319442773399757732606386332054881042363037217286376281257305615217138659628896974034653584564201136094470196161789753792431932666904829223124668561549984995980968076439714290637340346855769844461955493407266252814677366908519348292019387327213781587604957383402998100072636681158558165119817976041113714906698161271393442021795073376225633363240033682649201737379439224179569406349080462754469615699937641869365429736198848867136212497072015337206284103015128005848377730044442263534962693797696551309850434302051438264782046864480990861760803692301102901804112439715432619168263477359989036341780530436353817548043335729336302584208370267536855734380659210771973326417392787394185316147247366317893924664813684115850909184566859084665721940302881467631563104960505583053683796830042704585244231450504966061710525012914816149453888551123786652890799750812890990214582262296380077697926098822654526926163277721094952777986211752321091249232870947657140502819432133403953411634465742883891087262165073640938520439650036245832579421503135788890804949777260357929552871787723108648223556398835177542564634610695993179580644245927598312820830780521013098855140672024165589780833309010845889183483203832120357599536504757468438212048968017994935555791909753471661194430288783228560509795646619748827964494322157229685355413119456010265457605438335104764337486177771030462284724687844604432172938869293676347849196544164167271141107886610239655593787027497748674001924524466928919050421990204070956625047594447120226342243987302965307245715024541522870869955148541770565514910356803514453507426118596551092913260795373861727981401501796477494721630749395083884040686391114279316502422414440627249358778490225605506252252481629437208238562882855756881999335464978166430685160469414327949011289597610361174173590882184930318156480249332292955132904763982448911862795244017066045221563997303343243172310123080326467229763849676851736893361661382672943752977520334868280113087853477343831164637216471965614648314537448406985118989765628489373890689173311721653768703599884873388711916357047841256529525450719835166345891804454025257462691781393440248970302415155601174333379177764183198325683963478233765352911662747758768678983557657222056374393576138620414580698001387793430716244400428663724083005689041331923514521024097338669663511508013865660136182927864193573893850294280051582824538554100685806660946004406459678132637238457816553492978147621038779235342471932199212520256883699345945963170560262404695937220582020616551108577583415211516133090809551403938207143087895737525508939984930040483406760538253660545658408944162206131452513996708936822527433825704485531213034598247501481621257596049772404318854939218731012487145555602346589042143568772041953236821905233038946802976527116191660738338487957406733319655818305155721970622438420812839959519272389091318989045591707388166952144093616669294424322979124030938057191560874109685204850470722633982601242166678294861284589903904640104953364519191877269846021971693794435477090504644466398913909478174897408536879209167429418311684809620017196372988106274021183659931080251507700505955054510665891664740477651347367775800406900706908187072091019507222051736474832347745505031968764429857657886281978838943000809660987834860229998436629073602884906700419464561356900761796986715738211893876525952502920599634363929260077855646541107309963991152893616476367452210204986570898020483879821408810915218994283223909494337480537616669990563333323309129675649032225813469917391987588137748117344363358461410882852643218839533305038052829324427595552392323663393875156417925268943412663025218311476341444294133163283610916114409592857708777861268054288965942875027396752175239609413963540607073316574546323685861860643711372725000366103444217904484097498910685183436400398754205245930980863476017189322173748804128168534744391269696870486380667195748526056891675986180991099393387000808352515038133937613047382981493246795185924647247647651459936696923512641411969340303763842273135442111829868636418898459914399476284472787279712219240753045467027639633200708629291973785751088112584621274777626788974710812849169240817484654808992450824760570013003455901274026083819794273306681578848577347339634445961389072261197075075677481103116114965653271915411796415487585169030558901346020871533813145302706572053713986603428993159796089613186172481384906382977855621454561119701125995466204198139458371067680543914781648452188613365656701553731960835327809165539669080694477199911524758424267857081486868038641054457579669329997846540523205374894008989578436639776197865113597027026357247011032981983309358153702282644707533645389267192589789090641369597897481780990970043415191431508434049099128560023023591691433384827767080346915392269798337445316362252444869034986246309635114665052611721976061699819527287933245765852027434619169932636859936484566142674608454099195010205335945043663488016161403007315024631858196150218376647908455691106137660639547309681790921699395632233321810129080868390891477677347774636915519938425910653802074542146666782054123783563846444317274683433745736004559210671624967794892702765293359235593356534169451362537704024279826098102384845161467379469034566762402652566230814635732176469284184166138666398836347908079839680233500467769573467028305220522343864759202248528689269306263886779316240243796512772947572963917575236345084768145158327014164849622702923652593473674738115145828076765483247684799653275826953612942241229017573226290498916956018120505571192242452387457569675452585844015623778154770529684348525014868086532244624033637036638631228069480491878660088512560901116707847146619543717501010812342298461987707788182404444148041314790225937222113312998921746856495965091334537932844979244606851235380781102670798143991522326750181093334102364491451061681346642555757534176531490363940066861612261616001718308901297059334100424846447149118122124894318018486197467711282066253942926688052803256109417911305497575774208618794068762372786259209748404473479273497320145136272729757428569306578653632832142585142214401910793551509629096666611873410411018347311952160498315966934082118556877899558670143516976463886272629373532090488470476023445779440026858868352310288348583853676744192949511889309668590009801796033818712601551330911742891699133404198688548623723785121832131760671738746136607694801422271828656224978286048470857554811955036076007589265916416187887796176073728092567324117223270036967302556907499184529100497339141986180884866025732693191646496522616504216007781958659613680454284061825779333562768762220900502085247329949037711741647427622175224149129826451656023746846831775184717729240249336153020769039378969876933691389411248314826817603429445846394276111773040389164212873341993906844365663586194919463897272315218889977867230516373624681385065666167626356881699855429952244899072381815949171882207221357781425130505627693740012835690963181866475462697447328427273505906548360776619563507719653918999588684026235185187348500335741672038685503610921302561505850675174155234487531373681877340282507656821276305264533828471761867942918571225825544630699949332772639115213351562927126246079135380118287209783466647917697244857370335609671934273260121701484398154753684179495658608813206982020678801377010487606286145517249150088160956277133787757220322455321079765403514319547200535044431196515181329429831533776104761501162589606289015908148168377698967442871772487630209425191142119642955975312426920072936432659992369010897392079413826867027212814876592365603359947134449206444798648198412040005313238985309653700481971305116097721413778660389870173159265596300020096052262945157830980818844911890403287287514867598812522208562955048988332822203489698631266904427898169759641959073118736391204114955940424677868597493008264030839483884266166858529975310362933265214904870059610083269101776172931534302441662983647644425312705725115375417612197124415211310536413278432984409882473673733837510202645840589488202609000230755592753127984090681837473669944628772500395451510991161198917682367456190595356790606658820416377265366628343051617885938896243057444445258050238029794006598591862300010945626677357443118843419642286581220386529715925634203323921884367197485879320118947846836915491407360339377239389373108430821028069597415569626769279270537767170879457305547547311667112373088908151022076863069359348965679119500207257280966412475882368984348194818862054845629651264384810771711812363848418125825030673085461055737740578456119501832746775022574452613422937640977512384227613528364483484409753442610252840715567095252703017944782563103875005465579152519545045552686755824213020222840949188847682029400740354680586663561183197628875482624462528893794648846179500111030363342755647999839084121424862721062022971856908713094078650075028988797603323850342054203579330043133074553898962007181801834332908829912505758112832716275097327229745775974824057734764993585935092231266799788003022110527153363133813720698185606129391730041167615767313390254145758548512922503952062068521562810181046924273906419491207894818269853257785128401781967080964424895653133746563215998322367454953291270459911145434402758278781822252576067586667120559431915664212181734414661842300494855120842481635247396458155986569434073437311689217339711464327227080503758814596846235849060907260776681229197063388547070682862028262670729803742039189486346848514160151657011322148151546929814915425641745035281537531173810942078848897028075951380509364822550117975910320744909282322596026717967074925150158066370773822551514492156223656458669475958529086023729629726923874600558912544323538789568669825379492368412493161672828211571686959294481400894054963222037788593797482119685003737832949459829870026137233870037082057479596785090705054931640867489244398835890771750192219390414195694283441070883457025436310396631183203704840862407032397194026730159528595392438475783929819950583790157586305867428002204795344133925786815732536210307420107757693214889628850680683422903603773392533000842028304840956983690171711975758356727336444414576191422008401088079763261938105322945529984840768825489052097427945448790077291912676469978483612424191346095987852996848804613550735406505450626672025767920347390979845510343660659090618991563463039790546050510881644289897441337594927317832947932541300344184726193697920455660181404054391427876967183584635692482209565851793140194013804442210624874896334316707997027067229179811155178531800207041112564310654659209197656335101364443123433595665116780357977083124305835074620883015447009526854937870498356654775433085666349141303830383522422161654659579821062989569557415387971668543012644285480168078718623074355946207324797385358877187700077067074136642092041578275458675677595728335208979489351837825983644787035975564163977445516164749387118865931367749087192641100161055922372520491636473338906293849080091098091312011932956757639774401299134014023142999230974551333170347116031065826882895902563740040737569085187930173647926257378081476744446623246553207308722794762212064625944650032639442333592559853670752019282947493114983197362396061145942133312447703496502086865646979532852850975519046502828926897467647138577029633281790631984917685225564790471483392766080406425082526851721513065779682133034036909547073785284336945289774973617100750720780787094304417720038931518258417461225972984502129683042388617457088891326212547555408492017910596901959769039910706714987685677681106697523774611299578341630693429025277238314652251224666634791724917751091544413209596178635386136533218406284593202971958551918599852798164487782291632683478356435593646691450641874607149210230600447347887619563007864973489254080108990530490591889267968086550011168844183328085477105194392567231988475125887603585268630192336742801366969198303149819293357463675101622817347028664171969119879775961172315916904701164494261402407354608391777209782641959741472055766681758438390933169511180838931051390165781634206504116283333465127399151359963057528621210998935694172143524956303794615003630873760318348755331733005801867204936781063179506849343138103202479551889158627127246320346615850680862792886116391791765743493772901446941736467376056058453749683017168589436429037288407774747329206633847731521940058664831944591293414176202057184378362216097202214128401781939512354214873660710974089409904799615024039741417594219553364267876954352229726542143577784572272488951292163127792153373006781981534761043436157960207797463473473598414971096256816773677370638042678814223849383744445324927607979160414815939233684658704498280668054061008409904019764003369529091433722078069735353908480759506600445362357502511019775647860636516341163873770812000363599023586523532171403262639596552421282910314900228593360274479809906103567836527359229778334517385393574265474681176533934245334895513721618980324561149548444293271365295852065000345582542100313610022269135247897365144154793803565642413836604937573136906173715398713771453716718531694470300266336269513959354876297652329870648262866023070513605662521086539961381671397337099398395399696740854779904988822947746269645655886570246956969347364200694473984697443032767673831173617269081024668681995444498250674127326798104852517157003740531227992283751353664323404683824014278354187304624125784612911359328373516729223930474272725108707834039702712574663894285036790412866264723065209254314033064952819810793831832134927637895318884447083256470616732136460586064597388304893993575400084935531277253956398375497127261769797270288080026642560070059624831939937129847987988810955398525836024645586395715036058351645533598409693672186168234497435364382699993333505837609721749782001522037990247609217921977872597225945141171360486652731050089453238581726575561474276134945631249391860531828201718313548290229743208951146764790264818038831341455981023961460540213242802168053068710212990197708763366165971853613704009884650803703944962901539943618191586114702364373043492335839612718537215711175648152533764195385551318909604570939168115259947556953121510082962271669401078759801580681662511976147921331608496996459076388154128965353605085596819204202402763846898860799218574922226859273379738113489509991785323287178095853821738918105579965390439041481534708728084117888140813074050164301661126441464049195311928632654577557455559238790102777424318272463218749401176273647152732093313874345118259888977028683195403778419221665660173787613490241384553459299001345261472672192107050451019773101320955734210871752713043950580041495072060171410580514283532400704227507264925454163863739774258941330889758768270094932518196765598232970223314352123808047545050486348092386686105467595846344183349402158601348302963743208203998345517610968936537500523951891172460949646418943007514852251531005081801979964506836180204193168899306327037565203287863909923699103669769102522345669609500648724108493775801576444616564433864070690311013819623655045654581010261817187563087014734278690211208381839935322344866923957939484989647673390395660430075336370761551360341599220150972907859871659794135141810918537939527737016229004531499387675346891088139056213467173526821825485330555171528458542447791957511188627155681015220894039046744936514517894872232191264125834598541845182001236347552010301213407591327666746788787598640194394236906196857070716469511804526411964576394740075579926089382741356131826716258756684857446556498116779272356146935018984450053664348174480446145015379594797746182049385140066902387040949044161832946521438092694813245616280605826970307540769905736520572506423104304552706561194186892900796874698706474299980507768174003077266287645177384065655715117355036955332297781745956372271308277911143471829692885046705575438820609058033072763340745304363194717215828915849702804129723871696770861048372575921266092413876662799827877303559789976725441698043799266224175636763504365750099111455148379898529295243652926158633125663251390497800357633126253586950861296912108229096410720262945396746417591407449917922790620368436677698850421306719075027859522352472911254284376295098653986908195807763600517011492819373058691255550150923464364390127555262001238660366923537734592723902567393209170548841291008117410888074122681753351716228443478642396002254481926861821521271383578333986552942196959202603364618782588457440643401215752783490720486266438792199888629713745630220830801887585581002226366792205072914747709857472247130467819267338353159935724936522403164628778124951699027507970469318268846289932660835167375603922316908355295336539634167924662424807242870024343042444879211885342705094383729945971085858801328273880886263210914996264543300968928106011987497702515870122593140365060005756632366802236183037395131761693541536494967629116279183844152622749043696002212755944933981191968250080794043040979392377792723847941991959952574228035861998141840863679102330495995395373685463053270288629191142076576174416498200237177597956137297909483285416718542286866152118598277258881826795463423746316238272310104376536395526704880308472398147564998994646476825716274624178989231696150415801335082915622383888404475279510365525567812233550134654893855768828661969955250931804968026568121279984180309497258336320754532868636351823732422542611882182951128005737605928272158546207609128317522995370879730859325895197616130514249975802424000426150812304964018090962491912063726879651129588638246773302411449877531781846096823989997661121841340932004009481012130550851305705151110918719121331467348521571954760092906957620084201500494516651540191586752713157692392712523226129055412937837599930916192003377283101488190244239754523539691108769239674387157407906407120351402201720666223749952174231077953290132185024663317935747744973271422275799681685608955437041881300386879106674893592827637536743501297919377952960645188130720892902777366895420166997489588007932088491750262963657078152622603574433826661266166369026379923745352350138768676557008302700749445493380573835761202317261070043296842039477807837747938025044661753804063465782418318868664595456087021254694831817435950076931665978730884525155938764489370194182528054511668979730221154379826713582513470081094979789257145850681516359782361036968994184375803612157988095499884167897767443606926264759620983520820285860056838116861822755636942733340542530795328333301189251106662833065849005424510247131485430176632514498214358427562556303905611514837674797945501482033291762519561402406820283586097317193605829001715401730503405611939976978866482050537084011048069864787090178125640241761306305998874273913636448097293139311152799663828237660011846617337876058105539103839957340827529489369546947477788241347255159144899217612580280071950958423414848926423756807206805603572775587976292733529030044049319970534308183901178504237970956450061504395767003832251214737836130486375716430765872630856464902668575976750087016499363985966892978848484894485457637805803095868337610338557345690303059564904385359910407469120736887376175202516423997700909673906163333194293729030423918457760129097396570055498858550773814779780157085190897823169156950027125143814543958865410147258953837245950367462890512516104179905736686826531249893058859439915469510284306728515539997411264927660868929286687307082324421838472281689783530391953293941855615917576808629500715917982251090724289043640582862600869910933242981110621287413451826654329858234130815620077533333301078622605655710158253823995423412200689024911605556386201986677327010850931038647456042205823516826446230326366029125638141842701750427573105271672069908189252434174533800753534510334184039124047138082643469494638384980960321211801902470109577594806755993280061639379483669775720423321347322965791869031310124626756973367353247394475360298845971626149065767257741852598080534467283075095639202482748832596386310290255240842907371899107983341108253014254287802724974594936640401927739694842562643391749230351276684093625314202696113697003352318334739008610766593225381076400700462748927575936914515236062109291683672416746581909669291296656034208462502314850751494097378840404723752087140370021217026715501240971044217349068663934082648953361416653418075332542180489427679888422986400198374102792445945392194633029124157333789755224944739728963209501283203122006612454319782664772433942224178187467995821632272930821312766908562140990944908911155503835516448774666229358178197975460425861182386789775222581243396254664995852672555910789575165331046322981554562855617393147673784101163091858289143924883239722131322108545477067935838525798487889824315267252172971981948149978202119201525814637596023343359119305606890859432042642638802947873908655515893512605729415524616370423341506553040342347616991151605691832216162424968298506213616286234600158253607866699769198931737273723474862732059940080364540280410009281543361956366942421061921418865792607758353971988247933037685097867620308893360103071896000585977417767268709576208416091772901197411439844624612044570093268255260460608757052080056983514498654773212229265051523359642374011841728263737195384301050894502130197288406347203831853301073865520583187872912564640968424352459540321306922949206843519693366027589843089863378003419029741814131449701444692373820554782335271206679402220289630782269649592271335455673321276615137691576058028858645464332107837989403768037287596060905670710996210788087593604159267581549762223266512718585161458272666406920305437097029897987543847792949878104547129395975309919994597811311406820152971218260735994882134560227374223964200976112860037816896449256499176063230258898996259318354935695973320968660572777816872468648873790475860110144937543030038958518336129656819503753197134502940689535364283430509752464730162017797970474777548180280541243575197697343448561681591377666872275668595000160076913751899314691560052040461250679259106417910360423952618332549816088816527947623360432566641303566194375387835995087750238566493151746210171325914119952178623003759932374431634664917192006278477563422642182324260721869640375776253568731297652700528506193771264102541254778818853739305459191194271683377688960468416999092015073888097259857342974624920896218281160492230152543880365628879713651865985959058023862130494500896938494943179276967008311627681789553574943113354250291720529777153052540220247953371435525833552177215036182527472528326053717797611275616592655145095882714163133895715526402801185138401169653582907283025983348377172301631963413225861742877972219535887887787607084281000338204829847744684387666364644046951648290501073133534274736095624272691124763927063801837712334638479881801533464516152441289622861495516092108259372456800038368586948234748593022132744661511862533378615467235610146092720339552725148610710072774189775053723357841826976374215923226642962478031209319508094848674960081585933571964496200686251932278970940301283301790562874309227689486570893687331925884307741299168012703635987209409724578752266253660365213335326360019277903605574397095690481136415316204560499513903913506879067743289209033417370899349514269466009523939768740074382605028892618452205547853447541241929537861085696144234765913607278484302845203194718597217812900128484156070290937762596569349125427378105725178194540067621645006301136988090462428439167812742966513559264892152852488616668990095776519692323042175811490872273348231463087165261703111011414961939348171805464887855684311517712714630969188906134419765019212389413845429983259135288280752121175247188194253483816678074604446876797592542088962431975034439461996807688998060989650633483936971597261871748937353285980765931953736306278429704408168605137680016147392361577739216242652482451147053642780045077081612293476079601588136242255500245781404307153637706896540532309644466227221794452481904608301442903246315464532778052768606614998438476528467017405299714584398774154768868512855653667117876034735999335909935056761677859350553196962362314351200301273702312003548218158370539225828347234158934207661042701857881883926851593641926280835485788394844622462526583595492254646539048613958337721961077985840172819876545666752302532706135412397495497136758445485305662059031813225840195759314190785621917322173269974343541428771727538999214078164212462449951764314703831079116598779396192738884680486700583290770713528511754697191418333506665218798953561425362706739477502435750241725617738767732218295014257431137934319074167437302707008912459461040386007190822983955910657651696308503858249253177181309317272898415675693905605232894729419665669500693697202970717714274359501993684992138168603868745440444054309579021488619737126693862842589974677131258345238558540886434446107827424971183377462380927611200976022893054543295706738453164663652861165425119473511235804717601675715056708768899241823822047326521473862479391234912922512041106471630779333261012330150425814418195694332638557197217833517046022872357772974275107191490985877194319403646886674310785156556256771435482855944755317688508873128965174799678928595788162001063395480612596210870483416769533800298321163404795271465488435760160117606091389151286526167612226818693214991629060309532604255714929478036820163163396719302271295590440187604268514320562531823836016623178411455134308889229276923212661180730261049272522706388979396006917449463445115019747177977797634768810223227336450349245457734744638459946475510822616485689434658797084660807799156633184280494258967974411450088935485732212790429620314773374338677134072397691095701623323818173524597389251223140195731005355656926606277837286943619984636444054173333365284881390953301096120459425083349144215720042533224693349314490892850440292175678283252196404640408451494760989715013816814742271758122073542309394201197946067243694735427042085837103371925243302653060925101088783325417191584323689050726053352703013855793307824710468153023844096626293213902106849233441405991318905032604480521998523379727669258896169419129386992984215363273435985072688775309833641779169185582778185554005999154768188123471042216611883253526692883584036246917253913983991693910773030370223608429924497185015422422743200991440586480556123514312559826777118976600947956049462550613160166122784015026966881348068520393237709762214099174791801010553603032221564265838270635457298248275705867594415264056540813496132139207823429683747608933984428217048277490000078014766406443104221790544167087831659925987529022429307662366578870572664509690630011801360645615810561345474691318906664705497472061923496135298190306466613695699039996583982955908973124365906001070629605713921802575452851295107961139949889833018525774286471699290274881084958951373798614354405902708800602966983815875863847822416583927996562441249222758927056333339889395264095694034793284002383048424107241652594983950689484046089190242319880999738285699977096829840291921853134361180065979277386044693364386061236870897936939501179213979140560978315336784345599555490831954904125405504724366193387717124887637973144317164388452480753747477613015476511975743076053954197590123088933536359280198493990686713834587379694358761072389385192279912482131901740970385287643521281109841230097798740103598267271430417064032273650088007739958874838841403584427771649486357176313671793333062178176165239809341630114299638031675326835025388780056710388307854245378220088423544743489121247859489187396164991711015463580969509042049863227336838836637062124496840320884200220989222455641245529850853247800734288906462997918798433560701513563168103173149434328609890501767247089833222272999759632880414868718042847224666522924327109183145013841309193866882064860227871688693149443871486561137737958937387502939717038947828048560189589295690144933319467504087449788927384076050358791875214475874105092206130603120499579043229687339054516745597679482190536418226182873579516129536629276779686364261734318122136128935989535840071792967339066698764225342570380703177065126800127602637374283947596187895806439135763828295120248391796507152738548462474880664983063281046962403646779488427285770545605322922619811867893936975437545802079302171111161999462779941419957653421145884930615875743076759204821541720783446309659795070502648053241005435946963505161839213710523478090398235187485852961552455573356911374421700689353248932185794217564004415251297651029370593727642026957315335065376437680956563701593374312403148443911557144190092513742095651219065059003900396706199557145465037580937960381844248817714742489718627609596873167709840374583150685341717036698020632991569204039706082132583500085897818602383208735234189948739495711224046947365641685040210557279914802887645023992225191590892254434955886472505099964227998023807468186531848919358151175773056130642862246976223120208374914932857373315487937371785216189109135691262930225139639421499677592010196113006857181596515668065361559125832307039241814765881553177635777338191168190129590917352981019521040375972666013459850406115556221934605045217094548005378786510142941398810751836428284613784032610019127667905750080510990086268515245842618680594598067188005630461117847120134955514163457916916584693181784141288116233848236033542899304829336192336461882845140967788134575978552435255432903467445910934044966919557085806648694159477991654623849426086048654873024309424236053981054177397586311279896572076513792265517084783561285148616380579061822469011346296469930441883407926423701483961830434369651051764905044278502083833840940680823534887170181047414004124723794898185897961527224443200841436954426220303667532512310157443911388775923240258465546132251758057104734720640366556458257983356383033643374646798105547938160204868948933872987509573019031083437312403027957700914073532521640396261272414182239610843304395258289376999142541624417170777338329357114813394293738797910584611528758841898346728619775885486513904677183348197311983981086851777357516255100261368610946224943833832031798068431347732488966259427559449067519139587955860497351856088189079584756056472806260539880461265244731505005382146759202897305929432164501336309064177597826100736441809324532780716993549632967121215916395821246988434053050149031889441744788891925009811515098695604355517632444468794273256155999966042850321789113625835263604949941950730849391106750410722622626184173220210258386075680448190545206001939690248562910795715895544371730531019874525086749287039938172297770279042034810806713438292097676467684883948600819662347725421213574644412391322738588843539574437767209938731484963651637381645772604429872889079188724723483463820565296653383161077012203294511402189154356025155277031482787834082908081548848162540665390666335792458121809718266984504402744939757323186010709514483828927263095334098230882243475746321347583386388089482946005167850297977971360444191331487971288078009696863880281318426818527466433569774214551941276332480765221542692225680451740742510108088374925602566036025630874884050950121569698222318595103570589991409805187315634465336905424548412883868436153158415945931086403851124080077488013353283502536280150545770228525119854101607668831889746387491893010322055134610264286799802570537600762130132517621070502856526542143271464166728776225339836072102843399692006810642213774116964363414907349077362689289090984274309016125375826889489958635286280672044992248747854815685747358990814119031414073363814260083706292572373163088129984878524798741079715021828778361281919389555370076671648567258531797034490183261155107516548662239289034586779793707246471524230970859104547941530725331590497914188764966916925634948351553007395729459436829464926359554480603440523858135305857942111161115275649001618277240509863877584246487093457930989561822179870736102012602609201220854557073417998954813166223099390896633571613104138235542670643113851097584592462093219759293345418975423722535796989174520731041371710220295242988972906807365315124221542045691818683021672500825643763481787554192174863268439873045704033569484711139908058093559576588078364790354288605149461317279924021007111785686572575770917732624504074778081010239613820349448820811241450038983336829559748719973665114817761182620771957004587763488310544959590204373073647636682395383917945893498831672244147073777329989578246917023036688623831948555949286639278742603044776909685450213366156906878114309807393081417897928063512663185757550124084249982884952620247874749902231030473301790136355073765810521385119040893632778048614782828912953991268630929570001204361578029304536390954417538311983777142324998291054250358319836838192433647049752315523272666897769091099124775700349412581990446464161174720558626932678721786700991171054586425783587608736159296735703539902453734097429360534284595524815032880481429372998730392029969154033284068510248130603590269378376775164695205480187623891450108931349055511661707256223243526952229557890080863559006819883404995734985981542461457771376392816555751407400119848185370693000372721696032581279198038393025783682930989473460457529286663655062854801145068352343610314509569656290783066507215262228432583735460011480819544821928936595455446510326634998029676101040432171974775623913382615424242316786750546413690061058958891164614012368910644577447469213420777338626963019562398459523128883913027048617212929885543543403003906356055579214532928523933617731357616612137992675696077325578749080418606009159632020490808696259717259531877728125336621237319443845655374429796394982032728168755861538087739811175263219828938025904837538770421951232258909357461177137213144974682025431281243304315971205630522483611261878237317565267360930183494599721978148522956883924634355360373988450426426590056697455082443363557509708148904333270398270386634766748743232971813805781046507576873407330789923175403416813086224646687922032813897231627816433744836046389936452331942787563338904652396967068594960117088557416327705702714030707848784571960394654634704125998351009050744310284562915750640854740512511188142934953201110031790331641184157613051000329632471103668504066980743292021831978421613137572330304830516758571939430399667812128110826112466306666803746699602632835949200963767155307083066971390148300937070506856285261370302791535475831379103847806506036405447707658138419561375279517977947018179678259923269705686715282272035881196326499905530129115717746492316605894592344151542027084102913261708110225339604629032118182684613763800557811587001240751525715796405169585418922826397049211124027171729106252978267788514071090144621333380599128535813596804248438720665240824323156552870122763259513310994630696803345593415576305143823849166137729117947352094426251409665482227072121710318361694877703252474111251035167285537514162326109547857702851246253843090964056903560761505982729294785116031711287814946585423517352379459304786875030141862175069000694960249835845077871929815666715713686775046040142827500540070189181045778899463690170187502449338932988816331285166585186407367331324812005988408673864141971838547456594528344981108755658591910141697311499216230077196858458071107698474208505862113825251192850220233904890155574952438067974420621772001037595913494610839013651657042107398967091101432146794982604475100057970122995922173252030419457348252793199978865733609134806824458800447924386209659691272903716956293248439540168315400373450844863832943999168554478088178009240526172298314122617641529067017991155598478988433383232424898776112093902410926644716561773091359555372677274627843424212513640128961588388451621313081775945195803930422041425484695555398996620774411009872270915656920721840332548362738817104123274989488102569420715861510779321598269497152289295180590015633709651680672439237310417293392560925573551942838544806906739474273139234338904468230125821840542751860580773011237215502502533387773248517611651925189625437737301059910496458217704754885276763821769764360494186109263470148929798181232150820037991506256274323665083630663421444167834973289590007773962856593981851130725977335958496873243638851348622812288173236180734325912271516579778808801786754600362841818968775329083260618430621766940607689395242683805036572556787596765666414419776055435424741043351422214805599125444054678880425542372337290846445454207387343430099067908657528913590665431241188216875489380340533484288373076288998257822384206452580409459470894484372520421595672098175153307882183358084206262412756864787545736976692444084113550883928687918916093282703759160102991725744394151062665025119216905024970108748797616620471974287060303094912783303588926539582282362062403093838110049456526267057762929176334409535954291695583384316811951568746465951850081070019062346898245563365825983864734455942296957984813681728602870697900618577854876292418311191335263000722241362133840884595849943982517374129611834909093613645196894397270164829173146609037086231592710410062463319615781645815937200249588784214936169782305007859710176365534694422552009810046877438927023442772351696453524750895724275459182427948220034276518644440412000548533099574582606318353731877674378668974992430268648917308351455955457954620256648112697543926282755843598428836250207834087348426714790812989963845911216625094607033346566534236298864130417287196783549991090423783250135142567567529042300455415837338879878389544839264800019008487995684290065906640389896884679514988649277900224794087146841781564346906616937385550381880780672370422429456201475997814865268257085803382313370642472671162066764927172485317225247970632514782570959051317293138854657561244793440963187245362161170598808820167144445477338481395782442572057301822114492036582880192879511528553706499814038961073678510605791352776854255733198132797011661116282145231471932195809188894445780181585294250680387663842833543750681753269214954037899308504510951845941994993863690774651451191158392447968605112498867110659014146758973213671224896691826874058079875163147731062695531271524285880268239456482226933045050983084618964137429840390647663238727694793961645291477424958133703391611437992277136179337870255674026636637217081107824771048892532277992603365895046266328668369381582433410075652406302550688078662095718994162989174881725692194994059408379641768287258830255827201741924359829347996040248999594891355748606612282679231740574712009711319344233106502013414085150910883158613096516472609702641251769418385165048542337778767361195210816125987342580612921510893344612258092909975190300182694975312116844064556216792024398252310697264555243138222077246458517614280857725958341526561335688021939431162152254863461098525428730236198193235257433923957936515966416414521406356611768876939084387797918607297908129119967903405763842752217205591581454736146692643829607465925505784177659930869337090550964471676120183725017208158646132494620786156606057449978064006327566915366018834278500163906037938351260897798313051658415812934719575525938876671024033351973298659130074709395429231271301901588630773258620286099382279125979043003377973578729964346047715263115852687767197294947444749250959536562979317010954522494431790686087967360663626937761422867496380139194981016700818029331530937479427375196322247450727612059845716620912388577874336589563052313264928626248485980225050908649642341697024332451229426950435293705062348889964045215587985628523118124492989937214072633051132578655687679118540965285349822697407117048366974545537568196229092246193609393329621774694255009824226800447046199097271538775386361553062480844925999091136145311331586504472232660471492652758933225405888569910346927071222630114724811822524961570393440756912804623389739980167770985043473710736951837083714584501448190700423169655801451017125850019482964909914983475031322379398783994220293714466357848527851421459356059353342476094187047084962330796268485629578497253762277858577238824970010146420525431953272332754853515707163879757673416734277889538459817737083323650577639645635353487689176370376224797805620910149335625736041174407666482715319474056422664258064281619656371699472294493807706101551685036990314628003362868863038510935995064823568941856268947904894944578551853964486563194560087365566975967066225163121879149979743605005772531744882276200066818713549418489467872102175498255025724243882350897167104763491431633364560259382360653242195725715669902213228950871872333803708602296028066191168066487972536745839512699229973200206009226558966083476726756961762482180970069019448362785751363226287394530773553150090089645232936414107993262931576475086268425936565528228213918083786133339458752724125555749869387468047589667440591976421538413674482786116879704527465745819562453284700808778696737978956079165732324602165350143623043271362180182438003190866367493205180251310615416552064610643613968928948803440910870851332661766748809784867561820400063290408559624078869404289269292940483365904437810561413533839308022147544171026880128315930126950138707673591969482412324757721681377424788793812304781234249043188897188194758144607903843168341174857626641885922913510033186120539252296113742485138135794842434435640713240736003580693420640722669258919428863077647149495857958081381159070252861142464280805306535561115166600986733493787206506787913512819154505206196694814972908695894491512519040891448634610353220589704268508646530211880973804417542563673237244476488685401685787015487204657604685994869652435076333342551770487657476493270742796676777584828694913754699803075447233948097464335425068977984752719239087152362488184301269684188033092571658938627227785210340313478621232337984638977046742281127465930029451978994722970256657225303182682812542287028393940124951400697431276862683427832843429494389769339925040697918151906231550511286637776234417104785949383264822917472173455564467258140388749143437656342358842708537928314358464107884735576496737866695415349641672336497519499378858404573302540680020216726037792743649325169510926403867234765432106184990427475714612578385831784176811786696083691607499221488310624140806142392987563515038949044489216698476778864344627419057468921691453864162632105894306993222694494938585333374119059553197219268044553582621979273304617121820011292951701394517635429025400018443810094880465589250492973325677726928671707216781547920637463659914840630438578832774177218780653539075023754437995839515970925575179621711048124898999225692442199651470238747640108912680307106258558235066312563955703720128663163472840490722061680819755842504119057434980012777766496302397972121476825908047350409794853302231123125235858783352941485502164276559930193410882656803340267785156158682885590754652317745713045890239886827195169379395754042750898590540873290902764736756436467522956631280246565843778965278891250221954650448038801928901386966935168656685656735893347845917346139520786503490093136897919059510172085771407409573464004200482492116864917226655809092188412170088204946190891132487083265597316406305405157635001551434212253245367443365781313802742805753021003350695466435222862781504349779994563904252754176479974093903471284343429592604942554117850577851742386681159666712888029415814441350522114710115044828058682335565359559704673880672850459265835532993700400633226402090053978512298105224884085748148219734666632976022482775208055352633212277448821599919525423483193093228865501718511106287186828781632553423600606697593913530784720863659065990533750234539491608202872506352655800077776487586301451694342332021036060118237448951538506463732657899824185793583224337440629102244465990010005443675664373908432790775863331559654442543653680538394195396483351802971787611874431321441157269029334435570619079324089996631837851711648666350403740658451417577296203692774458316028108412853358153376262115585363541944481172251325422912108062101362877803898133455554875336612136503162366836973585526658899342869710956494404255146216420936575504587521242570431550192001861629898898209996098981707016846517365626602120866720791494066120854441258173289593818270158437235023598770988483005500611961172506952559349928901608565649320965879797072995039217106032362842085200662272563831804065796919236277925878356974449463396678451099251200400816434211485820499839157528424320804999317551813662025333871782073515755533143712225652581557684012097692598169004840875703136364975116296843476920958692967370301510696650990598837210904317212974159094510602064566350353576128350737982390117705518698211877861591601606827823139972796263337102739813272255397326865326939152566012734930956378398855838725546813784306197500280991324633421309027048658475837908870342625850612714510478890795641274123003776775506525029087521801041680778617303209245945799422722777678551026986982373318572928940296416372994754078715494652871006016749810079437321610517992313476476599265395237926530727377280014006918278275515769993532199924758517282238432353566556661566665144143567902694499354738192291764569920671229589669007682406458266636668345124258252674867182202922249102165301592072460420089075401012589882790493785683256840566732469297740459922405076174745134001186395725101552436383576913378746322459054366375717009905635465444272285905250482754071391395495835749149003331310247184238812082274274971240488447830739761773900262372194676111394798807150184077518864744410103986861305541730740974546585615547007426841553731866221723212512058485368416557158495221197066200178165433218079007067606458912962253222479924387649907524602527517628068090490102930048575588378098359507871849515637179052138001707645717466820611386367471311282556251828445152237817750253644075265018967160172123989026888795703922684880476810001414052293720671917209635485480812174366535514119611223501442643967225604375984984493612296545403857509980636507879159347340402365120757251623525722290564503654294549470093841351961102678077221370468556189780453511760791676371025039665122804065238716511921840756950275324554585870884582041895353916934216181161163685902885741644830066031270869120880627611186305506919504522334585761544617554165792331909160103032319767714411593803834818403289729053886072784962504052363260469779933254319315998769899446172787978184137889522769810210098963315383936816157680543339887014663877649753110280402346972761189559798925767066478151304770831150515974128398151410884070197783878359386731775365117728538939265975488682986349036704537892785950045385020825911007941845650948150173471851273552271467228815835282277260858056232623007631807252865464211875902634140281375906793685213190043794694861616677966637775167938439492390681499081293994151994024653756965646667896791089443536110858955206221754317405194290437416842797624620769820885928252291028207072026149798347017908681330742058451784851717547852646883817883684068482729292983190768540522629379570772503165717480553216099242198041529769302012884666525200801955192814015534255701378164297642291960862503870682843120064177574556509076786537862880214231895405054122632195449180090779108848226071125113829579977070682711609541950001648826866866128923030464599470546313180787879905223646687899184765700490116862489409019609841693507828019553706663336032241085512508512335025817961203092285717320979321397909501920518703818529055666145552184028014371617310394649203200930395426221093190250339710537587974969679698747721275727389579269713866107019396557029101379014307809255923721684468331301393090308612143089564537646972754741692349912365411450573258104376245297339619320349446564863992034044474584753787409525489956219053935485097709389225198505819511887819678698396021382279558664946058059670170297700678608911472242520938988423646178940746434296683964446220157947218004037974267155053156214940868955080336362565464966509746358315382250492154509868364761214400094224907995137280411612379691809705863540699464327022044519146533589909971068411069023326358575000550291615784096360708957787008494070468904937256536633138334926976595848666379801584096027376890593475324190927517059957348406050417025889591844358581445085078366999848923905461586984927287460521933254975356405947733454470287929643009199820606262467923481680896324850151722518314892025587063429282599913632717747381754075095981235115489440176435948405774152437118912441335401332812450313121459716474674817947488999896468082421900801260088605880898150248606771286412786795882166427192833574083226240413760767913070319879044200130994958556490942269815936391940675998957012582006691238124485273807340410739911658653216212198135203571361545236418780005134492357869326531842898676846560466956419272610932935065611456527512241703908922417841015353918858014158309860485213978629281338561460095626138336413271665893143265491800145941763915394067483137145970362575298031511101479174585371510907670227597154512787877366018149037208221209769178907316675754598365081666411011195666447935164336521254618869048080373313658678405710904622235972241001213771613085534968841957171015151853736183966367601212782637833044907237837363076867910068168924223958426093180076138149582750435351231877384313833945278811928947192338475324502341889516923595627441915236008488585411324574050373691729509830934767551578232136188348463776715393950043610396991672882203611842082987413705670407599907654678205550990134451972617669704384117221842261019885212080049025897829745508726253988144668409922135435045265426163438136032620071685121803692680886547424916971188612243927051959617071576891732976667830592315377754148634816573688526694790438771128176204595800450524874867367147311086308924630935550879954807634157372614234685754893356566744473722257730414613757687816502684907643388455407156579334285568489054526900654905658530637039485724230056380689033884165533965777885436385289990164064120220298024780543696766395042476187670164185073067472175546772988638520165754875852903697958882977832889774902349172106878325009163780519559662106226652317559920818321595433713573076147989322961707907759071485133821652009123098179299925466304006362649492298811897017078186455282498769122202357438665313439735085438299661099108416043597369293741093392777742938679160107863291906897250721138515317933740257586102140438856254712204935392727698701982189720907149506161520310479287309510888481731337223748683188713761112463784996071339429684039593162308507501085969084885198099226530782105958771721360286104422400638487275681842406060420892914640130309743180982028553241953238253476560418037274464134043351597493323967234118367675705231640661102098909108680385440613834477028478940028822277022077293429346814046387536833741332548559660414256175871307120721462356468257590801430612860513724051043560211006098707354862325651281173405616580554885193399110474558863872221090790609798084536870444178476091015903907321305501693271274998299217257425767551182157445903522547763057494564619129570000740453636915830156017089784700615530368270922004443023291438858335255380055853429264152395878049908134721655774441247509489013740340898730403438257247918009161942137732046663155097554897488689754836734037395046630466296613997571640263062334095680134259088617440102906251014687562138209096487430942914854641127603694034291389027772016225331777252751741440660285207856200558220934830672463172790240282897308785653176225059923720230184260192041834442946287148844263928444817925674610331170893215166109699357480346126078867756347193787587769924571204237386997269423164453249219704654817541939587438890081591871744775048912202790737544334456659927674382364153459700743763618180417941163007405345255619402558334356477974774795704523429618046839372357028438962058085475553924865496934614853609496740895279956057344041253267982288473109706449187782711056416278153790345845482005584897899857623570129020513374346963997598902345463223657269478678348114296842540999555570389234355531777453961655419094778871751457450307524344984828433654969203085760692540345984513028497565521997480705855635787758954368068008559498344129381358842495559903952378611413164308781308025055682562734587010101309492048961890029518819053165508357955274638508818060592672819612102985054523436544582541226124747670032692856580166076645014898150196759964729397718810780801654014503458850103781994885103609401939859080050054219018556140991717966337850960386554798083312581088664745190019128404416110098546838412291897413199444260676159107067655673947694845864947025113861841166626468204794868228625725346044840917549591676119829300345049358220888165139685714172733610544981293221320155431450067516553740004988620319272993090658513736580260906912707747251524199963199985075201535587113275112019972777375791856335912761611455687896357991171768065028357437663899412373612848649283641359071721887962687581549348071987162042683569322927817856336738377753995668419054746986109558235601213554090401614809950531322689239875870327184221304389132807751202059085843448757922774697578338307722736024845834264496382989985885094195369516831593736522259461257831502017589563004436647598965483794675020156552317840242576823568652856522646798746787961210684938534879211505756074913443765904448167575419271275491017710255677025198036790987318746759031849680405278872149720742538153570474078483528628599013064082773188146857094359833149175292701773818241527631637352129628181071799258311024937030056057547430548025499622432621395555908875389961335484221671324808093369830804348971203934954191502692648275193674979040935145354941378328425999948485134086899128919534741690147161200572858034715366565070025221536040497497503654369590178940408183783281343415508431228681375766238444625592903416747118859280214632715972465317741573956572989303322122086481702840967680410509897324217884290969712151525079351074295952684330232828014468741986102952194419648803007950892195808431915173518848292662417798567829771993312071017053192208797144060668510505056747078859272439607270105050611939859257799669952083189682643904179391443346226406432407746898400981297033006591623721855340759672986772720764789818222769855502186660652704559744837859365748722497843516432254041950495164025972672072986504483370857186444968057060589107301941995808158799662531870584306732123857203100424690103485446982908258892413281536931199143318317692961741372257976625276670724426514574682233459196456528500392220111939434902475842343450831411519198306223067828354187967938478493851782758659616159031925161697824150704886779567171768278879725184144305777557300268409527296651477682812208965293076154659457513562961758585515223999672720638806731774846754199259000194329651886030327347468437833692802546159763968045168451491458530000232912300756528799772461635888660598874058439687034527410777441331830782875084927861016818712195340950610329189280845464315857456995937433453208639711576416131029519426570955415230961015792839229783112612845196300694419544149487361582056217583301514718342857221153264717550739194499314782895613839101637848357517643311885975692822840676764741161136582380066421173430464813556489709728243295737283532556928259625089774070937854840603255461017385336688418474848108995119947615316505716422194456154666961051629777381149056880427904433438750999283045806260475895634503425549844015813666196394343853521721967727839560114429639068038491578245000456961869943270355249992299270787216552952925960031214690012624126113795624229144681499924526694099836933568074403508838806656215953261708338188672787677342715785678550057699404978408728192199176756814832176344121880500867221060197728077297474931956447509781644684759705442825252016843249105688640507165624927001861068140303605675954718632999850853419901334106946410442958470032288300295633891692277088294825496730323665372531321435071446907529190800295312506692708010836274546186567554834529539244449266758999931310209303327375187560890355661111982830416281848821574012541236765967821989335405356581092774860166069857570762372378698814468523598753435061662136481424724258234874543494276183931763667746612817430233237706816630755195297322822051797787707004542839655750874306116875654485326686342541354799586916682174616561467184810787824576429427460870098337357049303863968445404397180957489502149713760770878849207780480819205687798559453950086979432497617731140286373774637520414645169646247788263563535699215081478101714081905548946756476093653574425840552993476077400884866692989977516981192575967166213351994709930499507271347977805942846577627882481950193782136925117368224028216064180187746514539231401000666119092708618523042937018228865200732444061867144839832859452696712356177764854176122125947645696332661515159174650018595571381519237114074872298887405107074735318778936775612547227289058606758474340911318721805930258404876016706144133418391029372858119452923467602986563318563343414473843012841786819841695791472474210513571400348187283088336138149345501836158955680439130823642210424976995690087025545656828363963892213400311450568506481256329676856536484145847611949852366074722210332027032489485193334251978085490625439200016725265234411026097580660688394610922195943981669776441640819544681515297425513479666585765610554698873804317907096252223356762001491132559339025247573582039023740324645157652966962400846640415342657375511009753749167118355397188260982152100910551952147137148347582788322294241473724554337583794517071189335508869476783131348099553690600310446329281302372145320466252760925843673708056867830074059710867324293245576459079731890168554090631627050832308298441319837400540354955893549846017959684782605076349386216466645657381969546257230207343299470710532942799388248061249832717327250185581086366763219554451142129721037796398497276165706301294597209308280483456764091963090860671601708920148327286552556481255264818497128245996692439275256510126686153733558240220861756418466476347278209800324427543362454071697131727740799209767593376570926152284879244238458849638242461092135282659151921954718286047152810146162765832808417889104315634931085114864920316357405277825288575629229122086658751067778538291458756413956592619752397614348774572466616954810635327543954891669688596810106912258972397506877394405450886763403987642567868399595978110662942688639809129863694496442720902929256101779746266699758504495778987560440429607170005112240691398243748074909751269031328177697581506155833311866139260937838884262576134165318159733467147987518529570946228647170360688435076779516178570668030552963722498113783886010990734107974763050054177352002997147566396383354935018995835047609696240129584030695996716224446911742103994985893262004365757761030963092705088979823028095482622668299933392964798701830998602500715651908058090831819510630318423779041702710312639454947019637951131089116160946245024180295344103596986689424444152374120223173076987122397956602080519598101655591330367809213955899009994316192656775216473967036213433542534730195960037467845833881489737673770648711871650745294844928201366991418772012089842635041548984309793724567934305932751304691630968060345675408941112984233518243127667836616694653387477746200069943429002865429034636980015180579460602554342111546111745986725299406591590891914966776099536833217593156562220647418164877414108469721343848491755290814607973327992417779008060855019785794349461380112384765730853379507894626604437300872522543741570953476951433160767754422339119580201353572915722522076536033450172899376848186871444746272841453352504032315371541311283653267236105912038316413821611551637862829133869118908942670483149539311944982362067784592069294439749658745941541536252101237730580202288100373051876622451469160193250520008632213885556455528265292618731572470198579376330261763065958372155470099163032638752937873981817977068586276134960909764059190263668199683160880762038768659556779337095337170937853154302232073062572423701509628315933225916587295626137798494661245050144330719177159503739122935050097638174960949177503672722359409510255902811183884950472520876595642519080666804831104190339827472793119938644774071391861922028882293129379040253533935145972572029553425953468742798483826850701408751183229511990617886236893033980516188107618284089020303781251141880158125364931989722023659625866107767600526442108997249375642123950830095724071182795609070597422868332230135924658411121861141896020569897103719706953052708277205161156435999996928345328297096191842199218756763386086497834901724961360996328951788292343389964463298438470222754604716148234671587056855145126347006621654337219887927895478474790555992559369540687445923282365730876097221804226275256258934232080231088968389965524457658630966121225103011220980395510899888963252547687962846237454773344589503998595052973628281267948867999667551854535481470008448243262733957747933187297708041431351980396312074514291285936812399155847571894096997737766317854549289263972928963321440158103097744545684636231817875970124617299525843172895920163519554518315925678007132037062692057786943406968079995400124782581239787289789395664217591807370860987880312611673951539880427900119512738393097888127958149428869060875997219676924794196945675127623006031324430210363199245244344747271307189093493292706649344995132741657452405850926267265097420618974634938894461428636561542534137424752415764844332870425387281025795530426048530968926219382328847457857911997367500083245829856054392023858697409306640593972533148605126480801164223384509314528795219603686678109841060700517057926194557413156004138387631056584361623859945705436918468031531596192156405370661970477950665007151702421269145821625735255508359976262822689089318051504237348111866280287887029080923062816167512947597118161878791300369496351203471688897285549714527004856337967701151759337710972424345377296153058664335128547026683129383172470320176928367237007475451299571053738359310146773081548555238794291598511654268267924421266527968917319641035334984119021286609408212997870343186149946580363692219739110137167201140964780254306881995378824015323358477733422662071826019605305264461722262965994874574547378259338188980043275537952699223336647653396336373717982953339898134849130604560720784212819949061152634234514516258080588456594943729286745118206169967155496097080646436650340907859228680150951628620163320109312909362059964557671918267058965285876171443745199818986050092830048409851373281392833731459477803698204650952793343380345014214940127151672138525778947436093842107021189493514152930636690876181871689566460230853842065539942393989167361904407785869862924558497447163527196337701368989636464482837779632692146634731945156956523019342768969543709904075675496398192846620077823486849780037103633077417662062789612498813514666248381505382002020656746625455745512115756344528080478550616515146704261664035393543437585147843394400302792876650692621779657147286381685479450492537124326767844201026411045387898566171410413441770131684969011434925525190331336132461491379429575343419802453664921684731759402171999218513367832723732797940644135571129464206584296478028796312101545245958912322768009507317392414926832273343487132021435603358680641010685323023670424138654281637781336766718412644623439039148759397134653813536403349013619004582100806767159100082782135267345551866622960341652537758636813764303541039399666261189083784396023646877601524340577275612286467641242886580345488309106876035280365300827755964971642272471356255586057415736604907393643112049992727903872076717841294144583962758224221728887639672328232142273899303386338321532710426959550186938716937132994262321607465042878870015336110607336031251136972805605253157347358025886231874834368024572179290423207002229955306408845459323780730578440521212825774102761564429053158663414910747571479008465531499299766276628257075743201689388735325879672620049488441597818235120621559527079578027654814768102353527625089327841688279861873674656576751901594984419302538076303413292050535473168710722801890055146896683437233200694200481305871273909272228047280280699801107058079023831580989846413208027975749644551097582952484032692019648520943343652433220162478840550920495913944877627152388117242901139663421861328791598120147543415303643949756201276340614557417493242362222215825994482356827733819374581332528970130486600690227424211114511103858329918513914005647704741172059698544822443254053138509221160960908228183258967764332555474110831244703396356723460047803039281409143122206982772804442420273903655063805501998718386309554771003113019534217765834854535020761021576417189571157337126200651074368730204676251472777384576879978735541584675669071859790423616699428457940029638980858896868848012881898305866574513808523879006311557537521518055927382913761109688486334871782361108377948501784286064515422323081471241622693883717642853284766628114148502935414129548070514309020257399453758068299024540413929699626290762039812666308908262366340583829064258481248565083844949106112038972886438859388607023314511424035734041986720831753495179704181483920523233023552418908756834490214028165430874010302104635926790006849432907517197806030857017638299393838641242498385938829529341677248137259961396202149861304073841179988234115373330374869346521744796213808719268171278469082800856465789233642646727005408458362486391659164791832687985813978825291687917910896771464147585463316881357144655139170741474260290037701270405051881205685245566494382203387244758365192708484247596411195767514713700169128240520545727631398774758490782497423290239678130542615327877870506374006765321335090426347091044061087335383232171958466094640713429721050197518637696693179518255601665665016635836530882905276576888794083757781995273589602226980342041137575010453150661372533173055674691604987950805430891465780855627489320311901344695451348702682170882068746482081606018441364530507032831729791070888409080132537209192553047601023766871167088640140944284426813749226318940568072079844090198182616023162386183888374738104033293443919377292413143770577617678297147306644689531896594076147742110929283904053323457778268077712105330515140330692792461323722935595545316959008865107665514087856111675555060485146631618851909195596876773592803627968738757239426727017134674745602050843409401797116533516814250657906535695629703448731261245235403373438438880722369989572555616348437739370046710047557818917966104502084193157416354094507111230049500885299347163344895557071589171618261609142773936071485691778592009716127447669691814796235653046152451154938275278158312931734773795757746521209193808005339593009776481035241632174867212323168762061549131843094331575576330542353616536216895658424317926744576711932820965822932570376801028293075138412923316190464223450932533554880256653863699863742670326902045868748736312855943932192837556056367829138392396392217575343635790336122635606646684386701114764459324880297544808276775306502811042067949422209931179141037275236426783733084620137678777814152188200604736714819784836246733465438611790349261018716777058829171339069251357978548744495467151514078975538358797763950842367495800551358580980958062025323235447823938583545253122884709956749721129515301494756343970245739082916594276925145820146375662523328940369271751599677058807340581053266766948126664789181415412902119639454401530476117258789498384920253269884927806189526603267339940378761112836771615074230545220137011155249387662358166513721545952916768842461500116396650782702222600468716217661554014465194139923650037228582611699500078107255761354531588786614863664063633572419821734856040025996423418263527777030425716539024123587826087305307997424727429571498252841961713852698007430517907866955165552044837853741605271062811806174230299767434534189974825809036564419447890934344284490678548697125024596114725323225894306149331232293181704720237575326794014474591366666038604248297045843939193752961272112857524844443220392596779949670240294010995676430636995186713527765008954403063114844474780195634354314238810330178358871584211723059233214591426167273969189051502636503036531564352955300930394283126575792415369990844788911039762052842050800883537893740145934588657615675212056261628923682075075473991694805227017808721216594337684300991072607562279768335391647293342712187533826877870621731672762061496778922114477299767088308806026852526021837615957723821207712461070944307986761905887787245044660548335634034425286780138028197798225902850630800186401868495725711840347431248612312771664593403394203649812106570796452054786897441364660234123684528638924060570140963627543043294874906743377687472670567772033692309903247465242121075126343364197241133628417164110437220124998277287938680758649854926726297569447433190285919323081219170024347326542698593620534847216888242034310517647661754593806284747917221487955173396050308467921775535882126417353460281797077321428868958555005032071313097671098799808688482877775751300983568654124796193129948423445306593175846612578565247687303658801783509027214655114507468209145469454558914256922057016932321472396659398611517016443329374021131531643102007183858360603321107175790797006671331519942713563862165173274397081237858365714088097022755170512428342425461604028661213353158391011661078820625290269466556448497237623174429004818412601292178356353057869299422748857373000346475907469535974696403196218428969063469060398253806239202106781160554593507358278843849179981920774790656187076050696334223062387655408765021576015523593026659605609094763211981989687848836376627859287546281642057734282963140996464228085949493743655130021460621289387828168410951915933403514766544742626605468974012726471105769031570904221535294091304073810345372444370097541443840083857062428571593373802438300092608710780360016572834026094867351506508217705974483728615309190135304860985895854706134305438501641258193485673544758920929124873772578045086724123297790723193658922338668105334216817505552491482061120743353307121370357375361766012270913709601157762251712195552127595700193013525516854721181143519465157743953595765435554914087882334581391406472592663154173124059210484139706132890464107911494699697330529414870981568962848005828562071024709481417167680750104036813980765738295097511691003946130103020457135136561158180118552226790964750449607747512337580000264423714335799369455083300488825818095373614616842622301044578486825885925714098360719831514125103742027401275973653122180156521014093763827264118612109434682891470423890389426859185893197275585613507087670921130948531130540449113623504524596384945910145759131333550808585166907874044503461640450150372449368150932127518721894276189261260741922938525279849042652477279781072520457990498243291919085232801806364900251425960646820216359486642282621137705464284417205793478076740716272423198028624415170359418477608648445749970548430265557197821976792663185414016674492434473194079792361209984553493708347662744285107712090585476479936620358138387897560480781493973221523969495336545766317783067981093348415434524324260622101519268413365722578287538817937796153160013041777024660424215521303791074022340011878251417841577825663466628093305268780582155018155937355989507657683700362776892189607561211009580992586987960488354791334993101187077254838341374310809057503721766492370059881267414862893882910664058652793199326322219142830139759080543314107026590410094703047583020320397303747112155358087311485032073352777488581200579154822075421270424279177667021505135597031001787653090731291178131709361904663382529160475194516511338127905039586234177721150989799916865745796456416944406736886803539071131718583514595241002085391686949075784954859952084457024503037134145543511992654968991679711212897491298254431307068267316951103484476212715016248381604882969013431522126810626977499500930879511902538889353478947675401641412227534988593852535492421234509202666430707080856250022557378987774372729269646184688476827065665121444741585768180100413296496734423220738357151669015473338094165695709817838976667976600612230736131403802901438846203813736013079191618995535764124023824857532074276779219304443900870979906177266429305552535123060163541941607418633991120779812935385901418624682979841249549652248739228119192953687394026635234179532670379502121287599645111457376473732578153340348695401670917641426625212458895326431950468027591951677459932946336573645507603621541525868539590786917925467870080158590432046482134561962732686617920121013945538467652177993964561267370240142777549359172502597639205380087559643732565002237197451372242923725906096185850386877167929104032995290937777894433770148113292854780888013905665699807554336431559493597845821306259454843164810891692371880381934430403155912086781483137579557170290592504509496371734456923221495593244546265605724043136315651833608747173805019716125753128102850276500577583494156545182349561691127168190632445776064895366464875253328766982763832139920798839160786281659664683056919210389036185972314680625169141329899320691735030123352354207361280334591165045671590388425654551009831869902704684919358941299357455689312823309807920401554377847152005654755230619819448882732999604967309220365127888842310171495608908950967304620717570607868823999758062035805215416296431629882167913433660287379610429428308459439049841072201146327562446231353480013748266470548985163815139939358764834435633814758173477488727455320361669047591008106996036561312051697016552426409116211155734552115609963285088893878843017551109849871944915289367471186513412549829282229246357247494284612654001044057979946333039546283642115194047064346998693218936743475592379524185526387969364415783155975040764472626623561474188007029881712729849723495396583889896690384658267194898511404894254597435625411412780825385118193740115733965253692640692909337498296660312386257722465442050620661717815813622260292766977773121927097325241603656494504494595901476408661301460907593477459817008813495282101428352773842224187608193210019613783207957531620614964280647528779404728698904302653079449387037938040174653558396015303098916756881905784408393118604219275943969187846578425550689736025450268232183443438249031474277055234752556844814034517936477879094593223621408429009401519678996012313463293892584721596402965700983393261913029855720847317909572418098636587287978491961860503370648854676567448286277787213003882751824948633304610617765036130250596964713824816045044017044237210379339975136538348769766233716625398796838682597154222919585564251425755275681041991007488713276775878763418946555961050135604508999740977253192558597714325328288012491142053001456581945298622148342259487881718465377617154619851874729968038679080431566705381897298057635555373463611283533560095836439022247654328256408634961362478173517155017035949892602997458471568216250117426654150049930870832289825745936077858299311078020989900560673594927703371717338732390637473263727242164355235363099340222759819094889546773363570447855045149560628049553153086481061003409733564583688475416924374236620489481917137547574987169176639032477786449368409636970873313046725062672987354856312285581534348489478556342748451749643770306546037344209012778005880428918552572655627582985341054615446983894739858102365184613746856074224622567657687915589958307014089123217543754624505999166265774672507123017767570431710980462931214550319795523130828950058204061804352834286508430209973414857378387224001000185679893084302302972717487175267294507151879388538267326975882173685687219684973886752907362306258465252099606302251994927555821143205105631913876143652986460849416419911427304161496352493599981777157448897143492255457084744189212277860729003019119204074642391735441449497778146082802785584433307781103489110856201336512507141227850174375878161174846067727023041149935798980974539979069973280356507087044519481529520687767522425956371018366424913352680754858014982411531280300929644822401089439966454419077840658126249823028894670311467673714559248586122897297614166186097811369753385998703570863125607026924793291144067741049318576802702498167612844062593352162033717053887772104101602180426489921785079582858295943722922572774053810733968675494315506274972784228110445724866801553241056758766592124694944837794217993645364476291829676117643443625089126190492639108247796017024237082778735229293620381754523462778618294268731333648301237902342730030743361995916517546421890555607789103645101337878170079812173742293180506144225493618295566189363735515949104348434578593958946024615085639594885724340233042091690645582336605546911592720720479034104199112066751256656625713713985825527465410305523043551129294849930304806296506196163486668729740073667392425386420143945725538711355571531235885878252565439908519194916222946224260887186204932894210991131808481396582627853351990451942074004092954149220579864096070991431620441651089865044606630451483567864682504376899994955987175187572264969986065560929308506920684924441763081007864920621490660368002849987183672784649347891834840097017244973981138793187567238012341088355645351851779176917647688670384002464511575622102789252048477677884596228207299486957001190059575688202605494507754272355894950171612747294529403969019359354855241564588128403551925232123866753531281333116784896252470541127656759491375313497989710949378945896711175385268263996406575087754792313887270808945495910193118262024756144691310859258054975204419876667456438972020832135506183247937688507247067503711665440737601860072009091057576665071719658227652754997528218721218573495455182204318661193959694120967219536960068682961347418414788946996229788502101641112153678932317356268836747253691055621396123542453598284687660686185082915130288930372160458110908022329657008706913202670164954781110296589270847267355961547962887807789748191875132029492632109864285992278589792148003502248275407083178120434497064255509181551795011045715475211181263077143685647764445097629580843817076467631560095480194786454994311290727942142695418656927994883678433441298301301903674430276831903343492621531701308816296639813959465548674145778084343853674542214458821700277215419200204817484615557182022158575004338912982351528661185741769242159684491756796728175091619460993921674562437669413764702987986428076020398400116295752897685461910547693659047262517001845554098548183690837176866550399886867393125705077174663550047550227862014091470627798467797285331571727733615491282589654102831514701673315098409364144244554303756109352368687447460231876050548022569787960288102218493644016799831031275852961353584925606019665424707363992180456237876608459284469903527092776429514886346704232916508021319723728638220485858701128581352197670888264373648161211978844613045381050197796985495335191720221101988115487434930402569405807461466565350307020992193243205272226297101090193243576997862732374669472410752105177430955797202157182880892731139050171294787072004484853330370679075653345298384347039060272804966506098795458322143195057919960300379606635297757824770222880690131962376098266295603622522765429786638367018959188907179951835774651947965454203257208221616026608091457378489933665130867928733871281339975846502303458774889790266924908699987599833992441099117873794124158301132162191099387417938029820595806160972661433953178858118042349418377590042251459982857193690851676994446198371020113477665786049046591097964525783437050188464160258399166458478336243978188703237361088686984078619742346866315477775500864848490907563481131070113034928709437475199165508725347782518576979499827853315782970565723215841258830812254987218980629036778523133730676751184085147001838336347191672756217819218854011367061875302734417559687549188543658317354257349451947509552865604177400126777363446978884612505750086487876064708287918208502012967025930255371348135471864259383368489261663084157176796068504142248774487655594422839428466561609483755402994569713306269833978244494243615048607451097334901418392261340323568693190862481816299447452611531556012157731539758443857606116966076041501607061148199193308951501117517038756084571929646691505546566769570986346542194746304316176374110316842652858442430943729640175683322893836698489633596453178597702140514088425815813738726632679653264659945455029984952804010359470255709530349313744491522165982450287534697900334884992271350704803828458669971671568572754472410895212657380872590806216300683159564985689275794246665688422685386455871411476681640045353803016622147191186488636808318698352741671124758150770086132068791659702905763472784454115986166327804441270465398182829050246511429552376447644401539890174271189703392752156199931870916969680499336041096300241287809881072600799326479067452981948044677935100478993769172946645532665011029540616389008930381055080129380574206497353840326920863606875696115150704000066255697637182359079485642533867112322348267509606623246595930763392711886115024523024021059540614251088343327671913156117778033899462077336812013152441132751728111869678066499466378778707189934450914743751685967053887068242596297735880040518577257531877152694267625502960439217015509733799068609421333468620983664120196072156371776010367255682903226070973995193001166263742823617769833286015052698043472111206508983739848637628727669737895000667680532308253987695823314085272968914314983213235363197053627499823859912041769573200554923532989739266144182918318220391025738534451753199645531828910982293510247108505216685451519976451569915990948092697012884565685180390568461193299394461855043534329204507220222094789413736335598250494052826361523033973775085793524667887545570021699023340227228309039723081840661652255526753251320608992368879953452031635182230580624500156481771785244299302212547925476808442468338663533466800127686514105752304724805962027142155653071279159911763033709567965559716990913499183859497170394080728312764503690145025920650059770603974549572327727528677446419407701562094722041791512606940704871060152562133345955268705828969941157261740858274014225552199401979195630952667442355898116672400057418728014210392074046834412514544256482247890275603642493605040899945269624622865388281717130031380567160021503971019451551312621610397776224764224526969726871934153144739558789456404332893118698720498073191325638894307605651779207534824058059715266729336076391175599673334584845716148314144568133258903006474256017611094661328728144131197811677840701655072854218616775443781510313030388913872334509345780216496728862296067127459263098361825560673959005643328477800818262349327084194889027754002308210628793449630202652532095458583320799685207236916763886146256291344320421301093944964461363802892872680748090248282665984830711718874382676571566852313788817111827923209612185552356612631395924178660247324420515220711016221925573343155173311757636930309339485691631461760897785467663038311058670367805854076153573581573435862609431357602939404346582564109159759837029632280314634291680950441098215555359012244708582996794810464387711748925115874168630709363574968267516836686483401611898493696581172184764114674095889470248180832930254533322356308103900158837973529858652221719582600634212116408071629457667016512401121523426971205518125582561252798138362022356012148418383522141671356069637457168088072860732402534108401828785672015583509223663223426319815937931537089173197042238317923346814822241490311295018286993717912658126636200171876688254201453787264880120655518746064109519794768627429721972334345643421784108164802626812300906762112646449117119635179995142949317258778518851907325221663793311493151616576898585384552350995399678599712434593218065640540196774338037989721281900967781386766039257898617218034618043726834388710539222444421407010001248400917214568355594644586564573156032284036634765559646765840690635559070629979225126558022294654628623641304722495198617978987696290642770124224347393943011878103667469969098094430788524624744987204990184031152801945223217102269834236835490154275279358801396965016867564881895888382067145078301789860951911926524842329333964674991100773645597821103412931430383350195327398282300122555266884259066584269265593304615989036915048227409779983552878734286689276410898596267827732545118354596237707681095187389397428848123485780511294033744922806548073292199499133246431414136194791001529139891883717294302441915475425949573637231682698291160597709815584958647020171393806420829169553423522973026536579079175549032372950262294016877038128285853303759274604132523912454908131592879720755467849187636019068771233598375784858323754758304012586714618388079477568719144524452846068175103486694074352575331447874980267325223163016528178542307757095288228977867074084212434104174047482183873021269539664194511796152078968917984939274241609163478379874103147699487744374568112166680917012618583687667981116889223178976113174210454439226325397002778455289065164714329114907402396853379631071281508650171470007489168532618057741157482592034656952450584579744492620709637822320164352777772234716887636932151152908020624254047076102788032834191586611750080501591363634297415979840755353454429819895245310201379231618391201349508119904918809507914122344511030862832994631729186646116809951030145289958374254329174449470311698446993833823989015332820096555043871579404436402547640238325132453395102496258960138808359444734787873721453472899278605011085079969224914929156330530330029290869452840037911498119062108322341000190757114499648043790043929793755873404848017049572766387231272769922846974124080760211665925513502296714182386266766614969659593776718196376834641947339087765243298549274268257323976733450944621344049535956204016034785021358084485591873525738196454723755276327958331434371675061067978518580430702030641268019425118062447546877026759100215898128021516293395948355149847331069837730407678055806540550539834028141676364658646469263629121716562205042933661956104713794439444307210667467675145027151422743582533724009032826408773930637821896790324167235405724552516335096578577919804636741541759668920909487600021541263232554716883999510580119870393883598929910596063713318286853167225172018537916585920022385897838703356791291143939234892203906149051594557110955753262204125005278884995046335450013105417676333744044932917298672986126327913988006645900902519275547328700219265588993967354712803488624678521623847922900394424693714808486331113657458452399511519495116474188858404239208298588371708540445705119907025535444053461220367682213755116736853374239701235014135947864934129682168746273566722993801974344941107130926151724383747372995364431811558064884554368808580820089505479253906134161764431885789837398342910188238181934283196257896736321602481690170372000870739638835342238715929589613605916129475861434056723528401631914165031055260691298726993541513222433327737199226315890717770006021087512080440751569191882910118016832747688234207631300720890859065224367680252052053139402767764503417975763732065963479442335770984871298869709632144902619067676589832913598703340473712300090731850811737200440028203476599149196723117083756789780348563895191518255895476938133260112571810018649763085867289857658565146554722047977714844582864959169552951730779169802667554673839126676051900388718585454820933518361551420054974713860488889854707448846204201741736406995367093119989341868134990568634325133954889682756061785965388079055992893763108174306158746064945796720885542852134765381659422718508614289722968813182898068338347011906720381526381269294304204834207258463729800315791217653196505991382638555609748029605093494009012486301338106135109431681891238737983719839482160016877699653287332918430342295911623329750198708745538553928262447817607257247598898412853301183535950953992596278603385497398331980326811036243811343921633757139425744273144948802389660898439223575492573639006509487024743706079516886810656131447710618788601409427981725088701461749511076254998290483569956600447424516107357629959984632079850944556040778338576256403858898231529735716488576038688957924392134244511905780991099699620048710904336691295934865023702268635515921525550058675943664681992378349626539651614584104833929826645302815084432090429311973889360466485907717029821933278198778171798933028292499751295679829298041308985191315039790862324043603203143315489827298231854377888749796909102598267452414211088806282966891255527094301671147803326088719025460502282403740634496616924524688559506109070728542176261977691304668612298814174021509606857678720400939072687106830567420815936267730612519232701364000221943832249153193540430220153691653317228216817306318117885145875786663921949311459048567807966386550541638228604176329526373996904553280422474338500819545498197191846620612508334137079084532146034322345578233400344408485289903589816237468013693635872882165009726489065932218545982349500120010184115102635664436397251391653956970878286940809993315985818050580056379615660231197448180091575839504074894436981860963572199475989868589412608149958568640125544998070637921460053329978949502993821180752594510062004596851743418743380558522131428812191603700585222532565083843614535522108007650663033581316350551340918138938017303455174701089789830497548702883411250497424124511560288224804502993971197295504706759513301825292519463112929440583563356387070105970687993590722961365253307150361052270537839475354139533195081205723597353434517480600846817804507770902440191320232578086923394634584514047308105337663364144124952096353519189910892737868056689895821152926489146720437536013420194122536170367889419240444167482727315072767683718946571186884139570577604337693270198497327383940831968806782810950698444924399917201948688909429252078633667686188544139178613287266718653609987742502361767799090452472584981018289671270350875501279182311252832770172466609694419189203387020484525836643413842349354312742927297768740237338901271989124097082320196167242787799131038591547256001321396819338789485820461029063341085006677246760908910829939968048980048474519544807312915351197286415664658603041414942565870676700693248903470614926926388621093125640036632635090374094538219024427485833688058404808245378978232509367507014217776222732764471204807917749113845179366679968515521433808674151097806018917577216678271949233176957619881928126327132104219462939134966693198703423025573034138828916396319869829401354753506839024354571921272080612107993803200936589927108920429394553595595938289554844738360464128403683029110743793749120280300272296758759897526776988801762876162866764899530101917839218516554736889629083558697528514613444763637039327295863141609970617811749189579916045534071767913337832247396626456232676035405090324171158483061474281723666909730456446569438777841315092745418953632329429441797816788747634907857188244408001449302603852903072846275185169408691662273979030357538155626536224348353555430848439188769116770810650995538026482066786380643251600296907185512093210826355402747553354888049057156971120065187177562045665488269507518940193576434497491068416165253446561306053148519712780448005499319273816257778577708942512649449307571405295714407474375967648754895793491776183070096543334838947975110276525242236641696822795257043169248857289819978395729334277513057069403147805980040524819594476682374446233918554761734511855154998993589296800184118297406641179919795599234875179526457331273557126343712678919547595470481041724516993326726003422600654549258480856068805993734676567509895661465732441914187466628215590506671371906826176985308789365706138325587351367359645798526817488598390942549226523225316530715396271336573265953235788804761523404777868303981066624010288951656651037369870210657273992191541895724644868605834632833370345366734432831081085438057281351689361720124890209555187472717337350331477764974012849856432865237145720932999056512959234041466737796422318489365641028852335584383137363362776954173019126060062428993779345619197633956851040710963297951006526167617446494264442153354391865575768161415233116373965335166740510452520748455382269379685032420134077975072505657021547161539922995788797489629390567971757875914359061441505957965028219886135576798388571622928044256818932635553411802838562346361215057226599954472632169342135189181514542483547410161668966694911366087605853860774494604485371405793009730323298932765849446470542184033281207015947438257886559353874395127426913853601058361163452031372184844491270353072002772931382909818793126732778326208666281421069095630185410521924992717205210430672997418562470716240587102849002475623834923587537100387961877779361242993739644989389650970154486785257149078798727871561966655455676075249727486658550907958757209911280155609912320245679314519422195964850825955144557366524438231628147986842967389698787599828716635204818122312971564813623109731410260200126375973554883498938840844916216131569968353860793350649097378629904932903674742923861105192796567104128382886390057159908837712472739175010228070042728498183586682361913027295588298777232353077832416461535352962856623664788355000089122800130121784660070371413792955618678335189871626773150636604645235242106622291768377635820901108979746541439529611779828218662216535722888598046632128756016076840057815722001286174657141038939673472115070423527368181641067441155725843023983882605229411809728944428691213214219805807677600893880107916699206791613307760969390862983494551270083012657494775392228349415354199660916242701067069900837851935250145604528669262019397417386641196319072634737714043629104594511937295658538635242160123858840137653702813781130426180088668757260188613043391651629556430212909795252021601082978343506546680976384141537309319936109949901547803849388274032569917660739240972623762796102727696079989636960181514131860660364186164704107127022926611427359210974943703417135483635812774176104213752758205877830415531400818423752942951528033773982101523885908340374775789377120574029855559057598041380095444076450229723653225676213218634582711565569888835822710320260811539720812323694734219170295902893703481038101644784240496891077994981962591978171446589852195917729882283596247438903749851722368963327233999180937598405207295696966309877904162770249019787114839514377299033495127674723978645892406271118785412210882378100845092404726259688990246946168007528372243685858440285940043568548416285179759748035225559995887201968357074214758625714294771818308492783459059242246467138092473254852066132244691963521115753697720569215903165360597776717227593828673542655149793152368455202051736380743306214541254724939973949114491764748137094749852634715077958045268881242766746441323142158549386265939792137750526210534257901739229654599100217627004766768239084275127304291981389725102544916919248383851712002605279468404664031061440780328103053503100818210487436962360867486389375019724678274113201884062336993202815463471813556786898998659051494506753033052314554204776725686851191313884700103374755730591836373431750366587970686917596610907538459426976031691342455394767282871643566345726758093477721934470682935768086999532084736170272811213514246251491932774608964435532276776408219086627157563747167953976723337282007080330222033911186262880975266278573757788876344949270737339414113410225437697092920993082837260056169254477665350120487259028062550233337296085944148853143173882399523397347449736081191537727738149863884151635961889066286028872004448300677243528759185671975291860253864464684657320964479300436868989359148783877684285149187901847316808291126150789149260877772598506787957314059483223644320316612191484510575177345318019684517511354995948912351385259968181842953923212686288740959307570265077592871697856902934135156814436250582279056159111434485708973840240193777288355199429656445947001926268474038334690656527961197966331775846051336487336268878474167286808320507187176413026594466785177158432633586315284936421233913427791215264007942570826993160330648697216350874096547661659723148753160842922718283448416841365662901083463277313688984877369055001210847765054629615779863196065762800742206853874356378204965332745336100201652337770580740235309586534120633001435092173640990303194878653654937219956735214387677971629000815372782912113274431419172517494827306445052012549197426979552985316892987271431596400997332202809957799434750678838602625840481661109733194456859850046710943012991554094423396925267772626963706087360168850606828420567726647747765883270513620082556254172224575039536596990760584781047463854838029088912608943352879658963224960520337154319268768996570908816046499276155261989491615583968545854038226636698934419667903229979520325987672015704608012753916345286643983414530466264535233025473841864585994203378350932960933396186905329420267924642845430505152356395070824307154804473521089499550233341673065483732698857033967126205058607411430581164086116746228300664833169617706788507264616008877861723733211468533749662348914382511380695965218450168902146166246824111606058939328118602397979157345430803329278614398113741700837258475416027120970643230228633035603076144019464577118356588320437366607420427929933123228810566763377677803885393857062351220618590758378480093647614396833635509562134812552949546140962159001736133438322224191673923833767742224558539883048120986475798374450275723048140194532467189392784412625874225945372965969694970259930931353054107214171958580243928464927068277537174461296795293874567957352455195705011397962309336669661919832146564789990793387369479922227818909664943821304188389720964385623599108709658604064878669789163574594258780850966260706088581668108239198502238424987881121374222747077968141805573312102252028655747186820673364723804485920255773560797009627137533730678606916209828437094858946015848498384045070935032236497366252074590948375884916107528852990843347350536931459731066921595950375067687661834024455691230252668744868462345326315301103468184457923668176310284416090132972111265409994664761891932549243780842764308075550619708092437895726302657814994755620621456259474050485600571885974216793899499271075377757476481968671362781621322883280609295003534070877807228302099890044861320412122473213237144246700331925783064765517042908364157710343270170280411944581016813148283934289249924654773073853341910135279612383257955531650656859830897121943653938045133921062085829680080740704251385832493500330059228574473780868982043815899538322629015615006310847395503439337990138950172002474413994238642961392701708250130641630522679874670335081693895591881856218798164480466821675297011312538951380646778283334150359677959055852349630831419191974235403500386610642694655598706170225398512605740472996386886947188361762839832297406652664307932165690547254440291293514239571503494857736712382232022221182160675778579324794867567231341665072172564572905329339657774462294488195506375900023452485793595925768774293081691512055734316957060296227192927396186906114679168724137329855300049345007666292418565542096013634741236689768438022338216288374366595452277184385856911669015512650982724062674564754045407476805503730834585908176891815741516064656397448195979391313787092919182616869935552188118507523951460224019629520027143441440328206314767499739888102032370428743921734887339154933503839101354057293686116940436825161278789472515234732051291856084208224902471207132411706113587582501487225225443877600998325421628142405374407529569296717138573111528314675022286047529806574597591365784103631966645152488740140729579985776792948643196018988780028844325523607528143369074500923457109116981034864942210630081594012243440814588260560277237845995836206927260031850535726224187089229489932254183193274287786838091012683595396956823400749442777811021649192739569193242997039086622592861839183173230757742293929031484120800977861155845980375179718675932190988059178271723188332667534699243823162075473151194103075024362003690426414263465096143100930773507941727623685647544474666892825840343007031456154451865893183922538668690438875413628296412766132178168180877492178660038305778088708929607006701363336502091861056176861156815526297081606196936227400045137348666115221619868586462417126775962397758161428270773497763766710128068691444288395058964805143630064458814164351949675917035506093382627086673795244060264638518551980061434616852283034222653907662543680029815149224220316345768702197076380978009469351790167847230931540448952694035788483669575445968821235226424067344152749783366934563760376430307653931093930931715053463494419207140525861005164532163190286323755640001797837628905644490609617548915627403707234947714190523785137890387391829552001122092615771514521420218976034912886462637693457190911812948483050292800219704900711550201090283770401966562383842928413151674907185438360538326154220463683238112140771720745461930483109812995537256989308695092871423463076979272937155662434027785053391647650613197725051705902779923158259935634086955954378857467367644306182062558729746185536321697876168001753660416381676336070188268040906479547110033515418494584115190082261695415362385557746384743491807747555619320349621457079924122163409087941602798449689674981627913497017619253016297095790622048747939967349980911850911316525431227747138660772026280668076230805578552050049973079521466176633453825063602159523863438794683616971487156248092452790809593702132097242222146621728016044650446328280682516674330807270753320610327788648581719515340628227813889833892838178685192308038724107586866431568366990176561054539088140966333905989916102959616846587594642016495378365663388353637580965270430777543076482984520850459035037694550762478797791280316630979569484321170687020187153726553968047001413677919582371925979914948892032617966333532134024208278603655903883076123738342534535843004951200132736307019242576426464330011896801118572923417462497688110532446789871188229591173188887048862081580829729795909044227004690316077238964559034018527354436095301031241058774656770155712505158133654758437626583371143037916979990487537422127718780877402926675537665954464403789582062378383900476662686385095962002185445592745199788217687753949662571862627545261812459201866254526519543426976017524828412649311240396477282717394317120730906724896419200962703621082484309385972140267502173485432235239705390691619476111632181223066489912979393161007684293498468311430068048801464269617307636371860211896491507363229838931258588572773514212989507738735786630208025005310981887920465278685879755348223909382660592744922219801468527705188192037070632857901460510920674525036014619393971528041892573750520475866348491609687005676209992538084528563057543905996073987205651690987393161091910738210820331485050166338779751103337034382615061560209924164434082463892373576706355608080756066430650316658809564135668528107999709536115934947325177205276864365668689735610970242081196343962994224884461323942242918505103666770283254682352161717553134722595152099137680280468335203794753147576530622777493813518412401594529998941258833436747470430864303852116029395336078688885344560611551138706316434679912485101740179155783660717003467034839398197286787230772045608043925233210881509804787127361285233924509240020297800006961729883546824552840358176265136020499977836463588173975618539694783109447139537499901688684483248214499562822351802621609091384705261779749819838305300084785386146369751980552602154505062433003665596503087935713382769364096286971804997443949131735998676816070060492410561680927315572134091046698129367022243554106344971268819855639281602868766950421174494735101835753489557142808597089593844610843449284330717892450609496921267093161090616502778632758179765671549121251916011757941890526129555223369315273846008143161645790880292256661149987235369820327523791255641892489524002481645508305051325134277295616003493503469805440101235717912924557538141695381742801186219942567230739503121314478551933530607636643379253635752201836758274252057519991920125209265884977416698551475522150242512463878885636006965633695917351454395306146967128992143713145977597708032381273710738488026972907696853360922032433692305044169484493986071673184662122349488868779390055366362591001838319797626712056342896537083719461272081954106903346488641792333376092716905454155881599569641091880771719700857665198253299502164598616601565708416288915063090220005257002813279547685746210488384874713912231250052961777618068653220120327284591080637856014775529910737006546464201332890898536082146784332507274379289528171972942549210596665329909373620227373148934986142426000428139162988744725222127775173780574127078916868799913860880882485654691043406342136219943874699536256707577028567526684389724569788696103799377949797214745183522230042515254491120954396045927536141460969848649233487350849697175823271588692018114421815958612098565130297435910533575588125203419873277585753098864804749723100369359651278284535986377079711487549984775306413887113775110864604173246723484528859788389968871441931730028646661907680147687009447471500606241072394303954679766249816212757419149545400400639934156608683158304404335687851747659246002441588680064292812963163586886714358410633265143027850721201450938157016314647392322749359647946908388329004140598100069510432779216502673391771246743318313048580352865353391303132514602191913826522305450955268270102390539014334504840298865230281870981761250768763343140827000017402476987220637047876222462062851257817660350712770685253940583211270323021550781037782115225115552755482285522252038441444900347875798806184644457121453787713694401283328912308895412190919807223332338177301989142188333212637972998928801346944720720270306202898701721602514174399409672180472846652642001959480480092657184951643756969901075914910254914243890994496716561339974018416941214672672522104710894740437154651893645732789467967958440974488162385323589251376348295129162175528870106920370155342803491030678195691563756836536855958822574095077421721477446891418856503111291756507243098584840512416470940904797868128429415550253271385534756566269734250593579109757160214468689793863906143846158914066304019485790317330589858672452411363965619861779948448915220311268485584409030090029211116062201933733279388552817091678837391988508476766966483059840662523848363707275400828628563909573840285621319356848870869730242571923496562751632363687881968549190064636210053716227426337613036568459718513381072426455618147666628540902543856056850298259715829416973446380712461589390691557975513385557211342366176861816646592626317601266014964154106275989691211846808993109837964158123131371922492944183757130978836553911049830138862745994896521550887934600721636378831641532235091630346333002416677672654921710203375854249613185367829502065927696863542211909120473989495435969591464984444595701788864738577739848861946958813775837605047238970271605144624202248663290380159601175424962660134076498623754961633524202981881483019859673854621819937569318894932311647733234615220597247129482320941612047271031057234008318574084474737021249551820586202570061715859907915306499188933859687553138916280886475303415065907559326219168820122729883817688397317169971431485526439336477604061338010331332035706718520635824359848282279209865044033288082740702542357865983714539985832305164570008581102650600774119034924586688391904734335017844635337339986145038765785196538508339682757324327092345559137797538138669625118204505179678481630053794558584549311193808705250334738062683305514888947422434436110211475385237790362593234921630837062234869262900904399825994531392705982580824750188173356988746108855842894088868553528737138610029887905102692585364953218156903576040321214611429089068270296766076311206412300286489814275574057129115014362679949544988802464643892006468821598737318223906404212275901592662857685963393919695854193853525728842412238923969765082852257771580741980382266315782881085410513234418753029292959008642690748763841343256505671305942731684010349073960658492446195071533238138419802279271415554705365735975271737719175206150875759987689034261733607892430806937451958266364091989435993211114499693122503744458608444064356410107295244695445391772564691864493753142496453395637696313687288508975638931360938752562073226867859455554195967413003116223942046838512608631002232599602420495715377869825817418004187333447834917741037028149217502005830187355331918848729809305065941276400880714675840125709377511176184187245695177745280359353364316649245840900089977933240173109395456686498556149173804511450074111480851181744032963765089934687705834695139845985128505077061042879731697943618950989364644346211597805098602704762078240499914931849412287941362727445230534188752672871151332058569530088065752998797532763698531192886891790730376280963235910328139886389819720950199502461921536316233236694418142239687130255503336550613866226666355237056368247375550698673415994587213047810418758649504497430368626830005162608975940559139665386476103950467511539262549196479714373596928730009114022916066924647478832601720572869226602491820290275439014002565297496351115722585759453588726545670232494716557948721192745551687142078267711806912697432303541963866706144902151190897766525727424510877238160435637899768285535567545835997022629680736767513763819375387457645314615555772926188220861858064018950155557296328210876036316678334924587014406579422248908806165620484545307074346947742291140601792226073094133101024772561964079202243738292600003347876754853133541511852462004048824536341983984105601162075456135110544428142914022996254104919169366640212927632443385630182760147291376447899581215289378918053461069259484641147162167316451695796660690814069732877557222532228433283830214720629060611642713601363047518202584253008919539364726208555595413247379593139110687014136523764284526227844299837289519243411635629934829019051849731753312503389489204885302895012758413168095747116330813476406978169209086621426709946605657059413384556194684073782168426575040304816685637742184744925216470057441468068942707023768022482239365860826610779928647188709629445918040041854107015453920252947799100673548607006441314738813324152298466065278615936652555745893062861890263591273321838071715762538846362212732403578680434643668653614438276348257257119854242232950080828958924528286671197727106963249969912392170081945504564748603170932320255219159238322076463577280486938925106855714821070910842841881066631457129657137336981323145877167150359043002587024212257743704764851665609658567777779925422094992526384099080556696868461539481087550696637992237012139288594978044628146778634856296836626729550601100722839730942512806543330281392931045065458089532331720494302280618524839756339778839603455699813734888086236899298739882311149099274089168763344467035285813661644663092272331523573136055156075876363774504681679980419790505649124554063765222729977872322079179761520598538997629543758674046543419569983546385147390192294538247543704912660552262701496560440891592545223323034085629269132877559687366124743267630967165095134013804172071653391495612353169769996826845699091879177890637425101964211807861884810444478456096108906742771859565541753954715998961109062812327823380935968252278787281330469727742618937691097784882899042235116695955545228392013022822503967216071664565482433730779352635616806412867433552847775979475446741122775862994340954096501597600703295266243367056445338013613756468396927935722742369100330177073269256988606918719675792108048824749974777262493240299626747118479806768942815262959922339388901466781918876966335869245014317572460115477086833972517546730125141255685580096313977413373506766940536280636446456510524688331808595664006158694559835894569575248795217030226423321611507184362841576708970451736472625128066360238749533761962504550182621103216271548727384793127193848761017026219671582138261135008789166177928901492773316253163604937480518321934287729461738205609690626607965120618311775082111469999460504425956687330701242419318011815260339924085858312498744004087548794800870040960016590541177204327755746910714630934081819941791854497813963500264041535289454546935334182803763880509090113836415349520190853085616625341280299316582441825225419007988989840907124950482544950677747124867766345196619379607998087327458859428123559816345286261847374346397917424535726121028467657033114221016677253198983813181968884935942378069373316176567368730390370027122707415429098079519284615843444236731636258829107971556667692974847000285686082011661249554444916345627973285224568742747246960930235123458849091405791598969759110842864637485002583124028659678174975807572999498070175534178408205528874133437691339061866010302055510578604764629603087649954192734963462519416679485180537671510437441101022221920371796734235485450471392794286594031275472749472830142581597244200744461457376978605503363891031459758769332520452394905833484150846209191529059568813834638285380372733147924904158691967674086413387621967061804348291508618118617078320099358171276230354750347797274887825042491060110207312866483724849922317058012928453868276370737540210966240427629728498063268965802136899224485429783062495792895056298413658228965885460782226585401918571030848683864349585118592233778348131131323373190014630127677313158963316320227644882473740967677645970673533871221548002231493747991552205200195253987931044914196031762708632843506061282315777222345979477202010692436049998110430036553756233755063717268111953349500026705281232827421999949465051137122788001879618369219248014822077072733016159273878916618144549692786523219092441163857452381244071373719007899742190199677140064569327393054278509755802346229851379424894150100988974899793660946382721121111756097981435651536667396777369455457464960382101769300652721922296090265281042451456395891174900071045971142485444368509923519377034183124601694260802988692681576447487824333577761683165463106562359077785251633127816912369142710223734984533324323022202119885787818212381026073308943174172893138354511785776775096430589178824969016383831800558587629038311146353073726072649552605647710177540028316828743222192966431782683751180244447195479606368133873563858212817980893771697152289781211006125946579301134588748254367109862075960614368183415077691033912499867964798279902774464276246652359344333921391598486664430990312097592344605938044473571937667826123177873430511746847987896141114205154442898364488311287625799854858207646719817747365726036107653276086324188765399971053478175193848665120024618452606227279340223801691378844990024989862487524245809472164082895815120795840643124145327796823382058377677813719402343164274187147470636345287079318804838026305851193811765394232428344041762607142997387667922956599277650812162679635407061881093083598428143465876878523829089445852024391160455824700642869052059946369164051105997355905198096374713356337563583892964435276213956950491538756186430544833524536435189792820043053812380170680370042868410427526659914112848228643995789142350531659719410450730418825685740950579743018979959607181810084385397668636206138446578543972911473041676797143416687930548166120754319277260529110195821068578379630561368102032646510141549238681154856478209720903985680646227008561704387034605607653066321548540912217275198329795678468096449359144115901737551722799367007359092654790874077545477564054418687138348343421867579323036717538168804948965543095287420314854825351546023210302763635639786676695135162643614960535939389259758877337366272423531370474131978906209914318929381567625983073646583839890274879721424049107462150817306450638640158305124276390857812354295930444445954959307149610303619880035962543816705804105482689986020913184016174970702264829592269664085285831641149103251971461758935485360328625703376029499897178015119842448853609114099759469581981898983079532800996657346483039678416906276089178831821575113571228272991630422432575348599186365489475921243368224956744433745307845203301042568899098994729290643007653285484936522092549734414399141736787354378729932437264226090084348103689333769168950761912627784482342834403129072509197865404314822422418104935866644350754494501532175892360047261982654620236707378086596062077842619066986262887151775461470512607831332432572233626443121536264197024567271071933627816812859480320405226091389534284066299500314179380200328965412303009911950563164093770375217820443746544059976986206132083516080195297262264943102248874577156081767598069378581982195675272318858355179223811774042465742506423505374257774603941834315442071950758536412380031077401381179638203499668274165821548079867358368170324464729566922409771425117365169489913290200763603415492295504988277686025811591354991326544476686276575203784817012194133555094628286712037447210149470149945994092160403050918291290578681310549276878115934651263284934622662353477065676388370178492585511838903393608072289353576197863837719876905075227001212729889095624047479341308465652230852395270163958740992708815750952430444948920063584319532633962879042796364704603884531370298606978090080599632426719815652228897668529948908461540334586124595495109852306121003754967287084042608806402726388613206290616320043143409900543116299524315894900328204832269891131789492202671624339986606477685656191151891717251512445059378401864959501438915815060881613426023179724924827163681962912980821771353240635978742178751723511355224607430649365861566816319435526221641365683158547622439651072956386015940420374522008007661672516063591415703356060557678602605440288916835159757715653317823938363103822716880404361178946605059449503902381899774153676448653627507298033216968340082722730724939927944222530857642095348665808263290538114636090701215035550510644183953014364967412981932366803894380485812643531953771903135433650645668544101223661001660579635314589783146510929519702410355507258324743406481140114499196910089330328061412069851429358028871428887187805893670688991521698104064685415681498413472966856630772399813625589664279252164208906194798437195489562021776544355767502695898063348226369448167749345328952194030426986408505187886759345104495901108393059153278403179172719730643025279574683510369087810011874916507041301746443299084951675375481482957266716335883199216967139656564874235019226149327433715383059832363721743162899930973413803974846978992947190745130861055806075577029217360448665748296099067284955624933527486420084903723991588180918594929055495118468467398329180916043602545238751019297018585630600348199904916673650741086123218216441288941840103052220736824272608955513219717805398613034474704221889822578575757059368129948208440284265722200370157898529684562816006970555854129524390307892705184191170218715058473362927966197890595964843077678557630702241568708190190528600343189922285367878999761476109518143961745700412299250948524600313018508284305673458728130654899765963365165146721808109300470396583604205645964723706373255952208055118468997793673191569723149860127863500225035307467817479385275835199798864978297630734840633122659621612889772517189396381648727583619911822478886658710737129215051832855611161557959047995112993712885955793015987559439229615122395598298112410187439333229397066078998522732326490532709406427129885984592475791157661865278509882083143306509772701366713320486066757743493552465514313450686643382456842389792838004847866012520208645934468555626520705585150731637580099695681897340154885158807185252699327133422299969592636322228684216936857644661256252407003411628864152730140809732635716652400079467782124979461672195674312940701845094932417952763440278782307733693556121911438142250290338044138997496823157630151001742310711111176248071748522493440327489040340488540395143607560796286103631978368427726488819499983190273806943389078536440740338317927627366745195503538208624505240979910858586332564884443794238248397496560634993030350480595552778908688446522439296760988672234763908022821529799121217139187135816836607999418493089435238868062740503701616712548858774960358789412538119875233426385855361765839150943664470091165608865548386689020861275836778280926528772616813374337375635559774680161270082528709987997758845186653073799071146466174628028851336818229828793086667794084472011652552707794127168557759579884861180783218454935082448735051199880669613630370600157755004257860056186934471700147255873215064844379927562601910480176052973836506205342860232628675163588842607130503110961775342393653126116596409123462218619414533240239534531240725244868212539094581982267718584494610095172444044793036998697868672963726712838574868074934175704519089605207447911324789872957052896394855387392887583178000388695860891140074458239724224488070151568703481183250500748926059309017655193345641757593530891074104610857570526665190994312668601452053153558071488818945000750937541285768750909869683505407657714388567151133639982974455678769199344487806614797952890771357464628674186076769574862623858082457730316751439816332029181952274655912023046688706953943900564399109378988137636379450944189547242489321304780017579805436910414997886211840372585380155910486606632963649861487783361836556779102979398005073435533601661263777866480302360244035947019184493222304603290779434346441738800982692561275343321785002271717955574232199839424615973586103968937392254526124756780695077309616368595097164689487903666032188309747951278902310757051874923807270253073407046701110228982287674829960096316583070274490636802396694720075363690386907186807113763613370102518600715113553466318509051350649288551554440456149409612195608376679222169941524143011040645706600978375921817547288995552257552711247665110877436893055662737753620337155162037433920271147320257695638551912824533564432406795468743486224815011146409998040630017866800538389033432903116776141118749529706974401678893246906230823081636758355082567488366452031051575013552287726553993214552314461840532216180173287988239575553537896118220691563046971749187869515263746549773779538598008240192574475130693316985614615918786097438390566316507187242509287350346962608799020143167548424598616267167178494222732584012431427294179418521564831690750541183822153063661376761528779753003549957952662648341860088239579681812208576707162689618988568314210054363597932136906002783494528915349668469004833955063388772560261979068529915529425863444654225012021578150300321321364991389149719030536632058368303594530258267905632964617757811299452541858666071720485856843521326040756509361231956017004266533230096253854885702866402120369769373616035624139064075078597550531111404768092057649496791860101894858031804515941499836236591782047821317985162534276994807339441042843800035929778021813190603261660874678880432067149558146502220095865078086840183234456667662489502146217007016078255843438906156465911422504499587087300786515395543051046612760740524226108701133691337927705618138927796261729366905103386355085059818857821278135398656686375519725065849585240671753220335705018956684050857396113489110284603849588878151038675350826641267387710847128019266324527311401272256519153697417202743325314993704334063023638349727462653938714704231889229339465887935621431595616817757330814988549703599358684061153923993643594566429656338622784501838873683285701183505777983398318289160185277249789088703186790340964616100279679433542052246183852623452436826736694893855116915044594029522595875348380522196618200956200826216205900435697305775019228846204916580427520924077763287514577326664998977206590446383425043796203376826316567184811717399439149889417738665002215425789558520528153883955228759970303243093083109295426666339288580515306707463413020573707674530735397210525855145174026930276174847954038638674483568848085495164493213609748773498242560883659917699537905344785581292330065264823538584034368689645495307913654534340967403977714996780567070960134048232111254872793058583551867556022029044856211980798664765276586634060630114741207462772931667926194314089621651267784623411030702285483028920546052814491929727547982297765421482572185610503589180246408926843971979363481358815495168719170747646328489541123658982158539495711873451244583637639728814930337607784616645065626027124565026877635939027366103521970812341470149467092863306261937150622983408386131150318681571562403953964727065206302167030379579000822549318138639092688007103199708916694099272952419175355562477979862487551779229904013406294400949214282846873010136317896965942943498129905085205812562908670393715785552889013121102834318707471770919860957188860865344137689648229891942581349534131744186501718674644566338485341785709057792306979642368952181226893258960700428860276866656457927210295431448867995978795229590890400447364630781919645388614042178115545426060598491376727317287811310541592514265787668619051250912831219947496171589371280340795684766815623919795721492595616887156897196048967919173196004753773419219513819374071021582195668428012087284918317265126262578788619947213023842495061624175625167562776368301585290613991953769752697675017889568423745633677447226092132978540408757164956878298554459673340999505034626686646058578359088177556005666230818988319781628444635087666938847506381356152956059468547168343515781285215235325072358627942419118883038180322225781691032878387777333500951323130982160444267403934617707218404735136776975499778893436947549840261656845193058759878835024370032456364986949013002706156585868577312153764026536955310771506487951924967809753380657513201708612297159641120506293501057073261720474702338400289196760170030855160451382604077843054037133645441390154068772370494614664623566467317044294468266256696315021049987041684002806717606311275066818272971529049664319772424340914382754932035357083713598186781055273837007786296582259050232613821614740992191683563435959374288872682892670564853160856764946233660268548220781481982468990274744451746198051840047765984470811106656092289949075298560879821039739227179607741960362714478670038419855235482446036249362669799147589671106599348999646244191163356875222907665289557453905911077976206481261026547222312769193170363048327664305137439914851455177199768733732653504239599849513606473715787107586065048416521121324454808756718710105078943826272107611601216825328701338265380354005960565064820111251962454773882126055044705951599405306954775602445192612615550903195866818757434501426911428273990786503664492244857558087845088778105998224517959874441057680981468561183585476716011074011851126606536191262350355867855501140199270261283306183437626232489450049663846418696659805134723886659190059815805119980160674203802497249211120252119912226995369745925766799295331153852614051749130982590185525151276961953127503501555121072652499137659078415656048392689691408334147197643248848989432264954446208051342036156721049221791601696867922590750619186101264129678510139745759109554629032662366744447201848787148646188729476329684187661621750412026514096833628537736147210903785714461668564843056671526519203869770012814973768652344910215510096316606494907616522454797894148522999999169149573959341827512202950498097227570209755763887535712063374965821577378619400315683969898299962278738911101874375482747133978860353531819377004307212053217382432771259169129751954232557806078418241624050250326949955265759778971836241650633069740685666513653935134329595144547901129263941804707621440419380685011575555266240560482300507893488488243778804307554835262775574143075350267949579666680747303357404834520647520384856833732778763081895944739548914819467975151480508813571653535082378820916391325133731273316461840930223066605665659307894638328614559026147222795600975709695026088118449161182293992824931690146119599999345148691982308398018369557186603090126937169256519182268602247894345360886804068659263062351478540507575385009861003259909358360286539790960193563638090351084147961312833320625345555346897757688638466431832937511801260144257074007632478238597842730738775758427773907632901532618797683132323520288272660180001833519513812751209892510381672078903475765581600420317274752794533580805960391336788971345223352181799496473712587968349320698031577573245585100871797941722581581865685002898877740529830778683055753021703638171582702688441763389201022604847957569971675849646124292055969062709477949596295867126473313263391882034842632035167812684728460591352297546374489133842249533069288355322942836092751335265441668378859853818928219260078420464274709433058749388985980788024722526598231719387594187672547433236320807601610874851919522141653223736609681255533054999826540338671993027797124488564664941108275211175803026448292879428326993975655801458332055348710966828413212596427227204677343355704695085327012353809432072105822493820014220480573412788489488066697079280371951055490832859020452954260167190882662620811295211252604341497648742950905777443774454281734026958582695911195973092754675010659005729959694137190483134411655309120804864471834193460291496931341796431494672681323659960895731801094824401730236630740658523951982802067179087460269871183011126019648550722232016125218501936134124672980871014220955943641971901033057555445238919378535839911983161447825461084106142720389967535944658678320111099865076200508706724542607578807574925044852748186620687315483213022938570317054134975945386371040600591051415156315865496050563946857250206072290839552742182808155412221371030033178378021201525397728814870076597305053356866407882158986785930992187086615013435484027650872919026221055118110384033170440295683356543941050193879038295316567021764378938226868428251004149731888278736123810914499886754354736950033403466546067894198524679091833859746498684387035432504524325591394374910470860301442176922201777676860359844994183036773213894194924271238758963802752060651298427633443927743853520959053407844688903694042059536685503235565564800790213558291770293814422848130278396301651497306434119055185620336128231546887424667378778584276001427518987154966981500366653362723390188662025778181548500886312083495303916313389011708084927889723622383883620261588568302051172982098377907105814991375330020111735240380142845003842917936615012396993899972581956069605690890537208223215631596255844648771466539093614558724944215111145404768138795891464572904056187614474822014910101939230479234113063212769006502366125268089638660969246824444023908933345213213018016593872530058099586941944431322139140850361772552398527641925697616476796779423345357279670040857681648349637251248257566540175377192660025014770925824129210829936398838443091428430347039554251666402672983849553386856488916412256339123142646631108888157540860811807097220046075300339100625488153653722171452050816508164448219586158979088859884277778255040175735071734250522815294915472420001185808193148131722879721245659194777542318935512130127367995645887428447983254466305213453650942594159122593667431337010221613000077765489180359691106920986312091077933075551965541828030983260518337048502129931296462088451772993403436401190553431469018843155291146731363121032133982541609695826324112187784267902976789887042819355752184045201013732324136624991704483290952071450714040724018125918848119857198156185655698884870986515316003758020494298258189040745473061767889558147250721054691651770520674666388505406271675899056283548695564000567953239190912605066845490795821476114313680995905367890567638331369998453871347517604484389713716517640791390118889730861101274806218372000925010447061553136827150315876915198982122242939192528796904971920151200324687021468639178630272272276945766945179921608893069157282069159965546438954927142701519973866313474548814962728234030346771345896233548081251058673128571146104784641181381098543344545100180646759058439494837966672645768796689828405201191739273113221811170629067870185750136018221920226316810872573653847569993166191023549745927391335307490746921262545659627683259212305148529437783380089402522554963923638901907230761805217576985325790539788285794122145341351229897188408949012207442956379172226118396355412240295862286233166422296656451358354883605825065247147251699856579928132330033403240725917593206450788027791717770694640153214936865495524199350498967452055348343151318784938839749025624913919863461200310613198229993727978146281393918249676126205173841557783147066392469861855774068336798187408608980332872013841368591581955950866872624945924066727399547532436573034264029958998405443235226196354740389037899598657742314058995329876014143272045511660267064953267208971657746684907646910973005827709512348351984442500943710828324576848832367619077419699277778680015967078317461605301568101697178295832505512111124810657786885848490043869561220336478600050671883418493013320293734311119254432284198056021570223373448418375193967689037668201241168585040693322942866809308257261375744693883717267584560281825300227395310498092659273762001402549146218411861701755137816060849612585210387957758940521586781155981387372179980519685999783957965636061053664902280962771498156026091013286700351657094208829508582962977507200000017845429576175674457256772256756124933372799686763432846388989853258338994931161305298721945125266152164510546514703910804606124123780217041521897828547541987546121918747711768269345450957845326824466552872157017068576483315930398661797178249470506640428509100897442904012489014528464709027889026108256076214691156956840702314200058363702859287087900719903050895112636406151580383650778625755807670222118125343303554091813408238576411353838790280920047490895686288108127003058691162753293493605874083228935051577299495631372989651429943197612271333437392320639569634550605686318644409776914747353751293316250023219553177195103408349667495645625414914900337181846989914692375207207466043719967628949838446348792190434073272414042384216831748799095903154125824054686685804269262772515934314551547291357636160741434198886140078194876304326385052573895975264130104514436359101526941361244232156731992605165311125471726601293583301606764096111119758131949427999518367378378782719195879458344540451266821907880990159715041047485241859485566169748160654552147652847458885437718868735229675814382212498640086428950518002451095481697705115941982968413258305387268420015704789692544459618453325744873430842901747861510477895959549716990991450040824448234280317578170538772149754451610062821064517009588206001730403545523943259953670605208554516614367221399505858451141584079378372842205588595327137716288392700342440115059308180148869760449561929161565235571154716425388012562071895912609584436273269801837804017816256189089353964514418383618706212383346649923071017284796364350674179747970281454261713770102949578177537635774864041095790061799457955253108319193662206914913661123163233734458960212658415090890984827334724801544355623732209180371545893182104971433882628992171249767192419546748143015707518015145306425472663600546823955859929517794793952422809596758949440124537288000890882208702024253232976487878390840564262264199490224657320666454769733251013602871805019011579966165546724457258387584147701261465264965610963962511808782716747421460134988869350076746189583788696687557419578867672686463385735297571501674333020705292750399953279840095378298380182812266383725102919896135472870976302875266843687402690154722145704199991410758146628886628343328641867333148535236383596287218489965842492557433458004873240655298777197232229484816133161605112982300353365737412541878908935266543017612113652208218593196744256767822680244946751844568000441393049119550205193136048706186704190730611600269566019712218558915274000453126531961850561065969921227224053883271126891019181763124955580822068271754957539860507306751159639147349744056017407897057725394113659859020786535617833292564947996136202597200605306015363183684059182338121942117357796544019891161246593924615690423709738874317454563272621749224468940107063593568299356531182646386586117304473294743021082464553464784285537766479461787297782123734295100368507866633244404720822345853473397474504725996526565840949923097937979121087756785289722518809308745262764822228434995504403710002762673522055092804830337613316065590761160002617689774171981423509026980184763911802305631945590355984269500222463406060559780764255955845933619729574213818386523695910658457144406445786692642184800922126942459760747761073443765105917912262552052574362584134641177227912110987827824435932226689324325456101540279456754006944510153548273054162241737996796847489741775541156620872565117051782950788645405204942230875137650193037362529999964648585638810843518998720095983953003236049043306516822378255849200899997736167622087742741676343157427787589947286906645791993004243388309192270186166606607258688981910010515985728106957087472461772988734050644662442472618302213761153065270596637864318853194164184634636309402453986188036380918087394275427107887303292275739319537430299855655949886944696159892378727637809556836008177301931076170914700420872603665557292700146204237886686565558670862654810383922847857246290938552690248868375603005245804245716356340887525976600629107556099929566685376462042796021217949379081761087380145891529013090165078518567989549679647162404212594029894010627349449690847266339515893982948160366191958523561652502815309133620697935197041550815868281353974366191268257933864077085591953454083817414459118160460767387660318117704879827299442599556290041543293486746422213396623741794270196510493959773593932067953791750241481057743015178427916597617607381519157696658745035277565036213913324716333190927708921447858806173409785504109309017233086788858064048802266636177760621644860421414659876877956255851844111745611975560930273792515059799712123637672060378339275085534457272339447164541341256081862940516718183581102704698557821156796436887012729039624738921063192448748913121564082634290985693697145779893816720553656085503902398746240652515977879896612169881784797437330734123720022134891345556215455699722638483814658794781598918586484446564259979869257886506924252308046183431263685353014172157058548724888646393308779024333502333119435697342539805765631511592773757042772619006736384307480237027370371447288196652201200437594592848565577573274759972627822482440612591291587996356409194619305394042328228892796068980326823961400651575084466302685952756689290970047354573693550383709291017838322019864349808233451960390775058609012412637119831091181356119002706276887674014462546062546978410920587957002782566248255639905747752032155676735053432402364945628461812551915410231533279008136187108468049241823891225501349603776858724769091250768453009873869224077437062920588310269754405322563917389836140133860049926991507694630145861070738947708052129340044999572782817764705918502807001768754259589328404700011118927142681543693144560937552873127251635495921791825990419217474302909978461948990827164747911381778462799258464396059732609254005542433472842657519936965193819683290656917655649877301471938608151504861236087850053319604852405885210555679785198918519072043318904794406829463978585220414051988317701580140008132055333675778966824568026800042476565300429033688257880575566311730130954797762354461536582188753788389587359072740036061593093697633261504869754788945456682818406184769541825957057453261047420381733194024495584623871060402792167461542818503075338094855059476912674907874875749338081228821303736226366288491582963518797685835911264234098901042075738178696800307657788356940764477914669480813976005918182963049546513655819839237559416276970121008544126941894860096839459362067228557244138813434545915913988768870813403145360282136576339712904312764998385934510233993831212990967420329064188253168001772126507318328534850911452590386576599333661011779043870064426821436971368447895331469569793574674486562900771323822642310444080629145363066856393514248115086154792962555637965884517574323440330613795065698588185867900191289855027795891579948365955906435239210633925246737340273514591214567434474298529248217759096944339941833237090710605189007586753673254951778035987359395853001615301847044974475405530542370900998630776594171111576744338005746203039366894518720732146943293120385751858551305653907428325165243312612342271028489616998386335196620185437613968253422436529144216546822041734374133361004354685485230619429706420479469537119716924467555196436171233192560686331923186922089802423774084110351432401759877835689066324219578107885201277968766059337732194160907794110266928331371946457946316551569854211743421269973654262909641397949728115635760893855521267585447683476317908170486284219844473976855030910359158467484763756869397605354991462562678175936815999349689889920112800695452932593184992389062411191757642019101100125509891067570425062912749235861310048603703024867278685068989929317358334803580920274612527715179980626447608169618723518268626148825089715833352668720992690903493936089846412073317505306340810476650383755752850577742516787499320944118600654699432653574669755089818891282288638274627131471693702700599099520533734718276018807314777306118024339745340280052085570090012342779075134676457908857430789696322944253296556391307111261987815359146305284097908700621207975906795576975769200314325546014086667908805180760398388694658095891260820396707322215473819299975113536699910275252208655513807095555878553164135119697139898821612146894211471057394955681327856561563211969961687447558275489187747850029681141700088697783410249916397806579672857701830724539877479380345135670676654192576367054565866632871798310796189842318054605699650032237268843651811498364095483708035778654726881731670021961663597952858907698528352289876043599608173902001837434236618991816212499322750073148285724726047651106961513157176469532316548557170383215502465886230149704352212819852890894559801810936668975620705200821317062672297698356186426710541482524723859153673464865108232583238274801639636243145639567920556410909568930985976316033138835752551105904038059462506718443364610372103783380926356870999252968989610679759055179988763765430724228526605613867283362697868549468358366517492426244059415945938010388150633257550850103078559139443782548063881584892101075764537037485806115839206187038146132712574312387318667104429403015649568555852178526413791368980653363364235795521333158644526789830077014294679521223033465678934224533506692463796229690453358687713421462089267643482057770960342076595079186674472572876120296481681262973075101024796491108178364835213091751438205895831010792077057261750727368969642289832977125655768097490110228782206759968366064137589622341811704234846213588861625694299793051697973944795455542729649017779733050364775487581404872293232825547707235604642684132286260009536314986015236721105700911874456164128310086470588762902822088956088331704664676516837643678745926954920162843886021387958515140930539065136266846024910602164940303760554012307632917924806578699663036193839141678227120184636386283122136593022390770151553866607958043771793669915999806620774503727813209281453000567735309370738467740987449722092960571220465597923509074330743971165416158074450979727541849537321715434939765889582209323604069870835007754200840050829060227707300031330333395743151365823255347608533835633459867836523735255116803168457483123475382078409954985266262334742010299401122085618881431596686363728224756029685003260022161104715908502372474033404431461774181070337580067711941553114492426561588335169037134994525303652680381221375847643840348833916236979258467463419792218158151763808722214328720599993204668739713591274909126339603272916020021067966904402976991456042016823117850029461429009467295953003029952802044729350247016280149608640614705208002311347200583636758816804251997475907700386881423817631316261548500650223720297282787376257034517413805313037566573428010285904351117015259253866587619579250178277707344478938939184973048839772099609259131034988207748000831279265118981501931131817283737526620674367702579972419227077291345004690971113399928450396243255229117480383624960812839108431359478630270171915148723794796360370465087138221706721072233557493382346067992309307614197092924809489498639685015951240424804955420098166178178026952625148779877689971683303444421662440920983500262930887902959074044012027240183068843069427396168405461820106739415303131117682202093685967514930289332986047784668162969244671174458127919686420472613949592247069328466500993611804297733630769612283641524758363397039944698763395890900457841877689659167714636725722474775412007871929722155472058159272817961769769918473020417331185545233288656424985205882087977792112652771822494465518565570125956864657890830585151461575557628047142435661336736499909065759426326539830617364635199553148046905273694152114739063293266019306427443168562138448575655732737375097040641653682909788232786659228195242251841529691100100357957235375937574022846696386997245172855835028989611105521769712664962474207906653519133870157994185564892078985439460843364907125932641434063315971230569607866138467419757814968927063689497153238232228822590864533077218421809451689948321538888444289096223707248390058757266854436519749459449724113279136846898212614879435478156615457156951427162294017933088645133372541740198507239315877998025368560942203808071874017017777736726697518646066749082845675424736205591795836816729408837291024242865436131234519447148989669471484936011693548635177378539521815027165017830145837620698836669947797614192671951905025186835730157567604235326870711713823206526126912690469051890220672234683918963039106516973763022770403188726337652716273284232209305894475519550979172190015936842301668526439430291254164882718175024311653599159234869237473205079435289488065464498905545648119994301411831805156398406272647792196831645330436491764347775722646169319914218285760185795767546918781688614023745830126428020880741827979056917592899699968830834741044632311798486865340563624080172936243467135858830057077605560368155141869911079543770796572093595564174403264647604015729539685617338383367264755263644827114436721760023062018029292037272327034393557862283634347866068721991071130421641232149888585261786170118978655658905946677509847112223084911475257383423564970929119331795613353644884342431798046856642788426257713352342626778220365771430423660445993769401932668255673280895417367860036819117811751863237592814220084383713937844027663166668907077132526911864666260159057930842525623517932975395413987949920067052993371250995952412223347721616966027315695674404046796761301100086205246402823681300489856366130982450321427235351094703024335345944976196033316051568866302194200186468468072745734792308431235242366215946232129910543969408188511329814008199335543524219819615044022145296768283653457471086734212773409973989915351408472760277136999719539201964737420361964416194012092324757529094516207215952094287814305993863363823932370793532402901574797576666799785464784464983153278254859064952408000833522871734566102726993980572306426509153688526465603990336129367534250051164681886121749982920670202277531747840017049436483576142523064557377579152182127516586031479194076031250522238312825343037534812694884938251065060305904977176079977645229588000954861975219359052207114342374659792808826581516814699648938452105959683779937458843678219956356379697359270307260490806429556522192098591253983534952133361848053586263099070704513462138054589360726327942030714138446589234092224221016644044828682059323752214348723708325925051149397948629504885525957431661222980495119945208963421720553948654571810156978953382669963039116238054565268098798645027065506488561053421919954357227887378877621997785745035464427466420151790845342108920185944237574288010473527460377315355891207411525311845573831055339216572905563346704381593558192589863453788900810235574782065892291333210464504873553533198530253015368657012070222054882378140131570570126386596497233862156213421775382074222773225441661345580450965366583822629336792819472749544046432618933472542165229148080355302174749143955172235297863632764328478199600342036047877652045323544855331878277918167301687716516869670770622528910721856710590040021545442956103082240560907631493510767661641398881795007032679702721596687298182788890872168543355853832829907919807204210225671748758101320863065704212951049860591201503003092746961215343337140230765376060523755992835584136637181922137829908170375610452324100740023408035311660012058535435368340841098759888161356273739190364491489365715742566770450958889742281108204150692338459081826199359588848423408237433831787967054395870613023325256834771035918492200132652141607148228112632375849079608589134670015176727677258246069416612505110308584764421479825574233378721637489388566020888629873603154758273214452300302546120237150354909037246867502017125905320639604671401311515209035272743906838845698911617140827486342024712376814824374573406108655443815855960897332107156439521323381932546614714561556164721906792146611906284748177464442987045592024586823005794109652046517234822013862792043952344843483498218467432389863569617714784097424475975798588962368280244972878350824690969662783107358269649155484214466079008283113778925752185960119283801035317187758344229534329378330330602838302063264915709286047716679188326646157924312189390293986529515640785162733349561267323282559353864631323083420827674582464720988983382238415598946214626431275480331458468739542000388620459249725817585728696934775394733579734086983079257451538859381358308668986404636449899071600227674735948000044810032710617745408227813038088852353600794644428749249010885899764834656045326785635953881068460101828381577117074579207384545692346843336290817671130379012989137455500945956471463026945790929524946136447243424110384923661044782455722007312302629011043590623570632974302317595030139029298818864773960201079021730664681745868525364251777039328617956742781060094916368597830552838034119867052625926900036850415997751160764155175964382204954538206948643764099310469448331381111524401885850428583504596515422003746246511064250025902248280975216827249797858075879679454136531753483721541102267114132352484150803529257837915265555908912787327642904603629876436512050917085563748259682930484517169888328812540756683441028030154350792518939783351970549937269989842678870917510322677014060741102683982314285920755809090113209153667997167894984881895057629969570894316697440196143957670924189179354139974457435379712484392361698227280029127674092966939797477962780254494415046373140913750735264887583371931764342951501056604903437034740906701943886352321146161491759080558478166018032175429643337781464551995374232111336710057002750265639156489528576783013187867393803709322694162204904178561363784650830551990319881452455189938390762811507727378220514599628920986646984858254886663099573653186990047860374030990843206875199677272141043919998045936882956063591519228844624086213678782299854693031152203951197250700043343209070376457480743162288625184399298096289967527436165326718497437517552302707579155707343460861581487986738497773802203239129406189813441354479388778626117395799650855668594818587999469258383145904615912873120147493376892578566337542778147059790285695116895689062977733858358489279423042376727560915116874470709968633358521764625846150450406387685187817764326331277946496169056410666781962215678751519320667726921010145089338546279585199724779135934463185819859873589538800866520777424887342107859434936407267885677164418979968435985986713922194176583589563195366909764924545376335158760529323704401697643906958272165387294229394149780837267336240087402414567981874491349722558053982816483663423694498776789006080159832143736459664319784330400077538725613531203548051406796103824140828775766113548606693161438399411814670765809639741475804933500792170729312991478277007725901963421055788859933249514743288942136757037875281372007462673809908593569417597180642382658092850913996500384621663013118879485803734788525602449803679046492534346581577474852152065222885668568017765112947353764692370312880358366307202332863409479761471576410191018374086025883723990800167340015423461321167584581870526229305818895266983798759351484777772953173046505109415014068129168669961869488803134927507220665554994830258452087503832130364759937827877128831928653964834759900545086723131168878719186746078465238628006391951993592931493027979898216748819038678397174569409188216026825308456902729655087330301268268285545839294977141325909578537320544288909126024403095212122695262595620663670373971027033626519614155743786446767106033049795704711155754226358669362918929614263724014051033631444313204184567810904351268697797522125823176621918349647169698187071288731834992629340595087212988390335844630419677899929648259783881796431250523092724064504763032131388767815529429801732957587942258920441107817825573883168479557141560905342001835318852385840321431504147873615096598111638381474360855681835647142501772332855470018208686999963449959084841694035819090867647331749997146223275263241984210047515647107716511290336801238048871665837264809845341443408877622466902298358177719088138723765852159411463480278036342926339262659677425510008525361418344831335658065703361197744177341939069072620552710322877616413742825412066971667376217097132383368586020554567575610942158475371852795944627317781425374206634727506952193989338299069277464489739266323256672706577053839259372056326327522921696051907125833355187504975942675306910853159608401975859314804423937889526697558786981608050310055790035073516254830682338997104487495301044497878305071826714773556542765006305690144559110915847509103469824724968023369808467942485394542401612228175639540188623868126306097189896236649572347064806604824719260296170762763902144977996385386204330363977645512319977403546057567927076031447681134710452602414666331381120402820997391352982215387302674514803584902841095947630339623637874720403831747206940099339582035295720899032614844314062944233448778620442613094356808289343024364020880823384055342370074771720343163804610418840824672478514431151510292116350992568495567158846661607684227054338814107883215384824412103128738662674241070414303045765059608955682029227025991454474531405233047484181958396846768482774171715603661820984263913829162257179219873871394354579717972211467430046938077458239315150078976290006140471236023027159164448784499262110407269657449139852237788175775103045743356256929694801583705333493131297472479234919300609173800027634902546328010426165436252278671182293317093002798683157323051866876197273990889468787969840250897211439076837391854563119624593153154885929566352347285862572495586079802114088942851672508116405357584757876645978845732934423419762808354579024879697393016962870042877356368851280735035159265219946657356179209572546105730728013965229096090812895247941566741347559893967634774645377931716336360426631880602922540437473811179412499857895219338292123459094163978899505057757126056951874566364089704631928057157599361601798215878856731929053757089077910226599300912347472283085386707765363206480179184942917092151451568444282876649774913930550661141283215451252040356318337643368670572691681410154512566234822859572224633581958782298068330365805409041496243682586353543206802157256818961763317337311404094604444431063159791327232885047834963135278386830665467216196141763154375881273546373694069382532310427851860256155590381427348892183566652316803254471627688843546377949030242445901587815701795392012867376443230437573589750593438150325154153140562293629387269040726504479992546562512430760467738118679151965023396056605880563283261755352684505023998501567175187405360322633809892670008647041652735163212993424880044370476131308732198308297214341618360747554456553328866284611438659110712489381832700740022620233761322430451827026473042417084039629269823394935663395836845482376616199041755951565645685255536324980475116884898184216407043219674615538758198111312622753004955476365819854288442557289282178961512255461983811239791146136154339996367815317909241030171820365257513053190007584887589657925900513845230741058244543189033362154043078094500087071970162719899233483924449697519846264049024621335926145994219243182411891477210733760260542009724720021816391760922562408435821253625628047248230122057665570564894289916571423113081279736453166682912987293324414823999612220931691869890134885576772508027965718162091757786733011115832958839471369652677186672598744627969119541021790429709264768135072794776282541705677311067885832353783336152211968250673958414844387270132770690510849173763025315541963738747249036268269405669704363498479903205580723644229401107218503988198765842213521926681837834646416909071400484544341327860092948887227056090940170467178597469080888018686839106619859104826974967784550005329995729812568868622923208104214516880524330660346356120371153854335815548858041608723883251110184159891413255697431055749419961886334885024437949460420675364647011649140308514471519594986955301593179506608315503242746993246427730117892691660651284453279838759850937942279309385399214775498689791657656179659689872553960721629927385952997164520068516753165427279626516384007510404092075104608593696628738939503511028201872699085849387309683565400016592372204081697643520910657779898419410403693635328830583809905490995902039312145762848890276851069890017009124015066646780329866211569238735538640642870744751562043183407096595551734196705463226887219598795049361398071927157518588069285864387603245073043693588469882472679402128996548113155091715651641740311671199527792627055053024277743809867017440635075522810333880480233865160482508078079797902476901847555937457124998267667551712886007273793523646071010547574127456514439215302357408330857444790140769050956528668825408475636897928748298239540741551736049895710901539104342501144033942097400581510903443762933646550297852762875607996112133685766869125253828412318913889665564059867979735875982806834005567753537475603222056082911569710532054030479775563633782325025738809870256695923313841203213398450498872214071612379810586626232750919202317438613685785826291840383266364135733643764433969369216322861728613242263629676719937959286063742700407492962181642744883045065278696336999458143212187414982303167249208764878499602443672570926749191443667694074958610125319148155726624694810193355508744222084719126861716355175674536188526335361942012783509531619962228417567949037673927976123286670931678974756030383294884491234900164327774355484471069306893062377353654599117186548397741851437387063329889282702919522711345769775738476210787801011158002892640717455352858594035916262972744832256760618236613120201459179603217621133307437996955864813659277372122253479589740864625047221466096217471637668417816768914694761173594751121458832104396008716299969166520041961009599953602843559833005939240070419762292773936729960602214689041397068533378250669365886501824840012350658498172871502788961130658484122611719236584712521846794958396426438278057093039615309535417502100826875984806605778618639714537925935845228729851201948786505878635447461057458202996051630789740014090385066337055091720251477051211828305822344185601893842657923898619815323398346924128140422305487981420042386144956404049291128532939119568056711999869905415238891589389334688177975676979443487352283185160309600676544762488497514077857873517885699750561074802541920927235759868321131267552857410915254558665209644870695005984574470983088394960912786103621191512936664798797817930569815385549162638740020723624519015639338982904132272261647552380122164830355930329190999122365233764152639425232765762353181362850869621400507951652654772583075719913910496579252902690877342668085144666436089061357014107252733101018568808544150722469834468881506798229947071888062690344509544087433230645454244638645753742780099914205963948079126188399576962742323395753659447592758865982296893557806158602943498173756143205941943127802442681274512968530735600033247357217358481598578505229262077232175191775113633281234776589397966407640068250615328632948993963641331056527353719526477433279825437815017245564338574612040447344875359089247537744573613941889280702216748929381604047784250390423645452506687319306541490616396746842406910409085704599617156080858880837599601800305117206673968193066828906500000293059421930602757108397552078912321835380708323708398510544900583165381495186573159476512021270996733075515061619246915134424506690782098603980291240758963899894698128999506675315991829964217429514530793276136764618407385941174456511595660793863055811970104054368571775317745539434675140839019502979254529742353052569554962100425858549311148623169690612167014697815173784141516695462770622816358336364313929871556587414355271831247730268638479207500618272731459447304457097308910114088003222590864413614620333238704721079936050550005941319321028443229831710989445318176877701467805393249597087014338086814028836594716289555973745659728620366470109383380155933841166168832395926949694543981361122216129559187311063254342450802351278869691562152995673183627675869332013097098428303190088831455304226627760770797933906452758588674462484418508017410089970872598547379554104627518492378013667079136717869929179664128770002090109330710166769382501746416966250194051761085413725565401394583284086165108585497535463240408979915804200713419787152098616045270555082566995360668905880147030737244623196289032073112485037569179006517606281597822795116445426553536712329582733313230449872625465650893472487321677848633596425051110297724344245461755435513902123415326528936978532929356575932758241441388221395025802404501134725966702576985282365085736861448628769080579277020192057188403462443935928936688398498160222581036575121102240636763079629881425630010428451148431081011769776566480165486307195389964731386351034413912720801981828183253091145417958363139071751181410930950172556614048702175005009077703217139252271874992154369423798818248560019547082343752659812189993292205372671634947904711208697518840726900376873083697415246884564292731257489178413109777570841829208669095502751503391115372381750816121927797545601750010103779042574797684030280363188190742765916344450458528548206402955707987886332478750920327033992832618114322556956521959761878976683756910306291413016829986491694235988211745924688957373914255895008191980715723918345135306376190908282256264462032254605264468863429993514959766356579276466681307587265707673999812860036029834574719304328486213828275157902016038699627364593619577019584757146676124174519509841053400629799153495138472122584690020960112712777188120147999046051078074227282726554622932779857825789883464773227858605089175921507110298367021860619780486430885667000167109913964170502328670807057809363431083924908903347252604763979959455988924759684617120142793790777212605314309035543532250931207112937710110112649356864317402045925133837912502574959991564026845452257873245851931595054331419697661865874618008475907929736009304450478586196352816732966342689190623671518045593130138329672529569762773321600674396180631677983032465767540860615981812930566757874671340812248535493718218797281886687941068830791447589174169111159919716710042404148278566726410186063421959748742791529745808586423223971746932257819750703028781174271580809292953379300090078967234417175922791823255245295554753938218049998967910264345655840230111155955927554666811426168561566046391816604655827940974154441383456233055624253369257353521251035808741674697134902366531171491117891806543633045855913071685682783539421133454658786822749042986448204354372370545347993844475712306492398057688506673986006950418841826088315884910678493538439527298544849856904245686810930668965512854738514247926635734060947955628103852026144845433985993603332138473973390154662677890949702713974196907203778097358367282670256754570815926635450091667338690796954017971631495677648722142157356270919321882325999584917551823945528515681391675609485034532173968300270855376565520237880171473979126441271236353418705694035634955749185743885850620283008952820647308442607866791818189535987972774775932356511537143503741534329514751062347340509931437603905142331979362895400776313557699437330809193786950664085736372561179123267326394646378365828833367506071936579935928902324175220572567247307736866687234483382411153198553681366399326312320422404335868195298252125042566822493535385069159184697669163778472598984078078909517014019731861245474812094493875885835875322258857607480022630423796816887081257534131946403307355360485476430865101180914893577405097896260380226155786989065564765454935921570183853003744783257893243739983289375825949112143060915469670016253925330189525016585747004228889814655126956017779498790477939430327120573464335444753649366840860316295307123739864590351729961740049690787827321560674650243272677295215451347408867493340520328439863358077392855593588553282862017143593995135929971290269736692657564813465015814250757061124739121159285732094776981853373877367648606616876210664677910150416911211822941880451355105558346038036582757796339399028677561985501591681908490280206049683715557119725618226607628395900768308461712411916566003180135718307732125354431510185823149788454672962830369048680466845980014383544638859085061334525487138358942325283427796884733836996606347750443696373078082730994778991475733292990569816315021106370830535859784303364748752608473033904435229324053862489592007656567998860338624821367074086429841269104864130759144289825390224742702336360146556762725659939805387603800650583805581512123630257243454985800242484952569891555803589985676536034972722608413180464866236546538479657212503195130780646371647564704363718495969620790980952309694164574970666006196915921077583708433801469266325756117622365930452206746804110065173664455093067482343799407444064071260415788694688257068658584084352048528267601904102995984526352620777225876452007778697936128962088162605631597379961028836405172345628248631839195516015447933639537400442865181468629894943403289679669494036375569003188874119317009371000532513695615093274902715538951219550316289209653213758458249987318237086115407250822007284702614108511775804932408743975430475742701740171853688162133471929899900317425033667149675525947284783169850451790420528235798763739259482079960306658869358990776491390963931332380864338106359787589663204892613925788341718807916209736879747972440989102440699681487187444133548102930134083988692849197992006391454284001173188054968366306565854000202515792529912141647647926619761777795327127656411546319842704395908473885157227708824266540274148187577386783167433460333128848457977243105034026764472002822009129340304287561364584187849256188516227374031693520821877358320597639782257888138935295566266546932669456640090111733108222453606479665140930110112418727695230287047640540615111452255333082827267774613564769365343692662075057043007471396644442692775187511811869972871496655325004103871033580538400065180847222898054531064681082708586116848774989105670275149067746535224800195135743403476754352435435999310467086968767166693619492481028444267686815194270619640197205419138440180488031293176580638072459975175401162627785731629533032769525552657822009270878969975939868820918532464473305567797486099189500053584261044905711526490062911430671219834524206238369378495567198965947154560105042780233193542246592957189909907375161573375860405086905506114144704041124864964084978085054061394943813883572403081545376006226813144477655077566619067830426647251029341981438392921980063231292760141165838775080205475870388020587317269928291073778960579422737315700968878497746414399698116230998758687712358048407470453081126315841435620533829595343391901299449860506941716061663691654684640753970495403658405796197059360044357372024256792997181984363532274433676362440839011193394572612007876577231736143750637997348713236959383267042665523944354848391668327479006028518658919132223638850802258252785234141908848902959802712089876871349990191209178926621543245408218744454861806372854830329881525653561694747028936613158406389493598789729812143652871013145203996334909113019788086170689604960421140622303937544770800253871144303399300689325471097964715585748977248440648259400492636007646676459789793643579501253847740681854760513221620373064890286420145782150508583222847055975359102759543209644891244966760098977254972635073953996561438123334505665025570506973889810419019578172159850948149090416107085500675318935819023520145865535896729117211575831333349227134873813079397754104649477994842313631385852813806991642096446990607726873131832513305218558308061291983047902239945325779351592734053548275601866120761647268647746227945681216159950911590335363394398651371523113076460377520108047838230347290153102097489938184339816285120441381887671662114535330935038068432285066606896012275320171821504726118865771794084606375952348769752970097026494513116720815565641375386669330121501642042757925987333676407297262898475813038394554080098173703380507890638484734691989622533813455497945037705347645029081219120533249782307157589099425826847550793804598261849075710529812066111845995010244690396044929256336504152821780894961640949048328867631608070101046450379925048527938352873600612824121739729673891653782085913236440219990412020346145713506313442170005410251458595488247087611064406127515472293381805742894013584667374443707254667686318434723993576321131040753616913107601405759662418161204454193980285027669302926405396975704395625582858247632282793677386783532851133207413023371345164942546385070527366714451844704305030380790575891119709460060593970286723705338859330002843757384254608409056291170299738522177626166712333603242776667164443509943134279640778647522407683505018773007908895997625723499228459257037399838886362730266857371333628120319002303860316323998106892092688782198120427590411708263661744999335710759484782312485098002544529850492375289341314025187808040895678614164072200142192490887316985328489438158185659632066546605252827431920081385721896329972432325503007778741779488659742033662982824294384397814273841089975686279058431635772191160263434683740997975326042536428980625247286528898228538339289561092326170580620480041549838515435150873796681873817758536158223340604894688381882620633519027202162732258294613670361249816383504945838279509960639265022084427752522482169103986617676195335652284808275284298943532379098528917088316822736013327013623408617870446722087612013032932143934160535918326983992463097871053420610345351305950128352639306691607384984845102904616352598396365802282416329531944176468643876989329614401901243315669591569964156901786804774247691736685376803130520157665956963434502266200639623807476559714992871327403906835639433865096718839160939183309943492737887479775467232107001874100542049107279513046344785269154912127564752979857198096079582442627375133066806336417243722721570467302386470737085634688875077104346985027817951023892130464963937998397243364566173122529979640557927571536250856941386937322186683312154612369282039852496424070701775629127643980254921157371596333749467052596171671956968709682061276565394534652477713310934057261640252793771352925426600343187807266550274953698830785546992336071250609488387127129772778074240140884052619016412614566522881480498500298387344792276711344314215091107587822468983354422796412363298639521180506910789237994830824351449309707831588388080719016737376945781254926962109373684798876544320706915387865076137739002257192479024394052745837131935578589032542895948464434852831238702209467214696281499262386387513322632748146645115988159414938050326103188437969353842783262369924652377257574219009413349597002047252140194291582940053686954630200514599384996735466574842550981281373061903148499550309981968199320042647083076723108660634689721332810470739444023400276277153856506369690553603357060330964703802706332331132409397983568628174496006189872768773414999319584129735375923319555860898424534243190598737612591401083621319365267803215994424105572327126223004472212055299080180006738776999354991585448175175703462582970132637586883333426187541907542427321168747188959867744123025252165227156583190918495191937169436959386174480516596435397598884869193226535855811448220903199403687003533840321848180759109851657262208687024833812199390067627791433488518509878038523635069011840023795649708053333076540837051452894308552480153955911020357096496115808608363917586392937066514234065913045208508010687628077890653801753104530742792814834321513186357825950503917267468822416193950668701315393982511590308666491981685868290492548877291003759538714372744528673850365859876455548227453376326267406357477974543119035626151181427786878764100703938698133498374404030567178985047762250887271509773643184204871113931040806406655807850405273445999183580153391155153692578683561642550624133975770004076179110166964444927929776528598252202639142599127796743423733086026012781473532748899986803074233460640118668165406092698909198312385283900657992718270651663430732508946704434447499586465239452779495954059371572947573007484027614867359266355922873910939778489835180585052676305973338478152839848443319060384666310494430595886946981001194185571231508024436127538611240305039375151428227904151105948049148397823932284775136163554617700210501439840369801897770086381125824056261308981965928074549628100494501899080819979387844318552212611725607273572239050231615358029248408247622059819173516764897680376005225944140270551806952518983370231438388990046913488763599825542688827365515821065326975974601844521034077681867861999809351885300217853917137240019288069712094372113407973756647849772106289706972644335493484214734078018782414783817939125714972543551427249579451167418252208614392651990157132521352263441723975508275198708892365964175980633157756992289627945850392259372351333123196296668095535358801854327013757114297011258788237201537206137317255687806985265956845357294682442275805160135263810381065133518802822021064282677517257472573787848328182062896425940317934636703292396804487779580341306471708559956605938792823111422415186672768879935009850153575895876125041254810938635099671099914926326522431990753240562080558814430357633366171701565471006443483171599228037948261725070996045034992520556121558523807328988107196896295204290241598209189320366164377879573558534093916036649589471304635473043354231794301220472681786606268420304036871523467416677904313065792958777434918683140515361617723573312454661952170077308616994044919295885509540413055487332459819104703607491542870409056365661002807191241635194890480503441713078524634874836903888054455691664194431165937818773568131052829413461209539777759289352592982432904058480693963562689389265468128917716481574285106619802964476762676670862673030986863611657829065735544255244541470463267564846038004260793472003031733959007094225413587582102573505552390623839621623258664494447402292953298115259482375650291579507310840735942090427876270782204874644230019972027836995950601998424458848640775175740439514767982548628418628338929543392396422872819160183522040542787978316874368531782920933657427959612005146863185703994178683275554591386695166830442207501693030340345526781774450977930559610783615186081287573573846235629890038990795846161019665068450152266303785252079289901803849356572758305789220516930037631039423119045629516247846114653631255966980413457441044349032826013109771875695927165269014422852484731412790908220457563658265821518488718498951384973726796990399743374607831896602189323073351505954946719856435393926200503891057991444270277182534949769280318206135092135320305125176736227735993546895860737218458763328276624932376503103660692275208030041219720925758126680706171770028674692296478491481373383810672875365516284310917335493273863160799682696722866773176299497571152161255481779824717436480925726182839736918633683727010472726032667053285648137295043891651789486266451928186043894989214705504385633153924369280594584920892268859446460779838576720370434760735341020198477473961703811910662696148647047037581900809757609883388469783985954248821242680544595554732303319882527903244743110139687941203511099442303943339788650778873993460778647465036195813272424521898479653163417683184425707558212508513295286533219094221611507221589291808925088915454011221433020672333157611809811127523417000010212496515332624981987409198038716138748806012354018846147059990895127942962238275840477631116045830074394277020990679751194965063662863083309166705272312210336460016687871604745053338146371947161366166307246260838508557781825465126008028132278113334492211560834359190721535242606004878629203816704653298261650588166755375741877459945355877686394119220468185984205416667497009449228697361442993586915780558764421156826128748973888525231810964202243701710500716742692698274753089216206879873065554317420287866843748043410041696737128351206202185592119443706361379994013562768353349557187917674192213261826101466740269168122081391221094333990770580840600753219662405677553562065704292846223958941228588408614285430012935716784478905425820606807460404970613013157028292675943396400861110052664618171422886585240116953722296721223546048165584962180660448605807807920181660757398297999616236726754539041562636185276309207672752398516514676526011013499578917465385669302655244884774226234860696733204149206675706494923509960260343811180088454129435945489147546808890547939431637076850511519792621128714211749677284159284492987516243226554593550004210553037720540019680618330549663400175992772527236111449275446515132257851301605388705074003846932020621478705433434731442054960739492519073966331973369086403361386442754464743789585672856594119032118846024398420909567260647929729523605244963768490812332213530598447854804878130185511008712109579213358777591119316338254032280362090024938021326855400814991849443959016689336880766602308268797584906799399256431043385024121793919735811270442733020694837335821544777989668093886618998946031657468284542508410872281444368251647062265992277746244653466052993938431767210905644838750815924221013267524632131023784567610209620936094161282193372608930627086111125321862124044503245800552300861043116055735270106084395812402311159506233550691424531182887370882805230265284189995330433922954420751919020745366337073843217386735945023493707173942186479805677403636187595892120037153674031274782236932873177269320135041516834274049465720015711230955859367114859190414511844417830259269579846885134382501692903436323775472632804104876218277471424258253094973997561005925739200195641064595437484370740402119326475864159432236020059550500361276433946079227792140587752986323460884563984016379491903003236917845387670890630422840711498043615698432128018229209546518841676256584636923256255096895370920318909724015992080352731001586336676503995333440768214471723425011451316222279437023981828520741893838266682968079620061633073282156334004417143506178467276765841871702215407953546085172780627080473930736267739865515228029668048604002429640109321699552535653986585004136817351971193003932114805380252236939533989945999070304782560949334697595958281450013417503075550034888133896076431460817863535334401863917715149050270330201161019574355278741096384002301993368520286964123686527143040928550617931219207001182464641907259609268970067631653842400957880068030263910214562608431712330435656677373331166659267825978609634506736607376123342878630588762882608638083657873603759882201166407257445272107351754195899294770572390625528774637602471839337512552421193834837218710894400071395777124457780335933601508780308865498191006128253502726755247913678317335332234465935430088973279981919929462633898531976843547723622175076144413062797333874359567635953301618746096754728377293811257374692793269228444900705727468764396991469868399652980676391147299735350252152652919478881766361094254158035801724671765016047323572364151727552385740953068892153760691100647867510219547610672038604967360930712089218515236328226901737104108031727432362340003010377294389252370258425005212389319757986131935551260995144480796904980557585392605029421149327982183043313513897107389525183288175375821051557547414971602386509375231248508591413905166388484299789623903537931208092223604463349545346303038785485302768428865647024627039868401309405747256900823145424845116819803265997319794656013189080181909292594929235437355693965819810694849845069281687346706705234074809753669734046961063952587632387818933814791506286588767627473205252564304801001104367935454149779712026535842238695376449831191030765417027364909688973726219875602944820707709429579200915002180930481066081722890146964673050033118542398700425380141585882910199108709631443295212820631101738644048338029749485607782555038143346134951816211569153093211686159780238373700709110451888667236588906991245695953532547293569696277894279233990885332819410629887797199421341383570415197568758250758572187998368480912481724634749340641813268121818561869472110400468743593850697365794016533991211861459689046234722366060641428496549011637300304685491135663636551057377507864330018354946642495170274378546964768789517849864758573597904916841342292585115499215603694802911126843741854830061731372439460719878021384338981802298470355233005509245396206121607773068367835358709720156745473529908285335924955391260624898589463977346140825315788884218710541794922356718054996127428125486374919879347221112998281638419896375690151459592102704861657680752469017863847627724569691733650267877500267840852090080865193790617846902626110049789638685735727499973267355144983698681494810085606611573473712837833592756132487202760749566247197097960351501628458048036344107394410869867791430162823748795119577652958755567208451556461888918095516768652248198857004825387967525192977921514834351753405035723940532566842842181660914306958424615375095169653178008266422730922897654515670964875792064447147849331089982510146586586709914249646513761487417109120853313067942910799735471883947171455228158607903848311428493754903636544767191686037423908605378686149252182295638203589357486104222014466759112875799471088555745239175625542440353664257051633348517277820387233593093684627739865879053310357202694007093981969422610855363525998548921043032104536948436153426477480085696578301364293564455121472704409058631251454084059074146803630152316749748151026330296983196398906783967066519425384704838925094814953814610495329977574767457234864060110885097118196318497208841843109717409480179201011077700362580500443740653825709121114758345442066870332639003105826146219253883268972199514279623058711024791529578616797393445440387020858576858391991722008022928304903366107113481983640939215260858769471457279028914058557554505376752298729690329516104805698368024545223927482158209720731159376532266826390419720627744096067893944806850215852926168416933851707647216338733963986960588528838807136727584743189533549928097645149354754454959730125978627375526858133585791879512141356333329477241530499166663150536949429689531447203735026342081720337084098348023862382189614443734235091176876851050626834559779842311462184068954435127758082508591429086655422836606885881956706410377860443494510763157575768227136289618491568643751508074211266754112456483369874377470929058348458775446782519140966484969464557540198560462097039632952534234618067916578178475729080769280011022530366752237860384704804678182575877287863480010037431979630056552634954835813519540315222471539131668445473167530747121923374495643523935144201214385550469652454586609853700057163540873825705177010613586957326439953432780407503883738634990511998654000007417618074878524849681880695658186136236211634906102519388717972351278332252442648479908591200938485609975684970663570103873037207172678471534175714660358737585451272291783451628669933395517285804897810044448852024202469015225901911482400963190569889972679442955835648522498519958210201648375725900047608604590600931354186495532781039667076921873105242628353454853797060620904693422630012724570716983658168145407178763747856233547864967533988953860517246795097241084152088561474162523103878701181027331113295561250452543805282901285359908423445531237063380199699377239043949542813963744606263322713387466827553478216191104211595579433779241260090802205856615837579382472346932020728449775391840929190470386571794394484391857062117924787540941098220512445789230417699829377788408036636280760375517780132882444137243104661533060601213631134650265039133174034778341414059069119586896618018533728520647085742205599973885934744716314680226688066900322217605033962920849510928024383242737961726575762189518858766156160366242025080647350227960004897056880257764271223334475757122574644730407091182402437373158176441494585886942176964370055899967012061289790989859359322802877813906765743886046069265215369945970645474924391340498592851399324305676096078514422446847721883980315737378614636845500238775458969423097734555386696488608470492813191566392547971867002154784420866486311049555474233190172921462829852705386479362084197538577904140685012644809085404758390031981860485849414736368479774917034534456675385519074487553872968934630075278515275264570686564936079169538902659717266294935838004226205285489538542753960995382391427901433946898437325994718765427106385497792510422826243823870916404991499911657845936297603325916032349115495066997268173865727832592404417261786444986405639570598727475179948153114142030141360470620269265739485039240113097365557592079979206027800593686393560717757459865714570555541700992853821690827142903830356109588526678884484704723035330273378271486074141971810483221982121842147204614201018628007493551613121559283513526242349096876526862094925083409205084414663947264400585071284920290563187582264230906464821855148783346598192787052624803439061911675435079631569900000175853506918835266299327862621460226746259336270843882895378444344529341751737936348949922902434764554274886151791856758121760283814281276272147495463150190100419816323895046438279851060332655502514266652496499646571598114694996577802929183300910650457086745121504524284962079722252148089900633831955057733948095293657027584885820371198167258033989536108118393541185083984089285510520394209629964152656745637361032326985844734219219356797667661289826470630718566784411007022864186432840949915732563541114517636667415703778353390028487662362420291293843628331181681600148211538465574124551685088465982505381077384472547754948450585466201681524113187907596678604976888143861374615512203863364077765303131478019131449849480165174359772886503544465424811111289874381470170174013330568013470372253655348479179686295154735897093270176427356746704047492223388830882198971249592294207489071720360030189425371943154793845410389500249739370787486371318775137442699390139641628858061029122189125438003203759749114587589256688776933099582091888163867008722173762545858332790633001781329305240429146335849629683565724075808601982166889385799633854534366289061179867521628711008879033823282164708885242513386909046494692971445841312958855642379932848510816053854437499066026677409204672425139265584072651562056254375357105608406931689198236691702311173687489517966374267691597270597938384871377384707828183256946843859108834047143710405563277081239485158851571765205238148047173582243115122604433942245137395632284925817336575314445982885898014508348274324922308160687472028779689201874113244103180802879572440902325277110090126038151105923401580074670778993541566642196728460629921860277705834157388634359258333317291730482576231670228239284168103157360675433434291473275003072984968906753889002155910829718151853820533751911239298014833855614421999580592677263656996534138574120595150521118912263113172509330649036945344070251912078499666477719724066781499361783803734748845159708245013488853021050804312002602209063561107916229332790723536425660375820865546081727070772557373080369171083337225308745838169485335010082608922224454192825894057443343412582325638586358930128433779579621138256047975861660206633385167531680322937302909092036586736435763235844060794257104053013462820630035458888751905033527072041670271298366434769345210557813971690452655688619572210635478957993341352890223506403212680136261532468500647954772774094803021635702626764792083347611600628819036365535708594552512476874436256021371178591610265301727990931988995436152646760866514006098148135821251347274258653245074806338781840065968667836008553845476042234979184910743613637507850921267641440244624512700682770166083126961675759245492076408415129049728352481106293314469738030967426226391343793471537358918220018827689671230024666234568539958826511709873755910591036667100090122923966219770754967963113825790612667075299580611089189881153082103376606631965280429452930958602953077871777235808125850908619016201049989885062547207270679003262277615455813311377943900616788518547279525627871043763616364641281941322451110932820915871289885663000342730156553553378403817854327250334827617110583942586394616056347671677095470921666798651160633653391692561339510076699171839113063901906825026619090277454577658582030250140213823440634957242239964546104102093489269275521078849879529089951448187814235379923730159286730202235596812612765971328685681212949662685146986208515912467017371917536758250452110111676782983474729508024018482136286279333163678651897278566901079296844794783390248732884912711106974013302138326890948448921272831837202005513269284025597914771232066349686548850703862759693198605695698048966321203027843183132480008310819199732440525930244198207006034852870210230155689313637147565917606245292612337291870199966533635099708820535415914579349452607980661646186532140494908800650535276904522575459391383877011894712592238180765070981178785539736041504142824168935743858481481914064602421037136024053061493363238706490714411194664710166997885062836906545962328428541300161068683177115004165801862095283550291080329820254197329057870273425993245591905490836349965368561664849626281424257711282372507114928450472143216207849136148174848546157217261026719675404342796005801000191227133432297252235645874533193832838104329578839720322867168135323274190881620239101558050689726706743064694417527419510023006428142583998218495075551230940122005348451509114869075363480794004001889813177127160964197973840635736632605714521386690178998374334720145937517081476326784911020705289042771803877416993334517141932571000504909415869360359960956988248616343019934432385392168513407599881541226827536012028834803675881625718823659715696446848376468936333304272103413066897795216741109299490131471540533727087913174543050766467600102224378102881576781555384857330325361579837064122547552349307417757823885921974153135347088316624755801716788696109582870913501835848297734307051688966107071198356198311706275359092222593969191867174651519910263623175772555324188137250261923344301076909144836105206648577826409931348578907995200097633318448740720842851082733019655935945837740950425015585074865968915465047775238653387232712643505358102394292863503187393592018129674761224667738711884974295534238052495940163701051199331603246471437054182454572453080055735463703946902043285582149218945029125666585358310138601828541821640475729017281376227533483876444570057510999535277898882308304431227326363069162639542141294249400742542340709804938676914799662836105995787160414434694240838479586929357245668825545604628472148676132051025552222878976140581751849923906261382294714934528586942735263047624074778302778122873499970142926822607732498529980360523544947482867131616613621856124829281750104858196197875248889872295848228803319784374625395023149657035884179318403685460038635691259772704892180686718157582808500185102019304207429638465923704990048021424204181645154567960284410164230957215766223026476657679363890806837955587626132167821487761767113241780252616739155361835754435943662861611996319021516638472929578077663245453038156885885031940211377751561548991114721427648812691233410647861407659045086498202326504830141951151759345596757884367079292304361551360573703836065942750154392944908718270729083493262613796379397201115134486298441039725263346229478582649031208120481681510475629944687540197717968766998168501800729527285217209299353434352497414698258092037214664167182430344030215407188986641574313158178353112297047980916856287569458421683247853794187156249173811651637462376137087933925344732376715636941390123430003904137153018926662516996086300306522513282506846354216897605681663851911898067284162219389229640097862661283127235544295789113768137704856391207179396385124246835790818317959203769210485485618270655101523614035368134654786405436010114808144125489231860684401675472700677555378790896656260538437477753342767496523868041043205150945772774386147818450583171924620071109722392547750880527755436400920645569787854477770526840729692621187652224471501729099788749240790880092443297224396724145321724303368105420215364225609649904005550456602663588358734069912550751945025304974954850150721396042147907012781707090813873269532322030928248433225984609371636892769984428375767365926304668678896752387603631445995024890866665921907715643407602604260387685082066386649836453669257089138834308903376883750473116367402994184894182465469928436015484207111439245593237230479828632187717144760351179995343341032790727591833996588857263759599364756385754696581749315913259128084994181703791660982095473885688499623972068979404171365770768585963732635961999867679666752204211396205287589867456023247028772637963906145400230880983431736267054976487337947866341204507086494120605784814925446950567086621459138157055720624228271026556174002184422004285234014237390419445261128744954074544890777911486997411345904579571728244888966018563909192055174064192975480807194757486607062336963620018613860553544500364409049987276589479305075734106458527985321418929225586532974713234682252986660580231406569739732263550593718991439827334773326177730039531458433783024726682715138876751175657673201855629073896929598262691992465138203539361139989146396213842568654703466201715422912408426693154739892249829766939106917512585272007376198321975388828450611745270319276541100378058523736850985532287772206304144719618788978481838755224788701582072953096427664613111366548608711076802692169837574300094017483702960589441806209844544129459879346255998043952527157186866993406382283247105269277842235177598667480286396436785159614098976443986208766608754955623897812960342183881002363384901274090303062481828588414824366563824726527364905753890783229138343097635523689429635138948268143641265153193235447794732676126449909096714333048462260761468181157472608495845144975110815428364475647525520526967577923834250478661149096931903865812365900606562038914370762140813974470356245952785647034425611341803235158524642952557707226541742868013097545972832019615690040184567253319951870081397344737173898243997339729655010284276768625160502480654986170220098906410481928841076671025233005554746240548773493453978799015118119367318512096453339973866229918950227476946926859834502723990789286323199547752754703983742507734765409959357370657655895878662216381401773964982488516963051360385027127646946352837425153924722379808918854073049441614593110040647366000550169159896275835341296896790617561132473341892704825189878491936853984956080705416599411582555559722700249453741613298105208706039829441342480663357734752421337212150985944980172578154297607724635349943362207720463424230280110465935704808902614387101682100506325525251859493089273584905416599341253764083977745888920160126573752891635596589952588609678879101960566382157220270401473690349190882454689354267468659406423586021256252661729896595055243192335350211754573459653612782404193011061744552353019768387805165020932669709437641897379184063412353378590508167965305410125549858571341110411438532351177365994954052515113616398166763155095090168803396258235169099369828850060669071785060630108355602486533492005641140492442124260005727909164921733133620078519403671164526920498240577439563585075905774226384150403088928317714441024029694232579047660255530888164796209640330051688448669283313594228077859265815247948908483328777572754483996508491465747533460213073333399178980679743231126347980964245107751315921628284060105211233450397608088666497625627944371076656812644027763798009039850650801698550382556704674445772085620861535241979590095183871630791862047413617933524343428724593441083338887300423163495481587113676709754077286697836985788191708683519771352548010744837073970348365022744188542175708196771041241651101531663497876564224037287348466934544476083859844410111667919582310589512714240134451055887605090851299642758056138702909276742403172451726970597875166398194779854138932332924932449142728318081636279387996798423811345857409326480659532861199565870250915304244215692359365632756406615928278519906227397163549132776510277634123053492691611013130741480346957203406899764778960012105984420908223364871823846811250667072336818542902745292247602929302313061103278292535727267614942578740767966243127600905329648929526400938838629300848077563535600717815896697173947262798559206311731768687158554916291912202890736493854164218789523442254260383133685508372982921080096203096453585375975515512367648461326679076850258797461153677130512808169140903673065559016782131239324250978661891584211707637211360514051552792764620459463524882146468652039808279571181977274338986619921661805310818226794206867791471060819694542004338206014595519730334408790548645834426462282100385096546690225814154418018081212127990284505652320802736772695751351070808995667911196612169245583733212544398410537788282239170495982744707807442303146226834452051098448562439893365225236295177669949546162079270859613268221162641403708975082002056360557334338718309231229419938084671295898968284178048739556746695825110095257768297343788112213019707351344331736564475003641544904663220047246538893519137610001868202860397096268612007566916464023378592702015608697051538006062734837247394553538032116975746370385193883247649858870609640673610461474494748726677077189659423505064532849216581139832403647390299243671152008354974053376899704290432473382761041007790755343898297927718947521401648417828187476736244684147020946197984326023945916170932298448273905301692518298282005612271338599203801357836924180385940586785025913524517161393481647923233579475635464682112350789557775291619649701898673366660501995115481097944777016626439345300800084539170636908616923404489130141505801190585247743219865873717283552988844265716159103261067837682509395558824533196145649538522630549010948808448420047945079221290488822737339254023922533667158824658087248381111347125074931678645394480101324461212462810826415084041056479444667566412905514486135947300113939126598375154226964535821027775807879145678125846723710712937855657311280140892850059778084121885776138683745581221233002655063813267531102416142529480603727808285227354092259387326076439639883165852552111672996298042623592969643622384263213205954778275766975524257312866007858324819719277057002163338068908200943129221872853382895083723827701048370146419357353628593752181666037561888599401031356195111599676147480814310435526745415089813898425156953371412140925573092716848418589591292516985079683932567148369135366137948221323591113227998588707314386446650134839482232144422749745873174967779888696471148006717455097602966458304379204065158359851264588415766943555271994642079683503781191482763879454479543218952590615235393955296322320935671521089468929626825396054155104746979282981953044219199331248961470459340601698044219703496133710815018856663459313914665927364425722021565189235871762971507324787512886319607654752911434056380491497036756339408586694066297291697255235873078056541920709695522952499807562358021487262579862521409510946465381662364798147143870640020195587626703464552911483414963390427018898416704343453778887426208488065875660188167122133627741189611595086923102724669892922851589594863784950086173755166622119085321983508912562823238353371088723877625396199202262917900767377095100468157150410017806837334090748945730155309508865859346220858797695789976962264496243009522991866229016957214092753519731054751341278719098841983892942545277193911036801162970160951323309571255430365278983537138936323750742812397554603422741597399252016515474595240228048533106204731164427578421364956391966494899241974268979900279415542883515050386427616539007877758467672939886691650073112764056282814503588740529298731146302402406253059517244129241396253777138077073767543848297310956646843686718876915583649515563892420531730106224649788351754397007196478024723759339053843399761745139954111384355104344144748711205308562549793510266010744081876956661165583414982227144290004905594830924668136173700884272908418337706386233151549976721484033522326728732555617428454088659004187623279888289082729012113350385362985980917588777646043160492296273506318513586876669165514705443333273980039602365121430681734337226111790985106493590589042213490812991085041856913980999829676960117793486022413784266761994847789050235239939769218540755498399404587644461290502417786116788400895860920394838071503549250529729333265388635114777308199772180489565192702987654307389591691900930383017566381711531711237841628959553617593965519979298401135821105340234448664579868949452245901625371793114952180724964376275750432317403311070846081191238325621235851269659342649752781261500795281219672708421798288703196097009424400198762811864389609257479246033461812087285161351788965442728263512527415287174961131738268895845931680982470402372857694700712998120002626569107368151399979339976034519684380186773914068496049508369586567710421410329417080802020841744004831822060644048903751257614770082208969135561192014121240312051188977813960638932152220113104166416525727797307091460974024337055129507072459880031447094063017676909074192822366226078042237569735256257255986666055483608418916350342608683077446566119350832825338357177883837826045458577370825165039803129672083308849551366773597409943150296135704299789849055900496367057807736529020921788911555111315413210127097514466489166529808120686509291614663511081042024431246768017270967524855140039035895077140616722582385835595631470283526449174108964039753943461003576464696677445922269400548686313414522004797012114838181602140960484593077869358068585757395831834182995011743015998309733908966448110897362485567536166288057447899257984680090227323065895185468650046227253616270166107201930204806138118430382908233117306840164160545229325784504922015149571269570547540780471044795856485734445014748780309073344049336375866238122976578416811540507633666118569873168067406428803027290390811257641305935260121485584579550945776471906126821502750935472316773855157000781873686484636592464138308951187253483793354550393846075014091932944560338015931070307900008260353720628734238176396957267751095278615199439973014015854887532789269078475832059236726909872329529864885046453126013399440660904047363397077207734494681948976119831376334268266700981309702639387534499969933340454730913351020217691826040847826410998354500915454952495970638548019606697747988111875355530612524890675864367789976602621079154829056329296398760099111611175837745992174398408109788586448541262668011430837303561095684889075904946518014596764965772340151528011427919974916143859649617859626349556564409606584374581993477250289555621116443775927876696040886727759686037069741057876328589847615433321867316300126291377567877946118382868531171673804543005250771194517161210949151230864440871158719903447721240253312609361173155063088864269125407471680789625837936373504099665956464080201728223559400780624107845691181282703514466012162327391675238234912907463930598535752077779475715812810345353148358473658865357841267945337455429883364524849294077402964974146802358562630449467126660439127573693372525260561314885251858788764212538544244555915606335252049717014406542402577752600961861076229819968961009882839464297809706195348830590348606913791635791272392205363668556769733883671530821777925843331721846130262027444212516952054084092601681650141399575693767600714741389740829133020057274094250856934234637044111861076549643588730586259584012591406395925298642036976241124539891240921206464692389235009351663115750132627974388588818459017696283849468718105649965454189532886662825399547310600935247684517068345336944663097923078784474817472217393184443344458886007317162802406956362890485473313892033370878522670382825564491958806502506101243047142920001286290336940755973608405921191688083595862498618863333151216837135988126386219070671087755517971199744641262024059162588705701882872302800399133669082533452183097611305276044321648713662948170379035340830891672480505305266593822449181877628965930911814202723490179895806576904498648133960250343439278108226618057069681134422238457817463771918682359693870900114486483881544187622002356051522540835894547097222812964922301652654217953591895065169419061298995870999326960533760292126982769027396718921728672765782375412780594077555948144618825034858105737874546516329870653870810335880454783165913073862565779241187120506721990813174368611039139985374608258408312645300053678115397473200768592998766860214208946590313114047780624690277927607049339866850384876928514276349322806305717428870438768522408427776008247087591381260385408573909633683083308759276807792590790255438685246124795124929045149898831735399005881537986507193149721746663417303390361598820679859429138556223276655580451151784190360623295575989358668075527966729160823175095664200995982054082706611404347516393083582058988425216981938040750469172378173170610110682281672514446942048635936655981832118346609000866353456245673066980874485017216755576855624863782785404797119924430311959586774181059902939497337024674721223749652152366236044746867851504832603159894943406481071106411834210348889904175372608760347393739140370862698206837809314982995864235489819456569883762926624923731302117923327937170120640183155190308556881334445290398888080580858305924564418746071531323399572479691987453215560203740076842815700678934572717355672137124011186581860025616632296028813222633271220546843937833245761111327786824434163472013841204653130661860813879070357626183246586148875059152475383224009853662086785465989708781970183474346526040999298309792748456748091704896718803512866704663454862613146024164381764236437832390179997708641192088509992777704829654969764901737593359795660690493559244257749013287850094552227159536202695282653499154875324452887093884609896622302170605611583566698285084015485248992253801120073133325381438094401026899539363395880342853327931515187237192112823966626051332652323767497772664846828160063506659088548734764330109468819165932624053262196784576290996577734816167500673329964357654955351374310523480982627484052690921730791649655199419549361175261422971621812726948153943789246701340291622589158623959680542793604624921653672687106979087709938616915334083187009792627614692054630008102423198089066071595207699449578836868390647035650779880730346573314602460404650466038724275803025620795975552668010500913161603069234716259747928690125835278803674219568207273353995369791576246828340028944262700302162840672912380765553592036162207877533850321605652637889951359380295031654864312968410488827230480552953257890133209068775430138849829394015738346307768735866973335335536800405139715036376062250646052971782989868502145803112656610775161162238503526506643511372147264177761944635890969559743476529719394567633229707285839324649312105493779365547578906079874587040968866665984697521617228612562300754363427756221558023390198900549785876872067466781354239536043944029203580538943497869223416792193120208338435951707001180551292866155288220229431564565399453176832304018947475304530762143244594085591027086583860822556281696934019757159827690339300582166521483889099054545214597783862346973149753283702438878012019375848836842959441642002946193905957311450017581174021702080328843377815847666895575934752492089049788406540732100179227813195120853188420676780783751442956756794005867045823429042814550401473112050609131459045209472744234452366350406499314158519391204462588718354398522155047710309445161765891781908990586785786021361995904362429098208114463244129346461826903874708419183604758755320817983759568000194537077909286189074632835951851115433799215988640498568186057780052564685199858932386530654252827832742705635919870943987791040481633759736341577669901888880076194220963809736244485482647394888072973189160093592607559263387809773531928516459533695272013516455768946854874985691190071669925440589710523080109760207737609602024195589167318828307631502785429688881878465675385656916826075170864097032717243529826739951069127635358362041437126188832977427301758851160581814020137185636382370630068575056211231465289663051418097447013403254839432115919017683540296529040365799717047298453060750677788176484208701073631577910424437897221441995341433811795079540789667362577440175331384970251015377885061467257288384011582923241619729378003913166619496905196977964443784291023748842504468583119931764304976134608913554865344896206132999805147194993126231782555800154861398441629587492227932767511505877164491976918380580298690130876810337571810841349505088997708332371245291967620434658584462334988606965170724584908161503335146560875475313828999925104088319544531666373991513736356923998802715959293551964617497187965853389975127561268450161553719027186652906307314431658182836160639912058712396045818060789480808714099618185024132847674365687115876561432538409695493337932107949259227697711524367087777054692152222878676310329167001408405548898300963259487430900689765679399673390334945716255421674390844922560685464409009303914177542671702941630459334281934226591938966479715649451145513748231194006952915761310823876868250716288071132152123250531173120245910989881998960609819463654092507944414798885606159408304385357571070717756016074576268172822655618084744034761824009671819447385108925191419187602740401201355910933490176285030360147447251037967303969516180405143206892611410255694582358063748667645580860077148807042641570127439229895850267392936331926120498856463852569574222810624431242284837070975929610455472778656254715814460053853476731206061274072497144756406005241768909749238910313451932859623096595898919854993569125878703916043279643322405267489312791422142066384986552817377460054648649102244344561350355723892176048120444810086383228555066840877306183366098061249063914594892202658916796660875074108892105238901985499568302268327370279733666679744901948493520954978701424768002933158034346433545045992199898742816007476242319260642854997246081432250062850297606270811923049415015998281991722894629264755965256610811321805474449148800064877414418636944008087267321908220663360483855955867884816584606644155478930407802938673712022901648581494739738460425654130422487462494064451708879150715747273394650338305829233309922727023453290311395003256351023387274715549879399393770581096640029856381277064781752841161094451244796873694673898898547060995315263278790690047020863632323413154341381234868161397432847467407022527099451830570259084726009902145559747213277918391208803710864825291463300137047150992889292199600330142505425028453047232149519682149143417037199203085381223360349627350363185290061101674346499119515058157910698352454984055578142705008896642912204769255418934489431362550913209677610682775686053933240155581999681139846317242032835321217671957181612363527397959919376651909620618780096092219653240890503326210725012039083711805608036108518029744333347866948294085566040716397748348219283084805934803784720494712700212416858527046240254473843905289492867111860825014403748340587190740077423258760655422887912836280845126972922942401701098597151665110260719148616472279520237985940361026157310371602797747999919402349865970193052522619660060934005548478420966158075661545908483831405818479660386545375126502460608160629852455400847320825104230510679914221388181196629998009152139347462350074663908344208453021428708166777002620918010031051851913862827504532129570970395146166289050549191453624294890837963955779684426184059222568755880719454446139332407957012101548302100810558588697386595347868106783211168393762116079104153231193899471844738426979931745948703410493020230022156383143970149325355994032020163305151097338225017688846639386097973322793669360206317410106282214714670480226860325703335363679639520963663169028092264259772657156770929060601213145119006101954113675344742485873174727890416705068334734912706423928097443648980677104873944120405321165071100744137142645052597857821372313349560585717238212490255385474592004207759281737064940135854721229004447183134275393609245034106132126255880983414577919740347067297912362672835070945896090240283882891554601492031850197262420894386460221883178844130341301734712341474648239818008957765932170540915504637639318190027232990686513681349135598057177847313540694275978061455296525150375369767617837572717136853241320093107869295219072713599081829763804873695613304780682304814298483703124611178876764722434791989915048746865111792326098040521318289403211995393214871208406281422424265324348987138501412068603828104470505245603155168872853837840438556237083149833758509823847590859019009655383903459977924349558593619134484917070174297051027417303786662447741481308071179107295569341906754752423290566803901994429876339392816263442961061026536229951195453353621843628833915617269332571300020106025813548934590108303061400620020663425105367573748890953020740065412642469990131309632128862469367586558025352113331770032282394910763355690836059753661628200980304977324136863600352798542455914658860412253528750126388727178657205569453515564978847900694877791201292400491451599563271771753263249028564960242875672926880381391058373607120724258959161069767864676168507577167786482895859985190255318119150682101514511879734514976239050511420674419979718250154089823513973261318486593144333328963097387975487347203542058987385413409227540197007322357468074927342141778908475055386542404727880948389062174553425577673874136328827237555184795543230501426860317087486766389086431958806492635443047442497564783186196765222450238659296923144165628278708939277768456943357889056283390325892011535322618448518717290483055559352411855393695098543315908502076359864850155888890068374618189327157118718180604496855316825662700993553577127138536706550697861951019632457994039622534726575327420197046400926735220336161782829639647467026650484480937713229816757937862510771206548164814817377563913640917491541498707565435381036913662382603843612307574429858220581675427829258152382114683174770660922687280619722225527952087331658641775930732565847908563015576847727547407595699810842634101625215126916326907712110234830003718068107594096586927304823079152816009863300814212785013541357349959053480295305424156057351667624690977555987146058356970529923352799143705095282009785841753115385621819546647919187304341207124102906999700502919977817299330241156827155524048867898904611002288360594360449497843268818731566348130017933738045640054845567836186301222369880498577208369704186939953898109171819953242966877749085549447819934088173924658645929605324768827938489236607147688876753540098053129705862400696205874763148766025963903666341732382373709035774217043223653686709829328079024263256457592861151988436328265230084733273399826579181176822460679520288466185944417076372770171257818123787330419154374010652837027327356976587803737255500345472921692149739892884468411690012933634611133636700905969965752360007059541821569121672171380136311344167511573455925967346230568344973963713206957938201253491192759196414848874727535109725791051622052824410603885050819092261011888970835978808541908516289095126707457512172870344415452041038212136655500766717219504464338630478534817675528497482422380044855660124959739224362618857743305589003580661240983798352807717582943369384458038971876216157625179082107482122214813793054876496912208822289181571104166881868193285981575314855942492013138150680868805735331499981189003193590678906024970693755876382548675066577728636119726244749708426565372901431249243973506536622556264752393561489093227552637519847886565510458860758880370419097034999409324100579933098975299978728547120585138621428474355582559733984929161939713545312913236564009745536248007768051000319182883924985762484498734524981939853045185919598555473255120572147294540920511535584645084322200674014774064297503289388778232443627182555249945078485526958988769761067776688167589196858730725893396176453674094766868075104052726880268658611725515461687529735732166273315951653104941678196996816060910984284070055728431861791026775625541745886123271256103575194141839555620350961922166224308478837737985533486064497126465871118287284874218716949730132385556818798129489348918112285250115943144617189709551543663120594637818670568871770135429688039335204005485382060810985786631359988176317840098973865817883963537483570998227459627594520382761739536406406941775358483158555602102569788690719056333626065401176219664128828855072803155080612068571897740923825218854206498506722568343969152547970605848862497098040728145619459038086918210761287292993906601204730695848222526698575310662938469456765953768713683223940947442433032446112667026343502165054688256078673945257971999085260144943714912846765985661598264676818741445104632748344366020153443141216746849041254361485932431744581286566731292473429527751854366691644975008006068655641457567805639235555352632942853418136668569035684552779471993751273710586367702851602448343409126111241369868644933474188402221308647303812594109766351098991638077251474801390139070579907455691817373318490416558429674116027403409629149617745377879275364595009647343231303822383666822664072015127029054783909885472190271475592844671326580194220276811179142262019867632677048823366095537260552674305711288698826586518529762495669557758246612540457228551112732401077021714632416695891653982677219540809390826142911997367814593460636115236503355824898696458651417829287671594812459351764056785138599947017799886733926357089113453995022007391118089801137129216022031216458608883828100251053526404493978306253496750883228859564805108492692125902776412433794358554140581378110264329573602911489461757515804646010216965656242573181621729905505736197013208263544021835130842843608158027915038199652958347260077343027402479997107796784541810264812537670608383881556552203415270789584220456442892293492241506668437065749502174677280468492465813823170913789475256906356144544067778803829168875568775620791572894564183540943558332270863786389914472388326350489942450742525508071858154076711492120590135005941518011937910948352532666066488169570359499553165819438680826802362045865265954304422979892577580862287671429070200679670776933004318371471010562779463976974022776237215242286322935674440923801723046298926953399615106863317424832397346300093837814051334629231616387165171955723852903035296975139288195253580486403888136468903171607178778330953461060158316790996532215079854661618825376298714589554783336834313831805341274503787967649441806323562674335383220171584452029726766154511193828696279349310868805622335329292179358157290238333129296861849719985507611942378467292873450717481397376982087009222557414972072739761856851513213232045683447695950201601893832534358339969119569416344581753333220192502607326472072202281602742054136922702838098051736376811458590780996697865976044391995068299982537326695785136456813933633926695181861412242655109708740988595813512308792886436338991826408063483020437159631498445801215953122965643094868523468910893804487547913072603903766835336249883734977432746330914977726004911270683060672200845213864481305863081079245814173951059516169951377416052055569817799646466459397114182777615340336340043018875842820286977965161261625847670960709482380699556099076798281989401868035666037188614266292059784001781515240818794569205581559521483126112725895632589187757810602380965956744444220816931385763298613460116505159231197541046630095519012587314526585287984804324618272197429410768196711437967324023635194627102142919711574891459426608417401687423807429442006827940508915946337007042049682456155771661041772775176157894681145525343033933241726771665444127463059322118621248303410563503863853887234016145055791714711056083431567830443662790508060142848685427755584107710469110409012442812864550188445201593432231151649367648643479015885981256275782038241227638753458467428127443316636141798605195201098896017569234390920193613570873809242254949914858017202705268354271578079851705992060403428983512074396403415772770975358649812727566400685245916952796441081136742315192496226302537810777354940656473671781431313180327530718125536836528924475338430252368699450777301000892061004919767846176662042595605800483635944066270901700725809439637026530828923303605619930920522814426387794333616259284319615817119200920323963897078610845433681629374091699503091464792101169311953235938303887955321148920607967855543556550370334361479878223236312854604529254886291262484886479964892695588017431640577498440358904144396082513771851733776742840226078618104763520486628820798423938863486143090293650522676558784987656383386802543399235155718090176656263766808301752906121661086388376736641010366249991934465163856410001875404392685116806150702548062985332178270585966953469337057669420221467670681405964703577889850849026291090511872112530504176174398748451369624704004038890323397090560587302846552195958786691149647904853398662696317432905140645562853384996429530638245854300232134346815684680567303018414679684296863100140079321551691118209192238618539864923354924531502367008708138985937207892341319779104198804337972398517118781069418535538570713570261284033690249960989210463175961615199435456506577083586504734515924395843102712044813410236436246099030201245570065741284023265653156353492143486025736334357927863408880768737669796550625020312138026182458826760290088665108669480268486036161374814749186320787002462701818354564167107464719823056406872922611820494101276874667129960180338983555442911028705162474197490010660689787375646480532175904175532550343699760556940343960427559541362016085431147838967363865929444509315521481772800369449435233168002152994374173920549847395093976948151497954502403237620577966668969963415868414611045693671700358160559379715724904965220944241912256474528492284646354886698984481800499349782701152957945578988663790378078030357413391008471418050759800262612180830572415621815816726832779015605526403062400845761686999824196728726115674737828382295992626355081140270887581576798101410154460335223021395067879296911583312495678131844854528524241803550568511306124056664943827845856286358466163332310541703226690475424750170959513788183070070685124391514017631303803866324631506909645442105009012444865803609066115651675083015916985966866811954137167895234479708308721419938938512535857648550179061896331061818195221032787102932498059800203969392565901875142509481993412058063594469250347653525633725216866018079102378962511561519605948908613487708800777505078802439351426406359390285993717038473645974232330301891940716759062351727143949012179090331038109332481526052879276833657395853031788348128870906018885186506694580214625359913522866077679576418590801518944323717058505105487148948579301570725735849870287475832818546697050697645015270313295174752559880723081938876326886918334592560100514457426359625316670949018845559987500103288385845215426234827645672427338771442876105573717394608097294594001459254016628504921378070023553561279059037548600619443773837543471051529143610568319340791643515707188063350545697809530328414618255917627923649503503924085201919675204425197174571072510437713299649247714312965665427378070698825130691895203749888312945670229291209241919685803604261884697662587682542897835511198726661051623476028311234811035660459065806672127001326423186677199053431110511826978161471978618962192726019707944425479195629342306489195790142979705241214114491164132308399929427790968785856809536432193023133573330434119702522906462116997002871351927753459135865975243606750872965913074863281513720029495641299320468952294927436486213711709224248476396955100159975507456602227037592233214996498894273211973356405798471887497054287456427680947149362124516417204838414241590026461120382540700871548477969659539178184983106697838171479051201545055885836740141319683031101174523403527584281345555281244163284119546580383679812117446952301374643143649050289991702471947658520435593222399795387776326688175456781306629866572885923941379462934870011443240192432656034588555809031218862978379142175247222708154150082790349101559257280665060344934844357569177009075916720527146988556148592017168458798330894478869120068082959453859193502537395211042664859919604396337837649761874550508848662565050654235076716951527962182564145916852577804866166246909932505787566923654014637449985032421000199022571741073566419079727540848833411892903528850920486901701505325360974160432850239301926514090386204672282785764633410262817234326152314175508515213650117065930984564273928664243759285826864503807473235186500955474875148803039183140252358939383727419741035023549037080262405445487278913892930786134563097617400345438421813346271895343238207691072088140645745191717427369065435596985770998201208210043966010175113594549343408888862729409770578366959245898018049746494628243045454788174447052944397303190473296549724465177199689073347996754166005644651638540316507556168105318958474458142229622615645176198803417592458487325629337206346072847556500312237719083215955747746322031778480699856330069274493020354938501889349149096849741429821506538048741746014921059002791143140577034171831389199059789492660875285991884101129257605018506243927389845368653531183555311274455560976777767066978273012019637429838694634282772265675461653862543003602777874690763986833208788535142704468598426071934449079716663001884574915911466163046963242154558444666379134099746913956929300014613650135625225079751827207089091327926834801058752426784990682679191833430159958932890341358537944868054622904551689377734534981700669473111756891237727202503362210425204839076203270927678967126910684611269084027017619907379185242351770834915312280028641633423274183483609786997278245840157063275374922065271135224107344314331474109176925579744464273563706620088812055811807783880105662754939975202694366602378784364532265308948343851032630229467681986295605603028190661824772587197270619659191083737419723539295382818930981593930652441699759233468082810638155557739139483244865962646276049950834918721988624134115757429713659593682752299918017952040378997384716070706241639509385520795604048295876372994921583983374282475755684402783921089905021534555507131612851412237591945937045839245445515591551291391382745586527044067164981642193486942288021257051874934441686543990053204092978342853377622897377397384249352177117387575451225522679016778036262388331251444420511418423173535472150087989877028839017709223681120816581816444307973440374784687567257077072688449649893689990878286091522628794798287667783242479453601906758024863093656675186134156158635245153523391238248854977474766898569966683389280149037613435195259154913218788318073481429416478369177830795175987756265365444210534350103144344087614515691564629946161975514338617908264649575608105155763835730498845336613739240646957224575747383902084196924366960912018410440605036835952916317806572550761808060935300768410503386936654589216981552023182085676090868197301151664675244744159627718793979780372440512103373038440578230729085275172021610340143824935268395956734671437309038509209851115704293598281482931007594090618628215015475572750089219413341021274526607589700616432221085456668919593411549273525987830067077144272552098690194458625459300402795325672268036571710842953680477077357402653917832570787528656772154213422133958273899673596769136805427723070974550093704382317559517872832095219825507840272620634259210860285321218170508375305714865627535232667465707691248736174287687349436665344738185100397247889099712728924317173772620258203410486022208910513727115632418779770389049387458395346933273638265605154000674409101230066789344194306639331578007134647237962262918736138591819930929489956005260251594184926788707700278023699283517646683494603631546476095834069317076995852663283167566721318270016801096192216042379189327997649232096299718094454889693420199459153302499921975474535155038554440262704411061347319035072292350218689751432410165354924527505775339358244761025785819438994841117433843014809015280070144978075029575042221793296176820420007038539948498994992171169240570413553931778064611575561662435306662428194139162707984411676108194375715945037440660496919842783718898723211645678853375660383608599992507508376849814258591095410047115364964310739793216804054531293292931811721679362055156046727162162272179690380870957224800129313965249337554727028136095261480484864697570594233047812956079297133493988683979638274777085408579031316447637260888534656631695434576174652211672940582196585075680650621590702669402768278188183492434782125359510450188161802182259164695671180014860068512090895769011215398701352928592633078529813244095431963735658182124629472893287812675757470381720991475049057560890620068561369022642734746155714208660668546184253115606552804090607038832061205080028526797378581907148383236501929227229579768135667974818293177289117631321254522187455680171942644278774914045642354738447886176000277391396755851587375806632052359132234224418329985530010414041894619587956942492796654924172959635030069707603158452054712456053574976136942767038001732467690491416222027395374629053172951619501212043064955986507226076310594516302704236639111575699371570613424422672984749870618445430245486976305610743253398369582087943920107095646248389658426516339136649031612794380827493082858390313245864433579152555915037135185663200857502942631528879016342093280949246683570567009574520912568761977802981838807810237720803517267103249102197017668674556969583951026276613258661482045645847342843247852694709944855936118067931840943634066815166057433999006861225516710143307659610210056513203608146202648345164472961734066530713380894207015310316704345428350712276491151403681721575694346779115558433303932271994247600252432284061038764474366606357824121626784366665875864610312058066153017945267680616573515954949202332292055446461804944421700779805713172991055561065289281917945226580691772077823230543666444374801968199248162219058121437947687946983059566191178923058027681330190338082073464045073731500179332279345303479782695301784842593683735141174978208776375563951508350335907243318006967747197808174371250057149279884277633014030106227744762047232576143891275822818157721049408849886902713575507228125586285265330164729183346619086604277042242040813427809530819904764474980488697265413194706391590717102863925986569105520430021202421510716616438494117804280607256816096241273621017012844689904252298106553357052979280968405133896774586841160161725518667915638671106196121744258540277285798617434881727005113970783998587814956955814201167674499662154802417960988223226024381090350329836050957737830094060910044669624688101250224829358284870669997647627675028804572132390852241296107481142092544893404261557167923094572770350904689832255546673088270534675558947324509103524041323139581751979473690387996451686475271902100504996011613259833744628278083550554827309402279588147846600405717870842307177598383135000838199003330885040111972265445403226127563713984622670788909862062319849753426036812897439428573960519986830355367436168241761926136059680687160509673521627949221323954828173526936065814558502629008816206001675634971705204972642440078058765041052383267129185564104562226601166336488786812688768915250504527587684321897383137690375516396590100544827079735717194535859622574018480760438874847721926543874186344517689099426924552775109217359952948198194553117893165584337103625596672681847284698562362988453497949718168989249423257990063854405468337875590575447124916478545811705457568208075899956499010998517110836134481580086728489072972247707338039138822462454376162723808270801106979511836710929061855067750034070654248557527330501929873688814001332035942156031110213920232886114109042154170349922830821506591344899711963458039486240120398651006868302554605380842037299730645328836722870242621979153857067018157004563541377431603478079005099245419863209968845214750593674151825774815904155075625105002388399655347250336634889267908351896702534755912552458118711022171188162712330866216525072314881805054538211135534988164347726152638001380602143445782859784090240098974150170416932067393992519348584363328351075112083935643080629424871346682125587791060630777582933989855238385470461597590458547144054942647619603048357392513955642572977994982549105746676178350513364209361561823719541485458493874241557895926751024138067219915881295023620618815818450156095252358331670627178926149739298791039906788054602934592087123049967786503387958693902602790732592570888464112448474706513042837485603129758020780975182218270277462478685414829083842947276777148738324752730244722248404119844989978604854900606830615774159680241309143449628427785890801934211824884650245850529842256815004947495579163704790229693007344500880688279596585034649453833344412591095882077546958887238009305976648007315826337051564857270354529471476559055947676025245624580690717826792239014207947253109489466286688079655040752516604488699024278264552083422298029062543427160584808572450229127429605058537684140695099057071824419076416358405124477996006580329165645019408440245912163516732482321825188055990426044386350999821126972261537397338719762051311143327165488290641403819078267638899225900151935535534668950924083653060383320050889504046692095612533458757070595238978664578073946119733410100857027346583241465785044726263275282406011978341525154136752274859317801049176518371656697121275746718611522035598132618648532729422867869339198413749624351030147994082153686440030045546083303610616739541882757423266374969037036382838813431387225683398982306341929665520580217277404147516316780432844592595871817670977140176409822792012019038102471535596635686846237273459646383768231739475000148877619501814076494415454637730703860139268099232802070650218461471041289294122814162133680467746575113808708930372234403456313258755196671439083752632501653170633686191764800675301761437211285674165709307666739497501181329922188424072935063267781676055522431479205729305603305669254131484290936024778761745279210487096725140185023028353952025597604671865533228304766607597539177951125075234595684380745264840519579842690265857390900188204041410657902600609624987954391878243538421216093366120715788657179783258162198739852130234944819992573285867375442188860007983578497113775541789558864839235773182522798113617123606276316742073440843019103994821450524935252060732002350710843591452045815910643818880361156889514939613902987857296653103182779626285914339113809054992435753983995158182483548130290895668119959024325062529719527180895151527105226823168007237415552710574525224157858522537802173070503721585733750926783877714284530867675196499499184872751174703396158551469377130631486510990303356020920421886943556577942657071084288781625763104768591740548746147685164040418451210060785516637669763128728261657933011189148801030505899677296551249067954427701255906418622240876188296195037555361666478829483330809987026266141272050948745882775489803499026937877160142128621226615249099531288517212601500799893964505123709058699695425457710411523672713278974627989772415625183834325398954337473650318465893394470862973588632597600779438319125058535650356966167231578455956596780556800223887014930574223525300246146596391942812816677282201934200512835702548479957726146984968908581831045018859301494060360748262119206444431732788116092169260844493393400128690328784736554259409758035786355648075820767865806573487418599281130684607143818716755951424575580900405985145183815487617660891450486772356058053906742229100400717839218351222372999495326171006673656054597084790503054860266800394134971898045934469502848971157944961111818120601160953400254297397457636697219380387642758223263423713328001827241411338457357102835994265518312122066784406793251062317606073530083023120121752425066162995673477284395815189745741228882331852391659698265998718929621667454631384616745195246244688934009497514385119151257843853524095804096756696565073110746040446668994188900713318468899665202980982206567417074563776786152451794933136837992905638536400065410173447162924070492737189700392855003476233419595833355274476066127221628829690018646997821905216195493839526045454410027517020663680890158012080481193845903100749978617490276943618128260949355256721593556884568391394627224829906283420544649680681600306580088241510860380810460447299661627226706635157697296119120931716577058700144303585324583944926046545249233935549465231136107300649627699255826737828492315450183676784358540558762349174928820705027350281287101362750480822977572452774249743375735465016099736413656322084030985037770780437142123203164277746299178236565758782877046578915008852177277051224176801469290606902512084697395340738507552701939960165331180417184303986239173885589534563782511209591318733270118497291841920318055314493096207113318913511453600965370605911326665879001143944543954834544561475732508977131816735847695848817667642946064624036174074837188041293158813346872202216130645870611514117351992582841690844575321405615875622103120100959011310644344150648260269845047930315056580046200124929297934013341612311588644115699147999015676929402660999224347094049982678440799646251925485115841907223438529370499216342637113446706298326295665287990469163171987398001467567367778787921326418956442909666419215363520007029644206485505967396986388951890325221751005240549339580978567028198895433687542795222307795365536153244309839253629331060673161579045908541241958309323583788523947190012112702577215284653247985665178204403062461810402919930167291338182346527158011683890783217846891278518113075407756585805774368893591773485575230064217796829537207700714516140497023387341107073438263624634491137645962462747652463626393430398279522493801858042409795253676025013712932526622803613891667070093143904291589028629027026702510590229226422796929531136855826759508419729955001220464770406121343173449702521338214511464798096896484123698150377041681237998762693811518196561129739840170671438613141652682225867983598703539702914813778702921782102113001453429487369640464814997903072746567156455438629524701790427469711474178000812405654736728457251973107771992625723352710493028566991572783586180637498674106537327707470472020490171388803949812347730217296747161086706512886522087443396185281056454228650262890213638436150418166843688014742248073250256660960801275829558865809406202023728787367356843360030923381663151884907777077521736611723946069126936316930660777914656510689428647452606383322697876987323246855098006249043774106725300701502361220735143882646643009173505860263916158622519698761358555875971181427447695485272119660369986192528435209043134878385855446135014060513719021803862257634003715267023519228472332245898850982246958373103084598013951581942641746019127686917863036580671203063664642425829778196618803207880615612419456127404467252840437482479106412889762814211662177667109280673733385334072427144000195397131134131136266225070606101098393330914212858488970427643150563413673895691162989998321287402411604272713012740137265681728845745883567716814214484250937435379335997642958879115182819021898156739197559370744922148708288340080097523238328196220655434184019484722113515650406085986279697010653895316155662829126639098317950638104285418762900285638987287661416188597219944670440874209527295165851271738954584861551619004330902953914815200370996029682154708764358818581805948031268101004266948228751772967900589865799885592611802210936546408169149052703089255131387072072904198182358583858655230791949683196018867096872514154995058880161736879501505493910838752867405001472908383085224752432269512215662499316840680155590209140765226951130855222490935881454393737703880289192625097759545132299050874236071589067115702883178815499456457553236500616249663585145533487721834336508696131400104958194231127192334108810848887279049637512889204545448876927118319704548154922797668745648518233479728460386111006284547867676330582033080212734417502676746007773725164753649833301408895694434884617780397868791698365430218114817498230550607396168567982989218325539278162258043683626970091094115303229282904568954562052021879646340477682838477403816471548191886480551293332715398329972264718736620526138166843743041240350954962933128534980671304073539891616220031710277181059956991172201070636230021806862753934304681744912943434686074631171868893617328138136167244349786811837291241874590888827599734853817655579995338277135659225907734055564095418981679602936627533180723254052345008895313702321239837052452043631846501725477791599499375173412249465177206033577319427944742989521119612986028573200747059229580180891863819405941122254024190780024027913700276673407719363042572373431746846612128459647240834369023638570527813306729477182524477841404967159645424796524972331272866438063484946054033018293296272777033863083838079855681298185189021125726347865060675884144845276551111148439291557550462873869254826141904509779819393307018096918250887945886087418406162769583623324072863980822802508957480882939077563961222688120329721400552864831867843454432448326657372261179971396348299699545544592888605112849683221304161148384453000020223714237147778312977697028361486811179596736257816947757444793427870780436671294896489589895470627656155303206641841884111423280252178546738700411921117014274641551975898368919795781392656169186607254696662378622541761398457038924207340017270166479079686089098900293615415716093712795794277959496242473921957722469755574863191243727256426122547306735815688493976668820006541854171104230240937866694737009833383277137697669949442814069477483195563096031372669228659115344340633318413602476329354065426428223878953997551380446215526814918448327275501136380102714572114462771787442298157996488483893095208652738452534311877108961992352439924913557148741860455500903186323536348576014866272856691329837627594732099435387344505415230464720490013899269393657374178257479765175126723006859319820928531503669323547399120249727305025912220263233969224732638534292249326349915092401643006305781198892318536878974443681029866703795899510523488641327938438747610616308164240766811313100846923864009817632408554475340530070613903106551601534224142163371211157679081982987527726664022720915488712775052970150784253338096210649837301906366824086397028452744224979253033251711765779255695679675426135829068598659057391345756288324637716524834271959690738886701330236680768975649115344143300471912499342417419676175448689688953808740072948190035844609675850475886026830701520860593975925769145015562767671841568321566535981159409591088482089482211124449795860301305308688632504838980061779620089872625052905542704270836279521762175367351420833967550500343793062477634283943894226754513072749440640133728730222976911859881180464532966815770392802574073168227323443814663421756519768779097056278769997709061333354388094223338536965829705847329226693825031543147264081413832077691857158215688450718575370207959427889963999770096908176058130425565128709694735944329544807600535219152116004068208685754359658882466951670438891894179825261710107361842865475463502086581857144435149329923739768384645543767525953671269498919376858290904425503668194967004099880477046486203316038373426281932516435448403338977823941097561263926754642372740809937763452719078703098762942326304793133602755865857884965244990294924803485726694946029296169656256568638809979143525129974128973665082953932983698985644540184122148285028636771925417313840844891418048519143609485288268957716847234759482045400721188855096064575326240579128321234123507535547735064269782305171108289983742186436767817582078696757222275276294056037071887291483490139518464428912193734458100417785001477060772723048389025969719762162457787736411212884815085378247876983247933736125761344561375765473805637118952793806980651570986944909873534081597238567765787345570395187276439277018829440487868143266918389321852310328172641825008993952489851919913084241550893706298124970805056968462007260046164986179809759855374601307794842542141941888764393984273810880990131293503235591873859554842577017807483980612166590604389696946349707214975764802422921489839802031205766713915480610611700455704181767856516987151160755997914835621972879982590384471439945925525063093350368464170224029243965186779772572604663186254369108692413730355608221767460551830590373691133589894837448288102309467809918017612501863473654555952175583340838504024359789238798389490650008895383146441468627330484540123793060650156329160166211791569042308966298067876136888743043662066621496686069825499590044619182028985440473622725738325730838090517119155415336164623714796761438977910613456944013417174926379484267051282126598185082255554828577173420822347498852681113332009091981406514903152099333378636190273970689444847976277921120457809571847624666355262702536345558391746699795507462931404372637998651675341669679621199484934251192963418252951006911931323573621588597836322594652394841379783147514496517348434114525871631084985112389414313114240477484472667432369272799729231191000366344246251514851130201800064899345687020144378731016032181847826049872490839159067053239478549462772083770184967149347041346764297273793826499103610246159613016286169735085586372809463967859203776662301245798675767854250823036975633884261175310149769865663507383756639312132987450536903186565792708680555602832366284451868840479044012973278850378923845276915533165889810503151467808343881051207841383509709366020089447067075729149782473014386778441117419993997683154791239953639415341693862015681797819743558718878383791705321273012968466637919917203777181900937194075039956534368193919520167259027481428884301316753205568491311104829121430556225624460604917682576838918663043844144313021211847567461871980203377982049146250482935504663624474395256608141154034070413567261823624862947205885599168416970664096434769122107495654187551817177221725399715702474601104302793260775732387437052336334814135263506403050084431548219971068579383249577586406033580802766909949378790231069062611087327063684869847474256883841026698125993027801939586281969988250756553120025056424899682662109950044636830064539062540929614170010630767647418407428612546982054105031710094859055458253578601622696666993256442000440530998662133191163678721024675610330522260383161111502332077894645371893777352891655777584599992476874134160434498790489667350276682416035229280972485841226310919529680010288562567326331559463638857631511635285551100523242075212713620775832733777539502395872928790098627417244402735984437448430200890684594300307527214180698116274873500103387581497516645114284728354064552512945699430022013494240055695143230142029336956607012234856727145446704907644335042359859885382523790786017649777269727247335293304302312345119944899468918214204996605412559576064424172461437507528145076391335236578208257384566423806864044581186765137559650962535737770510383551135013366418962069482030239155591956011613610269292457328656608069125024067079022041275563445285318382113391018464005203153138389086644433578621494008243958733434541468005210333988093950365369607211998717430766728134589679959680015912229466480038316998510797682321640253354513126423268996255131783738956075133787243978886461264523269972053719336914494247778441098764439984600814712147294983457246441273964179097076477130167818312284405471886938068631633618389251637740519375279253669762809911066441598891865460689613027165192907228322261478227331847521143546338017695528173430125380312548485303781015337920595269800813234289169351382304692746679408565541591989780088499757055186044363236564284938781016498443097922361207704538067207623415026223058051173378527776214876271325417363042443351830662417341389584545966813971695411332768294539559201708284300987163331244510331546025278898045079544376997055078954754463124328796691469633975365913558109635034944380554972133007347370682386072017785021945650449700874190642947936773084183023145165761622587711506039632240709941148409607762392445596639025211026809590990901030616562941427712899571075930183436810726334372286982718960728223731401106000531806884964291315013059264937682339787559570885889220237802271862861286967964669947808905451680409288328118120264589395501194406821249433627042660513019868433574721141713061748995816965417555378993322953921162733096290228329786463418146520335348372947594296670666904117102916570455739026464302809115154352837668077522752692399409189919626982121182659905134691218561081209926503613770850427627841125560112669081189313955658137126571309914535580939426223920431172255677921385160397246470278160376659674888481506894849631181089076474210732199325980744428841457627917176570102762908359855495531637364473927653295687311533445338086041508197537353884659191889235356129876590593945317788971775582548337669852942148480253532770924152659449089277020388619152667590315787632551385084015945742616640145543883296994707705354733900237027405897086074880368214096900762634854263599690043751962962937119387626497725913683682428252432520919566731935617781184085961117707245866201766052459985208286727285048991523842256787301429180115431580698768885946340899845270911105219965617908960304875664411476498720439218964327120462148344431051102383871584282814085750723142956909454471592693767801712815022610104379789143470675232857666814228298022438930598701537832665924791539018483653043242131906842221439407160574303164346891599174460114148963018385380739697036640938064770274340591818133856762206190425950274690331488562042264105249798154773453081136816877863817351111626816563543306563397751396040286220331196443063737706316621265935344699107891408215440790013982934576626068614791199638915630125840768776927098292246123375432892293223537040743758435948566843727543303543387371798996659030975748541228603065328266224998905057171154608625091015725647330622935779075573223313602824603262701029308315526400255433116890198038517196233578586021118404176530304649518786031411433009006890225231610202875362089549408379962303479579020048537161411762090664615065104419203306730933924286657814274077339973779812686790212366759876770137763326884360192575148025701951505011178046768807310256831020869128628595656034990822762296402781998473330581751527708350000586520200108105377169315307734309995056573645763113166869534296916477654057434451493142741997179331465232940603967221187069332830195391632823071311695921215302087549302690496219133143115125536141005291397646143306290016185179091181919871090352858020670457166087498228438464080009521064694329714231623757392059166370183381271016064980546187196833910968187279220756625653437059247252452063916147286727654008471786728388758003634960929337411779047903934580033547210569849862109036267655064167828961344501935527617197743023641770744585632974068931446589405378226719083118163004835668260809995256803152404357974726217399092657655035107644003943183006690864850827663603295264125545711201457127713979111806833331722982510120231922484035027050290675084974884467513548891394622075121169726902238333826417442007559294663189221370201524513404784627368395351522911720968620827152045531486954461593188596425373404602909289050106746967880270793572063125107723109611515386162436035106453593978780445192150307167642126547565144683174906084321636301095465382730782159579630998550938064129453186249702469057223979619756918185408957749824070374636638934363908019297231749755963745746020681493151224941153059044039251802913049105722998304253343410821912924446049590420677062169907857134083468175900168445133168068759824957274005804443204607655558600654431705959317113191397066636331300243092430318376100618045631862845743421507756023874620832592330709803243285035078659463692000121456987708612831945457273467902368204020953426357571697397361133261697058075847181578466897489082459694580530496720858819276889919866593773060144147172874189458089183383285453089419873990993760456650289346815405388070844528846102774181002491079793045239100951609908833243511669164525413348465682234169133258692854613145386805491194499113737806905175552151250633576963777926346070853405457495058567259633238661212353414369355223180915085048258983933442582936061991708856426659637008231422095023166293653041871672964489454697662611852075152588442175340518679645940246128745698906278047212165069263028729447161533788605007651552812637275423060996673390890557022855888383835775773268840736644484509650095387995206391608493951343097797519306553012831231428018159267906081759773847512188600400128988179237299846285507939200637887148999873367658127491600162168162206453660914075768071653562880825746766107544151358920055784892866106789109036341468350495647075233061442516916260277375043189846598459899980586894043019838684090242911620615481311621787942565104176138879758536419461089374119386415857084986348006561968556368637828589389440112616931218728280053790559969800478959403402903587332228419950012178641067425592667513291165265078984065455129900586152969116976769335347410446337605657258384398392029588575717533868335932377080119291511811992899354954230191529779669664660580382233554396577750795184505784313736814341375608323642597857058917310652834956568910175448540917061303306687634929646578901467451100897717362182055829378418414710215776519501996043355942807270167610828315766755610692211570252861135004722836707521894652985640626032952810853072639921410296522766956181536592015400844809997651355439522540306797553673139656892312972378487309094765058460625359009364716153892233674426701945088372823503583622153424963171003930787143529901331045549820839609870229984356150913497813549175505583135656268840266144564914218756386663584866384190348667139961612552421131787802427284879429002110403793826088360995262347876414331191311760219972133950227170260020884595898733610743633571033670003220034397523873143097111991910288048860893552668064293482244177484507432845781589938966056365163678635897904799573024928229141039901573489710804818922560455784923385925403496903020129952548424538116904777869978058247061260821591454678137308031440981573778266631066306030117480070439740123161514821646294827468673396275721943503921462638195476047298162857289153289602876691307781647339472205473534413218270567887746542128714394094581418875372930687668698606039494609585283596490966317202778896239027957269665833116665068061734981154961430430543420047815712460673365888191089199396313474954870888353490228721585893053045931626935258648624827939697980128743950749474515681713762153986218722895139558207520759363721838911806041943673958788954370288990970329394555634151190939853732245967800006994747794474357725304059074641174101539786117906576419178142656695076998196789652883036285325932729861060234728888725074726763577393989840098760121308408429606549234452028542337825921500471412288226387588140953429858507227548385087843695700697950266944587278852468476789338812697744851959372117990459126601472594504460914509461240353596828670994461052022144510071856071632114379235010460260951879862976098471442355357556951307186067667353174503460682662645518508147044507943337041417847679173529913244478236120862641741158069904918686841425408218199736611188451031262018228329597423893813041671980431747471422673708715191140753227078448872113022158509558658504678808821769616004554824876401671969009365088299171834322232825606180156901171050548853235129204159134539129342954566573843086748403737982749565332717932316044647140529301377320399485982374313975493914203803482507333925196014935801293438120924447392099592062048772008209707209739003674786907881959631033170236004677491409152331157861423865332141047104723418231414927484297149977779072241799068432200604214271662647128346200264477961911719827816728219955083695386290116551483210090746723628619689880912092240983354103045632562732328538358815638292318795528206556791617272283827040594714769256976165424789892610684408089014398458161482444619867097832358945127281454466508050904910945252767140664531688417015444736808477295573794702829219268084211096189097833293565458159552317991344004244236436966486250790262865895679370968433956501569169017866892705736577593103548780778792737058756919548282845732560391079136285839627206342012833455172964885117956318637914693488289543117731089253884473715550868326635536844264024706712441179019331117445755383090463898254844004914483518230550417735321223313636489969488671208490726382956864389994481977095147398981387300150768666882416495277726910578322452128489651726590838965341505377234556951388079938090259295064646661734960751650440516036655392823530726036345526224982855530571510717159276303138698497571681996094399257799342515017748057284294274909021352469676382010715187103360359236964014506328075129617417977569735177238957020573439864384477571616370283084279578623647646428734067295323029662505630968804363377856799199237349238967346495544040245851600795548052786716708762507775279478542395627769838408527193501978535164181001956577674337661908053065610572294543421391556258456655067123475009463103047800654279130748986960725736891639164141399943368195071300375891829817111504462749926624041247631523551348724230426959908929664489724763580149167621319651408822183938555366056577075395471684263406495281434695910353707545727311536854202799289388501579780257277961059951712438425335073054810019807552760218246330309614171919126129355363036952262350099292828741151979092055239528091762417670476969542943583120570332609788983392013996803742204240447328827748819359478129938996942799884285315623197053018793267651050949642317211196151976594116887099434611023897899312971386198969258955930677151961537596212795951855301755170929370948330653071054902751405571448466092949278841971372767260499588005213749388286886050733407460363272316079429068081399913063271425392003439183722538940827824023571623513786364165541598372395571928940640188141590797494249114227624175597706105569618274715879450251040740930594409843344091711478721422465421411158088735088666718624870065572825782604513206786202789133424133029607306101368881624791300802257572597187524438207729721570163250670974065266897600034532726487672073558703375368898812470521691415693986021751988163020538724176739155383093089570758588393268445151595796437330875790959230114723772238501808840010873179564959720379339084359314855394290982847472578589896440848083611051996325765288929028328119690503796011585456239324643265611945127076097232292172008685391603770970189869572618854748262849584065148178048675519769894471630770053599712498114156044968649227317376869429219359869275708152093743770899810603075322019993831219863651815263063953014945566124757500432405124150520448776415737495275890797920587948786192399595764186077103072063807682744235813455550286872783101875034014978432781739559020470512605160192160053474279802243020952658328416642201462080638850998035749886742132246942103535318087698524777810217464090974701601382357431383604219251885146145373522332670069850380612528379579885877544495959373257566853980137841644525559011541181885497928117228491020429327837393349076586662107738982201438609697356890145161824604209901542665129717782254783680641353891253543069064692697295569882387207943908004709028534659057414893246886993298114538072584782976217865675932344193112783178119726276747439347261938898327995826352112858332349249596924959087203833261514250637681703608664342662754977867788713538971479155676388321402849584001643680499764980681179949304146085528744949556652191781586639950700097903716593018897565710729381205238116685956688098037919026334771546839211847947990594744011822905084453509641511657779258571543190758853947827837356052352359789287031738402228780796511550470772228597878979929234259890033573474568873452509883093740674321025544765401122980291387149976615697467174344713017182168072246214291950464299407007261813967976787887279416828098731465376169448712961259882534338354161117590270169506218137433723082813544115904702897697680384977282374965453721773170773297261563095823779076273821795603260558900056792532858553708922484535423643528245897194722890067495357924983272954788744774674853700959570220125753583610328469581264504549729722479619642560243089877227417385539889935251187623237018541396016790480684463711865625440651652869963880582828376924981078755262369738705863394189342693509115575132752585788625321597731760996598167109348507931999628112808815713652545552377444791130511549620469738814134900298168454394555301366030255608003554560679671869223227385463265459700279871895090302523938018045349578599154804875196975955215602923485195991058230843542770913246478003935423405999416377096648062961708319886306281285380365361053575059228019276556997904619798321474634666363489203738532275152332710258623221230472629017286367454173951393204311071297532281416954935760037913513080399202505264855049860433800965426901384947295306060133204343281948265117328336308014106653787699007379790622993409421328072709669537285487614960477972534374728932815272656965236040437549407786805918762442834862369119491001993353769114367096876631989512670841429466897159858049755908362071238508774997194077594107281890070030706434833985831662204282291505701998169133148570260247313145688994893620927149739225103963112418206205365970718456468059493829674058897787171308536967050385886446776280053512958071988725009720008176185380899431421189621219205394606106825969108296456314257074179040781676723291657963913188047459580896796453894392831626826245914750355934688741918993568480720189855329210244501321288378414576326654325906312628316950700674057048216170460463012015592321192674582292216272447939575106467406820315623412608493857148948210275255741156241766023894251702179846289886296359353097712646777394916008983252614565087062789883533197430081063094587006092143177000778230270451495963909288739069731180648801891615025853851601609291499029043304346984955740587637442404578534612036414795592262695412428969835240803146775865515034736371562476776108657229094258800488758942078905544066474094279583197448291273506123071456234962037451639668721926238899297173409105110326786255473634747172295401952259032456603381800553189357303554917879740869855196921822597846173619203613006097296575004582768983641347162582781881677589441549031628003994357285482255286080880901129397545366020856670453299108824293762961011692554324287210784965746253564322470467212137125681100904130418116629526883350666395783955906577065057108928880384032590567874492480330675187416859989252898663331436007340394886489789596820375419311150312972483178888444776461735956586641747027654737593773694640665723023414069148180381512289470539998868863142948991392650669861424083891696217639306877950284054590213486542319126506980038512075722055510596754299871976728976416483422629885356739596482195209586343297081490095933184647258188697419426706760265477176352078610520068651354265021019610492681589555446419369269736991068932319944261370021025211530395217733813231237094804953414245038392827534973658008669885806698221631117194761935246660510812782181940994510917581420748293997721029034415496533438968085819916056185245952711367836763389626277403434024392707041102998213675071799023508899517125611017913297831744620491365392935325823376712478848976854562371054211439062507319246955659105003743553764192596670670636105726076886224971154856767522711383677991622748185508375912557867591357766877658078371303223642877384872360983736486970154033328752368657673133681343962547860126371624157648008431249908421922779984761561914982349006965917262623391975253967962630235602907554418828494896013490914245506630915107693083390923777338493107622225686935576106072406347111202086057237864435735231209614591904464150432162328178520588465350437441127014187114133966241997476797095431633629828180544534559417143660188489872133882179026205910704702724066270407564875798279789424096049416123580979917063995562470824493396162655619311170772433069658692661386182034887973845071431420424561633291646496804226015436408549193168264919734316401592755816378832173076772168367235094740284104575489794556706220516073357590419630117354617931886429735047227886107598044999299006967993241483848073476908256674161144805296886348960920358343363610408210055219803854034916153614276650923142077641189845577411932745698712826527243549816294766205502571495872881747680141454727321661475348281784480398592647829433631507145160486714985222182369993514692825863561469810116152729643964566231845078537800509960506715347699819210383993423066522829355627784248334533521228720853678925268222259565364306909801867571008973024704871817228415711794085270203691991776680627885631800817934207403173887680138020223025471741900404613730495199580418564972292014483544488432410024455646802459504475159236533704913208952361928558873789232567265809016707892387019889659438259784777203907430143822763077760753306525754473829217196763566052972757922854780442909299802169900813468764571815947232571727059910123298242326883557621350183021571300898776403950850454485768352778584154510869366914023479554426840269628633638759710770025549934557605244238215393065973697295556199343269636714408428311049590227446178370665509129381136962796420995150220229705053848337781241186695655917132628357984056198779588859537388073242301423931838037504994589770367002894301953793676000979908813261523470580844353240056198502929743324892280727333622192704456185719965340888308305508540930152819386506624241184779153528044966362629123322006528795196387743419757485221187471959871334062865432107544584302046729900560228222906267459414083495314542820048324560084733459788841264141016302471404942912700903288832976347822055140412090439380612955415412567920240781728708107714895759854164270647455849200684158445501075287075352391567732538032616155322385354327695395340615579673044199192838702725250653749354870326976654053966743006017226624039367301532641815761093513001223397333015749304743093953979129003156685306494559938063695369450085673915552607644396744091689263275883962071548962163226689130202606803226546970828792525942543241401461466750420711472831224334881174651335662440145140378047824676752909855467342280079329338611629679368587170193608166463048878334575468363952590902480127157445179596856863555563127108637680034466200761642008496688048148944258320723907108267225539327057420534983475343590883704593467898509543925708209932486439250554102582693174043546855072897913463337508245044735917463523893530167573287499169431044214894167588081353608496371636077814245910171500239063859068373867581059861367970913551988751745877433150350085224486868717737623289388175718410463498460532717041774137488643547395176932406901910435931301955293947673347112884001925299521492242685648659768173720117774868948152956589026003877499729626821610939841975373983815355880434523125983575601075536302985841641883029670862087128806142119514101558478163037645098750540901312147767209642198163041929591906099075860071676950656706423049384442129022701880190127262000832574089917484322643401179878939243415140637617104076645417158978385700622632689246356356621106512136024316958978682419054174012495358057314163761918701308237601180671939639561333616135020320445696665761489051886170789195233971866536141955882181649201690662855976278443202423844750746233267267631647298417608542034225628991708110867332829953711767023001083774498349319234479757688971057871530632478613645019236100885490921143602532613326851455084884433023996373932371088497330354945906685000523364736497387317314618590370293908857965340388805173453691152072276629185058438643114560561603155928549451713325665649431131317017832542799584214235528283748122374027201300279687501980478257538870109402793665361465075555822645208065592221633594232738923500294974990640901159093217413385166883393466731154759589210980874353876551026147066731256797580503543961422637491386398590795854618657265990417732643038229689851420576774279284099050475534928234871208385875566652737573485673301744408395465876338074009332351680881275734026199202199503567625820126392929655225707530654887835522296420239269379031003805020565218612873552888348196400687771841365612158221117700977434748756445673130906130047530888421495390759849028045600226003807602591923577345341662055390300647429938567657629288816865326629352352533084507622063128825820584177799274107684736413262037275170876378985225506234290814447562384425216646319815236539604050697277757771940112655127248352577417480661958700663946553296757949406898627275532242735354213144532614905074001358412199742027968102159866671613993951799579727841349500616030863637471805231680091891368113788252628688055647287173703098557671328388504764512276192290569816697170610940791732430208989243281399813507418975326942642398629775234455820204942480277571547199945897136306638507129449354069290738705926257594977905552145158232813467068811779884601730405299504001844557894671791740353603384138254787390261057622831562702186371850424551580860202331943559472891933889012856083277246164546311051813052918868982553360554034249654796460894432846568717085863072078829781771500616529722794138144154095940343455632275906553222268823252177370964584925937442267917751728725423949942013982024340036761046273697583098110045349761515606032545870575650500880679005399855612365669938318631579461478175685418412399325254895090857711979784792569614263694843952237996237312772583246090733637168581679295995831783804505038680691467611880393545577165438542365890503482388753293604947924720778927356864020351033808872877880715444277482567818717374209395543485425341133676872886047220269065395242298427105674767827697781977422513178248831279238611441448813464543521897351884087653185973190131254577653408609873879707700045943401614337751362070163080508338203239112495772931960698360988149312641381012658569591734159759280059830971331229809028778825517438864130171909380955038254291722295564881678357706709329127744336007126934669771138478216177473466402992713301783473006691073237514570215148701328414516060199061771303172537867844190066346683454833114351134475397002029624292669244390079129438094655121524163671715196823388508918684801870753207443596246042706941691339783104211240018580868283920789925114452967485613895465804507207570408536701294820413848570930238994476769648888838577493296862097568387943785600458551149166618145854429084388492567765412351404777059206093104716589572598749774602369667411343558571146580359666739844128134765826078219740179425776152954592929254576815665774370281242361917652916606599292948427556676440829423248924502974758998431385472045572532064231750478017175723252765784818131768134116693369598016875537807536530880606942436770219716010764718366640083515196173923730981569796495901014631652491652781471535773784418292324300154921891802149926045863588950727165651742983865888415406216443066288978426111894292629951407765095805777325453443263686075880345629060431365081432869342070005752181532480264478751634384161945984372802945392643536314223971544918653144573286845876026231880088573775293026888626225676999498846942238050080671283401435033816245656633058327846166078416042381849882625974140868670222755677209001112914208178526825966742743572811467757501919515986225428919469075891047623833054964158271670019806744525346543146418496365657946202291068636324934821323357292215638282792771551621132412594845592242659670794625025345378489600280738999533442657711179062729479870441543336419456000318063991343387648354396765278584440681303209794600498824821501773784607165404428688493847508682824369278658191988123162767790100681591897894794080256668325268665693795211746250359382631532590750263216807167165421695331143959660182695075262841337983541448331808845047992819583051983859930246862962404175257848631271041941776911139945396863487913831226372459994525165112490091924680101590858665112380575474616184133846670256062730591344932591177655405468198242739551029745561376025152094249931569315279134291140320107286448402255812360703665858182098600793325295988566179522901183175801958261380229780347577732193769061665643233275728452276887945835839606777039691152271062530477003448475591238835225665785899791960638704006790721531450055886416756241617941399836677756229233726436266891428834436830876085121772467648564566590514595795064578851076783295027280706207504065047898197871604344672482863765165600911099858479564331495497757631082278196112973888220347074464006188245692729202842927958134750470728972634078908002780782477228723327731491745158496891246517838208412997368117457359564710045351913309313065264519047768826943103026119375132128006475384626543299711970403338321015202166551017765357433659894585768836294521747203553439211356230310304101020178850255628307232118225154386670599019672461631207988126034341259883831671787711977433386545579330981661245231411717274078548660575530578600561443467448649224191176830185041485955587331885141010588892492929135327227116166686168120292688309448543370481207165227384364366368984393687970688353292745802346678790372169618882660536534815270868447336442066622360150815218153351457206785613373585313889256268941452312257965794002064084514805196997599696204817341190069022130152227495287199710722628276569533971888907557001960355512857588173040980942185556004188442049290527573963183452338018329905542082127628413729368537546483163272685552597448920577202972223861937235862647442136605316150566216588666047572339649714718522539501326826344446967487119140583058586234796172499950959703320879709189030272002815545348490537695838063694804456783212220432956965585292448319454685429518539086958906953310830931202239831076437820783331087420329572900703723887542420506092399293617140318435192127754692436528071739880150028469173633151652538448472952520318994696488985059083777746751304935075804756047384725414983446870644393387780479833266437596010105056440923310653873066744877635051117699155159381523885357786358894058352956795811250214848342334323132169900688913384568654426755027099737843745416945117041141718765541501728618626855831044853282614041890463777163661317294910225380245330485635822679390616552148950748634787590951529691595595240804247092138717870247348695319419560634159320032556186027036452370748407004515336910913737590121817266550575259574609904298216248405295657869797736384451218658350118175527525117237335473542779394031152306708451995237105093885024845021906695122805083272339995787633381346022556056066465326886856562038277009133502735064366767666585823205372957562877886937715199555164404891542221989715837700248039784650326203094800322787874063431451898356040327285712090669779037047260829210079212245707754910817543061902917580224457373662004926404422634709042945765070016273412487333077335378825448446437300908766037569027655320751961736041020326078546822156951753106154205680408558373710142391255276774973099403205302645343244805283203909330758897692999696287926426017484248778175501121165375845370826046776061763336688580893895992206572000446773681443773910245389963359287969002133335626701283970993062262836201537011451376814031729438336791359505143697750737613118248657081059320980960053620429841661656272967337040034760717436755610367103810998300674680716078297628685095495953300801261597115548110837640021228489300192411977165720752356864715943492535409591416732032760437744859683850883868047187959091557259845968028495700899188573698328911135613455265898856870130755000822845123352643392546303792360593930124329437245825954207001362565034950885757138219074489220232183033713033414745143652317413220250951737718356555747271282447574697751762508641490777571732747031997876384285393720543779482709898230913145651349128110394972078007074001716479034012982230515986903941852068087509619896989651235610158352084049561082203411617872115303639519699199167715990127582916691710653713308217001925061183666484209731528534534715685017012397469993625404165388909281188321550502584120363652609368036970264616881707990448165202326187492003535850920266956273792995612104337154947760390366865652677650906557175399989088153565988287831436501404243076155795353486034310044906203094843067465764657247742643250953659224780940105582108467783838302536564252236159605204031416862568449223313975946750172340856884065823575793410448255759396979760999566851705549284867566536585101096885370439233625869404796197734903217924168705389279758458567498900963227041369066653530115937999177772402897512871090734709419049489409738451465763246250695359532067689199962779795039372021929158899874665996268984610846303496540994258988995578206914112711249897394152490916905804307577014658328656684853107011795684583634586818127148445689178130003627186107122019888444466986816214375903429441716795732761182845930734877347861433053792054930017592681750102263908981167058872102635091124898563081018979844658800431484818213627215811698758639890062835241366159274208225682632030426983544822445972702764135090759251591744416447164078295797179591021978660383450136168667209019044126920569772618090605445328416672809853567985685325033173012992905761337126449120462612355941852667089907841624987405192753424942732932812762525960273753216247766731090735376038905927663600028962406503985858545737305913054727810476406097017556588467024014110950184423118973679388748783706691257238816885871405481727209620950139982611268545233419372956076061432557504574807745194068102241124563149985992280734953586594309383037291831528498759894708289792772196071503372318049880930372265993874071177264148722602363225002634763535055201202991073440727151048807506903531968879738866567648510121683798870138201524773728429288568361447058174241268221830153538398039863162563815049456496122184380590551427426512512138778124458974395606939642609637876873533849115529656375800394112366147322617848785290097958999530142565696918447072668966768981053776385766026881158714494050298871209893969210779681890955579802589022425852279671561243641864938698636559265251088272103574141238589893189689002199620237615473905093372067983571827335066721640451811706683338537885966918064029575450814075655142024070141480482659306421008049611163555169376959427057444790284613791130068210418162835021091365262115626679010549460769313327503715950667848078161946998520992334368175440880538361531984421727057741503719189820758183912850915215903194847233537713768154821694236163895061749415624073167111143419376066847763653809111740990115683422628044744955370263179488014138487501345567441301946261812440610063607612865320810287550395393833226260009598668970807428267738181797565216980425131452060227833192548469918603478032677061568911958110772873327752540805600337083876350821732866536444707420548320069481760910507132509474956243129878589878501297031796605953159974050853263768945701525800994449676492900025491254711474619251521135646844675502650635707535798695958379919588486161476864727301537320441798783442978508446310505504645566446983079833209222612341651843458177917375362963696396849870052782581526895642748250815153354890270879785136227837934646535052895624494914187356770677766661095779933562288800336796756855252746087701502079155198205880887428681717882653785332619756154353143628115341875348242197175500924427954565119991667427045966787420471211489680248721684316675280338016844752908043595075302632940311604530637610156858983896089531846072285128470863763253379642062025921648445227902693187902688719315242905451950416371390997879675480764575119291024514626429905732646180869344574073984971925032360343131227133406361772903095595014101752033453992318306439997485250952511464072369387204842062603686220097563883667114442962886578204600835252010925783193758901447567585238829396216757797347975762582911121070708879683721621003306800746827453695754500131800824943570302444638959710236626914966094846358452917148006953450797302518943805212413110959633204475000957224041136237471410897604952867709538791399550236197369342013746739374790710036808101567126872695991097318451514505165697988287498046567255324600946735745154073601931553479481801503011487290139323649470727809230404943810609967709956994184706020774885772401252357361177197089581259031868652835457700012603335375028357423585516287135659797416152209621838810007007620315366253765558400416017987379457294912531650652592235765928282317654306973399077134710780493133442097862450406317349427047141126683663717034512484605303581382328897822970157118456592612631995309146313051168456900997814942399137402481097034226285159845629835096912424323274657748923244972998709781764921174540019880666475838859713064202507241988514423199254486612096951821664710839936044418359444048702224591918986684923279990699326946421266099135098955024073133684159970438965725865804726689101036070422181948344548675631312792939925447512015298913129644933947799005504280642825061714271754182966407139719144919697429544624364052295275826791726446478503957913218618571428720224617418689864313203755404842189869491140451434105548728170447801663020037072165177875025565275740075140967596551300513230154285056492751051457745037528302533245175449404222192897502402253228234810813398627294484904164490364092065264109363908246238239166798886531046427129175814808014474550521743138370262726383478822988164003908763426561406452726943885686794414304565698285165609090460318479163989194912208920250304225109077893932555966599498952669084715554723903442495349428958426893385116231687401016317401912421817455191567612292418307468236422662803852097505331392423255874477577495042989717567534315402004696045624415820420597578903608119200222373310212425193420497963061850285064401195285711173108022623190216134144731977909571585385106848649294091262085420702416468672798844434140327525160941022167072772914693191578259583807888309801486503935074000275066268639993583530499201445163542677307960049469655501990899517194587081563144085385878528626050814942281500092424928883166516155471807037619375086816273070585708845849229280863720360938530797857684341234344664989065529219301324737988715809384579965596653316777377304786873601413842427203966951971570735379667235835291290544281131388473433912608350826037524371024821584454451374978163151824807334925073871373055834208505879984676870924453826196566935516209224518782985126266800772836608691214051248069823623904147434385766232989243744187855059529345725298811349364309703570119094571372528953760870896715453981676786107350759987512314898854778367368924956147904705540179814757530652279519284777430755138481778181088670433871169924496452150759103782655263163427414735802690821342215056829763706224047490090054765768560621995097103620128586441511639279435790574265830813317200980341132892436946249911034723445015876544402427666552048025270479327199539916007001069708602889162721484242314917431290334485394362346385132016706635995904165660383507537610244620998967204768095316499671925960030809565756279652521946654176670593846755901775608840290226872664000781988623164903894855560636603427466897946801904046029459459438286037233526464646031774618343345687537226890591203323198773771572804518539771325064304953134980697595447560703937381472157945271644901865465120258466693764899024294784267343279071313809279923534920378971145631597674079810961269896063675493599991300971092930056564323555434983728762627134828130000668921271991483340324775879966474795023576305368928617827493368901192619961712365960862836619414847440242493997577899137300989508891925923354731437614568123677124532040042998415503104946333400072572580051440890605559363129747604260497381604891624194061307852567094892298066639501135941029901851173896373019004495192725006420418626147904705979313510156788940692929087526275515152032650610358755002580807125764970231359725703365568544241665089530782478808229022327896417914206926156798094584706293572755527739147645145666543306032995321510724211223098576753368673926767671905468278593441042192617338810783420945348137743317174528388080196903555307108729331219748379150591613694632179574711417308936727350797767496021054556304219544748329915471613176940040985033413655864589551078682381892413125573972200232444639299476094079484752565982339454645059621040672471279902484853464389860521700859813491403906163925311599282405717088324889713160934122686394775190269687190832109982149354447622190434826662743216447136854852695385785651091343371070082493064275825043875059766937102834692779492214241306807065037184421378696392721443359826182506578681387859636256001207725777789832160538378587060430154231630201710472294901603843704256275732295395604491864870379250679591501987201623187055265052957034050166410645555325408197918805365969635298587370426188754172295660807456169126971637504965951089140801519622067972492405647684300507334257101375063414769106185303101344441337721928102578902811665076463914307762124270013656765433351394577815327728182268989212579025986648458539920421338717018011999240489312348401828927030640761979489079589428456231472420072994959619035618594672764701747224630389381976514066264748217902635056625947247014490786068745415171445095781145317141103756706409499484243596688683027246103668286951275430695930352516754639214874249391601052236677174089852307804901908418734710846939411414214779783678587755921098122074356445278741470588533178226568205908017621659998718207753790684048596792232712761498971925395376926509749044522696598777687163824536719530170395293760422849952249916269854022461902369500036344445702281879285508227920338549950737783509989543221052598646544856206466011322609750650481353012989039194572084877188390283363352609987250614838949678920626984770199045208810703839739884437114215777697140602977153609342259192390788541096678007767857155914339424363012613508670330314000875260260826236880514290479661984488372781189717218613276640609954132804102776597930443664731912056535315194334109831788250166092139866943757949594596961284054842413806696301540265751089048630424026374416639063509145436529984299195587175206211968229516075060870926451652423532053837683627019735562627315233580869650755407512208817439484867621048752602279413340475848264694976000554503925489016725901593634343673514763809660387839151160684144861742908903352804530196236021445826692647515510469367874102370615579421653197020591623754263580738345864963924369094064573195319532108634509321383311958227434917659659471974157498080191919746646174822115628996565133347287558163458035699215044644496132685937149498055145846774737556198983036933572057022816224834916452273505391047268695231468835482207705544825875012665809213628109928933040772302237339212923646811243038502615923092396889935435096678660620643364833262819988616507809108829039121323774478997004981074800944942592570704039974784525810730921187475523676822770395995208333421417004370144000774538035009693072747831468715150940457512502032100107143532302748785672705252680035921649183411018491448823261489392185943886006933690468840104813513704479533990224977269442558031775099330465259485103587393445763619567803539361629949514170698180123542138163733447522497775788248732243178020526361459511584313152510129783558892869158436962519501857505539176968493978104747657446171902438020312013174894407655260877027605297968400427868777849874839808518153453320256905567384205784415130619856842121716477836322313682552675497890368490681017021446139733371478302845567756035320117733898768014805097373629380533089953218148144709763196105297525661755306806956880556156549962007829309002902676194773385635654147332817651411573289854912110827613235362498995964056272391369648515011584727545654265459162713825126450098663457862225344699438506849818702060139481314930810049761384378927313196100673308674462272552286257314181082426991200220686692518587507987777260735728693543475233614782753965848634449745870559786610567299867418292431007437647536747847050506338562033361991909374486651391975421556677155235102028890847983227153902915240561888532238325504303908760048097548618863077942861962388657779917864404581509432474341021182810085746663500182853951606271375790866985504635521707070270287068818368644226891743287626023672322376105019998669554659379063902150808165930721509278294083649346550970816959114885721359532231911796385784544292898827099050612717161845121394163660390027813122358014795274568005151787716129038087405654014850450597326679058692348663797417243746369283723064480938765397245683636586317431590285959904275806671556798393867992584326380892043551569697559059976963579205696766177442580320181586011078442371066184713846875177163489601154963629013184131652651638313881178768519838924607917450472099314071629100561305699710311686512422152316854833163234430933699986786600116658282919260301132101755453724650295984855340440006362205214131474681655433507615574193308556448524458610440905080584489527977982971884949058483166559067006535297650105076420281540270212050490285217996853493628029355022056352266981647770704827844276555477673032280835058586579127456844086241048161213983176008206746774312788257245265033823672494250345539510429519469725931897640355097360517825866560680448773496219300591057170138952749196284321385406896021497646713401518404087812104025357441473552085282414816876857819128296058648728931798139214264166718383070851849746778373051941846962323646845312330140527545620409189613515296870694925254456043517073352459203279098668673731633150904026138857238486149052642251401552753551770669633439700868558946980237604782142222764737224304969221598202345371746930136621044467367663251891012514777288667081599862531643921503556468216427955520410997244576837301929946583287374541976578314845329600912374347929622635598197452898152699145839790757862528521924002517284429057982969650263043527360850155495101712841025770444472522339144248409216591805868209042173958263558603977064789317149435977857097851107644796707990977591231411028866397293496698290205198639288675348902349357533622875634764437514508865723319601778707593064646528766152399816290923072466376418350806251517264981369545684955232053310928887393249891807609195316068175518956829536732824028534019287431634192971456418033809075197504598409526041960895805682146938138661135316431518493493324375772782122807196402355285816029015235470179685684467495625305719948060376880732798239671402047638258696313999561244758439114002899230419752463462489954501474901948106134748638653191681918561341187562198281807337564087866861181170297187931671105734046624049836212242747703418512041695531341934915853312708279390463785317332215394062714800696557330246783150199788786434939732728145936670072533228196557979467718353678452446241888099780060927094610148834679170588973347193923489401065154442371582904198482173480424342759465732410277106085773022693730362079113542863871081497624097475111979425972579574817652629260384783012580623031749777774781758764319207483379184642200783133220945840504461597228465509641321786803394994585618694338557833962247882860811023541864109077444770255255933221263961316340922522544068682259200033486411621290088055693423716628618538018551554802753645278664582643146395664607349718522572200042491960364441758273618766226242465459608362660391954775082179892369241388989946333064297316409271755309211365495418740511733922332882921965590264846775774984774727884829302119700337040913207575297774111147449106292836046669083618708284988746143843654630311122376661515689656275540771433220046336752188545317363826269724030746290832787388499880853958266872651341715035895109042879752126633494272368795344878435631477262667111824987629773304792708907770601993683863350441189379779707179987621989834778818328018758212349581905367854517211992304835664438683914653210664397664374092860824253492663712197407798868514704245851061629177838017641138236871544275216441539193789971328607451101749086003061185861132336276434408883998890664687042466258920627552728363804535340443827502420080148675831075820013980595541204214310711647540638579949274376639757474545795661205951297107446603518821510748588726456100760017102822291545108961342095633489438942156919846082282713462499137108648756993168878503232049221800055542006568247178453230628242834381737681469775086849679912394523622343347585239949186099324835604585593681505814127090535266885826381403765683621718143557023113524922479583069956943599426733026707138763907906271658219487064193320371901220879071744462006937490603732789654945763562599523121852720863534825289180324043502115782321704930451886135156524065540020293793262803751434455709180254063451325586955244545599648946701805149725360672564928777517162741832615813468585336775067901244028396295008950735658497068043592765247888383783417313323874050961701903600815077430487758665576989511062798745024921998709243144182965956991624343213240752547409726968800797785548615560876879778865215872915984988099555040929275363870955174863083445566049554046236825815899825479242617102051273447736509218360251696485339491189729813380115397649851060564611795737080047420423270723867418981629090932269215181124964429552736298203953142565753678954885660141895538100068830658636605040296520062151708018828515448240279384080790725823102362690377608747190861440675852559643375753097741703039981767548156625938003716730320966100176795841124672516114531385336742136128175695793802603614695287293872563674943438367641568001241010927969457503195323283520327608965511473525298505077748860274677927547625004596418340982302406618125007535864751599006254649079483784164695316061761764140327877570283871518638606645738372127470392093826498235644995195275567715668836482217615722693456286667976988404936432820191794084661131662536794929028357147595578672372561397115149306737891074828911877040184549844959266400383397323481515957224313463117961375831429949585202998602852987727607170400408202383975921822670306203193750270307272707863857122155245590657361255353158783483946175384367709070667307104573040301437434216461069003890770456294592373605722685038195873172419713401253206477605631960748795613247577161399873141094859868528729811990804179090296386205699661764375725769057297007987265564134079607383051853938299466754642883440525547052939403262023254205977978393488163886778083771972093137596295533807884795332350054238592790282424306961971837329648267871255034628544900491126923156871023955033507244591632086797438108823048551886264023646856771083039874703492799323117819384178251269655194781478404563169739104020528366929831656675282349814705553187207119712528658762022620252026419368940525446893379311318798382157260701907388555508844968877665068000059301854088427639587191315137402880639123797490277853545259647522187178560489457832958356877506157087893781500262216741048928986254447338566393185141482578036746365148518906700911780833341301914344808897350560181730547072922828917952634094655647342605658679887125798090347789246987256446430401818568397023762328900530735087053604176330468307242030561459316622803047766713700062586009302358136370029661137958937640771025893534706501899549547045633683511768934242869479213503435460645904200745790258709585813504660357040087690017630327387426834600640242818929944719661081236360378054638527267384219577866146886959977133717360255339886139999332824461112088091374680444862594198693314097438765929138929483179370769906089453950265326576894034499116819062655731618583302446668859173058900241917238391191450560813856174689113649639021437492828464781872184290154707955776699875526852485878196898739995118560698043015647599924283008239464035940385699602054128117452661408559961282489875830183567225220909961931730892854665083421977582461248235163653869731409406853436778687727897696773618141637722277882147156991147741678386678316485496497715162832806805085126778766163213150975285902292659220359276466275795190138463429426427543801344103822432557209042625451846641301286593470013665669261850405661440736318098172055172172068572005134734053154228001860945650254412557446064815363744161829035573745618818968384182767667041687401828734228673200753450231289407701596449794944388669125774371234015499651327967878470210065806709549379424020256989194343965099822343353038489350826030860889966312060364108949895277684690350337790427633004533623637243375822190936752066204138848862482662457689613235722731872613549126628761740387120269444528090688762628454718911427639243155436126238780881951975318627048397131932941861149236735935976849629411904053843430075535256692474647584980589664689830758632338741318402389036383723390954250321508554727259187106715281633398025285120223925567346956869674240981550933603634442984181717824046097587985057923341926698422204423890791770458780405794062721422833244557896818463818096525099635681056799787681129057059108413503416599892260008432110411426343817887221037110613754571823008148617512622339412218601708886077872094108202016687222498806295749763963923750265787672340652672158470427179612068984997938129989758542034035389752450469216023160771812197851939094838695144067649825053661492787045003342693765293351522457861393734683711864035260499984716279514798990015743347617472883615539303038153964149143700523617479900819576583031758654489716976939841257931712402640189874931930627559557336721788143967521039349698231105563385585535756313007289950889059447364667810580220389398680895536081557413862283501420636535327632335531059109730700667978060597714759695663349708160384212814311370177150294423478470918486167681591648627057608742002108314395634786837465003388264946815852101423274726944808609012999001237131806034605721346413035658022171891013776343745743079414816159249971259381748251781414129734975376654495907501034080466555845096989206181518607157288910266646300627159699566651425882731064290086453233720780810302980254553177855772501134403117446390417223532988795883677596374510329996100305686039332145985691431952541394751459227791959597266138154954636883875410427110457585949987047200492599992824907050821833358384326358198570709166779584792286535653123586808391169231246968554664401234949541394993885885877398773986387638185514210608151258428702894920141216488654038819977415929832626126549280048240843694128884114355719220380628645320054317427543893558415057582698843898266816322533899922903119868330770681453836415001831658573896532813897480841709518960855777269481377502884769843149316519768171905280251939171352255445765325019685461520111290053655832406251218037707971396582806136065032478271272572205934288399424830826392530108387978024327916943675053004677459645229125075919600014136095040812640152076569577692412873982277215572656464439033445577476758774226291229391844841976864367542785511100528045497103751253642433161990580723036120832795231860766037718302995118207151346304818718791852044477988012445500246167969134944560056924977107461201429361690505085854085769706227732944959584670634027452443848447830819363521922333080698479340015047254612474594123145415720131030815738635631141065632499186758474242757969420302772240931600380525779306786499125771661350312417380354964563036390173337191974722662749768709200204194681770212149049569572395385289062011137296641254839704394895584850626880126031332850681811008997156775886509736944481788589736026314218025290100891750518172745881482205214150353566069022643831903399134432702890372538501984642512406933249662081133742711803044982352531942612498822613821164462628810412225503530638574996102684213970699869727911360421252683257607635191160898517688721352725108866559114964216473417455029392113969996979816494785174469966881792067517656981909757075256760377723115224296227497887126379635836431222926623737512980852388460702197831235578117560441440902110884364920477607532742455942277043490581254503849435945077300988830354601024565415486896576521915963469374470966283047791715086121769827925918921814680902607905322751688762231147796098777851678559574616595409195068616015420952178121181635621098189560091631216247973863310980428121524994519738064163152058182690688515641021638163105579086273184906229734411622462125131284580995307355412467435552069575477336027214980770668891712293699342599699462889044159377046420462292931715459339263702857763830072308335184251792842719050536349584245084319948406867694455770360047782041267147762639481178653134091616007514175292952679228757097871313716894121980712907797522616347117613056154733264914314694785904275207401492237325572387566011947910171773933844798221099147665682677875999633292959635761931395862569085908355946009925121192980020754623887642261922534004164085364133607811495470580998762121671961981210943849459721752976942144436330377560824719720322913837751136983749013402659067952950882631395624003905977674275390523883643331531752046054133571365250379527962182499126524629889599048771186396925140854648029525567481879307198342464359630788123750191331996371080562456058846074714927960025719281672326438089850190486039490684971309914722722366427649043989990469524490065286183433176065434026488169439906687619366275573504915509809598704634987081750340381450938264882094203764977193690940503568588178752689950349022380665932618370853341678607144224369476307334776501204885134641840289818013845449031340651780667820237052663483239891165567439358419488205333162814462762050108449256226539338913317336546034784011409785674755338199311245337504960737464865516784852039521835659714533404824166090702514940586817767490975037516355642588120229321843746042757167192016260935735400537972068452802831884176112407063303190722918672047293288993688785995461310233124495933834447427761311765468186428363904015256748568523379493629695370409340481195220351076469362758173609719339998384559066267537788911982356909213350333426201893529926450150150859574974098464708380513039073604214747494947230678936262764755553857716406462415015569813247385712386963715069897945108864628300984043239689130386234292376570658315225697341559219923001482479070017012288358063033812752138633015548875267077209964666099606742014207773142369532767960477400907503713755269959568477391144620115924610379614218117265573966711548712934050683725685439980818779384213346325471880227045781280695461605467407506969335727910763190352769318221507345427989022968579165807385284513216264379055482194402544165724701672916405598618244150006233516159281483532271128218428759761707113347215587707965486784755282810622575884808941007713781512157792699851739273409252133218707402019532821599048022040662431650500401057825495816928769492413011976787482635457375570395783355183125723164384087465272496669716543919142445864823278675389170011123096892293276165278145419764188118975890751146916707555438480026033454017480861035243348680759211046973414261444518914753029154248840158556381710910518475134773572819339224943601070799739878286174459077483052478160219327142186386795813516990802553171516309247472248469363764067619490742518939935695867035137299722116767798969958725065930843768215275284176038202278317889936792480532172409796264349299555805919818110179112231074961578044890495007184111019698332474753168270538731937802542010778619262629932405436887539150334353258580817832616598870621595979247034719190053022721848347523699451280726048015109542101424151051981188395673492952112050258345836687254702466328821416799267261304394264780139877524197324336517686545930002980936812073002764958555701470950316077526649823613959308019193842913918237784389456151698366807211121980427068615747364054273229465360574649347489850512784826224517316859587227490769858586189940684598313841496208104482202188459200315274398357371178783489372082508506925962089862640590879226455397653767545484875591623153055432014308614383105592885003673496248538795007489608760047092804785555889493755795933375285229447204373260238126509982589465069917339932830365923020447573658376764790998362196997336696402941066129085910452602161874417946004539916197802787141004087714136440059237506732851895864925344273343430189514425399581278084247175666995940143096465175946547582748082780944531079877691358187177752714296330247586447441568114098648352318645988634341489070063566592276257315061173077151528627579782495362736561696303282686717672805974862154254373907067437853015551674728455696598914831632752261140360188097202715527293803051714128104176563972463319592919767283773337002756845621969536304443435834976537482873582281075298686455118339321108367292750513610361471033977951995518284236989429265646343677045089262951499164669140534119121224765915752468785262674389375349068591539953462545390519303727828380533790856807276069890880888362811081049690763173813708448255469781050264103574579953376676259765799786280890804462621198290701927351555686827170697179693097481934638095277652395776267605929843591985684725377982569005830252519741939779078271996007471764380154887625868290616057852940394477461112489078457375226427713484903149836088983340201865531556275264679616627213017297378778600555205997585167826927543781138114871441976777452658843754447401898902117897857416765560497678618230390599223348818937869408396565721378809766853059421866641418443634840329586867427398299939355937271349770269079527127239480310280065213933244930631593442997712291646808040273879859041372208443499519550866084044381401565283388753482081689912741542463652881548336889219289933954381977719274897934946639979380949721746802035433600146393877710839333120819328640485183252681634067887653115701905633272083486044033829049733562925109627499578083888165200993377445333685369203141197327415409431353344891654312063732626587509076371610782486565585987044705970343228572972560706929171081680373162540336351296694648042289524166794353268806634108318237512751202524244104709012871910693144903543179055384504648375972672724868036277608927269616582418287652093498134148903726816829993467366273933489082899315439757816574034666555237207637414173146281292550778774784360115435890889733158200661236559725077360937612879619940229146913177706858565946714730685138287776166585989784966424738109254261787818796773505367168112310354298690912203341186570183800487672505088551587774974512823553745503681413968740744837129721621643841946152985544440221691062971021534013428025874692268708021857071967535435887541099094744906412213680066289956174098916276498720876557971621455318355864096780504913094727950339602986372363740030426271650757709266490454919761208869807634514469452206472470126285054924250791663750711447147257334648090207804699247880270248479105012036120855487324519422358682863391675689871341271773042025590563025049524819186976376953450721558638971932274509269011730584749905100920628173954764174234782484556455376123816936549451941880843797298459815864813081507107402005883887117133381372572582089419419178443292630672310834506133640467433225031188498811363595383109411674495716533629891590389671002817913434749915856594661705228580505162236958394377368883858152553069437052290261239014751267435152002396341337700008943790821813539343467616376586680677276553546964115941847799434767800664026523527156304812481603511693382437474780858073344931335220590900451874005881561979552092195909210962517711361561441013139406308046301622519334570876217066829454393807704510401876108975350771409307997394469958502706432463865570944923462518491130719265654095463130162659778170972043596548574060104050067129445462431765765567302267032178251370483125651861538468267132691938983972211998369593402864587568161451113972849351323734649887166317060288311422561109349771895683358803142026331345685992311698903942909505284652348682851515101894000718648594713702208726099334153527316195693522914025565735541265930947928751455489802671116563629688782934464014344065208242999498418870201209863300976717872319608622957463251442408064857633127509181575603095955678487246718448143807438103614171001862363171666448167717902673264583419039172225199170632165542935121495205371094348059979584845972224015901192241721342211533755281234115742627058774077641626393556978234330677822219969286125671858853811062835356479555512648214066223995899451950385439803969393774622444546217317463632683772791354498384159048461999885721651899968072383248546219113533085472506894353948592855510809665371551942980032903665761339944650688622369204650023639262039387927503203909211995507789813152244435346622168706020404833577291902583372634081064282328761168440669609356611948101093839375980996378327643412735146618068009687158672038087709465242818112663599381609883689529025060591322298561245906693423962483255743277463240145897351823147629186645610806081738979343301891860692301122294225051032390315514671994126395753263687674017877093469849877295949329913067071349295582299678837831619148946689158578420872522697394317038004243424355292393598561599530672326954781928590652981356800681110999104930129085632482891417163130296527178980003806618338416004032418303592903447923487165479669342766099945727870225273900531095778903840504467169024637029084504602365328774800914701856866970988231501352231926847028275812927371650546089408872557745983482774058745146117078229739351148558811689339253840118375446559249704567216681555772195007038759931789958922324278406719529150955248092287206071453215054969757919210787337150503989576713843076451656382556205336254351872278552191240493251579917874432371267963933574747287600288520034003824145871470968731834646449458225137455008689900295694498043646092411354851580471666888150812061147306650945049606838972008987165139834276776247857366855101576220132227552003854855522292268727260514041992045422117765299062077438576816739574554795639001568281170456871869571856948915159022491920098508169200548612137390019901045185692784815102451816303812654357142812541616175467718215455141662624237430027120494431369610954566686669986334608042812654927642816396619678707967303604845356260049820076161335579148604176634007734568007024796373562236406753778183403276960694873528936056973447626555670616824986194208359244137715446369170230751927202386928880952426736581770159841897750836508105739113199317180327488507437136268985466915157936068977296758689715390321817087965396863808091704917468649439458928554971664174197777863894393569130594307533719592252436609897917111967492440679528477285419917362317294316048977031961538364105061749558677114171744089551316929737988504346186134163153210115026896827608566643708494388992153627234638181158238744706773706812976135037613240178719187397025727048276375177037482481237040483723153878409629833328239073898008454364866659625629856505943728428456585071466984219360113358256477257488030163040182903153765044348938274205591480646971999206881458174020512784144056419171392080736034668741030614000321142993277913863524644161849452885082202689813942333880628909300520870936447907923680996361086364962349149591483097368959829188471817847591581108382365429205577254968827447914417006694860132737260294977937668092557158589480117878848530839735329280961846075813675452217402857396007525520904877458615995742470919316540442398870043163801808146536601384306211571696941970875021318603784679521624080574182012707404262834660633497419703596922521581935077699250214801967699917929886485004997269632096045472515233606950774350608494786559760386603209838127655858814560481488017756599121206019825443589139161410569002741353329663438984958541746750577027096042328410603800765571452794215668738657487869018653913899308720516998403565449850662993750704965853122546931720967317017026451155843344062533239345775105972205339406862800498948560443899916963080698693695465136448247769255014458967072842883072877892496209056473517825311092449650151632791423853792266291953890613852924545036459343413846333839240526053654840789415758602359545832264747150483400033842753829504732045331751042020700663464923999850386217977061655320591363134307617410628035133193741628653275750960726547808983714285440044258425146645198777803724900695362019620084495777121217634138746174498922978017034512394247217542585572828468233089323958055799452577812065977629874290990985729985216738181567002735778091305595914820069068035346412533918860157515678124335589496015435602983000999104122080179279809748630700534452083235668637412540377122177604098990768008318540921624029179634029278607787086652688029730794553764705672562939130764607740589042820172016966840907066759851374576373437683093144868270791609951678667632735641519087495479887359297493862427027360236852107745613582431202149800711333651289498230365862874492465604406125916021515807291112189848734890111145541207402473037521379869738630224236545963368156794579068491218739901235622995162078185375703435501064698984325594998873197997923708909046516903891288085810090297749731251271382889701713488927268324865461414135324565700049364740342446107657868147826362675528807264255399210341797023716521370096419723360741936928140815470165077655744878282167046772877070285163785487800017735338107612529619937834255809586553977815628388596309866346570584732261895041210699735677337193326806215706565654610392707906807415394559813471747284083056835320225563253264724185097249182942452963163241245860341641241542125718880033011981123214466765759877013718886843961141915267686274558595638482632462133842334058704052201691723897437456438569023689483569478976150803554952823035517033968096267807368870622495616326100824207391158601931706558901773087615905925716409673249839158199330887576945438777334323205269327825785305829378041466431270543900199122780346485686336369782591106407467246068106696075201212819212103219591209817680552823850117700397029387490330241717564852124491367131074689213754657816169646486861723062313321419518425817064884851931425862386774134475117668612773733741215144739488228950238615944895580096881876841115800923886231805139405467649013647391233199059851386713523531426163792231558348284099816263675639670165116660669716786370773976585483618503647833919372306713629300591069406733111448916692464264819669283335665177527538892402206612525964142906289703991084780247409928539578983016826269935198465091232740685466442774829902354143808127340981053934781078227357495388470994938950049876240526449910353626209849171668064555005322192230954708033162202447995938596195040485169596441238193979702722938836191029875707203898701181584675150231613672897350984364372358232239479620539815846167453639488300813778354314200356991748012041234013180332199043940765186218211475302904822560051513872407664109824170123185610400253938882034399927303608431469316327987733842377098944645482671891812442431434303978008181998160475481387585611238282047020246751341266595363776281239296897211631049854448929502051722345279032911413354111557582611536346997251227809634729562819750079765221418617861958653423292566644043258230923165250862253604939900415415401157391208849953838782970673235352436803623300060608011115471163957390059395075457507015364053537850487436743877031724793987964424443435124538833819481852647863189753695211800208571511460568672461950001168709633443419249006351652290889258194596513664274582410764709586352199253619337677633842312284155135953375917501966658409850449395825145135401222732757444596911973222789728718703615790054017785677641621324494433742166362588330776390253021532066936154504486289735915479338380939652564546408772227570282735721312361783710042435596305472468094160083390651538623872436091694002645349777193607504610364505796698040391792196699884230497994553515346051094627193513013994431953248677258202450460992979614657232748822546828770132920416497806049552272698711495746436709754853306312167927656968698026630912968252578607099105843680922469124839922678623636096928074582244282080726195313574222531649610720121147197019535464487613040759334128610686077460087294972170721225672401318442506793498356605576765977927080461950212929431047184423582163883787939588163080801841992837919805970017860888518628197727161781844863867190706252588978744474245563766552214944565476505912474747535711742100078218538365571760246861950208055611091063350571745903634582330496308181815217861794929476057545458038588997586171542161768323220589874541515071848310136483830506643795243908405680825044723579826479237022281790316735574275527162512569099555691420442394796417150223345858951614774443224264892514376723596205991101765531094209229529666896929771781350566446596093610631967402890702230018859613889896200283011922327049791947193144748826358998959460071428014000071686898819623813137266034162173511294007644324046592519750678090944277100741779472544766739274313925943589966343273217237349495889718484058415756678482582062055921595942008734654879242599058848579164334560228429638590912967055307023089525479096842054036551375839345656470050552185037624014801047426273193438796861553465444995111156747104904764551810471187871349931812753060401557158114248561112434662361337995183429560409875505164427149150520624249276213590944458851252618209794282098814159043715994462814843022419369161441188354428762057626285790883742892275344390865269323978570279292666076728354079741153840739156156520938461523056910206710854181975195334960196508553818249651598682902706160979232512493197441610571945841655900210226392140135142076830756981696444408504701912827403414257183615797615455699791502682901297498819101228577518167565659087864998176360147291236781001821024704802920419860641171028460972276133926042040815922180505775088187428404108196664101295412344142821018349109263660649595130662496674248946172379141561346911461576918899007804731955923599470825657245444799461006378858296438210348697613330102974770748959225193655958744353922561988043155359559818734082868136699652654011464948811969225010140935423382130532814704001552083334149419898439880899959349421475649238608288443227961115732084847937103966734988578827923404199948725180634084611128711664727940947080045095551706930024198223439934882351450251973870271197904646108902250871322844044963602510084859472576259935319724925618505623176156452830663505064786413086697217134372553674082394484264666310091506118374371031323957548009902505840909700069267234977396471552874307393495875672494320548826570204920126511755462200527806799519724669876997960794896744765077074981603109941423500147699293151689902271857323679449785211198092936754705844948378434648207812692441931686964722728629599467197889089177101691584516867597941929902782169214649223805338086914661038902669521591145918427702023467735236581042600661831988235104054410988896317279360763437762609118409815529393726321422548660569656829202209740457208498279594474268044584056460438551585671492354608574074964936756339480452714900325198907706734585875271639635992907914015714488045951616723113964412745738904201768444623402167783950325883100471715835524483983090742549717020259383716687107700127264403146276663871590525734646610096941892333264633638078276013694875000017722306069326416344302955813493798107530090199514496514472969670355500139180458285838023529256673194181760715875859876340859219075696989899773396115513031127857888364059587539302565202142231495425685485048815855689004299518803212430839325537413429188318286765703273445049757519662566453849991473758772781823382042969450289469838400859039473198605714656245065468926004828455010367580338064342566455581275270580726037366479474835391528516296554043254353624064796658569983728728226703870519865286591801071505158825079191257310774740861438086951485268688551877018005646676733598698721212492010219700180977225248532283409014087977397135305201150205793823735463747928191726551578776584334675230953306552555269800581085415781151090037163534798779719604685187392945502746526498984859886546286256144759873239415944396063124815782719416017272885101547166397133802573425746597330041045351842282208965579471549913197815062251807348938917266511426091543389396889098197664949379457612986215086759051433646109342294091734291099280942841655488586270597770171930547861454882700974087200677757381899024161697756171182371313087757095658768383890555340225586654114543040580177067090728946602367849224572402427427855339327152561527030135505714678049114637752839376161910777411323683698972430786659885778592862896471188981041577524687060148137760150836320873845518922540298042347791100840024218363891365083578963110629992998586411370553852538578574164842284822349779410887271408765035085472673131845760493270582663459284695882604535901674681891280907538612181391341787245380043175353355133538708582137415154595520773823551865811334229000423324943271072285135842970616577078956438980111962048144032070826051274008436532343220296637610107908120640864399235001614643689954382106728410061863819439209471925235704606792640543820598120865732040640744801501038431726026319605863272480577290871267494609195478756831091819040118710414017165750997518520990098561113040561106675663408746572283164783310654118095854234665230587334458106653881049713833052125002953521056841898069644481385287764833914136483360251163903030749361562660486627744354219534813554633168602057867839581475707817400399593537546416442922799516211648535125744946233793276958022935237378660070118441524487879914673095542092984063749520434093029724982891137071875840390354758095904004179630425067251995885933281475664818305802076341805532816782266309033103302214862186008660781959068176503492685579321120006221213136067653674003423265463772208183306312868199806784364019308229268816873615055005012876062534289670802223818818126043233608718621263102195248793802033319454581105141373054111841080986728454764101786167136255347150433831254499336688407330178970801885229816329416207963594861119848003920686710077331891017622063180857210902795914811779122806938226521731697969650721344632587088280482983590971316168067743376042581851484094078394536723256731251762841723038768454137821893432233217322038309150355705118145139779713107816563787992086127573077263922919649734535598528472288973795139063732753016603425895004439895175622711273675349492783554626497888826604880542320168800364407751549238268761114033251960131835501968157817831959702777499751383029092348815409105655836311969221506784330874127968568609979837654679461555708533864937949226817642525626695171567127976921396252664023345995160460068461330021769612461399179813352936165339469318586574727777889247834300564237370529075227407682949159534184167449920472745078018114157016248561612651414657899537276931402619181593367274694771868455731879348247962484623931611441274733200731101840447492914131585610363866875792339699570175715338340846586550757270672079024253934026809751883381960833057388671804445762364403667746264492452144051212283054691060926351304213137770202445742534258195405725250761113802751712396179936948603358632466748895084279428942773122373476121823022049196228533657734997687193960680830403972521467258153786055510422616519141191110181251144339600995866798684359441396410541303243709191308173415612214798182793323738173532305614750618034341713704554139276705498988539329169197723663100948380877519591804980225956981866271320097433378703150778172659636428331741494318657212488541572375998831036562605867384713332756741030242360252009721748321873716750719972656575551862627099467860167923429299721860039625144737350496671900188253432950273998461040914492377279147501645216930911686428398964490311506884505672550393108988505396468919267843726320941338075996837137592030957548981421844703874629672727718623173649493329803802971214680603578358015016842872412739982761743778572192494404849162829850674278318630641011050859979788864135545317239385161278139490483277069017055259322262262535295455133018772718213687885210326661106189352048882365766710425627670605333305310857860722447109442797591840123141560126741168957032039523123137425933065035806306166550330197509152362274009281730022077012008871434181197402995531287680285916662100932465905755447611605234413633611978179827246657912057685154000328427891223819597439641032462614963723819572195921309290291847523683746564121216888258621906756987982223721513233427433110554147726472650575602419022119014400195446288643008437606379716851003751808706334051936223204714874881663207160533231604783520930319662506657895988636585765835180875325688163908255250837132299963795359843527587127252579461073376715969237631533797592829818497658260997632759738220576541344975137438630373916659216094191264685561299165165356366874050603747676812778481816427412677540948801243412047517424431672747521420526676898290405879129469959570437394106281473994281187747592100126126437553951838565935032203450298385177855875847278204883110629481704939631290085377884769224990813395108472060903927478436749128916221757260835394627155175217388005377313486914377598863150187077682036851492515369362160595624377788689641218155218727414024241240769659073632628866411159184821852077610553396896534503938565694773683980462961698246184112442210843670674751550446852418831830602505736121430395008677401602856907617957675991090277223323538554998779861756247946540865916289560013954914836163671770504262833494906419817880125388218106747947645436385369838373868222846452700666612657386592327500828366738090495720499147794807355609659675582309583614804031122649965395815837276603127520549172929528308777199625517242567069454412384125750702313790712307600734848012235744046468909528762687688884939458436497586951376041048363534232153184398945010136043204821257303096772304705643307821725112734797043259799466787314014422443208142322252085598192530080002675814326579394433806400622749829091820116306402897726630549338052567276370567276574168586060131760720912304269725112287194943016853634196228721919662020180180816931081034139402458773283988319288586175618708574731215753325336045435614260899055371472634916813558642119145530309711776002080851953621477657345859220213429546134075816677346133920012534879159031658241723828560043049238851629421685511125022041068658657960210748458257832489639628010272368915370803418847946606951139551444617750999695205475733942739780595298128169799041344177222327353605862104239417641431082109356259758166630895595146236241543170025595611599493308127196174618871630585804411158855444435221572873397527549982355443042202704662231448032050930616509255758504041943864252786506559034750575824105425030915077049975463709802720407040114538438400329979251847042519980126378212187065690748518673420024062916889507777211744130740068294637327240164677087032230571085229259560381186483320354477960690270262760762038823806620902826227781105397853393012811301263390614621141394718948088829874716137031869531890900342631283142063888970766551172953648256977537396737120919567494087993568541084314305570985249710672001768109761393568725448324775729736803391437031573936214426619034786830730063102777550035496130832435297701398315667342965296047323900900523969892198976238608378263418701908014771785949333416964330041104288011714080050869703849327213360559584409367432634867957245024847248910853469361886837289245127300470636359179817839024431926289112922354761442317065789910835383683874606702669303099308850655253107276907232796338379654354425852808160159240432547637936145425969016789166086892711222737688277868913054745788978354440629827227971770869389401745784567578214894917081662506912906501606241243339901062139997189040806500874000228877009204184706744685642016042327012982107102986574236370902730688409558666599319599178268769183183076459685762109819457216352503762849260585270028515092797231281251287041124972920120174938977686455449798323457841225874205909627492836828453246576651697228165621428452278305962313359967354794825852363986907505810710617945873965859289682661734115083417867654370400815619482389871841457960284313361462015413228836664245830561176154620856397671468947078632105370456680938255821390382191438031692617254945136084811476174812373500420335465385399977390737278778326194188858088902317862011081361810181286953758300514559791715696163453666934020757951177743183459158458909131500236003723350314323411952887332962638510581934696918912539165700358048326730657341077402235386982755865556870525368363354934396250439378072229194637169647037974806850148338304719343606461947302619610439020916034126012932400104045000606211199293874558539259410391195752813918964871357875319558480720251053137704173246420376673892096086573539837173260219595107840992230882291337499161840193886823656856527011887764928056973224044539184229176640246629235532022198083478972394826186208992693978433262230756521253591984408746214761682972011348249983301108651055463640390558464210573713480931417814465042513099866155938004704024769490505538937700356284930061022162366991508294511292458571351796726680839288368766544644429363707281259243302013602256281321502566452821740023465150039850436956303494040871374524137478295073626570951386685543484079780857726458240992422796481768392088476535389667964542182838088441116893235548261365952800320099403711819933031633106893021005691200815758232659426311567557659137883026749266499034770088349201314082241430186986793673016283403176548461704894291431528826928460938187368359253651333958213632570300930753205485477653204130494697965857839578397102481168709164161551096787936937369610971597636802779511026275107380770123064573436875474556340105180215901119408138715197260588729635480896702527309179685093401988107687959547816752043623101497012514245219932672088951008933691770320414055739036704753264990185205492079326531746236107081493577148740300974419796776795403059803706740694071944553238081137971268589757529306523107730301096805486145185056091073028596932663513189227931869615779262335770772706938272476347712413344785529759007070559569271614158953718532040465819995829089709975398683248565421476740282752099218578397962722517069950774875453730899753661205189337510200146882554816277848564255100322574306886668744068119359308682021771769182308419661777114835946462120701624770941246522386946791127105255604367795697320286777713564802545214900174783801697778595574366549342918274966849651067377244930509636998540566807109340104437051296026134501536616375493741988785007127955860907136166188495123045424447643904131158836240290383583013326521058270884003032353066695610198699721741157328263985410675697888276071754408801344966359602285523886671536409779487466085026969849200357000808040314627606138064772350648891781259548287850066364666059434953764880100652922899727184095954179344627406259805511533235422978189841381605422706057521248437138743241615327442276500081397092053333175372397040579298225610034072793968151674004703931423259966097038031313188449719063756312373285658184627787692980497192598363239276517225172065091089837635313220446636481641599751187775530390164758873026962167597064653587011252093101634099518913257662400325252492556850148757335520251117219610918024888673694500956021460205923068667299025399667711952567013982052993179235474054431159434212511712054383621858866757050381464181062221666571314264662281468789799196311336468488210003441529323689128113218849308548248206787538378996337664632217895773904037684876538274456156172243512399799620051141304998913011194574998636000254990019913869106540322345910849864867248932201602554492249860856232819599174642518621636093689309289580363974811717738480678452826934935025556776133483480644399430209603898330680470413073350501251570624151621414869575552375368311769747099833875062330189906006612958561150758089141092842732127661139738872917640304850419062683317446643326664526186383750135227649047276636962873019092141789216776037913547067775822633423758331857464410323291547893419765833914191661119213267439329543059018598226096989624717552490823157219846749020998041808180310728796422457428645937271185007383800098833056378839980205439939289211417956646510405712872121257650832219342069837341035985603224512827230932387579403648987007887953537425384198376476530223657017701709570494469979164604890741340963677786508944915430174251960184939040971907070093246405353075085232530844329462706701045962655335055845871842707334104019708641399843524864442891191769465798648443321496969016015296589482526303569323068942481339366908623316746965938395243018292460463102844230833422143229797904087621015774091138229720908422107828938553339966439549529553356994073873865079076924437426442098592339032976498701724817773596806053676206834625235844373328860405940994914579222066743473288634149116047915318941726947160125620896194138440082215839995622899760440828853973608090232630531580346869358483544399767005538940131094886973661806033501232421496258340421887760663733927651614033082835982566509512283845718474588363672389909132996891246025332260833199856611861706843097310019460641171027650205301403722108314626437317598850211428988590995744177902416124195305345900792056007205346298684452101661529813099392578982551484876676121126452146629695760096482234255318469126672409132599669094058240643663947986664769399039028965783163336754656329607840058128102224733925052117721884716264801090216559232174022304877554053493503539330041514065135499497609376009136046858992754384351569360878267738637724973016337598541218173330215127739498124069160840320053981763150792654273932608049443868415934100920198773023876475530370067497743701623482640463221593062392801260245284771961244898179974194322270776709955396125542896296465169864002773079553818030731152609813546055908273067650129280952467125817754276125444441275944451857545089312764139551479685914809527352825726260481548242194911406291410824990123132375245799026713342854532730087100139971376220873199065124988546585793675903566838463029929919107340568220163276661130174314887943118439414663854201532430279846835435101135420552791611665818444412023466456630448230823430354372158174316464802159885467781479028008051920078266772035734185062079453005501284545081659480378864066790256221209586736803805209580762256114133787934504787685237659068154411178768598646488740948203755699172203951136868468522145496296880500395859621634285988617709118728981358493629002626697620420031227009115957132743735904386166089623299889312770868275494328024242915544125444467294856010532498508822940350471277249522818847260667204616075846437189448768080755301580605301651404096774625876238277370149655405519041123934005050664566716817111618236140073962323993726261364035142007725903417794505513797036791404458503262690179914483590713193987299560290926569475168291701952960436297782739912549017910148581853560359127893783033739466747115576980857901660934821948532103321809475459003665769119138522894093558554077566538752220253472736569083888003175133274716219562198257346577911535902328666431418887950602991196301968590473045802142210614916084757216086328829120038749428411116026728643040594674194880944377615967009638859012676963238726726950721836344778648269732146803664805880742302079683334058017146809566060521652176872902479787507043168086236265889865416366599191451010015464177606726266687832721322880993268009393512698974362890755924579923977549322128828828108661365878086172504144443205519156230910972227162138256651034473173986753953541159204293149805743859852234588713813744957865910368130040942364522671732906018414558289415919326256172621836693124495194454863686825618761116798692587208525306549182833702624283470904450285605119610603115233473961019793394912001427632233860041824954354875186151522828254752937282546269737816880788454420772831683117578616634741959758834455742596717648806494084564681420085270249308545938181620938501841153426556285780407780497907946752980768843416988743914984061494696145264250212451074587514132532484353476240981510021990093809603602101716820127025012139754720955361362273448892804784761793417901733968822611041802540021057429079177731987887608676020176543566426054551665941242025046853429450487980791592530756982478856136329215693188368465975593901738028165859755487017769066355653313573671828870671264549065779454644230603021954715551337637576527930141615667072829691016306396998898715637159801584989339348566661702583480132221228847559881634907861119013589359572579595319775638196881268091989100475492909806594148245917233287341668934794317289761197336362478127010821159296715731964883650949965135666798378053918372874916706482816239251328788732193086196532319839919740791947668664946478500223938737011649386236850355934770968930647990260927716087241393067024585985713744770629147264619748558711841363549870503647168834527896769101640582188235730207027539391976205292038298418565450403513226685385740577449065913461893917445790454471704371107266525557771326586221511964331967204349380192144130735859185788597756565521838906731614756316513548085717181910295944946850498584885386375809505913285302329635222106779947620280247622211408951750937830893150658735881786799602841912228427519305105901146191791725083437701547658429069992023114886218300686112889226545158405252662931046368803652558638393712961867250020251204764868430872614583424245806593119864328909370810501070041173796909309917016522676638771033164239997623695717253845455733682922838574062909145405430477262733331732007177292891052909571669802763689245598118896148181980839851347824921345527489248902142405793921538678045573310261390962318789915307009128370373854386373962884698853270977238478811243412344763360636236774723731794675360051916564452488719666287296118378158034944289493502289610145762328693903925985167348074274859910164892789923307231481094649645620583082392800896715347023552093044416666337676240395368389821634315733885359060396544595160587767220329974801989697373246139599667012112558389420487316496267167620604687667590679823730486448615841655394955852895027384718238695782179747879521516501590154337424859988444880368977596848419274460829909774431253271047628341623113924751900886292756119978222982967217748641641531712757302227663020540469006305169776063162188306265577910181749978984193374797172373300937874059259730490595309994483105971162116853656457096273300759836177230029199289907525931424293263144007358512687455774150393844924804937229572821819321198356662984471122971521090217769648638437915764969943310559338819616958123829480396944820190406933633476170663486350367506450998289670241697831484277184625291062804302157936705644498749791576267157322389365820978656256231527757539604453378855445200788509598286299024715365362941050563781867711761705253326739400723182582321959678915067705940247824103750819861343250934293784649271728017392703096954322674730635686778802555636102110686894089809131478890910430224844453107788663298897093487556111054454810942427098782881194065235994478382878962568502353303583286828121039792203560432134645166955700054793738962780420973067494692560545971091153731941410041594809893888490119985242388349277058978648127339186605541731317805983895589548629589492294009623937710589760495264122634812869033157008086697340934673710101427380238609451858299834343896536506576059665677321206086515754701454529010564602347369062601597678161864254890062169801452873078436384634238971261776282005397079321049338272792320580625440313935217782374500224099687925254928858028768421023273792736653180024378409674754152516880611564378275753577961100537697578600283536988492781863924296587275024643585025960733479664990093772519251526493854039341018637586384123032725533592048195292445155205168387354697875257752176025555365127382237865452458076652384132424014337949934141504267282223999831984058653685970383283581035456448817059257188443529571385155761754121222004248376945669100204866684495228312979827219422108399326123388339352591627127284647830216455459850521521558749681236727205130213622596419728659923294437177352732461452817195440738846004652264099561240435397341056285389953203702127221827780726641472805547591393093300790181837544076017739848397377015214543332959721491881249906520335776755333368325846759994535502302741877935368316500217728276285248543102211329117281718583954448571395144300189106912479318868066961447446723390563255340558107654945593581465303619762879344936069447101478387516953645459123943369373212906666689662976473655657107217487809122852221331388409834676126732684426678010988679620780136166423342055140462035936801314669290769710095187790824650976604902550603570522805696977026973140378112641116280071560323459782014785822939083833181103078469061826815971110073063467183359995858023933463933378637880409046434149977013559881978169302052344565087558719722691773709498218620214345381660893819782331642372996962650617022886586061145915156020734720925383562582163391635937843921213793563502160627990211150163575753154932291021422232786299286385532600295471690652579730103633559702895192380921461313085256256918229495310947756600799891982150044923538952293855640400689818683404814546126711686276416714704353343877644052543782705621299102761588485230979660500316525065323374987248190403067767005953131658521732420865631583816956426565254555374773134422617398972015187441913503654817294034295857821047383429380723043031119667787999613244322658271918947086850485802783436009412565134100100491412600014391506055737504115900733191817844644446707021513237563667727323162320997104015804777419599383761640542243893513558938762024968415660846915614840890593671489252263705462179750420873899414808507528166256073627466740056984156758011546583973495596995324284181010647685268090863468200492714252420288337100015381034818584711498016648560182881949437185703682115296477911244550662392053015357770824980306101690034598347771402931887635351803530843642927283345907469042452996566251063656381293702076223795814342680981145238021582984496236492077212192388805220871105311028939286105659085505612974201714225909464863364096524532870733354967662074907482823622537163816842178508466070276082009154630764206619498102400021143143080281079326459948553382372183629698165625206563504741695856612848879679862302447289083945409998333277317203961545725813286004341054924068724083575256497580107845072324289000192813017537691952474114352213311069137677094334451841701618793210885039513031620933132690292551729410089499818808938656429810617529870757193416723111899835691924825897701773396524177117388039036762421167358763933768427532607686470622005328748916986178025638269099925570703939681486832855292913996109748969500722405347039029306889413341125214146711702096718451278746551816264291689305043171389934034485977262516810604650846721696945631652726831884746303409049167779696373265352486776927023960673333920223095883397583421041413165591191207808351203101455695205495891967701322356476317804407672023653180116411590251912713223847219696890263175205494880622855305852904342974074739293217584274588980621597648412695798032426678375835241356111289280177080435593907951628611498791517916021878370235969880859539412060827188288219022462709236964499983459674478801666215112589154938613493723918409024289172334284070106286473680378488851925356820800532396396059619232573448895260383041672627824481174126141797278380440083001518625085795208670548764349900181840205682767838025136324812454263517804014435627527926349380803945452778663440442883091670703502008933419165305025022010411610542142295851936216497737954478514227775877782199954226214402700642618424123325579523469841126711393675418802241809924692592592971808248942551932715495668205701927650647391486149466612264447603292419125133700434238156387282218761390472000631024157333688142051631692637189506670937302582458003922726684087824525603957560904680313350233786805045725567549109167993238566905355858377105090091142845043237912388933808526932300459774806590354875442141836433540947513270521474383116717829960447253074434825701007698599450589814934025482968358222033182193789239223670604494978104290566090218367472382666502576118632154596903887502526242483231491941480443684733932893382666488362451991677400873665498163465941048984674552637656904681166345495482811477770548562669017457794060548580054211450617257735569755164896364140764772857786258269901057089178684882588995013084599817351325790410366217552339058071725033710457706153958887929717310234038077666084387221792023603636548974985088034350156826724285383287851957744818470480924424314715832538926527860663251765418723294179846047230911062893365750362851098174926855192440722187824031610610394243117171837609968645525703492853111959827650294254519469916709547178040819705457437649598264381937652920828306341002599530673718919056283586746848051593180802575690852929532373022409475157244722672530443194778979292962028166685804180490973650465161036898648347174348346092311383924649598760998400955034217461993369880076103012860309897278012116553488686074663781540280577900324054314595293672613856535735419793875324105403051348831126113387473815024981874631659770161357836798873213660442399328206570964244534666011440108244670304135673333238776546713327914773783482604043479605763442117594743728649289984651293933996983464172203803973641218363644761275252151545958421667794428981109493399172570129444619638964821902590549760866721956876496273654694981932680638571982774996267220232257831770267080563569111958773350267767873759051263783744064405079858967858057731680781025978019906893085859513689709409671311890968579685248913692986314278825728284688842808116839869776783627167441715553531068101467622788040348894228552210200923648492615033009409468748954155054534374758694484245650620300535271026187939439957321883184590385668258545018181912001424399303883636937774520933772134804940291111390687031759809348372753317663442772504111127394588995530217883308467842604223616188572841750659812569753754779648450262594802406826421115678799623425858888457290992091893583172721188648604770251869347054069192431162427043881923621604788018504331029963594515383274499737868791767281009223922590967149555360419882796475699594222495331731438318177670319857880040105959098998868947961133401574176408555817183897253682806994889732789489838132537313783051460670970701349425114549558189253117809348096891976066716305316460392215509692231387736922564061094614082776436876692049928692107414200249786690144177121713842732451692168135137125925581429785765523936035409584574079545605199415372274494342817142724724258413533264210096917672481394774011944041323658566221611725028853199174726628906906116557584527389215567410043141754871141548608414050498393427701672408015141984924245537120002758194141202003689216388278963533075254604430600448322351104422623894962082229061042226851147074849242608786406231635371786572649268249634459932713969042128893732075009610590128201056530614748312044825963951529995641643944238414053109149508060863879705909462193746532367152913410113237572426889589753173936574748166474081445698983120400658633262442251975812742351114151157261716561443572171596954258747126366801114093575963899285183756688594817292280725813565255756864998399684659836070643972620441433854511349966126417948348174881621522741542904044471349981548639878522784498116506762594223603472838418121905780622081389868484381616331009952283332526021005941628559447670156709527705442762060711788316252575046035219430353683642259886142118456303488162077147417044906989786339895866403299859755329845657767489668714160911667005060665210573634485099586824211926687034302855761189459675266198003416251585103573860425372372358289440453339543562302810446699569855903154196034790294147758725968999707832324683186215790941388297320453233538171813678703854636354660882446932038606359214840042066525600452027072403126079448426836606196643333084231261415835295669475782517995772286020865289909619106491231861459987853660780521624970475195105267017886081159316785720949964100497911747272878446657937560025534450604200966854311363576329548307747453947091986804531465025803381644899349441062633071776691538842541274174908991513417091362126920736548239671854275293916023411257096189963513212767993860074111158565413683460935318022053948607553035693102409838950471456825851207499659534767985527047057171728493135631558309813570773931835526511192732476490120102019197339980678396190071923250862469463224223966771563430012615560327683421297105822717382034521868068041124768752871395303087266678918093991295530262887993863184326895450773917102545672484460912761390257577331203803668535951741614111304554213872903014518876223545150611812339421506131558842618388545124311678129060489629029601836679846119178845826410558701499923721543402204069085066552783781819984974029514249572785662609313710426418726272198513907200339387992306311773933237693090659486485201994292080493168838630774606699221001926595883107919005106795456236148136911434676599452481462797697432554444644106611145313730371651470429399238981852710785218876303153693609110141833558934545800023119431871301152804505399051908520907233653835852124574629548077886383379208292345453659317376907310183982654053630004172869197940485755244977555795275074565254955900821003635094469889603252972836453649270497050669239672787552744816100440879559055835258164329251055103428338332676693621811016375398433324230826763627320471982096958661714671697320641129619996565517608297431622401649236566444293981604845608708708699038050968061334473517176041702324657960889489665495909393637111999703239046311510598419293758399226937908796092145945761137064461593510615762637411923578908473788952598385726775029289665820348764740609651588640888712018089868619214692111028301810055750070594970142592734624937294220626990250302679385746777412867853339113305969701682990208145049951130793124687293352488531374748842747874637358301912911843268581856388097928907083588536039921510153319971569157841954516437383909478262233917039650736458476751138044550643615918891454738845367184464127250434097522623495893527085361769597516285313272781080228765856492245967556676451706407447161364742772750312546193500023243544554337558908862791263229282660546119183813201769835054163800312255235329931326124575717271290839498749654316216579155474852434021868951311819349093465261024301332685145781138751329742623468830151464654605776954538295315567599716638762102044253839407655492483606977190046026649841534178088125531746347865449933976028899071665359179473134549537695519284287277483891190899949478178222182089078152915023095405741155709188997067151770984520980319972606443210627965695088089527035149628990125129213618468226040266201392325183446048215116945037221214807154920580013351077189900012529639592991120838039372428389838707467402431880390322503253256839857410963898129631983756124368262876951658019509357754479896378754329524450305166730606673115995203423543040199241599535325571445633124333707669042671882604600287528097433771613983052182499279611807962111640024971605710278636145163897365299047018422143011064972716862992747986535976266053855222488428232058210750357008855131964363707564039597766237791520624906090997235799520985574991880808555975242984128276876925867092562880912935456842934544954909594707195088427188930724026614718897596062863393226521856352639006648156662072772584622102718898432992200640408316675649183368496311864104225106722756846461134911216553872289831619032561428462637382821963042798136012631345071785576966313422205219905417201466679845885988459556450422071982866967929386917001896647108348633703788400766613455613399534778406658502623047203135632526201484868104316674815272556705819977633659084553778030156611497064171477995837001976356014722354032554597775298002715860723220809797332378930765385866700646606508468225163140892691327775171427234190516596133905714137487985485517376778035466274266553290199883592702180476824595858842457266401749731309079765477878694920576157822546248713550502283489495997028971258871514953505922870574164781013758681718341811029312276886234368056600182793542324071589578158048601987170111676778697413541104942538563991251106062599772974410115058772166474996115146928865517328657957095023380757585831212572594752330534972943723320700034550958600695641943139176660825425036755874660032799216538065942673804270876364308643331053935588143138767846132532411571469182417381039937733185051005273182762170654305055957749626411105332115244637525006980859746303158502001192715701156952382232871321522321912300614176991097206346516193423050251491870066475004589769917856839224574157624593265684681952255155072921038217979517297797853196146983250618951133024827819064303437582610694996637854898700281188153855915171828945534903467571861870968751839639219545662240098426361027252730800596744159481110996587516412060111335657922068280111420358167588309726796626364245056720808590831721162853208440973773000646493801983824986779372363317091790357042133655503022689558021939472570388786245674339655259069080857913921491824463413619987874982176334835348807803363692074644998496483784259460839138344741964218868658839798904266380003011962774024918939605008624329036971832288204285187351793186713037762278009305670009945034050637984603094016653159177349655219470194669250881740088687152871625661152479203263538351925975341325757771132605557145929771650358801892339468700556178912754458292339597060588950162858017232275117397369604059850013386889490249117732813313802775389668500702821174917512001397714493516828643295216308834948962467975527871614047350400422788848149423142248271365311593941526253158974471908564623846726543261523600266235857827138322509915945082146475269803033015406072771510789469827873742177264969995649213101277080458301472399782325097723680239101087835911849309636139979776631899718681573384279133529904212717128076087653774116766143352008289118877174880577335865701488670418141032747623022262239654329282380179164324899455375026615027636931298120039898050786095049052537516767853065991313020165693736581394764543253752221036062533182942462259670437128576949411016505095177674817041178887299691575752982525315265929192071376452649963264280054873870708285600373514119830134880408747012686126059244278295195622973487619024165403036832945395662634347492292874480787508415799985642419513765910991535216905820012478495571758776622190333628191967141571433442378098421827502234008667768664417631699149517759408335649072596210478849434683952669552724971727386288563991628669153993863350410191057535645554027326627895725525625941961692357038259354037098312211398102923256042018484015947590237157592258898171349244947920601053421142447898999276292327943467143274584656639918426962611424346200608884027919914241959502693134211729613694122807835456537020804600098857406453672515357678306818219742025386539440142206705377380536689082142592350658170075383360200352235246192954506624971098856090450350307274188052902346245046440808221160748436920268349127681894230294917522877711502424493489114035276275266664066751864233081937022268857868756517486098388070636157470221621194095669345784622071865514185564279434779654081880563070634621014278537689051152167127306809352096147863128025879533027616525965848652794516349833978486738603252061898673479016481608457525120668753659839442730708282596628196844772545588025811965904472275473958270840782820208936659587581854109011610556296918467957040783641619313907408923294624224724187908695714992426155014180970807486395364377307983819182156195188292128285117229954993239640617803482002368972396869409351538080589460080573381039034442699133430658994198144078993425504417809167468247912988583933863008632332738220491037923652042793958131801822328369192222407560015539584887724465998302459955756490475670045623570366909718801860247710928749212409392620439718442657162883773850003646664732309471871286062436739452725160067873320369474343127274892409110163525329283379085122696143462778092810143618145635195155888975838179812606882689665362366976949645401370366413622074281370055817056621735631699304780245830834397118874548879553521256627018627722619899329266950568250632366834364503707514071522586194660994702182668514262845805604385221297103422237449329000149891006428997835255282667609675245139860009390052587671141869568395666448370287589038724654343159281903747436471798902910402854691128265530628962775056475293575362696474873875184426571250070938918297031582065266702040432220958287947393069881492805654006690816497598803605427535763539514870902774120767565580423614341388987286214683663881311808557317534721751637794008654637796216058920553908449854435605107874038117545632516411789631749829995640961190108924548147882359448055950917608092388987174931433723269351429569057040039934909491626613067536474681893366666023440094648375910836625437330484858020966444336865738640173876649474371548336550131110887053280405528421488042010640708064446059671242048981671747102562769001040682819590713468070422687137661077248529768506946955486484711824240590675134385452775812454299000170560710257582925128321991331547986030997305635758389999135462364682646541973252427380673767984301198532657454413604439058893127798076447747449428004471959208341409306749727306266273003698461874961578763810598782634240454369279574591214482901336221123347590696949944225474347613970601200502122030576016995285444878763205976794099787055903859825708756669894730860875362253433305712574249193668768342277707308576274715665935493197025583330983439023942594700345450396988200497306229828363275565214837137486730148119909444917612667912622739904146308406538650603792117642236947747186527303595864904293017982482034503611538156388300181468747584247447130027291978938423254858591589551041589468679814977467679550563764693301033487915553942790990802188277164072054236319367893843571329198464112594728133634028783542140164246222505989591117955710114399975268451023986448118807713820538210708079382409157354692608016786007223856506620304524823717835938262213905287935901059133041616594731383721170527711075602321595203100996270352927080663184392498858480905461002398213108632226224520196538025044202495634506877444179976268359147320335606663696169051165040112833426335048660911126176341798027185165135199172445862249325851615755260197642511384143171104251335350225875084095533325915687126814784062992324655555212307339759535333693534069095331135488562488980096385443228873876282692985267563556910052356511681568193477466246829830424948107809514985828491323563679289321475157784180004645274193013359953551721640994262470452639707359070158190597815350625011533175932011133991414342566327149558858410085966799233660041672240271029260894714157508769694933127026565438700118520081732348198202134321940102572523704931451106148159130378306933132470717013586562985302727992497769115172073205396815086607891351767049604463294830078934002412459693326971673453883068311130919543420255600394089045619047494065337071013192314610567805092738149289549775899436070007497229211611701255021989411922135128260425705849131423785848014755127228148160336156642210339938748082380939750978586185079737248839754984992936353270576735554972489188687793952829008873839403533106627235133124535524526908639125292015548635141452769272380808857698267995585975513476157561715290016062661269249483303301463556367570749962799090983990189304671352361710117927536605914670168731700512159771024849925090227436437574527651836085028666974748990060945890299513246585997177632438636188918295008561455216718602191111371654697828028452314485117082816038573231078734974999240443198062494103142320319908724694111290575204001942309306660568476231850779924812286687948860442798306404201488438831912539134896542479952968511208102516440470002991415801366675312634733098787932972651748021595402337509122322553189120662273369062444488246683678585021416257542363426834131446130449800069763374585967283923652768527262627691540749341081896866454898163920522219281224826430727985037930691584301238264312115362112877635615737341262009782685648781354262814527837227275452695467294573307987852144045052290891954242876639249841915622929313358630593029106543501419064910004830320593545249612749560091135574418525379790859446172179734503136946181397443488271462001118987685053851272332401811002641437604430683830996606335233056898369242329899117099614879045743640281813694730636254279378300205789941291655116357880269789186343614118423254410234697290720487619760941269330625582106347163734601714868229566564596317053079097983689341568517129975268098777769431437094381324149656582812417452296619302982189551424742197327743049063201672198292538660085961714255302221065448158470002392951188719466795676440853129518251939251769651356823074615649061555252116259889454408935660529148246311731066982815611814534112805138417232257002048388902193140890024123171607255549254586039307016663381751800212875253783315217942296655499797149646164795254867525737750805080497849261787481316793255613650373988051404178012732639536059694423228204174415834516265240841115124042724469281067532246250377210617358159239896935733129751887661551976996441981936644626211994843150986076817754178418588549841197099619786368294433579027293014482949976163561008059225619012055351763657421519464645788188216875345781438614115112043562888961730967953424662867413379230816593225914815175515260913357894833170432130407858275304209924567012989460134049701556500107406039022487552671003586946226481596620162624412558688163061904718866150381562891905151805972437095744569582685192988134168824611016021870093242128904141666499981984621409359293007853898439182662171749261441955642462616523169729413137798450469507801823106760657692283037705849580457872039090889379323009839815451079211979817593647448896032211671742606563532450811211852628527468351817841995494748654982141949512720120941098137533517849016277263996260023782125616030375689072390538626320771749287901605477035337167533839871850075933248890301996547350522880258979845641332705766790479068738893834740695097406054596678438906700563985446226920480856772642637256492495431775590853922117685765199631469398151596416419262955609784441850415099831031367197653636390683594459900662276311321288237286180542235793226702810443760478117471932040333677059210414605063884567569944465880801099707483625613624715635252664167434391782425364351917570561369916703506946755525478845343594240982049066752181976005910803495763552449173586227157794009445616659676985050843709677709886976821729818359423603944638616641029619833932005383789046689977667184982548451038418876857210572432901053889678647614523870856540967970901341989905699328460563768291178733603180206265535170156709585233409118813993679387215779658181851718870364279630473263805805376280911412056666749031507188268656822053033545173513237105280838795368879149330340502557196525836386028180357188804366386253693966579930897576383327106099406830822193425658346471636341383476553637046651574163018442182265062551561947075945959236240785465531453743726491275383808817443629413389345051175713175247517081180597625351608286004371275767738824914519305984202633670196837556577398479331015168395083449188266076165812137604250547728018089571428139114442791643512466589230664559012330813199090487483141835716181401426167884021688174843585648184043586322997261846008041339646185018356440237876261572269595967626191719151052253729726797519900064412031168082817931343866182664888035926803128204742197409795690791740874858598095114003067107240973605888586229907463411914026843347431365764087713441685714730126845152332371151226206069945868333899310401263894049756780499107456537099174690913924844039699800439343010522064673204866915483882330387828566969883250954440109074469458280280415423255455451283077738889743934035348324899852156710047592082323276993790466092373904071631469091514468296949700600124360792768947021358410383587966521482827071172397828984610130395864937859003170829085345040873297405918401959499921057795875254431768365995610592838938619674839834170158155553494613680472530025156224001600962712738595412574515597775854275297073612685649335535731673024465032599495567871971630035498172947458443654432607432249693995007509225289050692377497235043580514766419136321993363434933886428310657213322216260785873081885605858288786950902232786641025065072359058183108142497323180334934267366541354318262450525723422858334883287712086503376278779037125043284742972019770922848812378051406592967075253342930811149376634656344017496633732160014316229449849437296858020194882018754075011140300144248941080422423723093555272898648081174194027591710576141700457356291227520916150445249261358538168737043541664206909103663939767043666749909312872521550569172660367586033718214555428669892960360490939769978596147500650392652738663863169851752975720545295427391471569399645613637930683274527592510915722813503421890880184923558402327072280354428228083462927938892624175930548308322219051017208817570560955039350268230007458448321823546320944857686471390550763435901857720446644374505340019951182837338451231137746511653761412853065885366070478508607178242969930509590638315051377922040575809753301964387423354945596800353049626713465397343199443837163084101142601452802835135385739720421956350581373449994679201948354043773442831867001770858721168757863288822775430569640053326098961596556008211667083290872001251249347521677931383249622003479509202077409635523025512419373115755209320023280461180849598516506638176656580175598985645561832513701571827589196005782296519259584833528640360363208943408806507448628175388633569259249968958539879785323377291162286156057997942952421333749996658877191519814489614119388550376439416110226216237488449949581414848942482460406857159944245604318614009138325210105707579350037760708960489126035523178327009907910305035867243858816437689190422873843584849041888282327649124366330486173359506879181667029485184754707714889766270214555183374812209955983877531874745610010428335628272290176792820071083017676413723994620389220321059341219327014123459746859582892357131677340066027798336237111251759339844367169707532489496229324211974903767944025835512427339122836532572944447463418651381506891591337306951354737995454138236301880824491503054506234953122922347334503186048592846008273659584294698175823489834165555437121594503584335808575219691293010989484777111448384646776039738106840590848903310915002299819301934370884198299244973771568856984419682757925921426077113289978091665510209736248287294440902145976513023297250116632874248935399432780357314742741381444440427871593445622360065673601633041325312350820402686277483598726925120297599010829236174647431439422996896436668198860533050175790334260295996064000277896463012012468478830514295499619310202267390999646474391560386390622932444920638379578993503376440432283933318374510612389420030388479110729001706488614170544179182784930480526199016829653179367949803211456561533553733091248614657379808778128795381652657890154809562912892720395938467290563294426993219619180466082677833928635110242616260683209001411664331234873073933890835894346640985765054454953258442713110468456698580417535841269172672571701424706793715038352921681149694391177230841452236052143284462598108774861625386567976222577546913914339741766110525281810831164508633912331206502770516820560303675614584842565695129607411554389423180620463081249203154390744868809369795322601755122956539610942265279896919852227755884677727019836663162198161471052350928569542620546633365489063132230291235641061634016216255690241742632326466616850170378280668024229112456833789384403470694788673678729329126958469459835868961232304716898381248980845713265396227698348057355925268180567845577420315523255710952261502844463354772526970345648404529186218385977195885499450069738579641788761605340398829402032386030438977949755994074183548794341435488480003228926695180398690114516890532715829747752577737263637261114613332178495225560790818888024154214713218156680337522600895812274525050913520040288284147853395023669035901432616708554196188089996560496017789707510357180835055608533183467358154772899815859049194286080087440443832072062839636565121352850791660577384158775162688748413778587267840301624420825817091729719443982097960884449804235069890236182768392698165052302250877339036814419639541946707905289018685039916758248325471070176910488411162002992578065931098418145019509530629962857542580519811668811198660404579261513608086704518610389383534843603216830619585501345255988867955084829411162736267116278270668312018023909883186947840920932751440167492285361419269711466325950313135652069065917873725034712770601927892793588208851130272736936445900045262520643687690897451879194708227567537939722518077591281151134279786326172262210455200045919013080262977168267826906578711697734179570877993758818698399569427511949468369819572240141921110051883078073482959915920870180667488014846521955999711828516324176092106886959357314941517470483688180533505137869625708378575297349212174147092323538871984533910034216400891074839980249644306052971699052278384548304249709588733738710786700155984884742918856554353265888459140666632085680417757429544499809325975286414516416717162384087972061462874159224343450619346118012973499492209410915207599655914986178813971391603244166376317730179997638154282045602941116289473362702543462569356945636162381015839046956657469275250646044989050312949239642314464400995587338246075905550949094408598983003797834170409187814605172312108571809044286137805479715207632621260128100474351978580182465080479088519410601038868595386587707210977821357586288391617407748804199381895572036228119262180289544821592395785718587099248710393289867371311482702519821046557289677293231460413972937612202930680439620970747080006159438229888258261416628239979259113833460004435124854056628607269536220121190487266372160642070810453497694256343302296130615250437128450844167070601361899998233444505197306330096537902920884590684596834850444552568053953468265416836566884188478947073540660896928502458233614368278346892904126027628825055518218353144532989069152597681836603384525244199568568678159421061952836105822936790693461883150625646814755329090044143319390617438232522892666660627383722988057948305119991859298150900174945543176758971764527559738679728309243542811145473880301967524448183539833642107982816188547505270096704339801117945373427886723806214091331701371056189215784771633734937902668869384477380905342718968100853800423480202451697586792987011190833909391616128794853330399290201554521512697334129043259749451575942526328796018249142318665534535003762019773716212401636157457398163765288733074883266197448528031979056235725781102504690974962198121747650814653769855966708647505565136237936921081685766244653172456060811848084581267840840360864296060931326479949879455870185312996668045270300090237248378569679103199352447618713484827552196266690692254473757023965223042112220852430732264587082123583501926731629366826713314700477557132933923887959536839650905926995220823110302614665653325823627878617610667616911508801024821101821286862291612302841409646693249767374756100193583531295330758238512967844329386047617366594146211625570183428152878775605655892794468623864758583549572316896941055108370574813188179655268367581804455556551118413944407276441742214694113270925236843158424848421022832726792727960503485594501726574066415414655982580784858371048157643758670561263785193306906198758164514602521383369649967946423565519055970297983013380113022972063850725873204915196182644078442963494685594473641952635320234069284854172153312030894026714368537614130704413177538685903657335905685502246461241322798968794161597456516109243181576898086777777142350425715649423656314743927612461939185472942905686659009824168906289134912488759361088621906419492511802715779905829291392883428308300233611705370968518517039202185577181772803576477685138691717286838124163345638927855305116829241204928063210066289165968475502218797540568804555354233712638588694665071917332952632667696109926486166961360197130716191224791086259383120404510081592150369477868766594034150747529999310603969613409595641597480427168804523927571970634395352323499580904076239834126607531024533655385427004552122216761199992355423611232964872577868286739905277975068879093929054128052868961523024415297900601756185068300350343365765542195978979517717782848236729367923960127429736220354038768183494976679995585289761889675257717392470317804887853747191717581156145328277045053134548676901176457764334423342168726784856231135437447986201617468894662139715674272769465238579466065526101511686585776958367970325601626531338819431995403854344121932655461943037848006080195859912949681678801502429390322498895822228154662171098033257668997066088858392425659127225808473306001258330519099797693465866281714651764749073091626906523335339360325802631254441032802447731643232806487080970740166463675474686615005416291341409891445857027233324965002843839036156649921772698201121858483479053041569749498076872468352696141407050628972181892511560849055176073170121268066978169209993626234128865170845178491291949341574431796054972319899045663029420569047457072301267316378615398193439215926830447688204197869689024220580678946379551447465357195993939941332344566111808015594013550002313323338830902271679624591713278780692747385907865490956024267384967208301614520572158752232583083531704513740182524058559073888712618892972725482773063081154193710406137487385677944139944127108167119791068129753758240023256281448382522700921870880292788961151698349567006994092039163854329618862467214866899557198087955223597490083267985564644937569007022350599775683254849450095979484941806511675511394057867893812218551938741163637716895306434343386715026104609330350204864896601922411965076913917738356924145081524762386948091380514495735108462442168886068452567867450253998288509602606170419280200088283679042563190253946747039291391353483678161108061193297522042533169788166149187225587103074031402853788806605016711930264654614570548738941282750837850925789626692425897233578988127963383383006376690490686723364022235436658109563377009601247118433475917964340449969065481549570366358227818763136618437864176041883604036564737329178788390754353341786579226615990301021480587239462274361244166281094271296413094307405538347521609821071056374070177359483155508847956216984880344019121928513155171638953300277325540998217589562465596780407609535559112144638605238934389715781930413613435495718706259362561498719258269599234309278080514810013071004850627410490161559197556653439485528403301427220726032813393304138505414013404426326866212757505568356652321287274881430681170626668778101035735544357514988815857078217464253934714509982292003009658031478460156630766674645358020919885710886116249925992310124168175885309688388001701777430688131983290711436231536636661442562566221383525035347231306837236812441668382664785943184054482655559078998129761087793023880449601206066914115678053143324834111848875792540505479649967960814732934084666967877051452689113166035796902677168693560185568882016081082662470495355446558547371645509469803783586208491904304331273473905961258152363882061102622506392491249043776238530578554186464487756337675646905584797072091689657720149768683079747675028088212334736835798812014925872720146911201950805561115188905349311328524312769331318757959204833965350551338156444757761376659123417874910255125682413649278696109506796026819633661030023430109544419447409312727861200804096219453996454819108207288900834601616375699728420433848935462338010198944034910541788872830410811872185061056686550507364304367717408633922936921898847887718446712334536118234024509019354677441929775879433515824714456474649684812673657188330700886535664412402024012132743809974757604617787903669728159933260402820834352170853389398941149528080031067055822968827448540610722152328801070304134831243780978607333675464884815982713680349639489034858467476061599065781581251394993131686422680814051825241648060156873809115725860612943799064172763471735361488882615698162402754840928710489816935952864592533712756283335995049371514202300459807943523023310774929332965097733801508781079312126221921637278357649592512083555821608287381594929099610600686482238438678211483855668748389092241679810582400355326010781995373158219215309714029030648242736151228910459712108607882899153011718401392475882517501409258240711286118681711513097586143450323836745420264059535146516197440385208540565002848902647085263352299223270426180334752347595614925765688694978782756474792572624378111742401663240765407387728023934569839881249285602181597797893056517988433584028142628961556210534628590885124541369638829486923709141100304497592970157755299390194708462395907396136586351950076423084199551768381900341896834899507983206939729422463322805407578353624886249144349716917025499812181318824778906818420611529273144603935495803452842746066708812779921802826643736643882185189429912302752167897699115431297025120627189315837581127831418962392441856195036405774273191407729396109058250267157182804382511992410532001313492834720403292645776316382493970220186046478662260243785874824226594196345204020697090518680234819427372088337479161669954784561818470734964054144631705466858511844046167536632327432600163493020867287904813938504008704220818224353824422533803271598221232662206500226682359955478741619941288054768818706041439575361358655856318706151443566268912800610229471745162903609747172179741957762592063772744120122289982661291378731427163503203815145283488852030178019323727404433390953563454300103257253819019544627562874268338908970474708046162811407630716701024664483980659868930239037879731806304042771227434702770868936856326814596196531146519925100124222944006745823972171215168150597382315716012898504431290195523148577043362942257717790141564518190210804665126352205291982096990556938819180732662118651530459715054405593053612608301244741786368417969910952690757957074270112164994209131074444497404089944916087202958552829829849962930398885381242712950731055847744496607911818616921744100664619258453092521850132536617746841128412898876458567724552998534073758898593047261486225563779235673471602449916718686883294600693382423873165452140040015286837018394935325803115625469142408634002039512205211326451236758723193224399827628111792592261896909581266437678350658355396518604232116391725498972285989194726509732298078722303915898260364179598488370707029965956857937436817231173740785746748511857328470145598944954963383899831853174322557780160013585997060875817850821229419167329755436524220582918566725507313778619729142211337522263690650653459090885614525624290719361010695011623037814643912554025570751703887917971824630401979102872820220237221580746350369404073018116518537968231955613540061924992479356446290331851981451913690860012564185035136898210198497229236511021726254663788196881654557366908392934095785345687075638289222881614442484745099032289785612338654571941177285218518357703009908261746196176809147367591120306381969425352374754440406941164829775038581617356663069424379903851304355875531604054995146769688657435384888659513909617469898758592765034897858465485373350438905300885971545699348347557103716677752754062223157916326508497351434882539632630507208830407959995706093554477270090669943970437263935301245841870979100827487289677033109768573996440768954939377249753801317351439142417038397712290600451682192014367629670850618869096974449318411467362947376214855251812453233367624774972279246966956144738052043047954820251818653525356255083494707819548489623185426908133445060560064634270968589532322142242326678931417512018015796793258033433602242465632344789555097943825166837128003668174735200074567801900716975669063268210557161705043668715043263265655012812330823800312776386067305761665263565671535686675361840474875662256108884606113068535507584579779151092361918973844183109749969731699055174933385358382015773379678890944945621317152520576246467670473831330839461027053008836586735393007125628170578293374984199857972360715701689686617162663649160687946605628964176801283659995827498069211665716471692033966201881682092332062391950937804730658228729065989193734222756532995176585538725624710867281007935092937004304191900589142253914758489302462072087665602015122778824138464227726912437561708041309430265231694994540666064916414068968136549188950373701796329855463183209841717141972241791965540649182823127465940494965346777303604975439504205219927687451944975068271241705970209057739563403973951007597544974995571253027003789613448281490221129149374019638376163526486331541839969069094717994149925086471080432004149128301898536411137306829090408092203364692304623536788367608241065353422905209579835195621796103411312875774703571003449319499761828037375293527414791905546371128661001133310842129430847748192461049733178528472786433387131167503725059931764988607149980327676730758802308033491819686480559086138268189438713265954466189068912683219836805757911369724914415390135583619887039175222563909372532684052582019202768596080459406081718884253847443634691446509096612510253785391082134543130129115769241911675872289925706195657647724047981008379138088767885969302272417345171964221206594635629766240884136020487202054254269955226668241978666337102993323454782345685541134688555477771193756610998765130096278442114500749932323545971204384026555795267414868196378810226974433328114389098174165509978218252521446317125604828560817999592286434418753778622495263413760261741645902100912561773075260390471712798946306272386329344933134613334672087698787824723034292816032378062091691401048707315620250239955799615157123603914868868510589324492608343214810623258957021998860162929535033333841937567353637056204562157668009038686176755793731874654996553424081345851337416924691914792471143126437637246936178756735497554110015373846120545144741916621997219169595699242286255496060323110022686494170592378095472493454634151395753176001418637867095880308885043946297524779167479371292702016601723975779141084854993404586225677497740528790501192946877419927532628178582145077689689802710167600919831160406077705276184208082461919537800700191818298473097745957689676620993589762791037245157567954045062795863271637851705144080034769081601295907051490581959527753205664682441838126492331209561220439091862854258801309527852861539489913424720461851857475422826694881613267538616088393600106555261127812381566839300337986521603957219704365302186962101326010406741446593782464854471597031703085101359817102860438951083743063863431534278770866549779097841955044881410083854303759436746486844753274964171053675061046760779775940268121380444382586553559534561740841393209862694844939194736153156490757160691925431528066102285938330667029646720025948073989804094392963889317328390072011003966875075581264173141012732919458896894854404111374025613518784842010500973189688440374632106319205725384167885203397276758878574664189360700812721002113181044075124037432909525241423524445250703357824455024950580652375051806647642287249803087917663747450984513879416226550245083337558391510922153253919816900396671843967561450644014139487419002306142833218114318228667105680089730049142375725427109606040767362857256917738274819151071265706620232808843197784172555137974678827845530175583798609705807682724421820501235589000470433291442205036931818328431436711413818335996284406326673611431688766368902242637191777584021210604190416918128552221715535700776679801233144229790905329276039570804016047487794611186985356198281816012639729736063042713945673086827092523991564435717901577613850753903274325804002445289130316365002341332087544898690812803247296707899515265818207060940517619082081621461946835807458214896139955515488264510553021214363531955514412404403572999165746837094927471995501496486421542186391851143412771355869034702699993442152036727700928338205835179221164209625661157066202640239561673905113823756917439151530347110774330886721710232684333001754824715216647225474338418911932166878039585460039326824746640037111328686811061708167579739914236766646198512300776458611249555547666615356456706031802001687372749422576546809554019022974136080115596716020904444050467012239371953541877416170345697673218842598464504339073546196355065168603785939234945011356398347604212406756921632056193877583481966504304049135852789648159632132328139092517210971518570030336052795306192192702200209247250298877311230396187312725905222961870342907593090792467537373275086361176979152018922275602111886874338252049421822480279130977399296428767929958641122561298880834784236660205035705264107115855073255492347789850560156875839825458021295058979899179983437036874432975842737643718416187199438337985920184410161531558565699475758290784298905775310044891074392972851135940899586902107459828647479352792225960881892231664626482193507720327169617510988525128348029332933557729950301591450018777953231659969488602857087504955938078970876004759179130700089667670900126968696704074548048394769854253144314659358413543622113574518691914196081541721279812832214005033915946887387671116580845657531922614499749869697087760449188582619537061392745846575404075955908586579235238681421477664468419468061604629818650437031991013033559447715131996760121393096509187928324749834759509878287585836469980172775462245620895286638311100429002856001388296009251852414447480083568713045397109602107276943849960319297870568105521415874544185393959563998657621381226876654742383931780828029162497358190254907037821348664138498580384967258904366010905334202090941840949007316392022373190070422045569395108362515611791372525334635912548117051990914700930502735160855061253150853018057748571220023886023333608308563403104944979474065149214945186955179284700632820924590394761599457382622358778368588036575515855393042510815896991592744534241620568830287031131141126484312416522192031609559055375307425513827791537799297085091334927874476091067694979023846095294669341313213638635086272016922563944084478297573937964845613553862896815428315629467873210491137971773245487132014092631813123140819969398414921148660132707120085132648536371610171643788107209665255913147456166783546017457748979247427299359435009628457543302136973465706336538309621636413285760191868256066918818744848245034476109069777096353137625575258694326723295767287650668898632449910392890456335436886148389411070005353404454911733491660960496768179507548264586677156617871055524293985540635457913297488247017767990734003150330912248481676314638619230499832837909132347423156987245863713342769245003096422487306621951732653771441348936216077688609936803371114024084690598943836541613533516073930155639084575758661514123402661411372497378884454841887712243388881902042140760789647114974487349721187718527942085687233791132723033653573201551485473456777834608387099779408380507999848046065200357780633123854038434784143338596156664589377448805240270312196840109691614186412600108688303635967202750121959256350787601996612741599301665309025933230185726701029964677802871758041139442872867500828282002184422180792528766383358776338512720430135153222749811811811330639434382409395876424409351798164887487057999040834247946441410363199855945749038196810321814428315738758630494240161172832084435568601368224217694724266066502905083323490966808389558477008165578355235857550075652222597444243869057663340632926034656113279212457931605212023729979654804270954449493247763240091961266786097736887492980806793385395311566830607606342944122791978599955715120187935372575358759351291054383491110879543717204040520999920824504768548350538235494271575100692483157057656600391203591673660288299350284156282568857205847198407343421173296402746258743063681527985649824373394128142590888887572418970146585695903597110985841632061323681765332781961467788062550105659044339065884173883033680838306796098025180728007862898929287388991259607322167308080870215500038476977642092513888504273456753005067718949288693634977515165340215623177934561700342141657343069001647899492046204867411306291342626664185392488427550858049002029421189199700266690235298465621775528349645505752028877646498059074521911518311335024623364130649748710135859409159720451812199247852482670319635143944259467289058555839355147656000337692857383025087121439214974332765837115366718599835323459940559043546649283104597212917100378533044208550746821387209120754510164396048826942856985433652789508186810295849019343302938840361420098309916499291749668509901629806470330072702700206136034632154562250098816409064808444467312479379857180133831906737233838431645501936285174259687423264246260348556540020903201788626111771960009839909787768878062048573009843500618879585577489286350844887026545073256095044226941578971162737881162428257050628382473025976324755547363051427733257539829572619372584666109923778588699931605909614197910063884538616257800439254837080548611426348530567498547917866590343925066938407345276884434914093092857926669348060304127348863255349123116411019048549247651386624341351385992452311689599844081240114943025886762580840846076080120005291953602462718663674305583195171793934105006591364095818103733399636405220916759499381797403456184666991726714663448061523086121102509080651426638513577293314228470482552624312967114431409883227496462077360578869603443965631890033442263149344901590101251314384869518499489206733810398341659691794043450555081693621312885365094803997930368455852938403187645319319748105502345097109225615798219161944638543570045665214738544444887124771007620267542587012838146288164698353619289045335793689219835373581763143660742930579231180322564342409301166792280038960688159914127537046026903890917504883489419973804122583674937155292534569162241336955943648671666768963307886963101782880598327157568818696658043035418494393726599247167370606741225630438852313698998489396563571148231772895226657357568798356829628101708627995113772579749519954369843548666551120353355204866336600158820731391691479720144788564146773574744708973992568914080938069458586686142383671900969973241151350135882290387360257245130582923046528908132480221592452749670228704498098499224911359759971394316867571714375638509374835689854583532921398426270896513318909325581037329890119906729144459179326129304365366940070240748885580311111798059778589926156618632580818294467567333402438730634191619460078892857986074822487670170987111125091115012424724989898623398337441578056491036724883391787373762939444516085605591321898746890652405081034945915685016608241537402931094293678070240644890238014487115568600396643174848189829482412200396299568773978320867012202173723946925887303744088341140402525251403009974903029688421225768666919577720059220706115715891955873179589100248285256677224398949669500330095323563902251535816820625050947155687578174685929800611720169191184033712414370881119075825844724719375572101958680471717537257427279613768984454286594238875546097427244323550524045080808115530804831376842528768240731751994792768318152417300247338795320823517770221957406036375471221004594121352406097049935268973533771460628161953218410589241168451134986570770808054048340912875443136292206910427200022143970308220572145414127480759279016432497943128139843427135139073414357604111501886856169902433348176899588189133328010916983289560659093237340801199176712491185094564441238804053201925341746708550679067495886204176458090645897707242943402265556841083706976251378749554747428803332221693477544039283793456906007278499956490198480574272106792051916649800284897468457425039050408958382645899685924346941558438969950694076787352992842976326328989686736276811741377756746601084651170572551565301784736310169416566202731764831272588590123761480171435742542609519600135300203370480503841799305986780085007972622885732697919810531987242959743856141908535700833533101489364152322519213517475686539617199665697694929193517829543346471145065225592191570724522685354077878563849739457991519349992198615965386614018692397492095319901656346322635188914501112279485535826302870248333691264300840406369347085424782361512549557846117543498530669968023479363171267128029370054543019173610128498463810895377790722943103108461781725145321197091648012468676693797773831983124116775042644056850405283641856667394981715114067963390693256486821874006412817118500460303895880162832403666997598569254833612116261736401570515706537538030408199064063004816909729050854762475541357257687375564018418412596634811751988907037280306762746966232661815007125774031830265215739237480986122965969356663943878325276033057827780175845290409651930381816939805103291596049857858166391372470877807652684871665497903735494792564543950575836706054324701289751686744878670135808803148789433783532769658326626448654467787855764297739907891950855572280278021815747429596032375536695147553186920961250830346594733126298075104676790444000771507507667517591115490640022773399557816969998503151403869178989283258074707598671313416024094145464564448864771394957751605993310260342163980217107074528612087169738763310669551764252035091080104022385735322848458851571152674992781789010203146792368229742199571224529788471120255036224603748163379406138248199412854345283376613018170593394054906570778791521708394857002530059822366920814049351779619272297494206634981612770041593429915290768312237618988870098464906163250178929129321965747647853508187396410134830642138335714147267751719174233656678500977414542448472764174629366887991108495118289789570659464416220409764085277496880186319117087056257461872563414303342235381223264046101442996592458601411938005197025085279028302918946886408424496998573592561325365484280538705419411770398640759864292900118340824466150361128464741444403956379135186086522729165026564035288296687514625848670980452809852460008841910773866831339647507675639241752606657854576114626098612229767502903769985381449453868897765439709184913941268693577132117570210844572041658524477590699605254247311130588065471554797228361944028597549269983555391819179218476834969718400089262231506770493068660851493217354517946974837378823034695683186712884538496527494086992866543811799416374237987596823134199110890629219780657768442898543865933654181608478721842644408470559011651154905028924787643837346058205539595186977215872777059864442360276873137826654757936456581066168260454441557218432845275036408321722560272150491879166874326025499997786670517011800451697564217305986622714850830937932471107868740480571985327830779659036513176959307426798561365388324143448757221890883151374349091463579706004128462281876647962034387239495934297590101505236171470878533853743865635631524417157341391627818989650088230403367259433472331796075343411079385529142036118804260976817762833508054217736486498148872312336483717499285481174246666179770356122878099510107498223679804773558198372455485121227083960724142853693515406187980845137771546199021645579158161992719105966942939535711316278375826544748273608049194550324483378356619753729434536499154187075453990603537721028133463512664185625464815159572748940823500012196041222971149969644244686594935442694909771385350672488031264525412812158780384245426454590295401464498768775231738662212305385145182845909500914500358164626324269217510141817785908633534808393988528869317155532018848421061712229147510751300920216786306372007493957179942813452278978131390297879484267124145297001272741548700379365685186096849396173818308316314164094674524884674048867906443300456274756192688005224434037037131027856931157348706200957480223759769825006496393434617922104809763836083717825636636623872981502261674189113755622853591071634341694785304886282146725784718135668466188980802923005068227675111239039733446810251064760288628073084145495119508712212762558151588489332274464200875741933964907647769675033667486955644449676205526431075841173133934420335935139754420409689196866834735634984401999526787631490146273235926504697865542727757627969622660180609100458334322749492404114803208222482986819373163796934476317080953758129214064247393056052919116309969443296397123836075045958745650235510088727688164898507701802710433999202793006274106189700763964216979136517012045514174574304064204015748058834076100323348169224276806413588551860912372431515555592960857187029075146159961876194005125959633405184232481614360948424020718949446371322253328206453802695273495884451879832334780940226092099146283285287189762825402179117791190924846597053680727876504899759352237587339974114550856888368724264047300774731588755083257043008155307425309839547875561585446865264170494123618637742336548458015154056314930336745910074644764568881745582426998914431186272673819535204354377989131152765723104140868211704606258458902777577139947462810526618053007853073711007901816621113904826365432008595251070732446393481326715898348268856521495634727681045184424255413780988309610774155271531368930861630844113139061739995893566356288477941540489111031093766476709002949761472818483869575018929128184103168868001696191444281978160777063011262668804240364265525446763835061382487733665906247132799816841138966497962205591763316481794034836738255193762496947564743857042178547013054404530413766184345797460101069751602197756586337478453479898215844556001802276805423719695615073754608331526406794322594843130626887388137206613478453420466570955687510962575851353544423732815081315413304811129422626248566804714750121160163407124373110847191305183945583086431275187517324360794764833894154263209007770671411272999693300103734397098854357871904219828550215207217315248341755707830679203042191038389584053107245075224199946575602023811959131875049014608903929647295610542116207289952020050032112021687259475629186190695796735741275661620811486920204927232666696510807484415119808843576343016440141894876904971847206333574189832220118612411859049754826010515505717043756618938657612832644278719923568755713451055893800853412516694842125962588267199835559006997573689663671926986899412877309771478770762785473925285890284082845715109088849725571740974187747719306484554854936939997996911827237513689253825967101899607450620365637583241324777493841761336349323931467089292599207313572861525154091617948910009839898080507675951424246923323436950124270579242116425326379057664194767407372219771446951075152422490565551002884191469368754077532530045759463111725443721350102454509065555143468868471565140490696768058988732683678212080342309869859203105244517722187143706863352758316264977346370992370724032597681802870329293264051663487688130234814265867030214656386014550641270248073435998813627844967017794510874716973093936123801804262977839238652097237644599886782830832524925544747916336026839834674936892988082868896251714474666997086979653970158809286807606728984235701633952417439468912612502742723718180380465240156233980505543345237432100182190986751057576585668496459579913463982873438109608573597897636727676877085002588419614916369403676729799728959092443782181572612281534000467314707115586738602690776245540722941793521805328806385862690350002813078830586874505808425716596418939624547602122435730553344255143642730215277778806130029851361510773448936216695432852801748446546105935866708421284573599465520978294230934305573943546455340768692129905228746483993426433905376525089980592470674542047061813468375137990068671589089566591677307997036266425313899264894713679551860133579734161187650369467021472605345483724929404007121422415052018964913915739346453326249108350984753547895122075845379603801569537133239147467223268666372767602586786898946882967579080689842056547153078369118325885793548076947252103726973562440773397758503814001301881817906421613011859212622294368914403793337849989544032861868958822758893747962981239493589818378190668479267783562584797368197149032745695787113829394151716825965748859655868860563792516921425405393061704278541222067792417391354665350207572021518758276441653989377858023260042990750258355276287772814314910547158983845859880666476387655635948324157890429425244690090875812814266155871133787207826219811823520316812236229489495991549109921174463426386934368507118326979998334326176426008268135533238150072704092027385426236561579181845724265149331052702671816336673759089724776401814131260521045322695548543019436098802378219854104985270846694907236530948347244667651648189751765912941198345265794988210201737424002351443918235674012754888478863210634010648696178250292171327345088993310620706820575046320339539492927002471687888267769855746186713100409031662841878073190497777673595197168501620804352515095680458374048881209630565617337768018716643493255913903816749766815779464648366536624647619099723543505868869443002685331329437187406702926807549182919463382229503021334538759005223953241995832494647982090025688946427941681565394210192305682881760420862140696267313736448679115025151821141505278241164775404353990879922550692091044629592920230222525871860369946607730330653796516170229080702536040041918285380567043063262736997031793539981137724851983137118586505597591864982395034174252832977744386366980749825800544948346857220464506757336629452036610507306561436392774300980154178126393660426463523139399530417397676480367397737631629016201092121841988463263527781701496471147149882687592208892044538539590199866715116051523885362858527892750354646965405754572980151428224345774640885546611433485771320193929410040981858318253954002318216512289893988704626713897182715231911215852378051114260151990666280546248387909936981023449803061213612623802733146031396504459652612271076351820939859818233320360154628247173632313440911411680295149246922015318338765958250750307908735579367506450533555901739693249952818233493102039120860884293176247938578532377334824488633945887848330691156220164074799044703278975545144801158414131732878626864993621360446229552457652832557892093857955532270099180792837104135639808617184324036837656046318954224162514453667433682639765514543947775653111083544844334515451703081171809729243884783179551123718353589564987068218093542039438119985781687656389253962197227157332668078335832388932088576866179820443953655818161952374192463759445832803196273659490969994496379771304599608989100102251969646051792971224831679776299223815658128919158465628477856129453064301316315379501140439938189375399014738541532089704497147395715756937462444275816291959876250500045088758656963128274132661568128695094431642101939683185093540717808921327726536820096119205989250014480059740317521871634110866635685187217082869175863419049105144491907866757182172054097737602275230288019134006586561809930737473292246135853935301968190036451230798161019593336049623189507966619578504310294578329622992713794670195832421557882593721541348074532997544416368170208663768328270305844522905874163207424375750720987212151683330654650870161200620246144161956595793009447999986289940161885539830047317173551585073378369708137469981476065463405216840646108777621647231084332253460464009763437796353129302171414120448324125643777154696387290063478363928666605968637924409029180705893879965929036881833179313693573911337155304590223071664849321483302763518101546795502816256712422691011376516263562639890934650331221108569129099357577454627526434510976263443760064939741483754604715984000601385753260419898779475530701759647703292940668450669019379088537756158846662997150033130249836488398491331833726829940419048764668136900436012052788071376512230440713085409827884104179537239626934352215500040926852800247215010848396710658714656661667421411597824094562606768772568574134454011123826144275988994450531523429494260497933828497892883448820176390401692713134220122601819542875253715456164031388017878747857541866399110815792415362736267066417781782115917399774790080354776698661065562905130683534527435668793153054108767070773664710830671092091802792670794500724350961323880776492592969695207628245231608481281174947432585484519669035540546635543281409396221869847560773733512839811511177712829585230868176281802880008118310410649542768101144043751330733866504028606417895877128155150680595217510048973807358329803815716547923483982330597368581179450413758289992350240160730975388108567352710152734954312080550686860731265218553161127027255573723094871937013532612947144391280109483213803250543548633263808465906956082300102831302710016177620472728536466645288520101401125190793083024946246627801008196651415793789601781755989730323928177593827800043250308960026992101507887033713635823700301341674967555645465138918435045973615704904982894958026055052162881612868018031557518763317697123438313358267745498476508969067834552082769329910264059785636507207102113354564090340550503615739526564878247365816262305354322503612551896128422045594573090374254466592890729511576819976372780443153763656789399533024728626874237014658285099905592364394100518090020654032568972941212656911339380420949953170990269699055628867698869540614233540463902889736027005096639325080899769699939941523596021609728925409802453532794516754512064097923470035862803504350199850754968215921348275031135487999488047500710428691465227643374864721064624102564848303052028022955847964851791233038968137751579797024295298612600329263878488853057324688480620986255536359244188625760389330974246198714265627132858723733287770582540133201716396502966597630456448823241830185109062833281545294945327158023259043435151432477976260208533943067148815974031710128211336660831165960062712015799063496605285401098333649139727503422532812897588498138503989959993677504647605126739352997895422458260883878391060786165769443463582415939026759912453496332856480598536444671190781049566587622801149898922460442487057875916216717471652925581571547041633987365172424434925092255178521512747620225618349313335054285889506084446629488261168314621052768532579846849164124140812466799502330889409694704339649074174648172185273295643560597847180788825711616283320557881864740987346952911920593583300693235837426480162848374545503255794541429514925135175509703889590322662821510918689028142041947683782051267622711486059544123239195129265924196019805160416059943127295527167851717266977991020769759913309640315073400361819043593658000015096876655725575549326248384149399310391332118555256992694389324048807460033948706643791246913945247710113562382839252347015268435843608609826421479848988023805913036167519011914678906227935836193132480569089219454181550438438581058734267909823837959521698275154239991202189442473356938891452615731984721313369155969551288547526149697314208853714873687868515048576874796089356000557235006240387953212802302187149709722063101410740431726157449091372430036453874540589862011729779645605232607874928901279203877677684507301584110509230225346423536915182610116451576863592110975502537242030637799543634326866572499468030415236274789712358096046390230657106757016322503497775461408503503909532032097998602602627184467391924632828535025030076955487789192648482145188002563170909082075016135600313747638071442610282645746221970421340330579105908046643712427482619207425830765687571136840042759424875617741477272009758211041133799375339411911591689996780007138167979260934849216363042529571388294347678341233341564546516399621147121427770873705270918021686116622239956721264208827946301055550920078836255287524664079690103199170793373832643903844490217347734868187414910442295511025801374661212791313320558998931696964667592140605359221486971838393309753565228341918754361782913142473630916211750128443724524121796118993662836923509408568867269917897430714840834232017733341925353313508696459469330031517301003705403287254184731223728671292085408245874348765679476681886029249741986163874481580077252067758354538808841264961118566785121258399550034555976280807170110587177387909358960240094448737205875558277918881160574676424718602384147821992449247105205487634010201147972198161923117328386007698368767414288531986818110107857307390420481701050025517433851259385609401613264718885396623304691281447514667003702190190656309654809642228528093213266856555369300374638176560559296842275475707632016882948065964350278629059592713994520240943232373215782323045916324523927629657539327874442390334290896785521843625119691908071378195095306301612162524174527385471524697550396357748973772082115065685751686762852697780030160759629418009834921816468394860474441467934992885866844063821902031475474402935675143219734487132783175759928520416896665108388787435221292613266147606498793151506443282595646954757229396592639637854560437436879952893527673420550258496763400309324055279968409037821552728559309158126658785287023154587246236630824575826021692956088921197565439570964355025027592059917934619675563997031474612275570901903677718864300578239109917539314054053735361786141293844489004757204110241641775663042154428252684375371128404056774309795549812372173238035673679414388584488442538035926290944237924210218954506093118840012450650605931681292995021277290496489273729036488643221621321789459166998224237356324743237169613018675300782312764843702556684742263208989249893430596362919249793660617162887828994562439609467934834144451920866647267154458076281413256008123948680324446689851495457985351111616184462185663886197201927275227345096431872200100595657263894926173133150126592873514627932285400143298444837116095087328885149194510123374038610283301828148772084608378543716905563556529735807643264973436575977254653245801126712325120742316681213932532969339631033417878544231357235698297930309188847154299467759643615789320227634977369163567047075040726447386424057440153105155554910754953416892671499717040010709947257520939827627641521108316232741130556958013137459924780159234977102341966917445360099638142636181826261966435200352014262320433894989224247667248893539734040511258493541304441126037204350969268564700372744026940213495694012297355435531762826609564913330116174125340628294944948422607562825706809775569844956568969011113077034080732819603258615859693980517113992719590916510896839275820417606635276965419560264809241697568414370982713902784360070205821932023001918064498812594248631735547143203970024784901880603866292047172905093557071989558319129484534780586391239056910720025314020163875097424608491747591237887836756577711512066577064730485300219744562655010768109820907989935623593746822516182848052189233474964373650365820298389841482228855227504514334965910934442934467110337476862547519666201148868745336142422004173033563438906666554059006914416468838726371627504363127286318786857466283973310847853944857709987383814492947173031066265715364669147941180519414641182438498190822895787850073115007972306586926695173540409374955459963118079128093852099579262404494866218176991044148033776199840560496790756074848547073364664631157009774679466588111555021208213539561326534963960979516522547138985630684938055468949335843801085803337085308337200733684015988319617489907102508824580657114320566652042018745061751542271494413205647577501483614829137289607234838375629366174624744479206430942074768281977305163716428709879599528896032236445637345090464246821860349764089074145554289155015288694522346141494029945443293704600186905246070704514339355410572796922766219833568132762451048944228393478468997078253422401996482168892545170241605351943846636218667040908583970734255660479161424261993500655838067438207374610672319120655490769951628949529456976177503792165143254313751427741639468977833574719323584315316813139543826958391428410025355269451280617853159141655361196402946453246869348781305540709571833103078781789301196307436314770453882496563268711488946987401058219638069380296315007955672319662183782059238016437125753077047961178611803068181148451091342231391920846103374611608843837081653415341232313028455805380838619896024656078955791183854748799252350317795660616810357351647786527098069921908145999223543102560279767636465839914990412325037638419846530501859205479219043258965658874741220187387531398552802975749353664837932842409825009111318380532639513936645096017701858528581869314623382528733410515774565716348146402435094669529346546476441718282899063691382050176943395799628261329750586307801504589427070512008691879851643646744951881995939557544836093020410275514909233338311491495594774593578352220555555482702597521514640507523388711973519896019984666360782996590697614343310145471508539113703827760374483792195671756111771829944285079617692502843575248154692663274552941621898488722375149677092754767612175957820242163657640264859159162562370964310235547830736545200149444417073313723361687702901565998630497641590868102800168384173542214914314196020224191854906773413322601460119774871693180202121959118194578282949032131276422143510578744801330242570953092303805645098176925265902441668891488966407037378182268347913732749766466417726928202715553508865792135267245634641934899265566053243254896678578818604316764881732813837628511290605563153041011076851071026160552380260366437007034034945855164376945649505553780962441319366926877124851576127952706760496754936870433481437803109101082344544529312957285458190761059741030366310511912468236797204173143459258638728658624234977694185512839464192255119876695883946530090634285715826462996402426883216343054285827100436031848145796305001234622046978767298224192889310644434825129047235075653225218097467168523850044818195324135424956785481282392257456567191783375592743243843232580936602127534013083292047275049082081094301453745200899055677196157420956534235940788894322691017410411008859558707478026258729757915027904635262008445923818531303883609378720572987471411246828859934301396994982435657667226390125331865214779930362413152665828420488797018588005311901986153610494266807968345818496600015993132726158357591482772164130839175802741448652058586745378363745023816358261854589110613479202789392483525028487559165386756977192315915621177683876544310872245422276591539090564476115685196019337654894379408588369878569222254979717468798793395816833535987341518914744912338952662863278347485577788471839066222969827439773411013644731889435155325232209544018049353245956522514324128225195328802640500989522911743910823254150439252439499857054831356937846901982643674608632599350880685196575223572991462330087350197406239658434553694277115947424244722842785915031131234816451493767515483816229366145252554133600483298881725779242003468478907699556850788894231739067334906825057875349211024427087813136894505431164971379257116341103433289317192974892219196776460184059882094597362317280117654757179370670478011128190178198604271355689108436410299754037815514566587229906869804470121596992945026438517571131236640976866018938013822880599867340852959528524541019893809979106643451738526212434962650928223176188775036395310884529557012830999400092443383253577444835174674689270462452584880136290538115727017855712556480220646977255427790576107871923378699623933413253320902447232739419730177143600363720048465294210435362252437492563730677446434330178483933851491589187835883107719335700303428278581786282494894451534138632909778719032631034502816013462670138360104519588198222274231874297398176751260612411396233748989853791622226567233710819579379028528565883599090951015872640339781619614819823297791390978750047296138979438455113053370938207407315806915194348245878657186868984496137721746833264165893360518066280487607704965218921178611534950184376460570121511609899683490768926731446499661810828780529960792997058653760603490456068766673083085620947731313670589666032293568381769234802935900566267885349778734703376885091968231131415785747322881568615373251912629609780745391382379585825537970263102005259526170629939052639695711658516184670399668256187673741440741554246038305649268662857105195880875833477463426811021323490297753678750360653658668675928822377842753531852049061886645006077818445542396202405976719561989161509047515204749533998684542654041895185953419800150294258389135959268822534393054995033420968146545907059171861072016097908317322157070967786418179377845179118527845255592327585681374295010330929235054952447996756477720821239079657749167154647933390956176494424664138800702771549005103861883392522619710297068324218505475720512198278967015422477704700597168083786611638083010370314360422787322347289181241310493198590709646005893560972934263206505631961334038178468815067270636543693160736378438263698580087806631469485433644493557153159987836287684555457440760764031193252152200472961552568079343278780029045022216058722034909220226975529093273105189342528859184971852550457109694088240517784572686476860927108825420948617113016919562819712621925279298429364051169795288690850319747527733355939474185188644479746747242835069395998525092923166260222198822083551934234255881430831444912213815911900588565262632004032184727228618385634179874941994873705556523581083057643347426202315443471314861793157012278965265872731803301007727820467811184882350708155513223360748829261489468333811685268704063864296232491082257620692082251908606886719653028808530203466235202236175829735785877595145350155488658528119191132658409294854932499626369995704626414243890898690003081672099989909649121220145318541810304827185086366700528464514884704000225955678660928213086206744019854963572610464690047824705037296671457133115308705121083298223716309064948098767680512826232187836446640725838747499794112294697309251566405963285076831833952270673114111484687182059003964558637123798464660329625664177983990084236703934198410094390881305382464773017086860984890452056386789617269810302194017304349307510720978726691517559477834641651581909022397731306265645491915497745123803870151550091894824038794832393424518894164970043418671683728127945257315519217493614401533386703219119505689634475008292656934709175974845448780719050689634442020643218279828291387732263669993501405508378695284805411059379971973968069400415182316216022629439989779820704341731459844730792716642360667175553905954506161796456986147382666356534725810556631216753318583319100801551696253514230789948632745516730505956224485092072022973023723850675701543370612736331747900304925473159993922946576559874733190588990623952920341745151092763232879855984380640026252129498006609412774212533477625580481020583094722536565523401601025586904334202272912614295643435664395051697175499798875546712677079843585122746258984450850910945369901997212413998049136755406900475089572650174556588798315638577709179460086580856781029412763113217992027553759461854514325885189282995584854418785542567039528599069771725819964336577597549333165098721624757269458148877055080622198978530565163995727091963981424352895031531144475151521431894774789112271074759235846580963038204959005819352702211152384381553705699015204094358527142103606942216340313939736478059588096332880689487917347407142162020357515536208433264247633075888886800249147601584102284968951109028508961926098134968730368342767877471464488489555162834392008535816184568583841274772024722603699942115212184607790403817235166293199475255662523009450436285247375906591474581494494379845639864676323247836633778360388609051774340772888441346720694178354299109280155230682575283679920395032577726469901508786310796561586371718239267173700133365934685208311957634289262820780278094661519653950016313615049187551183403075119495105549190398603895073744787321828158737229521271630728103974563636313756131997199762562539789694884241273877822101894572942849951607852591036743910914375844260396832461517622292791185580360712119938504475358068717376407453752090373451824635199700627642656924770491350645099139581208642858415954368530498938156365290241456401944036365677133302618509811071504127000024034106266513767865905719722521209971119435230065844184544386818200914930442501727064146159004369189688512871866700714047692595164719066825508848150733839272457954937212792291614467078938479395409141461259255461222199361816703457507946665757488124084821474306077617348156867864428690349453166948086148447760727875961212440643853560530442900348329842171044401247193935089078001522291287335235742034141912308211355575502176509269862206727412573862145891980926152918829930773337749841948487166010044878576926281793536414672100247971721192041250747305244777861939707213146703464334481922453465357886220049354828999701804879767200080107854122619721533732103102621497432766030267084622627681620218805286092140472049259863271281566607067139467342023947267623033865080739998511485967811879345298803925790026752903545532042800348883539336240107349899730657675885117324441900205972061780945669085115856034161107427938062374156144729656528967959697053368995269315115779831758289967977592251956337746573799074789981257331853604387983156471763430457844660345379709490428738889262668838830163406600552520168881817009913657985946725895308947196577955884297496130769012799056866746056944139513688290139128352799128649121067960414161097352627533201895465718789006382631389078038035958373591422863009065931925480377706380653017589695279546116866876613949622891822699083866097714627963410688922904512281302935507362480480868244806931994581571671507063018427394138717704171168573833361907031833436729136183831283322243469702733503163340502084713000391645636937057168838997756579397586069266121615049238353207929614357063132677611056195356906150487392987837612743328461817633398130552288401848820332653793854910342410301819215245952487898383877143533612861210687521729867850763975263047538224422602673086697469715173780576760033433265269528187967009459916750899936875757644832413601648427512446063921583888159706232882487165891027571708921706496933529533661593987591001348083728898161610745916889945710699321067316791917817410155719930915848042352267950866428553787955205953962985007248603562371827342075279885823273552655953889197107021162361121550204690285981088740570269127448121414601321215283995085372516410847842957883112980393208053512971078549880508726382214998575205116867961357490502729967554718929067115294536887083142844878226801066590588001296263559663266512158885548067165483991669978629680584675380313725720397074540867206855626361341800104697987742425383188971672472274202423586130590261215733510063401741441416091502605501806140668906560938001303570566210577435825091685565379324737801330344334982354702768195383004771752644265631534151076237501413278811568703217348110146525360031940843218704253821991041653524327292223486085636296392851374311892529410102080609059746204582315632769425636347356999793915623849085603560626976630398159009063634952883620373132851581953450897013905821340846130947346223589505401532610970155661062081961789491099864473724105216762655638704581803866517571057225021058737772131816036172119493185448015849491201310582090830646015169391430092063386504316848297556847252850675398935043216219533238169515585352295652842967096564628396741212920114155814690101636869850092034807495643666841942523249050252939207734714072466334380139280774411017370666234100725412730267078333491588092263132560744244395756932184570435011024813614645167944817783099344888541935980932588763473916642472854649716703809031761001248891825265514231718074826452716676361253007455715120039805492680138542509275964346254237756492423767486802385207719108808254375229368697059644603972765496190196478159777386577127537243936354564150145194306681646948847812221522769628267473922743655600457442454598880599357870526310579855487092342806144456137445562098454619900300471689662603961667280907976990957640688083708910219416437935103172019827776391065091433314603480407776207286527514187182430381907894062846072242364379287841930671730984608596803800096946544351453111897607697026445337079441213224229296007040408940604175390763741912832651644800112059021244342245501160374693567456997070852701909696507977451795556952715089186781439661777725318184769350281945619968520324309838747581821592929710265564758569616586956853698595908640598397180760725987112382072385270472328102564698189242019119623390153082441140333119966122684365158547287857689194349650562949546389017427827496864811360222882711965286563748129424089673131549313705317648115615625432639867366950989976804526583815508075254208452541343344274945271119009233671711340672823061229742163141420784251117165026230923971399596647840916139262692120639636768926495820170058201499500413132933759281889875745239706971496397773794111190269251897340774433026908072070150740523004722076119771770558800584579673068704752266333930800904379045084453511716076733530519091245191061834700483172075935669373612341104285338289685154615322860792672871239999074748263478598775925930536442625262502385931885504358836004813517261798164100801586639500426591054941826265936756364965011067696113216254359632847994493091465824114428022461468723873273869896123202621560263224047792026864033832710251467144888609487042177440674818454118217303309941846790991124590533575895944875296788372274347337869196000958494954491764806488696658013350067131943914243195380779665494452811109533632893666831887610413432482120483970606057796847846384318503584198370728806923887242610329486202532844362817040304399024344599275259835915700230871871924644582359841243589152652331365914889000717712173951661784619556155583218799758116388216277493144755382275555362048183723715130992741621822549363994971071109643636604421308386071344784964761320503034539160582981918303669242661259491280338639142557257788590048079950299600449890040307075007388963053667735880736864651823154558112490602028226299292487625410657127298868238906309789781722379644525673382988788324347121266906137123835197955412685832524142132773661216013309632428970447294131608696706585129890482605461605293666627562663540074405297734488003414894151763848240809169605074290196041151784060398896635038016147874003986828001278334410023053713674607937720596781269252179766664716434772161360313159221226739472337162988301732121749698114870397527225441500396247574642438642587308751453612839529473021429296514557343310574940912181070862945068839306859021224706068992685754724709777613988114187061560079011098550588502365607808225530916863389362099909411082645784756898063745235809294031912494438011589509648610180908780495937534481326967766159594135203609264675413229014482064583751303018449129368156326246147235021407666189438455048047051965840421130501261788064133587284938654583411159263153832412415869534846328539024993387763584427260381747529239457816501899481281099178326414128436897702058551704004289516021117719325351101805481637207973931251189361470595164070852642726836804657006714262792401176720201471388009055067233556573767585581025656268065399853373632327529444752674217970684192347473630376897445712650692370875370454988601742407146123708469178787439530380644389766797575153315460169920656975427826513434418670964899461352802614717721944105422184941094301422676937771413945574976572497379458861133978702734513964427271755762756699818074580699451362878194261942022224376400445409700967193239892745639548157997688725174908725458586236114143239548517274953445516170685724336310579451840828989245026181323047697565300448697628649172236710030126017682851936987931148925714777947737044009848370658356971644852347924110715173705489813051064895830150638775582968089729631133153308105303193924388858134762573629002610709891120006996164609894621373360031980802963566017558063479397079692077146907211641074846116741758802873136397719803433087260341680176980710092729163221532114590693555553274091649106563297180373524268090925440900719451788381775616870869796652373036372645123886484727054828452732912991490017426642483057959337449724684405721017746529931248303623962605663506504734270181364942794820431720699142389506732455064333064648118438315924726616388979717386513509040826630661321197237869768760960451743730089013797193595599763751781771818668062030113943895543204510988501365705999828431436680293449746468431951796700441177356327876389879609234411250811437458605368001772133977449585373426489041421074274743779138727387578863393820990955633562711295449328441895523627879699378048730885224040398928294974414620782751536902400975413606820123239118660697473773688862709844177037597734172974622188219361431593870733710483916331063325529368249794008446511719809422274660706253616596329059917480560256888538704632826135456101931058294457863142482141413604500920881731349184209523382866917863362910362703996824242479923662228458346124597755577408932628947897698879310054822062255394335172088687166417957800474799069278723932170243902116686173487058761132943594720371471102036812782600476668969434235186839449077936128865120125708829070004251627785535205359267521465348719205295876344533593106321554590120431627861801759422555733882744426774360215029426700620749863731963361566854412870579364395148752984349843222802808318660613228879446862507744126301195193848601107901900671415186333346376765044167129879933004596014296475227128845515890778898233720018227775146062782369508397324727148047023098983890199057371130476865491062309146073665573223887331070863098933921470399628078414120278342054662045823166839089477068353151542677776095873082910572812675161413774453665635521236512231829071081798652769647474445291905963886508057437887927754315585843875006761940259428320720553116525339760511755248124891788666801004792045252828428908997384178581487726691533632967664686497998749691058644326514706305303878483577341883647560714721788221830391535953266076561129810897306464085685894361093841190256698507196538859254867374714620896052348405508412037848295312891803388689817266568876360176675253450517453384932738999208185739887776572646197633314577701870375529494340941309139303679506378448717369441940294144161794636662103442586588348066848963412192991462835377997791363576611309110145441053707731563445219064631095886201549543389791033376616340384191710411440106979578903714779829998224024165942149599443356911554876849909821082390968531940796296784684377548690318056101884991592939793564603373263779669744916352248834414996989862630563165973501766097802468818624691078999171797740464391059183746399030237865343677153009435520804399624312703262628174783773702368209149257143994660375339199843436323015285051407862701096073438301214110242167759037496839057971109404298105415541360254854238921332136746054528129875833332550073679607279252771526128721232392206855616472490192364432865439025901788108943910230899117747043248093213793083026484804353527711378461280215867092234448763359771567381724267958618988312863490401631064824624601484488046564959175365298745211441649690578924487043962875643105362905802413920238337780312327313804273268550483858001081017553549415229766095994238563622198558361222969396606140323833722531351727951081919591874233369856285911308729641094014708776099240384393479970747947893085654914970944757131901923012527699661181644698679557999219199281610037040441514867302872803914087228644531306763307034474125276488025786699615049039491438535637331774584700685653610970313060319410954396002271331701503440695902059323560139590375095787471682294951990321888786554277345704655007019503065810695157842956826605524425053287506660480493514636061640676178547988514558592319310600324858854618384846291202604398281257215547874941857122621766320964068611543685439117432751191494041325790434921270159534544414742915111467349070407042414282689245695899655158630830101131877451958044152511626388403404520816177677686799306622736344088024998107833996018375957873491898282447630294004812007778181715272027070260562247480489188281000148696738248521162667771101941160379779802313048692098530708946718680510873660385507302099076353801088876227074536249867117404253313348489723256653153625083469122855897688866900347514243166473514901263781005811848033886718408308283740435589762341662134084012629886583918405551015281016150885903876863239839434778663585106260811086215158437477477682291265678472309665178792056848393511050023079675952463051394806791497600093718585056720267386173246754982064911832580586471638612284959623515430677547295136223320769699327312844720122022357094545261161840607058680038726666584853872895861824207255194196924852003197950209327113139156176349635542102803572487799606950592605837340413398681767167339785477070161451105163881015222800221981006452613090131329284412094956862012434644475752249171802837802041026606862407676347299752970557541348924187227398901265706237779098972339184635469371566393007174338179676381014993186213484748591003128769401419937142854236738166898729883709319782034116147103287445810305296921395773636442484986524339124624206668222186182909645401609535396544866887360639023572740077650987624638115429395861650149050097945535300126507455521795855591198838674843239735154377531057756586612880352587388237780086534671557925619279540339175846453616949063020012585241914988530632862898196939071347445855132595698610330120602925889972159902670707242720774677175666088118214176329471350970066699995264734164521508138431532828297151737610216327985975103749433420411187657920898857744214548365205762439631032375297072454024769423727672097436218362988976961348373100560686777690892652081348470287681416848204834743482742175342586326983000517041220484636009924167323211711260480151616109624849476148292695010807302396724535447088272524238627784799196741635036727805610563985004727263166190874899451774221348962500535251684246368798216257094143787729345857206093905252904300705826329965800178828707232983257946237765409594287706928518269469698987991450988362389912633306388104001504160046690883646133095544429114529578368305393959154979115983424695941944061076619107500180701933646743144610071679022650629530200075726795343866566307428365659690272159553308356110207297344038891289648978090960941170765662121789703028370852762047164021610952292162768943377743200871244564381724283468139386726908268474352477213500309170333121872919140264322730695140941765118566180096748472486951815327305125293367538887475246837524760813420262308328506289263178164925760263566508009679775102107714577138798875762900838373535895424199466506016887266935926670881195390595936068919192336118325356848862191575240022399838346274890023144479618645493018598431262949800293387582658987061893130198221862861077542908991746620690104570830928196385597202188014951797780231805184678911078473701707399313720688063250124705190725851256880876590954500883015036922707402232892666906020838009993993038792858429853007453405216025189827914590258244623625576864681939287295837745545863494152444768441400179863391965002914597546942216065192187389633425798223931353202817563448643882262763873869499644196779123844127696082581658165040854850194285726868434521719821464497514637968044455169143512714278384914676569870808599084507265817028211352840588089045162953349495915203183161276496501155897476319023494407420872810844487021742809239984960166636779413928217483063242989642845613843321263018653191556717600023808941086685413961967425713869147217669886432911857606954621729250886488776020672840646269598232820887563894805650822128110063658794609666164580165362742813338351911273963388949945164901996130566524917656644102083275778472188579282650702310521680390808408361640498757918611987731533980284325183594346446459663400880907517728660622688978239341776559044098012887771329014868443353602057758501627481064057832509857088434353522418197796611715065524927907179309577753246485512625429180957471138064480290677442121157441886534513563657099220064095726090474938776765641524302579445383683788800217223174660759488421320833062454372759091076999208804927812024967725503917108690398506876429762179217862531498199708067891440516789662756120347076045205521485756215603449253827431818619041373701285024138501116733036969695145878186270203008386876673117708613536165323795240456967144615215449848540535227959694376447640484974461970576913387234978441880225253649755542220242910427845221488349619722559018315733507871669015372310228860191768771471820250454750820463418203426642768302575755957927418376648027068311024999952139515838635330130228164680053953117913452662655177226659218776634198915795037025701550174367911779674939696871614015445951447014372863076872767203601870832240042177054514002289085827458330429122687104372964961072785627008846574250842810967017845047110037382840053307184156251161935137582074733286295910492005163587434763267674651846851876066481894083336031146244317671479784718687002453415872918446868129039217964400341526795444577879293142630423770120128272312123185347229038174307029213800106279975779725712515279622843260124808654515837049528901488747581705002300116182151226543280601638795755594134609659394388660892443067005664354304759116470524762069127538246065578226486556433293330714073731639741990675518866014843827240034052343149401210419266533920850580382777365164002321435253653064906858802123266733671348730175398578490454644113341266951391843164488076612734297475342546984924740277671983767583471716294409417601413089884754903029755131244142574048185354204809745647735999066851124552358119727797941481069522290366109488352656156896837789898308242889839676157338443145217812806332005726812762205887572152930654080111260975479261905325411168629136669395496609508200270428658271650251142306973176017037067743573834888399762069170599880741040043276030293955221675731414091612372668587168611552646819930576623962767287409626866406285163075598906621349063126670401459986856853836475271208364345517783545145471987948104945979472867779392519634952988297728543776744456851508650494467569604166413676483139519105784738730152745443712723442866287812854752228942377867734317897383377265329986725006602235409469198090420814359192578288849115205505774283003424929866698079332644249767580843704211013884402307497387087071014923614563291429054880906588323229912338290584355994456406006221544708685373121123161440554210071816482089058163362070696056077646758515436168739052413420236276677126184288011794610751590581267498440577872590578554979564721785682422588147663547900554272788378730200526461652607112576814970640117830322735571077257210221021604179937056276782442638463407136225286371539416731253394819555318109936034909437828621529760486070823067407687625562111150556195892934418787980791184433184896507737854496497370636157460661865081054293092524808791986967955433081700249741376146149242670881731984465221494353820606596474596123213794907817696464407741487933023872955957418138906153357241642402671628785055525128013554866348742044076765030884120570640849603547504542136631022478015426206312708331770306194189115500147749247608343890290577157120345978394756558906762439200363700708462188656536086157480385038466520606765485633512773542349897018232890598698420409047866908399809674409512902610848945919608963936372150712810756952918622271457119740249200414134029189579802031101033459032476560286129393552080445430636307057099638786386505485280915107368535213168557546173883647841782427655543607202229893186017692709619438068641032778569950343803893444664185780622495438569066308328531764787245816638782640915538908223432958773271711660209151632653715166458650862851871876813050841257538707704045839174254296967249325146050557272486243068290241835898921695540223405281806911062897403322699735043516994010660957925900108443500678580909634248489501733405358543826044373720908010055916667766180355038966820947715078608107558356571055704970509263867053732881415691756471791426550080180258729799840277452999430181485620258580096844309661394421850434685089070395597554008406238888509874537668044886141656864585759775267215277057785162662964766301682311516549637991212347428207952378715084689946441531949961141926683249210666973752319369523417640836040029826861922880826820683328982526658771295243512426849913010011237924155727139577731658861756313170105183221367788970424234673245593326140875173849728809419916334849429415494609374032502713927948258135429108738164039102333967257486970192334351334203943373317456056628805108483876533634433757156166013366795144294897061968340291128485583684374308279968627966165722010770142468687987803888257982740919965145725857611650220946459064637901815339903375347755814416490256759109137134909260019526013567054751403214518356169144412101853774792518341524956051083062130018010034062100105006653373615063385561576182751023854765944438283944923889695914992624477987669046964285371916678052847020663696275972257101332326688396970992913736471717059649839882374081727344043982994950213617768799738068110514401520351969508130788992291585675019549119671632402380536158787352041757470446018163491669112915859234464731140880152144839822334933808318363501147768574883699006542918392806471425335402577881083828372314822014938017415604024275949695398898047805478130940680512033690148018905429087079433514621554384876612408299451653503391590977987725608079550237718877540918810750015629465953054776731858743616887248085941117779870306783459260273537408655777456210628310226425594283655521108799893627740305208890094724543941619504089163671112286186255223591213999338124301487822816475098920046954413783346634191138187864759513854234312083409889290615720613500163343412174392243821220641855980229957020290575631714755706825687307075413426099277541165094062522028956474179214400514111628401815213153295509427032934641198373318704677349485311481451288422362033403420790911071874159619626699664077237411216043799661595512944900191211497295486895366790715945723315250613329418055461311606399745128486345235432438676939197643178846711341227265510219376966882147396789897789975023752413644026776387162471118848963286665614823447795632264347258657561755306952705001409503100902298765572601740848590289147201345722761396183427073225767795319017493333087968349330573258596427972059551221856394662327340603376561463093182321514935472645638513440183368692523297265833461337129481059089531453360592819575860581694026751158973751438001725737000992753317154946556918298060445818077733244031454848825039881324252478197619310535322076872169099283428292849165867606824916197093004670978894894764418931427997467445267763745917618145673400787012188142154227035734885107698578752242587450360221939220567977889692722573301236966791805116006352710698296201629894718571269055742618176350965724826098911242970139809432300152197764967989388447530183393654789554244075387381702355912698215844484470309697911745805059272505755629510886826686902533331906346390431473256389910626544526624975544166925037149102976976378241195960029890418507984443579156488097039009712877410387685927458847974853840529648451345966001138665197352751523806411193688970682968001816204822599676654690999372119010808369859036032905984644373561495584008946515712294329755842240738698644763203763443720277014863668259327589287661611750630054721854871691191553195649773964138865447194593075018148073914291521418972047454363156050615153648093683761367928785458130301016778456924413717174293265111827874529668584598331842574647839493286703391956671125735842945585681289745516140052385177116294013671409509669644135513898322940929211016656268548498745152752438217482252341471157362931921113639456620229099684067615715181282612266524685142564929439597303372927334339145006277045862791513750839804843328505940189930547143006896860613645192501804013284449046905347578368967508997721772744575334663169910268065522352509160323927810328234515780930228775953642187269669012957840669234067884899328921166398749388738041727685593231586280915754671813753329190197400019828656237233911670312237490581703596021121253483601553984384256777597282256275659438170830009739967139340929618914886539572524602456117296863305869993262500959615868489445945409946595583309407587711786793551209447881104727931434418889739078298695735266580080282760491652932004244380996369436337242369600095298675247892770553348107874010950044117442539115129890096621100464388833449909109014253502980463694554792976934836341220169964629083757348257044457780626289632741854416196565776722792558722084910057219977951183082668196785726498571433202468039724990132960878138085493740604099618503890328375927932255984884505484687102230509998877822047176461082949258744069109841620767757607580949568896257259603272829263985827359383473015729686078459971088928387720563460671981035394228560935646679679110284024937979565805407789564166793839767454466515176738003434321318826271993593959209150367043971164871894968370084166646106547744510321847379009937876969122148213829335789132402554548733544963178190425889515800759410171154127576043021619529576682964114349884921542590016696057510448471146673940139110621991233697586393523678941336254229423661420393047470654878008062387044496375287352988368895845966254940552364401595508804560816390869170156259896344108456915872598280597560317562950112346161197318891812161513485139523054770771968259576939368443256949811631540434801404040602610622605303346101029698783832312354946858702576509420811886132413046574640970842789490919411231388881689626551641824663897975648862110024878146557226786025424334031011388778713871827568628023280249927950954515965294138581313620731734172392973762866179114752443592886938298134814210970737102401085855768542613211982710939887026354914778890475819327425818002502838052062682610258508095955606891176533654061839984333095408507880816197342453339106499913556965343909438343991553073836318622833837166380135632423347773152473642395472527757832513865952579183055326924440839013933748741505845714112967795156962879231022646530504928557927047805587712239435502346230545491053395341728593294097091139147672172874444640329483534232974898094430301100021258720711957406841859629460715399455540858352895639165998873246401860912591201591131881411237309633025521828864645560919797880391908240359353881530252110621715007261593975544166829927614138852511301956799391689624943778984274093742160535411338573241384559166702956516596981090705579184262715590460643658973795526448180908062188188533415552160507323938911435800394843987022035113732368049000682510316667097387677345690954183282053637544341447479210106127441990531809406990738175818033904636216951780958348032242474733574753705584997241055120045621419388871331733742650167838179462666938658564355471989340238429431813660203846594031216764293575860694251696734363295307269482299429443488146213347497998479716782454664571504159841525079121760376018527285896579453801535280075132746490994922304879278194064265166082577010738445259710356625457425936625230707119753574860112495667167828584586059396004696695613951520895255935365025532830662621104126348199963711650846810742320222272089599148034197405837176606600552999776172628832437228786038910629083007416790555069817491903749900474150726660695840160454443428505555439311442343554572492789755646677269741552620520472022460355901300034650325188144045101246011229076924623588184526126402607039237625857315789162819459717498798228839929072901872755644614899826801138822876998653548461691335960878209146550660350889085941535746831100794285935803335151308276023604224658369265703328447566656641755811246444102270303685151094019190055496696332139826790038644557862897583601627635512978345082844305655424154902202489327927947835936803825729136783315686198309368967142867208567855767296391396035323341191511846763744657050333078003173093818748487038437469325853793288953027486811675150568135820521645404415319907766179825436233009706821488075228762650264994154905373110398580568977170929592497661046163504087671144346666013568659528977086269941080882989971699674749679269241355309710298865714655242140074393817072525124657688453448882424520084705359738281109634376607649257389811536531890934784261134743354138943193463641804251106750132277286825900472909295210056701737197521422224990600232329831212050711294864841953124756651950043333480915267849768539933084449934943941622170583739327118437356016298561456090898480460490158958798471579614094864358361946865077875698771154625905389303950756558873355235873654703651481332092999420627079303638489975119333761978924792002165924786487020316030451946596771325344204050708547576328778255179397179840268925636489221522145322086259533175135978980968956959292293211824531792374848465664327906508337753753712605275851334421782439098604090217172239018292087469418629240256592587485131022048729326115608945381425949831511238146179487751098590680963016499100043711480254227062964950661995697303073308882258913331186547799509456717713057024834360794103877095769856883105900589756243357021082127381539856715157334514844781551155850679786385998887660002794639440887576721948372264904091047358171388386929403128757453029566510624011958205728259628891769610949893067552692633376518451480408602234251077226017803663771415726052248875515365483920237465723696791275539622983915275375767312751952010155115309896414269968044356615743912661281240550268292839201395491372115029593079373578182361061350897335344422991907334607115033222901875674332044649167832752384948570877079066533419842062257346570153885753077153149920650932278964041047206164112186813568062462994186317865210109245204236434073462890365483746032839575831579875036566236863965905472907210408615382097182311951679233020198380122474354564014602661891528021101452546888964976553238025957548564269913994263879622569883545161392001512171703236362376203230910270300906584039323016597468488895983088459811125670217885706040593312857215831954343606555195539432436428141551510368616415408176751742997166388826283746247597896347811882663205041742075240877307791536115890179510626467214115082141169749866176918637810544912641764415990158003829893925328889555842378977714994770597810434538762925251438109328647901787891433235186444406161375162257467373479961321361262084765029657121536192347613273444411280465155372853316057502410509964476659200224197234132240670743285956561816560665999924139357074010595470299795938318361949488381180066808296939577684401240220813855868687833726702824727347761744963674466825377003099433207626073453696779781123049631421751993387545458764475253379263974894439921366199769798479861126788721407322518981694727138865612866385976815874939893036321126834599922374858735562145648592129860981519897643413878711348579490666851957228887359084599229676313024148278142262711790048294855051743344630513597662645439574688366113936302598451043357571222785436542869353729473745243904084001398044786988667578553558202147271975564347466496204855602240587458619108738061418357018466145025056434331124166356196420911394338291755459363289341354951524263764630020862786702886530472540591829243979842755427964481223081351668161287550989042498690103878650502605500604513959949787887688616219781033898732103763463651078255885713705131008618625147884626100963895790106483479404881094591580444555531164733928621419843959680436053006918471964218902994472254036038808570928836925438974542417019689691149390118227529503915501601833244845406960829018254345641998547003111988018180965669045961326895759077475118099569535261044066518431393510808564107053479310992584959990494492916172074979142383131860682506424737220462566962076162516114181378007101195842425977563146228689927550848232810666741109382636767859892996375034760640813507929492616701942005739090216636294977558863810502148374853546848874458768593316104723287992781580595111151712516343643721102044615161109929261576577303284144894716795302939834285924635005888124878613464575490111541233600422189868615232475749615187055170241400668257017657551081902078576536062938298688178149008087138849071390331584179256124339921283502526921412679688129267306777547680505463168328418636555984913089980771997730913864429620906282468730702128069424153194577501880739222153910208406321508928588994952700091396512644735913313676613618573124677187977854676175206396773615481719023795950604961614671052316718199517552420187404103771728357658802097794793757756817650507799653457175115818157296920521166359210722525193919185063141737760632416767495565502362021446095526926573947401449523033570088928645072060525077031251197193991237542016738377540391587993991868674141911907002281681027688256667732163712324696788935132597090138294902375546679570707640905271003648634800370523627936850794088248424927902154074089096734901678743771059008634369479548951028240071221881653040353312857535595068197897216604865634257984295637876382777553830915797318951189282881625611218713651521973802674555595457464007448977401372348373844470593775651274842760722779245534692384928109157522227307323851696692418975597123609574160916329321342334331709029948355017085128539678084845599871549054684963108694322699043470791637240485532964381578277466939482085007105821757968516156932915194823918601311685750095874136929068802040397253911173346861302974035750365484221372464266548309340437327909263873473453687146477371182111843243103922189831316977592629578890808742146915812770416434133917400700107718810566988255645792792412780388497486873115838672562161487574753036647172333001342458726459202639082569166173446502678251133819970477329649068918037271455837394135057283590561841678449766609331493666666570530399578332587988344326218918250771020017971462509997072533581359802342715319126865036033476618740474739017238847391492137316539418434609005381101218102282026967924502388837570140101076697350175394476568825419630362303110999177621576787650591541298549602226881933127553345053492699591538341971362531476518321692891794657327537511106606933123793421613211475003380151319083707092270580876763954926458469677434339699872396407424486387327091859577160624940277337133220305278317194242777444615591133883548460852920740984252579556076059791196869062554628729903061913388347530696098140855328966214810596256382554220253146169955685530134408299939060237440925694316300320642515679153953086373890935701724411706473601076119600538135040046959312328428495729455475571859269888309975676947786266355458749887394061175922211629179820517569093068511666929174079853379514318184095606376915580021227633403880812968593945758461368324630034779587607513431792928342213477907018910200296166818707899376162718354197285410715540260086672519584793959060229711077285106787814555387685852336878957990426894977005565489313004379823392498272423423974795120248856695930303416341921340070052397902182561884943998832425782225099600211081810438000144360197419723682628271684185328234153999231672590917661660654346871414325350296810105294062032085010643614637524181049218053472429024789390621360157365296741192393412050848081122474979731848823488182058291945369170606630653317786514586248098789251753595388792017735679165374828461757997413410497354570963327038406150980253612322217588392117247964047285784943179833627034470750259466442572605949294057940848869659060004782484287060468506833995312023642445855813121540530072669172481782586627802479453664280816194661003785104375803149153820347165771700775290940488128926641871489936026425681102634200055842745481437000066524056201605595393047543480250945038663838090598029347839291033776216685339450510245606889937889605012428143438234472533083372298477912148538012458038083636074798247825249392874676632195054739843560348951770765363631796717493993844084972358576044199325724772839407319907846763743359178725630332438012159843260158085838600757289306254512556194539937444243138508008463604922189777276375856651288117227320890698349980864465621376526623000894540918978547407560938586095507526567293708846448056878878844204015797988764568536869181713716220211219891361751589815653928046031865016783674254753308218118878779738692259606535906779775291709465807985282795413475003133539601265175888875302867027469161203448343957626654662308595376279819361015106073566512182855046574790634961891268198381976381301238699583446647697645910030144322817236732418738741621143537193552383003767732878812823616864830152926324870364513493455190589451770095261388269209372298436083339795867796877278957705908458605100250469573360757340556941148806756373609943317334871489583372300938562221873912338574643732867342206456028322036275169571608642767119511559789144471779164343434378161406005034694043466866202464781628200415622387061428401036095611930136724258236765573088016828572530616448680858718006786396894946479111038523952638280808693071631037601075383444212543131404475657285069294848349617317797436242353171279890048930518408081098117257767872658593385724862519292868571219148157448199356326620330762837154278906865889430677358929284279280762249284299335902663515659042006197458067915320109055170291770202872974112173932743210844900040629391406664306435061324555747737728790015891749630541264794069363165439978018057465119201675496975393412949246514115295023910498758160532290984510509701475209574466868746711520091937265857451166845250884577354236576227335388947999024457829134872460007044691208728752096151704695841660755171708478830473115770327756915082806255198238509091656290225959775365492627684654944331977919103802533781113951465457717234797444432274205180856429326242378747765009763052516571498124452259142932882357748006037895523344738484227478103001688139129897550570865515984332392811479384200898547780961364819766222186862188446718169491911366358333675650505527725059801321777091178719108770025526939593377635234238519080962771455031225765548645257740936559151457057477320400040858246170901930093238405512095481279908994118487938935167445801106326887070252024207346140565242369810202267353740668321264015374925209206902399988060340649313260478813609012786356171092234247914173561104009829612277090933168838484339439295361713965720030365398872087284110949873566382392425905617294927538923583692513143347822472670115831045327841602758613437788299371278954675770859183346518550173580269568876736466405025016314586416662223726362308280433132607838489336832601980098815115816209249279853481140162231945399781366061973381973785066764929933910123515416948513936498309217600076437425530676302385483093986351411438690036168272504567493803673422803401714358451727292441735914001564978492410895495747509424148372117462317583143766673439481922852378948681217176728244420434644997118433872120014313378026826543066833573528516158035845780025266854233148697631007272846489074659866610136140782834248142245742682282962856318131845972626163925031796946761721612423604076574587037861689662178697548044152387324057579862724005000337733147849644073569334646464427352758767602828237494481748915855832909817268704635421125441229506750436387647396206216971017089569067990545275392318476190928415389304783314126351199033260929017191865284814774277278090565217355308804681047613880535444440651735409455054890239595940697801879754412633816311165433733848320508121901910907855504020985666479081755852726313387549472423801954940223705427404331444198914313460629531774575972542086315701340021471291081056359052493194250320820306543472363579858452464041440561608253453892712243414503363127068449210576019827371688546708670348637934603637157662760409078983461723719889669723585138370356342462897000790497729771023972848149444543636424787883820321188079712745014077911354267002995978094052391835427232855894286976801916440841913282798605561579738016177062697832829674093454362502127329562678464268958017643717323474172209548121401174102766251379469075652518594018976901577673781517099124594694748358757968692327374246586982284909757393556447290425160587810298870260856337273881373217114737001956613489406054311289086255908734834369820654356985892950019548384767011406829729956377449180726921181597309093797556111196213456868473551265148176539467795555721215449334563024328365291346564638924490129386363610323030678266441843565659958455123794613920039325916546918220888236254688940151449335391159590532976162491539694894621363978531359380655012077199339697823478791899040260334944741523576848001079601339021850912101691845562838576100358825066241248492120962899122633683400134589901165945068384200443332671161490887659418011350164027410403062598931575002259681442928739700175012447320351184449053187970010489165784146529732694490637889130195589517026481999510809143577030738941869440888835454304827934812284596640995747264476705485048338460188252797427648918238124605730274820957536024912455519619248035079747206791155051518926950166677319088874347835770897997672043024558752337264630507580350497227342535002398494986211655497222997791059407715004018635319572661358944510153700578071309638032855400994127443591378846638383586516231125214403135754740932475418705115093715532037327116928174650983249191384605678874345217723351282482891668349951624083514062677436880100850743155566541692323753159345950112598011569839331712481634506975490150976456621223497586154108471932834697072874936146021140747507191558338362191918999120543662278058844652996854542465866944403064612345194833729518983087098257654623810284558458545860838885970028690275735262780685431082594494473314419846374129989703232755357871179267237154984976043626138637798253190463884786795471787898122517185863160878876183046946341062112777671797208403746930560410784073579651752523972145239266892161489999067016497106320649528598473710261006035148071765083869874898812564495163752885748122356286227533915694775609952288473900637875807663099131214260257626040731805995964534788424851645511605956036683273670752552979662497875018416093414764544534795980958116782889442715316953750837301584563949837281105249047697885866219647642313345225233439833762996343328146725601611137505955646499445334947948483033832822007008554676397991058316775601523424237986709430889535833106977103994985721714936513981610406376400847800901333525363361560519451301346161807813825704944677468275922436715533731710573112656751650835553265355440844158591498662440832074107020080695368867485958164332049568547371272525375422427933394229800442034839391302567321348185882880937218134943008559193301204451560832480737720303275944754726881603245571077059867539125626222891970609920968064496982084406419836633762591413226675723707071333329009337595119477312338818935139941659991101054641078468412678075798392551828305521740462831231465088114529009381412476225170233037329182352518299658915668338176102542490582610445603550698879812948372996186596426082003664051428982797039443602361448550001032715224044613535463763932936845184643925222750855788090984979660063017561229705898924599720557041172705855103798487650517477322490868043120639359897514456995782454751751447737526539703565708932331578525385823845364578241013841595549791852662748773834129130665955199772817103974323458379592096994244460479018179258040478441023413705722672900094416280452849627473747546837070154270969447970702489839501510246515728481962557281456310284158332151863502749722979759465410354171692857989027077705523589731394406458692564104208843892091740713577063118459035237455813169504458849722572642063155592751394464628390392582670105882778719024530063014856858640873744021268505296962775294631800320177760449268841901737343186053568971633684924546803952755900840583194944644987144917650886699449813239505398612118429582292495799516068982266529226306701953167060260212033794964945336937424219785196092994725973238258869203327517970589023495827139811177880875704412651185390547392666940482281235167749218805235779623559158045434682372487054618381802278017593685710381062735739508286969911015158244234549381696779302170801539740564560124477416540869079700140535190484105694793594795223528221066321441994092240555100598767640856522162718139960166660022593303331369591986663964993092856822530257893822895383635503924365683327247481514714859793599743051918199066922803374290822564659241561623303499855913110750702717553532968683894381113799027843373361474778527285486410847708087645490579638002442676567997688170364099281080597985734657033560911751430690424997504462268256214111133757467130110716426847641611837739993190909568611881430888572966392387128774899233823703865448861959847573416078285898713488849168866239582673461192548104226868057686492593145395926229594823734151967381358505648451044406561262145807330699470738411871409466023527873974162074677771629003865762411332647466957096386073630976463851504648161394784890755877878559940881586737472482618058556074870703120527975634566800765591355940635076480001719730916249192617165192029877511641387861032401339238251468385968311220826240904899551291608300536180848381047999286698683488246837976282451815844500506396347402134734801168312028942685613301664799409105275000080152825829676952984752581473845374499750014960965269697374341324295182379511690311988278679482101891114402871962081554788073383119051576101086498758825594669896976108386193153485029821943672057448670360995112431355289486603447023545769587131362164607403216955581261618643633104594497288593691322504155430031322370041686699310788569624356641901866100347058365596403236240166185179656122829360364247629170388161420801726642347131761238367561224602371627492302722705098803559921819789585328712583081947421568826776165052844279595454398611796016053488416234942159199251136786916978841927703520304807006149899648992463293422158850388962011369053964461573586662009213123108880502576625810663495264463187955841414467004341740079138985891995615225687547710406645628246844759900804341237596130754102819200241165142971902353385319302514097838618544279557138246284789468298175375513377738781318298382702460385028476349052451671761648219972767421185957666893871843437165009653885151890814416404507171979453037613758474973675874788755888661796996889423083783591314731311436311577613041925665015795496624638875232564219940446846596670046851302030426349976367651527048141696246427928377745089264402481021204260355878198756672882111096513511800790352738055657618159949329154104616349206442384476252218549580603847010802608721212631167254258678948072629801943624786405136667810021840866524764299861910878822876908693176342486067550923725368232102397262002155316342836419405928371623683946235040279758550265406917766671279712728976293133970470509957924270070424632765232709870422049402503891901798572136185587320953494619475273728902792257063899725050505022214683636736458060441467857244102859747380832237796361486148561248055003401454173653976074056908570816544036660732276196786794558284696840029306742916714966287847796172086331228180610076255057416729079451387665500730656966404435569849307822738908520449999103937912457426100030515890838044927343536028720325815704289150897309095458955709465807196905724102306616965962410564728110090658374453314396016748944791460137638357584801518374173083526097765694020295460238015234833589771103881618953207568035101572853727448193668074487278955774749796782058006208347861491989160383005567688277683550007354224699610388024166044099168917391735432208477996627408797029560447095512634574955611069009603569506301646722156372813202019730654846856550419678749685389782140338978592500626736141662140981990042243681266784726078183640262788869210627816091015293337538965239930493014082218165398885244632592631894220830435513339876115422996065819402038885914706297314551756030265694813102093010298180766968776766796840750246086325990860373646634749453735048422657265362294993597648949955912988716726758544823934664430426956507507276803288704713279116897863213010323929404627664671926674716437157777373696016053585122549605341985740015093727463905524066207157568644517063844927839549446319909245341442568300271241497259890620872753968903682400796828074080088278831924849154984413115938851276435704041771483256534828683802195532037659003882977463191452675925893747101349584540507735903386804495683748373789879189329907931130613853215057678623687153236742441243911300627006709443900277526189787255434173725139103596539372633291370601788469048924438938819430705853805750754994855751694384948300027483146680971834599989249676677525950212068787418454311703142804004764177648931342461663945858649803274358031389635612034552426113937629419909650853669090034531232227607934259243072188787661163593833411475102144597783590835074983026652260412635202941506234505123995117479444505417067841339527583607578545695524025362737445196293049341459427063439809998684684242069612796920353764424093043038172308904036893371560501125639225748887871642294635856124620906443768004471117421840530427314586622946871503254407700292053336453478368533476581059404952792058889499997856007487112302665168479058495247336745175480598204729268907375200072575758274342844485938442835778487137762992148522703349044776051417339782793187922642237747163524111965492382880952903737780137667437492845779986463242093544426142227130062630292602930423758919761968110070273823849535867057278191566560281872408415331611762736630609030476439664883290885417513406644873294609906393100170964240750507744680883586816700303424256064807346292760626418642820373874284582801112849818593706936632941378580875719359594515104389120742013212612916970145361627951777969846182946257613980761496182859796186561645126776928731075518375682294970483966032383284909639834773238821914411032387431791844536776436790901537051816813455372721878287243066900431207952119659556112674114579060019316865807369028303371650174063796242166484700652496060080469700993249669609600765564125556590949876083056685146379398028472603615581450797111790049641749246091548761268697060292494605421165470391555412975571163962368216593600427903160911632172463876971514990415654898760415255833708637076053302454075028008871462104367859174497869816461118201320306385080923386193522425678372417603670540026088891441010282310473378914669829109788960198127782393179649317285227540248582625220812509288979895589513610241752637166668301132496548104066498924715648547535316808085943896759151450835745713279731511341631575775180243891405327626202585950301370913541973074234847027247042616248695504243104949401953267785558490820923168448730749724765683121957064274160135113477602719887616077150546249157659344696112332299980513190223168725992839289321801268285994485589562749732170354869059251108427180130480173824882317680432376399256133014857791018897873982320030599078470748629826856907228855108926110109665924635795774008574520153646760930045521645467012810833581496692040857568174879512351529668531829395318424764981519309779058229644148662488450256722944333877262970678142687404136204482710602223880864089007784061693828620887805878099800300507686936267513711116821769265413668181463121539689210891995202558323837339256705722641343544195504673890002683586602414272943678776095186714819328277604393398753799703612183899688916799198949331813818220245311481440288946635757369295495727087265796227182572549192884099586727861369819800161810468541573027788232693908769135103522482748050051549439332948046948973027096867534910959729204850208210111192775055713907234873220592046881608899467103735146240762473362347838120144889183296198587057194353178229322456084275256434229447533618289214512445076718175834311230767927505394576417399851221168600844810311204389419823258452350701642235933683950116345573646576185003972066745225235525331834672349017249806483586573768000560854854797254485318756480637674585473294352153099226936594558513633788451123674770627384490274407318602897028726676715649860291790885950891057401061533815681139246231789036894996860478028734495097483581471168904663452239153168479241356136440036456348104623303513123178510686055344995593702149057567117568737967965412786020063251066289525650807739145468483182605250200622741896407040510151324742329815344419664728275333858469316448732483462061519416667280035979576330157165622996955411204972472753005062056182354029846916993109720084109066307851567583211920526329652796377970753360252578280907699600253407674337296305794304229123776909116759296289309632917370160603898343479682288813070260991971573184729354839196314071826784722775118383223217572839492433108235294294639627069373665587547774231233865134531262802090183288501750121789211637954836358102435897349499784656813095509827719659163942309060123507385158787311724917078948198821897971269407511800991328489458413450332098985066746648445517303315502074300576953129164292999018057900270909011887066345116956259719435349832393997326858062925598459010656563972975095472230992162207477512813837456176024920977019969233893880367412281978993259564036627336426333242744382596644907265412352890493601771237438578190612770057436135002983860713866517838547779066495386538194610826888751907122784485914593865658386932361854712988922045504372753812810336618942510348648516704827705134716001596011562683689165068334048946096327773944563286038179661218804293774988797814746014489781383497817237884899067584190226846601094845000862862613965574052403600692116143144244582063781408750870792590602292616387756496876508908334326923849531592722985312623929976380677203245009645829453075786034545843061554452334523961788863997034763125549643908290512586759634296147880970070624344974091038777309790242991346705867336834432052732079053666440968391519915490670274064140856437291041574125759869270168531681949884332899625026354651588150250551522379797317238337970286628466190055965262685507007167262496089826439924571120518931735086238846195649543381903257760582808582598416604716814588536528205730392078123703662540253158033040420376015633762695366809512417224323932356900708143835077216143708561195330361952750522188364177049128795097777579117715433478466771212996288538404260239108750636911465292276773801725025882922653803059595214921659236040005582970747497272232788795260193204717534801511237397004076893956093711638196662109983467809546979774924316981605011843992582870297135092019340443977106935531401883078117567815385948684904341968462876687294572025830091987215186312805951986195788854150732198137719966257337395334944246062937668929452482854071591958260748679870028997194673363567566432415992031251947235544649499749519302960929217502275856514447127897626979404386392570708709732166274862010571327900985466258805976839324873118191792006652037118755620565895931124306144728583489944481566787977155458212286761795929953037872929792401444745074864430212558668266445975590775037562069844215424884199027621255156408304761993410987241840543206717192223349575809732401543694960180020461997413606746921003401788680622079725748192167827591326551111099575604170461581319143129191396539708350170540118867303536940276915076138516787993613860928346554857218059403428414148669134709864436660369502867006337741142412408170583685696819629365358331357066862474839204626024526731046284869233605003685548588280347328817880255727304366578737037826497788332153172209913583310158831622485677077658479682906373580723714974267891081237558628378878922298948798344546735589970643105509374373967777652567699118994657731206449396655072383686462898679570775582395283158749272418518663389159612659543604224447552285508858780435359713543718190407354035663715884628331990245088273447130083829150744559779674056092522334283524294833078127816802972204199861298415089269206708344056751659325586782403887235965082171152847427937747104530087149823665961335937147602678389585373890351067632336840217231832488647243910613556962877668139909743233071574738023498221735739726462156173232121890239402482555256216073243636894054018240651289803342764562008494422102452489477042665644593062257153669515227001157601979057763883518945424604037609743897248379528874974932110233306488878449614896814046380213738018790753073902276382412815117595125149718941414333944739871453694983638665809760441297765016186450728374576411038568363456025361383861252318187524035231129405684893474735671585732102724115012062401289630076303870980482852992178846538045952732195123674368741891238218776826346726111014261877463318013097857127266407370586759552169752952569484180975631550124218769511088852952876700548469171185555473012466882825634405410402339060683860458841635983886599144720478022464815429369664451414879099054566539979234864114065218744134151269011935864769680539849505230824113815252088420913704724913148740350132610498166028242728156974430984642088216390967954071808194326443338231244686109110405762324170065703606064033460405990635519411107418942498176345487866706495360894753123232062906739283987569370389465555069047579925706393702778127863720230967232382307559464147909925975755552666644910779705206280017118407945752910178700887925062193181684941404410307336923953925925733015920420039491726678000248501520444336225446448346718674261011256181002018330854718535167552337174556577558020578816277443362443515016918911305084488602738803418318153290225493446631771355147750631886116337209705869287899355747745972839291800331876675351216458116872130879181947347478632968640220657255063754867896142569546015146643092363938785348465827461548149174219116743654255406490080502291733839689316024840077038158009361909807183013080587000557537273838100526792956470141559999260410636238701760245424345590547553347809885144292956972007918646156688506836109641211642109711269140395715396516124578943910813675408512087040520698860042954981685405915805074973515487874040568743451895078080678003190463711378499582780611710366095316854224918836557451716216964100154505909222861973449418741432989983326033051394648406833718106055116074822494646255617190919467038909680763346986039610204525312989534490253608675155656852966714249615870116746245886619409412710450632600132243815610112999120635952367537807008542389926939292187713918070794464784813806929365047033016305466976799852142345791546386829253918164055366831462489820816587866491587297709064827780580414707249030945412437235987387530320320549425072947753886064768878798322055924429899791790801863636549631566151633660549504298661973205440706151360348700435480786065836418378712447193671527424483539234440627650597809316276093832872267196287857738636738418610338406311443702802072990623108704958240221607342191970950860365317031419150211406290539802596796256234907687913842880924729492917510225248929750087621539560780191931407807275407328852593979439396541407504133540871924884856099609924915180721073428211539405757675237394595067789324416765694041133621381291070783291898363871946752958823899918891845526888424212595444873576813639538618601415881955502312706856198092159279482613581621880461685917930344076210216562452061088844661697059631196640949390788740334666650325059043408008278431394208875193628431472786009756498289887990161971113473789054825780669114034346598219213095764955148484426674779744589214611711400768571886494169748946760177566761147281662703325542202632742201867470136056509929230432622901505857372568004966692692307176109832331553943239100728591250276790026471077657614387516991384384239738311383311462594467495818715227897175813819909691846417292996524267169475430921969760568151649891559810283096415114710222449282742281650920187329236664581936401431091111709312678749693391031115819799156272596967513999896203347849405002216691384013068394639795528118170923078471036205001552884578052513982197136068421269547180036290944673218748048948783120653470898478855230288926162250705202219007959524567729832603602683858703878316859274106538226999351678293579771031073281717018134063336179510120279727874668955785875502539638679122434996138123637473844983454550616161884390389844324104810714492607140029981492692020510856316000914010222376778024162309061452104517319427360480293247389366761212854720638987352858513318696237912371071964633134930805898923256516119506506479799902521646785099753703855755415463962837336194690429295455143598377350237968089945654494496316767517882357924368951112809686589449976436563307614057042385284061804852057750518088621443820512860386467983536859892098879001585389250366650291502863380788188690573164288914851641327035122791201649032903066128763682920336407169590425812446755757929628448133812114316061523838461731579648694065140114296782764543533372318362927923019940993016654816768851651537555775082097936573220883782413786992990170764005686105568093987880881375227610706589109216090512307611923484429060646937718149023724770738131765866400261973310009795207594176443595057418869142928429733421704862446656088497858273677708894687197786928351318636154562101634795642644982550777071621765935592062070308330482465209193232993690473275467565839449311215117069770018295035812675445268114185726243510259137948497296166257326112774072800072753225297756428785117921001276430214128127171321450133430133067770700527132480443047406323036887919941032974530467372472222231268139662229967938752040071842228924160001781769297883933215373888551520254359691018071751284429392418534692097455121717617748073692379576803723883676375713083489324912109906468930515411223012391751319031014974073896705232550172988504225499864552907486637966811174601775653709116964889385126565347931666095185848480257228847417904841015772725618462486253016530801281143972235480712025310997624469189036249848510662106080268414333718765170948721359214214551494750292853127053272078014326075134900707301019801773199754359721361441944789823630988651199331561174509095904392818817430823919627596036670378036000685228454003240256168439046770534733232190239204364717032912770130386624792423371368740612665489453454982769537386621746957884734853583576468387016290108858405494598375358396001301628475565676742175831883343776338475120514569362173827386619113607323760993374059916481540270660024163527049466056158589050194532814465333496142446745030232858132825641353007981455026777655224144744380835147895229184973232615489957223617860176943082256383461662487595039868643250000426207561108386957666708425443058167952613424326975989131476685836424167512606277734643493153380180049681209206798733406883232877742340534415577626814008857903121699629388770929964681175539459721911767194818206192537249424618173472704770881793845834982882917115932845307752223310670501884912075462381723700344323091282680227237580588526481787698595517187363175318032779095998547262343697872195619204572392513295280004891543184921878506249957814732468109170758586697336325257782861864292576837997614716641666030323331894204116273321606358282055516999206643618007536527784797581639591477411987508614177955049783785192555931360178106099159631144953431898306964611702083190097029765374322853306310663805339753075652561153125129238607247691798674048373188872923508962345644563741586817653671914099880561638262278566225770766607613820673920506431833663737888594950055207466260713927411187018261862139595147474514466676406050144111107524364639748952743301594526628734823037071146196357063228137034812922965150342546191171530249545527993043136304308884779581093309018072763865479866072618891555063567333498857022782081527898169588764458987242029472717129222389215855642423671136775038645238250455560260669738591223769627898925105727509570488300824998590584324183479218050230413337116037015357514899305729980471583205872708326462193794004602434354664381666723115423359039088425466495395018628343355947530716948220796299710719925150334423728194386648326959258414185893722059424041697911589409835096209924812101447518415578233907714768037436013493789802754767984187470695527135619669809865335322559113305556893373623450030478927000585329238107966823387704542847193521871047146474026045856026233978085300029975862752945565388769070649793435167909366820318646857344242929306285855102026754479235552298917235852964450265113866815880829787768552294430754019495298473815378342563277823367812305801029881075772572355289749003842709581986358037512294041273158385806534642781337513293422148574076759349697022089102303061791747310124882455224420424590712603886681051425137778809040047439152396809887343460252554650184827144855350362512017206768367159470493455958220845910347212506804999543489935479667698428197515539908847714557816230060317041173024550762471769257827677518530916044807392454104269620863445291795032588995714160715413769508138597391076872179911346588387875163024527590713466369472645501977728254571456654875043602749379031838525247823532067621285496785928368673005304090233639897323051105928241394898204129846978051962518700231366828382428601282024044541311874283907499372251489144261784530811076450318233386765765826097497610799998046534254470152908862015117237055997086565659274067574240335975087136599509019743930345120118235537288261429343203004241774422402331364043869361602669323385466597694347814499872930300559548766852678187050586662487088571347044920056503592034181581319658522748736277636756338803325597685188288286863341295353889464537824741777554746613936889112033751209331820455580418037461798679873755191514171580031973669769105187143098362274485098614161761452546365613564868429614368813869483505759709166041102274681727117567854663243754164136576108211687311862743749739506600670383284053325157241044479032362468339450417768915242021208126216901885978042595670798239890076972001989119586653002143530160381285984336477670106556351761516096810065725326162958262568719185170850265487541230595160513507681742887884666245402426670032578835293932324017407763836889699085530285250599860489463389707785236138429495178993070419618658511195323894116320993897659015453348922763381918234177757551639695957567804188519632565217201389752057220251026282323990000157269001048325685542078835002872730233268960171915624551055130214196319126786579719644705610751599257041662037607911200132454347765259901029047759945907464799970114958654708937433188020286397189088976203071034003509124072644247221840134231210607808607634538601180264767950613444672168524358483432791392369161831185281598717029196277730690593494232100873664491639264355452838310225579092321085889776360177959617825752447455861822300196352220851966139611139601377634400990287936078805407875911053117566750190267802742878946276515094896680353835929627085556245424902950196728660924093240751097290512295783191370370512305487137002345037617186826337234774898237993045577430638552097959026701199208081679200840616792985981452260158871132863453941681787643600139965834628061632543967535466422715456280453397935575905062948461298051490865010293190075640895408625829765745288732054650546292656820551099702365627438989321925494836775470702365050773319994586828311174957661378402600459736536099473916205606814431580872363986260362004036263708720057886503005558613317256340439726812655448053427497222500110982044005823644939441988324082046355669834795137060699846233924753549637884018265013261659989967935796411679598811994130579990242068136360427318057150913651016076493962975395125827620566704469307417190541321194591133436613534083893758756575333169989305783216386595243516039899138928139405694433038774921181979100084382160047802999339870836858372803015018060764223113235736371568396006865868461563644356017649267025039452087828659529661416345945891038971552224754589601148602940796191005817697027489934780702285446442690970016891245519518880209449385884793857415377693187538239221443747161460811620380640214639510057853107298843024153804303635431925418767596646516986030564523926890711831726310693940990266392799113183820537370264953936813438430690581711204180490633013643339273220725515172962569921292186832705894688932262347295307883915369828899415319254068162270741542002145935908609346834963008206151986462026791493231327041707139302425468886692898591604675876840940653610847156171893766558968793273789995180046781287855352977480469052964825569320581273974517002398117864793130931822350996440910197693289097359162458129775306565688331086882870894736192716682372161355142890367740156663151736355772031211227566404922415487020914793977270436726007121606465440922584527923959983744136670687252139412478377046498847151751660505171010135661519303342407498784711205009088479758783015575289269387234427214820538925951688276934091875053252956027492303992727177776790941889139155721700525464540120751629735410535504885177203221216905559758764043802344484644277590832513037218388788426346574274827221022878667220496989364580206853388020901866827105515661488104680856928911479793379763587104483749265496686032177487324404678701549667843389972361938054831670362810000719126394037815011608768592608800781174922653578256579081899084068055893773398134093973732820421093118532335273172372135188861382626448140020013253090902459146250248923200327210851271740421101880448162148479290419823023496658161213236013668108417591692513311407028666398943873936727907292973804152321477208548778430620632851674160050960438515511989811384870360249293812979482782084109321279411698747274131359057594267357596329914845397584260942787653989408540572092945613263167757818431480042632943806231540610991835040019103762002618913964410749337461827750884993219055040182525980454125810825860401438031798338567892307413894747177708445464495260914312744690178087510496708334875383598305036516690045031344781015232844001415760368375166438446824237791912664820842438537178239837222060412269910581781987077470504299775768720251977021789855335495861189727723460605123905719428774025458987122125458404070104276176232662537895532127065386207200867860788101771596585839261200148312988637885936789871180313781678047842117072671199830427401125765262273416571241216702720979943845865122473688765476839298938802938376981260781503367290913530192336514864878469391031355677153946344134444554997203922181034714674296138067030701994399099551978179529264328804829953653097116071319080942005080029481976094482351951435894782200382891517557184596627815152272918304205302154387828223334488310429104318072074183844142803943694011674238213521697228722551813157576889661504216868240768311145533889888721698181109083941550927794120024214562096480644342963706029193452628632246444938481385805973490003512879188178047068023821757076113362655116393313114079801903652695497802460825249113534220084506219353135596581245889852299163050243440907941454213112788712854957421073592586256245773939251639135021958010210997073718722413481820203632742374791005795452774873256924704896532045526623385997608448445683088208080129251631729002979710689254228529595732103131733720323535552451161595516057544284206164716779122919599461294696103337534712366199906914551006755080955912884202867379446374105088418504143136542565515429723641499719363581771467680377775351555214476515091432948614370254884937838493746792889387125680295643465409238549183157137021595433403688317276077691317727701162568272013244637793182111888715492484042248451136976887626035651738896796373716370488773134583964268721519822757708667262236934849325603606325853389453741644016258453447855392594371247293858651181455671817515932821556426521113454820953867591772563790723018608042446895662623699237007623894872264524863905852857838919325961154751625308882486125927414459600545269591916598207792478165202631459715231005161660504393053741006723631961774920484669574147528529532190261892188968271300656064804660573490830188118332317971177430991331879577245233034153309736202413921076619939924635403465293476890400692860110814333590579868168071913571895503278164742478398097605536469452862628166145784281569908819764834839582602036936583157287123869344879894751146802730967434240775593212570791601268058618074634930835243230511227002877928462217899417879388041471334479767302902520785323829461398947173334057680237075594872846434006265517756358284464091149838729740868320724868538553305106015531134747689401982748819266218093694221804440155536158438392626139756474572145813773028062723730819600925875408159151650896733293080148608703406475375303474788476869974792724323058184928520841788962245830879735172836227967887112455237568818517686461349709069119185995041907766446667863190724635373030724476927163974934277235723292813604796010358457107317229591488811281229994591526764257431948305775371813098648634290063528351150086653461131902804041467637034230453429416442283861576869469943978263664631139895604178982771674621153830688166670108965062050006915571740304153349570429816497755395388323874371248422290536863494778973342409613071834404663654836258647344874586396474715986853401901890740571274111449891494725324997261675688833448528298617754653542944993175158880958728506803304884489985388315734259555683688126170621046175323169636775319945595867780411927243772461544119086452265833979246296088681071951688909400651578591867967451824037748148981735883386981205214956377267416686410487211169388743639203134903793542627229018022612133188995283146544798337951759296079097124592147339659855498280792064730688690182169185831140891053333016750230585029427678876917765960261777314214004455998650738987995716495654843233536380050847138637418868401540874925738963503330627513960937549605569443162782950216141623928222096531866117119733614240446552952986517710503143412660518187960023321129190220848562783502014204461504639010355496094087813685826190151617875335875463673573738180614285450194448235255365373223408013183461749692351782968851623840806241089736231048372922448516116650937553267542826250145728045991720747269939746176980528253170528061754066483554927244673147969724583648350511424177274515082587090544767127816005181272952260870069431439238169479801101337632143216404615045356566046121736871363807054539726891778875359115798126407370097057019656619267723287384605060563970213377115258070163324162965404177338284340453774981604910596884240316799682792815689688806164174466377657386678252591462520657597100029644232819100829016672663410369177592792010100664390058732689825606141118157142487849716131209284781282431369857170180182498760118010547052209412152347382654544830074689835863545086161146894570839243408475094082199155893189592093815544750362826712048721094004645298631891364471173393461872013504810311473358888101142966030771982625019804090490100791962848459043861345277009835584204513362787240018897149900575219097022576306051724566658489993844150189632543112341530124322612348822348440105402086185267006215423385902437662077222785361065339989966277796322393020876980467124682520584570119992828876412229487259710857153207031744540530059559892705852791858166797571326207977140169606745379685189391760949662841150252117768957329939074158831632733641152512894168641053183833615314637281419082070647970786455950888374352989581673521229101024412366908759491659320327047234570015716080706999910200049774458135008562380239469195332786955301848249117826608786877348337805275771721415368182477336757308789504133913401857568365221140864984980388193524593682995810099656332473743733967190404662137823393825074844268725013853394702092250084758535215026014396090020663407786677432536197345010477785321768531467342405743283677708936210940989849594787215263887008260312423458740406309338700094486138674016924347140360092260258861405715127665824722317769158107397056678022195505090387704537974076108649081943567970259621404501231513960686673089705830829925628628772396893581781164375187744859040001433164455322516220328550411931614120209466458389742893589343512950307258715383785393149202285669929886827324004111309458870045799634915048018444931753542178290035293493451767582484432794636063234882655450971147306292301196020578463861845827632176196199199936205355600165355116650353995428733354198929521921592988802539581515922429109412670936540228149222832212393830870012253219302085187172454446264949878780269949090589505928788833993004293980993495341649492343504796542879580654115167769564321634711234979172512810740955750422300419063889946973506077308746426715008337540126627185149405481305531059425541257923452836120138384223370496079502103250217497647766943151897146298922546958800391243202671741212433018719324561557951273485079840907771566373013178208077331595837258878594783190692730109186844520982669124409743383695119089701901326087057598935365307415855555090783055179815576103067515512478256666180082470748851674021179507399322218723435214898428563242886842025062216029339755412906099967147297438265314083196223221270865266143808624644466254237174829634974217385094234954862063390445244451973529046499506024280977971353680809171710002181345124249713924917909247818550516166757835704517046153561366955082110813423864515206343150009956455124126330648239640856712954875539146210103696336954137527030656488312736932941120695652504938540698199805918787900492605613467110761847789135526506597989789963262954966258884693572322778508295332828903976753260120865063894031794971412734475106530650406540837388337384185878149714549253056884906453515864756036288533749439264305499605105409233275846266018996342651493063863538366132674498487703676227569073988714954351083062999264033423192504263727142975277068148486611776445576607287652970487416499807823507382582060494534136770167856627023281070055963141336137536914846465306783836763108487629905553821747919815525345038375968638620388409728896417000508654775066456113709415466290491752957494524574974368860081729419316093239186490327624735196098541384419232546956817328835348608750191747940789019483021457334365926118320087488364964168255886211160776938928000945881222976203236648664302576959744344727936573691497383237090722831994027129588055805907833718510241523825614881724602013496547107638783576438128903701032363153389854468175524389837878771328330548995185110333066530010554580625090161763900323391792084930239600485047881366984504588898893917631889156072016110077071646604992115905836091141281039532735685730686807131895277880053436517816829688012430140298809375762022482371038490948829942741647917276338060258193719709487411232157421976681727636376451956018080117255184156648358619310069720422047860368844255009885063197186611372917678934441346431859355066223051974499829439041015473585534422426364533939735901407009902756251621052607933828197671596906698424603205672424384520888775057479059269375475252341655416583825770184910308853624390126495261407943401568530652323090424677034767863645129747051187193728341237449329304370120502482734364319736366400842571763369087944608662106003401186299937564518729349156017961915426873835174333745787953587890112087225603191010262165698106980989818544953446985060618613100270338277327746599904310961524815450286903562060736983133626073550514314869164438120628862962971703697368279488807715583059902308657485472670682938319034267071621961394606593466138042512006128757010049936628456322625610308753728973317967079564881440147070906966210044254116127477061945910556652532439820883424115958977084203149281697755320857771553268593561503570825667403633472271241494289531937950579795364901082542339950291435127927606862593990166933346464915203845368870613975610748500717819539504081363783629657045047070256096820772921924172924084114023824553631747272060539897924413096417474682253971434114276480202627016203350785887925752742816074923646235973936319266606494201575935186462552904883945754036185023267188622682701288065584297780219087010376728510758360790259632922008527471350978109491274732877251061493405081089301194646372475350577326089320750092432001013274280650002779542613016282419605172669861108897582927671234718955707178044895169264176024770338078801295044778691666689873453657425546135837617189512637702657654408936495604769024331746876771925981672251004795283700508593985594363989161666520271801464299791795170294872625229297428952666624567538972710219258628734921807101235148322934153610585364457727401698144621859158359274704051603802168067715289378034592249156495286277242976993259980918133935406690542440230617654011070404173077543481498551115885220925235932661024336041026883723365818369810681518296037182071459337582801960646830518582801677367063127081210558446504577458647513212155639916290974694643074695706247865066237023226280488830914954794594208620909583248038480232395407465372033320040664264475241527855689573986786044503614680063976320111318961850306817169818602991236982162684766032782934986459031551276165413577299556139871956319691361393872256258404807229622704057728179629131022205612578256197474813263908077708796208311558461892649387165106480643021570539551063523858898446162190319698703435414816827998118566620201971324737966400430812644016960743709199300869356923293794714451759689652308815210198520920163741128686694678316534814385276679523233807279635099038928217600102894907278216067243520772100977531232911517635952552846624667894674128470439808380243669756015830776954675676118314431740978537756955752700938080494476618928405289739088914712700364488919233956204364205366598482516524907158721989490714125530405911089037714401138535003176457106790230011686255066773053057627008980696904455139480410845084564962464437550892088169861983150269712275900805215023237184956143305667954390659549024830937312397044636587447624674804895145536731035740877398528700717722060078131839983170317123149338311178577530233530084820333757722300267546240832503537326549025147950901523472278014971638725247014165436846833703001503031105737084019363715075516080678698632002901624059374501168490939640786692650191466043045762237381513664703472169078626587048805441117008472141510589154463074266231014214817041244214486632961719717086563152734478877171533946864569211077180290312446596104925528354433867525529203621411027803696796045096086197507051104457111562768061284286242164204601396473616291318524069925215162314473304526614725811599878249360779313357516004782940180623129958172704122292360431096662559325472860077348529423470748926124302693254570946888903570712451927697348095782835223089604317169226301492997264657176747190716517743349896037854444863777080451046418569315359741348714871632398558763273222152499073050455352981806507566394919158193779818866086892968931585131519300529756490635438816495067783090934075066716728725789173954043563154804827061770503182777726000894803283967215528533510160334077808683908521689858697597889374565599141106706654152908600685620101866419713444973229191886179467059181373180010582451192202012571941227976331985786812074250400294926577390400963283426957081577484930595845597245194140615205832615508103067795855715462535660718231934482463946358619008634677309198755619461345081198868500743004273915066808768004163133912580093693379887249368175114922886412738148971315010723586548737085906479801727386462670366819633557241231921485970542299298528014265178607542747348227224244633533313893492795788324061368548262745807785461615245020305614395878029985172577656450174382472408096462134297452973652481008522565869625507571809161069337453680295302508883515910284534169507808098478607798310828975961140489398617884976033843352875948107035118746533182944996733915425103963267618786727336906992588211953634920316409939775768534864458320369907566593917391519163319350512749985767069253410260100764102939872132560856466584515312929576154950168923092752497290401361779881433434455678496766061384442068291957601984153966643741502260786886096573786151906042183873757375579787418571995940707776416580470897575518350246323244890754631010635442635811270191268343364733758309070967549545558296905531492313317788882253199222423809561627261886011158338791797869822580401761430370003004077933667698985771597450520413350942300772318340349499303970310835406785992912898028071775415301760629125256156839873593240053675573773811438042905465019138798686348514784794662062720200328765801690001444509128527997088309639628391186429874394763984892455979418074356987930337219794397749033512492141390274236306212787846228032714581564419600495996013470664127576006819972779741709371279037517723739443924944431463652441810740471968186470660054583481519188574191378576120353392093031696288196150920382558451509756342768509400577220948289898015928381248462179442514272802054449821357812070435314453819572465679998375857017576752727205125084312288706087924306283498487368362222971852799204913066776685903503332486422293816385109131688384225595242575476222467744158524643098880491298758067920587395099873833699166829805838644420097030167063342668651699712512219452800178408641411614086757824094134745841884347352889787386426538510461738105226572711796473041476031961703698566388411190779359127394487824027857478315038832208726402382377236903866651019375425906367461352210753291226439902885211241293752234721139451044532830650836552452736861835846638831337028402175755049615916816440739590085775911643247228853321639217535729547351691885518987856150710319689181391450703720375880817496505682952036419007140905454359508100206647549975357157679541701222614649930985179580390156902592823830327962299833330055259404859123565302096594071014811218727772047434889312798089958709496033191699112726632898112535281536983797370435451596214094015358240137620044831186485556945358206594683103503717290586285923398737562061123006754285722832165222196278318276914492462308317997336389888097537271833333767276052207216664031785999131210237823015456763181257640248119850946813325850606090014488813108281474342068647777176072031070113605990658596390874686566732352299583120186397154614746414843444843058262160251853981646007477217468218563314246430100979672626585561255597920781700123767516139273395316994576633982462941356280508469414528457106412406614329802544625982271918935331734409876407187937449395202225288410821794912072468811097116308249597505262636520324665679446168297559749052844964490214171815559038021563395661361689621147200293028732591907002102896658843952257205333404401739257809325636094101876893427331138938027293566371436951669715208163249964625855815482427234107618095163007464915363317272492132119913785264807504260201880888835904403254941836150440161423706909907394424689462052146825632448816524038026271635866023736118159881788003754011616455533108557117629574403492194323111167346012094017354499024047365290291362261862377199464220534012942276598948362863303744519426823224020621772832533900342748759971625147337567453514661933997720338034321128354798180595668840377639536250080596348432741563005127275998864941651415837549996572399750166488720355192879012189781931973606760482308149153488570891690967003376082476044040047420636768441801772488932319106484084846743535033813330618488468962293254252738971826154074032620345556206255967830125944520611697816286242562441541394880687216874129214495528205146786246057989369252822287068201023638957394029366982696604219955947527356292465384025640654315576516434755772192260468852135818313851984065718850306895379480593155840560247025978387783324026808375589765910268054039761552164454473158556295267559005028771026726337421795018222571904728031219774020039803200557876685917745022250644388072353245680012388011198004137469885802050672394547835927610307967309180426429529560227491600598871042516503681757209171352532808762624478607782282179077446494721984432665688664138489451041897156450553770430503270317103625178787288636513206648805490893223484513693719496784241102946027163907296868155733078764815650721618729640337083243480265262286069487703557619602042258576873283128015131643041232737289478739809892502394545098801722109546847132261299106124256004480526286759581021976900849622419717637201138884249044649334594031882397845743861872604106377770634554175200426543340467336872652226411552628196093782509855549274884284270006946141083973108020610522767313966347321590491341803338006934760756576780568515981722647562517432741298406624917314537281746054494700073940626419580531518752543696977641780190351108065083543627701639715462494912411585377777537124292915634748867741703236064047488852497970104861374848438896726569415030337289624368718560386339876802695511163187436707004417121460492133195179831671118150111445941300132723534239274152714805145857712180585327362513175226354431804655360891197030904518116633531499069627725766890628712653605976385966522355855107189799304094222238399367380414061345012534597937679996105385723374934587558421929861885558881951227351975010694291018043426506747935826466322167676337115727111996300835049577340626066545376640616964088318889879343736898005712255176680458834189632474023558930807530602209892140353381433723759673845013547694224418076634061398173383416095593447846348862224043090019914963065603823217052734861683363080097013369165346625160635476361069264101574765563583650468820697958810420468871277381307636441118280905496953324439123767380239950001018075839053921908776556306745980711027053097093255077057499203453474105462432830003931679149298107642854574960258772542277280246231447980566923807484777944591185792786231618417040823073608028125835470237057428796661600172279601385363837924820345810631616934600521544003171408427612244318865524973378059886878787321260457016786639636903364417877906381697035780776463687647957129618377672454744317774354014371512152009142959842614759797364101984130555305199503572130141494476805246447402710432410768839485673419722090766930876781921315077228180704304466087750852899244140078474495843055296543348917240153433431188649464415271859158726092434791505700745194347903785803511572879345879998797603982867148123176278785611013241139276082119666630639908062321665010821001103276282200904032327568656494352670727628005362833653992777699995830639132921605930817765719239215989250914320101186732046740796011541686502755069830152945466698644384463290386519398938188131812693474271138649672293874320824791450920213419992061693064028370900781701170419842306205218174996983294854004819992532318797516370026867057894228422995951426088709024114727612189406915953659761566461122676649520428247096913651459385781229541894128209229098380584796984537185697119878784731432911402996299289797722330108390555977313183973072165386893806756241566184592345357442861157416932217100765275508720338321849894551489079449145611089943889899883382699114859337108093210051063948507180974042526350772143131622729180663886263473779660096654135532997093621909624338360941066783519505439343106764713096945090502580387876753061495230863908641796218734094307262886383573315917324811681982990487482706795620251643757453206896348842690490249864583695041269581279476825195708650648152719367593458546151410918500287486656431410994750932305693396064916708206394345896223604390241616071754720765326488805882342639259072217761651642013796537161298493233141797515084911373503493425695038447578937570981123501773171710773396697229808247816107822531090179218184273045376859921844111541580788059449731410233004858198315653255390900370904923918286129812052883100790960269999149629310040965562577133165510613538527070378427657694616213535332792156805318979855348122532800870880988343336803198516102826306304722984361841798487979852898274493340877079581875763611301146620939190148922818480258699871946365314601599745854221111726366184645837827444895193582282404736577669122095525005204948201790978337709959850291653526585932796982612466373024270464358838825619455216078728472819108871339996068288831358184404327943829428798122434930379531307441428275719046597082092925322801281454956596395870385880301608283937754530202322541319689864957424004142980661362128026287217037810275250606451083060653301163209758804532484271139331384156877434787353750536617004261559567344897645224284050861968328604693699375367554807428508091983295905681509972645478225920432350796845491529105041519635607966394713924260313298702646201190130255122883661781061193350610768531831840287898876297187933333766174088913436842925127486836508601179471779003619519774832679425221132527568035573134614681813901427757197847563958645982817743858975900442214825684932916103548270333192612948386899630974940020842703448540533457155309630997552792183768074058785892150281999926886360267054741846664338447529086023365305029821809689643644362977647962132157992482043460602850546343844638869922475988320814494513302299236869208141221440285633273325147611290024043800562381737983712902861897328369699825426070385490221464051460486747761070379225937774534798867426329263514507429647897444901901563501187935410534133609370103365743926276252414474569431617116671743764984637710451192920000617575432704766897816178682488670681492503653631904045129043495283839275144161890152145037394171313635861641002597111406397967121470681271085341374765895645189671565353231316854830464074744692634092563652399266661441883960764788464260754969410917939339593472667491335360067951447381477283426518771612530373406087719088645247442564250732717223155490929530893268704311560859221455297901048542607571650561696347485922633988361918763886077889539940942439021619011822823647297572277081400869677651637210578012126048974064891828295111518910101803649031573306516427242085936686112206205269910659298126421208716902997001409378520950018530384335659325658179760129621935527816922608987628765405269989930302459874774728123861547234427040118568149411244721194909340924752597393558402057307767232987505167554346572733306263704464462384961238453533155751121399761968121946604526160683248946539008676454265531858521148785360368686266765442314957227034145938529620996306147911038117833060800325634524661904076552280878862281901567489299400662447944773928982486837912121692488508575872427794647834029800589062816578373502695453064602431195934187752184356512434438481952250515007649166654511747830794203749453534424295657296335878955832393439076111348621627392351220408371247698206626107082899201571380568564997301536416581410933085101750666084792919854127064934589416273881155399821798169837878718714612192422788747258643787663858232620566463614385211327670825690559089360163622493760582058480477547875723254234026014810984740032689998497756791435940192228747082661483537588743100585700487040263633892951654371011446525282621116090384327130661780488361136628510702631697444399380020610130623039104712716687754843900960439323203054001407642118249974838102583112828646659891015458410199231113449337489617649507272787315760682199243517786662192620556333701936117435210240558420058322243543719762073859025921290505195423858368358816102622292130337164543903130997523424476818312267987991406976184263772816965115287549407100095280562540069476531917250234082185842452234432275386366470627500151240050729109692246182511241776087299150748948297850761960483728072952122716488515782661461810548422694769321802278910217456767019872797265579163797285026454614961797733671243634298874541753660985871330471060621082051725711702552195538105805117908095315019341180173727559600342142857778287434445391774163503458660691110156254926506529753798472919629099062227360705788898792377849778471056866480137752423762738410668718874495161060804286184243667659089560122768312716999601004010504650334320439074760265206434662016706817693540156955077572806236478471276605645831417873085963028992773417891819061918483383620354389026036169052686431106814177457647910184583505772669591408664541807843079930172767803567722455406961594512393921511099034209964681069057635730385291770341130789668787274921733280960759274547067141118675283125663746107173497423733329432739348724087190249286806661363078656707263865359753269157841634845488042920885292884709669763779939431299606465799188120501670586795082346451682511874225611417058150252849166532724065241574747776750554682659381509419825816229192151311047217941697947029856589648560031683562949958787389981043947128252175561693147424339579323578735402800872118009942119314145313483661903161145019158514547172016357223494384197294923798537923835477251846207521922575304184199126609176578460322333871939130169223265093460788853031072486240693198495751517603633401181429267064531014558578317196918247133530701204544165569475759423805596815024318925489072548277013327724492593909525396597009500425462811708462047853775033817157682302221782372558190651121540863216834526223992514137826803751694068327130816369397734164051362231632055814838977002581728804992761429930807709884856907084642282459664795296877697578627084628279839591711920960793238725562394895198310720906220428831813417596605261053885614658502169616264925469043521158378866341436362157553587289402451487072441082409729319563504850027493513809312073631991227520651174841501980374923972134516391499430730281766092632332388409545017402078033366495181075645891124971907615179298286495683132246191269470236915733426628213414947346180282560754550617638981067687325983859746825240893409542571354148031608949230654140749405924589321619386644388416389163900369200628829051696297845218624730681170112730077384974286229272078592561894572257587368083990456908780544255507504280345936910074820732790694652991202093596948577857985537628434834770902842015198949254620690534610261940621409545229656797914393764104376690143912778833501658164292904495889968089983490223753122130930439617807791970752513405309567789679704775100865225955415384737255879453586707613794028892974072040412456848484349924659570753161047057508032598931285319503647221040086104297963360821244111893753410201377325650346917908604880050289223512320583108552541751264440911018115297512495929055343633016346658110857484192987313658215816836186673551830770604395937929801231177261539736098381902290667065806410114456785319491759004844235070415039326498075908995560683210730971221116877155783796229192964322065715463232233700053377696594599711464767190701990175993975882582030669177589541303468028520897559748753353066564515007823451952199588450200843112224296726824118135168940989443332667604398468353599795955329689749315441431294740864390300653929952876803686779090749537565987893588145126509399732055893493367755539497503643406953446058266555196635925125315091812139848930018009627450730464678523238510931715719958180158799333822849012615410325767631156479891968371438181375451334595092415089652182411163149067374116302039740917351840182364488415595153011363991901917097133537733127349003394660548800851243008979149630391147166144727861788149911258989636014563255739026684087678385860180781605330621387033550219984941285769901986811859101129646887622937487407721518380922429824568021196350303360414094607818266751774709255379456285538410183338997672086226292075868409561212900162502706648834449772157116921488296870388565743031767615761809675316277693806956986962911200019504266467550033386443113829024366752882774478501376658000255960236387251062728510100058559179682690265123264187482820732870450748265972094010860609801979721079819302382426270195035835548720786287979883566091027020761035653718385226240236545101205815602322160592033047374410562387896172230231470519950911139362229085309468817704864088067243933294015789876536193075304509844052778619861756398268271489825967663320696633863056973115485698491220923512786879485721655466176045792018114787853075973209331855221680773621862184811633725164810427079516079086274963187761602114398309456672761213756045393467788183319981026244945226138137452429020546335221928021256826199048715244678016857649705155431127972090588094940702693019762635843076642900576527502721125647495741916374412613546207898189119341412838980718284245105090428823999981910315286917386719557599034155220938655457549239540015129896654676030977878136990153288394289008439773476934287568407147822011862008562014294604836595097381532177532248051287387886267919400108932529137694291145195113009455993761978647413891210944696102628132695813161702033158216148439073376732892514815788941971039284905358222152529524139644163387428978621453376022388582879152612510673987710401314709407481046121506733556971597747156515670939448937821355186856777483864385987488018532532221001309564169206019403021082003262165161488324413129728273456750393859604002381495560103031197854809759588513870117912442576986269691273600008427834795440475131283162055680612075224866759605338831133041867282931497236797263922437260919634638903720347924521040765651360921691118364230757161421622173226530649611064470380613278804482928453470214802122155709210585044641063359424566930582980739512252249277769988374832601027455168350608325607067102643429168314519625628801207059331332605113197781002061477516911753953384690338858726138427802491210144787337161941491391710191585189198944418383990886329268091042572641196515610320444988800404369906599206224851991850209012910850103422162652176036886425257201873097053816180435145553226342536475089817530789428738328603670324286196523021078644799520280377538057621570042779592207698788743037874083714208181881762991859343721955820855036755161864395134787055814346381954348920043964905921192741233904216333993615698842594505862608565409493340338931534338871461187770007924054470929274932504713860188149053657831684544225251867058792027388877064764144006331510945439163262752382883313550023030931378307859358312498171397142230247412772780600837059806350600107486589821213623370877088061844873342070195587856910856308762990914479694127475452033354132048946578847943878837176115937877512146589997238436852284919081482846281593615840452903780244364571666448864245859481888681328804751918664929586980271479088082061285018021155131711883492108207227046518012135598088503505070588705402989597792276902420765665156218268916369829978044979611164406811512788908026591135947796747756113713175812031987415096510082034309128268740720745854257175805694680725828406887951686047121962051409199886650106513931036230405555122091032391753754158920953964106635283420908877781480974960057748957637404052214212882227634885252146320003605347771513242272307999948137447587137853828922886400963773750762984165635534579207822510389826895409550639312674618100799236435147384542868107791510929096619039902158898943543264014098821931173886449193694901880430439576721484121226352827478271759436466249089875251696105869813982068945351379010161971922527280629188361372898064248528271300172697388093283786664771061972717008025576726465777365458571644050315932288268369765705563685043975215221792233419128144342581496464911303719078085139534195384259382215882148901085858490402743010850341287241731485970704962277857426208252149585619191677434158403062134820860441482514024032437920606326220902020729958432235942776995998692812577150347638792992199605976520590348722434996660621682579258520638902997952317568888428486630206214331030896987374085509453582121245535256340882900638411159561300528939069455053522606426256639736477317846966822949378453286641181470914188206689075802303433047091949903578193210516221565730687669403163778178392285334851930233269834960041894664598814850417631334785180052668521617242557430603729512189730451918873942404910384041427671328087544251541581659121215124723894144614523238359858221169911164119254286988994092435396815631854324399828209558893036331518718259469619529031750234531509207090975803535682877424778234672213224948466685254329024146213549027809279267773603062738968705369042001997971661177890846528885544195931902404428886083126753737783631235672998733119289018426623380662113982061996152094101994437017985298172118163793240656250222312037616878178645111725093340877126831960733524129410337003966391497213351525053191840256477864809987058235131844871783271681941093890824637351621288733257542805468675383747109978204423040146168596885234610790438580108380168595754385206677523639847752121625757875978135953006968529521266741636294507562578086149614043658612016725793359448790115600515992970798798703627076753393373633692023233352605824596215812045017548328432605868359512060815122518013289978888726263835042057324128251930511704545212992368290593568805462415448686896733576987995247969362265977154874557404843637765921894196771186786680052792096117901746287979599587058070533308722441444343582901607553226509779012562666451160365078566039625308539065427096162411900377780716543401542225954351018945517522800384652058148625801990321696701335824416645648120180579167520963246909452792568767269493544021556210802926316582086170140436596628658941507638724538582606682122651915077204425342254269848759300443574292035820615935359557334530166526098789532889810723020590133788198968396425613784049826199321057233141780012858317551401179174013962963407273510018766568520535760772579161837661346153790812961758890093140766618173067799523690790461049628307073911477195887399944853144997467418726204392744010398219788962011981506626172927157928771719982428419944233424479234298407206397901834618183228830992603667488238377961453039861287296498732240799528042796113877256296083679458594735014736598601432097851756201945793223406142733287321640273206328035622103598628425684681613054261183215646193599534189153509983425422068565269294731602033649224452632827618385368473564286971429009207262353669495044776552636758053649839455958130591529691053022222666389324687710350739379350418688662943174200371015751398788455377669759568463388730501894084179038341702619412393534039772973979647422958625962087556606340402340887419553204000427071345718026461847355449713679709858679025096853647471044241703306450521710615661046028497200488204923984633028319709514172018057070044411331564976753126087577542052825405917361351892109566405581625211928816669529521843964703935108280136279068419727841898412768160175011558882110383958339012459134234638847899137765341008394251396194206850461704028157357949825438846164683367286404962929736739531384106120979251959135212126002649057614942331001897803824408079377943162955730318784497621499027962535191608335411425444308339891090589559964226097201989682200677217483236858743356834864177694747655203357945359462310446717679452105661009721049161266634429110033172628340724900035910062524277449715789036109573022294975207554579417944114331291509814974863476369542176005739658863977724614378262698432415806132396991339162457656126850583564053236439987673747204054657410169365997577195021601706832868266355692886757612864306330048419647954612449147345775005727207324754291798581121049612767568429408748057761044378754244955111358802204272885909647169423048988847376164150909715136901482506771144058872098906451806346264770926785610789980369039935864319826173728426300491315982020133667391181375408235816885731492036550267373327236794807290631858582971788681574866546259101388842433107292370502023841801492282057400132053509902687916253682858542916463356058269083871571775242152574062060333244920836382922951267209035125750947563283479981956723191821121214001507677194841215554677136268435127510139287667510518688370184469132659619536744155216648093866770910861463856177825709913093344902298111404008432373204735705480692482267532580894781413760655188101749845466313501372589327524944122867887003495329274036989107179338903904345117435027036542525558485499642260287351580976761391993561541113474061331831410472210680954657617913539280451522798412084376231208398619813695897798233193285137676865450357290791726632642485054179030537656921384686157567232580939420727353429120864983379108979428204495518113297482566431844289864583888353675726543202264288807422220752006936000382346500642444083982041403377173117775474277649997383762962882480683121034516344826582926569366730621074885485520753014059424445808600630593297826426922193734168116465636997613398954788929342599331759218568072445806067449210663509147272571596544672478411525240384436201867974036121551544200102563303445251363166447428646664391539899230037648331896158024849917160490112491004718909030970150402139784780528565663724259339497136882116719457165254390446291318123449293757253861289941818612578040242637657711091061652844735707920963598303308835366482058049354461885612588880836857152551734732014689051248915669929971714764957313576552187404364684338159476040016834551845240287355972328052952245984615727006742613270133676466009929511959262763021332713025096572209351807738315111205464199940231683649426893397634925751871465142758427772330209955097736662133908445050202217602220203916570844304775283297107034351618193440424221102478257883022449169798586158337074976916304586024629910509454670390838769090018295122959271346989284785604707462689788704408815073035787164751107257017566732233547212915097995894708513621307334900899143529881061355686817013927733710506931242799722688173723826119243295971481413770193986110818102205992563639046562402622305412669673722681507824509842115069888881462851348782154985874650112524307585577225391530609720014871282323518998774191770404491195658764665200039862809506640845316147963356825819097967929869484927226268433916182267089405518630611494568800695563380027007456476431957504906160834251436663595859548828732662624506057628527883735363039119601560611530549740271274470915986817358869370971176004255738559212696904058000150694853892676681793040449424885971668866623660973191539968440613987100922560495582721021220209785790610193657650018839213725509690777150694333195989926648963383123674743996077675063460637188002602151736847764101461168863512400203105917823892051194074298888833883971202940357678326203923895167897478101371318507591781745473284629367246252353084515353471015544857527231767835885400496614795690542114405086137628263662281904422614343554812901438065513962690756395112869629683006741574144005295419807332317582158510027349164587567183988171974199281915115538135524379294850887594401371519333759477908619283148070546862804494564273463553026593790927958965502375633865286918250954815950205392013324000412858738792345716036217778348791055496157381271075993266926416738636635785359916915332979399634986271632143734217173616491021255779583941235334982152764537103386516491770885981837499803083403237535418912640454258008671308080580028674627341228171577060485736645997698080882988371451964782021009067498380124193217630666934984489854493501574033621422341623152260593518677767148910105267138943159530153557859442624181945016798669334457876907020308968481797776243892741090097440278399875969851102685299850736836127461833519965772363968640268051194934403940127015996075916672228360047054128000399078576024956462593809147098639290557153217813912971727973880593130839332014655749958953706739402657550121175634759065357541671136612633944211548325239701264076561077751763956636843606212028069812524716706862238985818695884793810115696900303537414209199493416117230531958549823805742998480820846628223972790023846354076095782711631536859274354944491990046795384105070391844004310228229898310793725139621830562164595119048358049918276513051992968089227199419699225158513639153271937476373781058568869262867096527959264910782636740243696722599487789641799964484654999894232366579474356384319347236469373426214330922941705531747340240091256566508705739156623812958510388787608091208823644520942198114608093552134616753569434651863505199880886617643883745306691947089813744718997208472200542792955076517426365338823499040927096188982027480067246526190404475626545090580810141977087822201504041156206837295408395662009350510609011515188280742778983702449402443009040109535053028609309226973412080856057318313058159125307016626735701280051316768472475073144398017735211914959143519613429506433543037811929792139467661023202869217939694794317973941054657254299407630826060548155939561628534494102740611291341453727679316197204251410350009548093885055539450041431506476150176424242935325548540041412609524872053122537885555346751013868160988988846527777423359259638153101490505356240770070433641491456922690425693005320873180503284160388403615699628052210114378124698303665949863171572233748605038736694480238005029115463270624451670251771104394973889289505829958602850873628789611455904300663654049630346853468848481134421514507407099726589642088964389673720221210775901876867537616145615379696807143536249983406286332833565735655715693214258019578364575096307651212358727902942826938788578343313337156353169442347929303942663511954228559366676510672621583827944715015041758009897250902885265540704480851964116770490206679032565729124811437626507127414348799159246733878085783711389451410938397077895364476772408913541467206481432936212897161659919977074424316938735355683551073768414371983570899853693501659212061704288746313530200920957603586537355029722218555949624564517055593518445146810787946372540129713567958819084390146708603166942903417622760391036915562141592700703193052625000305813401833245340728965014958601209949224323015733668416172487535523262436613802304406214695516879995829888004207445141509863913071782486440559378218043077176253102904604386755505321001759222443210145241788459804704402590078782493657631008453819059156363292376606300619560639727457894553419608285629845837589932782625944463680645290250924422664164161792389531430315642340157800685547270751228525857840252319574952718593420494709879295155251750070882811814009128007713905321479331437568905994949430651876921326101914090477811557947785133453886425693111278019779088135448866026353234084827176434335000931482114668606935568043195196212770214920359324202958643969173862335054018346392772267100269078436667720774620078642435251482386099572566821078232193304384326240342354614806075960668703508356862268961052113643805672322737702849865526276893295389012878916496997928095405287983281357527091389071727450648593174133948402303440540485639802557774775415485560165205620190203028059836193033971430122540565482308238619569396574012395168392012015034214007875144252304850084365585972199473980017825814147103636534576471474713638852633510233812898539399926733824490356241185010297387648144716124098815313664707919433051372287960569122065730189109559174449991487717913969254200173338658147528271545538145621848885978073587062722550660921474200357129564368289920012087885771137148516462291019933334731505322552662972919697871205746641407690128947347182100600871912253458709775574996809950141009791909754828913819990379393407579755633037455368165610667310222664756655637883967685801210660774056733705213527373489314203101232322905492689203556536204476332227816839266270698123281089473529702515944950629573606093246827913603456046608454851649147788378504533889585295706935865867328462860833523829845167799859348724639258967172871311650527491396795582790639231475913483775306583729554527373015863701507956310041079877124323273170539827174233808078246977028079092269622597782219528479852269952801935570886115538880223936039712351141641725652390115407941428019569305075656799944922100869372920546308080918969029454029523656137926687645238515219379204832758619465898258468951449381315590870124240348307934244177870884733627478497839009205000531749142341208552893631125578151003699526260034032670084391296752509946121283189178275164026621841452151654465334358986699084063681610817412501424286625774504070046003770847901033344787184538867870283621936372919600662290732279313792099122938875077517545882984989817609444189446887322317070147169181898853819886020544474375480210371692118064541972260055832994969449958815235945620621526457642591810604487598771375271821106931087466848689993898759391740136373617984828618546719837413575504858870945752353793544658143572717153628529417496589486763649586770100654172710328559456525278540703473693003112811088783577486950411407692675006282925388642392997105129527615010813671019394067698026258496794359764155826661745286303100186853294503080883742357204806640634281549482117702788899295950627570387853100186117948493572926072873807579968815360384025759984459509147982075769126365555615726107197902173106001622651785967977882935637623118420595730890336418094149095698007139641896387992543892582443168699530554517942525724398983391100479147678895033635048395302558849500540073150489539839568073247807702245442386978679225531233541331560155770388001604478291574353033886694675890082739422273239233067426202558653155617921137354109414706104238970777318305592930155930242607897429191225592958183132674870752579134396184080862072833795606596936863339898172105037482521995180172563645172943244257981289096789604329283159413382268003536365573364037711698948177831910955189754932505402280108599308642324748800211159055531997593807656091005931464581299415051040768810635083805276710880652182411406375356940172279256794583175006513226689137179013569853238267776882869985070723849191224047068879589891044757213191490645943931372229445803916359200674422770354054414723913064610213262380346793767504583209294848038847126659538508801973211245772494661824142453572696645473988712186546925684694430724891046102783634243652637338698468011384940941552921953604653962681565120888989351934665966006822307126963047352123785041430330198385929306965810810794137929703811361543799085647857902367695726968779803028616863957752286874337025231248062885881492972863482275195305011982443292941649565704922104820721092245782949712537490351273857805301207648183309856941182522146514437805106809089778160080535320662129556292165398104774533840881611494480536893966449832986392017675998110506718666599493088278076235226257339459288200282776089763406904619661632972021809367572555880458505087629677458094729472985960530555876989973501263704492289710900618831139054502878243895118309441388450866325057837751073192790998952538718358164991927982177534444831579115006064355676349235893498437895617236854829009824973772703621715990543480560302229671857895954064961293023573984204299681220473235422738246173387695801690613972701987782854879037545057510123582699805150296175530438185845301843894465143234879635009582177411638347950683299396446204677387011118471534031797195471126732537228988862407946512602425070595309187916928347398944564525294933412707999941788958810667450928606193359541392080472195605588590794829103910504572565683134336186920410107894243750125499231688792867234797872535613160835312134531521747904370327920536271544748952457920409663645874166015653402065153542692647637830496293059029270083957383168504775609827550500299547875277486342304922968362060127172567395888640619647637358044805743752380796145029123833940592281327029285751611663840878529898492744052848686724890891692716831846240811732269061136945290128135065556777001732756000860520534326849304522773900019483006451439807316267744361940655895017582860639829414394069118898898355302823370709467536266629025633685519478681980158194310456126179070492357017215657857141176870990368864733037085448504524916422027515894844806303248407377855858700984442828196047439304726713942548532524837215486382224414306473612613576911476815141815535199009223284138170126949190720837469857416512788464664696956758118186595717234364371520838657481850318925255794399890110020747409287146818913486764530693230789627331106655158967605860302993065083348718650963912751668075795284519997303194798189816384518480316737702707250705438300440122119183387142412114605823698838618227047236316129588998119892185575636295868098805663398689400152801407435587268767713540872406659251023748623778844866825658409211566222109922648278619681094153688076091808309915987234208935208574436710811679087001558736995677514089434262776576063365392251362639966074700557318951923352109305088971328853436617191048329600372052587303187794867066749998980474509412216714498489273762402383514523973472203484262213610982431950879952677465704015838718525788100531305425978129800625107200747914700140598442794843593657377344217212893784666160191462064602818032740995994319722729213632338669500972977030973525443297895145052341933473784161997936029983115060880725169988406645522810007308166790402338974589297747842410947571891706080895016962351054779250025436423841259637831850778046145442442454527115009259274034311397726247503732025719891307030327218712986714160932035177120759344845511079604636890297819274757711255352612699544797258009484164331218811246481101863259052773152995402265400856289741025826700495827701817691119415487511341391523671938348211149179291021215866993747640732921637367324663340856611608215776277742388116077184103796688869750436053270322522775805425867495779871566012273836675372883656949065623991654164011690954313578401045085094726089879899888303305753189176877068089769143261520975750540539391543088476127168393069168186421073079449586520985373906601291330615683248840224288393530167697120447313101214156933751801279368318175418557054634657220772189557596883952379569256079839299595437812468554369488183611371332786961050538114138894589751259474527366967030044649586999815167516817849304868534238221631155209729488020676131277867896637967473397887641435340664140796396725536744129332408196379447866073000169919766975425729527827318049807194836264332389246342449250626449834681710724507610584101603849163370716070843099168038791461384341290763642982762785185461100874701925699042020285774247808246800230070375687269252249664282459730598831527473037051465587533773204598930969669939436025201295607653350068009552106698358888659842552513050483349425747149585838807642932454300881670945888359481410240220746725215355602208119459222018566916603291558566832526704964830123070396481331828119763572447371509826596015304624511472615281446076931937032565841307583234515541031566118993221396739978742055877120942889142959559173104499766692966724450195187887598644334074902386542836762712246949633605034694596541995214436466161589601119800426404731420051108223153324531475470220854910618297525504764603363224351031982686344138808283235040920066175007853858253668727231998575700628672209266391479529328418062347375724887186777385625507099275489797940941823329871862444326723888588582743544745176394939935611203063122059088629763094670871121122986434414839230956315490517346019991949307882074668006758474554267895012865344107095416452326592992828079683843286595496038475320549331004560587881300840491737909694145948621122899914074471619547694555379941674439628363286465956030674478675216455798935940184000152517689522066561215065501001009823944981733476916239195996774966344561334819451324845297465560890076341078258440563895900306673201449712680225044363312594800148474658042702128980134739536344146473850536716082305296142173958436267364943377322375456625178138301941215141870791425280764972247051608745562282618663777525053062036790058496081630178085956450731934625239127857994744086270903849800414440824076505555093521501571034378348711149172140856762160228034690892206286966223209927294818594377624999313786915635540587717022588638201659656294631289791579218632611214910455706782952791196235860890334664450654168466935765413451408894771502951857340472843971463021192383492356974662965718682094247937815583403751312017536626309469615277718767443448744492572361777290827176976310371293450259559386130391927885114324580771405925338641402770746777142937771687097132452729942896688320628574313560200432526797281027208737332941460132845771967926779641517127996484677733009475988749385698054387224135628356085167841409853391745639570420681371145309642689765140316801681347552480332719248378347164614394028861363617976939924147077478811634962474596686022611359807672701307514350430127314321788788758898603239299074515004083311819099832060640064728522554461286791176091732753431351736781546576471687757011338602443255418664776148925903930192146755724163730783014073756142298921267887021621869976097840639772273587119087755932893780033821124000117336716316061964640240213536655834103947564593709054624054700203042930054249506444172824672242771474993941981661977745033159653979870645715486221284042195514148926982501888212383420498050474040443192082138011212771929247161564644978133835213504715747721566174961568612855112007950274920412602507534287195702188780226731876453411403663473921622352645502158593448170983502517784523633769149478701931782446587606758767793519593634472617697149156076555458530233125389187078840426281738821844622055045156468225960757610202211231242887963995331873633940189992434557282070910880205321604753975066350264946219370335462553472858802512734273938142854860233693524740118237295738205413996934820731256146874366840635440845633751162164013739633350943312292742817367401481478999823387465649799609172577327520322359606091813559953776326048919950377848142176237586284978305324695464430171910860668520685327199240072886126912348269125881023489768549914142884118294970993845498005595291305692599334122171312924271986001641978729726790409262627637751948987671057243735520840719381197707236355792095916811831554275317693929707441258035177275505781155692258175777336748035198675355382121709397451915481159984885906354965493030568459637486710179616411883200932568141518256001336732694738510252234581062730269836647401207981531351932812021412224813699453189509709260421278668290352547779754393695882342926504943124360385015786175834571386747374074986696344183201140050528223915586214644982153140502144762837661602798472864892174550505901401696670702000725561858352584528643685731063418969817487589687564068753591044513914521448632017286963498203568418799427406573076348009651467585980043589425957959486501370997121030121292118481233840514170593628072965156245146389056798590481681033736732988300652039405089753215815140098820866174368037906894768854123801900953112900784092919306782842845566760021624987466348755737109859043467693750978051033547495771548708170160799907910080479023936323505896943090945876074697064305238060080983985849649182280066532930128592812279393859002868759737037902449450918030963204846135445130872494474183714104978102998815661462338500239789215094811735947047919252589178627589299255857562661923852764239935570514006318624267652781078773079328563285632245031862873509742282737626920372325322850017121848043066886888340392431911792932687348382596293717868441790803758376327605754995306213808511909052182954213045667738995000011419433069568323117933451504061935659848625617330042207539308616876052487128378368791743412543465624995301023980801360572369549407020952618773317380383040873909267604204307603553239722089599826942650773342438375431146409281585703217613565316330291497159076520303001297216190353825256713551889627371076444770478858096347269325613423539090377270340263772317308234814236087938011826516357006095015349969221626804887019172323824029371092030138295689007331894904460132530225114830558282876438649959436011733687740643862706502820832533686073257015217747217099140398254772970896004780171905408840162486356368834717847864238960732222428853772238423735322597034208841312202494074526502773454049736460294851843045476165932441013177151782765263263723059708045407533599256971564347292094314807091685959889474301485355175665845015218329599701972191190422329991586225769382592993014346056156797002626218223962296095161382108792868037923970312267118706102424915814908562719768723410706523257324481311918952975271168007473416024671267712729093537860257006850510608198921918868235230284708598118322902999906686890076023321728080144323848181988780224998227172526133552513197708214585862835168505316612765658579836363349021229826745636260905544334964941853057762434869252147557096347287960934141338572212860981748692494453690219268656779137211572733323015146156709879292434248700176242252280439118511670535604822340658535746262395709138163997382630288187957258274118213463907179615009467832656490570374021101534603095165907558726969267905277921888210688013269329690502599499656885323088778581653062990561473951570379617105142502258326863152405288874080492063106524136539118309993864529436554902791819632827730797520282110951564972180609798166062147595760113854967122872593291635379776831421196039707437847041007083910289048302132085317042748412111722789613638196246527172028675069383330988741739382088848801106035465976311304898047990669274370953885048711799994119734633313238679849480633291946476641629885913874796462149787586922617385920102677220973902631863522792741416065711114281628422138958757504231942864549411524408906985165530654562345216177824652800154577418522345299074648683779369574795647309067769742421932161021060893715488148428312957308040540638092448060787817173979789484965489636826967408898748937496100284923791114519473499741216170546575470054496029015670231493456159908993522395232470788162494922789943630671499587681540995276477024331505379265394558773131331726369708406488608083819356906044896019148250558483656417873427548896141990538194540719300716662358172645481661942682854490404324881238689473809684457832357233199931202923589873411344115540821177621529308579660357994125770536250245448916463920733474729654817305772325757034991177637412008417101104263318728027453225040800906101124501430985096877121352756256426579043034331848650432806036000194184236178109453982996859067647386176262695623089561490118795180436626263501686365032395193837154907417298804681293417353125498477755110081136088463211254672028243760840154960458494384960567102325609678560964060554503848474625976211099236282354215303862135599478888128328439501338579159447670471172104126092927095529225033991555509167603388671790734048924424464504840443374065997053904044351935826293075142175168987411446594932749468873752926400049113789227574302213218848218646248214619261834346347937018646915053526362975096753301441891625938071559503972257524316518039042163200072289040742817235295681148738929610401236660448169601674895805114048107110036963953101686305991739317419048995280443667359160800422429156308802909785284090076326248508461254314062488525883193782232110458870153551027890736011465845651728910782023713168727131101878838897107876913162520952500511261777835047358300029700026182321104838636121064997736679727122117106810378334891242090454476655587017773487559494569614129428941807308424916117437745041289197415097098701412288431758012435730487260630227552005915748820633282440185265043513540801765173398725726838742135347469387684484014985585033953403695422089285585926665668662322621198493063767296385974904534746551977666069107295395808608267996291807522680462335781453837471730601534773246084875462635548545636884947313268993871548192867187858372001769034684195650514534001344611867707282762685590033258611740107951155669751878251153131341934343611371170002113078620945420785121157545050726482158547863546770056306477725263758805764042049581836019696827443424926363130903354578200335524854967653170420838844615046865352421628370945170938934284726626229102585986346660817985283928045355267572412335819024183451030037667100921746387672560585520446016633694950637108475128871743531758022180552948659507100008399753788760905613822669262262594127067746877341288099313604427682477357824815224473987916260419293060456408271809649050111512660773551134235210303703159844147199242087764630429039535795920286913297988769849605824242028089501490871118061972345102982390945396313652448202133001861707912764942157544838741361530535146211761154057039002803837097109379859299947252970268260501456384769744605130829129436249551727708428005576630174240631432236279966598688492688483473782523911050899458903683599328832205285443175801392109461890394937514280979319854562640750499835002567224359403956461901870386006553925570389471504047394744387118149689044571628438305040793315538526398328490829794744493087285640416628699938472810644772667505664384472779444306531078248581870984385421740305522058022881066428232839961926142392976048135813937384703925485613184553504291418781721458080651440070674332434575193652429886206150354476315185186479822123638145523021170181492285668270311034861406801060465122407324294963491321905152504118246786479493045992136491454652524955850593486636492912066876863736518412580537020921458744801697909760238374351900333881932657193279588274849165010188819391932778883907055958432376006636302141601330787529844464837795487048492631105700607902810089909684846738980450555976845061256912445462179005217347303110544215578242517528450199797705081152950250078011680826194715053777478820006572055575737804900341951734282089958113704469794460115071807559585969972502746368961625294931862670807800149249473553142658808293209544274579446597890737558772120825072318437376119000584628330057982044872647286860374645787639324503483579482052884307163567417948449951774797246164776278530982292718584008600508115472018204661921931501828614810841922330909645874814012648137850959831116551151540081692297322196607907374764579035616812176837214286794183419352087965879704838156546013624089624610231391813560915403217327779038703635175614054153482307584206125767847925931368845067215772413064975159748638466576320512082937834319050381742780713337629025046245343816456417312407352904131974909155773397258603267778818959038560087460047746963840210216935517178352745666680214667972527596949791386121562235584230683499923198068398653638839071168698021829210320965666003583184615944778805329466725545034133269296081285696425191450326336780864137589698514305577436682314834082390895193530329845676391299971614683490079325794968522627462353261889401920287048809694868973607155828426686090379736317735780519105904158325496801708165634762373886063146466767713316012982638701212021760658894388354020767713660630878594635216841702795786228408588410541289801297198776537050093766409510833455357801219147585087063487522114816897740496901338980189572563173822340260553284470782551380047399230098675055127800046578972502031941420531512020779636132565388089939709457838724555155766484564842599412149434786178099238155849850021903729386378592942776983773251559571316319126516730552508192184270948465977356646403884575866211638684290057417309590721146654819950710796432390048292901374055963393438842139960073943315614220301084752278087025545875096434252177044722835962074013949487651641147489069956477407092501228505916131179744140864394805052519816931343502986132465862945779662111200395893669626185345034500008216947968627854477217872864533148445087800829068842098184389465875812402405642673884337333547880812693564557024773117700566658565349855245573839935425988966329410774683498274275309569596049143426512893994637327601471801870291305816714432645041827332672449470807224702758493224066093280924619101077520405976525707191883055027488552282437682039707198225643048518769048024849788478170305243809293609158799024480318071701580430412190392096389817724121590385669798024486029662521557056515212304335351339823401377133774947659208061289042026832582585859124572459606409358817484338218207498192134008234144160439039514860765817292054718424291488196768463180444952525274614950507818630545770497573930696176199851287445428882908400069568087476350462964741925460083226760144271601518309350738340456621095131876618798398266631287416923750445044339086192398833077833735943688477983367550538996368822351169752075796495584988433077934519550341387495251753984406791059944758150687921446243683100677613816992626306399429769898694316057525261269804482389298214535923393052067381246830137823014539015588459418420217815669192696254751013703975442927519405615358673654677622274407154870787474176396768767109586344639655980640831489685821538345364206989417463883854165780609673938245562486822861006742121022726654350362305353473153121540695387246751107090224615740503522938093502828143543984373454412437859477675759857933470297654880669762434534673855550506904353620894759788441075326763577415733916919767670336701652389701093559076364232433698140237726623888882958847653041328928820549384801051414088195989643040214849801098320932798403773936927197663256033707873285495839270338909682887105181001326322687390209276441745708920046023920293662897998787796458904688568385580409895874508837404119092477103799399174363622099488693445329100326711820908239990850032274108263392256275703291753097276739666154177250114543133665627914439640697868883907967494063850168905745791149425759006005055295716790716797886540224655425717430507709282505453275941420447094088315629042382080829614501066972009934251294880272583163096027917266404346771863607040819242104551382329490510637526194338123807723798344652611398197652912255676055002746184029960670711641845070892229525753930454614528246989839092486270962097090888821614113028523581751923653458090834258558725941764645394647897828577710164177022380016959478827314353439883020537048418281040881835347145407637291346825683658509180037837253524762314565659338382797791529126045017515788405357430531887851140685298188481909891743713773510146640218643822402217148595113183964097529217050900725173679901044607399649736495459733334599356794508216769825106088615725118181205181090345749773544114429920730726348813237236146762279041688137155218222025391182772484644897079177391825135315266000198014212792714029319279521223704117975066775563833062293500466213449855811592885173843059678565981154903321991652411163303429970833550964631735298575902351913260241732287555083689614974170995822156728524007026921455681783418347821740785066087092196536466641790097901782715626473227087864096674475691750998116618174335057648193223425522757615002921887047736671413620793190952459136901611702773349952385182384888746346035506349653709388493221134316429043472597336202211847865115400654013257914507396280194881009275685509623031978887424810227919369912850907862784345095692925269302277628033296001814329465903294012825486818293673220058586669820710656778307046172635403979702710936469916093249940447638614047182755530736680235343403747712167507577558687858453068269470512404367516799037013796653477348347906290036831433417199245258547951829205277868869505600294082070092309267834423504358577216911539715675162723126539565569823114855031382656879557889606467578006093224619602722288005580126497513527571560841744072239053705141629406114045783622816123070072737042342604231058655181491500085875649453108962450859425640649434136147432391431507296741313025087008001673497693932756785647587114010066189668938174982042252776159853628089698246230501753568892380458681593700644235484752807031292667667044397275216188628919406155208444279020393787573235061100677064571041842834749914166610999359723325183229855638556258784278963075471644837807065305635388044545324524156176192935122183406591922744649858407195420221092014288557937620713409184553997505831650344880214430102409463204754440310356175512954626898052390416817218166275727862214666899120923223671136823658099761854164314438437148189771137789160228724155872742609916059733922754699466229567600022005516907002824715874563852519135899463872540122754704481257031297633751123150494338693948153014766852707687811620267785254204652407669123581400077821551515021630919277319766245543388251191193056030839137677908169892629509111986660336305104089652135273430080159418490372749702032352674126760405292373440213286382692267792260387726276053024676905653113746589246714281922657055963911416756210321147487905220342700097977299261129321091680436136716433327042034154148783937826070052696959195557359039234724460341593742234534356026371405895101975890810640699636608257219567671757988073104845470565369465927982303474149132513919189019254915797358261305140635898216424047334423682944407086545696448727938617278642977663199360445228993359214057198398930565233597026677241047482063271182403530722305927856926988799657111186309897712939124639069369420801654280339105406396985009330972514722424775734214749690449228279803144388081220563385634168762266359982616998832861320247538818941021370414686943831706183576593949066658039742699860111897142715227924894213653726768467450828389685350729810378128596399621772610876894805907551102640818858234801689536664147320555762043001355246910808468744082698829056392564026165940754929733978287435301750640834873638624240031643340047878995966133778586416160139810465641541476656867975196360749934964931079476551741888246788120145218827588925209775556779318546090799570213716756414008534961990706300410215988458467755636932398115261909550377603722042492467182821489144195208047189928553184727594393585553600092121534056017235911675608557802786173043335176886097426725741844513921728070692072414827839125841743376750353675361223097950183187464283504367215264926238182696743836209210448211463464442627176605512935066722869337026034092404626702306254183644003558614668082683959272171564383687730278787523735402401419404961566767015199180394350562466554763747312890542481336369563853690540713568875081273783759369399543730237944083769532060116405390917608618570136974899978781255383452284884787762413557701716896970262884568675452944727949085445055869888997034191942098589894966048201334238858816875031853854187415048275536022637803365346567270417165447399674026829950636007754842403526157529906305531554350392779289473408338882791401881820876975581216927841526731438543060851777468131014400635893502152685101278711833324282754396825177106842498755225693643057028836543871749846682056820756344160404496768733811112374909381989887486138958385489392692581764277866416823277705192142480554007583089088873100020706428775366347865921773369041504968402241916768673578130365330040510355508394422810487168905552081133128230254540971007166908610882908748110034912331249631939358503815254955204145381329162783974526883023939282156203503028606730115322949918474870363716528903995644540614520854641734025738242505852992097395004987407706671069072146945124004082180445893788111877033205997862321171969546495912158913752581583865196287858410571294426904550822020028926860445165398999830600229499087375977076539396375529173517954689412985616378273129392055437862086914010209352148269179780183259534675752364446818931565212905974782991460328825893150659126815386333128363568691780063773101054037836227238018208617613214478959057223198978243937283497471890349023316053426400668540502531071345593620702431721364065615363359624863625421095510548604547417163359473685072574690744601380092288348717496311905047930604751741137402686828470711219981235605625686892676290587082201173395479866065144126267876713892406509359004791404193182227365825224172050881467812317853831976056066265052296814393842498285261188350695635306732667850507953232211926692410841918121080324743134949543157805234249542334087139334286785097281284850786097017498194876615489976560836398338942325844131649262404988265108633176035687149262996813036867702143370059740115002055637824228546111962153411162705655413347988526464338621995348511739800907402529281958976981176731924546054150106100268431404536021202243423847474432399217312965814147577465008928971006587000872272240017002962141750753410382554163160005663034708181024740683093600711202718377118977204840288502488501568259564471143124199438833475201318933485390821574727126129873454596255830154366832664881858252003187264928053315276242670342471871165399238023682143018961074819633413235897117223759090406145689428863011008636025745584788216679494490431276514304130585094578172840438472493273691307081426345112892270720860972788003759184092420565033798440332447512479831287980545394506928872009504092332007036559151167047620188611170012587627400369011959160006932765283092948074180165852110587203426137395653872420455583605109411795922493079440288895256245201386846488118604622786400238491229491766794515563188059613819817884308818809349251937996379681027477019280090038251535095593237595133968139599793809223258647377626798355648415985743841259976443747896903540699953978221666578268182746915274029944532356047976492274584082784184907089501911003557569281662018214438506986769760301729505770331238875135407254215866572785026538150191221361201077922192257621549133048980300406474108612989576627665147651802814015104167591749330159344203264422879561945329816098465332409772276155609188149321591513858679301624730429731696262902383415515506017745887675476539281052550900137560485348046700569235879202980053037540653913115090945878075413114461562880214723205926094577898722241225256992300049932068953636604214261843600624433960859197528277455121900776718814567810821107406869709159570316906908601836036027133860587113458081236917310635155223712638114200377103285659904766374151953796100544881637622128012577307983407209295999951425655723963413259925101302965130837989389859985894531578479662345533617568739572126895372834408340967391275758691989628635269370151979669311506842262418123571403064225130502866208729378591212779871481956945267234145300512463502140085435044512697047443423664211496488942098763964930682595201864475403469247043254831030992725741032120647441764877034177586687637354802632867402405149030286364859113335505629365348385356295351844352429909356179408658935495530744994384654208262931106795630270753721227120361185756590547318648066998191988838238204330716831398086975596108698063084504574064039804439441685437215169856678871442574195749435096380857077833473406158616748256303771691198522497758613113091253355576407065433810040382313905071271148614978604613447522948331946931083877920749461124224554577582933770800321692960790583771676185929454192765970502137259072052042173429703783109202077392734330496191708951363202577254147030290200820945787459250155707576764139391591469888718456127244611079148997210913602641667101631129653849789391832368961773605466593168107352156483365107328221223107940977706923493248926185439997875272891964534675964467171678034216445304393223020577335460370063766416953656012886151375701266973363474636197520101612535964392219960214589716324314005740941452745204549326773141051020097986198354383542231182793903332745765253139699492170910767562455227100396429208503373049129307742409213468522051945120774025579454367799962787300901678115068153069759594505433569048486727654704929367108251599449302763513190676748256875390162154752385593462997759270214523626310765959555292013521360622716848009050385169189182116140911801182530469883278869761258539260921256744215476156586454273490202399411562897870955772760214736331645937078473153987190065117202428558573287080825417365637890408038293910658275774799606875486441740212400118896359544074959341863923269711976784825251622816278177902886550121190040177161970883313590078631270858577608133991677949116713547474891586100440087690801683343510801669279961576134979989005455841825078593090623155364671394062011154430909580851423006905951614673638213675307797219936859102040051971537985590865638396586813147807696440685378040775225486058219243111114441044754224977237929746291240205094820268372733822616550825700976739962330153835778448730311403749802705731358332492255574407632618162559167327953697960405960888919568157436435049004239987088868831909410602603640478220979658558508439178910494820322580414324519560932851748516968684261826162556397651840048376598877491815614878524752423298426345553171771513628471436702170306000918759921950874972186275931991884519821010818870274007321975917319062842173824579206685670261561558182979617593248878362636518959573563753896718178292427038396378821849677737520795362165355031074260140243311493578189312114340158099809947975216450508518756596162544939358068862894908255086736728108774126588963900865004174530204557620780962361669272069953232808595395825297659755485836685966995969681037531682619056139559467911837065151159027609764032496092926024067823412935221959563218581673177589760612535946730164069996029458645351234518282592477990417974750028477552594435060170694092514167819359547221871619384915592190636245729039332596666137166112202741735588293477969624318645814073916918340557650669307893404626295924286026669514971124365379211875458576856769874912494809208294289456536780251798032825340832475933632043642183656488108482701984491352055977247637205181033881772790376202676763522590956164954136606986373697070885578702294645270400978776431215274376666816678452904263773416171384482693228556708372689858444973121428999061475412335989873811294782511320119149172952294537392941937350067915184193280049633857260216947632210788643907836728933580177353469015861177998813035516607231099018701195434488047595529067124963967284777704228756031703246906846279334737369324445510444995843505125385190968628410582469113874519260772269563904893110214100668779745227916299716927317248477252170570756621691078570417229688812028841435241970506799891122283358985058586602174729152092369993357597042444772014656623086295787737614438584858182748373304522009532066310687230077408630716548798995798828358279097176213392173497516690712630058609220354394264360753096209776997599719529052827445929017282996272419607014476380292523593626952742626651530822488628287787420664970514849773152546865965351778989605656165991204821073112386124646423122026128175647618421871142764058325251314128228014471588854799062236789656401446385310872893263221793459308198847664997537586176394334819840120521312470451791565780951794775963619157426675778587233671377995398791359719793135256523271872324857134339350626759515464046661564926319203571008973490348142606941340325481326991241799482201517030173424128532149626216557841600361595114121057674403449433975926130083828222567115355547414291788889580098000330653111879712631397792615401810387847240309998067561569888838512554810477267322924660797599171511157594354729404622983684266145587557272405467813002728735868079697791747288817478550616706000042296873380792156808109344019317929177279387687205557198651723218282147036039130404921533914741134957104558538527464730750068331769546328677597169855581246383598210323750653483719378550404525970774670805317872246674261718976294130967672818495360963311121923051808611462705773211378825449852682343174280459259273294789752305951869758068503522808442057611439189659959815118014070261791680773257710111363038983904656037655862388369799081749343634454396587795785378931252344738515326011091547040662644431060237453941352067095243470701155191471694648849573098824353542465506001977026631682563392053963526837526983995150503900837966264870174519639756919643128484011898447041971876743765527579013594496816526647496177071900862529699110078892358312085222015108241424790870829407442159283041276471614554445692565969742324006402377525782340042633152412276510637923109447539879055252191087833105493544081771235281309986546838763200701269559938902138050526819796629532091862441846802698518548657729723284422848492577931244694909880722195703359895233237104286527805683503844890812242273279824857235082601931503395423388097208396587616506582868556829025292121949215303311030608628691032252698965653934802493787117686286696103375568462328363361052719335511560266960810783477582261333088975534667222766391982404908327037697601878167044827228247906517525176899114381473661778906566815760058620030107687548482603138337388032212899479873098265129701613974511432970076368958199377642708568791622499717885110601063414519418978924413851764156646771433438461644698884611131742639434354953152012537173664960822579512167227410005358615130471779386207179687148957826234071337358302253596132144665682412114417273375195784680294309027675960312392710470464378279894148659322529607655809244764341946559563045159051924130236918485412356772951433064397081377678662298254687428853137634913996743125725729843492009490396139974608687462364778576107245238254803535285674584852185804873059080428747570242539269430644943820894856888206332579136791355316785132742525466415386991109752094744462907401900332287404171910941855524089288187842852429248454457332033044851879144446429592824205689995156031027418767876189921695394327853340696092770261513964693414367388636265537047978419056901323631175786941567367786854107975869120842489892104625865849405650536093254077397349974455295113602001062216016844608674822367062590571379797453013100399375819312458421204933566752242408601501230216756881190565017313730623976926898031307317463034104258942379155754726536208499694291347512453784908440627780961444957442441859067364403284580832051541900232179455758998262545706104635578094325121671534741667239192238309410319383816805411004435645825657199275076682140316894995452654082593567544742771983582871363371461606699243781706777851065364143236635537986595304866420132623927187465774897673408462335922904475703542897907524651580677868693193111045271480761702894151193905067846038691727647429027329169806911883702933293424202740779604864591512775072249914711476969576744193680003907260165688651433894327878805321464708529184476194773873765838725722040786499976895386292794398168401106002669175362788480539649884199007358106497921267418490601541992469042696990903107821005223820673540982544390331592097726304357940501429090929167020591717339045627455515547730442300453343428463332029048908402663173482431634451626353418960939947424427525916552823131168158922444981218005821925479501975882257336710163541054799168729990423833666219093888303688469899526072907131903038552712315240997080306299402562183151774301770141962231228851374746986382717631717606867090827248930468432823140369223178857310996256702553262470656088534042933495506748399497040803377185620635234986905246562803355351107865622898746019569093193512237936933255085416753394124355558487804537634561673881150187966453509085959928082687634855778954636317235936151823032626610302770041306082361089625935312750388642303999287168250321632994806123932744466163782280395145365150325786905839700202457356434204194402128311958001009146060092735668944595100954043594323752453771692155893432082138950279249486339061170636707995970469916637634743146550203450637802539205559842345513494135460440579337570259490048103150262725716005018571462517502290609975835284596500899845780979860121795472865076704660756188388441989453252386146627638925404967382303257884053491988081794829722745685514890630722755959237381687145094502887851237041297874547625938568665628729710236213586111343476043115357433384019506546705660487263504327033200908331945303338972246613209433645507054054429141225788459130193539638745835198261570869150701356732764930277409901587666370602858000252281941982313117569855706345519329139679075699396801379781140003428091187935780573540329548031382998953121501736543078881155568637501885387988707606476450441332095534669097256288851355232291689271622600632747566459670901204697075281971981086342056714517691058041841840449147328250609668965183824454182575091023636624475011537276528533448322701390707380633904880418621199553550171453321249506946375140665008431463922920238193423688326965424668397807301810808482910541708750862721150922715893424413302914126110483184215279306014025648491307175023069998469770438605808639644150167967808502532342949098754188444291995530576223236586206590602606938341185044953842731237599816071968537069655524719393113419993222473902348026054079829769040274255562051463405694110178075506319093353656710622753740753461194735209446346148145073219671189720716104794330813929123462752678417488903432452778020734304736540876379588259564682847996010349103579685526788567132385378908051894155655972462900390077426029454303032097258303682882185530649434220623361501202269162004049583565387076582508650370136586755926410954539943707040078539937216917986644058947473297681988647056715873453237867604193337269397830247699827916668339859068906634410893537427881034451585022061725120200139003089607500837691805455958266695131259595888424861686509137588760575934854720680481003793107142297220309706126996906554089215584704309924204220374842303482875296652235663258742453286321157944823831390628500063078178382753251706501831897228472265437549039346746394365457357401859505365602402369605606592014845182813816350916439326130246842635755602659578897441635540061014699325033836114795071451872115733448238245212134532420558027504817288594688187540657599302315869913394974927935526501325449597290210615837625661365626444230770444127358906882038460242683993790812405356963746284609940305999894047989395719341083035096684363247078334880946877569423639371652245546810599828240072377764684572901818326815037258464715884341274649193009053487437643702940289463577589281322206919640433854860438360668925771129928130138020825411304752297918296903813194972000254484053240351651449001959907528772483242734543783144738534053655775232304170634167332174724484093997842120863894238923526926032985409791839716286208101245915612907122427629721940318661886589894046119194178321243860059627211362931609409328945736666196486123670626037570841027872575927439107368076928473565003044438290391090545894992107895919944179348421973737875989191335074235270289226285012476881875996327061029429900397203382207902740801336496456136869624655661939699826815894461952458224411883436909435623617473870878399697995226598535444154242720934348101514267545263302059602032766154008081454622061764087229298243983973977142371957329111556617055814603261175750228409538460528176575792793146347625645240944505564768274764344112928709662852265590050596768674426962961655997029216242078392576011108289010810324150074312351542444286012958738290368202640321849950221185377369079905444383552699422009431674795238515160418238146900360716594284403124264597344846368429800763888026292141736985265634289018278061054759257949807957397136094818008438286448655033094991779308408066152580352413295289994671382866836661313840485088606034904174982809794166918197487787950757889114453110148066168493914807400889271353429377936735836604828027038330464563627638963015588446792885720363858878318605699121247358009446972842929827864922381654956323395346972608997861590149506992909702446456852858748515212293705064081731400121208986278630325866127495908155286306630413495166744742591521744369183608829063797077705272787430792854985481410517746869232353300885429087090258794212754783629638735946817576880315465593588585451581674619044992967550643492943565680360397902038689318590255931912769807705567891604687220914492040197597761925190578367337042898204075591023138927113656555540159651345723181078763722150038337204288801616121913446062104189481626982884512487567397077428829940368918551491606019821518618268553719523592195086920938878831982959681796172230223952824910256685873754211224169950452153994319940639765929514105762135097187469537737755962728803475141553604414716556093193906214085184707062246577245152264221932154530685189232365156148366875232080974956874017015825871103786377100172375457751070526190601251329678931082514186712560987793049909993107123904428927973514192626475741601370494972269194783928403679535593783297376364502258901946770559689704592585648855023438986081178833991301565344303390186442837926725531171563518170727934918976665154683004597000828406912947934378194746250512782400754401956092205158102678883202324844633171310324574125464071575517906488229494583169421983558081476918632668575962513881496164037051742091652511359860474429269199732382525884036781165448155401264481485319486617633808178299869235744736123812084320088262407768992973157709494542445505785426492315062414910336052102927965357244088974854615703790305160777675567111355260715106391936513243332428409855901102480226363165527745722972503434516486448092718105495473964067701597367501694651681049296561859175876782270891373322589911893171928129647040018463779412266814138635119574696711572306080880495622565915545125554178638492213459110811913452242453418236001229113742880325244770735551509936628953547824677433120468285063340301513632090342931825976792163514846835372271638815711260847814477636842617919567735788605907459589055118455396024763974677402614990775414861782293289186456097592553552261990314971316400745474810721455321231412952408014299234681932247934877015982146793850419782289109102285151224418161697995766745511038085751627084173722697129480498340340617039392138826931171970604025374588109808961206552283160750388065336274059308856428469752855437212940116932998365243914280717903334527489399025602573031741618421277421929790647201814704830379848891775463039690180053248270250622599641018882358538554189827498988635267555687393132406600709328026952099112455216855936852659882325219827938730408451359103188800395529368978046343586781788654805378210683809763781568646255824950422182841147200074747926005966762541756237499947657291195718806587439140526041967752166094342538523719824975964762322121567334581828638711824169075101384057329167681638256537202690553791882034100150778794030107096366410194007692315431084035838543694131755076140454787376515535192258646288666113936775489334748976643045919542841392801753560533974384823949358864850593075621896195213898220461158343107414451714894580359488613778366466797517138772937015378817383583885279218846618288288645847832358351810271699401843448562123063017476763557071433324827568698273816605062576364811761839553352523107913718303175088542769241095016259892675346213162226776876363059584988620066371012525038267206522990938298590272799080346283759262207537539006123000277637924213414548145382501896650144136640997634766893740183634187728150424932134674129429579445439420779178021023791054418082508654730749157496546278718268270867123500066445989099374656940259906925522622369904015548984447263288393233271730854075365341135295884187206726765182924030334979364337902937442468549838092945089512180036259659191468499821806789098829384477986576165506614989500340388990970112311041471723377854274533582308841016220730610872444822071669701977552733350578915979790291502946295913564890188712136920230747154524519805845496328609892079923042066040299784616958613497080797886230990608903434232279372176448912301569435052478279478816720259509456897714979308609285938682307812024484108566999019781299820640077042950864988719920918928309693433993988698417034516098881879785016468677248842032932114186662759991493799380393188813305209512594157168471726909017903875009292010839289489215118335674464267634220964914002276319601267191723808579473964018306541738848505768506732533293652487045639713401916131684856009623449096819731954136675968255195952356875241648604317295449634612492690515460930925169258934989276493309514160134452377060306487793165661587887794452093694616534829870472640605814963536031109028664565320315820115807133915392428266792076172209283241380659515387739228848468888160636600566193480692541117923342217323534738303320129712212399746475231962178538104020296841307008013848349600320969606315522819401696985319918460492303379843188660303165372572087991742840220148451423189954699645522767451278722025991655470905062554053905349426114236721874416522404708707569622970784943556787545851219747450155569278394571847610682105624936993458743359222308812662266010465993353049134861259265942353969924135806737686282286028388790556176398702998218992900586202551762557807926895416400984269142319145509331440036054914349807554631687430121831189865524645979569669765680667970923071978793576537114848343211697013921234598650740029595661599012960526767958265582153244452982947850485443522548919265167227664806335424623313643080854713475221436959950599939683321999287713051647113596417624699697440325619077743975724368490936555888214957116703422516006274595729337489574126998134646086373570387326594039123287324329143223750399961966860032905753963544810067614712629348643071627453229700703207937271057502252662125120227883254744763799473205387847876000584685152840922203057118139797458236441206677736934074304974245623866050223854061961548924999506985178358923123417958070360282259424597357236357361340653773338671982153410739831646247722017553230024112754449894458123957088989660912547812130492159094911869085306563886179902699588622273516903376828998729722600758856715195247600568524693066327679004998770934823459188913617638215137865341495885866481688630698004783523293256772243717258180729036474329786438812164716128988580989358395565481863209508118973349173485572412905269753978704392483866423484034969498730112188915418588887258390253208182880150656372747920443630169456686709155965584533184367912959156524255785138894177231665463976859875916354741638128795451193152076574136749365067547273922914475194512203144629726960139745793187342123847695819825382189799974687632063742225033895390254989334368809676704113562580136126660812389361042333322291915271103895491551649494212162773437712973376583708250506401425461971145897333325395470115733745209258589593604382156649808267241946046390594749101773517637489726007972703585159583043585535863832053169033456102156023241191486913821177530716842856029403779943515473234190307409993478413791892174615237915729955231301211815925298890087973511408157438480568777741919623885764096359182459452665236611696337408277447306360716452310641538512332303086144382418179796594118707570008815512184527665969164770187803220086205218921264114945827395546610331499766765387110364666399753072275998742630779250104606902016561539490720394364707260273676812332438913418288685167976553907528857548915721563020509052657460214660446162540624695286998531265250465747422156239229849361070996571445858697910752018041226584263161327391812420890521994111309015500618075020183693558967026222117401697634194857482094498041534600264430013094760890182605472176057514790435514472308733438460337059018420686505553358487806627741600190063380801247194179958516995702202616895864738607170217299996882675168680190739832001092450308203806981977085677537823274145653844879857435901578802528720880255755431246954137964359908045567919314363726870764487274114952988724810777604694864060044446839193047779223823318749026616977953521565913398932925132380610101606466425423467163767531663989494257446950229960660298582946207777037932250143914068771050572937713377815314883420412460104814393739168692378579645872700919787682441245422424657794723312325671615034682679816311550550824971421844230757667078117530531527244599592930113263229114074042440297457728404046691538628931535861476783258330696531629616413414961325370122579859867851336356318849203825898508670114178393819476000905578408887991929830866765753903955936348396778302491569270816485658778402544098984165760933466377329420653170168886363599701085404677174158537313505435941114572360910866015338458000946468666813437584489854340541922622025325401913269035070196616873948363024925537617321206759181516862959295764930823337682022656384982588783696060525733144979306707199005316510312459332254103111573428820528581038513040600397042137237778333474813362702603417021154417998621432293738379761138360812491075834341343636810449386998196997632070087366986918929144758044653935434781582877702003513777006717191266161507964571286422540748254316115709349571144805190963490531886923839391029022051916705858412549643520334267189123804128871032692449961707339095496605620859981283869981015053502122154426817309969557794439906417279515818550831545591514464857016896231117299634431210739559383768672808150045316093796802058380357590089344892651827275372153041466668474425393306718315625049119593655617097481161856886495797889529046380960475800009066550915327545409019460819241487776505141791130178823390293058178580197703200057075897745280779350414413923021852872580994959534510976596562763074447341752563097103057435112520563513512728295465723543266061736490101731778759258526807761236074319682708293838460506495993406474985144270521795195515461339109043973168152483348356287496954765596432459230711801357131840648974570220483675009361209322050067913079807651579144898819560521328540738378105606205753889169700574777548760969174493596741207640463500427944874665222461845840379185235982638095413612242154274319586918385501981989789806937862769194686366184160297800154658024512861293890380669340902950143256702071670788853884980352489172999188866697028022461344902853296535226350709917334984221778631689805978386166419530310066799304407036005973562189824393989992310757205128785512577867449085759575412525467142088313775491058963634577008568160260033195070996827117864662508762266326561155542370702915391820987581433248363186327333232548956177498148322158023444210489472793493079052406249378808337011505489721247760222111658840022225826160141042861286857297207919992781919052161129376805824111810825049591464655147835717723384873334256872174366425923343060900677376218630926662658091269649818466454710575050769337829340125566864938713917287943249564931748045721561369238854051466896082660396940574036551799392819458376133753217382186126544459423125971831060210268316587473551105358165873838332236598608091559951085330839017787785839114021017495722211095198956728120411819598609889928979053364634777170065215883304298765838536459193605907412140110218564619968587010068897484567147488546182675254335368322414944246361818080121247239241615511773529751298550358544490341734579183063298454287069780486380199378608276163437766797128336734840131035075709495583781084573240678026436885468280128860652742512709648930291192701583602001940670615971316561638224569648728602480976691910875932612030680556919958459623635365754876279973757075553290849930153360113810750079229176123351118221460361104960333007466466260330544539016536513593053785077628318129268919492049117252532913016219801502771259396211084047939378432290224951766009150715487366973837398088295169727061116588034491199806390660015494875533186962062266496452247453133202956788058609855590055000634911171824174340321935933715431784637709816091976470588745944100546806844301062299371318526570701531729145367184712398331619885630842917940758916429318206120219972837223244424189355750764810325586019124618678761741884348007165320650850093607895654605348195825397988386492359844702644088987099864000111654707549656809057226807374880346401383610667028430398867050235855387233540065377386136322752178289659928037989001188028970733700419943685687701117580968307922616107907776662485805366929148619043897478528432223565610931206931109592613161224840149650185362969161749531093434597334240766790848838469775529556964990638158089013223075672920635547080214291907663852400397677681552366675366678486848929822966486492371105225881172085996312881719656792132511480454786117608026926262721399628244256014786866568811388303856123603409572444983264285934960631815254214600248427889347511838284034773381075754641947989417861302326721430380800956119570927008301076010972183346327925163044957665752772371203613223583421053003325085421812197523490455379038213351235347548423386509914229517693799114914141444180604560935603981416167221716912339977107603706004688046133634140773946460185626776406679711091443544278923693465819840945830552367201670841409821839358519624589691872577474282238051903882814196471516354450481642405850309178714098602377592911283703506909543742360182607503984281718980650757098181367234011369894451864593936694003121108446391384074059234522056534987949026884106996026252713364271642562779354093537381548736158837659003383239677602196147306070625430700872840632476411054600277974372898498441643463619941704818429841706956940545143300128199246887185986445939455943665315962096834667001724341782203477169046870414319252872674960533682279858748603592401984932346349344589093335512442872362142775791149155231554761735080598987028425204418742438682593030368865846923725276028128665739569433721206701611463208498040959338074683329531527551001826881689411450238405248285136336524533839509888736610262634517890480199337918377710319842423190473501747028836191518070925300048442900994510837031479884756013319530726807372741235403025326857926229876787359640363416166845334997128646029028674076563416768852990586464175540390441028683904043647294236018172980781889718562929347568053164163613414259523601830090877289787653603487206123099204731828916645618563391574540711715179892403769612391836236776849151113009029443798509220586689756905295816765464418086441328134798812415654765455543933235958744149138339051319412711319931728501585943862969427720694619435683179756542037381375003856666140909111239801992914253496636733884458016045043906933908757420850480396801425187566346950292584177482412714508203920244538138414966285110942589948829709889345388108671691620588658534671394476693857858353651796185228919185609861772431556701602764957677925316165947232663559016613071921900008302251709214521835263798216558609420458693078828826234430983559201264212239056557275014109383891945203077660612248710982809390084998954262433492618673021855599937555163615149563166769357359162524459678203298226851226071776540822759044664502470416327825801139393724665059499731162057602216233221892150260080773266831996574933366068868905140691146950291352753426138661234663182739356401764362961091024734875324540506489333287667883398276628415735797451469099252677679455496328143044592150686491681600069245898661109833574368785092156910286182200553564992313752267513327038925778003810073934974499318841173381806006338157662018363472986450241530921840434761402409142140513676299482936211761861598498359325903039957036083437386429282890794803751690219802451830713100576474296640268200416809661118556959420713692602523466290355744613150182300377232012407043793958464906152223240853346348732757133691882624377501924743857308642906810953202586168692165468790743649838526663782847998582683543285321874251710847947983726176199852481638707105541655802629405423393976229019184326704554831465160583785604431460571488295236401394596186824724020860694844587459439000317766509882194045617580555469009574742443359107214972297102948580997784499159266478574737194615068856093432066524446287379057678710121298383258920557535358218524337345307536959774533817718589640508041590483668454309711884179396681151746347966986990913378622665988157139598433850938091588923221027878631734199867760932343190043303397892313398523286967859737170568042556339193793879229714758382392435074032385401609755318637252848893069069546193147796911667389364066341502528891635017777866208039823377410931225760333286929554085220436548323773202370222994214470343477109063813896689272023987534413864905862895277889255610072740843137395655164169606194957333154450018416428753523736149710651430486596362669571615967486949974695071143510705626846523870641010237160828075539351814101350021316216585536182397326752745755250631740704247720282880960233739170203009224789064197460860542639882029961693418354077934419975114183034613364968690687505266568867604278436063524176285829810502593185178132956074631532678768891805901629588839761103174334518765255527776999867179659366530696095338833718508503903629006003642126122486187239969723695333882614486635763359941451667238585016218020081867195964857972634277892075831869742879637469468614638257623197893864550777920873148666140565079558860958429250556310941901105018769977047220845775763304174692699166884174473394392617582151768494692757248974382925871946542424499435016807814184390577389003460233883385432273471771374961761804423003150919237176518448852568037774164644164122724617307783070999873109793670636311317489094290234004935455461058428744819466791717558533973622472380291381119441803145750978702272423821112731742388998925841956896211398709806013397748180599833736115850225932092475655613265161934130899484189217175351578047603723432695299857519059543773602382926903969326856572296839699413643602200719629621371648168702758874397567922727078410659468953111586094533033705895647027515759745719853218743777722413671243827097040818425650886770346624751409845148048957502300597681423172860672220209022222183442652211100861719768337888330653003459832034015366328663015631775595040819302317618176242633157012607647275574641176529762385312630498728823370451567790830624545625566263058677800174269509884018513187250086260531750047617585311768194950642136773094382069186653624074258260598123141651405752352576790235994695015037125156316306275549039557853386803655560646458031652187379988624638304857514427194808322917073933617664925751969563699962668578516306003390669874462540366247781126577499773293532724298834300130691554697204480700115964281179248353961638311634710725572339886456507573798724196798102626377642395830077150572207601847085050169672963728747925421789743312395378657974246606569276916026498228140444662461595508706836329809461952405875147877260297432720015551025048451770199661573435567892018088845807365917743819460777605509630029747815160818981862324989106292591003525012933790194420010212537908790643741225786219750792809990951706675006365007193957929503398772861038677804431292686369905801725024638284443403951784085530655253908245359828146092141962759037929273705365686527337203920747723008044401337001568407562929309881498981121036026927565908639600749089344749141960984316637434431626904865776038794518063449006513166581576231931807315124165560725715594285124036234941485036990054862376194882134855570157611723207482804380607053907627389465916386693364680549973888357293347587199191900888128905897887642340222477322029095214346041674355701661023241291504310020325368259390675420969978078175249482479486548770091223651163445697256731511303993757007107357768881876872593529499207659925335534507261742290255037768507628581662658150397894712416032088395076347183215986559584732351436704005906033827847047852429381106511856264412159852161899950018037863690697036211432902408040841060102115662999149414384535556989632947284111855460387627627475749001623374006732028937481883012306254075666849189476000508760840057162256880842206841119023800783802769038764739469880383886821381607560997046439737408545381390305703248078315878416552014226044145997015424840563555897746450218894720840229933268423495083423965802266067621169559662662357741019644623582818363876991593660121971343430701451772657616850047186140319780715722076499797094878452546662930451029338233103743829880918649453993929490203208669303788855620440754473177665596600035403868409923700659211646833151708172300473636986888937503368133137117605715175481802084975855833700540384128894563120361651042228034906918881855922602696481652309492720646952549266123879692844281752449770557786519208364486980820480446331590795393816405936375629965086849240694653269010848074428691900698191532230779274279626272292485875773434987424969319675572999408201728875471291307587507288009584078195703180472175528965336502416218950739135997297498443865621252093991042641202291504191922348864847764930958655845438148090131369485919157663613171321158469909142141658284742017035209442696093486378240524307952331652626471688976749138502759298604375620537671268254302577764557775906283092822692269454342672051067594714447097233700818505435206194135035457551400971354921867034389497273098988060734286410588089700910319519393156548049705241636068472994301862744545607794695975538963625617296116907910629309613519570113109160931931349481765025441921939366764001344369037316681824619464502105980817208368576945613077801537198860672224782873396741138851315977967187766793223469993779619291507589808638377131151913529258932274908581895980996087010618270558401287957852244522266484482515845663770501825914188725537987506797082355198557180401945275779729263009090896176469110001345920300361598134941949423961077039003760216372875021499391165372105023420888351080594957140098288708764516343077989326678805047752988311755990342666230886206068163751246354842637245848160095566188717751300158358028561317251205706448255512172263327153502662073740388423115276469067184578014617973520630737089161844314679653884442814941284151354894327096243844003093380701683884345222743555727338457398583669405475511898414465110641805576501593330735835542265209587943925955500420769362033022036656210396425373924678962582568143963545200677394087488529218032464208316390188773200425205183080335802913541691803617189077892967660315726326590664716509892971455801027254558762217715698419372177293103802360273722339355600546196136218064385580811502905765172475693130475908022630016479685672994052929637143673384819266634922532308785262966494450817196584286739735135304742786739671300819668504273401916472123888317659754260124352535623571590621780719698093092856574586294054303016816012930320122760190185936487404683163571399014854499562502087738184036723247314487708180843608879925834543264207579658584551585614295156681982664146856027467432786039499643009613403557690999334295132890152178233256688214884055009040160930722942981209988113340048572522357473788332443525526916755384708946646669608543937966262227866689845112014486145707039570818326850435340574798637895346431577770822039127772963138704051478237671024423347972806861224956663470409909873051700065953087522535412735814628954540211282992648549691161219217337150517610879591761880663616533668797138042378928278746309712307623693467349809432501826609909400376062024091888093737822875278099693511075861165022255942076767600863710767519343719547046464047222711661404003869667695111683704634125032065302792988436563348531778980682541943330817741955309932422655164749535706274274600516978143200768807828366627294183071997453483997480001854850401759783650468642013396068555888657670800109719103700797749447461312043184815897983229549911274164165172943115808703074984554646524320858530674700086136235247185129074568888227082044010413401699626406791822653355573867882038488428565566149615329221247547415772846443585318234494077749019335919067952455974565815050637470269409449836216384410876908438887491438477913744989208355326294402584664249991707605241204053927749711169431288530758866031122441558948888034751489527285997254188452945254048387163242477014519053475190390778211513618477866261239076579864685343717604178803709481734780287425189418308544205410880780248553564673475658879959284518888365847845732815378276009979909514115507391596709726956787612628447993141051388868844193519348247525258784324173975758295577949271133576961865079989797650981643058778495964395651611541840582427745757657279271865254564609787971990107740783663393461485802550346758053602616405616846125804145600967857975915581362912408986682369447188991144909284986021136007707459452259980864620470840424423659746986847775143631767308028135162696027512201522344985304870781682555583577377214573316032011695054113624904839707480947202084601838843531882759947216187010584168261830856010027189195754899752465900268985149162440471794044828862661864021309525486245242650827748967546387092511082978025524304559499857807874114047294966734263248651243561766350436520156555511369687878407692337979898069046476076856009966225846396730136549350915858943985741850669666598002433553572316204257482198539885827798699796170608294055366684485969749160660625865848481460979995778975176982373113327200638185878536213048687986881704508420726333825981491828926612339515135996080021185200162077777842594913714314566175242075557592553679906954637569118332016765639457964742985848924959226076523643325386911960172814949703786198514084363199927546523855800560173497548642067194909250999964512343178431755954511346884548840166138695316690062987369645749195621897418774403287905270817259934767397337515241128315174822924116092733512608112651691146148593698157903528042985932844088374570996366263974579103703062615335397940879965975871584848784044388662254933981912602865037789445245163583163065384167597264732875635718251197156678819110611918199766892177636570413794602531977224166330701091064075314298836894042166906646603819845448890524994440392637185631423824250036681913122742508053505447651419209260149383997203259829009541526945776893260690206951673572571554331642907473456649696688592943255620243476306385066132727432677966083709974121578455515416093978117576911744604431062948142921225228530340116627035065853941937531536082702108403987458440819362592580368268328958173752880206552169277468336262427313840085096233847414116093682149805752115535437345725174759838006063353170700202570827903592901139740722319995658534515110961063383981487517832950445788256408358637820926105529896992503909606844246825333003858366292993099451078107757555180864048440639911234532247363301700885365133105380522791807553081761257616273093506600188766651703782572607771693109927731984315535941657873923887821912098692904506365130651952036837554338878685669815492091731299069672388238408281286935866696781363806619025045166163705477271150456877835876080611060948703823374539913817089944695301979436785871371255395994262760717933080661376494100603773676034411818215377182045890217302266209220421621817603507977536481924046055533005692733719374131046346602759634786688321833743801827608901345792407685846559958500724440203579322886117450987295255958669878212945315661936994618268990112663991844383626627979590198742145169760750921298070278036519198308174753176230263735078900177331977719528438964191694442901713441719644804600323650174969905543048762659024748161284479429266485568401328453777353915497948531168137464931306631728990834716549280890928695197878519603375183353305011477949430997465267621590917014387900790221588770596423248739387492100797239354333560164235051483695584739510098843222389198056206067244386199398111617303769717023331633613845896735343734493557642254454680919688970286789481215099275322187337045919688611983140671688838531909978224404902544069911796066430230743011767706848193413726525672418795625254498890819210280680814586123622023319926193203843465281650557375045961048343804707197424861512670650798853035212060700261511049320512259785686428841954417890046005439618298990245216084994424220640172424281048050124503256602447711209825141817470378307241313576865909384260535693166893370403881441886769424672929641925450897339667170512466268910334375162431418088536081555389316478137827197786904868110990333423720239510869149262548365056128096693089573850918501787968578166824152491401360079098832036767145215544007646871789248100139385713692579109979032123623661824753636655603862840728404951498952467949973947771876845149845717943329710277214569354978840073926199322695917741890662356451804272336783651853219386328691642126165323346557212865750717297289145682219693093138118244606477198615469462066499059017318192643044820583986052022838513532989466343947240558029413130825702308868684792714883095771122685922185834024858257295739127273387900288222377590584684786161347558540222234560599606468871527483252605199710708212978331313128535438810513900431309728295139832201098605095282436191878692942416584506466066713043483405587893421311024310777986528458273654824059657928850297525376270109819070401949661798270508654426793467367697703998036662222544938501812177651527064569118595451856587565617236955293042316396733228893721012612948001422036238658591598825144627623272359926631048805821030613803812242281565829666396929903759401351433661126216993095375124903979559132788977307171524213630523655364350970725991482606080548978601336924611142550930779661903516273731638240458283848699120106468148145223710984715217388877410468618722935170009212652203601818739951426662450431863558824977068091357966215768851983977959303273183351428714910960169095607951738230733414755135232209924437772753673791427224803755155946492995455173067457719375869107179273697107833334119734870222362070098380562081721020785336131364763565678710592374856664000543697519722062042011315727734580167674885443818023446295477671310359081904433046941394202305283537670358763237650172717317466508895320696997414603340327207228432566811919697572815838034578580021378432877268974115037856813108095897235371719404814273430586657581445446634726490160794957131956003455432381693732724735885582161667673834924816097938992819642328854753925003142177000700443042193902887516935584711422092814813618441028025316533086925930881058016664863670922199220725159281716169865384883161278367121791714035660401096340567603700007864581703394810635744677515332883492530190355643954737391074932716504070756871781409741977430651297518434577263128077836917759644493740580573878824583939839244624187539802789911158785025890186412492340288592374696651672540623616999428086447512638532933168521552410575242195860322646438956788117687527872356742530943044966393502311244347866351869792411890725723886962458298516689645022421307605451468466818206942129462774504673553970646773104510153568611043116762311153746093730999995873010974643526319747140820069586870884381596798205285556432647552885074722845642755441811448344679649236915172894537697755101475051153804605574816212392967478807998214909877013751942598896653759284353603222962731720472546346023355973531191504172766831325669781776504730240354524613344174326598099485771283475998008787088454771627336520038560151085976374982868462099843240722510867276159419860775319493334209466324887962518602243752991563566838405606946353589263236249828035618591973353605732309245099457425870109191672859822682380665043226272130952295029985361930068957598271122920679524780519787633488035803655556372241459093066146234598613080896326147250558168159068054434483343744706584311815049580032617489445810142395300504016508450285315286608270417659499154914512324385129896817866497653780075905538931916737436423977036193446661324388131523228360737211579029986249087294566962497283003886893630875179899106654831484151933713150792814188988544091042380919481032160078145495818547191760613090089657280312068911493294357415079273143149400652116181763958954934336583026907700822502601154248116301257939391138405110104593196490609537241307714210897904411368877075847819605738418984520466888357320518497826715724877490392684863847348772002798885081585591876489156008933974943293297579762843790582855153996016012627160754698895527582664491414987806493234391298087239659614755015281923182565446599741511586018989940086647978394033261661458009909536378391026913348860415336042584124444316114641120145617191029849024945770195325157557651149051898385793584500526872655493755358654703342608763189219181036353029541956996983802964024239433877902135953889875926515525901057894168224450400087055075642879136001680977641792839252578548214300446030309391548749589783800185720326051207621545944259261016167474229619885102224650913373563399099082994823822090791867309859354180115518942239910791024621556833921988618941283824069344280309752588485150645402717249619750517069463332871014075040623628063400771657342367241205210650779025123811769552795013890072026309187132512768210361166096570410124082161377224237852725981121617962397569102454795806750782956624455059732140832409938347845867188723605083286263127852884614052753373424992725812811374284453958642280507134896866458548497288167233811420421734473082629028468724888526864955276644861618319416384604446596393211626155115195484756893891904479869011521514616977478238436487933412637001834681748447722072911896998066384902923944336283822231055183682024750074832015683191073567164037576262427536161989812209346451655542549678288234900597724824015570457044170835830817804349476679688103722808553223724296290132219975656280510469850369884226231658672469576430979983824199057808554601538861410525369086964515198293461005050476923850529400486715902722774922417417280102037613686354487672284360342879562220111081944153338547078839776366072173149200405348842934671003027871907613728565935717720300975479571090293487376419520041555893144366737538388002102666888336437720629254892713734545356568962469168987688465106972726525636008474298825351214395948072895973138482872586139033112208178275783623763193424189457594203320985689981687635331904598297436300164785957445957178946349318872731160850986856962552932023689317934414955812696130878054487222623822861474961158048349691968450752981048184619238314881555775532675693360347327297611788382351524322887425751972617439356057014303286756721038711323370466403767131289811512024434198673308403731974215489346918715592910300704424607124607220927283011362092679671818455806783526356969381288149182568731813044463789279705447811517302007968511408873283645588728884640814802193417512894728972769034436913732649850830135466230991693145106486322657664726186896308410502266271207752925638691026655906196794977345014928806495561681729803982786907397576845143779622441128324961206194031184704117115786392900482008394991271699910407413144573009311093897772440130662846119219315288048810034472130625031885626472140315220506849766756068199233647231317260111686878073853621972283079243372677872426660338846502124211350943382977404248851786071628141458156491880843266219432411486136606648029964153582671211184149488822250879842270162080540163870265565974053036099120423598404485769107800085617330786348716747007584697777053853496097218686168844661413895001328302809252985289705735622563174354070836917291531787867138299980084520074707769244366126794326706957851546178048071700654894717063604032042593715104681134391757880584562757580496028231374991458991112764914560205183909423059724374545291867455196463695480020681224976500046898387621095232273959478582215259848363311523454204577539241579575900380961607576388015090541474913542808566219671462245158963344074257460326433843090147881013366170937531167315965739865643273017412081853342976023591239500401320002293708379291570489369447640122973208204857073251166784529303582396445722087125810503953355167953113865704360371244424442153832740739548008729241901616723887845124285609513463484549002311739853648652531700408502370943690656064275384186909252852516389226867798439476494170023176404446820493097906975394790915908554165108905251465411597793074261217311685648153483326994568780370990261692061364865210258819418300927044607503408629132856721558087526783679626096198128208704544741983827137416011047891292147119158240635553812682705092202631786327890173051593557240449969745795899832532712899144467691770335679157519520605048277598175816548950346632611210725480252143579224649007944515981366034282191278997716007616568601500772873336902352020238075374871959233580438484177483343034056511024015953689286060289667240866511087066278667374849964418131119550895507685511327047718698509572710022186841653015667213270749943771384079925895304980653648107255675587536029755578975920293671721320119290030630689072576779503563721182565292646381304861664294046417472651384168832794043145157103744430318499376206015712033781931639985427740465412112216824466633340590609579949504996542645362103022390578795950831518410644366093804550214523208657765742547034805287135721829613588064975259688695373510206633595205671691488316072275993042956633992143740415661533089104440308049463509835586241418739830769292097798595073571320502037919111924996981153770758413939526480738842806266984779298307579238331337959330363436111479333882050992617759756600036164375616997969179447658039968349613705515217052290005919956495303587457662625963633273759567768113280167662086127200326310065105826668421500288681041122330514026610523257785652280273429386101096493673520818786990856755353113171732728526292619525901023466392287519700486167884291957562846357134183571351271128177407304597716758701165427472610009573596583559834654592294517911517559319981951522305187587082749902221723803240126976630391247308780777781555238184169475901113689263981224726454734346001577444613078385697110185475447874288740612573878291937028681129173911900205920339204781264506067514200542550907369390355756823569566604458661149608805547773944706581191683055588880778151852444722270732755427353482793517084105913672245810180753349074622356976941923115042695166696448905837787409854182479492276690864253824210213853199061382485739562771832979602928190915095155135208255552355259319359901722782105062565959352262107532941963436598805260808749976045889772075349984678965004252739722770090004395906752098682704914732472326807524034633335038428215692320536988703036186185872185703693724026937790930642983459270083285646939048253346210974380802161270162300066396883929956293735530351513637535322651338432410744549424048269444201651573144499956861550336491795069910927698469243651936574431271546822148809745273277950379139810505671221415337583547746661826850687888058903923560853181574276666882825487216102403793508093474386404798006233361729524473214434672640392177139812039244998645732336422307184548355263057595475731816744915699098579785042971358379906526043199666635043793542681790473258189083748681131131188662506680207061264937212352050857344732995131943453380431845818938767194557667633563600387248269469283429002697840767461562686652794084155277492139947274276338992258284255038117008041923933353927698095156753476945529176247244689410047266921233450804128111485508268932967319640659222434584141488029260127016204312245404918328147632968348782941762367089677263435414334412538204880953028861587015025838968322285013572627008435997396391890024999248393418557602089728656306451120739206275813930196125711334831997753605299370222448316340650340183739594096033951229183668884427556262825592736852973576161310351114916852385032676903737788283809706947205909467765418740195425880162112962149100780840185610689410659567091138122862929744973723668676203583357650494656076847503011850119860452828696977816077304342425886614691943217263736018599831074111797581560308235548422365932431729473146746823619290649197990323406016517538214382501686556744294856941841782666204080985874493346476968033009168879473728904278487086652216898045053440736635429759340968242051167407548894262590837566571168933451704826629289787404730381350932898314541547574442352615498188894104839067709284017189330652448834206986895483738007065848485467230214645758452188596039145431152012786647201983355318490741025417647053953437665805823186523250472208955453122589832098094067463157494851519056265360213613700182942786647646945677708689779619449786026699124722988478935150812292800013564472916612257243216421830683382537096412006827982492852668540378236284033525435136463611745999230934361241348525725558025502623547322959863471067359060227427919458661781391371457690843288402763991787777990950472686445310390439293267108572150426352986971180290686103833981947447200773906135373081587192953204661552544704918456919156578397954102914759904566773312916715592827038618033115284317226526591245404081845830408056722589093929704765919740061143020126565135711088408936957408579669802122858687154328168499660196090284054692763581658180236616308764457942583527165505172987706904245652009281772116122117749042728610138296964950674186882737971040503614767935057778472434068508210795666727207285708755471943924924072768014229046225535127632963538892266538807470098293637670269145010564690701445538704860980087041253562850603904182373476716549328846929524255792898378554285840982107538825373161014815215986387378829780133918367045862086840629064788896875046176285332049592159705062876805936339420516090892638217354401306948762718624413277720559209891682836394303385720129287932461422590064470695264050438750034440634254243536941683573271314091176930141716858986823407119089410902599945786525972333166737689069124972784528713317569801563128513494163687251299541519334635799083806710389854983744320910088725815792451886531231607163998920517686958078152084213015109649645976956464676407038910829520971738557274974723989635334833085036243550782403190456063651650285266403682346450008788098196807462931944782860595482828238222979904620920173147070004218243155756594811516487839001810542465976280463906581782942002821289880227271658635604990480491291393618493942702376271760048370638082317772682517886725769384754542563719479601865352287754707777982442553723122970371178958771902705502274432439808272647806149085809714577333233163516483489815510378804749145313535448094937300645359972642740822468015027035118333709123679316256585591255764359511315604578892673442645998685565574009213027909906269013375585179987107377188311530661672116793540460244005716617789321923702741436425700007865019412471783272051247080210606531288765156312514295818259839568973122924548045886686539842443626221273650380067820431729281029580573500566604697907297443896050237702761161925216894645356543069546288435706672917446284165475985252927385522287542850093398722571418310559486059914078171127457558010206064839382124661569704255208552492113291463229724524971867242916771439570266668371578105526889812820125072678461658735986776429720139498635011500643619415947307832582772430685112677673701179164156428543542651386532802284147907540105217213577968999844228627291835036656527568861343511353938800860481910668841608916387726161370763519731611457768351515344965892986280188091190811640027802850320331772428343628968002054336204017875894795071406506557149796530621632355891785579110010165547278874939435038471204512897114133027240538713804943717537870026029781681935193772422144957623544660652093445726573505510726572431796321793113891778095123819924968985750906605983690703281806546377350726501929001046859057917611760040302552411228988744252663243598667466622871719063275785174798990159049066497109579397069772935672958796045264290142214458434001636501571018611441370701105838518523012183528578651835059011705168794567222979469540016086013482225814110828349624485308635115968848280719074695443974771950467905246607478057042261861067726272517290072356362648451259306086724521237344492917569738265852310485969137961270267148769645737587045382782231585034806531292744975805784241303164753432734908036627599844996693933207496326291507462209531168319258383134704135901077352460255705217542049333541335576467505577736894724150956582676361561757312868109501475494321462729814446552924433203884881462582693612003141582186105358315042989101048744573923063170238739801546002935020485629915009653491628241479145751146072815028533542196304545481572521492245817517698887687968885221083692411448539021781934657462811552398639555805585828730484397220605666406683549366753527213060869473081492235413107007989570474003280073238607592108206701505938124849826653509404615391826398733692213551051636402433176010037395988419485158236899153982922603177771640587597988394477669674780357540192779632231562330493483233944600260092204501652682799890812335974728292103769492688152683687096224576125402813731750115497791555089386065888720973179501332419124164361638114264280986207000951002009189060435784319536499637966731581251380069591774632777298562455746864569219142743534132123542461720688418029582413027173840894280917208307453846740262952942682957184432980073417949498726697804429774085680895409029990049741924835073376985975564374084151004480969530310199014531055918076811856470968657860120907891023727801406241144917356124447942207536683008321112035095809990911729012997073778627491230665970728711632109323210929383747915519387313348360372432023598418477754350825544476436113712599779370310776295702609821916835947772990562416814149832069998668989828372694194015680039738440877594126489104192351185104604522563693397760847754503571152888435695586657919367373455390542021029816502560207701294919399928352547543445413436037980487023370125822542325131133486561761386651613473737442373261422918987090426592113558925774774964134234206318504267275261278926574882086285841074196005501836061676731939101613131585407178424292259227828335795417297936872533846049983151077801986489442315559595838462999164902222784320124114991854225196297628265241999056556923442273295041060231400856147280952052311810931124193717995202771107529551197725696588320191957758407767832643341586885081596417785597935877105573195986639391301141913578520285930390401666833691734961304552749318177110326674805259097696975495347025831529206693642136215295684925661342723925101005894720539173455554939482130001648672140046588648832369566987454662983741255194487683979118706508971908444059371592992908643272679981785086496203361574340163273568116250835872409368095143980699318260236457656961079435729271507447163837462268791471835650287629343183542018714296253392961902647068315013248261792244393348027932404987448276321435556010880292029876230624888521846168464272592905881995244447820512871643932419813924839574590267957664672490032749720826522619517773335399831377408610418599285575077733168626630940196048253261433943847548504711399124351735360829349900593910207004099925386228694049543017809778912721591567574040375138761301576149123839568445117634292348756775848645189675818623560937614458981869324381102852822356593773560782104167553719751436646489653269894873245558941623709660262708138331318128478374115906327190639028853594170938142907120476875235157169092634071107260576189391631973212353346042618262291389080673646544673396834630864480774674667799447434590241072158225850927313362439469364584575734653592160781878229857257587308740136037028085977054521448738484625800821015317083855993841593980781538782811491245441653625448159367886988438316974391984208340455557981821272008520274409735918418116404455821162448336091797404549289702927473214817722572850213808533657491169484223663701840895148208507922004494170331074082116920398636640254422877829912195288078383620800744400149727550315901298226999693261131999689261105157325581335140365769851687178787470764906996727935220724986222368450269757276446139733783427390371343942913553092840391271449538228531166700320468602579798184832218174449223719016520367619320026712821103023521347012694704839071446403641342631339499141874152680661689773265792563289295772018051484825807746325230464303962349713305284040388739076178532017211100747041280062064837066032391944602239297242265516227787743420674247956775483897416765238485641462115182246874272818503232210262688783031100139159436340968574274108051952148090380761882877755076973800212557281769870798537094252114941695867888767972756003070802474667865210070665012362647844485148020606682142005079032551379023209904973085449923182888754689238200235720021027202915809440447256795738308999975296835257810345241164740752027122806226349030039061063399364554859090346729540057477654649475540426518397066509590027999806749104741835819111330708288365264494145856858868445291313416020244241127241496306319633605270385982725919787464664944331143236770593975790135374506356206244363612302051108055589459812821620629906171158318786265536353992801920735226299603708142329572185342193500177714876993349856374275069544624333157366623880615746699875121883505609941406543682632373995150378551698457317251607330397790471814428623500867139916963034902789868505774950847095835746298767223878640096855265786307794729349741727006103929077265686063677343292490377682731347790196909343988762950822092491372427526093668405505712206064017733310687743649066072969462551528664278933919009332383727631663271537776188259405106708114425645262714442317201210049694162039724949623969825948699734555503487769141008476538256196941880682929624062836653983251583883007282077592269354288252542170830040643218706240108824033499771461087419000346033147757544333955794324549199095195388631360714315169976434698885024162256655047438019659600505371529879500594202090181613881454908995443948490366896703866752421062531830566302545825765792008627420787308236176467378960166800921706183115619704342962576408257053760261695588018304614459390741351326652405244285475506303189241900023193345087438626851408902661636554358331137104939086274397206060656459602306105255237237279146323280989910551750432322326746619855172886631043038856415906618979723461537199253345617554605124722868812238626214656339407280937159252320202283054270554176934319289050463073143984151357631588827572309453058325909145174389296889643324463556792412374812743120707813629447067449617213751291442951802371623778277074353943920536672988044703558329592085093170477522588264168484784481116134742908099637048398739980806659909236324124540318778797562387216043913330310038065136208495206918555072999298539853155375452786106710857042875530277232921123616476632673515338890118295911694837361241216666329817796741842713483957577394172564532105039033132670683830341765235136052053765791364752589544639930055345584539049972371565597202517433423776958177942950978086799122110040525569904894491090355297456662992051976301650214217534148101195662422551060078180169023891868494088260865487763778431245998498209063085576197759880651227103510476300939666964696834138220743290577638049850735147485843325595368245087060313629717347519038161788585621323886853297558979958351738944196799767463627529776499360269066140896323750134124035641902254169461295012362947224052710049591413764172532964512294964159074639691549010671487306445317612549498188897475683817160344374906278661979002872072190300222577668757431794531262557779370958234765868628587891958109577497294915683278661609294952199964552694379480523924682863954513121468235416552938134204125840702586784752371402809803353607631281044424133431801418646177376245703722369099534832686040347257034835284323745464437279203772160688796839875104776181878338675043170493533777851011080106812989559834633141985433506823202901054567848562069732961055483264800385177795638582493408092864333214630141780527625870187026502124431792088206977343946695545156833397746147292116532535301770477852018927024616040788699372297470786532839188898180146316711666866191186547833647954735196706568978545709250731344039137120993432796486193870165502406385082746361809257518594235699865509614813695387570099955407752956013880919103789433370265521980837867644641212776938095785628137273561317507836330793472539639530691021129394117674620907684935971933411617466989093553966773684222564360856030489742824064740849719153114934260938002279074135131943287959973085884783729485343096897953609205892950553498832926055354160511898802555527144014667439896098050693845141783538789280182334432664383964620333345259322616166476638196735376767667452770559035287076523752760697287537804958832390377135973125525862431567331628829416246089674616568437221615646445937312479981883720756297031708786435179445492286016011502030360302189179759349886038079361239276070649760483649852078375491965308331828553894824803371111853259352637175715541824819350807787391743524836847236994819889882710510885488555108096062100446344307169634191403424148379975946065724465006614443753590305721943333970296330865248995140672692685156150884562365373159324861725931870099435347240014036337677692742437167302211782939760825496525576500897790715514739812166844179193461017535878273926973198340555383501478954607390154651785239338673931084208743573491672498822272212907124168833202132990831527872118722762038428870636956305653063220226508512378435308066614572274471709613454742072607007133498769278928531922481220105700680102381614660831802791627596169046255072130139749536525629227726190182098876969699013761650071968790883544804452048196406720819375128474179073534873063012239883278686811351209308305552112704445819469090579327982319671983398544532268963431449355342649943621895858082210877022413487227680058543918396357533630819305541600524422770452227536918232561313786858752128882442993529988969741790165992702613448873012139443539464519851046205053819776410845635386205601497026881838576782808827318703313442260339368463733663525503376646732245041506263943756590551878093102131690519183659213271207502168997419882624999414600044613760648835624673052880277492697919650443057555438518006898992527842085556112387958033998198810677359106684345116079323069570262337088453275756123006592061728516180836026049755496050491322014086380245879338249420398061776175824271657087385836162101123753336436634156061701627363217552723377639458677767375402253033645792404774370593695125466777716203087762642804849795108655114268393751743535383372588504647383608253162690338228062344544297818684693441622081573101854409667432957195538347863663124595424645264490147880172618456893241935683950026420822096534469188942310760150327945664910081905778336844838991118927903408899077513717658355311027778860011561305814120452854465281817547005407189581252055268630281728483385107802000141763308553578788962133323217754871197746652595531216646317679190401238119673715441137248494202604737802405111016479332246129093998598477373059214433531852292759294259684800174136074938174883029799320307118965596524145969740819567332457816870859875401944825079653638528949955549390083926541944887303488853845468894383193648993544908660402955858193752687992901113654286575027997112438626322118880704573997039877795746269342331864914847867300838793469282721570477835872159406321155938312069046025676417038764655413598671417882084611812493543950172868340334765463691357249694607929751294480000741381373619462329315345312893765071565820803897528748676469957176701205651704797814160324065974677827393869144550132661787789192118655106069801807802364928503138974597249937579923637547455485153209683456922647787400393700837083656699273082133607825274048993652938844345831367387047027517120037061816080567146564409265957499242192826225793283642974364604640911905452215407363591072695936270003872803855575782039240198226296395993095032173183956479356567769240984540600587085006364286313925214260403356232879593992390793344200989579911897578268309651287236686293720548233508764390020549307505412984720242721589630496140708234926106620197845872811077731309588851122728215851665983880027796674501641825204293644584717239859594181077008678021654803245391038651790027652407091922682615932323484396476450770811206528104463107664173289254526742005996888931299045866520158858974292876304784110649393669489446038418405360003687522826954905563363588102420315514765916157707938055822115096362292175373180851841381612725620578330083432968693232101902889910904899124590124358295111503810255725857009606857657367027270687746087362638702908360664446011990321610412005453584285004620748903210988601606829786024874015850166175695373617685607715163315161926335161367527701006724241977648556111969967975107607871625065830185454706744535420683149706036599268508066046954962194798190058568055070816762262487242766121366816869525308476755398489242146325584252235056411709661643691035471769320495728703235955377088924768378819298380016966352675800447261734060757298563616087371707635128288721564314649572138676116764047314114297801120563365306919396869855707158522177295842849599319987969255064158141669176515802260951341621743273225794076535467291646182944040739093778237591313866326200524497878193345244628216811112425186356561517726950253464547680680556467552069050995819325070413738976735515911446011296895361089821051734265069224400553634785477192424620685257770882380106831834299479243638848153643905898588563824177096530244763458559549399170462257863386352902778326075848355141998123142510451788196328447420993212533584373924846066018549796499362444914863373437847182190578163215622082419889569724573938264484852279978063383494524426444872841635322715974331943287448334030809089083491269731526048367451493687879297519138285517759584133652617036870123552533101311171030655169992836469883523773659075242540214616747888735531159743115845540231010552065501293464059431574673324902506522617158365344143391932605332601722435429832772588938575310180838214808319452638590639237741561523845373741552458980472350914661844682873901269172715060733987288912874933218963637544038102266604559401487663986688097683605451231703568650179481852757450165226782069621359326665564675735508246928842258684662317335319971352876266133917842632547405336111805470062058702629155837324178172833384254366449425641764235411330905275612295484791353306312669390876912023372779268435585716410237697578828611395762882548652636977516292128067586089489371702996466268864733719694972903483265881445223772812817236730667239524525559413423472804971965517894831301468075643144061946966030734614720533429924524395067123221410599628016572647563219175986192240861593710527146807666135284737659185160802424722637566009093800394946699358374636212381247639045575248461616193705376533510391013179644084246102304110066849468161523699526755686366614618996377381540180855212408898927191640109693540408050054239840856720960108234373214382972126367469656443788056200678574326785960534146417794492688882650108842753902224823281430768690280525040115583166647036023153183272467954429388665367656859972912151933922007976971545768254051905711455861008787850551330277105872849448415221652901237164337584327345098679466704300095932113595438560552245514812132696496974998344116049210810909997751737203973116460696647800485592122130568665812018838571077648550525868540135728101613384941501537535998582368741768426961904025950440144464459256750124583193747870203895009618732888118536960924999269884151165636868491816477685584778214214632183526896467095744542483813469739698390050053386223332235346675320929821139930782830395144726090675132473654476453928171219308553819734441058184539061121012665664891853778866960323770865640594421272024902823024904685665586256790339227713788904268807365222982084872514042500418480013125277493338098377686029791633796124210907927446587500911663724399775560891536256506123701005844173876105915230748702476170224982178894682371346091764563048218392995979942908355420555618764603884572196061758247189378630115031873158517062087159298102178348661425093107791755735277934582324981926326857621177172445183475043174446133584144916071903276280878846130296993304528163066957190987739117821471797811146126819451956018160271524877682239122793472088754230996036917892461698319938303052428888470564449910636915148388474657781740283588442695066122828348545996763070848449403838323802856626039598575518576887528205764197347960676214992916706589285857843463228235596904105312973703329184838024207256053205996878316981227052124797392343407706596305603484318244035803131077644925766366419558587655711603846092039067552728550116453307566929161506023370054856229221520539680353682031544785594393576667542896014250784905925647732583705215001201892849862538606573834508865471783211213066945538796028007707073296291945600892210376060591368344732560975787718512121431260899569030587399337314715997413648516836469365881600051103459169113933937737409259480758591313015089892929257375888591725481923847849160947936628490231466520410732118228497888633952600605640981367956123459947776003608672308057797221935808452734779988302426772026463143617431417674432412576709669672990548262281364015173114938452469537819736518334225624521267586541962891993031834875473273525070667782421813779019788253489590697748110330309877612510139232924894863087455084904997685027961499385473040875073837224185655741933194886492905124045984110833312102643845823773107634588097489431368035705144160191467146540899298055915690814227748758602769024530676354995725464979468380732535600131711211611667175904087290806885016989782109474167248968410384996730071384814103908386644491719393700947796211900329301973276630849102800613659880812362483541066846298846183127758362494926538431267533905342565672728948366280548920851905573391897399688945799649777288325160663517496358649297530027511652789636384740388529597733780429046247744441346513353763262608642785513947918423765248162340254086473579889844289934106056533746998461712509005662881980192645839557484171753443856263872243699497553847259395088915383041103839651219724127765203954042037530009234186944720658513876884423997197751306532541693078540226104304260805374059099526219980697571662931681328673365774962170844763905587557839953114996341145082162214120423287432182580067801355185562686460214231044975390739834270087113650398995773616269916405695569706006185313111247780649148643857902148662724312167916958795813710504596936567374452588379615536368884999309385999112265913627844919019272784681448317254867334245321889258776107845547966124727882256183701980982269022931159164950743167443684088794232056760288828624542669340135882737086030750620690145758062369400953883863308216369686731843983390476474279776886330095284351540067354912992247985364909863874825181345057054484143674522157016837846592012646694268810043603104421613234010571392321002073381290211625429724001579888829317567299291078689579667002447912597843924997802986562758589088498884193401873213611663313985793152566358787723673816322784445851107815683325693573235146806852355539426086258376513460449869854705629829844871154668436468169192221358390389332830632135639393013745024337918198407814240903570884008196816470100949121177922450213090638441801047637305141517482548740290696156300939091491405259193007252242668934418732091556628818736481579652625189170176228078858337087143888260315814015923139895841399777945260816402492848994146294056527089848791637810798438480329394502536667948712623593060459626828587512942552742893939171659457151432424181210343933497176407294394778027351198903166044011688001086415122529526362525317495378970568473506375828566557461902636173569172102508577052315335001603294080590253128814142446613393233273821121777604225684304296285270354146624651649891945101511261032067799668925516897118764180130667310632088782322362417159583514623805985197357825590363688782637314227292276476765538591193836400452662696206551544453459910508498201944914076374481253499959182993971015841968426562555477828009812792695908962677136291396069855065575465426494854768146036644402212136815309721803114775387354526516159939705260397491431278861630058679821673981947804639885418643628348871030613543361045793916321755764828019746400734919587417006199871976654443613863328526887652466304192190367922501034983148456584761178991177839449167587956082771394353386666846166781554424619602595135412090373678925005969416136570123539888935417825967746516080066468385044703025237111081473485290334012346357838280341606596127171285485861347188369121720269354613777521390753336541628427386240448684537084509859222959608155094775425530522799267574177730804336158431036992656799530464154108254159495922439662092555187446295879566059859245583810239050208615617048600668541641306663377929955826178878225187168374262994886543601338811175060577452751049832293060560362975832211807905682929427300859597904421510412766646104229420386170919024996677621330533000506754683035894318252625129561531364878709199668268002066281053963858135435186885946471833162378221656517180529658780333697459371177653434311428532007551037961866727576929973115497750159439631364644476715014330561190352826039084207085420552344575427643068587441686089495571694297831371622264561785328792059347728242171143340697501458138505999308292907430129878757207826043817040780994705851446370867528910572616628001264396792481230151833669775609940623771276393576880806205654773649610853713328236943877783716979870224622242249572888128612616616237403512763363899640242092999923169247743583140126026940276232689644794369034935947286186980047646109840143295094700433395226738836110143286736890007328207620421459575774138039301253000166110567419908214628083984248650587053050456034050248768782388754595816410166171971144936062875798107731394241739987726028496342349555406211259076057891413998348227948059451724833861850700586380043675226495031877811652839732884316295499800764849075071506003140008703001761318598598431793568770318999651087545901202832001663967545691717990588542609786239157696086650200800336682199806406401593022679135022541688762593323016803173295074933543055135973571454517464602113698175087263305378255910349917139945566534760177463879005045275518090925822268308329014345193390809232048949968043539129546118452455828691268579688760851840957301618363420491154469784208916786395849325310473468732716650837970267849313075478430402169780911603204768388970708143078844319271169622069178584043928494251660584324308122569577772125025591138466565799750410382397830785538934019783009070555519321249839901084083779809948180472586219116537942620712359622003548682451423008624550645734398470424439176689186836155172277082527537491069520291739706067687210514141410795483602977716793818234005823187827522840353636250056228742240141905922249959070347293881427619956433030929495133519734403693950517724165881084546266071572030365707607870599531440181702725472241078252184485475868496287218614639755275020438812863247369829447081651076649754923361467224142836264228186049212301817211875636591513002298112491650310564911935833170058075693014138651511190077409079039025396559247876200928817809795208276714252249133843795973986161289246564251755136770610988830544392554234615494951847000470250987725397313866707992893523872566912767989315126194870819129092135275806854691762423580416111890996928281119695174830931689290926136663941775921611103438595210357317306828810255263524297087418729617712142728987411659514293220919577528860146090110326934174341678063617425137736316175807913361956017115594217194978969864902550808316529761878074851695843430097880373900098105573790842882463271180564291907985607473126148701156547432481838841109851172948991630308425641783711311944022342302879471054315243675244184361446921273781760280962039853379718459266311239396141808375702785232731087416340969055446134390118850490594706390468881699928878071857337160549431680124032204875400846780376803695847325301779214483792893936071164190368733159730938644443567593482785834108125592479404818077257515461515409113946484208261340418564772175575343210235390915415996020650314196364324783485150624925382555985499954001259612483172047495944473916597623922675584708303748793840255061615741284055980728615560201320108270823908511062604543323774303744155267997330470572405663642717275285612282090898990328035848701334779948352669525565902672713008289759621870201458459543874825874220955091112884789038027583293763209212102414566744491693757741212925063556947667534548197174972640162847826755019506196650237763356487340250471356856755880037636365504668729820698483454668193128979076384638770103911642193886124118502236291083341622639701763947638285726957074212697251133797032645256921468406987393296819332809548449425182908614922805661774509729111017244868303684455758253406371778667206049560930657033318813816624637632785145276622529421812062547889823565940441043476941999386990202859124183927184981217995228235493944176029263877383935484739375019806493736092312441032803644700165073802854442062125682141603607752073587414278668279318538085921077837245489831185175633861795832824868127578876334559111136103875761208700983890520094451032273576504670092454887368320842364330073344138072202576799565682371563716693227241425601704119732336773647795909576475565591535640458807032416765749040847347886843383554293026619556701059069551330372202106150417406217416794549746520824658757172836360451520043404403387044065493458666066007605838405724210723473059459259252475456248828015392865466726042145221071686270895799865569960233026193909532017666192774817178794133069236594480480079507629676036397340246914754966047865986262214115289707524869227776075685769090767110386075855537007869344175319691339858241041415599524678534819851872110843016566385907243964076455663793025920897182812543112989599532140611765183522313786214428740483979656526266165421485837007715050925625634305635893045414455016214233910087889097645983559130676959501887474126729154052188428273115867911476465779087089286049322348341557424409661812779162734523092567471147708601380306166059098076003667461957317128423784805446732524045554831318389152036369723285644912746244456268198857749141152337986083710869479980883434439874523065717165793781484120529282496249684450365864696499397242264213391191607149800843535503224308318674022333284657261099895129125684564417543992983724829693018008932806096396710871110302789239562849533100499938515338833630419158873709458320237734453568077150645283716474344059466791381065157099877392282269189685458584589753618339290174925719044439456339716945255176361940988053415173261767778142306451335832111452135085889177029557364708896983596850516822506066580652185107628132906407465172467919928679374405639843569677204977095966432975707677836860668748201214530685544139525347106849978419590933168646570876408723609247489906505781158824304889994964417795514519549107271989544325508477757475868862305426235233811958443665614657610132947086538389376827642429865587207984640286025891577489855235315542197515019982877340981104245262012960103622694881833146318318186280003495527130579858239588601950885312352193970007472791159954357556040813255315181252708322047959443512796167397822996100188849178479061724212856058154137248939252752005256882807442117156545496513789490441694897765629144041977772298714827968369352309520574382526669413205268853552168872605020530117679340866026434452190319146507262059240332139794915497206561965347875471540176448675293705429201516870246208544623842612818724671886161716962025618495047347380188357650473467534640984219216299273628846482400329190954884487301780915514453828456208704593992477121896283996435772256729012509153523620794528909899162659576471625546601508323569118005915876396746218491098206646218266907625781986837117074090658346349451847231352526716520080164628087998347979649648100655946357387540401985924476224632738890670564179683688485394658000789926533509761491839185301974605488345819122219017576553092752787239726535959739700704566045240576269748273071094520574843356234342513651730979288999742158576033004884737695962366530255943882879496858837624385727735673412989403523664475466666859617445840751947454114102316994380523123473963358183986068435334683608585181172816349438475407759269019020964940673488361023056178831275897640111320691807761620743280441809392282320786072352678955478152460916354575787552187679319052083405825217235949190872683835261620535852673904817736204730597550377773477203588494144920557086054932336972050870076064356693023980680092372176117916818698708603311445484033918182068102535714747550847085145617629191342981265675565671240481934777303998016754830523518658613822318781469431502004990880801907657718923592988529561569879882607168500952709141242927508288240428002828010260268030865525357114303842273813607854914390674134114589910947661423344944022774180989866539850378197137443630228283890474110748374028960692470816499784028522849191769740101048843299053497608888093488149791334267540701340987820866965161266204557742402798122656024995006621607839171168189037857182940922487326359260165151802048941731838789265173772740448329044344017216563914172001449734253640838568314539959252660814644731333523832962264404771037887141342541604391743522338562871016226561833634595029959078218492804237076775013534300601260663026960405742300153548365728903586383573171770339864950126474842232639063398139761654698527002856642560290344115837688740427596807090213595060927965583772155509893978760847212608644163545527849716541952396378212394426707726961717678618593545960009801413702209402638995400442656930180613318155427615230628861150289816216129970439510799940984643661962733155807582234478653209996578838172946659281100295663950400499367036138022340862285546597641177979661156605657410787905993612606549348843433606840001407384481229801394081891293804568442948647629211377172182205950691165415499877492653917860247359487641380491331202397201437034400693051729077015052800393730305449053847463731823948191388119456966297640614550366846436598790256629762715907352975917625810293436529274857149194811556125987458238708177387239591624174866405527377168049625979525454975205527946688038804987639324617999303509209141493316653606861046459637017681687637340352518777156231831586535097048832406991727490055759043197677374826542367926346757712570929090586572626610864015511625569023754865113580241561107330982213817737487742571330781220143931857428871133142936938206814005776943925931061840809113958672183823973428975482229420608123586147834435513948467584536430896645559880556429605881690021561900575118044966906571948549573397167052585951766746222350167207326865776721095767821604498343229070602332995152006609866135777250577710978854312921640391134125515912681999794711070506876386259156462392397284998667038481266694187364843481105475259072268970343977799145196040508918002092450722977723961769726534295007461491619048824480481652320185430484730027765209985898064683508075440177608833850736406964257741682893427313135323811555777812607693507753683742818582757497446656796664946400319116133669044021971464779510670490528660846364946133213713875918036025375313916921130197480964654617326975684688459175125194691385528173278239708362608820742703372208588749633218383950958973337151992139955926739401104782196759982791171992434144491935071185447296821113430513234891494005394920214119403368706646872676216184926000792645922139910779102514546151533422129335176717867028816351385631686055907211360298034371236044016193254811942801475612202608885587835257180562622473768024359693788153424914576933487538402247951088590147695975839727350582445124001447527146026256761969429588163559328002681641161901584340072752440159347371374315754352881159254043886325263815267331314129727132869523241118290280170154722819155757327712134181445153690214376358980228109651983050169217964420316918328396105748715687624446099431257757970260039698601171321837541717449940695376599297534116766957269553240216556935961319093266714054655858154376180858053953065525210014520333259102654787063986090565203777051005850310752241506374186853788820599234974865393593701425428809187537099886037962115309976144054941991299030606602944405095843503633678429506049687345214348809448246511589375810189469857131626014637940818551835101402152186818500646804307770605845527287695203556866493139868184126907504959885008897106482822362572503944751375235985060911248932520764747412872815235320159751405494272062865177684052970116928138331788091621269201463006676663517976795544073276411343784064946424922800575101969177852485440860313965950065536464121188640864996062687624410540022354623146503238493544395291825341522564546580784175056114579090640157874800398773422102896082028395930499725579538717915354030653303009512657656956531805941705462849905253788943285888312510032001700266471764604528110814165131552648022407651129753754841931165986683335043673343128588678054258398051114544428299501925771717529743239637121992149026414392872228931193192813448162395684042423934516900000670751490788363318043895758136115317341342676540179295107811350378875046526275499240532009362809048085198266199077319094700516709864459077262951430718642079075874389660601128315492257357303196593134767059625660004802457794286383620398691564710406302061829529926262489838310016211697779083035674163994838366692648447243741795876957867330504261585992046832199187532540493638281897992275004905960892691719614768005259050203260124656695170582971202012713690532729703873667815607596520047734246513445540178666577228053581786296995078377336654471366819576307708673869384088431962128605416787702905923985890490482508283980020822807052397286895797711339697659407916922572282350483130844609308132213741680285762129767174771406106322761646836203704554172281944937430864808492857631571681965196912171736693733833316392920363770875364436694926794712708086926907143172868671556988355626044109984476983759544205794760142680704673441729062567414870479657186348568463432105367917683907042352928064017418167926182322749096569057160199733272332787434629732068529320667291777109064346038566987234434573864577906701750260712392336995335972344800901718723048460108666642282991589438078328538465667153957945610510084365822930033538628581010538022726729618053418993963249236103372767988180770427380534107736679652618283205334132125547670029261354212419664983034349592289299535885430474974341390875068914838224594802632742242729228337433772957372079525310427783793728320827496571001380019454559004488881134267426756988131675917230670793825602696778818574118168954270674152195018580678230399782884874445927743709793888924358238081883862678118038035135039366883532905297017436988405547758124926252817622270485360435025460699335750744281144214501999829178689658208520494082002827137876521543660050758627755042609633420547097422776557034315442071439843467115792790804725650984139200457812973427038002456027683358773525829103817294178993107267372627034771584198866085919108380011526071245574065822526877047753427955374672814697387220969198495694993533164934216083972228719465789126677598725836219116589890819538331442676855463704288968708180222619159673667769398635330015029103533005652186318571717013106983963936988179553467389167951683623406665945167681847228883685312598320073189990248167058332944644972339339062655093357030081835027382672759592851772658503397474496500336704038555133174334779923327112703481731789505690842868062867571833383392056650444467778799376603747506679080771376095193035875128625156799980409443372854807069913547299688256743836051966508788268771891901910971409390304516261810343086807558448578793041658293820488147967573512151547924680761342963324940607888724646502038074537689677298063822688212618232600452806673096267639190514038777098429797241085009228059497125614035505371281899409491967278493717046283534355085243641780980732301278408067715462053605151772501295462547346367961200855193839509773446393277273962269519632196389823580662362235578994909149370624524435015954025867227347257250914890289493294415612493861623492967355765068085663917836513006350866731603804027911241991017612016842063913135435670434124707117964366109552723115795236366356602426261088803641187481051380766456781260064716994620649348250601738021612671604133048522421744523400494930096661785661441593873576015649137876896802758681025339816611832972679372587623578530777417704120757936284632205884565173303953869890094574029797563001036806110391006114089219700189239881471186358629613681774549488209344942394000698356884037538955885439151594293720949417559288052511141857604865244061326814731803886133200069836103106891219079402082809518372775132160217457241279605854514503202568837072112079888937026291896109242247865816798694657491413381331285230794022108356244760320732446049495532885518821314129201297755381665984261396585358854403428989386814258692310765890461815130460475300028742711370956198894244233196086720130394468305573708810152687148675230500465896946218219744577817785534301566121747035123302481661172120651500199110541531851586003465514270560763987964304473673710953244931653943654863162155090180794866441941525274985019374858390990000606826524425774780612427049832943441554310817651343601000147696747645239111313870329529435210332546418271814474559364059117925099689481245679324815807949716656018222387539136225384372479775657432343764312539678006561634493618968780785887556903788055650054088433693572668097253570910771073563880096474944084373049120079351595350938779702276494233515560686300306529119208110810152145412141559969480363484796112316940631424516521668233674037478291276291264234581108907185776902854155807864320194839806473998604350725383176479260819931810110363768160378551570401520847276137965692319445075850942972080093817020873378459309712395093986189380038843894219630345142620029372247643787384508890265038091031162201067800052017353207388174782240296738746359713050284149439458603291482256672800208550324676537064880019120393734435787450645191046094864091523487458581857833521721635588516207371043627490986094429421002065695700437991108912510749430405526248304893542570191943200787093872492813867977568121656939931104924067928038309719989191813421022327158942756447387914216357655360825806724820231406612935296536370699239306909880456345197472143042129850620947576023919834803347358650874568866392136706376854953549322322092072247964725175879678013372354641156147923089856263300811731705541489093304043267627275186292579528079614246331306126370574202798856258085539304872682764605553838197380299259013531234387447486894540223643656097597416941614867743611036565786702717962492576591754740353460071776260645438188306794936077931327485111174292653162069728718781091771741428528765706863232460461789894479977785869242141036789111873289709378626864373469593595750340977565173185771516295966630116147174965772032270689947122447587663826403777374010172556923781666499848797267441089498736010937171976634729628953277066799037751865587209133325160605759435810463032592319820982744828587027213535229792256250366770232826815807727970283659261852599268905938930959933777045384459651494934990522133972338870362771799190960237852303203137103985647311646265944077752868854504544158938035529451237285697119859968303784766681765001016243387049281861169216748218073376885904369293739667259776583887698139338365131213474069495247108224293053308907204673192460144680589441858551089282571999589060411551890079055625373901074413961303575087016109317065912483486973034610682612491814665857248786286005637302192843397730952771674420112873928849354533847233402639416845584820930476358560184721508276999698607168356093723238160598613733667782550882767872055940119344057083810230330364644218546666170044668770564385189445030020449131116452850101944102172853769617207401164440628770847595155215549299664972057641697045474623043470073225963563190522301678382483820178244579564330063172915755765313982091465812321269403151674566310691188899490951538196243545860029778858135761280325488021651797346826350315689147754989617786388129736157425589601557200080798669255275780468004589720457519325915012854760198712030674573407620729707504525711451109501211836870436947648165911796130677197785498925384682000382042968229006585559260372234698630786575570948056721643954350901622605605350125203527067539144000761004442423458279392392272644316686344464841156319156243279275399983951049650723845418225276287601848783017862699221035282948686671919649084683350353633270351439171360762885704523458294916463749153972636109081329957482171568822490885720428217106649058442260186189822902767307249987151184931794824890159310500386672000196238822494465835082418885388128006766657354495080039856885235549761563291946562339751792098653058941668936003866940036173234996321093333428054026260838162214282044615674643156547235379417264107098359442780533430955446315567588360526743131768710245008407712375181524882614338998000183282381469363788544979001330349175876782329718937333984961020911151970749876920808192480917598617345887239413743979110554339579899188120268024724365536148397443434036312937902043805479966975419942592259484262735344407537370406899278443116408190013689625178396790812830388713186767723052912976385260123353298862326174538036757906334506935750140264647490248861308112721049579600456483821918484240895312816485990947486786687064856128837731730117864375256793975538756841650492603994063447588175518494476899136003688316651548063965940835953708355929327671600852465325479991700654915816805911201946014550136587867178609920241638155164393667321844145793956615109545220204366093319599166598323988255962869158529557753385261367474428124669963151932152981197311111549802682663670356146547353713795113385972263183449819281176503089797844129987413911317001530922289191784896731474892208942013687787120752197128301541441654822341620285014476071614714906077620861297798433197000894997228012747579034614091764720301895248061588972624619595973399340649062637289836293781788290891783181986185828732856413886537879939371081481447016390577178696112783398087730550828409990222775116297176186075079226405394635675255465717311187053273421870286341111786394135542799842216437229281536610800228275441595706818604591254109450237442657330097293152857073075771167098877810001124670681958156219099054576368682020226855111354953615971037067184818044413666191030025187096902161028724985905107418923852621771532936347029666031065400260038126591191916537865628686638557240543799285747906490569141457034181297448700987428303130879006257799386575528627671630041791171683593455230142572681460610644025390753349704436349775316240871806675305567698107154553469846688506872835361527096821187568869274248619539262839111066630337173367794798313484833675401516407551906760366272974150720146525538697899471888846213014331948865654999612011304670560979906381594153623943905244433157198572682189592376344150691262113309140285579799601337535192284104284907231613440166314042996657677203376999819592306094456663019578019344212738138153702431242110350842462656645258722152995386026984503193886465375424549369446645801519310069781539790941701294528102965869663167212065528269824214283023102791294822723088061834097610594956420533112522999252420420107263909594644238573977653640437873442482448532815789307732951177782416766760444832104088761041553379317279402195401964521447110062364209374878085590306444807823970806022205355425025815676060963384226921691988925858945640865993009499446261023198337414804984649224499230487465509642052079273043817758173939291705881523273688096722466553502491896322088998681198038385881346591216444496945611249744410124646204708820125542893556736710011619241678252183687744145095078826501706621815353034895713631643138513492831279704920208704552112751314059545476863390620568510795453585337753723104488054624261094412358943462101599475973242242898976052272086923912815093191409972301729502024857128013900387112551621446040230488079175303280136055933217899942291621058623440807144516419254544436202126743390109085044144437610407359210581383574926162782469093557439391340253387696088410694608223783421019125223014005348097359242581973785823717561003223589961509378965640255933818047680616226211938951052734538946711007057077528902116662192377621852284832327267454395343119028085921973371345954855712174687255919423692358650531679258566689461464139240033796093465878547298069808847861712112065890081959408664480057763269662435407574079219049339271869713631653056577743550404514329695744904969475848163042442965031350849606768676822644667817801167433221303154499005760420352562151773553243732686466000747303726937600392166989935667009172608168609654155760420040470820907051593511853859063300809469110568081814883215518326807717446812083956554157688311488699257560915765951177965494292713741743079241502512624190127095539995835557895343259190534056317369744004866482407883283144345157232617837541407699074656170386781309089874137811411570228788163063720869346893100412397658754711303898103207402974470016394790268915875179138475840233492087084696002893551733097457658517483696836858736282823808006476817435255626240925875017511516024221486304228171783986907699069461002276039053751723568417915892067884042406663145329536157256713543182171325265385195647790793702539709584266047446460788925007350307258939799789017548184297001949145946634070558585311319343053009164007538598304196767631921873347890030847357825666667117485274012326606804873053692507950100926765537799093542218725699342135195351007580433603154198497443807769122068875223259675061982807674882920392463815435508954632718716306770974790136519430236140153971109393814229234163832238469257474426268271677016582609900448950680910741342352954903894802286910574324896461623785221202514896254741515971950256820979143091341790867704413531355831889075203506485719910174693349527448657852993404899327931910286154211480684507463381680110817754919532632199022387033040472602570815708601370247724225174779059107726323698644677449982562559508239093037418550651987438346678810517652041321572061759314739292038677384806008876800553602189869813612676845048030976606377571660930082862154995188791726446101600182984894144556628942958949262517296956805811767618245828840517059088803453064532658192909273169250295394013631593931571647786696063426663189959775445982955607159663308097665947185440867747990698140615340646178586344856980466346104501894440927765220408274647961403258684693206241761227377213104580647058097566046625364871863478075714489945225558496262940264064482857873216969722682190842297595566568568752130257212046599770782538639765876487130707453211906094979778579221810404389638106440035521471713720538957425409642477229430121435127704996024074998825239908639656263444238613225324063505975221493641337680434296440034924175640292556098507759571799309073167739288554036211396856257004574430125441083533064166182729447929521596728531147847126925762862849921809520584862457965026574169425921251159711593907255591447612639453261865991425196973324379709092957277374385761444381342051702338851563116833913021474500176104999776969602767090079459841951712702875241242434182189455031712011570072162158743687617408300554031983028168709945819909430891331055911234134549661094137936878366451859573363186422897130295091057471367078680622286963133100423927264903073483060206526498750967408829039757634651323234155195423385680453408728167191467514739339799954379812369935790238147612737855910525312109280365338301707571938521848878239816750332062341084370099899259872693324665747312311570747260961941824130963907062936564965467574404254719328919396607835469582787633184785036769939767905004919025909141536676993055830836157207200047400036159697961516725125762724919873578483916778815645171588570825790482423551702428512750945107339579202532633591257844454235104400920283296300256020082458704118366241933457770015295722977589489692529351481050371165076886472943939499850808154698007222249981185899536253472493114271039829015839509316292469024390357632527112627423447371260893177402267588906785985288956535313498140063907046197608210023477901955525284731876895081321880265628722602126413795537962165468761206197575967339975031089302830079121481610182656370369524771182549063437332408472486521984447073160210808469066702137189937771267810100070709002962274422801868920084058878708748263138554228493337013748919575625322114048664492833262999278296109130803194465921252049987478373623535828251275052770298436436116765515402039852824208153922443189668684039982688942566753104096573518241335493929064632055081652908076847688281248046436322039109950401351255024994849261757856967097452988132207389672582029369421479763757553626745604587658793974963716570904531543606616278276856352373758357445709923213994658563536505245089634872018082494524755543416244290412664276398910827084766277030380722966132784914279154439679293536874192471777864306131937495056215429009007038043000972718213916201739499383212996273641109976572405224946508177803465420534530948444497360069234376757984465568784317896318516450371241862648644190530483743775567234049088822915746508360277382980129049248357635609464242818320029323790811542998767491304288322796968927015815640003808928639493395313502220306453408243454074720341344932792986161366687625880676953449544992696805876243727080018207007873104058457974344936768211246104971597855436325337989013547551234801655599009480692815452899865871828923033399703859645449498082175823333901102220775705024615915708830914312874062391637349805512991003558500693990818336691796667125937209685322439990406967913643148043029870582711796657888619603835546376307964845333074955862242913027855782377829467041508828136219188770791816813060627280667506198981264366019382933916769756439735838004382009745060327615755042962949889041775499306062372729810237689673053888460547390971205765370199422267780113376528393570326847134542036906378331188414644283961373457467488395325019381200225392065464953336941205404514055873155396850350311683659385316748413637959587352951309993071801468285447668241454038062992197578337498554582517158233749979728495959294254534030868631791625127609247729677219511346479145654836667034027091380785381991003115855775494745430640667934004622598902026160955422586436309609796147599467794384521219553571160840573864587588219076698494015005697847795210716788053565803444746994708033699905229768844067695143717844892140498496438137920899642840217252076107782026993298021093269007154364014875440467737383216371761216979915841067490375451351602746012537123438790817240448525986870637230903647441695218520811881084583477934231623322113171705392325165961256240913183587336696423828697537865166822604019999513539074708022387055363251792773350491126283312438330199765434691537369618268297164841835244813484005713687230510382364133708484925901146548468682085867641596820966411273372726942300478589911133111162496054470393925026895071727089486455417783028542000188482400844432242095187320401842988827365176877115131699319323186004147761962171791618622219933107929689711482945467012649834412110624749286303462416581193961091452715734689341257782334360125981081673364058374203351121427671987768636846670607756429880989299248832095563409101534344303419137521085955910756100671678147847564155448602762288745601412164076537169325415505452089520523075704305978980989167613380882761769516712498710785682914317730499183331622663789786808015234248095393847833085072945566577718959497371915340768127650272020130425082357265071824717640120147238985133826024336607881729021035443367558687891685905352491449785305157811319666639866729054106616482561337117785292885609244538079855487874931061968817643362156484597145804561210437412406251156047096709325605543701267529195691984583253173483071998603004405926731531261035861419097036593086865427682593429484118430143590149150767399292006405113394926795684966292451609887951987104216318314586830931218711073824063214858450820581179136185247041032785202824485406543781682195280889002493546021850836749060959129031779998025309685234436537634986860421756644420382600831597039439372516532738375353128453928771831865815179348384557910451413628651771100754280597983976352779456239653427648687537959068189281570380909403554957882084303051555974573944229574112331682562662561526289716804349944001433446525333599718578871814161955307825552713397932676937634009552538037108659689174705128743786822480711649545890996510185669070063624640820096309281606604921895133626066289309157531686120174407620359353549514138612997777731646711120191090302236808370624148347214169775514093306508329252233042037748983746451599492164822469521814311873801781766501572454641249895040933167901696118966856551010967723079113530232403638734976025589703775226052790617720016096305126486243413249409553810622038618429450796831951102616636240905045508634962832130738062981742084127013653878854485941156391174964103653036471961204998616808588025200887436084539892166971420923146076059514066011790861162772409162304519579798387441327670116904976918869786310622709752665809293827174740434833898325922417390677057622999805673219667075865207781602536375430467069171455968077200689067812821276359315599582020999605934621317242406887441778222811967146755258749800183869543025079041980224686754399262580238147031047503108421359651336394500965179539717453918557232796788396364564014851849438230663780277418661906239092157734422059767273592695725968399315472803453203902813277713436660938345533903252314049511871140589486950161689958868050069290854096411291161134528313221235922408917544231026594160064869658021091355482686547141082641308448404451392978847334611949703730666333959983209163914250787715498867465056783237801333606512686388726226296451534490378962467382473486556040698748876279189627314769931193811727088665563398096580179383086612634799896486895955937388906656799717262299912911313555024318018966513216306443064037021641915381851485627660963149760148471511874613852531756024051771076504898947580351722908522896633790610145133664585972496704985464496722715271938379977175452185271236708770014094151368310155927348712988558817703390141962338611559322379398621030148292273599642910282300627237151226397977385903448690030906657103686771482347165700348343039484885493246616141154326195389746299148393180227005108618075165434446739806044437945917814253786546869151325983222738076832171201963891461499145036276238746762131541040559815940366686782146585853640596847631183899749826555404183664271870526475213877343803893569797663439523236945612675611566479928879234047961845185447933865546115485019996410404730887661121548388822353093636652761093491128847720171306797474519470265773529086628615964817351685035533004681208482349456721786525868258533625648756985076280559473252543996707389943307982030632800427622910391270781563229367287746442001455331821848402145195560998417560370154423490256829978445408839889948877884744665573271692483717990779204504239413967952508326625885226251345097156495489825716899187986161537671860796580906938320889964983802272038585890897457470254428322216628192392386296990150809772413979865464497781633623638030894786347768511730347960738974431161033228128760610071690153515034619602842061567497405394414810276567326361002576506036253940181057264930305157813132986284824297324977617764956816028276150369274401618916823632100331474277077218774998226426929860715982593184609968284167618220163290852135007459456445702155790447945423095492938769892808577152673075720777482878218029536644894409476198940966508252678476004873269774724904949140485557574516626966590990673141228343950596026517297514999956175366952716211554384772904344823570602413267970793093513928892353637436782975449916960715922515706050036933022491367296636828518670425181589338118537293216039336705354070822659259599874750215928213604478156303715832940257300948194109130307011132787401035906919649066083012812724558242202039102647725799419398791691820869104620221859922287945090454804825010306482815764662906358767409345729386666234628736028115963498144545329581036722715245963640968315311144330008508818012856343919202423943603416265591504669822747142122809376123288654761084663703898661879561805370461622938539888916676532306369917399925562699087945215232884999008614267035715772504545172796260832203484006754295048236204371158482039947926656880885849379286877083613394472658594218624779596979775998528804296615466388132570300204651842820719122343997203184463533544246970320035569034553837872374218053676868442981590717235377927120803710654522815588354369668896945512064514877686071789668434794219054957841275864854021034494975052651504558132071809200842813229740843124830630155166876492299890937422872500699084574914909123091477682179585168861501164358763179373787798773335996090477432991458033341305410167006831138751073313434891945817602304217097822976165730480577892379032616383554220608925303984279607149222630224448200285109005562900869427484818740320333885468307734136840270466045888219059926341010809525423130200494683728302951350438849606142997073738624193760972552378430099514630700079335430443885947763996462762079055394731740460652239707443349141387054362935660421706850477712703416188719181868552685483710754501404888744984931297113026400653825494087890239796581518243298443816946917850051909212080306636853226326901886026379923956049465580502907482384267508974181886152345756039464160943690087333303413120082597866083947555769829699563335981418802968038485637739160537318004614504071507892488730313533248646244592850020630278793901003945109104545299488078554112346235950206636268225473735535289099468550684877818852684861589498971010038532897829348447281105558625222118314708368198571699881037842138828680941641438308430602581405567523329285593755132427525584173421279588034605044735561001003908795087845955264049256393310256909523649150987978321520511374637252483865482646504361780830522029241605739673375587657978110775616180135185328307302462745626882553854380853406782220786473781233129429225021848019358962153891303236434516399291464158324789808698605305984550172485684865329229900165049503501984568777816897071696819703912279893111896113176219877743176675013955897353248095169001744573482849997852261421484542487171614926657630151654431431852387472894184495161422631899437958793307809748264218999794864358068130264772569444316218903892128206432071141339187772699747058428321026508411073451654123439990634047249570142559846564313085130859468604358335245288524131581698584421584170132223144942021488010617768818107375685660612706411975215959922509219271856013200498186020467567421836530826766439282441093912420344527143040046634840099386510253997799688633627172830137635259299429754960762288598253388449326409916554408251466643231710256744316399192765080345763830272407738263797893460387364968358997705707386177244308793145533448829417910963631531187305677744618341502694587175852776258154438888725101451700234410793298113539810550521706575130950141261231450242001673108696907338481474539997386642837976792842157957408812455734357768419232544186725832907188597422304765185962582316099315970991948680255300086195904661110598171772033367669270808755903257715736334467472317240872055541537279142145337480201854423639435668099875068426905851689771985272249821541177014189193234194969640087680464606031865921980759097475604211697541776257289629518200576650225640938048153782521640901636078321918384583470429196926327582502041180412591919722883854470541462170819380841177370237173428532980916353180342248267811307873308458564466370878577332140092744969721479412605650563570867177666924396599441687562150183038281461726647991247431232301177988497009660392535178578388131494963842997018767492599145327292884419296674217861339828765991950816864695835689104402481203224676899020494690931391076473212124738816018755478475490873942747147270829885716621770193383013814118054367723440846195581134760247554974844884669100652867235749463946802324932057828415212739251538744238417541725506610304679047329657486428049008846750443642143013361901404792238775874404140510009190870872694033455981580360274577723423780927621086386272426017820405474944954555086910841729807806911224525499747825535610710561046001737056520619169935119154763003485706917700745341501992904728039972289593321541760887545919276098016862618234475637760220904631622937750272455372280619303438406457069640035849673723092884570139555396323978767906726078411933246617878658321452210719638087491033767054394948136300357705521753080607502986376086007296844980837139259063065286524716870532957372053453750602265792414307674912555745967847079006033556502995225098331364808648881216412539210650713429256717216984334588245125422307213733396212717657816030131221302825895302899003162108559656182265736900825803608546930137641304650231972934901289592968144491563085164111356034661553760490440182433380244871052685057987064149221566601952365439946347911072931196745237547265123135639409931306456695468454283498429662674860763777027365334662490063037676611502076777052868714149616033683930624082575409057888903377817093051829317870532106699793718523699121975315183271197390966579730745026449311054180073544219924468983477433448273622253604743789578076330518658300759126808844994352164369640674401455994975924465086241529252986985041524046946251635710647984002467007479736693477339462064880504302956456188281089623624517067097599381244707015885861481102469196026642583764741357380041279024519678984168286333431695652764212944650701862842052840221692815670575553080658752687799834833265642229247520211772755438337167396473563707479486255618399292109639229692113809731588714820831289925085699214657042639653715893289652090882609680519462218958998404178298504590528067158760295767071062277156239703456242115055856099135890836267571422810145569974171768264377762606213198405707409878915406549704062524772400409837836105984164899577050981532362748288474980966238616826010184179490548931071397201611935342210292891724141024597012133442829598038803722533214511251054301546242634959712359539395512110427710239347686078785629826067590944743677350392576478896566994683051370437373806553438098741611694174710167733637830321654150597535476505864320371884742694409275476720781695919808407047749547689524558990479980526321808206132279287350277373255429004013679983853480420503294980634202433817989424064076307078791074870637443357410538044652978157179925635073174990337526717372230642348052420884744527584600794252595439546925160679267263803279633352202636526644887071913059017127815834218370434179635296084257958626248516917909326004351139946435972422448932601613175388352701040590250758523973592043102348450376068638772324428705491097450622123994727773677196576203709125173057695244486507816418185129501271696444881018426201276338124683940651060991888302659090882086087655987168524006453577999643734331288603329139474117812939925365742908278610379328565745565312442422049003299613828569926436921939665660393904177972740162047352607795236613970614237076310613598897448111158087139393018275267734276255695839255048117392264434676027536559070734484225172937440711799337564773310424333880764362643840833802798391960744416015836957802028445146537244399701324659814190053368298740189848503475685061131008983362246041505965084263982517727843423624494433350414457213704407552821491854535746038113717782432322296791259678268126120431368956832318802183163712581029117302332563504971000034871822247478714617558782393864560431058775316666293371448266051759680448174672488938339405088356639136654882083233680101625513188967650277338667794793843370250923830842453922058018163506921044996806211987186701073265531683639149681544989277309814192804583113356160044379426272674416279507082234593370158370997571870585041742292966475344195219339734352933193060485744912522353980041545886458087582759138756781148247963624217999089721434766875532454164848107447890927729952445120452734921463795881514332669793426340924297752839734927504207925043435306647567166709999357983110065721594946572464333201713348663698633653736416305268328084628501660648134325497072962009354953958087459950144997209196381244824763945061857903659415266087564731061589443717488305107501584646809733840305006133150756633617781816184052195033799004949428136639876126895384379541546204474751164256566267010077536171503422249298966552567199376651977270722888155519763293995789955759138948668293656319163929444243404089618994324604270317376721130146009342818665802100955977686006765708145027250747212027556622995872555371108836198344295321361791440572565783881723266802204360056992115043416300179005744683639179370788076100284702728893187518952509218962795544978773378024145056021715580545614985137896318671466703325276085386420260762398576073342306826064281639776699516389534630692664014440051661426768692093257623974109721251265488178854561195695071074938145547901038969873730374166681092929491131078425375520993470860856126743528007115320920972368568463561971709733845812159775658712509587238487848998850847892013503697551691522971394806280080473506603233331657580425106521966229049419219860023437857842121158505014409788616851858315693354645390160430029282379151424675698749349877193155794532469796638806927290667533493869283054517443616806717153462770235785975736913694308666010429252932382720438076687730674724048520248685851408295368473990615408873160132676061788347118219258636878099702913560088067510037438873579478061001630336608399356192523511959147563987526000969906029172148407240839977886512857574181323479719417983129377314307588103974044962724621467011973698943101451704568478591152812804593670953012144709617110077441962012861632092193380188329754714468501521579621880521673537195360163587860033117436661142262118348974123363986720715663950903395481861859547306863765746177007109649062842645370771554692692106819663414116416836780603539378535797713537946285818974504275299884154623112800121139221752619315275256199817326942888170270016022455047501615895710508747083917264881110173963446146680910309964128691140292129556236911725227360548827490270443035185366214438763338626012760770617332462908854777017427306727771289938232437500108827753115386894137296664712343589692118207121134265604979704394161240378279518176473766880472023914141437030843071280226653663737069269115414198012165287696587817391889457505862256891139263760459461462776484007658221066180713405072865260379723398051413466167085473284439939135032111065724995746933325132704126930212456424344816776730846231664728990625158907742141892406618988250698979135114534688043665733287022743570356294134950545795435868157511992472422037246752856048763379175180907376268029735493612195639561322164603871674335429596027206059022076086987901008153795486637916046491094415329880940780191646938165964740362642273520264207955644945990750176012656136254046479070913345531784943446790494602545624903737683009977103216562027302958375822247340922051602825871085802120256984916613215185519121435991811398550782576071825512526381856954855270893676449027988165448972490098101529493949429691177530961162252935029440294528951885321365313495386721756749852966873090936511889299894750470082329071278164160698836463811418440065030347104822623719099945814843322665405274250193685863801430990387865364039054938709838357710515236309401672773845735065188886779748025394262588740132838786231706215958934597095611987451772283786303185410546863728761655731954508719682005967173540245954563494972958283773354523136476083095285285137038518965176307964540024846668302551657169037121219521360481477741600433058844667718635610814980465689986723231396235936922569395414676328548406322183077998421384927243471595697762885945259277256866923953810452524366695674117693213613327810708430670358773994099657637801760533463357662991107850988483215235654344148102942382517239635113552257493975013691585174060625583413580171931279866335438083702273597882558212634918621083146755871499209759734811976048890586452301673471620485730211494636223461844859176054778239646136315033386996408093983677837848629278711832549429173594872376962677325386280241393607993179594301120816645397882185054754148467072707279262786808183771341420821278507314924215436239110765108264274651107265023857011088481786026390423402362697053406340381881775251675809062904369875919799523572681850787295092384828295123299699210216496556668698502335284634268833160537974985011960743232206866750187576021366129066986988123638716963876580859245337596247356123068753781262162828203883270950661943387915223643215881625742152160021075782282944076377821965322356322289283888476689659248645565819221853066560521257562626681841224825715525076192573747562355308444030727172749516342979298667910165909813378338095376679577466033005153471015378189907766464265485921456000375921154216130421911148781297124608838142078110123090092430511494635298296921946879267919003896644859201988158052798958909550648973843951046835423478091860452485191369716185000136467366195090662485790094503362865726618016169374855485241244732667831731124268395037241061050499578005261734189034929429522545198328892048587109132020952862296282177913993234591951129692168210429915331097355013482570138935898076431037289941332079823148219944118894409726538753029180273767738558656346561729053502523130725025536210024985232846057841841361668411161528365832570333556841208375251545468722646256466239594311893382592865567149280278312705379181386775323283541123130584980829367780533703240157718662212508508639623966255276322417715762992880027997675422380069665830042253898935943574736186086098603926113719184601065300685064351341203928881677634406523770751124398597588661594385686502948768403229185126163554364720972098329642619737916876572920540572334879823860788581100504988866728432721651199220670497705739250971821695708519821019297802347282802708549765541881708262580603279661478849044785005186869984548671351067523293734625744387534818462349534046833719434582318552274212478903749735611947926682286773825368987865097115474884000062521131453988421691337084604447839530567823982018847912610041929295754446190676823272518324155619418225646901337860097728684990537134218818061634198959844036469311502534016551458113124684745434169396794671079017171721021878585881732770466221421986259119752440905262014274989551735690832213199646856052761961840665484549277097310680964099413665961158772084108583142371362601779803474722618495500430316559962642090282552628378693547923722154555662654660801003851377068884652831049813191130327298191095400595695375002702656237917471211470955780107226012350872152207691471933331386789747169614367344525944977664021282493782796581951274485283841687184437024366539273341962493491935141730858128595585830691998711383487840939299968644950094077382527176499610677969759067251117023946429722917423875958039216103450766422387388415396818079152604570378283914882769389713324810273251723837103360232058940845120838790549562220922490766754330305294340980339852030561339706201014592620492610613914020383688004975764172427913365535783681603913206349431398843268678524318003811346934592305002053486210229626574903814516540933359776886134492347362158544852142369518160568641011446128811364567944447109370707492682618733780503869577491952452318431961745280737599429318458646656430933053854596345416845392475014558190107179548245376649580232026813026721644272965496074988431410584219056198519467726147996727881905151020496185285756225137234415151354556152455216929394741919023362481061096193385267433808118655818531286585122734738622625577197751839775416156540818123721962532855406121918434459161923508610876855888879165402250604121831172332009776714590869462947989372829120844104612253634596589720319977007092771354853377793533725439265998833230259044791617292189682528379566873693899631102395007989583769569426345383594276995274961357329261153877105783701641301814021654175233973360868751640601996350464800411744699278782131526025685501932289260323050392266589101585349312205695298111047191862697835504833368428518190557900552736758354922910677411368442216464514064867825589138744084176683980058392558134367432018038385892070539419110443218234525653834102960468346167313009632128259525456985773501811736103731095103526788467535537165909273235930482104813395920712168435094389362492193426957091510791658987909760861716585156656793441020548155411970212955213502499898473446850050754933004608133946759924119677537052133185527051367456130391004316997885773707997351890126890761326212463088114466766404903374913878723454019594659148171756954552259900841299439929952148743471026471037500456525148706931496953703248086386037363977065349307023926219050983655630988628202651080556952122113532987851694180636467369140363326122561678307337407818860821345670492078688382850149550965864968689479176228875709474246560961817337028876327184749546962819608495053027534340046466711214698616789832779736292106833277513577709361711701200369452582029358702062479563241319049061061775121523111196917059327697919711645800979077156288262636325077964860701074710457830072306033655894597525877225657455592835957844733336308037027335479984399843582299147556757428554576815782348502403059721839961789156556384532998351719961050826719940747687425285783034206323865966242459162061103484947326774112204296049879182262445881092594843207673894060235131459794543185786202810122738368624392648205126417641985614649183521230604099391844644634397393547985856144482957324249318839869220929546200312303473613958244833962406186628265244078251095248873881984760791573446208556837396625108392796932494458099542827817433264072217789534018350840360499461563161566267051887828289140192326147381401620595753315483329025933220148243306131506396158708197514462844254897770697827355329970152803507629432103592176510329944896214388953522254983828217711738475741136316642475977671664778072446169906972759713566090257884208585268852211676396659414834738170241677549465433433970425812374397008996171479232417316381867702338818508321713226740144085936527370873047303183232621716329169521381256624479530059099172445057389566767006190118115145473993997509764663730765592157928324926821037074573496649738699906198107496278116445760949673445473350735966274539443126963723260671096618657249827722698339661305162146506374011871863927026459704004140861821795244168214181928793254485241013086685210435546330471548976546027024250083718956346198894588340868147916966512489443073566731052081770300973020514684516188425240883341674132632594029696226177229194088307915276296320041231952212591290186998587742601725755743499342061773148021368473398036968341721947660693266884600341799024037661624213218897959806022181467645387963021986820308138127417175479947897857175663214468273837847383640440324158860612145487788811598744401166149700074768394366294157443860758423709875051965622405336801261394715014127491184808752586896936452537812774168126520092355590996538560859803425228237058976040305108300862500291408836977932316717790631975817431905583420690664702503741860873203828250813357887732483874830591183989531964941683095349201919952996365260446028128455549059856035454318660213229255369990963395054699333974639331210699349555323831218165354659475105770748832461964928359948253144759574233541040290890399112461084311228267033907985792718146197514256940262745894004596805289497992924322885471104131656068694894274872017880596454806510191903658344277986147189871569110723802677170319867923024288357222772048080663149309429050496388810418877406017108260253227628973800250361009190024910387630659472309613039193141262096279301504547370788109358478557462125631494122856642475400395283940109409220669012517597964249227124855756468225328536334620253604307753766012137043984244768605738216969421597161791818075925948510152449983135907148367269850043412687478147398886086659094823902906850840918327102516237687377503426673451900623003618869566417421939465075414318360209498191746948290024887876810554956687880878989033934188305054401375330962370808617651567973907739130521172735246219898309332927193835907277098858231130254771583876734679685123436295842074161510485915069325326802716369919284780433055217387611025948845792714637860393750787377110754875373141479948397542352087691349117130655519485803306381027159992846719938488793796789533485766349461381394312368309833851492589537121908025943320475548597673982015318236823767401349730123015061546654052688679181562900853996950141333272843566288429585351481586847830602457308069404675579105450925295059570974888145646792173790727530082660763391522868524884103178784893380808696022370204051172882365872384038829927161112822196051115336740317047921428324269243051744645049237200830297482297243224510091481412391163953602790199095547466906012827813309438540671126975451164343569047658890015674333347904829037003843099413497682268144423409429930528479931069540981456199652011952771690874184039500678540202322077104277853923630312394723696845803961920571455639259143250978833959010615049866270996648478000583027562621405920338590899458890474151120312413164927431010974721108155019219835860802921683125524291899389120577335809099332904006163227772330960179821761848217282383011133756241921933571337200648693889454530183096542068541927831906201421485777145313912090828150216002599929271843200936656374547899166124152393916754102153772338018814564750062357708779776559704813494990277176389314882766939914800270283059096017683558092672335588993347229348355403747941759771079667531734347593936042491404505893689464738135000917390972294482343510504171847515205987062336011180789872120513565510596571236559387355974717798145734779599575366658452877930890454403941212318220335075044368306837324421983147989839502625977144693079817195738945769636549825343568899687522876081344664299528507078809221132437812426216541877344312089873151837888585805781546972295625038136393275452981536760408053231188494629852131821249832086117402804034216497858085819048531376437819179639771794805163359030681519113528220880938682274435502634214523979728003913632935317989757822758739380234276035628791151636069620270393941756369367954214568600043382680164774543065413224134767543052384908779990118456719467564809976032300507015994446641830470404919119373817407099829139763345920520596837839209974638149534222591674357562058175373225803658686952997706296868131959932036920220797477076315194973851738012862581353204706544049340034256472424729721647534155895151186153352538245060519633353122681565094766875796068413363787100626357027529608014640485953654430226401761924816438925021179903526197815142289159629756988982576261013192836048865233623313865682951205427255433647330821300920347032668936029447431202429237795473616043883739738708581809690507594838293071458924472986301719728625303018425694417515752676983442164702326370971290432855128117665742693310481919427930213508645507414880045057678939609511585294413608631767894020909005278742211848265135765831671256922189409263120120189840601105474485712294944852747431831183001258641119777648601445045425661796696053739650668303055344434300707924142030237738580305449715167240634952022734869245047302487848236692389837297586787329623536946579366915437830645171133777831634970183706519840815725268215536087645834126248668804601499091785272636247458827319468869523609414753118813082217897010859801968211257224151533818580182159166407615227003136590756939068389141799023925214941147513542313933159555281737190502546333084924390117467400769839987974612511116467771670976220914214093131412793872847323426959638988464650172887565792259216343216152763284443453425448779697411339445197574651907384304085718371219628194011805847005106020262298855427163738479844147646407297255199847880362691134174614642736659395425353822275062490337096711640674470650749908511670580303474287148566326189599040763627063044169876229610448597017069279571319139548038058242409500107055335645198756790869565152042546269472811523871612011373189233516333110024688021911076105615838674825192943308083420067975954161484391629247136966331787535505321546770480018022665285804888442260674770059583708064539914598811912218412799341928833329748969308200539584524663126514025028906599962491989432207112207328073959545438008208727763847358206684030846990452853301957649411594381807297447914465390988359608510634067243240866537860423983020839865986644807912860904830576445875848866658796081393973002560190165365991893811976095214785413553302852229065602498836261753253514589836108733260012297002017265107593209172144867370494750444866102922245220008749690013760121694776144563249678596846283816382405856986431033963423179759890666310087538126507940091163424227645752822788707325376595841589777614514926422803995436360860988263661747270800595256111093765134050962642587920628959597970698675778009294605421491275207055533424520061266109922680682175825652751147386034673157129313061120774544012176982917395561622485617303223894942629400392499353189599055970929319729048611018083394195990124390717480798174145422062169888057623247925709048161606195313639621893467370557691194690940522833344200630043163845159195721515140668430492319375719424305964480797507576439196513414453003822823101669000145596672770075819079504555958637842555713336783289750529137287829075243356660927770539278793606545914019021012595430171884978467112568105069523671407576723911280213648703417128646203370323793873746326419621835617957867530832649728021436897619016652179221300146206734966026748137136131558474302849923499240987666222070238671822482498432749689257058971406230597274380567968564324294055456380092473463708532319758803180264150088274461209930513556719943225234988657767880747272582758206021094167531508568025611434837992867573669734935463045589288724388035703301986029483155168737015262469065274209775369946225769819615797756338282397197854842103846785063745938574750274269982499835869473110914255942442702007016679275946434512554515714767710520876535580498328447524404169889771854876424242787406281183822500979791614882472923158424819290863740469115751648672711941049421028663977745530670022416471283143858326118692406198247118528294253029700234310060483859379650474081938108611800195535651883412786735971472702717643565773342868636144697587333607859564342021663010201880288711184202283837073476942933994464158587471443451574463831137290793636174618434135973592172796355446027236495319895082000050862811336494067085281464285131028051935300404448609941413792851639510772418498808979967616301966721987270137063815603214659081293424705353635744368974646797498506255981928666046120144134307571170239645936011343398470052437737464355974061853081681633621978204517214358111828116855435144482600322501209953159507096663933454159276337832131384784993580159738590607369632892544095744084523669734607103855146913174013641498476476488334974945528261744880174541624262220447393989081592242849918427643304137173793906150947175039906711316399535717110237315256318634392501799748731971824897663634525351640209350784209626697381692219045945868784890005092869597879692044896809443370514831195305510660802881694260683887037157549367430965730606743046778259629328070516234761225774528103014342918297860792642333182232353961251805182173689090707535795433117343425284561455492385031299738954237787027581407886040974563537379551190069939964463207072795187201233097682675655187718337129218386695403911899577923022437603879976948096094420129572665269598072092764527368691348732896524907155327328683631075409875454206108430140377884469678921568438440773995378685265871146664715296544096259155854099690843195406883690405572616154995775760933541494985394270303544268255793687574500437631304790754764769444720189610911872674689673743499303109074047396052793429557604614916580911413351543298858103971080027949764394273580672763333125910764758655540371006894351517622895423135764127767389477964099379538245495331898844762008450573017916224519377778311626354414775257484339545530140005619861255409155894661849207517330102882492070355506003281531789300577063229312738052561762004679906422378481824664773246886991676014255677091556370833544144881208689504318674483280912185676140400036228852134776497616098164862713035086628670207595141613855361756794289552340496297452167461802205738583653714348126398485556581513232078624957218314955244513595909006148139015370888721068853927771115545252158649415290801054984160653547308399626594577872756689418959427827566962463981794092348744249928305769580115629613576920399742602723057695333547373288771665256962250189247437525404857210751348441223476027191217143301383355006250579738061781070395529742142602336467104463510118408012695379808121584898975001459065607469381311441916645736715915002349900272710540223503495998956347935378225242524018454661848341855418806954100750901127290645990908571151484423926095339573514433506596519039540688396876642851712209478279178871339738294193520917925825688263978509071166406427648082767996747463510753299951387470492070206105450498628074775184807868112661316972256474269831204350616723549095661486255732409217965110964174569592925126428324313021096818296031851993542765991896522347311284338775885172441794737346137004818690491306927286285530988821230317781045293502515896012508329586990101654679917748074563557230701698310783119875146271760342104341549176068510331584555104846381682444546651482863931545515985022649773611659419673384436161514109974446415746732330085025439825248739406255575130020597744891591539529842365746112668362441342689778190814720767364698184596992271155092584223419095927664268903537076084975568353492326103496116486886800909899851428460000205087699807275391039301053206459356611621845928151702548908306563939419912263268374061374522980393505549100183869197146335345316711105370613134871117284528909957451870649720668163204409939177604413852705017406806269922623432957034870573610998084439869584776055943205280584166484516161965531288314464239674876128576857687436277120181191763081435711081701314644048455353920899490433530517867953124387624708724383628623002671060621387589812174607401372342132768358144915249685713775979228119166305277469864127948162613205937224201013736140170964009729635142143387468262481728571348736850027676884630278444878554350340157654518230133799447766141834830573367841535078970077040684250941703375541894207238218132359215140278835722053106244921817603697868152632800285498879453500454000285946801852530778821280563550027766929512074705644263866232060800338953746956524065450822432923720325682669428807899729346850035358909412807208201785534297270665011094827457534397006435047909977615385172286696044380418596318710130320742610897367203602624349974728288202540041422287770764776202478672479072684307220712181124635619311950907382281048648018775002009542899986226443761685061440229752793928634940852302956484669444174610429872498685257666727663364678428803752497164253286875225247477318925243502866418590101714181928614809602803651902008989810468504630266079869503020636267738318383192364917830631918140577784188286176865826377849444299738685566102514057026287086937456126822639821113092280918946426646693385707200016284425562532235297223925366371391234144038852802476156155344489344799034508221991266980489903043210334124014483365163914183690083923170749861588095480094855633965796911314348311613766156713582641143765868297380167736831434985160785319783196904224546181638640812981285590368646192183474326141369039780481308551002472890755568866102533110226853497542349990032449784878803105335743446697286367054493513319728835545908371228433824693154276913387825674017716630721903055254051676817233224122137771132221584472640789676833992520481245214766375303347135481435668069234103146348262530396178675643839278176721423622608994353188778611597854466439852703107773571357970444537180226574763857333158971536069340659459708052637366839193189576558215113496974067341167320071777618539301370039899366991251292620480915556609025310461919199350235150301188740817771633905339946300763877844199059410112107116091032116183590223009080565802510788094423228831123416879818513784558216276852098636035810264262782137403858924139391500827985243241327377067632638412552339689924107913068521674859531594535088530633428698413459057932798633726174093885630926396021135826049882600243782808510694978141382776662489884881724772441258692896118674119880056492620579316962510223230100474930737695062895788357291334066156355291486762475893740462076942836237472990351059597757113251026686364039232764716750626508604092607137457825511777035845867653165640751439750934260130771245674888780771649330510055475116439975223458485105390702953682005766324783987926966172004534069532269519619923253228919015681860888011055229029638934950564437809486701624122035737253054561702213000705672417147614808983285892296601074553002302435926721192807844160251583854183294653155530834051613298131990994623962855095829977446660412625330029800983808914613550232655715433830002399636595480736367657832492574576906964337106151380815250490621861534970471292699041714000089233447011317149577351092845944780182868987096530964939155800239180499143374788583645261885296832549686634769644390005792272084809023900287412306929693732340888075966379559655349685823098932356059669675140609773185892299007370256520489144615501056175432344816329932094112446861347015524169945551647442656134830230895428210938723108453291847291332514478783992209600772164345778560220998058670346323018960686482307461368326753249608515988265200395315470310219089173650112770927593736379416500720785463080929488223235525774768208556489177237349187666903015994617199338320494427785274620406430224036313043032438509897265944440269431564131358007604739357759606356648145378045859668883628628212204459663963462022110927950351690406422209312575772482538478317875602027384527465594121460430352322338821788124835164066544027497257504408457171891737065223454533400660068780819046190779596895444244242794194226959895059627967003793495763912989682798207748779665481060579295163867126751520400702301102021944425109364330538325338417776022129500100360699623287659015246353588386605426751520252564427686967726088090334599096575103557276972590585872800313729612509365500778891422983808319000226475330074547430028378979558360233023079094799211224682343860657878212352516449312197781164598219532983537578222691250441752687369619306362207539629492933740420195622749625154908105363320501940498697183544734881592080291328850331417861434735699882865214477095332784234859359818360777148663971890571537344962068607832826606444051035073870847721818508222451732180210616626280855615156488957004839158544597176730470886690793002689394708373756897431160273379628280462489902125564744192507730230223223784436299902632834404115879759736121550849645097329030936826028243528856690912590326896522930828547470113730916504070910293428675109942059020414356341958201748731850714207860929000051217718548501449670413733168855232406604140674038098141115859451069074251123330879094120257523170058676618701900529555203049786879185658742500522991995440351760775602601236076852763518815038919288873319082174662042448672372233312547088687075268249911053528733223866132092411383649517563640797013223316387593522348693031940602442675475194168080339842426577824712966074667841397259451277693330995116494015289790757940674591317116999944698429561413064797528086056017009370498912575269874475555007506605253197608639141662485445399998854200995695709464626369569566589178440703122498639011477741740398567156007317390613599545458484984049988334114363840513853259869138487012151405637151262539688833839304946140942202968941186713112476968180990303481198849489482688903014955408311597371372913441352331900927669414121402853234932233147775905636334338176966269163247764155352924197784228499330834790058856800794557664357618613877353064150686920774001643476329590779196282486480075215389234962538189246423319440117003089163382929759878530443111489804228815168825543677686361166219916724528542812948385593703995606322385288682004843120905090058213735005636835438662942496439069522734393837085318161472054694736170086275451973769270442858313089819677992527267037060568634060504157906596961099307899814775933246179237603477623287285652258806018361001610055742716171502728125560321073748397683211020408316107606327349773703459320416099035738035928504615017098788106760093048288265162728539841299574733376397084721031952385275518342872853255277554935832262405834905269111967347194956233706980252584839564709444235291589713432107439096246434154858582218434640197360981504544227657658861622395119467859180653289301331402677827112168950129858633013688098247468951025944190310127323285930697446168075306948527278101622445850867586507974809382389921974307971591447414227396222407196444637488858752029312427211406870476931708776033197436138895517367331198627890081678731646285884856531642435301949047255008690850820514777179285074330283546853948786894397181286657523104253757819908560299684894626980256480811993644212987388218848864960454854724440736228128158123202558415835633119825027198305606316965014969420322666190559717081579015930260915990291723671047299228072551706361592078801509525793770815137849413560687927818575891729018219054061866656530152011042323981633852509433446284543424949467155573328948225690862168432917281732921691972407164421877719998662569898605053726996928207446622868160966937114731987890289236486977732679920811192923134883674378243345864405913867897095112903471607110042012373447848548229456796156734740137984222465416430001231631356268102073545165916962924369825261836157616185270850870202952162737682523175418775499600953033887056132599644419710477627644375042116864503817315793488012067444098852502936022603712438527517569122205733842652359685518751072964044288047380387068003394392623825634158348345950656940506193754689957214458877421654459065640506106702518051282033500581096391868318171730558681425224216598255704720609605861366738760545244147433366212507365294287943589869920585994116932146267937781643515623083215658378735362842107053082607399372875991117797721432629305673540536302808213554962844900569506177666307319797824867726690508241319057145301972598619536855931055199469118439743114084851359969262737375124575009495330792771739684859299019506089743091596423827324273045757438684102659193118922695282538915009896652639308837382628777259879148962593615590667368295456283589896086401068695056714648569523429894943643947560628220175956910083850983608219058609525793166789481279669357526293115388458095526075359005049820577062282049804745693031840660008709060969362624877729834320483137014029765406775847870983695808189762829183194259015268820760582091943742076481272541894035756961681695288579405243769056716519003081525253960911627908665055143493183024429617346852897636910999729669339847301966075592431113586030128079890961143833774709595646687641245618157698460281566069311603710348989398842632718344696204743709855866190508071771248310061737458996000562723216371377223932115586990186126192890061229315851547022265527093350701732054237760211276207236834514727013807878605004576280960222521839740767147368714407326516388170337483198650369210357944534944707737076128983997297512416178871154420321248536184741222070358201844585057812930497816697365180289644687284117453398832580610432937837009232555146832226739882347495648985021043787516506551214177803440974517553082912630785236022263680558728744179529839612996236457419549398557165318659170738169206225003328490937998213094109914660441582178866822572140331747002713181199388591024723509473357191503042917494981896834957511842160364599195004977895432421916926580323409759687186308270430961687205322328317797144610602725828999987541869842627050503954163114461121190342292128876908928405557610910489365424751677936046568901831734007425355923494686906858126050332151134223978937771706859010405940681665796722435422437075759608609652398584562401427536607854417994568714288994988795123489877190678080264840512489042926750773293951359183015860062657259163738129983532137727210802560408403472482015007998984842451346565975926501777445561947311820400195890937726029735018783331043147017925333613221778124968328734074420043039396970747613978666459253755636483224721776931135205956473756198923082272521210980047114902122143845074087727760115820169190257936196219053202875463680382209588124693338925333729575573155620200180083203673518361613501637728335300817209905084117856063749312628015316220503988212772158377756808867052575651399722182172883192965901831596958970456027700301480112597858204282529822198278872865746848388959115504684120032278255209576978675285841427400158816570023486863309924112798737793109386854218125268242360911970344055473997470655637882870119765251743503581914536640218588799341918168758528963387534013877222842451582367951235260511061058266985674978850121260492932193704521823733526940260617128944858226606665266585865784264711999308925842644957668371458813537844581401643814281643704020860507582599144529319720642388617382673729996224986700460855469556711377548242556517849643574440421283019630510021051938475007937534775839610120638884445853321290831865189171573635553081564405896139148189303316745160392999989172639183591216010115442845331591947414571577265123727434536231445204753397087811055207673439406234624477865990420969973008299465868509016351293804292532828289938946705691805921217204311043067568095256997835107407433532095397177191421393579482794858622701453983945599712239925644091018460043110887547485720709935769640394270212941990209404459125118457072585301040414112199337111232907930504345778976077258273414383284378640704905574465174817470848443384238183339150505958508725183784667529281400234734012564319126515161464257446793730325702929821444097527647787979905051862588912657390531288165228072783697185415125476222454120304338627248415443915786071046088191360489171492598622106409826642307230855532102229871272118133549765758766776693191056907354546776613660873607524124615015447576191566082306711254603166814904282027367968173615192376532248425361141645907667442650119628630600313355403321131499891789419513969146167912534172830581210252349037128141444277102926802491189142476281671206625507502680571075301206625474266442182254614515254704642790862201205948635517739620496155637963966862165993183748577647193112986407721461896112143514826891946205852374693879556239786675124740843297945276723758414495096889730863225225651530170860734091974560625279546189590940662724400083351252719350221458522906267468564629645474883517346540303714003344992663977280017309356228451000113873427127442984779410547296212537029164952214875682354117592793208962444106030927075627672696963968328793704488297560680770546659570735384037703932225278333642018704014070713039425153231966556627709588137294548187493768438534940996807689854728211575553391671751442548801543872604426522206281596252796862033922658227432887883730381909639448731528145072241000909393655880615993086104943379464329816716567279034654850331763621048819279446179203767135711463946529308499237484981284079338183488660844653230276180093599725677298057616450398284931438328053069377941249949453372752902207708259627645236575732582198111108847164577277551346426440480076566516768240342456853458498530659625614707709580986274070736290864822946730508191508155082419263990314541991489492615243625190828684554295806156943374658571415543394673310847015439545073969046529876566039346370844971543228035419704759857628050063848926985406917785854028694988277522526728519626980465168972980972011278396323183202591659241234249484304606655929974698254358161976863053781404975968709566358700911254588977251093597505677685201090747364374285961394642646097948060946051294320817910988867943903153182993500393706588298882145914596237383619992779391473879058506453490240394631905517923074031634176137610985682247133440510813241888664943518302569076620866614503315268923430038486128362785431656053421458686765267931509743902683664190420659244794808427793539883107866925448419076472966118106358149445443093899851737164399897018079460743544213013068636937359849241566026615588880906319447198906156292749021079627509569634810372378231503341056882724883992652582997222047430857872194572192039758429787708778715388101977244944999621634306232089130977290432886736251369020249185965698791530113462440544251164307194609012006130633806459101584827899551459927106714693102373362969889986379781961484541080506011854865133140926109020037137757166344640841073495806590091833002191981664683885462298112578513332731478853687873825567127347043311544155217129405323099672771821283411716910663267466966784909770728603383820997462047337042324622257246896055788309190351620225254492786977705672484126403443586127475160700962059632928151204075365276792273599189700025612297405758474428176822678645414678165965767219772963977254538733961100914972226352013251779500794346771344643258366030210498558785040272478852242317762142739766248060703244994565746364554768508505786835310828218309324111707111728720640206459687110300700614514827741097997966208239765949979553215644509477311846586150596854014206788367605304719879040809489272101471125716090491278455078901656160775900641923840911564637317490269830702909744980813724955771845597720886947253217607985722435387556001550950294020941686529509861950159678975364913554047400120928097398041987881266269135468633628559046957649159199188655281797827656331414611265952130322856808772792620251774061610617948623404554767808774058336141036777728964484212201939407556661887138097723808189644283927809951720002059875363266217074051271789689088382362727905778330643024567499655269289897541481054990247414255581355604883354935080419294534223911060833688213574405635810349008946696624670959600264366336312609818788013020904039386518798439971246469649105849794726658900821479552147945035137357807838357965386947122161250633225718466876247925696629701833020208069412507364636616438404766713105400095521216224652548917882096911829061585514818266378709398192783975858223393549683100962812587637225113342210717208698000533446242932579271437586590666056268357077646261541800909000105323313247575254625473934830744820917967794301973767638396348561622367295698929788078100281943695990894365187047084865555010174953432012986192917202292748835433190916080411684778560777933908546708541173893394264103125412576820783526698860984918244184487882214904237960308586595343725956020455753109846112377805663992791806732732471590054406503558606653282976218742017659125162462108661194422168237835714188176166632557906652736013697618470481539309497396764609187919092039811314656435874737443108607308689584969632476416032747258882040383844847363075139110666501070551874172211150903865567360943313529672575856973123450300862068806491623074487995105112244090177638449328544426442362187436206774637000856433386460507110801463372056831810227294448941713289699530266962960297512155594288212613330906627593507996478225281514367438296482797589929173918420236094786066029594906430901913594492042281561677667589448575451509219167735633831217258359058605996294431427119060705376098371106727664803248291583053769876066497091315886235333885852678773551135496634391962605540362802430413736544700970180092088932903116300642060328679636611874534884582673131060152892076025045236986189766216643960944035557042303616437204825706907572871775496305522196231814714356393052654181100735200666470250288587575199660606069375649516027768609723917910412703033600027882124171842791001687506929847787548005524391972090899357468732214156632486235728904322677519491323266258673996889467192704708585924016552578964602559840172491399347150836075924206064661355630383195763495413494421334318688227076919690327199082157482860763705818392654708528643240358974310050008626944516994825769671948376183852107702276877693313836590802292415149205401939102930015939149086428154332605509540166316463512712212316267445604577233139747660281423660109277247321831179347073143783911377873678685050003033619633682004751694654429338149063429192414858859696433830841674651084899417113327915053554382074415654664283195813138119980760777560451598160531081180050463786442708299573319553974997186524658363943430849137654087192882100630673310849884087163743956157906477794335100696866766279847725780815981350168378415204381995273185664608724307035163210535172940462205678113057982086481468313496332422631724220415903502403131912023219617026921545366007243346863575960700506643193044569901319316575806545916215622643744514007002472959920666850913379719415132809953795094522407121781821474044404851181240997913449855144830594933224815322553204467808969875055548148441068953562752676732815949745558327138048229228220769207382798333586108499383268214585137082759419592826612956384341172174549154017483452497458903366356460450998029221037566283467692862844273084962847140673266166940633578480265836528460434729040897968180209133980466575745924672072721433898007189782576555381143484810409423386374538659859207620298000305632945146284313017560575248624923619398334693753942473655475767472017033265500352598523252694600961241237126974279135415037632815688950540843313866098785611201349271443679398915953860487706591812680748136711574113431398899577505316550372127954011608090938871006742543874116054157265540148582735799201054147382000130572754275696088298162535846245981245950727852543590166209133040854637186390664599884273267376931871656218236647327598471051484281138066605958303098986805851943669016706607750046602900883744212286553831122486019890556985450661165868340961674933534733200051100314487016792100345963871896512913342297858060929090546256139521388981305485953903609034272674381220534313926914834837392514751751334311126150292342777101715189746756637926973887643501386622445141597652273061227936179648611120309130654384960366194344129691598526763468286583511258990718945288814097516276105815039236131734947436155758007749017138009513606453942443807706848605126346911498639628892393629497872820979023325828034573868945875182879716623251845483453622746492251964080930814730765710973542401374878802759890316890190026128272330186927141890258002972395539704138554909076280819852407923970404434087589867340058387764033370781836444537784340912453427666651644467181982144984291645584201469461114910004668211393762143603355257746203250471885606188958095570805310718704258020854746966602033422397499329890995632023633581733070719424556258050612301542297906729519126693855967776664217267208764507691833515177905951816413863239069068708008025398062494563846038763364118052344893018287851310228689624624853257132284197883436968467267916537256932298259260046487956888235683229351166402110050639201956624336619955278711335063578869140880917454628120741850766858084104058638139267084076604827140272228934854336252230612912911564972382149321197966740653019968568476948236755109836915140025363622730006808273348917882311125660565019669828566241627590812472619734990016654071572108002933790571597773371286259064128665829168240427872505633988261557948941918226540215499627548372278826974889936068424087602805166760697656138223839009519383096673264583983594268930629547362172612299347209066644302383756127802486033021789951372506389424299566989101846806341841050442432296553459136204876432492456793372763180944818208703152551374261127687236248368959554843815677808273144879884462843481780760881868503989588190157534115407650477533194280224650756956562057617947674455928654935318856836570825992594992862268454011350721123900027343175634702828371160816874286928622245743442479480417637695969687172610666723567007162249264304404379705922534323878693778151885092974320437193011721586254881476439287283520855465644524809239451310635705862165228387352923329304002191505557375858186896705590370061652951187449223386664658576412394409028137953874597023684987621251276131874215905093954596584210987770831601762104465543896025686928577298983382033596717415429387318890512907054740890443930704224445433371508989082045957212822056066279203625940314187824468794954321783962945991807375465077765349954086391093396896346393067964988877921193125598701993678622760053262565515396634395380891638867230216032630678109687138264884853337465093578301266412506451138867489647518936612631828661429551992433664978110328755596303788995304596023805635086276468525785170876398056785297105329596983300008141713819500566800591630593770263049260649721103001145056379691465383653290774891263343735344928739000810259923065308322487166259507381759364236766584309791926366656120091944295437648406013520210672389294322866229853075043448661875549107587678462651765300503876745158970500412637846462176140500243765888346787891502398592006723377030437732064243621248115173179813561278201446233044068864991280831496523615412203737526868183192101899425883156081571473516219869083999242944800997032786801811263964269671526046207560674305917715479896769286373535761688924214474507885848342745609683324178669392536552559557904180152864823467872450184766701282006623734727308851193359171989752611797185880858894551792493663342764132863826295731764374113660942708018368674502539078455666437338045452918934591908423952216231333407160738253642157704317861477698279040020022399087676279677780874823454805476570145644049538877840412000603920364869764674598863141287175836785286547954314261834509294335021079147584653438773907242249927136028070811913951432250307408263655664708149591108242656976524235991832560349893258246860906715157535367193367412830313213053477481471957451630279699911548872936146225719841772806156277719914742693392294225558771415887264323842030177933764169675779786504725971426575645942375968411441581873002914287837368140340111547322469115930413026053320895560199275237345812950367083468609722136556868524441162524591955976439313035256076810905049095419854270292646730889978228919815954045923169120238876682646252939066338294763978768960438861707052927435376796685513566217997223896364092586521176530758909216137250552261903349332581218349252553336953943237825239710889497721668332344315024179083283372697396220242375486860128607623358241865909754262561381257995500677035914052589644725100113046237312735926824967436227003673306273365554664396783689761792154794218585657478341536661422820129446761343707821649044264219635179140246431648809344521394454725400980804987434112190974841451761825517417703209366785003502188334169033915630054794169959071841813723151950731632596481311421156585670248299622758749064864049151946198971432913215448021425664198423920936818154529381514240123162480914900835001682314439392279316013972492124369692399702179432803494149505227964057885473474529766072119070860024067921170186847627441610353851224321147915017281047846792724700927025569668977355353521724794437707701713464589806747602533596540350688576479612710074823045337292581687388490420751075926968803083172454781772746888264727827999620839695513862230405774617649152303895675033521543994298207161132239401497969762338339031692476970122351415970028439732349773505241339726122853808977919363639490307147674047899469310512857857315001472590627646644634150288796572217337437641570825137132562670518757985384175574636581990820673931910415111335856560946618273377798044868339078771820647916228650618625309064275908554660024728904462178508726175188862053821561434937508803600081791118246747975162199658234614189199807525307694161337875206282861851941197226152521744727135447425665497927108740153167844767209186825573030840345588125955776492552318987760894635626595957605648691876156923752176151603316014363619967638995988285639200711183943740843093357845313397994232171706468928147545441966666555423482669676526003988000903879047116113294964731106477650218702803676515974045836365415777323631935125479044620808741817612372505320673081897128891587968374304524006496816334526587802668599165851759670684132840210065794824277891699565728640907136026214546802395918915459704879024913937700455969601450004330294450020180563961934645245509670920694864936042149350463901586023027101193770956286432428444710854820925159438091217035936735517284993946345060523965053703796371426956342656011474010911888429969638797283014663114160780282657094335751444860363378899172570430331642027440150240455577951179686256777294334925694837391928252160929571319254493891236749852199764872731258748798660670711370246953547432536063403125391781911641808207846808775381459888861831369787260119644958604907098084193371130553851208445589757541920716598723310094036675840820481998596327970341455226806111992837995257555807651912633295675696573384767792889867128313127148193397682465353034492363084204466632091363618369293391669751851471524168116814577404094519016163215878439616356628609577255369319520755472187893733906354074446410868172200947359676769408948084982139728414446426127260601775493710254403083315872934492537798459767874975441279144163986249525681377978893473895187713556619264355839634038138196484039777843135998902208327936845738224684869327138814634534435618193767338843863948808536052001125424144903533132815835271033140984911997783122443555080332630234838636885690777940391066114687166693207428244468025553061479158326544334301469257453954615716282190844679805930904423470131057899786764275012079993257878635712970971362105582696611064665286181347339096218889311292468588586388319468569206645706148564028469863506303485838453161103624303502444713468346178132941912736422160645171172068680322759140453079733579100369143222931388126631588358593633184621495730951461821751500783590088139231512615323082372881101487167956365288518046850033140008283305326034016343430591741073015421434188659967545062295438697190003911826383029586590288353364340182946534825724152195332686546186870386197649725058869332609260265443113133402031513106338241158018227379383037818768631386665848746291754111770795044112461292505675816889152302493413626064444822275388699561953831768301603040898008953789442668577447163527989494879658038395470225317975468597019725761574205055308557870720281393971811560110901109925177756272353955256934520948209168523999564576021334981555197260283840926008543740540018454620463761234859072436551415940603400865139649849191701492905937151199514812383120676226502832237981424691356488085882870269200398464397544949247142460494747421936872867278005003307287357663395828515857808239137404473857349772049245875250949014448472109899057168711860938931830136057987580927375594428481614363016328397658679812366453920801281449269988123656846995137505622484713862979077350372206924870569537556265950153352758488833971425104675249433973877516962649526783601521201627829791644035846085722115784771412136205277428540529616194018455535062934486796298243854969360676318058463047811075464606034349015106435869525361181699584370191426325183411452852058191357700513559363086498597538127183508023526411940348789123855880627720791043463536050292154618243670779228651468638664358739745998258093052076496274808488618357788371401623036825891879167501093344124570932688901840739452467603449173816848615178065858768121873009673907736775885999331182480400027957041066885530541576906333796410614668791873633536051557728423155429284655253444466570451194677224549484056829850230377167969011704799043806650354498295236679168562671308411400070704510968126387415571254780953210645183391256788892360763827855885598646882139528926664990197817233535489500415830076604551520839425096977303306268497937702522806855994599007940445519717140406366800032716472111891292187778167940709682539070110519822046612149291249064488954185209161805381445836850141918971082111346485755716717339035915722545348329210478945197195056414602497931092820287379512798807112041558741208191227747503320751400681543894658758417704199524614012454608292439830928356135311295638164798334267924992639088038066468400153240145818541976656861277745086750274900030727697116583954965049972221377599284493939878272518470196620834768940637531860921849465707218971764504834029047801566999850636461900980031007389010080096951229200386830684131266863597248840423558416673371683252635242871045892388430662794546015283573521646839537502173595927372897541107847399744380296751463037192031963101371471677818692585606385459903209696286144991624289641794380280937178270331291494692955152891933958845841281236834982554921173960304645101001083986123329972329762815559386642187831142560331534500335899212189089867859862936898574030596060877013194625234064627955869862422674617979713649152396100204669089603013214886507477372619975057397087510603949910031972340871676624186623618454863776781678795324204269819966863552850538540066012196098605095742851890308473063369182429850732300218524498828723813162012985978702132499866174301600810480838928013808968844149804420016802672477569078426197721212325626206991505503049113090232592955628018658168170936524466038544822157526206990472404994994760100307811974184158886237435781092427561181839197043220181529471078262458437716584880703588982728206699514802377285161463020577045477740952537909570010000942333958379373689599902316789699140565686034766866278353642396227072946064481020145735977562879764983521085153662303143733906398107551920343981829950722183651127118827537600459602282435841164802850988898352342006984604747892119425817368979084818005061698900377899288704983156322337326864138215133745749380219542823717317869554477958006704307432284978264848211848362902790085524265203972072142752143134251481485057655749965618146697515877729071823501039569630936533508514360705032637421937724333235908664948311330625666081373635625818070994507923167740001643626646319723321331747467362284544419495923204242295367588491752937872296973716332926385602943317482023515614307007689770976946146407885411810542841400596765031759852436671772756933320803981828895478746995121716822500364624369441883453904795791223272704541043232476088550622014196423164802172065205211590297261268101006930373010195349134122013662255751208043325681014492975425938410394627612900796978473108618415784440374957069761131242243330250601942448774769832936318498503152785576875184521048654166351522074433787265749522815374362478375052724538391042822000675307742149078674648564988243216980185326266416148441897139015039782653165469401293110209866144114581122170615030001207885819001992885534334699875640038510681523467522049310728277731977192935323289147999341562030110998640613653794766480149563504005785129868918219468138212503718949940247692646767685167756721533354749385831127149603183850270815554778546754591551803392183753143824876209247058573285396728846927995727565689100950863458935417654015370918777053583024866152930466620991044522639229891121278406636487774120368175059214579613100099993751617036530597425303853289081418718785658043598074642311106691159894806657935014693992077335334780794043422353338424453716354158237925441418330701968862588995160733767015442299180471226321071156230492758378327403758734168907934219991940934317831538907124155169062548826717565902136031234409823207999931757023836329695156021893070205882374289030307296085818999058105934396299949329067716203793677928515321997133241098481608852226060512954379005889132451657706985951106479394915308499016571238526713446631185919880769213476180310908491479950409798259332099371045600180698834983711633440151608440635557897780582666522853041346274731609380912062474582893860670013759411507318973584239050531497998831357821976225225034300580854544903061068731859834633646245716796856289743886911636626979358659032159118035400588533506023274605990100332063843324228026705500752286599212247596462403852839355540601666038118233834610742084669230683144155609941785651332036491582817235460229502844785197820645740507370402972870349914060434972908809111730046936364015814521851476947422754803726558258553005863111351932758617209823184802020210085162687052956061129171810614009102620155234632321335904255647611373539438462793068609387458979097745902105497616955992239733571486002700181175557169847428374101350072049681923244661877537539283400490740226938173448553966055407340000520132667784220467541134201953033905267105154519114233449530986926013494616297819315166366527588057875045954969972557000321901711348017106506342997371099865415073363010306371447915899130264699718519206821605487744810144318603061966723451260119609115371851875319224198239919928622334178592643971076431547148352723090797726369220739216175254965019711039138815044383938256979679097905829982688847221037792294560682396231992334380127307136390176836831199731694026724167583294359665689525119461994443461215124024142533874599160437018981096573450335657587259950206202051269866267018761346413168283392616532709546183362194766840654193833728770205013172161579868840943148131810125456515577619033462330509803842707113651620256703840732213776556976456527739565903540614046846196925616244808158466567396638856217954015663881586517448636463924529017879182718762401130782228991662627473503861076618323438903572307887179553995211255328806709959862067411454354474873847532233761646306167798493826697585242019042603852440629037719370294932637993662401856052128967250401543898182805379833198520484034080001645232791786356583624498041808915120202126587064960402517315372078960262704565345762339940966271021593792385299895017884812534061950990890387821832542923306391582199800376861873459587269996939711327780392999046044756295855903487004244391649515429117933420001637703818071687136937886897811256815574526416936093411240604803474223627130702796939939534386378468288618408132894969877395179895458436403517252217448131477153826981754453752795136678015631743673802572440932076375740650492506580229807894598369464174334359480506551351489842836830722336625038407805255960735082783989176052172053115120655121766433212593345900226855594658882005525023077687657644618261816098631132895466387553750921651304881360940962330712660002023503150475157695440354342462161128593224630489700608898629060916938607562599850011211570433751366804131784615925077747193729024900925831891614106887941258447875977198633027456874270053903691270335194592663859505066414961240496717707857100593409455828602604902766864997580914466771458808080152651405479177355140300651820482234742010510494600645299076354174006072694403931937720364032932301499249575841816655729103739607183722143482064533585143093205001587978297941773176863709020470459921544015191341303095258470910202638362174421165365158334185605383946458503152527023057390609217811575762333803091527813412947117179180065534753723955550179704406181336616167359066635591652149349915788546145460874871804413999356006205196613642248018028491232788092536124525144416792872651165269623795982406941504863127519907682361261134617207271910306596786863879940958385656638317007365062793545790278096205990543546782235215534109486991008935498319081885658302172070571227409255622041706147427910463292958961924830192850652291038428473585005856015522938106033213068650015664236703794016473138982310948625191452742799977819039151618923601225161266159890676463968445117736967991992049621315778259570575296188085024318509608950779633690077482559335142530482497195706480686009243141852192816101613347598999524031340223961798508142457186383331755302116543761603052132622904769850961973685639148778869401110635742411516529964065434921536400006213018802945088261789837797528463291670277531141221742243637722913561710298189837218467223865943839077646417558509190755299476255901049156442419780392568899904429429373320700825074253061553230135844121989559618434918439988437255220220358221987720172360704678166359570801689465215630833923785533205854874647446293643605703748395650227959620595362450863760532429427832157309897738819814565460443353372005175799118283686235661647872807373451868506497761401943578896491296272524940218278346654559157549544762595946068857159153834305948097684169452516093654580424915497315542093976077567012579443966373546151789058242309338304432488931558443392088642572073756471885620440527690210030136379003702170323425314519052585875039892537333963645186576664772198032326946732205428853542589579999944713182320091550421410418003959906561129378205553328911387844789294255244871014330482202782519266131069335452331099983486087529389654770956015088921253933992462847200797515042097540139005321421156661895197213670538293790254783660369511567653793481530927266401400001297284300962587012073689646029143339546813111387572809775284688880041293402308368362543716979759260750415972975957203923170426340317000771739436037288165272572431525202557153379724696620758581288994379263026740541996217722695454580965034261530845184979391243639050713877781536599479169728387768418994787406977533312924427525161822501617626166306017509972246492936864900718150757851953528375471255559297049006052613279420012804867841337093268405848730546350966512168531086843119782561511935441612498824358114725969753875622224853697527736883962692767177742819033235951173974819457177151791404732155220399977297384724103738897450649577707702708511139774728647338739920566684470870399306153717955460866104647032488839584724400226076729160631778277234468732165190519044367707801010187797389557319882146305983832632295940806041643012558448160095212265397033012833889512092555798873350853376029573046113563162924235221807625940583059336665264433206868632928322022318461239177280935795830694592396819450752607567456001954913418046919730147896728347406704170192851020921183631488629066189353194654273219187700742363827457449911689639516139799468558561492211395115874579363940904932997451587742765898787584774227184987656500260270573735792721322375590329392202868809019561403854472835783516890399962933738162049474629144066364935116360081606059199685251414536700055105894176593300027982367091892147111108896813809677889783151459407465362634858671046764067002397493863676800985929203156169926875462564241369794361233353682080456785531840605525197564215034047756100589943316409181004360506087619232154040605259033528997603356786969218801786306625178789762682260863131807678215795911452093324982428082253133911995694862886802479655695622385947430576622689964221251824470353422849851205752017888374524747899638644337174706949922341012193732208572559096981263902274327716131105129115443569677081531506885727990605518642921678213007659193697923850041833219109662319177364206853358882761291918969232474687622754304781383309766264299674716024777779123636319638651529943745080152567953439732933381984592524372660105527422033543190757890779223430380408218988610171543333826738159557994093631055697513475187436511901819241283609362874768720961040924759211987403792523370293407270406250134571566013232372636114129737088337638667542213760426442149496833971301267161117000044506900080374825523159299052804881527958917565276870881852218159550527851602627888335700745842985324784926722787419802032029396761987185597530232073765548529931588567373141864888424224093928570114001193222797939600410299427965641580670192856651417680525825017779544621007064052134829094951120835385693681663724564985068872227476042305366732543525219896107002330970048968064432173647860408857763571969699496637102202878960421811051297473173652570911393110600531669038829193427471924116894403599276470341290967503717153801196627086830246193000887173688470283717242925101131905763164736776826284515925585511371184680060506095824792256267114774371161398147209092203301754483484859755817352647440678556414875185730325650363239698662664043932292488203082757986407878619948555033711825020389678468120955133119854562396499542359597693969700680170866779255889285896722451015133770288208554421561193132745989946872004924691662668592125944194123736846696861115624082614618474551882482211091809964233475942410946041387969650804429591537450213039166564215700163206942989359904450659408537640379754252452386932999569547854116358652642219679772312022205242788053877752506705822034217159202993078538533433047883676657201794184235321631560022721992886654092834690440716184792023340777192031377781654443772242458938536286005079943735339525497026268582448416467577599282070843425179185070444712288527461447189849884924807915844287373569068404193247694244716590430395083056745463296428250632301192671501639211456900334378993696636680294314586277047109771312107116080667629367716534860791747793946177429277084161911429189381437837842035458312659442833936973527772317247862459780642711448290215602300210415221439419362325844481912325486564060424576895249323221736732703089787713789461011633338653438024401720151863273920338482604975280799504648867851010876230522564139627109285268942539666688799714434923906612853416493995857407726626831060759989601659512317935254859638263562502451001806992309451586621108368342450080959290444247323541310134534293819534367894375579168765388861889908119644633609047100043014613883716110498027166066013574625496370729868549861110395838485130407034093248959784955054465016289589844560947268436807325047637670419409839338856261718203682936420869941776468413842731761047354299276381183364341912063293664227919914971136163484776306234378316167082297955109989943978592911124284137232090263627872341275851786111846831267801933217075110954545133585360751584067353691792188242970123887424162058711332926208263475949468998014997520700911800531056581688996977809602354916996838941008639628347679560153427776737111322683135109073186525698474587590811077834946667175792413215440358955083888729842389832897590297832708478841325139575463222828322522979247244688236639715110104960077367258557701652185200257433833931051743583974918708419108626290649756435138146838890617531897359029598182960659018816191882225084955118984998737376393198226070272403064131597575300949544087861289761333075659575028206099108685621374810278928504750436390832224421429027104348963742535117017214497690162762743930508341756038422227215622267255960942551071734406661370194154736855785231837388960191464367231088495873358520225571839107541574168999169824368114151510373139171501217313674661828679477889618214740529290740153013325009969174057574528058411565812278587769687341028351139945718732066462032925395169088313994207200413383175444502448400118308556152498780187708407014920887577788472039286761160726487457444066523071704338448180388294267430215306310250942806755025510739877617865279095390130811927133266168337346639895007387390407090638919206340892721420454009963653234616069223047560161404859542797366857195941990156840195820777458889420712176918990225624382655032499687637595855457455109316933055555943538971219678255674086510905854508345063455146428069237700897933417646770221602275357622865699035288750685752043626598044970654149061321248341820951987372981032999181935596068724686422450770448505512286903019467986134945682950149312651183963571823952422014847873967783093594878091153478742162583038941315484519165483699335586833277594878164874878978956299216284002928917099905046853759671502108765357212412762448044760962170147405309623910418925245622320302965084012868246919838092963532475354381843047032454027490695276050202189718251386669086352877827695398638094662598330137593193456421140955514920241058630693007663808676590194512155819937065914795832005159295194775119945211925295990875266231164707302784553776495140411899656351209101712080154931457857987935214178790383574960035542422820511225254060435928041619243089092693436886607878796984550136447984900646740404345893040883772634763197442486616526045630205218678697013915540424769631448139551536679515337275056369579199067386950110191827992468150606826801388517446630502910230874356020018792254981140705539613909172509318665932664906385659442824504246465382253285921203717747681348967251047200605548503975452980636816373777804961704887704802473074492973657938880579370400402530348196212513600879354415668142545469465741525982770720018032075824414382097827109025709437094850032025895155907536126359833357800788894061344042193723615718638153076591579400021603855773441208156514119308123893614204084611191302558445138566467391300565128393989877166115607904498420380532131169255975554147633379948514129718977357474581785563759825843001895904914727665056743541296509871444995394781939274566820084053243829486097360190217677549176219899864613927570146724000902585998586898519953598107769338331997953406479714600026420591938498437103369465716657543140815348624480411191246248982098513312378169235811810906361869269951016654439789038938212596195368976564311490046862000112706981232628408404375028505278913440141314649072250924012997405219245144152964297180906535829982545053769284084598639144469004954169370923803351992817107741427418596531995207949514808449176949693335630136406981982672370860208907752517731482246646254941449862624349016231683894001285565186672542588479009527668990530541528736592906964313373483683807454591911329718746944785614966852683708787178485591198286577061515190268033307658864597181656376651635802953630322208180325257145937087372325155032524919415609315078008428677092623634491593313551734932199356307756925178220723086691911318184819450755184369524542094043037521308903795464839723506254345399778931915692799512923001508315287203740682751339165907085316188218876378835877273133236032308786407058446469509601592847735714797978231771874699440756353665218119010386071947470348673603776215604602643002108289110045838371709780048391840426584998376376836783391045015252898652000691658665881923500441385217689044248998033640670214656810865494079655148405939254692719935359098271138550489802183616953582670859022289180832235307433029625130178773847866489704244973206718267316819345060875769790541764425371516257847722874350381275987772640988902169621430353640895011524763975325586963696667512581485052398342042774337882367135723392961772898306345565553203595779374678061811057190050119244795211059266288761536881378274416600975019527631199313128389564935729661636787306739581154397329181533318050782102235055182250695540997288989439369409007162526113525276306386747190859318371213312261445885952534928841515941211670682385332908869773455668499035930681464613571823110438637056667796566771626442462169433841890125604403032248776893503619986636513916137206406109481130330327897604942332728466589857476232939727549134179256313428140045374038011407290551128550617767383331586366601144346661465905418326575718022681611673754455510455755033877899722841877710831670161237335647217462747592237147264415164920634540771811616644675083706903263555849467519636443767784681342312440300329155553946629108784504815252166885822338224709927210052347984016122427409493457504690062603987910299301794616050906180784088598331075992063294818186569828320973346992038129002193332387394195854357677215091293979694038103732935183873221350892812624829904092443698405058155919397025365157440664856643046872249446667390301341886578040335843036213278401938603952325890846857207169316434923445227040157049046118472077954401922081133870847526404438872934096551018429747109086126366458831505279427697061936028499057526300645201793656868523924278641868217916171674280629892368515381286134406658399836927088529344455709390901555343343421821772568912713102539090002089097934047238239750904800050060833475440879205770585527433564801289003836780124104047038831713316650495447576314727855911922770383270501782375073356444965468079173341832363729601072850665965075988808546907770209311902470653457447431097218872589852265155861544090888070905236989436953909566768597447554930992587893031806278915696498210574695014068508152417095707909854060315751265365248220690096033266501495958984175256428777647801955414976986797338930431106939145882035528986975100338777368251024784793421124341485642879872973047578995231655600042683958684857608066510945038608693820599909080170569357900750996055058299666428817176323260777443556821123690149108833758843518572199391130137506925357590619169535701573935164081004569916100542767644229659929506808876483217823906217597548383808281521861760294662587811737128072525958554800195783683473536510726480213459130587077689385188781722798151535308407671997653994620149207465974141997233874812706586492819175097558212302900774717914981440939569910544149397156802159184718062357659023966841121681355266649882170596984725711266066045493795464615575310953160449078943251520614467937333884328230672069413595507792243813580228481299086243003952990210289859635364562149639021419644251849698044263759376789062444807294242270480281014994424555100423756053630362000575706052782161536743098302817779818441090289340866599468265961474506999324281872618928940098657654494156115041621507684862002323460906424940093206792153604777271137502916972241104079403983393430951247554831637899451635934352943091516370956797918893658360547667442924432565579656604595940769597435710278254475634348698420716472559073108815412393505419421623055315248072306244481889171422526407758716008241932328455920588767635891690369160379981029084821332824163644677241238778572899996046142904464660976041071194222280640047168155744637384170603429260885737233877925854785420896110280084414220462713713409902468206304474910831222128920254309384556772742366544249047206208061723737475040792496408245756121125906727807049719251870548319031227899866441929196904074245523348765422427995265852340175293219917975882574139845787670571077751890466063053946160972617342325566958274762254142971413101646328032668389613817331942253718276900709848021662662168995797391532128419480034577977858525312722537021836236357120561660958928322043664632449850580244591960923794498644817045386590912212734866676263267306037468097127253916726344730779421086106755663695106856808796261652128682234339304022339378900107431391421918728664120920145675703178110755152649312465446197002688680687641480851092436343079297368199784130442827475455847015383129845636726611932969426622199502737718625383511625174759183702492148156552364570019967798221279635661953551242237984078808052570356704541602321410629300533454190599680239453700708716148197342223530228270397929404603479357557551829302849112614766018482167847619260557818824508204602785342346290595429797602695250484384167051450303383405663593855717996255567179415597399657638366766609881017149403273472044076839348371347151841126213423799336929687862499761854813852542353074209197635912588113786984604906304830420342695486087789825474914942510828564245277453604863279992894484333245225411427241103705680514869631785735839237472302344052904821427306217226983730376423703506628482188903060473952540574684109733395246949898343214298097483218737332286599947962744645638546435710540348198355272900403872087639917764417746764942525345117992034596247072745164868240270832780564399157080735744279807681489539838188797407677059675675048086085153025597487035546829957955675064605394580171834207460159594255391132693878803785572001134442012972316542650001628748249434710620023347702450018381073602937102175078730438518080401710595540214498793220068191280517750547543777699032671832824965498072315401638421561070809133125494769140645992254704568718584823886195469063909387449632852815982530823819789637130419545455710765259210200440463432651434398176058379637513032631678064334800588369150576034418327361455976024351966512651840250100898140474860637508354501022979671103089580108453524317646957482219341195198874580803305651850778392322368378942085904066493831375210881042097638380515870406691369029499444756444046264718003443799412003120824765639764391526213816025351314374069065038974926501416083443224585501267129894376599438449357400838797092215886554889340681567305971349396057569236727366289552950034479185212205657529650746055595557012595479178422235075876548177067634407372501904325424628818002962085514364163579293601080049080084056823270688196917994807941325310299620438318250002765432065034620475531184516091667273409792175329141475356436641827772818136102985218480695527511246888724821393433437937948566080655679992260011962275652963411725608417224342062783012581201759644088475394178114968794623829049905155424528740698800222018872865287773254486066921381998504728245009471627968524864429274171078566720116807510468472018055085479431481325529161777513001613078048251045006405005177968434844911540029789465673773980508011457710934358024802538698832560923071352586148908860325367450083632888394485049125670379691540588622618735250844473724958847537812434559579186105270086006674856707625555382897398925155731937590709766328951135209141645833341469852510463674785538537390584757634582192406455457084254927716965716694555675733341899884764314628713598008777681951100437276563718217015196863753837966962883050651601998979525403134246214736650531629475120677903618552345129620686541295397533780042032408711336841918349835268136808929931950167805993548210186339488125062296159947858705093238181213636742115016400336342551163288417642302755333195641059646582606027713460209888187164215643988611408102093868465030600728014747710461137543161652339227072316071134636310730047981682301376577132752280016403035504918195367723870473000668715672666354989786534957658395430512499064272029668512921903404610451805425953678580877026656331073443115096960031909372675998872339376588992843160095344747761897982643678543663363671002880201564119596033352124696324224538751471701633528673704769484873517963188629726073439057927441169977193957216546308753406049167668576768711214021545582788996980806213898722046368829388607991669315773068399887190472541960398576991798236760174341990069437927353726015142316195805949115326730678310289368252687475247497485583207792686339888516597454934671327493245932881186016477679170272374231404905044490302261429214530049011164135226933278137295704509126254764081324412286343318773688544541428940081491589591102033469244614704226918488952516517326986794044737109069118950588145734742026957712705878873209213786753239998821501690549843068801750458088567339536160631941939702231492907055017667564554270997354344931890985715057240620213654042448243102569667782786705901388938193736716282186176398182645004390149692573897498774733376397041388421231060597287519276305327297915343202647554115825212535745152858382871502709752889571507411035939309311218013998673973931577498445320985258593641125737075494118055764648497332849448592151223197512918629362386267257554131272204646971285348389483972764248869888332748605492767697102642333915333329860536185112728314758855235740604953367629367640461229945720147440553272844908818614325197161999118742665082486326781950628080801669920190550618524177906481629105031585504570580204073038559755481953691637192249595117600448539117232303428653993741062044374546901775556172087006681334725182977385802196205902338116030641054558307359917939994570703857050774536764836853130873176624880309344099395245064832420424620179657376536399906974496673191202620906915049725206400054641898774548826053426484538748234910909092723746754105387106684218661138324038234579294934178236092779438472286397108176122782321854666635574369080071284766470274541493516573811472585941498840831113484294985002667694190885061852974590094393081585114288812765481990656722654800824677583379487762823617066267883085275628629891030664104059751891229677106535213377479341526014622029985264840558650780662047293405624234969678767217696651025245032133761848524439448526823801967988136667976159136064383313696822334905111117082164167287993668280409420487555247694712614192306693948806010290061987686174027557961080731675119352327261988563754617760635602194773951047440195121093042870483936904611374790850856128450059847626949473086599397732153964408197511451244993956659037748489335647315863088233846150137296647037181255861037063223687604572155844986890867334923692297483475204054313695628865624139093505891896201552016497714993224120677625214201915766193877142552843929740987047549862444495953208138031016181078637366689459909692725923501861289729202805687208013726400058834550089788760182851170259007449320310680433444649412993646538786687242405984250878655078466687319404054119375936748528570733893071559732254819097411490410770233609974026001334113403899656112250174319465794008734533265772368392819159587765608635617389362293990730555036711499341823577594698281096401265837090211393421933246060629129006458271105168231138729597833743160495686927136682150100340421247690731502608053195813148505072785073836019536931873455717898854235508702041282384862581317983271575946029121225553444163559535983659342970154638636949404700788133634821394189889333208532341048237143391086485945907825821236637336068368577685647694611880163356732119730698996834297782162863840913719977797686167792517394546475139218692783580386149032887015874983089294735222493090578663972053874541327440486527627361411981797036237532334720944041334830617073902461160088007748468206117623497277869119096460774065632961842942393399209627724462201087162227404832722361398410692625621809660154452283958926845533319482942528288288870314958083734238081726473709774433147146570660678269114417574985015142397378074532321587358867780194424405471298570593285170023252009013909126802610678949355975263283366237611591541526352683180242651034367498616431001894517722186750547338511590163778893718528122328514724648077980043153326948213752147592527411739976096091166931490653240615533153922438886363250377887399010458385649374585653756191731470742074516134249946318872389288969021343151744557828028740367419099963919298556330501484035542672020809837670060870791464434033325997587650984883782505502459618577756004718291161388936236690049745162797630492975149302382948779277551901150322122518164507539042356786921507246378752438170596091522882194595557322733056223474795953902613015565581766479456390261373692193744090613843519905503988221347220160435401480235267659791801027532077290665902403519811770149914653144177197647093341488853457098597225711016348313794885910310247643236690244349057032566068898955882274724184455540985318657246440197558684622685572712379167288003319258397429611391169156045021851965340587079743161042540981083390837122011535549192060792732925046578500895282434027724727210822938912370284123805519575884052875140219770155740787135778432443904040997345392452148396478002720201078773595117787628758375856260646265016314071695627548215866224922292591019664922439691391804982560988674351247028390578785515814302785056951056289946792732433034805236686246919903375048887732779227720053074315527868712897208769157217883405060417746107619378151565258905838027617885138466202771690207400838230413824000399292258049325786665086653665629437249534771628434773903059980751220778398605463988182489220924326289954013269533303703987334921086178387603273956769148472256208158152473998667824371501927262307640168072313107888231805099652445518410060564819008066920653795157373426662967777668371029700790267318406534890077250301766196910230746811754760172495196584216348806827462542404775542527388258845886260051354856138794312734976040645246960269486312881338919298736571440742942451183201050662397138156200470082762429766950658783705021320575322700132011464150214068522966394319703726696286553125912753236851825698639284860292780497919427530322393218752554172111517079770475376668836414895953183399569001640185726971111015797776490166090737916225090980943192185427812905393048299844170650948889526916190247110079297201006860306680234566435053813895105448935755789099294804847484424548869153486015305577212475333111156560538708126497861795976739449136165337155823386336226323715676171966748829687659074097099405721530732472462912920418358630559239286938394919363957794282357978217188452864861145608823347681823369634079864511530813773286598603764793899539110015189979170708159430088182426902567401003651917510375668863040046264889542138686309600099685159919879824365509209389230734185500577988248814175504608322547474262730936062190861285140100658552258941715993229129034284394196945149450733001786719076878074015996110908819031723908664357155159841575988971723647897989564778844210221759247162120861493187290339761664698365732379484502963678394051389471238840122843093714415136237778076221483676121272594410464528498640056713855230201753351079187736008184940308960237452435065857690732273128207796900509747392909122285953175558454916735666231401968804862430098234083322207534360876140267885387018164921355586907015036903222084484029457750977294257155753284861118075133166025191663230346317813039404647571761494952949466778572907599596423429757935517381025223589637471286940784253677757837845536962863713035800126593729716576708085996492993915497874516487406714380006772253214500525044604846563644731149409023979998447707961824598386426267294460674695237416636905766911624211495145571471788074938542587323153223156972010454528597896509915888407422547790488432194130653423903161473046460958309285575568916387950188878264427365699296076084790632508801367824344722681751839700802530091200332624848220982080969314488922920376366958173822549893892120409498412321262806997887812285857703813871020162804360667581566385969319000670586906644863905842870499684701587567907459397467067572184732804784711296401105422896722651992039853584906199491263931969455361217191888729032174896974584328873532882874833136799670206867394766827404456734665558562021814963761793791971541041828628959455882014955609660108207250758117341293148045574510479685845457135372544472899041358138648346663350580971992856197523729602866812752849442655542276241774187984820637485777272429329872971583021706811050442492977420265584962098412637723134470556315631245407959284426837228952011469911849602608870316641694227880713559735708813024613248347788332636423128497622901918707059730259505854554884399973474296380025114148207395360284921207837679063908838993048276618500813576967243079712082844016006091101500865887028540348949580473834861014528355338358832449103570029966585208053154493694736382836791260363628915630881817069432725174206678755176629838973649371263490391713165299572841924639564239881252794806585609395896491636781700100522624488480588140125724357934625147458892059524150650481625156723238364586034831388492681688807309801048005454596777081863765903093909200844638168203602594107114104294280861725619578348954506519543398464207460755869872627901643891931099642170095193473684836644517298328957078623465611370690707421023948355252441262382064704929041628553521722891418575305151934750695888824388124524011644111265394767562688434910543103963729730173730867237598134844272332270376802788220206545506888633397237084865143647203534648837507665414325893882842537179315136948126094280752193318419030763605568616249139249479404717186561634985868575834423475072497516255096355282739768579602036092062561930340483536487751610423249227356393639864740490146719228065068473661371584575373200044243911900746379891803990251043049086655203642251419403970453537683138465237927772199970534480913191079103263679845938605519928488104038197185561349293043171860436713863071764273656990157914363167986576823467325573862407985343450122319412746035110464336494929212742337907495797610446616950882151646078063005694616030986615168922247633219269138960803185469359309614175904792757933035351419094631987987233860395816205293881398292071392191871364746057111723959205606236706857294920050510801060296916694692602608636238688416151517739065387139067281128663967831400273386909550902166915394254948214568382971085244063555050692749501415129954623197687065107967139022373077713354748112297615470864939112538068932064953406818804384639874735615203026311349657344025863850247977822175729233161582883745900611399824932920579481141434106488025400843161657260520373501199174862670829618428269656754108161951483644570603750495106165290410549713737536926689631511316603185788802834293721437671685688075977516198890334450024200400247147547952405550657938262325996025169265388957890113036263970315717221030490122845228125387128999831671032695585178800028791247575395539503862753478763396726430140813537532663678135735538139291459030508515382810248824367112676899413611733413024838736573117949935383534062260841933335600325916077692967878595135128597709937424702569258867520932955916940950260739651322327969633772977616664253200234716582123128057113227035854324469405848641656863874492760994771222534928362702174622255608813279836695647412180702714394029907562704707756899325644373662733109360545605240343167316886812706611930234986526270914366370706543546011541185026938214603346004901621241437012408108114367697703668136446198352911815594796237131030987543724221364989951544518320135896437744278280035104717483962842630714869579151094538908181403754004452857397354939061538666062292834429242605064238655381576060107673132201164556981947735849764836097746865206439279979496578086618946415709671459328430704544614745847796543391727462453521396681159814648727271227077526220366387599626044623021472645007452347167174392792396086455123452828554240454937327744309935621699796063272799625184329874182124945539915845141111237757886682214061946119181892789979296785031641050193335403568579055622632039007226771890413650737923189609610065066004309418999927022931561163484595810573984694275975373421703311543044056326742857898716604107909662689164602479908012465112303098979687017488450826580575065083625061251440976498446992589271017425818645117536902468374481617313425575483079857261486282659488995619210493492358202279173931759564777261453270024045597461585869873392138535682191896868553636987496821586024771436631034863347505150814813006214259414813337235859962729133151231894639630101265181018741611629205982343511528870158690719896521284761489486963922319214362053074394522512202095686702178760814452678490829156615987052636610124295773280645608675494294581705596826945504425476011480135073071690535758587938114748533036569000587850545376625734684660624221168342626967077488276948428272715365221979870493337830198822661758096034197844784994861958629395200240800108118092786529338985369979075023140889858108401570278647996090828980713416168525201099305029299035994397582324204629249785712817115358075326307333659256407430593477159871548515913113061883604789127089844911830769587296562975642348185001223163388754688925794947840156139068809588206116643903822383765617575288301559989782602285949118381509727968948253105652224201730582085328384529745485175327423049159122512395910808394217399262296358566375204397935785141298377797456693784495003188864850458366994450746879293060482113618486858620972027089671941010343855380480943885158655450549280368078219156389536153367302302725862692952923761156930586384205282922320161627476709385437884802681040500645049190429168802724495049349350855095958439932371339218844395847048473437153612280306476810410235887710558153552880823218716031203715050086455648509979476643854957982084119087407975329836000557557910540106429995171102869800981269493162332963648988076705331352105601225971515298987320369591242288949840578159539555544869218473024978751517328917784730048928029323155797574995954617531957027114773723285080438025551990726194706491422164771572946867606069362231614861168079196216368536101124795631143530097925883248611975707782251507777290757372634776693009690500251405265883563078744659342747297349622967065288663975343450138923408140327455765589908883518650029942861404975081704539475744570164362596200312470335429341952461099554077374697274836062048188291734953063655471745589851437397495660006375657814808363688608791875502146801860359179229213822000177301964192324960774662292585195635669245596365485811096911737693150111692291362953812485441746071336367464498029621138417162064058522678277416482975125541121491882840363383712882990212025840083266595123597784435324767466573551279041840644932349304592816563473146961147633104940125022399736383875352878436146394466933172034110576265794268066151623314200920929024921881632743329927572251489177035749456131162615802929545887051459633085160683664470377173023831693479189112541793110265331076349927602618499029129838580396429145866590534098309035653223483405474413445539978878961820546852068917063857789448674238898238116677579806211298563466900963689634778670734579359265396183306757265613842769626440214126236305600624033045621482940228619759829106264654831031356842845099061301702139553792893238291199910947784510313912111756931345525573004935834694216522471321764465019495886476234641969658514919508562319109657072012581556396212014510868061485367305689926150719537761249580446109607182200183607911602654429694920025851644970822581925322540154610101039740356580284852875905365406470932528583908196799068328247379427958745979555523119142716093931408045449268251942436858919569317482677688216018125318175595640976697834390728422078942261808052748968198688281253393861198053602099111024598186375778179136590788839510579221270515192734469484332059370343990612784955754798344369659742718359812515820497640669694381278599333878296100853434398386223768328473445798938230054985969362866334502940430625934434145636185533775098750007778921958633409969854141639819386795498510601665684986995393004221407266767601392882233584612249622518500094550400830678148107292589066026466327494241793028744350572639001893709479429862655146817255949879913724695172069613421649933186704235939859514225713847015580575378041894851818132196868758560723300033172002443691188822453541021218287208692902355172513784766241819974459197452121021429750944961772068009318359238621826633150796773531752806468993180492730972117372859713071391836770730111006914672478992962298522979250022617758763938863760041416087480513427142292475670877207651578163565554637184168809751396505055966640599298159850597734772289309473384127220859877681032305190244928681099398143763415943836631516909888427068416076836142218812410996767906040661727419150415386326583742418381476107842019998471093030501320509608820123070011414450547989488000125931533713847737501199464573126573251502615716712329830158498125609214521184063190128790732301194596710329645524598061333162113285093485488680080493620582880076620323224797057626694462342491475860815857770151752976681688543378611469003687260087866033783834644212170923243748743257735043841645400103358591404003933361366218094165332777062113795527045731918895203990435569921711392694350185857261009960724885473950058610417959930973441840544038599479803315889737985491627996291873663653636688030520614160880631106373958231790610972211161069899458603282167515123287529431104360730999117664375049533648707807495827927057874489912288522416575843788367318917617254081212972261819986932652484859739373115519179946700478664356821856248208145027281648234980538981754507629155945949749208720000056172872657623565309963246296697536426014888495726103848402964254869039011657119921623863414517108642118796299279922356808760872490467034012705238102390542462428310675083556991585870207690594082307066718806807223915725803590052182304011488449078126531183399338522948481164132478676180658414187236499137476126527671782477249706797869217251684021120745911117600228392825448085656123804652245617897378472607530474803807118371487448041853302630785295571608809790593650310014154878530431781605251475743011003031759113994489361688450901483564879841303348120305705503168513571266751999791693311940453264268217204667794065610240302426577028048538070704679045604851877406403998063174982234889688342267037161804129179591309938237458843394578951100841391955832637630506320521810019690819946531138930092814340961362579021450857405736104381438629100639483972506229725914976005549978607370349065901395547007751504637061128540099624667777296197485127921875958642698262041199645586413584486229147598068184398135889421173760943091437813598554852540519033929358492097491518522397952837808377230138509803397080408551563434539550990790195282915982343473634891403250665496252635164614806436450781954234536958895685554508425161725721857042540326786063869873108031605931221735093206345071821948618975117538499156467630570959127952947386004281397158371688300121142432467599983611961227403083366355811682739319248953538904157848887510082513814950558922023192089654183499261639948483442715987114966144237096123280189429831899848916477501015368767587304229571269614965639846221078598872747920753159915995064698984807344452698587211191619911608008406547793189910696456630262830927849337250199362761898258478824400907025700663806453736736581930723200690110033423254038726082513316340740927511370097469966646947374630242271610963379063944492035748115435210365247592528775674104356828447799235188979707539047039511695171503180598417183399155073623309465149181607120568110820216917489164410044972545338063967128197192759629152735894282980974655389109687727956988102006544128791046783573220611975564942537848158982489800586509581328437544638291123136244804457445418978848301186873697739921202395098313036955792680359399367002540393330839662913354150029832852755396831680809082654812009679897823931447700932173371677490368511373176570803753001755616947946564954395437693054877179221201554931812749584890467640453270399476761552785288918139712290421754880168453759255203333589259907473598699170084263634567823903682374597446970897125553093828543082606627172835777570701913469584448316482372425557753361884774964928338048205188631096472908312636646797955245950697862623475316509240826539154592841544975109649224944076705355499713050396608205151504908848919790641572950603516297227528566797341725224373631962122554147527321609292110315322689575285318303432909866278773401654627608245956121771405323805307617508287398734394816357037672252095628433096241849826160369257250107554855045241113986913634120185228405788431856975174683447970661221099217258104471007550648371433071862159357161554018058004127696898025274548477921792781428745508883310555205486144627524158946586043808333306364752741191280392478679587951677160579581101592322155017208287960493618937526746833332238750104036501302229515665075731028253642729348934653662624765851107071707443452282489065293069009115453908352151413542083491343822276238252088385027027730327937750956120026170925100916133352414257004385122338722557212204701041750248308595393757564450161829842855336889097153441839642167244758251260787181029792314724389310887702509152306333141620509424914154964575830227360755531898653046773834255021241162646287007734391440220432316209086611675587729264931623193678184930565025561496743405505031176508318209810502938814748310046603144584965658375189723648602016378138449665258279590397396974314700522365883980901375127896646424587439082546757682313904598854954585859611706454663801477623708227264902622411547729978122653262535760948055011355984944131154807178368201688719471923781633917807039944294594069289203455328292946078458282355647057276327403283015549360811467582434158541092306141851648612607198811450912680070274019465713181314104510181223841420371387090048770407865600449633207720073667414115785959478106180654217888412011182388677697483550204845241881070264245701422100742687805889648789193813836919060864286186881634133811550767407806005112941920723152065163722649862641484776796122184655758982672440012945705406636229437668307194421975439823212825098997947425577977807230547564060296697102668505148091340391932550670184806361477869494884087044761962924631888057890387933939917582826922768581374685635770322683377063263175225215052926239442646449062691943901427417169680446498279345348334801825942840429014643337772725474731653793300071753364267405801605148336494523474498670911699091996127738745317349275158651826434471041652342731119609960502182650935617698050101597885057064367738966416044808056580617823508506659295659246026546167130130107707721404881279149810527302102074277689930892561290221710017173000580357541797338267118696218914433295256525958630334460045253831553688740175424292238852824873761661043165999540329180913582759102604474586277804159941677106575598366404709302742006730946622779933096793932827839145834563710499399012687718398801411802099022513070062545123081258722866592278908837513099467338218013940795248627206819254890305000994348184415313293030076551413239155438354072193482292588072914104149128594666874525707159035803562197897038392172921608753048346657974149557430256978821295128654192998227955859589779298349036975434213015945709663270075593819780840587200081354521962009762371226610840504627736775637815865973934372535012620473885164130971007684599448159894676089000938893414081040955189394361744972356423229917486472190090673684114108163933482313803426129546640303623911352866026208311703747184154693156889256510002234877929348590840561040299679754665936024206763939744573861080253616317143387147527259096387407687746694136993037064319929171782186860490071351025016916944297309199605536879305763562828255686269987187887120418750278200002637454753671147472259053008809979803346731387049855907084120391781169329583896554477284087156296981681036961805110665123662367579867872777900215626598767226588984074270544048927325608007181075479696697928315719970147675413505065375443565206121525239281354195627775295053850032577236561120178646212086048651793315921798850091842414601760743703833070766677768763102065365564501274962783661077079112559362177470735848845121153565527563716422361706162538345039155112923698364247141933385575415989170692368229061432481494542754868176445952451916773943219153812134708413494890869446263200065657710212099663310239040645031960352454357179207181439099434988811802298109214289807641144466428082700964125889952837578666807213884892586283910349168663776778528213405145727078316119525734499876356330754555491663437133222125004752890373884152200672268134869252820539824457764793173706300768634293029127864167825342532296156755294162582315643447546699527565130052270334945370055971943790002135574155846128626288978511537834825231284980326880189948581997281307738250592282002184539126696495052308780024152405371300385501267175365495463381870313196187411339799549784672719689528069468338784096913471356295935748176800765874395165068275855446084326612037686842734107773212171140419952017002042064331519789605011046005454935205193311376944322052593761076320621255024805902031289543824610711939221047910627960009622356867318441228013269518315549826006276586323645025729895021938687560251607382235628896322929158991267457116676160775152785142730497117284284036282737126654488286067445397540338208030823170599411486036858579200390363721777024275765887146733220583542798968935120967616179340576283078379783365544251360665776489898342415958338157201895793639413783111550002852449385886593905890100225948248926106102085713416662298915997575188178411719554909342208298157311634355349678500540954013220741172019730948006872881739526036161355351587113509971201221361452659204845714694517370733541858834680038555350198414470354176330594664263231623832001232576637995442478393673089442453783397088722658205215684980480704534858799352474349090636159110237291124268763798954830431506369455961510958365166401523091656113913113026287296771464716632400360861270269732657665802317256579626635345920472728262109923660823868382277702152114128359420315922484361363507475193461945916008054874954529342186988880481028152604134252822469039841961447395316442500805449120557957946680765124196932365692996116681147519342810185204047325947341175026518187503123721099203121095500236049864396443560384937491562226074316151380763932825945222585202024261099891486398683164865873809077103315554773629443704397933793931053303459798636651894413229903488131934502380115325131052296769627410833322824715935172899491641477224165086680332987202510939712999526932466755288622632606184737789783192823515453853906817715262967827968999650097038307519919274937695441705216942859772331076633462896614777804161299272805664447750727936324838196616441979663168118804874792141758859288244964810711607263235052340386266629530968486197613717691454997383722189383336744577343116979440470887871028424394498037640975281233600715157589148432755605836116542128755683893219943282893528274335198600867084303334124581571233685722174504606760782365743998973262989037736763812661068599310428205101490884183050973586759787761172077222183664577396879276407736015726051693966475260676118162828096482082967518886886619766797854868426530253318545448822316621058909695542988387441965517070574297840069367107433900197992734099872053668698712589036347998999912232866808924006834306087486164064470029028668353130558622103841794787043981338948661685103756709374789847667331695883976491536961347350995493226673321725435218443165723923041283066096533420279403932115798935505214170035766145121128685579652658557190666743644824533094409731268913780999997768746043205824466329660209819065482699200549056358421382066743861065300516793537360607232218019258797936585067001143243819864895005920024659843798131516903706139223922075940002267314803556154594165350701384586001363769024216247776198912659716785947815704004427596623356945753432746201883405823371400961105131900873734694659963768665281559234912489157967943139881719862461486703858580933571853261585118233684562307329310174539197217850678329987412726839301743933064521831339310130373489548839014398484211352619048350632881666250619532628865643170751433342190621336976066237361287933125780770702429557950613453705332663090035255085060366180433258406145359938369461827181094605791982996557972612352219540109343801850726103166025054381186529914369222090798160932939994072120519871797778751476843015612824024784938815920687002806509288670622580704104297919881992836340043849378689103135828587193239516991080982649137077593551131896294277869934026800143059077340138193987263178810595591763223143243822556619452302283349539501212068824487085783361561947004671543604373979653207787779645048375732208193332287613823683171799049502979682686327883645027825767858964711099209353801528375036087420174852406662107721764363822948330993623622433633007568711537405325302429416593381496544909736799729767087495985605228987912408867593072638017896587253966203625985905758888779201936060547001455991729316235643799741962917122852212321967191267071146650009772876167259949866563748626985739177405415647330207206340173184552774221519697565023282156367857732403140997694969584232945196956675333502266599613287599120401566907437401822836219551309844081071855741305170704916645759251119775311976304286177370538288198540104745344383565161941412576746992631326767071181237366987345006711222543052255805995380263583702485925605354269174419199621316886341751985767810281197221489014369115553683734763563616365301533654801643465142262662749901478343171925255425118187248048637849923871735228974684601980686735752319632563001583419498333839346601485254159272011894672447563119711485814747283570761721777499438279374160723299179024120101090135506171106938246327610403944257484369298071344618703276769095514934727803727097388166147504611718692058586401304444674811015757115182886674084162234952124563804194547168387866551620720162617649829374530913289410964641196259258206334430550403999704368488328602059016349793542393190755730670575834580180395540751064672857949435699367062168440334185933083959391800568359178460053556450033046269184390824110753962991373664136492250431890808361157479548069534262554181495197794126806039858299022935755545730533547603735803732466743271914000603243081446247952756130994301961114587787694398618326790571849233360354934685095981495765510465832890970770127253096215245699081829546391856377380189900788700626360116592998852492851666504627111865046575730017335424018131605001711219601559614822763696143714826297491492080912403269823649003222875596842379441883370752531847385160634796660581162678698898857068257273585849483805890473713812063892953810105126807025196427438474997110210609855728187401911264932338756980252618422128092178591396884187219455814531143366793359430340269846931789475544226364537758709146410784872981993265585425353174131797137712473358076359775802942009745268856551969203573873677694000134175673323040290489376381064804009585027884597387166574307035779630697772952182218580241769661518924892389648814760692442900942272655052466017247430818041284170030517264548945496786322335457822782548683203121948829219702240948840704054137327789620063678843301599263007995429651943351701752212218530863128146120273837663084884498581942503754504929400490408742449542835518182493083200932833671732835958353443395197677762252092172623938233229110747943769352341581700834334855397788670628066720867211476070499786982033290385374878281270113004269529370260605036404253275720062642026764690696731872099550027935963630908829582940187222163456070107372059589226159128328179983115162471912991392360799208831196465268697446198698351857286078722712628818910289104299346613508648573730139005861095239687178563840721814057035923562643389374889642811892883664558169514818725200803486280083425348256389683090087202601581066418076877657202679537989389551102639431448043805650716816214521941986151790504804908839102748474974909460517792742496871823919275464586651288004918216168760739152708157101594436186815718848868301854042978821417924160953244458775092710002257336161141533100638387204204732115789068573246146444230283054365569885642473948084297963231460248258949877859507074037423346995827961392573901298429852808654149828369477224715214938483764263276766940121108496392618199156338127520989587375134653512966323198419783059924952047928770484087112520117905989484487446981551066215625426651657533068465505004314706369871511048927253040907930542339397302161583955817592333838469460098380378888959765445251282932270873195859552524209258354602943003506204782923906340464113792533168994955351445844861359677105729459362354559225645959864563883149820886527945650605861096865677028701819446746240956536192739953695386179422302871711040587592944601994732993312299974768376414653501235581916840885634974757527346985386838585978255464921983265982394609115795043939267864225287500687698102205908881169265193113244468536838426820443817307684615109227966351389925041270351920034132648546839405528475293255668166563262207251983135046548783261557658664514412073537188324398870463002498755625282977621224222225559138846339981642062226767457310923802855419400572724690347741467554720516742918466410014839760155092265743635729328783063918345852525655353187449735986296567287865449155046266395200520755312401508357643222910338471225787858327534240950378189913129186679535420881354690378870821484719524244895511671926237227337658751021109854201498766337512182215523062694373927797829631293432624777383912528775441810929002569040117095056409841677918816919320932533140260498789459327082568419888451962638803992915400708934850399598791588538507977948636240719365624640581574029780090679877158269970281204374198586816902657751798229751939057036326935874684874294254773437039898947371978881024396464753054780612430314806207870048984224248212835801228028350657154888849499094386408589692020551567030137410622938560806662200808203853983645424431301191163064590852532142277101905444161802023026937910751039814186531118541464516194804146188617746855923406269174575918355664373089339272038835840740934149244927394861189587186142571321195979753446754403968835768234798382546373788724483471325349908706297846433199302428802805465622821430089118815807880966914093566693583582959059731107486288866606276606922484539736923872642237424989881445418664312975961345789044688911253377034133570970479113288852702839522683256201867291069549473723697683827509862078662965578878305712334754154156009839270678866941745273932395434783971942442682030037320018288984484863929551647832227235405120627273082468625106763127141811083508105298720764855751827276817050253030371694474008821849072673744890369680188406882474223770604591464408498368685099477429780407298206110708175837989116178792612588604265492839894759303818252360198447231033553658120380764186013051601500538284408491760490275620470818839013279934667027005714329147218514033959243812398595549612972948522040957064844957854365271687588813395131564175140297118461257354299522014609699761735820973767442207103542074712856267552072127874924204999617386349545776223717763055787801052093218147259908557974468698320204544499602495853453247763907166360655910552825441123179373051044036998338251080900195959675282777254578607203022805813230625127911281806065418881322498659570951695184609762561081072875396395988317570896027377807392196872804350806293760595988746627113523394114956804901997091916258981754309355893210929698345699248888132273684825345064951127103901523968701766710253277189025721331915643957116442923279979063941615499250970420134538664377320138097730181611558808722798309057659206840020660374758130663383160033821023729216522063789977618263438722201303202807198022212388756213533153633556797282215684784720343017600622516497103656164002285564092511592815517992420166081565106867807025403230180667780465496231477979200008282741606623336375286301734983938674412042642136766600401919675539836842531521608476393173861274350023476754942225055602918106773031717052227782551151149555999254189567173960021017812045805767946456283435219524880981661992657055287079086822538931797310789699000162553135850875140176046400621036139929936804944899970457674260528226321875412297405493785203262648664602812854914148616545539095627318048461312067315600220852786566055876551257410949304197174584364454455743879027326566269931164901324112719191451164853971723211937425303474290835138260055767347805329579311125638622155015458569005822285953804525325030233264806535352631864615061913228565525077474237853873622679614980299926421900531402689808244935874576311938098812210592344305916554676941436981829013308609729181926534065995131830173534319270707522855719059135995204403432847786349103659836710119264263680411520566291246235481490675332388104765312819066990864713803037210133186265845400437861477529375943575253178632373183538084023540279181987941988999767708171661808377524896142344983335979651660333072842778850734098862984747819154067173253222669525210670423111695362858198927076648685152591742294878019060850419972079784527261282835533270869587371886882556987975251979192942873860909879831089022287289017216558914903547200409001400629096414983936099834997325943236342195166378833116948147760171246670759455353217070269540501533128345693923140581867589697928865804183193499254418053490717160916284383193538626351575533920688789895569267254569320940534382801351721763968263138546537104819067505210715088240864840974210927485824718188260849322733878289287831822860025565381722644516897339873502374629700426983509779836413712507391341396139931005696078037403390125964801022456000751708509840670222756413785291853547423920863727883888441175798172101038951625064273252961531393539358644352597507016128390714617929829824376180247055101123485660757118826534120212847293865372466459899088164949175597755159632758664680985646413840553131504002205121653284247719163132671561912323896479117574928526968621488316843607898877726488187574094195916075609421514858706237069396032138487917812297282920592869820724095018003584576275465818202574097096138428867554647136017314484563619813082659813553098480590142867380475228054709204773981218500513509731795838772300264155578201840839227398554346244792445384347039749821384883191630051229889262554813167320088695790703604026013607415140111662843997574277682921359771772895016757143786671749435351738188719294523816423902045776015748196833022094876613205534681606773003020413596206479137456344238852688990140701473079227328712048440477992212917338730398451958689156445081656674164051309292751881915568941455715308859881630218639117582521263184461839879322512515891324237313809286894719634623889600987373996441400192986168998796020994784984688464784873797441711198860032684350565600397126031990545784755230051046172477484721024505704449681377400372382063380540759439665798112389705348616582914350770977186269190753404497975032112908968010096571226031601487803377919499741946812700942766458169916777625522744478536128529297658246542959140418241931895219988333352392741098255800989852758920230624808358459042832548125960969638060500323209294595597153854520831628218016163430884246678510469768202981916625808600718479377025324760245465309031594383969716576784054566973563212048350297470230738580231651389381931507566819982414875680038466800412680373022463639091878736266482398365437505867713168693967665142812970807479214232367420553235980086138078425038481273557558529680588945119444632161387069377994513203298913751572207402750256290865493435100341485975697414886788153359959228389004653366557539047821876691529789293755547960977060794130084601478269206262589892928050374352459136268816131612416063763539507726209101131505082008454766746772927032073045553056746798835661874691828736577316324508813016114027679458551431197466287892379300216015259459400314751322279697914471922317403973302336939237316636802897548266358650979288469784881496324490311954406812726721351036499880785574633811358902919965712030563886242584456859714353174322961740200389557716126423954742927054280211122489280141051881746409789194855438151622422756761446662851258422505256253602823631609519856363561604783764948432500825211923396667704058839014149684276758437599216085581728485978781088189021420959464775401913835682337212404790863561018776692395094824192285659295112025901057898701275997783941744721441761270500715135603622386830002743777609188874956144777037346570601059237240374262077686618695995489808969723625891216109330572519658543048285511599009335408900344511066701357433503417988427404468266512189622494856314235271568975379101688684827445738224788599183662748386926345399321840206855679445597764062088134641124273067131352327743783630681146300790947002727381008897512831905275090443709247979927021633071091438525409756010713931340749886596802821017077343119306480022979271529312548965325018285518845069405505948011638753622471462625094185640951178615299344727543239667124356263757632281387683432558743229225458236592988397673147526541410910902408529049984751173385303022207149107499238722742733448333168215433359728398654677448123303723388905334264099131177688203960038299460326371764316167357860977032502102410293709148596977905290239750641399288180927706648976002103109105937233658085743439797184446673252159112078100540045120220162049955506464631292080329524636585854657488296842054904295032708981352179494653938663118371966306778266766610789134979718134104933450654623974422966252404339045997918122468990907019233296757669965887077753815569091720034359172821005937168107169328886037140530341956718762545403253204151233532176808239602978200436612251556959800325299595270985038530042057622805497737743129066559073165585563721587051643965869890302312025487472955253450699579926690392967392500303788955675794518435791010580977185095023234226868152163507560457992665755315646433227787096406245847818846850104605521842825973829063475643423460816856800312976819297687075833651825500583972705640178856755193712581053356179923451383549310262723675375713452813942673268259095746910419492265837538469723859606357248347418219201611437811806940629383719214962008463902460793483484967738845697650486839007722976220628460679383261467594014238992340028715424752767879696009245381079855467138725207529836316003503233004437790088283687660776499005571989932065557905270758768888948639618674780082657047572757720563665495770801435839751706437323656029859133038773279019849308801975028777960781048572743761833482099807157444596846024032057187081412184786840591392293337451834470095726131110908507938133353131391802323139637743253569355923653651442311097819700226638238836381424758816915022752687138889049822954860114644593005813492866490412813065096761117420159771774094223675712493977356905069391733118042093919124121013423409234899445883967301303404159342653859696659530181807758076503307767352727784559647839729690047729720321251392514780216512142511606186772003615678983404049228036593461257256948204947801744076416499394989545722648461389573092043619362850214304978808188092055054110460647549726858675360265937887112908615106705330633173498502780618337392219918682753964988582395125121803320193887349602521755793199907148965081782097764245748664896808318283214204250463174219182119056118198605651801064594111674662660664733470773664246356176793245171308231899853509180515504565767885005707181052732344520955221341460435555081892120761198489308274175338432006620045609793881626668389938256614113954152691612017407149960613825551195988724053050327115991821551117071086187343137070249220951687945857716652321430562099194303501645716880975855187234534999688533412249310304288683950238397703745016199339460924311026524839109121974784943372243438831249489713771910467187188591852535970887783471170839931052315331035447676033970651626737369283541506749747092100870329544564081678840500642659022312145633250347503071300909073337338763225451131336048645988005327025199123771758466779183886940284623694772710079326064133993933545018607753102845195177500562072572233882421279263178220821186866321100046466382859420488836745198942878802104732622893022213131823699523634657155303264544223987053159050216521514925129009664258402942788291578484211511749988170010098205070095687230227871342909590685160268425490112390038695457445501446942121871665211117156526708437090268710346180281737398282205325076218570945474866047428286467555763694249750682656694797744998387494715746142557321240586724317504885494129052020276165128011448461648693276251055852065386327583971294879433184162362161247781166009102118312124432478217790877319708056630795436242754914133147904623810786434117207598720264440568384922676538739051446543676252653477797226337519211589309295595960690254560933808007938974615362490998746334563596246916363240661321083130059324481465796585995400534870455136498193187919861563088499974872911368837787291196074820343935244363133763166060049461808614803672018075452839128059336921790512651825199120680590057111784549945565843827041672798233191120265182478939203634036444455393162283643382359466990035177544278547958191924023030594406145988243716605333854005146965415341327828508438960884327040553875283004191028365247930327564103184744395674497475825023935130730997174507590894620507590150089769884711207484443944479485569050945063567190819897111286084017052731231322813402688266404349304154753118426886213386304448301084709228074471436411636674453017058763660063797952813080690149591429774944570720385064421193197025294219804275796478309167073838692183550319887193772659093528223921588889549140571354438646703257435830579859283589465945057899957814676686926178419973374310744048061086983081267689655303557193954302883278505990460267746179495140076639470644875994273440726182978495350765710127513591165824946351927254710977346113415692084102230500298698412580072337366517483476723680230305137321509678695888357223134437344461422110760674749568202674262115346037004913177786174363498721725804207171146335445923424350261997112737530965237902001030300447959923541694223297316223599757937009135619209112783295282400682237401483218817355785659456234910343834422656091319667658893657956531443098436956766993219322019707409130273807591361742273602819067234181738259482038439301612654478209725510647354823598891145067205624311608126263958416837868649095405369192906483237933602660141868472974551514228557733593987898835321572191731931714732722183184113570105768038437313052422745721389325199077431897420466028691179550890954228660733051698274537760922091015307963222719297440026697000955839739222860196538604665669389390262384206754445335304217783018969928963072697170424196203472983418334839482145034099850397769665542538143482795258361742752365038393539833088380715626582312306907245586401095556623576772601225878950786642750848003712224035837866454231553398405049658115520234051064054731929226627489515876476597665473362481854727842655794823875401645514923839725702349689069683807349015346464040286050397343261090979446235155304209130966476640509053050792793748244558568340029158658875645717054286636440052209975446085179598379849142738991305669812850052750015030131309559061989886574161763802466385560312888103791367545594648216084109955413155551271932328504811292658975995435095526539395227479492878819991141473209087307004091868376867888768463582492804731965124854078264689381587074964321179125497678411029845738826434941086684979737910463848295275276536736113768864605689635945866789642546274901931482428405250437136251278141281718460980035536620973673455958534110973294188550469044705398730824028254843818347614055968621830481833273935344552187281052354325361654112585345595264354103901284151032151925649720407281467056696685534102580748161081521397270456376975218387709308613518184864323919495142188127371807845719521940368307123570704217801694009670104900190083520090909375085157511162209516239426105885537695996556924063513127280304784769062764954187904676716652627487097687775787882829592103722869620614508034231202771937548575962304983826784278062820015188128047030807335621972132014023269936259448023089314778390276870397520560893453974617170843406371119430456153308357186302741902748988780532409665071354527203277351715143122489096296837628015244897824254789510042306127321149719029569845585298106283401384001267779086140180383763198145733931464422342150344441775914252512356640011987718642221204006897415073820929306780814715915524734694467188687948875217767980128162132973755119612206584515563677752041703199599734976742812094613070708676518649183068613879869855295827220842436865206167729936078782028015734430220860662978805087289283558068039005355381756562252445586169944344003018640772448458059776144440662903806563589030477842305931279918325309440324375250264148686364318805011854194519335223014652086830019742484944212056006772555044054887650172147858680937451798116728670458033936400157940066626815740152685673872877887584201408818735877425486429681986674654407352939862815005396140798165518189499170995537283088596865345252242759936435190049044228524333071745819157230282355715126620400949428288285524944750072495202861212839536794483418289693391524938751751791551297906387761708145135203739817136835384930324791946207244562409002693855964011084995710944002627696159666494252547282492445516478833994016629956257013944259966510781046063137393985461112283894650319942918521022382484993499904010932754880014280430041565253079270875877540385710093333567142075936345433927998683209467827778708907278980352090069865422378772593955598094105113290553061566882973362922344676727340344505911669565097841757074898151183052635772092239212509358525934692464974055797471254805433714748096806163085767753392687279331446697419906757925300408219941275778638936542431062441607778246054884281724490649435922117061131515166494671182164237322024510130404179786564974403709355541299778265380424800202846534597701452860431730124498428965982902632222467057415342540946588118980395708785600301383466902703459605780738816418104641719476047283958323696474120575849297087277147204640525148143798294699258717088256299423965001386206459255650169381650521851502686159698892923471884341043735604960495391066130959378354659353188612490372416194011908236546860662223247084538138044155430796985457189448622204886832151364006299024666595030760517152727285712416557881578348343502954668984176233711518816899874239973962657712226921187750752736312932009927367116552429116524129752798019826732239767607702487764010767730797333658097267326076882094627855463249006386726149937939370148541832115286473381338321887814105860225263807516567771680173970173494897132711522494252697583024947318237155832003625411760058900430486796196319629786568896468562544614649369602772497223808176002438509016427201205233556938870263285860929230131493561154169607490720996653506151072015936589286378076595732740308449199940170753983491835931534350229173259995750848614372107081442744312178266437371771483766647838275621718065054779201964797781783167287386928907563192993590278263493579872329905695055781037129903175434239642749392201156462536668544789224742075557219270190186935881689647091641154839736613713395208529947368412336669860301107664269897381334746601521560264754909960611997712239830867743608467394705746714595721925524435963634373347466103182141632701322680638513231616908562843609366656549991808444740286073703663938724747421390226265115536858778939132624185842215189277517963036553910481545241321241335235568776634916086361319917128347830983508823940418195807519438474385033747757813617905733385314493851404255309299425420136591872308132858365526906388783943933210810277159254649311146585052428805557483501495537186316206004007668082197947340960516384377284178023654092959766537879836670624583637710124033716921454960301747086730986638348422835834490795714124327537541194017069586179019917835022660831587298947589007196673124932603797754741458832336895130495434721076835744857230600681927654879198797982400507238895091078218166873584741033174572493377395593546285478440245637707050138130598252766649267355427708720910051782676544316724068837813730610974292796826258209402115075484219417298001249671490804033210622165345398182172362818033529943885296717852455499396162489502589285279751209087189452619894108072105468304467853240383256583658130703816883751843093770974080927713707570406807333723175105706116520991698359842540304747926778532436941521607770041501901435723775838714701688902102977708097001408339045090253542710898004744450585907736198360175763573173048066712168866074053203177550671337872025702094279321942883824622234339152358126401789357377062284463324189925914933259608273925595501157513062755704174859323755070639733109385662003711803329521106145738316796343710781589290116190248423811683432250795693804236644516821537010217185395032186098097044780347125574189187161761100970991765655180453698454650342532010083565238841574694819573734850006552238073895424243376853739969233188964644488175892973975098360919253431691631449265943453126433772692484792765897447516388702515518220520226750765414413177608373285319417131328105691541934081256866703065938737351591454803537190171032931568130438932268919698103127089582513515665780169880533200329997426949816888752866934058418226965498566021996821182408469054349333096096863949548654432650471027645520867751865121894530770948240486848479022088020200544027370697592730771306823058329648261715757213590596638798198662066948112128835469957162123120155671103541999563659912857113517773256380297961232257923642364951552904239868125485325785304189562782923541958024529066609432997855191719924968887785085563039499586968621769680079048969890704181246538440886716173555003313863196435240718840993983788798737208350421744470899036676546671926579689186832590892030700837065790327029072258323972280096599981475660682161070556426787551951732583727203216539113559090001395575240131237241699760720469240162355867336346630609137607579187705168013395183462147355831193694126269152563976669703984457170905880628188448737252619000718195034644896631804056862284952939052602508974461923967755558944536921037070643369106203910714501979954167610945013879536495142886880242076016227063989314564483626423343110651001632004929310289116196003270022867201670888280470486289254501598539852196101547440626903113962568748487171647428203471636144251656439931680792569794238326155311823464325252120746418434307439377979424182797003561963140075575540232764033250070770386589938787706240973799336646208781657355085032512349144437542041312851610477237120061363245046502858884609157231750673893549228082151725573375995742979431931460050766577112916956858208385505405386308431591709086415637452423241799308825128882108503867326529244895087579588520966436427740461280373228069770079906561677025564354565386973216451175696858566641487375462805424947577462877022100024491583467706115413207551616486930800546377072025691196885176985982147834601161557590637616172099466069182454806918837080065442350258682260344284781654098093490881285345383619554223281797885507143201048949415115582558402659553850676626867863298336871330186275687575080834906192043753596900734351669162655002680134310896336938014657810098986141115272594486048477535919411153091357862285964624767283569201054169262565853913329983064174971511144823096997068884284835119580271877731083881027843411033577478329205699876982959490070912989266616650734785362814944358557309686248793990462068625745164693292188398609899984294460966216826436363157189120560071199828734951285481344103417489102086670460624049244629694542994498675901361740770990538105122249687065360813486951375901158834849863331977420293260354329371249567945663725448736012426934056382015808398923349030655841353145677955008831874056822748774094103804473501146586631912150375679204668127159082230316733750191391878655083020326698181883230293141637139457737565303529474781173207311179986769799970205840930164219986639398595812776904531652320408449762774701633059203924650065245416823940732655643267698159228942279380547609114006484386126282659870575282480094697092588651207240332965513706885585875374419397580451179465051305159925605170105842326587659922346118993991006550943096661912966690209051523284472089466332495079442946799238202706539710010489382945980229166293362079887713748144716582573133980377752027228054451251553775859939950763903900772422601966900821489184684329066603621734479417222190406400438030096514561901504385769480424856295374376231825475171142566658330903383402733290332724019797247850637269270284487016367812994721529532375256032343172008683414879903888527981457294158449817193034890630680396471127039110630686523342709210044980825327533277556970583230935378515026929423627981223250428908604002893736137720308742864271889253626183660575393618631852399845017074072530329959538889016840893715036783781227110326663526479759201947543948262377114802387060016671534274079356691380285031828083965662011177376970489846639016787236597068536172210466517698943801786327595369621378039933546318675612956750452823693240610388593040289310155214708844727066798056915617645810514095127265750004657434944964597244957001414236102234800545091884955761217986089276292268344880071463892144964734155901855948842112189681066921553995301052505968625538762687258555958709570634251714506834043399895168613116873007312589214485063260940329204721020556783795095239810410680783134202657818792530097054140020250448041398929879434509459415801516154116271796640327884086003941321912799713636108673997523165018255189529799865739357932167288917051845976782317086885312526908268878405053671540875922894419652277413801128511369762003466144442811477563992328246267525933061684894414539215864216702341054704685042550802690966376947990208355613543047301167849281306884599408812113263126960721888568065675444308457591266755513067107822729580388111508358678841211954893063073363567937315307063874347014903453674155406853527288675462517807409975583686668493202230708276704826405299628274604841974747351540918684134029176442347897213994245010478070459062074477314069604804601913450831162163676758750301194443033161575725137220497066312147504145259660536092151538436795941525908302169360481018300101826189411633062729573887262780832721336891244560611925731306772851740878631928496074756782961122354960961203076773613800640687139250993206008845610526555010507482543698604153833143861984861824754741846330666930357186654974304243380591811033290057920576019482856168721197247437043890621123886183637980075831695384977367739940112596477285534365678769445094078161754791867757585769272846649026356651245519513986216233722600371522732262045875232649468068521204293474241913679150590437531220204747694118334785945694951197981561655459228179146295744837485268537548265303147783436577637455039133420782648485695135108280155907554881902587130801197163123239628509844740331002821855612300106588520348177483172507191156003748376110849753740085363737777138193191218999256387502816102211684654445982634554357349380815236560138527911435838246242029206419756095290412076435327256326495143754562683763199099061781088744049355489677448476342836808184721112267088019312569949170998380560693774754202304707059509671740729414021163741106070435837027764492320838451769928684627580236100153565337748642730095765465999587603851041249715625742951283026265420489056803771887096575600731545915365916161444307739393100770355520837735763736010122477306772970162964863089853116442959430937332517287026070119541439281309690895089309557114739002136206076724791708493161769359455280154311306225820837069282174783889143734174849300099122678420928965320327636691303354691901893989526087548935480842452445011926643030870277932368233918848690253070723356718765280958471950924603740710419144175244909827320017065242394197076622268232518480611286731723397654282046785714257862368703368923572830533548041574168069587718412289669962793616388151629545133067162877910210286313429083969351824915936109572159280831284828224465754742911164487844251782169911857908535570114029565841964224891242938313897649461505673336838223179077856789910131084754786649162434926590902619510329379612662085385119950526640096533021337525424863102198676456288885737293274991254200718728495402073018291673804185267170940346126294943413775348592645153543226151073853895856190065682505227534823283278637552811848598349349278569410232523287141961966782440583371009422215899852631860987262015510842735980767741145177745370542937219114092095777776656603329196714412049976493709111370544812679343530101059472352639830638794899406884497203989633040387388418934816256339317370378330172408337412122582480994209780098670223920104951411523264966882349518175055764527156502026600654359842671655461824730145306318138250072146931043303400521795763003132211628984868642767282107412030038120936847238265405885168355038788625312035851205438099921064531425078680951132719230120325784546197884269350002545357526577517060088193511325576140135788867063906611291074467811573326858217655675370402629015960203792494389742840363565534675316591146595126649275881501541207786008348763759393057635847901329666055789484971999757217464851679267294514006301312340448516376226999399811045822797866787955625799497495317742447606539121613047442770959141677912677437710961465175537206910928655663766128068936079749663948799619983235888460732962042463085901324729802201043630838672308905082604526576322773917363420085226892821080538278413140497932305698162224608127882264628636852457568251663054606238931340518085916421839973353542924732309965255590817023265400033124014491724248976717452655395528358519086696113618588466929241310456291932127453985952181948370499706505692381514275316477552346046300582725281313625192385180545315136269502052432169148953141428058038176604863458952197638805418325540935349952593101698521177853649089060411815604927259205449888016123694320533036012877535033471500714988315038194149671276987411216607171950828928647518877990908146683554888949489034878306359273618989437371053739896450888745245171006266214281964033902614266095735652036237113830952752756780157010752864602696120325240928535618770768748589636889649544836447498309119457449046811759278597984644897358679605288092861818604981039488971715485349204931567518117624937877271185288012677830217829516802927596832467589211618216953486282802537486724186849084353154368291744951280743386203287105633574857168891455534716284678980400027242649574917390046351369587125811411945816582429503963122118377091008077498968593891947517885440699886381686691898877325526853180320445109526186676876674123320913483129843786911778820943238232121220248154466502290989035444159189537872242267279889469340200349072283892361854340584014970256017729123037375292002420219984790353100911120186955510372872452467699643585602314650887334232820249747843263219097644776088335079934142680057928288395383312941488551921256412338140463214873926852310390001425794991415383966786520454749350988870442818489935596684032195912167763637014980219486531178242936111352594185016123898646439468287867787563175545748630558762318435725638502293766492300212166278798927747724355682544515466907690917218439691284293087058074532463794816537915597107848517489965166822427864388616436734245822896739080527442155325623087534119790670711252234156216724375372136614801942946514699836217309998500261198707179608818844732129408899450831709511261371192624014933546010507200661169718156012618117270604180038274754295911716294032673072419117317356876895116487378094855833441504648438417356890011565210446096118604251376976496177676738183673848101052029539644195553977094929326060559765576835862250346750989958952868390917569518528635818459482965857005366287123553427789216326290683100845696175781967203616850323678867760868620833004552720356297276537073028832294966123972112235970204221820035330043203415809325202011642333013403439773145792459852181120087020931518028364735872797930844364115138717568803544238912454519029218707516916784952940642668925880462026599298842201001643020825623721701038669981278668664445650968151929627539730569746318892168508099702485449270557433134133811088402380184144547724275029545453545837276270368255442047098139812798185261830348627410440072831191924313406716850279512372148666779977464578488729391078598455786593319430050103048081284078311374119076040993204893211828048107777574814831320427417371797606680732761617831193622428826469586064285656026656935903397458895900379573263590745337443944355400371730079301290338967134505055852203288270885619126119927761250499644419391180570254774283286435415033719070251028844952768711237643280793069411437881818270363837555339008377543540619098842683886550166345921726445466430840344183389915085218196400243478305825416995063866743733743967198317128397064796784964055678573017043626762695850703112200626852381680454674805604598462274030079131999776668117326189162959679192591116362687506787079358799753437194207987044176147735939565074333455225622789493627930877379502213240056923156215321502043997509745308798988952711692472113614577116192181898041219309119360638959196382915771319432933665271444181668276827631009234277495072790268841728104186643869687839448811765930500767364478007672033975209316333060764973381547245454282405446572859607777571920176162007881405892304215814348828087115923413636386619941081148727303113802254907447951622486018017939863069460829651028800220220343440545465011012370442836219307550380041563527869602647399636620600796607792757980007064347425493441307785836709896113758184201646254547004444428012709062522238176535940531963767706155985000242685079290411103097345048645243322144337376547861213754223927674077838536275790257953594740316063071279409042873651740440674486165646303403326359430476430788754365941944036694969599924440716655257106462159920152320492618746582657286189705896497294594278353721235180802024057898729006613484067862195477531439519315653384890367438668284422842053680232531662138580815484939535399241964411426267654582176740897197052977458735599317754444995677459041285502595587559928649081687223208714151647395479820020869371321610875825000000503571792866176697922098831690158947440552507644975626411745169616008479107239856592358700885739136707817374495027183190010549961908239130041241762313611742218328843992927834756964998455956927508467936315673249336946736647669735725272245056484064695942694621391284420634695976451765714559892637826099076435196882121271294751875078520687532679654780488052660165667034261943085280162169013933758342386055621030281033094778503574012984032797898307662058980304450576578025056398513697290194829085963459961832533677596868009350404382103291854311939690949645885137140114331158679254660588630962873693082420116380655651509851261421182958994130132127318033161865136315705036554094600653698498527175535887122063866297123207821641740964598922173656555500515233711422772298137492584294892472858928368703531890598252589474146975453914164823950543088835395712338813883388036953841929996806157416488806525895574354467151877439410168163813920480597267707534994321946092124281995633557828557482842895111995752831317628869424503853855436739902215464466577179021268795861488806222099000539763693507158673170008721215400765470838753848007595296871141243956690216713614763402772425295543710738741552036044326629135902757364511155414138428701183911445622796387481480275107022741251928460942388412901295014088561348363985041777228326272838873489406912025029753064434665122180928463484830819868722353665482416654356152497006156937318655132421247097481966189719749355082992681214800652955208753360765815328732898401583179519689885325487650916900999443342514957992250254992937516302363095043953752740462839107951469544843970548891136463103434113606106322895630227250214257728010920113167714062553996867936222358562907224336398118321733866511424017781033527122595478027591780502515257685780216280100780516982386269905260618321666997585387651767515972622274564551727091888381815024437613090490073578162962691926832021973800017409657257430434239165451760634673200491723555848570932841594834482359398786099698847913519082974020186562608486195093850600727213481210711414925129693249388854844695891641972480197397595053026488375221759845222560741558206804907199996561948420344236382990558506943680347051198076047533064233160458510156410642580946428982312299557559673876421671791818082388561948589602708017733603697374982714145782078254093492189341921418295116564184487688525266511606294149940951189761743992709680189982337277192359322764045257061249778477250735889812138513950779908813446793134185965315021837445659903242295518380146797637046701449837885915369504037584326422892378442960113103158944228656028554776427207086069076703752989105534374050310131292867655863856772368664846757164549876134062322282353891880287385395568773107506863784687694505971464577294512802705149200215021644556198460145628840313791451723098642155006532319148374095173017138443825392130330022501120235480789975495108577109197407096438638158853765960309037599399364791660554031690280145602194029628949140176254715358402771623693245083725628528749726946979963797630614488698077979826216910801174655238146247490186868386030311616710930677412788096087235089306762089391535829888307992109619095021046946695638744322891776503107460263233993068564066071741444552975576146817968279702729925472493324880813386777312168208053147068275964884556091307508183739254727565075180439750737158812361988990367725018217754390164194161308757253341802608619070381060974569509535592717167590857693364746984141408048644797116496836658360205472256505422448932813555798159376420619573139921875498967410686568281845200607467698679122933536799573281598509410329659629338378572968771625451623382368717346624401484222162335777555565966001461287759739203550545666530467740938599907960161042848662073385989778870472171621202764939286279977807968708910368881592357540367155728398279798636697968740245572902421616346915410122625710623722446209732709472052873966604635149877805125732302857761928667334208135343238972197986562863070178597235701962162846554116379044432767634225674248200855535229726364025102681548053459301605408041368690455258795902746462364965367554650146118910671867445122869071962116823627563494022666299447720931100277951534692919027024515863268008354140870281056165303817419646210043923774207815923153428365427002701096777678935626191932095143256894267821668303442133991510719100362902425745685617208458119798225240442753751128605914086776036003802963241096473546828435197914593387439596097268679172676894846200483620151863856197210994867140311757903206675130297255343090186463582875701955871129509186563111490122357755992291259723980400332185837118912541169283557599677186990254560753771855030055643356377271282724690166916660493021238944106410905130076214232805638401603523432497781434654107884948212340510352798430778566103359241088057555155943951546874116705454200366556387313739711022881861966645136340444675017763836779618628733138602787995320811986242284554287938920543350403804996605283013831802353511147959923087817334317701897088564705612143469761968069578981654807369251801118020003209193484732725150174878921118174395413949299928495928355763595460073621440757264829421972653832870062964795310869606502949507535141913489875475349790791634888529083468287918622256283346308672143411229988418649255766327204305547876200548935341370855549286684686233916310358097350635386554780992079703641668302804318358449916744016948801077898006673208571619779482644624187641949870405879865115744780064244632957716951523257035291195381400120014737522459427792056904403204035762057264875598025598251524272500804762038452536861942620695705577046280733876980135392471639835608184338334415894504898301610763771558913765403352626617761033877043573863114443409746643593206190952687537363142537724175783699304476518615809934905546730266276259826468777560724018761047786136437369606377040447558348765940712993627019026817805186281584930091034573965578797780782497075807258654036850501447078190871290095756070952817903521669479846925480752341293116166627338704819309621254230313343475202182760634398889525029880639223130726923804246565639852112620895709138440227467296557648227160255330052257720312910188138856174926423791747702004918074055716587525841296377804660725916610192414794257975164603020270466318855078402779901385767916428042150082276843017568601645657240424595813443603286969467412033502971716997557268989731436982580962516029684287492257904207222499985540933877608986171295984369749667467615349080246373200512518824755567773472090555859440174802826262246823424612582268851632930390340830572795127884191327899092782808486462343933324864855528371874192161186390059228852969053642903666348391416672275125052141924864502513747600058662000285944004252307640325725714926439276600504303591828807009106637793987668714831689246163464416104465249605897248329795591992457357661728389558228577995381053786745621961281667968006670054969088070532066331661040604464250828685221313266516696170238659531729502017903895725524441388099881254286135493799559506846991428577290211778840340047153160477067402240399540933974536605067356689144786230447276932437481356942359745568959119690462778462736290978177193151243630504356898242685936835376697895901253557765058346778600932855244796117266515780137887670380990267314772379454259679407394841698670875919064438639204992685943962249633898523273240728801841889078686273076350173957455361149375212386636814632375859171032745941262278960497861282459277372315664872299513798959581445950164356150920167203852738146179342302967144175017155595327308382328564656577069499161882347165932697646663905753832512513247580710823084477139987846113775818542728360715027668216907925145647365682059192205740119072763525788610559896955462191374566908184737494391997649736325160115097180346011313059950292873413800408740382987547855577845604762013190684853669286525365104351554351104755751978422282921559512537339876997908669481171819247916806663050132053085863620197611083788377103577333078686251409076323769647090470681725910544656533573152430509287391155553756286546963458316912633359912808292334407765790891147114716396537762481899956080336921304400414357882179808437957614836516560089033055960485110818403274005392883501202647154148987792941234281219078019888338046357151866085714439843643745239357536865877300031137449766254969945925880511379318777990776880268813343129164332823228596339214091668186258125209657442707200102122294799525762490859881308087601411351569644551855276727520415117051739146220789453537588258795761002125303622639389907803823401326578427460799155824137482698377050459324910745785493135249990343479453616015928242654645993791728555038138470960269218278929987810819278096088061951968403080501940132484070877591329626172113947423039619313732099151278411728471352378805913829681784903658718861906939086769640225532363020908404892486210609566218099469824860016583398933602463699527544707909451189154986252583593781739798417436196110389732486364100138978647194691286010085569276730706829073557745219346890423760205222582773063993810185192253290344292094851595157751846362206115051634733803767127908827161992643365264689308846329166499088798922354344805109464363711283419255208029786582308909703412279047450895309481240750566015903661165641229096280190513624315042620614665429793874932513123732350503516922765261666558697313986902857035978273761159818848043193425542911786680869309950946827190874002662214046244792958258411359293354338554859568870810969938933743151954432338959550597882912200552096580659309686378294607569281927714442443125506234940918842509948060668261034838118664741872034199061731846155421685610641713171572980839124220463453408299448213308674457971634093574237655264150543560414687951753602858423544836745857032669092143110235557554705414901172811652478112491888265457928908981585730485059977377328862427752003953203045012091658215940920350223376818378855064829625608486773253040085606574685332678486511424865156855922760668639313920822183279265510100502374466982263751350725429365750626156477266226044842792865491113153111503737966995043050289303679979570432404298279373992580140205536156283133342047049324673489377333681605909824215980951418919987383585764948454616691140832247137048846948511855730400473658593073950340911635146902165995298967488905358692572779246938732064272714949136031286978658827391808192503167579553392887143354252667368076539103034326735207501996235607223456914376779727464700805892545708237008630816535970676182220453814635227525319942703113393098640261533308682756146036533488052444601050430243563745288148087202459046957837284095862454105243114381118804159162038891972910193527484948971376761068808404689140714084560274567820477092652640925074084645830873512634983842757060320780893107298605516923124008661006421602063086219752845720069717827994175935667858972199314870742463606996627505952300454672632357559846511176717228455452528308121159658061942950649549096198664028713106715943213590554891194979359061084836564780163252451260616068067857678364136988877915226442100481541764329767348733535604869434410391823273767358642241286385074709478585897420678938812339286283635542995231965750722812652940767667018778507070585284541338485310620592452192555948161934406664248213528683369265897885726888561454507309986090227239263458555266281941220138940509049310661913387384744260621813470623106172844137362082812774929775784878754785716085905060695881821011122180181538848791566684838640126520853741694172309785683665365665661469672972401448883993682956625663853801838793972067138670543864775301634255441704188324662271401076057781247218142172706447012173630799521982485009621876419243166472785016059120187788223821351102985834291236482602028944841682575746489498480062241042456857788331717443811522186941801481547013001994214790077287042452385912598011482361574261615115377171806194952756349024769110284979519948398781378340267292611025606287726959574510893760703417787074387971690564300767228439310470506794326813546915213691501021208907451318743943300970869043939331738812194110866117079802776422663316976546027303612731414594015297091205205825215408628133065674184491308360535686651507663697858701933111806566817568288032497329309208730364918638240944538371764906520863416896321051398882874964238430618875031876668046213170900301085691263088764819207254319850651777979654872310894291906349715025960381626294053566668060152571179689028575652196928719182483684605806379888906505385970043843475202357747251084160974617825811796709254749141109535710887255888123657987895350319543624399702502735074476629131564061992369694345570564637026193264883421892955613622618361264208319679527761321656457632841798508109981644132617392896884910693773735654738554769978884399582792542417550530236075267236599796100377031594895081688074768437807729835620193410843655102600194473721992691562962527102600277661204378924199699616334343004422343775255763463292950907282781585565241037408985947779130477117961440242081674372360241373799181082420924984116610476875574971877592863216203077996505126119018796268025630376984312139087606450269479981016230015410416161124300922930421514150387015589060837198857326354382591762512993486443724392511466719201537527746399890912246140252923554632131808140946757927827673019039882740169249670127222229559551255953034208257322449875730458411826912246862510314838709778460660618111411397769826972728615091931546919420241335237283607348394640126187919518244267174910993060751139956594903565116273564191944641833730863813876079218501457559481418130450234151175512496176053342871899993401374033058299638143650746211044824666751121542601953652653084339925200404709939273407635301443549825056762456787879096738819613640057721804809426287835333478916377584200925905230565724691605438322153905174259807773869864771563595028957252380880320189861703947491156803901963430215749111549389081034077043304562414479981264311320741533372305589297271503806586045889532067279661468449344829576182825971639700672229910732499560427257149744330472013523626152682553423717311602697698320345171527493672897902947363518147218275659635113942850685300911665628985219931487633696543269599125983367238866713718060026802655931405980242234219875111141691304610172426773168185427897843676954629835136168740102111015148607124568991238449216690377470203808156609606716584529264077265478249813554295463457818687310528709870429067308674622998290503421027124111166342546032331775937309303348526500659436396185769790149560608335758390140710171219308486353966417910779916248427539430609520676069844201550133279682156846027959934818029344524436737428077710570529993652994284953832404904331660199345878104340325735025713296858873801804830782357301392515941469704391531151806617771965762065950293055674642915440572660757797813366212324530697101658069432101403884827793779252250177039741990014830979441524556451072029876209459226039480481803916121655938140463309101640552712273649046885634400113601392323150669408089649426934460989441405141270335400744337406512393509790250482918082293196740802337377508977173824059345120281916034423172670524877981881435216410251875969955137773209926958737691881264312970283275532558913737911881349364603517414699472875906691279482057237781841778851249027012364569849811605657117927278158527173987346350835018067333296248954079887942892499206778246396656245779903090031087673922646683577891610621886067814209244902230579875404644302890299541770274937107883326070527928701542017322996479123413792833657082790760767260313328132142543122703264389170314508390802998432776834157085114636918223310907642765148190376293728964840350702186050821842480901563120306988333561520651449849715638093979616790537304357426325711612685977206790026633187962893313745717713684259709071388151922457476541437371157133000130218855987416075463113677607405232033818561159022752284510573911929591122782099327615456660630142788483603806660189190662759235206150935694090689242703147173016530962730223876647446601577883247062067836503602541310605240784007229076701345506080806410224141208523026049716902957788671133925358696017546657876470062800975030078193587322446569566951648631291837488715726709889857242594452269340027750499024373112536512036488574575529000369867335028479446716841352915919653260762206620798059616231796232375923073026981313548075441307034156137520427131304817752534949538503512692441013858911291721990006851883985064885408525061253100126306707612429221452651375386488417543035679875484884099061212351846184978323320466064282238931115697023615476833710708402387060982776847667084054013785064745719581178140890492232160242054976714900653322996843460255322137997660783100665975204077505711459220594682623179397699196442238569030312816265982929886725207528677292878092214766439561768279691119682541299276897260519244689294080432169866178380951647578736179396883484494371095921302191075097881375066729026007181168906615151012514789615760615677785967334885135465768995523931771196953643994138763941028502998739014140743601703938601387840775457072449790314315068764543514529500565498400255585932438250697432565310236068475260428520917706030526211859341474222413451838566701427537140840549160354798305932587071926845435115277286376050358709660806640165781464648312802506746650456638432359794218770404674006891317434063095205657743497973756622365156895522742587115058938870319737646154902377494976839692556962659268340616288971879855340645048681630232647376630715724226347225752357716866409523966740316084485690097376350354462753782597360503021433236862815392784277921966579440647599892749291531773438910881898523754756717995312168887352052999357077184156084833707722998196166855630218177255863876537490537497065131586097829561031514003323136360344583982641680002341173655760479236302775912282467067814173563948703513839021416127336172702250526889288902587877614680028163233084261852035152755589642637577435370476313298205947769067749959369293450612865822743847865479662194713037443782689425326777914569464731636725163592379542969650330773790852749877892429296634991693770740974745033048693125418492951284031509776500906959363109944768044851571532831259642999228890540743986468785028161117379231792879865539014581712131816457667124791164225181145043383785140305395612208567553013885261477556047510193433857799939272753620275364582012930962628134664125237919490923477013329648147776824891133635243020662966053702569463435813699057664236722728368768136118680470353329011332224624212146047913656110779365329117849791615480914889983503174670709192617654639156011488813549548229630256208157849434214289866896744070237064943952919395922349393990162331519541373836585291121849029840639379296335129999981501143398183899018894682646857623991045846018825969631342231240984421866551172566609182022477337118742671770483475160861707446122835454356205199212434869673350437125377150103291760294847702515734570266153111258422556054695396521351231581349503051450870924259481364393722022109134113842592407083175816378675538640065218993735149897835936650639283378641558537274384755692567006640939049514614815262720345159988124573151934732885098673611681758363475150727582116386571334895545410321934909853832719921749903898134910463385437476097430811261895454103584150806619111785637351004564445195502774120302111675711040903041404607946459102235056300859308210991289269135722168226880784330199675522508136714108786435964127614288809789865057523725735990002661319716219770550634093474955658662471126018228001846593982089133498380317561395406380989371612171936253293386884284739473144295677701786720182352581000457657979333164652695278391458619730349580766480557076357457507458997664979306451616997082729891550468774790837058619675583135643680458245594676231755059156481442519801311695077281402588998726554888249181891424720007944221392051548829654140477797593300158576081657429394663794105855936310600168370165607604640658529854645474699406226126874897268352218667290411426317002734148685885888437023776034889432888218667417035777948348948489900430196314323182427021433416972306264847605675455355248234731782624040911027059668013630509270187271640610661411329125821936011789823501471384754729448581306523808686772249674137623353187097225803495138445728250993510888134125860836432635541164604106302073121605454805463692734723873885636500184952642440752975991829550960723315371439167256571093530597337460893564603752682703250342372162310341346383876085716023376703501982843759423547150397959532601543020760686786466470877642279001635184060520739227128290210512025680816417458836365303478734387683702001757894192756633464910763116530498416103155509859358869296699952674044037212917025246896212960594432598711645239005531856004718971728550687965681635507142847001194045250159913268563809676526471114148944086235756649264847015649649872283930724063660373923659616934522409326370578998017440854879404841577886402168100797903258678221117138900050464740098426770421481006705579003201911141813312047766386447064617718706402541023148673936735307292407091747510135033788200772775013926641491725629167796656688931902266290411876441423373978919421391452716284787559638204097597473085167642060037483035715977878232015640730298746175727106248119700986864823425533543154748751074532650597181282102632833635384010302115746356058578623248149729768585445959938469608864340503356521846086099504407977835055691713105035199212928112636446765410742265101678071829105607215233011948143557015496026865933621695170668239433410264648855552353628200234138183447972969673949056224489977436345033844091628780833844793719088655700683562521704270706915986116585254860014024402901727701198927788164592389164224203983110685540249075627479450864648018953058942165920607039150751657910282894469172110204024161211945693923070430276844953507284290024423144292452397895983521060000919506635042546521868564723010176364336691459868931672563777341889144078422097641518956794827944622664379827353095144726850531780623212281043992991088346109246921966919572149218253794030906717329833306151296423092224975819258910309507204423316573715547196198275556585935940911346664811612120192827777760611712102502338534800363891668194005856170344495400029579895676280027026904113037179544334646151435088461102214871693129785812184564744378388720920405017115887307587426208014421506109932435346494227402244087685673168838502321942258946996729103018787085408754443702487870576423496270665816818863444813711748999388043382356185269987326825113317656858886595045621357829019924241860720287645990081494517398913440381324149131920239611066900723317390455923187370556309371233876768332198774786608639415673446622637104445753198695189282371430875937291252878112977508918657914041154867175926228162805134033915529736232226261983940659341071755540623353209175337034486258696456517090449965994996591864570491434004342832428778606750748042051466257129917318776900385109638872116019193899329222929807340954047167915183363781931839346451254511968956518853629750810815130752979919921873811229604093714367015217075361238508074219118769919479108546450817484055176504690472245634421614710017979421895355831599272672895916515124598985596148583819838379584442662607752899019353495291638450203448097580961599909469904887754258490245317129665431174322434395850438999223790163771707311893669366033722766439492093460606727023411413216048324788683568873276216312740320645220750767696496297514450274858119948761335844560025922101685451681320004289948590533360734347924712209378027126374858426140388857768333974106541278862250131885655122106459778396861793454156045220801524332043460850938371568306246102502954190821716522621130500836875700229794514402895199475265994048911732849529563574042693701214326206519971043861663302328160301138020557208868137748117839015679126574781578520870503524382903860122825928001864249311870233347471912337634208691388287058578322366287769195012816003522422952656960561494874780180198306269411924651273675017559779926306835410588335303996550110714832174368898410998758143482127965136468100814683880536750618020723589391407612390692906302020287079751864115760425376375070492457143819894020160164198787433153155967074405291187177262125823543119420046263201499078217142534002884201669577886346674064262349917393657907110205180050962262610227036384081594500483497702628473542952944912659615110323320909970541681996500036580356309749893432728332765901504940694934659515715982159579600626503081361717800172526154291181348521302387386756074629024866991556412919032455089615457468751254219868839574510681549394445790290620215947773419130321478213162466586632580652817301630052523318156053775496538871118722714805725063207200435048667132020222395255055272711625425204061249311018945064217067598371536006820377195842726353290379473572140581129134635566765848798687299538450088556732351343931496996497407602782833061724188307867370121559713332568334915123876121911389451188939944618215552122558734678687712812910274128506174874262304964429917311723839325719567229462599243665406019493820512317241135161460032707671203187527904198838121645267530768627693436368201294865902007272417174394382085897307605055935966512479847991194733175770287713450336631408944063435808119405732892921010142200442405059446230165504693665942826616874963233819342201525322975776633594448945749760556754296859650387007531280623219943128067350045961509636731689607993922996592602365455832971413751833238539956178262700117523315901762696393985331591874864515680282765723835486036132036303457582560843027210965392409784640015952764706055446746822134087730062818005496479334746652046947295740310451463195267370817999256711922683816461537096012827541919005181215635171326786604001149757753279290039981781045099365739337404529318844449763883720862628868515813709350779804064735717312186076936939769835351754703996299153408062420004861030848169638527121343380567943570159140183560240125757638061263285794147658994452137675593115242860023788919744569255810676136222515972942273723620989749634301444577156036629401326122529139918668489562170967852812772627350807340942392812301124905075333144189232018126197797117317437550870725066325719285504271887901569569055396780379091707909804125714964726001454081581753056179981592340683064975938687936578705180052193773565577444404894527168993430767054221573357997253905744524563355862399913333599973518465103620060446763866278084165684487369642391594044192400030900285003516173949393909044147940417936491933234930568790708618905396921003277801193381325913222357837233157282420304084636969867139491763598506149511316906457571384910293144220506652676791116891140823283493127308031526228479221408553059838088725009393180441070958394159603688350832488175398671033068996196678049364668777058811273875473805800665609199524140634722176276582445538440988530937721699104309391477094131651621209994602514910202180376280574839676735358331497081320560836750693020213368945290521755254913272194464431372611366817147876245869485384549890863576967568931181578615885105384606322462544326439936207212366683456550435557652092885162743661130233576530761864568552975263721329803706630593531736633217575841908144391888605615395499491553454699909528475231459673725741451367269720539271809760373974631485424859910676894144862495035642531203204009913873008315676911611757764466222787774142798353816724371842789024337578998477063765530927065183625902380453232780046791761142818622336125775187240016061950942369525602325140238751653296427988077434298682194376455672367150746108136252890989732619223402904295374172977018590220799737669521994780888552675803289144976012657195272226987210935293219798369799956090753794286043649399891324617325015649648501701188028832255210551979519984303463219815822197266729424341413960974633945359391090037444034846891674669834483901789781944107385871802449386436540211384065133402709891933693201914758303191504992380834660503094242422511831004352877689537603292931688854543064411741014998029655606209133915174093085525393082955407957862143506780279215868294652468696849453316632661037838952116417796487515013017227036621524115447128980513952460091102456309935258375093905725978228371671334964105792666724951420129043677394864097777205127993004900870368505335635425586849951000487000141839447667851868250334108135656190957168739972375712382889388026371253984057048051078847545159622294781931278079255822712666145159705845781855438824349014242821177148410474930132389428789352547403722200090993367630911931626301591054689131204984264813916002656540082892787914736340079559371282203596852535472590033568826900506642210271905224518949173559837612159500409494906315579271428343259129171665027343497330969206546611135471719887560903250011577984049239349174416377615554242825593211855279840488696804275498418018528985468985666287945763348071316513156998689477473628826210644290402300786156203163084989777619050979738067221646070341274533355316608611995852191189881817403737499973352405692326869216272281991071492948677613839414839774116050692723477430860879547783580072496597353114310628400691211618476388147741842016084899566707797153708986401686984985314937120329015192873453098290376543701673307986887533088631070966181296681002881137770265510568922916266781628083937956506717297974345332236969692113644285329505246344363462590620179336655472000757033904860317848655087693027878501368257904895311333208548551512010800364924798434814819455727551115693259929622624511712882512268418161535528741680418613461681416996246331207744239984352287564856193062092799319039348601623596785968419349643649606128393859020600992408600067958953865184337565168409096610981791565922064893691040750471478109275566112959756063630653878436038766681455818033005762277718556282386041530534143752056586311275793622117564142393433637184360951264623383418382483191185509004098009567712419488127088737426231106723401479915679243490287367984790090951399663685671661952093421373637461079846327631851407140743039681343128067094861711967143498772226527668267450280724625616542193959475886045387375875575660964399567531812543557062787944265560081077848752839186208677845043951721178672736168933910243026621833844082031657191156959531688411486700631414061184597706154883255202453983517186280439501543423054834274952030965663791309417733859872717204971796656983413257984924084206218694534516803521772945560809409986822568453850741751204842854289286430631748110554927451155379941317591590438842470175239956156609387377060491530084894102852216779341051429871963676918859094909603127186555354109114837982003981064530090276271712627234358740798031754891649834025061715593688023956705193521919211486955886589134886928666124271640675920769524531622839252806413744185027847266430826457200478799221769226237049658375844816660176818446683722498650850833242012041049064524319215503472959853162712574597705961176381539258477768780332350098933039439915345092700562464502938625883680321799840986754469606372980202133431649531969855228809840250153735527406775196288112813330192714160486638718498763721579978321936361172480636122443250580692667343476698061020064474317110995060405850131635912023314981911164318013716195317145171470669794431950417441721613112823186473247877030035142650432287538617793047827116077568454283213322334786346451980188794125100312716244408233268943195522353235353950305967015165452251105369649083995855866852823463432820367200078542454802448845636060163059956412631517363169987544855812093393202501214780914996831188488886555916426753679563534374130005500434972125764334123272857193855734047112017222642551124316588288902111957362223019216596744480040558627408008364722178856017634416768522126204763238219259751932902689312771653870340984342632846741694757343080134342250908180476698056556834554191946031856493973520670683471961811907681069526103036350668583460102822141582481125454261009752224206036275647258002178190985930950610838922616881197014443544569336390742754281502992613446322308064249504686588761385928162101731296818980956980757715828965637560485719263224905324216944771983119882703268229150947898471385837739617969278905566422211164657494406503452421345170213306148362993475231957863991283870070404517229962604284327917174126991864174544127391129787074757730872990493212783504926080668201325322914476255839713115082685836525367156543509798018883872734477220362118193459331965133745547825631464064573860851698917217063524703898754569688018051140781897642800595870901994236928011545555371691939569893935259848212575079816579288976905306452391924938280036922702391512184088078506993821943606606240612422428905593873425764116177185715578007140697274290794270993672092561392741193012966927602388914345017921861137494048666293512863708083372214403361161552881858270965589127294566306627862782208523056814242907411892083174208096470355690474504014321429545776110962243152890302249318164860200702757946248811429319894832059507857827428699722856980198300072225259450896542184346511561885970607041118291588904274934083495263983667466820869589869768400887656102125949874598791879210006427648053555264150969649756666798776892911554225593707046145108570646417311424541570794319350656473044851057676997998624710951325574137744224465420593511634537981689306013414365928235888831973041578106713497109842315776391576722600652212950146113498906118752313154013767643539393071258294130317381682248490570909158505642597769785594792386400157503185383403851975033041736811380077654926474320064696559394394724928197019628446483589544141272642548276977759639881522230568370247319487821875302354883296298934863558343933020077666164547567098587366040078095686719892364063290877543424068214928756559827685762373003972801346041800443053227398491571441045002130844914227841388706302097553925609877838524418456222601481125257680147599522727748057143227318222030650286019649934842792385751936269965274374473085928588639228366073512928375990485697893716981737793439883293316024065503039556853865916034098171167138398478848526150902113482606103176649630205902947399346933647762838901175967418899094331047727547816646611943546500103432375873257227118060311641494393066861199686838802372975661574797430321989522123569250460155685239903244391916052192977452912365352633798790184445713957316905172388635508003730666808338949654414809563129874401321250009894580427068493750048010079700315965398778186835490185115465393736712283193620900698532899356947559050471000195844546589468598973457120862456959628707022272934966141943411081373025241302941097550371447331460456606075351325633813239015957277902527207388687360487142472259331640963783175437610724099291917486076662523648346982171792851764708088630432708382020210338253214203414496913175870857665323336165965441570444653858153298832635679110204947625993160125320535761510417343011708281064016703340243188294609858456100947675541310006139977883631755834201956979009912779161046205249583329978135149449687259129778374033286138186075831194402080779000569605030909641244032761598174496833682710243116990461450922417253007453284797621161603236769694548863644506050176718195331864284768788227960524309294948100626799294295639008553770312082398412271159360950136237271045564077288911967348741748543237388716428065783671494409909000034056430057944200821348414711707476132138770808110859866573720831255485258024157480372192247150194017820171224652433901284947709683171913284055565452762168058745225518890538257964032841373547160221200477269715484719284987144737502736852658333479743647468243047470428298066912019834056779902561915463018319280019054046323397834911271941266196210952935695918179161517955387668904030298841962465121453864138888431719284132630500454108623242439744749020000140760244426753233214754220798387354867478824948929227387999522672035040842414241861991393018885162142583223390131719414234231029286671076580421948497539887432538358717141456436356081643175045172208724215351409253058762792182742410401217044467734902448650463535522986603283735648833628788446804755205292954547563667887319063219181109474498559482997207270373667409191486293038787796123646563691324542025930638080525670560852221245820059862002357702316578157759841851550702529921215875755073433481093151344856166378808382894800419021296158233264097978467173664181564247709288195969484640725656078948694084847729633335545788592833181148595963332919950486218628555211370791411079070811708294012297465327760289369973896161049880906526364112223976205163670180719467854568485442521908897762814926363588121456060420262932255107353049054708397580185927650775478016617761989359594455095997330969037116828166132279357273206805714387438561179948922091213898652349757946587377200145929594794414705174799276624263939864394337668330964262726136705090736881867874714573286029435522721013991845536881535728689504654518542026294993980943410186114822844763936292195307183284724106634012338661134806973720169025216042523338459599711662767458839164859835057647559185153321382947419034314844703679457462874574641353904215670530269496772041618024154568010289711935241298854569222614986707072331490164027505118581828300894025962671195136320404718129149301461444109309896346850158833512374130106339589788024629713144532894224842167674590274321453727280806495778854807238180047445072400477027424477563927977168517705343148943658278040710303366821000498880596626854946339847185887401880854600790114748168326168889916586779945202653569282389590756436064235078994329540357653904645699028513395626194940672485517857136469123905489677385846108167441258417951818390568582636954020423240918190476185831212115337043193778100321688130555770552471691349534393548957896583627214177286354518919602376696722664203088333973992135785305266498338011314910876132381983234354577785007230660737394622014092378763676615517522052929928903888846050411300801700709029831620497312343482445015962144530193431092496835150880137837815444363550912413877451060296793914198264206653733626509003639994492489709434271662455724641812536527152307478303070276299969537623268584818787319571822602570718018272390634802472316169756743126612063751820931790232000176267454495056845026727069302861757819743342836557206791594709273621257942668289744372531340196792393332968829053963450799769125194765147674637991102200011471277562452078216807895517226497264628544625028860332764206623834411063384196946293199507799997894752544049575690929133597818064587391428615622436416001866067456811825089760619540350484761092434135765768071379921006975555597730697200159519048619369428751271299602020308291224209589227717767362707704844373301527343475049792252935923601759637969276114153661623922164493026374974420924227298173163070493284395507007939505256636619310001013385817477252352910835133800387368251670754131796847002699817297801185976208797828448744336125364954242727067580122940478742916919464396578354743813836438115865468365433485352787126610134251374484923753937440569462545732650641341231474162079745165773033852624670517739613416312604311985888271772501930540251385158556700919937615632562521341793871202863491423872640145252257438843331819781751164184248621184915496388544979595957020122214720460042572083619968632795107683202846135727337525829964710014237016011952966140140209794860627634104893603985113884250655482653158269422811690485436478811340208228191647972243977254075647079238078998707693887602553841914888311096189731082353929525220467704045493353380489376945647314092424616798626383419121573641260190489873989615315113985273953387023890208026634210154557671550507342793957354053492127819293569505187985004047752461156979229032300740612008136829995146393355943627877429373863949272990012656375718217879732488391226869490282754093491682411697365332138218943978612253240275079486221576942980600970420016874094812579508507411324810147857691632795484250266357933613450797241311772138557584984628625621518770409011530510515174184242989476739118058254491011739782382368638874865316219426985529705053051153792094722832360847680716321458266775508019899115547458025023100781446729802790147461401856619239422306376988218016132526205778170663789504158930652813585606543362502610784199321413860950708610363654814599536672226380167593708384990526042292684557818428413962083498923216077109892330935926684580301154470957214017014503984691333270078715146864510844159805080250415964464831682179122701610086406735226736570575804571023331924458808044305595317377912406673509305650005908794507617885719983016258531456679255584770340271929280983784703969152167139813875745528836230013646851533732930536261958654001871689185541387012060370588614319239473618863311053538380579741641220944223695815612684668907882368850393237980621823168559146571404396936680544153282186501041681266101761203916502037040755941971649117112652851110005609551070309707475803907905805447792647237200308171850731813757382578122372938885985119196489906182525416510963777158108653510371174742739119474749222265960197281719108067266046484114296363232898440039006203549753325585353522452653701774931506902905730835266952785104513636200655242731212961984129237807107708910327775636928255446716043563216703137490472978077470269360862994836141872873969873015258997425228825046100933753532377566298559178165343582871184535172366973407277265021072844140037753635294928966072991855642120015216154791871143060642831579589002203458053422027966814860847200158165901913735710589168602842449260931951447289473426937210480211246867404484741312185353882755248483099496101580375059036127866733109316176568726804652737440874158371877472645145424777729120416219970444475572906703314893876029960320235561497469547337630089234238737997560505034611495893024142554821114435372088151284710093892243751136863980520823363710495828229928001913987316608857774354573247385138641404909028229130589775251147152565729204247119980146006316371467116708660297018070265031522226390916277310673705845743355922399378037599826015084428344089827787373091368051178317028915570677523244505957317130232835687949767691192600081020036616494398194038948272366477152201600582476715576444225104832765754679994321957799433607935435413598222486337131705703601930049623305134586888072126470081607738837592817964956450895067869902400180641314122227849340624961579556400837791863555981526296570036343958428484540362982103695870404545093100442582198338559521603878578264965032371823423649232495857782956579857011558492316440520733996267013790814584068316804229623429234911773899843874742363102889372489165266610741063737909140192755692347601791365322278225951852542502737042543262075742420720949710428499341524092608699976909519525129588763699202082120329335119509661485226347689918828391654870484480383397507648077548026596778202040736569528272249833300708674625773414189504267361056657533243376483923693520388085972966160053367825253132254378599179079247713145086899194976192926397717070695835721176478294521306538814081402772622604872945809737588014005948892120639818150475412836301535538847382383416737947871586498863501769688433889718144133637864542253242840521495613412787152728576527362963514515422563249189157532281915396536624422818530198960927652985521268984522750739723317843070561621138304725727849332856413648835049747132937994403216729443544058022245341805217975555342405483295085540396955846264402048576824745899971322320948388159302424028698661467246032992263108618125154472350707925159059829339605572056900779399684974536461713337941376433697466767737629777601699958109866781412189258213805618307916454315023276300404579479163938920007983639738635987370969036525187864356947822286074981570899890086641188452144301858717371646766334460007578714968281325632820880022719331473872827521932494713530615196064034560832185364731555986757394324720632314077642045225189893563797660847031721743652116828512715531448519597605164529923671926485840461314453367234445012829866697716480885194876157638104702951988589227174553042038606741898085669581788407112454950669577404990722807665485309055331634575187478028745277119621525403813625117632284947888454444787433994407972311561960601232777624469310390765737010853193107895786513789141121541260496516650470656768556685704931511958401485457136828399523449855627785743997753243093178058970451881335560887667415390773562740243787232600149939752273685715780999951039992572427803481590454599238239892922546337240417642781903085201603331863908865653122882400774634966070485197722020812055719432496329037017123702879334243309842092436526093471362894393789434189377671576957873190505551209520588245164732524733117900235041111344539875616910213671591971951808102349860958436834510133715417861379463981517496887966823570341720266772184710408149879390074284361073958023763093184706513821403303363805500428370900667394381726735447249966229333353412655864336487118998303073871117806815750855549401245139353112243560828923298859262982657445798234665672873872511990982158114869122727377252017002273337550995948541864879095213400365545488786873180542298493661223699502730664608939132534710783184711027861310756341823636212158113462699009209626320719592633862672552682241767805659754058506734150131654189560958154624440718999667975684087432364527412485230223107104970248695826835675345773708612434925974152375318268981124994928279269608703926085599346885351938358768050359298183398350613049931009639965915332229486193462180134299499371685034597605630276244634191734083075507715619203781863525364632618172846411538304798844377723503508104374680367067648693310605330085910480896893155386968063583966898158795968250963761927173113202954781529121011677757005501207875321396138699262554573193914638004919115508953491193124636037186200044786372847619868922995363661208121227049706783034505160567640812118369247924832602571879777328528483800916719957894642332671820900969474114106583557257270718272340131690990403366938910371133826380647300504746305126661898934976945023182949042455524388523000580131685440564408021595486548414034791401780501559032757675750960787219629692434866817320950146162506637766018261258173809455793465714939982867027831040120963337871168424332327580288638900522125834650249052449198323739064833722811186619716422171288677172312519352826621373365974788900950009543808872169379680627175370932936768997880481160801759976727157933697412256391023367205582028931347465194002627983430082468446164052238676023392407974237362169446577912858005258353453829390407505561976143890660086600944224304179658193085825557197587005537867200361982203896772191729036167164577425612688537435286732735746370222068064087838025756187689068880166341828854088651257415178356693467763956128697244286486621622992439649796248085788396619397890954262137997514787298419099183145604209427702667878523840451765515842429012154123250671357286441275998752224667542025277212022834941722894752908337202105886827980676814207639936166861014742906229002357418727168627102412659794780747722663914143388009433247797361267147907194292426883242847520234704838192852420976229817245064901337108835995704012315579946719482121022732649702276798671093450460390315112137206203235844477145131477885299023417120523039425022418181645581258810160823594194594803449444084601594181260245173482327923246949755827443348465198888527362340192427398590537371868344896863883617856327022281399683122111077606220957038570287834576685116047519706161218893955914852267086674309165874625072540238782997257711385204130890623789782831937697453417024571896732949331462810361931247966722313364303633666134957215746735582893937601462319242157581569075643588543073909981361897470888795343758873302943044349348217235557771319620703258023831697826290682928298302103204003229492507420053942079233268125185359018336399314093366011490389131858130003399953101425057107153561913596910218365919800665539997405274685889635251476606062829665060856366457947509055653988361061228063210366172065148220286884437338470206723362813896391449869291582773522666881793937044825801486046221692920875825550918380784832200990705766531972537841556637322306296796957047748779924189658052434079527203695610680899040653006911419744837959391092371190370914024803354244318981539439043043933190360511311349013991003495609355618105335662231229851168449653660563232710110442599827371316271400684189766305431067209628334730417623492468304519052577409812139832771303452323846600127356161460361373443062978690693975104130414564594837544734178566421553410246237710302959453350580863229983959425866683225193275623007924442778151612407725038918243257740434612963976570349016082548084662794305817008615809234034461710112372118476949309427791084441300674124249444477641436572248494260517905091587294614513988278849206836492032903835789579755002238299351498582317467492700282642257375361149762751326281944850191831839957496424022969154846341893997793448768425824233891504229752199710936201099304077875694493676665184159250414512629687325461531540383029566950670136639344663918363056658901102813282961156136807632938283303412016785546780711451308383956460718494600950050712105410736052953648540112384608614009905792202712354105793072881691659567772155911678682218406111620247421603283987560431123962481666054626201867444732206255266202582595123485694598412631391235765597158873234910836060169678861688807749619274503720559040545447258259892705491313269168341281328148993812859777677497555117724844972234939555716612623371944739832232746855930036892763303332203487721225756320758052122782905480849471397149432253293480774873750180115093628110681417733216051665670198973639525431956838306452859247754192127087327633932420996732762839764072485375532424213250713051401004037999586683569514404017256799661001678692911613060080397882095323487001679842760668902653323522972365770390537737285735525411219930697267584113904336579959757082620356287966024531888916255063769148676900646064421903773769716229795989032061417521277786959161404314523265683886437734085921668100414039671796554795127875575145945985565470948506815817246183614090880274668050267851056475726162266141464228185924928778119805600782958669822154842580627631625428268241669745191181951327741610206702364032048443111911340587466379898113002124686650781430815885425126068514272276069487271041667195402007465763955902048906677540700141549045844211016555231503574998653182497395829615582992841156755738024777080628140367454465857622869584248307862369428426268578070491278698363967749158752976461888083063586694122811133037281560815491526449920572025880171024315357186329447900865160619276803299051035666763469739169232822366143336694284475577443140368411961545477700576487057315148649848530520679522496027583372799877952095179891297810350916149061593544250975432739469711213157083986555619414166966454935374911884054861105780789000053439212977176886178162327915751956512648190457382155202904021773121003808956740437040158428201348190473255752854312395695423694300898092958654785131910780251130853555665096112625228263582030681222743732107674075433253578395263641225651716936513938343061245973788415006071911461232816653270166199929909029472968228751916790570553777427542190194670153475254523061211380197511567332808339049803050257744960533115834014429950845983506479523182670200925329052881284245035698046931139671320607220831296231232104124340088748934100747716962058594119130990344020769783988233217902328471836563010576831302705570270143459385550825462299831090551418909447683538779067625455498687565425605149226672744036964146318848209847826608812131836152902514134189050583681475534845269517929949932639590786194977277072883890211537859799736893831659959301495721498255128210327897903717116976241823762368136816803271408702799679745310728081139246710890746522954847878932714075994537276634072044671260892266339238431234258083753341063274334636949802101340384518097516471862985636828732369506181977567433558247178023378728176635777455399413422618547494701377337826491414606998618413775243423465130645245816662889949370130347482488060926665404147200270543310532980064849539803331370344236994627379349763123988565540091984335103990165388428326210241966251126516060262452192269945230095270253832722339346596654396639923651469110993816339807685194642398016917254485186236925207306657134675701650154884098690616160099776345149182912801555284900151236525923550135644490043487153916678150564981129739801983440187472509333696585716726997099951746491822101730136749297520632240541829382150362652156731419570950762796387544878095341633657075950341932075734714277631526683740237724493789956448598442739162064837132204056777092015709888853782373252469216647205136607934190781713329285499388329884171473933637109481414485326202825590676202906592052735899226486235936842017015675028195532800805811019854769296518725602685942773394001799145672309653536578506088286257580695161428883438912158539629489945753921341219089572463439854460730840733825839346226754985271104181332491908583594613761668390563915661275618895835971319670140081282997361902809122458004106880663139658144125142769328731654341279313312347996123757563978040852679997034080793696933890101886517239067049380767519902040600239847147004144311299166234329829416357454339213212946152336420216027625193814875368941201168474905411217624334525237875562423949318153040317532806012999440688886024441353403401164292938817592832765696119566721076266926426864814467058662206958152343851106046079509950153384249066116297059072070697740297691772086888355648289716334404644450915684079496340722680879791908354892189983863053340165934969303755816372322547953585214298851439840577165460577132821305968728066412004090565246542999269978163138158691345830437014272781058542689724409004290886709202731145502446852303149412154853803336426025394873450393688724019030409434934806956461233405573867711635682429647907527338535880051326904996512721040513499941754174253302839466766531056065773269877990127821069349609371243889848700951141915313440755065652609200821045680695005054390124593501215572432207323044974510504139689135875053678223077867347120985668053675261665391461182035774586083567106042132618453559953884870974006649528745959193713176823418932919043324863255940952598749420337504525761600600184706985382381565319350983086793967345587876340124828082090532479371955579523331863880606377055791656665854647388750662819925232325933463653509564873496054662982724992070308442300919836275190543300747648952608187377419508698938250258171698379205047769589390291861370542034419461630384701827548204689718298049893700348874692462207634884060613955504159815219752674055653483558943027622103042851286804815844738001852686686499709511404480223716924086327403736122178916972851570107489258373421391987506395609729063956031744324541202751912703230909354264447985342714785022971229401999783509788233229991059405396150505588460619442365991891323484546831033495979722854917802491107382402036516169853955081317514044748252619350221239116563695293032286490368943595746594331112221123386915589481925704700473613132441836662085362220411917137850578106995301112433321076287618210547063733315654015258015137689794898785956520746246303515432156069742738911316006781066265461138789397164898029404211587985668252334458136502708507733679193314095953894731015894833328288742080467695533134864643055673057534006660119886701056208783607476348197183664480941748419649137390533157226767506711936592984816107146910139072991097100874867373028433860565995227345340985241122177085802880677357355040608413319690281657785115915708750974582242371309433301261791353768450323461377591894060372418502930404326918691832554631243940344446540940476176711878726053784588658494366955089180800737914827112018796863153783478787425788051492337287374670645535687189206648195258595563464515032069851125763700300888194474005554125881695092713620925638107723895185007004378720907679411078974985921780876706662581131826409843230029414969852169076780018705691366265959451315261367648100244539431565037154119874293273253820147326742730854880558936169561438928561363697004144795649848536468126953016186707473720589585871562062052990404277498662052416591999037821770362197042850261554908592622534315210169643529201857051325478138966672712417159563042962334346457440267463026163307108948250440760575405799300421421812870112495897859742112956610456272078130715946719927344543273786534590646286830886715709906815408320754288294922191218950303806308264367503203217154131472358301802414332819614983061092355311649907055727093057735021225148951718651297549111421199166842388165137681380039964972973828052471809080796013059959604525486980774723643391948916314090188147863524309313744126058107151550346657490701281196960658677119589226685271613675680488707093785147858846848412256186541389051761014120133703711311453735212439410345558275423451120741288372582227126955270769788267953171499254374613529612318371995021092512244997801144171624502051254752737991102329454938314078167030288035181516580370390478527177820021132038910231566408821135555269710252486072670242714767377654670932583024826860423333152031990548903184434967958847719901913185679504545421692454927906801388452755499847053018478432624310706650609404624102042443523181566526470929082215483983515683040277613435394374422771893530963769624144401224075144815679440447573446077008778762178549479820462630467789286394388172308535372363853393459802426304668363416886479686672563951045958735824738592031476353469251045500924323142657919034061389863924706950819274794793884771882227225738734770126729514272866890475949970234454461723314468305589647497765359096727513364886540617937298583233831058110569802574884221753090318236152253048737519014529934042157401602671597236428983983291535986233140296778648178745638837111347141794712237501673649670550609085270568599757656806552749730568163258012399216982665827582931445730058795217032552138444641153540344065664970783940824910778518937401669682694128519318105273229584533942528380478750724043359674675696358184671357151411479210223646343718189362369203877511679419522121238941037490091295297868797589270384901361880440410981954603074340008033912584847095473797335054353206235671580966877414043498292510244763868782171861772855531652175755224903388443710201623629791316918307979695765709261480378039127531066426676737991022012899072030447528122780331769710317814855695184394071047886177845547847134312937481851791083711642798157670295566230788269028757598630818383604327937992988254022819960794675058825628905780781755338075430360411193458156697952512142535133885317519295610922038521884947602970668923062880434947848133531041045429132716312628261646048892793208420883525124550214680552275699627695386414132282705083452758178954125956052348545044537867097314879193340619043755849012791917717962797505549737491425705805759761066546875615697179491118511603432775240356248422575216533353223850969928499836788706984496712361669986809303148952977225556921736735341615209121589944052780337898297877148808570133187863886960674370464538774765342568321555268126937354318009509428001821451729818359643161010429212933945745743820617758687413764518208769912481230429925929147999141258852776626075403318334182718540784353035916448216153433361172319853159326198627586404103600042008505219610992671482444731506294865760399985232972196324454140910329417215905212005802019650399298100150738258370330324031633771087044097902444918569265164307659911458206708278745534468673857890312569336253255621056188326264747037754499527097530861852997753789454435825916864479151076495376660721682355800956588113848475440576896471951478293395656836796507874721963649020099042869341500679617479472622939762898915985445324191853095597712819637963144390309384663421467287284686314855812460785937046413530016039224628543402241516143265473622889615731649433046707469620284261253794831973421652973584251532440642397971861235493213886686962876400375588751383279603833019619536146273973781844582500052019967251505713094662539631343502726108395569662819983573085515860201910665987856826303832643051237878759209366207166221661749522388696771867025891075124055878360847933365113190061197913682197658395509495881597154884229809645092385394280138833949153019031733414361008957493724777928595549403288603467136347423607103653262290278979462010699819850173563949044843522960004872040859305308086688973179802565668358870688344537200226168441623045317873446985087144739099650285157755298385897030810124629233461823986255630729306080513652738413067135047903023433067255696138574598784231753203907750936911520531586058491437702140570600370202912493753741534489724373441547418054071483814024057174210684061585968261291891559404336629527643227776541707765598485769159244899963862063016715101134628716135983292318101372156427099613625016752364847939026441182991661958490194129225789640522373853513203756393047769901007172680511783576500856972065782067716770106030834001281935729641185298747335997398607886283755908258187295054199994559872088576384150618130797106746014661001546959981473956252065642978427473959450991059428671002350669686438516100822326398299886512755190376083443070746999128196742353504171293703615252673529948356772844989263276455691214629175413118821321260750459889792579204676663224597457239236133239428250469651931043954273548433345987796612314061085880706454262928533577479445121624491062910363909893599916152534483132221807620855058936966690549338485133996782103901473796540446197421395900698790592235328906280046424202032082654649010015139349861469892980324879165223172780111793134215564503281875731633695860985286210623110561424287089277849955957526697546882992247487180025451028136535924891952728539348496074082301527365778693867679498789798280535658057279097807558437607593285096324112717191987289362792559964239115528272274922259585656390183530451335724941799808837453219923649802461380586828852862092108993760032721984099395987574753086767838657190293169041868339582194302096306458796959593218184446387456419165733309154866274449695317966569450206660915327582872426909938113523353874928663252458210096895653336798047564715035169521396759657194132225234840238059845339546061154666698559897176011554650578657636783800670020861847368164745543704826099875421931299711054528084449347599755638882216421889000863081842565857523590680538557725542316791587024174420196913823397557657990670411288768506488377851634051355688188060715843717151724700835995998418163705709660901970563527756121023775401602366103332978382240302628091335332532978364073854896864230833367623527055189724726055091234689082657589626548356533052697870835483923955554193854966844287699691279180543543461621447471039922927778231485896640322629610459056027443909474696108861554523864925480372500946892773179897769463349365223060537198575832253189720119026624682382967091699588604764292674670049412131968165051217451662897036565592391044476357137451050061986038521842249870886370895083349944618952102859170646464808209147949318145670955023890158045379756544905106481237080640759972220293728156308416591822140799905469083091857358419261162565833025188920279229205830854394896438950795752238599896160575374583818920635818028334317294421478599450894571848971429549460217176342692519787644293320763819899176783953832787633635429659165823857018364489396539829168771736726471945653352037599881530009385091587325126368365866113395609997171966150433398032533216530128889483597397571497180441152673439150406618586990885008427170646744289131934570663378464047033323494991337224648767336330216236959395072323825918100331331595043140379153224678881230580361567172732672354438761140722469614973347895385160022362848896739803790900262136139055576079456071328153536853150020430037910628648392822694100404460974915919167970842956233584328961975228821645537707198491312781529355758877367382495062693069784163903227499797784569636623301409188100897760083099726313254560446749448702320388879847352094163858711825989805272433328166033018253031791758852730573462594668377987758353245627040883548786685448954307367052248872811754460808457130802935980429172928440010396472021610477461409078637815408226983886584167280065913469584759727637065764282498458280090474045621120425487793426385852121276997267152032323271339656501676148213819559910934497033083549575070534662104702441256954657175679036943821078713151599869516044221861903313319632767926461482224134722880883349232130723117762354607208102772665000058901927121108466385974325923300170437942580662190937328438429897489446889905473541776788003326771333981315086819116128171867503732962974350926703802194844815732462267762605369999145621236878782414499782468544656639669142734565326127354427324859345042109873291022425182702968444036090822002850800852163727055794538738328557808105249871488160598631938974083435620441241860404840784413596840598134506899992889030686922778898306702251219850118831396141056582648430286398348000130398298080560452740642012568788147269364207997558919660103709707774638069302108761906344437754983672126013831775677367278119052465150544411639487505328039996028910215751301992404156360188910691439428307576636114763881016922164977206616186716056032008035991717906664513767850547590518285319432169904717455521063347468008209639142270221241267495414480523936421343928049328378978827457756355169928963577688801750847720242180551755646131915680156940953165865802261551049271153258854775931347164518100866868172527819756784674711261618367637919133694735113372864436703781657723094602709640231076487433770342275675171616801178555504808451784679629207970598797851315427406135043149432884247822358782973499544411208513430280495184009670716837654208437876986880908982997223894076457594255534660283187416189382227280758512874874268275533951085507352999845118775919913805817078107443658123374148642399555803955693298481504812374764997736398711964439499228737887006334094372799456297243448109766771833267252247450461741515826318748738251480242490712669581088163355738559776529863337995241553392990171639641583918661211350747571179981183173103210023276669103908744170047795760362434679603999443216820766873117190194988290396183931763838391456305761871852785379145740551201333460820985485171877460566817747732744729508865058863312029922048551441776685861473504618753639928748212788476541623324136963093717387362914294202334284974400664948670474337926948018298575338383757799788905537547387368255002162180004135871299908636643782367717554154145896432475555118660111290928348945994473025631988683747431480890133387345508758827564390634158337904939293691029085653680541032218345184782554413450779816523655282740611570850977073289166038025508634187972127972447646929186559762186072901219022283883277460657494797167400958893361171576260225718964919172488389472179506261901328643029253171214378884365637727960911293234695678674992655503743626267376154372856518570370292220487361919333972416167573191373033789868064150122950219296576641648569384703654455291847490689647509320199713238041498171808347722191863624741076141811902707910736723422257607279300129612094615100001290333713218215352775975585161043184177832080497947808028385713081348507123367926367568913915667379535706773958984961578197687998536665590405500403005753791810741696901080526537864780486766701754734390604973925703083279647754283209833864458060999191579584739718810390388778094395591351384794779911035650487386180037140332497746010235158033698924808384808733141916236361610983987020048921590525984433666738755594161510444395293824728297501586037740121940820928923170268008108850807289252727381121963692329053112876937827201447949352442750490243178281449484237413750195910237021570586264024265859880834117622389124042203967903298761202916982878535297438683673229737153664777145551854699477533628441615877393320087999116011165819972815325882277477843824090312135090264883058489563512087987410192883512606311324877954083278411009460533720974764252192288653063490068279146206798868807647564955094282031175995282665785231633599554371479019661451219186201063514415566762418077722333000583592166856351229095219226904669726557411385954876259666713818007568643063044134214255904338725737382161159587097766725347086335340019624157979188856320090133159094526293848544254298736635878075270400960595989261369857245865474250147165132868115005908586045030615626522147979603016755445289794308186118613182411346288251411750563355961930228057246035655044078828702667976642112078492255605538169529645497483594962990572808231793196707184132296961595504123184084724432775238557419387125516185724447046534830704896204539584790272882835776806028798108014758745594220790033642559187889858437821727328973890072512449160378545187827548883444418350422978793077508233392008257342466807375563267802594694697118257003451944767213710923687029951813176921814187147510957295218838460569497440229718690261638195851504858574959340423982267545088436657503465403872938923054204373355209787256464265839413638634097259015534882825077262893728036839994717890653181747656809829739174834287275307869883119774036801641076060754380642188821107803505620001674463821154573241644490924680457634493913980122242300445934995969766493124238340666020998716125930861962598311355455537366636641771850416456366989416885982837642691149493152747699669581186205480080558800339546817384683390893391810515831440221351611536316200129432091192904085481113219100369382805252789337651846816317041040434160564352181288539965797307838052993941672893363963048080512666827688895292715328620133933461271907282029203641406498052143273766323459751190167734568954059628362036894779019201950406627515654307744998875795781765757981532241699156974905370054618458776111205481139364511438268891001964617554197312310172167446864668985923946946939187452947347173796803220673174569489461332403267418244728519978683383281595020801680847702024004586911065222175075434178924614967218704741940662921479349989469135406745657331228537555117116382557896584127353796663356412695543090837226765187600196390785396022333878500254510070610057285131828392514732011139975662874594626277012124138267100772138934187849337683340836305976952486755143630858153008441779928404599232828112072496603941111520630914243541728006161884619614342825022687529174801149478946406529181694787080408270141490801763741158134224421439030856526834173907324405516374329317039774419549687968224628563287140828858065329549587257085047936234032802047441426626283160237032650447677943316759737780326327906874353606575499823996979696062562069632613418968663228310987720703609229231550628374613501268881309510263725411803885578555911809073867106253712968387227026744632898529143818076492099274101560735349057991898491211049545255920843549886650655001967506729314761821958347224804875400665691456559883953458601315093000117504770153387546313538047651160802495426820787025463633725893463578823622244295830066780442773194878898415290458486590408400988442254337428364456082740269020185479453974382385858692774072935533235170646736150945114025437847365825801704349888987895517816494231686850788981854852078906128199922547540250632790204998846863079702140849284936254012694254908772401149285669001926682931759032972002435555292542150827001940518920553785731996411620185201275195446627558191800044981352263733230037341591922549448478496157582677506227093643983896448053926775101043865241652729570333796805703498144415125640133729107934880493363732449431129101199943247575092740354539505882092259083132252146161035097455147749488715522366455246866456762743832153150518578004171946464305057038279464633093532278799064335397281368997702788997911754458766983840112145584958225679246201137655195038599996888100109762242420205751767197209855718400518434920890977006586032841601343965328255264925301955020710142764182742947083750791963607447483492591823533465140008734784570055609158332939710081494956954118641266985581857236366654487262826711972504242458919425349445930311006788981638605590810783033580283252084038587727425455172700512604188006399930509015766707591231451886479930502127162501822154697274845188014132309414399807385717953431413566745170628817144805747601471079479390744650710415248801597405311830271988589611973207499803811052536086181785252019787495285139415444648703983196403961712201716933667675705442101993206462692962880855514049425665990931793641309517447998651082532533376098885670543867296295588135840744124592045674725517609013684406655352300362257252069661387406744064573953880906026436717088881332170490759315646989035996635882008222455056224601488081829354472446267597184031729053107171885623996182847176247870291514607831379694222638071167070124893104879151858026755882383772320728021718984631292331203738725582573531152009448208960396741302872648957292007644506231135607537029933723226561910144998460436007694986439422530662890346056151386649922531558994752514238727645563846011999662884140767666533450252025343809235628876799671181359122652437355111850861306361422678882160247478682463162225944791455807247046836760802334661124739664406848889854714406045308015776926438070755663062606154071081494327840292678247583115916373303858862426902000643434364558606743368235148275619001266087502993400676102809424068667343927244371635874696739540609787298230464027330785530987526704002469173589238100300245337730525599541043444666386461444901468118790528807153846183406473227930048864464185066344291037563745655141690647377056856804126925068290244402036863516370810072376770342959074852179577024914701081183842946919237438581581711282913251876389234618438452433136655642984006248247616942628792209108331702502729466320499583173458200508377455483450244741548804428219963217400938929462355787740602481674994658657636214027968667693652509652994389322743844372729031627989711564535343884117314982036115761894172601800818335705142237090906774224788473158851719396118699232542819168546843053629188795948791332336552027414183490849616283366309826250152517653696631827769188498552880465263102874408733228472974028410828589386399050982933009371372212765691723532638589898332405340641146886848012120285278504622263841339498480842577962221764368422982085130083481945030788431611092786144936989726697368934798570645914232752134388987040174146196443098655286040189285282797398646334200274847313596427633133829862386077694138911912072320038417672882867949422087246617454904365821521170059938713087056523049411382915996895658405554520824678248242471210067590941210259613538625089849982282462224465302142776597047886705830014403891776515485598846320471633929428790322170584313133559544393097562294189743468410758960917912266634316832258234237367624041921213231322298446117920858690095002707854361571317988546233859418002543622103584368270019074031424109000689488520801831207532984870500271070116791323902457569624004916626911564757087530917184260815786890609969701860341776489698935599094982788015132033060321634128061784003809959858425333958132912189002720125602562462920090052483760799656859958910761158143872812443746344615628563681621942284923654376382899371675842378170787886674632971320245686997671490121444643395817870069607902136661796348262070064025315208339916528149500502694177083935883525535163769866790801816623366307519446035908531353888073783319176811260490661773832174468133743056392484565139230138724109739816426594004182420677553131711535333992827235034547413609078303780038945388327051047201094964476925791324834393895380943717924895960626411594991590469168134274356504166352504240058745078381018162180483825046895118735088236825855402040443789559613515994006678810795417624037005793169296083728891521659281764651206641960512015228598427182990069643149872472463954698235579294922251524537250305160287124706603257440929203198224178957907812229362814592388593477155109180225522355120195269557637749251949171933305636077073190400533573743168691184869581405568939796325191422385937953069749542988077622413545961578853556887602340601529719533736347567126143628333801585767421909224852777941301908282844261999446911712208469710621726040578017458662495817635413151967733721916047913742375496041759848770092993800064748717305641216803591379817739846693386567774015117298751034506178697042275167665991823554469969667214419072020768785830655566049739283263689093593945818111347548950141094268909908902417470260039559003850338264708213602155277729885510602300132582469729618139378235066606711232663845933092680115612773366087476398318891806296684648355186230786068466428966402652878576742556098088016125474724578349250262223005676596052245712658312365637140080106656157237130885463011166825323290929640434392291377260320511083705099448800581374655385249546141224485694020155177640956459891392536154209734157303058417974952683923517938254520752731196360350507978772862062737175050504145490342041838473345532438854568815183397903216109729743594363928164819908019026100077440613297144160064840051135232263942738649775580981208759107040857355522136461252478395671044642857246895721974397813072030585842929345183642321141576377139016064985374755776529260041663390030239446661881888695587241808499519148342838360805883101528622387922416802142160974647248106659548728408639227455419463931401655556861053108217096797650616109117577702243697053932750583781922575890632660182531692075227650091084772610161881997902212346924209903099746286203144008195535002045604416369654788310291601860370159625581706586681847957805841157351650746776320246268808705929668847172153864634185275322380116221121257375388292681838578284916395960842944497686814727240070512755086904015974737640091915352811622887097409177585786057987015637094419855889433011081593808678494820322025847490974897922695540330995357400563631409743346547922656779028015167006942860018013364282784395535420663248361304629751638986357190098810214851254591372002156209025504925029323376300651404432173819695672370331436406623255961775315391154012198613241194423027403368078283770493540920592237878464632466921237080465182992897855433346661518194340437044876713091558247210923957089296935852293313556031275433045111554065173808683003353068935916824892004482176287217770952581664152265916272325917699171411827326149024013818593102133464337508567505281113017293915900548663639045598392632331167956091019486897074610365913093373567566215769709729452362055244143887073604250271611589647321394929360180439346769634826357599653341530793250384779038590790279108058216616341390845971181330896244706248587317806741326847321405661408879149848606902399845682847502706080776349670083351035592277547059621141217999536283545115205056442586573483020059739883362525082411812644066482408559755753401405088392253226033010895947282259401413274292699833180001345395184017806238895223027192599757459982051915280625072525705829672751926720651585196773245875265762387556448316999004166552392840041426625857502363117384857654897284240203685034232441012643242712093204486520815842945520953259087472428146844953537741320967665763414238300207994082906898610414533388813917578745451721448699125381084710772664201837257576809983965750191570914970838382986575770877590867035415726372252039365483384765346169076265587509138262869656050413091291430081079786423156424259560301508719791678891795792624215044139276626031729922673187302953927386762862502441183702661167661811266843311221418917357107079590400656620478210810990019558764702367170122000346493873465615468382107376615605607436346282003774332244208924527418788977009075743586858987215485748934064599796025246104629120327740930523167332693124295835803298319798262803389385505303807237077406620606283129592012670312765926808829605888637615202365612592674671236174928174713685898874999306557462748320233200791271703843849971582383020525297568184067470548522804033218581071175255294300658492960875372981039925908694151268670768900486044385205365097766739765336628157469445140165751391719517402224312381259128418745280982568978542371110685014337343374637386053436649910450132127159336611535732523989601761662351815217244152743275228418430803485460409297554709782048431200271524574964936150607977490532565066787754006636961725610117874080447258070365311472701523292547767355487079230215502735375042739613327489734844607501308257363012826442825293478473173271985785390862060618153877320939854819403194008616214438131220560462970457684925996919052678263747449952833362298846871041216509852011672142201273966251992683876877165978826432874266514527422936253328150524365976953951808083863865924324785705451490382164642787603418516051840264999204426421769810011587483922211091340372078452399708300250543821844647129643956234738715234934078543126553653286999512576281551946594989515614476796569759210633454468013559822229291741893451330646916496500739086999872981630220600401118227291886543150544524371296096639440245865360877775215934150302690775713817753559607333248495623758724277521687979334090677170605673534260660868780093293121685263602056974033516407378661956449636295260545879323057174573105196082745224907356837724188892076306935002639274386141118991302226903506472648155053843790629191281394161081090286133512093633658861410166875037742867199595518930451829448430621103159717720467737168341590413496987701003857081902301369623506915621566081049381491796887173405257476112419455046736137683155641369794878966413678762496181940509437199893636702367620602742928745333487500614651545106633090376956705707975513087839905842989943918037107789931562097038181312078463062412699853070972608815919788750379857662823000477055376657749939339523813977024501496710691788229343939225453063044257778600682429380204910665652382787180471794939211559175718550884288074324120550142274960669540952028406787921540435608944646826233880293843850404310300214128725701551969486737358975708488379071834110835328467151792908326941115049823095809380488579037929949599026847800168402331487802865768685978421310842207942837291288456681452321640591689228331074471935603749254402801695434282323071177220066543391768494926669064011213267045836378501325840608755165069855245705060561103472565039299833142508757967840439900803751667287323403247787077921183510028464828523718323434704710330736608928547673147122029275806907735306572747017138693646443091040617510542945056686139678188641407256763945431028030583747236650151556842642580612706517011617272520377601802170348397473900987665913025995968130668230895943345536953355339385388549444477827507700164993528872838492356694925420968245562221407889251790613221726099990659369098175952068686130366226327936678082341541580107084592358753959317690080482888568435876176843613109122817890898738452522815261449788406840976068261714335850654443134905081632368755503800869132735374890843535148776957199180468146240640204101223765956391538380753059591546556786209724560036966229592888067790512090342481185969314188163265620390806825297848541192832813650190499503327061112747586931291738357009279842401802760513156812879262003270048308687168545990500373650677170090090557832705751861741716877157664644786470088139954161066392844782299251907382050842171904311112468874124098995238437505199045335040614152592410566516500037677256158229632487708569431086933035457710006928254221663890936737041767265950359794380348909341485193421060217828651862746112662221198475762022986214385891377624419026783684218617690986757552750897005378328081827557634783308841407451789501011486734912226496959843516695642328848418175184642897442213333638052854353614243300314660904059125522972791757734977001290891961592787530282295308667767479919499816808289395023975142529742344478226133829306895238847204687251926652889850029552057439494441552330210313783425044891875847681602435839378842139558821478955692644931989746570825970471827446549189347517956224076030131781664080922794827606413427276355454137403514534280055357762341026954423088569275379889401226904020276087114367160343118288393982525158720699129005778433103313992950923540006080373117760733011724719103960649119027658746366060225983585851798484359181991668017687742723008881507297999563828347190975277018893716740748710678484247650602688305141289118469603077181307985967331802818561280242639962882158065217829560646643372174392410312001089781296096804152687606750785010571813364930604630175673152876589486232866957084774560907554802135078899676294150723806779305844654796979958687924727670830712384942659141112511327435620299615895684173227761050771207203860672588671347551426152116346769768849359084843418613703354764043989278387835434310680918894125881512440396566763260971813085588583431142270644297020047798644852450299886438980365544766254405385346648371602970891597186150187895742515502329994811409902669671665144561835544690600556336783669180716421148499130812499148850103499371841949724697223105243564487835415696332815027704943768848602894410748185504431722946227177333492911738233679782300235138784230372315157021287554316744786709554890035982185996811230502221548529159175528546816952163395276113245484794400677757972311210628502674847124123698543192337367795086931732072939857830474768592820016629039343801768986243933780494612350897738743581554944764700248498911296361194823912310918326112453916172943089183779839709350930861472370160727150969205526300737174734283968444572152768885319426183388548659153585390636514647932644351731748580323377196480283718663198689271532797142530112338788749808712727644930486177771354044184485727955605039101237756935020045107703786511357618113983137915168650663776643782902496106583103141450609539460424173658335311378582399029828862211937540997223554595762592955052467764499586427109212851250756240446760279491777306571808704973319675971648716903038109500578050916595386933662671270112573308234922829254320755430822498282350344743915536499180606354231170415972112334098826552641043554417772850523219232698696301896228766349024634609986474558657548507283727141139410975147456762775480786084054691253017260752777713885270880180596084569228858216376537221417957093415790785456391490144049650992888301099538588612828065770011439498108724484425159256333092887093472588253589445388633830352512635902975737802739581140652478463202070654880723264177190026162210434912275493336261894691743755115154107363396139077251946557072494566299577859010838737548089974551305974083290365317381481478322873826867836488983130557556831174737480246955080807039435845893485918387089996289184154012314494780968461715506383459677730705089230867846604181663778268234611295115010179756538602300669650724263194703714640769053125479506601113271690996438360989989200766807685583960170716413493748144666558173102274727469422936340434915316315712468869209425677120014333597062854891813200292991304512781131773627493177648830260025519783346075284862798669381001520366218542663314339685658051865359304840137537907378913244980578265083682744950595748350782024386424423653900927410719910807805826153294116328818653664874474082074051917532837131058730818912542382881833654903893361152627522485574792446703499644174836922911024654517148511960030030172454369901416982700495253513715900491382551860913999574508660202543742426276278669253365267542215515901854765995066765697633909185489785134223965562847623151697103788171146672304519674429267239136581430149185320376981663066952771650356546328618467491781811571857582643130001104211645834722395326525702416424066039110070751047284226015247602335445741518907547935740483066393020605116477312147827487449939260608872040527523514262626501535220708599270451923924623098210679819032529090860061503497091143618724430975498231446432953690568376109854532050282999129347567385695131877652222356756620329635626069890074253871271807754628249085359703537659932884081393014154269062069333546090478084683857324428115198288715694819308127386737198083307772175527168922312553266606745243982015022390563662544033651742659459872241730657406027720314677754953251066429433313473380163824218325373326965061368678634382799081028727168238317319205342979318672508401951290514194652152777767131915813545582159592738515876764145930248520208941567473079017357233910681578418862922112817672022277728790870129166299737587108075737307513198374131790139796410010070890396223711771391730079225779111493385529431793312047847557067468432358428801548691754685228523662555273358394604399431098980810181150664148046096295648608898147862684349324730529009804003320421049333320492982776690789694171976661226488477029332678285376074092489942646584666929877612498708566423569763043144731937271949578989432688302018480391329807932184877785066507163984537272711029397839410245109520764411565395730795176332886290040449032744558789446369237605654224344214744692228693098752301412139294521647070605171331149016059028023712547211724740677824435944050128223716122284363258806512006889713925816523595672021374680551932191965633024842550752391965294694191466781657241405749446181538352806037155591356568541925782245248469430851136755821602088535028645105101789035039703866549363408207882158208443359791539727985451060331988230147456703729424364294509371651084991420444986914991852452888642365394564488927856241616205877740435126670447065000668987616499297912179880389083518714270346056133402691989072039395053098694017514702544490690361005269115011283787719783802486465273436791469908579087956640661283438026662115381871489156909199730670914300923940110098452103837357955466392832553004489184151459371654960128262027884148828157612839427387036029639133889167738500795670728019544137787202386112079305181931351239698763528907847711992825698588811304619342953984328255236085285978440089875956273745829638747549716298763640613509789058984650911863150765631576006824656058616837577970458070656747870980977980731536933955005414617805900740534329795328419405483913074269675609831820032707071485207979814568894660258830352525119805214173070188746986052649160339982249205983201608045275492234048767051033604412011791058974750489989573655288874549534449811826055700328205835841126433795426024719761754876896398092589259021172579151747720043056527579500495555095432000546464451569529945105372735181007988989703807791437000450584159000184333362992342017235103831607377871188118669375269465412864314107511053564658092786171821635999555530045160787387409135984530551919086568965638735803826056144267995224736639025455491474161338451200810243467663089113890693219424017942961808291536584454451228038929136455431583055744728867820044380943839305011992471509519953955245909910750202310958876319285152615433146084609046125478479522422850653894428950711024744066377679590383254849807334272690222894102539325903280262635871258891440364133899806821192191144622313076145062639879142974040877627103748021295524110290269967030215535904788534589852895041149018763221351351814996099932064560295835826755676701441543244632404826361590849929141409543910526835653639369208416624995307708526892640565367990000558024370295059076114854095930738842270339319097838732385585177624019640546139513207711795387672593420400225036983139060521601152104686049102656532796201043025467100350957960453361605268330909377497054068817786356977055542286001482342814215945935760718151818190961726977967351169414982349482332730159741101244418104392331482714481836547990327560512391109623583664593162581231419372449322336809959963048006757661563768740215637296751220681002967747779932259650515384023770572293444198723014500134889471975400671935058349174109879232808263505514091532076866431771156295115081512185093582023562640014935733714613381682235426679418860459908761120834179117256194247861726406447046943015567302395365467196842711036274303966497616765440216557731809770095032249867735606915094044712447800872800892392168810118498565661286123834528612056793031921006874361798304853881549414735550612388667124507688591503721349320132491700156880128635039934499842542499749736927660748807733702409098401198798353172207865068241390379446388242555462395436297666478251410840522175486428233755659870362613287381847409656147665731680180556799629623282619962490751629117751697981767190364491546161749767597938139870801055087103801071240268793637446691676171925351940055939843077338689234250672658978248206047350824215996235563070725101407231236197390423108752083823384006252289275722701042317232511660228173667601856334405498526320609818696338428848155572153370783035877603104510639371507873365801842735593400040589548792145436378210431017128349836971108815045125451295851365591897806510361032619212943741349435063978215620634395375387085107336756437066600848004451287089506640255464537513925149949455685165697020234991461782118879070279267828064745555575089322433549555888258741146586237279513031982957556610892957722508785135720184729124669442229948627142995306755833693181692721934309038254187195507514882260777337716058802200963119911706375832009412265152931921481307125504661808406766076795821865856293550065166615245925051243839704637125291845425946305231990844571466093700224516241601240713693424196491568693032898518224034063515621024529254808176342069173947784068666810696735257214194543176675088866444582744135544731849358075324761258757670642514785413553943726305391987061851590117127431154061812385784380750059808175897253287245518976056178174173385876100564530699714393464578463463707654718771848599857526169092193306602589944474744871424886236895582681456081216960780665808145143327929228837556680956164058142180364815484231983341179806266190544092816357516632428842461763143437496935056490456300997107330620744552460266029790728159487134979175217441016090465729057737236250391639979561530723021386903903826496718995464921134866350677233425964185782759752597104298027468744515306595184358745773612112140151204238470940901450969986368484994435580159523174963371209201639416284278356557715984646208228652489516421006587362140018183565093268320825633947846736935281685038933808957047632446964774759682226561755213035126613019240233804719187149760554916803518353897082890526045441275109297575844237253146152818566576975084228692065793599479775558855318595750015263014474291677743336057528478293554796273332260757971277411542914348628960628460424918033613181327440411020698902483557531926264211500295300051132238564687212618657577264332665189534111340178490806054585324216085781440045800699175479882266118852536330082257688518983646515913886336828164436157300984156734862258968530706792694538757143194022426290634360413633526491989286813895610733687987804083593493370266092241505822842638293765111373123470611912268329219234336867191172318600833911235064704289869486220759447168160807135835254753818426991526370066421586115276568564436787575666220905853978215789565943443576645320078667722044692556700059214218248696120775998587714742688905974522615761545844726883315646996769216959190257769679570792708917803104705348058670523064390833604350667882660046676186683628878829351603811395983989770059594203176949166172591938775622165529412339070469489879673009920660362056617101510542890479605144686015628725149283408685846903468799339211623536703701360901229311797781439248018145748491785153708974301397981941138472038558071890322179618004193974120474149097731990175019946748695643176404411475967125643642512630744182299620180738272916555037797008087573880429065710947544800176435132464418285566887065837699346812159119671978594360022532242953259920084935628802001749880504562784406036870824859228828332792697119062668554590835180999143917057568662854693463670202339458951053704895006061529046537247522310563912374480426991408828343159223032342729779111136856392505981196195056258921308917556659864107442923659988364790113198697058761924420776998227882999724068905308552310645214886017034852078916474223285747746555445867629623328391463693100130937381638764713416171785009293679480367627692673239834248058042322013158110314843919282379217717999977066703409591991682845844376028891416269027429736578676370067055170275723673464771921276999871589749520852441864020943224934656202959619193296654125957650886084486276979033955164864604881123712608469210097456366366209639122421937538211710215619327072438596369111523250520832854691167241341987265922452829779273855855055270671849582505358430425433607771113262961590664708599837207832271354306513478471989285782767425447429570942341799607591318551419430503616824867123047814734200140382538772720260726864990850819763073201403141534928308352065218888433159330122954601714633052139600428037987370978173397840553963378043772980082387329848109834932550429024698994173538058943143514208381190447585118751774662238419056935148969951579435600183512643110174952746675615364011784045033613430267762156569481147913852490734904292187782598817771622918414904177506831665968346477680065627153806481663297850214037214296673619352131115361590697683323105124270451728476876508754632911396730185084533413974938738456532955545756758736310996693400945341477495347126691738820805186724884440346466141968034064439033053518253597676427702128601429277778952197439733748825372538616870569415464117332651771775021572863646021154719142658074340945437080401533915376516169712015951049871029794461888176557397756747231435494660164954162874216929544365620098125283084454065881059328314701705597094213006971156132304389368517863133171320003297565749951594126284954278403030030425518501931799492343084502949726154602978598972920667762763083925272149269936463724454016334071025774624957045047045386107778687153420969940581597996250377007634541087260362686218044673064690053840796851132432376415433493373798319377800184106169908759317687126963769705011059583604022437541639029506511134139039841147916952689130027437839967151387747235235768789597097918105581477740607214572545115499672903232519099187109747799921658924103795147899897179329352702755156176148899207622238511414235909415617341473833479027796882224207970975180368895586517333388149349465347582543882020260572414969800386962596134461147272669709189387248238678047693550038165156724087352752518348885725100309902057116838085858995188199272269365144664012132739960362176164858742282024712132219049738661548064737030512486515230548209438783013151626427164088884907896833566898004606271332919399643713421679922765848285968799413704549794218527490622929044882506299301293962401842023797613257487087631831216278535707805491846503843573743445147020481287696775333505289117213347820967944260391964737536954136255740516794997201795073726561475867068413827339774343151839505362386273876195715071603706277183352673048783933341681073853364213642059197686560118581194603617077278896234278156413239003247681562198609280510861789992901432666492929047384421460383662126519400233294442694415066446694866667432924851869747806954512198734379097017245736234401257752099316030400643630861950186068177537499572923561333705076956433310548067102393458244664819624112714787258006202913041538935693806149298783723347114774702479561168827273900725990747301123697540138935619157023487233146689200816557620810737196163983439431195266476788224090630398082173473846153427601978249183116560989416415249301656363456077592294593300539394371945557732339883248379467527250708581988962885910708754448842424731779382502657431033012507144392118306456240723381042952462399004462398211137855165031143378670040876380687635740239438149257589403469371786128570736734311991305255228697423838789690094269084274774385941250366958386266509358488955919420935410895289643063577620030842275378427047104711375496947414688844206995269054234974086927498676759550520398378528442775135521280636084337286004027075259099558822200655816131167402706131464741259012812907703570841145708328677101933319611239799503555352196785711832867344787702451807108938265724653258075022840554316494867519716845844587935637877162586161440624201257005362849090760913942213171331917221851638402874142988373381878109827692271174492969182685010409202831089804250154254861067026707365457951785167676660474259723313609905910925712053067141160964746964316935397430456437733519825653040181691132437963578457047412411124902440970603458299491287173900197435778918526315662701148535220288873316000758369546654102150841691406658808957027727980729171253676956159187835655867364044953087241721662046870219757148227830303100865477501930276506461369869423739437453707406456585136049898332020296526254889687452614781798091987716992789738329969282280385223851635125397640028894906446512452582607027047392493788424832547408751724083935492098650509599471912515941742673315071492790953553434538913992934076239062638887760157000506546254419010180624863856691824299152472900190543929968262009423063555913086255654817564552728848604703784701566703482658392185318419952025160286541644647504348955961495566707058259745659336798254875606930024511473887777102118385233780794371298518692148555699283059057109137695447753330784179326716737085780467830421838244338106765836102680396595665855529959760457782672519517363279667098671224299991865999654186114564258145625710902542534536315008688074447478902227854847060878217537353372907540175623547548563109683145422803676250513334529191408514814483627470974019678421374912224664167686250727033309996032399788620235297314058432640372788656396567193162743392940043632015574840816522564577741753250694874545124432682189390117551740205158104934253804492835116226522306541975771601187277631110249707133045983075084501201870622329429797047638591514090561900039787931621712462761812471175453761661589755684212926105983074694304637071080524680988854919312166443015809972726519455552260164193878395378140420112787235277394208397848012353116946898372931639237689060740677878022682215964433946412573430592650984309122582536059879774972141501026176051408754324971958073335609713523302851485212294608954706749274268259360670962046192183375128015168588168647223506903750789608919695418027527737418986788158057542650883697473960215812254994277632484371487420435490513485050673921768488412764105465324100722043907719900846571059391391162199979334172776302050030940667986647438398178551867936130057458731284180657053789301751341686312164360770192839297116902674179048297812613740110960752403047512321654219678911686338815655125325354294108751489224617272972793993865859382468398090604955237166036782392616779761676775924596285381065969025062605844202914858409622959091846930313940457167498191023535972911161655591850422731590493207429737447875636658187869789970961176253675806080341671354982467674613029184541464879272324296835873332814011673955406813725505307780720209336841097018723877974707627475994759469185168990025361038752513820329897235439385835676883602112196932349476179716323834087675502073407121860720507510513586619909149817778030736906986003103763162096895714089442933231259688945850827826792740862618385156398511770159716650314708947780622328262762542281332886784302973508285069589994096568632180722691326900216599295835609808633166648030709446172327131232508166750034957153167282395330079939546867037338198000824715779934939599138711887151186598292694362310458590081059027178439713709654312547986452772258160366275928223816187388351677993525943293833876403691054562050889748969796007612998197944654699937140503039958581883929760189984392661026345523393438589383362861344887025948310078255593844702714322012351657468005554475817841251388488096683354853995524153949382989780493925299912008146325116413426364576177564867606592893279633928236366875103265207415181351609436682672100456309225828437958324662300073366934223922622259671917208556805241336817374858022317094963725287640845033146095674781752193626035820729027782987762695998141511155485577141527058426305143965195191944052188246870580164283297555296709302135410468007082094368451566025967294147598499385225540111392391636864240240638585228887545801678832434063217034845124936250566649799291004493866232809089200154956387885786672985767943861783893678901780376350416635108846555879505267587155103377206877764087573200358186712248865883239293221815857604994566366695194997997191487613060101093371187013164687471084027615165763021326811223425916777605032043490928838711455100168725594493587690464002176967397518672396043787731815360721931156267026725902440589157176249081641562553909956368420854937064806853088203191617309036305092361815164800826576029072267617869903903940398664767972473127028680682557850098884730220515316749852431655023878582619815528127179091344811773663113750388562130344905737627398920119753264823630892726390041233555605470329237540421904739859883662622873791118634878754990872635897733668607198645409369695020874397582511686783510129716718607496140188879786839045328333715854666375361776022943420931760561594646019301707197004984076312712394170321909398302382722719714506421064043026492971703825530974612880762964039326106056243280558314447137437085184632386690948800438999603773004260960987160886201088507073689559764188443678128747206243910014022577077981550839086363716359214549981904299211264258744537275439217364371087895264462575105265519486437315442239978359007835723129457801351733557272149013599303233299821669898779588049648983968267781387854377146572427332708941431447626987355655657839013838181436832878530961631642996829521209091018151976961243928203754742856362660041453351587670312539758023350251173159920289607687384919154547883606217351845911411459871188777482047103049144580150566837273272275321987782055371222022543078460977074480054014031015154328713348726173465739740378213130494747966493151304655532741180988036200839398537325932049327994339556430189330367495554365602625089187640245036126650235670419271024743766833329997332409433166900071224697820722070678730775297429649852023490333281084695541377613445221249885770241870842633914787663306324808260422461424032677166587168793962318443735935012294956208460271042165966155525835789519668197224302670670137707976885386002105904061608204947079935590386011398605875576015914257872581256733582003671760820861895947271944233609839994386941447782759053458681171071289939758359660199647434603695234781816009032063299271720371011994722127037657018575740975123216610494405502018137805487482254711175621149952535822081927337551150229803357458539647295944507065114538026075507052424842407231845229632787401180885051867476832843641029701564683313357876882631187386321662110315323907096302829485875822834357752466311333722746453701048506224550521571901777872994970304960557724298769151801126558833080450255931506097873677832798788675650694366200694204685806914936210040560992125081779988387234760977503644187650063369309579887045944969656050980975707407767108255975311521449008594263501875412684402844073576426246613087705399498921125592599448865580246505236177807039158632176621338540262572266539525875980228070655647713343094937201090822107225782253540841037694287009260684658610870910860285629891046574605685255397829485312804465069326182827645020269459031285533872129213747219164650436560519062505544661127844838422278165221873944901371523848064943179449583490000405273310305271923560711444056639501464228808913076271754141323308658432311491219761376152334343772780610889834023153724519154776830292940175638221548935804715802110494584998528877226005817946312336817389715577432512683839942792045409737930786712668243623262607559104030403693147893339313156941417598795438337550580227248276165833609221579849602827390939578507469771952101826066493027542741819785290337122402947739931114124136916241540001648864632140070035537837587688739569479838238390925989308610324153487418259439375823362998352445169421424239504671815454392971538835715360566896495532239703128851300570251038257743905215901825036897372699610189457213297681935775924107010657262045198506110416314960341626918159234224094636861788997862407820681275382547684287277711149303343673306831037727737043741281123927654614839963669586102911481552597400409265774104897961487722679628127761284600531985261819927297141078418659903027056203655054970721316303363283040999253544058855530361488418823118379690376051770342660624756536150035400690614071281618482526922292137650313561649575174473851202389283264912424931426200957982797698653096191742364436443917010885532178269786522094484602780639837477266316665322002619496105908011837178408939826962973696906375112055760829125549040979608903391734386671824884930871582409269919769785098765078790646685403812726323676608938397520168323641033857850316906318799114224288911462617608877573471953734923592109865834746421276152427232316006736057168273180778498735455937882082428122054650943543431189628261139474804306080790280917210659867048167972562051504929887959448869301765616495552177010812787771765494126846340195494454895068204907482868041625083418284335835826123515450665942753159235615452489587917080249691145013320767016623462364248953935685633513580071238552256440794629136130157404714283582922546416491248612819339126110268608773697872452139467909062717696145208916907382625115128386623636464641203651699952820863121350971520915678243594605640004562341221433834360908202819937517952343183616003800937006856280301194321482184135243772761809515271358971975866635893545493437341034078038989730691341869628993679077540177405677624546665919815063861497574397221666666276097234750891852460440163486114638919271710340070189356936789500235499422897702156097376715765053547402669960493672008383703727805097180097000536712598663797671316847235140706239507578597044545958516089807678727841506308595456699892054139062043581661536346609940335909758998831479044379168953261520999271201350408043806588339224768850239236688391634927986882879525272578553001697438072129984883438994863284515279986102301073290110365213798038747905932436980242934024451825566828049136640248564549970098160690592066371900117083183236055094673848674570856695580702305745515966949784292156245033251746553563211605375038733144924771132340028450088504750221457756676929938728178212913469481275176746926339202291638259108315487197070485680114589010292829220281506483512069240601483310565006385157950297942030729229227414874809230213550276539052311498864623857609330994659919198303619596074720255566656187528785084628277071999833660993401787296693498611158837484769888059611281195084552763521119057099968600883414512436222394918612863967510567585581860695478504673042730130865844673479826828964232177917057667128621146055359491068654310463384917362607617929474233675942118482787189975129789164819645962645783077563811942446794924778617302083445678671087882019605278057559911096900112647154284292070527122582519585056441265529985955559940241926164307992329829333599423508431842654705749366795997539192417394793095690396927272249100271500650868574586489017689424768706174199024436703628902690959771710526614228942788784344205829977189115065639803048087822905238701396588567750639462260360053246265482103751823740832063947176854779519846293099322852329585689012642870860904764751979098307371211339482250300670276985626829856699186788974632588771264422379549387614136882204692651234425469144486496624919230752532523507146688821953248102908287108149485756317336300400605597617261949946632648787491361699138473683112057453896439224704543605376885742038116369709603945379455651277927226485561799076951854519684174989369742117931604191212042138700346986319251957249084438461821826044460748565267249681975629038897080922660950620069920276873145573763472129009346462125023384521632290908700689700095113795991375648657210381991715905280374690962984398536189458883236971147627747113715429651092322011598435834857510549194619029518561829649299257590823613891838794527392999396485118927069976409845701512342833498996449975773118559047638202222983513651779422296797586192094954046677412532656628626122322922554128938875525074180007638436007457762354596568371850256211270530862945364943124999604862502699513871052091607094155200583541300997981141484986670576309363446401982494897276999301554704179063395580456073892371369912868473922446637511951495657526402532656152086971685901275933762677437396559512653930829099559207988594221134293657759398572044441798055616740700384105618974550453927713222528554474344207967390265568814998997179860104320077956409505150819175651994068581084638445406894290042364561133559631089151661469808653624979601065988336256417724527546689368567057368955607713967255955629379639719520218751750026302071880693542440111518722599761054777080294214232199516805702040432439982622304529979748155225569176515061114924794771064053907403820171271007734015726831998452270510903511525775327522361998107465891843828622029177939946429539241200011048343939495334015815720491222894631744810851342659060330982322662118158895933112746595518014139128679762816253081943204814196546619273942938693839882814068389049574840128106812337328376928527266151053590384839985062829512836615712128725967363189066456283927145125989685525219074964941331518898812448625374852237999125948985165556557024100664466117756281730982060852348397488337133411902042508544686091044046063813270040103502333769956094741832567789365815458005045278884889648110099843288132502689303821689926883081313905075472194265806806135824496008703686692198197337852793689308339512918461073992840029200768914627171416544336036771518749815012515925653438422648836027088839457294568368341735005664255484512913805127163726184493685979109361534384910006354057063177756275686805479306762387362242230989599425467091927650134697862230489202030160703545709424287774265360957057628138509112735803541398842059542580528456469465096849208764035754082211730005006086106356910111898665665020735027206981775285157400460187835733353480206097455565972619175508279484046791547701691995295184951979926399869695823393157453898131228065125202543286445765517626277136775722336392757259653188004170299664364230721404892318125635356431927121110471668489490183936833897795734013915519717796198866214678579227954028573513626115183166479154102910961955419230398664390940069152016129484648467456619402518515807113941862352819977294274764708065605250471402433154869044105345756215200257737548354387167427655143063282841136168434882497324533322629634996699008736237754760652534693812901159014358463991370608943574020716984393226154068858467911996187018150371771776086452798452318450791178043123909360644319946833571139465667571358132072569201314042225091711101674736268551092304709143829413353115373483503182369626935730870326126432615759406945443904394956164651915102400820803704347501993506571302318903437012101076841618330183745508783010717121003543404777079251006776047694659843245744920564789314193525272513175335690714821095941533042978996884388501271339299443483288676530273943748949790110908616070043644589232608154970513193466667391541852084569400316514212720352891910164189656407853508553091101485165856653222815837118933155449631322959150899050471030482490973454360210289012734449220334076610479000584765469963439320322161006689331547376915827705560387143076402137935304474350809040298253679938502293481738224199624342319857322586495096499346529258901215641252345896252569898543655051931718759545034459986201634139283612841980855213469670776668256556403141882931138333345308183994046553432374662041839591101670317273643746409461541100410069163594252129058021993523393995674615372597206947589453626748757754538591980059627500121487815863719158202270330655551502957376403270709177255773858197060637097698586685333394640496841784983222087619723988391663867151171033990276686686399595436525357377622017508592814147152375912427179401121496778097286227493931315626522786233537676620930465732964819012517345549171505264632968429821788455793445859744645665062525069015869885431517126195937323814341676528033516381057233150138309687167995906918813995996479940023058937554523876551866115628138460008843566884314705734715762097698646375644604699157166529548362312131253070685269599227571002108456455249613714850519280201927955026298171964735725571356268916394199001715940583245626263077795303932717045641901926030466142077785798386107558941202556864279949407995918024122707673216355939867993174137580028800264929486437408664692226627806850205772395057020467914851659345697250493904928671289209507239181023098416397978081357308082880860020910239795963667104729668729487736865852200431319529398456541113264571000044388061342300773472085346576325484902732206533052255670278441053662060721788118781711670955050371496878371001083846367960294068268341219211416387418316201572379543280662607979468246590450020698032046977314334081176282834108575049698988850003228870740741300723286322385823487558716692026205966077103958560101343695569423350083334683513419846657715042401247982549244309799316894650520533786432492162103405459290455367266958138210200116333916468541955303498823727986109855199673946140813791593056584101520440090155760277067990822722716004245769734920243736954797009751929072780942414001164933237539838019239852289756882276967435650710774525535321065050353144988504359095132054126247425284538745455737949798509405438805673444362560941944446609299732832145073673408636944303485446056343339092422134253267305662708803370570742370263177583933214709653228444776939118841948493150786545979017207980193503141956278685212982871393368135817870342940657444193194544471029471727266130699102351564690821425855986379615917401052778806930182083150236986513174115081571939354703390735587760430938450428599374599967476926300720003876017913079178262884604631950441492393938795456044792726801970318507773028106772526846372495638715269165730548541345292643703271534968061881825102310740397478454914967359004225313374033334626642981124189630714267251774176740577022750169429091768845256064731483052464427761757022016663514001799141375072493210661803561217340500563013303859092405413783687005993162351556805742641062765160140775777885839688639018835610132508416930670504496017799851998687193335921220422307342492408447312092814479229590317493895652669056328757269552458225620353107800623200415713220992948690801159437445382917621870862182751049321460485782209844025718155356540954417069271585746808519691452219625281349034845492538129194752556845898418562944470346540143142918555494139677572354964125486575606812631868424218406410543046519072065104020689839699120638625229450402157817416177524483106869819187494232700324166461618363111788918576195220340230782942052651224307033337913143770393531650130551993566573032604575675705301748239007281521086932780180625091434879975659648077801491412105034567329949621362674545468336507008494809417233757724705062251891540805905306055621853588629149594405138889294627661239508734173045560494484583572305625029449297703491639618452324417408261739428695334423301219469550628500034403331512163950304575317884743732814488449936287506147843598462132715189268619260663143045746505047520579718876349468157080467372187735643698257890363003534818171596119921412826229422865795860310970985276179450049722313683466186986893981386384935041629068835879475349406867672363485971895995084213315258211915983966384489639549488702109136154228976780935236544335482854563996017578784236969602720263456312153894510890726406589930658872666751996874007679414661064557808593244979422963065845599989412901186769163194777912222045504570676238203105035839027116928003778581344324218593490696400457270846232160726452291749986624991186266112554192249115264537565007240627516556453256659092706646129441484724346539838104184239142915473029056789075410769452885188842073296439698521461288853452353256506524317295669760018800500203955165003704989375908284121342439430672665337262089838492351987313566594706122685155577807761972685011185082005830895453808986454401031931916776609356867950473741837048777008448008160584484266141427093446116418467707576908919187683651923155684458218825617989190461088958065674322262315307714530310900889224417749576286471766208491482636883732625943668512271399452635680249843526959829359120291482095228913151628510680875104921486727239565472260831317452519781358841331267675187939588429276683731939752522394403459064194464852374882213809912588228778851901403066377753376090776929081241521203736811436662606573093884620712844954471095674957198927649154210587037837604445248246806988443428051391414605644059441546071901742471028526522002508469910854470076273231589307662727697592820913396079689893504246955247389330784194426748319362009560124912171447819780876549213305147722728320963720988455975186955229429373528335026086685370528906601424841313805202370046838711090626015799892235521882723942932022716028487548583455020868384606474460108459046037373513818234814480320016390195562180483070685036116155788326088933308297928187697827342200153558808382405694730591327007574658413180655052495978293176985679719773256347431360043027315523145111722544114809683240501947983600342012700018725654798727090742717991275221764865885405789599611415149533407609764237530610297297458115862360061146817142510155106387996996936157466535033109774155421712246382639044773225066256636506865818687841353476095296259196425213790233726393286379837907404582645657293740093352700935863158828184512118633681718302210334780977150769754162045041810995196224873900302143229794614432467424929284602599829665353067729799136568652593889209712372009635160717125179192612391460272369885659320502530495928888050172377063683643207941902556010323040972085624793291407185908109942339052741065251747175720805783202547611510938383163204651251471525629618678432640990152791896999527953797557495827440151656479603862114922990575657374393236279296789759327683191756130059127077053728026668128463895979635174882274589868678103406735491606370246320257412592669805305535882124296974955635319407000456287980110659463548971188524650685301689162724010920644987833109282365715585792758425831183934422416157296492301644357231349603683674369441636683109229351119433887920467131980485810829168985006504621359050173299933329609526781513824680151514793647674710029750051242976758686050444412284964281967881587250722090874700471986769972159680843729836828230907809246211034261560569056464626128384297373003354688263596701914323078923140105105011029015638965527615591891947153377636936935231994878813712289723985907529690973208829966730557524465981105102506846833027150406664912212941178581518114024843852026098952551832868524170102416439787332278140847817978405926208308502212860078780486660658076494232542177011257696560318274397005655350055035723198379144165243441577805822996657695270730983596204382581652202872784572041390437509608298757772141734809149640046776210153067688923315567398131961253791309428515475399854348275774203101920228478324649566664969886168768964671007288260310173167706200449199889239171030091660322087614719015324287964553688948132982055646704219708031634246754469840298264680316916148811918334323215982002347258585199710175357197799219650009386813833452539100878322716099305334735137467334400889302742523775572672158559779103965077900293500288404985016417288299387828122732152810676253156103949580395235658584418404641040286991474083880327466129657253218857603492753820954088292009776552597993627509456409279527494477683596724238916869878938026939497724114144103491761325306822463353180066067215503307131803649488818476181905954274067839356909330152951074597191926111874313498399156192653677762110674774019328222609038591273135285075598111657005780071461611540649252424498990665153407015280902842456912509321274808833155776495219508707859568179800445634763144240645945777318476656536121710296718958300149356011781146946712849024463139396085960676464787548665043139357823391870453055320611088961681218857947857391683723392477275886981091039417399561160677232236202802076521340867611105789351955274430856849307826673110200717342157033710228201606313839689409615937032281785810467815316710451787795667221057623198234275112237024701528586636679562699134632392148738445388848979769610067193260927296310157948316954988378097853656752910022868478959671901472159913486076181775004817175331180372585058959293716144010770749232954648018510388592425057024880140503387615479966401334460082098469636211968065505489714800109384484448300566605330151234807483979395622672650328675383467196217829415839171066711552124456016183942443984108808708263353637564029990566698631146522349892738815555794420516449322900597906664429658773607073148081253376333969237518649397460306851773183930945351676520366808250447569245892892685095222273286405745582474013623829136017596500825281724050641902759421579383946118190916452667286842726467759463905640819733304390764138207782008080367435226577707195926575046367900297803262636090046692201977488481217461161787177224749635233359571105960651591659837971192849459895509993997501014889060134072557679615172134824299560415976004185528066573272691199758759009574757378700331048307817915313417835428359772723398917443292500872885857475669103666769338740710666661139697002397698542483171573939125281664966414996439118945279759468349731049611495282101898544445807281189666816414866104320764158807994258698550974714517344778879891665231328246983582928308716350592802478818486603301341940395417912782574216737498628434453911905270579669531313614381962278075904291908766628231585619806375506171569109394571975490478113441647488998026060862789302700110833099105316061808578410120866991879560136806465982762352783570377278810466195556694501447929773481374697792379528746300144660808736794969060290041020536444023681870924860609455194916366254046481535126254844067304688031069281806231291140806023099111347834501152880019570224511832718506206407318633202922272760777765220567294901189596642986904129415971569552829617331323052397180799138772617096018918060631239281808995777713669148039722438764666831252231300380273153284620144826967315517197398200840450530090055185238998217094602351956989901141732018354332186479179798479375028007984551236275873909569831875537442392232765290552286092655421920119817330443124374641832739826770601667070859074680145937040056339947900622022354955971056896497725626779271331139337620697316285287691079807577016854305024404363051917541234868996136092324794352298302269293348692281811332742732365146568712944148033940965075851446711941887714096545501026306369859275021939429591673721878386389284311008843980383943825116840076495320859961641604529746286207638922918328207134775568605320782388545852278290392621769793777076125989728174163808108481545443015707141670331874093468342964360330158063795966653088364001819271748980007762992210759560387404067784916097535820508831216329866714918432380343378875214614137817600708730042447502388735936865574752130105331922748851422131866768613769287847389244191305407172857259838973271266920558395838268672575895242246928331191974296847648687253505288301552342285867189479510618596457982332538358634129659607278939909789067587207179489225137141272065308492533907771403788263875576787761238535344859023023819450982923064933820778250534469434827545577705299031906778940405724844041869520735885365869177550342064911088156533489658100606641707629479009756937331807430649959549985906297580933579371628964637043121510943739460341131858124524622459854759601650303098126608561061102412162529071575458735922176712461081604124928681695336605009320120971450131298682993338548369962608334841637232206742233410679940600251797484406361559986927954505604620405639802787570355256843442212028473510226928445135749239013411518665285343892410469437029430640014036354749948536120627746236226480171620256228484142387772500580182806828095531561711109775445547252939943032690363761962073042298272599707586371555792676508646978636555148133430518958571128956816073443448278638373249630023769153878987317085759574970752528116655955314009774088053409112790806619966808819804716672824221972663563349183869047297285369090386947127089952006994610997940696882124517825782385505053217519790534075544091745540720325458434416683433250601003659014740023066493242183381742857239205572295507466168456906389970103364483426218910220206143518335953670682603098889171603120166038203858004994293825307345712597961092577498766406682846621297353628177263737805368750057408119214012477987620919727663497544234923881014953193879171279308182490482171458423743616901919859267128457132603778387909177684430349333012803918135454028323402305333577910784170630454029833363131201367121063353014870774573915456301721467280169550320970818947233471462914564601940391346818327878833090884936993066247663901408373449688738397241202253054265362048442298500043937554616173107383807465066528324728182402810912419472749307501948366902741343381698685019531719959082811930572054726645255819273687360161333695327728851818016605370872188912630145296070095885999082961782255195362217826486784625913964223886629043403747883580887577647437894195733228764980940364556780547739696700999142760145505016903142222563697291481582947317299516422867662071405041147080210690780219152371562215823825763312779512196432995080529206408622508740879410199544961236985159919862103333932982241712272312071742334000206334583055210780111159526766372248505181059738099384098441667134262442164398062488729379806740099051451976266047303406297783479676564769189033312724656295817500163990753808063351361472731748721861952627054452880592535597441793515099081671109694791376113566057151903970703742499571810558666330523408483417284814014501625240495994932511911178506601810639822946397515088187807251555685084141486990328999106500836816864613727789220294524601577597524467457928533213585031589747648657348759472733695539968056466357514034268337334228146569398686568964478523492224511284513680549105252868783680683569924731225192540108845704095132554923028738080389753082211706782008105105244974690616635498865314487810320176736668739529732190859457641236579382000816141192497220038773645753189353697103903939465119024384684780945084231735233218546970978360263474448944685796773685281042402600119001490491233617019890803668007321862483485205194181231459329301070417018122068870908045821264695623909267314524483366193980285127628513698769772564264912571512365738621331978012411524249715654605952936396285972619811959281854038898758220614386237595738408469743370579288068299191826176696162489054191343499257878570806658619732185581164863878438708642858204753357765896460509277188364689457461722665582039261781632527112888568748671651170280832865264563129065082181417517082571394540385947471232524265615214212858963091851091305094148048431927315530588780982776718120384032314523214750706700176487664313472482750907582337265352213183403887754070180041546619367252580785735783143730072727621762852181483700896229062560539487326183624059559745521001128965581003494985002680634500952504901309814753460450606759650375268207491579273536996280109025570509711840106363118574591929178871337504231964694767102745643678380033595833704754637622869543383941841493129673527760894330003902845505241998487402192368226706331459234867803897833566967256954437041375734490591963560319748825009870476400536034658905158946405978613290102984661643801916534601212365777830309102043962511509450943108754888517394093701719522504042452120981725659200527754709569502399895507732630491567802140462364731161347562902642789996788602479128228213142650687774886022547521047591504068653198846355029484348802110599543902391168825267750902963218640252788361631462602310296159282999347487946163642610502565370225699726331388029562263741957103189223634741853316236118207354688212603398786491914938487309413038477145977522649017734814455868068716192839377077778206313028564824729511902682694952474192694718820761668392044473262650686643475738402039281796470213905514534367191033742480329487559050111259673553950926819295061178780779540315360199804647573605505068781355117571917293181881264051652182953537307783453060560125997912704364131308485710593255676428925956754774296691572691578280339395674931458493771730005814570309077322894996898217398001116420778259425190383744766248801184085558583250193913732212259469969965731427063674030712591037582950134137585896537000630532339398525799796648139805099528546847534374548758735770072099825633731426308584369333146653599087825297817906390376171743526569796967289545562415223703969256109593346503579249588173628408397907432095733374143923577432474118629472886771008186391102817600564954468604718499596972693093545527984749707942412616112203721225396121060184899271262742602861876774889518769214629995083028189705197966121177375638100690149930927358460190575841837255785444551797387076988883046968637779526620907440679866013089330906545146254164891767181968282856191785164247807731744172526393956160273676724816422129454300822517442947056060877079249349746762635531977341261595344977000112290515045974626191117666882448041370739607899153904538282300115699901739846021526552101992834475081561921102608751370256141974888844770439782297183997405688784196114129680544070835154851224391837732033979269209785411199887729191560661063668394864315087440361731424137276994615898086013204838407148305905234762040324442301633380476865668066138513727583309372058745702085779220675371760596070054365729281060923934123018801087761249831988936466570375123001773158991138432028133498590857576998293533527700263767625246238060238150774147978913110938776009541552215537777658262472031633515541617592813034842517521272090465473271484710285577443102775528987427607254236803538084253389107715014787302435579114056612149424124160878338636642716651932628936267854293790215623310325366822975025938827066741190236239632373306538821577201662845375727897860587445332025617544478552359685980673218489629110683132891237727021081560710309747251606038307899257363616193580030512153251132562957905815789681959721192432248067942735993239683780985006267045497758423671775507772168539568025503399005014382690003194628889883192840269282660599474288016791128652418515831380644624144536163804316585904605372447225529668567345819228124134444873075435863708760019244913528689698982514890720384506897622782596282144373815356610871855984788703824080398240005659924880155082424619266137045006236492310583135939191443043940887064213475559039796483050106802244162539025407651042471096389114986598908086552030285279664417126393991927704963458408790121597951335026780596517758126703595449670768508764240179540652639979610442879502305650505245033765007993622269476361924453856750677280513315913036652387586170562939842671956098111173359769097676431785558854224819378750433451642745605786880405123540102107337764519143415477478609923366128131381951874282233315648018883238013723275692022104818081299818283182904582415853649934781820359023616734635485338944347288648883457916964052737604788059458226407418646368600923741388873726605756994647884209818149047652956041192667640551803603735303634962536056420421511368789859444180996086514393043927174187877579629250794706025504619438463119311577581992353180980761324166742028242763630251684010818851576222980166213272655931332792634420177109467503946381811773877997065338681417546128350307895794464335904174269242330150502896547779873900665623514580648034551003243631361828160112751142724678532067254951207987191998617584076520672602667892711801247467024918015453560053543876777632150014390347672178018606703397872431459365558351864872059215524293450445299011375675108094344469991491002090652064684759379986026035836167537742489459191159140970521959739841132227762634075410183398259838048787837070391275315642167239999379822173857140709826219765796658114166791153687263635684639611323665867101976622622029624294253718382812924808610313118134444387641705864708626382011566086131724130671018422041405841020379807702101273611432691845646492735420687640289644829972335845367423746848776307869709858326225502188190705243663425799844919145760828155362003420769345969010699898985950583032563365793001634015757905425279549637947943070258478031106241124679961079492748139819489943105685765013661051942117982571536171959848308526116889128054393228952085143197878789529991575220618683158208917154928300187117746980815505015397467643491847386404249732612901795295625103469033889115969804203719547209665725076335655804862169785429512054983953095922041005396708066898351226281469674003491853897151180104197394543726125062975775240925783713640663921514296634089488756676655905093842001419356136809706587049426196043258352663313012873174247203371273569402184020546616543997667578456069602926221280327984263391849985015744788207355747448172598315581057270387171967617940091203914122974156664023468330316671640491827941522493671699663834201295599200577422442869408397078029839791330858588226087345655729284109787663160499719636860833827456741391543935410789126979760369255747914946575025586315680902735765330971660092033688424997922180524083714057632213680638606158317954508971751623972027944687825556913078167114111133749562379669952376342248242616170331327697615806302677629099581682448947272311915210776209994934752669312975332748786474614550978792562663474245706900332924201959885847984489957704208428295902868954203384160764392111067190826770919491844088432392008885954114184497579007296860442224054681184051029437388851033424795071305447893416173088719894954928009293356186237411050709179108449317325486729528404899219045222496307046389816397141470199432545795526370462920858581461115477970155264027667520077031516158190911754106929782396749142234203591832931162684067209106808140981492227588713546962187968072828793187693508799634331402054574540152341286869869539621051163214102727204476507656542561799798972383728813062298547342776743698480929586767809249347243745236923100822337956250343635423823308537892200844557225242877067515943341178746079144230652831412493718950332264391498342404965138821541002307480595464619909325784087327547359369160212624517131521861965523458080283180828582189919402741934309049416597007876160905317381876317169765748414521129540391119258294812490913659045772339243766250549469564327757226281392694630429825008487656796499811943308468179874061791655015807196218245811067233019357781131654533419004382074122655457608344732223832290651321050884042895560414217083264624385245737733327359141065502326177733527270752147769955512309511603282449828080781851984872709185611596849706521550297749423419540815223254716577431154698891186882719657321219836081036430292417874294354562332785169774507920793175809401130758530094171018199769740580159189150514485494791205938941274255110783638418827558777007600739562034926955759523400788208240509449592223037400288500729571991782108622037742521400716430774472978355103332389034454166989173316666891767900526703330383010568513758243507074209453517930005757096848079195280232974661054015193477797537522541877024827221026499428897650903693658366878290702412908548079465054723487466183693994872898194195078967238038001082094826472288557964219054227913136560034025567615806785194041048654644915408833127273723118686975292678170224441893421577530724724145617730790594471768706533631802447919404796062907710101842217499586448671861879694745903554299135666930537536251150777081027605062721622769662764695213637763272257628473690702048291305212416341489952669692794553399500890811820358686882895229236026583297009747086005916929796660502773896380946092306441537867385290420503779861521366507415635199210417676500812016802184389392055104706626185439760502459129716362312759014106316561582236931644877114225224712420362691896581072036478475546246290904204576463538460469780304238368998783034444636561496913685391747224845221226028745351029018924293928919172231691362984197727040686656052251087995410120509722015576670710066863419542064628839768271630949256218899280235109789003094099971187912675370458086138187534798186991288045358743739089007213383154929881783111843981008346939278722655753517857584997483495912956061848802967262914742319850459950654800915818576228065030324693749907052577745550580033868273646029912962292882715760807201179275060747051003523120104410870158720820785306017685738179782169484949043225951335425769814364815167162890743775225623928267759186792583354380278067695644342763433032607219087840768722937988441844515213967748832529401868039716637897575193843973622762661487169014454420076567969153087797473583295256321742631606128187461406277304632661486231833564528290148623841660102288771206444588363793466734364023552988599817324596573134859366562012304516388738098902459166798083615825316025597905729642098677989366284566938517848836694632627847575482717200184844735877302106747754808506464800296972703817038619401479824790859121718656614670077095537151860801507236616416556541277924088129820700620733143813266225615712786000320247376511381944118627765245604799459758048679197854206614986164785689237151805372662514557564616162748945831459762592711502784758196521590696656526026241494834581531530383237062364761482769500460181720109872247517150479000530824083171524147585417292134135612712014160353279339077334036070749312438896688387592077167666560439763244779022086971940186908731017052930071672622992084959373244307631911477351544463154964903465953644812188545794072217215694285304113894257934909390747683021300673117012627173147525939151067456953775237518528253056526218969248432292873389633126262264447342066255404698518329587773107620990990531036502914682350512621336082960672920477119078614420119260858279768877192573888940864977600144533289527062969540926314928540990143042533193465551436413659517491038392377945514701928293550180867458861017563878758148802744537916201349392751356958103180952203852083959527468709406792545235390979309202216849481195052790387960003475066028596643806083357820209811379531940855644748583425233336836873247441760163529743264582019275693994429512871860599013667720039567960523388504323450455680605443487440412342869264191192214636746932738063496091246190712351920733999054741259860775222595212451756068995422227955998644149566902543308431606075817286025432802709321450594089809266794990208349610281859076164943033351977304676827847481680954416818448492860053095594659159509506601666758450660590292192678714833274122250253332688015059568115849790753343920539921876333176675319708928914361264158907714290296329420218896712750378700163950293469094942121465810162833205026883086564177059597174172280380962685516234868478652618877380351307825612767899609841311034597269481060311031346590425744072922581536086876751930518890171848900466977593645723876438753938037143290889955089074168370871159933216971926124424132388817859907386919095769189058055336864380721920014497618707403779237355597897850500419011975927978887576422649693294796164294617081817488662279237860553922504186149205375063188979020455933027466501421180067744518523283117070650391156616404191022893909556965957637856226374652998185551356747932877566803442310764669972907734557224043467229477527463557446155316306153458966689212062356825422785773079268150069767080197346663911098462177502917905532951225121378441236319209341492716807612229841015071228525048239789662392758624063760081910364466622353958172291742151407181444690308467961843578531688585041333317050004429481208130423925698458105582526789293351415125111792289145341675174237825884801435733321266536194425705705274466501821976448886772315479160472531017426145572845666030713191951706973559084258076285738080426156061431597147110832829242796791883257830913384456621858511057697635077822297517104270621707793518470551184355522265457486981937905164217703007559157616857373492196482225101212129120688438575931772945971875458124815159959937069117550936689753123090422713872151252834045335602502246476872303398085331242830458006591453716885319791440703198707904023920472320198422660855618385492796899191279708640102781232948795470901114492924362446579738928793984108001616140395152516036260904873930881164269402396053454365456625186461640454234474763614706764976410884698711408763652116202078708803809327576535475076250859583240385584851648416176145536247659368876299291140953709700582228184981904254191313047376942379868912280766145272183116224298644050279408226335704868797552237457999352098015526357564799519799821741278481993825118722741631021327100877471244341874145473471695613366556419677082733480297250108696019598173994964006693618615042131018674330344244419697522484377649285190081441896840016693783016485314024056808865105742820285291185757142640163591834593817313090927285205367495166914931272854022090228230542240049455575456156990787912643498332482767597518948080362267027437632331736694601253379853814177831265569963874615043490109176299184042332291216541903107048178720991331253473495149113410395732179953084943195000460627557648615211634753969427423837123576377997588024460354227627207999762885340097024084524916429735344348462094793473572347487101039799996643161381413755023511067513389707638161531046974384096001069687984600777363453468464785555360817448205630451716114318876836965829045315961796639933759784871107964991769922916420399470940590226880307557737705745025475173456185093730834346746491643993453034008902495768334475035884219966033330858821858048658423802201464535955520537208719088629964822282382171666895543178447760410419452382480925524839851185558122203987956953500159465456746698569530065828386487651411177462768946496460968998072667705177329539045253442535458978037184787227374375828540970604765322810279649284362979939420635766726431596373810741313763553793001769285747026849269662980628332209074824454873550608732650092384436126103048662820790874327198335148697325589753049269917754912784278918966979146939850017695620988276380829774039543824904539008489442535183331606743772849299667421829016342138937970961683136718785709693944986461921490560056209638812976511069312515032605205189668033451876839701266837504994169669755436580717221142132306064178989414857699706915603126234694758622940574880848827124936221374765304688118825305777398740501550305218061922727970544323852080171921753787622515305842445813756203485528858623306478723700097558241436441520311651412322647091747774435674187674321174308744548802125055682114469214604335049090980694464579965438052521521827306157104099187636492860555207774190564551240462362662751443087672118126078145025785196197533627566789338935285733654158015314631034165488007428944674857322554428087750950984430718151293630775920996299521022814763862388950983964228377304683374515506637590370858904137502244452953819405043252019067689047787473412352194680374065931726892510735738952048557440415739324991771443039459029180363927483645979506284316155549636838700005499574784935020187984686240392557701520386020906372657210949753298873616653833267416388615735190318712704607777490666300962123407140009674876502885078654404826534460219876941116419234640248552289610272251450383345780519097876610730492001695111356824287016808109807429241407869845847039219404521345246132107389155543942051480273808274237401892479956007362381802899864111326287038592211675567719219517498090011541065262824036057410847004945058528005409057596449111207757199212032544662515205088139140228387050866893100696937596210418723379954400254461264495098397244412853106262252171624423661644453215914509978669984437637473422733843576428518422860974466545406529793628143190958635713593814194161116177251622494256540232942861855373143951497385259300790830589104851492116180519973343729758240818490409928681020915573124497495250867537090229469080259068216093520022126294163208963031023819707520167342090446001835122972186505740957980682157210783957095076618968479263130433982245792983794899369288792061416348036869819292971699061726647492502181380391310312873411774453597886190343694663124112118016344649928295575410055538547484723110256790067859051978898108775630483016609947495996433924572985862400327183412101295253901956175049861831125225869057154528372341287406181897610831616123694359237367911685151673024762909807470177289110033887656485677158432936373477990627876793008752737426345375141449408184373160199932218283639174353780221061974065678028167862397151939045916804868840642868074641544077358275282047560972260289361130453233181295265563878133646885655178523260582874578590157602480944819940313713972546042246586269255236021258272293677228889652620029215247494916339409875864076386803371172675692255648799024317849777664631291487238997287901709358044605011758138997370869899290588891765739608370186369134813130589538439800985978529620275898900716967156245923033320181715483645902558974394302565156046276228756728877523632852780245489260598578538687312470767025186978585590646713207208108350247517878277060996951569055433161661458182880935488042074395542138012397310271874820097921349790910750111944173117527642227601542152827549027388429402952557914661498030184261169818673787884652929027493947113919102421209770765541378696105498994883115990604264328217179951079997222005744982101855830651960179068337309362659621236173052879275168625190056723234478526400609035270007939031217971224995143196365822219672736246803884326354328087071175114079607780607301224962240227631422612588309888012266044134619756084887095100050875529485309565829199637346485403322524586273623558611676434480810737761928115467643807828411844982867093800251672436862278905111748955526936050833809221556701936528484560814886871113248139090839003762014503785600336531411740312033070892948858952416677458693731971194431205060891895041513291961369153348945195121026286501783032696883656023901260246877631148404287296004934637749871862507579489357702048322371652231820380125437061458393891390410618170978237497791630894666332750782837493624360604622140625285886911157966366795075791899101639408097643587384619102988799002849354410096456812167786564110700958723020423683510628408723702395765545788251238811876615837017578174853930155977940398354106322994032625731215227297437171562769186912563188408449979246657833978581958661978915557846715313483175240053335897569582317011960818688541106233782250198933349195017431862120189843521811813609378321862468439041634869424350455537789569543260331419002046956304888925074088429881746783613297030786930803667273665316549275467310146721374044394070619725001010843944854199674102598728611159746632430275239821373374745737501246103439189420298365985139774133366242046817131163755757505422750965221660894648532455511971026258030562684082589163781271369640592938308719246016652006823376089648164390572507462224044496500036904080196084513582268768235995005312418957206454570191008378899021575082970852580613335787298493990973694420673381158547181810000742016715039776193773224001559933916480448660970065548098733236416917319840698812098743623358436209731386203141321432433382640241363896289740723549143664830030717823016728551221066586528589107520779984294719757558138880241694586732290368232059234513303448577616397134690475165610777101197085426954202584378516924509470954938866841960339363014577178078874448916287601434010706282596124085199577666812457156868122927981609620772068746498413492872318051636845994819086167692046304211482625739478085234154320593303652227038837521914788948348043155290589294521532999331757929596541263575705679327204336252416212865019229877566063102170328148703861492322132319598411631031190078442749636515631426280301767962199248924912020213162958082437097017880368813269918240916607010473762996010246742965408283307105664888389814642691070039758158302062781874897127652400789101899187094709628228672553551106587657194101490800439705665582048227191034102577931235695677867005830282600701939579287146199643833080559675031437040986740477601082724382165123448948781550585258175404804070740754018286482236543674285853679577626467206717749759224552294689097759495388630241450280239510826032676018483349042411635503537238059726804844596018979221929244407288185701066712141252346493115245145996182935474755388083362303423136972244949996680055144289569856382605120439192998137267935288477041010319781440130947738864376785440565970625327602766938705270734239374750570750888495896168714715186108435585580526388451319754497787929771873679362474382993633922444593932102012760847056231116535421962515179709152392984363666253847392010914046108307648543445518271035929412711573455204413148861164439275051304841667430302924434126502648926495247408793869875773433525431295723345051250565650517649020271002639543817088101454474410913336598411520796670714041295854938017601193944051776654554763272082211583978454067257512247281765401247629627733309369590906311375627907257284967740540914754394731190925152731569336830798257855201716545984618066956767783502098847633599981400908820726451202922300517121382028009156747946538735626183365766258686622405639854668276233838807128767828347451436060344435831115429814123383713401284832762474895246473350866575939417473616123072103342463071320317073364210267445982165221238991712777737746430147758296288269607199669113427728774292731761803497055797896598875628230119388491333458740454832767501240541082399133299861007087602198765955372632811416391187413374374425938838950615594317929702411542557596723590056827784087314190954927951444591970482791921806601494647247411503142853426889616087212272603334450099485581683300229493570792174342535708881248259785348737864690188821824370215182228007204682673265087067471138035808988796416670360433460476787308874082600372663170662524458343152524099351878172786693576630745298109985510208308705577125819374501273945660708555027180408679215955645289943354751625944050974760143818217553264493552254374414895646431116240748944611532197071380720272144248326852259328136571976927499052911203183100701929868898127716182565803553172125727561823123981103707306521131037447995064271572202115348480665243539149555292858433527329353304222897613190534986208478607807391219983870312748711835201095581881487115394406929121597025048329087034626415683788986241778265431527974754541794037463107270512320157539520821905502857498070077305419319809815770936929475968470283524605351167904889448496905104465014208752183065684214687357714750855425234956102892746224512833435918320043305170770845481591435018524851520208543368050860715550116555525796736733109421734955373377611735404711606802196398500646392797863014262875278477940876510661026701511140251697588230857520576955787696011867739506643423147467033282344302477941617390205097491698143909242301919006020440225434517304190270766101302810447094310811614470487716822137556644383169940992986458229446972160436270125535262392058783538895145847841168494278226404054929993777880806758388046899419938655170060064859637850757917173305947757952261135601002504197356948840552902589317633395429827332779547413009701356786211338440523639206900183410914840298145637458903939669704370933869333259737672860998812325387433857438965515877553000980777493789221824886806036756278496190394922077985036324072692480383783056599892110656890806672813823965648128648155541916731571251928855047424622443141362258439142618475080667346837518128650239809720021061207846525992826919512899923953143793624478964409201746938523413466983935838314720595888383551088734525507450656962098144233125467900945728085323528935072163077065986364597914190438646043612964100077716734619007710114300310974892411233619749978213203646124912905022126451672654329350077009819470449733795608623059200330869653705636362026674988178846247648185741402602426651800644964303074123995486510016994503887591426101753404002659080279375104960140435309708682907919483750153452041725323794457745210842353839824313410951739284575111881329239721540827997356552243942904513137053295039197375047247541653839188265381829981095788739841022280135843789102065607158201363627544838625052150524748449275275824121007764892628899077542923178216604779846833710761878054470378058772977694092198386876150497974216606226510725391197622682158651654917794412257317010998442902497158431130344367198714048061058540238959103470212540264536103847282503488509017490951008924019059959785629852044476353186359765471006931458700061977510464995700799530320975829677833368082759685879095503963199116341619938343108484686142393001558996639047289221006075513957480497073371040979441013491071359262654428237703829591199666725791116216333813239652372437021868339636942808956918219706699466935890335361725848154109339716155459313244685283687635274978133693715625440994434195671765260875483859115552743307973823784283395550290640009366075802702490818063400081089572839755605798445804447795609751359295103230390214174320058262915048297886069868371453096100212005529831161628475444574616740045407051658647421365667614341318642165369517725622417317131012144113792312954468386218742200649403614468379366466368395723711411347928039598756038312903457178607288437352796295860757212982546497231980721066076789453599853986126356241290785879271735590599467849196638728761288999013115026546927631392656663810972209574516543861980177269836511165181697345942961678058496341457940528081126180806888601546019421886641547547626905143786776108339702560638353603104353553275838472459702537507222421077577939323136755236708590584899201713899111991863995073994598353743236459817987386178741698175592589411764088261458213240171699853233492279371505118123310986595480320792466949129508794671748587977327034952475635733490068088451873530743918397241698177768279495146283021851665999357155387400888061287699670035463240828532109973709176435112358925737770095690681243186202103238215983709202019269979909325797493473441207211268350770514117642655821033082977470113136618638512563383104700163478113147044085788454434079860691972529412444401087478831681026563502890298907245635424054310493462624163183564876876254192162744890802957108906072259550039603808559402370256493196486194797090983893604169274149962009284295939026330136960699747170334164656721350384644815702491896075155407319598175898923462208136424939962366775634972684913998963988748907867791114529694742120579857563170532719806763444685031160065059956664591518358548344723674935437255000839985491461794826379157841266240933780623672333221652176987543494132912947038083594816817483317413171475145853275703866394357205654818998885671058905098160529576140295513413689329874130598021937671597553915262000294332931461478060592845216457877242758003951429437196258556731938230802072006754067007344132757400968885598908325267442597662608246269624871652653733786387142792928678349598851739554037745501945109131604989941598973102367658760512315315592059840699605737895637227660825964787841463851807983485909095553354444139607703974769926006759630698564610641829438474388884246718689087585317348464759605122592818048538074482041784836483626080617703010335665127215301067325181026187832930367786433630315228883971502645399458010286523129605706214331908265300048577403415171720153672543466389518660125920253004831030945569966236177777607810722830169474664005324081288363051777787620813042893745245331299585169045991094246047676837512950429136741343905555170072904277747425681326855914247610393291065584993595471389505544943409124664981251052611205134224538534971056856854552267568622134490673213521321082488355027086085708973570939003314394713937384064644279704100007246878687789976110681166532732222143446500233911501758462406203370152256823061869737795154675368600058885527940883590091406786003066653776518876804851480879101510975680964132118261979462085995352709533128276021022131073429078787968782187143353233744907553730961734201944807515609594252537371699666746203563606188177403403476418045568506174977036328664386584488483701247152243413506998109138735931680121483800179063740063585658821595790976686202620422004474685492711407150936537710506305911938926742540370260264747750116656815719987098634566357804776311416206322197121296726945015682999899108805957384682597520127226219360721030516053981853832229034276808632694088406332738131187230955412460042241476842457824041845895999118457399809261719131424367911979103455029555517904933750209918682797047959513426715188700050634204848405882856480025464605383677738425114382638085573776568999578259865239805772546214922683992117444614164804617469274899380795357328245795328977245277968710840633003122512562563292044342038721112949866637246379550197710387647413228581712616603803238487711181607894968845830923477284111111332473910235324806704693111541764161479276374636586849673218223136134376738113850459145081009017052131357477913888042687540370646265724127402347278163409604918419653774731583681303021326908604908157202581698813265434248456340198697695661748939216878935127743527625031657179167760227822302658809134701848857848034204195335858391735415729956728337891506059066024873173112431899255087005284242782595437615260160019732656849113704754626142109306634923136628544690810588848633784457469214560730824633605744988337884087747253825626128189883205862358327463788396560461479945099740240541137700747286653467735910640250917283006808397649836126068341849328051996546814953448801045923940997209500492662667158706834141626180774642666613355087240439243750021008815559240371417315884889218450275980382956559268691864123472121015031423719659644237143499084906264704917800911346457969435563202022218321031958584479945799975195036846380047210690980646196652423699196408976736743417043961694691090725000127155113157739334187039166723516540996106352120730349663058258090113150222084698533996691460375016728988095137885359016638016840728030230136459385022984870933614397857830188066224105571788689712543876068241930597979455076267891251471121413530066757970330477042501846894079549775857246208973044140949004023061861785329328235650351775816226951223367956414765915195953788046890618060866882173918158364912227702722471007459234492068080140312731617017108844572533474699068869640461762665507704981887229760587520229251540074249266568157784278932801052671398441808727783130469673103383221820581516105141729847860514966178954367584394094367080340911642900369280661318952371773767337976037767116759647677257266546031727947253288349819137143652347348268437936652099387704173494292902068343828590779589210191823474757158380451662425850502019541796667946023338170143147545874649383777426695702337380028422161604752794419479762522091805368841342494138222653227741489218936931313667117805370807131348983773517948911684930318256693181473301338755043014862238392604147588076397351370114321036996998961129759682976040675733295845200471172494609231525149834939062818623994401417181159288768140297331961127018333443605863619772698874780729432875528076613141126164066231960490849318518569519399768401466206662115935747937438318526768665899328895998097738730769618987656498117702979344261932318640767167499858169685835609530760171479675320167422545214263904615186644803263821083684337639594162755987752032832928022750210176158609848674834655334266860530432233986568758002877395228921523986242749055165423946594459311180182533180310280706518036779051300134251277528037781968900538102000770780727505782741345283333662451256930537891371048560346699723714967329976136071736530390368430660063741132302302877397011951636423087529091888003501981844818443273207788890194509130089435385698928808792289618551594431652154551915408115997481367004192755871938241441682548399829722049362184382848933116794092076182173109541508556723950963642809793454183785487565789875414016873822743559548492847611327753786301494288443834560041327844164539907472910261718952207439629001748716074678329589580070770659819388237341037718057102991644264351664067241601854528689107144681987961638399808555701837636310991077488685127176092241154295678187990202563031148352974967696642670427873316027668183769709137894798288017980701475649121748531452495237756618841879818029628926961713625697355364985740610324657837543824914270786351808674659012018588473971275343281024586501022302065246206241338827198942701110658219400729900890697006286230963303077397808162118321567577839959991358338824376286710601259628675628592620213839826349280006728652487989344583630709002502786992477805008743301871799530164145502683617416462347675718680934419113838619465036101988153832247450785831693742632392428585604360555886789859745855589873492760439272387124909719157980383518259840061525065116846391766068193819831350626321947514225833283137972062265897078042102693134591604114430715805035724318087569607467231208831625812432185376878679878850889225582751526727188595327733066162289685032151100736305684389084025878666606875599223731264721101828140951704747454099399043285971731960542751585631066732572612356679478497686689961572971341924618179952130276324281528440658519350766397915568312760210727991977784438223335117092018157026545618237092093626252053004873125353892035338000925542328112373357868147713114073660483616743032084503090464885084666383352483998535490291892078508267504855205969278940554755756100347336771542364971302832405465662776299435103135999967570867434119042089143527709738860659425192391570201652605430727195236092681493599105805976650165268341690906188443391013121490628534148370485946751790853368422496248272947604932145008528068000806280717828192104540497113820854220607355851037891407614461767585885483908821800421065236985224989130446664756732707564136252000541384848835194125694069321268328401827261699218625996557889125601055748546491533758646090923541161984555742496632603726325410286363822184684148551638514446468336690946180395360655501954648057509971303831333400409293774054590132332595016808983116931059128347079751542404685649124773942102456176928797791747759241843675742238988624406944532828608206659250584335979189201600868001057406791201075932855540334123024114126830586029936313935568617788095574059353497540384638304226444536149253999612742591413350540912569366514865412860949078888412924779401303571978420253933846731176658308886038583389842213664703389759229706389059191879644387983223361512938445341836250250817280869421434986145265102531756039821348683412700727662919423986154562944728696930905647052007434465358510786433368111600976303452935744719268794615127287399838848366211609172960106827987915431561643894801029909771538300402715245195564158785489387954036597167216443465018729956161360885203194761466219890842136500337082364254650890425653826914924893643355206655662810028474731360638534400313212170125716459894167562464498035861961927858146496179242568012370192925902008698505506923761506388684371419543499885382604277821439761988203497009909575068667966561275849024315937414214175865879791033312174719140944835045259947346353276362314844828662888088698995875450494705091905037161399955265501305941833029074050002974820898922148735170738232634809909256469583016270592074115308048320134424391197597458377971619351146846344494491423348927826916258819849355467711185999827785019178897397784025764158160556053457835057340249833281429087452622137846405265148259934836151633526830760312966526944638171826261771704532833038482470497587744643593318806445127086134616640640547711481466089647531668039853146608539915967547665682135987747954654624547424634093676445445894946463688783373400060325722854646794313963377709703335214901189029334199157067955666126057116529730761048177999526294855269179343904430209376243784469835743559829092305553373673515078680015147427708629412134121272691262208049790349054485588765694876131813606643960864763807145399179913783914697676721526808743570071731915868555997148000129284771155608532511798310212923375570895947205068083719666485753182513370638553505325063869248005878649386980192487728553200333993768555259122313784648430594428940130000905544871268509161376763744876379970605692231611928478103178450878180970978273456253135626561275644955340713520314729725745319893816871377901322620049055218549345826648642158723822931902986639260826735369077344495717503334162290368387580935597515219203341579978111318169819969544262276867210441135067896398249783790843641872534603657395743696051008942870870628484826106567433438032828639502672531265790145335442100725992696893672145845350145457430077094757849080497191543622943672333821182256444386030931447618632901007102015612331756387123264048975917384944817907336339688543019403313654358010876759538316030521068832163952491500653575005732617014475384657298144287971388968984958991326681186108754203851023200212010334376429366335899770718820779771418440282064566208127450770400409703128253442448997205704722517504920774986371149985933051076538371014251739673462776635984459843254464105993932555494760865543266558685951827027622132566649608307969694877537110409658359472030868239519771037843959034050353712493675422567881408148128442774931825162573594772053544008318262111347051621911392352706592933814331672365747426931688113588393338188802944259386493060134373594019369946928869865310050188307450674492557809977003945271910083921947255230641744671440481447963206029037813179908673976928737211302434158393820706638234256203522157301465516985514951639389473364918354072938836934027225470223398912956674207337923957355956957792480499098076192404541658650457072007912124082293295420388367994122183514593585646632446819834828547845278676852542331690905370950173754521894185103329350495325782874177784895038062391733658041135416616038874130200715416807632248208296199154835332518631975940332016082179545525539861559670695627135678115830767555530939390550588929269498898807870002304355500187133994426603305725417918021774299412572378637013143357416878901900365541881535064873927552198028609744045371468349365847496895144844898500038758684820436381079269201145452273631568108314231302743613185098733199183542680990273461203855523970147468379678576603604626058073008855242969758921433631770204592909237923097929663868773498459509078879092643269609936846738836839038896130878879033216899648360824956227893711644412918651910694328524698979589610942647201164921232593166088531758342141879906458544996208633746893514597750557646725165581970904377383967005400540112018391114120913322513065114464721274243897560409666440532348999045780143565153372790959306320926371225203110971168027825114139530910720183320563974883345277539092754542867298173404033421460752217655642988795838098188120946716498135542303689548189787008742039979186834765674023574887202426574820661714703978850810499760014223414031207410398212865347141197590556711356720477981562200427535651342329759557233897733666493988828785896482648115925461553872049951819238699445673556569945804754596912988515602358974851581304022779733655301410521111647037465059718561981640601236437511243939141849368331894496710963672906594890080763435463834266315772079148097190456786750475332362829241042033720951807569271507282253143740909159609163206206993417655567482958925571839525857190446570766451524636168289493084073142715266729169683430285769804990136316784470142633816699781474752026218414198826293183737659682729452937407061089682372615733410924840872594338209430353441112023223077565909508939638639963096858038876967017585770640108574340582127359384603394078498153226494573648920598952109373738567936710055285088361487903397910436046679947275479698508836106434158531423198340100790133594580659302042982587954100033603711255879542046419364022678102004343407058047600544093281289694337336214137586784382286037497039130225551961883831390307393368455967077573448740115340220202388301906764428759266864606721932313774298947740994174439221224718055897448567083235645571878631482555549391682936494369387867490019862066072122931301684861079363129461535177336255194665988037943138975040428231048401685470050674423706111572765112557770072407341154012621191292226505086559710225580752078325010300511612867555727547837942693419915613285178005774895933785969359150688399581966172872634972315868189681103183851280318072897742748604063310280521884215239381670551637885718234549818649695514314416933888123922649566120081379218341576741615440236415974340626447294426465992434978874449409356116637005280314110684270532318167000717357767892197770567928881558279785510750109329948267227258145599853042094206058648465428907714476195555478332065259352639397047457688791030749380927369643644426262152425837590798634728231040661416301640745367994109906675575887889714644235736863857658612850340533846139623365716384295039198137696554582010876776006939970244245052914284302104565088884821331616186046583351203337217069584469432968135510309319069175766779037456526848683698165566751748056854882861500727996948572773592926025375681712438835259315422120279974329679783121821193986345205184714270726932936378469461581019984181912570678869703590215680813545224382781465690926039988874654156995940072985102718267947162616466677471300483587589669261417519371303220600691537197143048304419359719493811084895324805745225526962008411275262406678053007823457134786246648658218121953719244960225151756078898240367974785493154630122115072766923754304211377046347521102246488867095638958047966136815101139721439189622671536912676677047865101111712469856959652447209285267993495826058962425473314866811290786777968230156710302362750955565868020335062076903926303547177728431633037464557254737402818325378029026393102913557952620143435718764239797344682098386884975626847188433720794570352772718163868207325955614622772890350472333459720529275268086279071251019272711572426750949033236912561904467640678922019469288418522258461559098876037271097678986684487100047620068762336038108546325187366649745774686475081388785868259764583994968159493414664042734239271510653187467834047266952647858767017250324522128523881912238668182632046643622113302703421907189663655756575801829552117839769542428823204643567899642868813386241504551973798788612653475397934341553655979615820687238117528641018431327872836070683720321484811315508718555007625237825496180470448034479704875922230571889284537453269001334976161565722193075624030513252795681649399583805033127253977381841551937735130638934115414870124103273706193514758311155429865326972627392041587565364705691371095379824643986401698034578284549889893363242594144732381806148583545327089084495693854054841293526559146699055526348769983608206651414014348843033111033064729708989577101989274887742404823091229938623398559969951565332938321378097166138507625648277291058297650976340437990898530248587943173803925148587323567188398107999534574472127272224787953596334026557482947264228657095137173323371024433202562638667681233668441562276612612089068787292076503773160458795904819452547763647685799598177019034030390967063437649888307883738065561953701481956739310774402296798539469338583553774553645458387500033061228056102953634336597313917141558805106628852260261182436798223212596305722108971834769233165803052435992322034978805487048464174150247018851832860541499114907952445375844758709506726670384918322471450044587575220457011855009373955397866775269085386170530500273568335142425957450896286139175707030599584845013349620378636000147842090599272142551038543096712970140030427161577359512758042786308408245140500053503538436794873263765022068088837334541404810662620270032641117957491864266543465989637859666861234357522635148402892377742053217118275501149283534899400196937618861074473225133731419121365171773936186580797958074676526152958843817685095410928695153933135695700656806413001811769007873263798621392032557084916919038222327667816650808206380800600238012272086456490957319636792459882304063143972690793190443155468375165040524897693743665598769940969387726322397361020436142793444792915513971262271415227421632281659070690896133975171168924202625118212459817006014194861519009339382700869006691913986033237451761125521395502798007331355024948062204380149036739013202432541571087542756480338935850422435526315647212392367160638547641787304927548870899166730073540846562403462731978403398854413482460790362205388990683524090541403954648058502091524817946988927688958622337947603213001155313336886273806341830327578930993680073724915968403391168411505319032339914634903196232942014809017086024629512157854634026947699135393861606042748760552393075719091183003211623863737484851335001304303221122950952467459575809542795220525175940050914775251125031644139250844413799343144178870888731468813657907833555366470885624692626991711084404852447681072700509975765640389150523568349268613288641776154207001280148451605303464922999989819696262254264902918535591247090032854372124346024960717553853820074458139304383520326341403144960405756278639194472290461617005645883561529165600672891684679763851674541678108530925049771079960152686823528047866848030452903613669582142101419111154602373493253429274989180825933104318990106361049465575296428356448582350457425042662576143873290188482753781347273887608398469692646379840178563632792371667121521025279743178571863488131415632565102096429491946714632471493032587263727610089692583152120491870943082484320380699111576599153492128917374877222939298628987487229405882381198338418192101426558831042721123893137586533060647755460762408982770596441406187402983791829849304117511252722666024451742140985292522999541855400467753740350360101989173452959916547286577623678788711070410463297168424244385812620069526864438905601674907090763010128453072780888104479370109041234135615773668703969710277532881920633307706473318709029685365763449596666380769345555784648021596666569733901360758738241274731230480196491315592547399280809535814129150693744830319738093848686781757735196738911158862149573221374933379015105577112576439597050445637898151409837465631092363947292698861664044782471746599515750121482604483654177176434129198839006326732058097037796718093755763148094254160876610471008139466378984842297429750597214342011968330991148628462430782420085922876553070681449302539682434271695222287487989401183989473906174449573940613010766564961339897436458768737102897577952040150304735322525826739277160447211247179202237545993375468578757774504942968961875666724416150945614973876062293839796383099301764421135149859962925067415334142767083345387772806969919470219698138865953399047849820303855399016472253989330123417457600228633481301054912509904588141398265659029891663114834399223709201602966662554009480911371731796852097603273821731132314960793361725948972778310007436613650955340509574640905098067366980724252916412017696299986793098463394616440134980400090348092495239466231839237056697491422028202120119303872428054949446704395689842461480143888926432640819759058181099343589251943023696835689612885728419930052358115802688091364639088258748669072659670893506720921306212384741252952045660891985184660611642314147946106576899537698113521655886136463560749254132462071066882763947203797735710958428877931645794737807502551176320007670287490347706780501477111597990415838149535008073553127500108874436088628743834375526360860227905789464636140762081031936152586996584542417796252298244014247842557243713442671139134096120439777512047858378499857558477640468836413103128762704329806424078961946284819393761255704839408427454688844691582577479041073015097509858830979717908140814106564070060801421695880587713030761414115267421662247483118215150024969238025045005169427137717341808525565681167533008613733148954488342571320750122339994407488375169543047227700717491345596072925855506927302201321280808349792674295222420230687759146605287422459093826938471088291628119994489688483759841211160898513221230293232672350258302855769858418821146375437516557398151493383402776421347232399533823978444760590698279213831881227166347330296678454917355655574980005976145657360411845181315079860879132181302053496210705650259354628311270289566655687509648109233883983735553905661621811653384857145066734569322431189990339018072535389669811067419458998648261669179361001926247735888207294810305344222909756783110909652641345313478362704200528720700229797688847987905719471309580271412226373636044397784164084298557331552796213576848855842408829643397969395040077137930905220664652311903610028256034083309240200693505253498108348156852043753281489367282178142240546224145549228770360964852602889247825681397768308587378299078999948460969828514332635966053026742166676358636567818426686518600930740502143310875380988208273197365699398660684141005402690597699614854301041066883376863044359825440298446614726783812940368356477915787776867014149520679118368936202228066278306939183425490251640544740504239785926112928251427763620189990295639422773100066339628051515223999662999281191690485055480466076163575793324501508260311953197154662345682754241152059819542335825646623930107026138773373778331095650876594602415141061812160729621778589165691598674391779612489140683869893909987815335839479297188681012558973548178120916457612209994769721208762233899667714778114523947054487844631552143186845650652721388926210559415936026987053483457204248787487464246887647474783592417361823874745337617608559433603643690533897881042790677926833947520410191129435347054755360280160546833682139281437979137139067885841084574538644854470905649680879064450315707290185282612268480809427196584596348677516024416034283117181398088432812820917127798675434172522128930938965853169918621196560720324424431185932330199636352478666526886310881683926382683849463493091275582030096755060719007208883783536720782611547494143013978221975815243639658359777079688779668472265942489174454873193334332431280507206570157649013330605006385491582340996117387112733339617839546521398875245076763961741737055552502578879001139618050862969339281800989060704492469176130984065305091200561907011690793133320602452609965515851135451442396143370380248975973812251533885998242836300887486622150991687207858122113841644660486470498931218102166740615301330115421270368307737479365281200305785039590810242647947327790732506115926728413087478017799570927408515862816169376960079355472430184161564084803252632626539755888579101982193937548193382745103027094854255871378223773648237568304087442642546336231160976017568563266020942242581784985193648850411293075912569598865548235427838335458462849825362905477639584352486490643136272979069509506386420960506329733405946784431013155788424209249896543327449847472460263362548772208168578076884641176514208176284802838212934056901025315755344974263623215364130644030549708562246912609334190739513177698857561020492767828293409823700164989291665685772747066014931809256983658073898219410967993236312786952963220614739761485610353763411822381167121157914646205949131935206170598122436274907613267559298770832591851645210945462683932387731396716374486983914156795068204872201867885460933763534599185106984243010856184434215285666319901339517909206060508240510837054950289174762973633450609872375853256988620825839568240808620166274527009427231249033027780693158443111263670355582512544776572179803744683608244593224265046164515395663952204641177870570735416628519009195278001083116583613707777074064141473189309314714420426086003729422765120306732329679382090579333478374624711053853059335823015416110973015022836541630156089535691950898057761174180248166947475440699282157184238034505421390384059811856918458383370805485792315858542811397835633812302067954861281602772171861632707799318809819465889050350235207723297891957729707136998592892287422544504167817086416218426215872498860651655163083497774422745486922511045988312612742878375754437421250115986139838496968709174351142439792284614387945960496039269503447813109727182528342229067461027913850544035738918814662790238772989454279848788463936169344314074306682034912376298323877930749250680002115708234532042881803794523353223726630904190432554392576986583993898125191736187585204710593812735105914971157864684066745739673449957234122851548330821990430700132958597271251409819615952731375993580378926457439951372428559431579376928656335628549128531332377721753919533602974337994116198953199180759360504445746435782730299632919937122718649966968452664595730043015277528611595221356889871612189975399421260624069513414207264656870897659526616153198719979884827133362160597912479714359112825119834160945682253705048726243023110971479456333448806130734671490809952876289079751824872696472208728317741902627767283938213104499112941198133659061970522070492965764791643113058099184272605591787566687858398107042899903578875990147952030149782402856620109128735636268152849288476431699671392844247365159936028179404150987900046347515434825957586615556108397547097843016665195518162065030949776637882399744305474094088946629989843774949004556911057282362372861826984165043761321042207337616805734643968541742640504924608143443488652434855410653619732677548124514693757810482162082746163564838867526604212712674557894804079644091567387123245310303112482275293346007114058666424028774639683616486409264009068889355512800790902672812067039610518497775972346823456409669378348550541521181188122320684105918925233983067450555290770568286923495280807641659487700988399963039617187025506768968778007000081192392788264620547381621366405206414522605795137201838564506542325118028006791928238158332026256641190788490936432258066967994100855525556050721871675154845805371228750945714764500429439666363921385030465374314421972453877645514432630994488863501651836477612848516508677207586993405113401985569348830141856515731661349133984784830084641309758354062611081982670437152056233065858850896680625001001732085609808265801694446613781128960717553684048628976221880219256671460041531711800150005256975432373933028031927956048833751732193294976071009350207200822953785831772424748815311810666927150673189780045367848602044524672878828046102526823182155695811080143122332634867737727057508157926877911224878589229355910816227149422654540907130332693977415800012961518341246555215422227521211816843378577293512593239075650411823840199423693558053205359751058119592777941958094177737902015799127907719791268349609511202062389428445251751704313599280508341680668816695347177402706032344473791833264664342074805857052194133115248762380358750826358923536023277734934497075955674245102340892864815759278574670008008116738888076226387409082635570789689598229560943802303080203835842623515648508134050591776074685706346285158438155135604788727972231237669348161105440075268392422762404700891994898276237199495606548244970968689417285519045588824222408170583745250485987642332862836077661416090157687028347617909517982713886020450745054612278103082319960615489217153139483105985369403198358126378263932790951731372532645887030720904277758333791124614838355329871853006777800893154324572198333387720426609233448695485496658035588147255931222055723170895049006758153898257447856489841721245956184181676019940855768134596530803143352945361604287114361699470288776220251389353596742278066560965347269916516255644747888610213354720246461642055113525200096693963388356144665041595567276488613457732258443639830783194348276649052018318318147977354256322781299486548403842585929986501526800239820312903209550737406517682150558040899101567711062882540760189036295599232509577391245086001088552068628692410138873033824033488273456167172214860293889703370221381545386587685277458190659246514662922657561680481079820390930388546914433882835290849151913213770383831350968682691306867614946002442342429393058844745878854934613626165050904195948433213439277747615255674955562025881107470590606497593536908898046047813807083279541209372024371686896538222737530981881323209722526525452081068019592047850166004695054345311880863403663856669351676916955293034819702199665035488453729013156509683124542897654301692521005762961863557903254237820531849572334723796379562873061501648611682314166202718226661335268739808079758940678102451692286898717074509212032769568810817812937518019936463198835286473090503505748895406647333309717060849830795468150464954650792617728634356684028856599033869510819064650094875509619765500158235880473375950212800301911141268943390558196617092168019173780634003333607422990843981221956569273828591941281126521081961425446377130172010451750228882032099811365486258684338580926405435414998250776662785059363745527967026680651348025665427967471464817828918819219030138689320444849109995876619340924418572957888912938400312195972247246797188660980117625450333014642846218776101033026352673860039776344923854083567764844539639990499664403734042950365751952115086582675681101347893900596428763011259136336925727675411453361001777622971466493078155275287769779355752018254513168897568187778689266720128347263885974324470894288323420406602299913914174782518425185500825670164028036332218834479605710950806477750916855576003702485225088444507518211029437231452812186909902484728841753788614667534135867935611134179711492920425509029899468562069502997118157548170056268280974526408214295632880009588116830116645904624473144624492737385747631424995146149078611603564195937541191747196528865914428700712824099698685209322882399828194428703213988932326891851790408886146504112719979828416371808929548654848055403770598408169771272860552256430957264867980279261775407526564445038356431856033885913859332312035901885642618746284300815776704544631602764998666629777834357519091766510321154956261795261464893332449887144231972822082270333104896623159897194555128133385677562392586618194197818760203171818523801338562792497535420417938962836644345948136690102323826850450915323243371913379939864350193920916722889232590223784268857242659991547930997774712951264322136057642978239618819566596296398072724463180863261720932292541491792530458205392568648400335455861236768811895770586343441213690832166391715511343695904269951313433687840833479748469581576935841193768486879785919279459252370141033237592418940755866741415244643959093837222101552328912745550286544750508723551126603317321301900957480097326284621648826285721732563143696319649611567802687334776566775595368226845455382820943356403561252264898035726114604649095832472733196392810162560462748658889748892071095593960856444645655169083284523443107927244986696304176880534870278238866545920070672814757145929318997182745102379353079187953372195322045070469234335453335351802403436993704018409550333063358266576977983997968773142736457120104371749452515893564211230460755597737755303279612038910962466763338303733116709695026391076225100837707738997630746639623165515695938661612058122244847316286743031772467555098644205052031711559392338182274159117030940297188905122244633911460672358685673400024651299877286800659574488249528489796403198657667458501692792012681595943492053177436271067140650981849371614368595950596379369341999642727866124432666752172519703932306140774846861972144677381859704502255861413008667453361600939832404882393263701104498446320127327400848184652451557504523327754752736517298569278734571650920654893644421106621270108150976305664079634431624676735383367380721487551051716299339845318982926692931360102318702182362661695041820680743129342738755003417876635918843731967005930698875031784057410073030232127547340519538431333441982056136223884631202801211324167754555728385259535006298408611440853935750438483974466131146965675508401815914425054387559463846053555475242909517633782862918253235518660387866190679554060062619605557758705996064270091676198061975900567568972425233284133406556558743933510861032360190692012122472452938813938017206235972558936345492383706310454406620578612944897815220620920141743141650196687368653283557763029786700193895306783649760517418943213538656167805402149649899603580988816009288124516061059182641992573284362807674050444450666557408018683811647200898955029963086291515339680153300244218186576979183631029315728190398442930167659439670620918487911151567378863927359296386691554235005762979606180595683606125300183864149900179958609265894250702823830848820108901785802042030457242202788573014378757739856445637473802915377087748392754055260692779249403075623694492648019520121420833645087067400283401999730063177595280482317624322626351038479386375905516430505075077767614472254114936181432825538098270594888213625814948082632080586252683582443739501769689469338869922144454171181159325957732917736181224812204851036292734741178094189300070341110596267440142980651747870029468823531060856507452915472167777708029381686633248615147394410984631816072991421180697572662444014748925456826408859549558254977869734156486535752707003576069905822917216262233882651381219346205243467163586469681114037874567356986550138540148989248234175488172456089653805040351098089440996436377792158171990515508500351648988958866246496595498170833625409721342596897060543823069524714132235925331933134647122059928286369226195530913287174251062220023968027868156956449637850347046395523935582228610805687183415420587988767590162558639332799342320044228579484075620353284803969210762941671900809115429548708328174719420698601857782314574551194575681443720127771358644062011868391232899912769402063870923835487227025316461064639887276663822784440031698942189231354640049955710806961609527858872667200129105033935725279225243817234322225137288508715264593083239606054313759815346251046955589451229681317994480414608978729035858474236761289215324572596836070853669638860382746918086770515144965225338195573644224233810367214545049509912628406368541886696757778788250029560071476494579803585358606601166338799199907849988330425747021998690486579761762049963706464138124733827539890478150235774541891918391610885905508281032738733572454750229568902380643221662358639734656616821233710219942206392149934957312903719594036912036267905396376232172747439875811027813418403406169503698685417727964150437103814461535461905489616230336577310253113320854392245476340768701586675762744450962415379910680588633731897365857668915706611992924750425856530956096573381423906403216897798364509870056003675363674763780454364485371841843865002491810246404488274933007400935830520933779710484975999852913073437156501317574987112312708551107479987915403286300491079113975732400664178383600682862773330871991953792413103698263263081043999505913541787095366180173340484871309905241351090818798440909472116536602195325824302414125736866602960617251298152324583556339199954622934989048882155559678191837182683747466395413247795884671517655232375624199991963975926399839655714489342947655504826417304904022565716206370289364584819332975223499129892041392949253843115237145149474607532886142136545749750900617055502411454828746654331500291309187570655316873974475513894175372829068666262826516833736175670579772534572439122686848630928851064042824265380926986075390071742142634185158394298935685196688775527980349762874544886564922875549416210301167676260659399804945512464706651325301611171517522194798798649103552186069950591002847561911860235982410244939150351540924793546140560407487526590507432158444157764400875419590230140549509281543302908845796384122519203158205138539284785338474655502965631059425313988521076799261892929265960896173029044799761074360824515039220211196611881365758645789293873300530895284634398862796184795605524725836930914533914521152438840879998353849031791918622384774766699744530462669248868000646972538116254469794694482199454577730345975014120716524577532513478456792562992080407414878039254587918737010210130131986610676495527361074076626334378548374602243403076924860818049876900259744481740942094408885254996196205511690517074480512369887771027760346317746905275258884596379755131961690223588085218003342716026658906236586407086377279660132700731535356555026989175743940295521017534829818757930416289780831509887045427930594779156123340660511524887384260577787244216690153783738361525742898731889633585730317491856006115984531182714663841623121067146562773578082643646614394029881251409968863401438133781047228953968752643953963535234857242435549727242833487932239387914762094122526168704841687992070406558520133366559717062369722447370347490508753676238836168668566886047862911838760134928533953283461952318733380888070899628461494122515042638054718446449477705513730967042229430319045490911057824626741137162464512260905810910180939555547494464065894455055330687280012568789837557212552180236174645239521850755469887192909460568745350999285513789846120937355338310056446141082214502814841208298694589930470083450849485615626638886208543955685505154600263710269064683630905097476397426140511469678610007866702430828100688947955541796934655506419772605463115716046017255258731761446785489626738969155838326337610349745687805580102550996729392340785692953095549321653293999463222552881737081278255212761575059221075389944142494326033484935792820162112211711676419622623541998553588890754521108129916902343444682113632305622381082666755300576207592792350786901184790076123741180471474252352368437878331273715325908816599708803568058118495518224131392720013165983613426283774744806307350969810447367867488502301495551575521293745181012653224080095022660552031898090221433268984051997879553182277831812005768255015501261130362348939691869849482971514361820054413045745547984631168673474391813409593068374148822718420321854106968189441934148620685949299275208947656725980765402357371880395507445616680533555619189890315343951604753091145834952171098047253431567633872003907782361208071608422137766369024906712211063233106751503950049790798918951672687112838268645390527104993824469697881237875981386009776086437575733350693202145790407489683805854738556107085990240781699170410747109842515150912496308559145432013816244636495718430074031833860626504750407933128696175556832230254386043050133857211573009094380385734553727780124738846074325947201921058922790884817228019587700970916441234319203994870270403235157710552259911473197017973063647380087264801340756187073277393099057735691352959844270674968539734143293530992166027379924652928568109044575653882707493592933385186500519948692849059731658659173544615814057910474077811631827775617869141035689762463999305672964379831692227966170361911018483115034124920744696464377994899792884182944339127025497907721816657561104901508828818662789378349289460268167618136488625760565397308171008066473982226386184542632128002261294650060805975445463255428867522739997617693221476487917702578138451309469544984825388327945813023649954675050862519117010532430520515934224971161869481699997969196963965271371602802828349647351245260511585242571926823085798409823521185866128231589540595529545867198184173991293875070225852572542234141629829407900276879192646094917350077928673263938585356667655071664412790597629347043108538881433652124126450967857163890646647672726801653794620016083213869440624931306129795782875231724354822082643208523560597958827229148122200849385678080450172975917165106345236060805481575236406639822850550326050370025874977547139276639962673759941883105030106642624352035707468423902945908111959537227405073396851585210642639382797467951210508124216588151768440677235971896454055112378738317821815850905333436201182320397250736161562575689530560948332691134271323403819541467391831926694329677604380726247783583030578713663555660009502442989984644663187531039112672104136570954800513414607948614204504126135434902052048987498408510398583192988449266225247105649923590630814087174913912068821437157624628673773781344142028326348199492356617563304330172216699340653403356719256432452034676969138695173996534837772040249215805377892032414534257836592955001634610949433348726297248686483733538267102099178389609788537195612411647251802013396630416819785919806351673855478536174865155558447910601551257472043345309884416883190083693079866703612417197787091100068956005109630870308702185554150130781038890670024882809060724428278861539821950710953854421855556833366761233000687035994127685583186562645389456510909589083658947121759930133188933467349374436813994825515320603780320411372151323132559562602953983249161712654806900845983560669612248927677306628009671057370836618389079220889030851737238766604182128808595002244325922320846416360768270284591979208028130765132030169492416022712436136419262933612831477173046125256171269082895132209192518809991896763710328841905163950237670865795271925767582782370826945381373367083442631574090739473980979121492788983841372388738878639244653078438849283032029041844240582066844549542470898673040592913743705946998278261680652035631452327229338480945057615346615042917577726579811143917029625547491939467577420176697955069979652951259785076551670098525760536434767475364404986565397092872472602400030195471209845115812744968010312532859357102592035470141899593550358574572513280244560868831486589141432422311313680525542485083373201560391074207380351829396806515497300805632094849879001128920154227057697126283207978588012619108511028509723393494435756854823641852175523170938025817094626389141339734719398311596715862647278808642176424263869223301452672013364714349133355401635720246687087029314040493551967612593016400392725486645498379046260445847258448800764629498236872348090338934252267289532016591075973507229923767957631125180737074835386221349831501377998972591299848397650375559653512140543522349838882212405306081297655592973524952186967596739192654473509664973485445237155052900656867093666697898440868310072182848426394875945109011337489952895304405907197142270126545062267448993061635377493948891743348588482463893470025640021790549083631074572717250058330627359775224741619802038997401128664057835800388585128489866953195655784936340994186025456559649347654683324781948395024230510084676580596127414062071930287446297041813971724135130928096877865821258369295959966727748277592311032788322103656915110796728804548581205579170460544942143747795699797217297830845448268737673920908882882558204047706836657110827117498627471664125420090384854075918357148058413594515311937863210502958133860969640220797860648198472892266267382761097844703173561065485725735444130436440011604949004946048879427677151023492629909612244693150035440408324848072035412644949021095185619122247346425119807469475780806298559082175853357920574883746231532770146369804111203599163318981631211045602981073330173711038457472003533745274252023565325714601724623617416715510988071449420852413830474081470006328726273939118727728361524521939636144950852483965181402944548452832664442955626410094923296695246277911624651698326809146058422724933232323358662694170750064998659403334825905430751117034674931295974825378606053997350633540398353610025233991518564203700958204644897980802306490739500964547110112550007084286938017711025738110173382672433972448004916787314834327076402377888692827553592862957320460098184832579100664370641955397472065465576605284660778516428924180570016132975007399058278881981093800164886862690239369688182324875567006017050788214621303140030039805691551323239475180757398390729094892391730651943879103992939659519505731449788979913018358470794468154593927564421913434018604244411940824069761569669993374452943607051266109455145331749953238128736253913598686236828202880460696754586413688622916026544831711652934948904431800627876843678283169246499044636283607072436751025883090134979140667140986157756811604797497209597031704111934659458601738454405314623275710780489917454729283210745437404219207527197029562543769728316105470408704536130077897334542115469121188293823655299303000706494621115499897163587035887059647546860931780226382239706373951424036807566806434859758998004766553833997154711742013685182231119419340149956285921622936548977564083877912920767384936856684402699667655200285330098624712002440122864407889378902807228902442411749143624977793589808817106677081630261300805551898042650822355064667558210603987960794739589227047554248366409734534592329538769384474475142481945859061917546056993397144783975521426146023913942147844421179842422861434632827271565837559122988053148171078557945261696124590443589310436860443864699229191201588158349938765795574017876315210186256842327650022948359775701603042937153823488746175593650195409288027933130543437125334418962284225800056739871016307282957900328300385657860493635266265624490679169050909052653796694716013028620818001113638438259731306005787034013605156477232978327661100440116575438479240612864005567013372493522613070434999093811114317725602271116254478219904401647975920476569827023804394793190747710565498544919515618303546255135928387169804617390534179660333734338574663074158512095541379429515065033501320873407805720036733513688380553611890389163954474675271136779875026898409850416999706586279177534355705036491525457289958887383680740332202875358194635404668540588792254828771432717282438303653987565849361956564209001967593201409187768470627019983270451021288300642120626203051887604119278545314496219795738946721191561575655354637506205572190436085639424159921800905803096071727275740950282200363946743301439418420103396190069119033259612395306826244790561150940503188024861306756154828308509787364329043222200867129870398445299812154983172159348203877692036231907649024111011598720114598397575936988852716809394113863120826810921637588307134040030897956575095512254585168849500959583248213266285681983164443355714347675685300198635183612872356586743716437823972894689568910062382114846091811009205737202425192671248851730013623471344451252956461217150011471897317845105884060807863700443157212963223840643111524003875585408384357832706977528177331983028165495055898037736985272400746408906814801043182701210544434631449425428791077881060569531403674515493790590763670822271464727742372879754301452151478113078573660872697567781910611819363731885718352819818639827295249855461759517598569238225177687374883498732768754304678354821647909728704119082753538920801226080210742931504669978142726987042577310630694255018903381608829456879923316956086978955231444744533695138556811044510061827510501359186654502406676624830545477264564736015235521984375736638475609820824459896653031988646741879295262552637407937235243274275959210844647276258196834796354561172373451165272424033883381390416327282292141124751462851289721100746897551651169493529707542679493891114520598186167480668830918248216907847433489409072366585043996249185486017830397952579491126386190049863879260363643947410774778543937225245578165778558366194864300581771590308023871835736452791600776733503584864151214016276809154466079439631119972135433879765758798346370962011486587356720784762925485476409515320907150845921448684113757427163661653725516141850511227103336387402609268919241499904400180325556844534193695194767060572949967350663804997244358532905345140697365012938404783357403651625046381699230937206740731377223120165417068032682908846152815243365078109314556136854423286702045633097241346793142975611716522966563144540526341464964674053759658245405227441421233636365857671467267780359714111552828469743229427508181338119993669225485361919030149879065272180047805374772742924573365308191612685307169008627549143313446630717833693181771248706400148636399176697854436373524226319747583081900031152894104896199561297316680880386763165587013949491136104551003933881783388286859262877551745125118448839452277916077907066082828356005820363332067788049723500107779106127217986932322603193759813885963765094518500015221039524121154277028207291235732455364129289341462506513023758602696433659293224694785698273511636179439832742528484662212304653264543834480962147074850574787519250645658126225330836441803192000631850305537961254999059327260461204681179367617802294124291135924568899657743868499134129012731092474157100738123089275991528583191250006551842116516573586610412519589265122583550135031346904981657592844036094507382684598684327162855893042378209184851875739963894959660545392561673329149340855426032834982384827173510503610532746231151223800911024289047987108800436389065410136306436822514346410983646996297696719953415641447217692386692263088507905141066810416973835129936432101966788444255771203936180458035551997692336323293342815334518848760444836839963437441531740888942323282530625627757224426701338555196142756115253718596853517905686157230629295640515304043868266093712078186331565898170338152354860823542240302275893986265159100041037367630797104530390686173483559418097323370066784474053867935225483623140583221850733035726060500180612030392580012861765881068819611866116694412007985551763673014811176842419293675437687617335070510443836487530915123872308926720746053635683185496220400409993731454488793509222490167938058881343918762641309177760671851067949755785391210041084971778886593099426924730624499457764651427134653021565654618789675813757135930464158605119616699542824113240164161026717298427365618716470195278834970746603472476711379422303183662255169239576558827273833619378946007014725068216724069111189716254111289762252801947565741823716052213181644014815384442807886230215412765930051344332125582192161811241421109140307852154288477234526482772564157056642921614934457479078290454376794335808519336172116402881452587358165408466805318411102463306325310593975205346045377953676494091504485598245521292801290780502380714753763973642108244211506978858099392009953820561066755621551530867456299735506392608319039322036297120602944262579760911822611954347172728789036403458899355163845333568073712776981777555903717586813877053231392642668999357080987970886053945547762690075114290550396225104359904139820399322314204778477416810139497420826339269809023680499854049185270625388440591129380538558741482414859393814958835334610638232265462245800711106255060838796717517294025224483405679339174557762904033172905203157590834531436434705246552771831658666980123598837243494845177008586413216840197359186942992259671953571364507592471034154074488874569819333280395154523629892979821085498732375280555212192853504625811247822137365251041539201377398303759725943820686237581595272490291878806065541384541206873611752019872320830819762350092348250208195008400789510161602421577763793525613179254274096469449852190852941272840586404159810666275839493286004294342842521888072197014624088586301974286442560903723220594941750362893041772737190268872506947529294481747577069786601881177942411235553122648222385865144832291329233902539120858633269441962197348651330473346439030941811371053120851529734429291576160303079170639224219264818553009352855220067457390618541160371534169648645393178401226056062714043673061846570257235899416230582687162219614494380125714024488066361822422535888700724909586809665337267403522804579817550086223184400366036444064633108178456832268388028948431743914444598014835217721107020151087753448663800773007214269939849957742925509280832170100106091999903728322414357089569162077349535023700966815988496292899660031601965639271261944118908036656958465610297769916467459010872487740954900042714954109855119842245571817410569226881912695582835990765513489560313534409830201385301743586457774699784433191155461132208214941061079779894915535763266932136392644625251178531979743423710252889893655077794679057220507446207236950342198539510945636242859019216042655962825780159351505461100717803822294151341373720077553743548351006623819180268198854559841317962482021276423591351695424528792336058464746257985256316817604264921335203970796983343268740130646178595917675382851397943832989995021464183421103440373134662698841590336144400335764001758184666861879295926925511792063691278521547979852925322668266436452939213404409672928376520058073161520062523167622962778427407246986993044877996201005146905353599898879880001908256830854586288031517496364559752742171936718416802261666884141220517001348442886825361986995544752492329717135345318639014540688653730433631179806401549000510705703673753527152449954549128451569906481955838597415342813337084151630705251374169814210815153829008523562689716887380288550479879520559673765743846136445874440007000345876635511369857976169466564571792204310889975112277506051456066372230431063081993438972854696793660904875801932392170244513512985972591138108956904484741158884096376741928285604296651092408574568270583568843213160603599134986086763739425055884364535649082633794112147153026894141371555150561471393447916983945450540241415304935534642633627174951379840935097698720348352470209235835688605049479357899598556462408852913374881262866334972558943823686164146932979665485357318527778801538252175296031863705208665414648238829250184979482377846124041729667494255051097096446356151539362338301729156429945144869050288121827718948080937806921683332075960367130080143201412625527262557550526086976594153080087594431780004350803730249401201441064419260536626719278925457309448368771523112023405254901332519667382332769154093210194379180574860360881861529659707951900894995718332291577998019008915233602534446684322366595126360999344780243955309843834375083485503992111888458427457238192084982072123267236567400883472954921680358969434843456735193811214978461548120354762689233411853645061952778840935346379099165245894260843872499404119917541512477366746730123260463259435278892503878335734861630809783452801401409533651145510107707174277460562390937544199150246584105403693956337787268125921213709427638809859955558068621017257932682625038751946466484350504163008293289869580193867682928626063499420369391080208002637617089482656761272021092510849184165161059150580707264626211692664166158762827639411202428105540559266847590809474725049752347519430230387756876235549665575372938959717104707572458425164855647421670995282537526101621554980717874985461838715024450207727437053534116361478041690704422656092795287513360732466752151422327801767267811438518523505864274509118035241085843339899802599648702032318011477199447708795675494398697711492182884374066693132585478303699497604719210311292495438232613450559168830752858379397515670718440439198959836242273557290398632630439717209811581442036718190133925543859292887957098934767209010385052651046296248631184121017282115802599297139204651006090837454872089288551239167864238396578641700299931408487787780971516215326916479462156840870847950459342894357962318982625103908154428460491103564602372982593965580486038977184863994831507371170805665212567215313807801361563772785838180359500431819360131463226355225437442450493667729413379838427262939155143965817833522966021691368784742579397071367928162065143354872848103451037220840997665270868973624293596641109241789931259936617199106980469609078910685323167867669225858152153309732939219670334497792850067537445993058524214969707263812165812075958830374139062756220866958350286917708558865787616318012283942519950932636116790027477766597437750624870424163184094784685779194328476481363456745754277872840760025640622580288220559027767506973199685959924312225813477401295817228988377185930896444329418826457991712196163441189097519041548267650155956462444186929177997695946867391392168604304784740172471651466552474871563087991675937947643604500671552944062582248280620268768311859452138141609449698375605955359168229813160684514070635346252192161772339535157466674131027253325862918693126660630281673462989865288307245137927710872655451321733583857283673223167141771314780143741773547741552539196712106198269693629099793101685554113459421698829569744764515522572221720616585124941493176154882549319437682898295442674355191373988182582930428181204120840478690807766110694736608531332978499139123942465258082142022241075453120484725576397796213393174619971424071900404804219194842653243784038146843495624665365570834528458003018632834166522262656370155112238339301998747905328440332923860797548289774951835398113040543904822150685818973772756972079811861584797628215662474601093764124439275861001937604013750026050963396633361763215549988733624095159901498183956208002939719543512159686962797668941714614296214462505539914943860369413354443534907975481710209650709580626051292626424026202200043297228286576185516929946027560392481441336644561733174421414411329551511401476779421139257640321915881532984258979090329305817193050663580579425348229781889171996447610717364951491105204588496185773013442517599424706932327623977072831043927032216538100976694920493410043241989052623670229653583809253889257543905328653796271476473755532262075962645403943072312752568564341898644331647248809525486683179603404556167797965412463178805192403978935363670285318533065790911022320378964573287285202884177636955547120906471403235522168643675627027938667554265535330667155611599831034108729041607245639210254014782371042037460018500928509547109426832151471657996666674350364666124477351728466452181884330895208292317451179441128422178984267844757072447471707321757220161247532821305594004770035932468388945950307877410501875004611140448544792263604941257979129947334001365938607510985000936719079575898764955503721743361918966503636957262331629330812459192617583614606538549942017753615239812726578030753987097409152251182836491384895902657316441700966875836746850339081464418126439500203677033221625234202653219607067046126083974261388920741640215712030741661194888856703498700582699971907182938551937769278553875775805195094728432996453465006268298602339196079955304289824853956212337984283291466484226556373812255362782731233290282553310972039015017608153171457162843181938549185839423684466488647358890763145861176577528537095593964475684791347884922333272483294473196818858197620114720682916074810469578069784522555799052903127776662558760642191912584384243440964167950734840365530679801138229841283640484849674653262909644880791613925677680150095409026654329966208707479245878313523991199670383213250741348760595452833670162758749129806897098847608885024209224508299646188980552974787393982433631402755574670484406890523520881106186756562245562709034825908172918983052081825413206807812222590464068366739646382635504041388630258144507403055684324070848316025321903966716909169391163011342871536663614254182625402471344695624205382949703394273569728809530251527602198457910204459504820096190380972625220437850903636494330389349881938932191298737952060530697821199988592498412091987789873448993548154232054136506163921790119100839205058281638503990414090612011878337010112273384361544244328118881316474737801848519466187906459162569907055746498945712215834021759302928600533293175896163849753628377930282907180717254850563757853269718600914968098397692545620756102771340833699056110151268939199652678030139502276084673679627040826605055631890463178564326683161082397617029343133218602627116148931476456934871993040695798733712579625026180755489913259331151883577261734348185666715237306967404594397488455628845390713185084702644558747816956904623128528874563684827834440501777117727550627304222128972587666565678312616044044833197576881066991338080856053581842708695485768434591806217692508087923704940484272924874029147253507245660366303922354872434193845375531342027816990146322036755691511675030120792093939908712995307745016286477859413680469007197165361120604802715447476679560954979915638154123864829729085301556013661158188535583556301428593311900144602474286033689288915507502811678404769626535237496324023694516748998969533689678457506195030523681733862300334321961677323975436953449456819712049113084636190792026173779518909761924114381748511382888982049300460198548634865487489348587595649961344685187960734822689036485846081953603141439583894907466105601315793964539172405983757977779718304752325189778877414807375470318165722039595266565323023121191429344926738710252519647757810694058212177898475089391515694496037341221327868940229248190807021155682664805901583365602989539928457826982018978193600908017471891034761920188045126948869160949246809201651244730354784169744194846284300339479248047320470107481434657623274680892125969984549240630995248286530344758379794711257708150468115127901422122439304012383511969778619206547626010158961461747540952802991060731895751915263353645513427272006583788618829407046877141279925908787545611669413166065494190137028130954830405348344509497836519215860474227242110628984021874291612671393829595999425669517464568717271753964709097695476113276158282313046740123614186562650314286101438969357959600586114163446388651096406288965133534955783580231042403132263540903696576970160561488722505879636666149252150709377854484903244190451572230859834690513926462359494732091802893055569989435394056182893321158418976740885166469518081894212176594400652999232754162220894497164916978164344702799192191773464767512116636404733859224142953824119485168499788467884328847113279212541903458241818108970668492375317574788880766067299387596593749581960548462429576146773627757610931923441985606149022560063840908652283488816521083587926163242274469398851936688039278583364247157865205648199345990833120392240180214747121370735771665482276783713052899705442847795451582876106260484319058458967650028651020493307090955663593659177474955687732688630178490898972066943242037135781343592667593864213103458475598185465056682978976658264687397930921823803325592908112539267440051485286049306943459058073378993722381050241071058635498620080529026360046304125281310594082760527949933189136148725347534694426677866179518571807545394713957132564725649955786316788562029246271112430363306498081590419593206289872081575815382684399055137126851080290808118804101621675340783096550010244522999258569387452157833737004204271281979976634640318345924897184542014450241932569441298704178154266188871762091591118549561947017097398561327104373769361472472610389434307334813418224871623837638877713344495794842768507443660286386066051154086822915176237844484861591026168762876846730095330298543167618978959377555307871386000299337501527151769632916216121396600025836973905348882946919239188866344290246264680928213756637600833266545333489149717517296434694891648437241528418626349593970597946841625816630901415513375424755473545107728453304422543489676969993514953046956578880133138872104283910452009566391477989223294208653481830959348761671672281556663286324371276606398660689548191605100015944543189157522717653131564848102245753224759551685528347550030496450753988586084797782012995056641259158534004716321228039070649632550803570124655977947477168698924736391433358138502055750682113388483583680624849927164325869966291875615068270243377509861736691357478826220428871737407793468645047161319960746714568141443039005890804844286792769015159288323476599337942365429835003127647448064126328005564897380276287843115736028441326379323702359431562046087138822412890622304689134407306275416132148768385031155898985780098189117769476937533377980439976981129553875095340982571699173448162097680735953341169200127410950103514009292464983880886425678792003475186589064739967062587176261608591490869665552369079225170239269381200777427661942625321456902294964463672086396508972945322476723287550200140480771963747607849495794888691009950905400847670705897168787943045972314764492911966800985583275861851034252897918322569330879957026207795459367068229458744663967503289462069551259385908362768412644621321787895313637368503653647293246150209823998396600069085186043046987584043058740256460397662517355829880110779153227470041499548831808840437067046098866430260107997869639771511549645006876913502913969061816661197309543538529180896069224782534805880425986067088530715670370711643071920274023568802771902542772717993116644430631079018090112622802991522751865399657113499357740177533199034976703996468114380541444783176425026085089490844199539513830815762298589785840216598564790737969266689794866959753336243434676607705865971704520913090487548396888686694189895863112047514003973483565001043525645990089090406459944445831167392356514296355119487187707296737720633828477341228965003619408519865780282972406774338796653372459291593614424244485689998345210812463795262570663754409302981590681307601305744142165987144161199647297808575270937428621649560799337382405046326867062380584507210742898431049466090599611766340199142283807640071936718895466148848428735244145031362820439803819587536989402772512586733708133747331486187385747189065912634670065762156175919154291539167443897083466206029355778740079493492960336057090479797159589004211346686624876546790763285008491504381145745745866381790784349987540859379702772370781435523257311538812668890675163536281757567067224472703718494853596266402023163365857932494548270212380615325481996724417357255019679336243288849346356866525572978386269504946137823274067090247663951553580033203507316043524664807782364566454585891114521472796663161062645567455976780150341751903233001064743112438774322356456236054714518431699660059076588076005247574910275906254130976178018099371349586130899053971286255220958226735096075805177105514132026482328517792153279215747313168874634550733049140217708828922142515475885180701254057242017177039020785492968121048835475243220462776395079353711857589709789209291543244146852056121739135318846867435379658888184790089477917262420384910125538354981761492522594899981346185846355757101103089987080344425990437892365655238274315426832122043840456643242408931037953503567466230620748475225883512172114477973529722585832662137074986720017253686136147121111300533607654329477421294395126556818831151853713301078768378480696257802037023001309524773884116819548960347823450374036602095037128895650144459338604406648625764360264384263985584868250548526836750469826371551731731494597353625020928225668793718678509046897110515264834334198022571284463539977346475965723094897934359827151296885099191111402168678536307772020900906787528751207697839137727007274402968896608868981764289436258257549449263457444587845648428253317601621885594133564483627377980334775466493689991425540723463351642192077232594196615481672644167747480708458149454748618321741543384192455757501626602695160370616649597012992999300702952674507472932782445205337515337236833800190217527881174835079653266934882941662692164596158079453979776720895695819013532600198141344723043918375026857954983928697072090372118879602824032840032844056701601604822174781391516071583492999679468477438349391452711403317425445593877556791894348219093321825241745192651835263394543956569576387624458711879342542560572142693347256759925812044844414984268058337583283110947045967710916611462399346939091427984026337750533949676808396916145155585025385668629886200255378496759315337655291704115176420418650797856156926592031089541162701789783884203902121929308546688096817151511754406710885847790421434263509330558927495874671238145531102490172609898555468176785878590929703849167053854777374248776906395040373203508996044839140094319317273388006316836704294606662287098879260397147013822822197458750105815445457834281469586743878118793440490337793397615544215113776501213101064595738123524509493355996192038064832610161153073845656819602494235986888312204529598753705016667812074928508572826319236009858140144342862810994575556233535431572200232297292940743589343868604480432120054280462428128660420415216296621311012791432877142872153815654828626349774784440181367557536172131523563887023166424293525746872013533744789619913469740808723054331090979489932463878088861161441429208471539307756113229079563582963643274510133288848303685519981472554552141500778352294549119999507227559001108437878785526908494813547672779096398540856196417520686507111363349059467043530925701057228268233047992235655050912578509365247707769216583174938072253684162951969617104859870196196240305448292989217995100812404131674531151930173922537953063874433860297512776992399506602380615470378246626716482366929343927342024228666829596585597098871995961904485265332559647934284038742766885586517805981186424413655639120084234339182699280876401400353222144111867979966337835924560221569678427872839401383898706694015776980315281948454118646313521253987562197648181397218493569876713949381770521228669841637161678502843469613422730114609338513913500470256897596944737295087525701107140221518616536552806274754371786457297945305455863096437820893367530222460410833310621057392471567014197147768915558968067413263641508568950947996492422748137548158726403833792270985851984484407180957352668611123667954542568474516356128604658518008276096428570013916940793898692076408703571295599206044564825518033134847973356314728167295465093971077620392986456417056426804579048528716273059435552944398811317114262712067904174670424884265753158051446231066868228104216160001551154305257373435532842976884947378778600329079658511846999134462385776185206601950806968521026583474801816276388134723323240713596636188047220970192202985531352557677375202325118171468739432027872111408460673820607275128772145012656370456327556717783730237439105544092565767867901453991787183249937532392441052096675925712206177716396784699625834585898337142975518693969934533222172167366300163236397214798573940175682002258445728929302876623583567357444995087993073887996744474396622492566273464361180000344761848656158278508529829129228708864298410595661005157104500819109866108953369053901651367642139143908749570327892058872040058027754190084934660077239191514214970637492284351942441887500341606850189407666404598518372645313110662674798613984820743348096795814387031382358071342613561730408551709821318714063102597896240429754941162115042058683655247855707336377505660299509111699498733374429647604168188768160275347969103264235278533694813509860958880822674897332333233110677232694224228716210670518672273316076499191502026225639026108584142368297529308449113523257347633990194227707846226775438293920759977836569788840390290143289530233753479772216832762186394174583994865469003188382046032137384069974012530017130985968903123600770646404603087198800508417628082454024481185071518250258380790756073730848219370845187512076652263426337290744406026299056731129465478388824209009120887710947217163153764417569679776717229632214141041603582469512164991756653356714255237767894635634956994138762155100101717942195497418281084406993383054601843780609971237568199563896025209440963520100104243004442622783401659246417907760614642161927868948403901197662473965006275149266188099176231077776313896277914353319105935138769136522462203235790042444145032153325942032212629127061589462558108233733494948511573181097970748533105544085282402288316002327325256722439910449333114761203412083977497145504874703266890704988912192810323377443838410350703655701297302832808631078610624567344601958335892279502137233488463317842795917989203702111212609624808517086336560655576381235587143515701704196412902381556172836427978426091510005056632281128675878104629997128068486955708154724196873147842246853806116330508174868881691937861465194704497509895047332386322465241355850692825137812143839665830676859956286875895854139449675581762336590451582888625422293371410872881916624942574671770041630114628377722822330596364243275702331732228847536474138385476595862738025727316250423803618475726374306717025256070969975031117047097557081631975006354739771931320868226514356056058266299027406623862679281540758455950690838300933399666604105901708916559254130375508341876833844106019235727642961558491046946504605402539782455210062604382077494107868216666158571838021904679374120806334474909571936092136716412034735118671453665450004001606818744919751907358815951136578177992249534384637486491148394890143284041857889950125612052563087486255291130949510709206550940949006565794968021569502801270500715782154284407147281820452898412358254614439809270351848825921153883528106757515023950887850455243579993133896781151439848598277723580325478286142952652690727739376443773606070119076865731828248201584412209950534393582698476326655512110466072980829980005223354105942417146297619921680315701098932911102443955901565021096176701443727352037258263536806614011102865167432473884450144517435823532817678043232843535769187969465999187961921259204477142141979434771278229797866966911366213963508626810055768128386347948550009275437131501353121367453462080696225372921296129683199849370406844816844462857070338265305447028775303224486963089573528755648418831489640647080643199599260757353851512553700663538612463482187086191264640492674164553434697739435357856206500944267615758718617717483553027970928077952951692624797942239758132265648530811070403060994258692221303845319304809293214320121711733660913687982625317961527447792964720276547877838078400801919393190248187600634566271653674251215731413187060035717939382686775793891215189871215638318554001019254084853457585480892876224967515871213041107858539255834479445013540003035891645768512604783779706174657239054169895136162116509703422796845240190534122675043421281920597373107468100661895344662164715295180300507866393724079130098049904347083610514589555901048948562312276363856177204909098797401627958301759603130794613423879847035052135023721408936364435242323287126401938818895717669721173989160463957841519191050819873305821440663292864455238822217738312838953697479981030071451321187786737403539586125574674339355304850514879259132008393207084591020974495456052492482390629142300119154207061898464855799527699195208220802952704869706677621420629108949692408521224266592917639397380124988216237065432429162882725016831378250580981762001044057237915779548110698815520866520941713555960657636368935400905108136348824174420476886949445927492853863602182719452556458222315435804686757767583076226688336593539066661116060989508331968195131289965246241076923311984074918352202024462833389509943737487493307022014968886096106720051267909279312167725551144111235946588479783473323532519116772383651763709593137435587824793360920803195260524365813916092683083702905258191523772044461178987818059919491959824888511626690869681115701322372260683575661673478590351567648594553860423426216129726891683269216041057558142195944872405891311149935501328981346142438023134552752407590066993908087561656379058448585485404378808209077034699842568927035281272966190792567493361588237471594905981188539485533626652774468895260144006975548373537939945841635633297605283884346576390901887369864052406241964516284491118171778969789253405471414445026467949788590998784224183477993564089199635176854887347134057100787942837409832882039378073816147175256824768182442610059746407228566895070757739466479894460978986469134210768656761787276008245802887230062058534028200985908289813056323705571225802634218163795333638870079910986845652465028114793248402805944959755832716046561474445092732081266530786160437477610468476579224935545715326138270395595557556301516683359144121758480902505543630283264936428567846503267242731729060586756283454555569448265831300282090326214770728889509238297322830042838648339163364761637832021571357567609310202605064116565780991176046803918106103541381859039940251892121846954282869469894971663289126993998788147501347038946178337471805057557989950928127782573334053329483942150216873923494030863405433277747686469753944504111714732315254488278330774831534093961289343626429911930338173137515718742683993970833144509127063654479366894127245457979520381282086194464863359066030991998256372952429126593732376337588425397217668253964840026337245054295192570415757346562536049655352563628500012706186449709263554417617348821598196009273934364947917693266733598947086484644096150739908215469046399594593597010201048611547494637732102937467750674692809428862293374432164706071284024646533528396945114845272172262500689123108135067944997478321290394183811996344164712878965011236467691820435128221076888410058645348691405416774349499026988674718041197831740679286555284339937678667993164344273783652277496069746029556402288767541908089907734985463286203657301446856734128533536979469406388255657760428961220632526135487858355535580489199715065222707377291412065136260416334188554263751910376808217761212594027065841341196238877348067657314072555523606626889176157002263463429162934380022131785382318507889009920753083881287204751614364237040904216415151904618483051434495567548210917763409734092158792742409200684056986007882951337250911175817199265748300084437711461604079039940598838859601641057949459401528249386778021339949378468516965038651788767678323811362493777173662232001473423476269622788385697350093214659118369327753486188468216780635873852822864448172112678838371698251360647756525069704295115890860445173863089730490400195071629253165539300448903454095138974292910871890802711914880609357915969474172648616700825578238336517878279209754840587834876807245347570488484049879251293361144493658213152905360758989575952945806292950049373454274220845634140465463792418268021864282959247060173703656165916778708980560639093132092403671818860732097713428050603517247503986167848260834753103717182038958305869090443902813475523143236109802962176193822566234939275718747687165238335018148544369655764201684075011938139761751378714623521186104389096115953162889273618684927125056616827009121723915643219733182185610244874145906007154885743106291645059366711888346464018286045745640804586500762831567034931664432143892022980099826641632594294619230235931777177325227157992452824427522911961103898580678232288506832672820898939760930585452721068554727155098729955967859159270514651723120176710715632772750323733847881745020431958322242680280168446026787972766635318281012974694794320909236218625804646643336175885004773677598135543959780847824667764090553402162819031055020203690485361035928461263069506704654606589263303277396500424394382760067599269161596821206030050114335962545116640357617077585317435952888133111605688040939904466074441302115791198880116367689898775241592154047123802471831664432670190711410419454312741798336218089835539316465651521924266741252900271917298443768639794400475335455112050679612286784264501876316864369158953482661416757391086161522877554375055027283747392385546720410699606224043235202844785758703362057372456086457705229651733632559132724228602275127886121495586794460275115111932816633477326002825898710032901063839900298930998684745719856822331715425189056190828506105582226559724072324481176261697469419431500719732436737698296606432955503853687174669275359955982021000542071378074024507572224708391022963754925072536310174332194961555126787172230279179391858051110274050228675842080704549959743240855164938551393835615254531671375249228759265116798434315586600433770717952361089121799432911532409456171864823810619540584132671556269936550942829562262217287048287361696151240875206739079745164651899564568580619426461692083609687119897644016152962286910767763729901724116283103168206346236110149463129816543512258844816312049576594989123022782766615065197795307960504693382867975054124243176572302727378056897366857942608270333158315023328622354694390788379705826183040245414890459920445882164766087124750540810705438249202787734165724811014493510207758730232941559498565376728599653434481874189246900375738914506004283972165995272577847739661245470489736298865475696634704005564142519373887185624703096076099474190634670075212074247574108408101605185276432847210153309074369549328686238986990172869066127785695072941467957123379632219761960024851262983218907599675090924585848481743314753158990979143155270044729025742946580974732019754220537577672229588191631598640056023478014194232724270051553490565157292871587802259840294333367863489257889122200621541229466147456799579974461873120447853092703194998408487145757987612151310816069103228106069997091396536497657010036516662355292107850835941801749021343316167145790221562272059123462693607379185972986855363763644951801924907020876636570788809771310369259320758126189456231195741720725180859340643629679031496977281862018890730615241851478745594513230078331453437811528104849402417177866173483502554875662949154768116992096854624550566371293389949768058109055683112662883312815673940150455381829370276883591476960650331934190685639605108093043388429543147584596185347686590891538845695501261717424491810861455930190832846705503089042294121768102695135102860097273424652156848992434232675887514063430038326819899907526578438888577900104467948721476679769985905349265002300767273468779718931643260283352826340016055613832293860188377366890113824198265643907936149685931785915343004947138811549211523272965435849970635593024449268319959326597814041598480642745668922956554777183848018486749639345472965788268123270009639853717095975295940330859637750398626625535810382937605729554466773502287353778328950802808771299944741861858349681535778198396247408382060573469829993288675564021555948949520983841129199701323403447114157448086170649256545740344659397534122503494371104374695357476120864670899387513719216960980053875454418186229180616372792258896552555603156235890774674659977959912795006106776689444041800579373881797062293158430548332045965670698525579866192441650569093442245447341779193055979461720895080993054934711790734896800935088949235179591688948281900303497615152941826018536277018245835866999448375081675813208932386204981965468745796594996138097465490801305667398319591318411432155471173206548853206503103421144945454248606716002540773790080876737295347686369244170408108469740931179329473740452685403395136666234825256668765145713643813057923432209640357229788992088014673177948262333230224023527220566244114879684912287901072662406937295676213001708130679041809856001017582450776947731492266956586573846710410354971059714669335394748727852263002996173253845614065114133615734224820061635598809295372583774750412065119024567305923666203655895471619413254503604383321292888439322319860306610520188480811864195940078703417024668759902914926553774990943270922993480064317072191106295641566203427707684538271241899818107656268421788457370239663691496100818764990588759576124818895136312311080894248440056834384770187213448203710253190144030006383031548396143627797577858780417524404330513975719926910385389455325830751101384147687942835681385348701263984880118462489145526947844167733520737670277499326173917030575021596650748703540195949365317391303961470823398542047478444715687279296092695219226052307184378152598556893382907283840230863937991508197014199221854885220887723746000858822680332114258216861122120980064465928609208150651501994891082620204723433891822417684851304242969190340301363572167160823807284862948948076515163222808460281351043022330872281598905392138039797183680684891979345181441493313670812542875467470926297770221975608137706482919097901196810095226139180659466831346689469667741335227775844414195660510310135821551873778610191979299550467158416575169409028100417135706119611893674786659427945121492025734220280185254114774058445816272179087740500938736852136082844962857397715946703027177148829821279143376996909302946635070051751435974809416567773906406946129356950414519140817725858450487830207006917082946580358523370048821292334997102154554449549371444558303124384716926730090627127958447729313877263798311661125206217666790922600409660977139222764526839666980854670700581179451336757382931953166450460060579070150497038802750849206075559493763429173541453235938757662130954240616107950367759906952596314812560890529214345469569202292844038773370920334647981857887403816956525804128750754675079636128784635577185224961889132985275929833935362928921028223246200447711912765115208759126205423406532016176885996321053583298399786975122600078944506156981358920153773610539300643680145671260511445848060193586280166628217603483809624989254949511538650886576166658546982616119691434305555101453531889034124819388110010550614528074642131679096479572937812997091443155845063076685218016543393441188831397760207459860008394971859673679980065934305813956329551132935520394271541598751081903087344703479739180055432306669415534025109740382587632754195451596310947954072454754015702365617318557551419866477411261575311725534431060181851913441824837824621045864634955853090365410161903432070035931550943788080379367499604703620325631451877612839335832921293499298613777350336487959897123445701678202096725778719645417863796583111756451198731125934217477118335616355614373590707062945191851569659323375445496189360717180338209869330105314605204995279693499651098563191735217058082949465584704922710516175099941433781703301882474946305410832925121388461854950449307972130599474951074573353145248055242251092466439816929019600717260294574056239371318016012681839339756017675860350824432689756931979115620427991913157044317770269262220892340568441535133052908512276953541707797861908928565251344872450220164334418094573868562929781960342584574311499126135038190715433143465476097672336315923304072962266867317658365701272930998078455945405025683899352755079996032211340839225175888015770487114280648038725175869992155329950488361623899987973245251789025919359668086642019387547130308169699120504633095536711983967210173632474051922293080000564533477330064021360697549011051751707097909723495140498362513416729766806369934942820077645086513369835823031716898480223750039900863842074632421139002047969277061252555097171838960662096107577790847729521158166459706142145123802419387178257100508195574617891531412326895155931420164913243778496286245238621682147215569220038389508806569327123085731113269906236787375384304003418986265644616662055537592359975885478902374181502393554706542277986697182485139840660264993730460796922453403385650146220432473936425919068003930548971594341599880003663592839517502415079255027587704435059123972055308352523396206866934096834268569163041495067281754444245119152899455502503673806656430476700210243982454929424739151174527033202774995604670793257443500536645029577529749839337831324313740409936710747774808599571873711975887628656729908134427807224629960707986557651206031237725719209136612182208716674005241327755341024461951821364620388085702922724934844348406643448925818012802838254648879582047033217913283312212972732306088415801730248371494444771121762246922690958599536122370188401939278197282828699549001575984500372468293074815907173174747802302754642795671067598095064724887848409810878069196242351300349192437707307040109694550061568441245353760734418925226943936445780611835796889256236150530520354457868821847381228369328426492293398359727603227269590359928957240628061500271940581765842796512333698575369577612011896869926142067583996470425073981568443348256132629050774221152630059824567262132630459453110478250418153011708045998469034528827198397235686008551908599269357931009193443280664316180107210628360749143914891365537446919287716773104770685461411051502879469287734136600117567023261686418216600329047696026274506222052879492034937731864467778982249734520478002251370145247211394640309750053012413153808468698195396247180120817962952273165524141938837307308091664221182171213592019006955923543426787468619827286126361060722117892399305824738761561974641475695427890277313383688046443062457960288542659657420170090619568509429938360675839279352515261748932375470868978618535184228000066755020467937583611104147129197980363611203632778110429343624842623253242823565107686884533022237979604717748226657405248294070972143100405920822604772707237394642623685217857922303487168725615210784186574727294031873300457332880843651975361841048512582394087195866673949148908299662570463477866821897504264069423992579916276233195260178317895900503324844524087138930408943540759150988601554727165013662627202392587099011865727651777373542672395095086602667576726628988120646542912073048573340092775020186838298387146989056424758357846986595703763562769267327400684389565609440180838211115441298401515894760663591322885685301793046303623781248727203152232957191307376174071908338057541713080869738504693354775154772519377327906171013437601586072819939724427638494494943999313118832429095095073817465164829259059440038753390339888176984426282764393404014898820819934119912409865771996253272256630960929472060268764823619783926505574726451954954580458537922840566932160577704493602393598647760462025215101331351156531907310423291970746849646386424515124702218825942915856029296005310862574259781486529218590989790135479261807335285215148307486161474899345190103013811345767296798805981254996377673501035659467222480810752188469179786329757521316342923773567936209697737256290357827915109173995882314990182105402267120269177451005766512276988650473039005087844252814009152901197357635889888774683199922501221889404574178315754708165021150001251829460744063875408844065463787683505759776761107988568368927091644474214559683928339699508488133566868946395689837514200713718786647991646872192106249412823193772869165098934964003772352980425425113071952390235809761475716566113489631641448865424036934525080935904490611136345063289548971635478645223031015481608985071417983167695041958892846961914578439593544115124083711491934661232843216913972677914029823042498791960631215060608886661251105303119403510968666306511692346907364481189131908278270604547421485374639585428096747459158131855613518375823818896681425512814376644006663435726002818681015505265976480917805507007690592435664826315985170608011842364494905390252549313139383613504720343542528263963206193576159776809902519546278387098211976774831950345978031666647765501529643026002140535656844937468445073185046677310510506938354282695242657017584694634978169263891984472393034465887931460105433658266955160670978508050084515955929896742738221650801863371920780841562632880506257141112636224076163260593668669984978907164971144609483070915086540106137246131499020169118704622560833467035708485970931641220088001188785210706568824816993683933991150760379131755791077997418941023704823209631509375907440559103600954025060964866586141201177475380655898659707245217363942201802812746978020708480665734414383974987094573486271202735568551236252633086398747492589185990870190430441310336627494699409689172670645815737348223651272173913784174184117299198562127684462520375832307470111838390813992362250271561612204530168549815921579820257864428866605202731082178653905956588429672396443634025622611091877393865323670902424942371030209678468936891124575816478728261706304717325986442204917907787228083275819444540537997151938069552309309342337296348300218371957387932770562769557237461601563022538374817545674626699892627927271365490067552981440725952150577928066836074395217851696560095844385830135518400175104928681675882144676944232606093783994739287292820309777806466862695367731800807009912752802747839000986993894319342304654365559650015686676267349917183415239151338864900160862955170519435874561516916767316429691884797613547519776778672879776838317807637711574541667520199860201421529109910733205856809256840194414057627073224237571218846353012308169380777977865543651039477522701966481731922417882220131190902808419569746788389756183935695078750635263479271586180424633620683911326777297772815832030791330721655738858451710568429571636270433299595572046105783058273873410384904978541509630963951306639633822718098991777194388624991157165138726548371905566756593939072456423380481264623801124628411873124485731754416097118775391029532577851623657855734898558884909475675121998293406260200059136978054509054105420015060113143442339986279795139980144277484055001660020372898536181412952758536768633401634376408397561002455253394600283638423966288097826542494476440227488536608536312669739395101214888772211960605145875046668824264783967233139384318517321223516330052658484765429833913942450958264055203797109601228136464451521480340370004033378108848619194269550310047746148310513072354379408595712185494604968403959438453381991463765069941832000979773775395539319246492817675525079998018572316643800834225858956431405020051414399610207517437154736191857606510121750263834390716909911981705062143316821207581078587942268598666119261401749716876591256489847839408098021758852837807806551171335083858869216713367527956640739024122022383063333954096392080124261618992588953819049079529698874042259178612336944892916606418564268919625105709737107384822126828058126208994264415074170096573598065318221073839526320571356673814701398947883149580059852027535497461221247444807891481464829265324938007781370681185373596702314091531979629683340770717549985877138573293926459804964098618663251261493019800644396592103269976694240789106698793151243567138552176353146824889273353187874159921493496319788118063518253248248605652771560063758887514383040210830652996495390665874354760945005814515141229247417724270090534936527168175668271943154632361313343334743036671807185691471302593136018793857065369864031391781316175318605387021184923555020312811939067654640497684813366825943179251328926804282027647848740080274390142311448977267793802403583810005257912366678694293451417310534538002959817302197060859755097383312641307541856358261679300785560457399214807470457594672984140458252372027882989158058078378266149328278250336115837150716393472656232378708749772785683703078418000021777180905756115925516721672734975815464251068205923146913514429278767560575977967574403949452773829040487198911803519532701436254834983206079475248756469879817269855027332437506244416553330331262419879026237062852800908263238002648017376297206320359374241316467025952009441976465638010376752494450896013177003960197256322620200733804690383461705145154407708640932260272763941065051664985160742470668017636334321448026704521115282425683746447350995273406295162173084237019141315347977389015670478580775939187250621716620715660290841815477015790666544226095891648264399753436463411145261075066296222843696021454947408973370991611563533578394954297078391028918126010682426173895383641523739754416080886291907533567952963959917927610050914208204019728707019176018443581984585113380733403513978363532920595777025617331796106387144193253475001882196400451551741782309605158411827285320874933351910754615229168735913224649643274121723173154462374760404909502315297743498360325461327985803803066263352205261914599486927115853355148719550354330925739877306923577139092374375776617998288500508983328314692939255382664787331709814882352034157864884656530351609731413397870307159979222186808021085457942066961890721045103788383342875691408147173198402176986141065423153293598339100991863640842277101982651783793632446299679467498724150734034408619185455127192562042877936278637591625639526961374224536923071203954120414762665404005113106871304466218544511487024179399871393757318903521488758632812169582195418367818396994607676364899214963401048370395578449097227170645645942122346842266748816880063030466865598421299517534342824164462396042077993426759150159296701724640003886222313872704903495742563297883316931740599209539521107884762275543945197676750954659782399399813506622581889898024812899448505853973569079615831949814684976733500343433983913849798756008247025214776278602652485499107063265002444906824701492829291181688599865630420013686865561797719568447280187902482303717830746792002341058919846499447009391175208311973674789462291478552944293746848369172808310633161632225706719665682926475426180491112069141914152096040210711264583985775151950547699139556318888603147544633940067422405519554293539385767875284580232241052310160421140711410033921615030349444195381409725426891858793081071049614058587053229411748659826369626909940245912445550260746144318434711116985899892741190176065327319722277936621626547187476868066791371082226423475883061305147901875438151961846118852222005323064794955776787936069699546222432523457685941569562243821387478262319204160331449692104798080588145264666345282211185517560095868838774331871772092948738371080847039869471663454414036657698233244834132329975612182921719672357939330194378553827295574309333850718513487299801967686755709022306261466346102780331928062024600172055628848485479612790831828109834257113012178052516513351266595810319404408306335598125759581507963786174107117777510402683832218694365737650505966830062050624702480879506420435170174508472723172338759196770594635405393415859162874510665927238524892105126950652993523233748154013306437382590998104805774575915290658628251653801105230411090686920192862721979853318465584315063409259607135200997674909483606813388255846613116199167911660756244943738004281997000710397474931437674022968644268532012751927898567380577237615070792290288470178187803506318303650599332475857413515663203796778147899883401718098509696362805592851077445612451209981617859287220464371876512451615701304291443526682536393281106505940806516104250535845038749180047818772008589337472270993366445192017262431376774332654623606712028882032500997320521396270126465941897208904812684148675795281700186725594516748030299797342881991184331887284169922372446926382629556223185795991494838622984964748490499335129323402498721452456997608237668380831746388409401215214957618035139113999991729102035566991570754672170290377584813290744645892220967382053327656104195885568796377108803702198561390192584536596418289915174145741289965702602184628662488423773340171452582680068359700249771764654788977222447116510864905192816116484572383481408439909727213341808795318017874388202636289875031276854743055104251352690380614526188847547726376511331219638925497004049162610612636234997835313329577011286132816621930232922470288467651326259325597264390356086578236294846594756930896922095759190823542696850247489228086594120942782721463060091225464520766379448656842822522513481368335715755778849611462715686858433897099339497536162372194779163100935931244464867186793077070555335821375407187183581541617505125921301658748062625749063322320299315851005306831927129129839689818638887756857235143835795484758626786484952201803521976009299561729148546254002269226528903189578270374290577013339905536147977255063091729120267515396765269593130863955216168917556349569268469893694202758323340197372341425341571959588432970978684635885707615686447778976513921513751745094552453196254560974418557811077539706567611679919631459016715024113894996900841811173556318845880605439657997240195090472007429841735399491963623265526946432929088739131624264357232740069959996342430862202740225953375815450517324768928298081599198620536100886655336334459691713530351611012477702211785754239024006920584390485024233957121202373631621252121140370594345922870055202089709691656308489448886855430939191015249430608386701236687116778364344851879263646544651404693911259602630801833640449732595296719930356629746566048854989391398864858928154538926975579695021786290049550013400852870620513631298487688541039008973087261005126052083452346890185639005284901696422013212023972297369199583659188894989873749259314709948226921680719116412163791921539807639522478637952248938647733486625551167576598372157587346248305524551750120457384538960031687304668922137174471898889974311346605660988650436098165886098809868081920029920827494396968464677253036779595735089958147125122699747682825828261716494325331552667946794372545832339334665181181889934601937091121925555255542110863783234588270061415019014046053341878672375059869159945758108974168240878054870726711889747512635562753635114312298870462724124755207213969706849743442216414104044101721899524688492837470622969749016299385520759151774790343508761280751389747675437484659040411980041159239324657660888819199348782300736092816899820043441557621547207820320000888755383760569538963233804780484384474991169764056822682128947851485269918627084017804154964050960073604124629444421797529480263409600558111080633646047165681227967304537764349718197200146636452059460099158002011181943224106780177327357430779054795576212578723079422314336696538885898399855661858104342419095243209202513346142408705368736638848913655914231946875571624396326234218258647248914879492181703938577627159424951690801668769140452596415114051363651487782361279199369489855925678303286142270755599189032235663157724649956256732201039131704766520803194141608703850158052180220756621713178816384246028106631333109138641887009979758305086174799961477821342396879510921000904380793563780399285442175061708490957169437467427889344287872050724563332648003203457323571488534223625017938876854980753633829671591391733125302821350831405073481482125972778518426710039490324313520121105998854951153530313344289837062901871743140843553709120731109966029414719405910171479137946971602850178625983497348594608663260519900851358084576682967769610031240593448591174615677685951431858745200181784629235813267521642467092926990736390799110940473124962102646390499495851410267699207407075626812480876201556717548965498492116872532848555205982931172243650376686093912543222457557276589508366513066871285039235586527374357114489078259119539296667165668676923764915620385134114850407325874504685620276761425266929975413891679331686070465608882907658104513289356307281700179618758304625901191050287414490566600913795191962855826107574426072202952917138177615329265105531308230642407279623547696886993292361985767526309700530997589899517103539363657898190466342026876021019732014785861539234239220319092947807126771429017938712229491620849707642586208809724512334347690642416617885550903024584033141672174457131893911657586694664789217906218353535808866705881585074783830577596652589868647097817619340330485752833554154599924830999174946904341728504609271988461333165673532646211856029881430964827162441919746545721357269633395737430233764576513068018350420338884145574328005456299103606306296810371137121358502053425695833864697209647418355892383957739458320656782236450937406388396631752861685398447054581918057416684155089541814192539896303625790081677844420057438884532003223281269122003008579455518011802058969457649095767029352830798701339241232064468903213430120031405034149410063449610846572098972604693675247741241743851467727407511769417274093138451265090297313358443154993855140015441523121083627662203112389202535248226335026322722430126021064838839699529026554685236953765527099774630482558729648512567639302654550198706633030272279511747676171851182218240842781445982515610599856170989076883533101703193949799157121133131834047936173581583327460458888904715611994102126375584158270165895959228522746140015635615444106099213534111588220919541571880244112961064525044368571583810979612487558158389097211224988410200988966785163258539214528792013054434268760489844685970552346820995929078613958128757525543660325343568788975339081424853242217955683380816443438415668043267461372135005880800387925880009570950897971404233026920937590978670660512434233034766104419178145659257412707890814729842550888067397374339282841934194738598029001122246957110026848897588358544827372814085818722569199273780854670932532877626185598786145090376281278583274455297600715742711021432849869460975792848203131847400397292931787066397284939479716239818920771253103050307766887524991432972860145715862703143859440004433128145601891489728531564444203542065432155044097483981459859539711332493659974481746048040726910141945771267765980743915339822850325334932714235064378814374893547121455910173475373797994362339683792158404538184104660052011857315079019207944539440639848970496113574765746793231149137376915742377902212194019546393632767001688386965170756487218638774598926018045110557066497301877223111026746495929714779894665852279603186967699583790600978788837815636706128514507398092126300634753746585455248315251840593295491573181697571719841334576007567024069199434003761844440744013959161345350945458037419840027338765078133017601921957241139791638512881067422805376459646605838383488783804438505041864556772398642750368565748938894232135184808395010054084706590391798218408301546185479411822130979948271904750029731808614887607078669184640711045798719876411351611492302994145922608384700391042776219471650328874374583106272233368429863329553320371255154860041559421291425262703549650121930637240655364792621762607036822528046366045880539257831421537112878608401541317433712947837439439866245973228570756424141248274526632053361736431381588759871227051024619634004045682033803031840432718427372628954296614346692430498240465908023664615623417024555701323094755719300697355486342312443854394451658773477479630352353645088153940426357654616990918464092119123085156475662886897852589677407988262277439905110860367179059378338150441561971326272111980728495007846194207139146198705038114027572740425375581864053277167535833484198459337747366886517913054096701290415988685595779146669013113644083161951008862357460290398949205363938486650136890346670111622551511076161424047347357554568924072592980789241447284689596412768860429503434350342303367018376330238846850648399951711065061680549094808606363650608341330300255394768694937414669561109147671566524187006285973572082492011904916413594155092355208241668257847374857727053139085450459034743291748497314068245390116296070935279495265783348639055584326804612936872459232896545417026618100583993410023668338692007699140932818878525448144030079584698551628216093569883032658402571796352753241958240585977550064611417246249768089528045295661984448179460193145657280925887460035793086761079076590606465124956811449334554189744493889053136117629819853566425691129918839111835009933973601879896511098760912150669103703147383161009740837194558236499403497626644881971449728501239437793332760924648048848774484349632853154468955744390646943458919916897177346844071872585513427505545837421672814621828252299374490214532783565157306850209534712185207203530225802792752156539821977236511916707517465065937165543618307167664298161203539655122261157921023734053636415808062025061310265096981178901094795759677380296199582179008649281558039151266222837287919656981170351590579634088314992034994240236701034554412723382055775627989723225425692675147055411830056219829075508163274674647404022431787387492486239587964414663149779790488704965476787450972501186804780018099180765122119702319745554518322856776373845045474975391092338180829780610206067355146661186172799767860771897070778009724548756168856746033571681482436355970885618020661337246874549581984321635370822892212903333638174260743926884506273341312876357978848250905026563663730576024673623136214367732524057431814988268601689222441779769881759174837564185671368764540684994361600506723518104799364489037806029595750906903034846548847858683518303010724797453855842226307249930708172520337390705333978588622693133354222551781029513951493501420410125687070398867669558133701272285923244171026184319999365756587775117356184820451208299133506505230221792547402472280827403730050739838540397803078058096899765550465903178406092755993453949100940978027863671045800555383431985687260367963682133337835063125202986571756964773405339189686874760719051149158306809860640412923562223957359218509203281538654156183204382767458936506731049213424002342620068735525725997944101165378959814178592589244984205015335005523030340526253316095413257648407791006536548264082279584690614071286469070866649732412041188083712856600046325320606399019295242261326207808393238134253309313466722943612665915374528064146970022454328712402197493756969953932322946352065599189876093052794168797077994771931043089671049459217513001537412784898251183862088500988227480729657872635068369431062467918174811676010364138471290894399675661432759325763580682534621661395812369544702719043116642188904764492126880566255388583774160909699471368679113182084503629371235303104666304447576060610150373705787449735563244671631111431374797701330019450761970059008990304097628445970801443168716933586790531254949764562213154624101642326999434605325164156923634538263696301736727027010758471415706663233065245094568592011014386207972632926440465616790730745790524099297232909701318562109110578839535915949429040417421840427928342424381841685142489491450185738168090617896358270021230109428451720410527935446571732753608879292876887626928401326733312622066020555369479894400806952529830498666939386704602734826237645774883502995464418322210815229296508043122310595927625914468732539436100689029820476756106903217630426722255076944823960852817544031804192577600283417951736344703399637027833796627305137122260118899962606315222569730203702826157129091376080778831107248892703998905129679402714012834773382914535325431953248187015143796973779266470463117628035847263020074640978225820556845627198735910021690759066672880518236223289013711554281415284382355827502444364504006615001723814538361926163517278940220618256435258952063598301588122044543918249371707939431396968026371328255793369755829390075017036019708269976485344730427200024045777081108623497826871764571211646639525784586625104149122885904069289353582622300087771092084969090392323254761883082593035144730573836211870494321017077242229592681130690243484467431825063501281866212900281721901781082353298691564127005077248671662912157910094050883203200775387053886885371489354172205863861722774430262984394441521947442720285119345817177161459739662945651379927566467587287189926232530247927243484597506168564093321065684889744346136308874732431154681433483699235294358632921053032783456925999741854173649689043780116909561507493980055625818314465866696555791477134653042178206708576625071545570357519664958975359231497714484845527541378845989302771697467002150317633101342902811489363545905462227837139417481170967285152109683424078156543015485471761049651894853472739030699664499583666081699348156370355218753424344133777825008795805099288593944773082856867233627509015386001530149904070758377161996208040315232091966659195499716032474320645067372025619995306757300193784978996324985230730834357709113565600947328318172181384794681114758894995850711872275563853305210322471386642798532024185024991810917783349673941495437289444308315990969695929344179588091371201883720547456197535638894840209639981876658965189631171121123939983938649081240617759508613416924613417962220464616867263317111173927979306279337355840403733166949996721548720452159637893410513695275745214826782421002773092662618271687884925224671841187324117751002587953635560975152880944933126256404316132913440749914464599870040393303059933661153022116711673465851638629818854115687209432056900540072823688860151457494594119675103978032411251518569781530200087354596746814432208723834261424590097585944541171058053002087677876124385999180331627115114147847629893397303177546036969777284733313729884674349169502285096066061611249400591169997622124382702205264970920538057955353031041064378644317413557636889545081049182735949486111240241130641743558588146294361528076452471733390755445893499447740710189805206722771742355653334666794975234021574477141370798675962642362618633909799298331006724237892758752691104090854722205829002660641571616598863775871418715931708328303928097944721561004316193765463453784465802634872682827519617467538190464018976338154756281489379608940439183210525004552776263641770378379951985850873284585256138372720703043731672923759674617510260435699871039453760736350448930017089028408817766114513199868140595239888341533440677308331314481801557276199111195205991091762040725750577127183584221306691338425817552423933617817912017006539929761321929578087312129874260901280436838723131168351703169409367274991268692260046878373352783880974580917995700236886559715214437334829857811379875942759758044701959149792654506357137137296088595871334621044008933070874576750740420760648604536968796142326966401422199034086617667695843080088771713934243365379726195946858253367972250977095083277671523793946712150146033337271232193418446402755748652451093251960719595938508692771291231193042071376120532232098537041365262744497060233029730458773377935637923001126069802604578670254074165735495906554741450045108633488072319372300721676579382033334022924204895733424101659867152233854918193021741157013634115176384179390320556206132810454229989195218075750326518251356313192996477068410567549851727175868861875584284662082282685747700345145202379240840092179408817620212904482745697825554343610194693944481958537217482295543678660889650566237320123125304529843810864318660299136464785078430978887694333492369620729412718032491652285642424870197382367157084725484002666217339805454550729627500876286134246378285778253660179719561060539458064980659404129651198351920480519678382344251296300992447174281824322892487712913564922649845250374943949928323742227895705059547366729591945673361102507895693047284423501223988156896301142167026302501808157187875912450857158088034921386185731582128154281915043115974371288029784467029377184048820428556506451648392307664404531562938173509368475216053505432565361954166454847398787156848076988909784727008587128555022692243669971907951254992854809439161298706579987460567836138179011042521175129323373317690759904377128792549501219443811353162519770302459915376701896741412164885501367194589073985916873462176970057058443501499538974597741526281260365640411575066214817022902893064579628939989190244018033913762018100374176797492810204422651211695697191103912277415642816121396559615810281772935717658424207488089160581053042302544065620359663871484367402402267132787785693387858186021674061301785177253598418608964377883721018620651880097308537916286336692585664342112749526206970208425476446308439820983362205823076268330766777614299247083727524803501006844985609684258334392334172979520695964108870524571839070635175928317245400631029611163435211890943902106366300226351082504834739625711308286310266080679779222468054015802343759492177082883685627649171173453590709341744600354095391140205281188739576453034035094122655961078874301473099454437049152444830381272990919871092204483085444859700291549608800887060619020465258411307798216763427343219313943392797511697697385530321796452640829567186106796333269535271887552078649875349522000279328330124862544884937440726612630214630145806145053092934042341188933924911853854070957679756442886767476496696764020385967442787146144052559519809326786075472726612780726135032138139456988993697690815975735339501542601466227806460324880934442382868098579785452485204770483852108941357703031053274631539147159344052856730488697473079551205340256417430411260341259784595216439510671158748026765344642752446896114033754977593409720357505343753017926827114034791041419175616098351121120087889295942262468577664274304985508082084554391524512890457593622854955769656716729802441007160898139557617272545617710213310397804003405273573938965706588030014519548052242311235557469010412874962449331956977204856025021801297516687127751548458454074156682364641093457583778786429647911729542637471396889715487885384248342680418619706751114729886879959163486840992876223882669466679735978581359274326837978198906997634638451234895390169990691806603282025283946184873818085395770527959944905242598900433264971936274905527479395711209691162885668955133863721564206448241908892416554723871147774854661888561571502315425072807587784220006182660274895633155618986566468336201232807205502360725387053722558019728864314920905341672985876613640369056749925075396137572900639334137997798382666851320104064573302237745337581847477799810252055779542619372256668963525179762150105607872567066093504969440965644578579882934602126209342992276664512769367694781482771468385873756768783824189237753962359564410245161293430587226753410896037900948988610996111723394178032225920499131110736482516470427993910899460578835722764432136417634591474652374211233030237083090636827796257198867572609366891801447251459396752121650416351950680583787014883066185305299183871707143676605172293865656592277515242866233658968508100784381971579284651801075294535230241283883316060321079351010452760877454597874876616806841119209918859135498431911687146611609776934765439899841547487088180112949314797195427322582491591696824785383855766432632323622819903722465647692333016586935735506813262872768173628429542804271884588313939592747448412101475620405166276794500018308907342727657360244466425972455333142620315899733254246267859214645396368777322991938844602195495948577757122109732770564099628608038225259840717694161834785615242044468946483448676392552481971143502040211763946631421989849373707232885545513655854147573290868693029793478420192072970371676424225593692405108166464903456585755329010190943795685108635824042712324848030822647336644737330768806548345737015822151411837834169974545696513996106739711781508658537122713476181857126101376798799480050724831633278494601602269471440140692837911435496957220407147712944821584576792375777730782472778824776985192250971281679948073164534244879337396274694955964980956769525262076125619022666743583080797938495803291519924473192884543376101156479961342351735734009003819869316066265183072068945815902496683239808472238721261519351937579455002400894137839732471367351482526571311731039103002526551970737051338098083939286886915281964168295982825033090059625860431618633056987956849003993125076859413129997656440700854397012414143989196927820660704122994451133508188302655193801320291400983486490319732315241532255272603827264725256927348687907513128063889322955322566909580058655792127288449631407036436964563048032809071857815839943703684784452514937402247431438295274025155279445645097348795042349374144679942838618306210287085059323815746359072814714403409877213568786348467237856974411949378893743567725292232132659568619299992387214541867833920314456563496021726944403744504452225416333868109893336889383815315858455647821553858837053755507413934881630202713443658740770040587358641792565015239450439437041641463206177842680965756034843535920090088471946560226550565214189640835763767328045579860365124770427032029026639378077618425272517764953856669731575532493698461137976272422098559445813461971732027750587364231651742468793819833590700866721323822641652295069629303431464483285279184206292131245436913426147109467535717781581979991988340658331332986209611197418317866071937130617056870492306249589550411368029526475050980122556645136111006128892087384245129576538197251097291967843817988514400984716781407009662056562448890665093050001088420767055154547531692706796066218592131361330575159600132836827247042067249804828451883625992148090512451172282553810003657738163179330217184757801396393915890284949509430888574410397882707996790436640280503562285066334714564771947798168428584269791753982058017764894253598311203529147242876992780437609952021041150762406699668040799339776138688741342889908944184003802152099461841045001887205003572535713861699531267296950977847814279158314716609766460794166288683965901630652086091435390341746548811175027317468807234923249859368931004600387735316262645673324967249927258455021582162079334374143443577203087760629708615527775592311649208136113121150259168921541815001508661665958670702793710678072858121438224462385888663308502754533161769860408689329181798102893699381028042328191416135000690722888253720328763643763802667590275592427070337415358921210012804320139041837777379562414878523205446167010168483659429556312600234064068899764719054802688750105179867858607463028223269867532165360999809274119757479412691130756899242113956493785955126349152751467603036625088246756108762348021223964667325328232458210683429250006706906986904223483490867430472508831184212426631620451422157769311134702431950593867107650545204585533798327479244720713491704083792640057653350055046580745122271533124106697299406991435140207230144923450076671416371320072556727533188951998875785993574509576098139791134429266145492593845945833540642442636274152942582374220557478926094453929674195518752602246309203009719479561443019076136849938587152058557777849021995194134867660433580499577444898570676934424727577300537039750048515370699393689185584158688104387443816471944254937631231307321447855598330396770271260823099307921068759341445829452800371940296767270961208718712855855772138633922088754256599240216032563372356579022608458966801796493448987855462303159607628574862088624065121641013344496614356497686352247732833693351389625863407468315807420912327246349100326677522171482581553339092010572780406875077937213553232174933855014915718318491180440185510338936975583101011317299304280230659204882576875061436312791101422077619551008779732244902275954982986176367362094343290157367271451493948303900234220826156911023590536661927986602906876496294432058688997074149579512593302820689056211803530840298570830826571826888230249950750133355688064215470244926687159515730379628241677683398736193790065904924282750828112006954001250001321195816183554729378880058458767493704702749644830203726386398948342742094303287778576254072784339353679718714058640854225353685723761599758705885803944080098351731601621510044819921600557329113102351007263768466364281137295255313060435297682729133285164123856098413645018616960310995030579950271674442246052571989970398657108239765099871654405358783725897869914749431458417833120817859146404334345260103914441052070417233408539087242955881859513249639048238324194061811639633428671864273367264213624558226533933739278289878182200839834827016697977081695130891104675418841461525650034113028169486959700787262826043835632740914287015956434341848731085456253997657364968642019116166781871029140162595164066709337174333222900912286774503549055199757899452295671449593991695960888906036453696095483129638300288134453372477202593924844976326619043244847654852533503309481257185101648688654991573971166024855980301227573960290119621621159495718075711286524218005096693447329366657359476723943717328416366600911388068112184273253224628145795444510443739496624744407163621516785609823223855034551503551432257113412916843689956912685274234025710172815263556961872253915845513534008047844424918188323512783968794819954339996415663882591297859471229729146628594742648636472589094854159231761130572509390698435744193348308760627900948059263918565720751952486159688621932860434207226543278177508797447041269942556625395662230592503559158710022809366698423119676968571346344717679258414129986084733902444068239659157375974011168621840755843049673564102554968872225398338574504463837913816825139068078927605838321483145569840442250981274677743848270980615377844403634506382558561324780640692524613426404110155167860349488404541628528152217611727069480763437027485800959251337441241904991121899307394685579575613448324354710601666206531498069150617217307199404036451690199861236979042104720425225415834777785299652075727819699142060543775953741201068650243783104658615094128079572827958932740441170790371096845492574569523613521524307328010097924646555318190034488793614849606305967386963998837278526630535147213969972300484042715953283013065952061633407474051426621197326106823469353051916944999679583985606460901702176586693050457075376965879824406119239025627515822663417609144656854659146519876655527261489473560317307562639539209283031690986561566660249082215269034851812159417969546790571820258022423653197683978936499358125385663140798368779403289552630427919231105374067738066787935400552245140300748564062982436966295920643411364629697178395303641456222365767988463018358221630018268412408398936273371219318785092425437440655351605463764871965949202498960959665902099930875695002119422910603442623024239308315396068736205145061635205816737453317296441849767386704110659664865718092419891003725387369991123376989388749872210665573038901741165538890461824670361817052700925895377896082356146919368151722649469676188847689546614768582111334490854959552103296962244121204216633455824355974416340726978115931208306830651386726826804198073491758795648024552430433056960930042140346781133501945007520726470252421414370626062330260290606685979013038144001312156905899341277057058953545899873359073958251095398508097371409835195787506787061820909006878317357903484376933179435717705705545708334633426189201777591174176509918646278616365721772586916076656154849314841608014366878773444088330509909758891627240650057424094436396827434720189782215512909931115284484378648798473534990544804726956860872934041567986886563006257160631121572923566013325335979352186488987917389655773767561415575373480042604959644013651504102665603298236939783881488561909629244268432594961525980737308325075866443578663386212668197259814933202214538931058994441549630829328684926935030755004629616258863598790099715511640437776788192631347333528349287923285664982712414780361480637972333032593009732973851898767255474439523682450550573292821834146592733074141186195708897018722522460162351579278907550148956282843082430088696862805392128636639503502593548478332454045222423139397417176184738315690915599219588441024297888114042544883062948158190108609278387132080552633752184073213012362186724939728616675254289503526000053450280206296247112398326163848079085887284030902438887357564123101234616411535863418893822642693948014062165840971636266934467734646454294695407304133737204184348314469547118517909764471872993051566008151285241041219952641861244332584863016238951972935966762687911004299412525611472742942165435442052193168774881310541331978256305809774592560851089668205788070624750847883002094306285928122546226293905228097128298131889740773454379700244179255229449052339259590778405938750163911907955834794808538554335556485424932974449025984036875253628354339672466710562104580087204928458419828408245555974071670485459173268335941916587736305200534066452428623248492698059215131301706076584802632567200799831898680461243946014270183546487769047025578186560946510134754424411961535883299440328780622567009033936191938227625316424015597430399692848806283931802158754241925856814837446887574414547962069049980069939846402092983402659956910523277790966844176594451459590337133605959462157997372673305103190481645790793390288909054748499704532390390144289735787824610353470110816173359394334217774152527311109042300031347118000522169513319246173522193745663747420680482200741833224267496155521152591373142562689379833871548260008599078597722892503121534543982466553235202785842294570916230059153870419482353674941870707638376680597712743316783483178629606688507795618628742024070686789984837539780228803210010589442046602952668424242199698477171923245921031032936293792963101990433846075425153363031142953138457124078731903946171398390118661671063878069934576121638385704289857913120446132963703903533993078096642777400935634726574267267088345843770722190713913415122263227480914517190408957020117266952986128188624800412389804072603266348615865293535585295705738641258194509453589199618100781342189735956105287433992444564628719282415958029216585095887437670386809373424524408092976141815531170592484438961742443543922156876076016518201667659594242289969900342449467182926686204736068556974106091733989480868491689056227918789279191488941862387379412899000723031669912006557193381316237174083447532031467766020320326589695243328613438538482599256124655567383322867585011402780724812674839952866757453966659353340797906701431687102677628119755569077752660043848148214620859582510349318096841998482564851130059139234140051439543047248927437470411725310311120665271630898257501756220242981147179369133913135202609514833840264450588595026206428541674679440360058370994764073104446172335837148715889947620704493051953301491420489837170525722120193926499870226726110687889227767914448765430538900734562500525829556928440118787389512577523535520047164100599292588429076156697094136402652749018415201775189688989426707314210544989745215232418028106841135192821769899698894063080809210712829876614161809670430382199592042420729801192127727190888712940157737475590489066394159475939784156885679884183682307113445652908869171398020784513965030004699216768323138086235875643637836638177871905266381048982946807597755315919026040449482093893793153317099627029039531398866176687728728402296320172047342490003397458958654375729835972211972943562525771786932707759274826094698354129420852297487803383551497980701630426963013555987026869922915387178941497496337654035524052002802402554362395919800208247965305249226711194801433641270014101961583724862484884294002890677660373333551074145612740828085869381472830021901091495387426748233975692164346834572022028499113547796551450598843328753955251594201579766287841397221113572897694945922901225291552640737081358381733435184878597602841282410123192153368197449906646353632539310881985631442401740744679372978883105244128072823810014815715663167967209140304716335275253692415742248705515374751490481639393187762490765890011832391238741761816790948994249914463348700536058885782821388002147729398980192471008401316475036347639338209674900671434052456273111850016826219074019158674723266979018917414812856252717391285504226739265231048996532554401825306628761793777377609650033293884551542388289056086767084765541816338046100468130348971376893275813666663141198161651962873431742053000805708826348546225488166805645576280197381368726616083872803738416386660090725870640770841384862404650834222779943340860898323819364873468672919928341230916388106083887901430078327464402774599539376115943387967621578023747516894195769457151820888385173808789696192636277482473346841364573174696922095816672644861061716645921982727738504076139380822061672157487081657386689408150994232194872368271171145598119801129034505083670261033060010975406026715977099754825141001858478453640718364286667657077342949485275952184707816088247982182077679136039096125536653590823660212169249200680895018118969256064217454269395885852350128570368271796892768516220103176520113327743633448526194547693614930737307073242151626745849915596046202199976201827811721877732241329264778937148995939014318951598702378321963540934011057903699439747720573028931382230969128989309035662278721060494947944867392485439948465825903407497511513789438705155940215281590898202684808664226295927914159751574702580229547306938139019432925925279256892918039449166374249492510208427689053327295517485429139848823634815025128946541749477109848716853274628167213560525520839192360665993492765854091655859827706517226653773745642337477211957173134366960033105531874995161971372276242112726327614588479187895744271324790741352188549093692819376893959182567198799127012770000710644760532536468936594960196412178874734988516950716942588315546297752287116134771644443295392736438230782891008885781067552995762664591013184580184219950049582738545301749441275460267553408233050922769198870200796954008909360606046747831610775437334584073504751100780451190084294965408439951029051101263356553364752572317950263660753121308812011851478413576266369707399405116100292297178364013618829592958783488848920557680827787542997081693374041079264686019924886989713512221741953963522632043999390952915111994179888010564777453137757836947344915101029523202459238700494605717989910146589121496620504483138171250727865554919110765384969160224823800261869920390802812099067123397119450949741528252652383052768492653343446742099088928310799641673319879072594019920355365978290353303524754287499143131181667238957445269869083191291674112330375641115031925523973659382395906301558362630796957366806116422867735054381977057656243612257739027421629008483559301940954065006945447265645794055088942554941611748121486836323892079230559224184798259328507696011271314372812249625843643220895461272435489382297483509743385877786931235183373458454551351982649732493767554337879793343369140943047109172503991700732351695207693758329234624669174757089407278392859516784469757409023627908681132439051908502916198067073095449316251539774673821799507334903015578010685765244373500610749946027203916759183592899111901999345606179537765307754789476310646924040757288308913438134154966029402021760542792553356631829232355551882954806118447009192782083252749463312113151924038402300687768177657113553535499575313851884107049089367003225130273171830740172672152501405073212339129864382795035448274699854422514170556640339853887470192748577501396494943300448666606388618275529539197647094811749172824202547794480023874428436601021366467420430242875246266812560242863923612762772650348771512242678714996733640690562355062321540547718209417076308699786048399845307028640583160314176742933713735158756021344859220649201380748894780931318862268394792436377461130253008950487575428030887134092997109667619964399999045110850371497954893958081687618253459735765891908267527550375818987333311244775495065997605203202083029278075740185397140281384714247834644726335137425241119322286961265188568007576616579201637044584980122718438457183479613570446257810431174537895227062859450953873592218497226182229124787571243324559123179989715214134471940970026947840658747852899357988628475430481929624185347510167928173497192641397133250969151630698814436808115584341471405514735669249585741028604103310051708326720794442510735869790712586009023611571408408302884050124021076594577525661205638497182761669201418343776464065952788682671669831581081950750896510973118724255784041748331102067345457461435837913421878253650363403909822824309871563281811390749389450077059213660907121499782585939484659530460171311310331812759973077005793806695998167551593519175744671048845825798260516624817447591537292530693732155683229438858418486482799832241464266437571254783416569668732955841255566106936278656121626037650940077566820913113139540180415965058211416739624250846803455341107326568125674112745915998051857112053416658694227740367275404677327829633300824029078222536221299360244043272846292689763561378501322587675371800367691895808567244392794998117866342231785354946534543383645067887483281160512162171973649763817839674737093580360540119922722533587897492529823354988889596832086398296344705093271051462689241900552807063622500110405909156245232638085547441568735935682720544992610441101072022878350271709877919831531961169120138316283090136158782416714013069998004573122555100510409203677461561896605681266916767132808858423292991250677060679137864611785757585508537220506028316947048519443830383717393978286060594276775634625743740529860231517385364274729971086360491321089202953978860161155789593520668822842163896068611705613099831090441395855399290672431381369561361437734031415870952152467597790327540439291816842419994787406239756502573912711831051629074779031040374795388893061812567409603403603356962653950420686456186779861190650642390788456761535821949647116661189679615857118605617021088189025482233531925627177369570772321311991347874425825965966606644382515482828541357479722936425216962635370399496144352588304713529150622141787836173352543089215289164834245926911537469921749115029612841027937576427422301752228527839037790054955277178401945744556095633134358550710060325384174351312535657651656914510169439811319955369086340394556879639426156133509739335810522436865446089814260545025727953828939035573237549683506035031647031302581816184751584957286454820411073772869978975151362352229016321706184426166814612423387600916675055453870906622779751247383821350417342511805010150597174753812166341339126789806193810366764682724593753214293387464949375391175432207776689660329496920572707660693453175077416191219240947483313975612836704414158537902338663014581135027545298592722268894978777133607211222788409318139943315198530389536986375326988405530692028716690295945039494959053911582665880761856878606834049800836720657297310278488804016940803869193911443892616097247135463960385551900654634383958255134357693669117115817069406630156348801067976650874426490917922273109510862081346756991655461874293938927820475545500500436862384108137789817948773507089902203735778212143812797254940603429532476507012701052774360648689323326084682754288132958229648082341592743463862010731433163763387916374503966883175973842755067327857058060635284784639157940864879555307065600623593362291897849235553444720029812089720055608179910229845572552885470350106034136883221751972801806299636675362621210921450771607326969761245947184186195693622808355725787576632198487389939545328947470787075233007666447519352432692809106021371437678030490674903749940142939056051737823970928645350503447638330658080850250716929686380575996256728234334788184934569028717678504584545777791724589529053620952766675024556598603096413426771277834365565845783025206740232113127134477144131001138920087347534721890493380359006333309278582531070797675494693520279446096869160376896561896020502135040705414531445645129876919094588877177985336429250453857592409658562764995211636708188245899940554883022962403194149470043488023714337552019045324975242045074329361979596196248244651720966509492022365297911437232061094378597745810246363138083938116989010169409657033885681163134486382655494883052328441605358924358795508984367382361768007509144574262618616019532223326306976767656985184262029138137964850255075337143366392486460555379338738696858550954659950933017089121191446762658893093354208293296927228074200933493668725991468611895436916191775131073639701007906848842845003667602221617534970393073312317649637866497445064991830463695176153541303831424032431645697633856953870029971192987686691009828545420563722911440792750601350737349958072778423563117743574609992940868902085180817238282508082806260388653446108743676337527105152828134455071154737647022996278929002461468358214214820433051628469696583915870308661431026305882471577532365106074249844890603092423107071033989418295352604515134312515896502146043425119181955945417562281427372906002473863074369216267420137934260712084998232845177749943070835723399559409816041106711438531734877721935793914257109359696280466185176616472511245933237894624128558834131725173023807435791662420557723111551059500666566462713625959234744469653460203249229888202879212039971039779524395277532607926604636682054358734240118291323875626887567639628753243941938810521875377659241523609463338119989959420505974171665264028946485449593262390295885261076392739367163035503443127958116405399379316844185754994781134107400080502677795032723640881988344181213284181674919581509474212712239898649470034299642626975052553662341170589145441095153797182294605584767603177553073936928212635525764073535867176821304967545819411065104712813685215598402967891449209097619894516888549187845053370284078011159091066665015319475207248345445124187858432807387397911297833759079820673256583604780738905748986159970554409497291047509476649911503439786942168834946686172676124877506439340617729607335657440547347753729995767340381143831088710696110546313046116767017990145014752996879728823739555681994651878641671652424966699751798108622176138956936691615215414547768670230200731201562350241565918382493427885575693265133517866077269744830046794053928879944930906053627551276557438978018421440035276370586776305697799701526880757600631337807391555767380908335667502897737127615108529465966954987132566128081714502517638469190190818413439392142961590958706305491816952959102095133249957920118788446106430916384580825614117022913487682847298018197348501224369744585914548311889278256715767193765820018361153235308845499397398634297884334097118002202497410944570036254141450272063641916108605423243385018361186621372309220764893810318731850398568793083887385024447930435694210379498674630590441623277855421221133936956448092142266957951668501652567034690919527859488225804260010381188222275917213569155911798894617829905261854293759338715911377192901011622834773083899791094790244523376950871532351606905228557117801615570565444990709082899911441093323140673418237600701742952828794433936697270258914979431093302176373978566836833685370542681290747601463722118174668181620667778731968565965278304525976020444448435888901562819538260040405705917151697314983330481214702745929547249948315385573827938743878434335845600217156043057566773115578034609486091437274970151910448742186556748183951321465339537162686111267803078927397757809087231949464664177802665077815730476075545387951183623276717839014050083682384714715248060638453155421337833231282236634856959490325207531076934682354748890807151196715310692920453188207186094625572767412399859109512266094365627138293282936478879345884839455171037511471057717247839527187157278729783548156418701096027020920499968584188967863886061979369968533792748541243190891544382745121237223293739519613644647315786478986228118245343270221560753805131827065304609339311193845272357629706704606770859462328076713546138424425117076910962668302894892878292163778173058004282225275547156849395678266068442727676745749039779966960924678247170157984642644796125671168428145709707804896367671610335613183000562752895276395636434136663775172075688978489332368703919331158562582082586019700845547519746341491547702381315703680691335900561534035082527703041758942703978068617022636478440860569219435203289784515171301977385099942560689791748675102163847113742024180613218502839758757113326946768603346666392654682272611871418318572696477022922290603174352137417452063273525852418779401435676250489503032645224514571460448447235215393219754200672163539751686529938653163319317597804765457348453322834350790620288299966274074738760231675025677999763802820577018801835037211152911892046570441204891467888486818964705528740212206286309279012596884103293758518593186305524814507942312457411361395190817046903926559182468707405613902907848242252374333539293389209306266601629404928559907834358006809871753549125564244475466526184485247269793845417700724964339904999104477258224898910564083030306907059247338730207456612128887441111181180698452718213759500809176087379618061752561692294386499553798938107615641428374604899890872816729191285127451604740493472303982284770581560523329714054293836030964888041699869284530708648204473743192446843457683497869265597087676258007428629595911694912320668644372204075974541429351188466671505113046122113249695684926902104008668012760569352595551382819065326604220500643667448963624580982865622827393093329841598182558738953827118513667980459650117267592234890242446377860057645597291859889039111337343925551397344470005161837818193126192312688668800580554059413263765142403228665090776687698281669752296184996780828063965821110146297985651584323968013160201082064095363345221187289468048962637342911022337361319117788830493866771472459902482944144178564784481639338226709052562947758968376773282263372378912296283952752316900296665357368909597505053151924319449884317737052460256137183763981128803507880404146674842557505034411384249199069315489244755633282853630327645194503158063832912228537179370272746188789198389724170462885613510556957765006353488271527340132431366266661644482378958210627569406345783789303461960582623774784104870390260017412475765445083283740188709602228944457324010308539649804221289761308085080685618108281315310270663976378328232784658762480731672803088476110597728000026780063554512036507375034679749622640965986580035941644878551861784771703671839190738561860961319432521824301938298901919601035054433914201042348108851497475664019938187000257577229015857154524619458543773945113621200736026492006259319740443520716762069652000159901866725568835718285049941948524952083634128833993648693936012500044279689732006091057066659789446945096374022206468218772884467651136593425637293547241091795147452324851787506349337000613741963352540115342024385644394951393656717461332986357151748133099781732734678521808051608567454758938880315087856940806456885831048247293253708904028423624753760671731043750092525056278338146767071793996836131090929650268864817147904036061522957560927991096250394168561672394256319339547648594202534967785040886952872787137802170512454049978919326054756802969532294005011520066112817741140526401109974570850286327357915364816794416324356825478223175636453912523410148787473851033302856518159053433568241747890415460687558214154058061830114654664818983876881035000389693540585133760708869334047690306153691920326092172265900966605561230838491449770346768207783450113887907588428936310001828496561563413526913653169503069173248903490236173633364083250551752645690209029353683743263114090489598834559971830192509978933389835142763047597227275813966217470490678394332184694831369657673596071325731149760948065565760907007657411840711145691881933498332761878139782278795459981568696223593721541028626075584516443291503729987413092516395996255355538053144165277650463945115159594347218682006976708930646271395999017244577199002274516815741701373164728020496205817154430704377328044699426427798327624318265908714513917982258327488296628419836864832029674487391533634222930380647804504390135201892042148422339627965035386406592801159099135154236521551894621401302078421201809662743755499893992285431825608348739399995235201309839508036737523150260141212795795340720958584352748861443401680443151846968394261276289452737373006069289999186827889723481105966452567618313133195754335474967934862924889695492262618121500450972126911825258136764485885246974756509747565866153566442247392202190598893666974738304468112388734865338322900370381003179708595595139891819746014789296916630099849769724792629598214141208480150118480212899828981954146303921376101466848203763450972010570883613522891582953818741076798378164965600908764850990717043808450015805513849680251486796572033521988455371040568269550577310738016349761116566548862786319131196036248786430125651694099719317907528235105591745494023506923882949025479364266884352947594009193922305838502523870007638848085682014529810663836568326707455728984631514274808625484363040194837113763983289145570410443493176844335247289854751271093343922820434829456853644934909542220217308676004118914483340079137266062997600547902261007571089425865538832852648669226097431245646250955493640077564855859104775604813647664487298248402829281472025413408989162247638057081328358476916271379019493654489710813044262634257630283652875197783092901899831175079104351281623572588365632649184998947132213773186365409423020389730757975819117215553573904042255101490424512688746548867457265699797416436361270301776514875932750623990994310645396366733131879560628547459866327601745158989876136972905142478329263850235856703276069965736844278888238940421929303429187658638108114103808298837295610537313041357792626655480641953621455846657440511494057107493167360473769505219345588531160317503520945808214595894684016660679980702463279714038840113628702249280006673453804367777708376024580645580881079967825920204975158165345708248792819241248627555348306343321539079191632501953731130688196141969203320338191479403257597364258263708721696400694473338806427769028770501007756262570924164619851721557490726202554159971839847763333636486710612154670213457912780037003622486746063340221711180862545809869257583456313767867987205904060587215380872302103751136405479757576902247358270755758894234483390460372351409676403157565311899969730324833502597369621783491885254409952342422521903922571956948135707115186568954844263375181447583815639720166211597881526460459012320255461837652887139150138276690219394494307908362322141443985530161785030097954462033172475383767872068037338843638377666519707374221644052038757172291514384527308023767743219488738897321674703253518448062369286877231532133177761277003552535821078686263970017896875361975666433953956481654364361398746903237925408379403990554925529839193362932629819750170718095959948816896900762623472440414241313956605767530962204872727268981846462691714227658703529970706766656392372258092013823654153016332820337658934731264550519851349743998279073072080746239735359188406897276706749308604361518930331517622663177163394484156936133396291671606667561779250435754730071450869167157146732479700506196658218233431371755970992559869165890596607212117715616870571719376116493486642355035232663044760263171338467192439680253595741240720817038238520825885192112069825011122220579154760362728450031532415993327549332403090230322086011536508174726947884175706386394338868062761005297058323727366750599867967878737610831225143823937706644100209298832621851900823052719514225277796087366248183907637982951465746877324170131099917342314925650122330299394349714686759985151329096557205846112792150607699662430669372187906013368149406935317804206177849542643591752964882894983785201446374222969730528141296695536814571662616976239611207433275600948822433973538234824656396701588439806786972446692279701354698454633038676732388820477106011078619133929302077131935996065572556383075545739499725419752823885028735312283845990122001930863183978837474394721140329374421094876572433281542238483904518190011718286900813077979475086983057632110798693537875566111925110175887746251238053318915914696830973375965390673805276017246024166571540125114842241286460775379385518072904156515626347130190696835792694590943840382110606031465335831327329539435912873172806676591397628766067425978340480482687672871189115962443670561864652892555515055162643793274914666488157876076201248561706597049459119228090723758856087166842237038601901617859253633881379939322499313446543285969770290196227254748764253765087464371825013562529600383657707913630322820693063264082821941971449529621317378506279018121916346108028058488939195980616254997452544394499551565710633548220607785716178682431339562005137936926842240063964884114312358101188748895637414874166554610214482026467752070672179595061328002407582175201508169397564318517174331083499919667810515416490851399315898014927731351934779405217651445217530089491802371650748350374250309760378410045008555166357553910149380247487023389998770133649249061911717431739788854814729091928032229893793608914058376919739719840035964265306061080261269058782122246482543633270846438666286909205744779496032351856978037550492789680791056033881780102125801169635710394959392490482203051999546468698356897601030321718097709351488537340789589653992664458444354812329477339118929137453843058677446247288290695197231475792211681406344879009711185127123298900401507387658216362529462377960722454392315658121001198028978642186467858891390398446859639499793541554012341226213207695291968434763960368643739238640487571458439217471222985881052855439252797833826729107634103621784472354941244562569251415839304728427252834905622615098264970556460367781376243082480878844237697350098547595937637401472579440443953766565791279057456271650135666735211772290345951229194630773352835240873581296632035525961646529628748552720216366869116798794725118829855276364601667455261229267153641448282198148497505619917866320855810783156481005822451940443975602775629019971025881684750105314965725249034830150146352081813440178418292249299517847484566903942592274128240446869822894587821879870892829697389621977981862408715717207229637058103177350333944649453759894042813057521470914803736406415852798863832451530130259241055672455149286922540252992162533195629788327362392431281007382759147281536889347141096146874588283063222213379224791594359780110231374655724071865082156409004880298727684452594179175853717296422822117808221156201707235041742931517446138793150790269249747995914330670864697168423719485413645288351236835022751782509091449381588979746174214317233055960268420275570473534255156574826527672938757417675534805696405654589878331995880572779015354857426699380158782645588739054446955726146718837669974584023148522935960616547368626848161061837297545007105716298740184760864673964304919047994281297924030737493804037001024325564739646872699763129954914219208664064465635160287715472143665514233271358753650549222336418679816901434203906540783566738235696928129821708685652682590521278084807819345305462221192012196227607942221982101749630027014011640073475672175082239515757504865461932241013776244572793614158262521784610128278714905113703771340558005769354695001222701933083994664667679160116285281133564712951915278268617711476648609513952396118559032836742510360610989466151042858551655467070286660803030860561888586446732734072218869385602768714086610583006361075625691748060847785411870443320126857573311224094645697505459269188085213415921226597022827248044095990524143875813618866935238386077675572291833202545147165745558361442961702060431474480092040832416925475856242220215059095249383629634262902557790203757823960764507631717745979747279244256590701903325250943340300916107612190588061971372618680481532753735281803624312644903664460581584108126340859032379951230719461018874213711875176209262446848932149434741771178503604077693940938339456145497297496609376504085064824657729606728591857167019832615269833608620932785911838029808626830720743896268789024405202520897099045569419596154381694093179601625228438963850631390327149673701688556505573631169649374465061121623496623455730260504556953174300752753546308952765411821991848351496990709323393940397027646694590937224793275970726374349116620289984524326954371652904848537367530558817974514343124045771776492510550520944246304104922504941287156623212989061046842455589885950021706281641735384765352213197682575416146375309064061574850536821110704810945698486471477509424357497488649167390487303649176159292887534327516271262290411732913223438525640330564062820680039999593105167385432913929432736783825134049384769636942848802729104543587667653103930076747662109123471790333352025796975642443411088258909483636281289299643842699098458090226440491836639954005190325995731061463366643052869235589690952058594038278356011369378511691380298028347985476953669692019430472082263169865000249576278833876228897147287758357091203275682182525852879951416316307784912509646279441407481277991116612827161083850668377216228576308220932062472402650427337098393698950612538730126328301298603294463655369017886362939126509023638386865998135171165121886796802120506647782396764169657130864855964453093716494232720595133042659308053295013589970704183884683796776690517644884568570947792854740288992851931413978970383920173349322621939948246722794514018895080226603021959139964667159609434582013906647666460836749464801020553240729983105605674823456846698338864827782559238967061915289762735158323783410580441586014947996169411827511858660351097377987440556110747462067386824198860548415005887829420585332292406244337935209146977039650848219149781504647862307805526726252904405824811105393264457821818185833499582370641128978072371074416226923912291680967742037471845510197217561029368590440869766850650412635882229637572181568436460176601256654494178409525207229220692050791682343584991567808243024494690485448154749806086220029554491817050530815487462653115265516792902199433871819321035771377157090556260198617226241468580718250878138557634014774004280518304960969303699833145343966708216897285443680703797496887225066770711808934946485543216610648911972926670596912788018104080123940674458897899069532473048154175527334640168660349860648211847133904358210335019197904500749824214409040206985970414069756337593944581574505391295587677637019800257305102246901394521965275127703800756461287877567125144394309383386436549481017587834277526894739856144951144873673840008198719369856145333694030780594883671660754487072556870847274174461402710672188414724987885594595297558654495379016805387306294458547454043958131665248805028207098574481225931248303762956639589435379162688291567869257491497995396005054519583630953461566987196076577545010134320398374757257365104476333804676128539963838180928029242376121889601677494016470794513038626027132965790048619423480960261621317644579232910510123212168999049601931399320776808086278858262368451007626315269782970906932165384030882056111669018792245112769928903306427654888129515658545130226126044971866892717725782006184430548806093809365800195922326813450954885201788986546390456987849323498570582466666120632414106256393708609289428950451373742352510199764274982064438475106332935886749209679831016179044095003642316649245604396265203617300821637163447120651828035874939032093231487727364286582954009837807641615124145358706924698633363381578002270237809079679902033899115842829213687247121244084345965964409703801179900414143541443249105061084252484817885229503646123020058873085921714231942441050836924828566756469712561887979529790716812405424340165502228172157228190059321415141319639712813140571660974516442034594868523652748099968836541046822776903990857816948824625471205349584615641987319600133484665313958918286147385518408869143691710571954008948407297895354492010857489417751282164247042770223843049501536411669650048907601300854535380171524376881532963183570690635203030628769229806584201564007566981219917248378166605005254899249111664483935277126665356258375064368660768311863041593154294916830824371099309937122108810829547560964654851562999525839383376116725749645832459285484733106127136969757128764435719520037273821095530318723930899933761603669758824170395821540653550853924103249217603089660501440044943832440021453839664012888716061052258963036442154517236261465136166709095133827518448283828384551871394186950954988723898993920636707743503859179242377941351534900839902118873748210910134508927835128756345122796608587197897681245834219198820366549353118510019510529631060182206312996403785310246677631050660403824652276908502945652036559269937069027150427776132173805965859636668777267055988137222347653757597741678769798572454410637641441014188391586236406711447852924694653211059891219196278305959643840831079004962239063136383854897414258732551451434173033133347767960209583047727196102118520224682472260237573132008018120526715272374460405255526985954615211578412344131456161506021297869712353136318809534388228473241576972581601210683297929235732792240967427922656287950807770349657866810284564995508949408495991764719636864000025548536011357044623817902767415453276855135813190894102816125320071026804670066777588242459240704507366789298147997604290692278445420731442071530524818696147594242432591512313361160808697228021519602974426346279223606709549484674583076166623160360440296173545647695160267564411043866493679117926433479528210000724744422870983867057474914543810906104994299959073701699749643979707693726742062278118315289837124042703695707494600375351851687914265100469961404787364611342703398068118667317295459381927360877243609868909840560616725808976844869795613801495059907184643723369660130947729938527634090852991838491175127673761681433962094901929400256017231462727166761526715085064048195167859403068135671951302468141974700738696416838555611775078588057509853194311325902691549330474227921115323714098447966813572003729733450625312391725213430123028490024936343071978055665783447648638471421412254309238529473442539927683299727457593547140422824889936580113558418489327015826561233353524165051368621042409264530774127011903372946300363678836448151703613299813996782646094009078824363203593441315435089453022180161770178454478810443280872386607826903424398000984268559639072650971986206649736471243752555631189023443283729390370608403184898993604189923819528186201874331059102705778724357998178648403069854723563479933455754365352456400876391658699741441521250843459946866067745039730750113075347814332975170399545429883713963134049577135673251043842386752991032999600899456534007571059330353415187698340908372238757372372772450071680746635224402822119057012986462841634510061387363807543068959856228018443016822342863856727989089318746177184919848711464298351270957361963841884992084610294014432127567408630033477219166533639260183786500909568307312623645273318568886254143257952044312785782112980283378145951621626257275266132682410005659091007539379627594713081741886002681989144351797435627596149054600247998316729190130836910907675315394705336294357458215145938077126133893053956581358806447751082231290783903331382615346363765892729838221221210691903471575843448128628915900032655511958071517913591069963149712597545718250229819840427261677205125413704341010894158914426529602912625569334192415473661046212911065853040707613228110614385216353144182799696955893096039785091699975927899547579544910199396290530872378286283350837673370145533372296672346119381085418198065471406378054037238484506424616779023803798973304220839194537660815137734671670557390912847943033682356279868436051041337282172182683051742659161711179486944648217468256046602435472347856435325697787910953205860202709415668318110577617478255331101103168070229349459921809438379159330581111961797785128986616629170745585225545652097091635062711455962560960813348548465197790682496249380293468926260113707514915981319206733986230243719740121190562793612937016385663260025717976884330245389197650009582914705398614332145355482496486118914534567447871615977673993242498865116405127055997532971443741352445337509717956260175042227205475922429599478381341402962932279905780408032211082159197212943998695199493515255322469112382102689029754770573780359490228000424809806810970252011389780146925345802078261667330675301220905481706259503012366562597799794704257724077453634873228178658305307012968883251526860343672521754123371499153455094550660068426117258281530859359883402225798031781520474261307359420428737871728466265454027839927213415716436218452389949111686459976525951417585924962545150651736188851763447422668684927639258717140019671355411856258274051135201458683433687484384120915129532700580051549701850684042054338930672073190803628626564628769890040583874895893081458413057240646029763329529793142946660796489729287401150648890151079700113079262259182533305756329958463993482889583476903345023365977817586547440213434981011104031142564845037100201970654994791164540453914458178753876494935899840202581269602366685460217037449152616687297881247267659453253615207478416571616431247119924386007142302044376941754789274935759742375927937967473433469499933402004825012890104964392701116841085550992984049365635900177259457536486603577147081995029442747513436155493214489211178231846289447064937055801532201063371886079132601685934612300079489255519315177298979880281585432311484122888075964719958725465430761553126327033054830068976070247849915162095691857434430829059097006963781399620965369141045904793188414520662023315361925549577757492117123373812783048522054679925468047999082023024680457658590943410576104276530819648238699017729146783590617630786154448022973226491884977263157468251080402302775944081935926552852292464126549537149596532991373109014406451978959979443300435471527916111465071601651701839178802222333625860762655603388386460700851302654944774650316034756252631799561583457419177201576786993673708020168844304791438845241205902213458459508288513586565412144912369709286603201040642710480157138005924583287690968401157729555434114261258068063424222807004013389884769065233599390449552447211484378662022337212809656387856795572982597424535031827569589989775826242023005408005351347436402859188028574033600735856350365100146680040752668391354684381060051001537055015098662385158882331147779513122228088655150875685128998995574563142203837274553265718544589144861031040037129650037604499839753423375347475175341578355659575277363313451999097664620130676912011066793274387926397443192551700094487566138858750462973376529714575486691106315896921542228373019432841143843812707544615159101602503626290933521236371094645266050317612556834040735870781357991296786492151954838705221329215964353558672025759474178917659729842915036714270397202590534253317809449058865820372399346468863628430701953073419789376375827747908194068138686892796007162216950940087838983771317227159480390270181228587886874379864863526939680527014685405090343816700337474091440215983638751453474927750439438913717357475649573809819144860224127506115139609548446043512222681070845117157155978240619521312284553993534636297451068486377049976410105229487840465272357193694271354926454386766797802268030842469861708118534793423338182924998048785136004553119614305228838501954251367138349025449185028633750395590507701972618203940070560460554820358961951277814058063527524081205649993951606894345738239198981015020148895528416227349182216100225123053470411189435342827146820647613137460461962689860142030516677626598166682459898479186994833322400709856143439606966840058326204471217980730559407569059097168804112343702333561814007615157088960044393810296758412351860552845174228041519344194252624905818379390344924894620319110796748922397018654735739481958424664942627161203766583226123634617957917693869865131053870422190573971692993754822170958744082790211713252056358455955677866708152606113562888300319824262976556181608201159588763764264080550617102264121125516411577138161256417182729345782312491149279034156451826295151200300084680334613955587754608457657991463708656167715875501095622588072995128706545581478607135730624101331865954856703125208123001617800992304602816013230490966803913094867043169227528379126751611626642596476257256902714440504730061817996039957917178513428100573221379556887602603684834178222498488423547288946096271412105783955960441941637877799624563624914977391657878556463160380487698059800372804786383351876069108513097890539136760932255495139041537274310027705314011005504099701604388060773100484586130103728356120009565577366971196448551376279687423441389907486075532114806314450826111390707277381707064739584896907730951673872835512943392533839934105986126294516135571288056370946067425328328991847691855254751984246763918933169196180958317322403020834350832964103562671547898209951152409159725781445434017458246291995629802746199277908023233526234862736945851960686080395615002460442443996833740744680783410733654286467584626586318415521901852115841955935857772561866515808068718105639169458583340194497099101295802942335598340459318477183470451713527186709555991961382321671005411842353763309218015381888003544465692345087871624279237152660608522660265491429026895146669110535073702875553754669212223237074054723922101093306658153487470762264424885369427521389596877831517341326693364779728022043673308906574846774074129600322406421674764030057121223766333659584461855887007523981685020548520749132401014524051841853064638345859708392328609935633443776355321464785398175324575315977300750143446482617352614039599957903706999070399362641487798486089527334029698485155890779953102777427934001854716470412278374067090007600981005338428437134648844515329232464202574192954281411909154681227398054551294691569913376022140763283695019369908498423815642262562110268473733576068462114848458236025461377128112624452305005143213130186013959600056946644055644398444269597695161921132611178634576649107125175136301436012303517589684834291237947573783909859755008309174484861471413111508070752082774652793434186700815044449823793254001690850958435004163326916127841523416611459883892535011465733506077737683425008873705786206546592255811098403123398088874859807209123349567588119365032857139013001552289855004151086881977940681840631781063765366026584859169639981470178496384149122304487720214006781370071181213066440730221184561173241197912371702408759878998734016220046072282739515403091421112846626637031912347648485557224019883320317418662433556106651041058638174904458326639408143241466003977218236424018050512818309117978904530248365409710410652155688157704090292844804251316041923329663960694794686707651797682038629112745624676910689319437765127181890955239039797198208751769176195911799539644188705870799741319969161955413511849573921270616372202321385359056590950798234493340806790872944035421456058436977333233428737652127459390914498193348298120281945865617339927498084959553871766836640896265596235287604681466547546864657452892984815624820376385072433978146527382599895000799644429004084244754308026484640779201692261722288912002607251540914809553099737625414642586724553241650259868534153991136698469426397188514478612476164722069638205318703310374310212724747547094802121430297255399189815366715126980732423635187028968351826248547217608990937581912959095531645018331387359765930806837831378783021329580428685809091856712533845502344776121058698283807975891158949946109800687143667517642254860586921813124081939127748794052972405688814879443986827776616719227199699586076996173670743003468981807351227680906260169065923672128954576802877012387810682042468845814887458056409654947816081111217776438290529109182063502223712169576520543963143093941240278457581244502837639562132414677998999397175585170455515773875468494258861508919212937336877026602957674016380023014832545771995927941144698613253255390656754738398695151178062615131602020593449326362687803322117745006893149661027023838222564571296467672147521478737673099492782428289651942867663837044518920925454896023324694408821960979803270593351060584779685489584606375096527767954707969385242741966876517384643210156180325931898246597050905919512605715962667188539544514088051175397017703130095979387384088570495546520878332629996052263124065606737226794016633230917223434878535718718768989422743420331891085862023903400172342333438578963785831792118863905659749885502202510562269539430031125539026286186896231337678187450683005340607012657746436043860422711547480158688092337911004355475532754778825146552056963247203630431984201024495724640615452789545268810854809342107375094550006502110813816521110319504778700573430146326257783482308918066234013588065293503399968469391422448273789527980530844987599741304066714518916237091719878377223044332588543936194015166970771752100578626883538307786083464924125718863796803982717129951114297066598876009091249329863203359051678130776198224968355056198860652932690852928061800721521395002500702306230709122454596674662001354335548211694079050020157655195877836164282862045261733593120648555801981935784750257123236496205836601556930753196123993914825725583427624477165576222097815943680071698948962096149639994130297637556511538877866376102980112101344214670359292730102603628682679469348882278387721346089477574817933367815288678475820765472491202091900687387459884027572932546045037205636324541270541640845343522241829427464806381157326199879501301221392007400603320633752579371095719437041793746774582652170081120654206760656894692190313203260548743318464737580695376093361839655942911623459838487252376644754741771882842795999031052790400931427072755719335956191533838960082503461314810355170169231520006224962999605891868616099969095561545196375937384665497850102402962329779234385948332434397598846521801851649214618666582755210589945963302753800245926084557213473572789857371311011104697719025307823918606677930867723453660918727198336422364186257336225101472125906907483138559034468528837867330744264086472838485843027263055794780895335841296505420571747053784868590443831751212730992237374966325123365343952091309031244052326292232132233193208980390567551761457674576321334561019923047079846682000714763836612850187591666038090725127250973239076361650814456219078827269092812959918949791618836658054066436833321861249659538967116302648003988800592426023178236351168810917481182286299758935087694214198861686881263878269514682397359825459824682395842219729335000370858962152232113000176089408922206661788851816355789243188910864557052117397866551257123871366602924122517281639586049380141585754344368323352111251123170255393381418762988705310734744712310968629046569213915465394066599977690227203663621574047516499718539237302137448432535071339753189626313790422192597252912370088093155387294350460957964925930857142846010661329860737309132479264768300352068266285259711388871699262528080331831290636065082312863036861845143312854223000126286843190278846325136133059999647887653977899709606069595521618987410659485085057547881018798591536964708080290748823097467811632807058384484972487778684572134548032593807305152677328991049477076590939013345504884666797948491841859401349356045899133476471996433373336159028170986570080418148210408423130818328613957855127784166028690460174342633319508910119204400370722780856375735601686493596772475745135932358616355486427179233819304191052630789726464449952225129949510651940431680229386559026907347543181762627445574763908537368842984641241548285489026967030909104688501800662860152509422426194561576590233493148174415680844446761871709189869085204240966632546686750607577332852564722653921805117071159205066143406195979484038671190296397261999829438588768841111417372305523271167429746118762254548508053120743361436266324892628903926262942625190144054671446884025363457753338002368254924166342456377312002048255571878573536266424050044237878261484183664343139585310104102967065369424547811921607213853189766181188014720225671763961573099725495438524174894292951845335162971440947599298633766198992270436547746376646212101388910563418210556905398018418769691943491576828000998256572955723786659192900750913942164787695811600649162253200556008229742819495456344875451029294791442567186224386239946317011441703544331367912797785521473656568747855436449856505653536845188551992362921985764212616951778526010284714215545132325098890704655605775326462990663564276654930156467800010327453046547532277248449249975352078834217897775179440038307241511683343847666367693419204520457755592335894011306601434014369839406915760535390792839943285464561095406448343024703744913959885587800297877875402683667644027119068121272700503889583494526093035461349394832786976125124952412539127752497161682826390368420016012772741796927260657414267802529517157401486001232128679469895686388553688419120943955607113740167629706024697730141765891437743445058700617956402173046171789596692691778165817589771208461974099252838515541664409616327332084766613950171331616284382903497875018568866150702260862960086230806814938743711431882077880372138875059674330961971383041951456918288299896754043748770074200416911755229846616048993960192421065743049302731055674381592870495701826304068554398665205133560250579308194940922025326982961487291887460165170191018429570425753370238361869553327582151394189197617148342782671504594876702419938131485090878869886961685793332490975857576425778223774922989183343889542470962062540397283184988984428574226635804836324919301591300648670448150860242143538609937826600197500835716004971840877215440698467825511840972618047471248955315726752816533266517156521034641013606278647929243737391180244544070697134081294520083634144779703942821504487539015472573941058172317959716043248856601876027905585595884398989246216431011650302253291739076178206015839379321562686303013232061247269704789738226678901303919930471722401669932572637260194623325939852814716892593599635609982541725490113204676829025934196660217604598053117011957014145048303480034579963850946725267351918428142727242964189934664865924920213898158961349374880951854660354021769251296359290567532332478318653914393619353735746860648637406661174439383075667032175849080524566987548105495319156659651111556877992056420131340180228408166168246599212788690484797108297009042617085550337955625608705753521699860098297496756872623695133606302045365167342676528128560187063511916111054268279355270962464790576945060254045015293970698905352454554914320922079822852305758869116043198327554023867203331190679560177262883196814308470366701531835789226944042544647505235178600037441400054462244351416029505750343213056451673163799491586287858250638652082469735544337006758054251055218265868291439659177107039103938068491439892930085503678714991247074586797985485490989012558021273029156731112511102554400150241727761371455666510251091937174935307084294066203943806448843555570415017896691734580400149560051537710797794657475236185360528884346594064135916058787093726411878359712991454845056153197712634741940125897933333879667996207590941325855443792148184416699506233497743932719935673472319962794367655560689570181020079040845391799906229654427722521965595438140386462650056173733337660963423015547228418659793370315748071746598618421632350848539099817385233072567494119662864645887938676810146514279963408465709858018089549647256051244679336553808867034457705266175098319118539473587169606312922213665433007195013173150195784885852411794801507856180338046024140889720856686808610693764694021039000067628576556610199446068052733968691406295184075118250627438618180056018210243538185105269517037647230227886529184949286291994883656803307840703328888620784767462817374436711594317933830959216720118998286672242849783314124504179292391387244282357069796435996143105693979788249064566033518333255803331937720378969396683507925699599108229366790772943271745880777632373240064209354829203661358718483402029719598204184913324018506815529015128498633935993260943802911148687797258280511449392080030183625547357167981637041826050883545454029112209438729344985552550871379976405187083992616026704852704338774268028573320562229319679140968383234071206788939078714392582042616009827701995259657783866970544810994228865623951452773972412158703465252718894754970246615386028464738458563011881794582602613620086533340075427392510068585312815046991301828686199639385293016982437159048602981246836224541669348983977204725768236056225790080795909377678326112439679750740935432533829331867470857965762202831699916717986115966406720278913735704047527992799929875065548577137087716782037294279037231716367148299968306820719432218719317097989321830442899426369423706379053492932804318056694010033799240976259001164405141866157719313463253559149336029700049447641518759643432477705784952251632236670375247181919890236467710383864237214275426020240917453423957072593544244703913859201420726061557336735321247002206706475851204026723862484136998005297287820826939528242238907118178341143139318540384092767905614522539751080469658350862545058792801001331230293166312636391729082777414852443447811557535197568692470483359664732118977648942568708660752263728341055149748966613311698518629512196157389548468435054360658317321346598553181386719810457905462488521919720480338164894888846231403293703129615260705451177260833610439469060990366535527908779424293400881479515254812256246329272059991165330516546080743672686353467982797228608938725700025187788703516713969655676515352287077128848576832359273185012475236581639867499943758987076010393778708166430793387139811245384652014132413727130739779050664459093982758216584924187293292549880443158886671066846493723275242459180007270409062878642489969034432110469243393306765573107343743998992361661414329480469703424462682912975949619754632834868022447546955705277355185485309134553415857665506236007960877196192850167390174755624280446411020032661141301343053119765651480070996982704329705650224298497033034722509831645535741587137282177393476655599189699245022628450257080177484067893324188681826200599445826708017178857431878384284414805099858442596116193984170434973424244064723134057085050768219689408052044336035478462014773708198233116524216018594321352876215757609108231255043060381195626898515502017428306091946645687327210264050345030712857687423366465941105598768782115793397115225086408007069982722189426368481804434252569687954105692006460021770541272091026004594103600739136700436986534187590026517589696923101915008047532158575831725192260808578115903142446896080095766793068849318181553585097396373040188900893864196877105838151561934118446323340944932460122066698828328415390775275805005869260287497136814401519200401073132043154834552048086351592942304623463326258380548138821335314408059194232340979243397449257867329334970411121778878761033772276413182056831881275144404981346685106253039756819640537409928759329651968358334314368385541320769039374794174348809682476325400536429925030171567713149142165241701598848482254522500640820392320847536254990687195675616750004185048620494815433168036410498374931974179285806014362254408081284700666465542605050954102932106669320823055919849396709886356253017809876030704044615264933832372763390885062015050869452635330841190833021426758377938119455140719844383721902000255936318394851469916011164715209374432744124401401451345009509525759081690060206374667066511939510835417955380086834424900671782043774226156474710088124540065566000908186481759890971152215528932613952044286262574238292452167986933669677531421784107125129534715185661723196859715165535336636556740914309058106758898314471575939619215400893940858807754352570024119294000418014925835511269144841084646816571992655384484979904818635663746199298721204796145214543208018527971921993691908550379459102189423150631931254836113137492543230462051786528048682047102378381703522403367768007602170143188942480537310142585229819072201191214396400956020625333748688756868333858953351880291909776187237735385158784245545323357010582872652416402197614030098392828142103589684264441944680999127133117159792452865709228459499550461630583640695080829581789897081566806094522226672726226711862817225223607904933749389314979152951262209163842088268459555470913593547520513024541319858074891599795075582960208046085979169821156215440368935549072701731942594221086322973532312055188340168229822621033316859727245544843527215406979158191215099222469562837435491268598226739752352185867395117331599200196102182013484054090757742865508299646768735907173787920660695075346172821938166983958737672829975467055950523889452585371248433514487083665934147720350179662968346322751903213936995246603270411317379585536635803121483214257430887180216586339640112842394698530999175046473165262409047480916743707717632761485399360330790931193471081279702205908158698429953915421679385614285837353155770042870691390882331068910765834374112538824193611014718515312894979919681613563385633764104246193824599415776651669442099002222169083362841682055176552490301497474554579653459614767458997026426146978237742663186952804331717614233574578427041720571001719340177918506052159964973217679934404741749226099447585555477780978572087998910755637673219260740940540477295993385064040035350240543869980857578220399244333449411970424490710962293479368517841475601312972923841655435829510433682076583514189780065103262748311649141263088500986414425727050549158473972575352736365418483129966405446801368468787910745363579895045795758772064828060180500850117014834088936728881261880810717061567175885301421680212840384604769368147132340440460445655557907011089926754099979347051282464848130466825590827034710083589155979620604718707469094320086943512503586620236356455355008364056313895834839084530298004577272024186263827676710228936368703272401411652691828415831627815769649037866484700780336833880210213322412679654635687993708620292650779495383705342339707496698826204326031128000941302017746615349431699197282570335893467398505709787816580456368492303451236035848391466980485875837501675618026325664018810715608539481609700676263754964220974244210297717374083909918897167806804105599278891083368750140271670572824860467383003364382565457852313530529935211995227020634076521053328899217846340752904491092579457615487212453054306017602069355863157590853877873922603594981706086153365047668809802468697303444822614858565654911517304983881220626087169888596163802476818151875144349743468307222632230687672700832568550010422029629588357069522862539241605228806422079839764592023066584310905965274245795314107393032737410634316370205923083961244035511507551105739543853133371891305638525885361785328054165672845786757506952914952079223294085075442717958442788063203653732378581359299527674538431230876799750825717872207612344294503990366453923044946456023820854863880206813648215137275767294336969590607551280801567203437634787192687472620894528662738952586293277269156563216450145157591237379190385244976400860288061657803598055855078590843327142003590921134362744706432556349172198244167556562541149821202515200521640599096081945531789672276198820220233896121363392407975790098864916858349605360924598987265296505994055808612796476955692038007607305605958889024293567190808292561684013780797641354194580913024128986307209518048867568646199984661255033477803852482903517129167997815538674088586565692973833534534972253526346656447912147577907850739050829904623028022032827372326943086206297183645239027264097785585938696607216334702309799036347168378178983977477197120230195280915859654979142236713243354707550728044508740671570862612858709114815118271800879190237586210134068846587750974851511544423505125075421429367369771450761125227790276156814380024739829279632996777454603690276453140696544459208113948597074286066625959924645052464927260455224901688132908752740523156894583972247853614778130076402615981628601620687595998054971741697244170400059079630518287969454007282384904419786208505425651559329162079700234356562594756764412769945311138193326142739564726614557845974638181017521438746411970829879845496256838882150438415191869930386331587884301473839649146797076570631403057610397388681719229705406695532594561703052224102368639926484544949320740951221059525058270001828557061388305784919715511795985957018407490120240283524714669907922021867423333507091431383659066769902696764083602694067268669695899123100765547151806835552349525590058897845681124000827876466617745853585311571237898291140479231204191684600183314566562853873788247325219880976895957620001470347032270567509005413865176272992808383837397651792843008579656571015632528847086897299476550686773802625430995412508981875991239815546824893405942107138088342925483976190345147775032299467967602598866392413862540313490207353723946902697470394839031492784323426187646671509313033181471697868751773541243946720466249639789521116004637890597694064106547569756206008514558472610338576266937445847192117739418492219634653867999952550825664024392621536015705765199891797507193052813147651901783992338004487552762884316063484272423781277956952037768026591246062541986345185911844596150667219943950722121798324642167014186532492902413739468268532010123580347925603979964628469636976492761809161851223000147426021132552862472639383559456200635113584565472990043533074335090161054138910058211364734401995647547095882392014108208582189684832647930856409072608463621024127745046601500079194808553459818858502650607091196414213836830387166988917719442063034959799563721343632434953893325778980175376712649606903456514106403207771141235143059696166439995764304655499102638228947409626142263157319176593661868869827355075330106242027479066316432549801865198957471695205691646786222475468512497151310840424876030104652792746462089364170556533501291600556162816677765604324172412933741503441362945093153695760338026812880752939551042415191870262098835787166790341082973275773424060602867587987546251727689940588941405751542574049249733781378960822622267176799220441335840016091069258190671731025582419080447701259837205517398663746312167786274000900770627740579122939830280288998703685949415788738225089447454918221904346132203183342349990176411007698690793199461611779785874595372033585548740668810274168942351994719212958809087206335675887232244744452420504891345432283159239354662952527677113781538267069345857780887726476652874773115835265425050724061713581755183308280157828095683251117950692533314670575164840704596301862793779442002594624772054929410564926200622559961681384228329517218300789816240648098326905846692215736183870277568416551353891136603870621261681034337245648592044529719122024119539239910923825301385677359677641057374873259224222087565333069389780076544938507833788624438354628788332100629801703275902187445305625208431560569751627508499720644629869732105761191646521013907184268110968572662799356214153070267210228829696964753167015005062238701406361678760085460058095901664617065089836617286316912789984469545121924314259144431090111220234080114078931773899417922918345314968385114107968663766800515597918725966619925391042234375360783847325967228304509104225162123987849927325532507160386845185603685406366517026919711049712522844193935328129137654238752466470410608094439405332123919051990597121149625429248751054155114642778162585463147110119419808177379033059935594714864341609347599028777594371856117065552159458860923962691626478403639537871472256973657792115451026352353107600191243169385503608080317949897717956782308392614546972433048703690240163360483499716568917212462718322487713513442767996314164289224871812878867136455619500220753630600009020718738969000723220241341003310878546739578203986263679337182704933295727116443080781592639457703180393390905488040530095845798916812762720689395496036563067758904117431394540680893959821497587802502122138645948450299106647287994798756973994852845197185595854848360978222696839171184801651406485800989536787936698518254848185435533261275808464581708924603627584306182455930886751473039039193321697680086877654106318935084533081664834968882942975839808489454131688147166577813952530529086703125146738419072782360799483603172524666684790491782159775148623321331173946014382168434322597207330107671915343568600052957392795207360178819591950628887661314635063385610273427105153059917820516101272282294596155148519175881346928442909890600297667568926718652492290799061852121028287659575918402478544098305137049531003739321870196107086229401182427129682501954447248838606574609563123765529899727371912682198325008488305996539695179487499332994806530022005169703227494192307575789226231122424868567493734656368490848369882315648386980648723662192704059118997092113911540507264310149483487486362894234605188216182371597061708915863259234468111737628153830268568407269521617374486383875875717568375625458659044303568081065055903965473913246472518748939945692914803012440241180155041144328897233270505173831848194711971727620632867860333018446072997151833436248971075174352581395184247274938359829556851128324640024517276887145490834915059111179869593239494303296001579762877960378377547610273400858735866877848219413942992432779094283888349402142420158981984716034680670366713602602544983968791352067545455716097835369505364471585960016222915711328162974320031302781720569452525254873970629587321710086015393348476664348830212800499788424626523862110752509969610106375192371683364533665872571905512777004449076762218213746396516854001176560016885173800741539300070064497236709863863888167330807078940610103190836453998536239633634012097166701907803761935546173587177782276017090657619780506138662472529908761385987106776576038461229776341506750024056201295658686936582835863015975092208546853177023269868107607988249749709298643189169117463600569683908176830661519151223367524125680780783021097770913789928705691965608354046640477818724450343108571751532562051704347570686121785374925755321995441167812170931387182176827277024525600328357794662280579577566818223945211183846528277845582868877721484940225594957421789099278631290586707499564701361320146139560633334586616771992626175276248432939212388732152407669044887025921123958078171820451780460239495189843098788068688043252780001343527476719850436569774739736947584413928090365970427545046191790881172879921443863229383803821755369965509226639928357711262726624840810704520333460034168665118314762504967330944184574047162224078574894546304578652745981537139401931708165464370930679541910726162917934029882093505489116037210205390296053106634149098059560263757169276192466490365825324444358880414982246701435284117992140903626369923678641766733087408574047939136423827367641090494045001019277708356365873444372901057883701024586480568766902063032045165586335341523528596326603800943836350955926419426016527677453093207856671910751229931720870120671158400156149600809404531354063237562353397605834505751108852762949906986229822740620335717561746223761222596361012278664097847195015751242552222045037231805089600782254286435875210459815975740774516817638009485664425528190503857583368735686120044478857244905744424895253067956955859966034258317942392330525408063166549947515593142746251850442959096537727349644144636621227936737910835828476073554365806672721603517144079253721166291362555559048903503197321847190015685420000261586812047119532416594275159705203676697833539654975522351166438806692072222905919123106822053931010140940308829311987558683604020351775907088973423251388721067397447969447462532194654268805669779064432665910259175329127082823886970766226095774311286068858053859810262843358245295567872695437271454189830256262612593184888428979705643353030546812503785335062950289870176408532140038445933197990344629777438407964104421335305315532171700807948845580672918011816703007750051381332030231955375335123943197601400568185969919182532377797949381976342810949650690320984760098891217451105495022519406579087222450617535131815517408502813115217111417472443455361203571459103607129595091358026293261850213690197262971252848992841297540650712944409674390471945553796870395408864323892247948647930384254056070864682719959017355144175636086711195825129615854964509505989509992347022350500315524174070691603973062094370012946534236447655228781698809880447342438746385710502657296678642969289024105198468665159841850990053193622069108591879253430633973678738539081285098462576085815971785726951045027751956930218828781014984605656857638747315545300317584181054257565980345076306564515440620826921061277609155600947578563446440757737914698184155878317417254959797010574284062523940203442288151892491035996644458682189152553584855486399970442479316924194662349875955834554989316855346044854562901816125972917365271992382756587901816457822110792462964656128112963127490636151265970681120459559870903148533437465952108878345386093662464078832366023919217153604677156398988378906316067015539168144898460941832122070895071428611328441191202597972162999784758213062583114997485975409990868559410673518509937573524908216685951081696240112931245268734282964227335923113942218647875301002781778169802557585371541672649136407409359843736322592097462682267688647841688598098975517500529338602745097069707057435900272960966987763752135248696376544009708496709937447017264133313184316104977574298273266508745677204093528095291987469155300069270524338696152330604376800193499837208463883451496423923047577419926086511444561151642304415629650580108544069280661953044139003414601633954712852749382028589746419427458471414864577633143868935558421023432035860755594972695585342019366139202301253539473195958406729993785051626970958825682783701153343604144523761742838486649560886488215399224639663198340495466808051165908476177416095379578988981006501969733034122429812628005342998632080899869481633142079117081097602341171607570036362390467071471018586198988414614866658721051031564541326597812277816047577914908413498253898418283269549683694576653904503640110244826206047893586830178800086725664262852282403531746097394256992805086284128479856711408527862469753780384841481889525825382809719840882035183129375400513701317895764525770150290161185881967663743490721293578922601539105644955928373272591219542485669399969216452557434294834143822078609029186184788690995285870167585010595609325083858235084836125496962547803756344238298086499535626382104204557209563113986876761240718380929170343243594192420357199872357573341565982693245663990095244418612398991335482169295097071147280862713834257977549294790538963311470478437953819242308168008725000701668649580308925461660429848931370433941965993761844847139547028446252715442791467944967954003021371695701821856978066663299182967138411499787710730604815990756479183668628235650107137088633948693379441683118850489602651806888121875415558221096195171419786523052850201697016545632662993041955972648328013360156485537010145608510556241784277851818673461027394517466221082264499152868332816863646496734240159844648370008764126009477596816476570534873320471767588954397212414593430374640204200917159755556740658617753718889765234428490050556061034207231116184668875257741271151982664660135412627429903059911687157014755143223117768898889439046051045604809300343821579586976074082839061899816703585492261399194327334530955358576956087416162856221933328525146481899363009661495296088212242190118479582230460222622724654704408918627188991419235405113176572886712251356154322465290142819452239418040157628681170501388091984030606702903108351018806841613742909783732909043286832172111741466325172948736572242290011912391696778791373310958759876576535720118462502705677979522135689039661216519815141639882325682855713110167878892085551071940404478536059451865925414242656329479420738479656691367920155898024889173317460157925028025278201259135575602242241348986771002781493530724295597567351193554210548805006336250425432079569880491230399624018455308854348882736020473926185442390090063388305347108181775406869083295583986634036470584875141995436040585375979430661888564756345713894105989405054044915426661466846127031900049252640481439313560898168043556455756110100830918110276109760003447283607694534090038328255177947288261193294584032547069478037937970652730169164314171421265956029603267080967434144222429202588326933703780548344280677019840268866475730641769633058809278161164428030913703862916385089573946218597324934938854378240982014104953824680107433516885880737031860136412463149212389464296929302942278328706325356874726837958784456496078536532088614588961800892761090957521133551107550030181601548834844455434759645799734321109023234582280839033640831771716645366522465487579689148157775311694829928549551134529550852029451982654982910388709038717487479066703589551878780317119688528188390859710057616125911777393992111350036792703999170973611090258805114325547639842302763932793718427587220274331891889963905078879899521978454673987328985376141670903894311268915673163193605467407078455642890082715386184308375175477855263449514379563764246847757627988079442372801685169390986273536471695899193456171613229953922442879014910754645343604735250119222420576309715903895594715161233843951769641733413996170580589915665488693469612473811884404317018525315825237393472519403721695666113633660062421981865302182657081009442847123200204520684789693764504136436015055830638542392255333437897521953051991928210565514847555774655214239695712584529469201922187829730415313729970934110539437898828508226680514743853211629481408201728032292505571150677777177338727896910606305595571881958869549171807577476368791300758124115976921479184618749087521823576846970690055358007501567405760626455406446473350558554569404261515725426427756247718862506089080059010280295105038723600292410013190158418997977560417220612970013360326106854562345508886890624588098841714792158912780094816087986503818122475672636874334178205226828014355598914409237816006905651585070543161421685171912054590760279359011829995519162262395566547963102221236762137598312373827314500505719073778344039414874323438348965906994056372455522147265452938807116990074967803305898399949138918766672674985422385791473031590409467714920427117183155567472230122818284129054357500468792457461408328062719951716369521893348940395399739221984722959223342304975672538882207136635077220441206440301941451534044037390745341178375818052528298615021689545764357212337157635851366885405773922197348516313986533304976602215041425941829095308284704751517271551482605993029656206649872648404370019905697545435457357426016609267798663440521579087500958072767197470563378402668384371297779119421023537977041955145345450284587876643141269197742620067334053524487400311671754526469751735950376904210056389331813154043869407100553895365499947615119090460878299125093683703730207080210517527590812554853453979652418828972995322774594902949153976884591834746236343268259323950421730099606915873960717576201006860719106801361779533593163168576255404392514039412284647465813097954921119538472775246591960459688258805064861295052353986061204772686928361599495647224544003334535408236422582872022300807858544718294579833279433478377031617115473572208702147758177388618524502049731628180049046937298501846314863176243158160270424451684667364546748525365238308005106636818826462711279168371198058448086195162199086383319954773377307801241236010553361578767790647473405277782057583613726683248737513148262485941545528015034187331691322352830874190460799099778761746708881360933368854883498838378914572902949746570928069868490903909660794360225307704375329964764679837966752937916050125861368501754549596204153190014992628357844131017268871942575517420459472841077995826910035535891209143522281371174612492738382085377093113342905839315084090686248064192854222692422159420151673792411793982625384116922397030102516587669558896693379271438392144393145080989478921865283699516858614090965790407865303853963943017202115682363880319367479826883712449906444443222944122633104950107096015365574170091757101091788617931480073359159788307251031059073985314169380671950934068970460732314318335249954432647376129190722653246598365132561873482981174128461085711128430250951230054565331199276263136123172801168921247364940425199368927701035024007918337906806601623262523627249471546199528485962002588258219008429394260708028921436740162335223125010416207630618999583977075614448114677663117521881781404298889562935581459711486665337741837626135424312173502111087389847076615140476365783196898927532145569730363925201835789085688475531515015488430978214806514054096391771652100349979262163751059262224615513267724798369763797516938622040177560126702827329832012547355000928622812544852043458378032156666138433778250770298089281801155037232358209907375070000060973170124072599853423944759760194201446338664564683482610839990396816175332574664052449733103526017497758741948026091580965397390994789348626432512551403028680460273932296377331067880385618905856070146705198758216928833374678576396819369765058209993816220044625795269738609263169410956014861011516754114784642010930772486761232736251552725189724591563090468512990267679470163020905641542088317930465160650425516700266149211373937856537991891106611742067743888083050360531873568920967851118529642522534909437176920376567044973317728430176122730548848350515298874253850701532165275663065279210887593858985342044913109025137308848161196865209084652309712059178418762303204024373308824325051632866227144002127418813950504844061360695678147221850658015146221447243923286236934727302399145845505551795975904970742742265889049823405177099603653482552652488008232480739290555877600650188450843317087787977031162196432025724171387789054428500355934653650013828231487199374618813638488917960991523006971133284536056632066326904934621860184154366754363737345491079868134624944324719984913136870417125986149593532643044371965550649777545377069975261472407405128632344510662615074908791802939270814723974119592681624754717193752813918703236938589546496827958103647765952818999718336800066355477858713045027416532961109160185360320540017260568248473947586204455179570656484101526834797285512564372614113233241901286029818348728971661938791274000732714540910276005403190255895362431187834216069831348014191887916834567483186451935810294032109238620499795007918185793160723057386476417790327262387247491276906379674461147109753257534067670923214765024092266031973051462225150302867584658961274497122586532667668170818960786020569144842937976843413714404183116713217494180540441007621847956318941298123677985988309852712624986318157639618653098562887316548313637678184446684467129620376847935736742293868498947385920525762139964092427684460645632001681442406349651165788259832413811968549862671792810570392626543475331933208102747165499439535741582708934442260073463760241520043911474957654631720333500591085661729909457834764842984487319859068127974573794965674314386777596214137451534035154576960853318574012422815709557745536245694447552346877912772304529212690821759718445590844798340040039680671955221486036609653118312261593892136026301014319375313158570661107696558405041144576644259327194765924708572767635171451596581920244071335886967907271798954767033102542401138084282774516129175831069361935577113430902994693879434437960967870494320301641302628218144282757468067896358553647573375049298443136907530433404173401663851892606459097006212893478579502819446474590583050115804590342068861243309054065311801197838157921546710757114888414971635467782421819587267641524865563733721250860271956011010162059016988840684564381305140246744966395540452705634129892528199086228335685894522626479312631982393456572787130960429871176095104001194175426209511828971909185577763960452767628819537182993988768154091175787823188072148429768370085971012836004902878679758349600378491125850623297672149096910389067537729857718768320160994318948844156112004558948876688939524635012303556185293128628760345890420911060084850388219622040412664200666347921648918972840143069322478240147144473538890100423490803536515020414005079878392036542814703134122381444597971731362298317014448057939220771364750608245349850719503088965478863231678405198406597780443808835002115069047273800732986282105353529687559991345575132281286956248300423296338734087271140592316544559026220157954208493603437202709771580214316039973352390351157030242099110098202439177064445339803700843051507581863009213521748332811626230946443506249584382513983668830351560132407729912475447082476704973497688609104539088916592289621014774111210594745921677567157573909386408325320282939171478738424045537886527505933657566235251056499656374799687683655338222928944535911257516481064566130022351432441852819139871512557081103714267252802098447963419902651509370959434390506252017148525550655712137110442638233426719371720384894883033898502718305799646705215755754133893095999757619415004725432742955178286930363638615016669187560793720596446759096536007330715100960584425191121838544142783138614710189166397643772681008188376779997683471796266021874727553193070191689659313527281126319312412674629475865502531789626838031570238397776770042299448117766493536434697626260475231703375516040959478715881222489332243711612244052509026237149951261597302758157751679726162086297837508917035131915982368143033736890479399167580559919348606902984427324718291398731969439741451244165604787976136224528984537202873973355332085883949971401933208060121319731308677535812939384134061042564209004711143737751429577198351018128318973430677763646829371064283185910505073074639459742525925665929396463927642124831671256937804427729866786730428034379451950026944383501893629559601618119635306049930637343688569492092431845960838031630611120602023665589693676069278910235946642528797239989915783233837715863731294387218428719734667670115957564712472398685634166530174965312736523962453118586139576253383952240726367105920520027213900337630882558977634412675287064591851289066040934713946186736192589944009835553283654254970456242131604763547278787325125152592437510586087116476855079924896006529353175844996353547045639680633421160314031715867726844565578568449389486639838403101716673767057080939347508887024849159178430980955172720304375239712766973055569856678684052488030512067704751272559707378532455603239964999108341285188373305757041524443022732505746660878596528815043492687991908310769872909054292416604004046773807483289236410363575894812507382207431387812685384464898095094044491766215247502107272156278102093398984490976841971424075574569656712609306469543689322158921144146567392007658986483297186182746381660895354826712619277748714712695464353635013711396317525957635197940301893897389693641985756033213655184220649323106022758525689829719162894180090861512905080292695108331567612427945392905419621897590323867475850909122328010534478863023579637014774357031582601319260760910782140865053261629588467983560833893693420308118883844045639464588054240234940628869638898501520038117639445483496238115821143145803821306486436121093222116214981063730916232574106850050060855633703061442006363491180109707863635700019536302790472945172123626013494748196011165650673107600852125656492601175879818963701744708329478960229808497759112103680495519493787633355566539233846876612794492466870857637988056387458453062507850916398240493249380484707537716390039910540259849499182964711503738298659144105760639980485943862986465895218723058589373328934679186100296963739203737150807247677237129263738103065553950463364773253545789752956486190434039532315648203058838607548792301415348882433961098655685437927697267413249662515608480662571155988506920563597604803910993086244723977697249573415607833175747827926689052321085522828619434218910246006953596740725704692093272074844832324454486537308311096997737458991832150940969887810993901230304858405724055838178519269006852978986992728291183629554791530323539865503009221534637969897001562451255889106236340791929636973812291151764956925958724039044663619874227131312581005229869491848689810056547561016285583451782015548767694564382721483967432895758644949383517926785526185904538511476366565198501795145519486564279646816493722678168200007363744878014262760818749623649106058503886129211517122960324512125892955567489193891071696754234845062857782510907989700245228516149678698890925897258995979678444407267493809199483241533520757260487337136886747240199910880355535504931779693539117371475712252003541643470558239424495101660615780977529239435358495261201361317326296262293012781072502249876152692671722143115788197324906388342975570956000590097058847912131571965033806839412926375250288073424022978390823544478496841012322985396519018282508349737669844884817100286158693656871718187817204707671102791587714719795730639191723565246147834580366740983898369832488893874657848224463811116312946518813092028617268985511675801759614741105580720207287992762866299382782194268963759549604850126408096233865943262758346294826343731438764920909548796237168948928269035732240876268177425439134160112026434901829394567738796764753710709831493340417078418721295164402165905227787969777942637982285851263782058583121855042031151110882159415823979785270797939553286041811974879652796478551122461460779824915995218786497454458912193218385187872754258246221763511718390294016214755864018224326519961726950920639982131582516666636289932238957810177580213364217111306432625250017810243023436170810216451653787208177339043164938789108054359345125582167865865635790239587107346125951615128229852768273681618855492200667182217802743208694254453237472653699729520113218382707830769356034799374704867164173707129832451652107472037253873798376842788820118385470700238296359653756938841241868731458315910589123001901119111971067055865728841031474759468040735263475040690548329481686105224416891835906817052832329836406082115864505613487466445676001064455512781939757505951914429485478770506252416969790494328264897978622126723943755445288972535590158543151638337554811018265883603485564902521634868988193959885075279041372749922775708613661607862512312846773801104437797427906676074184986724901840967897868883897286124930941868690263368909830586110772798945596220638861635883010125474860914594777845137720531832480756908723010958934478184940235078241123681525554256515827873837019767059508131247007215359588492179645528080543237065306754154311418280536736705716963496782312544577301692693924103317222988619470941909710959290672709645790523941902495159579482200811578238447761621006164131571277573386995550824884653215260076009672126417450866356678193675661944478221107829800937908478897811396862249342758374975259236455362402827728731407696213840982066259758660620459891657726954793258304126924168853644993328677850571965869256989150023776906798429105507345171528259098861980725560582276592461202246270990250550027842142948221260942720671845978597136879253935575479695756642255921771136449973744376810834877851604751775812370263812518372131676216505022102354163588282917219522154126437911581064399583339843415770785843806418917849061647786627971256787786593268971816831799267162387022818593012791762247165596841348567346314791041537694804525749899824019423148785277354624984731904683135879545095597663645876516619028467775350890385477832954131513312776471685816087103442421273301465531620848406213807195936040459287375752301487777054488790614394922945433826443037432262749244933577354060993345372298243822162690130255311422423201418782370858966802430114626573395290159175327244887791619206375091100395214159056248134902127704485474895989358166393989901848238441688414684334785169492199267132815687574312880932653645548780258897340896473250452833661244722493140022190967896550912525820245817460244196153832504190161579313298278463533290744548685447563744100460953897790178894366456597931027334520167361022517471557803288096233562323320249471470718496339175540847758685583194388084443544000530929351350041337228259032967759547413215375623310558870882263586521199350917188213836194671779300193464593972185535107937283389509270296466870499433991565820724642567553799769654710324113821894459084744324676772134880971796517000793975300712786180433906993667800650759942993940407875306312237685571528914216891592398911751585030256257234712484024159097209340955309564471169191424548537386747098583733020929117355839355668925629023504096948592549571185571916010464113496000798224819632287394171646669678310262462396745989587346914346030152941175745106677078868654832645472319210071792191768239146866859598583598791767400793228547772730059772499424777521727427210090735549372144747287402774917506644112326607010122229884866575440538794681882656560147170927609896901866708180545461881275606603383934101264360790016046004056462957638249147518630032405269405656404929213556745401840488762525834613807807735160910840687750043532754599519812428529575250728428417601785072670160714040377409121417048474928382725102341443555243030740738489606327464254147699335512909252901421888374023104064691336795465825604617160588035763533027660344347494691936032299357528601325207222459191539148079669220530749934903576559046967125752262495006148275037511775516715844450782241302364851147655018211901402337431913000338493463481358115375171929815670389353321815794728255072409992416574790479932243020824185508199292282453963394401368514783705044912551641852908092249202709860623554004570781896700600800416635197987474779904248236867923665322137569577425412864165875174286126320685040317227279423276967328991427232732543092785533939228622949861966053428623378055129733281661065138797173354627267847999157851716642299320702200428579944770728243302191337475946683874144455801080346418058112190786211998732023930267130429657898655309002422206309685637828986739515842721877029590377574749940580950588209750243198948595030039838798931185884200488812379103223688469220455333835039824941309580379928454273461401490582932087850725162490197275136308027016013018597817443670237638845690540465541285566536761958001204813408919738146053334671122925953271281439942246396042502354312130213375470877916758339453207006079318385923527476299253243143535624540287400464298947530772136078827072485341552050390504987398059624209926319390193871243089586679086102923014633696217335246878512335195361366948259993543665306898906699312887405616197394623711175546732050142248492002677806652745510900832517455534244544860671082225089666431499517093562131141637345248997718606973896673055066421844485076211740157835424863439086595144490175011968461970744339395846631680244660438834938064006094552672265375930564861889843690895656994817066453475912950150733576276135433712594025859962979598308603745149737265347474872515343284164564815800018301612465437609773651053797617261436959822944905147403518086310919258419090127787006604150886888490050873825671258627913685367880777461013321398492573466972549624237860994829448714538237223830074115511671564461026577769084823513401724237702555507717668031633637452527410838878602765278805282083671174820607893107410185862272923509925889006433049962584579218923027493483249093963178384335162585985566175313023233380629638240582405854461150958920286593339521253079728538664672392011819501738329032342020202584142208837725358454459839392261439332798912301449038786570845108762029340948142799719685485984632639410187366118569192388642415646041311179679465260847903352813149222847652456869869252654332019736533683954568213949583142383511716890254997518922955272010394333281253175946331007066790367847817702036723952783362866006527876836099890945473882289521359148089856786438213333565501977302941166803787493236246705999240470313109440026461163334092569735301128502881251312641049762403722491622075768441268372450028809399084973090493555527501983033870160320118504671680086810196907296134298970454845567499197372730318348198226546359610584879254483392818822912140431082068506767083979341967156136890380603410904051187096646442776892295216833670830827378114105113080473551008264506452254858579092434542319552451611689628507307356753815716094021968234256453520961873069399637847140134116491381449092753897775046230894099696164653249130778444620840572646442902064675279897935781461921466647104483737945471438543345239894958637904348637608900164587392676326293801588954619642631560943048438989588142507952966834425648335382839678099615666636102373277487868041554483700085775658004614671653930388272257246961436715982843378913700485098531077984728624918575964990215989931620325958516815615827203882966611193158664103394292447267307251487116636226456198294592132450942052158565902527400579481615266908414804978568570416494170668438964984932958799925269013694099294904446345948490345485363516019337619670803649457710123604905504818181277720516355896493876014270647469760145602828243610528737666242899291843595170418382119932434284629108821549292651580301659370653714198325953215062845237489545284789668846515636118322077161996243850715201653191793104388280745186608369059074262786925059686590021339959988560901484425640106354846056420935917561836068851614061998211317572326653659419031447867901221898389144757015947052305642502389713742788868381407463049605132626714970449485097387146730179701814112771826733534925641463893349530245070760542808684518073341829962937889466508074445352290779336646518262327099218208806068434887109103754793307080652035237792577796748441146067239577061766576446732151030420233403466217670889068568298906683752292143284930224772321288623893780167186558334152445818513156531029740079851060614977696622049770768131183334600858517209713670688481784508843252577177577875576820190999600798492350773779838936847699027610769150964447962732201465059114178472233677854861170383083179647986980286501846580447003553993310997613291774462557020648005564860455379898231057225668455086304738202691306798930559756574524657125980257851763380420498996691898436515437914131991894225340503825743421128257330586441688297359285083937721882327384522380893357408680720981624241901907923039011983162539293767399522382378180903009746450954024852898565335169000271784380320258152830590277188750318501416187022559317270831831015256550554385690395755304275535070444611556833675411304175325408692472441454951062474062014965298361342991313884221386433626645184155511367869670604796381039020691067120318211528342031372003585485555537886953865999318906935923387453280586281275879981482347563308727064325389066248898288780555523032745846781650058806897037399606804344306433221858120084389056005770910294237443299240684782056197581393443469144966838618728543295948764552772732234094212337777469775656905248634724625464373553447688552922933619617454602956521731106649037173463269350179888559277507837055574497786455559203061243725614297565772781751710474565235131292940602204890043984436233630386856127448398789912606973266235321739046318243456704409659690537680725168233494963860520280340494689865243998431339080399044343958465588150401988416181490064509910045742143042785486727222325813930534334852370775484659561607077432449549322664810215933316377358452489552197688674806208840431790914643823767146351627370357153315780216128280487251449162463022779161706942003865583990628408611957471559109597000789386513116391074137887237254096577745417456347539552588336476838132199671928910494440027017040132696350426101350215330861886147688265710385421885469111726933989714172799034921990997072587282979376928246462425034299888361651178161659906046484017641407824003126230772358302267418928866907216531098268359001620085368346843503113143996077496923078115243418462146967282064634574005930634483452734534276537659223726126275031806454792796249437821198470263314272520890770898534364180397385827783399912684723075539879296588051785688468330365808759273479802137279828758080886332510182608596269672413741076566246466502348522842852644109967514438558576328594732989759018946618901716589511897286082224964022939949179453129225915120073731199145052707207259488437182600502671467709964658830581184173900438265175193349892916774702281585066673880679466888780891104639815341833950172933994456017270396502154305323706053440308073977524893355367055553914095650102329387304882078938027632776947844479960637816805463671082251158887274968916365534451358594426321495843905034632765193359350858447532825493687916062516828102253505024224918322584154338722187846849805151076949148864681118771261377098119378323281557093783932567899475953174177619233789406089730760173942907526345970656125910747471507672309766522423789545823291160943620023152259201939071236427592431390280809662495923815454532539592673308145243945265498617334414058617163746021068048033894490673363837241069955932151051580542512729286690868025047317233317292256370544314322294657811862840958836056184327628524840243878856578696736772388859596982137889502115340051225032552005670618527528463335849775911260097978692391511177372764793188516037155924665329713160852805913498195478192547694452327890302387800629033791640930214185285888931995139150270269381835761521658274600501801330740851064881060600420225453668951422800257811898500645352649478428812923731022478719791515975421646478691169211190808760696085685962874024053888624367870497114349373869160548611705732409229476371282622087767473279350829635938102274057807512907775935449538526282599905295000073182762577348840938636728421610702634146194808087079151177467834890291923761537677483798218768490932153057022890038818096399061708104383772260347209254708092545281620081792038024985701382601717143704522523934973295083266201908137239561203594359206608572384398125549042301764373198773775532399966746340171783832326590018081536380847280532935712440385354913311066223357573318550149084340125042115010592722311788953643733271207980729089559423342616207025501881973970912411073830624252869539274697760906205449377893803198055754459687014745741861849236459825192976399504853958018495181747023974862163635326148007733501379965665190150447998151527070870336102657480286621325495562974287926088083661275690393640319651829262124861425460055677590231591673967305092858769379517143100827548688551952894551199402343570784946493497562046938398542702221789260260407784409016634681416589908495323400351782263704489165098214569002892916476549818221582690548870180545950941714221957805688391921535030693971261466342231379878602420355072825051151580171518956053681502996831217773057935096818841524382329321842606336490635680511149377509997407295899472746991189555486552994839474359833128414141978083304168673814830227622123855651286134275098407501181913907815925336483709023707442776613848924817768639208772313533618850312795745642430980433178252892218181334468271310477374113126683709290232976343745213907119460419518585175070319806051230139487999056203597303892574598873650545391989667227674192499318806965019460340552137617530108278642145304563017153012074774937487667101058697118528183303493873517247369501883121608521933612081414856799794283765629476664860868762512318589250812745084437435039438642226689175136627205309775382028947145125419074578867205952938961817690858627144152968267384876310566645609507031939093726396908280027934003666523349391511289161840596977551169446204723265605400311730068386972904663750174965330896874495582091629136650257701009057561250443033809908945705224434941965991584567728633781641422973043351838464916203940757900976331408909809768767779471027836892501707040801250059183875898253798067905598833933578285700675436589124705238576022741851944889259977499313088684192231468954128277537466216513011932666345850081685800735841056836820322252403318343714318250100809190144856551950263219997065487881654306646202639587443900786697880847147307703007929876568833325654118687668104313148688553487887886090624429364144643123732473041246581436444473847116973668916248681200829680645405645716866534018465808014316320010761979819406820333005538946166242713602515888427099331748851585091601954945117330110330224916198204631445839250172658421327105974691686069845819933033983897839333410447899924650174663791920097823026214306449539395708952830530040892921349437130284567427666637734824047221406660071813340400161477512646355798162544516232853684769140088859350922772080200197996232258105096586151209206951893880603410880142117507806905825174019729624641240415106105972619133761317389745816432830892690847711742132911509274752785710542634665115340553392359812095248902253003678801257217080481695276499365626659379521516450493988953845737035737180298786993889823445584328204387392599614438667276862310927108938027346274157174191751805915062015009150382429770930717155978579247350434499845480256592009008901184585623695043442666374347156489344054379914977287174714284636578289173229268838680030552476604351666877538905960340070800100963325868718461242562995100789397389329785338945556576113798131338680553773165315646595299227289951213678585239197457487204719191722354041814382938411736223157437032226965124926699977595106065993107677116679849460004574303762370867301494596036691549423599843855165218488587003393464292820857212431529618249543429130902503947987956794404857023229550660302529497968428538037105527778514006236683869117616907356922051828644641949382629784180376927337496174383112170908706178847947332396532762480630734372524116760202386760736630048370681131140976874006268959367205999933853773292039642029035212747088685279417585560145090899726813824998685921547835343070224308838768971155030784402607500721657339534464815838000751848041577333635723531410354197568467028193350102162620364735554717607903027188556825486040000313190508743970299198127032441587277449306011516010885447511874602428101278863824336453448699719521354965735292365921391653386622621701171877302370847415297648064030928041428200301959210708206939112856977187373439943536292302786265620868279707194513743497927171125728991961040349280812455234495283396349825284392580381959183367794982977157503558463195091353765181130984090730541533238068296317031102271114583942488545470830502054077731378041608984532693529161345367790076583338331449562891608513129593772357168202100815617869316302373912832975213769133910879403543626144699163773187124995326501265378190416648250936003722969402278153815249125219782799118056387344893197583147641624751745197806311269493738536201378391253349775620041275941435536129140375813427649794531418232849387816599669103959494254078206760513713257066744326285432172694843242578917297421452783511061286075727352238794004428835756777146342361630105058956259064706337423981669304887518100590993512372171769582052612432374301895259171994863298273238529410400816433387180875426560659016152894602285435389062033685800136056158616191979759987726221773812713757286559266092217091346314801365664610615272477322554037628955549183372298695563867124838432319125455370016789906465234732606619600927869307019321886271986639296945614245729456366271663114033212007753291729690537625228991541247653342580734409343838374894287404820656228494904875504804143203064235861097160426256775889238471698579283116842519243094954281293797587236387817819714925416402119525911427285297649219401655021270440964022568172612337131511812581612704031685428947169470251013144856531350238522885024112397881298234617664195092762809382821479041341177923289527440882948398464025309813536188575048911610313373462394342671637437201410823480305424010713724074905116034161520818729475514080882376219944864698164104697762811880074809985456440021316206796476291197411723636770422033227495196744951789437344052914711252582679791470510143682401455153395899721465691475981807543183897864968796302839738790752692987072843036343701885267517990243606057669856485992734356514813690798523897479874321455004513878339321549919973279020475003112612226108479223595998573558947904531492879814983410311062670212454161344402790239016025108726223803316379605864141613233568205582741610471409526832903057243780544232574741603977186164145418242128944515524744312106026932631140577664589587557646091360308035942095551347401062475448050294446820908299863902177462106786687493281373098602592000552046930303886595866145556399064444104586546386640832341369488000895689327074746150331678587832559804174498487107489076586480959771707754786043582973128286710676507344306074097145525726475275128012418933164720827422478002738921685983208393233426857120445767066660231316874259851189891988021144765419581437888327935336424974968082475200507778643861610290177507244339409525298459756339229993108251713971980225780428413238056404640128996680856846054309723288345909597059030581604411912484832185699180487921708573031127603148199400628957370633797648419949987707664614655407360233111502189611371428063052989693209604743777186456210454780764989358736718676602757222787813009372452460242412740473409738777660562282957425193485139236002123366910212257628265632051333374140011652686316440161562969827644411495750585942918690169336713926991386399760661153177836423357497779806656694666045854846954925989076393273341105963043973600072127681190350995193734373154294021719253443974828065654415638091191415323311533345673118609164207157543742476836207411031285381344542436929908555291634885642865368020181837681472495367668436022142457515217326058768763356734078805907589216129216493065884746372123580809981872999907345284352539159998492986652491794521797156116028887819890063499773446466180633207603292029154744499644396596656835854993738363249353179991835440724310126993729996248785219263048407859585090050440850321992119873682446923249510007268277471617405409892929956632216996557113819135677855830097087399583883734641077239809969328674912047798418778682681248525561311565292029392685404708906560804452593027940387057870534099661519230454082974706397433893976188702726468855981209487764182695968502252388287774097164283784743207143108890949460559288544796141317785019983389027293820600162730051803530382867022726942828942520468134403511788347886791843848360180674358331363607096089727535115015778643545687139670015191007998775262625499149001355327199709016658131011428930173785184405841071881382178228832814566137893727260187210163176489618451363464875689175854638028559615275728865112341274488800319869388749976580311076383435500938482705755910600919394619336194554563707490471778607953995236568189468502235636092960493953777294622448027710583753759337761602708940584823447332576748225037790106703913309095726750748283857599514934001821956417182634525713100988451517487943986092408308164166245131298213877293576958366876497774064880449322472007423050478524241279217133306393713436811475208474580471853231017303978377487574241288881255480033771657621766361399563012295230557628518759942576767015827438830521438229934044892500923273946863989834496240786564586100499866196587713061673247567995583565901261303303246146336993950420792653492895817372885367262594895518988781856873385857342960452479070275861411729170049010623168425584850200373517646185056315030053248154983219692048073066497366007952320707914388979039547706597469052400310681765323205410912938874502682779201627514213585389376388733870489617766259741119931841370955806857488479978856761587645120261925238793184041320583168906174941650273416906750297966229013897604483764591451645217685828023494996936834189259488358854506200410276785475679750160475006642704061364673685094900841979710319764402766005052720864185723641070272432419575362502604200057994817831550629175642399209541069337249244186640484789264670898759245074059191481148136281602611784457202659057225046333467049136986131394994284817740307784790116926716852133279641201025856650091293845702891942289696323371651494465400715872600107466749445885497891222962771730877450906073434390309064129932076051806626180567050223582984495927811764759559141775066280407197417245528290329583265842152490834598879044785646282601342106103586233198891365644722815281835656675932308913355830958475284687923313577967435812033226439029145771182647311862445751301334006002871904638976477891466877527032910824649593306754855788919147350615206277222557605111544906242464408306367819303012805441689207705815827021141709982610899732516142410745163188097466911063124814840286069932522741326259136704055786239973197935121279682386390128161910534608082110082981004552762733317900969935769536787735820344356504850318593881455061706316378200230184334394944569016494503334799672888876359939696370087036945176521801659046319290179106351336349006704876048163958380076131356249865334069208980158568957794028694572990799716622893743690672463235441969245817351104408455421954868673052620066735769912329580625404984684992283291430067030523130927145207607292227082063512713137076541118324632493101036971369572561131734198009705225724510472684956186088272122993525439471428676310122420660365487101936198548574859033676747499490960623486214200113787539479085282282149630185665325087600127938455013383375252492642275553488327704480965600895393207978857252357778029532829609143058890497199103164608965990504505694979714736620655115882093993455968206284847341245207844560744088880194627401541533926327062186187455239694284577811162139331632261707219939830440887171019696461399175928293220698985133833547951269445385025805552320626856707899988775994989292933884750447486387907611696681406864080298018532769669452501121443681495222392617366282060842091750543607143358677468151240745424465523985359274945379559512736003774652095535502073131584881231204046848912847401116866145943770888691856709069461358685105191031544706801920012041616101077573619491031900766738630369120536048679183350048149302049380049201825090332492293495886162772585573702423247509959043382587610374369889293712593151492471640971177345958964223505531260693709661493121967529591778435541446336942711191939785766213830842948815795392036942047915900574960102311907435485348385586183367044581039255619226343959756387146317272170414900348456232714961448410094448235432281392248905181367209973974941464559869945610908334703021219462166394948286882730624806436933189440295521709739148973959591548537139152301166008112331494051857431109695241421690424938585582398371143507147048827996766074288150240805078568327757789871497445025026202647759004244090498757529308336657099292164954562364007340449972924984957840921915853479177573328727674016322952977037726029711325690887881461372926487163398088145294384441319949255375398748220065037041775263401943682386196924159125295813241141236019597906248814436380819791154895231417744871810236489582369378727732467209731046777908393325292753240124568815300378833461954748703343780593602068404355197432727991561506155701952182332313731142133092726059751413082331380896040205182761812525481364721641752660307362006755272379634498092071414983286171959206638764251741696194363227596277147338688386485857015310739321319072464034835622438058789409045336244902631434254776897575674502273064824328405384238762102059086234143402753746388711859905231361716353039484790569539578835288383323241631374306023902801358078902947624789769732101165760325373328658400234762360459948878652098227255756050587502181746696888536040043935946863352769623227929894135009712157360074813543374045221474233464062100784222574553803555014685493662699362501712527177157934849278420287780298007498612708547661773118523119447799552329889070901332484318480279566504226904304010325037542418949872003524246949532293006090632519857561789836638215522242569522526510660437044836873670409568268849550905034572839234514418721748636042996265489877329148488861466607015331421732629409504067182472890296655706476863120955370783485422732502226329722856712819466042328727673999331872649190827668719956261463044796714849491520572274143513292789739250189701176038466007387315372608703378972932028506525427441635725514425511233500756448079578384907964814488554691814663040706851431550147373199663983089433708280384048206416875653244190035685306920817285900818748972850214170576148955056812193616844894490328509266424339716884396520054954707044311963584857789518434114540360436524230677431767248775111116321504484370955463661460567319738380819382668596888216935613419332135476167246065566673746197779537568231649240806882400617066091222220818028394170160175170930332939446811245566511987578627737613437919953266862856763758672608369855640223771891793915702913173445640727452197895635025755575109387381973782415413766282249614113901467938202191856083355307444338588750557137704455787007120593698099956510971089593561648639969153157651996886778752444709312687100896968711081380309974172898561531350135270718408316002733383827455024914243146099968591869003227819738125988884648588033707585976413443284599435606534851806395036575690545668038829032561309956599360999955890043071063178050790264858360171569493678932386079464279402802309927764432499701775651992323588014415995079052443808197875057601435478643891223242871488499549504474311895774103926631122016469490486192072956751711061862927275547618331953321329475540432123311368355596048429930286956818972688792505681585041681587856301535118804256324707142432101366075788488389161975620764777651557430096529720800857913508093000721244085766360469491575620038093784920777491380471376016437565591393318135191525592234993571186452520808880551053855062401721965480209153910091990184218017180285961200451043804827288082865299095719293932523443328468777388246847188895349601808791960534129488122706490936800365767311012715030259727922792771917888790071404875975065256617452804862196619933584515698914132348484907662673233662053307506947040680160867085414334390340059326600415704048251723586490490944974859976867203540397807059776688674338833910095526096668468577250534627690044062921504482418884363004835721919440765765083492818255962891733805594886549752863378777797079458160655990839095487052291692926648718037780580834210476032324644527614567321080428616424148916809577626239934016629424104228571035476489975508751596230566942135907604803003475603557346278685637723064480459004177173210050987312784358090770024488138463667131859096292620907720182504639684746544515088791822854763678457032739656925448830345909370378482703789179757581172841408004644186496689919396604494579373107001842760786752408851499717011183191633492187268565797189851830824972200743886115675378691800617502726166368252818838207226406041354561308403838221193315985537680451954986530122162254712114799310030570816052391694630084983482855916624473278969582726771934094533412632322240725276143474367610224656974051355789367332536783501893434376178361452320015121754373482057970845276933566785012250584300673722695964195705528563509170810358052611307151077728544594932060127709709970773785469872399640397538156833056545286532519337505414208461004228581137431672914464530708394028665026980263881923084623814841615213441470670781419759005349230571030654174218369945182138773196829492310730661765268815375004220292335851725198818068015639739730482561647632253163076533896935441539757025122915587271683330821827075501796103243895400804327575270132922599922211854449998214850181922379746018393934516285173284374377739664420033508124081746187801261757006725646282786790978900662510712265415480232779538904241259192579186208199223707440243214691880665455778444842607573600995833930738004564931110803888359418850233564386311465058491208641546403864414947518684032820393418332460689926731228532547117943147814556968083951040487091801942161458091509123373345868361193906244252435540076287032970081955120900309462229495067584012053769709256823927366683728374590886175292561290540518235255871431690620248442825279280970902474855283489455723718724697964219798399656352831791164973227895969080789450220260010367728328081973808726342844530591957636119172047921858190847814853743840406982583324373142584731273108779822881812675711191397034935579268362046779860293378974276805870833586035382028953905237708111772955512332088613218272938569268517282057448868015847686479753357982046010551233530228340420205300922634359449610916322635822661939040453070051357728444070123858877446204563865128176563358079884174661456124788061636940429317993345393680393549936085326169645384323415206823481749554106784362539774555991684679176347489295748522749112220445078333229589678616774382052651442326278500802485031169504197869440984893713192880913028003538957237984739577339926077924990848162095798955224850621189684243650779853891811406280873515222737960036629382661010306353790670806942159376790903673341531985276192394175926621248805504537567112414075066167108177316057602103121111022883343753931255708478571758590299232917906702255333130581420024946223777462197669997602441835319514231063292498360638741325021266683450112794565085472304503329085364788505071916809247135994477979147108303582195200252102535867617795982972099572639266223221588835420410646572780319270198854741213583226093699739388132914807613950574381840581870941276131678090307594507318458683479968202905956011125746884763183612713177562024028232821874572658645243901640339012318157282670533489843301900351884490814030542735422512221794784304961608063394602283600929553364476773090337013371488506319863532549906781216344105834565361190519914102470721924283572343538912913686576900931506133614509574713300525789771623280998861338061868231209494252416475606304186939150507623128847782981262790608726584914783411168194597247032371844675937676951392285916443870759410926373731943312558943506469935134436830906039175824248044193539220425026212038803308749800099667793042029262844164101184530522140988701214546928764726417885377508032867338327322098591564555790645713742121615966068482164934045825476753558765585457650887711080206180506869820392416016631531455516399345487811325989042560909064567937772692218230945644499004305193259915602734405226940755747975486523347059674541551985905214303849901082604798774402676586791834301338807682497681578733413265176322332045414893600078979804789703596362432365720754716544188573802636192993935795570585360326251092257754326739811379836507786267579144882399718495907781324395158397451845474153035510215226550082731600388380640396007121808597231621225823953819072419055381028490874584958699940079814984287509048802439506852083460471214950203875754246833932408911328115458101124496090588423746011777490021796930398967437715666479249962154777626875454782150457749127120312067188263719315945813837799072434163274773090774210880468010688709201151302919673891902505575899822941929040555859169288235261935545855780620509991409196244791470548895492384323379051110542072995909176292862837748774720948087683743766150765716595790431516881382896771867362496537027553484893586501717462443565029336755141847572550403212680769549990258050522748219720912310377364494007302485968207559932348513828499652584423656092808169468248269659448201009994157315848130347259138551200658619529817636945997170594009440808229554050731117782112668402178423304075836902298349777281995542725907144377406304125731885393806129419407500162560200075250043453791565618960838379100141376743633989237046607743231749481156683304049762635830473116807650613671621944195195893086415830492275629556402692676710429304501305951408072599173809216231625086640089422441846879244791707042272894149156204549398998067129580917017944709761974691946710222337548803950625195746595634978650058394284551758918034149877803583296819677162103479006415204741354183223024391096195825453737999125908188391738548419203210335802128031758682140389696534987429353760555217472689937955270350747538135840036496436132952658654564163158242630279974272724810232506970559853784360418953473549850949041177873481889582489777262744252552661870199678729989309238003618811282254566496426767093712782779173038432980828905442679022524825388793194934040405720246155057123990211839561382398439619786949055467333720727110732402316419152179571177225438879712987450833682959711577662604970034893969467976721940543898017998944804532187348356288611102152403223446805919107941265107560704204465539600290695047761855014349487758354051534629487435039946145373783973438995358503430648727462095301236720332547405063561068271468543865139828636162846976896596549646196903694936906288051333072156909725097324929896170946175232366379134755626065410642490030574982061449068710989858365672938950441122705627940108136231052637667055129798497975236037422721604893482445475195308272077659791670463319537305312330527272814316465124672844709558946479647173443846723395750393302116340850728990765097070648145923023280046275563511968809813103015843050560671871763628988674216299777626645255156216451006478475510648331810651966390527567960198775968121773136698137243575876621740309041264540437633958874602529542560367130619816745140300174733232879661150308069414274059883817365773208533675175937737933596481507595370535503843746268774508527523475312880500386246466230163111038795070648934690863038717699109948410782202274153759623221114241814515715188754314515345872938888251507889275227522223855465174793873498922720778131010241004529996430079388003197491268453336720709751846003496027231620979374710224470473649289374901411074946138642702489716257289492747605179147541171662935683037648492892466431717257111916065234184168891564385498191145433511311177443703602274911332286810629206109218779812636411770394165925142721305516505961524872572152589848838724295003794801775368047007841946273066377075958289913819881304280716645504281005341064660928603551855119704436512750254340541797259738654053928317623325859044912266219964387094292410336148479289499151002579859111039508224507395282100471140351798510842817786295034331860590665724172762215628740674829513362558843093840675148839226083497065633904600997213019588368960653760663551461447155157209330274471736291884479951311255595969600030286617477548413088211996117421762589785582580804669592968672380235034972391756938732541184648917163744442611609880166743651586207344387522651957420716587011132370870524363856070624637133176717656698885681331080731362982425040237018059017585837445199364196504827805613029690331295665008420076044866125017479919948527388374342733878866078296998895780180139006329307741949140391701549433599156166640855537875069397944605153596066812501029825268682133663375409317953941424742514037255561474296699828185355632713263971576396696129695971073458921975410635391238051393512051938174917599340267548733518706657727611967307699153158636528951704525940895830035751387323166720227901215492482972090077415184502668946999192484063968317739168169865101709304929965705546510140167501050529706762686937569588718177310021360508251810850766539627408474940024599301629243349680219375998712915043908008859926099953952958927459415905589512228713810481115498751615807553893750575784076198392263773266687229024360898175668575573555632699556991819154657111988653478378634944020639861899822315594359177538008380045960734640519812961910078752395406301362748405410137201493600740662017370789422768248482975102074801432993098102044726956802683401607421091762730637757435605128210344314712701820890434432853359235972729091583029408227238691601289815714978645609933729492212289006674294898067464524550974048338867469125008215558300373798656371555307935140128377212756637418393947517295058872244963878036240330231521319621128611497653981192438280584759015982086616775940625174669318607738042002844110225510311859824987770343011314761513902665819489306439833611881056115219148854666488496295761826999343083033626640391773159517235779898440044552808250545748433773708123550768427849030411720888051230254612415308671220749958999192056109036623571182815854495905848548835049812584267329535997241969441232472838727293114633497479349961980246078915045418844450566944120428194964640557977216437745736945777040407284460819292278681786129015789508901712908651294074737802479923592954167914973424046121454060433591319036827986885168869088320081551969617640128555605761362542360166160618424789124910788007891185818542635688402254768085502997055624162656716218783335053662317739123797289013841268040804441171856556745880216858483846730944795791827669853466702503651931494804710036161619607268869653132955182482417712980373489862961931318053311415136056943953292994336843030083764977363634299187769738437948345751650711183887022462646367211288135657214119251383261686518855674587683511933158110542451082326553320959949479971525233637864997542836581914634821796212767883489120033109501011718992387855784698335906263658475172256312026606370911739101081699496363275841224730972553715938998004229364833792511264574901569623035899295699242975812762278378625713366257973142522989899687065688781895068595200983134926318144839497483938055830425464273273585061309162318641229511026273480772580397988582464643040190967621126829627050744544860154975611323009817198830359851912164212678993494510936287916605180281265440288581060432436237286988390767426683654701211485137497231204679459797819393148194054243166486057302974476281645789238683523243742800075144552564384622278406529806449092584401251324901683279522934527624364715300216259859603720573218908706853011192768251020430944209135303872045749906119375981355622494170605116707070231178455067121065546142963644216918913998914905055693573045923433809628389077384928151336138793697763883203458136251024842394764005318188330658869512728385157269312149333106646334506742922529232672105079569659630594364997013181241838739306393795781660161492953446475477205652596983166424616202392570907646860090192896977291255459796267903882295902953413845440050177638440626024285696258135452190527127201739338736406260304847900175367028794834165833318291116961141712616540672138493199682846616398899908203467879618377376773290253344819595106576744713950946736288207449120874906374292664363510552754209066310818009365403312847265738005150341335783060019318796174758233021868490386247816354995248821982647355203908562166901373270418038796490597940003394279541316666243308262090078964962045674724228124895039498727618665355802049436323388968959687872836676560491141218511226179172512092595727531012118212853963253484445065057555374017978417722368450650941977862274505593289282518457050973245747015957892093576901418344598343760131871552684341335197255841264711092748353050163248190805621548707413138442974389855127720877375794035858532476522030278799236709017158226048102172580705702216676849948734983634626497841291087424464629299038398441132720605197713998368601550663137050529065881178426199243509475823045892546327329738798366718913370015052366507594248373769319312048613523075433602839692003825735332680177726572607842982127651554340204947985714347068827313899761305485894426550754265818337875727372378885102787438919497815761785634160433087051635797653508306969672944308240285260823526646232807336691630310209448618502860399840692359159360527551132858666898421826688942182966367937101760878967718914188300750324858108905072497401765786471836522731806301755382179509348835860512125661235430555871332344719897718735301514939107333062163220806847798313378036970908573512971571299111389702498373155521275623959401878583344278284229629420141111901899812439782705750358454400391247046077758315633282177671149792284341229482396574194356295947028537451849973012815327965417724792895959856325854791110625413057437667386594200703675059302570408987338666939361600626781553904415426511802631430956777245340726318650169234653409722729010521734401179560457154323115565413466101869003167954878198605168660848766593794692810611869867675033516160636842957853326656836611749030006141478059531805603342107078095361993012811365808432213931004429950452120185247869064809886647181456514139632211625973907709856321540549021375757933562979040928390773204946227850513398389072339758256044820737817954760191266200547736459224042363412981934978647016127919324666794822228435068755032638051032399784533755317435636165521197321692926595939297973848682542722689599173106847141320555251948162541869319514946366133257891784288251250451037608020722876943757750230836624575101375481177533684408490065525708609731845012118355070525568994487729041133194256470007498199630704641184159452741107929292514576203933560506274343669581059236594934182836804026037134438280526442485045847485247986052869545231197778661796459664338070455540911812117142721630489058591374278129344195253789957093623852047186615707772140957782542410559732544685400301489055222456254970707517615255064488881566357738061707581523555103370679921001733336884204437397092368648522307736671690898842068537609310206709170954211424268484775495173811498025600110257625013255816965743571802445086762971731208054479952252331610352989074935684253586675975490866031842614370224376470895230396236855607334582599562541504494701657555359247292074604264663015860273712678765051928671878659397688751896155849909028162466460928264772275465746703170236054299368613145847528582970871876960731049435736208450607630601324893109957391951880050257432000374146314566391427675858669745502159336031888121888425975168736257669633392345862803018190265770846532549741981646781050123627260514642031728940328909215678744192306798865336579523422394852674131804509883472772740498479740720277480304969285206672903083885964253476444656908125636181489455869880819906982243549045227701037580293719867858123411838211430632495553706379518722883973147265651213736011882922935793179195736045240570252809761864030537816042440789449661347978381096788962809878160992636726454295482160438929551587236443641668338058639836367925009686267774486384291990027662661140068232673360773009620582858320881394135100362221535527125940701327528829498476284745425581834884800045011315624728908467990487915704989656092876022124882544527136476262216634416954828559837760212096326143991510517261271388926174514082060921453142702017089053637211662693139592363001482192977375751576767447701278744625001478031577459596840663362844245295709864392405377929861235292787020577497985082031621900303915119055680349212586802675487670003567306142188487126991005950223984832013827409290116527578516213678595967967342051791809294816218599167717135999508150877369390618092340582621646830471652888467157091222273019629115162606010348597958725653179453599818348523135771680995399921115010656969581569378062516444890915497652448598145714789092929808810767613860806437298836585726497567184510762378484064872271299224382875145962995269934600731600641914032609358173420871387820035743099953889078899395317582614130456342802957835305481233755420129001678248708282903603887698855693758561585363128707099914676907665918458172439674211003972655131565894112284267141771562286681085407770180018486821180437684739301983253813619870807195715398875423912431557935333582832964936276004512346861770235359974031419486778011624125164618493242185844401669019993660236296718163104821078002036331027787582687952818261747808992268711226699099165454888508587807212354482253942901925368592064590336232449327496254607105466638575929399081891009191321516443415431982952794930013707107901033279156562690828869241271681336735873983867537798836479031379811352811379226629100562379923236228616577976107456179135880755366712608690893022559160274832857341503205101674084118588077953332024075455393936913967479095956452505720280179113164350689664230578092776103853503309504435342146799854822029966092271366625720577462794287793438613134806915160722859314342255722785570362812885104723129276033078702816514484523163181997841861752719687503731276395655233961792142716819094152721547711859510152062348193042593831035292546820233671675576978613619391715144114899826549123330240799985062581353356288857640880921581820611235765939409519578413199193189095213014757828143634984134957384834702560366781907672633105115850890234132406457163647154824342274751818572953838034269667803552356033959808430108107244179988268586517867157352897026964587823924821741148099049550687855396381955555606807999288431474139398740663499448250304020760187472273513350778835994630915244855873330556737004541097376144010438852081346383505048103517051772644980963154268104302007856680336556920315604094039314052267907321973813859653018152931650740738407623627775820762772212576362156531598066056068067967193409660181575317205013321547377241954648882033393921175810893933911933891638643511423270744633408332822733695815099814405853612690287205888867459163899922939618274215781484688256966493650327319388068170218837905286986162474119171631739237783050011221980335917646289198291210038783831576526960395888315512087185323975162902170141136794813844530571230324482217119864284285355632087412757674542427216723870829395628810112455682044313721525717149070634005128424523240064139320641887905048328682488375073366135961339561287914635999152539157637373940075195687115261713216137656219862614375178256651784065355155333046747677498610518088649560532795918153870862357167926040667267368311097528846164333044391621679184804733729675641396616054574398800181147270603245630595478109740593721891814190046708581141808443738205437209020382299815406422639365083524677237637198307551466711295522489593328944533069920184501260536544211402421157050533873379070752399240790381742339902232649845974484768597444466993051267838054828287223621445241188415907267348818949900298883260442365690780455359620130650448113619934985185841274758786520934245112206439095352017899276615503019931381160379257702828369552952162150633754378514612326807546407212489517626554187200450380118678294600254138448197247216433105820112059561162638590120135329391408319244603452069997761743724589163989723953760356529928041676895130499379082032482618644113351327009648640583183991114817200578437607201844124775874766447807399660421615039794034900367229226222176639087674623283460824193734952210850197763993897934576056695987305049337744687245004323179792306302478166664643498523352562987343458937421956987122508994951074348808883119784247515140372828572269179899376781142356578247053991429960348396488019461675452640531449400490315137288470262751516344181706714969879880870911291465776276627497002551088304509094096376838881331729959153834527754384191620277323453262051023293494441620129455901339372091653773381873517793723460328368289011992368899543001734085828971947491153491598236218943782280651572945722152343162946712822466184346165472509297160105173956907206701437381951108961442885282329620876806100954037059060870420245381463391710295730424256768972967728578129281296356370745097304445028860298035834458085456327040829975536270384960055704311128015955836540293326709578951252848636261024415389195609745294702467560949667317471158979655246262730335050595235372944048288255696564128551022565587614848036816866941214924247633308366851710699495080867158809112924185143232975915282684326485848765816992327431297222020687367613616836438104833062556675010113419487322178047253523677798713021576019908393237161169281601141441794987972280328034285281168698673584390223092711778978022029842842814156027723891145342383428639517758217338984864141625338697917726609239393775092716996950333738069324346423073968284275794604863848918617695722792699833650813748806749709653093822648537834623974015239853764034173237174708410151960097025731181876955377355636817187547889074557545982814029694017934417788042048914859539873376335698408709217489911743324293476689272436822924393358495107150521797037545738219879166171274929785736702223783025280098023666671718394801929012586487877947583965820041605788126713691048545139550496897866252033538595533074100793915406729998464406755694330854237565180921460226847627180203722501410092682462278099365745164336544734569692149535526326826597361272145733223567012632909113552743102935941029276371840756841115851372129246786998641795827182076673130299903610102678312980848877696456652679795144222821654145666611231145366259411235783626673965137032965370047286903516537803064413204502147454332563996658353838479087405451730361374029355516720709515618415816380667736223596105449179084800298231712312247619916310314246427839875560631979110515164773954540894860901274179301894623212835687319954280519943909306667219588364264875304784743738393371316714841931717969059187745753385310329129642073372144443789789940829531844226891335265395896547606629181238284753831186723879359851465825142909029653088158413645452397978337587162363215739010870722380146503167252443529835323971976517408198341199413010166507832644144865403521450767693715422107047359989227863644984123928759109799890260530104308632673256650144954810343521837321156717968100515489413588107415645035468591795664006018742998530946885337244176670962480691375882470685167155134992751420464009995444281112521040418783507201720350639884571998415991137917707891949799662137902533193893179645375865024560262630549681997676136688100618934633411779749211117677700810609246262751211938383754666249546120053381383208956938286320484006147177194808688171598374508578188284592251894106649821608940155032865588917742412044959951940045145459761876790584183841355943510185703250579382378584350284945892775800932799010342338009161541701462606587696358817141883258907371312951217017319027863967660252989735090574200772801477677316075557410671474796695640887656389715471637829896239019978700705050904900005194606126275759489358741337985818425787601962789064661554741294345584802985256956537308680558724972642533044863856458333856323527220858035292152466685778663403576078305568978739640439144955054885034657353587933481757223744678147430794052184013773982905875449044629904356701013719654034413250302623507335114812212473254969182672211069400981929197896272752573353388747365644803636264102371954599435986942823653284770275787632003739588701315952550568071113663988221306405002459172378100574497399467645102839635526518418772248181428419729162980750242961025258108086672722106709184740672361547677604631057871896421940482013192418118929011811017227971372229801929263686321183721385297352304864401305735528666866995387541042121791464867163317025144774542376042416110713712810459798766463464890977524070060524637166163736654955459391747414670033374028735944076761120795521726245615440681521916008927402307307924537636766465791127627438018001390821201143327569816530665062932483210674680283365370158170056649448210555010291249596510302664533107041545813379019314570169710954260210559393726409677000966963774753987560065632633869976132068082515013033895259669811871712981263039348236097379179840156854521698795226912522564109109518542693356218921982307124394276679939114466963772723729559788157760121282782764708453357062222314898586038142531660461284748205101775301020703148783453219174115309218993258861333581911428761074633889302933708932962238520727840766953379557129261700759001335031288470149667397630150608905200746437876458418200959485342943695665554680495671070532628907212199577405282377391548844885160246867998949459648106422910680862757508120732648538077250791696880027447533306584294227768609898521107380847553626660860155682240856360950889435063319898920209263944196290224249353816705226921573126571561355361358485150844514580640749328485308617047346382755407298794797409953408111678865276630085742975110234295474745765757343048844710641200721332305138128744140513299065448649908087964412586735371210477568262865079577952632455087016439082510796596450889191166406387880751486700965667706545866318859731333923159683342340455533834009606311407870901408413936304065721413882252700291792357628024765055068428862788014811745197804989834944851869751123748991289538735844983622185820704435441662244086420681406657045673935071396662317946951542975379793312701263786281239243820641982911625220939206233884202297369880841282606624585422047100639431383295202447532148147942489670563733460697413236362512400074269335226217878830033016394270199335929532032588404553087159649820719265246463567528252810725686024456124323113540681829278538647617679252291401721675555954542437569646146855946612096042134957504730590049672020147618634591351716439568915324581288514538209146515119915585064775324677257535849149464624426031691308628760917990180588437469354340939269329373912458154742712325832131976398201906522884472737054772545246266100057614211733557783431912145221014926594000763480294704902816006421626990736657418130619802582479501561467757684488064754088129084444051650077064284858954019520734810728103614896265697659409006775968797146052610145874913959305564424455322545218616600344253518906882485863653459060326253073871842848250568149316027343079613182383663917275410638300796346320606496223346348930691997714180974109797453694091391837763923208825062580444082960942467811037022893663109172474913382723208230451163246521368990882185100658303385302916656490985297546589589939747594264507218111732762369488296034792278009857678238291884301544680760581136194416039044633792156986980790136292216936142488240820012823881969358429561796178820027988333649708433179911163591932191368452522400567657707414584345072492891422358325879682488384378351994602012705446395609317176874545081965829765401714481371865284897502862658537127795638855258964139958831065128325017713045636764013088185657476283591908259216270338199622738825038311926812026194711161655315598015545923224972639452642177357964373871613655265079000102391453329927577018602325919124021938485154365554999212025781011954146305348836044366190995889529624858252731442986479689921317027082428012630197574799792091237095155987384064519529870934173399559451664347692669340858248901662205859042508873469615836921704106400336155076709432736516814193138010088301590701865922333326454483162993109075133412059788016904862296852044106148548344621051345558131605818654416447005665392540318098337751799021456132014415570209633456319401730474185963538110148038077949675114161297289578257253880486785728675952733914403946420633152346706796496540706418448844960537894349330988522011465248415252633413844398356335999162264062563106158467872922224391116087571616540707855176133201465060150739217259413377401429699558082896880180836181987810463631739233016367192851000853744142426392996021510513625328032749471927438868006708696690464748491928728741204483331114913690641811577461389796924991137475789527713176150054897697125680953624782849227136561525346408282827756711962558482906791803813411354592197683551106912492574101254985221595490228852839435991685132820835338974312527929346025962049294689226873156779333483543125503815930382674230854974271664853607994892313896863275937395855019864938223945420947983151314152632568435007049494557708345728470574207113302359706881746284802853950012591752517186571942366844619922645092379132426448590298144031832757960476447968037600020132010705091693191339592513938219051693978793255490911122560620726646422715883500258123426004800620060825416643467966387023475825995432282593286923497683628575424120598226339035926669342384135772380509433902167293413899757150727845155573981060956984798038469207530060555095597356161693142479856761353299653533523584561891086173454125761818831595547966178280018499219200177638195400560774775873910235910585644738964805990853854524177513472141891107647071060588949399923561227536065387881567027130348401537566515517995827172891603296497897233148737495975152250726026882467576355779006441002210728643333306160339532301902430775356127731317937584509825495468143809793835883252969062481010929927800678954761681041325605512556905339294508177365520575281919321184521779428823331666225665497818907487705755921908534588910838414083660780364901432966896169090059538885848957490827675019665583007104347507472409603488303014607928413714503272176455053019597052262144285252728305511450773420129598866765954399155910770636882533084295214506941950731895843729230113822990543653345927977716302622471271819371776696713282953164719715844701140014697520437168064342485889293309741209144985023518433155850132880953283847088420153913295266636890954232635238949613867615685306564653953857091521242859254882399283087708737573507635143737592485173481410888726329651178778914277633462678170764588092403700991377730458208765886531731560239538270072946892152754507311102027214040346345991207828038316921114294814753030593547596815408581986601427754275700707425422075177019594184270816941427777774305908606280280814571312091749742487030471999341658930505016185227775919822844791315559481068911870948836674028355270675619951865576908993749121586997414468762192016195139329442770497379994156350842178665818509762346974091049511685162882619630284442566577181189728114138771213901621155388087455725147144882455864736754640663859902358739802080380171321161289627795045473209632527146260726441186326655614410261420630857649236920555684970175410598951822290063941430399183277146528813800977749467533420401389768219296013279105078119693325867837319670504028900766649947053909016411740298172009515096612149466389167557589539982070952071066113038860309917826615682189187277318776635962945018403102039802668717157418720084474283058268759191646838783408714320150710509093515685585259555534601519959364701887359443522814902988902030682382315698494380809735406470673574120255538059390929125006554346527962510611420085283632971869043621014147095860277402319874113201215898324218182413137741797902656645808486188192608235821012467084561294891532875224252971721599285767542841546475488065634398422149150165336413484972072221107945809844161987430026238214915578082668112251469932299337547616114166414872150528131289220159593034103960102258661760275196657020725301158779422797181493128985118315611233952759338656467304392806182084412894223344158518264834691540634761362937671131130831088319745519912714496594922710508437765432460294336683951343512754327789319973371879159673374631614725903360750000204543387741902783802284239433252316994401698556186745275150662932814213190810387632731135422941730118381677877268918345436160572659497688375520395198791313672005054351678837979847395164584055657955119054024354389089975874564743394179250984577994871995493717967417842273135891357504320727381850935450195042119515700026793469990777835509918932711376024697357722911005778650372775629917165883827407760226975622973305434493699743270415478078358958340611370106660416409496213868148833980129576039525555891299876335989856902653611165240109170322518316790470764227795628905079525649687944978466129585717470803168279209675808150227707518037897958102238021476782243366857170139758537470751862201284823473801477969431701947879248724183696692795725318914933499498063433944603143837378422933951256393253431179237070625802999648084876771711570079244663298729939576416531643001348606994027443635272719149203536355387630323130598774309781658507762858589758405969348012658459812497647695397996149343851179015820750133685420150478972391184488921062717884977964946188759039782957850283191400552695037535279778856303918474813684490553498286989166962846284924720778990221221453494241694206929540410531346275276736526224204605337387326067523051129272858350319718825843773341914353402788443693584519902302352138987695421955526926031656995856722333977622519524392314739756898955997184781663260275488675679704325505721133032262603453484016402757476553002190621882497511555754803776089370348776828842008578874071819408379107650399250956837461040599447186150432445052945751696906320926198064409543170146784358233319195272283832016974011995722221141593239840026062395462022855022796095366026865491461879951198682391289478828864862209765650399288704437954316726743350263512680576553593740481988960500076873659785269901642306226586077732018531977420086795773048674808881366750787319632451449393410453064238599521531948861355656992461477472198667357836862947091324994099010481752623549912074327636893905791332997399561998529535187513002364749687697369219967522300256506536297825889963096340246981592818597264678961721895810351469232192227390272178366841504466721956449295707999022852795537810355847004853818813898795967153666918458393816482258813586102386243283137967936847036740525280963023192598312759923047594273048153665329842194840162313280218983339998743702631411404846758465570831437942862794321904010267230203248689832512417267302480359972166912150060413412812344251001160747165534726969101520007645025276396525168933392055568493452252104127743813498001545062769068173328736712100643719506882854342942351075686404482197014896581998060361921203799960381421116376623845310247008326647774672483663673073779182555264189274382588485867609073576030018796524890802446193171847452164789749888649629494984099606026635432373170334565614980381662020760402447666781439467767144508800608676040366717509215398913249270331519141900771767521229568625884719869322502267550718379171134534620086638596366219033364964427284835210267658317483142092878344817577134673460501777203285381742205761475040422246345430896873392798184618795191746662271927268316092256223916797613934931138944549272690470388514014941763247561368744902840571176684729359723507004788528209194965414888165902159950552509242061407052102811969711755248240364563000999162322161278022325178227732669439272279861213177494272283506662713489283367604723747252654318413481279394034709934414791154947175372520787905529664322934835964406358273874347783678747329256688380971874762247723258845246146843385718278257883139393129699796118685664482873995551853326026114708381781872866861914009580772402548428696963783637462742357036671648573255811317922673759121702798587129453053234332740043993873506577174628863501719146423819632208960920843011178952052990749078534305800263282060085101242410203879103688507511935723158598653683097683928682038336103914642474876542807611359912315977691619805877928818087801273749204250505334749911981351371913159040151473071039670038145531167951732454239386504804550191548235810444871339911629342839849062085327071268888299580495707877063610108710175798697599646039916082558659717004417537446656803989669494060564437562639606513611736659405977310165515540611593150267643328788756784789799405500178588315224690689409980869760960686284706222279274709827986756971541290594129607450306426882899119808690679396237534669227483611286048369050767338603749309027333267093401504372694855970694506666043709692298003985100047304425484513957814687993600074945487994386797744944747888435126788209428172084258970330612254651057986443545222527977482792659123500250234146946538989633548480989984842605563798165203898903026912827630745921889091353012751941720959215859413880985743733106509737525047392300466841072279184403138707129845255972351243662994368141748899112662072484555927363886336588393529075884021002567185010775264065398368467542252567806743481658138798204699058236813326792728150831156829674701207806375144192150907501304605645667750896960511305843921531816176735769947327504320024237072797379073677973896209343206916230279562661649683174945694949701040886202827296634042684115261776893774042582625008647159664875293123176780032284899807069826742949386104999110654132181335213372043972853755234553360846249085999592670193925556694526292850641424194092626065295716284513417798909501917753398399502614431985551859555431847900435316735923122244075058579136854127494087554285396083578544815027323306329480060693615899431727854606220300711649450213077367208508412571528366654653451122606474571665475397550077804654869702754340448002681701838446960510827196666856001886950428404727531298447766356426192490646352613852047227990997172766588949148360422328043374944731825892353058372741022612924876444623785194235169675569748382972794760064757114577186042401603260376654363223419583605231030243104088855603156710420616180469294937336242962863876355557908561051905834334617527576806792427202046097268179057592757643096788773270021209937259190536155726720249082336243839093575616822621358764403961539687187568693610546000497217079114888666363416815104888000465014538990556927214127024587142375594689476018920590518869455582903285417824558124494933716526481585917673852189837965328365423470084828017747973353639704931754867335169876427388595637659617795564281132335652432394431721336966812080216304451254058591339643308082528541044834120336842620464802864309118756917441199032366025213717857539206262032728901806266827372606156180578362607235224857753334875180863052575911739844395989344842380513584373955015885766229682615385564644606193113432365923843942991925153427708529574172641119740276929369645786559360347760927126583627785922922858352111814062205926375730386615471335082652462278751596570775302777554988963514802699757708100948984505829453940429489217783073054991064448235913836887213322683686665081222765738904941786781720912035564817893902260835982354566581661287509381787396622654796343960988878053559086901675997355453083851956121694164489464624194510025487972258212253584307150948213824295492238581953988928266024385461508573080945339788935189019792912865737576909469290748588771705178943767892160931771601627756264659263132827776320563186596295511602750526279514144314862321717050725286160377034959078076285104701259990023148128917069909980049522756019598207258866150676452623122914340202838149201332771093367706427948446580711334371163904312723524032440217687303845127109758992761170995262103144692341079285157005839667352224890171799632215850160658434449219544515009788822958163511354985825622364126564160451078081173656282842494954032646783257261092859091630636839757000807721347183997302839011385443660149555645419003049781533245227966477922133484229529760834462954633332941522468646069955023053993803052771519031425433317217491803275833281680440727349918276835291609224595207785498890667414564482917036234935358943758208914393869936708097374362372901360619162928934153634878082890189900924849634972091197164643864197344155677935047916073257887898152503413990948192372550793362242481504173669072442660558698894393758196401666783792899805681219263961258920666330588109147436691722923314271523573709369031446227231500620201565882399859204841021051585265169757835205764116339283850754583483677329657122967030423442931463621250975643513736851579093814375415802965164428468286873520274795819444426416901688178391396889965893326662168996162371353827911017275575850379428358027709156522559333518792432022044941768021739577368112879855582423900155991015672822303189873352618748835670345594137872594219162014235017885332162197979851523140182088465578572398842549983277240406162029065871561728404424312823601767565626213003856592144571600705451953188107293396947540596430278523352997574419926388735640040927330479851539479614658351772716595422033381706344210213059291075821903906213973335656016528206567095895543652227598585341293329095411378662048816399622934617188298329230720858172020878305123200927935449438855488124474262347592749798242111763879963537234611635257154005057261814675624539144743828827949907091382108565247590336645655018974359971526854955911961787664391758811391344072545421367816031264987100641715569343142443345619985773697727987947621199716020089365746778919325953723490944315731539526892744804147906623458719521542110914719529688847961061770680483131777621004060735903189019298688612263342474434772190321862101001686326745803813465445538879415026132923872861200038938334745145000739165248564874085615469612911446600302015615154675746541801416023031611127069314066246887533605165972990816324560439683176000636840566165721118008141456980149268569960259014988526667217280674148304130003161681901187635537114030586956732673654119183242677717641369503562584954382707168908754554793578765681108227183242598313329908662267816518002883009935997143970728609304578153141844581447229613562407235291445023774768783469855054950355042777125691415934484785893486289089442021530552585929576540377126212890175566524608194065961632309095248091982659756194873107959264984195141493519339886536954082270584975656890177852997047085956782050844624834658081043501313459424732334059007501448979431249357486363422484664705506842992893801820812875170747688261402431095334463221885184783455940330098147824955187837073900716508516288025514204823378487972046190017095345935215278092702321135441959734090066310900769420409379246578853882108176502761783713800653273188051206677949590850735549968561679359735533399394518635040025796131371457242759424480396063111168538615785040095619961192203251859156141986372045035010082066451157732205288628418873891723548134856037036050986429883081023386757024119548629350701691606297154813602336917015336725564839187851759458717124975655934227741739811686909847954030361313230006693913339443291915017764062162122756920861980248888894380528058610247526700869386237252937639217525964560574288992009271783232416770014455433543526588736843789610144080050950679678608096162154353580438282178221393265558467351948430988370548481832559433452683487494975382691431865750075719586106456650930156945461294477448361468367947447008585112225414512345082162085594825367080622492572463436072452463672236715094192489322140939780697594260159786215432508638895673126932614154134459404888766297831369710872700956557576966630549571245089867806949805571776400605437689588957895192406055510168211109556653812124713432572293914857318538379163968666646308482041513068887025044782179396496489773343609737385517186228880295008088240309711170258235961477440518893142452495354237779595948225528842085661947087621055766040643546904414115012213172282641639062828912085014592360167398479996100120965793484959728532772882092562546618744127842834664872612866703122088950191494345415890544664972748464490496095424896022351051302836833670110003876366684944549536345834233465549920204964998917369390509240270388727944001944707643412046140661019257011726982640150594512220780010947787868600541822137406140731149171101949624345934020303160613657329850077970627730681774826700087175634723006928967633796980873873015519471851306549641160574837631936398271481270746988077739062155386100340240883271559479263259299375956960334133993468924286559187584652144950297939041372563844138819785854595827330969484604573645686952804087894804510421520064316164554896097718079789198210130267658628916990273864210194734752264665309520191165144459518468512520418961985569172169009694585938115114078549533837396223993984959717840985092060341066395913399918426635301710951630167945039900659056375830622181021162946221656521187822060600878369618498490931245159465233098989221940368266652389726560882061183741679979502405966150814136791430087592715229910692498299243931178775877897733732328855975834087313791819448570824503215854500670037246274147966799047638938798066567319171483204266346366341219558787270544403860487121717385797623577513718139947898686569466074703275686348797039176519718158998186521767444599529617566381677399041431160412680592180979354308448504717345014253789035948765348213159365797957910854162333451586665907668356012099393613499731864001832121284257800496077928657847646209215743853382659911494892734794487738058396219860325059422740036798834364165962283181807655711713585921596291515116897049665591497290277190294200241837764116808505167497275623952479908220858191473612866537800946417783193677693377621347936063116488127514504299918310835635121302180480758375948476748978132318554141364460033453122865748990567281927702893289268521911043052583367895942014525884543342105193150571505956814860158425725083556014062231092706043699079637539524350728116071902294700379031109499599300792224221970406624967918085439425417957310369379155401293129066020427905492515633389752640540316337469679858840947875540369606483838693929521045494406600186126196190243460593350257851308322084016617790708053327944430841668114885670168967840827368357044152413603244419673493786040060842823614659482971197534581661431518600935516687299541628314995956048539934439125837193175733046565389517878514736996913701746196612057068902956161961922320113543689594730557880925228920837676198149030125597090894243151828766500707525317296164768872163052071767741430954040000113170567670729368411377413887402624928074993783884541983515728443142448070977000788948809276544954409620251491543721630971733344149666859843722490758899950638254546639232152068823146079428777887441555490860134576116291061841721435945636976930607978409932023091709507346828392249481066014977181541715996275892937102854097209889629157329176300022180023503387143634593658043298291815225742563687477779078750452351518666849911400240992950153920964426926289844622094086765640841877473630673724562088394451916114948760580292447344038857706800048724721654538552033823855715618443166229521674369422910340076427251598041899947787289872634479571706613792823039916509938936006407026376020949627745946142920123152789150318042528047528618842492971911311762081246296019102668525421247168492961859776941251185462493624755807981493593966429955773380364288261307609221199772735061068643364618610916901640668663152528320840076711091280394976324922428497451883666320528018829134593001807035553671822248566607983580001379860779877471827268311345004370719438990200296611926885984147869960516039125195149686198455116007618220842061636523173850250758324553198227359645207033557710658389826466203142089592983130420414957104511462142810458172429772570764979029518870730432058181937920994678595915625195646676420300558485044153116866863558086741957343294735954460527908137274770528333502692407282042493505929053571253062923567985100578172297635341989724039723239437681092699219485418473331483269096748181925454557489010067968670120480157555770399105926853243265288619161292747489235796117559750857070360343325295018454130950838889230606028956860234335081876305053436464483974819545182343270027535840534085991119091455080831837370445825032931853192329716679673535609583368668173716348633108844215076489785291534971815952281272020138138287483450170346079501881274796565997637471656668768375869583246047840550544309836028951356250743580625763919601674018345240178670498261969813728646240426041055838542475036354157737060331406905268052393714803008497295982906473123359876782457343424521435493303583245457082617145097186397941594190137521583980637825313908986752761349733674681522928360709174207264812649015660500731215440267960795697440560317065815167673488464717625401139723971840146223949526172694591338011717896345756234297152995717212090084460799873369323564628668521274039511561631043064190653831159913090385800305067858877553755876510857605909627223116966638658166536023776356167797056766650572988108912816351400700295892713309102957233773624325839367848443631503137431713499950226938450148591513634851999889358819614523139369397377632213619345571837459860459142458818315429461110024937123901772009369642413357976152762249741961009274005322320504245836201830363016964784396795933860254067483814241048508344032632188943357811826377227102937590594674391332089431539007747711515279976064173913600908776008023084082744267766590994447254030679795574775474456670181956301198041205273195173797857435159900250798031231589999551608951263272478874292850438429328396295701740946503530305918275365092375989546082148586030143863665176970039516743478541334024176230807064615497457308125803609246654022889284105637253712103093340518974613464105793679379551888934552122855844215859958793893625315720777504190052617842772445384557040818418789034172167374030984233474076948698818614229952556145695356687054132090845088714957580840910317182956835495454425511036385704391421165120684704202141090126169332228741943279252278555505824743993429538282587243572593517258367865626191255021755057093702266285832971628487966571997771399845401534575558069104014713222990443236847241828078322910812332388075606485696207804629470308414769379296537271154747930449574456335089683190769794660005369007498169469702693055459502820037682154340041106893378447898852620557795662581507553465848151014138688585442646456408174269412029110753954996600215562593784796187903675522095626238625321256485901640051416036154023878831827722058166305913505638310629557220053705380047870283260368726164364893035101723188872054638670814086033743164954863899311839833989902437039084590714407470110992764714355460660385158490873968195699217593243908452400884386683333713410178777296779042786667229919814874409055951539661303470479251128481315645027586123533520869925073498279087256255702928637238937700699082288878313934674781783687688145079276364516001706553393324126130632748220002440508669556451290674198180554134828864238506570906632025397953704016969402451790427865994419211249341529515294295025151534700419280024264766236608832807531122051260095072260672764853459700694641731898508001784280847237244132563551400200445319375983591350083816898278066021045513408133833990253069945914726331606802417513400724797958953814163016284095407740290143807274240996886635975827280903428378324797589332986026503451518167608078415530247780230580927159064688143768286101996686042390276910845648428026695701539996521710779141347610844353061886046152581257391659131895638522833439713462387541107342955871910652803956654158791985976239304167111507919195982646494900140742954692473795282729814749935563733939000047820881662585389113370030277961462013625243660154641737928826149087801446059502094349610469032734810211133108152366918325669471673210477070634611913936689738637694419222284906758460411719966649852321013849337108450802345241068298646708210196483266718920972141386497259529380864743915899997384793240760606757201080572031114183262696385113120605306798443240478461309056048754033162064793413469801924336241029865343364414589546666537693001364415763062000836693888433567271046019674735151128165126075339217197191704731028200885788791385667187200176768360362196132827579364268735588655181449220100742491754043222357634180001860892837700205763585809194940893633247138619062502692564182556195376790089739366711988899505768913647530647020241131378064003946541306925345603805202643658535300245648118553724662119482628956483277718642118770705434720197189276956939948280358425635283612831391369176109778173254542934713493907547566892540309475510577807630993394912962778235468546884930216751547960421091479540235639101975481121778812849830800805642902780050654419444598017550126949678964234692941428409180176329690147714842956643769453769708102337715307680233881444201148454485296226473479667125760071411258668576503741615674658861600854632160116175881719616155437968878195801004597449027063744625931162914237457094452167501407668592270069677342367227001503854428416726224716500675757119418707238991874667028554207627150055041179887306722793248275176352806744217073317092984287745352319028210602151830793918964719964992749179146196948955385998433432282639407049747873410348446561425787961037607440248852437884309775331299708093046162730349832788110417708227309145181660425251673264529134938700054605982228037531181792203908748509271831829451470732397531801033785811749014817786081203640217045792234502607616436476447195572585013982957762657797811772354906014732127263434594587735641369124591811773409771615566370874802269127623703860989603171187825212993051890618468601438387910503659780795617798107207121220510535905362360574125593851502919759780581325507213091269818291191893909568756860124202446555422354494196839474821308490075071701772939005338746176701415900788259723045406906221838395605954248399685312488188783224468021502888423796993959869852692980871578631272169624244898163855503016040207487584825057631571277680433647556333896059758223398253711916732275225824828818166764422411536169132011731215238592036433271049711386364049475726419905535111499083133632341435252436078966161310962078087174877427738524899244226925406655452001272262545658296489948655743293328773796038269770897450305082977547304312628478821002681262562867476181676894730003814486544426075424349710223079112282138920754543171152732372573169256854808440826750981525722471686334538561157282412228108567920729382686166073999589651098547228022304416451877808786655008332093145378826087739443019427930807474413112671527563427462952259365085014493313551666587888639113781303110679918675494110482374131988504898668660049321529430464429334986552108588913796378204417388334213178928370933239563925245371554266594135263136846183073896641752878704240732619898672333096053172954222726914814099592320478149719068169302537424820431495617492657559441679808344673415448482366331160086458255940821923694488654104022020546481652297110448758425503863428495725748133838208132856362224733258511137561489650667525483375505656606439616163571470104553967831073704584649415230079279857658843311773320361198923078559573059924176413134000761887822139156322493229090761492251943133775840783417218246503243251632136706928679859822361652119272502984473273873648686911168898920265621726792873722971439527661647521425637498531298282290014448272701025730947245704429728106389356144367045049441068262583157510404390293274864969953862163998716970120333098254774924715584450894679738778718444612571236313604279655033828814690186473007052369386087874207936291835274242845841156769618119890706669056349796143121672486479670012314119913515388807125750944311605427357935638767943668028669730380230661049258086641147355427080107962434123114278512880450855220003251928533597686212577907778236175455015782594230760439197017616253288515412031922410379136312629556891557628295747105941870088035427802517603954070625229208865434046447464099816226605064945483624499288855974057938734969618440310140022343028458479896961015598894808607333813169288444204464040443874232189510768619096755470186887869640518705155110115447203722874458587900335087735707491103286504870245244198055559052660871527929104618981913320368263619420598795463476665247325759389927741789108182325491142482447020818135106692647359351046916150154738670880583575312923209532192796633736509619082651734156246393330149456073594342737780470871928838985130723390392876601686528721817633128497591301515259824140577067758640913073415931591493567254642435995866609125788050741939761929678970950027262353603518979020665659562447996964178779420491077605484811375377872991307534874443844395720079527009663098305998235846320783683897023211992767116461231854683995880608535061430351283012631447800199547842649464618650363320752005027006136666546040840272744696544075572669632650669068161657232491088573310071862665777159737097864797422029593459198969236288420425720432503808856151761159041925951617280267719602733044661675449791874321725124831098544127764284924032787022400384968446908449859467540226539408069464177795184494199509249166397485520430806969615756655426762290366508921951486111456281301674032856802296074473225302061439033758447081624589655184981409315853807398893655483559854174481726999798531999176507146429224221518903219332815084974621851881453244383419766873244199538876173674842751729447544442437429452915189376259878535645468950009546117295175324897046027573416403402603801593055804142917411405814936883333918031108422427232520805268060563580923658983196591238787376553725594638579419558468648858678597457915320569427117000774535481652960635831957102481827619748828302756198103310481822542013564429356151302830105311594445604136132021368435263770107844459578970347052221101004612822781943568177110230469833521741003933387405737691357167959515640359211921585300487453774450940057019305699215917425715744641588591157841452978631646790916865951644284055166840421390223053599434459029178602757129617280165014440771318000561502592444149158071068175020727906601010091602845468395063219316748977510380095630657802913708987387934082045802107301692003771191728207633184430504831583486370025834789450466690706531484127300520831528214816254047395319195521369420334926998198582058638507563317344816496443014867860661865607554884444744913358863526318353610899599755157826572903917914890026560524635816954602274656554114080447963903615224213945165548761081219831571344337231467881829751784427178576543438635372380158574729838732803412709068174201448960397135564810258384799584831862134862603464225754726246054229195546281506776291706493587822247129597587228420138159574427051660932982530560274763565330927626981953297344321730041060302004936204498006701583839689355483643372808693864692557433200856970212497776820236891691873741826924032037491091805341563327519222554185936494332200563562157892413174306422349716156556428239564741569419774154259937642765741055962664620773461993785939912004282915619271394206700936050691298501151154186530725861966083465463665249006916868631936048036264154446557617507970314232900034655383214452302522570494079265552499616647743924135032567471341512533684346569640382481136750178967301784972281349588940850474556358269182855710659240440350054776959365140754368689224906123550919771340396832475973253585337233930927296491406466212060189882162006093272953357061499891636807552038907531540450347459048904569077896723742062145754434341107232833772444328167268158412320784903266517336307910524126076017166496874185342122177461096327442990890284159189469215961438841806408837094906754958811235549845938002870246995116076275007180750890511209454356158955883657935168092385489545792470150834707612786606331116983165322535033188500629140656151251032610083824523427518366481751804524579871813823141605277439876162151457140059193360818530212948637892744645277431816516097605061835639222881411630906816744343951091672885396852450998753630521075316436882160566221544377534243025213599065236194107807747931360486535059830286447391085635571636715493380924305981485749532737829842138835408547761114100479711503735701163104281901644205013120253726336191815525335438181028685312016747373404427072811144037599099562353189258395233597660928951849968304624879491293234514890813005349014217380438090731005699532222662814163336902422666396084203185768948292266486218085251718515714225497320733396097546730551136195280857700273114037898254618382198771585264615103249382185940806012024961687322087943076645372159372504657794719982455350147454305879370365581576973579602748331510411843304602449791352509340162575118044868722347088990699937902685667934430772440838067916788833179961681075013401825286801533310945081465961308670272687092833979680485091451475486182480578683569201396317750460641919354209429015757023406750941785605406356114347235150405547777419609207507347095895234506519427947509565729462483849798505378784260277759145280982479339489467844368932100001541427481714243864879742592230519187274743297541223868785420590601491907027926940122475527739636986300594077067235139930986412714379286191134817730140638968223147236230203233168237694141192929029319023980861029175503855560136752315453915620374281969307944022645665563532540902841045845599141543037028616803334247606613839794750223416726763169402411907366927935137332439352908713731351660049872345190322838577915754127550575479499835564194394570360562377202490113539852333462530567224495008860666993108039264239789140276135513772308024775550137037497690728408505183741893689977039236714182359119138545433616960955959351164178780620320154790328622973173399225442996092362856180867785244668868263269201062067690541581924055392879065930181195783936142260235543310169094469108422611860795766016666115264374328324669769393089023869758089682835882685618269944463665534592880404050658312986490622088832689334566274288361093704707550633895001724160767910122596326316492053725665178908784084289138777663169603916645392999806626236720563242834108595344853625592368476209470327816162358223839778893061647438348579128874805458007526987199947792166204599560272889063773082196444896382604191913738457984169804269181208092581517490062796653939029278367029210971271545049688526309409145569998354054830231417109414778856162901617420287448604478116780511828504323636966797905584596061618260886360750064894001983303880808874867828824873856228563687879069732210099899904522448760052249383925862127652755778192928606703911124664282507485622963625163277202885335118452405055082551381044346063498803477298162726468567071326153209484683580146039087209562609434891567773950479189094044765564592308193436717689718338747368490703791426697842788032555917555017279733475076189223445072162984207296875706507705686442966133813241749483732324140029609791858972880298423420556438874120328787784355581895254410598856452508041304994957660753380835090107428493761949134985946537202233065033975168060480975247998054717269120325503286784059112533423655480452310978839020017509525401018477679245381758633693314488456443898588486422320250281583840505403955815522232232709239275977614957759439909085112848477848373135103613994120355966924160034734656204725375326549523402733747560355782766006442982441549961887619443198598219187159317181988840581452181257464256439910394796423264350202023490095871411037212119734703887159312851596035744276870663403640683168957084373357896390800290416249324385005240099623083556482771451854876894250916890556020539335477410647862830755577370421491734141728684424755828063592448831630623925637500315197812418944134946020284712346893069110291047499929441558315079685952098587139606834189086414300841985021058279757336416598300691212057937560923205602768531460522742445219928765905454922092500773908475171344908496883905146385771730781759022221196654035507589266901564717526978453704159105565807899521617283405039366506281543477080712909284990602527379515919484348067628474607550885015499478689619160113475000513324979756685723933868826253353185995396808761117243272419096838157313652356659033876381059800007861165356284288833681180067909528780739366370777908006441393711058613715331515774232071126441917165934509831127248948726961852447885830302878447480005814059920258802088199507147412809464904715302409440546202791876088748829113198850299821462730094066337487793125935038101817161330436437743327169966506962362951711773087248607513556682898279581431071868830256876859726879584805561967103111184748856339612430720224389425242838526725789926586015488635788421492309822127530841352216216985825518427159714775755146953471344439036239715481453010949713460922593039790020059365683164356515520926313321301761942983134604615020000035215300256692156063852060308347110019336926880159117978486197892944672507106750174148656835215302475596329160456325655664419848234411232128901626144107962315814869817922495425573408398523350298621529490681003639343200806746932027190708963855965095569108772377499912813456628267114164659588573088824795441113109469782521763534256381312622271298055153906937550028913895652748597194027535508626537236074441504953773256295406066770760828718109489294376536719499434341456336689992424815326728156986785620983366593326892247140931568560086602085531825372428220125375631289288400101771151320689394850002938414896849673706246579866825626403234526622216708285345269821621148868854603332828017274742198236243366501200427403855176092976591924397006203259524607010385929403891942955122503292188829759193874211195923977964470531762061198266911395115479303003654289676294957075184977482014469048987525640608185846169739171610676040133843433253751697565156498491114133140966749530274418737367981380348221433225913019991425054110203752307031009409682228672531339183750190906540105316631187397196693828822590538642733562776601557911555322802638949890087620455246794572254590830096630343932819770989603899689138894879992854251402581842533193799976417587381885447129888091413195398598181637286292273151442679329978440494198741908095669929231485160691746617357975138464326898935619631878858176418087726069225893027676405213173360082571883678500464170261623890911437037796092417397050558851045289350346599769087612513643305027708343880974064886597982776559842079678910338963932180067334096107226578457956412653478915061225901226094597372613703792862468211044418131410805297101722315248886654486038236536714535489998981055346395439954500196016586478114234033330000479310471443993643058810216654872955905319074656588758600904316500252192303760096198138894353107196450289777507074451801908043429846943711864250661883095289701050645273245291355371533992310665004872728896077241789004725308576577047944908506345911375226617660506749086254817804406178789025536550669414445582979434130684909050952205410891092573392893402587442581729243028741398297696426405474973950367584495402916325196404259991623352410264213791799755742743641142275029739919520355138065596418917336398395081007533613417706067996279026157276256351441347273072022733171904483104752639823794138363859993415669830885228762416891024430023615712456740098306621554995486339023726576564944074403644093238630553242850767484116416225510553293751278059140421997104345248464948929713852160504537430877274807289898802314553744573877042272185485155851970701073584276148915409538854035509430868877735383067352488873993014774813199340865486922979268370507200194314594548049322138992907881625943944810461443343485335587569255636918776122569129096200162061641880478982473723897230245153526021864989422745191561344256443437076273004116630880471230502996460707945947682838596908681210510692899176805076869500417121443199805047525595939109432312919962713248455593665191220855745124307863987494418355231809158461624833607203720206639277410580992306485058979952723801962602510267471148078093481566325599838363007828448535932888388283700074693513827566276566971180072127491537654261351155296569380185360245416769413406993918823935403856666790184178268341586975903465381142765059005671705686821484363998559795432468804688644054190183940167119779049841057462369781709534345290323586888248582349753723107652674744237272217622144276853969375533146170042802341298648598986678979598930896284346369982503528682016195879353882322545063271756756710071965959523578075200904443562900567407121943299980703388021420328819458104440582073082991484949477561168205927329491299128488150438287030134228414262044266247604927169356688431738904022927614157855377195692960350666899586656739817121959035173966701907065257893996771787864080379940061501963592527241576265002180547394733523419719603170084235491915193275717421727778754632080306590544997717569337721119472354932575542832310866413379204955039442876763740522422309873217931886893295070566940881105092781260496639676542170959729759048069211435221089146454919852705614717913236868746839589967393528042044198842784159506517385827668643993642873004465973670223525065551994952132585786142505213497809780431643256674272113959725140930305816540962243426434547180249542699672866821739508502177924255085646046815875425589763033717456266042901765544395389656387947870871600336278249527429187034387585780056693153305420619667335514536105293240457731353655006523958082478915430670788926964521807627933514586755034165554025968069247412978970801525878981750878635974950652730014989938554784541497694669840531261294827617746391500248442955437497404691614935171558178724870988707868865289701604972464077846212945952947674586242002819906207312658230967537696861896662740432639703637972138946936332077343645313218946239604182996965995078137845620773231535811433461391999682362500006050794123081909986761956956531752142746392688307261171650178557168834162813840976496370599874413548634838448962386128719333482130907037167276708569326383842327823279826745384529793733222300211445753842333898032125924687080533004614108985581491251260023343005376869615928859139274508461837405307609001185163985679570172308008368034562424126310768632852452271809319750356370079388297325900804510467258234591072722032136341449466002083195615578489914846890815031201069562220123277089347654157907085019180794044313187369654982308935839192303405796192468428892721586717914070618173119494658817760692097618027958433160496932523595109452237936112400160346148409677456247602487561952235241440429129221637022765243426258567154714363863777468602685220997386881817220765226857709056096024465272759406601706926202558455252583123255573315690479557144949552674152309105713038419932273999121489358792184269288183678608256067674579212791752209001307552677499659664958387638988095218067437969733090062804044754133804113361335861363796178104335352404093536574453507135677148625683383302109841938171123047198937202618033744099969251088704744210874569758856509726270868840150039539834964472256306460998185523142901784629653783093579693728299902534894303669336518224696782879971544992484015534929067039350019477691452303697157650211474376915092649184164161302893593298895185385863974070676844424847738621923007626007125399923374253670059347189912546830451170326458992302826207272400833638228467610391682457619159005424258666232348034721813342661620344997477198368523309397905385450186210330353499916904851439861199281271314350402643481024531512789700598311043619063521504654776380173651073871105646990942744109983185028324999434986447132695023259068149461719267648328149355286197291961317690790005390371683146631173996207905639537976236014414309698358374943615590794692586850680650698685956022935605439083866428726127653519442799204942988391152797787143492502746561509033528485947159562293873352971937900005870146573043715231618558223590627402923506489110581652157689802451403587194632706415737783775132330136550141674264991046026306033406910827138774995754974112926428777113725901459194623866828036950222807720295993687565930089384541583913807162742509769791718230210394690141502727427944560899718094213554283960203290555295461190782265201163037216979548529853363291243298300918118576649770895295673788253587363945663428849313516352398529016270170893248433624475114162606185643720123908717205888437344571211085694102556520466935390780036927201313555952595296849185693148734617968348724731856140882465652791469023566304332634665321447726287915640237631882242074537107725210428102055668154382368338917869966459850394940383086821551691312075670505588505666117821340983427271453379591078608610760840284601895150364546583050083879233828240464277664166586734718821992686129448025268635866637263019377852786459417380393516735954501662943529125395244522761233052949044687535785396116621480308327288106488758489597617344998872574099935330005986996328246783432439112497732833069306900357061292326917124052377743291633142907199295965769086380995823593184362105082546981446933089788112214003512168560740065017940424017230656943847271327750397150811283831617038435515290720637851595053751467050209468145712670987913858979140887856938564748625830284362466265668879537996177886982666812802223235721256782713088477356382743168505657073224408688630020510088271119337793034562333210336020131277777837947776050937324318756241452657036903411275612459735703449313504829993976820605331956877125265273380937039693564289507599153409730984592908221557979104082226288542075100567202569656671880570987681770939915234924082162798377924827927794769928207400536115060202859972125666266643312963499063216997827260009459201295546953755384492986134313468732265737224415143186622944962711407678269968184710550305799901359581198392190054987797212833724649211533481063432049234413378672669604822285779813666199691005081378977909065505124550414899051408011405204711343938498226038746704867160064996404037845964906808165420177917627377129641115748485658844306706999757372211448412391973425015821677179644952911254437893113959255072294524065868570309243873137619936612913093415438070683670497164486792311527465833747113076958410564489982113728330262813416335033842616770980674760914928739864429908654565987026846033003749215174802610671224992567911866096619738450276437067446828528665486574215754857325333604721758841647948873571630795444544728433821559808901126344237264618938270105248860275955792106515581288505219691483270319591365570142909330757127366382111154795912691633162416428666129829905307474594996128045030430277244990246448188374321603073875370532950461002629181980241438300491740376591714130074550476957079213031946922039229221934931766577380705307335522957975648647570575876634985161021466002303432777434133574847909570903231993258567708808768728794402015467800304129977545076045923124662995408914904427526482273732737730744344484781961174655561897342718338758895781001043773874018152954310213498904899904338041515961614178755139550010898061484521081467099832589339812846592964341567038645480115746789496752160098996330946871548493264051082093517050240835452634763249034529614310890903915666089240816424148522370645294155221534690663576919456404540601594567418924562645881182286581114611785880856998320923958713708051052356354685377877964263715315745426001615155479517841591835174767494309127542720981127574495638783436411655639566430585681926452297537768126969035726898123187969754532562151642699940211442556242658862355452628110554289610817459696911260305503217383751281053429740476048238465232375930244231868258618438939883210549919486187615084251383876617695280128059400163911352380359392710781610861806001462446970661469790575344539944786450982298996553256022585486303298181607517548369585739568871468882146643254221655440470885944662601277811207494016686692186616476872909492004338432674127884625715656092212747609192221631744307157076268914354357354835410586848074762886336014878369028377419835005716841631689512196020218585901974525907657019861035694165224096578317973422851131220472577840476971929750499926452266779235801316228467087510069941732876424394043796308336687585703657354396669649681941438726582433195840027806419883324165906363114623456313607127144260562098588491257528306880700774143644498640431969929069621261264382234275478488547501795162791238651205838324515319157514650078939529064169031954595182408309503477946403062628275938573889740384301023542062415153576485204846464758604167023418777742000769220517412485532695249855433897190438880043394344210211250010273184673272529554582912014412693208451355752334074357394092390946384573641117519747384869916630133026068692195732068806413847829505997166615490730516282414698581898160461093846614638355101579797560622759265580314112015458512349083939132573081735937577973581992461864526088520744481023892246387089776325015463284162272951956440781043586955909027270517343319771034363256503715934381308966972406402523683936903171121096398801524929492966019134994370568271796853959944637581646188805885273460649687435012573294870671650311822788308973394794557564384538876394058135166640615113478927362230095040378378724732203871832757021763553859693558972422548998168390063705898004474988352763606576373470979929729113159327564423976117672610148183238563307373921480326881750723881249385574658948993276891922660362603119819397129272610218341479372348803794483916244642366322807923203348934376390335802222856461439381561065909645380340409694495647139182952693586682788409929788435906482759102736609701182028536945970684287281151595969816792118264308459151710499283558041738458567345690707939894509992417736222426673643363637175430510891934464193016887692587016986991369113189291654069393157977062449027128385559993937544589980039454899214363006117187378209611967667114460205907157911202348268467858355716709539327988086662580021963947339109699150180799723958943048819092998875911191641352314595132153416389455357447549184347786758264958697739509237043641395340938420595218953485862581901227080153160415612606227135062218136246668224859807767808158457065699461098728854069410632484176846831124471681937189027027831855018128366071838067913844409117372799647109943308872225025799700034868599751967339244120857209190814492040323772100146928683505584593433355273469792845348990540664389289135962476244676940219915003267684696817406594342268144768328587366555649692344849320431387572571319837164925462743301241544966337514352324584143374156546767317829347980850278524166802848087320697617549779061376353198807231616972345629326624963500801169674113758192954639337892838529394837417457886003946422982688464318679205619845546681432789827799034461307132209811407007023360933154437461256601936760656150396668097310391148286310651241204751890298646898900191992018173191448059377818810918226788330260645950991834614398350239555174702807757600545880977438412109683019748677420763102441705781561477213323563028635706766531064670242790580134471717650374432333426680139213156813434395192628245675636689232015015069916111274246638546133775531212301251566591645841372812372059375293666291164216594186069038286936537239051389946083322585200839206542966816603451049410695738890144370219516770041182035914611811890919198872708965000735510764367734967011030086412785850606464178460229910695413601384777962410068437319725210524479361539093247395940449269567292472550130037266852497296489334538867546957213278579890103744386945453988285831692651153838746265823820589932598933113416496588331976073169146911215238133364522089675783567402883319148604527211735826423691696730865539687305785297670237697582849198190496704092624377078736122424230499968662716521098337751068453118588324446690869703899548409214453370026073251461089258600475700562966837312500967679324147334852372537480760616356276556339780177768998157743838888609090619382718395228512169459361338881664946729905280483082206820412372492821349564710481151398015553139882344207640375745364887933484848168295851430995039840995161556225473886044513797707183374436784454638486236999009014162040846736957514499376326522603080499351155543756847550284161268022423672290844110238904350396052576488049564989520034655637451870594799512991802850132245540015708872350390563524438413530404599900720586602020212778557952989273384029873014279864460511655415756659601116329750040942757568780289580279338444430985283112647021623623453673725882361060726205721617453584306274802805984942981230777109860958943341710205197342895882592171607404899471911534356321682795053192271356098753079006656566906202949870600661648108385335197698557292194873559855342035249444854949816015571171757688736860776498744494083751243029703731451241145951076576228370939312419706460436774166318885853716124580872732818461744568254861518201070022610114191841945953803968262220354977872728140842606518746352103033020843720893741583824850483671559286440987658832000416372211777386325713385060309139176562080855458551100190064349023397300580182932186881893738509858745472130473449946880251631581763558236493409999166075210467999817191893031781368483207955745790614897800974715834708933992108483782869738539729882212832036123397602539911804393773041395309735631141539857275046836128798720271731186407080237920981261815776208941638099926742458905393910865405180153290965883208362047329667301573960751365346566418027164789217359429227133202603625318249986482179180111764864036029526884870883194122225070138514608930330720583133289488897199093856731364164281377479345055133514500815289203583038154960777162928260851507609951069286722166329450003270679336487601373127900723615477182131235114510232526456445811681751088399611332778022570963548428896939384038727793031497261067558804858651965795806476254598910784111912730298583153843823293689550303029573942799458344471431013353380629380762841736086184590132584860610592638966512239509455853358440405592189544999254710722527734609449379837788890014644904558189359974454353971132830724479109884426036313800103683133057853928131222344020750530622341017950706280522895795002511790597438779676712022721405553492577383890383606684066431870151175479118077477026155800312277295683235789419792982882874656533097190058611619130381227105164915222867165222387695068974984752862033078651065860130724385463308798458922598290382920865704875690167354253796858983016577908047330984588808081889919454979897732235778593740834255705513870235877273907913620510326741347827626327726526746772906514207808169013893885151847427076890594738503739113569130472805200307597674100555183902966523544330769802411561623761426738440693296302798377427672129504482024563655126236932218332984278121234415768525796766295940179517194709730263122642002069702054487932994170144721463746516994310545416698518249104862214772965687395001909938700422105935429379706291555836015812359826646545649789226014041883720745596775707343840586334884120516992726684774475617817424357216153603187298432831707908937270998032043705501273550366601214629806600765169780438608695422433143652294912246794446270725185933300097945663429590221097009463971176368869921383004585925767944669226979413364169341945569866599140128487383369293704296433040990318240553339363324212065107813785762890810811321392863084829777844820706366904697866002535805394714318117889364786663894755148800748293192089185509705336221097007637951463929547340983616242852766504204220937558335304551658126044894308459217479055752602354422737047460609352620925865878669286471661172112125702230288994402883804053430537529889547011329284556506571316745997877705334052569813040584017181679177466639942173126091210789216065490647354944745079853716041175354690324060520867387528736531774403491220874433009738262943352274558612243852966644393531502592809901036257481719950569484763004432824976997408542015695657969483752267168157015705206458129795394411531089086536780201692637112394032153707288413442411354191420847404101928995327082018793149638455686865004169104842591658394625353062721393719267287709398696903910913952210321702957619183718296953212603207556453237896537203317254862559117473698950227415097256347135043914550581334071321346496299465713509132992840615946739565080285145747006096057113744913888535750818030477917304774153753119764575734789639276435310462180217629541138084405916654611634384055362986127796133909926143899112619045308540359280638659934112027119054921639081576125686561365274199168572331135314791564110267135682988604460176797380721177349917185831652487247118071767701695416875498629099824772145856211640901415788876739583628470980573855418331958643957722624270048681706957651222328372638234016674031688345958438858718951026877215493179196307251229187824719337820756959903459322311583754341605051400597863037586750278089092980482293948366725901087106734493188270671101402540678379298628563080113171331707843972863489532836916094687620887971572671761425879005069229577172580224683650980931604757802051463586153353703782764434557991325907149156663055655100707729341316835100975866469286178397294808249799774193473536396371950161161517245537250386034014433020225294676562869323049741075984049947661431615084132670636327788922469774838530341786357380558328711941329210884678790084068758134099902523019201458011871377972857797741431091172480258730599343625461548463491044540536323915016396455261997350832812942295083341683607857432603432992737641453945082695532445487342697818327820920463724058693296046178221428374120738504785222804141848113251130671182940961288963556731602393203976652918820661134874587952721792935051700706355591556817605508235066596491029322528612585046919681614341643455150817481205584689410782725431962615456028192993211060002640125405817714912921378190065916992663493316815728426035489614115453694471016495882182244629821651428197614377740989962359951428342265828297435554898755948782487765010989741942365344931272535673262484997278010930300477944279379680448611909251443435680818820559844477475235829650310793887343924548932306938829188151695858932165822885128150658033008729176915635129675599933176669767102167615451983544985206651324503514416257845167418281743828199741208363216436464411674810843068970329652734156767317178835427510547355656675639725716359987799316630351622480377167105229687940738548193085739965482992717701686546677629686770779968432821357636240044623214591310141520851304435038470644116254993118985333365740175191072681627296680047677688676702534373567192057071501482113762629967394030134453133143014797003343359332697805383125999222848231108301961491625413040564501021131542611287626964055263715211878988474068840940212464340913351626647183354686442387768610145817549495286292077910572275852152849210580028650588386251649929021707297981780350891105860848286132487251166186053420581556170747005786495897392395970730911303785369443669876514158569110617666978522197473119956516719536757456483808782146750567274621168315517557963891492453039157329603400492217178964285543614318232857836366668768688506713924364537968417917254296882580297837991766248848167277982381717014330208394211025648155556423472547733589393786969457574869774942854713860593799618410919250700323858254919030780084136860752998719643306205263529201124325135541953476438110702480554657361914849814632406456059842046570984308713310645486885081858176998708069545672599852503749347196523012293628920477373721915191863709665838438530686731915576100252273612973580082055557540902111166917202900233422313377426177822237529008750196442140377454494852796155667267286050885481163912102834140795958603411620440340655258854670869518440733161327380592720390271429275069474950168301991238448124279764015233702972230497185096722051877366685484798095088369065581740827480304064030211769427308730874421819965724767012387167240352334588746994670185905284653655831117085608693212454366878969828467185285259890219540448107359599771959166662050879533256372347189427884147070594850205766756971097832853596107010858906403794457410715628774680285670375196357838436522869077384165073039999822501945602891842184219348691398306483784605461358991062882569245050373192270015971057889638752869747527646782530889784398590589029687356903535275158320206234541193000642870102226481637070155415404527478328994154586128333981585139443496519811888742727799393311869754053187229566196666160806692875232528223133151592389145148904272527975435774770685795022413351195829633190083628254071468742265715585723268011729669049143013909860195884351134485784071798338334393330598263259079473506729784660451951553607945238135809538154644664158059139763427972660123717242194981619617964994775495472846627925158950149732590835284837118650149785681002743861608602351466426179808651216150739096026156088884885808541762894890390046799746810657160716909863619188679404561272997548265336804836749448090712713802284669141230239216674993481690694275137785853819499719866326479030702559387048906249145924740227858196887029510883416148680353951372861427588640925592417244236473817927933449631306249915415248100883523272155672942044648750155179102976752316468631267023100170130638829888245409513941673135530056846170003453168458530465681817303459012289476667823468457384109936725285079115312938687466103225598085993925180521807074527205914273011384441428196969828930265859245180536258009665714517189152471799989864327258121316657690034786149864172578070603090022431129222134687697259244759659963787675753285542063067017411986268268679965438694571170801206979501639157170758150886666383584593285784718273608233587543882728938029695453192681173621579878229675023202042144201009862116698371371913290266947805925255372973131596804122211378725560620997125692539090846171499044624786372695309386633914631045041649447005420777747453373381285335373382434906877771195964795091024759254008266999781629985886212083319658592371754400079755150394227953470984288902255548339859860134963202727535440520232963864536777898915674787208643071056142529579777948922819569598889527062272838172711561961426676404130777944142809618269141734206780853378114119967618867726949798384334372578622001560619131533491376018988442411764155190990527162345985997183290253940983133610567142076116363094512284919700211480238761552195209755958939668965917935134100643780327325892505863834545378706216600336510223024930534260350345195706125630590149757068413974594688142934536235391399781872178106369546119417005688794381194678507646915915165218441379602941423348056402802803725376714168042381261854188436654500372038980542557095025802502777408134360313353584322277746169240242415418573444660299975198595458912124685898850578903509434767050986449963545981266814352827385005235617324973474647494018856888247251559523134893513914823804208290595947952243693077910658390216821875448615747790715874132659739030541534819894990682077068752254847789825532152150936872247735280919562062512566369177390061706151230667266252231177237193185051665341470807786949884403383889694942504752781596777098655499903171342728751225265128281704430060288318681261977845654132977632248430855670633415065953207528849143967749214072473257048813088347474608960461416303216322591615412152859808292985802015309265805355860072033683591775403290795723673588980421515781575504336696499098006989315220232271706520155787674273145736946839034637677392186617440848697289396139715334872498469286579334688315342052290844800424346907376421191156555643518552994843917414968825360097994439686243153993927912532844894100891136098975967165107197119630189425877305661048116485548182389990657711355269972550218892742435316728896080321594501434201831528177131334160262002153756520593011319756573181127712266698779267932094497407673303534109412541046836170634111840328289552799315735677562025842708780864481224064998581729397359071925759431902006459814677158566182024031475749444757153283027064515545723016618485979263088709205346808538716203967041094721605845165503271247695097410064109209058548159619717258584323453117405240211483736843355794017115773430472534238824139885113899563108904232404315363150765071363740526812630852426926294501316857704381387666887599723758269409157663020864123842507294286054613632942531970826715314235511817472160026937949685770310393786576629275405015122731076653920111371401054869833291161102078301831094045883894003285283288513042434159292775045161009222158506874775420069619262856364086495400699549364246043143092883457389835426987508986851010437787484795236878927027719595335675698233302618679374197567781808419874452332620737308641107770753846710481473140816336858812886411571301689679318947720710013087358422201210941837439585076324612098075540543830402479657274211570307481479239280094504134604032033033548707704451146613849779404673982564447194818744672567773709040284277450871304653038160486413284382659150821625669310860871320071468256761691546658798561415061377251375049689976418653467125508316897179540008477076551402305443090248769987999962837256136228218143590922271718784708204134060250566849191958662147793537954957729551714555220382836922386032818287286094286378258340951910371976721778131965245696480450369832713654384962445770258263380447240044929547467453552293000262030346184878057631604618585843933969139682559417782877585714463813016986789350578545333343027869797504973803117589595700425493553584028838783383208511029519438075265101846501046773903340084810714752527048123025685609789912725923126641983346895107098788887563161248232417418977981744029102550735029232610582900686187526947589699128868642499710039429067777746703064626929956669108334091810221922885170011253195953292266524903878136512338134720299093093471408035414608766894702000112795646422197520487758006588601186054800584803452522625584873304494591377809258190997630732885481616462964456303004613932877470668516390458733683678181250747280435244889010856277597061156975560184318614544154400252233133524233127911103821755348546856662002459112171632966844694086861513754235638926485641142148178300822201375963363450266935798899254819345217566165651904521753480564305404014513810420054263910113427396509458875545111942307270115757580154818550456246605808428221462422607942833856668806196340190822406520312362969954220916850418390446154048638299980378200440961809777817663554118870959533759945895258345362902418710502283209612922927004904716743906137448398977486041102905446975751291966973405234625634897113712834648811300443529765952180059970200637646135756495816366164343352404952697040590091122984740484177399975159898086293762391601544194899990562904663984722440878701021339058419484979247993014809425062517971453966267282961355885963795411889449235324064862051313303442694412410696673623024513471892743175948916844395419833211447081629474925148321248298359976319704981337468879251318254222965349147623195990284267094489895619193843582543872502969852930982700614100751087105110465374171561861866939533407491964750934735782093420178899837283840596302236901356773998727929292528843087565044611242832432794578124385716190252432658920567124880592677132116412439270889582270762557951081446333590837370822671861518140796937209279456280515937046991889169258204498059735498073708222470284963057114992479332518455362168795395037670783153386396786736300191632517474244557247702717964814124361394978315982674629579558286000123518937512639837242582199378217869928213702756363501898335067793686549427349640765765851214622687807954753675240650596539829059380828047874454577430829933257377250875419030726533074928425304360601985101974047056749619329158255366574859893426579048747702900132600710662425454755378480570089692883251595375071653849154370309003354878338497167615350035486858520027291229690152272280039824299825547337105190058181735238267260398307585530698868552953719855800683168869177187056204605110278656720426973607108287284996138917957890229022313145364469077410647404775989378211069330702946440179534903105499765598707369279735973952861424553932776937759159561914381577672208679512682899280772023682160032202105908791823453100264599528604514564504547211025371419410212748327583653755156553009875095032732571773560877464463532743062450019032342734316521686610965208088856382907235743051181889821014200417387365964919161716662964686221821222353851830922841866470793794021427530789294215181311826065514048515439429257734153888225236134975675728953498240282724078571804040308294348884883480573168419618855346140086184190576308720086366214744322458469509968276884248274941968682012398262784526427779788542877061479480486793787879948367666549905985461990531730402309977055655200527680000030209470337293805349389809185756246617456387963039929822099684665669605457054642496326737218486902208375692653976878905990690803600770831965525731945650186359377540578339218483513510318883218690732238352911194277946729648913170267002203446276655451026137025076319263358702653414656017077466959252582285264881016345877131894141573821364119069480458456823972221812743998045601333678107054215548087769774334362817986122085186199970030041542049399707440556632002671405079304401242708263858892586778163326289675503022394891247569300090717119995519954861767431650250764611888022542381666488926499993616745009289660827688562797303339106521536400458504493069234524411750781688953699842136457118316921825896708546840115879775643959284883693009276848564030902118561960294026459518330726473899921947432894238555528335871998535711290613124849139614718149006801988084059772382063829296576398321004789423087205648665386677619874332361885696031072432077016659388938542406279877222314033275096321379319589492484389069381274593600448326157367987379762026592889855938909418348650623700523633717688231810969740309096165555555375793525063066529786531863592380148109017978200753572561573705410883529722328551010049211488112799613203221555725234523986671439496374555450084337457924986094338847822640097939982804939538041251563196953145699152881944858186065416943390836824284817149268012465117812608104522428111702607031401724301231583188072646540798205102781333106671154152033615777632061181271649434114730693455210201993465161078674714777993687681276422246575461542283612692531418535611253596306451750577498002909877094826536279136977028084026900766111905159009876885163615259509914934153227450276148291440449039438794915705273655506224913607883279510846453355911923885857825342685944855856949367846551261439146560638593047157958579885929953237175656270853512622979696787584852458496728841800507304350183870465497850641279665716756336462255830722757314605299987343510588956500765074151874702287785836128479086962194076535656771473828506728434132411814547286225018631017592988858396115288496432429571230419542091363675560776290634714870256194015848016410098972543336141245341944720092244333597794560938048614202866937610130534920998493787434054640210658989706927136990307238652211965603568962833328013437593010316395079597398232714531021807945466274972801122299324340210490145707515939552121653028098012129095232591218023218197085919242158541964513048226235319868258756612209072669591652104378091115068309006861874576241452707333378096136338071544620896428607554380207938513180670423769285005337396175437040484713517473751930294365423894454162628232148370090344904254005722277862929089726749001981031694388714877096641522119555055647732674906972963034870839159216021714276544262298956823569353529126753082951015977832422924501393505797492927836177269238255206160931433983102559692895664978838625228578961164121658334510149931270087527186268623235681066943071315306286030374492715115486906793300421371461016788467890866609920595590952561657314945235747808092797490860093058929448914557313662624336280194290736522343090297486622605585141037134715390457411775581960159203373062388193564810550084894323999272701901714486460102710338793025541718384099460155496919244328032991566603655140275462396983681590480992927710683953876862873630987408260638290224393421187074825985764787395449284003867845109706771603475272670337764400102247707466487618960249048351401889100589415881516512486027424583908390600749253724809308259727113297890839304465493397947123252600708230975862398427367472795784935559975409819202100019115269747348730487665658994468825783358762300850535666720026454286619701166431492231231545848709884785546548456249855797361354958960777491746769354082314512759415225999714244901502213224275723999957760760859997844542807346565311874023964580520849041980351712304798631814700102749466237261605999190793646001739044985720514081789151801121572894970384230584356290207334870012489301356102756702555011865399066411924991322487010960402841857016715069042068999102552164304221624699236138389576490555741122377720311625975065865780849749597331544599595446646536855721010643872799827419787286479631834924664496433734993864622514131331155091209809871472238008374769183378511082257841781394706631996902068949228445760349717242645773552254023493802148935795174093413629982424078157162324803976839137818367911565220443256018427922745745101816379189409628506193786649820160205253395523365226619750583128400773838333058225701546619489647636629859641871518218927462933523540206045187375850738563100560241112882398374994248862743652414138253243242075688803100032409784754223521164584442184711141259558386398105995799855325527198644287865995330591407185428474428728966862522722362842268960671677413944207757219180283090805109335523475643937332552431277399224674417121589785289959325894502633794431577613993544016742897880671864232970851865535500754170308373923131011939990311761766087880716399214505253270702452281644006226315194958634894711180025849509032992158972443348204260192255689694266908651281663213830569238887555551307480179776218680050107275439531486599578842475907560157878322695203057866409776787728162344521387722122012398789703687017503464135159644092319977454912174748346569024737694233071409165687910664609518532212931793373833248535266799238034046595248472377195336460202726426671002803448735620479502690227922766691338159348997846440669273436602913206959110996447570165731368822353915379737889552484019021487522971942645880422528717860034584719510562646697590639594867133668085048216098105956465201163073021499142658262829312726697194537190616315272860012853998922983600316092468386440056722066439564753837155674574679705254962706550968304963381290784004567449848082464430783003599014588032944134372835933918859158295465686131405629368822457395139503403512672444580225390480155493743875155308062008845165635428371142142774008894372094986806651746602789920675798488143619135585663167061859098267055254085425582408740917580940419699276722577866307357145054690520097074736559303452692651488858658792287184504920894877093292862431498448068791896056162582585830824849383978894828582242610010762732231255945844547596728924172382303736571218497247521679530728920418737727674038386872799294926289247074872573284586552276215009743110874969989202654331920041942379554763215621000306716505017191127603757864108591411058173414922214501445011566911587420843373325167023172535163450391271793883346752563010814039924961325847149144305742262767464614538086338366247794373294310925226206039209163511894611754892596628582512366039636826240294804582740072420797561747181851414634551240569098115354363995117055908554914342958168792920845661186475058556694263853464397948877781951995392310107722966292144707130859554805668478429246352280311485073401621298309366586751064038068119946511175173439316918914362883076961099838764293133606418387313427719510591383559254746734725342281136164183410678032216799042146652777479232581509105078845950581673834555131238087384980869165098032076542290073233511877294801072029472616981516288224265350173108339930680767851323853982016167239895735526681578388009767933317598445905377405126455696922547636579191910130564381683424028920880666492301794489976121210716681071400729111397944364010393978229924759581642129604637430729758555068094492194526574721216743038852534947394648626249725833831487158738706057952186921762159021616002120985124562544647139247993908633977928726217471757123476563711753867468429453544958397562032989473602051663329532436456667208633719539432225058654593858721627734215436745306291378505401124985816713593317691164413551020688032632104842076082081703623635484862798909725524458148493869492179264966366467748621025715656214422283185821900751525974561094485396728482883949287300948131658133442997339968162309522307891742582291040499028607491106716964166353713681286142019683833905424552204501477529030466267944443539323031923582755637384269791619336890811704816604587051025768688959213084570826015254902938056153967325050694133356905771873256934210259397845715589906093767897475875567557486518460929624791733640425506949574678822702101276075784326732723181366609681681658717396337956607906934185209625374573367487973254296803334009084487632391981052435439545154831044194099917526995427776436495591515510627739206244511943786352438395743338430893443330333353595577125520624136187767353426718610494290982175555609755695826324288272403617545699329168798575745607531107605933734057584312000995780257199890333962908743953189915963780729543575954682682418687773543940157946143511079364736272481881526401230674237928234469290902033487076907509545531501608510599831416064227376225849409527961946694647638900522847722168000996716939231915914213915548962891263280969339298003051556322769866821030888002450969805376803967858984370188747800858973088729038786606019606504579836267331370929629829358164796429539499296745743968247668702002363462976568028953938124475050657509968518224102679294903303285820166226023514933091447512817934034250745351450084144416244956338086981711325677449950847871697991862210037573033375714718562269164737441781481072369622460146000802001662895263771791229177752714313314159526384727440263261010984727496656854816514415815086336767268883172412726797905911461206394548886982961772168107671984941415197996502868447208528722330122196704281690914653716318689933085109084229705588606971072847875705525549665021440769810525188956110816636695727104515059031414054155969538684799076561779657876775371279256162827548592154734466945335676473500335737634324216424037424396883614257102778888791212765372235665508075770435663151720342972762201327592527579272409044148171583183560620805769032611184985009678631791553512774286689148940775414665654262355516301349555721716605828098631767525124663684732187088970489057201413072870552793361181862384405184321047054037954445305733093738713689679245634308144231038941579952373982270688317746371789971174922936563792275269536623513100778300063403253149690790636109083683891516112519360028484236498024872114165990733371381451728458551583603403077276028007971758651726674787953136307048226894490886070732867326139411728933888980812124214040287240875032910911662326468925153398582852172430461360133977969371274319177728662936070650702678953695058686110265347497135303354467821261564570861581827989501128758423015211168758812815054783145967737908458412669909317304506562566485193443849939011281129101100433181503925401263057094481001266080587190600058654020060068307063781843666871406865174506267352905604736136720498556005929301074059836931294054097261375235712398540404471942079062155470841672862563949999346127340833100703310707115108168929527926995870288929864634881019785952196759519404821349026468598326939530447741593848782291736494197737174376467403571367039493915881287350541380361662752446387208576421563847042244866178586470313460855769659857143637325515672382272171245566213078322149744294379470561137883642583600490912130150033690337328301966944000189761147260212116014806752983680974886051490881157175472321868562094728328385170937020685836174629359737627917173863537989266114235946765716292145402560728337964205376463853544109591679865402240875926183771785903048493626583025812165931701112115825616753134321475240225558146870532298426549440994743903044434782985615041329080251417403777630447027640807109842944353590864728250479798930555281301470105344587512123353281085020283655306951864640351828073983182312608446522122176563089306969180423882560917276180386924262212718580007575384895923906453347334516927677488505791784578366416983038090574244296808880658569498579562658642042132693478989241836253688040088536609564616867551648828409302223744528593892312243525129267643012797219239429230555554802789864630969061592950514994481239948021341410601365405144769403084620262607161229134192238942643788407672048048426157895653922236257951879982901512863603184223356912557320451055000535942445390642270304847411806457256276520452024428914951829803274149133584192479091021689350371787484511993710505961980583182729301989998762324543835322992465306315547381482886575108911470633099144186270974239932562223554929080716542835531639694800367321987688653194894745007085674817568344104400609984877626138407312970010629745246973274083395694344342772201243189119891642317495957833829648267867235055298777955275299236763710610879653496432357473238565136134234308803854299010623693592169492712753764064070536728908426301331639712295612274096999060980321586316991231120174464633244087920607696089463728511151878157663741519419922033099297443998477742261772790636724613238349405448221860296832248410255913338816420247688812563595257756266976313557631512539331071529954021470442549741349166442937612941543278619864652761688839110268834492317728372621694439632846574134932399598407340800889962148748833412309147097219192385115737547524731477278593264346081289441698150502792243761125446235912202464106098091497396328557477254338157956982855875210240498791356552561965417121287984155007942564893520566201324372595163222761864410530813958140961597420294535643073774445031375451717754843467824323641096320377983132618887407952235618568988957625707291532966119354061297861177773268510855154754856536547065565786860892607663786106567770660009014576128731481280009129221369890629437454057995752193504889768796394109889834096503524513961144232104635799186024805877841818958494801606663265471772124672626385727806721705220086729744994373292334970373380126145149933589518905162996873095712634694264891523831716034783793254251882173786279186574009048130971026865667145990790243472859447965916548293397228367201310366802397139974474385846638199457043458721553813783315505811766634361368594966383560032682379370085226104149295068412007594784759920715829556026566521413155554675662260489304996788808011835921718123827654082257973253279046512336811451736197038883386275573800065014026020926727833984529576574130063142011200215518583453484972167586090062141178590712137262000497848181940034024187711833051052524250754881653356649341687506701895799107986919152098017229684167451730767289449947272007004635585539441098657961662626048175762107498272903728496438182310365148712696971496565406810691036845208259179791896094755141573167289552264512248895495246052976846332175948808061278901144607143783197763962174851404707793942680488624499033246459620723999601036184311311282922301098306401065458613903286602966091978209938069887588170749300426219175730548426608992408992250318953940994058790400596429970312843267628462847500939229229820376298674587012299266674464122798810907338436030478080030994715111784320804879763565515826527417070742993354363469532958036197732178714441315355391556191521032655685545394010291996509281818253442200943467706329033111438478201091288173933993762854688510967018567381736826208626848727841428593681604156553278939762066442094379425309257342722209811269494995620224024891309490989350990374818551267928805766093021824354463736602007275987856210950784203578740939941896772720909381880180983671448022065808906303627467316219844837177351912282030843939905229665482563360440237217322871033412636906605520139730472949173848494033435307788920447906038779193947010788177129600778099067321489464822494008633522223344437518008448773339571331409698255820206825886301637569086911445473119303336024260684242066170108647382616679638125703513389434078018005984145863573983562962414127603635779835873001598855095121759452065878205118294650914620681689130243223306878553886109276488732735235428563890906613199347307604407316380388276132405994995081169941095971492615199059747244990932090841940447562366394136026323616227407050414397887056716086079059983561804596814836768390121890253742843574594436889266740563629494230962108963479744346189598141516687805453982986275533105192569486679423939041288594207172301393112086551779430673551268826339444292606649129422654636144595160734263941202112539862256684926342967455611800333787843636648236801907201845356288810922714534085632892354872296680952082960663399547801935460253136258662338491769145091671707431703774389585365935633947511904862679015999705805860235483954865841370519012292534573263749911559193934204312159166994301573362551880035790008773288097255276319063121371911316905019430285188838838923445969322339172868762140440458256316125462753666253842481626289839272882310585967890461267575225641808849245109735534270608836107524156730703087756511297524343947411868620932757425275613164471731852678059341465661465705095734429047870874574902142471838209052230955380726142792571257219866396043887306612975960950375920444548265212093391169850551201851140500256737605368466973858037690141311647363109596062382210164654819543556828881387063842777284248039239973181945643738562827213523662603502443820177120088037083474624882485105389456517234658325670140230515644298792438044393837747497895193706683515367050221363827734188260814922768884326089911469607464343814956567240066453985644242123035942597449012185890592102737710331457331074404937764923661419299270648511708409672431341125190367107247276368838187089652886953087334544034791349972708405554249930126466942872590521985546374260842410150639206368024795206386627291770948468865279027851366404668610173902098070583838426870802665425474504059170853736285450909249187360224177018744471351887853979634471173294382774465927535499233869621114933867289892341524344029507494198286121256732775552136287368187600891213865411950165931984010473894585057439196967505234210198576160155636512558672971159901409735183851964817997190173787831560338247383675988201098032802904674353085985678202268422273688076021065189881771616545085937944766151598245432004867071952124030825185437135551072138019548610185571205631629291706388990965108202413172123478656157014925009739657753435934249854241441404990710413746713619858368408907689182877045774433474802136159494033511196193784899705903080525992972225272094902659293476596761868675678347641572960955643441051332016317184165560328796461446056885416933037792994431039528590830506979355256202439191234574181421741375466834988160631221966818487614558997276080793565085747720186111778066542788826594019039391774646779562669989817348310093350026879378739944941077599466303169314533005433637707618381995855737646565834794528697291885059475772380923132507625317965844333563572039859018669551693876261859786012579658832171016852213485940519754051567053862651102908806304656337069058635454670073178727283149878789748045476211736750005368219212327862503156489191571055755988794380469034199029445422388649591728827458799831069089211957257692343803054247712479271867687109096042253256091375393864045090230119384901175238867939636766632166263285031097418413004179639063980037501446514727447964742150741211954407412935284352502483058205822250017886742201143411130308851086408108754950356966797455948322333983085682921165916118464286333971661297902512234684768573756214782652096324227864228957589856508676453355091055253736909974295365303703652187376696170683223688020559884677896712545384176618630114571345635592095855349804500293188113288266768715111216236092141979680996652517912618417646501292369031302724424244274493651526085156994974827152447617601589917939850402854398307558522121249266355313081974240797355836252029672399559923665509984067929103046607360095850535714133004884913683266193741017656292010960367879812409791712043470320514531246004568509862378371832106649235151839156682748545782112827539541759020106444823888571093309385537798233272954014006214840001620062724453711492624974936382657466202462018317897093399592635054344592005439019875282148419508411883408489688627416300402092638448327783701238156959701102013488091943603211867107177974842340092633028619274049685089235123496866565699736136937141194945002537697235450549388791293626270491389516132987491172573853950811071491308244472740824869255631493352865719554292016268737511345039941471981843995523217021293748621212233597038672509736716905617613075075419341608506232801679061901027669688831530937700331136999866332674227362106992192618729909639453779423467775205869165685340618981146747425350957871941915863470025070059000223434353024806713571445061712929689762477623811672334366126332206382204058718333966685509485885716950130991994594936933754879463897257732142290843488488630398791390403415269796517239463429167430298475845509856295377904528156441451373141205189464075912702749871384459348229179816987201745563840935098361731335287055070579007836270738844935817759247704037188306711859431443771284079030522833682887806667156755115133524665263098840182441082673655940413578204243412411113542999981739771809076703958213800920447995724891089126460257486067783241848988454656255493946324584327186868147535810668613370376025754830293927036142811171797907168860245022056220092462632890796182651962993513273523626228952574112434143467587695049008760521600976075632982840341079825743170399392344961406423424387707161361887401771440910010879100316137966537587571119224867324277764812823061121225927177236919523169924345453820661900975773139261049883412746014823516116032935741034401358709385232386752492358258780144212559273043810433372560082543090277999831398932415073427908635091512724600474875530522900059949808742327051676183470752235673300681491949328333914438983379127467401897305515232952346178816521451411315698540242683288225828071911977115316193366536863747222534550922192753404848942187674099202837628904611963137722104166757585604410915047772952671315880271904829046113003088204139065497876591348867270505705772441886140779827327742022779332647055753162040173381487298091709256520257583160272200972590718882049322505618055024427444445857946070454104780967656614521529723737841408468102908081735502074679598941578602520001201985784322254782014699944569483904997892793385458574497634909950900420351791848304536568755991463621336234559381400375157720013832546857112154983888369494502275884397561865792412538846993999893749695261386639635317402857016260180830086567070444551804818494044468240291711093645019232554650883511319563342284873303813244846492397061179254210002687598425706638410991978664196076741178774076443724520708189542663868629545578417482107837014468258938192476759040644582188246553027974352310492841385559894975583629300802717161743939253059840430411674409656268840831323966436132257601578162148327500992391541474778923559597884506938521378076491192309439361483511684253472124310196078757141159289990357379269612977642222743382298466871582450603327058910798520068031311225731857501202455087913769220316299535047729266670457378570360351596645362026039066638985926897020726171836625293074951187516947521860553855643462321005807259522734331455707471908088586325081108584005136711919316573355542220067629219130072144277632596809226730113324213345135522303028678873294850739431554104666988367810887407121288280022972282165402250107303726949932734397559192340716336704117974226975479950047376973428646414781030152995562120980610639303086245129890417944659510954304420518542711231759568666957150940727421740863203763966605804392698023246792599286213091225683785299928676871000110574570013706783251927401086840718254969163308933072183767040275269392496205650481631769342588772284643785614904560814363923053251744522895787173218330480795527104225381931870311860838922257194896229603626208001635353478694585951961851434855032815912559002458291172956365785395619797916052316383792672860112646476548191363454170487055266521921389628564615162983150376923383256957403127293908796222114849409879536450013943526319937315428903790198751107045006730274327657294581396272787596973182409093357194104186431834494235030088179357906533568524930880809893306583610026718540948325364502193019370024757632353535972183698869551483217158897626380856721442604617589475584301236169777566190344767251818336756235582064099372661860759687884440951569962638702375224834360827020993621098340343369979757901164547747607851831059632341550384407246298931631781828471959776145747568546102698657375338797295002964542392394178477424609568123546914590686599910335800511584397205931445874685076793385075604303797484815180867834692796080814361957138943728512097910390054141704073574157618297553049305188771929775007302912671320739771369065182209488869410873570645783879370388533869168826281679105174393116636339403446063799478430251883968420502383321714233182232553890505651876451988427883706405656142780899683310713744147746654903054639343305971387479048226382313596358293217857331385982215563019664202867842979007837319223325764296756376992087480125957181360023602925938228172950701317364900095646070953712945664924905529012707048428293371741609863190295596153612215541103544218329245510490051012428736170413656597614369296699561003856303625155767130289420907664228125401553715020134664177195715120936560790531085875677996783397496229445445415405372643998506921302694435654895570102545590011708382392878584184782083291794084598350161464310450270914703575823913464083348343337712093888003424181800203522814005480786129480143175841883130114439251093842224757029108368529459179176432915153199724331343877350079435855719976537279102982304486957935578070466593479726935972439504588062323154087518598098258110473116119398494381854321686039590440348991523638408659571869842966791919104685999761174024994110221033879304428888492206766470964651826978059076453659027993503063212635774428317364774955838175189072370104935425448448269673355807226346491830826772208909942974793081781980704692456873356698421822137268306689594888217709935834639347595143081188835828059089825204808185945070344149042804386699156492134368797244444124731906436064585438840465253526401592373526744101720458621293765561794665385374606842832489278366841721128339088311005580928658073565507848277312619324420556740973814687960569617434019624651631803259112295098293143876476225592173120610459635512625165666258484558436113267937538043393952389746528976166848464471910480328655599475083856592741631374686461004300614334947083680188822165527295099547356148501013718672004639347133461249780044983183045376770095905317342695240638533390278026217660839416542661390339486324064629164158217859679959599307956154591355073969152071800247289153464352335476615122333190423887513639634268987735585799044997341487879663884475431839839562841694723629194090818814548142421237303869252028680384798689366035397457830755173642149949230785639638180280116623810132544974284287909782820903896293684699809646549879569073145749222164562786185490007127651051357251205805159631662068420577289888243964080449147472965759480145523282190427788677986324134837715084992558014278220256353287258268212837462422941894631971088719735327783500041963295415373740771737939099464444655146165574078787040863648731950386651922968324251661989238830937457154547167374244641393817108631892467951292804889652222295254421064626597663546312228757517631734297629190699681118461350626076955330092804340075954669654826876966115816254246388520146774006044776279888389287515821068124778714535577804234125802947646419124530071732474732130124887795630116277984466379057906060870479120465860357895279192948607365618234591126889269340339385106357504483760225205128914098470987088916973789879571930249698856131840468047682979965026531226157888698620646306451544015919176050665328649690761948057168634208403048992807656287422887752574746558746136540810650597889684589724793873775340768241653374933621135294014782870980933938498331424688716228988996899153737328000605183213545273710602941285299634437302247829282577446167191323139036706398945400210676836165406477797000372828976294726109357935684133435669727811552989891043196385672789880277101285600733680036822374257389139933616146333302828551891374580417907737838018794752580267140270893071111244058498597235578291981962992118679353538241583892077460174760880932097000919712170480231670096113831334944636988124096724360099752165020397259758610309313404602870783874441357513250139876777728964408758708574086249724705042072326674181445074225563769159854709178822335964257684780719999129343165451851953853701114825826370109650056743387524795009915125288015368610797471688237706018992679293079090426568374513941404250135450420579156092272823572724961307652226168520405996215144864283885302545851866751817742687529993798814660470348000761035649967389401389102522334111809959178412917705443452787619799914467517925769571489228906499133769645947249725489368489353420405948645667586561230333243762800633033457975658693354539525192721899966883403496122959769171960021240389509101724748484587119716648380793752666607617703764134637473553294198351874774924455261221831157302623209936306320199654631353596349009533824250255216708344253435961103146783097783788005579221244379196318536311430603510496568608429520602082002163181738237334940148340657766103876190273677848416225096461392282274667162566874181608392325358803229452794342645153410867815096802217719007282114813287049629583587879446184095484663704010294530701552721879790644512182768375428067568655142811037031576597452051264528330752098606451191744394160655108638023895685256109343128360713932618897661491890754430903161526146156331883540766031862311796254873490888267444299899976490125379828112105832245802893415127590646727025845738323478654983277806150610049575072123227857793486815483267319078680168160964996749820055590219175403309692439843451189669394596799475763495602946725359161796362821814431594861934777006684069807588021876227157313273372657981907327391392037859412772878359073197708805272202936669566752623823692709018945353799518047800487362976298300830984712460198554451675161419477322243472304662613884092780705171764351080584358312896503790821264335834282645208786666810959044549579708750708499593725800304868391950659820412995831821547306130914943223709689342713063090402846170074275767226042122184480439739277568469332814978018586361632353032329960978298911198672495411769286227108871476397444371344594863776088873271599917339659001240944272541830121830061851944329434127041743664091426771356549283974386961066216570771227390900110793460466113945354327292035278105227587787225621263555406987158015374091103840221225007502427806228068563943168602697756522475285495602334977498557974169475038585849868089793560412809351923737510181487865540759394344709194766078314397304196322438558529960491348035674751659949662962484773412352752184831745046217219928113727705917851017921371254642655701894190693885118924417468673329207872869260715652016660181575994531975719317891017071232639137889858520310662050689445301085872808412933278295694817388487103878807363580347692861213092440431545851041000767475274310430359303934911357043662282157363511040205996115089813902023213313132749464775066557673756715828915206829720470147595487714239438281146907664761485687579008516449709074259098674392839594556141271083508518519784928554190407807900886659154633220417875753512351706946212327795491199166122511469277652596029678030391796423823218876059356234692958663448315996513585802990120472350557574694189268565629763776046614993100024175334013712132898218119054026686678243528116901461819996815574367954568296270981020542049448706409077165374433997094249524478454046856544566692872198954033085235360961678318142896002548099274765978103199471622124993507698638283936220825549764030545106704611381027815905636767063279805830239785959417261858187397451300466010197980798397681563667627476886902955658510641904416660342812983186300551662077066687284150045986197361267018946100305341989513930199689211964899742978504140254335403937447356872594923845831304374098783856384647749446007257862261114138391767705969163544735241458223427988806819484770053069132347521305627540970216993516824143055494962669067042790610316878215959699299852295079916856387843983505483434810778610229227799560095637067019254188586714751954625727337304084234700292764229509437816699948607665618483600270455142993955240554127671533604305709262000415483410478912222248506827645612016693436763982200866018182570795682992002231690979663948141355559191190345679402899682434161077463438055527506187813530447922937133803431131839300138801319915202081483433405349619847771412326275486850864977854390340770754734932051343582396415445933811195129995158768390827140938595708140982194831147378192864271558486593887765403249528888886142857695027866969236776513988397663531110457308221306482864151734550867850007171133803366973974209831295848669936997962581020468435679085387099224708028887971474847838436621519410592842534630629976641078249040831448350340761880455879936614324673333504509781947683238518666765479995008035766580243976329800062114067698034002381468703341512498751904629047472147144367013808008339065951490561876449585997942597402254913402516467181647531501599782297299115559805880731712811543321058713099170293915609983386144106330094855516763170768035481166376388628522623184987275101836747277545102301116564618992304622708596816627777758237145605097736351682220894391522468224835914626683002154032834842303542639394017404647508843440541031517888385485158815380360438109866361029530147458163525279088053968194121944107254613613233310319036933842484466406631438116320060514222029737403567155938076884605661615347648147392912990251127737954130254145769408960305452426674864574302790804210527253051554947653683156800236196754185541908840777036068115890314471244263898891727717292879854037748644144072917436587891199240754604501801798392392197201958003310416392243023396756829860210281510811278968971165360991261894659797576787416786077882301995890017593514430452396312404177450776508418964030206189098414663051662553553490282003170989153826189049590046489465758504737686247958688034591361982335850754186776545448721891175762508141994046026154163002462867573284295153116477181130588980469278363054159791126052683175319022976751874128319675211595442832098376234896097305924254003959773952568733609733561252492614210413098193477167879316553233109800801296805554390060914824751482225344366264813256681470549188876962545198389492090203254639387572279711530854144375880923572245505690969092535482384219210404991212039126234051131039709364254676724898853577384498394636236099531939550622333047004782498423954185518700297692092713119410169843906487854062992969480791918983844283349556286066994762843640094662967727071546778448739831259885689935035897296204368540566790826829252116838830097861090338062670764528877915064975031460348445449961373630830934650323326091375967496523214118818083199016536154722314952882744063560937234260282856951661599352723453661124329261904761023647310011812365587050130945514592925673385516797533373852771742343221545858642472048487388371576520412473055263143473107623326084937580716342626718073978896560274032274859669072895899681710162615167241569322382867518350706261976306392840042691246813615399903944069779115882856451599723936977945934152495624980263123366939598483945580141977299492124206375629531259267327107133660504578779362831365851656745681373479341302497640738989704522993589357222280619709673850247423941025061650107256542516869292151098644753935358370515657322057786567477927486418624799316898777617154267190683519102973940424558894377233849368372167083747823359394877274938054725152859886549528466507434213112365977432702772272669704803905174564489567515406204578780512457882154893447634989959101573775376889088191092108972705276920733862167341465575685272847735809910824183474868186897443717161714842608721058164243967714963687857780763180583553270109528376152476191436169944496957681513099931851586788271137481301058721311986174743353593268510569443588893115341764419434891306600543157672283915584706520059735875945520388860809486960077403652730149286850989136262940197073623511940505989532938603775259188518721195043169506366980917897376671680584301770503246178627797512313776731697370666680847812414825483184926893667187679394002690710338687763189215206620033209479387728122632204310757300579668874128591340820574707711764922473321370156595837969148964948543767988206457644468794864610098821596370689327624166552996648248523902150172347755461594468003597482424281115145117830913123013310267163208714522329806449453431641537038340144509130990690296720731805131369430306041234985030906115462316690119314599858919778684032801007984317524629498359575901830102408529240074574875336747624796107755387281723987454140650886468888344694152015880487513171185016197505132191074025260260564451040721520177171026791347185901557635229883983569655673171521651445921039414970570725848581878052171248406251243223265450101776882649088001029680202430757633778505511899439020192919467499050213946191590632447832765176415473163612185435070767528627917654033241725048831912306365595522333482989454694008723607870292389336122103683766581157516020227462264630828090340837238090551750145904921761614117698725018122669759616517258102138401572668153610620090587475356808568659561665310982913661356274389928175003604497712138027376848638760417960112773759881212694355869919476572916595500543415431370142588753431850495514727497310092456251547140424084299493675713761210128409147283226358462642505584708324165554472335972535994013422143319415688932447784283369755292714839219044781378938302408584598854130157231705700329082088445812183298849603751279282035831764109675412950096770281540961966520210215534220352616384902335934467428164218708446683330722158715139221146647622998415159851330191716173925044784903546280851821308517019832836752130073021979593216428605776062052392244325329814836910224512330436760886199091311399235448128409362392338182675568428452480415665490066333509555703343644794863788981096050410002139054386985803503010163540253199746330825740723700084062259158372143989996897433177340926116949692234782368528840441240133522497097089364971439223391574593496224409410455169791235387716818351169178956046551293397270093374410939509276173071881500444791396180482103717080690191139392201911415331943632986499913297472406592089343041515413891680272084494594219891962572649919023633183413186850245339811404376463820994417018804885492152869215697590877542909411579865104114895520003786155352612362469701665203898783830086241776153837227220655106699521514763767297263330239488780834774330735929664195051215130189485485367049935937164369180805920336340036609535458153275627589311504411978970253520716502553901789633852832749324451894347076676925374982263014739566904216432618360930474966739020000477538409798135415966768021680774081264267592514731194978835456959986737553618344409313225261051654652432560491745369145914959704876631885184567955841418290747554457929860786338356091407158037897794428902805759308895257059120397321891816622750244071126311091016554661017786581600750097792025174659223314528650892216201691470461711463805925421559620415771616997450039880580362280520020262558664377853106382585458087746533936737268055704541565254500629130158667784116678283484184968380345965865209473127754293568095744920841106548837431917167430257566634637439313352780037614394754194866023004526076753762145803276826016093833326247524305555187043392112311336072101146416539159334664811481651400291323913241665137063479480642145071903619559204834524032771483438145607396877493340618680568965540651639271515768697779066430607909593005220020781133781117210395048671584262739461228707647732795778825351357041677058360921297539373542540522570792633209379994007881487094550353667658807952241243225815129411977639905523748690280609490364526330791909698481321380750602544839171005965546972554096716304008954662303661180009616680607925298511314101522290656010069428227339572312670861817319617076690565552945788905286484935629610665648322786869568469711019685318677207678168692678909368771133212038324386890588926222422399131275357546552231471388836172893558041181458755062330590355558766107243180721413081062411426182370544870317970607725157683592536232106237998259170583352946763426075626888443376354467831304112628218076871438301635184153573316477092043429931373454149209649835721706308812226960803941584905441582735889505117491654163569591596146364081065174324990670726422783963911607310032685967652811438741636871685346104944956481217582629709147695230864560004305880463253859995622493821717200518557932455605232735809607870495904993121301743927473093720556562272430139574938805790216605737018584737497290650592075950207682052702188171927800396162012979925900181472092874419902020803585439780745175989804991673526778393530135973023350872601430183065319759886823165103412401983052095577910512897882030518613845595155394965879347814767960397665818499994772594575654071028191481355720304310113245023872891100433682464180362384752716075854491368320416788798890000798599688097162006267756343971339850888329284632501657757338106398586674828183630574268256917880775347456232731633223677383083583609875698236498529086512583033938238739357864063779525972265424164919126375268412589407953728297261351197746638952802521729338213935999255221687299673954412278948036541985724225848679814305498508421484327447027801048056680269524479773554015438353240330481372547900323221852053396103392464992385352687500076114445477785464195699625386587193270719807228160323138221227511209842338296548575280303136322664809207022774368037777210223032775413281585552828601009943498125743239811556949772733709989854809499848046774954412144581297270759788984471653041990783173911176429213789008336831008082111182825094791271250632757541059389218463838707670642319864196398543684489048505649810957898313972803088269501422617027211535136323466915609079360440161635465497811956199136059419139164337133666502433273630886898884334754336619422486321212976779746342871182327574670660967142407128702238147088842188752734670973181200201285115106380509338891682100777861266479869523578652658499535594764334616253815907864561482254877513153149248475306278069645911265794112735554198828683599956302612432200650235675554617129665232248747037849714812472490254817361667704761929109351914950956185936945400114190220481239494276066279142881159456795069996508480623325094712429152086396294082421660020351645181987333958504707966719390607407925482264103975996849674263135250508262630033364927005302968074740279052901493119073336538813131461916506535546097219303723055533758049713081511995700730002458705829025082653056820601626863568308802021346307133275036034032463915042213359707683118707974637013286342991348227042699766002822277648105619333537539795861569813579613907520758994602383552319020592109948985893863107572548766727816082992807282441504422967216048280751244843717240231072369887730969139871068612827560807859290020563592311926314016242120758061628478863584105885688543993437859678083238773859611778399585531401219338621059882414026449000015046583458344424649058890034648058031534657970235390828207387529561070956095367476184995452352439412852382207967300244603193122208665983656713266876700545954987689192680962928340652676491306067684976530362672874353616857979325552200203882556226694226113269196119504951328907739121737058206467031567860614258780660620968151785761951891153175009319294432197007318402483256742179907662977953699407011781222237301250178504470798881795070374453183176388442659463430182469405876152596837122958503997602995176460850775942634311476595200314690654289922752018948805810996137204208843900023892798921042464801683238129984307747808844252427833986369152552563714299191934561689523493063688677237733427258581377075448001240213530805623544814953614612830856053329965605660963405432970673885168327382176050811514334764776816157277031916208856271730662863893895423354695434846131490694272819516317274019091336430578075651056034985408174505216546768942919581994870373529626321104192156071005356241956174841280761985671972714559058143476166925654906805786726884555303335344656515176848889037618299154204472203659897759908452543182399242536727008844235477417170082129617522671874070534779958978460684540418439277873847851781587032850193116872523750663878735262007903317507151885571093271838806446081040869059924763651826131921680397115662234615373197754273074957405801813130870474307013364153178367489025538574592053574001998973625680800620112038720866219900591408091573198875196441906026727034267719077718189315131793160869933410510929642255516982500589645616305905716791159763975363460146871403948601036188972379019190675812962183579499293440069737197768001818326929348907419198335706394565807949546192491595888325405328265453480991894739613625510491271940016502115543320744890869082757678149402332782911827847264063826027108319289814649446660868773049329131301468420622142294965542374373532479598851831693748867501269469701311297413324043198558785440857008777644832743788679483263843723761463964290711942129303124888070703422572846799216107207635428914115030447691217435007437497497082120882789497032377359757056380701007313477776286644166250513185367659451241547525954997806365861066846537839509942543189075582174618934831834989861833264946872334953241696865124289232522978497687929874124198148731054428341560976333269682978545166071769311636090446776862755116300446959507957510227618989901701056201364033792505906016635864910341841736670587970915544537224478381839858266484966079533660946261407516079419546918164294157100878610591349089597942353058269807542717181104441277311047343832786153395695531948221671096734071257839244708832419379374964270998286002720593996624636522190249180816844464364950361269683186233170439167692077026723414790640965985131608188113915834241233170247768108097271630079586893253213446426293925533774134441189833607032058230978878166190736353014393933753010048166867520947711471561030568003990789548386306858414076624893514147692581989011636233063592605854822563438254858495508750466078273834549765865329012592148613110608413199487700901384937098796732152694937399724869980519171344464458109980499786318319114734098787358036520357824138556483487260098617758260248709199891551274671213602659883592489844937448273545243055265508102806024732777573264807141127921735122422946708949135985978976956050119661494634749016801399808264567040803414674429141661738464116356500904388363460578596993153768713816978042160539963332869405085734595834095255303110521658314788238157120056167076862111384285880400324703200822003649927177342646305877110864682711638757046069422834717555536186558915065931069426089803380280588901918134373369811234041780053230808731699422041879951027657595839825695514176111937641584285602147265820963814505974904013072368596475015464294324466753757499615711549803636306712928437203787609444068970433471970177939991123413600207096559780519415363757940998244051393982637177393385395035006873107161172627789649979598063828154994838179829959691847890307634421878926501883957715084083560476672873246800101991945594376755223281389875221434012967164094818658293344748150159114809143639809772316154691301430450808256500859819146757987989319537235575342541442507855441810341269421698516632800183436019941772064823089133070667743653178868481688198508198515532635423931219528262626774755239944246164510400903134006442297841841243492135356152677689730151586443936281256429256676346129638155753633692984521541927536074508826324462039677277149911518478064033420770570238936112124286573079555497042781651996983321115393350954314901856272447219083139426598177352305660776508249641527062828378795666305233025093624799368203286888014922298688599897505024731903027305317225968756110375036371281257224175403826783521497583505212346617567087715251183946292636208883881289596870276786673470203533553666971638016169805190707908576757060157743956910600112533988806402761625210896394030474270045160102769656165859416823863276327186796244366591011693078811873548142714474137276797763122935233720389215507538051771101367274058577595692253318238009914630703670870919087894799916987453401970776797212328754089246097565069782210081437883144908987325423643340389888734247083696528971792678898619305224692740384490559382392883252709858525042871221767868760872128152099626250845791710609867220382002526300336596945063534389652843348721801860034735963494682361584372582267768575990440176187130858787719638933655665602141026181170819117574450347825472595392805769373487712655005981225737684979459451861546812988997884670351656081731928655066560085030813801041234996563009663593332208325518449055466081622695686259226475893044981700127016486204992326713504322939645452944684891526112402324275878022653297895513030785584368921323232170853487065462882367726499493174409829071994587150910133590264520463823847413088839485377787374778730580256726503665524597438655392886517719352770919788698312526216194003210257583079552241463322774449832306337694246765882065280108390101285050950162075931234033727236835578014284752956314959536868095298649575389818464558695885607845927314813167605886284926213590926724973384393467547203238739081674873266841608675259431069189328639868336013121688399195275939335356973675987741250128944097490373570126280143315366538213031156598349911700596600174131765783560076804941463892399305324136398950757167874448076809088147569781454992115153899625478501537349486989341496736920322548151464728339325201614872412478682315781217117630234218153401705822551297967940357541560323972827085968058015539353859676640635362697870895744994640094097678064447319933948035429554215474043348527773869900924126306525498001508592159165359481658724991816464014841712680054749702769570072772741463672052249549186573449175719346041764345897896379918863226292192057583522509849470758452502475061023529469932775311778033366471091943225133732525300285844998178063260112958459589135246731307416645124665848304018978596187421345864363515413105171256810008258256246095448199339100766713966532654311029837957813169741785668457602423807529495945243174963768870827612662492026266767303332066779507108056614515870609056443909681570040846799619543175166317745400499529683300455376168038867433910037895178359316707806494609716286144974388566989557497796181569844106549158415519953987170030036396181866137959472819901206896029485288416082751365877690009504201657961207372777804965739115697865293625505714773960138526340762823012185630052512447893820758545152230616887601103091251286750881034730669506038928974817801799490301680113577706177251819561996204378018285876212328795351212110533243290466634531055822225338297404957659683205603859903208060111905900023466444109677964304669913429853526452197642533563562788085716033540049713860164528555780531906230447831972829996706824704726728883776541857649530320720362095670047108512562403914386014188695955215424853321675833608967848334035907511362068929527171346893040206182346720488444874101633660883040054817302252558958153534777161561726063714277181987087401429192647102582882899470369014770002943732525865952699996824329928750782922834388923605841118434605155988187523021254204163826032971449403467204872957215028014993213083056057564519232167977423204521264442930863457796939702704616369709788041043966861183014330893567925203237668519567201203439704691078335794155183563634410434386863568796208000217469391890426161079499646222200345443138822313952797844032560780321394025171741996944828004968661217827807728286107422266473784998412787669452953913595242449231045871980791045825832074484009758999637672713999888474982470355763917812990639956963383598991464115967871394160804628939439041718456800895255796876748147563820919496021696940789091837730762668440779242493769171435571074826380605174125728853253742543961634045006996081654714570066797312804776017868720223656439683117169127098264586624144989653937320460877953135360817581047444671816048576623008829948149157328917180781371009043840314364241341300751043180432053808459827894828131766673148642167799601522046648540263966561229969466158579287618968903853344818637161029189600300341096440416132449934010846253401551980828742521855057115142730335973155303444888007740163310215018905671588783151174656304015043966694556869954910869467852081217677609090065761614360716261272041117228712243158672541440073166433755358673380363557905696124845477004945068611558657266364489640232379211076435884780071636465902759061999700976978356430874178023742632176919607546884169180313735762731882712127491655927036133468183625744408087382103299825872472253235658808882965177263686782331917759284386759358728234808953284641754601678080497538092915506602364236115237880872072289901474532519252336088475419002810881016765095682506728000374041889991814021159940861100029389701376867851568608242164713172796118528877318015488512798631718376664691265009937671933126262279379147503588637502831389746408427382885248748901217240706067250299583734683221622765518465292305354481677598573147491550494425137297355905590281391946297516775960295385618272557688299408507971774847374741967259657808365119713768608216334548386898125841372597309489150563387232659547709052764134079310047531639145030483747522424716508087228167713002486639856893522717673953591987381360147082406369367479985449315110262162602844924791514382850037387739872067266336523988862739762507664263245962953699831520865449986324485765055650531703649168715661496573620048427944198958138822907159907229414120931882777079124156329954923473239673947803795252884689627101431881298492711964848706084843566553540217511702405636945835674509713681244573325377720092531627653020291525443059170325293528294233009062688805503743238931705484237555662813381407026985489346021685608632321127383648854903614383169796278116637765710430437335846623281734642728706173470100690187962910349971291536660186965108849445124050285871104730172131088370024555570616745584639647954918537889367149230627655890177621361415749831493783641726539556586732189682446977161002493215747855028325661833476399474868035558728564682350895176537507593125128713729573332617254447793831609995812813830564719591652572090694465391792108288005238385474426523207073403327943018843804497818260569478070611078096860872576635380726728673734007880960639820079644961256718311875584397715738162726547978833541062427492516206175043120863067418057927280753749453532904005104141909688354825603088473473060435793604101628296382802067843761921528112933984609643590532988242547783952765196082299422167006686334148561330160488451739763952323386089731726868548332613825724870895350582056766183558025554460908628047561055429273752915922378734172318842760990328993264380929541723247060573565939422939021852960990867105785565396037049363075784670731227583917348179256882684664833598405441478121743324623884281025326095201689849904527047577034645468736435904032205354698634957764798954351002435062441708888432600354585914297672801171426391871418427495494495913444057029357994087894804926259541861417454015676288387065062956078225995363183438637881826124427773618372467073795502100969250306203177106186583640372461291187328006701704164608384409720201056293425815065284833485062838463270433571492739430637916239585887328717230246903086474540334688711106422735165256253243275992465411366071239743506271950107248619594331270460652172328427987185454997575957932973606117958495605873279744624651866399894328961578796312169346936236264627543561427072164153936476870169387331319854457367709543455899510028352103330146196263092392720214534146553177023725437184436163162581910371331449264611043671278232671259569626910079205832626365988924014800788427281242800968956582829863734130681343055154303809599087274010363940001454726678802568302061160978358287247706698171508109885560747439697032147490291315093513620415387963101444938656857014656650609874902093797848285719617923214530390362982592371741478925152361968111713831411563260731474024364665533163140734435325717937534078244606154144106100055482339458565672007757691576343181163357782406828181305393788158336177938718805645486388948590194122341633142748694047170148433324454822932420346922089792812423022073561658747458005557027927449514298088287762868426517023266739239985645039215497305018810754543260183895139069092034900249601494903751376482233561633587559639900188708568928402261033394911821039344595065157043503137828013742596879922509389248289430668721519871713276733850740312679781899739238760847882918111274495273886242834155928932037184594555508242401318847541200798063549504683111799638443806570001545074188186311492370659627999568701660397220132875266749926110574753312965722985081615723665270588090420489443355898099655435053455719686819752536546629897510181805945554844177590018176165113553370910591026579133963082758544458150806000298813436517690064910803904032918898365756720477330722629573984717836158582537003836135083898268766351426026659545236985212579350144699151275918113532481488623682343994049937629237134405749076077087584391590228894015308252625853918981361436916339570487193366491172835792963062394788789092057789526445284001198345210817067428341158090515107201864564495182110847163436124953995383426267225187716043537769632473946029687081605089905674296309169142152209259426353573540853718699652635965842562576235429323474924445808372960243190734570361355860592018002928077914043230878923964248024015359733782992323781053357121157591612714645605639246869046060015333925136287355001321693437333907139894392643139828351757153779876388786881060054563717886368254865554905041825397930809698261951027062161481627814800454918788635078353125581863397323476149485906700469464175793104646823384835506823097396347939938837104486841453830446061105878783040235165564405921060203217681259153539642924227728374366580034539319815323996344631753950355782764749359916792187451534591834467926311877576396746550521227488572851128689798191648642378326092207200680112380579313997048822414767016915787256931897023876238060393171600960293131734725861750467220181518002008880844687242187134648905686594132604192940359929765475885899417922322229614447077525703241044481336929406961921376871604089731735989229705480585639451136493827449343387881751517478738227853183319537530047960493330999324803449692043046691112764626117103513893831991008058131490826689745235185668141216573205266090499076823870978149406230036634261672072745875671677969321799722105235949958918082250677003195932702989309163568225385682978896219910893810485351761185229534987265505668719552646353482877284116360099541049536927756866735097282216212091964514616776763430007391210292220418886637219550773875254650375782447547526432282289261544717251985024369327953887417963594919844833802128847138037880155086327186679088485649146100090272810219063464632910402462731967550227372202217061196181671341310366876330391212103751628018094270384113089769642113594690789590376115046348702375372068676527106855530752673510794466021687637622237529783089091214612152624788517556160900726823900353726431229518874883825621552525105635717820455532626326247934511346555650887466055556402114838100589619565509692443265145587245787677831351434030495808551665286862093557040527104341184743521703613030920078695779436852523102948062030229464320946895138103039239872702380656328476835086520059156449853734834250457695783234786952011600484362486986988708322491771468276463522008596227655153394397104191890166959218229109518249422933776665388776725663720068964881212077621989053449323485818619198967589801809085166668232922240714375880743998517429613255387269695254030616727355473559036199393795529559798003115328699483264420338387234778444568245675664098696906400851258723077826898781310186733324867222847742098261932399086984728257406144251779768741139829472382391139536605863626587573823020506175867751949752084296834610134400007116060319262833744755831018448648004809902981406031169883422235250997316554343479329603557206834959749702484097147129848304380747298136077024979839078476264266760909257444380470364204507636320534433089903320945950702265662636980942264387336902581124547934732010841144597572858891344813582858532639523297058328830407113074192915651078843319254855796331993024907484428718142167316144795265257014122136184852724977888507710771579447187927628510983717069525443063466584548412881984168406547315345505480081434262972582957454261517172970885544618591586032500471346828325812701609189706800799345987816806182111322199299266426745329749284011551348980571976909093502662733294042017673022379108834810442658339143436630845294302319420395585131742240251293250328619693933760204554718082751631989948794104141450355625893065660489335588966361435615974758196011676024003648809753153169030198514381822453250810207077594482730818942084327206000541735512598193285740815590569194685048898321182117749684296913975502594672362422332898358872152763806279226153196168945001829185652625527960301493548080285361540454655765629633819507977534343451468388787428802537499906898746985163458528092434619091790387199988193354151090207934330314542968166426041681205196639783058256131537917814627637967863803449883199948581387144895074247829273034271531096132378730866179606610486773168614519440419204782632315870072920933822908917361030731498080540325813158080365423970398827951005213237536075337044409960535216461091931187178261243398359173365566700738471429709951855735385284092490679132234955946514763703241141428072893362081635356086129772073238356203869135001492059661512715979111663767504199274267198695398277888798285637530255676354552834714286895102190909988132700740014797412936883275093146708791857350996657027539452325900353102119053064444673431718371528640376585013227433602564440712546345802310052624165296549750171902694375516444337730597915048011321543182570115359357749465834987457843665342113381334730493438475713196771799155666788597191570912440181151599506868229538562049044195883740534903015857146715704951535735492805697174577177009675804859634842433701256682830768812582168334910687272146062292193333699005771863466459484599817066892787374728677531723710495460359241139366297586618849416352991464815758064658531290036115079317648265319876335410733158206194612738844849956400573724047911327611973456286288329680458977113338443907553002555785115477576698575445412867595809302727246371789681922858628464372386623184751114044821429346291930014043921312398350030958809140216705621986466712838587631279279277539759577122385245016502730094714056801592479939754067185039807202699780328755937885961957538186899257919396852488320659902486244249924289435242436987163433982398728678845015111548330853230141291751787473067145806079051966538734386988192133958751477735671084364434014694552335725304469904544494600208824382608351038571454873690837041912122062228995718200556034627251404334846310421765878252297737629406369571010562183980809439117241915682011468887926812099154701465010104343143477953753404102154948765391800430440194942144436305301652749210440904474183661039711143004982814718530508436486725068754450509810793448187135636773183218579602333181755756168334995929551225425742598691569201958140036213966591526866608487699282108219592822760240491939537841138833717720048761166625739521911023726747539116092424978688765102588576024189143654015104629345461804518285088722294944576985583849196207944543660837795450023775404812825548647722571781766318868199682423760587735312916570155070352718876839988317160953827229320078396213439647589656191971329506602084417558966839459212871900959014971553287758688496928181061897245420969680644190299124704710169262707106983888143485959431538821465376271208178953898144571566079384298815325355733824307314369162367094453350638553457725881165471105601125541028974152194625485042105450700721172565404201299700828474739682915537533974831731737220436915161583547065843820328368967637182420541619480487420740568391234403639248122321202360751209390218443953243116992766518335926224334233793334450420064096372227582866587176763459575347907191398888201998067730998516024332851753455449358203918980971343897080355543384703593522638077902335541808234599150675778085957365860284646336873765051990797067891030459234871559203197840524916054483179569497229909048771105082078524573937093000986295542994878748851062521817713759786094216895572166449597092922474414747967876148704049539214333432711323172956492805996781428834000652955155490448457812283827616103601117849549096389374607709285068393757159184142096050836236423131706834741243049713478042704872925380406396441553308904381346310241779322680839682479962146152902289306168278489929019164780038143236216094730644939752226064208705062181479950247439936028195453544460149087501763516944969964887472241065333975233912553444242679345318307884272381934885500224116051584429333945096992692770963284222095505878661522006598776829552526333342489481660225561790040629028167112218330257690895551078757921471140408153328392355722625930009693628002800504667221292567307583851235556180660475843456268748231805093568278918760364801734935206431286275818886079975843820566269383657204176271343956168845418877121233278672691724090855873866330287686274354705489299304547794972619810621153834384528975001903673597733355594023079184136910258233168171550604356766755514445986785443405282463729606182204162673545128283354282985418053152928945494703730275719475572241194191660139610272169215729994976966159692634613482212603843119792141495439550350553775165575352155176979634510830183959274040346191780039354367676746004234928686749084132692939732749942488269640128376977765313976552348916453903109363117168790581859035771324787529768453608325979998060889220009059744177905145141414184232263142828019089967717966715091459909084786884690205135384222107030743883852804270178204117356280814810061342076614319419237595701005845364325712766926769790384307318258317773031241019675317576269149675297660772008052824313169860142843538420356919974512463290260635724379803504503793983303565653487687981397459638763012452017918264233090580226920671724682143258072559928477338072705939437595191667854006022471651810376918580973465769616509558052502492500750741294909621726121416714474234243187261542349944211891847412499848388197641395091723764180619559757295513055246342580657343846055511010579516973280891771093695102873480033213866017911056090610332133665025510045220171124365533457339888531636489460725853463143270626836912088010983675866732363535235883801828863364661012984688057909628155966176135556196822488315602147290350049541825071547872379108429973095496034642899625252573426306608433002222986123846782977079968069946329921652987833797342401743275533229132571885536446058287581421684537420439384694179042681826192776673925602154173709580444401300519788693713168699299457769465696408001089442193268479304093541217491425366587299462710080521417448930344266543606115493304116703738445640951216903575625446357282014090245949353839127640895110913111723341052050576312868667077133966086397235266926792239427957501948613585741109947515323985737423622322549822687631919608201685986056930917863598118542718294388766382325200859180685565620641489302362866234383385210791592579380764690809208552507354365693365420547756725629913170620469655289863498479218165376029281472877719993811928988465434949943918500484223904042209261799070602919373151091858569144667474909402225170758239815413575750433665028681394142498655566702020923080579224586529176177150757814383010978230571446510684872841558390467948622269305868082523894675730976790453885158987500790320975948813597595266585323303334068589678811656878602506219123076272862152688653875760092880870943911744787430714567502854365952307277869222284676922792066835236771897602078556169926945753063372486806073600499968431460566204250832175834252250309432038451736713341010569851327042378929707727552974300751331003978712167798481747350370741702066197824259525082756933041579273611634207546516030327340207956913946489206891220291259873631211202940548766561266672348789417909086079060932152123521424751117066068050378161895079671750706235596659851862762474087816153585710106341887080389518414308629496922298001082301930615334600539103892342544096773173176855617026446726744542889675319196521127880808290792125051350751424567965546181546800186762932593381621361147596356594107122970666363322570972180345892016095665907857047540941181674339998056560951312924376243388291417088013112882668011707964315212407999043477556843061010878072089063781554852122451295079919891069525334830701876804728123190941216980043780271228363268555784520538341678315417780550271582908041083665230394625288988063862329307443440620786729794220555811595161402970263452592585347820329663090458209015057655847498661439578972813030839994042882789279750634224037835055019559839783384922872148883798967032966922512176524604161480517421870342071048031985517276920572231445316918308017423187102517799412187988356140699089177565519535403381064999594063241559439820436588035008082814002836994320083567811704919282646228547047965566042823505720509389009291549184816392785557448972734084735708308563155050465488302827632688264383612498554214332586436123834741153183254891712236758294053865615602259200276652540865519453734170845044765112909008239841194298636670500738031986212193551778953224474609985012729093690982476386570665480057656966145161500348795483047593561363633643501695521960099586839975285513488746610214159462725847046619166008068518630306323083501990198341988626569339483181531227326009754984232297878363426376994625118266258571644738015078354544558208788313350726204144177551023523570000304473860858239659883254170731413548369736854737131773598463326288148778569664553850635498761843714275776113378398387198643986067889534352750186233091120965143147742274263464793216508533677219117262915660622001328152011976265142065923382010528973805150890192720216608530592278560661759083133908228017591610659181316506462138840480804387717706064068151008227685460966735089270453133683683617695321068571135892250091559811807400835851010556975598353555894105137566801831917656907564323187512564157432045177534521217170687540866191844419982054512510782277259191230681237547576835464382007635636339753865253550912429186806585916850641226948197728175869144291142094747952701826568338030417889495542879509331299878653357044444347751723783577556993895176915466844856763052009981787515514758463893454803146048441129661153614818822073180432952852901550600245827193416486697496857840118711887771655394850546759653498679705132922771756157001895337099191300563642581505205720026693075939408880272212354905105299161163917533600945576950314894405811948719327566539977434050919553905450800913393463615022343439569884428804400662767362594372421983402867813680550959195730046645930370357762689695131617734626855637349346228623699199077572113785902720318349999062402388854933702794390395323515591148657052685757131611519598000467901412642505722468187650122428075090944201452900763254536939563146740940819719864398941390621572501158637287208854360019362535835636976034110733877353779573063221163300354682749740837716699743864870944699758908501885388674120285189062773729445849458378675172279833864120426367988439561941621885005788337386452633058342088273164743490567103598356916802275459521737237127695175328873103788018065315588031906042809227736422529875655027068041538550425022166845796879447050869538380086546723271285577820190013622547937307429569574542710081390199267044045856034893391848827681438164063739872223499412537618805830326224786163628584712954437071556709240953902183651414665683352336096338766517198417502627082067441651477723341045832574000030424988249373067895672963080085184128338963033417650884462581676899392163851541608377693435509856670789483787921237874907831660343538984731950574169705552625703508263892286319463141976879034064868864787103353885974445010846076561174545836013287371827503884492055376025686391145196032029321692790561277535869457294351402417749891336567250757730731147181979827517885517645839091293723023335124139230083377277215180770918295628829027176078013272170589285264898465144449943635247584033060048320597715049748836482951062064460272292772931914963100878534829208262579934487807184686779055611976603156808521794592117482368666226888904298215952215894808765649072243467672112609807036562484028103195151512910410015304148394086107536600946582511097059927426038584552146289967863667983292485363458636586228157307314907165571175384533762018952695188069187651857417887832593415660483074625264704037530280633814746830190676026179395927564870879092767364553055457465753756169401962817974761617619856305097177344343040783909761136685746851289048656176864469320242188636725555979079188008446715457031124616509017560044048574026622661581294881400709676508211524294544464075384773623975919545600916306697434536591987046040124698930252494773068126284076717158934245685224640855691511138324355165786559663903751391602526975572216614950686486074729912391409144966451343673652741459911950332195318867056489148581805213167683734407087414850330556762023981149195849706652050690781148137259333247875714391261226977905305307531604324183208747638050296096937030785630933539618975898690772644084916672374713296948532356784150683726154643641077466577870709151379094894523277123348631156966426539766582446871780412884689610693166731362824314961175048501161423543427113172912359281849557277881648319474450244141485806153813119555101041902052876225734190537883453661059954622347552285536347939492858086110830435729457309750693506356077709052192993862462466729527292385083648115255629838711065006887455548063054385926433051752402356766118311956145677185063574643380735814550632634067291150905054260828788098906519357693326699495316893295201642554732762574620439240098246695724271461910201795150200202106497550726853742636431906003823500403303004369111874171780100466099810000671059857594025341868821382689952642779365872207296847019628400734796773598799348372537418626912254089695481121468218708524452793136883364136807718866341109909006023428454773349790528267878437846850752821077714376905883778042474012185969348028886239724754262829942825260611570844362872347485878168225663320749431629966366581800664378052685377813644932364462388256952627943939243803333594287533463640612231322911739075382844730555918506411979443371806075370488197336306973765646219635243322320181223779703543586137282454085652149054379137468918647022814609258230525855564755987580830429978689633980425773618465046034511875317172670599595835560141458679241054192743816590608432097966154305347699365075507926635137887178261581446842710549422154597944719736416192439239112332672769202589170495227250551509725117594057149445776884922738129181383857782438933882240113647647484918528949878626507838962943487830944137384269529306104482596830351811237879180517151063884080470344472269286385949337517678155650694796713196016988930074679968804343294641467821043956437293016411581003367530067598813187693252923824018913482796956646938633533676169547900055735645301666960432391616080727769724011658141490852260113022265549643356314233314405358411807550224810856296579195803293096379557809306971776549135456394413338919864638447853762344370256520566794917683028155774927019289392101782824522259824200299216794822641618058171903159911050384292148102221202416009351743350678092260067602734463092150899874247061085165478532521595571094291076155425516610454030660121669050664808498704724100215655075575405739032663128668457006582200354076729428152022221396969094220809038758764167387029532328465623223695476759202490032821297607546955028646788618406001751354032190792929015625947675379265059505612398051393163852769475932765887682015918955744635243911318400952660646239929818403847695346736630087009255256349900624926713140392109537473264865724451209256104348849798920508696115296329734197572126122850294706816735359058285001923691427989423253449737024371766836671656437041489227319795559919329710596869444582124589050281655649286465483188137192199151545893011623310498458522529911547236752788077122517119551002149633058269160719969697561862649205746759547665137618152140888148492477754288593314438429391862122290229607103607869492824876537730240969940130535034845723973817007691852423523553998746391808646241706337650344707943977550202480206548831562158005738221390995362756248721549390176397478487075885466705721126169825005233830113519608330439961278399087721971477838331259383760486512029180791510511118702829348923102495441246598112836073270324227060000301948691896882245857311744541838025527202997061056287695384071739611838502952449953989763240203480532335917713090920093274050004515397185597398308518857728553755563753959931167889303832232441644262857664268794530280769117461662294504485086048273093125555532450262078372036244411827333967326125623042876521294622922153375485544763946499543067162644076400840332793206777717500035973156004478277161652039916747495644146240533859157249353884911620140421850795919130470590632109735470614684813903525229760794857441570839559169065752714625307600717770016036866150173424768294479465502496232401277491861002220426451899321209313938203410644759019511605021434024803713924772284152768453880021995642828199302464918078169522205996235350479697383525496229704304578110469550010329855944788295280535697338444741725563807441107054192598685149000193103032364139233262861892557390642905123035633959106546844171268468143078390406198456523017991751867703353825905014950689956011803766401858293904734296723550045979701228747184338507685069120479608666172070290167090750901977570635839125868163628451049597039530102199104690683138163707376312042783453607530619436150618084390650552588282008953556330001133560414721252805038026113416827141811941306297300793168350737660970521860812594310216393987151731793837607965543985186795515821563682315382929982399219802182367935305178887348800142698408134429167258460916935187362676712096637642762417084273841135341604656138430612570261507823451937286536720191534215407524561306756669412761967690522360975972470044984076314714303600662576995426295306880259053559429529541314456143495837207454117293858700923821848426701859060709706365650623748272282549059451340516444116506052077081267507720238937090245546574816969948323710119617409146590843766275786991358283689503784471015687962068758636096395277026921958955522747680118720799346596133221754152419483705693537426166061900309478625974542082806156043028386747590775724968429160290063611978250861977811309634012752408775739920708809060838268712505896740323188695118522272999564637739873698402249401839797532223234273509577142306183825947127859992216700032174100756787423154074404412232534053757673457672605783039547111662005918580782241618136568678466892498230055499156328695108129748465867402608014529022788128462870837266851847552243470195479233454919002419399429639031494705720488265237730059609612103233332069171278660198939254961945031320929974864912618526659688592538047312067299449109410857468007282487029294514039559804140671702632784558287002182119353782529692123678150114813271428138349685430264728367385921951755588198465183322614665508042991087862991647144177308556631449353972517802816971018836473068635096575874299783055406392079584204048241174374817354832665060429777155926843849562927083899604854987992782987337974203603259749495453135028381426800328452568433954443222580763057558441004335500462025384472270155403715630395007676900077780466324804622601281404973212687091928550686362373992258083531140902406687864525664341923174504019481842577638260837719971900971747421107637788301477757509711639271981365127160497622545306156086284343413086588941102266541151229088719411156604174982750758994844472321470636538327851655050970052319908389642265314739352272839994276596008729985742590996791335367593408952941433662761292197865235060540870609750925668377834171815216753579721869025083863489025467176895502403122340982194012830695625303660527944218085673671005852927023236825765774881821044428742579583451367503003219075571665467429004799779737716073941997328582421084618062074517152514506238893043537146662735257409450270969773162629944163324205568247917170064470557522435688486944499278774279485705299036618771669740328942494785902321362846591674941391920075075352490046481023739606669270046687487175101322580986590634951444188002778055311971307915368440738887261200545205438500454054685093228248564931436439378814203106071770738098193092900949868090535724559059824905859331592743547402440547348871525663350448183703818514517235169411767362882061540705445233020443118527153597878635060867979281144133513786021720351740165068300763461037923873035312191724783917285664269027075560479287539404252923467891266516380219700460671034494252218924625009904440140004571520485163451082076751581075437950425302651148476450594259858229819162208440777418438976723958287178644307836624258071697039956915167575658748364158379780966782207046986563143691418810841443643277173407826925563461952934958261103711635688662594821358785872995151212800157782686394066192625508967016545807143223057134388932871089921277556226039422769963819657462658264928478547876349037631023804290416341005513935943418702468649351236497244910404045172335963617657186794303544912931104122212549172336097098363339688948221779395246798623393798406562745690267654684091468066162902923241228716024425685151871234467240002783537672325263734276026861607880434860077089508029627255844794822050535859733316557361744742732362293211934715171073162933974039043281992706423847245957862304969953373772023953747132622887212140606986717201443038840840587352541250447468228392698654751617199332643732105522101997444431374285664945535650781904746778060317433156171709125323325320629160011739584557992735661909207446203124462507424760419608006752985621465026047158743677082369495505170990925682932521646688127235120165280927535983860259492610121617286012330280200006464905345873825168534565862310425847770460752460779762400886193432090541087770104510859243265550009084940085194923876123919340568537259888909497176776417836489739504612981254676128829594200860292875259705101597549554874582435628464054704804818363870902581704717610354021506872713368225931509863933899936732584418126833895969955804792945179690667136484084585857896513138656818959084438940271638328625534134521341146784544154104782713608130959670904230196426461803879081799606518287791988171502378056029572809648510272468358186149186686269468670717458307537695314050160721386739465750148584591547220818129171584258130627748579522653842937292391677627702411046194860043884985545966876919919949733312000553885922770280371362748177199590373235199424878306869263791365815024376905858585811765016489954560761152128789453462035381120917488220552776237615681744192322012707620421934014406864619038625426206209554802402280075818983395306050291623835788929654351116869868272659686455511121058122470478804057778420738511372994373201754709621982604476750669827544573316057153964148340543106043527374225299441416338211844401116628915322465008989649236195612498384412599669572608229694910896927607432305670711016719578550454204670005679659145613483124289216192911214768197526466655792413887143277124950573488957547531458569709935719587985879424241753557550928538281415602712469377411414616584108576480198637063778128738212362874030547494648503493902612251442229169353803793183292799834853795725120153681320968750870652335073130891029344048510018426396540348447577347361898186963844464163355643087564683984264402125925916490684343405053380205192148991239265968782872084950629181238626985717951931795606798760042789723602681343576453435892326540531481486694912003534067099986360366418933087077850545610065629106518464641609427628945625741142467295816272424778427244031497971888076875355083629768510014371573934555901338110500237298130496789556280135250655588241725015431803437059028582519334462455474531872787426644384396468060174925683847976997817684507152673135629511285387020152055459038535400129224438305053265113916011039242488407990788469071631176114150119568855736941012394056490706887030296775678995566816762570719490423849265408123938011431024046610995814500131409702236784301563000156918741940074189589702154614707373698077245448035593181392169456605178991352877231002554969831522505917865276137085908519042845913885729125300432160733487974911390287368263678921057248294026463533501734014379940938026690517062994004204930817949051555725222333035440034705653954926056498198983232919186561827956506856990450670193165918658690094638647164301450967485183725108632584228205986419868992552087509395631618386499520964443811314598550146758150079123151566624118060542720632666192808089617284132426466988439717475604321080172901531151189481610294840090924694273743586189453557556008405060812544058003459603563305405363501405431523217680379010596972355076289429224780998958674718139423463964920558262100489620386180705631984848804790783318441378135663609999351926980811005827100933462566052639525120576365781397129717175443732648368771273355178219549831783682822694435808106553675658964682513245852988433158832086848325560297289671731116007169914578807767740322272049068973739233953460720723416526312004813150010987761674155869107306766122104164154704628124753264599408145141386289318695274396533890285298191709108769692484810559929913378028957829474701455810325302250166730474530356900194154322582061327105606103240344066173677666722089514094583887776514318492699895886917003166589324686530152317311865175762827359136560120172055243061694291010321733792046659164120151463706939560890035841868368167609486049205298390662092735726128604109534700246308931742796399202958274524604095968294257200577574346467761525269255317365196222798768800860164514361171853796235318152135975266385842761147967321366112244063806164649580770319499228246625379700170041824412795816779252395461375943041016570089265522942693973953266130091627060591407425917179663843743159322005356920475454911350231895555537526006042603730458689459945064703820289176053098532339996830805155604896632838752945133492028117022507385589520343169050577701304568011213395022346949624818909506703583880965204024446249145587064083776882518594816730367260430302406178628235877886584240023710838126212260185365718759736504302767803737035204402694831183431798089345584113124675442986196460406270958835943704843748735816740739206844073161364971269181467878940550900816586036113917510173821958434604034899627139724711175052155327909447208328382078531937768627264254992526153196122445022919932890424637146185453324672622581013648399937364526847789471660046296272437068745217109763790407378775927421032371151065603656113338008793290826376531438802104871644742161476558396888526168588741349848990998423355101520946730599252526422048087624113480758096921155511320543866507644410679265684173669883680190510840695439146331686623810112887272539961083198999704428777135065190071811777996236460261863230508846570738097793989557908732930663921210711031814389387587835062572713135648508059104227598502836904013764762550937137188684923802512411507888976448503288553537823870832301236035541460932314837710834236281974195050976319185725532217055081616810471669959548727606410639141044848239233707685014417675694119874421564528353613429677101337352323178964386688941821025698915690113425388892932808439440065225238090725016223536880365635903827986242302495561054467384592818629592255585382500345924241510044033745615476967606046701565207629275117828735622596308442004202194168249262744820181331404685479842050452527387323190582701391223022877418060220116105896599723482454082633729974989407767355929844451670185365506585425275055452063326918576048729804925992812726547700175651348965912622201634499803475942852823592765000235832178390406073990030890222160983872953848118406399482112823953453651577391498955914232060671492580415513860083049499424334582856734875194166950147740432696564551344787786476864498702213877176536865804711325782472922004767902880292091124987068150885718231699088791719936494768783395387551863432370664643818596122813014068230273959170453458895230757697425542743583201231464477592579632669849380858508733012050412432443528679080927495016680419473378997192614609771423108354235058258197481030724102001024799886789680006165871608055379935778258973888695797610347597022595934392554959855476253955374730482513612868355991508157559227179628517128710805190286247474899604657567318960000295231716563817969708499957967384129314622505027382519207472696542384472772384117804566069793045579838314235935347861308721242753937136316155906124364658706399841441819255729556254959942328904394108258505948462971266640101184321764458665998375132840168560063415092468807075758038555335456979072239946579938036627963184222146935416053345775071744152379820810355336620698056696089149666317359421091803324222742604163006734834333233126620442241016353279067975500569232716037316397810780887311058693459590364007731579311513837619939953633778808366482514285775946065187606263725800445499781563156027287208369584845628391384842472739010045586019194564185907581463899153557585813457303096722498253683440558117262603427122840454676518966852699190174012196950625964904959361301322077381130601981729929591993080410272396777752280659579078539408275795822956260262887483266451727772443484359519096083891082925329217654015277160495653388284082646274309689682636182946186200813826845531497047543809511538254199154440423476266035248842880027678608979828983362964665157591109118790476213757956398205241822618414829464067613910364719224671371823390835990998735788715418721119454055625694477050960213974984760496154479284912387168432127321465693104113440639830531188342157244649454997792759538321356539400411028906388278409665177046471091941601575044641904759466904569762503196398355679766659944657563653589378658935451644603600110240633911741361594570447716593111301382151910396781147202124963961251003826613073581757920761631396224484566744585661876325803119205568817700379245328727402931948513842334708525233078309571897077032397256005085280596949757500588658344338652004632484735765632943202731017203708601636486007289132546895218812658234636359662088714999469345149802637295003552093403890088373150429651961609369110328608530978541638424582563362433275729301819661415052070585379336655353993346089281462067898704702278347615672426900968788430470975969841536987152158479026332272771434930561300145937402627793181566788207121924472367024249025574036058305714667514840448428603218085601700084388464823076465045128774431722239310220703370863726009675031726667817313575653380217659601801450796766394212304916207134232757388335582223907555558481500314492998676825304345618126392488178415148767212474768765845266761101497733330508389058592264123732937345359659809410989943249965930426767779074244208075606136988620065014001755779269027768534146147211062275786394306092944313543027908451017642981469156704387029525853243397101246793373536231247277809111663701631119735317051123113325702189524284666770979328948972196834367482825961808915962186382373554767339305101131162044903308555401099031406124347799572133856124356854180678037400696034428893700960963121161919101217057831469346039083534875922307324945318882391387478001753533868655882599671712423867129399817417871013906932861215471054023526384495368708996067695354254624914973451440852848938714946062256021081317353429998761913821204043300793277317358093463082182159696812158913325018689293726492041067153135715297107752685735782999923074190491593882226847407005422855108990594457990815524001915467233511794496971515633382479661773510899260733552505403702933280698724945687398611263072550815325400514321228271070833377483811737609772142356760550019172325974971307361193228718594868647664857395471943109477726899245479044510642763335033460845819448566709448040161582258414191301722990927840549234588904170922996475009669925242054906709621527565247716716402565542003512867814273137007309513378758842738391912842466872633742496860380185480042685723747042592531836522236410183309153015247000996316875303014315407860688280823370294028294041995504162151846620337396796141808737955733601960062080833181838170206406307415350177517127094857294594607108554435221431541451166816325005710085555982657786693136032149016467502431367887413295189285148761204912566119115687986855653382833865334325998228537529703114198458471293554868556350260997283272696166638495469499035833186433188807836121925738502734061456837683301042390135896946381394875081107414533277040184348760069898969141046989838143525153748491622776529197840215239777610128319081871154233881785007723494921821895355162723550133401329089561948435608231834421683852226619116665221085606722790425190090402215916219223648761539587076652443219651241466137907678577213446481356132505408426929637147234635689875265250843190056134685553305544634378607881958101404697569315730270766393545959819364376426279625100125266720671851671006284595536785369020392244128662612018536884558852946818959099652658330639810985799895933275245636732916701787292463524161288233838207467478629584331790517825625882592899841333098876848877318554147458355342826534534955193683403032172751456543059200968856533880373394528628820303671529267488272372820692219480336811491957668281574505265691292854295897297979837799626690246922502828560088711076716146198905471534854939277178312836429079208946876498366235031675948435184521473106386871411611132058385281048085538886643690603025678636492889056644954874420036120432868141007483707821562837187751359810208987501083438251067290399423078635193713587415646626283449373451776889076254025060007614760153524391269756686928444659679771243230991964651917676556866567206549655306064321559388509602069266358657551832761614644520930199678829360420155562155621230170389908192996687090073582988879426940624605371781707948539024146255441939604619206126761363407231418341817770726853956091245546250134406664160191674220343449368673230480841918707397329417142676269044669474474160611372010594267193865391165990374817495894041380646376989885913435221045478731228401651541164781638260930224326287664140326945054519625548314713697324889848766051869404054442890911496858384435022304160397067478316229096335318378287071907260238065659383489012842382457284653975644091484382191009179629235346468002868103258007109264530064751035072485144975074956309002686768651546366049254831512051237499582434574138177336813941726606976433538741594932860984222427380298717749010901257428051526484639396564125863376724281372536349101163157057815326553587901765990782813323091910558892872505803207233376817345399798452300392186506387717375807915817633889856885165888256057094856526178512193211754340750189733605668353257031615991051589831353951523602760713359933067101265047940666672491990040487620145795053597209998678511768375888092055682647813701337053258015050215521356915925607474293765488555347657269319813519696882358222284945585023203842729800865961648668265101106043645275564686914314637082349274107892270077549579074931208574132965102707834309946475894764716096193844316051757274052000276706661751551136058193578280325192372400896603235519820427842547224640099747959803288690845392823369402297000301933127809993151095438194912471564499281682313185056065919007808167077991900462131304837679861468901386234068616110915674774070643376761734703457841351305559118400022846740153384937002825242206388297181689723690094068698910118087740337052557323429558448938115195695741554407623223591988895551199497426134872498148196534067366513251743868877140468390544552982246543603668260368835167946370489222862242246521644916155058500304102536276106851102884271326466229488692565472517591622233912132476721469957430366778108831210633619073261457069255855904306314713487028199637499363586896216540237480553781326830354230944830636003729657194966501387092265343588440801941101540345818506296848915681740001108305342760101375789082406684103571494038820879611204587469111713964570184014370778765214120617069534876799929222354522477701869099903833221394184252122427604991749783691647910259144081468073188088910713794829732114383154455585592249554581782906955189942353224032483108861752030932651677304497034243352064378011446022405824811323589197560702097386520025230968109040158694330375153878119938591093621999845341504641564988666090810663893084482913514533119839521306213680468243325991739911469277507770610819916006558863927530413110490005732090610742944738809893328007387879771905008728730107465721946420322351857103353647122892424372358992229740917591383733621757210047793866241969879334753882520405326557104144532876049571549745917183674796201038833329912399686234445385648680538489701402646472872823522422818084358272395005273778175722021303691949035195219366969264894181149718581172924454980985769255682517461163493627444418312902657436046370311528107300502480711443163562907704241204902210103546010724487430178868668054607584946251463023758994084003783100352595039011873236242306605402207946360244417863067125333428001021288502829618316490200033292033709430383212582035397042820889341844163945880437152800269133902196320012777348504988205577542258587865253595729340408910691026802159637433013377088097132127661252534283998009482923129269119118576243831993836187384868786736270954242391223510497385832017431102615792730789845662913709563698326444956958963672467459659327541831345457890442964817758334330755173596841971463501302759376411119466364088698586459384822290869583212653595391451749202571306527414486580235195803743871338389119955631847250051392509372753766725355765291022904183001301921637041289280638916858779261203816788404373501087779284302249807995397488708500251128337019154887296511824630442810034515726019649519009673453742425428714790537220561422419740304647760250984399450526445961239801674077881583375911074806880161340208865565797751598165328364787985918920924640425883057720453270242903522998038722654917399599068415349824196318885876173393397537305348023510153100086646165402812255758617485549926281308787729366418404286140150581651785290544892979252299164934510489081650785595051846540957211871731784997723391991482563130235715873791945519846953620182408346200849951761419868055670643161708792216015436612846012449070935189380512028374623201122521809423158845615551729146519161546103563204236513433939061113485737797493700626808247996229335859620917032135520736197728492381884402764762971013206338218565624773569950808318054983202344663179559781033194897522057450708189396804811981386977001350070668192284108945461626921579136760646546532368186717590965246204967009908085476183881223817674109241330732546393297551209712854171877244683637892259232299562564863583988796152500842207851721373943970457425995031170380868243304847448473129133321894214610838636147504818382714680104037167455584861938495709113741601579394124338077511628764108512547088681129003511430773392976837528160013426116733719024632173180164481761242515618597221766026786051234677499564941878976573880800630547957940499552378567822901158143363478099637452448831816532064879007657263675093455268460010045075548446388449748257723639507614031306600943984989527673266942101235737351367974862980966945364917688764253794321065628008518167836863268301503192139410614396820416071732338559208542700391737965297093147021867481408145848577826216379310505300000827420904105528740332322202201851092849396933535745597541187710327020632548672925264748732927411329596893014085585197290457403342959346621211230410315837966565055081525877988069259080676873397032432505546148946622255146395305976674515734388766233464399385524453762754031843290738524490595841129035505233388991583006919027277438930469647056211024596276773915881710102272144780930719183348666116797614392541884923950288892015022547327995267774192024735873493014700194755214474507885387997427768660781376878673687541816865175415096224914134251325929053227960718373735142596098997666321474644365168598136777501515491777412607557968950615106950949474103040377337578657713728634394066545825964012417805033982850159637439431502248386794951615904875221544481173129817891003567377254479971725728853287877111315719332385324870305098806814438527793843377460021833726947069903067545828849620885563719627649594234231668782294443037474414609951417700518656465587268467881064962077458195507539282243565845801368782048997691824157789930075508736489893894897037979489522464238608615398203505299207941514196159865121094053534744412005929635029518803921756695648181317282883978006908468895185155610136720418736929334483311443224638866472688877161494405919878715162198410279007249137305112051632129073362701185979582966090230553166818301199632480197773025320284184621942791695491796228134646743259407103261685945816490112742570172949406575416231937813870679104113475269850672125887671929860127186176019546750915723307372745812937278854268552633158000493228926871272141414031814892024563459866979558135353666344622296100760873798364756458833760867951502277859579494032837393210158976200797318765987221612442853623879782396525262021748308162032720827123515094748837635442495085672727116285212642073997927413148461860933268757259173432839097507385753029173470381230357421906652928475211395379932747248152764079123220125085705891959200494883209232862278189557635766645411878260438441863969184149793306631706077260751641593256855688025609833452963151412148687398517724206324251067208483026916882170357981260913027017320060571251545118897229506790384455903965317915887372297696526515117165213299873124059155384504270191186563198387236489234329008994428725278774328351090240352414134440962568453016082475648734555373342551068164336548408268954108584310772421295070975462996174287410868305679617960481746360329531934687222283428971546673817942713164376234684456104014293327735414619028511598785926276223146504725062519889351619940199523878592610433828792910221958625457071700307614013979255917261480690280035592237435127084845592490349168815551704067116033073479091685954258311644010064612948811021971368975176708301011095729715397607713687139487602751602882386914274220080960604641804108000375308482020554164897332846237159591290128790445078088059691192964118482752699557580606128769320800271210705835040412814925686611722058085623785404154594162508822921428034545762385758310094281892640859829368840376863027239070348946039758285813648784368708528019805139369182358452411632524203756913362560448968577223427792692146271834318966592714301043048303147341855398623775743875570091354877214824607633090834865561422166542756619792251292142571359233581518544097054154044156905593174015227665232115344768544423529548053560022418481247798298475995343260237466463551914374634114691054890538984076837585153557151534831911973130609377144685873535620374133544980245637969587665556985791728834046078416704095615437496173674729876474806835814129741663975321004804930162962869956261670522056683234594076058832578897678247225531651382475050456364079660708559160428853930023176911323118406073096315101086605883694524083030356522449756918867180328026550451717620149449825773134841724698047521553326302824516314216001145748086908531146882497926985749098472187572792028717068179674293203369764062019482811728234838381186867360201291822908921307918398691907562315412985839877715536192169250987525226913858271996900925284630975385828601799373691789974054456329584453575321680096770967059529225809092402410472393447404788498846890434547653078438121215598672841433547309562547126605261751764131489725962556787171233003227148557993822072605791975712986920939011340998639712109632009125678446261748255835616418426777665939241311121118571452066230967223427113664262928427385813371462274884033482038951846514106453371848661454327994618161209531656553978910187949909819650166759042307306312243778048517730181429140691837107539264393218409441777199888511771872475223988358214171732696011398639657079732725681869173776353774548977144693842444463689952245990063196002884126765953876520432827479950573629599110742661572759716740384843378825387605354152303253995389106705829312061304772370501511548799717189947974424089833600490943546951403218382117697441052511024144348553131337714527012611692281113131184320000781843708600327289699053266838107664241649899174910855589997886965424441623311745343263591566624125153489216917794472587311284379845144382334532961931069906531826327703666047066425627735317081927948505500364455994604576615866969474106569039315353936972823067734955709567150424187206168057848670288310091542281669058636084786222138872229290040074451080627841613901057584033109369048080733939179639783235478410808855956544520606400039052868400757335775014027516585062596847800478343564696019884282157890457493097498341230590689146513852173810587948668035118161175952656191376825734216994267593341625390550933694843074998849608530976468161863684329530798414944908850539347290700657165370573553313787218006407150980019501586803713244205761516194665891765882533082301461356309837336953157374223896894822882130810931300382809265664490233210031507585101626859314883019710340584999085728744529635569065611272696323024545543419636408272627491393067107819985796585743961840780470517482394145167333672782209143712484846498445699849046257950617444664442697000151923615297099482324002319281482723458130004286670601539454846159185632126676207529337725894305681219606569188629407573484819578977067009735729773195432800351253147856779145988969969879064380690786194306481430761525576769720362319249112559028604864523125174526008337327133150839401944744146423239435391392070005730009888874902575493347661994860982624984202584367739211200357509233898041428853608959972107728375322987927593090064539472966365879744452284793167758052363731970927711478044016151019503539666577191470838238097553817321149719760668797335147632146637432380543181533565270858927014296202666349094333046491413982632322912952965508775838422985410561897439021437405699134337290055927001996817995246141016060690275844321208537739443871649802217846644590334510885822530021479506882196165736282038867434621489676372146712699430382260573150374257379746282796667091418461507959074532853656774632495076472085488185589985937919770629399555761392604361189701199251591994480290098193266856580335656065195649399494564309450271348356544101390779533272059226833952432999032444300287991000685754711728956379090379830985580811372828523746414850452237530708055317675635204586945777100227571982085173911025380228321609578797353175406284431011976302095063598080863975259214042960058088501459535866922367640748015462286963286174052290467749761858565968465128556384804203029302820325851892133330161238282478387634545683950120685165435218586958952669354357490355073146859897531489510240030841376422905630979982420131536102939891078080939287383266182197473476345310320196955452902799889996217089317241039797216452892953520549613925674594833857415377850859783047882451874092282961622386524798452472733115394428541158972253320783893276347483276489128137693156818434305786319713464195977137523735526257775118579509278788416988820144702306674835031404467618372088872419643621237761486668158548299564832516890219041087327745569604610753027306487655281889298955771084996866825826966641003022985718753242700923732843246177844594825843196182448028084437332837039355065817471974891411027494067840025284986819067365943942828074129856227532688428054507561676880520149233378445466025216300318257835629432026252437695472901854799012005053542792326553110001397196008528606868511053989446864752330368229230088381920447004836338037661766226644008155410370655365100828387605647742271390784378233469880607294578609606675894572846910883581016422996695924526399206187940852411962158817221283238521745284560677245886962863150762650924401423555575082555967383730598513252916845705253957574148205561430707547056821549009592057854379249246132134834926999841316386953969784601285542548889952413550216969922056080346826991707525470504879683971657193882573520006968612314160692450599167702292062743218023761208597334975971327362671542888759992234572082733306294136102779011066874233761838492048342799208581036167499839842480046237612467904553540403758585784218891896610912174507326177993524888599802930018127910919044057084445174758602883036346534820629694647649396304993524382722413608473301140633393296683071629402310957937022332863319133184793142677520267399849636231149859278521328408769653046419080910215035467333701428763545573100129470833121205103902779195170701927025448770529849419954736874058524740807537209945292090723837360497164366118635809673211140495453599491343039269739620889698327205060312177725100836106280003188032088136801900047858600959569131066039726846953701763415307403058804263042688925713118039003983661541901968801378991489899224548786324657115869241489292015115928517823090918668840324157505149802781249749058112401643513825580286308862605670519716394453238662273436175353303910287961234161404787774037007179133951678064297624154136694161202863708001249852677792219956659471528196063268172013747136577304999817047440380588047690581035727306343609129416759360885288905081714951308553686088932005135635578087340424965010225235857265133815157174484998666879821334519060081444404112954488403826872474722936448360473688662002860925197667842585721391365226374193059466077677473557003155508844176958079740290788384314748847259075373037784769210097184398869538400549453241602268938064984113537697552574292605474911041183916484450209169115580829844042707366208002562101294863833853275697437745709318423280698551640212820488197264838796240103807454288368286210395843311599721726316884626117795608041127269359773503167758080591410177848780691415799503518431745020620489641668358211345587075266896265246060893688062903515356066845639157067013145319307083844440349892612866180273873698599975610939218419418391507487777780777508802597688295621606606768631757442505241174869439522950902349310055859257125638644185632871404713679732838460437146290720026024669234641041718357984948070501457703413029401990920056142901223002808864292696556277146352370560125970047753916509372100107329313066736326188320379258069875722920103924529812485000712905786209755645048038015631214489696493108698049839835463471660768178696925164522437981775164051089545419064369144265462145683712253572424546709763840930665595648310023329245867678342128334549950774229557693406301867033774949009693068540326270200558098544711012998438397262254486082418855096127907350037953548043762212016074517282357227897294712198989508652806114436031030954975947916832050506471341298637600077652869120992889230890747120121494855117722031158496845671275902773274373652696127899397312468298800341451236777569138851031054723419464337523886367805273497928244599223819669384749771528112032083577066346563474249440944241623581417842987163611043735950988989807314338933115225811543100419816351579760069434445631022399917374426210854611202554591863317873609050009456367504262254486522087170711405685057451274885177471357231835848387399795878199142132288943776463674756619399783519456575676705685150581712214032056803034083414059028525756731740090082290653611696484508344324429836519576080517218167854841627451777019311305025840294275705113958120962688879649126791726840620688010634563230427080721629861776650762277523545319375584045065806571123011063752761534985410942685729318911324205886894258608575675532656371077321873655652471998679877246119810986324133616811851369251043407405580638986180510814676685959158963545755822237289935939862130713562452750699397450140514891221242354953570412222719459400319836315396341744416625447716199479421333544260918568343745389185535385386869570598561168390958752387117069033792489465711488518508275606685216026550022826387241614356890793153485689527416808678079275427067905586524680832928948674807801347023317539955740805158051178498997065663987991836917303288427722130672581329321498733668589924254873096284629177512065162170600374382491055983164032505255697180479030271824182098858571716554618072045833888492354067152266124606082274025517016633084047437687886851410144609405896011336064354524654746382167886103125258924562617870379152766387628093327485296484137813307091712474892853235071079095033444359029252502701957141429798113469779283457997914194452293718375424440922159725541664883167753311298462301553679461698425949661625272565396341834822489672213050660182783624893396944210808575963985756688522575769484788800916794934524031524770822478024762341614718188099503072943638475452103287071799602791864899869219167378108973078784764868086235723092444069476969538113498353472560897942411784700416811496936487736047528511840728118670971807367721999893828991398019612197944397796094984602787612302368711618117284346385298584138139449795276470251911060652745837068221060406868999355243459041549274405722301749047761375980721196003964479314773756382276846267363031104107614853493706731290540768693153340301228876831678211338909609537994871351842145322659432486394732414611352535036794612841200089837135432810615609103947423014855803580148954400210966812689471944884916640000283918879834292275051858303385884850453142569209274179515658229809638271074280908552178477511143734068546760562350704710501223617269151881233744758091554003191830304755415505716098215005941116753587827822019705086454065506822401366881415482904400946017484132264923347442254278973881387613715098757602610446796879341486454542706139136549174846154823152383164082552600147703856078748891899143687986265402707831019846296167908393962180255188273975000149203512777827781546750555694926893389854760461732739770146437992727222238993187839909753485757430494903940197215688926931314600335848731411880925655152942417082124360172419851968605560583668083789141857507029865006576219585608463720153021991937142728089322742403114962378428572547245078264080171010968585510368268330214577689196289995163009276617549167479661483403556410130758465983676342882071775161942192438175565594518084165844606183659661696787290792942574131767842155998300770279358554954626439709867689048421023467817212632682738105671900507130937319680599897061658103852895188751429300394180382837505324759210189353899783912773348589068153088667015314951658762983246271057086315244303447376746518497726295325085313957624850592462985585936661405384185158322796189815208269732375990806086566338780646745345756277651376729320424787014287298289068028369790217351657046901627374995904824816040174650817019976560032599371342757265161370975150879907906545700343631139058533864932662989153239394063842537527397045585289892182272547648407131342215152665864670523272508017426945264302788123415622682365353027951088335328604736070414558671326185865688701910778904584119174763606904172805140123179360178687465233798314094088820826525028924755899969854359067212661488037869074802235664146581774413334915384231277869962899052882435876087625200619139519295822314638271734909926019091090746902223031297017442940157653101989780075485347481561755103534881576456512273546840807697343095969282533309676691219569105411999328425543017153741339664310763072722012585161547703536663343044982611189323329929347751528947742118290571027443069549075686468839212510364490126854996670197146112619588515357038738448244382926676567832821348813768661502266773629454237981176542724487878340734993668711060487110516443772460908970674210603671537469093140800373189275994631262578348651412427126181562193382674500257865637197228100404783425739603981576330134573623462072437856589643011272787919588609292720750187423883219767411926040420568848074794850549997104391395785276020418780314093887464907687187528130863086550875449277129231519993712394016783199124190020195755259027637721985199313392400316812831158333108076591901333917627681488884201671553507386881943249621664188791513139279725566211762108303104307506991210457931437540704790948590130773809438997858006523193527276138607791282042017106564907075552989089381998340773392638003058435690449755598112585046801323614634666553717187440607566613445909981342643971372510494250666733214605874282352771750397867610603804776803150206095849330371162928660832940533962142418981364416314117773453212238424373543223029589958507256034336227390281305417268785646876282798116735354112268856888135256333103430966906819506864830666993714646714539151433984258044380182631947682149217942344142050018182514493358165766464671356138915488698764926183857279717829846072050625100332358236442037124135375701164474634619263304819734159230762193008156154366858302688853297597341965468133510709533345492016608155921974680737476041744470796546845438893245480353546706572063284516531516501680856345354016832849005399451072414268751728766481931723479335782145503320289813516283786634375564883857099051907098433281961750941801602066530906517405173696131429051672154206528510623953939194838822023678534853611124352073026246113296929212081002879938961200699587681164492478977027271105481998215992601579855722939174644892723931287999385335913659963039020562589536760076682639059048639427909837222928715729802307567111174491122396592897160935674283208646461367192173187512425857216072664330437618899688488366258580210673158236384927321813169296376131343064647315755435854814560748940603147403292871658826870971097252345488720216478282140684361899695515498953827621141336661825963503595201387093361994011236205774156477635016757221075663253851548977690147966241784396905728446437120375547166951147508689479774822397094561503177830896703201462888900492971308036127510990337040134337692653843624738110730626567036965947499276345517625184097284310159684308107079337712268996195509077304280764152346854429353646526451761612601679057610415383128421678860165305021463856044550303415153000453511684525189965572014422999522585247575454077178252187206150104007163407181870744779548825226342883523960676646911012839708587324545210037977991573463405972202811850737497454493642587397252688024659255669356423976977430988997851310922936235551601483741282432316732890922833378313398988528327180605898051358058208399185144396560372483000379898577713101641092264654107895383723609179734441804675774790293120252381588245262306323804388020796970277697005302881677994516534082647019016931038487387091776548423250323364281377784771785270933751260745322995819743399415570631697658731161410602672177885247613503469343368194536324475745804069581564775077149376629976184002677392495110066823452411167028441686933376346674104423770054137580736424702347930957331003501512287160005710518925606657307762390677728134515262650236132648068072055729932177542944798831961857129658197174172702840649656846146023892366337085286178359385439462116866391314054173969312390481199183609033078719700466566100747719355991461966847093501956563126526971273420011350979779240739672997845890367937371851821671623463144034861304368495424298991153795945315023051847020965381660991944730608913799764015244358649017787725192078564920564904222814178554791993949700558939313755791700423619597160377974389515308913700011033253147939208554913568143773137271419672248658538948510635581619260909851332828261700432787533666673703338319605576625405326088821921336499249351968102262452784373018720137298457696961369068129260739374903594087560039632306625662069389164257620570579368920616226037398087090400855919518719346252578235531498275787963549850281092980944663545793565974407460244921424792956929016273663535404642377080984675845900648388834101433728826340198818636881929438150151019186235220824431568628519531682309227291994391297976564160661030120363964634877725970007772543507755712180006626567897191727669693759897101427972697314917169148590322368144976595483420357402083560927118765346679084927877266667461519467378124005829588529541524292667699351876160648712738961385075105219973684604306226210445958314222151703425580332501586105844643744613412219825703623054851862801717815058321308674567590768020203400136588955958524977000989120319526025177656116661106065999841694256425050685114468722294148615166433094549569518337489107138191777086331869470592287519690931257673889429716726119840015678659322401795736020175744975427806390677284554908202448261845669441370465382171660015037784941031808957614805012882540544295625133097567741799313941496048582541031806886929283133068133319707529070476321384466333774273226476139852822465118626148449148744543412173899202880985732145774707300724417313153817980316903184571429624972286696742855472833214018445918009468910376873372516773826921579532906154285864354054000717985909133277029579375011315574643897016909946724102472856797626017806026037359898479383799209085955470690517844628682346791566116428692798294711949296634644045811227023050880534473297344041789489528758902643151937179945059340858274421585039050653342298512112063073453565536231362307147070750920413276734294818463115959196815850255832524291105317764046443751759872535433052494568109283143407170335757669555503600511360861277965410633408375700254754467476736926890506726014119292710867635510109361074671872102836940644141858074517870074066503803148764790648558814360453948378543216850255805376940384257989635440757984278676346919987337379494004041061074229711467158686359034410364865978625656257565094361645043540988012556215200591862155403076826678646944340786941719897771503663232397771671345447662222005168685865044160966819098281174347775449640218382951516653568795388929405850495405435633134352458683819838838274915594791167257954794334652865159468202480439907414848386999651053980844566158834457174946420260953738431039210593533243657640025779646059672532010369082533543249333497347165604192957582218574541459803576776526801360518293027471418076956516913532409494973511250107731022735051399884274007682132110102779964457194583002514885394885679768858907235922577798103097555055949789759925191172311312463446791660036931454991937364778169885746033693622656498773438347497313405919650005348113262024176803020647096975837464437537578229257588423579167493493962333372725629080180849873113980505694303589406805363819549116019830592041223245089082892538529070922095457998430778101677431793184163833049872913591618623888652252128533401612222741888785766236677148157500991500839413678231838633662510526344991659264741498404579486882763254825733336009788254689623411842398500021305304890105090199585483830854620541967185328752369991490991013299912781863836213743117051062536142782973932082513998372041730271721759683414142288111370752022862502791229884546094448851920673026265675731627028806885917720258096319439689985126260918449173366314874232719293388912257243644030584258099708277432321781021697604387954841754997543320488322724213395134625437480413551314935676529210540744481172338669116257288805245399476797006941511773642101488258205315778085501245092560398906011872177198873715235222957077247861016896083528306679337325619045218036965874919629060312152926348909704426264983944610340024204800385823624340775432267598349177273248047110837344222126685640106046894270098988792221004106195169901797653247889518042279342794983213822477434720724376810237501332550363586172615876512275270823595732313549383674772190044075691466671697303885065579129500591875879027518628199777412499233650015905898113601838786393475368837175835182495405767644677042727510951882528735954923376967513239208460198129757913367910035959991780249663702499898869337426607390822173208922667760004214352115083250873916325001382040272566779100974140806862373290594436101114457346841367421682129564508496497102108780102987219765992945993695720667811593874446917273164822216842769561356540280825713845466133309114158582056070642941760628761437260552157984263341238799022230411779882402902221275706196260614216105409524996611628328735456409918499207073013908431013782847304592109524036890397794877221604549685086694308807515126352546006615407471145204197458219271041694946946864871546387891828430141733512132027128384864676014231133973011187563208611363964609370277220085745613692570142471052974751724741664182332380278769841189617075975188567212746084879863465984173882786068120506659639710295831136014226920064943289990320868793557966746877168620028871496657005239884865977293206980201153565139266081299882299540519037268528225863883215755087072820803671814717898446107196380678113278438623137805745894439845376040321136208360564114910470405021038317048334033758749106449455130453638561879117862267089908201942500890933185283422494759251296858044331981129409055034689919012080787791112998816086222295217410723794011810122330521040380856223213253778982421340136684826293967376385300219782361379691024747633410410196384041878723576795403692732271229769278577783865738612231374172652061583374831175601402407694284355643804903176416386116470295246637932248101260652739480716754905988274513429336920264843980118450866373464970291600802154723492613550431503511349088186481932849942367504271817978187324167242185542859390175668664751059835702778846486166724702679287472692623897550397408720090132608138775042513148592947114409701442205958630847481755985151873851778442273204053855778108165291096634631004643787541599794823752000599790554696536910409261791207400803338951451576461795103787684956170878870863328927849572506706103458074309585426193030232354680334173492883678503678495306772987897838598763234337984826145838503277283118695120632364594436283925456016159101923426849583036457209272452528046986825827689288619983914608473004085844215385093494959711777280177893376721796840878673988246626044788936278375829814201747820453138871933575305633299032130590791984611502436000110441447640732169024461095406997565002325719679932714431530205183074380107500158184314532127822739828721073935412772062122497929255693941578698323302804425579438985223288182730438636304478308125769383833363338546442073605668142253878477420689299042148308414480440401238545771920812606946510189370639247686630293555223772497366807394369319676275363220394651142200176327452276138986927538078861325819013241172404225457119392117524312505533310960652519358210307475949628732858122678184058393220214385429113834936924116331719819429218137675464987875701325905318319125429768578438513267802610919759411686990698949380640692153125804059085385153612934289019475479643262961785517472481927419407391078227567704236865781560268637365587515639576562172074594555440637650389369745438098210945368755197387168115745828775820036660733760485639775686460399023275995020428053763092590143710411087056959057857234187248365901966759751194994569672313747393487913247065827884849906820901934063214038375128084095382723897809449564540743900335064326039912722482259825549816972221715926756562614660983136007946358823840956703243367014634430277038385636042242229353494730440158674432124100016607564211583266426600181358893980704844624695553756334379921843667977600283096916670869939410311472839869062217656142671155233642761254409629934805980146537641849159394193339950436029554319796799147051928045900066620350590200761778765875194212430464857053632328146971728753743215922614222994203800233153389176710456783951054776887294752824024515835441452003012053243754126766168815520570293840652154928520711970190520905099185977591745559313745713210471068188156223582323686660361838223055443584186638084470111608729393535490799067256262515420177007954350904695961151254458183598423217419701852451841903259864749513590530774604883391755632138070738671535256917253029417633646442545856558161264180804787422330706347793440013473072201387668226998246577223693821763593332536181516851820736549465609493455043311678914072196161604655734412791446101162732300920263964150479900746242623644934894575439801569778012063345405122540190491919814652530750766888303855859889470578402661066165265073421712588260738769607820176618136905763072931909105940104196529378892596802479093577426805751757846554911391578438248586954563069117926306170870572889819891583498265683449078332095948397615114485776465185142013916065499097160841276956448074633372451542834824758551840684160568440105094297450342485160810553980944647133192106350197940903894660357134465456990255954848190976192050069187707374309912931820405027275078035244206090446041969661642669893191360302590084769364974338212711805972282930009213770775572363567936360043359352111807769144343036116172929254523984585363621234117742434067100114448192224920488732454110435329992550811815954913643286923536318190997124795079146575717435716141163068892792852527253743866858100865252332033908539877567440509384574254693577168538629714801880154160706984221926490180441057297859357641700966142541960743919425861765964448198228934207400774733258302311786843464037441653357451952701508263797884312879584008873947335880400756140071537688966518959782858450915134444209945717325388412971852624595170468550742428821836518269904024800731047768947720113954010960405343227533526966885701372535876347585424872731575572114540401753417668919948964225731621372049081296849292745975375568653803874696136452339222777858885635215014047568982522059411930500342619990710356061389493627388259017896487093540919571957353681116335064933408618499401603657265367694260152760556362042620953582486887224859308053368171738656993747660845967180661632484076128475494326861351733273962170441183527050512730315484897541217011178355743498173964319551769852752404362184454278705528737690904325139324799642884180562522903306192424539781060429837418376931411454195674813939886669508165146918234407267429300965462590327578298281063249641087214299295400344517867067988189715422935427367892868316369745606349604387057716076124067764681584804094859064616633548308494791827457961755302848762315284539811329520707426291805529485617213763126329045902637503671704244147858399750396137220086166999364399180253905671235668693589607853557772396560393830943580856911972201227395423417954333256845658224017793534398014834950706240954457608779542912524630859227415570521821967074274433185089415389613765354913491059260964100197992404529064217292947771431119398495157220777428083150739114773570330487718770050910784586366263967987218025386785166349215344827033034613860483607932277565411600389460921198525452676308699001403841147245689421951325826727936857510786701676407457055822760807353185939169623453286409470333763544780421911406938001278459447025301197149729859467390607452406883715403082733329379561893865177956601254351905182534382227526989343912789510840804417220470488758460726066449216436125626032148567413612352194169332398116097168858263271686926612448343817537084064687452348566917480396431692808355195099532321804710930920387394846709550035429225199599242791940503057425724869524463726892987147047988886001280633960995901867050619811141891595451425657382602471336156799802121543590626148634849489556039963845844072544324030740331945071508113301086423880076253338594334540546846418473443889476011864764798952742019125380468334712609679367408012931650246297634469439102370501858546982411100965290195700671333920181468602739436856502233813154483566054356060556536914465743534604238898811443838096444121087472846630998618683185590536694504790019113319877175340939709187305212191626885684693859870928110442642303888155061111176333242843151071549547765850281020948778551508461990318581220674271086668593585074226951581720901506852326838774033476801755058504738587826716718452527078777199885106839090327087225193596191487630861507214072048263225092894075562675493147403372021956907281894791816324366987386242115104508661977773199818012402512302016690016629388678113126822016507220980814935472902760593600231886247009061839100758971131302528496519572460010139322537549708458820678307099031661526760401489966553160243944368266918832500213932565280158281015466912142743878682952698059590800059646984664430390919869435966726057561120028088934897360257007401536017417109263291187746138695603455324609117000406371863253023167292695079803453016339091008960267046081893862343307074032315034459100013832907336545019430810139179793492898610097224185329459019389814089451316054358766773303173255797444367366882168600933404350126216907001464288634796567552234778104271856663416441678156382634918347781811840548929376122227352864825816910172392281017286568816849245187697412651781978571731417211381879107468412482406470732152414253482239598745590142794203304933976139054494031901476609780319315651566348452586087628143308879051936681266368330390638735129377911472546942344089555815182417221632266062955387650297435168323692879399725542698208896312229724406672364363095149097720285748441292337342212067838851554784210791882622303292954031380067495381130183108633657490776545813763963036849693201391956469050450944120834792405408783004606829158722511850934624349446196418599703552761266065970647496261810138606573819858965795419510431178473152660663028993654717031961956869717340664982635539785162853046707246732363264170077293880509236037473969958457544777996049579668776742886327740061744071968976973770384757097664160965131824033275814017753252437141689283945280055472437452411500884412460303022181807476390532972512901396450537491590468009748975007965992877658956474297113124898608539201704661988081902939528265118813447683581996120630118155091865006505304393613849904279168337577614732538730617896248506871066300353925464082246544905992864497410554728288935802699079665820765413980573274946163871771131002490761550183911090490672172154169776931970717730305518447515524372353319728253189966249824291537030616836039076663069000247662720499034938111395109905498120844521328892138733233888087798991860282731326985065441730576391211176187827688728768773269432286312429860692236783298677369873555780878961155506495815077038098148212221593314021483390690016771341590998875396959309421947739260740021614480859608299369786878227533949965066597411233404037827465866745329716374819803801972855144473512801225232875856269707307255854104432257000973959841202532668818674249802588532425874847281161925860332368366336107524656098429460300502206487059246278712494975660198569057019787063617030686972072274611799226321225791954249680237349034055212939945107526658202969069345727013413362525787980754320391492115927086714668141938341445418058821220904826375698679480958202156670360693840786387444885848208362101068452693494673703615902042656054975010648894587831363717764295402285803234770166268743285713267071959978913554577565519467499813662510812752646397465213380846315836626215679846551943685987618691776744740446201736159759912332432281872609335881014951839083694577169195777633620690038626937355677036971320557048773021158438147104898728830098025756654023070559274399419591004051252958580092629545787370842799477663701760589874085629806508095441182708488331992491621495822175765933084214019091929945844641016972485500827160205458503035068671023038596336782776664227616511729780811434792821929679705612193597598608934208073211283278484532800753534804116553160187085872070656007665003374945607699665637300082958829925083182821532244690189392753387387785116788461550051222601211489967722877550132262980104939328388849841461121028621477205605553931441830084617643792118112958359241479423526287858083315906541221828358427781500258972227992679167030848339652292813387065249915345097224665319707426515712120495446524625146737397956829367930912734774578645230994677339485898440833259701468413869890454073163215748467249907432851916272405097711515784398326361030852144314617353327507834321176097062762831452052422005384229099564978441052777239130855549346173795288095246760419065254116328962206247629746995531276008039833711286896747401958654989673126270246235304936262012057221956925637504986910743611998478993783773267355139068805604936359467645060263839717394832497494222159172097480791655483818434844439782544953554768861297192666389731217688985948925485826966630480072436174747844938131806831658799053449313873584149234454268705562595659092396466879737389779894894420685576650410554686877837313535431559598764642001780342043177853539622663632933566755473889076580804119647102758746290656538340343059186025760793162875703321761774667403069694465742667834383138732212752909160124894339101189913813559653756750342649953633744566344471457388922510717055709630022679031507430338579867590488006511197031179932658131353946443411370174269172257616743740229575363794999091564528101953134295319193873894486486971563547336110195470044857908198935457030281775286280603505518590614069015186610404474263086500664422695124215414633523069408307224621229739953184639933376170044294166386131995311464524553988941027846987242170227799774145439141704397485943110443879572849520435692097106443062560983734538204888101833912327374839951992475341747911354264586038621422896519491748858128216594767420727335444158117936542262591623901438124652548460062894514566850706150042845046270340744621796106519964630092666998016338949424833699778440924452624265070125048863053494337723657533533603129804445256237963858617365874561220536914701664148698201689482060738865193945616389616892749798702152638526611540207177481223690999674372781666544685551682128982029548346452525650435883125742347029118445750805494658501242567822701737145452751996460333316641173201710268146589033014372431484738162075763834110247086122894409111254865544646610247213866966183899892570684975578653614122745800632902298810615355925074762863282592149675061092986131264783848799072396116230253759380375430083692489416027884431584349562387570571424339976604186252697556005260594022970796549248961329584893249295983684919789644949527584491203871682635195679546638018693283075503533173710199372953075909325716650576045351264251425421260644316443438737243336516640326302896436274300433957737886982988471123272088728103629503919919728889057154501450239203493055413845922434000833835293504971823093348281504162050815793239220028227645638858050598350070315670608950502454785524731951762966888206194715504077818440573523485287306202009215226086738577283030710281418048054472311588836269377331872515581904555655103277058645975747453982769782671918971341015300836597103193310131596657662240333865035014724988141534449418131671082980762081103832529894321413694950515567951172519397073309812356892752908651372983681664662816129970882277605454082154474391933441766903866321995080782259918084491971579547117469812811249635764747643964677816144530793009109975556630638794383490957756781550515944325563797701233158895817429998282246839037183429934710246690951055366163255620528612485234650725497427122308669362982487593592545896298780783019018258168472680848533073089978950322906764920609497256552485218037109368679884587265474935862156041333296650759696187929671078693924206977921326756769769324916096293217862529703121257746129296580608363667418173332237612087551399855066430053840498840683570107904479025841216221459500542486451295277292649154195053031022863793441929965241867242259761755094259551310262597455201963275689982416905904001025907181889893115677947983524382715875215822133329895218633264217246206133775307057938460151669134460434494425207346357746424918112546943952768193722097373741866487398274882233770283151318980906753659325688469176815724544293179786447491932798472283864328870664571755347672930117991502564917215646160712712881209974631917668185756062550690558890582193589851439260810454040950182868508903817304293731437583488978365949572466058240440829323760650369525068946455592369459774868392932746949211624563291183218211889968823583816077372010775098767963049744357380364339539582474592454910702195927914738620951420608203832663607486678913314345891685334668878276871474195052444355211540452601478511784445475081082067418196643288028260216071994873458879449313274699907378904309596070904005225447190799899196129057901767271667444339479555529195534073559380488332017261732582265917737836624534413030178897502759709460691201101710771213834352048874412865842015993101237083481964616919917644150498314230386874838785597754454339755935347558417647415291800219499973253879434714829548881230154383885651860610740116347305982283102728187051388236209554634669845728397377539322904499343888556403340016795205822994905168581154438154101197698408513271570414148360315651050760465611868906821113178530592448151315234015276206609864971865433116478985792365654919504807340859088868181911249597637269042679647169581196100454930290478249118063325505217196938316183569249261710007532824410224242312584969224371268252824625041839164831100487049865076638809793991965721394796154098891598625182715920144461746579969111064432151992082468067659183817936569869990484701100079229617288049584636392720402802858442312369103363657615887597679780514595832169587416730520484934118077740349687776902526635774351731237900982597168373586966633057010664423425947976630388330821819236336398957929951910004063271576747264055696674609824335100930283018327308263051605190173608910311540677374951620634607551605150929504604724938423065133623675110865786207902756505724606390139529462537652136013334817972430129058511876830941991606371080717084258641031565769403633160851558802893852828162556233572256968650055960571462182257836469304247027015107845868362431650478210275546029515299286772009447596082983389959039316843925346611280246686629825089864117185803609767259970316499627121658033235191898792961932300402432012864482811922264209927422462488211150924599205936243158637758958568891566818401675911524190922152729239549338910111415917293687621469638421729534206560728299234403002090852195982491159377982007553695710533391402319090149563499660560535887192692331825260202209019313624547651544339729506783492593784868841853043825081164046370213058908449415841676332042860282240435613138512233573629657903250500554087705454755453098457205986479970934700805663049309769965908788240975688318040917623506423943858600436532569959210121907545560644756575675824455989894740882143986533544728848418524694939367881061246872541579090712955032088516532302408068016725322880859949531634720182775679369785604247439345492885784215669969220023556508921249870994359986973318191074878618969608009611025725385233251745438886628593958860625561263016802653607406715969046691846878101428995496512100038688599273220545582693804273923759405247382782067598323383937120121936806019924112887338101219146516093520261902322723280191604712511686672240205341623222440234949836704479630701456983652283221365803316731143077843741996466286733820409029848551703210184294278022696349327047937703560263680974812275182684666553723273628115700250225029656896858953479642043150876760179644694079191166553747612774523001031007252957487284437649238857331151869805712312196421126686748624034156519122847141747980307606572864340870593475824305217748702194529785359872516548744680085863274214830084553822906359939578505582930178967668866887547761571689750102235992514983063030045389773945460894260290095244571055302357243162058968450733723307520524013172681419064999098721191451143230144608924488973048618074997896772745886175043032843609752074166688298254343845064330951234605980754281059989653773786521782550400564413550173319731836978635195853086064127251573574850390157095364095268810100327180588849072773869749494202129116051820991962794753085172852256983954159733431177520747403732735165232403461010482233054134333453035455292329240726060525629855256678881338645785281699286541190312605609107273006556492943804813636313019095800060026961834133860420325251640840737500617271971036062541330980222200793366285345811677625056288111593830588184041968761562399565276693963739072226061192668554764760543134489921595708655911441624900267833449362122264268704212959695548178576718427378598621044260836251399004263967508223376227071787747607390438896304584324697121794736978768428857894254265122659573262555820163914671790413424684314926462268745197598555297268210477177731571642116389577849042221482183530071672771708191589832493596455301227880881143600954962140861521872565554017903884033336049695661164393077515258784246182467377319116130174754471866926705413949502488405728954948038553409338072394566532140374831079247926837143645413213458727498018838712492320374864154781596298344208345653174501875710122851084896750963704866077113990740249093224055299275718496442134008921503292883351607571816610609349876819067587591025990259275497097800358520437178606895640489411693241411038118707054944958020050260550339962005585466445843684963939394571731355655830943869829653066335724199060563617671446054014052743823811916362125514562496225050458094203339217606292263525167273914767880663522053292159941234459917574243648652789827671008412254613358545444776503248854807556600401231759952144635336827694387328133658969284899020234729304224055517819213141748520473489662757312063426701465100639494675806767752827565628705561726370723672130639075584525121151908158034091149176594487080577096477998689501225181846062759771437691057477641633886302295153169200026577445395479890346117767913259596987467874467055646426961245961394695470629036774161142867756188422062725871964007931777230770529820422644212095452058663044313066135386966040073809404692027009780386631128206396316278616697076234537729035173652995157452495589274263513706459336495890433915311314126855649418354815531044079767735081353099933055006579836810164137187977066532288083657685723067147737287157568155526531813632393314799923937316111266016983843498763672169727211398799865279745852138640647452687420751825078793027276507976160538847165306846730059152386820057326519601011247636540642693637109053812067554441837431882998010586067717903033226220219013225836373620711043852303065172041985517725842018690245596151259993745823159303860479940566783627285784393411356698352359704065680339494888225301317501694880684941025467781674317885436092824999869693474178494935406015105165117506085302756928641825802505375032679283517818383617284749931571650389533355956237725303592742939421014021769869823523813954895951594926419056688062618814959035760703727491777968479500539106192152531501942242974129661432788964306043027547169769446350761349847965899344242790719750880254157726278209895584297295115639323446451538325383913348942323516399844958430608250996223120719459308314184581049104072708069854545827074081868170472652447460933271999969390513470248672280144801810508824615534950563577988951037992118168391633631678664347875613364287215743648549732649982199416646685375187141925753637712989285255532774484391972620561824636642996486654602991239170689283928159347116890999580188780477023226572189776614716276142343454179724587410884287267350449569152671922322547989197835727690759190972429860323538587514756299366537392850958428567699469027049434495913234396027282351659697055358537817961099727163121017570834706241245802810914662505240962754567789673571526298392037738649823852365185845061711340378736055708501476834149351379313450368461050742027433859267346010537499354677929721800145796687452140984116494883751954104809642567986217693448597446280944118356748135917059293716672361943769238459324479696144614413176049783659563471189511022493323417250743553403893073102094685875945406997910516767188974595935773023002872297220784908728070210336507746137619641177271802479668473549136284027287549918525934178200313516771908025786568352532136269851108851253548694559410741981435965614932761945426898623408241678487922907270529571823070700545812919844296443504998422189668549601457977873396181858327679184861529331274159896792989584173653063189038272659096855126121586483531981199349707242518049891417573390869773799541724723300060480348867073855665360148775684952634278739673653147132446827822184550408984340903257563766579421953831533487924055600240116581848122831785916686176802757292433020225609333235999836440239544258503654910997315314608928023933617524426415526396638531277644370818495183371644235336980861111920193115427675854526523501548142779223410260551402840618065777168795774095077469092827844722738735423434810282588489786214620541542847069151738113208047340395433208549277047424397029874506182372843988528564932479685384840202286796764307998755988271474767732041715778278961862292367178336128538536934636068599415335895401467425251713186773116064320176362439575960968051896731291120098436855426968756223379136816833651188861937493230752597912060970391528588207656375697791168214901505674408794789894826425647134298162346788631533622175669074228562399393968007437251344217908224879781094057821926754574756532156934099074529231247581866393256391038461580638464346665259000881961615911490206253495499744228573585953151747918760782837975799163193354685668297386231080001527276258995059176591661099822534370930172937097969820411791778931599281804678388454191501313591831248758358948548906222692979357599702047024800558174050309698274793058487717534518712016537528837497749593807085174084090424740228918213450712317818500641205795337067969682699103397875835042447368809856182736070524481664092450065001600680149480865780317907307904368176901849008935934190042860068410506576265469494412255928296041618776932830293413396925825833769518332621229576341148190307493150360033883650433089674753974218145558581955043249130348886280758734689096026069727642524196897977896395832235592752349750427894905029511731669159014133965457609819812342066210903712151663501553757540678727513692154386775096331223240082230670502836723880375865328588824074874169631096792917923412975725981382628947516466006022073202173330494427105315920821325363215376632875756656780865440132316322502375799655672387941426903988047784513356067441812637272659930811138328861319729825484479976604086078442175668348737220578276556983281875818953001336006673936979802695993427445973607556808952595887903034481633542215214838886958172967858521794630209543156341741364616854400003320895108414520718382322078816257294550920430919306789530989703668889281736577618139956663419108755154441520642968064245293030136365797859466740970176511343964917647612396010636970171449663160723062751912782855002823414279313391146018366610953924768244347609761017647214921629047811769151824072414540019676042315598329617477938365386764795665311973282154802358885043998951830390386362790492675009796591299129295650486420217150557035901399998797042533389473978928624914405154775352064525754934768467474379464126638541026430013564248095729899320887785900035460350279175947591593022210335979848480032376224517237990354470643384654694003852614372416701735639266301952504278922128119755492929364398038864751470332237404365262408637050197285173320799612905004225034782268901562850413247322446056039050408953503666256611949076767463959808054399104630360066128761916038807940189053074400856244921641904529214166652163992074536858343189660193748221954730235387624798189499416067601120841296042666493173361003244291471426545583632137077607065987835744549302828906297132740070169056910960588873662667512207903578441583295560700897299712226551200720902755211114208498414003058430686179182476227139415800839962469973300646181957158200447977150071984721818763760488709481754031187568795499965038083278608204932751140732469147870923406145382533196794612480574704288676267877306218449958092045981729467123517843624581058229112815988633793066327910614247067819446273693136928700315007238683097765064625185582575519251726046385438924939759250701033778449999241840373096396772213424201282289437435166531937590333439164468261488393919892554599041174133153778364418435632339670618698261257109901216716792141138101021443074632143201750761792183777574180411418509834037073980828861015147013770106808012417113303967613007229673432214039716892549878394700520084574804518331600360328923209798080176044566341293079129622569328625469135058607422056319245279633687474262091682596639984496769130826943076273086954044033090032924570849089379222774596320521678628330685635888135592976600128126606915287234606023779651072608240896814277444730114006224946744772881568527428869160614298929589559212438503347384291929437689583733167861232884426942653112759842432459957534942501887442569268689053262022441515902077018178881333614254120001472586393590149542067978970146889391745823891125076723205419905309100782208233959685945495800020644193756466862938629927988799338189143566830420106249940929699701098310679695027420543765369795714228547376732383480499281881880747072746029233509039384008926222813380645055003039841628551501971836923287210061515538499637966872839339898534188918185657272421179232194961102395855175850766156740484953290712414610129651139488696833366713463367732604918603864246825903889969837885439059610261114193892945714677122953626267435306382088364556499485217758650874786421785025324303147016397383108296122027244413531437143715595938553369751603777729003481091085657299077622708369973943273066862438460370035309445098843051004766472637313070969000269596963514518136777914941379500600389719666143056602449634710954314285094548165526538858863439046236588646799121080674850561003946413347602566328923627970913428828527318451292862103813276932736289714256350593815662247703140145942165293043385231322745999903525253886920886592692588572783153523857850438193794256335065798881472432563582297528541912134641194085026785702609859202728956044796778712012289587385248808748244681189480011634817879590104719354359068828036091297596852512281611951728036875630544334222616255725432427727381889156349794293205993300322733178371281568239769850052259687138821957991772623214023746968600305108464763936512095014252025230456719107838803954204351951741143446440480986257358607542347592599418385508035047460700278566075815309953260751408377126019536313891574812623557404832967805208444466961043918945712195065870557181863993385806824864442311021399264670557180974880191303067428085993110473966990056330148248206429237680723902219682842870314028118172382580288098307172197653848218871327522998132702025100280254992686240372851308099691504841820563808059716445322342318094017755471773477146867777531893229340533774091830085805030712328142376040952555590123278761667515935946988442216470972723436009202574825543825529465665297186168764175587520068470959578071767840275664240367771132241406801506645689229624950868304048996870603030715354694018684435427913994053345409718822798830470544033734114625389778184577844110047459989035681462169706492682488595157191772592805573411179801090904528532233401985788285894744940304872179165997812396990705751189089360832618927316850823753520287466752347572034573953187861500124559829367525155596460217119989173098168228442809441924784841988929182254233364724834142221895321616481181031743613908949504867771261533823414145254521866939095128660384593390740879604522160043921111292709802805884914675933685520371977218021320497293683820938446202047381848064756254621523671368584513131940613629273429169951718548061695251375203886896973093366489400861900545624333329963075394418592058024218066685170210077776603657860373447686297330786379374508261196363930707764871183947955215480749110801485681746148453383446448038526798803080462924390830877144118370637910301359650679547289793201863263637956451047195519439019406005891679368714703957241485793164857737242361178930175683896885062510701620961170078739089698684726042751637113948430068044524610484893635886171820309355133181702505889639904329717357081480621762455795432246225916185176901213072318672245390337562830278207784804457690250129578798760442570055528996330655193887475410641703549658821973642401917054986574408495801388073567914384413063098443489794977564121352072402925642057071922462163466893858386879412966923301122522230382726604703865253662858463331635026877994576062804820257817550628391433239728700511206935710996140353139071260635348295270976345737853119265642686587371691194685800217412223139132031905270280992115948277196784706003868699377243751072147241869226890643686641309206525943474637375912421101057159925304410647251099338398151566684185507985901721324229104943818134037441309794318040385228882511545342702847660710369008339460430437890215311049010856364023076518088342703969428769194024292905211369044196034241795983208463785695087780748041164597875822103121015878884066056822669817589743914512380253543007582817212072377154001599235635235044165460720679245446411861994964672205418805031734288335042211068875484709360390741289633412776254517129071777663485235916055563781991808054416542385140503015342469509950157016300943717882116040049596691079723138913599086924042004513193290121923242493708994583778120345162671847558634407571837145453568514015275213985154664952340840456960475699769552944295302400710580919923712534594159351441015486213174889099077612404087448880174404801373481065974250642812131311090692701613373628301030969200938567549852335005879540094062904346966341197246142103257073670987606539930987168039261080509716828582936191765950432961263240889867415373860801142032241172137954428062717736419158260289848344662190005067783781584187871083102698015559210263955781010358561740699785076198830060828841700028124350928609324375553227614719271330769442084544846916582879486846080002491237208680570586647691339582470569228444009631394392752992814383063787928760516208858015268579949285969431962609783026361014787121934438922174526424946619562808279407613275204123645319617663614220019251236256939478738368418297415223952320820107049268285950856796484411870944681915315857158598247785052563978567925886394458513455671104923421282796744079585547662505019258598017159184274366239578894912349547870251137040028683924036070680736156719257789184895351648153329183697360870866544217981730287147390696307512956431937617837465733806896461103219001028076752093131097406271534855144716598335181487820745271244860184260929232750464448425391437212737324797550528200702764615342696450200116588928349381070041780684106738885933428433116876531776445391854889129963747157470000366785109497125649152659551410871373736030610878731558723109530454161011893873172764240064318876966061359449378331687449358004174676600995419190610780184161850708613509808050657399371927176898519945381393625135982795967073818218183459785057199509657772316042194583267449258283804606732901165135149393025708099157068391669617824731320005186928909614324335463293471030862108144771958492635701812770394673792622449692035009000623212206658430246110356848736363760406981924563599202503281590082367518299388235189615809729032899922773531498513797254109322068456069140048208179621045883639344733539595667240657786125568888357718152110118053996989357560502940512722266392803553940497498888689200616997952248077310778110887328487887095583374825265641291024183500394681888318348906900342160810845796483389075586141015446871684683364013384883953105573318409629541396859174632292254571425705930472573555063354238724194546295447364248528451856000229181148087641930969394241655998821478285428559571379812783822268759508826784084155679040972462248148100210743615995510223662042450485248379662386241737917470949260891583372599418714502204606136833625612134384891068263202536769391321373161316047243598804707442997115449153904539082795799389235454007426222863340099462704737307380205375063610050897151749042008936800427219767239102679255418510565133465101713157201179583208197297819938650233844428977917122752425175395727557312916380172773507035070351323981579500557889484176318402578587182951252086242494273401263449912623394546659567427995194517105232608909592634003990835907741120232277982439815411603843079352527888211543549145634083564291752572520941439073156441094011303789590683897501274704879655243834631149259681333717855755058953913992943531170818647732977598272412305151547876132916851011809687166712048847625235984400351107516756921567465127936398083213639099577105742006678186541923867388096971368140172800957313171179311692967996956177485008886411435954608962803085260899994090545572471207649626628024947636026571322141566434520882562532350920767796891812864683273407359567253476055467233782305657570930305789264639066546313527150351567541041520062851944023577584523697673555730952899901237544945280902648591884116633592891915581338072538834769155754187062311471376200234069294651065700763984594830448405142886784392084326023039898974712568559886613769079600987520595861790833412404499492469944940425719404491275667027734164575264516419725383863191610013681393049323034439644950401381867387070039224069380809349495334481737421767625834022719763277058071279487974060276487773512880368497936506783758967156548462073726823293090423202591298798935315867617544619770405041532731068321739368611078722566937893835461682917759606039933773118073858389040159516822315512399687421696841574314406959496616541498260393108857580409200761741858093153992183399671824035258709451082685336486042882405204345749297887680407579764705648744726885924441749577679324097717601156209162007891347810505511930632207030516096341382170425059252270303771350026523216448781593833439223710121773927659090194986230778623135616390754050577047908722971770997689252465809517692836711615685610134521788702267546894596881906666867537023951002939208889485411262345254110169325844587951187331981010476327351080756386944468913738783807703317983894259118327248324540048135878985194532833053555703394057443185269244969029582978041416828457872013165126255461352301079773556116551324577837110812933341951748628199334377938586209243038504758874088515126299106269806727548955551962935398164886376487782159613951853704859788217884516892320261430468857983132741479419125140141514311975832473059741795149030056044230792200660287896471579617914424678974857887652898899356509404705199952492332142153550528984204238108943510607497913171375769489674967546046526616030049104824453432490076726812100233477783957073315653138413534108553920513427212873801296591112657910253762225186797633009329052559927686158447930365488245785368716197930449756197652600993181286203609784963821133699065216398700740083551682062092615491973729029780851771916051891911911187868725352563534467345412777182663137246818088052148612279338385011042893140115103004995714100560988208409835584769598600877087848692817577309374476262128396976005913859743314808731367319300842347209128274099380323711316103793168123594335890929027826143011452784572647180720016058263304275240973318801108042343191806692423427200255021974889184821743025821386399415874190242210031522283704211228337446312770103103353031050571514694819158817393660897508808985009026871514185323707067551449722778074001168331684392560882561034224725281264297419889298921735153544010708215711990342022497671233069300217365520502982847543181461468481914180798941107761396853322245857247831460090749541695629521401258238648277384301224943769596556442392791828141618763286545450804539349858472712338269486926517884098855218008404003860728777716221199643635538908195022412142172029246172955218422436860350046968128657884467105381848771604030994304734673887207429830170354602447352858903792623213472941199688709916459690178216244110004160492765879970481915099686416036725390199555264560669024448320626867658823584412617497254616584235068462578938222853448489682703664470316151041378645520163345281548135597955018379305609479002655227555647429894041822436168197604773559501284613844946998350585672664095287615601239844303913045587665920875589699383221126978216597445249984814799045757295835002280993512524614986350298243764992568650408946094892988189707386299513877315373177654858393873610580820217837043970035347758179516698644173707744900515447906326840897083159506434042368094900157650775011252287036055379455601075139914275923604993557838583021956375125805860175730149892682474028626120094179670070662806218866861917781960371397702103435435375663138880151044848247569776400912642351968864161150924500424448628281348114200615461599009087789971076177138758659259466841534142921932885605843702256920647015924102210768339681781973101539384086622196200236597332271475501060771517641818872606239297029646892845003420771163657633157444235096771997091052508349864262114717819969062437918401107333062402443756182450446505929147166058072264631212892170095719670436046864430831901097413955287500605601334230966815840863358648630709380999827713872500876551123055352997994002656006933441767097928655311672642670656972634742699540911635658406570748578447419698778049908978639813933644352863692570984544866182213005887160592658208432440003660852647128241358113696178014629272325090171631050738410823042222963579635963666971838137365196410753329220137013437157292957714976547649705210228644746686249965001702800832819546211152550080013865449543971339558292323318895006591804992227881663344052824743416982110565640962131897329533588672372828793673602977928493047948484527959159563349742910877932694441733223996257819707617543330563927168340649984334205929493250646633453630140176560763181708739527698116236926957725728251645150531987476756807998361385890938754413354427032466976382238985434956201603697031970982807515700398375020637614115913899445074895204997458545500883527500692568492610840437742922235061265376644772846923228735029477190663156080185403753732179678237087910270003597444670713421724869319428491812759011749163231293267675644021028167925747723403543734625653585916682386760751524497179493545148024587805136641215738327710273357690320616307289352975520666171040450310345558134535428187082574211240867894179078840519082195096138370952285971846355815087231015748879475599413460848320967102620292264890201430189963787940913569651267922007347402395538316307837205177366997141557944316981551987471199600131068070829676746760040734467284636912137907722533581958837381676698910410720456065039295410149823016251449289735376117249589093633590768748470478486610285005099985037024148821791596712805217907349002519214281655756689645791847538232592167699483175834458616060859577147775053478697169569246216938959723234245942716386651479266322570987665900452185000575454333571355076198516368430537666760348768210839991734757379064220938880859305451428316180672670191886894283547621570603200774389825491863528603203668616536583255324038409883463293213354496694653447266074830435898425167760382002843194685981554244007945841485290789564455588911258437893727968297564701284564811032285625887360169209575260977455019857002053349387720964765348601629430172424921377652102236909072774422235096180962495290814439386527117879719719206486395361928975797385459451174508557224208594542801405066938221126259361877342717399127448943761683029127397305950491707823928987586918661003835499596120307077881484139367897788568243846567289310331680602214078105008871123810629384633418578795663082431186521825360090054240008508666756406877633564482473552085566081393436512157547019883816658027857335642201743735419324726595819117428711530572524538275801596551607825997484763840702692340677671510743536211212869942725303313586011207475222867272915698875325350429484945628270807211609874520030535189729595591191655942772279238882088570063792246862929428862012874977832414531578686229093522082216107399732293777173832562898118493068360884956596843781490956077483404357971963573432994196596388192157348807410699068539793871401572770021743613963102342757727007771660786675534254579245824415123412068344968852211431681933301765380609751584835947590430570893272455125027269941971165801933343375376794590125656251583119675206636131217939663223990267603313556730138407952060628113744309503780456213003810309492029821593169143657978002583045366698229884865777329296619891124708018023382779211242808342907792152951069844938756983940787054681623419945209673074449220539204988416202277698123766818872406469331455369704810242072094687791740466500740881521669195753331612016331691291966143848063959388996257107152965908854804160730079861965374865017039209176858214137674386004072418416965620797101481682053133231775210273218912103283404945230424155070515318086715870629100940771815120244416574551311386243861928013618076796194629446068645290121319012667554940343209399733221804612538779352192026853163452987823924985333631026332232550160477540212768510562377581095269358908109514785681821729961981998084713585436958066583420173349817542882300594186491635148396589186302570515731736422363930492626094909359490300771786381716740468917452768173935143067233709067096983544117843228617480311995625206584168491268621587426845461794556315263752990937293846222056334634811738559584710924431713707499321074477649470470930742526969513277814092416152616623324542004838135043965320991677027287330592942468963778778595983438689577066419179396226401627986901796719184332513284558038618682113837277180595721289858094059279408835373555442026818004323225855506607903339232853219418227997013591656730193499682104517261311570501287424229224773678239811340497876795587734739354096699805070372603327480580597368912529790389987692983063155132988839081455237786830023670935704491164530652792319780781929296614294694775772526497402310271143599631142111887713304818312886101094993328189313215596442553989885577839369439272165826945990564220091738326230877865514582420063745586391119908504122977098235124144463541289311834680466332882197124648419234054444277281695926504967976909612386242729285687060666923596737693549418549968151320975739754793844325354997831408742121142106246578154416801542194531685754989370924735824221875296085332902375154583661195245065875063873119868115660774249395995114552447376523406556863359737819220128639544809937255740240297273997910699392433645224761599898133194373021182011669706136409946691917983221199739991969147055019708416194232277729629679363222284581683059879078406650650580392118488648134859311734688432400714800006285621518492706350737692878151767928959070794015033503419988425855067477684374482406022950217927817354496066275208165766612350151342918308687485927651659030048902653792571570615781034925413614952084131489788016685295648226101879925756562809359767997876568833468379170594900458530665144862158111534753651113871113150588248414933352078225733817121517291575811429754005167276076520911357338223980509052742988116232303775747691045955429516660895125666638190269940859728681576910234005110543416828005412890336746364535236367304268987782277376551154327802147843266991992274130545989032379691349127958275525938070026992244837042596529974846191037521178489792748839141572465495364546652171796735262347966532700969056990463044001056633282716936521161389080140930645038303758274931851900805365247811101741190485427256824270975347721027226729732396993902938474276866288225891234830144507173658116252859342275697004075379127810800520866416831033258178451967785060023969832939364752153256750850023118557191200842959955964647743049699991485447839899115453460896670476248974267532679844785523030516282825791729459767125850404971939304441494320343597045055011115058615859277245472112371193439442814612743805840592951225980928057781011263583567283612279002232523699219414599888029169640837636591220977865883976102249315424815966492664959437619493188852171046642868035457440809470902822246756332540259491608072174370818491571016056962560968896305818654795025287733802914085470912196381222420240397648579971763028922638127863254973424999511259370701530371079072811804420076853369602922322479579988395115625175435964135494188497650417886759015075435172071476792145864077536150784385068808433119918157500946552161627995154215759981726232844509232566295070579732748546674077725382252389046943302384048961840384121596988025698139409955482594817775818141032994205263551224557426214310310501253909313776486604187473576994124175699331719263023500440794917153256500290934243014799880393238484228919824901503115420935083187624653854542960026005431115230003264110553885633380305595576124298753022914878643769091102691403600567873549920114542094156739198737965059129622724163336522988837152668942425149539231787776709199140701997790810627087901141067501167922835468787149691582804867172394581404628772960101001721371962371818479438925636644381165582286461981463808366167751390647818534207781270478542315511634133262528261447020192094223915600458511366299144927339333261656106139482398823720175470163114303125467011490001524226401317194468456595040918628962256814554620562033919488639188333430314876760840797435412626329223431632695165164502885291117429003967885650757440357538849551462691310319498659412963462173807198217157756806697638711218609040010764193089246307964219623026272985888746065709401061626272563487651878508208836819254327679540986512036469999252972243093937087200243724429771468688795346487063218251439705898321039902366247691773855715228144645615206432653265847194629031617414706850181499220753260601318657331877347971554605717672487334280062306787922867742148669126806732451090953287778851617389591512525925671466613914682689642638258193238600888924732050695898222997648812119867066235466308767514432499010132569505413021734765792996721549522244217883365702930132273076389697483816382655255643440182351594726261671560730650244922225826990002898033603425213225899063676938615392705238507123401231774405599784627897215383853335233262524153617934500131610385536729809517647699147072682134280283949662774553148730145543790290467492741382677310298687444905389599525612069364642327278583824047922731442953215581923301384227581577451039039234122578455356722358990759052675468054641325519680304305452436414906185440175648686532427928308765362519630007617096176275864380486847274086810558497324544003667634113331267052773113942656140380267360935831704611643751636851499554115421553050487696406304778171886206134490105395846875423245461843855952296400851017812112267481019183438314107995249985896916219629358954382980149066478587670484266420416179539756360985460131574024892233333087304149237226943855271138891912782522043204483861937325952050138656765501698755639283627372693641660881986308252224207404415686621806633377690007622733212506071896457560789757276380010851872215806022846142825877183442084000116245727738993467042885150597754840611878357303006821383784517496520619556986607383229218072640303661724998177305563475534191737193551003899114556109385537127585479334853760347447718586795395243729729307976466477155355920479733527127111520099475945396362285558142775431576163712746472066739414787157676643977643567418870327121365531127536596273716653170623018517471781509933816846083712002163278797509666501665502438020258939444741160786336174178268171599963175830951769559529489545388490256174564400673300729335572223730524116761973378996291272301769795697824875904506746592168876052955532866312340198109080436664292988869527592765441628611587125478058078727083871560999215614688936996289964389944541075579185974301811349528330407049100874130823712470710006361471545240586511093351274744821829061927248978263053548064510225016652341409440064296290982805691170169771017894586960589570340725630561423380672392914571922927819871192674803875997535023858335733757243492529427033033471477407652197591355134808554567919850089062646461142827158795332322133539628150716370496236138908990915698531001618688486180974954377524556844530189675705998416860628376442843721842438528621671292792383309653864305704254234148017583854112168671176615203889312384724752776029166383353069710617955850824865147287570833025123873256125631130299255532518070623181161007511398469824141167139686278565097968710774908329133378071553722749949500068570083310751962541125773454889606836157662927501572940196819239140905288356075695683575478937210041785126634626108958773396547330807495482772321601517206536639785291390349809009373430324362568833563699161672248806927315442883411352118113606711000204704532317320539812133952018206516188867478234156687542980312391278169426994670429732821895039113392776258213058749942057880258918396936941861155111343003602317648439554630088121675665920760831115580406183867059391807411161051028789401770409554350236846046132246253715478668650932748666082707671725696750757750443644840720815063961248464057415391526614483172904477531494519927540638625653279178098539983962601589850068635700839933523535275942390444891123147916512665361149599497646931552047034348384991148736843622486064434683089120124380387222575490112374425141103257917167340288019348374550636856189435083232096541955781934146825293332931584305506624829769359795384030100895855557938739089349072661018795310429689017330818756289248159477081763109208675026425073495812598549951844403827187188980785843292164748001234770544651813131541281731958795037202476517822100610856453262084812635102547160400426261829739705982418622121429037229029780599784787484788157461901637150501158060663205796792148681439105083052839225084797516888736725220807808223455312597656536918290292840618879505707071047264871053876902198914956465678234834196887407320151908695361864426895578694056023007804555322860291116982127642087053153883403346142736361731391915697039353724938575649594710393415871068514731329784283273977932153742762043635503897370279223082222865291895514924006605350056097707023896332221411059901901565048019464833050720844331042208516955307634113057415234918202793042313367105854516599291006607494250487742817361969304710790619980470182739411726230293701356602991322982174933915028186614673295597190230582266221185319940829345058188040170848335446194456988937918109421054983028869365174818154112638347002559918276778641760854980715071699190501686264179089607756379158001638712545722967528016384302193920840835582347040422139777766464756131375461747326553983426152362693128924873890066923345470314319413761946826338300818990590410452738957248439230161529773681913789373980257533345312699243436041711053199627334195030421009773835065805287437521695980617815862675530448316499293564466074698575442572556363813432903213179096337320163586123576057887272614133954738553490880415941468820536026292950624725630169414341303963632141465940365358709198401701557023557081907544472640508648586151830474909685233444807324495597152406275134506576034353479009711371648722758076900043771042470841265393188470040672897737247948051482269215592381127068822403380433213194960936689567694511644944901658224323388904602589925158064220751218253901140140703098626867848678506051005990952691400943850535635393360763292509962638894755596973048207057436325242323505527800317938602829859721314374176770983881051055805140038328516487474425483444800510752594899383326544980113002914086590898976540581474404279118440499033376011400846048277290461009336945534994543193807237870080208815591101047872320814221095845548628220939722078667352904955753462097499417283365919333112671076682386745151408822509359148385564467698738655100204820753637275164234332116698622249907191385140321951631176267336840595642259987487166837831665280893014600247438143611265719995942988821837479060238983900474216549093494081972176275635143224746615507656562307960474825596030647057080422412291456615810596865925736384531154133164661845266725396963266137890421331363145173615994794850879000713407467002614487849788598390439448264764140947512465539695966417515750601102779245259943936917155825615967148461172244534505491785461712265459110842525071740124331541122691739561079892548570693720405956282458513112288485823436717933443300570984920754089156568545430000667209680013066345936935812933816523090314629959734966060348026375048210047226510094362357589738098265448071615026594195672751314187016332298879387453840394889932835027928624195196435427788129513105548457694025133658009585822608107064326700253542879516473617702244404066889228137288290143638275503660776491015371451357693755955435965230142470745783531805258432378326079421567729245070422902566484694559422398063055319037963485298441031673141445289691203256597740658187229016563249348738586444886183791836251888462127240803594823880028693486384845019474070602991168753331454138255295236214951267809883837769885102705671455111361999963211001583374836387041274991385788566156066413539610074580612580179266105509180058705088753299509141780251521472408467240158929126274743836090194449816795180634513134887529507660795151107347690277413619485006670292917361082416125372130891507868596786555901140185793549156331339393150019467029276379743848443088501617404926382108095208420723732834408824810476633632068687313840778099694524270198658853479620889809420712578489327155939543551315068530972669096517724730320125526321691690400352327277332398151224419352532044977416575910097226554368181696123142687606254153032809579937976364168882364282713390243671739849386593648998091884358161931154458188413622517138108743097448228505131529047441089163139894062287366556738367359402015431645190442897530012419381598706031126354968995195266044945204719519005001447818292621069840911047347419118981178966460561370209461761258942785988155535708870475485667584243656330462765032700658060532542936356418161870058968338557156936999568562117775686157445874832340202779325046585243720989184366183695544993844709236438671321734937117623752831103221688646277846785454516705898187640414437722864611176251155739655089370132522337354326671369668168663690776563711100675627287353562687455415976035264792718660599984652080221636849497539286539259885719298033798923947435949457591073106904636833699286909472867480133901993842251612570503975672550971709013517220571011679493974120067706523798253575351573051027379033519888810332923311293273229034648243268862609185357327408206251126445315212007386242274451934880116338773847761548226072422184044380457376391441641132480996127559261959478597151928143685385174680801250661091393756332690303229324288611607051618185543924707596768766268895219549980108900328012887470427303275825450313670669767508166434553969914715422227507929763362537926399835007044058282681689248819924501431375863940167682642226763322093958228577255802985553097981060100452306914016277891524683824611135578993296994584174918640643222468142763551420484650481218064234804596569949703594422497884872943245094400413590166284090412187965280733619843773618740023906448766104090316058545983774861417802032563928009090809284499920002844622081507636983002527080442138022192530219299710553828463094649542960516981169869413977840931462793334082523673682532361969963557352728232970910439636901171069904065005445645182625613599877253493548769647132339229307123609836534756105882031589429313124138288435170494533464713458453770967402497506115392435713614916474894784601743148467816856326738016899160432901918709501094994487738199010145404634368406780499324906358275210130539408174739130008806887596555595987275222321689214994534804109061494676556117178871193552196721606942310273742746095261247107067786007289923535191013162147665175529710369929905536123631571951481961519786839198712366068241503794448286918519955972890197329335525400525210722525711561553102337099639653330070303001579715509599949767236821038072648350228633446362600030766582673358981191786173759129112045654450593112524511930478294130475518075251706809036968867508739993814954985759535608439205860122377003030773224867862806977911737910515880713396457685890529752030955220601491992582570790666652027593050406578497542449400978009091136555847661970575296050917331272143151897167451017212608804001307036703977592070341914264120868678613518552813872147014769783778347075235129528001516671074080325714961451143785784620073075833434653647447696191146489001622608737455636418424311366695996531137673884420350674538883981680912148283333977784284566192993630356509899726556524728029758104400502507899045102198619249551140816746255848402229630499401859913469934988793483576621164819093142593096029170409499016685864998961034494463784724708443011960682584527118028448445779004568708912881217651045158837187808792709247338646715098414250921271594973184207609133614395028098988802060362072633409134342356006480789376314835686749375905844643170406489422256532040556844003196835555357902687015768335642332569012337288306184430882165698642604426135468792733136211964812524693830648942106902304848576420897989440816237575898619005814888992374273685780558746119101451941609065927630057060879239990191424338735307140022897231571050533537534693542962550361358515180507294315550585154869796494297585154482642315169457108827869541801252358117585692632032143918111899402819537678545237107540856087575947980208216307317651667563916637352002510823371107797972090451984277546902634967455326308193897866156946081849011888457332411793983161181479693606390044685361441383272658429675597621205903193954431472415283988966835555940437423084801848891647938190558632545111344385648266430259889303640944243734036159705311403333308897818278455895745724617913207487728163309390148313004798682494772067510496158414264169577159125992145269835220676292779620096025374665639920139912179182304516510065743956512818243388669532380560192342726833060747150900952009313860002982127218855986965295226925434710450118823961823816197120140667527115866899552432479579784518785517497778988487656646763443479601552169980081335241256485851056399450656211797208094311056932600276028566069680859047138039680949142022914497624822892365075249958513905275197720862045317251072645226596662943086838390410523742710860416890854712127001124052724186954267258263189390407072281148342731398298814770196693088328628473146399234697571244245711668203795175551335871817342530933531216782369977415849947093513412158023708079855248413189975258011556366683380964865890723581196627462882242630103284042178745820040414203871297216318153291379236197454755545137330261487249505057092063369940159096288681118946593190243050263990296075629414503648743029950424774625417191108787992958886164095570048503845481496450158700634818837404648952820682001822971049448182982318255565013615946629849980956765591889712857109640128380761174871189335956410167102034066643334229213329499737192082542503528758215724794027565357504256472699865732199768212036090075871471549471709310754783767458327057739449621399205363988798712040085476196518361304768787664516964574414415141214160713235348112474360703683968278340105356486827249716836074292424065827735944497074798948913077769446855639608785967005535161297903156401997019876800164423516026407191848843255480446318073123014262771140883149917689841412246153046917828305237100401432191480733105637220569810663358274795733435040681280812170902706649763209835716753755595489203872723811108041019294142565925390976602787799470724466973328651240903445048959252377854971879425586128911940277129962012951155411816658915908732994515907882426770757536421424286172708623352216816108019886608467172916602383028690084655234409067477646646936477872644403516231024857292772492887896458910494720740372003628260126091959543061013833711642056883057839324808429034307664055965421967004204942915656667588257534120482874094279820284590135987293348529248062857976128445892937552556518775751841842316261533435258482526261508362636669765367578504829252478651793072493626190134256981010813702195908943436094866162963399958693297197446310100634039881913929991658965740573179787091443199724817300655849771994185448052225489840431796220869714918406079718877781547646474044143694826035109168939185101720784316187425124897581578651612933622633219419427115471084694340771214346071566311153930182834532169356986017005537681529176212469713993221963037485374317851030276313072887600839328628587703831908102195942835134495157019185531533000197340182362833826529307936664504653957928436961422477599414631273428300169791493205485672746403230369676440083318286892741961267833340677355788233180126515830629358931778454298283978914760100860017611388030377067578540607017201794382355620225429887012362263121273369043979686984147308740774226393670918759918860548938974127510627417741333845632538984406836346681100338224477538318354988651231764017279904663150370599923401855181204590831435388123813701250651231234359536489682103918326797219401038294010872426422229516865561187573295052220697986208016674213445747062451160895580981154045889624390543088048280631759991533787616819570129356808948652632015589759188626925523654614382426761036069578993701344799087335204578686862932783564400415171315671497476328692073003749438234409339349507122172984113777641188691302174220814256807133749742939762948867379331279437890607101250996144271252577579469559032806661021238421208008188413264231547772006971074086127208167239758833711078076499566835189566002400182621818332325524591655369380297372364889998508919575892692397458320856273745572205297000494489844934261388844220857664586237475891509354573960129648981113583441343405888404239916485516336710357236375450690724518421621883347619108562766001961358739618399864466756463082007168936789824072644942377988043730303030252178328237962583794519520755999376362711332116863149204007784835558873076112828378408070634636549268200848486651351869831930126294350756874406312992590355284186992267270600542696120748607683010392105145263422331183004827418465345146829134377816683077891600682062086422124127428570126453270207017118261864684605144473298258241596385999442949827291739487764815817506632387871367937944067181907404225317869238093508422109500179556335636092959115017818037432522051569595252256681816508037395756444536409022640975417014032812698675514328113858541596865861934397074758411045198759299977820796813646284594224543723156663701106582697217130036009702514832690716227552160631059487217192213738119784562526973856511523743322370744705232207386692653088787234018165262420792640049007556582905215561997959384482963045837994196774982892582508481659917304067495037493434219221795523734219202526233835577365528240692231148774955796458345874424921714383185422368426632462211999861271139367234189661796455454185785121799859323820560778207833517483141966508093248709650049675072910407524657118483230221116962247037696181452987457453533341259468925289507298334718140578549574858581425273252792150171980648119699664200701219660941100173591148341014553167976196466327383692200896859511658015851255390299986343466462962607235663063967463252351875629528084818643592278667052023196633087120972955692829007074024947993782177296063276354067734478965707416966870102973948296510770901050764841402687133954034252217713619503037143261444092229008830788319768585113210772557292971348790360712663113257218937655082292067154444984169080600746155289899398774704538411889679566401547506224197047263259014094664861891963449684966026942731531119384687244868339528195027814980532907096830996405589704158088450423976602157954286634962353246842559304475415818871877247474644576490694728212538331947770722004600422733188111267624935572104514347333729613475966671699079991214349027099336199974078468020316073714716990873960947857867065191629469359182463983945770477205758778638130960853397845008115133199051743337590449097183061847176101100391247287066185433722390420516504218224314444437780366364383576417863780914748560824652919633507524697400138058245039351903499161203884727424738373658821300774863597427983237301596476525630417352521667378147100322913674769330394010112116459290094644298664511437383524941547017600201773214248036716968956600865484424273794859665434112996609440084806406632232074852504015986259334189123188871453448270899086369274838808390159535957924969681236564228156225750042135106057834823442413154848298091142987557392530510634261210755856136830120915027288134247650074132669201253152845373530040428939479603254017103130718603216451193610342947730577023233032252555015769935709468746516422718649866896533164317384242220014041793485808777882974140347656900428014291728112314836327199203666632173172918593500504598019598211487043850392950615188790581658685286874874649614365190788285244601410244483805044258997206313827403088639275864200329054802612925223660317706998565053867465264894157059951778263807191721852802897746787098193978713548520086358116786462947241025007959586682835974651327353145684300621638848749197343066320942273237229441098633576077353543515644343243055342056914652531937596946488892852936671777792181607775117302694309695731274030183716481874489428434269269794976899942361786780791741193402255407204434916106451702008823868201368908427110106716607856474952743891784343285537678908729584828605829041127183142795046801002353511923130971223125303240639927378911370256632161110428887609474590801503850975256034474216301150104000644108056073903130098880676305742130942266254062266952828063772470703951443395417283068482313823350607538462992044735389482762600333236989704950219357717653680084069945208967646933423784082750753129651335939358086609120906260418483887471374345785068370406621617976464831981475403485928278885682150104123534465177622341450466171708516829592852878953596351944819612874688508562814662044831669646218185598797769975708914115517143939907803834938573516153809091599686858426684845944964329765453123703385515913830757727647235805778870725473763295364385662106906921979714148353816576527297096411274512316649377864340179668064405338114001169950273821667908854944599265041427072494185672404305054609762765517906051240389299815566188670289423480016379613732915380590638969377541467165454959883921560947483998312226245442262051311498990897141682742808672138351725917756965908844519119232999366068383587138922687804623911584144347832790496607394129614106745750001280608694088218661243827049828218810306264207924405950782730500016205183958526712043095247210047961513285890550462114597923613512029695721421359122931758709894128472710418589449195247571152521463434527671769106715118282273557414393085740855363148971205263039860147445197644930327033841600794096398283349692895126983853918902720371661313584808437438855134111180203610223047998905888498496588059520416477253199126187485874361475863470333270155542725032654167043744348250833136783436501502297391634470141255514200042524833049055749077109198073992660120296384487007679650170535410757980537632414566724687541489555875689437348467032306069462236743944034708620465447481271272381820986236717224645927767529032236810632872295889862959007974836746961101205633688203616220821703962525508744190455170593280845112358747916136688346111485868750324589795377088493878711915522016200167527955782908886431624041161510665792310413430036749318059035627321282077375497346989948366783803531819448803408548091834745711063492309061746292451799742050777365410578499531053463147135016782469820343626424904340316611486309515714278039683279323282941157773504925863254161451598403615667465006104819695218952127880881766668653165613191206246583570737370012692955694812163044796061627848073383152404519458074052004677347711105132180287534129777590734437431711914983009474235525197515226124088103091154759507328589421812643306537778167330747085309161927243927435875447370329013838366882031522210620551236368176859078912801049187637979716721666586811077029509151595382553806135711180244696929317922999269718731882303484578917031709719509136963796745815801131124214094143446325855419004940245737558946109592368583453742647654834778187633725315747683164756683373905377916894993517841201650562074812370935026245303732049202170399716151044876903306518959672582639673879296351704221725399729956436562299937995803165226756468970527750765942282606729400198846625032991337917834117455993258199703645271980901576683090813051719655904836167792533387868638793221098440883420679057380033960191230595407395174912820376607468075089142624212930728007844065814636021183499802278140770859642947183363306673789188143721246481692400762102942753056893578844306112388807658190372449388120258126804226331374374788357650480991523535267722937804789142296550316547341132754331557401989399959197472425254526790404980972314346327000153364574159542978137511140204222721842613012071051118216433710861021441608619922718933028874899478735114071570888286520317815557956700614739279384490014162575918290090711421183398755224585210961529795662525694999509900306160993689447195267693434294149800329143809356887925723202899547694155373842243599844546148392409019199799766213370334775851057310303879507291118201482684578451404159008925095362155460977132458229213165871191155938676298632073878115313330882956507613542980815860512284046013158811542201513834673501677512348460340836550579595408148302074976883420637508360384522720542564821484632526059738082514005324915852699913818718692212849237544561369010145979089332707717035855129377131458886191588066732190704306478167655817722097816599811908352926824250265677187619392270829751419913124028956936109384444167296925153596176003287554560012853644589570275906666321907332843656034630705400265800853807185344807781896983809116735034554988581131839693246161657859857508603243843323264665879738635591801327460797928072692008086920453040820495601433739280594416237701838865427268733140991416681619143050108296433182757874367173111092593573316577556560389779869316493043485267917334269551684764092582037709016210778612794539749362408499799758323217086538439026981113300261422942694309833863863163113025386288923708291365548424514391708020718770659409684131536331393920866884558574890933482239624679478862206781152445312530109687826551290842114518118840165042940492137434022495060509414111592733233318438089045052612061481385896895256800590890748594152935148734976767364528433404172140658115768339789840083123563546863105154563066441135536687141455220864157969340247230534846616152129381567157494403653709676276293605598023542805406882880195466843370466175706815495859919913733320169538498512626636334753333014252503053030242450330307048175218279576219923313029878594579705512718420081284599408334760083712188586515013095545189009799012198002878531787650508206324255895731652135213020265757385120685399881398533682356016487083494358339066820846841947290592824828258858228190405833740370152408894961212255583059174942785836232525958515414848023331976528763550805933539782711962168426817818697485659529910221506666467842651701016398476397714101448035471929588194134065446673743653565174980971654959498059747005893437238365129664928997489659200762113387237720430626364649447887652427926757467236579912077295993132103813845080469498345586209548596678328566120701775164502331678019837303930322203815345683910441139346149371045848857313603116301274595731193732719812776298522590706855857184485167581681878354003639384385317430419589017932958009890733198632204503090707661278674913201529967278423191639858742651108557065361573210438190944007706886477153549194004667119928601782011399638974847567615003132217633707129603283977094897012843433135536859828783575352658497235612616715571041874986428302226191373122864982818319922812079865167063804078508952152104307749988735353581040436969556310499898267588687567340453245261748276840915698946751193747766257849213947682401288212809800014967566013201972539216988697376832842420496075895393925781928642132341795535030495434470942955839867093514276330302683132377382019493173904088050336693480096192879476477829807274589277426130029118624597802338095499071538336708018784711812458768720050624469017537390333229522920527714227278902906828048291588959923264474114169027500095109655776584147459035671148819387671283515367692977009748376704493900427551875623239895639474236118363559318661844655165478204665795868206055814414292612944899352729846432642609105530391454290825342217512490573421452837035838945312342433666755782099432309958001181082423006127633752435299472507794331101966692340519460782541921214801374894232944791325516973913587975718766087501230443961340478126192301866691709377409370739977250510163593819002455612506024684150062823057821738273949590417525630320435522671953403284921386564181093789481926428685396210308047999950154972856122188015326892617582073964546931185523333503824213024434918386739078196268804846753674359779567687340837922361801393217736060594526523333358000412253514837472647517502782473181581010428410972449149275335453069542967719597240696415352822968117941033678688325708787514091878202574011497879616480173982378249202167807956394709830670284202153962979639329136957899293384594773097956076361999783747313154236166705186916596032749137524320981145971889573779034516848239003571865864274955445637904639771775456974190324581807029545250273519269421524064405749047642454500009505480768926115414286426629339597400722524286383417410439481273356239971702687246554467689614324442675196434851978249063745398393403272417755531156954496602920007532460299814433529246665805280230056580526458409753329387799454128839067135792445591181837660078190436951340884665329335291483624736731852200991671775148794919986107703026267002525291141375975973927606734373609193278044791547376899941721303695620326425986671295099933734116812274230589421625613954084516381934847307336347756146093919275264518539154489160951503927654801987060364170797200240052042800013857659096893943877219850661722617651120562215537693222469342385242762040267324371095802561900339037017641675906195889691303028710357609666521248158019839070306479860707844382667569692282252260180704587196370651469317268085404755300572473211276721469549012020810708047428136085090289272935452274380370746765145218601549502460989507836315244000740545735403098822430086615048612807626966096110233669131852350469019223603059175567077502882409896279255279872709843665065069485164701044245540988769386663861496954097944057457529332483521583639227321993724157524673593455248418036314004890572128115173603442615825048979623452958354812517430556249709940606402307119951723150126728657479015092554869088819876167863458052055408388845822556994407202936414019060210534332646783890307657533483946501403227704423720992418903381690971146680020651685676070997158631919456194356278009388261339888670009214791335844891775317929142532607637268124531615388091157498719946166644056738015086900315031181101094784525593457558325294882794419387074945018499706637193108141023225351346225726175050050489963565957324037455012917090426857131943151178776359187187381186846537410130133582442389987518706962557302797367451754494158319917104042201970731906612646124159505949999717830276549055565673802264073756509473940456930830442176791875535533904806621229254590549558272136139213317657502029724713322419530002830749188303129206598963951142751215597680300162024682971234881643545692430508552877524697376944512733062301967713359269101629114305030377057572691052068178605608696251197840210501743091462038836590475470802641620436700718064099677364187133785896613225033686538587924925310569672953035077405818971231336666808144620636659883981685678988120621242636030379115831169230460178862963774785562322893173259665721648121733372846998824341826491950361786355070840955450026485357839447657741600166881696542048627343640231541758630155821207893702687792213963513840604126357970189475454661298522387096190685563146349076753686212418872232917318761643322997376961757403128506058056047595155539497138680400828320958710742699902755410070467359368031756294661952812801989519210966787926814399906524474156060095112233600547875723576002698384413620900310461928789296509629036443592213914180964026515438661071451662876507715450215594569185002942092946722394763522815792017575000890052163091760898547456469720069486595825099255456665902025522333677955468074350085991699033155726021639331380837417944138653072179706588019408592410446357849685973970484380421324400755426946244219369870804455297282410008602768708374145740701671767181281869108031681343265974195704550910017478185773203509524416011069889457061328080082908840430460150467231298085976294256927577162230330065598617566060108703469561798336427559217546034130539199555236289659686314055636416586669562782463565460306802400964943595240340869902339111182056917171008207773531239446719000413666034673772327656947298929144396353624751131622071860972746842085340117360149157350960583882840150124264528214768662171772094035610750885080806565183437288070675832724886174275780612426036197406571819645083554782524129891485138356016013865338894265753256961924430410037248236971787751871878367784901019529891852019140249621949285309421160559048192194311044082188381254564680030884165543551965545414616437757813236669857671433328236365146841947540831697781383707541802571675717119263024537324706275813793161216409678908284709603601106619881675754589983148329916839104092297329121235567494598688216451569775398733207599266056127523711143828651456313990179242779577374557640729282817373186203757602222270091143866999733377939605858233773482816146492967683168859277203934733351964070751409077096369654556859211281150745738166825432418204340834265613170658768185566380173345476693580491672920646014409366150544241388769053833313720935947897817685243377969137929071844604917640846073614132088173332600694889093072068056810201825178691457926482039496745646402495814330967746449421832854925320787385695344788385037564014372529652818347619090477521654093309508585974456415844816244327921408105645153270095643566735874443616740506917452767180764377815502958739571058527867262749940677648942372730112736255142907297284170148625262451582692905472196106122116846270208920357427679672360821125394812299760270104356104237951113481411280427850424896870530455624685543774595477587176239050474131040001219310085090828526289467797097362368501112247233926128825203643019153927954851391843729234406433839532815037876927579712212354919572408022084874768552844427676344566283222434842504388383939775228300287573643400004497749985627969951514419046503048391812386901740669615165873552182169675359898087259047209470855517508399683534236260893407502737735564393720681048432648526526822733481933760621824364246859832271900301642078195142398366917280746930670274643749944409694230710764276536505949350989440493728771473703841261935730818956391150497881824107518063950491872614412347688258361637908489274141063373443693193027933161148095013617472332055867543805979389323044616297866512052165982463183477697920099686328837445765463773443798816725595381109869903410769523500761590585165882484525711906073263389913330396130364415279716441845057935769930944479217691056750673244525887872640266775035222079450423896001862237247035920974682163411409687011969956323270965118630637435622111708280664168835800717550567157673959721879841208777558841732849360730643257947172509502157547256008192718699755097388874578343563696386923254008190654408654895446080131712541666962543692008310169738497431856284103641053068512387266649508243599219850510608368413508361767371396823556207959357450069495970176617779961837741770525980693675975992727618318818741149758175904248739754009166092861057424337664497624321362566072037337239784544649650295030577690838624675446148391574616194185069600815307196068150737758598586794103081619215190704039904889621262251034218555475966278561904288923580498096808253353852638323226707438447835000573777462283407422090906093071789256217133834174225030326133585960983904384465504344645436909832814539406348638730235541573370229231326602498186719303065296944456198587197343420301370422396054057995072426153749813856969299996803595313023672563932613501364262132359417566444389399410051896915934004964313221532021924768530850346590850274649810541065441585866888118139875157812536971042832198563807824788813432030905351629888303701710585964553163502721995763664729342315788326185883480674630255481764986980187771007781469250470885744647764515843208884010896253378233896473571925225143252982416288427546444974306966527760976525564255277500200132731842395077434065580632926172829925027295915682157832067697824314842728496167887027328612259792486788736727878225624076773846962162624397322176451745315419751192389835496225655114394142002971928706847026107988961282805281716460322180638454580715164573031521165741456016205645748967581916946757727298726492702694378087516295875438628270580619958204118860558213948092492349983555172301282851557163876455960304778374601148716881099314462227044813269625574803681183785743967220652139672969760685331145823716886222999205320071827020445362670434656372860103513181408955627030796862584955287746828869705355579457848353999378689416852749240633036679256044646330741550980877753082093677577745926048699599836014540899917051129253785473623678599604765006773710436653178841062174043899042559309950835159786396587547229922898419326901387979820247882615770717572322371377472924236872619723030967437408104365844438797041335021317015705053683956177296505161925258241273942326209723203359028800110673466070236256694894078663872127145491003498210643809040176867647518770934764640208125813553918730903935370703869101542345205900859974050903848560906948912474927749378252930175821246835464329254595572920613368012922070542676889358220964526828170894910622743181297748366908450843387398367724664743741430966555422560891352321194314873847281487217672416710582485402471486731222965849094196917317521212695180743307462434586341079527419668675806366083877519823698851329932943919925056099279311033834936901846532912920123016243541165826248906467331265168925997048715376023818906404049278140940157953158207224456261609729653912404120156754906713587356296421015244619359987380473934386330721762639645198140431574032074588348614522110300331142461971456526152062355978901662167078182551401569231901919744951603906501374333101152612129407857588284561016503477509270701774269036154050729994104785307826440054843082243398143673442770315156013984792909847262020580306287648896376520530500810344848825886702661993400206195183942493600859283338081371902109583704238901463701284992075046193589312076428806922420369676895227092116339311857963551579412151626997350717741829649610072824998450192666435917806241835489053296199598192197218848883303669193672401321387674535659433278122371313297172515585061307509858046946670640165116197982739013731370659207701422988142638432359283195048554491824306466942001097039182549202830694261170093619625506234469169948005256972140437202234981396929024971807753020661044986270512726826278000075650562594946090566161608104096426815973118434861424055900482091245532010728749600684693114964564082659407392284793688260692845521938619696474268023899325171954158243791846151372416189071005582625669961140187633923716036431468029665733283657482314103049054290305552223707762308989614982771773395815282967268112475925920646124449391765725952696874557474200342905516820641053804950414158371725556291597991212974066119143208407210418465882445600013548795774101165612978459410674368351935468075908801700286323856120892359297598334681357525740937077568931032976255331360357301135287103180396641218042742096662498305819214551614805270875733370189918146860843173864580913320603884065300941250775619397549497354119545369213657195438044931363272315661223643515464692727267865211314987416826072453742080611653316684559230114546648691971878990323663872579114985510263359805368974292888210098313001268171954381402568150796760126987696585175873952540474943518767211277695701416751390235362076458851567955504029578496726946056026304653033592979076484796907831326844125499954764250608990866827722841592292513681600131186443491705601636685749244508855209413676431005754346365752169421652255777464513409657343535563940818033408439561303253790404190971309880140195613333117670197955819269312257347910437757786332836831666024718682753318407413843512666953748923623660532925027510133682549786463141719260495535567931473897528739382186755921785083600202849473238423017344484656731324656603997509285551378839916236149314434771175828905291549849558138693689317839196155474838815252355295565241096856597273240805988066625385700731827269900224941982711287578000546623787873638615513128279217455114481257581630175825180759792059694849618949768303575048659664250976342017029707273626626864555350429572701976488156157512640912953665764886418298969284369072265722896614257324231145976725251086954506660922035924732349090363682112642865040905096127806350173033559037936540283623907503607736183678228470817559958046901446306252258251923123197278766710883863198360715012160639633149239921110825493865166217111962437980485998397813987087421734051695202721261625858463159850683536459844081462589916774368970651818852480761759333148207611179930040841098262924934830576289238883512199957315479301721194533075114625625276363459541357164226129704130893810242573323350238617649153147321334808474080804595929758511197036890065820635291405636275137457417046709328265114869227143618105285924825274338499301485132933266123038024892337834913438440018566478493495428932277778617865855009636853864703350192580973043935737917248665042330176254695225285091547617544399675813481609362485277737937273529439977952838598556203059862354886521254879329505368073423205100981607325313258837576021356732566393418250816568222599943725262872664153394632932013792531471929132329789050904796110396994226795540295968579269297658553653280704284133885151484550538670468555190350857072488214814598954307145599095521224959650845626290862388946305991689684242539017285185665222700286503563284753604949095952817260180777567883494225988312373188837688761042029330776240392505090861905170863321602064224936055184866637543504018918237642616388738371180014337752325390876457574282196426439255585626733024943906077882553946836475579118664138537939902209121835115947724852379704025587936064171681244789389630899595493610662519765026822822874056328738326483556549618947155682314864347119372560641465504527603757976664084044403069912015995576312480424364639109055547930146331869710169630795482991701545522539730137714026818789437876865590761672832296685399640065452400311577094069158374128724503560545862138522880723669265792756082935931198156998707104235155821698483582038945076490530118150901240407741353179402974056464783878941527705801345652881574872509793544390792304747865605815393603658218196633593060964178939477091969146551214232786138364300526672924386442204275182252556040682812707675516587103687812516142636082969698038422337919227804973968099499242565021627633612393314504938691835805062212502614390996589857533291689642465320999422621545322936974263844842541778546256589403250600046829973901162729653540099123323617283983467506136829288156091627430142694493807605958425678033727426673097344330379255215043053627441433032834743950152950205853505133748000380352157495466194750930534570139260029211311777491793477185458453357025236154706267724430978168497938534007481428101276782368400189433364423267833450079272993525237690872883677579976509507454708998647067781905196305985164433743288037931888327902284094073414732179686341938798242802326984196167708878168927356059069608681505710952292466014982500101172946113216314898726477068948743734568480143786658248712761832205797144093132620137155309010225337608508384976997237874124559748584106877728740890028124680916883998340688588723591790260179796618870267952731692237530303955526081068697804220018288669420782392831590188552878723499126978995604167443844988525190652764161672042074506262882534025590252371682688348447810754190598925220055084754577225240847345098657958422143610143940565238455329626102849966279783543425773357106567724502651077013787193224460066709801761569604384775522267395977256623374285924249158639077438165065462464574876840154554705768601437515262869972586513308672075337214322315682820119804961733878612184906012258688075478373142344361117577528658516466228057905822758142761116784248013394821300302949376021124180143436263255204448468626031859663752428445355934078188005907164852780683882142096014453507876215753603092321504149155941168217873112245270461640730913059716840836257135966515501802102660968287708027137392425717071503999944830868335418893293932035552590395647952800582219511006220715249898887787503651506319862471308872551657406092121008033388091841612006477624057401590388769138616338955759948097746037479124310488892457346088125017651308773958143201756938128698545444336270801919745294502121179565484762451333130357526064099860964511876383844755598968823926755188789710109392535092246092984066474493209058704851073350884266844606363713509650702525400463822001754262716841957376933667200658443259513158234057934909313799962239319614997160026115936315057607123543460534365570522614944084919863943294514848487369406920682436662275399622510666204855255870286181823812909803964008904084121872824478366510760057489110208549561366732646630958424492866365769654248231331177450567340224914032965095069802687781893774594586851451336298782234241509084530000958274672480109897373718473265864769385980322856344382985406771980097479757398544013050005866192394985503387235515170733808276190633167158397303061821489490964764037744215284239742092924562449320151680216071750235947229164363705222513671287537033496856983675701700227709552974246583071836864569968893405906105673497678452415990360084629324297571481566222204609722360389106798059349816262506279642452195327374619779655712922361264247064956464509376373011261644084811008237617828172422086531146796442326399987075520054747629096678676601020210157594008200699503142249981578243331725368736600886712034590057724224696620088545450132171314319610079046428829831062200001090447472694000454533490416542876394272264350565717591109231881085344903028872398662318018742193508445400837878557581951937594334423340396486277217124904364817469406048560945378772468272792254106058159481420076644416618722706345301790986414436685118303257483646590364281074518720475007087796723091722768565781488057240319797053616364614738359630420106132947238603891306478139615076105105815007313354277344332836245276005176058421805842474000805338141247664143854913456633224071820543841888429657910963514139148813791815374189131981106504572451879573827787695832620916196170180793774721216697997658741301192338356196084688636431114675936523788222299856214912718355930819092264216530411477092514987047560172005716582035876458347980779868782841017634564643814282902114655867134101720750141499467135388899766998963075462216895422953842972290042803909016598824108323817289231486013160538016315799210348369735193562539670949835639379638682179394724649242295645991520581206805650413167647777713024845317271546689485230100848664032333126161298161025975417253795864133346609470426831412507831988514589120037090655514366962314061397425444879444035974555965296861557510805283788564663817116225160194739531809401844354528393827046474814277852318185656503847859400776375607611970839567875521799916939632299662907896626240936444519873005249063361940715258770960398967866918035278920708156387138627928579538976925091303338354733608004969803292385347991216385657459195638168265789198613662306529621096141335331835144177842548162457684258510230772491333728254387476653936480788706903625983519277756266675456439980719837031913544906727466060126820000342504412274334006554047764954437885050091959440236179122662229405894850432411473195828302479533457193191938129665893508078540508236897592554835210512664391253572184158218694387235138357045748161884660919779492932884159918292860796001368849037097376503100822597735003934374364857714351727860065917891791332197951680075224486554675871013400037559520234164711202878452500880221092709476477484094014781674205094817904170927759989790780511301309478040654059342700408050448156390067726923944232726397047676837297007929376752921932470263522060348607821028937720015457868171555091653512554954245655622536564751807753817598363096672552132397849815895327748195354834559152981372510691000241488943472766189883560403709683485497902053999570120986439430047031665172074272163406864177701158340114241118441544344845345032813860381855575711724869597453413477480777158146269585423024257354440429506238791326455863475054310718223348020747330425333428533692480186105137737357514525284614587544673848323209079654285232956873553483044042362234290751947490525845424914077202480802517873876112672384156760690144156663152015347034103583776106457222136210589868485372076782996607384607901978099536379245876625342892728413219558738302295977545462906302797534043872784508581364822923427501233695618464270248156013611115286294058624833466848103428525249302179172157346270032501875492676126865700133540931319496360984332040296929043422032990371987210866115925140541338312826281655198154818176046701773067206058326839899207965113267344008041961642015915977584016457907897740889534874531350379153024464946833533915552372901291048567704055742426156122620773894984281216376663483370963613993823272671777269392306611373479361986257985103730153195255422218743675112771647277229710467067322077847725795035752633847312948256107018194495712224476485034392585741646940357889349064475673828332687192565663797644646319148732318458334119033704081694147917169540869513253899298112766749965805352368353794446089399630845849789823592892997680046046265742542971779011048189708157898220335810948158913324500741311875615837092229907186902297572709316833039067645394811892210983210238200505692589496727998420811494614297369869311183754604302058853929797894623531696726415907307005351136738505564721620635260043840645942032550469768608853509385484729154317932331906845000012403717050342806772638851167983551108860202438746631870637532610033035374530781022675048816331611417577952962891187094100354138723138804573765089396420149699090669617473070947070789955114484038379134655773129731252387679545306453750107861438794700142471335678148613515609317178693326783757205992447800295446312569831861355643378450777832991687386530833416039996597001977408881701977356401144814677657445409670117250184209204484056975618926702339687898981236912253341232726624528125963891066581121760940198790215033446657862540217701759191820355053356202856085843145815961495136628140957651072773947521914515200587662619302411597999920214609470631996960152405445731594623758374842224814082045408869465091304021008230445748797113069867835948749371470452882960920391704486457204419041696431421957464260050620412572362281429632535545916543172374046473105474541344863714028502557647724648498719630569047255406918338562877831607727104182589958120796203818437621238930114838638611466688718996286334137742873928526974033680910734900520028660944504057839689615709962445048091819584422910376594445156074674924489243315472035721519606844934362859488313500179035843665219815803015241202294540135825690586681550321198054330984844195949933893401278186559920734089395040279360351459417785076484623045657196443185667096662719743684971639062750503534079553591110371033960084524892928641072179888162140336072071288496206763832373624405194903439725771696246239339928317250527197302094136615373176496215026097461305921932810389887678383462924928529139402293639614341938941459829071643629896752250753972961375848381151089776098064654065928053239102044307336678061519816069137033902071002121629316941739139943893087573449105329750684976033015491207310500743899087300297189445034734364957961505344108589002298482917880646022868480213100024725455125890493868231491265841104148131919578892442413445495652342182957160149902564356539365715577899935091684906960647751366197901234974893509878814793730333450590045132971780306080174907157892148010536281662702670587503051741490104601129176510478987087521363224325650657938383759807560064432859707100603682191538865472922363852608434451009242700032067085558614680966376994291720810898331718007457462823662787216711183308375559033316686964078287407548500738027757313027494201290520153042429736209902086140121653995627781643791678362859288039634592161365898808074236168212997256979640869178340266235940293497896943293793222069771224504790040666525480555166781898287204804465519203363291729952769867477963521985508130756817493868188807756184254183894407459393755717238442723923154333403738359382529964407150581471296971864371386953862043786910558168483903338246990244320230388842468682384834297936500458787004359564096283573277274966026781109431163583774044484873442603278261921687867259104199562771969388540019774172836670559433620794406008854070693861892363801569275559635525581075974695944117454711846903599465359879743207825990955133724206682544918329465437012941475833835489125026300098260955281722188227315950574298570097306659934066178271589684076381753779654645727161212932782785671350702626522442881868406631681670308823219893725317444859046744749496419214999607917112613170696850836177181042470018520666133303511297614795545857905011879679021140453054049844888168600962079570951050950918972356210324172284038175110591660099859241562018664431535263311682925434365493426393747446086859917494906251816479731328430593445079483039087370732837207916794462488828644005614997883066400878613827756941414610588293121814967450347735687486239701265269253295618402851769107195152947860680503533299936338596054928449314165247566680183046944099372413043422677967414140381256094020456411542233197192202473734849646592107063762287724264594707320991649884697005396626040539212359198269665614055924451051233670783093843467423057651093101290480470709963653433000871640480834763932425129511296251493068835305450983054217248210812512012139885009298089475107841415676107688262004535558553930973790774318532746722272113695939335657006208144292924787600683952335486010776014275543225281761589875771757052937566233699666334034027830752240809792144326583995020764987958027664099891936100322741782528703152936980676660663411346079279500826414137277194788116638207412494850012617023009580564207466962112973517885529195508356949907967218666057701526801173482055037502474794820040469136153415781308701371794844188324079188777954440977927673610931070788388866205078956514298288057570618906265389155505626240306285035908365221851009213452339101903667826535033949367847651052187235745066838415562257485583737149879026466552980875836015332207583740975770890645424608686176790614382902800281083797902346576569306238198027660784993994307731361063168279711282802366077020454366944628813189899195559894955641409462669442915695319947059720375436188200522569914680197719350937235684150568465718657693370324095266267774648481834947816155487662624884297482266733017316822450183927195626959810562243076662226489668381637437696987575762891114095735841531934078647015495243323275822871075905228019358175355097682345598925405226167276536588427645325960664636357265949586670349864728187457500658766176903683333598018539327880867577123469740696287570621993128969952792404961580019867228635389616811484272069604610276309043678670476845311933687460665475531205887398202912802450683331882198912538125927615796877501438535620642203719097893239199856610768230906378696150973839473935850744834141868648696163963853134743123864499786985940027160217916668084760450320110907087887726814447561228879841586846615034890167068638411764008538212976223330416661787576578731077659189857888330168486606531054225474493515858598751085003049042001526216623226489757295942929889764683590640846002824195658564793233666296280464089642306984852263274594571563590122066934319199091519653690855443240331005071815759483129904295131066702486242112531154391151215958452122602992931949221629465743839714101042526681920556485966789870437843573601209504512891222445983830657818068992366253842773050643722129978689927832925365366513979824323569452520678204614534838746722618121179507540238676426877205789069520281149215118452197477488281285476736341185554290836850016968554802489844732914439297953285883769258920679705058204939787982684220256545649880050308633341742978443011031078177566433219100140140721494165743693962235806543217506360830463742925493353571267745646961313746634080924112177588371560761329120440253347138465822422674468456388764231602961266624081546009964827902244757367272467440686382993213263330461610759632394709418138663930633366890765177020545474684939749497902134761008788579634153425819897452914308433678743978924684675896358180713204878579897434371762773346732494072271010387557177474357039156812256803511874371999382544559981013798043418911823210806305457053100359984671223320574127743699666652440515302885056108679975275009352458108402921263269266852920740302463679648104219878928374972442684958108478049004114623391008865812089094416400101652097131596407718106108985977625877877371707892967742662687379417360241561962882006247862184985996914415143862264818277740253802035865366993022657328314556756985964700323377592578957169808696506235142822743611287781147504503145964823058301639242234496522881889817284855950971406891273087166438950750325986638127010183655541865100855221969178525951469347646672753259978422219002451386341889016832342639964268184036792832520699280376258463040388463403162669725961330028513304528537920704283010405297144599807070932114756177716291509855537301425603432948811997855703977864760259762461494082277173165528814627793094700199484284508333848857931063997874035253546550434168756620550105961339027656591940887817958309426984890801399551339794639187142780173519572243637873461526164568339692289847933121973404117709458117161198328982986698358920386624035530392262063010616078076289764360838230305243939214748045867752700067718788653417778668159850790599689417003713590197133862729013693238593484947109298529126499884079000818843669841988995669942892064285692563827633695954192434985907043099197682231304718417693652547607473829600060193721776894378531827959262174045104949855121875233982729298446704368645909552079815879505866528984832387264419299353031749184541717645204944733225539661098141821124259087482467620943702840956909847344348847014565472521374340277386947324088617017194274577862317458863571313466093402044062229178296461811739809442543216817855402751927623923085911339245848762200426650398855683986111539307398243103770427351244823030188729420632515924324246311730762991433308532738424454618175322113292096372382722167707407437435527012713453938383375923248539773564394419167962887926909274936280590990876860009338612369954622246218642045908432666338393685384826472701127925297953270897754420336885067809172243802285582507895110315972579518336647547810258422726662986793718844168488851653833714067417319811729761241556330666135549836805689738389559247464722382638951394833907407661342239740090275214702516081000709550698358855803170419663230022594155396643518730091147014991437743810802810949576202010166655089747013207793059037707777653008936088643270684170108082744593103362027866070717286965911394284742304528012895592176564188334118215481154354175383310328303347454170361060830297353780306585350282231682638880185710627745847587330565815570004684844001426027942089575685752236151005224769828941071308384220078182311144483686568107816399378834541983892404849967919321207929083744704578293919952161124373520130120386538372751920339913837582506008640883769792252119287153156773883864361403147990294264079025689271194815963373766425441795703396836934313799697897958162430311844080325932403419271434264794287160451856887581926698801200596033807691955899240707397225320760992964544283023118506392880789595688835523015220290596558899919520636104371170887380646362133183973648220476894370502149904249210573435181344133922261219367874560352223172400175207057313854128773461641862192387496367876128314599566382861196949349124119933973058144798124282081022629598778996538513642452000495351082932072696117778715189873214893027784002194756480331099404951003523016341668856712549067513737056449323168424931460873789994656606434715933547128931046835058054867804974445150400929555167438523770767173578029042238638193761540144825706803330684957181412127588193940030779341800178500181188082263332010106321524446897433113562739909196808936391539704981844306587583413378941752426848676055819129198095202854302570934280785816285779857433136566715051063107824352258892859532713457177435662766820058909895825127798077920584975629995047917776206197044591045637323319165708152542629841111965456352585136585144739333493656487295639021723566274585150593474118969018674970194519016968596036176162690887452363407765546052547117926929501012781345393416400023748908816042691635900761661589328758702510742355698608167896414252224236184008672783057848511619611881214678008896627719140043479071589482529159476003263046156615460921835210679660962079049429301426280249920686364697089103666213227367101390081450951736124531532773146427059578201366596644333268101130211522239674468880301515924968517700211485586585641762680878036621130863986816913899347305672255145861468265138188957245973304638422405282712463103880745267325871340240622391201531486607592079961724426454789273608642693632227544730064287056576815423495783902342051883600136698302502158411780189565872631427613460753139005524705125929359617602661883552918552289869168873568814650161480590827018972479520211064609991363446595420028661193070111850075351860898202700811471527444308370600443810443440541080512960425228831618705701829142586866919860244880715901602399950832131416639102296897246881599886636347896262392491441569236837737997297748648365974187004874474839128475192674974927743303465764243346360458453184967397343721652045444787853269535795953310907140511149774233081834222761802465302231841732722975299540796509193009156568289622639770221980134260805272144161053221499871695935433999333267558420247144117700958074438197853020330237880139790487114011603123859648347955916012973815221760101831312606179990971374309959515852529831846741661377065016627570355582525249599445451701963017723137200010405043264406394987967343045391993465639755353445227134368225639305200278505068749976174857547218825899666637740655380346808391102825489366241963010008916139294255009652320580727294872558820553600938700054790294100374648430578442435878386595769294626945496535779290044723584828100796389920410726218750275103346499621225619437768654525034330287777010620690634365899618867740570589185480550568978474748645217753071478326716410680349250730917115350869562569599665626531186721979860351562158231479708310437168157198195509641084007967967206115042684228132117648250474279383618194290171884847083631312155438713128977409025941032672547228901577081899757035998708402696902012858571737715596196839036067618226857887004249515602182788603443684634683455801257985195082223570679944293500413872998581044773456140635885704258249615169464297072320451189710744716180846471808861433729997202586206674498991283795280592162907089683197408600757615896142227266096381133544849226253401528767254110924429441793985487524489403617321950067131238513495607779398927105140766051986612064682716571113941307488965622283816479342334764224157517512009747224028122466243318615841966181896821542320124947495059453306307318218482349619420201461972954203005576650026352045446424903744097895236449869833284819488938913768356860712561071063387063209347314147349018028582294696304862994820220116532702879743529433171466667440092964967330719995762542802890796284568870637205958499141795311480789911657141585555759787541444966349788609112207547421966374453840238530824114894988193300963570569932849345130176618461612584205010680636741127257882835729102037443738770798074371213939446595819042842779904366736279193786389837818323957659067671169628757252748084907381734028943116791926336204204340885541502697177180024615228493107838573714640695907894341359353486492653346496808449570996947233657456732059181987263528978356021581065333160455364776237582400980655367082367234154185491318129125154646078540351513206679974851167051440126311184324298867950987105106036793941550719295263770866500117284428071110167619335365809349669425940528630591146659386273346759575806157671636994723491328050849133563108537375778100097023942074949937575374211596316162812765624035329284237294305980333226594087114509298542048264955739786983167855781668894075991490349929013767854805473695479204242266758223016965914943282045149254491370924284314101464045490591145056244615941765721303037657729988075569037539671186090229150827761256880832122649321045842617584808558044594783215093248258551924586124014323855868008639812831915111138082742052765920635777843742283947997689313459648391735727659040324357061857949178595576342040366706739871141633118893462523530936148994876150026893800689248246368824371356433574729953053515360254962812993021354034510293196774262645541606498351828512480983738269164981446579445772791923065367793532420875042630826905965193051166715900072942905326150211151081892199323917881306215111285509383079490780477077876275070007809856501188404170135882349953184047741956759075460718557763929426065303201308553102441836508524642208051908316168424756711522408145850370580169372264369356158106682115084285458402915851644251956240236660226430411262662484359563387652558088517024184323979990464946991589120028092469225830864421827962236611708334331628888482822001682509487562594775589631120795671502160038498523223912280731526630870722638986254681771772674618044774473127508723078345634218579211507387232412486054223141985801157321335681991105489840192602269017841014276145094450638932401696582607040996993864147805309769688960219358258291459130798166707541687299028751062958155207397023192203476422617646728350441562459366607771993733672901338406090313085012156354715449909618995924827600589010601673158116453961243976776225817958897607048309666045574341675649669493406732724475318167322639168177691132579021247004595479849530196102677727358080067069690615245062614922363919427057042498097078381596910390219364050092320712731240742119223330669823468943550083592544517359365461082326650334978216359547510502628953289024755081134934968049407904277080700074265466109386031234390608409352487459308725334817053920024831735972055709225173483532780181742247551754937425110115670434250042432934068418539966776997785417046931518650923713336732896133140619974632649297400529312594077129779778426340029893634202360694182313786009966843814690798681491880069787505287992798859398130118345921057374847433755348112627980897274046918437994059271402361971655826620665461350766135538268892848532954296691023928331584149132028429548306654765532176123595339463828375358868502992445582539209526553162256320648269686544858702844731210710641091015568340693713221408732982431951660503024011278042429930182951586000030146375090849701050267257894694036621435860285308330843418064420937718613086097485183950596602244003705396208738439310581392943936179936870154029561690731760820080069946249091879010435022484497257232536666712234138952219029349465443615093512056291219531902566411610502949578838853806476997692058895721400224766521205540824857927132599091180276031076390100921887381036153037894825598336226882283573380118391977474464035488220766237704221118476363970121265560913684609533845042953251630958782082196014400313275472778544507280253523009285343823931534847631148629823364244810014994145052542794672421217167207639759666160023215804300372772022176134211811711693942473576789347439866730512403559695584196289700616156808577354786079816847117509180072328702019676373511625246677554733354982579165224491266098219545763694684436568351040046893484283713125430784653867804017508453630711655348837027100891324347725011264733685076933725797380077620136552526175317918002245211781716816035811201567046549424483222234697187716272709108955735076950751144103773118079714347151627086491513891348882741005588254689818552821637882304774890573896629286918382675650289538795851965838718486471534905167615776561451025835420788193053183362224783299793408706630042943390456579680595304083279500649371966455254851049031912444067141489398653558379781491585869187951640987402825848214984191084910086900773063311840637059017140974914013933525086664716599780683766212113712231918143199185362590868566432639353364565983756782690396275229881796466269976024590945444603097575103167356987967044467121555407497174067046765540535798286094002997033110637333492175602252992884595569125380025280546786177407779337051298680164531323766477433116345197652831502163813119051639527561499235546174704308493586562455347707190846613947713808632632052438867981245412176386179222019427806971570276893002884843987798445509746580476560143304216389434534648416137073690603763228743512930268223145668147336382229990875114539929871867870422098205778709804488215669148548229806640337549994359587757884588820736844440880337940649000467797628765929987698796316205846886404578812752148341172600524307731455538123610882581735979789185230999871763613001336886600312420163118706897955048576030676855471737438679744812816822934799519297096231924023428091593561737653162574752021613039174090809467028043127047887348175115896888852388516876255061792322892196222232338969861715301587820538287686901126057757051694257564614907925612249776927746485184632373199760232236868721662261205432221801965204054514434494098652124530326671590827007704061550219488857392986351662135707060593220690147571610566507225052593895358193057399167889520192354902068955612811336580737320337848411546699279891396428307764394120540149484004297290770581111671255058856302430965264773469058261461980819456109028789772089297659756207938959741604799410913362828006771566431088969145686235681056596838028566147105671285889782805346362287655854369392138412160394749608654336280470007929655097537572020612907905056335748077610553779290891462074536140896203487818208306262965911486867259874343668218863356611447676808873984833545790046354499359886247665615571602438117026191748323928318165110137646941709592690968313163841876608204183424347457127030608999699095521458245711934020619182071063773647866050265131917451524693421651203245501671486834351573254568018904321877586331470168132104730082821970032236102864487950009468168787175760131230745274269316037145855966911978075515031447941886765574853392072653780291392878406781692118418493795936721777465359576213207232411237320756756954698083805064003581994818041040191811273605203939590044604488433491483166080562049858469132059017677230113559111737594976989595484224981375348422087763344146024870413474643552733332967903040387020696377322448168073124026945333855127277112057434393381667027497156010478876088076144443006736904505244156453815025314271202684120496903687465296679548667309714495667170325046682307331430142380258392221746491395954240381177955200755703889342025345536379589682120143050254975081438290829497142863553440284920433389968210249629502965257525968899850188103069364288149508066126491328135176914389239941710170777241151109742986578446877555280211170209448276761215945986681681157957199727516036961735524679673317521803016765195253055885454687561318417263635523378941385524336319949725453266992892677765016149268466181674886134231085401755928792915147849549161097569455873256156704607729859068420990507753414588553961034343789966389058836489126244430737112515980160944373592554421673247079268126122167759614162101174130029899564091217094343618877237371739103619062395926955336235596192746029414904662517136772325794074737633447297249696295488291206981794306490567006803855210607972600599295780348590983535976702000772745848172995198127784221896499094010439126458116206643979952822113713842311592904448953607899008917273081463862214098011168865049736617812870142149204212003686470878604380530140079013824590239029853851444212856371885906835298565062319092331002811757775146416020828972999915473434735060940668041506177927082902793325689819312494191358709214186507732552399180327676148556561941631795762548351605684094223864759748964066827568010826754809509666181664971232884007545975111974677447450978457648614914275842546608410564937017549436313863653399415969835900008198079532048226854671580492474097878642497784674240603798821980764876916298099639728197507910856084828042127930978091424848087699117728215971190180326785255807483715433267955988488779364418303480311974771846172619972874766665821069255320228618020934136424413529779133479080147387204188895180110293789732116473800179301628268470642565242711179781602149728917051029458121639861957088350919689858882602066712406642988924513990039965613085607329639184719007439974260020940938727777050645477365682865419777669278650527144175379685389493287308462676356696817763870765559618780963638928634494659870861606095555933916170980147591143602935838660218847436880828371829696250064560611967518221059441085778737334141152021982584506787478726907559970761050384377789500630704626429705805208897843104727778214150195913021442435742161358054901793360293218372246997086059032156183861251225534985048007164928830389505143930077997088413927265868855986584575945174339632858447964115617356432300393805652011283903106282835992324599006048465565942386460942696307457734992928961108709441144661217755190825982568985417876123369855462088347017061024457506520176005219726117084353904843791114149967908819780751616529980877338744772054763408708882908315672287352957662586862380573412932427757853171803752484360161883058325577826195623230266787379176332534869005411570669739639475300032837500077883674333005069344551673412660938621494614901997667160983911439041944025444288019530050005080548050981316156349018444406686845622225785290071168466353320702306140225758321872393867137999536282200654872474044081084601498458249937620798526624968535678655556071224147644419519637028391324711160982850812643837103504230498676129829433679810589835428495331092405093829153972000770758063684900116488755722389702666843067003227575180521399812945362309300414795694278762072372413740658720437815386080821928088573280462204270141374399244176186870418154617248121356509704255609612595702946993634039160283959228663410969116856191954858120827620185362339571826884250989853836748331600693721027826281866285457858898219224846773710643895466998393947142457104917130790616321580374355807494135976797240816017096363999070262085846303963280907374408271247317031768439817089619028910142770485567974674557109439978286724754310780407096306628549803331388875166642374587558993705744813472731054951751647311340890045090152641432133460747956787203829590958422119867434817861577888127113596593506503371561480842564548672388551592725997208875517129168426766821205991454858455805657902574590595837475749537768840303529363307178639225872481582370985132331858466963293772188694720776228976531622659819097556036720194471168218907567343692697700414031417775195824134493143004936304758809792609397687425880916498493953768927907441954197534684446636896515247378408320518262764068609618787937523082246892423055357425399533199977564351853328940553551305622313885090931686370964492648401960227504811149892286706560280564929124277110613290149183811060921715616393337760301880709192972396406839291424000292777353967605625133832215851637217826332837173782329132463650475706729677038451756807189398089072224783317932099975586644909230392609333157777896620509814840897744920378433619747983117230840081145186595914490569487766346468734042196137292953254836051201381481391965732230280289977844888687819000488911716641591318087784653336633211403625918491271289614889109587778433008520479611710126811087705757666632521437991791439625084242319689667640290322647955885233655018095705285023291089759592141911274168717781887307916419199400047717804309564460623986395227990162280965758104001594109331497731313311884365770362353245440987973348627782595425621864651732968204780526261213009615526916170394270510256934913198922532704820972286126896007411088872738003229594261557143271982534635788222852751944457060327334682469531173759451668213889018931164870160020470237627248749477513798970218330883556494014231936796502645608032055809576205782802257871022419004574707867182920972615335115832395319692147912980956865184917708203266558537793270881161468925958602267055263118699555624815042346481206845443214954459290636162297835647225422757330108340474688854427095682992142675144009874094564029661537420296691211338509047141841653330300762354573493876713140583403661182396576205120319516978761692420100965673798466757176243707128592455901418376099632136685730636633920907522121113519873808966584097838263220786540707301851484116536371749181868554191907215690482792090261784292932909152739795668619014631944366124500461038459447520068103310736495284265200138160588284065046462348894076354376252482786856260014409329229597090244473812517332165989936583090990966277447320536181662387059372102928608375285904717846503452765323023841806290543632462609334009969152520945958060518376242454217238305250254217420181303949122699512684197695852133522990650755699228986599452523840557112950924059774415897113503491508796008653463301545220061024575150535980418436653095108861101415169902249693307915392504279363724141265200382426809159671771036815720551786991655857690027218206048089137285328125910066528373839762542812239286876599272046239777030926845742246546534210947642925541270258047164625456242390860475793638177941590354775979830572295709483096061290746945389094630968915056814972522531818181320678759610966137715566115213765228365820167207248513116044985525706503005844732434480324321249122418569954664492575574176031942700965685468329331217838624059148513926678343781416299579084851677564610996947770126891321157489274412305759030375797517356974356352476634772908859502663702217662778990051512236334013513733160960869148155389106989225016258983458738547186705999203230897288442057621613735305961593636709856311216600236393085312507247075969644468295321762636607248156404199813467158153334491670041128993496479242264777242652122179670345421145614726189596756309051285955124159530335192085885350514344436117312308260687799676385379472562884027683940659285873182991241966889968706206253678811329679368593856346693734410837245277695543079502837965086484478748035421804648883287040810664343231127429892442368047258062685274769310085034866733102051722100453348006511201277367421113906896325056108213119063304836430729086488183171191894775973748951124276788967908159889401764942702450098090705194907951871289321113781167026219613252127676040431156397309671365013705490219728173010698290211078941774621875759879094542943731780600201660462313677832567772783734238719142632621580620019739980605150697268847668455403356763670644357383316644289360417270896842840406183755601946929240233038019894431834912104823657514336128555548408635794876829623622221114867072319012223523345777267032614939180053046371609375121127856406721360128363654284401959199498353531967020783595034002737434488508024194889823289604712584319836442321662722906804521463641769958263175658228280906419161900465073727314087363476076504096747894185608592148315469846290749066707496644134655752654491489849678380306064180689485518044825183936354753445641634178293642678135684248025920772186781314425382095846779476466315315568427899467798191146535657926194823688789371356857855598762003661136490369425100505744917645848721501572474899631185903061111883484536735370625224202966775050861078255691657371846313680015652082241481843002648869445959675493728091514096498712189486835317092953280205729291086137138642289001236903785449018661340171929684579218788868930058989417289528691542944109760714114400038640148497461689510768142437236439373917186303919581680732607949409879005962460410170578833050103820436875814710297372162311054437282561589100920516893320354916776445181479829999640801458446061596933346767951364925034037941139662923109144956241829693960051079243204540170789786939343734003255903919800948465068389211577853150425607738291261195925808459867862381414178029963328186510090899999985687577792850459131486568275756164811301822852905786005702189621934404113423345556018828469838173194873557383577439965425130484964958211694088625770458433413070796345633822618474759687914916452608974077679396574883642288685191143474332792216820926897661240008621915135553145641168188853120146000081128597783521641886305367089116637743103430294771271066132524713228232528187320689183900319728053116297897428899547086578193961645568766927879791822862588769745866070693389176099766356667449905819737037448748032539075475770433084244181089664615773216743559504412894157553937702995101832139252015540400092347435888418739160153240640746246817172457245475433748029076582860032826793519462020295153902985771843587634535868522052604103632670539056505168886343785130866025064368738186401838046074032648183857280273377857329775874844645482879271466788065820056287902592847903635046154269249867899879978749687285294379799860449826827953390351983395567692688749705443897504678972304918100499441404864335343985354711853277622004628331141249407930497110749284692650368183354819321165609623256426013373875847668662253024419593189084966111816064315849033157910721599276440240331646799259130321299504127069088118278113662735759747046600710902091038739220623735384391768574042716054519330187064493830332000839564244019166781126056262966091623382957659752032958769089487082518070341160184121975171227535345226564856927850813360694697016218062041628953586317189641244280255262018981554547480904274924035107333092797741870544537860417407569368634837429608891818429833388301159477527284562013321609892827057230584792470939210871688015089766498251351961964463377860290090327785061784324648100370002509455762639577731053156716599135356150437989269117835971012513270738286859157620752961882730673924204637044338286241089949656938106854374657622864746405872705593107675268363242895966019579003665073552852157020400643960118938167610119260478322608794243891463589236776504585294856794640789162426275502437125170859420590218107771140091507816584605285446254055580490626068394599303592007641715072483159916533353383513312772496080579508319636118640020550141415147831300217030517979881798774200025269935108992878047029351986862531965618467570472372235725793355537331483519622442531214690730913944197696358753563619788103889756931586495110106753586724553877764551446196668246289010633843547709339349038969607160934936394160404291060862783637550985873243357812338328591023595228194100546298535380363331967524563770321865137670019092344584181422526396916721700395759507084452965448226485522815564743226726965557298983485741477572743673935575591292590342424815727657888128148439608509628495028649634853460368023050071457304336545726499095063327126994418792797228545035701969145528680790998561620704184449626464570601174644467210921453521581454016961878255304923393169002844268954015895306390678139538594814680633841717208911644044952477331610667163384873744229400860501295474386364837705150987961236953830847927588827227388010802931597778054159611498851328432580791559300321155326952153314406340454064383342016812151023656311111233738560089705754212214130697028313570686544365138792411661176774125436954876031145204295130635515605328616161640370365131499775911549745658568071532407282109178993805837862851404040658396646486789826114093728100430228481641064268168704887940310686335569553726173235497898771957532169824827137415961398340831229146823906023848620023104572890185432996471878109524237882961208549137859440851268863770238590483266716997162948302460109003117080130412094751205422325627911610441504902263371333287886876179044280872856252898634647261875408869497160281816453374289365026378141038827970002392572536628257114879022396505994310299535119123685338629092573487708095319116929393820316187816964252734873918190680439608189434961795048568651287847640809685699927323478661656244746494302510162685219289163971628547660023225956078322770101031864855278692253395111852160538217558300915369870741700182504417425313820247638449538302596446817476791448628639319128653149646087001745644281750421285295832809437844994994364904319367133678715792255793144365834659018934589799973433313227265343459709043442256841702081227383120138135012243543386600913948280228048169288419773078804784389894160353244836251340326146609680630372332605434108318302274230969645088250139489717779318635731525744318168995708065353844416316991832802138823312969788543932547907745810034800744227844467274246749415459347769325002394600250882271053285561092765422527026480409839017236051923918590886987089712587303393620820243395907110696732170638959354066463193463270281767524295850388887264316985107279340213125280705303824601480229104661040185098435808144568072748941541406166007579024899011266885940585202178513735780947375288699989204247293320497787349276132637110400967412217813195277653808104481354829533307078813134886920944059385432329268052556068946307925317803927157599674270448363481001538861133808173581877174654128884623288760571821393997536892894966594844545093924665230735954675288675197023312145550065594665103170570679201157009241353482520229042609055864280686447896707964970811186416277329000629080352449495457858850442578416125255655272665196345239040900780067604620816031657326357569486562436556721043891140185810339357046972303450819677807959689002273566042157760996463129600542437710654254187264881975436230288180302850784912403905440674961433263703742852499979249437468549640027941228744536533651485739419724702454700130201244955952076515974179019101979106049575219638252154560761098000945657171043674095192245252007112204796827739793174825086237930849964150949354915652776806630555963355123681081681866463246012250071998768754227345203834009410735272254858436902445374954491359558628025513254270885574984404788522225608915135819719152613773588131598388680126397507956184574764121183404356862274950233336931070047527781492002511595611819634988072326053077373268837914584311795033169295582426970742664665973785074456289751307745259157107523049489575978526750618678821576738164891369435704476607688282287137829597204044891570829305688940529019739463044420012803825147778699461661553597331250198205033309756324856896652642527765440781139935176864647401471884471740377116647317947438458860457709297794145537214152951680827507048922034523151735547762640990254353653308972998174810578998778489765012662077847220031679250308140379319022769949274457146675897749229902007643529034283482723171664788853172623899678983469491475280085666093454710921522068647222754699584404907224142713468828920237980025902405420688831262493567067855999545657365034320878916508687093775431561888231765153208618128841928813630497590700595673620571905625590702539327551657889183847537211457050787926823716618750308608168637061844680868411548072499984348124825696560155960765533819596077539000232685772154002250553689182874401870085589204810660558964032560661606833182617674212790519961932361125977014303389093456864526808300725286845803677375183874001583273681198393096815745696525613450163943813803173563474320617057293549493364918680699822781074801710066685148198913016542856694461413874849295387707968931777249457802994757566974230994528629241965308775225943253505610450855382905188404077264879797557819139401425207645103420709361433388887876880952169039924105236963306463860381621178912356480349260382984276796152726805293681363733655291937217041347114711480384095708931201520138590194913202117160664478107104739677509704243854043067376995035343591498236689360670905814480217135354864660439521213427041067368045303386059978577268018009725609851662485754134547191092207849724953506030536181729291093710445709298356112869739978411039389105869544436572559130458232258200841009943705867121375090370489887972529203722392417676646330904510881866617607605412825596164287643441752768917978835996945999954557654941920764940098284714795509508874628685787748390656815712792918120516261966549746087483054437698189068015543138257235345351903867418044852827001368197936740508693277166316941054216255907989300399107441019336719443683343181461095947928616803695150864221240947575289136167881800417473736317167126657881185422626882116653203535900985900709394140826353899781757412924729206435132070126929806063899196523685921310025193496910979519769797301853675251439495188588066276330626889014180945310129925064333098233582873405656401935409617121421573398452355580536182864105353693487027300596040002066688123897128947598733635506869705040802464681554474756699096885749764392348225797657392162098818831874991864032028700811798644138460847744400527726215121484315531159695972906334701802845678051507058263911274775116607396818730466478582113617392036090620775532177087573340863759845028797228745907790318850491907299535977832312273743061773130636073966272301788706794753829915394954273381787833737698438106888760689435260921113598640316992557463329561899988204730939256352788821260908772185887911034369605107165203096487973899351255762911884933402007829195082761816426236359797746591795080143164276018268177461992838456153441785515146276236658176884478018337882605099544646601190820473276110893813747884113598311016496827600040606363016539185797177600256666001578197096605019176354768974294003094869040957401140213982023547839235511487911274738199683596107817818777598898560619556620587165919472808479494070592909025377417324081517521688331078410197002069810034663838321835997957012318754526848898580186918808055562559237616063048929462418766425016610042440302232528860531435046077371927538305509658592277687056762035578862057040204039668825165066388826214274491981678650795207699152575963156496438152964751290489178371391673618888895471798324961267009316638505132256638587000415483409727406688204032309900535144216784591549346622904092301183400246445924245993629915350780304576491611112419966580501121962819032274453027266880700046832155645577018294426445881514027456342378925842324309352439706075258191249818769725842671789208602877709980176540081592932196687195147832155410761463770687416282774643906603091025914204617935295709850555646555221922675586907993422250672797467757601532890974683558685179598762839380321241599405223056154837839311215155806580594732280957692747755884638143885836225328614869850489853933501589378349375817595476016030937435570505818510917401973842999275431097513424453821997658896767778772922175445782643253714004347342632187903545593659728710778089206972354090914639993304335173150898486853070285513440986701320141997525148898880302046432630168954451920381748957493812732898968721274442442025510322023610446917664897952645925034177478457498625057844922282903292678162274733754864861234086686502094081512454262080157362479126844459249801533397159840947284752706342541462518697900637810619708471822466482122507275701542453535438200873946127353291163960791283274011497455377234135313981011790224129737845269491356959780115531653024960184524976059738361407384050962559499523307918356566257974679681853403938066314338562868734026973132391169701296442134105421061567977689208787340908545116794713621040363246020909586906368312651429144641137149014193027469697303702137607763071568806568737421587260345081354806289513177040132673199139190319746999417522323456595344243975485902688059164052961523905043727140034074327093710283807789384735657629242256531637180574433409664395429592321394611969051000619015519736946034016463590243969432441541680551546071005324065932350103797913953829735360496855768126727866658980655432581156339862236515757234320162513571797664597523875372691408841606174757544325562707590121746112872422067006579485450144057468412570113465750986124946438729630039315104726132335845865895076977856926675626516606828145567564395613614220525086189272508933744226387595012006335899886150364254925321856622171264141390162752510695557817107468965421647131452704849532822076318475316220387412876563644854933656810113488261861888751919299997247925694152560379748701906652583381957821827656205993427673605041290034130376020280865389565455270708407570745301126344767737512736319934778627119417990487370454874401172831312913120023744259226142615095868307402524932859106740653674127504867289719776296152811266131088963600403410696921689301696693291001137585917286491266072531192324743747179948332148309562839707398033270847317850401952822957671843700045438245717596827411929713877232922673080544102498771494914219662190248614601045855802952767441643915638088862375652460903438311214676319224446750564599700411841657616016341698095868290104095627338388677207098333410727109225888563117527400651448002444845146519942308134353570009873631060699982949894236611373516085767232889430374244556798020279352427262812933033958972157259577986686916834300408656790824389513928385190501143015775892861008749539384069017016622359775777853129668811871462833692851677386892810052825783032749287427354018556869694237595176466871236101696562129711919495605551694339684540535094215893886985250286226529352800115985547789938474992639722217462675014566507058642056989989523499443330750372068332571597107925575287995897391187631633772899677989135603265678017552932123913222764209662888064659519500710961343791390277020513296348179751134601753345244273757020948849768508980293333692751443753361928784610976659962147755512750661252893934939266540053271310756566642490330574777395022320881049443491134600152815013111978861572937366657025096046081345979124246179048665171753011794817349911797866278270479346454759278251973400813638109290404004642112341797847933527581429292046230180370160699048600524756993776855127707178512977437577595826727641106389936257203258813827393081200583193043903620011117782258839786403704659109886819702264725794746002104773380591141867828331163690430071904832130227332785142352980238794822436034383982096008382557009252277560846992715295892094394230363098603994186248629103559027347018658248840688206093431970946345730279066707764453702391129589570587145458058307009418246804044023961458299552385807797722522331388178604258023693551537348661102262990595475405247489824424667406848803986649345881106983013827518205533888762862964750517697185611138201159203487014074875500773466596732501702722709516261537593750425731273045337523763612053256935444369371087023845406543472249104023515759079026519355115885231455905518038565936500487349623448615464343769837522981501199429288052239991866158814965817698557547056400252130834185195503515222972945364159722189398973958207926692950406674740704472043646948577914585371417927285082231555842408186672592632800964606040824724882227812877469829872509530649584510913754543488063348873696836619689457505652283951700450582936950652486017134616296379932056480481220682178366429130273392931328054744557685534614689949006731500849532280340059381265929864551572475363418726977571089677942604193412279437368552095102165731728849001074996769722109223042290464029828097354632653652006085975594762969384477454201288925181243599304299500017381613178082543584537357325306549363310363363903325373901077211113329254389882219310751068198464758463693813038210913327991260822027983103291920788617582366262907157595325970448579238784713711992437864447342654489389925753367473153997537834630633973755737945044485719293110849191886190003265179071930060781118923548014973352542715534549073442554994670201271478138701961870320731162718411864115535020603829790368073713341276526751848295377473649836026988024265977989030315682108489376441183583882525265612486753128818792019233891410712806601103262469416815775542125378703437562649165574735540341252235746665501415312306352362707236980863602338291036025923485306230054280630214907852251466621890837348930448603870154028865884417278050755031047141106805158612541620049474280440620415653375719231615620487639904072631601086783146125607594845398519914708256901001597108980212142421959958124381305017644782834003862382221122733942590296636046520997211436912952022158041619499515762189315022676392941616543909022756096540482413429128170062590964137762043743101672149506808952101485773191242218647529618248911581292374176465662279701068884453536465146819276946006199029937350203902389859408838419626461509228562235855291451700489473960634477089143648399599516066450267707869277254031471770034206465944226628859023512787595205473922483833638247945491539386314596319428925623788834106004236973876539805004128162343106413517051048485648493806911866795028529695203817264945218718354576860378060278077495745342358518688363126416946728351086862662910974638911604030585758650621674151163818027065640543806725540875207601831221826164828751342034585107584503915357303437556323618988190941330200039178219925773083274251535682084872444807956928330210238432776889769604112221112837683170779579573074331868050782263616555881233622157208539402235562520670624157733937427160753354772452764373425115604527599630602114618972266244916716973009743399764421087495162675285457884072011688493560076849190801375952748216112931065560736158028997087975428177637033862027313938832380229370079796545536560014234054599243922936905538935207244097636362192408678643639820155416148122451462133904182411005494309968806456482302891764035727478976899987919282003889857817979649055015891137629646531163945237684745521780513902638801642319678347962138814068861241155797817735340371684551378377768056157582333778463521205069205945061292567101222610082650396105372970894459323138470597659499555110807616860206468118762702707929438552878035929261522867882870043471812421964188544411701692070557593264606967275335030793086309676873235097512804180186419887214555532690857742620137644338897281296609679852074269090736983310391021036686145554532893549384833716075713565641666499712141591713323929579657307220634593067487155055150666596160631776617748478945266765439902659235734679448324419237710723468858951533917080050525093215240326131049170591453192985280526536388542948053852218259518745643508071990145939444654375992214098006596904769255882565743908881143471298626370191422604918549825506021509129611456973703161070685492259094908600142298070294185685836853648022700217722376913188369478423753483569336434901262392727076181009584547981837379777863961856930691523229311447943215883676289141742441907960143454737212691222066949775736307255147037699636428267467022627707534872710181390999826816622083636514597531223182815522249668926668607181413106896902984531229199724566146344346950563344016887525446540217470716690417498183504835431438636964102928926219223122203783487360894104216811938462784011212186319253417857468575383171862502397579864328025081997200837340401006992654714135638535675274696263019309613982878445332940223656840310668240876199147070143854614987436841531594857775265302361900272665924331724500764293318811704012355167702324778252347856464389426995205138884782819351886548368400396807203794381371211065124088591921438191838293719263383473851827998623493888310834938748882690500347310366872210520085845645871631701269707799931325281969273296186972172749035091528727978817296140032446691045482610080574947777855946784655410217948206530641029809082704733386139941077376512443500644587456952794530526299696567489710535885751898855792831312508923788517164755390614794377084573280082567141767711355565326993197551283145298528189368745741593548218211978453320233488956300966639431670040480652397572482129611766320815621198124537688111803245832197746120887485738577321937755661602863856013760315927872181481626671176879947776861205627735692505461917530035214834207613713680503760300670981524806262163850286232593136720746315216743681672687524095289760868953698619698780120168819253621019941574895630091224923657022472123403965091290860748975084525000922543132243255522165058141960593927050299426117610036225128982147341404753212434644184184568810761724497410163813392596247180391865555892264325955941437317796636779858671510657815424074128648189619698203945424690291852943749716071715062841699905795772472777800302884480343804345769863304769486102151908121307543910271187810766606702641469576780543184704338390988757600813416829263153575134679891434117156765738822474350315883211625296214936579524653434587061938762562335190855382976498543544880650613850027270178392032868465590329655818123372508310791796074530002481086445926344665403717313068853341525832567969394849601825567099467018421492393841169886275830670567917908307063647648650727991544083612630444530855859025753512621084742202428089723875688560843800426741686095497621354555247323994342563724798855312106020422456984719942478861067388817316530905017979310492756089573323532669129925979662525701677571179239434575652174577053294331132118382208195196167975909718136502675015005565295908469937645098636772097692794699521779191403682089567756318851768004421605183914311280835706947343538277394369429923848814972450719540695327658760438727922834073714582459834873963717733288117070186516114675278257030497330967487077702863432576289194358761464989878051698831281599591007156490179492340290381725286442886026393095939001063601419787608298196735135746723588688428050714443359471768630536117148017807504128686263226838495671909351280192871104943266461113865820722115772987525864184804078607137423384818466200115888319841878964483643316965436061522524858743907412974020204935697608923494188848450267409554077310377163491440216830591544278338126603561265392118278990590612425941784626394247270459371588716484343284827462135646031970739158855921052508997943337788436335865951412632097589423548396067625572764798888732107108180628901589861469140237248454305716177841838853646570297684945287387143916591272466418951179540561279496174583025685082212194663253632300813395796256132856718533903171440363500881320627811876657770117232359454715977828243943910853109174565797370196833736600688803293506245737722905373593031667873888691744429311730699741874452339293273088182032145488818568171196670151536084869222676317084647412110703042970704661090073174309435586435859005703761401701626891328728908173851525640649969550350942264038249651419949965827543810345148056012743166011211634407944412715576503052747227717975206805488791203555598996877164206723629014544466819101941936992649724908530207397645660202795895494371508503776185539389361402079384258069029547492032726065339796179891496369998710811131853020981720092989238994907588340318131658771606661320444398399317881510313913157584627791600471940922762571356584035418459692539438230768805579832726171434832942283021825065644354536263718967399556571885531227413628966480792345185124668002788304850546606628717075701365312859230557477545526036295940660987634774618276905576350670888113986641759541398274252160029047382248668858031061738474290380106292058013783302576593763128672890789236187299145515891642503975006195995548528127035714268971447256046316149781231686578131353828670770217149679647208571573737958073329289293272468043949416293270793714975903954638147343210388720285042785878014927875192049696124249864029624059820067599598169009888080722570895196263321449600246834203388591148303521136663873393651989228603526673451330150406407438425082523789633309016130578600941959344481077774350837329338229704596152013322792952211295008373134674021662897499349495594421965745380638939496718449304584386277812349219098013882810205758450199194729652885935833493407272259292187878407589458144959187161986454863986642127198686423653849998123612813660947341672571784880848455790978922879362237278406163656673714049699488142290147082793732123161109633351348325686564611112390273726932827529863005474761148212151654125486079710505764179564615073522252585120983430033014058075766133786045074950203259677275812840055292808284999045815861036118857851222888744561971053744655387087047576200102924889290660529248754262332341793647981171349976548873899766235924814684700788293053387931373265933074149970367174676735954691275039075764892162086665491391884906789364811762094057439459410154272351611356801492152991171026982108535078287133505292527261290646823156635524014854862273536830289836304991419558894544679457255587293202432335359976401315393130401401915615724952490437788936025421604805992153218851262978871246469053078304087183804738604724716234936924937972855019548709465108614145506232803231692704223253663598180892209336764741819059467516375725916569604902177090384158802430071406789728706180191553852307013085804473497738727422047127586089881683532879342793024055259336638710454137696097484293003473343833769715658624911544559609231952569660321972597646527463921486544206804774477715072409660987003481554232881323472665411491068653430590127886240528211982767042238998874218736962131495491390776831873375769146307960072408164112205818112448964997026946841089201663158937859146372070459064296453180900756186238602935417510739082440425207219112179908472903684705906739829205226974593617588218740120526793642650947846762355716392917353416200817323585377686459502475264381364215049897001366210019361570416564653369577979443564835898415958773941487506098353573866386958941582159228879061954800208943898225637007202196838363512628451485258642748766133788779768717106615504431377929861094477246743328736657074126790518712380570675243854476455692223955417247994481907302612312397004629387335831881013978223040784729233334604184388145509275383224825426251635733546902794310804538436025832182841992780665082056427912995626182856700466916578433586109950897940240129743012346341931243518220708460181211408793667526959256837820707399622416429806270444760166397860731999996566015077487855485780002837750905261926519513329680777265663486083442449910185968894474123600407293028633309941018189552506358335601526493614563567527833489188918174889274623459476553704561558690776539715169715886678889507870517232054402387228001099023897819815571473057455695699083783887662497033409702876260734186728376907104921867462906683659999808725083025971232121857000473820340652222004186280026091681168053366803121082367491957799005079040648341077273515054879336348670871409378191686871385404816056981389442049199748988223716695869641696971371890042247642899466593229810739360432873529893902699802819741319113194640367733931036062194799894793453150060433993048242045066172691653782609795396153961520289621672530672861243149307522070024674131145443554161813612280643489118460353668898898113764929679829328699348247311696489022961274920627615220337536842976590997931600453935418469045868940671930762068929517738682156572961652903067561179939619018395841631759988929836680441507957141581425328403243281203844421388740656685418496517496092171975089958628549230495919037942526552498369228419599023191808631753321552154850222818649393327120550468010306487710166603064408717482885508705225238389343477398963017204478958075747930411235300679031416883080376756790282568008413099167539720183205895014016252719432534468110812676156286716842392985185442504253958314730324783583312862203577105395421994829276624304235554712613339032159852468271360106805915022255154114970529174546609252670675182326094894438282633796170440132783459764070369160478441947871321599836795664083777180155727554791112168414744765940814677475377339553934800447531626340417751122525514047432293701941457578730698103746543760418715556489723210495993251130178614478633361390685212083259068247127446123966190363311185638430113749397947937566664431910793345004616467341675399049110910296520831419075616867686154865170751935916719682474061149393746926858359178974031314703993405641251080022330584472386398529516029924417238638846613717829640906520487840662627659554290287702183070634469129312562823648459532655334616922578400991705636132641931961788921333402741340625592215237685342911577130929776996693198968267596238682071663185403243600406288791000127974172596788203694891968822666174493484674940044404292340245359638143002907873508552578583009219348569656154491860922195861546983592491077280876438552394474595069419861452788468837458591945881894538378412358588502728435527230616417843661893023350291543349617867141889234179494426087206554770915473818636006463766949515403369520253960767942435722174335939755735658060742251339461795374309843615578579671754256651532041124832562731301008791395584616477059086181959086141429220322882208713715315828640854141997688586025579033774434742352295499634763134048009095880513602353636079743842497011821752208565002866172837134414296002794125856229329780961333321795267281556871654064154775075848300926074263821802437297303117888585661422957002577900875868090923940568059377948459754694642027710601733147866586445965610062937905999437347157810113870218563315838538685152315518186935364061379254771607666276829234591427112109877802949829232157872466193732081425143267188561311130075222647387959636547498979941615545192198799685608760852103984788732088608747175664135913821292077974902584431633465145807763109762357134623837837220569059968221452093507418385840127547211544598238071864381675654636292328044862055696403657062330355591354269943450567051603712507227685201284443000840820697101986938549993038881246059128728654966394534285676291469151605550714221155286470506643409345776561054219327420991470112226711954815061921499659188000327320128252151650922516122249741153427806919702548711757205641938322838334649607594777042315777874194253251649869658614194964504158211987289427622774529318161611157591024270032448833790819321191853985407557917712104422602998799054563008331730220430651261865104170062775071490064284516684639039026947981906073480607488910326784663876974433162069349420762522204873283852965399330616101316218762219662919432166107961568956022823905351415457729537610445163019867208525906713851235463633590908186015082571526235549717730322096510580144724813734534899118706556293109086226634263665014756394841554331444691596452834052511219013442023798552668943611738481353155906533857928760654679369252565842511596481388440598580500279643368151736525483707950490558414450424958249646062933343621446339623812249252824314519802654725724762525959734529592822459450801889731487647445104922353737149764407478239709027531826683424090665303217024807197730011979270774164062342263765449513985478851507207897955239434716713804944551627734804817732737432472537146590065773065853436622405802771178516498527027208755996614057416802780577465654400525384831517739789695901292157697713329627873391555070140830326729704810644256142213518003650179137638339387521670132179747426715041596395860809749749625743711743671142594610282352444147030321980108155302187215623985829677815707318292333351582488390309969606249101075609364689852451173381619364238722013305646312584149624726091487967557129740087144573388706805993242802615095858939299621950762167215227076282747774245881514162881752218859804442997278165005431018413549250868364386408363640627287217230208650327576668371164747293812668594274413884777390077086248704888472213922489294507144639137882334570592040356054638657300816372042448453649638727073861244839051146765216041380547469044383120048593582321759039888026103597791319602851619001680410153124452737340585005982693371590329556909910553628570185156172504266383333781115107767110225918369676646578723345924230020285510756242424791992139159157520278972019546257865454887563828215760577722512772334681983448325394290038366726965939380617536373006821162981239660223383675408258132199959318334801175879249414596578618095888733375595888644380037375724699398225307430220560498607581106219866757766835477850950937515254554660437261307088487128160895231451590424966376428054031757864853487248986142471566687488534565995393695631182471986861866180010872135012836572807732465419576973723621714568282127965760337623819618307513332244282772514778394987597131626313337588686865033961596419407573548318816536116018420371927666297275032907779193713615325318546864650522590595948960028111339639664428384821255798922554764144111306047894857740020915331810759084446139772582268999678497675824036270083321145844117556688853890330846474761949956516045541453308264772159607855383687151654017094183191243010836797042759418917909952974314113163009365009705170445102639065881506417904845268633545498303648302218097687452889863470653490107432016651664480985885408753121618058607805448968076771240566496425946604030611515032446342133776496426603132135898630507215022294160150277754914817441255840075751038964983996814384712563343766980697559161494699471546263241279190974311068039124300272207515802299244935603734977996160201789912069719832442025507078780706746008698042388037729519268481547892494222268689570564470524272550295611746483805131005236839472562422073901131905256834211049783404678008246175664484380217689729199119115989743087271830091055058664197966266241918969790129000052660258170574700641291614247795017704067529302576017889281229107709897327216040866728315381126886862437779871003017091306513196552083813680108270383819820831924655280554456558792483822779188057221358619799187885347293547973528779653002153973537643642199765315171499727101066904877390116898112851915736571097139462196469008347693189686072931221169576514627324652058295454086894040646931805244719989295362062502456547239339391677581039163208705928029751998900862204716964668002718539647804911483893783627659164737374065018119536254292376536878805486145301996309409236489430860168096411373840263017304200318448964000160013554623769715103394104384603586777803515003458922339117023291476233208740118082774906595926854153847270444196475304179049848397359001842917988445667382448992998950408184034565060294888050135202102267261192865128242451055823590930613488785142462758796989529655178591068012273574873116993162223278634451011116158952704670653695252626023717463658675089926177133508048060376663619942840494829564111907375821391950478096959082242129235370253017083773282794056600420783388644960144626723420826273607338535873927217065748825161006187987543993650169697088871161360053550045939155649261535782985400721156990354295115091580229427498517165534958642483518655148016832611559900625935629974636538706325671357781508399663126657689247939709189455803966274446175675026628562004014721009778581407763365791216014380439595555791580809332245820034591799350817972811918331828624161228089001597958483071793310431481719133419711717828787808012788483606632814791860215046814941466107985618194123930845334701514349539767339801196377251367309055907535733212182858898444516962263218012326816943402549577082063405504099608362054906873213648730461756614353347210074798738615861127315867350209861979020467930659315734169037458503092142930432806791178583387749543871611687043325017316079337100965251113945058388220192595953754777442454460846221769081642082307332166690498644627035334456441812043341515309872256995302166569998474757137725127066596656464640965689858305512191108355191059751998926532375762132715798071964053655387339353135430877919440904894773896500162018479891303124327477001663281891214022622814230580124778797878215343170583331398495965895557173775121017351003595857917869100390500368988260299284150258258038712001210515208725270914912273368260802418167550063864454501665538145725092631844623361073034981087434582283698805530962964414899710737074108207831483630469452754362944349468635594744856488086258857513344120486515550607350023289322118164390059294184105485419239213519385997323163824163182783602647170254376258461353398885717930630449575695362700508659951237101006975576200736285237041286770912965486656627168626127800294606882398419693224546452458951781809199561689446753123762453522148576941853166997617026911289778454313972646070351254128065480697838533228827571581508760253061247375692170263734065723315926303156072500348665178345175243236389641621438709700229427694495941264369068294665302044620330118336507190549583219867917271762756070834478505170251712221780261386633069813417135788952493467019368342431206832278197168318084405148457731643444341606785320867252304973198056868399909402316909733307743669237087251019874869735802505574314914973437466819581824858178161208188344035384740368891821300835686178204041087689402837121194988046854704954079327544218203302789012666831652256055834128927380717823264586516585995184117111302455475090836490158826958955812195136764608997141343924943315722934710632882376689047826890774535479062447768811913597325152593331945604549924558219609157361143122834267511926140715053937129554831622650079685018822239085460731925544163644376284344235781196842689117625674912950232736457998757095327078139201548607315291209616140457901815263529297254162558454005269709277048116662256025848691404885648618495173691923279058791866803130126780320078388867982494225861915811013832557147040023097010349665054107123722687204854185080807561513657197308199930611555895521592985229182094987450160464016681054306662618261359001387492576245116107020985191015913031683624686696362153343089252355468910491510383685524099941166169640730596535192794541481369768955392561067866217163965483938273717199101618631392019781515622220410889707926728768901170923522781734061657451390631438475656911999769990740233854590023382280982189370799223895837854954708845551037210361032817938935136513705369944808558167961791888414005868083580435886139342729378376607593373715889789058976114494736843207471696841274730879109393162520092425844017728876523004844538704432953626255232931064319592103832916504119146403789542528041841387318202435550099212965712215812650042829795554977837303504026673439540425710512618544846663714318511371343123077161827764689128820301994427968888682366661346975697378520828158936547940405734675997854065276976304629280975321356959261757638966101117143674184794553521248464464422748710044694860724238557914127951686454908054095615602160604286597771496782901201708223980892557804827554230255109624224713320758307407162244300466598741699511219484023073511232424345230077226394897002268738319446283084451354255417519969209718208319376180646568504250098380294402372692369603985902132716708271829478707047539714524562165361349533903160850624036566843400149569116388682247301274495353644697724151854986746682269041305308397746642109857099658699345542207800319730812431506384073760581246423738878255857499969833438661741530325803939101052415767078372152236791492051931235233125500977537614122462191378026987688002756190320591870048805092352677060554257917882950383055813597557870989428815846392939577066139190802113741320512974605844876039818863980610878842588938997039203587335506570222008943114938937490312736150128849443263244693165941405619681766240115472010441186953532070956608001505945997980283737186797707113048478905250256836890772178782280212360680992219888543483691143548988360343157023341728478726489168634829245533841977550886617423140779643091267098963128460370169274751671529040359686108319189726112568728905801525122133229908178862628080708497530787576634747480989600996511244719990397999880572934803606789389900394027673891787918512434642204126354422652315847023985489360927031606765347243413655935478165529961780835837305477764321044532921118385790831391301221713270971392976730307453795726240964029912117744069620428065066877962105002890650637410929876615049036433412830236960214071688918635234685745730018865131087033145655597663474993961787774630414891049703782803164596147162979070290770098415886317738866943583380475013528681109544708331116752952827410327322313403311759364059072565356118417236203164206741748564368144422697688620784998007168662013112222068689092723809514043563174528923675138263236085419905249781714746814663360938660103992674868302802403351641763587922292353762294842896908637485871431114049577931263802137587694750338091820149584007974955761730417619656525190110647831093442905611876984706479922317256518247650747349355925104424203163323255717801414978912756195657280215790422651156115701309489064301268897154922625677565054658893228935724435740735378085623040691131767264643938453565077463132263421737171572818850252195732360575651021949318212416420328356184795438877606672156964587011587611634864255820423180691252845251472171021866736913538759222397128125589751054990706289390801551233125187880047580357265272072336117078077780463561887445535048225430743660863585215879146561054082200071353476047694007563303284463780515693452048794915361976657957278721234980316243102546579602877337701413908736939578043201269351847768344539716534714585697747084882661838486267774946846753439392655137672638751402775332251722530926771683862651743115794399095845630908543246231571108374225600098566787899861428635311264264149779713436162978475832179663901792721550299926586970481040319006430553934493379042698243467402758726657469853174101991691200138732209364976709898472526515849650358576447137753599240101791711156923407485958935364517417365536820144861609801553900184127632207133168439501078454721611133561422635362537965180981689712676361033560384487278059869760964639762755270626473892023880032400880558788878824767029057787104796207839203460387081196876750982407278264782020352820715999305929707447716945086009173466491254876240422563791149898741196624366395082622417414973256318468124735520738246933230880290976569481283342245555569723951651210881201601400240687472090139308279595181342674932783167217977827226759569025819476627535954440717138701525326407803514748812368064082981024838908524864443671773598648393144685650737403959122193110953863375870382980759527394966021228440211894167908715501027879828595766279398239149936135154526897331682449393858600627326553195560079915163883055726494006523145306040401003523087130214270999862484924843169691494327642749746274277765427696751354028711478542334644682564019191695031750437379636314303903449639651741782391634714269130297849822974099625352689258642725979146782589758898779008604488226780803077258684456079641260075352343655397440430989295795440218049165896576359150574069713213502033444882931815409502028496150026706737622062466145993303739543376050591885287468555614670300029622867282273578358763284181348364946035360708493924248389848095800388663782627249078969985316666987599769796083428494948383319210928387767964166781994437623520270236684518903792164595034204827321561426161418276325167411048846086553889681484903992601810958714023170298383966088379405464937318596213323046325487384853404983617532813923069086314091562832796501626726253842156165379803371131112554230453436469664736858102094999057445910507202823504924977776201464040282978488949240047039718093722159267569505266723576021731015022347249180523059581949583364912621834112005089878665423395929841068592117950803752145480362083849334931605833679471222172478482237207332354737787672772031602826843894472577156342013429276901146930097826464630126663498196062973190284175282057958598494353271617192668982431399553086693510581449840795032133071503320981986011083581497519302141136388802730533814753645823022168296028020581838201126652841404650280829027028736180568748999949648335173230114436763071796243921359006145531932304514386818746792966662350160408045564241813164221253841581457864292897158843723700323094724415056367179909165185750533571470459538449360496462632731056294831749808235610238580300681236211634757536106229204918268104771157031754422006318131041308196293038230733813006460997599906686399024646645586000146248182003414119994102274186872389719327152898122186677327602511903897718513913866066818832534849551606014698175745534596580929182125118877077451243932181044999660584860351610134988090462304829909922260951340651232942471678892116250866936414672317332270922246756457434684927703164565067651720068824894294453811760045836409614663924262631287902616070613075521549245073601087983110116630073695228508082740586239254919379091111467342279843476450430747321567338017792627871488764338223620309920068632494084570956475536319129152710580823649644136711534609303741226501049451548042264187374845008293634276830233185323332733006453083944930596291016293952897366020863813050209495710420817757724131734833719066544911906500545728293320372126804671151281463104450838082914186896883084684077088608396764988407457433833093544927045228901287871526965189447927320840537383195341130944791971299647542078275539480818300475020879146695570919456781248590864881210947479362225148149046513895835310802584082335560107600770292623494510506314883219164372167751980658311744758790823870501117683841377623426845437919704495716812221461032984221025854646220656798780009904632603407788778654350114617433889063567632488381022045306799527573248855763066406612304748804670496559424325559605464759677076202304518351755880412026239862300969352891930594631451425958717342140146308475617864163221391804056070990344540332926195830456967261260094822820512080943380625184750486330728218977734996353219915125317721844294917989746129633980793365310283559269974026681894639392456395826949406788480730666470050062497991435935571657520841281869330470643377933190081778242757165981646825610686759947485774118729962800780815954157663465703819962610826980960402918088032105622184838149961083942809330891521724104971450194182574950520247189657607691731613843590750581728125175667829479181373484874155319800524200931948224862890111423492865692299607293282179331324406048474443485681243181604420779090057144206386147862821955382500147646710557593518458662912835399121976163088010260321245207348905658572555676000670134003554176519869685683726591830868563022371366776380156137025669218506472563880545064683013858697971194147008824995962368331040950858503916053186147601518031539623089919890823745412110693612527998209806489474463850011510185714085203205238698350139471569218139042457474406810418816790122199162688057604786051988079065292208312343650904909800050574597799777553569890599504633116862754190526183807542012753022305990874978055180463353060009097364969283112343509617821327317515425258522254637606939605670212827243691819593824953988149663086050903979388081920212789197287842890806216400628377553147860078825998147129099216909390534365704766365120697786726026327655636564074147751391255854955951684394435480538302049500145176940914235069987245888924910760098607450057605054763338461710266677743963497540484782685493467935938650898849113528282263511572487417508767093831332722927071843912660375250405835601001999888244727379182554722966690523949151699325894029591028635938661803109966603300490791991497091169948177822058998646804414204764276858001569395355677343556465713292351689306684967079250909094083933332463894932533575073720650757161841376028426696792142281964003963349573590106918056209857347710948630689895905187783145179811454629090636938239943243597875242240619516971803553214847936205737462668166755027949860439639485136996836831138344349004304696796396031859773368641903370495714328843124483688598614093450086565375093835264207341133726914587782907144215608192141917399113994966330013799188319873346137003692725017808630470765429556154699751037255738330788608754766146577132596777514601241517874752939916172610441817540310735138931315971323684316789025177707506942122540698660124952745527263926160003337064651902997000600739092167143510500653368331495850447673232710416712760007619653474727131151515262627594577312576964411666450014499587606959286565084230788182423805086473341914262558352875268754198165528834122821982165253712660128824372959980372526176135640746911961464298087996600863125264585605393278548808941256545590003156304294987261350348680253966107571814620456148578039694305974352154482423534462628908747886925384873811700029389411378234140863993243905739913346149552467876446852112008280475044128750658406374127393086410970271789574911738567835646215134650297393912148158471951359199729566922498623072682035432390738545858624157518660920665138945373816683436376747636849271425492252677634516208853985134838869830153243554169905773228387164301127734358790007746286513829397485024379927449550333773850966908234213353971199368756350302103317836171297597116677829321108208597062102603173798807222016007368637476840032910079684577567020850242140103268562131723647820553343687266470365471393324352008050516101222419163805109999333056320055006110338957340935358918425220958815732450126255931706384792324662609808985056149137073603931383203442991273805686116013482366697251772496578710773919905850104702670605712983015047897355171935651939437736333248072096387435444044575860027901667696402293266944717992468847283838838707554084588678163064973043623472548966649052691069077836386647981741914875622005101559240750546207375835176940208499252535013619287500721382756528445431306450847736113184653635643160547297554704025193188980104978041839993080814741713440751188978402158758329668144168601487981727167756640963986152290410701544154499428929766811882172752029248877214605974568379917740038958428616986379329253668049818062686352399989239243396228435149584847764760416458188693619661814255140499238665133527213147892965933437797781597313519862310802454968755228961972599979481402403727352990291161216931995579242827921690052370777086227739626618037125218759435360899740608339202795957989170205194348316561924197082026509547604618752675209964971564155627706342167139742326291206197615995802020795177067830129875083325179054993473297888401084704491720751036246926185773567486713448087872080894603336145349507189852414089960193030559623493122174225252696679606104116622013721980092119287708348797136395789514437706609986538535811748313444550031214525521435266493668562593698867649811709166982423862456760184376559475425047458025339177533920880667972473299183825922698966636060869406089598964147080784027490923030153157567249992516853932478623622086606718746205284599383852201927076849445753181962356511971222640593427750867262609533520915668732941187433068936765215148981037444252107300194734724263361135879968471248576226044923487660774421563681721493093645558909046606068505982518777000568840217769506321623334626670187977538066747657563942104391924199411175945186145961464686177618933631252662006223566467994306718396102489404321712701044553747570800208611065515205301493364597833753995580727768217476244300723701700292332591690485119803305013415135573047246017033197527671182697390590471158217825024451192854869634503745396627328098730523603578167401029639993100935422014724843614921105793936732665065855451613602585263056131755011952514341770713764173474014632406276206644283139636395377398262065689244435760722790298932669396773507462045299309600801089885778979703815871237134833257999465263343691798762325590878421255433967205076339851210078796050793055361893467244890584895605340046282010396951088896171666194902675021647216756144597777797634490875685797357769007613584948645833910580081449991609502713254862837422411378164027637163003754461175780297876887523825134969635505211217519390245994662793623445949681651232807139449871621378952110506368287809310909488188769137426821860063335016781606553483691152503813748140328446708966527679818076277815584877595284209935326518986675458177947234758982620126030464054973983980807891145602052624583678964088062842905720316973625438607606345702456616064955420769649708523381870531470322240649951140914085606933869003231268013252561747634316037487555078202474509256519270186322920916091412722880542884789832203999844668427185348485502902673363035366477051033540249751908414954945761681346863608322010581701536663290945421225416232989981043248114466481384076982938453300800966991686589230982167595970520136837767697808466596765130242673358185841842827566542769716552424952849529975635643337556310262750355478717814710014127245053208937119040948363120916824184112062911355863613378413268248340172833971942342050581487972063432183838594674669297026374035297222274614028578514137499613268512014569777267662469696336110510335618773052861312255452433617462516452334414475604327554683974475774960559117754366491599293358935540263823994918441072065845109065050977386861835168182726373457227706646943814776277529749523735824180547307908898130833993344597019497680829121910257808039830234816457210745048153745116811788488725649327410921132451184274367063615410617788930256536458770301117693683994761106116230671619841365527314376464033743157949443952726378063587320516365664176224065090671152065078855363779574546373588906536749932379207882796734121150506019605495588525519396640318666172376882656724293325309946015171181413943146831772939867907383373202072909473040242156415359679559855000282335464667508481788146107002278800964516208401587358881303626056299202672623941304508784617173800706022306267189731133621228098367255076447955848563680160336404361620398728124639025162624722016368977906342664167324683508594443886230347650570911851931259584396991370886437641538003881012510152550568076063073451137390588307865204316490277803191719620201094671477033286521028065007637832649983676591540936471602273489663194493117937844115357528896743860811935399100611572597963877149806329130475215488404999658244766610316252438452472768407134555103422622722767296416133988820285806054893101346515011789073986437195380988831282870663464060493833888575559601957728603860664822166821481231643032407843556750245642622277187698141398604216737532963614011419246893786549327532406708428836561958959333776001009945173562932053145759060087635295389990224465156265910398699077535189549812444984722284331822143439968053760819977394778780234135805924804782809555199198254019069485451980542535905214378109078513951239051601346546950678268830312587033307159553659046962114601698348655042143966912454451113695860874214534110153139874818128722805786675385316610880202561902278968892969314775337675898304515595621645622011668434440313241287298359200745634852611670990366348378898549421472640010206723478576549906671721868411338694493317176289791743197635306205781970662096231840517785409961820755742638385507310459922484055864621758764710003541612187792372121121054984225202281881172871537633906973970482794743073113579157980113579408647528657518080632968852924233513124920642282393964382210087744072877808221487093739284626329241202340118796634327654680546910944485389330172553417307212513906019207698422753266849087593457726850440390508425576700588739543196206055398997117206119936225341442520516742515576508966262825529033562346871919084359721101526267474045200819173476582538967234485057892677881903574007577655003986277836518917582857987567498809221588784650051032185134391796742218635106961558409334877206070020066386889867376796990266057544405396646412424896537144260198792573290889713920733981897674806403862231998715682484857177320744620354581428587280224655159496649166078839854642535135013206805745927458681562197941271413283214856423491531257288180290962137722282965387911591625959105851994422665257815901283398716192073437054410296717404132025019188193493421301601201236393938766417126819348253363236034610386905719415858408005668019254320321708149887207956410284400086547304896333250393285838861584885825807152524163592366978813315231641930899495305963249225750510110780977805323964630805664129187624742866387857331272099307260902144007122702820001736408660091864734535069469240957215719532733864001996488951910554909140067670482394661701986832935917108124490930675786796995841135701569587526916137005992780991489156680999334744140152556129374703753178627553079196012270921616901035378086886528942053697872281319614326780310379525003547245232617226989483777601695198024444716621841309840276903618646174539963024675655765756767147766255821629436317131664962856213996663583128422856688511369416801297631371398857241134774208344738778107206051206842348291660883214358390518869641869307972679075865524203714258766788780642186911122563000623357419099908155349610231687738728118446615373747240720042822074687315480616855172056913866390175086163858908804909397842063993438120340331896150114625346543197147877469484996144035720314916253647995860679431562340244850576205690958589329688189398943917790852341233136912276178046575593019776219243868914379373159414092804826522576754531173181408828455575276055008947701012006495784333481109932052080584823154359551473111141819152444505913380533313609933001029919366335538619589170846529946170184742718109374128259430034880897528423888560523158525813223172134842150696742566024472622882890778177546379826997987634847164843361709523715207686087851675686403889931629029258320747967734269526363808533818659650826744356915872650981847789863412428394791539763569960257005449914469163276588373682020856488194426621700578817595901180105279507007097425133209318493418449494289360245634394033244195565638584663981075337001018026210194030105816347004556267736425236982150212799149181929674334876445416946462653502541173713059681911051978569070582404592135693052531133268584492595515730776687533964690898065187867361236516572702023380037784144424300180299227236168603675780179219177772442422405236173593558656441105286810122233179282075307856926606055274526342504812445336323322720557391633070133104703018265279093072611957372623152079965296394895666212439434998514006349066439217818906232632033508120215324628410884901574442948634482314405420741227979731582004314123252752961133273885536874409675350751192169997056405032052772999983318085488753477776983902386606504371428085994073060745429231543312572867265032959982610624466069047723041817174346052408145137444203495578440759959981017279643836059061665282639512268115708067917768835545726016226047701995394367300189780835408565789910192718035338248947517088397926387786464635822955282686830932714842166429354078733252416281108552456491717914603249095020562222645140358839725356884025678549411341433340658134939377931896367594659703913119091517514458720664433976954945478293918377856973751754118691123013312751744098878699524116451190322933123389917264266231705188542101297218882011951392898028478233820967535899910142303470957194727588780660012035285211986610662003234946744827445107018023851765843260743991890332968505962934207379652366360311551423800407876768627924049070873406724163841471405025818211716352757613901467536688942777321902651086615110938598669711557727771470829892531085642414518428306080874742514345272027402971119241314851920721523392813522965745260766200916678525530429168402849760030907659017524868984198016768619114532448408415628324548811937083352018071204696906578206001418966945674522624093793150989669809086371107126206766700616449092655664908813537932470183712257127252590149507352590581019317915555713748602637090208294973002596017116401865911591163474746761029653251064282125204914896307582055958181119041727641129361487712353393839536786362086542957039925675932475401293024567125054559808932782231526247464485376169838562885487688391065415387145275063126729910298027284283699447562108329819282482491277601176403431534807387109125070660356397588932758406734123811547321429134330052565497876160325011645148929376874407997944501546303488534048957720000914824006189848210411862392848129581084144223399951934642197061561231725134202143813534801347183397007598107184553630005893090338629960928214624322406504618296249903497613238330908078928851507521414469581861936308481754551077036550531231730902386367498318865844641175329101343694165269251280399498925527078415704088401650678780535008583862202246040209476070201544978299621615172205305267160853883526957582375280592407392748405777240901810354161561415650587496208631274730860121240120793112611162944023259296525535697536240152429433815334591589803877353937093327622046325390850081483294691638196318777406875193674175772310145211490746026705384602564934895775524794316706287287682053688457080377068255362954287874047336849021416346682209137935550805308480981715485831370808482412021822550775853524599476216591583412710050924533170163040063654058515747126707538209646764158716931520036104721951738822630343416385057290837393155129589647411486910812474262239670921980873752683415190888801762726365449195267540479689556618198543801649755446334177369560549320564553560925578922308403440446499846457456491679192172294635621505234913174109730273611065794741848867970404302327880409264808403821832846283906073734640721179566818927189660187519504783791596988416270446262606330518774588357158010207629178572678200336821007344343183586561896415147385942308108442578231807457489820474795871027519525773533960350649923654559705486955986975353955868454394013363241620367421078682478080844180031609502829263415211634051507428463611369037616487711931490536990812232284547051656894255262044812419715552178473742013877026994659626873862702301988425493671298405497989757273661028370767707227538687892059258432728804748873298322173464550572623007226542388957527106161301397248236533564881802789809972917821532171766658393289591431261817875531376456606649131898312012819671393953103368215315509002711710634528651443303012282872967603453646858025452142388674669984799252293391337648201828998780586146556242829290044263360630099442876659305001047280626669854850898492970825789220221536778480547717340509624300852417918305394395839787581021995861317192154418529974336746427259698349270704481549018111275860116645920703194355548940595450012934820209567775703144947488098524058830911724903155679479940080927498604811848130231577833273939557201259039107979465994518471372661145037997177510022685503517243238823050419026720520146165412423118559254887384412085974242209792407892643493761582096517861924833753126174815334185917410542787790309554306001960972595674671370165276695933581598081701486124669979292958435268628026200589493823825285645493198959768017503176924429573527006020452363254407685284070831880470255784039502503892914541733505013121401750016758744369065997936311461161433473533998608662257913292619671534805043778137080753069833881270094314379429698674970907929785896278089131380357068133550237447169475376578862795705716940101635044118365403085734561005555535610681607831359245455208066230998119181711088857604258181711177835253426061489636834124946049919227480657538085723444275994849814382660052177298668944819632623230737454749234498562796640288969718031939113163835547628487406976103536123153319067341213693331699840363691966636146870287020656817087071089898998284060662463318748010268257124035828977674502496299596009471655275631440366476898942484069195537112857356165056522956356473136305841650050388661733839761818381221603956083033149009554147215454500669982253213843687744936841909833287958069466385912272299120322256648912280237520896055700950395340033567990376753822165819515966904693896343869783898655847858598063891764997277171060538110170532309680548213069904921728427982159928204607276231045973554312246037955247004043371445606454800444009476403642184267370562755740641468921184848439658803457545842018677823301469546513719780207595406014061597007294582118517745008973970615026585293404567457113912583936389236154348847904553909762873704094772501883329511788053044056807103627945895480436475634406518470805493418848418524555876977242683039741304865612444269894224097484938496694459530883316222954648230026482492747124296771846809015704707222506353322281675353483897262748055074871584852788958442840386950237381380188290266359136884665684843873174531810485801413347194256056689229592902119424563606963430092762973784228763417057121127592840441588172072443135001411540052713907548565421744192182868628507320145927230448238226540421283297610472878819947463234505660174096922172370562136590923488022803122743874783942069634091704838419387455639962190705403112036153161978774655306957039273238457865343314902192140787369085900071766286266866881654379331608929889099327425385229246592967990110417523534771731779372870276509522035124605016324011736843423400981333574421977241776426012578453618172430294797119693139198440553533954813582508556743130913839189637376830107782121723465586226642190580244714617883497588501849064104058676494558351444004500489606788379787203411321155964536484832751215155776956013968371756402699883871473240311446916524632064082874947751819811424446460787683615036871301447507556906641821992271750770161245706083210204354195326241730107706560593332726523983614407811364229051068639556327090684225113398632034121994091511951974907867351722330541787162566701921655149919335446681814792435872774670030554582763010982356086676046028392675734745410825577193069274870228579768012703309208222477838859810246922460348353469199601423750958008828269986696008298879735896059768182444320025054210542727935802412126697405150869036906799128394060426489138734223952343236450142064384798216890916857301232521181022055479155764047873590065192058280626691303153777198692785501241610215351848710529862357490607870292462439964966557178263399717310492668315337995202682884513156762746041039950291948680383113845662284977625652587921742600649847760004622933780861278261803783471862519043109909988857702597521358397011800643392189597508172041355060973056383567481632385233928129810606184640499582443452755426376835646461208913797229147266687989150736956369587412997311757871465385926932939079895036229115638285047026340499272561382120622699665770613875317057401855962184164894888859442459298740299309851402011339199984780166088928563880765417196037419895913352845957830934992007219630632019821374531972641569757555790402324025545912867281030882477185842819887887043739556034467950718266923693652654917819526654745227530394877901130404463485524833608741535488296027074952110730308285928210231214065369909947799029737019572883851508902851588186174816142555806394027940560913318407346410603749172484774051064977368312831865847922775839452799412122897045350978930164463536788382763257150851504817473149897261400429443488876345645635561024978721998164085365274495722366676869072826876828911061673539007910837789473213247449879899596800652133991110527910855255558562833614474491896339153467729376244784002171939288502978058634442459535047155418122443611979020481054675102354281109184046943107945646882497617426947606781570113733015848268199287687725879275945905718049959459388683588946221479277152532354694775179747850855062367885732721261977729701709085754277152305053626603595811296003071289162788171599273327922880582033953699734368395249082372466724780567453760357323436954888153483040868629299898157637522601641331559593720539945416670678380316166273152029598580052477211936595865388017961643249741791517951281463863488822579041685041192169059947153679749393164568883073444629741272917404235438764005854592500927326807218113564415067508734340344436835292795919524335732223578654632588404453817898099031858575595297299627636086685596749523575840659360119779353147872728782245452700744938638485576892605926854401271846294243410074059414191078397830244894197772808772960883884588834431123941654721108308835770424917501800902201119890748804376299044454726057329776809579082446229121924194477806284579062964086566805282233566211185470783827295477034640426026545075907555629814267560506254813645987128528979412718179829844995564999509318811056953049811115711920065099590914337971505077371143754666377432541023287481974016213014434235781387112311113653901800013121522077299830442548751417796187777763965278947558250322701063644162915857345703774748413117298283204571413187126258617761471713133240632365815825157186353114926020252236136109500673707706497052559311461916124264863472534351927563439277166887299052706822633157552987954185637494928229594665338910325737607266638306885866602997994276001286856696693568522933028754989033477185226454274093817505602758071471339317637916181966016999391097608736827143423316118056533640713834892887078395646922530424560161752491764042240910948183809132151578719745175349228366239055833685375746368243181983076870073092407302493464881654948658471531873163750944301288248791527621342133056842257200521132115944555711679777143636474895290943677974210365849827233325390652863588841472490198203192799232430318881162228960505834711050420439254647011923801589223633925736109558394357714509025820710656033831590876115830820798745084692122532280638893478642659632679462653720212271342404655668419749357992069562433811510181939592943237271463327199717668432865863468452166556752314069956554054996117374837150352196376255901189424419244032420310992036161499182573839838871815432349098799811678129790093249119437181577257128692084268632266919176711085182226445654945488840107448454355323888368986399401137217227185824022836472674005528342146020489737996796521874710338365963496355966095063570122611690297123615296173119139817213433032977751548740023591606774724458697031613408462645339895162991377367739307582910263284646447904092008387507018523793098394882387739108731153107862244274681127912141378985802894824766810907526575043765240788885752391652863294537330429530323611276979316216835909649848324854948214654412257797383350895272485462569641937276308860718571718484326439710187136464698178462334504209790062123721365941918584703349862108532724161114631312355090131318050481889675546253074935491197087476630067180624516283885380388342725511859789098660936911884907910676028996121226255251552412960668008607286205962245965145025941653135019210087807736678026104209550207662466528172741555188521971393524606543398921290969049408549584943509579249298826075390993861334328823600654629817335135993897804567391528171727894633134223779455289809697065048846788946951992065477829732530182935082327608649408988268444332624612900808827957282144461621452073582216630886143780462933044492895002816516620996965118721747884502607459732744125110712823466515484913398761706437521133448844271838433758487952589680925274418170117141067811644697823387537285501083769925593327731463512166531385017752953701690186852315317492951796630280021654151219873693763014035805265389436528870722974708426352752434999076990027437129608449566737528969690944023306225255714808101738151320652305538000938636163922564877336813201812145060202500110573962898541336691316092823765544242710267125386560532590150821022004175935136315807428963408609668700896079668050963865459460186076455449929854258509056685706798785219635086939805177075087485991541620077963817308275271255275313616347992329198774970517439303769139021044361054292066241462237907941414339097388077407506996448370660907445464523997258654753774837026216466235993509860534837254930018464452460864472172881423085254753252091713714486282994382745579167730568669311797896252979148335977910388809053286076273793838614860293284779103218657763522948843527041936964719459340542037075930236473758098034392538003182001025478189365339563539812706376945792940313935312763552647958070333342524329773478960095547614060381767290567743186888956804713036780770820282753159517849174762299859027212046051323572868744311867823030602040418183601085033197801883166998842985183965264583564845442563639622059986465596023294224506821482013530593297820661830009268524056990662151177205779929283331982592897584775505041538933221120210502108576180368071203455179770649799995494052334736318782089325715790917785065720761392873191436192249347323648544628829540880302429292617146784328618389316757407766759682819304328737301797406484929293022538516117404613606447190890230000982286015581288861604685833480612227262933234116951030688557281014893166263295934260795430842742226181777634954950247454189693247942050299174600439396666316929510587450501319752854681147622271466524858590935558390265607867887281985718604331977723596860150938814836517805065002228200873603706974596562576198954699769008677186485971743435348972071348073016161111020352408592484850809491268703278068145309789570697226305637294593731955839373412199222921087963765935416891801763388366807554627739303709438932022623581701882154989983365063966163786303937829603693882009895290492327163226195662413475730111113187576506347402000389563154348908034473165660303470461225623256086594538007440637757022832977019328068704642058071445402512739563891931511791569376797594881777270111305014351795929266774816357969993858032136629161326801554526382561522587819766520033625110242663993284120427674270642283451939292981285101920629145055707444356336961325644689899602558510153728425067684419193730843692257496706305013625320034072158780311474148505547349482109843456845154433964109897139203942617767439898296218302109292369338966260124921304092668717499887072067347409118343582220198870382110959517795359747563870264652191107212108344525102706590848554252685538650317399771706709247891898315052058265762621899484559381809770726143388575348691619438298983129390931493667034283627165325423140187662059993372409069355676535933115313167861405090972028995818245443243257739699143056979957438346628457264521382691654033980123367480803803925139679652182811348456462233761207771068180620496755292388513679398441732519089458365559233632465338454431257281381431118201130103600142461793622953759085828848628686388991797436597178953360739978576914465257447466343758926868603542067741877265971795369989059293794232424316041335948555061286075885499698092142929671404801004056012120512110845018618011410801752429244001165594802687570177361160651474653706300838096546210116038639847602387114688306139405367135808765598105352537942093627855773014277781189679510701624699920311218442154150479093002509495151523815083782405406832240872941996020298216727318901394012025203211080908963820694783033871984772801011423058685002181172801458321639631018962285025769664962556783096112477558907269160081988178917497382993453574271372114841414129434254196158131617423598413777452637497022906888117946686364955016296859909506374334174994685473845006114489243430824467626301356157491080688396502778965455166774036634318234536080318257889661067849518051058808060411445517609319699755285054123394967190134790125563739294075817961055863051259231836202812822025238566490926180690761855272161310083453473771229937187522732950787691690350458745634630267380567348714713280725514450949104730081519616066304373714368391357988528798651694174764122279073099203135030684792461281775159830753757766378680881975108278211580670648132512873506108568729416653932779729772711632170332451732330082889056644980413904222996261455123815641391168689338095652317047591656162728100551222495846105015445245246298238288867166618941002025134045723949071387725580099033694178749247387970903044502971718874012830915189536972465221247169208305500902853234250785983683246651001396796155008899701785153149805136206998237509344895280944263771523245019839008169953860863929326892815059767014955651862534269609430098469067869578777761786995583846866572993367885949286387307016590383090071550878600376685518252377740500327701894389247936736691160395886398419376478814391592111740934706955093763343232009141406817331437576304124249757104923350075745255429826290319634740599387781352642487455620518987521466498953007985895474163807094065704196819162797276941643666387650333697704122187581097170684137376108845995595478944579485477136298781983677627126120915406265568778331925494554049689941395659183728369529547798727195629496858510866927204410929339293499643213018962972384365701489407399260106304155138263831677624676102293976101228665883765554473760387593574956785111800837007844959848614444145216930504620011568191561193614004015699249755544765336582799610231974262140073558809549289583200671848175806524176950275584725877668516684053445779300241106734003340501809125529813899088798069484627084616253827227158746568334190053358866611332902309259937820917708017079787807358875817334522481205052060071645216365133296704393836013390074090589870531526267729323694927233926715401806286304524887184806438290400620921349811328083135074331577376181689969409096440240972889837818462791071486312157749155633458389261580214123372256333929632269655719768555922523490987365024615090455873233534692888112411242775412843672594657147394352771266822313178749914908432383443736089024781798515977339198853580347100371396231839408019747031691932578767796268114219185777071069255265906235632962354559312985252750365926743277801534625218285271325884577808657927385389793406399996044564563133553063295082249716688496257238380108912379772925714532958857165930431012065278158546842602614223220206537330971971752559060638372359150472950133470695236794645922092020862843420313696237463165581244064952950292631631458249339006257720812258165666393957164617088178403704636870935064554030082279872840656133992946938224452656935744445641672844463958116113151202138567327316809429865859869571338684073394156406763355111025774659695517503566004881891121682067818165928344105996200227494825435395181783216991865371155879053761255224200994514894269115445089388607726241632614412293212137631051386498214390846204715684655692466499442742788696909407857320422006063471789917801922937868504363404314214615138332171619910153540610175354393117503722310008782329814630410418705479640675987838132513195316202644279874836748042827817387626788199753133382573482669484178978931894480230174020393664443898429352133264778730529924916152965298554312873373719001115029071501657504704465088411351512205831740931315767627189448454981042087204190803911800203280207222868283929592593760688394664040948702008927731572197542609693303391786847886624962249079596317660925455857145416567145150409718934851468152471826120902109610136987249521498744151359752508260263999201860695074926288648428310599375040882603360744621250718877961908957950119247735565342129058176936486080055505890945079176073447240342436913346121563434454283183154222269691045212984212351082596920740868091013805548974064494138134335201715468129060615422918355028130043398372822721619690957389971602784831580535983255978821737960693637919435891956985411315395215482788429064654037914012110622073380330314105164599639044973256894250533209946981304029356086793471903869126992402119532671296822635340976969107939714121985089604142921523594333002661819931875637976731810261498565042732417612268873227826973547170081851300054632427237133817806700779293886701260783023308628587921591468670140692269138781907912282511198585656489546891263755264157352374105792059232781793398891207615054205238696068791636904050932582476899530879835366314738020340322110410207272217589320381966043910311608086419330854706163479008893806833151750939294925056269461671434375834510816735243479269459253822000695169537471696676422650096675865752095959700821112036834322585888154740088363577243401913536693453195996398213661564160775143524714596497826254026516871990994722361016049586669141752766761678918831977412607713849301184164589210829085956468630389020386193010864326097297176482290784252245788504647516293874611608388207372839371903886744954344377806354848849009297851540522310143357008535685285818512965528129741841416976182121666865701202823504136906913283611123502458961890527715511403223668099733960450056455913639020238199729281001425494024651964026920481576636443889585021046865594948167499267732684934599193991200567543594917232520482218055865074330675912263389070832722130276278291902698273448659491612954675050284155887036260980454179614560881875856112478202623376691084604389775726499821935468544897857558233138965249121757388770428447243925911171747541585881096719180578712968634191551938631641319727622718573585794916801810439686879647351152105703576158857176069677167898938885409843914499247288173282096071047279472171039851693735950601042137888529539045590827886411843212439328070130842059350958126871557266426069911083268862673779351822060422305663783602716945820308846932908683691244301297697723292164953957513045426193695777109497915182404453033261465901326725870789205354095356742758622102020003795830629662870524449518433400474446016755034016605262861259022473079420318793668405560356715866380019070839864657515167658107454726734680473294573326101288368699635012187149372902524883129731154225761368022955218069655116571571699625137582290292975941897584745408748105444869764456381627459495709504005133459226472252520730768925601727229366509760159106221252158407151404865593718810689173722760472555635372590607702716531001605119259904545257595915268593599321431100792078897429517460734802909610495002864990951561269264075361240929523953929166356488098815813710943280571266091715593100409840563738316728202091798693604447858985771372842938655383973263527250185073567012890559889092450826744887631546492512662023900778586309203704174990255842330422496725958181640047036489561441507732132826374281457620649136178563359268333577321211295272855997897968393852714463636815012506728802710961518170621597549942748164264084749087505136867384443145784029233987575625467247819706852970691661903776921658540044816942996607574426012980685499313342480589208447518408281559937360969099520804201838496955991098808372838499916023148833201146076046570045699901963909374113038430218749310577535496446530472118659029388408759106918747476979555156300275103305252002520651135649706950331405058544148575276758024133838847954891308240729715501402731283499850389103631652560900386780320791378616900680999921182599737501465151884189944197549939553778579295238653841722762410241171429695769487788829811118948920550241090889174332664534717020485694571221127474311687266665323004976122239455893933709506972137185638343630370842069239916364449149594169318629976666765672249285026697500579750684975918360326475874815474630498181958044661218767821805737694670832440311371205302388269599879638878600980495837650390948189301765327377283690895245056529951737167674977572400359840152531961503823037950537969140560735131746760990318440250510597784705343570555089940215567271935805115133915984567929751273185004622655980159581200937748269699821940212802200153972792302649924002922993493306633984207056330703838967823761570023614409684447408090648697940799968929471879228865132650415611751851688565030414906568783555088852665159748560665493434013876296952453346688999503866372568055272838995810146681573032929055566146753220402081144730995190297746907683048700429183661711688543643317251329693781278288068101837934929838302503403707625181195836117675948470551977985956669390183963781700578257694026902381021643172548063831591201801039611351146786379336758721800326182466879995720380554328137295766064767463774864988660206789663967851194395201292122296769902334333136997328846671056578827150025159506257322440075055127769944919942891986189993567838288490165290969285742904490468368813002301419202661058898731120775032462236167383267779907521039440418270199305530370267532281727607157201748421847392070575889882918431195363424415154649685209226320176862750884489049257867479253440587224275943622063662649305955581904150075260368895609984191068716251549709226181982266216057779715685464561717065428821557492716636107427317590318228827776911852875152397302206452930679855439297237977826846087060307797637030657148656312310325987045863221482736714458255367334952518468970644167320481706849894015246969894609862641586961244659427188427761893530518989300703271477377811989695464752322817135165964514016368534812004473992757878475149967945453562719416927307264180066815563178314408125044590898640789653086536789528117240144193807225027444859951468064304911958857585062342701371375034828065841760337808210379489123390050036426460475287849565179160612446192234593268025619710286384674553019028315212601040135307214825886772929166282419654398482613174080272356041218016889502806896803874904752366635609136744932874991937653429700496131056811516368193141489833373145355326229481449495425369782257439326520311028744502644876870573391148344799094284049701800076877056695761634215503825471672246369026479670463342306617166152887946169099136154704151517607818943583163473448210006157684826490028197990569399357565359697477411190977129146728388991131373753923145557164281464491434948533575017612836130723948179196395863114310397840718183371626038453102319598109014955088484965125289242556344590869067255481065959180306869019114876283460230275438106714954334057807568540798108588196815220374673615560214623257105388312974645096313277831621500007069959774502978948570301914167923886047111689730587581604815743804084223069880742404160760724683600569848956444428794063297249951132624227917618396726100797910736105449246299962294242256036532519979471447401556229972804849298974562836001056072848910746911956612657132344463042829788978508146369552151164637033692758845790536670616523834895012999403266193717609102831638105424355471211570778691634979761267009156683660822658836748102282298927288530291317873491978087704014792528542864709970593675325002289171611485105915408529833938787339248907027813044028069422491123215269513352941142597284116836069028180296118026863064350396921022144391698120942212586712890582939097362233600730585775639796002357797043178710266441599512072385945591958373672719847500998225031209838051301031808868401788859529961979270192105249070429458096643904470773549499971456844432415779525002942094823667410722876546216957435690734303110050929161419534886245566090748917745565071220246115577472941984274658109250441622234534007061002733470480565923382817133658023722590125041865228154624665843845259845263745593669564690141163224668643446428681769740886756054221636454947820761666127585091250166988977997829612736531807174048828299023990980499387974254836856901753781777163240397996258635270978911408441058644134973821712712838842428351447306005579942637252208815961976663357615794735769639902976864006046103031426732861034215608816159636540877868497551057057527406792222491832302851215334003195726932020656115509473507625735498770969723175780626990379344191882273385649360555178521196386109110482182364720811244169977584919488040362633549268522775043325220962778432088087801337333377487249788157050447992207106217027923170902113032544102305315505995626097395252605193872246321154802020933232747059187203505151695934561204682416387226314989064475501619432687147210039097766733525998058911713663786849778666783033592115914108037173142304954788244863009927912679261619506118609504774860368447880225059025262257147431393737983619960346073395097269009122199709288216616023205127973884395590638242331018175937251657325982303233599085722090932197664042116550692158803548118776983072616385637968939701456642367597705898917192629087930788564253633914019811286324944733757780321514857211111951627892432271521388867278108063892751234122580783031247771826167642929688040758430499330607048988166173454692195097139047803245795483924118344908439725927255757201013134691288989427347396659922665333096785875817243396217842705030553057869438329787165372753036834782307776177760227628129791699239508378438951625667209852350615323152742074366601441355941809408131861169395277049796821164643364084335747655094072799001298373018001241056496646349020331204363597361746675328216763102066014027225274208699188909747691257517811862086669684375766891622593876333229765468761866482389159618270318186449076325278119610927288121972408638787437312251953476210324412087243289963216881624850712107698256647269378846805064018010437923209524673080975155684022457356453117519758270903684739686368965191158930413596627866785088329488214593965305982887251458435481330298983602174865075665796234924838175579647620519430940784977712368805497972998123852266051910662605868405990045946092808261957692666884242636354547773621805418226203989173486425260343676046719096369441952358770223467622768278041260509117663384835712081407926906300965750977431511384866872636190700158917546962275537706801740713855211620858504211743019173783104461054741260136187091764415365070042956378866974870310515307264448001650172549401123910135111952570246615092674980127948117815997275908310905345334364476283759941343349110757328227568609910060285695980221091481022029333827658739014932881297002205172018120039039644803885355505190184604466253224532341466654520191766704360230982930480055003007552189381245129273347736427028763039745640625517825391198889135829880592578571041204778622777479317132760519563718588223588765890245603223381530434319598875446542724094291119908091348780166316212117594532531773592162395787538670060811972935788412522342575089843905722556202036880629515579872988206231184292827445771282750255637001920259884466122963995741496226734640693939679222883763740821055198944532030531864820993334238770597616741822673388818925094901563759178709290299146064670640874599275234683505239800624403427971471877324121207764963106276779020832796539272858993113981662698088005408396244775784415446064104434829028591707338909679964277162846386569345986452900624924965388240376947199526521301362048126361839869174824824988498409986958948998640964060511624588419491461924667627545958599573000796699898222834124121769971213887804680963435712878387952128761493242853402992735375274029011657871593643843468458119117930834998769146799345161959961369353123410201559565259673841809135710058306476784338380433896658940578597574920925919692959706153215968581634939124736697524295597528439922060530030963938288373602688659444746501667485304076200258161451515738568724909513754026499239460035972810395590548304010230517160111730923582975706780177276618733539795199770179132988676644096803091599562073588240483002466237936907512254031358399372751117409092935777044263784117257177729516078503573772401064035579904328131632874538469933358982472194158276713245749864123991308258945274746624004674029796142070461851547425856224394473557842199865763678221431905466818769177426465529045591256836894775883520584173960814878989714029051002669718077428609281439181226860694000921130214133601786951244894330307287888644090228446019549494299803301539137632190924924301606692358918554282413100176087627824637545822608776512799103606558370041168003258059992252813965962912879237533790898378154811201074804088837102996963836110154862644183613799616577474325313801451636457466690135169320606319277190791260766579063946615393099131731133217832436595401167434711726806106686304428756221777774602521663459807614518985407536479752888981881596559054310161535666253434403357171683462649042665110792464312533326117046621875669645576657131393704228731754668166997878678631125758859214137844300372996433484846421859211825974781836917790832455872142115680912484257579022441140675390305342075152013253176262141288377573710661489619151985538152996020711979112863239906532154184359973237444369782042631487391051949963420778326547000170871238680366746395193264386826864053455010100257877160715018087461950787472537719329080439248440773082069139743176841990365546373982666119204659843100383056564217602040625270734104248220040865111171270804738877443740908676906469987108956458758963062980392469335273754086156274837358643686064945201556343317074038461912747889374404834172760178611969000349616661004171332432984080064043218622962425555504962923773912588827036111647505531436314097528501816168718837546170449988525398436678150895573525587016748531296649720489665700861187955711775315377847252663685971167624710779810924105336753568313568374097424270226537959612562305661024628403298539107468000866325992733797442713109946941021728370995416668183047273914713448605508659074611630283280176410813275582700149088969551593042188424263719781307233569483485928057890914586216591968381767947120250932202830320497785774703969465261548366473104886123537560869352289774838767310535116664529682301151468985825139906650203475515196232720769165266534307715208507235449613747151501573466828231225539096311761416318221288477303489085956289473133112556656001539208713248413449659990606072510286949046909588742896456852448844555716661877405839593964177811554550553275396945517348248374449245839957930988106483855407290631527877318097710067980505626269821592654827686118474998689220404505915887795055620456153941621644684986005241189051077683977363078092192842605961296424580475784064290017897383963572546280680669134666103755785866052797714377630505556134706435653828708902333349715296123265867129184538120417653152285970554329428627020821901917705612904558102093485828824501496811555536836842603658227663855860775384852283505641680859580127616800580316610449007065077308361704381341978503904855960665373380576311551601919796214249814443038480529844297725262285999386574406280457444575927798638004427897993947435029308662669044505447670691162451001944863688486860283299003011229534791784715176370815637762767657731491732510366173775318860655636284671704163147887854273594436587269233527821295667563086399587706187133865094518705015975609767050789421096253508418104174793076472305082281742820075537072868157050246492678936140550977698043018558832196053227681344383564029658693797317560747425652002328533817303315052474022388693951151894220709771818556296121655336366699415573986276979209993569728959079982599949684275473933161399651697849804947062814873717869458412464183583938790918603220637566787317975363163351688855439597922692168866718723320449002550998304772554523222903607793998692654726784475539618795885743316137094874376034307758242907261812549750027510742506258967612550003813820136047518000270407582651644836480719375063812415149029167947324812623989852600459851925637939063191046632227003752355531904137846252649259822018282108340646437771705505648574681446983267151277224963076020147965182160478639313125358656830660947830673043612188036139995394548286095442799170774382234776820041210231558167472853960769879302861603202852926354352260587360456024410649218084478422356303897356168672310937865711850064742621542786129338293611388124778932719722461611547333638087825405014786757522253739970605330320154488585865355922507242085298746602054864675679063352518076472772699655915267302632941845325032775148519886993792293770986900630478983999423448723744746111145042538555946989252968543474665595513168657489394161099212657647312862183337624607660261146517966770972841701320464618207103066624457206555845063626212710785258902918742073880314767315546681891569651910121426433839675787421783468081700594596115315806757407047557201121619859313217759328376285936922767898854066032511710377796471197436424642582776827251524915958436613356669387988273701331742824354241131540142076728146373156555899553755851752026344052760642578380226799955969895761667816389815361695668552624853956324200561569470077730647435090690725685567169739689027703374282069812852988032670619908729161826415693516573080548030302779166653981905179806291417989441846853779233694364316784435911309599350421878260388737394610052972290066152830654694692314741505326304572333784585404172661433190280966214180386624578912302917580344020144744132580277057341251324408679168554631547767301475452206140416423272082345899048239128879419574738643890393175211665457498417572616748454931977500650749586767730067645632348595017093779669521959188269579498987076510966163799179183797087064697120413229495453626547320441009209775308620477405757547443529047869897335244875916420382759689224931802756030086733071073499510157602205480984907336749227341488101694902346672387253889405707025446974396539218225464014973842058270075490878161339582901958848926696816110620638222628962631323854469150352240294259303803960676323005135460420670103510591351036229921951901107317721332182036933389094249328069192270551268354104895652062653101965187670762805756201310648359337802360477135917123242332112590055856837722709733769762477720425124467665040931343507237347673874771110226230691691361422603537105705612978907511158238905824111761104804861842556692185806360720737478478385620932318232475755744180080783710225204285692637148287113618945302886062554913767401658723653522589392965365593385333748627247384043788345154144058342490295887395807400290744331936368907944202048469491551990705284376008127458147606110804211560633224781440519367216812800549142904962026228614485982520358988360594656128195710240954025147310441521438771236569911162712053277057857405361434737710613620261178015934932222774598819971007633061821252944021981946213571442442236386100575012067761271408543416456277895512160740073148339496478074480812309368447808664802039681481318099424909616086300866902242677102102314373372016507936100103543844253037087049842462970636441240940041201381409465127863786126626765422301082951198096654302331580999195480690736945902866058723473602588768467899355954667011834018257547478566545946201943011022641006884500673695895467630484219698631702008890930522639695444069235106620189331508173763728144641423545168635339143537798514706084080095410985781096374411993708835654408999116964134499918439845932807048649502929069184583921134769948861659099693189855331797878356189124222620316961965726187554082250474452516149506688289932805210314489908758386437162697945437857202354368752165779058688122287240895179123466577074113461190617604589341905986742707889125257272743508850698266140948554302351192503312799331981669688357528507795929406164331658201991817122940608313193221559522500145508222902309798820930045829087407851903469709792097198514208100616787394650813818073478082961785914595690583960300189453416341700500868597560107519513409832722944562581470901458450016877020667729204127102790734991766977345961954056848518940849941555112742230841528809738970940016098714298023547653428780147310537821612160055945385722526431276695960043766731204896740386695480477386507691294715847655466950315797067966754979871196979284275517542477508849117571203895836935833636510306609686932095265176223165614257723513336075610032541663456043090493406024892429157318573671010980352660443342383347396730625160647874575614782499868081915434371263978800690534087837585597012527559597846095843163561339518900407904407779619401906630398589982612131086221635033432588443755678975391785721365781173252730629528018507071582704055166685285744872746281718387656965273223727625805536000006435663447503569572933486211284961832494250765959770775662201331088425522629658366487241233541902703161767566806792177238705301451098329000985459394874947486528474707885284163343479530110406213402236662788990757762333862005616451774357589285882214317383956465133343811236012821871960879846791171409965498685212002249386035682982884639661968941977635591451246694101271880790125633161527059869677448689709295592852327892746134713164816302275696282534409925131759668616927750448773265169517875957181454471143770575370623966627202883856674212217649708438240802971924050795444556871488207330309040246667072782009051505990457363971470932295438477882947713181138933496426447095528954554821042514569463271174576192025602000869607993405981047851234787288681119893252411001354191009543724715490952732052015441089279336101891062628416787207212204250248202911054216054402686605929525332310978201879470012411588265185926130640313902916806078467626808009870525955505972582303995098399465407318713988653227851540975757456930709055515140705201303385403301730679428143982460624793952478068244010216828947979504084729968336776762421108139753254714292886923810849140120542335392558315366638232746202536224770809808906897552769580600340812653136203911102165915661432705101755863832157542944052104169663176200379998380693205164681147330405001578172523120401955020208887132584565193693366975456602402453336014719817023983456968482972830434831626727304949108729167799192008134228945321279828005262054150044381242780102915185895549724861476839619881974399702158877654356638893352500636094580747069216108454484964823736961223615693337405613686979179637128734056707695818563804485656089644278565700756085171092871739229434550597770576384661678799276226920645636893664950256137209454291615823545423151482328789994377828869293533293835498874961383601789982994634943190971388394968644386029173082556749262555261607315444795035952687651191083426359988916531031343882166172302751341817052187954388500664250186248555976267012233880820712240532521225230792488878098527157328102427702383758118464686404222675622600636064003906479170255207296685433339307110530762418152713726617404059580941973813596277401282568819854884689913745811753941889967850241626681268993951463576962453109812046649751349365563758912452317516900869916746731512452254040866192548593406522092860195620297846036867524361319130695891155505587909221546321769367341231662233417540439394186605489503387409929418620172741507859373988019441958415434575380472777105479079226133810678824146832273833380730583821215233411590485345423396690117932660366115538712037310855727996112339750213703947852952337754193254821207389148544706718970562287493750947470553984471638146452604929750717436252021005552412180308242980705082683261212777573402098262848448307074354456343016899825189845304544325762949781468701931927448781267380225904044966780665121171327864455987131972258765333815551950629688007340941394050413499239818099488736618355882528374191025102895317564553713430471266414103005453144027991672308940306640057874821202354005976943606122108193041884998891236952318788553976069510740273197337255316934811377120009483827473111395507815885058829401378885430400231531677290727202004593878048883231846945623598182256612432603546361268352070489500567644375040541222718242519730842735239947748102051702871162748389219776646331861056045172534900669089406228040338003690031576873613682022099523736018695153266304989224952059804573252499501343917163466736899389810417167274577175701563515900257545203530784713940484422324755295235120262178116055746774278141309284257810554953238171134283737736196863255038955447107934011959570962443912532677965918264309337536888999241371281300575008339412364653574246705052736496318620939842677443464406834521894340955556155790833088498137475585561164501262365771713594387934885703646380388299074142637786374958505726548199632023961828366132963656205274564515996862870948778362632991120383234646064785868398022854877944927871916054674045459431991519383520642070529767619114923995333863931080854137679816791006592703709834155578933166924174270356365889176361043011180989593773863798170683730464431845757998700543827089850139499003421151778881771860855962711084998271639088060621146962413261176605934210521975366442322645197441836259109443704023993053172521357194990765886620004961089354991973766915712333289088118588555917715069582361225067579115992813105457255870629132754706480131020946209144452849655495792396990487438634326441946107700085284648820127742420543790747348704970214590924571127809421328062778915513903430577519782555592473096362485626163972900646447603794858948730356463513607081835996535119844498219744740429164639783344715001416371903302415675813749247233807832379174397476336389097935888056602873169352640333536390009541657127546377478336329937463177537017593916736058997703711169426006463765107342652272711526928504933899251484871079625659533122999046695426075243988266190695427339805792651813731616979542366659150868698878884517913713175492747363653542355916150568136019319977636207739740916569640278504946728707516900216070020235398530763642993494434860640106385699376917871120203066991993140794449062649043094882388625432353026592162230608955193770167776375332138917565226651881841247690539759575785462122797734203363613611297933774687813426812154337473909007702228213394894900430223717293055047473676798702568966247202695816204230964024837802259564968778192425539017822866794370437588646631132183195145904697399298180394867570050866169598638638603082300196521304048990114743613162200460364644207258115626001145633972160893668453346195706533053362431855471659543937108051257413983622417813824671768519576639288304167196829605651033947753374858797303719644325245915709732175470807329667971078606761461466771823161847601164847416130506661594983496706428249079978954282584929360708014472554000265483986168898863689461715188417987062498669299358167529359717804373038852648177883529699863304469813590183223531138177263466763666148295093077194286325820777482302618237857309465620699110988031978924278025276389689210538439514092297986373182227303088067237121097406949672216442743531308216877678431201694434420397619423510025270879579774440152772695395852867787511855867355769101446756245892248577342558161057433427575711775338471475433225311362046094693588538081729444559493274850461123360333561312784553646470929927135070552235446087316806568945948197925314998666308505625453012130999181521597549080882604353635055252330824432494818573635968333703111611577988496127464442708096121153559216304547997166279050784118734016906578095631328145669369929963117325465531963753151492845751647525163223543430854029241628715794760481680891216834994095846333812404642136531801093665626275620416076381774138736286153859172618652653920533103655072085088080435922980406273208688622104907789893137071040902895206067713370125007689414084218249213407144547178425958678681998243915778977167575412235085190874377938693907215691556748056600362871313741456189641431955927240988485206318437342121575329120454033139182928485795876368867604655039934974295872581326929353505659619947235615173812332437428346685161005477852816516826779776270499418434603268670118149931735972211343791780812070532517529071037714743730642857040554315965811872648950367974740046441978265221385636859393197389845182989180884952612010284270426892440387213723692138027369842579725061930450161257083195080584225116098248911182782829417490532941245655430539705036600980779737076830667701221450741561212929887323782837253547390182802037024255582243258548450463481964700907697797829306561487390931842147516729040387320954000985883539949586769976455819743001717910898371648982004595024898428456889587293140786964108416837011899055293925963797057177957164265884573534790429419603306251983279016617684598047435121457929110628095916837278730859525223097328408299267316976340931433665767800764030243329328745270418465111563766986438015853336958926145905369920474430567866321491139857531897073196964248589301362333632690572684707282576619464547318529228540802677001244538558082596127650810366892067087588956358805247161736040861867986104577343433159568160168176210325709790558599440839521713584988834254818358480350167657133795605870613069654886339787193570767476258976162642610694219793080359345228921255692346293840653318227323939176757654964883713341958947883325202906811284460569023715344197648105905813024150575007736198156342969895397427930584041134049453655000161000152350083069459752817295004656570093606336480383439056828521496454169832866591643377385017758117575354486060655967710526989992367559042944739708283722079817510049365485356533948460262078669336112078196727089603540578388631304017201444642467579037621949377008408580587947066273548599043354612506780068109760028073727966695300467685427896076103591969698799294205243151073819414523557255427185570880806953568121220308934404184592058033308598707985156259849526372225840812761473631919573224186548013529411255706402322073741740978093344940539091114803298246112071184296929345328994803502755411662530421327980804222101201524718179368051097825830728358225868713639859495625178327535072330237595798837330651722896598758073349620324441061668338083634229647672937293929254541837924839390403038084684413858080609530229098405098750824214828645849571081907452944815213634127006355010593563209239642313953227314585291767063814468462986667682675637978193799417594529032216158011500770264661772370134325475192626786159553231821989719031330273729999751320932455250301673789167067931563384702169161855885212839972424564106171079840154652790685024202384581040721648093658519098388040401427141193542002829430643125274695584312678963143251984699499919946749947314914486653776677969439764167827648628103824703736748475088697994225965291052490117510598392196159493974930085680740151860028798738769847440102892580730021059840882993867494575091227100376678384149956334190653702539427882031836697803304939988250490587539781448653620984417326023153186248708241628074222904625155390466469165535071724825648302091059613374824540759820080471856435585427354911458876761355812859676527567047538296614180214804044893721730579500955743021306045307531422096381573413235134599406150265773589748613281477443141198707024882337981052900674784316168961268299868165965004774539257158614373923829071054000811608724585763886061933236625548052412046361332885364530809129006004985009160215825096810658535254970942295437874739486592631645821671863317214025367865482190586420404663445257537700286664693178177578122077809715804328407824031990274869886789076680096489987481230683848732693146355190887027915373139831211532716591473816190315888437589849851213702452478684470015262569576363814880934009291669601985547985829384885609811272748477603372612359945434041904718084786822525547676537387203166455550224982362543369791900063713585046457872846186095445950246066902849077902191378946721059698874566462748869506267961931527133158181807007449020229563816151778575614218011504569396664977253720031835132941669051199304792423711516459789323526314448294606220402496922673217680928709957404749314303285612595407921587857507308158003662462090411761403865648579272827104457244207391843842283997080983471192824718251938913603529572839505907612536447793498063171364027895901844300112618911685581681512743338505141118622538020959451993596883066700343753344154349677575920779152771761001056091138952357317713539282155403443914504981266092307825055261141089498954210265329386129566295148650186876572917186330913381216205090075491416892621864242639051205186251015931171379639581181501721935431612212109056097674207463099862566219490111690209762967504939422976424823322574034797707409406501142619431144688260372321651679597822373189271980935763604051403784322706716580571343558513685208166872756901332914798198537493132888262393118337996094318593480706728518508670921656319800252404305356774821909449459273950278298132313397095724658402602315456949709457252563441354463477708066207435789177086911919289193053332363478015082623382328165375780937433282040977608220798322962175162427286007941519539179738204724320953589450507697889002043734161268257311624916235357225734407175084648073394914450194479022816871600376602411775269770543914466820366292290239584043765200943706433794864201374013115089435391852384481193710047992123101064309660625246989535813438068972484957529221458335866219608637210407260921971541743476533620584884694308805570951835571766550593304114669335634267200040761765544561120871843517213057287985744129115307449235619065806685219070866616365605384278340490534897099862927560782729471021135708765745401900849763667683452634687656890917274044805179341859402437162297374426564801739129556596014003607387217003380528322187247271880402539396668796635017379878221758032986837072467690614117696936141613043206095517807711264874024412744740745608284149727045661143931439206307537647679528017258024906358539512162726341087119698830906009961900010395342244971763599646735112133905022865635342761448513546863493716765773451868526002128087203282142021531771518940987433429753419824561210246716186825855458378172889604893993938300614359019745783919304963688460785260407295465441373922410454165611583162607017039766200109957797864063936867363533764468140433388156031636914141379324100094455334876009032291368110894593616678018398770396794611908441227738268359057353086499938303066797287391367290412214742621871211170758792476556420187722903474861241841340446087912789735834933613275693187618169319181423718328913854055419639941071032419692307020412054083672331137361758289627161675913632716910000163926013375878837977765617804625433759609665786375318839007507696172410127684266384090510330114107398802350293305120728150160811658623222855620217183077617112981803037169765439891797904017845514882691422961897549003420505705539618219166294766235874307177205390696267409756888260704030724872634782232636958276792714660915277583271080838686329202006722524478392211559816057487861480978359628501212377314860281371359806383579503094223857431130575813831352204166955236975354048811542896270943622773003848305557479215154715991331757317099489065324323055529116986929715560128121789234836460057072965094293930027651799317376368932564388005717452655883796932960213378901548943377738520766963831952511483164054584156656249809650344629467006517805728012419763620011013041232965652644210583639411399831603977235379320977016211276521276749781648069407204640075554183063029018954826172878818691858560159122880657375160115865136870610620338528848276616088040921400212594250387031849308609960099522680999912342343127779607108287348555712215360073183418203784120452139248734797924035658612599673623664543382607034149640231467763568947344192387686607199416671347590905204073479436331654494339278232927451295904036649392128479128899412235801194164729373570699885515413086380818146432106480653357728449741380379562175514325583978894573140204403142121472650463028533725477277042142818344826208538253929470139929524162390588743758832717697358364972201729990250171990025250286364966433578152278200295027960023535489772010650807540213004508477919480553907044474023377694515309069657991875887290162736599109179281892652866325770643953180889013529468649743308187504615486207344579203870512259765966912619768939160470741999904572188816340526503611617965979935361645036098970392968426859946580669002166501610128145354096632689531081311000498414759644630966279973214610839344402633065173516238672907719082276153326474667621695729101216044392233336343918605152178568885714316053087398067936316752675364919111039398925465649340766800719945569820944001681091207240168020087494100378053463881297692278066658887655760598903346003784547610711709773891686739749952368180383880738808761375550532654050817694818577081858119671027508027257611949492181976624454550346635238993601296327145410134063739195396094458065516303572733743046053742184388793138639500184558911736037593602480573280082372349611859811220794717920388344126752448829169196807908527199566101837570975293434393623190417486564214611292395205795189017490486832511021233188710843335210278194955174574242386367002150462377579274688718751451261171134798260630791064920527412329613061891307001277084578907754497336644174745387950472854497026199411134202106157257511870502975630261512880018590239449100476039914975880521232066844125301682382785427116821383406718050808312447106716290927090569357805640590331276165943313144908314416970882525279786553986003340959995943520956408197692787639606983602471280912250260333964033029427615092671684472967377146849866476911032551835380235860773083647212461077759881899910548694967199262153789392822329875910816553877576522233907120819707065593060712606330152993104543421687518815499580443441562046199462751649996667487927674523688276238394551952608356595687861474206621743150928980613887987871738962790268731169467292441280760921237019178981581814709864772345308505648980333068089066991904482977757553709070244305681816720035034229905948473942236177570102421034634932126490472708027967118193994121524272888631289200814303760296711692234700769499981975355274829085477801989204287356056128446372073793497790756082444358279115993869785779867437226087810186570903851457720981889055696426418558889273586078763975416293556091289183420598021185546761508069896727908872647587954216356392344077299678627698584487387674392510353664547222579579156411657215765029517737938912363798666916377570214067244800673981874588590388697627310512208216643068906106711269528024273628556238428995373685492630871922037030488548632423739972308375950416188796181028701083294913076161085041224900400388914421704537696482500221451965877512365441359596228094807221270617220844403268746962289007905867598881744077864966410675433452499693582662940968360970689897541402520811722190179014241904994136985385180353817987990654404072308723218250374233080615124824224027167360245831483875199884878026383266610505773125392190767388013619453996579336033391579053370172011594669626732802171014671473415526728827308166038683327557113071572309571401260382758055128517081028022522737479091432313130071534003054851465680567074036638627498297050087072512246463690655020256372467142575511985380567856390957869074861734930916100509436651703590009305430464994168665892001120892658995407414723552876313400484171584433940204497149381008960812147736674460107356880209764317099053340826394023544266670869260685798606838799555410769699038349744182919862214721617733857596149878394330370022059901144536132083454903605736413086469861133924409617492566854638392053275096735109048167790866061617932129593518987526932430771750160055061381857092181677776722650495285981842517957052646828504309741935334983941097114179591041591013666340870499934843197750088245573844344099298923419188986671406046596359065622522686072057948697781563073462157567232039304934665335640001810068549772991831216557158858344709033271906594071635960109763958939444858714143374237444888832005200226574338368632673324048823105815775376136106930616570507995132056964185231521825986917378402070910172203406336430443134174487911417249908789380524877159204989128733583869541606440294654595556607120701987180263963323931171578655149522610933452351346883826208636170535227476201307186732497147055743917456522462025867384328574610974545696312402248851405588172711828538682156326265609132595181430239552919221390551037582026495386569789417676324651593036826517486690174131006296396279267225672082047862835346263030099459275780558153346333975830045595135605823436449766776481911530941081621477552937397736865351811008781991671690262096520610519072244184481378501204785370043569731022263138832390041964732863435847645844957722627591087967387270039857875787664076968402136055083795747172838428498930592940858899751531425096043626239048256226190497160612084583916607862825089117340005610752529687881102414826127909254095612892467169417335729136646622009747742954555525792642766540609503911113994368388802622081836754086442463334609156468087635611313408409306589406566716236441049699183128995458493119040333542960606675204310552496124108517784643071326974796199007190186218182721612816386587823637511929646342143699490758620904591778552553339075054954866891979186768668752247925496686831536786610674590629737359858692445583673445944988326876921320819167147462154912858458304730578585141266310268322430511616055784151148472499614141693001438625084029999032928655559015764528248233940331012580671707375956648380436151214303202653410741663157775556957754899714859456227970766213753787760564497195225877453434012341846547124484668806871357122604810762643420143545281989803479412778835892228755950646123012947308134018218131701873746566384084793885386782173866767492395908559656123783568166661701269724156025064861150189091107282653911357549369624656850694032988088313948198181355965896588029896279335234507999606228749400519243277457621756033438384491096882685783700457759141924569691815676975022628174944929184085577409333246376536343599584167320507343288591496666520142132727018773053189061345061893681979167260034840169470874232413949834242935222953279388688062037775188259515537266351117874820040450620909003229896931082460246924086250013905604420518286357798017098412685566434002999613887352569428262687067770908786249669089710603096684284770932842892403020380743834964345423256320262996272293455017525902533201114946542384653036333902495338509749299968972377994644009199784683039089315688238520212753917925975596491945349817994774403003402656698889412335629096303432410708413140598116919300499529115002504888718392372157337995806830358902962447677335704301129080174356526691624112292459100367464718109350042675161181270415174016018982567788828837468872692454677810013129772148485939140635714162914359179287433656958376470818397962425239399529092690272359830271845965733064554064392057962088193095109226313566095022288671385824196158150420878438445379964025806925666924142687097215348361292633041142828182938060133737113482543600565432692057887258424444638584162097924422039170362339379676571972264385334023194595365710865815885548380216108163664089847382279683729842407021121871782244464033104885318663890230718862494991088575842046301948053658104078157409941711758280587380874615164144203893608307337741013970570255997156467617854228473870056686429544179812575369232554591785595196300464741276863005453093743072494893265511373639581696600579683034803333491344056251497949711823011579799164125039616877492190118366805188928953143264479417892355519583834103514754223669752031314701907492893009184784509097829304379158029869538575189581173636523938868563594582532322567330590173375000290315747544837961325880213174448038944261625567604337799187804677606852910264633174434589358633815239530149310803482563950548038507022770522455179449347077950829485949117505474243118341924342287737323791648536065522842313135869417924668508188169655918627951202472173445989998984331971763302888012568425980979903229131064596318614723210859433654446152335868512639111364588741892120334188516269983118424063567323536096295496721793326907541947275719773648673039351874199373283178566726121668256697146725616173547959122478858226336551273404672129103484497610994670954067481802799359745825144942685304968436769049523892527027649498316454757326993583368044844985285789304606055585856510135785437320563060155847051443493720097789305447908874148480227415013757127108272447552996097083418510480160867643968773245072508308879802222345017853998085433213993675508631399666411535340079434678351212181678643139171989633560864459190323861873445813199508888782829277685982641399781981625213380839294291409084194512437122931807639199665317150439874085772401854848375011324101903119043434484884619486748343137051756234830577497082334699793644816017084902457535085221965137190321381818168851702536089558387986764193450039333286114177171294834674419973012791946106400976036963091561228826378146163350008800395815133645479169377308106331368512755894171434142377298928864751076926174083297775280249670106364415932684469957233025718155045529654742199023379963692502318799628927475341524233758094657867035436649294589542824005097517613865771183315696817036423954350200423030035844270212921495083301386217467484218900869576149498723748043903805139163598123886639894173237219380694285148964081708744255474986050001489616733879568624621943363946352238168258900459554783074014855979037953246028011529448213952961135029923018662763764832519276706134056369331692154378500062182502689424077904947690595612073140067045155395867874794245394365989662252953780082361592817236179893934965825865220954892631369408173183780210744001215045993636765346242343228884504932988423464228508941159672469645448252408339545510968017116882104454489039808706552438357093133895552122149613464527512199630788831241620324485559609315159411063707005426447282025587528868438680929282313510769321358094534362133898314059186395276999860764225864981731901612361969961065268961103291685060762022973569314364334465225477277800780844785742420779472638629150248019743892527710204509313793534938554675500492989337656151015019313617348878723421715428581443595599044610537670559155317486755418208466543242775804531450625314837225021993383796852549890703158296004340845094052876808143216400230001914976773678232176159209062364599729833333420849867826810967055312078098964350604796774022481675427267119543582901880418139994869688291992095882359956483417770452281353020513204187893597518978673070352580125672508418768471577291133758432374118232848310633589880312736780118265715781621557881153044851114899119847420526238925956692442684498536813300817079446501479792878942836470523155018162585855199026459591072568990045289360511350143096424595689159086664131837146013730159876661395502849561723540967215540197532888907738923238965696199814770055002630507027559242498697676336064409425650957705521084317706247596977510688966184945893063931860625808090657823841323310437426234716123623495389843389477766805108598943267312056813871621718041729404618831620178597084711304792325862750070397814771800490548760549692482599400012621820271729910525478306918503696356339803406680971550493953209238079979414370663711669828540016357897434208871648941611196591020852474377597203200772694750832742960352608388007642698671525860925329103795430703502347256821499134346495978813010001986925099524926062956123062398846835422734105734812780107624634743509047430439859857799290329314480910460570958553566904974130123900715657807111218557877040357489130083315282167825548812381085001118379570450294920324001951426461435640845330572020919299348738928827726452861296034652390582518779220804552544942734241340669845905836275829338013092379011148132560105724551969423805442052717275853831607485920447012358142073969009596601113455980388039248535150029930355009912737924435603801985364646372225831462730543215934384076635402455629772188819692326685656301373662181404113446161274679372563650963732796912305347213559823060639448354281295477594617233938812840330204920721843591834803515844905851859620563691889750062194489992297593163656217120532415828238275491686030240975623352462469246707428644924321550525042838263152149486209483002454118381592766167512032948318073336106216726828967621041930786035280750066762003874659268813340970204971208533896503202409633418571050081010537322254528162859955859864829190486029231726936206849110133500329611217841332088533295170283141464996307024097219015174519554288183197679972584780136962157021017888523665683604843657558841908448323320207280636743345561640549871652020797320900368116999601916965641260741394780135816187238985689153691467414044560078761641606972621130011538403142791650010777348360660465742475679461152616429031857912806453875300569528457501669892076608762352018255831535529823038106098364093041355342183304586002485267372040670202124822474484051170571346683714134798652144412153073661402122064304140409160990713441051895849655820442143129298046498548091805587150744242285348186753741091481485969688996986674581400360291715627739754978689089300070927696041065296573235650320389722430956198549993443911844830622419971433914470576453586810428906745545120744313673763153789220892232436989631866460890091153596397980011239295993506407957052780424830878441423636895446779891038309966884576277178223725169832334600984957075622077205976511690930413725814843690093819900551019924562730087783419207232635313946008359816612536537287954884914629330994330828891900637287138404792363265979076987454652670722390304445009766600994509155781634748500322515852663356510934789502649678226383916020196762729917338056318392638428383253994007695460112360671824390878162210084842923732482074873692161859985367674921016600571447626173594676223566743696016125768741316802183034402887743388081936634146492073676050596839095568422537109656745433664483903082612085817614694782862366016515440172957301952891502346573264004051233197197026272319380054154143047304600077254514861631449730660936027299692716729513476161000919316637126264641132114862890360827049756025919744445298616573026839162020111270170718523899221115080669466640503655251472442071793873715622651331111383892582557393682045050818108580882047622842178384702540998922500902324343961690652763361443706930548962956144844672522061175357443314446085839424319134395079720054230632324789850607067575706946711722359853905171416026206520394751845698993419845241258063520138070491694107212177619367905818748707372430205219359688722700243998832804134141960863420867976700784940316350131237974953302929380205000642832760135842064749948407647528651230923457290915077887942008481257843781732544238866246922724938053081101630585974827519913089472927086153468932336486519975446940149235707480312099444858766220838161757787566387261094061841299357538438127645456419320886739867127460094984933379695443239092303362056950004770486738302715308518487499111048067081283671525206814560710517819281564940499801696152456393530654741897803277619865009223971459351632883615347013570920787535027118177295254785341228639762727346476522365268738151339732820053026380801444138984748158262774849452098508518912601776144402254689468563938851447380048827102701489060302723649392054381478874106194222952663568558687722634691283779079263252752954165337421357582832688560941439649891752291482046881524519889399274497763034076615287518389198003828903204545250032155218410463982182535919517117495830366152499446847504162619560627585688279068634164475687554173456169820586596416466098226744172513962451151574152667068040185839146547392638480328182831019715619126016990317705131085445205493558588180526054760699225358358688804024717860670563915648832343432515240881416768103678517386557405735499639511855307309829477595310221019853619707360522607628618080626217843551437535520822999376677825751785197574518761414194868062503761591014736304999572654024140681519804205764697386005460376341606036082724074485666071062053763208158921370944103877370636109203294003501475744929847893144504908278421980612479027485177474767630566620465503461787384763277217391523183580440411662834483195036521765802407696294762920533592899915915395013271563500130974023198855759993816973068328132192147237744685501825797403701318480464733167933351996238737759832780732994275509407070973788466324884029377377085168841600258793629715714092381391208989110835538981296844253459563899781276279491016449746670025601447693456456124125395910217484171289709555700249319471399383737663903235245395383373429644352400968225684991512048739829867613206786941324720403613271911437417499037627315641064228996418467283129403606659979304208179652488195607826711080160634414752300775586124113493178500422987032189717918509836659407552216727107912150639604231886773863384514228976541445106227936702058706591245815764539800876624382865566297043735477827943921461396767399548253413333653346296212541653859033471286135394435974406923515301028604027179895833326992248416027796482440453182332376399449832439221074796847214834961913185268231152465107162742741886134284857899775010671048760820846581666776668361827617317995430294924039692936784136924561594216377912758306586687212811113318213677764348660043104228137678715446244057287035015053486657441787343512585386386469688590857183973158094720889579789095308606857367568436120043106336119053936221581483414132418016940977834652649722824833469492999319831829466696521497578740426791016795648508886540619835986685042470588735567065616371853368495731539956051145325273402462012762886211199417487039236992620792002095212179037473486326609941364217859194790949980374128975231494937780692404722606892069308131199345485375877069013347757347428626599131253417686045516020476576760427821872094271625594447312352073835980701520939392806460998543597957443724396968915764417782583543023396532689906158602533434857276722609901740288637586482559796725992326078929004196766626292631640331117707950107847683970202317145171897582207943071824498435556897163413614158607554930898279392912901760948337663280750862287713745376191393410754727402690493781847286858793754550801399570276327019882964518820805305388273060279581517906893204424989893340313416856803511496220935117467188132030268682047532021038028357511356415489148976129344194816597886623433362878691577251387916420724746813465224069712478011044420027516273402117756022500088719268446539366465634199491954439573978339023970198887065312158332140230025615426187014342361076286149357330970264756665284599278420336979494474259985973511614392789651533323242279951764344549890795645062423978979807988669244471601411829894684662804187546345971853173859530336642248955294706091313483593860808668785274568147730520321926992103621483588678993835069812199169997054849607013161366126560941479793572721984917596228409532441987453766776329782006630173759511476586358927634771542420113838035907196388529613764745428056663648898378332973194210136961163529234097290896947884055743067299233125798040660554022960875647088552985984017426901046588606386475213186435574686303923443925366599874732587989568514683940607936897416729178123944961996024274345807402479884521070735586457075862080742128877313106789449437674760419301774741202420614572438372519141147521382547848299883249105272278419287178246750998490925200530472926464078960924708127605826616081759156539792090673263442136978197814072322951046874619298335133866448706552630536019760181973882781662654581082300121148882648825710452673161879505460709126953943282323947170360871168598410669177473373572061276113162767509435979788892859863312002546756969173625514534320722068312610291786509595080473761979425035743015189273193999436203797838617507423841701274012731583902471850820865994970694806511155274447284071376020314937529199480085424039857409479683606977711582332717372928160605421482379704490846017272986834047730217489701051728714737394655017639850037029018966733243883561654373861548115680723817901013711331656986915510880713100363407279708145427395901614223988973257003220804091875679657578098174545738008259390306437220982502263323554618038456381259147514289794767440465331707418815260620880378605353905159434901524430813710280516146770470844886525930066942812570693163620151994544784334323303061595274504577942902097352004294288510785914279633658436822959663793448931847142356400377308241203479710116207789595243300488379984197637433492543950075816394090266595719486864847479172474195516919386946640725064902253058961741040783818458476369541233322537887289319703929092307175717325191162631981853702805153561078881243232352615545334634364759482984752543041392019142288517667885576020442602798856921865974890329396912982845844810340507334635606692266875248638706232319880312369245362669864996205391129126894739200861208669842844018194349456887906664032478099850050089855244876820249666470878196326950969871847198538598340317291850504598321868595755002646274780666436927791609008839729332178255888523469799002752527916180324935194772663014241510125921394004159625663133057017546822967029016091203403275455927739852283473495978574084166025510339653382038951829824081265447724376059526203474866920498187263891709983524560582665616401298931181618297278109435544262546591761646438464888735392438241102199776606644149256110074692703035871367849535468293709778310225974061302424031227328753008660980336146693795270875022521465068636048173154166755110534635550814967220426799071541257627223535101324365578618964428195321981964965006086908747094891789690717393211602912318146901646528977945806701778871815912229295440260834726388943564457481613653872232115908133980325321157808143982321864935666702218658898903783748323215731974520790600388221515136664582333201204257022374403939605104932732315182283508517725979716051033772920181960711498908970064352930395868619738974783494920703028702436356905505944654821408024120158509105909473633931493885345932678300843486139977042120900283406893957603072808217073504047651924533998075886496678789747160584316514973616120950340030318558034962647567510832095520339733511270895431709112171402339184074415007535238958768960577494637302162230400758186198872758663227608742308799853801177849748081958464257316938703640585173902359534642567923691062907674110129657173561068143280106964870474380913715147250316656651543733807540971271481276124651448065472466892609444610991679654456505842416368821151334020300496250872691006477116413820971698721351557254364058418240218638835368488344436397531000246235863063573808448824272640735819546701514157017921991271812285613096764659919202911273578504771563089607810326308343464433919629295198185127761833237666453811457818161093685616483145865342622979522508060853285913971577634824759088348868207771215094315038014988774353992131356063567708958373408778134199863925033039920727849246353121309587313412916587349699728636061982467736860558635157630550670222869081014346969544804597257858993691383311151555298343110052878719748007865161025959437444698392722412161942845896233746075388079509252485083220043901171634374819711954255949965502795858752963490063541153567819343905082842492972215605142417838498438773024174824624800930672423919842480583379622215196853987906442186612329616795230643148736496326372766665230096835451470398011021641073651021085542424105716499710412339121711106911762569068413069248014674235449802965120010550459027114288634635373945798524493308910973314250268609614300546308715284251923975332173922993296212275292571644514160047802986218863984571219066529237971231684781040307465359117898708889770195190290076470097209284080567965788179062032848846620749852480208542553899593519793524015906950765103848155583511332459110823663048460199934000759429219535162278120334931154573547953081124932097392224221744068252466742920659311511942713188401858491303104711000275558294987793487104806151102901082814728853885035753687726451464584893701234045279526214231520905331778950969909962721212930019993342303537274176080889087977489955460575146003434062463887874016241141476537607210220277172415041684317877018855061696642215712406430996080855804688320608477666830582021546341760544128361159734332896707058595173584189456395907809064091839978158483444157503585696809218469858198983673061424265785921117884838696952671266721744177289233329652367158406283873701085839765223142160197155645055722966287835546542449060023963484201497768699997609502547335528858240807922592109119886475893560342827173017021502958335892480069512842732752115689779546606630335928474046641093565036351863113970640885506664649753281877963770340378328814589366529465468137154955279618616569966712886207161973344830205430379760503565441218553469937831564530043333844452286069466648168210669374451704276899662761812067337527543523959564252580269110219041813169995726973535447239735405272274736337994114728402547568584528707155517287691363400484668739420668032298381762359604427147271780761715542905841449547930536522757884138417538169221384268829474299004093482356886186889244639536208968703163957802119294492053447771263634351857124814536297114471555352221441860108286436309168315504567740514546474953085529911859682885712815110018373131302901904102293162279132949802574628658372449562288587043631347888693060701853843598275366350059092316598157728789978789471731610121692885185800481530982513292934217321919663849483723342884051571801881916502328171963323174160605192608339820535628196266445126277854118779137711182096541954404255549090525253475573926823854887218683111302342310418657377929219676534686193003425457784170475474926822606918855098689539996196402307719429715559728020450458523336640212473301884958222119408709336941214534982649347958643073075884230079759342481311764450714782366577943315052479525123336733395705921607774770606054022582942785817700759022403476742593194525880748146429657924041728029854510601275802636885484117131832857190108528686167356189778684408785966028449026368497610233335732086560702176980727873546008634383700688743537981658261329348529529676674607958846718293876429822229476018606718914165757229875938141155887326773721856232014723550713187449022195540860634715671960775956186450766350805151651838031926691095723673112031097396663576408824875206257208160643903056316116251650554757958185965150399585139453914076260777102821724647812796070603925776066308523457736563569476581355651417870595184465051710964761801202604625912109869989997733555967195085025308571828114629249729541936029988249010190980552574906612928803330405178044786746838724247723934360349639218883583698062400290442885297398584335354822030003759407328041612252458000045845897537937382278227256612955068530582559550165975679907538671489457599081373926315853464057114618985515076839343032688332263989200676861183232607394206754493076833793635375931655704808569790699951704591711558877233968042441636318164451149231002792702186415376737317245950647522067024291252968143885039608580271311734097038302733099301795562942485107001927222631665835871783606623778769707142021818381893690374787200302575632919505517053933528970673770163425821787362437845765246965514666075154767762201676213702704483518482103015610348484761417667775809060304088489253094939285442002741360617840051320199191068303946182653181321624309875114376798301038734191063897630660200638585142587988647885489499380174131343498037111977049626013892487675835326459483963361676548437813242907321943121513569974456131498036033049325342249066028106086678694082696727274400533099964199374621739172609008559889784231234957088129979176459893753462970641854859012536956560923952319211667418013666402902390024443751186438212083782565530149466037274247962186303065193409763662360857238792424145115133577400945005142876389435730473496408484325929906359537842046246694884401779544083236740526294495079920028665250549625073253419699269770373895973673029443506882604771600891838494206326936021326797131700838642891221725723024693023389069424859523962614927277092597978254533707142824337136982577803835665699101667549437512301962648701095681782938915906161596203918376690792959649385069204582049746856780118655885053836775027184587339909979698046249562312811571602343858116393992550371841236693571777406137029889124187617010118590776103846793635422780235234819665680123492673856626957706841862312317653028295377728572988301541584105169191702625928695593091238197011404481784231844583243690483175554861282313293422561161419849981974270705363025520894915980714942665182712479475001794877635317688982695683769729331048860304590866058150156541425202356724658700418855726984611859296194765765919823057334694699219496574736739523495903686871003432809843243692884635592886667422435107170952236032773006756715514597205267649938411198118563863578592601140088421877624651649712508766473596933750168220486713068283281861440056385899745489690874291339728034373258619256432976641356547058247182719681109562781194913283263509393760671560651201793980628998117905609700963596408374502813699109905980164138028826656132140283733404526096734160959636351172818008431615014776562506690584479348002188835518257985697885878951999172407416382580569733700653080696109057077491890693242132529405890377961076079343025696763105235295811308919785733706179480760763292185875485296085046047146060198052829179332478983095926000372634678400028147945291850066962719379978080347389560872374515586408300866658669135443143203281448369224957064567624053475799886417441879402941943983689708993540430341516595335511057738497425879720438901996098441838924407476371002702347026109319198195769951875996122956650171713742052676919010890704035283561045442376742402081911810186058553657430220648549826279926708589692895531560753305136989191697631661399351316030251099017379238838496101200472056758756622113324294179946873037584846202531731850088344014059281722067975002039096201601553261845113408008451538293860302977432888621423234504868492982040585150307815441755798564383176917239480857202087146547870753938408059510626791106993513356282179449407877603717223179770692160556883702781562060726476838521097553740410893294527574520562881208960610745522641379205130269437253679899548274125793402480433972157139577635602665005036366896333185931977445301614657096765245350466432568879259493591288361725973345390409309347937091047165813081331931266718160527821326420335093199318697299633796035675600546991360467649715325321607854700313673603575951409351152657309558826321634161936907260860810757656288211096948148899774498159021034687038425064415085080144440283069635657895332338250165017738550999871891741347982915966527641957308355854779426522753954496056876191863587874028759715561043898559004231327211902090114600173848009727567042669449019173597626427284266821701101377463908886669504669279664708259758861386272962561316284242697734478351049188308778269287347682230992113764156524580437562561479646089269534392138935731969215230993220242364903782082861820387233385458959108256465495440417097230304510714686174178840177973637764017311844187130743341459991780624156858276066182368339241924231113768196331009107997570693222906861346227752595463326075837435306995440714935655270467458528846636450840376330065531405965956553030934635741028520371733471237192433734411215747105548511027048286258161703008185551408010618955114091906270850086486612801403731920413543085288865724445167288253489825709510807916614920346631138244164583280386312531508707494953629938310206703092186490545066003702349602607810469507151802724785605915592944747527359745125490079221224570048175738632166012807168806074992389312213107929237872769351919477921481136928758774526777134216576735388045423421192726925704767712039252139249279007966923435099437965381035553918203187018626261910346561030307722544479937868977017497123894793380479624188451240977021946305939793205696131995183008164140249066550395863037522808890691901774269206272829479631909939090242463741438415263272567608924161548566581205557698365994532847829419440085919626394034913870498195698538377062754621903308942380834819903356538212460404981656448826170208715143412887104609264084113674936543894754722712954541409033867412550402605683402412633760800869441813753357797770551671485169495094755631268531370313321621810314416810373306567030022499830490456071225981244556565491645181772656760884585269776619284011793177151223297543234387829213223195081833490512033843008616661198958842349420099054971471328652006223186773745000174699901321891030529299131774880347211571546108523879324909885746966733853632238387098465386918271505189794301040290879415133439628257152585673341996329672228221042890694383528774760014973245495375104946553497177095107829147878245967130568057579707302958584664614174986746358350363717965160744352855585945709581460402890049962171126218316357330663577183396336468849790450882222756271541043718406987325961861041412700973644628352385595169938372079983697473514688875555034025957517649493810296731857120181704623126560530525440669664698823335924146243731123002754450882481241358451070125819618968972146378822111222649638203079753132248350631330971620345622368992440826965264333736898206346514690256702728918542010033656112821249076836495574487658430205390120284487542778544753218022720582521260237753427261763897256853919108738701596741714344264147541698086553807940881680313148073932005357136019982946516962137307172486923777929943691921723856689320513436764408215055585192241423370401436557128334181180795687514578405226461393070219863617615244084329088911564629020591921544736340153235137635833775431736012597421384938866049438862232696872503552355607522834153085902740612957032800285014605370695976145208595059168138431024727218305893364952783690843047190182218140783697086420518541033930238401594373584679380838911542141217242314838851540603433835077118030275607029954427795450999802156140056528993890142016648540844037558261732359063910605361585626567817374402191352535265924933077418858470674115857584938661149821043861626570206449408619999859094658779201085731062503277575760488150380942508398340883789722085535043409161479668656642681254278276253868342847576182273951345113000739044848033990464553604057410051663339067066494412503475358552020105747417455743088717232507214214218343407153202000336073020700900294348815883088869674543629087155304875135994928910894757963977587103172899289434672127789753459025300006474859869765544397272220914562310440263174732604276280724334531118938941891768424873036253606273652503322855436629198523378753833818437039452890696141683080349375627029326203017613273218653077132997367260142138201954079971339155808648877707970985879087574776511062461323344536619588234675603434438316140023830655499714889766297317741019623383267153817954066896033055007165126808715984574830634024829617540510567035513844982348345667289305697323000770995143344337746313243921544166990011049418410901542815377784294440489070350011545287161801930237917630661771641795892665416974297739006462592592421238217741411253886451199831022285962003892206912400625872348324355344033798968674912627792901411593886793795390519746497001075677287319981130203793307255700994884012183551623167624202642226057678400019934482719499766156667704218561319627189895404392640534502733278832216983139449186745069883263093002312999215795268427090434881770515970584160847060111041624040755442587651779448537541506244652389573219173504948367148909908018089025887891608581972212303319075572368266252361915265070424024956649443894610808600269149594521419687925732618717334789867410083402571304698135880670141054286048399064709623039742431335858327337060389354720646733889718509929051763032966538938806568716338118972165870457151659498819752021000675092461470236716669240174092058670495720293842682367437901603074105235737135850815994322297033587254480462686298063897287523122857511833108371965443456744700859177088403584707410536105309304018687388375661951836094739089838089152611334648202357491579869689246492472798302589960438779247057344842829189049379290141046711011660436757606165173893890513183914840897883314864718926471757584304337539243846986333377453907713699130515336047385206600434938588899750321383358447635577703727069319592914549227706360085669345376863628450533427761862597393997341046176214805581727297021108262065686415668842109651431759072221262880207479855135799353017727870793463156267108231206637275892273914321612018830834938913869275327011657468364165840162061722293068746649032452405378889093007496070996390650318761370732212843514617549138558854557852466308018150600995261218891438030921713305182859788465535656220300069262736225456832528134177776584535613275661722439202860768527710719197795971615176980088955324850220973033889751092578657517078253320144121113577719896375435442871940373286965574541803718814240121391426053202973584884557533021732036432815779079839970580129962937647119185424366531180846309235274100530405765347858054793626240036283659272300839082591977062783643379407492899255277185480060926817958433204821562514727578840795406290994069685842342323884402837853268644116198775509066066604958196608025367550030733683010940264164605735574676489156968086909508674669204665163744582575891629322416513912677097783249884031982767595880641071268111373327602780385791711627552581215329089263976181009532257102229426795355838862963614308833060349814674970357794678915332449409703055504582097543144715488538119857885978264468891351263176116660621528855929266655687995025656001300299482116375396120231571266267644247634594309160222693158913794561445039013234075415279049617509205781108506698920866283331460883679248093282220541634271953879230223414181085904911041307307108082857198200635435553259316947504863471404742862886490330602957760063081899200676304788058788030103184497172359495126610301421648625310616206320475872801409595527253013853733234175279784758457873612385699434626693588871936371999225440870124605066166469025928313213171976494155776023300356914260249330076265210383707487723505767244471602503616119654350696161489360617793753391307166056478379581509112605227370033923652384314832134964809118223921192468669486786066471687224928958376504555617784408775359936319929988110494274249103970232687607248363724025084830681622302492710119864139789930736435620990447833231082831509860394689149013529534709674976303671490626262587089715387672695108418785328603967661477686552449545279180994195531303567669005508129835006833329267764107083290393523331534158635962874862734936582210120657621793266631186944271442187087191890696709374411910972086149140610908134208968322445355917064109669314252766211185010497853537343012043994384057803255638089995583404172900961205752945815664379981854194627167108496951503518582641003350741132237358310479795766481654161457711991628496727536456616322227544614495728217014345339627536373482394969028658836649401332514511819024474536391358062637624658620771382122102145547239916585151613409723858169202202095976767188717907672225730210916605390155189841363196008474799182409152345829493512721374499046254579523118512173355309369251047915052357648019032357023625598645142448620152979716370875695297495841101527278448625275337663249181512114707289193872578605322958434096441897593296656582129230453421499681250866271248087998880421274563409786958424906652914575333082771849332953049104783892853610709818561777451018373100068758826566209163738471571638684504419757886096057325597235440111570568467744212033668514609474250847080657739607957752245211938170136070907289971887802618263807672374189530624593291779116402646500171472463988832126034387041498673555205159174247763442000693128314091619559681231040560979266113579650782823658051263130045043943141355989611166524411403555977374000796866866906340560301436756970474637287622938359723702019250237823916865982365607200426584734820605307913560700584636813787800021315928844944061951262905113807701059771763017372691568938429582743080689353928937725633306163757545877253638641906564870995673810913453267461829968700632780757611398412523771203627559095407724622154388065858279957519141396641724168670832229219679194212237365569241256500370826410945300771630493994489167223473871118139300500702071915046988996341473494501683000500389499534006163565703646836276320051712609604556200998889629379383856182622007227560376485085839165661572738917081207227034840816056273668951629410921693832878333275528457816178758212256895415407156439113520964231789698161639579716180110815880680148742812258312177709160180351253826365237054756391914048045182778847009788468147753480344460928094696794044432879941135690329251262860063243771225027409756394013220598021264153294503648202347011867120360437448199942076876185092243270950879913549151560986779407756671897845304402100504450485791518797679805989865793886683335873452909424114524679948648438573753455391228161943051210941224393960756343218876142605113856132946754965409809489614050821810728764432983980994040059462277088586825460732809296173448919041189337279657459819744006922701494132370271946628716468894475244530453200771810527284869826652022786047959458963766599978635642065338999010589069498363599847238220115593712170138055527645297461786987095954111769919841447392778600980733477868987497311011685570144097542830253667850440682603535225464369177432120219888052240977027852665211328579831285914202216429514183183429859242277172111992257422030914344406625364091140658558883131344839088738960017629686525558666582939891958590155894574693311878351147902223661270727492086076291227331895804112303973681578896740767599734200977129578989405586717826603029737080542649728603774159500812012647276016255753311192853605367277937721058713640795112450991826155073950383419826560211225184197654184420481798431860932968479578666768155317645418811711260936411478393506226548999514728137456433704633597409283122629712977730681417890402958451437264252038056115249641534435631821375462202725774678041120164705281081151340360727322709057554782680164368431409728692666516967653623289237419525435348331336899856771799015733031576115801734717089963442181891349870487249511796302835978618997660440134991240901742373846915230613152539881913641791603272081095214437759713340880739768979829261748114472691616960968444847235813436048033119416641307662664750156267942560108872225249342165769374840133409082594298164324784099662197826266974379159083965458091343975779472193709331101467106811153115658930633041420560445656683119415294061790294878532697664256593558890327797506912529792600867253042019646048223842224267137263277886761639274345184096508043924355906064554537891689369355125176193491181467785374365308915772826951199199568226257252324797327068009460985462867201137985712022038719902589651562514953869674563087690632854084656273944251346027806823635811603133114665538403940142984163332302060337510029001505236437994021349693376692280938358583281635237391802779377464383888019221504981622807858714845713451275048926665752535701558721103608208294966285167745645483961825469620055562330046690277276542820595667398593120558960161319755311469051753430012457037220998356182547317495614659436116902509757752458490583703088788686422906543200586510012978788627412850137636662876270430976900903991052948849778513534624588590191478360358517803489070605913466813199705923650553102166709050646934347056629950979805723677569878212380053091488332934965698851425753358635867719096430157734918404000561316839616735786579279660658784659660213994834952117606039692963467650139083897071423196265381667068741836328163953994544368358791997961429991077070703301574914384921957123469639047159087786582220142494060317266053040789328079349914438530102814603753859633151065305856047786303815783294282034800644686350240950639007979165214676022773910235802538635981107254142667033115380112318671731833999530358676534913098363084351960155605904069001088069123702463039882041964410564070695824958551507791689625360835276762332067328974787546200612385426552161056643645356288825261063679282609804782559435035013479758735553063310808152463988569245391627663416740136422981909342480148218729361432413931195073300930252035347551946386068672019648022418445410146969402740253525263983801354428947278367334402848653600374688990851357298735339102301232941027446670164580244567403774958636872317398384002426598454548238260714834732118594116012466078055694900651731760998272798557226540342212154512032038086060219470206586784719042578498316259745023358230854531126867218493747268680395930552874163051638802015097572551330580183578286475958967323650285137710786256566868491648457513021099589492374877749081171686193665136700579275582898741872268203937099241903069872957975820787158427023443745880639661708982367576950828284473233291109325631781166132416390037115140863931649128108412869542526717931984888635013260403829080740854058945797729757099660646761826441952322767417998031917455607843443610156075658446139073214416578651214511068279097878500095050193057626036382267856049486610191791581884388702490164365028113324143890514365998087722752242542851038687294746540388593288950789194108804568486760629305318642937439385802231018830805231069442750764669240942564966211671992872295427673009181363331902628265257942020470800646042595300760916534755824607964413086777561598456127070782534972964946345626065379996316852430052404056538127320086315292908333114016343854011380051154470651274681546081902554563350974654968624282542416165013799928291460540123671786506728975018842421022000601672878645475540977274228242600263039148513930601937369094888224719540114934048386546459945536541678283884308050529622620389712376628446878265288689229466752981287154996463181482605483777934248332766082583199002589096373993850209185075278825265148550782337578414785428805033220826483596931628767429272174277975911334532285948530425320560054615990115051279744991075458451476272463375575408538900445293388576001600279866570054295455508226720999995499596984480066948893809912089244343488479747077258647471782033660855783820104432016469671637876813891676290418982542694019653656794269628488907857982440852621881473462635474440879450541183946234414870438237474865714819261220218408670379841080494973437895600760189028708690548862056952781533685345223678361314129901999411245979463112134913456452224859207243317264980582720949760828589034344224383810966508753572925690197875987830088807597950481169003149361489722963500859875888736905361219245736068799015930979842722982647147965739172944515762728242215508220116509293405357414057161615702969778068430180548359785816276844692327009180243372342506521558855216572285742487073809176995632128023826142615198852816342733336321523195579994481054513024538459122446904971697362565791649991904912352934394696231000110763485182631099941336222556781882717968437924936787843989909393689943272813521178439985807185230368103707607747524906952679164032821549516343130136769191174136081315451158372874849810389008342416676181207782575115151706393350904619176034539218974210783315980929123060753538143611401255344136367326205976372878273197154686010320530455775290402156331695295855623170092338990796096730541734824871278320139852795344428319151178094779061415814462277037226078537257006789399649539936897528556912151820432282025026256311240525696518071714172869270030777605885678095847907593949761557280638959948501286868513559963649138730400791311671869124094112862496338154197838252097900451659610250840076384652447706527688664743076629478473805115840027171922757252713071290505838996115110607975726737078370986284633745059207099841806073773470440279991367856109614007607561598878605744987607801419471438744932166596528828274067636953668067913656005298293087580800020515384459285411085999929465300426971393155392187796866910647815714889478193828249884073733714841215769006284340872327161430764591848373310572369512411685820783561465895750349289498773165131266696472552132889211819276914042154031058604856480702416439019599000789136447823742499858439635317301677792458561739201570975598110768410617283598131659176571684288700562874189988640932118042130164241886597736738458399490500340051289801602755792398464145324951119209990181568086635828900332596202668441594022844688636866705565594028688733720507791731388724826234204116910976360100357805680916622134109675868905793119754381493648372595643035566251538481878687904335616284721081248447893861025553068780825227973023581232754602152864361593088120988436601418667575512332221708920134996009800520459836404939642873631701480330184498979039866247333828255778056636242934450440903296787233869258911238145850320459730951269238942225296855264225444886277929819781271246854431221234537232307543054283821339090436253607655839283141547017110499129167098205374511604105703693877981510057231243908097829783548581667908532685501492249582418500129117610321001804546078074390658983756128044882243162021157707107918507955561899666019956067520939471087507175454166863555442724274300735518735062584896709566303526813160944381261204466857013855957766498634996799657333392151284508839498312041553377749396408062912751184294536611384613848005279544312420512365125061823204838308788937780087705664837684054406312697215967362157043175758864465572121720233253735562115876553607345921167858240214565905386672227410863332507581145305631720338203418476271525473595708092617834816723974756527498403253847167676329207091380968053226978248969158442493785927895365143164618110015710214133262681250370887246602828947338939567823647008901103013963769954553400527336370745520726266093377943045241300566661138141359293688086140983682640876779425254940826365995452242413704432978601308148593248428449227927786881865838206652516095756562721792955035249390793827500964268192340417947895630177307709049806416997052620328900809661398838860856302712094062499070765272324720998441590242425582959957969800528768623968237642332230575851093364869307363765528807953033523794421366150171642693206191233590132596712289346588457225096137817662149333441799315718308556423590688686223909019206984233886368462123540952750509776811637582178489869832256760519967101389359930987939938315302229452427248398743690965406569998596755749488449355522022478261509449751235863828276359022204083341170246122249577172763015883508049639222007737157039360865859447538610238757963331079820637912312294115772636937853441788911824885324243326098629165711874887740743121687378367773819327434291125321413622253970678580725268278647726480864852438082694512474434663112176919918075719393178069741746107923889399676753333991873429590357565947856023613010350079845490950771774449957653238926189767215249150676534222591942186615505959538480352334974163188162223239495867143603825799303827750579987513241269960702811515754534242093617787793336015240412097250086587716173956400810431412034910700278591315875768488341859625192491631534316419552156070556647485825652078934250849633511095908367834692978231845905344624483339574005400806271107910917101529070691032676190802809670970619690505769787386412033872937382335857761145498703294846460296558958523029792444993158119204269083248089849125471783109223652455063228230614314617372867024123503820385089499316378059244587942794895953587452156521443713817366514703772561483253520324781052655799790844394566250930357858372851460707193738169593280823041322290096745279328645699652720680287549826788856369987445482375208855144864500803086001676477859444022137091199619723932777864700225231136608002882463652186143108429953166862667832427349498404184592432053670555923129206286383535031258966581416302774523656979083620796585134009155398875504101596042983644120288279396238477503949383180593937148576459747889393065133005571548379863973884834600711549693245706351727969572179932252241696595617188655033296987396206158961134453763751561190337533793648408962624827648098489181503816057555502819200835133004784369427011505287791893528211210831212859279380699152474146580235377306926611737349819163421149470400142392241109825302809056823051528043609060159432450926078954881247739862983361895808151752318839446965140642259214362841885145587670050165413336014910946051209779503526209619114350478380647347799627186471194157981275500262878544938492090909947593136838309581384176555147130414372925617959897590894865802670070129829053254342793803396688848277250724888573702952498963938711814594312063263529806712647869283935201368543611736128993106925637349700011029075467935834644503726525402228306143619291884399626385953372199300531862405090707378818223721353430972046664604365461113058634613947960454040567459085970063329752093381746679353800596227226994683496839346355381428596319460783649715196275602027723929365507929950184147504821489086034828671780270062195091153474591778143026560972537354491153759445551569637859996600593594160083559662308271599336708609800111878418737257609773552062870068773361780753523637238370149154658249220012712419316739083861106019279168297984708284170340863311459065737264695683005118885758981784919588282347874078124081865456541158724384210360983579835363200203935920357873910483901833025127129214426263435069211992992498875243305689928588020306483260726489842309777620593932205871623234237992709730981084522695559310152655066425127120318556715652498006284948565538323604653332780131573705211626598231086877715453676889466380440805932049795621555674150564860532524979265089515401860752819194267873673643049102965912643195316113896671074310774273676938061084280776472660774545866797988028199289637172326744279450699666613411801171895414397249173115212745931543812177295570879673217480077609860739385606995821622944613381991640921457985440462140402424392214016830588963447714871747455147764078152794057635522588871652057866889180812515534405859090724945690995790068063918967553079867696787949188584917638411719572909774893340592168698507935198869677388727846425911408460611313258529790616812474224432699852654412259219310182555614714805764300200407409647914129107233172796823390622967393097086654525301749419385513309090535826625202630655369697113212047201094109999837468503806411446750718661930559140222192841507477727561558672821697887507714118445060205286808354550349814832583817860136329514415138571283957077586521223926849537696572138188721252059371713592820865516890596815582410350120206784192886621381750329008408081605200752688546357662747317377754102409246579406305317463441714389991940820763358347029834357764424212057627919257680756332680664794715886725951829522048465090752332376185850236336897142065434671415037578105174653715961445230312211378429242406886212432749845686958291479327873126441265772721560604044130626960291858572383380818513406683826842458835663183223960959854542884360053561619396555119614653218721090632875136873532854187213577242254979901946078639662993715349545879631920673811219989274752062779921366739048337513831282494745343729213877255054118819589258042985208847765442737671152552811846927788144020505253860865481080388733379965342039734222413249425223939084689368087849252750495746690308650721270409417840924601744525333594778221348496038580053662549457322485379281681175722013167466990847059858784972781760330528262426424309777646813962249872860964262527242385729400372364453104676010771876597599634144876099698441879823623842389976947679946679254903882778496636202832279867991100532235116211907688523361133708403442505222445015831794451897869381826843472470111045492078164644579214029845935776177925765329093189842100114389480384250783445193872990492030825688175794465594642818085880603826027703581623704351324595683909759636093472987692170853261866772081856274127406051762441769144520783477004095766861868056254026020720139424589943568831949501273111705231711462817686108914363614191894603255939745821744382052891176170285778388204062212218242997725331325772854906735967174206014657918306176255802185432989953262452515418721916983637139453252631270212869978902629241552878315817562323515766716037070088518209714821512764299035317636487245729610013360125587182429335222472787168222589428860926017315701621001754947276269457913007967130578820196954626202671723340402848988619434462733849999294927759450753673670829311277415695904886986674274569480349819170161212308522127095002553248762006618756054913730752440769483117773363928157085134958717677621524338848730502799863922280395784279512661563565072928065482357908011678730266835845118973472655979487765957190769976385494174794128678937305722691704473949900093428396401029800248988699823380206292607206199783875390771660919863092828974432574291606479766297461529049906799838460200033781032014993188191003717192715325186530612499784931355657178468021465315522416254485145685244465941800120171387602368039779001304689426802015760441180848933347212156197075353329030613767384816697618814539136554205925510942347457708042693073899090495160228318529915781820257996688553201614464676987105101279854349075145125543644733983347821727268579341524539455498388083813532144576575235255184740088511959260950947804624504370084228538707034715360509807718223840823551672481930075100570403488565204707120240062213574665603658359446219008115842572520630637383497872479218136972306854181483000617699717016845469700148256184649069854657775084863643894319901380029588111044470649098399685439250132796513027994589015747335122615679525210174215904468729018069360718442678691789589801340267077924317515576553729016689871259211582118058409054474029835348396234925023213437251656489665946994477035429009680375349265394052280951338059064092990071477091091515813860756017756744713193481296897094782648705931735021086325408393482289159119285295472126593508747197666470593751280151685984889300651256824674528935946860826474430867602789376177377185869030985881056849486359846456510407192040567101231778065564332847307098291863143375182938096494737204642882808913311553391616896751408129265730860255918487971904955419822008011899827966421336626968809244688778318312419558853614965675186263931444874511501503404705349490357321385080181638557788696518456402384564808901472848468673938427168831319401896308428898464552067139263623312150157444877525321345355609215718275826701818681342749979830659118556035311023266606352854176001853524774064671266719757626801690381095820581999173611564272531927241847838370626827861474142739937946893977736510689142886485067747456281891784913974263627346930427932583354677272952350929317009296207954789070559180517549608934520192600149595667265341422317258036820874135669493909082818495334879112719926404546683368094571067313812480089069764115639817488487995806247220675888765688523251508996203050388119989138569699643593035272933416501452951997113129810922736764325620650195463191477206395841878176855609358727084129968054737719379294894133163751075752805875628923015324398459890590945061722466167396671926025942243232719821362348670231792815016186425797827741966554512340744126333416334551320180036080382961661716086054970726109843394135066680725622810429079015667783639721285104675377533205345687768424134734794261921721959230727908008398403851454125661821603795374442045007981460583229005697219925830740112330722449216710133039298053190675271518030473318417612233710171684065055871421534115653311387264109758112950427049823220431927884187478205573889980705917669639682488259630165401467809415424925456362019944897599946642265003923876182638780815848551119701442262371232088891074584681858734245985485633185866798763611278821646029313916781631011868478239603097622104064584652177360742709537360548473296463412879574255324555565277594122774519046283064535372798503267596947415255564145244558547664044544362317334021727508395692689660630356058583961565119411477411609211953596470981113474517283718986493270630622523446345943911030135452095728579761643891588575038813823784747157230754706678434590062237816597679836857714724257781358336280347252060332952364471698572364872299072737218027265385481808713659582192117900714003144774436212637008493171227815972522363204068286279804464026228506281708271708957163886026248968602806317819882808018845400987527072346505098019272300188400272142392058657448624029089688012092575847952822460777031512621891278497156812790162313321904569303141113439251245934809822411385457479547625037830638887744665086861580688673108270809913465474325582829845693249231356534941039761836014026911288723844038074553930444654788191944982138393982861053242994310971045458159944148958092859929943951484268265363302633962678655092514451474621725245204138957203940256247061171554069617260463779501593141617454047823238802873850263331183282007882152919631187710755819355254463538823912069612873311869715281748078514107835734009700632773039970037878746188975968745518621784998474884405122658275551498394470271092976516356284799916781847004767788806694074522134254178591100287362541912420738035209410685715023870330120169488107207161653744465610937560754322081227584465141005257717133617538945937273523452374078291449302883400082401742938789035187611853400128591254177077650887644210094014262279381902013791323342989727285566935356076269269670798530551523377161713615426495301582142080258580718703451762778842990480073890442767211829311157575841781563944709459120546038866772955885625737103380861079077988275069891935181511899611550349626162169292436093007370795314923227174094044614071019157745476323403241821373438113180868598761112463674304568813542490019372621167733401243380578981092360436407964317759082568508710343842292035118286632086477326886787348023674010204995572816399679454894192278530265747930563131540811450382158191413710600586557630773791766853049496165194906719581728446257173004483915298435427234896545518674172842990321929572634504562438643447290898170661215368317541645573646442320777582832398286346054783665827515793654629387783756674200730109042041610564697876457364199651998202069321708319435862019357916222955527240134027535511138300140201976856455169454260284453840813170202252711414987559661759098346162866954877212736550151148446621587189175071280238575424395635304210631325740520049376809034140424869347971010624397347028654108590132787831862940179736643014505341914128024429024460023814463816601177532785034620608121938981487437541334161399194928396216147348944563085793505401078195382322957878859371959109472830979259048373252635779081899032458041130589361400368223596155220350837780679131659028144191807666361861937823602803232644961067392720937285402291553759049308236592089066977393333752697186680241068718250634380051784926168974216724458269063053389960357570733023467210940415211517776785137767383632753956591674123966758901201638266135627257912426793474223295145052249095273976381431284181246573488983796794505018926843303172315956596915519177846740820826841006137928625755862494362323797971483100991561730448461985290355808885764469358385080379548968932323971998424209352369395037711527875235548466945820579515063169671662400457122928456388410147413515734754088673669167611742472347831846297360002878907745117304292982969943267187231081436310490627830934137686564151299169248114228365880318654664503823230417967301265024432465632697617848466820269034919947328881447102947353392917562013708402844939680566081060308767489121471313992553253514041939144885511968420074355979213095765492220011855684206612800942413354470923849877031305021126307322194300418035832065895986847905182499988578975824761519106002226294838593583032385515711394308377792339126600080546099951295486228466991848446708286535085212988173546324143990618376439941211788912703235369892365715279600968849162240037289821030162016492495843213981152810596571610540174234302967797386926198423813524100801019730793345386783726400440932478552840573528047589858245424948759658449553668581265383514994515488952610666057086460521838882472702212924401947351808158628166943979362931849927998636818803267547018240726100483953984280236967111446150409354084483840641075489382435228481511818975173269042113167725506827066920801804815278383479234365850829656639642838761594108561391522641093234121515781571409257681539110831111584809356759072853217987234117248101936338420805693137860381099454199081239667488781397499076093035769289256463684331281270786097794004858502696117320816286208776834622211565424800514494936027053155067266283745734524741388700621158345454426712823275214850468255628101692607844215337401720014876272379305427625666531354820582476359929077997666380038358592226929091459180037224113297019714142837413532937954527942590245931670208871589318966387325404973025991825471898960072274518342419551785608973901739716668678409733058070156871473381188596830640509554160433338009577475408527331872607302321954618377782462917353056412503847348239867944594851932324162826550012240920771080646227351018497777339275299539599336477182059801908355857529423100947553508260832198060973849940421230032049090178156263677356504451357873246126816072272792487403527637856751375319799276437639504704356710145792282104944864600940063482040571202042650482478101492826319869153350829505963180930871859691492823939860083948304461930143422400719340486297785595791230014387941501873964293903752485068225565758402468518635930016286812412478938674159766472888569350016453051476083219334671437701662301214643491582326309257340480022840024418843157998732697715557919193187780113630453256237242945535292334825141898638312353582780792803346916651161946221913878978249272803901362324966783413737979762394148621520346446071738088632085055935077334898388028896897637135040011536381158584592676533530987550123009610817144884710811355676941147725953753223250331276815293160309005652633906846258938969229350164842141022650369470747645338309483538344012516356748571989579674735643411190092809131248854154598488264892180598458156813188077225617815954275009669464973588059093102600516589637250853975160587853587928313288943532337381540287600473377105922699973904203362601273969298156291754049632953677557889613718963588667835914864216756153464647857273644517052377322495843958557954319549693785151202249323570448804553394782902429542812993637624375316480397980564854929260109228445921950682308508816788140849086560180631275776567042816600110870300197310641824694011637951871910772873706882292735897716374923135074461861364030349261592170390394576241971437283717425225299024637670811826133237365551688100030942277243577147577046589217296053364584279591204849098168067485296793448040126614957126352460532108027432647242766441026379443966129906835545924467135424923485753127544032294619314878853304977023879610622998159937074107703041287774480290298193435827971336085137254253026806860566139376026347607697560481299737708905764929288585330619248558882113346831050784354927224336417866645547726921896096912826089263613279830014146724169906305843901498567506111102771840338236903654603574909218801516104904652749530012265484435405997644747734547699289947049455741680688996315507859854135471228777322010572875808272199178324839440591935188749115265545424646406412548680382779658570745941769198564172831954530325815539148275462264580379898230360756989454748509731215921092501343704747828838740916631601985843257046897547968695997295668306529532402614617995238241857206041050455006326376265624474593762681265054877726502025268418361502840572092695874175125071428262942316430767165444820739915258107487149022533057925977733389174229307171192438133884012610985063525603102317894128541025409029853081510440060147759029180177157750690407414800481199317827396206432483320714233589514555210578550745276162579586978918075755004914217163824803441418261562967440117288686320098570966839532581118789300702576682531186789479239325668585741965476280064146926233334391062034001690778314230143785565549178333458265233943088605471386752894800892364738341716683404449218473586601831312433889477162502148979489877413340631095073332827253586220328393076328834258181861305745966898447742891357223021240125227932772596601362246729497314367168524294655183394969208332318147170028639966818123665048711745180445604710033392676319013368011904052765043384035484879375793049072034593835336435125599935430742279550810652726559929753377914602145346682416142091984911617177342570320953794022010811238505530414212448390866074479601066777420459903578190717952690626675302820308581519876142254200347511561201260187209061275409044359694846882982157672778102381989602966308027690709927038628642949675018187753489892385769467674516612636775510950493408148402417830708810923423472181461631434545473397554775225134384923608079935191526747369197292874202587583154186591625776820437601406333369345360516520521759357624569694968923651709097898742454690403999655746635016816184337785957184888894743396716727112051252024605078163517518561413557182954590674598577775252138898680089373966396775130991185170407962484546080045768808144770728770165305234363939067033961542053407714715639380395258199230143563486083678568902413535908133013113497473919938044341634339869913379575712958332283886531819644353459453490439344391340870908587592135891759944679469692147151345058027661416786342477035126907553332177487157664409638117956464523660176144737683692123335714703618996400305931387927251876900170696830854588299427704151114082009750628184407463755815190786242921330089978157814839554029054565047004568915990820596065594901803914637624983124661799518575465826400068130379925670620087187041191686037378467732842332911366549540001838802783336815028640132760658480449714148588945649485078350885121265394160534656398839794032538207457726372720937074188785512514424464842507080786680570500230971853872042827224884749127038401581453586215081766711560719140260404866101969505669726599309505284424444413211260082431008951745709419681331315534306534571799291398898605531008515296017328643423978786287664805888572013743242545549362007175673667998660790193592549314350217069844977403655181302560343273555833404805470067452054406621354710215407783380997312317637881359932044655896570432921433986839413018022161976445653670608596245985365052021790299644323766802583017032026151794595158585919600907316642331888842394986331066578618765862136038072578449102571449280573834570681741001512463119351436460976971989726911073253523416352355150513096482192357677307475213208290118879838938022518972045888763666545982029530978768683533769535887557901530382972538477040297621603154056105141149267325658741492462213409815200688620412314107578744385653777895821558246654572546467041776496081691431468499421609443848836471333015651477455524171950199738677005694577713597718022026743742087243532632200953226726349500378844218208692991105287978905574511629492615722603208299283061017535779077035036676450248135550179990273229277880852835728350912358303353322200795869676759708473037458838900179048426309698424314545139530707343461797487333999147918059829190964321806977156041190428600046393374148132737664168531267610008845125437570217557753375385332971116791280552736760260052998469536450585697598385788098927297481447220494891576329168198790336610377300014262619215612823681834020085576405915093667598781074197303120185144363031883350542727704934766261416667982751517800902207825435419002887532454422657268413568649520715143788272544200195184078347375255313622943112949865643704500212822236533218605369293719235210392107080780519308814012598910389995898247886304719316330223982903697693254534879545286544800585101283385810337284923376840498812040189277790079821788612822534679723518307943240594287125700364023206178486383898202137423892064156215117959318323256156599599581318277660316003349116273590825726462273480339028983395236337269721041352695889468152355285881714964992836571088071638917277485102534286996775062093549709348935702193155736005835138171921433172887518390787796812447600413738115788188256989434732774442980662680048407599657065025270248911946666823114225648359832817764587933912978254074684455042724974265083571566236008636756809105577804570493112390347054824475225174860986030226925066063398873687080873712910607423177702751594739156756527071728090644948408924244607949594731615485286886939111683186466427012547854620510125624662440285039939930615194663063640736053005552945369879594178644766982088775610039048256737338767592219007418213754663501466777230777593182603207283609380355032676068994088556281581162356125052049536220016195812201673892452335233890201818260609527441377388387845744445156384397604861908758319134650018134281320251897855443983500309800802056336728966177990502769357791865584131114099288623417521816714798985923354571818358935885719591661650288180869215474057668330060295537510525804780686929721158068797781537412564670759778505523213180424275692819906774398288472085361814619597311452372991922380747860863907310299606005020554463199954250675612709051438902421143231327397087182580543648437436318685630845109346836833403294441685160704066131401913654234744825195321253069084639293848396797663741011074709942476889945452895601663534505144376300699768850218408181009557523879653270752235737482423632620526034549965198488552963235002597579863916347123231448672690980055421387278304364470975769365621566431921716194079464813063799169894523931019697372919694431668480795444165661124776896581351058447498447681025077634135724192398269461130997658182338400652330992278576594726352157558510527879944905610734691314572315558487518140077653851770529554573581031502714401724343785293453486667279757928297995011399232653206838021433220991539559809771837752742009049693674561784371287520581504585222618019228557919845713013687244425536148100836841965816245917037619310034305710036420099225803076471204867070772136148794979871750152827021077027825224027563950486421546948462277388006238705494119333468314440270424303208042569256835226691902557159545852628706986296080811342519752050599626013360776718818871258596948487935235220701693122740455627273662711587013037567733835768268869000969257220450369205503251391514258694297020346219396694498751637236011107378923855447037735926412748447711212721089635270105917906406256029181947899794753731558608561636528497036660906082079881800381274009579602676691446680893596952582904668292984717823384776597023567512259419891429022152860595963195968965930261726156606157371852156217100826386921356953575416883184540718124042387946869856383435257815430851426386572707305231808052073895670300071202119751042207602891973833520002175501054199839409259478765290083103578970258607319835695545282009376364531641455483351958649194269531759942707020543637846130663286123720148523722724781205193076134806838053300590489342275525344223876425869895874923602988501313300673896184078189046500601484724831563258285612875067947554876067564783509898094826367722910554847306197353195139292415698743179797371462345044407076887438776529958858174641423058745593235310331007919489267230436401883197017804227497091103979971535170076502494903892071126075636232184032213051824581032929755507813353186389667790047456803447894988323547090391733134290584876547936391052471291884383499629890404875377444586299021029549871932427687508999484944053337291113615150051823401255739313928602032201305730005975541367738271881411594955279508669135436295877833289233126241237762893186691362748099562381432933520757667974209097382522596850205858657832284628302239041797379317501614204623286025091194441833223737019603746849731798155357527305289356239625578638762376698789291055640306558378065469243872359627355392970290857108482947885042847145127422173188298299046149399611474933482341058043473681378510319518246448126106664249288844036283188609955519366275442391224101189616859979405259185319353146904118536541066701787810209349299511992003262026015205369134551553538260291288600567364505679017682252913815371096203106461431898315262742398241102454284313994659501408203657152891710860102628371828036472781456926806878259346998406813116782740192399118773387592080610936394342955999644057476213214833835022852750288053336744745960659216958952426123133002838771331690045983768102264065376128019850164357246878089929455540694837558273441360838770677714311397831721587804700296165879230747736408841127751999652083588136851057136803275571261928766097083966538676959507615464666672327700655495264586260502872586822674133194046328714522892980976244691407397121116366747627787961313295566200240880223917486743642801123493232398505225278845115731401433061626967889070587312520443371304905589008409896243435942778164411386274774423607922054330637830137877249452794106987054466100123221767512360469778864539732288018378931212277255939763852114146895143666554001479990854527723736398418266874210327456117524688957159937923142755394277763551405121485142633859376056924605957964299949417717482739601884217724321006159234622344255533223644676553937680928155788215064344883307154025963691958523197169840263248201766717951167697600176075063085627620137574670205119622308235769499694164942201131233971749367070713466906721141861121640613215096614742568457262905453721339559159410720936841176762377022763980094912444790244312048757899146916526797718058415857439297280882429626249273837231558729270929829171209391925249941850293104153450365653105978079975919378808402528344248173496847794256740901257946042002964350330747897286682982800421157846862737256107603156244590210105395835182114639922807212159172949114872305619103298288908404329506595230864222787348752255139890890392042054541544944709346805417734078997129681797472285746818721951580488594394485196005461249101495582901452426483809177839335565283776681142629962889670806721964895396735639673886884793618485796142806267942674176281678196612640081407315360547282116187122471099312243212611674952429080534555503791029448733820853604449279475733671559082693013555715116082339737589838496203614704914715766438914856372862510113870904634627531517741652503117351528775170556775653853827975067666791472205728637108228566193769429844688831969205429776375768182263376522577495926142663507373623644974324897021221352865373966915220801595937412218101589937055225674652731648400992341949334154704956512048432430416674534780368204530983876109946077665522809786500379351828351464764763800280255306992697331900690075647984021950730900781111754414998146646253741826519464199406789757465256092713805863936481471704291969667962765599799526743337697341370692415870292061994880678130193605582423367785267362528917702869893056487197090628034883906751373032108384894020227467520838305050977496115189953577890627597477853890016974414368160776405300119210426951294059647476923525757359670489724935803391409489785538671810051244740153640897090694632104124433162784764138897869712619078244022066924157485704624986245448201958194460877568195060876612911410404036455944705887620844336808702919904916382571362670638309323233344451541329032386449431765458487727459315557730149490654723014847525124312623507607768582775230525793483435202079987774879703863877735824301960299621584560238536345633651060807880826114933317296651884917639761205376351580667182811353434595482767071523708834490576685115246382249668553195152872893256742464034751812229957660169139903839023801573396025625255172039337167855064072379574223606209423544735023423465458955810485346351560968151878596346936686184302401366827910936289934746831521112926621166345721758502624881798044459801089146754810620640048173411916166422709428366241777699529203329809004837524551396603546147692824239440178322656882824320443703211846188788400517717777494159978593655727273299569991762631092968776575062619012038684054382871302120923174395061697747159772881136805161245637788543077884578668640643573803665584509186292175537014366739915232900699322824157706348397831706405966802298824667512328453046918105090298299737968856491261594199049734610792968254671615632578184442752736614299560985616177526813004525006298106779742320760271579425797681498563231441299820591947775148265164113438938136904354305456917072584064718402110678297966056105963107826413383514596150381562389507250468307602092499948119374169967403801953177776639879634186240722407942194137925999414626810486202878441453096487106815767258029589177557972889119710832727464230818893714472767656542725483641205095579277605780808828271024558390412775989190858432915463288429906400063671798982785606498456822076461435665313279012370245309920869698416846897980820050078007069922314004367849896530679971317064638908222094100002676547463269285516527138869409684613944650162254478842314713362892037354775284615670678461881289641317913214748199328126718246943468589716231069412332775770223355235696095085454807728203866513496783711336855458422712624530835750180710452316318301841044616787213886176312826790799502523782485487953389733784509863800380191142214551044475634658471684866723476998051192681332088506205290444023418697207608502505317832250129561527573668882728887266569803944177427525844382964961017958821387526780449486675421261611184426354217040327383184579352114504438934236929962595204752077333381820926401648114247608587727542466276101130521998043467660153713958452060124608670598800264017030625264811342546420969298915460645837784949621018318606076854958116111112281346680442100660887484145581055201105543428939378602700822048455862501803018493704069378359347621231365590411052627811882281760888009368741975986786145515117139810634627388161747524252512603393090692982559928356013773988076153933516744583831127801217829843508701912457910921645891995426509956810068167096938013466656941724141818534118222037959098171481529595805551746243716507888042314462680625252810673570109962486441104813061755351490109905886206469715228052033515623951311435207106134341984723287683142613683880688204978388045771496099230012802145308835926088631200836840544000717494084497121981632300982048845387863338204460094670704022663913100795285054781142322198680634033033689126887070504482587410142574643093644627934636554210636538136330533099533075486263554415019489796639880891301465127528545897524889524530652001234997527365731518605687644869363085129697089410206113652561765534482305109292661009915742757215817303544013895550570760883892292170577735269837633488015586376733070065907248048398638565955775401284708995588965296252178750718164805907973906300697785709298217072778468195838111278264541208268894260358103978767934228378089159900007395705547837496778585963580809573420672656150958155451440029258979074999375785602254091192437968414060230627166321073070022981331545583891499349027868906096760759981390407230153771235120194861805041286570617754797509829720463653869138812826523668508314148961359183864143155127620545771775439600971988941871510004737190768704788906320122914788801513116130432568599484861175862593416109978461868112406407902833245803073191096427768026458202904401641113994023728096066496654760609732432096718478510777915657762910170735154849826894002824903233776843902363438314872930660518939664611616180748125122223388006312834187225747538613612974311770178676354783754356058668692835922579062305591016080547172870168740745878181132133632093227946092938584264346002708395628528061538907019540448175251571260915385318406945923782531508094940693457645168180861280478564614046878796981552312937755414714835081087391649091013142802982733577983191067636225604255648893627307545204564837679146887933569455059785260603791860774835888865004984212215032478528282613385179698291094744538759463379871491022701064006347182366697094140185939757681680809846827078329103493948133402275962421320788200040461341231326035075617320946039204377839128234588463629535924530368256684677412658594518855750707691825258466163381595706862410556058268333611607182687713359002412450582913397616069741211206190632079828870595858585833502144290271514095026854532800940664090821366040140089437605470174093698600998486783229183716495700499408519505901166733923942817428633671579684596757599805873256769869230267559367689288384933784213133682516979946128102654433669671102509211586951815185426249264217742300760381739374730867520492615838012825431339352336086701829703474190032823834169871969487617786443587402103221582361690507460251562553729489398460826558437088472372717138945558506265341312998053594523311202608695232442062221504039015294166449561449350823337641857638476752277639232377339716513992855941441440917600818279679893728487994829835310902221880475550111988111284583381992508300958899198567856221439100452523278350385645690110320259190674821044702585442730899112027394546693735149497210966133693960464407099498257360496539811734579675878730075190883996232619445398372163664457971228946944853324880129246545890433504702387189305749687228154502764746572742771115774040930875365983859340347167452144908073970433576807438861752197155305246856344369008194260312928872221871685144744685303084481190186923618383194771387663160756606723320861772501557230413228864562855479837615321850346972011737634251126569564397495725000010928003148417693192868808613642318695693822040556692260406861032949878033212397869073934599362237805183167260611474892383162741927579696679392054893192432692083463579625018263191214646060220315027516770152275043709040989546263246621677732622417354796446939896248704141617707205405811766714876573775087184665026647851764086332764712650746124684497553948278834443231685064250958612192864910197818587577730625617408581375506247195668299781915623861934721208954035191080747120916507926340983175282026206711554807405024613237533416579306997897216175549879707067278818237388800307161156584016517333616421685653948421262977919146358400635146636785874696972109032064618408625648340553537445785954817555693754839845191427789950684918748189871064512488954217688866207301682942245053671670278696707099191301353346932111434006066577036047303484941816432537732150879594681171498601845694547926836347593798383508824034694033304922737177070694545979518312072456882130305488663818608871335948598623369720996849765209540798656175103368042927453698019329303085363648852656445811496919376672694882147259681084704927705721523776665527311069801739727824320086347638543279256434186059617165879740970222722564598295047690558796848110705431997704401691282810389636861253059382313532257932014206979452680473994276974764711198345978932940771460591026852595602248996627436400409662932558180839777043835191919025097972411133992308984628961524466151240109813021409739161635656222547487688274696140870003924294462079372152896902106464279092360065905491469554167621587886679327021727064444522251672668234588483002286364359557580001747162282785914100248061357761846277249923842760504794349005620217863891838984756453780317457479124103023279837664279351077443071911839873148847585698868150394025326421933861075319276723514383279045449704875646948054407652713336894624622937901569680720639381864339392778898400508895825036866282274239873668765217643119882556578991762237040379323752456904287814953665101991088974074139498029661086125219035851815692870489469842139883900257000073264062715756112872435171286266010145198416881181718711902703019080092231835826004123992314797787123174835811744309942529420452621424451288231944856934822399791560173743795001580608535849782743254202582929100559284639282412568006089267068419740423048470017577875414305833922714615727487743713251618438539777212175241601096247756650611504382042739052669080593512663067716781764491734906083082301256535614712095538625096980125214633508812457392957308553789124417963595445804341456212314491371054924568548541352580527289719369081977095140968638059586481821223302143811077808756365750002425842363866098539209016582003614255879896482470468117833035099486241010357719711410179534414984908529686833138041122338757506853723588706991111860120025250719078406660591255088372440074577992899352337421451373851653539750910227350054815712595786512129736728825207972379312335780988654109522113181222929016839190548580498224805686378436449784051160090028846304283522531914273333469036211024586807097616386495366229415906422760807048739818599083611412006095084758120288317264239878065895176150206133800794197856777406061966547973677759324847166959298015124679060681859151623513820118617653826131890793822486606440766575909784539108248246183304558784967879616038957591191341737607509094250855722268833809867061138544681732121747582230773875810721682892680608158858371569936712601919868885785914814593343222145117568801925670885407615358018466750611553644160857905901414760216232371948845800987884467429434259213799693399702190557431142730070381268040316495329578392876699513029973405874237309654225917875915778467806977968121864314297971425849306202734642254739917008558214072405290614125685403476444410263094942727369113049450797313880805693168166101208575881944149897772638429259314006329078762058767244180373681090908459670502352626112963005729569646477319168490492811938890163786566104979358077673048081334229044213222217150604253242414159188266348824023097294286687214486916604098350352358816913150691074183777352853068287135330511984155236587487357657909342295534715223986902608447081609705181337748523734170636292221592546256517390640753775762722190811629978871638785807510395574625654235524405950930203098988928717792375516252598092152317792308543681879500767463919982494425657213473154569238629196487414949235831095191128387462299828544149192063274647591386328902862050694838017407836036360834200409117793639132561566954274393230209680030358892266135491464688925803374854619355378034782529644910144664626612959201176845551929605651262896062616144487822864291014018264898687948965539920700334797526196941373680635404304504868121884524077200874683024929147636971602615551266748059728980436370840299805978997143616012795561310409467602785001625282104101921430192203600681504319013180547720295900881206298113152209985446787664669639411580262524008517496328240428569465520234608903992984262271954063079597131299825346598217826182134914403639606969510729131650647342067794015342758864433611636431228728511702753715852796545684369252197242395693120982565364452811980511724490071525228137587662433247142224318998693841676668720669113818132743533270392312923462379698629110747148221885841749656665549369037887270470393008807293834920267235339491589317007110886557414292956106655024326641721653450266867383634301653177087876432896784869866045927257351303221303322168192949180152548089874739044570019418176751028501426356661171001198480715810068516326727203953591586688272828166398807204242906300770233710714948778340868079257090368291377412261108140155117762047534980734139170076556825903534711805368893572777370603281041771310288692822716204442100297237797578275037272737133331982751179321502070003907409440849821393528717655609836779511112944047304661603201406339540553152484132969312077535754267760308703753000667533480833319152473287711049606728367564326322297379389834688679196505261411014560673422626308504727889383368965777085057618959014879614234104499263487982546374033634893308629097668002588200142257721544590994189598912836374244364361270038565104321499044400321254999770226491487143982101516915130358510858914811095552613960747857851230446459242008689140939908332241355645903369347266894145872234260068665813224888396541002532027753276463679632107368552650081200910370058092387850321663048812231034943898056759103629343484547562164785779348014368472923327525112175005377134270010760106127107880537457968879791365344876875132138972143041407347670930987533924608934200010822129448760262640897005017538548223243316546571071176326577072186493904604818741213453117849935786843199921294193119019328740312682644695776590804253998288851585571478894437440982186617367794791262698599909605264149320911304670569130572993355129395366565623351647673366382707354240511396189374762540262057968611195385642292374226674335361104396934380549326860874464647982618631700174002592791115730982595996376981466400605582237963054603095907777958547181965367225400006832171195331416360253262054502700807901564206465870905229135366764077246704526695500559428283561638789578747228813921353128344024948055928332497872733569827366414340105267303939686520819998522796562624892746396693505049467296970277110291293198679769941344620621357441163604876921273200875036703578340808094081944514984487884331313204076335606074300815410574657784207093041707082369195999178580193270207593681260009839173652811618945206225691769546112372075628656560533114990423552589418289904241528279441602503588042437677952057355883758746920710409581725378086704525495343512507474089248158684759311484264174282684528959094136334239516798782873250116111620858099834556702602925162832150207084005173016270998694330233575298008141043353663904995121669113625881957073632429660144101538341439954291028802384347510493006856611941385158619578916361273218277384059955899274496457936004605505463055593413071178775214971127503033028918992374517541133124374506479506494584197251623095652940374339466293836380875780189704978549175306662136708314265469334706092156982484235606827002059245380620787751488238280851702207733133058222411903607327216617815992821705440487027303869321612656617298676712875045989861021202872163063982694573982514648418312301723774172129366494098958980715704930559301767330195085792680545916012476882429375763046191077905811513322912613579762797339751872577838909788615566869208777656404887840918355743953034895532981634863588835046501592538676360756127632938346846718760127669247188624988317665329810589567093659590884742179791513913728407534546956689937696644608025246727908857631504958269756062491567364998307194426154853185556706540913949992693526761251961759485079755556838359188378988346973202967635768934030868460311519872397902250880243623311707318993584288200416483901796824156954348091643886679680416540276625126478641435008073124355168784488443568973505703658645290083931552202085976858293724485807934724555335421644215443569990307985104279388881746251991329455944019666005006779929078671030238956989923349291389394758963933839330365607758742565776747277215531163353414687778973934436449106165287969997901545250836844871339371356459450910299797866741487152178056392717740893937240853381077027211826380688776494570891766599944944284281609319627110956693512748544027475064076008405277214816358008843992621801233184615350746584932409243089896549360704374210275355275862285605359836721921789641401739401747683156451084784724195665364158027483368329391513682082485159303147877806145325197074156896830534376827101941106814736122396733076622712036715704097166782124131425958664783735250040231964797142980691292562868679019031647313708081300813093645038057644728328788411071893466840462417840327253492868134528600929383730782237456910723469209388105553910712830065578339584839823897172315003304162860009486311982487792025980646143232862036142041453753759516699652696185810120729862125436683635604340418107480355282321056782824402798123269433492912477953736824554620135189139978967663011493421667473661956224832834291819928993302298484126069462794964516388195274632531385368694830570312692584909445490428074992834388659146936905371106799434365447639995038603324290009142689109704129498986818210109492095421249480219563335052806625921322967311945795903931309808138308720903442368712497515377597024588863448875241260510458917518760374778168860592851883926448217118226736110354436755046983569306363318313604049975934753038531227487511489443361264241102716713322077207490261144391675519142577911623693306828348970472301425355990629197191939168601398400602946769078919822878661760651602320563872948455922565864217354846579168324924875087866981224069563600619843107754864607272398502881413553145975814599724860597956765932984902593388103465491035222944417898863921108157918605676164688942819086456627478246771544971473526876629802519015209695637380526006370939688664750390295688959085842239938414459342436095211081433844609514849813702958667003886919052289976134539047820952748953876599562324167405058940976347586282894635214423259840274106010674291777555111970778676963443120727540324569857270590154836632594816278594314433068071587830281480149509419799845300099209956195472789885161122971175081424518120660839033104174576884465417694045434792531750931196756103396811041754751099207863540360320510687124585217373649531125965963186231714567011030806364578381157101129460972506301833712630487441881898938066220891375429353914470927075433893147419778469193755917557959907968200673991772925442896643701510623562300260931895161293004899437916119946039526023116286242087514737042686473748463537546790568429550756943729623448383716420717873883077504441021436098744981471332120269513606266237423639391687290680089865542523788455036573377487035435037894563585778173500146395093685128540742269460333942923256699870703386394024072774184560299688646227986365645769786137885585315416345972727927578167798787478390845634944630887985523189421481468020420170068653756112310096520847520045369294288724639725601488720288176607594650274613251305392847371200226607906325377961207890141225207370838031073274017004800030555535497363043476781415223858194975612984883943614994196283127629534706093419280636349650073243646284275978084463054837599385105931787711448930612267585918158538467086718143676837407874397255604464501144811120527553933507777971897870105974745087695307330895042109998065848895047715865433806160757925252494669792507874719659980159436895261740359458985301198710990819272155609016971167111703106391577898581873497959488395059826811717566238944921669793638721836302318126736687834643055259721736105595166011051010378122285368269307449298061794043101598780423016258591376920240880244419655214290521235147396375315132270928314352071375635551394208327741245674308104000484878622802842592378941022256977207768554888016789719657495814100807385348466700130791330154042836948307094029939079440750933557039080391054086483185790449362735898291167808238746387031995228890931485871754831931796727935887235029759121907830107515207120298087509879632879946086583561648836326525992109168470996512539307596712185705223220435103778103810770034396919788510743351986176099899615859271316682066072050573952135118969027388147309201288023961839897100884163869041300583095615190297746072796680485118511340430439869064997697603910975128436492251219691236581346432135211891299852050570852419433817627364841512255457434225224391296632718742031719243832936545176024590759617829069895920960795651218259201578659846339322923305592524062668152818035543098617242193931777178829656036130254452196641126329116004510264768041239176108914767419857533551245049096038263129450050970340308593692985491526241808402224860423509895071763318979353397324346482865024344913482292418299015201893528373500586336090734102172419662278147267708535833760982046483256989658414725073510062733918221421204550747370714525604515928857086683118311211925720325791386820329767652433655721961873305208351986242306841502414529333879954966531607051027005799544743501555771980112108635979881789784590760460741239148370295904783178003502211903852419257724398289851463220930085926545581186073363436408109688285504074691519751255122321459632941334378219255443383826769712317695116344998652318345329350100569422215812640918604401934402567095436504663314941332690723154472769832030948325015940872861908776962571882677621827283515748997087723621511883609295015432269838434855497022763247631943277745041134304069305874254310167193968621040494169806015272005349450705612762886138531825332863372977507988736882225084366405732478707297884580341204044485944660143968612373116842437094243407749155698760099692559434479945756493234990788929051718020230535165505609713999028067659775912405142197311944569968151494989225195665862171223756142946061758633119483877344181482343116681501501950601381785814456051624624306465981658039271568900116569285142937826356604577714940088091363941649439834731143994044990120786661154915937491548557690330449689722198918199091138353022837031105845488345309506345697954845843269255664904105800962282182063900346210880649833393141438106978172534596337286459472057188449934308293732596016395156181746930858356349665258379211888292818395075576057483357227440448940449919383481005883017483955152595760273466864538092358212856034849748068158842769125111699357679061714722706647317688994352482883190955600675661242038200327068347488859726560102545522556668966875206835603630846262255482670589963915536848532089506792814982729682546557062949275488961599944981839171247814746100620519172259872593399146127282248350821746476643232002763181279373111337291538248800632333464072868955117346213981442321713008161232766103083754603588698951690842574177850038211152727240214948049038015975160105280521344207253164432463806066152690152664209373911727381722587529164339676417146905782374005211928958691976514020251490681938207208571818682662430548504684326801824956075502112735982222550331453434813147800543930635579727820851233635285921710663839341372349993355065370354799501952230763326993401493991827182005971350680743228001148158005066715549499344394012981064222274798804793310891437682300715930413284686219955094751045403409106350766307042737939882278784646611277066650756997954141064154084411063184931898621253073494610105816521167457000870316871877245673386084577363045284233444004191793418583741648769556869081370331928446591294636546008540390563608720042867131315833457112879270133880022609395176041668129394857617596069046786557324510388888232742910395571243219447925793776594437656115236564873018971690710394373438143728984857947275668755828280092067781130887693166684363827867973960098764577971377791197171677558127828997261003787920906670090839909721976468293808813265301671393746322038107308755302122960813404271591706150367539815966586303282522414842583645117625643284492016618511213989404646206639814023437399419064982114016611316107512546926568614261072012258681811547685046280705455354308140263298145909816289362189560448707069665969938879613636676441818562905114348912550320312512854300185289002351944488673271903013568466588501486744498981740951041834086844870762193176555870997131662427057830403623308301369270522185408540770825989898989937434364559773593562968442549883196206315095027253126367245398678307697967546283496156315346558120319389318578346021990720347222906848695139865371061330411869808643075092780369629227239234049472277666405615012071887553554949881920547377098522989332510802660224261513307367241882268814822004898385330971236450955757911873441027516645891355804427343138931224840077370830457834605371379134455474941370414669743388609237491306999313854487752300128678328022100413905945385077001688112562455716098063933086937957092655477207315912786292656564041174249777736529041326577907699551855906443556125112547386954397537711373222949090378973023405476531176985848255090824124090397660114296530665180235107789785300569606742520122243357957240245920625130930327625424409187382116685847855751955273340578068897004712853195693227167949957106875918490032843575295520386473916468772935311858259546645932045894703083735433058682248997864910884412123464270326716864056476619506784160265139276653164614786445173654758749738869041806329332651559642633822693635516856176198049376512034977151270489529274878748244391553195278760652460489456097417425311010838516175809150914834902027348800734466828063177326536401959236495265546476042434082840750930279798847488452077406622861817494201988204776922396408889231559361339814877682132324685501341590353154637852167944514044646784426688135812992573134358939803159335202241041800219120233756739349194438997053731415885793286816753197483970100308401677155186390997736062323372404113474579901154321428279504528468695422431258771225267339821834491720476467649870923945795854163998780062346226350082631360404006317565774920610929460125664604297793468803852947339526685166894916911822169825835013646226852324713817402434261633357412784822138252937292859005071955839474951623646935887416472501266514767676216887364110561037201796637215411861421615086728808548050751264831695160341748005216455864401155895642824885127396094576202891371299447968931834801872757359804568185323881160566528205293308353930002375269534147931028758468308076888685065194064649910052919383405895436399139221175193696902478800347623437841196981589431284066973006159469698046115160325210074972713304394724877733908622680065296544048706536140784699634704154917860008789698313095867090956727858707938933307687069228810115599160589879464913536778164383899090894736740858640262327604736769327143736353112496463923404756603017078387921873987815446673685046740784806105694977990413909229394678370178391749985447177684856487000305525033489472647301896381770811884834274002772770133750497193308568698167354418447230542515805827791235779186106390927306395103141680053147683663299326548119827263770536039406032887114803220814563733181472122068177056697540544675554334533027243117786577102519956266680509144939861684892013795922207527990689104170110455286135512928303964927184185833843606773466620787326620366143605416964405520023405531272544912686807239892941594554424660700372235115568262667264963827696763231973402238350138072744601233087992549049673575769419324581193877013501010822337487739974893154088321572737185785920055142948294684334852732046049306846363807933968987529677442894895880043915308888478617432533017782077815823425534907909235092928521231048768821231681172441458610482927178449511310776478693603041397437919510574699234663855190584092541526837962370120128544225279890550590070923555551064961852610673986151647124730975280017996645467778096728650418465340245981849322748614788817264459402849844261441606973321483408724347327135119131813271313695428097422081962877546067536028562858100006298772596507224276852778517919637378354893788722306382658699549849994862331312983363868994651408866584700563331022685448173508343889836342762781037960398575493572134532087111164726472619517566621476123771913212012058368958022705546032604502854716981005712396135280122216480713009729291738908052395985719299829504480668553335699669682186165859691893239478094809654108600703590045315835604036026182645606124840861615894909241166919153737812442763687845739011853482088367638050534423988382239853403304815828994326910910155345573567489080922985683789081964430071343352753012124359538780977848843848591201202962117016422260425288894723316272009880877413208965850225735866747148423720679752070225476619833180824794295810345780813194152317397616735728006522235520481549767815222773909996957761360640210888261490522560826450722425828651280638552117866881146288990873248878480575500846493103139170596165839978510172188201347746644324152432055462130435910868973342755917589034662285663449312392493574305120205785598860086034510259797406631097624855672991248715931076027707746082222488203493020262628499777202916523573151138783812888908382648961986476622800352102202314544057642172353897985025207786102853304872461277446477816338873357881859919416436099589278585422595719959188225496816213429435155988451568349050262402460540815890773105906029363397463981003083768582742660928469026745666765256188768141209051483490731440029717020229239264439340514045508725342213645074395804637017869910612558148115118135118802501953561656336151849336402683387111830090844642663324697341890516311849225147279761024343328897141441679111385744613898170426160091092912926097314489449646669036414003529442095016245096380086940678655854337962987195941098785257905399779293357966267777068492474546953485025427939757836009646080771658396777413153831083973214220873121701300716376413958190028431421785570659104795998573551678630410481659406326281077516548630408101420729191669622555750812296582097869121723773321519271880867566787787258326199934060134330209963725933663429733410802274329644745497490372548882699727519754345336289270090997203760208076726704751903056857530821540841964573467442270637405915305904763821727924081614753080093247183873463969009313852272976972632267035788545088896154881203076778552630250102857541836053995398690000195308646420860391308272768910597819400027314694686560256696411716803057141178776082743438376174277342596577690139096318230827764921736227645734547504431587878037914430308734500339689782701212476970698541844830889127350684685459557201984406200143200557827393971618048193440462807610979965084101947333496553419083031992851861097355693639539530153557047050371040007054807273042449867930211151823539853158740373464369749957644986156510172950331409795691809310066900040362770087946079569311849010200416874934767241742942524166156834159959555727442047658136223412510925072564470237081517261887911970432879584332028753826780465480603654812954839477505062084549157473914193701013804874739635357171056166834221938736666250666488897831290949918040217419994935308092529294925492707669767221155268052411126558735065430283460970694125759101098566827066505898457972032886481809874039966775304824893214405720095184517428614381668874426841885473867612414401788616882214207553804867412030561110692941982405207281378641177540991573940422527470575160969082520840185535018646637902135373386322853407253521473892182406959014240254227204160130734758449986521665058234183988515347819076157866681062839478337690860808887285143886292427339155152530279011435812295764773451011105895700766589088179009852610884578382616689268931206507937190371899865120625038058095432656758273400091958675637741425906171813870364252030033958986157570653832215599372806958529853530869201209898724540077744567463197807023516442606776128854354172549683857685679203893145193752698685931431012664995730029622583559890072439332742312972401947474808592090762447937069808865982338049530904358806655455430442430072476955322927608332200445656402893863466543277259721427633956057833128582316608258798250270922881883549807228347883824547729127349481417401491849686252880359266851882015505415904558481720287716604311907969429522479902065699530077810988811222401901980741439540537829122440241255358416558736747548631960182158096113162695983000461248842457882012707398522747887362458542630743943025455693382459906829201875133853225264764711973810410016992927807817764877278259514874777413026400742854729972150679277706829367925953224772683523620288958179987377571147067882886111947642612929275366470070254815262589009341623916761912753584356875123971349304106323161944507591692320461282375017148590449809503329209007601294457923041597669019593636599666141531480249405689423187874242336341239545091195722925029232243332875701535213789363816500641607007174468703564754651225801857127995476222069545120516698742376206806857266713845070714277920167464828288051971063416681185338040217045193459926335953014457315088625489677294547537430377410119403155333053522560077518360521394833465195430293356427136194198910203654979394677234283447090249165388675605627615110668029000755474477860074844500563172337142812433928084307029846626622793604623362491074223333442448564484592984576562586271851876267975557815924837764567555755539017844955339755685801451111827938443984882785843725887478747390973062729082510502257621988742438785371005733020470000178034163873397962124260838020441741656261318223942153649959343839290155422589532011662831297079875003640978827712827342251815534966161980481130765885275414154376528804254418207550173218352828642291247058269305314546451019911485789154106956541460105629364518683310590739360797534153488394223437524255841846719469776786361104599608685392418984828752627075625887118137579940749186381201972244478568872735549446668834542699581965205348191342766142700593275052417847057687475642016478989727363775157162285612048425857139901473846642146685657488030298239200026563757585668211230250850785496019530522529230907170195809874581501193914324548586697111348084076299097063980508287925190445959905480700095517401988715549678213840032004840574963468406792064226002469725369865760990449603027814965051565207386319066014793768656066150477494059355873888305810189450126275985556114951861379933038144129784950297761039269430383362952820583004430425246154688665777563784564922068295209013790736438868610511001438313169529510994047468645045743718667244792950367924052059166494787716592277504394545563541352553907150391703746522112329933004903121626156047202224795229695574101398612962710338412652934166736683455878993902718588262713398171903381113193282240796502179849253590733449287858000743408397529480944021693301503005325580299455032204900678401891990375611854885365354447750557939972699359566007700190999849713644774998947534966902526356355722964920915380535441538656230971369573377666655475414396902258526758353913818918483466753216818494925618813365622674805381012917062256972677227017447497714569103321196151258877418094627386987305157093325126729512810777471287479387365183390223478877352681431990795006828971619972763646904549010022382842237911243506479022242898682123772568985453047093716625382684272141637967227821243297181937289445276943740330732410240427791716385482788641577197101835246365930019398000944140440881018930981098973582786581945465074467293328813250579196880963238568624483270210322306365994477763906980550742286113424895650545444225034417849845418218270233103409953941881322082929927264565776015102933678047935073229243192389992685041820241216616747273316308726552210981579141318682030781460568213813836076019208090216654285774750548754351856906506506997999418177111275326638037789643784718771875702337315794464314857449891699543899493211902548669918687152103414285737464782560603849745715009643563282800367503237671687086470938250853570316457378655503509242221760510087198220295079582675561211405041369553954666581248819440304526884211703111068584086337062350086733844239848694785323752118310817584439026616807921359182800568853737558716280627986268933596594378175152305107417331788398202054460970002230169345728697788367464972561906112650616442228222029523655783101869581854687933823049623477774768681406306400790869955877539767964208616365680686057736902717530117457169153901805581107109951155984835696736554560453334697428635401866119425257841808036357239897657602747741718597280251277963954571731196022531825729848426377426543741785281067354904611352407279203340190530527990770987033137768546978643759488769343759043165201348667461955168408998055970346710998704127141826387174358287820283354233463686052734381668532940355894278106282096485766863158754470963718718824496721262488130816171675678411960246869785997258649242629145071134286998869383209242042204785748380023696194388898436822600607100158901128127327077194557582610347694203170541339215178687518801939707567950236005401531707355798920724570976042504518135622173066251780808129989579168236604672945868073045449558058868074850260459170329607173072226747750393413303547432780018910840874244350867789077658995771452071826763779868480550093144980249156481013609219945673697240331010410687624556766187111325455457111598537690350521551735075452312732948765490732230361459418540917989914308988440198539671401725278754650951675949523417354180496362083522798960798713589198044399952640637628028327358888407876329340163860868867445408710357696043246832469074223465380095964331852921798942706575700161597590710756659599952350681796679847987274201158535301037042174367000074845074239198155045634881508109086464201472256739021891760971592086185920334732933263479642005978425869251837764658309693441494281147080084680091613478798070582142565880251397504342760025989619906382062234932135198429092459065129752855491750079999693240693531545947618673407818637458037830927664193068557850823658295416658087141414838593385784888374650602392610597545015786263352255791768530249596495268322009766260169999448975822435519747415936394691072980656083360468806864039860268459777352427168494006797119035286011719667964997376548788858241843266375508735584483517032071869925771547721369958861131273815444952941557502134848237531096944417171797781251736827135739705767716077473090540265496865869274576195407032615950312906105846192194617129483306493550591830231086798439148050695419823729759556966849079324088896055147792569549505154257055488772286645183424034757336600298335628323896281350093294603678767141300863694871216607375544602803337247201799775612273017449878751638742483926872819570341381623849839348679308786975442834185752537166093346027735608090701317741028400991376938098326314144502060480082707677471471456617833401675866390541653918327845498150044776425562385587898136094935850099096064719205457771660537625721515556802382314845692156934350447702015575993505532888062682006901136763658408074237323880420588364361232323846215894121605661695136148067857830548025851139726977424684078649347117512186801516902329185416191621728773332176925983169066304645647422801359998520830273527574762054271636269185078598179550655326519597905051446443151481367188835749723667297647294070343628993339075199562069732509302455029857826308094574709674755120880909539355634133763035250435002017189684941265732165996475357632325063169227119245404056946908395575503490116498689821509178639096622127369215853817240451669642258573449946632944837535161573167369270686777161628852621193388617533518068014734986843019849013667258189604630922860295907015274322625360312222481972623400772457643316896093963307949921467243287660840009571128390010503294672255965684559148572360918492234526447160187563505706631717195663557224827377133535304236891072542333766399853405392949773543119800385881576303357567784772216006213475391494032788298289877265676195713619170929192624296052916234060845282406560857656091590138394141996705380942274806647603466918124777895642416509265107178456610247728261124946437626288968568926057946162639454032980769470569170521364903506158415545886032550452917549067516136494725687946854850808344038086970230492687304059493191094511978241515554793026023343305192170726761464267417812550657054449073091062410641651593609221379677987208797184372221522432253330087578858600900805141426845316195725521013738160086778733562532828069615706187770139974420279221813586654698403390641785306999019391089682142442071152978495648981301158614292886104213706373215907044088953875001167018209653569696103292963268405353110154786813018912847093673640353207848020971372838645221508288614482224568590394667210700714204805721708708137966615602439539478578396560529917560244951864298231426351468243250541239677012009581853506848147933484766600679296473283081451984869598958762977115351414431478029132710213425890945268852011765909012124230258550217436889914995011110762923559506381972489405837961412690747180293393161615758689999689461242553824616844815217328880738018748440547506907071807639711666624454248195830846949135469227409342694685191579928658952265405102392805725719159529547507785562657064028186027369343385924505406554377673215098384959406040938796630813908117398771219752478591827515634812143882485819408916952148861705520500321448470477232968751295916762036806584022995420022223656879160315713079681169833752274970020722056272868351592749845342809990994549321777101847150987791279480723788509995434010482388683917369240954459436450426818070382557046402697704121885518605615554392969159873232947701703277912407626970691763393574114406366539780190112880857987263553643916435676690725199300434976627797380824558252287156618247356199039421893799675003812951123475258877337902700783505908833767206895131055985842741216225174733868861200355083389969810656766371374459206157953617888264408392298741601001371680951386033479219541058577919505331919811444649894329308773288207817918386436182793976924777026398810586146029987629750391490907377472424615607496878922618507259433969250827925898689225564779160474133476973762373845307896675625996143291466559678163887167253443111184370164634467161798874645873130261230089344010940246805337782579231860908266940186034958915749280506825365044595652782189033900181476251725575638974643117386414135700299620232415569449705771568583407194774382390973700656660605823999597715182131365215004641661336362019188272913180004180223690793600282775154896221218344011497805973470122235807586516316905430575865218284896038693806871085725529888978289242010638491409679412299645440270329083923516877724627910325472357949161230741462340878166112905249664912609785983464818960734015693348822323790392624664945792434870525090041135198438834534981051683429283895691361114209385962482275380729513329023861271132830188918990699547166339435984256071670552116520124587392118536982178864135009987646173213216070638199515218845135195963907862977239102904507331083223257564927495183865144982221039601330264720207503383053639853514674147131162382544231986014150270623685009226770973231291758112614048971573683036009091175938070537773172157492128409385744647832537064948723082489013114109902301109523260316369722620393729022847930732665135309883241784904094176132465609223590329125136674696505506275432483255513767742319417015778347543917088393114184051859647009818210873473488639284135366792085811819866917495940276054006450116300681157783723884566537860910811841670762810313446572514637188267183433958300745826594329779818066277401250933008141251830578306898954399066912151595010422625926538474664000073728865492864135492107047571272934866202560758836113257417938704847294328411898611403444956632913897177693489186548868337430006761579781993557281598824226316008249405198124569553847969267912744222841690925802527429594335960733431992158413375437501960721431614315942015027783287723020456712351453850701663000306892325392411810782934887351100491409122266668564385119063195565781660595887217646323154434634427121847688358197327562347681842219176089077794830824675010909651570063253290628439864219470761090478334611448410788115670449070862382077054319622056714715936893089161051126008931546168297911356490510889413873433575218415828599808324010614452426385723753073598327052769769094003729786128593241710061924040653188565198506782492268522580961847667096696594799198027879264638269002294932754526160946699772402420755342734331495019489987744581963962014063801738921064823301222296247818937967737875946735821228336882776906763509176600168822043130205116526322450412195885178458500019463312698367122753285478783288010666831095832460325957447441017210244466637557575310622119634647693515435008902146531381567507369597031981261557249146006040980321740086504673696781667449818047120712059383063026344444127952277537681875692798759260961323143181399424862811311086351912665689679006841511755213172570928432619687723229404063178199843734084098869247815034698585422865970936205470637323159987998998908286176106932936520470028278426617339048305400656547796038966913740244474064565857996794028381457405235620299310999788156635598724912136073022036943748508731329033224640370188756094628330759547461819004714079203233282807845850134510214149895004493433426016678835227865559953249619451311445892516121027849158929676721066365694132105343166308515805543716283137815148222068507873802939335173445382249098865570245242652236743218678368370772654754258000642734373506730189621989852350992895336226766153027819436016408291789055503130651510873224739544043882512971473056534671312782029828167279248684194365512214885309414099370204070780555697081284903758443334263738378597260488512548392213900430569469450004083696960695111280834722737789587943297420172024527657368512410977619502810047732270417133553154452463961752448594707856297870071537797585096980302662319988421000664930272418936241816197953465354750382307514563506871956661078886397419849749877639296944356502284551352894659310730450535210332906615566987831417672343269863103653276226923869174918960106405656634961853176925024743382265749416585830363454278701639265493620011954929651228685183638495173906224358473432005696760820266269280502082682274322202838558121579738795148100780224175718150696379796521377322486013787953593427682320428484082117084105485869898491144855716600228709687909436699327883184193218323406401454332173479701898502972464655794166246714011442444751785374898565594905816750258142145850229221225877397201715489949635686580850246584036575017593898608034773620746277640218101525359861359125934125116205988706451145633620997327128969494094569369430087444360102599659287587954088410045376877248594714379524230373020066017726641429374508355506761984705393296773695084079645484086598037028618613382997999565522909975175926446970504091113492243106908515257035817984204362851698090101551364315135228266365896416878535509572240762293269323163421745024135106227124546527968873262191148141548365347073632171751607576710378153238499706019274878713462217034054919642395089756592743502569067766211200507456499591133534838492499233607273780937676717083949907016483049836815816029500423605252196970921405033938578140896785319553698604116908631287471376524560288992787087892559890188646594118542970278326342982042707955460130689440305752540507213082257652184686471746196109120467980775860765401882778063869631822257593221201564330571521027632403543975827927175760991624859293315030844688077334556556020383861293805053055361711928468372348005644428422152666906212779383802262139194265041293622842331578913785835015889207949681395565944801036558557570307441139465564040106172625246513295229341013521463377650346220868251888401452098423069189902833948864856764205564089577385260242272826687059949133128477786713735526810707702669179517886688048635727318508014898847335706289201436739359810314123197737475317289467074737209324039744926184200326452222064483569237669405958835390274702087000367352330651936834233074616467307363366897016614190374681658049114769862627061798933243287224110772749154452160821053475943319161432617506120752620030166594430187488392112356892508974400322267098728701489686284883623074786319827885752375610044313009292032726899103312038278121474431727338969589463438933691698562543207337662139852482050222748993393341885602426624287308507756487506007126962345359140934671454473728119737852296149244361888942526124272653404750939544259706369612568122240657299187373602743502214933321900179648316963507573972670188892680784422428256256016124404724595781524581372617685471515595462382427538752018787914238834350943581892919472622851456795926955290914237511165663302113837178895109983424448614906947579872509754029692438410594599257945266713369142642068277798379683763216346941308172188488620511428963322602028645583750750092809327221476156139650650036244320907772915887168233963498120116254058104612884580331334328495194388431568952064949934869477004779175152531802287928911354263219736471641883954069374069606215267927053578126228901013926389381070420333434763882486023523985419669893493451064412741214367003348642474182452502903726941760528031041047228123705862159819839042464035261881148945497257542348502619047774094588485608353253203327501937679357936043979604774416959326329578952543684742209640480447047851201714924265951331103270312661809137055180395277841672152095323443134610868671278343058476796895316866830684395476105344547836246970092121212830525189995721511556906049219724914577552903104647576348069960922854615226152964411579389647928063462073295098889321728677217648225107000459374885874069819534950762948819200552148862531869239958223055821179483557505176552713615986344619790878420433188095839169101715006710102261977629194107368232022180573961650001771380738256664465413961640252762447800803009524586739224143861173006566474294363932601580142394557541510498990620940208328065790254890607770286079363378099950317147157294598679954438189120101589165635680076275850445661711816189780624312440923103920354169865934468751650747842730972817715620715034899710024745123111307475598230741083785623578687456496284785042043492471197960869966384053576388352809001355690885343139465095500252633578545001883660703580479349078774630377933622125219968117247264165028969277726083166961996280379171661904806276573201136922316487037925451246584562384046816486321748333594202859427662019078761911145639266752138878485855025328722064912671134433662549036148722137704967157971192625407566034430456725863833396330223964022304700665753891382985937370984264580703779684849533051571860674949662248420155496089265176276792516196637504955226310086716228062462497281752166350946366279951972939327334331397694014136452975400879270515371194944055178650424145388201406834247081523837438450288892457167727423078356657797139187147892675294461873498227171672722409380875205151304136515331926213353351811563347500450720647689586336131569415430946428259678884819268328334703064975092304092883045511294814207930594542412936327417852117554098514476426104523527436549463626537895630963837463593799330641171957157151354299536994356042687750308047823484882899624703373691532244966410762920831657571241807967592539904203744079986015335839655021019611181663607613059413702442550166699916367309292290233854729899969875400616666173506593357166179439977131918173886972742565790632899874093290761776717598753341301340509242950685471004353411455273248092827028202320431787573793114951245300702256798935081084248599246663813104439182274468824557982474876515074472985396523717400026809637273534141316115101756058894988861069749166152279373421312908278526645896140731885045825977182488221128690752660972722221357991789762165609382438017746011321521850592737943655465434288640357151296238171982624594634848695961417047894301324660478597739628109495535786968587705400439410836978521880258961185203961300349980274665796066648313451895438886039402836428876026375977914279802756217060763791548060259584163665992576693407672914663194762359046399448157534992643380137483869403086200336314700753780438002407208307056888086000545395297775727488436344850741517351470609303593654701679028529442368795252988903452633217771497723270869299192770593506059784590293054374076150503214759953654740801111704707836535638836687039943568133856500858261697233521746562439901708207351003960498553956749437535455043904159893496168977504052046241629746244840607082643597415238649981837454085367291648983027751081573043826885808232236873411436744484087682888338208531756784384243218150885883912014052374245195184830289554156328372989847660458029680112666964843646901550247209570688199240831065057779583266071158980388090885777558773132608777140886010176372297903094076462141457229888184575114372327434436255214682684840314265607970826299013523303503738374462151956193790716122508586723542038816467312344366066960651968550795663159339415433659742697053121672012849016284446041165313287236819616776334101226733831970214229742325000966488773026654283143821561276226379791708528789410444199751968876615961402018258783069917389639982244288603414649759929788993700871423993148251410844007261609791874098980229706978307042390631257977667274016042577369673190001038174505227479218647171321090646585205004395296888065641293263387134374574282856581669076893262714816964025830155200377404240592404123369795689317032451682552643754793985754740600036270156001282575295802440464019906764418795506801327281776296825601896913188030764030733722420530721717435212104026282692114942273905899975869199874946787910267002245244385604449685512859470626780967517687600854608939519045954025616349638074405752142288226503734789769036119160302514720240035958705759439267883375784627154521796906573488507955640621874157860005279710326045476643903366188623132094209269077977011496339243935114280048472641689390857748367634031228360145614161773937452281747551965528011264592112498306170252484026289521611943766159624259213521916244010065274127638478849288333281909747703385856480763538591772052367673241216713348143949461444876227195863331971012782131514318698140291698293730584806854192483747743846864340756390365547979360340872494298996185508121887658953992093292720686305782273453483206651317871788823613091262356842985911718890786965820709535752450150699601547446206578614085378737614494807403712026098137436850925746264310890039202247808775272058043759164920120976119991249803595119272848901219629867951997009341465336513587487144638095039088314703006441255727394118842284500214199489230207085483077157632689741068055018144637528856588444123710477409492149442058018382689644205312619759452066796479030910073947404373360893013325835172013654589037891136341030587336671707059162606841935807969403810614120925185097423782203806149317501364452438349651249524874529657772260919280108639190147210721145818420723209469683467241233927652416601605224859998421363487709402199993640590486316947463878026485246831016891639425387593271613075866183275051662706502032856067047526797932042209230596617838570382408822463386354592889779532077984943201005631743455474245720791231216931455505536402563485108302304581814545352887945161094943785090083785200075360239349117813110304667595152693162349134439165140986074386079467345936706342633222579336832964651566790760939221128632697439600494582100920014108266284705277682486509017381906884179950080496497186337891770822692486267806396220430158965397781782162816731639391893427179446873183481861488465389017805918349637417202882486616751014558681726238435977103985770721474758817561530707359592215954213070071215897299599550235900687818471399313773022990397680815580876392397466633155063075116760883515346054775434984110108733220308211939623333533325836810982160222866592951099190888549035070902471676557146901948665706237556670584741995261956521141005605387628475092799726443650455375455178544796727794638374051388216372408461013810708951678649239683081737741255626250779907149137257252216759282799472951885394699310774816888390304629410321563188297581905270312110496528086817343883534770052003596790125963080321340561544971779483577635189489555694315281871479724429740805133800323546011472174285432517623189570085929788617373803197093192391766593808180974771621007782570353998382305242659169131280351529697860352881150027711184003098236731976996861540861979467225551733438027167244194303086369989098415368196694365301669878835677380534900809401225579271965411533762413879769744718663859321247606314731627048201777008143292968273090982757406066760184567383216633739755011472397442318846993751285713186128705313987472703184143215300334940402924393537955246930202468723059684559876452101322027411115791781339491020709236460798238080215313277016698340261272249281572164655516660728858691463090215664681045395936934883688139543355098348814486443158155200403155780011808965064149365518351538262275656446911738458237095185036024958819961708068035311549948034532431377972364451589047535660699671231994503731872112095933527312964622608864173606327334287328632822715705492369883842721131645003782512667177428776086260195322421859360133198379377793187721302923523319717529139981888965205645580984045569185302868796208779020935603304511188630678719591801400328025693202012269783709885229020881015547783013429908112930162925633180023846204314796127251209616116068490621309958473535405886057027090139115308727942670541941947062419996916063143083439979036881290583258925264671226589557100264435807643854378189077139091396722949277715031933906995040594514893731645652555893415002385398025035522488320934322164291439670927792024235932361988990914203897313077678922086849146349881331644393210301434787962616656642425510190814763223509332610498302443842504025215359303957557699379272578521950523722009868384376901522493938469405939379361582109113719862113307561556910874889910375748265892931020044531026826515841745483652223509483448512133327503369807398843298377508046443584871008169072729441965871760326087735749993027937002879436277824591667305186529783604072242495263984078177641225785141390154204711586153728422146650910293435998878824617060434077866979226386307116295652243702383668382506368567625962387131059751659226226755635096841161669307102914004109639855179960305552856351282727566547763743063059492405678316643323356537486021797635711430600698960496380762235549527628341846063087026624149142381629501112815347177735177237886299622579238255416029524546220164208607714552214559164205255747396906734385428741659081850917091943596920663604034168199360325252068067822497047560479476266368647387726513768927983498337489137466367628973811027111797025092713894017313395220378835428715256581195132234070769826606858367534006046354274036428752793627378377333955255423523690644736202856137155963159841318104764586386312037680510980504157930783067623356085994793784730130569740474639263996893764313000744662888834881141427884966098113887069876078393023018811349022891080891465565009025642758727756211450758343207420396689413197200997086397504815354737359696664632400731471394494855153959366721623825893110041375927838371447957585487409036553121974614473252446115501483295717329008695876407660893399986936492731584249274258703028464348763913960203226450064617988036246272509501900736310578518383361511830466543539477170042220427509721220968622827456913172796731164703599532440136648645837801725492940707402708179714976086519734246268825464145866276919619551099577588211300542088878747869876461747162011918065311240662398259949891669104418342263140498920360148265309135945309623494369962550925271845753247256759403892258679547658576532366126061152491986104842693855901225886167442825438064624504405022871904426954508003606511068965718847992043123026508759416960438817726724700868126575170427212082807119232347480501275255728050732049773412395176197095574040397517055162708451441569224639775869320258337200885290594966952460455968100127558116963384260019504671312072454984105420155066472278282166887589418522488364838448085750411821621072298973928948605926444969329061177092464180338715590457888632778529731332858165848028484095830798809865227359506954618080423867610133591718635990733297245767842437968572866027311770372376541894856267758160518873737980012419769867331107035043078201465864041733988993739449063485017037274008168981156817200729113940689009337888190555774132502174525328277075147392402048863903098774985544177594836153050643749963291369939413162622125425706965139611928999961512876359366066967509895999431425340177610914206042511902848224170739716800202767889872318460803011184404351708278684793327949617261498117492198687147173082003489989475886495237748792635179079484719120445529496365896233399635519251278707781489142328813570486947416308055243839928898446458927466827389345504173159008413523747611227250081515393488709123744559365372988848351315738250656554542396000879814481056292125838992528704338441916731860975260272716825238909586309242648976702856776151503261778911493228842836496332233749376830200648508115315887981804592242650612008321886840584105557404150575457992719155589684793635857879257648156279215346188570628746067168931031064469913930284926651922105495904890333322269696907804740497882128824679261141206529360418816090463396820607294597145048429463610934412127623333152224682320246296918670919213253965174934147437095467927857638155923133591823146455605864825462116327557098040221313414629621910827615945996372726931038246122400607900533031467516287982253102212108667635329610582937543950003748280656866360445664567472576075575676311758406430268423393423751395250338175141731597626063988521942844069753846688165816201413955378588594473057828099454572299312557116223168588783723760056494456619269276359602848184800205171267704969224686169223600118890916516001493207620488163036964332413900339562552464652150378091891381530978919622212522240865794749838692075436980284166942446763388102434744595368404800029209146847510418991031584051716184456126121344767342115637327068749937460728630447610304165640006317761126070529330037467932300646720308265381728090674281590474870557633886064288185343635341523961366965230194690092319741723004571746963170800635444896452809656121741424144509193919805852194926492838368034019292149528940176033571317751011380128852809372168559875710034382488419079375815698665281566361182341547440378313625169544034961212736595857445932814041796056756799147662942874317118015735873035547724657945680908075456490674236993248215244880902477006378633034173697879274442235745314298237844326807700836388225815609914837230540582244595436927362712030793278414816060204927748694620852651287378725026224151679953853405577653728333252879727685181419288491888566205122042297443543022378246937649493420215812918415536835017868160993194121135500177696704030429194435408856232009089920566135196520414341895062455148659558052525607715026455440625194611640870717764735428397410027393581120497326768761217130108927025994246677129416646324773086602651521956920965222058646620014271491748361383663463325502194784293656994450282226871318658253006982643383435483700595166842478853406236341625823193030704029676024853827896874532871918549432478446416593633069709414585597464300568435833342143882222562056923652911556580143743451845587773757844443961548978587379539397315491325148977715074495697791483319844645863860785497752010369952705395063704557021482543502138971336040817383328838704083586317413331156630860204601212819830843010969423876544239833727090168578574295239464837100139638719979949033068835051518903854680920748142770207541734408909349461052300736373012670577865330906034817249624330779354431910397245545231040850440252956124945197717486161188615717107011780080361730423359528919020175879998581972952498770103893870951168204282447400068750962053837954030086479397370451102169025868012878905873933251708244525950119187803833756739446036920878300308135049437080868393719723270296664435183487528451518719933228557254819429689156786909110783710542199822612503240164714135485309970575711723936360518326635574771077375358863866241108272311652839979832846818856641412354475039587672978121691385280814151950466823757990019763340677297540014386722884408800273009099521174029073268870410689385784816444939836394977214057424870279564917645078437905559921612390526199384819034747717636945474514809762251609301803843747668690633413306607917581387981268165609364663641331123576561384135735224004313697418542106429361834974512113427934849378596224627378223455913731497244037000472917833892282314102167410723393176985591498864330636778441963208379309426023979551746782439683565408913277813627696744254725230161391159076036823019636242845463162460628201526126513737304130233143472112888030090754006738425383991978724112648148244824920710255928668274453282265135730732087878202136892325974938798185878225631488273634083994362439321271833942220353587223288606221286122429276084766708174818794444021236903101776143042609314746867978253179362223776044909517811416614319778884578613028479715494497753953690145885767214421050159523436259492462840135027100851364515065748471783422871039339167196276551763546691129317493967635184192862252815512627101589322873690345931530744330392346345622974755288798689950577048442786406590810055342627320554166003049879066842051461133993689237567512140567054626953591519483546382727433407657462596580697149442760181984260781562077529729667726220494125324563895099162677355017917258773268370957741907340067185659759853635743148751824073230377619750781249710337124246586316715716376068650937039227572757002885489938985038591649181650210375126245144232847843470122993933330471428793200883965037391516952848751370888435385210767797642674127997812375195921975862526425158047318500965145744803481372262395574162290917431887404643017161707036753229508690251646655541339062222712040414159502219218254028239698542069247173130533170022813059804270400803641634230593096452866359314797530837420544405502447388624507855488515486011185050370352845655080204406350370546782242572190707354171799750204651685049583712527045913690568391323067178637453969794199297489207101989493289176646115708969060385245563821853828971655724032635796769339663911931093185503853026609553678752507932907505061008714730736154471510769346413365774915751394085072880403799430332125314471874666530652685645648140506323522126311516730690545179379126786762820466991472159309210068205649335939939579105726095442607622189328832514017846398695471535058433735681294965522897424540562564568972134617568139587828047967139252500346090933566382232887930267610790789026815088522372650181476224108194108374349316254940449658510870382971836672155848193950194525733528352679599909980961210338096919082747390179794675905720542869469871244701064808867637361704870997900561624743313199296548548059340247108083079556483975099391571393407164574938269016925278234290783377323408240682926590804020724788986723938156045694060250474862892819713056555921783649044964128685196891546659100812568912091179121983186359631883491551342613088714491172733773439256464906894840332795693457338100685241897902992946959131633908403458056978750641311885038680887600839641664060896588180964023472499881320126496316588654543675637119485371413283759882320810420832484812048453275765399621653902233593739642843284937673781079151809014390763688611800858193310122140402615052956754390737393424390824167113618996799513401429306466459896080170446422456074162681803837337626802312540133074435255658353017524770915001176944258695138198447657135188347109655440118989045434209966952084912769368176220098209695620927091270129185751194061458213775784025082221078044023489670453107481144808040861886769204253942110613259970369740042520659359710169640754437374376482245773985966064972875178151842913848430220071265485000905614184373301840813655433971278033571890152193935357715740995575074935888434986377637412396898889979781020233406161360259632248065117192577641680351097748721614037800110040232320930688742015749028709041520751614879240105619854618328361848383366609702148239217063111042260797455849129850889245374831420762768013650260959037961652289316526061175138937613654470530026552638179471273443691236621541303009634123561029553316555976603202000748726554890769843512138164921737528041726981446379223718864608790998158102032585505311832049709020245228402552825360605553890894656219999673839938252141283611526645108245377835654058812042353239014879760545137702669842498522098788135591289572123194184327973427036396735292015119293074485469326679561858177719959732370296471997315905489548742755775358452994178782337497854981475855596575469824758621497651362222744438488003633666791050115922957197337154964552398663608672882293372511706105434173240049395618621472242679235888432962903788800267700827088851746124635170547087746302263394972944969152727843353100959212502109556606370026373907684214112522868813291480853254210196321320685554079959154661993520839019874859363794311143967402184495329339729687753652891538337566649058684494829881463571619154762960945066845169761339775043819459805341154328233750885167943969234645461210432975731095360414865674402812013540224464658754884923466032919879803436796451083180051975860902334633149429102181930978956735100222672441581492980704793683405911608685538106597151157436106755637264791030420075311886190099845858438884307446034752939093767710861027305521579814363000903794875389392056030202973042462296329390319455812749560773422558230684005718849509532430164548722808173622551148667102128657194111891257793261057963636524745040157084644583565894071208140495491101074987803852539702579528417456835400505282077864362453429365739535024009933831690087689319358589610250814717686369904323154203154850680164685899251694991043416457873075629089960749985583005536231406614480220231836994754599990483268769769104625547836223673076361849022240057547813417360695020791444415710350378978827498035639491484472154628648009227914377770428821358913758893790117060186558165815424115264313685164896454186785254206707986395915325484810282491233907324233568904678034678417486515976903105451663659441982605237609360843051212307356181557156579165991690059548882331599637400899858903349870088549365850895512061107549791222148994952851012443241100527447081565668599954907566807948575774061505083870117813133890632724225826178183705967609390933092365487075336845833491154307789851548340173549192720414587986818166983847239325568633719613026524347725686725505047697030143595481808224230241749866954567872658069415362838137260811977582406091676779326190293276153450482494817106945726885401628825824560468030733038445783784228410161682565827034528040777062696562011918193112533915490358654643208717650338158206621662485761552411479310058019563738942493101410840087240355284662234696812016673477869040741731843545493050797646060988439560227365833377788450039697401471910184076627014383255129227904090949420207646833321627540150950272669458057224492737161501906240361087278761353425121718049604361693050719307977942521837384521699067952259527888529588299930449388055083694116113005697849659360830284464835424994477092337920723123930625033260724059853353692245886533432757816996494920112363439848830049637246676309869599542865736845364052406476593252425322001901842403097142743046642309427909844464737649808408798600857255953292420344745127321691650736473368513618222599853335814850962082377183704047105096175826045766710068923261097521999675884224593773353097453970530266736133112327004303745220328626509679369727585810117191524519782323688380290237048109629048543862764988524859395051877366122710187806955812283145512991998209999917676636988010898998547607887489113121951276465562093890806927780023784117803199846181754394000607766920124295896448266051907176845252314469894866963711383679792955347365946162076989994333406631696406157242321238912961372933665956488586471495554174927595389105078636391950817219866105037799250425898891077507119157392233618742266383555538300316881603235416463676936331254185426489743060604782092919210418018906015752483675975725466007849968826060767915121500021547661577868818003731143819211823527054645905614869349759861668162616864574056197580123011905203722346632211247207287990984375383048645886225475739858547064233778829371850325595145145157263034329637053610073402433484077426528501901614453396790043227524888213755102168773817965764353561254886017528930636630728778480240732721212340384180071874753337942220368907655811333470508150205234063646539919483604859611017695520651789949012508483310967020685806849401175365272432512368611026379305028529647056396646856069084706467329832839930228427762098135321063564647710678676838711300803949462342908048584221831936467529476971495050064457457259072436742526935914227501116859183533401488277579805730781711702464747833280041574621845775047312967699465310013607371225551591338649105802425401825655173792413411247237626441650462827015961221931227776811789026130098149695084113383281685421326131179331836121014992722882852769928956930865727079643441378800450182687240277973143785903134946248644093580217356363534711237142270155325599556008638887746361477906314427847079108678347848656231145112772405586392404976521248538577907395875195881726913117038213653363073156064611986680232049177261546349735873827853154185229747231624998448409950843909510197750148382093074811808813683117266699433586758032118106148762417407361430633307149248434048916684526879448235441801369352337878605729824002584564147106437802154596720113175413912993844155508985166164769409430350038197273542947254380751515470692632130531880354133636173626931953021292132164327024413756946739450897110642449474322118225535470497036964132061755649202216802254750752929705599205502674945059187132298012223434696480691327353929441903692216581489535062628647786167448328358532588074172451270181146769093868502420794004657057637082779704918586117471754100975213449018881008227185184991550782210667717259924035352923161961229895030860400453411017616534701711051002926422307094520621947597488277950260265258746606556963270869509969788509444846966383335298468368840519788983098992525008009847419178975384191444303140146044459042208992443271480390490856108081984951493502678134577356789262024852321346025549884162754708382119090726196961958377589308091849418369139466481461141670481971563252777075797919205594371930603257724176035058409939619242408853496800209974244203009544369335257271889202992249303471608154454564004465559058191433081008907943381903972922400062367673817665800442794862922628070904972237938362380475737336888085550977691929820183618085131478435650828870642151452803984540417867038772218245915484704932250098999132793327770921408303816367357721551768284379994779111324413184981002348809974934840868198206782248474153088995520021512648488944182842414211035181054645128358718560813993361759845350538541147653458125030979722805786132185136432362135328089926067308951932980799436885668774110191717257112135732244787953915627209645486270905682518538405766992559379074560702871757126774053089380328165105994385284547233010935441550206368082844666479590041908811102412854236632250887322158556823376615093506875476517394240507616038333004104561318578951719161963439207849013996572762388244364107046111651632896354121179066054871934650492305012674946336472691202413357717349592977890907908073286345964699449443558199210989830888135454586266534198330988650610172231369581176806333745746850139819157797619039368207304319139186320109141217030653777312958826403216000975308715256652838262333109518553891354046710116107865946206753020584109850137860418885358717594398584164837194795253861341667366785388248097756117384454304865999163023577545229764715281021786380990927475053817697911097469526867172085834630270262988203302236182195716457715624334593568528441591468347293529427216072741371664667745814466719800198739814890670101992441034773118331510035277510584415740520306507758624024396509619995222366460670070287604027814910404572750026722858846413879400250204788522106828365297775290470331596688602901658153976061505092679738269098451731983971182256299313205259726593775179814762505257456574121869337262906147587352616716153527580366649546768818220721170823976656026602584684541166454936389384511909337538623697760391725090668053189966663034124581176606095034418786026674279995644613192850571055261114662769554376571057970513763926288653892661036077298906093810444238686765711731902901133134045578722521246416921406333752909256427556146632602812672278416161435743952338873807692517087348589325637419523360011004799125751105705323729148590723888119755670742809066275631473056192011691449255862605761519078280952850992423295578067078488169466002022093607998574927537694381402288830985330007654956340947832619914540788538528667342993710986944672348497212165869149775804867935002624980461349191206752174678975284191038146897899032404446326150038974738786108158219192535876999122506103395097927715818770406003005112811543894625576721543837743175560366575718636080869635126489606315510882629493904514027275693614443077719438441708232626735967286803275442436916465551310022908367701117403209931071223048190660349603488487485324017422706856643340782142346507906210645419462534038251671545612296978989415002186935682026000454646958527844955383900770853638196427406739704080864197039089494983630358606569066002339335600990130901964789392149637992864522992065362674439205393130111026707453799610921994712503201500442244249031007020114430036765165786037881568439109597484494824867198547346369653815412044670805530496641493813181126295037767753675192878384131826860468585047537968766086230063200134575388396011215871824659612523721160413425441994011874594021201598449234874639969355470494499383344258614726093768635718240608160627015073701869274829245365463882641507289135762504439659242493040670748296857391142753040255102714023148501160399302173680482570793578740017984466529272590939283395158576063638919619240202002604108864507770381699536481537557695500035765403273145434434973211692088525086867187384010351206444965941616306009344645356756523211826290725652877236578801416829927665053093671196719661152543735134149682531774870547385846795078329188318318572589176286552373342035732100065647876289384561438691277275725329445152837030105096069797516263231060737601290064224664398983952725076424422878483035871672283560225880025046376675769314793150594122233885733704680294654068135601609097265271999019871810458555461943957179872353807551773464567043956816880223458512778285341228996989272225392168370411064614807091231134598336441439241934869253072982370037759242047970021689797487458807707340153267991577825138540775880626651012987407750037351540842216015326885163189455371848863285711233385030857356206154562040014809851173973271307385666586012283257931595486766481816098133244730743009679628860387850221133586343999340751514827520898825868448480235459939849668894383040688195807952944218198872735962046416921846099211853480461415815963609060921196714887720044537030867867391918031627991406090942356351803623108920030511322791086039189396686848065142362353405122878173516135474673916555539819676006133818562851910452326544964240698311470800680338226841355827635156226269959494795581944720603592716096502819667903762994999877957520147427685229926985705109024073320650033222266954518156800617066549097167242411115774881209503351767919792462104063340642128318234392482637180214431672794057958488103886957079814548368281909892091690230938169249603273061216944126112819273558177092384306102268569608550413812939265308794306528506888969336860450597876955355646431699901152695738840709279827957500129472023754578314669044678077094600486764319507806738075214954308895601138637999206249283664739751752011936233270066849464658875632547942848109494963866653427355539985804783112572250648009267832111689509913603761273644788733799183091891902497303944712704983471631160563349197582986567831764560928787072035817222340970023799619586284552173791848749299744571786195365378752301092882062669591067380594878557396082334023050191826580869557360464538828149355801371405657310676465274225544311537203341328734669616870250681926564942709773806205485041412869962737308825415671759178530434569151800010540954251230016490096550282236356260107596862920665740102692045139177568721818524617537472792816850894763547832247697002951254505466872568705342491494745715573278611631470937466658636803545829052793968763529592620066529197900591842204093249787247143622831776418541828900362945528811369309822118455479573267531751850208268666352799795755577549526657542538177781683109020715079097772744044333259203302883668156872629645921628041142752650654499187023461396920722631317686676874930298532815112255428208967499462608034252675388001938682661680324168027173112414419966727097132475137431283080771224045661761033726556265737232328053708565415889626277000843806344885874470850776730790862464447494475656489921294739229890732929243643375933465624395524409241385585996496522342834290541752017852025261414040964632962950599704430526883053733241331130458408059768016696656931495775925412817518789258756649276487014591767794893711820386120994137155980803950711899633961961294541176846606373741002844322812354109289183125798017404357565236176252938188056703063063010273542288831921582071448929206207836721179720095438309139411694296495402106423238692036866386766162262588517134351376512490178984027789229565453928079639852125138088145197324078196096148515548808321498537385476517206399087641144005179009499047319912802483984828637515301954287065411424501925170513693075368655056676069482083426502145958855544615764459228823308108598580115101347461454986045527506880602095705013155816461153567486134927891597193867050075253070897540796533875749782648314702675446166492965606952641072190817349776393937383211893140495873872794968496824048566222986771639588277809899205913936228694860324871392799544397945986857048528183576341033000081731373400965015708482422849083598940444623185763062138389723928531492607504346084983140193948805498057248158129549130036195241955060329956553399973153026140314265894208223966992025040998654809162746114715405435329635211611484114339910185668437005035561707837580559521024947694427804172389592164750430199551834241693499938525307533510108001061050442089630650014836848985808638361275326306361836348756179258689904961415862106857859154016562810063134739118382595975160485126731930164089010538321524507235065924696510330986335866734109326968303211382992695204546429214223443620866227203318661144190782362241465311053645796412780201671399176082692606984294828626282448993505150935732282370812191738147229235517729487232449062826935232868364604802999776140236530760037760077023393211028272589050066682688638085899243827429885596266450321011951027940510989089298403887468681905201350612445835124319538884190061309026188131951335399604598294899936144568876920220052046050902692394438375147853126674080717304753172653931731536062634315502313425867686934669104448313421878258102552836110802483581186141804471388295736408639381147050713108315324923689026887243799975533917850778935113689557183152343980236645320141964774013623436342822671507764928621333087012282656641981125216302000309309718257896888046553359639830303422030491001316102471250987201612832936165794601033968065401545871438584678682340305640627567591202180767720030131354621607906984398948415821762487481032182113651905571409978808062382921358031927103036658971576354756324628714327403258458689532615950216824906355560564723393766371836822684239450176004932498060945109304971997606435732324575543947681536238739611447266193637199167939513686684548503717432756485926988599016705826620667625919991100908565121739576530696770861934688926998701860280961627215412466109741227467410406686168730877868214809030024633732321134823304085324100104506679463804521373269372581205261062519052497622094951435258911138019977861492199568055419422933250262529030034987352549332112505932797689998398173104978671259846889421352138469854683814139100822143526851310338061322483050121338945555650647563223512659257162562021312542702984880981163863133208770138066664479438304287115956077567455916791914407030048345744992082253445178129248460719214615840361215381288572193344536990999958010824300097787936054628297086547597246323947091143120129990998991785318794685650231626501145254333384214178982454463462057560854105476218483885577145932043784946755209346526754860178544080318910460550858021919501866421027195584457217639245738124452041189353923453840783715637621617304729703589355464570156822813130104068439092217975625514125632737418648187582268785165829237078011549464008797373942056423763611940790015234575310078664504344188034329781889851307214102232409984939725842324030263525069259410512872208967038521704182278884938851781316679752792719402871957295810874164153808566496369832560834099060014562087243492713089766399157142148509263374543574840428537788716142332155889830907700617555654374978849343207354285645685459010192614880111742003514436487153994866554934351327104332923952196507124778819375187627462091385290157494039019554445920838730549434317591769558158916130494645361490595524984781744317592275284460594578120431402024003606224462988251239195636759201840737925707851741648728099213517005375810984697080485129919148149837087700468341204184304471531739830644120213648499406208988706780610572463220723343747388510035646940962955400824103337451716687923777544884764829224530738857635582320353811019776744169084091538179176760932925518723610424239120525074729079998519908492377162556843142813126378079939541495571718752700855271112084453019047231421045968461884091203091190710065693820996224610202420515637038456672773335353474062272964721097935666048711718414683790426302831505533995156362292531763003952402264301943591057075609485440954641552062395132674745380762204377310582703033468581998016085762169089555532182746528145474786989971182891100652395658650789434480132053503562259347029797800088074411644713849041379627890610190987109504348362768166214443687545465997908850226588209332756762810871228888294235222107277347425086823290226611176721868107286770925114262667710855347352103876341786116551451020392449237198606457990288407563455457793235580967124497498263174118372729862745177045870449692106743198665615453100783470335618932560876247011173608272624953369368935747332578551678955814229037914205292936815795530283609298799329449187554012451587054112117761933167332424515351966599015792062357748573845908068719546882210509903465330962630822012203120807130152277012277297780856828069152108364630108943178687164406907775700592554773955155523864707696640585499371959804752723254703079509117638086788648844807860065855155255893851173542093758032644843501899471722552331496444536873409641223197552766901775361223733051294607842092772274291705420941643720591476795563659097182917247375576481572858171992992293411251087487189282207203307913968133800468835714206048918514240769761657360831444107925261077088773567112763993145596271665027117685069514017745943715614140960250570054094203882988297181069967248141452251612893026231208112813554741287832732658402714156711364411243604717961352024427129048993414519605817524973123734484539395096134569269156021013746213803695828294533872156001993320177545100125585883541190597291515685974262305398559358246499787595264570069470016786306628981446209006919936500097791624768861230311542142892028108963636519020940266578221508693637190056734366988326057450837332794101862413437646880503151233821264064911863151942391605366122336059320758932505332602048893061401415872700422850468113024493693784542828773569038697415549132895113194321523784646610201690532348358297396249330254455878342346360840218679778649603920439841320077374921066480691278351082129670674939189085312806666699962777276530251442832557444806112583609778737329805234886797451953623185025108394751906386961827352775682602773895869893557494862689462002459059746935541260849203381959927235040128206164660449022425644574399396564486373886363842932851826001448136113007149751660771247881329500616676638439054582978805075840447922963672351956059267049336945736411526519634234469616614568794780915701226768179315394108635405830304596057581592517848769675611319589178215448217093735032937951174707621038839075464850113127232720803035404466434401874443574412903348206910090696260755647541745766524297955684640960076768697867190789745066422847017188629849859006676249909806107841608316654640782029229331604466394074500954416181274027667701486444688606845531010691207056760773547687054721867437543202438532616129565059922538882159042440172822709171181170429455005237922400827110776493494954640601362093603317834375180866488548770649501499578427881960966886567181617641361387413908458293943066753103781823535178868527582428116429331074885167374891931716755919101684902197535401638588132500108279061215892640564567639366080786087885364393127574055626334083966906660614159093665170004352182047243188089079737607928060472188479497824965701013683570407663236274969092119637452178029219436362716636093899911240550511733797021853641492930869003207625156399818381980752575633657872239209904018495571853308928748336476710767743031438906692326992275500360077218739907676853632542131079187397583898493538642937054265959556210874293884924957511134146439360391599435140752492817296821080869125521822335073075514907310799093745635360445549995892033639829921188799792871880971958080214288185974383822409983698046964915286187033937039782336425931100099945531166863920736622201872341362185479352055366206204646730876613047250056063658104949849044854055821088908909800726679752073032610599028103979410597949981664953826924472833712201739841692899179620585655158937372330307265839480257181707114238513179855280135434625558483213468133888229021017860072739854181064240004786631570373850961064288290956927075365986113925432581376540110518320732799188544885818694862359957650905654407873832006721036612321659413265196416228085855312999467776226956613929904638668385280401567323648604949708537335237411035020019874059832787685139807992425482785799966204926936843843247681544800315784990028815060680444931959813885592986168314793598319608025022116533157655065994959455643696139675198513009903636639189341423399022137903806064549391484052976765373261611257076692669316650555494051000946885946047393741533103483513477713596761433718676531297663802995974134933461473007540001500828392249337469857844452672790094512207517537204615805335660319135321257390544145724872709798785495999801668343904490067406198909185154139934345265190353272192944486804301694308923685239272058205445913719627397181607128592391584595876142225156533164581106609750646759589628268359641385215755134877624471064884312180484831537082904953105543072347439437445204847215293708724549059297531589578238967296510987207295374655201354188370343128986704936374046875369758523037306453177201284021621550787638946647508012663619942888547118063753867576768533785269088306656449938994465135871632588906829108953242333867683214013289247826204764263291861990176133763790843425298014682876397974340946219387103985257426578298176579112212719060920213614385623191169001830349467095489821011593137039269446939248160721210968578676449728719062164455637740763210883918830384770601067677392335482278320400252458334405918177757008522926181283260712905980507154525301626052914455121974678345845788520203101892493229472860729652260690234514510312138552662049719515354326370706639115410821140449417393431885043772508760803187273596974310902158183103880229695431216191534938711362733240629658861216192632818317415456368218254673321942602144031579131616317136756463595473785799687471907310628175310116591650443713261216560569558292621389028702401041892179270015385730821933528359595426184534917642809188445191831949226794491037308610759908927871564438720221750109188380843049859430929122597952243597641013190443006923406012534881014858103615997145462108407248538694786208714825939312173266124033558213624112656256170905165341358646480127672055353211288457651462261972687908117029739907037026400938389637445383876870987605228946128049867850645425178339445121695365375141819543934927215618070662422936730721801995776216613826183778269909958158506031138743991312102698887059921056514365064445487769259124865231668168755878926309154744504252372669847151161389558017993871128407080869159540486929914862044547938688158649908957570406425338707322321404531800890072044651512761793460266502305181968343654522718584417689541727807584674269723959006737676035355297342450357013162503236065100781825939581466031510796328593854813399890977381229783917571921221972574612215081815479906375160770142378307030547272881465699109091827460738447168048587449082781519556211584852446334900386350252422978287617870485121082619321726165098112261758170002092506985577303984276529185679648919054853453552516502307304722969756318742759794120511307825434202554986705629152450564123692896043055350985255443116510901638105616435128441332472015201852990638080952212553909481162647070894047170120436686405423678097892521060620966863385292628279580971905143236802239347275364235555906609265369441002840662561746996537474636348330871955533925589341146186545255830698192494122112952257309828528749330300402808302048591537934156186699640275469300162662013940083884728386544781703485090580906652084446158294337640542149978187722795601293783730392292860911932033266549764999240533569157871297062338526629208650191238422926416679037624486469966797594601727463628024642337560553421674473105993994283554874267965593494644186067003318409520086115386533395346717049317203069131776525869291319391371236847185106180679416563764807378196442534714428850864831294928096786262207651765275537291903007531426427727183217917647253048821303210870305366764255462796832359090692223393424844015260695187408607927008021209746644067084028389029543858479120038113137049675392043808243196908623095361014281755812735034524415621247615706433350416160507744668845628655121337451041450218235515008552672635961420833580741661329404087274341033348539947129753846501611625802814374374777425787475273635132364855493072638466983024228596160095940979291991137011385201421461652975466267079523527502008964906676755295302307840600165921977844388717280798488443471641173494640742111725560795234271906105596100564168396323337903258921871635432521872520998218256083182194272666781234772470461918107744813915751567274511825321930946541621925316606042673732797367577714459365349869158331095524124684694874251481340144321378355476360144252655542074217679137423865702490079002051175910906759922290695837373003715203776094255815352800107442291261984618967089778726159769997639104861135318606768317581566469349144851426338883778934257011869401764694707535198727406279899995503290133112917849660359090773220994992900065847517988367842087979646461492569595502287247487775614274037333650559524364469657070206288707504333220342175925316172174010704781927464485384703997881668839822415965805430767932919525495535134992566505561810242340108623358738873588698608978066147767569522008245746744555761955593587509947016158567025801467758901010471321259792208263714823323025685876957309089621774776101111542772071300232856788173688661846679126314098905362990442557578572738449790409741485031259170033011606875388825163817547338144327750383957137778189566337324170869914234565834464963961300641416063511653684078818088376127972623867141079152200708182934886065821315317136706079528292500467758923942614940837692474896939452074230714954708818807994472570254553585933563807693695473692816689227424932556228984889315895942759795061764747327050075670779179388175691315064931859371024370578263896024829753832088790089211612499481960587965444609768148641598855891269601612422749769495581053902752269013389702579043493065511928976195021225991715045863904515197017724232548578444184446564790069959921502200437797244864700584945807989993420894791279731326617224017913431495168194533470069195389553906258666739325389652140381246976550369895455780910194903987743924127541156003434024359789240813174977974769128598585655281007492354526153840318499091470547361397439046882994497934750943215856062218175863245930877662188241960260556481557737442131684679214020804223916550331126965504197267106321280684336630089467208099276036204633508773505371108759465358266009662810564746687465385681073054114331935470298774674503486284325143743553035489830712227038642035951728198336075601495411606679739097626917789775399659925930727180622645255590254463298701033309289677545057689988870246241155034469574288513225133011705322032887705784534833879433238526873303957768096427666828807412756755660687496915785425795660662023746138123798406766559921754560076602553362144217820935309202517620458651368374481202070980723407680874172320245149608206711848120301628809979726682810552834666555902519931953845664615692214193877069751926442606001446616963053475549114285773244594826616656349012782254447558526713169343779346299971894414573305548303091643595936841873421449232200189319537212869409947706830046241114663900184115633074931187308240243353988210186645311942019515057647753107081911323493870866364087076299507211728621556020462919932642364288488488324713092510322616937210634319999458419297509935113829010695917478231055365058160778816493251823560330394197356880871454444366490049313546089435142782940274922050177595914063670117528171460061188785752764522287614649280015276047350869263338012817025878288287896098380998006129912153444142599931314306556796328029607807885805182668578581090448925612789876418993310299982104778385057941737390636267726387531029046966858531887363307791226979419180500828542486970178802877964467974132301741533583257391850950464243636630194216895654932287185652780515900998189916542475535580296932835870600512991222437849057074627702254029670120762377998598051902298701030426922195542041229641072856245408138739739437722250652202407317189403537586832304956139522067738655454977356148817163231188910597442166419057731643984862075240061860283698511251331255388763837415571522600718616409425656453622329144631575779597587766325587149620554787076547893882701842612161644512709987701377657248450836978343753925829320149857063609963361290162534237430205648130562027654254572894759803099221559829165170365361432475969834192693345942179840179575112434402200544106267803682078442936558794248274059687805524423793113989887745993012551448840259924832828834612506940234351889555158632312536450007491080112261665386604190004228174700110903432878380165372333886303215705616514598841271338063468120559180026150609387360975381213235547109666239707921582049214861356914108989895585997324970811764102443120226442000131504379703105233061174807741214188680034423257052144905291146666834918594713805513316807854716269032908653865194460760349839518979144842548681976839417718974889921148076690735472693558619227672047924502906802678452086498150117165339697182363992106240491732010278502607789682232657006067082443361191520848606090872059301727825422589863489382648410466422973444382291534676869246900314739580753623953624147221965461670862428946568708402112511721654462326315947107300619136505255684758157914313147521348707859530685602554283957179918606820247250708648693555156966168707129905436639323587215158573252591567516473377845115728247466660970419675859879976845681878092952308310309282507096216739095354121370461287108963763642263781233019420584541101167834080031207994015211805972690325463026291136438487407065967187878081558758380625666639623705438062301288715565408128490199092159108562210487206890685019800931075590944635252029290368005844381377753554651798966314574979313853065019371210712154449685738833769718847331988553942291716446037029895381367796949543409038592028188325013292545120011189824597290212543423637600170613927046054838537050279829771513967939076247816690689554723224519281435217465306784555501070909474350211830009775567534622738837676590367445875590554150364060872917900829208273285605445324529845949159427857521815869141208414865263369621446784802954918500076224547014830166332755884639123949380444183012621662012492473790972377862250659439860426478049298439893067803743264106580186745795368174072033184478592414492755598020136058480853254109165753303326677302703695472859302479758173478153998899190404824099540083247138145723669462890653027454356305531112390168252006395917498714892240813781125988258896862972233595473138411205469602551678260744842733010608799260329205587161837847208326944666946199801151713861344215884192537142875522298055507508571958783672584183248787296189423759465603923138892679831821543583073389193544384350124738284295962775345043958280422957923184637547262976352842064443373647150536800448765334951155242018602234978389889862577957924564015361949276480385434620829240703440665051375681063093599568225363791041361522308394108977945948478725333474648542490432713005941709794558724304692546106307326655893909970649452564228647041833203813271315859507138345060676303541910832398402636819052381509705096295301471357293603137417773058548333334510798947145544460656010430590443873927624298702031950317057657377710674518559599911864310132993925675292020606747041064984233862890905312336140787560259166997012447868514455891533708224118646953350986813477072983756595348170998074581763586762287563440806321063063886478755598748896338947000844615069863535051988331144980339000039187479688179879913958175980884194049511186436508823833722641500068650360398317069480973314418820466820783572689814319017117958470230624029141239116318990010529727510034004396747798931086290126566847243099894744303265489544966765974460053436791540822226870440668610614101647231221316124113027566337534842656378449125347686757590003349854062946651338191836635569452728346973580008086699034228896922434124272060669467141890732878281565905727234057985551256827107870130568704285366005693683162973813655102427426692080008605988671447308954722944982243378858329471948627547314396979928127462369223735170170895026239702877189829137839904542581718720720159498016883035533893025391100525179852807771091831669432985169945374959019791004837584241614025126030930933463527786894291533966870981719539699795540806605664899026545024990862120516659465821434302115132075067634784807853150444280678975185389864568565264913791428944614374405827938508639822507505474973139364342330288217500285328214588055499540490356427421024236679806362789415088864291936111078369562166158967783434417608516976971504656336748736109407609923411822024735531638350096701126140902710163963614046170197311872064835366594696797135687682468005251950225742846246157067787254567170616907036378896020920124428072737379952433243817566827259886046520408820251405082115617972373906359004218704625867356275752315966033668233989953557311841065046812239048214407693677450848410696130329259853726432747729084540774536137560975028183789842033147983807340721495651117674993783822014896988945935113606830436374020961222509432865194921844041603873263818010739866435000556884875670949432849428861039483115859889681485612318024439367552470219333317083176331066187495538619667230551149447372332786544286565138124508697128320038575830721488308336385485328850176969148848301312846387358548932115810420575116873432489187967274029320327976494871349158820579737481280641716861952275066177489858314928238836555796626649335242758781614645242227033978056735912507109140644258832267402206299561987308950922677942948905981970951806165672941927955327840714132971382270152536432490652330055523798372752273684882917084868988743336448169112969211082838818966260243541273914152051759761330191079608294586838792460578195038951283198868098224807176492136750991314821796543622782529809452769192073778084306263041379128817352676668724404149449928197527021157784332006951218673403705194182427020900165919701261305334919015005434020414133345099791357533002223898253158393543290372246329536891197976427703710075952031867617976585518347265190333483882034249825245670509022392301735892788768717533198957556477008490503853056783236838589734557676841953251306345791069900894913188723453497143061774547518608212701627325918291882259862158666773448105816747261652780784201062377105991702441081282134787074142228217285899796037692169684986719812892405012464017788872936386124529169512806538563559471083794064121921953652267951140930053923639914551073293670177092435525229723126786882018414723265889133006825258987652617848631287370534872699212614938572171865756903275762397372533606847308941898995046996760997334033279021819749663193813535482198547515362010445119603118152844044777700845166983654664804107939264024182880398124460811946593929830396463698630250142434260228079508923041203367394048845155757816160754431959290116363654720438947066354055549084256759240084151398757225828498676688895408334866057847378405370260432099189816582104622915997336124402253096895765223586205577259183102811779195545677736776890599048175221862972490270948874517639431292080395193391177035864826234567145658841566346999723686434701150547627962193589592024173354586620875719153059592361008748636296283196332094440940437533447519020495603190505177152042625202781249484626659957774130567164694719534144005508803246575164407290202506807897066248001417542686473644277286714226656933995947696021973035124473465430807738464497193421652115460915507723471482507035184600285283477712964912874722251145789069358214275381744910440372749796877649643552597643279664605153639219639938258688706887817682863959499755880934689185803084325329282418632163183362268501224820046900471275477851125303220696788440193235881069393476759720212528467800697464447947525583519369849534690421684026086798174951527322835681219134538623192896000103546726882899758363856894365183570429326546075196890942192779352353266617839421858816478821220089439845251968076082739461269187458987227259770407472806043047724210421767794252370742376036145141819791334596358372719225256388224393230237717381710837875760854754612018033543211690187105611073115694385062488135143418798662254692514828793413975497507611765396296945131079413525895578658828880780040323680391759302560040218579547043538244497976986769430223179174905349801251540365761751898328307001159149072704186167364107934912992162512829498723738849010506342207307377201465026022871583141621250413511238051580546495256096478076299521178892431773299593446864983343016898409472849536481859513487146393250291778968097078809761695035153882966635944053551247498552303270262372693157305650618835116772222079278465142423750136393840055667967489889709441845356713620208857265990661822278239050533362482486041148610070576172060095617314058350604195191911078266486085026212299715285568071554873579194681145418790851083296901925593515827593739829061737464742169504396977449998014969988173710265437415291082948241591950049014027553723055112243630396770479158705612310534245363197394286149071864578847218619299922856139411689521637638759396891918178666174545704058524364455416998270845678062807943602777763978106918062187905887364897518148138752473946215752853140278365011135921390845875277647043154777680746758854051643381283587478423029986598498713356929584984003817349461962479088241619314452544498273349711374398125233011649959868721897542902264894353646762983309144090028770609294101084171890011666493926940822719486836540204959870383791479360423342735887800602968447038224282326229415775518164512492299513072549158763727085990417602548069594376290965472979372341098949532186509722362136672122071236116148061696498764318267314417232370593679013060093117471126078488431008689249214104215852166532550527121339364145387492093623950479224955725375050088395974048790970853668086924095681027978117340482802297164554465671292065342099733081309781403705132916893549142911290399437925562026300877899116788130607622048793408169056412926482970090805504424805960059408698148605557505109789867609839916678221262950481436047204458599428017604139076910977610727992308788182182374553843305998500910742548135799137101732310522170838547874541583402410525516350829549348584079546805618376435296272813422112104695793032018321007701115258896604123325991300508567721541705790154536154372398593107460735138034116588837445399246572474505658913362096427191288703457292694212193290963710328197367619234141312728050623383451533157204290232842642221402370070195296544444316663740700118676721992916972100255531945831749202343748860231456990757854377855560831489213091519233084893134713517366544978206115031683181286872728875092607199600345568842959513494848835265569355781076297476322740617840352899895077061813897597890096342461723991267074012646493888399021642673762940279530886593377981760838819888264091202674059901002433401274796617290993491933518557250946787707174753799068212041551852086235612595821203363647828349498542048604769117266796971233082600023969556423295224061087980788862273209462584585971700253415935123946420718614923232008086045009186433106941227911553122464855464828025664632274428909816799143686578023081424390103993959949780285993976402900853098569626749327979535988255336557334941188417617476669359995956879249069969145271257955965997886168016711914668317820616749449009935111587824876014029493101206650143653260995775401541348407255886344939819773720202002662825867824160932889708973636794711264179642895698662504016321469205116515225227473786101193067425613344475819065726206344349935358157928173041356782135952486559430526662404893047000575679803651650112133681581971632963007120551519570692314150296887271457707099543029364757127626260177365249912359875620953440160749858775556301490153552534820647435278613069349726772336743608036728441069001167556101144313727670701312036052146091939469153740481722283680853355138346792179573787395526393352565195467323062843415441584518653228313773066091157606980540883232773633653260120311898961996681210555995241099835686139086707339512393659230516653117147785385564349903533554552173756780566056634137526226032470017748111116988744964171117280698659673104479757241374676610054545020190058559579527617879247208574258706607054190094622208408993354924402598862450900428998911719152493475591831050647443292580660827233623333668653422401008777499410404147103967825806620161539820857355761939398717974821783643672011884037353194852873129260919057787975422301213424183298632858537144205601171621334785831351592999048456995455038507024047673167641143662956473300804557472943869627173528399803656111793901250772640672098679781189638826661460726887801196985211353892748516771692225790853948624888168703742985527135451353834534252394705889571930958753679013726903398270569263119026709748989124876934348001033665564549398063583781863251423077475648092091986963357653490817835155307481502183307791226124637185696085570447319879693027526568864850927197790055606765950591384443350849496082158588736728309320930083235023473787978644034477151294582187828758816382298267560192448028554559387881126328449134188761711685657125705068062696281384795734864414391950205703553390150112360293674379277264955169548385370718841660629138578826013131023112735386191646311074684409554677471136689209972143895716124853677976406782715113501606987867365626987397737912756924166914396630639182069981150016653187970408898699591354251448963620211327412405369240542485369066196255633778110943678799368861065707255511638760235030974973489869322987091465536360617351179971963429668752980062230185420889246783337180908051007596208990493153007276604674990945277927103433351021214804083509933671573742836603219355863156701263684570834274698244641319270342915325800036219865740595443303907833752849235137743365599681907272229328803322261077588530447408009440149921411019578292030759111058502776794279869579270103220227309807312878395768618396987307477908318837042992973230566334898449660837507171782565367387804773805875546682765967855430881975554075620313751589961842709348717034577692905445214795449347270036365141449915293058376663946403832307512139886997429862774764605428644766486629745178626734606758063211234687767244324915812180442371112086794002890190284893557572345400765281100733556079627020857206823652346453587212337076842995303817503100925913011017707845880927501580040771879664006502518002079061546284848083137903000132928630739070849487326711196455941902626533825516128990617822305431752201151752120499380384481887655239069053684676887266208613083870910984477360929126368982187301804945754465968743216987962152372584567306439575035556060491201772128531149496377056061437743600822245369867404806746379057510624448862787153293895349271992615803255934974053093223914915951370356506737913702330705081639993245691005550726967496109633282411682061225209054816341063354115681119867284726975763114343434203080041121788002194800514424755783379508856195763847966798853920311936650919461072501548005410760755233472221255221380010255793673186977417397214817185079475904656677223161572543739741972895119538342461504326279759205791848632205217499281646046820734188756291897646763912457284380470137486450529492614892426169148992050950396990526785738239752143218357510794993241449780280721524471094496004869261411173322767614981828826733316415054310862098248337171476429232837419440074335036539487362539937132988462836818890041193372070665684840391829433334300077612690034167660984294698179936465324164382551106262197808050878525494199954714637278377654187538173305546221392835335492109221159509371200339873886759753940274568596484352187680039255027639495925408632024484511463992386855182057057895023408851134929663250030788969480450788033101138982058181290689911803853607247562004821578694789398262568927501381413653216262289476803175737964231967118445557661277906305300218419250232774092473161554396484045027061302735971028821205468149187788215889202280150624018547936470555014850561413812784574314974328654203757650798191974894341621454400332186637610530719313704638128123301937317427096480660364533071683734867446631473254646929498598767239369101983124535657544780541701752548190945066367260536790759597661607479689189114813642312104824897139428404397638911416869432454550810901401022357807825103259465408266411535633154896146996856547812070884628117798763547984306321389540829804711211453656315877394850760911139390359605031269462878812357033838863242055988289262992575640235382136503025160407510614015951638051469760102890769311377507327525697904965603624955414042675488102516565190780003970042940576993205227830423262337467907423591068645814022039043860645463337601339055320311281706452003669602666224229159786954789926311949434776316917526711146485655085270465790047700658192696348150187773232867223262120018045224032296563486037624203710659807167563072178218328629820312374680749487044936203367311583060936634553015553545589206497356364162643654611458391820857702047440014817548066984922923781457787534256091754979307786423909223169198263138977869790287508373898997862738626930462494377409024307048136666862190246794154592582364958629821425235225982040408208193316728347080454503548894297613268024858668660343463044004387706331383386601447539292849789486195869835286858039308051819490177208270079082217485398643502535923665126504880428607670903679801854006832772445372182013622056797072294983628405446382438631677885232870220936700340737565859382807158623453604813591915204578435932503578026537906435537659829383210607334454978472759571414535344912798070307310200545990605895209695759623365285723999129850602297710258344434804456522098815883395262973229000958745097327150641929262218230748613718484910819395591068135393702809401051542974320601385784388991769451031517410957814812528124530427373519227379717334236989127007358540313389395631798892526290302840239593634841499900230992836518377547388475279338362756431492599122978237094588161761541419716784674761850570609445914436600672994983801350613573264961564024217784673667825711779527321418617913740832014493796830144803988886037700726476133127680415270666291404397704980507110516387968811438684087771911957310381203772348836254655433158091344521451402084374081962727605505074193170489365865717431526881948918019371123969411881933106649126077239481148388945161276175556072939555471307592293519421382084493774670529387899370296750293882936747717718147578180451819309815322627674138212795101522500202713160671424856148664437471027377677357902168755996170011259660729513320140697925090098773311531170584803730054248890389362286142451255776252154243490225897665565596666042451607933110995868853853035234983687005738411253613377092675571650787572908537968137572895476752170628191295761182899979373000354126167341826110289021133282195662961342905059356644775310648664544195540033493986870154075407102888985027090855478755265803538415748858181279937693010773156021296935501517389255727218849144081914801036652887738997560766800320283095942070623287932713490532650793797166510438944340173121974819993032682106176758685889876265419066269796151688951887087689382417335041195542264879690700353034597085324076309230436015234540343405598465089218449228474312555126597251475921508014375300670952468927936954400076579570452715062343547889635465565875492268469025239727645628788037598271409805354050405222039535188442129193742260704547868479094039321749727634138588765547182172062549661244645507761455720701832462797461936327468455634447327156955569770450154689782539220537137546987339875711305989227316588024896290533853959022703633803688458362335828366185846359533557821986993378137906565509818891066321319834505285606499379377520467353546886932161751575096805481691674576170940793708784980204098285201044305166561521003476775488135939446833238398449049162116031501026668106034478336055593141239960576813720593844259746720657704971032233499733832701121084724407091743343335892179083894887609996714066380819163107565192768992173985360093411582891323513541409514568190172536017026629064984622450269246955058306188774129899254525456879403031591453567449796693124022260048643949859252586403865524038935362726837215457935736064940148836782070244371617049757213847044967423168310292169782193326783757576066493841180545729059199059458396866019519835633590564351034960826049951921407254135275224026501427953193417597271377916373061444253803497918564273484759352161482172328891532195057947885826991442590431003606932874057746689377006941792280286854438263334189208621984183402838191887663182623015769106793332511548854322186615626949331248705664306144894953138193173965773629289383407056693819109389304381135470164567586838984985195132826518040213965482350026642164456587152485899827409082996031395124849011137148647703824881581925106336005170957407626062602330367431662062242892028582487050983662230775322318165333866864865344504680272800179325769128429948268565056251607832758900701050457304820653073545398231137177691013647990768027381341386540392135616854614708684647312101660517276623993525399320716681712563505528955145857092456379712835415073726663680109349315174458648061878550003893050008143141124792368104231637870485804651606809080105339083014025455108493517856007801334470918993746745360120395879460891059260857593135082358526718498765290106495593286594202859358562879855741234139266184801930434408413555471566091983187742384940290112797195199966488563891215315663739438360329251441389193380129938252411721545078102177661281308133189033749696522284794089398879817527914236407383202225025823403675205761051490727087767603609002641785362500588700028188264563818459690606231768614496649980810892306569756767024679191716744875436903952103612164931902931047234178269855703231350260835388333922491839823222397346024508775467416351119081686354276317212888111832709197801401717348331189962749801023606535867868181356823475848988548163241080553719699866564764901492275961549235590410663510197423440039324957263674715781511623180443732467821098919144854820449732423499455680660653993105451414879158140961983151807091706412871806700401501128533189123841148470039194773427286902166136556128521841169983712953667504547033355254064939101335758265988980037190160930440839157606840098658712908459367512620408570293685704930844421008084943318972204776525156676520619423207533935522902770862756094428801562874226585390918713400678520104654735085534913403172305402922309478409187148620628494108703066016550467360436830971114759645941305606748517180298274926618652766114320752427899671697977349084858743169759748938113831211539960768480816320405877600216706070749462784361030611125311478061862488578900852120161027033798834540459511646396824033863571810851815772432300608023394004002500377112597389574959468356209578346777268015424295865279533739675694011861563921131625786269578094196938935162878640029916593820609798634916771697500905816786994695444689186609251245541389608724916650306133420193433974306477801951608641444524222161317059883109625285705081538802563590946993038952147166812770475204913860908250545400031123564676050893209625125483471055552480785163498634389494293376683686770856789553450263773954107589854811874790448628160251137119161517171684225458261500041305121150867486109723693863574759133230221959604707469864912714796594022100864728999510892277903872598942764727554167215471595806041264879787038822964651329358309024967187912500010810601266786344378151738215417355136962724996666871035734189079585390093711414504984615288691694091898988548718812134097804637387068328045636892996378995504351946377673535414688912448693129248664817166002904000966753631108169497300917853939565039796957537451249689341704498162919830781110194801235266610061074384537498576590248813510229387186159387632172960277894802997289978813603173592483489546844730090609758853256328011633969279613135311051096207506078669635269695551102562781582052110119181975667155466910082789486114683557440955266383831085332064793271494676524232324998831053588208329701531577963055168442654005044707088037713317446495629462074423851321119343602075758010945206143303724243906335791472588198727920861599744896487239584413539868117429520384236832582143283324224291579155539977966834515522222621776454701966162426747292333082926077283733908573187783266500381572881001210528609041496781679320951472372258761536945213348773132891459613315200026388621714910545479059088275509257372193764504637698578867601090423291914502879059297840027206548547545012656383816589617520817958896280028381043488915672686850662699389442536113233221620280522966735928112584909191979116728412838866752736420733270923799556949185607240709062164988870164575803044371302420382799869741704221759098651597751005228498531784102495106693089724453180103331135773493603735263728368832092077932107700480043329021355793159328807966394851041391963172355670473331635473412257607939457181373555053146141700115692351867019617651943584745688196165978438146022805390461914906503539855584546875255533289913941401387362436750030899771104065753632242674455793037039730164259282823854554134483029778063079904717435706734992714047173698376936059809375127356486841743081197631223640034502092421528594977305878698905119670904083598895400543885129548605543873567899569814151426853810606228286025617463664997546101690865949800066855048692110754533975357389125380437465213342622530827335697654744215984306689362330798018429537845785045415085274588407448278331805626936250507203177703903128546554528933922514150248565196301955109683676335945163888290614783477195502766859408222872341388263825082267222859515091040396674418291652877285569094783678730656139479250905944553019309319229215708994716611923406066530470794549962084669956490580173697248577845271908581627208451508000429741320194059729297443761553336335900869231325213746444536045333905754689539253993259105286759771433585915606018486281768422068521682213278362044050916594368854625228922871335774551647551623370161037968213824939911233585385124000234304107709288910224841511868261836962493291261071497591000364687323966466167336791156124403239617141230094667296692966128396616462113359280988027629385756142909494525834021510650543968126345181436376506483815692061243617929996652606018093360522318804062556430320270405714657497837904865189622744944191000445946298734400013649806023077573578640184955235277631765607935401899429753670389311108968798796137207478273358811952909887619963720862135609406479013304214565851591643643643437745649010507467532642112005497932577003224569929769303313924191721746903956262035058537765267233394870140291172177200934768464777269598013139444009836154049150098935863095398565382631330636467415829243986902759439381561892953991271316439596591674266400695452647647785041328622206992348076283600122534291886862846063736932667617721744264238589813141570565701525061009056687799332015568917445047163004335523504681297176924444998031835449870180588039018408002536818208952344600180265324987599860110598989644502563975533113284750335906026315183533326888590754944467639887781835167390621739709981554713679284950279942678413383721125359899646905566899067480599110328790560870276505564165990486788197091449876421012338765817335019096856560462719507578802111397792845387315040780922312806261822292991234317540280925517497796154926324120953237529020592514517655443296736570695822064310705286309898951864155671642630729542047748350632487532951789145023520346747813418888351781992790225094303500035560235699002340632006469640690411035213195824581304035179684134733504734907816621913934238917618950840010998715048282558088629967987498281044262614658139295238630866487158225205502422847952815065519057176782277282689891745980607208410245955561594948018707568963408393715615851820321728476167739109615323114032280133677330652831749682512240917820457406137659823535692170972601563485852238804596038863322387508090791568293806137822988807824803904277153870146216942503988775128344967217829776203351448693345498698803016213953597855733264047740557490907807604378216725998851429214653004947145463299844118127726254898234757599414592739736481444298181916573482297241281140193515118554011472264522288249494535393434193173561518895058468253859478726634255112925636971095870552866524754289503656001717487320166111909161113840237703694538405530697562842624669094876615459663151842008184853509745899243386671369698561374181825076195832706098391814010627275826249003390830722016429133596704253913504304973518238580365486964011640762982519257547645607533884017692695733365271445558340714682855997653293667898917680379742696340317352152804587739229486998723402511339849450683998725530079548200547861596639621260551882231993253588305415542577678427520852536620166685523373067148915496628527554145891581038013098442864468303627493296534417438042063232298754401122625560772572484517488414479260310258186039249738817188411210835566485844761275331582093977849455631810073447148612751666995354163073807430462429207934873661034225701108819292203422678682307752113610506829957958904434901453397884180584585255160653611809231450531878591640540828853518865696513870244371384455964996678227267453985096635114938892084531441481505889259477885067665076874092249776924444302062531507926385015539035107509990503251209638530029533807413559375046784114690114408073911657417658744512361299793955897408990937090745173807735802769986257237446913845338287233779977247063476670503031723149264930109407567533483226514838647683574546384516138398461084072907754461466167978256061701248997019720986771059700401012456290439494479887124831519131826621937840987929422464616886683425835275493346693521941455760402379618951860583522715650323759526441105213448142855768252044052230153249153916536825416278554747950013403856558404141753269469977798510932828553203227586818985776218938847700696877661429443291884143591285936006807020028439927856384712992900147085926816841962197329672148586755545804604002572758594110129051391544071069821510300686619675861499689970900826278483875790955570664064642289839155477620645798698913230502652097084851490260868528298962030758349097685065127091376760784739942420051356184453902449013262094005074096855772895017585159375743077849349428187942919809106348912163439355509445961040112974486385716749041531305656543246151582691625526712423269037357108829220251516527333459871333531940306172011163399103574156840835767730987913465081585465701555670585833352499572617644397924738289423700991707158852961537505662586318250022307503825821851295100042047866967976961328152069809270961066360383695462346197344040429950753969820955234503492325048583972193622754469610802247779163598208638750672331175951822040888067900304657893847323634274048241556971437820876260144181284866385385964114380723347653973741894045536224095499643051127380869861657471458022161114058151475564629344229640387016416523978524896037586208443342676949860437102670932710709461988157755437572487599430129474702371268215341256109384347896716195190648770673393292542279246916261693405841626173639923313533173438095027257291751396516712316698911665223286576646628188243951824565041347440105200659623247072929415472611954610928515965114706213087899501105924944815726591102776963525000340191763910415907694679142182346465036868418122884797640877280698929381135262044060720127722840011024663281338592567845252725783082711119467110540374629518162231183538604686240512910019377824684141182981027623400349421194066601288179870110002184430859321827001987849040537512843129823675003146295984893324571262794377174207313919844780707768146025931377990890360229882777821399981367790834305293107718643231008284537010173309600342717687304242725577686374689329596942392196192338218332258705403267506016275565497902494135634611350012387586528581768055274878568529315130002858955263286498210644814814947418372216503292659566469213325086933008939068642339973078984984424147705895896716413594450969668896329447924617308256020679415311082987144933421779683933720473026594259975104519726202473303936735129015827117397074979216444406630568522503509664260093399539999302107176666342384654477454619317398455814387400019163703659746450129791756314612089954962889717956672372494388803191807895708070714985532641638628941838500485438128116582743743037814456684662113642824273525376406768764084537197493372761368156171434474280235129405044416921178480447934919426358194483641220435799176013044057374195092005572928704011089538163385656889979144117170288111848740016777650679672903925963835435248382129181758111668671545245715297363125399373422486746630354642277983613040907036466796750775276421642274839654649645569190780388304478142333430522338074313892465227057968216844965895825661432328132615200398932947163825755757438873191308251027768855190496731426649365602561158358717461110548562383488451336702640497337571765969739320497420559527098966994237313297663882314621470647416341101285015979766990479587238479873974916214129947135582518776681142176124207180764541993176880384958809095340064355062178687512966345809046081212763108329990101686395450418680620922553324469369052922636062022489826228405408776774982877340335249966237163809400005920155489668223205351293045528298611030369966552240467877287592975583305719416576463471419912111215200120962919970960233867916419098070686231267721193047765292448176251318331673926211446292826131269308034576226115147936375781325500674625532372068017807275657041706844703439658907158935447603064055499808803060209616071493920358928395757837559239090446040218767370564893286415377738539487414506101398833954852477860233800578509175715593619265033488399543860459776607975600397596593555824027053275438618494300655306545062795482939301535070024643164255394815160196519577591051496183148745476629262992417294829233912433610356672652741286600146587688757693364923978802367545830370574319565171413281387461369729206056284360114432327670453548730859690174904215796244725871793829922212856319857341799478651166194761293369061494061334741351180229360138625707552709500860745068931242587305787145996985319909752710170343854638384846035885471201938487422258595304583925187804235072861569939715003559637239233492631019061203984748163302821138164255384229372622566193348391114218280054727503247723668493305279437436769982402401093051373467063687792323264434911254229667300386560356467615415815480692980664670681810000897368400898086989657004910355446225026569354524950944333566736518366739493141436363503253312523911420523431370523495748424544035427109581650512909187618790294802990616943873799697210638438909152460922832938022772936446677177452534625600753654009317234297581539251376361321673122702477610937999155040387234789300864068664083782443625545404010735996429035894837069619789022908515928370007280930244905964594590483937007694551393769016901446868468760403145241420287385434697241769978361334724935200587026332026695039486683884798267607858078709549239517442826591531730043457054321748174397068668368659138125518766175914458788785831544026116719277554908408780683099790242759999515336706152596911792760237989844660388776673831947796028553998397169240713564354498415157853406665418371866078651270152009239932522435301452490354262752648637729729133453247334584703771492376245256627270092212356500990533212700932043290761151543358571770119557359667837291393855439790039128236125682199712544307680351137569716117499894100214472474772752823653098489225390192890272741040825872698178056671529164592826935034399411960976260224285756262831843748323822607606036424058504865619957898571614011078477931926006759222312815213962396314378307182619780708195261254178064189464626093476472341581282023966955952909127362932307994286260777892884633464576900661850357263231749270237680774934547252146831602931045670909075078586136530065890112678454144520691825550155946739005370228473593127763655756908738534809314366004463028879442890238541446146280793856093636144873662317799209608184268494727739359706969124007556880736306564320640855545026787825363526493967887537271385178851337945857371979823969007421802774391012462634171932327457443454725083698089273777207116393715581275910794728761802756193860710277580762141665673777697408022143139556473031496952564957859530608402608053250259912641138380573767785154914450139315239821383102849707560587693352002154951692735795083671385774241920304745954053444790066086587447293215755811036324377188930420910064992639902950072320512549335569380677640925332216420057950467194130586983786953617084116785715342930827497142302814568011284908312033373470163353576505222916125161091099392347288281053665584887320788047403076222389117986587250758922653756489767725857161613831423335011398460106557619310321638463850200658466331181568266769377126554054941699294026199832767459522186223561388142068067157253908162772838590278745517963032070234854224458365751072363738032308294413163435303684333913800259252081825556134410688706637009696300893389859266942585351305773508558690091811989342132172052800335529309474987128542513050572316602479398079045302854212612670216412558441217148093427790859948088854118185854373253040688290659421635099474781073009222842109857000239826630481695418510039059667799117339643358024671458295556447439916996601461997517622164907474264021433956792437559695137712103174206432681578160358276863983198606875789483135249304279602111705383297456981977618868646185156590121522759154235250458099508678882556683415530404705098302493472246664752859190789580551353751966792443144454117145417005679125890720426136719245397329952034866610018005130484394073071103683018830596558536544999994880177464401904101432213536329811622078972409560188301561157532637619885705544290130163447978059121430011829234985673428227651338961826268206505272660442937846407438400576381324511840870842362129580782738395355899412874283096511842677108394268874384030541650850725942321485015791194346745304124951855307694573136286051949625410308924384654001422595215004615716754917498650536160524995381369415217063880609237470131463318142709982720628741704248642113425435692659889295792323688233912373089166703271959522790383896795982702159234908983502044137694594256054397211746257068113707677403491341500363913765881337459249036553628418779018924130220254649966714073326491834964791903411648874580912575504895778488302625670504247039611243732358291661175371740640333306468247408393226607546097623286069768401860910106733546017950625390302677827967950146182569675810483254095449695622139946609939415119528142189393604372640958308543061792641047219094692831498233233489031426777954160684602163547311558786116115499454752551262006979800738210741091986468011649242931982222415946103108120027469887359919472648769982335498621659751517497433027648564684842037801379026325834586713051573595226259338639486475156338359932250218920019577327618843636906948999755381865346364328751119733528424997284506828082427061537916124022313127534445457554406764606464171589928756554062952901999740321302054051199732881788845363661509569488736026189178095093294987267048244100591529369588959570298184320264860927886141655546635579371005582959372876165214704759598018751829520480354506074784246168884016535269974176933555477711032379442754623166168213504998480254267032837878526943550035790509840121132364864048441447491850619863691410196695069968467961322012059075413701133116807726490659364000065843557667419329142174187498437146287904474465224218008844280473719972212661014361665491984476086773008620363799185978287222668482996844533286709989355932818758663458578393640226957557397682056261804790741119207697702875830531913659063922408565532165685835655986018740627070062816490413917746771319970512556933991181481765360307624610434744422413326304193240741774828167536081810266496294845779398985027893793986260622650777931064598616295665328061932236699902646697821448746348272010571834422115770595653077075274151438933098030190910190132569704252364654831650432956431211778754433115009015247030969910929425369417046088894039864597542982812622208894573044002379907449417244971810063185314911179938254372877539646483963252289805429940077669694577168222255491004433542406961635579683086915420279156784623824864992669330617573098108295719763545684390397333277762973741223357703465692052511042773354912414030940896867809492564868716838112962674812035869662728490227129908498335932473136879302928904829524389418199157507235844472527479076087684446729401887856792815719437156565338380909240056617778420027244121067466824284381795201314422797676748848017883639701217234756941368450169481832824897406288138680694123929998198678128301823918085397126990835551080668619779389756928924685233141139480429733277650740734519307607508080535651675643974296308202074428272940677791614746217339769193000939106874827997983725232396182123916804922888987705185651869098313999647764177159607723413420791452762050886103180317635614513498380194844982736731152561215040744081068316128666674153611643110279271792906723583549596785370316369345859952253995223220321768683828816785630278138387322007280571812809948568727648740957241391556865926558821830226914455545233987046144716529589663821919509906045682786044409096224608223389314437627474826381515479798097608547023546127410085857500747327213054216402596549455397557340291427272717958169545193823133860606833571377650124292829437330030952574313183185353204686230537121807420271841476314625375059101960657142978079716927312495625217367794208748092596740061905733643188756102447423124833262789186524120944985324893938630690348193971636311599281737582674112602059145940036423980630471256249799878697584100759540434478330125409150172459252371993119108379697071520957612923971756557812335630519249599176572770210514193868905281533037928651178678281988058001395682048709578090864669766601935489352276013770776784813778347001814747050355918499894245110998386794007695378461411361569970418785958727693971109963720392958711694772151142334977305642686907421942076129431809851730200781961953754911909544446647008826186711216770324767434303353736014237285271804979639763260960553367413622364040265812948310210094739105765803665664771658370731785064049535714091306549748030026184285914265054681685840441918702343194028827282958445450540350416043726593812277410691381825874498911197247071466761229174117452400439007952184941539424244087091221404305442335966256728159361846533310153587561997008146969432435288669839877144196435503670860258486726179485312704896246582982909755577007374529179826875517891848446339492428356228510123085473584975894464739807880811254831696793891105878275697230196384155852743290772679049469729116943247689062141436638429730148775537066815438609406867532897080860837746828139523674489971157226509685251523954218244862142183513194029668111743837549868545137182575305309593547123633883856466164622696776342820991266472949411869721513224623741453894841443072275488556048713512031986665151564519593068447940124382207114276780839480090008880434825068264108084175506639909632043700770301946644733982363214394231439348621048648048771984002130928720114147535926351469500423791622464634500467675384386780704144775609993675342100224819487986406702407198127090700484025944459620680798653843655942426374990537138764158674530463960991163937986535744838809479582690997528294139834466646285498246587835932745916148372674285806114410108252651912989331690719338498571383067114200207765335947148309537846974596326612107759645334208771720901820936001563054266750286904917742917435638786280631988672743778475051668228325807719521518225377990078403382530545882608166775638830585170537364082072192948759361148924815719974792300110174429298237763012735837630317383214046825461058775463451913061370880747933295557195568948794261164208699359871251499048785601316285911635553030690571684352746345404703237541614863299441525240048334713693484020846949169925990927019658708900198994281531665876437831923387136849243778406374983112313363721199822961646861318462998642806069848045580698614850674519761985978001375123111225148473232602043775422110980883214362862433293315956987617854972863248604219808178531014445344783356129462910913265437080247552427080856166235518491724609860997547246714708618539255630354998561892107432016190356880173946033686328573086650818369378641191426078958921371658541711813484822751162011899646421224050795936222245871180526370627339480859746381521517324629586220495305184081186781765061357783482859179006600657149069480917826568887372906955922064705484357558952778790588128219269796778002986236101114029834948944274640913777568003777552339255347636108805888206930320541819207107594538579652833908851269001859359329608828648237618783076817621811875045840848647005634525389119127430789631032165253007052820558224183898837637820398203886188613450812223778034667402235001611346775721221273189072178777328201117717900768503588447399448217626407041725504600202373969745596334118575415544106722888952884706560266880751220637920682901917600401521394985810064165628302591677510466453150960831733484936102656963463770646734132617247910757343794087528773229593998307785908623705696136614937478031592487477894713557658205751964510290383628237507773461649062457329783621698503324067255934004420550127610107078165917699256496184315208128111069399427595291107686338711731117898238339533567188421839529404071804765396017951352898401732943599974827453877120163745413906393694903860418745943762775862565065489324285470198768995514815630478860597382096549049993614627593537927602885752925752609786989559764713358281724069709559045249494109860552492574213395313856836567527304967491760695278321108267953389894038520644204374854910182974099977935518129298753515556242726103767435541692408043197251732248992715594362988869893745658906337441850924161732993142355730003358487444473224077895359117984766631683368360807509988678131828528600732229047090636413656967223168890298806497569632134819956801986786906087268959061095087437838254897064655940932858875969592756174380287157377140048505490821064217651112214845892466359813845129020143052318646488749408924298106220736429376960212011792290268340788971900768894005528476527948376912421952737496961810042805864627501776915509884265316794672988274802988116415537934256818810475825509655985843457726771538246467831004023967649479380628462845368175320105917959635344304772587761947458861281641985456148754414390928484952912108407839739998968580727564725717973248616455628059548222853949496337393324879989485934986981616583263152189803931810796624322802866152498351368120577915778245150185460186974811939370181024529366899645465248429142969486693039478978202129718255433053439811432351357342439207862020231999465881960043466937200492993302732261720013750426466529333318829158990639395542444731392587340389966856121117462318712323664300947124279955664741341199103181531120144495493047761700190444985381257614347446619697385121488868306962623454849698171201297011890353689781682966729757332951021646959038135288894894039112626835270686517629556355705425906898584364624244761956320977892351682248161565544219301815259994778738722845297499071464112227647186486007424383730357728072730065802878776649400783477313532896852439291285854296930265784648601995776773435827688657692963999224361985970038602741692234311860231895710888684176719859662953280094105034137228577045607875385664501254268423562082881593200434565090957466951565474103140855657011831542010846098072836163177164552895326003566525498527588634572681347886821779453943628753894282128143782506431813148108412451661593932615358660975523661319803814157110253190190546732057964242818101966117210429375132676027181106112225916966552716935257203530043703053014492458837669100959805932088788218074991174227572806520279570923250798405145226608371746266699518928185939955569652870062311056230180200088148490394701475786416856385513418784012588482411307960259645791699510641123641087417920572681920465644248011299314003401475731616913254508831675830449884849755462248799749754177565074366197740444974499243392730127380746214167927100922257636491068057894415714256164906262077288544648615664078136239982340365862872905292790615517068956331421246000126249143834851826467821464788290239849230834266012953652770770747680969761494482419266114611820913811794820689364588294945124624404542660674846884383985079778426421666266286701988502731572432538914513323100613840806117541960390944463453357857336403081049451371905196922308488126129385057476846997366469231956113893395797551994886640852266462230241176307559627637891454551697907622730430006881337953373262768437474375022433062972096542361111972793529737625721529373777611645874494072694068577928124789746751458426414647854678567413509264761138206010731567626848499749259121029325645494050599669826958391892909540343297533615502629705741732542229312992414140071405173315914095545598522951097052861776234041771227055345848648332076974751155615569048521910585840683535147692956541355759539844842143006222947315463052418241457255673311163208747744205014001120771502911657430207258112853208297588223045867913586037680926155558094016798722158379604383389806135153035272168113768574556458092697581590775746281812158423990654323736746312481172276966567787957072471568013060991630487822255776953213409723759139921472477345865434755517031910358413189788921733478670485168670601474677254887550075044762783146990713231350780712779420977692115575338365199787205483699776926912196951983537191674847910363595274065176850752211807671131785320705661162128632757852950420929444262895810863908770789234759737892187668092048768026676223575725715240694811035670050401773036359760353666533242737931745868768061926228419383614795785506086958937066011901469727485700341809357607442110214586396499446848007781996815596327053151318990079580574052529052895384512915449716256213865252812971861099826450125690115882154899775091139435730998328819654302967480675338641314649117273283600814748946116100004850582749117408997409445084811050977746302219454195851516188420450237213213816629190624780790870439208077509568923718093688735841921923284767582387662211669040731632716465351894931034826517239735824143579717799833020746222096128069794247785763359621919758723819566222226210210074415440093310631449750314596761908911834447386413069356790064340534816883063141166560887065027615058822499220653194577352738740671001307520156381739861592757985008546119666140941431821722849236199903174745878835219520374029092725061923599146040533656956031908659125200749056140833630484190547461386682218405948277827179222714982330762786343010416047314852886193614099658465877294917165610500591090340944919785401783411345444614766164958837183010639476739618203948540484368555412978105176692670646668650632195778161868856095466354780603392319721667891409253721331352006634525124772764600687036652792725057618830502213502555061956450904271653611877369692872138372113983556542889600973553055025780387557572795435082486694737372125578584852398211256462676451408433627805811196340008239387412905288891714137683290189624520768350816130029619782904977036255754598346350458073327343133940133579469066228257078298908562327294150078068926504860438223993535356330768306594825382397037935621836835871868366859722601249555776440696183918138184469444052139481447930460806693325786004282102899377851180522532471250475240274877698408204413311909754535855895411374310886840409224846350756347426339365333327292817347880073157969224455689955867123717584938199495151053842195192122442602167020986747273826980543224722747012955855534204711929950638683126080642203800913389933524421737692195815286656421826901872229321213466446242150962415009615270735233333733744226298804858520183871136566307589548385082170941925782292083070710426111355159051003739378459762512728583931040479226309003430783983606325992338202805606361979500574512629099662478510276526243948179871244795264725867895001017440387677990796986966290445331547922402165554879581102601372151226427540857280843853701453260878745192463328311986973466322741955928655044537014397826697949726868906541344559451797452416453491767027361611436044714649666074300533944425908261703331105703705517878922674097486927957815953582218024802853354623095209947911102779982022473418411957956399227137382377634296600503756032879319395833556535756558558243698204973858410900062726290085980991945728543981019242028532368343412488122850868456561196737832540102543242926103366646991319860586409020507989543963243721795099829222517589411224270823997743891780570803292516624991003180750378013308921127099087901938205788185927952730106867112689634345118286577881304148144382222999719359171318903499334007817739692683603643226003746175657113063994226830658167954608393065569404047822874803737945653484794995823130773100425781690951409552235469345348840733605390802226448805597285770371075423994839351704582944190285578172853120732819978601399563308806775764255739659617608684513357481662250739657883931479887139238622444029678020621969164406804082507149278898364825354907657646284184581824768913762970285642709953406410940769341890014606558416050210574195033095292496191002548017029111448519969422885446681079395404345752847183170328233781913624710491600827895988490723231146289218668122260858221796907228715865690691019685173620027013463594462488730741361746848767926709416046472806450418921823512032175540838564049324287459491052553472359368636925175963832526352862785793900742886725835327935841863116374336264649149303645666506390252364140798493748441987820010808412034515041770174627751701622156564395836119307225745881022005002729858177205400437301246709639408356742997711385412835546764542402657770177465397280141905825454972287015972217722144404579828690352189836079400898075105696910799975805069230581811545376286021123879854193379621691793792038215061720508244182210419860020251062163134444139885624190363932555227001279922484358080363269156810072199382721437834781228087593136736265262911054426257762666604615904343491719699913743822635079430140104502642744935125229855838762863896309880793629890811771660852930304810842178626443755895575817622898676215941987859019702038430685733128212425600358565291944707986753996957219693219994683601201492291440592458021893913140903968608148351672491702734068730437746601291211782744199691749443661179864997666091714034157871146486097258322486479422928374927765161198571425052347987450421193633562045214885669928133081659638315122199460891470695670778955651594318095583563697853865937307359126755009581780280788449926512428242462933205709135843321977154231617010760511553328675371487351534796030464816429442797756506967700710652048377685565501275339098569938562024839673901075776385033484963217955163655054676484078803372409334776128212062528932734143291956213714508211588755248688272618987874637047994688400566011011622185625637560225335112922459535956790734414800940882959173499113393286308412824166500650047425970470164041996333139806285599308259745585180211785419182180503958205354897663662892629964585228771636912737372865891079059490070127041124263132347915318942350331574401046806527593883108696873670792271363843527662048398605200633226543604338468319447139975310550584118822866859425679267894489511341707183208804714942899861642371389804556378978435224826630211815192424803714435142461487116159207880460556507416629832402445268436761484871304636213188765582147808216472203639610742239547623655829404923258601005174553845663856461008495166622586225679780490704052085632817222397614771684008215373620979434982987881745920332934682088317140076292152655343295892248841514869109265011976365141415058962634598091510575802547672601725831006673213883269385100357118801063790851807111431833856620161253244625332114340377490006391646257256582541425457204099943406954599701382813467807991248585998855782382123498310865766962551773164355185803215908654758892291463798011919401586922905865842603080223721371092455456705773929168733667323431468031531221590388952157091145282889808917968792346432330276642364428446507547811885031015051593504199335634561072284092268785961828679689014210399895809275287468242962273753503577424054460256092119565171197248166710547074910476065476634479479108631613615201291047006985917119795629627935187151701528736553510129351726023040599456469093291313613679529401857902117843782703507126843085467125372039673840044439866909244991125954907760532986915613927369901425348730998515976946000182525881528459175751411513879807903751143203471965337817570112658843727406737586468778568304322450281988616613040285457076144574261956812121198267678239115273829418344087511833541450201703902796378819158737654067267763007450996382135840420226065936813838195402286644908767097594739008753908135054401696520876594913376420399958521786486580126071926013928106159540748134634306385757389231428065772510371851344622904268369964988289715116736040047042285103406996058431919790097329807782715320906388771772610470320561366780636475164470292451594293851396068958457583560076177066735556563266156783611340435231048457231486971637635025508146560676774945217010728083196782298965247208099670692147870014822633227181253957055396586336001181711571789043859412018747697253127401782510751666430701507131173017645031937132805277569094832499139804088094627649337772665183115922270266632814157504343878499961198859570721379438144619009960224566927850340833688133789764955143567970804904081317566632995308951414519712077348938040536866115491038819411881381479406405333117488507970788020472322955347849549031252366675601343607581028045933759422236427362837693626901748114307413464786387667596701514615063508984173584018156024687197059543164542718493660782247943610212489610577530564859553285841674921538529465217612788015372900194949600431869474970556576030791700113228407260051064572516815836199715084390057565386605407367041061080068367996412612947964626957726223246713869283026866486985942545309339714884837802649810265911296053016336090741516770046901735354958989253429641019871799037326092281364827792506715148547930261401462329683932052168676909365750876872100729376980278932884890334705540008490907197959303958825313956406230510205218263161620506609827962962573908837574251950681665755351921035415899105194716258548175602656280112055378068563853573311198065452074739328793846860461362670560368947115051139598944669446211549969727216672934297902425138784229063252248285435905899327537372861305629222087106503469364923827254575120173065614819308275291615149701444372326610597666975141852425676071710743641717153517764726464667619941503796515823613370439625532963617134686387132888396407093226479611585908488498942531961828282040403756302438820503016293391523404366784788594317137169386634492246466966685135466986134848174396297919072347139438433839293259189022048579362041621738476949848312101687331761120211889507982831342622017618619944971813649496495216787230981711208963661327300011609217141210361576103273379753501312279830077822471420947119645168269935854813520683289636171027362217202036757493512755539694800746059656351325862663334462096217742357637728996912303518927070285660332215812338723760509182299476115306823689951802582456668306703198873200552083401491422587293317941840840114523778398238549181713536881407640300781069682109646519313923102065823633936873115731516403035969097484180786893328000859632955587747826166089291473440095873000721459917916841153647915309991009804603689692441284822731855231901939694881276893627938532322571603909600150872128439926810117909264943647386328348170522158453274532506061677373053237174007700991580931064399601098268016443559866873348618635160164650406566122459674012540243437161152119327246421821340121475101642884515317276827535879683295396175219513400479035735704975627911377144534433225990999705215458807192609550677841890474028584822574969565968899696467341201010860022084999686348333030781790831357945494079659879300202989298829932537266030636868274866977791108846555177460832123115624277782607052858480080808090714464327110178919274685685148424600617766047887957900564954936593591045001600325492124260226593519596723948448315712715281924176012617363038110628232543428906738585329470313493532262566021295992102958346867819957032706891539866649037509750952469645417518152213704104507115413103567902901916040807592882835557353191394720269079981181093954797251350002293641180629889039911543534260381475828157418521861764539617830681080702727713892337795127098466257315240185373539199945580672188520507011340931089028798816957888634494422380028961150050451174596401078465958433116503672002182250358556577616240372809064144352813429710714342502584671246869424256850114196400956439428305048320963636249498606584357608712248631618658848842284891278770200630368704545610380875562017962748282670433476289574809908120249004539348608982767481986815928373840491633269125443099353324368070422374753097180151824996771719567304575948794077809777855647836090456163517172767440073384142815796927794061084537200259030208476854094486904268406299924904984413138157459997973982084375950463995686554060956307325719060674793738111182464729823372830035765065751708331637632110212048312377696205270931432065683790420184623750777761652725471173859297391939008475738903778379828530669206219108499847444957837226818951643400152320358297450918029730968690041637369276994234668570661628169817372108892102403479619424407894241610072456452862010054871595110120093067529101081840318562012288310622822966259006658621232526111023811709028237691082761438447187123941069471294211686883737865482025878092003103529844877806564796312195170261897385086832779151175280213159255868560056147581756193342337140717009368471644789345625432758996688754984627099297583597322520575759950637551382909996340253107227101210200271388174408972709516427335861679442546675676509192554456829677786613041242712540774381273685094635984173883410411837439271829146665873207256055116876784708293463557902494408073761859423724497585999801290445260553079851912028222456350453453666227448219094272918244853475219905149411476728269579270486876546263687428847801211328725510432322254626247299429043322834012403913244859197107063565073347818559871598368205314806181967527694442881850104604359739372860838739367832870509430976964651528830672390047748597278811433540796018024399511986293801850666601225274467714762460633630932864761115477417810658408514021073377742332438384491436861101339825594046101661819525679781525196881557346262655952404821787043746977782591812039587990729044911288474306440006279185943806102881279716552000836129439403763409607920364077216645481724187769886154214754769923584608492659890544446079333358217636127382482219834185275158811695654461476166944027506598126300822991208330687430167987887121446232854442171839932352352346833420912148447060781551593077650837305975965528362089792645462714374726525754704249626090037336444305664593853962786722593571968740957574526512221532658628393491042520481680301573361295130755659379657203035257200726626645202893976499695956243596472092021148911482350802559630978564996951480971390774098478883777875046170431850216464656646994245366202643838790660888752747535541311532838652544242823075806646829033904521019610861301739939049594231050488593977154946408353801406919545816286771125660357208335772129168118772111999101791313095055021322148600680533046958036586494430288715063083569593154090834537845009258732241592308510814342427422940787254800419592840471002890899507553124295742999073013337711578447767788066420328024433808956457896575676721406257849246548775284275778335946498088186541313130452307313909852027580138638878018033408671394197472343361493012690632109929902204789516756543102268704554116842344304254168473151806934166060092179375852225347460587977953442723449964204677906759913898683049913404563426728311884614702266285309826600004203118613333891764480367147321660739179282864665974436478289002856363359768465424638885408275711909317558576649134106494844564071078698516738722380479502163878697908601647164083366249948659518949603741814628714288882921483995625555788588989384337583073152596224557101074999458246792528336033010714961332276905136013128613567878923760593449963615283075558104934491516552046290452303793459493658624841079359073199174650083257018212647727289426389597002888458747529193309880844488452533789576370209845678019636763778377193873649409907761247317828856070219531414074963910496939031007600252626972586659420496139358883558864989253328280611216549908588617419035756272951770083331614663636023279391509224336837198535582408958731326529443360865788176738541854763908084190651432632761051117201201987261151881980396600724846281392350986773830603857785010459773472836433934811958772713990054069081926791483380440690438689730435884525303511242115342361476026690550789757938654673451229182416519519829783411072337459999406468887596006391292096296058207747102047641790187586726862446978299009735653413473408303890067958933327795293213753526793096160445602733818375037542350803765112441546459491186866707843548563285498702614948267263364358314844819749461275186285143031272924165021023793492577649822272509491414198060327627162673428625545961158294658551520553571519182199222756385731418085467253918807601118779843623135901994625931341221576921363184625738974238449993496221366782697803353050916370605667905813137888022686678032234429873073760584969270091432433418963712799064935535587615510764190267531458101003986095017336295762522962358566564048138226926025975259701435147776871709475663825722386909086081081868303359869009494107905912906753625238311325808076392497301823127187696952322119931061134454510919642182502359706905818496893283270870666407103456657032086418761511774770833996269033025471268299084609292902326418539128704042541555063110976751621200982359082913989436072935290843761770937153252166482214990022541953438877308021698314980379540043917595620053101964367409355310676464684797288645607813213776460797182449037626417055808187741320300707868002287203928987135101444826831396507367660796992598330179289143982778428099235743996424505967679880299247950448987961005519314668088223174682639522366719629677257449347923403587940542121913620385959740072145205231598236805838673021702284967948432386005196280317358336617243771641154546016963187673050265080828199274593394279571933989223790796295843365553516282427425236873938671388963223106561312743316953960033918582609025823785669646998061781301849991155782694318752944448220254376887042634617876864649260358913704575453137700785401864717088224546675389796328920791029584237553423665775800694749469309024579251325646515343047195450519200093896763007693985960808462050367447555205947221344012750576145613618057388562999988657469814223672493652572252420586244489505837228630680618434685756926309724685795123406158940023686841484243360398474325897605422246221793187368515712225849179716399693861835187108254556955216352862124585010629637428395842529588460941787058024021480749820602774309055286492763472662027523958968841821278478821486162892642286045074103128292415631571138373741540283059280095173150894542346609647015483125723613088938518992994406422087394217861061560742421745316837317687116995686263128811670223348021012605941625455742965929693015285012979713454739274058237530454448932571935215670548206607869196657044968188454433496169746422070926531376018711435322460201719056728273382631520372147342457694161080710129185951344336109308624011203718266288941658067628583997895609268575744268440820092736153742966693048913927424206372266563340015380600346513857369941043436527286802507148826756476295780369617506528971365654800753348942656192437443332807373937979449791634068291479266834055859251335171208709473241295952430212035300685161704163519580073764141022862259080673419878000025814585206563839759264413201864836234394645552598741112745584773312401799104234530251760829585294745165922731375393659730615503592003306699906214585828882525520486343215962336465324279883304099349960925926795823216916553328903284459101934559711487003770723984119435399362172819688159033146440480653623463678265577264101676198775826083966370982735303883461903852087274741323896181389947206116093277095262090789588868437698642126042773464150437771673412714848523784372143460721237490610986218513107199913328308503062178511786213068298644462615118917895400518207224390562015538357682706674030487818635341695083391307378697912644685291323074037717058889246646294391177383990062213245060257479642110582725761383253269960906990827675155807009396609890949281312405727599363381138454767803726722331287456975578299876738043983415781684501857369421436272929830701076319003829280495930403782273888482416363846018676634306702623009285726342220403870645494276777120292982293769787590185547079450715755214241976720530264442576214635362349524757208055913579259364722747135411271524659166656930782045674732408035818600806564578350432998259962123072388213862854207752403951626888048426350266574043913104347202849859028324129231985565350757451027488396538655692424734590871893105525946139522836990398755480786859397529508608684329225944029633629115716280409003690358090232142205344366412542429504056790394081821339251285351976594942541734933702504009633526146590594957744215405439150483795875039651525997488965061587887474920655688950388275635353808961001569328217899209232534534598890445466557619359758479587329457676881458441188539149286367825669344384160004564916026452496029309962622373155816083521925098447884481965688368651803010872554997335416164693342929762366447122928394833226630873814675210142961234315638517965121017067543347318145008280522867838334922237659305717344641461766705490940390379612527398343357824469379507985156981614005575122763296873275649706401293829550170103535946533462381630853898300247168030281254692455195697793785617507139700547211809544599283076801915042275676434617888495174307756530464763056031615211247990103366424845114564824685607283206830335730556384687008835911511712370701624579260632655156285302810344454599871088519239775726206127447947535688679279103606587137946855921133171938402060803640458640717274944463079454164059105691994588588482117462755749434347508340260065141503949045124772740071200796645607786593997001633434543417986743848660493629444311056348566666296665812472153788425662972001305927020016125207135971109564763023390107902230543786007772887609160779219525717172870982707436333348507487803959442637917194008457313786877429189797927132737906512318006893189103766420501762266257360529044242845320954967416530932474247072232901676967104637998094937149853568062029341808851982008730826097902320853311787976298674634618496686732463005700875970569620660492251778129433642834614404196324787955606398003474781871073852986569942759237477017354117777805603256038292676735269820360290834620905697248661041575860258681687083859323665962121451247642386106627928017571936710416732169971611413563404316800118594455862672096171416483273128527103926182937750577772684231918350320346664510013021285758488260893065332567798057297312240093661472337235101351611951768850088463947400355111659504733598621948070640438103720114307526466055353033694579455895177722860844746538960833120785558480997185466318216913516259279916847171431400429660816598049015522982700197489809731775679179761547574810735048378567522589047847315615195127542570848735548814863513361373446432291041218143550784519262468001027760725588545954412840681187187407331780890831394725795605904096492951067834672534023027969060463283503070339151904212814095174379355259942333117139563681281340420586299555675906165057828626667496651352680412791694197930292171316235227287083330936814495607603912727151986595965540005940043993311069083337512683413004135222220358723836968503232124091871910361231981171303556898725024586950544217646604567945548753428194480578760587859686233214895738877336620926822444171711842762638391500991125807571300288524700630411073251139524319690680352160098306220398655378356820424476857027009702337326589602190458882690844095630750382958401081884378095145468774440111419757060897472872426383135056547791462393653096668397246423588084363981289206508121876561198392917501152609314058938015442028966529692081731784286788087219624404253785815080016333207044695888166399576641427246918276869821947732425221002998622736624211138738719770868555974575003698828449270698422238080533270160258179915150388510868380314201774916483338830892071214447994558718279493576124153195100313224946248139882501802888442598880592035127285053505979295491156304337730992597350738004810171502071746061377379225555113614485513005500054492753748915945821500638391465260507735403393218166434884095829654700824859855050187294510156316804701116420027384816309854565399344358938299474813139331553962498694972762179710437087595071076363500565607075095047484108055766823885950781608930266252585593484665075352661240440237958325736219983660405495529337165176611740940070267200372073600309860732920594447547618689363644242085605981773821708516599070582475445946894715768728269048257859959616320984462430461298474627622211965678180894970318681918114056778900386465429549121881844550003300665573583396023766475517119699479838010402369544836783724966960376830354341883929910508208854752535021247370231406125150862386964008305472563425208325829523368964586304225121101538812958416556944112965672880050189766129878551394224343244221657633304406693180661884296378059439199009425180759526591126442730573197202457681037389275954775454154497989690015723383121405894964500536563879619886543125085512383259470650481007986626470455101468281368894613252769718592194963767365010399354216509251040189855880460967492083852541862098129817797311048003383198457287879399089782282046448098694516391048817842154885158032588835072013882937118250123284471152362854529562891568989187562063907556051014088533361786646034333284991833258364044122340627039742978256732688487449868668857049696212776066840426027284618172120247564145835994967825233920927154315726244659911391079909015412416130843228769598098223569425221726324725124249210054542401682054324050176140580793935803448493596272206326546919405336134143497704488490221458269702892863846457045350964662230208370479031363808676925999095773827475563231224790919046772868728377869192876024466347858724494042765841944808098116731514126856151447756985962736294555118274230017484453541578213701091861149659419248160442828039089856057129976858968152807793439235372096076081433552596464777521308675783741554096566535675186421509711887761013157811031522908466479609016402899264163486597404281874390813244671000215874071787272757713610932590647754677761316987375472368000850353484424636965017553658334173750090329615957535605957429135149649056748061561044462992829259265431425600851091082369020366968685465381891356445957685071074734625728142424509873583927945869419482541744084192669401678334815729709167605619747770066542892921108425882712998814728149498276212306532821394150784524390065291829323054716941727460914240250290101482337193264933128981260978803433809571782127856360589373729042093630268986962343250628282742918756315741847158043564211273942979590030012108182270044030989452234387932718291965732674997183768570157189974259691682644300389500374147415795502349716999122516222835402924921614788801497022767609042251756739340260555030438271862614452813133392083386090204975341327396512682330327925518175772743373460807051365013608397323020387023124407889572052024211825425438040174895374237503932910377378058028853190678308089470452210570281344585541876319335876879431129693739051819176725403186681493064089742920863431234148047230110281395511149367175777432952882229480738373125593461956937961771954932269894181204948728582919472243720243961857185383008415261818373465130529688584729251293638612699678716972786840669594597952864542782642877552353838334972175902363060028020505981915176708171264675582917476844056603890131891971615332421937864838244334098483452964947068059910931617495356689341890660560462104358750089050533711292686640559696668535920415357206675763441272552737170481272416505783648037262504474133862772540741336141289493662438799777860006257820834459048677860117849581092895716502600543765403077688009123568029803391424772207262276354025213531100212719244636194305507788609172079163756371870200282941157299365944201903400919444230297428309490543855228441517933591525949195998461354383508577800219055459912504988407604204355530433211293640933600524665164061913579643103969430839902225265672398783266445086498967889611921818098438272001312304392761567864374575692106373911645295298843236279736928049829075570489775647261252947888263656437556731545751614017133000508729481915164561387974620132244910657701654085232765638838137520110790000999571739207296996546864810992803927625608551477829652255800155816778712989431442326477599912065589756747048658326214728800404390466068490458695626060265711530890836855366128766277651810284556960343187912036017767627546106894353063649338718166316198590555404812545766433822030547913180734101864349777125446126022510827925964858138919845930273979743421577842086447360314266168573346379027411506211590903269028632380092317373852312187237938585147504608272801464951320356181497282595487803000929807996461657828160435126597895287375213642707025425101797460045258322449577010651379645368109805929328111564469881964095302191311570644692364903102615430102408355059934483304801338042683671886304750811945103848544949162477360908492304784244641829549906262041786496865078194126808824955186030575678758879525195093017610113617239798152120367287387962327251560061821041932973578992439857018337582949308509121105647462264009183249578984860633437294260201755598104351440369111535240321672972526035182414087517049404001944993199276794002958199021256884039545990474167264598139085569361176434715204770780123116188393958378197447540114951004016639511423204930554867911806364503035611859664300526277908872677460101626524516606074689619708571318789688490348427247637559833438412216477395641995078087462730623096814900685907609683707386941671753415106765758252915655624808562259159442072774332113301387584670961178597356358523241478258598556433773952747014100573096532327845190265532701509842538989382684055529889617870208013767971790638929405438327422903088036343910803531787544184535340455240625351597141379978176425701546697777867449773555582036783777779913640810571127949980605407631012583379343381649180187470029946594064208745884679138581722858462623246419870148916275952280053731109064930281078487219460541655132484879135320183023599316054867774547130077250010022693966165444825932010792996030339992781999671134407933646024815542500097654935887321534642229209456868814978316530180711271222240843008471973007060516080706157416872057763033538097407311964026344741186879555656919138625854155983201045074238813478943744250572145299903776485422897267399728696054088262583223201673391155987204320480004305087689232389913964192666043304571572937029152507058475817739528502188181674408138557814673010760634132484780210934139908412379499638394552634121440703088992163439210182019566135468771383221174375106315368355679895938462792755570102021250921521014618900584951397836553210355916572656942979712478987563422814577258479946970442240117679267214408402075831565001806264139266113106526612482807742995684295915708800504056711992347158901931008833353043841796525688054202053416075042366512329863686512401686201865500116433536290433544626941588018054950702016254656476261793212290120746669643945732848571151106865094580244838982527449240867645857933958632988052952476539057455268245870916159755618271802975216407583889593922040474089693924351389923183317289059508915050612373059215013396527632963786423260330935417999266395131033179371055226113431300677172368888383133839412355152651944843462661500957554542306565615290374703273295049410372013363515203678339435864758972598989870175748791933485223319134906027434303706174463948875823616519658789868912959617507568704874868066935246989615542788608417100513346808056884534286319469821203375666357813114159852559573159561898793574749533447556016900754566225671050102341576883638552387395522576847005709086283056697269461310459808974511277831726959278349370265715966800873922394890997960562976640849123599270666604127853110886791162421826043095021128199179430348181104469757219875629228194710243541242819092427766250445274755088592958496856279898114869525022473440239127221730961591994571098503799893172643580336430788221554856936124893741271320712254704909405086135810826313839489096196601191367220397608644119180344460219420913280434909174605140863247649008334041652544247995847678008070199474459708659658506721719304852276851623943383128238119329707178869181256973681359179033704723636720881703760837993653930923442172924691392821747219914624689393801184976296041812612306900210214286272337404859256089836557413471457292702339074321845888939929740862359093134242375690308837966847201918984805714427999976815554056138545269009077642464674628588568170007343883465693241388273384675284622070210123722045849517936169515212921795628414336065613098153438808887213833736615381567166053607368676817184223962628737032089894404092825809460062082994273153931598404642214267841329905773270334123922497164284529843145598084030858396019191662726280726149174162848366153721608693223197147649339749880436057052687210075915208567837695984860122485253313022672039092274119447141664810121181524811550157437895925761649719362464733617246106611603176590918630268037274038405239108804587599839593982374550606703652929505804056361719207307896659238084396561577754766164217548159873687278316511602027731916734827625443725374813000893855061195733656156093805756278098011246072753305499617282659141005749354508707419369477912321298653004834085217835119677573797139570126632873238944173499685849225876010253518944633516658106627823293866166125062657638287587429048538726666910148385571504385229427848413281195329149337613985104644326968253242722476118040130497151108607161687580505636108857140478284210015414876781747211852470586595000367091464686143089720167931013221117356706625549287182207338806260465802078545206734367848051158729713797309389872468913763525470353894981841845660172565345509263096746595160964211915342938852065052067174227156668949224083541411131887775830865055837144505185627889969142379444293384063123739912249789920009018180046499813911372112907406301530049340445413431643109787175995031720631782961871994299093569245119905266218352330259754383842405821417730494416865891167882807452470519457885398798634384248096166110446852652933398492038367580672190375616946377616457440584917620133936152354038734337386268085631224386848368384666663433786362178762411822202838058923351648705964281343900355225517386386736068900085975696499211446988422860179198620379434525469432976498341352527155252822680639446517966313552669105221262843243663938514452666355417984782609171921906449196778558660024223789205118043461453972577397382316407196278093291204791531175911277539379583025544747648081734029205154510818780711466249291297480809176349705909066223401695445448632192428144248118962750134647708467659621695648520721094453246433938953302503376852705462647460062952789609173711759904366579395387349355966563986203903376084050019470769780509590656710027505144180668145327585928871780478012919147429681564648449949827038338160862085592610479441223149766575963302039051400031168976534999732563506904519942184688256378734139465018819547246133502426832017021040809611627212722914284684963096101683678690476448083722452934646740269960102258940384894913142089675584271186784237995966041076939061179527340048403463002482229810712159846838556585972874493309860854271001679989654421820427740468202252568542810074786136705021860491190403762667568240250659908911003344666943617692288665146856349989205974582754188960643199328442742712926625029585855362522560583449399066498572877034490327316809534002439393416453276069914358967180780707012061234684859202014343482738747250487088487980791547662583352987249604836275687375103642003791267765953830123995252753872461285412466498739810626191883369392871378894373570441412535107966869407248515316014753115599080680989601641644559831879193122138234308391251715272232319515337264367767947888699202263532387212954452133624641674855571001668350704480755352820791752375138965828865043194814361655846609550598293773225914010010047403786791354871594617785712701963944934119895907211554607600994130955667758529588690437621353822711528426510025622919638450606971718543236251677131365257240414711545223112429724513000862781929665161021404319890742517198539262925396413041941723973871189002184664330386644292308313861047624701339355056693331367402824823626235015559470611293106606920536296742278664273853137834860895894723240869384916112964484376723344870934456118819854062377102563059450670057199236474568110856589846078507779770725088151498203174734910759148874398485300315045423986533639891162615584794293621972218365204673499883649479210339612309328766931909629201741685927396440757624631330688696796472981243468995193809991350391674525306910310906834204339976349931522916603476021137665298423327168352114583506841516416217761750282512519537074763837066232455703582330013379348187381628445236318424779546674022947686582421992096565361060408065319312646281208619200733473939280682332591597179144755137072616483645347662470246132248704954427675108134841031402128670218108933725861017692088383358840912636483990099671194852268701916668742651286729096852277425611116056145973358186176761891343217315714065505884003425175374461307274634549351077455241971705031151577616476076709984169295154002697138946192644136632173863728889157480148552440327976939108958522792999299568383411319644563543289514866168085368132349162215696480839772092907746856851726619831379400442000814398656311390896542045598072521702275915487249515930100603675997925524881830640040923045897851904212157102045082512035211568624558441898644202739786709260388504226970993871585401769531958612084261813296249805999373153425540658769592980286182379004221588715360638696119980455406610022222419978185544722728442335396314353517861747501974487852989432145542156272936402342715533008714005406092645994381984886331707431953913955034253141113637428772823301008511879444770476844836891956395579968620370775190653838230235589895065617869284610173611352499005187489086015832763575292071029090760705199873417276289380506460453162780964312659754769633177071771450355360163212388158685555488106613988156668683776945975597866005394092052720839689744961487679609509105623411776474995742720018890463129935585807954469747623483910209259724897739141495743290413330892139308993495572781345438006713252228699665842946160923213615660315385096294647433888552799113940467324184256292831682535622443661143130995976823053968265570553096328415471703579126491925786902406139771159110644686733909257162749844269748378262197887204468422304330189603018184063615076077946921672930184403708526119737029360901985027323087468599911383339233444687950523617523213006951220013180583833098006474691223004767976301731221399882185034352624254780275257932160260006701811569156468938888824297496818042542416183480962910178967607498519250543315909805166071643582091736645543691508066903009866754744352793700105180929299742073645084210497600031689306281921233068826128544590039075459912045023213169507246059200146232408167675005227838804166622109296625770835946645778446134829913334358071978910019243823809525071565436482054267710086626396666914773167374176323252214227654364707208408959647152830974422439038108463182924506519921871757840969271476454590907187474215201148368041932423411792013691211628155909619403920709195937433490462377053814815600724698678405230519636239730785338504559472949246833634865827129685316522735781783180363185836987125027844096042968244749916922877682176547960143339926611117400194192102809818376192500420093394738392454446784541390866693346984883214599098779362681204538565433051529187699935302597419427949000052588271869701507586002897479284320817843143480128944481608564206340225965083962549581720107867305664301510305250449061866235265196626099075823378041883492074771673549094705581670426626493461672744971092204956381511087694254940975754055587962014095460133072723158222537543759787705868209802526042394352325723868809462618435030601545479243707621872840838293627915322669099573320626002081650898894483769815385481172185876253092326888829808858587223516525750271815713084150545463946296290112608796982363446321813004224179823822585863259479612035892351564784530676487823901175764852047029695589683859106274749376743310783630631058731442946346360726200426195742233605627828885756738099523739187860721655109271005312328995579184044022420674673121129351976456552563862250441734427383653266391678163644344817660967832766321793191550471729296906970652054773211144917538206815305721961203254498717384706871249907393888178623554321532654973038042195976708694625610130365715870783615917091774574251544160390600796840087181593403365509226655901189045472154006546427659181989070512220315087393484697539947049621355825347367299133246245297036627240227490683679466932126993458249863114866737212152011742697679669729476874468386637341853863067660040375604450539889878489001940973150968744450196318298626718876938046114344260163148077097793467975547158197993218534203371327773979828056655675847058067003971054089355107778065580030759910873920475316182719819058129202307894965403674326946632043096257269001039664253065294011180273705089998904949125957895500524470152589204100134246387861616601058995886069975724031066485397802522200970905330296988259586018505411851495416990842670981632242425183617305570151371954839561044945375798413135758773014966850734867183011376990442001442577066690321216663195431758851975366918822616758341754451838982830932512952709185381817080036092361762992695297368066761453864458413999576667439903440243334873876127868575227615706021263517991686144940414679684576572366424805301536654038879832079007911167746016041508152543316177084960370750329840013193747148993870208866256888741952738441694866508574023807277931511601340478360125713318011238204542695349091424135221859111847255537134263440811047491122240141921482388952738014066825450711457244837832710670987692955115794400227904485553374951455656047606479660507441051420204217045608437918078695836779800251614833430322341129309808010360839883310661854944860706292559035044311469789579406203428030192579846682935441052510249431923679710440052395010135769480583505250791138884059903975477492781715146399738781679582271365115191954015331463034827561350599717471470227917716013000933755781047367231524831959590398461327511685601489747866265736588334569139103715842859522715051489841160718223706241609353871032181394623401229865076218251815230214476743499944901769408296614150747823676810509183989193052338298520824608795458607267959577002377867619983583226657637252695072115961882371572154648687343893710041114307561554489565977471874612273314340795780261448388293572223750979362335050415712178247871494422626527597013334939663631922114020022116463679989719739433515004147455001558946331430615175729543860864577253162977868642992365419752741534413978075343013731606815263438826610299604929923645135662654042619222470350394900057727795371766496709002049078534299926444039102621949301794934879095067670180079688335904165080000156854513220076719898720817251870539503846078702889252211008673469737031998756675654169408009162268492799614673499969760675316302739958827625653424044610653769725199386520845436618113085677959486077793822901414007856158505128684696311592798348827608281806673959952667245138155084745041459902017796859720122477710365841472417251226331649074519122656601670967714730207253492655357698254785974691685036926696620570325839418690096775916045495357760501953253114614631841156003282540020747365583474410652632790352300552739066420467124589939648555201623772458206018215725139387826988598693091630332822610241686772603957104708626708235680531039701719367140132493201807891488349681965990312226565834583834144932175953221375446766734082678528047722605452643614088712605681769695270014195688579477313413263243454068741873273365542419551166346394510515220204574990577360270887746458735012707485731155100955339406402388623965662613737884928816601428389442996169192260117151084998005755005567302268860259357731183610047141881550992945959712183438012431092264822987535949651772361775171204984422878741043253814092686861881490552890168802736263922852453939904408424746514804855484575698345496188016920816117187429187486611917155696874072151166696362096503632390374204866037698892986932334597145048554243055062467676228579609248144716663259452679691279371296540071355372718756199165707963982470085598405171791581830667518728997639483622536408161422726246996275617458796514993017824632397407039867477272697090127993130773343968342907758869059859927351727547257291348827608983380681399687336492215121266836423236659772006854661280382849424383977371100354377449569269005550442861867944400614730001867379658808972455826448636458678559111263825406502613055252049054677278998839964083122823213203380563529257523179329542788025082035756011541241973844429368946102184287907517699636430648584396640357642262670428706250997736317729965283863989914226327353843137393541273202691556164773936390467401755363182565655602999083317508699374364928526967099756271968764285462785303789814204371525896705974130146224342788809714665006576895361061585874096238201159284449199983457369571917276550580403840589150544870655176183821774781451506110995680708139105367073788633935801360465794241303308295089573412653726584014402507258210458145527318557251984914262048110431811189784350290638575142867831361937812941398837166417330083697003462294456054084015437331641095399496292924517103785679940003592381529363692437215986598967724631744100015289339575156806489578634727804842241629732268342599674652230688210973380086209730904050668535511950183886284685932382181842952338409103571421146629635698920999194441297729947329094856484957486681263635412372144238185998070249988630795794770811407621876406643018500868041779107143517502234818914384485144203613053152174097613727393478589658820888738802437122224488429765666186530290308583105458767207483788504987712082332912759468013569721597506704004237247264516976643121894711935574669716715804464707268128548753453886358898812502556992223480774484710254693254392728204966538099592258444983728462955474918465047069001289947396943554021473365865632216453127573735818121701330909762684357056586672236236553165266517163955805456039292368842977156918271798087206188687757748759601767063521093748541395304348302415715935164383065631146270305435389976426989772854421208318788908965461441163020816254784375905958096345977923761231229025755494823284300773851034045602875491972304842690287290790463764930001657814846986408114931126455316858988167816102472157713044426424491211957801196482199778959685287879704261580169750712861172160166088006051844266226485707580381200136523725412295374314380136401956541767066780065830162561879332303128630406073267371563201269352619373450308902430490945516231581643932238152885071543114174389998886590393078790839016091121203069375890217595656226257349845314702506719060853274143460314176450159527240164829701236090363921133185016142612404235813594589435768417010469416903116504172128499431645575583063615709669548226357277567020352855774831296487084058856008013965396148458409868593738019078201444554380798039760668919806336166559376782565583867118988346022722636494590149440230676070928039531672259134959511190560975273331764553358935189062912391568117594290833164104713912191206363662637511431021444140835427802866859920603445474796697037326146078001891395542586444649788160541127747597128295723298303458494647453558327806208652242624973838592551946868862664307001305740186858806063213635389781343376480335295515864405923256728821055341422873139312271504617872731322630145497604430170639706826443107185470525045976914430763970719329339383680351744446450013723411336849999056075349080375397310148375676750123520804205453500520074201607154045760090374575761753568158438491528291784498692057014529807939614369346473636059408195623719487464564595491275017029808452681175842294004423581126009465950280144469805297341647376935800648414303369823470080735385260748410639287076939150236303948112213458869597116685671203565601273764669753896021119599938406672586549574048968263773898782360847669836776930667037920053536150016085337442914739030560066304141587004284179846023365721598635229718211559459730198244068724070116306236605622781617643045732276551782900275787423152153330053911880727783461257142323984720519449661990463395498974041470860818736965899098914573676621068905397587205093583471089660423000098986884905255507732939543675310812713919447324602302606077393799800115209545219772785727825969890147257523701210872807190726384442495425818049294023915367222088505119160443922386357140789653891401994176249779330956173152835750010906788062067580937177003802538922183475184233668307184582669435545840719160101739540267564910234870052639722371088183304697071357864512850913289525183057228594392651082713719056379117871182678779780966850234256122409551200825580149387525673796878723676724371775388635688360723896877779847991817023078547282857048756535336974821734670466626699233040890688636312700439820767038115745280640414312068644385745480178704956968868558694662878253505815523652954254806696753833706437856810314247640930710735686778214534182754673939169783075168208882883037063695439169715696352672048112534474249666156009687496941355140331883448359490123928389871148735859769396804960293412230623030512361443003237665126492034891777118206267352848861883900276340272369141462786484885896362335345371947043339285265490600502538374300738453455776265063491463091608245481729392766077010747022786134499437501765257376301560241243225289082715059181913491897651916655338342195854362437913041106001830575683817359989580586236431485119501480588126419744872115997993938381784661593902271209095617852636672572623956271167389457957171925439339978202387350549800979620230228542936820808311836095478517989822599783213144106290863482840120466568665033202912363304816572921951381269446372025943581432734220282929843619757833631264243967689595475639440078561867947903926962266160813483339131822877736646053841982931607947698751386817222157662457701389137505540445597728110537835732326987647862982547192996914409663265978739143559485264149580414071811368900768344513422246584995442746502882322518959661325616331954071822210144546175649263144334974843021165548361254527991112323577658978956444964322307956002624090906257644505949820083157080976144975534310039760325909735742380924719745497642939657647301357126761263475803737630999688896474746494457214441554464087000125062803787693211432211488868848364176997829332361302599480020369515407826293460307087389465692061272587256412893616501493845091610019806485963356582941587305953176591481123065748711020062482203696797914727957432026257595363894532909360825056032114634553043018636817028643851440704643571033448549232035837765918372062825702176751287534851356910438007856786372950847137849980913861752069011293096526877788146467642075645810182651452616503556486649994051103693106499795422395575110651492162249362061742496914047459679161056422002674047321346834028362049337971099092889965688440503008958250667599607390397738957271263263753203635270610505563912628230472061231522706386351829482550367837191325842995759398397206867782989571567606453119062498438330479129400444231135768830741804408189629577466595628190849535613162401441886739501673487159468700281635472368725724982200175301336984944137496215037351450140723633243007798390314460078208001962302449388279567712831698990757255251373647238876030813520510640202642351868514712189463773470731899330744937136274444630828056498962057633183507686681329034784350798871594366929708017209653496205504130890090002047283932856955392254178600238245110531780332368668149246451335208371208603692938371374186477188915549926383464792622348010482101959888884248006683520758992393992127694944768792938504037216330230290964233636480204055949159302615716987247626064663056190322749811336284046444556454205056105039867387555478555643010404241570704195590535292148849214298366634658832153071618097902196332962571667691467949304579373454676768721083513367338822268475282889244319852143367074755101447920870160203048155456848733949694094474717050140482398001118820187877222825711633947537421484013541891744741678478743440265393943540083867788610545168075771787807917419146459029727304385099993972433589794614997641631582360792885567779931276441470654312866603159404408784361873093279123703718312500208596485463287945454075523510436358849566904290965323240833928003437864877281649548096525005022319713569297405401118093522259538868386148270671061476607601827689179686559171696137287054728953607945562236172021140288906597370970056147531567224184261461768244636775496234153321034971391610386714120645528862562664783734781863069156164926333496536029644434211008392049515397335057977113911104317470048937715572864898680513456942178046597510536954727076008533322995210755317409490903143805434472543644505995040886230227953821705135354860237449494625125241990993183593412962042936832218463415733331703647071220911630009435233238053320375326533854421978573866489434889443528013600444562447851646055854357155215415250545258288098437077299510143436017590146295704309974791162221768171068236890316961380213239160996205954618677509304985947771563287015361200420621455483427482416656211137187264172352025376144194497822707906026552039843764067659681144205365324097165089722775423293493042629719689674585959725339099213844716725079598817356806313515525887269259832228672392959369674464770259787552127939116052465233884383945507692520510443148110772631041439085050405195586519863337730769607607021907815788248019172434476706539041936218598275167219739683512630952515351057455886951887899542286110916173754289286188099603464037700759266404794338131178860660493883577799263628296979580397560284601508588412414979742440906037335636407367925314291626871515398198679422625447339740651746045612695574442522217551673546039215225699070150674428099132001565543346332382396107482333733150550135748326270520623484736295394495619523326466800010362869060683702603911326568549218678987322486066650691615308185360465447526230031031370666196687864004901371057428763652683263257658179633760723120097526183530886513726383119370626698756436598845997564589908133604406465803754138369298676157848756173223113298641378265179498326384908758861913401047648393301445902037337510692008487316925519885545664241352678297365295678518110418399639489227032625261605745647983519701458710134345873105751258429059954248725984992568331622584154322442977399514508941661118785075861165131641161319119317549143811300768921682941389763152177490743673388883003248052294054286597190494379635383309294329539045250811547992090933020802920053127627052194913867134100394559474097766900680238169231428201992535796451312753840191559021861274933255158500097786473031525963021174962307701755996116980871449596496187619592921819029464528886847423924480241052989590572597682411061996908048518738275737176298292905604642888089161718793260498249037321001243359343189423171917855781663338340787969115351129231798764192263145832302852257130776388776911611360366457051985903979636348609777833642432960402451272439475445234300531005835348159797232739551142301953694527280748841238123763864623223540547803082960896907970490551847892577213157300158366107580255883423912995852741840507396030153208841773230681072155844290004902141521730061030636984387801883186033231833313432724654013799091844857128745930047325202313831212135067839231220879567090355430156546582484587852618956320944333366133279155442045647853044200959335569314436005456938232018695278074559391958500047250446643807874917513091010049981805194310099750373489903521874973173090876251551020955992111211448610607208520888150158657327471404402245930640025682281000072066166288699191864165751891141240619784701856159144074452603434818981687648774397527889360572037685141342383420496408535841691535898554719186113836040243047995434355181869248821163947642120731228305473600534757707660422736581654501622339245681614453122725844388310516355733990702171125275731344994139874668084408564500286005385495205402282772882215319790144420132345971208044732284916819245722945217061238199299913238026944082002864212438517913299146486196380986370741605879359434212883529279884240109446029403389228884293822940155115835126820548416973772117998050144866155066969197853485691740222724622917410571927563110069857016712297399374380547025717466054954477889195930445130099431752065138285910518475697958195076606809609678065140385510886467726356783581670772197791714042262128066904475366376134056986693000575841938612253185469378527867463483691175892469683549346791029978901659145167531675489022785712120394178870390839014478998035429054921305479754641446420188399562766583571388851522748365615441597306914561978374427463347158634667380667452535086828909385632031908000282094816712616200703279918887295219519962302025604587236296563364840783491138218271522489145100458463812053456843786781802429731169825705516251444264936735905657068780181007598708768601576833675295669174660464169155922374210320903495594690843392207553881989231964710027401794704694403602583872511449162278793941570719902502629181163724594626971464693446266601888892615212439247373857136669640156119369437700817189681616541987244891712362804985204745068134916969344974825754444763536120896546595207267816820891336650037749841680009457713725751581650501620733271337858420988559945734988587052427574911897258812358714829281836336824150084438703558952101390385852298241241934122163861753359240839244508531334580641490905831234360086895497564257008272565810732622234042669183910701173481714641367757121653486309103542092007630557120266414105286242421746936819797698219890285426716643449999544800507483640171512017370956119414385332403668686448292893836754803016843540133633551497151208887042540141139615973810329899273358579338809606058401912057246595884441412226275149812933775893129120176193517588892881485670742743726699194371904737525351482499555046613809812195999730986281897230363767704372614822558859628585406118454164925775156110412250445835266486341169203619271054299751995902187692030499788055138058871856333330009154762887721862621165881367401914171737130309299085441139943782373559970866769220417374399132657540775096760969456041054049710549373664916676696793958614003996510285619143951679306638036455578733291108435233191305813635559791739970547389596874834495051533851024293899175334830153078003037141349553208567919098353951755382995397582758740218596306199466779199033162446750960365842432901667937443388980091379258450162717928139015660013786586396188221474004581841972309929648502700115800248489394487081227782454248086696908571997074286988260163409381170613475889780553282778315564419820559542456268929464205864924579711601998815274772378507094006709363608552992054393565744490284382990511972979470932914190875067700366995508610305390675797466670637412644284512887535256951995814802911769109833882534598433844065319859955723689459919733848779755694045927001312289839653994747552907160236425146596747228256668972677948248730706147497089780624801103797024069346998490294830192159537813921420971287197594880105034063738254326526690676220591910933279456916793824058075622327817444635176873042299937865741808365404112026473358527326344240779464204116499791094498530957402581261520837610631739805129027291925805708961272575928592345288055391048551843102424206649770823165403552194820714885174627581984934201379680964171860066166263580201961300130117205262633149313875059941125599169964655580817663699040539719524210700350285070534412080032644591625859680007788647164582540316246328874786833905600295336533082183041288936258808889065943846671461835273551141567598307632159340528108717033566056321461724772240756545347701896963885071758740809691536601871041344165461818727709549257979986032785810115217834835095706239700349647025946788916967713673198121301477391400337928065715979860397485194737334467550863762054734597752174860428187756449903801334548235395573769604435051374261635368916498712023375887296144399172582549816654181340058718653425975710678613502849929602198367434910461685494803740435319197912016893519635778069570754412925673182686076015363560525277369573135149130440654509850961859588274951594121177282382524175076432611099290925400647893926624653490374632331274442730352414132938386688355459195918565477949906173359516369714692544408208632096592613577120970067530625505379517724100494216939151317669646554041267838638386295052983893342080745650121430144927043851457542664333987612832921528819502732884250725023306326616157274319826105739369393265693233919918502638888276346903927880299973672119352369800737440832215269891146446348201321207910483703967561493656907113548409840017137584211494583455079080920592961692031706910466306961256622832741941273211326556751959482563340001276231570093143645715737681197609152045062228232210426045514148256156472203681598950746409963805019801628042832889975914057931498450682675339026229154575030138999882344923520272894457899248897511344810700648589369425961655945540260010262746467834156406955197777273904446883454653039028956425747979981511264624590978856675688751797755692552638528491682088721836174887078195498198754553752876589731923711016856671808395493688362070022168805716504950262026852809769267442005159190185910401695331687361075161812872312729626422921671117025903960832971502875210496842376013482679071188729943233484531099742509722464830331320977212185530720465416692453354124002126317748115778888089172307508768291395139284603192794624546970612343076441049401348641454790402515852985763672240201830534589040251355527242598359892187455736126428767202331446140827324048189475377610900934761668709115202819755844370249590601399251208323519715216436677670628056216638171437453298111754882044780231791358828064899882331193194426920397047001828888970830551369765729518842828863154738232375799584453369339697893235835024149509025607791229968789599596797920096143971083873716945618503021186649617440371264316180585304216359856694445353929893252816203747941297502706451928906091860723684771950684409301790293118527440827527329450334574097127806636324301507760597537060643264443241913757600452923960802652241261705441658359891715855471017060765013725004643556378734382403766546419248229462508256610687059351795525361830865928899541891440929899554392768073760102374372300417751809583262407296228565774208807047477399559147884502110890318428722046502752050842536407572653711988128364963836347524095011670385591706276425406601488437224926916461183615477773213882624469626620124252075461733339573151188960079319895628800535357160597709977078939785790706548217231813233942113315152684234366633907630849846284475458803299745124552089485624188569953374429101260281309801697798263858328498927682507249282966147983202639342890978520598876848939686162748070881023361002122742822950052980895387605060476736647739943857557533786108235533603006847329307285667491828557645668349937833340046198556259121870879342236974183237378840453747633385339903314689274344986491795091588860057776997130127581690502933880084696643943169978013010228420537735429808554559490561610445915074246797661240956626936594943753271702251867049314827216454121870807400720281651825763295625275689130074764108504375543737860509749719581784698540302035075373464577215255753375121791719960975004651753160278889463638503995660313218410009409978186413312455833033983104962758647119765794582028087129161756733091295428608387170004783104357529309033953823240392911824129142168812801923581697765610413810824893865181539417791728839698505602588322828407431331460565079402445476351815440934271007248862954944671414513379968098874673648400444821221190360778333514856401078347262587955048371497657354109569839758276418683099827890146559889853740110614890548032386704948586286620192450534068371443247069920265684646716313529879306818747011539107222294013543817659381068432453016463469450330858764615164277401100761735627954510978086121838024697275127251903166663373724425730345461841373839836298713345007887958572486155691778983292316812590486159764533970376543441129172809608501690958597845417816577400539463702069415488814245239208263534936302703250640918983686604955227372360342607713530239968836897619771991456022330131866947104047310103648158965719670103077149982310328040771634813440164928782344078814771566517530664007092817763926517369504786701688934230136454707443628780555244576526400722661019311273031681429781148562784178357052811346054423024978986758381410134063343784374676196384075342527268383687953155097154024038166916060716230159887971304593806916977914580133640201140528397016538404592689695979284497026570899120076075814261980209773000688335326089743396184499428291212976373547859182574719450220611196596995915876106445269168971639031519674127380751076161166024852490969700673885014950491437626825401392045417891892398990745246993942132696343798262729129643187383988582666020975582803858047056232152246033564567306185750209661193377060190997247012094847058913760380456900376600460554153805257321508046959607329767940536572275570111395228381459181168563845048417912837242191213573242735832773508471475834357893868872077300960713945561617567815396638337934777520970921673680431441125677258545779752513600932340214483006024720051726845388266710698675941742923718162388372289217028439028547564862735959224295593393538835392656931096787881228267921305582345897398938688542580697931278861867278679231889889204219042586469731046009316335475183921569280347273631179126879203689557250406346063274148690047681189835165428543080307627154101244752288319012175404738500697381143876479263042003750748943271537754449842173430346907551145366624279516196856779290915989232447113468572311573178086299025912047063350711122005167792266591953126794831613042850386230415284616034025196501717859346295876246090488528122803936931425337841869996199782576949353164747396310264685077633937647987126766656551540401068312897126441946948009020136843854902110457380350247154314537737189322036766617526662737486954432999236421552844707786075119203114012064247937871931469281152047125587660291252483772826124220590854087835499478966368507211201493610580256734191738884797503269748170758655845368990608299511775421119406223782415199928806183331621812982475018560147225235769524801178802474444516361781430664083476207758775222676851337514281414578998528530539050946649242177655335658954007743292699421244493645131229516629015201589181507125145823269614520399728619657511279007874424288074234412563572611037386759140513808172208584702237951596867797711044990356212074843695499294428209688769756840044781531681734844399040282926105502437102883028096359464662190172069409941800832149190232840272711126766798249867062352042240411778814626957829393258710680593870594541728551174587725917629726040674997592072701565015733280651472525865736502293926893525973512835133350281269007784634986189636879810842511214454240853928762881245627803029694213775037016490509642645043271562024118268091400112593696479503602620563560616912586041985878322904448183714963591693735546273356152322851700225536794047356097077694728200538901440321367834129419928443814079548889648549245874886771812591401468046708959237986019923609171685103816779927986347924483147800061747210699249745862991611159451529265959949576542634006622196701117884989616565106231778971661311774300082934352428503310782304281440603970257701585344865552113127138325012185902183104888718903007719547030643078226760989959332232202335390934911820839357766228007965104565606636075377391827520726140178910538951379117057118556811473615563942566029199811012306237241508469423630050247849460904670642255220081855860340890337116361784390296996941979853671309433905119658630069675956919407272567157685247176780295811755602321471098598235001964342592966630962053569399554899355519226879713744050201455167687287770268584145626573350421333105065404548611482914657363779164366457570562348154120035933302305053306132083917332655685993085901074618974040618099486909918997582732122990320714465399095919382646782645941353643441494075954905304327956353283272129617337082484463388214772940471148346456157822373148556905294974875030542451717961001331219212272555166658969863442966686879127916123100584966498959164239559947652839009238118218403838056959084554258490719567211597777368758901380585958391301600058050549688982840041764333792414284683844787688520632042904997981195227727108451419896590980787035552815271655600812927320907783188689314686830021546254942332623147969862215267622353781673703186493158661943917156285409623121265137478178166610868504107163612081857388182126951891552095586631536409217594168290798780924032230860372946015876908279104721980626975157620347072763775863845171817354623747522158364217210685198157426009172103861691023722521028473624866735376895634520821422656983627945911003110883067145494482486342601800517696804520438468472433264394228778983757818691636626437255660082989034920812550475323175985627855063104881640631892546369019156770994231439849756537903431547899440558617411376379535849123932166852618671051833680404002941668953073731411979210425124081540718290926900036434504576535484486038441928971537632222978189429986112324983929203460613034444778862629160505621804062441155094784406693690824219697298239198739463195685462855047480774877794069491611563944387454354697079755842346124002061869249233290970524638412356720213640523912004996789117810665112300042095819502164061105015124743343925417940380063245775541307719133435326223552745931388006208582074264524107634262222960792428647933832394487719454594961281645763214218111794495276465212503222123048155743599253864372702391139658683009063744066502644202473834457854676843113095996821151965200881891818912385789028157617151694063953153019885195004994045740123290631038339980616320344306433811192162638978506301411730074714954917884683818105660091615536677646198575508943827678594072180380631827029225905666725653559291971226606074583737952557346282209401190275359843034383435327422751045230157089174086961224156197811069830078264066803002955138985486519434884623313895320270172727055567919366757086923872339037503859137555881575698525585901787799966786810456302733913930299106450090520276804925796125374874804192548333704614887203279142236846460225417024985952617813200344092954164022587587378358272990511143800958953586040359001137744349335679925756367365396341069516764273449436145113486815884861733430258692755980961446487182977632789305758997545438657921663929794380344103307570840923222928705434528394206468770624746614897422394805535993724747466546475804662298823935964566875737943805660170615443733433403957194940731124859114690381429571905974558307344840643428094333343133016448909649572483900791227195321631571812849307680774303951145914857720506413989206546623840818346209006555314494256824046085353640406938580668750640040980006547804506588544680600097179765005128681356228693114571315054382485474598940374747101745322930045891214968669933631893996464830956440462879954165332731035796990341065036281421946086293683441633923156683386401729297591716381332645323968616479389328010272382636534452067296939162009375331140683340959329931373513423329451420926216705404464746291679024663840653889147190832145158059951719511706693699241651473568480266919684574390398576878264298636610652382590482170329486218750517905487806636480961259935820106204832714528832911613271972086876640173027895380066584648741054338905155449269174723800664672549181744360619656238736106668081860945250883319051859092487258251102347939834049197723227606004864317568871281039939835425950973275535836154122372933391780980667680107581221266940532280071707306724526382045632955723759808792802324562936317231529310328194185860037296428461067075316385197070421636157391375349472945182919627156141282425174444996565938600711526167520099380243018334822547868554808423319374223664332617089364545599012633508193428959861878669175298327737267437546484929595183025543696097159412304237588185677806574888923964104663232750415877029785849440109789229723510869250578355174652137685504069260688656834368747730234528910990731115515898145708245194165611173214886916786663051833116324504473528118686310315610852101145889260859217007415058283911221757814592907613469530667170420217608535699035765711647131217485768211644966643800248077581670274600987680337867012652828137550898149795101196128679298946598024941920353761664193936788734596269566829730527258290518826322352855458209654418669355285720493479764999143480669680806231783560212448541481790657489845473690071338738667980366181326174689405174540822362964584133191559120851235192672764039406702104532801191695693615091088732676607173426083567797314114399100230104743011098022688483258531692820946285157139511016150406855268048101022311616010488267042215711354801553504353432671270690831811526272319526826777859881822359131366167936278462623509236440519124830696907433329256532922638326930904699404459151236767117265047126066642351829818627842187985253308400674267302358596201207999974382430977483894240869480819505995568465752623036690620245009725211207873463685076892493135714471044072363353243863944008597473954544932750497556596238884489250918332131166632328063238751961094198433070673052832047524848496395908675282334070892577616795097587959296976845746633536366461094191460181799389661514821012853187851401568647604006283752534348092487976587957970432953970836591952166328333641838667944451125376850534307275900233302615470914917864899797283595654075741425183141419139739605856901324463482770508623851687709556073116402666385727714080396322369322577356084886143555947846525005029469831608817256444115033005997110171139248587410833192668555433388791534201191047559485142293129262291214834346006955790361921839766745486176331416919735464612036096357564100755464540857909361397262632133503133093060233405066367349265753613007206984795043605635694206025705981214644925218800550783257409419854312999721147275231157641546654131722136289687118701659695550095919253638713440660793916674856281540490984208935656411551052221795696911033735656619779697765706454357025849293553649182880855593826329204015844850898565422755398574452906834663275789672798562830267116056635551059239557171325796826774915798203530165840321478394455356359785488536251410334121230897947949008117832550843387915818144018367677790614414103945202932802019431682378340038526412053217261640380891489669314412083214481617468003540269034449720741838113524297893908869133964257461369239102880316595827480875311497810446327985935647841216369752446133100511185316139903140903464056495994004833160250273698612701915648728884481029061834959126535801157391542577498938588858075292783223546035478839034991748978803682191950894421710141785444170767902197372842201485640830861408780506287198816493070270668065244930658647511324129577696974483726552823527936122018654155865740461571987373415218647811583244603633311416326468061139025023942929135048200891866011923523418588506853236879344568356568500018416741838288447008736927655692355651791508062921481465186826838812188736686788378568769667868230716026911044459517480808247100548565333726227785907035528848621842596207532866952535611392859762480498738215970627685277675373601866374063351392648656381823375896961502869944537362617121446640348278898818726530847345980780791303660901611437698840002859804809656749094983477866863690634318812554922989396818446837214010197873157757460153355051003950119447772304348831490544377173223330983524610756538131068234754411753312696397688871541273931508156922058218903366028912362976176536740679446911430453178249928930606897844924330712196270521091255778175990487217241697977753345721377154880361674140079116012232780555859024167554380396556046789730676601820592905796774721210471850203636498848209417910519096184493055404721371658941319558742750886335112843160391845005857247472969804010099932926280468366384601525981783406212781401721270337341787421357349671833078412106848688437937319804362943478248029517149508294034963822815027966768293167440338855713488469576798270265165792681802602793994203269314475159096986730746649365953579649549482818473258006953376300615378960745145383261234522935077972707471375081673538758293413767228389225328106298207621332241660708301576357545947092363675036071294204345628792279403330206233592096193899664638590833211872977622727499872196612999931560176333818814619211158820880362035957057169751066524101338617118966511517813203845338328139434532120791756335214935532637683606590803168859089655790375169887126454803141596480979340737185749766191564840394360332601423637385359661156547845480793436903637457917597223083091974120803643876081144066393229889471230659957036793052882559799792611064050601323753701191672753764684410010191500267675181628624459050275791871110761722959749225729481937275951910703469754955122434565106345739821101090469876333760544456799205145643249427950412982468245631349930257796530067794111670683819774813584287334184282384770958979902963055874155934937859472890834318098547143514694381529086734512956116980172624624091081231748167103460426780693804115319457400769933153496478017613239886780844124152568692816281916248700374584828425343694226863036451776833102793665823055763044038178189113267187070759860761256521096065848068673253877433416785345773536429691797930634404999170092259914889022981624819568473364935896468794224669404080873699858556745299285191605573404817186595008052653996282137568241626377821578004208159893924697418218498092066610347007892300676364340205485364729143045316931010842315098330648074523253126444808580850547174036789766709162309321678916361481850806790007145188240422612142582922267804261114594696180859783697295308141224180305432989292851065333408774794840782729869200391271814458965764715389068027693432320213522033674509334640703893890279548614595628483730370408353015121323716388838749296106739422026136861218753509725620115389669351208570061379567056598209842784278280700635201642051382233095765126287304958314417655533857225607266835532316243621548021713801998049659430727141891951726400556973614407513048955106794874341479945479547593952564537583461887706479382633571661749904892161660743476192012891479550419889383537080492544255947998761966566025543136527939921643783410277462179422054716623036442866416114366941471186997141923303745306409707889459201649830394004792020245758491815694684558798253177696752122895922793126390870930610029533824162429011858366188787044732675919134672774875445011108864878591418081440009434232491573943781121850231506026726261270588870439191944663031664491773021822932236306709599411813781374259020629235333821522582138931977918150221203368485962743394507595966150722153783746113609160045386331112261116466972387233268043389693395990195587630536588306707522419357761120839584044932916392507013657437879838331872464914011186840627568946259341703556120837016190302131071240231883488993492286571284219595314397986827833053189144258216290585993657793031087160161693569410168227901275427068272298088336742514150957803620923341713402200531063166982170025718700460463609565694685512178583704048365040244132563585211482527751273772701320936750092816610478140266700137500975537118369428249490550559633066127600581518921686360566306484250285635821179020764011791907771595834135042817038044534324470589982916386105399132900516104693049612925540993923009410009828756839170011261012066047378075464220489193099646990330182876387899234003104272907033882922166530619412982005019378271810629504152095318035278968632800177079746554107673323827700471298017562464675693967820812766434101594834952682214964821532634584281212295769406120557599891170800266494103098099411276966069464218909820022498768089047941503837369812942363733686753149270216608957386116367313434177856580696771396620869244918361840129934980999531798253319998154192007008742752254240005165389388261239117449666142736921239695603210455786811159448204929278033095165215832515301422551753528033373774191138888168300726481010893220946297276583751333477025623828037865558915221907294253780106949012827332923306103103848012786846994663526502707210448886932236512963821710364703007131381031175899602847713333035822295270551659446402872007442895181798103599970344937171943291744291772464627596736201371230770114291219964445923325161986557502764410738019680116617116620616192176200206512360193377264324393923265662123380112174769954704500413578816622512813533821693728719913056130384002241801143452755744562497863852283879815413485437944391308913124734342682125879593306390767766860659899817603810214171750707284000940890901634140354735909998033405706103655050048985524174473851576835128285324646077007557690322862982633457528017814189402180519597100383700531181804127739476671060903920428444674096904558419203855213621059688922820701442126074607415487494773862837375688892335173095927258480529593945947181037214007923299671643649299900340098828305322610868693841035557521194965465935356471266320580476415185261355674241664426248133001473095796198885945489585350555671664979065154060276937751202895767805125775948940121911176678632124351572734286400931259279383013922455449722316522668829524422665876387100564728190355686247367862723596765623837046424319781973041225201461085493174429178485327785643953391533420930607724617038444549087080758387385501040437417824820212063794511491987065983434186489812553414957018095853490219140203662963381606864925933571227106389878965573078928245071062678274454604709206681335013607953415040245164845008827718656906930492476837502638869591575272390116614870382905955185936025265491613485310437155210635064092055836155239337913344646729277976998341213242653602930123188159708586655307265520270343098097054408548949891872216662550185483745532890595180408721522103035756011282758195995550226927364512112532484288231189611624397894497159088886191644580169940336257718999964991948721113973123560859518220640834920888811095450229945242405937087213096973116934572753576688515243005874185468421578022828305505286437053459216288646190594632561066075562329234327079395815678187089715798695921823202295070417718789104786577679311524408297357401571399891330587769393325714491986862703252073663820750535775569763226043298053949760487797272407504359300918201211014647215708876577567109778576679263155550260551627269093300393107711457062658717434564916059154054089378327989617280998864651749471115247706358985736352672998961376529669631215376555161892002767690416286779094151752500879090654580710436393243572636796353861401344648938075894264409687315173636630375489746050263359120514581547581147570863555766689522745684694115233685947042189691411479471409498906829269314549036651068963629669323181523794871555363099938252425248957317899701839141700688817647458897936850801818049379445690196781733320125118761394210896436089640864260458607642064785059968040718139122767045689995884970648723163473283366787477615445562414108232026351946460103616009588581672281484300992339243417187950385364394747567251584378656605465834489650513758214382440083181022749103783380900771727633369125686562229100781805802712280890049660245290599112146810324348206679880422639214781589192079622757441649805970322210268434534243629464466076032289065305848560585050668756160844025194873064177147925108720944614326564952103107042208184214859213218824475877379512753760740865954355165507906035703351878091447772957074050942989014545395598347649294537901569288085714532991078212747037161435944820177103376269731115887575831002815012099826761195406276628323085630222435492233768158350582913477391007167554303726851470701183072468605291519344524637546488942153978803386394294697466674486419972939733812891825584954166993337731864236145486513698179366766965335390716999267501382091420035513303855048404826972684265617808857051876528402879166266864371059936437885227170218032316226716543424551371643581192721741946043382261290116429646883289308228530432102889343763600069885686022651326477642844444615422084918616802884895898941283424264683405952035172272863343928936383315949510666098982359622721443949308418216750966787409587668616499590048491037268835817879254128463658910253540157443736997550023134027194302610307378044186241983668670398087764045913405949001078681276034321256053323205614573705488503202249401225615561084476660761571747378519482162040131764535589040725385097309220444405853717140414501037251690910156329811757293585790845902047941959708035712584960464767405725920104406499214956651689027592148394668100631954832709762500188114545962862449101222834417849790042772538202806120369267774226673681982032210016241932026729927149384443796925196514242815708426490608878608537530248525705625271611334214428742655635204266489078505164485190348203917145052725821118013829829332986242088663022630630270373588262509801648135720711718333552355954308304120911839281867831773609680069799355551864861844482221153541944543108191748250419901175799508660548809768840755199322417555210617456268828455870530386921417568330881972803313226112971252503584972174840982993268347517953537187895044670984833914920594544641324786445770127794092623923476036128735011420099823192163471508663872593415018471812595691661612409152865230582900007471691325070420475899683189608227056948054976525656968205182754852346719076533180063761005103792005245416340356886461703756517456657038475365135093526795924746452124284971083207593947047474067472791234309992834078498284544249094920041704303887836871217226718805429310837350550662124109601489334106222627173358569222836218162783361400013375976878181053503477176038946425179767277851782181324990399733878317683202706488158055126738864832230501211460253849340769504966971738316808158481403378026047583469251371764852505192265415244875351445836765963100461826153138665444989947221478172473481017606967396630391543002671537646866133694854795208720576044760566858575919944999773348461422715759808625703152204090666868480503049823311299209946036179147189900913924980212873262518568677252110694891956209997163956366428577748472373246293895701829555145664578063343433230597038928229139598377407933304427886485455163449323827473926888442871058663615162553002881599410667838548438606217879392424221441241892766098125567241762022529461320468857153996534085794204249684460215733335182693822083898638261351466628574324196425247288931679258628645004768736863841719824261343063419417116651638606377551464296965950743798524583333921077761111316420224041534609430558662568599527287507053640769547424230494084386276849734277558700956362385877277988071928874138888658899025355502768184505015005119352500459957675495795435585698576418725901421385544240989211084062633995234690732615476850671607668043845897034545403941260914412227743109045680723914419266556040761870130676344652301439074145733412113848700063724443708075819593822624836251140769896157797590334708854360973603404687632474670466562215109691000411552866026616765498549803093013587890345302840575170971907691384741026947286671580807254631611341139403442927146944455191950346819765316901862771026847579366629975414008393282673102116641323960606084291756876861965155432122301977640576055984025856942702362320965328389691922558351868782409135776088268277052497977941123335405461784883378547272319082654024168844120447143938413050117621598931432749024828680267938797794758308401967052045277796811205017124219427127205635664704751883835136710289755993720428979067475295215399855718057895476653794567797637479938881910893805888569814291421109518972774268834775925204534999588822691054624443034425280379099695797549931709852478209339090424553919702775714356546323742149780810926961443832146834050958665235074473703136177254173442684656628865940746638667868872682969577337595846258082696243729523024446290652675327439194946134759682394368601974672979505193599838284027339846135896057462799196711453879948716922535007034998633731672162118426649313397044623245977014887205435437063535660944713849035552681576370069464589468567946619694825492658805068996079062465393838526931082099864505635735114152376520045377695231626501157059020821651761986163686390575300485291830006998383112694914305484227446340569672737688304317662848970623352017905732668081012281841156610472092170877391841383960445962085624228668470322543155225381825224208798762507517665295185300809771814787840153966454607305537958192267984009456498340912343934785055799804393587794661675619045497724230274854178633832900240042161489706575549518591656876386709566215584817575256148955702637593401023140655848439495511202963164579617790804150735904698517697138607699233811954489756434831824495097812082046831783553238168909851917965150259673887062358924288921349959244252173515411400911699613482730502555197884810869594437642222988018188211838475829702012986719820987009161556905770429340372144301130088280023985151046875762262179652989328187690044021774990264386177371119340653659254311245907082047451115233689169973253131862422272317176541869010929874331858262901162661829740411106448539563615959665751705727417911085926333305430277809627666157583795480741259847991553825640390789394653439235238883808814329157934427588776853723001768497866881555936459335521859585698479870064771829724256700458960018587059825011338148570097100074039310057445920787110381301454667465341932052210989204317676158884659020959747822472492655902619639953224677925744835311686158829953160617675916282944757100898041283383812021215656852622508013134810450768163858100254580715661252321642809081323456326042850699303705028926916536112203695085245873277120603773526709685013471622514760518544183247294160506865850056365722513673890700476338233087369820853609096186893968654231691129589429586752729675503822736225416812675288300467069354409828363344816495117197032947027096709534948558080915680852110220063516010407021690945745281400776038816892999279232903268266743020128810623887511648272442522815663347176370703943837345725821382561136389774428292083977871299511003701200358057860553252036105766301025606579672081615175507016802692572059752123457659016274819793740819630694657821091846544036459781815676693674864260582950186632652491314742506433560274580513698238428163894580691677257351280330531050788531776351223420950751795095260360621200023297668736248088582360377552654775218473982136361101116761538056605455328237521932665418713734124503122228240057236913491896702267540108287155106651408537938188021305350954952291816352386683174281120702795624086295673164551203412743297313325831827196115305403629715074374641857910303670421704545993342061297645806416566246202322583946444417213821247232278699489788256625408764694922553830757643157459611206919743375917912881378813434562336514483658746528972012312579528287929833090570256860536519916453731925694570760122331198772460015528524699674203033751467704333463688063465409419834210064207584129597044879210070908992824176184313860569887486056283251940249898229604260008387785095809051958736943905638483304367039378578749769120985228213430966386385216770187939211036641014637277005345427131052374549057094463666270740885774522810199163331649617885785123950605892232468340763891940128994866245901400897110951649743852527895737096218903634024348489813077521916360645495864100800858207267212448711474993070474662374401096815673783641190151031596730993126372043987435795077097068538124465446606918689564407705414498623401651698769748048669672410241859601623126987520119693617752013190509199860275515699028282875662854341105592912141145530589490141453283610368614738930802274364700877716025807689412113716149839879510077939964781958130972570450499472370688689730613994649093708943801406693036843014009916705051312551832987349607568856018768088734334485815002969621022432066502157004182352891150433655130663260471071676992300888582032725053612709406860865099628413198827350374157646054891138243798166984391981704390262260177978496707217342817449752280999723755136783005720766904004907622577460562477982756264181719249968747647508720147777764578098552178381806039006571961538473121653426827309610559523955635063371092951977878712635270142821548548199670052297237153533987924731640857280226068276956495849303767524868998382750584239117140199568291004711834478723897128759703231906060233685107064187028213570778029570528905477054702707898549485923714477721116501802248483253505992303361918492787799294772638009724349099257875732654181625540475067278557590328331994622505313696300944774413161729122842341877532549687805914612571228340504989536771410045995645347398423191926926899315881146439525634297765967151617915197135433984030171890766602248927023014760509556359579679035026543560536295777988690148666791757463042235459100511142536199027167835523806199483766638761072384056128523919306661536222534150160170213036816233579658818297007045407892541609788336636281854945888181895266379771430502966418046604768581212319132939524294485727569913883411942505199160059944858555723473502316692861992917960564645781881779945903180805182607340193713535624848687713403635941939839497065483168648291613378753183010694738428810914738106288106916738841545334455127454097424388874998500333195331873349606081183356240645028202819890991972884306100359685461281223518019582943179445497127061715881255851783419876401663608630527617645574209283251628134514352433317411056843826450524435488711427163756871679185596396983785856401508079970869230902789972792694188186636906347942014642073012154475752834231950692099228548496756253049097305340835463397229070524212613285935443650576416635331858314984055763451713112732342901051055560827420370824085541202028555826030407841290423914625069554932161551021386975374907328392915017480670652842836011759212047589258059323548632898442642440792058974311047384621268919146343196310709051505167566633565746440751034392629009424781795641058506831760591749766058349559943186971557504566571565284026194086168153753686703247822340381019283733777886972129606161996324519367081406331298978292852913217449787683416759393819357904496780670592044472910772519573657712829255910406796905254300652325942870600052940798154443370341443078744717171262806497715400103813082861947093202438389654965930002943560324738302083860688418028841894549623345216796339246064910071756922595922601518334131745827490867774474000818407609962108755694534262543868129205442351062272295987364466335643849221870218267318851250271806094300296936142733472672433989626890125730901799673741608274346319188787239061415378232917163146023193953724880749657507498042475018815244554103451219457730668347149161673747284499500779316226935082572442755050517087622757571713669919413896931535175708808858942812970447485230921424639554888763878378532541027619776442719869662022946012694652372479088838296642847114423808553740314742179773414653223201679856280752761885250675652467784167896656757401228770483768402108170180447604349748206493266469862822198379297250220101275907956714042978428071959386611295118925996649186426902607294442435763054690874826425219211788084069072390472815034275772791649615829499249398197698490444492080519670580582365451658553344567087336424180448272197079080327564991183147883555223939942667421317306498217853617050236213569217407816029512019864914123548918878671112035649026368154434598199969905014157689419749640054283596387478673554044930934698589281295754499140228953404207567749436621165102128567179754870902610642584527131331329527742580726409712014688886456077025125209416497260685681612781905844438158372449406708977666608716276576516142921779995054711153634197017779864658357650401448458615605407553787641304523774516304031794451383826087578825739485769997073932474470293716348346059976668075488938205245246074217090055526889173958105931097577518641158811802832932274734566615834805920030003110763300821616121377648468791673886700342961523998165316301465659383653906357409574408095594018118486008007330353109282946667930302586254645889487410080835180803095421605694056234502109976333433836290158541809652744797307214826436103925556870419730912051211699800844533907726091116155696384627242802566095196189075569234636573720905648578165805476972249620283447803201370546519773475300715409856471922440283509335828616254700819942225084413905913870989402619254845224146469967318669542317744353331865182560952165678378233333627364646772631656392360796260831149574810942115363438712743980216402466016769900215204921882224229916255606351073244857147888234443076583261053122885970969020571329020520569083071628086819662721886758511747287749117975700068373736141824539078166495753965794585581015858026942383998410788013366048764673061130061752803840874185669981611345200103085928582885507941322492440392898722579296578835838722734900355079664483179055359764653726588477165563798627466615002617705882962707011658577901140894146030682818841250191884473913517007903353314855831336349134302867603419950647682910980411086183545814108903211689077519540950254749546201111930158295988645632567569851428153187465051370260928630712811615578682621370225617922662146894915432563083857077775859209573563020198233456379414363944170913048980424469219005186287138776152317490820223298010777509475556911618524745546627969926365675756073570731245714485864136498707969413351729154766997043397585270420146838341453264760654495480323956230682343902058243969351927691409662363166115881852289123630203938583449566553507127280403425950603792184482696408178227501344617956018314444378018337689923650729900833510503803317846908985568690670258208025883926449197859373718563766783534877885766771732994362112836870673488312929440466124094996288610382023884258539323488212142654478698784304275594351506517545712659018767176282459797032863990214801053022858840739131354515090392840482455898927023976477508775168274484102470160192599165408388600698083498259531459658401090396564372489669959581846306966906577803598271026201348148880573242218845946332531793158979864275011912281317339985252786768115715690842853458459321813499442613553648688610056227676796847574887319167752700122777716990223114038314519882281805193181483580631321922434014076197479816150356559614719096406024942156174809662624668407529628759382531998244458674095077106780441957109350193718570317038787279376651118568124466206213801474633549796988497397851287267238144290830991781810977082097560840496262399868928599235162247584404634735868457031092525449165095117332663085591812008715810647880076646369191309834241467502744682897013266404578948841050981313400605370198577018858046045623914911129195958263342495398478500818414009573779384628183780292407364852909213105732344958506666200507411553339243118275601108840493382815557034420144220020284979896227558644470927316762422691378616987594061692610302123940036364904508918300043657430785496874084344144158600254652479472734632130635554200675839409990060465457622623535555107722145915892953064996367571768964664653513953643293931023436970425642112433680456900307628495765189353970445581280173498442129934248561803603098465863596824539159931117975100832589315875524260557924239482218596415493469609618418062308196815403327455649639169034548770567524494582875885428642935168428841622965216344879555425081861713174923999198967935288537354585783323886841373926967333403808794483934686879208243593448583540211629733131303471382001548622649672082039207793661522691803019841882019697491919041804098915096686253065073803570422443472080734593920970471866137109550306374476159977168100102639398885723632650270701984783385825483406161721082106975681594370638754128345176330553645876280986658255631467722691352066680353578414264734783201754277391007417425317593865442384111122576958893650294578492832303229255092933587163354343067635980679512942857190243250925824103911071994121174754760103713165859453279533087650033846222294015439442317497444420866654876014394822825746715761173856882530244131878489567740975864838442568135764037335251499181658959075951872640754815583496928471845539510820450912608662322186334792598598204799025439716912263535753282426492018670883671309304689137293031583673829091156016901222201698154501159838709894330180220225831266157198877387553947688925245848298692929340569645375988692379625552307834681009667851346270504334602072286136857638830420678787745755198770909572742198861153225456053137982439644576296154332850995470830447123326841845413527270412586957139169900842306647816593741966372600069867047793509963815231893911437323663218151001398601746614654710864086699600907897619174128478943179143328128852958811652498937859370069419734260576371679718843811982980272593544848827685543876851704863683106030813241490564968559096755629258127565438799357810113514110442300416605336028368107796985078833493025713796277081582688376012523621824641220501294530210033419914283477731596112722960050515735557915505691618468978023560665274251382133997575007867336957048926310325041757003126894974796400238643927468065023218344859698461916970037387007373962694659664328802778198070734649238953491547047899334765367270350816569080416980520743070293258483285789886200521331291767517062043201841143641406798667747977277284016989811463579794111544187125852754571054617404583838103374952420954775711677193817100595369776780347469260518487349336218012832196618607269669958122179256696439132397906433936143709775490257309793275794354847940776975611410042944900947048820527977290604237096927939606262376545991070690932710404118846911635336701639507252812409916090327408479055437285103357825644485578017497279736392072610060420820281637519430679213838021172150973231081192011274673954164162195171920917633525550875064463901398175315193375238685619531500222710904420211876508055811003322807938546163473455344169404308739100516623775906141282981523558866768739575910762451807043739369870468420455829855837533022673496561392725666343031914639290514209977809568422428005474121651130998174887529532969803953704521463522014484277767246570535653010757421867528288019377219071100703242389969870743267691434045731332847558564110961385315570064050433965422810460501179641967841441734754473580808489899019851734974704974224776108884381971547175829573512053301238439387683467140426693484355895866895971339705152742450006780071662050531688527437162843827618063200743644056975506674150202826387961901448856432152463944996888093901635646601890779724362322657062573345286596431872275428156019954240204401362241493236873481273792155674059085876210976968125863751276536828514585938373028721761708041015591391537256837712840940280433407316420320237114979849247470969522150609732035526751960916221852234114422954368277985327150187884294727967862376433433017028157560158623284309980204147266576953495664454175631229054475570728346001731664190705751574721277118818441154893163995324478835705257582500786254213846883263225110812869341182610998637025040237429926797781694034201911015305815605359562247691043303975004823479242819943790476138191717944619588860049370877561708387244539615862817010800911887206853407739707373027100142082226692821503054336421507653449479507234776129567992076292429618864782589123221653923826263587588716019412495031814467451750743868935694527265028116776842574235283317216696476501759090831559067998562947537621938062523971398642754651306172224093101925577001582831510318088117881151400159947392752068096432944506316268800253437554333789760270493202812041331618702566814853753046863735927957608204368957211859178496125575880184698710101529345759999134052737595403818696278233424896851559484317293622717077738837994861091595029218752792592501261731455292037574805855151268046468377823089591005058412973526959536485074386879554248292013101241840176685450499255509211321271487469137680284097011235930249094378685645579988630819169976108580672976865574519022385682808343174818167556115256673228994766438485036498748104101611727344078483259059525495668116551094912975315134378056013436202252603638773684872070694711743124200346186316545656836893828717283406339204516536010662168582292899247143217629162175430705572338934591171411288892068933397179723492338042359942629442380381792762882171199009211293474479115479899529474190555884504598568517146137784412564509859309108120303702437340073066157286007328360436714919658077017800871260164183296586717463995112394342057768613491411324415269976175400464247711493184427035188095765703250257762851052222263081856382080876210087200625467171776787237672228089423119746712463287800193152039433718224517081118575712786116887448956464149698882900017562635970970133735498280979771595934062166377785954144827407644666033665559877823455515076052517210197139388393466149761373044997773364505746036785008069711414703219971846607805283029565777776262431919874834681731413550624604712603706486629628557457477915975149122884330287944091006533103482757980481973238914111181825463183467808865773108735672432550441492476595680128458656108712653886031498161974617722018506578938830553209095523816353988824746811198315017890296342339418566217888607200422624157381212648590908891111924045207499502380347924761684355976626481919459297120999720134929321932048824789942536934373213589548827915303451168219913228796777708609744602794273229999729414277109694343893302888163543714418134635060323539182838029218908039708107418982128767014937928124318660542796002933653756989557308131232857460223642882126161689182250266889712183446958963658543064697266577372287050607870121246040238165777613437549687904587676698201212130089908418216177399027766338331523325081467196279788102338241589815060560449565182405945918514642573496209343978757595548499915463341839013035677055605071622513282769408159060079032077068235404442882598559093998360419967856909250928626863286672436646177752465497812028167707570337872783908180589006019545447520549994958418506088537808873585676503990624019445010037837639082860160702724356266718183230108150264920749698010003057956844927126730029334314008853154497709891143367670237579848477300134965127859814063404592089576727335578809267176216878181383901385410497802036332966128703395972765763336558174964705418524642594092632774358048580400093298171587555518635805581243834159397658290364625729163730517440867539763015209552888381211906966588266936924078609659728680911705291839673735160463043593843627093454250170236210885085845839942173402037158052292041770310459289631916703326910647966294479511936557372025164654848565216784332012686024556609706008407608865293723971153865701158268656441751852437219755822989696703655017144569404956914616508553288947991693024149485155743142451539489240939885420434314361280011529531484902881944045828828005217081605899793059918985603021170994296902025134923219833965621309556520791081932059360909624016479091304052543558261842852749456672373603449974982727408131905681624424758644463318220055570364857976993305709707509653123048378777232689064073688849600531159139917270888368387748037593778078820888209643387225058050639649500234593833762732544932752208620366725873851346838206981588922988416850895698489092080621307450471148976717155831724016264996763513652700263977174436873014198694702572147068092122455611382318707190316570624889099322933525823131517661006387013488375687860513356396109866360145940227517490461650990481196437783092921603151749500309295809691425183613226545362062046093145053860603708928138672213170524182227978640766990773856978728771249173467808885292355464129940226013631030130955515626199214112872160170672942213191367883334819385245597083116611963848611068530639485004845820427487066237093785412611403305755336380420023355881203918241540464871140464643213762684764662009846540408146152166320174392915036129907403159974030685344735422772903583124428516007377388046187940654376543263935896595969620778520330323175675148274647220379690047907162851397711079611251288780900817196641744009578698524418066643924856918955811452254527188530915768593295821145801016663326888784886032389638266892184874180566694063372107997200496073061294948186740591655704501585165389657797314782433193303927654272758250344165371256411729738296119107110775592512137152621263040365987335872018743227183263345205744360484643088085226468851624245133746322346903820903355308963257633587423350162774446404875036252079677239026894826819340482875698132177381146109792339325664923514661496681182537507205943287909629063946308120182654145294831970559654330102167618474769180045814780515217256220774409601385202205730505496090593793422342422104239290612963063493723934468668833630908589676240462877963509434863865370452773290918388308687705230628876429294752972704511106389625500925301967838067162747499564603106213893667852059431918070241153483208194423293639630601370796327871400136851950202235760329878173706828608057481109986796199703895198241875287848536556292699452542342775994635623487046474484510151448598694743201066487535207499275849765047674952024826654364766496998054825894490708859699161755702062105192174770709326310237846456903712067321338749627271502016502015679816067872771321626651605028575612155241708946303858056074362869152755846686565873493915600270568235256486741490502604888576268252436400273708621618992237538111454196717052232610182721178778026262742748326003641438096174130049420736091035620196861107803155141669681562531952228661233568739037596718571991123509772153209791290636183102391630791958466863448708481813560829795057535918764461974847650965629858593243640880275486239759309154829792498719121783789329160256934423057917261380295642998283309128017474551093093106458157467312971338158997904454668165101073938617473794351036815855112139211171771903862979239677285039195356510851664631103622850575844018756974848838282308678930084154649275402421427518753059610355198175403460822414660909374869030642023008356293665689057367563820590282840172164769451174391748689496082842009759785366147865178419969797885430748782040697839401148153198481356572615143845635610449438839421075165199927872349088993480327494639852097920469039309104718133974562592857831058147287097694929402454050151600969141446662148439475232106499515756505450011070804123426237589405009157099364996096906476609584145128903774010060888145646364965499072067277201302790142354002193664719988612954650286209329835302390745728137886366899814265722610398981808623780767078831044102731165662968330821129555075085584426136174820250077444388264684277179500681952277432659866842398558423836888511088052347382002148457388211899298461352727169994763468162602320515605529547294103579846945309002894688826716024297439158060646728829025600290165929228607409122835977212142536210016143075790258853981137117804539784184859624615709372677345339151700593694995970715252147662177980752701588605525743243757608364408808307135282289157324731160711948088354768509912814952383685988333583712892081518867333656411095578208012420046967445484645261661812413121631560236518316556028028188714452225649396686630004268482969800061895277518242709198156716057478068418916162248203566709026804153579441836121625429767446195074123503985901931245636624734618135274138124497381841096092949829935238236883628466500972304973482540510717035315356573095960543702756659489237079401045629507721937412263537146650604591918938124383021965744695300518201478591237905292008285502980306278402396517924286084494207870601708104222153399492174380103803804533393773075271109178006136957418074575880580154825422658219156383670568463193847195241203785956077170491017410405411812778963690266961858771188177331992469497166643350557982973185915224071642481896350592257759917035346018345264072740841432275636498046625004174303261168026646962256843720899802041861242200943408885271968123804448387374509880059418403429079935244204828055613578797510307759713024786704514480985186017897153403544315242950760602279323949440205966459991421152967610753052293740664449439199860291012566045202239714543546235560079572869030208362482284117372022151996982056667902551710333848019643887977942395121017049162455643089747621997908325061224941738097029732693795861952101540935680628954385104886624687849946685399404635411865397887143431715105094749022364851688125366389943845319071340335745380207294338709277052431574326555705164700244101669375196307853267541661985071263738324265908513973133535842272402273340097707856416246229117410564121725641831440156617630717558598614925301068333881679211483667583548168375819263279398207900560207564789473482282295979961071490565204292305475657627879042773041234055961087406581050458370666053272531238656645597386825325190993251792234365696404801218402861220056023933940463419595033148454587382021863009944140345289140475210168675859332048866227643356850129770773653876905792233858585035556703888265158063753308473632675103061040115417851271626138190599559328642229043556623974025019198478853046421091173537290202168342995444079333406176917497128705834807190663432782990509667484939016562719737868775221141621092684371796586047904212598719956085626648671957925880390443803118224840792261862080012498858085369839611696524818615234507591358690612395049564866205885102783648993008527295128824659650669090946822599287331662584944375416176178136002155352763517250500139444028723086390113031448980793000264386899333768702805022052985955879252447390360326240526197793305390120661765062342977430260471496928943612429747622427336970532353246923723604379706842435264497827831704658739136896234054812087962192707799803690460338399370596632595119675714597716311200660668868888416787825133452646893275476546189651410240653451765475400997370437910834412818531238731388474879181879764024414255690203838447569433714435237041486292259840326771543033333226113023150902971268057859276572537309531016806271720632434345393126332056794945120936020314612880955903916750678451481199696925861330871693555144717141290686944402456723479270176166450481534574885685679526637080518712700918011668168938332428942841692573578613393840626080466941803592546556367887241658463951593641559833234702482895748255501917934037315638507983658226243000242360014721338323000547067707762034086583649861470362313476426270390256045450981178435243352451116420749869527916031305930299846067922347822675528234888850516067561353379357198874083975442289905159192013136142709322677144934888811446070813573702183199414747846627675434783580105471910179002271736491258355697768276501850198598114923324832887644146556174888745844660169461176354755501340517985292972596640843404260930987659891600884230500350727660028710195641766481067654309307562295515164176024035470191182468199590863542983723335083098306778235768988296669570089455104504050395602749245528573289866604105902745293412666985406700863917118797391084479825561679505506522910570594504103602290315160568613532743444770408056000436811989203876231342041469899539018572205213331506361380547654435997430939454199541627112316610844305090762066396145852326356676704611705896395279134404378392329178551006480408490838121750568121981206842085542332487984269042434205544993973525199010506714635568114651455890496909888108200275621318870777847485021327373888630603667050636691194199426134242813416195993339821334230643089864165734421316619538842236259575760453111045766771888096503808674945010525679179945473017882089807340255921284084150139488864189873511340501479165486303762503632525628865453796190912847757436058851803977779201396841720836622484090462652230651036814910758845685077797422406884246093832293472940688743931266443133955820007876455370273918443563728623505976378800184413827505944404383906951728065019911185490856455997884413199978615997691242257213251564847868905860079805688304303578045515966936373040139836729329312405479314512935871546242870360689770076653035541256769230771194487394806643365761649873857566067481509536486727200154881978960364378650829894283915367629865829922127377210657911109972273318612794757160202241665300274952708972637692153456066193395745029414821364811001756376396141916781694124641105131787660506967969267042521357964118653854289735671452753661530596953851774321176364242016603920157362621851743346197788565486456294471903464460118237951141239214747590401978135035492877532765492179506089693284992624056228224233908912500431362341862695094689608535222889295375909071378003745434685146361351553691444886868869205396612434316241600009905071993795422083710124925263444994256288175713794752645046225018436059499246184133160342408012658691567206425559323165500678602744933760434227334174526924615786309738934593784219136038672511910346007309386888403967444418033206579053477157015185105583764132742021130588350823662603169515413097385974700597161705850966558444299107582599340450306089337692611222660261686401811490045281875334170169538128924848221690100711094965701108005348343395986932739272784586672814564184970322849374785100653761658001464186548425380946943789761335668638953941283298686759736315625475553063381398257300346278946305648219536508902827189530727621661840232909765602474593866378150777538394736314113860436496998144359082283406762886433309042884912940759120913450836788236120540755585850172973004923379717360467000712487981776532721245320368068693407337525945598277904358123098443383369691162183527034007505696029403568319690574854432568794642079806891247318952744292552653351797556854314852700649689701170513315302241847952981175449026441168616908813582234583822858747646298541262033807670454533618970011865777152930560578337575608463454191784008055456752747154951503939672201517500109890758805165373719077262200761203074902457125029408015384136746920935141096999870629349391824854530848392502465287355731761302488894846202336756389741244679296675562112127897429184673399929622275996332274722158955050063038500132412740078001930949743901983819237537111215247811208781234911413213840031732525003291769611543529348094519695305523266759951294774151315231090127765016061884287056983317775032925662279870478730539068010821434415638609508839873345064099271106025827100999815017637522504590056710679383504127501107729497878555132164139736089677773090941880533656332654813957985614741505494278743539876247714026886489353600501303932475967594940091408788314495888790046465844564792126554268135204615094559899719104063739072048897317757063400005845207411321798123995009293574204253175081768835912873364890472546074879473831143621355308691081817509584921826370460931392324278013142307136909840552658110640124859322564674622736919407827803055740049462607847289316120124612315304810454179747734769988864597485778266543129919832617178444809335119781287941921801415651738978203164498539911281042889031115237639272450501254466866766437964082098739415447937942389701299469052028668365911503076333698523587902017594894802427213719470187808003527523793562273761296362784705464678094839494790519220864867778855639962290824329655066260756508164176073904466577828728257842449503154666427068448891982983069125432528545302825348939309168705409541269170460105018059857713600185154632571735223961518595891636324854329302768712986437757070192818504594951063227965541743293004462982915015412166164416426582452143529289621046853328901534984491674108351513373032997264695280073834648764198363159550780126203756385114444998368214463169028852292553917098567576122585775097180405641306125123432616433715854742148903033279452669962891418316686040742536304552674346836252093667400252874435455537746178280943285854997147654651357051876176703122473396865588184514358465554957268561204738261000313413980692005352600921156155660780575637112748969085041530478810973619110970990228279691515164183238510547892824743637157386639324730803359438867996378256303059425266306947670865740005022202040206729921552353279869123647938172068010925778258617385310752637943119038074153194863211740682376342912384344349208946202011533834216105474504899881808827155717412967583879540446772790500039414385334420248390571626790652399735422862760813080410112624388287275819721964292739021983400725862995585483286976393689836812414863827413339003610742886030386949384972099797808674567050221004633262575549664902534512863322748359034667705137597925583694011146758032659818645496797368620787642548919599612198003320858127277385201388111820898543139339779703891456461867154083211269519767241114305148961659216205116139347199083849142711412445934809950159831195011353320380249068267375922481527894367599405515240495060268383921924445222390216710575696683058677189908671171424097890652828673110873487124778355682560666867414149880239704675327125502870864311925089221824777003104444225519460174851810549555877713918153738568873595175286544061497698236377718092116984575911299431549957064654883895837208490585314288208505247488360679431296569050016386911862674360341163127562955440380887726788202410220900365220863462781693310092997052729599625318551321147703621821839294551289584399533909149755668965315932584065510759898121987391660110288177531829718790015521154604363124267729673174035416731123979922592920138582756010706327364575224226090150551627059414569353505956704535879873266593774647456434509433219524130262213794103326005173171787095595457044680673963213212322022185829040753396376070285678108839184760323655198179518648626218368298141358078797863161351678408144981246974199884180915499958740878408416236413104644567250165828656438358077131264039639549952067247350103188931036999818278037218066577916811382591324880936450978022481069483077659413540127945343979206809963977532202476127472911155807290246622609940929704487713877769947048080648465672768142834031954791711581987361683304423034939853931028431149503987251677467678016932410832065913348968299006659824735978211322514920485881262015250494291110379367704408650362107471460139790617067583819510649037538966652578841365403619820136273377430319369145598361676636989658110957132297498603857822870153985199002467396820462706341255965526372554218299994186867779631711044552416473074968375944646207282889144596592146126272091867037604700572326656627887608113992583745501470296388440552013200425723542233211249697261249125376740791679247927009594970948155216635750506608103904944174069482363439049287893738859989429589668531166412145021879468830980245118634559521162510296659548971035662761131761620674766755572372210953568136373558578783168459681513136533832052685301894102111793489946314091254445288648064622167965696962397923408114584166003500688506012989418362611743284939344707776411957924520157301762637027544142084694314460025863542405644110051462911272739137773198554698223983284227561619723728229392091324940444182321597583059731548753676249804636339498962807821704698872927805390685257005391677373439693520400372444540028424550811032403463727811304354833413220734658662212709621439913199686819990525456625018303976606260670414825569413691207791942944108247872553894952122850546113639379379576934565771702836450266708345783002651461428591316751719206288005296096466859142551299207729481081736790657589153488142077459683720298838869565081188044676959194483992971234795344923144431568052749239348052155425025099503065972633248387284140537377654388977565804355894579435728945136594133145364971452714335064444217073540453549809124774194368512023074206480484163571352916412264538051175222913190528911742099847365337792991200151970893448853818983843700009909963939679427974923213051807817198610740756960705984372319848458428469862106846862146605935405386672768947031265154317159141070320665107882714393705253199895127795608482086774883900542788285079628302935199495067565998080338574902665058418573045789063669157551274737746847214330108825594109846712241441243647063279862713357605937306494399367092759469195398620576184445786467440595517568551162150717181084932903057398366567817016808010614353030802873758332530777305926698320400109490022538470634841426602411853071301857932718541918921084363063845232878234110258483107614847476346529206065633062700134955401798565298207759489988220596309634175725544062280198028590130125111283642891132670654495141602391393500259784908699911002759976310773178148690795808658696501109155458776971237226808194940377098332746414840465219072686561616603723798750259066565843726986739956588000294947214858803045177968133730872018893727602838369079723870259917465468127917818409064321675325144795847903835282810367844432799281863485840370708262751367861982031653149705499249038226868428591009231689771598034500683093087875893824104352351667775389316071551452898391901190847025150622191555202619187777776727173336376213664329177289120759715438254872784017690220445642576836523114039278458639982782906675269134963183664187562472354161393066466577972052030579272221998441702557653752453139747285565319239030711655457107390347343265289934746222157319431652679534877467129808072823605020618276534338928141737238996309284407910602447627993333940892522638648065901150865821504489093831940676584780331059444280795754178951561948734007687350396643619142113509793767335754655863591516929449698162130329014767668000013533601231993872420418105560362017432114531362900616994119476424105357575679673991399166228403196093435127293620262066487823094501601885039042934245642509179675467920595407669863536328648699433574388669817478897591742622475674398530098995947664773038145206414605977541339702273439310538166191925854600252040214307094554375782388111348280564533775426145800688262749593491666864561654202421556126163700480767799444253453825934336241075455547456563344049533553293595602477953588233920581088596207081702006676012595761031907055759541676769714383277546625416370892383412037634484917549674672833175087260736246291478186329609415381993011160545981342023325674422000370145120183302962780867480477012968515485103235858610691114902940886727136648790334658926624225039659181914372126758715153195437148730780905634181867499348314358589271905025794366313579700165245388197527546172464258257764114812112974258328167725360893798657666544535465724068143991173624278417493618911441865933509729716044288072025232534985831494756061857040389781712829531172603641248965056607192878235431067345067201143381493214653112084519405548848145139914026008470993237392065034911436383032858158089585333891490279758508997700803801177955970374633841823751314375476876388176525961252095892839979287646687258018342694346902066155767062186577769672798574791001040077516233969816577616219723800850907164593063292743229660826828190521510146389690545250007758570579039059881841074653995876357515153648641932325690358653854794663648278403929876870444355782684841427237127486094924552854343647203845975218949564980062732143286876373888799573366899262136261160442303314949057001569497641745454856960054867150491161087064330676624528478611609172230651668137294742775443665019936842141781573987275323738146912098045408434343879885386468838141088628187428305879396136426476453493538767107114516952472979351130984772938775517687815771275307825623058275968309676511367200913518071526069359150252578044969064228140338530298172647760624346109913543405451842357414184323992126283311205732037863532833494385641353987814922919563666056787542897361901819026352702706575832344814731536463457902168107535758533218087212497931376527362399111544848393502279277206563606280003061391995330877260438651992845130387442170301702195238931629632108249367014490499552560563350606375342615398172307131841502719090012601419837448187148248849170349994881880051745133521923014021188380271382817259751276006029769754226329957697037137058135561328060647994639325843453701403858071796517055476056342067523074680719092244158483864246584691127131244877028288564558194006929125582048512917437598581669002601324637111791611403992009859132273898904325147811921541530381986900495551880125782238240438927906954421443196604475358724455756477682953309204593731807995383644425720877136271777973066882843664022220396790030660074696093295388297738743923309826069766079432286191523285365609803615805778446661716246958275892741874788064120588901158265531837771691292624500785068456154131645246086958511878254927368690638017319493850249227165283269257688676195897270343723756866296145698991256244497172213152441003749517409203389762100601212587265317013222327079483450359147493231877400155335758700042891143425541925111679711223168011934927141854961756869553051903607530178335933942172617700222098038921788982583589690949298298384685898555650402057333929378007463352464338582459926245608496231659617845408824174956946972206893764011774850965368437325685483353278272936643702402596767412645916714896457037760259909463934872785617840440739889548669753667885509999356880967402858629125537756132878416542772443999220983421130334586606137175600400746103620105737239106403753590964918484047697492085317326935982475996228693217531992285990489803492335039914920671883401943780035548783187143514078950846823329271649102598046216560775541398589022912344917594358299236778498837903488276109962287875680731342745781095231256989880128360937444770306617317374442621589753605625446102964260297377983468318464339310640629353593259272460746189467105263291547231363370406606285929135149508904141373533004845518478484605016622702963403382927241715532192758872016483675263250689867460152006395004473106320308831745971802160072338221951265678732056556885422768002655949209019091127497370423458224653121217613431942919966243419105599506031808402911766605655678536536236521850313754905043318361436909162120321498456100235507257442878186679943080225888222402642578620506260916497991437104470996637444855113500448675631190399378386072044475282356922146941990613217363015215803846045985025118286193778652290262393546187015874056724387615356467473907744619972198157725417025947856088763314430398777237973963084079856091749929489463472175667896545162402920368270802602799639354701172827306140865736310875555982044627443882232095908233434718993575712730440148830814259890883187988159852118534259630305093756574286917294935754311241841013542478376374091784827388907989346794523689975008154329179318212663879799339959118465707659694316640868324625578500608122038128084492738255186309955402999598430137383220338628487431343157453757738080847909091888390648569159452308922358308741397908508226610366197073871039533639836253469810909131821926055894611880077751589020747624416957275065592591406807861102560976468996358934579854164157803052045343696191606451448652464508185366535141354523336668413372465133998736287879535579116844335128902449410059967999054531310566804082520177387351135494187347713854141370785033823079145307824288140436092127142025736268039989539714297272605069928700829251285246289039128909561617082176064922237306862662357417266271156128136900745582321851573650790555126493159624798194030076418597598127413940949620043036124986741079342762403753449261049473298787012349565578718808419226949345479384150393625474711703471620977990396028153738389295770741167453195587161962898743774760437451090537042056309074746262426565244659224143470490544139490707553910733416527258225976083752997920766547528773577472574934553748319165339902615622827984902541162571956683631223428932491965831629065898561880388053817892657482128977886859253931493739702900027485983804382784659002557178102241609270420614013668992018830527181458413788910415588408293760869222283999889205758310848949071747696433044028008114859247782667316957954897944967526210240789800621845139127395887405606005214617329810479003246300025328953224136087666091232521377535273502166442689108180570864463807262190422441611548892183456304726751153458389594263081224290388224152777936861016999949944404434737142606664799711484470350229142546526421151743061996562340144373942442254280106268131749317926793014555151612755875825352216734599045184362855326254380423403339733893198434544119465316015997444926990639746571070046889137045252180725932363052525838686675673487860745994614080023117189108585940332862112845476636474992006245084640560394816408753719297327529288891563783415074052949068179338861927925827380703440870950127422150190123949251061222702935835050778464146561377145519478961560967886433322430503323084916535786780381214044224863347845965298710601389511404424151083111251151216685470883690471282293591893389970976788321850017134361569849386340937371556630382880313942378567163321810901623802292239589352456161271584718769095901501045897720092614664074163361478524999594379229624240446036198987101752938127006480025776917727268918342866007617918279383132606421735850729655026351847597292479812449889066534587048760759962833106304192768205818371887128871513048648719294856709662717422377150348514202513711981815628837685940339367858068284901758515935168903028613560425187153621695856154896977464732318046984844283474721837245228591996400264785089002663986764466565396573579187451506991879184783315245546326295970432354183618381249576384358350333237798673592559472285814734986122878377565595230960722426110915158715287531700345153234735358615833595638615889547389821171690656442665731871652557139857715140680898191417650629050263961531032179437354483291482780037870941130246358635474391603864443307400094513363175222555032034488776021364791046168129070828166302435473436907062007921565548711486423680697153225642486225793318354048279853776904157823845818923840890665891759011743796145018371317730164736421953433617461852648239951115649811825683238710035112916788839804681218885632444216838515971340054165425896634754992440428057609584228815483841464179969814812742136420935597302491260394136721621525683340113720256823914604947719867928447392033997894913086197254990620488239949059644502983065245994230969300255382472432743106531543583665202025159319368531530048246638463881942130108610091588895644272301184026411578933573364506429641588145012930137777929023097715062790266453969174682636355746563001656317103259800192044335624241219998578405255532370742332465694625577983345822249737778141910483080935768652084563647197563321925617930309141900531760515220904670936491575137372048023022588963543851567840875340773556214683632682534038513822130080521618837299788683071884373696659376370181302252471550740662677096055968194336518086015817556234520233277823963922155812464422017480247746455618056561716210868968684091670958856016984060685932853486296860494024165393012515321063782007451729805287783844798461238764006381367262609062125531807540224804428791320195159271668459555478004207303328610035128198308927400325115906593959599695321766144347844000194084956858626547720497369694406700237974625206141281816312426776377449033626871582728423755305902906892550369847961060380590164112204580983552088985103039799388360289645496391810680620054819148802868085703263364111661477429605430529465487233785157070249691866576131504031996383575996709343494220952788341760425909038169658008299143612976077161021501042997581641981027688348449843691226500525901425858032693174902078431903456293358724929454131426147748521317699596289848667143371867749834043925580857146563912061853356969056694597878595662555239411505347938761645217324658646165786170603246931068368022713702189580191337698527285508057858971451544710628118114624744094342940314698292350813602063587661826230975090773930335173950875808677165572302581100966773021750809659959705176928676081441506630955035965423732271057004329157298656921975646232672814487662152378781432200761462772222697769003012762492694012720860475065452406822312504875320395574169121196887267252556387443835343355729424934864121838850655298906897786623855338694450977339961844549488928577914942538354740252585609290326656321782273477477778532863769564180700584189266627311380122186759569684947911302965493441051246566580117866989379428061562482239204002025668469242380527832634927454606037961991777860122840386462851356872994187244140347390225595106112490564624494494162413199717010600281219773519890312928756625848673998564855390036237626896543275168527261180536511367514716004175720418931112978081897425435858371178532212453442775573336097539139235006094293369771791960271584504758152309443819100358437220440075702029778341960000277634533719368536843004103189930408620010374335389293998443182031650348614673625526831124857670441144147356562638436322384248334270951663624846949230470866587317705726903045483689593846970142726306678651777961342420554657818983450661022334031914089634390127212923753570210343912228222480931514738900369534322359488081177571313043117144178536545667242895407311300995609006059869670941694294007238285423984636728297676448915187334613424063142235578063245479239002156706315646855324690731767929556792070003616638610466966160137876111195326079945748844519846278678166374783413288621684547724382140374519908978178249468704662212279920598723250555891139692195336431383237283453888082762702855290481959091443426566645285003157940903336026089814194087995570275549316398130235403329148123648833968502201628603943438409440899069449007114549399715459029708708925466751712052113691265495746719472628853988494627228677316700015475832331021329487499162052950525320871932033254192411535612040583255174051811678714936320546024176843206495256198320125528708157612715135221797891827219630475311199489645035493266022068125605413229080812657743524461444535292476278825414882051901162785797397082134214062593963367808222914080039242551241695721877780111037854767593810493297153699672243982527103989254088803795250941548073489448934050307594316022318770328070297948201528385782546498067614477837899204765859904058413236038319642542484902169970082998259997768595596592007463085550577188824535726232444048561419627265209006624223947917122833547833017252511514571493441348602814259342428759604491241932631265816742947354801233228836138973980170792287441061791728665375720044082344955520716512992094526628847858348737662392952044606999244985716360313794695466328509302990815954579127203649594132849546322362876300743665419613684429005512143108931047988520322023211820456371894533079237638239325502356206550699674140855774356209789525210497125651662412447411989646782910829559481319186886915703078205446917538736028220240083857431992210005639569807118846735559104372680404112088322433500645116159795665989590332165250495621983646577997653463589015532821492865582729922585215793634618308886083730904838016287086336574663707818250216734720248386587797396345627500074934857726639855827803082501647738983812222282803038441053341134284286666121422144798271637257633396769597513140342128873211163409261504327501574293437970748234432318519886173129368420559460934992332193912423792160103783781116210216156471845831424500711715901152948023786784640459380135000794055232227957751353863336968669624706295019661776871804188163349964582688581540693422923618832499378169223152873702364978374131510402958261085538423762162645173335258951368879996233486613612906665403212088176304716383579536228756504109792862806989193582266076216468983685266558705849684854588966895047464546305842671482680682484884408833384138834223800537348679680766268763325392249987111585746665812382089892248675869259170965715472377280858673106155540355728916576811779521201279193632675375453932738201806032171217856672383443928939706124105148082834631688669026668483862208056996266903227637935021637696020045684509659500642699832023622634380541127569432778208387038829167999073823312160673997650420546388838624210830357868979359769808488222660257011128724704833111379345833436356359389332625959927630942519075666423387229425648185277289218896301714620076203222438270152770707936091114920221993512729001596074076520715846038066569883945450546483166887550777343413945343601007402782387106542650987566092120686217451244720788859949919169379011783776619666063646558882890451006115942597309162969852056456226300917293467545786907414209489642678751524417063889990416831251743085542588855274526785833310278538150661286952607550313171303660306675947807912500284986141327267531818179172162605754138040156412117039944263363299042383555477949268734951177907488184055680199221343838306647856137007696184838374830333127808174565925299849356637101429967876279292022094197242103675780670488640979879827162588782687453303669576723403797457474801356133714528459817961072516855184630465518497107891860635258307785465219037756212450115215891929451448021615096300369196621417816396178687484559205052917506589648213895428017239117778353432109024555293030740174991887512778203981560168342328416809321317258550122279446072996073271692790805253734156867820631741852263426050090127150027685518893160188118357102805775932243056907797787234108416382802896593823335140881347226854878302497421619393648539676294203090882086010145106364990910897068267700349757976666815283717583730856074052871302820796472858416147230472789446052358352420956309056798465606023572196227416562538166883580320904594481408543203037490734122585402613363881681792798590404829568352852745309354948900515407652230992353991210749672097173151984812136028470584740816456792557663705031936738246823883061958560276020133096406845598775271379939582656067868124359211744281690037123416019699285120765163375072193837212956486373040481408868276522571784233764901658822887598927837813226067041507370489843741235042602572776958476952608678274289942202024940188361118504865945115145698687546699682809633710994233300836555855290800123769945038699529983796162323341237024085699065433287621914213439068404336839287866288940479845987529902057860187982009164695457628367799770805355337483065836526664364510375511047334869459087392797918459316435563554766531899207125813393884537980276835456829153738241390974159914327888160086812039301491627558383679066008014961810495590831935955802496117699093887103090089995033354406251068232539650660325135361831715905071394948999875751717391840183525929446894245334136612590008991831306828389763318385668366631452363241161613459111003878410340863779388322232699152855573298979237641722990474940078688301934827509903616686880150267916243084167296475366379346229256756262793323320052108487401204921377913334011145890884626619636532235137087530459939227228502810944173196004404767731687786496639079158649376705770906433131745411266125201193293862763226382798104089166046534002380235080274680898300547851591414869379910095583400168919902447004717705854753057185397747986077140227607831016823579800436049871235218415781559423234717413967763289117898445332997968226896142403261321938853426803451333711963669985796011754171194387886469424904902894068136889730547937126931003290323603566991391666373342646904057082698744896967515048672180628785208964865176797715126470205142166792032932888735456477402279295017576168595165213510452501266179549619488730368652133848259255086566470063333550393907778749635973219800712316513923045637646619271868156989650221009429373775575093512095418359519729332544029453834105778937078359764149138259768088136218079877113800261611191255842265474923447309176039343100989869297795448745026955078178473361310515441941345824728656018936831203480480717601939996434744207325119807833908190951993706699378485578644858816831389821810721626658621150067738657585937452108974371338779807274792875883213449029316901289949519978611267229992569473502783210235890459510052530034686264789111734721935978846361253245981985180648972321195157164588768205327424717606814430788676940643947727382765607087915281932019157822633460272838066832449976398030112333344809268016093236673440344982486493573539275064637400363781329481607325427913667090741812541976239568311113801212774501493099691624454370367666078933715971470911388129060420637102255316029913321985377243325975300893426254223532549038205187247974819099003387089951941103122265971221215428040996659334460632755266243674125681869029592313527861409479475865583421982740765775186504604628913048005599329770149368725114926151306776749876478329130311185051593671586522802254881698240440543178227724763082938830588336471570381724851885336155558333742673574559498875499954138865060887151536425327258743687039190127965352698663556282032167227131110716061761151526155808934444821358169285584090187474205435176876204984860360982682360035227181719109236813593614272322882920446638994782285242023189766851929386656713997679965696966876665606061107931770091445071036852662524919759415968469576132373008989282258143974597894355325243491428360087813803258308176554706011475043608486035216194244828130314908482084232974590982653855763579670574159376142299226642508274463316538088086279948703157407734913160042325767275877823608456834501875959690906965217299602090708682490762567550298876612729825578223621835199218692735958424426192097503202719969590546313673020450246197776672304125187389695860336823419657013006197198196077712409261588019316517067363074500724846209488705919469509011684908433523831099282529010529924335745270927663054367832426118918798486579956879008649830668994948614078937287383816539299161209630923135064857083951936988198607160654640974180673581212058768224129822721747489982610020442911082018938766492740467443501149108437000558589790491361253875206914020129770484119998278710125938986121181628675633945964594905248937649872534753015428847723283757626605386286563796437090049428851132440858272604565396240048416995685818024514342194522866284796652955529561104332921750552652716704230724325093907961838533224664445659819084524029522918826661027262851097945701297833500181651873952680516114233442412203416356466715205020771425230396679274931457111617443603091115681691561413266662449702925874731328073690858283513214903804894599482325600594961066377560457978949618031825504188834329456106494030514139215591054974295329330369779155728485084093255769581779402925314357686315258490989518818068345917939350958538971205089024206581270860313262873559752582090344794627105466218023763908655896861843789098062037160139080098842518985071921623359146799963358953479730332229287379211819313270212653665106186325924740999548402136123542051924840126698691787053058725297528296868607292080840613710559340475627104155469913519399660435145689684495379319027120442555477858582227515901348379829510338679263108676211356665030128945222269417072482251728392105174505331542561619593781089873361711804813486575943988266163310120820502401040667414977786906125606156661355204120967619443270323536353606360666548814224936062715894621203971259383519874828163510036390225600029373462940103547351825047332004433885898300065426044657823165566537537133795545092494942164942409997054355565017124214899372779576185051886821273336887148680874816027779239695934841349299805155892427409284168147777654608896520293957433195591601811763365461282777845779158962938596030334961973233484672339533069070221728658172974488719527110864191951733791065600113925063352785345497642178466559841186599713556694874158488316730826894857715714735542903907841624202225066672846773487278465163241772325368755099610992373408361657018833248515632169203680619003681757181041279767895962136825145484769088807968652642713413790310129246622523833928459192908773534522551735680011890559842997519286452437956655086397348013201087557304338278527179400233177867298894117396423227726421206038199527049867568217588499557076397088519006987532405232618783154945375542064431138911557413562819528715558633404089345232734202689525883964501444090473346035662634537207241812313169299734311813999942892700580591367594467810115966609426745794938342173177025803390695492984521407166682261780335797468065472020720915838563344144991343980417183486910835047237931487542538508811814837609182902502658671530894050823598972512551119700517462741860339988721555725118423494247841525230792035245132483787145006131231119699299318885856523667651023941254598204541837891319995058935395175398508966819641929333289209249066853389229790031290555892644266484071562269383521014616245626454003885928412776593538650149777695643585311297091162130438900131017708408760805598628764418263824667213140808430104086084640062106654946372278977818209272154429018237115060618510231419282828877193441036943301204291221068437733894414127753914693738757295494253301141240806962533834994271445383068362210329034853086048351275584672589393325658609679909637584584459155815425823949361027738287822123867325605697751327741194579949132319009179891573705161552499500017234421031664259570858663570839964478549070001230730258386207111295404199775990331561533280475618464563580316180598443401613030749515431233543211321914258247188196734510796881706588026692306700424875149044565320294041504312449605107473133499683117981929955337608277885496910973367064981579083890608748818663607282377446133842520433792886416072913978670489103923612176174575004095750911160630170671776107814550160736642118446814445944578792399961707461860651176581034544670968581488862560030422197703196673983441707790166336397116402514573420084126190710510199795207983008607899567592528308066243823279375559340735442094148728418819932708502929777428196413324720975823774310006224468734426800263720537544003242605204465409300971369927661551828458976051228347991026630552265895724906977430000346818053246790682405467735045204728690501574156231860673888319162395437557364607589880751540402687990452515408795159395256160411660999280383509328859367001923732687894433424539158375257300608216540312024678747017314604620810230544264343945761234757434078689395229322137839702821010534772362021995979531815517029336445338334818962309453475091422944527631080777743338849766904704543085403195726052876356591574238092000350321370630118446058175390753968901229108987508834047102918562067109706915602126704822018986393760871057219340223998657358411169530449604871612933337168695598179318897205142542942484740619161368311416767587191943279594775672942090837920069363240575056529244739678852141839557933596442621500982137172184937520655580459324374114237875548036558827590249749988291332647282873415686516097242532561654304253811133203599064758887620029035243225564231758761707083220439878925536491762850452475858710032972901589651482596236017382067253945490787787961195158289779808078232821733418076930613709512947319369862518379027138273283422118305056567690006419381207848683406921335276488813660487812043189146453745032193141757086222173707706767064417857549485587007563398212969566004836251339042079202400608598384109111446933765440763626003241474892650663467052838172610915701920757173737866804037323141106073933103601414915669775657645464070220665266477353349720769488867028609914744758112905396322160228934891849714469503357443520213538902483778945583133892989759949862236574867975697044398225364558343841332251683061789290504281691005623824150945365890073040191783948965993643331420977424186833615453459520123517642345746063126601331303350453405634322009432486474875520559883358786349316529928743854289858620249024367663954287307811057070609971103708711676141092949802151967825334404442000896187315803741789931882789311841477364455764046785108282670319680391273297101783510567249246173898722744665308524300713336599585796459934372175561456903542969307800317827346436199315409597297986175487200690624975695955805566710636431168043976765062478692303224217211078723115339055195516659738142057926347905808314579554655124505108345370688440523184722841813995275578963657087479384122952303786932146255399273932770210156765828133246368176821865815835372786822914623279854238703364067363542738088391131000935021566306412648487805172597116635469284900970821234794755204086399703844462954970540689532645929382373387468004932234903172641810805304893542702382635092600712452793635127690570188488083642505143928140470087961717664534804441301762994643674347106207537282846518930757485521967653166674720760805124815758673902106903717969869287906982026766965625911101882269123285680977594279839291143221675621885193610240386776113114737010104499563965550838288275121261644875708610254442249979138336663392675694761732432973116025382784508691344360441475462254519565742534211406794629661769196345670080964862971655759995762612421943142564729255062054094899200869440859946202436501463591539334128907828486252212865609489881203076776082793510014105545322685110894577067898921378030469648684376625996792203641754238349225804963086174075478785686334741876955476762402708625569360586134925300646620213964618808483360665508989272301509878779625315250134650239440942194555043564759331285564820303090665445260164838606926467322510526633267549107029865089146899711386977107509575629509277253500403295730413075786750394431002366429876188274672902462887802350806740821022305145014166390901673974529850740755222114050757255793011911020605297944506407151406753716536761820099075015905197104049104170174282092404224269821626303109097509398246315600882248961466003904404838706498856824555204600456535748919517651802677343658588065173135680766660393133283622876150359265228206304545372870230652550943686154379567120588106907624685893726376418734616248241742804640767918568012557069270236544276966863835176560009502043933006456976504441350193958646061069844309372649520307083144458600920838328387472234075316944111253706519227442493534856570337094606733510445361836408687924616481961279054525916331337654084622354782265682608159864714751348703172689805591278677236077069217153783952343463381096232753562044777586578140499440112795139293159150591558630708170332540185975476635206961960447284083896097587546865086858560190021732627745300725781183059106338030589085638071458075688563385907548452369107833030503196855848342200554992063548503757834735160056153392796867783600787055190127717597320633030654180222779012409965257363985992892055971800872809334244788253289286328905722783687316136853690393558943956917020709246169202527542865090662095044955803070180698194991093320109151954812407230362568798216744961016385710615946598193220617733085626748143136849162628203718473023362249936333177040289921217240528843672178502084909011938826502450073227678922823821698719594336159103153018069287398122791246447093463260602188684960649427902517671569438694785919213667899298683075285166486598760550064784492554615730458391140219260490050054898496125788890498722487772133831678700544892442555033104947733255180685785741592163774876224382490949070542623955473079299612312687998700852725807290357123902771003310763353975618685033216240235189103554151908160187572475498908532420021680337857817909389630641540378706146772692846763916625486304324891802391481900620226589518103044749889724167780663824625500398635464497766105553805304404323419967780601181168185644480911864936253870778598409322642962801462581865604997325520100223455419769689589566988485870645541148996763325735518182890688767066494273402507537005917790227373931115100583726321823846775329355919673399985337751054227323781338860468485310480974769898265294655577502908341697314548604401816656760463106467182205780619440596326038437791065769003968658987272092832313470850576394113687548111472516321803913413291956286790299355544054440947394873976647781979566577462144381584879239039588283529814339328385457575943741952124972402156459084537889211991520363700359015563502644851360959189651390185471495588440388764015983668579813258159357679251426376276407589838277743755939435940549635658402680728730849533517025468178462498718674481171260647640637778643617078823729272391317752320208894608211942244783470340717495008533479379321855352232360825947999620791585726227246280177705052171813465511693003877682577928182251293440145935947176670209469798345434757063637079851384771574436160057851207096395556982822040543322947286657236444149097836265322378439905287923224881618984958430430450661216276506690454672002078906991550245133365059185039774704580381540755574850563984963253806041070845700180430429308119247193492153590082018953919928832201707903966488391610692385672984989377125045826471479971806684850097590803961331330646476559511029326902718861217194766182905393851336819718007578339266077465031053858072113938780700314829299566359077972220355062173063458224325636339964898375280955533318815325571280517223043356725440915350685900426603816550289472906244134920435154247120939770071017214642366945752655660403812784187392745727439809650473544198969961367416292149804147108676743184355321477263426383448020418791640969347964492720863425189609921069974988563986021138136596910098988729610385042586467841329189073768135010679764991890789340943347949480777148592051767965609424080136794366118248371803205733397447580179834335724926302556477441232136506836567904194628522510148836493670227132262588743155858194164130569586273850263169584871148574192170226829352241050895524160199021265082596261687953468960463692785228599571815623786150518676205941464596966913309152521488405214602820079185873321550218758694745599545272013936521352419442911205162542234844423314015364522921686596406726608796118300650532580620600039754652789632887564889616133045570700023098641371936097682933949716956588876572659945776496525202709264545531518933074250654447891474633557589769378340981763359027482769390720489142328755204406305768547280606847584921747906148431187823099216908575925484057746867736719239234767893866376652740915741223203081749848866296415263876623723506453328870090570962985583493221963530635194832977789649712576551414563272831208099647830998293181310613137061228924349767126912666674292334335697623127615769320625323480243713750225521355463468329830286545742085546593521371443749582723354852836452289980935454886755631417607658282370960892663545838785676586821169031271838951980295221578316586773814735377079986664521088432560917068411169829182541254385388897123167583343667835816641693737220217972195254627257610747009454377468149310183493632712191627722101852296885691701121364948353470937131486830572457714295592412900728121100104538365054612563329658699522018776052153953990101604427224027575322359577531294176878630515625371721289115661107788218787331942102206102412552638213653088453735337516240573583257621904876603906331666673197410737656931177201690737592284441770589841666467509374898793888914988831816671259886507227373644207490739240592395045194335140128673752950069455439361697806664418255948446182298946596777849029126549831906840253349371866090662691210014155925822241308485551692696908088599039250342000776625378698855518694060731539568333582683598194236235302340458947457756637376274356045386426670733677458232799524633628155764481522636065911132932183373114764749697186633970988295197713564437748073527484760763994170429284341901644989342207816684741154068845793874947143855971528315712931320744584276600383572492901930289886140639581815788777227743351274200860937683037376594906856568267918426597420799238349403829679182837994261916038328371568884848770131518164011794977126406139413051325062381484507219260477941543018657435328428885915412461131835131411122817648216714187529686542295001155336309826054324063186257186888979696316877254600907803704140774587272307790427904946781239670208922303552654507123786368703458859528378023272812995793992960017910601906276743159883852703644671956663725466989383003400609779613630652407116740555724338179567007115071722985286025651645494559766325667337958027782359671359206351303071166349224618429552079223472992510580998675834854982862214173808738818156377797614169031830137716176103048806242613030393879664300127955944649608497682524348634873010723078611002101736766831766429954666887033545398432442320825149693657979228965288412893138860077153700488904634678628180219846193225733178079110583464667672923975238324136490981808621498919680228179318642166360833014857387789802723254899168350572662566138577993420010398698834695075554149401924423039828092045442590962538462081197459357379726223965017809799862531562134024029532632422266324331784661377439039492292347465346951247662574517740276819803271129021830829827495883115997255137011162576580909297346059667344656662986731966197018633934721538530350539958732074118797669863837235408296370980634869757946014451069158196392600977927042328134974949587470991423658319053565307087511307557787300223536556978453882087421784452562864329952285168818823036178827176874793082434818528572515985022743164294440713389053801241716868760154506325192660416495247310995390393885812621275346386865822325850905919509233664434281296407109794001634089474104006243258064727327451362789418074994598052474797989334041701140798914285463512300752800155607753433666705603701618483564940940069873775284024950029335185343730113498901402651339862644956944684095033234196403259905089113609581712266070553661311944375662262554482366815924317597405595013986547430121065563786469514207770584500135909405433117202750182591150726984819978498293235402430706495845443314369418881473703534572574992739069902625997269888170375422803396970882788910508822395433105166211803338040528446586456272687740712771205752647812666054758608114170220737950859156630821068232283400693142593526991879171345453822668367385135159553743226441294579364954741846144603031370886701510091795412711931775688921800344432518087234082311294212673590610519621703787105771727540874576896793933595371079470774016182374496006502179032331776261865499895966313306102972573494370029446004474731650837625135906246335768791356955743061720843452439084248577246208894840303832532731438023677125171484449350473764370545624992826705321844217789620581528371069363450082645773078963204718737976987792838623068311728792219383541923921183182823914198286971062647028775464776083496070987421229197552371388996588855552576465400243636478606489762965203405629618222687992399943731603158409289635220109512353069897203511876079368377873451249713176704659076484879483702682603812470346595397023698992685562529290148376412101357195554696338679479570179677856563921015039566065531668388639419924340517461767957510913061696978819860091357418282482342865461826003777236031428186575612118657419919694550338399166084660670874022145634579614079558896968753408569332457572402824392300785409098534993447130466350635861067975021264230546708790207375326200412844758942061620821939541695475180018778123142287667852471001398134806633580564257745903733468328261848401900826061572874602546973015027234982454434813954519930312565843249523940220864973762482402708126266496873510325897823338789657854224249517670618747052941956845785535803914895086751417874770059583455287404218828012642338343026925381041989978993624596710418598687885870716466332757550650010280595434895490933498292041920584882932279102220881004182420793702958928720526948424026341224265098925698942868799475064543320597955379923242110891938546725774683931812906002650852576903726224289772578021618737915304323862217434114831263376609059232888201954280105732311562298235591920733660959577706706348377154611737465256933575651317584052720595733744619709666117660179706913484271989988424566786792167723511448488787545183025263419416224509741335710610678202245860440763646186123249894241111349800411155795464609571319922417395079947445610299490264883053340999797231131822996207331768576594945100681183597598256146536531145980819339201312663396564435652467233036987475482373005505661276669463493954774791487055399382953356183014135636358332081397454538088900873142955152904124500315747273718745355143151813938660455479880786168815929853474860284279311501126892281077400582559371165064882008331260718581334125046289361153587083951395626446947738841476795541102420238385910511348834478911560344571995800433888913038833977217426111907744371949008621510628402816957782461945467732172748964370440838357265316981139172554605090234838343066550840097430637277808283086541655577756513580910113240885060539368707628396223293611195781376398779059467873996393031048828766452770834895775625931495798398103300333826406471815862225973049685239026586690609556954352299761087310352426527795478698611540773131855692162129848228125679396482184069802366612289197410486304193450589308666599694065431541543611345007956613516163051698825627705005320163581901558280655334432669255478617429180642245881023302158610232579495701921622845917941484326401337266283489648620302196376970145453960642789187954740606660464465757553919056240324520699610486188270562556233756403124016562787307655309861442301338526331201962863709287014845545713311565813509188802492764337670923428095658652172016224210240611961782068670044387522205394427232196543334088685900574714725409602124887980467476970890847046811880368313702217105602822711196060125840556461539009038129799219783366567817021545243710140137466909345246326831516007780583517666627943901131021383949394273161694794869647039020658687591299570430072150570888340241106324488359398897413330122805259373363628824099264392481415696805698194729803413239173775896302458022298908002203741704260815427442856539480899496630495130779609590731864530362275221702735701052673378946647640281437216902480737306745814316463250779087071670413711533880122217496492586358182345120895292400236981306395439250311648145854475715797529206653463641881522419237139748643679563308289807238004567169091198553245643278155042906211985080819275299144151177687032085355970456455933351549629281371297967016120420390730317691821947367666341161287764109478930517893711625327075912202037550073850997539018704010356049700023788254159241450983123157483302150784811030936567014717538442636268929929622174786389399343860329296522535156506699331014926200793479655427121544971808908881973162170497824110403283841285766079672726642022456935546786732753960133240698008015996169338762437567132805494911375433263491973673734564328910463554674074009104426952506221290237221217924509421792153668656132721654545957886417204305353805446074528857470821103695770288666545256251224142857839095387301907943508223234212266315247333961959899505999595566980600769916652974923850574100335526732656504772754983834559999083103322862203918030157809139291672439746071224871637322247894986610553896462346336881089531888566246499085876144152275063432286158341757045277176745242658504759267015087644219009634923319705697205799041356370898038802933545457663015600385212833894695763162175783342282703196032817894030802459649438617717791150774996362470373095355095034474843861536607702542389041352258852974829415140829217367410353278105022665842650966550333514553506436889355273032801613005264468037198615040500655659003372344273112318110040843152761571019584054422592984450869009793864590247098333511653612532881471259508884646199906191116507413192303245998272185130706563647942193159973657573958199986262595647341331527930365612995401749984251587887546902457204509603251380791876233842525319322933252639694903954226260993645423270577820938603179072042525286542426621228051721267090998545024212396805695877121163744171166982426208261248976460505616619068613983827709770938852348741808820366968013199967474545768800334896863746792668720885039713352382677715901736768015854764569177347257885882393038742457126727764904480590795655312388080512881519734139184267039711773969210945575271205065973715741938606567142727601356932508516632053614732177881073305529054114227402695186608960862074587148564436178196897398737598873583216492027480038475855685017274226328154870651719136649302678652390027988727828394926177081891466211379861610241625903145091304851516617706483832988396512381545680617521757075903479210160624684858696254763877298126855097480587047181281207865904455658892816849138137658546714898688349695826065625625726577009450289842235311551282734257313300280295859969087303968837892742800593210135705314559226208079389772110396688709513020574449785259401372506107452023730616785414844648943223320887143414463051286209997791776457664469959470152019410383988091099565147639243109745611278377104175024363334149467720403782261747968852494798658882082663508121775057938638256266556824759179714354842556937025902557151970213725498673285494370748141821960245733528557182549643407026920833254980526599627864786869207539093459008717371971522573549532605874049017897399535124562496673045999420666524180335738073436801519387196642759808149974687277153143095290054408134020772746731345079115621812381959987713931068409858273598273919075640725404225738755107729039156811139674772180873279094519874421561381971157493176056343047755619319645667927374437184361714674624728277421657448185177641369591948710917202608750966775420820903098599284883654017407278306292514539324165098870758815772066954534621755956240369137134649403678104139601341188134023645719676268671660270221139773967841662447335250566246399848463057333968198849369994934966714445073579319389562013868578700346500341398280601436498177307754463739300661431439359452318375264414039601742848364536174196366955069951883348029482384713095221605005962811762989684040275338262745361852919241250574543269894754847045290488099302165623367719608550092990136630615521687585770459474855901699276842894783703200587505722460924906430247403814429723908507312837863094040473579280818888073591575355239840500637227528585751537086116833096379372673418327853689115261876185799858537890798227127046314692151501198274344874585618278769583457455683689012351307780153910204253953605723380198140032108562180559178737903067988255551719737964824618269311669863846663839865331210809304193117169848105664690393730539633757702089506140784145272088632106185053289389666407241805481232556781378672271312423648077530269865627619537902955481484555954792288014324137165271240964996337757698923904351773461477121352185626940569724509365399631370893627969767719937172867113212260773223709595256131326008661234574911926909660320724147566186160539085801292139729017494506209073911959060567776959457934390560243896072913429112909733476160598830494249458580340901460918079764648601230357132187390929152314989671744045446886978885547632518335379511084014000258218144279889418381859081524873751699545288981094808578879072679981557454262651464379314393087791876369932163854432905595208151838034536718197783912407010542311947253876769584089444776737875631799608160155111827255756531580424670978988310445714009130927600859723870762546052908096364746783560000656495904292029972423399771736609681531643890854485726047576835395181619468885274918977497807535580143016160899802642578279012703842008246951205779323115390560670569148431357979239149556129420492294221902812355145569432493957216054760479133478616722948267575108518200440755460702248287105678188842087529585075677112034660820121425528051212482593829092771439873489587797598751125409863633868399738302693018317954554080951614141285434346482568582464428419569841835545346759682828708966205794517866295741401829329714540570681265512316228633085147365658739598889933602831950436362422132601713075947970588270665204559832914960020425978938450996509160119088663910219488759555077549882982253493268215793917398872208306622857513678119372523364976202203872053357220002383948063621167093755201113505542854347842044766405189529591760500987727428020696901804275193126979754305573851768292939809719017478904209417992810913127733815624943486395697932007869920422615719781079430479899109083633297810043250778008828158365297752150372146427178370300900402804989410100873533022704582969499239151373210937088061546230005878747260160847675527405132131859313566602213310814693175891440790691892802229637583518799345431677165252558856381476455093813854224099993784536088364297636383617878044225214598097407391472819483132345919356824680738544800793577952346413162342940094517961294524376592426590550723132077938025540900541202053440554759084769019321385762015821381436048833277737149421113626777396292128881218028700740398398497700688852574764241236316019165246773434223633259376850195449164203715178247318014478183796131022940105122637959405441308280340808075761993720984558003539396757831812810711837064812183144458927139591036715224287006803707082256680193259351012676286901099947052269486909199052328174122055259556258041513672801243140552422245873438106078597438583616110322285378743208366661073036966213160611118232317469008816238671733980798170157981633644061874739226660023163653763887249367545127795852937935045702214315206735193692391092319515857764027685292248571774396054794397703779135514422563665109015531918003798884466858058893888064307138827461323754929810620928864156547543077191068804587545032114093838012563908273763659371182090079716435357055828133566477284572169402355472354094147571235994248036074107966785931223135420606308063083663364233353998523599244593766651692316411938730341469348321931194292310888541212048655977759824612604311731140257197201641690501875528489506031860853210479343644442676116982585561125131124685780314594227197236560113294588471251164778103175840111386647425313532486789791957958244049544250446536260950934077025406573160845823377628658491482332813987634174831546070108811137737019508219697687483659702938163679926015106337390599485972831709992818081759752217797787451652743904794523173095598587226646417454853720358473843424589711005400933021423604110772681300325533823874737429702201981013827560525944166050379584889145534309042359108874409628160325233184510600922570493794719678437797311451550844847124544982025705266217557548564354628529978957244635915872554193484154958768268886544168712287126556935613385932772152341282091717978624412872614802240401529285681312996397776056322835445754277737894125324613935858252712833574876888172528913945369975356253701412056018849730403908500542749083045082448596507518879249481330293980657619131817397244664967126209358232746307623141760413395030179112619480941498965946411978419492770385357806594967482292574578006938463072863143945613338716214177786767403570336981959260083959322788858072291676934843003114413768265428512593908248921244720835015277401724765793569275409831427472195207284566365620886073623651339700147045451399890921029099658287130412397438236819330132324700722295170709379436076140780288138909943106757970258007235762678617268212303712726749016974090586751028235356784522736670292327655050246325519301728883968535058844686214016327756198571404637972760793693080932924013347592087097164118377790556273368658382668403306683343376185535574446057219249894922936479591994827241971897837538147321869174987212379787827416587564861234171921389697836284414168885948978368034854426639382119318699607937194784296211075624065560050132249863219119353104163589597549975449013634371860117415011989232207896137728888612465625556534864454399005831344591176754141008470307665750587503485239805133533446671935243853036424827860303748694606690102956740849618738423376989862593251407969469818805305112819173173627531732939988000218255538504650389043220535227419682847600867349514848323010206930544687135783965467338359615259348232527490967376083624004015766520848612991611975906152552767959139511467153540727825717579611816847723239819823828704597979485485487219392112085742641329715216978447936043453369246912360675398715014488409924469641760857514877020884365372746662182649987938445011139588685796996831009191990887922083055040300633183245124663185201054055827303873472018815838116837242516022401054721781485319447915293167596873974193433090636810711342599930048686919114051102437709326659341103977350056496545890766645020039345076605677045604933115607658970665348403425971035667273520842241067588985550303132232186337183470738110899494113465493200994334835257258378561148425512275488267939178906153121056701199778935319894125305610027039109498203274646416202225460653241099956273743328202704273857834293005022247528057447576065742118807041369337925002267721891496931264476170908084969264914964249248568558947510428223446251666864436808192045854070543236874915482991742716224284286396408945264889982657668360608704415838850088722011322408696799542985367133985349079874933503689588335096322924430638980701479588401675956512700625028062741985891691595161296443644192410936911990376827200859593474108566841670895734909163159971225703633102274979080284953643282365996827639602440835671323974953201868792458437372702149038374740661455440354996458287535383369055599543337266673831226127725853149773889342140649952765513740406991094926433498636520898456717456146363537765153045662112150053735938840714614337355672729957418139964965009299836795046192111607262762737940556024178251146177668580911320313038543576612157713337503770274567167354429012767723306644643728996341767371224900153354680231224365949088734953167410070271663252353236948247597969560883774158563763279743033887157576868536169107332725827591881697624771557139561729000832996321713554550554758827396398550474966621073417023874637480850413098204835414115464218332850724308297452792898590129683948139078845855937263513897015229501162786604213917559432219603507281522029203310269138135257433867675511271519521958612225496081469444932444411810270482633810011605819023100058967317504157208609051915606225891246730904013119391250854662592261675033566245246241745156532250937692285635667747309938783093777123418426685535303662197654966107316160975287424341061163877860685347803675187036318567007362017054118292336348156120613678783103981485828995638938687938551172631749418557614346035545498589280390612865952427364610691384240509130306532582012952854661012746295465718688190540467111610607708751299591986840957255590143216061412688914548028268673380319357988860799663405356432302171896988069974413098455157572937947391244051053674534789518643363221307209683856542524743875392870013618943399056754079881020730175462141632870930985850367336761397365934841634754189771944848578478324114346176780529405388186207838735095121641891649984027787468036913612850857987909341050149840716570749881164238429163865318579860599203554097695404706029948298402334431583420192164921120443226210128340218246070747329874554155131700623388904048807360147460253458172666505266065360151304824733333596249574601056727815309181132305644088473627594555250260331576400635231281546005679854719012066625228918499662526165718221496103936329912738245597153677264878589103055112004873906073705681554676424985230335397177592885182086298184571018202291631177981910795467565981789042872430879070330031253337714481919908873528522419487111936229931009908867818474889584458575030832493341760377596172499396969310891752483631474147664883373015034927695138101530099885558036313239799675522693528221809133261772517598794176727037822886041076686123891797493739013025264391442594503154442545852358309650314385763396049999688920233423009935367409946037278233768285414455547117914476590489644857044085536812953819843402314039617122389828486481150400782893006775475116566450561466897242629113944892087668392552810916717048757241207443074780572897325990893702746396757926568081340594025715290840123570937167187560211464691836881576364652171742706597907309945164483344704407982031335215606295414323870455798213244001298638617232887209479426373766608222964669174841413169876750893541515754301319446868441990046458551709375895607064334586146933320602157259498285216995946852454194366023875324220836819842694068035469523681613307777230754011224809367211788202615361791437532135924882346401797021377806264087854012049984905918017042362314249693056850213787792035779695598909407504435657351122224164362295672456098304657141398520754722351260354645367089984826213594455424927715596702025631112474628829769827066651244907662672017184758248224656293850820977655263328149887140893056227394235367328019000894864850986963133514868097991524961009786889018910474201683465401912854571004265007517373854678309159498274390819540590717909986099443318211970175820481447669227808065943514348439023400300175573800734934133279799391513793011228075781703167486254176048197940975811049826115727782568118199950719678092149996644542196274984228259189493313305467413800153721650947714240963833214214328770855483412102157686838838002676190324687527257097290386894497543978433180998918311622413116451947498827794912084275909375671982822572953621960365608559544049067807694154247587283326905901162844202586257395702496099923216875287020270373775615476555288949136988197898438797474760041890311728032901217977379306603815932342199379067064039034499955905842559037238468717028593871242665916558276829201629151246370653599267148707392094548379336938280515160724146896021719102044211901172555863015477971098168200450567881135830884847400223874945441876242413665617227880029808057944751580617830899030552971828284698186605012587807492083261461581665491419303287895974069759030706425479230151794647246639635537319209333887326782448029046821421686657192890966015694676693053559191311771083700703039268862004086131263450093073371255381566710817798509039339891515792984600861502866060587548590473693884469882568754882469181266294499462893309959502508384771713194576794284560279145463662239769624451212350240382043292670430509623798657403569638693853544668372379621407175257419326542008445580653065905976637251015262226070602152618968014011963464907888238085448259239537037687584889226458486475439129044770895933135147400770582372279755621638176515398114898249528926856105805102211424502706459235645379320154784250658569450559159447581614235753372485176201717614096527783444148449403706887974697997981574587441615751822451141987861683160897951835180551018526728935181594589344059804884050718146410174191470304605323135652682534762461076125619078324468639709564576444296610654568753639400761968049260412282698181278590311736412451520298088004014362314013528070960948556885438054925335278237335850750030199209720336021506875513391928188099508574902565558853106615807254147431700059906884439614732216484817159247931447113195166835338869739655690613650281205596090534154656322227862452900753698765305845289083578911021068384863905271835651009496218962433090057970112393737651227241175440453468859896668853809849073124190294178182152926238585424384253064988182748763010473559762941594879410983857847175347436356288635612240651260924460866414693346059253082318743890534274245253954157345375436862147162438545932371593104293774577748234070155913932082746310591028289095764707071933105143333073501145321842585258982360741661904254135715927741788033820056518986662244233556710699242741147073567311289128707166812562917929981096642778480287484866217589006537178748796026516736235261591446393941048466976287146679671291588693321940042096018856419530648895000842687483119009819863193155598610931449561815369271873854673687308029844136663174704044466670263255966345234893993168375327179054905050628774482421971842023069360783252022523294188934128112051057685623773504329024202614448649429532878019340939055834051805955615937792965334039586608303185678576124888729092075443561177501557640359527170202354781951564387639161371104893263262523307822866469280422389160862523697260795010229856010669125750712329636465460762924663034656860468376863919711726292435113513300712406939323173889412324337209731816976939110108120450198184681723110901050457789538305608234006833192303412202885947721048246015247407953135705154204375124688802418200309106225791152290978892226772459345357607426128410717840609068638780827053640067946196120602734883988614755931421431664541503382488427595599934681869990138448261217421474597888514031182809412221454325162172596746375519345050412491293141297239433776443969463791133664691413888541224870904693224465651524410324279520239780227044528983208372312068841887614816393262606780487108671536524092791286070888235377686918311939038411576522474285165797173113361967224224677180082380637217553378094163053752991104276481093807140238965635055502343032815756023631905671469754268077441652518125051727455037016940127679193805096828224950130982239334032907426655654792450449797421269073869366050554759025816665173909738522673649630432797189758587737501718695263019931685744545995457199176035830971669850694153728956369835175876828042123959689407662042123569838130369269343603671736909410175816079926456894033485356964614391442099036842273462351413278177022796120193652714412172692832758178810256537741538589451349487659865345121549630256035261358509139885888149662344709118064830953528888320674554780749203916125494799669078086791660587454764537402319025733843820713384307768162896044006588144651784981310569918987158376740187359683857498608512437006210901905726530615289055653590782624730943837331679062266759104501755509749292404893939776845525325393272396355411036693711503064801274355705251495790646248358963247999156939643342745489215104881045654809939819186779266849296003647096360489928993592227257247038714954394884405111997490524061924623734934029234807818258202795683369975993133242450834591223680259425641918235586939364816791404615810486641512425490484384393911136719286001642954262347112557369918016660371537949900527247453963246708537678714001450864169790327753362993457447210326903071035268903304977294406501860973021172448030757398957366393992497061201442591546028105632721069509913029673205104249752274722654006188042577026032635088756890784485694684603585593316474124804013424308763484739679388453734271255881111228595865692903641145058092953969796254302359119341990977409029568555337930084147203469567750844601607375695729453040169871149463019182297372400725178656979763270835637969171464795810721992400658116972937216261858054833528449884945287289244828371117153997481667764638346123773001141806054028146703063874192766716724164430998207162170707903210101429862575908239911390469624132839167518223296484689614233455628210039071386885536142914449303196224071036376829999985452318715471472532151815335206858617420010031240368289022733389770429314784950808491990371030771823655796538008000612171543836799901640927170724568330145796292139363104561594654159324665904372541734004989717878447131724828223991608053592751472549616687214279927427037870477744991388808034080736347886342777216587885409610386035458396440300441817209521924774471279097087509893436559260854368955706534818581115409565700205493226911929595937354851352951207484616671640091844167037420075313655556426158238454318618329561049851817963268128287987433380392630097809274337623775443950542485669464104596913274039543790483187663275926213238958834108300162004672589632239851763519848527923159702200253643261965265847558461388908914421431919366675496995040669449505184975713348692295569193454322193373293532798768676511289744744746550788339560713608852247660340982479881100835824485220100812574795832766235769490811493477347401498758450086663813853239952070779870210750414134549612155450114272994517944175734161816375304924595506972484325744041542729696147555153459853918891618832921143642121145813634771774627166780708277549180061109157007189707321910583378514127981649139030898308744367816057879201400677699646533361690544506681559472504131871711762100760584595727037928529278398145074718006674734573996869783028298054712388322904822668246652957136842399160859195650307596087675193948543013478056393925448896179457618875682002583246269105253004858445220542917812159773782005100487997688972753765575368544660065744663971370849586515544640391893269797519896809013057549712875379288566965827766086147326186830023370884149841626539680379740554060350229195692165669940976337848490448033009999925682157524195070119318207303764501588684314825703636300428423997795540513331517448674845411669668510555166333543454649738787138016284757772112746820268870506457180607808139986681379777224415228891429883755829280862264284575904671326277902561760211299991268636443943311428300210638855307217740681551550734330697826801313540893963262144741201822923229194548992886451009398264278159797567833036034838181108681838651730300340246042230789450650856765539783167219576969557065107660138014204221966097859299818659033956537820301053284443290663062934593488609520442975306765256129002919800136543708148666352753921231981997448782336043910956619321794686737435810149602081397494379804436659510291334066156171440833489247500457838904518301934387044578569880406730816405738509235635136500496677342570968221766904147532438877836193633106334175262107675697247651091600857821720688574707862525556946743271145594035899722384638174886474503649071189687993973999369120307869074939946527701007481654257494752544250347540672798005774019820249030980580407349004145533014741345994060033215370155707130909271711642168377476539068865869582307894915591715675816768968588037015237803097798895895091265625299307812071142115299862070182640939316746337665889569442769152140147806113785923001388845131150040401544085117048362828611631526944361142769897418052410034404578985090627898833507250984882803561877938543954456331872068786958334174720169857734072952638634009247572237029652816185751041074900896310361984184275225755211990683759212544924063637678082285985860700888909402509643977737218688247758754064811592363594456889957307125604751336449587586857755542864583612553226954432248065114235071523086841387170612062365035058902300805664752295744851597296266118244255104265819102850182510004338002292635288318467668204283390134160860028505248198671653637214090170767331836589789602298172342473577845871308656018625188812825232163033524679000455428891582164170875780998140573959623868349165824797014231472666842659281808663786422867109202682929720404905669621702152120728665890670231537778814994225465720494579950700709989197303112731460536700982434386196525320948980259977364043049340875742368165413923910225709855561460723669604043287857931374385123688006671245272704039189481446660969499148908506430152342532044353965899833265599217387216479201833907392733319139943111235640377723031473538240224891995191958014062687149334794916010713718522011837489500553661184849474113285701374980639545108734165648546064638157539783958113075319025048438501732339203310784262309571325829582286049950238071066898793669825262833866021654387557623678200443047100694477180623934549786446400935585486235758124061092417972646550557015141924113764477340638311026670969124532535187472515458892740549939833698701560208964772807493008091470597530751587619152719488993430984091749824458561948072719494587709722465870799642540178222231264200098680149088944766135262093908281840492433173814311938449426989295538527927372047306468276425195133817412003057960810835049922604768624965165348089143196696556090461750217169265178561484753014576104893313411865800519513544375938216442032809804882369572262020788454173123366254729048206694400340186889033865053980806011389849701892834078913407656157162178352181258363439576396896318139952382233163311047293273940433303366119574243811346045807749839271320054205083449320336118054602815081455955978077538018281190045086595993240776911474097167728036649827673278906726380414139999741772236146379358888981411318864662298084685757917585460788607732140698492869028641586844869147709682552387064575808585826564778326819358525374077824232487114746224332443565545902877884450850420426586881440099900161243443567982452846284976269298773627488733480673323742070280296415142508064511307111354744062880086354189633902536554349582099503679419422223947475321058612916012086256590315362332638320606847081058368385071237050290573491934435949619802561941508083772010372297390417398609870372838701684187629790130145479659221470794302985747155907735259232573193229304921460573801465799568310769083585598704990289106158512674642765319425622012856118610156197849914723510561106582066871351390800087506591455474872003105673176650764915651311474741440213407792482190497061199640525339447164820052900115828354228047985372060739140344307561702967825024753494484187131848880085400941155017825509939550367495916597719730920323177010661709632053434923386068051205943506964560745463445116150000089304077634115497860034474982782330332872869459116480695230558155669379738906604536893055642523329802403157396237065937123425716189624266320997641810026481684283934008531717354472983322556936687398598464902872298452171269181721237233917339263548855630190290904888380461076086767334462488558510150437091597698015660887419384194136505226475557780230554107518017372196170587950718331599600713492308149569127736299735491504188115532314996458155419909594086403923797057074992424065818373118964380339060370552561730104215895866913530809494634993208011005204359624151464491025456371634983745186449809528634066531056359059977078445491477518388468023667971448475084070593854419939087717918761947319936862047798803434430569636869578305345310215713022639698139874753478184949759437159402851767787895709012634740226631271289626657669522089920291148795286025777222125624449753571400191264674722310145724229126278731067775912521713508040791280818486099993678847136094718927243044624569606155895430066906484069605709877847388780984790979011820435232404347172377377829990181786444153179383609248168685626036157004303290544231613825594165763008021066279987317838041396224336093227638978966647052400828982816952267694856724974997715098294014085759854886819509201875337762002419264694999993841077632081996761308059979008128414285845293297345049825014921589197388876033674415277560064270284932918590028077045659115029974118290877132909787041789598344283866442361535707520844283590243751241154972446432178894307744387674071316436570088771924738375641880853093806808213495071161241973048135410340830377966426071185365700042834511924630902352492715620691343510994897195526275004049262965402757842689383804330257001376482585365274760086096258935605523841349049935547586071888484780187717759402461132277432065406760066362331630023168213169583954943117206916783465846964192157984279959413989738405212338054969133381075348494099086428984395736684369709618860007415574954649531549403742901104263066705954196587228276311850897988581942820667576344977351244951254914722469038007084630334546733285226372885676729391186303440857633252590724721934018385033683964401314990336649451987256771736759397217640536697816589318566509831943156424654967726276721635038003891738802158165689765384437839674148737078623225099199396813478111022600047306663320310727517661804089100039185613250605045858597539330043992270354157585540359951174608991416538251758190897663494522388787683917983013324101667322672764583516105021367658576234991324524282146410386630202865510656697716917248704036492443501601602421424281171756324043338863160088290937780952330332033197425776359442682168684262759727077351633547522698243417950925277810725677528720588471055138112305612463041400042089259887784625087567394595885899132943708116967601570631419596420254544265874680084908844089718851896316508927671646867475851425925559884883155762969123270481702224125351779110872709108575040056613972072929448555127285917754664505007789924865713259080252518942880691559212776624362866599571618123152840049765032700795085700988359597165550835427107000315394052900791524182931674151989149152192850813460681268853628850782474753842049826393079450613339196929571699518164562579016555880163583674399496112768239541055745982927334703044279905310625958645308674538532224346840323617669997366025756122688042668353007535401772926932137869939755441405971396461421868521604529951367036715380008998162829674655578935579001632123613538194226590656748578007170861672275875264340262352703332004922391986899562501061892935094064364568489810468905398434598148707655915415714680340818203764055175067456347035527919788817962350382331261566362262107874637295635892453844796855117784707446756506144068472069346439747283660777105401669479062381565440049152598877796141553241860052942404296764116425916030085828439691570644006323275936142764006513368101959320395168097205834137266990549423332703830888969351368444708153823751598730890465208122666009103361199383681090955075819457849799296905324913898032955966118607459931736227664517416723774810315897977005795648132755167698049071944588275773815269304283727179711934428753615707361972739796491269379990439011637891302309040436357792014299771924619185642909268770934639393689496452349937295833252382016241970252790642154168207654451704644146605703245649233445782971527574368308685863865087490420320078992497928970930797481267563618557043583244845759511245222135761132653062896003128201229743824388338864130665606882675736897998494992179515554163306713193607574477204137629430699274888953978518281146779158577453655283014859756948085308025138733442916495177502770195923152689367935620291261498563156126156996942487343812948854949793233244743224112766732516995478174677097640697320089552450158001556359036640651699486112215959581158258601516399710601560625602798324473337341165601345158471042694561492874984651444398338520015026411573231407296870269035093523621171741434803553868021790728994616724264715467394430100446425405601665465942058823218157036753084306057188409589565542445030757078820987002635114438050696523602935259657947510820877863319370059557148228015265460360720832393512464532158828913748342236292408083535418660104455121692697415209836003881825890338645879413667414193739026324420507160651842109773987598645504809870468382411233373712609679596567475229831439431529858476074722482187296523519430204421028800828524068067055663795530409812843474757787784244363699837364234876547177120160409620376888886490087152865664810974780647231058047136611115753088334435968106128549432466127837734783309338250779070356793692893529847839405812967296523489571158283043812256182208081762606212863418964787149636207522698694334635854532727154029013159457478718383715242117952478645675371311942081278299526860295081176427267745831209689455010726870100490692354179056135418256971308705339401120698324952536706390198453442647376854876826126389230982233134300514606211701553370659471462944995783013038369012697733422165270082240867966087439828669780684097595783781764935002409408944157921336837165837038317038528764758643524432690745665269387923580200700388341007188225817665442691027027609842988961545146730667688110342491243135708973532364270253818933024894319356153087426707983296094262490469669724767872907402703721919756558331676989934719450543120496600202582736040851247416372339306557129135544995241499670197073511976405765457360842476700219439260326893488312772627403215776145985063679422652664997761308200175903571671929638632949387945409247571791969150967667928393188482685002006526905501869883813199603735632281390877004281553652756479046064068714369855948628455584458994821289667277223803485537450144749028862741318100941343135673422368131749175329246499597488030706295342618125362741684425331078540856781539461307792650711115841813445575928827132892223239591389786562572516402315239541918497187906863962475735312108083227325948688338603501399043946185797107532194089115892477226810888323031131285516388889127215892406198451614102205529214956437741311716403233962194988304033307347436712566842096822461055621801803151933838518573714790909775144033079448288381850892713627780767727863188248527893675334312052435364198122421306325021546748424464931870774874147781487032053488187195625800140716722408808292913113965705823555301587405858003258598330080251018234044959833979512968873520359197168097879570210915059649408162453703292738122789438988546734666049754443069661361606794293016091931574031912930562493973702086347133839651315434668736076298277061065658260380745437046569487458818417401167343361608865032982596340940199895173646980208949958318743134753452701916673135525355952418856161906422132381949512776067470167286660539240812871366838911412970383753375311796604417010054113324009520656990252980610591454149341600625808274799874025977776649786320389097731006190532328624668246193267844251699557185250889168118074146261844419534573740159383353264036111407027248957373805041852023406030665456165414204548689963046340378461357635322175749128520040579577948329841209045592338309791067396746191262975095812014059695488289411719356741009747159769454889604533699017891922535247918976836160476792733042889986549014971117843593694660236946647364002486748565657433204116398909985581281452253655437226714133726365920534072340630358728532081388220929173803808148598563807229737390425240630880103272298774588765212605493728783281254749147393472186549856759951410308224849748228543917392492760927383493669058938886690626179421909216314547936232718399718021499685946453162120763228928326007065521212597403897913534713197185235947211528158954978698262342833681637675787029824003407732416152226807789034920942570351176638284713227813197641928268490965117705289228196812262480855927013083934089692040516920911321457719008885388174490952533033424562867992824790268972573747212534207707615487202086640086909439701565409822607202163643339772581858097759816444163671087075228857829748806872298000379784836091487842884967532816852104549554363223776748223895760302897663413689203017229800708414744008272171196911971053100364561542169585045947902887872263069349154732476026155973579700764213307917360826734558154798770585907827623687026043780747820761793958527390324578809045527862290174123881227232532597752618056078510595072023657861265960928126915523716388336678122757972150946260597879262602570754911507904071067409077880632137268465514043436698227625726099729171446244945695230242579433971814971106984681056033869872909906756364769039724733821501879954580180699945661934270848214488073022918557588634583188535404573748399090795901155998508090049043847573285030269000985290786705994773895718323771134648056380149515018994401322210458585669387236711025251037435245494649934872516207258446537991986861581732154449761450387854615760544359668820516413878711700007956265445461542570518778820596163519420757442272272367699168817177602487101823486265454505681028576035396412260932554898708459867024078002264447071926536161359276501893196923937178781470815408686155386787233080149279226463849332974423916353432013548887648502972869882612057389863197662806892651905392841539634234455947647058051524096839230261515149225165821519811154686065990120094893295394673117202477608240001810530515454362700256259392364801620967971136251058145665775612215234513515598766284801097095520501234256902927505267047959654094729032729640189860370549030879760426332467030843699690014201390614616932771646555400329811054536996340169511039563453214697254689306483808414400717525304080170260837505483447745083176539841789862350909222807576386577478786489199157749378118648828375356745941358829175212941447476640758413218241912500882435789940786979253890009621227184383161603074440782297996799197362440362471519295314436470941758174485485242280053494179207293402618361798784086608046087665327723606219572203567939102791055643327234229915196508928808041715651689896659578858690736376612249064200095200245883318170217191124625967869976003531180933435222021822452069620312541448129493449179020793364879433603407000676593498541144276058121206201555622635333169578445150046165008424832866100844330734561658869316279049755559496830554911869613025828197347179769819259084034588301979550860861882367256984483731243555323933992636930691293599098125874432185032290574319785052399700786521994238685520274806486431608140940918538133541487191784849963840545824897365798444238376463649287749986407351167392872057406682619244931366279713712207253403790408988823220348211716631622913644405423697270345187249756835251594786751481810476013908297712824710113217970540834090908932263019118727528228736341807073898746149116853360719561061235433725929425621698277382179410845215242151097248321980187496332751166423058624529760146046719648534893875309824985391246711216788953563365393184899176143123072899982067172149703439799247352359046829617053573179809723908932283007272941442728475385871059758160282385539739296411927040002318165419777266244094154095994335660329585297972945738949363649799674032176942520321699948791980168612973210768941781993012043480261117290621730666835287294944152662076622449651627195172069963595678791812203556085739004905804877784385657304145468089640449477137251808097582363536590677148485666024954373103199385092248844807204046401419047280275959399505320119369011681213205566122384148436875397592356182500665170828574853355805800127377763297030913261543301078646648788527865678127664016397409109426259147732361339187660488334488546332689620074199989159689783820674272110846360153940261086748794059752773246423291022300819135877062175992356698186182168809871947732207532872690688527004033621318305440220926057183009366622399987606416310043709674964043142860668415946409934407972845747096877632162870134394926006809838111700808968627823904368824472776707836263532462779655516725649984936361000456041626087139240555035185077205760348456254392202883644430081733932380548958731986884500452167582289350261370145817344601345634610985865278389395259813045527197733759871235911749861347532963779746390084129608139124775273903079374441458853772033237873662295755226492271928482957848232887443893017554396297418611203144702002032535211721399740914686578493424094746766579851930176796804451620692186305190358688118182525190806629938182723976450191972137879518767171785528618104376040482362321787603269266804994077804193896084350953311998874274093957197998134819701493366299696932649341405244580938784195962609251506806309946932119535747751982717686067317453347727800351948987467569451076250563265753499922215395238773191625055979772875151628570644627712983638932762272165473721115143223161733988090800858401333624315603588292782744757615624226454412538769973242130263325776796898947368400576820210068787496710055842536845930206338683881916088621044235619354964359802065328959138277582848063726844886282101018807939188237787175274647046785330690028174444010338661508511007778701393834179445610018975931072221088425956966337695264930737253971284216802540466208535777730372661322273024267525479327855138418576148313192717770588561856123960395996369251048793097836922280136364304842846555747565627358561407340800899704353454455568681657247341325663501441084242600946347079138710408213784057266608591459608462966059122299759154126033987523010953015268409697804594327814579662717948611801586722839616258451240586077068759874047494947019481200489534035646142893379002888635559477407360070801905937701492298248782532547417337038048542130523601703578934809829358554194774109244052332933578897373353672068247358530695411996324735896664594678099173644271250317493205765791145736570351929123013862791204662737029301326652920893395993928266304361057778303878021244411138002030155013031022789365421951562673160122620082349861000971530671567218291429681861858207220999887904001030446792555112971114723157774517889856818920336303301273443378225881699007785960009823497647688969355177891964654967931125935671429796131730457048284254734973129202205501502614442462352339195786111183014677885602688926305385938553056860544110546334429399477416823615152820045514580702113998786561521504241800519508117143629173805885009780646270072883126486406616679832265968648733679332656541037935271144252394913741085445245208645527068102146221863536231235540485858273870291152351364585305403729909157772509397578431656710134028456139020820207916783803771258725063076468938651220724211231577331369311347246871678274229144510880419295769290887629305389834894382381017383077652921516902794365415721765035656523652383236948678669299560442867246850009081302528637118294077375528807308883547801319822731389682940270142189359476285655679085089924422018134617002164641515252616064972222723837499230096308442743532710950315123778714643796007713418865653352255309292137080004709262873880921189404070266556183434707523734023537984268112041715000478095010625982141988157125045371558499672393314204275702858444114209932115745293513611385075893227959874356716261694813859912523417151568754803919644597528411726790312664044864736151544927574971274262538818743591440777427515294638390797943409170773647707775597996893433067686382058853483324443439195935412931148962456791318355358616257299324301433465571594287407624218135701764859959165080591220958525413526833701625021993786288206590435199912020863521360053879324180029748580152039201785135500703576823256595195260005672305798227145982302868144406958565074590592541446876478939409553396038536898641548650100758249902311314648711160732715825513218836536662267241236425296782523497860952455403958624786406723307214543787127463544913579918884905179278620669312384183040582594050513921601709383024648609550329587543983613235744109712297607855195943638064237335700297752386204562821474971499637009461105154464924332034532423339883220034619079193732720746096774454004466254048646231515535400353157094036955159000952752600714118124884389451829681588319199345233627694612362467448819315784216584694027751563626163512326511878316982385785296023166618892141960687697844402285641660657052178010588204760313627639730243860561374872801840369845540281533368993178068710008303642610110975641672284702505179511647009075083550458842043634327935713525221313371048831975048460840054150859549262001004354186673048315848496181082604971388085316303266865227110799288064170957619162558421620085903719374932334705044635310713413660939506158655350508963738337131213388851837875273820775288864871004459696078088568117567865610266896208583821418949769531655030587659091880854463080040157456389147945886912291324853888491768231414026997495891370874268930956552943327375421332767179639590178794680628794091142308633507141671104320788279935715130663715206186337581476839384288484164309683841813713212963965778088778356152441569795988375666030594588824253522403604921142366514945829850131416423869920911915607360157217789971832418578917307454791727505804715602686454075177725507293043053828412773092376956065220954314473760969134374132269157240387528502024731684239233860676593688889587935682082081237889626639790109794288424023906972849126529128566714103068448558516714490031929133518432911362489998474818154919293303607645361134332787461238467381612271635179337656245626487665867238036063029546856242875623056913421816938375905760312920236113715302792306469955665073030400615949647174010011539182261487078709685937054602189812448036553010734673402084828027408242290189543214393499705998970191483932178521371666716619002995618432066411285330732025760434297179019299993625706565999481548128962261751938457194566291684672926278152878118430760191952735131143490938156234392845557242306431765403816092162351093857676096742674763122733585313176639826448053112139657145421157620598674266702965707071868056826659826475913517424954793228302362199477629744232197931965266624020409595295011482188262943350333391734350487732580945203301452029919231890713813451709154581539893102488634782738801603475615006193964555469843359934401989180135826920425717860740119639946377054846957632262873870711766934355828596874826568339378898208093629809936748806642972236192463603604528440140572606410348771486456068123339421449663055857144140225746600731901417811441438678629260761103630462458505877254568825815377432641399215727634337229143692504703271840610036131980428697770517230107185685544352027215590736754283208387705982419456087440184863709339916379823183247069710028764855003557229024208392673972362900101228208764819730021028324478074864524112640350982711626472809920094170607804028200747730179166984646366529626982570381462519892905371882962359487659307062152682683188701990206144777614491665572148945284933871240929136219135120921506929093432689647267711536239849911720821494609917696040604073028516499962480053999451866014155164555805931195473494610231194055084083483193369901344361824834897720430120638935187814625096092436927024339745271419421191037288432577592304728650006839624105951970399188100823588822717473116632797078336522129727416402751697287548160153129225683936156474947208446748904069626172903474610383915393616822820688846085270787212774337245311243449115660717653343801633319966529509068417032280830269733024502575957279331418596982291030440410916313330004702892513082630630083053150437893325645204490226583683555791020799376061780177279689912583895231085347738255369925624945937539048175366508076748608336317542221574082128719070284308741914711855146647046345206611225569864230787356011918748964944247191726191045825166673522337491874147244995474841117397464159981266166185414903346456506753478417462837143530781412816664036018935378141887987916082659756925135382380809489733143846695975424016966392205649855482770026300494384085523611456725256339721939441262874611995244693029644127485698956136909552523149789717012990862667665387699647543463529330975001612552805998733999731826825127072889770454945321583014645121559676276115546790047488961041411618432822108242198372024113876654401646315201593585161594411187679221742801227006065217963914812571839367136325620587240001721944817637796706261196851878919884231897376013141755183406953699536085420141592842433393171776421010692016879529748171605694604424757475766294239015108602261456602485842314285887546535638394978448952374570958972874532498852610994738692426542808488126113223983918059242467369506663989975250390848519020900633670364281819131011567850815657264156773654667365114341745555489281672631433156003679734086139748743133003725394395196187764460213343407483483547025544505300674794480323245141267973894838866747350624367269788602721848275717414335805709285827254670293195133003574042180461335357973649405655526012985723383514184551740871597254888867709246463788693939460928936938830768893325281542888256350221980517440585711102870029683385134868383278689212510667532878577215048271581084007840182198167098161333559471726986155479207165989620552304143551816037983536072410998809156762337853665718793789598280091454125434924520818783047269893624600271645118117254084555585996867225165190500895607292785956609247919240846339497829895760116933483616315340525078293339526665716791863985233910284574914865768497863444370469490705735198831686625626391294734564134431879051768284569914269350770045099798082400050137448643106783828902048095887905635640826077656745260616863272015043148940305402145442854116150125916810326903436235407364016462982790171397932124331939444541302726150179067728177236419026507360050714230418259160635893322053550433935934269507811732997428373530606543973036789353915388904193368848382416852890895156410049136610294399723048889451396075276340323632029328311827220093797042826910948537707364899687560775256787177558641606670236279819792871267494038693727708418488614233283602830148045353764377726241277986745489340080411375096583844048214419529899462043376305692904822445083944804640229688047078895996486941096924347411812954380143813343269212615682165686765111288275099341349565579612480563465341502981859262910246542625816111398532066484708228586486169721082259705826021298978987710431572193770437472424976684637554575173508098499670009966943978608897193225536666001617410438878969029611602126359013831486923463769766147835333210688670722682758523462794996322138622998426471284204073404455090689248167958691789061267390399404513050356498174897449739136355277390929271405554559327347638551329371377975536282106295557940884380575600261103801477786423416793302504427976287179860810035684934502094527095008533365847292703171182418681003197214860203357319240067008491744882442201051829158894211274571170894523465914287687775900926298809468285122565988687383681077875909993468089770827613508288205311783922045963637088934726945958581365433527834849950758875446642877290393038429129128254335032072441008641355327044592666770082180404398388302926332812668596581448751451586815098404156750340390066143848381601700378025118813253324847968180281404115156820671933174499695413212211068341704200782784034238600390527146208269715223702935666120170367704985720678488664150987618498245563686353768301507347950567565353025819718778081274423447372960512822369456022612514307618647818293676094447708687644642961031618388310705995342573725618598349787716803458773920335991976408580299639501005602937101599948172763469492805552431780597098675093208780506403524236449908376494597484620375161575211517678129112624890165517661672799709191178391898427443532054684366654234746154223587860455608245092412901871894117076748496679050989002801208721701171505121210253615738629270880264146242333067945833975489574506138304328335138697763093737664626860293343008924244810145040029834793089705981197965243942751768888556998773622396627791653181900470979915280188785981568978714984028344758923377177429831392622687865674260295117485807090863093918832321499016132512740782122090001165723468094705988781694688906733555031714674026970265933432457085523712322141049119807729877081734936438153535132206604493283430556139315723599377746339901972646185157725967837807746251755737742587799995194740523500801427499306138098038153006633521176103536522268388910579572041875889240397606413410345694634188929648302838802256803647965501022941112922036829700286266763592792898790287313308448083366111405175114384779131422446865119997978600290362281088147319360236798329815217832392880308447234221887631175179858158680348268849688680056067850194477983954900848604728737547975377923636820430425383560724495123190859938652572168695029198521353564026228468039606977334809887319077102767914653080556936318296240123969544280204304469915268226819674462457140772831841479552747736683324489100779611576305404090114148351648592430480236668740853382548171102017187623445657143769926371871284502527869730485029732123565622508321599131161679404884732562471647096190223340301297951723286752891514618479863572448713845104497345220511639152107151067836642409188477231764267182106227634731914451807960149936478378552309352274856934669433657917116576683960770540572028676857524004426193476084842655989625950756327925997094683143557571975554829718504929003741596317545386166138075415632034557057518039973997924995892953968444160204179671379498835001016825975403844581396926160950814411300661426664599595786565175012132653994510313796267168665233657125077594273746842914934682696142273071476005365435376784269849189338976413850811499798650964805738315249492202378940609992688220461808106022288522926881401843388323029307062464271211289600859393603468467975612199779343917244705072481811075045186210618317271195200503315558913967425014049222184470168736707773898125392561119665069212979859889998984126258891675984011365899098164479564312584913347752705094151977269779246881455533066078215961701541667963032185588832062509147729235533032655103098436657071968299290558865144150482851086620844122302776860350846467938501712351454044509892864415207951718111255492578398475752784684082258720849450448029709496532807708236236429748492426882148584182113391544258661443979809859918429769256954367325176521394921117312513096393975842097104300270495633784224266091915813372099026417614647732969801572050976617091680170944607945384452772745438694380967487046733280272124784439407430578556252066368769644468331082370845447940598714865338056350258223036673500938494530567645889221023277843528247688607775975739835826702130351537612700501617415426776447309793429035621602102394880996969894761181007548998550675463963573974244534605901036764301977646377418243707336388229980265365894754117614133829409151220592537929404488597244557419497479688156688498771247648859756379937239806359172000349082335772958833957062050793439141417300018064004403369998172110593697097693087145978670579946968017966704352949941237326306709229070403114457953946285842933015427146592839572828397087608502413872059482166646119895945003415458082097380527226812531127078709780055310811346262240396152933311796883724342364158852292033425124204676562637036140903535047945512738691592854997516496515455874688720414361132852916525740072547111569702741115104793354261992779510952791807924559346172586944337789482914727695963789261110412203660868510399218248661950657311598944145204222556099865291287167473947163678355043595667030493356380499051713507456633772051918178693368042064821801166684207413727507678581432561096985435409890813329568823513004428388635371587105856994123466815057609628144293363391090698385842132980281217433274843602706566523960623608345633039732619327034286554077057639483327585750789460840813441473295662386743466048296340648545133082000111559654628912239634376035686036677416358553318226542339203568572809093878663991521762050373084208758261159133640335548159345638526370804353702693698148290108467670535086791604439869559657551197267956705890420796528422062342270384627729319535984139489517341552910478308933820054218017391675068493422713223938841797518453869529946503030457753417158103735731788436669194908632308732081360975710561803892371084009408030846728778757455876367042989909240516385164949432803629511225681055308371144572812178860641302415179883139052964720188806794884554495879663344054948193447164124741621965720625048112139703647111124646669303781854066201239084561663702350194402679126424278143426070505870929254574116258205476398351652559497236412296996603045526067512654178285496486183707745340157647906009822908078686740321268170391521702688188652012413753582386550558844224568523368056813265890484371487972046830673164973732179467497525441132965323236611959470632462244878660709497916816581069689883022103455252814693750154630501414348068810662478378482747730090274500924747072015672575010393219639656161356748844319824483561356783147063250953773086047948790561506064476401528059506589703721884440480097451463099673436270260670476742446593730367548693970769882133154045922909428993785400319857034392058214694536888813991332005068682304048072586287388652598201049708373272352814873588966525924960116932587925291184166211328544822891179637850790840966483439625691968902739767635325015008986926772784550116134141009816226577391893008130902966913796575961896008867264646465999446869847083490011011949083063563038319933068885333945573450985841006036476593653084924420821826788287555997983380436819731903501974443673250320710916090000830396873171574495142353855999563440734030115364236497244169914937191481646336593418991571343812806572428070660097462774895201105095013866130313691113511853537721888327609876988331146916196979900079751171137926725770263553714380998932312526219099222865711878668687733525920712268707298138137430641245821630898844467515292610366713464443699626236359371395742049997288576974720579779342499060498402667295156939192464908999401407201267542088968786985940014329289996635077416523047981034757295931590436782772461386744624303752179469397347249002651599269936079142718340407439464184881164052754075591912497610360981477315203925611675090587032938373714929029379032487829420689201938775327969175488274412186278262075218625897428971603582793312139924894244283358409746087849742127543670348282180328108340456172500757625907618710224161115678902864921037668614438380307109718436547118881326783166117842932835714824448203852780844816771133366155195195817945629918290600413826752817395127800831275645000670444961945036108524536627601970327573445903456838297846083179013655808002597830004643787922251189284905635636682996393942649990788802093401522384532093958104667937428317159662521655601496252315703157548070626016169200939626711929542988814183799585563214319357006442184842429348779576719168076921547543044379892602530199534064082741307366503133767708576815978745178870050458483843414795719453679200040586540686157352677238540388483225500396055430897014045563984703175683535490569310786526601249214044045469574329483790669599280348930444889949507391650195192041408092768585586909558539287919674761533361826763659109544318492786865377522359722168740991511134260616996495945767322826390551009246130809895636254690385905591939703857758754458455153227248903808672069657715916471763438483426461706927454744268208148653869080502953463092385284828539398077546128396464271687727572068798067434267922380999820328809937143901671234925909729207404931679191878909151302324958386909718609145952416773871077188791184364970806833105271591146489669798791063673655728161841466416287139679790083975378749180607164154724305253569806690356198237255368369169291467391272109192657805010658843418926827832870396421810585800550255150124409721260301854999059518951644376153551023617580324318575888375622593811674380595353833363819671262594975816841538028728502510588304967959181369067403055416436745018034795088387411906008580300909661168016682581712581986384339124635684478588577466307138512101663395616269219895735412900815074528311203457670764125183707929722266590170925721361538825012558125048387682901084048811155580052183722064427809956267522675687118095101896268981699698209070727111141824814801595478374199396957153702839072595468796208215227053140275020888495121158129100102529093472310328218374340859507161285119160314678068357523691390336098782461133751009869561878455423282488277187117294424912190009279303107523546063662232699200526823764897175538479795649864986432119528057303606467943370223573373830225202834327511435079214134348225012316233612348754454173378357931923184826523510394407169994004336382957217640915319455922559415199935697973886336524288257019216871961422563473214561089430535046074810971444182420390823212200934700359751865112598328483031303333282669115936052554273058585199472875432113966561138510901106590588981446953650603637657795352922386759471317716895085023541640389854197417016879730511002331301621197420440214710553558875450404472153544599954494735921899177666524705135100390740899458002014669389955041958228258678591994991290403558727969929049203781391826806797263663734722592140672099783402464539380687211993122755702241609242371789874361589680503589240770968986791325247089656105690270990492737126460646947302116715681545264108142585438367660323359665486998146430564834909495123897027313379760021952638380324305453216198454874860141819296861484150187307337510713364635321743130643644925884099777357205064820015325486054837906152261547207767031807838690597040173854184296537546633148315706367105457044398278878762314773496187504718014520373336471374340799765804537278664376071171703619119877208246760173259129592726588000441609168553444887813995284881464159813892098222531526070441187241393771170619846940635603681534333900730903372392083247163991449344339464070800805715797975317929736914840309096318147109976939503144854237317999271202907294169947522198681569075370181773477304932587421243677056292586568332764035606810020507197429394566051848339788460543260916951500994071118210986858405835749804820339106849956827051742294909398076390023475367884336582032343701945189628322123320535559449975563432539197314222445905830283484429406787690411547369866108306127322192770108017727688086264520200292483826279621579091576679349509239374003915946782428741338401100185130972631849306896951447075718083801999185758256841151351724997345459056558871650640954312357194570086586886300723489547346012195577569001130361708572288166721606372280001315821175067383699104248044454573068558003157622511343588268960293588648302846347089140450837115637543765774066589372187831583398360405413021937361715467210618637629833219426356830998241496222400188028913825120238791615803867063350529714098808447793037120783680853598055499647209053224848497040262224127895764179149824102179908042449641585038836823505161466407363357867298045400170134605552286134777930764403575717042839567611972717368383258688966384874356459394539142199959868820614571490912005642989650811449738101626326653636514578560974506781139833484423215933883726737818866848071262058751112938174093650221816834203422526641522277816895065396815000802242622766704866442638085100275861439805179066314538204153752968757694083689699080398247358077101648501266222669062522983265272045052584242253375290577894506847318185451486937018693393569974639148895154470895550387495855600095983404397288099915672676932217973200706915261499497585145180749738757418424499976594555269089874865073105135180048082870738339976402298748134821255967141469949917869312261361555282854687447582229626570753273684295185916388918589826196885790077895013792445216096194257581642828037936752083171337078273244606606702538351851520757672787971023534635147625907770287429739162513873220333384589336388536303364998588296605822795081335222610106146679241677794052720827148715514151714279716107423355769181720512152844304838357204815788485984490064250868537967415777590876867400721563685986671456436104924225660483738475531923261906015562825808327790073557467606678733052836431099344392997883539868089336964281320543317046910688060739414943705021750815231820661040376641368543890336092792749401900577538814134224431434879205949268711294430141352716780901571548311209011511714906584763249310146757871902207341185102227594105801557282842937682976540055471576815757815590277178169064100448942414949875004474991101956502920497993649520214547648054729810068415576457882561880725389440906485770630803804111670043120132007179850821694294298772456006315161351722138918113077705179260361001481067555211870082334347902764381300579336724453920079257424571259070187566776548785760952843661216596346363811591582634181301583905430347062191197350344475666793144990948923858561735895284299345294868040753868678499868697740171695228005796078003580691374665322105345753676185404087460652353975509144885615728354857436745646814888992232249698656432165397071900494795125018579008328509738194389374534817923361841807538865530469508457885293160022492455940744282302024458445145934625702239225223190156148910133697829488994721833806001975755947755833987873847752477574532158783074224951913585631632798241264413206417339112414879155565097052519698483623926340286941882077092467512005954983795508722233725562325616155003716857267078495229040503309138913424948763421738003430958672180451836979474707598517413259369520147226448973654459557846082854184546023651651125873579920846244306722583492774205635121193260835069733378115841640879489856737971696549478279110561661726469563136463815778189288099584539423023320384767150363667892184317464755702949623620484748222384139450915692696812532102327555428983675642316825954394030349691615634119619432930834843909243412555190834563086776961658016623961749421758831683422990593244222803001540129322767861334447753297808737352812419729766828679440559200674926327719261327192513260858210306519510926284701329701363045188614584179419418862101452763745593336534329002888687805434140012657207122383617486740457368061735186144596209295015595607128631370822300246954253418381326120434891765156886033550905922934196549769845576073729838310375260519897038563699464877411651180087867188113833052345600780717750955029373246586074010699225147964975065217364105182147520284410186961983092618558077572466963496313396898529890668700672600458318048908532255372062472166245151163311165668315073309709161901692742821135015898248120308758674029095707547765227624522905229567735668471937186887033418163987753364488758031508720891550308868457880207496099408234000362440085014493156424294594759180425969264491945215363227417774122591802876089072999095016946137382097410759708471812856247456311492138215978643840048857867597866042119698348859352291656637345132753629745938096970933532674137829237526730356529837471966367048383516308080508075685145213327820734118996052587268526154205028246472581876482004691466442313055141228437790728914031501216959437916247518907216277840481772936606768252617821286465031990734574145902204625682975005927323986777489532874241064417836822719602435475191223405219251622340954916464317040759824607827065111425160683048469759829591980869059258987722702903062366012558129646027615321097539932178607525206140276606489230996299220399673899580270628955548362456488626398199792348485387439011276231627837113801151423058220579480374731614068925831232754418376164573955629773742554733966789025255767528131202005887913446388723545484344647033853661854908839869067548364332846779869902092041982052249648285156602342441651938037852751383752825300003557233502062372086878245770176748198641679399411882441432270195256417237928372776103992945427632052908701223712927018314352645959548637934833652008218344903557737188013087339709403341373296703793588191280809994686118723610861619827899337512653818034464792208801054344867161195198140224360526301848044004067931085117872806084987133085790017184055631754562917045942855040166492997581688775727689509881557017664099501133352253714379384254540188804144768844419128014652433053653535193499798610022736176150635789255604657088740174038717304703061869266698669178354762815899745981321765036776508792379077160673094829828743178721790470104659873443405657006334008286131307815339752363397697206173593991500985860292309738244741195469306225038837632220098691928986790433520614835225935640658704489321076718360865720747128775294973281728308365055084797185006188436719579119466549201812963684105887020273329368547814642193056266449391013311287973194114235411200885164041917233871373232958667896516458131624467603563024036392321916329672412278470480894563775121777701219174817369225434275025503811503235663951714671166721880823595766626612487544952656365963941795932621195375089212132436821100542997578300968021865646396512809236396800847513735779541321225498558619340737049976318131203577193606301330562384736454436468989858251645679742250103187754674030150535541806007169649037456988716603415384056396660620834451901700074428418657711354914896080413943930986035166800963503611850218757615829523466724614249907421759778301320612258378691663292759886429255108639929317553927477107843058059164157176423722684417636539162367411067393347162005599603957119873024795303856310918699627842443326021488582734609916348196273809905513818000913827190610365477106177873762069737272848491867113387189018112352689816831105981521360075549126482567465012548701705219640634760945265256996304749533305140823009008576012884921734563265159666351276895109476315199752695967624236570328558066788597660496053603204499941504084496606582296234905236318791895868407638559268875518855122591311856396218579844574755350566644421564444477089347192035641678908212229771261395091120591260292104505131296179232996451402880188229608173734189388937875108934934740346750897204730226305585168136335961004130242937306267399070023923909125651660331362909096895336363252010378140702429266045897846555048011173066043569164483066998967982814307818015179504855460156751030875332037065937891968733918952109119644062303075026219896703478707745549788695281648786872933124212215018900864568414696977479836254742541655128780502893972747088320162544005685886701802041055351991312188675839311314618250102240495064566335094163046363946393883842711995381668825418793269111123868168920452106252952538508822527731416993501176083935999996471977026841382231382506886648243918827141491369597955727982237988862476403198158620947363308414535292299643308578416971796275775661165874078450251621890347254525519911910158674876339901714153882511120335370069505735252512441218919439194965240218384190284210396551522419810068401366507070430211202715648684137084269364658155001973713598058099466971946791467810769804903718097589743269740158672261382350022522287538711306120932341007749136582333986021650640628324620183357026608904197468803205643814838519741738844880345714520483481935571837419384152982064987483011673480748567819063550019335711774341322695861798886813139205939701984341621494166343296112531208169415307570631867277469738760359057616578393419368841068798810199280585750051670236950728868285723609499202917098453470242494635847445744632660050850372847834152336885236944203981025062833347658411661128536359882196772131929261956159126386139865287337766240704488410649624248227309598310864453404946627041683237117887168304466401506330749810699958731114663728587676159343444544925391130881515852918039052216843450969586454433228685254821530672908213889878639346736600921874469893904938283367599220191849256882570008999680982110292069507304450857033685707575379781915018067609881632195862400540095691125712761413598221878906793310355454921248472994015841142117132883130959483377617343632809893054536752002699211919822671639137542285137141291428671392335231873031056281792937786479057036204667733383483020078597775947185165198761971362535607500835732416851649065589731576510944088439125197836725601324719352914334187426788198412616885776845758037138081146823481784131309460367589384831198999658704857692983001937815940263099254221387645915158494023102484290526206966285143207946190159993341135257829659374417825650270350103690289302260673930107352979617004031308565317927751690578458950064997360935977489807969241298984789381439662397536470221834492869693594933701890572291983863280238521304499939396856650015836346089640161032396668403268118780828920901697854568571615071234727874378716912096614643743875927166636843380849569694533752138991028975597002340289927491274950724838727486932974613693440922398188793357716778262651534985598274266425075942468695308721147384669154021648173742958598276683531966659515591672931467737916618155743770381675040252078350418418724647865465724621196606179808145855741199117259746652441657294539934667969665687268922099574634601742216509012454003907930047196585287722826096392374555197469765221098157727233363547530254393494637565688888819837573797831487370156881440353078265610116044684043641780609019691234020040233569569878130107401951461196360434079434741407076318300264475255345965455727980025504523899634130887494022913344712482094950458969219462468433181714708216082924473518047375407123203980795363890830517162688145395434185251130665622590306826209733042375026685597641078882577855503122119261890419598834762622849976361710369428327908165063701295358293496496798813689732670857521906920868247358542632074984018495521070234138390979395966079330724238024620516761726604144664262810816493416838419871115990194023746074461348732324157980232437708711553212717728428317464800879936277271189871697899680381316604833596108180220490540301288584075486199954467865222488258601461812465751614856577635770844876258006334059654322257985052830071889662621012476458446376897536112988814638845663818105506045723976024600155899830945298753051219708950305400128423539738701055436323698525939452855733589258647577752395175303174460089990875623378408710967550939336026664787140442178936577896260059242282594007460701374985097249439577667393332014313524822974956083142492767560537451661874669678797045686107321844213002296158638413963570830494466852347773296018802936832897549783430946261436934373878484855540762421878527346103974455588635649351456863341944598419906959692907736975009219817417722523780830912435618220840933661086821128663426716532208112430335218425904920010696306463775781754964528377205016363469721267477827629016221803348550156937171375146833906741371576883901097554817979648694146697245612867309789063352560923795179946564608215368776107632254777594288714713946885513400706563692678190438546247097402917831112321728718269579361266189936824609813560527985426712129874324412880536610302186368704835334276118180993782043652710763203313254234137208695946875429584946736910025009174255098139789856649073549586297974946845152306646630251929100593867812846968666018783144083314503863848109716039093750239639173223767925308859325042319720859309480913677687825382107219749546679279809604212505991248069272094465362592268233258556444567369168574305889129289117629091688249739188004343373662769689745688066038028089860465457087037051926312265731403410831506469165787118917805615197004723740239211335468378341150995620572645707935470716481809791869698024289135179290804089651448646749120173071981623708945605629065928915557407801099772864038919492265201893598707807756668785391034767244619809134093763914610981594033656691597739197087599268862841025217741723045885758548232332702502211710546349950250271328742338008305433494984440806313212546218121052928136478235140942613585357820972956877790675339466844934520837091446450807024726899930811977737641455549544585344588156859750368445910359652676802617142193303257601955752663542778831338663585003555100285886658592539684668195571885409067080486306927462849728840095722802409039858505710405599508317263008844115158268268693235704879526529659807051534536859859176495351636896942020316185718212610308125507907904989657250389463203072717607512586266966975552951178956828563165695861403036687191931791814461194547288520450429501088506665703894462578406854418295805903858954000076397094518773493186405613526943566704340322971247045152306815227441634278724194967746227857748597761916138260176304917994973131509767831388561969620125361267516053337149262889484286664666851434541681397178524617706777480458465515344034604134319760605613233264723370622079314826253553376089097519984613606711643871143308976398249203843914048197795656013187517204053434521114534825921786982612736781264725955127181787763812193036953923869562434200619847918055131383244955352690781027245393998182663340603740917809495484610102960929840386943367282688774801247632311209079463153319149922134553392160352250141391987859804379275590237775221029725613522808705065373866298883167397846000777682563488923255004058267479633518140869376415684834469701794183734553992068021417833463308358212091952503251472146232359287053943306624862878542787202062473923610749513222947715741183205136147348801021683173971926996227770467136293937230596848240798875960874191692515185685855259580683212770033328083275904027689480168219348734187214320551103077784025111022148389658420630797191767621973583259192323574456041853294655727179891327765249670150959305968991347266679593359261988236874852567871682507565342067974639156978784661185526055385980042940587718286576993050198534616992537567014332387729641823789257251745716495975181116537785709473047980783225253172306722802184012806581050553650310674588842793772657833562037672846618443751453539370432867745561518663139771034247308938320003150593292773862447119527659893474408656620862488392492141341589431792349813376143184294171488605784402739453395116402499418006172481631819078705550425677398157650929418510372258296470628025849892545346207935584502052193203786970828633024248420830696921323375981126370032761258393080030952317087068894495097773338065419545609915831111277247833088936382042293170909504600345749620057992374758807311175593300453684907331905963274948099930756879083535143654060997680692433144872052926002881946658650086899528235063064954701116707039907155322450128032672706883046750117314079940463734163366426175727898629635782189968045982739424416399633251097923584053065399914105825846770017708438758709673406842994479327799251461101090453295167710971626794100669689154017021096788223198852747636667515020285404324741311071450391657683320906549253877927329934705434835614949548616196014898995583125386441265553907393364645643334017421333492953766248276531869847161747468600328660805373534247122764568794206882288223164813734044354234517960528645104521054229253343734717207061052912420276985112879894964031183623084427168428821952717597017680740503939617055409346844233191998341932216776597044066575722065314128111383734221788506132707469415950299027575986785416041033835451428179172522426615429634340566588945941096533837007947179624096736852546237840632203109145727782569225189566467217438422469279950023784981987882838875031670747868891477838486153262987613227253009443970558166165387505282874670244966322854998172854424307365146558797570524167395116923297209694296854147724143804891818166727433584177588750497998391630667013965330799984268908386485134679495199261338954046807147306545153450048933399673582425460025323219076660651681548524961976993599137760917740171985489125992308089795577125120144643131823735730938563163736629255604883764399219740992824617802179942980352275907551416199463841204206066264904823470343773232898960168941918594511518730619366648308817309145735640613046358118398861672138022439988403520517522070024788539723388062513534047583739736169993749884155746176014879073263094374756556229747101302208556502783869768170167159057302056617543023495821316065147601168745294446073765927850212484311614139144395487150362981707660200281840414514629427985084481830125308345829465915876462624614365070253856893265613096739434388194023063749621430220233851095544773710344449869924293282481104207762289578202578935816943067850433674996788950527165914215565817196853630156794287432908942948379424817169688214562558354697042085402909558234016461095756707704548541967468621106455420556850643220738528644154660582614216738479725701849797817978209752155327866631316953440041563855953273075739915502989003706470949151781780154034100475635311158064028290641466300947892251562055981557791831281353504329538796486192054928160592256332294037956519181856137618156932219590204246112728867794545582918763964361015105638752783835037536727718537119902591243669231668315631464259472574641667243264040943050359678227499511209329986502631393926844668752831915059235527108680989988309884265025466428179532697922207675760247538988829450179694567137203965246143832942843677411598728992035756775691136241942981845308473845695941701115256877360705002025356894851174696482043461329610343641417272674600077527749300468313487940717524875731618686048137940592872514991276309215765477351953152111027369596663876701276914147388742112522829732693556844052582392699756445174495197246036770535818502972266441189711264857486468512059652820333972769377583700666580321221890752636772368921427176014888282663945661418294600744416249929892599889030433446568887002930187045343316444352972962370221197912066172370062874417322706477189921967828540323534874814618808959197492364221316684132274488017556261555400434347945200611642309922326855067568744461720122415098458961853436118025733796255044604395822629361425254815725024509594039938716162634204772758988008791010854952588543630426440031621256751029419269034338783291934652070269909122739027282062238664622215133606602056505874923615938189392549742761271407870698542618368043887766052017273855067417376941411932037241735279477829617768949462393991053049818717413052624333419724824971396960971155172830422630648627742889572607594034494615837596146461632305662114758846918775621671940643204272488205800098028927909555976526377659608918288621133749396742881416742341729985787307512266081030930109113046772890977228049869532356659907727320085415106296682362589705322589738025854970362495063668706154426201764121722307548978368826373117443995658073688871586325642961051473436947995197517787663797259831295346378999604785393782787461414922652041315694882889683905193393479272207047451370474496412693289504120973181673887409710138173395897400547165440612889142205794345721140726654685675076972810271123850333277478754553302727912078333515695814350660201822572233832824310919261352897507467549718062274769946176544137079281467833981111427876222072455388172956888623473411067716788055122144861245607222160037859014477022752578307769180623529536368225241526326001634166166969527727509981094887304300111543196191116232672223209071349705139990262872088926408821244776315715397023145520638347909614050794488791446156836765525872828924030268684911633466334531824686755871635339218991546993343599135401314215786160434767477104062436922889352970371236436163940419143625527832017541671119649103802129462018404983404010485698918064908883683326839704728167707564561126873756860743445328380990450348405537835993056977781663197049864520812559206636883434306537592993116507059482081182387662233509462803639339233499318006093673229984375353770875698050591535660531110625734300355328744025116062779672335442072743397965347072637133999215537210528513730308122552659558494670383103790513406517677633527334940358879284036134112711118172239217445466299277432059721504546544260897698723688533342548416887435854113394017992075277659117053411776404805616292956520019043321130238174770092358727539248716144599193709055609086961633139340165591658004458292073134776142676373598116970234727721215882488342111242250513068898859612161627496749965630284608848618961666682552137488983843544319002249727897860746856025435838061064610797683067367644047082073601414868177462185466339491407440645303731667771171169505363277211947340085834813552090331260675117370048699275761948917066138302843955561549676919878141447090544815147483628272203541214547945711603773752045732617176007420172614911419688420186345525651447005287261217715369226866545900013177492988820407754026826985341454290516479024192733610434034509630335623750114092555407855667172713365380607136611075204279894250490391746561680821737814874806052560302330708863795748949895041993978888214944225505680384206851760604058012788674918786011408247337657707428312018372003125334937630906829870545952593983876772717344822034907329238100234681102114960520320449699856726875543440921110236040502255025401842372334562340072917263306758340041781838411935507436537196126986096578670093645576727506477457680457412715506564645858674575540021851471912250831625751412882209417948453521915267198820492224227749525739523238366035266401822931755121161508345499395342759169575132731640459566350468676676480479542810883078606504035043473994311533851369149335583661582845331529643635512613181891603851553194475386060475610441716692853000864387564081045482448207533952647361544693216618225225200605793707233025291077527811289339701401178629846543679699204635182777828919168810106961478271983030001050517709110525500288305416905077040893276209567243853817692551900744297247830234069783873537687784166777291897163149451619099108214004972578697275216881498072955707176278715137248080405168034432981836071115864312673930387295984092416477605495837119066686398716891304979693339721020089992380014559753452032246964559991470231988855152960621149356984245459659649962224405480967786350270856271149372186233784177350667198918730050477717629151234786368129812767997337496149864016651464961795669489572969182662675515761143455006668853304736970593689007859435108280620688702788362341071700446038709931560392234344042516620036145307575468606626227784984557616778720752167630617948947035159148240081858177898751806000008327373008861007605452888748223598600091746999764754331719597672889568302532581866534427516232357866140525021944476150415587388808734041493017132313158134692228064520797279487452924054172511711915486896447061827745523651897323689814543507431415424908439748215052146577932991893967260877513656769242036974412158123711209864092211567637541464436561874549927161512286613082807482951406914355015005260847378171151812646533372071721518985860351317775938049129146226508876752422036525650185892444646791558190856646512068730139792224764292395344505159938821300818703440196319314660084342927397499786417190567653985608089559083508953381090009085088462121051115196100373357293929379650964438162188218760780602557629887285210905987432536456600515479222001107562183060789004193802096944881200640853951347291545679825394067479151928794472578062626122987092432952627414924285300664590467171517634356159175258756332214915894366808382091890354862502193495468115033535384104194262570659349465947411219208673388845754533602777213081257535950224712565058555204958985204301234314422409860999840693336471253968417011280722430370337370889239753826649402719085878406438014934441972816846477237694243396421107294694327985178746808587205620875149983987572051975892501864724314295561023611826154763665619441241743351502030719623469188295457729842328378957974839703339770175573984641040440957425295130478346371855195188478826861772946751964407950462381834469693854947927081460329165971219721572900079329015794566988956318212267466748782780643231860654052530660328555520989101220090549206474699025213594473765398482155526911600243812975787979330527125348427735705576558390607600468057130749322060157333380898131931828956742696881020242892562476667392019852034289283865433549850579332315123127669938675345897880893094705199055284807413486219344550916443177967493225653522512185061396035774465898718601634377818525798850011621872762363880464162227825481103374926404936830195408761617269587446428054971813099437747524812589572076384653223499371673202855082489063239423461452294232501984025426694091754441828218613554361616057302402222955926864063898747002774777809070913514987403378849924199298061369835268444857477719772181527501029163253654724348825019737400103057297121302620402163559103154442968827022805342213112389100961227987161826172776136808311793567388383780473934842584716796074244524484991720351549985175557095035962968793341533245171424836672427865955792357678198937809092068283546523934130057131636617973939955960255383592572352430453712106514138556597621312203331803617512160139275220710367488696787824612754914338770904702128216119583542397827766277720535461828410473304039733925659770999592857626143357220591443930581883466250790500027054248399001032684134055506803255376958998624242690210019238706993456323997168575955549486820625827906553662021957744204806003406802847514338511711802490786541639818556373560563874508014723650512882605462028772833151275845854883335736849733432796763549459852675803751445960676651635783730457474870574947239913648264963083658133602439840092764591983291762278107749453030217229830096286048120566472432092168138670496011838748819566838833063492170510277341198446599922469815549979230958025310259005702141091751637760370464245265078733903663398256380145550049028387414134400205432495508261790676048818167383548458940626543825540218112368336088135054415043210562137722221099085633199434363849426994758497842710840245302314894321488171202763097818864049174189367398331795775990516586096642597191771971127589655549624940289888942629578531197758538767292051702129862733473485010508992173594466334130139311126568159986064338035003199900109767797891436705969762525087795682624033316907530144276103422020556641737129419696664542162629369807666807481301951502233024058891126496147716998724523745808474318078254081952636941944942253386073799839349131568272748658201409446221896724281476768315430931595348349939564937903621899096551093148573570384692303063212887611165299953513031826586708263809405095755423103498800595053419681279985284575331451942936295141829492197462878141130517679771714516407417149830015585991501703156655274479219848552587819868716135809825827968027742222257349965253624529150298962640678244968140415041143695480091398357109763470941006605163263695980507569757289749086303997566772871806203020005005005174231413688673922381370465697092765893558005209967312999486791011711514465052677718519082341246001630198954785363976771549318789154706142477079900199735844221617482343343677809751545900026333765912201897889104015048666808882032566802945375158693223528541765191013027536177772824948921996299640464925864217019426414624963530833765489133854234026387223454716323535925362337267934900010962308216970974896103449799785329163453255905598855296105403461492582870973519977422972350877975676106132889278169869795232120922534129997129836332233715895503864571376518616598298094929148862068165262122761790995068445962350986408783578689585812103825199876751436266398903933041951115751147950389258732897851194587687174671157842363157299397280617463252122238281101774501918798357690196757007775109649144074513674817529399164765969953219329957573565308595363269872912114722540345288291050346344222640643399455013928523244667638959017727301840115577049595806780157690856933247007024085016274275268998348847128556820097905361844497095784480381361685359954960666707112523804663618651565256096374579650069964586003565141957033218444829892483292647021068674544957516578510039584692728873465740589020068551652241275970465794956110443083665031297518534531740727972631056195878436084740743418926011704560126743051282603135612120207473040691684998437823410352074399645825203032245386223816892709076023715786299877826764035769823898985199912056965247586519574808749076691226462758668539077197786251069658972986335857136123559745789084363613288850740846951334722028131125539235047752511429098751981724513677528779499742151007704927313767856186334094065602709778900359918169421405972101295088457256656411040200465404865113378841784302062400996167287651697854008216664713806205561524894184116087693727784186617474537953605532932721050966264212233097245948707856737374778708024610853205884683038853307316395292859495924809345394080356108904990875140337892501702327974009991133084282175344849557517210783451607733131479799353203225328851733143148594996713028063928151102272754450337777672019500228339708016876267987116717601761768039893161381562464893155387207199370567283027639211833196915747002334811653427163574464391161860310722705085759250373317666958733473572103025871794031415057785751097185932989126534609413241329924895486725729821315016954011602886898744911755465815873301123961994320267190614279999527751093387074074360656869688911542379819586621453691819423433371160047585738755384516305384289143387813856064342007141116256512362895155025349271266647771981579872915750882908753927157670296280667126604824072369001382488583124769427058128559587914041623127337231549820640081160333890604062502250221269986096397244683033210819573690731664715806018062055456650631489610547043521286051460239293701353326010737887132183974114101348475026285435515840523520140925052684582719755887991295155637465297236326932255581567744881892842611788787932572812985099920335608145555719270563254572052844615506878008809921372541729916583679324463091087455151599559559328442763827002834990869373492221205225880861745723358948372353188785448842587239321335989285841285185073600450905945487248971868861582692065157678319068035095371375403177325038085213370188232948353486808145383655371020506642823868942056367248566220936966322973802732629557752992832636649893780259639130432417100120829071145436532775679292420872797528515561033486613285435001387071304891125488661948060384546293492732036215629515514183777492990784908739191868196943438814605994849642456003082655101278311141783207524014355889155445033749099528692995155873800889696522319827978866822694129590156747532351571820774864992696237164015649064995019783525159122408018607779292157238017237157499263514060958199121279035563206688963830883285739125059309720480713506023262735702060652596046476338487691433358739830102546001063263864327306244288585727261998236374011863714230115927348499802778870820591297681744590239732429392278381540093052024052917375906046846936538170086956218809871206050294153415230582358361466617303292085079285402856783180692970515835111589368444765612351708432713356696159806417411480160667085973897801672217957650210205528551522912825538404046630304250092824341404213129401802023183088214780345287483069984090257299376621293371117571786491665064429501412526114807215893042727117024791397605028066106253433576265599401302538160432992422324017497955825218350708383908911131291405115923027503693239967438518502009131203699305884389637312937641884809584665263662445700597944235564338824959791067358686496530738893907298449052312819248913158431013659568424908223818587883313595131973445395378136355292299068044025559423594450306290954310294661348691622976059751013800946625182879279277557638228537152911302242000273960920575295106250734692259234937497565739732460724558360759073835067570563643670078550008966147080068100170499822674056101305909143128706366193781595123621797443347558523471932906554045603231613425660674475168999847878542052710965269458683363388613202921966604544394537929263631469818996522243686123439743851467925558902936365498166859220186151189365413820431496418852473183913048643467816754596883960319771291313985019556511358903747780861748500448213099987339988967750815409303758138347235036460400123340265847343751614150724859511690258471117591254996321195534930570117715915332668058129414642649643238321393116444050270909394171436456300691337894939356478465305480768508649290087084168704353840362704390288299541126382641807479177261769883277029331591817430131352508691843085010485073986444389811038357393606620837016380515170737054910577476323576570363211887302520747795751660142210257975899732760753373122089936066437217402626113468865463997170755551687311731934722284722897249499886946413518852999161944429479003247852405359952420363339339662251024019856470514213103547999215343697709014291525228584279199352237739295874818825338295247968679176141489964186402406132692383081193540280853489501819111283775025890811817920072274794158467183867252174577314929751104727291157485058211569115007843441553637232159611381983965125437928781976926700647748575418315529702970788354811482538796173391214757928811011152731631441674120425861362053179072796139987636388364301778611246012431076740522278199619992933354496901754403590992800116622679573357816573898092012413307521398470485284307185727110395723061669885833653607081978194770508337540189385545093891299292500341971017287499069141127638361373087719709190929011871315473360558389864220559299640631046366825593442004936051027514272471438874580656290659477949653137986673308323161467785139622675225695460875166132279927001958040572675340912472293829510679599582169429752024861967272971740499100315455867999906593783785547935811471245600587674418358122873800375760483304319571462008028710453249518775716334941077966321063670836723132871441934044272168981087032094990828386653975764661769497750159034896391637125760719841097975428912453465219050268528021029395426702049800176682170028679936601772956250512207563965477040759943691637583736592431741976666211801029189174176266469550533798338891316643799577068057080003833555381191001435150750314849104822417720250375616388459568971784109761042243719487774451462617179535272421291441523677887350982922270676233788286116067061342455510223836581620384305601964426920834908347461592610703534781269750247341292432520136434042649195993635569439416745247640349655447414081258523158593854091070793104624698022495123467595311513805795270637015790053593801747697507057062489811577856673354011992136660608058451602847290792679677989896412119041033815335639032371648075232288567324768582950740339858696209451761745464342184652915323180601240142358559980566700146109332535360960798332616683187819543986023509264402699926072641708437262111892168521526728766960708180600257872698483867975274822326199564106690096596154558279862761030097085275954963854413466035183082189735529101303319135840549340943031392358191024690697924237953079400370073117751601538958342068003822619589511969627046642774711705968527205084945958351008229974772119484123048801629009162495292466962825192787992837228435633532555114012340694099821076797364896229170381297225760579608129138794012476110985699966332506602620032434473866451219996968885050929475157588557475926852299739079617101837457925978366887272005690351034821413253897172859100460718186094126129966420027253522747544821726521889585853953985766950976583383414888255689403775790609560801309137398635218217556166974649423945166825365688546676860794979411693428798535639034323488646960426787020612881737949174687314861285634562628976535174323604528687312723952178199496068987218621608397340096828790540792017179584796551166182655000213010108733598516410527540344539209648653077670869527655508888608057153316383335542162474489264618974941565477240839351976953816893855845479410811150188050672437340370132294592408618319640981330760426660420510464806576628303294230644189551560785772230613663121060815221236796372690811295029320698814099261722828158664490992892454826507605429348031836309461034241982747108200376542488250021166380101057004764792163136079298496542639518992586267073619278666982488283719013979744981425820190352435714797969196018128086444274791327536993722397237930840885745713672244293926476697250990985297419708322431831296519033428962596320636880236869987241871884981901995991027473620665833519631284221119847591092747220951783338289617871254292262448110043892681207423064736442440612606842291104404115206019263805720956501116157000730347590975138978702937174780278794823648851054465898565498345629362863624616555489625512073829890956902874685874369558510426387007918754315344802412272465285016382654358210695838340458050670130458106109516636222368975912669757138974538601497154666956619399394286272055418162098785971409458901289990933556092682183992456985444117367262138450894858624678907475779465185149715698835559148777060725863409760353234234458544612244062511794525577075368817444233884674330597214579706403970805185794019599011635398394291029360686285063931516592208226655412207504926378127279468110978709965204410777881555835134888024942367078092746283739640953188605908049406553143155725446881933683393036155979919720795315170904250186626561292418829736031561232375997932536667827140533288185925610908731251174480739735279706859072046640359303633869924048324966992487371144726138696080193392812861056579055051241472018826518623890439596000512398852413774234081231223915939323026893284956830905627725049600012013927667435525489441211872018167047272556325025207328263541594344339164546983004656700443175574444576416033707269503346438468832289823626242994736847005054418212630133798061665853822930978041551098346603122156647416684533024373682249426470553935201466601180016500065146455034380679000050344278987240076323122069664279524422844179394218075981373251495695653709089984244585703553029114942276775735430336761717015277511229177571113487507021695372556586419523856951331340710305910339452614750638162031730316379897958053161838459531672722705959242189293092381687520964883705731350846242315313344706268862118128034947421606007116372541574060647463338949885814856087611053832056144405107128748323107594213049042716482396468678777980642803111281940590294707043747751344231176476695468951469510186978138876332539669754744948253972148280778895790383776124122306719342522469175688454506276870018376023802701741653539095001648979953057044246995747818664654503068523394563324016020784295476493221612899455447646437714918980465743241292038750203652166964507362770761907716566552451620640622717289153495012047937887054082418850397090345936840882087254103720365087552975354688556927799441626681211872638218504891029130353532550303760490786367160779153480788224872298637405830082491969143284431996247656532909897216096921284641340052837418349463296434406196863309186758543724587632229852796561392089189870458390715798036786078415113497418765275026259769276987855921104375724177382885316029086361812463813413484715818461058359954918027723043670248587930850518748110233170013386540786533968568017339753536722638194183749845666622547779121472869638839038582357267641626256716791407550722579110074461018211662078097306000389893504320037341951196334012411036037253724085663591788316087397262883622554470330347472974279838188097211760211882464338917671486991734030141213096426846390150155071678687519794235422582017518074382528860328561421731641769604224115174206385648708561743742761867741286551219348686827305221005276044639619646018038020317593382470843406851607911590764846214567456706969141898615595386040536156201568315351560490931296000014491403863683768240822837913416934027685646022808451725133301196726307099147251311076689547792901802907433668160248397760630880428778765854804480385901597273569892548852546253652207989165359260322765302374189676579601676828080788289523905595224671451171856763014902950090150719472371206892121064822466187862733678858032821701278418954202817278676496820053838715744493555255589388161353208943750329690212406850632704101544261459561747780543994684074844874591844206005130330919528154130309006446738785818907442622839201175838047739012780094803880460840366158029797447484253376255570204553454030062765781981468642684746106880564814333765606847106549180446699807664707240261852411280966008440005832625477400596269387794335502761297213633884717297528149379579949614185751201103012328125369110063612962271796750701360151032940473515470053808642022892038195735730582132305713550533722932678555476492783410010819086581404862767753963831895601604718340218054217794324279687356069528548237360844880371856753868802887923214621319474605164582950689040010207269037000703614871409630916126312934287455772130493533348309008305081627247347282480989598348865917835144949184871951459126087669523654272095437212141569220255106079585503205229634520122034450341966721826517510630694036566684522011757245862426107233672048993041274649127319723108349451864436153468799326745080308844390435578008553780380443881194514504880638939866252463880866119227414736990272595614070602497671817265188150732910557984868955470329262413118731913367906660772483447919106523291987965765736156215306880664962813600548433408906331704637469803669952643958526661705112074658837797273245984657961911093332684151042456392324764461053838276507996557786025360190860171841990581285188555069967517211505556271842805685711077870887315932383633417404764850277790126380766805946403277789077583644220252422762294678510269652843012551683905443637322003229241244676795981289731733480723092781409591112424232004415709323757114061163990787398084420024847126833264911720456524788747891117043404092115305511790392205457225903295858468405132889211785678137577511123536205510213053651411120359769932482010522634952213100905073324805678066465231572241807945399255723294872448227790215914025122525337105860617995154119956177704526712215652440885472896165686791856501494349031484062849309084385062359965988299253304897104157289345903718131024882949878570369866701701677946522618044968612386409037888655241394833707268501159048875139414413870563309246063723262522412415055679618854140740919692951197637120581104497816037737547384880782753381682605522947483066345310105873971856086681610717385554930987360847499789282502551906299449354091502781030832494192182079265025648142278921757159222366948433222866152298039361620587890630888817063820830247935967707225022127834823597401226003839240624852829410799461128351624973378702145013286749750968219943594138464752268098969184580598358820201123073963916631804563196003570699095126138651203422775110065285920842283060721914597586190296549627327077128635155921639030991209020773751566762515499672988276885309987907084661712111430748457039641197230524257074894621611879515497935200826254462786377234762968648231329614537423653036639607426484107482804768162873300336081593529954851112797722662883131014217115307439126709568313103775044115506867467132126914141517752076850027963424307698155633993851011316497886519257370273563317812262752677352340103877138023507395634619695813139829361091340491900929566378942133673554825439921849364147457853801188268571754943705173931597079271305676254674308871807796112963874208291732561257151859495754025945790663919439047492477634921540651626058341446771497919266796572925929756186136746804223166271140616813375893268336923704576358839334202839085299311712530023340191809505272072290428990835861766099223407464817852992620781902482103970113090907475137560619413155761030835243174382172990815941753637875457928565209895095589312732628803458056263802544809511165157379655433061110708574801176353546289474364373648824041070925541319353574998455059911621103345305185040156470071729600890575372960497419243253920539973956172871254127679891520222024668115307332208864257204997948466075198612696995430227545993303131814425059578418541682372514791684577718679002523615677906258883709065879368024042637916345944370081244970469232989867887309241866269654543152155837248485789592147823785608321970550310966410597811248764052146252405711282520537275348747825946824449226782788782847008089323778227855250084251193877220648784002034342150634846105597663263265250805781978795034593051049239653911684323714078647756138517524649251739743769706267911863293121350600333173797133497422285489620572722525695458894073112453058813017684368985019006567499406060255122142242768198189932930385752479724780242360083395653630033039552029411117655721580410352493269419316490914095329129155360571664432145284747936008354048838145870831144077939732511502212984294881946647195035905922253446349461152350775091010010065306358736300975988337982817000640964564955785540142405332564342548745833375970223370604774178465107713736333170097835551026030518272121464815086660195441783813389320509857448329887493549864633574175728683935379804814504555824548275431877884931932257875691948248012300850713506804680759845261956229191089043223419563153159042710294827113249637423558095662939067047781214558665265451936242999061743642282449779230404793745992936652237527617165362652506655943618391020777971153313590207270722984081361310807212571505063351446678977859612115062044661104747032761765795105350514416805625439884092616147599065240268220584843941826970629508559816246168159034807986427416543944331560873352012718150679277985294613063666485960288693478254233493049349625110456988380826370668634776585007963775580536201029154338452061228313194989255882874830056512599379853709350403448491543973576269240821005366457225676356793018600551047688254292108950746779407802522919908826091393268214567792272490226148053143654558642582935748605678814386917420319957655723188140686187165823759144800246448461591401296287263741232719904455608252812194147044491328110212758533732949880330782511100442842407471923921747883607991885163445427319764513512368782057675245925158037293211544817607874826299111184354377576979892485497579582695793405108513221743316074290582178373441942738708033804867811741694479630960309827742909129691889985951164620414133953632119803631049450830511512408178086462226122847391955603025959829627277531606651221095678970792234916395132739456484678086958652349577924946757825613768514503473424956516863651926589560972376362285530477410544724470189757626581772767463643644425759801443416101074327047770485575502308930826314802948360108235135817232869532708412762554517542870292504638840781145084297503137959671715293200449260435701742842436668657465128179494053610619996019318476448072391941477155573982976316150807146798929941199495021209112336756128123423785066403895722608476799378405302696273389376624305692724413576065631972141399317534835708037929769971431139382103891504991406595699984124754250865197704299980763739575975700683239364802524118898408675276158182012870625437433419576500913603074080434924826319543411705755153825057760545473397908294961094641601248730618207310195757651333039773670707170344389771086192281286410997814854434779117126756185972146910319314088518436386031441486546541023525037445538348738685810994925556371743553810826050171269354234271619162861755845311924699530322454652146888209391662532072592900762978177896924556383567612305347069308923916055434999128722791447334538731430755479638037466261407383872683273539176061665466173632856315401620888746737968845282750667299249371862248307217102521273390420718170144998288673515430829036023822925675698340339564022108109131341021889625728282759422487198488242646604168626879471145661780765905894785196145393498803506674800954477102861975822331671320030427793303147719748977527411278712660258969332421952569216606718462765893718624458953051178494950780855962303555296683867069332043248068556692683791336787852288060264843602343070477753997166686355566018664775319782064455431297585120886769058224621904085124099070856181353820660698725541114549512926609800215085879437112665544903025747091309003734721017239196675591789022326936504590773210452502189119448981741034975078905904328521916952772403193354324150999362219332937104807095419459239605761927580972876660568613341547654754547421261755456506897192878969819360593096084511328419009115190782421810784095105455359908540193037971899620816522551810450636823538181978323715513741460290674787425336492352403081265038980344339674007870508228816682124050767446117103804830443850658235566085224493492381642871471474193689853286985354965103642780534927989294012486464638219261817199187847905124634727534209679753773766236821387036865411022760853967945296271613568764941224148744242340962104099862159166242574309248084830793436662812884319877514359953585882162179182591999933419920023156414646634995069054900656720769674074702463843603187065732246055794461220181232504541118472927538126126687941172799704536565617996289411182748874695981139385936746678821554784340396521863993793566513249679348993535893919883172972862487383553665334269291380705766565759040211229496457643369762311113185403301008142976977072226629729994276362602498688148926332553467016193101768520804236125373965843098644116574913095343134835168579712630225519788305799410676602869138159835207893558471957491609467962489924945362513160697104339541377704556070521248883381189673307880890306388928001107719132210026003068347861219421384682793254917556557179535785426880391629793041414943847426097760884950848683656818415654936070771317944323441699351668176199393080106158102018737357894991843068271900260688483234145477862305688922018996965855775724193273858157331123253491980840298739019690604660812736818772409604256337174185452039379341636460217933504355509777318113036940963046688719272216716091393831443573920611092095746451026671223132880230967373322305794960480282109770408611632975182423851006399214680790300949028529096502268973930224605362697617375184466135827770607270593505163865040190260270815684094338503885036049232778662299901142666456032318938673774257743206305711893144036409345169124383616072626533913846417231288209579249851526432594415425823453420641682394629450662922605368614620384047536232837628111247136492445456308702423371610345434836266507845183637366533892956749111727952156838003036297326846332902891188683669403418847319990475849285521269989193008098854491735650024091546089307005247257630668265174942136665426144839224420666564643076030108931760702216049414572901293649733193273856024292855498939153420139519653161759608478343660440332376994498188819213929688693911614508232189044460696695890205689343566256748911703133859131583049927171123400691000466800985116730046837302754175475957161675242800079769374773992306950382247739159604394989336085686012385097762586664971914992988293976731166322361600224306524266148239587932911727097530959516727844309932756148840736795430507266316773460207011471730712159018379569652754320572164992102618502943062290878231548146338107146305800155107877457986988988124302295556097985960038129403787315534584942933197120234813592791599661825476839461838660526016180713004798016045142008806658909959789115852099310339821848680120347983224605288827166421516848960446916938730980927822851584920258417528694005554395196232704696501930059235619765988650974617483733071788000654151040415218126289826316054924393120210432118434650640094455114365591168834415420397460777795134520322249993128515053833404371592920574675053982273491073845174043753262630190605332142822216262406014536031184995792258684089599993593973411906174469069746217978513815922724563221827149431149263573666441857162311460099956441375565900752501831652458622085461775525991062948731483976409034684037331458240956735824908721279427458313811283458949695762554315592646426879429598953795938187926367038265736454534703280363590487623231997690241125513718419723921797046792837373514765826046208473376282902882046964743044993146487718680496086943096052125987785943029072213214488688362019850664162376886007407619519459668820634110988439147013683325642526002236269104177478335075694650039910794329658553635737157921516284597517612789410048170834662856302151363378580629426512103498272444681931995276564451708514888379481566625447243661582690360848582936318312772659026985154783694534751598664675058457583246206934716200830591959416843148932023253760078199217929780969816664818253206205736199267223649963848043465791040615926880360552938132414402944830470278458184377946168416524897326255236444826290338485095677287873809852055256386399358268798833724223785469254578122833880319287550962610806892171753422579372680114500324618704545218138400400361388708585818631875842680643331912146892328022197763492140145421474700300210214568369851809803262747966903791113813834410316578936030781184666955680906789436954362773921777730981074106112028130543182980783065566453695144070536650126256306171411638327443740016311348761773453310804388239328625700368564554451497045321975290859501906521382675984520026311182862879642967617313612385823148796488937626444566298286587130419564095296827791012955897754594011438424706335187906684638643443564959274412144869415160550822899710076536095410884627792731678670705003233654522087983815740754157461385238307167634142490984909374469303515978007406551645558294039979855883249379191676642617869303123739434140525985616343401258325225693059097697842429962899690259691876467653049908270332187173862506965320886629383507159752712309657194805847021482990962675693275020162049082998959938361020839699760529372820079885848664490415630572958296855631007307191746378197386240236148653733216688891772380505164956941518241214658353730560679058681745238784705850845173293906034788089581230518918566945744078593438565108727221258247548799647187476699021728848433097139668499319479712531858891656360339863658180950868506452612466682051046213082294949921854410022017807901810502546216485583628462436039540572448298820012113061874812756210667080371850311526156091816063232449640448218616551449881947422241485778603558777522952854808715010388887338716204481283581288795529746880230963675241985307909520124001586837359013676873603048613659529241266164973887557030768748681551609797414752012036570334367371031180597525848712024320495932608651215375340374592354698081426766034703552535474725023021864736392125989882906587454642923508757133366056629899822026762454056716298859909337293630713204421732982415296834419702878707506685799093273502653423898817547721626847203991694065191522232498516835345430462128113923907532432128763864792744333014289029960584189206801061737339509050657485199219715835590650574480658083289159686838736947078119295465048941882815369607778008120371555952970641411416234044975142614422947713431080969509468479709953077630077002126991511422840573404681255354566569889375979179801865689280879785177717374788244559853430558997323036190606924268150477200341138121396924653974972733811507105935342182404117904907953855995775797122796447316049184710291978106673383541403868503805676837156932512586727708524371361491716604240652051987378928008132439794074913798314856544304884597806664148031958985410916933244661941850508766147971387629155574359650210098850230607758849716208278677358001441597978302899233027566714320923428757362822732601306656037941617903233518697392597135141890018601022544718805127441973614567021093871724121715706592496179431232870383538580208854098234728483217962461324291403075022401934522285944509012242763114417058639972723991362827859301101417568511675743404291803596479591818510682332357698623860154808601646845328598945817167669267508387146332594239145828827210460536284254108139088955031769271927815248296516423305769730923266801034030635196959958075507912327522953007732751113999685591997971738428449881743356500116563555343153718353383478936894083380264098194698777438818617755001992119402342138302543175185585335342510517262836858944573433211378380110099293129823087392414830165017634990901794319251961882055637418427950108015103375998147176045704771811970251158234592159016033625388225567742151771248488080850070034792727853528357969262037517505661635870424849593541039501330460731471870203786784387207969377124480409668178486313806468218859939305755643458863865820106413026569004523644660847908521572721615303368733525679194403350092681909685727374703963869676418771231816361785904321588890047664569541896606855871130192226713763082322655808491589469886902103280172631858266880033664784569505558079917922707667669759552385845342639686799977496281496772503211781583302337227256929075928144681763782727710174090663634101108143694031891727730278787757938777662761929485581881261975058090180204107625636253558647957909953102618384050466905271325209311472067118937698651588646680360964315819683746779764161732373582936681495906710912569690728832184526065693094457589219112975323967219507026735397858976729772835250284091921390963491567599563201572646288986566240657138097497554119172695073582167208261391978624164011863617550431939938008424023452435065076576935243089031101244051316732806749948010420970374309652365278508497944359710521468461803138191265087278790549063707788498968756478087615145040123064136428451763445175938946993249299063301385208556664790592751922098345457791416623536428485490945285582124666224739834442120086009153902531544648229965012930070841683395886267504092535252579192978274842098134841449816316566023236274130441330497913997651807383473376686391894454914908687421245392337356624141469599857309587774226615041893021604359667225396274235599749022883757861768475339740837393634735376644582487825562387936478619460557363314427509955628195933873081721425995250567490687125597101757273776479269445804306876215929834791007669304882396611642731945315795133793900811522145316789837963723840395467313314880037194246034241148298122088985083916285692045124526312339173379303209096438297444199967421707839592744271149767829844431197087714931896795675871197568337758240554822803589692741630816403452271460478750493514482408856715121426745072632111852340138516135451111202069696962451886820671537940692159944348451480590038320267285264352158785727883644075916882891656974702472003960031405410779544602568125463195311122539460394455680237876935989601422565592795353023153857000013153384447203150330818387292534234934606996930501284691071502311043040407840485019489205020651869793969114848313673677574991445825704606046990742777654981076068179972414111549201579302821264512867329173309813416267790777696161553995276891658119189773323183964678977057105348510244028819100971105655472827150363236604684776630509141302250990515091425682323608838327794765244252739353231269330403217048187435753103215212949567379726771205210485447891546808551816735673426164176979924724658163531051058270318935387967971972619283056909360492162170721506231858278225927082537585387271319770798326432920715264979966420625420737607587953326880406893250872268139818808739913687777511993438775230477350760899860412102148684173552411285128272192263582071114969575488197520843079206843271663462623542421877302914154709293172781658407040051116313510141280728047963313092744922987502236459363809906079115770181249842548131036243885685964139912404703700093757588970719926780130395546846566199372731545419968976647539836845358595260478983653153180112844646254178242415547851509433097166603573978623975971774055014084456076184493372960243846694284101776947702734469242556633309077096052645613597115631391009355780560108012527855856580384546201504721663100957116093301779688371654933585802005226765887935283272859208258634808065715584467792584095320153814473143002074197523030159237305922046280102482260256722229283175469872723490340163080679714556218561014800722337539587306822168096776380680068771924377499544931011018912378912386019711666051545135319947724240882094109980779994617819035004371918254990696601609891103036002834400970440248456496321753600425293830266161289375116433715173229699515295661607756745585824431149134108517829480180896694588958744715139565584155516833892160260648338535879312717329264487584891763501678760703514706467202825800123685361975912123765209362825935115051163686619630088823225058901188163459511013145883534363767079251103660970131649478312133361857736034277610265075696818164741731505862490157445122693777443434792688426087214769932269894844590232075411332284723324723200040220397795918100834811299801416637150527280644905588610382134403173625847427390264193739425124857342145265611837656829165468096196955163665332482433885347786781361636817607110465599806305958308127064014882527060252441968714075138382415193555462413023531600140714368991755550380199242258882124401025926133095667687362211990344625897069078719257757155443821566323944437840288631749154170795650512608628281134164275865684280337397879252337709615257467120765206756290462969004950678888300393297041652816868456906361565440429910712280823161963464248978686784420923118722050073578478931158243113777227096336200238188856833517374667848504816697314494734740416150613767941474446058612211089283919916720235020358035084038381919429353327621170094738013431951119571851884860939656279500698372383842571942123097323512481504769506581094874957626990878375944034351536797524816382891670889333484341251573767857146614875666430476560507715881141307199563616785759769025414835121459577470801974268270896809046502384706895011258048351992095088937918826476583245572685612634534429808915492771066194017927449589101889828702937966047425498952145309660136153984748404272100577739155565814798007885025983750428185944149560803964746491507529389787066280238051172829026686525509403671135908613705567333575778423992776952541794648790873210251641732687191567299254963929590256820051285974247085225415898440402921544120337255035946547408830204915429820784342761295162202196996672015203013941727399288433128831334413004842303172983663976615506592080911828697657497680405874746955219444909406866141825714313740969252700599715016650377659413360626484576311806309004154746981015263700750270175975480913622108616162737919361978725474770170418917723414384660292229705154366539570758746685211571373349038364925588992180298342690763805990682304691641351211649838869440784263660789077887004397343550080913945180145483094024794575731102548170555475100666385330030203884074612555569576766773768204825184711441122613452331866109226593657490978172187361775530453009540754380465821196996691489395008205298535273169149621991497193536631801173057754004867339199686864295388140937858667112976482498152119823130032310396575673669929601205256279258509837033176633637108533265693772086927078382206614293108167735712691008970126307268396123211017272546698330479079775228467954312426525022419850340387120657091945565601826522687249653594241346689180938205919954091122223624510295309860304715073670144763746420479273056454346519689295105875392310010235515603981094386279833041429224588357258986254660986077684701760533520737942095464333662212374504070773704485146204000363121610287023882594096287720274131769243219587418582102803250392829747801770457212929061023782703379634104994935769306824014425563442067413658606720087167155800281146879862092538542598374035158625190989397686650872622852141657169236530128917309065136583976939697396435056997468726391815330870417035145435705914351335372364613931356306353720075636015278858778473946381306523945942028855931804130412421349793411405268421378554041265426849503822316430298534320827905779055533934398986064811556439161337358713712371179416668104706596000797003300096996117258813483603907418387311715607622344266761114340725609061964881999110266740759173526340544962048873071814343740143089001927155786359082538122049331899231235885050004310593288367709356156959219930630018441158109167687744951533109289409431082199433414543389344791241816055041022423632694833400775897795975299785726786604970766781690849793756285151405698565696798457946879353840234859383173376233568086478287994719645929760456312941126371726920905640914079427647830519091982192000352385631127805646552442862911666779937438347878769625679595664028573014263137361006302753747038255796119720578934341628641993359752219007456357279547636073753123159626437297558865200276744843847408227324244711327535280564395043436646167013737586082041704213933916513548485352160353911895302527150968965258130068378299849800213010039888769769426747407878460458802308146099220585454021746332100515855710004133078846601169829338297866787897450654154761622389212688775102236728169274672520425124158669127636375814058433962414850836812274441232090645231820134799367576452639028078097298715236696051676362277653716237232004084210615778650872508072694064014137512752504585905597875807071887569508034717796651989340484051148697618433547877145481236435775431168171115116878397964620507267025586637030409909544622010528375491171082610915189033034455663736102310148546896889043887529462025574751602676628541057229776353914495449710723028392990079459220390027341284226523253867639432316481350336383236233224843012601132581322924650040596899409245204536181084218674047461770086186617584186152703410916447264667695327373679588624912679402536148246475116049380533117451778143625032914175875755384817660132911827940016183903562107264498833991779411735576903539182167624034600615063607516953716783495585326583620710225899089328490708799675351780942084405409407313572966628088134484986190165519218308659929541114764032707615770222453853767321643792987086573432267007443461446230085588796461028813601316941317037367308899097402283366141592503422600372907481856532833791718299764973556591852021205229360777306443219168278902109320933671746625018854883581982756278297222276795366390984062979168397026767822774465766577945314523145687246864760479927984336926141810896265021608888870643314667307151890559790595702247013360473022595613365330850683406649049154885108468950735603880124687653049343841614102851199086478877635180437247237375494875000799139950296030070259854826302370334342983534893661180556408358913049690308484487265660701699501091928192908562868408370049796857308674952727792429271777139923811651296264096382834133120378572691145587191676103536828834757683858324460358842840117710906223632440435116084510843491863136729601371451587481574263191623584158092242217953994460750286100423917906767695709907498452798017062166359654285430739712567313689471449321771819605847023620827232270020665581902413881462475414648514097633148251036486137241706387266677750716284594290761364175610305390071864967212116054449693679333539556966146418445778854128997773529419270012044363245393986844246342953159965176632514447998215161745076911887912814439402367604034969519620590047582111154677347995605671952859399931720263737206061198708604436511943246511455608272833945997248499800956374405961228927165275015007510832236667660687974691398758753327381991174927187565026760984166910399523190012440092000518007454621612207469960859147186754612999431667052012076704322287521137709666077773422781362526211258706617525784366066722165189705583028103188597397990277809574629141914537248974598896301717855771702472423639774213037697602166477546086329780266834696495081766831392653153572211232904787716942894672696979984140585152494977109953342178624836421693727747226649723517218348382008049023094590769073836607362784804886549852626341419427316053107459734561746533778083182460658644685447455680879345440145901905059903278703830154261329589685388602474999310417410547465726411797136108566150820272261623796568705151158497695458954215626063931161245881948752841206439862260585664897885400370406834488895977943253174884768855246608746699221952405782680584206367613456772926909874913601192393369004515720192324495313953543653231871208247003746242909530711504065972939121562439224132553474812199906273571810817818720828802755969814018070151533162606351638418079853758650513237322562452957723980107949237626063013579627881242575476890376165740363579747237339939047191611030562834273880986853839662087432946775506765495819182003613047952248412223803058125758070164294564283678878231231191263135442297540079980007883384052788158909034075286018362495278809170039488879219500754179604879641122937892881512811517143922985315382849175401747675984774365757740790468040213160478227218769428052086075507830696435791100411977457401395487286027533166510936089706017776838194402006595068422792575650911737855966395740562318142229646434222951777903119975517959254270348075900802664555354390562252916806671566611567218057333542940193916485704521576259518599021377658993836438344283357261827032350436211345212153716212853537153983824490572715883225847915301486783387321835150458278909382653445395116152239675234378044168378965419914630415541518314239956248667196965203950536291139915290535895212366080638723642781050660681672396569923377831493094114465562344380634611032842981641749021299534817895841912974060211554702185514673883346069767865998165815917569256748945383286544723898199700939768665524477322829205877888335451388657892827447513693217781800709959608490523565373189899118809894432600120511559747895196141643098474276511174852724028211975539784793295265542310017639114712334828451579686302514498109697454824593931633195057994741080005201161867308952176094084223550162397450015163875134527008194339449741935952619696741820820392001027075860650466112490648519066077050070057699278015053006192797868913134724313937387851163284240901549043220192955841487100399069614644976880815790465618270025085255691507629792238472109213224107195921245499961556670586311518847913564842730006328587410321020594080437933240522148477518883165718580452793873791499392848755643268425661304909199877884675546415451307489388242212577653782765333366410714013256291889143159223979291506570789195481964968971498537343541498446304243531950714350536913315209268391509623308278273473867298536648508745675850405274789810294175357714231162545251736914413898568777373058422256612919027057099139808086023455133438578201104679818400705003855567111218878947638493307744108069677386176002578245353200529417124477220736835264822350348112788704699267436479647174420211057560219087209987886620341367968356652144009546522528421207020962753824635395503194859445547086713898278297544401785001152158387044334384572961954088610988929583502607235779348524542339357847634744868854327194022563973996588890753287358789508882427044477540933332464619860566973602672814448634154116498053565356879115730242839722667724388579283327721609196636996233787813563040295807790352472237474450729638293097663985358833425348662103908318482465167431703235704849867469361026819854579627517893745924280938361584659891169474178898037475846871764810701275152180130832509797174364805176445902954915279157055488992021416245752938296951155140330130876652380412111040226351408618092528982430712265604599210013490200794894931761454657944505320159521003514355428125897836559430739258613420066815641232324205057837732753672333549033179092286878831227254502078664183864951152859864419316342553720957754249751227465820537659438175154300154600269298690205061450603999750723528553614192844329115633598191367330640636188714685386102923535447729757046251308845371580090334550119764332011131178245255036258644621239026023543268075204723438868707268548290094622713759539108113695477607455927232174623245348436393932408116073481282950850235974108993424898541931877852109856192280196478717751323363354012393755705279042210504386795973004396976671478976802296958273881081804191998418978566573511436301223703415029129848681727745081088064923789290067870596435812394082474430871328663396841350350589051395896640354265125723541974593224906128670426006084237111722518378279542773431240147385736768531029343213843095499936263993305880143016211901350470351353484534185393700272076994134338423540555922215750588810381752854977958095808748996762334271440394491709164340416535522633414511964918094784802986649876480039182282423782487435044516107643085860336303656388035233395331383870744228298343479837944340619873666029220690349591416555258991603451751472391123502604838845154324098204262477762157020137204893623660500457066753231920246258052991788406756920546934347756794196272050978499435149859683802817031355455257655069133510079704358799042975281898131946158346270424345606631447996296427665536779878701034135796241223759851162679107977754465082072105725164948397727782639367686277255754262749126415775175066118372961571518712844360255060098947283580099153793998385593078630938364203039563146339044634955768663490704932399698150904168699610339133055028792033332352325584717644865495365990771052893452000115692962770461669472989971623253965082349089020057081062803000332651552763996952931387112750804651973252242663466419432669942204033023536142104753358003658081365004034005220955422693129185523016879683503474245239679139440733158811505703834469405216522108885219456768632737271934215980597810851322818613377810713967040710878714689171209054601746988815343482603703154209140448375758080640337654328002300287443667648331632790212145428461470320362195931952930174300864721021318315150702205312739949308579842030043466450360614897682493064435587332576405219974335589940844043085628550062222416364539587603158703033516483641527889909733759104887943969876058370800733900464617345154566288184528303813339298042639249012182428135899302069197287099461990694846800048124474141185892189213916804588093029428928153221065272507982479857244639364764209505249418114800438912054384123383893521381631177282263188409716742306893690792868246443351515201154302661322386458547221526370870279623248673938292737623716420866849606868648081625823336919492799708460332166359446295585086843961827143323455189512870913426210952797776632074126608599994766942324364046129343640960404461692063695536105984281197744563274614920127523126303437860903196318337634886021192479164995534066642242749179971359911992998595409005480631574683351792995489106418422036712314147743501189572334009784591248798719777926110828868431117595976101633483860693358179811460730276108605386954516592141910517204732696410932197663764653743776287434312161835275453623572719112298438212611712641888573768947584197208605743025633383474281282218254917095661017744273715331736065647804386731988510561620045738583064926781762870692019350675982500085302510269174895941388478633798653550498026787263081398721264338113012089895693576915176010698698386833129332296703646116122419012773611590926715650620520420809291544453225984884292999189222554478770460206114155830937500344297467571918234609168812574143429895753245593114694774043867236030333954484687390926598474712902946820765944975023244392346507520949360573207503391743225502041191303918364587167828196745334076248127429873682577109226962622046427931221547029456867135665453856270738983134289283601264815164966691835810045709732516645681293834075064995295442237382023223872340614160646215673113392820990083312238659796243414197656631069336156480226011091829248908540002416379946985275346232368400751114092903175946857599883519786567803869077766772185181042046666178035784868323856000422430107480470629536197199958981839083494165651340956947023313939414071907679906156184792960440185073846948344226546528439829248167070581698253273151768708438244748741587077275576133876165849910889590546125507133673632121330359585780273136891149301942362807122460516217311311995140019275488967107954971583064123259025240326736966144940358653704686651303446474729642258630768492245621017734259326320854757109466087595534808501486729383788779646022256108248974667006189723280946738313203807042599631854777368489929602898640139418475036703026558791739986883549065784972108974999175716402710792842604256441346555981775812424176629403434865746495584070768542323773178832377496134288871207837433601247700511811533821744304780843288965374034772912589974228046258398200177789128557933344577812654966477065880937195849133151162339339101468836284937465227019646213719596464000928717696785461458423807294811492963926868334621088971015248734055741597711399723610519974144465261809312410603295719056060611043445989890721700035350924173986707815720716487661112289778725185658314208045609939624077291989222303547495559579340209369709627058942586031139596355550281109752707657422530099556620038700793113880590430183403631433049587321485074670156487971458340034542252751522142512482285200185320945659258005820289854249386978636684263877508864690381465669579733493321142174566155010530797614088581611194615436560422798177220307113531129575102113283160106318130235435488605199943651005246781398015605906474977933105804877862656556011324826481742961631738709428918568735998596404309123877843473316269723905161900906426078493670944609940253938716173047341869557674890937636117231107357472603334863026312861430983237439714188108456578261127117978034287056579550343428313247856141065332108550046731223794110236926475824594678024708178035932348683073011126875144860065760375144994224187093732242699510437278267273308385363551962069813573701377629905554839151341389491647880333732722045196274542755999333912343273363710121365250571157203494602156833170001383592129213933190208974635691601741697171667114942972594749022711580753656335665404951672120359723768011974041295749673292896583312997626106588722673267493298861302685600714078094880292135554998135575196461030168097917658048444617097784494438743113726879423230559201970009899467061271147710812526476076828105509379435650706813401096855608644569322656305125413531310016867042213785103947012926059565098215820052447150649428942838125038025611791456310450430093309937818758648511818132277326637134657706201933667047817738814355518255189027821134110183673787020063521427841176966018621203858222621770684853517989445061556730021154387638294209088567911192436433142407956744341344458849161369513959564366361003708065554531577140758672975042454072176002106591460361936293890845284138612657207261191372572374487723567776210728502688657340381014620944547213077997604228400841670337483972797422235947918882865928069887868103775458903528485071809623998018595715743948553206255463804954473586959367441537855797103016879147616265972066806223073679307701847878882772705250394664927072543281655816277271648547219364186043081296517032877798453654552859309949492138068563662813134700746924808190220132672432124613944536497845660300563690369944241464600145129409177902727782458415906053498726735385700354423373944256395417109997870414676930212203644413868207601409253671863240308491983889713525189403406686119140620694825486649919286281712379303538590347546067332015403907804001045012826629337033858817953276411713578097286689310933421536487809154112512650879850412367639793127365240384731633212381450925375493376078048095266094402610774869761525914431473066158901589259131226104710257111611751803682743328417038353028915061272916958981169356644378027303904168824037638234443153457752286295673448820517591058845125527553116943239072871835659734164618253674717556921061868282989479804853625072346113774519266349092577540315053887677913479158586410014981717006553211612089238705289243929007373615799665578845508061656469174994326737376433191376378340066681715426208953089332596212787331858877376032589654008972903407173406380201102026955366011737038241837826529385566936083777931544376690936901574331376395782028155239562008236821093130362159069989249320240578343163711364048900349157662001007891270784099058233569714383266772971524409529882938381065071849251421309264548855834091911914931732918129368880615465305859654924897906914031475972542798007173733759504366824301664952966325310374666179102891093464816699253199130429810963678320366149303842135172651015701957949868171211521412812429426282064822352159456880328001291966456582037116599559800919635836683884948991918736924491862710278209158382607169267254965887477096318505640554496543837208999981314017562676408779018690679085365816089243242051732154126197278490023397521585770886633548619789736977060954012391400361453469673741854717281758094403588381897585905922862961771354125856246482245179772487060170780807273190197143031457987829541174191243664473063506336095983831924652832997119414251845978336988965038184538413438022383039928175799140494463101151031152622098739294747159560536026525008462239063586384095448586494862946810302574155135845031514517072381841205100171833396617401903455717123751306024595406993829189324702064209117648544248825033572855347277429230837044887390922286305829518757266654356831004188270144581480097109066588733956764808324715411704636374863666734158733257100343505558890400434678028776863164306542905847483314153771243579370935682977585674175928448500621918794334258376835369982383917167767333962318799701588819456799939067674449240077649060573448114216105094163268247559488653571251827380899461938228988516134793281572541244837085672782221388958760687931814116589617045967252271267790277110048302601823445592916742402264118584190393545113408535220402737933945722183709152371900242985297751120275946912830573489592118049556435085893966691400030602834108133187841109564682612922305381960570691251492893310699876668203472721872947032186019710512161751863973052341321797693137420129795788756986681193475357136822273985063594311421925318057378401334295505312343290564815896099702056431369725136442476326923419159456109337184341908321276350888199333077171471206178573288457133723265532320370972520173631182554740012233280244324593512849504804192526991292616175460808611105830805916738917946584701426087113652174517148073353402158351577596972686578217131441207870096670373822633232668341636146500588119435942732366089093552084192313783692540760447628273273979489191112291180461480908045507541051349615974605503845877879709004037624146529847688780638744696616942210280807666998336081434486066525252558555197939063095012288171361890202625338465871547439923017088797002295579366475054199569295885994216774474401069736454693788919615703062518649524833207469578804445233723024584165070316224791385799962762259324519185107565926469434174440925244114246657992641193001032203318989632277772478508336083042194674636544559845587786062804942192591087761877779680163975610565073871442006097192464439743793475256532062275469814582019351719552023415784545701133639343917955491387699064368475426432239921480762396704169534463386709625497320805141272601920237281727775487514752777531580915673581002933164745118828864355348014062674802587619292308502740677952740250498174046751102748892659519278121740068136925016035066827668945157916288106513127604462374884090868222530997016132730335579167400147739157269826745600118534350811170502026569796033880553762709783313931699730516140813300558771743251729566019341723902393707239380109344691175336343547330752796981510929888962789513932925636212974921049212509516118444715750073249607503908362508123693975797995836783763699803343292074020229243992701341918222001665698957021595229544953913630659287579395864121597070596353386150429320727388953541640758064165711419617430030730104957733828943491672641252738416926503342836790778799794067491735467731656180873543337644582012865759281711511404715672923421860742497927430773984681308857287223699058653664573574363510298176927391680525384734294675195904741682296841586755628771053979154749982616624184682183917379050885759431393002477591925062929247235607986692962756105502723527089293060545284328444569948919161315255454317708859837989137569257169956766863991762468774868412498932666077947869270040790390797856642893936389888507445627386375327628275845516879961072090901776997050586862219513583119476632009387364997798548350421295965831259407577910547475507454589161344307985471848850701031221625408426740328545606768486377930138198848934942362552432040548797316685244420994894102603010680160843500609553465310092586131366516483993127861673808092579080015444035212588848797111725439949544679108677186032583926285274994705200558771681380224955172340438109928441733340642433142280428323974243786028219766625649685974199936876457125510396936815367946723726171671960212403710475996688175955826423561223132099017439931911503416948846524957714361269080263476852356908274973758793070661246033034076620073147090977861126231511910001435953093837946174067716060948881846480457672450931140207926831373534180115282860820329493733481485115609250845399410607694587235076355051774602597712157867166157540774132227523088113932598770745353083844664382103798241091480002311644954404962521384502838746114023959748837573049803010258735468480966323460367722655735665483038244285080224126737159664631877334610655233445997859988405437248858366404035991489856809248533178939345689091043639145705936699330558403530960367928669045595341551131068545464599546048769490725118258476589034449021452525252000087968174891218726463272019468009848391887464295269295987834033911331838630993593369443754790148120986065041953236238868589628817397370276116139896997610664170852655239536910454051120397595010462238766098747602498713430810971412999503964720542888703037486153960807958399462632550280624560404232710398819736148760303175514115310117053606352803502369629316383515002134451216927320722390751263406455523339024671123126087244945432792359054274610578355089912729030184879980687901757349007931905260700872390248419709458800376328753472488125435456950925867194524027227518742129952701002567973992640848847429457290860094641219412250258009107758261625830819488251330380768612947898734336096121590635553477249873897277711245687413862369804099295474979514152049334500439053707127588693062065971043490884189577509401583143208745482742812814129980403603216741429934141120460635875185488260699573783406195705726255905090863588945289477579819870024873784352243200671235307101759279378743040525850737603373124505729714827772192635819856218307454470876452419953005725016311445666763441161520288063089275185286734392790186363198805062040615921557336588597736974232622006235421461905734566049084222228921307382590088831920137702882126163747010757255601959505745194597226984662281457531581683764764376348940869280442940291862288132839067554312921219778472302710744916001275298724533623155463668488513332726948940034678163920714673500597996373089909188339418983781148958505909375068744789671115487198355414450125053096604044230627652777417269626125152223637405805590433955599227452122311112197552033784479884582622911259212290626066281366105595853444159008311074319981014031524400415110171019750834061399647687287601377324500969717749062313305795842172551771341611887456893440370583134409396486325225941591602418998498315020760829007839295248167581742438657265829706504216269185903219606082239121099441232984701861050011195197994480602024575607210182293985007070251125291673296607487592309753001289614066959589445969923404722957868123919926366631341081590207685751782318609396048897620615801116333620727232800450614070849617076485726000309413275260309588345816035051762624299632826885574649417425239659002286654018413958437694438787227711892461047609316671747719734587478220752009554194847234419960136810061745102895272068907071021651224049977688025282345821716209972286439727960378967488797060253698944221177379726245953292966366581527328666627288389426782394805390102542326818032117941445144313417488044568703340965961324712757534085439429326395440601900967007640561805134606671861848575547885328405745495287978388690373476373375461916133457349590978499893106086088886494406460755713893091395651789745381283808670451248256330093026915370905769363828092258663961212800843839727686205807426539146901086483657138674457082989657561493424720977698366364778452748481776419211917526806608053510393829929464329957363912771987453276805812399950960683085258136805733539591662631004611522069630070512981855113960454631749322638916254514479218976851681805384151441283391209803102478777347171216127284070545343869131696266208899716446803334583868127577070558273405319034553906116216819083211304612727323289128305627656031981623571018757859898676742167316236680760830756123852377955222287964134180165483944719801896874531539117657523082217081064756918532221347937514334473886613194278949058738475044155287135313149241226350883223536302332595991306231945651056761774122617625367424116564104395441870631850970574013660719270601314090709231942018194706405169875065499900786701569893806593668128899339621260473685671178187636890937184112384548600666993626145791237675169385236053317813209021609149060760882931426214527405318828602490195846545733554512877188785633934504020840334826395170252366498467635055237599773355666815522068036717466906007416302251207202909188093668737283039722253100985198916419985326332252776665687705817503967303586554071391626813087850230366213722451891731856775352119687474281515343161745371007846633231148513011474242010886261800125575321319843706096494169579825026082517415407992065251370017219577619088937417822953682657709235246077496910859043146861298933783570815975445196063419109564547431419418498342528171622711332460371944059532832406170455022355931533718857154436036467262350989618158300563959117663003751055911967343255431474977874857769452426611650200639381635442247718813437527726021817642160226750728868825320557205325668043770509062342893742142347091951588015181540603008668154105339758086897763825371548833719720446262887742521617760104072476893000191846751188363639656463230667846454074400952682145607818263659933836069810635460214252540877888905607857985825778478883828218286574673913509504812752256936808751979392532734982297290179241644792768261437684083096070640019135452644014196940305149698394882583910237071728096927891514079248170510477302850405043072050321404967684730363776387201865572854501618994030833358819909555456169996390812332293453573421778128017573402458893227873477893537161627737302981838136549235398521504525339897282832130374422511891193224652495041814795920972661405320752574303048650798434762146745749784039914124302286961458535460688023141171898095195749637910061893762808197814193126239707776676821250512127275442445923634688975649535617177439983708307824171024092140286377527845086278420916487160902731099584060891972731233046136497996595502127458853093703950145580554536348339765334362177323867451956456882601008245240872021630560124612648983172697571802107489351629507370409120275848393693965442951991508964567061057673200769164421822406909110233161183132161712839194872626726256163464893229001612389871209696901060319914837843302319002258865920804625573083817491166629023130245435587905900179822682450407414548153517239196105356565961758135478947591097596138993267948422893385222273093997339104985338978495853193724650160089869487645720848544511715709903211263317168130147835507452059868868568008856402772699889312404862700910097631638783232932303879511079455575205084402323139343076864353377400897148016196765325228425120870997642754217249724825967032951518526444006981520036787087006352670166169564934338584348959545019209986203993447704995471946777491018191402780599236093888303936765935754532814121791275633650466904861408964256850119261203712800308628439604218425144489715601098634643488986369004640998927613447533756207284316516732269459141766979066075439876477473654567936644002768762790531132197962257756411251329725926052457058497426538505197452384630100254947020978927808501839385627305571729766359031457801506453561946519549289467951050013431747319756847949157221731931301662732117731891786645232138819932758402311913997808307970131615118037170524396197595689041567326192457541512555916849710955858184007756384547802445370239431253394269961152899876260106959137776947925556181105865572658335180451814102643574728833383149244071147261935072090654781311464865705185002144523448775258076743108671745898301654863712247740965722027277262545499213670280128801192978367509370856439124715276978328199946201185089084805030414188083432277950032452870225776672338296145514359100836066018827783512359523014741946179676147830662366186864765706841155149801241760259786687081124553554966221000406222134695013346430935532193033470073953132320526149417423626621967779140999046570740931047571766955409032634702201564168964308730288786415920103786896510058128082288182277337032927725315490875712750781798339625818594951374285365938119366187457399581735343121836927861838307060963824000547485079596356091919787933189635441258562315882091254067638478123111980573480845979362055521951549239398078696019940873985011338032063565484660141929006734342914445910126862867317593695058770137474107522197501727341138869948784399837800818762338048838430406384626189896369475040759315374664494818514333372332207627159706983305037164132614429574428063268253619905765056005346298632675936194841535151547460308870131310344555974379142379009597558763671265589966726850582130424502270219403226955522792991440405951956383015984333336652569243244967409127897965831681087437255683960381813215722933343718161092929575416607685378255857636942739498787330923485353718583015299252563795517590511770079845773954449776474316663004249831593342101798453170777995637014486553003081407383879784264856567511448905749708090053115612806479775482750685205143593077100733737723108312619680638046488661513781276610204043482954885561813685572881332336962329499057203418684116276581563953881294740716301904759725960742995658210203791144569973042525777803691498718476917579709228181791439581660623017427637092758119055003811439638647851120126728148828167422611423551984853045498960928436828030604399253666819390421898245045766606458139375666212216196068505798449367361375416965668593771953493451130923917816329073184748770278218754546859414249171213270679758730755535404124295372224826334657124690358087758695736980172885436919078507582015300543783053032429185772436602250570433911834753706158969163129856030510953508655885392640986822973044642433976771049567047279938353416472407849496972144384826000290918312568685863392540956790347898647254621260149444345336491782941826313937853031061037674734964207222832071601194164307849581753583493857981478655725057796268365824909459673730701631303345555363512226202794651508987277882401702881165036386105527490684171822322000586220106768590003361725084393946992928797820358332621529761191590211043069507241064646260754421809352696050909888036307056729039031755400787096514510526867514057204384725118630680429543885537836212896654867459419133104983444376443899772520970275169613932150554909755774932864589354603226555868832075347156221063892200491292133199727853945060768213081874849829556997880721020247008482609696335808873396533353121375826116113512070191981292616910249500802605212347612012950664547717488714377605189106072583454763150335053447197436093236396675494913365055026655956503150252479612420224412253298658763169343249445838928816864249987509238510107936973834627144149404270525150617604485040078798404035759337728972709767102786995980354864409510735741089236150335991686630134050346353097356010430229503306435051724372121068405627380154674502473706750818755861602314884420036314842519948833775742542887005797943941491876569489715791736281942750478238550682553153677251985735591814266923341300413819128503182607128353465984980430104686711399655882908450107620219776648142456415472462988174733829570232389270337775558451418754424568373206696915045951107846834437950244500729208111789803050036155889331624692555850067129012921554919080766943771186735786249063072437756149541774498654855794050111626918329641969616102087683446133749050875203411940713968127585114404784964905413484974647214689450951397925112441997260058224509638232753117114583323235651818810071833616585467614061356760780090930635112197825543411310595781528521569770003507838781457175636342532360233218981087069333203596734592161405205224367834451653387944738623985944690860175996496865219943107846540794787516273768043469793646875758180756694074956404461161453285636026298681310699139244135439640405165699394823412084616889661077274433750652573376621865753808126771831774633789925467564276399834292707502078226562513101822186495223958754015934441277389352026732078661898374222294225413843670997864406839778997063869623956224222664577429571763721008914946237520160358961625392938897109783776798076296347355013608881948260861274243178107868874612463161131660337626755670186015713848752237714043473670183173749046656591993733286384218341519609915195052943704770350753026453855852833308696089870834655372479591035500435897758724429710733335126179420113884335304458046902660598232101455081099161577114477584361384362974828014394316195812570827442818221346832974604083136545591743484320484664370791173288625495909969134638748818027615513218596436373381258555190373953612244054323043107401491530584272461097881276742621677109760561223538570718824482279112365836244589840755181747538711676915597887564160597296054619869782055136094120536336128101755063697482375258724687219195186472286702212227487857161205307910429475760454493513681127739150218914257223275239127862809664596432373900092718851870921908593250988041161864548332049412004708668969873671446176591004963051607129221830730611159994053449366283443997991643545267816967151723477902849777896102536777624653647949200638519331888857216896087948261567461676959313045161564927484517278728520071582492103357073673770604217893265753046558651266225053472973518888163611683740812339486827227359108403580201802723478657392845423137244116359291301215527516774801735339614929215312380425431882642478393708545660975968180658497648792644858662744527716790500791016003575808958461884190918628682712865525990914105087113726806619145981782054961112107787295251154754149314465795177605001539633557416163831117919471591570600635167444583875047308750441929060960016819065696891756539903798811444668360076921634213774748088551476350964677747864218922393206019474454688427455831550502047983478854432213636200420210964079065891610116016253520581009683276654036657901760830667989582600336845479433331512303139301337883081071575752406783159008980792949894403131959330827019705485836350263295798920206054876110943998524030823704145452009290516766492449210293892967485814799439560375678031318315509122408014294236985774330850012487293418043091275139766479968153283244043607350127332504649952601636921591429099204617506518068019159060485581660276359569688957682492275009313472156874944793354335580012455475699488504508386751401841393120705412472181103056765667730353054790519443350714881205140761952341320260729957524656792051637019502580013952569512253640300220197224350615629225002077925682587353113088754735108311441937952575217018356724353534270284362644899853411467171457350132171020991959616317763676773138141746609354613297651236902801264660734969082471170662497711411927719742512423694575021914349630203278798841114990257002219970172906282836222822200497031639114008197351303968173572419109582575385117002061858605268238281891563183256567252485031583329204938975503690287400632432499585994107802776966494357051209179105088787365291465085900572184687690925986386741051893966711743604697529729561430038170132513778278097372608703319516229900595565693345748860225299287762028622253317809421773441408372771607820349075768290339222306138951009738686444718109014433698904313591739523738186876647777873132414058566892740246255612662260436141992603217086494162851641403889306154765277682637733000804393911864447489411666682921566238160810207348958832222991074968887691632874821198667424700124570691668331310139349550995958831399461848719927786362236073082504001449744910123075306355717205725623837254419281919176293807582259644480956932946741203873679290660317883997524548987504078059136721360169781742834975886311889399405070907757311633516996376110698150220848221291539612308054206175591457093564373908925721503587326185463692039765997511642900980661188530780684567451494863274671828544778265612454363613662856761194831544706684821154276555094439316525756006353090939214283024582605003254226711157808104325345058137761039839858498479919624912504731635122760556910610235849239117352918244866954724882132650107289869410835399601408349060593662308728202785060033906195367310166381029502546947395507119500667959469157545176066819532367171739902996130245303743776022591459054777907540979262548971525849126711308738891032461355698051617871186606718987158610530311215228356969464534854126341708952260126009483684436204381689642037582306720870155433473560504855413581639552818138534847956543265554526996422668305402382023126389829721767232159777649457733919493995942738252647866498374566091501500115175197521857956129901620693717659149132128443060593256480414023832702167961345443585097063713850934163971040412641132011002650485432065127838955570248198588454321167461177125710066484820089510248280851597287289322995411617858247832969490280221607034058353651251091418159004920685600605965279510667988620696768403260244404260807335000908867068208001221702837244365630509248202620261417963839859001812119621910525851434351486847806044883533564247257417275415086384279426385279075961616042022658721625662141362808340136954363526425739996751056793425537556322485741590138146591728130113422503607989302039853370903536652385373016847809608894989545513209157247701440857604501610255387872165659491836940644326864668603919405559459880347518029016629677854864509188942652939952407846782621029288743895783729551905883598514632931694803036187107511488968375574357257080368415382858024945139244017703567813686002985869105740628904586727551866235455700818256922361407028441212229865853726043964069552493411291749895563506549223858525282379451146356278114687973068973202553821056254967296375597046568775756427964217520419396915392194186089588871090190862686363102069584670043928273715557757501534036981795191622278787124828786787440738630408010286347731291226607257917837443166122664815674906832581639377272780092468577617056418651852183185412441500330328264236223422035461522898568053271046897697726449380449604717476394741397112908203959986641882378465496102972924650047793235289637124740415327959587071345969541212439758296803133512367744790494709126997450641937614173747223280945376364583039317965069280350077604179528235363401627033788393678895532517301031368590793085438496585926588528981625091249603619174719230678821748068542267182360503063473019709182365503269746837296845991989528298029784767459530038048626884798920154424251012926890653361117853890266247797589313843079860849511042119156246220131457050531413873612154580059262105442958407563235742928405394737621023983535036043084822702547488945016471502471095015361692757456775101836594001789660125209275919976541331944259142835655297024824449828575552401590590676897164398639874765199595060222389623518885457348212795517744940173163232133809691199401474307965209988520896475950407118209999399659069237759044701307137485648347953940245704716483303755112496450424954710121228743534467096976648479567813736691894952098530541578483828679921572367540737726193706336058533531141894476533598202848373594311068480347263035084740603420157506037680678566276999227924094276877559165614032790539125842082047121006480655363214512155953270467363504220120042055900554366290407844505204353116947924889431232689059937565648052644017134179586030518974412507340653075321083464311754856752260945735073732522500708735721138568781224195890067756913390538294172012492920665175143876770483547262798665077798474188961966558561353495596334064378882452965442822440163145223689999684503905911406928199599625681635215861596897739750867261540499181755741013180881232877790978324651915024161854038638891095471782784685698260432889784562183706914161432219557980592474872019879567057388044415932218115479234967034651086788190626474272931176732965611910606649901087884265866363523209946672899900730370174758910013056722486225830879560584283983098572792558903936467432117792344952777350197186654398541067390967259029456835298824722353098000910891675460015313154636093350552905411501707447272980775302467755942689401956157701884307298917835418463032197979861929770736162391467443665383706957103726824317010382130421290987799839534518107647737676475069954732332806328444313563135731061518669697839425305245181941287141474396992570693765849296642247584065693924238015657245726548886550630727332882412477538126275067990684639234728999616410519578694065487399006968759570254568907605059943071451543221452508030796753960978287682452127837854797675651083387733450386323669350577231403485175842163725371511660954855195904739379834987971887449855619150343106194509528912972603080929197519230292400082702374097474831718005162543187393684780884720556059540618188872476710826582548633455993105233006648343419046829706545363719756545248542653280552345514957248802652533618938197796386002878206940549675319861468951354214730301290520189951342075088439910696634509813185117382776581322872438309837393825760906643082597580673672343106321333305636724049420596290957307594200483608277202018103559886844444543079619714920553830128361839833926212218459727267237330698520003713416341619406442573820915235525896254105851879920174195944803012705802041925510588030585786433518051858231747615680226501492555201333917136712652648442421678620995580637324822301321593401441747787034827396541470346398900059006654108691674235016859456068339208707563809021630621103240034828696012009842226506709269259931729650924034258782491826720159569459811921419372416295236430945734303476192273495448625434826697324263157571768469718520054780494157742341577267183188252719991640540624912926650964486993765183244043034484211350603340390506315123192472497504955245288993595375708162883313047996320227324856154202786225401755864860723261035856683654161166226966881647024176057483065568268831877350168367536742329411253695914728363413285145784828032700166124241127563886410216105248940424118883307349189356419336484568049562571257057941151639577848015239949062743777699442827386410327080060851322202815035519360113187199398625467504123111589670197924173101431193982426183936489961516464286891885634815103296357540676553720282720500078513782516488032548554846061650137527428100641801107043013544359385157883887983571547868240876982952695786258055810547312482077755132622327393765264789357152430002651872607029424589022925430024472704798496556185200974957013541891115365802335860431158622180847097886528806531937230647608657484484227633366068401535134108910335744330632299707277296729952624686089767217970441888058785378024410961594826404111674810833728634860041989055988500615714887226377506590252107219605754172468243387127590904581323858396395577868145290742910517210104645254793292240272580437525719751122736443998700626767099417447251609600173692233789590817235093604002619108437353321566907089814823486345284422868715268654621254180559833650225601237872614341961101229954086694448583977900369311111146568121880280294516027644465767423004395460529060058127878685681343475934397573001482551332433027341480897131636473458537600539744742903675234542910309922200155482167294485491118973057064725197248499776663905292860411942491469864899709962406691339532204930385277105670228575337441234175047165933822782926450901403948507949641551893553974444175851475024926111816186958790319664843373051185774996609537111091708737688970656137790421969615105401775236464772318910558999066749201740763728553419019212814816477255124208256414923933567493040951658821638460761686078521889650325670751174313362031747627386362223517634215846791227510062250736216276311692151583125663627342322266021413455501576731535201165591373482559858846454749939268839635776100297719284557427322975210353383393718815023454987553177279619986130524755143910206767147774457038932006959744433612415384617002502059085956974186118005865689296543766930803291671497793542532189278555776249138357164838148241870770819695581725484524602551448301390842921140312296363343173394658276001228389022094684046517435950974728945282465792264287042247960816407857442649699185911602257637587872960042111064917704827943040690504239779409105546123726929353825518524428434312095546676119649513094176870889040714738448624816865133272919326609962124143816192367382775099457107135998139277377679061341299466484900275930697357006842285846660764370666435586757940637561687381603462075907608279246430314065514429194225790318908654173518707888781568013034075667812148656303989818187271883216365067884272677834639758168245641438335600811556641621574722664667308514266545577598108974535352507676232123872015589723424756489464458588067984355843744352024772667081193271670947298453374355749881361149176271503844472658621720313477581901872754429951281919181709158576006104439594284489806919999386110918558684970260972415919954213751702406683081520371821965302951163735628650395328150026141619663094525331739238651561009635839835433583533889623414353946313783876143698168760218055429732397415394466057664748702280976368390901857327251318785997158250177476817609062660956436348921925880405250709301201183802232288448991601833582177220545896891239053419525182693196751166307738055608965258221761031862567575925981296843939503797397995072193854059244192369508990427843580656150677754234957591582635896486724014926980954706335062833025011905151966915024653994922035840691705696158888390458177463248892597386131764386343989945165855806573480652054614150223345824539270796893527255291229966378787490318495859654880911495074427156639944690786774429997621992206911970970735637783441863304616527765032492069325591195718136658399219325584366730674253096794864296237732288263860202826500646324605049806293248475902176825446674740675906190145260594240282596167772219525097011447814521053231904062080364582411077618460425235826216805020806276731961051845954197969976518527503426115632455280396995118700644525596699574740915504552924625760523004453092290821386054771407017654861959044295654353503271207052985309784024050442074094637674540059519999530396970926106233379974394089435706130648876484098879412959533248756810366798843651969051125413620521603459544736678831849599433641975203735891120374166235976189778106669924540400834765603476866235846513993981786553520097450241235995101202022256268583994667929192324842216596049704388888081422815601826923131741186992387308192740601112653380603654621357780706552924228396183082975825718889310564140463574844234572772420262562776957358753206922175468095240613630467413314116440155879598620174943818756734981223489893953734228839051393404379958238246443609446355636511831036088104127973177334022381834731501272233833056209604601401472331410262333669790438570345817672987528869198285447354873713924888620020929628094603928579265999594974583907573079637014646485913761491675297460186916815739530570188612391927055309833140944864224973915115016808870252278455474593177908292884645778033594014813867077215730700551918342942771461914146091243637689368297850653643747032259234730737204904808253200215185431156134971609849031541740975867644463204282339994902818805085546765889296171739647958996257758753563035480648449807457820133564014218789203070391409193124983649216955465261254025674151785453624364185649631635366517707287195625484959530705787278222662160456239768312879316140713113438193394911241202151522461649486951531529983350456934662642749294371907609683377969200377826173058937381664991400007845464486568678765006675508112400429671602878528568585226342463672605982029617527633944713145058281012315476852296790795602612991187753775794063279014944682272403472414522973459751455143558000816176851926020071219051970850682819692106881209316583922294875752676475387258017884261394742888247629926327814336716837390580492327476687971925710969206786542306896140812040858610479343783788508485430193242636472644267696146161158869956222756754796283898813631432233044460529926251138806193591084867710233821370448503914799765528226344146768991636391105133137440275771220379157334234425968132629677441844495604549763585882032791141308489194310757547170154081429272979055623724006242032089635208134104852427317704031287223777720520947417992365125109867968520961243764842809629457887325454566140121383413061217071794169944118736712235413941833773074197910471983873805143736120540339582824431294486068514005125566066449442915990727132242283439553456897483228340548922976038048815565949335932688785072720840180585306843554695821426653931355779596722910020751353345352218328790241466144084198003044659459508343729597243568645811266297926958696976833841930075997128173071595581691246694074934765868973842738285986157480391129732550865294824688508860830206732341431089809811793378393644305052835129983740055735411532876318473667426993637113916021603540041105620568594280386215788973880119881995675180499332839987748324760853688894448475084477197493149078973782785045676860183690914290694627325944266926103219469221644521697202664985367692253581275306912956548570799008323239196473050233831302690652700207855493849577123247019684504026735687320858520177701105697543314534363231744093217063148484967674833770751194973053989393416976677451707746400864921301355523534708461096187014793105689454056974937944599113373542034663810557055171752110091276249372468442441437496093602091692324047803258708658750620856767951098599430825030365045645589449822867150267214903696581276130298494744805948410171240562399781814962900255488012275745989012018598430300019432163249468923744678982427600360063343045132820017431907492174093044256018437672594766898843838694132351981688214836231114670589113926062549637711688036331841253470222143095146934363163289541993428328873990857660502787192287999457946033265021176565306404482418472494276105846382867010068420235847343863263585168384241526776598393633090623674227779324958886513309756832358886136368559375238279960916436559159740936650492072561072691206808011464005945171449818440281106814673889985458912760683686802494632125785159286358843758124109844573207969757313807238195625197691475863398408725442211450232568731780211868743112108884648925582613848470430028656230153930370532666667800784594247813276034707783888891048906850169762982815223308462716811850960730756065564086165166163471114055642236506058311164775513703509035830603779615653703035540077413221884061888127223647674791933933659430886858150050316045595241835587069697412330761487789900822001558779827794111438284979275266121567328527325533228673401518070898254069632387802508829986408211747655657045322186777109201277977863390844747434447469824439456811375777827632159263599502267720859326353622288510174765210861835962978452334567532752691330335967667741953038869980752686782901082615215781559216511653261968456400179983616329808475802382789780772757084070021709152555626575859812054589746520659248815800101788862990150017210582816701872709887042816421533131705175277024411907051217367911247898490291984140961393364303085319916306501087206048520842089124520057596399185617775262978340702747355436655448629542801375386339394973723530033514171984690501822674779914440020694960117318039818781683759363551190777851318289846618295528859391089029828973437497406550121573868032044243554668948161006179878041515712366108227622826062828584140460291087145617386573585951575994029218610556268815920423478661679326136828452954974247663442630386848473628347957036640018997625676788785672795910977934015689608816720824059529018814314148162301565207419155355483395901962756965405719710962200855158358117078889721793014532353129109511011769510311706096861847700484745981861312972696598122856594901276295878966247316824950778981568998808711429932627311209767994812082840193865554129724537085558296097369366591345350449568317197566457526008777707401596870476446070091487024153059508097653377235514888500568520599504622180782628140843560703964169705128198748909075609939632369699137783901983008943071557560412217642275675490015924642678809451204200537565471959010824073989404479147175336385745486003809696049808763101159368926806332214968034434888179727313756380243952990836254451738199496699873996116946960820624294875225257601347499350075647413033085473071735281188759021775897746246249984611353970684033958349406391929877238291477524783147087533336204462560368035007475534301224527370510284992184476103865793418958187909841349221561514075413832984155143896077112357822189027176289621901409579884556635727312635084377084856177778740780993996888650608423406565798209501210717553327185642368912489027332549647874994837798614636740149276438828948387748303916172883314858391101132145038918129708693377902255379061476772210912918664942816887942547574541293875034012482403045054912182185850261679541674065877156676552435652613512513522389563261369405596938339646922031591141569031325096864653356181687470754050307485220173666952223584039897230423072255913147947342563649701804769921916508376154989501345864412357195433301658474147543044527660179256206184338515610385348266883519746569759135446613608876447112963322089894272904391001917546820917201539388310088019709562385837731778326043385415841292097574609409142759562480685810160094717952670323973454061239934680921505074396550325816157888690675842250467489810763424700704230695253549190426610691127860046145338302378270798427573535888090343159534849672842757959552128849459602426435050632650854728166414670043923236381915315307698431989035197274973958157911715282472671571324248361160267724343927671951278469272272048893817686888285437992316937150448958234183337881827295752705459420298959473349913490848177964553586956312084214376558831636203455038255961252410538452651852581759502261109494405075090862478719149397324260273266157732731596916628439217389880093881641557961991768602658690318909983038881297725506723980770995968033634403918351548491782393219305497924335445726844393402164784619742864582004244278456921881049927151499079179482283720840687141800823199839771060161259470974478477088303775103006482786428231494069792301896572407673527239543697953570650069696682054146039902787206073783147978000556920303481653236857552160596468370633401867174505815927208824073890166840727227577194739986717824752744752309256020926445940733766759468919979365811648827501314091351470683256956328899265041962993857580649885472663837734087665638502847123464190614268285510251134355378193444697481523562501631403837838803290427486560908456034172993099335721318280835833760005015396966792837307819669860465656199797231748778712866759551769574988642867449547554262911932427206242950115719046715813869874229295275249559178400760795133326289248697442754838289293639645250171271244328259757694130254283843167280094851695550603125588553896382005906274829441808483448555801743794829872975758735076502578434581898468741522004541930441778803191600185405727438674390240325586616059408201251577149312994801474070008886107312126455087441185634128135697723320555151112471582366683549390241068050815764465265816700998474716360068435059627739598238020570526559881444974734732849453077802595757241663015363281528300620425286097388565911069639098804645436923582196830248753392029988535702111440111625726202359102839800874515259227412776799603065720935861335599727842409342917988496845219044931093027996033004893243050755238990561101779623006196926301403707058983561748213248362540006302136657527117081193747921431449165851644915330467449278253079790874201677189031359628303643113023445049796712195525153550473752833315822797560931931154594067158025529166881005632966162932893194662114013534957771859066387252736010926370958271274710280474079312956351273256949400280453819543775864080647396033566100423753945309070023865442012800273370628269765464189642434815421279112712596376824649841029347346736128747657314396021484877795908834870647785804479218095516969468058569052427663956243857699506851383173349019541242688525161936758769722063221175893587143528904117713589852202846641101895242569257173456373460764168855373878083199525339276290131474280081231533845871866445248156954078141304808597519912010691667374380225758157540950001513903790675682531843777588192979969215029352933115429855816953342211248518116152309478682837166704163735751441516314360523137842901913487941003055621321388682544949309094006515777773945943672227295865903096007208393960170281626449657665729019725716405001318052451927323096049114323408487588307845286120595574680390761908505976972529936378424213120687899900328073320908693011644647308124915761987404277043968225676971286440351699553210153705073801227165866556670545975067883729713574387090388703146888909432024341412619116769798326021448044234322906859955110849675735846463194520840409715413637800322578266436920376450855594138724548655082017262992037487072628341129145330684715911735395575196378311092237661696925641289210589705721966578933267394420356840406870648392652906743173236015385112153958985964098326993299457214510828164251574108239516133412097213210057078630229379107184584793049943584612771024837424091614334943105101894899491034314901490518914087772179706917368501739356296229480188091291129421828005762834426123423615089759873304099823981873568396511604232262808263630625005887699479583667627947120145508922592118043032001239036281807677896062494623196276795503824391827486033474686229713571584194189164071797145437468033550599114730972420374195121162600997331140505833861742914657525333932690310860564084535433179462296806368073563589509950068897201356084568341728378079376997031581415514205350490562382617095296200781187989223952300688780312939605705740595540732873012959570412741692636134244355726297863414252051206919430311974768049111317037000998017851096582093605955553473892292120719190149691472399276620562326044278132631028360936014286238369471845152729110496949422930575372714120860548872928624673687591583042285613308054332280366989989482960184509172842824640298895820360876439349020149893495965840912366834783462406279507371480508425004238494129072781358368103100844163892511806026980466369106402233107417880984223178445581697779137681941459086887514995077340639647994051879213689083313077923131749387433536475892895324342928753450084977011749469813879108853620346615560007250556452099783614524845448214876244431418932716154051406959468701319349191166869500756247827598820524037173735898648863636321091873736456275181980194787845540207185853311428171179411429044371653265158423754690760289523473666537403986154827107595811602030360194658873265429968660893435101103569596741750080943639265297395740794625252257839693669879870012447128670716602398184229847393231442753300139861021983771515140298731671455338093614900638386593597054615615370609591995069975843167487540957091945955098521870226726382009041350449968468347024042443381931792147218730488541742129646619832845643045064039926545605882075341764303759492088346940253587458246569057701203806514231245542742188189001993770778402145995232446083511601391696437743307865069962187910388991768252787561258754410535013789355234671272599674247103554428821687483112210728531458748885114053424557388978223240122125154091374479416897377914233111797120862615346680446605127090836965833213921190595219375292001668908577149624485086152121477018493758413954176989023466487757225195736236721489208516667198423296581646062200682254214815968851127057745216796547684249572531109812413928867336676725747608162190246038456473347637611582180945361845211654051312193144287640345683338023688201946182123264494692249990115889276287944112506896240050031590390179170068654084411287745685358300338250463378210105915679412708469000178088652382794321316801685272878823309947033851070285230711350985877510524366948479970644217826938563788827642072354659605476103567247659524504705428399819598625216662956573742114281829290148500257247992009515790812091772010474089517140205268548101365418266095344248908405248317147285344850801962237993214897597804949413433924468061351679491451835046392439399290116441015259288779424539178312005223816061196108744686351508908802701215124761671787222083223863424984064731967984890379800445260157669366889822318509572572852753154839594785015214887768358639023459897639681658955724236169014392880496515206608368324485102347791416259520579160135961907165600298549444982030231406916269385625733356214734725485453879396678846222455928254733152632741630582386426423613605859810403792022348413433078361405985447955572668315856179777960446703430693884555722437649756258323193869003107654186597174570138980312752842759758121501664295572794507280302939601687861026509791327634757685696499870723154475040926043451537658990462341124133561476412054711899639881539782852555483421412058466174377260094773485866677941753945211719557901598744006398868561806234273857209596404171999777859183061919049006292118340558554580695441745640821326566357248330099436551783877873461103677609037634388982329541811251412801204018735482944957066489391618216388696304416530374567574400800244787320803419738332656401581177384971175273959213085474108152721892906871641380377224655175773911809219391292485935880643137137333213450027888059491356548351805972793998561504000230494605494003041868203739835077277332593995331822897322985510425064837292397949237163359546885038273662917332660032568223641130773220274490312482409858751803531341909055009618775387365892225169699593066727544382900778504875762624206472040923280645536186228863424189483499638790824143608980032616718434912493664589906242963369787644023956496933651011330937291643048367862607078677532263103335502490074555165642045151643997321623074138742424511738987655534843396338172657109860648785655077208356696765630960924476643577482305785199966767146566823863635663462813327930919177512745908276254970779456932488476507607429280838025757306565964437718609232825166451558430886126593600873391223563038791335753638687817092492811607385921289704387988559925636611004087590537325349923862915596886183521087977136283179035812446730376185454946733213989952066705356420489031734598143717385455145241459363615693828721730646550230754291587679110507824673528453080936705051184882259234669689151985084148593365017805046097037872779974531336579556674821340657778661990005344551702974789075285020337311915779209433954842376596418377895036734302772565765314551432592680703990645084444176564101976378031376844981601712180455354784588980058586732502791277899020679534765725607325575896005635547170450777037694529039932403329886696384709070411765101181607576188704482306928669923128549589727229609725030626235952568641313156450434561266690149950561498824843358576755734683006864366381290074843910955696286827570243755701773306866010863190106044892212245692461414352787420835709823896343452448677479965973412612294818981164544597931477220293218141217379517369091672553936243480472617723953467698903909694480153292242320929217656220159923068578755346233283036092132870711519275355173010780194292112452316704322472132658227033851523951004569382577348743579546867470415076491446014831957337823129768516495903998632119939527389512311478917428330528378666827414373586909686396061272427567898986980130040768817453569202357434594632026491233296892446301909032665837986139033821108631293807293602266453418781051099645796615507752092011202993171863150299117845145563972715345818876766111516716045583745189828919406700329502628053662267815443679575142369596343004471832076968954429219106825051581619961202465187075135661665202830636839035600600308753701641721229315262300987730204882367931974483997378468123748033777618451925142583134799670433334130870551997671996491734673249348261583733086732699771778399587407078444003724708677440742326424792271453083265817265343416402799064670011613540847333568370572281350317975683906601306048225653745642005336034959232223834009749656867325298014502234218163070314958079390721356212444463770684407559431710069495829606112772556432763694901019539448821151237894642603064005357158839601498318008384839127741396456088620445526832727059322740583085450876691832136904544012655413922097569772440511708922963225580415344182770257087705914071363687100804489395791679411195009625506224520600342096663554388320426544996999417225823900714594524119442688563181625180361056105454668324128496143387861185280269615003156273334839165286427636237988062418128486155083548387872283308187029332189522928699904668113461656253390425945997509300398014907659897816693786913449153677735918333743473290021264836631968951318712501094682520194200890194092474276426282483092261450953354641120065173763746195285962508809562543561698313478907812571153867470393406555877822720870869786630003860326568617334158607503431871878182737976394569290941872018213764212699926584189909816954190602938407251237254831526204635049066141341275444562123600079811566348863064829344208758273660134413915924398746523235987221883501629652466338096796177656998271017788353142349875692617761731478432485533775390597422295525664079997739702034700539112798574675332952251161692540815044549447478387909021644828358449789536046530121442556224175764434134774020252105379938752297993064248117779005366035503331911695018053549724502622049325671927429886169089864896676913758917944581274655391699350065977561117458701788143259506961097741306577128011469605513086490777369888358440807107474713864844768742449321919643499739171502782122485996967542627088361825855677859781663342842383439234752915389663592576678973161333974704484071591311885728973205459492842666671827522011203282081282231599616904009480111492141294655226131439755387762940333544692008175264456148008171218038229245201521849458699808481597020840923495868676026978851113510962204931356190225401642833870519720027624638166744465055037790062277008567449717196398703121143123957021899807686381356004267499394951369519394658539575617585900489407005481799937696135965248695660994440538431381322587404989907571281054140238607823430362025559943939333522383921591381997684209987273889909871554068642091961042356208081769619799405892301391194621328676275542203827416047041147376701830254903287679218472279779675091281489596404025910818131105863549914374633305103806869049824972048065922184540077642760755220949563605998923502294572685078323046246731731012020157045281423367916532370340924891350620767332638531717346364193359999030631468508537342134462481153316737200531009751792301940090912628325681868330248953274546964680683840175827488633761644669488992862930540568091535114609228464459774370444698391522699339550632758652853544244414147015796598001778156369776607297924069141649785401059533960908210304583023455983714774358672564000991313717332448271033639586718237318772134414223035454622455654403282433610832376313476141855855940104478049109674267547603957147388047106957315119623900243661614806204921634916758398117630204127085387905068228695671392730984817107207458779891626783358667793774572722751013478748010310658481597927775092944148091574507858192021557629501574120483868209986843507319525575171639217615497419958269657932720686687665668502350265781878379287718378443344635128584304490627892466156700751848328698749385619449777595781752106516300835560007964615572743204551656803733085292895775868797447588723979342757117675425087192653989641598792108741527279206990045102042848226032435893922241376181114839214566168907445044776160289172861350602249528388055244432257119933875237550714210806552884703075103224775614338629915839268527014382781291842526634172597293427392249728541269725995149375378131055073180371994024997771394462621726020305657958765540234914212376450312674717233866847373096278307982840446715676714698739275165041412800220872208138017167548970887807716907315530500191235616540748219297568561068593090653046950535214064023187127663227852685986592260516718660899185837136231877867301169419272160474704526562651361056615442912662746777162520634623187137358115411352876350535358287598979036901124894134299988992408412792635229132188542172034203530186308467334288795998220599358494907880308338339307467534710694364081973280883102231811056351062805338613494092855923735352561481101964943892978687053991780305900484035663454709429177941516190994809570180729407714390805526046126266620044746931750370055755432469665245514878907723405211300974101763542833672153803078584675180015329738402812326582577709174699247087947906149436618083807323548249317817978497182297768072470656601327247121207287839248392471738484733373895045220814209691422427352714530352533241338902831568746585594477441902925786454304158871687282943015040758723748846756999063434766352801804166298727759709719108012369797267476109477551269410416409874681357647903677254984966092311653215946233640766930665007058837440836626768934748555202732695345593018704467095476972862583547355076568944265472349272273371848550316430365357571412245604393486482684985545774928668080343350482571821156517940353645573651151169054067000066378368678993185925796966135169684859978517061901119223386999820452076279791907542651789345196883036932671883196596292180027072035571747124378032797744659524723086796535135232896214768355834104977221520084973468717424073123964839625279155039072602303226837987358144526262091938808518919690425095455033459744454177156858851749238822016374082048471381445510441750889250736369156932202735313263766855885743479757509321462472386932636136043909453443125483808832015481314123067964672825495087322742417744551717125084730184061728186469814618109553063363955097357154252638367972281093190687042218994229717806039564507324484224757279016621211020903728917453574578939094023737106316291522103509677341784734421801682030534313725061877991403515014618136229133881095389285760470810622808849740032895429205381452744031281271770618829354564936841511414724706908219987512543031282579282024160634311981584535470263250169156979519000642352963577218401780032197020162485773246379304861446417372542989528717588051225128199504937406108663477674219862057007344514154788539260042408659011788782258554892983156877253008836893729938754096062552702064989724860054002304117650311066106823693135530571577268543721600987501649596149629971293689693583104894899590878792879449627274890582935045039019456999385821222319985193286888632990467911921222746192362142717165511963440847782010710162322399564823959167439678282827053404864662474674683999829630789466950062532737865203865229686123706082181192010551265604983131232332905255838455817324803498138419754459482483878561233914369081607604239995298701937002852245632854430783313616135321328793595052077021972421732912781183554211342152067592786562540282117711103834712331980059594485266735041409188864259498428099740127531106570665893482855239615904391767994332429386924877969962301839540514827733452758813233812280429870698513268722999614450177409118864383346011975143684242868366252025895419158185705697821410452545414673307656899799679817064678069171553321790241041253064845703747341967472567943780199564933423291643342603278622364953071687877867863477874296056567431464901711157255575177174464738831134989098977062029091521127320459714303637700808490796508412118880390543410115318933865634410508403576523244193945364338499724831448804117629777247936079505480710569115282548389575138351942792358369206402143013878442418309073965173024790941212358100152817650722751746189147000889942676323020654516474211847934382085883333875353093203452431169471285267817401970666123733094016656900985303287730138419814837260820856290120325993530297115288738312969942007277521259378448007897804565549942999404293134399302554344936357690421829360931914268536276057912016023725798990024924400144542974738425416621142339140953119333146119971220937533520787626657203502646742307646217579968395729107844765401470329242886590749022526247711535435610343699144329093244923965974912644227394057462314858299077007505422048491831108857846601024803723720489516949678722954457757332760514394197724990361873299224797025279866978869878911622555310627216918499571491790529087847288734558085773725024716730253282434225850450238522208135458412903135213963122460866746562054084949983414877927597884795389449674038066405391352977599511023116359832653841207960366507546564799593343749683620298526732962121903758546598788205206461205396374366524615210064569529432841782922537599536753079639770129238916640025650544182259674480464561810666308071530849043267787218176292176758729937933941888757103699856033709354936965763788757350901190568711339572900224480410338845365849816067532158611854917473081460008718234018133853094637742383280453837592884175594121140905831248138042573870478856338178056537916123386929887897078412610208481864822118276750233455072285181814140813812574062061251778876635942691117300417805121595799306714806267020145026248126161181989567653184106434239775333616666608222437639008066067744872741724231764386459072693681281896410420338291117455770618639140541252933876966284355844393631933170103688261911673535897705462408054114625581955041775586047573778022525499938114062033917391177700571375942062031759354725650663110963394905830413258639393321630108248229423540730664517685464728418724631621774329007921169725954608037425413949957473607041005774415324057500518592359660671706317333562044312369114428403517285837003385021301172084348386523902571535629575588169635843626610704877444348909772348238608138401770796626304851698028090106482485412632769250280755519912297147271250722313063715161413260127750652496913607002458095977151560386312254566487596872966348886950534119577632949715833200121277051267991226406012435002477630889936639243990263226570544929948170443911811209476382220013952506682279836520996609880652235349041237677427075241688150551675608622050282710406545669786198126135150895162634502023726291987420363355795804524237106596514279733209056112785209073510334892805037476831017764635447210077016650019628724077264913116954578561482124381819042465876774127285421579473569923836697563975585345373533043744348029132264128548229371503774763787974354093201612038967699262515524860881428855976748095394745686399154705419536435307278797908329030909187158018950661823986765088246092115860020138991754702093471508545503408443440391179971876893115903800737705857758581354060204957481739830142086102936983836245487563906187802067191598626899198765224298869090825630882269200171900494064197871307193066077232327388280352304766402498302280719945561721388493530773405203642735232934579121272959413141638096329561324423746478127827144065924300846310663241045953965245848758307731556216495297393742406844674812438255760952221691182308665030286333709684631339621015161845529001547932347935260162293411428634831039591221262091021139827407900321590379305313846133533105225259465357828679776766786227517943601423402372513886357543914947029127309370242169458444765229156067465190389482741988882215266034106880360158731650466399727318804581214238626339922838294933357772777993132316213327287157851005054167929875040986078540917509233863752373030698079650715086570002875659983572033889102079410738863132473538015125353481531905858225596060278374326410878946587038136819083152211512655349995459154940582023422091290187380991787282176615905766937973220147225477037641688148122664307507253089633972460309076436982924350220985069330921758134007594205907852225710537909928650848004616187060314860880966617453201788737688415346979143001891522421134663076275495332108488189794719546345601108373282411450685755725109579708920656810347172925876405695854738712003571687747369420256980987354071878283403162936018777938385046356259505685966272186796853183847964793733771844819674897905801390370341824205022724745780831028963571350317780254301969220457493335978724211420858242818006225448599338525386404135821859395868159612979854686121633770957394855274109563947238062118385326008534789965680019491868720532047732106490007028245501901504785365432492314882908366803414059351552885126574615154393528674283679155481470878173178401043795011890975815331105596391337515369791258165950325562272511794579179915489503892970499141734718307967783540767187015564035253926561493126228888393999519190283558307100280915280271506607240768634163571368102328625241819900085596303021840672642294532381523089200208117139228231116155952982819989721331287457383801637146970682746515753518974885765262528201289790325562477549950309736861191687790947912736674093491840721981736565464592509780444867930791553480028514517809356064920915456587774009518143379302849407276972845939519238427740820946296364713280737073887806658929306581797704766994499216333123524736456051254318200372330840398108953940880969643936749772360183714111245575085943989692533796134331295932511261155883335574324413725663259100642133730539692284105497362419149245999850265469923415528718665187584390287743659735918619522715486259737482792881388859791689484333499553723542571145050856057016480123271459282772315698383542755772643966148505801840181696116592618000482479609521889547377150031795056297668814177881937881863137798053020435153899724713751460476429166824149455271404321947902971329619066820189932698334251316419281074648525857623327056584564267430794759873453083203101669831502109893727274987407964271587738563590600171230165246181917237877205423912466889178665526278009162965771717534503182377843671928846970277433359547468403360830707374435145235333666849182055846398972930954189955595896250423410861260178890989369486222991562864256519153644329306603426035195644826184073747672202965545714478715619444534465399487167954509854806830556532762056573858310369931773666680732827062278885250979935512551535934491962832526825170249721879485289986340695762476116814602506173657409743940418396387648186315762896486712988083808062804965885777074935885385481134360910799096029378587840652899865826056064187749011515636632390326359703581255266389028475919237620526025259502820716415596932306885095956887255989210835967567137498271692138992655778805226198140170556530052267654524707679566284933502441715706398813040083421615291142928246852864076409103841160491754115898326711362674532572497639851701270215813187002921486950120152931358025638151761251449838214079713191493579304181738718934576542580590258721843542385332402947540254395140203760596120061086697953956931934241682306194643008511498273004570627062985131370278872295414345998993375861605527737214970575670579937029762938422797283248563362564277293657924116916574527644064903382819813796366441243868955070886879643138508349196705167566655285549781289543899483177441089883759511655596507459766919922089958198492132019004997938579823975257765710652381692865850083865886196717145998874197994044624623911623324029817236346642070216194985246553005976628662063036842130885233887155466702249301461973873547675247631997095699573512784427171303877658115438616459463521262107710099209876278964841729117892401430962290301274248330885428905309127565483364301870388198139312716730929282348803260644235278893450330962307113438921952557780309256242630813091128659951998786576943713539938895047162895243589752930181738425084487246284468608405917400786092285674591178220373432538553477358740135704348744229631754898517990107354403589667668740918207604141444337032856934513288153922901827942314764188181460774417931525131505376379480543562918877261381279260601264310825489653631793292495152435005302534207347637027933732597500279070436921626132850089273837220599363107177283385598904315925006200358789655511966344389273070686898429892651707058820512156788286035358120473003702779709166207618182886604650788926343999923640442800440386410513816007324326076615102600715226038288023532672590546834286890102259551139620766876074670180689749638667727432076028096515965421432131067790245967338720067328166688918436354786326110170478157162644154084913024477067831275753883838479970403232664726568209289848077454842053789001104355830171206666476115978049068610042449593209918066826475031334966756897705749667687378856540684017398181697263624986290481951884057456056323912314962634064938575381610062726026900049949237061028411683447016306569922168540803750958225743690349726720275406293428016195236525475960948232649915307353059994082628343227245465657587095778292099673226042208705171249455799784513562113091031531126363773746819091006666092986300828459511320366330466811553906654836849823090209083177361753486941036225023164365602604984917563707664567842285564005229974073970118128436865646454530239963446916059676294247075298642149233464452263713356166554288315178701694552293913846613728544952871510470839739544034288858395047220358824341091537947230221610934674685139078951096462018152812922455572113907639595802005577352658719471165981794330611374524275889706525331121908984234292322790907058121627055510521942959210956653055193106357502495734832496830620413473025679073841744244302643913506730526720164208192076026646572350655219982861777929561278295030131564232108803989039448552839940484637029829234725919448360623578472317996455940395334060556812813078446356387983319292355844362137078114202943800090878278705359983552121301012573734608618856366397505994689143934871052987193048166321151635992002989561084866620368602054045325948823618531080336558594104702290807701338145195080602451243243947194486170493244689084116436925804839236166702216578805512814331788129683343619284603650658783528738848208836873090522317271729537864618194034130789878728786631938256082101910768887161425362727102115730496927290535451415328247232765453221835344495420190708825150263169614261829348936328354129170459923522198134860512954086301498867724545346692421632637094595008921804013989249513919141053882657889676983981824243003851461552698134692202462490565664582211402438926096111482289030470967058506563662609395647865014335263956254819095705878024595242573004479078200471464042133519967897795691720752061291411532968476400090480553324912713459544337419258052427796410223471090553338894769298224525508751116076955647684829770963979453146469507397019966596497051224460803129257571331699705403945810619331955026448982214143334086111830405466311622261552154200535664281304586405698929126796434217465791657404248536979914257599320472785085942380503928250687485008524062744310162200339147010133816884590432580644440725523503567050371186462796863656763075795580753637466994881790199456958293627151307778126515995308232879028878862840462254187341514339822523008478729552423092366231280436301469230897435177659619295842576233263407872605004305140249420821097042334319729535287641544524789801025823179711460895914573866072818357119035553373993067416814234952164931101347037038819641199652207313894169320987026300362721872540188821101413204999793401058881269432678828888779779674711872424085148898614383264573274702892664390110192548562313708530015950041150276433204058654724291696695309223194409156053554949598698350517242318653432329771085803693049644964659692190060550140266497367747140186700473709412842434102416939395704075342576739052428703903654939350561746050971932899213092203663779412434151095128790807003391199362848505664132955135227861206145091014923353202832225014457174099820883280714918343489134469913509194538597305600741901273726124576770384735677970542050009011478358493641539608736568792607170220297880528224638326601453708346530644119510032469924598075256844048546035481204287266339520632263699720917874142462912662466850583512644819953302045145435750857442587111610909526729203449559413598593701376134339064788704584675870727167697393784076279154324241229798498504122027595535356369066121271226788962159491518881534946458746705199113591657039927166145329582406146780445225896821882600414787880620400634453619963780665239681011724529229673288577788066255932361823373648888163013761814604831417842601875920034933679263027241775017073711834157553814179947714991435395323414708135403636781734875835153720876265011778636633367822173090436269770456924054083262889025057560330074195774998204965527215906467199022086273885950606325908122300988248292339076266019755814347758268742422425098887601797878800528661045548817355850000332879830825982726934907628538797702309324957417583327706301186656468403597543846037438117235536882207397344799992432270459172135423658902004904941092656711731539310144375987062307113194053413896170848423680600939216633388090376117823628777134349916173577482242851553743847486036436469002216804176446423453340826348441402902416269560086713341575713902431766811136070303353788573070353865591779940861071470363281662470635856880744519992733386598267592333492928895175698448519498488988177638884352501856845368114099986999213264467411649638796511050428293160742772654909017402713557476758016395532548007146187280997787070365002093735264360548927807846606053800044740702207519258472682895140330411482066345090063677568610406699926653217526238229364575583527316368511007626844983543655549711037856841141279298288281143833535040115444145462884305379614440849951646353588217304478194216934675439051427259663412524211293699773683456532072107537428541485372715008344878264923818266679439311124449746041258388513593856424473165261005536315828453653719255169455663885127538258935000412999247401821754647638122525357228562363308225638244492488044845804760722712147708150970783163663230976092425557812463981820440953162209040039100903858285949748171751991763543768464639402775493666020810265740859917163318569089169473979665308094119547651088708642365670621027238934011844627669345934505658554460768529639968408595284396185029036098592073609908607680091361904161949143517956868450998232426065449421964613001423235692386694857534525932591893663431146496351072066484360645692821584498718499888502580772482546789149319929705884926375562666125976123402143366479841012126988880954131911698162138085103095780365053249212087480227177036974781881684159872661521709113176419249638379875159045552893817406865410504500715631058559393250379510027688271514821793194429724114599286648111557785975765498956102377343716295639362654434968096727770593209304380442586395184409166090215064811560575625387240011493499857092097589745460995751923701570493126261890334214233327284787949431974368694535485626122723655834522689496235183487148263669049040375840086349222277394480478690533978237628326082432072322456740640475134895388583350104412266370345776316189083460290760465730390974440513276297943994910559475344537544074803029316944151366232761937638314488664119001214093166922642250218167388424227379007949126496578038802661171195977893779839767605800189182440502378419878276579112693034483572953396934297534632081406159986394931241352720704241790252726374118365511490722721490603113123699590742102914495979168911140745403438467496232611366321955832305807154152631837469419310834012470612365429708925678699134032439858628559067886134218498047254321811943671069717453198590157512536477975991293276367147965441136504129487659145012925248505418288033077941799758491037787696251164227188123419293457984420959706027720752749926558062941546248786617261426737973803901844762171197556613340045099337527962036627253512780237863889129877216922054892495825798089243084015988788468692728158644892639427779718963749431518166907765782842401398384009641005226383467204781317190508812630109206853577441829647784605033542907730996697303204741847326590466514876457788257589998183621287556816291150343480712675784722259740692201917680625935662033539471117996043856076522407395499510594906900065070077875198525830964609678438392652145559573451100584697393669304544541921896690657275321863396677939080508680810765440095697533958473147790550279253590216833179698077292793357330601940364017817069267408456378614708663499196814180041880623538173576508559382606692560318130751139504221383188061694879225019202863293598778210742927141970417153350868128380280216950314134346144254914174078328673153070290189935405217241810178980756769532440255746399341063702926002034630019585267955472583359790383580872833921729707362566032342122345414538763898646825091450133029287077112147269346383592377667172886592451037591933599204129957475585836477559687668565444757272173414559867027426570174242081379362856303079430781666371515110170541521060277136513586137058493446719732722980936161343232005698823098008461599727012066130940385227191613118985177844335711744051455201068441869935547516362175810221707412412237024104333204528114950463078172366697735837631561673014680079796509718313335746670567489781625307868162666109906061762270438658201105326960876181758654992743284736003322641195098731508287627624685177163664546036276998385420932627880177096821978642083493270758950827362280763578596792259746776677770938085503946903445810699828190009964731372751881845412125246609791030712787853268248783798121590875386729844303019964901807412720824719048049513427720709111246697123340324776195083924408149378413596768822544384096405841987183171596261886379252068676841403953663003526972151472005874446431175644823414700422186378838147161841759939574320491802957699149924469825251529513888051780149378189653266341780276918870678313129873561868274821878809666684954737361517577822927153363658331714234096550972325416055601224986881373078211242681352876712599682702817185577228329712686621793873812076715557819827671583167295059177463476930434035915137464870495530948010050538926431699772109419727957675174808954572804488731570430758317427175746963801351538170949852269473187613434590630149125028983591155965683308802812314769852478207209722208379101129471406460424558322735506591984145981829079740838276575686968518837193539521181253336056470437494706962411755773037796542544275903279725592722834958059723731532875407847756209779750974326468531704430718570646853978171043507010901047641136954326870746005090377395557742258117633872642327191297699237940260200093582085576698344803016441498903235948425473260616753736227266182063684069275620554460099579377450861605928491778997695589782501623225406108539354922720270549930882606010961983047646220811358456747710843744567747793772913729223305792498447189076071789400698311318099432710021419507342638846522127744504028734315614295994355131926422662126043848272557332609651207908716732424518967813604937813642011880559695974145825814542573196225239816070644773644620713773053727827766871581832972095518061516951184866807830389261375223530449220979245323938577210390559301248066761867888664712788621107888186254921155433250643841027282220909675527758005065351178180904480089149145169679638527951469560614745131962718130117513530061207540880727759862065646586214224026362531396585827119050395688149876469552103966246257635168441448442506996982906220698516169024282392061982014725507114716012427711036057480173556901983963360263192874651134457439222392138132759726385382388273123878422520661682523104244031885362752887549799490423846607345313687130882011408237428224605556606122543746990656685615957715525713392951922032916633780364934794644744838530857688038241747710903364627661829612325995474905243625742159335817796633900522777831380758145312295118970163304458436327821646800118965017112557270032776213111722285721698695548869236041479999398419479408664222829240169905555855284882455629395707128380731834991023153215391755094408143442313061438985474211793008521381699479385455897985923356417368709793796360766276324587283749923086824490270827826439922922094055293659571774442832790914631448890091616822594962502001885376297891810654109224573745973280362429126392357013998905133444843404113412479833483187617935771816438954584895662157946494836332516140732925234789612067326959828172503169034235827061233566505156385240846312972674492354103590541307862940111959137647352706730889057225627725368166100625576367034133268938531347265566528327467343909252780662602513565566047416091709874466535464746184500078299327705350436797754651018467194905798915842568844849492036252552982794484165246263364353474029461964430203809928816553273134516050797483826880481237281717617810503569019014359537381607219927319550696869570907144400123006663540227642076399067648463646361619484935163259571321644889311708769339313593199771076129621029544107287878777224135797894402466797741277206154111789773171942025278889252479443325273665115095731075806291920346197702778341071522637156076349527748999185456251247206071178431052933996492884130108365112980232521462063434496487999038035359306851690044276341897202071249073396078262273490441417724240007540921269027718151199041078409670702952508864652423872376425426392081750514068078167987538102213121264558617549325835688413083585500070851002852624361669670642761426541494643422777297697106261904072431744946792977668462632445472217314501027744117451771353749354405698721031712850637352923503281410886702727212210792233580898460439792335092899367501369636605902157825474591318537171065510256909860426286902333228569996192787393209498721243968059727193578323073239650738469153221562408701338564584542651191949522719523413118916248554196758095682341435997051911915042612195065012216115627205938476711454903147479773166598913734587927389119627699122917263893773158425003775346763713195870515387773530497302075966467233087291508803499432452976510098927544244042499317910342851272681179921294782661577909104592628519366394998730156754469945448038586555347550241676338037890825330520153654962558090273362590728940475905055411126698717423088239714863190024008929956739631239098253875861116933061348705138452943771041955173177911788322576665879343212057954930367334338484664910893561292607463561067504285633834284013921209864183923546221590801039158477813734475686541449867980047656737002446872179866670737499331528837798349953236364469637286700168793906516104605728612163205304663669219019230599939306002892508252274567405910988637443458893630879480959723921062242311804409093024414893504813842637704770157207624744912067140929684951028327312996610377669886274986053479464634660671589889434724581232835456414496097216067301128154897271098322783382417117143415012635996967517620183173401977395447831749027995955057241317802318643798560474794227546956238231029926695519740373720281838786976515799442952208142031264684245781508430072245197107888783503082243308508397951429925109477420295317699151036318615456075588465313515763441281189758337312962244181625415685178156678854623239487365432569340727411613517296508457333794564084769420320893245965248039371925416698681675884443884401690318012336974862723045561591752064842964997340656825177559927313217157237557985463086360138875334523082006404924568355017420544241738482554863182998462162875027707035181442172686916887785464336935605850784694247827458235375088926522507534428048754277068430158136600884476480908280971348604059244626180588986472800904821319820456978564499132250031194928298049526975802016679269436539084706305043335852421465035264379576063247383269970580029036072315539174353920884114261924524979192755787437098118298643381397225453767448733479407068757636805468741345504901531977459405851013205823656166684057690066812291603505410433481829411296491579699301123690442923652318426379643014971691378255355848471737926683108711663738214736033015232109335156844714419587334207153948855651894253381108116605786380626300573506975826426600360604671434904472643320944188000519221533655931569582111081098719007116935361821094353632166462898856346911825952973536858131875306556125351975129887482123717253413674318579181105572050411093078061444364378656201957995995500041708109076458764487044791322208661426877050666128164240749262515711948005442660808711567538915157290981537341430944577689530555473098319093956863528615161087947465486964058517260880918640249544117355799658710206077301593005226445234958198352989204977896386752002711616460227876446349736776073315091914969519823575812210772422160287853534974277652132792277882073294266765820397239937524724389118407773878471652941207247418253752980313546302084177842120546046552645094058373289827928360365386030040421435595500646476464890111948970494003426403202864554383094454384217361772387499673975508611075965608952923060064245512357956333502519783329529923553040560688046206926669369834561673313180553158883697643954843492762865740708129988937358689779425599195849017385062071148199812472158369897040024480375556383021575735499318839618510154762931716246294378450269280740806649631017810472150823952597129313691051855460030840492254811607285543782991836877704350713913593034508731782294342480649997892809923503419930667276646783277614890094236978169075770080027831236599451346738024248816454172207633418338257859228779666685836507623977891589946858646777487759514068654895289268883611610846578726790692917138640548798101717210725279916927069606578020805714559787112817746657963028945642760922726468220441694555554223521563095307594480687322479641465842434216842684136862437681220641435330621618306678862007388823777475994942453118227512608609206852509685304071220295213833091967061750265941072387646099904474815888706571430394390659077311740798236144593533030410423469546094711229752339713760914345936060913224085419449423153873404186724671814980365104224661172959909753886707382979443899656127266699021778768249966212473346791844114573760251032676430974429974959834700003645307748827701284516561591773888843771293216913193161780019346034313340524352302148162610961680848855102658061518700369132165693087884002536271630888359248329020148988361201898389150464103566924767964112917307916674473017171000612878802288136995608136355342695879013505359803618008058024025062936965070689408912182853435217250863799743395296962126838880688369398975625790277393681578423045765212570160038748995967800402791379552898197351294710054459556442951741314482787489494744973476418038198116103841050085151761962644625099185403355268174427836292852237571785581389554370108226924350415695126488387437622910147145496718695230029292603807008569970456195147006555682671054206836774546176817244664119051385049800672896086143670161380337287296138431533092475090292881370407125368912037019791753767689420915457200883907781969585095577045281807329593384155324333841217201656206427397524317513981665124753508134282331841758117966396433439166026191112814129396546642068783993619881564414279188817282313010725595537665944596760461992646017699712946940029716994522851922622911261484221727939550458517051679254365355998037780989759120867408844920919398430384233831000733620524237489729286441270820826320809882323041161417662997334125372689707783992323630089989498102122512278363614270562403070983431420752783016325175919504473549451329991147839739431459577519626009803125202552109805612014652712641552895232598895226421852004869864067396189042401339006780556803521861795477121960616132996384920856129280744791984787090335728860892401895555559663443485830405810731243972948891135528659418824953021877782875799569608966886438400194536730081374161868942418734943055740161602540739782445106214976820604987845025547369416027475341844886906282149127533896113548801621638135012515938548246716068497268599588594486805318749206303098896539134295212040973137328813661659821208040376921801855000000299924705119326978258528554035198300751497936537064618928404826396075374998200155878470034539890236617692112669438613162109393517548983741360034434699295719826236654521886120948819463237538529155887681041888075597451280456077060135714679350684372858475229563003491521634947004034213131130322653581633137174373689414595828601283097833751143080079092612035693189326719353724386485008951790825303765892431890026102101455849557484923352454354898206072849309176388323321801812666420819204005076915610689066447293405748740115074772162149411754282350605702353439011657876310164231366499591303981456886564377662212741355740357832355372665095250727485739570796817714679074831030235444224863632444768197719163576853527665433929653326276350611028040582801136355449743028882296271886401738961914313429963850139808675471095868230496049759913508852888890789702594196797849070751154997970543260133687247578390340494787335768015887419251237177725362029097492308680060062616899770421760398533244887387262288205076681005120366756376837810776285241915752311257335284434777755711682628774734392299633385150510860699955316821317345089340282725089626027240651093330409186112794310447970272743191564971274664995499153151976030527195457649466983821903216429748262589869179304362663096015158210387751829063573617575088645485374395423449637845060677452170003635975171554441013924049814410241135937041352849766885890359768950140862176963492080135625603651398626875616831146163043896583158242771407218787746642975159734643112072412254417121367036882830919882182497759001105657281011625916403243681067399035442780573163783584728598657358905428551854800557395492062144440173983364892187777076782560102433105537386583987196316294480294944308358730850833181029577705132918168035607900877117853603834118518920228901717075828608365289392141378839374668865525997320027945414687445674451188965832858711906267181678509634120235158035671273286438477870418329431183496115643380628843590986311880546355212094129368620457079257925794593731909589319539413906831208784424833322592630849910476818581733052701967691511774766848357547418932784944125417033086878345451333634278510966854514448618526597249350820776797996754199904316942590901327909661713517373700991333266423758421122820057057342154140974255432618917503661923866731435798242407526143568346345220243825845335249344875790448051918853896357461032176468565333031054362312564393851639233492179900546258627121777656963561336024981827796903965796464972565197830966143952056719921003508031559159688459022351912332552819452613103882437725522773634286656076082614424535490534590207398225428749495474239476124984010661777508768782436250306142919382549004167991293737466213808642805693707907200428018729434365592155460175153122801391339244900995878349612994900699768163971163070475261487416334209116437508650134891670425086725472847206929950078156274340683694048300009920446277930162774204541280707408290188760777355384684343198664713158143649335679277787531630655158911141996960289278610910252655120157455979294452053591248827259001404529556674372390530123847724640471678234897283042771820310757837243300910066731433951738135362359746104941204138267290374167753803655872567743852106931651152748155030461407771135948640889352750385003963588480402452696861501287652170630347210247976853501959409635866952561862278285749810475079970221146331478870564836252307426200418825888072251968488511221640671243313180798077732285686449663579604826708362534500813817490074653712324429517357426490118398399012939879073369777258596169008358016399314072726645246628250821171287315969229516282215409698920529676685312808825161705089661444355372215905326262171222111203453825895172455845549176503840540067946828065455472670598731776687473765117536892981926540965294256476042455193619152879757744658801878721220617785218017469589467718086076829545349180304404793898832423531700569234413036624338167656180037713147027831665082080088708317295230147278927271290931237521621033465556549502340308416378882561406298256671491069530166060198993976299108902300480202232738669442997879864163506007333626560016278977057951907663959620218613837405042390489731007974960444994004137066329992455657095506700732291420669818228776617159635795787117689930699666844261446322031843503824066717939481113075275620030468569072662971606546253145408502629341579895759636794464870926035140691924665980245654213870896158266762028351188536211408066729018528202567174700568339406314409896703597711241999395130507449796898904654575721911250969260886366958148253475130759256460580331463869462208294088620616137003864308203649901043715343576491299919629241792202314751631059951151390382673215273397039588329294541456778152785936285444131942658708515803153615319754927394509118060030141789503311325919934527664532226624669822567615770791741898814540945525366685122651714684841319219630844941721684783483497517939962584576376500753048061210864325909645180714485894377030056410695973394682260625178976738435546102605540958458419490600438697466053134355619136711572013647604888914463733447342521237002632738227660524315201487882570568270964275155800059935048879934803434760678434726710212772900646447871291828152784563559058103056334247186452762530630283689426407576807796404489753702967130082108238894301688529941977510260078710343576870243840129607996186855051248943918539896202784516538575672376273097968774362551948134569465083886174734030123158151142983915702945868021676795619065501123721750481316249738238689098054986864380464793360611110047831578325223635105048476310425055213385632482705839554971280380466975259720120891139527153141966676632089132382063891093084848639545483200571270521233116218712988842216911053711441922614405609861182858054948666484510150556261939827715580003720041408605540067608639572609570162152053613917508720407717799228552084479827570634978060337594134258071435151721217557193214668982624976694510494195260578722463946349679901788235318820375707434599663883025934458839887988220649470864493494553430329386957542955964906672141296314059591822723004282987118971264602510058603507642034099815654924491166652717213425337278257112727467124950335334357697441232151821789736823031574690800438078896631077302221537886506972534820491247174211782936503338025385084533283609980066295141209892214294212345773716320950697076848383790172378980483880669694550058782833016475884046022459786076460948994747277959714786599863547015465336709347041018989574407422513027546537422934068181182420474901221626018838553456018367424420260990274910410183521745132263309033208125536920936307032524862961639317878703641730707594603042293837212349611067030594851355792736819525083503309449208425927405020647434903216511788408516316182458516761385243723586322541883558639702889737482580309013059214564562295221550988527614548006378369293991947468476778242215950878396589109531364010841727843038683965078270549743044105164458200503561998170841884217616616829409874946845547975363762842086879103551106593898617057760381870496925722466370458230041264088599542311814959588625895017582910209611939534035651297308429289313090937684450377749132499178219933987024719019767726967612098489303282587530147915199944613398293220032824843136093143159691480383624891440137395751873191564266725813872135097989405596607405570730058642525827670097378390310422022067653603867984836976568051199526336694541041672495126961017466283709617693745963723486345072561869565701390891586151886393444374689375716635368120860271267302648282778204794163889002057451329858813448527592718824508185051488476819119856333537836838298001825647216179937024866678465406278702229827944066991481224511653409107293879361808186937098475970788331617322262656599018013579268527117800467027272371803377125820518530275927944716076270449268338392502095010729331301744011437288048820595467368888957502960987158905724538337806456589854764659831110556126980749551104873344421230570727698195014214687034693065778955799355519978652991680038100073058147920992706925067155539145866521932127011733504777828071549509438792029267834403428454070624215930842583541016964149644080733495756467187149872728258392165271669863234087321860802082263649612521210716836946881556820952142877074550260333762885290595604658091376241824096724824191510200403445839112932897850264303273365100101502601094869999604178821597176294375262954065231602561287230785873017182226029189137984288532877922926013458161988117840820768206842110594064545623063622612502545993439701655976329794490190026899787700532081882305666119327497881453476701915911181565976646333207921111891163471314660728426649483840808313493478095651341120089732693361072050400396913598425212704043412925167167263338955091160865805849145141811850688346764796900256244677391124035930380656645202560708396705124765306858065642358501463659221081079165083869864574842114639132295551644670600000811131122486156071792245861174898769939596672539212840446812613117312800935372265950538279177190923786537520483415235543505373765819044558267502849684867372745992796656334437297274381144959819628902695374654150873365022356145919128744695972559132924592513115106846557411394927420222580958916687658969600091942715242634605827545818802606943057284954771545371179700060103366422532401851011487712046894538446355682043162428533842353712845243231888780119141593415734530648391958655597241981228237952210619715441859629099777703850127122160833331448749957878094606153723723143311528223762386366273846403075990014030573045486500346310428728719343532253610053661372176639141406039866182179642063734460245570811889931585307947032681841689929653828942728481170509855980956426023648352191318213834072374170885838690987828106501861658159228401982775213128060274104735872965706833133423449595905196571837679711645803037206375642763482134955053760885470695665021186198475750958470161985006624540903049231607036205654657963009779905744394191378014749191718385019389712689765809205015994303783203645588038981350630598432421501013344069802371552015051441049713737457240337834409026715032158048472271427981484246811835624372716491577322222249109415785937024033313601573286419151260661895203468260580282404723351470000797596783648712746904904406565922008578805422871304826879772438332041168636328953834426710241841076238142127321558666715660806404375633531711524467552459464328159505067912230470202888059498595216500213507072154358478240442855917508631282083503940405853648091709574332125795177140230615268895059390990869546831008913648023607770243035674916462418554126526501370947295818711049080933368680680369879903470107474007531613657058140985508237568019393532917382458851594565177447891790224301629986667282538412609729863888254525179288768554594124640412450080769368827728665782929512883069428756083799677911730355951771362549220447396462251288055520544020806738078410277815561391671391346359608543084722426941000514466821870707058173672448161594381381710040972926410332991919442310466152876197981943551955006223404386737245228946787664154938811939666545419224540328793684973143750684215208237403565118183800237641740060184908168877163560327960456265899421533250366471764338667410460130888980948918262163200540082464662292967136291439121738356897630084915267420177259019150717208074622769090668586016453313775651713521377397258816362447473391767660566503220724574615554513652985384515478613783869070104132066415797104822358150684858471056819288961504795489444001737900767623431638061962064352105405641844003438749793017117527894404957410120364474561709704157175655103581847739168906788056110564792899970885303150021738071072802485245074782155615309028597902686233123351187191248902419508342477389860823443319039295515801213614971412855962873635346212795935071193505968784756140842354474586026383240858652612948975206387721184740692500791903214220047082753668131247804663104495667271431853312864272248280871850344967468352797823407171598786955540882307902110420746047938742967445924631325853903833703088770515669351659048786970483204297027196180755678975504856237290106700036518291824334432873011076557285568877847262728505237946329050788426037082191102321086198364999980340486292150025054696560765127388944685366969105050937171686716782294266369801852482773616030920869451720889135204192954162528583069938026178913512809029227714084841441362040002695597400210245621576896622820923864129666081287445299864175335034613611651355230698580413466904381126135253526425023676201077597478727290043911322605058978389415721644215044576289238259180669576864652486689667223465456855314205538513285511502183804874579341331565306642037709112483886408052589975236470177826447849376946325007633213407507711101840602167724194370832554044629958025258739165499051332835867821525565489800582478916149651839920876825797057809480867651695553542992920267734178828664537693249557947382612459291334426102565182770042174604482306291093362005918292128187397560992579209330494795505653831518838474789502348962539900467759015553572413715355880894260107046820142400260562354574002920204150747703650210331735626889796188802604401761937459867508859334424233663587443025019572666001670113004682411644568514622132740608539775178754599653756923444099742024338173976712990885023023849067167508419942907896292699197177527856091032259906235161525701868653697945108285392428235965702563961705155895140228211028268089672962183992351533082887611828026965765452516701241064124495391344424779629499857072311274927264197482427219718349868887051059037010501357722773535422849039102115517525375345186779207602540927654107812573359381907216700887791338106512469458603014706404006517746545422656313252670878900123904455296383630127781324242504390553829214960944379680385617003585446658770034488371094877832872070304247181084837839278204067558506129508155397135373774750961445764940779603519856723016868883682859485537807829107670351193305943087773587223112955412728256017482654745437943097695144868136270707570833377985598565893962395836825668086872586883106252410304639634329552650769166715681305482700520655857669770004773865101224891396387712617089868896420138143791843713642679988997692784255487533068758319610212410011525485225859249055035691000144059441692882195793695502775934630715380196272852309245815798485608554970373815820418121076058786454728258374632633768340820779738631878215479982202884801252522082254743976153052450553565303142243118546036839531198178022439129457143815998921730408163055672599882724550360424556491425596082002740444758247216961076741328813472907119329065869869059155373516835557545650171038163550248808435198092364076673348832000729319317115254844040313615877336748839833950971620276528044200929145124010029327314339603293329466112607116698808872770078898343077152136890276210462476251991348559165457874697072864517346288563438760908916470947252148390781004943177004125519491391383897480393927459728850197626439759111254908266295740880263263446777486177425272518493686883164757595139012867915763982248605269264099689296123131958458591458530722896165613683295733790820870873485576676369818676723039357275379809965712377765987099399922933723956457251362647019763907997156650772028313085915147617155316217578417359184954150059148967466173446007489649817275515174076195271068420851478042575499015918685042569055712056339430854322944839144404007390484445656976628670587352792140543554974806024862825811867890893446943633802276844002499271121175861662159638161337887637605153207485703558185105322762335932799866767797329290989448442367996049415650442298516365200841295036784965039056864265362416418989679969230315834792734433357877327274935505913762051629907603345817971251900015848393789206838415314854604926840368042857040590263279968123580665918858067705635151001935409627586350163235830304952234742244505847721838450299439778023985605490698452601926955787132369130604383366312724352104454633309711720172179147351689582600722042843413515498049503055550404976772153741673694106804747986533012488523588810093081072018516095050666137242557856570141732278298682118660097267734038442699007879140213295104562222951621694517470562685478622764816337555165736835800743646378330341097435489331489177429363829222623629344524773789981817875252012328369273237772799843971133286580460205446452529207859148661508235718206401616212396632302509833050989730052798349070891813026100920981611857367860232179123835360397106203545465274957281393447426705189970700622425231008044837833084765387108314666308536229533388196977393997690435874102206201912673475605194701500167837943970436493010254705953696653905005312615196913240983428615184306955294248061347724109580703997342956770652432968044525754927762145188803754597842855135801813347018258141407955400672908789588705227942407188453222573335308927018239200551505336878832421891707742649425322142169547186545624486699840691060497071126096349189715806594005403042962312086624220806492117352390375714354280818515949042196600727063013684978884260079204377495559627080248938488055964435828252795697702039944854662105515677054869469620262463330271981607817426242765374342176505313493079688121961876665286930376524878769061783853078224679296444666727577507264319228118805941124249297723661913700901242777451717291496327566156779947599717436000608769572002490914413498021360097242776648670407839106550552696940194278075126061923001086761953447390775525429397688817399054308630835757531954624031308639466927121231915115330970465735408943931380075306518186953648375020794213508898736549118500031128287430627168365568949661843854625969906647803240106814013103145198336516222927713919728552049632820987864182744498146852897945721370052954238352166372663065807517271825503278169915707996391032633256399356478709581403162118938240453781661549396866300217369509116582242699349568848577391548332240475142812549623031406623771330862623797945948286464771566082699478389959545584667748374028677929944836266954211785726156054876490646351866318222308188582455102917064702689709965160884421754212953677206375910054985060845022712414642132063356088587247016078173613817020955817309189430136249710772954858834806977741094961520180840175981352804087680279561900311385865623323368947712953130294108576981045196851143270684186813969982227288538757518564321486201369140721695457039358783549507782401784962220784334561522389811653206401441844878315175806763261839504811759750767702283468537094879956240459631303609545265263582708972862662029311132026161870347147637446083709874680872061560686784372549464053684648126176291057934501046068703858403622545110263172466587248620725821439154082427827611569060374316231588777972685554459060216632340414969409791548345965686515676417087536247732481000796141034110777855416825084581685223472011991736878480565990043855651290177486614466335636902488336364088167955335279615053351145347325845785032686759596465902310954633944080387617007379676941280903456807161779661902217633424601162118682766154031572648762017234375944484914814614763870166486109797464105038419442097552910642940537463951943814294750413448257656724106690387148083788458963245938962489453205510560501317597384311338914691982677621101696586873010764951559484672205952232091763437715050993427945468303723909248763502158912496348252908894057252962140819394513731935222227849684580921443612427031258806491040850141112775087904743404552259753817358780268966207091401303345690047335906719452078967983987701456681797390583091185883965628660772399787408514578729223044339635949430220635703295127025003077356975831688085170646260859231036757630393445923499099994193045485190793285096856993493397607667727007326372375312335845278822390583623496006976588832361003191449952336156321614739271033185115121065095846064621688919640035774132326869415287580174814279434443436376319936853525521875202958680442991839366856173624277918020726227152040454097755263358581333419922747861398452594315017636218978078632794123563291934538538801621547699089759979736816844269607195944099346208216516921698991524252123477238190564325336220803686548730583250135477971957701824323358212604097968020461406312260367853043775898726752518232337809511506362169686706164975240487460601293153325476685372096828523024224144191274185332027343742247982068450919183197346389417912326125795805905444557981381738392921039959738650535045681897231466753709704050561560735433231159621229141575944209986517860808793126966349794531839673548311441278766194221033102725699632435138983133639298518986749177886281852035460047249365135055829356183579838629543997589784306367368831384087544603925156384268307604301200755682745166508755264716931048657252428008963519906358924774473469110650883364972311615988130490689710067662058651086025696232271092238378353504400636488029584229420666137410691598622337031727515734245061549417786781426938771034577859385652178692288778864022318370433956354310322481124398267056664485919092824159403054501972074282351788860416655564310235457996895826231074489698501794864603155935551626924355424653186501950181372157047235417887334671620405891668731048831483497855509204484015017402457127644542098047459345162457484890151694417727880226759021923374879804226759477733896451206804146015654037437590627619713459876710592118944152956180465105677326117460392128298578665713713294583447260352783759982771103384257316285768319454224224027472328689936744328539158198509021125039797742874821702095587452714900997793351132144310499999315805626327938099557296408221364059092930380107858631375310944306852624432616504591950719065557555354968057125935696981368558039572895124905711355132468854722351966150201844803175325926530391406825686799878168545184653901349009604247470127275963784188588078403205194984408705828001869086148446100998345027468388283562695744940073192853155217883671395554492565769187617160803097884358401494841631589985327272563229881083544847397839614477947901347078898872861223945061417549169847535274675609955770103898260725920449468012861655247178167695342163055113910168992449159581332378228360175191507336370550526400093953988895901220023754146911473547047810311509818361065717915032953898979040371459920940019181267217663720903142190622645286581312422683276309940520786043499088800282073180702028397248290992574175079261921133941047091079579870856429343907980195476061783361514034781223966399972758791772224618067836124364294848549952139716461815577365191229376296348044351078140279819606724704647213653915805572556334881876570734604521560109346963935269643380092922673727428995803101620975245987529556179815293615795719646232985175818251204540082464321345926753322575613142550780564956058122653590961335545428503934071258138806580502113914753405143125360980498263702646618549261404497615164048967806228015113544297745289157538514695293383556017272114943554561131808285017895102293753966642588614529982500726784814177596149996506716484217514010159484156360204103246983986110525086724732346581040539578441376899256683797850600308597720209064957122905459918067140438416695200095414101581381914839833834341594202145334596443875905801094545728796326072952763817547133348283754622224595712614013073291142208094001539142325603616460602657946173296181740723030055466923053916386261179716740162370648219803296645276401227752014050644154398099395420294034206509432030631441900684130200031645810241783331833893899258265459941069460184104304874263780802540437609721942571680496130784770089086170119418443017471619387884295366030091076196057709374891117206952136186818002952759301999901399707053974912340133294151485528152196504406241939261946239490751645719533945665896619946694637745860581466887437981149128609329537674833204254037766084266673353124302681477443918534208452347008325790258119239804785918095201821714559530674784384188421089783911427089199595147931395067729083106809513208462297239518521845010035719146262890092758665276259538667112639979230184367433897496768937555006271308087684838588353224103840495543248154853668048819107528309746734693629628333546227223190484707218169045730706207034551577268959689101523102400638581939462614991434666843049177992918568554785536377994705186089672354562928887836226256887181087205635860852985287285323707922840785288677889449510336593714426353105457057380785523220226116834827933101075878635114086922546467287879275798127392432267052178784719761872441713851029051411836616662267041721094178039648685119884947941676537873386577855333009133353792424675729586600501838497930459015501005800765520635157744436695612520622106299173265718521731831698799942019236538116782757365567333017381376797193521643034422606005271402036022260015570414889210955296733986896311902896542650442653722711187899512028709565222986144670164801007916108689047616141422064443353394533493682784297517915562278453965383170234585806709267492653210553555797608880529736287856309859162048170107814232750314545317092131878334672295226771398551569287575770132057251188810542147167998859020455578108936084023179450019760967039443891338761171311283072866076064904741878552500485372615530065613983473539409538128593721672455987908979439207489438932020021783120183419863332545709274572738193517772573814749423132996972190413337347867053587006812910136169515275175125955242848808799720342554470640278397455006697863462503618013718017693114088786566624247266644207254491575606083099536617371032516840547655581438638779878094665451327791431431686245976973984863947706548521282215556182382227720201802716613857271128379268687499014601137076881165383729271436025180164023682292121701866896099195113255130607684044154094041595210969495099942141540969804474477564434155913926245704917902185946672746245503837097208237566195185645244662229630661784984661343336606413174766036859067341332632651530646876580340526054505481290005409065666230806544016625220560079253393007701621213417695842240086592382387421431171681324576428801567624917401595596184462343357514501604305310122621436561378517365457645555294453323509073198075179704670005260775064226876110405317562732716855765544473296422448900763148212530520340492197692551974571352556806484489515655129736632516353068540687728216340312614329497168384699652068450279542277425846733279048094532837455700990364249951912956283261519390091051818154494429383976387253301331158144277540642496102704524126234266567809664263163937367522093079221431295111885118692082991245741601338111762025728869312805927530933206638597954936080369608526258423057275446268545300415803576689924692635128832078815565531813858790466874619769312165860833686819797912246130927233605794813452296651828287110244951008587417483858335645033243481321796196886930025429042532534199404093288496439823251323457203991269351964888593730641587761168712746397195706431451728991874758529864952214238604317803126304890289827575739218549543034654375594529374536848663616389667635781271792060190249408326399820487581590345051573906159180145571247513477910415969369449902635183173085038350144683241461174999077670161172086800371542742626533110812973155137899834325329613175819967789334558353623098623519279734979640049011091384442440576789366669473995523957680943620629161719154302336370364978716904046550868710732212317935110163325510533361050476939818761320907772017654200150202426856465298808320688849550834225847589649082437994932770974310108295799062269152588145719596994036250675144144056448533429252389576084782563834529302620431726009154647174506761494974048131414666032996270912751536502641255140994577590723292306250907348842049216237572333565044589459572277603244983057666064133746220636570000447747112177150970096734175605279226738327380277197663763611216329896700084656952937662940010277266011560349712240648824892406447485677809012293646019322708927979182186208010923430321514143275183689861163756534393728830600952579859472286070681473646196374762013904202081947158372155337910857013549770337525332215332229044128846713737574881108115853502970885844098688372598202005306899754525419141967494876278173109223417145612798066022237643170577701527180735162432543689651256458669671379331939033493288243716438853498672626840479702392594670701087636578831978939940766701965390079526948992967768272369596509058679557443488174712777593946267443391527041029365894661202305875792180814386110897631377604354638440954290752196402955888896124869426379709682642115161251474751855785827562363834698896201800789810929226506707154950773321770189113507869824763276876475007420608120231020499648826575727621082721055889088463788137702009150979129807556744782929379229001884448340872440906940765537019432983236950632499999476412258996441019612652736187145487442360319839099667973239080627504280666761707189731950178108129572913523419220810119240074393188641068226394140453707552766587388254857601520652798786141455095082561698384593809334542191734523422339629740749274686234519955627770503934433422020756893331387011985598065917590399732353633850788868333101248347245901435467520991788301497965898660525387951612409885211255095329180543745432215409800892544816623067090340596308411965694964962354722384341945198323913342693647254804219863161426907269878633309246997120366772290092671729158146377609954120787124526505812630478765259237345801273251896416544502914083066297407279361199204545940588748582973416449145894533031337728779004988189357674155592538340839542851349788292814817739548689351206609130952071071781524276229336541001519216375335891208775222535365452400887465567162395954855722495964252485289906575425408467146433285812489231463278329075576510413426984368135095762448122668621039117406606623721671326982074471421400655349614077645612143379840607804848944774961328505167829828756581418711273482407301048336856119102966289886838012372131323621894544142815488348061388137925221145209240237319737581851385663094026324729928956614419303331809451576481449289302404742104402362297724939488722216623491932930491286207014849678535438672800544736007600760020473895274478563152598805880388095155928553742591501059435026499377979996988894406241484698442632771939529152830829541023954752336465445969122371269082054670191874651595819437763327654602175738236192562820177989311260229841510035181922752583064668137107724082153297059179795473159419074296339415647442339181250320332467475099409196019683860834879448867420590896608744298818514829069204039900932334795316202136785524685098059394633070716383766570342445798639645667449822889134852314194788852994458952809318830159304624558346385396356794655053238886650853023551120347901544037266013044441688386444588775014390156433572110738907091230161888500726051177252569578460246588995043094961605622437513833086226852460040532152893678814973439338602614367915898958601666545950781904578983239068409608063073417585358678512367498667509124567380027329779341378229643911655389697420231224611321127889653316228001007522085869338490017349295514231338706278440365666226273955304942624413301346413096331125074146311922640235171227825760176942727258290127709380575003968330397774217196394351102521876108567408072956298135601421772292692350570283301231511820327723176007168247113287791185043006533939305838661569015779663761032961338211017668723608799509834027285072097796212552094581340949579642310930779729321824862611611556757141745128464893432443122427146744567920785138428583494354399619018709081724191970412874695446941301049202155005754107880538391478972087353078224958472586818676174667130774088919759795057057623450222194075122657687398496527677800756890536729619920945800958733416116311492222350858281189355962068645764706477995302209311479382664432173279335894199190398347816452401598141493293615722413329351091787041183147715310680257791046448023978191004797526489321607335529152176607999594799837819179870470557951667456573952894716189718701801742097311737118741341697383563684792824037493098091061962550164769545294166452143215898815195925302031692354110972802365314194346438816359105431041737900854629879869103118105110209370957043097856783647851899011592266266653083042522391320359496310640027873347523836167419675104774860906109756684820338267378348613879190763720325548269020390920622766695938150929582037217586661205892988231332019055415238396576659450686474785351587490961767375270370494785173584521861113842782370304511231749822779256550842190110210179311881517223932471819931568163113910322242466669629948589616222715957847771782794350654228193842830793883789978971524374972433476575084134352079647044101584081237659355168905445406414620342247530614316492301064967456031093229154570269648412556959097113687382831835396300824087252548812716909532560910497629060479734057614002645448769387919462266937624720992394707506371463280905618116060098496852917649236210751405400349442866845146372918680828276929291255172930986426458922636879089529460806389995935890936855675662512142548225872692130196836262738106994803119746362941125145846949103226067619704855322233789415580997729586466118004599074688538626531696398991442131510525380744181498785468344150753955483246671179245879236738069456768319726905802505284322056053477620365603405227164529060736482699814399735601486558354699342304347113810694324148202233983740637265351025818952159902505206452470490738625269125734945870104773617129329137400578057692494426381918188408246577344318875783202661288465189430519246386234674833919593311719601211178896254197328058943032129099053091519246370335257870241562539010804415291351954758195057101341677659964496064716058327161671258839352024862578164537397811073009455187003316760812417108283367263735022293544028929371612124365145645463499281718101874665587422232113825163322542770485890122897442824879639406606575474987815983518897635674124748466696647389376918414728223245776302273021687418647525923346194827659415260539381336712910462168898854046227706590093155565676075271647472160672291265584154569334133979564470107588306578813025173965308348626947152289263751392663149342606328431886451102068462886768597973681931999248672191639858667416436093938954084339061038985661204903922692281000863855231291330504549247749678139243987101515415888209937129828069833839701362730676832711994681363246421575188079291268502449584052231819819706870605807330832990634156825964475434660948929005223206822978780057198566262576988445870102928930040307257851081408632264505101231486859989342309332874566632326012172574290762518990804054948451608929470589439310160047372493181254394215696833163340347100642996586766172195283069975229443152644611443738682109396262427853425762849771758715490839113922514929852682648872692160642301068492017049659828631439424338870085289529011491383627285800305141904873384712875528834686261834873592115848885933004140577616859846686338788724864154606968073676792368690614667015168969380950999600393703228396085114321327771587871048544618668798002831641288651825893398303664498585690074598536407854498492695154457135406498028732699606747737728850186781055936695075022447617884637045051927184760489353422322407487164141576768385662657668160246023358376388124114521952937104548585767304788874723553887562460546281702793857559452052967423795747057493542468481868722951235339128106831098533396614269917703323505334450571947583502127276970151593751205169730725323176485390716886505002311714836400566914982042291828963808440352797570291068069528370169837780708784569500998861860981492632970534372903774519912954874342509804012011091160503656797758950527793346621672979428651210355501934238656421332574208492177012456556711929268672178370300858128787085811994827043012561878702029382910910135969556164657261320525512208346935077831478765287899897388889900966498474226515586578996752977956796106979505336810104920939080223752987939828555696698339222355463518621949951359532710444437086712273136988282028472370312437463140575488243223238897807020033428171098565830577453410956198749639919770750572907318058758749711648484494209528365935334925442409725051805594979493206955870722758159835379706472547585672447792207949479385175060685588147095469592002529318321664425659550958062649363224286897860616071277605706728966873883023322722034220072319537534051555936327077753163194574046066083417234360799929400588529993385627996432959480594649828150601498057208043827539569284618278558790768230189601358290041776228529039889962305118867574391651624090310084283937853696216906467158839445721336890192325397429182364669068552953182534424275123999631874323331895611355792386877006507529776409040074466193051934532260327967379114821652244664596536178439306958761370132867869752619550926361833261478886293045161706485787933649568604654185961617011798658496107444845114260061475994730794749829648788822549597153627233962472032371462159959705726849334933976655322532326264187337789834291881239292952230968664093130527750976126350970477120691303155270084749359664206351805139198936135504838975338839274561509957564003562527841248216432753723288226025731244689308225500362970441015370628730470536190271259009645638106467445968324434727653101751384097177604616477300611182238274672024896258120241998501047420243402791654069870966438998552022058656379077157590561348807955717174027934579881829001988306489550346961582495665059727812405091850892229579732620988508636600012179617900932211130842889794489482247759000654682814983558746488987639152791263164114018718750571104370101193245420487502296169521319190477630483490671448906337456307624324381191165516542424825003416780567716777642003802136001750975675555415278573497544946332021657629104184824969373525359415783935210325919585673092876224842684545437284794312104004911530140963219264375244528153791297311763746328852735528184126752937331289551183559065621363549068668744954242516743655823793963600442438636985948270138584297785636114355630178854962393845595392097326352283936084835238930900678619004150867408516291725798498557646347442649983962009683495644427361107322277544638092314004447708119293627741338419936384021137228360500391767700296246159416916800345608906054802436788916004674653273475424370653120774484583671204573722338097788614903124249567462410099146775822355292001870593951016987554565732512715503272331705795086121415558519924215140260855453624275231899597062753957534189437263549947891412285319225818546661940867192767757890856692689970319038910365150018683187003493202621522755083353223723411734782312390755226881726560808651830517810733171629744337860188700660540692864529091209298044410407465032793038264262990477859571283763274967604206307241480588005267261556152847022158750449114289992228992986447134752566560237617212816247806699690501809983696546559306627866220089683494650237200809955790123969637133239321235415278313564533285215310251497835601263052487162198366877993634172435053258946297010118820658218744957998363789953385554324330457323256550132480742124770815077534322107212267810577684296140717434778443640286590100410801714401409293153853310369181094360142838863134788697199299985174786173284585956995025160814090327656610504908204430800723459968769599415770205315746437677336619742266627016026160270846341713498445324496425040943306724485408805846558955502308209893139649836088419973156456804847264823516705733810548181308269109748270871943692290364333429099112875319493473017123632633449024302070174603769133677029825908599998624949035402102016572356738313893601078348079753598837968013244996206899487629117421705145805087817716877352516442525378444115502123864980906093750195968698346884025420692133946025349425848854708296157770109972207711207941820754240265513031016870343390346664442527680463294658463414621761187745520599973666539611920496644210512175327247026316090401578581551194357992505270044353996945330554078583495787856811345553538317020226801445080781869620250629713068734390532733088873321029882735878492229765281974423725350397496043029277497406953964466277340815771937661351675054162022018042834658870841237132303514209682399062965472397887841652795854591059005843699468246564866118906041626341188237321475859751577613096736706925732007178921816003473244817971185895770169445841554419798374708821616639367550590756446195504493024198897189712164459738639186665456019173367611983895022281006032376087911179767196057467438685807898832404625333126261522438274186626140497741938280861732493048919475243505544364303588621404677995785138390951180311135866753693499437458223989492089835148488071137648641186289688755498721381262076477669785938619234937961253302915007032323169051303137565305370631947746881202058709440077257600945244351190712322588946805170298356571855061309014037167899887330945208620335321615866769930799119014381400996675380510508782803053825511443352789851479934628968379461049276014898126030219210974659112860691516577583497784530782457474342412694495841150424893425265131136197210674102790897912052989590324526817792750457752572287528580371257229267627643649151292365673352921586638134400419363510486293316827366597612000424272003831508329956060845894293033190807073553132551634555816300053957931692496948817133046548539737924817332891722902833107033385081815732006214389571410792143040245126132604153566004810231096807071780512533837167659643253030532707194679421843796529253585771926113767241086720806167000749986329329391326927493951878186929231131881667444134142435884950517889371821815999434097768383529707919930231127730952781327658449659601276608404613760607659665628991298273118439157729950288713212280103856521859377978962580082491318305526738972361606036077368980838343083242664006523483534163439729160276845399805497454610962667617599214144635431323595736091484440268715251930588639504023701553979520170169609096675766840367556531925478229788219471784212580605916730291360955295280017056717333854868750629654365288125712896451829243671521729347243732180872739927274350451909984431543466720874507533959861129808190458790026860922590672518290114576791798216913190569559366857481440463670534397221604878342672906350477602179669090866201150408485192819356146584270851127765845213028495200230149715231356602775712889166890157864939891962315235472561529189802272056349141903576004933659941572117186253825323251388656217358526453083070686172262129958101415653786388106970725090066839131184002223386602103465092961712570862661043319145092417912856554829882677439528645761484655738060860708562408787313526021075751008787788336465689029382754304127984535437386084154410490311876899260342595361639688610633208354951597716580566345353688369555945957823767300295782105397963914562247517638195987136510564186066173684088133408063260505586702371591833340128651724289846444244650413107170686038340166987769976058475541418378564414397155247687866035343038562974620254620464058099203866696639741937718894280173633616813051834502923277518831500280179245738029564166418219022303555089846709304856323718309140942269791387389345273477390910855802598372693144693345613683875346167359167210599892977599175782892726950071489030082107358002227295900157290015132294761342497078247975061837733531147824760958482668355517086342456274910282739134388537518267460145526521102638763506484822164893178995301085553854016265078010556398788186771306941571778935425098627889115971277150634734238248027743570324213330731288319782258832181693320917323938217845780761286382928147293891620146153602389906943749907223843520028398546811251208111124870767687302607851152079291002103738789343840645454062018165517798831675598693296120592152064010839194617963776128296431795380057736676840077385709051345242775291451624335871982884212765678957165416978989188387105438734801349254082290555940829208101645877704787314139361588213432735566417942797921146286363611332106951245720510096037338319608929724467445995880604824721037540525758019895182945526652987084549161504844816273261287279021200567982767334592826690502073493858645354131234261284351942474473315435317250103366230771652455382468537939701069161176022367532034407486026417012773982331875958568968667983309638175549001631183820354280267148184222499020307317862003050475449597413042885240407189297086316599723289832912696288984118123136345081351799665579050339228961537446390748546022569695173174613672068101423593770998134398583275624352732665819524460139682990407820096510718795421279122827499259682541651704390369644731732456038255167616838240878806216837143871808883941354732263325376265724679213698602551937285754385237181110963131290008255533556403692755982112920824944719954467316042001290519679088571016316803167063068466050088138207862781814924926566751658864833902915326412074138393390966905324130034161225555545783704828981115366890368516102466198984629470606129393338281435008836740703336552648688279756723667680777799563933952824557494287126756136999107312128083530522836449901906704185394323604075821315502920261463181871944875818173217176862682476578314285660370520372708119533771334650904386417886455404318645906051646358412344953981628923488661105228569348205889739845466460245119575428645876571203015771020709232875914499703273716510780682791897664326255280681560875745751587609420142761831819952009122122511520509334993138848935885095632938315996208443112698031791791344324894696918001968033590691221214376308539718115308849479261065244540554264976845099885304497734076827770054916022648627422923066509618593128506084469996794629812089997940120487852089228056238510040595030099662620571053821334520253641903093041699126908986481630999099276270271454621707964993825925233212760236418234771445550875408704247997104529617423681704667314612083788745175015815276898984400262410789247731731081967059530533267555997026309275398369375429806025330875324305630831695293787977839925910891947371112328482227438237302885085731810867630119740184241182269157447555400956612906483050594833115050949718203328036060957643843303688663789077956050183254808397909843602508419689299054308252874794107959949176412805904149134129083469601197372774254574903388445532356074922701508487631308031714217727712390944269492968502429888385214880443835023994383637362717741538946723638401500514503905165912920439829450945870276681471413783500295558038599652599628948758062291822164480337965992021792037393521969443859037617107503351119542081460693099334272899607518545464854233293164254928133939943089556952831579275195912632719613468847475169247323468721271336559131417340342225423168309741536837208006436686826957090664466420036078125317843208463980716172788541000241219108123944706781734048073595212236037654221238946636489951152529464736977366533696132576968067963599189412847323154352683851952975803287412100891448496482961276101867655571079094614565697444271346641193441311118066327226362885686949532079947522239002546071920438248346408424752031151760874017657556359043636168069818218498786018290277857977347356050701981792769655483291646747230829225449524762787991446751693251843607036993687910086721084325745550300347535809664671688109514982012311356080431762673657710663156955612068008559964910856767447233902294980785349311393910679082912720109917314923428429489331314957873474118577661561872466423460526293758987194084168650327046068955642792225043833568921092470845967857449878510352586828632640091951496196827620306652115665011123554818875696262718612740903798330629580938492725973538051749315753384715229165393814881102691087683128443311770213594521131327220857526001181939497937986195232491131116673493509439641607221259368066293869923945856349866209125226410940587104791073476719304909634555379427169988261901574423216322996078670166367880885948439418431411978102028284056076390458290309289584376308912906196413760750682128123444234532136582396345777712616945589899075093998974682185695888178071830882881775187985144433681891587038598488904320334459848975725284194587532744016432207661643353750245294875890399713629763973125238713285307193127210915653035299823627585151411221191129564339609862429123058303270598758347120620724646199633909958395630681443927864104543201355390641345544314236305240416158949995689181035980111708952340802534593061316940315369802464057487794104227842438764036999175195288678358567440986837635131363665010525469940518279832308844634996146812107629014258238808449132191856808415907981818622362558791904468262148930805501299802004377616477926113012076658540003001470067163382926457180075839866154662852732102780039456098107767580077657824522800948626303206736152456250958534374705729258753038957616355936168115516371479747114949919330995939812487530391372565010105671988091350025262500846121411751482084029209642885556353088170081816895658534064272738591862277985642843440908796245692365683625935865084371654482115214480584920235798816384543537481239224238799648948229849653107211958086979472995103140978445371716858832021374150588924599688030483889125860149708661568339204925702390207344995948880643964132274305145110768135544364382550949785911997288486414386235359940709953432296344314717550359628000065519107851343174719667364207111866367454664919609875373860990784912286083330744512094971099589235248919583587307459339017045190908270610979705496652414040185694983840694763299378440110297995348056501986000997050758288656212973934686417855704938656864799927696649232106162353674201313017733253006312710630041918312122823852016014429871118274756211375111041721335851855936623143256669322227708424270923353682637511964295591918744240095024685687356080729528874988123366619583173307791092037175984064146271290142615573869352071473305319018957028697474522047025391541718768386619252137423666948340895562922493614865181171292786729338798012642347929933673714178002186008220205338404289322465477434215246544234986993777041478216717524988407229902238136941491704566755698508911481344373096460223510425239754569314829259422424196642920128520685497733458224510619238379417551046896395916423737215417098100303189813576832057624974591568735345053208706477407402706071691619989963510332263359917837719246617222715906525496543230581407192547903472616206208925984814093524890129955724576723134953354905599946930494117686555866460219921539802660676116912673904033815433484665235674079729252686804328543485535170186319255716775060353403795123399690615481808421191285603468019441081288107566961370721315332135352864565134880228808635427432666287765058095215487578401325081166386190461933251376632761078543834723334423604644850690392402991050175436222427299522549487529849376775240085106029935541906517401635022246959197885043705844778141297541855840360576934588486876806640568592727547589400315316723520773366206494632740184517759757096338435162197540326932251135090524837426271090256262545224260393546098451068576506518704644725203041283522547131046193184794166169819814406572913156369974240625634004536410228574791426586318604281520051161772357625001684532923452357608945282697628663914247167122166627112628565456429954154122510864834778757519692188704066674164608307614000378273830120913384694678151318372619937088187815039464569935790103297136203408250369866033145342676930812362019458475251701543172092465786635065331997394847500039580839964077910474124075645097059867236244937110280404780653273572688598796566580302942909121349934141857276510731253328317329186560626183250889735693825195970093154305135576315956651409652629098643968490774542276000833375706895467100156013262736266370484336729515756490796240845202473869627702389593608206261996170044759060626176333009872706026736263707173903536825763375784702877723421105768670690547004913996058053255774007590759719286983986098481285349640082121169799241171105423479013172179990667569632027672757664044454939121056793670754261505562008564508753112068393837678600069598596702750269572852336471193636662555290598313705343426543868533679049127231539027513587256569963096122409066824496580726530969914671774393800775646913899804778435762388155948384411601018017538620543487685770451698738296170699099705095828033237589326546135160344895217013917950665348864863520097359126060112399952916552491361660529790309489211628865593209563237170210199870915884691008845900094902887568818064355052552686558280987616641535603262245393987096111074003865563392160716302139347039784529125032601045117970415818118200349032554175057766395489179957661990579669757773333139057427494484441206998914102732272516967957282003837102120388287197087006520833857350808606349879079672521311291014283092208410727729548414294668295179183066021948831599062807258078806531672525226376339317570628478055650940202066210525931010529047136762538845011202543955425883923423405245695958463357822976821692608900134435975083638572115169209774424460376748269991988474871894494886956232599967189535084338025828520108090557996281823785505375359047713533866325264585039367615749660099086123768342411971024628328685491763865046995407201157213656468299962181995045489096136335573505496817463814704199138534364436504378605229554909024091204300115216831665858335890699773928151038950575173483601477232838412192104008502711357753424196496932535679531493726384535253350865038206003279741052143804732940186138943059329903153241543722250993973224904692657672247005309131837146949881118997003866764672396937628119261703631096111133372313307984932702355844184615988602380252952277157331760762506913921659998081634949072630453881568347390840014370030840981747379591818683993438493924170397134519123532231185661131634164268414311963799214345342759446298821102197316508929654791452250424102116059738689075767474285004057123266981542544539942613491359851841992127170603595974733362369918287670818196462545287372405266658917440493187110406345301506368489154683765010398645862734412456080947330706539124963467678818214582889270407365956144902216106557202779896169623107923115847065827417024274485166333301105786812028132143810343748952042153580857177437541330517526479816929383025155790188842010981293090869894553877908340918671125260275201995317779010873863272313193835907820439785559089597839059592930265685136023470313568753314620837109222027109511290984451717908864757160738650376622759595956222917248449297352733693073612131917103135581353691080780210504142175672933002876129489043776354291161738527186003882704656346612096597726017715355595073757467375261634637293740840117673058265653110495056774814561797109395436321444430287365705081656536552817347519812675026789799058377550424168295518167116744169330325597098791106231046395397816823024095554859658842871831545178890153345484060647409530859215679389603104768603438099684566454802067066176599850965786180767034972333471912165642964909855413851492964877879372612572045973097647580361054680192379763583833596972460481393537734018775547143805742917262483309250528281491758382323764171187025838539509844948959852715811048820035242609660714148748194174652956583845783924840863568571547432523590151971692424639832000408367988024570257096668301466260314519041907731352385782000960035942221801265274146526205255745044757271007042595142883165787975397676279474438527489066034907358590134613960246434018946722284227617666391854740556316034455764767643877640081512657146262475641011365115723840998601467070239384581775511491353210470608523195689834092382470559923161518485738556828437801585936111728861550089456630209758749777140642487795644829546529822740322298483951200286422051960883887846214260263219451972916168351292206162842213253720534864618065007447048970780476324993566329076833762622036382995047378315823545687587864119681042355776094823168991016424694837520901699065835121930251676672055818595510373107450812201171613355030034770095958651150913465317773393206053706712613220783633078296151258346222758557986909513131087465365917922790052599385714181596534642710109710191620215761491897732873122828215130113745786762271842101727807462815041141694018522701562928719877572044617721209899239353116505662787151716189896094959419903448845493505292694331180184037717958513881800357139452996654646211803434850686264723947365705662059573685861810499004803838999390615519153656792306775903055420882142539676421146451018405793626582372450551213083705104898622340850166068779628881201419168404358036435561204647059962421987393199175643645430511117622093611024134582483512663975261918585539420037398311743510064795525208042667607433104976392318491068614724600508835282220148667112594339548889365802288296757942871161025874104050029033924022172163879238687053293624741557088451204724646891180282929194345232098598302861648173826180730971828932837153084603130125767148386022271746362628142664531034641517419287245736639883763820117694389784187987197417259828867624399961177981342192425456219266830518076929628714813887852669009654814083407133780798632792989382414788732979062750058050758337115419734461377115794946027937677243223631240376846296940568645290164139071551719745351415616986507316127574883402015539600770275082961010956004664979218209479924002950129109560363899408028097633264037343090627107858812340321991734383660307102478746617819060266112789835134396003675761093627713206090859048890616963514618433875810328225561216874249850097265303688492652912805458156273033508382060666396000207196227170805844272640077501852776674586399280774905372662367840497172775258988140933072305708476493496270965563398451011538527356596521162821936952299906043546568923018484304516624575121565665471170741229924013498943182796613780237609649669262502261323357094037847726412000137782012721483367141835311412650693832194461189210181421254588160283016389022272473485268239608210400767808516333056725623305445653307218589166451882572408447484784593257262128189230939325865212265823247628956434995236019331863921413871583522390781486472132634978542993720187113861564891795642611839917414123647558233762834109329189964796778791007974384858298935187488618006608592466334586397466052366148592878687348994113169199709052025368521724439293484026024803154618065435144614002974179154771441117383355642099878872868659616990007635311439927836570010419043278281627505829531730529647308103142131016772496472092037093208112769254812075577683269364129765407634518221147948041570700433558797960310941444368220498152653295539254392117635506654722164481547969436251663138906650999495324217033785492269933924109323509000713115657977188191874903151146189246864109110731880886974747059487934059797147887237528734018963494844216739603237530219877713102615959661222965802554031409087942391653897355631357317365615851960264598866709783611627636587354306058821962528500932851127313118393570033228673332382980660818504098876426891390868866140649912079873244453317110092394585042906023202146743413043968676770895992675522502465759399706365324615278255453043681889254411287965172104372277523807260181980030758382674316799800027928428083816122772477078554375172903814344827330534733668783013740173107626420061942924242646590237668104090756581219743053451228088411137535646227973600587634726564755255464085174942908809870525552066477095668903016239995577076317708340273362964219326076689446424021657387523998245481134468429567266055119567920807413234109622282541481750097726244094125921950375463483775586081466084054582154942215933852845998786374338521599441840686016624458357544219232372122393807250505955719269003341431857031549097850607581388083107247142176515050422295275601563460227031189109531928241455516025541152550298095219736393212455746839935947649346097192524698394631147250557987993079328800756793252445161983683725450082361156625672772720187274385450073418454520566877799108316811347933689640311847768685062675718586109851304847738990660806603550956932921015220455840149085957260890726067455694649172955980288202372202464150012901829502408560447267035768737726454134863063896526678753801296385167231188923353370916594129598726702041128966732038291245396604029071632783108198725260409328672115412741642033815952510851775360991127763059750861967326586994286155938410710099097133042759788203552335341630634542055699372068416297885642477992298890110079228251004395996006376456287877126650997292879503879798231873467976846800180381723533898523025361824656078273658928961064260630739714920774221726031434861096906428973364286568523422442365158404167173378483585498271431732229052744910135331206823029976721841736118223625863751333957394971221818718017947919842492459929978826571331980272902691313141309039182372786464682890130133573367419706063761729759512659710339991865539628042093001640169000553291851537428822589837915734766721206267693532083158298030400156189541884527189464014561355227987969622170838571734739812995331711010982115575028781352706461009907505033253151116486303150623291641689018183709979669165355004185225151272504585377467394250782352963919354768800881280999466759845119964774267816623710430818149476213994461446280065273204294936898808316947000751759529677911258950718766155253948290887898088736544719003310202266716161556133157453699890855612402451135348025065711534082175230721472754986893559973184893625475878230500995975985407212379360125695332014622262659506513872000903500241499879553616872570499175912662818968820918021983371783707990160824096090211141733484064030602958936785537490871828403913922185770133816320080101610114767305187023825770921683555270365425545574340142723079527525665151374421384222519773481532755686040498949023849733361686677364634309072793750139997425761324964044744155337983329431450911322933696972720814199272529526908467120479727305816515698900775168822802338113111646994327708077516605597910236683124775311105883696819962723472312161235644080679533454652016703528401272750837836898706495672458389987407778666190702056249115628174760997425695656770092420936877005273863796139208758385502532029613542732711717161973261251910065621660741507710193151051399444068754086149497636958128611901279261339108238292934799255225236892130846972222644366134620746140959667006524709005394194082761385599404636713138027478984293918915495914447696726051300579127645486750189244412947642378958906213743938985176432648239416710178011017116935328783653178117761467543424674188620574051807293534191136365136486814107895133554066981889200231050790462248694280815628991574776008679629997054732153964742733940369723395216741546447736450627349436128825378878131438446152014149880965778797112527909166151404722456532066355000580041153499486676574307557409250714899359927998325256919380064497435228968955833477947429543527418731395813916984979452861682255803446714500796638896513987305347338196345211638231083378372040204469825872743036267255742236860164003306220887089217299322474967144675773126063279616210860656128967391744853048390310687357933910579333041154707075493998160264248949113473060184606879828614658440319090601505832747752574513774953833491505289853081409709627136924673111810241186705801308814200165337641956280944252488743473019946042672038704414945579524541731398587434779216769743816178859220250591419097152119339484249429761213195363023639447981855824291788307352442118950591933737607069484783744751716008238990312734366402226485821943261241251973344126161555972030713003572889230005579295491109154227488686213993394910432647678519663531045852966762894144032393683498005753201951273801175067326742351797770423147202123513283309316852676321130432238121134469202966373413289079224459948582569330203734149308817456819846175266200077964904198729556702729803323958745815970158732440705040829598590751259656338423697046355034856651276330499951868030529744779390087470236217193229115490324632200009109947679072656845029103594239679056791764244823390831949838042278049237980541291328218267319873573018627059011822015549792162909388937438481837786062534810424354986850426996198541020973832457182260961196498232374179191300222526456718783402217586059873291240394461603916681520823763404107725136039098806393601186745718803433042983916617584355503004483307605082642921601768342923345876408970834812867756666622569666333688670422232324408454971281749641905841478600339674041584448721775496179509409905543094844366021488046853222276022194923069341031757759226995382788847728599748735249660527210225954641532070631228674917666149475370843415052223136989873073623121557971396623864665449995890020201732107050662804760256800528172525965434160306929919143900218441824524320199074836960953377849503476375679249448245736804832632745234659600996390869926817381733921910663470834925344430815589931319346042714884320562109948588712088241118424344536826211063879633538220768058659998081010751029908021054132978384390694669232187532477958752324125154980652538609577492633968805453693646142700640742290092092793690164019704631136813907101472775247636473803760638471713783914979360715205733367825009028013691244506158568912387927400634393932740932774831997932580330498915580960267367650945804441565720487499408415474068617871549819604558102384270421797170075473744400722516936770935749089030686270174907309912895637647660299386783257153860769101549520949161608275830965266614808364254119558066214580330459732040898274124252249373582878901958826401463230659567684610620564253082694816445920194781004203564721366022641478003124444173011769282743249930423528917622557120484627691043757905682764699221371988724226970309503848216316448478956226700200815540520517086960259450857112560198423774163238040481888046432167591383520921719971487767892363843654084775478703538124425051748984191957277967525667473967263092779126264341694075635290626666993495162061225504169236747286754932959152620315387681808068546360728242837568679514104745883997308674552970002660054113131832720607060860858433404704059463726037920080491173325567695597405891971998557894105771152135712550656036536869131439707837625151561109266197072232086032117232318883063679773660872145455533533449560650612269925337738462815699180464756738511306238472933207567594468618230591084541893449863495006581119908313965392286424542408676887211640624956457165998174798513941095831389719429716991100557562387897494728542877119158946810178374132348955066781375974529098134901624982876559998783007729187356893528690332597013453573258157932244050007401061793625510747633854091247427648881690316093228719220553102562080677229567616917228906306298734610620716197359987695315293036644824033512711254572130088448744501117737961797000816866974453975474729599887529208947344937520696312363147890695360642824629650194772206713474205960852992764458438571702465652926198013296502631675239234038932365026679777198063251568227274528858255006780148451694912770337782496793312393677807654693511520767626384626036639063799582154497563248400359747292220656518057763832777584068382634972027204170188821135375625001558051453750750470804598891563961746339815891319929129748945881904112056708506359910223544199042939858312729990074007510960483678331498276162849372383622877695488604130301293888281159899376438564135669768450288877533263654355334073004090602336772715161009549468959985433511334886303745646462642714647339235854745095960729591447373333809775093284513990801324838190015837967485231456314468478971200494148294597885262873871223491276311337799966611095650516383684451069963635227646604823576032290637456942789636260099141210934013158360772388808975445270434391613677241026778293343986618821451222414878921558917072377621034255482662852022344635974553495971147858642688057310110760424556566482337340832872203846861659090672448539002887017647842481641936308110189205851594070450043107081406561988886003545369649809454384458499545158556309822760261490767950505916018191035041999296667165122218385646138433965947059782372715489029525458864103844680050831643490837460863814222395855824753617813019959916175925727282976141940166696723461733055003909732533785131838927184283557533903078685121975221042389856751053128357945120466095859907979807323613992791074429084809269196583278692256236557276568742843565746507533052152114401782902098046464111401333274707193524178611745681345300994259068204288247168206838317977957791485654615074624321163237225597264227714831928026599293426693691153262947314643688738423302605013121908282434578748342156063914257682850864517028065688781696919057121608547040557911194855103676698142763983213444439290568384602265634005206176705316399542412461349297625765463649471783464711702172439928713556944157208029040308167809136696552792004453473726754461432803827819729920143404778331440686321598505451816090374707858510926570938112499302261478783863166939423321106815574025075152719875076227413267316753549114494808111261260673523303467771551464807702935976710900122079549040075889667027376364497583506482801488304427149436988269191715832834577211123066961314794499347401070772252607177120280978134648906599187156156100995990603604220041523355244756538261114902714978119796898541987306821077588980445547414066742307271955066521742635361063504453872917361981540099285395040047597968457755003911305880217175129275565217267030515246203692845063032969936307987064184044004236645154499478396566041828595274779551562581084754242249438047383957406316169252911157286054098764648309337247976282468364408830750316056142530822522035482673955030324032708098646030231809825377579345521532152009599193744484782401254412954725697651092929163460656740062008210114909650174851887575994164145611877165343405182534882071440665268527955243844239880631849208000764486971458727249607600763716151409376363173201875976365993195172102399888753127466882213087567408929001805571359301976348721798894785846206776314953412590709540108398529437562442852336260503328392842584964680615042159169566188713608499889594253288015637414604789689650869266414346404158713103656897111498242336805092755452010304913919548156807162989560767612397026628514634366935406978143125284323932027153662316930828711363123594521447559524271989823465303295746181023067792542182001409267697532299508294939145178838434664714913500498636253755105317476007036465603414680741031913048149236220717696673500359397165670715410490345976263010673301247816991192740527980075797670160803141158482679935162796181364260940034615233403534520972581363255541219042463541556914329744365132760649207089127033361391150096566710811964165797639451270206809964704983844015566179544141425467694248590314342347057127724351892912116106187173782101953071068685479559326552062482547197443657107496388032865628611302859901997067159499518609069733361150327295353739232158479108662085608094489764292395973179861807869105299571724908871522955818577494431156829149978548817683687856326802552107660710684445662182436977010979906948040606702363770593345038562104358321610504602805208665071417040764060264698410089362857040201653306134901958037905982018170709253833525843509775281787478896354725330517771445502045262515632244984226333086245805438948458452134029801644352938335359504257058850602731143420071052070003095011251364902217095931649235162027011916699336507700822192483478682283690388337425135109349687659690956542836504542227167103077894615001913962701233618310181163640312632434358186758191302543448021636535361040055438491760569350562149484025688352981772241799337860134732178197097565463502268489764346216243851248260185371530932058504831192436967232797406588830482480250096375938164757396038252636513307701094486700774831139565227456824765106260956422970178485969261051099156098394531864439711661965157085581125352123535982626215203376992590830533922048703689096272054372278104144829310590777086168836836597635199669851431856420783786755525550118470818182071422503383392423270929115742733155560264460340599298069407519158660136726003466538054820952642556828597670495454004145261491739194888391424768992583174677932146870608104263823605683008712408983868349496333989682947379367517331243367702042043705106317083884751423329462984564953981838766731459249672558929843875349871781071372079016786958543384210218175050398610912362321602863455183586773719449377303965280976268012900069107542675478973411291355264227798706832272643420243354874569047723721474212493105005799081520695939392535811581607509059949621133535056969764752157184051222113864659604968718305461646733828267186954696609871689668710260649073933008782103162558294201295278001633986755294167837540591081740456029287493771934660890148248714535161613719730517523451026167077267635838089106468590931810617561825194178515833094645991524268783073897780905252079989210789530536215801398198540825154435591437674970331511871719046918871758794458153881382209391452550545807018897416774712857228175932308000411403331670092439390901190575199659511187125201586601203791642689444670331007729810451114797169534338813170008896502052798440151225870736020995705789733162493238796212738767713875111957772173028708463875572962139671284767598667341899502825064802966496819409450892270209763352712787288245504011286428223289893846187354452450841670600677968027128452689153316859332375079812823268656685771617443802758036428002766110740895541167575174680109581159705594626992092640346234407874958143969269859615365172232116278718808073256014197747379062877716709234062154277343341818062532236684072249416705997385793820905789421315331607535818733110060471138420237852607020726508479475327657715781267132471015535350312981535517724263046407899623408857635701435069529589585089771863185232146944972037994515209080665535696267562385627187969108101064635607279220437304739884529255104271179546898735737273149434482235047497729409832894271403710803104371808742050053683894395121659622375438329541001210990400327171364381479805115195810361624108726743296026588437268643393358492027183047131368238219772868312855309325044248963761752778763571517708249293493540675081560718206865739774553104475719515428671193046162870453499204198724938837870202970308259624281625817678951801881236110154506744755155185718881410405078323537136698794340511793681323581258603107025137941271883548843247528854932954791565490390508495168464226487445203400951936319088681810806003586753415533881808785409538402077487139172650742714308161034860968734854409648278866499064932460120442069665192985018749213032234782792355111457112899507196350973761359493425956740644479738321527528045776058714155121277825566519902601640683273713295796326621240171182165240930870988575333676641139513323175533686107647539074929664136713876333296067730723870361163230603924991254767433382833536776719425224433866928816934465588309938868777635903105677523394475466934278227659631025050252952721125192267342223367463409669850001376245919578477513359681146761023672160354239418061210062554617518929337582974775617214500134630140517328354821820750124684358152612417811238453385029700266359974810985905371404876791556330482251350466423143824010712030663217017430324643592860382868789906029812252265287894217859192728049936960362346793471560511293933061853669426704649895538893141868730025255065540702238073480526757493305794150762950776823068643910466953964986787418072895587021200633094171421696248843614553267952570250620646111352259823538620909990502918040350599670828675789542976684253775797682442337674847917244831948509516314893222258272486941052608826764315170044774772515614517286383666540360142541901348902516148340530499225853229671738063212929645074664049510581097091538268850890414921011138317890351776125861599553885489619864730867352474781250820538116039075787718489720649571333517917466838075616783484036860852056974125589512841437395384887907653926315117397505492579753349226310457189529449034432316502549438812159958195964099771865892903048005371723648909696259198806492114475188273572946766464527508571393656015447106050622343171516315203791132320328778748131119905049174971491960895127054358798440716421139996494133056440951577138536515169037600906632214440878868267474832382325124811222406359462654076887977541972169243599626916334047393965408855067455625713161157461092874671470418461354661794177937112157252194992753285105980345968328419687029689588566696529565807041306289569182115290506965626610999266273288164192964462714843764493463355868647342177710721339743011011245018610026986302914767996472970757343323397063034094792452506843701027667655505308178144813414187125530165902131603945462070455759990396792089768899404490226349393220332731817758546883277329553657029379041687775880004159230345004248439433001426745708708640122369459719237425703136581080443148511228343331173646424185083274770094730088534182131391651503028700209666039208442136089705596263918759527319966321551022841272685663902067269321190560279242469786532203650841146815295320669424548329833598729251260652604038379212493389865502551672118700288594160695038442385552630982417210154175906079434217310556918211026251507004396666466371395222831218796826139557521213522644276138908592960754015163633316551661835799766453003113489807052110977587442670462394546497537425111424194014852644168948205103188418153901438926784388581840142864972944520854772000420575111950936855648306477332631366245136034496445755491680219701868124360946889113713647563731202091842416300983917326376854383455382354584902317849228032763155649923369601198594296931824734806170733759160002531460821474840879291277472065819109578629568572076027325086897120699446601602641801333804456354650366695735929833929406187722727552623771795521752994512080707097722539893963561255568504356125901801891302789889854067966321836448597145263481938107521134647905495095967012121014283130839801219316978547608235757583702306083113480859119665076586497253085908463517351393994040522868261117206371415817419886847087315913249043478273443428752643380188201386131518410349056145436667858145296957215744033001250995149002090859005494778524216387994166683666201515640977625781670594283337381594940515565910559246754824778828108003214993854885207782857820512791930210164329751735260926125906589403724989786270390071353457600135307029846479301755751564916196195560930712889248722444720173221530906018882120104745031398370046019920308133695605939732535848750358630425203382799527330034755576861150133329899378408936832966857128920378531545973842426627017021008298420814059393551254510871612734428111881397223123140833480904884634823461660923560340800470220360951264801546127785658670627811078855518269336463379643666969137511699937894670215516516381698701726945138353302131664285957610605634771593285951407927091185788411532515996729715492417047994709493741633248579360596618428483653651267424478459275226249993667716243415383341078146865949949424757647674740692650199286983111963113000347710427001580649539324718049766887180697889433644871805758021654622175924314693237988150597538405977454018421319127619308665452302679731297383671775674882418305318904539995729207515364892219227668751852215088378661317030720956910178640293853611374138522763505255645551522072326232216539841707564939344659761076822110838494033900675044680828007697600415436521228573379217338524003067531720770015565931556154459900344839227325460575247986896912168552070318906929913551508319586696446327918866375971406641801248732185736866121692492411046760377629198662660886516709194799601440265552518375743435050079611864360448098423456396424835738658947915075734142999382414211229625324532140336086665830878262993626957149494617227120505016509016144248841920542583505710723819906907122689074830737829144224993464312560386362354842897900259971406492929180101182801594260025144539154984835045421922537509791570390644577008876794608213267678056114429899583258164500989123946783128715434661006860811491285069850914835997876201538929023894135589482814984944472976034175227378583889979021679821960410635481924659081822203697114600494284855528423018477275878141539739558679215705763885164202098221580818453869384484711115358851199420850583601128321329997847642634208257230194626303647570424204475412179652690109700397329283559470324124053997826916140291984899119287190742684029143684961774940323686524484849155040364929933736280795002541647505568589360989022190681662289932698856011048825858605965068663769307902865409425834142656045092740304225011121395923672609653409096162236170224303996157132339550628851668270491228191625664693254768025977862505659277506212919854870848736089347091904884446129196723814517424202101590809053457821430846410625829412395219543228603548065578051470356110776893338875210770635916828977885577701070951731441085107004223335694879328681987101313664644697040725411920025647292419996152712848483652556946106399511771028765575032377411003833537251121819552202490153945010602900870878838381140382295892161873826821579692905745018351788113233383275640473296176683032595431263792970615241698212601323660675894165747461102018708191632798452362574936557483342087043110210419534384598420553419135150863341673833902569526931206417761949578559081883615942708073114086514474982189127239338797933418265017963847188887076234758345774595227861428416153736440887571391594981549094316315619829929023275642101405103862050065817679264625541668164370137923447413272291270865651936952863131510137210062688052238041175924202438913178907391290104372956042723040277259283433913443755068391927816670268841125270387270255746962679354372304248253898966630038976431842768249661374266898728277749112835410716490443684133462196827380655665299732941995568939074280213502389439058200855418968413510263968921566037680351646009037604545868996724970315922016519242296284540223212547529118960522743036718603500764117558070801479273328079808101666189378388091265633219394521891686606795488086605834624135009412624154441235409446999425801336231369573803355723184370977802309879383609497600908090878371061319055408042018849339617697119372811164742547551549605351207308026390452222764152039770816742735317326889919448462750652116662826232887402546441016419465171252039523536551348184985518574720398927471504865617124648807419806255290138594202690294440242553983474943510766229697876320024560103232795851842775886868317524930542325157335322197962231155139390383964700095752054026153268134069012671771795729896466799381497485757238774040581716240911080231197045520197771505792677882175249421125516605858791794104585955790326041313720595111328099245960422462824186016903616612545900337252604868871451717598690319607431862500594907438234668407133329747028403900134919750093626381960013773546014695552814345107060134860909359833024631357697900515519570480014054057608968415697292407200768246659648394976335584373398285203009281896600213277159040620675712392010515016775195569749594134757930457628484635739286036776321684773747440557447027764815614166549510842845891220316580857403209015762392239144651630564064013964435586287461919981640134717843266264679139580147954429389795253220950757129148433927793188875053781030859577958308885717806440546315143514805764602824509941657215842638827826217892964734289883935394574016607380458061202405959154789190579869205442063927526681066792990164132725217608155062582412602367470974579167701078732634027930315495523362970993327732919450044144753056097119982804648012873747507613945705409636292313772501198010438212013107228285507047690339133605528188653212456537338546934278545982899999886617182865422414930996515110699908480529076089115361524511311996980857643899520921071606425000103664798354553773190742202151168201798437981160791060690343214434113551420091209410614609004536957571423815120916332036225623519263665502755412833975692001286758264513707175187373308955518765207880636861960735339537836537791178567604250827703143457255974666844015812417549852339541079163992420578759405320338166918834960640035809357985086579075717090738039324918612248940831817224264451227047575325018688378252158499983154424494090051368830507652221028984101429852547815354396490631081223150730887191217820279207188310686103878941099901995974397006593094588134157595562729765656049254323829401622402959343086806248500594373719053432622370298787254513689778943486863232973525450520865896134745015597644469252620728112891536020133088923018675209152671798537494440057501417829439020501381725179145939408152523278912831554305888931774289034834411718215808715610810794425535509961276843030692296864990444947052065342132953117444114818968730571856017437832172476102282264474214074209845754753376464516761107032254462984002783234107874499078833858956429943269895667344079426586283211841031316793585880633443478693058105389546069831002112793488757673786076623730672407933936137545265332760600808000205992251278944313845203990645004733557874762700105883127849009235018394091209771459193837317254951092023422587014177986565896326050188308788264838322040169295554023877287622545030873905288797467200407036164148027776380334949005364007849429002615182443139277327477183436710145736114772138443285518316404644330133851450861146843007277202796592445264637967431816552315095199532123084627177383713388518675365919922461990828311485890025666184535155737730636249630921579254433253334903262507632554570519077661404061063836119070502482105178034448213102126216883907082682977734738271312708827204407760072391940346866437311462997926939044739936824729418255451580508406112485980600682918999313738443446571725321400861443839349461060792170213639082154164221021527488659767470906938721463457113584219805957246120531996465258886104926691726491430337511613929751280852590683490179641277552069926045343709165336620259643871686395309508353251510613266219335981936232837964582494436947135722054939218080144420290845300820589447806339816895083914035494426918762596672310818045991432006582714682230206343157462229569487808116045145314309780522063606237557224516018338058114359245460970616663910976757977090605823793550252141738643591312380438935285780887006879159195383203501436420826164888369820648393372880764274322049533540754874725659142716194599154260671402855131752041591377410342112546158180069879691171052806600915653025523745039038386554922197540568544153091943202005244449626937559525228716020354550706542095295669561322686626170062968124521650500432430044830851338429757546473277361951821793766502339527082006088598897033321161401351678132988361837233320257871352207870677775338370774292229010116125772863749330564256578546508528789530697499640144593737723562629204550525254495819080659190020989659798625710064356197104210815215527032633053506326778804090739775705130908235603447660412329186741867899255228671587204051994051678762954907854962458038489705663240423704766087448454489458241579933705690983116200144804506071194986551104570718974177211587494946078201740147089299448608269535867768649045893466227928412515568084293455536962105024238596289872023878441419161179546485928516232607839229627820602947900896893321798798959648478220502992395366218693958470114264695027243223160254027979770678290389638243359381550939481821674275305178556504342032844429490604588481988736669433938519487606178309116302021689359814153565013554243132548074585759470650925280478855660248455531596102456006157724248583769191030355214382067939576623369200426928976804557064567386792550302231322044392902685301762323203531785065157077156604204469527842010700913966426494878304195139591028406183570006946702723232396212024450667859653276576600045782777081745743915078294789324180563318658896933590158775067376820858882776390408409161114304886102319547813364225206933206215049021829298870831285915290330699184716019818617708526112449281407707553407292869336040880168641311420799583805473886719630140712929485902059173798345318354899789137477499317628635024726111723137175758502303457843612671743435039277302344990296010504592295964173444887811748472035125996022103734197196332203884695902445592727487516919919540932780252010603827194401037517055629753638085020673055940121059370035326158847650533923340187442901577506898045994676111363874879447976388532282118078091471666711884010863095592570101689401420283320720974160933338417381183090545037529586740768690940434070513548237097854573368952899258406095651058346951468172964619913906481948077208835066428467751562215095612807331690986484620873451962287827248125726114950919912766043447338663171297484468702215732812843469248355461599269284359779446749030477996662979306980578321005706452591499222916653263624309168621368277542433519916573708827696165648021400192836009849581943050836751536381268643287621903331449159217277942313365389580925632984021270401600755010937895446286723308111032184072085733979613342636208584067651101936387663519088622899118997562371864994205958487995272021442286800531706491746026445957875577226029759626974189889119877427660515289592518399178459617518214589052717645481600633920609534554385410519234057140481911435206338532376049505855211928888659795408826384888588858984537377569168790758666937729902262614545878870572641362463074869184972994918010074657844258757048137469730884159201736295196804191902403928498335660213260638467165219910514467831946086729916579438070232262690595132738539481791166846574132454439683124311928619241280247061020247023385717641923833752414752749204390337044264582116293195063760921283891962973729294108338821222950498125660635888333226715395804538007986208248098175103673110482902397091118015887730911193154307952627943277450034684652386604062516277046548727605968442520781359281258612088963698057399840995691571083416439003323792445585206098660153033929766391183413160171152496988121534684994886218391409340750698930111382443788085453451453868989627490221655930801709732949757708927208509389128629096960781183000514824393011916840346193969379598781107086861813137304461507770843707750073995282334640622507659591160976141207294360372314164577336666223519004573758017194826581445645781388489531275711351659570626970594138769473070894258551628915568222439675661179136933924077780444600587074091186680641139059198554882223795234852289960362826571490734439304566981954779745107729633826652180807042043470419649121522106995396396145853551790390295788264358217705388132298083614939550719296962555335496527402730257322309677599268343632188110661359945685751392294703923137419444313779863557075627832516383300342913755525430067918130183096688435166459287220915531399342219690973103903814446549959321419341820465221000144130009320779010398584777559401567172389697006341029968938563419141410199921952277237636900993529977939503884062149062726743937508504943738340379820450955301830350696580471571983175354647366771749535728316537521931030854301628602077827719045162663376663954758964101722295907868236438612132505779143118224748095985378113153037496598927888816351187857845171235246159662359405087461664217405497541568152902893958525200743574093696995988005030747033706525571614924110796707514442648602485143309900551226850065951947085368764669852706818798517739993486254708637993407762131788520355943747555591657811284067396046155759282694413920818457847963066782137574902458326491016532239568960669568133416453164830393417204102266090707289434165773752799896331674371463293107901994338900232261589888017825311713918485095248328251822185505276922300192185834313108393845279946806305728319348091300341464862265133980886883818281020138774983004022367068194605618038302327225976842116364762547033241522417733388826137219112222130650081786946878855759141042327412779332299297024711615561866822214997295594813061109392673564253785578095881168048342013476036956504887680774211137600738662364174889016232008252076835365343488085863298671856946844812913360341883897985743397524077908048310085058664937136471451155184683428898130898541901370779141273658799064316570339498158168402868295276510636551484235996587987494175308871619777711964502502749199003598043529734453548899121237138295739583517425281806120330840284672282972821706510197121033074717603820886652129411897772710621846777189685854690946995110299214501857029869588248056994069322295400806503318956914522508101970219619652420635876622202447565470046289437700182089083883836211509703013871868790631268767390035149864548277789518053351799086199258996862032653489675019953051153421605218223744125245301452531646135264549929004042641723538828907728044108137649217525427337002482428591152254151226928313600208613982000775446612401166257133061131800437349863950011299103408435396906819662762756607657395646379327398483268837289162509659226739845616735998517151167420828196680884922408754162574869889334057672024921786734588584039911439257050537707298999106945063440077662401070436532737372073454846877602190730098656880163264917081953740095944545204136168903010753908985053187452653043190731811365763508930230209326266436241911989323584513959902741960245945711166472446690504854256056001593357143169575136039863133362471521312746152077925530439462737775274175891882586425505283483507765416909365971815847654964063706289334246035281355027587174829885516826687512116157078166878976446870828943503580954543897227048886062063043684158478118991791337211737517996976747043845553424833991803034631893821358446698528856648194686888269957686985835609402312685672436133114076214094219773920734827129851949519671150184802415317353095115958048309921776318286170307184808063762041542109086950620294280234368148080799210649698436080454347953517764538858258999323465617140895003137249727804836501569011296157238044364991432770344633326608039051541874969090674608935039761320373127091623214892940613101222822124221871468122355866519867652125775105312763752301336691214171143388274606336718933329152679801738054814181386429305109655476783573495219018602848314165583800930938571805676461804927789704120197764719154846835385833584023927070872739107018628173096933087639531309826939366825462503274597931189579865396908227910840459940672971420599553326733750235858323992759405059440085153055848307222242004745123654862075074150619132489501623005237961798457263434788519845881925411617159438833869880982391566263710504725170438401091338981366339985931470616551321598504136289755822426974575361809340548793575057669261729186142711005122584754102319321626793269281854846091992703375565189670264118016332468295462889715736568347570872312076630418808274670819336098296910472247776514624688998554084590713153620213984146755408649403193887625517775441298650291265691594662236958039388106497533021752022811752742831175358601775518912909455567687980188851364402537056461596516971167141974836255212851025962481533995998033090322733190855456505361802677285099024426405344796795916580186588507623526864903724113054390639044116694373831246149522662890508410587345989854621361594799561985191660546034093189271302432682093765585562883365166071086067421270738769337312993075242777341540279128485794258046382532143120291912995924283933232417383152954319170183815880221823527696968504179714915145748276157633907685626788130275773224552904495915523385891152293540567979140783767543267710358640087175378366340395103883973846596649146631645778109697676533273068872778097650091114150989321190913746387662383602183977384305671658927906278210184623771950983716434183304508378234876172646053997198683559169617271473132650735318169743739953037891629688289921722877389242517576409406512165899657952666803591344949913707931462269322677819508846926519653887618995111235481915817012921635278728316545734327766441090171859464347866748874743773988112403100884126958389829710293038019811042546659958485437058324351506779118016325819504104040002712790979621098060589229577337239466965651655521598437377984171636996356003774226391764778032997751208134043247412674525073013128312532723290265911089149256145190729508887263524786370660397366939891694103446692289501678741684206243794833962844295573048755204456300571583585428242095843589343425834142784676758438913545502535518553687394400202325869078135076568280450065672721373470089846369931847357260883317978416922408182970639021218534803876993927449550250365060483654540060228707867977776021546915084461989971887206762625259776813718357628640191049671710570193223542748526445193499275065098024168923587623786230172979045282619019082799834573750524255257212734038959608455402064548065175867773760603539438421645831447362615750136901534227837314561626594965052778937413461954339314411766671083349436574388375547504855480787644927955570127150739852696248490534040052802877971279404894628782633472889777346622556930208799070947418812271586829741718553067141029611887928529967271920337916456343191922723117259617708757005735059762286273503201346460497340560931952974911006373912774736791879639176942113205497625358965376861647719912699945626752513150219706415526221538708607526532992602558247785957771773581253830788268072681481450204827863771393913668132373470974376500508237757554210846799578157520640397947949691359413489628896886978032273291986190596215568616284604361214627953176031739441172390140677372659962385945040039846925397912391700990004742986202974670123438548625746700279271426741579480227310174875768197189875313788665870785047036443589254768070337037982985520519760294319471975158471587266022435360577731731655210765516651503361554981038016928082724302735408547469704029172749146562251075509275463436845616506829052292392102248000196821895968557291011796680203280030936585730234469978107094015725728408184304938824906506553015121837154012214525481068713931928340691128526266834837517834702852588227496406592661885954415129483500074405946562155190809137160117031296665504581064716962811495769964398353003671156044492093746839421010722423994071545248817528781908250051813103641846656165426672302536257792440431432363688938390379266312562132417017470419194381739989467866749941619039639386131843187681493582284568316188232237878583929698471936676452464613633902568732276412307135110045560916864959816393873031742757109858527623943323417490462252151158982990775043464799866444810322137589584706050938180710141016618520395771232106176474266137805266186627444656729275851862296368351336143343020810363241419315906496324313298893368323486352271292558254090173401034570949245222554266931219940497998924292187990854030087395703951541796683281998204641544202199418387502883538872490873257304163812136864396647664849968596672169726119367231125613026037963200410100025111634985924725669768386682824257151196944479013039184693123662772226219763622291173734592292951890550552360827337731750672390988958097321700548082772065214850652578842911088994813521575651714635368475842959131838363159660885698528773244541889237916341531207516995157384705089605072245141103963821389514868424562813429351574971882973918501768284816233616191695831739758788507338183641372713978347868354996387916244712456235077045771142932653555006676340440947092490186358923240000476629224016505765130552207728685970827860291799101848672831810823898604509162802073557771563415446883133428126824215891808563170894151022144403191799069164055168448761388059764989463754717106974263690153792152716370537714240969160942809542682785483759150850147224685513857960782152543004943359911535313096017346486765901183959302383212968394222748040652910890548815308103968514767550893583099595899709577621697160962077958869345636061065878424023997305942230936264394183110959991810939425272472500878628593460787725333393292284815678796020465677519310840695800734101152022747572020529230522205126211480000531082105363109782626420839938853443545017768547433877811604141400897407180930161553174399603825850835838169156997447546934262065019169197847390169873566058142003542104812459625151451411441440541700802857909206344210137711604452378049693816832139782308075994764187105526025081217230148253930692618868393467638624193619652461459020992664951309901353163767288527378564418837545620268429268295973335948724025529405511379741737123906648793614289903707354749626493478259950564230389699052095681109357042655982242715013721063922808621581831666233856528016122030069943849461142322544025101454655784732728474451336852234054427427064114742617423459960029593114664441632093906446808882692541276870391930100597140586057798969397063063710018333990147450387490794017403489750191934026295038057479165713449955717316022389679759748165012809544530321359775956827492863262802678319846882650096262173264828176958670337575643449155981855322132763788800796672857382846439356267974279200825244946967673067700960424253669549279927095717797526571261872532868661415465035587021428473238414448076079971189338528404897558001447647609291747860703875912207512787009439141813272198106455474044447712895918042006067473791994721389201245006528493122070238214800083801113061478367938196679110246045207165605164224293217603693329664242422690954461155562812225983834550897562893881546889342576039026237318137049440209317510552836262756909356949251529971228545662729629776539927893871249769166646519959195581652727244164680181562403540405071819849756253808200677680881544866818133320514917648067858556812812389484525872558293793282580182776230945692922150140280541467044757912768096926517259023023078166102507900116133903475453261812928073645718307579151532204948436809377360828388072615040498572770596434716954623940938096698823773065221993765183715360326557345721674752024777093293376682652161820201804925933748733411469801416604681209659896770172713180449136742964985572040198512428457697614164862371624625672477842656766972193970077093636616442390828820045276509251795862726230050588276642907198428461492149240543869991279144763622087314654283749606208400355101283588948631584066134578902555155792347273645099853815036657302389763747838815628907234661444152204528536820543672690413833263845415893973727330275408000181338546261955226348669772013078289042350218996838799102921701461793202540348089568166285777541341591574425420044509148530994335981843406023893745260261891238473085126780341945424410458485081525272353625508455859758960942683558855839735663010625795026754609815978949201420924762373987609849216140025828560499458823630674990453119698839070760096863138816108663354240734322374499485553136750574079209045572896232600454154905186160056262805974937749777975990306055197045840913299653473728329741912557590650185286783686677066475741570685223004045480014994042721996239900840735217765806530741489115607894005126525403235292356726228772102104733064605296318767988986615920011278566494636510648585621240667318244753734008095583496513855206865113594926923544160694426259148345419526018133481498463448455257894960007821805018683772287485440037198853284838594855955329949232166025598338506033423638194251212669672205012970064362259033326993627146493074805401932215872780941449845311310064059355224210356356677387830254043980239041526992861400479320252731316020216168299228016807538730021177067650131449434396973934515344118274628030076491624762786449369892484108642355995319033062820020170543982268031136427612312763833159740658140524204539447805619363968821038703544066517445981623964475996264841457616966475726364814966884404177194359009739154897043482431405164849958530872636013045623269277796088151667987219798114254288655582842145733978572984541920523447805251603287364093259574133732504893209886864533655483668647617289690204284861430012090291806354087096645932867575040980778049328604871825545055576432418170346660854398091119846320487943446127143057606895028125212430987748200170866020298137936792252984101984427146248095866522098438525436945577819055227074682332693989984553800354680663963385719191932822616147895063757585416535026720508266336241063035198649273347497886730915080141584405977251537169813143580879801279838954796261258330512378473727353734896751907848164893047184060367162688488630666521602632282556050934991609326627575810152982117054733248144568284482054837871829318314651037321060589121424935814121792955552489461990520276618653355483673190799883834434680801362782476395784146804911693596384816425314929217088377346880374197780275966052221181599094181169095410977799143962263873585304457955321763258690880841576586738086242457252578585575431614039597237121844225954933903622858472471680993585954458030564268151770806757904371841350434322266306002664318577495830873643646720263024421074386194584783963138077933349517321409347310867257698071120627234645497528835073944130349756716393696488932030388156219930258721959811400735364671145655728458932154463155174797059095773629098520536769682972924191393710124348230977928399797802568535229340700473102863221431852395616962445094317756491503683611863318762301013596677078659720338908338209489567762406272881089725745281645333766891899384632779647349536862890682264452215359782153373550572713492940389988876677556272360456055442642233647956457037641859534083320338705733547813229530009431473855349844431196850356215501687962167068380227860742836959866319015375041640061985042910285427528734664819418017289393767498009439887664203756668978157005947755952766100166440284346222556026287707552700413395700298841771441329441045385218705635205404617591198066371421751751310568616239934513959731787368957940344037440885925894200226751594615508999552763855978361335841242919515246355795718490862767559320997038961064004865471506137854573513625030710893156276001772088659434824431390141363904520263456419643539934746840771822579975905924340448397851007323662430196790820028608833778839382048176942044584861849081093894713248741426601073325077943029426818233744241793713637358913032950371151086314978036349824035332558085745414097780090308422667883522218877829747184112561720023736507848192595862036188270480382801487934063775493792025732543474031625920327820104876619404303967959279227838139976540221139424013467943036674621999203256356154625753526717086741579050941390102345206043866807802784295425936576474934852989953346691420467432579096563381255077713920165828032114707965030274148947001293882978310416744610277272205299364919547914801150897363731066080544691516228037957653069839523882447834955378252301575129349213057211260618516592437774018299138280133494194285418304812917500793215504583253961117405306092356067828513999002168136093533846486505682367554733530229740378891394029039679581152852481160851130027258509433247360058495495201071191853304999644059592706235804436425566719941537190522601127771645970559041490489538834781232645510429662137102873687951663765655829691263032521854714270977516856235759960416265499902417419411079955910242008985181153900757988477682272694623074912268004921162841709402930167297740209856988533209289973015470088085203986052910252363288161588167236717188501051879131979155531551911963671618458951734465274804347119235335981270526365255079609773152940064256151257317351441315597143146176157882920134370471476301042043200559481984516457443560317972453692518898976064443142847931764282301028545469651166297689443232283799204351811558051740021868362786774862230232976804393106483926290409151046667468668495684328432143269158919811284456136828220036951087977913886328570594269650079607685484090777006752767658724577995942077715877311188954317660011749066111972914224635524462045620036529754421214541581481914721746044208800352957906005964218810571953455202158998897653237627421669421637487918151951870692982687952906684383131666914644889809727053190737453769479482169857917416603148650406488906453437816863549643392817724429038681190375989767211707399368693303893847553355797441272006801413384581413796297346671794987192887752623441483578148612328874430235893299440483442819763533219648478691464192131580242406128878305590366104030936543229740557500235730686050897326089185144581371495974511376022453871089770486921468577702746374054473177752415377121287282739241640577453566825798156337562949517214951036581920102062587971654491401669614825898831018931666243291765277274727698070195218367777738852698759620898971182240150576924435339581638008246212844928370462869707572045638600573076403298752538545072725849778146055066851090448559862126418161814704194660263454314744409328857384877313063869870724798775416232146121035671636731041709604714142567018717598879772444886534804213856008860950417165550314167791362567846519090346004711728983778235586994018092429100265911134253384308505295261748456632744949513684129094761503456279693524607234504256895037448825224793829527788347907875273746282600824673290047616938832695001487545023780635074566955661288349949112991026538880794752327173125861950060574851329113633602608347252919369487980186044250112019674348215617489199877034342854875988075156955028836359159398185475116422307953248812672793409832659416719914104189841357906925138425778862053940127124402496981341431088275627411500043621028045583913229407769689345200826397478190467732825519729396338090723964455333967996828353927243555771459441903798459280798843694070066821630620300992292793700837828998930875250441148288230808127645662302553017316919866312030745133102689948652607858965836350653625968818251874196921426841041654171674283779684476531315835823232258914864983793565786493221371922572591349935143361231960039369327020607994413293996616698307006293456466548026572632814029536853892857958707237627806241191657750331317260999843586925905818608433433565712722954170661225678334558731725872132285360010424433085977136947841098531790274748832486175521785968438658734413017102464504018527447411544070081509969273466347795392210450815343821704045682218718833522638663520993055055188411023399154381018375698548411965951433449348448292739659282352585992880198273758591694155717615052582074271817686261647419621232405730819823716644606372224169695297775857981288014732098208269902197013577435764166510569215275677781981986217649836690887348626875838075153039148989834507126190292817271248745544881117892795887176910729541934746898915840915060301811548272517105299418990496810304320601672214325821677160895735611542503514404753818868321481453462732528780096422406502222831095879316021521994552007680082931999517417810991680567693078242679286500996837994596570199666841655945827571909164101322603112777268385639063468306715561630491940715141263552418347846432861900609160873467449793518164940464269389550815907054233590588671148969421649458828285999911318546759613287035151785838696453910969830641964106832113467736676427354198256112899161409417195117213750259258311258542212038512078231280531075075224707902154982489744533958692737469594157062941495203736279786909884452082023735226067035159123888289659918513383094087077446487395131721888457841327768461107971463746269876447656300308048242674165861455008759962982666496186508668272099277402209015875570479697707051469958868216855699329589270715532864915202601616631667495656468263384651270018603400114104025059974836333907550414238493513746470273641596280169506428995791823437261817677957428939093737140230621281831025296142890952353720791683523052616355193796050413172635252189329559005170250879631825967267447636002357386855737828684172820333796141261354611562788704700804135626349275158651216164922444743019728589669432514850080936443364766455548032601082870542147154293189977527035130588123476570484177621986861676484034101601473960924437410568509337755676055270362781217749994407559240811385810672360132996993084833464923038327259210975210540998443217546972725524981959785139194714564243342798050206560781525809875328748874599375042903852904878644019077222489167806235419557068435072657618109177536087773455602778784404025782858884005382911833352930822345259063052733930728258409852252968896901160126312307613664965321512704143169206533821018542173324355059913774992134021694662615746247824573863561490008957560172829434839768522805205438770487745565204135160276086272744624802114326982459601273320454422335911652843315022147150309234063617623960663437812071257365718890735599585927523103948356183716033325445399281233550311670430209806347069327282242192333499792898213122452822754215410617882033483058279531086313220453483201996622682458484307173535950201388826757265336905784526478193043027875193852835346277016208665228527960299518762072304477990107468308704104183749037599489584708859577724173108923646011015702166607874880131238074976753126046927686560681861250776827809790650009837489521903025371365231740206010429985326793822228651106534657805488693005476900200423078446751348902234764290731279110921900726713632703462652047010020595882343233625035116422465684671029963590649719676738687511645432003535489512759587340386496517300437822373254044096259992415856171805402528342468560617690883869503358655055785023020953356552162726677740432941444346421310933010859614621987512411203296032244455878119096983249203087498750125251919310819410927203051069304420783355559663098635117281175154289274623159836048871825756915640424741486571519591657103068726970485428245980937948970910164142339121772237943485532392286694425640606067446688744996731064613581239206764553989219614946023152326798577177355060684571817459244346149810414511380537835037047786866013439961985672254215234894638780408125160887712272923711919096368280968331207605536670980951330280695826905588242660149192939912685393874452495277785941501009816660187465846084463792031667030622038646691221023110156847094585067917852692644795376579525792079337277607034492964467308083116285814523452890636308549180771094145254880736145319766349845941096656973716675980642680817124408937068130076836563567820767040458712794092908350817546473170637485110226706064958681337047871405043147074642713034358464378399968683536990785453557211261009504982892440878785421677740337594438334265606006472699146206996046804543388615902554410303065226375227200313249816144193731735631458937045351268850181925715324365987833474077206132591112673756454487857487221554073513020999062987893558902752598855868033956004486376984904035017611627262767862042268325600550189171171503398906922401321638794335337951895597339652491706591610367098064618761367022864845793991065843132584558416188173596977639896044765738987408410913461464349791373197535234872880515754320569814954553096786659340803773106678924124561056771999075512348980545205694446805364452724634938458566337806970174637959247958935779182321028633657517447685251205046920160252035261518143584406512399279366492574961368419233701399748202748868811897974595294771576966705151262141088323597668991715987655438715689369930866180740117914291307412299188885134649075114667141024856990455867559072349648287821329405562296771334702556927067866174147475513795925180059990281887968463545608488157380775122198402782902175884728935560322428939340554810525311178148531844863691566221568581232131091181252541828584815860770166733132722116605553525078495337432411792671115074135811705925236726887934057909333247182558661707540568759826366612534435603280353005548734868559051517983926105839969814409125887072563884875201063692800974498449671873700383534135310460649518597039457093814427106767415748110555274253996782522185774419668731558202702580524018462733991634970599985813013765360927026414892147486350445571812418864817118745188018461814552654966505596885877084740494735298434508223036500889645049651395051602722958098530173137626752411383802803522542579201570978039359674835931473566949842853475253921208050641528946221698532863756624360856758778559989983974660443680623023727699463309313052937853405118088601008761948054412273226209923838912108937550814432981123483898474047859255799245165437188264869473461337248007205980723031793125823166721236370740333623247593179035907560940842992948505020391726101531870089679910240436121819133232190869777147225542855100276035358730811742298184629203165235589313201476833491912138952913917482894589455084604169177066270678336281100460280571687277033466715050961208053814164678617209268208959303143844086251096363356995964945932676729996607263771058264444657438452270902216736660240891208097987752001286822001453244360355605005046564601673799361318832948025942538865757897566916547768422382583215559615694145828495360528951011606228550057690519455543905528167774196949410568344300281062197958710867771953573307558118878957060948950964752363092155284967395521263767724960286649815680539920624839865137943775453319235640234255851594334171334968858538586938550220952533805876068608282626146096888458085121077679347964922181979030244009731188507722055574891416849200030708055858012425021348846751237570548153587013901204131938666183849842619319297597905371410559900452493437892621418143605965242425114610331926558568250984848358141436127236451498182261720630085713265556054061009499023507453703369719853117596668686660418535649782266779434920704906427392091928264244752965947915968369613737509621260924225327098748896034863211718688058580369617747103430046108961552084897155221959439743340970260374824169566208035219277113693085392058186952251758992851312692689057985363190715011348387924080118509911728832091447679508138177780146553016312167188499299505980831534565847736165723522373979235865191059173757176943811503211023625499966586880140897845080429534143792506952981506592648269715970732167935438182903043338947404140391214464579878739922103394930411765519555163041947561775656414494246146676557804808467084249211391078617726987045648128814908364184825765634607847500897879689466185938503702799551560345739567865345365266894093684091731899931458576074974478395538078763179763857805794608901967738034713175899600078689967141581671160293178701106691313434745027386272114442081726977193476703336620472915489794949872139341663038092350998985022049432914411620468560364779900768119730409621993363703777512082711523377990038213844529037829622340283520225078868642546486896726994354997313296180579172263219543975636367433110178297755456253845356439717616049576550578348379073167968293611819936135603301773423592570098786073575912730104782030408560966199523236973160554849834313142995388364818650801744737217841262392647100250480955427049497778301773599013879296896493366911943582700895764123572849393136324980299356531793755068220417917580625363805875304534324878239745897792795375545330864892993833170474311994254853788166093682868777434261726812022144871297851490391413253116846391154734239708110168375556513346078394711344075854892951647352081358101746191922955033602818970147236177797444464110736381213760396172442275442222266253636651336748432237403340917937558311105846762247068643410872341772397091853095259754839190064825253179615235816104662782478089437871876417694695172979310753645400084836638987796670097479044077221415392584907336575204329133671854416601350342142419497454175708219162098664033283702946521166414612427258878729064465525996706150725658602387830686179260243593513198597861462053257201572258968316741363975271332009041022021825419099639938950386900408473683496347218097478478815294271666213457786064708704388397294243106908001430765987386724652956550181795803152933709769235170759527557786083988192447523805710478336778692154361783036265364101172687994612005229503372147076963685808949321948183555664034718464809748559722975447046938107694307192603302709151473832804895379314953286986963285297278140050760115227518722242351259510234785864872783585653137351564407489848560810315125626952840754513885159848552805016329094661542289255111515124109099241152477371965690252660447574242816636644199758540700465364145523187031561630387625151407261609937857366948232982672023073967201312990303575795867375388029032356591895079045214347669718043411621815293364565986926919807312154886645089968793960290421737240318400425878232625747554117799606734066253688525715046291489545599891104417899675413970374562729746361992871738220821066317617548199046207952106803544172303189496363582307752226957450402172092529062117344071016695777368137084177647215877435237845409548688170811554541387573449691512528996204962668422086924948549716180419056666823521246279413085093134323620588795439778808389536399812521249039139283675922369113359948891505941689428506618486671076533239860836381152663154847622817051824464505634834193894891164331892735759522976438655401978635853120982612776249088339827772399885215583636754452798973358819514423568429796690170326448175890514021006480954756093968314757620383330041862960117317482616994005915942156375766883886386235671473281206713698683850692777312012236433212356668168885335957769803246283344349214984774490356075221181457804060162715908203064287681828694771877258726781545805142717371727802712426316534666798689497689050993718342434250393016851351175298414335499498446652981474589396645954996425114619050571187755998385555042211946535405628251969916627423496686648833637333221843990342750491957113913992318248668274000762631166627119126553298140990293924850051385403798832705932733399508241426591029916071154955002956453266103608895124484036914804780819104553422623958488026223531118200295969981144894288131707391577240984075987990622698984820179472269657931585334491603318729451855886726605301043992541319970381245078195579997129829887322336239990362329356695629003690588011495320063668671504915775735981943177063492777468277413096768888964838950949206537227604034496045388934254497408244641250708278839830018649668845057063104368231356692566830453359380083036074690102079673728425255009542922435313386792872543986825339058153910756354956152502481438893205297698773454181162382666023705850116473521546431556192484946238792598726523681262004987411614707489298750462783011639606377599256961332945098666519151553310055369438102635359684817821270935427501334394533374207082844596602231984634447474306151515383223952105276526937368708015206969086205792562851284505157423329351205907066414212396832684051878367648076879787750090351484444732708234947123382849062322314795503767983988533602418539368028669609440085377954549604344263955078742383272980709956657295660704426185137670903075849798862710681154690421609807082152167929744355965336301277075096954701969136414066430804335844757452392654377011057229103741935432017967162472626046517517924522047029619581675981909903559473998202367025823508563456529957432171028261941696066536251562933994170675433480899169589340403264528651363041489629787857596452616728561414590526866924909939636645608716146403034941291824943171708071921312605694415080450318898235210084551513477015582750608670064870311248358839741030420431021204491107390425419000440447268688787560427476853543290604801176111021619076554943410440679120815402355531340013669227709266673698200337184697682945309286285338536840487216410596726143888901218723617490737027569135809931303044455828648987406477055251744950690338145516077351940614643839618642509957966928125692914481654401877299573723243048702079306124242929124107359386641516639028509101347643375931677611165590711551685664210539232113993279219594910949912527206172296079134128919611038382678432122219173533282217170487048467048962348196003265351205779530551324447987440013579629474401188806484320364039200102463605820199409660058398838584968143057768300189922528846937573125438723693927791779150292824680900233995069295787288844235454317417665281675953383950481946907096530954569208099458127125811980585555112119052099841504807901541950186364886151812216331502270109529766156612867655911562242778737354331406940030282004772066017989368365101465958859471773711804000090783848756798394787997207636762183489136489893838823076107632386337668044774407202353588332930770786334291468187867493444923287067429633517389742742420015018987324908086002696368423218410156912084655238258429897927866211417222580271660223366757085532287768374097207690597545549437173115953764757121129412070664071133582261993620333182939252842524207716093864011134805042478680393132320779867134157545298491733729194494925225217131058982383648896501768515766363954263948648148554370444978860949579915966685051760343389970294807870935713327826092578875809840134974720218682918314932325498714553348561000240460021019104839092730840798356576476568471131359396559047259745621415832057140405221741701038271295288871988179640773035198434493929786228841366623504785494293367378545948305158907378070435217704292328695410625920481939377450986110241076237476798325070252710926563804061622185713539436628181923157585703817927994987194903464736898195022773380528776648988880169456788283797413246188365314243027499551327978565349956511124771556243425955901620997582459234357695773923388077954083113555023068910553151342933567958768612670891688285899216992898114030311267043380031287359785388386696815997542255642459015155381533114059794631475715669048209235001557309230530006083638288916527544483817553186824693258165503291674894382212674010588007521341250008994380103880779974325453152427050830578366236999909997950904644687560354704690319138629665165485979220265929301005365820150930674380498540444915248404266035288275852929387713832728363034495479357693123630779875406238097945864114714238534839265117413155978830451164452267706000789484930745546845127894758959575783082302711069562457912638163542028744533304072166937934102149154537538787466529777312278867465673989752494853476092756602243082049073286027471192729874882120390832158192950975009861296501964185017755247173068684180577675471850492652349314994091893899593582367642992033655439844637545595592025409576188326772324427982627502341408474844968974719229278473907844062988486642634509731300088563418315861709146913856554496852009366076900036083784102228332402300981315101359594867142290192916586544300772856937820270639838232305669318372858764192884027774558258979531070591576932024223777292178316297924769408084167918085532560269066153862235458946804758112931338182197504888868476032965169028442531899324501372609584790441725446677378069357253780421888240342556802530503394609276316216015337610847079512176777240375873993770855928823727063825344689066439689643796697975788400543744686095998861637782822437841388132657530815509317151615296180827203592964898046183922395383372682178789256847808669934173567595990200968917803025753964324735757390218683649094225094967855772830156296454905157733520830994027501401460592365506783247079159162819934656065718053620320456434772865310347439631930145198354864559100312050729547232156851346378904715259157136376857458981052291901263011498278759580101168274864876583240045603474772638733868023866634900061974292949219747464593086077347102697612037441879387156230614257342547138211719396466458515678440768524094979431601679387183574526173501868052832679234092160938017760947231629146309853233493025766984326505280855425957497202453288237011613948497831360026843153139080116979543764290406513791617590580269896692899787351429236074663298073065316804484302442644299535866391793183277348115416573054226425145210522904672415523659378113758058598458021236741908649868083509290375006024437600034059415610105945944851916153001154383995794846525513653613208121623491422712124059517331082848002570755164374766712660093142268540710501223434424432269780828403121597489630980066905130395316956182189834368748365963485778514742725926870729065815501913825151490968525964475106491240070554552986014180664070808316312445951013825185249924452019334793524018266829086228776732847544565400117934154530493602026037752581460619794698134543945500434693863993186454088993936599558979000400579311045043237939565293072909226256043417054396727633649999845308069520294653864508366526102285692311172447724275646588293845000866139638823888435667408209751645897984678253967360381126680366752208400071173169592772306889873792077850393517309267781549418030569698787160028149787956483836917407006662201334840758914888090675265398396601455061363149365276443371673032424149790142610630077208990680639305729029647627275087506385899168016924394903090567889545063332940502662561627343463277357441827966788390238126529795303849467209729743042120807278087831689039826402217467235300641273273693594922920982189968400612446912750452248025607338119779497222729008806142689359677580646383010758017013892776161207015572264550842192148798196295145218772551815873568893578410896337697120853602795618672164240755150686104133014554188605363413988971030907448350234842270328421348201412598134693059778292834756304405784744488153839576653653982534919640734087821147191855334504075613001797847590933805314505015968423094048716712235910863382849770719792729932081425222665324898655963137253739946240596156260746370243210568873158504886365777497630208892559720376385671270265708134491649458664863358372038899964866968804871952329521621925449771453348734624385043581251749248033774819646314779204919590363509514215473483908711589124239530870962922469900522343863204043152561711541787982024341094925816796443782199354544236533370187678724290973863885539714127967118858572728193333673231702444638529092716415877165186829490206459210936896695550999247879145482603893977815286947727856259184542402610469368618104216707648843261199718363641097797975842321139060312749644178655786293317943050293138934435770732477949865778598752581908108226757376754679420044121092701917623857478245635053269528417378030172148951183651439018768524966065914493810483948400038488561083465249143429674936891506667113867241225823691550666473110668836994896397379681292638468884493271324850975166614749345713480126638555169164804503193111877777278172528576289126919442352084738705557028362689801603448995394991386554981945354687309412321936470849756109596187100774635786266187322886984479011987464893954913783472235445022463965952581927141707828389005419678180476197483312989679604607741586664505269802008894375413774569499357849169969342396403501767916904299528408310720376705205363574132138183499181807272863533531295535572826901256588692252285289364867116080848109741839596072964739553946603205024487575854942252741993471143176059541060629833174490339540913599581582118487124342927051648576658782617717328130598324884060690828349198122641109031272667046052085390818160895042276860136812204335350302921014370174631170532840854664774988826035705605212613947280409733936590026317998998497756497016230279757710918489626618163543518894846019430996436848548646360260465139535875179701741569401588794396560401961979053355396938911286877624797158699985995938054407636983095386981553136175406834039746031793387615410013261506558447430552738891934678926408629318725664551685632509242375873310361916581310147367859942463289230984054415605660263198117598389680472769564636459570093020733325107965747329388567461922919512600273248774132996285411055712991129860402689497440196368038566339324949867846475722231310061849187283531104599745967223957056701559805112694929055857483452940615479358474756701121811497534494912114311003554837238038442646166810247708607816001200163348530389130902343908785965359745746558925432899484766739838027437679376103108225819241574979085469066202818718550376645668394263170606495561575448869376987083229606822384090938456645022853009331812030481062812672803959330493006433089683694313453363534296766455837936177601848862519515009943562904629018500032267443414749269344746393368328114822479330178910941962943787172921995892719647290317222732172843021688991854186691390178327963936796019024482494890821235792998678804351403755284295670341751214300466829249272056461386730648079922823658258918768594502460869422100429572259314630986988301404167515206454469342283177294436334903404457728678921239759456289506535970310112505411434193332063247747086312740137848318020301974951484556780064392189553003184064382425353172470050482311131244814826990035448785316898869211226155876312108725970178585248741090051001948855921200191691856077720855062321934999342604963570492557305406740983291372572638061709847824086073749757201291012369670470205921400597787306182011214715867754452800046494778322038453859769704905123796441021779066221194510922407322684796238034805619908812768880017300291762751968111160012347579163230602640892538895005359225495084699297569210945110223034586790888991768115166025839898664100451856549827521583402602203022289604431989709627735333908395551539762627319267943927807478171891924670414901141752216531030994570358683683004367871539330147993619272336398630820517850173338382170144017846113256207306037702405151888815627969495283007412604384830704412879615650033959603503916128609638118938703881459297792949282688713296501648628607928047914809217446396064811129354838244282067646764884287010618665398168460171475268648901763482827342364550592579225866505492707211211268592361741512191194389091595052205126564582846055205716316654059071575894506861865180357655748115425658994941033517962639872308677083768347229110285184494748679699356174716359930781267694255578134174908124146647005502854152955027899918642511355272382495679695249064557281515408206202472439372105446535944027789379395587806319778792932672226524781681712478068633002033092370105060334699451128970662154478008182782907450218913855123999922828526963673889204821115475509778248594122251241907943083680596570133005468740616355322011033957898369196241045991191843343548899202719253120549030701790826090997947246795638567389743241081661479600798238704128446418891205363030403047763201047917390982742849729347624041392830611161423654521564542102605529526541060919413167847287171485516810918525737121616957875715060689222786763866785044326405037281145435973236541825717761589213829963375165351504831747057911825062648064129289494845951763320025078659596881397195549697539924001528542093428085763485735299169760554656153931954644530624677487076747637433872316254777977109304610518213060378853365993484795875005754587483886769591418161305424897317296951884354220784960165340136080693781616284306463354431050956096817843666367029229941274000280123842438968911810178703974761090205386074783913772394430624846334373137515029871917457392528326576936918107926219684563225267128512509327694363021187375729761828945086699547744728032277685434125624708877631874309273024497583830530065307295470643627247802530589804613470764077959738190068560850702117351965660152867875280898423532655160156948877969186178521510577126078007692866127059704719700970642783999354348695422329542663848392248950849922135069743300567395371088273642672303374242451497358950186513850722754968579932549825099016099837954756553671762353082500110536982613058727697124755167098977473868776799095128243431902849800901620569236523625131164584965895563764372306834096220455242783342954891399759226158732926024625622616296834240945683157405431347947466611874148437725972807318309505332393110265816371957996618556051968152450007961044331608424358705959406725540445218767172842279972700220224561880441746437126318851327388102785134092527111446469489956649869001915937174890368342374299896019669359066797722451666310134986237803982502826111832627170515782333443122436369594339674840077319652746836841128339664187567150181232472330295309131412859718549476514835891908936568472820099434802186559704492386613208176123214808171458925024366830178636568654715406612763057985899856877609304734865881069863929307126279941798102214784424552564669919476664758636527986578806185846116920197778701473482114145645691827643870243334950808174436884803269666117369223421092439676214026788598002714142638545838194660214700099675007868681606130105312315476742709061452182827237727729039621098021874046868052938141738409501294955980312608306500326178321609514939472710493265185628561649377684785462492497691593357328684981007536957146849731986571130589454551302235963997423045578998017055904560634087656818476940006304859333366287687668114597343423668937503878395172914875778110980388848940261481587669610531040093607350820126738683076606122515051776234285142151852487562719181892578569077136806488562218983454283364337592006617352748172133776448481649389306330956734329236481734274245488101303893813286392682884638353959644542312989228085190685536337078202893243379733795597315842797067049087497297748990362827985261325508047623603581801593320574006931492809509569599154062479253573597686566598591665019928200976251466310875018090279555260660967592676881189134899323957498584392703313881958874686323647164542698435483819489697851156221490941672819043179079234164328659053344617662948778720595056922439717997299693624622905188669288859465229810348085855175203365931022340505088703588258918634084748685464545522683003101194813106072960911604455735080320552108177253881419245979007076173548955058276621252532475106120443810351683522304479215348700033695175907150893187995792761385399587010635536824127914868786340111198612130727337504014603003794345881113636225602116926477773939856989587716217316807848705581741893710283060824695262205097622561444420421940164545112515607849644214340042547550715281640338265785150609342941092890083598156525510610045074867671211217046860403359404724889005392364347839512289759827648557587296537894934039727427725297943926394770869706839794100148069951898957485259974730139635966622652359422288542241524282591585813581347779348274435020359940404318389745920141781541907378270645711796724381236140995025522428002987467630422744697090091025118767566692356133200111535536851291695209075113817201932878625749134125999461490005840236240088426345538367626692142876369254069658030970670175921607428020153613561072311003285215546562455877856235988381844599396785941822738267827346543724672457808237994202635603471957238009053194396791873061174210434155225618934779193213143413907459245852063433790748459906895887497069777687149722741912542706435522731800211536092603345446806434517481280907624579828173782658069899768793170875570606121079695487920549653809514848720471873755018778184595093325294796223060615212438655525872597380768863697885451180321496000012509506172366326877942648912773813226193048844879704171361211233557800882177039785348308342247137283001521917751275455902045613161881817606367369654841686088763976606411487863647526822226771690054369356615857776143822892406865592471653180902214809807412522599072408816660532363430282943973456607303453566816259305144745392162119900913330552499925484068572566960110140033438610415412847303997887507814241040882695542082836374555064267600401451852271616032282691039427621432398932545134816162492264580346015281163498916570338563284872607132914381322962299846454389065310941578439751926957577985605664887286503774920866735534688170085070676999704504430802817786516956318266392875838252307500414032246677697814429204496748391113750018955673751431956735150553267536302879695421236753718946749514120328023702319282040829732641911278138216575042045430553015208943410568138427158876439767816741751614343381358909027938335999979179974611853184214016590638119679037491204061165747635588347816690930898546811442234610133593004925122913855786524518950886841816869608064169435802299178482151810274176729931787300279603978682352054127190657057407219185303808901615818379926300094412303638918778449416226841153187313544424044738371497443978336463804557879925763322225778767576587864245345156854176183876174333158335315586360686551613509001848374274861518879873739637173886124639051453093564099449434293657647031718895282947474704413214232551098586238662962173566179388276320901323720301962078552598796233957572893550460843281392489272526872337112378082139887675281825382913303667900192519263133821665406435161213365908662554849790597002912279877895833915413728373252401368283995128425588966559260768150110121929680255375318911366626125403776118643321787353580204824323264355119623178258853027853991658775643443170631319577015772504129905621146751207235142184087330974664640944858946441247695023256777824623112113890552715634413632029025564231045261533146071141312466024915555215166876233569818239119273890862294807517990262275578295467114177874468846451457067878847907945889415865018600753038264262442128651089518144370719086566159248940990492577604787084031147276243823090052850458897526737379918507440434765386080816784602222212761018646913286196761310498011219581007076880128532085160002120004916086987509124777163604611835606365074030510246604994728065589666462942575632995937258136293299834611778607062594161164665703509892236596194397399958694531915309149789103271317319794021264793086128284775943521236646796976042130697356263928698952071255566553782165534237911630739981184947111947201484922986171239673566964773608024814294717081197800275781574608923933105778442940681450724119961846514538903546490448794651416126974181209295485802007418772730761128264073548949866207441552879666161824046256282275592980991075719890653567837815243216015289838462964530186532375802062921863415442269300165375837920226627546930899518144289027155409776261283234853874344159609936647166953091115921432746264106008202752028983919263284037319751169230520154415526010862108941022583222776423108329760909529053238161616111652615515802463963716523964579626501459201989784565720752192559979176323772520765024350930968358193320020164953511672143764196404627078717567913271367885371562286316771043629962071046686078330484554467268664611181718456237289486191977014809255407166376518050682536078082466674269769305847856926496275110000838411654296353815524270144852903520970591436300111842833587280498309586236369100062701410620573063180538926177570067634170524790278610126728248998652283960320299864174480887278224170222225272689987239745726660375464880243237460059960244518629391415643925525284469517370965327321756627986359458171331039342002206851673172259263009872966450488242901598169739242589139880315786313400288624843488118966497869574011065503842244994369807705400105593747472505762003366778235486703700566350398659431770469219205063614394738843674249421838532059426963314840045558475126584969513868635234974503075178755746204038931693842283166809246785388791079215495513775547680395194038675026869387676895265167749812711458710758130902229092881931897284456586081469947062027608422833430223985821846499929139201005578040859347623642883487625879390445653856417988570877625442957665734603305374353844868885785759150632503112400831390818709385383186044954127022360363710586865715723916730570222198063836356591548848763014264824791057361695562286815803845200495092503338525545853415128535600898319224036904626155947213656810497237201445587481089350412853776058496560993493232553277970568024080808158365499347746914997544949213107372647748839012302638244624004466672142408619937306466930109549798622376794368778429425552448868097851432761454976621368578883709532938010073131814838509643313405467557834967031421646107019717053966949728681314001922284452566041822445099148221505523145451957298424094780283710191368952229148315829469412355194483593187139096951161940744173460643100633524832227194115581421833951297659857652760698704355509053286722805662548274559054619308065540944229029667767404135468854062588126694338886108743872242072242009832554054350994291682563962175703694742875027523002811950138894660738109177641945824970794429938609479065658650164423381185314848587243761958664551842935031713571886022468482477835818247282945665613199437478508904491283407536085469264691528593664425558473978081537053049622798049312581027565690210752049182627760049818590728806668535657371023527974850990540058142182424192979470441053910212628772258298000658489629769209417157460211018066497784085466246264993591819639411779246921447128467494428741880853447158041957924782215098069593543560359670011434118871986294692134960850567701519081624291747078359309485323815287544342728509270303815171747036173592064366103552556335698982701581242209445797039999030377620055838052327696495626036148694502182875174643009799289364177245394607077347601935366208367843270199190513761615431537464905471518482886339036923525760452787829326157534432187302100103527350011824586612056358627698661373834700368795348280821349627969014894130540198731620381401289203737948737154470341917819882002076250130194703346126520021021209186087908815562657833642529014632800259766664566571772079591461971482890526913133178967278649776348512818661442358970832153310643919226291165063148206681086023823188276213155184954491789778775520175605675830964222066756008606410006831298317071277510665480755570762554848994451742730542808683864574269947241170315893091794673307235964427551343428970577669199802729417509415763033150504430510622582847971296107159867084605194447060088078629033608086692558891906538887923864325635600209469323987413421969322291263225635328058671480637499282958751187043165430148870741935757883777980222750944713125871376100157213524224912427243532794982519887615174896810665237497396801319758189682454633943706738467561492806279454119879563814454709925124089482230573087801624148123142441803481344087672772662153443363793214012606341402038229412790724657850755630725328250195042934049919883331193546684393990699364406519899680047674024753163617319040234251768365193767922487928600142490652239163463860419124638621770148079555379526047566912101859474289457941860518699782984392819906632854660219939601978007541874775680329010894799223086356819089456877258039396528054555490936864900177547833398613356397156952124002191677871698948176556287192302164212159132756529328406282444262711612114115880841590596407766114922219748309187187532454666939118421194148775520463784675183568322162182145079276235162774564888141553148814743677368275845897882514997801887372982705620983021694578057883245590392626602693772560242846875872023376138921108595945587007433503791825409327923249758990765227290940199020301822988818910681250207365131468540692714436779460226535961836112586817014080865523811278633818505807736734210983075717144740217612409524337758590924430963167057821739201748476698735861662299986200403125572055410670031471901548780829419460298972087621823767547084716313049629430343927807568405797720811871800599790003989517744015851759750698743977742503138458817156289064402098545395711098254757899768457094707779230756225731240203243922947419578819243912912376841586841722821804530727380108880887407827599234166194561028003264585837403708477418143195455678792481940261378454207977227246120052755787124330186430249503714334386256651960477362898709632364523254244936034488234063741097875548187985382351604152804790484885339208422841501729935470425691186312339429757232778117041062888359199269007414959494242007326631013462016232362513262122034103159415708174508658421069385659650199309401688181010978674509856199846806633599496715876197338496501172003351624708476683828704930054723236472787080673646839308764836807519232077001434817803403805836812207485618953570553128802190120203193626400473158753726553912368893867169868302025119029856359969676226632489617199150112856667410446296963342610980480962186200767472288216632786053260068000064169000720275277842572468198529158529258666151182358840513155237749826374806588743553830531718354574186909934882049258578504121465633246697613947333806701423640576162675437153871767984080646550092833259269461119993831158143171577874870417452627564137913412535491209208978854559672356112938134285585407086105263958528169219773057841186639913595767091560307628722735277246372957922258471592516089231905009260132136963587680740960094289102763571986377917055284209732222934926240296255229112760742561777716972190533864987754881039751005377319642413591151497571855132375871461815091267161592559635088835044161120750246993192196340218145530106132647414569002566257155753944316498480124022706939785377012389818360343753838689478453080288928457258179707015470582364101037351238249717085358328764301020645627373784689684515547368967033705654936051597986717427679298169548961179338558754687722578625623855063172377563642377502515069916581698697149463442847907211980804355720846695579649817134588081972558711725865866763416232915472996449581717342652797697003745084820268665508759923726925670697292785445687331000991226068584717646676322036712533699444429666215080683184073339257145461970762154522074275349553209415913786689704080880426262181037758936566197478033731606942319457259276348968976456129817199493449390885097472765889701891819363004361178364607006924600370365471931983129792670220478341045818459139858257461120490913155334438918059618188678605778085360497418554420650450553363637679859559463621068721914795241082718251163511080714117777766517095318698200867128634068968272755610680979137842702810190401854206043716528061310263069159829868840324262220285860945327294878427238420062557054622398647740725303494736632514138563221352186055496819720711016852603811430120937227352113467786676489117002194291786695373828858968894079611171725675004329691011810418511152471764507031755089580225051144929176221471075406971159809522820963138994941340140220340025452316518435897569551160516696661305232018086817094661156974864205959455786007741150669868166852226028196433699490764270749677440002041804956367775399290282249277207610955913680223641067373856399334710491107223828583430144150952596748859518502201234358480813531231761598700304406923040579085981174487732561606049002070232573011828766046250766756602401409427125652619410708394500278241039355438739250750492271824237266689613649441501731979037699594908744470840815674821728888170935907544652384914551888751961109564982986389676248026836001144705892121163089141952214978086760835205066500538161607495384102651628474726160646289805265854538385144287889239226835157358771896628760478662679316414411406202299301868920077233361111771028066867491113581201789253573777366394421477777280009471089189985834211720886060682801011823403490987214835718170892365575934871841830999915667474515555949734423059742583412701617970810532392185449169610956159770259891658119106245894113097225168448583944410580336084286161220090780888966422996158276913103647359644859911097634351434341173752909939163812875783563487622522383414401180510062339355137250092735758355276399100776246728178473935788605303252603142892062864960607776433123588961608811526425318667550377516149212235056842372073773602957973809480739127003047664230059871475190024484474355871240192528498596814823383414643413252645269338772661609990107228930917661765380655527297959533947127425836938528635565064819370872015323279095787880086032384877166352164052104672056222597807418666533446097145382081465669791647233231976448648480648968053707834463040512024306928368619637718991955804576088632747533647130527930111284530143859063481986443831771702139994441766295750432700735963351520557886985878660357359903070801702809681442140099809311514167364987900837481692799986828221479816890061120672645583278668053940620839391840498736141577980930676502808299199634604223321405430424528410353896927137826995850664257185563121069101326919461890867333561191586630757023532099209441778103180765540851878059574904303300370715860462196745472345588083492455484826879688881209078140245040845532054425378748661204238863989745103582707773871363291992779388782075702728746992051765687943130241119362814165759913877938670940959090624818505545765728437147848023337224788298765519257392546672147069367651661714431271875103794684782070374378055916711590731612780290521214709254764301271578141112700439430025425176721375399911900236966878590172912180918239962190693031739882920291596431720798561060493634797015184515526479514997834020607580489396640276532803089286419608181110087183764728671656378910175613053683500439298858748920798383213213236126670793820104844225208337453015389759562351698404443031058828015372739455591223278327102983137625426198751368639733950736365975438598183584393531172792870491304130848250679739051967389615994345808710813920737283001374054657197640500014666611691380142833710631067773107916878786349092813364164614342759112387514373368766681639770841786400525407643992426085499996337270042385597077243074687469776031693448204544442648491095146987202582902543885231605307821155806057122283464967190033154770695219143482558185255098084290793784202776217284078558135571755262767622940240896750987743429232240290886997087985244834132575122028970756094672804869292726403043985257744440406918539070537294630874174122899103478571081856635695921669030903103257025600754329004962569102477560136278520080132652000252340795665067270802787549938286016658552227997218412750043043091658460431781873064926119449348682837472491469026170217465291371632533339264842242296569569809634740359075171975066876749776442984201733468811720822314380665558246236040130975734699805079443030458092901238028079342357529843275460556687271625723744871265486344966201534593026139232665581039063580384334940678517604857667017462017624510052355308762063253393323073854955639721655261988015520400152668030400862794368679210206800134736361328608224714986044705110012816988585344654182501083912852135711982343114573256023902163015629775098512997593229009897841785416536308970303697220214967996585793784580211776288805539235713315101948182848626994318714401535745417380916166077156788853029127705271169104047077795082498533769856311350151025546631730456684838942919247276918965763868645598471345763211886557299259875548926553902488540575823902209125256918093119713247392683624055952524213974458477149333273250746642796564934441051522196429656430222239896841873272251484862740356577876211261532974793059958536693781430265996050650786148718683978647276965406110501595091680821261033562763569546754782621422816407045365124211921718120244578328313641967288253153464737804182181749749272731616338081902601970656059772204512599676050826867252875685119162489286721877697211291635413796716349511596167959047592364486766414852862949830301994687542460500584823477201867731617194466451223151211816766897397416932723144876646484907495566674944708770407727378719813677219542952182872246050813931069453659332950031827528046510893038477059602632844907855408561427911228161980862727201089826009558855704383450446661420044494835289153619696015628333104285048416509715574158777711384565274638736925573150355065845491862248461646537992694881269086832832287904447885607081872212470352111797933903354169089577008278575489274994725307629056938292837841989047082022256891408265255469731034050109111584605301739562080100393706876621674923561988239044868682894151620670005576326446716952224272078929544876747671159081796102739659012450061676878554967608868693646528495864062669572494039715344690352693746302080208404739260454296499004503960373337155863843387279095991591319960365920163989203315081985072268296292379389753413708520490542900315005740747140911335304065953327733557421292911628970657854291806020252752003838106624254546193486429604631718755757971339164133365838435003473225312158521988446957558375113235678067134574205263364264594969199865032540309902894517996320527321394322172680967064279269482069110602011009105703795584924571703425093629727658400981010534938041577053585168907351401148509188523014969013188943172723462599837200369407203142921020783422356225517864973586104532752923134058779334494953135294670479071872896292519081950463685362175941490094069206848719916420302737415529408544405012005219528502932195292759389367825957657120759737331511317109753491814737483060214115698202754115010100974705303857793615743826421679902236248429246837914056585374295584927337750997483866409146087855410449860817491786490565754639420422504787778219387763143696512842025860322622739311585679554331383251252611761209261339726331828403553283253025418721326412108302326672496227043528977425193442846300907528388103215493792680854661570360214268547601435272089047381372433957086984931936116549254957809569866644690601779209953807672531384366346022086970592015444786189833226284189989585422422696965259684191710533731276869863449761358325844253540025535091453959210807200138072381570722451789253898131871407464562006151497387717995859488955562642815287074840920101283254919499918386093256710074299316476870796152353620143885086868002052511750400207619551597393560602704126145127661791151073359357893371730938798947204884599995066942208612982458820763946703060112510054720137070566347585464175963481361036953595611486623067213297418635785038828415555434922817087083977821311645754737467291967504393905714360898727665879578208841733712087085202063071497482918358016665756981665306171192703368251684233528826677841400536867911484588330166681793181273552084065373168680844851622478454619307219214885506400981195526609460615194811790199898933441679556629523203759590102479460461798691785431850106247288183845964814234658426046525481009545521366131627883898727574728140628499953825260042500079297044453086121132598440853507625968159275107393122035361708742726007485797801960738453695115772341080776735181838396424065469130999562539767178833587372917876597689073950354668946588003869027935244108761810975942501316342299961114429713586374352350843068068496168937601012379258782239098189696603268413147659495699122902199492450334091477882345408523348140679290082557189556095238015079553316085880479469265905386021688453193967291877527448965705890416669733945314288885857548551125633748765179524021332240053064585914789978857279104669658970116395988462525575529327058808160247770406779812432182794390140291700363529726973718922867637769382574938748439938910090326486459949260944238865212259772714958654664835605725624922194395667457185158294618963827452295536838349843503608668835024373787781670705127295896504616870857995767052622261797018408910657492756228649376926033520375472163433120779823801167488733593189111936757819950367954544494048499757166387844508684795741504884780970865562414448600281569314915760589662323699546115474915967973652992023875921193175748002463061492347859194099790258989779855382748119290844608867516494078606796197625327177622618466730630883192439122310394282433099223631679758739307273928804037818672066959740147917850573805489682262988519043910843738680764550102767699459080170202770869956696481046494612606361112411364805893581364902416622432858819639951947544010030518185371381948871485205090499369594216994452095370527939882678269688268301252879110783087571807478905482612586678173085391164780795715298347673603731895608928052726692888873611580088734013132140548139379606969745553717815285778971730162271720343417223272658089276338181565593367823493670934206702110834629506932110544202097601811800633905814559757678576324592163923701071830582161750938724995630419424343014133993219928322740331629909745672877577553367267124293384323504505497370921951673219925367197606328348639079806038874293793700001641490460841097954765068584777734809286620265408781972460772717493122871188396751868550858851403188235493088823924955389203845568623215852947134046555197833855723188437375173384592262742787181132552264930410428951827527888837002725893607681196065137249052030159975377037096682971230260741906950661890500570207860174519040684363997867274253039935341543938402358937903227383790333408015543166462175833674982042684022007201800757527281214320299374055429312029279409149634038448075110300288002497797326693366828792800446652033277869538404003765192258144492892714128776439089447812474033980731721564088439195641356403771425640367022188954699292263709604578730604645462199791561227560997020425913796427389100995001306003917561650963034041867357851231723976511042559712317846478462824156229590549919272834710663638540652148780071002022542932899621181855528466863328911771579610964475556979441952196003822869927841442865029197050074461405976923540912029737430842328951768070043363186846026951559343658182226944878469143499681169331983030338580468912678196472191322195577368309719891055229055150051558450657665212223158022453627426856277101042285247716810525213272474469770172079742280208616183183761700010323155175807436053595888489408679213430391252339736368718874827658457918619010400133126205433440427401155206454589812375418105924436302852038490327756591548395285030507331853885681421191208062272252220571685593585810722611352437678363846962991823322654466870906861475943344570397545492612453524702173278391840985323636481793673563318824435529727773799065855445095533845469131512513234165245599039317643086110856497994690425753150907617900067266957523119864715009226935777767463913346568998110948121300528080406485009715609115881344918911270695292218523813389710842551922340188600671243187110152278185102464693971091990083161156558228205443577579518952815749354141413206934890988666519588616671839017554268232451633450389401258870875591120431728094353531813948813849457740778176624904038814915963914097156313516461026177941439415191934723311613876859658872065563646896452447874373244514972584297591069503911816122873646408466926148809872102042450732055075888514994186060887506512319901905515827177881073555759515793330461630878607688315264614699922591564678206476608149136818421995552418953057165398961132881263715492852327907900151737366456589678015150998702397921512632185806447830408176923837522751088834980751652577303889427411075025620689281901477801346544831377243426470814293216577156965605486209999100916867464302049184364175850172498136026203452137535461328862018504078625638700756882686258914685580434274113455928975313739388578841200964521730041200967035645009019581953961583038623545084841973369469298290482992736780168492543835193028358309637750990502468454320877689440006962503456827310674651864533509942950165767060621958557262241767785384427491597193241744107491795104909627718107432371754465483985563496630897660339241770057939989505865371822656840744084480268592275508651534991433580914000078199508231091824835975761562518592648412536752958403719034464432647942143046490930465355598666219369999466511936456370302126619313007822371499801468443588122300281407979707086627479479552818469477972268780055158161839848736936746998300364299603485068938325067377094906282201505667009039511002728559459463276570804343114335021510581054421941093970480093561488876925380414407753770682071754548362891554839814858528359743791326336280114493175535840568201724900418484165268371841584876146501699664314411558099822626852404649784468796117960071378951084889469756251096646474890306584540353313989953578731021680750826249233052959231498557142181909761874077447555277631477253238263974477149817715938141569612985488376211962637659419743814350717206670508986197338630469677973130004183810992480918023252771375149220656822474923954806341750082238302475948277204130561313317736538126653429462225336048239316515891346743340927971062562477319077136961346535548961691639683894569701376955624343854030481391794014955567291955415243499787332941859125098849568312036083486683828034777416543136041950968806725343019140520351482924209792451966704426789728656853100521330024667754103062840313226664092389731265615409664098926875759830550578759662005558766960568363621672601899703426505555955755208654496900928328659026007373669950225700393001314211423015979032328382058495935068305674892298355995638954850260115171910911565537056994508251373212393057249837982718139900366591823996604913637083005053208730690834199175853729046103421825023772635354685194235104325428820181209285981902327502807699128935938012566171180852955661329510018847175543872022824355805926985664418757920719249420652929137685608710331236700960937782930577241188378926043573850575697309881195652795009664004487236195539868938543939145175297062102486372307568610976752649611224961447820978458412751920054358598716054665998103492167825514197194452257791781871484750999331888210140543513406355248968044388050515563409345644454891585159246482868062457782813845697725807968154474806178741853085534349891411265133835049068770468278540921575872964263947645808039053038954557234582190139665617362674913791850224206289216006345880485291580368012938887227280332140197443077743973264095832570924492296394419539603824959939939711881868896024673108639862187002589235451115932986681299096920852913648730282744508611441296669651919226439791814167223491816305031293644011879166756066437697475897983894589636884261463963453603741911514950555678629518132255863318067400620906931638987155121905657416145246642309858407760307854865099487742981841768715785703743196227882983961587436947933881609864547595948649428615683864723601857005603055632403563166492105319195202721634329933299435856414894966177176762538994117758554219007965529150713136921002743816404894907668022838448118865562264906640237396059354400443292997359735545572165707373289652268661794035799581437266462032882922615816725811781519447488286591821654452923682252311013175183054406185671442960522310747541488194470042667960230448748478965953359307523237455984290788443702246160039154910887063555735844761528727947894283626908188185895862858770930747428095018498281468001760653616847866828420869580099069405057659031115518688410517868119705995689915074532096024286871120102857593943972246847673814149606819181087203171018105047679172757595280334307274201494743043758530659701270122254479469220354235147491966154732111985702791363716356903535451627158610714286014853927385055406689611430601910600394287920916579760962624237182838633306947341654381218477517448063891400927956624202728174759675767081755420338584897053923254756301852170770148174057017060129471863323791658519804781896628345629614479038445243037348997594635557900483942172593506905840728370520275395761999113996952344935829251740998611161722345787439693801907280938935542660562407288168699208621177238765450506507775244146225315813252059045243315296162682562674843670826926367708929929793555977254333423820165319343537900981486316594720965784174311856168660537370376446729396505219928922779047158414668515572952732049221099324872118839235989790094797272855960353840189206436947928673041911198091340201619348763604685071512683101164521699289923922022412327806730324802138888365223484681201100932619429489550888360391679072183396800229675900147843915080343676576964186530394832779323373225841616078527305167607571239967046940812480687109860936783814686877232356938173676185062051061622072717014364847545583665085108710557121907803673168860896550795956931129577895584583163865351884263709025576980647004578836631498263137991079773300619952512638943171640929757303126146299583983187121068344717356208644943489765022679219870227871610334906804530513748642113382564938021675300631273422925290772334415482273702371757161317023004030694230639615448039417404917268376349240820894790880099235029525684386907798202646951815922499837616371908050848664232503443511139415939988119469264772615830198901297200342836116957963833913235344616493962511196548692676070709044507778182452672514078461867823851490927711925502862994244138831030363358656718110855136991779253636099791441104734634148164239192256577371774495787540094010173512342028298048108242982593255790404166597779810239654876512766104636354014367459337812303312189187010264060023256971256990743494151170627653588691483876182799386010849269120504098710135285273260628104717948713214929778383344160701803622804991977050466711464856281098675752455013983481436317450583813022390720399129307632084997554822265393064616439052988808794203623919025817502925187191690560560755443182075839229380193452164109336920839063819717061260444255573534845977117217105084212987689887787245044474614267714744286699065092990848033210248720588060350965666798279361646826862875414780456996043131386199387213661041781646212853169100769355336883661260150248146731233324612537471347434742838384146134518492839849309603729316164116079980004132442598324697529176721881451966743653361329058508600611157809532787626368650250410681199596991121755849810233877805339076817670499647047618605348812215659870348623553122669741897269164948809821584244345441904244500015522520212233052847423615287207219491770759684403137121660041248306109937666114808045273367500044364066340137940268912905586945078919483060416743264496737056646332500596547691513345918039339772916171851972763065957134051717468870441683814096544883394904819032565457977611506846286270640786014662978008140466749216272837982747476787064838751807580347014865993427740790805827267734683531842109128145706981232964262748885458240025736342896730772191354544145198762638175101232164427255874382549815634928827646446143012821227064717349007268657772636743286733925173716793843823077151470751887578403928675547677173056140205057211816008323765188218079185004612078405516412472424024980866891246132456245480083403042732372679917706557180280169175381150272293545884616777209787776526262301703175331425809115025270651902759004403240860457946333923168732538936220500116384853247713362207090225641332263174450494326581623486844583765125087768028391876505189722785523786820365901393842405209813668899272457734660849679780571486330461414105617834888672520580940581547185953396980996883075058430226637645030999743002366797743969554867035012073035941364909233795503672599820864679987219392163867037087147196522798976292164411173039943346508853451611843330752428336801021810481355071142016053418086528266051298196207209594461069213571152366012850658082851571953991780310924424055701404413787911727071718342555644732225286054345549764244290107029763194283918265373891248113986898941351730283555198784565401124492218474007398366758675850385940868628167607669477644210695635336071288321300378180974964436686740954173939089743571455053833413989459782663761157793379011415634181537416555280780358410381957652537862348437976267553395855745088655294804297953555354087864519792084941996076569427068516220342651439292942646287431839773201849400294972139134712229674490018770096235910285689775464318383455392374410089138565100132921138523553635354645500631357875641146969173146544098685946807262668291947274585098534228905347039632184265227220371196372989642652950884530076653179812230853835891362233103715011391239648680522173087766326294713987178544918472758741552262321939829390620744434636698864672674207482545684482970781371158831253219024930107289097566281642137996608091998324055461462712297411858181320660079860834046428978255446310982179940775751713667215732806222507602056917341381886485850332023653214225863538283625506557568616745255364943565444924058674645355247635727798629810787095185508122589165076139831388822580142960569370915641461409371445591366056762006864458844098029149598321629449007036212888332382183774359675490864049788989463961103362368938863838987781684964376066478384321952255850060867022422021789989766675562496711628737631665497771457605797397304627329429269197801840776955647378492572921211145538345447070004749816489349388442818214521728096364876991641389860481241504225570030929429382723211052034114722123775219827678215234636332879653948353401844692487571688858044286874354103099934833671304819001289591209360528291454192011168928996146351166370580314663475875561126256875721954739457748327954198296359528023111752542094337240383456718604987665618467719482949161545266643681917125901566307499552054877041604143986317706376785169910861347104796562086214291261897077152711385822628235641263868651317353536161968274196983980861355694596913463322214114240676918928433078917576135277782791933401784739627226634241107731245895454113398675741516649772743923915066142734356884076589373240617283466838554001051604325137675105398488348452142625115960669261394430863281197303881067297624994129445440249428037488469339428575945620616948152601862786028799338581168567427518278611660139792674163783929305314005969435461236665211131027653777258748133334773697304651164601689678358802900699137327888484211261439659753561194864751356928721754156123995230290853123253450973734238401708312986928310304453559035104318198488542023674986078520343109552466856636215427809440724562257444110157181767138043347799053776484205468297799536978566959995301972719548816269249326753974783299122769015844643977102094940863182712765504045987669390612726504271438899273245753928543352706705634258323568922084229296652171676959035795568695051726165909257361130125534163595223142883522578298058077608801239643009586900650685592802939304843353094329991001642997015517442727757625769786403229569955085472819677307127531209527534121496231699275563808835324374281350755728039016207807856542883116483896991855679559606477940857272349168584365792737261540536848526568322851906402239230577816798890854659244585741071191975853518291414627942230327707484382003651697553070363137423488324298348030990832096048686879841906249966734081890361035483058186066869188833236811958597297482308560800769505139759348278410459191113074664238900744646068440336198124877838885689086139204339717190921965208611577307016233954688604052699386554142226656772254406264270971459681671566590750277537675170850089906791840943970244720357094859326269499643336266101848413169293834425808609282426453042483083851915630166758186440523263151710480521897865875760817298265057655237924876079308346224885312499008452460752196754002192939576205271037295814230777683223354411603151388881456727543011428411052766961486630279181033157348801067834235999503390611808819928867076699632871913400947643255707271714368443855199661172781897577111332420332211031628352893653048095121802939840001419714027803010583995839664282000408601401502916965562993901186459718779684596852895374162540314406909428822435953348912929324159782644542113018659522611811105444750239512763040712763245180695302179976205473668245754563888105356876094892957997631497754582161809952854024055099766628446691557791884424223669248366164405043834630681613609936923015764329056651778227126632497575040080166057496014693208517867588254655443763372574149149818663241142032551105800662527413055155771692847830216154009066236883275538617344161612003439513658882614938957634675794061471152967231626615276372023596670432802984334393177223992699198372943889310397861258314634801006034060761418924591032180668431949154913999847632727526331526351349102049129073184596190556112646478796172364961237713019265528463653288678342492764757267499823753913550911324370746983390240391122173990673116786331234293584269960741086683520856457500933122391684957552625553878054036322026170663356898490287136419488175008301247430054250512736003083535772637143289028459377795906893440212803685893489977136536684344616441467187407021715242687537678581671985778228561797278821462542531076735609377593248626959130413579763670872443187117233964193151082704342552223734994639510087350519749662487269956678369138402472715083883775799383176069534162332942430315255324577627998199679260600443892411811324998169062260306333089686096085658153622003930998299319415262772572350121855912594925429129598722662404136181968629871032602655220094436688724034833515069528380938388146518947556599267376630858088374872150022411419866001067023535663540833453971809894883154694244065944662991977313168006846877622302474473922133162450354523736291420387335896996848067735687352561311777809319430034005268219926890100681865546246281120076398464453676747751931356633493600158513706670064760667119781545991376593422855848151692721332262176709757280405062459513609002397527128424748503353604603021041163881142502997529510147968111594802445794777969226922831866795654210759079051920216753983977174415060072680021937527268999323938673403651254772784599875418900902705801399752853016148792497656842048948685221537319942099024381870943852747977576414980358011293111893488449356906284524706292809359102270817926382472416105863628088486110613944008352064207722647247578997896121948536966469923990363574731952403968630444840801743686703406600703303584978716168092235119447681333450055852852524320609604433087083550408703953221841954781809673433712847763429603357609070754275827808152308334156499361374673471177654396247040758618215603471927549312508385443678315730426035681837798827992582362160149167462856494186583317493966875408534386185564021987003739245723969991233824667193383282853113372785921819708993504304417379515578142000758429808467104170862572159232501777990354716450252962688651775028976958244637694804650688782355919499088877373832250966696744958712175758495103111188135901714761542274051375992954458326015230743442234868526388167595243086999290984457859911261325530798319467458780564669124187063011142647117340371486273490680339541397747577747913100055762453844379786532968756271347468619419110509431141838048920482783135513719114321300116291340602754343247137714560427686518179852315581032675595602725463661776218612893445085017614979563734648310238548459101728760406559703986171916918550283626092734114705494101848917263275207861066378517278169434181926944798327402799244974945881150976015923104671357874318629263841667386996414300593541173617309309940613886486619750755993257554706759827442126622545034043991240678544897240829043432497197348637041537652752780280340288744242419824274747920453678681483449820084460296131175885020124620340595140582085279882692779997752686173382036526871501572920898862461280891526056441839638987615967237110710892385485239134882247980378574874870950293059745728435631248728684682462240441532542583820220040936587319933831247500503835224314775759401554713899790316573612092209663281463129307398239249107596817776232028895920364206100233248687700051219189404766279059807866792316623941671436379120644302314394541889508032686974145111643259487710015477398303647053585056653928586967253822128183571799924102756253571047866197491475364793153992561224775496267849976280122676953083003127721719148254758327590785966027723018727042711585106713972595186580768595246087316557451359284227712140174274833154111633008543326656800423768122605846816899667498390820220520258907889772096223669800267107172681849335839440637514626245795033700645828813284409116535802269663953427507639753578815920660719988996848424592266791131477385485402132503178878616562055641188652847936939832212990657074900845602082749062600978176374559218884091851258468078492858855161480090883620157554379626283842223310484153869367307373924565710586383962583319576272096889117180234012097968633430029665725554284705695435299103449072133151953714531244616159429294421962065528892516802459511440624740747625756175338964547930937007786444321710942079291110949608941230660603662699612706155433804321814549594075210066939291634437697804427359591787568634405358520966428160054058491604498592339344810050187946525684499283639273785562595542826841961414839010358077719547377375792097735645233534149009000288569290303308992016301259742099053187870344872674656989732753041484806378650159772188358993925087174198529255201672129111654487856422130316739852304153944718819350301387703228665220794334186065925838883149847618111020975822032989060931317313849171545307468250751254730739022888514231018164510526795614966879144490700738033152062398349301005418576908441003412466424231215104393753325051035678483379349588731513788253344004571670859020415863463251728344266331957694806115865215404959625779705029229223974020110878471715093747196138395208856506451500051855251140888876897800226452040561009249527041526939808111241994379333961119030092045698184065293746464425606983451523736608929358930664961659262907346585591481760773851114814161995810663839429140217692955213847780094764098082695952940396293254239401789061884865117192919762698042219106982264483847946373589312839233809815220776014654845783503277735911254280221160506423524442358113633336440692446397555586640343260080503112468797628752499140080049118526476807074491438664272142824779078328242611131870736026837376672208521220193884027804602656944260164433952367544977467382855859921006878888505685158235095201233198895848331670197073547606393209472009850405525505592720841018082244116519083286311080932201178833065442854505176442148545552301455812322940025139528815560207896794177730482549770189269973196633500407260584693231240990961818469783793226943077486291814349123207655058562262490764080717571144474574655410029768619690083713584975130362957930730403772983021113611582448181210399215109991875367305559919933732981455834633049085318056248756665625089895352311645133609808255396599006007191631861892127007307250355068133719564167995402325086305864924914124581544636704857884304971565755382507252182815103504483733893203300034486587413316168449199898509622912990530401707273763215022219616040123403109556849860139466531055250851610804058589578800198580725701132202014602020441395604026782679367737736431382387295047048499598819748400340209873386212313068842355606101775489786195646758315171792443352496135737018503095455895979819335553850537751125428306932582542534242065997167171134216148037912880682416616201119185624520662786218334753806750571003121293941876108744090442084623642416797582825375347940917361705575786345988451165620631027323348140062593978662620123192011393890610574802991523006346785803554426435434713636765897444780543332891845820206161439308996715552756872604450125945933839710981914818777581909536723298645589191378888697867464619905574349394659376922879646368359008701991081962824137309874434216643434936242660997598196022178854260874130976516658610249134601122063468506077087096174830092194710668490424546701426288132029792994639034096625803230758974275523414499651130203862740730910653655448939004449053640409472171344497679022593242202146602411965502099001105442869278581136218449962126323599514181998149466559955948033504942075806260683658838689808606881317196093055413178688183760733527864899437897014101044571936488939372232189771091451443411557869703591738274244236992636913460949928581654119140957474382021389548341975926101081224943993307415328430005711693210029557442009726547077545927737540210335512753722379825055720273877380536907545530701450351101859403483808752382843175890069791207269091879235275585962223512016750841743151510340989425379829238570195874145277015490941664230454317149847235417639221180704359918731529600237472215304969229890191806722872665090287846990127038074407028439604500804255588193547024992608114443819340865213523538163290105838024481767438346927366804091751427176088793075078078310595223065849052631102621472349153751141294236327676450743913487365110360547826421850267039538293144144995572497825009279003399625997108888751786596154087268256204290663318764175509846587857515365539581534481276190732183329290907144907897767408469842216060847824590998033404014151453320149302965849561307147449526645542292060542574214647399274917369826747463285436848070222544985855358153958365790493291772292861539133129865233105627023246293619946208657263738350604677905734078079811535020630424404547188829398236167543520594505678388335154850278922324324131990483922195343110593817175323278084324127834523529201073236696913154064087390065643339844119078369586888095215232320328058939822943287051186660692754863639757680901498128478997520590827930266314227883883365290243314720609734581923633000188867530511578586099645236059965431779952552062934170782967577918096312927354230249051177851761046288775950681488517005876975545182560309331971531360098870686431727980096120227228810417150013439784802291011479061629466807311115660039123582374414589736197099764512421952706532045695873013441872994698194607630979765088511536328112178366970969364834061245020397740964435568528881919243582231515964333175800077752169847506251505791048865296107726639988651096392721620330562466481683399792498117344632902793986835175770014507470708604477010328773834554797482521336727613072263071443756530405675979820024309315025731570572860499980376265736372914215533227581032154171864478483450816112039881591374903410593642773478642338062762974092478447804823289975524034864490597765459104208547635078000372638694480727429728266560943212825315259859944939306032021922648206247332767024399281339951240020512898838365639352207711250248969371134728758048985237755848458685424256707636182473583167783876825778219167411175999312170083954254079740243604470249172700050223047067681582997252643186385049296081412210013854092185964255545512411422493686150318054427083649252721430051340206685380318091842999136634388121582732381281961828301440281189869574920333394371737974393252895607432908874930830004895390382211957037720318726534408500930218351564060666842051025617352262621485076685187046931172990880508212538822812627880565158247426638669228216624911079458599274047221003467001253469244250704789626011242361677982173608854312474035868564150852358357515078100265324290027360981890215228001640436435887053456433114244723876486758532176619241471162138763627754010868151794859318916902299740488377790848133078774305578276618208627642559124006759232060694572190076437153024785149008829113223708463120953643657310953920187925821935495192164400623113804681625217505327080056902370174680374587798814441496078812147869709113968007375337602089302787395832663730589651807250070877293331521871583154049143497559305837626807895445449959980236838441497601117129751153464514484727188528515122460534366658405454918444450031065653254277874082077769887625080458844849156809446110190649675127038686709032453747754286192006298380520395467889160928947311042629501583975800902282502066846560702805017924257066692478547088626714813536065696672643181886491178716250100021447032576794003369930481512384050946086700846084576157646941369347794272110048963056404368658664684399342429435759430558107929264351513264192730260306508765542972835817835407848448953094977170244966617474961891158999464372650172097889430160189361909880944759977714815913293979056154189961252897044029856618525926486502545957728203964051849107032650935317932006728204896289749370177866912056284289811070326069399052473416196004849884908952768359564155687822934117857516205827814560623383846730256200302833426994789231186725884295166551502323917499546268581233073070754880525115559390523892549178919399842798294565906668913500339881155314295427224963333903068097541681399707218169057332974970106529779817194677528977223066220867784421033193095928431414702693589608187088500600035384358375842467392801296889240855686968261911390001974577572938262652976653434304138636802304215503163556263124904015889181770834693276364231747825592575280582404127023185025258665712327089194161372694007302310415620978054876545168627990039012434053489307254346870694523034909510012645058721011027221706231699687357928635701289328169543932197293408933264790353149281480953141876895667221694079451183108342950112939669101615191525866963273051793509615432891582440959920057157482275323522651764955396880063959437692239891329694484709473818127332815234279842175249401913063862271064813980290158734840535761687784202959519361295371996328567118801446575524833485559616279600569890226899375426292956933777318519717168335176904628540201301414736833879002668812146631924492113794286930046072236574942825471065866070544629347614784172345418118283543129307874900455909770576966799491881790529633090729972038264040391866543665221452195696094510229454565478897935579472883462400000011029825318646758011410840324906261673882898490809782410996770278853568347332624497874050946940052962236177851784594799174837569289863024257920715778899677987776534217471008486909325934596930730329237418191347460197837750879172530448937848143809051493256705896420263235874897754819374267244504209634657843285753056379947008185460902481197344625526939476074707318288534338101455702025971784512446439832942634886142385384747909034707421316476863157144689593937656576401968397327544966065772251474193970019782962679620203132463705612821253587904032429728470607276204525996290765531927304883419525327627805545103886678989620636944271871896502783305741179886343790738175238393270334724765408326913382754077193720445357523293416188363551369253899388963650791940179251715939320423622478555764351802965960462572370775408228992751929331118531948771212101848339083069153324793425431164794718614439863771040588077007799836616744938874518758648957803191587482809213043739900675509539967326097634379723062793779299756922831145060653248866493120700704006846388343406021863643518161652809832108535194788934720606090631250491554431744625808991645311340232854935489494735642449773876650436444182596502805980844977530288190210801105466303481371992817818785229827644068301736292656161232173228446419532101271816866913182642194981994549771563679313119489692822789681532186547025752815063102542309541721345680524376643838146034574959676496976089401273871978075284372281642288969013379096848717684236049300387007900985402912721547880498030131666162213392886315379214158975670681583184325739527283047375354517093188492824591190702036725903776691374058039904372479989744778015684524617721864691758877062836412867149816325162916166384786210435296866430270485757123914586445569398036913685306227210902953913422795391750874756017298523032006960021746910375973710504029659807138501150140134414845210849475083129087224229248905418866392953021371769852705987798611261739527086361591469200328254559424518555806043602235929900140129880721258289068859494599117245755891223985067610946929600697913028458219724302316273972777028292567872531746299939519280948009990302386007451323722626251284287181677167617586898377167843008624754278251881618879507247328160040093264560707155432914742810184369420653398898684518805930695804044705321718402105118336865856431930533798274430118684696175292668609014683688114316165928023260184728378106660058630724642356665218820846622201372766040573166971657774836431936942468647295779337801886206595165434862795418331727921420200690565900772769726724724939535268734735449919800102767774559590926370395368307346990638718279710788986628088890793520043955087063474410029202340490088394560000830130560684397245229618835251178560214030485803345482537202307197231159200604937689474877869686857588779723675524635027517705927265630945015778900397793673820045737269751808339737501708281672626979921585310226003083495666473371701616083720507162655521532421851271319885162032789097970579640593372192429799160333472842265399066794288707109047259837562583121917196390218090656224320548417572915919395638440217065809027335723114399991739306833850964272832931306922738742260862025441599381873617962636587604265265768313813785020519605635747456924147465401481455371778667439674975145199115593085435642206762508194548954597005833134105305610413011523335313151995479827569817530068473744310270590810356802420399126759518670668249590817531509485221188842744307629763869863440948794699463139076726065070296696395474364261699204643221820201577117289399101783980506192437552170756907849685254737446225215052750099254191012543313045577839517278491782474501347335086898733362028820909206236726361640917221653736334362618004277697267111001853030261266276306700242538215294985594087186831218591327602811791894086330994262751607932956180255655460099464079530781052600566532224827123192775565251027760407593014559344000899480374025092654136737732640222198175643619494415200152388178230738693275026175519613780357489031458390402448145389786890526373468637790668794968909948904979913987250185419205944402149390896935238839646106053456325739091050792353991340326742493041929874723943304950538932582882925595237886068611100901979435402997916266679203667248792450458238764171199524146242746302014040488786600613537305887386681683723947053248219724765381564112750907073612554881672729745349757189224110277243861063416409302885167363886601011815045359659829036678444196209564879110820184550062403429522524047519075165253761452063396983132591221509346071263156307620099529393306988149919880825299117455725988433382875619686879940471216722030736181443585534783602362322818659354875816039620475429194359390474910943701268178512598530834571012615080794076604956950262953323530142993633199767284022039490898190461025863101436620919966170587017977863336764425066888328779806958719405418991167258094306786416580898975162459824784096815802351151206196605967803691780045611844715222915429915410899711333304735306366387444215099654694429347435632244456366307373733085076139765347685088888486019015089814814594845393990398363145814815470245255811691945821626445588301319973439880184454459567279154300457464999134224694458125323612604921490678798388355693006436378716976911478989236612387611981358775776515831695481393963271334563203091316144775467598628533696850565278356412257290256960790943255509689518480464194661071632711274363535847752650330386420978262346944148613443389475250919328040985387274232698495904575902704664067894129423144958738204244904175729786295618903628879875243710054439498903322259610243457351229685746957433113469102371956246787945278038865670765574714043538182335445332020161337243048555737601929920776297396676889347822398320805973586513793797838592913624540372801666967713626619777115548766634804654990023685664727388285378526474024263585129336726806612212983826542774325522813050178588633898579251257786112579090953417455678760939614425858734462946365207927821699300730624357196068041459946952113821592741469207514374292529771640727126123418542657160667094339865706007793532697380911362074126995347675200020926644408521532619081605211281644948407790306047959685746489011706696285238256280346501869979405973776430710889632761837764477185920344327812769220334672325368111416804481866386751759785576083210621500832553974358961858970086611383992321575957284746083156937780953647865660890794812840460411190219849957926251316244631056633213820298352285637910624992275431147126110276996428875046823854387445879091922240272374231067392931246843268222024650898316063478072836615908418902382550456574481746796758076570022514960461122729328472414952292791588343739478289277665106422648212748189549987919457686437669692924772446659037568155801863519012177887449975663329639950473528200401389973891542847513240533169628267322856469194642024871195628738321769254845069301962968979530613606084513390180569983942081084591448894187759310511343624494368015744405816877863998378923956409737543510360875351729380846787997038496041943286669772568771891453104309427000876256562567418562684566655879706054566173628253267209530433267624916431615324329647265335108121467567355042512936330180678398292926072322891515305164373513544697323302357054325891033061431884922922013185856141011663567167317120252545295742566460172389776379018366937152099265121468120453205329358231377458346096209630084170622462229878114238304154530201607114207706975372506110073279702793758309226148769812962956629516623778349855827618000972130303503634984400889568601041985952656577036430788341758386947428421767094096159647529568638551890626595215806709273484657149500637547739337850821903606834594505784199902881082698945231481206389824571597627624382357092464388528089798105797398907345519082934476092685628039245616851861675507323877408552031915721291166038073993745150856525506229054217507546283632846289680103481836042843530818598822375763799475269947995457735471387564025216633107242000856557077747088602793796432184039804550316870498369189964702520885881995687907167310537178923349568444261604021125880670767420049483185019566013694792715491636650294907974788355181452510151820063617952203204687059227256404380834013000605926677555234790301858381661189936603961364028623394946948159461317440287813437048217500951205723994797384254194899670764595115167316947514154010619241478248344512631783195585662746012889300477927124852471666365624437141130412125473470230102215164963399866276050922852915754752279131264950450216467148128718427700825009585335030988175540381343470418395507359484092916607223660821177240406766747032259372970722629973639754028904194756189310759901024085308141356826088469765342059370078334417714435230595860766129031209422803729241071825235465789472918561148676028300991610860887017285894092855623011462796436189952296191522511035119022696035123056640425610290687643448701818967853881023247557450583406078853523081980968644720629458817635747398484735434307640913296754491623745673709165982064006431613196312131082073844606842228608877516053984552990218826083220050229505357112858447983382002985393676692608577097185686876807053101381504491783197049685014808055191925441384712471929252256742740426003773887957244336066770060840064089941973021820574302074282833469489284415625053807159377886537030231677826057973328896790340998546080307910269516359269753148643747387874656121513094504285495131717084852264205767156303937628329656967245806065281869395052386000942322541139224002387077745414409482390323614309514309797155258419138250369365818410318431846639406033492106139930401775530051608402005824605861696635499507426884945262996919126671618523069757938043758972354980147222019884617699030020792968930395170753984609615551432762036936567325759872643793765572829805397387620828446195274990879211768466146324637930378704220519247883901141137571561153172376538920872533470476734913517628702458368785933204206600858241905197581646992601727961481051443316199855137412230222384594732876109283158862414093580763754602212517545175919885906786238671344820380525421530244937116093409224127762243837858226872955859422547790053323167765514182387100018697742279560292372590873559153492033582743698805353255125000283745787835878483699600721332957697872339687083659434888157124662228457347401930613899239196284363913391634650479617124048772814499771908624400124942817439025981350964941805852663608123306331935218635604567093545545212400913604879465420482741296066517984203773211364108759811364675409818573493101988156880225476354705407944772281023480877521391383571676656533172015555247945201881645150229069686412629999081880527222466557145720889797334401362164884915487832434556484064871377298226603041091669124255176949518861743941941514185636075920908152896577767383053966508988437851825304773650045912289760544704338369660746061734946310933765061005254074422581154260857363883174438345388590195896846446933226298585653751129719090818122076936917914579362215422516010551942192588370202327917201991741454386411514479082158362391090345212356252008783255780761082442817280487758515522730160460153437661996551533447953098358353064415131416913785076753334024305619044298038853792707300289373305205999134770965580666134224008372227028798187379556783939228189728476607798130628213889844882954260196732274144844770964402488922867163595968040982860259601770864450996898564384145746537783603371458661386772068705656142988145916672630594253288785984620406324120269301740734528971629996180508771559984129969839281502400700608063719598399626269001876055647569752434601985729018483079546673399050365048897427592191655499030211791087503143991573298675613620735119358940075307331104013851591879823397781231947880318455316800215006878899657541285195364697816448715344671928914007053031224029857000115318558389092939928148531879309535580850864765295844721499044192240633104522165260040402624680043585356607988510719513747879758887429188554308578356748212992519893078819355092659139404422554420149806541471995075275760235191600117879963640383927777921700504834833456545584976021860958962383004057810778294124940100215453226705345120973080505540379575774758079775585593721983799751760376355751463398871668007482527045454774715016996448558651702561907095554791489741297717157418198547405429210726164839877359885559808665401877460555728077318459437368205345204599921948582778117081048999957155121607200942431077190460468121483319607980364766662934161083134087899546001008548529082302176354603989478714061695823678647971682152026347421137603006943614754936520551283786758165740333542086036673357076649368860476552660604310750323262525028947200246622650183968679541328372310120525514821387500240936209043977712043543351277684535083390265276215650921432345675545646725226616293974726408903611547343736197418099395897627767268981411621099947712880449581604003141377114054527009019429971313501650082185247855705750349780407489032193194861480296610384143265644989836533580173708227662892617848702695354511209102938268668195915616258095994544407900995457751560658470530392039112680111999886563477399035068211122163519248543924222584929480071017811110159465676557633837764129985655459388829646188289856708646644041711938045495217718761939368861834688523310662471714140571835622073958921602049458148866395655918438501382836802061896100958932629237821622931594463493923642401325283404596956187761233065085671113391336620936392201704874486866373909387969643934713980697787576082711933233325146066262341295133632647546425329355503858458474722955984321839776556063392756562602803847963944666939632008545424217768251038523545471209833565955539765899364462382319449369614319476760303127875088861231152494412104845411948838531623154129831684058315440172271839109055657206609766074775116436881481808851456020154262669859996680940393304558625195378385665268585316954231572165615190359056113971834534726034167379059884687403872860393345530749766298683030227751598422103480438945271096571603774420575950495124206555936737532763578534596626750560827117372161877235661546306202551679539211611700158444666218998134197615347533781321907608072480196462787224782386831042587031613963936194868339935092618560382612165281758098297120298444070670708895306453046180473313437260781170032058873427172812423038217339994285568254306194959033270618629301853403362564019178916655064326634080292997188645624735186410533326453765773432352690932353203313548343048063253492395526046591268812090095064044931138938769804522644100922383664638253261409180352363839943329668127939930318270524582618889673395658281049687203295835600939987506129366500830932378301580188263806122625903457234727025991673388158487893838865378656336475940143857237828733463746947379226042715834682759252436995957918147287254520210317181167163824865198963790777474411778037447119019142576936725943448028972659763313102358260401307384923594113923448113448997183105242006047221033382959509438190944381840048848261964848498857968732107711154095345921809766250298837036296575682547012248238835107014509118118375855191060824144954731987804984084392851725822840193305745127894958812417985805392049828361458354931679628693548488090587767648985158965642587605148613899768544485726360361085661185749827232614562410617634742427038035352711556876946581937168979157764076109794100069971757764866968105547115041402543862070413506172740416976874044037731482348689431232706841367654869622003244014228520082102223779602983865905017407926032706567382860135601567387970368585804207015960985125853042009316233799828507387143501966072164272828174523773809762241624618383625518227914526328102191752065594036056246415009462996769524208899974217300857888965066288278085385064170594050024731063214783680712814752098942212005609268316031001617008638768373006388620194094241172333580780169663107473838230660944495893049007462411151074988524431805646191781977225761529203430603074493610670944469065789611560040626035701164256654706762082334980941874714193832872523933585368540968689706937673343583859436794468193133979801080903735205464224523015917525663819482118254741866546943049868939300371209954800134041056375647801580067964759195203114864243476734945290678510123468958130179084602210703431363878359537082394690979895425979825075868576285124444544587539404741575624029410531291994152335566969611364746102297491595446748451808404536635860870666235106864039020781563385567748488932973447087929348144617094328110972974789011489511690372642692593170784489621497950503594446990929385405480593477924795350797592486295400961879100483500407725888069875719120855023886340376034398518007692193865070652144529325577009985611599616449730388091332982780136317095995862826567942430296576918703720872167208357796435456260280638687728182152489447617253116971928955852022578942987086080467753217290124375025870505804289049904379428816126377273074651488414037605295932792204368037566566102536703694834362780050839908151710909208877396074082754021980210372849342554410502922740753758731127656835033051989051140079145305044589732980205639126750266826730582094664116018666948333608708966826019844042772619257023599905644414290302832896465315483336810227245844086516801960323824759182887031517403396482653206760196081403628520473218321329142300059876816485528325884602978575626810610203688426505736489936115023887449080613681670358253897387400972369976259988285033227802023092896175659014481613199706560226983337610511548346822070820011221030747616475837246045504198768792797151370133051564817755229531980352552792398771494452458779854767925783936703761244157323497299511873556871154342392504481854803897730896346795709297160279169714784230946536897468494751261403976531751160793337688257778550834977313341778869434788998233331967754941523312632403854742309484173921955625008300862728743214459265741289931125079091911186717039963015356759098034065825815696808202453003195228627523409668573701185644206238031786701019899159776909106952859416542615079777850000209304917783051667517032099931305290884061861592943324277300592312561805847707263938583070725679321172338097091192731665330669501909209762375421681069425455998491265561491839656029748423432206525803889192366116943537049939507106236369700535170474845511471866754628100013136537921117922711570523987282646418476015031413582910878166980939141423369503428709336648324699748898742206843218583003068787045844029681497549066970981275276013477587572456246922822773583490800734702048251386530061700446538108961255270899947166120486470862061634826357583110024306086046122246147119722046473740729593827057932517852583935403591724939965157180854802685273214413618515758226021010356953363561735447292426731775547876860651753364217727489263692399416267011386674168323438042688183735371456357246430349321086177766534956778857886376815871081468911682728436439487017159920448465568705783804130055560510513502940661819967752794635913378534941284750761385160575830120530040615562316963103583278239572099186171647531298167533031334220790124087751965561326797763785560121543599020435502726513963531162782192238396035175000691782599082748913430002554603074149211069577944955440583312144516215948313779548229058423778721612892332917850411739153430296469282125286443060762059093421007303336127962614235345146972604354630364841235421416925480624868026670716236693626253880977999656595423024748228742728896061241141751772139903312466685935608305678869355837423713434166800448907781500918712189819544300951469381789366293479720345287600602605759960606697925994588527522013143530994730582092965105855638485279191057262678244677314546991662241455657784185567840288339064666696403797839067283116023073779550259174390822507708205904724720534156873986325028613196903319960337271376091433869404038537254627056483072452785991485199311326891932556310107275408977467084086619269170382881048108687877126670368160679332817036058528955660114210983831387513158349939750303972999436724555892589999953557669587522198145364970501677784792814184630821465030010354803942559235813104913118849807032742339660527341930373704885424647469142683402499361294061023929415061648948574383490976182616189318171184256136792612178129744608261025033083322005728252221847774554721167874452706051360974277780459410394239106641693990299840930053730106265201696134088316867511210192933157009205940100217538051327943102708213355864795309318713924195560722613068938988692797874916502080670676348675819224466610882997777253498667747463080700079969476618511766374163261589822426406160769967868672332598619870788727120706669258135131590160518070887818971311770234847318750740018846123579881379732613385952391700618066361860576112924098228305512146037724048049775211238068710951480931451582625163330017475398294008612969228577238382903758773221441240191490712883369719753264040623679091865649347928921528796625844820714007926589247941197159273698170775990522788391337272986769446511517514781327674184067079883425790837497445016636681646052916869182261045970660660226708801118630092933464415616221325183053227458761171043583548057855083993998316989647277984593646044018790987152160122972845269531437441192791000793799252194701185643677608207394398920318272854816574198158965474112263635538139481796983384916717728817239469249120584098267755114280062744304656108043307724118068625975089657421383641968698979485686878087933281505696940047384778776376976302474447421438685787261396241110110378789407587934185030231590271331474939171246765746772699815755701373709299554927230559000727894431619470716419271930250765221549928736996042482913899536613196478297024507798267404309053866765596727699889427862067663026794545961012206643777815139730606880108569725943004025563579078009970997282549617016498515466697857593928514485606629287421420013507826430738574572524045736593008892272874779882165893390606338363881052635298055879069808146011678209330909693447850231288005424258359756573128187766478594224542215520589517374008350805169502133850279260981430886084368560267398056369542160934196660430495413846677716584267336800350274089841946545382392247714725699387331902899632395624691783753327899735359620722030537961444617302601495939168964881655433467360811471162615158563189423752832314686029230987395079856297085237304614487213468337776602485291322818740615072477500913080182128793488503129416650321737188512607036935943166603786033703688991542952368349175999072954361097845491977952185871610668579387986073320263602545743634318292019341681225447944690543005270785881094129307865110868695893556179823716808934450371192064075964336269260284049449656453838728554124221349708959235345134561351296444006257833903344307214180263045730451666784069687644850388876493246339602933381054858601903273104258726718136277484299775154536394806794480526978799770116496497099296115760408538980772760877033741063070071948661573568729866999024070333909949595122312244035903452736639385600088487812754472431138094406010302261513529457030589206108256021189690771239023343810786492737678477116706502230439573927637809756232483002146913239984814967637352843217679215475061376049934611277035703936867350846470845364817960095700692599534987520668684532323123481696859621290888977647612195417565454035327101751258509458177598042691425738163107002781530901174738031838842716319983264226859905960007125111291858540442280238567799565525656434749824224354785275434126924084833015703697325494091739751709096015849271967165750225302131810950959591195685996607484460194291193936950148020122815740281679662940869238020316140751681671810134616279128739392254201068918166142040242632596771321847070450644012386439988898048211126678695401835193344974534903431595624073657617756528435409939895653585251276707121292402831039289209394954004476901978920432211561611478955515356187098802553630470041145720938092020073670490056319816057782225613640195858720207040493779927245096813491476708205824496234291425848924620962049991520541320517862553752856080674298194542663527702057102279389619311036475984948350768621407027253060687238423512273470381412093978032069938214378671191888495286433402892648314287893972490883409068136790984048400159862368584208023096242375187186868296885219867555816101499277563951137874533247044964187172411229500356293759454307532469271403280946321061089876516779492549949067866164374399340347434126992439068532261492747661541191803473263381500975493836525183825533224679995997863998478676907609879810931092111757721584184326261533685666602954841414265109260981265454149933391306647736665288463256010786985194075984714670065444986257825651210424255054904113419862794884936733537695265758876667296904954305522204461018905499941902188663466290983076829278623996675024911266699947254614835777538865455140220394653102718164198639815673531564995774041372526828560975894006850087164393410580306999994189030654886211261381140117013590664252469223927207583704492837699020444266978650926232551484299453615337592227134966166288314869029646450761448467100869881339560748286727017268464283954545497661213755204513786724945946005856074924681032304069922266156588245756123169943141512984983416231173555555016945668235088157848671663874241612494795728139782201051647911998386945729591229520070843572972846554782250241372805314583103461301704484662940747034920594871828360359932000851384138531474487268827749453051467153983450206049369555308251765470085046351124623036372361034995890594087212486625804294789281839830100818464962959893721578926687594819027476012806229213881095368731027543829630205885869046088645421247804725850391726239875819508469390330238836017386343924662521668137403525033891958515379459136559476158756781966436295637819828980649685052153759273167653809527667188487605644856854551831436459499207135852394293831493950765837926319351600154389103727477123890764063312921382089499469505280838408609763281444137990701941853987907897406748095512927422365368105546082257807104324847937240108091265367485789484310001699438512391791214631241263877181867876534500845129094103999937851828192053158338489403787246313328155423241405153649284840823288512974261396390927981299531868904466610099679552492005895521076343071586716091951930616783670488219544592256347772034324932097236848741161209957190796257331101830893827904950950706999271642227029111395311103810136601746993064706558404620464129006099694295695322280412860043744498734325131940812475716535678390416860399985348914830526521380123908202540204408978642075514748508796943925834063326737065927390535032640736137108701248922295428062575542270522911826445589941118968042720769412124458538799992139763899113617189340288778621066111222000837935768431786086032363187034839006635275848396167339845054306488006278561916430593239917156768972882224858262289826761905113184332061246064424347186654079953308182089326617479233511075972787561989502077436322294253571721784832817290175991682178804316867456571406412207140154238211252876937545731404315223592568029579560530255574280140905419578512568596049407179614577880768565152585534017965757866573417455076152198703663535651108988919826640407295135043490906858107260482469977514233993122029983280933879392708443434196523881381446649019592212613983517367784693660144239153303686724037001189865225085191733357029994546257977277821586243028535723219197483288629482689577590697730513731557892000569742549508174803965321322340466405785752828154974282875035698535322174569211306400873905614012412571408305773667763103600212948748949041390429958572455989735312849251398350411616505876286166734027114176737671487137641364824565957109603456621251351043889254963934849240660549540874691253374956034856340554010036651830805988127245214854735329083122952090917536835461649511613721507811278770830341331270837753944852218108584162040690207349903373981323547462785339183270815355888282160625176600154240704638239669389081780116109068510215527262089648651290579841655790685281061286176557725988337809416775411135900680168128458059210085648173584622636593644302540233775739389032791402356671267352991290262712502917951371603184008195894943193153758398599103726270289820150732334905617132864521197897965458561432201358176976624415122779035856820966287896414319205615029312346016658616295322621099498933038824038930693216153641648580256929976601411487359099001562493561712900397981292098265942823015931861855603237388644890413652263098152380979925791371432487649774518337287759426296131985108328375262368470008602794965849698932353369224821561224891023802642102899322032111295240562944320041610069613188819453864590014692587108555035083595117374517180451509674514860328078527759738666328184582224273976523752833749695598078725011720172445143098971691879358157556569493264593111708452426090879538685012919787962467618836200995486016561050634805399271093740093874389018453982487673607740414488851544224798613894125194673889373251067348048552053684603670464462298895327987284513971833218282379893792592191552088657591537805635491305089393368532770327024703101523693859369992514911095128611612610747663369282657201185172888701274404025661520089763025998538538171912235822056990216933591677893069267099767477405028773723278841606671424097109812842064396290823576553667777032321217041564609902943391592248867386965224926723455986843036757126304377866790893145060155537770331964832875381363815836534084679155315577550315439656992852027634540404799483746721926102943341799354454409088802056311160143359969318083160474584206359116451810484517244084326219888813632845228725174327909699622731263983067053602058874237882784422542293498961889532486575632848946523178033940884180300693511329167212509316854442651718276299442298306596983199692084293620925737347499842757446546103795964339808081932256950060410541431159305128434594816967077335973162328829826446308746005074026141661686115200276959526294638677204705232734280146737978709330901063898431027990047298014547868205370979086463307625059525100337310290375239593119122951383685051311615652479188634206877311857227021905760736577311682379213047203578490111045497526724918356428481056090096421595480749363095176461418712706586638303461037051270846498941916056144135494353685120915269281570174680244155407114626436596822975021374446288468950909043855476041136853870982476344982192891310051379613387766510026186940944056379987965051727267403722978432106541889875147063361809750267324079214421657070819188991224511338166675196352306003130927003765768447111939599196759304574544563655314221909263442909016450594435250359133428037831913801882519811470983017837472013743376677223472864538208799965396213433982320326595820241228144431645982700335198625043798894346905991778215635231424242104756558649754296826303059451363889398347833350795695821481150390409940536694090446228246959448197738139784850515292933612460498020527629298774157880251018470752007531400187470628335200687763737496831830736201206011714546158389168360239606738684480834308693126645549637660423431945257007822211377221880422593854873608410584417283989005754722035959666981401317057021206377205124519779507253513368216199620250559715304506119015404586179468348304752370413738105874661234972974190310613424367325292773245635482315571432786432915305123668384071683769666872792936851491883271896084784972645997318811354100031987534742288705657601269152865136005757044983652443744770568035361555082321703317176094399515202675136954641780997841898059660390497665661195971625460961446069903436731127131532842366530930546925967119140867407312654320327092613494373032997160134896165626338414225664034175709354738416321212699890330997545713992425596373191441196518574797991146462059681331085704154780770329296781594379426487170499894120695478539176674669197190447259814234938842623085307914400754252599681873511982065740531580718621069816648280928767894321994599169819026912706216506730408389948132170168928205223616917530664644535789073895077480956291299547318982759848279190456111897889914114376305415082661652855555716135361352466083860294393866998682308780377540591702237474386543356247378006478142917075246379837469372895325360946900530706926021596741993392657342987552509778333018682940259397937096761040912215565484555504717758881657994027908987281514950134930230277819961710610958624439295578295791801465446643789951669130201462185002600599145887406275710490572534648509226098387275767210848596190631060790399870777001878395421888012046021502087463068017995321950832118739879828489392372346078149769380101220128452805846798278619504615850885947175034500088918538231530559088845850686799113717850477089239673874428372463777034513149513091075985837663206738781859457516895236612055360164890486396637507763944248694731394289749165215529016621129529632559160636764840897040968919252902730990455425017939259538860521940516237534355281839051046965104645727132639253672691913790692141330785254074885930862069384037235278530464710993238071766634241833202905109087690363643060174150524769964236976225943501947446202437836018433589621136621208996513731340751137529915381843698948352780028460167124543070393597885345993992638231291071025116160462600105055357765306886637853839480680567476782807104954619018687140368822008632251710213269742668109609075352837740883654787712405844865768532114933325695947033697074852617911231580096742749454073238473020432862352174767044092401416399991188066541824895023889664642871408429014451749223484502249911327472618947890643754767159083902820593504011308355141522417269400950207915102076846322495573554131421259448180721647743471823750459700578357367251866080709528660277428183002150508635576178044433976456202914421021083897692892368015719373338840766244656299533202776942143015788711515938084509751448280787346167028933012443517455588604803644908451369699546665983884623207737235211255318265494360598256410504623514485941692896989777293112495013277949789082874660544419527515076884910467855921455269826312933331019320025147081778523585013872257262463664498387762784037562394388624248166872973868502898839734860098006481702595592707463552282306757382995175144522918453180675518366244106226888927120616001544236756724270412002261980479686039677279419377117540244729837921936568842995379545075618850567486867698635279025562614406530268162050157303088736245695931517024225781464435291097054192440105546671969636441511526742466007261169579111137037172584851417269414537806460778059457647878669424444149829125382774183327241606561455553656324930538187266050066319218268616335382295985040217878837554308939677750270579247777930383018409211994570378806398119531027047483503367968865842219584884417161601323552083356090340106362449818623932809218055989712457798964051726601570530832969528452444236147567001032046627530576669963818030966313562149266565304891309217419801671018012649266010843521324896577412960425648428146733916503326702933438867797750353761673025323597272326648173822467592820197958571643691300583153349014622947699622096726560939336140429489380287362034856831306142542623130813769502915537700667938071069794664526342032725551709062771991920502771473916415031334884334574085054422988705795596164499118063348332500006703039652556778793586092587294137476118199921176565557949089626095307556631743795325517725326270253549488883588747817248314971433397346074177128771436204655393425983297697643724646477840819447872456503215282233835634731262190935121735695963260919789979847824064517955846776926559135755981869166992006738641982774383046417419575306039770549628333706586253839661787066166580557429724124988064321797646179569303119088754611393614567692084678629144557369078429196393618795789306493448258661207488626359078296450754173140832239676056202833295032136231569464555228811241577297957916146766374930662417586955643695029277727853077137633927244821089432986845332406074394464233793687451042169505418127205509919942048495010051751256921514438067333551553250068955605198422688300279985068945373695091180087028122982112005096120809490315254631391157154193659512856885304522045097403281827729243046550001064999286447916844909575684848972861444648522331115170273238321883458717522094687771097556043031034097246306783062407246378498035171839185418303026988205055890151850204865513840613845024493606774561510129817275914187043887076432310560815938520624017678913933321944308038099437320600850373080194402634047365903871851666737358830291564677115209390449590692512218449512278452388138695419887171360146049583946295700258146875007241770077278414567141422956108846025574248823463255094011627108332228426729542848257060034556574385370490836276669285923078475959049175936034754313049080730506797537810962526957305074636281637148161258198174842493214976829505821398645944217874230745774975660313420845878931122236761294897259008075352438876772381202098518440344624202482924156478592949945220609928078000514544814557958862953648852806302498901060168702774996170336769889345313752711538430172150295599861968924667294906516100767421074029550972038888642902011310522809920637511522768421914670832044795650170889950992497543111452491169321251203641967957406054884782416603151331776077004099852476944181806023773491104519824460071865062521795366345399515976649932662354692619104590539975460376440141598282100418230514721003429704506166190520327269130981595235549388548186650846781108714385940376895350084279923914319562539169884084561533292406634264454780318440968817970027706313440865001700442945727190938286040191722080844616550922814827502558724171538299908984656929852150737489792447814922517763627306917565660743990491175676438865987168855483614816782409500321428513814839580092108165746399407041263669967515987653560105161200898991481037393481814553662821739785445397570840163856942778550185888854946040560112222822984060565147693360272664731372328795339235048862138005918040497771855085426649883082925942054678376119348066428978790017785518380198526682790584138446057174815159230467772851038917120220787641412084166909224012162832985536208016275809804381352818298349143610819307325566189829262403555833422591100083018785651248514151564060158320630509780345390763280819703210702781919641758570684862187793425599315122680089991077952706488473746981704540230082053045990020372234244505505575939128236014598259401117723910084407233024198445592704349754559269818414321397225362416777243950619754734273214295488786540990892268844257936960388670844240273600168093425231100721941848492751153218643149362507955533359428103672555897824265050736253690706750753087594418305304020372037644381457094809137004798128475002861258285506153040975457820993242496585802622766254697707926958037732352501475548491190263960743226631686632781669820756860608204667539462141807336383813188449694778977332161892027936571134352898448073975220759723199092794970272836672937528460583031521772653742449830968393637619090504929498792831742362893880209982413127652397498635064054317317797676185860904780801066386310842624656372435296866681168580571662612334724584402819933964742585090388695115052680556024807554212222473609994318797841641960736584825751906608551084412887135792720804299026279893797706436213642639296048529759485288735922052179135784931520225488669018992843583067965232266309037936784690815521228479042336106067630183494692536953098232284891831710187476230863625227722422614153726982491630139971715464254263767241377916496945826775547415182382805458025888210543742389764650814529597522053152112709756648829837716731301101802119987374564833837465353310365778202985678534779736169214419675057611908128075580218354452802647143692407380557834910458390006772875648975834889515849904101389325271943818919821863883277497988494238891397988103495339983491672911909834507522206800554107345406951371081173320871391381079447974132904272953666339043134642162194494420408389926460590647037205870442949010334013694912442722348256721544921772510616934580310864953450406703047214796170081689714609561665430747453271245124546589927914901792018989470793016713168074562197385405558069471508680651260408481049784139553589862980261156088000805136255069668139084641385669031090810051853858448772236955580239922983823018892907327360329752192208866697191696576232479413863337376879578389083430146764091118817057666110921636203478245672881841624034939717309024075445586154192429091025814517944060073172343628767150796412445384637009415481942016483859436348355477850739311304590752400426415375767149157400496543441538809578192739345335382907176938031093989236259325725426384809758704255331060881943841214620668896957966139984200633631537562046687313074012004050774475185061592010472810956025869855084316272014938749160544449640385522760137919064945669638354465358745382401237090201561428734880411266787420924582232117439361189160503743215223832221345062019530594545911738870732290359782028589290819671286188324226363268133844589974658909649786409695129443259546388465343937610668636066950693262666512604088621115581570059359764608443838274372780439615491306760533021244745142635185849783661474017503051692238705510853965516088249057781820695393628404586507870669863642362664304404464897290092745101941289517365593043647486576958452027003660211872970774319187413518121696655541294931147957313294264863917863477728869934786280671897042780763451129949693326543575089453917240096220461923126961079766364217172595090595571516345807333422203923160108853822453792926023458468526936384846320973170404249138606023536434688854181490898611082161491468540465199426723287123822448787384192881702867678848204975794751930609804607427631509493429183984308275033966146447416890984474310605083589388004896924643253483849030613454561758049270191801690313233768981801644271746146788988475052525126626983445647997705261543635049892419958703513982001575723615848513796364408327657997622725008335209825980693782106394394381847982879973898963339686483488970006779763313399834942523683085736526535523848344978328023241218255736591180106813393515208457978829301809936945573223268689062478811545789911189291310604055831946797266897683932233531817096502006649549671228344156481913101544682444099398469774739465346635258675381183270906700980173087691990381131260887525638981648173783687538395447454392175936401581922470869219659495667360697176319076097012781538648822927391120817239269874201943259310226915091540234007267417766093884307098230781005810092528048939180211386050964493035957903449835749507283364302341178781085976734235741136560242640227855511193959694110679305038276184996566070343365555628647381878411148616688024710070171752691545644032741403792431193160510131076875331786851612922404501718822964794554601544218077097967727793231562462670938276800093623648335933341364051131749314913280681254895583480527626624556363627025007489030777370165751516832863851405557806740471483198151542460053016297151322354119142023879911347628467823160694762568959964098287434283375794421877116239598150157244672683077717804515311577036455073149627438585243186333315458271841280603052873464583332557158261654966473201153255153737027512329809728511789019247791072747185642002959557490312719612415024529245804867554123243544096874001839128297889957065572374890311572746408910247042902970745668578922459688581724409218055958611087403118864762119754188719853020104662669254621249571218729289636449327012601656259475420590285482463693178462947398535527751421646188639498243014239174287344465137491117862385020542979600535133712263307223136488978079104702782403622564543518390245036313392046250419079833616331617782264276765711313675592404819879696130223442323238151693718417556028451738486146599960500147823750059397437305945845170378327306262943864379696422260767898934252980198516996460482689905880737973939804167249882395765943887571913764437731204743913402060068637709749273573168339317109629733578254235227313039947377727868291506296258165963951148791765659467264558336433996799187010368659971857256900345654837010189873730908834997741072206880334240468033062321259394819771750222842023357072309366946381020392054492910281723073547612297799437300927417530109611869025126509807745061650241638876854516853983717774427127329805487032462194665469917416997160956845757645506810006459026717252735486239884256725111390975966177915966030249189213376107024623480564826694906419792483784526741302997677740856341435876083181183156962131073726271681392241963253847075457381450286877807894490912288867276125733073671844901465360644633477943764151823979765000402487737264823873156532805258598547015337981172603123201492214223138780535731016247793344630360930298012974244572686456875600060407807689856322211012157023671144946343143938471799006569275634477416452194282393593576431054388961038836057453733523812280789532112982277880021897154432431824001601733735073651981368999578855739130131926491357160157865296159099252201011720947795053927332822068567541445864817356139839470030363151916191292218348275296870876649827741181126089809208751517341869625181100079337873254153987825330085735080385186317144882102437925049431002542486905942560147539734547756737243507577385987312900954718778892587679404457186329910428401397299971066529917785093911485091459394631412722129808815758665951182315328787702560750206388088382922600507537405673549032812630228048560851777226122957695346312165618160813041677223489969863819515071726433456882931570549281637626272417782034692981190492729445622158254091042403157746692592928837053427310555145497861878647752226490539665952971067240609489329870081768794266826137030024430690920473078025209664813667370507169032782806775877815352408319286996893902811756535543099112890766354385441525753649316155279983379122146426722239643724557572507171694187869077994907387102142083591658729747699402388443163090965735360813669889444931887039935915931847865811261556791405812436018849561273299463500712551593318140497195515799436393782779681188476060463658441381694472766505303940572276673067662747473351795550468369934078158447168417053758982244623671887709164998150906358304122567049835097539134822852010508217348695135000462656989321506379600981369856360616012947028303427802746108336723747758384181809406989063693998843311760855596756279876418601870812171742977276421235966262311807999589378557874725280028373688281129887003533770170722333645332913773924435217999422991906120626510154480627997257693693316468305386429019872337488021776135589003343058466191343430862365564519078841436777139642214798917289057315816838499491161525565192726376389525190683785876596162829003933217953536528955157698593819326425440608234261515659593094131525665543446602133133597023930576956060909243743886910851167609832785679747665814184788805261694869928672871603602297530072297006944126255991090520845050618782970774796942553210603753656249528611294154848292470313423664088346257460965443454965831460153897397281860590410000267832893837423220860824159205407272021620394032816329399320882709418849302252588276644793907043039543461171291619208924297832250359658364474097888171711085215643750770800469676216223319683205122940595590213731046273936424556099313840671185727603223236419008273401506712607263052720659778523063510544828759704618288590122002717535111103197572647747500373093772835500517553666937678999138726719943432855830940943122315972278284654463320779053622168430569056294604831332475200735830846688726276871528733557712861848806133782618729789145872495723460371004871986199277646898132045260537435611377252500470841192142559929423475110176251042726317849057424003837784543659691270705311725994464891057293976186533609466284154622460446885142737935646469485954071521701777749643336477899736889747598522256832007530544736146661597549422142148087446626904421598031866359847010616696903729133073765775002031626017071728967494771105941340443981691325081609373058898322228014199714778341818855904241550447487864508962735733054078311390703302942293443167319539605672897337914486494518353315926345482527758637245762253633266309689821695939661647082494608086236444137410515053683415240636354991297328145699204955668717647040616896911554042339490290543026909116790928632384394118633502765627453502274661586549680177997145747282319750278695801687349775734605191748309615216619453041277457360247854975660947487186045567978343008466808926372830926498805848282761350859979215357874710555968791025767130544784725551779276854804926830747096729276837904796208105838319985578234595083763098228363721109966383351487309615825021946228284001564407739890737365976146856549611634178468728589215374646023696769488257872645985633663597372513570375807037741498688389337092589497141939291011113754746015933571174194085393791344654293588013806274802043528898158579813321969388643571523139679615824752374718860309976326822331045700242356445075868485304707669386326250819699102966312221318421355068245357688655857713840509985916892729794017587085849398950649101318930143662707885825899375022694203784816201376474964942066906135242394136519425726586759094450312064407538122222926212759977152233583917373304352528742921289068067409282415606771524355810882524070932668041832008808596918990026386136194819980395253177826987094860064924084807537148149429196441652041179097411572058287229664615492431504297969097651104693745747901776421338360105215116313706356847755538462712024938935727699893599449686298988932128920245432484621323687271342810804310655260623649867557696350503149699723962419583088875841554816799181214255206463430330053374181019402975591880051186567424780546536650391054380180953174102584179460025531660028325440721710615868854670881963590187970779712502744786986453589513945006990574126565303774095567011693443931812403014373375870108793991681907326685667679841589979811783036674071056833344699016162330453621209141643269411968580901045462992114977944021281446536131890219300332939468491238255841538808369446054675700645899026001955046660575398778797293811191385335158886658241996836989247616449291883975717621353804454459009697146331069366917485061854547978930379163798320444727644832238484598161235768974428392759267974476738380872786881900185246448130759451127276902967201646134868568234527068384352450105240726362122237559713336214214076865447359988161873674359253442675632426673088133474451342853499204932077097956236805886168345167460462993522711065649894429333366896142345039863865325242765724186354209066433467895569488961414503997874305428095631466023617313564180803544790525982362092896877892857918334648131370644023568886105366196415231211014608693451577294129671493813956145371998718943976493338340981377317915263321624000817584756712672126803600750486936061911311624233396074937370790210852353843600916104412087462136900347297111314186379768812251036270287389419730407887474398255894318408233588833131144214803313127063032234078565127690578725768483704344776528678412653978475445738903680528110167309179968822864032112930723573998969346508080478017060856973311808536384152604443646702929891016510623412944887691978307472628454204866308463838916985578630612188694620635510722005198056345563192106347910282566628860593763895531914137909232608555262770673224530456212536251174018023155167988325519730481737576153345536519852350918193847808869912908105596088628415564289781749991932298070662770837937141670264447169303347286522681990902020574519866693941567109684374010699629316715519141430851567388637813187581931515954453375872067380648123391534437645901476435890569183321902031884889210580022164422895837650508522502263333962869926194915307272310068823111662461916420067231023249731374730488648829496955567962586045342378607332107183698588155385503640452408544620718338159811007896360604702244075528927539852266266458703217529127249907412936391223822351495531925623300631990995203025053627316919766666218373187013954389529994976847953965292464013202002841055631708404169117013796063638737473371469104490013203622561369466993345946262742794296971657048090186367168132413428765948703773645625200587851123083779176561839314117035284869287181738963975073548757729476464643389645720969264564011001335702016435837577047566423459741599560239101283308811928273006763257731695399259535317395872732430712994728280512274329521024975590126123905224113228392763689967286343046384308204760291766358050051004066907633320232879157327432915751247374856637266778726398985954276041844714835167226088086288260808023384147355920178280100546891989056860212784969461869113698108656160838236455238144241635767062495654311787343791061349864421252548342647479390999017492517246651030868996184386676627292560614385618411293045703012912994972150825431044969760530981043652284489498545588037268493805856048107757532704791848804678134954829103729977304613326438003290978135567643525073038763553385171754244942594271424664835394856833383981034248291280455824347835045235756329503139421187086550108360024582540388439263050807146698050834929430215231411158619021055777626332905237560491820792302991324321790301911579341566521719461176774543570994592486746114930813413807043209037879571932268271064244253709017680450419566098778996311299403734334036804678325744615212568565907659535220300968114989537984466179960627334257344014426360010024016106581910467406036534396570286283716805064277203541976826750184566289753613156516137675875311798126339138515036343345129956785639157842841691799156479988222336095216823750558651990468455406962912066836275749887399040762402879804706072887148746187079950044080461688899481617555669088552277443629634538704103548396219514704694877526857508100483123468223029377740701529822000635423770025792753656859628917128556757033769662114213207843790912751073233740712976382307672800361199975619631159844104807318576678620851820712295497500566159424459689873645165126269354307503976500065416897166234162483998380353010417608807806221422669449699265295600378439169648523332062831181327854846171755591189403417662446632167663550534725320861292762824230670064616833568051912279274854213763743078969719785643798087312331966585281280116888378069423671494358670017636112265322070818232963530221707352652380813388495932379002153310833281631766918937700126349943677988973706585402394435364809098417382076572656742261953405674880733968036068263457109318530723876787529830380594389778777030600900213209413020430295734919599761549998081333517700624870472560670596434580164370164050320169614956512145571386753319947359274768160029660348508748557128558384573603656966822293735080204531112841085645036874524885929342174473483428520343449945829052663984029677974713150284486700603733308563817207265789049290528145261070654360258339429186974583784838909571004584875695478660432372277135608187081849707229310962718476374262137822318036236718600374014917318449877927809212382482123420881925018746899972825415292990089580407223600090638179961035783772992219906104611042242380356408335650348174134427179085793461498578094602223064677629525299730063357572014885272542701432208429831911754972775108258662128910638480374978967138352283997448845061808319300063254717195523369154846678380970108428851358415087806465567017152555669777511061001249481564899851773096076447827721393716283585511720357860635144694629374374883754630802957369770324325003880707604338048024911648754948569826761830994062138911100080561264894916140320653512105392634277279331464760122007744112122494234072211462354337618937110679609750088889376992105253696974676197276464730409926107593376094913936334076453377873927252911915445974434745789694327685995707069577865536299161947776662701401760911953752615705590889408236031370081256745925265121312036166584579808128917801659461274036613956976590525867887015388935347344677243315526540583251277240752157161588248043287848081471632008813496376404800050554337162169371676181215361373787689046954166119192599666135968261910122376111752551552541419604417567743543955579879905540528440402532476381849636587872258908677432045933684659148302502760338422842956073392232515726033625052343166662835671468327033458735940154974199958239099253208975964383377583719108079909761511067291853931547671768843604736590330326732250387939371567421455227357599702485918777494602860640046573587739215840623798187315715754953982370601178440109341204650376507508101239463697730905392321902711683839975860115112714843370879152540566115544616011279380082857644889689403644574238469677134008673179084192428302226924877967373484357452034796421419754821981754803182856894661003234154473969738594854375770239830440083548770602640148879252555149977101058457957011156360196937629373597464975846142709360365984642011207885131926279040475094398585772758470867293567065080777789232834003276838104856016810213270169357352941946991663934054093908347020737567174540328892243461599103966609672027419545227380537530491564546631450424315763887067857927131103929735386489338146748397295373543971931502938238502841352829644083750849983029280414263965562662470292593673487505067526660760578401560290215352364340482204168685113642488458587600579150713529778790537271529689418861316484690923417280818011994134091563766655276465809675792781289351445425232131058798991053697209463396804609470319222097585211683320542769680385099330248733696667376175018270118582592496943615048704305076010204175952117124245301173696034438313337283200572651851224686971656817473286202032562014759651525547079374797787500137762810642927996196551559002787883227638299610483849832217121448840123237142135929440899234427475174892400543970085847379872507023244825289375896973248566815101217001710058503608391702394882165097125370545844047697218949636578751427002923158184163163479236678611212843496605919277402500544060739120372675383538044285396347315350335883856133524113459297135427433948109161469026589762227758469039537339778495584629818937961582228145432643188409367572840672253213018772232015224782291452656827433846971966476988682211548734704369801639885535203553839046366299077785954154075991033413527863523332172378304233559399711174329948313770862073146389905168330391284382267070826648688544993713726808576313302371031792524307636779937171074680201327860566392339704978866813386070050113353087708035873488478197214970895309464163992804535706261010232890237452850786654411370711514140786080378840766092431083476784902198708920779180453440605422361431309400517141871284445912861562325334264626364346150110238159524915154785820044832034936604295468075799695660214597585226295298712971291829483852893708014730083700193375830355397812068584942969623897328451459516706915555525248363137144158241475943630184947950546835005720689222841529575341675811710880034926649301064542213004631406884415316843635385766404984436776728020296026630272412247832563008201646691411222839705993057584819479241812399976204484769230621558054271646111432890820951314119897752447155676535389753595395450414764377761532959976873114544161743395958893802220750904348776182230943382740257102190652418627025165451177240807564142034131202141243530368526578903224336250605205276036464367123294899760821337045353144052679035486258412391136329579157143316196819833599238849354282546885462976125036344967894439656819667985875300128575129520244471123603708198991585683762469476358593879169754542180587928087420347395652126600601336040941829948653986171402057173701614924142572885292193875889235237409020456070017783726439430280693927225910369140597556462528592461359124341638085902515047486248588777765551684888717629534592577843104298515459003630273239804626000723096212587016409952188974338297484648999859555475214223651174219871410667609571793995147591030787667408808124883183595451348287197776873471390833613786820407942976922943050619070363522957986115782340497676170898116737128009455209113873660566442919690737471019351325107467750285953232606203847927547551615202056807735276549183032072751758701576478657418001116456145549458425933454285088624431241762631027930180270166364019232738578305583149298540890360225347470848956387940031525114857596925338611740385504182533234518366393162813883483041010183165741015928189876533765403355471090221779861717544493929676477305311367333500676693831336616582229137576526963784076959273577565520361768867532257929509666462609660492515662678530121902807892127054529732619840298207763320850942195236378895835726504743598204243432293069997159729494233633853065652195259199671904186925928551476010285852819835660221312177846925747368376776704829385081188038279729875179539364687002389962322957493443125817266322677932636060371375366950138038452376027002581438874745879787511964557162022591529562933058050566860045687336497783947478407780274296589977241126769821785575335861714097249903926910992517637053451413385011805378033035136988066755802493169477107601556980804821163601446386075386764660734358312029856676566260786336587226093332972753557440088633361947622522684152947694572761376926870386688391526569591757728510607114423824284150518612691988806411863312443686960326384277687360726810772625024327833316251482219950053091344153574418772171207878244116832451817774627805729271688507867068495597180459628785914158194412670126442891139462793058373812975278658502851848673488567308967204988699352213451539676739236879625288012519632234965972366841571400270738946540768179375799916894757978861146491614129452688727012937968489099864920722285302616809379868274742770120308402518227173435365094988168736738298087298491764349670308564738105450937154644308030900576490206642610736187020716174381725456732809400658228591639558409708972668092466504335960691417353605923214541568536797892654101790123060518977505740262710390203451855866376404913671965507721427501770695207000825549642923350556017549168888365430375835496861436252226124676122770248963111475230379457009887995041551421539297555191546649137721811107327743539785574342944888710429215654094241504591720541324640056540750718691571720851029954716895967077090367707814765123766805505162647088753876144282095661613394668773760611440233818649227252668070190154105618990342621858890020677586707252177842877171537655163660586005652192904295787928439654145876062354311530832186933731460392496666159341671038383558980999996535476880799622728021846308732623679102220799027378059566131461199805513469164372094417543863582468940438364060316325846069312945755203974753703489565461463819682451708906138535491900085493704785813318616004529672446874070630658820405497984174506084835686807696115426161525097582263538731761304028690966256441293055179107651043613742632554075694833793562266290157987012688377099443531633512214963640159299062063694912524829269970855669825989918297897649115211414972049819907704553806852492449111412335214221733343845514107093070562795743903923549543146002896262326313808137301963110592670300576115755328505510411722898995813071758886074683288208449360560293376842732987747841800178716626891483578475108321079461881677079669185081755203529313871619671201594938703051946646577953792053665312461087590349632319430375535073280268969640527711415843574931334570175782905899312653186374287356441191177705839555735208748170149788846113046811470282493636220500942361799914347334282140156622706971683432288919981589430924037959164534227216460953379115777421015946588872336984925322679792637203249501593756440822813527190102773706815739515580895549194698076554317655513592019476347262996755223897722658724012138854541885213960872144862703993858329935001295686462307235077091116026182472641891537292371311541718335459661191554580306543408511476213141531472979196688277838039763897276989913012755778790075650062872038539012410543237327382583783599641076417926054639483691202504322474619754296942312784397140789201722297440119131984621925175285635845928426989742402762059112073844372481630074740644275741834551261246857566923297523650533338836229445439511602741827966862473155378752875104286000234961637658299726429393014066811025279409421344864420423199652922792103834870701210565424708150901841009994255060776961968532808170058193285016785154859415821771783092930329313438771450332253352981727237737288136890311115132821269248823663513171622202105025344451936619315804180799032324896843529300663697434019817667957953991929907824875397934076898337608652823881414554004082626187184509054070612508960662011003791725118630957702736718015494288715099919771390789375421096025121989423523224887612248154278462139781113319238909333066476993485135376196172798509649245431644511011113487422708584915362771645125756414276588475529740196576914795698126578319167377281592093790195566069810399812821587021058727018095975737036370045209194278811387091183482803133942104181624340419036674237005063387603343590438872783878318921665975182226422626907276046085409783454471464092852543326352928222554367814637238598179027084752926824400293199467403122852863193933654837228319429283333381908935092844628642721691971528280212139364584477897802195529763191655303935898238518930549750788923736730295696446644582153954688970348516406802577886441639242835451885249642508420466837552564237985305821345691068431851037767808722044886185546059562651226113575073431242747610614060630718177348627683575966189756497844841294179435452841360284644993840104856709564427765130935321881843812761905920789801598136562984280781022126814775999282943901774802044441316326602084339102238638458648184361630046192601853899418718420250048177854781894418338007528721660549351463624102792500084879913590755267774718306675104663929955987770444482493086654049452127992669918828798937261506528034538920246088344841897633063455128572287992136494936262777698993709657601638274450379182009352411028046921458825281784868698817590388092702117285480118922664423454442051839987649151408042408153260790977824926927456894677089725356339455808495147250584271581713855123471282387375350170154137880326114024587345222036947249445397288649091662405409609631381176153764586701272697105565882009475207320522979602667157501057860815376471589253593660395640125817026261211130031493423092655721774456248950326810931559802560668812845725357977033388994864906343820644687804217542346617526067736968217502358639940660481765737198222993904842080306682684026380571537538184492556745249333242909894810836889139254396719806779361732348287535221758301957317367828403473295747376980363028758735365851071013043787671661612065344882659708451132940400227877776982816034663593650339625757277934337840233006858614346271234434320208818923272349630019994228012595594308291844688009958909703113449523260308254445981068626377226451301875621569295527340162341283116149576726403583555433553869347034872178201003678480619970798604914850543919049820684999734750350298397615232677553560375224815434669891217914137339653233105590630648132344700968538303265309517110585924969198318505859907010499696189871228772839341083172909896878509424632980623691315602044384417770094680515109243748174747860538649336324314005672090227423413863834529801771218254462875184765695349649942110835304742477344596193168562388422155830557288489895909187394596598274056579380863200007149119927190314686554679808640335129910859067161874173197987645471093997738091246282652754897966707590774350070521157435961490821328086551738211305449915932512397993750165947224884544086099459596992935756729428586178362749961687681624260236709698175159155311415102198204383785990453680410414064876067417741317657366093375386282220900047969062148275998719785360697027244858365017617957921625360320496691615562360763842095910142957763724120427118975461274974947011744110182385155611666916520896521955769796937087442081042759662836996372686873172662550361288807811516397260973378148402516825304745125057224000722112667486185077541738360942748143513001177678282479133358604459819578228493908930490454035185211747291388929000433420709884719261813726658476457602400511452400703650488711748214427149796044953553910896988691171985480360633837998336348238197672286896883782879314762492430404612691968493689411818838008396155741873907523097027840210361705096628000063179776125996427036789993948156830439222819861761101125390744100787100508648367698047650325735621141088105566305161131484183571550976913111086070609971644054571292003868337712244990270612325099050734240605752785253982262461715643978407246886464341764895089342870590732973384015923518056992825313829286869722762704590191870299043798649413292029710779883011608086525431314588369715931423545863592930987616368813118374815640563395366577069368454155877083508286703868354519365832858351825246864830903460259823184764039160591750695150434629329793780126108708363985856689520346618791352807089874764441358838506173750320374313344236721241997190289161016807331016913458336721031425986858936712941913192327607351885697283136267565570131973589316517311783188630715831150914227391114928801851890354455193807069109029026946134180408335073904614712312366005901894888151044116188626868703606407140692348096603363550520298560505731902563924670552294912457078925488065276917712857686326075287105925301713821383784788048250567397076648324282969892030472614684153093847087111597295396606786592664708355275752741239713433301377119793989148326066168843951880898898940522047053632609318597182144556812632568148851722195845484284484794926990602157199636788890045312352188411649617710881193297635977257814519154912770165617537309333135789602255135271142075011603499375453658541309685974025710902443633798046165646320077719600129838268569226709504658666825092181670929651739809079926695328462976251147072103277911640782560886114841531354233217646795480969405710526154244108346347655033782886319498799323921697580444167674727924859152464515887226688673908553494707572633261713365013408439334364685535873253103268362103739529869510223486508043232451470040784818275114669060655817998340870633795615566109933338335877918368835666914837175461747633132499945474192182208459041234192723165784658946731538932467836119241299000535166305346116099327109607556545149198819195103630057815910215511761066477949778197813724160429889305578777185389884367312100896678319075510969182060617080155079766006466772535082438744270906991786375200563885661884158375582245075942328509585707072348167891552750753972100867526354353640927449901038741983715037720256097670523550749441809439408883132285724860858173229960432784705025031226403707374103614991772571666195334897537442829564358431228589941764527868670385105729267115255385325154475938774271031263966253704663723000691306715947342677242546971970803386385350603765095925522869184284543974546134715210924508324740187954723338330149957960439214003584858480587875186436584055240626074737941478956636934524689142498793355864399458399063631794519202612624768040218292306004653604352412048715360068736352776061359855769266190393324714635797958016132377785773485378252971747035850849747508845152536852842208497764499379751059627457454816959942052923785650827493033042519335998162633244966604730194281150164144561136589474549778681912083696664297393227737172735352979524818844776729628639004250780731075091508976760161252411572087532674185519346491753691002555376442165114884606004261368618294370570882609114998200284556307875233371937405998872686744607906336527952097951327994155448043832763295296694145408675316307248883357600788399341602885866977490111652862219668255520082838128384071035571089598954285393623637995905996769954646083173857469144324879654756872068587954440917404391699128820927867711719283389268255770037824130749677063189361197708513865158570183761300529739760595759097195834402014709564430938998476161660701277260791324209685319980590399034666509388681148567146480608668763436681071583200075829687850161133480492824618494985629820485092526613312310236099850647800450798079580188768792878271783207388558874332325032787178406616233970027531423263773461610374492950731138948647075747233506803187258559647964997848472265924864757426022542805515978804586174647393329739458430965416511462211868970129078722754390290527476261480756764713573237873446099365267994019094537161794379019057199814916699608713692091563287991059137015796420474410008842656092337341985511552903932435931794936166057222811649922489364126432635014570838171070951482891578746764478086825314354284178312192188611695853242246741762642147787635701185835760110106946535213792171581183615143246264172931500099609935818181896474547983048890257636451816103383674679588681408879605386810428931209765581323970962693120857064183291993909021882319982174209135297975052677854395993969858754235328926989961447315308129618716552372071233858743752321098200668867555741350744404542269688502308605895539210820205473070454596248596884922565627782488826891142002004773475469092302863648027996629617014962069489190717752527636105473178952306651047770374462203639336649073428755024645751264050079938237267094559406165182677089353656241113062737947752875370620924697618364240881376834520802818841650212005675627852090495783046059079003194472472261684143366010816669279040564267022293963458145747080902593003800558529655757264510131387168859479469541388713690985916242692117124243851743674086836044198270572868947261053213658683051019033308328699900153371871147727361378529453123028235290640002093974651182497884313100642635317743964732895123650672310867241444968559455481986962932380155763020455425425457445109564910343332470183401932037403436558957255132683054447227593655097436285523948174609824270026087569634933888334903249363181300883621593989707554667801695725039756839656855522440160071824189982203873768116859755359120156986240565156841043070896279378668448454793239742743039740442586704209779493965997453607888089649185389764204193839335876028790821649721419366558672255213251736183577119635603988268692282527854920611482426543242141557797760600818753732835392945202421648984920890132091303409959759613604292660878456291700948507217644335736956509346115081757004774099349123119347220457066728602835955855473315174235345986048133492508583346300146947298120947078535409922251318911536347135264702120318471973069106721600049601251971254409289001850467675534415172384254359865722929815055425265927316315325891785839560468133678114521245599265191768163336552915690653168582972032697970636002075575936519311521803835481825791714487420540393640452972987544792480371074863004676337279250237276630317055136910637867168321500176787590110230586988133694498536243660926118921800564050191012582128462480300343418531723604002253868758944667752986886098586672264783512719373430840021692405426829147041429391971554627808936614585549057790774865115306847742202170542565314453680880609452391017098654468918578284164807669770644636249582666733927211990735917118607397074393869989236637939240390787196846972551901645433388258458509452819726656913049959933308274886620347091443055175078367707257163867419177720080174388514773888860571775248562560344632859597611265252600950244340230644383286472345880217043131193829867157219157861102960074737325857515127136802757320491625092510186660207782250038455189444229520597377249634878786522960920447655411759810807624047549600999636525154633955380035252695564607493940517868758965969381585880509955242630002096650267240872290838926730838476373559233370238385492703449314334597877397263776572801565551709466563310574990840378324905099092677011415579683540947269015171588905585381088351549644951551056869465894878195517797851046809810996399696497338601639150145508319846408124356161463126208922132325670849360520293615356266651076085405104851025523193721736872260162458441526725135984176319120536128670631539531046210281369810385230274024769097039669271690818067455588905652458483011195071740914717158811001993523656508685188243853087791111074902961699686362345876949798821663114594198686738801030450614795047419498602305308536176188970363476084883870607793956513495788037220700792983622613267422941548074149432547855026861970606386101260830905134614215499765541089634211690766020593380530082795854765528305966942705770508392311178525428060685126971963340543289768306951322204953736651126811486066066179448367622279093066504342933782580676729810260881495835720357152460673030036522335413694815872678841311516571956326200336248555614473044481992818461763117676203023002841858526509018868362462696310229680667710226815503027539378600123652188026106482866064886983509652851362510697168196450790882578895345360729098644282306524574149340477544609746266226031678007979111956257516781523667535716532273501127371758131822950815180800573711635452164098809255882351799080536030598732544540099276537169113480787307241917022786083488321325766978864234394295861044754605908534048600993404950926294284862594124397942430288798661594988305045902857049848171427217596853766409385453613927308402425934896799865246934567069268785283078235526295260510441193210220275836586468933053716253908250617583822769776800090050139780918507172056739268430727232592941433345811334571832502118349711732975271671332462895116160796710204427906774892754058597718153380392079309435844495806761895568553280224831738397909264119559902876739001308470221744006709172110560189686492927625186451158914807017062155863310873821470087457244095978018742805904730197092478599606010833661851748648705095595330594283191755043435203931974976725499731951927685027287023246103418118513644194614420402603858655490790283178531896225622680949962949278922785127159767583558345434850761698209266279973781357257151732967170780572777725457792123485606526238822723944223746317629012411699729166847471653807454805930997906594732984794692899302786321771648069854223645666104577654753884327496089456004854131528016905949277682711973255766450783683711509437620495189770181968173103728680414209562147103780319988671795474188712082234987268335013946211047773623807449200240304687148715263116315799584130599746253868593215429066542983517554682719820836205638206931746864174862670697087760138101974379114233413907188273107076011124612974118743930934708524083499035769538004710398642502020075940030123669314384215423013258171170167145509088130235056557481753903373010572958642748782159587612355691340673898546855880465597001170114371046645359386003538278410461833632509555258938304467025006808009545147644076816612556481120062938598983658740549954452774221753163948371842329490846762053026821691542180976894393190621083891364759669882828679553859098080613857168270796384324588237842746031623126122592445373457747762041716551023450623631965258286491725768456892731435284656581526852757301996381220500307901580768032032223623088090615800597303343300969225552718120329856215994839720394059542097701372273063013372442016954312968853455013129010551712715576260482688692642320575910345226624825454869588910332646451251833333945059407036144153552904199061842572417679386797730671863528366853957146528508625428945403598328734327949965256735861507207617580650494061558560597154837411086124403220249555107964218733669743453099125577927426183736249511717950138205055513371423888700738642321741191732751383503808587259414029874402186778408594917179030256214281292123344257779624075080887832314874665381533563530101611671821555531270113126229826381222521429295197426754302291076181180325703725227783855291220386595260626676448601173336692116415212983239692531330420947266384825256808942740162258339969217204555461154642412775886167252780550177693067065654433691900598368615255796993353346082026487579463682200482078423332116543923501881649292844246446276233649541932021150957805799170644419010032229311416765240909151243336811457947743261799924570096682043960437575057829850895941943891255126358859297612273096790760329129955142088810875604859750230129418649936677596751483541525746264755386373089945923158060766652329046267996341525969100222904080463972486208219165487289520171207933337060156128218797977331115329898358190549581028103673035973623288129913749039241902973073130074485486963323622316618726272424437083306193841166293872097231457473859396155325221422057234525609541375853129435163985790313057081174604554849875747234826450697948570652840877392863521506004282339648817772645897550396410459825978263015834001723624125218878279640602671499915662461066491575687971483289041271991913762896815946485297441174873342045503332460921784796416177539181757952337987939214474686024841703327604182811194973257123453441870214132045895184857413335088946340285670694804865476500332302656926745269100237127865765895693529419556926692516431572189207214977132543628876615451811484379275802791797223559204953484333274928631880012014105690509011436328460374470406311505390617077342854583848794603649910624027253728637728004404311342613037561921698037772213033756955746055394270111631500358286429240550885810085240620505920334246009585683722453564031970736728659580112281577616715572060028253625089568374385486207216936015524043224185253776090318607503695017707137107535434159086786560828183960935018992816142414205420124910777707741772966664757366191826134086365630669305459043747819040364568908279795369512209262059703366421760162737288449649210373138708566693315834345575123276195488308214737086182591836652148333540538416086068858467957168138553669928887364391930397296969801449038885120739407424915989428798002858693500202726309820248740433896412722968591853244747532406472282879793758011543213909884768671962702570192848744386427569409609608040914432693608291787313686395098297901723075135803917214598971731620880488155264739157206827795465269402215981560927402607473978810714434891296209616411653427702317085859083845450662056946496658310983595027439639763159607375887011624372543490163392011258928752353363826696248864942578550657635780571966116092260111916992920850265910069370903414101093027988951622336111978086836462693132464609439919883281206914723536208726628168197239457531070040707898932337662275939728290118170490639776518978066125682784567741094703121865205044389883834440046285105191585792372672398200844003324928903377914128285552881328045647381001849322840346226637517662322769950806765727485109724069146065915366382007677165524970502225299970170639953550279648473388073318190373083270829279445397930220270893990819985022832122972481395038761981591479497184086449853344664444351282569511437008389355236523927182282610599593955129024043397175448454754711629947642116088184317119752813219046185626498111077197316490964391909366652923063355003141174980394398742699584616541745114362836063822815787557427363946229801878487864421070108321392418004223149407651302752598561653608052980161090334405047370943972904099530705406112155912246747528249257785324345032201816393342000181406332206534764636468293433950792942464569906312993819131358210171501906457555967595251513371851120672919314263872177377963639665255725743408256975457143269613984303354761000361109574209046786541301976196638155958993696706600469954067907963548642247086958322313895211646471039743076727085138487663395520196429083129737150138127647614581799934969111633552863116773160536496024413604842809868924429307123126802674429692637198172875101290454939139617156397815848754430996523852581506139929405765373609256420574512767027364568707409737837041984763146988127256133949794708214481114925242105036500635798945323136790457209832612982106166375992904704520459759637511171407957935674974913053053630533990529945303194435480642290215113860075679343565857646699856475512398550318863458071284810410069389976443554651036459274357494278288838015399820058617287847968184525943343081671961766307658933914767411087901640294599091456405478945458673010555137903483046236877151534883244678772469473813521914998967157153472677372751010310095515262077216837827640834786750195030262030812864814145502370532395658109884206645667587424165407297291511721324395148134392174232922861959652175669587038643075274183152181739875979889992874862173876609606282348229008433258657945236824275011578017589408889455233855166357029260107779937137257824866576333361576250652306873091507702725084942709056949126771672736447657366128550111231077826658222718682657878408864721182095211587993243080411230467380029322742574617913568374539965211140462443146129520412090733792956597611220127135353507436706326077465273175491090070442023171601184147604307817398154861893913972239706829767597596938859687016060797077196116503439445404899135217534840272462851332224702117983658211049692284612030616862975921208112824371379598553305420613125721530789167034400625312355094917051739132037754505585572914034709007915866871110161290824700470326783889041016468412415696379478381647577881802357860038890905587481338907695168541975585997863005116663394642125299240095613529135264202036639290032547319781874182996862511303067023633885978370860256251292097639466061179029060288107356501812198163523849880366576157426712919547202052285932792574964887619723913887138753259836676310810308778167076501008437149486385166640318230526426580133154234656014684772243046021240711603158111639746430068161104071096603822870751897910197477158716223636993995394775052625599131413635187398058685650935190596449202246651550031032969506595654424553311389162762490344537787777648153108223268434237342493236002805708741015740896848251629948219340526040240000060068536621540262951795057513723362242296393447159764123239645327542790440324684296625790336987993761547698230352798189159151806299126658113310867549952440339205072888934175501479604923021826183771244879268850891245542990101630331952270190802046460801850331599516252306202325673329351556031084945024308093255677440478537229603198645909073402177743302892801281318845270573760739857132223919582203553382348589270420933107145163048793362652060699925172589677939080309752659403739017174242822063221719524546317486121820707102355932145854204709636082993528373907738585795845819153530184237271183718618116658622475727058531893347182849216753712159939505249402344229106078985396447741535771990683408444544429056501093178572896518121090633467720901128697816439624213512141240715702681649213924188154309276858719498122096098821483759837505116190401065628470873848265781697687211434839552179603458492175173087278069421075405294771267421631753268001916404920489837961358140376411570197079548364689154759786319679847218726471841355053542979488355711240053559291907444011380091472534320487806519582799695205297793661978813605870894539723005644638378691979857621225561672156614357648156450719155595967520519211325712320081782463603245622835829698085566022202344408947705243957358794777279122498924689143785960636435006863628076329697951624529962937744607715926968637451026950973592863770926139692644695079160573612968373423877989476754298353352227768044148749422216191212431703870060926424919757388569049693637895080097806490108810608110146340069587881135227274409679946065963935673233283471575539328861908847147955948224687557199972794280294270178411745002890900816057091386990097965716083086028969175806100460713434547904855002626734160219462088882101841624942412082341491818053034006796641509232263592132117541429670637805147268595550896573080072899264496785850963993039204124705055601130476841910968509808829977327753136941990746413777483783704799138131712166920975816563192950184796873212203650775264322583391058064881736414281762535140166971509898397730123129470822034616322724692349167265981280284388085973699508052564395615118751269673070696329810494940260999339776692750612589482727433596595486026776079847601410961171735447810357122773551239642635919225272709241616278843655744064930027911578202450648579237943700096467402778915262878336158611317801112885315878128766805427208243450808797307810430199245244940436528254321596512709371061484420158269737594692591693157211347366464315480877185136546500610451073468566005152344611852421464919923510287946735296467051732738334289455908021869872587589017305669474784220604966596868546146268054413444816820885798239268155329570138075920312060646116172933505354190833485143460518339146231333113712964581597418438320794818236339661434872014337259171210881349970109051790485396543889559390028201461065774905289599410397927803936518804567567200888323855218583804372561480078154590456383682444115841204060676828279962707256519687201041238911103696231650096719544847760583237260649209546038489488128639123888343938301387969320086926616668034184935765987949346004172165233948197300997193725210821435351139347612855938804626935105400732498485831773096487307777924063113120206272186760938468487058003907405266916016547735211499119849046060699944597475851696312065831773280230577346281841189447842958955795107935218329924661543224155322786323147362551901626553013758626774388522924485323673619602540984878941818993585130974307786842974342189212968343526648599277796211257458786090673376491979324477138765892465662263515146027855858241772312512498198391372420949340889028858120021429306390493966231088205312610923033755800742150785322988451550823508381989926831660552302463240214623657168419967650335297827087753400562187280333750389331546386130496248645882663887802734130309102359767444683390982616339630290104585236461788382164068440200214723871826664705484620643265697725362331132613500493012032475241332594920388179164244356069979022482928569593607683549214404869432283311643783106237390746406712415063759801391510893696949434758535270081289710552285041202998434662973028986028014324714217686762349761614827407110934885251880411628565109673838831375370221985735428319412485912548824619378299615579568417055969438568122713890815126268082259615777157495049064758802183247386687203181929159147496018382113419172413353315477633456227541214764493154985971055460059753874290725832278103794282627547999064548572868676380160803436365233678627159091078503571222493382631109102688394244331894142244691793222230127804454413099735483399198561037066708615236403528650299862299934129031531940363786035312084783343419880484464418687405949027282207868912423385008552690087313698381705006144795055093236098549815984276684846934974959982822468661923205588668273987646055335169308837344291773743990079723390752448911198431837123815881682052010001758179196305716473745342242800410933411773347301364101590154532842204560188589700159895681466157726154304731320876601475636233075351534667755304242841383545123961712404835118217319517902198933881097158082352890077622138953312623163185092055526593947488331574392447610852045988821025017457916890082187362953351249854001735015735192861550223678707726166965791670617811264890346947400511802620535305057741370857013844644299814842731662685481899929795636148502402271295253846566549142763364796112548790665107085773697048986673822221841751998342414836179793531336856549822199134495021088318986583731344532748246847416037915103255828169123853902101542730657728632536049341934378659881821312134344043075703348391466773054698949741639513828491406461380196640241703342186866198091652798464287899148658147831028722235398532087020720275545566549546925750725724610453930919352132502376749548048245292808625355467708478740290712922112861882772095891760605616745944832753546443562334444646192795639466758591641317262679761521393619451386978839526103217653031557947139791306803765517649824561663419049510113442799811583188648557611795205640266216147629483971838833906129261735729602752534969906533125104340762705043976106498609786072259626905185612548390340526381685743078131589267704219757563061266564098104056640283579919211787742258816038704899740526775805662727741908310289233479599706964520449105474955732749676181952644302143537700142188331405612219114599478863817769158183434399602718049042165323287497746889341787852053312536985928286076888645365690582664198695977246550639365411122747917462522670611931882097992959663711218547324148689586248565461922959995938874761267796930368366843842970120954294885424452150334571041135722212950298870981396171699594060143361017127439477481685404364167497451529490969982480401977999108562364900465696100370229931872758088709958292045673506072022426315660809642960729322594845815193596912442938963011788824075803047725349851289481499916552059640030805378612979997566726782785102780575978442879998298045126676071892327017251580521720448405735118478152818336446979752881372133401424890991980039009896516347577404428081288329967547408724262241967979162659333412541159371526353139339979011214291038237522603057862596937779353595372655656897913437822363615537030530329685657593633678441004739492035623806135111917660055774319860167065836463880990210942019219341937729550870635118269160791209543153134426562908483789781321252178940528871229174256670915147807125502213265576139991800159248105346843930543271030458826662255431885956385575517330353179978420166458883268662581628537046055974461030446310904049106370920351706037185483776709921171398727965375352763465187786207400527529844782043084855282309027729786645493421186229434614356931442969878494760394840843603555543856758453745751461515564551500111910806018786372916476759939504238631949343904690860481506405158735521343593790490870949618371265424702562361587546056879267471612966551073273833478930801161394600123484790978024741988312674702762112870421298863465137283331828567490638470159064140465484953905377708225548780521538231117288461933284998619231170865015977207584987701145614090171293846471443090194546007711871884478623970111914207999497355919656217387802565856544260215678760710691116261898129808745554949872418930269412493519888191961409687979975211182721692506471623056861706395685661660406714347820439290036895492097935851433815758443822060294134447276753271509407237870703394631897108440514044100215114246775451812660781688259159675892231714725292923597095895831950726394425622397137520456837372326767454356185379367900586297254637739276338059646968380608993582791823890429149268463126530207314231480143579650995238701652823222864868614450690052733078317058245472720746789416825313211525191905199348194139795343851429540934641486904127353119035179113506654190606844863436837268284574958396011150852381103427523859276303014998516505007198869229855367301796065159084602717588849987700985706763091735790058031165980802015996315682217689250501066126628913597969755947484387555451942653113053524571278546479354087417336721571534317616295754806324175709652475931006054185382203921224970447184001010032454897383605587493649790631138594508228715790386041043634143838926069921641604975157195585109020447931032756075820575019134133794557348856912019597745114415817763108177398744012100639224096662794726472850900980792222104261680877335177939092641475721808308245494218021096373954135512324691504746867079619372195368323391538454212575354676741149341211028898211948828158297314569592091527230125291268356749958641911949614176515051595074834796998352255803064057357097027403548872782824429684459540778334402873295286053806586368630094968146394602097810553456733230901222749903350814002202840125512292319468651997643949002745289199554626736677381249852988681375428929929158488740300704576247200434528012743766307326200845460068558141325834624122085835288276973251263767520700908874761531294014077004203329690109522211797363466692742901699764021969064473733707289055772575373160964215619201716749006615553320004459567534798146216904321574431476642433827343173171444200225900209406707813707620791436471127186259842832967379963143416073170053318088281257271783738302338186918143951924998588385175178698708538226017409726195351358976769173024204300777441303123066027297022460779987138684468008710894162058287152122385185516842636689308944401555154847759853681376232701547424362978798470872806329815376799040461475341965740591461780541005608266712387366440178621394198004078921073370982433169811438489335017787485893115426963387927204462840484794280863882618141457670669750188064677273018404649481037343808227894627830709377838544092317801898580178745604610908356563184590860356304617739608067939391957777715755903304409807604207629415186717803620052888568128174401143375712897114732101861258279687640102995929575505086562926732734024038262828531392463506288487060629835292741513580183104276398163374924659105862351958655476534232582886342740188636800267014844394428667742230894966744579991858732200253979479040631760569281517578767197704850719158566632918124865788991006176926514082887065800950838222446598323295862517450139019048825816292060893563334365687655269358156622157574121068492055021473828429605963170687566529750839702985743643241943918551602885643325534227412767351869298313745416171425509369135243236737461237132723016652454061173403157243571296218509566243149168063184942362930730547175951641409324103735022059743608420110751389006449522954675052903337525670944464750212678268056103914944971562628869493689495069368033201246616960262145827376831195442687523819743945250288412771664128359583668696145550126119235621420969828330968301989093445798773669028874585874702352499543596388747458398473510268865238711077816746579583336205070140965509146776713329333058195773818507226510385874760783604668641591025118599909255074164432860757098270842410247635713567551859771902940614515723558479516266659389542805240784931634143076417151659681051064362549121090132652323204583772938811983653683616742998572704050155088883967283498127410470134324476794207185986176490592848069633011360864618998307486789724145807523513876166015276635373999726875915471384124190035176162034028856240688047173343225557007645453123512344679258750128697593505214027654744073727450877386036746909058516545006174937145127880201584007434203195888798969425351148107694546982087002716093182076706487131402624041666376112636136736581230947360482819714770900520431630454683827604762232722113908049114381232952459682811548633207154612480590354081454735113035473029916131243476919085302726955444638113938344527203001309178580666765000254510843729131439460671474737715035559656694524346557588899199706408842748120442854132642649289108536519775057211801860410576941942990834254586832272423450133463027138097371365205296427734812209000349072951879801071145457169788960564284277926476267797673683940935578503368638845831687970644428359016656281948045251378999158768494922455979639578890961754327701481833801241807470477407009220000579851489190642499872380753794981659571762818020331852826320585623998259340048424596638063912274460704810822210204710585718285845361599688597743769086825871141223878294500984512830373439082313284221538137924183163928643050549932535617208385020187820401806654293204716772089092194203679139018727789353825719085953948576793044492566579858460387236630278132826401968475025870721431334761173369062192888979715424517305712602872300262618493032647315322565168330087727491387635917482114598829023177636419693172837169879277739882837372638590063852288491551274881878133219282081378626195807217106262521308208277024084543000217633064130962900971910085690087641917815563034035541854536851925763015066851273869086190635363940377236583066225124456959841800059456328786263472988910960541886055034227826088395101512891255688954167756077813286263690359293016647111726106180035060403450202199597216732913847209962248078676276270349743958260016387996671189434710538250689226408500172291623671136970231503978217587495724353363942106947341896053346526450572623440897807675412227292945117280346571565352304533731258411879123535451962663955320192082160854751092285141628426219052053974185007000147910655367001586673740966336458046463740984673809404835993670680814179024396482344325365320009114201023533948522103688800274665239598987358880971321085376795172769594107098477931028770367682252438416944098738536680874886855282919921005493409056260445958928483345062094989570981236888275332844462454640990473024255427790886684275130765712327616039404756031843540992950540284778970060541139751252459017321224816633575200923408010131464017145573814366582849463115766999845122017517208258638497674850553374387950632576151429525229096103881401795958767779553990065026480770802376281463034516428469431934624926802800125745172034073494440012491122465684839841436443812354546496691816953870435200706060812017329942988100915147749174342113633672462385602975751707158318819860941171606365253922305747518909687012182268727187280213097146846317594764743358920736108001718647332379032910867656397537047933418585700006196312113264701770483582574747892640973220632826594389182534716433792268023424194922346137899557366216411240245965003400566077925416135241101191327395341949070759890948028643324950552915788691472664392305808909797258688541260449613041418978798344587575917900761599705336176375885711000596730901510426240153535530919075420798021915858370991999178521776315274502045249629810270613614176472317442346119526190796733181220525712338891321951506743101496352145044177035203281891403102634527851953749399249804118715258817257858097613613949538292135898736594784065618311689903439499007759094713405259049850061090743910107494594352142181522348482190102984220607087402730423112819333382606368773749465561540882302993249980132235215102351159907730470774443298281803394604719142384080787236607545565977548772185964666925399788356347000003909246834895899866205402312893704224940862514307069100635407346749311513447969169502271632668018155398112565763708668711552552925487235040467624917254187178810152850397390625644801548059718413840218290276688865535761520436673760371777924073314300240219888797543552877072978375661727188712023638694430731256127501616539504170149596192453618475507946114133187592716130425924257218323453405585936753373994418987538470246286029964266152645378931906832710019354235281735248954532288339562715701568344171987688019637048386276716725544579961005842252837812350691699827649073831875498840656463293688321310675769734908823169004390701587334443319821302656664015793747325209290441555359536088644835347014642292064934755996927216060079956191241381607799193420030675279359115996852349207186432173753125657484736410870289445815110589172816086658596324621259761038112250856639620437127783832845178761984782223993495085117044202166904906261681179228853207991429993544265818842615526201351672086545471126017314818228724029506642043358486875362522696944604244749740494455065458914116326792232178673968782532757163359120489964704989468173785458433390916328831506950825278933022026326202668585976412124798572947079223145446246736662332067505408667280859101699796292106821070283446450157450938589854988473257452573418667554873383835348685754721894812703237118863605198358649168825935298287272060982536500546609221402179601648094924925585435721727274331550504364838727238427992330952139090296833732347633420775547045149438891366045917979746667437424192281776947572102832486112959117817661393474082665630830157362995561636156685342048978669312828436554200435738822346931135943682800884925126463549046349844059902146322044682135187607092741330525709746275437277398114966361156400653832213805954576728280405347299598007617405182118806225610325051674746468817528460674885086809282130376847972509858498056378184229029632442981140809435654466282887560357033206749817836193307355875619991928840410703702228151966780502987594493471804230899901541744575840718767156485198427938339224003784575871397152270242549987902695262124796646729048604086391877795666301360976862055403951925448720041922337866860794576658966728462604637145689598815602874142938920404789076234984985666843091710967339110544821103175165378237518127925943663667641623503356347641376138305542084362129993519408764152004339370841493721921151712129650996181000700394868286732775157287269414254460159013109418274184993140416330342832534721571133242275915309485192112737495948607739676262780823255559681816574785398037826642556272785915091549756576016543679852798773859239639468357716752989295745777391282224336784994191430043848085850297326024465618148706289087639529574893204522354237079533464931920976355392633026934213252930063132120464043099902976490983266475393561036234942248461814595347387360015790324457322494797238336906138462432996239746980003642751233815572037491572067479174966911784335056936501694908512317697051521850357248487781942312351342009582181338717500936070937582531290797872117389601242790762597189896310952643772435979003699807664876087000152543077848264196921295303581102517844369419381095593985254518437953285603360084665667246197589409589132722135205948255315816056687530261415384185857863727175087378533234802694130192802680504942472012974985017844844395094216819506380867569460729552649232167853512203729419876855390347460321698382350708006405117647340194748888413582986103073916761833007905626593986007860404089302400070505728709463046822274932470156622473246852738683202948603702972256107913004344044047295344841113558798155528290626773857338405155548808793236459688150034114132239198207056331902014353703253063546899336182342132960881644684442585384600830770770759640401550096173299300402445790392925104862288732549966868821458453887908263246816142062881984527606757846412629077205099537192576464721538478193401975579284752151156399570349812577859800801489950250865868225367646579631134784326575091574821978460750617125523723126584640483790680538558965782923720716775045910385102208434384745772029488022127260231765695570727805985186998484953349185861531356828605457707932118590118006954051958526836699153869998271386550186032401559812418444300669798036063522781349352984963712361003475150609603967271535800236106024483424214281823054154926266813693727122386610988246680792946473990595200747385723172856619386713335688586907409328745295137564811777497268741420801341561359279018581943499936822636904120491015159681853199711711550759023320395043997391156590150127228925273121139403005054381305345343182593482324241991984700757673595648970858588080589254727156252480389956014059734643724721247198720135848943776145407327946595241259278167750489266146270589786115902718745292014018818820961100948217140857539865427414485401518951999158026766752299446936078370167204209224597276156058109295014008165145267476328013075465267959315130249426550756335289600523297878745309997223600959473105492787439973102263973132143255493224322928012632857454050193926171727672422622036529630340407718892966651957152577927804637733492541166189004933720782160211376513047950654391605576985598663270076145894407840664265053505309681391363504488449930224371424301684661089285183536310909232088514633724235750675287999056398530710847538383692354281940731725080201528681748532606349875077017228029217912101694043795823037625424430153905787685349540776444042127087687511783179026448614193138450203687791870222090472407003847588230259438801104104793248344160103899264503870131933234971369074741601376030889902478331117395621430757641717597907013226922814920332562206119592328416314587945552564457659491919707302321612909644267745638253604250916457523677766167155394659817675381095196550748523817528559160601572039224938716414928417829676506552779600917367352405703808378151929193449630197495629864947443419611005751587681326608771787884466588291150620765847244862643214711129830329359039070616160255168366019852177892701902867281324354172883707106580225878572531957328934868293291859511442978622357577511346002427016563484641955527184868323313258660120895195861670360570026098755225276742788486204600816676561932304459107619747941209929192846177003865284711102516310836790022266993399035063429044787255486718870691685228965453973633614573991226408280056549562793979180172272442263947569818406158420462644941659711383532246753330608286329130086275382585296111585730578349154903560519372281726541850773727728801483328137078325082185304608847735465852419354098901436381860957288370389470090781410296291144467593595171848673496082660720409510019869410756640960456961412028726991244431480145930403513194056127159671942714543188206444163102529463543018144577417695931691990104768123476762808269211422705752355872902120840932029728247721899798660128818528266491183679439356557150273767447511781400492652382796200792055814330892673330607430404693789832594080736905085650053106182162159057712762584007534069285050964383340592920212637507782627125662564591794881853100308055736584143831301273661496600408434488614160930518635036605715389211512380101128970442530798630016282759700520784921604074432665110828256829964036535049989673084944592795133984926503958828914838216324406609361173567348190407291674154987953617673790397513592901096054904446909956422880079733600638198752230111012460996313385229186146079680020338453131319612216341066297612160138115011772269943788080815228535510900813396731958501625596349242994962412330907803676188587555291746854507846851253671859689520356940751953393723503488307061609255816124127382687189841814133840227333759067865282594966723844322207347331711253488633121126900410232472773430834816423586760889229423921960794852437477985922550758112276998780514646131850156361914482857736501970463013809601429361522161734516799024873251373275511546118319013563782280016721425156940553347199390527759900359419365999765118300692468523093091564137211891611956689200861038667419049063538864885130605584431213146078813304629157093077552396944282863940535292585501584245456227956839968216585492608877222610589943857531708112686370899101243137970588870975292878908340805196044376106149105408810199488906827037959564036051414525339518818241925838392057469560010738832766335444610311903586094923486920209261749975234744123938529526144560565258694817369717912297245666326511871074111882382401547142938498154000052506155920151130125104425762808760395588522448040819203868463086783863753391180105363969376186727236335155587382795517345206986618356821178891712142016492746259889158915180908628274026061868038287492003582042930990111728424903541235403027201203150338533245267397155660076424601621047417976862727609540989841751514334687292653613378740454885769212526228799335470683452800935429681311156165207011921637894285842241628238616461209094634862279914323891103489683225991007301688223915722553899841302034492301946542565517844377707392713376341381374879166051912485799079220492768247227751528119524186450352273962712340773419289755087001094644524659185538936591847517755150889969847468200179192296740856183906321951500832088600353160371989299076813708709851264780305351847097279349657133821263390677074887296386440507838928976123593891605488113511439162090088613726701631661091061576526137077448838580196488846675563495263743688267071541441334756528344911268127766741973766530786382022168621109145184272993029122186146541233803860793721119966845571186080393909558522123546637926887951950117031428535340279094514372931996122222394260368656817240908310134863433152786614894167710173607869220415575672343070904504714786578269156172249308787546450794945233929869697667566296722572467453942038952119832955848707784705354486241186904197365550632267915595337403569657551356566462099302062115987536962497672247879383157765745696514450574853886157397844203462121105334502396158023796392659596652323256380600004511816006456596269351871283285364387199527151610624367263717869047929178780387608492016434207854063689812661398646718016357698398347197662184068321886026049414047437870011703489647390355655644598311265903007971481674456999097442917483095920778667490071272780402364757817825021760177119056018247883311891428050042633654309393541916205576174360160905539822397233448419679770769033221560475792357812185340005274343958945286377713677278760826402537675521568690022994336498294714398643056692518061005563233858418379775036588814021528936588776105465886331773224840185953814799879610760528820451542341108049562626985142635399869722867211602412820293329865899817427954342537188886935724771815788182081188429739518204515762731699729881457537708468210608318947449310652160325441599074896473499398630075021743762379129654609993590056573852441074727602502846115230774752099215484766858704722691997791310363638770972075137774225222099990319081591788317153541320948382469350521861133272876379160191751904518838893804876265325622127456501493151501791304211223970905700610591361788830060214380478642597745742837091132476913506682973107589830895558123255395055759916097096633074110030687296434570618588060171676280376823111352282298874550364359384839751776950842511427799805330467971693255323252370444700161480345166284489374319463262212950647841156355385044542711597090903183407235029561230852870689634034523537674113380158482759580492494653396870593777549959434052567048057659168649670248490179217045359540041996602274611037635138166619564938459791363925891741323781602290940979038438281928316486062820322115690940781113605909868220864086040643977373484650450860092092372309980642051328784069944497777448292139187869873875950358437330643781355790511055063447141507195875890887725529032001417891478768251251604520346113671734094580196085995478432853750010860134023206491614923117830565888571242814273024342333860951999609255325039207119488895021480386891069093706117686754562498572968043898207844915144901627536318386165066326896176036497615610589036598564071421763819278670044236205250490473657324777793539505014783525890490149184905937609091989198434382672804949495421041297958306872487244829316572246767762576886423131002601127302431541214535915795786797017099053583897644240520418445343572723043437033168200357314334224024687867145610624365518119095841755041087151181637718266307878729784957882721675962843224368216638966118203767591637613208370266372026927539544335656076633851249648012338394075280569470948589146764506119325253399372529511837984737515293900294684552246046063357672690099418533025077299290551162503433914646110006679091774621530530151927848841167613684650322804100743644242005448652273745434278165638128177393999265307098619423481627721425967214829864277625037265860415199707883230417347449574619552188756145426620598582345271136394135966984971713942988472719631622477502064707550054812680052838756532796482089667162508949749559034304370103140522190466742316972111204023362944281783965962925983635920158303617097678997062582749426309919399403752076238392948118464857495260168638650425297084068957040907274159473316426354301731918630155366140319382380979259073357607145709218849129327362803743876705218684015711282527080987456046655487423017817984567239925028978527582632371797616232743012709713262273003493209451298721580933726379472044861968562696481641806218385341961744685969066827944388609301992217214521947698120297105402348256978199210882914374380776497098142607061323119497125461543154433420921539858259095746481773756112990065984126910579493670228800451932284990717967007264928045908122269969399690331163462920480682059677159953664167693881202551397623838940201737381414484419653115850815126531679594397512388174862421618983328621519435032557845293828024022545629145004209991372507735032353824027615169122046743199078382214797352547269648174101605761092535955791017886528492830608560769315990585355435289950862008166069098202809974504038674938294391990435528406943601893876453132815965849567316910658870493746699112780568192311530495707517627304523450849197107338382836296038098653350191711906808545559941613982017912667981564145480340151739497165732764597914481690144174693819125912694422154912181159534772377564730737572910492728696328893920167501710941061225254954225750944890255954414911687979538953944404449976264634083123228950300901763874034162797558914554738403277188026806626772194286369238823756622931852630136330423447515983295253819073731210692374711140645982464944994193975744624710405234691428850740376991114654364478086986789922795646842501899231303526767118391187792696716884747991370921080269324629680940951739307502179504372569898515280749416876811473804113654061176246893918899979070730066270520579005963889454935698075404280065604397986449651787603005075077662659660101972429839163759393391818714138424882874024899791248489737716796543300173421567184333184104157186682390511623595966003750111000473037197836714797353629256496471325531893310655372866047974354925188600691330328719946396945680266360269300634798728776765500582291940033022126520834604430301637538812682115999632085010335331591479282475075704101169571226382235453796106175542866171872250443329780274377403565406649599284337422106733746016625870594920377347912740360210582801271090421318169310249926280605200253912100095269889078493490846858646963142036927177166291637785330276756283385143872392792134852150772283286372625334310493890031092414650064664310631954926549374924289125395695423616107632402525681838469697808821256048485602277143506082791897309820117780819460425852370674223311458486175172200289441641110838607691163644199293821325877733127652216301109364860540152121252616426266481126274105864387229924346960714750617271081897513608131493960279771486766048326883202402877675778781866857506545033255991758286776910296443755404090229786361785197365064684210787311800005973774353514660346114577817383372566348785848167452018094289944467482762504710423804334134409732084044141197672650842366803031229598130904829833243823343298611800061154623779858524611707047810137533739134900166614803109620989396868160638299592731092737534991810898359786058692466819926245734832166480505928679752080590293759757067721129499215856589299996820925359120444028700647523458726808977011881995730207252711401418754877159249123559315432577891614681114698856599395778526204698243302134924354414574012831584471433775987115260368918819763710717585023414852245575067672992929648547664441124784253581922139059581439789462145995438517419770821314726126738187445829898171540396525872072546857403264416644975860908044429396736943969503110301259755196704572011089748425548169069334437112013435425960106981281954950327075032047088775050445621644651145599175888913413762064407460595051979458552579222235549557054851661352045566873468264771836611109853971895843308938480855431879887956529825210957396475510049249596211509354790075054468517170741839758732559843987430591958107022317594870093515449021279432663949906782878659235431421726716261178060027371311460843920724866740676654322495047881551059687833846822879045988681563658034126741751468357908279734999089430019048033938794738338003728223240074090456608863250795304854807595290221598968138492784333399429596762533183331821574469736312606806177554406351590826738320223224276982703846487121294505526621566488985242486515701745399006619796284540876340069140590708392127529974412840956011350153788238758153645191148231569429914623500042579385512579750569885598476257746402627256493879488095996071761360303354444197692927919215799576840708473787856549636076229873014096357959329957668835058760130845100130165760305722584964529826481134684489397594507922546496444977937364285131122551559439809583871223978108907561803050262715214907184956493716832785811741294696304825158183005984803511116845448168590335235774173396144578379369214319730364111202793462452965469171075519471756765117804406414569541023506703645424326268743587356812491047042219958313398018493651368440781157153439790710745498122496836769458280227707758157540180102525785426283229419114644173080051830623581305377949408190828465405405599756264755698987890786713732762730824968510923117242714645694969508097258606466445694610521730306058599089016595001911813885303717442492143029973038410246126691472084182874303317852143923387368062962890183448250207660109022134186296341774913855366751984334340688040615508712435392115647978839906414147566695571762474701917300125463282857179113138119776071607818823258049994760011717190621356631289796606664434291389703396067332710899757818428556593720033220666492395555173918497406920491856993541428244622926655127213202897858734946581785307152015553347579480625620866010887019887383040968277498217461012251791311070990662114034413899187446976113427028011430391919479646597818991638741960861345497575443094455881219924718936275798839533984779360860885337752133461475142847605505480243453789554891061994841145633465316206072374231130569453048371076838176634503579813408361967504886014150734523289068053565683468256804556768294222486817539952809150950682156530605623640175041717938036029663380528598771520467867939484705458151953989628372751575556684163636282369631418668934763461992798393739236747985275967217507669652137371157731788798821138813246181091225296242483359754969812385149318805235949406685520460578780209845615530024738677513185437952910114485524261034170987620230454047660392448525797082395781971390320292296341575970809089973371187405749010884636084431654288315528371821542551985803588604506413939633084006630661071108458819072853362028590555910149676094024310789753934565686125068154749281800338493020966835241633436178983157375425285748547222524874608716805035257193219691042784894334816403536352791136970203135920195506595175836886764594390657043436371172292231647642986574884833317670035772803925542086498221885896698484057448161155268772316257521637549731178218418191656693696130675787780209354735753361132554255980459922013672651798236080859932233795724845586184422310413001930673446159988515910232399185017888679506723015094253720179702344115979614128574277364330480831167902587709246635884837352772112418107926706522304339234526767462954131234788280843153439466597570417625174828361644599614085276200976810533643192463512179755909175813826179850832033636205951481574266166818463230668238218873816624149783959082702763474413047767525232125146679915005941795804762056114146049584607251130864741775909820626542143255055925025093665745747810114810847772731707861900638840010101200387477894818644199878422478045293308246232059371839018104333063050536867278718793652601747574240377294304094874014393806785140182299065828633931961705553579199198110133521618206350077584505744850404003886195651711123748649475709520791590177550099846279157775646682917021932864537077516663929355576458715397707572225740869177840748522357181735837594803506448035119032730230609924943546955119576306454773534929861548510760378942743751105988387086721353580714980834154246517652852805654959953441593443650456530382929592090629925050123790583565463793300048129702552404857771537271307446771300947342207741767099070479294997819460240033642630020065061087167019102109707068499827610348112076751834808198114863404659609211819562919713125201585465055685888569214166301552780581373166818667051291953790730189978342221598051399028012501341784975188064888563032112770710508830347632731134252314099685634265305814414149495518328924035222112842277621192276723785115232425662742761695725738626711779598121941814076623013523688314176074498401524008617492942343751210863102613651172999205697441511091920613195686362933952152062414111686730672629315944335227674894326549305436117416328474911573577320498831395997076752934449154711886443738110186555598175467775909651141622728346417829315035323412531068403348327485447590190423250665624999181720213783710801531379625307871315673885534558241794042708332369878355909940507032034366448909985498054588820428432693112338218865301499996862567787140788104518093776432689866280682553577580308510119448473620015690156214881419148943802164141968392173250596884459377623256747805850510561499369960380508861723175461998578558118695463864479841052360386298633165449654324433285886208440054791294725303026841738751641515893608230248079069235393710932106165314276052412272143497388863530493297633365114886664996318613506671052399112253615808986229640233172304863091576436984320684573591120627505067339168363318555086706796736998116989365592913197321612388885177152162670580256000495104358603517963112788032695787623668830973223086418682255535222424941154833597095294615272768212276050108067859181498355294039723750199125292215328327268966055525644543787881739880394004392809803971230845544950354413808228663906907678732382716915268758158149264930631270512499573514601175850461076965773360122884749846949425751915074383329157884921685840983073290274683528478943318867111634744901587217415909049883132065163561288504260175696792016855361640441036220170566408133879842967974327664183570390093803012912628871093400854158463324624751611210929686003054236226049455159616074632895432244014232878016598085999557273476095395587198618084864161001766174885085897529382477574288757260789414406662271609802655738077428763767034249219446617084411446990504287098769456121933609329453655609804685989246169479150256403930059357747690855198635732646445618569398712622459446537318507123073072913706405162651828681190771550415884179846187007443116688441510301143898375919419283496414085386284785961176744280696121553092301593281352645206764202646414536624970613997017604363399413957430647063433504884722237911134064859111203928845591796689526196177798029386165354049048547044725065089197879911715257925891123011838501184921456381876812103984794025496484486613741510354240581192692028329904824410319421128699639802529915226680765410308895186838299654572196125377849912422774027828276885907112251319957334639800809343892881116188299684866151392446017776903229637128901349305976995615312742207471578699754944189237985183691355734478120740009930947757909900685689842108955052815212771502349886063827199814042704279342792224224738164307303447177171533406684232590484228841835182966454512772320433910843889181856961478382127923281345639498987122703163750072144607351015609872393937469372330777343553449961395813306492725125757960681893000528189869405426598726854744987573126823411146320470082667844688686937563324391005390463020847350339952640089893518872272479684368885929068105255742536452928039297615102312668118506587071489268627792783474496459261768096333687169522733425636989426941776395571653901756606353945528311553180634492824167581291239199023213803004182224038383104981829539863062896711011495507561943370904227901643589949301205076859267004134696284250474663533204973241976466436278241927152141698085663243943864032161774563302302098378832777761195225894754906151513257057840765108269890827088856846462849831959943500250949054876675820154605894996719862624675299738705818281076455866076999593462501805464558207213912711124368146559375944862782369904417800589640583528016000619763426622861579533360059660576510774642718393677845656271062278360920018173159949207000260606259630107236126513594221955241203554989163560748037196576942253080693130722171086816234164337304813276628061711700794750163314611928606781007935854906027808212636843327081034049064173501329876254050974836312799020341984845507870646444969112727431408790044848099243606644957585365140116478278307308407617012994567227176670759816414834227653303989871769650488221494855151807873008341958499165109475180520309369110930487067001542530245610690989844131926795409748181081265774228014123244094030639799356069905586921963795425223349091674455474304309449574182404562871766209650404853517611891956793003366242441809643310428206056938019671044314902684620353520888807053739862060341479607836926553114988046486220907026266145705818865089642680978414813315654080799761118702892758851326496919467264249052985887975010701832494503374037691723443781608851588524693267667156556660564758026240264478720806549495409773997154662778996333824982095247222710960706939321932448264276990841473815726460239072807202205521453596929917997695970471399765337735807526567532891626642659101730405137452711942521459980424024593827651132250474846473998709088308481518088661615125638240391339434352221465462394364480694594529561041817153373159062671964377828641047159069564676086020894285793252173158894049545917907147495964404563721507005563357318313860390313230009011553996194741175190300373329630774617029436477180722995222107431964258202850918293960243950345413154492504336133874794681278587923374661581382463558019222619659417896657573172465318027888719694588930608116650658704684427836372466458393877257053308765079971488873727819685994117631478880577334176791737632050242506132565847614465110773221656627058801180102403831086693857567206253434555071858973561095151748155779332886850128588251268934382848612114399586267167973666074410926554275804307257453526858077863316667223644664463612122698413837157388806931094024768368468373453227622469607328765201869316130977601772928988405274671947392596987686537941491433990709191512095891965148797157973749360192150769171813575221450907278890403900338470881634971303940406071018822793282629365027025608102458987277621271391929019021250740731084287967644816917989404289854258453862127563801665040433933032382003639459775464040577294642603699550889224162775893321504322045851381792244813890892389020740220030311023811387003924074018506895277086686437690629043470372945823962050899215316995701298340878368158512337024668499731550046237255381265168196532210038733321445667045401434218441092083560385846585462657998956381171947807738823302018200039127666599380340599691749663955485993927165443330993630891647399212535058653237616473244331674467768919471008354847956160106702994263933428363314096569085692148402319980541005940319060808609233938551479779990772099451708411516824881814336644913629755733503292538709066491277567346065495418161969286095073183979406224211830995491246014980894067961200331210785237505222911943899413958123657231250063484954785452288708139684186734300568042989732336217398433391088500987510235548943868370628299586805248509414717437470595349204281749261040631421390768017017101008553621574156289025852764908102913359122265938889054553706632887090316347362077755385026125614635623892102063181513863722311041954506594965344266674838236766153538290612234426195847196084494117701795947857630961371769732181443272650698209592971558677440523551114944871852180938262162483315972198639884257116818550386655785489537806783150476816201058776010308656198230657835954660572847804798834407543752301931732709219831155822435255981855205561897402441707679732480866688753003667219507126916376935266102347803189749430554527896656755291357160934315585006714035727406611719416428830463861047331646491532429290744882543544632871772481370687931192535193840732005982513449657278918675091229422246541417092732594440270822859147127859896187165938205047769367959123284000956568926314599124718085063353078365684609185342372447058306590331725897660849820885934668494899742036101288701323706170654175107473863636352903617965559940055962852581918046880259292458131546063248949871863376087810547427161436854012130377851172262697951677832199247673956348058199474898487476317985109656793293282314695957263264702052604134560128644003984255462878706823028779623811743085224983064355837712287504027966413569069225552537520059913783560002920287668438569386843640104736516324556590756378260205417164477374982813798206715123000292666809190327924787457501058725604007299475442800981885041555055356563455933414956029800564532540066306860244261192938101580845630892226854709308569192645765930897920920868639233824917860522620807553964093343544664193698368216343028719811833155644879811676591857118762821379376884975936449141148211416461588195922378289633959925505922135897204412661615150930494576476390021876152857307457939999795304081529917922086006366080444345349967919080459298455061859538417124392148866593679606623752926020085846231541891564030221077260685055161356870677468424626439181009014023249300556259726226543214305719426031869572734855447492795197460724820445606948998752822701658590195080540262560669893334645937675687053185923714970167380581826864611393257822235021837656209483221735059850134042119911616762551347414903663960027329136724292672023563973847823597195891788989197784443761260848440734033814769407024389592317591370257038601932255630460591538346225790588586587231400251000008448342608485914943510576993836057399939722631384579246310711401518143212623311647280200133101840541089191108269847823393735480031754254974510159095648284438439450179789813224392279522262232249991756558364819133316692262504925821620059165128258234888431029959614591845532516955074994485757385895352869204598496583583969324958711395014691083995605733585022404504531133575298054019699793639941904438709394693776482121561398945042324758568724063243551038427138601222020171867346205273521049582300043653290222738143790950503319646704097703935991988212957327881269543493124497626818377553397769976040063652919100496928298574160525113540962174182633358521753812297199358726440780650266069574005880314335955019929823477992823333132714659537477397817088645768491816700798457918573821895073615118380025866886764294601278020525333353136335629262701107638746497238764148564026828409232320068022039622328808988117781906068973629222180968000175284943978948404092863164687837120912781643954463603624245485914838641772398384149257040526962872619852222244687216757673234008403367548870077558383620876770719018411221402953962310836551934918032932535503964372596474220547017677165930808419697896937709298689508661726610258566982162610751028929281882360793462202229884182040532972261933214637198007252268073963048982406486920294183073698487142825934203858884056267691339173401841625167034820991724677954324740360792937834209837933671177845607366424536090119198353395635713749477599296609015147629454593292551094021323523794042957923931118790225024821966653713702175912138517818696449534303415605159997819492838754698993265528575346427124899430144901537010469550919731293493188665849143407022978316278872387578557254853342425395914834109553414370288289314556304275512105342311731743566782447007212729344639163326806092761350808668477549911423580376900474973687161970071164048458333205124750175619461282258167471928952021760145234972473534631366679422716229950929718471817189921595365186133740986662521482056696394369693437873525579182752807655091376379081505492208855083661412240500908377053099028893709701154093361151468324708474672887431084741070037711382921505838441366074279918747523209327922181466535980551668353395627877510073032984724251542388947709655606389672622732179962844195113733037669557444906373083576979795537839754977578289979679240154693891564588545582002808035185610964635638550011110605876224137171984659139629310299247244688029066559764521432911806387296078434486465108053025752155039953693051460966759887493452230253176147128944776898975533833790649208260268424619317193930794805227659155608835878941831862499549279863281664527433005316824252148374134092100210398678832903726703213889218234085891778663871650124596340895356996864045039854153479141937571511862286271976491543757950339135517181147729898476444211764057336546603532058008638665685474584409254917540245638036052604253112026220876987383254003265379385716512448072077212764800449379120777808752293077687345353362697307556924237740836939682123824393796095939362591066374402262135105722120594977011571288749731175776189711955901115264869525638298344364226381232623410792483541737752308257529170125660849669643032230154653765610456259911541073442352367286397176372903267982420762452328242024031321167333264168709310365994739852231877174971530968436359625045510692436050513501492189105603633065551065838231753104813056127165692115679786428989878210106434476193597568298250479275250092506006121943342648419752914934822314835329679800943950665395192681147766003766555427512760317460361421979439523427895329406211108503475854968758869720824982371660439306088057917344442464001219173219111842721616359056175882526202326148048181317784847428590709181801249168764639202550145009536511114926084174138535659449170865681523065551917323717121362185635929500255742007778659958491083824719064178223007321707229360983166187339915553724867148500903049120030699976272737154134496898820061020233203694115788301465044019417633960471082439155631735197734596653465996101833551150859515547764714686051766910777985954041553143713054288155326776918152647562696590695503139268413022221444164216499088086862292859698025975829888914757126137100207544039155108838688341492446422779403322419934961176899300014728768907766139577370817534516621928787695540058092760560841834369584765962500756744629094001710256522136537769588119602333928343164583264484107523242963339202529467817873125773919624407011324788440198546721166208600266536508771205504420733784756088558050426279471139848509040690465281432592330996506845730714607714443091794683564922372866829222863700533804397792210263416852673325170536558584560612914768839851723259369233484744297886596139826961446183865339713747040579055971296274513427424652655668607438225253765838680836363015725806065192571926069624498374103590638574458869967742719000296639566319772941791007705184269136906254596375432584294077897555333198038146000298054175791680709963407867027378936115162984497038781733675112727083545397984994888282359167037634902069948243904313687858197570349039196922320660172885880796282227357531012276207892392370949117028315130129255864956024951951702366989720238846690018829036133628718332402476996814116431939656849755170513518873413528179580309841114487470289806840310900428249978223393305442232795394967201894335394079838338110171121068622305654104109910844240622102166477903261497400040194219766820238456065604637595760098127461305267700333725696266077307428461529191751605463225541616278862616309457749478029899522995493608990763314970387825747233310079691947428018302973964082595713437089047490538840159493715015298910791286409343507510927666240231806465652444122440104230197187146864593386537279301200902266395014457728013138465647828695184675532004696850931750234039432604383183244602707629030704500037158317141547576002612828953679548926180912423751125166129318025528356362923910667726491434042452193165131528107045632497779311664729102333760723934244889339193803710805533642752233421954635131733779422822752525104188832486732769414792778837257332976717348184595884989710733141429890153482059863231798203831304183073396447134076556343656651172683671956891568940815238960738286623329740524117506637656874706817410984229730676607463435961849840625440386718075787579087003178439730997161495060901955107017697282178531237051091598687163853785083346892086110017677015165407760046757975765286387395521539789286698911146241144729511940716175317065522327690088230908315432711202747292932922189533495818454243377466484758821581395094856580214853817433173551560286445984350933027126625017549114538866795664697970024470643485530270079891901876748314454597369623037526934315128944640753317422123534318398653593499314424617836549322596140785447179136824119139767218486863684687133775845637270135832600661347055739144576073582965562234386137268030661862659360139696043018521915140864080646971100491058596472664883464271438272184061422731425649956543792494090749664190150237102191211699297148947674654367352083580895487299205997113436141793415683558504998793180629034740738176460025933611370959861784881148863447433520700053864625836610857790634636053409110240965223060627748881950900211416044394976766430001383458784354348544890685733569083400253133004923200475196767655763398659594628754986732400201616966138640677841829743985885101569862798489117999412996072752577440172078972031334661954534373367564793060510418815671298970637582885439605891474108394926445213520140487608029240618342970723063860964850752785863344622706050600667369215941934513902798406989538460275499941290422802847019407519549795272068204342538781140898999440156421188342692169574697172039907747778729703430027117422069463803652209445928446951794699815871175423420322001645445098128301013713807097484776271218058218073580040303802303059160619590486690409409414687677830474894993781526334035992180198827374545637828536278980054533870264398997132754128439348178473470391077232349685552499015806319952435697542516812007506992191568426497047287410851668694412731726252867396154317792010352805821359687433328531980468471526882088149620739755647486334433732709950046256321127502458151903505269914651520242187483705531750028938296018141809805260147718933037445186448829074159997859767431085132923688869934812851479888199988198575352263845300625581997112809068973538862587535270306097875518496476371818504764044808000950123398453000850770314178891348883386318610063485689230465658099641819890303164916357045062914156201454178508492812297204966382289848235189728665302132825184558079972630185199092669874381678125013276275576815144278947889049138635522342396526940058416594019352175726534960097978738450793068737995780680556982880887184929089237673162740174236493380204439633343766825741845666120062852858890804127355468582468975948613611420855135026951305661391451605745167469432670026981162902094252428036700003556784343898089320753851718141020718491737543134252089751505646888715985136801579425036794017660073785146242307887739209147484325047659075594858791487799574403537416303082637204601771200453472735033148000755658989533685091440119106432784583403764246605428462318068045547641949033688071338840096834657474393203073957851197001880919379968350959682557887702192083109356745183680677607321486306962859752408872044924254055529796267300937279208723025756329029502915852056605822501400269137986905563245383640219253876781812113253332166471178957781023739891086390974158976603845994615862032837904567134532100093759238676926606224624973620089658971289597632435390314677385757564718508453229597805711257976761446160460933810684112343544168447477264664403630644865210223127993949997837435487562735927857556784623061842671282363764254204720759945916000615605925418724865060574865287910515371648691005028780496629586904365060898417462862204371614626095614386510022753703268040904128248853309469807153610873903422614958528521157770976482820321957011309237832160889098913491840528732872812146934382574289121429666390015063111095451493976435609451233725164335315693787019717886956890491286173481554978998702356094196742633822313891361449961489576041849626363380500442593733410499724477797229082371270522269293718711663080849281840254248143619828824991355923375250623168319123807949179765051731590544498312784908260218461891699207726906076425247478781813721430041380547041059482824799490211584716767551554816346403386532173492190223277480447249019791951845462889716635074965043772638375386945036320349451537406677912935147730614640838200277426980086051692531177865593764142133579688024758964911171453250425865103993468713883906385367546424556592031879768997259515949602541901837406860940890951270387413927473472888971827891299068678046447280601315195572503558023044266234232946082356098330674564639608573145947953833351644188508163958976680831946086677315283236964732452296581165563784692822188011685208080981144722075708842193920634611250098200285143122828885433955847654003870595207701540862914034655084675680225955084719695057673444299095864816594532276063416040597199444350189824360338091112908832377926045836087362491399708444659289396265518712726416243371890506079940969980855468627927098439304236512869588412692370061515251009471778993485059187415901059157382495758745079573306135465390098586925976632352524780350863709478993423693517515953807770660557440015513746145676738175673583992543658175679114927207015033041277395998935416139091989043323050270283976607280097934390335274390507924728313261716603725550810197953734524766313400833178530772684155556915856962272281019475526690402866335767945642331335120856051692601775070343199447564185102651126249771044347661344226844869575931746371266533406928252406438077647748058312614215788050402452020800813403422599989353241322126594562662252242642735154927145389749319386981268299271280083750998254397032325319582974896176324585998688007997960252606036302832918806753567056269795435467219173307652315702635156105095811382984649699482417243884227182238802666101054684517893238032313918771866091321973328547828804353809339816382547934134208581013362156949712512116931208511176201408520320855087990107164215682415632735951527850394977335561520653207941676162048549195901176262387542153327059149288578006267438003274362021180637956943558665532386234459948743027489243851002778956110159008267808568229496197667837916391907132927152591734570469358753275748949423735988464661435261483965888059334282983224670887462380107663183153639430863003680569540935403788006773443467765187624091461977379899747404850371242051487584270767049050450981538087853060991831312310121214859080373256108779870722152505325166971998147964730190343866821225171937522996756110418678997246387703001844837438102098201453129708702856830072716128781869503964114766907604753730938911534404280875018247282335903894794399271555297692131832337128086275495473871107000153666013643606453192637666012331344218105693304866317877377613886040874809135271147608506403829329200921872819407512984613831343904926825189110707995475159530426987554850008468974351831376523898735304034692341231342089775357980137052752150106644169160575022661201488940951638336196898925868438720968079397868231672000909172475195341996046475875109822830080379608010202476545649150898658422687230126737119022842170071731594221890203823352479610595315451836783975794977076934565488628131135199424681984602565954482893396611287185863203882157846006079444688640513485144417321206619003592341847520375233575567305981274570519223117222133902981957127702284356471439064215261865941335852556992451639355485816191549459777050734622302675431939947024184706558841176639700095429191395513431392284728335775339407640564645061146899965666781460872689547579103994018395272314141528320932651371053829082107751148020570918068323502478611142679029965583508642735554000325835266082008053895715945770120495842297155339010574537436069478920964415957456875575414676076865063955187396173445453360645837678847539812191037289807746535946817483814828472876769838687536697617073740280264396488111043671737281488103053806919381858537394959964019035984742753907250145739338047702155120597711576038148917706574794940204695581845314385060685445197225147866151351831304756147071730815746014551166438996656552714648343024743362675215946737062185349858591299280555281455519682955365522275867275484171260623871688597813352500977686250503944090189653712243935729498129035632813142426345136863117293685112801480247210870601748885266725280612557325846998938169139493688128412045563337560099137043139202937826931826826872780995736126882529951361351767199870946258471102936742909659585973324635685188118519886432837024632080496460011467406708680391312224660888672889300180642712645429973411010154455385439328927525523511895412888839555617050795136174863151282242936936522694936322930127335946857495998869497528593815208984450670957027920778257071000715702481574837344149878360471861815814162194177364630503716441040641866362626893567150981738324009223644756760122531309964818324831092931986986130397032390621660052729864093791943053513486388914488782536567326295836283463790089326155623091008280882235665962209658232960964883332505435567855469672424899662655420071841958026270440576814829229674912364577710851353177152107788137492129999823438636459007113693457904778843484401460488694279268041253678335610778089752470864991754361795312432063082429379713135893550981867586390774880938102901371094720082660858872017028031534384774531179727505581397925593755542263903271085347295651788064033077844186104439652640016162636970386038565993087768518009186755077653141098999035534418680948521125486491005401638745215146048180873929010612220173442059611624622093798730132905153643310059817961868854264267644761868861705150124157370154656870167878445961737150945105208606570071947916154886003828167685448857928194787447594297220481547979044737966851053699566949568482573852408431813271880956315621958346342660140039968735434831522568532910677678299632095480930142406000305458416606434369383085841684135468712024485926339891698574252851949801007852369682702758861584115041568923634880049243605586635509847963037548540465599181965081553780434758835009519176876666095766555823110517681500756246832481528617274675454800681753058911366954506981596548422992396939735173602373331236371526195886004750456507003177897453353505427943556925807763088342011136346098350203914133589191778269226683226677473221434149590470121944355302342303127713641919280767865308580823935721974369305417932529665671046414044264942177054228120050421113740331720825874920996276149432625561249712371719296208504393140543123217862788609514156661657317885614228510428748723463297976540062345852809967178165648841435842794117951460719054399111310700632201232386785168237474668030476182308611039602346658084522564678837483512198031239623836990925643688435036737236306226071328211632843047403031988480018602972570828695197819029766264141907403120554101710197968314886073146181675392814514872411354535718911568025492023733652680441501285304508811223341930879601396816869701213312124449191324660678008475805018245987722006023659479087049747882793674828806603287090856763280249040134670395703821034656649148288721373649423008513751848116156485834562435975815863272416458927777140597808811907101328118671340810294159932974645082037770449742125497706408150894076436479012482640469590655207719404187310561029890644520728624085004484250330399415815637885176418150408620628390614187679910317481519591772363654969160626534491461652261161792254867393531542010271178750480771063463317883367380925347011701704435265256009960998386243285057138828434245369094595537284865077474718337301787040539362143058099477176312590300394741382112058460453024221300037926134545052822838080236489940695513848212965869317383579804588706026477470479187784354791401518278900188130554858559347878151626866402575317219955604134104135843019452591940495874000853592282004381049276034560323458717807808971921166905873245514197256910380359280373000630989458575065140835208718197435454056821572021080710590053745339417431240074373378268637102489835533319103601762380547052104282171774181833006173496925624739322579980967359158814540189027136658153524298267351129643123056546536699630092201386450055110194892947429902950352558603250830391931990128763687919162406149562597469134963886953762157970136096867794209111690690090914729049891998364912195439204864258913694786645798162644414200031029382089901053265653524068955449583497461576851310013131063127582210649835221017413678675046332010800076274681638007423049873132002152639370033729041413113475092111856490392073648912638114119136023018903461627052264871699797800066461907980935447250488574007627829991674846201108416356269454009880131737534475738527479038531534780929459613391324925935792202247322128462549741553732914258323439008233682614869439489740107419844555424523716332992792515295978542178259934937887583639743263806933803330311961256841995472783403162181958659794159026203833697683670625598439849576796975509677479867530365336761904521383293064965546253082002092575331963145980188623343221913824893245330268182634333653518729813099625251250387761870359728604322984041496162394697149668344689799474003965900053616362913220673266149435460167833894796450438150221257791799941798219311235513770241709551997834443548461669492729908034056297914354835975093717301052146684732421200839347623266074592743713101317358233139435415515541958818046406172764280042110490960471145497902586819841864996297358831359382869948093791248195747151234291003599676898063137408001335503406568087632175516469232356231018641495415811742056967313256076333726706076332258750596793472726502050523195728924453410747830774780623685743654686630872008838875606493699015004395699506933840129913493180479992538899669865239266210032880665749474170889657548325552710030821212803852030483864515332561822500944370824043232573058968820421257916249756196815757036869312723868873251888103542958084260477674680968299244600173003109615790676422721224904468208233102970187778339052792750790617474547043838328522755450877192342439120816875661081124403572426710588862473678213171677573174653626768453006863713700739428195014954877904262750850090106273874557580702335437608934684303981587450107176918931864022842565815497071499194074063078808399980757989720401139768721537103510830957200743961117882198577422260352406510163374845212181960176997536463079250213093638662661568813399506942711407061241373316274949249993651904178819899702623155590548045950565924710401599781036004541270761597822308087036095809812454960529899558412736566363944283298215496459766278377289620438269268895820245905972401545063050732768801346637814651757289469622936741492730350796821891982904128170307836524146057924533902544652815427781722327514013982591377545427775320273837887459012731396489241239250890253267127067314372744994378886374126934795598970921174687303401784232119067815342091000368114801258630444520608849557599222944730602217392525805140194955115768143422187606204517524455143063009561376417361733687506236816965890570515805794374304090619175506153347651917443474708840400078338726297547054686750813323491725694833461758096379461496375341655309273722414505002015932366603289736845232397753443508104346569497370920827708508478310825966383347777223284844331116044129246972459057421646228886028476640601432959474282501347314979738471715610342023658733345345681339721017565225624058072587259696045875287670325287926171060348689524216300362693377441717658680865040911812437665630373993756426874585542745949925595332544529589373172595328295007146983842842128090215955416776202754466601541631561521215850074105305501657730233940095523415250939955116612736383537269306661844949926798624606336032392663098114853808578143013338782744064297547942580362293696212987803673874111783669225634243496743148116647181178052232413544899673628448496627940580601753585180112712232055029993796867028828551355594186971418032448076770341227435469200131980451268695173619782286756241508386455738030496943877569237572984257138844822898288123105512459684014640155014643184805213146820052527183128813362204271892643593583520126953602552323345924902583589748972865664052733879425388978579688429495878864390454746726451121000130753623584696073391384288265675774658266240566956159305376126650659223274646548751431070239341381740385480241977450183473560850302748427261038235805436169614370743085137038001633955325445852392144670692336827246016441834607766083025444471684504004522224732762956000893066924697575685696055033274722821857709279953724979542927759464289096417610170330302661126225113753251948677634768709424624507346683638516002111751732341832347313967597099577612941919108336818804378850278326361938427943024488785919262589553221527334987900305685609996807206577064603361992884647256319566333768585674770224139346476827709658235496854627263107975744490856071730251214098340019021243342283917342652782510867895197507290853532743844083340234721734372142192491203452135229495487701764833424510424483498899303658948936596663500102130037495614759104738768409173897461548178011310415518972109397182967688800463061243160493501957849194646140364698968560566665491824567389429803510703826721682463111498052594142808248002781039126927347917715928686964831753512054559128134061058991598004244194416092419810426086413591434750441132278823039819518053086459407551464861097395934038664486466292417692756925332415149644203899869901739333390097494317133687707613826618827734436151193213120927696967846772468662164247656321717573334193427254326425408300043815159951007848922405748647564339881184295023065928339212597214534875540969655168405435256493712910421512309950798825347313727911850101147904118441483639207344648014053902034278597388385807791249818053076019942634434465040639102238762881367161728757273486910451578255264511346478721273133702490714121525099395525672126180243303974700658449457688973443369239290725888025830896114181122703566495413652221573167995246531879031625480108710187169081847779790293350752561734632121418372676020398462463419261773899410515607593112972892729244588399096941927087704419009301414583108642340108725587666924708373587788064122307381332341072353875254258335353437169440652950524360067068599004030936011949052564112580457884412848201384415797624685390047652775971869213817709351578739282724137823168380608306284479057367970863366237103412253421949583543213888236414036299246783169466266496960576850899831670192818445082153837688702832248226267407332402652051699496789283385402671007359881814803936800661177472490523650837255838451302807468022400322746716417407436046827108252180837189247200157828131782080130314557011197274955129996674054781867129190017548203789733942856681195210273928142799712539667628506725583219830322219522224895644992470468171673306331341800424068611210376899780552953590317535486662380658092837456204550393937064109866127346840888718637065793211540631915037444601338607768043957177320967899763844929765470605833262271498394437246776343926774637128453722463506345006471675939286085328881539819935035407234207866576703650976215556186296960069631888573047628808719031666093144818561626454640404475040714851242061448488384978732908718334472654794044028372765756954146288568049485376682556126080876309978460927596125744562081856167194584202876062565603867421838550668138069015126125178858268530512872706537278887601148236662526702313919487577824334538280980048433014259529666004040887020230496745309713185558345016261717378047476404163898308730430310308673570017816967453887023504866482685087078892588233070100687941566781569162351025068902859695834378693275213033592387739647034908156210613155295206478937686964941908831146301741478144342114881692416837407457330283269966708549853816226045574157725099676561284888412127320185331040101373955748361477203324058944274182813152680843149400584271946558238035939959031832835944920551159000708332399537742080432149489883382365921522166331185826751136588623890693669515291572377123175998688780806873413335238954878286683553215473140745090263919488217647247975818844234761014447904509642549775555088494487343019713470546573686328596372122459667127472789269387648258669399581330664791939515495907570451604265729015226090205036111797651483019615440304117970527689585738753168650115975922054407514511000473603448687038463391933757929568635170025262167124034660241645418947944739172315613318354187256238505748029594787590073488264740644578367798463131810314056060205081788762021002666223324666390352735602551922787432391409908400869294027165432924242786228385874292576099487762169698089052514538708239820821770933773427635598648791378336968675750808767479754091764596663765865949031217511454217886665124916909730175058767494010585921184320729978440800848321568420664017772727673266353488288544688487626729283670548971478514112440957334840156713995791196203864870650251901341244701697079261720682757820905492140024047459991053008076072148281380753749853340670335440238476130275207153271523444298102037132645361282378945487676325847841208784517361964239578909243996242134133932476268435330227864294299299097762476097154676719220774257388501868184070945268139921844755935303430625484646974501279985198628004250116505473833159728185257561766993761906858007665660132111705223929417076690720901678091375159038091365383096505203718531817518740045060278179850286415105292404476904799437191142812191028756459338195492155454485027443532821271367491447714743933455678613544559674835312486623559123239738669274061357494380333220142071848621304369172311936640903693544660216936181483367281665860649030273171121412448684253400388576048690298331283673588123223554859838590785593339078222440907978733664594662394535328850182050975403346927983220009688839153218960946340253488360987400632207670384552403156923019386408168820623382459129182858245084489924282309088042201530252283255374151426144001714877936193413110954127086348537073464577327560074877916344117225193952258255349725452963727243197332934146229608377167880889323525243078254037690009830093928594136377809947584528608492690466244290941496496039266742642442251934025153678868123632601670708015141970875668651065614562749251764266859679475170067472613366632496622998709362000425734209869234233878190261578853222599179194733967422053442000118554841687824668236416694896367228725057797629509576950261658191700381192952764364694198259693152492186499128705215361767726667078180159130396600474964852779252062226693443971546786693797429331415732925003334438549218313876787894419523765160861315749765797804354124569170719136529912626248991356636822789066817660445021164081225971006746772322272330843725670321197729352597044443099788557013092646182576663875371345661510900462840397613430848226417140714540457432023436879929243780188399195660415644497791177407931085459161249648026283404777703687438144073747223026953449371343645178090795644494462873592251215131741637849656336232622977649907141940957982299221965928137174920296921091299112437714205362829534804278501079842044226139118168215475066678569336021631572224962647523881305937353227734763857709047856387129277995030834131840000216626980798469198789942669524037614186131498487746960786669180863120211030864554851015659113823529924602113135488943002609719583217104909660045059028993726794975583193145748695093360989669903664908542874831581314088852137501381560028156641880497440799467014192039061472452436478944767352485138192154472325891581801165350006010233749365742979118690856866572227156479804016894117361895577651425930723424380014980330276035417379881796070261604506117161118148385166137128789769697430975789035870282206800999807568466936261274324092974566536399299756149971757552195567531829918570667045712518767076655421588670142326623430390318217640277523582675653091899277679962836111727312965669145302306367067916847132679876615409443531128164475221591795400185895954598348705754860969521449530940458642017003203989335475406685607887135905772147667717607470103039471115092021272403936981015839523848228131734561093007694847206270095612280196466402312567958660498038243832510550145621961770194125325020379062096252901953978913242483699622540121267357245888869837482116515332826571201652755523478251353855276137254243134514892708564155789149022809817804453551065271495411567590619818666361393294854977634169393507352731281610255242156628193823290265228009076631813370899710097006242276679672192117274942241427175298726049421794289068923142966115132871656495964704326203736829336803241761996903353347396612955587646651201667816248050415185134528291472853577101212207991065964409791259034906119569929221589651633887102149770036075955557817925267447145428915117997396468876919473738646930790592656109017785437801441987511993689483919166370692151052903105931660528871784414828084116513573455518621425766785958760935955806591211926802271859568321632157055881513892040926744891696272650370156383950773672073121022506286967601785452353150450189762884691892260214168963350966376311987304442676752403453192936798300915604542928618231866954693508988830088753424625047363285909894524316677571807270316343317640614626343249285862756691099610170481888726870938300453567170089763286442223194242425967214547112199201624358135156007215633125742185059901439878469346904623727836067378469344610368187454077237429340641584283359616951295155955014196841332852795881482078304767648677097109666592582552558164018815006532447284621188007217231611167067983220245762451533347704937707848331829661365961887312039898743955946601689729435076244591526317520376804012168772336613982803715270864426595782900399530055607818886615172142357506091981106055178223406740003576620388689745591372502163294550675585783784577936566470189561229181318654965510563163588399861838257124878647158131538027198822956722150547982458479309140387983211187872641523666988396377564652701680561668779273026082967705346253937174481801010744781393681336570153354090101670742278077907559463496675897585107713270014878027124033305622585752861677207867024009453245517158805547861882538731194631273001783982912312421491902202339936312068303904779490395580178599785974549172697158627414443532148682142653371577812213130644510353517862175786915106332860280026837862794380344017456443244429512707472981225538370249308995970687004206756421328014235149778876544277072524865654434732203206078717683555004209664282837692145238359047522735881637387055797101710311034468556800383014355747244046842647127123972615359996479351209174095771343827227340983702886423383813070824034474859501140889558627161174595860706574278402807857164551608120034758595588485953280447182249555275774814045153641464751094063640185055304951256354510128826129909554921401842076358776925397502133887647057092685725772586960916339270837649787294218620934856749130935120773345406254530667619593319608176409559872328463168860213827919310251511696572279260270369853794304625042997753864080482127538555192393574146704781176276233114718073388538351480283224902891625052716238037723776236795454986944097240213748456601185625476299060082632610108372562332040248953596536966868860515963745204396936861175702154577177299474225652965506602947174885555641164595263573804272159123236090854150953532836348740080393474208103949409417078685885619932346387768194348303194227607558865542810376010924472672372430723056431985221321916543659157885798575135357435738232045443538491217127614108488008544390534333181872675375848910207864822714635254705422129518503664751087930783860260035036133355663042451854897674364685122445012733262900495360331439894955998879487094973369302191840137570694003863547978324074518749001108844664930886403510964156291616154475742870113889783877070408067032383028476641090409808163640795269880721263541778992757937710937298801210822449115072547709213220212531321812681209246936090950210717905750367903395849151874757660189136632236147322668458644797379340649033772255816403721215496275974771220269237302882154325385146801401134075696800434568772011474219578805607388909496041189999419444803432244198465663105176456033093069127642848290198782842685857212590935862785245691639562248228785006904953560710673309733374348570692973114683178159645622433542052043530243174328242947041112914671476502288813904504813092975279499107295218952858226179941415187043992279342557705810065396189684733595611861599258759656507630961969285220563612587085367695389109229143823944165843479742876253649493749852222482135059967715490982376080163098952894137262245981712876103283862913415585148403276241937963374000836557239485371145753363006035728859803213425553443044237363472404336673155117456207433319099687548166139257579768559693645300877741129342521376596853874380422259626212405001765871790933549996364676524292084912852768987441435563255916146653495112582125396400169189788999465760616287910702547405436145235567357873068659009998563298704533947273245964840471264519777324671077988607538011416515291058289986895359268261252526488833021423487973457565829835034868529888341915736685784408864548906845846297178055650582519323484330674300572902040996547506164147012360528579921246811880952602899879787603566933123965503015211616426702601843845263641002468215963650723841718793993672410062239992423674206327957385872421250078577935356727249774093271494927497821435586722676901036291437251233607049675124576129493393749586382672855394013051673694234199812436094054866665298077152760695816896566839045954753776447364241105823517467309417352997492449240651659762975706984489471389105933629241963972489276841973775486900918435893404731340579028130774876071682408868337277028995588419662678734278004849676717270924924308952803795596830963461453329354729202036606811456894374728049290247065388563717008395879417038622359780580714901199985700319957821497103738475363606661519271849766036640622116277930910858934525852376804976724645236522617185476325625110128201413366029475882767640948751653314609091388777015985003840053829065266035732483116211672158136979738822347177438419343961710073465832553020933700441348491496707750409277985640541962866507338162590136133887288787463752390905128767653638536644369294510971769082616540180866834916123871142793307281645203421751468900151269095026308574325546936769373751822618118769110373910644051872630803695709864404733873537577440397506893103376007767732359105911570064156784125441845756119927437498067799803022144601660041397867958512977064949615350324070020270001174954167599754996981538138190687459327031505816571322383405557856749721476039030730182542869417351876545192878504424784246969810254722435317509509932988378596832216694459405043989908501914815388688470673061030443397854824435314330034756704397726069759220329020958129419516527537095229226794261377268212576834999460828568261529854064362837675047436682340563872412493944376342210003936482756188313551092857308972885584891826666695911272392259202361702458268416689555005987455072639526376366243076007164931270144692219946825717435563653754377732058459623263813680598841246451441268867588557559357392858107821033194902666826732445463284547187291499212593096498954046845281596346444509845238586688232686120773694995290749101436716571261091028675584101738672294608230058664252402875637728300904445718857054303910524499188049112155245876139217787276253383514109558228150085020776904690446895778941022406636250738542701526226730514433014086450098629379004674359172575083108093714449829076911127237001670354320499794475132394230599594681645240596327813618041770506206889890235417278517171842670751746247504329117075908630409998845272749533921331012414273319815257309430451447672181402611670905655279539110718858166064527707206361387479242028939627249289573403325518806482420790943977081929389775979538053794403893725334995096798594064211394071187456678900748216617992011794399169754424381951137879729014314949766519652429288326970939263108011821334904513999583639936318903932650297048829278314559458390221812267752755948508945266440890303612091049191387554155610401490021054892436845576818072395216577495246241529911780159608911607511790008050326239545098666146283202323679273980260128862943002826683370361957428943145868449816247948895694278258901167722647378570134915403887600122656717175117432801036216906524400807616261287686169108315506831921788866138943250573431087503923562011429882098866604342206352635626065232256226764031281375273290968727692488432141964566504415264046182390191839926869234397452451811576454501930110906610198081747343098736394220154378953582587601464912649668776790002566038945108973416060638403230393941414654482211355009686943960577726932318031315845622016516375740395843377737214473141885397943364965808486130778370880932775070768064306402246423898005443894614638976745950738687842578169727781417231421577661384580746406383053404088286868985772120595309093893264332875693999531444564414508483397221026825753994576232892996056434225052085196993237668088513846450376462539231903868357833564701826732279754978281812514375814478428073389935463122265855217830023455287824380459855901750430227726475461774623986580304768279306753138461575529934798750141857225818958308111533139420951325901849507774904059135109007369803249060741266553298505781169804025866775953679705799359765812607740648349418151042575971284073453894633207676039914827702080384644559193591015536173360163645689846283816812515603410810547891269420001466740411819597712821989635496194726377058642422509112367900361085916647891322167231816865580389286678561038823940715824203204511195392999284329330914893789398348592030453906483931028529990927485571557233253360403966923196038921632703122132290928064098678494675275478425266993719478761430721597608414340426928549402983059188541688424198745441481129403970289265276132600587209788700364906450626798118257468566188393008324167315956550891728373197573016567962127607241323086564798920700090735962062318720150501826662123542400389825271334572130532742445972654880089262736498859480949635776933620997834681737400288314047804156572815593032846469529643566597390287881694682434310839107037329269694240243861963872243279464632527250649937159521195368066457058500705944106471377883228888235609320476592260599474051242624863807073554021117725884277797289751025234144652292809523636193662452030178034942774702941838554804064829001302217673722545303963991187850663640158289034626639761665226981895640827798931986035039243865413164796636244654215953000144357436347357720266550556836867908427239540415664238915501729716748753856498181078689433278499073059350589257973421958119347759279561525809823838555874637421870804155164392810375800037690337411646145571542055595515542990841086315822283530173590394450072907996850963607157231561079836592571512205952496277363876118196114535626445809459324312409923870335296375747352871099810264273642237545079573432981980096493595196348036740517114151706982795607523685453480569407718120341165711973278134063285490567193264690108757415974565945935057160528044684326300316891216828367252940939134014091394913558491572984448803429109854095052351509457421447597023044579913899320171336861123652802868003994610191105133904982076385903203795579252369945149257827267024043731044578988757951369691339732420065479314247462900750331634392370719312019248527129222647622187844510998956951246406290461381918708088796066609015477683020228070260188013746391468107690832255812342094843667508415246474978959867562960172418097340385082049451255056422044742905170642652168357207626832339842928158765212349764220363617891635773074040594316010783230858940144925186908961044239308529218993837067937858080834420183086808462947160285831562136822364298423888666411690753771007909896157183494051625219043447463385955189580096269283067563747263173226383083887943374941705907193714211683770245672927452750326061343116607257365618256543581131268923539746298886617680144451353592451592914752367627148978336033267448568934046312448758245346953711082988873881212385457167275085311580441218299450549892130206624238907589626188668533210685504578295497462472845504322383860257915663245401196930035504984435263101976175177590106314177388468091260589657548053393986957643859569466189020782881552671901433792065001162969638993047923904576748677675018587162779032382303413724231750848328120988690998816488501999299367280946507314131895338660258602737518209325933968384565163606134879220776497412050431207030020147058912866036745479227162347764507631538677491322609434855971129424322581139789720004975776771845760105783558857446277720837230895929100953201081457712013785898413722143798762604836724333596829869885889341792751651543185004439000584008375042360940147836362239784732890443521067393697102434146324963482116036016353452126464080222000657276882466401974067153691593648586489061415974915606079593929035540649593177117462330531813742649797082071718931887902113731024293860667943440426978295120778991912443389781406511443504904185225717562783096453339808176287335238470273934464079557534912629688834594995631137376011088561055773488543004265099244414800277387336321894069512484667613315786947965894205508958792773662512964269092423921212308194711108420895696189944638708389037516336707838927506514921945626856986077814779200763664819074743467716420844957350041942356837784374661423538174946190637025847954653288410062811955304397634572020772761394555846556853486875949900497011314025432194634933947151638338675207326364785339004591436361686786622243163959200849300678066441912741761616211967076199718505940395758604548071032036708655507583090256053858465568040727078402009320476477873588529076261213720089372391745605203637970899972161267556575138901411041417716445453365261753595312000796401858893089700818845894039806110434309587082809397241664987977786760036656401945593019879332990509995149768341929495620772493340976756408443733416747603207948676091442779743318863799157263604549583402125737144314308553409745475091921647381456717998862837625792253533341997515102409331018291071816638398587173813153313045180697109242812497265616122969539988932426191462819229017378532109299076087523110862244759205449949797152537255214302483821408592567099756195967483102437912721503669974515888871494994393620392396104042139890090991720349018947416273814804263168960268124585091429956524935302471519192856720866136936579759805040454500879973518054521448871433816611721671115743865986666485214938456173620509810898769137838335850579152691772488966370416312208817409805136250158551866731446377480431842327061253786773666641334565778824951657028899858341055952406397746271716803728002521981931762022748279794191819550421973249330423362898684694220955350849948295402225016981033429027405504445404313623708350884105583718383484003155020221433781936171278407006322253880125048527008097773503943609299378467272509039294952148960235653452659468181310602315292631659419952779772989216668620803110142143095722490205324772356670055207926554967146066983093828048107490262549878839024973250454190720628382419313621595112121764828621011097148797826386652693221455804843452353726794673693197933271807544532025642587286397682712301759590909138261952912602039398102828118683053285856450546651983061748139860304888013545225271066420304285989399483602699543671042229272248006389901954234897977792312900747817791740040712438547445099182091833409700276010753499234001614038370915104690901335772448829441852829306197414312774097279648897086601095502116062197637268992103866194518612249039917011455663551654715295766296711378200324591361298586639522490569753520323877659482737989769139382334253724636426391510383665789190933031067126317842652235950728422187536962369270857428210009777256853818755037081373946479013905550455307724104203511248186919611655201862604075095572858618213985057565301997202136765883691244837911209811674241687133396185499872571393915557923541806632234673078102075753767995634847474693169173511679529095056899578269925452992628162283994867261417381773093321847661863301694717144539717359608511505050807952009089526142746750915728337601865449465813263411936654664112783155745999409515468226965173515068244022069547941370536939043323595551655576036155740980526676473409483752621319620977341898229976925507989592290619361533897228303001615556484080792398222363277452575069169626643727957962814636033961486082422278882863163822956232295606007796762356374168832591237789252822850942428418833153722599808484355526360969344597914259309424311661585473785504890413151535638144575625239284642325711465222835008579163633070560926100196385286210307240842641577013623442257796821049478517124495549235995033872109051242029212598614008862932199725371712783338534352011203588889432175770516218183526416309688396342396199124994251324210961367062589943357336585957338520780611907161248860187307846736281900643047926608691389295061462417295747598923635143716359166195620767414509339547285952159732452908359918412916965387202426263544551689331925148674328381869540070661626429853669575614534271829203040703682898369366930771960920628195174624523331532202212493228856949958270619517209674796984863020038851348822470750086345757422583236007414011008751191244505395285889716225893196806991692038029663293388289629497819563367195963412468647367876469875801081576726908411630681862315734864704799698393941482790629391904731995544200779071848185651807363823169629866016120864530493936234579618616808381864129762032719314719491885238478437205353211050386318973077943969795935260208103727858560925922352312118911632996991827431112823502879362675831818801777217315641248421465701819429439816313872945206509040483639203552276491513524452622331541911010837558416861131922181851715379694143932835680247008966230681793337486574215702991302273442293120333007146886706788583473472240500486846322318988340676486750644078326388097778873360304498425815557228298321378516391216688098300035480564177408500484241089880877019638595160357995690821214439371925109243565708160101118187068261939027880382094597532541461763039067163071678597871063261747840919010956498512990317400984841277923324779524513705497064523022822772180136673406292322505636977186767010405377773660679127933186080049289860655120023604115787809018695204043972872692982900305500293705436398999162583261086200466511445229709961269731691219784869374632025651281729197134109967036471695880692273678389952707978509034896156291207294647220317832833267445362682567057617454093888680207749539673913636733532839980582471412396862107918365049575142301862479191161949158859967596250844911881065591870034187360389732232614789660899760847929774957264345089170104952512484624276932034381043880632454353233172990320969768076360208869598141831181254351308565578348074101781607814889035893649185876335826591887469810564600791587214615510311207351413402326309942386399168412377343386959855083562408847393923074005325602433095897161555111933933040449325180363656510492436787545924885260929561083502683473657138254494809010799339771101851670911832645528202212072773015336556164278350540089455557806098713315148996171517314827540614700804373687779129155919476964602108795263366514605309870990024482745077993288943423377327286097609301066144785366821632116245703822102155462559773284235107099574197805045869830650242676942521193739453675092859773126915903537729594804518622240215448952414889804084023065012425664894945861940924348485656313325496764006377420511132227846024011175376353980002206153369451754135582265698736019976990863800216603305076782824028794071155398030087769614091849092851050431043817207017033465598979569272413120698226589670499718054371777701513199154359560715050467168012852152908452271972290803845509464373410428645352242432496268752141317478781720668517419025971806475799302052023641177587927764644728564956458335800347789393656307570922320680222629132430545398070455909731129048979318891335376433656228999386498522199269120407558272947980018189978564546453966445089877878535464530747490822421257373570974841458128978749563579800130965029240341593769329836623921956760312519854340236155371787839410905986261898660446281410449800447953851517156277999504668193488894801778129009423762779951650568302805266548958508262542093628095932128749560765214490914197337300012970444299426452459755411998987235320002913583208706471041746090077428499274255511305992404270470063688081764326402444524754459832323725250442668311731890478263643565181227860233445670733289221311694686562320342761510690394530200297464464487526706360191685069044424070603295262647745365773982478567082452768720267792107207527490265463147530705858190824966473224027449944918894997559154764510655287624661103110649051932319175847296183147281761106217365552562371098384519578674747438050367559038696241444402886644842710519049485185987782333518360639483011384717159944114543054304164717351419981796545881472148899432861276349592230223557964317625553760323180499769322335749502374106913222123686444905007601204841393805436772153983856791277733198243698122195897968404883039929137243778037274229043122776528761517459906335287061653255650272631018986451691119215315566720333695824407603467930036053891371962806660913925424451703338791204615243992004345396889128569706816426546083704973439529516380187289595434314776764773429513952127913555970827343958460083261427166514052439947734525021159715910845541293520778410971830900919417561357618371627543751840088896580932907481261450623680684884991158430359594575457539662748124030558066284739105687865477117626787165965329288679671792486895910450408440744057687215483384765725039763156439104586338838075564396914596107237308377131506169638381701530721380139663421506127405879983017018684604597346506121872563684818617467928724418024187039072230677655307986475742663312359113471140512603639197015668330745373314003221257606737889847880422521883188460593953850485255286117114535458944857386509695853308804720052609268563414872184018108094545033137530469422628791858101583662762515858572781520506732075256983253117098396804903061687311117244306473785122714227489140490755808801642000037539252541048887141685586596718622563427523482069029837489319917946197645628237500638055591088219112128136096567196264549827643068914888418550436561622278094680680611737201119288873259966619023487907879144923216864435984282271570437657356327722602140284834111081406517604593384416098814809878480030979775195426121613276559898572181083236591103946287203476732252256700393730086146887953425073507850766399523105968544564360150103606903824327723210426301042045885294816999298728078923411750941175528297713167196390625380921380765956727590051193191678222165626138787260008989906338188831215780859567111331635081290520388418409124372840562804894253142809754406205643462863055390657399871752370589418338130199637769665096588941222671060164727804440874213320369188275693059664567275939352671987685321659843179063426178224135179763069913274209806437883259309903622329412880410716682601977547706904614255877322084854327761980218528941543600080203200111858382471010930604180008263794454514172718805739593006104894182532255889712451139224258567159603129032059804380856644397737350078548556994947044868935990758617773781898925354262900081657217260231234951961923358803608031052899970751419644729436946639387426732861688920982580339670073141862853808368680064312816931416289287583137928967371335406587489027721537434308535406813521722756813556951625019064645306915876749977431330255329328137996453765227678409051972544265946799003513641846132924102216146869667341628438024880408636271904823196967849745880750503614300462405891341308850465829126459755473725870118298788568679326527050009305581150027528252274711767590421291966876980393253949640627683261803514145703339405877047035401860716550819363209317362819861434524876926241130634588016533572916844800665845018294811506117901662405721637824650099111583504940310101431743154656025200685370970075488185329836268292040954967154450393924774724544440392978363331543358624807312328473078910377071901087972994599237015722499335055664614511113958040635509388786989311681596903741810086045350477957993184097042072642781284455116684759672054617382090773812636313975776868791169364499108204549147740107730809790459559453938724691060179824155827820773315778038025745188248139887323843273525518454994690481633765234430381584543057361307576062775856466841459688245950921498830959017595009460048670604291033588399323721553809245955348667740307208584600275198940027351618045371068441596253913787356312964339954841712571452750549231245107181294213718271054603511961801798520546903808638519768742088286777097691920512421974433841604035543611561606499195536251031783184116199328744806339060053021194555452136314839270811748591235157719214989193816577498440309168856992876460118668986941449357443950614918108074080493784319086121963943913621489358320911059791635329969000323574353381839533211903763709778545910500645251169322847120993905032541682094926814679456364439772229236105442549378159349038966677281557603071896035517296649624010925725827134628157903747823733945565104191241479471376329182132592242110588167555421639577619943667818991407585693598987780740042716424753123014571147694993362934214670942629751240632337206081470952243737919932245185279462340155920250282785392422297181316952243515414547745683893279031619684573858114528988062118926491126411722119132344204547799291905736251785939636322744874406137182617659442210814232209964340258547923032470775917266919099738412186570094432011382240931649437985040662638691247442678343971794172204911988319080764569786540201500832105171153208249449824389607344368271956306144879395045489404917802566474330627222024310753521953508559219922270540105519151058813383542244524407871699442821548735759177863183083074591659482962355510520050094002039801273585221427972682790668883961607356762046871996608610630867560681573174983844769228210563640943914106573356689252287822122604287416070033906417990146584981044850769992212676017265693328188100011822058092480448396702319686575359179296258254192913940954353040020505703171367707772216563066005405432436373788781875573884133685297854323928788162930392714406682630441238809870093615706734059708988298784770320019865293825674752875803035094400262658146841011617082667551910374196353378732309106881234566208985559242845714904412938769784163741008470982460742539963949707327010611637953231757820744792290042320638712910587504015334968874398900964001688045313963071780394416892535442678473192073276253120071892472488202344758941175644933409204276886498251224911777692811465424778700950639772989889770134670488270574926642432762014392806312807640945406077364864573156777388534802011298556127702517289571184272356132010247897326271599430303193162526757545082629000931885449803911051567158987348461269696064120575691411865441080477969308863725060793989389389785236790387661341980598600485797175046702159976890515763968545153140737252625735776939532743368345740967872947753655942425017983074850328544997760579402274897536392590277154046276514247359927097078561309381630972070688112039584977945940824909411297220291351216764803023905634109524722227377010450144026465258822216638150706269521561955533581621760235425647324690038755549871050297026858040322060205488958022543020184973267546242382926568298672153976721809101020990210985638525754558615837976654517727629064399575580438901265382843813511129845441717841341144345765572557241475524609729531536509176959691006313573279121284408735545104165645422272828114464318880751084029498563336501073898034199271456970308443785112372064239955557422018660283155735316834585920928105830026852443587053829852373589312034994489906625323146730552897761056231003843572256741927106941152895561382479757681887182450755728134080299167438559624585226676579052203369931958731338886925181037889134320322263888770537206550704602616483920664331712510144039625335795145802897889016048899524555454902195853736008582045474529886694062827416772173208962574075270864391886247193588931758769313738924883902067344964315789052513853501652362450224829845440542075221907691832225227903750060503502830049021713164093718124395428055431716898203166565495206837525549375816298844412054490923632587134288921889866017883509914320391004601606563297774226524002404079873349070613166494903772544400442777790663672234141201726100839953553957646389022741631328333745390099768456030075873231506759010879812756613670435826312088721123397471653894466644449041632371644158483303003482866820490693253409821072852406903504649217227276238739335070382617048885678918441514853683557293442616300257297043476432419223367594107271115880103848625268397850605006149889227889977503164415248471449894914256703116845360976622351436636644976889125687725505551785768582863333698952044080898548179908070036411015655354282418508030303455396014092039149209862814807164783832347797303775890341286854987811656039830373867270302391461510758603709115655045361487368553396327536401525766357050585057760198536178001652951681233367194704084093362694816385531603060013457245701473329617431748981613636173646896914262027811086156696943772236404281322856697237657952260996311659946097428656000567199893473094159349784697195153535811074893220615078999830488122167869044810786857862228557119485591157551527053240569772016994114873290118389815658714146200517000777371857622081302094763419514784665561977313916397967932061230184495526390146929400780831663247641605183537768320350099870066469228761079429364431904001112462941051909443002443142288442238124501334906288623436593704271127809765811893243992083329051756053118079271184236563375104771448025775969563196868832154662221703341243324153024202260214268402718516605223961260992646798082696248567340662937869222522434048557828320014725119144814018898569368056894440053623408077423368488299095947805305017669856115323799897791690428992554104316661605335016773240182721289859094912152230516624038806399158942206022328890827622682192201040399252052812807064446001282003253091572812940017681157860009556629415319990774937738502322691473027761207431782902340105621121392376607619770950678846838478255240485774914096989716884898204200111632236477401252369377564892912193298486418408178408584435280127474749582233835850668034972784104895222569105913955504516415158990973041394519718329835115808868889561518737565480183088206809525817600250601071984902770934803237709021621107595602662444536586868143119676893077399351852213357308383038872437380365498197017307969303640479590587660772633417095992144317438562527577683153580413801641300055580335039406404401402765872656464994450201950859426309534638584134753897248220488871283575864946195709775613928791015644263980526631256107368856583255041071873409988156691233590749231576240622423180104928325187338088586577093530968678832856393420683741070976976145931477073967142492483729449594575722569511528169535740844774583513676800873205374707486801088413968872824881069206988335687448843403019794167347701953765761008431451343379313360658355812361557899736564065027948631719740731633904580640531400696027455167213734219113763666770855061897350268094545609971145424786646860596357994390348179532098697649310151231462922967796485029462248769507464742622324272214089495078169757107577038246474306693713794148976420761719985569060510814766680794853456488510880153925066727430057012429401106776303573766207841536460929894094591132749788842275023713874978206707011792555549315374206402402962218847183490550079769575095812539983482921250113422520578039878883396433660012388640064179548472995940669052521548221372890562161108056201566722441981887409050250910760172635703477870704336685510723987883548868587260822366028191834948059630138915942582248692916754823740737049714174358037525919464258400257760612907745579080016664693774380417396698732069312501548250890793613232201802854844003146808492702734171874588503435209082486257665087465811624224640157132810669535010340226282678238204157406343452530348325367869615148223448577999733886454513039450081741671389802415869126236447165868214946679776146780528908688545840707149427334236930681465193418383089449642867625178415208574053466133180092301094444783174051044022741451901538104149552108042700608279597468399785699438005041157076283063754667351312362257799440541131710972774573590431602000071874988825456867286094674738474139573528008580644300124480815547455383911749534040874914170457101673406187781556035606822675065222353159565677499766815771285962240458497202315414153184683365802996610533019081942139726571677056880556617259065118584794040582652563133459103118689682350993672690798863810927619940203408119075718150392578357933365147823737017206803701743585180828786671545254357886599228431839571202316804934513928350649567447149655106322467864419586504428820497934738136891754093371456388432172008391922223973044921694874549129750993980184252531488560467684376002104891358328920700388212951435865567618695053790337650818197312827327537315676418428578354988737387591924921531282359822505080486290884515405982853986437953766134205458924287332664163158477665074023702708618511788341602100383198696831258683572457622280652302067484551124667197990815110048112393394863014929303777437468091975429798203828091113584590402039809428047921958197904962847587891325497776728465627420774311672290130756659716422794948061444233498274623575736186038309128026588202602158727097882210601755654937986847939039292404780083414947052216632307455562917819070094616725369170007431558052909651932776806743632475031047456710556947998001054033425427461891029839100037274085227743054285167432365867233373132282273421351652007486804168706577096658583170598089710984687663054007680626393962044631379721844635850217123466250421818618656674020220632503574614285056820983061686732668604941429019266050877015234795196720736578196021663416141690249794343728841601564935375676317008865103563506043776267795630172839903892293171952634704532989046952171269755140852418047956115375329584933443865254020291703095487107019151962290513619266308892871526735816897817591160837512810215416767350971831522868680566539240771082912344053699166365674236974865222567319322191216836404051695947428470667343743378377595103833414643620090707317112795394942007656106862796630539756860007115085129894476176366322001758467501359835528329106872016076276931264081095425582227057627277722392369201432934618641711579191636681832615803537066034225938611315418909099413576372378741225434803080797307863553963278939299878279651630825182464198769736662044181098471169819296590296024393590213986905018452774519028965459966646501147438105172610584300601978108901688270987259331734173751269863016881927080752999653455845134652055789770727454081381255407141634757960456595715590720061546276969483867305260062593787177207604141364922955865024377122105019817941906822881789674114402403591607719530893264618641916054142074259069488726911309285227887583500297443086874719229660456520320074901974932031160245631271782285150452878578016308748941399174174603465415983555722800783963673190168085168935695383285104421370051254082952697949323855651259673769534965264143536643413689462001228322639096663760424400031102287674131061158331395844956857386210969943402304511760795718274011506327095943109513250755661776301553457224198769989956626419476038187373161548158057653602771241211767367373522114155043405211528079845837326546841990759700760260073367806155765146897169686894554341249298022999795112902909247423656553579497436340681154945820938304854272582537630368017620514667721260745395947711741939980398434853039815736694461307531718329571873598339628519908818710158782065273327715646940436726469700419635677387966970224085287168346691081048702790877607631673033195998614793239664482949709985057548773668834725444628749457879359233902105884596770291484271955641322672783185170128396996273005745229072530747502170565916887701470948272242281576318108724457318630464753268289072536425708737129587729262631567765205923398930855446050811912459342561105320455050652508745503529071615023037369473008720036214100640717936500997050781002314041971601325788115729765457024925565088996041124541772662658551642603436089427570644732745824244628847253764538598585227422289243475836390484825238503327849089498000201776383901430509098705881781552503666271638001395937379159630061234823265956361840747565339807510941461755405235723259539005285994261429949115361493445852482717298708738318165279336425069919286736922819472636478264409337089921016904658709823752162338404792358887904262327891943034483490617571476643670917829436169374387591742162231961640034224584732557971464452117577716405989296758065096803384571681640711741017834422911754875577929777220116815943091733551330812483339666326581754937085998870055828011540066707334710939749119023275781033722840958765953400169283637302712582746268484026814728220421615342986758452189458783834368037269484969670630045069630416982473638026339451454730427280655615445670480199994592621161660872644671386751359672520317217864444835496481977239986399197280149158168495452416537896014192137018914039305973984480568701597278505419682569956683380259385938207819456605950346103597872458391400033440944045473710014849104936252117105707059789918289060027470963729370318347877754379252452889868835962220696642364589860880170828161422595142443734151501287455673926075306136377169491715461360590409718465190621530407867601695516932312975586107010467831819221938771402780963625214531335827718984146608339340639493409340242561157523198463634539064152551763223243034561341481580789570542635557797784083887982139679790577746717582259227577706960512334792129112458671744728504083237680060310689559367031686746600119114887735836047916765664716225478745077733500478170937211729948296606971765995893610658323280985607704621722464747043544906429318151450849700410037030215620370473710936769728129817497905828654941108349821274266849101675494038876832793607745552625138396881073449009759142860447559922059527123101149351363872261369084685952554696367718860836040609398242416036907290258371844888685687034242081341987451558535494642433379768314417425712855401312603079593083773588353378116692626510680977260097035814071413731097321954145590457446325576602602137411776568660528102480576303700961099144038100853816016594548183171209628468608372779970962255865463544257192932230770305288437164895740678475530183638590246729800674049950961716824965699366504210232485662224880891092036608802144235598150122624978572696581680664780688048657414032813172846923067705385296341153440420478302823138965552028333032360040330956952713038974555550760906285332654182742830013759404681153832593218563113511315069590970675329443505247613972036977146269343947075418827248882295702025419809657066107826454071445727405780048857314561495731991942008009611766849893404210901351567294982552637822216429999141648670840214657820186055618374694678921341611254852381459031507472014397980369870807903985515112869468976857706947122375601548923220788271049169931653612387674135627949904408442881168799269653669024116992289693669490072158202916142917869279095408729885264918421243575628251896872026928414459803270541564093472155093256542631725406457974525929378223084581011234432742629507226495575709055963182643708842857434949235999503505658252741162229965801688609175582170908772730826483897571304893862896868306948194852443621436444433731294306435069684565368067778446296405517202232364615677363826621602878474236047896154127089670320650120447105561361180489617840978763026840053740818901247614520080772925269776259403391291801267491393100107445691016038837366024804160538813210253988545829240239356237800192118478728065538825824810102344850105971244158886471422608584836837958416082927869007130777280020192388093902396082776592417801415756386553746443321732085664983185543963287979259816305383763111656054767521425965457664064827152688041808723385413235496904623679878548825172781511697787434518279697296111088174587521585010666182283409095119183568357921835498897700248842859875411140612933702475225045415650530727950936605722891274430822104695923710295640646816257505788899670411786632741778037007932456320495545279295919771903033492176133364835134214738986620983087327481885527640247792327041848515631956886929212413044391781321387177702525367760625317609744940385365798229774854025280466310884646214738955628043353263112006297668536206608829501374439188267290425402420263104130913540416957907937149837704890427996321712096117253267767058036293471656996042150613963671164125878181573018591880111837281307640541001602396268938642176766187020703330215944210727467789995223066994555012502732280725947179073082619272207377548242231598743638577595152024004604366047490168930290695499330557600030046338954960813621684922445271390553768149905957922913398573244466552760196265444923334072042722690674354862842414146856725306475701315208619511127184925941142161193593189782383117362462040299075446122017479818257873034468486501791462336592567200579018327312549909645855939268346791527782945732085654048669747436433315439420112208600465059468948720203120542406121322191311823937359034900243611239307260908429298382133048418885406478778329008377436276300402136314449803628584604130414551651869552045359316347020280848800023012443299992221200159258716414859137310588646469828697864931881273197114563399695504900257180142241462846112551770426883991337444023859202774290812074780011139052952886843850212945984052017903434000553252477529286983730754726992155846890377032256875635555109834406033067059667961547397068062996389494855103780154250077934173744284065570371119377237442850535162043272265710222247388727788538815757063347687944593327198750008459141908964418320450361132220087910048391928519009010823052309252592975589961489907256293918174782656824345720012523535760445093121593503368719609476637324010013693035312377517653283480529456539659352129049297142439108630203057158051130150298786479711239290509613866767176614856003303446444222733312711570075027350418021565401684460102081532730326749155010685722876614389477704049490055484230475247564738651064434140188532351945756412235715805117413375674569095661860951991321183649867861469941583009917929271437244254704377745407377996868779718165025108603432356510664149228361147309972954742555112913040236653549986243173509312023091388649819278512737761155994023917344910857566713822040614519493461234903546947225078978047968113406564217632812394543820174342727418525088311482303572901239684310106759059074574495698800462727750106354501348690208215561448152205824307957953690402258916789527159086869876278570033594031118858132551227467470873682330409671257398772827320829488129076902422994719051150160110626679510224389574959840076984759076014773382622742058556896762702076117769971098939647854171003751263907757956381916048112750519656374388225793347631263055588161587250987657175466853443769897309546081628577291682221709958972570884409063573455653630787414162880081252742900379701902498563482695416306550596348371842325927279762680806438066606480294167794999561679205121167409562322737801182480443363041340927480562072168737174231753678957799532306919863063792812809413132501713368592039469100048288376014290262256975580941458770301057992482354892713972354576953091132537824903448183335842146689096197349017796561412288966778453632188911469683289714781255288849871292729719281787682486889861512661548579512563811461296257761831735282971691643144243352185542874500805690557068406969219513117559147847052278969171986259831821107388985790550421983320280149074343006502530408401297826721195216301296246110855460001940832859829856872995124222373865765406593483504822185195257653497826601077288546399540180568807666894312655588591313239808003556225629292356390655134202043799064184663510964580216467241909747112878013384162206302712666122083777306428903635924334394653018443626956832872060110824024438273103198095310070407981230567428762711624324068440540718492848189286339971645637881651820331102417117283198748418127181344796584520302147672821816355718051914203896801584885231897673135186467390812242441802341967987722170232067387813722359431672417820626668762400777066362686229406562346069472467314940002371009008455742731182030100098651395594436709924729068788172095925366194795542956092297156891450605702681873665175782649388593664430398328273462973254119967793119815167335482971067718461991484861198666440800793544083484460793222223162729453749671793622914667976133409027078886744114110218960703152631736010971456348570344662440450779017992148406769017971357379390884709249974519980962581684287404195009306365487036331473457617513362910160512207149399819760946716112061984189624358006176892507468545566251208846200323539451376936856989728219298663450614069184644534600049218136891485015561719976314995367644641196134292725500020644260736855682112289792347260713810342160963985670414076580358742642738484555641537708723184451373939287433961404047777043043748121041651725311327497808572389349923773681293725671748794971599360111538613767626601091567688906106179432679138294289757331917241501301131306825334373933993158978393926004670531961413031021701477653050997153206992907587520859770199871994084029984944565961089974190655288092416269436619533269067871371082727105105962143205780438721527713365049641684509224142510008384882880998241381982441771402756470374833510949299047020867434417532059392037432787498863700866476632175176084684853652245525590801941806486216773263406556846229576799287185470163017649741808445528647754042013910707438911522301581681126445298604266747119841975198979342896922136972264850239204467526220073951162000061309138727425929901098932356724714818772929238992813505488256116006231263240931242382818823328722698897775242043783592832213850904944260494564239732368842850803519262090038217323435389375661589409687365361766314775791470006494054754565716060474089505121703281728637828390940838249676114639027472643454228909236687582891983702129353787485003450824658439439276251702104424877835656035109337312618154866508640618896407778509185971050276620127838675837251812313318166615763789620464923132450059354495319265531119444417069005574968509642654300286834055046430579095453093244737686892694172191152625385388188001540129918184106467115505217665456216465902470621932332896564501369915387771913064528417356749646458451936299425936970908629417377236513330096688397797230648813769999686468653904514974330087796977929780703400591095428048023119283919417780226144285665918586102164376646440146355756475048216956430123122166409562374821732851002098383705267339996995087723988525665228239659458058507432746149702262600037177520306950219576148895952905128832165456694435301554064452774226093775403573894738770157223339273110733636505116918265460533662698390941409786818579659428168905549401769318330172485362823852333990277542551242499983895761315121504421809290131375100433464965907482211863153765155990861278074321693796549082971567109662917016360983330009735436522239052452384897827799982024641135602609423570596333583551616521058212294582545168355536141699105802208503114361782832050122563527104671177713899022549467755439221833324754859978834711754868039327848649488362792903033559037546798149898896110281541557594793911510137570574565478213819144932850539331354122460861307953259417034903866745911723042003287908794227632797728694502041778329205437139630914787358184691492860207158578130564448061880575947463638175682385835609667460423652281418282505086059000538660485678920858545827188392763206723150870340017375833032637883609280655321934616792499430960877136113735807895997444969070620659002471612729148961048144744288896382985113380142133243531822474823479031932997036656399367607047030127641262216226194959810796190373867014548741562206234002542141054992499536522143172443436044573709695745009017970575542357435331640269735069692450296315031632866244785512727817392669418381537784588935294575668176177477084787153120786736793346299538888231956730817842557286864685094645324987313348976171365092104017411501640402329122025451772186393550127428671498275561969309300082691280290304985532578922956012418784096538709902530390720327722299959908298737952766716096689326726501933550219487723476668067115074700737505096319033724366167425613747078436679178676940778109115160115942827244328417059419944576502489827236592552279713915720294613537845832964441833412796766941258128503718936614838783451629808447194866135180082304627820042511777756684930485141512356502281461896022646342499085570559613409716234554227121651884021984019147841909057557684860147104616218449611073130714385754661410567966421343015225089340481194338750208248318818069876048145380746806248317286029805092626626797381096884793783273776440825718444720900523669658295997677184693930299509568892853705841874890521745501904445726681113179006091588880183889440407495163567920353523100199563326536961789459109619122242809771741806039068262549843246451911178951381292295820644550097100801084980457428260228591072533646689070529247449354829291600460308666572896243818543453452394543099416972696291230116043561947480411204691737184166922431184006655563531178132175334049954771012620327182626148158753689130112759150893158612092016992144757490460818631660482580247307952993645750681323588711389644649276939131310359964606853986202496603072679460131491729411463500827678970530445958881586943632528127681661409235024758411986507376200191299634667039187211218041988390033102435109167201056622052265595340119700358258926329840056926743085470468744986971304015766270517010842430892495331656852461467765970882644702823311185046953112967412987652542439736015352252337164132384644747477074682181650655450873833688326912769066682101742493603599932223801590540884281569071923360512596261259505276204926024589188459347255807880767094624335773533748586839854860267809872572789059838831501610088654671238920504253947217181305458100604593621592707469377079146742111434066982745583467119086313458376313434891972954555230227079534980715429858762019514716065363521317119516030943443086615306258782425909829640565470303357457872978597906866658355711662624404467529229750146493418113488713807754888466578145486995662892421310080787196009706006484667140121496678876624002912478749438351737798450353479353268579915863458069015397033833798149286460141921379220861306848160550163969081057320435560595685844439833156294594690276500379580964776832635279804238231923861477493497718225445879139405807864329254306035492645301290606608042906736538701131338359202051112181379270461769308049633959013548916322580171873402311710204028959123466176512948282931813665691618710227776535293265502398708794460285122282886485211092581119816874650229865056246458286453602726882057577122596860876502602759384944233404419484303339896937311879894065640413426528556057931230466221853848040622745914213626726100307013716798242444749911139415851112150828125663111110446901685594766096714852498028460259716030725852290913193596653496296460941076719636156313004185730133878322175528330380768420038843051671257327143987989388627240560364310488249299401369510525331407181588644755200544787605087677400108057714868786804012239803645683728035608447199129769713248033039727469329433566292651240916656877387089227592288798597361168649805602881007871192287196641152973711651061673346293166022552834414711126011567892232540627091207568100941809373214510372637038227577584941272692337499760167323893266078191192136286116730781772615349338135475301805150929125980475448240078793191006521510846774052968492182280604047081388325760448335102632147144962152372071741374157890806963840833113274985997049762840888208291294130807059244078173076124063059352703465920394088117257263136441335250408612757934613945297711732756867256631782614150207565655032925891886377517208984576693245046361207962758448088254380489761162859505344444354915336887883694669440312368713672053518519967151826345463829981171578788564041928733212950094479830087833470513037998491688193566898306090069422886488255797501831473818587195297364784609622478674991109169801935672038199420774305364078660218079198168685545716937615248477828874918928702034189672774877200744138551142031162406013873454289726631238763487668335768103315174759246761126069316315132037667442820084417171250139891594655048558211010832790769652897733074147678632053302444842233695133822248884644574884894139772332352333259570964882496466032866145153737326195511155969079500391526162959658712988714424057857396059695948756008039981646241219542416038580244327389039587735782795338633220421040093984580012027013852324150544388792146781181423435854902728839191308837766185284694600150822822250102365592422438393385734194472781538539898438184875416119129193428429952002097485407080123689092873783313014413880413343500296814801286549084885869331673585669713606153657640438016148013141903429007913499159840291983916498861162609661947989611131205987772207573015894492921179678119339511825020515463045927897226631893385686312257214824903487514003357119167962304468960383186762504820880638431427108585258929122424401536997095887786668475201961431694429852518054103935933778713764754493926167322407654766900294671269183696694532606101509819183059770392951736346398121521058164177857432122611604330247498392012574874368114420409401322750366590118643845171467770701426970348003560036974901932389674795906258719296570039357537903435867878744974629141291697403187095337187739477561983345527814020298845272088682582293412906309621027269072213037854063398095374228075706864540051597127952108238325921330757093191292648021207924975068814204336099474893184853891273532045958198225505276594424750952923422954252289768121241166557555960330816428294331893489586242316998190061043002952840920697960464082148627801342785423974893010616191510279418370424101623714630158445958539640415958020106099266828521182488550854184084059811021703834472429030054053044616258859497330526761300048053722891321395598202994587887260704283077257045815880062094163232730252740517753444065715676163747276900238475318100620598849448721111050029834562820599973083910431508946638683939709044811720719916934515800794092333267669447866747810125390045054123973944581916761161076476653347229522307310044130928888805620689586664519950878624543794148127491741495181943688806263772584152165802172773739216385262890579811961418786714154017506885672286957929113464743448898127102979349744054139586602997241852674036124525280625948415812094640626179917874825869450699832621515459628275099547591125424354087648673136001084786188267684449366986248690042892494516042288206627012681224964134387422863555396184145391653825569450556601327772187204229954670619520786672002062377791627785612161507682806468475740023038106826136627731544094010844407896570578173320733672091365345171808482913458642580666697150089181857474128018490577140856547840071877799955811523747820403137553646013760151396837668164461142931808296192914196518647582509216547409405631921384418971011126401460900952980539078332257731238452324929388055770142585644226826174528615921239617227647046239832154949602239269548239076048797498318954187425795898395413788070237778062866321668100478271094889121874482209681808076082724667735167524737996904514493396283704704764833545256871901852401590147264311009311577308538209958203914498320452957757331374945157513598569994960463426896606324159726027415255379549966983946508923863963195027090492076373789648537714869265795251995538561689387116068695401474824495691386746221257839116048702424126667710882783856336743047527829880530750354261373119651732016176283136454629139536688201942853287111801790520722918417688221048674225652322058601153854883717053660201591388394471319377243270180061219756214743746581082243458477901245062070662013730005244738032675737891346680726477989164039604391881114188068308118451262983406711826596380364036282305826427600633292282763672618356588358005602169897037674321809105295249615824657883800167303741046524268075514601509085239713296283151595466662338504672551894109569420480644420291278407117023471789097871092119318899347267614285489297233830639260811833797328887194045967783973097409492310341562380979134584328605600631382588272866494330922992107522927825004220467273915500980146645309313536060199217853264141313450735920533842997732528084430632364455164070935438245678110655112636323418410145866094696717668080414509237307138381134110766596828381555249562031970258303894308584504380219374841974255081779639942821837928109617100209727615672830827315177740549710947075918758167093588556725116607607555215926403095249426419074544742767591166069219176740189997450271817069246210664828262013267887142942353791603272028910450264584228310425300350967170962846642400016406090519864339387521878812946275794537597558907833072770294827556115919803173398826412889518275178106780748141538698606512332023275353700436885629145329067062048101011930573957806491353078630479599610191306261344220769224860525318319492287071102264592142963305042283685137626476436442236552280692419839941469333144034669123473142698306829803740893799841005981519638510427975856375013098715447175169974048099414777046246175523616083727147687648269416465425051833103362527343251493926649947728704943094678047698356622968150199964927624833596629043499705006240334300308904502206248243563842989572497002094616462884928826612310774409438260012585316729758995619455342041684938707807988356777512540443492586039138293562476963591598580083464068460948200324649932654473008025202946714182204547723385145103118788930072070238321622998231563769353319850436011040117296235750454944916269308741159944591400029027538965528901867290154375593613042447881227664562853779549533295827105554557147222763915650382951185032203516084108217024723551699687027121730736732236049914059798174896496857806339918419091936744428209109872888793715775844119990860281229844306196313253183179723390803107105518898488582492289235628788358021512031782435736245000907784423088533332300637651545082658995273093866812139421513246064694501620626626251993033915842949514286604214329640881382601113390456931679354725589425848098114798379290050545578016882479504647897534961791964528513412436842096225688959657867587314710904976719700275249221796759555163337609965711796054814586262116866175455866093983294007785423857617457137391992372895082540582167648791181806208269924170210120874443712087607827437738726066645346877626889196212947517632517684581901320724254850596568860801943748496388964861060765579081442684387102110213092142278260559623650994987355611710793751456647745403725043920243644984216208398097835392296452004515301064135103067684674681375218050994877447738795683012860899891147693717569978172815194892414090120592914390939538476482250984527092286179805020512192385214426003659758082738665929697109361649073956008811744577794502138796867938706538522264254945233299916318620103593539957563133774314216585246227577973116046885534831074112354389486797949032530956936542783145604646893204126833398011410587898491712725657629707531009719467874400109813770998308551145149462759050974310466761524121298501468943553931151536885630741704545396859152233863924435922352153001861429912411708112684545309114285618602050831280533343227495358856690518612822654081544453656202336106005163726773434865269474399759928694389716291236948467939281039892466588765179347986102195484422721032588648446827531713846980183666414045864709729176351390726415129263493641916456288862259403504966261029298255115558504792524845596810366704736416307190045005468501729836123889108576418472375562136447492852559662024817711422528621340121288286162054120122271603844653980026064301856594515062334611650230769677966262878875244813733455302316516693380047098798692683018493869569065260728510265102274612503795290345923656004307193364892138556529428068684064944628822554031092170470120665980495125725180046312898578151986868959844132484974760421043153630743233989165967831724191018312941075811480359071208007291983475018043701448865151595219802625334910256548860698999476234376154928043763543613305253565284930734243696962357556667213448481783757381896258655668192277847944260040464056899195281918109755593988448065421526649389556722248203694169989195956502628962977101084022170155686991865053828201833341633144478014785693169325967952859186689530112497970874825552992285640343454848918173881232564795428873621897364360700905367750018787361320464207906957833075933523754764232913293433469503691880828073214973522718798468122084945458262869070908560588522743049369881377786552659936887723466257809668347295572812195155312718939894704123469665704647066022645101945935942038149685291425211336281540202773466562580445321944001014555043711680624449049703083472489889763248080852450214639899188252934296551537309377288341700288434955946561274953497808715440572579697826417162065930588989181161169587246553431423643882238354756904779915821663433786912413048056632541271598032528489479285144040460886529728941390634777817473988723984674703028602190379695394173677076821789079321852338329466584210353053012733906565414471339055397752366252223450277363453917731822442179450268408173543524706766938881680835204286454658061121471628300868145164197532306723167322835727696913828806944465943199041138961254270138019770868106484744996572664687925444147501971493200155671978653073865893343064877365897183250736525608195462378338895323330318926934275269201808934463837381119682760489786755883985706307255047971285104783734175055735897306357454493209366731476885519818182138114179880981722476060663103693713898575335727605190335463671639342901896769883466259134448820188648250015752691259936005181476211617175016610400263871259442738822531915783428653101186298763756365147783874102638792051980436798711567967912470527732373792708650018898012034291787788928351470037431143303009420725213134161327336454508666158333089611406470437246437719666523331746710697747050829074257371262019650978296754866839386888172392437070422328290623139139689982281772566520367510416437962683418380408022545810246823020611027122114771411861265153686938923674252509658019813740470851443864609914412817621260669737888943509673385267760731704638478097349177717034861022274847337150182478475320737201517901936018152882106360834711621844603525385634401244637542666957427767271494683429523147054281874084986721729176656476799837241460118107045723486358427236640313604603203937678498551867730113906515254189713517798013309615203397377065071894789419677156949654850157196231064969566756265586397234329605917157510860746433145497876283073301526186233609658857429961600837203546073118198217436663132515492380028015705304270746844391797570930007999413804886907419448875515080324032340697218565300702880155704630886722321720414895114242581951305802810832341758003859336207075107800972985211310421294808649099796939786216889659922470584612428805889668370624970947555498947577809699566004386844979676777435894567710200276071522768102008394067667494822361134811664462554414933069777884741333614534369912268555206278430877981054132607711062372852815157496001408225114877780417250664925025714132207905656544642453343509986395012733571368142971921916370161868068102412488183856902248744621723811935806831493214660681982921304059963443271957057448655847611308163218549846668376985724600860758338153797733151581747662947837078495218311962808222411126851441979161354416827214293450008116525291450866239347029070567993890493496877270187629877454992162937442418099709401714183425421147508392077308400832469715394301610494423302785723793855229086578051806614661715155774545988950017269174422903960400364256643482441570517081504997360866495925471026073593503073786265174663811550600854962325341184080001048415326648115328416726120171591799202979538154632396176996385439464844955248112034437642453193918032146334664455089099575738630338453106234764411173995659814977368894029332699881193688944445722585269644328427083046551648390838239298923178357655334376897752051146128344145035064083495259696995918906018439474741815780541583811933822279584718466742620889870757018934850201543766735081379669232291704946495663178848470763623666879617616974884784594707927216433971392458706606662938334421940808480718778103177074832959425191354336459575531723555015297411581133348231595178832430805946369837139655179408134791299110373061175547776310050480982277572987303268864238009070393192387097822782495622582092401807541409590100812430976495680527996169531368378681256825037205891022109719479963345855852524708898306713884235118316711424008663311176151598248244995651455002323134441696031467827759089868027778421674765847127074003337159019720029404103983733618216534129452153941951010192193064019821481931243145182063233057614042306952677593070917165415982556426649857703854459848083159441984264402954229232411357428410774134651369835290981526984271951382649463715770638218984202108880861516966935136455932841538966055579220513450866316252047286838285838964310860522361156796328902719028666651688869683287934241126012088064413769257602041825676636588395991697388510038568094630640200310430241788061182846566459210173706898677393504512135651653246152066381808753185758448041705285813898182442939308444222810629559883875686948376738163931818273567050366278125852468533115090823393384808441702330523143942739637283977845606310271367521264326355996963213995263506852650708074162976833310927172330695048819391125888110860932729993731835064782106811414891801249733060259184181195573009904446295857383576293156245634643707572596630435726564118155420831523892428807533655596597002122430774205181355565749942497002348929294436595193236296715185177145846456718444367479512078031976957121981364779232106369802835874944633202068123984607529575109024938603893930229226264043200158474658034333033531995890511326753042365449125930177429423155657157611194144537922322065797728091187989697984966905812146623962580186872746636501448862631509495640919834928224821233308338097240094807511519903430956940506266851441228711621640641614217085480851762698022602987411623719144081564832024737216788515064349270550194377638849656159774029975964862406200412905536144176175163912445447536937716711242975690100001133669899787487293037172481009610960347341808268293152978990567912648115057840026848186558479011094443109433423495880482168616673237605186690888725564839142422218452353825371719207901992384679730654975629397846619232151786916513989248762658655720103832132259714211445058240334012933438931266295289131528072483009196208075375928055427790412999932619233448358826920987599800148683468885326120107291886245174890946326831813115913422961113961153852687925475985854539187186748658559395577604168403988910918251015385206710400545965996773184146733003602767388412827990306757107459453523656813080593640523250172862780092721397014618380830522062079765977650541350517808674252214632787336272303883218939750213011773782265848693852717731753062567892112821307490234194022425329829590800725007047601213345768209860488832825015488791144628280524333537978537849546652630002051148719139059236066061038421369062863553675376084319664141307116312392962533825767898945774071305301124563297898709611541094054087979911584047804943202888557137711765170035837478556621115098170180568940295392371988823134380573950790636649871387693222153172025963621334780880695442043254174017504528956247524818548623370455119283819339623425388496310122116663840563125447620056587123156794551447135705427095699543489809248856740512899203316146881466602817493894077445557616877324255493955069727428308296022572268097437842740493843551975839146560813471687280188847341842012114744754256358482038561475395246276256665892249595440170293752057687999192288076498221541683088317353401647490956331984190363981171100128425067256808858275079043157153853617941433904451130365753901287036296492346118638411558212136446069447129941424214841240192822753733314556427297188975684359473412666977640222308287162027221552530417672423768040991940571869809726166781668227408671595610249441753466604395945318316945283729960769215462395719469701304890825943706764562646485759241549796290206668554782034821889330150582372484298976166620280396290547000183978180029435838285571608345345775653990365114150019590844795114894332458727841123674586197366353981040921599931039928528631225709372777107282009495084462009545514547634632200086904042250335975204054596592260000198832665913005883018303154482803216522938728187939464163701073104443868518998996675764070156982989925329648894766260101225097939707334723420361191009514781908592608745664587663972880726001945339896114992508461126767356000041387853699076580951559370170582509029373117810292444274590220795103527809454938921981726517053175913247972454914731387903511149524175481374231694224261645228462143826862144861802795926804748517865311922344338944570926524075609446576598871512085880589281620310366506359531236298819670508493896323243158236570771047565430079279261674173205540140842147401203523346472787056849899972715955725647662342151189320667944309369184559440683356458076855637245317561350182626281765260373352168711843905761922411979863912939776641573676789270874680220125080455297539074157364892020303967935104513656050795731795609089020716471701888813749215715969356335363281847295825219235057753301513440542442113395566130449358887858712174901747777405606681510866223178981796318983846081272231428470348932970589044435941286847258164814223851806535102673775007327384473635439815895372961113543738230184836833498995885267405869338885955995452543018393170864136327836927188484026042703639460684255772225316630069742572551862648355279443263503816768627337267976726334975098935845819432797310696973487958587500911694048461897579031394191338682775883367549737312658500914002805757260768989233099204549309246040735079097392300318907730454048434801880183300440981305267418308171308938928612694864448090143463018113681891098367890053650484276686934319395380491189176603360991683818769332727589108436330269659207248038912110451803278608756301552574341730799236380444814592314236773703642476718141250052952489480845726690700373585585659530939408037078576061888422603883712771556689066313473164953367031434603423663057637051644370729319866104650856145787755525820991984651154149322547360618048031746055182990632578163595821108732635892213866866315453970298723963320750370513184114532407451833715695966142228181003667399591741530261673466391654506162725757651743519167679284533549986221736025100725285629256704758649107113525392260008174639655995941227281347976791042550812047616413537005015927489935086682592948682827680777624781361620844851409857090799824064369053437963618723682933626125106040257085242484594379692852178939783243483241233067936119262629462346078196633303287074198539995789000960529651490556717693907830170831486234312763949063533461601514682784263300899506136033284232458906807874279693940364207480179612030776450603373504522760996240607663607334797988919344276446385519062453887591047848031647771997566453379345153965356622770717021431125543215714409918452307329927506655359209481174347157103130184393641758435921556842251078105207698566843121661578281434739733325812261250637622544280085473283930858762139109988045951235781460106485554077925940337754605347464598104946734624508400267895012988829024519121449294442131905798293044866372523125079508442388935384804280903415684131378609690220637571112627017735210818909523626538826928277713254847429531270258534129701484572771522857797507032258380700721172754927756733509671118224130557809115185690934185164913965400490028683905855314232548888775029251539506987335779978594979783176417689970889007871056207546973821265884906301749903198555819703990939307725987238364109666102436646240397494330952200724795207334041434036003560651203864104051127832034622291172542818769267655607703208235312682475609371392670803174019389042056995727442200697105580540806299169885364612043481551261746115785717885312120295771625663865839583109120893016274155036376136506883945584679872908870673533457525414378249773807681772814460477870618021538490714641871280468266591294560895733575529189553863686907649649844599600342057634950574441587783431542407592164015999097082621195519750227889861021764072507192373924465506970157447782713498496292178136483307333575527022105596749170469123441325276364212603869710895306936393890783658134801609763685583810288711580164125161041189737028016611194698110703869909697519972825196172675137681898627272144809329928348278228967573788414677648397927516200334558063910761896029543566079059885924471034555840597762719867550154760741555315555462757046023376357370436175360001262869511547473333702890970218591333638992852053364328537909836218826101748004633967131150994672401020123701994410417259902527579115544771140552121164693800298410132871984037447009075176152863321221763252907470546479715225276152644573554592979767677669947629839037797588770486857709244574424147561137471191494795780558844676724048092554873219641834236790007692208609946183922801400986209751883682277178191655069138067273112732438667360919410280355608490761284199387305134388541671479113994144919809782406061977674772052607049650113210067125954511360616069444840017244185158757868618115783789221016501925240330796072820846814596179954639191585207014422925548014936040254500768163224896997429861949783550132998832095467155893833771896386875926406518272904932924160880377249644278753731839049156332528790125259273756834721716915035618997320300019754888847170504117028854307039052398719222882092927992432933028939106525200358517413725108162433755476830163251938495885679970767525877003094021447628397510883297582501214359204478372590642368818272183802820801671650143562823836288382367860874586087115781136445362509589846784163563293250709577987600581688592722252759878439333050919805569061594762170625489616015915395139760332978345561074163949441976471499022771326499525485037398268285050650804647743257138809159472053891491196011108356330804983265460081975790752657150577584584448359595601056465501041510479037967096750983737116862839989241015975493005872202440262156170186352439105420445684089686518585601566749904270244840143341037013530969277121679739148123094719065147679177604477757110778014200334204195329296120559456308524653722668744810975734158367052852187087275879968162458612295107283729755603338711584642210602358375147022850958827792997580422547763971333329051171958521825337344936163396557634376740422419507379186324190955564404651939058587448321242049746509225816713438014910046557531551625668642391996974502772432045766565303538839871718303156086834247379106617857224953257486134353223189020557160294367345759420074635409295713900825685107789394052946270344970352955704141644334703077745692819486699461709261560417374819333429239801633594638230257847982441159588949213246052556649507262517819183345704653552044251528253335864466594928618471580421111337014244385106073747984219143145793942037609045544086220600214659373530830243084154428357537115084123635471248810916520540272702954816026373225885317368760249752207678222955792212097640997529634833842228287809511445422471900461833818004887231246690298720443355500248413099926445601522116653923797332184942103363057858377591090079116729856501829404519184449116928617540820818244216318552563294962816135353871991385872875580102165482036504675815655545702922846304903091055299446306890087544656680816933538718212748037703736569115909845813362890555823874730415426524360874770706354637670252295701183166025423262287896427904293427124745377211683018345189032906278870029886817797302265586388013294692516749144818212645462149634101994928450106386550742792106892216582588195402812767501113354720281987978424687163075919217373163242981618684334665080707533392523295110059342357864440611204433599841921096673399133145642186732992039229929581207366032324253874454565843909127938257306164779599840895015926181296847299068581806058761447131601950190195123031737240107622461883210411263282334695980207615902090310775959991331824835816082630044623035931110330504841825727615006790060384422733582904087383397543098596086008678052863627414266096577888342555265866163584138503411110294901340147924759298334290429657780496795949503603028698010700050100809302530672388172802389219585219741229680232992234874044806186228633129767024049459072519760518723421082484985336094598621546320186218616428839889417874240058990207221433878292567592706071021781586861649519157473032924618070116742491124418534237637087771228215652383792590925137433516683938030981039707714193703906645538088509641643784117523210986666739227612671094954122111676706332433398221729283687260457524301508761845149101631601110487552933655504449989054041252931415764458675893013342851443638998387894872694036931298686711906326746049674891126918118362760723178198051255053477858384003080839947117129170548453453319779732917714762641722058520790969593966452506770824036310649253753478745769362962482850855394671882679691186741662791597517828262902788898164979217837256520050265111743617977610264808387407517023190233108293482934871242386066518784405501233054199597292352793589090530036193341215276951598851115749726595035903185199762964673421966954861631890812491787057572869057706894407427712614781807609370527631872438632169035466523605357941657458587254046708377708647941943010741148118516006367809193611582788577822422438559370726247558598770619607487897648724231922230453776925487577016785132360665225215305822068122234059577315731807211157151782213053480993075277538111143892301654853559186350203476880684974329847738550281342505000068698746851173818875502088988425487816289781735887837452139373296689952670233550802284537865293279411285099660105182796451833926440482633123670514754677949982503824629172077512995045296126487865540963251830780140270470691270788736971961676866482365578547338499608582239491200939884293094696378431045099590932876647855694606782038551103472899463863457913865235228176769067699081603565125691052963914068588074753412451452970417910467174850063692746303641731839656366360957159409843900892362425399759414314015405671025623929080760307231895980878280450229353285575498078613268677404312857842401876748553397903145915377973409302843600935885489188133027962958370055162996315178099944409428495540327322003138258307831379963157074407118685557492828295028415624659273585326531844810316619345995041109713427111784322697167811299598777348089680264715873796477030966112114310724840013739760901924049642267640123910671666092781696050241154598379673380810626775457707889135016406611453747509887585328994786962453239022238868884270528366937861354827885105578373063976162107775071287755856988841735275868423771500303275605646469480747473286243206397878534546475740964607296562569685994923044103603843779112348009065562457234731132118121211442660138009371847694309131849523617290214812394878172251782500169490686003832091549748485970194189302662952124476027641074982575401587075802802050964446849774401905632666176595502394376451114066732765703264482153853472475208283222826326371761786673944409417061529533487729344416768592968476195734580840173927823705756112366622623692652748938499903684199456545040840816955877345924207364469408073603883152302161081072499897534884272598138318155011503159889412373891090715139169711586911218751072267430060742854777955221919236840925796968033708794989742243865867202688036376620594457896887013865429609887920343541115843091020511687844347534822497144207759843810202457602898300236233521235647929197257179036589157894822348210265670024839642910073403857721425506846588333886330838289878071735554044103204242148282850947506756412637737573806287167490911645465597010720829339104713111593152998396458470987947401597174628843003572817235094058458951689174686981860551628023977738313652275654781748807193670703828514129249514499688659038737833472034547605925289219897634951995693082454042878570478913943763682102912303316828409813819626474217894431770954411464525627995986585521712443411735824861836859836744151739306535050757609198189363525319746821568135814201863715978055805673674847405639513964437356157155702477492110101658720949798510046023195281575572792606803237056707948096176547163891315498979817407973321788534029829922377668746219523182538730008162950217511361670414553720590252660705341026820311438951387387077004267465304443232153147154589732675885967060165883806881599090759333017952927624443934410169878194673020332117966387970616465571735694132725186183698282101411226839840728916563621358241033960614361141630657067327989926503507694916555117981511095926094748166021896991512903775317682517265972181758048579579264498874546947393345510306869020871565467222095870548595583222181282771249059522032018935337758380064558193556721255377671707204095286336136554460105728907269492043117873476759076547606825490859771593146177615262397307660622991536383169752451465732296852498653387762889763006601814872424680068042003571645390125494427140384910819169845477942834563647972152978166862528220553207196018438938476428581897017763021972101155788958150179314866953967871337265271059952231686690606275587756049753021309501669934876914379967140137379840444252815624522554079217878308294547464345614662026836492605574617872015752984664860829590396422333587568594736762541643243488031577901908674324874910692527407691510583096536150202706954146702169906488242941677836877564233198981213744143231628124259171351054110890627683109298464797229129195561913364272920872883624632161680785595898759467307538121274844094511974820425178595602345174733482416202110731434239997532112990586340676259336749044358857593166983940387771354986404611152640136191624327188362484120385405638993937857676418578420491417028195443169962499748145658034199686809372356191228685114131158320263122976892629920235556599820709085226711428667880588641558771469982593709161449242227978520260775206822845926012134635768545267591262668711951059692783489536638991235359096951699647015212380317817544351574663841615585768354513755416571820555784125768172902272678841826241943870478191497348682602993618635523305541666808818077308482107800818212561098661610866039463616504993794919267341770474979397536251278351423911722805790910813124434187244402308724628989561480606300451175676849995058325769085738551352852799129462768749263282071065020648171028045734138345736570935031747113731109309188856613127440072263656019918661644777595659071758935694535817178200891367547772545206499477020557249559513095205259082217533717733235995605357208189552681259791044176680621768323436386308557441732668961670311821043694958050482134712106689767718180428078723556170233216354892712959048295777044788159924366837864448970296692288589621017613325481649005664550190191653195677622532147373787258326495629474851677718167337794720104131320163089418964972898716218666223607239991767298262873409989896979939563533405603417083370716239867334465255355644298868096965200388984122098082323286575394050490590289918475083643961731182262307873911046750498663700358873662742234403505907464536004525932978281047075594598199617027889098925090928674558064064453367182511114948946191930460102005694572049493336878346759643223699922106707151896267706635431959196284489567773449006454197377628548002860808084543516467582737871443496476381709758460710659328764840257727853874852577200333555642220230243565865253817441750424113053343231503784754190998546132540230954064681169523473690891924743268586721260066226531916667345773207410046411683531382167573437602016880898687394110361167558056224127128088109807585493901826439797998468861451799804680455881531062123042623300908955445239234462420620796908052561747987499922427701795012417737670262094745958649339503150455420228596405809622494416995131777899939337096470704732975380091844717400302131758373026095454405016156780853334972438938495485495613096889220071677534598045644192636188963529257611005573233948586265359890468236515463065889190453169886458691832024529933192185203920568682027008835961874855629669760105064204602199817819646279519282413724236223269666234875027445778809117358369955719338512783874861674120494330191638261214582625523696332694494651404460949599776599109156594711537869588226118430915985067286447820708205254431262132387344195745550148922242144838932425904026438518844497236951210328109043287463377568205418196177237836352788364407691990357394534226043555797154744261716272974188605925058295502769667564195362994536653033992672827807224662662107392710297398355073219730409436420463368740223754488537945861695497893487395701844428767818624505193477416103207625339979666393912514631077457782793917593793816190474195240237930875901568047485373921081891532179465406251911888495152663430860149219720521553453805380838082127983271331974444963536431356628133515389436757302124339835451561462179377203143697614417043693279995811439235539976787557730216791710472921687492295280244921281059078112867215649602875640071193149725241012815935792288801596496399346433319110355360074211881587353317600533654815827658618799258511261300056449075274634680639263619759098713361558097078119162701553874208430363929245025630347211493268129664443658009345342839512012217057987166189100429067286349131020677720306133820153986925295095892806460927027647467470325502902535039270930741552892369976524954730294157059218033677419760165100059767167985724230206499596472040714448482865568341714814657467814537846173949645607060053627887422150048603595046511528278698431276403871211711098146188140458530831092441814854362892236593942000448575087127894213044766200886890174492957144566590393434175883251614006225328710068002020770012788472330527773546810139027054359451129707723489691940042410925120565585186048610294537117962385929225450428082538758382780226736510579226424375272186698678474503467302146952738901722737997245908696080322320226757406492977499138341624387598248451422233828123902546438986917166395735123347982207507387515259630108393954002471909106469075661522773977856152444963170761137209792031764824342500352775254205371951702602785221628655287408192292043575422196535635283056436044133506938693807644152547173869462407944985771660188998216018406736997014876848568688636934954705528623082432679491598491317426806681736802454383270265585118283579313781996179226440537287080352702351059404418246715896928015085567582398132025295925009407930070396167946107091599408339730363268441393893259596000599026645440708659215905574274766531629863987012859247359216359891348091892076947313272036165650850215268562171439858551380069029834734724386317987211288949792872309289259652885070348965990725654679449136488049080294438935682630491596852443304636665262003561990306297739193777062742896459842799263085889893937491957712442677156039504010348373660578637574799778409601287482364570353178119499173632326464310585751017649640118316586300314745357198303258290058589219063821322800156303377974158472886658125812218382957198781200633005543178148289780035351369236258215018027261756359996045123744206770531861184178371636528061020233322097127301264611875128748750907356518964311054864018331565450167949872003067942364703148743765237864489859641913135514188641734013449565742109725848727959956953324048668476310461294010706864372095113042824386697158781099324116191183054996435377307553653268227154670155666834865934566852409320221445836259697199495119077908174393375463581780311865570324890720782299168277664821783411230723759774043255757300613050190753837772404960565583176918490556279417794922652085184754939946522105459638074184214846567077991402518937145887233710566986709054371162670245665422420964728097501420911587503446576523699055681782516407680741036518569870310407030871810809066754802642167679235505199667413422580561965369794056127535144343023511394845146985877485769235514278182975170230494458040404835187673043833327965899709626974558948105329011725996968809972403023168153667000597620023483828723418821843795407746418060755898295760231434787252627112277093397342389025224637880632424677322773052698713213532413240131572121479383159285221236075229812622810100434203660560909798346346604053124616634732318011743060635365377921879683262460780338751872209338177989038896804076657664939755557756292414195856989594747020335676187425595692767305994488038797210690758163558038911685799919452796885580635089015497639574700118977704674053183394832889504813514277108112190425288580171916319002572462870725045670806474701082849828563424126791429215181535072896086448392242064408541469924926194792344301928750559559943789401733876028800591133511299637702222571092354282798490498972563927653729898513488040472491420035245822558526572101666200811612851085643775700300673107979624634134974812571130713691643133959258251204862842018216073006609539831651626427513879042162145571624438483557584100345949479769005303768762719215410049256647685824491613623459145357564774603787894012233239049400078208247066604031512683161998275429011812238632890094791225758540073264857005524035817941253219432587377057169038520219509447391935478401779128738660841516075573221763175799445344373070590531787458854724575478014414076969740428098088359101361977329558508641157997813682159939449816670190884847738103557349006938302869283677123514218694023058448186053833159716439541179840899381768357099929222654235770913648472713871964911216534764123869393518644426960462016272053556224657876810684218916641000560748782765741473375194145103752732125828385504644016606432547662598600876895657807458765567471960258909028962415304763055992458910175859347107560382366609815734642774705029962727772091822291897869311933671745579547051757646898922246193802651077964886802663369481866092343881822325799557281224339204450139700235145960553332801076927341666105300160868317293205159893505578148073079923470871092769395827340562165656111716882376502158376881795643060857149180389984445569397947766230611588034219432187033421177683484409728055348111806612572146814230410924133957031389208281634751619626181086527718646345269811988758258666867286223341119897751643109538812031960700929780886202471418169625986614191515544342619269318246095521381862935337879805750263159474582409923055528974980172720603451294435656599866797353103049928375452453498524276713823880809862036149155826361604976334344517463865968041106519340282914483726050747740839941092676173987019977095163991233134298031644204607651814319843268517061319779940935517096035217868256120441021513794234657871063436350937687292908853310303201658100570784648055404522190459480040601891594756075964464782550812347056108138772330341193737854914479291806826591207796377886922696600456204548872473834481576802999937079903784302423312554193618391222825618522364894168337005627291687820163364551705871329346645604005428304299151117310463638532141303237565672770009952425844251547187852976882555143393699812841178136750942854186916421300260598029836936812534904794852738423384500927274577586800162111602828464961434741322139328788121965174799211032524939031548019182114525989157393236016454565852747951053361549455897126107127318818556016907325544159110922863704080454250853312710609903622722062798017582438517361452531358395563874471037782596810926998083968238513904236632779535386047373329082457256101133304494303871655352334389234398383060365103485690447120934083103156542644193230389375086794490075100006107416591777933319404103434033321844866841225180287420077101144375130449475330800801023291724129834709314884596514129157611815128378907342144744440009335097256006534777729411614504420534085589135755357520375437061891802090278197810919647320718139427494274209338911993017488457596844448974044732761451203977394285387305195598432019856292837495368503134891459310834276600361669261989480602876434760241829676052053125818615530824731121673252674709291526835622850491318700065457688047238566909249769600328130042008816223870826618802900535259364140308953801780116393849252083335883180127615402491888563922432815508624723616483490682076100906275415781512501495385161543357604568891709773364901450846333746479891957400803677707506500090751762514823685018330957809513218145142200984281132131207558176722731150882128815246941180543566557991635903095173768487005934763138864374923013302318384633422929714728610457441003742969335378420795587067745386413451923116177125757938720417924213764701140774973511235640405642250628454510980124982632223914571758892589468428927829076901098411522757679756194582924946212449982634269770483905436159619267518462647923527261280085026464097112497739147111151999058613722539957287232227405543801842355377863688146136307308146071052981372108459269637596638164560604396100066699629298558111240967393831283561777466028741945028132440536230432350307264475117869315365021296920971218874667906643371440526340826688827897495329543321082034811498968690094953724227750969836876614675426935743094737947983295916410769431511914564483928985072935051708095594704261586769621334830055625553092682509499672176985294912961983613924665045903899824511532498565516706070590126253471460349594044839490128036338839591169568632214268270102629236718630421230069151952053664714621462262328030701773754597883013324624282362089756727350372378764840613509746907682531338324984022708946932701485102535210207404342597693230161922796512658559508264209182937337268057738485373599374547660418904309979770968053572558019068022354434424609280882346288942886116340122377737256788698626349887211537700180819718945207517754777388500544010883082199418617536396077404405285830051502490355024627020328219951513603284266428360574550229238858725732486146446587707044535779887173746575695248577232758118712102100764913619620693149350875518498324290789487248634974351610073521847549237908538648210345752382468450786771537600079705700097668003128274080571334414199104944275251540075950687447537986830185210556977801448586049685791548616682510427346858688704683573909930564455723557283139623255183570573838942642312672003209807344893884179049956079145214055835031453910381903679525297525655508639197532047251264523265982525026605695539253098566800607171072890054776918792887499599279175812811810168693589895458986018612896239998151669441167995839045490864040871514136644036784394315536538289162022683719297345699315263607089374011762644666391637182307893761540652131873972119959341695156303034329109768571414513330779722346862892907033456201250651273473420901727773393424104939779851728093893446817614929913559923662577216619187273707591022100644926292765281988070822651525437198648815199734218326449951350078104340697773083735261422026095700265792839768988306036810789797516612332101648297984641644796394615627857376998903592137390371060134887808647816857526980235143008546842370528151274104767170742850482162342046200389069390347606843426496836201888975346442889927999875421933119088172854517721002685958678517530755480149132062970726083965719949982194609678751073089108931947415844085238665016408301444192139975354918687746921500344009220543595153811010686668029317892342854024374805593050083272132549300187608893275201861245381714190837340400664572957946964791700984334673138654380070621837324535464016113069705722146691138031141033992859871867251197672506788433243607758200219661398835359808377830216286011947832262422503851161327626110946573892404093304155411728640793137270950464361331209337470605584730676408703142719350500430819606586784172189963339213513150269320948466790953772509377039832955910960372742343861232642753984789838634195459634099852634407049275153110502739959030685127023081510232735074317801959313786559208918206347101439368434698056901679116543887584633934760527803111260453023743375257791095454070325112545136153971980780959695253765049498684849665151773215502665632998737732808405680829194287357130713989953954037174204182552285215809827413501826454412366226978762840855007204207776609144025164120864529290694028086817316449230372553264985105312775397008886316666259316034174507888420439403291057535438510442909344958655176333238392534377406574073803504589686789521350349715370092387902400955203610176564108898762849796324705718253822940582749348762082925723783757503425281209175875573868057345245159216653896066804914302221372275839288475082955604530416780984917147755826488743552235925113116107023380329729907122650724183057456795810540005161042678743001016322438355488036546874048441142828344231530301656690293392267877078119389583331145494274613283961153376464623200503829637867775261944288160309072224546608578809813980425228405677284888956165457875655874679148568992764226704054595372973318321013638274327393140955234017308148295989623613863166993191518501012324382203985003567234949342624661126007158253302224243559856001948820768291304943431630878872585199899673524094746281915327673178623165294337365770999336845161228339318427315180620200284322404711349269363713600001280108665198540963973167232566140279139748504691411730834495619511969405074336376307061810858966002608420014459585502879548126507124116517079531331222288924882007188675075178186610490696716945771508311956593956430359596333419742439253487753236221240090943539979163515212392251858916872729325625940086351896552233897037133074455447235578709277779132174488504542837597775488531377563154997526113474614042029056568516516135415923652246846019949555368743350386263562890109492593686390754363095062816235640113755370764127198680642533025668881872159323214646390551595729007630705214812460215553911569152122782524559741709244806603043407694256865603454063213702740787013028528783433793595148050261705752726365624846297986530050903406518128048739096385258246411693935998117893226651184774405019613705034661052600095820301741961056398009733304343702285116086223699728722585423727935006004791364533739593506386941140854769735090942370479376514768568089951630706384549299090736763947883269813000209068107070860659098891696053485826713194761274698089575653974624050265515468907479576134777695564748901436137272539191285126222732745274085586446919031205062492688006376690083520396524084184242837958310374520922332080621995182809897130985975328408376040005595972743433353828846758789619272886943125131072140320900891020681633482016200891439596730950322034440300646431325400786068094958389187938596060357543693693622960028867921792382626667812458107617094933057178795648417087143230405121602841080044487557178923017389740384126224167596516560598550404279948884779367551750884167533632548452072981464180374409856440201250186948176384270322620911543663837699777544284414835554322941191908188697648695209988242341647292189983118571432713357344306379271779091523939801917157132569299765442320482343691287676908558124769148045430927515583890218020590490965946815388317098281805326993018812780141427418563882729809751815854757362906369091833745877125086976792191152247480316747343227924701130972952971502553895451557016539375400409100962429658584514259272101863522125351230778422684864096084246731627857372043351231984827367030371384425037910430413139642083742923350361411712013345324377768911761880270678629479502299212209494085783146700914076747255342161741592153352251010422555573783786022982206490857786136920686691285486653538281285929932201379361203217087395806035672569189381445159394574335930167356482766312184452767722641429995130859741041450617160226112141594051347552966329478870420308986592547559854025960703416514088646342597495079306116079727537384278906993245973009559920893201548627530695389613906874295749937210213091197812454948105841215879017169150699737912325439754648754084674382949825036320296514002527562542241220846311267441633206904328645592096529636648308934356258883756059353348298004300167013707781908644281754463722607334644842855012257911441324655485171121672988558129796471336818389178858949268726776544463175035158185833122031896662322014097592624297486470173614406623679241574651558404005374176786876331400609424643722245824449945158663089244363971578143782763394662939987415396982685487659972499802749297047710230227895522078028202439869773252689053129175824784046444240290837651522114382073362420758340996006271497892003722351945650287052348778253453141277349104950825917612747203414327105976976484872531280376556858523715923932490245385407937824135009687182025528017411995242649557858922995272035765616408741682978576501745922735516887185690027108544055324823336101712711419748700699916667270221247338392764417104255921519921246600983607520423597113044082726553465720024361645774690363055757375064674585822199544886343865032117601515823270570714438644127835749310064211975294857004146250710798106945181410791835776911597573520297528689234704955937091130592481437542219267569465319933431056325890982172682796458593879144924505234660899453366940292297561548439625698420891491282975627759295173775061140831034029748723064882234948792464970120014717504346297553676279512879705867373139780568693412242708974526159041343847653170597505259593936326446037946300842508022151589152571266650684374590979042959897988235825939081223415243876088406473668036821131411686983247118292569556119046058979784479778095030293898990552133951280003561669252513379241368469367741531208763629321532009725365628035442024898827350826908980260612810628981467153592034459817815053938209183657476332905093527950420191938083926112034253052044647073812246528440735716430381962561149641976982642067589725537095580960045141736679346023344511445028137126875437379763342298175270691805244741806768367425446757424756407295374895848877034363889206888409861514109963244850324941581271662980571430502525556138586911310471087963100275305000916107416654073153659019541576656186328493226805256552598171535639488423164759006348839698426344563411756683230611358161081126470782551981849650605744243750939599785116490990038082256300549847825550995326845706762889547925123317842351424958324916237383034934097799759975937410213873268130099334665281260559781524315013044088662161783154667647440604456692709353896728081597697567230735324595677934571608661996514865855794324806118173714864546611980479049991569086418467287336449227918558051546108765068199742681865114930268468280124482526544348407279057943379894613817287719816390768369013971403949063905537059400938654980852191197402112119494784898832754526583924249036782614257060611994527133786573226067647452462736084476827556866902728975167179731125823317689548887745857895579654095420606578749194514061906065346982822024406773756268522983337815588433230300127779806875987024681544621374482534681103876902885290681784769048264084788154460511572721618191528252431948946599787123471023675684728407344212535375942107874415254375386480351535094915870380708835715419102860024096269026061197201629333129427660148132412796168980659583938344633924840126354055375096111325576648196829121856390887122696979029701533977348231520582072960997645925291392665467816955892340453179899802660363596269606805427893805282876311452132620367874618859916804636778038633327972421944343850386087518906606022212344272795408326829283428178703294193372713676580960965290304639536053258225932985644491297475074271878353656290814643720870246300156941272679359043275475864604369850902998568811024299533860139219130449231513520326245938123601195173017509272146282377138472337925150632695270580576134054146811519387507698528668069621043247358972147456516840399672835299380233350829852015839505526276012238457517157561106739334628204325218565414735268421226173075646525218833953836559321791646865676825916816606109801036069553736612427176862123706849860116761897119313423441454571985054491101828942384755930591128567419287430237560080288445088862358188177454744856765489126556243908030216971971142885168664298017516671947046373809113760071540254072040083379926317009823486967747209552280423301829181477706069879492571428030715490575348736853711431632090354542520073070534314851879104491350911733324412499630414216725382645044161690727886060015937845705794999788633280432705310488962841052801081912597479852195007125346700810172475742783935561011718716512203189861798174209775014231890285080762309084360865039996751311359394552851503269860754603901144770367191421208933254327463320414136158455913472072732373843338303471576000034951281803854668274406466745254835172635530129192482042481261938585098106787288194053141948343437442277803184984273977489508954366496475478465549740439950519309620323016439641363851432519132486560653381140964174357203255000799931254180833857873497506200042092258871909033696615277623169055683383973323072538220791233257846043994715584298234233830375782650500348658533224539960527654243229554321530745873388307527425259455523680162861547470475473003081819922954163598525408713966449421649226296150725051926338935157540046485433521369566082867169056422969668515963560476087463448809852176405206405528624930230940127375726482399532228642771833006523182297061970642616597124153650159867305785239702869143607492235837463853838269992894799211734500596917134905028667902762450823664401921980416244964398555753278149627701649717369470029833358828413056655939464409890736009831567664362903786392384066064125234639839579403990579393305807050438739837188715464823406664222902547398674920520381984153751600923672745609361476322615102482179169731113224706877284719462538144781105701308242181197808437407891783432859819328619760423673930727830801587002149418883184799277280298735737774346229374483978249896545554245741703851633833559354899065725925818544171886862688473794405601097758324037546146171195043962733254416452400523618308825876006991322024384198682236815243365052759861154974462176058167759377710853627172172072552849799046197200619356610195759027526932538075694638455700150091490338669970298753267665086136003476061780687021603213014335573545111299863488226302196834679387922642600514655812882880943472969544815321420100904694252196153004242617546827486581518876339960046567388395962798818701509872679393078770487629219225783655407451112444140785747503462371486174590364257318446018546615884345401305391338545316763398079431200629727464463024449306136689974853663549222281569409274742988500399122978563839597019365465298805148407469891779853661103207351301421206018549604895516494508025869752169196761363849626689343970697060667708719235142246172991685134938962792461917311074025037313950852962507767300740295754379260880415494095592190583742093436425432712570913525864799173614634370236880831809204447642530940974353251159866598943604977199784901901488842329336990241513182802219872057542072253391200447261678179238967955510406740354819923998739938334352160938890005132272069396658315320167531684587298083731308955906441854459620479706140087194856980322722311538417641572998983948682847284552325533195851398276534888942433027795904092037746813738895040115723588433315516204430122751066456005114847422574114720197350457886653297018285326736192587099727165727996025275070303581427141909951884233436487920515361920660651494329384619664180297788615665898648957771257030596825065114996278174261330092953772680688317997211230537471479471886199490319829215533557950892581101295393475077274680748885076999858795477786084643145857929583689549967539990258419900189486247439610545815400982622695876636605696938101151858396384862975966993757610855041195343780831851428892326022857879742220707248052575983855518017332812242903791949601084274303375063649677542788734013626206982071594518461182117931536233486530042002375465749700416947502498032452085251076959568506731930940883345400493148833197011345679766323565252024834581341375611109048307243814786555577984037783912876594837731276808764462634460836984747640832730404332245382934585346519053464155187906800469745680017995052469477582510189963580253715183468021798022486138097507928211276460289503256158169536576159433569918972337023579763132683175193407205789302237929750886770817026028488038379009567638196532158865968734617386942423883378288717765178897184514887468198767446285992830164579338127548968955361490387181541482489156393260006084834981095564549041208417454105705127192228107804559938320516625735014210483454845289170130045629848127418895755678950429750099399511954345079813457313483439497064707650288444695216758644427436262840012199808494242077998421287410821307208669924001294312925464637569524345176699184394956650678248680729359698015383739386533082874549089813504310820334376593019299567665012147023248304328383646816737338577768177645925264959157430114161548860730578520922980153962799936901789801720260308949079839166739477481464146757842508200208499904202309231111039179069997074123068873166779042033838336273187462404621910565416227571357192424168007219768972749327514842172657570884577173938481992788211151725511399066153378555522322086901195906207465883049480306285360502901323651304975446593895367109507190462654462406742889446879304739033389309555119338252371699386216858235480736909624190197027396905500510593565964651297291478838110272868907509658157974499148580450905599576678398762259100961787845067374274881559306970459745694675530293621931325210280604855715789121397910567884337869004989655529512759863616336531424174734312314860149625632173614789430346252748637516075979619296107983959810037883667976553992964464519965306549595050200139406419811526466743164906177742233260589040616565077272601113895348229517213616074102579170506475083300251624585532423984746783055468421401901535302134138583714839031389195568818630296351521817343377659572338322325636104331457033829098888882555319339258571568846298726157605022544033709533029748659897153361167470286806070032536998744097724415929402965187383470285225669895436018064947693452559616349022769556143716287957524159227989062263871693939549173717156179249824139647972833427048079696754776310226705139252812664425386592026680662840338071340597558434501019763666523498023231816519916170982220554002344009579495004842021020968884440789302927937319420988724019244286777229881772314531727202467312561184316201217161852125157725675704298677813981532567358474042190691595708356976214063246100414814382896377406503588733584708497368224214669277199002729694444169171092642356122762742197213635431598209603620409445946840263462143269438664235757044288555037749185004053075837761760471063143141565655816646873291111579251040756778486832401784204205856871025468672637990548200631885123283869175027687734593852979827862423061290899305041203360030831247675259887856638229216063907809185766860164118762963138967472757512877226382721678700318623665478213966459219528261289092060491345832500750968910982657611649148311317271526807750603439042470489766058649799882120802978545395281541700031042095641000243990508126642888979535352449909041404856547778892071814999532308871834606265013591509799736256561067236827152239755814103912797376752467849848927405486387959089657781391210788534320459800791989103913974654043851395936160942180702724041238821226060251203397304058754757769203039145238678200859870155138529160477250288976541725021870941780958097369682423108120768386007487592908334808195659633694965615713433302620690167974203270916967606052678995767528248339429096484472455262659277694604657069297752235444239103805627343176661856486416974353488224896325888073790562304344651564322486268048508314453061147019386974672428137882440148790632688309581412729346288466950687602889568174837840227885089443503994943403880904808485026979421830595084088607419986679869756815171405465949882081616276692342042471427400633922863901799971152728825658613276328549707497771895310187761387091187689368222778556092873729024898470784183178592206910953785687380546041465878877182028388351494535524651101734857363278959715818898095213649713247973338939625388040667467712479174242036306174857885359015556211884616269286474385294386918531686799195422772560574774721314134027893235851941737901605728898357261506898628237804343964315357538057829482612610502482882220563483705174357414749654249365796355448321303506360059093655946677908553633791073233192360667922398817445671741002733622265289998320651506145087165940091436693572569407411840665961649252077745551041116472070882764097378976937350123438525507796640621393085984698314809025296278243457913950307923937616285998861187665656168753655678210401270816826320780864506317635665624902740170668984178880492510001199941420255018267903454055194456096170116738569993490760263331044178942286079524132760717211044312353560670076228163920243935288971615360585240451087683400306690280522930913204368628582232180840091428589271138945615717535378489571826005434277260040940593919426141581771213999323624659162025144406406254741456337552126495932740685952371057032546466725583961818676498957147246470388479752095551152389558904229219882866418345238329956606862454920948519696328316377639124169828638215661761331081095254320179900530135553433968232360889100705226681285800990227154175434198626212329924199769814003791889748435435533559630011997626504436940211411713810522674150743693707540479084334334590242939603570397537110619053109224312780392153820264831720367936978132592262950702942247982250060518015522785283796408209347152551281247465919852598828030302443412100213250252389076343121218748394511390428756865366347511491054524217863067976030798831443793406552604867640976465762407422677461712843117367850199528764138486677712208175065359616575026217464156258739014270722309651797273441054872576251192992636045704866419702192355461132738233233430113042943284359132768936375368107577446395221484963497139987619721520483557886421232034644010206763554064064943785738308350691875951471400001523783743593275449669397961094720692617099398876754639299252808105493164860444093824694411315562047171459417603924688596462759281911629088222260060665177377933820893117044429366615912269012544605091296140724894577624493028429431769196145436434747012574410286336034997641008905563330480897944261531187168293696113428860081867930797815634851900780342272874430759048728029866326839285631685079727064313092544464396188089253004677938197387838577559338626970168545162423911139103080790900194151725464576990375330787449423672794028905127005619047228165246121487351145747184700366324804644202174349867061685283831225378530575303388143295707436224327154568716755310337097096168076386950742679553126516816273645819279412219337149450674826773688744489991206808363067489505684071177783076859764219522676135149141074169605617725180287140983277698996901336446289441700251038555878787651766719358634962647192473256857459512807163177290273039162314058978054647891098220745326118041832226982732072546309362613465571726132301841596275986135262849122610424302709036803565707802070395050504388057508766348112662033667410929588839922252141959201239352032229838235833202479477925229058483870965480564616199620357077462710153922800633916471671899636413500151403351379726324959536459882224729031880622368492126293079723240619241717574285699863350457968453902035940969315844312364486783194891125505519418869938385937768218581879219642365478462292610063489157844970336310240223333964214492852102456410885629369446814740437766115638030766588494146295581545741118268107408440606654409326040564226708441715158367958413662653505667587701462959931341242665447660425401889302301379686871260426907116766178493032571806868438540973888148727390568099108754832515538475499946923061169190391499122534143263225070956590990480098651259996640924845256211487706588731664619728262740977969948973663844964614156396733761316495051397564224201248940875507687289221343804796085072771585418012092022429413377223643133170067578130989352294370776021999649466855536550392616851081269342344882671832154232545926048410155986632567906354826749633378209936363442722870768529270226916590393582363004218089459665642073264311955661336039363484854550367724550697814136052379107074075410497235464351696207417341686408254135028866575871447155718158712271371860857205627195992035049926729564004915199213552207923728784496284161262887324418776153738840633723775051008855193855736796218345158421720670821645130240082205245524067361771560828478121276553731464181366180422473301697980475238183654494042073860015269136462971308392583187709236842342519594013500469581603345499135950956847568911259909101537894236699896077580345743400918865474792457294985418166749226196336033050975036707250341476683154870740241829337151110235974795648619710906220116916354788293202209463695606047923850778731206607805195087229422363222041683875360996933936529940924970009082804337665726917495357520322187090877657799449433921768136341322906697432355714890017439727956586517446013064816158083964561947516705588578201357454340516622681580500137073874087911338244874516260633715814829934981002019030348531458544710383132499113386471361070771703055091427539977123256274366364591400317590621924625467221744848873897710473099991626399073276041744780020530044782573003561612568039552853090319514593652923813644430561600119249738283950950198040446520301400745237305779778064719138923637223327623840090740471991695424701909217000523671209255418127203509146528367801960881171957509843941125571176135982777063554779105297068491910771389740937943020806444657107285043968673843143091152200585320638499283802215090047120845327578312082985272437801047312027093102210347911509235740594516739310586702439485120807024485321073428735892947499946391369555160463915370765076503467475454373495597860784713453290556316818923548080639029680461602854269830892624965236710793519172511221436509164313546461787959923398811880312716076178627800102767296998225032113356242758828417043949022533066655247844377650347203237964850434253737946658787300230091986062027913542038510379944999255725101174227454379943601739087873668215292251252633547344127596002845071287430722588407684484569142060233147398628958743523730864761119979207197190044970487412666663296184074212806668985971789165797766582424660271291940415292660735309896343854137116847263897597895800246118073774429045414496489557060946922067967313522244265837991698242960366819732729423485596009041181382687959848940705688840136165567197917997506583220528862711365432561904669974415918497465058325165881596432297204971468126468441673689641318111356435712690659943445463198620136565319179025454067449483505366098590264150753390402570401314781710902029585855163610557172285819552959766035160227658226114724303683350918323996498942526288938635086980828386250453503820413420992038524454606628214671914622702600913168431307916595283540739142020694452123381109134480683055248803077312369547269235766831806452168910700136579499061710567992198943385497331541649958617660771923495827397613592420540769391629261584139715972424349676523579787906367644402034130381489578156910667742303173141533948770730988207231788648445453487773637181415015362833529499452844794003005607111817636394241758299340003786131624954537739797334929691820340710724081437953602657845689602283109031604439085366050482143145808518785106822704403493137923569747008560658942755323565388328507402468697500560690641514807801817076747383519766939567452891416494115865845554397061174102223807426515731462612711968436359287478755827846363154317201782594744320284962030712109702826889152791054088941008720458571123949418185972399476308231889550353909846002835284906548605780134709625945189345800841157064410044977640908045806982230963627951241800906585991801993087063902302326009053531401834371350366887164984814506509507819531480119251106275060870920322117213743714137941417335286608645183320000705943601361119360217742207789347114693751345278718282947828756548767985825650379658345604793258017293766257416130215242954815333720282460599028727320151657294088058901107359797392016897810049942441180736441697242279770111089727966260972036371076215743084575262016596070867995355090773168303451378073971453082706675522968325662615581501187421960348852904408209421948457356729846481928379816351929178566575671692150299419749983629528303591233164240873038520062950135666810627042437896017503638077879488995286477338150214967534741128433836126138724471292170772390220606695344300673094461344648306626552363299567850821238548582108363160260753138669933212288902282646212141026517412269438280456933710867577781947362414056895692397961673010559552648568278560909183653234927058991218698099147228107244990015708437016687368596232532626607952632199653699737000662124202658398069266848625566093143622919771566513783111139672519563385816076436122976132018446787021318855999997083314365223004977012853360572659555335420601860030560895408612698061530609689069096336762698717188682972366660811974276368881897910297908422770157950396893256246226446923570270391842963092506331104125275705281877828195067497277657616866023609511458809338598442230721847576848190222187321095174351700533324231792754269847907908886542162329680668920943986629314262465402845634780739853786072596057387770061022119893361802784312675693379781434495590231822364475835618534065909532375542380169791994209320536283946178955860299157819700938500197388089343330359609878592171429898040917944083835132319451599538533944186264394178412714635833604773293719104375558228984324812787324345545684687608251640379097993976118579004477981746126174214101211267232747373009421692772580769563155923911044140795937777589648419775689532499251631619924310858949767029481251295498329076549572655851722684969711524035343305884523381107955731843250115456071844354978914497722069517312624461167857156130703975029420583883532162192629847369866618292779187610264155876968964089694747014783678655114868639977445573219904292945947944309351341807757621735924928533677712037457406036398937764926538122934415219565036538298159600868919893860953961903754234618457099453302132009534347663791096933230913785399146409774354817452259746563144491905024591397493876453137714505498528673114072126218590538372677013015841917040670611530723971963994409881255444697949847744087534604968319654746447569184689404052043580207145371409550520725014647720989463028920620448972691566367955840637591973766111193460557666706273631829653753772257159467320855676707287538251434687943952965485542717849600461399252656832666778114732652259440515713114749969913016228113834273403201257285145934279737336185167770148066183064035413513898565828286682377488124761618722190358510359747864224231802641554983417373163867141498689266410931313513947736663349689856327603056924078185931443203160596556705581093699159820641411355579731795212603696662541517403840951550683509893524287745339115292548785918485021269680231953656568415846215157218811537632110778863030902652616485686503663133446674862985657660829903799731193839521405134344207729278392791633065633588490060762449651446809093229937476993067026586515021759827457107372828345533108818486664146797005915399677748887712893284580585371900510607658740705476638893839066059599952668537892342310316980347093888584645032888506606610281640393983455084959800775387457401041481583229789315113531993241709536319828820796517392979509245505047382043945892706634325875124937447743088068527878985885564367076423488183255648677131290362838272875637810714156100975559498024072203067984088527524770906215428411833612123133331933747723245558744673148460513911322934701912750523759882247062625041455852211623071058460180545750014635851476435883398339805127264573967970976207196320724376112493164775101910255101999706059456493434670617790204029066199873649009718699147498259674914819109848027724933909453913429694451483872646024412359609004457261859917516895676088395645595152538089457509253626835223647110398768201289609312311034789669541605746734543158318312936183840989440369235229207227588865540859229109390530254442905520200573442710068499865374300219636057336301720371366312757896411540314149542934047598769057206304450364648020163981978319436502476199207513970453728643041670028921092306073848547221989953598980511836628052194948417418949989786191136561305006765961795213693684968892620055034875148683410894801250013189065412864368613327598882220636295312081354681503983723208683144455004736380700471994351656149911547112299899688473322855959565121844690901328805633149494866653589152700977690836825783483934510898591305531512853028097351347286481353886165786633759117688998908415887699996446361447286345848305917390625145114524297799364236971351053254874292005637762310398044730189268193944649558220452627049111003593271676488272903275708759184433785163096987873944284606439097956808814499200528926928584032361168274051391626466193440969239396035086865216356680375090118688024401756192967811081745649915458707012342451324999680511379047075608055543987962998504671752284422325198555855699413638270175438379827574134907189608129806742244852168199809270670382006694208173886160443194109826302045175806762873134420397297943135272333777042794227787706648957231736056316771260068214250205953699138324569111346227132957648021629109966651216414584717070103266605166749965286062892526700058404693511859098689299580502895959484488654814576543889857429651905892641258890596277426217266217001621921884276069866407509863304887991457627099229712877773082232163449956514035522931341176720376775469676374599628989163038475788966311277686538611554741773256511129291371575787372101949960278773885212622746688391064565186037978123947088051910950928388986602376454111548633250988222844428385029093779942355420264799185789641429889146920419765501004992560231795143794601178103086651707736183417189705866130985788703930540282835141843549265654722752620351998020585155928887030693492655667505327915724814859225435681668262783263988028335509679870179094345311866059190746909606966560228959595194139741606582205374820359777216041864032268868272373232871341561228827195089512219937350997383923609561028960764896091668291000804762523080258398759426008625528519984531233639438390431386153330188109750852304036066795951225433980009038312641367333545884136428684321394185242557302022864560978917338631580424787565413128842911775057982814764747029404213367309639921009764201021143561859006501868460380378531118786516932061258740578603506151485835298376749364913453174632555884808401248078013605871231810254889438659734096179066930971510678929650012386140468532005283022402252966389656515097925675871257189049858809048294169798477468795265775039813822777382567304099564376201604739001174314354555742998901745124837298951102768982912797823566566750500137096373157769373962126124054112267928903366430066694399160050524764768735485155409133919111831042318297625835070847722386541978311069752683064955465106250619095360920210139488092088227186824772975830218542487253428235828739391816821513551713599580026125488565481769026578780698399179053659656274087853766827386596832833638111575356403508812758285447588358761147203971233726178178540187260714860779779402791374274065143107906150175621763198028573801719311663062380229708922508374677624871112856325317553975655606182066160380031252785690494612744603646833776459113657189777185685785724407465725384127598603613218965308964527830026760108171238969548783932198299743422358447424813230902336138125746711089046484400277287015556585730402289623373914737230265851104934290833214034013121042937826172338987769575645971105222705438496273347671425957508479927362036345215247601036720947528552551021730410338167219632750483748603750950623151104505671504006510312847827924695492634526925470220384341584937398571897681425311394064599539442054210228122062216554812226417479899971762923653950373895058144743275743866640387765262489149973323384010966067244314711231824489456289705341444514595649787569215869430703287321243254086357437993233568116055475450197874134954552913920406493614518061910126929388490169627278226826921869138704976144368274063682120065554776697479193352968845053417875917570682596709906810556085330255606989041759581443029326432992725734476378129222011269552633267599067381160224851633040203709737557947312937030695550694431831205092414977985676767525457154490696009358579687436256206580923582510819658129890826079571517119887650073154721798598301828657039228081865035308990260616312682201547810409743257699295789868891203859976260562113746570871978535260532233922796319319314344155427293864550389648056573368001508521072145497628988480062112316281331385228902407072489100927443004796857769385250265743455997021014040776845042580846183481000489212766858921954448168543025991805745013445991160333828432671294030661910399628504245091733325304350489381792579029222340567345348992118397953427446608090797674976118981311144100364225889874166868897526156911716239751855183893968312219522226300316676360651853171112170690237419216170961022335733133901568301901222738172269059475110079543648817477411709215233297728155759695824812710997960119539961325894732685795865910873789806882535316168773084670669697476564533566831959918093800158945462655894434424760379490117161034871779000373789941787439997881920723128639821930541575299367552510308898100945716389630402833637198305512214183324148659262131582349837241811378686100204727227527025844006583290307763878513835977662214706382445426238604881536329780088292005964792787515991080824487430359984929293166320554764734534402128657265111328005293953196234822633776534434716995730153447385040068233226740330764212873368558831820462846367027941789011821753113902824854414145437512248536920106965178879558350253874986102475238043741691913807109673090713880227548152630773057009735626967114169379097195888795956350393035407659734194457541128611593940226172129125152795292274113943489690756752698209190383134944859493374754518556512059123898188255360919312807804023145266403337545633765945134264733725453505351536560678097134953300994387484978912866809470719572359357026583785781685443072599634988544879287376720314140178257584890412328102307311654873089994076154367042686808638715891698512709248805033237569405565528436770544605094785585618182550209083481336965986654075699133029784824893548350326833756397631956027935793735923967339600727458989330133510527240947923959624578376420783223822806385848045191120301031676477162917296659183576215560328371025572111684367013294894337334052150313862474119580758710641141577800826863090911127402638483074860167776320077421590726084515237547932018465942071548071111690091709712149849177645020281551186591500539910753478219865895665676639488044829232212951476037368676196499528098744174439534877490994817790068630553342510661020076338417774643215502526247710188577265915247569087295565815564326528869319461723168462391330614036829311628614993970065926594266846478337351946210592753729616910312757916665426541265603349824717534915703821094481585757452754394194884551638135256499206293913486778246254910386139413435893912836710401846837679379847465466258317598537141435595560075297484203796219912327551175030337134393188530741145995075166689753133827847064105998846515926702276530214083793404298212869731138802696768800098973535003329973038638747141260056329257786566515568609653631664998010395425224281921408290241598447617739452032555406805410962193638953193740288531056688358422828132512338033537600488909803322614074421579898443274902458716604319884912123859803655544391072177084203404283132355506708074177056191439674902296958540138565674660947378294297546084655276836472658333645799462401286942585259241089706844866776348613061612015888535852901794148658858878600746222978888317245832471010233558359085917793525072241081798006120149472056431498608239914969541577345880431068518934100323251353342630331128185556407007390174696514824830743831919306052693527199465022686423915806571977213935005804015086522403566601361456035270091416238093764839031455695889137020825175445248260414761622804326643653508877278663086514502701532802617277304020405069963985742585654757073961006995719196659110524530700117897960823818671848359893730789311938786530255835890052787511246964436910278473089783294741043678830921568796813003636604516236813484134309324028448381723276062114024409391857766262307277394046808391243822607669386520410624807667563454380619483165597071540117353043445712926327387946699326037160301305666332874227875918514233535428866781599930592562541727552600171450139139941574164812344108869874914933280505814935279550453198295526800670660789911742531029343472777453530497943576926462124163148409559099590417929250852282765229839037310667381549078602408345331644591692474861036030724438963428364990123011596347503333994403895913643394044109896605883433246780490658350563510014346511263632202677216426912642382827922486399240667112887761674117482580659722621455411332409993701161966705909891825289782791487593823108958837205733225034972004785177955487227252622078985739690713717523534230773141050584443049048777924191149208182691862026394519160858716766714153313238493907519323084534530293135300739737464791157713110848472647785762479969862267757176109064814937812733085171766971209497452911443157281354745166250136350950096375581138124915795896720052325128796899638966941086219543449697551004727318817348580112543290684972764320159318083423019246021884575290806460318602010791879069789054423173753467283681228072687257850824329367773797754370421357491401636091198381235754181169365953029162572125930776279987404359629598212886797343731916076516756889610838024735528521006043694835944161900871637018320972612989773583289666155441077587155518117179932510225604381229386506611689201455272241814083544266972861279472022255971951530405676748800281849371805193928121198992048321652980671730648323140373064979700112572711337572854454765522291456705889400858294320170621581774162142892049820539697203276433790272816051694726797399855776890559155894835185290849889826988971673195457039288593197392506867221799022015023711596157850147439547926895768329695522637126722034023802528913292462091914941056151453360327522173900656226262424460147846208672520683562964142511876193557153621282646827090532052956217123171881716319789852839102732277501258068546427748369777021440471959389019275864047291240468096140127518438281990520529055129897154491725199784375801818775648059414176742660426249377665175173456142825525956240858350386295002410723969148142440680767927228146866090032457220675398426049359059333101794833640345611986312118787472978083621405494175506619502380093212794610882417395591008609033096609975582825631858382906117582092661646372730967850884467557334475514903984343375698245937318679828730503797122968055716069790487512803047374192193701278893582907947642234378892066164503485792960484833862056713414045755301748708936837170601918401976050731920439710794282153068968077144280009858556860343464361953289693735060242105666499742592585169073251949679184506227411378130214176164741301788718993838654739505336669803133817507334346253206892401591653044965786913374058272633542667010358075724136667233982964728922547607635032943820062081323132540494248297386176886156427468634195948060499594460966070078601974958812443906064257224273972940017872800017593904896337003045660994394255799434788109135628961888907043215876130280605894745702785554558658154522460585686899077559445718666213256945655865255422405710674267023107469286215965095444181865386823160533939504741954001610922085240868357445320191638737845632412957352231180542604931339556495607804360662375742914731450365707380429803820342015577990222513046031152908178581233217104722192708628559727584590878165474189582365780444453972940229398725823769595891306986252184968330479266012180634728488780623671691723335899681483410072582721519458620263228630843749602931211469612711758659345281744759791618669217867486739180512929771106613659625330620838112994788445824831618664928677574018785622052003160349283823421537210463400005358363052335713647566308170744963480912966155940839471830686288155009171956170080260611966561286528058335199921265538548160196164474571743403934541979543158046533293350394781556430077302299526640496110022751140461615589137659544294984814841231988711293278775044580633255759888189862259516095012657140827764611308896838604505145954078618066884013447629228164889761933682485442563126332832671489105577786587400548106079977080046395208334370771916499627604500276018093126202200913305829677135095788544412974395239750760379202126685941860157306967122537788789822097055124983800328007279409828573591809794748171273564679960873074935561107093122482984033160096842359837435634219921276608060072986600994104150822657329905296450992159843140811744955345367894292334212674347972967937263593588214877809765422573729311194317680904936413433359479355821517635136985632345148211839995020102009888209343687095882442118788450734028725329291479439559336913678133189691983875637570088996070141713045600977221937273258293143271073420217191250690090850986621130795094640681380428512100394163599800050512835160792311674605244953564071609493896372249129176423904301528673930310957018696223176207462854938758114119086999173516803727071495281868056799711074408331442624978980585782193031633413906006039985635834290982238452215845215357610663702321917515348211662885030234414682618908193041850076473308690317719783331494374593379140449798846371302102144775561323131195158800073523388898650906675288706197869986625767213788325263605569891728680601660651442763643702070953207803094300724964902830845464848531211613540281379722257970789063691225326417113460572348380849448441173408358989155758109023233489931371525043408684688348407139626258276271855401989536588136558697261274326505494924624723537140325195135245310097277547798128013157847558513097961641796813253254821556602952376931058820195416857263614518574698714269936836835103712870627247400171725638317663232652834166218308527988961783465884984390536088865084266387748499603348892996068932668009400644721072852114350315782879862799543550656312546284969958670762607818629641590962265847783271907512739716894984395193153775554102195116002024909972580664841908530844038328980483949788024745085025219430585955871459939149561309130204841459947480804776987406413888354587885914924355145417033224025903443924464168559948386236870658468603355481420493655053086528327526828778124043507260423377975832922938311208538041263326708886360790317535966299106205056212675813308940279429255104985144697312242044799497325290381934285009311599675139506786357636806397209584049735237184302900632845847874065953836145404369897418905820494975527753534238616134481289464768807935113061353728163408451056468749249865929908663748551966208745123309219111681766073306421832678077241594179260687922177034645195214113569905746995750087999994880802427335280663747007888894725000444482951364729055191845957833867316020592976175937090829228096613376231411430121265838787470086835705636699568626707841642123475226691356450660522807000198209408844765712797788995817196359504261761111803965648843107637972955907865195388813648470260743042664228120796281175627558540038902569235332235035103776930553179625631297601448543264042776533594118738290535543444655875994116839120414112099210760985935687166077922425624098988573786942289719053600718717635254693552177425777556118205878485442890079775279163690036864470191407404104573985623454452745199885211939398525324315187036366389376821760165200780136623099547142247789495075750083699399104084316069108523572814425384408316040575340387443409333142937141204951730738651144510019296639820355324930355929607054923446916710890672594184672900427750481985940675804194141988182815275018882764724082661590761831528185454447095087214581059463069614893482431186902903276627451209701286444283322784131166917354139586635107147378113498048098216480998740976085099128547190742731784479328955377602432687459343421905382710233167416962783155360793496068832380473309667936519916497570505207058099557973506165349919259100770740264795914779731704742643899884083694213266339876577944785254446290629516689199716890225332895891922374129230321476961429283357894868566358226357754425141531939028937053039096576631784570355380440785163697460294409690593296637101356504360833290359416348755526969378850065754704878192962523002730070481427103581933285207099815163512273289923983822180237780663484328808093745823797974295008162499649950747125874544063339193854526441792445952937216327722186243683776454865824246336431949183627500069873072144948926811827081327083061802538134409238137017267817818445085746460108433046434676232814254798834660899360170570980055340931015460462742170451089666498099045409641009685964463702052480750022544782821310002909556551986970857615285354611755494215337421424096917178713931042574814534187309802307985324217631669718007995157011612691761798062641200848354663087045067383202909944595271282069880728649927781181102454634355707043047981757304216436016159658872311713549333196341934856910016708301450550480246023460919044650828384974862031322033590949466046068880754593852657756388687387414728005429131473213780129325926896196811959222510817568119339548578437913763200172602224954745087100366004684308953917211717736439992484035314052478203094315228667165100246317046783558170566411054721922841766381346419250280867023778579506325867755950465061148702834011009718591969315484938735194794880223593305856793822751965756747224768426312781973914950936012355792210406675384895927720886876246288286851978916480217315423081815659888565263562414096650604396700635078888027295058948267714955708094149596145733256963974596337245134350090192829757180753623434460234559340384247089873535625448416727550407354122708003849103533940216971200474778105116573923512980403719217079284328068833171621534882223466338855580860361007960323745977389018485458612477883934586118976005619618728968696861122420920677963722092110990436027498775809764667395184083010347014178233266062289775443750699998402375388592618369010769076255741650903932058527422975560717585043230757245256574561256137559108164668969454196618451070028976763576888954791815966887357454129460537198787755862185972023697812948830000005246610175440017393277741191815807336332324043941452704004511819769556061903574222972096414793974956603839703295762638804268853775382332513747543723248066087891585329034832211122889197693547311013089820362240946430318185239141236781797174541669135968599070438460804650288189808021129692980888301778267831780640579420653335568761599055135681803474459830816058466978760201446754101883376867044244320294191907655223067950465565703404111523248269683553410452242725798329261847569911251736530382465894677641288835418680155892334238829676633044357104968709515526592677869496985849784270422048166372365470769591394991028680405927244448960254486011112051875726240919849336148854863142299055580720966607232305944499726702158511630832858885121050775676267085141645631129053508847505686781941429095983948394855983937983651613061356842963384768093035861915270024844596163188241802400889783836406061769151810251635649529242466139363645952191508869029311184435110122753489978654167499293383415421625785460749362600038409747477375925959422542646505036707299835027421293555315260884493276690793657441762468204890090679667990967426313142843817215987408408096881540693051192278234323048651859379163162491932983245835762929816329660979964691211426680718589129536399283399982969694886453822895514891456628229349845033887650028401548554856274679449705124224973313706032577697341221684007339559865144041825213823512307668635558652688228596853862292874285654589045348183993635633567811639594696840155765464693558013488549311389017960869505504105236162744580570192097721836466885474119646129688743671943612402054458352166758357065855707855641730932614425111810527101286015186850773415529874762335579114499305465021107537226678726231084805432711333902333102009079888188837405303584754759212901720466882901323682656952942552929743440551223892771031355874148513316697251272038646344790627828339396119858302910149933566811946193645871778940894777905246548512269338537610475406743480749940936945097034760930620004214299196240570393215716677333002523175308492371081391607093788384138208423726092642106745153356845554419561762610772701079038318882849524581003367786764817727912257431701396150919001121140446509334739385174739562335875228861417856096635431179652716690933281706389713194814776922059722554767346758658701936430623073516991536402988982921628749878092149199452530019855916630751070938724028985097120744851875408292309457962359041439871938752392689694200111556150639601880010222125097893378968050972455094910039187540408944545721041568899446237275222661164402319818540026287575277430420427807973999388719323503904931002866269603183869564715043944917740313849360202541149212512785011483540145760425612817445723851684475477877293782716851359366945379857716646149651217678517227083056776326015412229524854092050999479448964201405926543664869116722056169240050221472751975416343513702221825144166918305103961071866148611039344702577615586713316739545133578646524348000489062498883922578661351787091644012864559538903774526333004296473888708311958892649802365479954221703532462852446059722683426668043864283584798437759394522904632173991334080659229989222989316096535155254341465464726276753371765494018745896540214135543357096969430387276063564896709552664050292148375177368870289899592270185186274555261216004086601143434626061861176910923908772148712221183028839981008442324828475755136468119526725528053010383436749936494095892362000331929721192400276390057392616320696721500927145719167618410958605764810403096039035308036133289580173122802539125245184218811072023781988709664440462587017595992775256660222667397739432756591011456033221901790695875242802131042224133929232182418106568146869138591791671393165652927482752145584432892492539036714146428180211393780724643715049077645980862954674627706276254854729703247712784921281905520880384334237311548297867929610533046385354577831818711981786845027590302539800833513855490755904149572621996813570834168700880361321890834061351859574072980919084226511160384820528997759877339791845702089704510280438442414446674197326272868868488088254966094597094099767916313795867606941476005915609235787110920026504092764319119228876009424990830327349109924644665941220975715462307559619459378752812640066239326010542638306186318649577940787214001022762354373151564968409573044358791942420063016056226831662300453639718700953042397320162822559658289858161443313091023042092020276077341820478547013393497387310628145356901653562704269609385939770113101292686613700911821444959065934087860171533602814177125914319771624755259662685737926472565666280684160559717892622909352676213719679536793040842854370639829309506654400586535846524936331440193811707000934677556070178857840457890040754230696433195256232923928889001059167085673641419788824614466995272966350859066303073323053198518670419977474376666005071884591122784453215800546407788538382360580526415606550951893247680531114558553121307244271308116275115660695298211194241882983402764209531815507792029516152647104371989357100327146302691445645872511021606775961446447781492776916366292812032785645674863937949562353982434887502017221691947295995865291813793931678245237828380637338842237273618599709319277033578616836199162170925451745717087364401434888435633471708138855012908312634410688327442626306066029941204443048822403457046032292764825165540326495531438209173711897560905222345486465950351533057003365832520050213578089621021266507904113972473124020176603681434718622580856305815428541082052613618127364215809305548898791659602542602267667970488394933341191179485462773521114096067571351354631150152367478561806842686425715414000182341284789020003334642743035965349856996307215681536522012121987249817673653794285280107866364875665206317425608692676303711353663601766977227950214699086939651180118586310785175309047131725867198599480119466474056543753560380223056165451047979575954182805602455181740712555806571917444536682750914505518780367622924169235645241906587963783953792554743030696329975546364401779084339821540450950971705842842143118255880927550601429210989875032017767550896847468917399273493084297886654663580493577308466348111768471591504413031013526738671764509860472913721662807291825945667767594678925689689729157340509251565942273322071522945615312344165569250556056740000951807860729846479398693452821687273216220157548417928337332623612628201908022900957954057917035246517230992171759970433718980364270256019333697045452208236534479486114335094576309929189709736705698121705205038930053595579299343340346540916767351519539835527156994763083653245048090248535196629554136459800488324712429236415468690512651250952526535454805595266591039525479419534762112120103707251230165574860375838358917297691334460871100789339554296246498726888065154916234655465622809838837022464992317740112422882739801306746687472791265677818635484430889584267833021156020261262379419499705187405786251617723562139539106976112521770872191407879763018979213232060367828615716492760820826547305424685377072262205177070481448681751997525315930655567420539242472334136152331072994266431123616685142125934858943985450562932039420512677320835808462331589138211434252490762342867202409473362558074589736776796158342673873268278451282044451229288070620715145922080846469274844875460161723545773266759507124671870575248142220562240697686237947485247363552345070321305942470793533738265850362578061667352392119522655949291094568450080583695022592378485244809686001760193941040313859122583900938290919420382673442744447499387032290817520704261326911519200805689907022428199179898470924658229240991449173596834321149127578094155844151262401651623573620740031967457127420639280404308924754125452873407150952856364544987754417409551687535845024121481292402721112773208050576863643539886375202840692230350007972577460095618625261040368786657932185286229490809236053414300453694598878907717369711075607538881113660924345802621878951874414442520198912602747184323326818642628653382400418596267782763276518018038361852712091320173458628281538269060867613940866558667540607707610603203598073705919970198450748915450373460669985353771105183340842439645784735623184265390835178180086540748335356845083540458538604502617942815834699835892115944168090310018609443292529426175397543944130426350677814754954734798500669750015659037065267995820059231236469865853528371727365346096631198010569608768639483592528068808084733638063909455251487809770313315744203897649426486553960644235586081904128599701361654535643144942103026185227138550093589568716541363138030718487954129614671683308777409248203686186332208918486135812998055182413676408122458346952861894237461366840472617011724215545390979204383430352810078470333365561014164110246276227097375035116358122439663430182097266689278225351420577581866729405753330925149996537748753998609734328449127115903530953393068581305837696773340609614777652229775208582800899938343142810183810449109320926927288317408874875105138913189110400404917056483010572117109314089256756719797109396240229429213500355636667996495819438950140448086249588497942046355933482989981914017987641712013912309414856083639748332764678216941600791185162616972529571794975520132523472990556902747719790112183594102118916311198056724370258497992882075922783613575394707374925338877075258861961997511716074707882544617217029200943723474007426433717966060358507347425406905572733562317580115202963238408274595377963295490271557573486539314871397742988231509326643184538398340031557162093324666436533158603751561047247736298519977808306089611411151186061257901503904781430313206987350878878030656910753388964222894371712931345457178401701491956335677886342756073888490140764664757054346962231382750826736386813666789484388661252348616603481411650719994640521430449466512320925793080341605643035584941050538516077252823905814579049657440976274235036178498418355311778986320031100973175353412227170459116251663184500750585488043681095577586886985953691863511756579988083039524956674977539755294649072811492719676558061112632227976434439127222981422058348303388793927455483105770482879588312281849865669805601704209657052013088539547705522732641840579813553822079554529439167590878684157254578376554941733410384238922335335554403908420170861825178006121487054054662566581673750219227167871558271139803292557812049870388297537960958951492842244381457923688921669432983506265925441151942664224844742852662994025835757699665907364921032136293671514397162850334747328040677146536706157878783780033886835440169845790000639745012728552421627478737350635634542743894197900934333836702597973692465650662214084312396169234001516391789311744338089181797057677067159233958673022515684349504456601510363867545991611592166122498439971277042098406884374506875840010555872642106947643053621826240856382541667358803783135367161511363782186988425680693048323680440702953996660027583160355581110132871622310922707146323826502968728263771957559290824621830692605413156523492417591028021267694978684094391725606562608343936779451473779566350636833959607678267243988231744133470159120028914449935807139235825421402356530485331277014304530247709614056190518776832386711998070079941062199840787837883503435551100883040250805487991878763869022437136489828455698625956337040272505500824915125383209409015368641499975069887627301716280676595970679760497900677865584295178223845627582917592927319653901849177466447453953530991774961695742044591293456828928040240164146767940568320832727599690789251838695541753684110444454194639022153325072711752350211036337521883434271332021049788440944604385943161270385745250962030604826203205084818113624384108937405858846719426790585373949443905981150505448446770857427416816224876136754483077109077799627553292019346292187805305860366234553692938855066068118305948076589715403621738665146600712794117396592065693261412337091494914632096331756533135540342391814148200226582999767996535985743139347372003222770225856639763222926549194462274417091256907779318712540206965424890353328871119347049770583154926078490918715550609266534651962354005576821327101739861789717228255968612670700582652187752184479748989944240993241555326575502258209689592574469528686513036669272020389263475345610432650826357207546320429804441135578942578440887359762581117406351775181450661362942936690311543691665029041037759064810055905839570005122815629204144727926873680812030789574302631631966052492769001913218770451117283720221092822035858019720467350977577232483681339610890143664328773191384595744038402482117795160989580877942372154596622217869185001993075495731735322625399188745369559938444893266801010845815279547818564324347104475970666358270763540194580985062159297108713438706420524706270894898633672557126918428364342333187932112747204848664609659991049689192765627057337964861714000603530361319692073734560798691388600440922473700313086637446021536387359840988078942332688593019978097390902599004005452297779238963607130899900933933194685628029713531864608199979432438803824953471520715379077185123768212555369417681436861525687850752436865301828441321272650801816937421478528510915777819470583315904082725231943851914672991553049824423757993356430581688886307014609591315990758384231787932993746205677100371299591421972774572989413378173270804161951411482972474923094843378582401550665993291488487007249234478228113217613406211326102646294621511568461839470597867508818610074075200157466313863356904907001680609796656032322461043961631776102222054469589488915754431059554210172656255517433793029764705512137894559586846579847840312061241522809500320708762018782224990503426794239980526020296417281653212364851901116459487310419712612934152114530061669541053753841129250751107691550931897217180320216066386186859756365846513551877997947888007959940438765902551961532213367911825103056699487113163491197394115817521010245178371288295221779111042449192914645545034943198764556279687356189232096015706805793266070612102783978025240896338708937800087985180836114422702497655388920899666963810464459522769971870800339282913642495282087880302720188107939043618796655169110013339973606216342037670517486422450074334739892875620661037083776084846092883277926894949271004715706954615671375982435356959184661195434053380673413676222550882561509381015148579719890144020326163091344974011579037155280275324008025536513603621975577084379808514010835288213731069655691287274076050800132883520108700141593506140743781871512556743823938967117162778836147090479454923386251342909472608849643141771309455263705862549072037926685610549619509749987410925372879882003464948331871750657017600127406974028545980047312060382524978530571760638219414583745026903828717272081845012478013204859264460196898085203971605796352589080532731764366385356450739274998388174910088889754181653580317059915753057202345518465042324076132064608784893951532298239043653813546533001027317324999125069096185205580396207355407454752539202331093237033424562733844369783785377719649549810723876880319264558050719542337225489722895255718214182349133522139374772729466465052651782922211478091325703506674129330826632685300851167598490041496971902064050023847956514976419387390858817801916509665202864359414138522288145510548673780725221796362896003711932150436713746883106614176620055071853507469979063293304598563875678433796324175466902580679435062757756491656518303354981048669376140075055859299383795493357150388715889249356911778774068067047114918577664981990102026284737849433049244344141436441130292600506016469635075655693274779259818268062114998803769444013745227165726313837217612962853588825622477174962449946455966861962967956291677815684253687967089729945649832134784669007794865869100455070204972083556420120571045226492145657753674554278623183384956301447334430427566118557317485573425487911362986355848625394203023097773404128013800322672832973343743751921108767331636078331693710796565020256377785985275728947795409338942704184356525976390827937180935476606828011914238800390165500683090685013375625460959616663523929944250406840494350162942179502657410275622880248591928172779369683064265661712579795832095478291896116367043319364805534206344864275905226086382344888696535353608117840757731967391805883998651287276112654891785296278040621667321557565993062455448326525238306672504734598684406655866520391237568358721921015902232503885561526183764368609655343938151550459257226473742211716273216085716273771964455319476788557247013132342370646318924582341916001268539989599531526398692064319489292101751061725409503691709381067940401029188696076228378976116111079561381081638360122243073653768537060946992833023519541139485909448141190408597467292012135733593175207367774376616057640359962538540972004481369576723240444961124390828284021432704001970998690729336710799952831778419599282070118771424215792438633201353281287884493944528086250474640355031006728995928990364373851680895538159301105940263609926657423093593083919784927877242236424850529869541752579683476660008810995182727395336240341114781229917469719167018893396598029268657301536225799713754798966333216903152130434138152977552487163323107324881505440845279392703758993900832937708706346826705000794445705240392103121185243394454105452103931699196092317190130892102197525043810008898753985811840510690717205646697500375391908366617382434591815255650078121270638649883266454805759839499304701579916758398753604115894713211682181213250521077819611035804241089972690562519801018357302934975464581572033683837035163030853638123250174243739120502521654908705790659863587742743043031504541830865491999843430935378165105407588616994592530926405676653404481794291731490834317851489157639326228565206894855092452074440937740335270414139583336832302243174959529184041246904545789955072950123993983195928177347837873778810212464367463918922738115642112090464149280087168874767853737283891361904784471263446286407926470592240978247658276715890202359295920033126340625814605984195656697332887639513733164282866430235401435369662021084595757850247659687197837409317735476501946463085754125018963085471281786203376412884816285979669495985035344579009509113257060331945594180023638322146933721155001000751644072062597222409191911273550453370639443224976722951554235442692584154233403340793911202524939092692090100064011873107576009937842089482967536998661160372109666966338355714696333611447716228107522519433790855288009937307801619484060893672759803741828872277737923530795936525678906065139051749893012135701394493361037063755812255043836574563997432172632505683221854884297444665463768292822430533567749729788847768896500330912958017793956435853164361889859184111654896439333672201934453977211631402114750774524560458405386108026864258653984673418519202148154639037337847323140922562432887788970690325439177760846203862000148687133869557817591740163482630332957914912274605029194106090929505781050335278946800589163386777511555633860507303745377913066837444319516548420427660339456902150482683468871765402756708388711614555348333340417826564753977177551723332295440979035792764707393519517707689256212875176665419140160141694226728581212736761174053334485303190986938426774581360930675920790833957576270727649098123459091379996737843587132563803482669594640904452257725357962858428235254146805335776762444670225663286873361793303145245396681022930341370156211958094079123138638824544512267321715486828251081181473988956874374698578579955277798191011249680379847008278843406201994066643290181493585435402180331165149728354094247733816971553358374666759445013505816249381722195228776691232383162864485568492299641868882771586708037050268347908283155136921783225914585221221610908362809405015144560351186892943641113043400547714339272224343161732455562319708725934324614313270480044673278342064561225312555715886924754943328734035545284143193373252469676050787319772601610773262522638150452028642080327554171701390640809555737871121547593072880920577907191581496266814959279305559710035000007205753614775910511898173517788426139622171454297631575236832949580166853429268314497597697928017583504278239235951255650091123649262516837942108121473348620532565585752829027778979322039077883924671652020694283357326002451310569482697210407783100783777805622831750979811661185330627905054635133892885456423446409568114366655636337268834194174441164950085637534426726211734815865165582523148369518494856144309636337547964634080271592877491491081005958500984457372527101881434948179956239970549238852114333937806315462846695434479311102760213182714883038173582592932198146583877828345520162051673429238704474729541748891138692552837128304925811873708628613027375165195962610469647421156224260868157678577160915498207498051691967504388650130901228030438046163263126294164192518571554451686579205586617484611542891762667762305600240274382856315232847641248565235452982102087001328198049693977866882980028423214288952533519870852499540552064487048456139583355210445053202379833033989218186134785545313872369980612675134691212178201971193579184488716478788693723576291182336120651096219466314321325464473841330263816909609979206496603742268155120690636988035127779809705656861360018660130626111597544802708499381001715096390837947845239296319292719488224469550510351877453986102201617922727435999123343268719843543093574413867078288589986423641805106730736658710362658248172386423003917619279579713145815523412134027562208117737165616513859546475405307116730613484779859706621213155195563457335191630001490400411861023354032458570324914129222700039399053221184798016376980773329148427463284645420046324088565230367435433116636060202629467369414742833496427489937250041963962808792208840146341295535389649238740740837637978704386573950900323570266258743552085447984149412223389301106579628785831395897864546712290706617849997034499600994410142220805787181363194504284377574476163156750711982888828908272240820517976617892858337165922769602525542058092894298292894632088231478467786461115329480628931634253936501193640809880134335237170873112557192889982418219803348061133464933521985380709861821482949901207126176881782315200719498260846698225078438587194747150108168553199834414579211067511871075448590206763352871978997499059731672815921142741787560290912450276313799951216219313266568644815144360876596838579975348620602169636614696892598276347685368782547323970636759965097225704998381326386812022915925831887852901421271011700209018942042295573677827628333121167782124091888300443755201077902142035388539997941251710652060244651215413900544737023769508296951540405961190234248556298624806612381170843931854306358695414202553109994921524411991837856058140217553332849933736483031503819892683826170758217486898589744325607958011068911901911480096669835619354345191551279144035477282471971516540240973737320641516195155649073478348161681816616450726927868130350856822841609715517047871167642731741686327048409487488814627927680371310504783439992569715988278871795653465320550865030362484322241516429355714630313560845822927052470696566450245461041318841582869642673657722621153339891191815619446077100641066116749381661031362145942031621407620645908082385101884254826019753435624974681180909559717693011856833776348203865930473277655217595025959339630141603090621084213624942639938946967346803956425243773831398553943604893287194830009879268573933562489048182993448843672594396710253949662722885469408058848309110330742101899156967868815378056144820311824684622342383346397427168903890491402263096543875082699097462281162505149481780509297337690872293362747276826436469579496432755523553716460713304146645795365214505978626713591030987168517596742568209053295360109871303034873830821923246699289291415494319887979136996879414577294102515980363638417620204976199856871077194491607647180376634752698574366261097115241527283433739923227198169467259546962465707003468356695749748364571931705395857306851714375678152744738494754079559782585504182464263882483243753693056099105114606623316312364501257527514731640612828834740140575038452352094057899886905463426305480861217281011592898255335058508827734468540881258210071001614057340992492880550923351978033885799189896602181014709461917221771264687915172883044029465691375655310929640608526312725938435209916372537477757135914274593698287103679416576691680472884192956454433244132304326479407590963390911451348443439137290428151247548432561585029701608106102687399207883153501636299771348623760915330137654961438569841857740459881542058742485612512203459171646823043697060539619605603835956027578679928936504469064926472748154576080721700536496132294702420360409396588489029922625292161248813575365919093463215319296366655359659965540856321343139105345497656400900227312297606497316026796873722148580991264534263670155401725715861686113669699064942677468370064405654051652407229723997165606759444012637622589841550956907632805523201181785535912000943440402022874254568351843356920972481742940805060065958017879085791656598822160273196309375618752792805258815821931445723078283512158824146813194523675413984323409077807960952156668627817594794391953608354582297196897076690479802674995420569760878854119349841514259853616345375252903029322822018966457277505820004051156159020296845543358290629496982387673812222464243760998548389745733225500544451335658302608032346292398807343220293125269782966455833642746888108469163137521738069801205870384138785569725961966157088864366044290714104859857099534450364664207079675187410408356142586534906246881835131849197109537401170503426699401479259811422495466848413976410627862198879505347949098192909773082368101571347465952690501649590274924945632735250551287519439647114003733072793305772605948531204951847177738351380776631386127343285649307775144026342111541171522848634906283079451553929554957367640922986916918508222182534069587460009170929566950565029714276207762939278761566816383569810022513934397604701553663475018588953527576386837241800074057350813063758854474085549804900452799281158566897305659918665984215290217918887634037617344364390726022661000826533634531837054083887445082935065205698758393393780210799470119603421879640213303944077469992758998758674444647151840553903048688152244300832358668302561944800858275802884526209776570071223823826447625426907856541789842406530876584223322971569515714297668242758754636078877551442942650786884617040504694463027166464546769823973869091369375265072315133972547369313898702131770544897785622288788056332468283040199222951224926394404891823507710674456980056761276681335164057418884551062405428604367217719408817100546765851833373426224110194266379924900121653265206671489193946443964461373578930339689930982369158195841345974307536509482907579109895301266614177307710542085681800897698119647163697766078778748718765046242122162380454261740337184533580299569672396911164770516783544932581503515151056140271464773628377618538217693935888079427532903288503328549754709229346901390485393940479141033863183310256669012418398344991084839145065642908939819091096560365990783832910172704971990667600572471465626784033104145187238561150609741601372763413734021491943028656354123255998934986683566785133646297477555944177156429259946037041356472055563001398233525543156483744567328133576849015660048639283683290169493102648588119832644926515408595296575114623403000269952019598383120546527991400038784337524319382524284873770628316203073782105303845649846357287146215276105472206619266161857975898110704179867791958171280304907217016878221563075274160840236521816227141970588665377421588297524468370049905560471291766088423460310750700001487775700433986860600434656705326108202136011345947888824029953605698887105718339255532058770851167881286106721312899093017094879998529064955449582943813248113571399210120022073879900900049905015525752436385708516052804193225540315257386889112253981104581039118989215898008500717505910008953884714653085374149613463935857192207624969959338848384507926521349533256317943887344045797197161772951359326144705993934510439448775796408808690031458783323439584938738388460362074764108590979840638208217093646729122250624806420102219437100377313532037976008959546000493785728545177266750765659843097641598602367473272359104626557429754670675378128945482543710321554623368715359262672252978707115938630187114124452549723358266143257173486324945949428827974232914481964425805922471956440567855752294406840235066508336890511463729347647310723032576931099725265007455233305043886152632330114368904481623044183536831528194344856575278467154635030689719500966933975243251093011285569680018411816641718593140969809697389907076329521266324573771497168165549147537778650324173802203620451614818160728606589310777857616098829279310305451516956280109875135973729016133179978081374748187032766064518452099367796540709136103256917320394256595693036665462197255086531687944982983080208054356004696940223387975689459106987188036995840953760725395486048716545299391124714981835569672955546958684490908533603727845133968161067006628015783551090730844094911035775307703452029417741227216806750501605225804710198347328457659365553596255430578322280339610600125127510223320717343583381137548354842642299745839821977589277318573487215875551633328800482702653830219320906585466589480625089602933414447545317517343923387302203723642396183517086845982004484568382756242866524393948821036460115322115714884109689844188275576479384339802463079891025913805444630701344820774880444289545747845952992394648154284418058908420257594347068978852622660197169016783407759190057703993456988753033115618568102725286648441608007041015037627860155024386193429664520988743328979137681574181124163263719597133522176833238100430087542540769870975099049673553236337325786719840649867156210937386510543682984485226659610252064319375624142868731785941096385518524294450168521898384494721287821186610335274997866927206156474066463432485888657855378716537484190697565460402214329557131757263316496928815129314649339830819365526480103025806305785358513687398310970284237895773280267085812886444074877922179363002166319186224818588518134973891687447040965002010186824028825244367144793631522110609116302155827643620013514997311948105585478462986519401659493840517902957516657423356896856177828149043177913351293605947207640632939768787414417969917351577925104933787556175751761926512462910788458843314492373907502899289841103273384906365620115189686416841295953816762468234258358402832247303254974069510139157909729102977049164988185759410316259458173453974480852443245989556499011334847270136694527177734457395645325682335137298495816215138810712716132760649620192935787785684650873866068645830512720877071804183311706697422620910714904775521750491529137382247551375962704706008480676663614777177848778183978983817810586763721290364082070613466660088248732410106036673589334126382434596072959537429102283430869162973950870163527510095886668080353611401021698485756929723744266613753371584639215911183398141866381713807974012761248257450590143559116799739042539377722764429188939359570505081670297824345784702693390927740939614700198830979861598675211159085933313446715071851700628897344531893555495650508528956287753422126107626984995748801947946565070828496677572596444766647716636718895418008325039046095772925902152744646032860003367640657821548031177766509645253450832461803634208855600833373714319892126436119383644522338447466510441975284057041657999913639763604881326322992537144449313379482661348699336776773716221673277524918847961508253856245786364717882319282810873992835295014300499374094916493924598147975943066897132733348541427044156760941714982958199207007626489253493921182846126220913979975432187012451783820691856173050840612831861278155082595134956505842527858121152743209229224249939550795824495986371744792610511939702750999903194702868157003771740691001844631676336303726480806446214550179004896663840365108516353617574056537301614926288522041743987284938919190545578040207873265402106800958399051810627171536021807740701914743869093108684965062111941158771472656887509612740982547288749952888210355181909801270412861428891566686399794953954351800173042843712034011815291695647370498053553859369765223082262245729119063890905638024258211820508438176599839823374513089436200171781195605695466678682896510606968644047061358627986466326101796824910208612349453156409460167146069191996090436290091691872529004564260105870912819942133795950163743440505459013191709245015118318600384031435044407109523868187361073837900751697408265533723066352611406951631692777850774536694943267801005262615069185333436104882964036448318736695559391195348796924183101133582537071564430100461072330602525074868644581197930237606194549441842747750199488073826905186127820957040674508931978709317071661549882990737431826921855167379947702080628352963036329967226983946916954621317617311630616439776266482722053984381143209441730394169098418886008209855940727726012815910405431274805296336705006932126011657943394719957255445062281521858627127065962426625840445349026783197801996174741029014696655106230605683170967395656835113364912569202786432356391881897038424263925764730464733578705009474014154619199732880162734823043147677438648887923087318123103810767843746762206896700345896562460653320595039162254122455430004423167774492810143760086706856475787393456526234433617605228866317953304130860171132701537667281536018833114629084785746852650329475216366039095211743850136424053166484434281899950119712017547302895832070865248739605878842540662798838961626692028912377875308015123099811296340997516160744886912107741501740936054003161793134306740496999673840155830214791407912030155148391525925090234914467243852301825308685188100521921802451350495131477024579676850419152775034140829819250900926025351421082912238948386149580999396704539759022832906626994885984757519219056209695595771214145482872194055952564028533665468651066717831839691767561804471028020233312229347913672803215839076474736239247322615030525613663518600727266606722322847846617570191478710204057789047923370841267301240080420228445687234065487414238911118327518765921464557306883790628937154908002756988971234853740890581830299110351878785136852725144517568429055951758432128016245115222590688671623743454442420216119232344038658894806869172356962065411790081607793462578785446196696018728573822339498341482091899523645408341436602429026769458755978763417232499637924437256007991250595655502030678304301503482963057386694637675948284744254660786858910101422091912052808216077592903907949407766683975129564891792005935220327086648367211811818770154395639210201081107130207809527545097693497818488540579251128506174545906761020930307097422369431755712007483200887226138560447306553224281942052536325935952206285100817421148209077750214986269291501631810052364368367386376856783080279703571597614035661401767367817137185339242449414892485637758779706234816769414549535076499210468238040113665954531899116225282974922345241679174506122618765959209095557568829917524397279397100400110748826263966611084439992530143559710068437448387487090763069406214006936581958289304429298295540106696017836056355727365071799577528683278959029922627649835820000338897445242453854941516349328614358287272422068501530487638493125039506171828137474213123005813587844059096753443443775144676660309145785283654897673485796214970551525817306421440639237287992421371321165263317828946784277958107329019205184919713608608429254187857371347541076359338776658842288676240292872414210619366279526763640902201783841186509786605878299187094692764456106545319851348725550341771531094061684587189923357929679985033946121219907592655571645222015252748175214398491245408820441013153741884349154938637364651735812210155470498448138098159823377758982273778264135379464237181344940843975059919467230914456507387369092942744886965309427939412055289515911873685774444569998614990116315894896539697331231183168827841203522814293590884115855033459563633036240890685776551669807179912330950257910436171049269008454217407395560278512282234996424310958972177136143303564430240096734145998486700193671332373970502335104367263729244063539250914767733259130477322816014715776059793607833553519906588440077179593089793360826976397851240278773236750802218028763944047851908597879092158977880946163904693570951378574594247282549166339459445140917158375010266683418595784627127482432739695573157840439853378322513724476699816468528844261052617983209364955038793625732185665608470836560541495976919736288560779435398898420914922847268748719053263520340853595162268475855214253061193213620969012230521815902489536808611584396974582219421570712811472788076213989602523719012457835564712184844316632495098859170285913249693239415834345968800478097889899554466862393797935187774546882304786026470617384047732541685117835877451429119690103676934075731929277727379121052631300847080476797190796804997675662321668887738923252915304197914479193315446786527325155185642456252888636021371938570761460528949859253740860754883970113536975063648823549170356557146706286857242074786450892638638584667675078106581256748090539615977032136262686412946379002231749063485038110607401877594463730930157530015142541070332458471160006481186053250050278739386663273749730265424705965969457196361355742456529153010105880038550795355592873529011225153745682116771528580204616610678470497191530221144038488635374337522207724165761270876405345919655895863597604812237507599777206155586778881056398694103889971126020241203305392959093620923828635312562574351949502052356022446452822253360578452040261164605384939388579817629547282304867889185625153930981044946408038257815598683855582787335697587660347847130313571375456759567256823183763300169308260100784001740164865518758365849677663685223288355842202435509985534030203818770826383055434143604813568271310056306606808106293371648570081654832667116926275817532260516557457407280925350507025619467589569717710774021746605862641177397845967792901089077209029752961527338658592114300640424079490252152531193229182797832598743125569852751964111914424758812259687015187672207998821581350081390105737692260773455639679894349439218588266061142285335947703734666821964668124084919872813162178771377214401309547195669820257926704130093333436634526383450791304430331611344030411921177387616935425726740829561308418832277590741751462732362551561163065534215618411025102385885261851730430308417775478584485889412992720626040343452905222618132747790295452383580061991582977750714650174016047792044649202598988689109576636765796772535372301827544093981011833362238847314907515839739368980312740043113320905284926020057107337248534897214519191719960571035572904074311009383398933678192781735433284650928615671257576012236747065517406235748942702767142040630919804583180182081123415268466026722825516044059919413708401704344874998008502149911130419558057015673784017472597312198713703503475067400178796256691326774669931855363709600603001093178797068500744569972720283854886978363786722003246727674955059525470498624246850258887056497941159136152968286958755695973130812057326526164912875244838688229971067726762859002578046916133822153407689260915043487158826803794999964592327229624114212581810920044536963902504225466831947339544476869003298628125702539917347440980045401616636124319632020655615752624302372190426317372784533639007402822685813205005742134626187605994096438824139938625622841858763770540214373996073868727648826008036056572046344664279906991020712616963885694310222570145076930262684741954044747285124853050434978082295383029794315071863493964983175015356940822016698415215455149721602224906052563156223985500262931532057145162453908301658008229536689605805765247570806143067741347689691317813645511950407552711647038061930524924212399991511035599190081517054297438381723849498271602489215131963271560957300007068845482046601779879079293108140864094577932307884922575229593078472994120543300009915183864280724639090962130715246734411576304015696774419703406204279651694735115865229721050125882359534852548480710420094901860887438870672683356545891101948465021716582226027089141060929315324233009252703610721634394888917274494752697676911132524743994295790091570651654188876888801397073611060812855737401756600937397406760406170754515999989408449147277291223940770415043833345249428293777604649552330842709873062831854317504294252249039198644421987399686396161036957214260074396725989675148937589333236562226145429646153726713033728749665110000911876352290376654685038689923748650534111972390393901449941299828517163431835387185826758551869912973712488214674872219677744439447668785245281065443693950349652166242781022422085514303246691703817076661243308289379657961351955836325551677488923665720161718494929562456066022389703375920645097531569689118095021342854842517891550645326821238809803115378527471909241254844283191290924640827097817296749241945259963044016220786033972999455724206150354504170460821284756080400221289510300696889059686201398036317823738089045909943615518017921004699564991623423882416700175153307335265596068962930506587076833102555698616761645963877446682438761787562011477235334829678070422210989300075868708573806111491975043957910151243009022985466131011036977722806736272510836893474622942904393574809015746349056464952727717632804041347656960236619030266304442106449035654122439621811925036263271511532013066535992702822518549444379175669684761684893386478115680652713991436221521181632733016997697386032876690796141858266337428572016114431031451726191325087830698626719605368574272511859698416239266837549836026251654036618634021919456783894778378940208776295004080483482460754549836596834701537149036723146235164528521604202104723825060286225401453601209430707344853424612140860022499515234753388684021339814616662045008049205133556538000642203340839037996562418264290303618264542861949185362774513613986986447326948482892879878641139733775455696851296448440981792013608258431810823894144363159408218320022548106610148027059156205048023838600196636160437862378813085443040620265252163974342826574758834286843013231074295055784198029350260822721659524073177415326336648007091782244008939667088707279553217360420568657441311958527385118407222918534473474257322985644895659220508795835302378780824601848431905647925752489060842927424982690857735189260467053061384478242905123286556186039187236008846821972692546669596368505458773355752172881514291296636189406892719239729642206312810994509091151210426411681683623795135659648545024735762736992345874942507060774631276016115389384778781740864987361102700180768685125091735378238785414667884994826211046562457132111207184202392881871795515557906688937254898712141528208760121858984875658432774740288848761756562353403336478409111002729805181682231845366199974214346772983308112114067702892213604982481854398729653627107283830172198095336788212611767732843037387783852557524986307752999937900552660978395084375561363926063834547230192637355078971452506745150176268606999651747213556398197189884186386532491384052694739689589817538465718171962921500483308978467816671727832245503184421926835903639985087191818604797982083140759239215608533652590624148151164646499970109500116614802862981760729587316559505060564167854201264835508113633904384041530269601796261253119899100540631154888801643198155850939274314512102683497234415556928596377426132874369314405008063087137876469688708434042885421039675156190377944775067645932380753023474325227354166291125423456663102223236329210638837505969552258968240546712675375516010006367505739584262374807779944901189965795162876007866291389934277668595739873574246920512480889062087465807211289286733661015620840400899656245674164337139755584156075859463591100579353063964357880115335055718662593761475615609503959267531067728401869853828038802981560822647454183906594741762580165601185484067104507988284686805580172215457593280623577556082176766014696095454506032222286666022467007359626552018513440749347632730660029570469016256758261517238911526456451193910895571355960353902237162125760982348013722986403852273569516754183362905970546341657678867872036576092204817726915205877839745702187030282646263868981569491112711957901368622794312328196179061449827307393364773730514669522141981981979768841397554265705232457862580186238762285819925536636908490339663827019357723379692352422548253906644367899297525915294461365945878143056222042978433421317523271049760911902978017299887542626648062153993971043102557019732772648128929517859452690536731402608724535873878618601293976863945576560503848238605324176251531006774385756381129962547149954379015362859663819819795291796226361387226905964335957822917749915092399163546919363774721061308255399752283490056042440123096168062684780976399719143725027908855234542289708226977606072581500180419021923659679991653250880858549569502612316675904223585655414549593455369424303267987176594594414051551290307082457067800609998314898260847556157406484626360580777604988966202246234830136040670047027645249521844141836334279861042615098445009129131922083353264163966514914049512877407656865287130022756862797530718240934413713353291865328655702674186902611915922428859052990607621750293541308341842894942526593109034626176090399742385312740478482383090699089079076013441534594087224093169877744833415530515569385003299274960867512596611288904949939989399291614791183085540052859184539852249065294767489854812989855731304162876563293583229786989999560723822599081667437522629259629701054232220192282594596638029294464184583403926203616732023161844037890065031459492726087019693920786214508076214808874170205746132719125256623765382576362010033430506388688261452516113870127641016860616961753448710103531511438320222993796308894609068273693821218656016451518605751741492736015509383389825887349409397765131233121052310872796561545678912656924998314947510627622079287887560195906438458431950945884355704998157083171490531294143323546005543874606146176050255300378128418156556924794603920908344446239647991713936033092087069439382851646381798100534145590968722484293144740685213868935410102795642407685357428583778084350864649577559870688187744418597933021402643135751151896732004487966367436578256389789618187924734616488994933114349582823461811088079907688153551005251814712556773583695252915848910960973044801812389550923880585019015606541911680028733045143898174323574438630206337167517019933627353330132094761252421590895850385446255316908385950600650671224909021619587744753853358469900080370737881148545187116119447076723716850167185114457708679963502640758939432846665021561819493961596863341130636931328306672311389112382013595859494406192461439673767741566361925393961880062586485690750316958901011595808934886407700303637576130712778147155850630489400041753810872280575081169394781367327900787603630984565729577800267137477328544669231132673957611732866792948756787939512811567420358077298295683475947447478567706327481875656999642127776309596651183629221126508828188110814390223895950445028321184805290991596676436818370468960191762094639695021219450692621384321018291259100178691308973816422313789431437983418578839085888856268503322454956261218582361276124361843180475335787985383881073198052994483017615719356236835349404773710827268256674592601684660133571069601255184151504980879933610330427893435895379430841961513908355349487253396450901695084642828558613479289418008917692231932577036473557611624285295963458906999181040308717671446376038713463638833823856241027894160295031071541160881571279428992495473748378436250236742178890074559241498895349328116028734615406916254077409232220054146994351812157529470944982645664268973219741334806941276712212931819633675258254941360806537217491458167094587962021494850722434955290978057049928350717749025066755381985225028968526698418650543349955725009599637401169216745931542297415858370059999944777896362860830611719138084536843594284425585314454379954976922322027672688881951912914509828331266110287819438265571723303732376995993702959170106201105893595377303904292793555883321578304609049736826301143019992224501352945325760773480927519568878311796345479644139994020087562680389998502790052992555407009929871721274468592130310669372304521249629161292593712312070898506301775544174765916957413499638077816944511355569192298432137420145863443618414128763298880661285572750698736826229556682168941983290465508706426222375855420420787460392917767146023314668171567081578554593459248742158244236253790246224070250202262791454551400148908711224274356461394597178449861328191396645274516756222398282647986809216932326666465517002911158703306207497169083773687965343548917065525669408042918249648383668310940616136433967160782769202389831271739188236932425947742935666827487888630969062722717638823564604966852352296714955135102709425429676296227689384068256430375658677425103840583298051587451636682790220319557796883592513236823537051938293925269443684104383014868851927942333688758994911021004310136913679748452915670810613940548963299730592709888639224905367551323962809013382557928025691430885531935184335567196733064891179490169099184440584325767866558668027085503515636119394478573426535129173742350046670601101755112902333803607001151696673553177954865435684687530247214125304186562026371368049208847868544867295088477577584633943071697240935582448422399229603891375477259061737240529615849932034537656088421225388341861596265808311921588447809994881660552151882638327678511278287926634595795928993329338371848508671444038802041767614510535985486955848423261150850077195599703264318575765824348125558423039098077986350615145821123084385068477778319719842102617369495671200146603317715398983933739636833561602103345246371636003899372607104884210187442074268469631483039864653947616484346275355873194856528455747356184705174286761606457904372751529204514017966327888748626103508003011374013818582182399033793415518943269188855172405953902128258205928276299938681828544566755977259752972430860520563995507997476076855052253351561884403352704901945667990869389520937254653346084265384931523731580457514435456528109552820332906929945705710613848199848967583633207324763721989598008141138367768978277885473029861451073503247970742471058387429511313201251921318089667304812224449141770137780315240852408025511393546233348089187243812646130837027812064472033730002078991684088520205053774810619323989200440079988534737195207887224780736369738703125652487194504924822866447652123389803831290826533955554190504561120003597506508756676596581555350522946553517989828941601313207188868019612664367064398191558789696784315322176944982551657937018258591171958012972062057660256385205837716568869311846934736790434050779467840014553862821794490765705497496084442334900640007080465114863891936710435946801987712218445889656767921184100539661677852130559008680890714039605077437709901947502149069438782431319321848645970110569784816215992346609638440408970650951203219610969336982863784110012507445965732138605659486777128883042682322770973728254890961325789690591315868945440582820496325577845016335418820092493239163529508012728878361325503581618313117944371825230776348130871160473786851309236290054237789577507562160798925718399948389739518673960056638776830176642933794646803830178087186130730301931081731204592460951679941439200314189430712073135799490936941241338531622416337996091432999535895430289026666778953828331687742275722581016903636638515010565693256491005901181019412208249151432786843362308922041642195901026823681087816087316617179964531729801220435221388875950507183190807544342436410427877543889082005988230499174504318475660240026533975502385686539454614005144974600682803034523441214193725773973632615344906476557561247127813495118133891317310996878404859214351102991322264459434328936074145814379283621628232391512939233783169328126235561649256666010986859818358518693941171708171367225021994047142036064705438981941522512592180735143183406446711617021747763047718244136488475761521182542984193838700302669081146669967556916621580036414821454341530483622437857772525637977505668171640184923870747594689804205065387395985663629149143409227818061674150924960953753716338730555432394118867895376667445987328073939169205196317164226186836410190098294264212812072495430610586240962661966862449617913088104478937936945654925803010496250700931939240564790567186466528421189316600649253727605332347001955183735089022735944393695820908470787378391780850346614428338344485022288611946979659789486791568965464285808724359302814169542025547112598235997634622401178326045224049048739937068714483179455545715624773890198862099009290779723152435739602333440902652379401873652377646904951006482490594580552615047034340761542472160915235725725736165270795088552167074580419251660683376603793444779370702468221324116660264021235604582064432370009183259938350871488440374011497698986064281847312354604392855900323262451914749780537719240892050821306989701631809787619320711640168236848038926509816461079399269790361369862624545622506259671949973546104734201628240253194328084839085380709365427013995740368281834427891099030999043618084161980781718799084586712521700425259337754174123406204481559253904320528783036033161621028970120530552485711988920982692169135241280222901424366188385834915620012402066179568240340777116623275428684898194809145850288015201732941090197503433455780372946155302894687400118320238804051632727379175354702386771939972087387766318686403152423633343125373251351875884335008596732239507508842091534379325008171310854309784995424214217514947182811290569199425170152020085129749441051331520272085983422681404379608199002391035226111112383727819873246537934851341055723623999185155365623914973867473862844642802401825747152652296691242516344451731486208780648201789038308420883014833035677968917656287129531628642326553192061913726252429887675406747913575042948171741006163314482254604253463710732159247740702829834935983627848807443444243390010688112908805640946687805868822956147869827567963625882078538650485267563146958164317553036355849952744180998662432145048106580280402169529282039469049842883006505596348355710077500948255725494153568648733046237535097775917383222648992372719163856990117063754416363028014024424736802294125668721916882623018870515925806180780839456024584415999023557597913376995603333163986515550609550539227506747063442627589843840302869591681099057691841030312292164274281741832017629681514872615257324773010991963251342512166377378449690620904382763594114782125951997729712965330111311388149363651852119633111730261118448391367718697170551300325708651464738390897870066286083066720394308945458088285758667472770650690777044393543639972736806533693396874933320699219562541152501561003839639432764324482369098787899419690902105467447946140395402523775485787544624166460324496577205296137945955223169670666528212383660544536262748122527040976790943717584118933152723267515068686470078266498841070295900119952598933694952544662750068855570101965312739189350481749580434500037608343895038452684353029365286279593140172511934473867042947652370994118447895519479486829288473653498717226847018489099063797048313049105535991176973540039606352548116207018601859989514278528170328594065037011987022544594754948612892167735968397216085620916955370861787994025682255658737438834072087170503934289545656852087870333663339679341891386314470798948373521490501093655588764443382773020431649196059825638669143971738187163332393451937840763328982734298956794271404905471654512033469846415241618979671388844696691368080815350001723665600325268682702891212433590331241282953939767735191713552330978050184896063077553641178210343704820546762018198320479013074266585500974474024127062020748031525970231624423660754927371109964837154134320169078592192846291468104031911085275485880335874508738033535988262479047125718354356646644221777338602666587948290284445733791582485600452864419453093776496998529827456866332239236904853778249479001005379721951518488968983712483807429378786247367992188385653331747284200469885384578994913926017869797576086801218084854004181556764590404727645574169129417265990070516620723474082428200659227374534461971870505907717642405908237877576972984025968569255820322036412626721063511242366072002055706806647341958671461779528552811616793486292750006651539682565404562897343234530100929630976612718290435860687117208306231111107302169721228327582956136443856385372586791538009816633101798234097867748963434389723605361672365615831961141031887330676218526255497824812960027063377966768546207204056091092316719002881949226043373940738430462375363448803509937151808904311677944088833767400719150294453649669477231212592302416906108731261347432015186087428832742573759371912327034691973890348691994384813916731909840188748501036108919388985380676668631699713110808237269506224533849796464072072761157402957357698267451834127881512118458205132380501810480522017887484954541752567477999350010861308753429763891254177244137732153702178272886243544085282238003288649106380578528477012321059943351112483959687339575240197825984605108366409168182118234433562541969426385124917126910345464625284902929578007069019331335466134127941745337192059988556712409649425573934705608765661946408500057679530782384966102211367056786264982582172778090153953957460519174501162777346510986493581260784952671163300892389398436345774049829447291693012017623560978832529179869206579809124981599003198137918276370514710693155171821598420135655744662360910999200809585442329134752084756634012007611296777965588428259102618576963380144247065842599391040563210131761174013290584490518609685212472422585112448915574878510965679026339283359105959447509821206707450780993471586711984963454708703668295208530026467087362545416343001492099533603052860097360599908906529356957951113708473715697661218953171644115204042041745588936410256762758347271671582841338194545384363857649868578062831876192521913349959186824323235668206753425405882428204101323241814825051228289786530925493422635244629324011687529092638062207069354219755592187293230183800982581040424895126059880160900238732621780099183458028843999211851808960490659818704237620684811163953379931963330530999849571340440666653183044355734998614911208409627316892998882740925159826255770006525593273757295791525275136981388439249937622388715124923821346954384977912594085180387740138207710138342022814348096691645205635668500072224311687138102147323047168207548025051082048586916438303082635799991762687699441638277382368020378933529011139384344137865117858749872790469587372087819985617526106493136438628327916309476783073210889169885418943487826085201729595558560453641614314582634988871709590281960312023724288210069056015197279554012695240931543153277319319120443177455883320527985568224830482656023590634331884813945326711775692542936874969288756104542508730973084110564273583440667312374839334189941199349812677267278533478474800174476902320266228617743405912328269351712603061337524708546488658592754555207610761678598964830743569468515533398843503597354598938648313936755465827158328754048205196759432940753075779961737131842783856470465790821149682575600701187099412976269828436217210319478954850672362505277347577803851605924610145939994163072095180244720425827269694876199689538448994490571509869726031317959276817629000356832039916881765339084420743874490961189097191930612275867536718963038804125598721356788114312626300382269177364254691490839934738127081333018591292271057250367684824444525360544817379886552113640400367855460939530711402235789291228988343823553936187987158368557959338773409203229728155455466162296116089223186546206535543587279911256005160383148504658270034944376570394726394295032217821699121281723793284154195911010085676824873449998420882520092041912517883091277620688230810068837966487740304141191861416545166535708703822480568289746554892614619290143099447205689668146833230915245368630922873329208426802859198665813940556341802948779798773954158081884698675364108110048472754574334488120232520614924432186675766114169837802417974692793215889233590959294763155434537478741684896464222567988952447407630974112456794643738639645189156696302922858900654106510944146326325911661692396234774589171381141956452370159945727965833490899932215935843785603007101406436352390135312387900833642472179114996347492313315955114881888669082707338959958753562501137957244467952412817011306124758943759459955239909433516737340539150038131508807219441392377455251965464203891989794419610136380662202666051810155328234022786898714644973649027618881246591847732946024895606090887452845523090960052828217226161129712087010893088343696809361781659391297650746145069626044200393028524663671261598591222750877566625488188705125652675588759123209730883610237434411033328729103117141474494893693662637535650753951195743857868049274987200445538398970142556771254145716565168284096561502028360212269604982719842361995350450826933237496648332949977911194503980922879443167059287811362724409231611137869578834436851895909784207526003467598530573372998160179326982896962555682731473154045053326985046593262549630019377732822029150446890197857551787260084384715888379249523505398290472775784742190087682116047626605984186128040183917925382756182294998960622473133079533443643219503738665459233670212530707687881740981281477934125688845955003949097343397351514161945186804949450627785469056409235021048654740107309299607121893955843549105894967725223733118422913212017524783670315639942609362944417102921456333733656976693213715017447259820425262822064500608378523042586692923636098341225563600265317781185062833530153947201387813405225427211817314186991404335236371959085317874398894195375468982636460799410177873528671802742182825110561833059232716954785715217424369039695230363153760498683208114794935871405983328293523804120766214818710141431904686733272018393653967062779666612865378303838652537723400825349363548410112057205702650609019896479516036398882216780854924808204246137064665391317240456140647705307652545711703153468764124662836790535193728587896437320453976174314530092941537430724319128949124995866492302403946054981499887724839844784685868407845862217049622087527785322935482237177525559411234304840112930082548874275272273933046274516393771750248822260588099634967795489196403694573028971983326182012864746415884562278920631296801693018885905900913124400448203426671208902032903339993916541111285213126327162497167228724348130233214752666373525732029687819854686437752262462646477163073060929413848904176952280625884709255186319262292129932467856606247395400842204356009558239986672608590109379604606962312920186295103740723541128739892888174237221562641443196228338150509458696752077907139572687492487976938011719452399116903741686838516494301404826170233403254514282418179022622400317445150395665908002510595058622171780499256738111741439019058073086077605330356668373373956263668532451078834831598310608747627348815114930758687927195088114926629917105588900019340443287413243060167550877804725733778579126105618352070382954769403687776403330180909472454174817948861093534697336158972999812301190476796570418954894341078887153178556261806138398286080580156712615089912451069406644676822078633042887557371239035528750212458900629736666658281136495316684600812230033520488861236550242363600323436936863064288524189340480218143212251411753408519677466045370306989300790819189064702120225063472070535664848544512812883153241198550368724467979470791181125514878347663312049764692130862737469937664251957046519882929691126043129738094069797351489759758523040524400374212297519631064348919735871250362661590260059179623220205628670196677210089531862498005955113072316000202919844428325015932560925695433193174962973755318532374128936062910065455247220692370545125614249850442316295037077855743920042690082640669497980512144155905590244809269775695085791658148034628019445908845155942124544068538399914849356046762090910113705401976983846342316464001519995855744274227280294480115504638511281955166603780183771160219413340768979467058049327256879704363837893836235708229869717986526025504198638452730676415531829619555945144988539625872148847610673659942108040640954937113689499110821877668930889255104627072143419981976959422106331611086276817940342766610528797771221619559052604320644914700374046750560715637249562033606617224383418838588561212502421219951623138091571861405425495354280696541732097096763075694762450035211850245875207641158737815845604054722495240223856088906366192032344241922276190840226390198676517349179020108186820850594265874896844579802858217147575769610248202856430386586933055995101035733238014129239287110901458674444941834514401011546087824678297624788550284828464181002767491434362402401376718843156270928413891852633929323050895152143226592800640579935142921115684444641718561849046669470259412107880837783638172546411753523491495737370748518640641218984833769767152291015328890688984743609413664627727045224866219813157375624473024724248090090658314410235824641301319079075775545059503865565795558523816890290205948599041511638472025409581119266985573815446743522101167165875987758651273191694518837166964436671877270098466757052070579409640533441222378300979030697851828634634945660150927762391203859359074909931777065849118194116683441248276172942424401067686382454971987427624107636740531343622270173588340498077502081079064723839914591266361543026330659931924046857548120617412932743907729284488747967914371774611591463487578084549081631652913059446534552097457818696941675685158045543108128347734518808613533688661077618903149329092207989249273898400325624373899311046513448897017228918069100940354022196156101860371400275684280330995636005277130112421243669668296631304790765637131310514408877456971151550253446599913849751665892323643203613687839404776409594626686190092829774680621833747877044616869551429841031951346684344367207974567546593977303937230370180239713525062220452719368914994640752919915702681992718171247015068602964505979128787663226311331226589756916902755216668107686688668999738736785437807901297457268142086115840453018481322600543517897734375896085100630090144517359318946514714734251836458320666611341804016834144151092898028328025193311568018170566411955366695084390390921603625555250996626651669789593173657105953822453004871996554256606842004567936639245843367145114937975461437354027895325001702761314011840787471985826773048445436519791647491850354481476846320968086584597571420447957578507196741932476641251643380476320415706706122351930962711594688463632359490910998800923328705422998467934547355372629646180554644367526997654219183175555594831484944012589223553723920811006556203553854657468146341299014225359234002077951661629840135695111574618204655544126998454494956330054461038254810985135229896551355781968969308149969588867590256340893515098862735838791253204484618887062817908909098500317241034250638063458097618909741876498828338258355363950810993123633942885282753333868755130595642857406815262505080334391283467096625462827629517817721600792809764859727501735771509744598473574055436140103242120547195686944593375906081984586529038981507702220165329059748692730707274981505089382245266108999643612998839027354946789919720157144711205757739965379148521784217259882821497062147575661315977210588441556728146724960946685019047389530430965967049726108330757361221887720648937827850761466315194975589744614702608995274740717504813176128044816973390705163086671380670664360671157238674775657639473247548732465294956198531206897542855518887755148405749698841582254382398991105991583932937877152927088829916489561562198448965326592236872426423779280622814200554712900615459694480763376296044669593571595923066940568680338702859281055573605095787425490315525703806839032530867924268113110141073604336950314572923801687726093868715575836736719421467729320562511476528548116148686348717530942007963234730687926648050491570821446836175577597478343669573041008424107252150489697469944105395107598354029889383724707407211943208400630694714366713308814367851213860574345149460716241524703239696987659802114671341885711715336824119968929149721312577812384000122111273714700463480272453251495455120922025817839184774574212024713861780591243427465022657350039054698435054901811385478909708447124096900993174459693479554623835543225270425506357277355737766930238751863393397687599361748572990366843343856022238867169165907420270869001900811205884962822937283951945838008711298171929355992023061647787165297827739631006493442727463360322810530574446241643012298453703175684560201949146212325777010280237364573367542574300784881424553390891825302809267783902617605430100826976461800702059743803129803867269364155271554383771646246172342631699819717258397469961268435149334397823300241272988471964992801539808929216931091259537786423095170375470199848602581229404929615739847453320861435700293374351727449375118863375805436886147485617167568125403128770762848085367788272610907777101279303286966610054865820274648834702487623784380006640906702403762396945775011593695861184300532181901015242418247370303812000896921412714903129033097992248840796054522536384380032285708196464723943762261676295532028075598648409333541768447167291233550540647742489770680807108238861606228975663473899033426208810671664043896273421649588474050834832988903564955546765903832012741135444992464280671621181665932944616258243404031620919886511830628363981377399069218398082430227561733442917708085590270330788743552949991879913309658952597268482247442593521437197069465784211903059736028066550794612805523618780698625847033914497280335994769858250306854597572099298791623105510818100699659347071489954284105566148277334595416115666792874941390375234009296252492600670005838429794051602597218774559863458868848043483279180347725278091663594533219743801810661453094351582528409675093340615170163483205097015999759971519299343214227058794649551014325053719266162385324007817319209180953287286096730874835610065126257771451892276723320278331341627927701297135949001819129376407442324616684317999397454091874050881947890911590370635418196596205030689992980525383562826249942978595740463329122611644376749322325218678934915419466385967671775963551688475734671486881724731781881042195800256800393151422270771596300558068037837460864394374047477913555559316779988195747675928875743305669215778997968226742652598917779526953343359256484448811953888303834970601411648048896431100560259735337256004507785038716497296950749210413979850899135521609077162438924621638039463424578467207982637198748877144605942995695389933380084795277931694017610997875035031096476256787140644539026095189606021045639535098215441769663156639894293065912728071903438410452724913146773572432280165681960115810227963437149870780452647580984906516538503004627091705983931201173666856959431654164504732900176265936503778776181336095394488156780186409672255713961553732393405043235334321556581829189956424330620397995820444455322516271518143110021767204361060020490679565148048454253211396537408041159876687798210793993192596334831535315172292871657622612695479782333499029826242157240412712926407896099260392742811411451416091313132648371901810823107963323701419489716115313133486275564037683987782063260590272017955372316971170056237079618754116570687507052806859717373262902989659299536040066483612819026244449737022593184502488321003162608465656503312821805255188452271260440214949372651662557227953821407585057681097620804602773856955526524587713185241887932642702059323040805912325494509386974907325907639990104211288470476556852144601990739666138317591271217369225781667224351566524933731727417279355355191034756895239165438837303090415299735558000545336953050529765719220031254790607793385922322778601924161069406102712727122973062061398443005415961743732248029291232072471660524938224487423333789138819635864200246032845910717008873361231186957953179793823193856997045536238781955729387812916377593555745054015327270452397224296607767746573815137700925443322821429492224819398726686510342967039267533782868568992542631809851280499491058446487867944693986089987498291300930333253984125001590662254707776311434419967514472739495035841271550326402176998503899931514116310591493071664809630305633770408828909162983328178520955024437094217421382479990814784705611481497494173658369765578784469311672508290215020622856195450126619775363403282451202620313609203602717666346345037031153914969266236828352699195425799698342490171797253178101077853407700011916835587155815955523765835084267284758128829903931718072536575678560307277464798572454067290361239343878059698502856309918967764924337614914615177492758632460655501143337469541684060603199950786276679337231245610445328975693860499931766090816749817273315704305807400127901682596426935381957314678419728026912010851289875402393031774108146105016607074849578000055650413154597226773374268626573035505743942875935431607840509408412439854485749990850055346992785063108732847352445406580330559078392659142963787663718845864396024701914363708846332110608034612367590551517641802979045421572135159143220718437557723251223984413656142515847534727878870125669446624506700192357178118465483088671501427375671468879031990625783554414538959942303418173021535687889863992837474016075357400252967368578309143462730370765124741598924362724566007959738648179783149030676959279952586861016540008431076545847306889312972757418222372424368791644708653737026024142745119681780302246014990594696800370967417368190762742957810551133156429783424846928420777239635886749667031183616877484416257763183038681592631792806968010031397982770946666862242174998833132199699899184036738073646849348277045215323490299527535686193513499394227168060002017725105373035695449008056654312409584487158586605238443972159384952687499119201855486788657096238122329294930821142345707473407261254736880856208887491114069727138060015926348099850544271085026625491115914960448689078490464513773945451118421825272664097920077462318854699690667582749502076929990201051550428596834636189783358840595780405927866223574505495058083307807387058633914913823406917675863366119861697078645911447049699392557381841029852769521907670065724501822513834668743418613150080315568388280113974147665012301681391916558962446271882119259825022916891785776607330873169381156900550152543471933833855088133506213992126735684099481815325334224846824602937582050023999507498806251757419490124613835905922616316897799977840380881163358796660782042520635364999947975208367416094736495957414079189137576424332022781183664490677223317138122427218602645315908337990842463446275949683816890095123580534140169485016157781038732329818009786502216270375514454893940468828457500786670374406065355459555296953477346663105719092384601393948339133583480355763892705221672896723854365782661566750326186576719707086503108742459273990999655894496254190061292710202925387230939644999920512873321180332016458644080908700080148235320259845380166395524579138070141738432420735720185276733095072365405800929209577628913182430395053205971767577684721978232130945324254384194902461917029854473655879943195846145621042431138807978213578499432483733614199989534062939695785621430415525457623475088617143879589543839321769751787789852943267092470747632386135891368213427019748504598247032304264969970328785890929715350506612424429210043015187146261813610644218888676675776975361032314741187091701788209647887412313699140693683474887728981038296011549817022132516926413787821466438978801274522494700325118366918558380405680810134105316942051682092493978537211991782914629632085194765834414247815107648805996485835984721707315252981969793429263253623068766504177930190364171122896461481647855910671245517654820548726940717161267962323695120146386489725536284524589448022546318222242360875476081213685418059911962634141433376398819687140340582563209269309076283437975706033068639669352442527247825360062958215595908142577589635244522785654489620837692332936609272527265192134587232316064382044264622651583042574184633117709107467374160820324355212955750970759857235512356872203963174696687257646202803277690018107515760656646051122587972568811914009292890445153114070682755576430385978471685102721438509043965260940417517391347661571893426784019423980306174781390347657519538190685867255067162988454749332863951486629143859534144547412169400465897532262001848837101630844030224436861429288364452680721254907585167971618364202713959475269114177602066474291017355354209931267374854646950845102568064528277953662557881082167235975626477034346276372508499990197743411972168325569110915654172878053959695553377339742690746171786461627028569410804732076457748066511956580844740599954794349260775321979184696836604048572082840605736499504636389954820738473567400215686415267015697347369147923419977091859353365119981264997777211172826727926737656941766347452137329361501701344988220418804957209069621863556878020729655539077274701898417592378888345340396777653187360789069914706933256119927752637857275931399710391523651553180757825503456561654557305421917296059606858771424431326508173344931076116428800019270938504005900606191161986631199215811753483206523940553496954984160204976170650260359349515968454049220338907951769084371188444424242237196761485465154074410632557962822824341187350530956298653885822970672813042050073007545798802210744662712083922870526705821364976657776217279097120389632897432323279973246959854094846417895297567815578309098172724656049499603864542330316007927956183109254491110882587278942301680319021319648683863237324888548899656054851887090461794316444787584391266910195157904997697072369527005345339008289143762558637975782521100387040566246705264561014313881753205306481818040026705768660687697376129085721689407646709353908180950366507504652199056370248321613808055259599104084429248325441446628923765071165804026268395425149966241919249508981023404969329037476315314253288087821987342481004046102083676244320956520587167026443360169404552220338217576065088504038218142248071106852454840720772427830183688635025266566054311135259698458117801154532999524409682745535682921984927051004538097894081117096108613158872078720900481666030737962011678289818278151053582279110979195775753528175887538324306743338935269501672899260378509168602448307470245533694392710489498660418968629840606347985797359557067016084191067792500069835127125155452885560689722061180906115687456385541144301099451192179251550806494609753405397724455367226325270222811825785586941152271643209632291914246587887497278998688002065971158183996135641061184350934755511760540586890573585437752122788033111093419402209199530605874669384797899913528742920676221614157744528373158826076576161517354623593512277726556355954786380335573257515449090706844204229921892905537022007796706536931053462457327897338309111540818544463471939075307068195690869893959560128023894488475403671299058598833453076753760393067268554137370291786506256034017088441460244508235236344507879896867487227663434337900460982566733014447006666996224340298208885726165599014334381985533427026284686383783287415703129526388867072638859321225215089969002526604278466341044125604762143341330339628003106567017947028659657196046704804676282997513419481489954624444556411606784259147777059822087918062351149456958427102131241765065667699887641150697892221412462910479296282836449175118515010057306902578362670892243165899502527551772238156531305792584698315784846452535070110750200054024303331430858529158156812760530929081241968062482433478660124426914049896261146323733510454695197477928597464182269072163794626360723778377331444026787315282319998820965942181352401060513042946611861279316187089891997579576241912617170324590422422066474332326566674048276570862868869709031753936609296022194793462873240393029482255978659157008765551090968101033018819682843758157905548170704591030402837202219057523551112471311165058253074269905868538800928173753146567257606559140729854631658146745199166315589922511991008193397008851539850881008448057351273223924941741182107483650158563365882976046532581660919767032829101103607592072566995162748687136730372156631415613100294306557671010364789223385807938196909561155873093253902152149620140461710841315167427618694948450513262861312046285373550768936103744521575785788911419663962866687269572453592972062679369876927245198079041062515185246036428317972602321346933218734025640501180362679248592285349226807447125724365483871577858540367225380882572909236655856799607984670860724067475736988220834240587975846386693939498705236280744625409871013235953998085664906767925340145373458487479068036436666301218289850540170432269986409432873503274009901557951120793705215061058831622051089106232570081750147360103662846419153696928162239507148688671725433206527228125456578305428945356700013858746889838268685322645768660856821435034365361100102349879146774323745820652669247155156201364646909094393766057334384496332332612491222869152222563973187099930630586999320827383434254157203600414728767713944915792152317748818966098206673862735085447985621132248798247767505578372203540082611246574362105645477161791728282839437307929389195836720838559702145537465552031357264716502516698578123952824248961627163913840017342091541206985112492198747588164325771674648808480601712733944095654332597916649068159436960890327652563635402973240839203455432502187420466584612227041821555044839242447002821228298713709291346675363260912952335554034078218105144093716091972573352198703216639736087838047448037884047085072465669791354944951426552560207454773830703688297809304077577392401665128716639369988904600988270142702826012480104733096514436211973456245128609662577561552403720897344774824749272978135041319575619204262633989992631936931639361319096004279533275349642443179563560274541927882820792365774193984013663360375739962365695521835250311604187432751670706730724079993910467146921383130388245341926727181361176278022974464272768469641509841499232769783664468997650520683657307275222914927031957976682280778645896711463572995498464675207415710774448183668957777172557974990562690223964423989487362766474741837429367281798463493680160499840387701862939781831532789154303972071640697539891298750828609350877848844447444623369719857296467737629040286513906546487553143387186177830783134875207901901200665882378326114167618560028835379086394310872409964826833360110511429619513679345323134566449815873962301226728971384377713651844669212376753512298605254061316090825338786131616741792775710473865698658133637503140902806576559664502677791242930272036882919365885201728137354424820354203241503170851205781455848677750189842247900140676937105285267991642891423875739320943639063909821446000059954439997020404589235468262222704832490610436351300312274540109492910318682780351396571670309752567339338546568470202985659612198371267346172839810654900553952064928525925501617212288368314558020985667194903482418416376228813501737432320048093720360630533797053663896579407046878327073214614127002490636549135735952613473282633039583578631921154032246128612748285692346733081054800806355684294786316801270144545258215494556372873929326885428843932173096258583984725193312218259314298496645139058769352881534246374523814758956258202187709818212517469917166702498041422714436091618445083219745370197138408298228645866013739853320692548694436619846296838035598375090772823876183447830666791726818349002599209466043843175488686128620036355273905240006944602948235399704591210594563688282393081192970211026184339471808778621373469389973618459620758663923076001023491217707826934859304042201192642904963753184742140105411033737282396854035363007616186256351098984574092755717007151730617866851689893980757240693335489102458427082457506728436362375038125928366649853640993832570080218299817840735007889091224457993139310915570024918116807293563039956423242198357457244557781762236198269386601284540038673600829127714419888804333437512395979819340192752925361989105131784472301060250246726840398011150409665141485800279567456892739383220167386211019118147660949438732722481794300927975200020131463040754986395566452504570127406474833569562165966290435905752864868094475771837374273131278157593221033654004654257003976072125790265154400304620067985340111899028217593855408219701112352520767550857628330219101416658206192077659175079046514397049056671853496841018471777416028830047098687688896479246150435402527814988177898077873184485369265607685601720133233824288952570181743138771971211372899826215741684561836966094748228968354926490693208768372032668585688140915041324175739023647522819945272508238543835033964031850707236429835365357945753184921405117508658363894652627337168914053081997407858272070719483598530049324744396465354679850173267670270231801253430176514331070360974857339749603471939189621118901162037951771419846061256658827908662042406271473017965115128901279392801108173840147874087951001852291670413270600028551263147531518308256385426639180437092819828814576466086917461439001628407311893386856790011158069953425865042793014923423474584917292634097417051163862214950701666928836036379877755731913100705530605723628933562022517190584258341804297576987642158914235099296302643221567089963424537107417432257866948477958340701830030840648406672086900953467670796251485863199848971624464790120690683667718950908935582291020657415272601459093588564333583998666817871476157221532372401263863501635130826733254373414636189845419819886711775815331757013267398203061556598370938187382313814184213359745123200694768818882779924110135478553502995548460597475964938658357479518523914010365202137149039748791812747068118259140613969385385158670456175785060175619200993214329986382208262420184861103884439315508744502727075735442393521016875328509351630451194461078855439407039640228345440480511162713361262151271144907214099101271288289364447578117937842776906896729651086399561886583958762520875719817112290155878883127300093901769228263998404475936518016909530934123768421986927317482037891413363955766832836569916657849353857780803164242716283242614395843959700478396097372069612955724565705300955657154584505154608749057232323811806168608621758733900891793123308699349982138658265324385831577491125653055087788219627249289075246513638695732375305940147090566449036167253946453218822550435689430583152003835035554757130156572430806754803659028487678164876567199423448040392645294489038291325605959403216600410015571219583962971059369884117343386667411713762244636762184226962090904628408846250492420522057529222725566643061999117160510707055155402096928941995438207230398506087174455320783345080379827659494663530365942028248935169941926149515648103262035587175916151316257845770648104899844729976944713497198159831699250285615623362576230155480511687582853752327086861551382623407300260046697029066625961266936542635863963966989364825254453515314169513206023391309126336692353014871307953037743919192302657859071538345838748629889768216289142054196816819972542276888662238641625446684718091449493684710511147864157870545196284250083531583155543491317836012899681341692217209885308091249767724370219415507716605211970606179726113693330098979218141337562371667830598671553952219205391461821388889998029108976893613226479702472172952028696060553440841075171642897905111046289027570877835629192249744939035716655043466679620608320336851625673166646991890244766494741500765885958595523023083839456219281558343997005290281571694356761793612577403124515936735348850482385112463849688823354872345459626844787493982924241813151949459857076037500450488493330160113094347095128160287001325525938473570295212581302528817453304274526053487994872054099508874860590535339249922431786622846507060358192892877345716233163140893167096114517303725642704188728323447764552807678855027873222469442868323321616768351118533635197825390664746732442631859657258851207915396000001737650028403584418652371387492217704918002359021660189925098087363858407517701551561868168079140973021511202407805123439026748684060703030854687057227036374382170246759010212866512083938918122967287343507031363542202791119094210142067251801396183852036759023161852431758153543103408079674500457335405879323367213186175537939634462839897805749610402681135866745481082334424146508714139870433442236367282854598144511443377716823683315823918661411605947060424123133368356001987028958799386985501850297644188765513200855285294289648381672376627830270842837008043156638875792112504929791687561293666127389101231138223189060447543923453744556946330328651932768461932090655420574626359454939405843011403569991045896604514092490932737260855546413856043965324349319700908867495434731180685934006990879750831792960741847019736216079842216455313166585057450111099232620325371741215327623848165621642252444766350335264077716162035811983911170123279220128697218926240830610040784492895400357559404679708901829273550798111885024977513803881973930748084393704809013399113130219650055599528020785866001544314213484911926815890824210050987586689063345315800302307052543721476167215893186006861806281273951594389146255665284400816297842199253830973263355331936701474990198409906666783756625029248107229522123188150568013369050942663639293084217425396328103639057391824050231953512206087651664301555357958969841428701297365084479402053724560974871735727829058977728649071123251796529305208562891264453546697718787689262264825450349853243990824768261277763726629141503352359568554662008364832648858638082407397021126440993438094325429840774604377458726251934552781797466039585838623363653059803449702357976291245996000413752345487535873274208320382212412460103496929254189140865844709753545303176700254013046800272348583120601752560450220260094436038824091082302467814204686891973830674663528463398744714049231170907536877276749004460659254147082206509951114120510752716846326506502630519572263735829258328246386073293053152278684996242507130773322025465696916096065505957839831755469592248820121198557953821903898272959707015180268433105809363209041584924411734634943886595832333518054933569243918920346594652381320645519026521911726300163347837040968935295488670978500641170048271306176181934538876989475248127669651058628466237947121542724835768667337709181585758689277095109383400665874683015393899122739946626013142032262573391748682090257088746157979472404379092902670001542911297384301431855391977738827924250190134806535837147139571629781928201927505069494523540638005756655926970625668757563614844519941765128092039969340659399791996652580744197142016856128961953347297362179648724337192620116597176746713085084976520627244746012050731881264506883049696706401210778498471236494504714431629121146296356952843160177541033954639515280387358746726268010559058421114542508174033831302822841250583083307997695166948153651071264635984395450488379596371223988050981569251093111186621844677200678004840424922016735898849314705075194711162764027110274537550704629639319373725184757186940439991031639473983870495334716272997969070194540416424041883010804116552518674231123433804173085746817934195002695624988246148398961980246309168115996145294190981018968326643899675306979554627737169289709370575555805234312494772047995077570613137255656671952785569211307799631155406582430541506448131407534553938559935171733120529199335880921473012165126177911458969793245510093429966421201451439348369975952292527704150812502231496211220275833909322225056444644387138233508272481834838290040589969342547592358084049128681072184670100004198645975593661592269972376253315649624880458911797301358826649630913674933530548632737127848484396069151262403080940591146053940612867803110642258144585005893596654451369736332173116488456004038782536108056454321356475611708522455225871726584377266313368814493288063951630121626326764723068818276319649491999506615886691042438002110411582198586687471871776826650543830676402547767367320344096675814326254865059847589948701243901654634751033905758860865550137596431067945929943044134923187547235287579935707728092501420993829507650845741552053253491305433455114723817727258720730692713176847349233607290887669653624262806144601297370997182572862559149631453704686294912794079482352224393806319358671615210023614488875364183396669218879602393547777355478534156520423265244875009292743124820102162572593083276814628975048506724788982826776778047044589394300486397247363419707888642831343662411714851614860991931021968461275418782974843064985394949744522153446724105376307819112578869726555746938909181757156370503704978962558858157702948570359213656423941543180640231608764618762003756519213598056869974895048210724793732340719863999004107106286995303283509146752420630889966855353252706274277161561346907086541495283369568217430415045270457494463009630669864731444948554302049673902139643761355791372420866122652235901518636186834995188557162098418826488311290532647098718887820768156825243201642220706393241921716572560789349175578908990797034911484683470149572961054072004874330598564254517732500775574092140490539719584498228078623273912324503346464175181384047507425228755601972333150798360191772497118051451446588344855170133967456757607972425966150870751985012823961881583109435692978041141162644614604131593671840156902607977551645830552995615982633407606574422354128820678293386941125064957349646956774642674794954179688468548125406574005233023093610049610260411323024327259608993346189423651079312526140402936849367251000236176966261927803266802823041020760401976767197635799252799932768682328614932947217289948332577765670006340074884744880041367822816970971062460867563078815214892695711943285959442205008037153925320059574282375642082021359811057523657790340228234332186359625834059426076300344521452702308040835512718458386865392600070681733289631292331117627323221052298709318130473436783173570788213529106174244593895821810031100881385628616287255877536908475086821876463864358123395263481671765388373845884892279995646446384857735818359471750147728922932608877753605673547023175194157932732662103650229814915634018172322728315428938766249700380386405494301850627487510529188164596667894329744193824910509586728510011009281679358066222680058390176011573676280263078466900181737480764402457032160164757935961634591467677944629393346401380474461202128763839387593352392194665927496768722377455281695197972273593929244640728605222476456616674157630952899923717726018646850412269918496267117300505108480511073533992586001814812123721750552351502977378408416938534842643575547505436041064679065692892896049950227276590891646183313345704030306184670440042908320647679827963126504604268871408238342054868855926107188463392026100055602414397605511059804124698597181177361177311505455970559705464344465728751598646149675621815405274023180096918094189352579424876006139583805688407528972278891585121510178915840151386655884106543950792192846675638490875644646714717434375727321074304725035332241928152136459355561312599801137426649379526504395738334010634489392188063817746409642162532202155132054687008867037305287090312719090817473325143562400380073049603636454097432524899640556270681284215003660008024097504778608779522006210073222555624132131031488273740687121080110575752198315241507604257335317210579582788491268502000247876597179842513449065566357440776806692130625988815788931570963261418411618586173199546156638418494495932411340553253727737394622887591081585542712109442793429217830054465708078257245204831658313617497966719409521491205226997134386745486380468047629654348668592740736296375484344152366122771685619507018437780897438038324193007830677950771115153041040863685583370858352186714040036898140938780408637381056635552184345676991794762475517264276582595695073619674610342330636240069940999674982220959700539495387642245840549783686069489891135364625621759151237396894312378183021783509088998071049551873648401825928592486713649769973021923998870709665774910934841399520080951595955764957901310185492544144422594036831449501932166258080983105518281693808336934978779084315556008733691405084277505509787369089460811290626801502253389150118700464980001603410812529342115201200184864559206677808236002525488264753757639097323935843416931677072545454770832083788872442991188570696266848212305193173189083986893349701754086673755405784076804720530688509828353103958992798023371927513043429805771623052112200481065694756971879918490193045128561122804397333051823913928410408629635843960030738921065330400528350337322858837911315111086111470879949096038020312291859967308372841608133968928883743056993097154980767103912971790362630131258664556007784485219925176788259983181815930204242093273721958522115058165003122084476886687863779372145914216788714016130832231986553091140681645212204152021864059569771857777472627267836512748723334031489569897291485473687886234913038103189903010155717093800505581998513802911091291090137696658363759387091949696778110889897676054471731465824033036883135801437355007698617112028146431164847366097630008552138900821816693100737265135490681742602175394039640940189587121918167326125913719812132996868457498627365159409485615877599783039543144275721813254624924209201743843847113982242782723725310494328401249852672724361315928557115287858364446615882184466749846139350781499370271705753983873965918052540778600757299971608093586139155085125574334185481160995153231202434421759439221839645203412189445827560646535100432362505887418314158684463877622631135498626792830280767863915243875030516628365141665513816399722287668034290943591258681038516816951800548708958106693266526996416421147574830980474570011424211713258006030527893130630209243286713027624640505554053852105600617484305580319275992034673327682564061320938892197664767812570468801955480348392456993418331972414196258330237212914186951275535531632240867176935026006172278669318043988141112069904008190153066107664247797555781355119796522804786905584521726199822478709901189224522499970369100469126637461102826380169476290114531116681648703943813183047661122145194116854938212947819133728714240448191103239333392294798544084913029991906238481228455764318586275725805712933002099252067994038535444252904105285368936786806574309748791522955544467441739320878482429843384197005801077208476632238827163558928917598246695192190206743140230523913945777735384015400627659528795764969354100630540262546746547592443746609008826266019498944984321854962574911598339421700107095978214371677538311131360565112797124995604337495072060073359872948399244973770739697490341064209376120308119692301615375320237695132198001795318677126067772828907802148503852645397648951289290238582141602270089923183943653345582099523866670755474267923308215375718385739914019885623136496692207885559383671448485937522234739701827053807980367683555991026587836889355656051070739234934097478141043584056549913759943926861614091549774645852198500179826789312715465262086680845422080662176657129988368070127546168510080009741187418008296928009349319960583531792216435826808834952216073035473395241647494321359856473904000751803101726114971049098822822945131552171558903733480948574510890326113728425457845439118018043525673372502590332910520853495003473537320100618437059591470452821828612502335646980099857206841920673822873684996461090516105399026678526431979258565856135225855249474176218112282247328712187834446864436028860738262038956542986963466270857994855289480492465104167086705245476378496045986556846774312585051763753710731396920339020871824182268886645657348338302289759535387600512684310966475168152751989435377302197320271153804238811883775994736761979119513387290591570733931209173477117417419951524067997952246175455022769199262254536428457174366224883640695661717302727822247454717321535644725246862560958471461746785604700789443846104691548593971621654770802567693096585492666383640523804000863064860040343476132130949733896683464306315679928315315397021250502150619011844257213493449559844007174252109721416084982394824155963030977890087703530809440084766562392770311347255352434390713150701343510757463977736533610528166108183181668646294227547511915321919321300503642935910359604949200562448596842436098329018935991202826465414556613808511143789747152545282330413253295515846746245637339339933457225992177790205485843353171967952372629287503762868528430194398529515786991399091945097721433444734544569661420932742243246134266690990406622185267878740003665633443498122849680234460700700130371133884668596888269420940805352738613903966939276768306447756463249138413578211907447995548506615353422466813344569258701495218250695672854872741815790117884454828231358925214652935274359273290848151950327239164425209697863189033665843373477983967694866295062712798056120860788359133797134051778000892955756954996450989037022113986986635096517674499510161446985737439162774648965554292609587929957156724074572285077775657363794523268313616514905378202011445433977825745118554793091940656498388672221186807456139660079830307408662271563879004764644047566985809444274362739572640619622863786691671770263268324249188897407574493421511367797673027005126593801683649392756757834744831215566149237822723190246804802290934196336488965067407023260319667688887266066316418877720249476222682211664202579281064437092326156810710231310160847183077975884655939959006513874991574190922996641079503352592199196057445375630036285787985767327457832699518803152100802987831326519647921724232629050741100899060647905214840275094888478076785721669258314229911811437673305933108233067023680916099687332706889276311659392940794773578677655006609276659399490105091811580258573800748878300838906565097300021995029151321264822964440891365273627058822051687916018127795339183419038018995415454547353887423571207515035760371676984504448411559131154660196367464035954934191224210742044656207418134529018806733118565067343354785949151308579576681817929607973951142321470513792684588543074627477739478960850130403931965235108162286035618615323266711108196718578439123564424843635587404541074700352053711595682522952775712260904304638880678695456516852755749528091435813964590412902061077137909376678996269279338919639724645888287193022075386236945025090872393161706360668730291984400230931840988254512676434250915060826822323334070260191818388162674568806710385710333506215970284795134185816215218214865037199447454722884531225938113200389511724704857530073073940579899560004796537220437664351356432490836719339570006951131130592777292537503578455321458740159576063329650918663796016942862554594287545894406483737764743276006584835031097961484009277004036609042175928194511038514596935794676410444687474840637702164853005492027740130961276403396307340788003506366613416529963798823784640132490408288832754390836910329945683837267547926228310508492696376017715197264771258476633302624539408468131911536158361350759085499892413991603467793972926494354736335518202379503594127405997296928888673683209354633488165514145211329961808123626475087752427981733015801624383029736537893443932724798034878599579615901343554238288786660453971163558223469194831494323173662575950925943797437605504595665756895673457842286195154861647934347988483844547528678905419904486402667426363302436814795081478564765171026592078343995475532648482985263399602332907737859553764894019606404682959010050603780698582105213652707391864344678873133972049427237930898954889293481625521166216769359443159196011972088205300436194233686724799002488883297981410727109931203929488636780369899100948730227873820120699647931460961073889324924983047616938196928958881231833233903264878479647854781884693766926344235389569561485366340274930460351866842046447966453815949563061637242957607194838552525458741450551013806817967165413905216876957287932626213286052766430807695535531391170192524382720719834442346828638481093225279051009593057277651399772801618371798703135003527706560625401834959750141192394982259347492830712575411700286186718660234007869059439574422685827470608315110704486037480360392307866408528411585532713735541701233179309033895425181443551586206237642649168513772291967616449808311625955505105849946167487519256653011564762424079280433201832066892716629347012537319865437060063526494251626517750760655418750043171498363804809068033004681452399699447073366943173947162851506394239045289458337540616784654269392103437081297353955466311557224644096293116596636412284768607909340967950808149769427819631491232614373376299422451259369597287299326484742624914143386922213038123325523296701562554281934010373801357062158161422234119710136284308158282607041536303852744380589275671245465331497947893145629064884804456731896943445334021346805318800863156829373109233462129611409907161291409196884821487594871723986041955789661127972266130353114790664144474406823931539865270519174983731546283907383047036635215050726749524681786448428690931897548983747384014998321901269209885718166329522024048156247120039062744411184467392459116755297059048775680899089121111921132367875680711726020464685510881614373757272137762311969815024722856939295498792179211885565151111295201812097215591257392428638465163995919496121590589997131360124082182863488197397455349710163049790479693717569667798406632538002987899039547688548398208223254113472207436664821494861120408293551449841781640392949687978941174217747016219571532524762545967359608079048323755088069702004201431071113283022972553003750292771759018578695589663526175600710884799309967610153395648975459003146582221270565305343779990670759322058006546848078065805644974875157508640617815741400667364213684363108453247320321960547320581442999670495996831150300587525562291009080021344304141597780487025836108849948242601248454688967857083775264922761212861565353519912859160649987691789388804900708142506760790016547548210932143351491109479350972065354081727471125907843384087338679355650485301069554423305150309872210560444218941536953917455403731928966816855060962475338431146366646553260854358517074935254350689265679796549865222232194607110164173378955663791463107301533547315265357384975478153089364129187234556339097898546814262082300890903006325148619054099969500254570559296291548221125082471617655307285375242990476960321387320693111810945878044914850071084259124428359023466031879090545863778087433403013153262220050225275021410995435563441153869911620943977804674666500118014730190573410150450733679917020962509363111844939035508455286388695461803574827069240933249768839429020171491053301141994065418020197481769126311187877801610601669998301455861062220590717192786339295567963553102465030238175930313430877197978932824642409288339886692062610214850507683764289668199377456487134544329561833441327926933380389518253687789138678755701658255311517666074280215831914413133197145578380583630149943872167241072973363531548595177669343799822564963561590860662262073531047750938492863256050180748564606400264283657046886045564323783367794053443055724343529989071257590046750003685143189709316808243385416130954924127523824771921997936911006176019965708741520417438595121881539483049633442579368065523500064340258329897123265935196967967068952764471894038481187453678334233654711896609693292074460861867802786637672206577300864850301529829709427717149385824510250561378870225632599923714615492148737552629461076679088640254868280049851342225588048069581606179207165919821956754074142617947289819413596040679452521311230948817155537414216330267561717782904909382396974105182344979377374150609809250500603090058479872294563783071390339515603044236124980558347910479126133002435919905827965296601488478551734689999062606425493265012251339203646632181199977840978911229799188687420771877955402372639288068195386058464863506555802948358553331610718726749369393178298640549381609962753299077673345750955643806196575580829291887613803380566638021574236133348194679057477973904242234780510975415445691758458450348772333049371249783134053545515202385899789507679050913808375576379525497643373479756409706335137203595387075328307693696734511654040256026854387222564883304001646369750322088012377764963467285837964950409826004397808747081113790285329424239631529674503847169894542330398282372772571933528694989744319762313867243713972897959894925686079907554868897496154752401160029686321187528956832700544270782875069525940937390634855399002363843286531358820796400379469641908727181840731597338094871641409581883484560588123879180210879892680527539617750566205219330434081207682554977370948255780844018218892620789443188388834026965403821215555582556318091494120715366936872020960066628816164123634866391224478330964679790271718274692719555084043997886414109579133605441389897657940250109641280166822898066361989904528475117437794428018666456108949200828457329484063636290165102961075013686162732145943741432947337157903810752747586483741072464769083946849473843279179393843786893939034655278892977694990962828535696491454490725477819786679542859631730454643793524994259303841003264822503881627464854503802098328515373963307852414207832347824978775079630163398441641256561117468284889467925597739450537372040215345343559508108893398034593515389112854887547927078757161940805435103271400748800323464203450549617704173446754969816840939415885306320525082248741957764429128997992481578417306531115600764570578703399398693944877533910193861290447584029360842621318249871733470571193867393005370648628445210188066682030460317761758142033843804901835929338888785293250615756340277350570407064375823784215812429843401036091469782898979006493942523518234897171840302924499742800570144561926036102377279498779951127816346025182760550696137754968946110260040886306646476025074304642448482201676525514303038012900337821059470725904611576990151426702817542504296675326653743392731342362270961068175787855336558748015864148092136428499417334881901565144647252514774724462395895745717767827309278902430774477328429630843119008801314017599700974031696822379900236831504628619450215480945288674574888607508255515001312391788905632547835671271902883692974819392405516226012164555530503124767435926106852445444569978912295602151720903061199012283757590974348325676484875045340747156470232317821452857287061993043916022846544035153111285773971763873932273204201321767104849323012076015035121279039106996012877694831073096107446131452076130083884349845149163503958991195816522901113991514501448719385557627157153567045863135116420483398033870588753509145181493085677594534499699915134189923138905034218764663411221613323869518277431151553920609666171756427448079955277600686121687804194252602299873796448236547465825434666233309700195534617119096075053434370720994718667855617433022590787515414340219890955044599175257552657021527080288717366722094835440102309606515692157991541970742074630188387878868040036343728344539572039954029747009836960152000714705554687408624054889190669584776968487208325419078462280550423191008793973178401094691649899707943743971241630882719393371033456282348123167948905313206822022629864363875296227444700907590841572264175510136795756592856674362862073449692037878190971051515621310683191444735558975480093712192841919345735326655604960687994144476426910631857401269132927707385901650184132655730609997552009128020511110659291314651025087988920489273794812644783985771159080947265037381141562817984294301294933158310641265244269555832739952280971582873145548241868744557107007183645922850401030844755239168778686258980740046574433691479053284068214141764838838673023333775373082457507844658285583236802273709143962129771336068379335415882198440169009707607260142085369638591323943124327361318982412697791644173084652580493474983372142610226359656767111232758649457633950614235908465468477712159302262569499811174498189949654854676847915665140188240336366356350712995280268567541306654068642191178788292575332578313407882130342519194441358496467230018535371052127216096340921143540128194026892296489777977284727254879089114532407428884943211491356355712253919698520294705976300977828321032876701291056844156964653192925219806130816925991180354434743692805326466317444109430643984017874793826993795282783348934263881674051932234848870570708188959812401662395264592078448712767611882929257515794491002333122671062200207681057184646273616487963898645014211666643966554015454705771801511959107146335736016538334523875483447174913457049196778177430232342052254177995786619965681933191561991289358698581109073464534218851726199584530398702265693365361330013542084991233104280618968647480538012726816469031947875805054841195877450123027382898936651898313058189290504045894465881717937716300844842423632132884166032806372056007887842545535812924672684652837725816158100767970607699299684194604076835548353005505924937938849039443941682381997555794323602939755525783664702825412392501788695264769227339148047842132307149220602718943126813036974499908511035164569838996236524463031410521830056571449490506553352422466796099271583897996265830635030346861942257084593159497977885286706562402517537285337991358306486301887080163233339460704043401966971368129416915899613139593664621474749536817581015084048039835285495722295678888024733305378223029919918518806757145078014279310683574276452508113703489474009894440470772397163761971360919248219747637511183250720245454086239735846552256384352887159096063964159060639262151805589724930045634119175067422270449773239050332651044011587038416589137693470431864674560123455708797592752942645414754150287037222482512003799152304368687386135408846674171171270352747247461695127600378272010343987666971696212430841765855132948668574418555432935091779329128294590396663207313524216669297778939791300131836400036727187817771506194534469177035168463025460324874473627886297550586735306818483412690188479143029093732707185131664698928011092242235935825864411042015143558409687821571112054593945798025058708481681244266499172229437732258935242115596737016281890287157845941107332941141448446618776804676807293698481511889035176346195505051743730190408193352666973772316119746175141765249728051837438752252693322586544763291127394158292448419746857745575350948247013399566429260880375730329563992750587972897260714368318181914919060617867855996821655070677722011156239851975444530254356710514198316165687768767619441399072064728406427012455545063173210401264710221326082912333353926653521616920734802862943902302262833379521399143091039331709274186258039964571352690591441895690634708275811831745317496072745961640936178914847669534287709158402128999123286831478070799571660569407939119949775720561676067959704413020494617562747188336050430817907560452617719678102165863810226440995478092846499593478755275539111515685812169390603868647186370942754334238588751204555375001892761592476130764819952516391253578214259922806527075445818443114167565366596147630975255100689951890529543594802545562848841208344975927446696168515372322700593780735635701929380167190253448592623486904171681112534837390456270558190273380224994604368620770836864247105493089376309473217918223167399746128188400174833236959274471651902954269805519041043289016654721923477397715135141382055104005435766460979958731315896323629382443258513846348828908960600407532882140958687728266651163566855124486422485739358520231268368559281139085253702735957766494411994564960900838683019414916525455213366032523135515022075333868674062710366456254716675950891882161745873350671907700732261335940587986743231334166628404235232817056148890287215551982212792653921603578597387821330231692561552643610459554859314289958388278088176364313761585577058571078057016502566141154409671583883899024479181218896873320286400355219521435414510961701885471005891377487066458141838809293333135042970685408359189259223330792010594287318553347608852188611345519575074478258810560000435395939562706863293635627914388679187717438288428057380956222584133937413512273688035518664296577122545340597812745916810169695774184292163451735905674722012585824548313468443656696761833175530305993593369196299014549377195663008068037214515558536717783776896023208524955295994278658825139252375656067007930870509330145490492200535042566528279186100946119334181540908629735170658009108982363286024039173599863813947306065329355055783456419835684386190277240042061498721081376797978894261621973347799648766255579546512974496225315417827740800457668196844550489525904880235232202920428866295987928983456051745621265802077856367199761311823177958636803263926980534034484531339094584851096716034699255825465726112702149173894892325520585388659366220734952972567760741072139972767984387225188675218125287772531399460868570057110021932876178896671765488041372032821237207585807331938468622120877434911127075568469199691414907515991425406733277298885428809285203429042978811417893254974886487792731346261719106999392833517523458786937353267853031991853847519630676069673650568416570911719968691879905123765105696183584516471582678694451997657140003869427312780337504345065409683594644442292056017504800451258932894679389190881727415030035761425454073379991959422101069050536549959600874904481998052109047649896379755321952340951155414446754961102362646624619019120272281541284162572716781085048928082403898313971864443201610635129577360479502133944261087781901564224706593252972635602416094827257760541518387351391928523645251217039501539799335281951315838717210607774607163830974330956758757041004359054297498613681101136075460539035985639220446163395560666600271621306279445567914778587044812964815281697930633112318001916286818803532841694966789766070720047919723776001268400980141837435736157195234615313201658755941747454859147658666845924417527782393809830482088662707228314411444174801293086394288328993237485514505381588031381660915102810930093474604855961508901920747839576709365185914643419570950777946144897773095571692828700543045495664255845451465218581434508649059824182838469003342962623102256554338077520418238552978854018515303046201198620685117814065456852024219143992898993255327212696884454776407769371408094610195696304296120702881419423091310852826340806318896662621949796964576063656625369166322915370458191831210142440049663441763971697072110379038643926684568579354402971840224089879193787603410961926069819219825717270267420492874623431192804245112908047257207448528053784180160581376369908745634948518703963933325438671012759198458634272168320468167226947786175271342975743107229296606833391071730825015492213826098861105786794117681850965875109420128264502930494174280780805190577399862104106450856365100985247105856142814420533664576704677999197790388236600068661938868401572800328310400049184811435219204185198611476942915292096962672264670211353228740374604346450858296067048832122373578672567597715896362853492931210339697525355541152732142829926434508268683066656629538176964308886930607502353084529756435301539811174069789399839860942340698498633665053449924098488929331039356849926283833132886858832299806017985386947792673226545614282179620914575881895462723812697758627718886048287619973124807731254194270724062876635802758088016086941929916454437126291202800375242385676309652390134116103204737558853501710702107086651389153118871954779185166947831816637179431927894569360916008962397327165431880151980523357577296430991086416109371119978484932185644213005031759603373555836877974853995329953698152426450271305175667409180313699843472783524317897039422088413697264509069223736338644673446243190094203337547366288703726077881439517839918281789800836552855184512570920141698722010881896437944819790152824817148345823652787207385641794249695023004047446696359014064834087773517913815712501099233365024772841025041823760465720902784797297120505279273172184838954656962674820613673041752878285372680859840284141557134691968989761351741403384369445747858451478265754894122382852107817923564756366831858203941135780502434043983107901644512115809713223421108595496702937456422527218556314804049635439714182449738040269492124223096932850389446414081757277951513045757309841839969478104321176930076149301248434250114518326819518383349529298112412735531677157490602329824497874326736638249050145610740605424164409064792522482522259100981715938815747200075064656322186583299224861849550822308317721089857946031680495806389964150035280416470209889077684897743643432639245099196250816794957694863368874518546838389589273458901855499078471359383579187820475847438553374680098284162855405244160078794045456573810545692836432866394365778940812552978899130778232504877693993522379066534216305664968321096119091085739254724445048642903801287410700302297815700906308731568606910612681041338749158747379324886813150031362704451561817283641315643131074422630504226273113450280813851434541562422747672243214101080658304214058722191469269440863003651379980825194633424188912099052285681139714705263557846468578373724137465180895837948946502898340613788644582576726242828962290923084726717100416503761807524933964241796072340825840720993735304789732906587017538571921873520534028608243808771793611708052620758013545447207903538355548121126102141696302474364601048046015305258144178106984345531725520245634197299723885930621939280741268138971240246680241085723290077795664432450115292638714366788628148667655013451820768804333161838613441257152028521792098754568670857196888365035272849237337190542895908223676329677362477387682927637175415468203933210244048061853028069653885686219195376509548920250558286347804870283110637724797018912136263316001044354937805887045145225319922216703676461597304589810077152431826341177873895372202001809718766755008672034184834150779945934235193735171888712604900150247830461451464533112821133633524748089732879451059876027859546187884411074124733243853900960447460040688134743219475379157194813652918130435501130810514062586254721687212869162915419453665485297856634047429761264789145286383181723846860019214644024206820722205971192994390694859593981096071166385657363972844576033376580195405068557742936315876551587885252630290736232382879289914317179698458146716964485248812930787781590049765547151674657723970196733122717362387051712922396236094662734082058624677328594936759800269305657827340797977649840119085921730863560613901206136941042938272517283879623180732161512236505407691731054427039951823458969802138258794329685643058696707271363560346335110001330327096233495995694467948989364234070071909330361619178452504246122954804196945542612939704043765170463664492285897066485428606406289637669629022922697962256161369638340030888190623187693631000554146423073584196385072239592457473056117869658096334426386457478422377165987515201698481198463069579589202956007003525120764385822703910746153480475272542745869332160260818703866945856828605690943206339297049872844122470384994255663934870882353583331106983585337685571844891850344000278334560211823080196653142238477258907793833752004901689167054183469020985322338762484361058583075361339424872015768650086980654623045355307978245459393770508149439440264113384795717189413380367109073130019969847215033174344112959972810664577463017683208156285093753220657000600061936630683887368530461817486300335393780411752983865409061164770700404841653432319056505170891840123924029171471295428124511117822840432209352684316434051965543357213464689775088153252232569200930701027300916237291372986713661342262135518757707309216702271245373627831327311546757551496149365389885133286411629647808342303794111729766958774836123565048545087270817757583355309199662910009601194869785393815763888449265644617216929907091414586447482377010461145914933827378155415641009487074008211484544443877416902833780130108536117124204612751651517514541488918096430687929830253567335291287189713804920068932654067104385995643408208689423237326350343319134339273024154968560985841320020325425613841426364505209503465984470540554970462286146025444960247493051539138368668245722334747509944416243800831294674492530661799841220447583553142130311066234648922164011570590110637558724670045213107735908962657362843146205205444855385123683431946506236128785290794823284781288115433193815143701341552489224519084272287266578825505981387985526380626782006545588754775266199328250670913938757039648941460528007979732094352538140543022288761113970406957081612322003269082854005505068045926047191075165660329244619208698700207794676360688723124012286133901716772948152174557989419645229920130675470515633063236604610520998174069593146694327403110443609295059221914462373596552913459749237288145938406700111207659055669363360740157661738969923732685803628330309541169686181017792463637692210071508271701924463415698685677997760267135221185722991823908066164962852672091429402546573333848880045256095010021592044820938844697551834349398899092406311559291292843656379626050874463011118747087830709816098398261706217424914163276375248573732172292571210932748207984940019256365807114611843776025643861454286340847137636433597869294280805804022154905403783920249801711404041791038640836354433927813098791054957167111005024442576604979365488524266341336425413459686333694305172585659686276772249480965127738273374247301777116924846742801876284005123044470994519749706677734729553432403027604747969332338280102503701683473916460038489380049759009685758198235119211859145533046372589545447639516451070483050332556395606847849756478442665850324288923972642132203000883482152682534533190458872156521588801803549232734230494721352964887953781674338016447258852905221848343137235984309191931644079564846881332115542757780703538342946133603184119566649509795033680162066914592383045267547342174543244429286144749746535643317767879748881172768413916209895258759287853588674144277496061306172330017391646164786736841840430512850467845255245369284821109199530812185631767713782840426123068164258605229716944273453337188740707724950107040419967850170150351597462171778998279800232540112774808549200023013842212090483715742948128220274628203432385912329747770990075142402857156028009814035514798122652064045966558049479096500986707103741306547187310086630309738612332328383935310264412537429964378977519899959331512657249924158485030214396048953672574341009435625689206425306457078866752154603888085990753752906281991891124592990668303564094778627614535514277246432821711497466832478446429486154979757907194299781486528250207355767672265341113481208623055920802934295284557760420218853529843655902163964432646377081967356837064191215102596695240183624142192871538824316038734382726699506814879065695191176637957327527379971240599476255623954572509915941062015440401601055773280913577854391185191866649248210461812843954747702343041841902103966666253067520277095890793720344818611361782810743283322165885015902935851266292661275196605677697068363048521920078951075789780446404849828084409467339001131395430576268645807646183475848728136930996283417296953850435547671944567055368414182026753702641842523325945243998423975520244611763476431276588710613222544115110158935933080325552017295049614064431576493024740759989750340460806802583815351993398853844770543424746560909787633705981630573603345558484538335835408625823772125862806684625690518405423352501884612356004984439054778183238752727080120028483966889724761103402969831414076866784632824623243788062488442515769830350059427024269390041334332445992465134802848477922939880601313426369460805166350899891208451478038720992095640015120151075011252055788172259044722499878705705993608714583436330420574276128974950736804941067988968520530926488056630036855532175082924006367159021393030641347151963309376013045478293581289129404572925555545547332847877185509659759346387739835301723400692514353625783129135396414248522844807576824847116989458114525647816348807770327390263739082064779667300920959277818591111701870822536506812146811610184953015515395024225229310074607059869263459420049408756953109267570549593277032154293605583180715437941367534507423508546178907818391461732348264437897102881218098253370133322989624932819295248089163440615701178600371670317120602078704479779977003661339457814991768152306640315905948145292084977904177441959799225840213657719518388583814952502532242339554491163837899053255591908867691149253291589755973524296320738745544894448150695718593055177530941278609637563284894923504617655028733539650578321026374783123985562242559036559989032217005236601067777200839586469797130644663621583995231854634847958914252078966443071868002311465178039765637009144588787047771765239945291386288133740927401149447273497154868763833940641360739752652155442071930360819541803124244893018635998677451025652779278506076959712798979195931840525707817683080686785143274997059911225533314026958996166628320334377241216267030533695803850954065828900788859892614356224182452861993025491348889930102446895130769911179791378325894855214063208395538170215128950798531108545659657428582694539193935428362965791097426615151575616073830746634303762624232487050884277610219813310346132227126832802441596738493965276984237247846753717769872244364338683444389335190694021513371344144393549055919662858274034879707130833873134955520307507519179504130007963203476077585638006742588584028889377386683732462458519159532874141925893637022340476625212746271606708214984383967647611612290960225163536626354370407931563997843083491532761432730907529483053723917562790342151539064832901844470406943196328266981016451997686122846509920598461369006998614069848481754965565560473432137746815956921017344260673211807848686784509544606392079511719475318603209893981867916447332583209364281435341569928142624678408335311316909053114758804153470580190137447655627660625106915183799296414873906225016202024133272845474054156882684424915733805798738112675187266655617876962320535230787616678210689528397175846591675884581255546376248994667745587334085293272703937242776802715130609724911599934417714547365026133504629854386818882209076725887108146045694321580845376889006324123236091630282355182263866766547082349983728405308727369645924922924005727474482853427605102535997199102533434602486105787715298887119737916756925607972816630693027360497319174039424502917075049922930226875503223008988384358337260979243025241088975648277730053319527270894072806532248451924326836902861655809414100171470716027357397118947031227421764187620584784381108760648977478609210795823871307128355347684598702235066290728483519023836415658344812739262029720728846959557066497960959669677079235737587456896461232404747539971387192617307493034859135404640838205521202460544336326904969640129088944946317295029494263644182558061779305910254332544903438369178682149831028822080561372643497180558119901522639454472726917686009962804965650363889003508599862305419918068231618632745351865271168038691513769161916343067877740234605953087100756519398927652835805854131435635917249648436185416762377748715623684194241575679630850458288782313397246975025028370554406006736646709925980268081436711184007528850762393012516901987939264253878391241379635185355986235698630271844840785650829204554453915643367703687607632514835448708396571969009702064350596179675251039314570698978393564813509318593251361061703379286913483496736624652413583702690088523130545196066165690950353011331129613265559648353293626974229335123023144019243777799944316957573383730909753697632573267095976260292177146706899122379175435542370167445744596881095701779065557343622179896245051616805681843435424556295599847503787387421092514994529372993087509072283575800662564027151499982236500914606036109072853959334545553613558678145361707894389073980041833714512192398322283436420198043470776799041065470421400918812261300974981231109065919175252262320640787289175602752705935271227099955471269943934590059983832110425193462286790395672439741016562101967201633614523882284609026520571579547436622488158819013281155522989294650810073602297400004758298458232805598638997213099686900281334900564153664126556482551016796379818555313385850050502263578424727674268804296239680972321222005180823253700343375394684316385853268562288571237327790216169314502481125075571768242483166455390256278932558339356132258032680537871007060980173355911782852852875179001984976227331174286649420517194941191571913213121409579343623319735309010600065037002652652047278597371624914434444260658179245337527899065951520572711763839583270486449966544371758919603049554502879867387100101056524758406343643988919456629834520254311572401221440122399257283793469006124321135683955222468246616848906323322004049031924813250176169354706381629591767864815830350911205522298608482003721153314342626913898520786359307516656030809779464592012595976766601130662659751663739701653915824148499282408395248115022907102945703171589529106591541781851989382651246304751999666246993124823663482283245942512066825246442851560284724263899301364509695999543111204658646274065619006839905547308776003060061966016688589229438821772809863573221177306480535039388031166507441643385268131932402781208728759549203578767808803695601870857247623218886114649482798679671490200014603787927586146967391682620462311244901616793715647126116629939389882815408984663316110782723366865060284780682214342764041291133604904074468027999261183374410997223969706507865565653063661839099131083580821451117921737799720477514984537197205021553850272071508531182632876848365798911292723835312790866809389911017444426901586344504877580859548009311767301816067197849075751765711805336351019810670140964221890977361154284615876648998587219995559011442352086974846681886043598022762001699866903580448111322464444594756812831398860881370439736855427321648017795365416582400284443941982203043060648229850157979166842721089253058587308518071425556828753022280782824503205128100630616447452228873132119531209265380158907294851110635964631001674866105915878829153308069641975130952755923489254553480727549854129948876855213407618549050004478502801611897693369229468342678087057376671802110547136918900978141272109954811379635421631031135431971638093340642126237899921700263482625505129871418646215891305911259918972383045668152531065020908278297982582532493423575343899215263673106207050621686496662980812750599460918137184155177841580134715770005771391232254954719757130116892609552607111903848922135888565797382295549209335937392627217541483813214615958605988844528772990591940082537212151628153657383168340772105869688163754175941620444138522925883459090896518212250402609180669609372525642579330474257194447591845321512854535809179494157389041853670792328664788823042030147226729749711220336798546485142733281145866863611023905855518038999706968719022009034390446815677484461993789934447281699304821355772708967937748075062695293437825143353541545829010320314527810244763661100845699846244873932282017139596732067470904987489546519756085687069305950953760313873573538884123843988122238674351836390020438308435818872570942048585090785558611777080778101831468209936045834043361455746516966173523912860941930964787469796256461131520610400885747502711904557021636423038861372967249162909671932255166987751771609336844393850429991602813102932402373200775373734301155080392045987151395692907842527599649329855736214595099399572060670689662189704554468714017821003705379266582813802264658016069283227269331428579436295381299739352220149854722313146237154637680828369882634259860058724690255584033641972311068569168796776111645109342961873967124750762998016779801645610908059075929585466153837735506813013232881578389342723436007071073530789867463539656739273560620705033467064119697279592776237814824829645528220561846065122443008900604055740957909680359807438673816084796746669988101140432510248057855288711576459178004660836686063370052777111962010046513488337571778378814168131145366843149770049410316365197786208480707513693153533455068581983607413150036085342883216911192259884960898239531129342922680186837560461794239705105626423593016693518040982255564063832341811322012039622962873110654005384852462514162325490520185189638470699040710941271632492418690708361029536900364698217169834892330178319568211574619616764271060233328114088774255030409519859631285302031077816666007860661475837144660045588317665863067601637841153094462177040550988102382922583529941214616703399691006631770620677557432194410897629515997809998570034836283611877147159385115737466554732916653927079096554126313955853351926244463839608810729249371269902479734179860604977680647527894624675645171374524102936154190381618747864360119690263294061592259993822299011271565551929827746282061234780791871148034607271129051275371395214514559860485935765669805486932017910284299408682686643377977086944906557633181477077328415419771790987193031718137909380083812624983229978691809835694665935161049527398477797413734225013240016339565718865183834412935893110607364791265875255251885599410153055955792228116808292054097918973893490020639157010244853242364345000115848811128187834742305728168655209920200341127847860497242523409785666240592580389147157771678182944507870630306802643888709070597452999389394551270088323410598568518827607815207400629176716060841804868513335830842479893580341262142034689237361777595144692789412251312520889970897354458424970186866091537771355907226836952160201928043409427671866906318604294443399287040820915357275356129220777941824588127814361651403011546785087383291634018718327919610300183419212625945557502371413233956150334158734433518331853751302910159922947659308894547912377159979840723299782912094855023290463128083669256156871204193094837343357172632917673384749184417587092376002527413363357230989170687894624662023814335897172104691813019570044303649870026894738531682963214900657847976003358412409747342606048033726062617988885232754028663971942208377618202762689052579911515238605825999953702388775736072708551555381521745139073472341166770339689205060419211425622638876688356045979649900855835641925900221537148351574863286521936479256596223813400087088498350963044590968698871171876217643267384054788251466246197635447064529823823858048117735508674941273649683480643621733033219087306642815674934988319647025462705123836139107905489037763373629681605718898130670005349239925575670334756413848796638685333394018594954464367693093234913594254677358075282657414311895719607543028322434805340482282355681827653834944471560726821699712676194493361567188539992693935119429292929139697271144311716319581903954458630120634676993756229931784895493597335541462248106511890894066422974029800293602027118001907582397829335671487337884162521295894708754707113370439925714774284754313521743656100915565422252661676598455691662343421803374610216975625135454492819941348363936292126112814781062301641469760665321399639414791594323339750241568431557228001845374602253342399332541708451937732535820356553085725620258391801857047318990925440443994611207845053557505866740978745489902140614246484669116123751641304837245718915359227560913258827334680483997180668474885412905073206193584880757410627989952259795521781825356603627655279152896756599205855060555950628742544095146308234459525157356800922108020311195985441483798147693246529205139513504267739605941227326847673822209291065575754900139912287850014701274403471611820707890442654226745945803666119758769668459078550519649603825386227137898879277702113506495930653924963046057726442627125514926196371416154225058705223951374444970065772195546642642823951055454383008091825687285965635689636450118429501210017092678070664924176295426493829723526455741530335177020921996279312975267632033513141544372220500982839358083160309072165494426406440658801027457017416800785411524441832332097030909747023154959164964551219522461075693027778489610515990515466154171287970246067263061635334789856932961947526137943473407191579434409027449494316010044417359063129034282009874738523036309825811359227544933245467170862260792683973631247047320445422836657033135386335034827538999367047771456367573642376555536876682583485888060138267951474096478195641966476736665420070020696230311102772472762040847518252873754820601211233244893074093587956446160984987968377516678676372448976235097874991975747524307961840323576346667233916469301341240380117161823037733345189725964683913485677795779861541770801625461568549076945927600966176753718567220791832950068815193200829539481700498002821390330764068582810546493974846137150386184410315753404229299322979383681284277012144435583958945625946260677695847717774916021442430435316930180012084408628057006475066319265444074553183405931191842332162935581640663632404634252597086856062644351357151641761426430391718175346160240083648969328080646766884642614757701432550111195157757790440159510231469310251094782809546634424793812486667461273561795739086341220800920167504317112576598316070058835052651025970227739411741861371399861520593846038310931649507306153452537981540302672580066656385726548781967273507406185628490454381165769377059821008491901869852128770774339541372107922643538889828877474551345047792887323495692148204674348520032757093398765166309023362128343484755316526631518278775925063279888649401060404077173980616676517755039754073522962444891843958696490153337011182583957902463604319680888906985168112098803702751053877208018695142283410274105699921388677064346736670426441470141113822866876199186217192552388617723931377491946880654370126553553753592731605455634778710268239652207946332421423122612583798907680347912496186121747586597881669378008894553957185222573790664189583878369611017473462760058329340556701264358578734548648392981740233439914696423421464729633655167888961097606578576256999656754878982459822078489913891328655964381627590179597139459283075053587307546980142027735318585653386310023428508198519749754705345894990757177304139780247295503739652590173342404566045939584560517941493799294512638548401476762436478628427238642149174227942533082986437746174181362970536611031754545833933292523624236483905656599046431552562834818609653315252450757525698380058061538505420104904477579914395251195165002677010380998076535229778872894589057783423947681425752686375814698140215187522843028201766376163290427962582059854669588561215305979259855573205824103789897016078773256268532415433493233677198339334652058131330925963237299077115615832410432092139120646692232809705090523502155042133683932693856642749678408725438259599516176786176222497440038937628456573820109230710250903313113766545904986446178922904685841416524947697487121815851900343783884993190745485575729383572416111045068765702021610226940100282714256686494481236303745826565221731177881308588784923402522707538747423071396402369469985294349994200360666314043571098766634703841914391417123821145914816854209296481482252627835924733641877386368650209390955096521900357392590115260386122372271181154509327870770280640868347843002167901945066724643098771765141256157954448287933154002722547102395088917906450409647041378166593163899213212020483066961455792679047811424199204834752756120010389329272586741856827091184855688855807595486284832775408091482504570003338216346895185612986580186264678606904316450796284977298635826228325454567644698298670063647488072113158134580435916809275821304172257727335063157865613498320782833933654339868296348252890701609662070564754825880615194924325614197809833774446383570966400247968696101007339863976811326741162407134693833328906722750434166646432617827792200048909138153379283245556888132864221032111527512330158772295314664805281427559815813396110125207245605479397733743660013406989720975116013645159020834582382273018239647195811857897231683810394867465252238211300351111478685765773073033923435175308531646934589991483722452193547433452442386109456084036874850630501757724855912655746545082317309638101320182562091463747961950000435216837705247537051480748676665140771322815612146055157808720231086416540478125684631029106939431334066146617912428246726211867488163341926010106753002456052429333072358188319264833474468856586419530809627937905640353464723330842888397596277838513130109538272807769343033614480816096954261684274522333689343373513339209222227023729570095492792393188507654567681157026794564101070325818243571755787018732568674583806006937546717103641514989578214440772853094109313862888977940178774710078554316408935874338049495764996848345648156465926409055014319145189287083251582365560379828804496162267628723171408482017860261901528288454471771314479651439171447201337999269258477727661179306706047956664593951392832766683699909659266601820837008173112564759262164294352130322689617012955792726068862487809536472146280724880224273791953793434006261826274670796742054879699839614347982985064794851247502025508022107900142079444226069415336300427097257881437205338328514553968764102951378610203918631066003991689808665856565916070472095312916267260503182091081363773228206090887437517932592597240526121427925693360151939395919096650633093965698022530808835331677756168556686504452816049007482012219467886365102243352437206369155050088722357447050825049613255557865104356097346855299520106621512862633640379488618410134270583989655723016252048619080380956634861655683881748053810832946609242806665941160736041754379292396204575681021577357642640159936617816573411153513515086470375233162557811440545055319414903591806219323957238787659278257126837816054130235551729476325094900607553371940623292087433058222426145305264790221668946302364397395011959175681810354665531929634922238735399528597273945719761244307816157513773308836757695600457638210837412623000077460798837077014376622199079644499455151876188055727941928437753129157622953425693215024479734064048423063301615734056859738918112892115764645615003707721651689475246719466851308745824177675995960515069240568138322857822887331623166013495935916808823182908852505809089236277467811872801832195618285735241690717967001377725738571546039851848500146094032672671263245216151672212968224273431730725716350579052696160163101459950733751213062085222039991845764694189563004858900290229134558336844547644498090969988117274623182219956852754133196578631400484248650617533635642634467416138709252811685909260720550789474218688390572054490675326569566487311654805437018547742455384581484534494575793985846616816341121422953405413819579740617801109398202674915790172514537321955690353246491328910636529934513282042704218574689934553397746362421881566987625608256937770942765892868671074844470516741626274703188398713435412269128018253760243930469731640562565585233419709995854263871041330282331855453217510232586025662977916213360662160463481507376442309739682540629278339813274214475598809124808829185527990629681607414261819281776484293972341617369566165936143623404440292592319841187012218106360955576929041822920936926127457154551816413108348195474181025029127419115220858423016624924044125111194586879001390173442801771463563703921499873948492053250930583967558579087438923895178287262468346492126612965261818753672995191626054048697060524700048466281629665765137335443581772283891801833744053766223409463017525655868851790461949200910146376830720848782510846690407531557085293196081733955613356884634305137726019182416551432307834493406711782001538760375964022333965238409017832574536383010251708282772977179917194452860938359041611657863538317176887022799145341547679975054865647006197016480604396340920863384892192489204070478940377957160336649176567758596356874440448224319408466134307231967535855065326700316208451559500455578825848232562957825525578630987024118459992308903666458792010227467467425756739019116620946693341778589603212149547027240730950279193129651084930999276875335957577609015232347944937705833394034933497804517795981111027352137717038092282172941475815189103827822559327042380807489279692618533988103847073801440519519540365012837608255754756607261361633313001835026149694780053642207323762700366990658538871707451095487316462372792339165008390177992668625507112383601997299070466249987558819541418208156202361291009288393141725708196386061058344966547896525548555612897517748208556850595820407303094674258100042446590968246173129651484692684083721549199151803579671401476593245441328138005634425529721060648027106973461422267782222775271336550672608182879424193839793250277599469936022929531699085421779066805966164772992067584447591806221480841884636427019612155464944254585331620627581790568609108943817940900585127944527845811182553698395369318626273110756623549417757487262096782755183455991388020407324695132761719784019444563820877939765673727343097690942102412623144944173699832476190091994107505780113980013865571061172582387781061495875095040602594188105514936870035621318714573724466486485544999576620376862706989112731807516862296814715447782698654851318264032925175407147342094848067443524755870880664798179642659028832379672211598560961479739600640989420292915955427027511681871685313208881363152333962686997814237123833913444003262179268879433836534343479226768312565061340131654520665635193238400048097545976370853585570520567757478062615908183208477695065823866318541049249879381001119829044506543840393242412093796681313147114968779318426551889531058707424919766771531287026512634034511506181676947617024458377612468845092019910176547502715800172762314440695233668823407137832795321558219435762610876764859872230265717119868608950573211997324438711801340186187262552556528415315753696224030782327062750061039337380338857708903975057067174219472116625333283927694470250614242930067977548401272176407541104091986221872418352277129249710182571912540115129207705645238129526772795686429656506612166311250530768961988463794677529740856251276580813162313772645972145971267654397711196039490451882207826883954130170791462115207039676546272153372403127913913399620567330748403222536101014017706874299655045537569700802408389328245095658439343325211663929601028081889187417822652738990064904678888268967811255824121272190169761648722377340498853198176488905690065661345513289834369693124216214380717522249768086864931077306170370417691079577166206040579428571637084411208816002430834948193786063630570682431856451145176512307140379171080623396452400500653049335776194113777397246571091052060867889308757445615509007619589428378577589317942245964549159752002135390571843849109855685647591064318246918297920692818845185455138312013217339447379108529676258527925749845367159103822968148496290848202600337303051276214001668738076218476741319682610411577544960290508943264018158962338802364924399302183080980626012898909311206541610807231547255600381585266369077390688551424926108101919331606037810222899739033000391934040961074171485415183939926841745649307231904744334848417089120122113203793112025194539288803899895730085285649115363296199033053203735099212636866240036937611243517459595490739182643972700072396527907779866316987923543598428346409472930452618465868715500559843325564332005855808616021032074485654940587703911085334443790430238447301786621881326763324419962226079501050757252210804968536916913124522404187129140692912027734953421706621407299885631739481701182751109732850018035864351219987181663322863654498372922301679891798531889327964502137148311237817147390680788869120460831442835634260788602092311636507057574720871279117780720190127878918341831948675575847721093828001143080363041521553024691916784650402516294232881318119319367805435515294630165194338365013969673371334645550482642128795394538133138109604048525444411367297424669552757528443007635799667827714579829065301492579325573360081345435794513950194140083162682060615919044735146082892569496288129444155581695048075995024351168299534340500058985147862990729081584720927039032337041144844414635338855463907141803837156705420797942769808180638942716897850435869624795828230916729883007210589506736757361997811034553193250447962889081358040989498565773832238946807487344711433242362886335487941251041642631558812640455357875281290384724294512563178881343049608231828327080813128307416077794411497383306841512426633220002330071892937128980210499967119647094844579244793586921333269235918036154243150049025766477505328553327535062826270731681135795091127767019237246500387036048703298018037848731078075873267911045045907926057706034214802167528535198546284973433399148023025498055892503097565867632278515039194283508505395522520676566101195777060098312257819534144188267832903692037875878927863970668882156952937085716341836836163985877187700862215650864049641044696970575662401148938947023748106983773345058418956364259912681220815015925644613542288031278937041945420741360094732526538773020002422763596577277585050984734984244186537408119998901644962956863821047015629821721161915872074553440727425521225016878446893618894483349197693345715723865335538713124597335485726397923425342484300524219366823548469019193265210926494583360934207548725533689859415025828472067494980442524480378345442941750582677024309353433825982242415698569263210847656331053143894618170572002338809026454925569145986297520121633627772360854603495402368232571036705175187082352175265799230919020323337153792183491560979129974557116053214873703574642407045370686417323146203895562601243590596419638876645238885945867541923316551632759119320143711861093608311799806805007526034769154326724281298394381957873531070968222675533815406190306590135219323278934921941543677318569728659629249794998905019979054485817397353849596984031212295783321236473218523675827212158237972513151416913273457015137242871000024048995434450311612139632618445085451636394276316124306792445815556063093473579002597936787424236369490497907926495283354113495862323055080597691712917389940314078394484795005352123508654294601282858025428414159379943276161763041226761028502131358186880860477735201785598102628790095853112438141540590370935246941920135235590086472567269195608557742197959139768139496531875140744353621432568418829067421981054253095005961746138847925882104364504753760417980841267151281243414593262392294429481793598275464120098852332789374769627174819984765861372563100680802811901029253740526450224756978874254334387803467717710230791095552931106564999125171613476793586469247776817789066844517358073373035514266769234145983418193764195833235297113374339185120612837624983139227498914729629733818261621111124847616868918426176064373709437579610675862746230016480043476516726531512599347443420487028846659391553853105347742220160371552355336628171300648231085885572907852801822359964846272034361336505256306988363768277558431728602961172641876306571897057351480497694975410585894073887230688465465369958185336479582837741500222307840432506370878225907447541221033045957472891831627154829508491274249240010632873207964055363888689600751857208357048671507466972039376780869986223585053083214992706962754799551838695008947921973706587018889411583681231203156199793644474085256019182234173548846487907544540924374144751147863826505642332481394218916146929977572577752953391926606738905521531091967506025873975660133845985188823255048070752416158922120164483637446723429756911811589197075509314453715884479440390495263592066919368045829607210077267021574413560653099235962674183216955471525996680008022128984082820864699539809727205141077353734134250400689955165940851878744471569233645059828617091236483589677322445688994679850621774162399476465346864052993796749466350937995577008984618718893686381820509555983206161160705066686271354407062087702663691178117721040979991694084516629118036444928162026148026559262419378670445109274661185612704847148351099212613701527117382097679101124948330909443082038106571539161995938313958419736611901063151905038779840375849505292990312240914297245492494800304670192481415683082987701310717633094001594783931002518101486163712936505732988459287800444714055002947857211935865435772021789282116814154074822490575084385867981975736879644634935508592874874224182433344944299185987978043749614538356883721258191425928418620894733692287578378133553710583482719063891537899662205090359959311726023548962947905552285051613751061140953496686968031751953701811779238111726500711587614202874537909209540957375954780430387311232150867395758806350347132745591845646392268826767584980904051058188228581603917275256033674753277466339025857802483198033732135052662447323962561618409428425557879792983527761889969319289152099290515806894835687339784219657315539323647875633977344336964009621108876657912978492018547996059774484553958827750284277085053735144784089628306138092127808787411972083327873107504603705181955906103590336527916204085456659180235693205582765334127123681208627268035455758091371944200343639962014843748096260499763421579397863358685018414806875205453508252804116691464625790635916934222737399142350098513691343315282034762186250355260040974901597343953386180639235247476817580458371247102932944081519278146590491935288800530324387325444668480854449056372425014941855531447001064444016211904160710344664317118035549548135448787919852804775162466817258709203895244110835351450854693470944959788695852463833975700863260373124323280270674886388129984309628737358650558591380080393857030843795076942670498513647534608151525074470220613594265017040998863941170120932127706123759074994736728131102580272075039236032188299964763364365745410642710780871736431560117475254009398432578993765740641600678294160967500667425526909671494550671720124932834175515790231223470132763841972578632795886213436911019310672167518946378117185820834886218246406658985618577295459456515719860696239886082870899781709729636379496798487474165139046732327115070524832233646938423574642828134640651740843283909265500178035366534461365133790659551201763781728996998518881756803019494573481901946825096381956990515888276976629935459788904691212883871446276752108123032774051368632205973229804906663005936487058217072079303546039880843601498573788926390056320144422635236995957401535167965180331713235713481259269853110538009835328379024124605664635117193703324307078120493489145666356611566331961158331484643357746155468288352044765324620107178466464814521205395399163820925673856582289947960226644577920127202786524097247858524898785122900881572358603763891983026343477564969915844412827105436827055943718359630290174753730853701394472986121715021117781087022313932747722958558115956793820899068967005705587458312823547224178515017206122863093586062202016247239184868524618644524137330457383011441048846503937537505864905376007134403482957337614416219803909732112212055949321205121105139039318657947146035188963174619673324321211320946645647638303019179176827519574224424053775749374040070271049514366381036108869438367290757800507945789118851149067172064448959728171767549099027418813118055993233488760119979334548726555381508244986753018404664611245996245742184937027759429452403561153380118813006467514950709243927329640212148527838021898509292189800572684167377085390345641799357553847025854930257868171195575398600606085901320805070110084899086122931513210906769181376816469960277836331332209510312987908858976274094574537243171924914169547880264643790641400486288261945920274143096233305922643112579072668235949976261473206860129943024546395944217363342484652301610546009247390599287474264530864691607082187506831282469395179035711280879255550742671652556698215918129049624346484689100004451903137225375036643206351626059000773406616108616662955812669626665265795401865328983464684158925129557814199954550585115325957530212321985264179052416312739347914782402287843773803695967488388347941895341435498837840468002167090272744261691924737540842794856666024827883116314221133212828155757454970908539353499290869673498274056987590605811612833710797756235838674909022122499167518223172562485004346051482668282183338755637209880274396972888893124975513213458775527039368041369343758244569577482384266921371044255360597006996604205223569009058011340025924301835557198714141403465166997513007067127957917352850119383113799999572007558402779554533358209185392525800876289640306902194499324457139598288603699462114682708884655795940831317450944844311466245677825946068312729377508611446256704845570060757023820484622834384801291101322461595218085616558572921057303801774851284189625641731089610629855817722471503273934203221916024905494079897479907872801503840036456287692210036389429302552491547118764243285220466966913935207498530372668303426597761626399172681462225126094310864928868607691990637440580169871131208822791825864970314204747851589069682989144962304913351115118529354492918495009750041579413653606337792264397695817410479167523699774715092076892533902542330411502347607308491669095464889019636733919358336693002826064002031809851980297432469294682685443308069337471429087245962708380515644587299290895029653027736054547867420155413209899897739699003132883584545859953591150662075516193386618445555880748128400117084751404293412885827618984583537277312301014459039337641125038484714195632883281199765416394632586165656655787252980801267153851756742978123218171607965608939447021733785414976838685648601702871668358696816216604451889937978913051532057594504877777366209736595530063196401647559638755703299504918631695109832831642979683892342962083495811196853691072109674547452994182658651494383599263352077254463061570169991916447668950624826786235393968830479072274875215442730389962051815540484734377538029471618106952475542570358108912306990953244929923261244201316996049926499477075769470029682606337960545634427772418277630954914268923419897223341820773309354600397593147386003090340567799541095845400027611720677079433892195328990552488057919218652759333702816105011313228386348337996266452115348098309133517925141295277229966884534528096372424167279727614312181059819678862123684771064594723366903919270424488376699046119457159231668898630607153696522606250734643238423701873688372455190824198794707919746310983582125237605627282209165611737036882997507627318541498126238299442196907976717209111823005641226939141956523782876422680704814286485455049687245278884095888010227189147042513295401116989776779118325586594914550889859594615674845348464923005453218366415156576095089072289279444176677741282889953365737773134339063427022135693017352132366840390166496037434306111164539792602967763142178854587582643820552314985920448804581186137970482009440365963477935468502263826609088383153368022743616307410947536964378040912125152375733361797169419963821486719881626420401814116859363500993854983551332334901628157785796983469003410209506095451074226337923632051473913178833964099471965087329419471879893449137857544973306754810684343649620063577863608750597293038344628360285971685176242476441823065029129484899953488875260425863305472566132968189308886402171527006653396007141541328582509658421579514492965744401149634232975972789757521728547246019874636715704675332561698785924981353463280437522232978240736705196766287276419384009424798441015720704657318256858968353503237590968361319277153713467365015424868225758381415521034705070336677079776568869708703575390260218427983321933803604422635469391591876914919327819327806389936107790707012397147832337358697283599816350558053287852302600828889969152472049356747523394956026058024153089449561915083569056105336415227556073537348314260758114234770010628035796126357422527467431398574939594403364669454623254382764136715946232572919760009272895693963422091319981776020110437184374783099983694119995254081195822430629524190401400429775195218552498524971169393715012702515200506609395888117369433472837743527875504245110273926835214115568474365002264579493141056404365490202121981011327550064987913312856452658916693781480710153052115268310376523499304984795589654142143982743237976475539146385196539886577310876716045713962758526905293642615980416955798074787270610356139340932029795323988126103713463998878375875502367070093070099515085272253318760441997292528399133428721702636393333809483090412667651888157940888102214781452880373866901977601322369256759442142395418533442661330530056461948294082583635566393038666462217647565963251749272354145580771836584347406449603554005497600704645385751579654363894463099825864031799244544608458183434838878542974506280483837300795667908281335888130246638210133069770379866650892072228157408406382527292310045425083232407216157944636504209406263799771678414502048650109541445237044856624854567167466511564520781619429448734565160606105591829937263198273335188554302508176362100817516360038988762696969373268908306942430686883924986168740635940315809239620312348847712339249854151266860582364727245235253386375570283380413051653816042637926428770586722284847951671059574757969546152730858343857636980629439115777478710954988244284216796231900122881691859715175383770647820491201376118469097802633680201126156303926868901282247194582858774168181710907091789347250595170950935456272406262868956848638896510407433792372782853830914047973947523948815385516768785838271583616410174124545466118272151876871675416268005182401957724505830572961806678756600146084504698728626133476075248756889553832468189112317835718005397867017063037987472002127622040193521157654704976721846756989591272750231664531825189874620504673281221772543553610654370642420968509714090283884389513710423019128387187161324904338340234018760564222220137227955168987902553562456610431882631232280549159504189458742858549805978815113838983693106081460704629267189717930019185041307805733288647171989196519890842803518999621266443830938919383300682153466604632018840441637902376344243336496584033870777488712214210007485713118381622010481209537016756458182061514665844745324030787939085798509564634029572744377882531228358355884806450566304338463276966153863835868051006981644364144634860986189538632216320902521259453265579866781023650746377705418142458396343151056952397856686548043384420124052992520744827585134584129669682464532796374909151613011878195923085865986804246460407964587130533549467646812274115392563019477011508436172274406175554450960841241667920988685792155084232269571440021307516662987909412434558224757661006019629963160627889819657504930034805286018242897767209142555340935760732334413192011887622711718142239996856228469622817840161666118480932124779711434870588940305253987191519126325444618450085703830265501308911621419974381901228403786983526528549950380719662671127763718860778882911636678209482238592724812960234108119756839325687853005666347981402874076085363660295039984843611915563055845790514458066865531559107096294425169162578814630963159744226683113166480902219161525022102794656174185482439838055529230693770181352693272905283760975324010315581849298327748913605449154503818541285965755741842873921253611595531376749678909821691036938087631154149472602376022432176340233099987434355544482139589839598800504276045894496816116363541980085042679998852765852387456093104808615432388259221595240950380249216338891437520319725184034167013772048537831378495885167634212382592269029497200213799733765668191159180823745839069083351494139065504271802098797850741900212571924769239858909784611073247529910240790391240346290085309287233914375979037044337028981793354257056061991815340907512559116718094106845215054902018712792203476522446146928765592736568113421471185533202480825498550204762523743889365358244874379619603714202765840515889583315482854196579198346686110604448324143105482995087424322864838867868568289735184805537675199160206738623627525687344871706201749904116633372792435291088725588008058798687593085535637793935693917391050651339717922222503549170708224642584057562809870969713000935942872134567012715960241821601208523132130135518138470062287770113570663404950763936076180880373939549111874268402234591672938830231902160234353515647409374925528054682229642408909367370464313903374290347406359247404793758595992060603828655748117023376845581897282510445165791236239088512437943269421085737537982866183753727777130048426323093779705725315083163905037798600471618381648817742671151993528615092445372592883029267574131366648971958771035792609789194070019813622250303341099838859570617387157417655816050442313393560284376017268394800082097368101651121409571464708254166285583897317419347485815311112232879861596991103101740878396308892318365812755876185404790974486507407437663097220030019386786286612115494584459148072862976583260220289377822321458720714534272363521785332652641555246019806598787863577692047871575934968085256380148038620954906608007832352137259131223965728911008775773814709485381939113725374932661188235461359405239665784396737447308331228996105369768912090144571974398722145824274333150765045506041124000271165979606549085169477470611829548311348994627475682277477932200114089535834979236410199212314856877634321360284184996998778017287240939396590366236142669775272504064564308353560176684958167817492611720375111029112563259705584055812351673891122925493782521260829433265730689557799875549710690737122322304447820361989571642975903532090570728056907022984806529209263103729596859144540431171382267715572614014930501806491930071190349621697893315858248080289779143798026900935345973310200525998812531777652244220871609869529165075315263306112651523439661198955604490943320509345856242570015126407375420418693336722451171321261815450240906225849134226301899698593245808275876388634598012883521967837639748050985506596747709969299079719362831483867793564028454887332941323682959090978642160212307579911701754010324414562604517763477479928215996963569497690347149508553194425805855651653368616578782802270697588881184782499072150623175805497898871548674217481502170720272141197287766426358034109500746231448702787507031382578363223249810005915192694690262632493785109933616970312968634058449772212067413705057409193440132071539638753602157322908847455754229317879325986743085541793684956371947525680145257176797608429358739981237073041559400037450569504980603319987592931412092183125482843025231770477462290856848207293403310899698250108433314907733419555083894378163371068157621277613697436548989498359178819874156807921486355110436385210833000819817621406414959650360435081815829307082094656838784423804278679166434692361646264360550524644803473982352652052285587063352512030977305362767797334690485759627529504840680973820731582288271213856092517801028133889563158036957801821728733600679043992888529776140406070715852944741274019583612382342421279099439013561961889395954503849144661259215280834284432932472407108656535364904870432456844761653286407541625507107552381305430424840865483479510484418864486083680448529422342970899347231745384090791447367111106222253135909946339067629406702573905590012018886924304070021508280073621997954083892379448398419904925761818553589590607860574606940419479295914349307240793587799275910783516270263104906287208143717863477641135386525620408694778794898806498860004623065299879692578873879726288236914147871533713788556791664050320869342134975119412202201950899308792429969263185277853731390360651695087299653720775981072724015204896755031257660296001307520414982091080051279218138863807905015331259428404920269354272859219130107529383431001077522809137977359687180324218955072075501684582779729836938551256840475560082732921820122393491167435977647904816822582554750768096273633808802386295669870202883280690258584912106094989193376321422876642190640761234425729888534853374270432613435557860304729792631262977611984877030718828701024266081248861666827453909629437859658934995594644073815865358986020321971780425394064257384282945304190827002021467864524184949916496773346294070155520633995714814894550081473401837678951022774521487349787202070817524668459973089050398620937817303205733577839412353913040977950434067419337688481197151045231069581563109370021171188092081394800617655032665590210375019703597996205142173745362812355240290359339637883584285272595434651671116414734801428063410119228826711484055726519260206673824320768383205777674311856494429912080767919704917288318717012037076291055352218818814318555635154362452894081371687187560584445981394993047874867945643329802000665025419765208927201042610375403865940691473820130872788050107513131394969270388141001716833377264296226020664298991980893183442261455833566919350215770733014790957934728251601389751795411778541602784656214601324576485284785602854152092263794220627879084590121472910934958065052843359871313929425513123693518004721375444075416159623841292259802008793371070256297555680566312903241908703038894814544329366749361406762022206388342732238330466543897055097286815009703468050561607047781693179883742282828974620722524743307568401223842263928628953150551502799029299357376257431102950203126323841964001572440051892370857439822037869228285416411819589687500091712549367258670975536371997750692011345654991380849498855827662209221147534233659751603379340484500384347604555507320504374848495605724598766238939972169887236355460367798005929235898292854084243104266639081334787317263129594312710156810796407251120797243413147262355372704057519332075233428206579658054843556245512402453595738751104017099970580476032360304440596631937980907559368009562581534612270424491650559432308665777417205019723623389919522736997730800888548324796260131494592694985570688432866974360595785274941006478773197057559507891009274371621064130698133856305829817123332719999280576807641568357246560070358450955967577525351655276670240021445803924535952618875246493638272281885269455273489622757874425746731783559321682554431848415952595565602760605618483479676950035317158999638471246893885865626043727814358299719518021479608627520049530612294359984279606479355073585581888933407354306405503116050587942479029889260340309361206312871333557823636355921671110745141993420237463883008130808415385407011889246342380153713271981573645691116339712663465364593078195091356632817055159854271472236063823226015138680883689410808179519511541516264229032395774635311323186544346291795841330129555087720178873528557167825571626610445840469815575134014428525165156521043018432834041438799518836739779735990721704494203361880816335016115201012116632819579276907176168156216636831142830689389554024144364762711703641536114625346616404366650092374462140717332954336855214028110257204369095430320644195404070830812886340372113190673674678081327549664068018607006383752378846784166545492251209698394045497685425327316210880449848512854678330505535549518157871624729379357506022424557599300483334732722229534503652383523776876272705162563055458725690786383516260358217489370040969206698446633109799061632104372163111629170169178511439406405515051638276883766223440580065265318926200309369291448674434899515067982368776069494461326310186059671718367296831681818483646280214360525361741430010364666190092428233912045137774598082759110747899041506626355126507723293067536715900330011695300443785854139257898366391160911071143806761228462785394650979324021981899579742802297330509213457144512509932075947141468637882761101595437971272058508053386157327758360049500102753173015752213785064237629526027287910561651833815423727610412022678658906228540580143822413441893855020816725688638358103568533516595624427329553985112388105660828343810075029929940381351068830539547588559248966655800716272322654134777097932103493870002718707856853779595066237512625058316776603675835872261747283548285532945516770561151921362417820373299568419433273752369358039565916266103373723657755000399546280967052120396019189918377436917123129641286957261452500346539414157032431900656362350569737878089668983251193001654552016236455019603591263709264990223918672820954055836341593323317861623968712260339108051751243371036571012493200669293552071110512131446363868855925434918204270471867236480246675325198549286948326811461004480810703576439950469288610327600590119299293624799562740686185736137532247011820408823627431225066100182757962783052250427060837354873448798151542087597455840994535151140205586566127237938159550816724131201309459047809562722626430737250585079007052756730416950886027596895319889961943640215243072860920299009840827165087360484466340144182361041728327806214713069568892615413698345657170443730263723512848577469655886518535315272091249588356199772454490804631313012035391273202695453812955774702529475341864364515140629650089462570054133794899561045081891399342170952060852884098891776805500838598596205966123088726631446732263095319823463271982045519236022300661015295328722543913624588998490842092049459821489021220126585549995919452593126370914370531208739363334000896330625541140786775627880526345235907650956616383629770771710739657600264685934819110143923546321569203266635238889776653659909600480676729939507266817431781526526719081040244694866745253686146303029769515028633869124193220251745992816053938766557403280202760270574829841711071458128656465615526345905060370899171375877648126598083984681012881488883913325138607986720478008916152068183657163857779303428324585580030979528202624878480259417669085207367985181375413133949680157243725111358531926389265018841044187334917275444573927446427586530909183451451086560359483764142310141201412171279014416173579579187094337530553748609374055197682240911492769815117811941920295986164728920905050619709887354581755917733176230493007050265771029807508791372761060535253812636798244279824085931158243501811105009059729205380623217065260532107989037558191512333145418638407995464309118307418920328845724571329157175776628595517766404804281871939248934895664049419676039127274571072184888597433155952989911454511587110744343342753354710870916357974734772450697511247923783037389381047022861729860934100186413722705149559012066103071660487570958925711231021197459861541585514297282451912169959432591926134472914310830853954402174731344204330313090684355569998358895727146901748925362892358261950298959448475597928160447627386769958082297979269053911961389094048549553872927432004818866939247695414008638624822319589592179265000013792593117906912433126270965788559983617378157431536638129685898975035662158396833001998925945695999604915227931635516753662211729699347529764403301518521161967187044568606519726315337286068018248980787711485086242157336846159500054143578625423268643165832487037150745561953218434262393057539026485853243501489348567245385338742556393074202643012584464146845426956738201191820681610333505870186158442726495927224633900464211987612534622960777848161178205052660526734333018932554189964419239082178499499216526838461491393551852758709967555101478778201259561857565614129993267190456343083966568071117263354776992637286790606261273808512874007023732875768811243168035860590249833736369285698839785527539473612393198847012737371498774426113435238039512853679175177663396464625069888546226786801475841740534878707230565799286856815315097251939559820622125521420523869075541155119835728518358146986923748935355257495745956013401637543761647609726222293711742220488026266271441935893411379921864499889507390448032497714458943867565788189978109503019773043641577389369371567650071897294069015782221308536507099123061025891889362154891674592125641591883330607224384174062465048162914101094278280238166742146657446520614649985451075715433209960320995593929346196278478873966861320667533995703859988787431110539847336775591948349757843973915446770405105961065289621305640710288333821459350449191848277982156540396603042852734335635370406848028918268552876116524113277292971835166531309421840391951830021455221363185260355086488765796895158510226407138513484015203607780110162275835014869203970251647506680586570232320343666679393817360850657588100015109954132312253417606412214194594374219158487981127931680976066181958489041275161024827360706101811740828083975669904621653388310698691803885297353370263514326482330885734175133184628031201466389587396925765887593455376140231948863308826033361349625070887388454850855281927611815482539323835410960006511039249217628579976999258886945608147555163594669533011158926252091080722085323073876311541500674203554929293307665746874755998694521886541375778477169496373420430552490971877517029988619642363270291856792616944738928109810264557900816269003484223414650686327020855206056214612269854077667304571486698940984334004529820301192220699713880944300744230123849089787437335674096837047844704997412428448117385471781967806584251830936203834625273681031859096610187934195349124140435987168687963600311871046555439451879181133870152941643714106352059718064828081898613351865385307787230410669920119614536427636970765616689907962874244208906153508798379585949014495000150217318285633366078120555540172117515964022251491942074185405860778808405184471400374539488299817059778171835629114838567217847903114094176778347776993677471119509854754560200994819393867656016070366820029201376926706482293802893787056404205900765109202653188379570916483856281312548544369479677874604164014050866057153813597393482272415137384289341599636556681380516715252120217125101650167124620397669590821435191888302414494370741262478758786445127570485380316213554479396489763484475815709686702375301443469772119049657526413501730075615638765719794876160181279802172321352224598855226222570266972122069098072373211760640881109967030671404438795392723078813088440009029424508063063205689071990355346424431355045875601509200308642939587849219222040166675955577364657977955605817003052152201241200964557994804514384608212320500575233726632023540718066380886580327385429518807706130467462800703574903798005566710455974348357753468049487664139854558069712312954282487047626960175456788568216194467899084204169470153707357434536587591099544065847231316107697054380934200369523805595644353877143454811243777358414354691735799490570744398582209279918420725913612647515936819017740958129487299257469325693558800293382641972767937589131782898640712655318338724189609883098745486273420235333002807884134507327043596537298731292187949324144877611260061488059455393667022038539492607764480432095243247224853557270759412929714686679257385094523726232868930960695136989054546876974204218815007407038478108382237809810226331081326713378004596244811617336541360855263259447449471058806922152365793737262883274617103270774258551091924832560274586608328432496753299967659487708615860738551725027990349728895908118056818070614921532829552363913853098106089313733751498927986059783264872738718790451214581015585791803920346191614125811846931603951605114415609483226018406796765108155899590083578517098684694437435879183847468527639438265090074576408161113411758582243720389176866667370540678598979470008853044707830408232619938017047481250989333533801094549087783038808375267223140405115055358092575044933058269145440990128004787967998699061354354038606550723196060303611510299007258137144205757748719643994140724725174845935563558553917602147480051727934527848934703627470643802512196689035336734435429198465798820482458811296002360332380265922839972799150996439698697217282933599841978698638900097702108945825026182055103929942087621008589721179385202355027402974102145200461450509956812678561107834090449299306000395551261603384554950917793692418039360115658561413843168193372770011776261926261013035117920070469484728378414728039726215855659833909890771647395922386352960921005620258606979553864958307007783982107848806903212677731811697434215552982291937587420462697336586595506839318286399562086306397981709523846661517662482893654533334679407150724485478275144421673212163094807379319835353176139441731268307669265032518112043056152869125283870107838174941806113167996129624557017889013821829835044706618916399368904229466250742138751435728599425365502522868286409920860541453186276120283331757954093386319120073581510332476977990336258723610927646824614714547592378002741677094617605908201622673154562603202548817634974287529198083363504973810973824709952733610079167076589094698285512077814144590386872869379538432602721863232116408326070718430009742474304394170031622531411628736543383551807360296713219264997777056598888970573960348902565172193605597576115076460305712070726938683224550140157330317001610772228843037116712501125539526967845241641328193368800928094029255152465320205553987552108885486807370501804555891031483662344866447272186801203580399150863943941493942022346669637639703488582112762116579206134666963011196239202164570571903837050854411577825832740828185650742355878787369118726671240105501432977899233760405880424796984195461035767157692191598040358910199923035199877874405347557285935522189237582122026045707612509845290154840858742553214260041040308078991985222899694805387346857300583903781118902380444580733118245278719896127983978976656009239280845995083071341926138934077357803350939164971640727874458726223561518679266043344480652234215713177817072442400383557206628532085900962153690794968707534592569034966471439461102829942365868695322739746298600606287344571803016091362548694467731695911944357346355562544816916471739672384466424726524646363790124695130591596610202564072411715486322054173429192426614399880476933584655947422247437033806416392706202418799165654585711563408577670087152300565833657231899370524153285572111963955196730218431459027565932186938394909245959590473047368853506485287745403460497939945538561883560806617502902642525899689411233577424208885311269117826653423968491949507946235559241594209776982875935589282199912139327364175521654361529380452302682312398099057603381653349854223378410724788990299420107888567054945938563029476378888111204066232450630732466251851711415147063783038918021934815255121937331808078261696609448507994247035455377459863825182947063480414208335516938881146105609475174062015938853471504834367127853339410270025418399024464199175016656365145322621043933231213778624475761696190456304479267858430565667385327425853242368969366238917450633688845374845183645436643341170369580517955720077123897213249224104863573230361443355069288524613277849406290305889770980288409449273473410213085764129784530446051934948995122595087823853178516932519507598734126552095669282736637252200166181075952302882107309138327873576356568315152430777422504500832619856329941632825319264272281090403494735887662208137962578220311483988816175605016422683371596349484382769918976482336986890195004403492200776029689568448491727621912326704154880960681938139141894955579189137121746294441770681099124549853862913037543694682999990459655603890827187860734146282888735902886313046624537876239199690383452792699968637526259246148701598671911799772652615398055976511650491978512780687230993402977473226870476797183730878346516699543257140221415983908105879989792441829829957219847294060241973734344168251440413353328947246891480932587626803493728808355754482341967123588109484377031680387785343762902193041886616041669626838953633588439144704974324365635284478384981041762500153779758327206504082226249510734346829667555333489256903691850340774080956112101471715790458606372767366945048571838752978280775444576581778720826907681847757697579435905877653567283687154186147106467649680603717849183580244759444857937252090261614621347408946483430699732601229180139018814891760878399146569442614644492469165159690522151405610845766955392349543752036158444987010240213695489366131592923969955350898618995422066953002337458558836763948308779613575188045821567337130443786791406060570145613321255347352942732283929353347388801886297300568980054994710835492949367859488836401938817941249339937297391513303958885115209706880323918181629212456653480812689627406191066763727962589257158317548463183946350569472203189526670986027772344279659137343135790254940744926097571929468388484154516679477641073404493806073478502198765000232220886622041181961905951315175202556324178183730304826020995277910052921137235946144603110831872486207314373927172839021922367026600788182190121308787862943789994604202712709275036870127847323571263489504443651883524532236748396521931089609532662664698357089704030068251672887675131652886499416351511527248501456107080921028178758567168242489936861333847127325787861754775592719758633959503609444599607892750458273778519546349552924641850012583396068192905970322718766824905720340562111193486682286830427332709099592521492701143461386485551931997517920561247670705340332107639984195237145767211584492714518574735784624483164112253829421297144397273475115863939476757084515080665838437055925520375784249992204244486051478857406883267144229150708586198821570439313898998009616982608922404606360372199870001708251823842813754059327139514411303637015846167467772218857877940757314447083131570402272983377769955389635846936302456285561487393249424859332736753975272429496664526937640816132125319782222675383382384942876413723554598609592041663138510176264312784865097573164584297483226153989030410085027136820504400409391023356041669701625906842005140654159260232689660201750534207091456734528895875140039191127512861325653148187632191463613040037103810118460687951330807548992942483540166095804718141496715226776418300455291787831012244847253819022235277882684063211000312045824007399781273041399095614898167767808407589295019604041416784241985089969577162162891666007102251218950101482069934877268847704640397183519068779677397377149631711480117312128856897123102310899951329045481264053487710851754060256624649125971873381410417786473774072372297565421149953292821616273802215258828997988313524696168798660017397263179463113536953168622462997184646097892471116871521359593638456497967164892275084645928205779532339859464817794896485406453950301805964841357051920428579988766150999780113185038148486136694305277454282586078885907691302285592588244895004772999754013813746263280801057423647497692116590592192571094540961284583313424644382337210532400023329632292631768695079790707679560587598528665159282769618016531999404777236507012496538376144600584623611477764485542621642139808889140816571408091000386681478546089366204834251726849090938187976696995628152617494258059288094511339500423780459571662362282128236875721536897577275222642295671132628917158709140264796541361211052709879768852939532907444153738504162862307760590917036025856933406269393244241694168335643329426368906749830880613381900735929106568542659167181952945562514465609262572087935664215724964505727541446753868937437053799343036968273401531992537469191251094598424417047627024772229890232048611651025187338513755862553348390209455116972598880195270704272110786324287929869687191444192582276561910264616394948549936395300715139875545451907823078657624425742380974083768955830247573310087518050260310343287490670890924453242742678961466572379389651203398382416569932849184972713340527557264003405068336293180148756913337896498970319242940820667929432947351197773173742424889491218932784231647978096617831543360406504514707652670718974781756724982970716612163653490070615528811658314828097441870279212682953984638229617752529834609086485921439314172405855031010296667182534597366667657668391435638569992098820038367112958708803718462822607076092334795008101353088404601477920315361126001791799814435685811352519861573536426808704930227539210523900557452131962442239304076039169806683037289582309076957903503813671179195910593971659928542904896560246211655572071279556132365703200939630636345727739256915953782972034183230514964778869461165949429990139686436487897738023611574643594720160808777283098546520090713426776175885262535704927207456937518835171106597371638490498177242466490029127935860719682063053168435293725733093913585824387012464136606616521001413070621753164732032533920106982778703332662148922619538033955353486191351347264540505399197661442638390828023983258720247364576905981345150229139955550797480762761543521614517962537124886647948855952050917769101707793808201275174214047852674001751438527230068043242294625974422173237597489119563751949062509094242328701442742737631660555547270249481702249022566844388239538980153417491291198690538996689738007161845578009759074606032384714389230991029418847082141907677129516123300608091095168651603474290332051106443252012526892385794692122170331260300857570255660181767962612879303050518438900872256313547136861555541350230063157877837076313327381127979905912647441066429279501431874543806883218625098641076363975692566187073637623981333695129981966335871718183517002939603430763546770042727463587897041334534019733157200849248010423168557662826904346132737142535068304878565928942340304798208151213740398356991567690577838587658722834540913054497797687269890487942011404960581110797706314002510560416740765716178051425019604385356007840829202370577437572056365579938536883073272011639554803191163974508997348423786960596256315644872829247482890785282178595946763061037654589357830715161398038749842187934215969946722622372763395983617017317902869610371070261165412961368425423957859323206279722615086483073085626959590675879883360261949845518157888867549302707463024600708417766851504761697922987551630161336867956861798489812459990604561591827427461371126147053144853241995878090252395378834899212533076005659591775804903105428654479451116545145636010321084540749340552651360970076103361733809732535793283532541788424766888671030978788544653450080633441578154014796745169836872814506838777980614934656483625979617668936603138736902720425835196456676116988308320229386836806250689316967873472173893288697025857941301175266363680300385659735711787437930994008659451597175158871459359030149777810703498753307312396718333962741397654751739503872377085520769575578150604826979499077350736387523811314132168613855579624086387585782394050728053672146234164722433055619153679398632094082848873969788858233051350181658096621931587218651493906812814989755094221861650232132431792274167151813066798235564015652450715290884402301336269434760880101227554390509883003099007403135116712517440739496122831110000312423010203982986406100047837053272785548147224662745042963369607035244365583903616911953446010364485927659682621067310974928602485225105041148387800723373169278409582225058986858471520696790066986213317268706924741630816042706255235799218700020916878658964447772035624755544582691320257707692801183056046738111023394533447946041642763664217303790364785564853483990994466292003366909612082292421873438474430333276887081784206599835634175250888296436481645957335662914512127251488757039287343302253944331432221632019054760171853269610408582332633094724583537821539323925301208131972408413951603546393211698273867107286211797075155883121559004196709792845082555966285329282999637130364906286940329752577758025334697094464739499040647858531645675656710398487605441405225716970342132291725001074801746611263208810344570795234226445752959693941713672497297310210027327477497959204246563970870230916726841303195163800979872013663015013801202014259655249430416645923066287727159940769911171162302306463265965651699149308285734882239751620253783031282909236772498670699435562283168672657880985855490172525574685202684598927362631733969790280098277200518350387873869303959865287690332642905763161971898956347677506013606052231827908753579324628187899527917174527636709004437265007278113409135561886586964027169908272453053484036877545075004197560183966781433597415046819438431708749336679295736396508673310516758368935116295135863228973650402811748314271771722370034495498337657981199777770087449329688305304607980261196364562272241451452039235956625245439652372176927637989764578220016051307010279096092850021198933397546873962093590970612839205899112168237055743748805749323430601261827551093203170298434811038735320771524729738983501022865437308064305469465698166777522595376070771815489082277327341569055517513972507811329227875622187969115643015196247494302071611027315435153029299782037392117293095499401467170684099858983326407312278264214231996989563656009167611846111407458025298574726325049492318699742145049465266154185142876877923703208564550576680428925458951734776042552509646446308407003666106194251488676349391967258432436992591469520704816126950357624454499473147174101179655525751197703541734292133756213310018152074684785011579697993917097034892650674298480112075151597410771602225508691656544003919364062432762640844174444001170490092263733693391546516140237357439671325582400266003973277136743091222656262896215967325831770032111490032104874121150878715984638413476635067339531772926348632373753233886027957334047408845357547006602101860387277232174105708143950678248235111108868797334980708314934157337145379555282675150067594664902078498979615183459579943785175474397482370670290384069209444190947256932395662031335549306318420115414806060887828778895725997723060470017611076609265442608641036745971497454333711128638651108243475636289854591196466732350705860284928140063449071183694945314194928343882065971955389599483056707190041921839805320760471962181684350928946269682031940713346100972126625848655107493608915352925972173663950128554518001012628600344521729849004049931857992763098641098012599196726222639247030464363595714832566428550349595418725362284560459480650422297982656107322981932992738126978157582088616633428611228869012490233293089809409968521280397962114512745005302874512492986968989413885512018856476199847985811793632548330773097687572587237792970385787182969351401835339687768994695092480299876128054509737068794620566688897480774607695419297466078148437995097360277260659263088283209197075940748280121846172361512187740796762592870355636162087711241596364754302263594393048611189090652789470396854885310348135598387448427203217239416261961566946849471557414574059837015198737594126527997677920994242661603921438183381896889945981076155341607168178507681185923430567804067355241248516248277204359931970308185345259078627266609487230593266412610616134136786726624617703148397652427869486906038946238604282588157657849196240008043338552392966895448337089020636157642319902495364045111326274235657995815337156022006686791652116755151951568509010539294088491555595862248158840092754799375264978176910325429168451350747858797658072323948150265734798733982455639242837769373130845832737483060373721798310849487921729781359807073234037414219864265529923054594332666364717986481044484396536335122823690200142929020743170938797551097479040036510639030080483600417703188756196640895339075932963082460162250714108348794719417163133020544332880910529854704083494412908863458023155807148577501449216889617740702163605761329837484611929644253980417319166900090324557431069272827694097769689596458241250291231503542033115408974784691381756509048053978531239280348776121964371722533561994046201002373069832751160559648944393962053274239354187103948878277031965173309492242683294314476866248390173406739928850500813053398234928591150756196587251998431763725841927491520959848137826656182865893760438405889367719383743148696237591960280678337918545880662124939993302968749892848779745526455714401389027204130794039973844400524905028367899850853565395297124274224585465455698666266923966547495360407324404155912660876903321569174087839266392638316199733726989392753528930624932863493127434852304282938424634973655434609502403247945787581655030334754434121388126012141887055843646953840292046259813372829979572545795013830832580164598305145704083315966152774303128597810431812141221599581732764745288494570763664614510668584752061602604440634396950219691682978899720141042840067934282972389950445054386769267842011609656791010401029751343121479315222558860854979263524125271882646748513765807549959916727151663684397204457152134146496978805915944113451432369313652765636700153313886320911516376976358513513004384293103563117787383557459392509089870756239537809666671652218900223773768646398657991932288782384654605439548587989362251475269313220621632636909979798902077174128075322289061619225326663903186077546648122162552386834145030232426259222854065680592829078279959503917250328122733130309647998735888091502918776717539540962073789105889408182662598696672437843173947644169052313793982525918767710151568946264885321963290784296709867685489673810470795567187171182416534238054461117415023232572288920907811800352599675512091737979090082289376007201624772921379273747408422463943578661069504980093438367096013817220019384379125018198595343033146630993933487774900485638343847924159171213214608433811487009520428688945445523065175726222223423571950585510048950496364955219854111120707381759823339625579705634925364278225301017468189611417134941679664133212861684858883550723477385236686974459340086055595441541275771591850089732671862975137553231550883782772829572687059467557359074152684621196934927686511671785775606323044648247404087380936785729422259687097728249097887112117826956416057227692405830349102365653034060900261257907411750624237163989842403845720593007498968295117382249040815753903425392427017526595404026522113970109762506424009160158858852462906339869066958832982084723139472689914199572384720074524587624541356180934027938165796708879002992280455040901093647314536930960397609112450157421593252866415075632026177018269803110625861921588933772884912602516653483461994564186568993576861595242862500521797195818819813939558875412748474956757456701882686056857668660141500766047482589677969541052105116055772800400956911538836280394719509456001826605552664017496888492918262195935033980783830993696096321646260081999028360248708023127702648717774328634676532602072998642411893607434370993393578604422979297416786455937257668304774341991675234862630804318984276574189193176280229588850780469828998734133983811030779563726003712918058020255001533400770710018849521897456921052505527664425890338976872436585710158294460041217459505862389343827211952751254555034930832028791359669509001631356249714499364564305873960837282800255737572711914118587499499982140819900077162745292855575836213962707331037547559182913594546524252141721583200731540948763673925025523432635244352120891218403662238149770922234338733243193187789478448253727519364291714514877837445784937924513926113789815696035002785072082394199664020662468840557185098801893297230543390495588040469722546275816567240313742577950527285216872358664579191640998360829878462951978025158706445493344367597777242373334058780934442804970086351084451719981853020894704627020795298736497990100546035077753069729084379193389435790921708549503353172492069073234678370913079409114782880234118146575378445594574186890803600172880731086300376351589332248625575179944729778192622122410812213653224008434540791337336872908439559135733610626564085955240789162829909842366652353027329194096337306414554989117824083392690828839500726604813610984330557379319722709079198560706922211906705611674766618789489271512245840434262817468245762414967888051524238586416424530960767846425147059550540088608979098483592532443878310097915380549587315237076904040096453164435735763353320991576197738575733723316629279830820530710085821514930979538417514438350052670896393601362322766725880421036738014012073293509531601914672102330008094524131298782191368421370620374693486553901275287668946186953502824333057050820672591975016085949319210742386286369638297526515063030887983541186430400639734207755337686835756023698669619828799357514634329357148216516420675312671317573965582574076894568065815738177713003780464427022336956772224899892875315896237025761697886420368199362028179585941439406672121651798259861040436798025908500061019892666444565663833448444494801693650473503150829581030212855393703555745102473776664943014069005771491638245087729007542241270628251919166213907388798900226168788442554491114698819453484370573662563552849842275069652212716451541001059518013274204186438396444835705479915682726157995045766645909598746241678979928941961712045384028226182770170819182338919291180986066869341812165533729667795501416181522081969585292987917013653877740788286627973969383067106052974971657912075624787049619675284865516336437341795152895364126115081017868154165947357992468474852338471081213175603838832511138099564135909260214023105716266106564377333428678700550170877782272645894307393046584096182205407188292477301681761330258382128443761410552563915381204951027859480793406767383723875047036052671439426926506417944491505826725852542231700982490182306574425601050585666414552384638784366353390882975128526334279264419605742662998282605811217292811199952124528515033625406594903940822203458484476852685120628509608608288888878548507300308095051898293205629288241325766468541521231912230942934650311994300451578279736023105590639112052382228466055401380046734846690041976924514197410770255142376284955562822663031018606803147704249824951626061024725040753937979686277320152406510280620110617268126257140640889005418240762047060182381812840664427241942972558064944268939595670797446857777789051939044515929818947368551037121028318102917218205309820114291620372544578558220701829128103491205180744557677045980746717342939556407804886367050699174376861017716031537027634754091362682079407814066022605268430084288775419857220727722670855861407590650577085154264798107888973833513318387379654495616507270613817336150813200081493788810877190958252307469368903782354417177702929461253674185208738528859011891763600701476296321578244991806132614780702268174234365617621404079380459371022611549221907406995141853329304526437952572673438159818077489320481180880628518325733880777693977621383545748484421390198047774130123870206121207996180389995520901695298948470398000555723002341497562689176322257032839261743751660999201878633325069877350116256412490615123076742150929489581761866669151796287689282699874359419764163537526804221057810593245576707827479766992453385322536527594769266811906773227986226612263154024567000625247409905780567896184054121263375215898699077540567134646382152756071248310415808863635893150137139947535829316740515618386318891051168232729907259829921221922102918287577396818102112950959660335145312969265078212627252734345229130976713880809518656612101110830847388637299785135010950328425683853810188710691316835801415938188572535316122526428323038669675824280212753544940895228063401685523894757878801167882338780506652765328563547164610237101374343489838964378947382459842352273340207361364873656722543413153514016405767530903909579650195400107409115285506315037191652474993170023364817723420592038467024752639717534586820649215121374906848357496408339249074115880851301748355300307509102308124695542325643616972733554606593991996807122215864978521588713972019810980751366019876252060916661242544046144606061384719944116124543280254359866731698212007658226980904796925910099333687593914153844592750706533326763680909642863945351918345041809847421525641848331706916255255312366614271458058873265261682719561518087528915205316496241384170993213830582019960264785006227513577518997776331492928027606609333144405773890559967738279308142254660797345761251307000464010735443469663116358998175128575194356239370463806854937767198132360351571214773222786229846295573395670275186190495916865648913560422317049242746323858377490331709555143772489121128192031332522009776379122563364476041351678506618450479288225543715115234483037056683824104591418650362201325514455593399539557536838510737160481319668918071327935495581642242051329314855085971455033781324135534547312965972569299862601621832397719105523837710473745120292934593308436125529782606320633916321938548204510674630514693732593352620061608358734898382237429450978732276194812508581249478898330666182952165457760207407003801673454157762494262961571280517786524259440676062054466470813876266883654698547151900888733284941315735109259521829271583085297332361763459287882880503950806979616650891171190830139611856116680574108104644202124467820077752010703573260668699669381472899951127364605241040028691971966342546165360861876109490012463492380002772148410168846819261618276907081098222295992910642430903558271945381351520054459952690804907286663068760402350799841507832939916325601646125670095550587024174549759375882425992635625071158106870769768859731734001334920697169676432180661134206410716872618659397982785292280830179255933665210485220625144449061248952046005553762041599415975904253853096620073517785602561905849709554981943024394414405253064100423922515895496948656848167301607488913049091673709487019052892059110119552397318913861596327074586866038121370220968370144159690953483744737853333718404269360750811494916233092579365854052272563989612219233928537024886869797859665739836853111256968421428221156032462460123345895265088485127852945296517309431207757886220036048224539091847620260095049377181447368020332685997516960426294185428036026765743930038677483169726787706902533532311999046151928579877238931986434643182977666873793601425742676512466826129201909435194026804309554086810890217828213681285329321250566043746665263251278571439345353625505682598364796478105412310587022020121305953382973115041366739297285236132866282490713740283450656401483025374086712361302592264636139386251858219336002182494464585592333380081956982310854525204083080406836974450122390040911453456677094561524082598939862284593531900039875299695111064918139909480950734410666316926239635225133260665790010917369474741151420424436757062342253320553956260341858939863590575530863884480390847415219967360396311658546433166056633095902996462503925569663423214923793975106147000349074432307755041472337760552045341483387517786608957501519364131058435699941577494992227899552063425984388494060534230851178044791699193835487379565076708245768104318105478663400224180198670895402088872009604353388588249203836005212927132957516814383864406379853986218060660918311504241756603818176857824035277698636386566578128304448809857569929372018466630180408156118430380344961453044101452284422824114170072891260269383859785675755091474816255914194825494152719727205252582982016496691935189677137819444075440810941666651200898305332216763278136745872353883461887180349130558889076684627160631286088780533677949950053572024363103483157973387665048914196744861626644372885689074895560946054102446380149222531785797437853767547290714858119855553195531639296551984492994203693473425905629238714000436836375941506338430719086174336022656398992730871554849745131165070680187788474628418444608575313552133597991799965060255748057351784460857571182168832405376520007724262670279455543473267476185231453042944857119985810957065750341479393720063612263536763724900368388747606671523251007724893591955549531388842475307604244392475351150078385106017157445337094138663088512647972505361123629137993766022514459678386396664946777872714812799247969883520294847502738882410671901593043002431210597729906432885103935715599038041539792048462108089900339822681381811357837923955480137884691002303393095086644070393194753807134073075876667944542639737235649276221490979432566274547205755460873482493887642158183600070267957502486073115950536460466299762244704756270940824443247716541476178096729473021700637000653759067459954017563618373580458754223761209585266171948579865593431965726511805501132850662882780284962416972289529539374120457416497328627934588361614539983002818690577006008527441133974848299480527080008720913047703445553084602476796654025620269103755909359182895915860959440280145370488468981414600770007036624144369671493502663115036670114391614058800280588617643198962520777379197962485281495313757937432704714864662054581124159801880953495667561085933025173287320473420580574267712826763678321137892854845000374985544790569200328471437588633735149043461878721804880916982397876358679106344672854035744308401143801013174193282902455805154320343892315137848483456733181348896343929428894169706048267927679359134431190328042454182058715608277915436231361730505005445067713029628044780023395253425560427827712965791876743585574440256729503985178090184840760939394112432159295646850559174320485230442845929278255270057982905965084075621825247960246712533741741322692623027325682467630798179955403177730772038088440724373230850491328302633028950699864715698019865603548753550218847066042982105249598895077856377232528903019552465491733308755759621443847434911326502172332543103869670147903900437844894245257769126769086913675750873913626404390701654439689777459459707250818860131397932992331726864693216049306343971487687095475411437455214140364115606771222386125263030821599669467167104100380128437204241796628017166964713267804403125618596638931064754318134534336029396191932021204688959657059350391448088955081417583433164172273708784297731611538117709122241369283270998487524401808105983361748391226061698123044089202622440789875502151100706296110888534176630524433973661831824960970304490704374893720288264856334438232822655245664005971536462944085575726671615621360649342286703233284196113735130184647270239467031233181078030787565771821016386365451527799405094653748606890006567516753072492116228355749458558554794638996854098266233473509329942853019308947470881335478702003618623989544825256961272327795903320816934783978731966750977044688649117414226803870811181057365835169523168705404117801285388142577646203377027299561924665685791914480357241853604802006351164049434745672821031819043772441228888060931327488284223186320761343026668204349734813173086667082886791672850060031262024025055837170405056395870082666737826701731795635063923303795440071743622618840770552657998649623902890468984609219895999039049973249215761396484622892063604092595134507460364144743060257429399291393636320681999114551546083097022077727856428457651274209219705944229473079911286335096317353351338338971108409242616608033040472118907531144015879715134429658597228884284038804242774437207813587930476361347450416591459313224018371330274222961400550974996524212392198203893881810009604832493453930457082275182219018194706820512121329318148922876601921851841823625108627823453224606583001615461138134089467076857667374890748494681042911088526908691865661983146541215124791619959503108757319788995553643249149235019718804291153258901162605665929604657415771588540317586755725633349095767140734219736449710022609830606807656660255736042879875937004967310858773184459218091601315114507281524423321748573295341489711292507878258457037628163533908033542521522362289776600067017393671089550563659538071349456834778621135294640015020972412113786080591354293237848581573106687312935447186126912581760627512906963149495177144364284122486099225917698133671836636235376894315007716457200152127304355889560131209737286735245312020577906838743416329280594638446139415242862206507916066264269488011892951973721103848315150918130307994536981172599587753290133847799426934548211036961926410590369587368569761211735901423157605766252924753647073599877385561116391024269078489529746164102726140298911119746605614486174527103053591387234081836110914286907482148985389370420815703713371821195516729242256100152947526653232047430201342695442806240807512744987134786661005731578956900360392995910851521270834007490819560858928096843508415513733052945645187917075663271288979564105210931713884521634936432905247959879207449537585203341950814078398557506034352547499715952396591559551996526237994614835677854085051132649239302510682759022445967886123547585777780924618032988971060892973813049649621011285381898705618306507226677168528421918702616851472087996939228501120054568167327010310713028848587475689762627227443779862768922334295138945707323274278866404472429288283328096923715152229701857530344794557119346341561277533935887746828040047286309510067943033302398137026359092705550165415740799901780496769636428646946022938425312647366897769211520827728453468578206018234401613039698267084987294854121683771853344203249059807554652939137015529320035291674384546794551080379111716315420687306574864066715304070056335235305771402902724684393159162851860084636752072892137608790761319466364366644537856981852022213705351081435376037299788748685876570882578457183420702743976531226659450661873065312742638748911473701414133992056367713056234381793462543028478066902222686256612478783188979272738878502258935652750121231698771797313801590753550381221324864610488144342347853167463129979914025964298240024819312226066657005392550027004813130594171105021516310475171629546282388161064089244986713584753880398224751653136066068123116374122998144570507393016213200307287400672059825938946932382834852991806652217864817222201041432755654829792784968076284690843263782213412243750544432749284210495603638591372908637501219081235551421924535605578449481580135535418578607191420015602883895907873138948500611968127259112568748746858991334727781700729905470548456624984412594481428986154323182798155877495262466870948176705494935218774577855441953628328106672760106228777359340332012307817812893364006542528042056558937590627714282513552153827643565771262545578473712953617112839317319965997251270187223863012499418287098242969243187148560865459846537457957809732036348163435288205493023482046116448252861368096970219415956521221213255351856313222613081711921712318314844712374406183261082191771785546041672789901999945916293143786288201454235027087315447138687060961608475908770479011000028005926802658529270324618372836260554224897945576782166939659131041142214749289930583660921660692881896537708331874274490746365440902981157072242794110717462312751375701302443138035308836971040062613810521292031662078494662798011751484552955859483997807247813210098463815293522146897138386731433296042152925487919434124803924920450425295902576095966656583357881411149066057213591724114399495640722675144829910568818203628779653493456152909023691932797909941325703654190700655376997142147005544018921915940271565859408647997142386989054811468579914237026431702558627806189657827984987125172833556685393862063082260901709580699353612921783377275031684540136706063476543180170906652235705529005333733634033378381317548756601009531870259378262911624550479630229553782022401573722877241966224612872649819961277778919746830530588853189587070192481630151491522843982752755385235050011676648804114157611939012474737180480610401576590333994718637746659540683269731108758146122377979406595741748528031806004020952626963813342282646235041001619673393007223406301088745379031586918041296735311344322218472956297242229806800211864746010928586908961541075223168949479926245337358776642386447494387987647057211755766619682572654081954293964106183882593175525758215328393385306560342079005848425595839932983860018132197526020415255028066097573101544097342685012323526492875485501288020705605564030761514479848187336843642041069947679646673820227737189540109573941450036470481490885467451434141640697037667302521470760416394685919722023738911283910097539542092786333622912483035804900910452593994760779071959469757997213477820605229142279331929308098197274959177398715944992065102312988624627363646980198332484310591954236460373098391688184795409232211691016991950863840733619692599658355362244982567188758780402865538448879510538058753346462144665962918345816814153886544755492153042588609338844041257420168503941158940861859280303439696755876434601903844900656756266753306508264738167609098672042957433591001522552617113555749714695981905768225499353650913028753712959137999309134839623295794173623783345001661138475199100867651309322948613626469540044300634192269409781535063525196056592271311185669257069323752394363480028696162840733639402101892240493210299198599936027859465415382759800810977755423455398304197860181749972876449680993563050003374987419513547631569935949258688307111938308727346010978025968987768819674030297969307995271306971662906173104545694559584475703322606061591899900865816357868003738624320175448217258435581525453643218201091734484473072802666616166748365263182767110566588759612404570984189729272088718144450839272701572877993627320215525383585270499047379136608416147860559295542387422587752540484052454990936937957595474019239144830618394946038443634557408327495345425680566909511800931747833518933114725154774792919885498997146687493999501130526391342821910822954311156278147709959518815334108949100579775899057447731150203274394219049340163137173876508771403719423146955605159951321016379872386352219580017796205123292824191607807554028235192748671357013191545016856424665709755757882555892096760510283993075452176861986672878488845276727785966792252697748172209942408933828357362176374724125227752964264422756321177987634482280020170182761430621782450491409829570563555850772625199616849553233253078574842361474265788404894790398280414624763388475903162628975293916451799063437489715770199942423067461622203955373815375076395726749014348422056017286300942183038694046685205272130380363092858873285000657414985894248475179357780144986577707706965151022133615043721616605032031973399090323836994610566747470330305444708340833925232887123122127456599058871304598855131562358166491317259408447446850327983432958131940789366359774025848165139487798621859441530891705062665218918150602571573164200304108977434206149947734910523714755110528653607038066514711357431027483360050564146317758538777766933725881841997449499297656856226929835478168799559894315160324549546730611991068329564645968664892389690966682939765622714175682993171215935959898103071272765088213926764510604905783372228754282074135101509980595031246721707998564727305122885410868157522199131632677445719524154195412015081381319514273030672708134398856010734063337393289202038084167294926468043019621164837927243164745677805125967045569080387577884908908310332399028542224837733066391129166389799187650644348872725876544972049486722631926348228714319180981340385500605478537911252224555976470028554058176646619097826411290787985308120741063327271685465803417424966311888675611399459789081759785625949246296777852779238262283171494377721098150677504814825510367549772805831250666709220180396230357744256323683261185685504769062258881355666961679446526090892511348510206080050890316508955986344195343890985487004329707272138216961396739931207120099395452720761007101805836329538817899322459026115057232838452416508839292117084003674374571537196492122687970773471635189395362306102131287256332454677900078951169709417966777289643460428189907864025818254196222759172358508877829555171419544447817016647034584364092852492168138991458799032142438000678642410983253320512527970210458918486986244612079655933551544944287173391049745584205861926125840477480916282759163907236138795448101856793504803095451860515244025246085371249200588403874111730098652322732420508546972146994685367044053807375205350080433624270684556014034232328802021467069615992198905538487880191395359388633012618102997286927876081253548392494917359351015613845699305189623961278300079318207018830897004992344780950417801621658590956822771164713814426679739798092688288087703923270129624480191675428027521769585614071651952382920384909375713314329825082633492868897219205372569739954843240549446428277369228518132561756566410528194398231489146554385465561719916444863455446789974819832350073870842730128277173572446240016556925733067640799165220280215039573336694494794916355396854014614098764382268537757811271963069857439786814432312359874840832459317036308579780419586311669563778689311761998534977304875442526562402235269442673520965631406418944587971503854240410372515995251011655944092940014147910224749112875599196722106086622715366165234272701134740865433137991265608501647963960494498008207545832410576619160693789267118537931501443096498348719209948855635770040667670263767121859282409987602475128892905339270981249439774582610141031812544781247528630321885471045764849782412916680075708433222867635293287113193733924667403170992147967643791077260378551141759522136972239959579800151942272975465940516217973139637018399634717912639974046762681164556226501450320041514982936687816655775236851541367376429932167789006116321991823797959731714360080408263688463302800886608816994148990523688359609845371174918092621669642482147783970266842709226573730824679790561825837982485189462020410659894451715649907531602491351079770256930734595748131720452728299502878904761613537127084077434319627451290563976078184081685657716900004895251226132333357197128084470047696792439946040534629288453879062743223158301114805118220235899519025803493038231262931165152431545252570123914558983827513032874078690854585395747190810948497469648338088022815895415980483052965134433098354113460557574656132414846381266288781321976084553624438868174870331365959790924867195778725082195673395337506852548190595634683458831633091353161953794767362383705583785901329883706333955338300504249159452401834202826525393505426669035688599143316920404235980114962414442307430455948675292669960186714918843029045570495393776804606393965871338698007384714947214307871028561482512714850044959531955493645260118874099667545877287424315797431848509581551592566461071217521130589582197759564268859085733283229510185351808942132225990355640397389420142136707056928332553488765000935789380147343913510346488519998262563359524035845835586013466422586524619770976990311718939181301347356545024226869994360845341332883297144296084484286299915699558170168217124760590270836829294146094287224741014522233005432165806631686043951944513819503419568133391597398861524993156802342331999206057300754440920287959460087542159072819761738515499750169487271234004611645873849533514888243353523040137033000812035014847853865493610432642189212653634319175180030452042569252973559116513516144880036455332186203728521883666353238218436393476333047098246265317403891879594374473297092364455204554979368901314978046729447526398796007467553965600888289636426317292667175285051181870192595506621708995451752120606382020306902126735575541007954561454479539969226399531826768555105979188355458483930394492702779424563509449443387152982397302797959405566672542853941761300485760127589474255693383128522953548851953379055869609370622054650128588225644483160596624877161693051507523379622485153763572481602425701922740064544000496867117000127469019563125583907573202861319083955831197852351911603249821286385784976609832061605186517735855509858206503408207994108864231539801216185965325879369951549823780706270443875764108981086239371649365976434089012463204332545787509166947294358444602788596554799550615557972125032067780787706821620693552824763166948522605381355332267953172097838624314865478541859310559586556683982172563295389163208361062197099915912393000092170792799932855268877086068407547524923136850895292653419618142854528110320372102553649799065214870578795348119494908884350735001164017042360857988436317642785420448243303905842804767899770995771225649932389128376923400098189153762900246698883250903330589521267193410290102033755397629069008550307845611262880914517330537160732796611382820368855075342752543881130645953281821153745162658924342207144544654035218658400605578658609577361651121130313021718106391515472622407764611607208580915055262492558645329626283964675806666725145213266488891265047107307955552406275945824194267825541128522070500747172175891323811039195715500485002563576820855022630850386967736925693048248325589864728180488265293118473457383265152030080260346158035572001421006643960228154909418597582539859771004974222497290859001345044746351815711914799790791113936597962049008510851432361654901449472614751553236099053364271033135351744618464490597273635369444123511684226634700878664985969243351632812439164013794933610759654564652527925939584193413977389424870438722346187650288331857415566672039982798376885852022023412463841813627304826278716662624090437646202837129429868698078894087800154474422588245123393889946286336700195956705079822989810546045249213895969391495300295676113489080120529406149413749375633607934156198146789806814055610170635015898803751753931329250050261955824510228727581798030986751161661580820512722575539120156842862661604981196183130691563892205204996745759858716479920984682744801526242148467118838136197613173409781368555999174127169437010246791354809400947708416856499497287424997264470095024148787609953053190017850627708048639950848497888732469641075967778545724176998415157821348371576380998235507566687419593132977757054625627060646899440031792724744248543674796683904352935288443563847813393007562700873661162994153286013666550656094429475502910570479836825661145046154392032492542942431950605879165495879485546160448847919412951087042106484259798994280152503943073019480145749965682114203412820248609618569090711028633077367798810552677136265937695123833914792189956832384934790469486393318217003885067608215183042623708438118608074413308050279165507356244218483513348844276184438027784235607088968622577594368515882670550622472231705384036957925018640013351132798990746396175223716802854031795434599013964689243986845486028197127725965660817964716838358896154098560884582189219065073682643407649833828373668759217339903965083684139837732994106567996586068136237060048137107391716747811400289036372033262200798283586576864865240292977649741218395838955241061687624506938340553621067693117955067959367057627640442480874997882672119017308196605357525564963628446355514790759872010884776879101119010040539139647847124623659430989000076566259259718835299850205399720624150821924058883853985317983489719471914887848857707575046774048487009685249788206871367801290625192050618445183725128942120028993841579690666139654836400289866363162625407104663075022401236029749295508321868264642200092921368880242865346991518690122044083333277168601330833322482392507834550271252194077102935669547431050036106255710940087622587241550031115208920382073375178564251041293054762691157076401448610483638476077045509823652731720924006924526430896624974402755060814752987624821882378599084819638862143565124518969258909516022268066323419651928826522213464659885477965703232246733667395254465509316570653183820513874968545213875317191377693306571068125719356679682639581962843806423764897433831781175052789932639626769729197582948309841693574406020886432217297086757210018150305626930795167614586382659792412068193904720829149295704485147367400857237497610545470606735247850652117056058908269363373017147525952289697834076794016696168295790694947841837224328162549318259695260490716611408157157031159952185500295401604836876466934119796742665036026766721750876568556737675539753884721507904002327955171438665506646156052877294294956381305140113514740954288901230917990475186860674489928984203322706910205534006397286377027652388655372160961159159302923613825366614909200519987941122074241815513052961062410473044821280520165256209371695026847286156828169272939637202631778750675236509710953115514468616486315043255130511976464058803395231932029299149021986634651971206222436996891436645638008519182731576810621272225995552655783612803270268777752927449535905186548920148394538610917174185198032119488617848062031573294057246291166318661054100778105382090929555014343358721918728309523470959318491897902730094863262592454989989986533466082994246531441956739970469674894469158137103741344136101152532847440468067285996140030161066701751748613205124516206232316332123465275882380026113633160406267893569915358598683873313825632129531160188746931126263161492044071198642219550993865783356912488153778134501219897559743319618950062311338002971696872063470064146156989653413379950746903436855683476055236464616754395601126591996920920457846546443378129004044657756108704004149785473374510300641829942543854852136668306686766945729270854532833696534713216913853945218074585893302620058836218726480614828205841727601449285321460936693616270892977576327170056795064772912724502486529248274587956218889218169177999640932523817934888670704330552925371197393687541123376551220842901266850056472253048248119277470189905411764200376174007388136500120734738089120459173659498608477876003699016142013443630802925751343473264660978386954480157628060249900727048807957923368051168666807584406789945166120518796751890778793076414762460659613531133886861846734824716049034320621799851454521496210544264908881561314735486526238839571490613624923226357422760584680635357647647296838154028839386563051948997741274675386115928676206457602823883123632285749120960314922765584743968887879529057902762340789351064907070174184209414325532998681954529119407602951963867837061233773029965461009574935623792632985836254439178613502294812488401660261533321123451668213620667057841721905515711630654928990314152114494813847169112283164041017028087390214143361763914290155237429873514759602857972872845182794487728697921891212734533941341255636453977595385013046629890091533968752146875046963955582090982565882717147799427531484387934315862539675092587508737750899916750474700140575934445290962846114906936053383789788413527930988889718690637053190667810708455786022345398649195771131680841163933793684331938711319487561870781793215025042243651145377925874348905205110335609743228424296332162987621008248570155623194833378668258337267453965781520088981897227676217513479444207361165088537766770379568519773073934904615922141066617158884539041137927495188842126753900642806558550945870562872031866348307849264361841386076844144155645581682602654263418593880975388057916382566279096987214378496951800734999697527101715955244728414760065697456512147076498925444991892939392493434786401629674494607122887005977903090380480772764619771165914365912732228884415504404478647186943806704183181240377996679779830609417861394297045912083546072009187334362277890280584964817447490524344165017840398796057527861998025241137074854182821425149343968220539164692693438762223047641841105654275001619971479472865073830666142297788713685783559985784772727588415550718483429076177683372252437015023741730927148551510815600603696214987273577410022420818817635957079299979906738066953546768665271959539508091739592680968491546452317767844829200514451273241604640813145595335963190193692409245403124417101710859003904952856491368270992408229779287474767584893279902389743220242901406235622631708897215923817854563340893492635590617911842258738569698638199607214784052110764352677913957042111972940949183365818951241630391745569242921233741358678371606793510130856300208297770182831311597990996298423868479514531211618530342021055913123447316372373632138375739824877785913552015818340570382380217490266505376138887272085267510749089205057953715071445991412469906588690149467876546066655395477298442002579689402448284073394944622270286829434602485531577062710094701450478251382102339063382311607095673130548991718275791346423067111790903000635191846401189824247940059668890726233593891527152978399535109621838926999998871962500048722565857324617699538426866735323615515247285862661260378820598126753986180224979479730258700457161242855874097945617724480225148443271535914763715626898927685071867872109394342110929082068939148612681316170801203719129208667469142423549575954790574978202290329522638897652622565438485590321266762991805527596392521119634820251052746756762475411410396769612554633330991134465945233555567267579742184073120212632253114637968347739567711145610781987594922907466296008713436949639080906383752046785652210596710555404793826935266521066707219704208707917466328832961481060456915649606248137185666672771606528679875325596692674444037215343615654809803420232572163904934026226724179817190643987419063068531173096050488158077403269745265629657800972510193091430782710876641469606844827747121514896982478544726445474448481931407345904048373552705742771489282100141496808242377746992434831924988035584273087131434497503009404199849270053376426472008018806307728416325366836196847596143025647450604413019804267843175587865190038200143608194334657593253491901950978793882823600112043430579149596341811368291316548644252149811531960045454524414835977596906970219069628543329887436383980422739527315609167858794301827878149492114767010297651662869455313802095950307579481041773546680014210731566987483281060035002566127628735217573536504838580888607850804716646253543061298738579194896333754235008855601077037647952143954887796665239975370022291957928687049972429045802701342044726008219876372857076139377268460639111276084322584839327060285756886061330461030799390714955461526534539731754434302236155465738649934013768230678982462263093161728259831011869214539735071963969001966021904804531077545884322996623377159375057095093923641796547945005360754786989846634095469512107924228576793790280402942350260787614029636571364827738360353418527302761276215653566350674134056636256203759368413979001398566507864141786170680415303445144531097410591210870281062473756240156272907506438791959674646294131878694609516904329279343781452232867673704490114244486900870966610934418530451249491475958509958100171240391793771180304773993773868982526149603490714235243705031928262000699219619627105847403903265586982951975160469758680777601407908067901806176749375850171911822632763398121270895571129218060356076850558089916259097926171639112111912766495937231392280556293969287777817306952638404755065917542130612198789332379487765978615838551743813902925820834543007209522751593824191866449179867475538462156982252735469697925294797701621789954822206339391231033646278052555934870369463426023129468333267333952504035819789203245163326326292557638451060047987052451315099431030721052204172184701486846574422833120658658165542806244032571643226557946680124704055168133148050912400382863485186910599652667117168103648400683309650915147904944646258680322479922902149100638210230211417826882162749176830145944976389429975474213145094248656501922901625876822365579607522244029452689344582612302737380297224675401973300058051000221558169284475561202586822062045059660962275611430229643071901083764402152138515255556679465413397747824494253536054693838203198559850648622267276958621160504956577575560041834268652378077540428052433729707413256055736067467876793769509501984832977159649914860881622681314045739764604689754258087925441072692935735592127204871918798206599613951425665354369985227593416879192493750549830573176116305002450949718187796692593915573778315395430996641715639622345068310542459780603187640860891689890153601683739029046707407871807635145008406151429660696786814699802010328417765938343516407269008780165344474579385047925290133671005578687083385825408328644998815485003704943397901624411805541352716631909013883821714374701806730242539090595798641046440486334418141143869649389151982999763760265185074289913684593657113864264499640497505151495250806418651587351102071965879534367448300120695860046542196278236121332208082532223815987599128875241197467065217959865257635814609382835955497576647802738003807858150301907977905430330612235839375215897072987796389287387296403997452883209099409373558492152066360946265001091631771768696173967519901959429238774861615339191765828132181504361426446997749000050097983273242883437465453214378665990264762701698597168087389887556227233845854554279108410559326028232143951870974010764252983721260466715880287807247828638470226322143039756629439954562055905804696181448601246410623680200821373222323729054410070196645817259112415014853631153996968059593998342463081045844497918693405360758321832788663016652120194729793703113087434408381891500786320674350099855266795129031451949752575692901504576984325622066554152675733904378288347662546224590180977388610702855404806781183745713554488709891197076881779389891371304123121093108268133393154309858885093412829528960959627673603903856750653739559309137738540434232850142141912107154950875783676323833024819594344900611894345475808073938329887055528851526475822208631085311450231847209843970981591300627080755478323919248544582635457174209122557028986695830105119737155451730809890540194930920827429932083138474086055092619193208024861681703703008569747679714608834413698624153528010236411914826616422573842335155203619765641196481859762608982493051716684746499448773839756249276170413512669863755494809679118471126709062784801640881841896625313857769829166277045503538879309416906185104078081850917575579351458910735181071713576329084762361196317640408884067930066256167014142232258833863952558816591991282773238682872458744051125417996782863192905341044569934599742638408505019413193400748145583714673952931269108655509413604366279321692263463828014994483004947748176987514817371197094204212540417262200242911011172872539952565443993580277132920755224368662019556244336729771118931907101390340551556078478212247963056762567421032509049424097335649778894776843350217219655559989560153931646783008577755140128174909261138216001705675680211410279906548297280135956296910070825031791575389584343692758375705554347791246994035954821048705397291655838148429565227194405690763850358287330241700372434475341280968873386186417834546204807362600746249074774127643987020725144796305333059913015666816868216253855682486503481792452496495223652324222172476741804999858433864975227191558336918964028539406049835791612737073173962817441826820693026118094879128998251380033463707268869795487456467969118382820586223862493266191112446405179025857533098348684965457470044110233967525709304110218307648228936837208726676467055032906515026397990574668522877308048173311525863845131210875169409996333848360220349976788867919504326172408542943445522705753859265239325537606681117773078287442395007191013520687053780767814419501647791528048784793128627312585781470416373318381150012577869007199586999173504111189769283055458229296198677626676956275367257375898645874972942481236663558855489172389682169103429220726651570124066303315299081326759983569810347794719126503146111910211879776553851160131084070858305299821751653025902277082111172687167251343669039462368983652500434895202642613121907402042374403127906288669171870786612147180767673721600569246245121504536492976170291076771088630328984385791630996064301338637151463908082210098023356230132911561625597222668613488504032888235247216540814837133392830518304077277033954159600182387244296500972038267967711325593504524335111302667185330251242321243042245063261596846128804333953299651379496758301909482911132983097343200224444406021740733917134909389470941228401951827390735504956020758381650331239657595772543920785805300416911955767037506290262146982277539443936771255193720888476205493482190121248896041999572875540445103903655989378286306237840154901492170383711224548357243054034651300982929544090626418967469557715111923286483286386724923322458654091485968616707162672925513055495612792671372649341047265321802234685546828269682755920673080967431806989598339158748615888807389914540944150237897552055460431194568095458861333235678000176197697326825190877035087499313671698485717677093649435576152606527669416075342736677103376401952376933398783757365527303821745542828288557093292221851961276437394808810940605119881754322356449352745845917426308936925750971306578624480072424263038064207040470965629810266788519646550347201573061733182938319059972133556443635262778151236551195774225414004801596433519842300761794403207418342847975458705456451489601763022733243153506443314065079870883437931868768191421602893846645429672575578365813356134230158073217042428970469962810452484483454188826248141586805691426592620608186904755150330550475000741656132840312637111406397527947480411830201817117741405322533904064428116107070294103374476640305549400757617245745496502168351552949573954956867151031614546944391864566107525118864086503387191820452161456942495387383909705692093346717195222437200899212251781334578411760683507177086176460431203735648603415251424951209711755765034215598716393912758188235608556385449983392599304445843018038595036608441347526362555984336266389072760803501100721976613074075111109644476774545683313945247070241184559316800475658490508755559512697386653024896569305940539761471963618619919628966448544318942377038148162863854300826521063690580383253091751947691079412854112535208830113807005039287925641203857010236688350607288588854429013923319604714781720206421038154419787360409501046637047047753074026461299014239824631236165292483288399032623117161457043306615199963460768310706308611632428401019577187343674575443331598586280757641537902639040165746149354340881772557349327605260660166605225261442152228967795537775295546173491831158747257708576911264022703683104461392906916893295600000278751539557348516848997528231176770133233501266127301925372791941386024644428962873304804076854899748285003090125577355867758289867044991489576535059706992697628943928557845212493681687646960958049248288383819717969370452550706262715823610159632157333588368091585184977100900652036463529532942820233455340379273813319841636575790313812904859834099309477211473295356266481693031192768110410239746746454864585514787572553301049405938008122731107165393355764178987776212881654421557838072044789382291959974731483489014211392979860872460715610823856168061553757361046639294994836699717279482639140529754508582249931744097840766670796469825782588307448655200874120612764559268756497822296849357729125723358723595377233566005017729777568014319919318031278766554941509073838918118519904692650798265567682500775109274574204410687573961500667067423879087238886193682576435239994352528367156599704155876573561180688007136576511776214247910535930061034138092507375818174385516993765978735115033137149310430487875119134476873070383750227960242374475216998662037444357934627764951858028659351502154724314294347400287472049412050488006572530660270377941577247617920545474768004596481345287084678785518190116270627050848876266355045309325694308733125893124482112465510270974395476696054148166951305041527199148942042464163073985527453517204485749774242990943498278908717863555795708194153322699361165058450128745442963683475663709998402720900510592370770055981399024154109002858744585322522838687801202510574966016943310249322101455024483475065009137332401615632893992051043493696016943012892421194521043183046654603526717243668627519913559728479534924023531513381894655792640039343754505879563786408520552285024449795478686538587128581336685852490383439979335100473393857902533479394424047987455197066820897872051821216284391766616773154799473685537203487675118286125882974924242316872535434550990301360321325528371195885825794498226897064492539369488382700728589545723734866850948579472036203009706170517064917073757842012946396720179419522224079412215410434034678261004143553151523942706202212066137995979866992360924897253949888774854225263783506978557075167541247832232277972847744600300941162973319749751035984409707488426854028902241036877055602391295692767099676910747912383597679741054429261123929409307552783582109818386184593399581277938010244796756736081000147738015908073482589875981090272167340298161388440929046048028402161103274008360251639417245251058569265229868974354376146936201087992222647517118736148486746797275990310230353492372292298893012473898949731689742398878317401618126217468342196786945745563952039019059354521000052041669763725657809961163281037153438196697472433263062535800093231146231375836713278993380992106786328204636573324232388748731886306393506969988708040521434028345742696075655415076454371962958774426404884140716609572472494823708740617324073887505756431630083855570570841995953648166791528982544270679741955030548304587406766186726235289121386819255203459372472499996495754570835904149530821815815291544017185076259044093301552309596591509369897409356838455352323252019205558511235922266332291077033596396450614700278608728244768976708889082891623883034471077686390798285667237123135995434574429491097487154453788718180070433714903841860100165201966191113717510159956232951336240921640984795083146547707319926770703084799422411370396056956987684819373242677581857168948342173371400890120491031467413177454159726321909635938003841293783569695457248850605094770272377578014454311075285096551826064455366546140232854457551655265556367303369584428093149528364748932376680448199317108346466170951863530787167598217382720867729328799073267765902438935107779955699730517190256344806784627994210482588646288245964525241652078037418135366021139247464787299007285244599079382096965495979779863924877052187031379200308523325478353700495675420876725732939121984370033207630363451461485064923951542962501035284404162065473059537432445806743913320610614607677294320863422590897571497446806672940324487851114522918727633807181186260437390922128506987725279590108879366763398833392213854126264372216600415167536534402929823421472677933678282491113852415830841046509440474556909507160992886758849308408343690473021396444016566834467009500064762630464299585884034623056612694498298959770368102471291441768145215912496438529646359074943774571699228704531936845929861287382427860819613175518163751667782973763870523508803084824099342792879951634006871865466531091922846692099173284201986861083167666754576250088709927848301904221454742660092585388990008028675166970543175956783934121229495395939497817229125588491712105366940849410404462618966520213451437223811202071720209459377707965394805958379741817009882386781208065680925838780296863494983030665803800420438733627270155219061775216225231326302995720597319873628976097916650297687793024282838331143968872008221920482614081471240965306515436097888592051769403731603180333395761139063336234590157673389706720802301378285612632281694504221534326056556030553861442100663740327198312210497538523696954572900659943358853441903387201480733835148115997602961927283732489179396864378445656391112709894618810696875106331754563853116575768150800550108552991924823858955050687760652342548282300402427041446417470386715637062442535406566974437656555336781929121801194191505710752047310081883936830614478101726743547085484152078787587753711943660470281729720049513003611236618719135635917944501816569026446526102189335120981250757561536528512013560645111743205906592933321749001484252861716891333972185510350533398215132011281038544641133180478860801471650960474857020619758748247574406517648385108555693053408342779104806439968495789390774138859032923750014116668401831170853025349800737418113431344987047917746662630634249196310687567928601298110867344897550556539034065255633202285920984921257493976663327512634457318444428023862673336738043598738401358347798461836070220784631865075003542491445748956924988085612236445510037118278123103860959995723120698378148154700527870897483173558827311187700364606756595103201788336954528325581813737831178738388525202904611263768915118936878752895942489287518821806152364101201648066023223594225402573439705134846928696928894285041034795319140209865232024050125505261026011935830302181602236500615238504867093750870427013988264306386043919204569797564662884783060296139318630112808297788105745727215019463040375886403078252386023603561415950120652693767642854621757376785872749685140358585367324802844459615799549371670220318342171408569882308341766342398588155706424685202956825453908957049548208151283771570159450615402422210158254819522111133950723728986687467214439917481883082081572241959641470576918110018737625379412461581875709026637785774280521905761829517923028963989637559223756085592345831552176324335698998321537612496112852588071223322696535297757893111993618215588678652343297465016224780807553512461727843914102534095229090123858457844420772987115852705773303620890089232830057193951848878999778915205396598884443947736479370187116934339057818683090444597818713808881150910096041276463766952897704883917578783350518731087330698345775624734734349932727308915836348857262791606050412534925407225077451041619398375496036849177644919930418094090664802139795518030157520435806185533267511246515075211820137088403436980891408059608513821707650593927505265346310960176932143691287669290962533801666359420772111485051156065880714175799344979152760063268049291299806931795881446974901138579764656730804135192012173010799012820815945239214566665565379157568940989051355365295492644768628987011946284123311267415153529554477750017161475254485615824250094502960082595740497032577034927831314009484994170278566298333685451492476414291544672679385975723951977271865741632005948191938527859697777949178219840065188565068389084324789680246763402339256172783620458536380582229836918539922471898224771522473869472698582164325729077375403442851412683186690423412616095670816548862194044549010871037672301065508321768871833487312814031868850262250975481160442424898343288857792737757546606679042367608826767148769245443901623298482306036501434177924080487173283646994315332675124252115657207657543759159740808443539718467661612167377831471480849672464170119403030687531529014905536063871432734009056209853549835104695684713141584861133546764089109217136604061760697342164372812597414969797353886327419415928744547129723805343244152457585204849291828560388175735859473013718069537152798004777622050317588735114600356725387721868306167875868727408801396059878133823199101835152041426724457319869714784667921976285331039814276922497854795374524819033195287087302006377253864922855831866523241480570645735017658329282552083043353675554968062141415245219260681105262889341652282905853233015393131718402623852336826308746892008817384931628017386052105726852520348133958825195677961856230482798512241682745507345914597151501326272754897781840205459440533802819826869081624897226451826615104524044591128373683046580103208943379784712914308765565205498595439742965414154728484118130782741216872827813800159345947359302665515976206732756136242468534005494635085513792215751246066292213004384057520360023262013400210159930809249500285671233033080366359802534356884194470464942914790641199741350744869271458314165592973313920666590343166252578135480023994172043720521759424034031996309187186143696217992559458025241143762470649875928670418439004979865840717817317856257409563713646032953273185160035687170061849959195487227586420951132581104478824459265746819966355793096196476657670948537972644371715648774978813824251499063438974057479996168431087021159532463576608950009244795470775775746291398976164846335754513757460867662230323228335693560420103698690728242073515729211378954612436736296286654614548305998862283017729997195846866485924047017395743912642482136323062677306465828617360847551042422838059570699725508410019055641662995462129074611037290738036076853219766446056616965712680863440837151230922136856182847272168636678154269089811486761703878017279549762890799040120821450058220156257254239332497509173858372040651826969641204248567790271206155375297866872366614053425966152962311146869718688137837033930964687348465295455617515081084039629072800030112023586922031372345498080446494306357003847203180776283403669766006277053200790111365713150814451805320203334080308834066880684516334192962498470515880776117322689622811548484182735954937258179497384596307262577294242698639583462701212681894870906881945424633261396636244159981985750050168872160611556643128713347736342900293163287020254004029590393904521260954993357373151021856398024291885886318920408967053966638311502947714763449303903748729427566126153257203464323929691676635260740442914390498495410359764569237670333596631279644128777820326301880860619332429748603618105676186739518112613291961187348632760487156128191590836640821293515873224374555320763620221242860625164633079064011636759635445583985408072574562514693477787604099343868227137085563251398182567313107095315778648584410625697387269722608624163614279525272551322060191090635167450839897422679850745865539052889331354552421120690284551175231837900397429344898812578649266851260257879002933173291911719606274704678754085152758535402196383036739224964372019240632079698364566019958069285273693942011947403875168148143425434592291612733751632944682190044214110339035592180017382750744658870706839521296916439813894969843933373534916692291467600774848537214616342671706201074438458320343007833238762175153912053325442939981157661756835712658024796543985774186389418378108136458108675487045882271839985940997078941000639968775818946336686800059842030662607174839378761537885196888786366202337027177068959828664193054406104301455273492265283628952442697693125182409775715233612241726753426611836922000684964268875357925283102287920455804903208746748433500683424377131153031105161874928565312629460845030100217285127103996149454609008671547829894503530444622777844177989555988979016666281480801274934334879645076188243229795008719374857314057078632944204469946257217848013324112443882812855905935832585962419112062642815913587506011625330195564773168648001533669135816517867799673396587329607792194745248788151662463772087434674903271137924592766516244656943846001593738053786064139953010159922708811294978889593081802481225797860243118483703414200434249658365081570602802423461038694213051225074251735901171530312010368337443569954315832541949146968107907419059476794247167787995937894761662259792061178280434409431855255301648893485562738179932943716117530792033059968015590776237405337632756468940852759812509673844605805349026763813971589559374848119239261211979707250445393095667872785722977424787934512034485514048105555475692901136280600562290906432427070389691281943083188676816118769020991472959505533300963220932483097544210503095812026420641126307113342834332128724368744421913283612347405474832964380215335331742423493770246386147899292767777188918025475505104672646597314717217110672874973672228581268445037179475431314921052581649983763367557960697993714752300487971174639461106551780074454813039859196890857957615250911114686917459115047961779283247481763294504603650725588446231115006640533951496930644001507921929085244961747266677249891472949680577013443393474418495664120934174525729334493870532993957307657113165103868277322880284502063187918868487335512211606648219975964134465949020628982992980082118488348829212709685761814598252226712561491674594686802422417543068432442457159977403607626376561792943432853519673188445235598847833706700389836311874669496685855322236338370485763347942062412675474410766358720170568462438418013125484846166310430154227477433132825724704846454003051726684013858490386328286131381241083055171949898496749464769240699875822631648985714855840803675289659482873780661133762923375687359646182539203594149616532673864962598376041952422720554331193759623463769742631021661227418959750379773177911827988259639445856882717150325200838765514411874617393843810182770531913589570082141522912443873181829634790275432932435967417338201190781013359170123615863117774048225362120333055413660599596032566549383294620307317563505066177224259224595985932546790582276686853961805904707562413545094666130502592639589679531358135979894782483231855447116664150250265239171338072218008617343362510012210902378090848655950913596084815769241254041826640642002362166211977048507936179784990209898373720089198035299720720035733030758743087150412405102182493387936446158673583915830608623050883685383707385658613422343251776123017835250068801643531075535852490901927126036492113965178040303874777883763561288455107545131446746515085721194536205974157610778713442411002222571744562890934259190906045279468249570760964003998826183338992099716047170747723469422869354574135448968477680455600906372011636144356179714280616271157077278039390691526713368624551292611844739007889504319788460873274815511125988870853293167551717499676356837597931014658232436100229297996125872968025061647208601524862314827012809838309119962324774966016728924709640884411464912316162282596993298701225779535523816122824449616554183631314426024523771726401863683007017556681587020216879244023082547469171788947355390668987222731094480470178805195624499014368447703880719095121264296579592238908913650377155412747734834050147142721957359862234662595320776407131164805575831370813712674735677002375825328284956075829547881684446874509461021501651906144027801529836574057655294325549144761502643149871982192760731563773532351255837835044123240568669628138799059352470392148984197852522193079470569867374724844413398534076734755874362596787442497148906964906755838456342907674076932719297661488051884291458236037473831871156295138019195016920445791640861432202614929504359344702850012402817888062815764667167159829335842353605411142442820905554887959430512564525258057885753693664378934321005356901092834924503624997609577202980112631904328680353211095690246081508712944798531258424218739773646047728522764666010839521454799628440431154548941156097486814411615569889323786602098831974416790070133416012849442105721226787692268327454698913683803044926449485240133357676963672531033416416578335261256627289699509435954834525745316632470913317898487417924651857233568225642766217794175283226820679790097010631584844208511267231796836775411112218567653832997642730500602936532943506935004738293104968658980236578972042056071591071856590998033916587858143292116966231762858231671719013844274899372220102152079468198726648717444476619218459949316445139690014547986472753597939531846562442462453689422369161186209138298440823900618211369832335535721280845702430379099150013619751476432907556068888173919756553373783497597670114898147082630670472033921672614016967843050368836565355459112726752285266220922636255814103388588031249303682943838852180511231959463218208664098203544162339584107717394644598787220581027358045350887521660956978816700845354614799119940098895855884740590585419514226680345635398381165986351730959887987538749677757198009130845824993310560705496094560582618987962325274095087093073016189362709736275837210751854679417180962135281719552168753337522711455868676985980947074476541802701265665323193908216244796309842040992860373195571674104360616204667406109223057007090678208297614741198762630816043738261492722547141197754651445075325889576906936259543452455917444072734178045999083547822290724509808547707451527024984135103982979448172409324919859966067083119047110779474938951789286139661787984877493822881724785984161166657745000565790304433403474352036412869204693686975319002360544163276555362084265646864059337665109544556855478008418267741255944684656416679704233708311317296076730584611289232371324209334544423588120399007651261795707342935170613533009080825703694310730179016080636008165242465489697415322655575308570653458624339559386125561819430504314151239888082885973150772425873406779552618064519651613648165341071044965307043427734845606522910955441496801885512164967718762156460120521147129923432492004087055115523689628608278634227854092661765989745243386743928716364150198182675866329162875032964072267869154715019673034869994453152209206147864463717853215620348664227080613139486890171182120497336726805102725802074433737223818847909673233986342290197934152094623168696025996154364032582683146048747743904332786977428756955992919231283116498680439770613553326193094292200845331726535231297340355944468879720276181033213284667945914359013371352506393895581298664144391068427119329276605458975391673659395967165397621781343848513877873076863987960875599295944367684252953870710034176834851740898862076531476677173211248648153995376297124113960633061254333135436821339042822490059415591210401447645169895646083065308784377962729048829743619230299064294407454663043061643768808071520694456049160744803978423702274213692922504843853610479901340272248334743020792559641375078633152962666998994791733684339867166572469497722131554400026987057860489986611465493909228400847608007510041576627337619492863733643742896327869651279360078275849347331518179370218014007565063356804424235761908075994232775325473834847248850701012255477982930525163267636527160194069868846589510235321578573652841927568546476354077491741608748082421703303901178400044673974913226687843599313492973524022354220239819490834572072040174662143402326440571692916639812112521225542959057050654962936490147858063515804634314341007047206346225415775407851055007245106098195941064547321345417905911325890147151025233498243374078181647575993810159415419684097084381828201984957439455948736540639566650096837661994348267938002264445076525559981991427309958576595711149977234423095840732882112302789904565037042869502114205438078189578513818768737793473935825121244584301608477371192345589472375858129527369514163743832729148881420392505322032869019254250125505174743436722273064230881884178336818766343232532744658413846378360657257686630452032035873566421161897533988721278260228176172347610242482138694812485240065741103128177864370503808411709898257552275384794503972340950323357699997272127900603598533049902970332733307119472758609022189863977197487509321771785289759585939079288010874011772146514348685649425716471181466038360247155376662129223968831425327263004802208891739218392697847594989258802549296342436031059031511533411291138917708890122592462064337829260671050837611991968143122632181247616075495895319945727540631299106625567117427705640309304559270036884614453526694117300615807686237229110455801203845262060880702987872461166336204013130820548693993457013369661021558723802076243576470118908042300404885403459761603328605465154517863862578924545773824948525943696975333889593745885275336013894223573031155213124575845666036659495723443284140540195053832678359340748906373687660684440389957635054377434349554902605632354846554577358395438042801884568423896828223436867948095156727083666075650426033588987590462217512629708846430708428431675347696419567088834942148454740253842439821966896851105021703046422486847393513798263926570836072817150620594097755992921995166941522566015671820140562437355556867959315798662664671451594501326855477029275620344941395524721141386384742736113902051943885541889067818906373768173714002303103522644695714622797512959467467864506017320981273478683621208990398489353865045463360367262641717766807877931558107694236169316067463901637217906149071247577115776048621242243937151774337997648919649523860646860290057958795516777689965890936242512304807740395975217978974249728481247452481604829597613883275714627713659245581848062705245008926583285009506275732968997196496819068254093912636428778375123753674875276878140810345922444796227335359024581050905214594245984920073974933986276320992953016421651555674092457030177432861300050353473082405103014519294047158916432706118938761642226700571020058303073114336450902267745061184339573164936623812131775137622991437450112293013855035793339678555141531984955009892953152921881682160374912021081961784404008766151931929760517536867346543338453540008957116304860424524328810374591821654865185356097457343072129146812349672021016020444781687441683412766965857381562096694019310142501016450539854009116543422351589376165136715294389969295792478404113210460702191273918912300105771153906576183665646119346797556277032123548408635134182537791874412169363146358365618808764910357065385385296661454975327428482514309824941018903209373867375787221899896313117822412642281776893155043212540879541632278411960599224205319650647539150573583791518008900228001712492620973419765703108287887205436988930014712702980594647491514922788721656764349027396554275436540290164490446033028520643109831001308938942167029509785552551482157432652630399551531873110480621513847119290314818083840993860481107312189326706414872528572369407448156318185612420096873550013576479964804204751768943153283790131793332423408820650157974859393896941642400254311330160960115636893195217728938966101074274611082561225206747212062284381345666294909133489378668199069058135532760716953251882679051562880467702240968476918960687532899132356580009611845146592441313231203930083086714151727817399225555910737332561166666151227549925170107669372680058191349847520701502995376822651276431158486586900844047711582368459307743896335817464310112608469989997289598984853090221300293702059674851989145716803171541702257788991580541683375391948802694527985501555355538468949182140471231459565048114486844214642032836390820737519067601946344288826207260188587427438255809087662885391333708494120134396582646293044893536166819704187567545813225882263882432800834322317293989565855878312745799507858964558481802197127377836439004804615115525398595520139470885752045959574177278672335038038650676625431010054366112272677005238325421148198127965978528280586990673249647577501847178137229860714259723442941687572648101470447232411624838449142778185251485468488009583869687559943106937876471973194381057864765060449155201686903402370208306045754318773660736231141250005588801669239669077319181265028403301967595706551821145932362949058044278375847237185589768813902900365667420610266735882446710386476263893838531364323287352950037377403061625290619763541785845955733934296641701516029551863869280446313014680382197887325432225690683192245784079460339551140376477941544530854419020375037477214220993971754508730346044318125378611342814227682936982630491154663818093655598719141769901610627432969956194593208137758497277638798105844888430174447445797856162317698791093704555823938420941249415343567417425746248091455653187531745622143186147355484639200237879301553894826047152700142656665495391589215373539046462988692443959829333912925383071178593828942194970465036425194191891110257750653228490627724476887305638838068272824721305219067491751882595139325244270452086078800573696188316948635684641757090137407380971565582931818512345410283166665812141063674251731655489458135100056997494169293920321200301193548582083133945316893122900949763552518665963341445323752362859430943354625253545091538457453726330780235531580713828183676281066426457374716857713606263854224566641183553136173224871881797259941973009549932133331099434996444286850519804054068517459238250255592964955196816898191803774582383069277401091794994179456510678769133177548270854682484335546149006199550465971122880240021082344162053059587068612923576537309853909294735199760291184773108909604774732678992628462315627796155278461796600572708939568123659265573816101404171351463286916733037609338811980075054096706419574859695940263661387012828707466239530396380236752761408607795391497629956701294297018481482158696064832775883989358396732190453477331737247438425512030832611406756272809324327184393005690120353775996232147508750191968134993159338477115229154624628103673470836465233754474465866267174317046887050118601898570235362331845470349539272520534627338694501999589463556342914975937716994361810534579039378224861425635156170426018397706344073569062290682941828679136552111974022995100350421219406820221570887047697610131118154725827741371799381087143972938897459574774867437699788234830529107687659444165801869381962729466541369245765628547478712451039104477648751600939071026597663225781190812837091899995152034866943768301142386801295209418991788732216659558961034881658609255750192968346326390723800360385923933852610644335136098812338579092024396731168624708212227693970389098347854154848355581617166920166983547508939656419525067129771356703232886273967335360943818399261727623540792420147005313995960525942273574968284383797347037989048813481805250105587699657519936593553735370647597200983509692876034447172521928437414220517922951144174386616049863538518045201945075935489559256584077985241008400929395407135150076077550111500405080930127056086238397720168799327448399116624444707707658094511986984498204520994422018808771885143498777264463778129732642205887890275081092771547071546215609753344205457517894534613028601536550209197810695464220487760049207041854762951461997176192301418300805567384297204076831127882591282856652061060537164701269966790927074727773411099992757730496375052000194842403111435634046985886928622050744552701555930471046562172681480919799364825945080299534326296990810227340564477224101439063638758567124225741681265664668952417153376645291546776164648752880046464382006281480864383388023858672630170309350174140140271389699031527116024574184748123084254860007810574228841320722918629021391280130713313978332723579349410502911651978105315241490831665662346889181721101920422384593391365770713743376288932209959409752605838058870571660688823537469171839055865471235809027178417715740302336476985088909193260531869186666095030669035701313157494021762241378828971435770008614639785200393397975859460595022387673616798995802664746558867991704761413401111716774389188127035872778892868806904134629254514245565443194196655363874842158935951210622255981486040673327809963291969556426132366678870414776440581269340709757534477162548844834519910364204419970340854463969139185839585442435800036138709009620794258546299894321058995413409112395111643654359681398486503477815527196894350840044099688853975289494497839319324094762157509706722690850905361972986983130072199222215052066280718744727288223607237899016885807986138746794766173591243140833712860219641708396784246656428081282685106623812273022447368539628058413651955472580101467075004745411394111899040127228149040793118043871754945596251352386334985262799076946605323177849820259464166123049491349976350142187630379466819290881655655543286250207644653006675121820773917842313802383289271941319240723303356051264911381513586432973534122360229784812552798312642025618647845823403989324258637966643284139324229819208560347032270535848690430968771472865538653829003519851687534822684445250707128809910110112774294907024415099157004632993244348406871702237126342002003522778046498934672479393959306753621514717241814635237372326526976983783156825983356084017598609881198931135653098663567467951469465120361784932904878458397687104016560320358458791311460291040006287296818694468239242659422663902287405222857759817421736367384472494549357349171776576616672111884053562780734436522255453946494612972815769577361291259446286849937172354328487091881297931972761106565702786890959548305005224966276118835867963591318963481350037426632583887485704047283544110097111708791951868399488575688280323996566155906144281696013529793005115277919359368447565940499761071865950110467115028903565985362323061660813199265830589396621419776643246146698908458304330772270657525640482173572736953700834193673163952773915213166660497345003538170272917467061804014763473090206851618143496484089096112925213015646449194102449858606086197277942126126631368804431698285870622524722321299291528500495909232583954164980819611197872067071641575866120408272778750934534624250792833525032414333508563761881329916032030887876748205400262297386403670726782778715632543784445615878951236900836335443255165827924891544641539947526252165582290442034197516513932359545694027191916256173052567673712537296612634819312091888836731112827075218996104439805901402024121825400142229354467319668294752309475904058511082539224421038240111816942819307519025098441940396020864636040559548786653500736698889863371573428681635149370450031275881180220216444984148713141471881673074028311148699501267362431337246051778766208491512203564037936280959275996657558456877705066941750744380819613245286016800659869593623698160596280026251178219129666428689384793936121888477608459452221956950418251636328965018590330691757418783441433734384987398698324804809280345326428684929187157910313492281288242703088942324503522303867926620972018370734178303394484467749562613168358190764531866220287529503473775802558738570552010703935225657678884349774918103729016749120781433700486166318010331814585266720087941304923968688485553116178484638234140800517855675639709809387595715431194695217649209427629432259082471346447902877428433075008638469752444312216235748839537372493987897345081681911937842143950261689542147687598447878108114729430638513850394146788288668451070956358081195065641806272143957705387902212321232765064483640104791047490022694175876586585202967831031088728567854541296840599037361739015115807356447017690466092637392260400394520428655269005523598867323424894857138694738045545224150256009096009821925451900777870080049753793005937183493891816232036629697971657231073243856080776268381187857109980574886604637966455867552504770058122438542492684832597021951481748031930692224578046461588159112459418248302226467208611737312418354880978815392970488182927439721180385841632555558042038329318812215405855634151189930280928560056110957735876867477470829443272413662589909512957902671675967857564378146740302886901047954352610685521187708771701898698759808438842100834156154316349797054058686776813708501810771273420746274718825209495393221741666864328493143614134885861119505433725560273475199351733554744455115681309501467591746760215244016542613858984240786364476991085050875452309897141300136208548693320552778359741539650100174825259468131006737091025031603649121351583939262493857749486563587714330885670113315968177992247689627558528931755880544823169015111403304444039475183466982080483241274582918825868961155453458494235056897320856550099071910628461872882419416912458051881794537205794797531926413849746194740013159027896180966634918580224597886417340675152962909946611410163481469667018574083044362646637169898587082921838200910236823215620216361530736421726001759130091231735996575575218583254378569440681819162749666213504750289233335877007607491069267707076236385962699291547584777887694810319649927268985616163071093539318979281175098067783246252744031076372649231588965238089783860628870385539380452819491387526449676878774511084298487044005875995140279253634413110417533354868140377941396595716854840871590653703707048400954261674952048971554816272034807206620788019262621704787975122392965460661216781937364010878254227270750256231219045562704252812332024554061756533329076330442753526350437608960146716703471391864936253721118685139776438882328465725729589992519877646457293318698023052988340758084088481462084251910168549544211620539284987623406949042051717459741602796627423887250113082603483170359756685454499445733091573955090294480654739007905088494927519458245694013356134122359837340525049450172285814123948500893497667872986174398903615358448738652115538021344339656708310297262008451778363878449412755527559750215694975659130777782854368172116536317023357375015791984996076501116188555291321581111276574135220884633240263969083927373229345963188133838207687343089078232362109363381120700486300452803196265462670825660182911337812738909008705397677883305626866498494471095570827990193152275778317224739884631922613390316744834515639828844124789345035606896109502526624964213894970992965100483974467343494004103936481739746096385436585137529365743876546533457860819672110390789647784650130430661553164687749589587780407223052168403575387665101934836962336836639673128624025006695662991933411772534056732081705633767950825788909296755367086144792894654369550112524908221440106940702763563209854932305501566095958302241269159856462561895688227819907251015772804050508148652607913985986831818688220886307082579053949154557984384641824571442636428295792263538402721438672105255963003802855669442639021782426452955457117536277502479082377966058441145517262137015119200362934362962168550651809802927004398265356943597818803668390820131095290179640583370206407988034135531802935402341654133359561581515860820380940373089839368275137849865621473794093489810132690735540201487779513441022989426132109652253271031405396160376033635899721702947152921051508700677071150712807585447959449530595948594416253526555379599701293256209192579889699817431709449431622013023250489385394768868866130406226577492041527270528610773237101717193330061320896065551384865815086732310565205868364182426543619973022421812789050410709455487408149590551717936720246492168814950952699294732214834877615273694421083772238964382310789021502618792834992180570829235818926038251636094393547393091556710334702383242394369403646328876084606669623906535103800020054897985229664019743814288211815332518085706700686682780311025608658921631268073942346183161689019843851555470280341441900838972927449208644506587593267903366144993072439332470044086229299375850491845908610224660644309163788823917239450728965128215496313882176765531238846911004660432779332143327411173927802365983054034295102160106640868790923702683971086064857479119058178932247518068833389013846642516061021404595441824249548368039541280650828099041432640633364858038693185174773489749553016674415214473632929099159385457939744495285044288924618469810784207306740475804644794425770714950401942457435960293940261792442371523820007777114653734622791547003035950776989897075029692978812933686280010434167973552605506566119894855248586680680138542434360974867088249954187957083983475505216986707031395445095894997400728518901645572564668007030045988746401181146360970266044539651541025851876191841193048994088890161029000288782600318388292468849012301209075085640486857299882580493293781321830340798803792470287125119545073143797800860079849016998372143622252761016846559384542853595949977169357607604085809273732509905114909531441912553054934098620153909835687817145337457015402752415050353788193869705382042931250636465945955620131769502996520467309542628182910286223665524432701976315505860606085177110457669313122738703222709885567767675854027421343899862946597093289893896578061206269790676207607778500809807027721273555510213655116034597991356516048478115219890480224875428853233378535951010266803850806239805226324057729342601162445827100057600004834528646223817522804709131252186916725207098302424958552226666542294166235888346668103989834541702484954364765466116170445182243396438980259552232663435526190278164355610514808432955145304406380320072711905510200783075167072267348077463859907581379435444297890032413523727626535739810624369357759608474339673306906217510412451763437758274996066463212696605820672714863962292589369916708037840347410218231275669327393702884326655884793869705891925690092439498442229377017590827230179597807093257084925481973147966466759442192984830632546948028470812888500553073595613306042348590647630890704799412461109633056084363015887507826929390294912283749111746314401769286945247979823308192770256464546091098067659627020140946231414288042873656744396233425864780825753012020328030815333524274377483312158428930964871285966898783804483825300758739346300255664695802259094018703045353975289443647284569549519992778786655424711570316545575626855541786420951809400449420207969300544612320701615902403770713811668115181738691624737410877299757727019646906723635285693570154814869685413921711607926106809861411946707772522017057928145361543510101423432250193637288968133470003954227809987786825303975758156156522455586277932538305398714977473415276618455268307390030198011525123304160198519338017563215280847966611263900022376428790565593706131283170473927460102518490530657343067061665109494593142155329391615612852024392221621050315856657318376997824272716125537452683307874003744875517237042161255424102026237391257750160825364054073287447221195710429606899867453368152754706551138689357041822842873297275756123690509923239213235767719810270857339839752134279330278220402706406760513019176110594539141207965432762919863297836811950551243016989221335281295133556732417813465865340151811237952626328089603256952478462783389092035391598918474735232659228409270823055454180936196693339027939366640400942902817529220878080562959597607763674962601107859196980528382644450354635631873054520683909650468633483600777444643794602928683264689675162169381086480009857975727814757700649150454597503155793477948721369348646616591085328608568520615735834577391138117611993202854527656968973250572119712168538045179471899002804927196996372320716822696438757256486457441777351042366582273831620756965928843190283824952935982340095488553031884643280620768727543316780998102917583283905639463311788306957477432380945921298147346527023436760741133553856106877604805138994605469066146998465020926894325229853586080120715611254708724159903858815070464711928920304865642836200755482092132156022777628632803325462620619378491776372225743916517925077310745164896517932125835355510665808840088086520866996484060683545746566679109952549266445135297355899712502527911922886523814308683548827185007607018450277990675074994045531650973811027035297803245193043248999095686200483904967102701960872567688042072676566531759430608642561899290786980926614215151346163576544100857960957369763229095257855398341663021890577187828202076371171911342184766619570286381604884593624025867859640650534757795572394154096410388944011068455587782053251397492462465822665468315866592673943434581143769348233017668048531709150456374532908164241571480628188154520059730027573184808413213900792445379584359117234386936325091808768886889109587657207344866090667394631816330628412180943555965653254607527765825887926809944377722989293139273783040216081965963257525172832502932435314324722949955091582033209816803209256476443343897444838705869204375097868865767830088902242861562561410206127014746080027330879461144284461629298399011253177377739434633317204270426530038404894838525057065845811575406883432220562858257966004508003975174428722341505245795025901821238358524034842497064856229939758415685372069688850794449210569952216346011230657557708624158371100647617453732373390104314880504181965419029623225726402894566192259482171575728764352382123234506116436265617222724611953579724930938844770330076018889699466228564514579176364095678558181815815132271230952885732493319215103505684512620583597010063532388937386696974588515183903029427948543141620193765301655035803649244049836670714739721625496136631043455384749895803226586570302271914840852827288090722011405046339298761827159536759306669268000618333603610203346772990958931319106467757918326353654411901216640707486952406436970539699527031518030144577064844136296900876785403818351545797195609223616014738078144864328849367054636604299067477379484543724460868163830269552797523050430671825759248142587295864806841773819423568353830905043590100999601695155323236362063198627774810404162723149497180336358836603544556894700027801348648341335066382930418476310383708432412024299677335543255325317209154885403938481238846835051233122722055706570865188359399659741056028739397427341052389307515313441463677750943385539487498948934764450336564363639026492453939305808455626014109589237282463069655064869316861063295761973059980986751851995459267929346289859637755560109766130536969919736798808289688594864755811254917362686174231475138420782883348861070672559291988779065141054833621254704821369895033458774332563793887577655773524838653996275952104692283186270308980202513146573763499011191922423816604101460039618388554767702414469178186383446187616890270844090839307355644323046503438557811795931092598003187789194018285688576090413907004526435389807630916969930530446836556348694999602225529806196445841356562730870158582643469126774077064685194721723031484817376844464781940234326132428004325652240402071857492074310767724782692709427280722906543979981399361149577134650020268422146760623399868562595784544231176861229100284453803433743403253373882168218942131574682042453231912183937743535044019012878761754665433338982108332360637785593665335477702317569325164619275627639574958640020450518447314521622948236509042213155777623857444197337046317197523076847304335095149302492720380503287257687473437244970651292979087616526227862205085688738040831429929647210160523598703832571486453870479907013750571206687969535270373444501262852987098740983161122433459157678459790233286751907626934059079234369365800409458394310902166367142248405915388213840222722784078667926598889288516260620395225048380669080392538223093401803902160520410526449882209467163152214580195915498137924776438555071636892353800511990807000378808863160811928732462543755904570657181124127216541046080554282047408803578586768239146594999145818544850564677843754542491567723572328195265828233881330740035721348121011103907475745325799821120414568018584362074529253044048969803281760678003696162002503922644046078332126496022893121765307919722066638295676098832740142415765123951219097951335707363084900740739544238535874823505362248336365215630423720012426064537753478493128101316222010115646936324936539275519076324998441663777712939582883675085359818107274744623060605746725336578143784849240550801897231288907641246318822528383401813645945278870070702161835281584266739473434270329277161017426702550522852158909787992463565050941787158064527461403102343255234474457105582930008505087050913346561224019521250695002390279979574236942569917741846974280702367721890671622398824738417524851679989257811954191153714855106589570916488873672895224359531239042444555591911352699226153583537658302096349652594672894788881242956948948755841752247751108347915598263204328450315551691986594985939075689203045129291214591028700856528036197275172220682091758812771361688734456852623643833795395945554487942947381278125964618010273446376221872130285781544622898360677222242027990354751718303757392695947867686243949194725538929180792433804207075904315963691316810905817676448813287454024258535562251181171215152439461839210799676020127115350669774919830222539968684361306785023383754516813745131648929199115094725876900793210804223474919366854857530199295801727897988723011567406133634965579190597623897820400786508874243304834236560472127850914738169483365356387461669656883227932419075712510196890562318769763643050246312118579141394557072213938865918190549034922340421814079636629864468686683765968186459580441931037936402178422377575823442357195144460707367896751334592815124461862814085686949650634125511738159355022118830837018138360276395121615332265330713323309218176922991068452822892514691444824002307370821419994091572630638614743707392229746187619753905488365006111727409875746484912903596053910819265191784796736308560740146981683415676845889587762453507354455844755668731710652148301579233411351365943565697759339631286143944247883703692750661045504295797904599316157714845380721788100668218588154506401259892428409001731096970298066663150368317510990683599573015224412152501163315976635836373391953284314307942929466402829073553979141556282876834273427520549843141188257234959838331251312394812849502293605520938625428452465769746078943247997225813637859413026324406628296659553259452515978919929888990953678258184336047272691555002581016746919046694462885256727943112940418231840806045019362016337891235161652847642554136653511762386809243697509809332564336030357169818103351665189250701921900641405624416138315988306859021687358950356992838210564946525023773508427449384423592229211178190274661830354730095104440531845829609350196243184685903474597760684951284733118888563272056464930139337859990852024683853763292230046809548463718402934499449351398255348871509007341244852036596233828170488673930662971305624014152434078643281473744951971531014393451422616635703045478529439166536023725874616910295811188751349692029857590171603000668299093100058291847951974213658202619594488618520168963106444383491086941321158095207975025973083903932080002644634582435954821519766663455934130667002340067289681612666373774120048953582923077346564359966146398299328230997348746945268555104188975844221628302195053282917370139734522295222849211975624342132332692647154701054202823332859532199695177672020465103807954008414528961165757656528436834055588312945457450840278139668293233594567780361876485395899472970455134873385599096534014042398258131921180454588679768880598256795685658180452511725114391843300267281396832118814587852197598336936162144044728821884726206945660493036978018573894433169556622419911591460142005891573363907759509330313249233814376242983394452808017007430687368013888909393739778077444754883000423974621836146850090279620414578197810739998017913495085609071958110770062408248367694042792969652749814355428860507480871536295367807961328633796587559930918778706204622360327762231332623703581956212686759311770288601782813315263116340701908152142691662163046492759584194256146617150909888378152677543401683455574920269394971376352067583610918047046162025150738125216331506606460784265875472550560266609260742728183082012466100360457109899294268850709557301581173536565450478578870893231796888833377392352666653156398308399822824834270653463304271043243852358925488744694352012433186954291777040501583864368704312390591677309880628972343730692707295626499898104057029240500682979913315301911684819929896579075569757810265016834437273061605729540128994550367264766600539917292019847161870527086894065700301853270634567005125712683210205879900927864559440222861825268560867543086078011015032673326494050234829426344672960495578345041968592255589523152243111694050738052391112844950449202397147201846893603596684718515350532570927535054708071901137946529450173273843113654872367194865567665014743500216441109736319695245100545399715133949165292422159232378758377104215661448087674568168508809625088353395159742699342310816508208615631006919807221202000143815808336299444860063245083248463269333365893675948095463194495798576098411870103910345142277282732866060590646129658593135729039360497138231173536979685796819055200748363063778773940319504519097734092614633091034448208521036766277002768111959154011857095471179143028254176323794663516241690410013509325654436556173958520195079499692893066467431148826384171951592899761094290130919807781095895123812745205391102947297865631332243088387511451008230425315490036854818696844017468358997439199122327524142898646853666319919343004124580288148729243899973918655603410652448590961244042624889949951628284103752253385112460309067575052502720560380665299568503188597039695871416599828171028611373814368378531438147508794246842953066250745682500391043419832325140832130379465409872755134691541648439753926375154062704995480578971608645019200245504490940118806691946874663022322780972961707327993100501735793921009758843258691837198600989242766590328406431248930994249213824760215818491947501377063744557012953570154443149654871093555056859991366819151219826058207438630682779509000898923474821967260331758862456660428093267008685370562372109245702836505467959007566879707511639114556573205589444414278586933755623722346000291617523901173590320943973153074241338964991855993384664227201605653908668487736836977690869302824170719266133100972323418240472558206821461149853033121208294369131805260596018896616340569168487710694134371795229233016443720509666137385861711170505536783810877292446521350405347640796213668597307729319299060503720759739813706536958562592759301525662697070187323337609563099371495153901013910706837658983442377371245665874379165294995365952212074809293890949879065463630702059499687870054443094461728501308106263317311713343087993678118490963767944606792564975403744499352345276045087999200542210138393421456321639966137690637083595214151709540600088703303871468456121839191978827467525161171535644737777836150299372498874088000971453613175817605090103771985048327951961454868641441179652290010544874802793717491999916577736362000420368898676593196996353184059846751007643195967490596242713488684153023557715421384502969691249888828166158764172461314732994075976425970298463346795679556027589152661354212439853766245644586862315102522701226582520125059147500794550261214478146541410315249988186455447750253397075526101433719701880364650144472019588086298533597343684261891811105282688303103039128452285391105336757286917736754781500458734397420610114736728277568272349547580897157981857659063286141628729530245648936647745575535813570874956363715985263679801659305230399259558998092176521270969126315191106961049069856756062457782566824978025762526505233532539058633209814645425520382384743173338326462709567844519420216546866903549183656246294685245212781189851440738928425367562160445565386537523230900538440628455023017847925011122899459613129106747075942182012644976295259212021012232804578611253093817760449593121715538974454217279363772831888351192613779291976435213431649436153144590811783999251230696117175150416118323534287222351517792189506802152985202028035820567613417315278713293384923808049724252130342636925404447690461586604606692792418673242162919043048745149951223873782589677051061812451542777223661379842447498487729133093576526796409446920518190340234462590513326496234332896017560066266562513906501824289381941291668169200335590117724627852188663590264411678380844064629191860226073745033829594501330278658409478686909263366758457979810937032488913123645988082538021233487222441356612682565305737113623778310148616720480404773628280993597048811036097702012366093669589975785320517715981983394327796862887663320387800274787297777744935535398390254833282638833204093349854207246542381198200000834385004307109076208176659926429079512695020843687191704149000869419314629769634539746195327206026913283349113886999474972290742661842856512833826721948734624904778033510540701827517009273072631345026863334514904359803429113631968072253975898830881554907255543680046412558422248002727736293689746788090069403292251173934004485344454840311346018000568250110055750940803057785663778419951903758476114504172032996902950382031723982214663014850951319922717120512114880551319647697263108708048737921034429492054971910523272256650345620856904658959492321212464831872804245698739467190834611415062056853075836607953997068018840585181122366255881819920909691487387220568171024975990593150790901874737864746662030679279587965717139335223814012065955938728087014250654117164795889705763576753568163549876399366338500655289699795604692893129163857328874560118781006889223282342991468410604143129600902817824557628264647083915786345271544221553256916735576557162988168326423097657542311357098373645359926993645792190882486196141864769315216758423460769304805769248065594089347853408530714963453849669143716154952791886943510533601373539228215013681853401005449991374884056064071714361560352704265684267347758045414949522023780222551115979371278056975601609046110486920876553202240089779012240189363997054132816138085259979209856523350938909165700673089285053621604658737904715408914119957606281603327122778954975824308957810336351997245520420486381096163485482365803700034778680876967090632465931066284937236910650361838733211286005077751605252389575230041322258424796405475804983224998319421775583873860250168599231652268902889759827112122753054386006916866016233451515951481071046317118346483570169577075182234988973763868617268333913380915232312201103051998142546910858834821167802546380423474626327011886928757831658733287560272915406952626676050800118907313297553709703405137604144470626290196071302794528903208338832042114164239140661900010174169427846575793879470389168256720364706014580700776569464283120704591973435727201880930855155005505142647144809138312279079001277725129283007805762820786315735128737593233634401219865417273614608276796640025900475156004192189139981755735477470245438496676777440102616376152533767190211366626626925678876219873936203958387065905109396826455200952455797614440548607152220486710713375861314989528703711639102792665950639220379299732033951475358730363607050770659304005475547641124566099445404119428959519430003005650025291952927639070767487622447725100254525854662992400818243074358314081372323076659715837235602997314969468937960173574206703747492833232293788504510427543210425822375032980276343338342906332575484914916101301349380129412363732750956963270417421645611633276134699998611437161744825696526878110361816115280301018974324476075014191165714621034837083304705291809126767437007434338509132920643078852300551769390310068913196232834201729724644427852812176232368602811681514033885590938638575619899894229554855834633968460894186794998371910965392906850435138529219673498124813490212195994237557889881026859832528145271172353362101837568073029348457124048502389468313664829725961624794480696910298413082599133874760043980336838810566912450718631195144104977521244994613439816298428671323141682480434091635508580756687607822113108424913185359896259430252623098654512476064655469296466381424158430469315833337619298458887228915285888910010072588191355079125571740682296846184813994811698896900611469803762302189246092049363812375752302543153067612099965507085080150430878390300863960122877069426442471258871777179013941320867871394993045213580972696634575494857268123502082849011699415711846654680047107597600770977221937571193524927517900881942371759094619069826800462529320978598334743676754350832545416925232845230392847064642366374525721611908768128166858543745985553469518212107197100174400455072367347323203357307237912845191204482273919643394005807033586905230117915411405153199059095315566552679640707127518072840517347539837515153696744683664313727856576215799580455236623894270616166507700846464445792282063053297330325052470095581721297090791465982308486448250373806431195167396841186698818866496689626218404588324238528687106483789629948641050013072647258621756236467174869183446034963424852991994284794451222506260157020073300748688429110646294532954694574973391331655066032065310554221753247285167771937093281019617002436108168957042255001817098391063888953649580385495961251852748630096171978185858713647934747743430754124839097801427571671851488843526389770526164475556294501004989590916228997758418528751770397312588496611898104856507324789197014907379884737033474931896734503973753417631998976229044846749724487674210042778041261156140797610747967869494972729486321144599151335572125588620263485056461147667267434495300364935289616561369933775884336646728234848875265300638928688474631096734835191829177566777913082970251015496078955805049017272203367091238950957153343656043864200987597148406551532481661550921105606720395113508431821427578656899276113513274477416605121976552956141970456180252437322483734142112160604517611157555698650013832343221785317865426207463555849366563560342640722302863363055736491560494403578271742431936284546874015637537093180527651828256273471364066914223396052248578206550291975251153176336244438707822163790782570128647374049366219065170300440649132000012475759882810631301337547258420004408640088787485469333553422625146462438130434698494382402656645688534505291485362618034035980243988153373345117267843306082819106532003766716849466905305403142378597778997716419822781058460055626081879697923203436098137920238046145955331768657469939063579904377975685472163156811376473746334340682973343815393379264014884799798022087331757557927805333809804739911416596368115014414351408947701869603441462911640762134920096621954261730714772470909211537276402525842306323251676208219144723805945114080411727771070752734520863747576416250511477451597705334577581670667779745195162210311922008439549477403395925645443460840118350755130954819097466346231105841512846419355131509032041180350035126601230582940128183342921679826785272802395913082572348568100484707164290966666970795641129165084341784881505114721307339246603482250704509879638934588535922739306590015195446346998398272428653467823760674373601829712012347752456044404155503844331828013869123176893763142436023039718992412042909489850947684086529390801098844917300458673968520039481423063306683472861103932723390214108034816819859461999461266440951167501176533857721966760715207790379758943575160602085859418004001119654652626286193470616576045400154649242371252906141499698353278976612888854062050266833875232859552658126445653245500689067715978682798643998362712369681830792417092654118367115773777004044913260628801807924227533014599206056682344594438028005374191437778936742761075024433335098378048794959214271441293315251366466624350146631720038466869106363306844394917374229387529331395394448244330053759592345642199904437863866221018177608172482479669273006310997789198564924154823835422950937596398313721376673944110445556681180661461217883932095366043128595215417673269403841098734994417431627104953964070997860539659720858680549162693108358670339533420908099308449579291151637420436828726845791136818064897150937316666509219485874349264468409146752902960540662391419651050579040465062279453882114816549243256371350294248825715928866840905117583064475420950045597426555164329404530876515181430601414402892536548535801211505398974717369360827708842099776416021597532381158601934927423081961562896884204641630118646174849547399907254010737525251441987646804349598871679448183077675361444522971531887197789935426594177164862036008419579880327624695430585761905548095633388800965954442639239798457448688464458377944161080602457433943846461450445514679644299807492477751370979413547353728540499423872086516232640865683120675393211769317936273176477700236978412320954674527965086038611700455974163942957016157250568544430256946207923904389197711279913061243502794281145794999619859799585196370156437028019292335395101282737732338570163995389831130691278682312853231652973074955727355466333904262113413955722268438898611447623202254820911003393711826720268063759786247951583015605044926083648561239886189426825184853228102252047771550998648655474549182233759387356438667571023211169709298606154149677704111068336434356620647535858433556214369191881160977314472288749701004567611445365023860127770425023764910134263105610362025297388866983737044063180844735772594958204511387917913480128571966267673913744375602011541841486085510712581850748555758051626386785405274132822253452564769575307587953616481279213219605141731698715848061622410701153755918172399587025012510337153437841240500616872684067508578465954184721428703715549538683385015155226547708424860656786276040261127885711506906156864125087193276711051912639833265609232449187740918633123430631529183209981641035062590594001124519329525328099351910034484523963069372136004101391120930073901543816324856355640703140213628406086896399157579880224270110649964576101454809716536637396305671320695890862996699162260242877332319529079780939493525281613653902021644004149203831268943471512140201983491491782941794346601222969970628155531013070028629422782739526489500644316460129852259078165603517074046715927934036269263287257627860970374800481177657576169222313572049592378569764494079947052070683890281835021897454958041093964631330273269239963589953951123376499302274994469116575220705462893427237035639499104084992652651938382217946438139479317213615947334367381278092434401700227763312320908130689539330390780907285717863325383093858409844873246189795041565999363732780403210821672989708614530758452403666379037780383813443671689591688033808217186954997317169790615326395953139556034987183230493648389650713712046997919355265789140480504171125134476260597832451393448845883507937794470791702946448569765704153962250261294164088251667052116505630242695822770315711819033609534231377124794640805405644005060313158967023695475886629736653528712110804446668187938948880976010844590768039429366795399325988826577558626350624943160554482157726782628791621738192944033504309459407863323337364322780116432847448791050324897563884095616513054931413934368037841330947447202156447964653530886373964155253219359344995303680234267817452905961883453566361026837567136182999242241702831323253277630246913974032759082629139591557537044001199974034624109444088344503972702158988731656236897421118315315255644823505611136174003064332529065668233122366334232926987222930320266644735608720451736070621016780663340974184938897389360918972736174540130098648685160376729758076204409309325241060361138492322943469365088392748465730253495505338521600377863439135484633340918305798216329085268222375009507928819559852562198886635211346194897700094643657924096521129848494975798954421839309859546882095765560715465273117378387320445234739676087072861265980498225778073468441573924698017291790721149183248153546960140683788837966395228264248743334648950360371832234542104767373606005383542388655505311607594245037482945262346240480057169636659982760388978352055065737372767356962209575899220260113478660113253639656724770975324990949393470060489866656918865470488621020521244267303024037431254650473944976800601793098385940099193303624088207913990551997347765670352046146759896354001387795677197554978225093434308320953685741249938312316859154145213705636783939002138135022263640066393760315848202823333842206872560364676522420258344925344466336856281692462295866696238941684896561478183854523001919437205343414841327622126624086447194026204456237573908654069129370649016950548026763346393300987567326715266549235835490613321404413850944065852867236616805077430344882575986372385625144022147578998818614402854502645575621039774064510116923949132081768896865144339299775749455696906119954778796125699029044734946758128975479518648297218404750596623660861681650124187505333579824256692395102153239577487583892180651467670188693477300511664147970505215236283314619636038378301089260246848679064337374104934036054197543725163843850964887634775857761074395100247278374775812246532691426261210702092065791671668608514595050184044567812516606827353971427307813559218112979462164325323621781863363460112992556292590830618653901520220121498258520356463912489830759414941827413694505789451653821107475269363296643868393421633625087275668753914695999506342742436451907890080297316076734160424548482741338752981728371245096573753247661399778105998418524439566758727396611659507227107183011151962274402229004424513464141456453443830904993366109859280705055598069089490284984023912498946963673525833878439779188682379896826397813199798889216978393878227058931542649385108560750789008396821443284360300887873871733705595523082315543207247528254196695333865016792033508343288198288928600230682543118437712767799514257242148242751547980247720849999646306130287981621295693919274940909748556338472804419098696090734443718674911028915903206540824164781380467730634106418630433804178008212457616950283901709103059648514048447278122035219001651034648072562248463751082639806733557925086358059741652859581296942956606742121226380255962944740367908663213936074518234691772570599549469828496098987267663157598034893470653014972183890675243334281294369303482742354476833624539999266743090772172154081652317673025557361063540208761958476790286184509436632423050809972561090247896493233180108242979220134287582409946007411850004742620609092472066353742202276865851533702001033590583827086541213082835631054253423719033427670682448529048209770562837922190329959082668914977426581327842669239573481918183537654959040405993080783468994861159310206406023734499842811418317523312668096179449694360436202052489960476796041614539602024030552004145968215011269225996025805196744102537191005564649479571661303787795096576940413230855535739574926861711098933666812637248336738017195296555319974175773894425210276603733041106446554709436601695761846994706419861771016122418654027660909369366908793512933679823122350022910651233509828614871337717358942374094857087200179545369459933097610218095822189827424813116732953778848206560205213937764000772651035022874578548280500437608783648896131149760837957635677062368988866543320497877153590813241562954711217285020913948320387997007451253442209899757083680533125354793736719905352458827226032731827092643781051494377975625771259746369456594526272684604478486058803549592741930760683315493661703477514044019529638570495900475527769047375740312331437459331026147910392803892178100249497131910369240041019906828731053126313300894354193907391959831535200332711934099338572296585841236420672995118848086002383854186197485942335536672679746823983581297042474830105454507037352720268552667720502528382878247728508834012442547324940548557421157857887819768951453914345510139370522864586292004662874134882244883612228833026683551332912948993621152215498241964382206434589312057943328635832602890311943133363656446708138869657284575960433411884908609820865795880911145283762017351009066717452582203256843066285432152127655398058015532859951989911452060802777544082379446958300319494255614903631250905313182169228916359323485751445270522943922967200837570761074409235722084653557290638647982707694654715579514478832989288077639861866025443807517595134086572986930092234152615435481143145491770432731806244267178592335757846555983544610679193744633178665525466668051243265926197602005679200402629025927223241906057785008322674487723908475328988284489913371459558593377664499632193563187705275861009263988184626714149085108605582066613182902814423545060982322747275473433498539418837669825685744254962110455989719324183650932149240221863225129574583306449106906644991076448443201579726949090276342557648305703676572953212407111722071456266533703541957132923320092703967280448439835270621230410857283192209955385518244471729625980119187611123642916528738925877002500475438872458151333150556678143523563602504184967953048893808841194709031395396373024522960844545109703084662923592354524750458006143624220171396941374046400670784655306989398976225205426434864652766489519950270929217539600927051198494421674199028182020225459657902805195602589106792237257543554712937570669917037079486581875322992416745654771360317810269982847000758725151203699008679841924808915369075095636491584766581591489846595797318644853993319459974884828007406545888110002497855870588740698826705086098447641919577215087506104743512825392752487496586934600848220095366663091340460587165473905814348855660062706443827128117335412406490092788039429848999700221204575279265371074438416178498203995264379813403865025493846787765227231512467471459206453739968245347362044994649727579482419425020509070492708717574603333751678884972285274077441899170347551024367697165270167305860781106213664268510559513851706394657595895987681795236705899324244084671897867381544484490541169727735261371961701338374268527156953383252791727460740778517395943348450782782580410498919370744016761548200636820055583605478744576717101731160252678300251051013478626923568021720533410128419494512887269067426294551181073420420538733236622801482461025858289732093405693390869613775948722289768498597204482183367575342288232035530883315926783654556731475207100430499100839094397985818969896232178538722270552265448342411684102681669906847257660957760593728596895477246728675495451837382148964883443930096432789772941156963545441020648470093369671796721839275719339669921157496059969590653756398003962237783624397832765746705237905499316470314639441602784910963404540886916093860976466724656528691875182871312437416496535875162815488900438905052455588368968604237150279568902941110226837196929106670156508492555579497730099012028781321628465652952664852584755855825642332841243731322888458789404595645433226410743436247184066234351408764506249894809502696497247955004932447017930401402880320577978410286111510347929606488137793595156568328273398547357067987032764113875192026570692092554201985159259496496390847814527742015396038675223275701615916225045846898862409074482169311221548898101140789803758896259123186402786787494680400468405349388387703283277234976410870141023397483488096789853891515675482333871761958982878914688123340746745604207606636571581835828290755614131142281052912133676111698570863987350795019781827733414332061788309419463713474923807125773665895296410446279037945225686035859538975273876246572527005992087647105951316559831777855625092441839297289945145708583072710366974249774281157994946372541236074121523693506013289477037173550325186478828433272939420220067428443570573285067938937372274200250101812183943104310829029693456502188997467727175054452438557595976053835957424494872604715855156842554479985600806052278978583148245071903378748058211346070515633921375336153576081424977991400649935221002880280805580540530824739138735838503403729632437634853632317985679411085318835202756045503216780558199224053232683095168009338144559132103883745129035860093809727459783425209840059383819080244174442093248300474298321394492280428095603844013647320112788103073621996854095877378733134073855808787558616553895063384781511275205900859354047469779459331767278418873570859515813693849306085929128224254334899508500188442800870585463333237641599085609477653926861871262248554701044473510969763173807990837993230146856447731655125309694597534036252482579913490721755849109862257520716209113305316731225151015341492379706109560619761460745045823275846197146442703299785055923002553228358929783141541404639151235391969682902286355480379021911976851630723270807339129429441406971975325851224835026321536206006395034394118657884440908622732339428561658117365705674920204834371386133149599423538199925145814777656428642373710286597093768846659509399003845829895191980157082748350649393597219631919107872786315412145303483038504655485037506556590602853622923557900483565252336751404732712567283927878033784633659870785733161442565937333132476853271226509126608094786680462802551363935457180148060410262989584098346388916308911429073491792100113264159405439676523030008115182782132463802843669767100939532420897827279051884576700016018236558287788027086188975426207055396568892848918732363027317813550212296171226741954110005181187753504742929771159051602073636022568027804886782016097422633916625391420377241749057729660184036764747326696220411222332620459072697346791797216622595398130694968567347573712838121319353189208151847545952876609062150288232792661389279550073376798632510426428875566041360317078367147200100919413349837352128427132741301506741515969797486167456740007271575367672786435747690004393893066381314764668017879321605727784514402041311814585599718922104717359699962865526771535627876926876037260943795921418940100681431152409752176810988347318619712300720538533883422828238691679218027322849615140602879534134193460005486013624115411017017866942335239856883806749609638495104518708633820680955347357934096997561567124878006846922543841640201882243389628964854992438506245634906982070060439213941589911725216819539881847412629068957568731513927903825355691894263166333877723168369051320674942736753633940354953981941225363758287597375629699196761458309047218222195850908014565024091418840366018588407506342368267833011256093477371661314288815998004967790059534027057593681540763660924715763952648864085054800971163778177661893050489526117272616931395223608100304616682573784943822609825835762804113000951958036271400191765178383147624022243134391354535675357161934414209720286548840931524639686430542285430680231495506966821864996935822055319383983832406214831737529004770099187044289018263648888179280166218952670906536166579457993123739591352314872778625100213442159202115935663111307760879471799917369592475590021543586490665624406829461974098222181555987957440348819479722595245478691193372369964139371846322519797671130523747205258383395386177358108003160544384734022203727958433284752216836237672236105611038239496774183034073962136133163394076176347896827353544967714529276157261691736578729809642304658301425153117732788014994340270730213342137602875363479985783525315703664572000879713140608877223332311411581553352249565218916618868598280292040853205349597087363535827869580227205592500454499060006183718674847302605968044229840707824443750741537183865282897003864549670003408320048772625096903246497173101957368146709234958939442554342639041367668796103910428511738377532393416568022596794940031626818186094007044460841369729146245482561014812118253189066018369267674424505981800734211272320374007694652098820103282502502962779220329500503690045906264304506773821744775003065924869126573272651931564991222465965049029456140707383596938891681605324541491154464682429341286686872690432057715650639613355756094246161841920709763111458616022912226460358679661846013846720586641794894045128450354364245129019530302029791617952984200782704297077611489616493350555912472201550455917032668911492142428561031214804127153562618411701370232640474668067320502687658718973999565559652066780265393460548217078819316687349229283519404879523962964972312588303113433528060036089700646421624993257814029347679632951619579136732059030898563504007826861157474766482939899242038603105239534305686184742737997734287057642032112936488293813174684546425719149936608232773329482252286746074426310956207784793427592494575904318493765228725767150105423604900150180546550371189071910114141528420201607523713650623842640206035324017859111272056712669446779324714683330190257503632958984270460650500902944458339424957762905287230364792048620878892675111231685452397178667129161374083518414038867349452959932427997145431371647501632629119882913140568156880957548164082020249484536931472560884404675842989691810681855985158694938349978890180437871409120465053799528506722733750005628498824572735199051623544739985994349750547743546102988365639621338688513127852966782794942779143293654589684554163658253254922083519373088115004930286405053963238376458529620431626944529275731808018273317005775340724858686003640696572448833466604504408494395146446629572864348685585879042268466419995266460368992593103621464919587694479673765049640407750372152006271887679738169948280401014606818962851245558373327682536164880675202226039727946804835972162671040039277463683202462654588092521245446891993940089012827789554647572665742102178261636298692247103285281348830744659980228700180868402361142295867623750709217268589954506010275700716898961482942094750287399721004465494304857231875850896934693763254475225754801820103421808407633154414328532049844575557994331210710620154430672140306280775216199321197595597602752143841608928653527902170004245066138950344774292296695582288779687904855006995028639695774767298508421379347622704449209042492691747181074288492067631051900452883377137752982628126044320504181895662144828977145460373666429934443415135677598659971272561344587855407606059783534635533362564390664198347089356488338805843151249425054923298240919469231374515768931612736486828374317445296239435572560163006604811377458385305280636557525438196149499139151097520380291883906544015243163760766269980221652861001216325759807959764343586279421560394400774945488616816585265652410804460718062121178636382050609024076690874452397263630691109005581162046941048672111565823702502425376385784432240013335036829070054256854370848855675985852767469415015459449840474046342828504267874414114568019650360801930249657186246992123395339952312806996548854487998464590551673975216409784879253215107867891200901537802729533407732916384483669572239474344901528040808309066745558444290418076322780254867163270894747237060606911661530333574227227130267112783450536478300043395797097146747900278320546350462214973511939927316424614054511189718796278028175276013884227185139430608144382114248653971189342944476815477741729822986170362849129960174506795233793570025701325693768799642118653681232392005672221212500706864046860746707632415379072434394509268338033070157910559674816427095231333058526163360864049436100966779590298856693731829958677947237594563937189005267086992192046090787635258159715047820904163789518065835224907772757139250384949450245821525611683778661922167426697928566133487959361526443270316423154966187580831000953688856234481024794133246734644574534208298810204375167804743831733040463145902727669023064132607478071236065115476779171698502499869048935607375725441757404127154219284952293282018768469683040627306808413224816017708314282870039142308805068787957140929989376652096587431571969088728306006783722164355662963915421295800527638356732970542090490497990485479545270460419915678724914903887003967759059162586768735230568323666607679885561377999109714810162134797299280863489218313704343092828108820217829751749907127709660677682364231130285844804162530664191896034571044572234449602782584191720622142994717871272504413544677772029672585942489295156046061015766101746978198197069653848613536835194314596704546389317060511907307834209243316109613928213006974951007271927806469307132613129388621337031151630833533730504054349197841069599446412050550485397308204222436196548211579300455221852430335275191785279563461349965002206934747195965905978018285460829966535107751770924169890756421376957388060429734037522020899533857418379823885278297126762585560028957444119690863668234731474411506385302115718800998583891436685227024771231017839903045636801431409568850284112385873361515871724860468588527508134927265585696905433317160974814331058205480107164718774451266884550309535601076369810425291576441390509135771887014834695441972072418516810904481793363312848470936947489675703410064871068828430520190100464280399731137998575523705856431829725825529627723137217495721464174161415510560247492100233398585439194409420618789886035340760069656760422164349541837659284924213733603983797104452222254065556411149056007827880023771072299102206922399674219018943025538976922856261638612762616778196945412406828243699710671497355772094452461024831442509014732661181773783010862017173995450938943412323042990579807939015689919803367595147553666814019595730360065416095489964368928328506594699705588209993387164464317881022536334883560592124156434991967375489992877969739249397103449542068079269834163385472577511098175034532324368482848762091162825108478886820651945794756038162104929670563365916068667744012625712506788142461605583157215956984203308283621979504092182639621541150851347561210726286442866374267217099399620952093314158643263471276821395324997118860110068512126425196286543530478882966393625631564345616529131708798589722198459300598494349351989571255717196608247502730474041157311153307490791437418991211489309686815840738240646374393984547125668255642987799070472676348370478464856552482459109337520389705153228342139678960556370451663822874774985049775098868825941496760298442768801337794122013734197305458563883071002536412538607371927309026168214480881826266998233884339104637766033936338294595753798380767689086683874696991508798844470874768083695885601354315205101535958353156510201447818516649571477547671952522214951672667058451072639585819969481960229008289779178823933583134644852031309784653319809454823628229325888884780527045542541527401564021407152280417936993779901518178592502070702590643292933125207200345012499254459136963787532792556042224426784346728778356843679668491662427934113989831658266687741938865782167307460792826579281527375779606587537078810738735190151211639797260409377011274722254631463737898013217943868662414852372672949573564727686065308100671862322941448294847719525755569117270532280213669417567716934936338283148783748075536275192226356599857256156577031979797923896181781612793678837173616762864583613763195265775598133824980724628773957662819153788975729619639773160530166104167003559120626033161753730468142792665158479568056387618967261752013877776102698998899186399720572585314456321427068153014689430377138142456724251089699657481377022089037068882054541298350944376233076127668847916848854956159449610636534885126645319454816823428171993494372092029042387802076168359708342129369344120865641858540566337358165252881768560607088392682749818248753913304319551196787782450688450823999163984448850122732433438170864797393705740833441927324666684868294439990754946835850085177515091787714125780207090089160762726440148514290786097650015307835422028478472701908787232615384145967427937409686903820835159698461378118097723167899279253964333589957645344328397414328872890942214349771091832268026425247390643202935024843406963300986729549481565517883565888721489986968778242891097913013754134288732062690111623428198518886061007411667581728972412637341002039029982591235966345397697550313817717100948831144395536620446305969060240070205857179096489675379542743721537921991977706796759504276683838190949025946799340328490300867486895895935690094110092141320351095273669974013416197218736786334166246481942027748975463035534925703247054432483233563764835801245811411890757547962878887556665880345171644416412387594414398045272608470978533306887125141960112707505865436995714461829726766015277569961925233659426492020087569883141408037878422477278070517937283892160791283693468413010374591890301854943257064036585197261052044938638500908256287974380270284781389384856128337577191687323717396161293556390989928563403502586847373404281517485801121085693059590140784785550124093696886299828704922665508594312706088789040673765837816373153075497639829708028082821396988469448044588376452595473230878664596149557812560823696723440370804414303958407007840263624570206621395497836362346799150675112102503662384278034423265117925278776469460834838162423539903261660229385246151374137049949631823784480743640055209304137403795938728521379064420477500796060374787784826765487462064974589777252704785109505876759065736442551726858570579542236467990555415301456691147398465264785068118948335850395919065232316086758617195828353072230021831794575281841464485361061350220424116306358850096008844726142081622009389075009016397720243608437923436600532865525216217414072207166197146623351946979782926760925300881773843198570462355353950022083611253754771582179589388551245513986026847735601726705987596812613435076904917894468746530587837798364812298429379505816220135186407644483210252254365160291729107124976655857159820670494655831540672006827119108159003573695745053852193469966332882946339559469140184513628707253694293714700756617979024797847706515611198211479142245200399118458214267403581577046533573270296464697542049397822260294706528353008042936374264729249512547893866273112253085050628331699816410045838471140928361881404881557892919238432910833908357460683160201299203793029467188403371490355592718422324915707759180304848299632312143462118400895094284472867247654125292248255996574279314441344523322491714762042391912149925810900205083479970245526268087603141827413824457601919847045101099535182938882607595006581417336668765717416267255446737509975060778778327868053245175532058658701449392053195869915443459774529487005943675020621466996089169849990317275497191079262487953728103125188072554029997989364917624077195356959559261872509125262046841151524124644164992513633252043870958168704227833256279833559729137857127371290187511842365871644079176078520240732667270368142375743464264695888598729342027940353607283751506154282410304459077524535690698182204948059606717277783657840777210639193086087641389921971113983908879531986894758484542928102590136521284664607235946261408610131000521631855700014773974049812783895125934844186986938135144492776974676435446201971874396118042448103574387358864202547820054895508588874880777151521615235604858012118244820235574429567812753869052966583135928698566134831565785610852157779820402748931252686810492064563447547544164890923814283701792105728441061311127316188970578696025268550375681837397917245917056001005040612442277423982908690928337619980593894265316855252970525292385141559451460441533480289929649538076441111722792657185287417288795583956754102433209092267657386463695000342607452495044945566918617634079872458618950265021812347675089711324708803107861102569162563484176103268795364911018842772373840796587324779404808687063383393860995629612101305281564393680018503481606895266320224972973874049220543071308241228401566699203193830205700361565524555033829605499375823334076336683965027312595194103397330688994640472456662966210364225440565719614506533524140688133955143895582897274052721662041089134265211809578373415156201427500773681668310950324006986049121365194784795334087623454803934062329779463584628557710889614497585560911185954554213568089820490349082568730608137186104815140280069701138431201565631904366217557921945895910373032971915105160261256816581010521335990274508079935271829710095110371887744290128299880727025562997377171245790312935670678489013576857218070890000766618981357662778534604248887768481390826299088092337810580278702453466937701303002264185286303816110401007266329989056852985169691666575701943855336178346428874114038693520134483731641721766964944434267525797187126842269468924756375551873781248978878983092102104206982319991763945759724891907831370700997348093178145994323303567505737703295484276899666272715876019105217867682838220479223445126599786684055180258615026341734277136521555816710810140036332701302365278691087430209577147780275679932355342360226101842210144673484421428278433576848751669446851738486019756738642668514284852419707428810378935785332598001817216838760620636353927466826426342322273968323124373302130973360034131498010118284963377267569012879318343811489021876515564991096771080753964488742193449415631350082708554003987032113919858712856334271415175847904971986234705523231977053249020477735751532627374467887126874789821404467853239176878983154440399424818252602976475727891349821853714373750503147251834271968822733571980621077457999179867355465284199580655285996061071907350980375300042370544986779128450772180774855907979949947930457219109389534725970434359714305856626313729056281462620909900426873600970220182765658323944303171454033145902993980688720138318795549666525047047961841120037723782464066506397263286712985120043651196491447981749834578376019600052020714457414883749365766857713711837238617450078322882962978359925635178933348939678156756297260764633806557223757899335523928694906284261910598435697907547518958506061576594101517146441019487414384434220072248824370354823945823606742218601554671606770230438544234436624717244553659106302507226110663951284905951676191936971326819448165199040509957219006953049800642893732810907825972823204118939437013581245426996649774566558527474912403792522673943031304867268286455348356100573379351920609148816789533988532648194078995014726719507468386009382317865189747687472423944348783268397408645291178012174445748982232831422353068040421976009978899223552883618215587688113015697913911265982460589011238946020131497898587215983171968174262899391140868766697414951705598338654087659333369915590326044030234774426129776007528453549834772720013419943303503400666585322496922005713796045909355007585131781247934933164900677480730570158179105068351309122023714376717670896389752068463312717461523169639214294671318067434442625835781749297494936395389713766850592041207096747141366183929930229517825254394483368361704540253836948812408680975435781395837073659635139071118829145320029407944140807883321802639362330136986526114749546734998004647321069497486685499772819309420577221394930010852771632939979776764998892846889696550537685689240461508770968772035905051857483799311927213640538920746566877998437254496501264297009450697022309247296617268050752760776123860932349143019986507462743546866912247744053886629506289802434691673909647963684735634312684892651906415174493737679225349649208898417654548859345135023850928484830693427968288207627849935771915940205905100014163192849421948385511591510617833082122518746752392685968985764541556484584664135649480451453247369447910140046627682120412339309311520410648099679392225073271571305090029958541156711078894381767527697423124325014355938659126891711784173318847922448217101846565279321601580066858226277005049541057188995780427293499603577796632806891523588460762507235481477181213923903867757811605584813308252666995355513080039715010817136855965652711490620621069521050113362531928072084457665258471269352985495527501965392870370888861863968354526827390072617934437621013674364663120105444588299011812179853304257652348519300325566283625891523103335416574680590989285309429178395775899202420404018536849943043257543966457781389768667533914787097757551071475135784239297876899950098317371651893908075252561670660639517754620295037498597522945859555140778246493095924069642451323849684616836594361217133104670499492733286226332523591040122087892238832290939485372185172579468188632591257717156661699193008214491883650233539957282758569600779354531539572085227258476133059066738870003059830892361194534730881443641225265511702591776231036987525896424227892315831221635474213184174246862506397715075069425157054785416844558133022815982455485622967005552686470793789308151761039867564462653626393836867077760811357975339918265765256451138414490863431711547899606362861082868238416384772659663427644069800019212233804908881452331167239016262011795635623337695642952739716004277188707034837025955086671256426817459819951174715806457161770782950603702630505926641356125838172033674767705025247825638388239385214957654465515489517038506858679006564857373431663046168229193803383934767724830891730241183802885829972743986908455040313771753055124304884481238250692223618554144158843160180588999112467817999291839168576463918930143294526381140531195015546766198605365780784814259011946513500224668741209861594488061207230239908615385860149005808763542173563107610839149045134403043150088964816195809136925057794879988300790388208808798156047459809636639190567606883387619608074402079602002538850320350514469132900732595050260456812023688337576886726806370335169371279632820207291979985643443549180457706360575290246730448775147515705776354256174237254170725177013420743631227150795293174158790622076309037867148368235870248240617173598259442037776468743795212668354076484210540949530931212050621120425398461364594185991655109270482368654848803993840039568288054616239753689360246394177268677227558728980421872871635634154907220821770689920222306900227963657077486919174562528096696922595599163674675336239231649784543127577916773727542436410060271418462337537228983920855697767601860940809285237481798066677958765284931890971061046586777922459804757952730430552644387777417888438156815588182713035093548748491932227147595584547873232997201566566689169712166586145258396767554058636815399920441195921980069080333403124021162441448985064257187621626417119556565581431438681369392703825246143811498641637762373568768755137076712914106674175311708052992723810205801836749925248888990285385733309346639865310693153239873332738281748912419343839559150241129854607908446972617716145881222219412634061110207157608314934864760424360226456108900225980783598884721601181349988849953985812603897057541192549936665706117291759780519390265973837427674617439372321937622839930804490085078372539676793743073762197877533668591341021034372721275358386985857547168691699144436226766423612809228725281509721584716624899660612523083583742697741888718006941330215738902603753530507379810599694782288164758707481705283259644826111196068156662321004199129210152526607463919117131633063547983442830769121430788413189238817643288005253560374749844645580059761639642867247828832845353138601577348348211647866068297650370865797929096573122232602107911722517709190490317082014224637075057532518410981047328014188157229771921503916133228359586744270576527992354861302985682603100806892263018497075565255885786179261893101716114339816198452617178529680795493029591523938286394520556169723378974700244171476003912214095698797240956610644920442730235386220327355491553304961070012613512194755696489361301249490071812429194256316292858523404451710299367282843380354924827679367541891319025647050133187073407953482256260309212686603624977531383217686699882332155271589929140072601836870287026749046289345058650039563930217014608151549469371936399458444295424614377626970445069702016817811610144331032754692828901460053898750951101773804200689246952967999257194781298914470596991220162818084400838971344205354138003279067553314936377802517065673793953155539278753510667560145495946788779449660903586903023934936382691315939549865774565818499376148219429068213857914164012768893289981711750935475710387822163143532933521336981402611213029146871463555978675746186659904325760166777152907934529647068543035250331363021677466756944877166456184793147232244472461482165135924069122386235498207344606365749071090271362505254577928616500234097909804031563992462158216338450691055440249960206986403043738176203533044360914912361835766189313644851257803663296846912857903251993172565076541043918632085867354907643099101986258963181482260230447429069983218855921776006522012501710782926048770519967546448593212287730737775982485441689372349405773729865606141996216118916039337809405442240582321687774064207848790335789868438757805979962418456561240528232944454551685560414767481244459388002348403898389675725963516789084814533969180591126855453757287868734639581315745658868789513486460352778026774033450093811176338220452328550668194893779948525279213162854257501861442908914498185879945500352832631740685477962846993399185891296223262512903171445357176372524887965350681024325078283997237312276258605254544942858215422770725533329377121594263201162434538645692702221828728802877201557787442692443329620238288450188548474566125097653697947353390396888249470682289319447398677866101802832325602071896279957494918036175974232927313038308716018617566962534203698751585994652818030053244215376077747961988815565707165353455998515265924192864490550454800219540840005322895506917616306513303776419001231494117289973312175315830483029272590507828238768836986856254100799112638593531426320725591756597825005813113170600810015701895897686264736118518011597857070281152722468661240073346424669349535719786808307645935941376374443401994299056446619636152351589632876614785029614458344600123887948558575821712203826861605404870383726120001016564107890116285379676232860912565628941920205565689326006291276141386128184903786792714429532266950026485590237989715129802793449901905719105263383671468635153682977248959984887942646580979667112937809146449648220171303391130582525784896628290904768150042611052186757572898956391094230573823678203588147573214046419747700302089951443533628708738644296820610429049714569641306288612640577718685957322508709864891139977821919074102837279612921741079468382278471276293700774085019162793644320172535992780220658385237434857605025445742956842197486783202800946116851939450366386955383853087497699380831426533802388671490063531190862399942139465546148219182994895477855053740178025095451885486472577783327859574107046779522331319531851137464702615199770673905470639285533907207303454337914151164977046706634353264367199275345244487707578163924425233845730986977081064258261853330059805195199362334221139776301899508804604877053427895475138172222240661359374669039047914901619310071238097085953954232280966073237443332372992662663573362801980881185767623059719076582486061867586570125140862575689536679127900484418229408044405669357034537084799920272042155216989538983234679719672839462827070064720714296410676086444570086099702368054953849113140253344605391227652029169928248355608276063486290515862579839966938376657857915659959666444708177529609862660528759751456532066409386556960291312391150656657795234996861790305510273232930772274913002335901966456891957182612590074154208877136678136082324155112598314815371014420570216554473292955065775525721983208801159988018274295885328240278066564262705262774477598440983844682521136683349504453459414993320740098764417233252485139084044226410504442906267000015474478898402544765314873979121202289541108765773258035177343595506592829420891640765000481501526931166459409380300782006386248599283467489752654250734382478540809791170057280686222861725531545792208639827449869564803916762045757275416818130348248590896070025795138116792695094703790672430061824542011921762143342571325848075771843283551181402320720722302205060309590309007034920616413360867482188784314353439911413664985605262632693966525712593420172170183573939299991573857311708728162249401903231366524483118805403409762007529187909501260299404183063706821247300388438282965451541677777589209706440938384588097425888449190579156310759282782755157213148594229889741153684719274749808767362183614938143274273940691749728765294277261096276722473660378124555090030261598360568644955695615508533879579878277598258302620781613810516502839703915405282671194214200734821136168459591284283704620060104953905223893074662890767350174155319341250486342741597184421368911698873672236281461402337319280997498432502461176958169979197793964296434547150248271203580996841062539663972270689070897196825044657539284686155752459183594723306451868286155506373131690555221536281666080251056701677766843174320277053419165325599911545467929067421208893997355099466468502697271727548482571195212984110813442343775479842222554481574222609588779247342913953710536006979437069282102358273950866639245571478311425047991849356195493782313960972698423255841444841756992462080525571636781013104147764115267773594688144012322193414612522653340198812267338265640534768001344729764848917012849695675307353530542113390677073459678880419983208614868258755504509465994132207688858712027673009498662959269214387249078981626064054894545847173740536904620908886152997910263480299639136658172509911570816360337947104280467566686749097995749375620459880072398029304437172915659772156384322176075270128867396602205864471889510704665343400136709111608235837563174007349715646711239913321554679338625562098607933644689797662502943325977076028769793992040014808729871361737193161987186720267658119445608198728923608891086693216746838670963583293132788965275806259482370089727570693531953307902413745981149411140496318516966922963879643724671204633982110666576249265962079778395857232009547901561201146741764581887029579222931466230032438541297343129153771415005031700830361756988882117706460780069669616452562279437837915997971204252841808944415301065805304230913590059158438024802779634371413074412644505066594603925185980822804245532220098309210164964161501620886137602364888163377852315776597993628591564555196156578764172015933540503796473681013590490855992798873945735942172470937419902191769177844765978656249098505868469170985592288229004349985550615448889296393171838446465034448360573458857460137458387766090192168442769552786880435583365348520766157176618741713722188271570648899808130942005886517417104167880223567271854967497419332265561449992768165192695673796212479522252465799877526417576815063405138284919134514765437198834295724455095142283576870340677697307087753781813366095594858504349436729152107413014647542462888486710353172230549359278224882029755424661275110909840709902176156199390525608193831744728919712733014840226934377990493674598304198124779728454660892363162071619402777067587705097173182485662983230973605503133521604233592098430902501091687021293181068296469997036748111149240440426656016478680679319321169130246569415889381957217487282766098623860390229763243738665370288402115306470167548804383266428123914265987027922092420434407359551215340176111235833661283565979898540467072427191068145812214682190898193021923654650058189040640385013714218057213864112376154593848922438141183856696434994985378025088769075975681117276309678158145886466929108981674720515748663961645606134869083601186139715555616433522155241755613257001997248463037885125178416183776863976470855302636330478918927560981802672963885534744237638806147304044019426212727333128469954509679384798742428555475530631900585723201444472787155197020185690064560639662956864131960115676279284730856122092694543867264405016643731787466097312399016537768812329408174828785545134386595329415445658990383844068643579577200779891228643987328342419257315463315239623217912485891738111862962824668682965311706240614495751310247416354182295469091831223950028408700732999990643545968447632224904632998976595066475720680515055213970201718495446133894608891785373280461907511267834009687949554387850570454521671865529679087913262824949490341560244441176413614727625531472522553754355353096819140555806760442794974702275119818777728970210983419404602539822758748195275971995730387214550699642847533870044956776545646290137615809867225018642322641419854769021726497148532469402271220628112152559784786506389776833038130757508808923568577039871311045183963408025712841098901312236237260836642591783721704940174333366877154153354395908250768958842535948007758969200180757998992665556207738565603172229460997560800150365461170971530920136976861599370186484356816744409098675066806598617390451867010581484970450610683711750415505069795967041910575859332080801034994133471176149097323330540490837098524274322142433084971819293617623565943191285539020687285875913665796284451448481154849499789919191174520033698051272717091720931837553806546760033306259293473313144965575511670101704174141766276578842627674990924312512794840277633255468746578555972217453666365359727746678739715280323657075530130779283767511416649559989985270957174480578244076360219538789521642540192215897511724659535095549223865260793966219398420837725263676092219459507824255451338444438750779169351610943117572512986404400607708798870918792759482183706695152794398307051605195186051923481204474349420717116564779333584901492791894492665237218319494685233435895082916003284988865157361223088902920260022848418106341370080123492478154863621525009170943212385686277999537455178626158107145850052137428364686317323696778861260094467817990161750461901915945633413655269139776625950992666803755311328823087925073815529994362129813712252182375158561525895652015399505725699392652042756450173863268459051637480402131953733546522374940197258337303587690647589598522909721141840933838452881896417498463781582177235498790291567393105406378958959123290591692507155255454694102528584050724944720299545169314753465617825832372310779218651550025921047542807391912092000470384688809099029682718904139699551444309389027575573514519458953100736531386694046128336023610502178459082526037377092199466883840638781973679244177894993873421293605615055157812914850850603700408666442462999556326843521522521867456417727628281406771526271922420342421575168363267761034567585257252736469569159418010113376500417189463223743865308937239433948161760904306024648976659814934450565280516420056926464119474374837864594154130484084887455786481135729677475841093080668305980630691370233247006984329739625756435365753011797815877980961756329278813092873975513439499070399364441958805652971529513408197994695884692587071124216318697517675595032004036493840561919059497983849156478312018771063307070453227906710343595423047123720279921721721359211085808937093935778220750248762130926247441570437660760123996403741894243683712870112912544162683082576615008684065947778614982101879860675094366362466002958304557598967065087639144150188074544839071933401196891070182649381518256104415696969951454501627302495284611108658908914708707009351583870371752937019284847786010432318285528130355856116620363196029585535336944724629564704249855325925545960704788770192959328565315549280256843833617922235801399862297016494752636569217105623260752592967907133846929586265505793883869619672069829704644978998130751533006460250432013994443613456378722758201603829339724225994130025869201524980289600461401698337790246616481825258843157675377424713228967222878787660712802618289235273425099663660935408774109319944573573827083932803960529485375713090972373819038078174864506427719889762848671819214051528836986224852073466466766052639698701715133397880139464086298551542208206125760222094801301678833015118645500772660398600674547432927520493235787811819047144360697191479039651900327772332113536858202532761495404475367557481717965877119556823468397064163393110694862161859448321232062146570411562350675450596015916682531656579977350175462677524779748359819520464711482658573017045338829934934440095991891903563840584427452277178736509055785201649746576496253700578021464663309663578662623168847199788890794562059686825428519933875752166776104308046184838375048339385507321122936522207104872906223899010712869305573020909351423069778989925973213509036031340744696173070739569951146228044231913833620522373203441191637278811456364860963884951108478395567989223229570995458743968397312457099456741586233868837397075947479503550669728515032239028264464622606229159788563020120329625291117769458562565294359025226202317597092362026612602867597641992990927857720516858550619628556178433222008372493139937074184227150848765932888360694364618044154138677896186621489649909755280321453082407489086153734381405878903268759392609815547797329457036160298375022493303851909930335051992296502638163699071091166222077041981786336034327063153010662917861167107117880942153782723236681155684308207331555407671213207547583036625899996897369310425836179206997996726901501909074207831886572671729687442905663147165178546881168421861938477264517642857715538123499639693485332024742810069349977903346031650665300096972233358502993795812790603932393837606527166058536639010912407095451446117055560187728217694559506471122475125056149631555894483783630603588335920106764071771895619220199455614832363016837864537774101971152793885386406927397331798028915298618996365047337690910694848526239638334005264830164060865208366254809868743403681385990033392392378469398407596693678612824779212166348416930837543658886854416100608483319618104465331916468535320398107515279116035437768147473432429922894601914974083912971955901364505168399469231346499596983355155444859764400716158340077994937362485919944523392114254479505234822471880120442414450209054404913728033173764145419706249018916488109359820127597311084703106365542407525268146094584194291650422214097903474951587947735685764563975973309402019425060129126340157030164361712175121031903397337341887846203252514981818096403141615448517327603340368608715857771577553258043881919549310602801092834689350702913616493288169861898244303448556481723002024485170239346302806898744072617662370633502264130328638402831186855234542593441080456341442672806999983240635042152524967133842109200289790986515270033450617336743084979022375001457110084938148306909610744630738181469480501496372143788841073340059829787215780566228114201121866578079440132909717366523597723691866322394594582169760628779336071695947585571280797301088003268409082115682666690786778990963707306985396394478895527377275470629551434542217313222339259597549535120780650645115848801033435245482724419881948137880164833491172144760279409985118559272723537452451253961917180058987907631160665455369220976465665836669414651224278069261873645689121231814554785589113814978873553365404284179303164035811793668385848093384117514398433864970268520255926838902058579099429142134406992976895550648833541383145510929307211213926501326426191088477949835632714073289774800036308623958299628971269986114432001834561272246412111454965073458254115669937170440860422922394786239383268787079139923917987560363951661583342389537187721658285161122115541795244787992085100807538276581085589688901056468331773471559732468149093202382104036202621661741357311960327959602769877373572517906356315999921792511088267774726042869876450080737622571650649217009032396081087771674020755224238716496818703327097011122812932625545661654726351583937099551549515732366475404149161455806757088794056212327142944083010395605984407237298024771636018603597793085637828140180108756799177273112649916082568442664654664609156544603190237248804559949063581901232068329976911142176291957660608950349774568195205446556524064759186373858550902450618702163955499627053992997088217764287510289128306068064221315040950932185060532039214501808294992164502689109409473289736911685260142675473020374381122315259556076915961280954432987499268199188507455741247471398261088672598067668349293950706203729289826930073263632214547901990987952663471814056345361672116274615641454937915232278721427924518508911218074997533641755512967508542107405252932140934542470083513089920871099179591815246573916409721537038215228581326487888662322983966642285019324728706651296511096226018469311293708213700728363928340269342079022860867428458426319072153438518074611565978527631032284490084748779117313128424694484209353202302989034271361304437393890974006948551941111792013018988740398945234442166587038716037585612239604088193439796788230060370757998946981869995109389806342148052823222645825374965214978558558160840256791349905552845458176820541847995588206392707666570543743815104186418981640112829963720175127624059871090651096467758156190382777127051629995529743909248783501840411674776244038040626514309239468262688770206499323529720253003258798765836700939579869140118811230349521578366376522102518392572620557117463625626892254485953511634787788283144035526670578822836203777616683862000909240142053068721609617852153856729075227553661481281453831731002138880448888838144874688980221603652486360464592651404161680194126775980648203482319395762886576833849250862015562622318698927927998036621763224974579081891018905646626632418709728565390490727566279020912784635738402469769644069680152694807851778763314754163344702664288775079669067887595018217073750242607634795965427975660068057161568975235848401094226639558142710674119970023677494570799691829761218417187839960087679619185210509046621557399010550648916637998879868770242300409875135408393602476892953792279243215061658524646921354457957240330526402036216044776120086200576426423901345707670042099694040870069936887779579525661237567329454415512843973564012205726744340682767544591725706899010011029242042465054671140385906540081844695714359559673793007147064732755366831041619167982837999259638780212350123539235755346385362771761427258252372503225563129306730464657762706003625979227754140917683480190704179571943687800723738077333845109645857876567811147680410221331092286256429313332214310669662283759437832086118392674052695590566531223943409451441106447003519515029482041960248515194817040669396529740487291232867880854891200933294653699325501566762158340998890501970690148470542282017053702857053870643965859654967401928906806769220386315215207668495112327510152679999425615070900028262687305532138615103929085618085054580979512121985702747378968639476646113930420272150351395540388962077805793840049789584448050107950228741401719102693009793936577242634916779476648538460670360705358213963111656848264218482452951333712040075267251383189028636387413099859064506703642082113690052847303574939283925260987837456155812426558904398730765468273497072501500142775756533215207504949148807467741061808721939411612201411770666002995473205562562886962034616055272737646277267616653640853022799859877857079090659292898603355970786592016410059847297192763585271909283447962475764200598829021133510357412961334891627458520660853953582355245393006707869606781698812879844833887979862070248737123809831663270398563595854933264886997958366188740914587307447010906292604194472731545441155703669981720124871623643480307853538181551587732028842717238238520873578290024892336272357827308233827410043787289553774628180466437601906523117542521395470098481806135676211595080550144091024170898406422072305554673683328441901592105659956357690424170131183663667357279061454732355465233599967843858496296960519335091120400663364848220363899623527596691041081603210149969519559607955112892890682182630566036651242454292260612242784622780622096861686010973981711430653854020142179156131938544553232454880192088946261086863404443664031597273290272566570812404259735882302601181527072633588900601906466960365624562353578702484685517158868320072775182664111965351026756136553352389185102811348543668171948633628272856743472502765157502051017254436350635959743416639421922491119506211759497685959543350923572398755969213711511502189862756719740409796654986536395773871358385371115812770758201415685301014633345777482613778422069782863973568379869571635465433541249018468529718537154440232905563496725916131481938169021862307043937434566981128789033933462923567918340307406811040301822928386907966886731084193142018457898201676459810346352320489843334948379185418684314562615957875085438781270460435290088124693980554941097498933852510043452300326680893278750519455747666726814070651327161806391119159133945836355072764359744374527466447665230640402734763285182977523894518091477735742581766237361870576064339311041641050078618029089227825661677538852965159166181473973097492436571091851230924476790358307315860703917703600434871581666568115378726465200266808400149438961306112152065353651703585097278426247757556386161196792878370406310748879675014936553259854248767693142049967903474886473307501583219919136730835796568200259174124987086898728197597368210382291426940573938448411548456465872417907086384964198559805545179584718393408119390085596781490897226903355180298545845765176371981982933378426028553242958611837183817635904016701447887942533275489117452251176136120947133624900434678289053303484788182753697226719330580851338418424791567737650444428096399924228150248699522771495338120371719162352274656816081232682293217863147741813261301312247381908776869952355482405471202895831240274698860844194457390642477019882987696068911605706423514052884711059064448996293487261259240696725916761502594189566256513389396770073310563920403146477138157401219236198747403512284376250193008882823073720891348554923237715730507024520774781699334617777777956110661356074222067788999054856964304384767705859097110284816043086078417021994963448085644226863139545334094701708646520119257432043738599527922584380447347149024069237852764942098673122503915407629161480352080776281611747823320530196103786763527195623617921304929171506640885184595510940174871683161989012256606885822078930405274860047593702207571819421281851203430601316938272118036756300647737583361347714390786439740457469034695928768563505571900666667631288485374171391874365459865348053689906365560856093611701384621888282424154067706670048194078134371874432921450540075713684746981460786851890187311878811861006060933088406207863022873956487521236342898384939444421322243975267959431462163314065460827745936487041878077860798486772558840888155651261354654904109152901651284572283082730454501091924828020847844826241535130366143292981098392662107984007788934159893189866363593064650580838118590477544040038694538959465080872662057745041163509219945442791503635042553180140672406682638758469353671222046560312476277127334357909220762306837222322318975261541576993792027676907512854605170546829824244265862260665613167997164519724476690552407141280827427651347167449541122991867346247552973998232026181525498640989111486120935317731618865263903987083019250668895414481853885046570966002923060596457177591217148671067038056534926561350969472214771496365051085119222319092132492231375997543979296847143390741836706203786082900651510853575223406661894636725739967930559622662314444960242352217447456922574080581059424159749171623666504105776726980455853867150609345659737811832031449049379015374029326213646664889945300464293533167596944146193271276345371396063611384289287089169217462247988111948922549000319216880783873841342855745544495833147790137054801277371539657026256274021622280572407895261255222817613363748677673237367441357972771820048172751154969433078269093050232417272676595535499723061668239817879458189372339776224962963085098510570299924773485148753610492361350650731313559031796233238273046829186059559437018300505423933082432218129987683641684368490552352745509599262920677447913172362637361515793646390068332068256346487062886449730639093874071260658450863495257738103706319470909018909607400748426832606389150263541138989171410917619085449469208428462155042821855236478449570220710065191701221167613050565126285957432837769380976920749773933989308760343164830226192767366104756886460058459247268468326679837660055286221300146992987158387187285713997802798372354162181591930584500290703950565022572672554341052961890155626230524764772968911414390691937945128211281666419076410479982815881111991888426800002819817440370971373174880215301939891076517987369430328598746366185423832212450978739480609549655422407745039734906459096991881544501773262427391998499044859796870937760797753314282934218806498067847996779416710256062284754632536844151453962788985679225158125104465341362840909310530537536738020140404962606228917895261426986466364681526797536790261665342355829927305969471486245130476837035927871587188993914409350946626846435768536049900344959279859650770200761404989281294323201253367776973911956854810070360520101097555448657172764794428677751562227400676504117779623681528494395062027568905631657766052407560488231281377258518381233381103527866243828488427754311848889928073013492698400416129528810473088912713072618068230528950550835694734234262856950279391823578394129932966511675517641044660133367075870759416056435709120229684276260043867112967921646893872128447765166120057684127776271896493761356640400486960806735549513935122376076571516209877750660578724446272923385007468283911634883726977867413811087537981791321258061374081585508789854579764074827747449670573844403052279409224229712429649449381286217744198230682902219992810169249311218208235005753639979770247731280987404113327520071971106034580593439227699007820693464661935948038059047686719064243841567068836203343045931334745157584708714588983132008146239031083301898943785331789201286087422354535407464074673891064744715508873465875843382098635268109547165435961530944175363776655904589525132564158606095150075960722737232473964274072353236389075486639151975195934813029774805899454707800383496947131698040429592719159386655231784912149416698668155604666067137328546697128129397355101445257410837549130973741764754613313159144758152408891770585246155347694688343775655880487451064764364320168183479676912686957310588625412692840675902765373916296224557699275421815803519632320930715118783636295420392983971708908770863977657823494597945326849238335938166037426548114476248504744492358076809814460050315829887356838321348184687949470202634116280847593809588432431225685640858448098091802686315218941536408167255188413432728286644192697975826957094672229978450701863322305463099569780579091844403755185601037080682641324121446350627209323482483164809233816401051595529597049110807095290983644511542980488138605969146815162192612736584092962963533112181080928954812401839998308675318260716055067695030989414315541648879318161440440229552854566720143630614850794987780290171424760067895445370005944875972517698299640453568029812743278317249813727602372751270698966965092867547227902734039954934214886390401834227682253965701175284059705384221339648316699251137004128680579572455201009221711075219744028928187839795454734028726380260385569402606813157819929198862200082064374126845061895668261660120226261546257553368082500500056642857570913961951678208273856113712516857445352064111482144325245946693527447629859464675824079453153216245412646069229399319350255727904836283936327428816855270713502887208995450740456549540778151139524082888010126494078325355720539264857518216695456851691240372733025937384810163052050579746372543115431768244819343193916618663412823925207075295335779571884697205096667861147186530293760839132896227050324266103032863275044339269043404572849768558256249321835541411193197894291439907105339907766306569192394592879859945610774089039036337433921490429760982388340075407227991863600284397719007416732486937465923151485908152400274848457500027629830450349094389519413499359394566501733306541122352825072421438647388498680209917134683832877777462519843293832908060249910863248761748655860820450493238220075838106094443814936881876735821438289794962994710983374013464100032137193884171758035485977425774502399764859560055356137550755100399495190728867488032876754629437609971512725893707476701412857777632454821741295279004775601362692932589461741180714846199063086458011341317349916398304639565145343517548893240450142933159436971462349181226393224969324068995379479154184528446942682592692020771732259043192514257348149145551354352922384963097113513462543232279100558022564498069376291807296753643995776956263249123351222433238876719278892917686853945354183316551223158443596780318590997747548746425856808445759801661299527091259361595952753218963645944435346576464002424208832573255581093809519751751605502375406701756018713463526407471579586446658397051294007805537437317505594935623669214766576474670271413618196848390948310842602141686073252248886637174084794235518982648537600464479899543075268427487098227077673469554313792567026257212284303659230221887460558595771611367941795677907226461805773729809998557105215306743653558496259242988959930385810141097841208685390084889826748312640980413361586601745082444635558417793569583287390545984653506084198500724788700324739002568871010862326479911468523001129725560812750263292303722185784059822676337388568432002393091212509903937475995500145702834702194783148147703956705741530838960836480903267321050300032260256959677203184971234155332271188780348191927119152841997934682667183683191770018660002745173895392225687871776624145502904345680427283899414775464633265232976985116539082262880500886403321735434982885057369267561630055834835107694787886687612070163838108134886142442970655573324527214482323575754328234776376457332126061972132322838879861485955991881862396818607647876579913070425539148449695429215356123128636687020688698426768991479075208190116613406167163761855115199629816491756672937878590710902459219493788773482867307230649514623176674848896858032986861780823790842853860528052667800934512475285468661707001465638465789825727154931761418948409622993786472548039504703907008639509715005731434255185789860095354080258771278660327524024330739034007858534587324754605611407967511870994538407328458404111566028461872733348737030107383201685515310988261180618069404531717194598202121067477591583039829628202394362154216542964163135952193860770526725263691822454169224066265200233204307545831529057812923406319348164015639748462021555272877769047641814433038015154651309379406457443340897932078014915630236912904186245891115326081369900824413111213469230374676261263433796257646552354485648898666032446013151765400667063538639686113206953217201338741948596317820306937451022095876633213534698657668667266962566811528305207197487663049808308548601229035850357195403869359061227995365121953232227108505986399501921575228777134689504768044227443337134064145877621731633257680367878303607235991029681814470077510736360287044797523878247307631804866783113918816271635657433485296723658615839650433840212752881097810830228166898429763115144901177017576911537147265666752142329779290448177982385705959204248511770810780655284361419194915623568654173136559927316861473134380082923005948302019676522470150612096592528942774593540073983774893491148237299762477406166340727533091060656115479703627430373220952443236514673011223822364812373191002537952928688959729644841336253765993289544340122805111520006290572467160472746576783295695802391946071696369472108255477712596333018470345222363780110891393279981907491793757030667541200557880903621079325244687776008354859747165992953704718481893613583017290911045936179490846139425196308757661792064837589240967538641096480530753698821327171086835442799486699416388180796744991366294597647808948934538994719103222446417006913718788678540080932699111630456632559621610881100844875477008938181042268278061276717819046464151272684610891213262049352238060386608053724561415828033653249912777947846960655856077206405602077212575652590273082961489953246684693426608652812737004636897063990098309391230865064453765994052804873829940417863651434955956854918397797186195299482088312211945542266820779079567812796001194050611155844254619556144959367423717216128205045162551847175050589331207632592204733372076573315758828079881666306230962661122525916919258743553334985598197136351890639694039485830138340333437393667936660637993497773747558212327069620947640651372571490211853446056255920972006783786638660335636706285102546745851272005134189811479277030059494262297049755784931697438479750137376131140638299160457965219605876359180236394907025303599469997046916286915581019500348535849354916413618635037439357594450187144297985937712679777353411601171544222228692869178489558763182849101775493645438077960821599508491958492967649812923858591362198326443790149614260664926651117703865854984423660219393815580315945205519836238905224684697491609490201099783322859983857427400963544793342405090141926493812638955911237199227336974761418729698424384281879768727379875593687569882855125303892790308635597396680554593316245636550773954491174464803705793335719521853807328531968211171871520960829407655544968993224625898732552013112932873316199851696027837249275013427396245831407699856274018784643716932873287045549291764795810963114217581896231936534405847730754113194047203881890576072852775009034908577726339343006185496137449402121830717588781058193728223655425377055323403597363466835333333044341913847005214092223543232778014525387083058812617778745747283665779822942881456798990764704057069528868253842274772360827683495015749784107245095393714142275897761320485035867858300840021599786667712524638214421809353029012063792191926279718715752896137969870730690271468850242047163002621254220290269397258472508648209392594249010311714927325038232256900413111850662400091994062851293330509795704291797871419351865897208187800772412085467630697579931118977852429316871490154878111972285271312658766044726462250069215012304936052880387973778607897349359272364306555623864268313843591143718247390724681385627933861595200503493538063908215467040516336383162377021651526070058086592567463626841550027961343112652701765975677406815424993805512951429902521602622334669082138240450122011122961161564691041542018970551959401629118932400913483805499708914926876782341855161632664789017398637062488544518565270131220553340049926207985608772543644347278216387337125182885632554858727685537790688277716038208876950768459509425030143198070993048257639560519423915286124450092280868389924945628109539758348036356654029320066972783450148066005696658429606390599830834425197126410371980557369272950387459280305180156375832192294067111003584972841617249039604566955433423305883168348569397635609352624321756907018385932455076252867886281205128395725962220441073729145260796165656189028398453680871435761205275427641335173065413741501403172885139114603549348975323645869008138291428431823707959914122372025085835043952173518214351138583243731075228943266735070249643510282675485772073360844826068477097563565373585909366244873770992252778989113476403226332003697771085223559585962367741230432414778802326728352712273660211072773471800123407029320537138451195661858822229017906631999105892831304002579100061688202362023702352334799046147129785573626404670580881877095499146529017996720034710669952746455224420832115116181012914529613999994277977110954530500992402812644912421974454709919240343375634334542068936268249514828599748026308998820111731344651546302585880423685339458264491978720529554306186111686731171302646333382711621225819141313456937510064425555309994514765446937013777505811334923339035956638977586460160922627815370171143615254135805898897553008465345321907895220275024763318714153909686166896480308736622394349980201673661650587115599407653686738199610599434312297756251925085920210455890644264302756794092421273588581259039271561949169108896699134315849773077947980686563619958152205534142263148171662092330997469468126838839077285913805752771386014573421296837103886951046984232066665809653961329486900327400489334149293508207999532177370483164801509652420270810224520492882269386769413398628596861251444386548791159570366090480383677262098303837255900002608250398167556620616373424955471214540665713500672757071502198313372608484338553218616980426597582417566158439019807636292177684974009754159107557154920138157448350197240010463309995407175784344997109588193659337178852565106876959187517970845046690149928592965548386647705469468142675256795133659122024946695175894055168391438279848309397621670520399325322659484979898614021366142546382241219752545104231303709532611263178408524120909306793886271402703438240753741164432989906801991798762608554240525375682257602162700700451948193499996263298065408477939800486775248085538738158122873517414158560313775237669679130355593422453821885889445718398845313376162254351272321710269269878877783237811180663956463435282487058417301795262236121669084814956998135622715351415301874560037015299766051900843443580858304752289268281962797562600730695077325443191190283925884892389932035196189707334550886711212276084466543977078076274898779309305829965342157255095337662304575761014919486454259686812460904037770791405772250504560344258741391328378924889740540524633973205477625548782235121448351161824935808299814610112988758834340036427320867456657771047221586232226395653289686645743956285693506159700496369721409005039944300925623498647915339920373501363369532705841087215410568930374054664680518097035707835190514780927716218353066237800262565131453419470413150124185243759185524005588284037158151109183166327621175586015768360505528855091621384609324565351806090259247873506004838243705911181898776633835237449376824868140564948463780358123385888308231557174191223249174520088088101624357482909968383023965553011791251402728614417910623285696192776848321587310169201433196916483843195396016987234356939031239921794199244238502473433995050425944603628856069124121363471114398280069228726388296249226670462999913246402666364032095953779482217750279945898537566136512269631847697753935110606305179157282556406200296756618357032398125023667803974291033026553405581067425454563460618997002913537221744540984069484965733793403126420129228810217929998792602214388125055341228293007565999254908237372566849207846377972125817790303606329242994326323655465773174323834695277011625809989393424213993891063440153554899471694454319367493828014596596420930270965514051178785950297009876431105569729505463752623313786862736315806291254150999687933402745526946091660498618611878929746319098708859824609567554491262790697192934475496774116043227744713501171523543207450720570580335532209492118992428170289179293134175715847714883211555868120253586256768578322437121033219480337821733419470052500809298080969559068216426618517948044568079083275231973496739872237587220160625776497633676572883320869388112947024826297015837354359809059943259573624414725609054203329596284683861549578821888692996848439906857536188501209253669147286317727726217594712701179341975483622589936120311698282511550318005736515008816182944771742782406831576870480390370379819161213995828630930711837273150854804929282346580632070818258266341842098792037470570900921030084028678155541873346556219074856477814428349806794680766971170173295740702545985210732943321466236209653842654236231871325404030779054467346788068853231721355208588711352884961315810428522646862080540213144826706806955079831961963346105881590116825762867444978129178748452978094392231930747755112212190299074748131982742914098044985491621548714743138179806951309602163146243942053713317378866492549927314424442347131191030028430441346668952401278139469213898967063263878599053926997027825092361495684994685421006370202870091091138624760909904835902714514236768675147265295156620533271946371024484898064472679354510261428269752702565779864124333822982921123352882645188079469407208926294627922316765319086436811715977445956141450886870716298885972166802820580199473568295602369670726047391721406358222628305879521001237187215952479687397417958504531827857178026118873641266642939798679169076569585033351301188782270535449437069350901315626420822297790020537890925248788780175875294574004481087726075268929506854714968235125388993578857868641991208641779706918268519175178596604334472550527858340574872485635533515208087801271601398704112136740609283296136150409835298649151360302027305486927061498428666361558669087092935624689758902419331864079853607579424588268130233076608576789574094534481109143755000798316657156543926817916662823233620017419022649573407095901756379984336625777917594928932406309906301309177271560643768443303587197593647210077984487741825536165559269918069862708942539943920865441043001310510061593815629568065200917666462615562934063784247015541150356147904378390861325153973179865900407539026315301577839725667928317630882302733453635778108263058044595490574032846034871316028698991378516117203025411222323709142423124292288655264496567150531884244282992444554163207950520425565550062900865991119317166349722228611186248343179970913300140361731330835611384892640964714276460193014806423485663963367286701991988992148905527225739052881086634217662424006620459525504394785615350300055550064520240848291048915302478790423166485712663187273401192760807327191638378249430245779966186538560201324594758848976374787727013984204347598475819178183181053323134645068156024671119361666941047404675194868448732948858953298276988597236793742597695893924582247618032502632730904564004303715843509506984751011389415830861614845094284294842532922993749911058257769374351899195799650346001491647983443589660811080809999728918638454005515191574439596952958959887323008073495395242324759369826584670577418404132563005043216121495963938575644235391993666802505131407873134400985537495921645919067699931953308890322804790893850904104532972720299832276176183676587410579986710148728928865763344856041018107626840397630167766205851511409100757309978594417995770021777914888383059120660206798387201700889487680055057902380709620091600154030736061116018873176164881857430390745943568320649445135731937430753712312766767092925929164350044787701789607495614598790996940177940708846442799728697907469112719223662171306972441429408712307234032712024700525156809177067371507208158410082673308554477157239811863934053999919484063427875405133924915914121016409535143602701973405182996410008022491747511217564951333818904240977810030186342153015406051208182073629607369511371595839124540341120842643892444912532131215820054462189509851876698830744053872618670552075379009272425419559034505619172365295338391844035218225023085290210306294769959511781427556529015442314059989724040640501596276218591164337793247884676887445225962261373004515576083565511127253788299747815628936879116083130699048488049161271824069829573107150575390427090186904009948262253421480048021976740878168206512554127002085204562005107463440805993081069775271257643178317562703738345550957614485353343761320810879766206514629411486770884303573681769929965384025416191562418104531953903777959139845097299864098759905271606515126159369606296315193291800144708517463667585256050826613313162151469765460930753872316416921787673982051457882742750998815626952048219517949531454899035506302026834057961435458803847079165148499122410652929519898062514998233503710821737521549824748802059999366605163976593579462865216745144613496704387008693976073465059853594765421732545782108459471238920799028186938882441341189346594952829386295478318408350863729519489989612588433182803011382716194104662736272435887320545143454957323926348868914556892332284200109065448433034375108344687642504271905369651201132416615283845947048459549490094860752113840290992515297243511419387056040531767630776516442195380713523044457605427947602242227976152011796585665493329058694071127024422912756272741729769331152964101142060273005656635622032939941994063413609000975438043944947468971951207300898818900000901826980459701637645354003603057880868774343666321395084674828382055093797596736370837853609256618861428523902498295906297901472734233478631079510927766037368892169321170461045462703554366474607193467799250997798111281404640327152732017957317207597475983864601461919525282950837428304757172298192496395421839652034209478078855055273887950041284108929096940368713170041350188787377453736582667232386091510786303148967241159685422537203848845258217705649100441626240801838807827925028679734678275022533247062266221053930346381601191303957453141899493359071524022816099960602889593871464857822869717698598370861002773087480255771441580108136785075189579360494467082157959530935882779512682669855233167941253072768487723104421626539548717574891238167121616594622657622589092091443293104346348610858924622276642466279710861534886560914650882126633189795858823977061482335861383893625068373558878563104852849074948796019870157051376101679472008141149834195110504609024318466253544158767869416640455989739250014844984540434025106349410098321023003984876086341659995733204350920898550275611158461327585098975413238785398341673101437909816660378771769403356097969233112736878014730774248277650106213490747207810202757152156061625434162692259209827529593503826501412635312602625359674828914693426034798002546016212045941837331683385925093650319805277977793063866188537426997183979247108525613100578668820275983174288845784120727359474709424293361087441373324456666783374601403559493539019160365836368526519348876158628149859498741249757663706594905068976172763212216832823064454256673187380243419663081820673490551006937130403770378780780300467486392450039122074646762192974010861887504747795369354866049322475687832988937541714075837235507238677637162865808717199339338599652976243905401641180967277503258258750222779971567438346473830161097064556919338069939871323232316019530171850566571797085476638947343534542112820868844604651177771200970306158905974368640732472088477415533668991425843015620730537920578963764495843459274989053877158665786686904548959365363671099407418086821590826235561052400779727945217219814043236772127584009715504550936538311409574888210664613085036522950544863289890468629874926503469463159698727736914113015830899643892223617322123497261296543689775925557741665404533957800819469851684045221057363212173059413165180003709282687880209062870913338082401606084381692026811836301621611447532174454553226564031192196336696806157635554183777426870806383528695300120191285241058697611230166121176964281475935294419666039584024585902591584152516600376594042047258564591920540746234472092225021761824705410419033765213647804437933938823769093573926529301424739172111874871802811217706637810590722836996056130621663518104876240074681025929541863302670689885825749032291858607115337238738613606682184783968263454819079638478011608674858559827052550538393433163524317556472681206125700610749895282583026396429000469520353613457961077206041249861732607816559830131715749367745225050025939689999366940454833287328964050342847561668651070352654639484901229614322043093675702529008471210945597317233971474076689396058402002776015587448563077501765312879544218012503797204157931644194627058012719040288149846917684038170451278800277835436250558556992920404724692289217576649455529287795080618435120651192353998213211326831062342980349432143125183992610623098430099888225301126013577293494537466518442853732492975996786701707421743396736846453192691557394095942446134933137273707467461374228710455163202206594948909032886601979194888440911569000880910603678904127830237730646773361126747416182587439526137539639809259051655256440141690591090613937441465076089589091312272729379056090233235675950712410133548454170942922296395276522425829515711946052035636688650256968371107670906172990139097159631734610921570143302328504744095964741084660305593419825960494690275205283566371166896831489276551168680555379260613288547199830681332400689026202080409414058415163732101184983607255539127512144873911823925858027461326237144009580567415837015955844340359493511918296367512459939475856863143191402814931621498304299752708716616306230360574349360314871131187112283430661208135722569311803230635237911855685023721135858766831000033656717001455218191762862576947552806348135886989527316643971905549376913562860384111146437288363956310715867061326630109026587287093942839796197038680734286934386926162930991494239922734100417661083485981453848827350485190953597485114116838618339359911973455352710646878024521867049681845869546001100138045198360112894421157592233959394478775400425567503025174320978480890412833696240043847098972817858692564880309054549821557933850480392050383357878887378074147223216410664752325580505619321219718433732220807237732531971473517926535753431225795750498302252001532128716017511647839832057587396798170449989729908942913435508027411538301186817266744644975071792726853484799665473234618241428640438196553186446085603458549679007385772956741918355374791283734874729425093838128588058757768770428789434973278407510391830129788236792650046842635928027350824311713673216309997842328502589518603364726782754725359735882385520515097595798041067352619815913372575101599263294363812078380976301434359681135939519981790699742729281313734220901068937045257654746294217142738672966271608934126152900230462174638709225570923593881149169245057055442370975894292024502024914626983253035893545901224745891502089496564914977881934909790990574802236557220890513408779051475843129397316171091540592164694803893423098372190440963011086951206091052840804881393068058860676021419235324725433836913888726463968225490545025278517306723789866672897701351840954587131797498974800727460636685535076543799523368335052529453911954760113815128162128997332042431333307912948911169973812840313392830453515679152157402011632478680940184429084111168146868348193941982171786703176186635150337691518808797007999575739363420023716753066422038051034263381343420736707129372116871677712879213040554965923665850452750009529928744606110450211412666558739847090545226194103204699962632264755981629181294602442309942902194231868077800012513296673607597915465205175154683954926459049989003856316793396970074487801497970121906540370884782847457966201693964275382876585404584536344670270336450905976698612476966318690699541594647751292385909474195336251609666191164207042714667642245852588007657239526270026615568858333487452973732181817395388160109791221985338343818880555838199046474509509196150406753693157742446399263884204042068858875926486262110633387112792131220498380985697937733408666598766314793132791945893211837417447947300392319719484471592972119715206114123373099454448587006114165384568120409646158479664443419530867462080358484723599267292329313267127419240435770702609911255812563221811599420294406202913314710253503399217147850196377541702475629508841509358375107537686174233874017451269832892001455239579782169028058804945107885122505188343166133548507048208871717581901493448353921452250298546714658584851442722778460362642964760498411496189604218728263435319933304628778902916025384642966325681132717665960597140632991456714150965010045142567714549584556532141064898653962101943128673055215637273880575912964395149222493473753550908007003217986398664524272457727861879151315363036086204514777332869528886740033345401627496684956005844482483940136721546428448227420615124609981932658990359242511345970510381542567472372069502525370960476115980641093831442719337207737665257976417196328177272188683245157913749289398061208892019512411521576925697460102341160975273533758411038552845185414063970988609939103244115144433041204095933661202909765388917270836796769412401573299939050483381296154607710017089745882574556672298588016775350582820258899314849069569830867990242369457860578677821789158664826916537419731884590311269375005099991828067889240650722683286434019364418262046908510628683540365647049543338871318552499316410851876921271166323147108194119371590133487334555887169930910875879412700260436716743150133463371587945791715293749719476423363536958305249288406220373428041588008353510020719736414467126639947965487202508545519684668223363605807269986774369703431729523548069226582520830550583188485747846134552053031589422125204870652198975871504416378889671968773189678587793629455102406372319736189584519647273115200129083536012588952798992022318722855893343751408515499271382326754888588171411892815470924914466490399947838665220789323472265980209372195697362525821788432723209949732302348228375912316444871599601459991303868326983765407038572231440693890901345182777138861239753416883370649920002496849081175802260645676416106215451433086667441520711563236116285659133367199768214669595421922866199086712532650662315121769718078847020316343455680430609830684772875418329708134867677695477303941990697501446981102492840658086226332600414631168219304603132222382822573217500514849738507826405899126721006996600007046686904696160317398931107061917921592476947052432747357083872366783864720205282377254702697480138050902588839151441633878777981436017608781689600383600785667730679929729676905427779785848020170161100743796785319175980771585463030201063453563190449260210367526485106865484559802860491878642357266339948575049075313941790839114797057779029306029467470432403972848863518958385799829239554072438970851233038659662610016475277658266424027046932439111017717649617648787698381649146909620926890167001322029691418694389776258285154190542636588967244847305750307497184371669150823472884284524271531206474608238485685468537471707697037313431765223852251395667568297538048626603737858162910437512554110239140413815019917388951632687413426223889896103626650436125423969182303462887784080589471387610724625046924038070878608377311002866468827568375715034724984345783754140683971668339938612120040400780460203340497388030243771086054432820497595727661678846661329436302143880710390426760481316995339281400400843584727040244003093995323363923086678717634379511980802205146537074858759478867065619456709803957740180800719843889870662686149838402475856807628819886232498642007530937468747787150949644704225652614709566432514960509539472968172594098401015659964758020449579089369760936086188394376473263350117400131357497243227931831440222606527239843276257024485818548272402008704890325861327265469740003529478395120045830268174789935802321745639294308034314527752848055597973663539115744577866838481278002177995540795587124423140297656514243788889284868002680287122922645882445378740533414726138737512431816392716627072560476858075683965574467937639794936382075869401481570549907433818534854710782218861488361945023915383175574399647686419506672961417067663412121955337811078237211707363942114310807768211249679196318776034308092224498998946939736299757872971056514714234414120809679415582205942685972279550425016366363311839740966753632738284171176981055640776862656004317432625368122260045568749619009746091955725207767694278430029354831182422637275493712514791863944298407327478295696161731092847337369094814467257618861428148423388010057304452032253494320957897505828369074940969527272488540596516971435067178187628158758863162054227090971442912477981509252848327454250591507023654357457882434938031780225022769574695102878775529040397347696332289528018700146962761345758150857473277948070009418448879761717533050617008738624799343788168361788174400697023522075459957046911517552203043313547685250712651241479387148558590032087354631728339954010556846525330653833943414649060371175356363049588030221626370446302889215006558684150923934668003384563995025438988324546181853172451697953568882044667369787546879231193089831414174921559274245426344971206229484357510261356583215262933901526392096168083560631865027988937058137806029387133502748433565613140506679853267692690679420317727061994962385098154103969110658630461084737730897973406492188309806271505280217218512214015262355310146643316555465470745149559342195824168074424500332053640706336302947680213508008410617026636018152627185184790868293566472242041358145993770591955064680926730427043046241408009292196030090397306846004787368432203517580573452609695367031093229645910900752575593252420408338929129953249459513793095175182724107928479539132389541151985510169322447445187083327828633768925945566483082686414398362970056388739796815734506236321458224263594494591299086011479589620921555053407215017528347027156790448316663736378702274287941802518281744769777506153800612448617562688029402112733298574147394960913136365090248533011009292934371003298167452066381736232810603182667421644938743770220286753492285606024614007917792460101116684285828563261795484516631005018700241172500018139874888070490728180891946098332374296861851737623213527883158850519944394417079449661524613324903203754814732781013724934519671644331682934296507015747874051837201408118640576070293056497001078233092844757397856320936842885298585074651374427409990615330948549213055804613665887184527368645771395945840706276626238085372940182835605771774430280194010726321520383979453069212422065017925064574638003859604968028633761592478491039966249222753308859326004967658892400833570946870457219889991406418327319786675892054903028206532571721526329619645904419067809275769720898175927694643844943182430341797129977497089013637240074942153194265168830651207161805994634287857845950280985595001187454349659152340062574637298311476764895741089232909301378118115079804944413648521350251779758781505140442016234048245632233242313517671980630871977427766653068027003224849925573980487369776152335421568390587674592605137508876180225319146178877893417296796131742780931901012246918838386065601305795025242831160957632177430652282527137983937072369611674507544113759782617814460539838415104543114009088270158008429948947350052995853824445659842883156591668060531557983401003758671505999684594162434397913589856454150501779056996583442084689517134125737108486791603673020920699520775373108415090522422112701150613944991315808749357724874852336613783209456054025174953120922231029195723122265190633662044264381054452759757986030587198109505186842273095174173146891262190406209409578846159900408669669552079361216648779103438742013062430111630643231839496154074401135875675081567814673796619646930197878185016764712152144587501432970359580111809701557620506060586250579120355312875367526912929104742370871695753231629243465878722963171173373053207646146342882624394497521134210325870088035311415967281901121644140189933190076367409031608008940462142110121057505925654478223500509942673544509093958794718376403033129645037514880133537322032842447007927289701992933333440684420719600288272493927258770451378787201257682891706230408022706169013351126561795274151999673941746302801965577105276047989097067012859965542919596295529155536498080754406963950980173955207823049002260102575145442819150880931272825726279405562043864384180146599736345886641372199346072112426155206734699687281465112485330354474542296275691253021623589078776661646989160456330144742722596749343963621089265377256996366194154422782835373445797171679800909124829472726883938226482215830999418440138338102032016166366700852445034437322412287925571988620607755495945530936127014862485474340111252001380555492401627165419590015480180062597388044444979925356073477325856235680910561459641708941344437697037861410537729944205520576576539158130064197833199552585812452966775036763971818885501456589359427513242454942626374625696512354904213586146026966707402660364126593141398511064120947367689482245089718367671630311173632202655311436576589861534630391047825385772098509529504176585071508344985120643141070817433164271822507439110119495672747245129576585749316200625969953801553768251584206085063934862228200050702456867600332214899362301600900435344607589374463168068543408308582907265710174371706245390687330509844454299524795343994795464891267060703491388502855209532413347980670540369687146179017391700207664011062503585414738330319139600522320451800415504966057992685146921267920017567467594797719308252620719217943614366769958515430870028772506681081220830505345108554745786477994685295607498375350408082420299444780591583445381176015677608171710099766862161185149867206582508436480327373532902271533897368509256373156775180424750472180011505140598009680649391340679163185229259214062871943032204190447125081626226887883325942168703196748815611182479697616503606448665098958405383119953022713088698672956391425849713309139661219853425122741365256864335113026595380867398039164409159067392123149425626616177198685758710147684210958652579952990339822601542274540773297339295713366008307396916972241974143114568208274868924984437998053444544882784695583994978682289309153527688528618480954523271122491487956657548341439388284729103758504311792451361749104030074457474262888898558744931193164803325400039871153760805812469199117655224319274270916823107087010070601322269527154819552592654178209110523734420602568053076333755413198113770122971623707781306517172019514797610295631238586919910113850609201645756487312739059876911071610974669604920177882251733837447440177718556168117395428096166212413245639127643787912987251012386705933330124376906588302458752424830477147766080421695215386456561724324147192272118654946242777653682523883394052373756444012690278946764442436497669967685753869654406377076401148312811806038175284766538298522568954299452275377663324753426907593375615002951227480625166666897556707919797824535683973863010342859022768671429057022706474881442133382613889275550257720214416738423493781708487063031931391008918476832755660601752618744155223195679694956699077550847635576056666397560852417962654629860054205272388304652888643559038358678949758571656846209288758888410961171585606811910053878404400045105017688058291928289484278875967581856059522383059643224301234000262825624242240475310842679710266121327977243289242371697771908563759084097943767276176151530529466840128560818893746144785121515117468691430831848975630734397670774094732279351010996951022603942883744857442620040379098112985978608801494975487829917560989468988754039202664062048266799184608800732000368404060613716229729838477143422685421447406434752776236884076738701572469292135173211961965059114067382716993063387908442569273076650010048389457883761186721383970563339060558470278835175715914557480798610022677892809117446685427124708595276903113502581980384207183892573739347042516801091107893918819841499943451975196892470915378286490994127578286597758101668885289293013182937833564340913031432918249874856997331732464799916463411387798310599556405671480846279958014970348328472508296741877028461360154527414597794745767821845265531059028247979991224683576734260360257774230078948007504481728849460819797043482547893756853595893026596903780214326433005728455960973875191917775254111621287351530467767934786003534515250884114230414114716588655364195939107593951063307319751318702299810102077380298690027371813849633672863716128213824920322691501232010541407877000803050652267689528263823014023759081277759009905748672610058298410355917721558074738611855246985442999432913884490051222135387239149554577207239949499206233622219189304857937762645552473756708359016821401513578525251945214626607614596189918890987454885140055817000494313308846398795092663059066954820756223105725236861544780508585880060704906284394152286062827063087404862259175637772001075981098872716846396700398048487355136798521088280266152336665347276506008885366899666546603383401379886719369849885692935624111482304781095808916463227999666508337586588597569149136529017085227875424412099536642854124751425520928526978890135230062281704195040833273602876287867342202410034620583304057227451408136540603356817581573141787215597452843826785899198442402336670579380629999203994356472661572227042734378367897808028483674971375845501604674969194643883677328630914749216238005673791531700938549969872297166127562917462949777494583095588001455497496267075372177245085990455983184641849384019273374349087690838780476923098228511652351913076723300286473172015916302702673189252799594158757605373604200536597762801305726613690554506288312286203422178574581372341893547947506337102582870309655347841058300208687313506307198984152365669995499255234565379556120676883233142714413925813058186412299312134423916335297755357706720818468537211962055433478997156822773891138365406293584983966572467798040732587975558084014207902779968161963956561763979282350606669402696528895719766802902756586367749092357056425636096774638235843820903939224481223177104209371111801772776916904688695587990134045694310792175826092785868984921169991835396801980666291773808515032983301349754588624432641275451181807021112313326531658726117295735053467129025894892575185209807447381281163729251767040185014235100746517248789856609084654002069146634663574081244857321023782581345173503028316953511815824202068195306081312255370471816429784563742202398833333657931890780916280081946340023262295721326735020429085515598850768073803452705972197415658502492660346574008705199929354934775844899860033813847335415412622807663721577690261278464329117045058171061684292697074691497542127461018790559194476410938436316094751347938165323916034784864976404530816788315862840449953122207983264487870664569514093295636186328637333615167596921023333255002833823375251626277471347367501793657493291772731559108229127656053405639365009664696626719562904942519615401229270692412515391858135223759119024582040769638522090505129643412088239732607641762924283051537462117684627429979445277681789780740213426137026727790786979785245581841229707690184447979279631268625702394585757534096353540083627191823026987542602873541215886207677863198033478994137855224709391491191966394276511085410032741992616051329139437816006516041147470976355344573277440688661512538724773429055285571587708256191696011243089758350205119999994087531343299576197999276676052282449564583250263773156630981130710741462239567136616348910770063424840738301765936945072775379835065170836028077732288586715186014962268947368474726854270554839890136257651553708813264563361273386722432488229632831145626125886500858134304086667476703082805334387191705890548902990683053706145315054559697993837537411446266104711998070115329933513870747291802678885382660818706557243310807278254024611886266760264132536324761291117583355779398034216156391087324768584346293583884475559663849624479913446747757576109738498773004239534779316503285359672833591274844712723190818564138778239256236436915477511660639180003098069663816237666928956718228769323442388966794197198877114796595153670681032542559518951197917180448806828278036413034238433336215413373082567882024078529769682045354737771472975934273014812543391425804695038167402646512820609697714361555011137143532434475153420988524534000756555910110599344436034538961416738514291391898710349843511185186577064652063914545594943435208959886381223185147394806540058522659627091585657920425332082063706354626563257627960316915141964199454397403499505538560589156631479594237178904071944880209820784218697807092167180040627575466145161726625087881794168164783336647458281537785966039556600090346532905874210907118391687375587053672985950795064674621583204785858307706714939450233004151177798900092081087471882949119688675761133001833734329464094251302235288709169061028293111701063506195530353008500689319984260967277832839816025398318894540985504041927855058658980549240715822565776682753272110039870950131537896227911130203752129983673487266852643075146533907135097300692305710959418616720333401469476106070636624151013056273683585036485683923561842525384261188342703076659954562233086500766071805271472477562577896577183813809557294182890702042747703368872900243683276783642798633902995143723934251974819882550480245404895430127895483321185588732067352348471239274359976124061225472636505281169705205508467164334645700331976350029217373850717189970346616100705900153453923401018798288992862192710455561742188648368202755792723957331150893511244521388780185363647872469575032412367375927097371507401553211440740570795844411291710707841726711449948934101778076213234919998461294297251910049244669254400526184528775459206104599227752792396676225555695098618995362669899199536152774318366931348632892696516655833600958939486104893792184164376740247244558441297923394892620746957050699572256555422081876469451452372959352511641305332426067352650312778146492402085229747825504242616396124212663104867562661409288716884967189526593202852446109291154879798433677171918891837441969592570402351670674170025253918616009556724233012255916265509939282399364756215077934606481350516960269592496319555537051819539181394580799695910961432989717236061074976341754317387287305252231213682440924446896104531820310534979215465008591689608845192080726347270264787841335656237175296232363024246031614727374760210595640866836726991350916737936137174898687654781235001055188528860416903548982563029303134128775122795229246694278917281651020446648208147776677521550919461390009084209853265237397508103658327177243491372975422926365428835915060692502324155985005677663635697661670042108342884927116789205106112027508424478128453711391097431846511924700669333354814745198576115596532093918393372266871876641829722083715140280057656653371125593105550433151248849144305373089954933989959614201100185833952770805545846592991866673868661722663239316652878347420260189387532724881058698020425416241263539154011879947093418535962485638041281639085781222885059845052962810457307093808648017418101236777664659209251964527705716873274594861964466703138020048898698697791363903047540455694296383775655100849365577414933222336829652942581466794633710950865790472753603844487572228552123139251322294994898932374214791250872254849692144541399450035780306326319279686122947739710988605741750903706830164697698674977386533143862623767952787878037630989530757653025981421807338777927147924440230871178173259734868490361328560811109592240639340212905749168998124414167368240950146049649457669067546400773892731299492172256334965968581726481114564609848575530983001010109450388537622112886921180711644593195089691208508179937537767552361336710044252219156326559423472330955967400943844615685684684886059743068486128965756012017945494159262699166194371270472800033006040102091248774780119078500842367056630999139983654931571690156047905988125270895012909152886105977575830217465904555609697220565790156694399539932292601476714390324165745562786432041227117417464679225029650043451206602284247739236909784030019453075791833015196914372030182495849723142028772805254006857226074132613241633511596836681298771056719305490213946390900225066007608326217376450253435825732012021502187542956380301149499801139621012776917698181860927618697679238224172995020839194354236360446360894807681313597012683529189638079701645888016393550971242849562352949004444997549484636100935581117232184168909084720526419465003322332588922916694878704576062283914735592924803011805899998155629130572692651496965866350921357099442101718724943603034574229408066087088707984616355440309223097129697312612737849615062120755473814487617533825480924908809342363936417673446037587794411056351041459105231027301457179015593101416392838154382083501125853090910097092878891291264771900830417418132834399043685979826881961512228935220832105859847853977362258020971601010158715136451838332607798489043596712014706891072876148734176681208710415320284616674211527125196800874026608793311806840180057064043631559102252846611767434308402159194417483422369293394761649949015769411210796167140811089943869106948667002174592210958627983930065318224855639388970820790415309672615444606029975797590515918580671131217202774952255728632462612506279783932752778453832793163701281005316812416104160223676186069598806285436959246675143900665816503853481630881246658122204641786920704401311071306295067990678537086782722723211218351669284578397283692099765851349181555020861384303814675838886685642539374099018084188243888490992701449041706366687923006281290957788886961329173554800676611899902987912451942236728085634728345857786208216862119724737806123868204366668794775329151574190926961755937992649763243797896522431507131843797217362226118643969554583451208559513522751691098273940606406966956210674489463882150421553559318928192659672200841869048864213886093023037723964564989650848038591340426168988536091834353445755160402378287134515461005079267171485300566402376244153148606248168524179365848300804917009070200142948827421263146650439756312134708774392793538788348043654157556174518958708375496493047422703498879684955698064022594033721985485642859824614265606539939301077979595680544220156275281210744975595057924860550567270741694207542047560718706327869573190041611252293645794633603561906503066052566634583650900405556067538173119269248033657112587490261832753011813680895392041424714263448512691896941047564590466867283343298948030035146629997650854333064964985472299347198822307726316283934690860416057284200001976021935945689817091944657491049847739723486660575337589457111775650933997734098815807214779653040058266756188990785043624490965469464416298128125253715475200735417093790762246473025291005077905737970582982315170670995681280975082161368202495158877782059995718122778903698229437082705710327936344599138019392254642491456873547023512807175490366987313480017982599244682873588592131511590817147311457822634316206804861799479030180229344532631437897062576317374449300240143921077491842567536880422960112108283950242138412250196773200712304096542731576756886025699979168791374160050390929799913898033761627467928362308042924247676633327947026182198492627075959250703640794768314995778993624430160213775497767976570468177703123431970879187123466053594770631676828313739501352879879892436188017466352013257898588540850817750517597152063459104924299012106576909479291582513396421251585046435101986803204289969678627660317805914480536865458717409561032221402267356533104804945434118671718075346139487070594870480750901015304254980576038758078177970945487111205757573487781695157542390176871750286626302846360537339002141248067457039096847576699038353679516768195451590781383230191208618961653728832531413346830751031574331067622176979481662634723156174079625707120628116751204550966239565773229569739688652476631382149943699227989735162618710393938505856923045896150147987256775516431477582146223042927727313240907676523526520430589033003636520681001475945746466025359832654927474114396204136513965066630058647648557478670497170508706775405359043149871308462677802150239880369484478103126569598606901459016935931372817130278567913760596462538762372650343632219975858508035579506636153836147155015133092352959392905148188619588776174344574983962415185193562568904755488111066972868837959354389923681735011945534122589882959341768195418481394518244179650065676498474031228096488264181188864125221610458162598496194030803838256943265059836342269642092297022145031893314295862290812809661503360908093716832322458235019949025420202687821006203277629065517058480668257850723050427036972583907978272547894891409954497035759765216178965600398353605567182044763472781802301541882475970380301150757686464473177419624956745119533973162205343081508996334186984796537507946803226168010322898763590574753301207051732528422434404890600312817082768649498565921822839969927402528023348592281614125836548661385486710428527334694569223127315710712810243113034233978179509735354608862667828610160922169270281972444003887067372370385477136731820671665602659796442869543794632756418932413863104358374284788914070298070875238428628671519174017016774122642892757416767749865209435908937201704919517022174172774007848775182271518135770931568709210523962600127553237964206230476297430335766632714072123296782740639834914293496302944086257756989790001337993771977935727326241702933880135162030491165151334662402133641574715783525883478068501064645659014710172067256434840520879216544144917332890032956508358359665935579955530434250964624594575404949994793439559497597663639543485354613969868780138883833473117066431909975118136756852455566405435365992065853386368196348151112839260733626016683537173965366389891200375116471130999346607867869885347105548616421961013826650353573211681947733748430594156666360025995696194305755717322357989798507558657827577722352325589586569087647101455249707837050259610602574777584685988540927254635128252325701698106242265759388534811432933499538288665540477646094548317355173531470774003451321312694816174062375620764273500050042211897359912539764752338327780560490726533560779876524589173375443340195922227431640826016534116462662407790962214332433993353503860218932334219887233122784266908503748127186014102564293290382550930140592740548465093457011257950893461031421263875230426672818598719346000780244353383462394428094482221881089018765009865509574544863367022797855434724098600352112043665854099096913866072858826161407146659210889576695995856706778773068465769510350457961446826561956375796057880516842734803267009914001599695815791275363634270394403383132417411936202740873638792255082571070632442853132114038295837726169319015952128283361945428938719111274140581985787105671434361705893414777974027835950940979766046569815933754354212668280789512785000035932705236489053507614553616416324165033677351694829549381463698345544079403502563878789395504988530033214861352974555607945604423893053251726027054047894395791145914281991607390210696926710386441752586961388588528952434535195886652314076303189516655031984928609572615740108857897299820822094232189222777984029653926736605651541932656606313331373591756601684656871524955404959466798649256692434104882017696596905612080725761115568174991664042587792197903383055602012918794500697831807830001408376711671874933132714928817264282572101583019847484658073569324482291896731048949604117960449295470792359461503524367255737749558416306732400095020995237835742780571599608176734839203401305158939986666329192620633858549894816186220098283025967981702363481174038802467982968115125203018124274932521769265299495724192393788499447567533729381227771417835135376265252934018037162337286051708948293742388619257941077080116420624255774492782942533017936124706543109991024964438945607105113040259323033688162347886968733560970027242013369274822056452664437939205809032934627434068573262600492019711812076184671000197086076422768391141876137677614400625195767129977050997569621290957731989754759801258421724607068792952599415991421847126724106087622104434396778024718430617731355795362104954472450975946197307827803972239340161950206759312165068372556261404085711802581860071197449217063230697651375933231803826869496884015293570446279797976488942173771298713253504475694559954422080571725652970843395292137997100374190435402633351483953107896080334057925219051851742671338419665914750833971704185675828561051503709941318716363221479284814121712663273376670474623854678564388097632286598413476059801972847683421342560078120542437952665992099862488036468170154544935445693536817216262022877620327703546606522904860445034877874088616529090257282686317927512319955355617928795323265171403880856437787617722033274558613399908113204453428598444077470400734855523991702408234948261090608812070409006060717026382451369877527076954689392288096653039400170766507210981903908187112600755671249567608730814559184812520008090341186135715953482103282883750918182080258066814460924708323927036121509577565235932374208362362417760644731978475014898351136785300159531969264469445384539195625985224763112551820287089004672982172050104235506764879140225204278233955609572056386551332004410108077334789577021586495646327947855915525005158897579557561473191035202786853797865662364023406124841921961540720392421498401864032793178592736245479473026362694597641356496624628836967420256422515113455304464167538566997591866314785807112474987621471054052224841272555799093431123800934970410262283517858844037526938915306857467314990591144354291479780963376571516124297005099724558182498606770218293486260536730260946414533210005325386224492490595797623969321783905086527479044800900024217156430522061468112543345421287197059985044193188230827101655693944438267982840563734368741691759696919462707015848078594790446001991380724511916182598616394089127728575104228681575922271712147210213629581975934319721508391274552182673207000988657783914384141779114100068620277992829689579406014866306747680773160929132905070782534710915116785215191918922833034216553139918943648203204238497974629058954802922873105986437924568131253761079789696400157254415715432693604855253268038128189556646130968028858074869274284881543870241421481789933547464241395663668472143111647668419651147379252654043241651455458190888130887945134252738940601187854623867135685684602650252252187682192140471893838643535729315738895305099169710636872534389127900822961647955422241125190551855607498495342677264687328386442276714456176505442730150226728177061936219862393239835941534559828220176229718657026310316542747018779842628677819187016851169618954305195496134319188324355273658135815630052987972398401194158596449255540074257904577709530452487817910623368887221862417355457136088912510703151676633591983383851860823585417986884454341134374283861219975576076444160795964818866895176966636489744265340231730984443652404055936319914566419052262533235348027683207268128337345593242790783969704250241083534622241067318454428591914444625692307834847009011553481675364120561661362126530944333460197884158095967590634523594727931762567763652514880690887426225471124863879250140883704990101154918261029566392051568539055881411253875505701765889245639007839624806224187380069061307190231678977785202194090908371960595470338751536345034760904522951632526654654676509657444417613375958000609411941785161100106889805243591070757100777149813819429295949502412549117639114962295482699772701632346317314294582745164229335290487142050223705436979054656967678661975177919949814678071197723909616531107384686733413249344086070907555256776234025015847807919172662974796144836602946198506027389564700109722140044020531837566408029794085289909770399637367054933506807459519412989166441588390502311459784204698967937915834907156876199597561169741605024046048331936607683050154087896698905752135541756123507961821993925617771332769506998584395250033324771712054503156306707467511698898457404043883582255959961495083785903568560263802308404187205527601029081418706364715921677881997025935660676459662822268642470043577167397296097807754211084082350741719158712512672779030789979312738087398837722490258001799775242843217635271236052542237964713091359052195658154739584864570355773778296717196551400833533261433861426671529354985666086695282218307061481501479255816480776782178089966433484442205461664496572692320697227396702666819670035041466980297441703316014983847405005743442421310410656328115472861216035675249267027114841647271397932679935610617674219113125925667731144480915542519964695209763068709214008803520409554444255260498169873304209275532549023169753441038789228469721763757236428448838215927927209334507528921548511146965270380376839112243428268482531088507932713866867984740932900850440509069125288197885412865333897977234154207029471644808404483833954081872254742518637241416359549761707959428696006281255416845440809244166718731675622842036656679965326871273700555760061424432981624604790840003000442224083318272945631958891088946243982480741759868082626020765299316550305604820271585522703994223707303674464777399319089935854823005417835638814574842150363711560449337836040069757641408583426889226637764171186058891935390347176694665676803066370336118814685600418343856016365882202203966427815283094841194318130650678121697012038785926331185541124843260901233006748623171295772618720629699991289812703507443486289419929215309600904226194368561245561080533349243802775824124422050104076246374465861300793823937945755373574821147373741765358432537830738708111250604930844771492880809650066054943238969431542317318795448311014208491871165787486477675861316605837187988289556711900188700162035339064860633841635654005982885731135376909820135376700835702694968573123820039710869729784387804601867066258103168945439333475566024717506806776885413254191932330460383519329645480686947723555473482647401009424419437513545486891624834825974518062678519220796167276091326270207690962688062474744740325422604296690561613253578574681082036192059578909033036078015790758614303768632381482179469213618770222809099791569766502078454233514799611176044801856969473790173514060638285933586190658726708056829082464248115257450722073501467927215605210219476241319328810533697329934803428789641554736136831463478472726515613506604879437875248657394604514628868693172721810500328714157652281729281628846556612324045551177948107805758308007381851265017186023297671838121623858364368310447567877899289023138248026419598768741018758479996278593043685047457581038295204878084199110401402907568282684184324902505053446734947108701062676836339619924606907335967183680614039252811568947780447331240477819292867442185279539453539914011740290669469757912818017313235060687742201723014295436614584304481617144178319744683172708997859199216968062034604140730593111261289189584051001277552851479710588537060459743676061984004015082130057689241933581997597406165017781202344382718027577199495296288721776358115767106612153034731594506148984822320577002512365223942936436792155172154812548184835823280787487122016579695793327375189709674513786572280720942785336277265094568213811387850931238673552032193469113252124478849301463792325580469770889990344132412927999081523090711351901794851583209080378461551416063373596728718493225894778617203572221502215620083187142625612207828224447066074468600202520338553596992291109097042928799941372633204872148604426206923542887644093172768662538101750308043857351806073288562556997516319306701141668337854003957595737968641818987792166307918332806913067483457402196607062114684209335236497443386153816372064239118611063220446219321994981757387618989965817174841691722911124365127654140959009805693569918027549657699703816606517141049864126145604589821388595158829229462568055603894859192631641303938664477055155105717859785131720794352524274192797169006975386272672317368020956022443627817281701313602432069626079089890129604710046176480529395716829001445776383251355235211304822911551993549062568285455411282786189624079283994503500593791243019031067654414101944489769893659011160192014860393617292515484353748298958418083875783475103192938255968382602648590049736462481813053920410379219740716906033189940071067969230540349104427566332065516521171215398875347878713138753912609487106928540086780247201790211214220339857342395010086613619652895593026538786913762506036178118239392970470736815546190950457651576598612001828519633880777230021651025451021561484456049244481922158483184263975801016422400167226259789642825292798152706369249259820541642846229621940319023344939798630536148035394589369436896515985524167016595824557266322603666777100811550735541387081901592571790158049135692175586014852506067273181149230265056700355962980428681279674178426573560174497261475505686403511885888759063173810016219527690180073500051894736107180922220204746060104917347204743343526080066773674799823557162510643980071968890603309574642656894224187252643322774388336669848336502533007990970732318111065297626392429685310439553847618576582811440241284935420896983702460407406081756380930179491545478824600532755336954606423502671829953334993026409716864134132208589231019597710245519957612122932808053661392729894638602182007593842549281945999588438012238235548240391250292752868762362014518672387323972761931138201686234291346175732216072427468448551410601628056703536586734756048882958042633236316105320510261076971725354989456357714773634167182675117921049436496944173220843910016877149940445248667135230910555867316292841655114993471916555903674847434655438630035161503493315860061497325384658242121081115749711750830725975369678007010702463842435214554806575433247582145006675826301351218184305615154431856508308569211701825997011399188261635123281921132598070102110232111275282542776979538430980678775049836697017685591443430108190601215691653765839532580712425723507935158888767507243406334918305539286879524138032768159551529575024364833121591508125455984029572534755304086514121583245793119643937403008183027096619994759208307998118689507686613903021685357585077065223292932860952615862989499917162594373736871262245292607132621464792976640782411168759587740418661794472466148556554393972532354091859407387945230794317910587433206337269983558877580577890226109557932011894737700027722250229634823533613674235830255648908682906456479529231861953103456899661226454234846240627633592617584726412066704736114353089593441008114126631875836893178424950692281703983421346004346094480461260377972513694395405156045197064579587713039423724653842797957759927407524734999744682870090713179128484154508291724990696548388149424940760194469204727433319840998573023760189167550614135668706773056277390915276925504597401146614616264168352155490322661639012277470337970179372453411317131776662675869972302414389074452857831021187458016286955740002748128192393185703755502270656625120556645755895640741795688558389038286071376169873764632710729835829867823811261833532886118130119257529624211307369810566684671317278291744959360598231664905199896829177218861488281200002178879453415503108709356251795866924926911445009321949955987379731932805809267588759796107674833899559085266544357772021319875872222599168479710471223769251953373962764469916877304440163824946595063945710889008671824257670594188980548690304629487621251052395605361963290733950416846860833047424983197211815014669839471061979654384728010564787113792850074677534916809357194851036971212260763619450985237913283482405647430276858805651235877173041584473273404062214672019401993141557704248018943165393707957785180761456333671358069901662484894893350899693562885127008111113240896008386126040282509533421009424434136602111578761519931600211338134970199893103925058044487004952887984877170665648098109688732631073856593228552498812677289170104232172898431192619504047523611302473948292023391309642561555522727329142170273147703401309016182248913564068302123754337216386677418953452602823309961793008268474149521220069623138625293529998063412670105695273723254767607055218811998102228404762735560549667179318584555185494684284422711518858456028373142166857112906595575518234834593336353365729791760145214874539338051144833925450751707262374668171808166974606963704801215832903773910530507940811731640334611701237912269548897569471631551168561650122210456523640229248886474311152752221989964720710412525589401746392239149701721920550656848633322680530310651636902240506979664374406827637584170270740273136631111030879417080465286300956125030270929660853501852722905484896543655332301818629452005206930050840511387414340140563499916668565768360304069552980226298113568911553797504813154038218650712588288018574851463106855631519736184784743373748524080329632101808486341912887584672282858212464406178706266081107799839157287583582737045578428964823843153521686072640152874170056540705618985984861223026607191754101880061236283078094353497179950740813463937644770028102578811199942335190177085083098437753326218649551523111901862968362236215212299587911776591807414869213878724589854758681461398206316742460434136864380267578855452168300918864147058353288409472079677297284571119600880846793689954739715358939124325293049919859216170124251939773111539748948128489445440105274190087692183708996448016938297338040234788851319123696215279740753680541682958315238323883844834468511171408878360334454079008343486056310175103532007537066532253271643515385439529164801457661797638752594431743135613618334906717101712880959911976804082498680981504277675712745532936444533556279091260770749280534971466942882603358071528113781398028887612665399112229389402065066694990146910434263805267678297148688756358781653881410562890658771203299585166737385307054352525888250168548454614770678386743217247686133327883960973097487855473260027597244549431725367792858391437104868392304742337959996917038250954328849966636240389981256685507473543605574357890105126403901643902293503272446251024823202433664383669812126885848788303144113981783419379578175838677855019355737447246976385611698252700748140187172375052219945179675509659736104041291777639833522844670616926089556521039543577860439001823101662241463120766776542932061663330147174700834534914824815365983674006722016859838930173024533501744252349114931754739244831288650676745497278916459382511109495802468241656544353636511008408186399209723917812818597312182720628114234014832249267662170813949352020347418149002401480976605516037605893678975418323066063274092867236272396200569501895826941907071016873812918886054020803293266301094072577844240073586906125372950569997519348918609270166287169768046548744362141482897757704937211232240227764942823483763914567881778903846263424692041905068761720912932924334588894552086818029471796391484545253596457054418604944894746520461152426739117020256286758546758206297424189112687729468812836795252983942776091434399068803263296176392260174077928922616897357014112784403308476420321916888094834114480930288129022562664132377187628999365435332292656287306480306451755037406071464924962136540770441247958619747904730814491401051986428418475827098864735852193622402059694081090956437477136369921385662667901268216675945642830330729071240306213333904970840809994603293868344136961987316110713710342649338756133456355106240300969248056867039697791388059693430462063085904092035153240780120554853539811493802007174231798221624703069864167578838149012341915204449552979791523732450761906091512557891082154825228024757220546886940473070748408757702442969696730580395294459322183659179768574845187172317017566238408325330320940260367876325624888026466578052834682229200283745389507478421453161824391123378463991541683269249991838665736448788870811478519301195836008477274240521755161699076069927668688277058901006418437086023414725811130689846558018000984974143293960072740342291842039144018437066609723232866218698114156921238010276374160899970095145579857500404991347351985424504768438738637672116283116405720069235271115109895516096085789755789901073106627348898005539092695873076765862919278271022651217483804532943326292245850793633688363807494998364581175964072269028741691251275780933724314174915490419429365014048253980538176739687230411037677254671384555429806439957758150985394586040915279106611092074779194196398370289748967794663798284017345226170124773126044954514387444130578873675915683357270514331883244104650324203123029071739719962713573137243397515884903634019928691104338104049183528569474029064788101833678698966464572872226014335167441728451275272139959474261426970766479857443213697931987952099083054549932681473980997992583015715242244650332495507161464406249073493383325294935686325421308629871248964936353092057895387098077615939771534447087664247254602704722187424527563256269742358050170364530127035874504570908414622812805149658804176818040597252456782173982962013957877580997384098178041995927873844273086665650772156016937900954221840504422324802050739633812462033930417882097766513115763194984641395108541456622211639640172244950938375079767622215075495874836068560065646064742133013320507000493194231315958219779818066473617251323447694350243576949091068963667902652265080334529018021439656418268956012285096012260104758415537724593190306359946614343941729417790233424218289173737479431691394963802095713358481250593040537396746851760915265700489765935302899797078023570537832772717112871626209679956845195485993535271659695357541801258718792141517526506249891764164576462522486980371187274881523475336999772163679437571627497756965625296583374615058539044141615437321781364270328854855028024029407556134697650636370776678296245008560149293763345607327689501905157083612245709836852338464427180285590491433901345349429027253486982778002231493777165294896348360119831654027435379878279774450007508530513106237823724903754144259344672607083933497467238256517951177076310614267732077457151390446506328392961425732704616248515265807434672198512909741255439616440746317846938885085198541749522741805432269287501412621508926792868979949736608183500882149839938420278222451079682888754055924281828892831717363051243880472513911167505265934756281667845366974765133221857393543434475529884475303837610139710807218916653977103963720392292793672528337427859078061859674125879171701062840197567327967331295644341203412846570819681605222316627530831714275234956048324837757584224230060610046846302741600183128247662603198759969860864334797260329385662415162929342761756441195271367010677464762509946798079522724502757349802129805904882697591011601143194819142639819034870538867772186563425253129540668417962748004946605088004512479310633470545195511200377235100298654035342760902468104621746375851247630516653512523305229759514963959477316449707014419235892891771428717646770103758296118456649452468293616140836366464047907147238644672914256739940371231637951750780526203720384886913205572843964010424485730728485750829375088353174365619514294466422906301600786737080935130567664130909394635331772699976696429490426578981123087528346023598017001609769694257899472798258106445517138112652274737065303186378927481419302442636804743600957410175506193605207910345057812424847304881894624995257512740154995393020048075748246950760158350865869358132986969816353487007859374638421690747545632622944400340287325547494140543688041077903610701650441988682271250917912440885428983434713933285920913904461235122044581396923883340824552747127644685586743836580891111264220949915774263926951860280387057799024952073405043699201171748763916893970527173515348350066492563101855612739910017481501764981122472755963974021020297102520784547694197081434330661146705858463105611877582099690506075787661523390445101840585007981206421937058682702051955618373289632452851367905569440200399523826141818970504693810983098156806845895676134473116630349420899985252553358321508962689961553400417454803302540164433679213885133880057545478976915716987372354773646501228985539853688653897014761532171091395743318661209740500515565275163557805093842383773137435500805999941830727560756378347864315357513959972980500534098833543620287386753144105313748685477524851038251758164118888441852980364346337475786094861682351757915213478275116700444005898694569444293561077412032882764296455181820707258175379233846188359345420453575979643913867846507201513912483512412196812791092203586987126417450280641241278881105763415511631181843728176189301032745766909040135709493925818683608604159200984956827007882619483145997659624956933119514397192950235815602721980726180881998983157388200154670604768758336369283574339588530939472631514125692904581262834132978021679181155166773530399601760974120120704663752446473443045871282892599111629085236800661294580732870469680493640512265746993931973631141460983454381531582044958229544684729552662623870964121628826742181781115306092002465430756326747506801207689656801131802229122488520001260345946640104075631446746015485017482233294121976550880866187194153637017094609547398799504247502794859924838255832485379394202589957380005064825103825136027668813813622357534957488326086318752707161600860214394411760227652302473526827483010218620851700115363759826993799421935816400266851705237296518729754897363925219777216830706152921367008509906156371271941080891994698177059524764818655665758920564070301968055787157680203963686589213234963769583203069839849915103104294748820493627734171864741507140580779002505602318671096910161071379553264440438135087763342285432849737098464725971046208803527668217940916194458652958312490519575564162810095933200829848556463959600641737879057587800352494361925486304334163541524738353022136421486735878462444487603991895153918660630338816807815186236094411322988415010674911580399869925043624871804602782009641494362755092490229322488616589463547566404376286153846874475953843407763815241941546694464803806170823857720258782675171661640208239779273614544063619092974385001008587337489915256796234905554398589807014965082739826249563667638613169993807478210777902818262214245016513494380278413901589787602652771377998081202714980839529138248088771756333980754751511099444671075121245355410417645502964605436668746100910038481234033584031794178701195611026097903817677454188602775991440774922612926553629802095245085334669084950861687489803872161315979875276057075058798761064315791276720178935333295439693129398851284088901490921571018360529583218653507102099652256514870382813539781191175769110554602667157937628350256491815358750402108909140486054211668994723122949222154870694669694073517123575547269876460454615502233970547011259824358669194593459385365272482378227892376104579934404400694428979148177134662622737811652551005200273226167189087503842186788193338427756383404438315486189913611747076901432302926807491030685024055636191076413181520369042401668114252515251491117802673266500967058513913830534682685754054933640134350423799022219148584665840050428999843648732408681944964891640708241679727191307968254561394215047400469793590010723802257221303128278597833437718416944291583821331594133564316971403450589328376008275505379717439258768121011779536801682541683927222979139661609220701690461471437096993531443985888296738749599779334292949914409534006022891320334770090088700854833788717048580597070992761667019975009339925290602954845299634469452346607635145344972779406804070456851710429578150463749684721560780951940213604311557359426295616826258488041347998443086861483280714415277493230291703843082644966428653374163275904206090748393059689716722310069177546327388343824192477613097794118530162438254043348947169062464699413349806881253412816079130494387295620493044746223620999916870579587577326645450353041980392437918095767924990229379000877734650125242584602180297220362053396394134493936317279171671236720973447948484570787016938127154875404927770283602977458836340920090430676639736642013922301262131245397524420242262886098576448640733855699057694854161112525712662012966391831488381951580335314040022530678072591663915129430946701733427757386367850027900987101080440245524301245748425061466317971201956045076406396129985586385617517150043125984044697418744992293302483160331837417932746984317788846541814929200640402554454952509354212960285675657717467900231366048068082434741067159080039274250586989539268945573626004575337254804991659839258372497314839426007699582246676405141429417928484142938388628883012886267748861619608004471353433596170074687379198525475577617770647672165489658888008623432999849092907891602261365855067666101094374582544225056353644655606509544469368945790850613793259442270214103612087540130038786005143141025770898794110615098004024795765429795778296804043984679874590454676469667090003033066489787776214794097709912274314268764489818094381355664262805982703382483810695524597727281202550142658463739596952469895517615473671353731935541817720180653840733626984471803688916555459235914056897918545626885212482888420142350196758260556758131393899937868224356135402372476317976983819512466741126316867625426055979939245954444351622807650526773775568978018785287532532767926806533486550352953856884228977566356687861871012378445449587501024437954338288884995830582414006792247872951118727197862728718914595191311881552323096165624204531486209424742487899918008103496116773773679703916989756089882650053929791891451818781572363498635225744645594515284375856558011336118354894405592048534988930485846935586340368076943659692890160544084260768502266978712128052962073771867837305803674115090452670204648973222237547812412171007019835244074931814471975387013334093592469972526779413156305276344559746900076041752671270753213355181485163694453424562517069737594000016098624926615035068256710635926810349859139490610229374801876334192095100331303138535956359418434006818106652860760746940640217525522712211236042624396113795164032553268455458759260133444374959668566744282474538619679786348170960132229153886143620095963750938086842300180368765320827211944950146285702744979804563876738591461061794955433529930559124306411658441874513695835884640611889291913904890654050030882671034089407679797868483387421431226917516325963081705181004759272722696927461345088581848021972344770182734176405407492200456432783067499375179782264212260287206364781935545763933279013114652789900203105227529469162798202218803029784015587225510798037433408214962769798943649224477084109186604586369142297000453198854974094136751602021584219883283379702438920197258145316024198399324526836077244002086747739123982408586119655846523638194228936726272362558051576709541879128322057258774842950990138583663711899346040852842023328029079490254515934546075144739848594534459532149627923700363580135854268792458988441317569055631599248694960736531966159937071428273790179364693359977535326810721693133289389080267844594135168702001852385740700444472443456222049517674891551279819301236361493451097432297272489037951516931665604702658222455966018370700954102049030648836955215624204138765697415044332744355094121862387038697536920104376543447806385411987209178850396686865491751357191336018583836597300946646340213182166879523415821688213392949033597448740239294195992336051763556310137293693772986650833666549790511930506706297241916804663291597875378241917980355397139645289010297197009548410153268595962235344050809520154280636203649205308082695465622289715811843976653616095001336609909981619466878145421228256133584864221988619930913057230024725203703149735810285392875536240415733734473665627473273276412892322478725935688290786437770473012360797854095306448444175771863807012301664583961225950982135115156588465682621496992482798734718182233607741733270813173561681554759502097740520527442947673408930971590174347928576912150181461192880428618106199402239744887141183443990349076776150316692761459065184087051071592828556237044010757870030462259339847901695948753818118361703703757664073750192685737461387372474736104383436097270711780085704357298250364843305458800342652512024527834151581221775638489611219176656519351248327732339639070278722694596134881204997945376790799865675026247110849258695770916949915300243123893981598472345803259350802641283904536588295600603681014707928146890390836534423717968509402052236080007619728398177466931343863997738301278686437218948685188743009165996347556926273200890859249999699407447807823109410093007747518113152485367616850328493685709892858297028551936659840989748570389859525889253233505284587994360314096376538821975342673429752043504301244962407631635831182060642576663425500441629146183937985155359783312118843590657612505553137312296322625756186958152106315012021815818140344063999504852552480054091543495481938708547536718692121991522672656391229325390523749603247289389797814267382296195308711965662871230904983856305606688655830484278866501705070851136565926207457916489139581297218500258173374577206601618367716316277882953174759122626219754556095818648451205686523872860951046068635472049688184861611312780715143381511942935585075043942250321254755899763242779137943843605769042847818425631263270355475901208129550912380093275884565023992713817571755727527078204586466737885451800587053953764957201424564227193747407993389617165064125392540261806675696552050157444293053471848145594372540075262880354305675494473886156849928241993410279873985508479487199019222641908932691586074717196148466204638936874744121894324449315383499631928130263870488101761123297499104189337036667952942776087159204941507991334848757201379951914656859047631616305618325507068642988507851227712428990998851788984419542448263678018782763221378544810388666967171396195485037178067818981446516628298235311378509635487859116735450589756495392752775972582861900575513323073474164497405294636445897849666395141362165845648621772997081719170355652269047658629897137971208072531768001244102143074927053986484330018816045295051435537201911689934060802321340515330769506824817291767916796721540050777899049286635646286414515088064697862100112134831051010201383555986320846594876360760475799654577805900377319505981483252362994509108747795357081201734392852922031070929546146959175462643232731974699846032906491270702530172313013927895352835036178871146987080220442199904776426475036272713157000364328334578415951192939940260464162734174571829759097681703080521393224345694431188349923823930588914278711118756706104458605271258322500173662129770250799579706106459342964270870563171959756702275408021767844120249014188747902762184787072504685828966928949708318733945441435423748610339544101988606735719748600940147721905739844441314221335060131871499983679395503565878783475227176626409806404964594641223449816349960976628152553787272023403976674859945852490242922577528389794613723274965955694986918263359748175582859804805726672735503386787474030054289676678937339092246733284755179421635009537194193706916664736812443608944330370634088232756151878238885207527195919708386285683328604636070066432680209030050153928826847878171361144578785019350238579330047905455346822906541500212704264113530747479599753374432332277639729264315483905608922029739419050962867174350863526600246244969461362212337961108714880782397316006290011726470145896016953879741835518651529736925378617938129359573741156639700568816955466531362805935701370713947345642775601341718032129261005461003659050596511815175310567124134658835142764181788075502894286913059659241610473300659330649841102044540575374503340576351972371393188599578060922659942012534874783111179843323482485301162979510382395372732350911117744873028587001016697748065511825932996785609602452248770129991394335024237594823500223463645229990148449986335586687324430567227262454283444766415760634165561514562149199098597903365729304570382175455757280134830030404698416342099461939267901378392984514048240596804945146651378439696672550645957067307731825905681913539342359560770953995077026926009819454899260938093593264942555718027709775244917325739545472312995463634664022082494518937671485366644600513735854415203486669890105754014228696491176412964650183403871592551400900239536878446570067577555318361750967892534645383774225922022287396293095601586248600115244256186201845085421819715180412520341518497714568184924728438805390880515517610234028904701132376805340858038016445812351181461262849354281700230007025146603183984875331105101082166351423972686065429500061267168191155417622586746200239662717255472262105658657192058765701365379398462281083065498120261515995034481026791621652597309922263134360490732394429340356286456091859852771792932407777499136168671567595761216466451316481217360410284766353265753933823387984856032262255221972686204212503459092379316293697087952218184740821037449227460694192430659645754040480730804576926743580109560471249248374044662260808015796597269320342470639163655876802365890909614615143631498037096596456054958334461984952065355129668848848309507272146038159885078832761882098322616689380011674933605648528708024628826796577850143098963764240268492823904386507637122913689537413440821481485246620687841726065468023906625665769190232737979299398912676677047936739402645290131047281907520007062479949969508861317794429330893895281844221548496973635212808343883092085526022440612349862475872700661459482109693247341620724494276915567112830864583903401510135155948306264208861235804047262192938143553254825032904594617224798364212222305710873438547616586711882621148610514769165122470265216205836961391302942996934626509053268974249193607624110352338994614925625700806333498095615442775259086241610470025452514647489701232172327812988624193065504051623165581871871369097020893924549389062714018389107201962685480470373210457280643495689664199266035864588894302042771841597046291902679061336466286702890249414299638633670495185070562691957356183547893714355268812473371732507161918982004182936460394364032039652061528787024786635416540452613987407722061367451318154377937098160360765912198578296239058020496579049837700603211959061583114552455102919829058326831880963065577505454855337336452136042099227491307222222317848333371735766450741818631420736213261322420354337418519169398198685050943242880642009583229272378689782412514683918368817637868086975149853856088910698980655010120826847638925159481977673047595596816421735359042767596753701300874023443039025160997608204806071296304263832471401343396480436329147659133166190250270708332060353751025351041638084882827313060937532996798873953437118166954083232208888940761054885222863221586162060012688032508771825925800258933303887676766080260638912333521442962435357084882047018009522206918192048766131373790372534572670274018074869738200903883235568691765046059805344742235138443908751293024517560316386128868229683072297433499462364715633578890494876293567634610791940297817275837486870761818149101716039372694935394271449060289194816924070643782944444793343904134150218730534007921210904463058349633543510171053809427811025568515105905158963478455003229412118770479254149222540374469626857432332469529924183900732223701523977287799906821370815888721252213643060805701479118675421257428158324955504434922157645755272920684552234258546916145131459324038604094996834866125045842608885821805481970935997777784741699963356125910581428476739674518229868394430150863429398099382830415373939047681394902127814054868590505259189552665714448240556633180166333600079374094518278446483531988789156736344887370039535994869663283603084269944365328156183162216958238449086309035768365575204875227911988360186833795813074305161487625656716177015119177627054415319942626479096109283233457873713543696585520429723862429961326117246013301168184645633856132026332192640532664449658132416297708664488487180587330569612840865084907960254558904264910090215720010233135034935335283353786308008087914539439626891891332935609538210708535105357620946161217858044069493942857759071326010718312028995037089147147569488359213089322484306664552202926086204936640528428970389658687041027698387155709374637981476812636400613046334479878939072807954305587307863858280173080759303226363804891786617571122689277373163137150084537134383793895012484683102850658086453166920201613189127319985517165602922150177652643521184715164084935809304417011436451501466983516268143510982249611275793591148680898208682631964258946105335445877829092078935741578080327779414389784485561920426889569951772282827190854003470145723322032983032653939399754473130040405541636827456014965180557871756017759931007710050065480557594808442202474108801118504316067758761834696635313702108308375919148152248696063615384023455889525385430108515784165670059167125033318796860416857562937577493140748880183518676331822090794423596544048620118560504825079625067993800713682215547564092417832453033366511226076701658452258151566260583158631126461668560911760059037185354342172548134716291660438462729148335174233015555221472166683676514320114411530003771679048136931797512164839946039161653570140817837753228151111191123596726643393966240661427061000515211261279973331387787693097539328311207122103687537973641199936685805866236552128309990603372501018970395947764435821985647312105726578054020708291512110637983887133273075214407340058640448276003968431872736395487157168133654646492422209461353383168090307419762380220518983297250356094456344566639758608298216095152962420667437684527480721438136613618179857320662005292153117275037766262853295468160557241101578766593563408577577907110174737204208342287492689677204072361607610789043546834684531269226184355353680587116631354965956217661507948331157055954785375541980382070341409898768512910308449197953916333105806407557264584718738219672001773981443539244591179901438727308918633113747607402113256166667991775433539999106358732227866707336548205845577431552930302081446955283556848929065822251111067749373840743275840056510844996576748049808395768687402069733369092179157415008571721078618060564660054308453207407431683554626395244299843610027590170157300923011374048790305932586638298035461650939642104043347391814688131828935656229230255455962653258460293391449778678433029987775442882631577569262761834586187895238818077595457917855027689022469075193241521053462770091355419688142021598314035966809743332182755903242016585160555080096325026192505093677141490560558792136162418218355146040066611432221805674131901022378750654161738146717819097889393279860198158524574563636260125452734016791668300273225340661214446272684646925062651052658993078944751087119022150545626484656866981554421357796678858322969599771275495343063786994824621166384585374680675635755986102926948358271297806359342484507832530955531318366896601035535662138169097261600535531604702352892506451112065350013414071028933579773248424519508873428291098842821420156422188210579864144592281048456431600391102776889504101819716891074775076640664357676931140925813558553431581371765072531897656049113978349662904182737149844837662181654643668889244541798058762991541965690557382115089764485498352434595075802088731615370113728777787590391112842086328023605263079567813293293624848387173326091190298097919266964572936743287464250529285965002210545943997737091978802767524187711882908292851464334149838985299674428208230144865036384821587978718611474558783898575165387639922956202510502125423902528589187560557786853459819767710985615484225055500202300963944215824895030074851352140550911598070455617863778434834709110766572814111527079141106866011393313215485233183440444757867769919503081211790731614559253727950805914257857489832671005805621271305777187467379781218163158831564629875328881305257811756201874318206129702189899552057341561827509556213391857603585436623322456957222590665861881754227752284297627380603711003721264727347105708682568773535775819334966100423884512432179935443393134202297244397370902294150397325083418480171971431850371283985828026088779143386674413149241430465129567053663576308149027272008474995134395646310541793099446981983801123388750088850593167896380206617587678972555697195394493129563598120138188177922836481686776706696485775988147188241542419784165846931627572787361141413327841406307055309913565193364698844063958180654785789228231236989820339823031890797997718156472251117417791665745485788160922728262986546248081348974732838605995841707450820927574201630306095736767625914859642302766846743716832257468986314157657194975991335029261064771165179815299906586271231420296844799062871045754251120565260369384888811471418460536507144650382702602256511643021644361279599837205241434740553520061159078541630337683648695795737635770453335698869872814815995339138182945123183037036506425897593651480102049267885757186232180375220123065431532283318927096893312402623344620503303192401496672177123662925776616325255717336973645008893528161830077501721138230913783871203732048728865391125757631646607707746719146003281098761936070030616814142035046501983636730884738708082073740042105682881920968675985128026919746976813606653359856428187349058808251961310133442162552392213678451107334811549894176711037104928057077012257422564639781846817101094663261759820819712977987605518632674974967276668714868525582619484625197839541179440586372083635832819990889618118552354847507196308721137574190854549611895151770288921263937376445179056630309138605152386167385137076275786850678007239021113729205108742553753007495886895752441948845603242328300632756953387645284416762094231206854824036967681318547832735309305869466383075673644056444706720778344888662830543897930993913101936043107535069663398572608623218005550985576361331766709935552479550014012844186376910162642051832040921360122840476192961860106384531191208110950479713592883856070712409551618704564449765130288259943255724255670208880893614716321919898169553835434567031661732834466048200396465655641318448830584705182380779099940718086123705419571054403747928471661464652242064959418065438506313284586528383678027925971549955454182315624775657484162958762354323958505889796505737418942460672324519279250137651400613472951847455587575306831340701512786825721845851340843657678874994494591634065071270626091156617332769851443317591295213486956629023288389874317588731121593933493830371422440975813600000218683799800133291439883864401325811609248766834483974845287320456668465058599920000781650428297298924809600679719320506857204427488582370091012688057814535901593772521550600869219572899598371119738052245937656343027333457513990060476450992504517870989508003707425960778550408328153562455754068778644209064727521295318875339489728811992331099777563595170740118385737451149277587552888538744269053407179342896123651958940939551311753322339331302605686840596211404099645097894168012488490698681684991346734385721844059016397442913749981253187481705047256228206411512021378358165043028737954295194430753948577953852867527160932852042966094216096656995268764874685017564366931847450188689855981063307329422546793839922279694745620188976902379515626180041433821629927434292734639129760823986913800348397948783102785795721181157266170558508282936374807256272691826900721327092077761239801540189835180861948970387660403602995308212712015832112125390318532925186290892109857364952491142471788465875846737177867301198012886195392606132648741344731747610910301499271846655735096818234360372235061912508535611149693963790909729681256696585095592611622774083517310835850879655893238496877034517883717050142227819501499517019457844994795178450765578456678287927642539775023826316319368108849351180398644040764099032895714978027605985364118784463276067331392284068321118520200275375463464880667249186665029202765214642737097643144686806129202834627636645382237644871792791698458328194078626955143195225796332801255207112894371674914353525676028830445079671928873752422788892499703639540196284728083366155671268890236929314410575925551053688636228243357383279239262910934061410421493621092093449748511960434782924173314603284469301296644789707220464256738872414620378977345627247121596835600102178366060382536803078128903579937066719129434053123566528387017579013654936767420772502306662258986791567443802315156353023287125987287341166913015821686076676485543685019867062467996398424571376963933966569508607177826580507115123014597640249248239406788471890692443170578294785063152938951767929048854998966894473800168071715211878595138393427126835210422544588162713666714944470361373235100467405461169378705494470832349885355980738765443887460701424034069799031852929518258785072379445001923711857738693714346415109951776519834673111068181681828897620948321011746393445901753799143503779786424325227129939401041291459383642300411378283990159799436710364734713998222544765661866128900077456799861226768821540749911820345755953366224862592330060769185035181770833710581857051853942855952326394192792607300179782396228122873098216086002143516821758523110042780262676227415130868806903050991295338456746513039030204337658405543945212569792088368956249134232088663528833147023358615407111011456190342023983720758331599102945398986162492815133827425508404281899389879974971366366302098248269557926699060198157501623927029123277082841530792246075918281132011841715173862685002688943808401269485892495299607048666713512739214671398353459184433706673507173557289205853684954195029856848403604121662320733959222835421431962867119889201855249263299409965611477724060538619021816057293567163208414872135746799498717837335544482201996877001634809236441271660640841535767234917461394712992502247173562442053339366601542343846779891927159595205482855406128773452044778197536969035205888535100328707947809325428916442165366449906888688459628121912876836399676446124155236911268823843187094041047058200336456991162368458509018233322485967537785602867557391228075369722591465707222946409631800608667709483396556523138101030029656353917158204216886574200819029493935207047706398400642623244934862687011018458052644603868930865562464085673579457972661214741663548168855795340568740401973913543669216414546469086491816726743212284925658472504476305990275426189467914896628129466848208357074105961448374307509298474600976340703218098578682611197814163841081831741342109134618296201760380713541803148672026059405831233489331295988103201492128507859461278217496841952425437179903757350029315887191998059750251390534533611645912388181101185395260337648312543940742642160611676752528611249769714519330385403776811161323000251993071963165493717069496788246619575215671052020097211729749274862882243814377301858836030148364145348067692637525200105228240202639881926404947043179607104031815616921466063911573712796795255636996528070925731994470307701165414638985494834443957786889911632258773795991144514440891310281910828271947708180125960044657446051814030815993690973451429776869008092095542461297738482416330339857496203399305618793134996271535894265983934602621695897394940948532228515134745455390524261985711665764692332494619211674410203284903075160221213945682263591107204690216799127036404340955318512565943532073453317382652084217205566182369674638595573911393425090668605896812735178878215783448604841318818084987502148495385023813340628662735760157856260018816052272704212156338117494498539466519844716532962570094536440967314817826153157863691182585262992579408499169800055913311665875199154257995401043742226324210910078018907936220787111186544436401675991773417404877384054408749026989487179395174868413907671218641211377099451613696868939428456756231139012754803624046286882274743698689428574829935665341764175496608195021476935142764219143545089007694839306012646041040738336489164896109260301160056266578145595688468392691341611401853072074256944717942053068434790846981675727723893558604814596371574911206646997032584265025781986839143316972704649159302507394434987586955835746066513973519902927676995845582130403312409855104266471279071569132428387544765693337254440765221323524942033077194184410511280715380316788829475694622546105481835905713652247181583976525545084171846049945778531066251762739356765219881519706803767042310614569420748787902600313194153563571894979589015404739841448262845323910306322596884624143515081982539580353803055988265057293071611593329641768458539428045939685978420812061429610998828169121289693509920070791553629922017065012056564164602767384594147792436827787194338947574612017805466964188736785328438480129654107329215770391809537081546224488303480955806282793353951348185267031282677973048300001471851845649617944133079778463490640885467373306588187612866442415645419319390532875451134558062647681992240556123260810668565351320764253124217003781548283413126441247225950394778054684751227383814811094470231136805046603985752533906063631038372710840858764870990741433849114809233995288238291691364845476685732927362802454378533172218459160262704918662628899188427405792100783325100315988217196459265312676325651891423174265706760839034078067522904498952475801227723360381857584962720932131473429381564268107257919227386302170250671499025224762122488449603701892767412747822197679969312957543301139510946460706280268219432906006208669954392244144686539108555349466447261345383483600132605530802425420051343667278702581603907400630641184330261157456140136802605770739790755765423458471432890992410846034487998802242813185058400290934983311225717897309844471057495617089563846278777577739350003173332327268824019643095981859013214332645445191521605971952239444218457106964244103023310608070950077041035001172462043465300024160276254952579362457465467827129266530601380746303271598194038262869309759788107612066036228365764945208514114695762196349140951573598141262460233019611161651229015347637352898529654221014936645664947751824653890619240708170682332929533767449193891310879035317228564696348008736800155303852991867045354395960804199435952204133837323657562755266916647553587180246097667261565622337160719166039483681840599240322237140890704860840854733103247062723674662165717287014544263181205780483095521419322823592347471304670883352961500858178733555008090803790811931745634776839638069081264894183925584275487367078307422778685347615408572518322491900785522670209573545265529210989873026913308226415443103663061528460466557716933878824227515027125901396437919798250469439595071281694938741601977157826708057203483903093650118030351625495842690348394867329767303141511273193685249993008338272761532442071733446634395255670052904352484503691923979775420446884703417282840717495339954003692582599229828292840792441760577946224824513450218877627131558144550902416861277565999592910227656935237050362187225767958975375704110141924245816498814175408159271052363830558495349475613691774716182443448552439065314006329298039471127742165893777599035663237543649678327617687815660342646943380402293021416369997004842615693372780484444945631713634249492820612898147244308031956134181271145857839262599793308050880959029727851393596563931204241690618435842611903526884824648685344100591115051185780292074979964649249053235717725295029306808613274269503311167957782495769612505585127162996823853167228913205682012389311928322297928930827953296192068930805855945586537126591830054497900878991216204922987093677702570752919966784117689359037035438259018247795199858034646979575902236516528827821316099611890324121935313547840746499470002506552994943934320656904817413749015495488786883361384947453503953178137811051257552703272310883063115802559252059122403002337596449952786398566216599402602098213337683518168315367700535320197619901269033252433017620926979736299601766236473395780651623772574678311155049279852278060161930589410343155304252382831158949975940734638976816352609980678917365727012038434651456940431828295417087042507984143756497019586964184407084837327956566934136741693612793455237661480623846447685142615125308529479161415763649101000862945535748646702292823750626099104447685170328112880539207724178427367863111552793779239213695631084231486707982341978524316811831984624395191663376295547356779127544094480530266538011371898427345405023881166079318298060904534931871067291494004132123643893445042759665144057454812558925280897661991837159202086983746278454170361185044069349785531560887237412170124985492884143727998277429350524545815488421400734383512570203808844548052344838473285070627129784452009128815578724506377748408507748297568033213305610911260548387203697087941864083542435979775016961776321489398136863683087160902994134955333994746816171167247633168354566820913508551295220801091959610163556541135873184269787386044017804471137376834731436080238619238532404910474127715064482044804564087296705283739767464191847389192499522400585652929448280634542157313810732679315385849537065308109691554910972461879704369183337047586982162989909205870306885949669557998096380916194093666224360317952918392004924677948440982300886540458268609971572098169576839148859990733266857444998213607374592677939962906955553442221500732491276630824864232060790456297011084645464571896388193282001568077845446610888661618821825457488220300670642041637704276961018533274448347783483985526395617426717811451358761041817676266136783188864990363696269306995703992530371942153796885683768395949756464227993975253001606551736398450015419515932534020033524069320199407354011579272972482127276760445360281294642041265823437720384051397602009338909158458945209853425286986818559779564742927498976794632814619686443179950333760950532656810919878086187553167710111433786537411924962219224738724701536857405977170045718112426942694494129469443639249102760018928471798025153927099752720135032777384270619487923380835514613356684021714760179599829214276744860325649466229446560806192195833215415508083615571423769702408063177363045243796720795506180357146194176378602990978803243247459912813509813089796784838705962754847332638368577977705993844887629249987273923543367139880194562031489850471653338449366181165448102879947593738989694461576203604803950988184914378408460663192813034034208606613213652288415975956220388422405192614181624466732090731176901993845088208615080938054445852346822334869829076143928711615701774430243511770696535326799553529746874477568006810821720352026459884421448779319909186835325837242751076748062582729569486303671779045347074440063257227207584922125147852347840914570997061356145550492156950486705946353932993807975084541675433788222681324852301406266728484386146542914829718796506511045503940486690944794049010910746405548561190858032796028964070892109693110062918162514738742546686034697446081310724319195523025013357738636986177765298839010718236958395277470809431784625954187850297631969967696179844971883809607962954251657347698345528485273424226045439795579429141949432553609406475323212251224465684901389380639477211080917612044948904431754543687643256509446337737775224371352361463671016691142410968494082245949806351733508997418921584971814470798963090965784883988906471189343839174939796695855788698747848550160939710255397147556740283474393692234442881517030133772330987804134375078783977878720346109107178615203450120861925988732217194863478547382997203256848511315372747775327841432468605540358271214975089021805165390107428290514785853960240821111737718501228480407155793534006273843922661130088914487980003146096114841138644906181980620030403470659509425901994097334360752935369232784991978324591293165566809363696494760963181179959460776906912098906968743863796208720714002386417851274825852624285909827317066632002949395333383816659836644022917770051433307365465350907942488678108321170416656129660043859604007181857851243162883569691829474837497199535402059799356634868358561461089018923335959374977935787156796978140548969201850542882143598710264573296300377355585120987823851335063091581864630291395347991660812464998716873914530555331768203460003858818982624796514751357162177203303659086251721181942529228277792478080769965357356391978241326797065842204616453441153624076020470458173390332733767979801066738474565876735201007656040519833821329180425496658686529850613073382351751364579640676905572958332167613554493596565997185929224277656370028170497767439931503572770449540322309707725613459211725177228150201177783905547678110711100704188959661693471898863576725409230368026626190527312526163728441987483662540853839335903325654601906691815856958052992746303065764443473130005464909673689757753940820125708581294652374900803072759003531098441529070343298348195177814551551307561301786709707284327738712688072877642368981071771114866756387593856837358729507821227936797252067715140767028065365853575085565198266467595547921196849341731441786330765974180156454267067438490280376904759350784607932610050169427609416245298157208070363649524676072882949175524309160832150538392376971639154758889757979562018709682230442461966527436053589538596792234797102032744584186150500071738784075795658618290962350898159843805367143020269519241631523434211071853174601287534002415164019429865901793793874564182383506877536235909596605641143064762778816909403620300672647171084029822331079613991791566120549446088783464454535687224733977835086152133371766224223902965784765812846549385504307464937837868193208352454779721165468116655968207195605665494236860430551418493841630512420900795380452649441230146935987462331327634218122485946328697904274223669903750437070001740973615878368978631351242072112249773718811770660769466821880437092988291817287620687124695976687981512043574314224762153836391488868798525895153675513918316412527879627751706795416511344197649602859253858069672642312507365941574245608059048006902580054288767446047002294693564524257772727245608434256435653566915166341126924858771629520325815663204705579269514773869411844307445537226258268168515628073537379982267393343002003782746430136882961352669115230456036341167534362727804786498044792879616688760690903751733873753098433425485759133537215105868616775703687838501000706594931617682238677786083311168370700194740443476323639643136336228279465201020596789842695540168288532937335324360121154882285207523239807532677539531906316222495578806022325089456326961006660706775522107627298774758626980556242527815937028466748613575229704461645736688046613940086081162840163133363694546249953893595731150563237238836584337110358713490114666378412095476962460235814563863462314695454484528034216323760750932866913078365470710641899944187432618039244530447456952913170091924099696891767889754267712367020608405178380473493855024867677845710798244775550042456136684655184053503381121427879784408340537982281956550082267960811024288071109468580785276642840517997781296258894778866845896848052756742235855385535598419634213786489007851088567747946475801625316848582298682445074114881569791536449604790275782458515415900812415834664430979388644909538180469550847235481345113623045606114261470006851541171531307187561975306148169112743939442502272755140602936928897491136901477187994517795428500574101458708657491474725172291894310469698021338742033462029631288658484422368041526425811117713826614667729783039990306635851154685157717702879705057234529544946779971573050653299037718836029188588124821066476404043935830491808347664177307844474207626967168660464552243472416374921389189006126016229493639814835176281616394558517913327412801756629131653862729981599771549084770368419114224978174834140627323968216182729113100066559144475110518467848453863625449931188902309814198953869309063830756435716507902858373681958947278036880625575582161701363562974009275671313025127430555497314486610079224609553287738968908431969723141684194125972233038574664621643662410677060695205477199237539329062786821240843886378537437670063901914486207101918072406703621118610401779864898643817496716971460497489289465162957056165807318833601176431595603483820246743256752745331518188855246688147329974107258451731321936227914860351550634548849602241828505110409428334544270883557934600633439069881596398155446920465831613888919808283016971980334359275301716689354460315416925008892076312449781651160637650379165685233112383112994571755583563772192033392576837697052029147674345688201212168076265303895962059483311899639436169670481222362980588541865984648383233659955105358481995922435944632778746958330233005694903841885190221613821627550765438198872449297782782772340989833782288179840502641529162881490583339663563472344846823854282996513456337596991526638332057744224052607967429171694440602401819525905662922790356492629967448834592546118296145524786513816264998533430014922865585717280894278445760037204426497806620053246613098801707471095315079117538630651196310258589596421787753456222425472336282858269429581655863104467402208436198220879796750842082985834416589208551219928513661954699581185480972129727863540383192629586677844345235958186537444120443544096517011783389233312789627651074869267427157318039328019661375405876969564006593915063603163139748811746635254167980638007955855913626939063400004928829258109805071981396643271090686953283623305882070614862955516810245801625479165151730641132118085191926423250184990779428315790519891114660172337705373546890758231646229586481449245340063603512183801239703328037958252714267727914264155050445559299452674279023285552967932843824568707309453897874256963492719779049392631797431683522116415480963783718643098042049813926639169069574844926580293188497191518672582115133419426999676876980639308065758563092076216264502695235177720805914580230145746556350871202235624002711355101761689215142116980740832259002166791713263579127346234167126679177300633430274566378853598258146275111447071047337444087772982382981184032433044487039952679544085186668642088133099264880800473279186749716825706506039930190280584674762861087171004610056622158079748646929615755826349676574977644182273485356942972937544023384491863156021239609834900877487266121967625644928375405110842299183401109904307842494619705387962407057023938546497713691900459143928114429297372216221891222677956962183324271186829716422563449090648228038691588381334409761258064378399483667640956532231399138884169324700760505909311744375331549235901354250880525786992172583110068987570741191927931249266369384028166788932625677769758725008765528741869738163448052838147454405637288280471906616992418814959760536577242819645067433115487845614597195720387937223499716780461657453963710038279139769996084241948783740409520320648528969928406773674723368400480446264659275231242064797158455403522123226172669959550757885902769584593747014742719087013308535746430310348900821315825420292141557312226775726818942319137392077152383072816910382167508030724375206121683149727604476735561474879912303095884803379956832502326236047986921755527196682180792968165542046270703220265121338823700082773612079502804697458838130302080154240512306635891503988454762021113751948085286140948241362098794245904669676860739106732935831078622364384442258170772375169473326616576216645660255068981954922777116629114148697806180756974534366222363093708650108316302581112859087387607643852613426586639266043886066341777352920078628006802299446982927901952886864197816798574731695460607769689168153827180841524989179372308849804596912216869982702254254540191981456857178854359829163505744946066299486420603950026065596005888832102906109646482278829560599988771530453674143341941606563482222330822558077372707998857705535584931815522671227748854454643904860125778810034237335709408692087454771409440462842492415740433190488400475765039330016379171800573724181092516823303712635532227266807556992654448494069199630609505940135057775623333962661509933930402063472237073980187196925433271175552928694155860240174596219788024304594400620284365086870101792041407624562465999866604642038973572349084217942099318305527667146141122157398634591215876554815721680325118925772972087293500252407500694357649375321076532286098577062260004008576145602007269385254176024841726675957749265267302327819186800663541861496367583235328078248533557415348649412962531179870003878004565775717198147158630329770440960489792382224431671753567988642533310334147877130617990405206645497331856521613305237741452895203139892084517579025913877655629171611592921122432831234348067544191248599194830034195049482486918296889559019917347134687758770203583818370832618382496009613565986427718276658469881927824665484315173245181970630978304385871572984316459314561237511444268522357476170066972256134841808560571993243742333867733284489348127618363272668713423196928782886230758867589162682998345409034521010738146431278668698759607476269750781502279915128051661766465998818842564953021470191144990662196412491596287050853640548374631696084026263665572717205199660436012115384485338447363235021570107142806497043845308484913538895822901767661798070015297978774259558838922330657987894371335759574127323536274512118051341213907444970492531418415357121760945981868011189779319117062477804461720470191251417151072088761713608079267963162854083298076933350981996290521492273714054756732690495867963951618276126590302153691647652103373019963517021373058677244072229093169768595079288577732002577912752961510206738130802548304801949111486122279181485548845398538459753761087055415879295268723100459892396549607711070002781676594221660740778009106268612153562738019827574869413546750950654759638385316215590631296286403896107958982670462150840377910401572671817194427695533272333381705266310923418184667916562267268709971796972899338466815622453177724501497781706798717215114575333380526001902417354945881872460241231793981648444455161485552447330315515977025241273045312555546531968291670337330072956895272704834617410822354446876148031628662510569478859105423989606045113236361401478338741677311322930943971158692919851097556575266075105369522984575568204012398266551300513190611918755997926635675453693012075111454065373012631432078639185829430721097292472615487377663611281205968096136420553713284143797717339263961484089668595383627965540913345975133474146393947677786985765584464646441193583681635820740395469245440863854805771955052584201246077242978182930682829608430542878899820576630354945778309163751392678471210578699648551016513470569315968094801194297870712256660010102782034184080244326517770819605500916336454412759199978218214791798097752508417792694588992782519661623096533358344949493542878255873457274523987480139799979927089937550434790135701596880237561474570777370615519115362482115791669861828633272472522723034101645257146731118785996765691035919352332174899721268525883297038038716603465135147218905194329782941190148480134382238903388539755640146069205789925696411960293136904176632908363903206165755853226886317132195564377120079091346007797627960320676462944843218935044026662030076746509980374632586574411056020793622317974028874128219210816836795349982694852992731379003127601914190172133010043861890140843582749101096984130085507772626417339979373809373864945730237053587061945166659814140984659056439319523674655108636691153339044094603938130501165389079969601543881585582568241775072682481965909079385864832658964738715042244654385446028775253613891675918423286598155623386580962489819787982240222923974139434778417343347978442605450924252390557028996659982071111845292523578409581960204921823830240693707537749702776913420621786600264477444417101109239182393322674290860952964924756444493664070494219439162500191390795767809538062002643875510079148669530039996576688911120643678428153528007625113359293089266457028713492985591310519707231526511983141972568599641049499425909461913257040812896746462122976014107505184771194721464935484451053079226754286960300474766381585232642673914093772285595258101071273472122432516849827072211034970735926732701009881563459069051133025795374805935629045496152054456510778880607778227127631263319231401924685444906459838845641594303668811457517655273001559869717819692668703362522668136031032993091581841831575123850749180293246766401846504431983918889981859936336455455373855775391446208025872003004920000192157477831475822584541288209672578104765864855922675115205886151715505564588453894643991158394292387480440540472765436327983962311606520619584899330424001440323552338037096602150541984037178092694285829277232920284143797622997787095873152356451401653424150364328313525910481545661698500568375673901500210638687779275994897045647416979330776026717574242225100307959292973936358501765409904874608828341902233169353495315985950994758150733334856156442492794937434396389208886604660791131354201740481102641688898281906701980188310301830812980114381760231340730345757306192918463681623520322240909717989804086876610456319089805174062443463963529823299496578900288333050006397455756547518887470671650061091870506038033851855609127434795496699831081204137386253805244734311339824948526433247660536463476029448713255990871590554863800288320010964221151059954831809909837746875738009286068810521180907826065400378359745230877950302522316213197570459791088089939254950908481748788267669588338165053212681771672969060832366750290106734958647875215976035328503324523489517306667062474259411726769317824977342031971544018312766005775278089348261778549702768846765128916451569841354551101915155962418942637490628506689656884629265728684623792728702875277047779499623269808506084755427712404269752667125933829769419706973439829107134619537823882626490572063585886840427567514047426245015245273613080606167217862210517552586707093409456538809663329426032689518516320262678729202051399158651666632079811895658533232837323655045025836299606198589918333499542204250030130583544273056668390313088783357647884887036647426848764731297493098587508095683130772920466654478256724468691906631928386810863493556477389023249652765662989401230258378677454464891403000047937066320306874587228614830283397767173866396253564723426435916548647010824967546148521324644155164217845536633571262954736837336800370029169644394050336272203164567721792921608141826343217011393807496599457696668254187410443055457971455044742474741431589810648743926938034710641810772430512171347560328318760222923430253270921259831767374080770788626188629553182927605611660546619496023551176024237003351575022813387310790428457440321550643331271696290463840556139559996024875088122210844207892212928487243088890782558572857009042546079211059643874676019064397653277015393215644304733050254287258982621645837018902587359629432207402662304416037817490301980942080846445441503655511610549542961764630253400690108282153006509955052093913037369658650167281608614436818981383045141602634751972627106811501249236548502510101349437883936003810070554998503020144914921419630463132399141500700059616684026866654380927031312585699184494002348992964098151759607499508110708879922702045184329276832623906964782100798649584118243941432685769995662669964303665499417176520348699689619624824606494538753954060833894810869995574947260297570176803551268625662241834205171855727146683659039871981476669025463746328612411324560191109793578115981628009852202318452248458613770081177448114288271595709231389070972195099171906319235330232734812960917134975678907687165887352619988769278847618300692210065371912201141731070120519284947582716709226660830392120488511249041001508635380297721081241595760891828570282047554790650589810359384709470996530943706518972371329675730540418843092056136163073050652007282916080044813895512185811101748958581115004168919076045442839101447051566876323208224226989793500672697876023295003003309916297309690186706302997095510011623666042403831311815865784106565640284097412367711526383663676746610505822194652260048087429822393346166876177971821704790580208104511345908242747710639837751189779990827485483407991980594879248214377258905784400455409871113342747881593129698246741238672621517336892372020604699714813192811706079497089131421241282570337755570960421358266279471838763172343839578211519068823933504674032936140324075286153294099369316187691793651474578996028588817757776889564383896063809138174129690484248677666929813668920867729047506640905339047978866149538922333824362356224755203414730722733128793480533428895399771305357615820769754538407201154598747284330279796628533559553896664529242919962450578328456761998011473545387206529684832909393705697716906440573456210276474282743370917660070926911226981602048840794099377053521384500247510307416183456835757813213498920155531638773650082927754448192759045646046276194826663292227947938261134199722364243473495726382826835399106187142159322610520837761502570781189290627078006984179977248981638388864925802570350299147040457111059109654719338594683178814588180538320897756741214395229095243268377729210271537913655714977379046959037616867757495241129018487742856079877053547127003470285858368423557293719758839635933752868274265362518065115106898110391105532945001592353469579951305825291021987394012292937911901488264312620655119246866500639226327673746049537917177975408949874177406956672009832568884269478247353716059812207143833703740254637677364512736257515484995585335295536891951178468267006119298612297757442939641330955708655830064554097424879898377315704507626497287990279273072748268470836075777177807322293710084513264035395295367351312075620015456300627700758318569672943936696346972107873546413065514323069212994753653201379922312488498868835576874505632211427612887512161185599139498886636775150862143259720601725401385597467424049896392835284094883845388935914891917664331602122290167366740326800406884731826074705390204284901094960841124119249746713165202197503318333765239414085071094845787410363036937033527851408761953814961843833175415241545635286231144914834803872335670692170179857757921192342018338228945653301030564320826397440034642490279270012590515597265791467255317976241059939648260612895252108570755554592329203144086420567820754470933040935427885311115157475766861048247211198573724475909863600339799890052044883061035222149417858876678097426020460803240935217798751893769448741602314970310866323376640529782534801925481357666763900495627855486231267152245472280547989901625194415483493844404512946092553342372418342082307717585925795867062848226694879941533461406933089632112266810561244629400683554056932838495642631373248354183207325176995053590271978172982164177220643026713948895281345518952104785223136281163498457839417331915164482892464769958234005550434777885980814952730519923460101973826662751490520764271929319333236412472322206993480682024701490415443830379302620313715226769728407959644979095546026895871799638051284941857082518565043950108062309550292563476814748211465429679226446784271696758855213766992827979289667406013730841603844473780329087300717882216211614823599387843039115735477226545110707006243664833930124802277357794048569347367907110598662007160565443301300936053297943860248399630419107911979926041702384722885950288702964188295981497171146861068478946853545530926728153955915360564852707536761147822485853874967311297808461249909882645623848593250640910985861757914790934780550001405305646480905814065200898954078366558231522848784113700667812758407505656717881859552319093105865205364471313612582938466313946076533323540836893660424278867556058134663422250761607435751466696294218744735700120927824748639692539483092361842700705437682645553688322081952440512884527524247903588185410122157264996050831212099786458462851053502447238297864977666159344411482946246148554927539212550704030440225154859830159272079994599796443969630659501800635893851459816143454608391993703510717354657030053217807084432050903653058559809289618066405873910338213742668052040715912955557288164870079192890352412443570045423100502400391657187651546962475461677382405972138387458875067391477498072369788157940591605752179481732501716031600712675215908285533145519665457756721405028732737615400188508319120404123579242613158475624703208251070910146374297223374600893866917417706899081864790656823827287790410634660158507321047415216318328589477425361680604159101831419738308003233534452811467474889854095310188522660950106264621842004917184140575525995514680681407641357640201538967871176392090389999663004349631827517522557129863741429977478417994942902241486365745580186143580433021676037048073480329085518009572508036129637145765253751929872477425656510898751456149035998586091752747006246865321138626267588366130665194401955573968785186103998267923393990022581380998110653774822969749014623934395303207900195557055539065226434987897645679354962757278691127382407313967432918433692564372616234962463565220810392056427343923124315892504760366288645533062934030730043906074585571393654017669569742732377987480224079820697633336250239923872640250769461234547408121909667344388087990219844588077837396445946803356179095128211326582749069443515977090646419479499447150192599109657394045239943562505363783917862509954113386481990169242882969686187368882924055885146002638694303545108789020456013348719177300452176561765846077840670720632718171597501070423635568379368096056962151341755061745960662976065347693992861038285357562375892333583378353571312773868604022057361467113341863888151180298766516019142549530156348548785204552426104380841803503904793250073397325499749628482190180336792386261596121662401482827227208891037911868019767274022999995592347023661543014732866504934747135097205797916429193914429044401524703709624814597732885170889261780557822795866323590582193428547695636992485327261380178176865026848639561024971104363364990413676427657400573419643698214162385074235159857395426302911776762814131338947308291052910747973677798525390616004021068379541544314825435109482520473147796173653646556063956516101603042795677360705181293613129611632753641270165147221907578750966328701350539832749556652814842227159716613540782129268458530021546988272602300482157593253166736881659702815669716469376811868182751058103371403714080842276379913446210969951322696594825299105604851778136501873150133371038420874428855003970136789465918693796161996734580978230490475457720743257913221619310678060646636868904997348602198724099752358102915978870726255421274785843122349718091735384876499400306449131641955258953169178932585397870145217994826598198738560991392330340915107681997797487607736291688075924250560640711103633352099525210743371645322656186374004876115616599613811926768633767643432842342682382493796012356128582150051289886458626690021670585624711607040206380562210969693765602704339136172040425446932567247817584153842687131322476663341984676423261432248255960049842965343186760785175267180686115310767786824068142019453535110836133275967803771465439707995080167976533829039917785445580214245889025093645126422729391914479540812288985449373915079634285336924748498639500925409238752333728668659472109369864117690595584088910059851594101235203804870034640855503181547434106802987918817191617885310386424011335416973627821916562567976639702779865158371819737372013617092982038278807423844214987896479401496390880298564261686129742259386180907986472762882361264039128540032530544129398235571745651289500612999831046024567961871172161907913676951596582950191445004597980341445905798837153987878110972230860196886483840655630817619488539845264083856840677983857794616913633820031618324525805342837644042131402933775669931275086626317903536782950709517890747709368569161878193162338720518266553235879227879048527769159677472364724768891623205080791576280679886158809911140329799678379185805331506595452880569518493381997005602830154159062848398763628148999717293286148592922330110617024124382521216145425177179904569096323040241664433162641579865905505080406082159146937974430475568459343813844722538966118787336835987265462672031227128665374547501898347922914610771017513182703177505728335165141452563492864106730474245146798835927992377608185099863367272070033792004770996291224411456337710887308778498080680764162964945022149246107415735974882783495656882142886959972322564333576449503608092890465363696132692698436698399334999737679728805983543231051252685575476530832450423506528547311098211353795322038179478561158409761626519515989145622189060821890631329940967714214360518318288299971770826541795550813758022054278373786894445520232951053720841861456100458853733299031533667910539284583270221630173372501714280365478526898150837612176379512896763035764131921471947794362960104812432307333011560992295942659392595072218132236861804379958116837813874517864264490378495869185303578528908815350707402447890545337945798796162518185333596831921503059401186751955799820749662049447805376062317310424433137502647573228114073166769860516949716799687528658262861762977245438523229054024099938332736302677780138857867277476408264606145256597972299291590315436857538147309814954935677474134430289627470129115628038121502483037439411566644168219977633663909514965292154044707868581486126719343082993137453361578987576692872520385943870380677367418531660380845392984179993097598841056742088465581994565493880541870582970052646392625068655193633052406219463525584635666026090057555868702384637544349142292327068994726964546935548901624578275364296567038438570423488085152600529952624572936388598909526184364158222700817605880962296554819376056202427597822896357737161782488593434393612924221807569123372404679338128907601427456799202616103811493219994472024937500082991468884758904058252012686805847714300632625356289971599787719128889620688979383038899922875949627300663598094215529943544054589072346059612182964317243583055689423868541507921919626870388459010206856460643263410002209730223277962293605998779679106488875666506228814267982755949985841699970031990399360100146332034899562447911708983132105619353224036997542725616106103035429272672622080359046153273008331133948205509185307954558175345137943698161808404283287541364380302143687143902317120307474291428302722990603467878448994314376166093260814714268406341576223570816712754726484990198600747432514555629035598412933628692982272865357354758799617535753759588430473404790170828221495417065261812688470108380959449167983342149187665607741738205021065156850681806363805004401682969043077314436144001615466694218979131790168088568685981206564793714640679819304234640270741861082060016343014789953312735919420405288881556299786008100452851768981709498454455591109857636452269119376370059677426686106134996833927879976987373984766144053060382669266146747285607952127660305064459427170992460021543630335308260248227214821826786689699565956627836827566624504819927875649816350831596418336167459874173121411631213288062036816862447222864222908367343475305443095792712602967176545315798115657772298704799036919633318016532640763426844119956600442194900616570199944430496032301136717880581515410991017668875374710261362874056554013682283213018678923710701485576432328782794968520093930648657646781416571970046286805853348846723804387703408145504352590029053999529791180482634320087228849293211432272457307481192049565055106517923588348791523772323461936990426023006448463179242818717737716768820048811354722378561275318847104539421855484133140000068332564240228138013870534696934911828905374848095324542483386421232331370470450894668354004636031560487388883563044263955558358157575071040426375337037197370104059506549494703160729244273888597264362383362356905723059734794218105890287965737863335173511855564540453119412268785840518764998401549476518914290699461300133098560414228693018766536996847726748126125089323574243896663643108875808954540209296542391994656942347037192527854541323330025041437615366032566554194118678086612320655915176301045713400138438000424654328392665802401244629549377243444619187335512951303822552300096335160849832978506266529104130142628098154477937738113562694069917433697977234897523262268788856409924877964401362947019614252541383091129583732702475894418116289561575716950957203172604654302303541584369130653430907252434871296670235053150214045508163903751883457145050065891810184355565756630408044280362553030784480591630457995148211578952867353668012421585863308574505064075115515689294534389619957182154323608664050153203399855663731634772252995363095456125914777667434831618243243646564356608564871018450807649915457141624182337259488860968259560124425384005558653593845754426414610869767230721521557564109071213317847423762194691244093239504772822295058436530522324118180948987305815788157887671164131610798489901771218184335100102723294548797222153175833745597015586314091780645976975291755755585188793158070954418872413359704686885293889628335319570976367412415630542353700092329938521253810680605855383821797872750851986672185102784397178967239736963037299337266110243926639157249230981009208269701649893171599280527912165338486366932155737972422322993564254858994823644736862255672076282964090055975406590035229830690457641529289938801381770790104033169297516996634584758806516186281177555987911371598102266709358549217767418448447589186985921598769195078566899767129176396444484205298626585435498422839033407747825786234425007222664344138451428763776301479424793867571159956552302833781407165780272037101030035937144388251378513132511822848791999132097751697805626690721557730082917411728370577250430289096287123633740510541752265366901418693568204970911972857075048924321799137926675236884587117002776486979567344211669178744491413389643846477308109764202160458033844334147345093051747599998155899773107822057849481718052300025235462541406394388584860353764657748675915729619699371258313224718151076337511890777358131327869574064907247762232071089045055530877710566085867995050959149779314933266573773732088496178091409157421977281527019052922080367995751702925413315934439046886467191165630507483055158595544072795724381698255003028120600918154895024567714145813774402179876483721309886048579736053281490107323246372050596966120277175133318369213464925769576907170605229289597406535563799346694527503467052949590932888335120696498893524416698671063787858034199703795671538137638019745185440024315538087094286731423364774262182147446558684059262926070403417767854480962612629296310111059627337168521291470136507203816141593734897970742971240533540429580550693985097098778509513525839994889190611643350425766152413575292164418783150297110415249804340338569532343543375060057904449907102676709069958680131238176486888412159246507987728018127525024707379699066581971583249012645497762118903236861801683630349524890785279048256927637876366420427849389623774930068700168488178967226346837493265082538975699730773811952549216836119700208782437963276686000408875434638811196691198525598619807852814988798214653407068059417090923818107913170906731484184353694553672509585569209479655004659866737561522958306032880459767828410234097368743770123548584909880015200508196947466860725454713541392468919131249055357031315519414828300239841736858521816273429386866872043700063387878451187115065537712701962132931768374261876437037470499298320736621335841024092806695831124302042389022011035926956747974957454969537413013855833216102575243181559524185768562335732114901723826150318150423820447101640679958588956652086223397012129674394521004318912128576858832540891493561670566330581438150679542185858831097784618980296225294770181504588240676032169362507597701415806232577916091215677881083833987627611564022729732765166466084739935507652490679720957119875366784365658355910784560559250500699187381085136594155006098665802926671612856927187759838901396338180620991679001316304827707455923012530560760637648136850021569698905140921613355848548675683804020864568547986496611437702038141847213109967312706486689042731662086441338664344570772731790437346987276067865328990223609365759089734392674597721063985988973826308350540557443810144948745848222024398640790832694330614943781236047285282649468004364449712313461673922379638632609009525785316833683856380540324312726372285347957773689629505522623857204273383302882044583310343421840546097658517562237015607091753210891788351727378346508793476022741145792515844944314185984847721205283382727415268284273668989926358767464979261975485468378675340316815774618082560446642820184994802694650276893392084343608026470744259472974233267648033011037030151475942775352039911234336079363269379227414450878011795853188818656777441692302970709088245096956892065384081412318795368508608573549039584083840301130150269939750745736122941519160501308956080712217124214223576391382612977106032403160362889991525118387894082204680264778539441939171985592892861760962283424564260910807781821103099428725486078376319485747745317492902592884530006896037492878396965053120325332434927932728066732365038878904036759643718117230188414735918530274420639921858232225034278934153557066223848681222840353682696736065434468051812922370755200886406490198795478746747486146523968055405956441205170956008380908796681461931196611983775354973373280367102782497250806869505902131055969672171160000863724074144999089217640615279688122744255896102968501778735536655527891157847556671407449579979276800918754696107466172542977773619589379527652466047941977277309664853398528705417541641462363414588072477536947284883187672006148379337256601424710850033027880231974138184424948799588889576487765773480051302659474081221004010502491421789771489794093218407176561471367028668488626337438552675679564123800296046890574637053452927548205704018752735337478805707601357802131793365670286882789643515352712325203347696221201098644138589352385568147922270861651514934518292347768436522740604652358957308275139830464613776354533737178084154718407542509018109663640076515190369086833466554665811291431689568446922939718872911129436310515053823229326974966347100791029986477322314249421006920142968267261625647445410610938305574534665308678443253211109656653796491230338594712702697486360420278179656552664003512706556199070404497707358561476087712610343214872710819410116326036342395564789326498519195377665552007203669063262815654909676013523749989228817314879725023747231792968556973946532305346092979008878042920107793479721922184947842700901791400668836054178141565311982387239195927963791046461327207762946378243610148840406127933593450114901481837860589002540258083299534195649188879152778290826970673688507692869941019153178486767859216121323080029754311181859823303717337769733459613307387024916102673955975454074304463725297232207183685021213463102392403069302818326071262592552361184195229949022170528169874747680722110961381121187069737270604935602192549681373722081035644386002581894477360823721365820286392720992753661739829333864623318979914848322309941741054033725282671594688624136950424495655514314963967864401563397434180933522220382299705910423899218383159189428359970706788748228867715428554594013654075287707613412898248425957542951658936302437248645462823652776785122525214312590025768552593437827339507433207383872028309352239585963234456458407259638217618165083552594613872036550777810558104997872010744108782465558742426266464867400525611456279496609740077983027282728102934728856858052431237210118305454135432197483628890885792845109108047443924603843151154482431726271517629888256123482155877365522593955645779494535890617898257366070662835490140847678538981706060156609503245796212749490679211629758691718935656202589127443956202961027932366505933235389391281958827399508920030323933383198930180614919777390053224716823998931977766719051177183393089527297196283466145469022271382308464187613532206905461457497193957741942096290472209713249171807770902153891133646341914172048524188801763672739978858316713741289570768547377488323458046904568314135955225166548498971791495137039213378571919084277807075490045752496242620250129077505555803609991089996178399306844000522217767734571544999597745490525606033874862811522428424247450727772200652859878072036129799457847682185370273554683534633097623691225366328942899688680559403536932018659749656069388509045958906906861282780770646004215653769670125836390260554622941984986840062883113079819438708778416164255206082464446902063915902446076440987634530332345038266842538815714523968016697062762325500085868258336482846159871943925318278042544590693357052513560799972665348911858310268532488211671528402747253665589246030977078074803568399828704753661047637243176059819386080555928899496697324397600078183217193530436995535545958098438195323626016710655997555170853327204371704834318217700267537883925844204995635467325318494960053880169960978169535237619856537444086161327990405595969623378652588066905263518679607289764967732055212791135476188641743531358311750841788801288166488397845808592190135896949192402818201897470150067523779832042833466410128123371330122533206121816839210839178740929065241708960696057802288064376430048671774172166422099279840595388783786114002611228615508919001079147213021551123243707921891211193842723932802341349276720081809962764804149230052482061525819552159275370939512843424149386448961517015199104100451476519159457353207891975595685377687840123785704969621385668848331237440240997670140687436905509284216958116038209965560039455711102679719619003160680963107524432493770113616800522793860743200489791521521809083192982746907575859202301341497616452159314304857726916322544820582842142038002181323489989203861721937090692481246117768880862808493648680032050047457714123161161436969419269798544100900020621894644809444356833025806204433035443634909617871688316815899809906641108455179941045869324306886585372801878790775765567776726058120904409298347539943085882919461019480588624043821125234199378760185037537418293539326430993699125164598213575958938578733272216138022684937420876731055010637852594568655686268487266777650985626555429335897326642624851091359717097605547301031666139744596420684574661515679559272688254095342527132802174225978678760874074371221448749945642646231773143643522414259396726984764787985647239694908929843232582596220595344018405504032385084432913280436808966589953106342638153767264637769038401727628116608355735122153393213907802289173709070008779251314001086452056514486409071747993983866712187782857291405133865739322126167058191944704342686367161580250747039893693490408299879057783491640957293339732743841688353220908449944507896276875034608536719062044154962957183241330764180981057868891452758260112289716004415270023613473065863032552683001481162616471736425350366921847911781937598952001556970968894414806060984858485967040353050683905627616042808812874457325542506680563458030638744054043247753481781336299683310923006622791907805229157361598767525833717580991549691702154037369509276816030336513595662383065057906492395796014266462060682868014715217114450957980819700976866133399941927216529036288592340693661260588762972572473909300293843435365885420030454085163486575304963919146617086088527953406763962738899907858913662722975643196557066598477522887563090966653194075889010244815471484094867647917981345013579615191821924941807574079813444821676176792248834355975543626023007310529325054771041220610521939568475046706043543409032486938743576489483328776502820057005816601229407799897573340422566046623769865179042817346872784084843543134206936011735889116209615625983415543312826798036960949803487390201049124872916668216343544508486068810314285040978882374688325991246521884273901371924129560436977220669011976809397730713180809654373227884776272760723379872946689411744757521827936893015224987880751297586895846580712150378946733884903566294700581297461301537803348181033848877971058361031990460024612931982370957879227643816643782797822039139010634160884332818974286303772021559858686096995271537754185702126108743191506932199937947941204436030314416272541504737298756334833438859643518138589388699344026133426092629791812633153433373288115708537185031677723114886441794448502263708923251226349687544916246654076999728035001376680063427258727164048608704678589626915279856091025275413000728187320743225269901251629666836053131846916062038652917019446129359684937621215808338305168046999638777804116771387662662898560668566308538884495444406836725199662423415322381820844362155005310475546283091446078282406810231293698694002405226047806394295002795751807440946857150236974316212502889408144918973133278034355514156036792772482597457046394554781998382630648597607532760794040249977377912371809990158907571033351780885433777087716932619133176406879388910936581367075599727288342745902525809476079556892855625259070174183858524052020673303100864090417847540867300361235760872935589457866525792254882300051738216529722998662422369203923324474456170296039739962596341466209761349310828744226075574925767145101150223933861833406581785584372157033582818041230688186949106928529440563251525217923752061525138997191214476872083753428353197699444351230383489258061663510857270417231670125325812318384989147026782345883462621938131066693281610341482879371480583553574089131072574868846789978987281748591891219956811330842197622169922954573339333811683986817882345707973783316289783332620543453343453080097957511838800097526192261898644075136265652123064371332865021986003637821406839431532492947948978222483679859655739984011431840708209075081174409060496983031202934292453980832903403399560999592308633204451127322731702075452066619307571225686855742327959993664879746686971080749732347706618528498911926341093444856314551877461499587284264808381051671973471501430590345380194888589118397810123681990225367727701187138187180692912349902724309695024987804170210741784368092769421439807840989722350066443633608031118550164972948398719341327601282937511005188573628721616596081482712045379469321725014732382230208607819791052224164534328579123424756163794547445649607247512019359060963424267452727748726394077267829472877766244251052147051937729241129655558289523808678178072839749458211187466823343623776649282722797669028896226416479630833461891283173587609561009996828597931257497390508297375182363625367114666755117478606040767902180743552038775580209832067659809243746427098358030987556249486180239823307961011398856700244182695271346356970888909363976281768136037354448291826820507035035371976241461526183555518285728813581904915541320037260247298879196052054159501608705066059630706468753281474858325911654395969495676205103905696487070180219603642680526809567904826408521556413918216634375105810249045109488139380959956202503774782363086500616019129429414185080712730346147999637441824307310320984493044110500707060733073337305538485224528688868176024085553692555838722182523595373107281240858237537608637916878237627402488819379913667139900766293823522367917886393567197515932518877822771645324850627728814905620895034929587345870484760764688436084006481080330043386194388769706262123757171697381452810526595729104027762745905563014623583122732560601732973407349518119362916109414360420081569792420419769790550355960042441190239259878359940659573351834301479770693463592035749384441022498552085247912150063495355110859344972676094874535590287281687256344702925147201471947264775036552436881693631464176408564958659774001538094493058523432031091409958073353123989261273680758634563213959115122310696252607187621012488056545617550688872893818895967829447185876828556690708940249379375106794365170199715071643481920147824031643300800813494221047740936701465258442533991853991047000193786214278597160879282036794879340195547468087001121462260245096190762496168514261952651967324517791231703154953254676522406741901927458964007996345520299630288855308456016372157813223835913972773111640946732189575107411988218900336949182858059041159220788270468560348239556315027946594297227970847335122519096149469989070555972175176393056414651897774927007501309472774203929118112518172795041799376253323239077456180170469169429374506213595011488944793642585311456930586173942987731018152038058868820217743531110194060771126772638802615768813550940703233681944381899072942132982087472342469901212933028222540775416248587724538939438297362722886782381649271464737303339740838426945389689918237553183690309588974798128867438621120245484162816356382229275515597027178451324415215012982331582937861598260112097287018627769081405115977816048664440964750705697604337119285832235497987823378636843083718322890776047725126231459356240615671199481821113994806461917821970530597959410994954319163269727071440477425872287365318813917325188442953483763958749002137014173054719557865310719265170274331653104171200735632126768083361171537018224629634753630151525736435222022009225804714416005551665717699883281186994973114008107255047390530408886804807946046412222531763915574862587275209503558921614907220306248071797625759626600019097977286995048892546309967526769537993727816960805392406697754858320309295950142746411038265163144650660828997606397865084895779088957226872072141881875858062522624975750353399994345428860275405617872918406822254516519994115874358585648164785140141960855807291514021824497165146595703604805865847724339744961427127549617325865038742491190343551965378109227873381221063888061120107955495917998572911877035667715150168617183982725781973678216019028928081585104969585498349326433128981175017893565935338338674908528535027321469083042986022859273555003240241699577348644597494587185392376666702759066255075604093036091979351427866618005130633246142035771446179339786097893418494520681544728769506871852508325636079798009031422975367768018185197855961898120223115541511328947315285356969355663522734933071159598012798180921170125740240772753341654237097707955239502323584224260298090845840489348213392356618816748705796004628701321862160850793969012435074183551701689034361193613378659225838805710992685012995651973441178336320583589875706048728017907285730077281958272867181757342600238244434693143185232259634115303496831376271006367572580083381978181113848187732771790763770292907501742097773092840403804918412282408226525807960831538882689020479889778753565244456517026783404337216740332359588676558295123963290475766314325054683864519194156136131196682315318084531898233602404618934063556173611415894187356326245950052213137545010984178308817611386497814526191256761760414297171175658493804780359878060041448117177507325683038076824598551799072544857103676051961794075459195562930755304365141419300708267208638668023732986200638434753676333846821572502817386910850467346637101356119955833863781586245099415548037547461770070936716605203420065203904173527427263148683975869224163142185632686278107190885450948137785343565796991099280581526176977097986092376700945232167061125996363329908963965373769492022012445856503763187787551590538421959461123729588429271606935542913010489998817835561886067795555824086188448893526142835705318687713199531740499949930837110337412443419019825042164708648277256959115908729484777361919564789123846062911894838464787151318258042951013937231979616353445392428539369947564804495769300613855206981177279664151831279756368380745073493168380339258944986113000971127165712425642332449570040599699035374824208944520864629359541982885371136872077403182052076599372598768735510204254294841531733274888490181426904820691652528679887722400621687145244192293974058003635674757542725497622896694400087415158462953766050385670811038935185791095215381789925955222338746255397211284473090749618377049993197381080885452631789261189515376007433118600832896478053271729986452011709295231239949513253356642028230811806881652037317593586311831391845090367034178734588723736809014412511330191530244747917754796629785770779868070268038239601099276743985969703277572409553830151450019229797671524234421901659068200701701014401761954891285933358607839448727190189115279485956556344291497906861881323465149750999381028653625980094349661205182906805655701424543997930280872887599256119841000539098828376024659758843443785514663702959992114629260758463351674160870214249584851060891752839862218940829064728260382063331214690538619325767188588082114564274247149831144758358545365574712491657700451119564322034756313633680819144716337401781956788156032647020112955437335999540791112353370832171841141488817708966642549319889636103449250712726224269355459858884423549511779059538678157041933747193253186298943509629851500139186131014170007263062879950848700057105708251548228238044377561892991413306288198216072077056619504264275818774229587349072835754599706657644564752515981483532349208624460048224346232036774812672944353945701394581316957199957771066551228492230554379239404477734788787193506672286443010799794392549619916758047554947697786376766692017951581600490971560515575331855731528907799384591463264581584321230940898878838231674494268242427501488448679855020593353645729423603501620202357942292122782485579648542296295957561510841085312015304858746187606031176839715250720149262520847737679490435732218528907349120496244067729594606525311268280715043951661936911544626089964909275387770032558283622724327517175599410968673256259892162041940082456199180989777416083355241993786250393821380022823525775707963854914998960947286588410081763145221938505440562555128217629855180681459409812126778376634494232569238318008821495002183967722533176856214606570794517543261106208597231914721016873584523806384551051496633126806754427797987905447466096970785947352085330564246634687116031819891660723201841607315585382899552254678106035568571533736544743297357950179240925368660138613033181024663650287936128601437256924079611387084956318279934674265069707347913637062198776461496039480325506185955054000637658465221389008721423242820952279930695759004179099681492710408259415275590542107456819057361173113671371736614594877269358451281577771088986743077713847740690625313610093093328883520259802468789323871904868741562981977433493938796452483794351974717194360326451081380240383344948110653521341852874375083821791061278922720985248647774358647964481938286697501240915457162383122444077325274124406580513498550334320449821765029256828874817931337225518062540838983445313460842754432992315024475045307897890531590772465582313160680055821172080071889244003774749006997175629226206581474229843559977805921532299593817709442992334354653556668001481737218165008271847218983590828693304431331158160919210796569028862652673351829631930691078154899312659590502034106228838693231015060788563929274825565683357732961257764015145448713649558313887845863744598434127436310826819940795228583845464154463835467674532645518230237216458627315413000126875658594642120772155954503958675677755674341196366948605995467325760512127460174280662240376789603688391183585887882698150404011415307718159843609770148081203124359941006962556060469453334712401026819518171392499752835917185386781354490017547041856418705205242641062843731744460681586462337242228150757454274923481712200522376672295625109973978124789350953540684178675432304196157713184179420231268591064786327325489086933301156988014337646785220432403075215604830471304483853456792700403051898641961368398128916491604360020846209175903100986404294474883182481751107535365896343227098034179255273282466113498513746065885273543450944974398252561421648322814870452707558049912004912506838992882891457977051464776166571598010331517690568475091612642702051585038368110466997112023029173141136749111065533992694512884721727773477158101128396682689487505061086850301415860204230266139235144865052346536516217027244438289865026669455365031138373242697846548129946256059494974906810771418928459700439168152688623688427355582461093343895454984600053307597899237623524963572236082012012731947155236545980844613810266004649002010059468094010360354567774015981142306600357294838983940655228197051132995624440607224070064875422376577230747447787811084623846300487634977633786284108503618953443250987252452171824212151095484270061895261050822861749389517865291019884060330257824845301107702325791497819386030495138674420222583804886907549360642974251878536062828371777771439817358766077284630376943492861305938166131610737829527363835953752110537707805241655780892930834243462668254815460640136717443275006995524808153749745924332891621887592960551640011033111766702876845838926479151283997171394908037267159608298828075674674919870887726244111597556607654578944267530842298749561204897375724621793372588677871221859795671613524998813963244298439973339693719311042367142166343265614518556871033867341966929322523151741215016638953511165770563705452769852909234618104795187990060514729023060859152964374680694659177910178753776826139141919487582653663509240402401365324614714907326385737883256733485932736929900331963579844045821081478155408075255846883619895733417602627730830365346310306678163721472396306952332539440510539458708320366417565380719898494258433116193866143236842142072026393751075612883901217215162954774937923262469489680565423894014363612361461726767684319590945512300261706929136441058110928730885605220884643266359090545585551697185699064231749343744888914894613739491310157270031963287158414186544213464509747983207842544087933230853462826348697602323710087695168241886203109807132922109424231894887466818273910166323912093803028808443953878035979705585857051624490647286736175725320229173347176779827539776564865793433355779327438636498854530758492334054209027021444581168251286061847136914854968232724293898236251406194213358524473070586237857586050916675184221292907743456488274729570800428980847139896233003917328740262420096992866959050429966218761887096930380007009463500708813045708578528119887208913875040086462206066697365614308467957783142788442270003002461611527233418734907931968684353848235579537512732264485383443997428485484678875613696667263271255638271124600046067213120792551038737236678634403960223720435779716922909696210067903478389473757097065491614867623177388219278497932489327842487307043015622303207955631805119461955724355190353336418095425171053108054632118394429710950021721175772876537046297135677850944531610948319184934582613566892462500245338047547354116091140227865913105245137603952106209094672411203209281058770641324548675416593509901080794214523031108003197676754605406576315238139433391559425087439359322820382727437073112503374074593352359669946311936659202065362142062774914132809676712976102987972143084944103028750861861259403629949549843217120612691564747281249903854645741683084305879597363769816636518057063753979403614466048496078053444344260709221596841746046188827286844063295135456062722092341405238917643233156987681682319518742454755401171230468051146022858332347469071722789945017491789264140013275364700387148600265104133198618336279045949478586118650690303781578989213845704582926182846642896116353125467155606631143401921578486424188652769623582678249979971370675122864751165306965398887165803993017327362283085782788182430803789678600768910502391284298802141502332704620532112398631425129554098785692380434115362209139055496651625637979866695434634179752388937857941556696471257971460540282775952462057616396710084972403038180249091401066786308377766800951112288706520747269412885507185101969718988415992605351174754385499779196254865843582383310997359858531024665579218846923771881980948927836108940166174724911506751983905265005124527433704072818848919538496599119366623980933682205308839568803578078158801904035132892222018814167112762884465778235695452217590583756223397499741697307962579032403032730994309675461998241825142026226681986817224822178781181665581619426005712191630922742051843784180705486736634924457879657535738277678237703410179767052259962174563951758911446837603679031606604029538912743215850435018558728375814440728165812409815181610370681623838975546680190430000621928248086343981888970502108862045334175515137239502048373374433298060326260501681467986871338312429196850008649821179372434847821301159999258970206460034447823892990569795230257889357442173671711749657195246449563434654966135019884870806459084237067149629988407739253673017102194410260075738683574681340688295848345334970409359381456191715614673800078672139822131953645215387133749631106021651087041209106922181715056125418937819376699839235601696689923529067711988224392260207466738024150412178800844521944394560197652154256846394290497085744453029773402766074079686883492153191977119640033383640034860135604378105562273950880365133236129519490815604068556697503971891756387232599712877955850833573118207799182929752621411257215978684406942803277893123514035656331084015166172969090673170923540950168530452620450865374774797608427047754818209139670312727499911751748446650563525809370656221494645527851172363163942407161244948321447417453245000182953502526482445529025502855182060873002892509884175264647723741921341682692066362018460302406210147005359860945263312188397363575628637246982818770365623652810372313561774041149084969663239268498441677438457177371882746155733167071926334482937135962919506972289551033228518130717209199292558539141898175192374212256657398492396881918411984867509801104788563848908898582061511954559039975650755635565145670538431506145969859928937412665271610494230914647679342223975516983431117038617838110303538168004903405025808603689167848409941347600824930690993811728741440097928408951222027471048251321341585055302136822360433412999889858637147272151396216763749085827875429971923684104703664500813013101162977201832211606899114923029753293900420647204104755927182393730572337542516484861029105932360554080801610630943332053173899548757459219602706361236794759120049259966401003140343467886637324498868334327847530456355192202802931147885212339153383800182018106764181077193921574492173480310312220142444323872757210130351690301789255748137560625957942077112698157742898517317278184766064083092691988869945776850597598418396599028962348305200024154302683116184835318660429904354385767353814481091543897246452285222783042074675301726847106061522754815526693296014112697451605233068254175331220396657215741854412160909015456381584463332530546908750340801076930892841352118191825348886647308160894654538128727650115002100029987724418266599254544725732966715163018078295551096670910621719778323929644452139978787250012731685680359234813655942602693081924469433975591688709803150332946272801973749261739119652561944240819972574379788606279171223511260154697608593399869565198766358065185602534363382681938545894878005406815638724776414316731711800416759724608410174919040705978686955345723193632285887156492331210056152321341086670296969868888911758621948320091914993245283600049645028275818189051238963291953959569602217648251884153602327291653830964172430828390777034000033755691620972291930823954463126693912009677877043413352889197129422364146150715140075247537071142914373176540866619767979635234870186733981344113420883050692475890134997984565904056562653767216697799856902746034305883234500432354593018466306870054875938756714023080489722168845156164788285122792450602792013101440966270004790744706317350700961912795742898141223445874408681141994575234912933785553434348873916057183345813887674344573752674740249188268851009222981445466467799636458588991044004271603941861431487628119328982263624153403660435694893551329627781908113333732070156952661750828576705597705814912207144743247581921635839345697429953206134349088441854392056496517850312396664185278903322267150283283352291545417630772757540439531614876400477387861843692240069614074832816712301361506156213803110179853375747007843623706488298105306736796601275618565941093078289169685018273899841916725802615778300659279752909534270238618995113226954464940235337537841779638987412825607120721274195644996323147107473692508818775237958944496551118251201174714138055307326085532180485508885737117857264513910770069333745084669821784100669057003224671026969120525873034976424817806908732600732983649826239112820468848864880392577504431516542436879340500684878366194364967789938886005103344803345004852730853976069274787871671167665349087642834156418218487024588491564325847960527930918546903784568682148065470951650837497488100692957647121066008799190665269223975722757217997886345782389233351202307154315851126705557803851991009302985092153760380009442065073870762556514527903711427238647828870212639053771073420790880632253124953106050556413222670282273044915687009964306004668968088350204480395151599444358422907000923553499927802009261874035790384769318462194245019177013970379544459753398823143030752934447242192676834929097531382195320331831828282782982712125927666169715038647372541394161933044281535394592231566735816975753985476091859300296118470448849229444543132313643272382690323447268115553690530664899463953223470808582753317970651137418737280257186505360560746935018350326357487685489875566672484907838614041808987597182161832040067403661788254310943943150737689018724435707686343597584450386525951957999424098421685964412208154323352932964917949068180892583222010037062632680367626710297955702017080490923372003776624952111100880634417631596912869901493286573290322044794607698166776379660877164785584461224629574715786321202058308184754878500162689866280574461431033583261646113118795017909200742918659118045445081052990097142789403494609967009031330578679665542745481461919778120049773973965450956054879090859583539285693285572156513320571421461908104497118241843385375561955789496321282019422676484975792197007862201108096680661273619006280218393443480605792336542718386702968490200278271281600103068592986783352336616281984753508487538587493820836460175855013284285345619647347004106896053214594941666016883999058814628190308657243622258342231833867059756085418252473203717089044439134535138242665417131990243924669112256803098614758196173683643613955429998903359928963956712251097737071517656283267830428374034891765641995443594614071202542359558559669651763925406717081258598466023028403014178109760058865260005693021038536582689290775971163740371213970511314782561011087636956955504450295453779227434311697194232089912293085790280757527016396796148438143820386791394749723551809357795259786650156951695772400378590543225253767517163555041148847686885730660537515618312403908655324423978545537587911209095221736465928707362743185646072150567886115933627657070190098796017516606818942177372508641599047619661556073915243984462130187916720983950816184768312795271858393076376312365995997571533825978314281347698294507983086822415437225292772538843117362611453172974618765187260708465760314955083921573809376780375199996318956949408269088118802762139856849117394496437954834687295987431551365315711232540918753498820025102963991963552264905117393181632900849083373599267017304023222223276943668575699770726127556631045468747320099350557703763162487888811346541090008111380498690753324241037044941865842055843429359167791232584248384261370916275017249065570838804143568783239376071924462665967513818715855255447544248445097804780943097467678440537617309617533969011265898244274516030185596295412975987815942590145498650782759294089286014288129238458950533232177065774189018049755814853158900559951902950542219879989859491799133559643545289003295415101543478013798150193624391339838521441139859167433706719672094552016483564068223242460140141530323779808081754026208143851703268998339965610014621315978466741183130180581378958793694289706579999696539503613496349001307313041877665414267459659781731477514884952177559955888910289128477481960395934114232628629093427396333344142774282912178771161186600774697964757526445448729947470246359980410789471349421394088001382433121021663318261271353142997772483051864044827436779391119197617653207897497888766763548474481094709169542831496996223417376998543475405994352522276817820389637407284731753434949537058217554781988605025630815833415070137946163642034890061091324488575429332767182672202969774119135437722346033770015919717858841275579258016930929124680616232582418396880590261423576416661912961990882594015851254820837026728847749067737253045708254810895580876394563646808223630574044464640697150059506808046741170428427222945342507719450059877689039085160212161596387980516075470865192850805804389910033977286153744291554002595521593777893644607317928334021745281222131431307307975117977301661705112272436652637395808900297585119700968427151233311122438175666944569941383230882239550112141818273296131026037041163252230736718967618424401460585664513847132998505308315666904961705745445536095079755703357236078033864665084693165442540759207644134930912491057761691277049338066840996260062848638395890450864972627900830617759062039747689930078428412957229363111422428613704022454686670161385509714851077890735283964279531153557341346138835186531937133965324444497495339035288576364124139276580152109481931128488391475689545728460651755001741600681904282986252289594310095901308176523209713793543404717438704314468985958554533916296788371198195158659325111693677092407630017857921577565903691009439748309121721984781119177629214970866825480932041152939339087744402624507951309373986705197241068543812213713123947849221550445511205869582058257851428900267276980524096822406047209511011364800283300782770452920364136154241039835538929507539675601288046014756566916755911463326874741708423981168159966639743711953373701519025008009234374171633585249466105207100973280272275219316347041432246104094697638036913089835548816602904172179749751286984116069059464176493010108144571770162384597905088979818941029484754905381655330297838332867239197464662878413501413943867704584494007527116985134025615405551322792448311928532521378928245716039560564646195558078701684821951256907185024871742800680607310905710189658202777710475736625637314624710310909206102619502812659860718512300904233983833437275450617243009695865725965897942284702832307236606271735881207425304148465686189224989375925937360212670512690285047218628510335138344030755899962819490016072887924244685915722531885299159263674583730032043975380251938583688414349811197277641518343268738716439853439536162174169675875227193028349133920273682755440078807185422517562942199138311925675617835944627415791003425039863894618633820589510045768642661275171608947454638725519030338556372945096553078844735251254310647427990320538286469140090794388514478350995072602038853444045021134566218206209613953120039558469585139878229187976815055700241116077459568969953800601093929983092415421416989497326806471163404512133438564620504798851721773724446010408367768406776363529884028177626614258115158309577827392661753715346875375637240529772781473296131926361033145620497134269001146058408731330716643747453131414425131583003280462454905580505786740666385469505427369879113380184822496835413707773810129253105635567038413914044359956671501947469885882848203589152358598586586747329008907480994648988897076737687544563901444976690894493089281368980151391600051273753221685846389502016379310588785900726149786195378432482840166234550292802847951708730675882878171862091656067627469103033892118261724990272251450417649922353576727498018032970456693820679145515662098032487428800055621741106034936134521936145109336549200236190143883393664713391350480583221561299195378937140391692950294644916693773997337830010231578790944210235526839249349789466573034185493346514291128491747608005171841661099399627321392597824849470699312633332488487025425144787478462985403550133847986916699008283691050217717060708748177054249774254841776164001671001563726755246526725816806596637233161586019542888700152852244699931775718795796294299616359944026791402178875006857893369549145928914905361118086655670390928037419551555031325332108424170205478392245042284229363328220564131346348020956183016697742466599999379542169512397806708290862752939715144954072065479967449637265968383052064378503274929563919163567519504038593343141235351764115621760752043543050124993886035352959335772630272714531250170291409587762185784903664310826739589060148523897205638107649548857878658786689652710229499142050507290021874959533775291221106872572392779686756434005152268507297084763589747635225445825527699525482687241636904112734638906435431671706567864589289412383578278362335382583336073997381058773596894784109789482985590955029244304138752426999727438993151370921037871446165003988435033833195814826784814497726064409172602670524424928221487532410410888098114851855962372105141554375532183827484177013087450743430636483477348213950915112951814728476363683447176742142534079112831071022961709634435590945462211868713570336242429326078198312982531081996796111287484558843947508931995636637399819856253738218878366843761742981827934584526903377478542454659352835643777066962741278198843293404343186146337130300978006562144724112070511809454324479671969356740253080248620591691049718562022417645322794665608621725646047127825622231573273958656732176562609015333155139891038203899846466931511194196578399288249942022253940795421556089628098353643320908125091907672747223537640528216662430172415770332083832303233050240563974544185618625841311094751624361100153486813053582856558761960322606003718334956045368383723545536905378103918149144296859961401847489407481164157589137171916402261536891397364993275817316908866291029505012209452602488292260476267110411935823131126136184669376470154896001585889668332407566843597097743548236771042496292977014750334032664158300237749332110994420659217838295044171400231400173671124017835229917445530298491114382688636469899298544190767505832766892965584665467509318181065230295459036815908718017591113104262433714959890573207728492129862911725113298147060943415690392450855630949891131758615934831397512101246806595152324347884772581017261786365286177344684786424336607007066518338259692859709973785239055361745239039442119558524987137717367721598710736163893429912302716488695208415100416947678953675379664627015118194413746065525015628595938477112144520375387875282866358814539005055454119700041252380548390732409600547357887985790521597382258627791033754744619198210611588791649512418483714929432877403640210442525724777756250196380815554859733057403262712657446072855013215934806512943883607209674027863472449866270478681021944473525579726318254470716713930478777107423548546144230537929857257361568865244761474735824669375320149232445266992954942755287425444074646035253501149066828277987476003497662341082571200522695771429563977043572005137805703426507823630493628136941818816241899046601782910182050546770049850913868145601937191490589638721265662135476040494917971181681955932919897091623747547589737910078769099889749486260466473813829868030919933817418479450286198795333699492079143141298096063550392615288793697252980128376899435629822972205482704018473477487477066586256824080609822396755203715682958203585466454047231859995543224055327317398430520169877050175625110667577401175539011840724579275561762997012058698264068567385878472790303631012679346877628611620121100120421336156715717288609466806023601193814039623857220428919364797005198403320063018844406750479753427530128415453500561124628144491639295162429120838928767231331860593254854034281911960570007267044629348350582036458318087102007215568844243344734052025708199877767236884050912718857472950468549102708405116139285688795436001890042561278341628461435119287891306699484719462432800270300934954518970651040518516278817056945777215898563836572749994464906491972187383636911871605312431973055021477762354513496063048241535484567977431648123339662091962031299849184552437215888329108709185112998232797168062036014540939873237847032451724764828925063662809310054857843251330411319436996397116601520413092384559387519104649963252708582012290935083407735784669314920690580142485130615331067533681045903814817762958915924768550511951160200044371253087118351757219915124432644102246404514556378264540142114613890750522136930332345348529899204397431736280260558876076887048623133049833856204075336754059967317531291562532589394717645947445219217808059294099652552052054847466733610963138319294785460652763965940261259853442726488026077592843559269898977364972815699235359190799011768385453922183574559673855417403738559062385884152289866905512168515487230315090308949910892977085737868604124270149918330894364538920654474205789555030064330068004086474725510214393860314977684090562512402001407770214711029310467079281175169212995386382900540626377402547780491112535125350814765773147744014856283079398792324822935478490022218237238699158424061133632766411069210011297131054767725968708538438710231644244950143249365285563551251726628286500518384401534135099293409487431905202366881645987295039334226029807589866014567609848657626498296648382249309063397994479177278733433137540544069236477292673017950973495296365263106229005402978115727992523966256765141925220023103393738627018869871621098662523238996229841619888070564890556109965752946519765256792543783436779977317140729442261122809538594166999993503238191442235451642022755567133998132823196255631435402026665314748332706140521450343890488440788633449300458263101451013363716162123257938401935262636189735831112036705370444541308143444776332003222125593773051105984802949359887297348082258526628758339603751439354349036756175072604517321739154423739508631594520552395987314665971782461142741339852819843774842526591333534985413389644297254662566472367137852936517228726207056254824718597089357776066927969819731081211138609587927395189750415667963149574335106457688865275428850170374202752933260935226275485445097863360368412367756272029730960112439588186405926183002858223260406621531621387631565522808650896734420891973263385154921905721466119394589897516197070482848761921959107862426194350846263851755933853541127181064001864526243966130604885488572209775952700177532342818660860448335622975369031268276450806370902892920808733162757171167944927948507454967912575917705511830678519586890217794206131997971481933251723781879506474537270364615598705739552960318891873897474083758558337473564052612651775940644987037237663390533504880211898153304856736174250261146298151114521793765169377656439873890771330469995321052868914979422779416320399358856249764146865359893013889851140461283922104982822172560251182430759931253005895074340471294270679991688667697682570536853289498003229188465393111005978704225339525962694751142057457371043420849584792487504546351783802093338268013683257513355887347428619841753785244051450323442598615597645736519169023978967747785433689245431779682012919065596179075915256180212558562978123122425327726536375181898133180536808722714930853420086831349654643382676109527373609519580960103558884499685982380172266995072524933413656875833441887720606548887056011884870864631246644839228699720568513235206408198842455288079084579052090508722354167201215999934453069607429548405087002953089470328841664928010277923890310072146084812564696896495233350616677990198512637543177975930382022471364545395506758774225906640460050339518471195834876134134848288339628334069264147932663116343048040629689763705963005999279019799697876688176062714650222357284692624530184472805366969040606278250277795009036218065025020149216331564705153607785761208451765619465874588921341163396531356052022328870801003328722036894839641768201400109964704100297000805622434042665702672651100086390121065834887291403073583603034404955859137142058422819653459830991816273836577181398657000425764724270226287256560128937952716543701770832798518598407420042600617716352516888874499445537600935254493080901954052352353539074162796271368022408443308147444358176290582551588588097026451591595839041768033495106373141235818483496603006232585985304012326264606557006075141544972033464066124755931211675157756165846747846105728119988345395856735765873511280307922328948677380614368035437096878580560878797579331398942325575530735690041633282948725231701020892880048788684673297181977672947130425857348297360804357932279392933240657549201733157058317261358624208191787049070574972749086415767629307769321099744810494974518074185287048220941833013747673165163486253544343282508304106132100205102283384565193433872295739723837672315209486967360984096278744042062118363751494431785883973494009530939811793801089310730707784918228503747461148937643240765992741418383706301606568418076205363351184507642586069279669450908914808240792352832591594615991287130069545214104653873819532256239186445319299613207737830614600019497218234219796448803979548615289875011804906236178099564192606569084165916566199326731888807904245478220761576694841287980235275818416898245229069203289522766668191616095941012074686342058879680648274606488472221754838026398351266438499655478207853684834674118789945740855363306246542989870840092099161940589566959026110652259925829531522793634454833722106861559853388506515310691449061746146895792451989298365139792141125553644594335782078651163328858316469363014866905848312613587821194542357422713082355685427951809878937899889340678105743271361699047586776816612232920861641931575659136057844026879829984593997365600377792531887103309678437888825074042735337008378064357812896169711898904458605630483096207141465471791253882295507569702147997121133714966284936703487176616483284977053506576719828862066792341524310361824947814222731879654915415620321744427677985569550659229744544701151497757473364838448317490520696573536163746446995604831739851033046866372208815320983841419487872636969750354448314363502566998484986893011490693325093067957076898291149981793874996056781721780039666932529342013076187930153975996594054934986246264266635595698722984667820521628628973634015788584464807111164838947496820964043056361496064314899496448432802637777801478070472709775534654144572675200852556682010330216603114720130739959945315396253642402539092145018450428189458870719767446166896136727694726936825311042174110904469601769678439215271499362854114861882929940653065720355610027434758839140999658098058036130583780787360180417757758873497952410177321895547718341482089072261760573477373876373868969462311311557973509192808053972329335421754583102716131656929936174706107481924645521772939175411037600590763169731187280234874109512059572386335098834309368318859491140021319314534273303479467265077639386860235433202854153769460250548428619749595476903608975623819720816820042965383301010363583312383326671649830172511486489850112321036664376063494675524227134393412139946207535288682302385645757422473621045739520625284695593276676668741239031919853183353546411719415401016012528075279572094766342760396318339988288880444746045273058728413045334459057460443425086067565681188478046179635812953086954079592279591495401668425221565875553511856149425497947582963575576520149886365958742314538953542305314290772192445194773009153221034004880442505275107376490276238759546494221479974426969144280712947010644948732530130406359457440353342252908646632744458871788428699443657272062320617370342857783707629596058087719349971570389658368984855649541922158646578258702939696590925738822994208542032015674804249461511053169284526272100927305267495665194876583971432925394101337690569667819083710401206142080518797981711901271818541311058242233403202881586314636573455351488229225067409916153693805456932987350330768617163048550402311193813297029374493038440381940695805286166067122385812435498296663033845857057019862665836436945991677809853184588296444327683759852656827612564621967795672128443744836689005003657194739598893583463953144213450927900597816953945311140045272061028849305950931714059497433929411979523480683299661713721848854842929963886625389576921344527879552562458489450529366731040054489765942734670314643135571116484032259993341608962348028511860990922524173700897353941400612881494829258696734435773769056742183545271829162425775876028370709358376403763995749289294927021432082472408177949772610912129664418801155581376062649192006554697123242875420072778749085630821205866644516880195784099779042152254756030182969875971442524041437489036518393281895674325880740682575299962849555548462804335318869885131298071697043075859141333825099510751449671016434015226923087565545979899910010931507718129132174822410793832041412076742757408029440986764860720041427464646199234648405014333456808680787431860337151263533413899550822273070057968135334640812424036940919952853877107451331467150786960153642817889520118402436557971956863269551304987200580699140998152276184304876749090692986424853563982133858448994827440108785514085423182593191091048509237954713411799695077559857392166958235145012279077736341817403121610886633391850337911161638291165950855182426296127784080945255513220115166918176512382404052986146235179387233520169806127525066189552401336705940893187521177453278663023163734054034968045447837538710738253913402947992036041838336988475439926423850221080879367817143857986897147149223624494768707615147900236314611286508052430602334537608834620818153098698482869639922137289725083960210227793187438304286075731595746156851768335722957092515551077751613863220547663971189704395777903570994089568810544152165457906485834535687246959329074456979277742079976315847521996410434910655741711435638150133785381677842685936772236733526188006984736444631954596233501358446230028921894545742418784666385400361313011814574059534380083106159668891526559863651277646466061816329911669431619161519575114273981050366632875275647985780789827482212775463886373435252460532631080058606514460322450375836474986022396091051621729370013328762045587593895670112560944838765771631739287108373662010927047698920568059669085190582516562656436207025554138595332992260438488641074998155786829751262250844827329231861988039578696317321643200926202747660311871557594885340748440522065418501254494160959083175329655262535130814201418340355881837668552405008837901646241100457152294743484309072614012901760021456777113358509570162168713992400224541656856737927028566192913469084214782888116296916852657049053626540720109514110926221237360063916876209657160360563611265140956583452965050430231880362222045287221164267640560798333131221842984968550376781380639701242199825828856651733147898165486916310574924442529052849082488821423693221057892401342651648341503834933335877183019599486097316388024339018150261191395620215413312054662180031271734980463514593621956576158667270884391949200147566014601564838820848169495084673849327647031596963399542717834087778518629487554401094764894655940210305946152898400842388907329443476763506060459209698885820889944864060013355085906215803925360394539191282647849598067113989392627702997072958292697674182541250662926153621145466242144521044769651118879566153914438252114002418317198696432135752277762677383310073544081946214287148706083411032338578625527170337778077418945123363596166995049194302508317739514869799917009166430234930746157648869399366032939205085834517952301531951153398620194874639426490331704965763579021468300144840226604145275487182819297425760719529148039178878140516130761256171510798319670447977799616222139075801140610324777388001518587753669740950349070110770867704585147841562007697041999721907191129233424384927050313978449479086408754420093987288222118818993199006602024793805169561880489223547933772033882358771303996930021364586652803730602028805276130463941947563934726198572048742932978669940745917128364994279380508215643583213593436261452714819042110035669797585034031712940331375499632198274181714423228603424632452090614036233955178130900879035412683771810373410906102862685265027312934175853476092861522270981904569556606292835610543215115969778723139984270375403364535533525682489497178498493669724383162407410477674237579205905912923170868070131190776428162990783224116256769084127076874241892736309980097389801932740127267942431962604697999412846687482168721260879579261102881537940383317605151337183169772167563203201910221041767304112546971836599061440978195517100328487336981376815312036198035473204641339200183802819370432746477308403827796441708343603190394708281244999320608948123891283266453999391737226965714295518914235116535058858721023439071393570756841653940695855137512119297977626441031338973599652649059446389497273562763854874098580918548593991981086544479506591223444584802609951079404682399864873174189324871123877569460906945323065850006330705078041151391049488715221020935402573518711026987188296087232274139786067222178828099618064169125232747989650018264882097390192155011226438390922457438156495240032201499424133342176381352957745836446018074047235935529118091310118661033178910219225991889306904642082268054815780482194450767646496448278520863851481269827230240356833490752496997919123101376479630194869160869138290997236561932075341624019240561411647163165629399009888328661758389499789031205194742579796039657885260959897530801184111518724115869005425168187671461742622578910824049661411579493404760480923484320168173622511470140546546961574518522050069906715581792305035636863683862875982340627266288828464100576207864128800296568292192031925100485157249190503465438061689054647216030795220854225653627498329648216952127001504225332358500440443888111307425687893250517521419603450880550653235266326594180062355754457462072718135666649331113536792620718853686761658142770348207736633159513691386836299802563391514332003548822373586411571342367177710350612168436929518124687294150081989054359201757366376680890154309074810538202338734150001471982591275000664384017086078697889070898997648643591315455109755731258222533389142961741042451454543727292021261072492110677492799862890654401562050305269647300257723690491181671865160335451053437078118490582884249832384142814895625096302320427071849150080584805386177087878961911696053335732963540069697918641211171644700459064085309480034295469273512189522817970901469000195524298637282717446628577229133411539700144269681119578547470856291746277973281238704551312660008750052624081464596019015824479941437972813696545225582335619652178119501660170842566784446191564666896839031326078983631954719867106829420808048380079334603843330758228272412995974132574852608269981317128950129820840203401920407655713712505718613162017192102008983531436565981424607186310359030182733020766853400422652460399892728697526656209758665445941906499287214271549423683252396511707222193519581260550740824345953089606450266273917306556140933238802716340434617267123317972066681329970051256456863250228125998449632599180374062982344241679743908636923707437547155112050112535235931328560147734225192481747519753172779758976047377609716403485039677788476724127809428357187749547004073415341287387133983533041537034644176350676152946934986000623780151937193593886758529581429053448521928190101254736930585368791865798966364348828087136155989418650320366270674541806406987260368329357074947991188327394958526749423930728962830559203959231684640671079989138768729813153609578773078347525152587394806378494520080935142964232256267650509007061496295969573306927838142348070300564316626707995709330939176445530798012126704987586125274451249324919748660178193916966005245941976300295622390464131036495044550590556596670597027389269788209963299768016185724586918329509618425325094230960644569244813668985705354297092747239229432372176711430649101839263345012834356303423436396815573217476652131694429414364519439051141866579761201846062275136309729588898609908096735279822601280954634802353133096845043319651571131301920201947190733569530747572395742447358378373742621946193039690131529862860861128642852913383602783587529696775931924796136951522185884424454031758183226052203489190099040883399849950095594897928231688894888406102136155032119670911137091175384073675500199628673534223855303632290541030237835269556680722347771511523549598943277127128631871737120974699031530155801723255787071032738462478777796340568294943577299065795765865086887200187108105987543338638734904976890395108059452638206823437992529049898714329957370079997522477982206376730022347674380836531907827296335876331563848237975999047653338139828071849236656405706163020882592700829025249717842450764226546183358200999498920806230488989288953583599468384725329794518977668471635582030776471298357049000958864656809918327131378471735438495337017104380430589943473849688300529188652321702135096606236234435561162599675159774898782184925747017531481601482888300581823153834953519832259831325887384901834805399865174798678606593307903200477629521741059618979777319284000264128478281663443481081555945607641654604794573365664602086031270382308839144942307580812582093273647479507630774278251404285538821703313333612567785019046376276867677435359276176853610891271739789638127510025047058099315352884998452819642384966505360467359836023031389156632970685455402451589644109774881152161946700302361910422983393415723459441469519826554563396836564823867730530495905077428167992073746493737916504868400021247620659536033979902661197987584090312218633767775659728126315351947531896595634082509602586009328374637153550187031981315611775636702858133223294286923298086950806200065347732813350045243195455081618527951798693761715912326484308799703958897741772154282702796205325577873480751813720669203357598641580746621749189591193727295833738590475829216634780091829088013732867981419420888139589130072676796987886532675184067687077654382768074210755193863848935156403837125051239493095152246653436429422279014952911198287852153473681553710046484012212591659307331482844267359686074426821306122709125315771571932830612897028901746605916141328506777076362906441333985885551246312489284644173782937705327473659748829198580666725108052856567378910412127260736973675703894748706069839104288389382326953137381503333667785379481859187164555610977456934663025135701137363844842750804031567092214007869649493689734607190653925887892880145385694100593848540467272200324087432967919081102973438949927267082949467908694747408825452212159857979759036375963925209699533974536572919382630310572830734426649291735170146664177833054169140035302978522748704227289041476136529250132032660412370026654940165321949466127827013516316010716617603418120753491687723846590948525730445891030828741172563085001445645186675723287302180879067287741013698432171009049414739568905069471855474662721371628503176135657249829982660379668596354824114253347673097607090739594846328133918779738148043434378705742787275856270746774659504376048753970466057667381115660772554220274135129666522441107201576275929605251722012724205218904181655826541796283715538826280193104227256289543234733586933720526008834043651420191196802203447321043684667441772326109618021487470672427177055440711836858065754536497609103551767572560906544892965899161365170951998523145603272796487502062759803631074902301359450439823939072511345319298996664923230445076639819585624979886699594223262512127734152691395041399363087680577777787518081443121501975608326711738423194694197848646040181337699779089931038787654672282910394908965498527518028247827951984804068343752165422049688537406095369058256085986733522932602323711129851685565426562270894684459345527041260360459046366216490544008740772813426455288446711472959469025428539406951280293564909180359806001566489796125560491450494196652075726829385953957355333955525395235606929750066303294953321569771565836981012970778448377959659243181012365461466051253133908777801243414945052391842415974528250371208161618295738535128731001186439248178668265772910110727624479247695483493756937927196856740254887876686479359605355202078707034404733579574415154122977122017918265697584696990112278656782671929687718395678039330428674908634025419812117067667365658166437437227956475224415961374879397676636299248707756011198126536818645626262118467815160496052205815947601183853689080027920714635723750964898337240501161543199858451967508172504332354937642458057683027092816887424214797966160164003339750689789520122291204877670249688081367015597274386762800653928389120323806262493696792210709165814796821962287204457868557640888774717840228763287065735715564972152807504737356471356849147334966706518766557087985913836021466072916737036326394456824252522215189685279311664152753672350977520247924743057874817267332345826363786882976263728561887757238856997581726401115301218483016880362074583632263144857935338232800315524053731137819754982483474861919717794193837545457793606787446118317404574207597138794212293867166823383362023472323838079073988816932304996524896827290344903171667390758845061223197923247860694408882693888737564552460741899633463216757830357369598019715190152692667616762395732783291817525835660399065741889197856375298704107374186369640622168515783270003394516890939069732090678754650158020115198061398733757704162842603473008167840609837439790154229810309646817144880671425282932044062508819861903720480780324018654515038464405306046721378225536114089086332528937830435220561614159435617691421676062329104739003130782295446527814539959366443529990778201200440463881270199957715308524801760037886915183622649597665496789028885257586750434497791834138027225482990785722926406978954995060283694939814233367008101227560878304887078966736588138266448085765552785423865007549067207761148944199270178447397949942588753756051630408357515457299221603096116875839046525765401192256393392940977513674803195799881833792798458730179124238857587246578928496084277640379248020052935354173136544899146143083161885872933065641267720347246471158249994143876365052727869512629815988263402270029998563642561544245690103972972627837914894288268066467172536910272942450118144231645688936707165613527496405584683035228571847351361341039336381572369995855093735291818583535946517481698517946100169497411324954848590203242515098470609341729546092506089259005578085405530606327722495407946352955307467466138181643906290851878708790707287148340647608006336491615607452296960813092321158117335235066732613577519067639155372526459011120447463814328949969239153267601839931942287088058914439006388120490982561866904895608824950222899460414000782201034657002722354282762295849346215226758895415857339159592366445232821668577541966117700925722603285712552825892297537649771876402263478347099171018594731286736017181007038499968538407085288624759447714807815165714850864608312844183846948474941457100576563188319147229518999307993952158527603851417583619127854844743207610340580847292628542019644566542937047735222896093462131849375981220899617777007451632471142327174121362261072769495513000049715815402907083955345913021167599294635124512305563712584562972542919719668838220617048178327646225597334744431425519207321821489186841129789974047674204195505336196732348113943646046636767157095640471673897236058034701553775482608505052322351747844486679345173296129491343064302265823344501006297708456961982475376875103228271438492894471380456606182963830601715157567415051826006311280989719572849879744239050257187109585812713511676900834130430101516624102875023203975655705383154693192481523792136062672482578917094908145322001267259834166804844747459620571294018441131886066085924606385094030079763928821531783801512124219444660580708346510113553830197381555073674280621221704670636576014982833881363703066716699674715750412447750051167318476207097757731723783017755388341055086342757874580953093847924104441576586851425087146295823417876167655138796905011159536657062874543474588556769121122742576253485105310016857813371674919832552156042138756082028502611616819224739234030225491783456653859044329414291104628817314536896871716004864377682731261283801994646127121081442379346181388150995133628169946971843399497033268054822444266789736199102818579674007460418206260497845636554097676067520452322306670153456317357781979924857463696356372570461383698837314634961673757003767460304643808043654346041033297282718799018913633049603423057950225036269665831183563589357812346132629078375767364756600179080799117239768227327601083911996463761200038510651379878699017748507233785079597829532774906613935125415249124779824016197190516772139210118106360399904391116148612514711152747138914246174824264877814766607905079165907446670937586643376886054295826235252580661647412643200054458670401486780673131220563629075819858933722051356278338400218428228699545440947887138296271911345736255926744724127237636648231948562097060310733254650638620932107923627479628082113319694746857711045820988095943512124593948897046156723194091286641825135366480018316845482470650856008124517244785398647559155685778901866587875047729958206910593067485939692956869966107898026497442514739091572226818730609288970087399554607344680794586277818004240803752348518203566942246871576901164380188545664322881286868443039718295900397373808262461099810827787642004558425932561074750397367574388788845071958497234389192266442898319837203704283615662419354525615708746486797428358246775394422458595609284460316561955518242231117621923262909095856771374885419450250659041854817740112926391066929538767698270000381545139095750028299690634253331564525317385064087570235563719190840859417001219658828874812595375257616572212237765212497379829983318652359167697360003262088858327914057613667177252812233356936165763709678601140672779196291671206657406457325179390128054704174901846278329792502766321844282582460529925586632210308482230176049803999948307523585733242479085206589396483188074995677534638254855552445746431964130579179789543293143376400903689235989312638770648439644299695426974448652758749112035889294099016886493803474702451320878717781737939593493599889286871756013484871106766738477777049622900276168562957089243552632558868493617842897695051536152572750198823507869279333631351891903738791082468368339799438268778934426489318210387797760767631076991977736618102358200958235145213579673707932560394927361446967858574308002315028526419634878160762026690089696207554983630860220423298779462266245963172968133811947413548960491199313486139083690684697891346771058365841234351226784993304792993232260877037191729984389672282456882285821349128156779305551474295723339042559210810615161116022027242763677208600568935861343710907313495107429192676521669492321752277031236531229000909357102463630742060007277260423043717134366702599027347530886465008971941435306846564062311270062512622956646692377954313763194156960478055365563974934084323828478098712530625370994271128233012456330777428935994016047761572892010381819345926761216033465461027498949587701404617401785216731277548844684751185258282575260161447712850855116039545359852442826452352789419011142214843382955329880274580597561936740945543995285769840428888617010348393985474235623698743053567229481280659028091622341802121220041953341131229525432733332523336930443055643693643069440797612227729313021079251931367632773003396584356695635433752358641007254094022048638540271330469161409398212716381088962467552535607450015178713231354002503097793539556456139439762829484018915875690422611003551982823561657589419301394283664766894224013207824800390293222662668909002941517240028300701484732019042052745544604686115093334224495252989433277993751289348733074885752459076186167059176580599712859394239405775934041972970841881707547744043167249230265116794633283458973215915701008904290184012698980973315342480686024484303643734910721771062582883778656710539768368046732357254275198586503429267852787135863031445974344359300423660606694165808617928334453531028441918001012868748003748294831787331875313434214406467242575629752737400080132765726205986483830719636944053962697881885464915429704372819969561186287415658727631030241186311858199306582080790990979133841128068151809381315658986770139268819696116285349532048163478134828276625664354186855816726529354658826007874918077121134089375288501621834332007812538702596241614396100422739599984416563373731168687081360266558922879677783031896628456324114137777851070545452275073985837665119474462446862081894414033786883176180118144946361565750978547222090147035980179140068560385804445664785575507362636449377564394999514615192663419497645189240084821300026505517600375756058609213602887971558891026305264358685787672550179074988868426911200760779867364861432612993587458722926591163131351908352656081204844731746301765032031090379457479631484215450647001244005241035124763060164695121746730856679619815725894482708623524259617764950323732295249155394184814331731224876837940728985001950584450670285228853598251221876596842193389401813901081378381006993861595100210695192542270412794166140724342385854886118340409437761477611182664700019292649046385908167455543374355613090614864411393751318482152619301378862061118127935270455007253093054314113808059393648724066145114789324148412795308382874396796769680615319813181230249481964071145245642448652422833131549285419030099517153832120039100178621701350605062593315143590940529641896234073404892966241233723143247975367159828720574614430570591491928614412121036188561392270211740160044416582383866935824616294697940367963122391226222650044113039800484314074556573425085984271451410543499113676898114931706745333410829321020022376099289425996674262691078618533183394756253167333324376572379368330287961391602023184665269254086122772681092413560287188266164561456012488167788696805850111332014014282197257788785758946225711041113701845945785053392417659186848893802941034070137362327987666525445930775591422206052021608203631688023707929453118931361771560632940160947955309929241127038024802628017379083623985223670846157077338944593807418962607437884579693407068563054244932228586589720156665960080178230384705140942720881766553660046632943362875447064705840724323681257075656473921209052516862553512350697873876343567625795208254919821949165426435847408181149094541122948240217789426952805970664439477556611057979304906854457672610926705662494608078521389729006805302530192095282277961572674083292919255085070849627275778353732286385638338919186978632739588213252224358091191409516575811016992099705282950829758561007990117097151223773493479706994988602183608016757327522633675824506056013840737208500892821746995964198061324629841248499386405729076434461628743828544943233463771330351467314708326115435427192600659236485034834127339430341552712408568519312118094456965469193441694387955709975970965702512061738979410028976452399894370728856226395140103682458572349501314510443453191944125405096278913948540257683102369751662316295023440395391816580124306580079552230363567688810671985213907343094358773331057361657552642009496713259733073771940859503625784305824492876117119774494873474986212768581070233303263238465804861790526385310554076243127750434842541978534288001732270090118356824507751968506850331195923232567362805585677018175352289432120489228421651844621362684025703188705806329792802968140687677762050248118670236728166720514662144558699071792598770180059227007199621129764572460968452791027744054431572184192268038896902812037572337641175964296806606080300336866998130496149032294489228517420113423501236801257024711942271492570091713663189963563564548616116816817380377370905681585695436250298634502212666779781529425123053488282217118405648191054776777632714436286477370182397698765518028715789219408574922646573503099991925846099553682450803681498756242211374112653573271404799864448747006470011941953535420668590195978709272354082843223541065029899242195961358498358102198375669085690008111478542867790661553766729465156298033925166776741242103867331886156320166844109462524970510180701580853071414445137835023501966643813298995677925410526055420291291614456092522262128398200680584859857914245783097196389493711402568651012116317937128742809522912374384276080328295974928798957031711975426646279085960706940078085807085384259033767519196084075855487641102504751185120791608851657871823963148556267642243552124950498857438953478437504492813369708616674949287443510257127916010492066783611954018531038328863830813962097781261695524239413642577212167550387898590891928970890029601640004532248957733477911274041098079923660574605196827303249547775249968298685446586765703472746377379303255877992045851290221045415158749356554357171005499564868070179677517313629024813922154354355991330509809956271104280586584370848422375955270208168731892732298944379893709169626701164872973259593799616459596854367873436038149382737051308939486786146738535573012427258973021362597747017451251239320923651132378780825417241230834941573369555755765516700237202426202512062233607306685898814517154004879351853255994193658851358999110903727273456962190437248608772966769563722076424001831198404221205545177357695837820370433156592044195133585211478887358440915874199100686297383317754911494700408959771253663495935222100398702890454420632563404386466633087125084891716387556703440126209458045019771672613820508118679049851320424583736883578935847470690954598349301548554057651010506202470180422859946705989337669031791313403139058097796737759280276964017971517522009755601975954343508608688632326576736187200436405095427379366654036571092060117236275561397829384789283068320736075584817920872691681087941669730857013261821866370658865556489506723065986445674219411910539922313063976707051806822586526374084220874518817322539696236555003219204944158627150403602804414483625249750993150673741055716870458148415947072435870538690750145536017763585890275617565284731110557636028533019165423210421678943759413754193839386485025117651495806184017055576941106607198381788451039245077529983587362295826925272062883124754150402838173107957622729801624181901761459214679179730888843792567783647603627296477150356736948143191661172801465485348818145268681383029244868660131655474424820080425956570428604306935219588300126929947002919940026559736246347630307977109594678800968582803482390055216504438731346796146039370125583241185122126163981958806614603156105865059904534418719935574864352670891734635758498701066309336065836314282882699362854415965325282004218065449511249909707040531856831622505142074720515031152904553735130725220216037026676682188073193163089390959214087627391401891384000418353280119217699303782889935906100532809439219984581824024102626156742682371359142873456037345781146701579320482151838507696025260293379889862719942420703333429799009254642169574718051461004154246183186149806633609101573955930782514626458033911908359499179625276580837709121351116493306840435220584914600282994658370893705810232248226639871768168285408113359582512345614449576324660664972501872627186317579627997505929130074312991839813386143214223603624843884698694239757355640404382717957495582896725373105922168588747659524843309510681403297424932542674129878107856353475332691163315966308290564649455898119894571593825292868840170514907372363766323743131706954322223618300084741814792825378122485979344938408403699164825762150902011392844163138790900638037040047977960739949544708968080796596521081203677337448867553860054436532562617352398967909435326324368572100349069331681189823513995885942114421152452481868426184792281915647345794448629561277123025628065450005069870972571943124690260334975250299317132009232097058597753140961281242234981133253036318254465264333438792606695227997107979169216268211748177924441810367240933092249717713479054754784780771421893296377153998812617671213813329892199774963796154505877032548677138824614524208559745219151818241967358371091885397982215757216519575998545599193191148698856347695071907741762481973547894274792656940319003277740454306835207072979614657910058828229542650993691769991741490921189512342881580376736057810980836552411887015955573568161209912337728378644943787945443973979758558574681115136619366901733017826314742086774033081218710273372544791784399527102492667850961214969383211724742000421454884122734580985598761687818500219187046319024156888934536987984014482966371289574609711432653831394556998759072841919834506521213232458832949827325223147990898429891038485392239844038114222702922860178903269967336601399415230651523881705529623496795082529891729031495536261460385652281271967906184863515173572564570309669694212928142508355700322531528418692120930148496120574296409685385188127254607811333182406887365861913104323270987883787108723254267682459152747743293020356906567631888684091542219906159471460600002543652271960908855216462684247130978559402371488746210056035786308432433735837273940432174174386438617489452654693099191233877687139249080283353207276082286405461571597821501752964076965235491511507255915122809975899957377232659155096141324540960931504588311634185713245121033783944581390915273703055440429037407084478177322348533071932604786002579732411063961704486512694702157311776221688363550390934782085133329556794045960073489144623641988700037722327375425678782451989802067510501109249262063435137081643992804926372249573643082933805091628837355763076025298269715744297015407306531708274236168850711216901477909879437647020655258281893477572699697021657953986539301661893832235253936733088955246575574827741887270646119065802126875599047703558859084135918615930785092554738420981024569014016581872412574881975503605885546858721610978340201150253161222945650380670731576565993277610287002130860519498017641489939582484659876374505516378804814945820863201620020279504687368821934514994774414590891157938550686203569767374474454483599800263417043500824552324600925789064212223750741640788593496391496706727579156060820156080812888086802147926283073301601124249115743328251685647393887336129531109899027531378951080749877590210073105559112856525687474702897143003093181802302914920933780334755801093649769080090190506478486459483768189860841764473555411203196703475147113528976443952423906164375157142535010384623990677629771476753202974408500166523361397646569209082045795232285441399019419637868274725199085494536970464728629816801416201242124329806305614654855919765107296273127607677157431287349915986985396703375445170903211637061650433431618807933668011849119793290118867953633522341373930361634920267032736506496103528043207288422626017349316149633319163664126426050478005969214080780054007674018596390471144349279257943836664998634117998959340751131274470546514837849755141183930127277385164223768630094126805692057028234918460194482642577805130286943569240693085581446917390962879397735134326218881504557861257433833456885476828094776734387297289991005628816476495100871242295479413884101262466187982818092247036259744701387225601867512878274888634641360029199554928325718651748525144810201356475202491927134234972550654488854166228551609090988201610385873340282287528809558526760135505189844415950826527184586961779360836674118006692713173288054954640636403925798855615876963452307640611995878262613417992577628914461201411500718901537594657989761689565496418084393843622948666010546150609485606831644968988041422323366394039803024686101512756159368981726917833867205377573375538931357362900055478734309537861831578648896966103282106350200285453099000250709247901939272009891088057926608703811687199921182195232989264130838019420707409791854473163586574379363464736983078463754700625407819493310284529144631349343949509031922320335439236163209220956376674584119502187080784347420101579730593746151534673317636230115238604982667084249566825566372265207168101806761219024451496912801378082057682817948332750103137836891748385048765379919245106223541950946165481755232383212419333767940088603476399468710210721091484022068352780882782690212738142938424435235226333705328258391927209379714365688835692998077944888913332500986757191103126889963995142203233988483333244284422792894732774708878326451747923521555980992811932247160382933126190556852635904982661266977414144437305452680912740239170582259792221951379007167019673351764130614301428962769388980391383789004982813031217045254631063491824192836701333724653735088282499435338208581771575795923261658501204799992940077035004374175495732824609915220672374622467650631504335448255250430568254210310682216830136033991500806963165232775788620790426521964913137013523779549201704319505962378450984946408619107584783974407297688650159163816132999228328114811529781241013002883771056957520914302359888681089627841775029170993922887748548475072702143327427223141350015703054939611870505176102381768902059271489493208770542713428926488140724742418204079149584975613788995514605400718893832031103292864168454737415274060662404576634058509993497863537547500391832943518598701149818569195568169599249497555556592981316333342715659801045932181516801562848984206032025929635739673034600740346022477784212499644988418884613971589362484622030463937810774460677239815394732841228249278317387292017604782504335648074834130645017443120782142376321501974771918053770569035726934683149743042897270167272580140704630081307463831273118433240993070336837351136556930021683290401534004204363473570960435204089734110482901509729830134834336655523501420119862737466960195464565759937118108154449534971166559679435165180719432641236356891183334508997199507196394022448256622353443064068303301096940310057784035321794513294058125847119296124863930513975304726342480116221830719492176157301022066584265199182926377396976369760356103172733126611407957092003717898351610347253367881814785102702375258577916373730137129754649062520124230480850535412591487449021263429606051210628122517607718824628102577229434045583457674673100360358832109758500560165716560762808511734527851403415479150184411332422624725704117328121057528560278196864279572273979964839874256797794924639608507885572754663910686321312577414692977303167322602731829913803715617715560033652213541510252830718691158099752207537318106059351588331691872787382584085700543374415059204349437166440545341854145887100282101467700461012129232517974747477264799351377472559620522964857104984384751751719414707789837004783937130495016607404358288519677499905466161519140120270552772555352850073849259360782144686035781822296752007671931571237511359433794247362113323781274091029871850815329358076741523889041758364091096963463569426455263019259845296945843807300394622352933550365837853914608029165712277811044499820542404956989871886325977550015348512515901451990407409192494167536934368070074441313528539897032389198106164139905404018080467456326182990070504519652329401148025355657041523919435863652826260524510370978213520065972948265175316441556355071506923583064218291659834775871584199509630391077738815448880786280708812348953153017976880889642456026846561573118630155980998329259643164297167914234018173012029234928433082637290716121584632101031415471575250317311360119669885997351821744007788577663608433260725537930090667830275827203233298187909814865714692609175724097548832843719338651320557256649301183216014027345383017477742743905829016579459992048304693073160466125603407310341174431490038870015679563662583057915034670642054883771758217264823597855317796340317792707167382309597197306586891879472401015980763595492301364672461098268266707676102161878966211918475384158332104323135112106876293698015883979414630610601771687847701658946060573618098435741162599281629958670209560670826509409752215699367643530857259743354992023146386678707550985499087149041627235386686464008029254462042217500679193398821238528096544191913184323841437178635096566703310002565197177243376215050243246011285148602788260234466064225805177925158577987964591485995296402623629988565793432607340039719299019590966665233956796012378569990759288527588977123494691319509971263346982334846082783327845744969152264228197841424403227004716138269927654034293531062175714688261638295832428787564531071989367470535509268498777620219363916045723876314129810155368604591520385562796416796793629188861818071134207415992537848757081876139618422714310265348407081069284593495933978761692527086625394445021891271886100050843980595851226020553404122595610734605044171485752565823349678033231262120310743254035375500311201048473931766351775581228891245769845660472444187847787313231728329182304464906786078710116347798199642387630158823890272891510892065275653677704235345795699869208991904672479419552979235357805822911703364997686564747292861890444726197078889613239455283775136500166705563107400232482607853367295386729520751750106292031019546301643395144730559533054731672873327944859850778139844947112074454765037596830100849425102364076719206690926074169748710621683861411358538048096476370710531095063385868617366007813939683488721877372385206350062384443559124185862182206172613900558134709043316158639755490520051630857753699018528869897452329424200807882582551683128772990782487460351423906035167045918814154481516127824234824966101298702241887765952631301543570651618947173496443340864169372429484913560938738477735975120702597629830197857394094756219157783065203098063423693186373120475016193938725227034018266964565467041037771731835230013984638078114928613346831325414073084507560637668661039923822049187024243397866849816747329798859823417878053169286476071724670296325477504842583270151493466613344618742643283205096551847586569608424622781854406995175908121792599685923593735233223234301605579683044862049984069938774714292026593172847831232338276490009651798376528366443496612458397017301612431561886188822230047489636692800269724626714563481698067733121664234467381800203681126324562795014238035723397692294316334725051423388890188617917490214600502184473142974858665054848448063891202872811220245339102959346441614812436978847716786665409003079632568524369598546223726270107896616140394976305611406765967521271491507469038361551426042083262328512822383354274287397184983778655317000763428168594334437944426414195172610993345026365693046010498744801030213359036231148104539225636103263501528142922213486002647243849560609571840204456753369014572065238245286518512697776942320071087835986388707490364334884009482982533437485548146153699020294803164289229367732972652277877157724069178005033266834232745310252514810872703656756414299837843558710628038162118163017170262773756186274193781319247594014856851738391287899949518639716434620019297456789014805112696712840921248558375727217757191967019486124370481260877618794289740647692343843317600949640184124675280180020200390898823523776400952089641236073047088423209718051303128520991754149724482870719210600360308825136959602967055488526278675369822685446850261377714538919606312675918574910820547837549264892650179909980399214369912306892180490042605772463034115357152119045540281171285749547022872307655219735689904776300560084072289929543364955694904634116065879327138332504734829112274891296630788933239312000696652262528865271426834112263867945813926910132473566488926323905540886449742958340766739912887553075919670425324616319775682011121039938904321502589590582129296099206317566109538293803875484600664794818840025426196597538929930607677658177320546188330783911792568893409973077060454470746974071100175589807167660053921598764901259233400639044341569933832175177699865122335021320227524981269793378943050224682400867743482793075388057319116048290292323326800797019828689451758474724921261847081925037503207546102838531731903043926959809280580009141554857097659781326249187251859774636057074034532306717725772580484344523290283996590797531086442538144954954958886456402907299837342531351546358051068634912579300720348944342896764171904331376513530847840652091948890334745699400994548928390017277992809742451028854913777058731682691646834229355767391589779961745413989548904105817469741653389828394911911293056285098637911405591914483642304865879793263106481599195819903736461948269182251796075713686939687377277709412432377006604526976827965933620796877836326377423699249914446637518210853860996166036534578078215826122802945928864579219460643242352902531261211516549689174986427942575587985118310616474249956460308338657935833712331881680067622644272453164121424167285541038105482007877763073610957738414536218613608455789856191713716655718617316402164069399295469174757351586459210922841638350574568696513941632153981064212800568842452206089645720115380206727792497082628818797186182013047397660036543021677992351881901479029496195978432061901184303676683934701322784740324459373696410466914566327457065906620347887387927288879004396752121554679205634499338356271065412642496143284328824620014464944952392934023617595119278308978592023674458032115150096325660771059365194617552679885204953855658411446094359361462709420053034612423422811807630787492483565325530631783835865594021825217880962461818552948032713018155233759725485728298737853303302224196523562719882886610464041004155677097598328023173001195182722184642089547655755001120604724619074706001628423131604347645798093258952118607935726466687150901662841097598631799166665033149342844335355574103209020123818464760255634341294789736013526684433639695932735850573946992902749548334807166681975501057298825196288800393726007167570853302618323063853354649567973180829740684279094268654022903465782247228881264663244120249602132958921628668781308683218632164695968624325372606889875996869994217059436651628950783728342447267692586926051399752746738633580619777446719335167309005438811888903337621581867837245402821375801318574525767374077218939419500073111960103943567194654891597162823164918921116078339987576988500994537065618844122242507376852969272056519279592334000998595854825681846847904273463494906015227977768346910008544323945147887645955353574870619274256457240697980355074504245005865070118578587388532111198852818484753623390434903025191692332123007596143564931545263192169404508259860145574984597870019291967225556716568111982415117361093036336464629252196560575906095036911424493358263561392450989050293811372853557305300282387874970603112681296499787054537274345551933092506859693715522153674758490197382395062636683609018221961732373771899589950490877032670176244322538238988036665693224468269871606795761058335871856577967428420842908574516868140449864173228721256834402084902868965684686597006875776210133487697227127546544640687019145243603386501558249868184409536079843306738695095107014424599320350660352681949592997285992964033794536415735976775319964123261571749233749608265655968605428971382974683823589452455906196458559902230138008727467158969322380038210306272943878869517828844517271395209462553748765240318689352926450843284316387188698803927580363920151608519641233579348220013578862140711472548283158214553541657717979073216312289270910584052691610351249721348525695178187013970831732356540969641482080890911883825004010137789615579895096780661685843936826223217819457772225076163106170499052263235690149100302512290795526196990406475711597462018547376672134753735978055417545395367740631339888795215101525952936286971055288604512409712888122270209634800531524976126097237491856185257384506755360648721696732756767652394781051881148875018939015786594163761449848235965090448986416999604046943423811434958847665480294037764580516741396200452568610837014449330543139284402474326843636546319236643161158529755866740784079814432072705967468478639349959540949647591124815893133544037875409137958125795172271010790206379153796169408822385453920869447953385616038964876661699008867535219607259773993685141698709936071058903562387228290353570991674209309229641303300408114297728484993266025873605779857295016503258345432913502569909418492219180158507118202255815539729340642217270987903118886352772532335345288140798696833591365550530349681526335184792829872057867727969071459765493480846897490599900922179301217522721436266703220228128410755696006956069676884813111991378252586184139815671062382227075641724008395348196024824627068360264956444668771035187465449263865574590937200336695050969776442403094015940985196862623658345599793238046052428219848291927024810098354308084023782901219872870422699779719502658117174041053859249282517984955547444856338310964593692797152141729242734531607386887095189523842386457872738928469723101440238347960915828626654337750668073275831939770040720754410313351287814328391551428529020601437543540574607563260865978706575176652979277999961738544486462453224367068230431346125576525635482180592595230059171291340985057749871099165004627778237276514569895094234773403219230873517178172325134405425388101421721412211825474809749789505551423828765332770518126476208208984801958752477957756023371154248364608402891081344110338213586686912401937879624109743243843860946449730977770393562179577027827773784971498124208973401231736919451940319924067519371259623723033370626131031333118717204751974656873712840611892062583772851217553971524345258817397815431307265369256955579784252626721852923421773461952957416062856187090385796584540371720919750627646624567086601408697019127658895222896116278144762598560946761432470110534030035784199902131613725358985896001670234594106362261050960500512099176088349518999881889986013607320041649423761348952034379732349943075202039345140220194758566049035846287069880110359655748739834354570372851949684959611393419788357759836949483010796640505814226149239462105725866023435973769657979131060325676925017889085596188399899661959462275050495625957055964391868125240567369936867425883316871555775660397415347585706226772979834059574498619497735857571366229126690058230619705281576760694866706832150973596802632043522309419350645443018545451316877901183974557947233042089917299425651205507818581648791049958176057667901706481662334199170121086424637122359085075554208503265777020739101357841744787716938445598513422468052934728140303763484385498301328031376598656008610815071797027016689516013094215241778396949385364786685473785545745625261324883694417571538953446680340544651814866223640637024776256088619939202178289146863954832739806656087109044058187446105642951676929614172751536863421184673861199375128478689298383449913782090968310897900324207122476580476350308229342149733375973725152980985100668062542114258068898064079706284777046276820800502278103123483042744500750929588645744299104606709322684963202689357588187702836931293097422874059257509715199008255173535905501489947051996845974060555406666712495578301226288416287298779313600557377018912779034537510515925263974513903202323597063872596340229208100992423528558392027828500942033228682681233022030892449617278901301208404667802955459981566893923934589055277902804074961971286785517886060319205626882316283184385125563067495245970875949139234314514022008962486252510718592447846665631865134752307647986442472728703361685920080310833139014974610173579380570020369618320919739365771398877936984118888820637835404037828144088621490338883099193555114308845708939780136501096565986601561142091400857820630783785853305078517063650843039713857241987413478947271930065643240912457837325944876568890634046555182261869620333973168300538796222718792438103210718468762286010694991265045998321163969890548839737592057231893561446675169436110867742232917872791019165694563236861654601248762630403044513410239973226223400855245492399270985647149273062423378292846229707764583315908438759318222759830892722505060277553961541852866243455116322899053904749115076432888009014110227320445653259282715263463237549837795206648523372584972620803247739634853890877978550647539776484739951186391771615804953216860484132066888210133611957964894636136188045943407015626375074501085448423453958232068973499529644925796342030732636866191110740534198877915214691941738364479900148921755537411140214480606303002510378316426324987265767792681229967433820124405888154774350783392038044790157249134938654880423063252685166708670296827804237028140605735569858557988179343982005461772337167985758981961059883003273921049002685838429568501424474742733150763895015647970522706844520202585448144503148947607087139018518580116168858683485357401655204861094533938323558331382633225174702520023029967342257238441375578736030940113789472991210146718142693074493617522333736268433973407208240160357765977740917762964124858693879469115781163387746736877719702064341305615685534833869182583081847602255264455749374951330366335306206953758328369701446730192856637413987926336611967922959619864501701068763317426499405918863002713541921006373246333231847224811524976773960115998555305835571101680817893827131180901357117231021350161304004658159222964610974687189970034541401801939871293894500015897909678130128156057238738911234556202953442845518024522730786281290012703711784593231931927464636301364979202734659339110710141523895581336539917905112397610651201743292117570813971198168720332780480203567582265642124932630285699996865101607966982401710296333781012593187639067784435522946951415820300175725472161686987457045700018928792851492534697226138031101079167704643533603161057911779059203368692817157098104280271813274648590089874941128524151004090557011582247810588668342159088467586526701748708378867171995584922577307822747999857088213312881214861557065556451343046427526231825737911167642770104487013291928422358672154271535818946550617866598592854025246332005944693104674841816782337063764241318973073410393490501231817208051976608763990516655959786028616849332061370477992401736066969435797818823002485906095641815110159196103835059157067087151149616165660413172679451146702828264907637614810486367490218147315077556241448096953731448121422659594359061539676810943067240769345199739230537119123082147689680630317325624064334535768528085722385956325300047088307396112301229408570704567648955960231102413286463620199775959625782066036702848246837662719908966836497266666156968781139799009300549666771729180800494740098055940683634175807687326327857107114892633176278394997177630747536099273904693879971685289028612934404967878747811875062394930556463014784152940961589711988514033859720262723502300384868506872641268168134075698873467571485237494684417660304830990690730905054747745318691325571571705627565591811180865604480988507515831884564607688168681431811473195583755177302416498994686480201942799684090622755804126872700511709008546145658525074909200213348933996830336024550490260897783727718095568808012002176993169747361181921764938134172302598726899226197684898110351674509209815202539116303852014046589723674428763394798140791956970217369958470870684752772125279096162905473861474890479618287791598617140128012225955982058399091760054006707397296095134919879175774684103743976888988051336524764399273083473731054624103261646231372581867456015594084594598524876575792069913053173994380501741165282409571343027097279843575213067219254671071167085547104594528124333623271116336037820079377984101163337076310989928583807004236713902004068185776515579803461203760361378694525703162075788691601233187352415479979657715798496953162030629766585909044182590323407514921569108737478367273354736116010188925750894127365095372679995437092701019919043346992203221610521082105352621096197661789565327329753550916690422601539123339760529144657667133805026705880860870598408158330816191334484924845136023318057303604750439448777563228885980688830633519126182795135723969906170283463113646660029750937929157038775595694036324959749086530359285667086361700800978212224057632725695470837072740102929843200040884557121373434254929512842571727263819735014973496247985926775213089770145270230319216895345365660850596882060430812331065243493942929226366855487757070938123622954186594488194723686525840191702560227653143574813514206764786762150132294489344307629839030590704135348928191557813985880054368728234007153896206814703746529254980601271282963418061586168606673001067701167311572443715839993526678749493643425136680402271111293362787312200957213074159359165246135578474680430105193619239819338472348346276308890641071876397553335754518710267136225746908144546970641027762008164704569553340318391727153359457331651078942972360535921987506680581056648858475236582288546893842844556222401381170435741614343203281281047119033195601753127601070506345740623053238733001817578345285150812614150626466142027171101520392839254256039753423934736990853752898325900261733246513725172466571691384954990744368609546866721693433979807244563405349701383654754984821679437409897015942170568667420453221460238223167609400911740471798041116509863594174841235386068676707898335550370390710305695223159563017549146617962672932553068061781609681270400291683097999274149097952663742399801403915429519631590095373823080369996302188165240217629447132500612216640854689715000757788107557528326255495748342338368570739490023824138929145468330972533426977373365006148635593639577146476625269933641000501224132731221274714769936858646865354448079793564138044045776443927014250623054104659261043519350537251140964497886524550619481859925067605599335453119036824002825580861592762098579871255029101240409637713552874294127077078140138973575042437722442444150592167024454852264222740560620845483780987666143938883002908665506012349817774863272736310565758004505489333923322586903673443974024459948598853601060997642468293043752718320685299025163653628146837948825825409995038391225493854540127879657896781828205088277475039258092908103914190558533995614937382590358176229506311656944631628188693673356133993172667456648081023553057703558604957344629961203244329430252241309496756983180221903879881585983179764516934546041907750783779757151403242944365471646837698385510936894262451830452702623914234009728131516231001272797339885996745516270807956655987456547242395521399343005656482603526316749505255773271227215067039661958644450400054049884211418691310033190234180890038755236936663712197954954970841248914198881814929184328323861022483100943139396723173222129995037551954136255563088609274104344059000669818506510564955359047583308224027582772543450938865001342867530042529830750470617231214897780953164676175473953796804180928039990329578061727675691738576680449058897532195675619361662812322740677547942175058236984119070720197936201766737930732505807990208200145106132566080905835638106308194491786117801995841216332966530564744686522743357098438972371745985169514772213854480510549260099860837496828632827156590201283161338149920608477684357211447879924046740544709513178130091736124088565670720567444551668811722687183857875647044990156376501645084287632342565970902466417822687781661569117928241354733743426344787955443929210280683793968282464260573181989784302835169095592671027311144582108181364322436464764764978866360665154548989052332826886268451679014777644100883395795321244304784279353131193041032245359657041231608363649365825550893204233290589117104971464844821589796937371474113975241768238600809239197773551102370398030480078822623939173260412862948165719795213121345990986812838422804807728232848681263917448428265747333991612729636538353269885250745921510220772837874999997053362268075709267981524356103701651600262785501545962738754740850515292397066090990492749718802962742791671652257788553592140639669302673511090460305002347409002251681180880802249531341169868073481402014426820101925571777716890800362621611248787834866392128263079441110139062067761251234160844104211330849568362672067711692325474403094190130483513966215113377070313115753715169700502604674206796694173646673548860956102741373510300475261529880360424781600332512733723923585671400787296918916891702866125917334431968196697458568382773126260315627374395613707573548951492189513496924770269372407500746875507001074925217253710215530361337910809272787962982639114572738513338782948818172288217342038850483634164991285995352331112188108208837665628901752445995388796458761155652907164423962016397822810626410094942012485392899456347952747530980522384679245197852157733791824503600039020043852536818581098196209967478802414064397925457549211400602450157669955414587909265561350717031865539560103515854235090631167329056262123586666207171062251822053587111811824132018232069546127870211809007347025523350000797438144021131982176430520595019689956254908653330408430960011869940973791390587507389202171598197877833955096091272729338424385594189274722013881400601188524097479532378090583629909063056176590304953377270141100952891120416561410700224790538279973122919263937505921082211473055093480783849534130194145238308245804518938704130529172453785532348947994228026042740734719481953120699874154662824525939445972731024505628402269064431812266546604004967600907072761798047754090940682568654430849125476370140437533223460183561559054004633104724244836505964528206034003638602203435818977234048766383337518704627084196078469012046516336410069599525747076349496214045988566149318044341008786282331069102522337815526585673615627237906463659498383872804395295539189872595679418335344313647946974003394570253228384703443911112736607507434370793415484459659541025367888744724612715184741203074298608745507272378433953848307694254610162288312916987479943852185735197216886339292985475173438857335804947804340479460824138371660014892467848000708449935316567480631859452322479294470559310035551128390842309498407422295609515104023698362729695546622216739527972364272432191841875443337019312549299051393048123285120700320898231904245233177588207098761548790461934974957587205795148053111257732155158616343436767732930864175178402189068261911797548314723557149630994092120998373109722290746477168420025265938174070651425613419093320298835963933120612394530433795385014283852852944627724119781395160364663486513642922806322496817409326128107705548423515061947769028213077632036028479163480492835046757560195064799364349595138834342034462988409151147433586075604195106233611876031496596732369564379571659062811104987025592242043801093968051981427638658273037063349530427438402671192726845208147386677565894858716684005695073840132216850785534429098700583797008498542224951026012346919327246889252977057073820191353657617909630058368501582458906337988460732459550726653099825291295500930961212047756268382943731178968869131240202390365003440051151246745464779223397684638434498361560674344571494433224315757827331822687342503077828714958230779316207647764074382087906182971373523601119372495721915616509557516706180738832406689252343225229243782792968632190289587864105410994156295296638835361282681945945311313867351770744580515612498200108883668741402145090330064615690381099489630114520626768342174393410743109837989683595191444689206362566712613731842255529073970490741240180516102846641678089783998414290771083234044419343353248108007652361120264294796413840950550717066147490234987148848655980548488728654642528370330281964597337061388824740062144341389311254904957987831775072925346360794270072470627383560505429510726758484175914443018013741371557168259440519460466571961347868975134320493497046695011074992241828972333485617306895587962912802674472941644255356341541680777080994878176513338230413685526074425965852459427428210366478069270411526520810439264491419297563035594521412485404626143298674917965911938117233352636161902075340000354026343726646447665922064570858989019600677340855670400428577956438863658743782010554476126752606593927528113756167080547141803321761267567872643177777989396851989794403855946807738268454720992901697893396646381844081286642969279492700014487381095042190998248860589594209317384452761332199895582671447585272169559405614789865059778612510305201456381820584963843716266192672875702139481283500478653027394856902999783910113235730578232664079895209273658402588590190563814774331918078008168130815423024291041358313980252400446954550413160871113849882918754413325102358030582408309132058268791955948158382551762163133459525681527759339251249279904085493198742335236042955399051243820228495169928999349739614540535800664283471406511689098705955507951275543324058203691825746600602044206269191670248572204796553928091283348226372135199306533309133815506386214411954320155028547169069735995390185591935670608203779080027383175846817058710022133821123883839545500178520382970244035236558058422330784668817794321554349750476036197035073894762496547433483808955278719333813563084414053050419611275530515039061362253185643179151868451900234087488540719088033836798874299457774375638212456195438320251531885976749630513295586623691013180730660428348478642896795687170193545789031516476342302176247944132195681658086057396763079628441893845668901486621141119727402284431829987599340579933121718417305277897294625994641114494632045624044375695646924553288945899330224073770006551142614961214361576693731982247356929224769765952843054408708903861650537972956554502052277045961157627378870957483820531680641307314924045370478579305971950395661417529135737549033872873386429417756487635711504764328321939917508718969540490496036609467990560688339780520735712397315439434632714454621213154886044702916374927192866338799866549802175455475397306033026244521398663602013677252541771153589037900800907734208282459606769768604102351592086864282622416796437108539618528569335748337157394780483123315684790050596577165707112776506193074310082652753037370962740133004817546469123111921280116090763087174080910785663456045567534401453741497989844378476859147996990132854824846994554718723543573824903179684283521075140380613850021892827110368699109054516115875278374089927915663246724676469208324058696061359950978215435556194647878365435841290879567856113966742541694953026380070768973081334021995650193963647390339474123561485012667320164484537686704629718366096532636843676502884517373133092096945489189650184240391186088361031002501005208075455310773096565939011225998255338557352524007161327956896621455550727444855053227077307649771379183367986181952269979707660008843041404078596153022752043685673014833273725311708126243551205317763615421138420541637221915794647241854017197114028373086686669507358859546315158748814706025846929807437473162069538776138318205702791096792708156731875254436523122598064408688499054511416774658706142618764168180656273779739576304040523910329191072103960952280509141323377871560628993082889105280238342672067958679440967061279405015541885056915981972734306017644644994703596222302417054963968821786785386098269647160789948233727339436123232416801900697454028421348675526349126158501745907865189610154728125560572709391231351071272795838834299051377501629037480319378057756506550206317873491660194437634918864602189524451419091754118991520233183244573227919156541953339420927507614449285488369812700183743200415002687932539331851964917996427099236301627385972548374290048262327882797845616172645703978985693366727534909199356288835094872198317990833088428217243366353116751727504668965814830807132500719889304825511599729639876423045181160247203041622899370200838876655327703025766882111347216864431789045140124416621507966168206629105077002372226743052266678638232679671137125520385535107093713018364614400692339273209993608632906205751082215413514274805540104388347187300694536705298258483965882434702220209234022078573508091253678257974417490273843150270231465044910823553671506457694752093844476428889879830507117392563012647448955994843919669817806003798354109024526688923261792124349224499847155290800378222139313779910168707143155299715019456193616879283003315927300254212946502537967744076256302246223086083564117410363905960958965738597679055110650594156110277998773474925664022305742568813901673358635288846716482985695119084582291134182730384809299742791647325882278274332782549171062583245136121124273070316333501860980062349911765523751685810936069930611747236640564741565320223561956167526477405814068254510589972469192606986646076906227781037241736706081385859400675429826024278083191463892227894996009016838264436581847888813218666386726214014951593398666649867785164972041068991031535338713690903295574594553066229522341947436510746468005060684226177915590390743662854212912097715989381501205314349387617372234399128961788328816493073701948938420486677873466690955794032850390804465866784567419824287762070558307894201462227800090650918065054612964555125264092350141494762763913161612549215675475521963526084850958272700489604649974635792990743450043584209011987437040213424147909207280121754334907928605966009700501635969714062259902392635915183963224291609358256122935470298090194303340690446228786854874582792013968004499514988228466722168068657881589490304326600256928111915485430161793154759267515106636906637888649338538068740505888927442293301143048965657430954313962285483680276866267078330977329345910835165356615895871339992382962931168149322231700674703538863011311898999657168246262083370288468116742896396152529000267667121350255703838481447018441343290667759935715092432831317676197779394276735225028443953573312917472149286762693205753911300809358013894849157277045661570423581347796356274227004496565123258429941476956609297712320643139674199441484298619957439541609778275470004618044576979457604677693473056371272128421435219837299482850249010472104663078826127371404794100329164274101037670774401844300183379389900244131153744358355175122397070843978395773400661383204496749390017565119907536912115805289680788824476751291143811902977552604295684026417379845618208945418384714526628895814304698135611752229620529916699263195571533707361482638027848166494064891951003698956506813915135402462663251782289957879604712651243910610270223598352942736577511938212644352257361560325922812893910208329373470562989343952981100631915814541325025234201057443494913235205890918659744204270937020283716743169777226150611167586740911762408717321576672014020040122791484554101022362837018997775237604877840684368265626897760076018964776774137266134399089417658588049996469279801119642103298946517881937162714558727357142019045848774709145878512643850997699754472817983109093176554308134364753843681060459940074948252806875157873452529063944971048118608597105280523645635247785270343733179306314409631876377257673025035866535069940298860159872692328800873055538434900039210571799952424084341634290270068915036927568809819948052024196967340792437715398058905543499008229545452850925174118414739941182449329071256656757726940230328770494894402107349467982370598846025040656026997291538043438683855727398130822224476269913508461233264815690981329303034798085824216332517526966494578541387326910273709439388323951293137378592991103612794684286945152754680838371123683689742305698309127579450753391196800924604263809002519241329896339364699693459012894704548644047478836708350227132286725170748473826066075500020684683287016874095988337255644405256467140132209756075072990776900346284377957462341607492961736599387213759539554535794085985709958739112133807871122606921853408314241144378580575160135612454684935853054708752905614172991218454017854492903412121869897221239084314114802623944086625107455944805896210999636707271265023773481739157371884630608008970632497098553346046029516430414906765422035018232057639168487117092178961379330088520315722257587262064291516274708830610359307676875456066466123834355959634940032294068293732583991155258358299724105100632543121849781540853175385634993725174041527480739650725511899305501038312943965660599241207990927109099564138833840753160738443690145776338215097647964295067449012706903854092042044298093411113675208847703631921723753407817362913497732639272338334046496435641725595578775963954687992615946989448387652685474500991046982820888900181548232502075201684093846990874122126881835649513441050630507323095651977975149870555251796035808763524797192724583218752523463562080809292581604637673755875559391081313768687209685194153147572747656677618999001180616771279714314476385608693679620936731207463585658606150442681510517530925343118711989726371416762695090539606014776918231309061225990913280967007375328838105122794131445075743253306577517360248057393365769614978327648136977546465518295440222264986588311300152193239769075626037266936761622865504575673429619005084906242240383193704573211244375799336241346216304061866812917802546570561691689754585017994861281499838903191637812081506771746588929724251566988631296286399989006643143071125085789769923485764290100187192714604323311505894029277969690205838483407711894299878025848700668291045877118293926217180358183127069568008629834965264268724668190789369427964597010857323435193431647539076572254864974202830104689631877220948638094090775220803534980868161013228365699528537929582148773753313950023932413215456920387115083626023296102294504628310191092120042471471601877415971611460993963902219678601746705528384769439854107190637359662011314626282343308396694995668115968942171838982483491846218818454581742947202476009183889417908022596144369604470985239720204449056294899408368618597817579097459811299631742229518262631322723391367577073378517619952204977676983840900131751911183962188595969787319116153513858950307705880109422828182600665327644207985379224793270093219966313185555868821207979214489614394141040029293192455880432460954398036710998434279205810119020414126794077818282443518376034839574017555901537692761398804520466423960617967268070579505206566663116681937012496801097795247826209499077596092067216234262649323597758336416462492058014005985703187448509164433414419144541380419611071691075584834510915051703065734632005048333422268884881743072861206652655910659792954258080240818923594689453990763300350396382657354741583163880635557229003066142517074219841602156617812840105539678280129960844271452122906765248108155301723234056904556834936727158441472254593493011117625675300049805642504097425280568050022944599825408534373146098329408492923088371016185211816570182332879795532159335687600110479885116284831993871413753914025742900888869671887823284810600620145066982385989096366091017599557956954117817583129278313562800861802790638160179451800731938751404903152637957232365342593995983935112312902375115851256116352998365122094160666695810984569020767713476391633705999453095161623802313662871319646128501825069872808165636786867303960546325920958301553501752283970038674487548861452604004886594807411098620365351484656071682895142548063250780723110702245658118934145031117049856990297722303293684240467238969805180930617979488577408820003242116994348352089730348793931933848992721822287373786464888216591385063223153711916935274267524248465432683625422655280651724663691157727113240364395238084631030889847733495396767020870247350208607737603594301256618022068200905845648561959384902973110594779506762332473485434234980842226455146744310074393115042363006726808041691625520219051828265719614742977650762372506573656602991425319033093366052239324737530019752927908802873444054217529938873416612072959945352123477526565610847455262757010984992033398897955723765232714412240182876909871036063139219568263544167746911249888877209902038316909346833933752928598171117668361695868546899507191657500864011370297984321629266545883882080841462383726675402846862538531475154696924793500603430971584809521661844264084666683251376536840321745747048444751360813855250071475326233645190833723375279302208259375902879378610547337324580686642579780567016196437087768525587910098853873320220747832602583649414919847352660389480358566386378089056387665693412550918527288806301272962530039832938076785425209703522516363363414140328787798579804269923692634534440447369260379411087586612256531784674974721313463700728164810214405946617285664911109702395497336215033402435468593325160453157675974109340015733456075172570482786110448989868578037519741495236938906525103599697256425604923136498035211373467718546743319761916656391500731104334958933211908967073156090191535453184305352387145008917439547612024525104404952204153297969163815948857277223648057325404639955142463255865031420931875073706886666296719808100177682816387282769069352923056111249512003008643759888231154115528302059247961131816563866289331273242583756133127752103455388233203086866016985393657881110714299639930797906517138714319342717830914429159522616210038948265884423912176857115410712199712605067214419026778721087880548132693205285034103002491896459881543733886455296063179543105763307955957997026294145573734572162842014740094970030251091807017970034117743142815177096341699874329492688703528901487985633934638131027889267143773648962296675960324227759068989544275015754369036469516871845078264321690207235581122797513834964821224685891445267868457313265430105452692876633116812603572236878361777533298307501223905357550609032416075052788848075999470639056519950554594843754079886196120404078503827498202808589046996003601168451051243187835931621540884743857524867127360138658184278990618149098017231297383390341914153878115677137143997899204194706976743690170851828345106108064108611527956758760259036420949999701284127771466960471494209598444787924640678538962771895743417624626572894449166756890217146583809512794743970163517154114181079174238933655980878761660165830240563205142966863889813668431967556134603727780320679459573083051494622659748304964097823929917630624692301547471683238058196966545119406039994063815105401161294910091390976821937803814567989022747937790685362351069605335465854387347034241339147118559372358322370574632397408136682987052016626916545842897411350496451863892081652611478286898838669150187499617587928309729873626859239630094730328594203716484199323204709701467678409464264532127917713742091367419559198237977776790860781603250536675896286908700495668544116003737184290865104446754205056140502883727389684086674228186856583111069049625890498059317057013862235325111213177341599388275578967876302576492767023624730881519379208031159468211709800427586821218516481461519157813995135813750263145330981438149700310042429111484986877105903948209692411049093118188113592762537538191892129581083251395441750819289340718546411743028692729097504819000135115922813895948178409000480918816553555737294446347056126578636838207633675393580532551770967475181685806345692656907547212224037916117143784599719846436248786138329848296095197620432967560810614352455407065295203141413262401555661108746781874755210036761489355793658187069185757886529453541589172129033083286644018595302950744123854491168231140012206065933777104655493481656741242309711891751353733858661452241356779470301309727516760860228495442703616278406690024458799186394293916126304054446327609404431280822393838357257636865064468408648828697798819977669952499058291232000156730887320849748799655223673093557442801280962572511428245683642139459617056309810346662307961309222901162727176632442238868194261163704723223420122374273703058023610889633157629948558542368159473736181766586249826473786455675182278123640468858874766203653904617182604947934341551525988231498961271041969262296065266569166936962332383025966751336605523000531693844252983039602567661944826553525137070600257766810231098947717448451337216776676004925541193617479952492831926697861915675311647690939636286127039086835188891734089446674673139367080959742086991469407387735817640359542990965253621886719046198593600579579055256334125439123785326939343920366617816144172805311176033639926744237962739391372543154934930330288144457356468199345357443348805947554963233963725703988184583003297943743770106096729252082417700318997146709610259969113606189237067137185439950807177851440998121409266550695810444371561531915163566827153498282730526574917469753844490528394169785713923152956737882886414481091108010946215963175731022157419846331118185839486575338883096114898992852212220032623671728053463747338619035039359035519663457213607803287530329102515195913763917040482347007114071948004886585612912894724631256092875715416573175164348691810153970444038936261362178938965624366840037492496479725681944201868362954019313021035749740881538739542545700004169933895702912117912379126462293911825130789967987697783547734120886003649544136646681296144836443535815659714306627984938449549719400483173761584418869722792172006635133710158258057357437566414175425843321870949454013087999907269648909015751484665546508527078950978314041589852376888027123639874627192788660884515349805135084723130978052935152476940406829297739261400393483203197241415246046709505350892896997342637817554356775500078255424725391129759646775777635917199579851767636153140987955771665595074292816828901272306839175865476540388675232800102734644128221297872353237475849945569651022558018820730687090528343429814661902294839705895436095034830939341132761661071619015997280292588506083242631983605754348630160050134585738972095573928879384884235316697435825903522259006100039342446460390656591454750950637596207859383203082575176095380031979293014976858066259401908207965060377835713582083433810828288634195695660360054323926682648360486361927428359573144158356241057610866935020996724287318161327902095848393035974090358298854285048180265502236146024269037739913673919273630801103756061999581810623092034366490750441811375124652729991847435633271815136537100787128214517377459267503497458849286401741241587869269904318449410130976410048675746853241370227013161596319151202453424983282368310073343728960918274899246100060482565260466704983607931628570794137907930814431829309730133083814341783860696698491417281664054378506686155781361681236268866280399108286512501413375322584275135739398606219125320284938416015032050762748101043704824577855659182433559070359378306428014729464702122349234316538019951555896415907450382314179728334372078479102587620920133701152940367094831486642296336988475990564903134681533319778418285146998020558958465031996628568547687690661496052731623460042043400107539197913509082305516849654375480143973839334499556080511250213422941176318330683438503937939766542164713324808283486712393817881223969458379267893444029115619902046421483726775574570515991971989472935352279758446493816741275468718978608555522244109337273579913566556298959753551089270151853058594277443626987457459367393426798655045384532432459837455452228167975839371444208144687030840364460565215979729340210360495450664476341283319400460878344224469102239465116700561089824895001604376578953041368153054303895442879357032767303868333470112064325089413351233877620800362474745692310133119153926080418067841527201324515554311732171492252842584185836343192024657952489303689148917483403681197480631532384020101314788913472142368124187090965566401030133938281743275811161733826565186845226054198775207745619901412627954789879912754352732207268564821531850873364440358495516673406595683892495097518146527264422425476367367430857917561600049321455264857647805173559504898158823229126271544267146912672310053363499984238614560070667279200855900293623391672114151152650647157537928310676212854106288016435692341206635113617460989059924621456827901331653488558492424111711337848766227509037832812945172032365427096481532685029371509096153134181572126769565340918631005498468553395270893630920049883734508938677978444651618221204234551062581684719451597550725530124175536935272029023711159466806767653840364758231474109325958778546326264881233501506073422223405983676192004842322347749829970340329365480368450477750140180854713972385906016928092522594442250421170445642882385047429494524987644209548059666888557640771933771585709870174509628085172628869860379241893153677200634715995712971860400745050416673580219249104021680235737765701412594149457184489496712941015515803470875373540508632875628097779097352754587991111902165789270709062614955752098656970188124319603939300952299162459372962127146200002686382732033159957167209641240076804953715042832751912720869619163387904837710507704040389542229172920496455076246652296300472780856692113641814002759625945990795670623578994711042358873170659842000420531392853119595786364701623366765300879933987282747895978299398362092231621825603836942511790044868326418442123264834109473898158571647406013694973168304733665759598829275720855837892983499339958373350709997169916876846609022600746990496497650058883691838842415385506066786256052723776719777852746303691813599392169446526750276166165991918197843817344869474610660135556021391885966585280511247402507504555290828253784866067175500007083263214985614615833060672975108557326126868679606105951846362117351944616232674375394419308041230420088286724942498894863695750763037688647277000876610427103129456647675263798312162040743963717713617692053601935648722257077594842772087907924947427571815073760906075139720308674110938205010123615871625391370119602639081808235807719071123239662308250473019001974832211839981056500111859007651256016137979654081496229269977580561816993452126772588143176746637306430243886379794577594787368628359563957620999149195265527166255655691934772991339809194194631568229719521645608583241359484864789214098358264612203732511989542102995733032729625300464333179892532151775098854458266766446161522449111385253768645750733594360803446845470764230772213083967901890347644976150274213747630103951388251696409890892180663952863425633962295039890473918343941682757357900115847472046758102772809466737293763733970052318384275937554257587997211052956521725907251904348174413352519169209441502787431632953829498461209075119670409730398264413707056928299137986143094697924445620784594229585844958437397363562586204221488044987440604188440998342902014482777610041504573103633105429852247738453254869027972927929238480450459381978203216164848028649095919318371963601696291761286373699270182669720095558454956457391875373462439457590097065305052133014368154862437065571266953836127286064102590972963498376807340971288500053320934017688434196548313568291851285681836728037399749968304925514873583105381527802034352462281638007591123459378591403038225962611747788817688692049886961755188750844927252400358784555858959871382059873181066625547312814742398969818124113113215981390041528317354929367965781883327441449794671844075365879265494749230179028671074115581929368578314014377858883642945236998422238402157754354512604199104621713303190591324609822939199212385046389949682343214785660140668113339903108466002473607637913143522591156744285699916284843530458631854285477480001831761754702226631284395610148633777771982102525148201943964207290670530898220407450853083717287146193190660251164211996792935447937494017718302058947318902035861916775715839268489873369883063576694410404502870528563495053373255444246392300616658965651093805835691972359041224106682494759297278663513009106338277236371933755166836586251545230320156320884687308081173070261281686977053752961028828162775811649439665598546139567279418038904218266935519876088840809117865342618642742890371307322956055598354524421413941961902733332317476998045726468464924618588327125372147476005951284588869613846930704020800265105716147320520624483699661299107730832909957866939004025743116291070875002299944419259508585753252432685783322475656813468953073138330393408848761035434497371255980545613233505479771347596924693799500405627101481037433880359443214263919371182815850361809397736875918238066575806068093450853268525243220565622895210320976339056547599203470931719928176801774129511942334167808659112382944041203912822492137752798124578742833387688635614860296622671593981971065260820851126642816367161472774649023564809570145027061957982172713493737296099216596397671099288643755126346456963144413834538851258450649474617266673186116114817105421174856374920147161632502292430624912809104920978068239991328625608658531329344402588886026132618052832798035029027717694626936148502765937519461137647431230494787484658471419939076396918891536949163117078561457607944572099805765688656252281397132191025523892995917451330842724789655829679170015885341681591255603564441252695381220209818679120961343443500862859300174324469973195952845911251111141778060172291085135638970339899160618856898374924081591557824752729419458278286646347554804305556591574566938399427278052474439579612982093463810955936554123078815959401064070323573586925474899521924645203913758552159562730668007150977949961776589924169104906956880610766273356192429342152151532980006310382760669284872025764432073277417428683907646307687668048492085286090612826874138329110487346257971477631926088929356389140006372432652672914913626006159926494005562635442348937191427697151139731712300082344140775496279103113344469268780386983239651637559780351761825233417564966110890563495061350590651683150522055976611892683607166071054468534151466388071651836853124903910250707333649017561590922656392850960368073482344624659595639217996539985186392590806319758214982353195018624641346438637119316166918082030071773751842620234680943647625286194066747501550641681675671022054014075369993864827999539787705063905043597990294073104568598404644215574278886359107102095583685558281491551491411718751688518035845084111707520560159301594967529991954340278505819606135273252313537935033610341856779809042648707641309724775630454664037597778685736275142404839271900644452280562872351814556648851304893260704481846475612594927090984902226102477797619581929054742509706152348701811973408015588764474329497622586355338450987422359074636000344105684647439577684113726468409710848354210603380548471045091231113176036135505259520667636705548250747182519791006291601592675557733944374927585019221999963977169332042850699202538795595937173278858621965900208117634269611275392924335671999179468084594972801576599855638642918085188496657929454880157079807629615605744556611875796816781808481049321430911412112183182179261123162555898298881476140361796691089804877227284892390589221101637665379160039390200182948588258452627775811182063026719056219931123566830719527580535287547968498775094053606082719718330334766823111694718320521274033957899399225865815640354173475769994035455384272173202644283135619317796273810018272091009550173935653528024708851350258620177787783945507149764251107736370687551837919198466526532718666904236985442571494970065260034841926385023301785004444772056071534978407743818315417147185298695418170945778078273020352980601568787674026603349780352559049466923762218387213633077597846295628849693407643771957853430516498396870968561918535466926042785149138518722564537871434684695913116570887024043388208941124322027124223207384783823805864528578364624964475428943110908711926400221614213318508715874657570206757740105504702964969598607065590241063091284291871501106239925064294284351019923211036435263884483371198675785567174985929353370332817749509617104428323347665954583919144784582404666323010737187547820739586005167810889884699815539864050409684070916647146152079971792359530004515901805804194343743477551304603219931272283555071396837697921865362953164340040635218875582596307655047947527700379439612001305196085485339930712346847936430907659756952438655879412623533326640016361573252749503077657573595565461610162723812606198469411072706907547183579572176228596691089881207141352201082644985538732311282777455704266989425685573338642548574803066085861936642933012600399308131299853511167403314732873164531625977836981304637698035429275786387069014492127493595734463785527330264136957883623028502009549768573999042636177783522222106309166028210894295838702976259221733433405071717238498309894014755011149638889536023186346623340661433036388513423173746126181662612521081874833052968917735787816511057023998612111546580456751692802022544549963717464010737696688389531658198557440471199953007532163784040592638792714960831448442084224888596091877392721536480610676094222778777171030381006280361181062474821201604899154933675791301819747500466824911169700284844631902461117855904591246981748452548650819632273123692372684986167364739744818435266057299979865970534814584322784473673350363533024772020230719900084098801336736739618228292274577946486770847218237269782734079094866002515060533241858975155102695226744970170683626238906075232466876758459359459421248508704505740029034080981821477619308714685919338913905773205140237429978731890004495452860741726398394243182236754338993011398704193777773995708828118857187683403288710391220038614484621488176278449336138938905498917395911745836297196459917646199317698524729748141070615389268271078883261324953501427591319599322847628830162213518585557215732507262563183946420332354350611119162611773209262365981658504819150045162205177740760429992907451709535051887432075985845757935380150855254765392321593278922652500753921039345147562543171200714203640419958812855823561607671215627787418433426559825517115234717513415987053243171924773997582303254731643738678604077004198963045685097102268093054412212932727950834991716436330791555527602109621197172056795800310255014299445859468910593021382393694780214152370206416714403227495267649174272376041618377428780259181465010308278927290438973128918364482966997624114385527161244522912909103468854943479847762401050120060268487195318486603245633703676477590820482180989541784029215560646794870480892404977665099702069392952731386449337760251962518464634201686495387562635681622226438361507538764796121907503596933200307931053398170972844063336993775909506952072139546795505055702406393695239461604613831254871130607564763438099522283027128820242123971145815292371579523052137537495678790434083138811829627352677147794569925801807003246545035794197770924340831097163767487822597089709637295153275071152214412107530300561683926025290749385072951702619039456173291311344618879323631494895582936038301512004961553683309038086117076923220035032647144891833593733907958749063137742580186930123094464666225203273427324055533340943871409496514335041912979580148296816470372532755445929972741412898586661013853435015141700323088566908882316176481235045905553723407051087525031645025405857500221613505482243239423666191447645105687155259266146961813432503017806805319370300979408661635219256637101292171172408917202767386596935096153407237135940369561357681482522963262691234873463841355643882452223456814683172779393832492114720241157680601700039484575386030146641981657724641882543476168708763738314367698209531633910153515929678330324404552553759923985438407934154826837912240362377247724969821190520673455270237802774010593429187840093984751892978975639631522662013219123273206129355901708966877907752907375613599272564957395863174033232081661723705397504568484844126161887976735540581940841134556483887174068990464114528285122135655595955255129405757572360644799406797585996635697900670388774770377789372108380573664799195227482793021547947937718339758160777135325134530494925416002661151550423321794284507586020919310288685460886146389363886659340549209717642419814321160508473937495568591738528631910499678845998257086047093515047692850999497552870529860200335479893908087674529388694825042292183766751513967777921141709898131067046181127246097997615752382345369386071827911519137149341787007841446737906055080128301534446156669150895594161100171934386476909746738951850462071462676495601788570550418508050098649076705434309837727036268627075916271276907747161358317558076977825846131866825420411088703775472648641021769822635823120528310580848661880272695406424758613491761706898825215345286174981376352418465708173422365783241991391688315471987932268795959661411430992646746501887934160963568138956116143239026716352249976042407038491793956974103146916034216814618075512669982580206386796725354487351028920377162175051296321986440226445691151645508827088324096346931550232214902436228994549633271063382845805534222293915601784354018779843465712745448658153245493057709072770140826875432490728107034004208623720578580452012190737050110106932997345720714264726891290652577196881600931878291784083957935076443851019468719821953237571793429812707427784060388991211696211069068290805749675649824672404779859610816932918933268744374846797210373019584458844767098554654033759331924229066785076921784426669021037660361140270891893487452124601484696900836788777446437559892739108274779243123320877427835678379064019151677365082912984588359937558332108702943154350479189543467593765608852383411158080041746480601674274294783665159334314025476791297717153851561917494469513299348251631267416622841433689832213786810183036501646845013298201181984267600134390378966906237733902330489045722695738405920541996698707498962469008061335861372143713482560777813226060329777354063427093622617826828696126316466245279010491617983901691889401913840159962143248026531728282020496006918666160358911108533127566942483606826197017959093666204143576934622885885701394123542086092520261826867686499477981300401257136823824239593203768294950383536130750344188583634930541088114746639694680423101590610979699146184247233110710099391971221624977818192187915591436292857413529659050053543587072805846875130743948511061983499323813735851315981197672713255686555941751067190573023061280268236315385961625948287392361494260659470205430908721281494297912615370745900492596360118159016424664832961747934527890978814824604455580011762649816834628524968928508962662796231034656306347879646787345170670228966684386116693032123712756021376383303704219339159665558455108609813340078509841383028990786115886674012092780268196578805041305841997994079904153609147027774827777701639689613463757395284688920985619754705991654462728632763512574143570108404495920032695092783019977971169079130611588619534211926205804067676840779507253585124912323875726524900178820785040664651841279486076095721635039347585771011955527612751745685252637297959326204797621433473259891095362022823476474879554854216104462039327581622818900852930924780814726142424223523345294027172762439823822434180311271001836044022180426699531813562101887368109549550376927483867343369727111786388734126849541616965635368392099353959967357970810563249834701689589778900275688027454297048164050640495909532243834891789077450363652118897354642571562389387507995716363800667756809728434654448987919516867606203687865897699364527969090680596204140181045098634101903066202096269257454005264105130536982036880718687207760276501870750646563398706241218739803826169804761741997251853313345296434020049300751267799123205388661059527874402951228922282397806832454347678213779873264462693590697916172472700137322368467098445811485946298314711070670978039256329317662663929217287609200303162610587424946601354848915434492802548999565990271931722597432407589322384127415126778105698337279221003185588727778541873318519634258830461371441412156628313486130667800951734057967056905488198518048142015118932062475869959935940885895897537786715117742592079508384281035060844757999631630201884381316401969685374444950863902281422596117711464672384981921674905272479263862196796012169913077134721387944410548680191789960408779335028319772724292723404324065518653334804938639251130863810123055272229759536936195799556136780815047979864375807041344576047375202937608506085861662084213637544670740680965657441193861929076227245187143834352802273403463975302337700685311306151833017099037304692104898135198652627047293191726088149607128916015342185350947930624829117930888252300178998587836299535245695937693032576793711707670362760963159287815330283383442847863850550927190719170006324867106256523101219464300479567235542337010364331651980121403696301705498622799086085884972490857744773332524404917391463884278339411814675914470972032285619241093086995937045895535460803980449566652780638162689745869091877511895955683940613730298750807640260176226663723762848563537973551457106082724250735625036861177443129906928419141211063788057428086813815847548923306228504897569903619134043560611086977280153714299455943378301119721333593552765113532575923943950750910232182469173149499165216262801192176638047844411253054677566327409561066009097590982151196971249815477417846070418348588923655752001744556806144826024286153675086030880661928913981296153383418616538862089956508463219352454993715421060568504700476510695950998974530864578799305391855125023179077894617486901773544958232849946344983334311158809099576095271637294725535898995631445875575253109514846249777120342376959179965606515811135836436315113048697182023150071125783344787718007618439422735607570481984557354283042024853177533089441214299954249854130474178555590188607899663593444793876967822506131442164361856009864341913321541855938256521201896189468702240017514319410111957343078037770170642098452174163881500920672747329411696305830056508455736544087386608423344575027983088290424122930512153993825488294261910615454815134609875508593648275975156947032325762069905894298444094993901144933954075578826416011173163279447199409670473959723849553591581642149574391694951753480278960960565189085564124527220895753678933004160564668814886974788321059630651620945629711582972271736297150487437159773521250821378288824791681548249197657189032952006664810444671964839345407394454777702862905412254533219120007297240294040974898805118236460966258465507838148019362829957353928669515544090767785333874760723789561880470557064431807213412288363045098160107566640324131762365559526497621320038407679038575932218928555277373003180864575544299946819002329728804178119340973635654230558740501639161157743705416737177467878563060843014744207470030849660382839222297710037045381572617802000868399411550117627282381997060701900056314920789280808259330158438690915611875008575582660871536824038195467123074215329355111621749588755196816293534255204822180668688652615675365528930010492223576089886563311516595368645160563026789321870512472713516356802000660948091144420272940684103287220361950775825178147324057712810314794115767634299149309718637670487531251800016919076213214753570108886158930257429598738793332817271364028420956217355547167001072942050089773776924000190206397788334569366302979661935183736675607437249014999057751118746070387456760744612966280429042698573137961720502671399255438649341812736837990366214827412644139949780078106044622662828212735250514009296541417865889751491867500361811167691956500839908955237622422964250869241381654774059918758438212184290649124881345090550443531290440375875112848748165622418839032968153008012292060146042057352095631549700204496285100370469441021357237479306436382326823142767385658787827799609495521174339180931370270153721270552786782665755661334829896084329348658784983781473026354393750688186545833555981211118005887329868224288342619001648838739191693923944649757116742910798820394585333831669766547835036887596080036089957921392689957946236861765285779529887316553604519749711173210155136608664701329501869157567986403894933458658829374125122835866778580432042891753704028719104107826352453286856722278798262436756948002342508869257681157281146542399315824188641468139509482602670290574898848882536935389527996270152045012069828925776668991762097093408214310850703227562207214620086175766201127897963968691011660756199995615965997900728289745884199229752209688229543940948187593673181755565634910537754153476754205013580473686637272026371651999185022504020429585146858197499533609440016104743059011136077952512617639992527507748241921139278043282379670815425160853884704159497514894370141139281991519993802337123559744114374652482840823123864600290691719127548168090901325763769187445194540979821275921981403205077064239288355564456937125699859862075921541625012326403654105207990477516264408862148664983878315585086313877638262461463538746424268551147909100937207821850345114919145582794835705769466045385301146140952093828832897470771876114010212230266202364775758261107942709528349951653294685981028089218143849998047669792201815584288326035209603708774607220073515068775098071937437924086453888341312482958870920821420895618057594306722213223329428511353682974715262127728563708331168847122655340870107136714281092139969184626032780116938011420628091906144557090619244187621451006737477815774411592800550497148527488744565881684593703031507538051460016261848301316656518924475786158843511613156817889978530173826949589470796131474512576232112895107714386602788568178564318666077651336496515817660413275402281794636672816603945882796094144731858371301927943281429165980851832062411988683542422752680800284276700578906800407657265890341127951410661246427561180492289141620941292991893448996424594075240421495123251276314772138730459616146839274071790392036034852546167255370849352095284911191441939559397679743788487061293998038131932591869982680885020241508307967793661168618299061631869701006713979020836828096485658665627582938991030450305924803282814738276090022662336116404055999873371786370640575605694995953551983892369816893158361273981714944150106126406092167906042684323288304530355561678566398952824086965298366756995054981704131045806493624087823510999759281795660481871205903500908419952778865582287851599888732679638138697458919292759019105512648016318239844844527151850627083508219454632848307343318313810373575564174392433517470181994522192319476391819433435805016566004245458472288606646085328078998091914799161268356335491170175433325766011198825570708559995072150221431732159691285612142463992910738648486852974954424153453936682046482724198749069533956822326906935792204730807787890882438498276589114757209628535513891224841987083885527680828058863967562038799361293311834841882952942352039683379864479201156161398901507676629447445209645956417004532056054901607498437400139791343654850336152985334626178382673849689557778884987199045751875163902378285882299249972162784090172051711489524152409155425190981268372435273379603785852969039265188863327790756717402739457482450494011137681988750987577832715276961665880338003282784381529391944585005785335555682223555000433395140536621173456995836971642347051586383326923059589122881628506854394901094078564715430669090658658516548286633099243570734643292977553969639118894491280174241929330479299580343041365370989586300328797998090969073494790358296253487254210363072974648720401405083563975963170730655113524930565097111857852774090430293464420549189965470397938010831319580294510383518658819261908075679667173491768513227760226458276006496294782039053670533196066238891131431732034742912684344434200746434615625361224785640604221841542630814110935026414008705506792761536317685357703819536332053077033852322577366000116565600517849439415621090961916972457015109136421660561931733164861240018751337804282186501819983860156541360170839648217350148821757213761852042586508186976245610979679812110564149362610676615365176490314875128665123311044651341181673999478200808647811419839420360918067902536342057990819715248422569483448394601639440090207652171907453068602596870960779386822153173625184371459322219338684130719084704153701252506539747228840849467943858740061025395012184982922448302344323280881418261254193054546081896133931375776674426588765127989679332667214647646143090714072642450410959755148416240249827633066541321812442706105113031568930296926442763989707326980052270121000812802838972887515868080239089308316731541716686735640311309942109672897446824554410271319341753820800538528574622433804692472730449604761148621608973584763725699974426805657017374449698357572454791545532232731684104255289084355476925042523988810957793689806804054091141067185748510966930417587469393116365712322763603013000596160904686971917979658215967585723070284265785464269218795051689773388383874986233576193034349083821634198684972291671979017021801275135490864930832522434898301151499726624875997745855762328874879231150893911252526510104314475833802092389013238335981526896535751260704391852019520972784788029582014257116247282875677300517687371083976973695297742953781785681222797059005649311511116977028825417304145372265403234321127773536042829720861415533305079009356761167469868338947207783674214330959701701298379205570257704318614744518555244016222470938108909500886333714564297138881245322624049143660547253193511448912041444498824662732617902836878397204943655754302563852781603815191432731597706797555554422441204585962177745379774533574990943057773934505438582076389252730119447199209056703409275004570104960505229666294453260018523552320860195717675802678821651836613292833869862694019336398756766881379119452713157038494506635826223435221637813311532547613476020496753520481783699102990739542132021131956771695872131904532181644066598027450892615665446919147554711870302688738919950711656396114136876594762895364550634561167379273271986600122529203542776757180159403661424079940769058178908923355833120423995352009413013561808410867162983567243493856549084819554378206278594304738305842320253008376532095229643782808925033493262118618396314887667763794421017544394308688020914486813931165280919150889683610643150276146678911952650474849289055863946067101344250836756539617496933266393270523903546371915441632259339923340343677281113743881077353405900420411860518379155342647670059910156996810653395310528008779728273200922311952642680821102745602810543624132096655930151940028950300026941773465380055776001797849433716423229021367733517816604072834447604858580801606683443498004007472671454756709002634382919629455743718890839876408181439519415440329658244250220617510508007030373001264473049736586642780614299909051676060933179925971103330006337119791893383953258253294199555709763959727996545536028310865587688467688213535253260314985795530138073671199396416780631544657394964363542012905650602216395363018614177508204378844737705360037448385469393016895543756831071213225368565202500235846784155869207292861412730559661421891182137054690613487553659540193891210896003263710631002486929610193858423675878987828245421064245734063893474944560312646084379185016866825098410629082072120817203818450854677149844306210248443215789498372566159838882215507978328708345989743161015182913448021869626599120018013836311592918339654488590823888334211213753650415990531598065717151143424271750626728821687457044327408975956012114980945324454448576341154128703869658862704530638086793342410210854848910823685898044405468648059458257667365495630119065650271547401107473878828693020054369111001243137469581527905162874573167918330365199441993395668763715830326833640534836989247210932097148089626881665928610885861284474009364537045790650960218043989433146504602989125669584202183868258834628514046064087893723380691812544401610060548083437413445256783493678300250951954710213682394747800599949300757642211433671423480997006341826147040441002728585553147902972642277111066024270877308916437113180999526503151401428631012936587022088866087526886710408513314700236042449336460808278330933237358682463834223770542484818700731021076959172930131048037213184057456163957741151835301905640632606445432146508866706396553120836741116620967164120431934331248074591435320236271410747953378451783930342639862306649269588435405737780905740478038326340538931264673357526365704033734382472825015730946721644451237982119487471439698556433416784686510179247511899550019608746711865171968822704539852247522989330762943883720629451434897373063608181166494876050067372304735038045161428911218978804452042185064896934105645276505847112982293166714651586768866217783254460072881153409206270813969721131638872976793255288244830440056146779972134650639322221734887506349771802818490837534797981507964346926107765514496016833655975807819228987822846069010667094749665423850015651069049907477783815251940132748220050908869882318490876361463906675465952433917285178732852165003200157217369349723068492211255194053391613083546214463958605396387268038261701057557863626734349194160075655464797160769209737850088016034128294727411935803920306029356085530639901115262167171048161167568535041749802033612184202149256969653304820373371117855822893996888214464679332830409057480078721571533183650792613794856271595502667332457709682428702699844849049852075281500011857084488698738978412498520484833372313985683636278789380329691276719296481479565849975893269433020992628064192097343786299043754582551414047006485533846731149656645028954391961749794618989417788759118349633999331772654330097416701336457025991935644714544612319221369553794151862275188542748527075521075493188465417251294834200863540028598870831472240777157606832158364039931950133300334587901183777999967388119750658032178349428896216396190138440652863059563224372625288160668039662705435405518947138029611672444357641777674568642883451643182805940898287813867437878930011331976772671702617939905704953137555617128665138473283762999347008634565944002714432161906141967989733576774228997071791861237786906222562512641521215279920157821035401612550116968779772837042529523357789629778009993910046818853459190218568557316122656648372799276997159303932828367991654113991602990702930739415091925027850436261933692539986911754918256915009606600337781951153954146510017053706179117072935405077507315744186792049945171744793357684667697354554235282210107308238540278683220468857636662741922290987634923246628850951769912110254386516158614251962238472029096220588626801866996553569699686326756853149442706827142348560337271636518202457735283766474280953765356410710285248515670562880318426784167756949512044534126880754742032547274469095388227300231444869215257867261270442194507398208221834223491633110141879754124909985776767475891216537025457052769471627842657283646149381780046517611521554815266241086076439047059616728943420260999098804338067838600575816768751357308817913494052254696335924587858264882391348164431151955398625443008887986930266914794104733774996125028537380439211816261360135956456352036974740385564939205470187096262101935967387821733506236300692713308210957123166851319223952428814793196397385491240646910303321373394130142498480307344067526816028705115964117611135677699870337057019808381270009915494579572670450799598281178792832451784372470182717450060218274323807080086484993260207069286293863476920933485746030762912245710653222292124593847979177290231895761901974171782987750396129874431347042299094254493459245256249364233606876908221512678475954675500566425965986563144534028769154009385783319907895390491368771213438445917579441433158628952468457325598655892170180160535834823782619340662564744952547399661015682972169159386661273392669989805740387074936563968792296196345764880828121145301754272006236111195835784638309458768426498501587591812159306459742715847531984463196412714865494022640418860899636460641151946022056353656061228578912480438863346886001542184436604703925371187046573689965290593484394989723988542612142306577497233314481326572190229120240751052829517921105847856509633475799731714575069036188049760231476947888781170997235873080714480483237813364753638169139574069575896815036541891856414566362878975725509516974969294017088054675152482961863545696697707179246352402250506304215216642022664234690954681407463394060621941706291721237582912924031676039129543419431320089503626695574906824237357796648323113017737465154070591984433660295052385786281577692446728325075467498704555072854659227905278523888024729741722114838650136129116653135768600437720194755113900866966322032613662182493928864304266884021129083019652479702601170097795142738900210911156034128216415928278407910519219918325342095392645778189638342084192785281939636899394249386898650134107881860701893516868443641990831600384279681701261988251130842143974487654986642532275545195572515346844267283282857221273998732275058194241389809076594635434361423391309698802897183435809093454477794049149874020868013371824811328616840672022528030885404475593821946720513275052746624383018099847186631606409046410079290869312025425304810686741437402302157504519623611727539219132762683555125020404478311438646658916720639468971889248759676873772479509870232899684844352620871785383403298537705289318643062210144801436673533595944419734270976644169083427792678418387546925045337101730388533149843053805598500866602422827249904518946349977055661385815663526314730421003875766106591732385525290341911989637419581373157573148961780638971201228573732813217136933563285389775520884956294328401487477604916846261791973539440807382330122972971758148395067810010342761991249076991440308344761975313280480088568391193949983618575741118114428445853955882002875120845012164611500549601722364871792463178650745346361105254071716780591039863494296070102699221039621186267580246704274137805933349689907688945740720253971101275241456908223570275061674319632474374752110013929010301746415702969777025995458478019465928100542478581687361366177344283771024517878194511719919298665485266871583105195948024730389313402830146371122450442963752070445061779475019627122748440231831058022885706736621255529385901954700131095804017354606405035556853177119806847769401033574461670854993591353098456124524517185405532614979620033196751032852007578637713953871650651726868515760156576301604886493994065123833272175816673793029988549494384452204400642848657785990292673324344468242111517978292210492495531564782997375097872329521247183794442773641147867275321183704523013571519744645606859001374460001402211500457173494451268248492935324356628413278865718387026419903610729229563593312825941981657507541189177064443009882967367682325157068521005264266428586213384832373288186590509216009886729991064462990107167377859284173176614849806660571989178367505264400568554110595053278085590722808679014932383019259747396287662887125203547017749171235148885782314095274413497248273526983427395170737701352186936796913409671938772624490257104882208843213518455009117001513598551037087726442506017350578802562649152495600197372444893632838623970968317320185336051983759269525695937202234909871010911017153057155532491206192427426969342516540820165335269068406294082070192315676868870404081620327893474040194635509239544841608600600879411680208515340104162988887642553430298921590810839491937510611033383680415756759552855479603934262296971664296156728067212181262094363477766416833034250379169689598591829508163895835187794092327637450520445847437835950699914751362100265029339366478046284812057789056077544125983425743015075236119093314375782359232225037005742872059126120322355221243753215021446018944424921875184000667661422243787818863522587400670015993874661683447574525594135884110300082116543071630074582862997941894201642063531091038129457546548682353104170986277120665023798209716071398563555112995496805093741727247384055323438025255515760384468269703546323703505626783561610431783860438005162153128282432315947803366098063994757727547245981238593902822626027202359559161968234959376854215902841276375692561546990623585010324133054331159595599696245613786599084938137352916470230252894802887842084818105677773166671516187459919434071491358560482003547873661761135216031807546897469940732916885495242559874966539789173246609410120641232167730013141544543161246244921205540452775381300214396632963522937431061633270801321972902084389207395571636485927739889428764037272180989731868567835688285286265803637037067523372605961028590222074118188165581673396403099753466557757834121489154577108269769032894735548827373113456777346749021375615928529018969611635855284107106169222592148041487365160296348256116057046512548309609234812447175082473564524053373777488462604080072525019201920213853142449686266977806800895452213092153477382214897179202102231271723675155624178232112197924264763933122283454424502608007734211652792367166177120744643568849974032733839729658415961723306576013165875500767158162361453490022001322962961174732547077997945026178993240597214531506169347933638816046279705573865773621395791875790831737652602731053334780687776398409561585781191075985552505879554550308139961788972159106219237478533312846402032689244197693575785411577032205233404806828975068248500819990321118773557527522199750270256871722718474416888774579655344052439929167978539893591507698988792718585360472804302488195458826616525668556803918085279881694456773366797604944352115313779382852032259511799937378183332775058505181854596813089602081358837798831202641423002595363027563674887787767736217607320183139323117153004828041166562530017147337765873391795497624543463533241621316231410116213057124415667789501553800922747185794812971382273405018112888652915339804066026942245800728229591873519546084976665285094742939768367069488167228693337629559792656685984222849933246403820803257071662153358445603827825850289042392827224566160576497455607171384261539281734842550894585407774727416740159615003003339296497408960268649222259191934981575485049915750850391409646168179597193656912261507818300539897907869946025796081583577893038321765919781203352670640086911295030873730997930782884292793385114341501696170036856582429793414515245534507623724169982250051266443234848590052897437197900007055810709851678123082715198173116167145375761430754801639362759317448820864529125491448452858119328839125223163276397499112410965559161904002793762061043213340494433823749924977505791978122452463650170832793475307495708099872696511968071604405688558805748708572538122824968640539652978292859402056221198963931460105300700191868970664207872791492565605785561726678406384019894949547725931544354745482659785182828876388193787471203897184439591151011528429474304349888316325384082959075219833889872792119601986830571571809262359749875803480629311722894127997843188142824834691989701010360920888847146509709607234608926571823795661945829849098743345482334713475652233550243931214341534212638840071485803096643173600346654574804807466473822459119956076023664254073967699500468978894862143122911513520079618065291552427391644317080307184757068892812522883786977127239592476829084411419187927115162364853079740277179373611415830619454647651017373140414737505791748691701694719333862201265034076329744264785537093764642110561198282311263092368817024445716745223157438572802961166642665644539317867225766606678909974997111345788500625927222510462886730662909080716550529224057618397519768686314960231210616408077685950349408289893986542327341599440977816864939123925369790496348342009707917996571946480286075234787765453427228170339221701837967698335088748831601094280497834980555456186956614054935943568947155217412335489178273544708515159820528853572292753509730544021290747600671054648338827586980764504049161773368246051400471694415311575431402440542822556584587261647326628819874126304926511953340321677599525164810076611257148900855676753817347413836665475646977676862353539587113243465413951752683952766687079228057293029787805915619443748371983186375450348145900222223613217579090558565778690068681096424986788851440988710628833929244102994647607929046575653401150535842487088220703782867640410954197027675335390023832846060652647586392164660089760387722864646372490971739258162891032690196260613976873697183582688220372828766344523742928000156682786079006998750907692878320559043696367063648169850955866962770850518515197399752635116648976081888606488662020858002382454184242656279258903659170599034908043015353666899027453200918894243355439764204940276022104247422774666105627155577701981655866702085958394346609170630356470485449244129027583642775184401457158721382758348066398018484776670959857828227560180509115544497819918892956475160311499692985555325434569374277852701475364307525077160857113553314365215397252482963472811066361016869765591452071050424312750314902408413808466818056003048158589554083766785716555445245986008357307918895198275913286630398753460402751163601003960977492534919011142529405927418854435134016471536211755890991917643983757671537359431228732421286060584449903095616253932344153453160573224250201822121958705921722875096061690724066563267721429548532224991098243863490031738087789640666062028618456985394229114101057313391969289369665287117349629627304458792547658624761898873918395573257662297759858066505700826793864392836234255663779950001856836347512955798390761683612345341338533142816271761991375599447797449568523827690233138647559639372235831758451099188639931534705797198440187857487179669137729309751720873781281231635037304949585656197261130996749220237847877907914834739066494687732192002178426687984540494204678054096161286463019696595180102290605460931554750125547352185025289348668185797187433126765328761187647325341501496814413038883523487020946601126122717353303855245930764781684786522588052278951124900598602407534332913044902082501045345665359879748032169743279460289130662282042241996124215097195798707158474914705368514571679729363968404096303172621664701835216154881843044449902492555211058834587271751072239593672733550715773418974678468783060389230284306771133270475594886821647256728448789734168913344427594388617175977498099549404774343636562877832864828724307072899335089119346835956335286525641139817217087857834454336898156010557660033007179279367414212233403628976374989408126233918265517557101107912598919843204105140142546940022285516174009407300285899807190384672936764390634058385605355107444838541711975595162873161177444952219444883197003651806419769197818242370604180484510548862179875998615576636312960676116168444441443829354081060895597052157214070164937972993954140100754682260620070740216226177503896997008921161692577342624537871082629757955071271680917970469974396740018436247954514934841503759678256264467843880158572960894991340147421051227951075326409610144325080591877831135868472066109201507396904302651065511080851091817429986694892524550163284217872385075498844637664707241961241409983271690074836060721866038098531281962506150818932356602079690118614868061199199558436897343417354943150371117843055520344002785566254399183315827139072705832121502132937067648094027819886791853409931388127194038571078514793266860167559683654652658394559925056177101744030585772854962104965424766271465250625756740556065826895457979207009170033927870048494219041150793086938056045349483937142895906073206323576216136861867872967416563729720005232969095628686903056765381505624769929099354309810781077048822166328510908191932736421594145294808232033099827837801225199901729192001511509629979807900728635710653610880407629459442216920254885012154632799681945942755438912037044711189194962982603647332906814007193591860069088115529815437782643586754539842377061620216041858811860496827380214163947409567472485767035606375234494979722399006452454777870549274322225636416492385249177994792565625955418967056358457800004054710477177025996139272989539836592401263107218993287125862169595378255821592060839030188732599179864408809080502281036184061476571968952598982361018211563041019921101624928534330469805850518427605592051467238320973450602996662301538307135591235869847396661753111491113476359068993282708120492252673153122691658015566192816786720252736371939356065498648704932662756478864015748085422195223982527350121452813144348745219992794417831985270670478895775722899786073837614521266683538841718531082867622097909644956588086267278400907576830114885539977056543279466089125809654788353679707323874528616597006578370337826687430958060004668460033127863983406983778094002944998013561424754035699132245860754675891628843738759196369887269573802746893119883236592441125337920628878136183331298746550940204430366223262056736214116265449828846882498849929913054993845928015278372134096907328120336094687443078695550555562676912531727295118457481855623547635046287941478377266441963326054084090369636417348439732230167440895513145631572722339722761272449970285668601159876280111936441028932110416344117037868900479492945750849602405451492712045320711698433282660055939919435790045166186734537563234117047501564169231597436534026196667181741447304353582468707212401323901500136492588694394811294658913787340199221771593319491559029661715893737668274866724235086963003249159461431639556631376122764488822192771709874162743895667669779814798073591393929254885215591050290652245699283726272822283880699838217494961458987858460575098013851931882325145033999159929526992527768071869822470545323625568227371732215270674595907931955371593745061204832181355551934521110348700230331951079071537036118513422356302546403605964960727525440209865003095148811017028590407816531420419970025855731783829359240932450010337256660374227256934220243844572303878424059767757544444925635136716189284421002207752512563131210426378953713711503241236853189315531918275311419054113954745610533895713103349229259823634800843957150824773017082295224956606033786527553992972231817655474805895144653443520549277836372878713864904894945950878672154151756420944691579520010631417350684362113913633144429171716697356196530751002102969638848448900248737811895323824661469957102237197554358393154270748819311656278421003420495424022488948786133216386773251443163128402436395761403320653231016919847830483400332141943312248045679139372080105278822440383714701442215845655098120621650747087509473512776932551676846713217532792508820923944234800688341397493199446517508800191750475876533172061844942220975188605779130130384286111770944715269277421315798799813490215531236882941407060456852220196413646233996429095096255825122199190055646217812075536916116089912620075958574850438920855273836797686662464858460319206376625496830959287356598433389700372052893038785874902982668045299446995138746007768987897246525830516666718617785476025397664477361353130824695456961294478674315499032216413578487476066612541795115280557558956656657235318373887190112665462284974113954691068727975890293860244922812581471591242114200415404997310245932779971875830692023780240713225200849384915467817568749364524357800463527475923224858397731061041826864777750271274331704411855464612298440297265845048516207063250972178833748337508652937322187958267884392434580471553953046331547710039219943916396995261098300049835783465910740604684600096245265058029730788421076716005610365586408492214438586371834675041052004509599383723444902745500599875665174362836445245009021270510279409425240506512072098075449018063314604414955434339066934513444186937705412198128423310716094890938430145568042499535390333931048828326913392819328870721158653996312426819557653511851439822389452995606665585437816040883458087226699781679580848182061356624098941026377305284398113672204955770523755948894862338967138056362807698153584165593787636820386849954140145971719060743972760178352395905680688012486648881007513665047949261690846690184754069065585681363491858755476714117598090951142216409289001728680608100489421708812443867356364077251627826800628526212134284745676122290286324565260125272280374579047710148354318825994172014835731379082957568221418032878600580225411456947136159632840283946804150062833390015303650827215936177917674873026004720084404754857814255655171212526777019396115346889407133298121094723849977083257269463854788717485570747132323004868684628205731732429276177806327456216408290590266798810927005600735834979129786853786917419122277580975298191759986170463930821144154497670915153414693527128640128701419617908245464728164475312701454672702352903346140042073455988827932651965822834288589442025037994897860338878992525446667485143745260165362087694504337553420021603479167910257007124638543375437105355259899426083527650412842050086760127562160568612939203009521438621305000127205351619865152205894501498176978099225392529702077332966672753677960832833037504582792537667925185742671751452307015131316584440086784812550459442953484105958752177541917896826453377390651487752869038409799664477625457037384564864305535736680912430292743692621439858022297868681064489168884969510236016191116270846993688113861193993214117929200650650003974502971801331339652714883290749435998444795308914818729457246332341526334777838610994217334895642340526559608802372337627550263160779225641437363118296750894266109840614556263217679404109730493581486282838096889634823933338265816144727059859078895453156563928240168690502850356945401445649625346387834017627221804147969522844051478639380448247219992254602959635495251836455975141063787983450114386734855250366800065515035916106445157134361850544976011757484388110875276855457451015728992423516314317922576887151025402410289351069853034045234095116843105222765609101951429235225552264081782946418992168202807444830486101601772059244060232208157681715139164873959485089371744900617254768841372952635431835191230617618661367885490118351705295837916618089368675262315156853660597934024212650221456865285496439992103780332162295015042972635661054303553344256480006519250139930878458470401877809127656588237745742044652547662411187954540814293126494655148867077771178026987091757034878411048605448718789768931812659662875904071422977989094901158975596734260855344960816854712229350337993764850096823819390153904716178920025278308315229111061853405597591322763983015240427612606167044760928385380992296212611842866161074269676269486370089335115537249757086079990849279469106657993947977718254923341752987876357842091546442430943938868472291728855201111258293249379152993339082967309828441395909745243393774277137414771176695334177117011238460917900414922139863103344485486861633405933462521496512963600248026249792724744686900351141873512358752333722785152063352079424504657882857437284461055450856645650497104378810438318253238530418814371512418853037629601347946898910535403768723823842111826050026739478974079932380195576391542104388363530701208589467570090749365510968456104462253229344816803731581348537916082392322809257979513464530883084670109407314060645761446205527235623778526242229898672035400008247329611877832133648007683722619496114526171387596713880970496776823201790462329678534205446983687201639574143025734637852629412436210750040119446679972371827201912665545119624717815330355367677562505319781060459241317366821345084214426028542918425501307770172729531365236566603693293140226521201905625952209920950562706240246677076379413500005351185871156668197580999384935257348198444868999728511448724814111656505365551845354162088783855434302421963226570951867055607380208410715152640370874120945342226170799617924319256610925318279728962808673975197076856980217655433037922480549016737924342757805413516650565405993925124339949423136916920256326019140812369482889589332976385991372657235136601253302415150297315358426926675273556884557355047026267881476202903287368073447993301182990070945084881858614523023998914637229262801619195304085884165259286482037887279814951714792778576474736877856764636347712333324080439689446998101653537885931846348701786213277952955982517184372097913658508105678263076612381715620750850491471478020227713833105392753630331671419540668467063903143215702823249761257776995898474542324274407547494583405136157041235395299525967184829631977180011030278392769607913215670420705236032957087838981426779653650184472816858127288039187732673302637605011872241134116646154522287261603939990937913211557040724614700626546431188610970002152824400205832522932635207673245131412764368376498581133364490094024903638639319867313669824715834620601585262228261667420071386042290469335977471829322487836543076395081364479462835868638907394332379168388476304781934441099649372845396115738995293379842786520535872529298888355398963628992573841158552160078194290769479884104659978319795770339629938023719707235180030325951499768124008530250108110367662449685349879082995778292880124507341933665955919047706249188098214732800696946853735258990393356223785364601031084586501541809275878944100939337616706752939448714725965387705217080828901393581888391998578622204374298781010822987782619293761624191280299233808151199503919023035433820381591935499746964575718199064559446763830436312636375180937372829909006573714898965822728124330904440860337874563707583598366803989499949516239329257445560363649337705933267622214005685971322052037641310609430002361475800394953212731967387024645601789047237605487001974684576697869140215785619812020789460106859902142904050500125197890678580253886275723765887017994464603740674669590811539643499274921424323073243472180676068799284491278759784400631422427249142471427324073064087187358332705300407823855975665244714673621102801766492446009412755762150643424895831058232793774620493475878493900089612258206955513717281928936409460551737271657532854253531196854379954400909758050654314283955718464893577974991211964533241921726160027957048900579846268239041360100398648517159329466287544185983646616862367936657451484035584882551638925036012690353853198462212891462847132722823418355541738642334698476473109008993008164693727159785509944078870137888716360098571733469248810154972724087684155461265143665725088588835510862283947361727200623864617990127357700687759484853127340789992287872360285488699557844314508263071038104871799770662388452486386590108340822380602093200983569683405521825731650787915025015851415935444046992342865571726645705265646666807794523558852268861016506635879599229485938291212537676699358511300114253912954780307817539528304254812729306419025106368012566517046547609134422317015497536802799727326256645826108980928518638342582072455023802682534135066579023796172465763934148227019936898194372244649173802110037502960659940066804674973463700044248912166831484119602922696047610984248028572744353047303931200696857362146926228898870299126087358759629786619172441089604505189360308757763596017178618872581692021833842000390706997736801389892281767761296977908427868446813010806036443493973953218068881048829662862653151276495090578881947596614474561048048178348445743731599160776594361178490412836332791562360396162208138043062860457854401887704978315170208564812109015589536889585043548243426775203517160833804209801268155811093206670238088643054745589545208796991504181074851569091797077986597380793808428061338935564937796358161868536197453431201311354981534301799377438593896185685667887257075576686338353017032080310904772056290170739164270919447681792312898664643359246857937215201839098638336630172730767184272725419474712950224312609012454578616838331211296666961995841745699391512508791400059417210940251712769689617438788820037085107871210115249504867282312538777928415050140673246525695678908287518173112814120921930645638424692832874841839914507559880278160412328019293601544460807685865091397390073039996601329560038785054980487512410993838970175461960023918412291610887766719666645053973374629665597474931288023676814066204081009523636384104943887909068102166352851249370088637072334566158429429966752996955051595139757144467772559206819910821870444331093910086818897113750022978485986171322871743836462605976323854434264521744038213644671938815322206067475095303434580732900828230879895374648484694057705317937002718679087428981355842722706804866333946962100945232283420950708754391933765250466576512392123134470566529198656544918320145880237628666801667062169199656097210570929418543191942106501337362728138003329445047154079773982935295326272142999382344926391579135539653756883773852148902993931210730665740158816348828859465399994826776397368894035421527563017465563078460216689083580973739080446135286845894252516762353803285578131721389758778904882956081097861325410317536120864122130185084047251053449740037370681248471827890059605601259788588768268981803571565828371298409373379927799441722730846299130843893648778088710432439730842993348408387156762958830751808906398458067462432948847461501846448720272442363374297019204473626196956849897374137198027934227667030389880653907866378920614414711187162617016302172482547548490933053584464976924572654726616823026596368554044453880948008406486613701836169352910144256824998103975430069618531661311008023690089922805428003061468424321052311237071117615721421564115601700071947366729480286411692244371219163170548043488435664931581071486693768695741207827352701235920223440291870794148512673567038092839235149837138763326457254698293866866896297737346327710843017082671685570406824093995683216722733728112547737801334910984278237016222316120944191626189177644140667877805458507903214591180587391207270850072407853671700041818979676013774389945050884962985179299998086554335953232470803054370795487693797712246956554575835503704995589973088182440753580871151838242343594847079700550403871803243641478725495595945202306030712845654225568903561283330005137221591500121991621046343967436806811178883570372427312171629272209173470441818611995185056052753761862442044025628209551105804684267881169447702613966838798849201880812144196856351999395659161293951310265840363211588999815642192955656204865632667257957840185146966523865188847383244939631303897646590377948560969081058615446429375674510463357040180005002369382358243453655303252494652504937288491875440053665960437458527788251426143665523274368521624491089392544547958595391887491140069250735488826207694493042325870887360517789201091182391745134911931672153805938303725888365468856348500111183094741376013925062525684178940413289149355970693785610265835127667181204516144408462079509771777299388514779307728666080369238462054987797832135223554915628725309231737167566749731325755621692973283874455593701712507298348188364528168904096669622727104501811435949586004507823406019239840573293225928758568178056046528720023791455816796665681793108658359678789303776641189132988310664846216777824688201337854031067736761880968137688000985974946770464961871219242002287316693007243705460351647279363821498984775366754857513009341941525415703013096902833672595869742321488392826022809535303830029421501966643284450307706503972905283950037299953384899102662466961631769264497595496807394775091770519206300214354237607210071211101895899937723125155172463232395096994775777449467203556377858849557128451168289652429205571377410547075305481286964814584463304910568644694941036165543092876670153125926621183936296605636116398856955776806562054166407000726043645805245841537159187884691394065663017606859268267463048058733308659466883012535672395455710136352391243330133666567581404057201643877570702750664618321422543844563533249857122114963759018799678937412964428286838959854977713776820827771953176760713018492162540274334750525890604868288027467779361629978461013449365769343655983721650533467164202729951654960067972293328681042116104668631194957350408415338119356382787548721472912554796309802509611900896950014791503536663207975563028653528428963309640683699917155755148727457944349256141684042385655655566724824087552060944650073106420361125716206641463117539178024210170165273387691004504036389514674505216893387022203481101244563063886500756443135331567106574503675871256965363202825686925131828175444658240194117371540579273757877387926043093192822585049927977744698873565109560446289007301349343029702740500691966163613065674234693786710684754620422702119508882376165166035846987602542187553171488561193516550968324567025332478519567630750989964820947145119452887506229255099585355989308818252299510031819815185428438879156670169307850041066872945251335309014121089116408633837168301993354865991313120430875470570524201591144504482183720772179574946382238596970350033737625239589584874511651270688900220101433979772491252745396553071341949429219673353023337725710388826891636489126966877858447238657771368105352201615647045353002304622141079976090507895156724486487651866256172422673100789142814939495474290470560622003675515580591323943876038642888609722524599232066291281896794954597871519590602123384804775110674047235894603549562931191375976750284391880354294286549619972283735190607904516237588580285797254417056436844090606558422668716879184165857220198565155947850162464981161975312271934874015989641647311302317673036673837094864368903994936335242035004982730897558052602754828266380097925909446748747176230580885463906462309479459775266120426935403734119199391190099611165637495405769442542653612495719503005756139573287816994414128032244484169008035303915316277941066493145761906585388510754133035561303207195054934817706003638490657306277978856412798047837539132377843168553944240169424209499448163757368022726622051197765505684823231418627908740720119843831379730451901046097031533230397119667081242225512668242146964376301832848628587684309008792490859842105010427439075192911183955075672122621740717727935295170747005498054528304641589915357096046704585223803068053133188988264041732435468423800769185645923713120252957297154782257207292885802440815940513717429760297470089585669971550678903766724083710581384268257946779070859285014824610105450179495974186606567988977065311833765431925366976843716740210219953742460013439214365037404828947585053477083955239967479472303497374006451463712295331370159553135314111847086814704156334082811975164845043245577704417893217248718189092438379627908891635112621288303465000798967429736871231568611844076940695197304655828518242506113393372652148092274156200820568896996111648093246436132464250119775904286165708563725174176190171895073264356439942599641714956487194601645481544138575537140267157410319434269889993951393936853337066008273232407591027010753484578783957455521306294573998779835952087937263372832962699798108954366855915669016288445512740225786151858227678091147161216913528635502133646353693963442144309505669743860255247928392448409435347900992256447318365168972351313313352573228152115130384810394315560848000582677005652889708985088796680654693981850354305985918652268065939817587632003103500178679984890329519646403794518079229316156992483337401449676243888842001543729180430553710639550707761151678267172067939524037503332756872296997756353275495136183562774706868739465266950159401372030621801848199977450910184445433427392004253848627572277887561856957722341369920758529861010139189197929066058957930150165843303564144810000622481404126162263727385823919308957156007236662962214649389152682113310066226148748178164243877698493259008557921711148038820599170009529993138318995478069560273498413823066655732445628297783005810576656898188480862592573896215204162935229121890216587166480032345587432135314195305179327195588405597322365034405798365915816779604708198241505649176466410398935186020007481664968631257169241295735640482823003688020696709970172977584806151024136264155652029607841220511509658295284725858148513263487595396564582484271886914729602876586662763011049650866780201641349587431573656836831289520914211464321468165087612932541116577958999906957172363504291490504749071110318183747384585978719842075621125781970683629791075743943246482164737035669216397696118158292446041765491598592008668652477630232695073730046337704100951035858466297532106185980134024940302020159857160399512811030196311530238475182664020328620735752723131120218656194556343810140708316741382673623795450735638959025633349960044246019548970025328916474426873257623390678669714466944432579638866108186496799316254260886172684409786947623706121432098647919914092827797601423962637901732012131833282003011659727786043808361238891469624872770701099482682060171588584326319500965003725850575494227608285708272738972807925784287752511029830055666736389488142987878853109015337723159496250376610023002454527482870746221920087204951007534649601695281118040159798090417671607468656755596445990943775856980120749667790671661650719690317831578035503222724627265807063828305953730725260827336747094888634598785709405216220431537228700361664592598675188910143117498565718338115940718201385650843880101932171527418935467688410997193934761842088822112245398299518802282933372815112405369133640619730695881781606243538742317895178159898084194463774066779410387880052923347478054653805800708929862932923772386841698870770001136620564585240295351771299489549355985099782193824360464462529922389217558447641775784120742986014420146128896298232221561769818099717181412211448261987394547667269889425912741786273913979630218798510187356548088817983427687296093955245331458618321712533338404063985514424259350459870306501812812867498112657686668845754065450901245752596360565844382854793630112133576165051019265828670175148466716962169665259500899431711520608798915865342821744096389929221782562871629389164420208230631219706129849317238113641497258989206477470974264423858342699077598650162282337095600061619183495702647869321642793612814432465089543645327517003944074284580482637368294639264910740294505209439005213410150192303772419074811510366975947332122025748758687927813102401084902789137421931248920218052764006702810479328325649464432239751381110471808567161788526598324974852753910139042927992628876266992499163089459985489244113543181137788533657624898006773296320637843035896755298389526430562633392607454410200804994866333204588819732351397748761411650395356093471784510143203433752882562973441110064791805094919956619704222603626110959772854780166657208825339653348282522409266593427932066142776957129592763518969445893292706356819451635562682653935026453757183767818333237633588124935870085823427402629839872263648733492863530626056099469097489956073187894068978917898673725998681344188099891945009268898351284079050611153643665347109538868900792384476414357341431717914454609770577250741621424857035265356088750305048228222795003312589066644648419087116623241400167329774338351627523269616695680538685766179049464361796494220771876109769686732960545587161675757389305788722042351816341207130615727375041276419109244099391857382034716793759763171265028626122464384018648387697629135780015260915311835257063035512139944242804543466895069803165278027324727541548037935635814623426413354270344855756260702511164535248819218827494922804739317681726114224234886215019906054821152547277405818498024323510811044600570914987911491623553952762960742185815320832844717808294633661632901813179161039693406564658952710613170904424246378217567007736432168895325478888099544677043838810054698959952863087717857415011452926075342129346482287364923340813009968367993380890236464598606115582719266034110826960088309457394574509759532765890058884376407896618860472067826007000865198961584062657302941929294914680118928048493408424067748980383462175099788375318917011326477501360747162600308291338158984635919259324217471781116331952413574730545846509134131878552876309368922113998300255116901162108211806116612924492404311740938391859602341066615806458696955303996954756397164560324697724974265945903234446931991231578560358739098672276087128368206477300961642007333883341361802801070445247528908404489920635218924438609406554879161736495074456269668053202493604349988926484988323730973195763941534822017994413111429381906026582839210529235810973637328036993635749256922714515988734342349604991150806835487712146120713551754006588330891914372596795185925795483918179779572877011278563629968968969503471853691267718994747390399061405681132553783213142073254267286992598002320287375752895199608404635405295253744889623558058873330867747605489932268571986274733492251022907256274712757986373004635746642358474856938457191206228930880923797128020679173331775340763598820397438058203038740827394490598012392610492426862052460836215450007029381255023102156855960156690579928705325190262812300456251169694833305675662133231233739860552313296035518271460018847388697316648805257684834455945923937472866436761620725921970325542263215208669477952111107567596029103842841720058952554259914448373636905327005157244586273678705026075726671242336768035318232528390038294650740701567677751882242296452069451637961749075286993523636145968523556115564804551651242069311359413973515674256095425634391013906375560781730973854160083052720860692024360849466730187702515128936355834548224775368098648942474352179748974187752324228699686581418685159296285421007702415327759041643398573799567159305845403120016941137187467553252952933130174996079279061294497584433363432451421686099692851354547224062479982822122959085731893112953485638733382199905106142829823268013525372722628845563688228858038111910022901000694427057712588295896665510474739661967763454282670955874034038928948827166300434530893363409494761265429377441833476528060728207313711648828751189322042418337598068396156132480640184191011525897046101556165663193829339224573085878166312576717010227163404473714650674777424812943142938831625236451437626669846237559949758565293660913790600199056373597301703262051562019444833402219823505788739240369008681312677384693632440569718145811168128789528859482702779863276396345438518643351009888586173213032619138135714360853256163102798049443126130334686550958153064076875792860592934162402078335246503748052654863784258740927279456510988904048588034831337620112708832222938250635644532824342602690513934609529370052861678890665034766370373172394900737667366885775967918891749459150977691153524157864987870274274617882363173531815780838095198049222234003836739262087975993213725785739983002324890866107574507409661233976891166781345906950963445659225093946997964084031663183446468551414895773014828658015397072061487348558088061619950094440772462564703931972458106233054159645403698832860139004280713007223125359715057409931521742577823605445478924616670493618950068419436626397285088055517772411935029446423590605380217632021862138175357000858765612054490993660316760057469283756555067713472483147836760279194537106422309966598862712031548807937437997512180180898444340980597743971070436979876524414243288538985065779178885298806776155762503352944138611008950197263284671601333935143029614114107626666338415988182544468894592403189147741169013041003073294783439428395334128447540959908975378801820090947520052965060166855324507947789092829134087740578235108413678788820431421880939208317674129038242785889562700169051843948308447045622371666198098681508982669305489112262964300111831994470863936419238175661825585153047888955949231397030309925444725008151851898022737815768423427748156162423654255693620265309301162598823388891498459514054474004311175556218076954510369400329266420768798754345656738421119242253267986734095153583165843544863859514129110779339042089345306011027204171042473088638651915675460417468587384971169387282336776461027140032346869205639114943034237387648798055468746605893798431413812406105905295521287558718543421814833049765715946157552012371278910780308121835141654014566665371244157967388536101047739088353885176160544837364065201218380948128024466944424895108345856701382058363784295510104587585433421255363060611173182681372938827341447172480974083522368248664134415421752943851886496666899481107259991556527615219025529218123391900177941040970702998891227585385461168766995937669050474407178640084268242313023678667412754403574461421712808342915776334549560418531470317592832749757869817068267006643617905520412581748816658568962493750222344675578702887546330985485821562038170325037909416802322464520996843098204623065145977976467242225882516025922708979195465765515475328590787909202476651562204956149140026691893303798077506762711394914270676862720394664246535952569491743165687076472096485737452665455354342056971041629884117096591191563158876654368423024188517728225991569950954876214394704792039906451363073534913453007311883879805105092006927503161925924969032422980711729562141982379949815188267205156315166333367641952914902401202071780137236826186279704542660240949374448371003815203669246816195738722024761029786146761829913777906429761556365811523528619497385959749077145595084337860141793617451161624830425436783778220156014721176807355273087342980323735126336598910330136184918067880742427231356888856382555406145935038110818882715433678888661233067807562773002637453592653631766875740321109728225251554274116039365384082745278666103095330710503518430056663744536990316842679152195871587035728043094587743537061801582810643970710451137866205222158459185537320013733282763264420170810173519513538307981958906923023018808821604175092140158747267804253870418616589261398030783667274424700193140613337736302803644955635810712628617042059650399794933306659929578554709813567031550665090485717010095387315928554916509377884514237214131004929307606812484339176688393737072049005641829473274175415021061711749293347998099362117345663066153011491226382325019994166783958971089608587301093320268995757879198584865158657807458969986841255038594122329783353021151513423804681969476955316589471609138435794065307134881268298754678762886887022105377907232655454300020625915632126631800641226697233285552052347784603081543378549085910470630342191453461126187237899929560994640877966932653274827744803401862872391905503402456307957291911930975044604683805100663206089361688537718964773460924238471747234557143426815963505549895557279523749018983947330408948662657732353675466122008276203740265815178584051138004694780414089330391338895739316320765106239929765957813490217262846547518880884735430963835109369569500475135756113401923082170409227405248285902690567443823907122401015634390385253500955398193756374152502214998227420319740175549110478326946516765276994235965191266628319257119929534857902876043904245652107720474040835712838489642364918575593278345855450105622998864248762699403054200909477380320426168132060927044450525349681728816367807465278641528584790896443251404931704904646032215741156971253226659670836395658085251458841001664711815164040795989762210597386475990831800542850663086858292951117627410883777229134198450061018643524083986915126190825428095189021467590377954044799619143737447421228344293576626711053228583707571542744299678022089913187749858025347068171781316918414387330713382117548362171300622424505875519332116375547552913772954610332954096504454524140276872004918879479201187052705580799487988991416683063002795511412742596412016815778143511003091485049396148920324272373030971739893979991810684112908830041811986348306533368290435914180651556187478886181579520119561947320413076891951129429240033601232864767150639700680852032121804354006705631959961333948717732467093571148190603314411770538848929923798444680491131556036832420054645827224676918496594929342310596522313996467030003778997547203917690748933797542245516763823209427368574714147486730091173014060935007566135210191816639153414673800799891914312427259417922662652403276040258244874862648381617049642939888683850970699486607708052945825770455726141449717795345920081390188475229323766641737439977240216912134190260617270635106050841371143840396508002594122195492753825746665784325634056172270057250682123382625667249832667911232941942416414880916672702491211180404760616362753959429942700667095422552657474142300832188714856031951085303725917018965324781183911908753673533084407509998075738434511558791940838219658617881116171950693250858009383287275505804266149172933188623577989482820785077703108279997510170123534109087592027613454399655206144848098339095749729909254566234950540769742383662097772101738247748950613296219916014806429487958716178055022164757494428103250230493091705225114236908799451127673258103720909138770293015514971480252918492308028238934560989642830858558174810333911662967472803917562497007600103537340270982927421682742233395936904460697318092926227442104974265513766867274357546396174087536721087870436031161382296206064822260289652499046271682188787112372283257790218083064839869916189356726678387215450510347947810893427166263848302725688968967942087030648376223615486284535096970429431958570795409312004806252217774998003359724030880745063641694335403500552705488761097840211729256032423117363699848533496149021881067531343790284391713664028977361306339853461218776681364750728969367740215830628651860070522964470255935645339035023005110251802466637494246125791691159805733801951311979924818010443900227791519791199568945359516569012758800753789788853849802981647437952750098029639901064928429564480225709455268557080779189686859360802681921950459257557511608081546327221160027430355614495721177768898453057997963607928128346196047956278905997959393313293441028453442271348533340965445296948688828918550711248729725428262816910015458743149531618358755662152813766586217986675657069895745131895296451360016004780225941075549260626896999161427607732430241737733392490309002800171418790177567603136739123852826002082416205203317476916757036903441970246534471572589977460455511364383562872085814075588992057371320145958887310649355425131064342710667114112251157271473105839812208064108304437576974955358649020589203470716437690737008231202122106128799997629974802695273995073205113797092020385144013957443170650384403270506396134364299236585547072338972042681485556623592609243967626060010702844348324748004929119561541753965804770633299877809708835444702065851942852464565167098336042783443967830954953681862442736859371935968483119362387284537954209447553097207946024646982096509490514128555328606518689948084655233028618507273176145864085429667730822409623635032986157705484886207783532312133018635076184548655019635177957229669713139128290107764775211339878968558990136781039219933911032536262732170570029940996851021602907162014856388308104828989588848181396399118728697693061681836431444413190802132131242740512984561746299349425594352657945461923184981604710056288718892768204434520937494394960605320595926160666464308033168127227359217478675457806301944590685011912426115628316367611593040984052878374186468224845667876270028004308342233817460035754991707691795219541298244008384869566428954094917436172635775515304829265565679689119408282125505988788598992927065344494755613024333531511482744154464936972318188120282685657212244887564633909433429746437058214523181032953670798324166598676784580104990337616616192251932270081978486656801435463725790489830054823134609747040065295776350257251501520862413864392951626146666760582328909332898747144260316826256303157003777406119365470725900522840586191809268113860256974556597143367971160366881647122282252077625739444772927312289367032745734120977024734883905336304657228440175021967695612902064818016343726115545541596187302968169087502447541665020040728181864414655305181947258207556286163867882451032925103845527611882985829936995732112323777340256678434934630140068708105300109957800564389535537263893179012932298544814629079313247204036502147236354511920012217285502205615234240814285494618177890161099078829080611862554666168437110441621790042533494925405167926270390393041826575679436516991025671226052980414041096750177415090390554943075489262164108697229367025951440209457738735769642921059865802837801026080368181753288166724438867930008706646689299497312112260334483434279180544852798135940438544636489033315827887561104180602168347167079398615554672935789592784264997205824415276048582686660617999534251106364991600082206449392417242320741958743723105387581672639860431790290025807284063505107273873339769812980345943933354514286289515156923351557268092828002856968359958403526003792838971931022545239932071025711086189523868973717552863028486762865339750092700727880406395830211608256998650119543244856130115352029020602795070543491646931891760262525461742466334256912713729675874351516677276872995555734091912328695455114396688044118371936785802253965129206882027874935578017447207251387704518245268340315180664004267648091941486490576862745503609591553797683824885012248975384151448052290033461289175108439463474409660175202854914947614544371970356974924824186667668823145077152317043195967383547518174202704611253075061791031043485174999211209374109080685706307604844950891156121593438671281403016616572564918502856543118129847836219155880062266962908895244102221080656492056211642156401933733489539273485812272185327514731997814195033768619363151790297781339228643006201091683686771766920731040612744220478595523981596731568282392386137691206217793779658356733187291912207190898985520917502288105714402889298189272693158692294454025203579201558392719866450381795502220738779858577241284378169393025349024441871827160735410743163953415858880583364081827199383006223502674020840816057988296967413447074886561031142173651566896567477878025633934730644605810870247799043979359949882574904318267803331851684590165262987898113116219206325723345458185734902517532040747346180605381205879284292897826462117411400497900242523939041644301633112837773321399257041462513044401263328212378283384891940306920130623348161217328783190727845743958608430743898347321243186298452236031279061656684392263098306033436194293249217291985133155393412063085914385624981284313111412821737992761051942340225971156124056961738838183196883010117466386452053490927942879680310894656852041646336573670826278450859797452674504314451835417314264913923910600352121861650843349346512926483081845881940284602430740010881222623891518004734602487232086496855800531279828583165926100235584478699108102804805243875356015430470548646280665830638043987778524791053378374415905565653280880576748077900132334502732310225148168642441467245451684111548229221130195402632010056206148498258946325787221133872491869138619152618051614819557232329180088306127199268458827113562359502457506168498728688286908575556304737339397111122912677168288733308648465987602637150914293227239781079863546174137031691560198076655772534996033696812706044989084234618812140915680851956342377523833293056414319775077890569071837420568241526915498224605400009650311001492045095829452156531514587834311583249409164520724974775121357794254079253564440115332702717475430086563767706126315130667073454739771211312785832479720180167991881227733010239449536477233883998707211096474093436575380202309664789136594628401463802341293854458627422472270619258761195600678450632953135197899131207536230698273128717982455242512302902393737741199945251275315136967581084284011024336390847758346296409153458285177866331394007838781924438393520349027759185148703296599328938159364205206288967756939440138102364249322469507751280872144278884270391822969081928581103236568420280888954550458040953116903922033384141760629091189539976251645338501984038799131087512107189461556675402352713646172915225615372273587239240389526598231670103449871677207305952130333288860245493439383981288868935883708133892490763419004340494456588211686240505921389053438382771570409387893947538017080808121413061254336493394535922182534306779274489461169537955362775066536105463496323756495519176719600992606590454121031526082503384962869695828305268560469788874668566597246539521581396138603727716324756772637277179585373693300969005916097202604637469604749725824306718218271238827315200924561722249633563729597357491548481573327517584107465852098239254754612961313059949144010853723702993755279532170342559898072514017090008890054905956251557009455161970639306687945612977372604468553877519250154888606612835610912286265218885112828083033264613558284721817465295370382511298455390749694989209589047106514940365428567647506191671589493523854247590948014976414026632619422751348310278757522481504763295548565941506881643565705416259859682528919952394846962513309240293558932871128688824391148198970269184638470819613981069807135903325404940679638919885086300450269244796938551861049693021632403818925277141758859936449765564653274600214441654893291358569657371512346346637950963411501789151664591999282880051333142007968718271595741723304762035546933469964914370443952560122709394650675217120311377455679310706400198056433154341571905940842932717872002858404694335783453168428260321341279471873226649328277891611626172348526071109883380457384054257738047590607990035015993128405736534447730616700001828941459425972331762929491148609214575733952853061179935083225779304119111731966733402483938698209352183612207338171358194048575532456659486812486712684381216537696834781568406715566853143098796973336911074105755044213603025016494262132486764352676339970675236352937268119608590144964354019797726906547983425918910348140615260833540322243620649969260917756123858711571389874992478850978972474000549184467335812936384180095428794173180027039207189240252682529919455835473720189736988103625171838783959384477986158200661568836190669163227100245495788712739992602402624198941438922716764945512690103644844210814849676334092165172301770811165695597224771630047397789974011529103807206415988612911054794310119776848677064275207838055301582400478408981911690042491221799981511233676161414675975776663117264162234824243363173495496323682184036924792974380699810587676770206836157967132869317272499286519244690900673096241762812778199164354254862461581883252561706593105635445897216066786077376676118627686760248574679346103164814075855620023178860641417926624698614770690865613411290114735535952867816265636081242614748255991578227568767161394563853196693947054290238685560377388322747264731082207471317677526798296101908721746057158586896553080718108587040537050230839848390188980871945626871707669043709146726154416191305377175843758781181923045427221934114058084269889618476877117387687192358946046295404430716938329203637656864646013940310173775204014008340078209428935045927236280903275487582099068685962657021530978330498883854779036027799286616691381730194725843896102203857206473711386003732911024370719761679214554969689425728716270883886439564338232772305730884309917705992415352581085691633117449994343380252222560330328554228459064112801279703239807582779622266455759235356846337317160452918544171453124233736438576869196197390161516390480580235271279838747464696731035812105878408564960546534687759989718367137993466920284556038362258093199796264309807872201089205718390204702571023753686475169672599019103952081107052624166673663125652928515772172170773800938493103187865177518825253641904201144280612014659811277053838151600071097140918532660390437210806935749484062070823154804150081619040286672021210762905602333550821066191111819079224185557552114350387651722377411184586511593775087717057902927215155561024576559774359518578241677709180386463691164621652874861728717700851566188299552865832818415865292824205904268230571554941106674498232043527418121660046558758743786656905650513552249471951791644005274040720148380733794321499532617586020525261680499753959007617106189905029188841858263180740016706622949533468639469698913200399361646201918326763827802701102053309004597435077298045838822038894398042451635704927185828415286926290325663108415256278652040636702682565685096110224380978402648023905730796312147531316274352585264289496858244123210614160459570186956236301692639232816441509163699091788380479660724865317638120710269588720100184971988597147039283110782675529738572930210431361277025400841807968804433355424949583667208402609923295969204525937993274284454660034916775489649482234306426372937449672454717634086864971240803400464416714871707736701272845438994087431803958007141751171297678385209907317273821475284073076972239161620912452169301986779221398733866427061156874091062070319735663630722412909508645458395203596474488079429760838935952417698597151712822644855064834439179682753070386086339548611926852148514794090788414048529852063262304548417797914025650679035922242205499128605738098856605201112851407204194553517001710290193919575919308085093702842683571318485671308832408577680042735699356387386334487593133933820425073028863840383164279207135252028300730895793993062574084647610285420156786351098479537935805548952188622634858989255638626507744300645636275237975426017238096201169033456546300949680937629419777559170837146101117667062676956896843577814079724439293232400217251156696184873030713612013141028341804714153973610292797047503467370927076137539128293780839896056033785866144276350638681744251612066044538881148669905298526473490680653721956395115213927919470656350553476532476518434061079728049358895665536969038677696066873036038886596599716096656511719802827492493639072778564842693845172986426408079662189310152046262097133119672595345706427878345466400388835234146520057370437988936081407323841528750734077667068732316927386776395798012207170561041279325629137460637018990171330826393335491166387923128074171562741744560759265227983513993737519977805061411048812353019552243138431861012309869467349517713116828908959165582668817072596603885513830450164833493682359287046067325144506221815380342261956720668715268908824616679810592174003729845994932960455718933218756493161882927480761155150831221998696753591121179559611263945728973467484577210288175732105353740076791380599370903638177334169782849276715673967494406801467232643761677504520650915124264328543950620856084900115683061149845910114866407476665965624303890307356771993185670103337524796047849990522179001177207254158651305264304729547452729391197542677781450566046535857175916543227869330001480696913108036549609141790574996487795321042972675752224410701159654551496666933052077939681541512154375833125857306203994824923096163041336870993653495457314568557830486239186990849092048171906981523643356519665787342911804801281534341977287954408065627366081551267034151988666701198394568946520608891981940089268504399850746730446718497608377085227579200449724892329302243707290408625015797736567833827371785296367814349961724637699836639327960594581203069583903228590482083107022068207718058572836130960039209047831998800045381131775871621756482347398711972900190255812543144979635242027974279703502667759182781906465462005460938869051138329462965982632923195191957401631754449167594687744131721535752218928089008571784212678541230455825564488279276864451903456946097637522010737183964123430453543219516150737464792074792889317671800462205391800050500634015886725239076493833813000597141634737226862479492169148135093846893205847435400947336767580763477790690624002555807015960639630972738068376064930650488243836813396391997203686791516655619800535336986186319980584994215241743191313577209195796347360932039600554381362325234362351811576705468823039230535662597171394647757225169411731857659742087061824143149042518854460578107773570122299990948846870980399797080697708312728259195025242762967675854034221994127288691812867147034171507320306821717110637047541415677152113961629623232603815926919256101701053957551709020664033410392778017621220919780764195447132431919342677624747514839296134653776173802089176030949210301854432871549155203841891270819277284466667850619806996622360276371124881984476192518874801707147470599256945798414406031591147849239565793135059042088187220461327586788473473544409020594666763319204247335980700074030293098089215785276179725964092575869250375990713943785722780719534805414215309390112084940474295828832495643712528473059960129496555554168823350223491029795353258301118624797787258338848907740792530247794916837209171619583150167292501584891305181832650888265170359256201588703896134212822980400770805496790201356052115011349716496825185419234540247144157496275545807536477754353244003127492862705604314837618325067671558046487174058444285156955757794848703559797682922539139425322408932951397707331851265189279853805855568341045499344969681014705087910249562587211036906470972155610303343881243954818900103252907497552021902340026461780079984788828558672409251623500711478441125674963440604197671192393268742857979434057730802081807397036772071948679317446025947748850694708473931146176775545439516025117214297920038646673019434166691303652024454789950676566415240124186326379311908365144136664225865402315783210476806717404091905651057885159713516481910736552084799984124280699923848848292062638594646009557375047013785241098101395812653030056144078294742702234522582200813681204991250786412200981199094636146862637537105757162642673326445411545376133566688680643278899906114893181049856338748845986355093506807222010177650792069072107390941040862584276860094697083925592151184822182119619914478041424999959879503385296620236583683654254957491188072844998280421294423274368659689817628791210507948552792407976267496740817760457462314991870654708453456549994874303186343101373344490353119713595974630267622232360627289859348280289242090218642474891509693045006921053582267154391749054726444467841050761437138564498353376592614640842790644736758012742557825774591026654900044765065577977990372283473000101732091448254139074559815509185030142560837157758835268060158802044304706274488611850534283605198670612478424739761097991552252607387066908900745166144432537759517945172605326271141008829282460705874641940172612745436577475652135516816528720310189493043147249199514787434889374589285807800028467158875605087992079753862184814860696092521985888574331335927901629016973807185104192751482111707082115258316706307059984977058084882158451559959694922340543870237271489230732968276499499296704801561440027438159604334302416987178719528432039786082634427674799036120993606312534965011898722126361651482170846847777396838612111692995129646664844468145882016392910373359124073151080665301604031953665278979417130563848503449979181137069027784641370745919429901992946249817853830703727242800201810263855454097798013108046355774324577575872322633749366723048360400419729104835384301568666146213667161438578737207956949145611140063862292502635019014561991955848766596850798652511885920775719007671008860179169488569760217661209379954025482692257697676739241161705594106861690090289004530049276396200238384215042458109376316660533346327129365434793816574581995587246797759278484697985991900248178666750533242595756414717363950558886784845901542905082569502136339575020970877602286526571331261600318256585974802663732244358596943349672636711389456206488295603489244180847088427201805608667378048926200938896361708710345391604677302296149391599202940166255048920238907698730170831269771372063475066692362981269904858261517268110668909952807778356980079370814126851720246760378570996071141016179224876374163213131634370146095476896613584844351151067906254943172316916650996382543906547500796471035600812856534378595941234490966955524530709004700201310100571817022561422851287525496657432803845851333177864466372120721509905247678903047750290366051112458871313993991234032566722799557373728626368073636804341253081078737698610171230262606639107749714530643123626412233855398609901512697188545928718093086811634859609965808376974357004084349794504370967968111578894503568485955706062483575694171816710862622825175236510902132668034167894429845080945268996627575566335580538110688223898582558735448030129996735144525713163943800228696741314113297177077934895937238874280711441910085082587811230159758540910583739886974214354215473715666969343097663268884966185914245344637138357027080047261426800592147893924935639086375085279540027939776982179639806571017209293707707444173356229144087552527371068259660561304400726085708152772021464153514895373771169228553156120969370936414107873857066357331899607445590428286930640367421030112309114392033537651974665971551885818675818227280348441741748222279494212494560695290866692955513258810146051002708776336867575455359422303783854420021167678859708973747351338751867336094052228900677386324298224003626464463916072044871542161537596646914292037280970935089577890491683102725165304413849902783037676651737264579944163727994726165420306865861602889886265041401781452912474544875141490338181805578897525819790925796821206553006650628438992830222001339891216953602396866200917868241877020145159054292650062905678508250412158975175745024557519151910801257689383055629915423078029494540568771320755701196737133456395666369765318141969518118240707043626865547781817429358597947933524871500998324006528352239682121703694661433548955121388213399396866856657762565398697767775663738515618431264721914186547341186680897652111252463398164854064238189207304633108047241608766522143271055587407022907971365013099745489888440221531285688154452923404699142309750247595665652041472932539656398397504728158541442400955743649071765190018162305491649332889290443220806264159559148734728876404552364971629545493764367231890306271435678818382243019841007401979516834667998758806702037662925411876082624167792677860102838992245930811920997123907192988721734988422018883085630247394473504228298777531664280380755200239682686576853658961214038793918033163635806449865903451307080244775914640526962083566767919876681018758691796117409757368483174880599533984332691186619331531991263116107294056796951073928155273646888430405228926721910568026811824120231779766599553604497045405080402831203995945591916839121735594421699996825109124699803975938320245809861588892026639922774849713028201592188999100379925221964375071391980201280190708201487471439484632641158996843799167211596046586363747951168565278676688354843459814191681689564035362089976602395086078988006723739458385430495412145905059414228593082630904781648660065149527907397612315096506376406243990240951787745829803095334318734318228050218106441943951380375617611788013619934258669448888011653606780640322026432263017595222312472032582491944072649881784922091996011583740659588217708494891617558624437999604184790177555062417327262267394574768749845273719771973878271557889648768320184377670346476259831007412299923461844766897337568791236181898603234225596741363340185671798862049980868713594684250055442234340934375879509761879977284680489285018680704732143740524624545606185539923284244931702911126566453549164044173581993355370318895508000736897617492070810026381583713211863057232079831329973630974366668696288032127204642042866343423605863412793563962112574641996764496720977057973468706244967803911682052722922291914456098428223485429744734453888339835182222401868804883886170659938506465477669247704481815816185654558416267345749476887234748474683199829140656711453027728793591834618609090000309689962999552803946418565291361375948944267848849493116642083064316882330864530934668276073356402835347382707913886569320400315961211187114251645907319444199217538856910057111699534307274248189833938600455499617994970911592786106123244170623857488524573973664044040460040266235853625246765211992313753954549164251940825040156859736637156478770085728824852035553798117265084771646085969973328659507175276274554042742990240044702974766309263131264224272774800751322228921012933083487156687798937228667742454276153714416613342185344269734530226073671631462706146560349379895372238956691782126919634969702504644020931046972112509082460873639231431381369056646572103020142350846854297907269365469196747760396275786359853861508052773572705184797325484727357926593923726143520792135740938483809703757681776510240859477551624516120732091704371659859905376788756387085393739833985690534722442820739878107040708174773188720267660654855864179756352819737108362481749684365427501199331115091754561854146007340296403671711804513780444280276530336379209340920798788186358970643232299141493214943011692690403689561836235283999343693150091393668962592840352011390860093983411353536407384449608083089970438311300814381582292157419463761224823480227003112872625510063670872143682825729197298767994277077653397227169152521939848917678344071058639156576294533088992844040245248022398306574790380724860543992792963916513976228678127806265234671485132326756304923182699831893595012542907829282514713427289714682167217690237369018235795349620437894339539269455747674277778088765703831621261054747801854869472165003509489367528331985177582326394741541394753846387071506287905973601545602917847032950608251763549869597958555193103840914610608005803018659434577809060631927166662772969256391836329892869446403679522863065156311041952135696486308735030042222464456647021229123417539976829281546589352976192552324700964028847446484178549204051991449252316279719192402920119039832555227841959282145796627642916995960964279117503143477217884387545529467627019973004730135081761915037174875202665323278405633617330459497031479409278875243228304883058244682838690177135527890200254632770467827647966176914097053241161932606600031454287166973380166305017066419534417289899671788955327679930594637193951349495093282454568616277488085220258045249524637446590740883477674337607837031472285119415823003386783258418403602450865013275291325191691983820588768614034091544849974995983747443400153190226240526071198264235681416501582058460545626166291617478608164247017653816997357066880218718251616089159939217578707008071650442815571751359669608367197021748098637727565311305099818635639248932772580577409300174677803006360087262727402429830801202859299192891109995507297530716220343612259715064505287406171731976497536884534440757388515675430987883249777424873075376351533460779454825506133374092300727293468266732872663565994196096946337501268070237097207545486810898827817991159898955231800559592002104035797756895166821543425486036713756423628311097092131052933792209607137003964777853502312973755056205698843248664254934342424251115603486704507183972905517082324639258400030007259114352283303678754092126637413334983763864546991981726954940909027441731062510733812275166455219036837054037350932065490336252782552444059109391034551401605791138690276759495144315529808265144036356252174615605042861338852815049769899590262778113706015512633190027783338745277832242146769975301759090430345430739757187216045607835552439209389713749600684095967291966907835672597956087264153535495355421503966889473102337337435999470267900849377505296829709181489768380061047878587961811316936828324292678328116559620114767393929537679058614781900215476564748817582472822739622732683577840417178036444558233251227166640143580035655172339855774805396160884832931394537263900755053662848283060408771714417153501598423108662721676525893554364290183622714277836486447549331705718224496534607788423904194726801032862112909380738997227714652236292914963334614027399540622807683107616488346538212337745120668142712647687707157730161254250279528434327887305921799595214544567049237256808828021062695459983311903860051156109451903359401757062690134731812888906806437732762806816129294928858640182157717852218799647569870788226597490359857147172334058360528274973053618686907394117156091969366483708247003928554313663526904520546559965494796010734194299303631487773766790733761247146747092271819978890928252552777199864201591048553891662953997015035275962822150572588170051009115886942616656573153041286870353865836603343976423747486448837966047210241944600474738438407786895763278387316510964344318589694021325158196658364359860055309504959236845414836871198978671212377812317463820669630228472147143059786253116269445975175060993981388088695986370621135838527161633757356076595992353112734872379636182786969608039881478922576221411556723301734337925308948404277390246623816698584063036554284297267151806219256003665432883270465791552100893912066858664302683432301369437078884819380116734987267607657686266786278488298305373970525724332941788723271506495581569378351902687109425639842906468305779284222861118325305132808529937234887408988843417876439991014223324125919939259414323086016597957665019510158184977564755145901562177240064664701709404690767105345510999913123473989212346974211377518713571182327382247674491817424099957835219873501764110749343520230641667156685494745090581399646153598154936793244376653368086511466368781146339473288356620371540408717524616777638326301479847718725938530429489961622180289028000078129345318979706818515586037900048906995391603182394848796890565273375973194226634613150244379496013971701472623072504428136436537541699878583582811259841579588008953645640323847877437760079931250247233951090895925024958662487183681960398601218648542742497130986599060736103035467269279908401358692619221439967175706886452750766721432821567815281010810500962424860734776770736381496426631650087543635753361141807666620969417683987900451088032028113945653697103505050165549207262336207886292185036730812889035810807507350998943656014041640489223215411487637609349550111835582901446528456752011459372355786018921297792026684229705600580801136708893839779851363531758085722444750777351738069571529432122590518805832418580350862466150500586299461574712622781734985687606192300405551259495434648211649267292034856327887483587693699198479426599337566136576006617888383020434349299966732031259355144577285701160461466256479974328854391115775273305239598114375179582958792590122430918770063869194863990966235694100718211261244113813233671498152952893177975845269147063941535937246262049206045529987314812645547358913945414945966641766322104451273191824052325416476965516713072376587821927120333618974828207563957014774444943039551649745212268627533655843261031151625830191112532475488477010877618530919334251761318811833168041020486568158960069734926267880010803192211852286228899866126179884267778939686849419245043069073782124896515149822704723422650615305514400044281570214642608961003202483674920012188364849992580888876161128229483679498164995575918351497238289817340207430570995636929731755765990772236333492570543782664523433249309312844074433652716039020891931012215438113308471253397790589860939368487073650465226474325644061162029998090717132007881913378269612777161716743259909441804346932667937622296572126136915731601725124820949328354465771994779922574373518364518059925236220897157415231838737343294108395745237735859103354010229201851637942411689799689947192805399284118656379208699110593326590709847863117615645343876217745563208186490955085768292859195623128586538786816510619118217662225085785768702760859519553078677632563276313766430788852482611651401977097571716603399022158146712314984665054154851106363462124024168421082025819546478091691105149149947731601994326614067903530865213866526359481249046569890172364911780057767943830180863610587700115903294842384020870886920886012407364469079790226128385366905626744217296463080768065368937943503418067151744993305493221336782288766178364189234850207661824991819148562187777545880163802677808828069883978462139422301248651108647624299727608006413896739888012703420187225868653216616009166800847949727451693086827319954987821052994301709328460700492989238680872571161183586392666019791846200347363228306816566069874950767613940602805048105446344954476171632102329879045891848845123802076755935317641307704037583711331089431443029979211068023053574818106621335761116375222756495621910349821425764778132320201416831107290123183969814874541212552160506161409861601428607265795066449370458968544207772043365852365626376550523415816481130425624561323293981664501700822678190323849952329479970160315782213424714861807970728618477010818964890715570160097115048388373411408637594645696472831048215080205502311339254229740442302529408715029423379892236855928966314598691839518066613564425366225558398674579501136435309418998109028465459953199563731597458299298576905759436046085670007982199443423490603752645236029980699106436801063155481922186411281810177115561734211625810418704029670020170547623144128308683456664023849082109917615180544692863817313271550812135677027010918658760387365570262479279010756763428317818115405923818948769100429511864454021682184789694624848301876756910323546575239465279251845594887146435682754542865701661258267262970857322385966094336299262416696532428108820742421213323575120284023326186595009154839854997227872478325934512335824933977939674946985158928240523321115546628900826167754240610196559274994127147249868420411419428963818350703314554748922988745738023780723253779520780433516222484506054751775877810438173193475945910589809198864071042145503924081045056072240440358225867968765725149770152367174600638773209563203759589297352170957888181393799770836261765350030455204359688070334285262992029065008026179827756346996390864728754473677413688489156082772335349199711496016845803348909606360509063885492348912785585330451206478425316159710325706871259521844392391209660893778226808209035734870561991729502449985187585951001458930752258037418320409300843877528825517188903374042684643453323902810380354270915579413256625655757485929570595919331621946163121021741143397451268860880674561573109673968273643040362048321173399124092923346284555737379662280783481487214711428860753402415503220642791147488241024636232973627418919014085334231911174879575116800440422385238404403624474755132442259652116712619696469760519671710848165869483615841938974498025891636803246922688936060314252187652306857853755995321466786189749974698515576793689379843540990491765183276416118869719182703905552626938610718813368100124759398453795058956190271668632880566285949855218017107790215256325532296107429745137678083235185827881794370363391454268675486770577769639230930135530039637723724218494358457261721052186866378786823420646465388120704860875370384234538979872941829397373844712562263842999563142375140700892998164108091284057689153033611682067410619579762320628914701731870007674128689841330438624881659889281322916580308775355946493578490438611460733353469302898758044607270296971003682002928895307528641285882765679167009903916216121943306709276256159219430551466645953865026730013851986283555483315850172977488093996972457483369509985653588015063578701392631333913759550334897742125236620357413126606892257395148357769004956106235302467451818364657333821215748097896661677233654405796531295216454134299163113670229927043668343828543984842881707826206614139632299197916676083549056734313332716032794421875844889229642544058029913420619932206437723044797066127863853947069900175787307189014440854555440886266473308166545090498351839879675431597150773318771775427822310601532185746790598384412755515219248998851182323500727745573229837393368352037056220223166058953557834942926273158023121947814491829331592603378114391615187986613387543244173949992893309990040928702579446347515123410775028987918039853421336367417715433636170742741329756075724035166350429536026779762546862331605793432544988158125058389921141028818113585167598820343937356891787988582130069560394440416766075614155949644502080926814193248767669522629865845651267367726463310300555727219493407846069699538209467438897284036361948660908600625475617253827137642925347596599711729920352188522830749199937450858939814940131095022197526632721610383421464647500448334226055742036527118520546853020760230232932349964359063231365318011266103868018240936353056571525175762202903630812243914039129301843192395366440502783510459646209771539813100560820408845271055608846717319151679407454844483746691450333244160806939987587291053916884068234175119522462898441578495928586299085860179080709354790249286439609304825470686829292175297868739446729440173709702619998137265200886263843178633413610436423968367178459491898238428219294433519133877205713985098138990529919071427946215841267663279669895066326355540738714920791396518817975066152651388372251278585400223892882126043614051328537861959313279600434546371380780329335619889437632072669344851437377308278236172054533392974329927879069559451613277191568130737080032449890242641877839979755574135212338979381519066601951399068960259080492430347368015980510724669717429342891355612901647531303251769835307033482138384799339521400079429372041622466199512800665529419347899482436316283775424135213220075963584317403805092185717990942337332076414117001539654737860179377481416360809354970691612211280892393925622967084187006545710191106124575251388108520619293894266698147720785376730302600316012690160084383963447413855038821087914358693305627696547339014202721190344264244521441141063177858803002496600309545722651979232009103558274434514211558065571627703863151625148811630001466961024596251955153711577346742679787944931538132960504446825582339513176046491654365380641874516438837847276133932229534986369463212110106668419224054934194019868350611713654831311494267639792431800308209447995014888255014391992105625242140049311707831204388702498004368835549161728786013082672549157165740591156386140562159314922407838048799319316842159559838104453363846719027098970252956592088191641528521559710346143070042839200188823960866384619086032612405077186323665679694896662617046683766203893639002723882171738047016702972901332462384750210259834986512731884177270386345998308452880158423209550331645236072856951707000781576803172011512146860313545387487757085551711717525022987380093211794542997680902406490776194783658149679078815360069078176286692152361192075288237042797192215809387059875765478307774895172692801579726750081077289089848976765987995831905545654590382628517210400000699897724098602362931223068081590384606833005562733153123572452219954295834567722069438329916979165470055664735243775884454425898463708548087253755682275512731875276280766716544653494017521255030613489288892777755869766769966206953582009314931837724601509816797638525929749942651195925318890425196017138704725799966144027612489241720486984092742497423608554680175309941979204805376725228719879055894027290916222985430707969367510261874838673404620803897606367427846415226748199666684373475419124891468182532117103180121921214698180171064715985471879963279285678715644384359471068460519431789199641361649096673877532151230253931545026451964928711785735214149839731978702585418697671420657493942437190629252890494552938235027432275385421148310322659999097869944963820751184792025566348796062542437596470828351829871381060479906038647645030843217893844356927146717884147594999771456431204077500329629243197247626351500301139360013405652316126980275137134320305955256371584906895517086253004179056806429462050494448225005065076499381498927963266126575186259010027324913118670773949074714500972144959918685095242854197499003103056926123568275668839128156945935408637671432033161941219586647814657644934777132032464753192202786389109770581298392078439084437606323893414649733523311756238159284052048416855161345146223633895141397034569840045961827599603182265707573828176847448069548607316150376526915132094555294253671042276460208445966785506382482808379643497472360920447273242069433032593347822348637140788475562815763701302434281384318043725058805921771328733664538072903314521913549878971370953355106076252709437295945728133196011790638107654144871412631009307801428078678931988173969296523639945809898242106832255423344117487215307094402180793866069601268760398634964018323643984335634427817597519780704540987269826325471379834845446657639645032700570315165662129685765259780824137356863938506345998490715830943084475623259038360063447743944553201808093036107624349891990575134713750977878956925758318043195022069797381356611121423681114965669856900523182198671152395179428266976158575961185346046718210920447532114253737763687587004807786658497597425726833708188805185296643550075429779930389496940058059912096908921136982625791822864689523604466852001531819491080935394402545643475296299470773115233450675902725945416058865061367951888507801877352756231639274850235968603632981222426367667310205658073688207392417001415739766932305705986894547546236511018264837519832572988203815314053058676897622070457874708671600716548860237532948169806567778809929374510855766418489275346099319239874509181355232170327151053801246770938563933721167526747771274643922643736471279928968460715613907070835771877063181036047901367253415815361980788047619681202974339933402365610016032207940749290587434925973437159619408925706119369619068253512451825404173974528029761495145445976571963957495893395926521595892608971895860119223489121609082456455277145418262510306642902701529558299037936879390179248078543383774056049554868032163016805666886982796354917958824041506941218064759104169353068624837044120212281239209184175750691610689307379012615118637447728627496824452051493667051103151080739147776618785925103669627944796528000974686908017421863203115117521219657318451831114661635337291394248050349509354265211540180155980946843400916459964775659105816883405599721157295127634185886142106887660693622276748196477341381847470324249580368089966902720520171072424145142628563902993289103595880225676851040781811792536705645066755460698644185605284184503672512581592955277843098891630653577122597158691168904547101766180572561110654157739248729062131037180348788418618940160379205778093377651944623312348797654759433454933327473992633909739208121457192140349724140444212678121232188421477309174558267932609199764931914395803517537756244214171113654977929413921679706888438787167572181066644070154818975053072930149629451667690583519982047001602465045534099850880732178294804159896615191252471019032491511932229040489835872441617299780225827728512413145253685823101281899817228606136585365341590809929132854050123302433088820719900911509097674275399134468380069120688787848826545287670076282735077752101503009020025517193378692509585644767163077231356729572841232859113123380932500231297475628951558996624261725969770483590012439996432478235124279604303328970572849446647395922816571712194815468312356254782234079015528662059743743146226882318567787052997277426154046397439292992272758390643334667645965941584664300660207027230773592971101266902033277047410333035902767723458127680439798351532215211062538916834464416071853446059696852973844322777158849637468464488428163329715634718548579549027589069453781311845269879385725205784991405640298055400398014557785542294053444783918934476532075899305272779258541996633017111563001109610518980839380126676770381159475379871740655041121783452469690372752366272516691649465436750593622856127714908013325909895958885776151609087565544024893676857349657882639240595217641799656820568644360311567153627944844545189569563692102727347751418866803138694970155784790869643887310926606159855409945672610916607089052293270051298629671088684338425290064423441597936814357717386726392956211014450135794018764436823434184313241855694940253555710486703461979347067694986436097591566532002206799989085963905701569014638636450557699628066638362548260889713617828977228985197762601058535747764321559301231233080327537340566371475998755739265166010827954040890489485070411136006833744900063005759044029477946480881209809515228897849285547662132663543799333720451173408947758620755334301847870355495772080678693429608822143642422861330385914436484889987758916792643612311835810746092157020647055031214178924260079034611079328663153241799997678600029157461508695042877642355751456767147274290271471815250272117810867393497368579900489658223359130117092779762118933999682746883760540293061592142756224871523064283694853013398623201196876897241200651866942053842326850267896632881338446928608198983844545893207224732780328050899707008954201975237999052544727572034226089607129089356644121496948723623382001113148975689188359362297280002867666039945642756988099265363378160220674228577584382247750079972106028064570770598516048663014428974973968080933271895586921739940170624497701113594078159402711572163648328401312126677899895385541511495267899801264676717768904054057929390470184068481560978283697153407415758876188241386657991041102243927011728242367338542159406458415639079314765635838292313119398881489394258025820495080027198706261851160140393580774215998147397319162878799861436078346707950384614363619134975525873781603806630588837715585763827389117636245810282958278144392119106687284737581650068767150697367270146859112582806818765893186912091144775440724487060481311256017820183052568606162362420781262372673783660992506446079284750001469729910069052174469828792488647763915980347284605898180689762986411221929495497010033162866393867311407365068877822112865721601973834271450899657270760239339003300749755667131988343969181670908788129256666488078946375515949925148449469521114388846448934996904409073930664535141835098395288802136822290585168549938521903828165806427130281490495284741911172488435977257735013913399709230438302396172334357220683018320819527601282690966890894541563138953119702621195264323646414162991547763187818237445584689245910543240623156906771426214313338956884276931887801225134635870740064411878829328893021360101361883740752516574293931559166594950674501706764808337096171766497116574998436779232801460480752284006254178411417049373647361904780397952581185487358244885552402379770625939112926099168527538053887137051989718692248592352952615537470408644872156366029963050135625959361556659829360881329790667993881351088725309575802986966085644973312254907530476346314120741810880888361608437677309938598289687402598636672987008980843851723507000893240201588404195035071331662634183144847730987311578467646615149500150817593859456367286881963855866377248522077740886638181328020861434929581229082802797920772668360577605978679300534512722127907224844268521126595532073357863695042655512186302185048123774838743334564288924729602882458127093384496649898943139396703124783363826395014373129401888015664256078816779462485909393046523025991383589529798275165821011414545600724177344510372941570762204022375927288927935965540665643944082196415420029530905009167917965758946075388001056990545058586913866156558538425884254851138833365757105489803648368315530748842784221062683296618519973309015902136257456363912542767066328965534439801096013608349398335873824216148307477671589328516705867123985761154405630355578405784172600333353068985093930407456196083432641768861301544042469074211983590939599588811206090830995034885212684854298841260940782426777596149642245184224607576591945716283774931910779310662183160505327197224056248171935931200017321239859662461120473135207204907424418085380171336104364340523285435116079314026211292328372522525612602212710176490375825046350915418737228888489174990569568227303760885702783762246951881890762672876849546712113287866232617829529326620709072808233375222331427835634531522114779247532494993575843797038905171572935513672587388443592943398643383594173054637028071965092026269311973519566243223192504464921000207672141881321187592549878422420539542066725375593042048227693038035262919863140522851268402177675396782378540693091289148286497069365830385022502353162607419024848433540493067675136464425124579696980490839188859604140567475709530023147709125624034840685511276728498958150809303188511769572773459680517805707160139204066109353611997331006678488321019322656894867118836041253684804258122675441933832135944256392827856972932500961482662138795157778565687620367297969732718942906163610207085359967386008415498681522658572041546960869281726246157985457959439404596098599078260796100918931925569879519169358609309876734876499824953897632325760070381326623275967517426368061888001576480749550990666438221503838557911733957453855933201797980600632454362812272377002445832312741561816512815316058810041378647727449574173749502985957375301576570334949806059135271316428024876232103689991584706573271895085781329079239558093435581435632459441811451406238545818154591071322213979581651860006690903038265345277810750568393151104549909638633491846441181314440410405940712680503643796229800171574150153866173600033564047781067071012287096322903486360546395296534321947308932198014448667740343171085804066556734034477563840009778750163805873551527289805039867256286633917250785722727926898523398898443050684612108057817136891014715497982735197578390687103945804717202131468604657065631268238887384382833979901026257190926922712772696006398860524618944532171093933090180583916072724404756626268368457665052620273516120426121132121741103148150898655882099792558487230891391639364389175552331192700979102659397163970384772851824745580308941611462793349319518833969199481793557801155934823595996946457203573076516855875292946784532018806868260776683539470732604944835128687752487680737695311254681128526533635672645527527280199969425244691676957328917557757969280529456986606456245945147305284922750285758673400605365271983360531084991311949831438695632998366494199498021542841189465698457295467189979274368128584447629801199385811373515805585499484140359341503674955342470653793532647695995197242254662366200110799399739120322849005382663370172497701736020531806172233945821591711055077795727325975269012078763584195743648767663623122348060678732599078923239325025909645495746912647839852476034621685306497053571283272275808486956680057952837019490438821527233853773132905360980384858871987441822470272816577428411566103868880721693538850634017376537320693773309202932253852901894937712601455883454281105967485646984498535478203670243859411034938123191759707408123081966974407305238994958622712421919787849063725847734014286340445666689878937786889170712054427086588205437062186998869957880101972479108805263466308146769036676619010517450859975224824935402075725461561501031334740914249010997437328532385689112505480915489435388880774894463257286975875528285980846659869646631208888065480973246411192557860958298759085527072630905137851219554002354197094762499365184872020997360781498050072497711948073673965119223728274020580184929645903073667194741843162766480817307016027996106040313691805850145939841324151450806364558153761137191089427624167578313376276770992131492445089245250532545240793790111512883950987734606109570046776856490085357616364344112613916597070709184257123073987075092274060914761110626116200758291224241150696647618190094066676674476256016826979361524485882679807113147405482247331888703200377758862044968968062141498525094791741556701473222274603223531152854435378936237588224456777755573133862122022771445883207127410188989482517340266058646169539198536174743848357275943907017733065327904347255010893713381468419438370204091115197736839141575127007829616972962702608719193947000492478062384033813498182319175435499286231069443324316654201885371369399576376357576525513291933031429700548428825510112520469414531107725148464910805432680664046651457086668300865305545128560072812367795870020857093200029809841299556400091127933170120452926969141252920242278069136945085333966638644297352016526798767986652134318551967760543965870260653288346354688034333026028269605713325101476713024048089886960856084859029381880535731877194768222485562057573929501454170541967839969077477216380902104834835308311307647134025271426473173811961775547796653267097035259857352995902493411343711784802702032017929328382029715615083184531353903886469471773327520969670524560578321375170704490418317003548245518493171903702341205194263256485587322991909536998102726169719070860804603254614752235100837957893635607890470696791443434703262234206514861764562401285201297025368208323123943487131287555733467740696831351439973990265475960815252453404411747013732586230934374977558365664269655104188427798603992003839778402942919627032814603465908103578779081087879039649735649687845211420532211209340612271150653652603117484540855601622185420620014087982081092892764103764837754434577515263952596215874323802555678558960931566808336629726035384587367591896553340194784674357627837757134269968936450268074188853336831534618968556307363179754467447698929404954923025431826444366564465462864435703191208921595271089983355077158378867458080424022006783900399974452827650886827212096467216594080131675755401666368808884642025305116968032905941121384890501552766761602707999938664223776472746434663298345606053714699931823417537411514605309062857267655628742244042303287603199409911539022553530053732020242744629760296837810449058371731976142476903495655825417904977448335730446649418495986042967540700772649360736664693987486255426467147859047372264695210179037467252957621240410755640527052716649351380502102047288149458916576546273202985294570903813095873495636049129971864851165983909328697120081591907015346772577953806851487793477644808365434194816658674491301787636661201345981224345630796396088569912843922344731395163131484943385959368567723355417185702854812987562716728006811880823691489308661869124822748080034201237901496639718490212036753296356456792777690162687305116962410847878398335927714160987543304993843875270323820328642370814747591393455634638951664425762338305892815405723133963715207329176258262823756664528388728302965033894796291010555115887739937423841668624655759580162272470352565780259033637624173009102649035479456104874775072801834306536316773394898412237374424098588293016806272517513312975156186923220579423594544894046463601352605397014389059058136010144991111994254215886665630802247234333712980512180232107816879728818104342936258042480444818667229056490758599504834045435999425192543260029622743657093006296486113555901962125859370900354193150693396374205197509941134187495533180048709015234291122932683820530081135105242502040543437022348243650846067695528171305339849831943841072405093926913441621819669030619133856493704067585550932312830536074109898442858026386769006411023508361570383749670257897440797589535257313983248249558478458962214271366022740614378672725050813103854953325964776627658147667122344429100360545286483827552450347810123905365638131019532407705775273919179861083168424270147471152483858705033651083360221579136288103246338181073699802571465261795914730263284634570319465526589725890522953697138890233999350434066105355459556102584061789702439900848540192222382017583858167037057188173783094009736372972538742149285136810749482784922165377919516720330603370269745050573807183523516984023257611811947021121687207398502495277233515753659481217946473389511754362131918606206849990385827239852687093447239843864773703333565053175432594410878617074248160185053386007553028169669955721547155709051410797262020775773036638680892525290915647235619267003151621457976386217859148853420171121550296407868843226621150078377847227229369021029511968776147450313083028592694376117672966757284347425487647016955518146047986031517420385394990166030323047957027198997060536153348963974980446710839124470284924004349354033435999524626818135079376125397432905302443809306739345520969849965889239176341370620926355992829754988971298082403763998362872607115590749296495350531449927999487242102761669958332234287169494884813677268282930245949260136249339912993141181198875363285010144326109866567549837506631448683434965129241662404281685330348227206062354176015021409428910709361142438137413131193448867606276954621820975164384265751113613759230434780975856059622681387304192592110618821108874835008820237860773982235049517581965935427218320798710109730216166598664183154187549414276527695375175335553582833415909663097759654342055135244794109044255503505014957961211478681794976138629362498326944668708534202981691638585439501088829265788248384242314607740482660376900705581434517724709334122049907430289815329760169123432432917411525207635324953562667365371317886471887876353223680973791014044722594500497343172813339582935576752797587615006424614905395509721287509547460061837819620857352761661543884490712829579215552847012464349137813854716664418386785986948309990839822298049357262096872081370202939521262731064396590599526812997167792723002564142735739025247163659142197844197850641999970568015880126546058102977507173571447132512089220551810625982021377825433258057186445089093299945516714005468845081480197171343887407164391430046132357844086546620203459623587222355888442640523998142311564900901240676209541004780328475888924145235272285171990476387153052548709176534903667522261501482570641833723237975767722505720213418472347881584048166809531029630041770209724231937017839252901031536835202394597466488046231174927475242174470682516604926283238911540053704704134795294258185207246031647020318558697465145550249454163340455754651007509402297467766923466954376933293217378691194958607973969202703113491660344012370540900844440160574446636708743051308762724893260154699183565162423446713758094803520923147248522102574557307008997546407652570159254175796637140012579406543036736235806611990654146860179151426693785351930674673977948697778435928110365322925826246966765778683073375070883285675935128802781578676780324434808387358484847584975498125676171763346933984871094427569873008645494383958957197045131505485746900310837939485915507361052819212751075560649482159610400182083082946127498619463193065955590358145725439863299606854878452374598375783221081649397243175446664001269178477421156340237923488843638863855370551158702753628315184225296847726506635684230623754308025809952079464010249295122227044318835300752630934816720072273773045944286618329982915222877977054391897139221800836208245146785183380307851127013694910772140017061032647880769429075565528320913824555122283441763988781567705335474339728853770231680313672127387352860121730893544127423285366183325068883758745736362570463078466893863800121612720149980476557530380593136456809920766591785415787584488293915190729573229856086711388353310989174469425708845046039445230374400601487205772170242973238915128573139093767374839841789488296598346351164776816845136327045738217876389019333102987530175154478862064634255859990483395445417436552144349225284063919739133498019032718304352288963825382181088059575774850765286093366697175584661307457859228976311504753885030632092508831159247346587383128078259728115763776433298144532840043025518647588416473134717321031538586969326978949428436285492619169906662187399623271634306961356133259939605979607060037670652803642432478457133051061798897090623603511727994836407351134820283508673284190614279651523645730805366077714160947941226456558812342735779683411745462286360403589984153730229221963074296669206920691816424648155688480974751856935054792368112617098693934528402789609813987149274966057891558485392328531159422971121281447207061355276272777654604957703701126365157694633824272894461868501990779313730193320515208046549374660768435500685177478130705439481690727532140565452965922112679068518263265697315359101795159654357581525772697867523551398396006139513446822521119468695347773116681890293609978436367054600308276113750145355983659068467984993735989280953670344959103279456133865599333784399015475836412101084734293995961283603699959520403840941459497110207991884536570891029053590467306747504074425353304983509228480065455525233546178949397506443839774029263570568380369635642548321605221336238885813711123175002681911223995136810927337474357098800384647778214450123406323764458668015599318956169534310264076407783169979774177519509569807858654271832635697044104287174859858532838436897925747759343472545934159069624725185209093600443251300491691205870911319504983333657862105075593953399735767557695691779882889348118140245647959079502350627710628281370107604630618633438581128251973199407885016930471215713732959510330339827732071233225866245868983893668396295205427870888502853255955920449249872754039146525573252812732289461608800197512888833323786369867693078327410845468110246256518431475111601803519248888516399089498408151442650160847938264525741356499523685170925946933277365034762679651040369286089192149549625067563754698570573993628287946356745648400539148337875562774688913021720242578301964223910220290095115504709825431896015609709855309689959517923767946545163936614229213255394973619204926098937331663776672385091631033922758460221332753266410948176622110556633100221857075047568081878653640869689176165452331295377511597606258037405661818139796280902007448136311426606503289909093667223858634487488903169896362833999422178643301526616501790281305262440915933187708639472285439468378586029444784747909214361887522971270664987188749756941603586615538580800292014879119368908967970213346653831063542720527859303308149166148182197058302253409949028092323172844193413131933709797223089288180272060476023771918094000518063008370271959924999297224926593951301503861013926950819016081337874116482664066917368296394705159406871714851094809534744538484357842014548352359473130455458703936642675240105778805688965868790247103249990356027279154207989669031102262401791383624325265347711042107837598503387070666191108747839485172045315723432001135043796002019781617587267058941944968572118118303964817462408672998460501264665227195907784278895529777923135567731044619530322268298453544683388570766212583005391690575401520125384092868904392706658681455372021766671392985171633806444280271533500743681888915711061381863848011177746893291343682979398305291234658109274974623196252294759803429956707015682095749615952671550862314734572974889771535041704646487877426959572622651318877260715131334488629128750797337158688312889327836522747025946058860763546455650231806452435450402026189302009793984097132232806474684099803689106543696801212452653440583853538397481315937067830451204047825379617520220191155769830109376497205172195855759405480488262053084917374724482683963518181440641034859270736902154367151898394710093344837792892601490185024024691021925509436495707502314935560389537567445355008348098985684788604476278196572027939755796560302372495562270041100656773471872199225945809127456045221556180913554705123583011057305584837066546550548152906264310829134748530972532254768646086426296645859546517398544003469439852511901059667581501634214721715695766692585548381472280438333181389589399315835779769091291229793632044115196828296278172829749521777600337394037363473439879862929357984144815514776869094001803181676565718895341250427076174159513718554497417260934413886736944722813543465200880827675002875384275479263786941108902875791286092242567092218708462362680336655659069362886094742870924209439399138770576656352706443136758655557681514530740829176705380799283551393361359450773231078135361652186583523897557044526506561425931624703231605005993591709225839751827421302475096338701061484964924415203080940557533624952522210173643838582898855701111253784231354432319174743937937767318903724833396710165626931213776373914594004960307715347967990770621318307577271372644383684088012796074755944050480430853323067093984461837336163086882844259370786594155603049695083685673624702136881851934243267853416049193628292089704995553916722720438922111663614615935878230262233685553935329070742335449174415402273972210516436996649804348543018987767217921346800271489136502191916707377659679235326833232302263247452639813312432138442269395529543810136096875364716319726879513753251216489515849140485533429889299418505997533786625050291600204251820893930717427654839191015729379373914586399422920869139525061661059772591156553618001497942289474078055724068752854047122918189782833730423676287586163285653886360389006931167182201575238866547350135481876584387110323546050310841390807104485494672879626671284224332081311021319718617595489623068491169142994251916941352701177666144017348962692348997185474815596332852840341404067390746525155039542185140556170984197970407216986261644819191992771263822864983144915224074025823598640637934345543013438749804969429893444905578269055294713610542927683390390325406729343876761152798258313692655478106308454857341295834150793778122938767195164714398295974607443062161818036479530258143583728870060913308155399019877957911987631811167684690599164448593367241635393054246922420019503243823442053000108507114226494864066751902410995247408248847324820518098903829990148512538110687628424303386239586989951832918613158850458996571358596104138694260704026541573812650539816101321563406204249412216203057656558867874160752736705538676237799646614074936165102779670508547957379835723392700766145799863985105399308270841881964829275197444174430086784779187209804352954574992423883746851163298694343005546762959722148274000725564382962215103697104429197609069730010864266853385077069813931198864412670849159282051541614275053257319120830792434023439632772601081154920127090480391845051950510508485900997684031206927059817019268985231670448508901168099074117250416263342870525511514591685568173978049792229534409028039862893766214051798703697785089956261262688963538751307137058303746795245283680737703374581332202558123840347282186972289102500428131394658768779248335730817133107742707357849128233773550375245998073103543257219991360949567003201218851583378191676089743188811996445534984499564806219223029096648452253334968727020834644254931350003568410624708906299931627004478926380816715280538001699484444568967661211797870371620061663213882970698368652130516816427611865367737763651559717962328542804363059234894399073497273459950904211702542683840299439553508795830825764019237008113256956102673778080866922277614224972612243694919764271266330293540718974297295434517362813727035471528551985098555466086682945780607749093522987844634825455462726272599088578230569828986568971158770844706558405680061642761040245287890356309733104732893535090494802534486247981217691475935700950773014887057053690444629572507823847109072485761880891150934319368783379094752223347530632921266207701955576815381819925585174681826395201147197273004122077213544463256498977234998610069083892297145151953414764330604654643817519703801835706101333343631578329515018976968203120815557161471511646844324870185020015641687538090988097433548732818741470268240909708236572130562806858115935931624151985337964536339460465522381426291525076896836231534244203411406177206250099902352547361879975891868385310765772329330220869815303354136686129519655931831576051003656268031201547419707019581296742856566873331855294329609205719481460024591968836777709150841788567974448723740844761581058414431289998754890656376458983563232275146960391098671010174567342614883827095388880146446717371736133680071174406590340157475294150555666779775173476512269706303337135656902146043791043473556322915822518625910968745235178006273315574104923004270767853550012069436087295833992430533408178860534283677499066328450237511731630742362581584875077173399770324488007395059832383911251025657023367796885175822875162328764056388255709979466229704837585714999280528209332639995942982915325220465204978833674707209573279540763366733504224473289370030039059965393809007154366141138003194279948872884320371615307407896293874158245152664144570691098279261838272911158701460901319218865875115570743704662105400552346931876658231322777553408899126509633515091321203370686135623331147981368399112568946030375079738298440369165540947448140892519278333394510358680758272931991321428978661399444297058303451827482337851087826240327250928481985921121492867803481029640617380906846427396209023569365482011701212934373481442163524849226083090193855314535267930479341787282160508964999303285477151227844287897695270444679630018158206279681231338365728685270063081269272269667370819879312423447736250520682644069581589260471334626134466507414686927424328117945384532463158344954416819001000784636191839266760956932313920889502970418449860052864997820340544522839314642223245771571598040932627515112797566261567911004881317933549085817887272896121047413635485920745887837101075058821055579728627861485590824239529568115792004970586187000295515775361839277707550194331552233015695740562175199775542844375782493081272075148015817089719005519458737449935188860618165194501573631098443274528717077776096140228997857670244818701409690165895610953498600700802417483128832771484234148803717643343715177105915937477797739305655857415596804654863678472752683234062056524476578174009817259188204518701444771815687398901768724155330504161489127064535682454143661731148615047869004135675841575463354821688346823318687606224423716767983157178290411332420662872240026763511495755256829739760983023746230660720339810235711371195991602255272844696790605084444570828089852778924254212457221607500392628212942085718284324679427056458602335005892907787097766884611313625838256953011265248833586031889633798680900432001421836246785780238658809951136518201435407572602087647250609157495776508387929536234288535003962996858909555930022239720221384123856129832767139010818191237963353970586374274965197008068458110509874118382967118313987071846461380255992314387568633411325755320168856972013456009754993100141191378934176821181656813296347299299501613458953490760121561887830331137670774450052042240530620612428766164747660872545844512776112333338647416341453189274139147631866988629250131233662628726741085987562206356207366716655466829577677134002251787613293779254684654740211698963695751428055425242711033636323044657704870804315034898790337542613422362073761232835033991761323506678619306523951686987176479110569717663261708013091292958451080136989571868816301724286844038743547768825381496813072867306843131287082441451330314039098481807864260066764909033262978994829264999656488579701048659115256133183688770028173744839117059324196974282667160318708178639785009874302949222983451353172215520681006799622408080260783284934163130262626401995620296992249905850141034870101963020067534056084194997990125450821862187809640754398642897964137032185919550209746093340948364654206123095386742048425862395290862061946734938679717476824827214530353946227167081177912663433413598741943862412369948412112392483625894813467884615008720500037651005426048719317107084839320051619831917324427733807281411998509175674216621093937343903993479771793637309876226203268904414894834047502640864033561413124930663939059619518296738819299692300470430364547968760155630865456700859240735375541441294501343280341782943997019370848137083472982901006546826215204442122371841763294705964306003024819810423468660797516854226196747553830121941140849800282711582082647532257855068727762196520326343186956607358747450079934983215217693510082748571783775397518168148928009680769235430609399573008806751366574095754741054873165359715923092351483342416525466786936263610002148491274155291387010380824645887141610392045797312995785859534801884151145535810383218882333107668946172494866587768819309776725605767531721168210790728658941002982070816467061062285131432570671419459112612251795354218533801971780443506089260631762347651873861207291118772453253908953372767557607477362155783497886712218797165297947282473534853641509175834534237668013633690805655287650691828366414473900881809222054440429491966528240087635211248421790264613618647376031720314604263036403085402371509772235636984958917595889236215459839588306167050920667312183080723034961106636159690874463642971660228761303093410378107291071198499058585407731627408625811735756143058587207939701152404322458684703368041299371748003455629928629189265470375160224258797843975007309517962526195008494681308177933368114359579789486299885851924002397025673354094650612023638673996276075963891534331682175505165224273197769844528479596337691577466179801766554451628732696653159592600636000314121221776281706050403722866089416743208404644714797064999557071397654883204487018310665070602007476202690836118980729133613530684023879966312415127654911180767834638597698614873439679675787360834577302586787036328800856505447538286507402486001589715377864659384999799953145841124795791424791008437072907432584168170567754577907057114583644473248741156321718761310971194540210570849606467806856009668418496875728057125052670038813980166699763558771844481379774952022411664042893549516237992306932943338110258808487282958630087420536841667887151979501062776587761419827870168979749648043534028671325436155489430015226413377324811272474211171045167718620363306786000963129397608101550954454134986538102078805817853694444521094793005933139541982591854506634239057300357149097568663782964310448555024055630411644720701607988096240032984222939796199931040677814281247503282562304591686073602302279815721100449612927910401248496796880871386725763184030027144063213602207314738271741273602357934923464737737642767409663908280544020636568909861469403420430032332178936046920753400606955509877900045482800257625588343471200843971717145836951433511325597312502334744885564800112695958083857299150781731894541285308437888826039863961345376953866604102941805921579539048773620639106088078235302873442102201099382590265234453786867967786271372619749986360013857743404057500419479556312715318776729175608721265966754751630601676577925903813141038469647333109264619620720108913563121748123810591265686485828249459292439078589181162928641620481983370505925691709054205550926973569516133889088498599186751536078529466653784156270342106370535340295992643816914753524480167562649679873169980775220808018480717103040453888671396751485969223984769158391475766176911548053729836050908504101127771663685101083558669586339060989675090143640114506793199983343908676571764375570029113062454870118645260325094573778947804629066584358504421725644757448312761396473195929151278898572836294241050893542570577310224912603612558452590355521199254537288883725850176927507702300567943846406463420908685485568953690970862477304861136555771538664934139703719132882130355741099654429624099392748668948604557110538056966415871031202141637458826305776205119416158251145208034931549484383130681726500798204619548107027320750372787739235496527286773298189561425524293847997870249235387322153455622288482376362275986792613418604186585671141987848627278875095982182199504280938265661392431827490217374360105550671856554616680453409055667216246653874953921429007109191653889458282852381098898829760588054901980714855322660820692566032055602606520943004882503787846595043273420194545978192781455107329015019238813912126482089145284114822008593756317347225495434444077109338216233651308472319491716721530391861403429299138584987787951854569419117016407460651024270818535564234835117820707690298603616117547226748077748196728026445240338699718408784336413830452598871367425935707355396156134025910322427071733003497573121690683187638970690827376618595161931500079563736982968183321309049543713773357565713735902035942866946018480999154137476133330217699973093767083074634739335156960137196730190519408219500216051161496562261919349848422738514745351716777807956557438092979746763818477314521168588800815892100595205334279195645044429645179707862669045151222612272626040101757630447572343150757707175583455859930972549170119673905810697820922063221485552017733545297669051081727433278185884322029708080079050783796295885902552821880926721306130959769634370674989454451433348163536628801418693706096572273376900612670527824675005214035350637558221562957605698882158657401890966629144899454430789742088880161024292703195023179406324748398170782116951950124927683594042636617867021830198832614970275781739195404144099881811958655298960050846404264191556690684009178598304303501023984237578277160088756157631294859990401660168084654582577774616955843989670583593767502818540942704812815928557982031478845863531962038403890882446167118572281477151825627116083102525328682577532538053461205670095748100379723848177703156072370085539215770189089741396916620337976578740904366908482588875626569666303111682991129920716205238817580887516390428098148509926476927300686624467730159550535019864565383346834981599298645609684686282104121158263609474552624620226479438590313661625398154242903576554063141417964525525571689571233881899935354438824149839717996941460845266645652403664289211046789567636068624043036662482983845218506973384008293925385140175019848838572899600400205237349882269144049305508100474037170228030876423502149955973173937206040729603788680991297526313094287880876122592670749912500264329647206186440624098448624807604787839930054223865244994994319689952955407018533361454890906393008757095462765365279480305385963378403880186787714235529241923400647790346908852505025743458826864874390103267945399606697219009975103757772268986204671944518095654291405712004145670088533517055561050804700390176353252621799504904588737496888068354599098718175403185002064765210687078831939921541937792808776394081513968496948319122414280806561903528389264838732746723047710637964681359674096867702489061537656998504237872121105582868685571168935742233833902578100207122185290188349825506199279098262811080060465401546682878875791855950764412890535813540246806555222578848604940003469961538340355850986056300058232356304587883691717797759394603357805229770534423678497153103427181530753629276433788752318460282077094595487145395913817017474048128902579443463811894668816793765994155993945921591468617883526258646699946575482620364807681434870801735395554156621646900923809077212309445359774977016070244939989802889462125529187295964660151128135149271035338073245681898189673236218412966975666704305704515509753249490524926796137578957247198100059377692486468932637293785027534315059306444879010572793144533825186377421763557599105442329775529332587961737663422349891730584730788162130520173244408757349846135771686323599252572292411618801161791193928713815328716905272445632573116609373252654945707927135480015028544415054958867338718811494928711745577680698684274853113494819227469228063914861543698342906899043599628345483977067733072015431103890630826501845714219147184188241869620203832882155886954949610767418504913244216296791584600654524222192047822095912494861956659646462727330459131545495144168557967442807293369480429277702876543156827525779019763602937601737011944700765356439753968319854560815707290828796099068550194012804590502516450097350598293601697712172308528922795992020484142300662516454807287883158483979691652165046867492161506304423969027163878002288787238178106036085395870587351292803695474267288722634256292536728833143643928593091918459173190660666464982977147549371875909149747734599923522954065486660305685341994049388440700391811064294463002215703192654116262589497442175675282946531920345799522663882878122128112788750488371972546292473094785420026230103474732480044722731137814843885049083343485975156119097963055440608130400146453767779232651797013713708704255197906229571205124396786513678923085715806343890980345981494604071496714216717879710196655647731370215269529668316284810720554553015862425791121404082493739548319128819404941658782616889493012670939950597252030560342015430682747114204435940662466468384696698824984424703730045660858982261716914526134011321555830280564294958961053996371414401163228038821856358835483935398590172720439054152936308264206503063964350650429080111110822363061826031546803485786835902034236145331235791283262548296170718328524699103308416497554894597923801499225239812775415439558901729841277496621904361825047308160950683582884018565744646988288056441432372424498455809408474789580405936531864298838843778468310905741437671973509124739809347913191314737566524487446598719168509626518885644152373398880572919918989882075568911986094301292148086388176802931096777940665358899432849473844986351105176203824342461299784341336184496807157977236273938622484533980281280429881549709936701571247100194878970068791339171674522670679586936336375651500327646541704330468400921437473749006851682506832207596930555213164264438356483494068110493201137894767111984925861213912670266582242583503364418776299616884847398073646517057534860884138131394239795422299057672425208542311574557478348854199532098109446832948900549196362680433946851044516581687278005215261352548447704827965721606487151089084882628916884528576231869275711772798632721991463872768854636660142769377726327283927350739743885338150684694931192913900488864272982210248438232572365874590922234753942975899431579259481331203712554967389212503369988055555115848588458294360279119198918744720198101316249352238468555996149442009825129276313794730081636532936425021214060079329344263977518847332911992227905244312905136371054441780393458516226722546819649513278769501270622793819855202006688481947901579992009712661310548253373466923738513442131226825248614578518561700662859514974885688924090458436162550320719524169731652834329331813138014820820215194907631439279152896959833374505937082559262684624704746109961879490891956519392214953257810043615801581866093197366495188245058592573593366976770642653333721443638981469091353444522201886849403902059324585800626002413691084302713396036425813067798353273583779839424607221118433210154435835729576063948925749507267601585267913396789524418173885334296024919137877933442069766254222403329778427786014654420026516817494381080176317517820745821803290609210539711304819702632424474892129627782651727674114209488723885534996442759004905640229587184391637633076634363974742042286087866930565446261889187250146737264131577772800719671762218190934128494873206984120953241745388730182156643995962066716295692920341490604711295806041115758398759327074574905534239168342517339505511298722737924163740601501485822352313958483899120547785505493783276056553748299689903531862525005306070853184481705355970287703257962287206676060262003393646952250675871585589805264431795302442769361800111207157521832782228881436327588429256715911743353184081925399170566985113176043136926260913501707958728569467702278497071380304225128589904958255659335471457283500246580925380629727366746428652318916621454794800241840737388793770158624366287486928515885017994641940567798450859390227051713038172919808274697095298523841505815905738133216283250022373048143387214212176655419486671862422970523547077506047200000903581997753340851691066580619740027822627100103750343396610950927310678299667933874296243288047690824596613622783706210615517387270540363112724492519067858825050472221228964387973139096428190142286780747961042522188568336534110861805778480128747441219613959290240386140865327603617992439641838445987262212822354153193644107170129944191449977359620772042742134655389523143192353270596586453022174890167025396270897593628946291107089216195960193820673810791240312904549027244603370719271651398247839812234565591500638227674070593843880021055374370380298371001750775235220996662566413626994190434800754275337148481397353048355624807038025075513307708021619358388685604768908272133951487417145807696839048246249690904307573892258265508101403352022365576996461026402041588360921245443388475509558365990906621216262810221082823012939711031945202014521179996529164751601422341188011471554150174394379385630349700892264761539846412047180980960002966035456226673760153413761650258975943198554320518647358253479070558746824656738350228310271737087165757068992455413894797401407722834148070568465742034655918464394058805806350944262966720938344118887292575404609918746753475237214121905453839716508617034150367487042019871847010754621828914430824075142553373363954705021967460323511731375482579882801293684171463445205923473381564068342644214125364053804644901757655117487927610841465590645004786786722732885638663847362277414573857584122740739516635130399832161454181989778186936307715072367452074182166646773083685161602461459344021482139160326349760919336818980958693151939368279480849884217911518619925580078601684654134375875646689200240285187112025058092378584977370447491698404275442022961811402502136608795439743986300009094504994380617931266773895849798792967654653283117167046731287261131347123283048300916480532677895526118945629613449069445734088422064355831471117201887066835541607855221238624485358654479017618759473564772525682929468279235259359722264933252804021453025043872738170859393349304875863641589368329277371802595420645461825331686104652044589754508328773775829953883865451854538299363480533161714509418395512142442109273785519201524540320118828692198778339986426076621439861903626321800788781024174524196264448288470087817359345005936630741815082292405978905935045152609202759127527026889876432546966020259807080245422679587970285664724909719756827908695586953217433532305215743112870893438538364193667396790002467903572392148037841805817916778149032306568016925740817441371675031115851238418129312159235655526339124707804883787615686016023991791328896228264496737160692681144787182040295556294644570506119406159750190819414128955033147629395237383011829710478186123380724074340486575544784145188279429073911941983834879177742223613592532000383526613368476490113408609315098583956898916588130970321830972683426263892838067067045603912036611541267631795538245298488313775424606903198324355699471079077374470253256438817433240303060618508845218828923391846129570292265159029400087541380460218807969753057455328703314153698281585924241760312080236457534228256487720229575777989573643433208079193366359452188748169574468119396606877319368207618946937958766187293655915450380360923826926277977038754480491545349828666577145940537193150802095147531483605207235838398213894430880488382327560534485538917491779835827053238191265558659699843667250653881119615783279410266233823799498054700801332941198428419664855008054668671101972895219049356792920146531805172758588442228262426910194987045058269466225882456322969700538363961297692212314550576897495233665085055723358759108168984214026353814376010143395568166550385408149287779782390072962276220071164312242544063941713195364696054718061900777298754463651650727034863699546837564443540421453907183260465666066721093265468022495447452158453753471436259795912672887921275245754326444745817578318524388240146947214177411114752336570916711506229427707614174457100737764905762960197356976132460396032505388875233336609852475567810368023977853255183470474242960516788168519395628974536539596848842708448686375277848237552913685011656051897994766173189248400001304461301506871744920168535414810470240553988701668799993248217590866382335273186737613713059007526335682455394154982084217720353933871278426076085271232694085341996905656122113286034977147340118360731770653036361683542727196067792908772007542361903365182815453281534768872181153009104919174925505031828557701990574038662803461139218120436252017096799645435097976398446268025389037557593971445973074857886948516477610304491483572860077461385393089689147440454785271663424265011056851053085499255613904776729723760183408671255249432021354312998427763824575732168236040885118373771595169729972104679007819320889674118739724810479384801085963980859594667368985716644363523774175684797131031772182718810783591019050754737359605587025575391729688343569695473340124368529018038601768954966511453905201244947154712512760841810708974490618502570892363190048130899448673590580575742147207377165670895007445225448163588877520862093874593260886379248588007023196051658427239455086193534539343452370268848235084310727133937952385335956133762640434493854411883438444793066900947340601604157015162903237314163799962168962527864523046491330815643747420660226887375744620993952695795884307698149729361256052653155368011244896089786150312931840439794880726093547545318798900661430624586198137354535764633408203051403367566926018271439390814456698311169587837545886668828391389855086031593807223682397586166654172775037182156767723850716784556940376002907154180148014070933173875396594654665118940371989696376194423581216404931181031927077096890231704165153294646670107844762134162196576857699685409973774947398131678367562043258284857779458985904769143284138892308641149918480481367219580364645237812911965141360900335755506534935219801188883687202042563211253718956081118339466045270094919673996914641097856484774866006246813612315609673629833888364067316127186282207180555084459904789077516558925927347168097584846083030905522818321063177825302492270886509179135069525820828425605778711385382944534994652505089226906003708684702727551065505498591243705118260450199805752634422202079222252319874464998149738849187674387258372053291074817556267113598605768902116501715887568187801818845407568934055519491476654505311248265525031465784992731194803155567932804908482556019239751421106048189971088480374520448775739455057932484470104578937150853580965977667842851240752030231478074096210552012649285325650119867808338629525458598634604211535651117168639099747379196758032867995612124514170627829272839306996151814657317029622374364320112434653646817028707057663563503103918826976568885557288282879792960504180143389249691179935117031412489740385971413345739576672007526060281033027831695125673060014935102230711305734562410975231699191866203903071820347049896969158850197774889337972701691559169950551138034687425058883751500855361072546881556775040181241040555531332338654296854857093023667226424621294977153203586389129822251629189783593532555890329888382435176537969716507180433404757870716287365331768280296788040821696486776747189198717102396051130862779436023011503859774107520624929366140328646529955546920682982436147720632937996438598876987213899140103877737114131010249279239731253276968676853246589064250228052057669664858751409693562300516316761599499482126630192586657445887469401103529343378928380843938717160738293028356943657713930615127604413619569597137113602527601507003246734272427326352839120125425830091339176056125161952866079587254277811369559772030964215033480057285411258665010179536847006604482553883768936283283010677626426525103362493714263581341537192921609621802719470985972359895557664381514577751784825294554821799928598710138856830925300910116630199605454574116906249298271725974982600981462813585352079175808900320799468157703920170723888622871916304871956615976006752902214143087560104473405782903957700784653770106312812746355447166755361009221724192616981366104179816623622632618715726498569762026555204624184487245792364547791875624554640605060617518714798336237077893104524185280186085302429207699349712568130346839863850222563553123453188244938120347752003404737576059311518387489113645011815108107601573120627774330831311281115899089146466902888932459651044425537010366966010755650528733787769109857546384867084442863806920185350652177864494155907651862959538811173408671831183075425438924945361595695654005612619297227368396552610830097598413428775823615384480287721992707129339412932991073700699584531359510106676661425810993724821340409172311058554863205280111462301221435758908980849779809587978726929137691078217780659026246731890262742584334926018012797146749266118747357256970784282489079968314575111362236298517318772433372444328177613472767574998584635336392759216484092611354670518668150181050141771718625697946371144062980436599600766912405917415548668408827779606914885816813294925268743559512581960766142766493974628878232361662799263345557425548326722936750099498903492424834630204192937006290073961474574355197913498059857664781502834657140542709697036938351585421137668867507543376003241565157560677530966921221923727008001079774438755967610392305747415900576107153437002112711145667152748531878896474150842279538997342445904781353271527215007795529184060020552784721461035859670499155032855976374582629267174473196798905624588913615920053409118053543441603753858373763171715138506760262649558159538579280108366967052190404781469089788090825758709368145666525661771197703814498105219470072330068432720669735593961473157569215510234163883759726601373711367350220048668668279958004553236053645607853172702506764560381215506138351375889703887275929827699498400217880781201017011841123844114129939239465619711714462192230753370738626123190148602579110364523525171553488645746019089613855281294684979088669555713163372750887697886649793802692238091550188743228637977342003951578752292044670232746217307453198855977537522698005199176704723730365622990965641713045443790986446351443657064992518246282314914925029156276805364233273514128223309143130187455033479337692798029217636640396063061035460528499982704354138473255545732766066529411970655395820982305855175873291743594204013025239813226889085459750833200842667093024652748153843624913038426910530091792291114666806515688178029848441690575697644568261225041955014767965843496314328629322581695430253794039133414654992578087053942105228881695018084032605808879182517456416889415490778841764761836511735942512003048460462182552849940186945292265346439382418020210887095033009883250462919674383677100026655305170584360102487858134916809410371983252816091169784437179049015125345352898640379551898206631890707809346861557893112199506450709984907963599434059589770524233198177649047503814823230541380232869962816758667278344726551387338423442061822757824459175399485102132543089152512805721107950098186664082885857344681641972196043789762811838498848391492991813468615999140721330966880538621538503997625576289284798361946920537057526877347266469890362017432556398894566779225681976043430453570572252336737922423383678495204411816105936065556468450480168251445406801267942191006361198563397646380581168071288179965509581913649381665398651433218719252065901562092722417855447558715296760248158226318000887363785000627142816836705793141041554610611016817090354580831579405894447464261399571938360352780775306921904848659665431584229110750244817013038491124970996134881272401738422885469860340982743619562306228468668480896293396895449234616644282855220985902751914605578592481277357619815819132852060001835503417822343157853341599749795311226583674390612433974796149983802119290869154032879058691753275417935023790262786491526214037431214602465861876323612664337639031437825876279514113505793352603113884170240268440579359419099075448082607156957667651772506084100804324619553691713780388034112276613683132221824783640528250923500161723160675901466246525744134810231673209109708289374422384235271008159832459903377855093452955045454078253863325436071494649518028377410752033605251802646492516836989950434685691520602579446573686987739100314486075863212830743567150025427733126190110551736729284604375632607177288430281970243625321391498333901294676679644905213999169614570548124202221008859017119391721139053447283956425105961615779298715480191228063452660557890459519520233726339508422088126055999149039875200922953641800643683264106741442736235058704124802502642734332237956358822040847511522124505377723719632130111721700970833868280344326840041611466096192455426908309999842460139654913225160561978815106310769532263255418206645042985217077196569788910568232510065399185515718026225628931196361207116231147460075614433259599496314769527023310866174507819718656316905883134811396505481208626319321675041362043954474937717725554458528453354196398207827065720630995017552363388429575467175504803295585669263121391053757955950993074595609289226340751817750909554407203513011817239310236374418458078194849258251953802206810265777749469341115052311501311746071325135278427668326176934272130362261583175960209472820227531027091686904961049585506066305933259872340841742816155405555027973470790182212198192692469055484212101323538664354421001041972038361382640547664939070295674414143601968003939346854876404652811947586505444039373541329714893128901274465186631778086145973720929316472773875792789741192663596631915472263023324908221071256570422446935968195543872959820866628569078886539419858558620568113521246480486189373467376044273055127612820525134025530050261857139000490813739176977879488783439713758965468947181149417431990097854278479133750108212941857646389813924242866229655823468422696536050419474675539441957980692439770532293790700183713984285987028651601000965530391880333143497938185328687531980301664306494516003909128415946641651736478886563099624560192630983957074366905452049501242965874410777937281304712402497033441670832446798759925918660574392945193348035210870750377962889468424108734762341304655504483781880900529743316940101007248183508685689165149184328254120534586581669642483176353316036989281027124749071424178720642851556457954805636395731256922374777044761800345908697127360030032048019127226537621040469931174865554685216356196268218008871262066354866487712311844545779083309991996400192639815301376652095909233583916100147486091067302703718911847314637786110361308301561750857273573666884609742397188192208139732230292163085106747251981837637462731204547827208156916514841904652345686453841997874346226954028146930009415033363007702956675340810948971431171753713267768063603586561948718262579029849600769830712847600052799402642097215768234465585948218095726367478074060160227862810222706142335784435938305232850864039218300895015997387468623133572533749747641356221635497677735782672840819462459811737591464482408665215388741947590883174119282080153753675644697916204445741123921314178108928473229253651001611163724264205237534828853059270582175171267539929018000736958948692820392470113891385682399403983041703280938661589764700135960308955215431155395347886425103164185511879217848814501077686577434547485025261429120232133592008467382367052829574654053459487581399914727796514538699185543941765310555953710728683636267544640211195315404368914466917632416176013012684249001265974860080976589332839097092547352724319292260047750338718867976709669249233299814520558969486807358875512244929925419971523038730825802309320094716070901187063056199733508276204883979082280557861241688896790403599232512411482226653257819416482730625708746060935661462774142508892232782409885480178992665464223403279774828400980885672789034624491458972685634458012287220823106076998175934876096637717678352659328590573303057946799064263546811802137503542951704091757217949213975413423197254876446592314997256776107243141235086652656301853169774689801779684151988872531959355718090070077806151338733064157266520621727676620659262406499129137952156166141042026348246007413712926369106891667907746714952897011355415526247312916763248409273011010553079255907543073504575304407730753637036116630948446278937034200607272570154046621804461184525888485448696474194100305116365588867447774853459835524231822462098482306346854152744735586970627988368994689963592972367491805175457174955941704315909389315227459230478774702614750006915494706610703583925322455011879702219148976492877655744871950257678659131660306482291328299173568805404063412606295434799256885712736602498894010178935318157577535714911771262810788345571867605271126529435310165505370911747571499030899932871818543384787781422255896594255366259253480703846969823827806980878384273812453742334862809710012620322092850172525526328194305538203118315750902919207531515441136619996887131765829756562917538495968326870176335309167356274275776056752554984015145383169010754742305884241627807430411337114421726196320032414695232340826136569317003796891979201791556400608217134223168236896894619635008859430331750262355387217604613311926760490705037881500201608492548632202593583603433544740523238325193516332214463597123438859545472700775450472073674667184888637267348957030631369201794263928494543278389895654739711897107832273192276303271904627033657208746110887739698812889651589270300658407247970835033853123362037618008067642899184404316654836540347110873112313293874476909606467675271863399347493548975228757563140263439108697960339513620360919314729590742447256706623957850563153488198577874740250129296994567384190305077474910372991659798252140510148426170288151157954333397185505628984761552023684512710694888683923663478020533633926221786525618788555215485322495145047730533794081843693642299489816090487281058368273234398797334692672204770686025172667122905529466220815554021654021209448254899786272847743537338433216442476619022019696823286166633705456552360302033220319869589325141454536619821543207250154039408500429736873616034720659975856841024704039685872212930458658135053391253202381363064368448682999366647811857100490157811193448070540380526921625338283000133874240475442510414995319281073905075538158511127320374008963203306090926588134667716521642862100932277007481947660871864037342215223605263987725797960622360022968984837209183970275003115730475662986754888223139467745486749585996411800070072379746069833359156209909719476597871632854817796247491768195620332018588049736010910038547218800512862833098010587680769591334475529753108862417931060440995548150400785101417356539839265695066374871136834385740324891895500725881588854944927365751937883154023951202600336317650218871880192269872972805839232909284323454595106596274427314857574355322949135133802143011900647662419109991542721474504047688882543675399492843674835559161500870365835805076496009358474376768345493376168771494592204413223889017763259423387473686742554219360853437287750287627991670866201739114848806244333993743858427261237289951807641424291221419893079207637951700202344918238178383730600069560093484180884841731303492346463654322976138308250216695350308659181514976414227443167680417643826349625105067623229372833098061264346673278029445016168970061487100357111114734873049213030101563359871459998687584764499676952850365804737248102401286185869947689893274811320720058782702537015455180991370539991022399625868829977134270304563906271042529981612575183202127738101224721175588622192310827741730722527619243788728551113414957652893994453752468654424673152324287712424876310117526554157624325346447736270425320252622290057280892324465936974408803178546726956399306271316443644071399654861829160016047610699582077936374593818008471355711172824429775652296530539720551871335969568548590508639173996057432314784396444792111162933621006665281558839107854382752321648320183538768751410072377939448171757638038157369012341039756244969950062192827411012989425027720684586854715235166930756206118475947492671644371847168800670617936505527034984626529536322921799665302448558083713981335867825675189363995868539935633203724307743132001347479953730429396254571113183872707407102343366809626813471186935583324965386532081151118472690260894326785851242347620979485274141554568091378411422765095854243283080176808586075539493697736868653328309621627151538092335169218022997469778341710167285046117680263213292803465178712468942467976302271004504897735135093743874555714035816188136405636984609303830248437712939085708132767331727412707359900129977981051247413570447545947558218409132626008895718843414106536658059183557062803926540976956870213980458267443629187424676140260609111162381961883639270847402261113804217541151742608019492891240516328560280269613770421182702265965967055765737381053241994832478357187631307766005465956050572505412106832053991410978509903682736911037748023224287247166986756309455616912550491995673076998832682216965616868937424000756377562752221074695517387154874129950499635323074863689459616325308247324169493167954317981237320254584348100858917080417118878386540459127658633560273467701238718589994472861030000087520927486585804780392349067447268317930735094504722934540676430380454382524033298011274635712873789404009518265967274081689638756738589037861554984721107664562680165373238394175447588829426823558693151207163396060197060094436328732428019139740595657939160775165607133834851284101359583890625920195892198393354598505560169267422111104440998960532931592235912183776297320873201966132034832599232044425237676394915368112613427606652054781867057547027099850149075171651734824511352919652072432863421713184221587339373528967598701905901607037751250081747422863565706669464653510114133287685640689001373830609986245085227872768090732766872101211576361250809071447028167541443756047326618202800276410041537265449821503062176168974904531714610628413091552533518460124138460105832464197784679556881609795099385988208246325702459549192721870014850167066104400558466008457923820595311437989260291208354989225331120766562062709239288506584747514640309496912197694967735151990682357601008445577254398149068607387537495911100979504018880231231246975427418103444569791612317275098890376116994120166907935318855045266713135545099551304877525220754547180880990476762911771980402952360118969306101976861217960007322321770490634754755444838391194018291802308775276540851001373944456475473085231333600081676919724260288806551421024421765467377462524592319076499584067397121922047553184906237577269528456169728465417577565990705311475613613885015784316642202699714607872462628877280015989825646081147218480824881960831360950508656607946182489249435394811929971729545212803064745509548401221337418117375223038885520787889094960064156027247515278941627634957622185717548240401053007169950470646942368996001272388830953803962224114365914832144290084258634909125091414518654625789318238180874104708400179906522070258127931006478449627703599922371062366757349643413867701963664800992391346177723127021184194336367782470944430684373910219798897522287641210222168991410391972182519881065825167367727484288344769666292383787345906972812321797253683975931196847180938809083956376513081540310654012777256703637779399116986008659239087167861280757924434591165446154640887918221090511380176892083932317541233976481724485163722496190552948956290542657157165019252002350326047829104801118332434957035165696855042050318095755920990889494338118249433879542766451397694743478006532645997255282047886334915104088931997128323545716621967193229278964403469946648585366392645937013854105234052110927364929450191861166856734866109476485764371672058453938558457394804224133157782114474566160322424255382496819002581609337002807518786576685428251097854211671315184973660568141198770290327620112668535654747599456652293478161909411749853470626472149536035873025112451740379491094922172602657792255828822713652857129507103217001553629004842262570120587205965811204122064903870660317407318010548173806637168511197819111845325004135733723686707405486450386149932599637082693961132298438056695389179295717413166412266255906668576466730996829015814035647399797181414723589044898569047112328239928553284307660774524001353420660362045168793407030790864595821961414412511851860095520160920040727850653286534104691104701751194779751837095695253926101802131706929346886249490575487619123659193170528687998325261816046875881277434289159474953544460262670792594305267690297697312426716091261950550271736531323837619958444808083900638447086243934816392205624025081105031018866924502868675243683552617731122292839474620559798876260869327248548219231176580094759284447991689733281202677197363444916985635098566086852895940895402443370710007918261538474797287803988918530036375621800915330539110772207335945100138116463916275591597624997319820097426214139085474420485889373423739214283580774648791720437106074706910306832131791012482733229038859810030081152043183235954440825847270355047706680587489046367140451525136262289035722767718044409509703632524066362376406411923200473055184137525322297536192052909429308493899686524848642619098611055590857597692467639607694129731373802923006663216218016344038678940746136129979843049713946105218676014973860559755860484675359538997905113813706816123951017960940277519113113987295381708034074624778756608829821238846424300173744048816072089341612853083139838892796298336300593984398943746528205874585317825009571112407349571389791487187668922654629735383394457705764324637175287905625554598704721536867510029528827668208254244163528026355461266998373233807248542594480204139689285555635319567499284934980119051876104148310406470789849066665039337649106978425017948974975739045758365801486471843158921957261145986683586640070195360792960787439043539703280200660326873944099452702976283246893147252697065191136101341488624836060352351830495936300580799739223327194179569893448470159939523709534676826431859191405346668730467314032120558394596655923746648112142959630970244861903853053931503297667283454358246152199587376756059245553633946687627124903676214182835588795625719958552818196414820084603194481329539052630814145737730061650610773214369357890614933131524807234445704892043171674828711571848193100130702409022784973739971130554451748656389585202541362606216117915864925185986415733121733636212621185149991387259856209966327478301487537966925386874794246231637984878687492281734647490478786880462920102939998007477604257784172391261089167665834865372476339316787578825814860584194660682416072379345371209424420814968309956212642347695637845063253951546893960534343147009786210613429853304439009452637316849362652407510200661013722589964037911812701805228233717761091054175795386107502628606194565118540671132024864409543724370442495513292290292852467187556053168588635811842006734594193598178111800802966357499699016570102068417255131006029290795464037599089874047845149685795847330885235917084199469099856723897731014184788280692898866031414079440483942509572431715925427421892308042458953855921508129131236641987602436014942592048817047974826398736564356988553164562996848446339276126108233937404373112814350193999181885072258448333511810385174219392439142251375432242555144143592264777721915465776820862167023027635880276026253362701779597083726785523322805950632125207108567272420851926046822193167302854409485988144818679914676283591697759499862709107390509624080697346932847686432993448289422566796135635249063118310129603951608528056178634913229798809439347474145705875507837538967594006429427127436896029030685671108030349973466339192392268905676895284878136754173889668777628977712081015920003244374162748569064019661228607616571424802526350016573651520882507757397289063175532710735434740757570638814695385879987907866135284967003582566806762698248168257840731362902741622884431281903107938452172329317556388126612561431152867032086858084602617837657665522052013891019182778836035373460870375486786314567784467106139570428475922386607985045266465122456048326323378639322129068002292629034445044976082393570383172423855329517519924531426051418001608103640007456360230220904423367952770194168363964450406452391943855704089679173150755729688504533241690071629232800924796871268386279607893062125576515551988351007304614224007586161093323322746738593463447260049829943065411163724118094649026105510912406810672739396350646886084009455341148974785972391049528490194984888179183007896782734168867730957569901725099479968166054931457383057155537626937678868912933056997254256999610840461835086855400956412821107235822333246116301000341782817208962393325187464243182431973795886533774378327745918883944159351112356775632370334402002856962117514232897104305933092436750384047181113338204221291101666783139871733594515571365931962041821718524130492582941528766412104848636576276219626707005246104153423693532787396695791525173907511190899178714938584832252266355206932510040960226237514796917468552311210923858211120910495892788435772861523087038869555958545629350685606074378362553223075256445755471814983103336676649253256638409285395049311949301432177383714747911655295638397240447559444647194060358538546569387450727479357138230858311040865872442716786726710683063653036204499442066283319440205248115698135754856336426006326254130454037723174554124636236920405231438386932547376421971715171211155807012264874054793261201879550399219929850997300292057879083013828006737088599159035038378482111050027347009985292984276658303901752463652492101954787577572974039982968472546470917629428301313233542755820305217484794086464408852429920391317412466630804022535440303698621337745566913666377111239041543054471774177251031166784291683675108291924929488633020548028237029854822886141654094031523225964935272933298871473863166110420418713985588533672242171954330448456758194697688482610292434019934314105430381998632616079302984432475911404301292319545794060569375668201893412487603246184910257832166009066309410926083298419349594451599358472975505436421881685257661282098550847158129708562814397205032047149846543129327899514909429254116756763657031141160213854198220920456846345083777757571631531608364502991754971768661223938355396304281532166107799654046237360818896082155499444290918571461226397594851837741515799444089812138253593587014892957947418339369109149790915362380505367241227437321912195998427349113828334794944303639316159254043326917965225250462298553701783278082982217179373751323428306287867181398307570249213337080303572438705237251362925906152429349845924545341853871568885748990729824046164826502762006677088838149622451781095392944814067488847880345061869035495403521661932628335348663561193873406128704494935414413367444892515055800925385517354807616919064391023068685520785950849132024574940448574329459879596267515656667785693134993896358825040630613450705889915664044374040462832671118784665920963752556499575008091584448718879668964864588074405269875799885864190066745262252259957219104007726323000841662826922598969731956054622975894550118362913035642688149640178396504457256068170835919417086547398543553360624204446905248792894160854723399862919920790305924497272886828475814796914692837169909297170591078680950607389205767230060055565004359118500872907058607142851048229086592003365949618951830760583847985148862151188393935769644507099347138027626398297978286680797887759451834292101544520351683258769766269057360527705415450410124564667587129443878716792137648540809424920795296828981616199592683285742239312483440142042780718126466664338099657825290073343263076257638255370826890362228291963591630904589581743278173740266468054959657607380543294331589661252329382752558253685937473948574127439373398858431281230053182045875279537293599978456034438853950192967162442628112173680357842589047863661214640221150928886058781037588116686280583781864086527109693620248559366932404905966822834874614030152742544942287367979037817682205268272852598619517963587863819874271326025058367326576729542735513797267279794668759921494132364025191766461454786438560125749639876738217812261785805924048484373067845436426319910878165860326223077210922455651316471870686214078732588938162262506160761492220976928474339494002447153349782042196238042267442438925973391942823496828935714517595565928269358324869450108745734883188849786718169628219540221196006467621225006214735384277444106950300679937018972556236128789782743590447789184282063399882619210189566080380825739216051793460209578681402538963545216011434506348501140682076234161855260648188562518480443375451205710155318422004360179610277083562192299505169069464707081925293215911534576137935442729805366090534365127507608465297546516433661182569850839586324690867520062158193228224090845167618123954575728510043520478826319935059585826291381867624016959784819297572887537293786971133325985485459347737099195013294180128740389547115433247418430800896743398215754695141819045901678618784262468408913807636550962043557516293830339969279272064650243871247776613264827042284405406745661942287603243740696691082796241823488581640175181105776668247507286574024129677382284234942055209338466699386540649038907742873863268096076590156198827653196419947123585651282383797008956850692274574859491476114002137032193102879904580695285215127511760474552616018072128111126477262632055160424535131997191040495291409189503493401587068940536445943194160181884607738540583637003393024480142038763128796510613130876642382607735020296825319626109310743072231993889210066973718512450415169759549778695140667626095994085875110673814701423498564308527386336688747850430541029844870263485130880230319834559971113809427323942957151089702038625090254831975730091976443984802342872454187584303808754136507976428720401236001220481395841520757615638720912381354933259102839351518925088777021758665289600760446508785219769016473696451531519882763919121596984661556552390354149551342027533847078061068538069088131195062368271058129635309315917228632677513835214248150254211169635689131131861218468993711190861458797554810318824704910770251371063135623943988600830899084899232325658683266518510641436858513690664264958011009783520943987480667699721651907230054612744098824972028495319817434666088322971482358575726091367068516861125090241175026010211024959632311058510202192504204429934154881078195293450193233798786143769877553088857214921402596414007606689692781259824401544435430093586869047994198730960852584830037618512473105579498664494802043097547275523666212393434728788038792536823303740912276692958689892157621821703719256598008269265870154908728999384445295141777356656171468261794090277581006859745564836143110593986933289982521032303353332683668049963206130082495644951297133370821642321331524919948106615979567709619974212785452790102230857470310602933161733501676102621835646612390631518188674565166669429604595495170406120511809283343735620399458341257866752211280531450419614818601048592648562368205813164025561871166328403604095609945268483575649643973463951400294140441854781011609855884228412656286741543758887579602515234376788624306742705234592850337568385509339379921454518768830501937594883641416131731196000769887705784486078413326357151233494436495700908774175177987947895139409229630987684019048462933807399762963000291007479863149755798721096166469052031243815992855168587930419155130898305649670324395566555016060065657800870952828061603485143075872454889518363774507765598651073588362500290543308610841192959220209124292590248258029331664891042031354380997194828968307280642641272518231931780321780019244759335702530268970030474070483451841828964237081337776604568162410504791972635819839504391658210783765977177275205981660542926816835460745939786575582798568622957629137661440059368088488045340583297794360765952704519381029707755618901913883650342444028659242501275146232469554608400996863901926462081204328300823478639531127761485767051646722684271814821962911101563773312268021392162677447208388864725142269205409381042489534135115120208021447664968307524677879589605873243618059906209562028567461560086758582462366125118409684124837127373624117520373091777229472007480313477714408498431269636546139251198273406651729323803244523671756123847224518981091321921616435868121039212644511942584478646820240621683674143773112668222305358473968444518306917397326434918689321698704005024117414290943513938803471286027912778369190116790294595482900104942301268916626548967859228108928696606698211766092962198054217704566587817036983216108916563571833197579993672174834917600173198396832775568103340392213790861335921783869237750659873264707205389069833590739374398293218271560931087858979092717841858342268671504104181250678160269583377965610368788817840515836126196663262754561393633799924127041295130381440368466820261509639752068893437216002706906501880460450300659989980168508125430802588784195967504074619487423747630284911581360036156972219101704921993394099108720805218051887092093381093140803845429505355109440900257826267444042134520506519176361870482838094836113595337827852002055351199455530834844645887148878075414987350102744755116673043567531646125729010418821223789207022887072214406179804912877675964353039720039783527153122675448520133689486919161702887372170353300808248567034892459145746213467696193595668856764059896176159469646228555051121317630951153139098030936924709697818100497329066473685880745904078333650902041154480243500354681488437345459048429444529651142341883657896694822584748595582782262830399890462440945052969390252055627386463595890410477684437123289539041418756914625283702870415380555100836409223915067504682241496416613384189043782096194174485938000171859879845970059428424217669059772387434526417486384628413602597501945872775886193602721692083651535463113313621180346536225970661258090610322173048272686756135418004824313215432309334974705316609827151128163047839448029837998579284310367312927310865663172146727741925033458847526657628517853038088476668581696115732811549452293527967843722879749019640863071552944248376121866734952504737966883679120220014943664384277393433343679380361639899263333125409703106564544527636411693128994103439851464163831208818682286475395974008573106076838608398789253147520898511440729257264167759812627861905177456560128098967133373181073908932748411914687107321215660292744377287037148863908100510002762719773158958836039085127461100867936171494337225414306006883552241162779441126767380537976544284430166528985025307037370716507454579153465287131923062996233643630737961248874692749459860408197178166641057265249578917990707124385142807000541694717378640008948752043994096737191132543532854723533762289587128725377455171253060118343157590113193641874010621749564979424210138519733276398937900236752357534756431799763717210463177973999390639591240677042309788187076162514717430080206424543304034570976334140992747091754561094022962685656801634724260798631460665249684726497077014048965728685260061682947071792361921050173366893428895460642307430710836084970274752493380902764036096221949473665014910826839439632477178471813881671362902119271388120671367844779734020734756295566033665246073289357456470146439432386564313758727024520443317236523150214478373210512633868266565613569878130229620312683150953899474087016806401682447260247966644041277252347345067099994352609523667639217737747320217107186736295223352893543779836722061285276492451199472829083818145551176811417061876717155307634306910960152910430611713914784962496527477784319905695822733202329693479141937852999084666686465468183751534231570054311406068969424452230443205142643539495586531316362726724650430536248032481247454671712729393445268409754910882461602289337146629456603665874903877693671037379524648760821962342838312795750766800791159407310043756096604034777074791377671067251881721659453678699863415587377037740336830081025621472037117716254299238624695172591893102231389290754798843982159489991596931905570659126615740155932344261461256502955771032091656735644084360212238567183209129329510106675895685047171413610459069587228277980744155264766540647965261239411154400250553934327985816177054967001343094321239132127982086750872737386954879837306765771958196250553987422068015512706304255587087371009020777769940188015381889369914459267735957678191015872777255162114334628523422610048106349151280104379988030817838819594459573874755905306270784857904647195129428157660753845194167447708629112847886910597503886344831387620033855590886073489936728870474088530518824336874298200297558851426072122672941008549099912085423031053755343969931542607090354496731191979924308658323191653125984019990039122591315218461611559333253411299850921263897454804908502410138029627648958568390077238569155657272640175837184110061940049411126345417033794029369578998454583136693968180385332266603778271832881503740387102605523461647817350665536396491510286567366508320844900322190350703927099443377882821086417343014591483973695212464576584709453597897796311890763788103811661069306688483262537402073456799520992682277785973642268165172937662231129874016031884144278488479989888617981504859597881642936698301370273321144696652566811615476520770556274011371922649837801047468232682034189686244622701773984891363886770558774127127482400651205764895533692092419153677175019423281081587047504409045675106718066647632186612514589595812758769615573820515205552315376048936234921232540578040343674060747722938916265078843775902519233238853475664734958384042653010251493138141444564725929325996494658114472235030413475897280128127269582347055137600599529310482332942259691768136389913938671764138987923494898839870789583749321007089837472632346333776213973715581714704763354086759213758278633180115386947036140592886757782953744172563864873640872807275194054096346000344389454378158184397949336412682810436747698112058091743028942370883272629671993764066661274846101335019707022339505482587374889169971381496481137122492511270850131985746398726462234747005781401656288368381695574880862178714535351314702838421031370198235880317568025525185464708570007883020247458362658221837317288349805260025459539897531812603571110515553788113457783624850233819105057624352816260894676691175053454932391294764916476735797850114863983550743355189570486778634260440713221705172392642098507612588699843959069795763883645068943166653395337755471005510739296124614618669880413521295462821856919403962550437872430650685077266352112919062420282242392913670505902578439405873211788968961674593369382954352983965967767314098831874984933023840694302769340218260636304825989555686160292035059095460062758258890814647807105357255778901987268245590826117528903709916204755538988657581338676165549140358989929561514681458588903501494359910872954749530479457302904106858987753524234784720376388025862863663484999496864408152380981308471635326555868766604074883762279670883510390639289798065103028023501536048901948993982467801438708721702006305062207333847039490504573584118772845397116739908865240251550578250627919148169677287532455017446464959130489786389829312013994357324150886940651036637364010943128270207958269194953137155969550066331388963750667104284733907545610373200757702509587039491270831813520128248866973085692341316535188055338152300956440425112447081686133747316928142149936065548558189102690511450683560014820629874787981357530581220790228399992255825160867105507806532343993685685596605610833190910303655064557743361151681206290054691293790333592296302035759339856087702764597881984633713595711882195175917061307373301244638669548712030270251214625547543363959543411112737924761892611404317235522624431421985814297612165588743963316219866105936780299210543401893017437666233415070399263850185567938711428772946885711061616851846087139732874025790214800453477423404632275108059687251244095044812399625400350293982857337840357899405759300393784664881336196076040691643962300676851687157834921162607514080712259389977572236759273560131439372308119164669536366909351761867508478897251837908027980113693827919952859185702604734336340809322057529950722097070488687791016198075336892931434000760555735958616978181729149198353845038260856135957261282309440558888831440005895047784006590437201123342665817443924756250625356438740906333672479182411106934089899877523768889386501437947011058761450079667382178960021952484047243734340071181292840404699948109748926625199470581321471567328142647055732542664185583032832489042243605796941357018155535571812552834877955803851554566287861445581640965222288348157830850101908227613284310144290434141189958269839316468265764370835905659936339983954581187166856746039664610881789666830011329083582631717367275023381118736519144436042733303810525467597528849784864067453505947833357707121452224477506135153783458316684538429616419048233743950093689838784725581159813780514350864851165093641544441915326383861194554497689012758362092447315104685132469689423466609522665523719454865429247556497052995510958040424763126462489999623114454245907932087347531278599147803748144030764086344383402757907069634508316813112980955914019720240946487579665730302639187325675374206845569338042731313400781937453212997901455139172493696983191662273122109751106504561274642996390698564285171218083382442835267003306078107703550565177112616955604538456421284900958199204962616251639878117891975724441797099353071759069931521899060924926223589204726435081572935997902496380504759187895441392205015925904498741775966507370495256668155029822000615569333592328988787215736640494543697008834815346383983046065220642418437802349980432428035991300810155781048141785530919330452525323777783858312272508077741842909745475273972682159205968082021839933158582390078816936132558115385525274379609783853197402558138976652399801329196479436371505535962494211122642004773271865778109119722306635395798221225884991092115396515537991408722421925441876820474771070521637629904960226450100454030488899051149659308878030723605925886602430536993500320971431764497317569368356567046561574681676176662206703961080685900647536277864632323625939296307304880694526848726956303090803470747773786776544572501327734253095273988807375614818359299230197546450077455447835231197238414525822915277619435331796785671978290506129744888020334308231772886829808136179789557633731137777923017488162161894929332272633528753009446042432392070060222697142692640809376375642659695539980659223231028981261302661311015995630549829714899614561777576343463387300809589061431841991771951846944309554452257503073293228353532074599366834930753236589895307862742430203925040349339540432753500279073376123320667099986671240941974841298530197064785739088691827258020369076880175579348103924222705917554984175168494010191724216736904127277482156481756240601065408311814616683234865306521352855322607037172218857892205047819646310228608911783479630500689072166629956613547192897128578507369043178673761383467627317852474505527049215269752213147313564863413245646661171204488025334245098290888602105403928587677212847138488410081786771746824308267864520924121412047631723152108097069094583607848259998203551842312185865884399044886557815226344621488006342478539299435051134927462149014645461249951247684752662580548754228330914415536354947573833848556603266008612653440417228334635562022352607385310673755613046077626404947659147992115063191452458331235262354009381195201113965665086528610920200616716195331658308003192214061854181282350142209384411395292250467420635435175541066156221427943334436917565763433726137781139944515881121125458487767561881013618835507118566914241056446724791572962098891672768095345995030426650545240354422650400846705543328548970893540606758473892283917226229485072253891145476362692723365297855514980790385784041590895000612053479568483055377094102529392023251437674149743049005502962675031137199469004037313357230801191573182073515077099549893887129125186930975012131573117585864356365034979365224078213804172859834689326560439299093538700750269740036653745499511548783509927048004171426880336894043751524046158825533587458313643089962503305148894547326564151237707646078603241583960471156993890023874559947395834980723609444751721444762646388448408016067527178728031930491810997412926025107705895686370067864631088323425163271906935300195174180454502418969084839875587148978170596981967542643341734031031937423284235033453942415412409188226400321897789959477148325134172724522864845209154462915825366466991899480480674102784865137223319100610606716032685765483450233541357305537720806891898619359497250636961767854714885404162657301130058754123301985357785405836265583332702484543332108684590077758307195290887410899601963867528876424731400121179608257415088580505863292278078562231511797801057172267171253297383239544321111336294778960316142771652693918443356885507595336976795379866366207523991592051652854126130103681257192117738494449495864717671439650346991950486078490858529465246419901381399479399840488490509955398557783237673635727849783346219240533694160771041927185479937762206836818624949370460010127417578928432305159663773276510104929588974632173805216946401297462754251175065530492990035005232881565593293985232502471079398608244397722435725577465967969172838846432291746470161949709826045667966233858020721370437296288429081180234621545087671885714690038029712243723856993966308249727300477320170680567699383949784584370132780698938097370403153458584277154613821317108354424664754277238136349256368270228224063734132511644909312583177774096571594100418215929017749425086810526176540661072218373201152692659221000492828169167465758468072876818057254633436124657004484261145965699675935459808953367081058715679443593862747862488567329908316323516480187011548538695491327908994944340889856792451207593278077812001257143927562292206262045409974250633692093503832342076689329750510538977666514787366618353938293230716167874831946926942958632518838657686903436403311871084746902787684382422896914980703573736884785962421871306662386371566171915972310204488483344655990775122445068645939610587737831823724424377631920555471767060318064512807424079643544339544514792142617516948690538434952592543636987066306350478158681454850573111431472735360242352693209002181590535997780482182396121469479243208176428256562973652457710325381115651716583494424678082481504802277812997788757745137060803278898990830925567338112717860756005475678737286063043601778129660932888869221186580874097323443007562868324148139227909458531243631657899647504882594391746655287929333030256169683013805501277915380579651809621900971250458329550885456589525406270200586753346927338520091165867722914252575872935002238653648368344431021250639667338696237464326432829593385259648574645339194203870517746284432170407653693900034598817931434960158829133999981146222536066389505052834951972063415834044726179695325690608958979033851326721835820972523431630999442106922564672054425771886642116693343595306973185492451303897716541691564858281694902358277926931326269054594103970156348072245359127813074359660165115292213212364472033107568154812506185876419785889240330435775193921579658180389593137683033243815713542547021137402046547003208280591685835435156352367485511520535009377193211130297565912778048066640581588386728083288618215761683234943166094488652527910159209634959160111811785651192260413692605187407720973130913854554010046920791087304963327526138027989463503406160943989631689765680777204928554141498655814748837924926464961265092159421059152966517244828481997101251837654032266292185737751389281545192460456769134493137437500846278951517086398350950374427106191296026289462388165654845654099918691465850440746709750042233047232110281250922768703852541695771464699688349542440180483661584689068173482535855028335831686084461045724879288224903367539899061394959388288549705521749793945767654083294543422291845996667314513999078014489135169632290892625026110100249764818520744447034475724024474615479063597648615058619999941614054333317651316412548100719036954780801352469683732224169900833626797547622067064210418141279709937246179720108550423379723996108012577662831050222129273857742455694251563440068958870132798238402095890743887744787037707566233469041302600929052830469038377393776486647139719921050149808211817462362763180006939193162640675836636660913243358722207801183197918478990739584114000751023975112732891430966815604829708492800705892581797718878141062401213351236696866122735751364856546370607699968088077363564542853079455826582473518967873327413766509099566400997799774166331196284907628007054067756425128070124085778524444595140419071643843610441757519759205244477447742050976351204268962887118083153525393414789043089571306314138619506521391317848510116976094550709812410860500099225057855342796467989565593495455123621009559473847056002693104998713911771094821284628954310314575001346190541490693387720526828119527900238535306578023359926364348360868182075200924953044711214912998874372483995966909282253501240375180685923465860797546882159607225643265670807572095083446600897490232264391175230845503138545616628331068722764153119496755312526778691412783677843676043363072233342823110923254370458691286634516652828444993380088067649003796299877308179257755039372726602092822734043957852796848772359503451962607955043612112313337709867505182778770190118079316749912384700538731368708366174268403927948088869176172541192872278171831915726742906446298331356224125405930913100436053223611467851942316112946839312580574535091533524240093278135599691978272390002641045992792115159858242152824847597620073833583790564775037388583674607924437652659106911021257618629959202012549278481590596281033971258170843478142717189042898287100921316122329599519191807694804863832430006540248953253540780391117596567187368209772535970883333080348823018908871924644328309634980482393899911930471039833281191406329439140557138030305221849071416950104577379096833512493812748271609907176918519449280082284996785015207116486235720005977352158307495472012663601926079127727617248808469451588987343404715056057315289077066895045239532795714522539910551751195355659411218663817336478383690677791662144230534768899427635938386763081127793395465342039333843046278632107345354929018554324430798777122292111242141825862556197839570965512999446262655215846247839601545265591742434327118982056367935753690075799717198065387590978537313762023980820415078424433132611108539697392170491171433914095732755530719005815166310038563036662037970559974306244175508483802746888223923393290103250386348464119462736735642321471781420088632250538730533485949827600588347887608268974672022010333253060971567193682254015361118574166402325595755707673529314290716326891841504959645183831296222951281510406691287842323161323291021605522994216946401685458831272126226363347928653732658179152939805386543513558118378847896735114420247752588381075115482073807720145636348157474725173114485256659493433553186491737323744876304400519234107239322887410973772266667895153117891000973093200762347702620219231735758462986166190975140846767991161913603725390879916075479816667717111248816584899657385292891906972020552707363999483625336461698747114291659546464455045372244026653361376834396213475584012356372313999655277655515342942930215097373149089734145971823649212368052143859475930439734537645351088630918062727464490723991676294498057204957954271252913192197375085114691864482710648146994762302498380755236738874084593278719018498361198210808951606566248965442410716831179925742995445975284190985508446446744912252530379838835041768606954987001617643837142421676729967852552645246480149663445723575558477382557978650497673257193417449382316381725716664938077488178930215040811950380751400610964381143606125756133631079141598264547610001180655769743247269497358121310135215691668424908032000217213448129281349812414668451989660972882591505493079579549770705983459525052249141122552721995971169567987973856585670887179511739993408952413075711552096710518024193070424124992916099341090368950209007857344591908999754108306503855673316652015256754643593393867247216166987298120095911944535239222847700555484824864565892556482080632291771262669960266584065100978877904371076434262109281978834965263217387131554526600852924178879219370494870253560789444750127501990215733994801577857001638050646628005875327359348415606385378247193059809561658049170049363105850178743070543831681104723070431004234125840037062898010623914874965339126395094098654638668637967801568422571324537157137375649189413357476669083727492640943306993116671273091855831341170252359514482252639940286432327392113040417707718167775762668228734411355051877882119585088008063610490589995415092478881024450867322656589247958328377792145730197206071317442106087960650317735161688749859275665276233040350701707300475208977758324912995183774185074211732690014178552155359744838161894015603284778113627801444354450778180333355000937965152408220488519806114608405850724201197669032900137632130603991562708154600773195700636069399763505408229678029704825826505481997611484407981465292534178497210977108059940150994397371527281485045729480953890847030764581314341742292366513151652113014825991116913305040133720877365235221519338249960428074712366861823763343368073855279902877998314368850544885064479758871283649434617317402089509534459584479401908640488203869805277983674536381654584868538062622885807759331698634751552553650961540956974398981906480599381830703700032826300813493732836339150549737630117838183800879097003072996162968011795678656629422462934668567857889210513796147480320448106143494951324800237854971392670166103444635330823083931483388787938070070393772830703970871605982054765814960206089500384386511899321728321381696709183537583005773304390394097708222179026326994175260474892155093699728816493897542021017825159057263633836908403565609942859967398648046651510117785952772781420554063652645713879095212126152812979506306786357759684516275224979021422254994858517953897404867318067940861473395176825929577501889492948146798544075382288458549635600229819204198543914901611573683212013892770349136358622516035874711028718393560561464513893244278644910643001239318412833794847957431868072588207632233708825879602107377621891073435022655946738838158561987808875086479157559244041687613349876508904247731235499808269112777097092254746352748283769385561944160520359394697085947496305941085865439069150266487965592419730545852000873852377805567189830735604112435371370301533281524963279295554270281428366406277101026406044549170619111838736188754069061937750129106668464571828488420665566497723370955812527519609773169773999808302428179684058115208545132880529562923806062093500612515944182777549917001325764594316174707408936117072823193041761588467187665802053171780671164656450364957966450240271707478522663478832761254377161640155341514531949811857911101123643887685531319296212700654374726983718723556058443301656172985138606825712957611079594892408748079348111782735604672141586466977571419337222054970124768153616640296960257436904305351381575759494649577566867446270574954564160891882347974136948876684772127473380117167245165514334729450033321658599200562789974464082402690496872458781930257024702933205891528549981823136448134462473576038410905439929865510955162720197170627100730613339950457147509951189854843096160962113698993518010893635325496904026442173152209462285184820513154138032122763565149152748911702151605981699332791565065284081821998855905575703027680921009679199310738633896843830138538793719365086641550977162372451330496503657402890626987153453834017665213346497125925772055682894962752477828328648759776546862076234920526142563500611330432929703276666988744072338073393794895660741607651444341399981281111285660433142232607991370558346599729651696039380396257006382255383171251336161150634553307301463969639810010294381651367301204088037353459952920610072893100264767827618302433535604883020009812177386604374195678404876720431810291734357604266843095178173370723383350382233727147045337813100001524107695850188446592468003332323249408129889050711196652888452221912694583415524511764189209386602143512035543716495024457749765677966191622888848636569376733523821846364637900017059643847519026262482924219974148396466250017092302230700719836624077556366477413083126933826914311167521509460045586047221236381403935466687253990289695132741183110640980692123527739034671080303719248052017268588245875653503628697344464270122378199980844543704580875574586346783845835606636227400666592502667072456448724714210639972543955699796846279688339972092688607592336496655331202436482239861319539952189859511084235670075743331222605282043471247922732581345907207789094059326640926367031095882677061401551129374926541274828905895807477714016164641799122409973551320554077682214195775959312836312176738735997578314814750383895597704836798120054899750790288166176649179398572626136269594558488104151394392251190986724807529567044819413742850410247058351340554594120781900498200072417636979595816310316154866942174106344017357205057209863348711998677708762599472604892768347565696787382646714456674340420890661040809587146451132632217025838037571150229437408589616412677664554885203231581602446001779984998461722566196981353011260216245196384866302701314474340914457807254255075254826389340982114426691319401469434767448495891962457196387229272667330238513602690441397643044361389020289980977349133456493378746556294769233698131685355046589919036234009812675953250201270413329671676718229828323000232202178768697799884717633587999193728679684365687331073755832711381240494264346506053255916442730763512312588586602791431594666688018832473671846201025553058339157786450223361424504959153298923350606445195635215498363665610156978011155790837074032624926711730817576228588853501358775498024381026601966960715666230249640241692719133901507395747982161367837972752888677125283073045222523838382388312373083481158502955748172918586770602409990210835684619775844318307970033226303670489584288398296182421177932816355899905081721796422370703004744703014835186197371441958319205550694329687960686175058569449331650009881419288842628404934229533280990777837763603013076396339296827104386717340476156229281980133321812203758915195334568634865048785913497427523008621986813051211330491037402929033506153786201796891642773563759340597515917809670838208521067043162842933193804287236998942211408887200148427475443056109144313778670621544049626822727921165681701562071616982757992916998680930652191820716067538821650094693382616148635625624029936525523819948332196542049583613685300578376752821408760129559309871899553135109690595276242604332891308860857057622160906216043245513689513504997294082147161065980699682172348864805225349459843096079903494897995989429874970596114533604877017132217378720506256162703673858979516073408562865828028468233727208347216019757176379289054376534093784645729803048439149740201414220936348809321632711150830241149837767100171348934413250341063733811831653667283954029174759553273946958733142272961274812863989566487768380076528986256851187027864801534158238375118108575123564033313881843546722575755644198489976363192543717926819540863183926789145777257096422900596484197836910042069796321205145072009941460015262230598792628168299454568183638156045983244988678153853925452576752396427814263625954503112267019887777193386824558730841267361179740244297725385830125979748647554388039182705627671865798747798034419504883565987202253811488626753706966104207391876702039781839933314652889282924746383138664046344392816958843080719963638508120633127686814644680611032421014576238791007427645228968850225938154139470212996099869272838953009236827569688869815499922400632736787374665875798090495048434304087767874933967124991789029511808819892704629145874157115085469387396097202563209609875675081397176765794513046678341439318481710704057703933868891823278258396714430563872392912599010420348582668041396592656051542720783782473841489628641129119278660335886591199128393356104454205179160529560931224644397704043489763635013336197483067062593808451641041235392309066424110912391660661857071099804414390615053028963793120207340472132524577922045843034261352963217102570649368532337368677965807808747438647122696608225495754842395167857306725024446519167195131105353385077298733892890699067832173200958084652645465400706238194178287155371045681399453672718966788305887320643955714448174546744917809977511737561191278703364492045452433945146516058213715150692326939896147665125105669875124792550021247519409415120498421959138480110583906627838573264347306231798116658985468303211655110196701636554070350303807599413933554113480974568359014109502554741055631470070264086784408819496449372907167627020073952543530251115124751483168089655841360009032915574884531325507786288542196982051395485415881599111786804137000764340111083769440235840651186669121987976959140903548082741995483237884328172284222781106010999494000371346046547157380832776283360966611503922908254282173441716919235474387248496049195246535716794514042480629479558762006895709615942448681783780954989300974081148825737041064574246908465962913454274537595887440014840646756336726121488588345999847229464194228897535432004826611971893587169982053337601313416570194477403810813051963798456165384663155353091164969218798546205422703680587590837065536273313737391106175021066975526000964858685838654706288965927757093125845828021674190945784010261395746733703712017783477737367022826463997326891676185979623961377742123624628605361090145155961694824847172142315618079352597944460566219779335127516578062094767006702250975440098420083105551469409425429083072136891616704937475576509480137329234336406264726269478583993652484695896193099267044406488417440994178476004529893322749487300330046565933428129568742240003365811496284350828069129592193964340997710576614956304573287603705589405376000763640775454644153433127862983013733489190696889045871879902870642560304870221193524762094141522515584337226546440650056752686698050653634433766993301641113609780906511549015351937999285210012906926613393698447743277246252169417855385105257857885110859008280298578294422593267144464084010476200180682646298538348006055091321364420413157095775473708696902617601174333939811383479211099916966715729981533271262363542637389241247284349856419407236983711859650626669496457012898726366061662575415897955509210719859210494864115821286909369263182289155388422057555886500117351409211487714376032147294706965089901417237156652688361660432253194522741764839350811418606520805057094469011861114528158453019165681909959243068769366846524702382785121039304491667724058566369515122340382653327479433179584075723508695268579848778218897721604723532512281218407605174858622836767392525204919855580577014176145287668071779350550062736687945816556509777485904082832332906854536800839193669720000320222439716836051584989063720614283728362800813570868267497196497804534089313080275629079312497488615856796351171498085655518731524008440509609685601617076833070779906331345456672808472619321306927884215408826716635252912099184537981945908330286419568330575413911397438361875811435474981290042379323563384883952890586153739915967784484646518220632049751079974168274746359842168437832056858305124964894160335839097578385983763236539798823290972278836809504586078156207679030266306194455746631121732711465488432577823143757898988633740965154623770249758485008476311364640808424930398528212117672600616459029966654813254627686463312127433533936536403911917988364051080739703323328171964380011464672121843693165310511415965602259664760477986848373891665964299217450667412009166218472287394154160120903713146504299364774381510774186356925509332312449428294485058307678159020943151901270582267143082480469885167247588045398551906974108740698412838742214024662343384438142643538444652768673201779641168558429027315262535194192312585939445081971141908401543305627333274749947249189236381496369637322273642695028466042549991209840765087665318808257108093463387223115448780792530779941764483855834949788923299908680831554750567962487417416804831790288711001330099899717418076471390079775399180357465149898784371076964694582747633539179826481228178252948516507944192107187474234969705210208611636872711030203852717931198307306194051324521689124842634602919782432652475857139193551450621624000537878164649970458599092303477049138537082789259743354791495394848372904868310522648706231060851033714959199813507447206402763280340418973755231275897670136363332454032999942300912563545949295404578937055782961602400073707056518335067958606513794821833780527152516790552540967165678274746418567945064990001554008631869047568228021962462977690880961346952737841145492014424686820545698273346425509213762706173835786232730744246899604091269098179172693654309515502271053710769035600975090858505483858951121547491471936263678740610779284053238475686446555743270517432638023253464916554023687563445442360346658718827447179616878215372329783910291706283633840014596783712065443531095216962340549496141074908997972098155179130024101876301394505717062143748472730879300719685847729060771261294216968338753966477445611902785127695018276806485523158626166254043158759918268447967217776733899307971937036119067209063376143179922232770290173329649347302461204688453150965613202525871290647047776652592561855672519217208098321481649594889960594592943308929672873231352568566892257690015683891912321322933917320062396467457855247543476677648676547325063740819925717577990592465672857026040903877704156019051304841445483119244585495291728482983542677631588358389460795511454026828694165016243430612747560904670219086992262317712737066379367764816659343327352172573592215034873835411336506913117060638953040593465820253113117506004866482284136141393060830345601925388628305076791816934738326362487778606326624962425544033616938088869227908809882291896803610794333320830418031351062818810426328229647399920234320018655121811412171129145890939000580699268416903700713798833182343396003650994363303147876165260773122166224586470899714591016810402132039816576389873912368123729432202670096919950695240407790455191368462848499277636445754193485649473168019040593392891462700236893256301208291078680384323063562518628419519296999971346655415947401115209578882409983773130494503488391669935586455884119172409380985729578420103103986199711535761128364942892418131642152374110514710911421078268751105949481612971571795772842414989922342636998866417131880136639765174567689599293509442850693970354706030731473609247503355945293978137751038477503945538382928045124834974201190351498285840800727594827925777588674278380024665396645291907810558383282893296455630574701613438572301724056280764814993139838654962198568954909027029851672312841416928419349775176955662114575451605163913564900432284048507828091550647211701994972553158050522163233320071223648715346227474433976379291696066073588465620047430228860065307269598092585557148098227787718987876541492414142797615244882751701809062528269535796417515434925542585528451805956374814797409891244667118312429706032416018040455405022038702960314254357236612146218286302310831680021848529995992800045856203240012072117843751698390493099156145660212116154130244009172083779515851502698049093217408367630508301579025852971209982313721930339020551400124177214367274332396515124976460562754429988336920521722406292087753049540452927306078988009218697994007764707564917652280404239288193025322141102780414801797294621394777307692781454076406652912177851905872881499133645374218926057978609502840747878266730579758532449404523109925958447736201317892280523861443918980585349123714440153997780985294858308457244127119531527336922977111283962482416625158052005831590327035119340195735228512614028286618821315395867241713274189722557277390116696846196392768509183273602624445170561532848671100144159574598337305143137815906893440883096349954260416866205879890512226155434352901639362101037222831058203767760598201789384488032031958629081605279674372872314676607656367353277069783566803200894617814689437386185296870983502233485743099643040589453004112820687726742407084907868753927525099089997872731683230393377950011822422642674451187834457534219633185606259763733339813986658301470982091746084587693270118524469107514136359680047777079853149274011828391437639541433439352948276795951865231239273299490403448770727442213408938405716723313173732833583174913801327049488997591213370194692607841687789989868854626708328396111030025663027165805101734081319544033066198620136007677230764415088647556673104884769077106113638983925992770323635481331691074071842975553396667336228858446241812020890502691426722656542236141636946962969190070684618460979234163086428110407605929433019924965857558807040405416240208794589154833700376742488800296122436280015485025138553668590379397906813489092002393922074336894882744631405477903138603224326688081423804686222110500514919099670579539948132054562017077848437648641345111017170533151111926052489711737732873443811317184098163063842428979002142063148763947244346060332723559617898433454500618518246814297998597745252896311167638420758352343009748954320993830412061371531056476492906987736761004800182075859330698298259101835378771821199383168168736123533678887214609388561378355389797546002265309071815256797293422005300709937579587219188707206369708571480472130844646268086173155648726505201711583254767689403876957514487703923149739759668184234754653595528321035694220691893660900189245799407182035298976122872531320929331792225214289927068152490098310073382822051588492715985422856194083841365461750820899162716164044541254340731940822617425717127758359588205556158984310404428974354386384724175951559450641327024546994377136507435880235413074566644922325159421369759950271103182011410285773657284880189218017178036913538096757534355644373575734627668942401767499552527206144414873917299866648345512973565684471259760998004070119511167424020293875866071640404958623525860517526746209512051694959014154114698516853648448497454420419361229397520828501843222884863690173268441144658636972551233427640601024515238941244076273134949757545800814189908206504312989691998929673518952245046382608281411042567034632490962078389208715807459811226216861330488319184984778730222337287833280354754742928624084487696628455146807530131155713708776949780956045029454383816196621256033141644069941360444272008800897990392976596020859418904191142767863736374926540953853032337469102832634476195163588679116339650961876778804565149468819235672875166858647452804909908088795683439734168924725965483564216527308361189779664745810360370510699165151424686384940586930980892645533806736784982580031147231428118414606737460165034421083696620677406076098277742305471704553934677281072955646867153953721705557165325816055849931055987182572756182723250847254146505473800465600494888130178153943888067463914855378319218347775104365711590425062734707982176037168278128342769761168277045218145573031078132383035506831226074002809425088374729764633561421060903558729883607575164810370188088689826187507025325939886831608335955202920864744946697938348835570551882927128812473963055194615762732493107243622781176986352037030749411271130561753310065481369296176991126722580028814915940555754642555597476563619540339530947021907222027606105950724934600874974800029740758861590706715260392896134586689925286095573785055630099538534553083523412197557439324523967901226799752455416798728148404987010064724028677911479597929794040093699634454483825709013080973476511394437364622107899321005811073093983706192302665925824891904650253502941705427472907939812314027336406759600804304223528957610747849279275317906666872900996276812675870511170527713557094513047676805211112237566868169281759287089270544705937434755127974171536116048150211500154585903233785044816475526472531129548801366060758619152005277139700803054017254307939507011998297362264242072228750937588174600700541575262071904013593927296286524642338194086277901809083302954791749188344085545583671293564565565077900260071591211824843195533181498703403400540393064201950314552923087711668582594561257487900063364042081614755777925060605929787436605400828378081833744672822884005360498111073082508670031594385161087092578183695384141934996877292000595064584327614572198885209177995234561913479871914293181898222526181192378368917896424362669323325963804108423586693745810155413578677903779955743825139433797535599022776678338439673794428511687314892650246442035731094833445518358505891543994993842130868805304024055957066129576715861271873245335284665780455821077513203534402277971346500491474402332197136926875321315631213926005243706926015686579175024740865962231613146587943246525347388649025392932997964562044805370996535248495054353916059451453808946741246414163063447842716540116213221214304849146389082227464286137973977310166989132125148220917370108651983463359097823839301932545201044697564514193267827415022354384070548305066655722587263373632153029258626887152526779053237783746025696948556389200073233377240974432703014340558691146520719636430536792137092954036859656791384918429333809134529428313994444565436575132585454235899340046917085163263331464281414942829808238261445405600780246656137966159885294498022280718753171997817772533735676468855846300951337430484119887862540372069762470596249691327419121050915009307396868112461099555067972174109241963914878477766019769618515425950733377322096516838564623327980275604091192109485536610005260173651025391217477144998063529544732949134711129559125564135192927609497296401227792870925387560381004513875525516494920057479373017562771362990037475709196958153436652406139915248265493512632016886173073248078858828611906384478567515178995169584812367783745387736174453672895319645454346618493163673568527639035359269368832495401472651003534002320998417321345124523173635530097876681535496959959848291588532218523159747430057464871433274824518553964111235111133655028964753822546621170499294561843006252837361257639115282000901952729169340483082282167775605949935438141039101966413217164806839439291134210432314802173935667963322828234227194432568860219624271591238052727997103883956621584952585330143876172033680053992068962790906192221438890965725443937557966299363214640205629809460408173175856981422988046519718963555878144846659058927992238407632619622075438396269634493921301155709019128142692519609754115854300575582551692875034435016336641893211985524827905620699015913149774573221542398955667341662350242782602095579169626233253111657754740147543705435666682931343484670259516302472964554087727834625993762048699735816456599264650998810355160840005608275426303162600143511890745090260048937015725577181477023150051695788790421228752559684485367843437246904294866282363507949825675745185885201429682497646645146806311611529265670016693860220450890119091039380843392304882147129290448850118169947203969750127341680448238337241587371748006132863994399289016535200322955719031449023191113512594340413384778033344492021780361272328947684177987668127043868183754761360421777435791533458988396145721554148165124559838413488762948904889168631951137378837993666486083398407169167262134534199891542316720223885428706470307032036680725441593452359934000567828038265750095368539444118894985902735971067115682891805938672068898538211514973960661882886844690729437387887025570021216732333240108473940519725483868897239483311464768616052143153570260262348886809484777734989610250427697040618460248881399483940751792310887253196764409467644439824031571422105508241021574875877188861145464669310731827828912358206854185556891572221677934129657240936168452409800918569211645477943683104415292812491137323179416397888695135376623618572866596853756162400034608410353785299736490458919885623423732372080523213317638756984955885996234613342831273927709882435409714441195364468722468878252779119105532935181181531358506549007111974022747600890214532658191558830444946874354705347007719810655983815294103000517998707615134529993072685065685932653072777630382542186754426954445569541869091516743309757226587747107988650049318316848410781046959941643141182224178504087371156363949926127928392665364968470831654573743424666551993750677518650209405136416296364793706353938882767257200257802747430496107038174459263041578015027807570484735280449347478295756001238848920076639934338486597723311128248123142946396603174583455172381555909277594918230485870276038706110647734044821473760372758391625138600379060154292339404412521145422892861922163836525452377497762265346188804577184193934492521251294413976617480424731575067953939085331393329011325515742097626601273862529335261857537393559661427259064192049466348332039076818408468053375702477975007819683111926951614755435094161355590763299634910159837274373453508060731635713717746943507839923619847385879766420498081482137772478406589250682212559211685024610669947039735213033535196200042226307663688513190596122181363962191417131545111300122161850897872810899607305212747014628785667634590630625598243421839099777571728943707555374238988741446199590672056690597890212415870723148459993563596361220249368101423686973741203288994125274483748828230826426001759229068765437800718021462589649281489966658080428180308861726881123496004537028533044852338239342462422029089635286353194044875426694313271922665251337412437012815949217439130908761348530987818870969567387681361030830545319076925678225000683835878123791319988803838987226420923476414827884366615722411761670477022090360490658696282823439337482941840353471504066116062551124112311205012664549683753138037258129224151422649395537840615124116447959976641557555287615674204275201664924749839296280347467019061028268270997887781565617717137634909641616196364843475245581066746988216509104862045649333409871407287032855610263595520653181065402231266497815961647476924807684385732900027685884342983667675455372766603142336841459024825335429947161218476729539881389537732220256701812360307718658870657910133271067592005899346404058524745099657668637427302447657121831740221181775378599936925129372350134150158938789648322528069689602437624467254239207054832094311031695913390355120535854251467636463356671561037064308332373515778363964073759926090176982727147927464952817284516811765045878253909662995325124514438918230919454669365219148210401883542948917501448847433259777170913569920011823486104258986039144692352451822783422196915355421160459998513200718648679537965739525916703329684455151187748944253306672132492849498886446031252588427096704760481089911682686192978167931869456139067872006883290638229483914332062731206001345189182640822860597796795400374669831841382614571618893103405615854152976856558272038293506275685822765615773566859128619353269674061114157416473555107331408010002026936136219665465194229934812665287903163249148840973688648505036252161451220615253297610028101966833866952864018751507784519496849090375734487278379251407305913955832893932985592993938098012733761221518569957747992573735510144991457310643076599028397187496266150069232450975557758275933607330656780681552638632795488454289151940595214760662868386052193816115428903081684536746479388893361054140942734141621798937081724468568689274544468778520695815209197499035340811756515386453403285503327826002805245958661938744512970892678195137554289145570567610046732461969752596023967396302569787798550323274736115949667513719314090823795870688746622906384947718443198356619063795304570836500091462939971981120536707029208530785028431099404384459395293532830835281472520803650443757779650708465844510470572212326190055092909570998340566190856541072386681615620227368498653517288867542129584351998162990323343105998070022347114718033634867315043883441015209722396277856441581596204345500224823194407786211018155033993815143781228722637234916059667053326690171634998105200229232574227270588709697756616435402894724775724254726423385791648043991597533764118260462996582851883066285126212196230666820546562893631901416106536756277495729154588851311212166584350024437107113822257493211575908971404792436334852008186113722537432168003848241964844992239558936780536971917080189652298838874846833221916307178814309704654368796806179705472822810759968270474631430026647041490681368641884649264004644665138512408954115608734591609652891977672622821294109098081708200236090071734401290177834145323199954529447627320451790877197719064229531140741023346790280019122110191222165696013212913507550153225896500381365604363225245140165509104310090239594729079576398527884127656044966145755882159505809824726175833694421163589754578831765784368680530789601306859227481754707040011124391806489664733046026865079533033069177988474069918218804080105216282843862579766200662623228329838892774700243354230801715832457530389932214688215398975008116216150886710665994000341466930634559738017686696931051142259337183329618646268640121375747655110106239306010799506975762719611457053193331351654355876809813534541684147853212249130875164348794774498126642474051924207358932304018823260457481070634127734536582675356548495689410975494719085951933135731239446324468339825295964920675577680880492030761618478160435478780814178703756987892096392436668125716187280366507398367962212663763485112660147404448527894400725707605233476692954125852427249593646014252020802068059507433355580646311501111124893599254017891868722074307553492815271166124595676867189378442023066732655961101711299556041573423492075834729608432707984462357749643534354898970053619033986213254144763670296884535996126217351410281991527868615085467218420798361501920627549138081764531168756128887848160746948201990125199931071862254593564632942932829930076684238584512361601436981080519885894841408265696025493987530089555210937680726598899961317100050830422678500930388435497665298569662031604220573270179578459356232587928103024612730170525728550775051894316754753330056750406923939012591158244561846370502945609407286949459791084541840640147588929881988633634792573514875738301056286094133156272393296580484965621601133043176313682895977950081163417309506098584217840785295149971369641440643327447286053218032801917580771689579987855790918168712517052904396448504882286810164964185859909028491926576146609192236565992573120403761915965818177933873647805971364304061069305879245353948554807868109892284560072453361049837843686086322351791476798681239311722663621217056336362512372218052419881240412060509121821771025205076550146849319643660501199224991679831205753111583548126738878884526375961429267389867973211502273190110517313256248837111356405996953959420950894862737386692245976527090449290938800942692048654994817293019285561175748563009781718418756570049712669523678941024201464070222142425195937784305911877130693464322248253816497956469266653697247030501777211790077265170881795420312433979078507418325819750948826237383183611063693522797515513532590513371475914629031485748330051613215893447270789833777569460713061348324110634037988729263649885656521181030735806847531048729786155714743564196334669524002736839202563687615136466896922545202528711182980428527461477644392069561911913746311334687560848513792431132588222934584023495178310730852326950042276924456478865134672864507294398108837570784551590100317341272001262625571466192200519601237126018682681581204575604023330486387979952856537367938426193632228859947052613572503527806061741788862064062089999326891877169915288822646430150923556325439469401950618855867057321782254440593736784037366559131702819523864387027440277498965134793774669125435451921003357461730892777025434660590181998807428734791051656506334847173958236530447027335029054841449183045548920360284788992335038924548467037760908466485496593415822488039127509187297260518501770747390400833316788216706854301319953224069731976614779898588972451188774246441882800099795292916537895527965994838887139219821339096196730856371741900969109515056853773770301314718578194773147837386335048291458596165197950364996167336608991432067073727267759878285398132998073679882728258763156983078952124855509202978358747243773116884310485031410172842027034933976748194080466451370767681044400372401229639266767956866426160184858989481204294559713483537333379642926998431905945878166877713141288874126568984594770620052332477808648226994179568228269650243713120234150984647741172847542517345917607671746757996582117038520917073953781541951329606748710431935731497443427285606943652008099116267796278677481160829679835594249799072038820560091923013162315175569184177975760482521299130269830706635302170210387013077428691551393388829979523121638070358935397853677127315713795535904597523909695867190974612839365101220557763591701642345142026537060493161473787969901623761506590962028374095384508715904459124086700648712541271132764321114367641543288747541262498554920561020987872403202667273782926928305707876925731917256481273163722715498864556637978269744148481573018173427063853617770613841510918828905033156090040387978560842735646508656030720256864584722934581368708017012073147960706048298942658180081975843989054419112570487298153854107822569862154776490011826439555430393479324006789985757149065849987791173004324055920876619771656479138128423801823703527082439061625876836466279472975094155330485399192150308366056939630706404469962393349946590376446935197478755105307119696138600362259673443167447790017610035565270363437376515226046341084361478839612173277571809314118150855122782881168133143980044373116075899704553926572972694959319290821554042523613269866837651395194915376348025656390072027735258068890307309518567277231650078793712693722050084618390124395588016871567935014550143303670055408905227306090622069146775856189332167534082221977677610120888828920888999953853951635633864589777107437842530914070391331534014840349229277813626518309384976952949552581004635544420440562056098879926855608304928989347354445873809134398944489065892078146925053083072145735861890355468935937875497122510216696858632413632253104012858205219852936479890737866711199229733944816133949604310241080108477747406612614714997165628207310227593443524059043543659595010002426713073553688069582237790155375511642614677512562098625490979345211168192856804344338354198469177887766853776156737556133338890870691439946664729665096962987751841714033715428749428424500052041679497842241246633381898816103311941382245643820031841388232484481924196919995432634469693308304024849265987557892179096628805179737344839708923170718211945174895865674494287054974151594694595842951688401412394463266048600754728262160032337623910108862145515665516119808281962299823584207494177364662725485783980846594492300776491591626258677789922760023078068690212547912198463075790752631975824153698386130555413273888236722984943947213092077002251125974986301488925609089661131035552138637918238740071702302382895288250919727464877827559131262993894713865297672453662261674072075380239589248566816871850938061643520702077903403909179169479034322351064008028785488454779525494762468977838078482427258703901005504406897587601795641990010742594634310240016688831233449742288994892611406572974860798036369862003030423986881957188518001383380464264066611593335184316863699747278462828981476915104641363863859127588120384447453987425826597781451715560845745556223496978649732787622001752983168657894789749941966983676555554421428118122543252439293287825534062210972197811561845852808279794427020942758894078923628333773950727540999050987600172370519689601180667347057924881219249463996652949712813333868263326987190941590544712904204818765202059040376922195494803758877975347509375662604162192276134265697873231510561889581289113192143551300124086173706592847216143606964369524668114147535613532706203483728399859691629770653266021305034282386901209042695070316007738532450693649793842824367924226570712099152570013543680647138275870784277902339215166575891708225621789566677723753256346168491025902008121716619215113094651956702037483909535621333395866824702452068420292743637112786663818529850867882884340110879677010189832438934627490704696293933920196459539123227546618332463161166767857796453101899579213619149064262576056490398578069813847769504974739075420637973901944521899398771415945353613522718971454712620661781930862659828793381324314695522555687963682401252363697628042030799048497472618605427933390914423054311310951111203852304841418699333093562752552665473048986211103167024573896648708016513109301230297959827852419084231567568738615058388261002594184875533694298082605864227153761589812485063480983216123882615771899917288042599487602398550874657479678283811662999819631604091195040724529520534333201499586686062689238748089139631376372414753694243802568719349553504531372841399349592583596417618300414303167027621293982136086498918945234739894114190590116064256284008656280317486982110979709960281066662344952451574917733386894678344693072868041382072321026500668718620046847197237462811571803757111944558634315316411399641967024228624575608882615514400754377770954054440501936119657383299783073153142395555372279369332519878781597363643527692338010214959576236301414599075802602538108703528006812519853136561687282238755316880734982576826908037147746307076734892242532661502504885037834757639165292390693861805868014189501247776337593436681577729976691834690473614482537642479991435365836445044276820462088117114205681928184420378277851192691657367848188688646015872868714014182796796218161932122047696501803634362829498027862972990149280090701597434180266154156900147920204336274393045216037002723135237647566785728090241002503305666480374361494578597130013629143387521880218211568198420388734123364566548507451299220587949004816744563796208292813027595939924704680144972235198082292201601029368898602885332648430047455726192353179266627687802704110239343645368153928758320743842604599566757214454405660276692030111566626539992350619983874985928526363819429947009302174811292389488685100332816138646277084092720047534090831251802705511987375573091395717990153040028109416369143707834967703448060249541907590989083812311644862091162341299027871716688760635619532546300721388121301635667835405817829869322189183159739458157960117547135247083137971048027500474578283641589382215049302228062317578266832685756471065085281758267710934469424798148220726686334841739134833901840919569672382329511409353340437274300342762823898619356191436915797043063890755020883692721268188365835764701167843450002325522052455628922241287959544938170297614606972182636991581029298705977083243476924526649406398436412350773009963173172066315012980511215509116166006343028894050162341151196208519829514433851796250724360450023626679974697391285457068964776632685993138553582025021919671154585668747630899063204523780188162062213855766946746312242741795506842163023817416293864107665969529375018551084749065371307876279955339305814373361125534092292927088525365429967865116616539700471104439760040665704897676558415784396919282270679710682607480888801933064307140640070573890563243597603317091640582444153606546029045151724759589328144051468308814935298818704162974827952692055132777408814619430119058560863387217847239956405480831866713177482501803709147782267663865531917816399464506430510831351095135133451583133287290209078536975455090143192308788622908101502189724297351691008038808188372675283742300295594799374835398819952005671683756416262126581485130426167780595328219390995605918339318977838691189875408528884857619341680250858496384900592867945511732652417154561236603408542396043132661672948270803272783850782129717047946607810041907490169292472256072255130129502388099840334775481411856171955362151909847972467677717016489874698536900621265500407774578199098774659524993470447486037827854845602237758501170607463144122725582560311649578274860422076063505859446409113078150731068877936056727053005884680109927291432531439389184699905375131430171698493235784509296018446526546388938952746445731040650922970815882914168388913903445010623637219862650964791304159370931903461129847879061429849509019467614617978111157033528260224856665217661948518839873662153010780487486797015747486071623069641999137608397377121272303866886387922632576231918530475077392632253772668545949790414014081840161097249863062394000621885973585247621494336960515557875113333532749009435921443942230869061555420088680149828051226551349942655354307145635482071120562438383001643828009392511919300150217900380091498405032087128983447827492246608649589360973659509304985289265746863193966843890163226682404792862521248224912587263091245805674685134006489888802477196452212923825446067812655788347762769198532932072831657376781013299729849777421883740280770224650296773996217166296664765275014030834950518294001726574940386774518683373319745008471892370934925333367315786778295054256599371668955787452536640011104094108882827976501272506581132021512084017869339951676698087576411835516554316073125175638615480453920876187426574238916798756139345552030000065249520681219586850681196462405755313473159444255174122457327940026683646990567377297380532172052600954685374132428634396171869059384202419557142321011152252226314333400222123301191757942079436282815829469396049791585305033415313806561882050415180192697740215409514660461557421164207293994799347345260360077903927609745002280043926130984246329692031659205996582591324802721415427623672702327540961342796468336673898643061844939236100103885854040819635375855445548377896728844223517103878081995958343002690498012567207099436373190140286246752451543080378003693996870079874306112403093159692292044448696310668894312171507688726676623454513494295956082650538386909987432619664893815681635540682480682225842075192703744591041085709776096770910388720572576821722544463305565105373028333830463063382472504203345416402650604019371454592998767186440676316492201045720507944736930297455824785953664178836860506584510366810377902029668110157975630768800081310230847521200153588246174009599821493091533313019414432728403891204791336004706231998912008960855560763540587645959679143779292243349709063452437310043403365577649968298334656627406063639826303991073184408866449866152796182228660187931677372110543370519411852232856229949584660229628916981475265474849588837809409498963823122615579002859480323659222374627653348912602519378449318155396480654041664789096579413645168126356503209829252736512208131760849389051629565888887047749217052747110943363420185134829384034932840727650972121716468645219925176043915045163762094381937942401092486799267940942061388036328863874898790278100145256688794739742406753259095437934712728750123623341410347123836999992060542486052789144506474655437450472273379419117496731680061165357186154069408902522767515746318886196890597673743581574391560874652538026890621599920944468277604057389222454187173880641939336997989930773598522080332453026390291132203729950072481366847755478716239296567075837050796391973682344736271376200810956980857154366014586250320306521595277484391361206388416682995632593297395709322769552729161195144209525292177771626829022120538948114040418604495537394602560471706357343256202060614999719896797028045110295599205373030924893915990006829382206306387613527646148848716888238034735072199320671997515168789502692092375663044780781758186121614263174621290541978150966397974567553893472022745036103257459281799319365044000560391396096909766792856838890403893061915020780277406730901951362018427206760222943298717209123365393746735933831501570576568635936832387503909295588467019241787418326577894688442313495078356629656703022800672044403892278802184835501977871446707142696248296798847166297770370251903053785107974904685671258798583286963193238187975164092406655704226850635269096680405719068125661975022812011996026230270868001133309426649678403054247321421152569212006163223639430769570617290123506482463223654292237259967238457433630379432560518134460328798554984643904288259493597744385254536148967983156914473725745023508504271183383481057638063039841125506910448445084359521110944006514281527078674662170055882530787637031135146589243774508335953463409188355853975128599909896984868401239669107948355466918153199307544437047784981630024855882211465097942840702921060005342680379725719845849704250561398061943925175482932912205907320272305348900612197409325718935475639801072714491378095286228532997010384981646448495571154161869907852761384493098296381104633744545386390524214930189009607969598508229672391677043672929026049160889209200067306022338491898940126990322564706893139669774839384940100147943187308558012615605480453976044688720217714319913111978619765913564966110008820860877570578744179305596608281800491900084217617717013406857832960687965425735284331504141226913703711057676222151056073688460647610664691257442624552237970072390617713605484637294927260905351623022622886219225967772568535728560214551877303786124483833357860421805498036767775365543943370554862115611608308576449894895478228098331771333096556316358545385470861555000688546547207491583855389161534574259478806300898798420452373548818258906348802850340730947033781603269824111822506817504516714902221774626655808879811908371267558045633266582897505132035768797910861779415401077285804205793969943635742251783740750741590410693124645884094442090854814361250367678575716015733203706966070855161552220571638224198361783464302086355658902325402416784641168674996433623863369471050865871834239343352879496090961839182895977272495936052731630770722891012238885515262589407648285823059388943849957629187237148257748547319004365938907242447815801692380366131040548445242605915254252699487805521169121786151552124926271695843766083147040848589405288131432041261566611323051634236909357753338321043970704161699128525118454491725165736897848657230572161751135011184913496060404445141301463600884016756438165055006248174858338808669227532578120723733501947931516430466185087038121106618602079182771418911096805484464047234425292876447415906786213764439202838329576174648302661349682390924200671834056731750215464668216437935736522117943864803610586607895680156421189803287833508130491447321021402486709504382616035257898305304569876955370577749235058870747365839220732981421288068214871443936237892196248009122036622816713938932152162840279490208953142224750779857351695846595531658333104658260348729251862991123281256194903748970226984750996313109555967061873529958274751075237327319333203804182650936030538135300699081132624943952273476635069046531214052560474507649824991971161246974903473962104492136471256331673083239966439073921029042319801134191024874162318632557579767495599518268472619652624338547720151087219148660233597410987219549544953007302318485644331563846671595251759975872584126331678662885448254577153884950722504872579000505778431953258525134639264911602277975528819382352112624150797761324495123156059676704621182140395835529588482647673049706463691848897562899033613958818956942524603077018969132146933078919767356904874108768323362075319457105317464801614084154679082921692649707973069548055169526296521503995616060917263701368989468222617836840537073355235298945432461385529757667388415103992614247807248631731240998145932691553008814411735201309839723730920676856092818769497187674696391510819836103683935814839957584752250243406443242641785137615329614127171730199809920614269202737810446618034018675842769719686359044769057802529185425479035870089484721019575827380486289600042210511884647552702500728845362936467447720830071626579312112649877565044377492681384135630538441222267506864747633126325274644844904849545807013563911978984039273838496559782409822034964479419493197256648499203862070786320713791138884416258725458152369011510723593965596336204265859729477284593235137970082915180422798238501925287479956215494671218529660721672225826417737292473826631743725591386316199590260144646650983522528291121874384191035449729862359203912423368501955482733029006254437859297367407561441700998045892504858061165677092189786892726149868411410452632784673116826775129080723672341209505467043134086785750288742294545895427023148503202950110055111531882116588224689129339139785564706121026757403142117963573353062289274932131827846407018820449674601182725480127331987098077391972885769355424898083144160402599155312457535652667831484980361801470154324562311448933278351697672118815773061148868324758370271280333588186668757880247865318888149793932525694603559550352620523885087056933118511958260892067363916975015401893213416624395391036264801412339380120569211518876301344174055918469350096381232656458804820324460789556419759498611950597359329515639637270918582514484348341095541569134307864568278789512246524712946511574262831934749064016158536399840596591998274728246539538047233419331405947188502053041613387270933794490091317479749830383931727230615003623909442699484016901875147314183879950688005683473522714970638704304672227347556187999149500308868880516324275913640909149529561673725628197468941071591757669349994224538649354938306070108833817576483159952009676334549919196244112386580792113583896224025157899915580556858944620265642583187786942062139024650395107401497905107536630680920015543588132508636428706127602195076354268083473295931378842419217253358755963110854927551625736505501597900683697679154996311443500380585620587770694148052628659966361251162234759424958037040847562166466521336767539173051609042675583064634419750308360474286122847049339345669693914396021277328453469073249676610745043886591174211444445746679230423278223941188352797952182454345313022838103152730830357650343144192872787636519935854421342826563786053614022288324087444044798464984054684612490095003536512273252253334914207160491371705683843633772605500432050254949963154327011759936631904874052259002267972970005531703216257395323913832091186544575940548428246424886951559712568712625144441964561529793284192551806912742426872641091964773187033025656958728946598234214814627491787759871880604456426907731844180985438651658337860841635751675012560981097519976443041631489954367656637488878847639414003393129603442573002540518404877204752336032886744522507671275545024176522662779541777655123313629665448612750868251373512991373759763497894992135098600647787977215162634925239469886167807495598653730618992062632669901867135019220441171930483060877426790318448655668337355258881122768475303897889506610944093346545412907048138295423185140226811900104092944642574351014943010259887998238297254236221235155551504325227480318889507392949895502220749377018413080256940745442434224183769173775610083343062430041603347061176922344753308134172467212296847966733719683022586402238594333082176924464881332437742276928813461013408638798886897969471473777586031864009859268422927425742522972147806682641171020919014700400947600244822606024171564905680252732642164980153162986923640764357152476250047271030309327088863043095447901578368673727142191503350864254687970834378936118567841567119855389107013019284917481754434058743232957455595403154593539397703055591788586978883440784345946346959302801067369013492109618814151020603520850445879786521045427054085459061445842122544980894491130210716497397275669903973286506212014992164040368931269663085924183255406052175729956739357558985918491159862270073401943537816080548584102360741572825497976555252190981194383843528579810487404902751852897762456019401229777094658292000356574069361779139929135351487564929345464735031831012668198740275775178962111929369895511559994152833886046959669442051478874988523390059988340406075889028722403050955432209441759709798773936893142173676619697855164079230192977475620380871873322753024795236108984457705976276184111897763291246279522134571986989213359677753727157984857685366685295393233302571286195026003022548253472087255745909181996004578400182565284856240708145941903099527039424800542955132663084318680427647065428689798358408177167339156855717206813929644939510771313385687633667417757238161342819446675925562774063358879473102118986362200025590264447167871596018214918605231216836585175062789937838527558094381450322861544875107725421668617426065637854300565406222797505504827003905652444014173501556391528309693834642887020857159961873601483396584637405031850186382669652863392491779690186867810585189910029479926361587067875804685703143750083894886023859853977278966682664291307410952678287549654716126914157131844056738066589241341899940904836052513130912327459854880561886113251228422699618553280486837849932917694000452791569050353282100920600603546179295412678480296557248400200178704255543240067767311605198397102464403314334811869363519963510530074899855581247735686475541646277265284734671434681185834214928738399370780992704437384796599005255865975581739061501472748136809071831062013498498447058434109974089969865870104126953970995308823574124339242812763142135795643501795910847383949213490785340659559254246986742520969893767507837279943877790034734422210712828738800590931022207741632411856743137716587388520706884202709690695510970860737919385048478243653362459291795570870239533339431423882420512010147982333251334206741653933099586692597685646078655788482477332834554541079240315222634649551742997927148900682788649623371187835736705356146285705787567813324250912305930546396418609110465728669913112241559528100765233056504077219358038991927445588647217086546893955225712066047851007502131994607571284251018266518317702689724916017452808709249345604003961339456262053311536779657764344608463911071163041679176225172176348869836848513593631468814728930504452418164250684158954385787536405171468107674273252388298151851150914169269322464530943048177806490154267249618115062534827167227439191038072807203325522617261474499787963621449730171333351609097955305608336266946238608848873035632193996340672691318882754396074499362667410382989240617962739075128177223781915524151251482650072244969778016942957468379120284129909969294531818407989113706741530763756389779264157376211978441720411515053682013267990644177096809579771909732384007962539521297917684939481109609425611311479937610499108142549385560776040797305747937224144054545943606637029517827654723950629487826171078787782239140697902229275212146944918422894904402770037641063712931537776976318798099496609050514947950567402963813506974866729566162024357166835183184216450562718639148662421996426460132610082015361706811805807795332190943127304835450961993166447017518704417342069348758937453478654562648238589691117296280136673208371346636300371761175737103378525286348004485571319857783710503731967954811018035790088256661850841876782856910987257412117754106154844072207702263646643745129407376128708202445307602755366130292082224229323551300702437143567246357486535218114355651385825654467169343715293173336299935055758374501831139389326706527462919776280540662456389107980195646014381963983242217417838993899514112532176328957190255883005544913878161173745340984344929751512379804733866405038788500595885065879426449417957799845343607664117164556733847992429789235185927061514444721085732404244671362348951146732371976333514401118011083973244481354124024729921893997742874584400805033661703915333329492072367319545938616467603417799754086429191177139219077417607211401292752700571169658100220068339778183582998762008145236884062122286677488815209116780661104423257048389972547625008196279663798210073482344097497725193272740121253777636950382687369412633523388977906334896912719635296300615679809891412756512633422194013077057841392761602772387585575177294757241143571014490429269910313961255399590260761991031820905538548706817063601493084926603311266905996752467823993964351229746026284272342606913871101647457542251373961926788055527853963161817643254273763911980612989752144280236077237867473593904694725161590913484785200073841876669133209456051774909086184159299609532089060630468884511263145814405909110966277697823667606637281972354021803305238154731591232993260988921255220579929619447158773566146977061971086236220081903738730848917069332629860404074712761479142880935104869924654552290840930085718228492605269949929086898962514861258698831590569519581147740579197086976831254252186624820931512258724684833719162463464925528051419735333848133512498487504424255814847771662170397992066300948890115348657006885887384544339146286114687454139917531825433950147888374355865147221791240300997917010586314688423434857734180532589821683599493122761298791630020976026051202322680602961632787595833128151928741654708884785378958030419404678639896834766171346776774858706482824298962145339127225715354643035256717844416637736236576401011651891379315499996110003933473258754581283531491372712276890228242060547119106176329562390384190520203965448434604860478088870782810427628671822077759496911341033682118122485912750470329397886199941419919072307629558204245086731982632927908285281048758941183367200017459544028396207263167580865684426700278402258837120017619159831558171964770093984915175724820294008703285605297782676021987710071279534983527846420301482330183213004162717779360352521696639405137324899548605261489375689967156035231588691511766233752863305508630875348487797510508318451387868146004140437163581254597357170983213767943838621618608217862331724544134250197357186555078638766510323700880605257038672952260193753009963972469762239610141302797845608649926926766698530814598478152744544051346708232518978432395260420360697901353875969511338417473763256386860684426513247916539325343849792357606999096736557944090112848467800942879569249796151453773064706960949714871348551057492255815323347544508164187316529320674465353944304917814985929725370967405109604791873446362669976361569187295067158243269675210858912363900743299150095081334746818104634051511011992185004541355359177305672942809277068551265307703545494748873267026749771192893872460872516150723121114292647913158375173506387618511136990521935498914191650297675311898987673251439440517922426069818737968137253950974008871895830250808012822911261650647058069903528166893394579592364666468250762727808644517095935984345498335632054886263476445493339010126205353643226736756525767214167331609155003296385469275591094398619508188311419606506313772165807391515252887710808735948122625243211912426944383087106702899741100778302675892955491425387720771634769969295735031087903488576413863716332520250398148650138851318779855877414088736848889932128760226463191673363624870646691590552992331839473262775795404086001120533610401766878463699190216345960234453331103214595950321863354711691883172860522682997709944242905025658515229001502750511920829234986133277901008107637635679213940173458236627577925694482182040859460987664432625229581575328900657635353255204773864310251449293638214988006245147105228264161139268457830320828276495216291706506996330986042746295383668386732617618917079883073986109894886881277566357692036163733711319481221225185786412640755115180262449225741209495927210271138701474104466333906120285721038976941263764479316938797159014151868739970979549290526758339945806149166566154524309713747163835242232789838416138383261975298129431873230463685251961215866940412984110023683399682802662661348513706395895274304896597796258805264457277492465931735988295422748100855568544653711391192164899195703120802414847700772710176212823366750367211517574451167791534989146097058086545568303805016361724136604445502492849259571984448437717573282812997661087871831770014721082520451877844528200840357927988043323380410073935091793419692020280125068001100864650188148022842602396760737227421681505694364761430023904859333563713637845941161319424695385332180144274866371543555151713108678577463560560549598347005490255948664047785511252303825283752856473023919284046415800893180598563732139359519990961109793899279848027427030021588193677779357831770119950235202622873717804989848073376214326655762377247278523708060533874636883639003607096653911933287868818035562345596010269511791182133204323492957562720720665511191018078714593298216160847734018781720070202996978434761592234874834663949917314615147688796730227276582083480775467259333981592124107842846893771520427078608410743090250407948176173348607035452580848235005162248589387103968610938319498659783256296821780941766887883023537964282921416518844330862408234656089397357871401880673648540588932672712905743992203280364179972899056377502827013170513067664482919458376153435051622037375934699959474070996359567427686577678335518047900831509302095300839832197608054026293146395816809155813633729782287832013056426800739720549551481285796601668340285441795113120439784370716417068961299673253268700044687908757291641745249168758582034006890410761544314139382019958234652589374469693388218281161956401521348817308102384772723741792304951164700044771742819467480970042472127632885573635467081941040418195649327546000513828609691981917244975227492614270489899995610143925479861488469440417058766471609222262821926654324168485431287576028217323954984776744847861158695616732073731717502401803412272599481536408665297874523991768753484086835651927012238949468655796131644325923455592147965807889915437087266363625608918600841210741438081371481958416649018000790579956779199976698346308338529800915870115451398546213732857008499514106586247418173258343176296750595640560977603960325041901371724908865304007060422005891069122482349924437970385919460494971081430608003679898979473213338321487880655711802026331591040268044987482268319030307291938384701225269298243888469253136926131174141644050479206703701174351936895295396275261460089060692874932048603658934402804142913527864576447745336769165689664599993381139124253340499765407861994417762369325484345199505974739813343916995523100298198828358128881241519499764173477994227256714222055395407596832307353478017700336937202913304917155911610708822928769527843946167828390324249889628309252908460147523767427518771244448545768103054686076715097359241331014156791200923077355270731707652286113075938703198803466965288570045909632475967681778191710022434315152035766232987564157357723236496016673881876435870745995083102711696206686199809470093533319561796839386777810504976811476180998683551560517660373370703171149300599244629607102550919303695140157415788847633776076243925474716053626558337179665406267930027373839630862811260602848905384712794435511627433850916676445285988684277713233922386136669589539694516914200667657502902786439863305409857814001166312733465993796171190498685729102061064200710047880384368728013515072040965551273966968417616914620897675484155414422861724208676717797052639835463873924146769983577480724816189036864031327899403541197175151024564574981558763401771233420534191539002254389440247682116770085086169855700165352303676309517878707421903897839267010967311283771900239781187105874773038460805789170085671886936542306720748169283953375927190793901208849118646448169675372860148905175415646228684497813143315536438985043227392283377358387612215328441288806779594183893359623765152764526488367327512508039247999522535028132853704194501714249107660118896170139512259811631364826535006836113993152878184761231679574883677347261595869489984822527589051992312640513308838420526625802137195023614725690878668819689808572084675766023334225651412229451163734922104456735368256312591220361027500982656754766421753119154713138180672680964352474415496553516475999591573799638522205840141979819055172025487914216835351602425945446613086143383519846159998803262105727751682142955275596005199367767987009987997638415516394910463627937188206830511303116200268947905802770030094082642131365379153821246014448367403311176632904528339985177602457946194951254980502233945484277500578150974103686336246458798397818449285028592302994661808995749516480682919852829630263622300727948998591515445052440050384560565596964914646886595517115549744912403341908939860639232753040324678799515372742168128162268137437023795775658954571807876811934880759645695989532599858777610291124494114797190500436851091907507161181240669686381850216772703570953250246602195740855084208839981250062553044893447157360697808603342791752631171014644072353612193462802986837006990139821897019491375561682193647275327251087175997906972792648552694280478926797039127047804997833810171818445798797970124882542676081094941498206982285552640229487939432433302669146318605052405179757635713915437337273112681203837317940277899776891646674705119565573745590950584021929788268257992049748305636265094777374739749532912634470573867734184096712055928044954666670394129165643869464712647535718067074158726673860758195457049070366781570596118399897419894708806074131506664056899590533781970858146775286531920310381236106143072420932140004968219801092683829169240935653522358858574855392376402372171786224518340570121797257702829207661370090395362684508139227661705770306604420828119662869888230580317426045491933250903121391494796086979059069978867161795013680103906856637529667054454807959738468435592029416543494628504983691949421499049453853857560947027456703743317879437996141629840347165822827066912655429960603877049285589756086018034945021418407116763563516722333152362413414108034821879504688126109621201306509936108441012555321690734456597986819540871241533923289309927861523818602705589490224804899752951911621752556262831973811020444017848029122950876326789352977998794880611163914313525599610974980611470929138899807435736483173660477029281590376941918011671095891199251818236239052220962997555619095283926486150038892526892125504001472382979210884246780204002518631812115020504289704671241504254321845834025377762569517700466805523390411847254018386907181574640171979911506807794628963809447912007894738585039215843884836789765353116868021375464246336484611810623542396654262873529105642023360365304795598552108506925085195502263085993887452992714345487736124009365617462475895493357152024748272662709986747254966624817482998532148382801883749604866457488947473084912092316038255408047243251055503658339193517668663643436667278186285438926170995928149456794898572815678427463091157654333397597195708303115504691200751273171468683548339309620026135108053822374176471683630838752981664294222911264740826949506168408707250962158220714830773305585452497195316213130185938184739428525324423646507817121681705137828812681915155695759390436568765294385377608530399789425552355212445507122199290325367634924205442584282457967083072888346275734048181453836348807605462349596567537749967648504075252086707317924499523179978201847456986960893405728785713258188703717757824889250949253738779824652036481481049854846897882403056729563516063770021820109194170232358032129639461998500601438344106935444911831589966273327030665150779904175966853590853028694797920485125857749633388290415226510455153358997107715103462147686667820794568907198211440095851972189931061590352000075181877423064405230139306569363027125733533131397211777087589722359184564667221660492331044860934289776753416489484728060210890280744858872763959675670311431901154726918696918023556838781014123499930077077100840701188091139311438759630862002859562340248936817010572361321758072906496866951536915553960775742290721261656941840715126905340250949503537733924740055156516180171450963862915384350381303966898639995614336394967963870647895377496818544646325392873235259854719330353206310030672763009584925212404852163962903264233126700152474291660998169149116341479185811707985768588188981831050911322819190655552617495815605808046702080459540200503482757265240077775515334432537385783804999245294953943451495769664196906006687406242097009425454178431408530629398104666685423670898898622079211666921780756711483361575380779023207738065547722276565709709551555539592110177349425986007972852542836524222462791225348832551543793391927529527671774443779674490791863193468767881477288895227365732921048581954165539513065228387816911238859299003550929399351084511606719466200504995026037208768734291241330142373617045597129129917607997743202508633813570235488477249685048666444387469206534250842482048841228332178906320988346722023241938905850324892316846908600152271948979697786316763212340829834196460884380781626224642082176452504754016941210625621991604297457010132666756002053615816222287905656586555327032625301807795822683662337681784000417101703723512381751166311455781456392691359420753445572487257914106822619169140670271457341512229240020020999472292943982420723222705628697905350963320318817468299120062589210183371060774409556479997063271203678106716053809544826479610703299370907244328695645588781734561356561080949311173899594336452575889492443646512871426163993462240789187810448235548959674918757366237175915954628209650024901484734785701266764551756385176779251803837068236497798528562231915953144339643101974646405573321331283386254676628252897218608079145510894581392606264235517979678607497227955334529151937482165612271633961963292705098790398613355118610204277304326005124407647649258948792081324951542312324218981909678259240260885075348601167429860279715135862601542163967894471988216497297175487238850295823809083199638370711884679162691367547812080923398610814205337668448397881578735933321256845803052836508417064727145652308985917756043980875097224701354172238573216464504105248409911120193537914056640382726702648023569883796588130835398520690557606407089436777937162919846444263475628296942040016475428306347516817939299717518508324105048553209013185417894192821664091573226816662689116269546454243909018861013559578426496130080712999352727343727413235949428311154787770210001996805998418392341200659866184357995846251082634735123626581882453496095400648084801972304766540640958513779008234740423606511132363490988064291086443343015039142734565785799408414254623271624018691486708495586545101115196615870826927228043768329842716601459570755394601804511743136386607290662374317001226730377042725290400447774860399003608102769574586621203617082600168330476065768789072585675184036637821636712975352601050051337500071693072375007985543020548228955524046447278294274752820834101977745593515243714387463039599971909854968587176778258989493771601927707176815630904373138551474408790667751830189145407856180368999257938078094171064491076323551483142554808348706488867922567965505838496921742834599703972373809801036147691752569929771237304676349804492808701283931040204068245425671243622913127423857211098544585389967544105527001184413507303022055862683641706880141299607437086900632731375593628151465718038083240040484696587766242290540823138776021917433323175717191520635309318832790325067975571072872803830256480401204181813159740021928343142952811658201546687417787052125753842732941016022746132283014802580815327775725837288223247405497664811026219898986770128795564368518884380774282977416938568805022294604579875366462443888748519857863519584183503238658086812708189750166715903634713371981089531596414609627433085349503894206974195649343988682509809771159495643721288236541143906362445860207642226238631278722363727527746098302939232352778712724744473663543522413206616833993849617768092330905518247136719722062729899599612989295988660769831924245898959399662506454082304544959573505032283357727422872326653414598802207769498225434250800434566582320727376977798093788677234784399842202401239182872354008825771114368829288570617470396192957857393259854934370002517662364260362856527707810205845889800498014228422519452333400711241831788261550879938622430704980071823167299955251138623109998644450006296834550684871170984566103688826670907087387996667051638611407610256007471619136209961914659617949100662414060177967880364343947880625140165462712876787315040902986131668976451268562074138381942375453166506178802588889408726915088682634011730827820725858514137509615055573169315985184456566290416921356688265887285883818569855915817319037378322115016388543309633531921113512332309773873274837614052388115982414595199355409186309329136728357399390194544662239851833246763036902541613242352672046805417041730747240625850487602674994108955252041112155625243282967672878169885557298280233838042114756022606485085208561523747381742296307537202889824919496191762544228697110340129199991254248871471387648611862572913214499006375335218325927540747283834506877976062374265774019255081367773800942702628499551861236220385537779505461782003546118711110334830590391079698280359228798035349413017752452947253534064100870955448213817765711054220516839081870196994103244878692939094385610992700798502356637238457085331761346432768497942304249104298004268122460441841971396675786601319189065857048937516515463380658505416624906044476836716677502474910536153117204452694740450364132220035491692533581075474840447562959041050997094167628123762820219055478382135879397829360820966908719867802502588033091984188647310212703951126588339560473729572070884089001997931537313300786687322085807032231989465486663596356443954822341750172915891391394061768877925523066942586818200347361577018909455904613644004078398532259728139359308740491369171261389728000161462961960722352782953939118338825741555542359524568996768915082390905301115126254246142696549240178191977455322280709462706328232629202663250210034348297633362596926920899622588064952097508406151133919757603436753565914585598042860780690442653567195698861096670451879575097582620848964696711377217183581659409740170998837107163823205832357002949720061847176788726429671269204073516688287631407309068755691262869410854414168379495230812364652543380532933950768132959069839473154391131532083584903905021642960855888692272202154823004143748722790328344960602080760597342090806172802961615460051645213331435648832206727145960329031570754764536704723333596435348849699273226254597319104647472782267621323059616454691426593765779961336889077226200099789969342544978320302646633007714581818924653719097750856261042643276195852704606701424674774994047479155343829042527129622463808553681211185308994306916337729676067915560693280192134639756880874429373234895453284834104755589984501810168626544070958032507129749176243709083366199765343384200364532255717373958332897337674457592711856647063248060692608838293109885524418612181026216564480379930548025518894411215950199875089439865327244321129525662690100158805552483716293835446480961374961641231253149811450150103722494040674262846389395016620547551731868607767732684326565674249815661170091703741593989167124430038605109263647323348434939347709697657347201351864055006713400212742538289396966460676212868289583643356387606536779643597999653628859831365728744746676344240815264751320414824464101457125714127914244954636347249233119815645844634822958640902431850657159659225958595223774942878602942049544703233070836725367740839544852415588567905829777787647059674370766242843800737285391351079447639419543024983372785804243782411190393751250616911084367059355369282389879894472774954180540412722048595695223628846843317110474737755312701748381681960548869863844255225874729283357484384524115765037598383088362688218219819714819723007704925231550060477704472201515604021173055387557871514065225682847528906978128268615277100614598768211070120028113605733374941149980498847071020194207442190039662712035861668515108690777753522604747550216454436488893384126452539790546558378075122210383314878792173995828161486386983599751704558816692518024040738821809963421620556524924917938651878979768468975269998805426605438185657516770933086163383340603288641770131254528503935870369230879933401314328583915488302105856018125823876433458844865403801468215657840337327351632784570722673195047265375073642625103517972258257826616026835882819546378325442566806839170609540863881502695979657945560763808525195010996721358869955279555762642096883369455288628865337431787804830657433961350064728580722697196622876804669947358147706912085094708975528826336165594404156747357719855567914729723854362506241281679260609521448259984165310972418761291003869477499018719088673904491203774347648197224609955406844293097687499762223386464723634730677523384470247089451076615080772733671089538141697598668599821895748035737516820423966096087458209333980160339144446821549592982572288559843124367651974304368501191355007478908333854792218469751464561978996748492032449562771067101398539697145031033637256899409508557239556520025546485634944065040012456328581117715765859543367361814831211744265328807740373028629692515645551257099868096945196558740529451181354037894256360223588238925288671570527647896314587572304041428312564448753339714341024678102965720626300578662275132604588264617578887081404111846775683729317911673024121288026978363908670793802714341571843342273977665268071763050505185624243797618246543755072207480240051420375271205596727171883572193179040369236802334490119208565910943862183488431744078734201122507320553395756068837844564511751005269976179638126714538785916979958381529155761898506845447045255096410261327666658377976204383010156083003750293067517867984797666523317932815048543154058605894148349344383776466070284155033562477477701899831974635907145452057116753124095336730941321470686119983828173889868370750271375619243189248543892504302995173635507282049478089242967051395232473397518151948061117341502392587493909791676819188840899103770711299191188735826967086144351355063075014458677609096035775039416000781256052489285383447111870703738448550137291390062281323127587937435779177598177806032962039288085203686242406795650112674756418840507921739685508183063475787790717438878163852937139360109562874386243483101857047169850831090684798045035394939991519314436163972438597700053994383955623305954159684995252295789954672171890049367451239387644778735136200375692163653561304700716671081302966129503754708401930336366898609374620012751561845447537518815982851615708610891162642612628646669458289807826103642461336018180575322869762371798704795733194406279999780917063379397565082054476824438293589812642263548208591294761132374296408434269698424188727625179090743410012099295543402684771556221190786552059212771228075892559150315841105008195458178950097109480876179715652667774313972644795608975897915196341983578407467005281792979678961491009012561733419827101848916460943393275628238716077144362716922695043754707996096833466361429323185176581965370418486175102266767655661780083841698500068568659000761022058846691774014973677554169238121110712847165096071525371154830058733206022697076315113549590004388885299649843642463671244357787567542380710244201751351104476423664271058556397327408646684060648668624004029556438042418186920565302685658306698107800665516086020855919642095282775692795787419007806641517878770857251419641653607870074361771785598533617387640581509685522452402974766301813614497809761934109711811083617615703085560051235554675707532818501594419024026412229497771694932129170632387255821403666532617537634775165781803874044870467946189280110469134027048651267279228561416374486264404431062074734130873324360607987079784702485476939614462382154508307750217576042026770948900992203748335569576296878971249996806960543146952479613309910403474780612795948215343845343156422672230452373672001390732503885480274188033589752016634180457321270777191751922504291719589015429587533268664240243713859882112615220075065596834764184537691196966775833022993279302237049650136929384463605339881707574938100462891525951857670807879783505128717275372522951103140062805404581854607428716572921528443604505360519105211526361791307341108440736325078404928522782666906388429568215308647752086678698104687835509189703489999990081910741152335090351819912307030575884003944860019545373286692175404076852935802825456054632541526662378644451144999090913763481298697624207392315724091933548755791970100525219194063691322051307194838849762976050320098543488219735772723079543244111793029345967265934077551182280619276695727622663813857748827208998461894932810360394765771825473401468300040198269949338562459679504674669934006504341659886823168943378672077306698849405920571972358633553797409770752287108539354822736078463446997012510930519326224553202019131463458092785027362591889368987021349384033653584710215252121017561910642845375728738184392765606317584831800006937598853503328734629617816335729038409281128062845345325328269618690331638155787297185691587301741433851561252431247133018117487112748955517766523258537448362756001569108344320634959406551472609896010732679339092749754818458835560970663185176297454644286715843563815158250447833304928058793112521484431880403562913105638138910122325172883267364370978929167639150452587119026734268926115519155998433858976438575084631507600065099023805972011708020935293759282806463388624799258634636834803413904698178089190153752195470580215735881671043194488979415355056424741376132524714575421680498375856780512279617839950438959874397885936074437895166310642717133795166327194651307922267701479950509963825387729799672732242769034563993098455407916805676140612905120320463486924649696481636184439513076703256439300883556245164367590537638634017272908766958053428471971336080333110206391486216617555263726493201156053704110312529941955314195011818173070951800509716499512551929353058089474061494541149806196251076737935673784134290661819502631668374733061705474307623355181906145047802315369193017983548680373261141272933677846550202221606153723750468652276997462119609241315627562369115159251058528202918807240339077684819013867102232513926852285042850828883811893417962464808760517302388877596188616448357682737416570994364643244550138860905993238091103896600779721282265982968606717521514660291283081668468758711876379282762962161306215849490098806126173943561508688839271985510496431248189668599812529322965676362410465505614103220022316623537031607314170902585287665935089324490181903050606667350850265979255331196724863263649264785477312018894428626091217592602170729077608096194576644733827741532581867752058635914225037837387746930004050312396309999569235172436723772152168755065069976380068692764382843240621224181612922947077272341995811744376255768363685366434838542156635602431389149475949806568056024266298900227671886098998208034662953994346514047502184178041072007811823135985401419492143225724971314184245492976770374153052470098763681739358490672885046654293427486361036001447845051700552575638544130991297080599464864936430252416433057348083375366730354487371521990545553119910682375149136288217168735909012074856362739745142205417225448272065928315344777864790002664149717159855321971597714497807443177220498054807691456684337912254511432958629561767011111179898360699373416053230356309978733567679500473931583461029037677877079080785221593135439468179179016050967552606488908955408681025224006960536199621556094366143101367823499767718235312433192661970975927569028480791392480842706275463001313215445076663374674273937296002851791766052661882775397026270530567401069582482132258058123505572446625441841675596959863184656660902550084059316732430738692906028319339822917652755737622450279458211027582059827854135947805580962568397466266050515417056314797309029692327154397490266867621657917272052091667246043878390154452942849259024100393344944542209841086793618938836270138562955915575608436144632402519583825471217863956414418833134504329276797251905315893952701118231773791799071230763829253985952243721965308387654118565170875307453267680950549726881392606400509863375300807359727373537493104784518142056274640805830062725008579752197475781104972499246382570665769349146081022532557756482886707074655697069689150440147352089613372104150550818940465007155474076321311924919849792505659037824763206377650494183308578565748866793768247466523182221833773511651815982369104513578248318674580435329902964892489376189164390159996481183203583200814904712970814649597218575076148285684854325580571340577386605509571740003180031696219725615820533261223088201356843616409779180398327947747879282888656164040579573369433871505438233724938326276027629117310317165369191528785187900721592962044878465476748629329213383905041908702661201555285310792238978604078712304470073547672668877379966088727427031453993983711750222654647648350566276371919501920266007632523631237147500374642845721772476494292314770160777790798208706764109735865799770878264456695236909036169140644159358177122590536760204544395165870184383044210888397377537939503714950723373253594432915364069842420387355195868334121476809996811552805092796019815520313246367220117700091464273761584583859311573311438889690469292035772673491609909387551188833967643780297477173694333392776167846258517292643149694383254160787143150270080791023990007055957680368332281272651315078005363097070609501003288331659937648821475484202515953728717625034296016799346682214780077031047421168854824078147656307523980014989030404600425751518273466662941673666468473637703023568483628194403748903229386246128090213646475917314485075368339281583131694742594887982876306369289170903628612547744574302628184860320828301422248757514377883980735793295514831548910670991558026189570513370016640981434558015349294003469647104319605902793500301142909300002839283382295931938678942847303473386305006579120698676754113155950610785049185463999668719456536544375658517989886000848764296846645573049332391776700313588205715188691040385217952551010757848051660720844955241528637488185984155188748546250440523681226331303186809045108422436711597046923836030506590351585694038678421374597483933078163806147269654436993436433382762055095321119151926677978938743205474392690703310912868185033185921956779622051964284529969359498098489652349746325358749656277514861570039233968507182703458423454367375902230188526357100842172372327329929909740988458448467599994928725159452681682341980294680332087050286227902072870901317881026791864004372438408433217492104096477254376461053122995129253082418450896360777717790025775607590840679674337490595588979490169458704521851520947877282535489330645182535148059808775011265036513639784936753817935563777425624049538873122340089013602534464888830387575849081878049199386698489991596756192705326915189949076836860290824485787980646403403272157567935563350389536440202750200223471578096490929416827059932546917279052141588408492904798298617667816932276359568620819192068840487447710642799911243667277676533752151187468114708599647372408660805028114653563896433590375755534685326462943685880890849718225409420973267607845200686313150208835653916183095668488302584076560408639673894383269071632279508297215658420751512657461832501670418545600162984933531177978181521894268929963711347922512950580455813843978933456508507242393415442579400924984992121148924460267506903023443570447034692546624076990003670664925736190624056410889712076362106248180709376892413194867647006898333384436689025078471483473517876335723448580428518972012000518507855712951700736048492590911338374787171314889373227306709871320729383129177288431841609286136662517862466843055183342075468398078218987869812935437611846042407526324127702612857244695648369863965992613719827374570215544179005139402714715982491683878582834514335937775706442117818796611623558827543483297536845618259640313834652769288149849347299391703789571775678820178092538508110522927614140434000111499629113850319616516894481495876276793181733130551957502134421226779462716130997928957672128137530750096568769478516178848314187295701072161861582101294129864617703562119116673662779030408340730926992432830770503547066570279749080873522199761446612387877888659726695985289155937792008857802903953547812626292349944085062769322662534318268012696671205281367784606241152313509892198104685002234165580972182712151752137770059506519771763702527377090716360231376707295059823745351554680450490034720178392681329217375964512464929800802275972473029194025713358530884160004574488835133527709164966661758491714559069553572258506522036049340127888586861782983428478755756636330857377075052175628274673656812828463605592854029027001771205540132890350977480770374886598168457311255259435901709486692046930241034942881728374660847544905779851226694867301860518288683195970996072905679716496947005066404829378705668650560212859467579132812014806620168932719457181972386731439977089524142832453871353492714713093637649307156681754895102063916221236243898755300862448175894600715369011497025234877864001771199994910341159472240257601533076747437320495528257721854284748956396549519233283295864491677291986188451432026074556100557764323906529713016105306829234221003759062678140196425810563501257522554113545041301109063558469031766931466726081699070174046127029619064452194471963963224381792036047119402174866454190367602688879059936251298659164609875264290468072766286959877031548220269425027655146633623818030476718317828106378101277693219628007569426284602846613903777881374329338723132159894542720806187215156269150990830667100183152121883858750214132998659662725804700608509777014322846817417323603732870963311551802073191556414198789877115955380177894985884042646097451202679639754442840000972639019457326415717117123606096967613816547750850827700180974848510156899864690792183839624694516391728712792650061667664797974020346253263344387095575383368952075510255877743970404446596846197941483319362675507971221738918169720426951961062922425704419209456285757754959423248480567622897144618747206905391921007475180620179161889780542942874714176548671392447918737597981282381792221046317212291005030787774632891902273211300582125105515755221701940193769223259946058174835012158900214333770794431879898273319022131244848274360548261351217385536499888325594732547850335147749452491965107396175846283569509020697878510080018752884700622451803854266305348742686279954213944733074557544282432474307223265480984392002114522681080930216964760824532262875627846868183640088360011409713277566304586071634232592215344263546700816309505564305567422242417332821474155185816040055119603870539690457185722916485241553188120014272415747156456550172539364439785785872401946853839120658738552197867527876192142914955761282407671044528035310878373940820568711617960969348960124921761466588745028941889640281151172052784224755034503153487005422101129512401589957102327212159962164033234476816890939875851900547031947116545868105898312421928594592283942492628649593026099007139041205548136111759564376465906608477909143443127270587953096924897776132995071354989352456832284717222549337303935154405841849752035589002664975522992632188427235391888670834045105728822761682240643606134627492365076647732722143782795710651612059414245899422377926743513830844897098783620673898499764659190732259159778360078844226709462698781553842383961973752527566299914012008629439218138253850803295827610794256797572491658033511912044509522147228716630858762509418725293720339244314852250610557584213213401774927609928159694736683337821826740200043580532276648447567055265237082744517543888797356752919941283469156176815873854468208936880801287599470775934573505239097220131490311678325022779153772847211518070861293147450224061197709187818636508330924756510346242154226840268630873921269218331274381680179089453491129135914213447268345834958659633796382271496398720434209332041052110065314565903037580361424295158776568864640046126432602120482438661984646103625362083755432093916782572453127599926613684413773042469529493029101838483187915355613366638384290333737163516062783153428249891451266890998476967960658544824956192953376430596497530824348333897806396969685189906759710066907212208689919201993471122628330636806887820138244354613253679219385346009474551902267893757522362111694765908242320404137480596528461263772687571382552991446158562649475934327601247315479480055236928285431105576383757734077142489266606928494401783999275917509279847770512009311594950589996504025515560838660192161475726448656766755180161643584949012615672890348858692071423206180845668398575787679546500418655982876533653593153129568232383682623508121989270634964489165826075903958350938862655007255725722790439707031517837665725934427807010100595953192720943317307013854370680724533435047659621435946753896067935805513178220818775089704772256420392645481007963496454763958923991212438320508508309551430175448601925525567388671955703253053158328888684518766501873067810048346719704300408965809861337397673459447740994805572939710124397269289367375960768127163348803048832718606169187353948999023511357521155033812069489406874013323635841617677804728460896453245434902008100227281132383670539356847187560314779007669702180417731325093323500933391357824929384032704445757849837263377743730590652510179960916897104763198383849793613392522594207151741783607514582519670834154141768155747755929765979176035353064053623433867847304878802271942130535753774180362021477685216824085672592006029181379272785223480175775263826808471298184135963915807101748321718523744515090890999862596561329485533301842341868266609083189142163843951980523786123291279747174751703981999627041906550113196768919648267120888959656402789850948366441785595152103834629289008666327980047033789779295705434168028456987074800694474660028425479167048212942430371167580504353620183576165247336966270911878586046645820441885583615202463961468496636930027183158803635408210254170909714848500699933089738777426758936595836052833336744009047545530637787956658097860337464469150406169672045414881803311759117685064087470045878346054630244257623422126821314586243741766560606115211551789006577349658747339480019676666521742188280113029105867604334920267126711616460769489996685337245516491547155454226816011569742030572417775595455836672742896412018787862419405274433934376988864783429617144933044072867655095984892360254983405312174428915498442842730095785227942545192968480265649214611983942565368714300499710909250249274236848341749714938565646772869257249886616077856105985118067933736654390520055849864236367879611962577936107796411263850727411608817416391246568185372948089356497962228311290962197061376818455213562900307565065603633192556847048940966049601050300172715820954494416558365501275136443598116128847316604175501036986263014755216247454085618793178660842876708500310605299972764103259955145483405875703215359781776551377899050923698318438666579811821901684735146464302410539029083699193898652965337240858148047482465157481427856182008951105669239316749747318201997181402763179392319771295000958307402475377492073431768645282394184291622584113852399420069371441795948604359091431527954448726777393310029816191454552982256359196736307553945472188327304298895157744574895642990161979618767722615120637062803042135773944791754482520894444356653659015897115067889554138309459660498982391522349312846174315957204094455258585334375602736073100693282562381065013161887114791820929063018208466227273581248378086224734350949019750264483955541217254645263002880684441646084514617147538828759599421596055067160222987081523119627302926507477586157260709150670917469633995097020132166476984714337952769332796810003564911702598810437490861842684471497531236610426820119388888415436848154568501749679611752200651482821869531201101078939215463047869458712846884134134287860004533557729776021929334332824278733635053454038960752483223475531718736315211546924650697037137805616615567914805440254013633895589845369926798695618007751064074083508492405079628801738012107388784859854996101218567991390495545993339761244719260203977989395146999923031379375518605251425223949866138089385868972691659582150223542111162582650634398544354440978359793890231210866314058386598903061412179072134547905216766106130407622032125620016616793152383583061552476270416087624938715457527308961185709882392095241291754301033885463731857665769934114528333615445907110492451008435414608475923946019699659424360495993810609579300028670379756126944534747184964517869643318353683043779058951220099407462224403874313647221293441083649121773338382513910762157979934077581762022217623075144008669408959644048961228271719991490042379193616773651028281973664668976197080302880888435118576381058638625345570846046276532586098892163604212316042930423479974281891496844867243481749125148203303250080731616335475225015907748052020392402864590139711207030212540960793375400397254817624035712239932371814036275130889839109182569776201297915371386820748009905698847017891274013092186542965329194286298602930417277548934967417599817323569094404090857187779312165814666336647424164952088608549788462882982668244817820535993020214708020646292664005743628211439049412103505912481258737825814791205485661627099068816987231246810244672036887159300278306882730830302938565139049939870102044127925442258672000585695044496569540603623266954913087281063701218428058152887051761453896589543201992335580150356732245444261279840492690057285173974205754770885304946518779246248152646995929513363530621648155695363683307315487073937619232440958798289693409878544222573268484934441687137319300337755864353880660760835222000209124635911373711048991802957264214544701912624644768559037493661835616809326070566225695868852891431500395884333047015434951885050612031983897980214627896502156663883854555800954053196797492042370125757119534505902544360459869658418619879144243196181978634925086629620521718138933162839152095624841910256011597358291628020558352515605008568684393768594861113351345429311116725260947195968234805293076681507781624626826487573561305584602904015679361517997496422626314101339824444508732090166438564421040136248531336748116515684441099124459264465938967370719034022715711762183258628759270189611393388442382540503854439889504024712265551873324407238036434210224713526914830444027252367469084018823749882129019691484682741311324988366891322938001342783247089965162909716446827395386508752393289803974244041477726593024458675733306513184570738643012703651983184904323739598052399138367203320380451024146382443166550005945430187346654913886890390741062936820672298452502643017076798969373303422314471796110860435014557739210825334160410878832530829369725673783122984265392090854682156534793711383995645545515546398265925148948812963654898258498078684183585822762964632475616453710001536698872028548676787809780630263602266126898486297379900174073560242119764948173127786276705359616866808523715000615165608426115791992281150754342810026879369053818378246373687992368276656329068316818013559760804769173703413261190392113465987832426279110531314626517544947782381653899829193741981656627031355934682867621243083508697838841373156715747231044216123587389126314717169644035964811743258075925591734258484451842136955123405426694404083073351543948880618781696112615388871973130515288581720370577293351325951562685090195627181039501199500673039135477594958120655214873272845629400622344458920980184471347827260739586025450811695470132349498907411789960854183214161132340034350587269729776471959863290600767257746794670838248325586752919419294546549105210726124833395535498133723466683230179317504606335702806076130862444272358717782142503321585082244624705121291849749449398549273443129018459319855348920429137408882238863187650402422471469145362023642288142595615141499476057092146021060062104262147903252208340527433898986178777025248043293413214349907679011245732682101996636207809987026195474736505347588455511135986168753879756819244743032690355642441072074186045398677225906568866041824037436121419840632821597009416722442338553485059374149315411639464632540229047223067192083775244622460055536141649012043001426345456451320492950192624891353777586461334105521247134181369285265301524562094335449876025066023402830152224450942210410378533393213105635456426086189534209052543752814057693456020060746737216806978810514553294993706892717319134732814649623312429990684694393361978958538780641486631588132424587599391965361249426153145216619154784008203174020744824814278564971829260825947371726686005349337611559636999914074988730610918274737192368031355990337772669955399809815654186326435585309641377592503624530225426708489711780959475213749327377979940588813411837824864258191047095134925020366065295640627591887904703717108516630435774997677353222264125911289486340486937387369707285576388356835339692764970887716851621439763683406041507662998183812952271102846369008255657930538493166071229335659114533667033828362727800205249148049341854429429717188524881912457358874703005992310266452088947079484330304749668537961554334679315456817519596240301249611186995740413994725612075115980035242751521570275587914468362610559392547923092408902487266522763798453175750287869424668271847887041173828094667038828923301908973546170089932235893096482970603880525029520804897380712353781428750075236259515337764467683045315422857718854160878383608316807450986104638859300176674080881288913937488758159058266752819483169933150768385389503964831048928445971867699908070406227937149624739566775684186282063987925430720826230878736055491653150408140473948009295881157821933603953429728446857261065418169311833096205503446173715085562677838101148549728058209455263993757101707096944512746784131101031120605193625280787113673541744474292913283189469003419992988197318834790667047495494823541876807758208395291420288781312851749100852193569191929844319014868006543073491276492821322643529514402097659038431385201186777219176138644608446170189219232664158108174479238669336451387753026553750319731256836752938897623715015595329604196215735847942940197791545753908998434327508297686308436353852210867634319255580975669447214120179298357780768473390401680072027680865454877300873707311026808387576748327592327165352590570473150699007724333449220242040418353282704878064040263103898523442893992996675913983438477370358447160247435286619306186267053050764449857504147092545047372888510116337713314095260369122899493560455952489198429431844942266090486109765315769501379331549472310860515533931690261274046488083450205259080255151108414909293067013547683918446829397971978056372948661476942969099777084477981240666594862179143382237088710467351504234259508728135131118537943307231931116749833247583872626034717855117370222250720067495138773042038239449493721240360101033377436654054287727758300061118695830461647548551408381673891265127660407891177712538551791341638519462384054019633036032165416918508821804285608492763288593842856950107057615169313942059236822907488986845612860458091003626318255967130712768464226537859816828474481211403777448414726686473545446766840467057877111798282815442644351564491103562197205733500799101323891766438806270950932835617997760179352125020130974841811501880041232460187396041538851751452065474147603968043077095417375367016563422875430703183341606651120288122475070226497972097679429071797376819720011612716077386764160482455056993403309378363180414699281655575525116187483249061659710894421990657439634185243512493507062120880900286588961103631648551559336351236521271772184860771318330891771832218763490500229903881913616954716753217783429747121857756601705357518427231305818433186594020831500850449638400897116761746341688534861372340660238444433210972929618341862365167657622031422372741234955273627740610230023333487933117050694630900515470691875232713963629570771326248980488910144509969583879772347455656213504203931236107741226459309304430097951639182139974861013635605037308161965867510905739586071888893815907612148600409791516708010634715594453005941857686206022696143745885716238360843521490309720275379704626780048639340431035130797067312704671921259696583055886228563864671505973015889848634571830731994114160613879576580977590344270917274518428213415496362630045251462070423972971188931098835191441099775669044620143645136041634380787006943039297280595190066362891095798139590753264879330917964987870056376767165752538276430013798589891085026795515246461686210866455721464094194799491535346008154111312386781272324694339744361308340776339435586069264977616810812592292355084104434310794580129227901110402707815502169711840532987054859016234347026124078738798058569582265003023393672303668756790176284878353065225405598152958218598209261629773269828757653721078109613789229791213403079379397923943217850532317494282753154364201936678880706563318318747875069441570334650186794605159450010329058591669489087945283978454687033120978137048418327535558291132588882673733746701449057996567276338191716537562431732315721033684429945691211199242224261919313201851597805635470336273006633940608230256952307847403396867469204454426635576144926687940549578107428225353424816085314241380092488977065514682433141908193717361375837403973124641067504650046642216981037900766363234542392782177382166613732175067462591520420573622351225665697492189265844352413243966532817962528298748469010099701914419586204891282667610442714423522511637352136618240583080154768549095148960670018869451233587521706718424239600120332868459680626066863999950975946460800432498997089979443951475867955625888062423973069003495452606127564683963650733479194699478470756296920540084533340601510457866209235376679805647809332537016049791536188825173047182140166926290393223164035372518909043962695989432935671307325381239400642101194506232617229700727250157406507502145447740363551491123147289262542247376986308649914711697094847824471408413705197143806929776671446772186358383407858052900803787121432609272663596591694845856073763471208141798109965720703511342519142272633853144178426893907294445861593138054469247519181651281003145605394309106343995151672503998264557651499201677140264948666702707959856925791002791964926187161101149089826994916266640695996490005955616407933888450605433694249529099638554078045119591817703880955293039774613186447196619209840139426779143036157535545301562947120979797460017477546903505225974442558284589114007592118165418188772100219749610271194064920313974703460121570545393396444514376232333940466984128589227562460971416355137555452967849522934156151778053570332260994249910474446454913100341521144076981820172575974660029636497784380871398116399518214311109206623788501886136069900700192764846279872952566482003852103679581237467897928964312730555580481975860425517193647927012301363657805168973404969947838961862638260073920321345464073519700722525969948861266264563022678959291079414746343836426576084051590535196822395688890073977489844169726388494969066023898849134075860307187630974360182371082217700972164193525001629832785071479357459788441486492259890555489098208781852010281875009353359450166401802165802954255340564489818458234541454071870728175648131905723136608130730757641649563199489804945646381507474504910061696442702509124824772715063174062995502425198073958618137747594674131362744777551754192799992953519715221301208466013876670405866602439726486686242497190933646192558566625244136418458099057920790428271596467516347642440164044283749201832313941645084600582303123430727830721258417717021751702452836702504974857297348530947219238006554781385606336324738762180729576574117341632144752918709521158997117631220854264514344565476695166963526533699897916093143666800927802193229731928901461211146172583440094812103435042044882132309299020118614451039170252488168146286267192199913613276700221124962242300979337459012846830084858683311001521814347515290932806480418031727737822351542768316026002764153001334849909947890993519388285805470635040977316893326305661516624260013680216519538972694582177862452017765680326688512915253225016085094063686320547689498717333418415637920247265340738399960452427253924497081905684776375589064924935288584794131475987344691539613645898842524064701944339007560275919456279156971650771603692336326475538181407395005405766749488493595819326431724610692575974512850205820277426372490256728076843792370873738862751191399332771640487013377839022651251850384451144727218087658141126927842318713656027278784842355901793815775006214772777238134362360392956915616726398236069396902144962184853883317217012481425660983200697222766209153221586838006394887950116079571200386004167240213054552964931512372519281657467833043642659702815284906880931690325776410083770128229753778461346568837656733057087349490740564493544041183915455652026987100642891235761548016528629597499386411806848608322089187539259070333579640311159303886118420549547736624165754413119333859737582559269386771178581890122303229848820599780393713173705345739278165961831048990251485172808876909079179708483545282165649615805425777878742617560134145528795907121513174280271268537654460947825972646924804673298238102608051094500751555640809678176836823705641260715758175373319692737053968462973290970819011951792848897479830962437157451566065463699928604162114909407036444589887866200990470347527680964240628157463286442588179420966772013919634839022745134243163274771092510936509364122850863994643122297337444325586358639991031898249197509295414463863667387870570485581935222973286140759010039549522928103797156465450846311959870230650119238570151497590061939179273572292358815362907368981017493333264505880795710279892079675213672958934099448865202007748731965210261835187487421737947742714057659969802409806999505170428647542434278766452191765352851207821154047362870258696738686637498657916869059426890036004217671428691303224106275979860709185177095829262401794988252063717571879243993888323812592776258076346332267659959379389917324854066792497197526054968108978118667272024925978894140714963115836265938420338139137359681396827494273834248243598597094028362647779446652039816708322060504611792936515567153757766423194862028442008208494341206425294587149220311352586675622499129156001332600808668336501740892121281541860539154521543273465548419488321277187309475244586488548382691185301998537015526965302957687819228677487890718564499719553758057506297920319750114300717118453433697115622514026240764109200887079181286125265812879117028781605946777800392932734798637690732032175606241109345915413185155002711847570254093175339920417512351405712188065949879578836629480007917702346607504744488879750055140179828772915507986089559777089657086568369337777215132876000243261837745160133059945284139403304323165712825987018933121918081681221768754091473730398032614572716953308243474415881612240147834093132426406509160230597893398493605231999592479755096444050394669835832810121388506898431917076763782421984479006270751356799905911317263248300415794394274852817168257365433198487768620438543395552350092100222680445543384366848899729826084817049581102334541726941660479568827272787297261420771913266613791920487302818649881785384054171808139221874770306080602113971468018844622353723571896885569877317254283050700060288290263013418445584003233622034131570538985662340988922892428870550002817212516381167665648319166820557082024183904251064393874986667622561429565316068186475448119651148157798461560186242345344648138926423668862080392483825554800463909014147886497279299066030397731972719977687895016570017613142619494794811116369381056502781578699567197998589111917116018551123867513703144963725484538642000231718086657005183858634732717866753751611485768598565083169129580750483111327250276133207923911247321957184650922949640761285886023249823490743778771465182185124465983424040947359169906291408568066396382261062772176578227433313776588809381236605303376742567958146769772468974479719928002855568453549475784111009112191063297365110995883893528224057602989525021701022806506694780758051141945969138104626600376763579187763222527880557371246227629037963326753709346322843756481060156216585955553038776826851328572192921153795225450100022549842378027437390140705791031513341206406954432641156103329097137681883297113514522889096147709033078827587032264467872165506930193698265201987268455746204209780802257852800245122919062741407517998033845033676024584007755772254270124214890864155931796198358967177810601744757137295578374068234600817264878610703016992660793857465253303887309598578378690493594011727074181199696555583096343573220614647908732490216493934337639473551536174181631718612109270284200859688291259259812278909355815159113838191487180558945995078430974693034983218611462136418817438416043983389934854464088386561046038988218668134621174782637975923250232099362316601338111133066155264700865764200062581031083157501229831061118196071504153633944441078238860661101308345335298993234210536440891208631792384628295815140308822720484174584232112078256240452715273727662435314722705585679510152322034077599467010881993162134095693650960603411413284038522325181785107309038615795644322610482514173578440906387004991026652714802012158798912077186171991648190941122340654929804997233526102319916072641655689480401466207319671321508023749586171280924697205135161327081999126309656217031743303261595630866734811472250991682307469255742005763840479896284137799485967422115130066341605550757321517766750080210068422013495820138132255083584363201992360595968541452996742591651001525234992933104795156059915593543672148362994978210436895440348985126977996023656346864374225645058154027434727617904686204546349943685363307975443940295944909984235369681974728422560891672673013125445313633150840980351103377072598613950725879402593145653942210503582211647821023237491979033233164398534757930295676336098572459936897652346017346659794200405806091818079527147726712643352060487488136671629836816886475921531188967254125260583844546014368246607648335696853179890491396504031635642413034722315876235236838978408484769274303565288616894589660885015022575558977330227736032577896529412752726527985092105640983940109028492109173028761479230165779079908845308354426063468698938337147870178495889858586867497927722274775968933870024635806889082133872479311359786188385881737829082192926676066751784459001934912671618715208023433116188695280498503007278769709168223293956344784145644881420435619350299276412693041972028842446952578460540910711680161916812677603894758791916566841158743108725250189548914414373050355904638952787541407977582170236416150389513490561326410041183464261583959240451205374984003799442216037777302464083317904921247246828559358427305911182394313850001467926771550172329106125694436980875976082969558200055994196946268820765581244963180479873231875183871089505581862498198609007085618619450422706717497310003591263079702110460624388249676872602871141152817128355177686914089127248683847261278442839142115259722942613385573068961906251683323241369576096673068631976046070243274471308203134532468861876965657875982907094403124149504758790280333445687106521961175504509499925218281617566784862246318791697381716132792908555886475085152857966782957567513942283483637043350746162366929922811984460615073647773107463681202293404144385508015671597394868110281830529416963438554187329024804210613280879728460384508348799265783592584576173154913814736168206706091609812822673832363013545697448458506937308585169706136855077903733700010968351671888018686847489863030475167268377027232142416848939737351471289929536480654924295756592812140277310168272850813911921813836229198393101187542592132601940506226400148774340066119274664421035134242157748329352970981389706791545723984238919662851469861403292213604138765408727457848302048004991250633979327183231343392062886129418740591516807066094784442282399632405009950082056545833648653802807293672996019391481093368783334377069830318724042063030530152942678920034791961936968152968116278665090986905745296165127648023177292538340155084879174115074807023057624344953854119314886113722168466009626647597759345343600386293325805594455362183582823774123714740583905615608126329136547551498153774859402757429550336424199870422615755395206330179332235006089562143256933477810197880689236992568835366213712241962898518408012601230626215985473808696253795859906442871441262014033960551852015208267065726081034695078333996901386087209056872062201374097822703459831113832306579695896967312830876845161399155964848306092214230419587694216952105389554606957401618491541858506232001484201383227040346021397661632284640890311884653669987570863902406477228749258361892764604298196742883943600125163481049360350891806710277996600573380381450413349932767570781644330074300612188135499937332895611157417422028332075649337884607152535437290610821809392805876982415962589515818843170918587354201002017165104733501948347932396897589269247798945009470961976510354564185700616893334364191514857628657209190726425653953020632000070286038335336150785915839365033799373937401527336795307225320234517558817321389942388233291433095929633920086728519080392173275199951619083401120984449307465284856743962353798206902301902835100659250451920923150203275322336413638772024296811511026476367540718523410384655876451806230850844493522625244910089601934555815505846150593646232990573381188886059135139579001185704064208147838606113088259010403250342836442933635442015155897363554662943936811568698608616519700925167981206978229191213414146466739890829732551254435277996313955106630629992012916492095096588152476321956023273867544739428384029277607441711268207468110036199950218814133798588783360339391396037014929517767760070295105086850683514020991335094343698225872963723767155503300682890439550717726958866694241843161854425020692619598437076009922650126627255846572321811227424840591180645993230983494220342500455255596202864014777804559391146059271637726599737413676345565300071415164225385153544411471317090248390772627318340079784300014074588269905502344650436840963409455732997967795628384222348897443430221362848420266107817724343866762375911258631812803275612718788112782462873876580046084376757452734612356866951331894985982961184290470592066176141660395882334478826353456574660797772500745538680728965441636057111584813357928095062535940708699757304636657469074788275653563775935556517788224896499276692755393527333788305683767263465317811297679032786112852997508775947664297718844234166488430012906547836715237079476166312481615719617669303339523380916363728865600131804277621015744577852328692772813393926929322496293974062366257090245986400297864666611548741157345455726549767327969095267519132694835627988646973336073349927357804523800909389668450575750046592836969883192084876683357396361721219961268696209121964675611206668242593217238613987212928557875276914524782880689587489948057312232016460413697793890241504945802936608835342764753757602102240795969663086259067283861608280128882629578769783177376941601979079468246739957655700579140024938135466546944014136529208316463097246779280225828289995526327814659073549984862114310137125589725592899553283269462347110964413108391724066409064747847289855104980146862278515633374387765828406170973497948631077443114143191757567957579848968082613081871405174560952666505856004548634569714233653510831541397463208435883835371658992461239056666973381829533332426923004971829680835978300446135833805102010298456452824111343483757411575599825773993102689935362870811668630884680962825858509766614540885502861930335625096911269145212710789904517614587084421845781724492464641265183929490501770922214731233865614184431981334445638900910852751382985451440925472834149305906999207342009643463336135446033160078663719011777948399277143816201113166899628025365026040482695710219682721364311191644090339367158204866697817351435769440505157260243385974584831112395746938444204167936330324416965536547016135416007624530423126287718854891437659343016735059848123392711512839874858256556797684566888075549397549687057819286190199359567422074489229669797560754076476924958461168437085858009350111357868848621008445473789099134005626064399156767664512084104215821954864968150302892252609536963057466623328405637032448947563769143378810130299538934995709518684300872362191132963953550988889973394959083224413845715734651890804760706784641387268202649490376215742851180849400957853911870652898085288903922996401675673883596631194612076081260050487824187804943249445231661004249385140331739880584351542945535254757239180735316638843243228394130355442217993205906855904370564462700911477031878347740830279351603286329912979444269867611619832983450531446106398915621514073814740404432604983658325558716705110790607427289260197522348220323625837411284454961032201231594882925237181850789627364514176631688620594812463465973116250803881391797516200449117448851305945072910598231047246358235185180286857256308408102170157482650233317554537914344192581792555790771726034923932861248806610525620406043920955029192934375188442958705182724672667864202824728711376671400887578065394087158286049950530315728457755338995149194743135435572003816227802346389640593470016004424048161508746814526710620056393740674490078735925660579916081299164116181832128934054741965562192918463875176646878180218871556455285486223793028112416260715348705575264715370192465781809616594856230833313135419805769186761987247620737610195854884017536483743037098200719526079380132322851311177166618933420096869111192135407195751903117827464677684904366396104896031612687882681769606943492453937097468616604631495660495175765896440899589054938348802256164804972616274457776209800377529849089924745365314024840779745796670117153327851016332659777563461614360877241298895243657276802548712826584038910995414953619433830324238293550953055205363092372220729476636021787937300512379843841078540122144816313516487235775990650013792541165067357910195691613109168455365911513784780862501744449774509639327725145099125566099624648306318903765302904503147663017702810477073043661045155870258992329060665648619770532416154262203048583964311401998093190627658953319966702156856837163724945435738095791821557110637549830376508329500297756108639903594322571503450760618504142203251487959939849901160829679263996584026688935347377714264544420990184916227169532260458983849043117920602437694360615381175422329106090291863396900253590720481208986471847926003317533159858369767086502895858922373141710217801026856047557084099739985102376713317573529691713956284580054172169991059885803168878033194285379207974480448194443829836749479019649748445217844726759912969494087346711541336269924659105803513201853172131723245703410278026606777596321694160382801802171198868297745811280997375451754832743378376419496673147527311467822742450187236760567294186770925492061574524038416414194584625206753619180739072101823687210877857193008896188240894130432112823470180236584489985152708615022789196999438991411876880706451664281015297692847758883931478379893646991964747287306770137674926664393188561276015308217118150183251255860107143371923159720697101071193761627423708410556010607891818362898482068689119240184607889785228107341652250773660662281257604429607578300185055105299385319766406851589070597951689972617574332798255905980782956718196965746500640467735879377863505339375700903851477906118403791047345729397808939710290810199608402301720992371685327540365306670852809140284611215584032458987339634073781880846742399159015601973877873675046567259749052496434741248001113445861408617990006509441504997342697509726510072903576760044162056567346395578019348724171950766882695498193316954117229801249679845468603082918021189335152805453619583308951292682307714428364800254893587744452414326925119308097211260588712106949811419803169682746751743521113344515869819472081406952402701929643523183077854890500028402149007000060916793313725980241981643236138229935868152062307862645099855778048110848927258575698565364151032071421346842267606748817003479072422851071335784351870114526222156554876091727538505927995035167358924924792335863214813824707825146234116477156889290047901494685487584347644576905052605634031392697785699090053683227786029258664735015082777604889135713105248034035065056473357693745165326093305500388009273029048702530486333837987664463449183995839539609528495221222931886738150899095964397601279970654249242889593350665130935575725864307683518175894728087021758521094372672333358180769208831004147310381221455998787699628101463643332370038786941134261465517034141207092473353112716908410201770118424912177889754301080379003488476111446222658989375388729888887622092286772606861611468508200490604685951944553808593061953010613126341581410831123347222547286229768215066546933472900793411976038454493295895348202067236292689617232094477734102066928472427834871536537709397258296765139650557778724693453889206419094529886363787323230995295683784381240443169994246593614135225492938441754534018009232886342214238805021758630106612915846882821842279890523011757186063719731119944279060258562376210969105048715384332045690441482071109376454172401686277518040998056362363971909559718391483469474273781249830914719708877810544631785840483770939029555978139806879693110101037693469172445321920797248919396277351674702679837039685329968673296644425243232594208434946739958007228886584890850293250855631087948330671514112559619046745654776947508123765045005844510789875131126712702654591309477924578047212239523596968757694012967694085434241246971941709348804637937060719536556794600117588790393351571162094519794997049968987186933486193461526264538705502679624755128432859207890007801659750426624801653820015327080837625740941409038574726798021616949739161302795260918985499335838517652310933040079573103884462760100540801110071264292940820167944273153217150879754608965789655307419340022577013946030687213285973881002471083933267454844949545238612666971519843005975114809615660393492141045509904875255162696725894354863236009752791833284415244621617847657786311863590319159402787491103906249558909560732496102489786564967620124704713457608553301756821731358867297689132569463547226004401635765372808558076427140771646426649618181157817283578492783147931079165626257658177179722991780874620042233419624399678457755098927332788279902088182576328298690670030920519763256841370895015440399052728628441902720913911697642539400517198474250908969030500730703670621319873407348396969970273042261404747941094482331492488400818251891221808697381630245987320762351820403057023983254624061338478402409872187029006140006120714009447832486273541935705461477325888658271158873925130430280649424554064858445341790316194495624948362955363008366342295343182808633941147192744445337306277056831096359787251993198170430962668111546639903250072041866304946304972737043329705195241328550123824225926562472273304974342466224558097051672821724105779700184601966446700114653799700357243579256843344515406910407386252774027496504253593867803831088819936224946447698936297824158024974682958914305097834196413551486195075684556798096792840331040498076357565365530037256533337137695326394374928814929660721670890634333839991635330334463568772708571404334365425166134885092178053024846284591268825819850038550134156971859526246898896824098847190530699715847139543169376405989739983730335820109121184535929267011234276251693053204288589901577186582774089265358786092382732523746583429465553854487139390300412867398801660297947493681675377963693791310193650464269622915779975727388350964799003977941494170165800940458851713699896077204047289689186759839739000359270655612388584851242140603273140467586408845018937170977363685512747869179862530340663416088596436280836352661887032442662759602509962263514122100066025486901593743397393662976013190821372548740637526750464293715785635044451034760132075621501295291459815520084820521551719580755502320580849861470617012336828225825482368711034114038631478660776229406310778179929600633002282844074694500818485717957725827498448400474351899235036148403316072366965578845517397872931265518802068169353789232547648456369351941649179017741761842079170247304893188969743623558428484175992816951583693998389632881311694647695884368404646541560056503895029578159130707272508280259637613600759862228543833719328845545184126610014341043730313996831809878016986394637838522106137594794523307051540917851255893990123289706132744272704437734065981089583438011633849457676168128088505267141893621304616520888744599472822420285388289079528214601262815037342826248117141386144284874604095725157191361224072478911378521216122694648998510585643991170488616091049878172723697343043239323981078147733679176488462720279359734462712136716753824775912252243335869294354906147256952560121710543881065715410941107019707290885147642323071579699038443160943885019050273581403655795117847463959971417320295793748591423763504061748173690914812799981455329316802507141429988200021956468297791559416716124572239916586831251173256471980131093245197404578605533777589811279295770655497324714849431741977102127498539831404515541378760266618149745900305828392888317936075411352907525894577284114266344554686645296563912447962759067507645695917951356658524060102843748388220860688426786494523700916867555089706627253908489713911964249121299787197271880634627583200795883554502357788630530030867045601812444390606934406004523823811406014712440213392061476825937669017106549373526711947633890156914439593260529829862855940443511502090344074733962772204689781699509454616319031819371013977691716760735785718987804047676989859375786056016389597138374904574482267222311438686977753195601621177082271265713636298151839225315304239783459553064852295632039360377707953713023072448845737845851853952714374331428651562874074434024855084500904233088800656138406596288359234280402885186402889896944510732032712252435105813733021369625842298772157583166667530406002807817465904047389507225228899844973112598362186097995474035214013627308193329600952549384801126823801686001365026698279042859235817121361117671805263901607685873437688429778168294509889412582806452834858611481792265074013056824411233271883401755396919127342226326315457902252440090663400552386767721205641995927164309675857038909588088366850565131241158674034999797219858229541747026727884284289743888178359649058741204776871777102061808121877671364336001226182146967282582962501858195071179980191068806244245431203781337616383473138248027450752567090865996858736411976894138771195225082678262087508437506958683484304909349522040210737725207237287495289084064353347812807730127367641909783972359678374460416228939410551160130476548854360566666263462543860513769892852462906829402766490678661110736489934227845285762149675135446782047545158987853966549153942140300851752502165827001925989850705023121617522450421363959778753861029279351492215307754385607413071052812927928926308818766392437623647132052131898654864400346173246856141535552601920852981792598450293857306636960604161903993767331146561329445263571313032099441440960546421151295464934892617483771048006754840217080542171490528703215498530020669277294010042497330901391393435390603162231757124903929180415287731899407246136228640957658887330096544970810782963370142427994828053441801273260457474580279911840755122481072783972257367961253112740203990546100353155028841437624033919123262591852481500112279585579009420492801385544807727809015642513688034113139664764160368542436205532416487897015997744362630633948478590526424762426754367713068468196057764585425267028913712012783239570937983627153112002045986146887508396305839049660179756259874910368115085077593398982559976240831392144261731995398211496768188453339927541561018427754668571671721816013305691781064405474613464479230816146488711208318791275057016954062473453115357863120238364564788281732541062933909053532031120237155998770113251390352276133957132662504407417343712832863313841433898836563936045147143710624383124267963802384136136998159507102603026616774325989592807108844037853837170678014936755760645239482746501652900589879405379010072323227455015643828249767484646616629358598342719869720490478567029627847346229989593543669481514474108180826040763709851428695838182131251148032620773267942134782439950536272184819463521854773766462597954834034012683634314483158832060488167245036568432904774035120644129636155491241337786436432097915717482539309758929271621274810765786718376084737656125161897304065235488332576508205882421599484804413209823695203654643605421993768547460248218666581266474695116381963633022280387169531612208683301138446566351519143273894563042176243141752091436292891551485476846843183794899791053557344499489335795151044924834874805225535261091689878980165700508181157676477514219260347442270171488024031459752580831772687449229735005069774824041859435114138998219812140929039025602666891937051792366564134796517450196566364136977902250117061344607411383591619763809365665056544839984929272907304898678091475557156389579120419923201023339155207658025653080214885564635824782491210864467463638955475557601574345094075369430956575964336811222334386321044594563754586028264223905782763673867978806112462902678573212943983123358248181812416522922498055057471964274653872898146897493470575856510906861648954505582907803263940159654819874749783670820471957809748862068031391760249205602578512919677148110582671256686871911377150713273171126056253772774069906916887115936172141327471779139762937712921154874457413202860735994800327129897196745968128844733191791688734824698097103994829157792234830073896733880823569632729017345517529348492675185420452236308638335412589181767287064478115280823227498290349847167489628847935334673931092449008496043214811242313060373891260613076077429347956589301770708277091989052950901123045146575579707718683903089875968461492758133685291903137691731748672469522591788874735430162053426861420413696079093369301825006172949830533992051990401330094000345850366121028776682187916758987173003212322161397465532776244295993248845421744670028774030760239772806564945618932065686318320263181970963760712284629660503766645869023715740838445780083622615940916258112679220152033978477953391227955251941113901737238720292887084805144501895269274489985839947285113435183047341794306884976444231191809983273495731821453578495795428613479538748800985223976781936646587612510931308928201112089849600544427817359027522672806364328030673606978512269617406628596632902852103681568673030962971830118956951928387310870904581155973488249790045562502069238627142092599294053320595855667443176350121406052278161142453642609825978274149821035657536058308171997967780278501245935095524739130116398767527420211410030772853376562092239368529248166497670930279591449086246782614157018900278937487626467320544038474016335650082126886622742535576903761750887652970767438476484325790983693819085403524668516862409679119175501035381465777298408950093666761530326085502472242204632774362977434414812609046537353287376445511121663519098498677531545236824029981984943003633687035953369856325118238779973663916963457366558941373629338532599743091004797575326300321152688488932350195492292642753126493325440998139723211010372230543295824212105747217876160887016234665258749103731299025686200152806067273303726362955354202247567639901846651928828984958504133939428427160904806719928575967847855940689234110202170949740273123879673621317042031288272850800300105440416506547904909083210960985317810340074884664673432675688251377660455675865797016457874550950344994182542474977131926137536924157689842771291514188502733602532816424482561841593386077677394214128955542893434904880929746660524221133835920073576488892293894058493814602388739313435788346311643169868137533913130164393099411967625871858264653836778356759045811882973284856592696692735693430592651229883255418487078195757329931410433572415671126261871406172135284896682944841554427814904280605303922686801205413234805103746104862154164482064231822649979359952450149107662589860092498646239573335019545117251339779602652893967244444457039712391121227710929794706549699242848927465849164086377827441253619816097128036174020459070552306897633045507122717660604572764328153265459315723483928621937449235147288032902840053311268900881209070764865626123124582739467513622094940147516998931853063769159568569407405556131577919106552497413334780915572651322291941762853754855444420325495948058375526429111444772497603332880689354039085034310506679426812596563580608210090329785195880912241339647172563293007608112003536454038851381710124074431385980169400786721013058781206286220816755398818690116290138945735894441244440787916208844191403272994584165767826671909550938984637607981354003619499644960549403874969300787047248148212871479789633447099481447123203015139844453136566981251098765070448973438331008742666004112841712012053526887784474140111133814281204189674880003634333076300269405590550047764949857365847530847105816532036671133407287128414790550983065562933260290801024473414124171987974774139167110541067324226262775678195155789191228690213544876021121080556072288521200873596132392361399326157735447973343687630727359782629213120744190003521946016460602788325536378480679247097379781469374145632970615890841384754629255413371087027673026048089262915784591718816874041840795124094713916995668721375806192504257997045582482651789940732090881857002063265105864998658248061647516114281456288523255766450390970883704434889321399556728608938552440787023339872796386196681121607932532872807349587771850238728658307741882536768150090609044307849398788179957353522214192140877445533804544184016428169337932135854516418456320273499904039564474193193660233097214813052664174809501410173196309398328875734112393146334636756124509725061802186580643045627517460291730183039449171614708279605702275986215346543217507612355437718388683265931590062420995232071304327909852031892917246405762971937586952860825401848107933289313994235481978361575248353528399817144666451087840452561502890186437689371997766263513911162640145329850690826372513352563157280155238368744170112030498346169160395712940792968141237928726000458455148154804276488831241015087608101689969456882394033289037886230061824434679152919819862025280397298562405467583074735019113281680368175601731142931398430369711947895391486996044156240740028742063204789001781908267571888289745220724134749304808908196262982959429740884396454087686832583780704512080834864242701730464157965974598997886564543000292388745655515434363432874040985543380122032607133164945839635126698007383655261483481815610121669921907295940632362408062204057384753446213504528127895648530331551413793477988840373987471246886005066431859897797996393336702795002126907134475106611339529419026277588682498407912126018054362039049114107196982486370984296296788259126846515992863215495456254663040931124130300612534266525062420839404243475030829170524940111001098790874624496555154806675280369923529881065518837857846436020011262872147781772752444656647295097895144441809070973950896280909720091779215980969301160868047303602744206415461372037614892377280071530363476040539115293839967752030381395725480179277305411575930637543669709767437615232981559343124376520948633437113745961928712349656708224787418215864264615658259590401025015110212823004166559246451610036037155263228158179117628194719461695578168177856444949563305314818207592569470066848957989704786766918038198768605390439614074831931934566913370654442601612855774672019511109250986389093121612039092397544108694100190816873211859654440302247399826850843718406874476625328615572397452179891441219270961400960950907058535456036673972788147034440682139996149992925163436640897631129987458630046860961363846648681014031827456326341559618510395513212311470451582135848939799463867382942753762053093033844660767316586985675338263548567301828542816863157174688093507465402140853859999789581404477664967821361430581249196698474603639740477138444529989236041618004524529771231362741909162570909560600958186521394444481240873150723485295825617989548056380354672990920260626663472834131915676955070983355780278439494083556853880660073113643433482857413709968179758043003172477470937772877042601856597119070027946296990226636336655134149945118410396569865720481161326254489987803116343247159524294468170581532971515221771561611483148055579002292073388880658975036410905504083748566135383498597308048666133858790167813377389943289522865600879095603657275129281282818276490367227920687541200528173626126257601326536080789811923930701767211458907730656657366328408829992553790005823255333171854546340011892602052490540703910516282621587486030120802281341349752509851167892452712176505332793552299925155169195825985001105576575788768037375834119932168150564699486883887942394573729790423971890582344384896087104634690531092027633678623815727184995650834875319531165001968873306501615082017604494740691464876407513123441341813660155090803380558371823969741938482689399688225007629904141774714649212919868927830772708593509645278136418227278915551471614556176264216225690616387538519326755289493238039779292335434725253443447455608986747235219669595967167016148012237838973796955636051855877620802549199318897809393552737557665987829202868495957087639494892079275079775897882194699704986398516606650779800883241853380127889024583997718879293791222514397685218290322507970913127919317234292945610866038488042595257789834671610507043438489525733958690023535708803648229424722521150129897019884281766871497917904493854667202239709090547988380182159969907550281518059341200180277494288974857719532225818098567870916049337243419856139429031009574006391706547285239384066811820655363445582828886933055273828466691267826869092660245368933884043248329638860207073312847099307691542410126714481689281587281798354309112043980499275547102550141085729367967644402097172076126233519769237955648283220961573890340202750739247081673803634042202195232216577408363146790056880397460544145700413381691600539985785947243956734152172083828127782886897034364326815465921896855164301515501059589052668389455377005985265159213189513911628643347209824104626598948816017013638646814357895219573712912930643533462779407742559059990672052072283185431904628980769436562740377855664022879161525468310716592795110362344970236368628722783999075279439178029822690366972226045250929053710999164314222592126829447197033432714628310253666753470241042831644192915645260594584551575751726778533393956155126029171361236748995730743327137463927123164666965629164692924425779120945361678109429502772156822125075458637619668402558864284132501059250647262927479333370376404619882142211835900877533897588681419903306402647823592593982817583387250174259798030535091162614628840712996714877817977504386814250323055683932884034187142105468851672724597810593402514132428363922820931142761709186036583928831532708994133410130736060759819259125058976925510049451206084398952751132909612172869105726190945873112566789218933390864056845824563658566126637955718580116004652639039689233241514101731456295213927023925607886460298340817253013695635017326397942091959506615927920857280376946797431600660704183890398074332133304662873325395302313993201925668287248328263353504277300585492505480014255068078934341077995976274625892104005874376375387549483313474296308298181701932596797402459772225129328363603811741535188297111148523062732812345440826346287223754783951331030483686505013603841624877131218650585118887405041160993692483313065705055370252799373765569086629380155398434852873476441635884572471015595755007145694887258576602285787637269859860753691060373768578908296621122254033450178133721055567339360955447128013829289534955803353351717405489627472044208700140929916786916630960547582105066365986833285565741594942052225960815791706149279822106255792068590617238170051072159070635868905974170029021142541907400133204813341128376982860651328720680765561263333319636770366576424786126308884966982576073756007590837281117935951941013902486690870704417799974807635013141158715633986205382807551476497842616041652668216223357418256275540576472725620864935911219450729390095029807831570681374683540118569949415624851009112367396916641408811649478506984413262777929157834704503513384656655065698252920563554079598333589492911635278507490683362214238417777136875013157730097207607318394627104993851902299250333647275025339485415434779220534376050418560040097786762166718305917596540841655007942725681008286516992708064576455842926314574715295716316620286147683981025563409614807470838761461121088279388323327507926015889859339710172221988592753691901659986189102270088180609970445758745912843172068121994771564007404502311238324418531387298266395688705385950122293294377168949860174333970930368798250507143035788368193091136613655141490269978239588330744066986278494780212086309179031153591718591970239105281889820835732095214979166512163048934111606713675434338962741149482931995607276422421760673152670714179098750840669469808060760624772019165460179394201135821225351317175251207107393321888817978979039235229135393420274089209469678707015836655215581620197915466030288856804601994333821221600245087171517136383047867032380113467638609551760104398915355586289313620122523674635812962520405885728394049133234383336464843988108100732065644352647374688124816789718296015499490011248834326762382414014412199514732743131592354394328300618872708082655696232102386545756206506880170342769277390596652724997459753219420806084735577209600332962672474842014399594972217922340412858459782482155351071543178288268362715506373054529895964120709397877949308911912644281982577886062174606498753164449433441737239386265603432925365999965769354930169342336079309442421077318008530870647547217395687366029391653387522974842425835243218192000543941242623245101129728628523137105139450551929486351736237093151370521696769332991581554773247985970855928429982059499688309409553308382521305601796398651550963974559402593888530497165176099649204123396147880872411641938686072272075484243048849117935171345554704450584482647097667739747931829945176479797774152750653549692225591938566944800078858161506716640784332971031192740569803903663469970484017093822082911247407286734445114818446534364980676951310713298100243168523824005115807191661811693059520347082320069577213801801599979039656899064155826344204420960971953535434047124586035750473946903064441935677055960377463643262875241052666169415504186176072352702190359427559359856412239982143557468439986789829400851717038287697835655604419445293025885614646714980961392263518323165431537677836896341381844276749179110092235144809341058073890391132646701405237168194453532004501565117605030778130145382504765526171582341709399371870305380989233578702080004805925638404226326284036267983786644963808661725086304285596857729441083545994378231253840733494146890394357469830913138293678099305848901163386108662999144108898820648847076733800113084147162311848461072271857421599549232161259924166231375019193868115958108773671484832758082005341535861316190990757996778487361367092983668917205981378672527779639137825333927875677093595535555168802430076245970537406476755177708306636813523800073109629822960243341767272762766816083430971528037756504660928425817460467919145667782131462879801131525510744276859773053079076503854795065726766998746287227285157378592562302088274455051082768446992300017032213465003387729882427775236993559418881600497097583693416630882608788053954728805409785473790923307443289493487222569861354430698056566817462332381689196801998699702266562115711712505550207363337042936390737280202664345004832233340839828596642479375219851071671194120461970983951393480138474744007527567326412648931011608280897823452607394788248285569237671737856625155831969419183664479561375315730215211674178439579212655790545009713219268003326999114397976301577905996291813800266210633888212553256390420337281458697002322249235449982329040090773253810805161140436274717796670944395921471946161812277851825932651783625762809636613265046608607046584403290181810740334958889413816148762613736490478112958932617282812133434811528854770011293143926346553062863060931274118634936250115199310912366090249359252148815489598626886328528330504095540296548591027359776075518905747367761127507552305049585887915223708733890772409735660537067797523020122465334307157443157260683961812203973479729317351119292862971424259252072294900720991915071416660111583155372706821434085368722217187408413857606386164974676195618913501029514951740126095121766411891439289333997276777465283815811220365272640891951012232467893841202980196795355901296909459542112559901058080635789181296020962162189563308373263809031165594198653353816027234229552707392457201418720290579945084251044980840349030233215147262678013757531508954754452087765365456444066154052220321454816146432506251422256878131225331604139847066625281221074956459917686200773769844486293734378532918203347420910187780218503974449296340572255362180688959196274262128034943631518011437167063449333566128205085209187933026128225871166272436737957275446319100745604875474710020199686675416119764789076786977112590095078192704498761809133737563604407780039550732365925416753125419308868943371119945394285470467904788625329800673218066044194031876091824897851813262723982475235931178285275948737203991481449014394704800790389406589346267239209904368572981802275668156112828242308744098692220685455035786059906798498311455877718952171530507139609132176746658630081248455516936883191835401794796472939766546829722920671811398628246152967617250645681850275364228670430448051381799677262228827019220378639567520789466833859967320355264251174600784751290025171785247542013544734810098600765013758523068930576608569457539299428497892777075917112061353866461267705759957914562730090869016834464738156498833646951037958188796556970005077157431001614036889376213018251118437830010158170572365391553654629697777555879718610501347561930098830000510941084680990686130014117313558272249554280156918022296858718097276920175428240657962075340779707070687917192799013670488760292805461044475433797632654594993155853987712455296187938531375313613077525627994006055748584431864496867702104972455662453860439055596573995140610751691724539766626639856872338179683297208579222985963075284469504042839934816432016544650589547275359033431619969466203729793684151759325671542987248300987469313956621232966847577162720855636836887787419808205352362894342039150652611524900108552931564044226797756647816710447688291338229635930095628155299816291509783998377481249830247649770780960505841186570279547568608709100682464132432701428053745019392858077521280991865537395180599579033261876195398033501779708384489603434462371192399355571924482150345323967517581686348882948856332606509434285767172831200292316584241728841727902914418158815561056362316553011245284953658269501502868681119438278677903540670970936349714072216594769429474000289809897549243453254039303813442537933308771490261767464585528907208454978825244207086200858742096181097225041705143140443450012550423491110662045234524994550323805788381558799718946548662137435480676093807864416558258233569952217043352859185333528595304758688889969990884126397289861985814903760168990798183936510439798294106171163488030241900369927324053664398604501428454073196693244632604828167455908233757002252738584528648466202566872993757625190408335182742138678235890506839018803515325131405341670472959934597843491023797622684277285635832837473377384299303153025824667002268045372876117224680294817772217628023427886237676147284915738417220905061741671602342384161225297573388588469672531584128814794035163387441094909215305128012281495192823720392739009637088205025058150414481600140445810544561991684564564010864291543314058627650765962533494651127349652899837485364418620331548484120746185637968866466830208190686137139669056782526925285848509879806699592050153221700973485041305698053484177865486490055755810883315882533503502849467150290818288117657622703365945380274332492810328771424180522372188356131400285164227564669441840844312011834998528656543030127029891410271374712901548918657687279491930368697230579218612708584921128143180983118121684028800127452467253254902760901563871308725171288077686654082181764231838297151545901041298169239943450425381222628902547485931807794217025706727612278613874007198710076639563990457098399782667927938268639685402929325934932925253767521000344688072452815377705797499143801560855440923832501256925941779088186741613604284832785961562149766083042729844598552026568101446917460674845154179953306294876422767521847610637263126660866116423172160656511527984057068086204210221615394776271036541237852300024747709378793370644799315797137795676879645633384422526651184080307407519544611773241773891321997357743702542071901485023274185843738807293355772175038994690510861400028527899511366025204229320116397440067377029197616133864250698398791700823770679624551743556056628865562356759782243954640837073889720767309174925763460533029210621275490444763729647199101357340751083632146388402475530093572880081337238967069664403401732747805667909703008927587016923876738930542133014938521694113067141831390943111708842681835518969617277698006715542797991931879898914691700391290273614699578296739152846406398164158767189806544570144798711859793435075009071582322395471613456120762278491833914463967618437848954413347623653914956623984831735033645172776025602313732000888252522186628214446551996268319234226193835001439895803466823802654307178553880572187758696694956674253977857231980078596397319696612127282951422822878858037924124988251611593029356727306656130087239577362184170146285067088973355061049513203229425357785845965150910702666066534674956937599853100416225241561509095008609315339953705458121390502919779160709378562704551295099798566748825101889432385273531919377831961393951964674728924110837541154048729552291106152615498076030514612494745315950705247549842274646802703058309776942228233984588010476264542738438119953897871343490461671357565792620061020856400639482099553035845422226533466020328897058936717654038691836815569509729967852011312378366464030971444688733224632142135550611765697208717365391976259773018142539853100937342486299739736476626080385510052326881702360715097584463288126571753922080016099805797060171276138886324612551907467380230980420403037110974112523283716566362915643282785192448487515965249728638234675999270985543796004468988366945182388290682630706844530443029453078225951988644310037378148279406070876253311871696872874276519145025541575015956061201511314481034317927651191402898426127346800469633082309569141895942603329275472259112981132500230451896167376234692432752859476829585421742289686479068206955148098949760772052190516737763621884165811965084105984401636595575467864814669134756806425102868615038523357325294481777191755347522032275543938729196953279399427787586168661469181391015592564927599822798690531639810200908128319134807021759887909578712812602129932031258266369007269187070088939473432238237250938529215156335762343140597769929976659955651393914294420584172389920534907126225213514559359165653791693728423432467215561785206926232222594052631670079324387383111232533637691581583217693271237904363414215736365548810006251727235354371268533335272384605339756395064520166593296868679723800127176651980340459185350831334559386310693642149629420042830108345451863471438326455821254651846353193201616434180203764778603984906507645821337478017826342728106735827976543308123319880472374250267431682789616261968618033179836713008315740935025650514163258794350680976744899331287217604379766734241912254472433452504719994698897788750112701420623201070271034925149526051483386418617109530697748196205488253764152412661433818640860969021708267110756840349095776528793746657446337493482189566593492239080581024835778091958213851280760500544818839176115395569334085119712684939414319887441944925493105265872121519482406277974412570954471531706535687656508419916495885434763277458109671328530985242609941147378581918594487458448415853886556809553220765220341882370822389486314469904662296551340191441451289686298191204886754359625541044522443951102936788575782254152711837270385339649550958566624895190981809367943377588231624954474257878404530818894082995306743303482647628607342113830006361167539158134889914941053073375714212136531100521235952795066403556207237393646207332744187002030829584992270610584923100558829087177008251080000677456458820549050588788658673334100572728572815350753787217082210853286783073115690704525281163407004286101075119314788977415430429833311171264694264353704005029370160612787634364100487161860762777121783035443527660764468213068203561029913275524950064960914235635753763026088519244872247555670579208614351210987071714107320148189947105301761197884797718291120583724758862487169117178807966954445678383633762757939952597538231177179719197418131137148568801876637354900927984734014439381515717287593006353919258646257473372510369423190228242002341335608536398184524001208907047299442489893079753995507798900273231689473345853998173862605251318350230948092983724012590316292947394583820416792080628816019656199936591379538181723750635308330701491768622611836980161489503612595993698475284824069180273718898363899215232112905912978702666677058173552151713892299572576624764102636888154805719787035038215041428645454401217208874281442925042479654021683606654278369266535177718576708168750906626623120781302335421541874089646270393684261518488517564398251469917003905653353727777001836435138878581294542184830362251248450533223400294140724416905950366043926925673070517646805046447484240752792563034177040928801074378705843457387183912989486193892946123960220566286011150259135932067721452187812128546810632330502928411031478104253007544788467139423961802978053978906944309717703629055097984841318707324960491984212274232779708274391780651499316428838000571690887241726795300713229951445622839722289663702355762527714573942351958370785130503855617908866172992761409800604199964986346232288094273333878041098589401536133835545986411223537832628896134072991540427859898167596082028003102482600935654620645107817826674256942946823577315540681349325069600283576342108482147110146862652258761892656064395402139001493113722743297392771856941016891562877152859359882905433298169738306685730099428339232680165321859603862140531617236472844532772442184715625086662340782333944479539156758087298998967906480599415495301656714762883951835252449490273616082322041073241494752535570125853843161075719390597214117057382571876837508151457706115233785874078476796455102976981003942646545082605639764636045471836113992014610226458236812686168324365593882499575681637568632246931347338232887631823722754588836614354946602661987677034318696292415480464789653436888706381989145449716083140307738105409817100307508335822858318107079198478020026480220131447244438536143626761460138828094156860740327558653530532172948196084252702534150625442600339459220427364567312346169930223180708448360035597024883052102888666093702544633602834915453663683738575660014619396673337889918464441097372703761196999734798898098533668328043980668060911443055429769450962966243524464015337132029753585710142195500956162450054238082067627271046123410853629179461306529095713446293032148005086173756539377379381247498378510494591202597732429983133099195324559569799578796652666559323495047264260586225696198840006403152134147489741250627562312709069060915023063239973035616881069984485301553501773917034477275300716211413729529782206341553607961591528139600322256877589124267220667099354629252636743567745995033988350310358346124277312156131224854581890441644504380906059617351967014781627554888853143695318291171728761084561315257151365995319374284957084413771189942308913856296388214831406629371705493009841102693888591010845278915761224822810562400778186733377589712520639625810888494039013247774642802127198279841012589312405217999163395277133496708036422388928689729676230858787391108064572484648333171062911920390461265011104004050826978763760604122557131768368287829164760335289102144665444341272736739192617478187557514313341874144203017020814861262211879122844988242040559964217968883340525733088305818527342286046566541931156564710440890205047490451110368120267761784115371221233535916460685578675904882263612660058001905277089558590271588561951008791326014067883624539129610923832976679291235592670934062513875093904423581694384763517744062018575967015260921350456731153512086565177722279476974338184125532211084562473989820266531365206373349044479544252074348787401753087605330187441586539047133451837341053619047477272448673640812372858819336288162772135134815602035966603663517936060597450832193546732991996650018789534158905990318448123776909904866195227133391410314299325686370557514027686052898114377306281600988491267044577509160589350663740241033490607682628757135366836426129194501257610730249543116846927517201824451215237883624571138127729132091689242807563351772176363113613624957501375549704601066814884784832997985186048118220885220337030272546882498431498782722865652761727158061640010629548281006565552776131010778226775429079310593834210782743132850550201888357108493632405486146151152310100276865991498472377473409263814789197334068118223803145018299647931562341713730010083741439020830138239532645017296360896560885412172522013688956908562218768052047288398670649069613135777557934975978087904802515533102955111008204214483822105376910581475424091663892648711367919926379101615114174372036847471544163732197125337011117840937568518229010073866113582647086277967223583429298940831251917128530413238960985774576142676085402377812503913494997856578905139839964711163264342497792248929609352843354821504571661676988121955472088132329085839264270023627950251494365771739806839589469689145344324294989135409098370457646031235058352088551920677439142060339457796909357745204160619730983690218471827824626709685501548377203615224115873493443205101920279788232619107137695008672035905773381209177256826790810781026095614624927712682964590528147054873799960729668936459659138560238665403589522524247903008056691653451798932298117535384501207768179791576588871297150174352836328403405388871278571498269355789068253656660010358100244790624945702396390753356606796812938503249464360325530058718833017769670906812816190642668514267657035873556731138022969800311965171991183005937011290426271923205639082056798156459911857714144329066668745629355128566689570527546888408559586167065231442672174814888483259183081299607099027019743001092164472910720930086544231529199001946944415729164866464617529992049390803143763866731015426436101492720482570406061951368596484810546150076152941737463448894539454593567909990943862975215949331257692772858489710452058600013670929166849818880840129437243524968819140591542387967412701723800552456331044903183542689214144458704075454308574136733872936692929145810200289332134736248028717408067141960954070698125111599281973760855852133292397130981127694959689656465052337251837335335422690997453902456923545032866403765095078084697281671558811712935569784739701755671582782627237458723819561268830893795014698762286641121319289748999739592574030402703965115816400840677687713478178188667745536207370433549119885226329475892669172028928055617752031479008927495840710147600648834689378848403139688210585972563791420585947578344670429964059287238513249203281347689416972402648737199858147746882194882714966673067113532377049248802128886750194385399984071538165005683449654266462403074499917521047956142327905026320115718821424783275481324715950680434243481627661625111836804608666931016642773822599131028835151841050042393509671502081648980518417170551851754415190846264464489621700677867383327938007762392914463079955871480889773452324363958522063511285389173691269560030623579321464332900856890947114819052062736881558204436636304489967285596842800086182255065489461569331312806363279305523772209761168947233914374350662318599919975655592377202180745218799691957981667515388903429247317249966190477353985948187689034184166237055081025876661157033307508759746883122965416992835019106604025639935445170368468086175376356181781473871572884170022584377437600175387711533035400403170518806205040056645089341952460366991900421517802376624615170527660833612365121588451415445437950944836555539337307436072583920240712181408593068501657156731744128937524204807015725505642568017016302735868943872217579963609965703268229217937448341655953014887073468122735251193768964685982296758833301909477843151056738252200796541436497249105557614979887628856121265363915453201989802049768260583922999178341308718954929221853771535617937069301537300628808135178544307272924664202899164008700722189665950291338423119120470665942465096096883916776883753177849658668180017375510644451820892997246943565731788857214030823587039161989510177498272893750754251644247372490045675515240861726368647959459471993561144193613122840239984091492738719436889548639540712915957596595386343711150366347915224672917466071663342891877836695346973591870503546525878475475503540979465712889102747025577055430629358218451660424244404901528049001178034663503052440992143194280154942823806937828873906336693970505188549935862817884683756251139469400996580936605164302922764771360004739448509996821036686414189611122627840285295167027030232490077466025417706808128704979291810076321709435086333732478658681547255357571263835728108016648748633907744215159210234911177430034898130900411218365813579802232225818056986916030093735440640149592106078576190232088221440493803035289424736318427569903962085456261733913308282979090182706129944134327452797193014692889331311482381091937112474802929044972768042696650086667806120843808167153933047202547636534595034449555662402045943087377213982972648784156465247148931703658349502850596727468525032712248450739197309053883559849103943464907850620064009834708923025285271999749385474067400778324158430101101348479654626160369252902916170061146487869430824741913441120415637614264844214468109820174430237362265016715052492871745126607842404704910887645781756156321348019478207992600431147899243545653760211278423672403995975937865110226933367941737996479813722648613371366407976451848049599841421013480409090172756352389882738304019429341069679283590300547245080419094149374429866905030716120377126853219397161847926875960769352425266078522796082511062021146569998657193188682315322319943483086634394362689725805198098781402649717168473157917001552056053604342335060124872603780206630609147547059222351663978156452609825002493350227466422713010609305966071920982702502051127310839801096197517292853433637092510259038301111919646054232871886864363197469999788644620864409062087011621380131021780398000632250121487427410601802472104400456483996897123178403331816331680496694002133819813768433855592109932211104870107695232929494369470244282358504803315899037842294969556778709023719053858792640185312006280598246723755537698622989960135517475387304501746091454669744845739244834156953386019029385694418886254672055705204446375567209804388272189685400340260301167723537952357903183884379518658933552402747447380708788245807921772052979653302227806253738566068804620650284039298165119094709084446666925550166643491504539348712556336118142882775854481010144039322334139817019052591272187609580059263318118923435832558888483139400704268575378474784823003370551709359865005136631099882887523112455907487890735556244943897524000801563365506085582365274359673028943183259863782211440014233951527845990612830495764578644503874989264613304482811971911611998300592451401266569936590846002211039030157828837783640948461356752382390979555274558210126447969651299909245420549449712302396966488633352529961823624049407255152026328360542298487911752042011665289698932960398567753013857008105330400414177458092840401742016017052968891636505250535902429674481955459002396090748360634845001569348789539863080118987836550573971137931044203374344703597882524306016092904407944208602181970779038814399069998082197697525673312527607525183217394198346992853986330767327488718015486616692337624529413633300987000251101661156899906374981904590671700002489216940525157251934153446268243169301246434908401037141621606066769811011443985789416813069802299905399810271655837810759448620434397690438789782678281405886880710752138200629282243468221835153592466938623923929987059662571829391485325401840835959717700121630531212413357720973826224127187862207324042394296713366774294436552628668587482738465499045218956547438137334834455142239652349053430768458548744518266836263921059972936172733557638339491798611865072417413713932783834178419707519506127620791998961722883744991375382758985283451592047506910331000982201158537118525764777781602011993304580321468720461867225323656517082117197999831626563730409956898844500735832778070857830024076251620305961278215228478194781308969299462434310411699206955434970086619027166615761406169681419915313663645525813798677159833493862729150292743551905556478253372389312292099569606764170360979191459495388468728851297092779039482610291040988721277643189500864375763561479746125755532283679732164676758056905061629249817537331821976694033173015157784403294399770561451921725626915319307280000828046131728073984933544947218517160450202186249036492551181613007653805176747977702487832909962589951882633923699546934944039811634401574844120275071506761911891791071054457702920404715783775140407317086955828719951451369123106744122629464734872898492467764229322505470371466701510740226827918431004234600503467099791211654624989392367526665023825466124359227600867106595725458255611621147284527024502865307350490715318556628796133069640428239399622498501412813885866756845668650813566347665368527336235456764253176791121564346867132763827916087193791374613845624196963717912309892690801567440667450142733645242102044888008791144792957926111241170167320967684096566653929407471078033848530746123886403145939011647826477003823683383320038595335099061260148920638177676837898997574763790980794000352192304323729770087635163272501027998120930905927721493864293157240091676102625466346590423683431695084449863501024526105768218808376252994598327630679211670627585778532983673435158188995564933452613153408503196971264895789416878731455008364928363667114134779472157246034601740278100893825563760768314381875855765814986621401544504668622626260431150079482839854218089766139520826317266597313920942771852444308023631537941231096572769565932192724684618225733163561999096126928860373943793943505431035450160579444218471824120842326202770353520103685138097982336391945599714175892560036936890567281935152286435812026986033940427266045879418563635727983838339319285321853770579608760705854851897351573287743457931592712404056196366995478643127813827260661064843259473565460031843927224461486856360917251097140599888376570018720201622894537912531587274770116415986817073392224988081859659530846632720360262315605564472443014509464764784743293320527674781905885983552261898840910094362029163141447635953419697773670625782560182332561852810387498992867611767434293284115269073048266438587659436267334555253509426222590632567913714483373208556266673849404736694275407813886301896675754839138705159082804045636658623809217269031943911474754910359334091650617154548634187907716248667140670476493830743457632060950193444518407029467320800135128275766895125257062096941691927700836887377460775763928563376793366515187925359536658225795188398466110357775244821442128364079564919356544124149772804379430756921745698508385790467428757327034323212414345397949003763162367382069526414906263937337495934053337926368227570430953896898037055764075943028459668713011948038809836647803829793376916964701453465605594330627860006470764563040890392889303960663737583771075802818497437971062797001720831977127102153432048509958059703580007809205363290052956002746425344133645280535309177121609407735374467892636663097799046037091346986134271219337380620535922862807913447929812068636474989768209604260103813818560297424779629623325990054267764017236893458403867045653343057444314647112808405833036934228465453330968446522905943044804306369110416081369433858222013691114320027237838565163796395350512904437169096058720594616823353417724441469802793230537182973416371276830343174156273574725239089961017223943486985892751701350768060723632993269134719707930423379297458499476099401455205235768568927227376648440889075846945040943815014858474916708322775562515623287406949593154498063698765794335615921477301694588765676704131288127996611723339880383913053919173504158223292869373066449030893265284203822625170303797439750318624678580484599047222616906993693287045374694371904763690742242986680229718947293507186555523815200349541150884670107852062220228478096790611646942037336852551112724701063272834680078497785837668739030730984545473757044621054445597062854546065776855332914728965399803453542578658061440363396485678320616987465060444949973867173503578447854764915602799088376847075391671426211224505943773027779042208701069974651145475176514128610627341712322711187007347295921410889308369321921311289555574777880577565908445975983434518204289429533523454788935940993358355579381473019190055316432977462215538049341014229667284475641797416915035816723364443222228146917141795740944640866574796536153504423269321335407291177825554520448205245237679980581996302877829602596773719109069298558188533297594280802061330423931102118574600930184821190214833545234421395057739063372794828096262030983540490099163879074641479134172650455297203730118297875779771121273318725745768315974396826842805393057646249293469273149810314723337273982966965067134029582276714290093014635135538315009507406800094688793766579015575889045844724550417160348478555354670477462096048447009444755613630575287222867134967125846433069293042537386465920596932891815966385944458529906741365634059888729092219371929258092791329141619976157718665207563507242239692011595350124606569876304424329529753505645878456549383162802297055279400262816687251914744984526294605476572071363705170756323615991829383366780375630678884269973910121870747206152160315970945168746890544971914108029835362945164128489719970302877956454985587378230579055505889289423805156577557745207519032496807860886757632376062786163336656993519416160677037028677070338872389871775773226870424356679960904026457657510120965262843134647328525795093616953673615089443425136716052414138562531234711662806615665511748912421522320061486957906652401563762400095760014330451316517469930634363473789414564302916895657808234344340518712426630939536977091149232071730406422133851930718010201911427326719128506946447268375446786720060591358684075431267968706422668076384678494817947267045988575786262206583535661824647745082456322821311507656341508637658420557186497658726491414600755033714559592415368875227722952100461198319398156875321923096451900111943524251944028192620265393294054742427018675987976498867130011622455010169109979552713974657596601963802856781426737690477576273255701489634429564426156574789290195762323180816782915116245664192845512742083209343148098451611354113734577611354350770933308330379916968958954080360560851060433113428498270451029119557876629139445076618237005095289334400195654342540398644765642879333100745938438164503840123953041725877486247056572056606354000494486571705850418453340772617846444043362060996175173002185610609454631736259928680090398757196970756113525542777663578649115308805078946979010678153423088199116508676850520688196119709605274115884719291170307222032779363063292499674385884624264137967770219007363331558996481792011784741862189383960124742415631143510453690921667798461391412085169548816420419773250108437925541827136578427143672619448613739288128131361503879658314233027315743034534871748778886461877753188060241935478496707434837975068763656594163624185496964274299188205245329970614880296142249657460466152969580415367748152418921484925608968465845635809155475382852989815928645939643513548030345585774473694270472564018643754935184764854476717455655457020350132773555077997525487709765414876928547109554312359850201282937752333560777810607798579428216437930807132747273852296511607970840726632915330933617176715997975377272287299434019849856948690544134357555068309191421618312920662399968658020525394668655763648544420680497762404154859258787585670242581431111108073371785586008493908812867688292799347089311246794435171029418920013226209095411118589532478270444583348857969113367225787387801260235169175235621470567578939122970142216684449767027063068088843322372102332720467497546129591770034873915632599190182190762691335777343485345415642717372455461910490378688118208953814559154490366542236526892311237965736630113076603085377250134139440299312565709047930470945338355974829907305434769612993955295849327135391762373984330168823879917301084212477264163337349093220272665242210754686830145301237256473767411256809917996091474290782102193863654592357383374957762503529881777829850022339557793456958514317073129813534704694058198597852369823152898245974074919211570497395068299747175425375347777306379912670711373764347257768936558922527522705641681915455895856318567701270031901692639554408308408672361771971643866369679814376471036766939519958498363521960369572795096636103852703730620843696215613458826230345280699028349470653282284165063185920573288818419405437012298498297952127761020291133295781499725641193537836977699857713970635033424077868259585011739077191558535308264476145184226700191271218455983252540877402620480856047325678214062391094503831016970077289351485434393314605224742618567603164297525800762782127443583618430063585687500373264666667753185450616484585132573096512355822892422593417662155332575643491886022432637796179069992534922326472654309709294118204404676017825304861693867631605496092607891281063502893447786052197939689893892324178522411475132861036008619709977940307530199429689272507447856803823352289271850312991797099481775714658428914477952909276411519135151543943165860768254061877853875747307383806998592078184658208494668238681535752963940378489684779463138330750836831775700172476822332488553988156798632113804883609171855526042314816090239911471876112238480965877955118530374609277841131671626258115468065444582625863317554965151042449806865954130277960796913876517970720580204639228169971712160013976310779718170445260666486755118525332153641823760552166330497712441791246199913107042101970336579799666521931733532748853650215799237146063616162852010568636113844875778014654974005438688313559611247430965422760660611174300657608969329749857044522480969063205519614377696380050149180051002255844273409240533901013981560990879481295846948822178071934622350497928600945724794223895598700842490074883412071922447559914959196978774275929099096736084762462962008344463045700845205805770144091677955660171720793171367061219187403515477394660627541538898626272597224914169601847322116543435708865073111682388698530638769246611428759152982348595723787660007452288708985045556646131300342517859552830600659689832837991115541583089970463633209515031210447302052828477501448892809103455704593401348349170529487559443155117751830188511581717231139903278266284460428705453393299532341247251349997109438808785669862782509629231771167816581958343477436328529481504291207680219907565013884621883526495191343753830715869923083923424699073477790243658610744148073364047271938061862103925433690404036086318955849546714459464490228508309494441109727026704692937380994896900337456097068316720301049567470305428627436024411479640970994138753153732064302667335183690216099152311120226203764141503513622303812091752970287214594033768919353542527577783417353125989726626280085284920573444942566116790759570930194077252165874060664408258254049100836059877931637905262166605983545566113800424058171951228442198339235156140095165478888161877427478033298726764871616598676263068116802929898332581870871857017996801903228400427718071941127271382181453573273758448081459056713078562351240248807947105629663488607578242187515349645400212797076581445853592186579681137542530551609041411997821931118208724455265767651106739372982176680432959648228000941697598279505648916124024499229340639244903187921228150697498465757509782792901467965083896820319006649084746608331442400303309707039427436526032622512813393722309260096390775956664415597623326985424641364015149547089013912980782263475591315894221323143107255900287436008698601204866302776770157784681100288294980556914651790874703604505065938475342956563121566715977927330561205452326040283400895128639473525240078884102191689928060641996511545403668558428639714735979141760056590204021357286744023052870613683670005184923861676528335860945138020856435171062763250570255537964766541305164902226642617992889836005988095110659879788617290249756376174003526118384469402659627855265663621899167300366925521812567821833653592447826065529922445979587283500235885603480205299287731367387985317760344708574480611734703430039038607588572172593772861490289664662054501133951347272817492256131210742888269214363794169711777466764050651435336543167424485275388978512771159532952027515580625183980111426092554647127750130307577760390186925919058357227409591960554223111414317553480192614717500214745005126218345489921860266747676163955086654289971547499570718382803602001598026559447310125838462428554880819600662003341792357841877126384466599872076944503640140315579912793845026015088789231330645921182980326825696388284818014106635104947889979761818518556866669849950124762918103978530045254240897211918427922548216034917232143194846909660268236327457578459277338509813818723738764483519660969839363278805016320929955375544022316139514793863290157212855306761368263267046073235436818044312716028971301932320344059195278414370632872626401838511763299684945766653669376539678957611328193555091832714754077698201889715881521799384088084768554908178066603871856816832681108395279805818784863469847360577439537530360822078639961493369570698034258278892939410558007287261971973546445225815314877355938209139866221536625478632030117948982081300102898659959226689806270239112913051974584748294445130361051871032536222787056404634820240488908930814377379769851613785857500649332183937111105012047388612961337099715740963424803477048224995343603368159563670304451374264373789301168426543295537107622769713640139451755044598967416452041338438616361170042316038012788608345018688512929973807126056250785327662938001980912355264924057686894910648317246997288126104182255482931919396172493097727162705063541075939066094035808277225830193269501289895170414837197518409009144656790024010719008158137783891424918053936127466974314683208038684329655633792953935872639728792086311648584819223185559353044876004017760701921275120129597797392812609458089728989942756175530148053827358146430543115010761154709335330543345190538332338342445703976568612153031292205477470939698667630109826858515120185222494259109163589635187433592727206472240776264302073504321731434655530732967557163098401901229559723724701090540034779873163446878625548323422498958581331564196530365421875504409767007270736587797340765277512015904842256870576637995343972397951974270020742552145619085148340785664329223325558844381172614529998511769545791892062845167431171871571116684827324727702565063118464816107859361643680725888894309662899798772672449671702047339553342465623613888020003666802782666187741624667107720433922793489852614246119905305759412028911667020766349139147766335468533201904062820827470885998315618964263289163349370477089562667181416396327243891327011922459597569529338902897797190084623531458488606453129296726406761747748186853970968477035995828256143275120154758807377062535263646317125701646858495103598789957934856622459979008100561729889502287715162060296996659029896500713978706231742765208003471832157782204675115672590013944544392024584293233770964065922706026873056271382571709132402117334159491571510622112318673469440298192321649154065842198215804260096897078378642184292990358477304612156019349926125340020337895559519872632313559239416314165821842080730774078583125541509784162881030722496434762056874316537688262739042316195292966763088074641580691679379342343883503504021033055080132546222834192529514029461707071656955986574871743889588432628555104026503925296996435799944167212757845113663758050771909181875507890449846987229640587038601186234478080788246480432679006646932827734370087578613376473258875049648683340874104167072541194695017637708394016728335305857232431514161585561936686782418771981973660996769676820474286219489670523764704649034827126001776122123423305320288807878641132425899957405155871401882334235408674446581534734924474720730831646617002406331735281280802440759789054972914785798607123211231311674613051057836755385996675781616183555771403849327904859589596479997070095358094481464059979008734201064803787057389367519522490555915029728265248067256263757805326634772993980699440393603774595315647599436940820214994329984119240025266369053855910980564717043704432971480384135581245464598641824048253004258838199997551137958666846794596524860626962904981832171496791849817303536082718183326054251084304882635950200277825618477069074445324052034314479205513891055909470843950167080263835354192683939437213790058125951394692245370671333385747793717005221687629695803957270293532293695619720517656234630924694228679239511115273671728065263955419218339933227737337420356430202648792424251540913487616761262987965872154895159055082075169691255839484995424107371406105041980973222002205501355790673142162901001384936887423128856168714368384136679999902653268054216454061788226681887568955478863862059886699918977051081051933590952541544649420402899908802094297662915817599912582068143346850211421297895866606392448797976397015033539299271637268863668435344496187449839237498974830187137195791840413614700053283619541368404447387347502362780756028477385023033990451715998418844088036875687655481374914384870738659277470772485411283261399438909638733909975030466623652851745519658560845193228490415515593664101272498714689645221901178998605735295446077369994228883443141832243803488084556431096825424151573244340827767647545696200409964365511033921095564048265783227100433781464892810543099600396555843595082881161252858002387328962801132807206721283636036338710924353798197847721396108267827546201028915561037224123938458300064268732136951189830657344021701740486597119749825671844451896600013857477078610396011534487322410164987534608038377421293038864003174578859684789617980712347733999889501752018568525036133943665014603261020520163047453076153034650012466326715379423976061184998219842546555193264502129935969315970510976571812339528045442257198455040055003583294903170007202155800670887347004706328448216499407819454813170089498567420644954768142312716124663074500508952245048693931960572711272702123685084084100505682416136101046413396625962635971411728921122692828739223472635859065854416895385114432712279924254421521369016020599286501994536482243367001281971731047549539112043507512848786321779229691349038507185259983995632142240282325871716120361544697535330383555301579873599455443127970195543756096355942667173066927211007072512103903167866474367979318190546959664837914614168638619577252210873719889908807618520557101831835321386411448907042197317145484920993591099536818168301824252457331521005029657534831158614424775576147333148496794698405143475384514926254365586563257087959255602301612084904703375258328602678499965827084333036908748573342150464151114079253438748571094234708181459031913918042150105166734009062788940118222108185432863120110687726247472557794298069162437654402274869975604986547266933130118016896818866880501135504771640499788209454681356659836609074166422854204539033038686219455981413055282262708122183884005505492790545641406127437844456580153921822986086070275243206732421063350460088332431485766131362368204772033197180415718872991797450698921625703246095297076064229912612438386534592049002599353724600706363740721782207673334056306782542414558011309262141379510020279895832186675927205158163711491984127563518794955308985685178332588169500535630130064279495081998890917157973162784034314099208028654759079211368489255663569590157241134006703373878690347147395972093825486281317577590582507747559813340108833040068522899981421481236755788789148875413359169429289460954055098674917763524618155927965151141696983012619420490735276943024651687403462485838895658630464129521032998826990189149226640350578460218303838843445747891746621942300063840551957127968269540241506089506338575450822581267553181705770874620326430640259188741243250243191429589461000922152693988132015418824481652720757309951064031719293546019512558856087566532717926824697142059967613234440628271957500246080112808815657936084228114955098210770483274616945718866888449435281160038105739529865946826849841483828522892227182940743435463609537319501177494681463262800820930425454255760831120424405288526646451961079043953696082073924073336288891832553884296432694118858581864282525606884505632782049405806993340952429108622167466749198091091700200928452213579903081538741763404448101148228244491157216287379366636453637259268876790854750182718498809223017685652117797597502901938349191196903382006711878422867445173875552053540132471360733525022101866017225109920759351516208390742199819898770209173221773312869050583977422917685981183956930951490727632422835831135342768249559142663870248794365227134319756121129395654261502015803537728294709618411427499073003956233911611448628176951339928306696990062715119816885876956383084309967821160904732326343720939101328457150009885412197579456314995525039964100785062727940704022648770171177180656055574456326747840480668721415175829859012089860228481524109880761473808344475006779343791297461505219140461082420512504611599203086081479575318865627085536709973119118629855120664763218583677340180132329884205261203217593629889201964646343853193538847224259777005513256608491399990775555755463964391680704515456531478419557856684680166562835134042760453766362753646242045840250334623825853344994722831678128234836370354239505338582876163203217085814933526485782146935044548997193863293221760239180795144258746822036565663828457588310088400514965072028939506181652461832731430936158173562013827892112836514306404589894328928651674344279530783048258175397308726464217868180544788002896241928487125548181607578603077782023502047413533860536426510484996244928399944371736697853545891250174462994742070451301141589605330839784711166625330871579377075694556172565532233862939943816561936523666757814293334774156614868919851345155124314286649191947286915437922745943175172237260201564250903800920879446856492186769396088632310585630001717295306972171971506995794622179751063227918344930343537066917335482902758296828595743631666095498421189579033766427705691252637441475505800522561553708215321504035799053436032025622660354997822990120452055751114598522038033089953528136048652336678960317133946097786021805516220960438811311880716072261491120245843995387191616038135986809519705184139385980401425180318385035133505951343102143444775466591200670035776654350926027136124950905226123482047500862683204192512002993912013325510666311073506367563370337814096815859992614148093773249822706062675295131348324441535988637949707725633447486656631317124702952684249982862967802612259737114144060448025519890190750726726235722761780796087690011613616783103812037260106746589728352145802788650034776820940048075776890464662377911847804118178028281201964922526620659545267359352951862989427493173926470796514248722331979186872668711522106180793716047986005942016425682571189196818128074474921603813173225610262500440428153900015665713609436574250010540637945512958109853055773646335293264249374844917973952894305621872702990832724003571807245365199783901795814696313464462768084080126467569560938677579535030262432914023186777280078158231177307752485519913941262531311318740584903852892255098971649457085976197727102139757613450671497763781998196417021433188498920518240821996825364386689869905872128635443876219815419466854658567032612241802277141770156302946177030315064723958113757849871455660150730606952944809016080959346438814754771472886226644888989893714672045402650653843989771003391594009812487277125031284481755589937920033375126070657755085569939179799701537447704558639088189913255328942472626991842841702870700393911633661779863149337105031571263560134223097409173367689222049574483166181068076502902694419076099788521247786226462268395343647212436191636777464601800227962240791040524600311759587665572925445185473332360262307289589982447427331854207491386802632950209819382909303871254534160388725418230408850690607912197736074328773669203989747101356862449833151976900748494110319339717809620261652481376623373956937554439092927469561471674743707207111945703133582071702802168872381166520834765768763853880691091077294288972543741860083229120674295801576531854070031881629216753765127581986310898002903933880628000876003789459862887712242709628295948293362818773671382792590928081660252607692526646159168157204904486078177989690692318290621324553050880758306104352022518046465437541829106786623377785769867586515970154483499439717892512230002681037923604559053416216474546374558291989517995265756942384919689384878727187228584562422777562676227897060379158330502653184970425138235864624184570115655887583801383698893249125696888017279876144525030145603763973345997546240118592692355351320894638019689878972057908412714872189725930253067889060836662886116075327600943577333409114300410097902480815206121783467378094964772673206119167612629620343522560418921012295203536076838371858353071628177211548241151739798115679936557070509022953136373478147029834281001667582037305718633361888716224686972594065487440427971375232533823555646190331338855607454979856550077620705418998360650015891178683719079012195049998352292250152347480697944220403888923994220408737668090660158158304048228933818327584906629213259532298980525403291219632850452060018873722052585679320393157418105419117632725961853637498258608997939094401242257712670571414134769628926058625226707615235298125151387687114526722816798161763103602553018726282954099420259552992082093945695944625835737747352544872529162588729511116614064551464207417193624376460889244746194494429685568289331182549414373378181530241277766752159466877647642732850566107105880538419540863350344416864524816283645904973114945079645324152715916701783458125203143136298333451871528008786785190143226619185291553488733472563160388799889253686105506998812086484972819244170960346444927441209305767975874680452190756644532310952788341967383844771207520077197574637285782441136068962490304866273333401787532890087213977107272336874323508714181885034891737495861129388055332122026414383074415803323456463076298300437738291063806918124993076020315631730304074388026217861849119420517467288898062083139857430127947841327620204992131040205656842620973080974878873299638637153020321176816684372566999886079394886886049074216923706470686449084486941972305314616367180064598606431333172541995462233696926409681588592380680374936813104568655908446557348782455386689819164714334018964061336712144366435109393864530407691378524144783242209615357341216819064992835934163791704103531246923398055221025580999937491542444517969581314971578306267288793588534370456482424222121179339424800824597874170944213206988129589360177381913053277386918764218021266597048645357541990625690919976443537570811215131748746388109373809286610045621647652862868863152903526994022459060359704977475044690077558087631208724361604184116167061904811849498566700652276998241105702915225452513181165120061825724832412217582798397257124760637881906184682538186165139803625403083723769241545863473099803301786312226416199885350597796325751427809599044030742630124158719746427666046683916870817483297231994135082918919953072864222368771977057718792028282178144990817592913705192334676420276482211913331459946115955509777436370075973174309914491769321125051975895388993970303805760037097491146526789058477165527404432087917753344489561467530163545165196708248427603306666248327393656585541711640981634576572660026218777513491208409527247205939800794092645100238466218931790561587169660687004483127438010565997741580792763218865737081812478908908640730055652176637151124527124071612613684495540933380591887762988724272348452767627760447185672162527561648834566796654695544712539361662720745319280128257491964165846869098938187447143693749315041609385583304283289357594795255480168424144932685383996852448602592594280287968981032397209829301181609576274758197141643312255424853600860073159156723323472517421981369547455599233843314029481529630217508270271214284714826364852545306145935542953681592427703746949841737727953313558010149911877307485745215802681424024186432014912735443378070881358263219749345355211219930192887750393104161781253018186962895226008129315197045631921773490877906639923461170266986549787518038904104733319039418581479645178788500026995935913739168403313926228383223941236440008466938487708253256605030057194457503936778134346615641991895933094707373977807754754521803274840980865479950371084478951232942808165669771115121382488280479033309799658773344859841227376058135605744211944695916316750039839428259498353942341622103254661406773537138835396975372327891543286227991110068892286718707366163374973149319156637126652571001501662058654616477948735034046834812583456919350964984927216145645353591554399933695584872424224458609159327239463645526204203299146226194145027865424782991686545259848919682299137205141648807321113475303403740756959253872682201414073008613180762368869956803191762190541616988546416539161484864090289872007996680628528133602839881243948284725420345035791369650314268010505876255650047544667850778890772703628728843098369839723914068420951888692192594725091880807909115372063985046650994607909696973970308383199427142460531750807883710298340019664964817922525514447996036128770271514688330102370273873053529175711649183861848135303518497488082689719445990842279888981738886969185901832233669219820524296422775626891941340360581536034300310173863088786425421003285310831142554086124500838117111103998495790352251625928055427821507703859979616093271481400265018584246954654754660741586679843199436086071334639422502082478274696105629213168690173068449820347428922593476089518249295940444913177721905673739566035040321323044826452648206076874942732933744926927179832143370259056861365825930470988078811394591912171944621822536891221304914522214670009154392041950610581567766977930128686195165502108090912141967520618901396306496879163818109403621266395564223547348013272680763811901250566814110660225903024155227788850278828864827121368675861652366904894450159930131718479785400411839980020417442404436118024529315703475421318214201137117012747745657500316897909260828323090781522079057573263108228665252140243639579030077228198780780652630613009298048503143664430453372101049251950845993083897690676105742539638535522407252998150011504505723493911792710647472139131719950272241633231311870653565766089249120799793271309864253272740314041967688461578416988243955545509378485337033576547586787992507580142758874335656541275341268022451722773615581280037507163918899553451067001264421842541690922025794722898080354596536965679662269825407299484785727966041849826153739892357693131237236260687316756802434633488609499664746610564320947412215033268285391594632408593502438558877169932438849152522351574099461292875796219172725936421870363024126976744970960980288612258414071130697090336996928621189296043805643287446705988503213983197562163194345827455916005499766851902645606378493968371184619658265067430534436016583376096008240966453508097965659636207455914225095479136614712376035909314464308849640514403796092200264722074074722824104144011881217320752178992835556811252637313425817940350639186567877725676457245467101479503574242816805814933266359433207127016944949591085529817259121830145320554980041438850929618258232268901985817398733573150218553656015557656326269292099018928590014620265375827578359961578286832928703125043896270781431315654964209158337955975334872378734375646061178411817410117543554415303598427170176721757199983433098434770501244023616401142516019306430493910732997178337613612591727692904703965580573100651059775208662606832626393276900862783456114798372180789419358740478228061274208994787954836633268316104820602314306922846145037443115562568467208027835603229786809145030864611117684592409745745198494386704271092103108255011373383403820587358843299831675966683865534223140594274730370789257736008283250210826014823866538433189533125994205974094213241368353825779033484196353025699450323972775200948975261256709294847054304982465118415996163786148857008108581191265632050758713685706732673715637576803205055009850432598525394414680297297941764664244892299552080654956136701826039861322215343402365939395475095856985010890278451037628424098606353683781759730533069358830331032127027667952723700438252624661042649617886670945922988988633957783782855183016342485053214524857540508954015307674921277651830760636326911081820520058302115088926946024298970763211954481999948060710406096917336581269601564816180690563929599755471547611273443711183692300096273379525408020600905098754526227969810038552423189049731909359051143197898368132832426510287043048115138546965493779108329086732394006634459856456041774480260857117033725517118427269323352729404259480423668301390075588877474851345631492779384002528977216962992724375393182873539446640389735437170326759767261830603137480980035333530372498128223775611902142517200161379283947087380595571508165191527816835995643773030071038423572635138645383054991721104583993770509523847117050365554151012714870972080428026159023834139144156690505913917034299561993340642506658713490544063739314889395934028756373464004753758318858258553729636427016940763235172790488958972288746961418823166957038080394391199100585145671698752601937410207013020190676783482411236711291041374987632611314362791109680029431038307267371439495459217455399210635243694312902599770342801274211560694706326694513723996481059097473466403234176021695924755077167775836601424381720345834989328996152957160245946042202156808860494076572446554571934752131161437352381689610914306927523391217996879674419975845513045215213424106329767477336837218229975250665603456969030028234136707969859406984140567082836807782846478088031767727426195346425606213382441324209870278877565515059014663600619783892567449265154178722824206282914416054056121447509498485831793790501151578157048852776203985299210195003235286801391151523947884140578166675508770175720539737927293155772817040063465015106924152187431764696114826576101844695196899560019222114439934286589601003140038002362040568281425297998032582587335645003687654674788741546354683491808230348461808444458370735793632759098681788326493559637085609644634332251092164644853419261789353964416625632685041120886452385545078833630505085999864926100706765769679716811856631430513925151424181799496252646859083721895022091183181577593210510281646034361168087636913321000743908741959681949189955343849763378206889408232142914912675203539184229782601322981552449468984247605682261120727470667514428452197467313912423506768898737424237805749268866677639850163821798015715752876590241477873502907312950283858745513396714814130490142787121802887838614888614652806406575550603901048476793359116468867407223532030895658660469686838523300112074255035910623822139493711201477879462507007549915302803837684607599287450698276522032761810398469562426447772281335386625803266096805763055982908536297199416181795112354416738414367309900835904302184446688128162478034861604422612910075815518401004120859135431509757436718780190507816305610858911092346837597215724301704179411470074751495326914371907355807740212701488442477384247724617146915927258358443824755837985920959793068516828655115857828976808828506198034691461720764308737949110309472085825229937112902807089274182260136361836088926195847747385340187156553788063551200092695187156040712869469832987815352766267836960970131679209406553485924903304984468066652378496571928529056991874545705706822883312680977839686377955142436317190416535023795425900255750443113080262141950815717228101983569196844066842751422766835777311712023126834305670024489532574215874759842581461337266997780156880981651100741434897753150075840974261484485313046174607512880389990326476385104907376251098866941533582714611193270272256231911143220524486327232361709088646475237609236391623104157174315215051764285601870216112827585251354898627270766644673959081374704791042129791849928958999933690013546181684943238407163778616293156976710570788331927825270482710706368168540431511965901648359585352301361442732755256033044174261456091476028888521718141408275471061728533234056885599079517207206615512077593711063566227478032623206105600876565258077852708049103048237582551362411482255918601735367839174533420220769284284073672219940174604496882694618070259792998827526757162894085334950619899086482975553707819742109100334599316574059742250622513424508974616518904793307488959188547973585945106930682543539367485448309901226940179579073391420419417579294077232893826778586524094345085462635450487825966342114150348389830946530734513052984907842102311870826447805050022064800284374963056005367084442619596412507572961109676570970157180858595578659650241009833226810043344581895710057857044559710356555659484319968620018770978211538204303099603405582882423068792178312596757683292986943861608155671379119113118047190128244955900757180437372509065908733990919949849161369180647582299313031381814740078495486053658844494014063229320008550941991173375126041015252322957035217166279367111471791373603380901191085118183228539878617053813287516123730165613017134172727912947566925934414071426896358603176187278410632965394334020646206196039537431991134816876868237657978161138071873511300982347746063012524758899121220370288822612063106670670504631152138031640198376404424591964073540219768618629514119389012246601252889230733826379673503572312409488251828118516401673850374374027473600178327568228455445458292084218020997532624122394087815708100874109431633608480941234814932477933294279350957914101380940068565029228720996221772334901541995260187031780153842781447759725005541827353751163956079874176443617523882772674130057060214605442999927585885119732695779550837415604528243402736744719945327771895831305057877429000849635130326002067535621027807773535397010768645298400629417001173019321136092294563534920555352534565257899602949207003906166006569492070581780616809896367059337551340236608156276382881732011964546048706765349419417297931721288984958711321103785902987357554248039879474235878377299938820286896103410522949859476890006053558715535177605229326363831632150587627665312069180952790894034231546490613234471521009797168556206230761069569392945754543937587534149595036508567354832302692628792775093218990924619902720487285087309901753081280624647586355473134882580827365241664748198506730991679186906655563716234611384577630557389185821342958502813727697986813502207580293883104925052990407304979669805081688352356304348604035888707828196298285290105499875420155995531586791384269977555891096788598539579595815579992418835230332216546485173195195440026545678512830565154318571920410808568666101422606065045367780391259469980296483220643251779554462815034395193811342117449748890722673283688717913085173230393240790565189555127148239772582647272178630933307688898564218409063453599316033380367978670791144673005636459341031219792571302949018149073181020453766354301139614832976495274752549099792101919398536623708434570474924677995754456501367742722585648446569138331005016376911408396671789502447933098380136427076343382777872584564875204058596575710611642669899519755805575213041260006108953036607513083732833044450798986624603257933356044455200489080480791921258088085349380630294670848496132524889796814958771846805538934514651277326298814492460140012634965638848613120739296010619312353389961276088161733326203525763432648177642438388194050607347495012975398068854234012759172034767114800064625548217527483634909737496245060121600563258890999253580355361688932841421682698956947949181070334000018947409814917471925008455344565141689891028172426584500048232693148233211059258894937346894027418107718649004618099445394276667897655708875462989048768104768488884226658173545625538587438061936586197626749658544057692055271464103502873587440607431495457602611583704329578755806459489876374997048260203008591901562189083262548104131506999772204767139456669548105403358292107779524914032435498154757927609425304573754385738268887795402586013271845539813694547696195265117801905622639550995102846764050011195333866322367910951379630068556098466836668731489744292138873022528737266022686712409104525632829245662412484763869184591160853585262621700223089207991996729171943092292358194251709746663291242213193644939641009886198571090186689726317326844676076279504025546716941596298311408077450028923933787231027524231627955079759352201056641004549554930513635388368722301975397267977192829811274950486118088027543506010592735479981708229077032341160246990556535810647731788703517378222565680805659779844429993320098591474693375464334156583485177035308188536949589972935568200774278533189201776049387819518144624046888642294628464599422046581648349964034380194759202462817358234988190331634966552980983717187135692592448592078946705197921518147929002834540058675154780760838670986071051054708314075237393753060307295316326101489341861008652879062368280460995402243660285510312012966894554030100003868255347417855551200245663354046396058068332914818538822535725059798730094361768919103775185203295548208713437425902635638655089176246824275601101207989410782928508772154578262220329965690894624169088429712925342618316852106789542625641737690491095672276971423412489028643359300660554401022275411922331623403811698074428672894119776740312508963450356981277219707398427175683514209776054985756776063374909182491395381730430881019482935491018067342487920265458024886978134347968471143366745781858858378605504542650334158305541403916038436001744127843164725247365670693880487912636079739872940966831356557523134078504789511029803314745072542589151038927323086474797026259667428492203997757465351066977535690829463318829856611007666300424133997987830597659293608331064080617028922731545888550897901588824263565841103762223474181801216542488580577613263813641578156625970454169911796095519693181202328296286784351664949743055932728690829927408065706354294827314681175870139361154199113823995485619329534296372184772840854442822104075788769078558910150996077198922975594137427428657459390773457040933663110075545171018671737821816607737428629020120368991139672644443395784605967730681930131119593022969732222238224502823218792023491132376351213117318950564220274221264818086911783962744575416271384499250929323407748230198249121963774351836029637418247084453645082629501144340506884538405682091698147701648432095026855813349851333608712067971887228925241909038146803232485706567313568535091609040513075719770962945835713832716100459024483943668203840079838251048755549582951457068099961167473376325598750850911336153906200797796334941787508636312765652504772241170685429628458968978031917066435926379332146844248566652377155762583087800323024507745368564138048887993888349727471813777263017616012809281778805175747046302946042288190339737237486880413763586528598854364894374346173147882019220305304251962940907597253391290989857674472116660878792707042959519982793811303242889882428848603916106135836035636274641248905254160896004168699529432635923388272534087284564830144864926512334028250045581958278718787489053227156744924334684348671937166869116966578607762384354688836428567580073624466696972240670779891904749647628618490357681100697513441983918596003852005610539099001267916042429051186764168091856299361684753861637175712894170306709443973563152186768743974827049882349653155404439861897244844190383236904201706792241944584940853924824510418382783356519594078025360850683845568569678007423935840171937538625365781912320421903270503665858096449032994705714334670872712892655328630915590919759250118506250253754749917983666891278497481778052848028351279664485561381872364119015407348347129641797820616076302616260396576864358762694684093905389302112848869879877113605764763023454931106256927951022235511908553333909859551361908605692481651672197010242720666236125885070608305304359712648888955260571487297409913589557253000639589258933258903075592152507671399951034941390470469286845560899591705051108400185007370505233865487552284670329692560739242280512362480806990312531288390379547506462336130028052093478869746147197288233679868543710160199591768962465380338401643832196859755030266619602326365772670841052266577164886801531209185981441541013642778876851964170160228836608965583869568883575810232408751193598938967292479358454919165493039249786419705488224036131315867290859855636027188948699860329772257129023379920051295444222545915964443858994177203571757797269136518009651969723542547842109741534939464731491648028496239326776803496100715664311377435344363801265212038591591984948323168832116922618422588912810968799318092209928436749807115006470146403607374399269392991543249693873461616589689764322776167345303547096280822571160613686696257235944438004254886403072866854780543884878289594701876288411591098443330412831128788835300487175112684945724002338461188008252576613311582319205677816647488286115873983100322474233813986134404809470397514926322223582784048669859042160331524696480988821752320852624315507313728640146297338025007679065501529333815085940222494757648884936991173391142787391797220695858440994425277333927793053802618839137193550741819669280473971296335886892988441315257434863420230383537531630074032770219564008117810024251453198492307466883938694265221395073646961169370064783825705247315809308967984404273714597460803802370853093371939309871630888929238095635519710468692689121550882284511858996426478535090618887607953777835553574017084504113838795983141982898101603436696871022291625743068712710807681160608341375079973697309445099402402154821475300223532839425558081132761743809424141590194014357483110769035312648133637367830201280441122782155948426354430835206378495101728896302830408436363951217778855574195644920438018776894233826828880440152721533163407483564868669583212260465242654984502653517294382940142885837927510469935964132444319842021983314644809528983243071140326064518076939123937247612007593096598383162195768868733961091923117124562495487727990270658174767411923802112876682936205844384936814154422471085094264225804759749608324534662899973557976758373872872646916661496775777295883276884230392230221389636652273157530664739165139269506268426020373067627729539064173071163394832337831153992573229643750831376884689625036924823266835630735895780613526649682552709696791509518065115416380409128330831459310245461088487761174051501865493632988105268247644963482282735821691282970679055970706760612090757617489301677426871150114272976417311774798800791312037519302275418020737394920009209037605539367035510665780425760579451658318020017243214078336564107326405394542675612365959346612811905383865118141727412162382659485737695330079991092985271654739194857990743537149165320670645386996802774590228000891127538773566417426881873957793387557755061180581199636897454624499862556849180974498724171053963314360842009809102072644402488676378781993920609475270050674247978088475495243554603551099814275126179114729052933930678810372227485359090939142038001769643829935393500783799765254336827495509050088967521745319654979926194790638166893128657267483577636198406444039636651298602011577081449598510481541796585203070962226055938940266487179305356996224703945086039693725527638138670167814719691969540567082118005340930345678492537387485372378368967128102322641141866182824954405632986348406674131830247394094838697474343922329330012687177235973618775493221276084588311686913320946705308688583161596208387434787607612690185912135245004883492961829334974227066319754586559011575570817414643009364694561539923888492385708180829858392635412557833756354563038475418289179756120431107404727964352728335727011061231146235365605299450510871076038344100365938344880194545064210839872529427710120281735013631441540487643159437016908958466017869233351722079657676067992442208569909751117012736670309931879809444072439034021890965951558629664617785461047284276472181891664172059489111230367355021401778465337034947096809050568446286805174715006448441359899854184573101569140782809836317853987967075781462006264767002876385528537694680520151607973296404676674498025123453960238697611484900961742267875217109498988311944436490887830414062187770207251892858381934318871705138040136313160669034399968320294899895702649530291586069276410254927746661171222337631604452038861107614706758729652457785828471347653176337941990875737701749346071990547431722297656755721182795846653135146572874308022611413062688551109279804025891872864527473683789270981826328377407057739351430299819407666414965866672137031384970202321980258322692484120606753633474362729404023441806169324740804115680250744893242448222822987994140056799410471846870626846760307085939832780354043518323396012679649021133901945387105614424236821538179994466074706191373830274507327067986561028980608456197611433054010682025408683545707319360040252984541080673741064737750850880828897072508538872745002257643512926528856581417448785769859153227635134832970083614855553062083248564985756563973283691379697578145469391518665265959973164140593750561067423464028958975321203264730400365307158136185840389864804834333876608727102576519453595052200427717562043779653730572567492690284521671853555407086600599616070198285917482648481599115947629435710539814859356496974749967253284278666238607705331343369921133706258128145840365478075636288516854530903197864556138757031666843696415779519684891565004437284905176142774221984486671340533758595758688772106283178399414081312326974745960603536305451873190241232609927894113136511272893770942978458388790238844895417417690930792933606817794700162041088901765115434752325004601609481728431093381073780845944833524649888905734884534131787092767161553575705018733863903658596362175139208221412213507668000155473006959670242586564630291649823274193782516503343252793575400468247809092817751881583127797552468656798528968018410525545573833705527594445190804767116213778507706004842032985506220750729388452629618308763962911890739795330955727890615415385387671260754723371826779566771643703797095475506703348638725981403542012778875239486940510363269064726579758008197947522268590024582921958947020139111407464970360589432405730409025713804756411801292914035409218348353237126923331288526133236140482349182697001199937069634251896489768917026618585477646557803109104790565879073812048050022851788231292064696972151659551496575120694948147084776907940376574532994698545320215571504370693491929341872643288371307079128776164277032310074061710413138269617227787386316828535312379764963766955057757570915180604293772339903727330452791732805876114269155630322604421926883688497476810552007133904125519757838056714972012961421573089132534591302319426471448849120598306449557006645906591853649622310368063508518762293854842828206690846970130751978522909837535504119343776357168892560571441539104445117861722825543783124311099872028193019781761082000055894950993505877572430583884218547937754948147948614795766982544430738238203577450097335581357922248268249739290592348976489411031297556401107922501663548209844802190908781243257345420847769887029961018564421858137239305150586966585116178381683531245185409831515317773727272858218331088665215099746671115895897617279443726742854496227353195677490462999087815754704252790814612460363948745376367762600042943195822765985339712143107879401825811301184856843215261827847948672822069247214505183176272959122656846222514532892816328194450930843039021951512110817579511510067072057843379536416709322747917412264227712066008044066242824910394695314005390072730891229056192234713599919499245843547592648765232560177834309102991628436014294170830808213574069868373482354312763202699805352715174391476354313450962624077105606718100634356848202802034244731318484010468373575118382031211901274383865693112558258806477229529420921607404712583647676572106154581037383338973892862871645669602165224465452551565770700833269365679567617043853848065418006881101696113754577906785083350825896587275341924265080893489491435813936384396585625082094421994943184111189537901639332713895446432561709472774865956165106798693444441807358661214765604251982001398409749333698552415222655903481132123938306938429432227412392781715860019625074523564261145949183993700368529858690692985799370169526288696734516288382621582047174586822783498910899102198824073411238008193606188389313947856758982146371835462753987030217233480245118290195912810116422531077359936696579443926183613429848885257860559740654453104644371974158223083016413214920335983040210371974788546601845556647242645454236596906288334272162751255704731045198785876290181705322651547032585915399389074627762079557537619201803564024580405213415376732222834874391768150393828815716704533879760013738063740752048097894108435020884935107728695996912238087355345920276258819782695255127609708178052953069984761949805306050354828364700499973699677736837836144785513610992588716727280794847919644322455280204243809544692707716719809422567141759417718810365891872223685270256183640077233199924817124639062086987749912730003097291899313060746406069927723550325256330759116955330092603951338774034634239716624530840021124784152461199976345771820036785430630634685596295352747052174086294070492899551221291277007904824345924343081528106481700996147400673927854623749916191454343632649106983598375843288528173858167871550686799626062464278806690513893305047548020105332616985814760983563904778265742580661836199283065658823431962832637578251978387845670529244124445435343274785693868750615351553134913053686633406283381361909318191905141904682575450985304428672624155625481510297988058352814947302522755934804140667681162976912665387399243844876258066507909672825807613987642624029613372854759860266043459666837070320976146766669252703661710693591524188279654316857908401106497718296561493685022502277644139398237983238075751212469134836637633081377135585056746247236309062960942140641860152436938290905142580168012713179046277703743857199820022500288185686424105894246869229708470742367050701926216713982077921547368604441638826631876759155138183655556078912258489612706268974800217119787671464050133673600580852952929966449102700723762675121882388512551869856878335234875793578023814101995908575587598081151185755835898727149633407512543869222358488199554223714136661119704390349398909130906235431019436188255973721612146119129051308030476994661631899985032178731008554871303437570890355684923458807297010736235209192596194517354994329146491091638620088590032200354827911535016971242005933731466345589974798978806458622778715323823604811901108814204598897984758786502323505103796583239918109127062153371839429149884363965777264950309585178702353948947724752510658182531633550680338100642384020966762953571356414964516800142470324522381036644806380201697708939951832778753828791293438010161621610893617317223278662151368579682714648316059762096607425206128371556898228399753993813354710373239465597071312289704140596571323474459063371999305246417888448574404140739389758900875155238186363226770804476115931066804034847072635785668190597830317411644661714979691511590380064187861399635543303658156203915438413061558490565594328828137775061560767114007023344769873315768776053769331521931328442011042105964367156455258666464465071099565937991055709095327933535641822398585950139737472729380097984403930042254982206522585029613923042748493080574339095676355630326082535294490648455222557889437465464778997294749853243066811263696007643724724659583538572912277731968144737826071555103999274682177629767438074224567219079121005835842451978963396631997267292994884761597112326136442947810403736607663770734829527335210166374034465278768765177492690314485345487947045647451217768459099730469707687818827456203887695186881144595445097443120746805808089061976957783393215406664937730540231950286300834968952640639127640343018826332679266594521733145276697553772929379595405681637792261246681581402654616117770062051641066835270350682606351700775111298107336310994702251205971213509249710001771717172932957848465012281524642575342231457497556426993119903536997815448918882018554537011221082918721788640412093443962631075623862427330878040879583838772000937886375888687939690990186164830784007311685953939556435583251221242525440727806622702059310144103734300897947748014196210388282455066042628362117075311297912911010157627153552238127787494051370388715222809711032276562124222092240666683552406271474483579530219330227898434983644473716089603438890130871796649979192543816600513143372555865091708241261779069428929235992473589814603784591136558234734030607882991585844946313684155654241001882743527949161360484060765130516167609001641426843561390158038637396390853241950860374221793507194686603160886164205680728057352438216925399551668327785946424644299153939876131565512249283212731783245865460084427367338909043856051398387563519409244651326586953529057190104919022082686086311633284723561564889821293614914974567482812948360389290132287176906354256206210749993442627242283837370223530982686492130838585045048571334351198551478817059780301714666298661983288936197158199701241429473293633642289824435830328253287246822170602710371293283081750543752653763086076950610145019795614232167027971693717098020566427131860712164901859774593860373598804238353832739266833404894503221728310165039317243581152442669943033075485891980436021409330486039825281756679942585116151586013047649890160410619326189670208886089396230945788138991264893473179564747687872453995225736724286818499912888155973131533609727779370229976394125752628325365449354889126775282630771974761876080229291748692362439653701705647543594941856744353843217052343328719991523875036433834513345165465774976791442180424706434933253076044284502229143628064026382538839878479966415641889081625307612196608118538657178764275643302470376272535402546116238389662397181481871324885039328576477848181160070183297820578318927086563070917981901583167795674973441129302148236107904514329741019823859685654094783927060603239062147623836763665342071359780209932180186653913581913011895655539362944786803705784563483902120893701679690706922532252198966554110757679537040268889069614772406525161891672000975564224860404333131761408958051978690296893224536908555559675720487552396578139693177047116027928218981097582663538204320651475951098879130188709113139950840331413525126374028484020411706980353404909439737603713936964527714664377062566609359354348258176057224773958781491304153594345107763649197746075803716811039576323697125991994872524823195571199885132370710490332320465303354757207505270748005083255777395443205473533712890981594933233849424473878762530671136527834740023644061649919763754138790925610307992976411925322023855552408865591920506348504308658048765860209132515432856346335939901442879285073254246847756939739136307189883367013834045034417064239979680501985021919226775592499268634342847282240584178573411443819314795305269502626113400913340183512892529494823891109357242076296238298315123541952803978040781825134007633764922049827548587096869018862150008009472959528185488336262411889363805249766638848815938024524161305849240377378437731244398585076671715050759446336638153901964907212666100470889291076111616392287592260870817661378118090355423557458708402597028891028844162268037165467779741332998761368726855052706649108678428331671321768160996820357153024883922479286592617571373704937524992962662726179808813952300000781289690289102390192140267339004621779440312006099141460659080813942225541222071321411764446890587903791561853436746986875853225690060588049980982962506322906478434877598110131123308472847003548008608080909054147241798145108087590987528236032990449302807258163929173650740183842665646592472732636225959203080028714045565249980679960763184918277017101664653840014210396586396602030997071168358668492320733662007865108821891369419168854376108440789139041500632001965540057007881893525368273941415282534618161210091880750605492103014944020997963014269298037193965449103804368235923628446603406610503243209708505151705470480244854117005377640953431436318157439702185744686290899868859802364006717167658561620355392974751333325198818925864159400239127160728380990087927095104319138755982905293539558726160928859292143202173176838042143100896420235230921822724804406327344895393176167124996399229419679193891274950743753344295935936345938282671732923404783797068296574845870877271789245570061621884997010097564660496407038620059464120970160886775196619425962744122251435830621438806258792733876043530495346788231671787970986754419995748386544376730304397576259852785784544337140957473796819783687087336052072129187329284880079805496776998136262827797928140751198143377914399675096275542885940016259193243015464049027654520044194055901934471632934143961099521092835105566182311547209745939202624410990030403138680296803140008944480202232734847187573796290188617304460433612658563031731269767730721420808421282893656360572096284197379487401417058252210692243312572280833291696674417627379395353846045076969227728544840922433231893324317091427550594155593517071790299846018206844249215611435023428549385386040426170116756870559043411395960771829278749164315883139391289765513248845964038155143909721273689490801737877772440382116232478252268681716872384766847918626888974039577290363637896764527581458148764758419547175732074803548478948525410133807765813209638424007547498320847551378205832059885057545455868328774619295939028078384732877272971133463650557970067629838947475653686458558376964321198683913512946448978577195301554631022686169249167011677450156329321487041739380757799170418314964305777735117094910647847988234044430072585545652990982414267276836862427550034804970640735886687289104402942757110611437824801631418569412192648106389753979570292435969719508656081153777382545427648505965024654680848968463017890412017804442656524516632801488522615384492348857686257630387013057105792965034964704660449975845293222665878958953422250074929448744650390759224923043707380223339486692533387181078979832267670334189172521833374543884299325180027055851829766246490495573444107603749546980970247621455921468957089134724980277503368898604041656360405032597772720190037286415769009380616332952184721021178888591972519192216634231535704023991731666677199229195054550948672190576207881308033127157760650796013236063716535631337737608155495708490869631431323100988197983243972218119050493087712820839953697573749359703214972456255619591313273376260388824195958666704238260126800418124643767349819850327083693438050672497534337730548087350390877305526097910832236614335169832934940004887098158001529411209500645270611379426648155179397425724207662173318093491211484194975987659669586284225984963784017434247975924788933736633304127638386059662633184835072047615952861204193751176440953767776852518358715232401303720260820457935359120538390608808829239443481909842733311329840371446949364280360560599553590499889690496677046489752260611903752288872689210025587749026615688802257658244243607255181495741286892628998792757840155078217170956356176549092862672539271734197762679878078106557413785932174063480561069776916355452931583395755076997928855373891460401509135159800911845477618008752733212438444190895483629330844944733595023625499287611394843311540371317129015917040019158556514485339735464688433955541440245094330481588554735770843290574320725504965564522875443957477574870758158513092004978230485703722938120817679494194243074401374620276923001407289428871085246976575166367616265971243714660896076633133223282287540492907340505808284537879000435946938765112489882800181238016975859949654512107480266810491938943440809792863630567980175386566969121618966237041671204278884606463392339017088612279891339398406304353470320749219035611592233380715996131798766404237909612658875909264430792107547656999110011066754841951706397096313444427405512608027330407968557432895347381658206000850044610339234101234578481629448656972759989686899260926517562682226639290257265727134702722395322334903613316446342034692559902735208227541136016328894489071126515814397194101546200224957849014361683648850525294502103297551728423705474202318266521328797941068116599385477444732348579956578561692818942103731171748458155433519030407339113453042311716002021291116523735335831485744378598072872559546306369526985260092845454869913944194169345750848619288591021499548415587440375019493247189945687718704646568764434435847079016709141989443478893551157331813671811385910413526397384992200993402000584123919647720293748173437488221617263302161429882451105475778137177784681382782281176358911904068601221385315250802259216272476633659558314639378115095556196128372622932876416972496170105291860196134968880381266627606239813690195393462527252287312579011756813827963884871995018656242434027169871625561328024995514738324482155998704846002270077976800259336469571013711084271064019350637460742339201555662607216410763349085941917371392163437781424626146780974874870160231105204212723057050145174928811724320634104731852391364114576981243375583980104524674194918183192640314263031430711273613319250492892392761579600705159791465769437197930218591873541858926851227845954058944749844320828531322429440243806691754924486710747913208104731951922969183510657371660974905482425897419322260041262675816197416283791684645538057921426561191910966230517343670302762808253879636359446079264393995149868730728087656443678936550762298079017040956067895069092079979895188121601583227402641236538483086653371379380630165323254570636996253777435621928126841705311143072774524072362989091493155770042207046200541818267936074700256166723170750686945563433022877349947095419531956668192327499615126530782218739880219987219814589075828431515801978762580996394211086273128278450772323588052062271041229036902282151741178515837761042687069489276719233793164013562382557448979817799772765864962807471654385075053777191040690555839644700415080067949404720239617915198270665144932103124280693927699300238265162638231453927478240339114827437520677375113783309489272211818281445416126482797844370894508619158377933222011917072040344785845620763638984996865092887853325716021224819856366246685674755174886560410884141546806345783282814465105267581924516906617887784981868463060028571609801378994604260300182879761192793606328007585762172528493590985726424823701251596202757260984176933186260115741819508408233872328138223246228099757628549347182510206343863080483767394179728806200095506081014319358483928047668048658293290159160316044162637431385513189480612773929863688870055158125041008063151109524274704392572711682334920459245520574194936641066649814984434826382863706643806959348618405416932120554215667532592762421067437219738199088658952559548649856694877647020431563893517856022796995414884687771442178357939274610483586460859274663514448616331273348782220621889139654930040740436135545217259885982142371564966665026601132583120693253403708240885456614724638505480795507137064287034095084146683232126827329942058997450176356152381282860135833037784810205833427133203978511770829607328470195066539491710752125854000886161743040632282583691832129960729645339634684296501796462337973721457362294647326239673130629584478416522567180545803028282522332821876205468108609921631142791702147406800636749869133071740889958224295288880612627254373847228534810307389066219750320706058551390095095025817481853775014913682689582043651177748092752914022453519059025610534908844546534510635426124073768498501656013586337616346610642926533280819949324263601190382697466748542404764859152229721573710400917708671477616502711534796350137582288249718516536162472627185157106375308208806721129154879130264205141029300409175692399222597371118379709041390407630465841906664234502072885476993441896164633661829831050061914486577353078449318913838535272236649489537905015634191353489407062844255860185242596093728470175481879297791118557796949606218946665514787410300609719948412409923677022786162107893028221229137408980079365348187190876692385456696234760926156907224766665564650597638952866053927458719581528292213637459619362570453568308910544543045345418788024538894759768260156177805266289441438319260121838501498387194924127553840751586235664375914399288547381973523838794261265311721375208321179977151436370737297370975877897101998099727822153209424522238407559500047620121177225297063214168536354139862304483070337769748529636420036462820181696699169311957457345340549071658124514043743587025028013346327997485239637426925375031931478918197013146221792635363817767127887807169345968588095409265899796527400947206919620333660689384416127668357646905189978438491094698528642989535384568439737518371174224198410750153456100385401265311458715038728617211991703059005202469158813356468599729977833381304202448807043194071616780541589727600099754034575637665153729600160694696949778631063158471424519668026970574439830170196401437213181043724958891414364363263907947699350520219482989960138681321971372075261516843513410361888260802876617350740427072783348837066082902377181090915526929495390494589766568903933407251442297895359241382213259053051639047908603534949704228586830741865960952934809884569709644847425116402928823263632938803277558977697652755003504468088326610822442722156261147024741261568822369765271383125857985768705398607058050256798879190328048929194645835017315513349286482205398030833468467058967481574418513512732565474599243001022021504633646731229914893253962549001620964561929220295061193646688028722024050194766704041046254949434133572094124477184334751428135854053147818678694558369472066556233819373124223432991165841297929839530526523148489502765696195049386289482667312082746448997563687096836400387872712162506707652460407504977846551407161095193685985253690914759222585941444090158244442649676766267601847900365474796518186236531475492236896502282681536345856969830315408772752198722465378982307575153315352308912049042081531008665741666642750478757262614002169081770958747343663740989628918734774812833186597903423715675362024612230119442800110793464455159185223275595487917284138314981846309250026540264049992542673625845070308856994389512728200588712008520491505849533858843738263929045746238954510713908280811888004293830480016025080985743703467899996969215239398479035077517242714092572102863417984080426120883984164304499828438595717895712720189831109329077270043830825668538918137226638300425513721326871247447067721578192849122446790513456883887550858966919267959869235616004168830826061906517161920241604309271952432792217034539767197417984470821035363681050097613395171846774030589359105321783918066046017027353928866089848577129160822362781923166823765435355363760496629906524754217525080076997322947833326384149753915677702340054668295814185019650852359776829233907118500967227363639702775401321561321880907897819217548475726735754727529612735596716589414704934452776691631290796661647206061349178127157026265188637927753252640488623300922050437577681000212550204273799573986641064834190022767120435303377038694675429407312654637328626577929736613481771421438986267108937696584272639094421526503272940542266830079261729180169565379821758313182194055859038018494574493766010597946004383035177865266909865881368760275219480282618224369636864652913747049642964303914065049979569841066748321761637656132020651155385650062695692197996736890516078110597795148129916151220272651364598251866623538535735658241328013271040403726148190536430824073559683451921619508181386846765645220660976417377194434439294727279351961585849785898314491371233537832957047287529152386233914765016971854920173739767389990472775543882732631124767183366864276831337243118883569634927545149993000381652964882443981109843800819446978747287000528679082076722664364224923998795930417843843073219997484312932913363316028851288856472368925744633422559254527875943222686375608027444364544873940321606605818036923721700809585416731831798471069839361105341444870559479569535566513449301754452097215705767983850778807624947856624061151882409254798244815016033114113570120128670156025098480027781447287848291739729042940480300893592059324626116703582121544926310615727296407908179587401654836600891461301071270432576679668210091740204395530898522931404481733692752428878788796336335019288667518080309823257858542545792811900074645619329987307593540784102431698084119650118552459897911870635249271054247584482425311850487191820372964493998334455287863350380707311776601598063254566572403628870863650953714534929659381302455821653707926973326594068134648240990941016936351591612956429893071366257531710168054493558044299368602018159153438584990598884568093757818542858964988890830268254665272159524902953529416643370887281218233080231491269790440951865877808597969660796401861917521799328481534746359865952428807464711809098605133944509673109314889203393388072909651797784168762297804403179999170517695123909149527418016410824648922933984232016436423996016619128550762590475911977227870650367685274045325874009517053673380619808280242005839653942402979586856888872426911197942284750239133344509034016747793369337865760287350255522613137514492950442920388808973072480108931358411080618288138636187093525813861740703796642078706619022244876014158667885726478448195721631325902024474515802514989688061108180420228222436525942635631847347349952620977597723592523019901534082760807042688996816852569155835683246328805923558224738352032422523235644891485550442684030864804829857769903417060350377132569370482577655384646332363456733426417393349262094216077479176739005292496002436192534441781207777698877508110462331122694494716334920162829952866108640460433347796643107590200303360200648039772229767860738714021831057471682448045313386768263613810130292689092465471862280275732405911424046257397365973963926269910973708932929243902600032501410623244211747288838094427444785251370741937010804552577976049973559879182186442130042232102148379246574423750535352613737802127994865200535129284305749254346423452093047855323157243625326031995533367646268663048232430115438696666294237013778760270243847668619718204547377356077345749808297039107255258884561898207241293619092192842627588168342542064777984727865605608975101064651092650204705693334256301618152111394284818776652931280145757205107801094570766071172317496099113151097583403489671863940988122782664833368293943053498454701864441549599893700299680211321994740149724860303788600749200820991336699200343958843742414567324190877363884063022013057475149911548969894678745996271274061873156785109417819395549753077764264099948752217145683729915043320181131124839373142675295219312196861104572547639414337225768268950643701353459932408588692412574889120194863427141534471716981472057547816525933449453519527068698729007303493354061746364719364564608024441168051786082524570592796542381932314922755429251352570142570512341821096806706458163308482399445653042647995796991086803519402879070460367569914443131437495617315424785245686304515378232720125919258010282218789564179502099867201500475231197279804666334654062326490957532181153156929066694897560215082194360795966111405399208158186829547280306796031912422966598025722775141793417863904521755625959670993032174931089199468520699760322686468519343318342878285759323963339459361079063082071003922521549263128322957611447471366998809167942040751557019874419830295239510218511714685478769534127466845897644519662269543728813542467689091078788672643148472157367121662544511793110393349499533760220734321104405939040385962146746214361383018031988972824599273348270052952462754966863668576945347098202504766374665664086978649464228319742506860991509988669485970747731695188384549329171964142645750012841537562031478815797499209319638858361814535709179182001205376467333551171015111589013946458991155810386315574070355535214814366537084993472339091755232714508480851633674750420007781436464807528089262764629105822343436168486081505553474783733467715984763314080870446858382041547550478989851138835443648310894920763515751525329979017784601662423444228847545619291532543204174081145385866881630623072333667119727952672109480834769549057545900571917560806718280048087903627924404092251304280256979070700570145313193834646318123309280228651625062790441532802740263328192678735850021018564856988614938203759779862495459109295318693037161420181670625111988886336079939938701036292488940636732895143393712518029793287925992453809100986423516477912772751627339864287288463046262637630337947109166188346655319274315391123150693210233942172451369550667783310669512780245120207428570798968348610202744437136908741417887334615770291451541433485660945605384772549537070195289460387249152961360254845151342881995531327364550231022107150156016220975073276562832870987251557002742412856259780251997766434295579602749486499408766837233931656933407951069570173165334587260883894577802660781833346248444575068469146667754999625645545986056636482923299613677719048702369006887569834220283827247215696044923291723475554098408366293721741015172344213099387689015968069889536815687521411047388594507649684674495717375324698950670754277442496687069333821678128358866153694073367041059193264952893565909128350076684500552341261669443553483830107045859425057984691626275548952875515225939407709082874669756873235699023041322260909814504580051350010806828942062546230959005158264211324333978241336556477979573275937186358909506723691723249216064121883830852242031217298189550143249305695014591997658250742877377560194884094348560677405182511659369494428104608886748345579896803670258734772098470395833304389688816346589297098393330758914056276473413917141289062426203475298465623638275747216675848106791159999678868497526954639858045503449815643554950212456239214040603606715257513283919802605391480599338094059344574659000870908390332575366777756362381540158548522869052857325609904068366600837317932648810091936309873874097954508128990985110451210928742663601093565398000042281504957614014704070901888283228762413461723679203455381875167472918673955633107448816019330000578635101604419631840707842482252034722069085267781823753836165895970470539198727549419241733095630106395387717905814867733347422800406631426650066793969293655685842581254770852974265286627200064631081333084864922886303384070329772897464862451443058653274675237017206517060488259092543693667832153079391937691304461846988678651121653361493967209255076516434488082401962163804294349961916418589472863905759659140719635929062006706503193513893254933681612001839926393080265928487029931504700693739780650356307356504956803131373879661595599085734826664668215632008699326106076787561449563512645167352591343801047612113954324429434351690477910196217893655226948869404964182150191775205766659330595710523830875011565578701863207401397124153514424133847201800727769505465445043969913930302549042303807827336592188464558468783574532254282364048263108511799024757990818639732657594446768323045001774307423625664081103311655230409801781092405208882638005749557130345563926853155949552868908628569323459434391391431320779958375187804091085746618111721816876959290437818472922221253451690008557955600181764014194752742812539657137236666491607955918454541352969642008413929405688251490605076361070984219729902675502397015320996695713434355714319159473301969870805023229246660181799112901304859624463803259102256800723540671214512878326346840405402893320061821335568472142690563303855627511211411796875713739558868453977063546410715806833203343252404409010350834817651868429800543421735984336290580797482430542454561439561460040445018717101135959044744334098447220630944973799183093931092137648246478158704688761760589137595422400939779568220192788980462824697196045741272095665675790396474000047407149774513778953269435876875809615047209022802262344126915643322366238522867429852251799912432749013161047197569766661358126153843144636893001304070495618237509982855287024287002538903662117516654522082734974619693020921428465287176812607319545108732794971850414859039842288638111882274200517819189822516941534651706460301335245507625465149807280948802848574082261429892795097208433230892765133268368739754361781097094912979373314986631575268606927694835350398344123965520260869151012477328866163251216317337381494258715297518260197852088368800642553015772845819603983961677100436343976349828239838243480453490739966169544000561254740378493055747855131393366138190628372835907813123945597266459592411083983816987475148453016163474220249203712364699200270395023334512365328811329473195613840158121321455692063071488992869232432418832272149992652576129133226168521132525531241804903839841638381570780721487739457054597460334914713582042475595048512933806863756417852641357789527442750806441845578384303441520046230278237354776868849227652762540343689020133889466886293436263162354122556180759613462467303894287314975149409671365810416631494251843901008111340446230759267851512345075083857826987363675150435062343146088995902579583839173383634314000018632733464718034991309021349721901476312122592679514711377894714465161954794595941053895738245912550319483048895775698503273450867939713481635518801365182284211769797932807004193723989755493104399676015871332869742515182073142114642229909813430317201164955159389349171686334441811315786920676641364664597921390732212501240037262181459218611805569012298073135489287431045987533671019705794889898086162935853925282062974673273422449060315436205251276518143500358347405869892867133329429096437476978154727599635971765141166291584015935323983219268335021299384530410653768074051647900592274266908406595357534313762145083188017371691440230421449899331453737464984921839544419888196265225287940558664715339821005233820669204876557255411610547969063119355096137018145308328865201689401580579341866870878264055811345377813014754745273122320505456103957654878849151709378738157580255409335501671236984015307503803873493351436698157294264877853810037970439382686449504678224838878263848781051099702332624292801351931580041673357658406572339757935520594545849199631171569007439705111341324386178509685814695008364971482717863945152672360654243216383468205126006974417777310820155547593760371989030799114965727692337576313145822461738637241501564062313425308281087929843073416646800319244010895015764327889902352988516599380064800153318320300170158745673574517653180709180372280017489776023097044917053252587138352642157120853243865597241186805441226404810562647345073975955075027253514214489706566218868060751450541157937783616443178931307743708440984781398123159958475448795810871752318591871230061294530723187108429773782690465552829144361690302861200473731755419955785376359113146782338667670338712947370619626463128620086789097980182300534672101869612160597702568438383930856422387722265203877474031770000399850106264701916362405552075492759237345296299945401058997649841966467601350582490309556812827186768301963609832002118219506340286755495012804014737644419045918773738586414738481066046761888229049707159375957996641879717153964559318860441784535616553591612184691832996268524547046127083025829003874957437111533713303945708407037149477889362002971133708898261551029667831856810502519843522176351283139501849348908690126476315003086708756832466610559518860197025040665695884885720650203712280252950343784070917352213267255055609200012586087511937070946288726389408545333826263508351325428933980820773829532958575008584170554312700775646759415668991532082840463734265786057695361923125054268040376661073689558223447596550723933765533549482425951932316488918828782577694614500196246690553235351979468321137435708693010713655423498678178334725176345432064404502567459627713528779233210397621008395594140147700105606042274877649156037412195737851755678412881619393647519804857543263001981128329890571523239599377032459297671492900955602465322169415344515347964546643946321185537498760741735438770670132402197825692961265673475740170320525963586195766969860311202298298256973677222182035210209026387440168655799390573868283662067119261902131266010473374625448219221661037831145492385851587377972983500017022629780318243325256042166061374235894298056331594088938226856488522764973278468874992564204628637525075948151082133386774990834025693159082501064582171859599462992079542933394193495424317008262328152477095940264865907062063161612533594932339736454161255506604829912093324694853242481032429757548551229738403219036386451283250534156899678904574324415157703704245638930102596621172043025532658450007524065513525707971240384814891578472739080679821482569826236057318274576343750358435540632170450872907016963265389355439308248084966975763207283216724737947351948824152506551104181913837438024100254737832447226296888989913859785579851606603883137937245561035480128324688419596086274120456181552100021585512782977600248263281090885777352489546888095455202824293610439702884453551050439232227187841744528802054029860590582907291422817555802560075728888358765559691529621871568971774977799383642088607086339025144765201388361127959977957917798034977510149966893809465891152665346069468518084132308224007293375231250262620382411690423690709938277673840089728917149803965416153418752925065520675282929564925372105899399380353488990004401760720951877596947921701344404418274817764549317425366855518750156849851742016614795974487051365661570883950411218983170499918212080452176049669736732911760396979089413382914172297771891681821066578184210110268480160695744895479714636835023007874234678885652216503860213261838455764180302600982429963561444543147560809773188598725414402318277366287733595273823007474071653501215439604285336174905351428782300776553826894847682337164773117098436848134617920059689636514541484769794218416315632593608294525872513606153098821350429635114319969030867944975361579925061785142396493978354356082967096843374863872323342076243261167650085324427024252719743292342891590966810889433029174021291317792160854945920390555019703304543710715074458969393651857665706623486604584544524084379570768105345974951721034305083549001480565980736616995272334738360579972853599408579832420719874375700559787040642759856680884958531134315565920131157377952331352297540531834310029152438766498317229790114267007523485776567119185241661922488133540290788874746415088710174378930184475667373264026721136945323103788365065323605615606113899103819718484967413461754171458437603609441461466681400853930291645662186871622681850142136066365855429400876136431668190927569020282746660764156286020273845472943255954214465275408258959450138392477479306695807792741971261188910437391438178982608706183997213916150891305030576103404255875178187433347352342480843015488771672915834802208446696067260578639896655596527148453116820450005569777390770162826342549608271613546279946586961601735754205853651146037024053129794323222416868822753508327998564902765967298463646435487315717307893359043730892430318897290104754444986370909830108003971742393312103793934239568905023294683158655683202875301086373549301796892026874397236556032815915845760568374377245423521337754025512594358145503608687508244217946493772491244336989743545743145591009964776907222816957441845710590393190921095459669734276961160384072854686881276045002911858163943936421366895028886517187470598840990321162075918407867485897720699602571182606286139544953229509342064023420502547940056584939277776683902840327260190624504041908044439755019771808170787650227550501547000490813673728926861269046359731684109992316916356345144133291007967998417702778620331292347892976907731949937493126843991012329589338110303161924014239394199309716084568259359024129519541881646437657779144359414863092104467549885295736291131492989504195722756352647840331990779427644129435561161453262600563229688708013935717891645911165198083221268587839120260371701580673594847742199093182274639446776578580590264617910440278935908010560710326458181600909176919884983482713796313390634678826770367351439016419015445997745449331232455985207138452488506427968901855151952894848736280641322396039934839221072172152998851543316012229265938618957789771494511886802378355113076281788663282117187966155885611810340352105661093640395188329343374076322500576307844325594714102312369726476731696697486251566872604041910422735313469681803559932938724748317353588761609768584768807276157192042329976347357160351749207457599102808140023496193219779323814443039526290806228411242241306788249188437307024135487895855690122899109999108329437088436399117739851293725252251659204969206755012980006839291299270768727673321652619860962326263188635362696301912450826819419705266255733550964557245668254036846294554565334643612558028644886741732709989727362820728447636435931143608216828205596545832355634480401888998191626203549756047919039698483918127658677697989169120413233612186539315074544921992403676559260572244498978532630078425091883693210761767676813412532129749500119437825935744958076781146441398335076230688145498371676187495884202897621485259433507757701923629469505145870676551433595828009641691729988758591163718024201967641631469728164775714237784498272670253359353935371130517031560930898189462543293218391496604275393679211833146823358261903908588514693488575065164610353627683721740322649394863880481037387404720037961903753623468516200703781516909916370879863576757040439473190972983924880290623855313477174714498005267443702645454418132912376567975736935918733891637385573677077119627922630814173249532465398128477229639007543153449405342543629293345907374515567567190305037533019668926948897024079650924211956259513020259787459649472703568894252544779433499267615607536906676385440399057378342979522840000414428435843684489360502972476375251120198416530178380068951588589763412767683422806897922653986711660832302953704531426499311932614528546093655072750697765733211062897126565462992608599403074808434853582181787428886433642008201991093394643334101407644738058661150740148725528976046734696257350266462903446294750991199188695591767398545758807633141817034923586655277334232393715899284206311493245119052499531208983669851031270178477260820455473374821697010961576816017334295487805056350889513341031987598995291658464921573715183959518316837967819269375109137608102973997519805709908379347980232872663286905868863324030831313498481371510118889584386557507056725070658062555651610204751997248799486326872155568521263827711902434771533124958817347092848085782506112935112590473686442909793916445217314351653656359565583222510126458952389697560395764489015587614757287747928774752821077048508210423560695708463153297234955734870487336675760541145125949748616563031872060669593550146849949578894957350724216488091442063553377603673600264694520583706637554690757998497838450787562575096937645514545850752090662413387879159549524657014131064259606640898012449501474749971754835933397782585574680206768358493022575933802297861838921234069347815071375037026642322145534572234988618547107555559782287717393379732472406342076158651991525362724906123106581538041966399187929936906589290557630542450482109997927390907220708933438315718119811628746966627909662979160134657618434850936920845373457375790462934537173991164670088692683499695570935203251827848832592786665057227389722033726641825343829808917568086181829503151543223267008078967387030705257638661909296654292790658283313943821859314852612002895348061513765522201103408400871006324474740460879231587402559702063749913666532424976635537175843927337090181353819360318832268888358702162328182684320601195690485963294012441160879377053874008798957557958139858663872544223815012614899886119573721909108160474850520952700845133352251611459062820474923530750359861949567427329541123864867333079489428488238666137899793439961960832027783956786419117661687625983424393470408159482398896164125683835339789233100356593704058616793440829515372460468719777604019445118751183219963543785444875881964363708769550120705401913555955142237482806398615380505297889724542549007467845417311410154942289014527869647897993466290599485118682882799410535909653833182773332036138514216746957941441076349135988679240080139860429513073275889827268597070170451440251086656773778563356342321398168076482659179534195844063146437885758449270043911027852617277845411720271826701489169458684285465598627401334281971492747439741043661246251216004161727225852078859494063071255504697100292920719959397764816486019278547277138741604619679801052654034617726142018695127169376042318346759999512973690347490205389618646710877855946036472816151326173171823370913934350473417514219722516373060512034179203614945160474153903512430266488425223502730895060208366153221809003610991818549510611120907273700214736373686913136485007475353366342132175107643561416864907231099653686810353829607574041363507208429969254328607060947139295645437106229905590060274091210722530358253585601329083469417117885087411470197931129883386912646954632051795417768920975458896307933802723942283458478240938049695987697222371194840378794154596061079393718474967643551250393402601220756320804465386036606402860496942582691899990346723321708152447794607778726612253063205251571328368098874664972133557348616663124465773768539534083584520048112974684443014875617533537840945849276782056501039167248226582012074655509559374068596848792420261619771265116044929760679427661690088285933641632500498057115656657910985535754489707955534380503646849569416282774076279126590518644227948121184676245362496343502227357190869662284597683754615138205030406192107582791263882926913166827556254607700425156078794266716116367618314613450540232769726334311351047069599061109610320051459918501972502721992637084636185252445286261043052095668422914348422259881510005106543280370551862437281167162974091631501618085521930597229134837670427992061823887648286637864213079362452398861736808207116999727555074870741062652411243374301874109895159384999368391799056476511882683942444405672203126095809882604783166461618461944925785369051153905217142993135007495786110188027331341365180039507585902876513340614595398806255549248560308645894930620772347013126177580918591501692956352052116997835236501898389000285315897045184929565625630480979165111204795360537770889172994489820127547087061125997306278667927335767645261660749185729711780942113680346678995838065043087958040779742546132387628772125961579520792870839571243619431452239002471753969560177429927959573684714819763442154700869578989073941515298391621752950585448142737614390221028196407588214912333842981395619798729036816915986837505814814218305836957075810285918830501937876592040568753712080579358963436740359281795749104460826767795828714485857891420336518749117831369343829270919399677173547519878095738165221140415233632487122328607296798134791051291058503939534913298855598671046273652351058893806590824353613712529201234118220450873470338433052670087906497529600576572606689931474108222417777462539202147675725836115966540920498081231482026625440123282361105102086811472562405160057803802205678523471292295849439637242231028157328993402891847034148267479625979037444876549075977842355286403373164779649099859250616175592076600456036323381215422473900307624891358817765360668881139097872334283516957168063237757950412315344115646591678864873715236640681896425025228676426956146964398241078080827026864123553138780556694383431483006070743155381411685053943781666806469259919461720315278054587564700844865642054302183873053396014645917184679421465108124794687179727557930107474192773851779723918724653180741447477810326455001929115482439600401212310533541986589011949861918019138929794377686140417273878732947883716819616478450618852358622420459962136803452663522912467153023998783059955983688430136825677310002919501419258725963907135985898811821335278864149561679250231895950411053617068360549973913998293898094413777034385659161821227633636676767750522080973261408350591608354063643742335688599582706718135809527274310732395665247402093497728393029299267255511465761142713491960588498672730243896483255607159318240631205039029026481807532857557220510336377089515815419660813521631394276367064166833684731188884625608668409368245577488657088150611289858924476522704813798934593547866576604562829592128630897186013044723473448121348992539460115257338363930816407194844600030043570529918289033724385048165772303492696626676093360691718533361341169779886268073603513510506481665075197955682173364611901655549801479289839929766004600659513070337017530852022841053178989800270326846882181270628798535826638821931468880526619214003589637533065059689410316915408911810479612627597058304040963804466250956736671805881072080421646559923434881512254551682989021452198400755078306696750899142180222348318731131087706577943881451003869989234777228024854624710567952088284840148091631424779798638219667223262465638205374992026400082852318053763039448781699208267638228662938257811557556570938759362215704026898057630882450669455099587665073509197935572948429878599570208750424685083672273672541578046357440721191329942664654384392577432127741508761592312480746799265867541146395859279556299541441892219644112203005392329776681715022412279287438171392278063785233990712852742360070802487660864954525523396715387498215452806905260529951639471738419145550389980038104277604305953920771826120230570584705394612456213536651938239786047437460207138613324548881197660970124930379159101064861055759932640760490955247805674342442268970079777940868430862625988939062473866850007403525960139467909567895804329971734246683730688651440028578772844819905494454841157046483452563122855943825905064098682659272872322981840752263611036645989806648075315551481023372497088249106372680420188319800175756606039811170794355656165416518147979950483237993182248436125342384482863950681008203926513836873271413994068042613062843123936292263150862490463056953890948384872395907384453275295266072221491530525871378731141948206629324925496570571661785010822803874204452189153179464080850270288549383753705402373546944645723089266512082073721365914955986736554849413038699423837551736031453677455195163781334737220728420854179365781064989403790262119602928182444963061204901800717612374007167456394973467019956832816210072819135423442541897204996678268661410359883605819622711554245564234792730807321447967613275048521639448955147065040691579268506627860452334853414769704961802865720852171267195442585357720720061465647032346469193066102759796540810951338432975224357621615222662999298403747836579260137268723957358716552492836825608176574524896562805399212962650786610547705987923937999919142152622910669474783423070008836494844041550564952074967556276935499985945608874628052099101674287203885672437853524714281468888058612012543056296444362103913750816166847434120761438715500637807630861209855473865386356370376782046113608337950579715903341487379761694760608865243011012731415557120406586068932130278540681759328423953233980689301732199481212252645705057022999522773909993426164345946833923447637188088839022904778341052665035779954944336937397907296969901093842545736761533965479128068769678710951657436045204008089791821192101383089706054500724083515753604149225006947453437980554350900396546715343698726133279339779055754204253042880551164586556923150057976705126302691093004022743624674993698671674773136970032191696203775935073843531074664792370119674544818735123974426792013115604459876152250079677879591426652007134076087963365053143423007945836634143501281564322820533459297799245294410248469226384769196906260542903475778698724798652688587466591670985788690033353561528220030839012687588095646578991846089200482835334377640491491744531419024059522147524177288349269040422172987840676219419047464642789931955511083475275589583030358845884146517763944113197367423011532991157239338869681656818995347446542105186971972326384112747616375872155445114448733209369491575918112945052236104518560766507738488159081700556771614108369483497469542304741754534887102257976943576519443965310111073453836126225168920865889218062428546565394933649350469327170115027898317796554768028017542283666370762158569101538669366097648435973233845770087010946829998574464387688563999212747187505678641655073845007183191166740838426119276981276629082581563235885820792454438064967655308566880915142498769025005691016091039404243040679604211292988903952390141323108529863743255611450320364353102137317665381682166349637358300952225701631678419026729707375315833364564804942694912182966504901407177702744371487024786298177196540923620255237234564126512563958579987446233366739012646778956801135912045795086845951426265316664819269962610934974341233899042465472758424448201556797611011150150719266722302194452936927332720229210291650315533219315039164687902927432307632558785601445332500382591887412904077441878647137376246073472600302556925402662968055926594360010900340516700807850805312065896568479117507766115858162302429317323659715337389810722001800466850148830306603150922047399219159120044890349856787251981107378771902955537929773133480937420507570255681791651975285156060433811832438812132147110937234097792453914331106278294074620264597095569249600519572975659471661375274141075189198000993128592048668903638348470793199731621720151664567755126785855726376002307161542211503646223769941009305186734919474861965161066061161943510773642343672166273064069656351183090205060060005006750684609343435941770048793614022650943995686806896171891806093755541622128609909795374571862003992596897124248358081080548558715091574003785154716667425404371754081589261746841460095509087452588067095161665606463229624569684418963042048207892352414228869840403327543797978467105608077339028199046226558504763155741019584357065200721031014557375920282715313300427852937176408805542421965477769626827854006518514028383048929285236796350600328804222815663482103303905268792529773712959023821504824767275840127884677875421588808978425566339181638633616500480238122286195662285581709021665527413429317427953829221285197379754228622385527927624579680051792563019076808237943325185562485461991432124949180610086281434981836335131662676750977297550768333873577775327410332953512015515185320649525135291905543613601865199077096011738794053732438488195719704095887861771689018844335787038868844696028692714591868657968244491608210051909822668384163358710856763860225440816481701775475718222237521468242987159110148747990137509943546876364480677193596640470261475440890629524876331151609863450413894352493704118313435943863626655595546139915418938508025799253532138228037273784428765510525810209933427569147065556379731921828099951466290993432531283337151607196281039976339151212367471838313475181670558966199455838830777651159747901162357526249407551470651565922803882725551422007682834244496408040955852747547795101435432589881324511892254229182089506169920543564915866095363834627126827994455220498432029638391718858297501897226615179178613275427086791985564559048529251796808947492283522923716815096072084472467238570517878341330114517217195092472121621910122636667270779035743010553552576429044146958410250347810514256832998014509212030924965644967102940645974349295713311548156696697107138294561314626784061263025395262657499900913420245144912701538640036234531052561794524716642242568393468892187542827068866180168279857237133127749318014906160430112810335930150614167124386955692605547101230842385919523486064495067471578021486967589981759435368428629429475553779434843342348606679776067421754053268076499241460512668966924597575263968988505439103471339475880390244536339924155025372731173177331519721550723740796952191401571159807406276801713473658370766349303125153106807006850357619677365123960068220362447133912626349615288082312901119597246527108816476108598535495110342266080305097218863790001755100365718289847773077054656550339916260523314625596340680687099977708926403234348029703046806007209509597845215050675924100777297351215112962548009636599949291041601686981729845390723341265777476578424154204652873517557138610424025194164334971764091080712528975829098541100403055788032735041961757418815527823174212338486168316923006117094672320565336608911878491236736304664714333173707394459574739905795606283184910839491907088457125148299885356649153308843822558865957954986294553529315163423247851798175312983564021994750360841713549909346550957306952374572113229780741415360225226285913845454439408062704422991782912682837942453444846295728591722093692251269712475989480406829211533478551212340735680360830565088571408246762410284907523529391149658903958026487388557013821250070032899606494543650495801526189915723658901974931118613686240799521522558792253256474482815801057649388389405740956162570901463310616105093875148342483007823685792311111516239204785660846475480533976020366026515713957552403654168912191101482924521276669147142858950653875090501697262729827377452442596187002072906860938502331367641096658261651039494013226519706113756312116815370729738808648290570908164850719208976901763494111075359525570164207481361594968859556093469227353043693402496925922182142892936841311399431767731715570415591940085947912110614627934264448695366932237003431280480338623616726548462745631789721213735985840625237761829878925119001192929198746865297383750999709033869891091873227846187908823673406833322974629479458398603156025476837236438279647160520678680132120971674223297231236308794158820425458434720747858496740774928672174121741815271042131641743386832598597235473564329331393305853273584939565614995618081766222512878375814554979665390935209621162176204928733637241598359247090329854314207615811691572300270679949421195465028411977167943786143441867188264468198814962125153136969767540728994047848151380651432088079572301909496815301384756566832878686057307498480497818782449396970649282019788102933207815126472765173296304169627722775738679030630581111145028869119953099401438950547593695710470718007109442903753613356641805476660989130082745355083463524798823576834494873000408089965173782372345864852339009867925974314318960540657468924658329341800407605510217920673681779370591376126454095812080295795785643544833727141780787990827389590650949167968609902910450050471419065390458942599792250586033479129844232606164394860216374321419650743760489616021728559149992552988763543029934206420019395861276654816998747406729425276930912391389386431900144944968294611957657811768592303896377169584203900153961917602075783548841237219595944945395620165031228640674236230530543471460730024489942138240348313759706260953278214057060211845367433534198023254630469733711993760216331273534930723989039571450975250418959452570164330012738328217262996076169789454851192573054438638791198022801854784823126883306165516478537317080304045722122389649829293910262675655610148296197186406210459856571115190094104237023088252021579186044728181017844189730586431288696635875207953476278457735018419758802525281067614387067111599684902455412382704306641475278461950266365522989348650016012162692978089073090009377961917470993871323433714158677372902313376583561310651368553570460169192896326000612921699078634655584469888755416942816694937336765737252429506712137176776228075276634614563286465032105634263464994334422414076531067765510690526652741644797413701940619252109785182452029647200819454379412731441113239462180612955921181698666676337722107496621816189191698454186632473187445442052351026080171031369301042899505202608028694508109663234219376705885954728319610586014055910591428182631870579256324779853991836776117387415334848323498301766830828839341497557275551674738597848678502207869995091588757574373881342153301327160882200971992722422699099775687525880277355477430825936758856515341604205012104652547817375904128248473839538685609550431738970915528291103269526108938388683543516158334237740676698998993516285894935341778608929086533053916071968852931071837583176258372319749642235965507234407000205124760294339235648230201179538700085492790462605717484776785542669053899740797972498498163084313028429467032413142718705870713739609777035009894615170147476695035351113378762200308398030072741882061382401102572461723999793193377075030530205356425370362509750089599157421923651595769035648279216470635723261422488256723521818446408680201164877477125887867721298327340554881090284532212815353622995204718516419248752894600643497048376844902294855869212910792113106398759504856831128584578972915905167595863915802418902558059472694918894344677071008439434966755054849084564680149564237647530513350128147914919489614708693396140640465507541596665521245352159945194323183333946518723991969502146369381112171569342673519589770728674760024249860175206428465713747600507116737573761403840678789734970979755435374162861860485569757889727947855494386122119635051620843676202820854774347168740584041434100679339148653019131736464795413643602440329884476876790423258282077668346223590281268590849640963590610099211691495515944207890627920765419736031203165646674881542370899570457735299228107968151592662528910055119112994468679898708146103236462709249334501236044690455009496395666337748852214248190542996540991280825892207657780867507673651942024555807321988511451843959855041486064284265482254557472855628179034234427281610887779104899230945165986569421368118675640012576223486535465205491505819429277127386980245475267887059365703263354029470588101469830200434596709462814606627057965926893257367530260172061165161778756627928272363851885636126485731682763540781555803817220209208658293136205613560357932281786644336211702163012651513684699097399828330191608731972571029616222921076086341118635251247442935125933856127089367030582977587837397102168182884888952623548128484191899762598374335881612283267758139606318347326976236849770794458543073116546358675367814715533236408020470049580557479410584006244609541465073647010619186145496922222196632417454769869399889875747919814701410013694340567674663689354440336609379311321314341978053829798599720391802514295980767912799629014878890824666070566365691513091271518942314147457861838939951567669936265672994338353650741516516860019862148338141724454137703967485272910777337315149001948030083047572332102349589698449369948071816046541714646097756977376152099858582718083522815500738493839537082098758949321198136887020959916898312819857892719158230541935811307306718821782749125010188213988864679613489608391129202779008966971445387450929060997207295672602928586632941511965022894667281439611325175339978246294917561104859974480496777525365283450021522030019042064797932257920822405177191553721925586090948042098102203917650466233547684660208838354794215666109277136781767063213534811863385264556968397995636945247788767994511503548931915365704136484247504034178149359948778203288282339866130295699906867998092612855097034618648580101527902239493029478634070785732264399312856665471729870888234554172427897282189620751064590225278308778391976972581885942800630503582867103166298307906594203225114856890639007137153850929293401649672529272639532371113491363913643390868024621705660713659314452534901290435353299019520951566334865391548039461077380331780832690489528350545644835709401904527488402285814056892558778731903929089644159716976458068856474109625816178467271049855131985502290346794262285909482928925227040354267142604172961537076215743557149342625375518381245382503359245369249188031270362007056125846864641639073250534534576989203526735982382386910476038290878609266437728854431180108376012655118173875220647608327833465142740644116956242810538470439001634974905595820681588674109734581099656321951404202986731140130925467589203342649696417385750028219111154453204954742157183399221673441485144249230456674793365856513025981216150478278147054037091132716022105105343876920465069180730259974595687161769368006254542680882160806639443912944087909645692520630027260715371481531330066489120961559910606437456662926020965352627024358572773203057673870537689080023094996250360480211785194439687399403032386991050996823994754300008910969228705932650635143939728438941291020066032021457013433668020484286196970812570570749128976710058000330358953981957683790928631515732494481460429663973530615138883303251331234868538107583243754969730941408137434970368040681552727504003452083597750861160602894615203562469930049083632764338913261210570715927611667581129413702689555005593552134839536387821820549752672378595033155238663596192211588092101971085130933990714542010197414725680397213936241048077730029754406887632204010575793695581466433862937392868147226163801579068860946550499230812156729056055067652748748074473752213126484965007963511413818126362334774813930104977180402007977326024170125912859965022613274650503594927940895966357312057091734957909757559091275755227939239369600802378927796290898314372990625120681878735804844178175116296246340403765704464414801908569576505513076117550064848397460386991666251795216571551865260606218128359364074152233175238029115982848522366052465235307213369124783943139333709155488779728237249860486033045799820599236088449186489209987434820054430502903421683973067803633265101936352063399681369889513958608870232160258382814506364709555399101519877597421449228981044488692533233614278059877253867449137791560593504640580639090063639032193189925643387652400309653033801472282502769076118484951754558961887185615917685099360288057174971132854429903107745298388379891318332279517216449881743964031973290119622180246762381452436539036855751344698971223093794694241637111338677536097615144818776621805487978061548950528937227278103177013744830340456401685695632668637032544017259992190743536413358069638210067651818365202735686949124800691884530193373726593641049768300774814973726513182584048407413714233865261738380351212467647365664291333105542813502493398864619942036800783300525701256267217976324316085505731593776476834437324859924647155619600529438926422788616553624157417117069293768727173926546538888245743349032503429176640237811672082967884486673681039927069357913164697469871231916331005794925284542320948021958262287437293778176593922770158450861734110481603787324610104402223870863505919790521307459295581710955397211637004871166416580746802161219315938207868943450945059798363852626196102564475898517818210745187831917211568090936070554390033847981757038839880572081836440023284409238154484880317917919016780521184082168185627754181441108474157121393800138789767529042472498623710074620382484920700819487186922151820385492433215401308264853769635576645921070911075323201931952136082827442813685654110846135572220239139961649856004471974584325966491145289660242605770783039585938035341775158189062779027187956992466797731048166316591125015145498574720609336601602680512484040848628797045815038027924083017587962212667336788124003103156952160434468590593596044371685378544012219271481878601844532701425260520213041458237135238263793896917422953378862752017097868844805794442480156719487373960312684540266667444167610941690832114058929059349563041829762642326060044589949142660142097251385907316723223862113879130111864313139200552195286456442613495754154296292574222293712041055160377746895660683648328846742298713363336464264483361215482847095501676770255139005308252660660461686114086265783751144924919937997958964101813439837963492670786077079793216338997248807460105235507821148200551457823278601199412337319662155799596055376823272707732092258598381155482185284861041999056066594210134688497809979559574160684048151228345407078063272150743559878280856752362826003829343602025451568025654045259611161084204912966125162765853429792938453973721529453062386414113220890777404731573374740101393564846807594708330281994769992916566674628437034580780946470173531288639422534943313024547994427260640088650199774996692218633602383028048243374026888142126717116463107653654046950013967174635211405905825461322306856685463292222934922826268789985632897570240893241866761906881514009577992347640466181903256674727183180090715472038902893496733665940240164698732005072014129094496242764866562663717755861218997856665330727962594370337099388624653220826634470223920229616105604382499148220487497858761634683388188117676735236394468002487060249491115338887242758357721303163894345793190469982784762864468067521112881540569290025997182792696000467582563219244469701397068489316362272279867826705736150343229715583925162219442198122732327347228551326920837594967884121808028285119379208667494581551959479633175523317314746749741611562260493641060197980940631152257518753304878331493224971658693224636137962964842701658430854399545722436744570619819475217809028558344616225477179523749327405370453206796055573778830975840769251997399294516210540645202443356554663611579002464251271407446488572546742383823634498410874444550308786376169701635327423861924081981869549850017272930456713242422164576704061055680969139827803663009549049160861783527025383651606274214631531692010797914175978525510208406850426547091189966475824248500227254962380290665803288171634700694341698275270199149590054808579333167180841391786802932928570575341060111386988824372966164996350290128494012637759217127538680406805257999372867164628572413665498047413343712487963353680758827527693766248262887115752005292154190839284910082120847728846795696765645685822819432843881499550716139335598596358067813681029273137075663981796510054762535405790382589923411563188227958923427531290651406752258383267266961038498529060180536882376867501073981174560266376058675709236524901766686293067066472988235295693664727639028220115823817139282995076963934266692204419942125669601417683464742631106379191603757138248469691891201483649535316681141458200063445322952248509348558231584419745254879918963713910115307992375574834002601396411534668032850935326133736354081677475435408199469187396494464101005408609049346066616300449021256349983180280470425604610191443822339382751803013438890266947110485969455055263311617979463426566740450756523865162648750199832204942764975428725809713812769828531830409797659683133193352181155115602596193466236310719069338000245096131674588804448193154835797029840430104907727118574567224423794408992010895324804355432686788974792310144321609286446541650498104639646664709446249507825237688007204974560102369683405380434620471315386204497882403908981044849424542343804516932782551822812918688432459279686747452611045118635800858510730615676473683870227943074573813372464630022861305509915853853757577895190414034355074097878209541888790043943186455283933010949173310394444735767100362557623681012375637676685209929972564639922544373520043893514247620528422244235712616881438092554231166495837524693125216452266293921230135364631136130425738416582716092011539003897810932052695388839711599471315271095139949845666422585649281143863258238601501441847341152194694554606623272080581144733207916199121141320814218413798145881594890228148484951746946870413462368136632439312139419055258191504275530899055727553337037349311610968408176961166703050785106360593399799741936617854465696190411474393746994946294225873061357951921410467242039263013868238658102893693829175361419362475927643956089835662060534419889723741767874029621320965082595238358691722430432004534522537134866006091906389608667750394472293598045134094310494163072389270046837954924743015915862880466151642207798990320479732577095620323137515492097098248339641803730927959343585318846269260029841951376783145825593837495893381695757972592743466555821968612016770529641224564168905961680733842769616210757405397910886171131050319542609927000711454710710472329310214287735112867549913362322224179690239156100225371663558509109693459975858121252199255315749271106111969372934889865073165171333989485609775881979225704568547072734793007473517889599328686060914426880506195337992745398900591708470627311134962766148429405500706457182860152436225878238678718427716258524760090288494864864767547269665773002752300706071650672332390417001034306217618209715615589847566231217726105838656377611891307327161319518804622274455566211794913176159330871450585363463652485616482586666213313577746762503728365697600165043522398531003079025418880956850602056082659728057650980521590145696596506715334941445605706943083028533503932090686974844008803090654889086626078226166049252219757781686492251993025595836188028526033458728816660918039650092631573389421371940899560496873761788426137278969916244358214702638394244691205441678131146770946384108103375318807239101503120320562145044828631593647846901173062677028910858696233488331979672155840681382173110827916400187178879262450820878654560363581987755483484462236186986073437617514018849973996664805580088413073028752665602956422218318688303789565544419084983659408737437908582653471762449357217770963090736727888941207382606382108627004193210160682153681552487184689704939076843673397135785425346048733852751191170147332369122885925532204076115663203978067768485536460159790368792778584993455317845088337176081469055629121481397608578120952538062866038573618830613268907798212924341528881218951157125863359878075974315528766161743555503486078091419073044815853521901074079708244040583382417958756693011544492666265325680937941873131590870822494063329640824584825216126164267342909302289276812037591641825333533321204007337479203380311779086430463570627113075133514529686607196595966043167702010107999922356700636922136929576544987001852856401549618177304307692373899867120862057165046400354365380916281357767397855537639893853257172234182314201601914974646868918339036128863438779512042226626924379270338776914813883054223692774990508863134220837948631386515873780571779427318671181680474611529938767091635853136758759442212619142752910139954771410274401876821553169375259904345468234588849984500054082942483877939148612870642417286823562780497494890406201725476871485891811201755706075132288321049474009841258703522667449954671775366029828050196244090204406205217001838827143666736429179886224801621463621472185118861393191981204763857901376954082306443566341689885529825298869482327952594942824778383277590366128381298741640244217161292938858408129902990978491320277515706328613679021800136250659041983388612670737574358329151694282905201903744192165061871650409377522038016708639730886641893739423943198858099808946105650606674861616621739298352775460674786707636797737146369539179745909853780771904865942253280167482215313463103829115197174550613547431818349689908668257914593267658802145675607044137041765081382992750552496243821602794650413673694815411920518546437330755154021767680727223763778933753279804129145252063463651913861285761548298215854967613949806565883399035122109676919280969193398354832515921254887775371414085718659263352823783866830554546530901035827129748352639376452412085547972285572861551644304021414204865028373423373794063181102148645030846090778533881872264992119657964640624889686716151070470748818964952254095998302004811354860598226530408353513597747980080241705193248067879173731573650568354592146600745974934899045258497892643819788360219975743602632338236697167981504938702841164136706995695092369287240397116665450192302205891244615003036559130381850181202089204438092537574346569250097152869293280802856791633215103024038740164156287177572012356106307646135235969072568211804491209066839902270882542177915325289275169574247721148444608322293478506702229476403895658249130476427084073583402909479107195613009023349263749415849938246427662579262088849607603085291828609840670528931626713470014308361252172478516280104768487591599446577012528400161095748238271432213975395365040768649293545186834171855292308853880306907221969073289438607378984662875183002380384412497372843795672403062600370695475431188302363361914893517025107551957238595906398911079540094063141256636849212340777149827299078570792657296848854401861876855560420078026627360948462740320650365827620091715360441690773976273646830805467903025134129738911785491900310338130630802303613579078841090796451395187398096742902577768807269427672932272288911680066809280020935796333492007766113638691336104089994375185469726000013013633637760230604492466648203521828965098511744424581077092680135549675753293113786817876223630575321504145071965440946951874298272293971090991710810020132133712663467855206879208700029267648970725758661865359784915832329903046843088938085000534027432841997887974113920099064935992349744504144105394561197702731722126232671832619767657422918939595764578243623268615947922999164695845689500137291303199828515986249466375898241309140248259977377969261284679972515078450179050903187244680917923051653153590955758025854276142960127155976735876933513333768583468421675128159787502603138122823000919825309442177914743877799500412664080963785215312634448063882884244811339575861048376934882678945085631162339320153770589961226234820052590036261694782855374289151924060203510788104079113235487721575558668424557269931389468505019772586235760643528517522907790177102532748284925213474903593675283598011628725543556660039369225892907294805843562584346033916717186375231697176580704615821310321036879474444586899702181905490795500501859005164100288166572050009880420057722201456242680018776013030308866791766925130975336963451188029370297238101295296230608912605045845013387189552057438186280079281454096278602871760921926289381874237672546792458278342932310751749207324274452171744309131967228503067880702396441637988843100286220819472832610875120331073164675939251478805534481832674132879454481970185447235681891898961274736707601094118720514416825911709598739054120328482670289496696966708771541890080878621527051806917935763454639718797757352441343002639023639645596455681440673009553794635972465842226543308094819110774783198289530936169165731518228589383961706520664305762488190647385237386677631651775610982823248086563497997658265593011169616742093314530794108691780712725742186636606828274471794105152260021324816750674616564961706921967676328484932770650117842958172558780873990857049264509611268031557726387462099060400342234808935682046344925253701683032604214371130359135872378926552452146666078614762607958342234113517911951871146274317860239699131597243672899956829001059083156782373036171093346794051246786168800652726739115454225947846483710437883558621164785853599059093203235429583764779842578003454160822554698845653712266035518001582700284160759235856715930503377032296031155893280720508386568320999748011070874274438356660647026216636789566386416020460469021255863050502274554606295069327147249385432833911074274677868207597014946550923712328677593763755363690195604806540103820136888949289571024756119112236179419731066139068811563576699849053378878508073540821567803024862700923020519096186215475482384607237690110546034658531941529645083136596322254722189401325006909228464284539845591610771784687426501752685816008994026350497808958772712068722148038034882509336958554853790084372900037597975452737190742807747770235655186955707200720088234837135249938218321383172458852592302462343265945276255839708254700931455426264076535827627679814586272324076390679914388424854456479741526481716071665708210407181922313448448223821521455072039323529938356869586277352166677776922763805501182806051697109536139641140690382507686160046350744200235855977402199880352427412265833558831840179505815105999545845076073945818817781104248928457208581648368586582594089193287907223348654918403198091347562881411513692506075320800689597179269804036871587850668192050719629957299410163635400354552209001766823572681175615160585777739648846776075149224070655687319252038438811155805630460377493749937061472247421288095131042281548343400591949250145097127323807059847411505401315431338770047252725053518565522754396499741136616951143714860410118596370815066445590025316437912305455780781204919058419747294293393859137333840557029117797315874948446071971190483964051523039107453219302480221928547334295773010441190641379073513470361237310249010752012554213523941649124278641420618993489410163810974470818130007103547823254287460097790499047362060492583703404138217336205573642860954406006822794641149426650680353087454422913352060058838689955616123487087911365293832761483578258692875431241256978437600919499518107748309104597913392341759671215952765612989318509292712919893861823797911490190743186702526031956299039522114295321927514976483560595145534889586421857264044038922784007201108116824895972200528869411666407164952435696579954530343865326630514347179474691781333085841540585277600863242954884037939312292082247334570216514061038429103225336482243069069002608908088658252181436097139649138198363044291897086004265912296253836929229023772447763882528619973755811881509499427409053897718628243113649307670403410484343874672211267935197942835340112820509784295286461042647959474261482083411485955168279183231389148322624634490267225531139789391211868481677922823660256219769161834103670219713088270742144476736214698712963657725744122779616731483684553228095234700046471862911710525944742390738829039475974368515814829076192931543401221061725653731525728431993796836300565221941391970308488364151644371822136989567540559435132717295763339533677950220407106805445260200252816275440738988291564871286930489535875060564951927057834773479376949566266072747247599184008452692039542616829182161629444548912576376866692780060663815556455126392410533298323641712774228552927653669983933545842312123738770673097502788050934708316058294292885810014732502178434192843891467420290166866522480621280230317448637231066333198726963772418504431812110134137539048118881732591515044496938887909061822409144509296248287665287162008567512399903089793384246095690074251801274271502286693088746214575872602326625195905863721220171284914497331706472616723430401304186079213083345828539826990138020209320808532353945952299849044481252600611513813203484259257806587001605236088596948382816830922686605648331467212511942886426692855153196603160519146810266083433492748292667528348022304778436845942651420136277823875981034850202171824921646545602593270145375541107513627584426170993561396572613471223695009084862457219104838387983751387914093412499429337799102830040992581444110620415323210501776121190940696694782695594057249099379615408988712065591691233032603638324572276089957187472770616213301580972226038899263534445200934932191864411691048016008059023319892192183698583015426557092799180048321424547888904189919450784982021882502163056809201999089347675393912206754408439205416507704853192413438585551050528940511894962641815262543263675023060726441897813856225410350991715144436165970375635544148927058592899719083983016008667949871672261587899164039474754430698492967536851078744537142955700027079948509442177235463389643222645641606023346145718522717088967109028253968236321328423074260776177377606253961897208499603714580546696943233360781913623824266439984835122762746530598105670978342974977878878726999223059963080294075724008174296933744623162949509346773595665062371626181145018332784806235214883003212558270181450264436598273550172579611857784327899383953029939081976415605232095046618926244978224503520556287367251914005259937516883672551425201352622515598019528852797454802200778072076619545837920251850760823194504287241867148648587002111122038489328863961431356941891308474535929708630796156753977373743739971772093686748102367024812679218610601254393790810000352993827112695606226168727078263533279343212744779924647315909787503150608136325417182453596315718632037734291230391137282636628138595521611147881393662732854902356820689901209001124524940450558688917360164458837895119103622297371732137371302347702524850487801001227363811922195778234517728779988364184371137470608057752472762850416910698962555455752230720817329331966746618379702758421965591664146948208226408051223266720701388279751554979763500205276745359936945325924383629509355596184710597764708698516470159785139485826044108294157038965268131805437859715754611551156919718566213451316281517763882147334467679606106207926051759275164234897357249756297913660613764267010473970828362005451164755033562674586724298489342788718402130013022753136615173795892417437999941982614293037997435812175277890571531878331910065781656704010183300113130261718668137489971112552333423215860406117769565035217332604455996544279203186755047703682546131704120022313477596749969481263941553031282142759522130006600081418863986079183735313669604926899968323884918814510398114933311998489010313781457300729707738250375876779270472336467859433716920777982230200820383277502798626054267718014793945469073739473562868669672032736182617078696779175793053624729211346742470798487668806632273212413176164570958651051107044667682987985901412510796257787386993989827732830882689220233323212165953389040484044745161839715569856743952701312230943104622369447833433452296157017308809755146077615523936262031128221034478277502454370741298583766411914952604434155552331164020480690966889662687210611785099161964251764676332095432527759430019436004704377556950410541374198690972617151753347635928267785645803005341896741794560446958197126741707371423695920695287370600529745804141710648151082767975276658759072883977784735933571510484710348797223752203239987389657074301804045648000819210752997389467320531126769607872145057980581352701547172631454213746020629387739145652837922263293555176125825364115421738556066332826336990555748104128037214948366503927311865647718595304549617079346394245389684237371620664551690789183903390151852585588847177836888599617304569022327058713532508757996066578809976527326483023874151407034076523891014025098159652458979398491685880308472173128652193032792241454331860163202070667576669467895540865542671789128780898173386066527022881745280431792050629141321781807166020767431442934993446762202751106080488561066039610850080378319342170793789722982787858741824521606620918765180710291584205713036209240588087195441864729263657200031692392294180047718113650935806609867971699596302100982374521635456256834328058455577961051441838457377091478726315774910253605093230571487097257729842364911461715219807051335106952679001280294172661132284804205114953944343122663278260349869163379039164965571378536419182887584158966412700136358181555305572917060574053950361315819952592371828083841749494675392875252440135922542258929575263410505833202740942163157932497165725805249969254179315755700665098936988025056152516923358178551629939592868137418040488717087755758965037203755145389894407593717578081752432399137233747274064860658103827828428307276102545418247064917011224149206935331642884143610938037133829797736511854708778202378652356316898936764851927888524398714013444507483008264949085505571515364581767018178820184324497702075976979005632601388066066145705895667684225224541569268858779267260627959619542379504583582317921151311599036970973656674170629333138637951776072190618046249737267698858023026528134942014441159809223890771726013801093069741404403323979919074841746476187798392385072465884222538497574051445318262670237576215353972796663051264084063649633317781727488754845657096279076441931891494686344167206981040112197272039716981780054477776449343037144718669618107579580412072396158925871686574272554306840199785156072655142374397698998210844878980958615328915801682736063587679181794553631747449579221473637015853645510295738130120060268679910876298714327371197117137285963539324928829549919017220780172285610637645056120055907979660438098877942197125818400268964897038624887509776527394492903740690898241911353491787140789363065035114244207552786243869559406902232403647904375976332034940681913385049978620696438281007134092773999957034448366400216884644680985120889808130240887244858686808302454044702356226019647080252122431741573603642038841584805570668439165439244422979362714411312131095532239011379402406567739402882681816632378480344988014340906186729325763802055810599001350354753720697160936868835981153642266332957707776528319051509008629139205037524932332922610419613503749375012240910117517702187829128511061167219035606538541497235175090096600915508032844078981097990886943012045772381305873522656930554766745553036437851115664343702220550262035573938178238135380649743775674716718441196237612810149080455714361284421637425522237484239915150061043547687909361363414027478081963336190596363560935654349807460438709286662537787233710669456888761296703111390605744931743376104378136347141045135924869985675681279214916361343120684649580286062039367430226789827283545064444148801762855559653982063625065479086473722141203201975049726470765055484017008205998768196916221866658713990981807541444239154425585846894644681113985658863208263674986868727860510624944683359318996070552962671395872813002383084157677667641113566484941573455308702279784008033742137787972754677154155307690279565913555243155734183631704066621938364490619639840100126925530179509811975152338198690062086301047500003887033126919076116866150096129119447789902127880122644545023077499184518242913848537352624160903571313772795495868741773623105170513742115387869007853676419345541190811366845056106213519139521991762524781629206721509703431830444028581743618594708025951031311735655647644344084452200268658253467405642909823030334131543167352767737355141137220147141352959118495747314752540520922937173456448398714564578979242432658803701585321781011722397956591881260321243049644120795373583433478463424347708252490353779023174086030682907109279475173703367782241678807353148981885459128729686124686726306459493361455127862065539541978523590492205660202856911191865898001380724541680845076625778484924235870117753471044000441401941251573199232741112474390121528655539639446813214042720448696533423388774549185082776320236804991510371583098730394541906129908021409156404862866318824899591826209029479522129550721562867669676351570856092823065293288605882043536385633924164221371599816659953707835782088429243108820812305928021928580650128135300466220002442956637620646682291456278896475852787360662827808825898437957309485828879569236285357403185196135085135517626492689119032422434557838777251517684463364774435270920003961036596155464013865613071547641263020637039948768164076969703768200187417245881409988497223420973639103149142359939729692585075505527344110406505355465023290241450215693682935225914249721544337596910915724403448724211668735149042926920309023667804371250551279416387693400298898779316131146787951326945040767849000296626785998418954063501582721080021229354549293017671889480299119204743897552486973442098734136926124250804398974536112441295069492734560107596140842251740853988188836490695186658995410715660221358004823604030295848660003414152647181699600517108373927342011597443144765000928547937951893871988405076409855868907786381442712209740974157791686743729578007338622914736866572991737530408038691294206753177138328832982635743609256188838799825233573342158508313250763907629424884794137271696520485945932977413045052004621953223870670267890430531479810562207766126421771294175002580186362498258205480449435230713353080601617595631184059612878266889884475310855352898339918120113149467862148581504849772727664944344542458504369563129531434614731539479225629261441106936208845916920043926502601596522703970528786732023802977270325300418362746761406533756098829532992832916306134076876246847687523062391429345640749487537217864970493847454129149750145743397234508114330814743707944547418825946976716644716727283917394898748027476360661316165475979122863491177394878803475230359562035078847564616029582391897111001013277236937735802553537684784298303494805451974738714231531560843606216437554252449827191195976442697020888163341553872607182171951825279541442211712335069156939999054515975556731005084808334065253079408144283318106485897157614827474096801412191257805876982727469496238988220735575808877631826145929448336575666573384741281572600874213188188797420140821960632727396131775721150384397538651976751207974516244096545402354785595732385078456919699247587753089290234498505677159215076607249834890898356657464943634342362534551748348938423625407282440303789995089250540537578248835141371888487082039652922138876967092490499303586007293125098922661079926361868302466994488284464050023195925005045406152596797214440496674612580534468290658573526661715167559750825351122092262134505709355736126928375032398117769828270541148675379710701232561582700939679681497893279370383613331239304375448642010206498676771999005070506617524493620436737248210810425712825429492421951988422723529207975190135728760913571525099960993044355023777157738424320999065225700653126951208755580682983087213221822183338917133190418514102142785131944360856232633942188069389184284366466410743260435386578763849786885920696466497604476018409002294689260183055225055079880696093875908349208324136291849907184357659949438648009658993597144145127189261756500915492733984886577798953862277252031963455120695190938480256151144068264311359650393273616360358235459441761437056966732732533362452527431095571210357829442077139045270709685342440773988545228997281503982485419509102561046220518054890997490927938238591389533124534749346812107690929346856853975711572090226695054364465713320984639359007296025584168957516298514558074933208893628139943844976268787260195615092037926567908860356669778272701570384670879516956659954005200788177546102462203092381651180803880185041311736724059231459342829640213919903600003241587442187874796789956498915110776435148945157712035627225969976147900444009250150681277881591954744253572052457692626335751417736930076323093057003690157571001119495054558414194302165647499964871991747349117693338226838015745541910328771081864308597152360717359159533303111919690954068651292069120270349026201324125249122114865804920596718880313634574524209373609217131566004675924004777017038715735762224316089706884374788377251308575808686667468469517448382727976311075712040439780904332947264702193389025690335637141286112048464370339094284692988597263329122151363952268593462455001075033447156922431150231453862642964726520463434284332092168858963015022695857776747176845399663897479218431854045218513179223541988208179928868705031911986312007295494935398870160916600830732196096071391972087474359792034049883471407716868020593882886878961680511838549739911357401420765101883316971717453592793630944832356171469520488088580591557327399201485418569379076701622361505722633459151594188917614897354990660317584389168722760959717038522870064156525039698048853542668239591957202688294165683844963139921504012385742037730633959173321854426496100331665837993874484373143274823404886451887076547689830243166734993263897166284750999225086523419767125688543888449131572331748279203383939055772557012672248062754951229102971987627891471689386394360660781436387756479791368976737132608004859114437382841749865395853754070714202849810108170741184921729197911746751412019810094930359585758449814958431902926759863715033154515095555182631057971008034070919663812204151836400962708348090612879919508660480350111464573459461617715056777240486314024927237674351582156275167122730539753135983656433177375227720400068366260738275946004924280320609475059340694555503413166146564100765767295395204304182302651999491707949687826116867321564312509917683381328257654631832148240261783938669251155286790966121895111044668895031470208405812689277883180952386916432514803625717903806012896669534379647206042554224283344094361953371818025986399986908757552601093268644945138041887386581024493178230085990593523832764772095181774037611924900617206294970249648256797010172246390030870514145330996280409403413336062684450390756686189284265477830386398960913906887276825104475171974240680971228389195772773372541904064265484100893725482288536454458876467954879988829013799610530213718819241083898125938131543635412720526437963455336810840981042687138095940785497051077283491717320995632611483063786512512525347547316374960699550778781175108293295123289401418602400629611313085176838250162026585445483430785020422454758833203649900521788932407706200032243648613951274167565399938340601463277390333747322827088676828800232353481853875309578562463596732771560225080226182779938434545998997068246993640334918850757863401771027844842636797708175519635942998566562760541217171573619309780536960024030019552473938017954387118205621642715213998655007888333768216117560373996340354756690038764080876296291925593835241971915586315336555385660022684055198430918261729568215827362797043850058632218422084918934820034418210382500068969359309276398213299047260801691452160725601808698666411639140883598594895232162419480734275913384409772017426312896781489331101527162713264787396588538443993434462882673586301483770487210137879927844485401935511761362217599254603816235336110013100460870655226682677868532507246697802659693796676917503259568200465472702716381301161687614956104431093091022681735782846049880277695801934129441021084537725588823159667352229016502793480012592021161723958262343449672215879748792514596273069380089308750650301099790456201141413920521993315832142073675005489753253490084085437617408156496778465981657529771366153885657021527669943378110774862127402403684105173983453337250150536181636093292818974564207265982894383507994931997156279678277416970349251322353340543160048902928865680582693538971530857189203696356871192227611383007881624235543798212111994542738900570452925045904418150332659478486551833824960691083413123142108269158115282843309134481484352726087673627298828665593362618484302366683859545244166038701449131167821926998359189500614724763169102681071573432489054471931002922519533918287367599084105688566292855403994527767828792926993892695693813871922353328233158907699647703727520934524467513761991827540658142213419914476984975383610619200245045429655356431985860222505553668838149902164957562598613187803850833035867822120211755441188718387768841923816134159831679630974828867870012458668812540522007337325282610691837377300269439645223406196455927708732566930514039455469675105523640380243931470372637554632121611923490257090753906312535312035774058748696384305497248979478761875069039916671631158891828272257735813525633021961384464479015980069503497013437051273702098880986059936038754671684905669510807543330787003464378982217343845158603902261836057392325398822379188945570735722335626203376455683681100372347663796469659837508871422680061953538905536141833397320060818297094596091221658711094485651673239339054315194874935096076406999203755436765867049005493853465620609616811619740082217619447044143892368576032849520569144669105075953768405937394674955322099684761833408742072479323959411052581072354472467866984551033606365698247773133026007506904702847338097747153896888984301419051925363121666391561265234618765744202561782034077441775720757211553706373264796531900885851266257724504446402585623286874120950911485518069788895895301925500137843055926910735142416363000969301673814360318820818277322890974391697451616595450255778859196652620276992098199435287349497370940643784433165912790733249696538363875571387702222777194833214460264578537913714112637875360784355063001168123162218748658081334440062236084864374127331898124437038302073755721531221569198455810238279625317751578917147581219388524568833226069228222911159445998380387195363034148617217212413034486749330961444722363556183632286472596586134754935506917443568850157214199326444536671292089017249707536861573477371476462321260451269473607889509314156227949914613549475989416944810054730966362000025008212152342401731458275266413224372353495814278435357044155832442439821867428733047177227414933313642513115870257439791928686238518378391433518304819399348877767287460364015885584998150860843561467320532001700552783080055892970832794793268531187405285681263973099145217104966682560880813012742601151265412829230303457550141919453293356533618735102505880569796723125580602004728662264511535284030655401003240733983598196580780350914105928048636293882008833564624058840566246999181476448865967418318246046117646268801770531774072163985814425907562251865598331116431754116040416584072721549629849978015481744270598826102947719881442241079295752444779136463456197113418685767493254327705560289215620129348901546523629073269768542215499429679569303555923399642610111145868427292647535545623021949959114307388665110760476680262818660514835839997706685006275665173082651516831424783188213656654037676417781308133331098779853895973035004254501601707831111788193978821448269431966265241190560325289181263288887162864089053400247025023188696353609733778862456849049003029233360822460698762748546386643270019589233044508557668519328348231512566652173968019943003399540629487062773265970869482425175284810099762211146317852036254227887229705680711338569367001033770979709849912064375946441277848816896020779846387865669155380574684693747816336893594083956294060787903430098182498928560320798102488057894490660885225464993625836117676209892858857979456896331569361194754426399979743047032451997979270154510449290408115420318621227089173343880272764703806238517221808627206933313688641401198595877262153091183069129078600192396427897240987870758481061990750502042894566205536779585509978013058413760727547447136991212540198284366745089102806758814530772491951233201764171572322390551684671355513460868401278238447519484992083460233976441709077822013980181617626688837717624046564845009788708581279502166238538664659113983821094380042864574557523512617202589933110169060087931960690432582305991580231020634461540990600908541013578165602495087506337162952375970387933539706127299361925127133235221764340450963669735179073280841967454426460813057139766080674319132317115139934570908461928113531416009786725919271412905092296231057712666980741862812184713959997025481392922918369149470467269991760357031845932213767091298755373106200049661774030236651007002883175354762379854649181562620068143842599446015363930789849712143615013353714534185925826585518082142586489137860671136406125344324213879531982170186556308035325339712403473650350005544856835261924396657808630024757825056337265485406377113635176905550054190182396215100128995754465774157925002215501337668935735265559003799755285535488817974185309608895951584355161622528722368247202520535694777638704537323561704185018735803851710008784477129874664605496071963803131234751681194095698422391504883639535223038633202977412163691680765991482875185676675469373934089001775092384680821449607797734667505883488126544205399963384198891462557019018257006219791545423117636737273573751226687576825283395449328021876393315271663516962741421071014647239493510460399458306581803106689649618487017399189817213840012051075192013194507862354995389471738794041496473968359681290110907884477077681272674477466428115581883652163601918522098769878756509028165485306721466464453137228758369830275254535140739650028645172942187641768594472166002693562238740271323807195539144703950943156883008682427446012116002445496457069810720012269338414432468620220802444326880289024991547271726034488495482717356636302458966746902366777039045370954868829995010879035631145490343805175390972837747959618749907966657142383422337044980241927921380723511310205222899194003083484099677998617330308903553720136860401699094535053366667514058279573366237593022433706701551731752603770911956727828425264325301326978014846684445182240959273192069812285445800835592641860264202464826331645323959309472750172613654307611433403232234035408008621038943895088594119081339033889299984577346929564086469598930087686895162600723716767957998285647702944204688058575167298215485954498687417492330305630730329141133482658883583119393853288534607079365630579216602206910669608583729558646135945937777619167208556503522523330442315077826856661937115104504280422957373968123342904974108007325715251046492036213888139879448673004986244559710538333750398403127822675527822398850565973399519626436236629488961627812234427318061523972618768323574828491612086881031148133610023450304150310491008683481780184407851148003104459219234296955809136510538010109102211210328888605103435603476322892263377112927739913472929269300755970171612849684957859543070217222702164357586442857099349693674606943139153142146215637382680463593056447587661290267403877911567552481660257744668229591660267850336814761866053731085313986550831509862576095655527530841161441281404573088053446508486174244362239158065053090080202002041977853064875017418844020132066509370844749305117934123790654604456490362928120166054798538076751600468668304810862249641197698398409879405875460267017277303789762609814077423330369222514790624277311608562314614240632883855033481622370981789260283008448503965079638685774818570411157234677407365266857899551463338852391990568113030793896054064722615463287137085901827546675643193503566585688819882342393882415181132604745882042864133938999897096879625236063633269577520313689553551886320366020127474544775751424028970312133021261139844337324984808068129045295345301188888218403038997280017466035871600052830742760325946152301709488534732127777525429014325012285939702594671613312499071272901393971063829975575313169977177742567541609698856625584536243063563598483794098697843917932237467266650922560941697665546811314780907089216110001376087640927381341436989765425193493456859386015290975013278488207509929297803620368013906258199801199053327227036969442855818579880889583834299894395378705589446735599783458659812704867960763105243410686627749401205647250019475584383404853159146480987859514789008191372114407905772556254286671233920215825862191078218217437559498276433960147194084515795475554117833289703433842432580957431986119932497178383047312042707154404351547610796796577756271867247786726016228823096874534771506235238529623257560275868960036943953659788134437733026247825366195542047022698581255194920339678480819046099533222251521585023323265766671518526126360415642427378980751001428082984058920064838161672865034158197242886210314092997354999958894116481914274232554844043822530424027567992128866003913169426661025048879629272158054563646056114305262387037241873106171197984045862246536228332760755629453168076537706701198178120239747000675348774820687226156572022870669329521845197260967436385970043043553876166669132228526334134172363959478881527674769827378403829664669722591434131424814306579171575202334349866552877118096552363285794879456338568452422426323151871395573103444509272868264084105726577945910212098973705576671385070915130858575245595822721202139797642136583438328456557687361575157543235675479254553384608752577025271216474509649765313144348966419973445049570942069369702069335222433017956844203370076353882170488289481203224371645459359548730329399844430751212386364820075376108415908679096013162306336892860645557965815984260769359363563807550983768309402368773654904474375569576482706636284917540830348598832942507458418170814551370642988651244962334308585763579221563065542406274372960538953980828598353253258353942162037212488931998587338610744315612696251032026399933596275156975721363029815251480250711188600700725927597268344844947600429446096661017439688550073120438517221477459012225894117044064565467504459607024403915993386964419315350457504636724658960622032754957833820668568831731422504291383439926013854490331737052805825648933887821505198759338465474582873479640056787457591773075616101863411714967873007088934305506327483185794199521825747261841830972044011263147704683453025633156780239985322788233741613036319273544409704418483570214639227999937182323734360397270309846722400581378193912845380944550835452114953358470572548012149893718144042645679073348909117399223650385176220910977168891011347333369147079849088077555580161958462055930303623414680028297537997623469207833168972945528063116038161248501761989742179400482209771726213241620554344835612971964803519732798797604886996978959257241386083464880596268167521515545015473945825992342017158790712216861868433875900507150724849026511014935115955793216423094858685547421056858149886183148765230187351943360444889763174976472419718698764730199531833936476499850117957132198161222826835117766635605531617711477932463527591718162388213963014985308034330466757210829270456704119899404193715507726682034413075803109952966570283147951614072468307542546074063167162234582729150105641686145695482255785643937180015374869781766535388062873712687524537757484178730910227097949415947166574649894734123478583143462745618072321886359929890475254811102539525335409543988502364298440048989429166633863703559869554554379026388557829004405662257927103477554513282251836087333286444474918124876174901828780280803755118182333470916099936419593934280086740620612381528180650303000110591491342810700991984155703198810629172667147500171285608278069545668256896584080382526290282186415430914752890845482712839719064432787575396735772431630279318332004429602500177770540133807986086613503863702556084228477637922936661932681234006481016087353119001268845749461242553747914642038521827900016136109965771039280613304681017155876179234251399248835049852128516842347042848485153878631178952030582230298379859616383435525440781755827341516893495163983951134090197583008604271448792558527186540778892484677022807972318910867390251320512392008241074976434206552460125778028696715665702425244997590410202826216271993147793021476408121785387040506694565289984854962471629639722233138300212256868479831955202363999931938018810418498687522666394647025611721160653513195096953733600162780662224601699931559458748534567036023676654175329326469870985578580160753956695360330320265345509855531875121066001436552210624617235579067060400017813578260445402866744014842483508117386193015470897905453563206492867497135085021823101417229442640499195970080806850144428729550625172079127228683504838417426545751318023205349766489175229950590629986937063758338018804524713699609896351936011035756671743282093748557068446247569470496791025150992416581531394957473253252458659937948075717757657285476534014372906167012350325127144492654623980218920108372502311076682264889848027817361608305930608816966676020435590934209196124688906222694912788273145730705528909866031417009057914102496246636006118126121505170079562641102083759701211615333971191598027182607990530996495611692404600337092315373827328261325974385953942105277607551318403806905617992358153331134968334922432804469408293126317670950201634033265046615004430910751051129483012595502099113319524421671660118376995830963634763376591349736793981576246385578629722463929917355405522810839307646131875492742349748080037625720363522895610683587309805671685233398059509852276176482966304403268596330394912834992643118259660816431120228521729489435789160326324347686961276593627678074768985332387407890855471823112870800904800933910643516680248206812910945870351920409032578560759192398694234380529409269066033776708779661950613443733747852666796537048898442536490522336225939992718739632513128986603707629801925859196567225263181486418107817630902679398325951805914970418396597528888772505968647387360346636884486398916795230969301078666042288443669975626143256491015251393272311482239914428417811879027855789305405616687129480639850431399690630953329062589940078922305746613528562103657438926513653625168507196449577461963939715923906116830037890738296674063234556433810398916783830576786645345791981375934125081045685586618821433307591673104088741027506794998095698381038184663328439132429305800099077342819885228278346778268963083726757016077631038582526075779949350506590795193450620674297739206930582233653366178905818038849077573141936055827626088478749245709610506553745226016214113451577214640245654865815327687613702156405054220841945749108473495162253678569878106740486730912311515673690014246006734800514786149047755389553597684696267003531087893288277610058881156907739467062209337028966424156716566814053092340266644269626350754684247252704281926164283742683425401349959078470001017220956680940179744441362784059184536062110426214260064481881219404677393994228171015448058033976942310413606483466038252744110392651193186440847748634511374377668911318809397774441847620466357611485600337367074263207456855368112293798061037892019300358843540800726139599342054890079761476092246272497352688424583400628131231983632531793663587949426048901544109237991154464058057307380733569096955735895692930803170987798927322846310763640641555120748527370021325875728884433750596840121625277471988901482412250674703940098339212138558168249821713253984654486238939571193841172953936537534893964039384162103640155710455678429239364146859760166148274070011957012313741488150765076096480223369464687463986052175208966456399553956292306510429093702733185954859542755083218723039639546629141044919313219944239820002358733336233939958978689136611241923541498187971077235384950493739275468903572190603417546987321536960738652317429484066390393585612606021019338519011236170047553699578681084913717778153815009300029281353230063931687717052219913862209904226056787683817879802975870993843544504401687051242772449686237483179397196475562857823489102029326197175036452392061111578554693338307200176649431224237547004414404157598360019782328771394524844016443159631461657197012341862011073787883213304597240095431694947756151466888895000770724489465954620846891222198538729198734058900927602860120398715255983205562293977483308927950696051824964781533476407433956739553290373469629971038037456735246259958273349047059531311410346181293828780348002395582206355973459170471424264068340160431261119047906203193717644065721118919816039524942619509831769720600896925664370373753280088151446476541278212480196609577903952228145372822417366789721299116582953856175682463944919440787407839815108383809095637061790628576245386764968747963213221703018993914628282764276266295002954362648912984679179630862560884508254020045775047077334657132179004333112325713113387297250814676151739668839248623663796608777594081600279473228272355798330031618810782160722371330360306717111533430873123278299094071370122404927919072865826211887037143948197646818275019574112803258003742383633822964034912182624944565684063107797161593335547390033666992898949260778215734491373017806032920046233323477743991864029753930708771519660211537912780331421244260612971857639252058268494802431659622895537980106329198644940276071929585174428217574403873612254650585562319564059366731129010796671180891764856567802449921068788473780341932398418595194854083824633299557299604699787629716527705865312973648464547333214845230083367550024340243905332772784306651908635576350960428979076821102271354978006727574916209707271149569913442590780013185139413719953231519584445967790720037421587455537675629261962303711704612503959725565448515358183124357384760713806312766873733534319115887077305374801012744610513929394186295495182278493554371836838774301095599207996398225444364681701225218832631822553279845929993331688173113142344087994552237827428703880186500148325457992720675801147133044731438433594092682331183280067752288490026235146899361157700351862646675552346698228933183449912337046494503708670156105931717484264266579137310489851426417366285263066858219090929618983862776350086496208921880911086809932253829140520805287783318703878426466285362025391669614371316216131772525022335402298041283923407869978803922889515243705545781980762330903870650951643076906724950394900453778819003849854708260884283484914960134206122446054861626616174208257268564694499698770548610880376871649164130932727988622997902995505386152960062938780523452676462393366250506926721535378008367195739393885321995674055854283719530654313427586959074654260928444224063290628740618917301086791167104028050917824888718250544691279020235800979194003657214761113391474816157765279347057405772423862917675396986602693894814324437885698099629158716435717214497032884523547525856125363267253556100535176306857150432062978025572331947512909536694082661246149890348476026615225448110415587041207899549640996793512559462516052290349742980109462318472093864680530443653933334677795029006301278542200670156545299561035203816335314423592271366434073246738700188346168162686787302437598499963474058403717075862344414716996670388756812060731874963123225053914548773923341463905845594160229070856139427343250157648833322725409438699936813459174819718929718175948132982781228400834547565296348957659624070327188685854701883501212401989367758262790193557569029965606700558988529280993389607568441531158894413804336653472513552583390075587489231235413495275946507886586940950780457473460397116413643656471414575810155997878531365100854252654484854315495510542359277946679710815427356833639687587982193065869334167300410506239696915005390282500748799945353005502798202725939532947096498379403835369803954638761861631930504116865884106149090983794028049476290561572034272830484107665928025326641742529958110694697197653426101558303400342232733542860783613976877626942047105796932338507896444913822939906634427361989224154870779801623080584568280087841687078401940870649308539923683851234627664469607854253396574502499228241965500405972984662741948198753649911077729737225409053999542281694656480541448675193199917405991472187290166590531027077671013210179304849549416495177225674412268476356536900793687000460414031819574239777573483968680284982792338081051587265388871767777608263028825107706116973654626754632108332408223628972808761366779040365198585990511461615835395119879367279839229332978179213477356779112389957675298504688386289444267310517837574768092602028063471559849683486101016646548993605619437689091546339817429756806896671952536498022133586572826259872989430823681927526836504875468153695314185222728368747873772063476496974753294657037065416480793228638065956929013259349364269549566831991939005530632606740586417398068729982837798802121391636813268019777100002783404277767893866371356406416018947674949533577934196758205768196656772582607547718708099955111362381909325376594212126171143259353251987197065799118404984149763641717265998273442360282710956725233175015268629177109611173466309087417589071615577042491188061257561641061496673826809191305166081731226157670992055167181717399950094796487727601209098514711918661871939400332607150233644876192852770939626259066886449591901935089289318493690037655054627638142902691317096451949387894359265336689804097018548800434118070920472166288831283163859755693320490878776882331891514355094781620022784717585035770789336828428475457549913396888750496127431294964517263267833290623335836254248817500953740206191087870802481072316861368752790862192247970527324314769576117909530055129152585327850227549971730426578438308099332460465446760142553453800493076066399701879873257782843422471085745080555646749127818083517424635229832087473755167584579690097256939213328827540028868983070870369519617205317578653997452271667101110790851253842879745638741337723027624915458185557692054417601184191701014233373521166866704037962880851119089580432181217150377272030935613563612738945911921266259902532229447175608827852524935993849194372483850887912983115449693194447400400268257891363385914236945703664303416850140608410336980841799962732206963132889258394891642038723420372570224723948732125945666105710698857857104105041602097103619957523419740150551236118003837118599689098858155831752268094355626082304980830596924791202348222833951728745776613518561579970644510062248940966281772005692815647960991409760540789883431245425386618675984966473154054082640402804980904926801796595392253534060362629036762417747159199652372083884156670921557841051781533577525409935302458584082763710797325762417403253524499853646581849328068682763191195899964647180112437265287900017382847225676254513880617079480929610456021548400004036324027973609481238518182895646735423278479354773527918292020544595972891926766909312437753635229335321749436168365022486170188801196689947276772168496444758679600848782607037551641460451592868683869437542771166178299751549837984522061880638274562292955772000833413011353421719471453652952772898004375641437400470432900328363352624022961748977247932237425199421942743840151543996887731251253393022383658544410371166851348474323239318819387333388537536538307776273198619523983346658338657918636452665561281631261206156967532169031545165633201873187688987750240091411079973478189787903036545826133030334465145198291159826633216773231580169378354082911151189688510524076124125665282056821290366338005504030577184756121719124096430784989334864645789405900559838935373281942224530902315754190727668960485690192451246047400923161149055522217732664654925701020361157255759438907733126239087226736996767123862056764906010476693768669160754487912160161147279589883369754578650821454105416504328423544356879887963098107844683680386383234819435514185469810531437245452578612069525965480052324355176538592842017555263331049868322593182754430074413058783269429047620441816895746988883307005633833233790969545461941316855480740244885419235192150720804352200710761851828029229479890890119901321342102147893918459666908338792621664404513816064104682435736789803870618569344655136966350837335497501535134192820821822846364136720701446318769487579566518168280746398471073165800625061254973734176338099373922713082146455740715917909980707626677364595752497393748242224013371349520875041911246988783507797318595332811402002646920495197117655920581035060661820491891054124305046065943092628586256841631440224338033893141691205264056711302324547514475163667243128023296036808514893711874145226152889049259581924053310720010879516775088227965243859933463962504575911311623427656018181797621905071600109073755860370475149729598857823266782274951964795939576986229190497906878597340258779248323006603170819911068613774402880929047657137786545174543187412228835172308455518601032757360642332558558347047071968551006146770139980151133178204745122450169182264562659220827345197819937677457199308136278357180226831208169213706571428220169116148393674733868818343480404150456081441887850070788506546186485341957670960582033759894789608796931085115381142966123921971429320544616023513900961563429679365183426095547306681343412445538123276021618234462370629886486863639962614701511483711260359948879615311601144557826422044621633741657764447017684009177176478100945754243073380627133887152057334994379982311700477966981215088524333040592448040715314090850869237274495097818971886092436817818424467361851802615569697026330581994687414256610529376000037668730079727960887885827832165961409380279886553749780170229350150818773608770375348482688888216873045464054581734717406100615897653527961691514838442860879000334542885076656462817907058047202252100086263039490300805806389904855101784461021710231085239809154502277901470452136390192045723790396862288698318831675874101407431341985291674149728988544792062241443375316710685983346819947758877917990541499680373286397515594902090306080951513994682809262631183946254486954148561447523808797563998110136184445649434804222580303798266105573884414010783381264665568303316579402706559601316942000375464681985069179507293176868249901111759094310167982365788434055180386523621189666774216875817306523807360714974099973989508429655067864800395889124453249000561952498864222159845480628733688764110856197217653552252347096260794462492689291916748488664430128087428055694626061261264274610501857017541589276859230915501639766797458738648472699610985801892064856197903540186191589324724897782341569931865120684923236352828041916857202006330228683829751430409163865090400819028442978474897094395974775697414855457881260577017819292595807612879948283013203109825202056908735535110816091054564157356452900443471743437812282889056752082927819602295104263720638684759220512012385305164156643196036110076969327145283276412576704548374742983223074969103726707734695538634541840568600378271327751398096244914550020597308026059584294089782743606964952461497313508490754059670334415882667249509356413633303757547456214153260633597050483942989203998492449360341563823372421679966758327724450203568867907223642533270087093075412981173550175389377271988002825405610836411486163267876276377272395790188457427771533547527332209777930695289165831008878090899358448790172104981774156873401743026300496102287093895158984385298338351180726629392702605687033465003360252449805955319129336402944465080593518287663204048026570958219999460439834019037628590269494841355873940074008242705866197808421498268611199669305515234529224154434964799357845153932232362392218986567771485533315285873506496273157935559949144474712888640753186823683125614956298503245488784703086679547795953819226372936904877727435711251172864789291385252095241076609418448074953169410242828733896939735684319272464827470683103867651361996259293761891211402258095953952463357112106992232807609998472334579502370457496163257898720448764624941628890994515750052090664910027560870351159320550363182972875461475802395903284556394765650862315842276948173289336420886420099124192452488821677762313963101769990411512883482169065070724112835936966231879358133719088849995930960848503530386854995759210208174971880544239014998668867546364731852381973890970710855211622376672605715345913512864222609982700156933199903982929951864683809055915190138528737560764803320546572178074192571515319850640570953120268447564174810565722649489677832459988135933141807234382564368213122854356244759231010043987878234553544592237245598693264800310273904870607719862243572883275298639043985903701408283586191478133061726866255401541670935338323351879044692740640354605677607726716808047650811440700680336746237984860639512087914725232978177155245071354882663038918443126297504255670484136910848403138342522709710654703083345508457914388149634961605550902094125687200527471626871938782502301721345716205414835110392098082924926321199905837376411616333417734486709949618218543558091149244660015924526534457968095541183629292825843701433638402973762673770445951257269552379194708101869565222364988432456581925974417404750507143502320075518167211869672158668012034051686678191946657753656994628947421281897232689676222225993771623672013337059264245236151142199257191322863399741504646989284838761065893339601946970064097467392896890729284493976360810280322672625048883986151307512090449911411585511662828269995764325385443922298453541628766741049624352924886334178369005987149477049911145540712871936036343684062413485370140283829032489270282488427482431717370188516660354270364418983842970436458706922762261405232207941627091093673440023567138848781470691193958562566734947532791708496906997416807290162790747924362645509780416713014000585115794707731023984071940753758444133726996259698768218212425086464799416769453950765458375451380618507296838132482889006313355573007936337043782007103016740512218834392305184264284341747266786295394542767290432714707950118645918152141202497211869023611926168597047576356112884660443758494248832960607101017438608929127570613488824489119828197702816638657694942657322031736135467281304099745289403559605135273442355439243826390089756514427273105635471306511087095514232424810706348879873907072363059185682667103703761390141569637635171977793586903211436675120989444873272399648335137877453034456941150100239473473648095016575187858432524344795078963475907017657989806723891216426245181683800944622586565606480062616266839634657420632968909178501902691347143507582317835857630329985215719673054961765796534558689495460917052455978113286883708951922295824033979290742838813212056528366863477330273490560896675500683943834053961352908193880952814378506254433685950024123948489877366357523875979880932903570818914538608288796060994290289065904387310226585880657285648830843347278096282733974916349974957903982575545465131596443569671208848965735269439635179038288425966684883315417378181311268937013816777568495158819013373190110178269884575655829845658840149962761915664186351697404193586647067034698134650627827643942240449168136922074072424495802676082163284987595849110510791987832985727094802146886977046076049662259077517939832992440520306439291928252919823924723734404258781495236413595612779943692222972293840662544323857246280125976189890636697569408803219538111037461504634363971953080018460167158129472399593036088861533502467370188484233258607290707680382581250255585529623809327840472929374446873697091753784951089167087645710388772547304339634979855429873911218156574543044859424865289700640734426999088552957773413881012614263635147551721872600007836416575423992198215082578794418082102908686895760817181734210849979074857779202398608775267252806698981068536791385826989043461458288322099104742967435323802050117250950344690824382785578157820513395493533093404073540206913936745336658805265616369527627742221135841858621388011475776381519668268064902428910236357196877281976849432715322879219003290033214620117048884482819174949134507524699355900341084399963439452267007702767396691834262147606229468990889626243949984529251563983297642677492824538860505168769756521119805627826596200680807043765867340047980563248563795981756546145877423444525333428175481428765200212723767001249502489557753050880934491641868228588249578922721437232993971967493430358911048294974554933081715122522560578562847136713007335232199455531465450829379055086960353227558441117265238559587842934530148983252967075731505605896475744504104353773110786120422758421799091411976707446848041920915924119877089812025510153773199469573237117133489073251204299938828249805642912878313746207312760421974637982046607948734772266035637370027950181557462672664104480795310136793176664746642826441629952355722321109935164777794402065349551327001028764965697345038981027206220364738504348025943134560403944564105051604212135681135966715232646564980116653205017335113606566822967249659237101874023673328894380804195677367450855773425679827217405982951713661996649950752226382158480460718427231684056538999983369628819590612173045452112098671757170544188326342900318694325534307912337337040248825558065637020304022753183448090750602904928669434870112834522665068038043710429497099319321792496582959648358516355328602130954398893339332564421915357210437722135805994333196285810586618070371204134810913146644149316263322550321056434171235777593459818300825576216029659638919650610024362661754141329110816033053005406542930780052378410491736235758338538142179905297363612641532461912692844168680324852633196310300554164152533079081319750631013642516986635612495915873982919252825774270384825236705261901630134680285646505067020010256836123859637687259085460695501192936292005861557905286264631157163827632713427589075517458114276862156403810224291065116613598604566608991401565765409121322507317904667677427189671485955973353478235477041182702239289997513781459729620466436092083088224372496436708007300547198585242200274993066735963775876619563918597460457587670528323734313335768609024061104662430673652099355326562061231631315411959561439638600967511256461450330339997868756732760535579927497561699422956627415473048384868964015353730899067071373666955348169370526583820647723482115456231084850849512567898352624287870455667588945917402225513124144047380405189010701471714206378360043814475089382308861664021032911295128544911015181601800881718087267835665734198469923805119362838806649366448642121437698396801521713598011049776664796733449678796971257850638621863227624581647109708301881783593618853960228015501998435439054037247750929111091457219001288405593556478317387149811142063423199990460638020856962316420517272801055915847356809043196169883198711909736224975291950298036789466805663040176671511880389536420877426309978532705790389020805445013542526091497913150097363084572119522964485977684173183290815112412956159975241295229757715465930112670970108648982181451954779255805515270549581201737422138152222212534795241126772270021248463651995241758193153375266987572132413864682428791327071990288825066538255690782487329610235715902644196673750347730600170374760977267834048580525918852289836860441471632356700940297743125388337160043715945137373653553146918993233109103598645742769723790180535195631907843429424244428021106637980897706435704985051236604327156207487238626443850344014514411319867243199846120977088791523280815890376552660715568287988450376755365639489008936867261213057812692295638493268580873519054110438027837069619722597919275038919075562166058690187592689866176010160240861697953472518653445238261672935875881826231148100157234228008331595064642588775355460404845961353041379218911559932476163215085593312728849480404358608957599513243716762154797084465218467485004382499101188786698939356487751749079201703247271216951987616109120782723919329054593152753450927906030666413801571408505173361131915672054576682310454837145517477283870418918964625701576802567094407343812315235925408574812802165732351100029412139398933663758887369729111909782984738614689709294861531841299819984902771200585510552295448891270988888512667574670601732303071246643915193279036813670846087933459783440875091354251558851161422274580920899022870319619633950986785567124544310386224239284638330421013536816959629378731475354747158567583746626254542172527292948554628872062186950068501049461460605743223700628972455646302567734756287808547329812780110424380633213480947818278169231511590939460501283593459265973727256655008388939134864362564199169203346824185472712865653632847077076538691688051717490188320227696429052948780206274807616333734024574896577559006984927432710305790615982898524919286832612430270048312769104751650674821472787520734715024900510555977900631461752855924558817312980308638161708938982983826781149488009762355293150300791438762788343819972607016152789992796561178166942802758839683426585938115518863227141075489659658131770731717494365258503551122056604289345093329167998783744533345547901716691161562010331641342330011461422650415963144392290134244894899314065967210398321989965071188841461814365559455896224855854987460104099237302160703255354375818951612417676993677303617598784567154970439414917493949275325836067174844456333206182498200394667510396767755874504028555739318517189478923987660728634471546842353196366013406083159949586546881483949511169606391543495637616486316873824911059295218251961548053435359261508298579303158025703623099494892979264459526010877192964708529220327483278892010042239092117100079048753553927494112762112157811042118326253048678137854271377837339204347753721504236772815445418568090534451214676514011481332969881180522836401224947838037684689255257995081500689779732789529354729251929224976086611573023618655737107056725381774051495093544254709283516422116849635871022484113591536274454262066256411918966554428720760316876953059307258940717936739369083893201662617418144808241882740099755453411977006166986625625758985664674288402526491601391364447634508168784322904106103395005889544711645028501848583275121412007358665453385321380853019984700134074011405401655821189241545793537618500884470569791036852008282318330402218513548725709817958476931410718322048850033107372320651938854214505241595658986214698830118576827132414864704905041003627020875176424932026400861725510736791474985219098958466959295733365868542299923009699975548777231278825942426883023227621719157072296813054182890710994889706742604224461150287536654884838845325652765782148628055853612629022507639670326210857580727585740135370972195576379039559949185322394011562396904578728862943279552586889808496247642316562107140404715401089503547937659090565024553907155179542870245908353276218929441062627934513935409186792408927691035915208179226944052111084794885072684782383166801718543852946493766249029064166262223115823947950816244056570369291595878563496056880479434600986169300739966895655655988450120894924371902454715004761052206272534225627863697918668767576076585823809194974552840114864461216770460031974376878544463539893560943025771913784851820484856933927679645872523085544720966669460426169922808575127318620639321904839345278051621895886487962385751169536060518438764356619642154026190371845276084453327077733383718685868201374645069687455446451110192820897687614754248185694110699169910381061843454824195051830678520011023173712223201811151078455792517642640157773288707947403324199396768980618261168109930687586125663856360715493523905195152606121570228054295182312818121427939968439391211667617933509667727805720990103908624647716115664133907874126850313261985021114901829320604493803605018263397349017544712768224579941892119502693016438024448798434020144343556459217170721226189547066499271963504738734061183922429908829065966354730089417874814381907772001932728721221623104806865041541828590613711575488601724031186289129726834541996812656242417207361552047140049970199795394975704860373646032314189614139841977473001387953644742809943044225354464881371443480300840457950389220811500634837006097033353118923441841205465690639800436339822876420849348064917520477122173002482900593076817150847548974757436160091317691390124941382618408346263371834931954397789621276096774680103774925079486577329979842722685924082554412557004361564793892418671881932117335525041576569642701928554350566014233165487136031711257972220767931674296650681250334972319524238746494881725020489858375479567411309558756590650995959316220858874963811490872267217180719731722889587391733190420731376055358822714097820150495399241392961242656501608194557824651464796000486410065075005451819752510511216439114504887246184777907598286425569400055036463176885816237058665055566983373091753634279780843261859233516647443820652232102676261449242430055564546110431597708940186002834887221541356512904688203693799110935581415900837186486370136481596644802352328271202781450823142008510322211849637804520245536350525825967928554692621593184594319730733730620061555371834777144943644441079732172383649604793568676879949526467894509910090004497626775964287934968242630498074057375641501383626046248222680008025189189986737198462382278431664526142263032550166794374064089736142926636480133377478624545297222810656404833419521847974245228082198727578053688576382598147998105811055806937172520149763226977764504802611050253437591190845252810710510881337434719072916761995567582641762502819399603000379036199366923441995921376879246572475338815521854717322459473625292172323880291088315522278219389661513051067328559712511408732585219985050822570660786504435106061862859799935479054782519021626339161915268751683675750957764639358828745918014425479598439152433361611554026970535922685573702518508802417666311488082017553757133753943226870031449506330049793708212245111621604664150013666801183846968255990000337480900078452581177728497149206960989879317145210676187859177374951766465811177849261822433149459649692004086658924853528045000584784401546954052957272390608599120154493368409374513246980622079467590850560641191151191279468932647524253984018564964730922646447856723216778737158423040179525051732157626535085045980415947246330903857718410845688345172771246229962225002032993354286652061615266481558048894882651106101200144890977436289515956883908650128511538945659999163992643610531093289508124255769722744916092405645398454401632739816849019776038756713161411782773756696398280053358932154128563282276671553726225365496677359750078128628293788089742975048469862020751188851152924695681230615571835624135315420330847206598509788332310877124602398000369422345707589211745540430686275801468492747732858939512014953906970256507571144830477201360615459151035588103901669924774943619578487700790487045904044387288265087376243075586992160928081164072333140682237235553913586253130712119219137136308213146966992993551649855308745618444707880956925086029943278646891017838505891199230675338634614700914867027450432135671955791059439790462665267296484835367268763555711375258462020237666876682046049217079231000120461256047294835152113598748129788547185044082205706805195678828191415770185070578889037014324941142995524699194908465131424987911436268322336323401205836097867155577278101929467936576894357766988352850248940831927389853916036710728008344325793960911146320199166688996698594705646005923768955158473993695350297182842378268084207448650730898160573041093397830119716980340467342466596790544582269346673047003935097794931685427581140035514440624088124790660149044388848113968431975928267290748853743787713084050392128168719634887914783137210250700780069121826969404691727079662008912725780218973349449564745753907755886950275685627316045355620741728355849007281946345646184237189742082655072179106900017858152577219932406197157593326418717811345617321880956749761258326537820764099131389423577733432302318504475840452122064375918367260536205290876149001724896108669368532397439478649668692834402834487949083065676000873288754017569438242123638909194384249613957128669632389614978669667713107453280353428731678675626497073714432060375249775177722498523715542812707436653585772533205329624040422139142022906253068317354930087444781264483648244260937042706425196476157444876572698270479373088314909774535542298223721874292914455871484344393720055544372506013710279852274771203717940312153152918409767256773620465399003871181632622625001793204418815394219362167213134323216474528440729083074903393903093104696267372419324993844415610021553880139031652981933620645875189941199873420151682044199386428283566936783720490030163069717294767430562891196707018560092602124644722895739071024901424161293772963589417743957115215039983401209853056001402056876542868455202438938357674570371006910377578334039196893428696556649988378885309240696118628342332073548685190635665535128970072553822133779875243119745353609200002973091135898498071796317781616098585425048184226971251297308548963136296470008914275804964433531751033988683340148519583256309515219692051540050438295570886628270884757741693122432827697768275754698566789019781709597735495613274122291707837267694534157081097722487654872829099867310733812972215744521111243654736085149323410204126799049948010106390850825342536567195779388978588325897263034818577471882796065599408545792846399077645886618994974415601306806583320707044196898769958176829282743552005589707598607377053095378601257579715148987627775020356518704498439478211035199354695836199802556556213471822669022875091868732299731771927871528397887005897422217382850426082563399290796380433018127146597359222464344208630948936404728029809994030384011292288006344787107965533771815214311782276576679490355190010076357922285376270239190014239805034392717614691544580862194033670823332872785639984267437856820547840082317596682096096867573673303547373403765854913526773268625901515690402551463981520984748675620439315468936268406499475448465435472882186995046571219066337444002231376299571610482021513784931546890376342404987408394597302779068864254936609665418786052595952996970644047208312780532291256782691192789567554079504254763430007793022725890611827833736846270584929313664062914243432305144792164456213597794051671496938350910372420476022961878761548655652791136560455648576061950731094792231785387591502767320001196697505273732187683783463583096714796834239160030607903877903172613363934767366338336844141742455835874635322560950038392365534858709023080826061168517619021715140334592804424978150857296679117691055993695006927198622276556232622221258875803435910761359458693200125671644650999369484203924581825606528430738788496284311619163766996101480744214353239292828317407754605838914519995470753007342341958367717821714585728839669765437099378276396705785230740911230860882951742156005822791420353573943396936658120824192397164424547975396577637762091348167002764582786866582290463033187636260416389865456775615757368063240400630313247187868792103311760245485198372312760111536212714122281971477096725224431170770576873955891946713396174565269193267347421185319045352498385213365468618688467244491329519020669475922234619550868911860549235722980297474251985503635642616148457652966344328456867289437904037271333922173677288605396478817328085880549721552997191982980453431116781000711102206061299173641631711028608083876806884425240422658063262206882258201892498254302986921425034987040883694083321190714400746936650074163694808196514525277722857515217724726879123725249918398924765898995481766989569336722348267075028613268815265760432545986154298909137875601501528925217968377215036680989773034534129781607676680119823034274058357774424558539419458282634249076520124324990207721160754602543471009087323569392792875056448354574288948622112128862837273732976488696563161181848283381689683606675079161277863439797351885442542336579334095638346632976027354691220890191774156975243162311374733007111961225574901168351935404806200423173061215748591671027040308394782887767368231358898691286502443264475269114925751758135627655819628367923133683077252787312796026328183122617550346502867927595862863878745040329211716371076575156412965614503827187361141751779483321931332844111244600614667054304968166122962783145391743739098193739016253598471586163386183158851124891150011199000477574919817960086613080385219689146400291792602767029150502040219807679379134354169074004624506997866354990066013179012186235200717151443562507382188447257107001556291532666571546756807827392912967501269653571582509266174124033245749370784632477856519064372584203364665733686751518449133562598974586098890128440529921968690934914054337652847250944566053194545047000918499268285312058811290472475409563217332733746660834044374754232298775648778242612666540009192025678180306803115830489141430862468945712133872218541055554072781340100409020479293039428744244180974964730403118185130135726937444982767105799977399227540319836021232638934789427464619100188489379326587643074656115609514754364278699312823383281996409727643387429043940356615537565752443056533730299766409506307240788911088616890212441513305910954143997521047681077254426599543911297752166733004245671716331356533085464414045147862889104767199970415049768158794846976170660287997530036878281753261312079599574401373713700382906334363019151711168468046780149957041981272598187189878852307799869512113260731428117223559478147825298201052616069456399662846510702709379685787837641824054924147435873662181159259021714445044096988177080578251096144627507601061697766585004840739162152037443415028474165849798724915643452154405579971458872418262471668419250475934525174857563570741770881871904833216987203454519132924627645684540119698022202614292364931606675491392834381606570190795932750634070937183006246904121606791680274247864473350194910968265423840061981440025334541368513462414043382951730988636298898171758346697567961356617595159633392367495400205557061085661273415798351887592259627751789845699921990451608505978445278682035619072808408083641121938381572395945829857604316186492733975358985871479899574884823690783524090489816423041314602591057524990707530624783496336477008461114481032763703419109307632945179029218700166555004257248468003344859205843028433098146494653100303419028232632070008665276670545945281250116729114849874002711331347585810750036628754342298332730587785833238160632447076186315377227717894159031078274934736488546938321343529108368153929685633676128749600649416040296337475274797475149112169649686869057990639526147628254707331269571454732153698776445390856835235123525228759808029664112886473638784226666211165622196303787340711846747875588397911821486718941020309916895996443747457060592556624798189880248717377199342361836433969029516764947230935664511574899067995905634477114030577668585459027235225245736457729810252551407897792072906432638761118159205796619085206849796402897527983653119842243528501973658940491565648224498115085867803913662445981353236971589180267384852976542510822606973419315500120900042319007837840991433530598826422877353537169008614930188810550599925673587185675101961238964336793119703463801833634422845281684517285698668589598073002830219650380493786879333057211044331966817782962143626908745027864472621671752394885985224856800305319423686666865836382192543941323631968388993696606658078083309187574519622543602576510344156311863530325160708952274662237526356970440899327752086616612211951012715425099753012110353930178250722039451223662130501325234033053940472948049453198139903080162290568596727863698330337266051852043663657073757235288574260886668969592727373398134943045377638079820707128262259766267760790390843671070464528306243356556180001779951600024354909064019957018571280572774376994485317641258248356416544103567629578230067271913522641818078224513471791209308211768421671051128717050387984253939844676243536040964851374539505609766200500864883490147202801453976991743662398011584371759616936292313718591890590296058677069153261874493735578281519493743099259881221721732269959695403229529166188043160528983757534106353991856845050718129235291600331134372937692095246926851589707237597840019416996755184108210314199244751693735670475106759211897048137535733449458585301679495083133691982972673855113910106087050969851509831505816431425612825295253323487383861387530318782963274236017384529737193368509485240105903110367158398977759655438795906473223181412108314129056181191451771289790899808961075797776699600580203448612608505756135930743468725960544256369656086010900330841033075603422392724562922392540043307736855204994246597569917022289672272488872676554884338174163066422972018087536900248582858935540558755730543575752550515262988955810862213389217839170123185038837225346266642303492335229625292414151637741827138239585963109513618425090965330909026786016816558246806379454032584208633836886089050867317045481119622660480576348396966693566303713766762598060524179870712326682998172476846809548247605766679223949589374438105005256158138124027927474954376356117397933213802201123642600553301864683317206735991601960584573527837153715861350696788066493916044366465077982410702753450454085923104170280218719420819029761932342265139278397840803430407722815609154581333075395740461571251472343438152606796464231915737203865982029496333659980618949580742709272526783356684953287885902055886927172962803680792533594433918324218216107082796064729773245699933266912028239177772841214478606714850878687410592068368580196916568378518212236621733402960670809313015444732171841341967937361790860758700171054651954686855027389319442467325266612840089014011514799457229024752593364039552965245734758111058626327202935442364070352095696377292504254257591546376414604106947929381183569532715423677567604066791667029514772262146401197944518159111745680648238892723285977876943856070776268229388946626833424669298364804721044567658020576951511359633231887656469975184020114172823913863991186767797348822997871604550399933178952646885346584787594668700012219839323380326620046380912819881943094090331319092724070565942165264340691603039412272248398864676081736559334353391225970375301750937893615660017727164292737734014411165038457852902989551277504850640458748778781412845338669315074465348724601234097421302960179847427978617257823416353217855464573672348895968563251518755270931696758160774192461477147442986197713331588151994539367072797101940547248113190662905133773954786834011488970957617315837174803705600498956168143124654535293658623873730489968184566330739534219698756085968091169036662914125719400901717724646738783888483904532047137565286957543701978851517259392037569254842927066610566135059249443713559497078934148591032412040849370548039852728763426907138956993312175742170829286192249837332813598332363913742489532246437697049387389461902109866638298063041783789411555563017951917575160277022432198726862986565213411458931547676204041012824883257369427862061055973674379180412242558509506666720342254902477973796349788602541831598126352135309035902205707793253310011278083377042732116506835301061241865356786175929210113967907824198950435197756328760368577705063856236482481538379817305016360618157455650986256457948160658157951864267157386327457490928222162295044385876933178079377843753918640766737830656756308566738248711879652463178078234900466094675861436409090897540525690617011382178406967472179948257526627672234348100259719580211844419509945733896273973891170930181176502534882237736415702933039269757429971724164965716371922015578591042552461210316213056568307206795906872444071548463857147576167173038906267532772950565134746131543418596354012025416483764984915258646213314988276094393509896293911266451226021425570826812522850801425006786584992116839124918392406451082723495144080404629156047084902791687385106669232670490138013690719031237686241720951017076597185226580191718020725993950480818609955102468882846806632446355508040603113109768108187772489996599441507444175120277326795406652108379586291261339075181576533191295112490269766357286132066865396029850222520526698503001774917933369328418350775212921883486788408492422900824059130849508773154497017008491948207888416350023201038437760976768619923352523692397971309901291232232765612746266032047034813236807235342730228496829299666791672590664090060644742201340772392224006915762006741382584639295373507795586881675567250913619668401732035385379015542312540235801055790696749815870203076722892191996096386304077982061136775240572828123465104898504510146967256797404764597750271971591642513182857049710982278963764763421779291128743115992364881144348495905072628755314741493301909989574818574153606309971634178242656393010629959540970502519468844902526463819620102319920694475104181598376975630915884189357759250694245029593686587360783109314380397001467232821082203047283318116923972892235017451534428795537898540906379574553094359671968687281215940596835394906626703610176667137026882527590287992288776520646350019758677606947560358844029147643128522286013124582376057211692530805129020861290653741726051801227914725314045936564456243498929313579239283370431432817508342018965577287235321820643205532951912906233973832087731163362155731067501070936142398530530717596142514086855840099158989548122745798239684155322405183404340557309047498015459531878245177276668094931763942391262402864292712974387211849668389196260287409793991848917182268346815580471083570269680356334823032315512920334845597793364908017035209656777207396584858159496314124776675084874394240917410026364852114211706564654574502564875483600506400308020794724289915762990696731069718139581718569340223203732393424171004393297337013502051433445031311890290313403144998839084231538047448065618065878224986404738949857258388783835879260406290176871208694699498692120031032289514422378058249293481579829233196191043336749295155944032181003581040517006978152954934620475842292440851579518939745873246110590769428649621692196013695018460625665743032438683809329620469111088776491854245145636718947515907690000397941558086201231491939261124493638901931612317083144572083237265211230023558072618263455417815675082090103732684430730776089594619147934351997282744905947911858162524739694873287382679254141942041383396937530249296374753202549452169301165063797244554893760935048417810621738292530918654926826847181564612120291199947732349638177455603339913481096484086448317401195433320310503991334244437251565810783989582075617704747545709901188908842428446378075111490702940704318525088784650518197503639776934418021877729976830799514108070631066929923326719000096993659392682096289288960972911455960807057871115690605757109985367721659306520504572423075921480550760655214354602310288346801890036608756697426444413183191121703567683291888591614272525925322221972279618831721826022411120376886656165932661873527667347096606692146551124911908542966473265646379494066653318638687364605202845457421016084692420263149015953000119554239653121602274475267077605529072226989558887844130587358434961511126320989654061945660364014394420235952886992991098810535380557564257997448830045742283139938071212525204045836982612569496309838092972764750622402296138601308500804852995730159343808128287881972968210290759282796133057710519827563130026524995478777325587073600947933987642422828599373971426550864981270043407739045049676726805507509130542302730021440952680581546139375909999711285079949896772714289278685496106274609741395313670578770954076276098757226660562851176164508145305071373889747659934521124752077794736895822251567385654967235494764126233020193994109174812841265574001203744241510220778509290958143996321901179250529983859569177424044108104979626379375606380461586406556211956137051999396320807841915633769281337615405411109299503922883880623610762785591769594366398665845769922213855736158169935678202913760460181694606843800218521939317345354383350099834743809497796304396379898277111456491681692666589737135863001828413076553385570676829399483705807416641963600440711492244637857859997641103441145212853778273906254209901094227032890529712840708968938095571466722902215647197618549235745043558420198193585033489209452654717581595741069186435518255279705475398154820688602475402748197675101270811212441683199480941108915590801878678059933985202491299443236693058686264350526676388041481991315072919473375589802989081431603887024702443540121219673644749978644544589529052679746393137576218537626794150207416900056923159888113987389447981108094722916767192199925418104467291710766078143228011534477520647645253085118754004553862453499607604620394887706187584955965658580097262418827596061983178018739413054574594124333401971290427467723411647249313970288132874411193055523579904894428864806160018810138306067287012132158961442830887625273420571629848248558977787900778634798571733524968153169742596253620276196236508105950350760751864341458861191387083533892450738083643307719311893806575323316766337473952688352148870457385955664684736331314954019435349482878100256021863066041842388934138656495066561877346845674160863703261040024886369541739947090224301381601081832343928395926129653908966644678337048399309719379439196385816219999501519247563834410064493614157397771145127809302246078766689965207421304684398680323094691961003484298697257244645706632999465351617699421090786768346940644676474263346949292045878917351885658542878211725690114897372775723534283087675291584377493362761466470434636801706991098174331010925818224222067155162458239717514276757980805362767486970140536515572857974164933408706983369592561048244903560988074624311317992625178655524591008115055283801496910384080111421069540990354402011903206413534369971631844420784934638338355852053280464612713572616951949695423100050470179473750822053782571834951601083231407091685708822933959554032041188913029673773962171816775792757624914238609590382301192623319077174189827962458178887119189038814454652587079450750916582952496686534005477145964110542412878224855226423345728918435715076166405981278245467647101565363797998343191917477350268842520011320658205125678841692181305541321192460708025555598329632055737876266454264665944657539757808264330018674481106066095409531215730085550219206826180058876674193678242658836439429722547338081603233016387166856768157042723880766701025269125967069231506565751576552297545557687309943825613479097929143268478113944108291166583297221223045374394684429340520578365452913555303407379374753266460736247245169136470115127021852959077643969125825352368692614499128157419784370760974102418026285346802382705391415428581459278887037658179748927673552125389663488884825099324525867366866450423671389843848228716911397078175666385555740618121529497286287976521234727415988797156512465093355843987382064603898521106528222598336321293154731441311334205927072292684275234340642137639911406341818108972915409965607412931134169938480138006846157508739186831428282978987603161006140289837235071788098712675164259053426295108535631638501460070840352050218960629631803815645530594439092310205098893578757228287849455258658280151131283585424858444201248941196113688220621303096898879569148972112172791232713528724315371055979167693735194109397644801387774621846057912961961599883591025460667779994633126896629745143199475188915245912432026388488556241266137902290750676980258960875260629816921707455192535655302401211282194145893737767879622177208441426998771545879053612624283332748982946708809451922683217982637966961977408311711409930047115114650343969650281052930670009566816820253154035394344095983529540893843452852798205648946346755991679233937520526859331190325513983921363408768598556713957719823284847358804573183477873204747907279055496848017335484180506433954388302794305865426144817242792800607858380738963795341851969400722987702561082680695995001093202193981150618177315336133469806489474765492531217929472807608773945613748805147561549448227378953951132122159026479842662468409434940757604587660877967317783404714174864570360628927709224700009853388803941123327538936263120471193021750561916393284986014875246170508496381076276794003501053325476341376881392026327813052726803202291573911764919802780550089556154941055383819794687646376640460061845845664692346111999364558760199406036605864424469374869689507353362818482310037434289466606774726515539269382691918085432969117289647633545644241444564491717126841819582588492324317468071437182070919883692133754967595791680893972222327984917779486500895951584456599732946983196279777359517722603671177539843406824735620578915631358970096356326850959721428846291194096130583189162727391264121840206700605752443373336972681546029062631317235389354452609143396699512534447933038977200493950834502899110374822612890279191334151655176172887158711760771600387900219421646890603076682885687508127063251963809385930920144296086198064002229756589548741583283627995657116220538424835438594712540689037610874063238952983808588550130522839284821653344772282331935139769668665111389950467315296062979845588384003758690860753124971748180447011767207979471011720442327166394458396751050985095630557191139046343618535300040256851881575003234647067561286065423891400247819753147815529870309465691010561263731011054214607378761595183476740133865974424933035487902267554446252986134621438921663456845342979458886067074721157320467766778684758960606504841345955607154030223579257984190755231614096260315003872600156971265799137859912363004349242523113127611565899191225638385041198967505511430401949425888741749198649632224106308473060641410400474973951319311467658361897990925736852835834715055022136619820710499732643213128507550699985580107226799261428103047411253219746960284745222668350382812237189077107110852041971179763089948788482169799862089416065072375393930054230498215456012508127332953368597797541866439532144849616971329791980585442504411174475473051350029958189498743630442476228242965291466921071833276293632075889122667136680226911303664699662558036105310158201203911294019711738323298276350080578638561427835735100022018780189547599198030876628661960305147837391561593588552132979176531788243602605718214499949105111067764839259303454933715138944311626558711807697178920709473000485969145282376366674679861967672194652482282858446198308577913348545434331901423673412923352193266101474084591509810814761679075669047115398015908873102947803828351733344299782748055077343917511148489964659333071206951838683830834968818665303512436794784965332171705647720413592025939138661134595604009141842167604656214489502587894612646747053094160538646473500422104868899899481645754381814910529108872788081246028350119619747593661941724621238046195721987769286322903973792195743841656370857739300160606179525379792622079174517547494266230721343920132387076388132470350480090830241930722004332916410220557505077764872494119427924570717000114900074761130127866635494823510484822023873325469950621461626505747904140990545874246692338148847802248275911987873252699826513937383509453523995276082814815969978279177375858198680918957123321583980394553186519665730196785359280687008265836092015238282133513206381529564336936865586185333138849889721643316249890475334328406136608380605559325327752376522955123998654484184895180502929653853010231678823391478012963495690239141317336712243082237425556422463380177408876841796663861289611761798269398366652675360850821302110261346779166305157383652782664287748350817533508383429597248095251282815592466692159017167487604265700680043154630887422035598258089654121168951476176526446391954267054395685673548254994282787219873658668183901627492025344833989268632116126081384915808043287336218062998294646814930894221843778512856435176515377150683349987409770253236625735449890231192432746857709709293425171593627517547179202214241624447748358735486048054101701097918993141109182644746006625960406754702259392935413593844386680603558527741757791819548725136556851058810099624166154236012434697786028116627185398734916494700174734253207737405183544670656528474971996479061183327391341812386706293277790256875804224183685576199612406864531544298756342401203327013946988787221044700513183657400975168442080166741377697338760237128039022864672542983790058885092865856765592136629083559404946763228145711450507916345803451944038855691468311841051974092580846819295815534875830312470724640658706599007063484608294525956731367143294349800064936178312722585723861973823533951756678225961444766763733729890459034254453041505362397953633141872916852303027112373689241123344587570318178866836169472825477589264303804638002123213109969044131310240030151177525464180958580882679898451657049538565884885955818269676091433339057272391239985996542575354838669893503611258389989440972058917794485459192469918802234315363440437077139428391487501571399013786078178458701673050973440646275020241251822506536038120067049283908464081765232136602530041616562265197294293814490362054916024554687178495634249928075248189632314244233826090745082226584673252080701751960284829718345843068699652919975348873642174612704447709363960423802710252489260596509785645762991030419804828006121914197015084764001878086513362253234477808786082064798374514342598415637466471221384187362990234662576978822980785135373701688732046687066291641166826140827385881656943438493163709823009570644642707696462725686751944903528318370800901013810786228785777371930681436307563737486194953027210237618569412512360430854850213515537536918477224533853105829830453083732348569189811805354724644425493846380631558897220781500222503216778119169667560450631195194161407280709542590321985615964749941042431159536482046674478059302700752026335520045680121144953550799928868844374811667772786937609712687688679329198181501553030628008081049348149014456885902359123971102354948910969654290645819245749205272356517523382941114919266398675395912591692083264583509602036380149086530350699286597690958602145786896336711109893951018871435393409849574430585587093236716224670151508159438758634649949356023764808660207125275694536738872637645306348290574559387674159646506344477513435920141679794763950416086840604041718998388796707435730789443344646518328421187388347471210023049696976154452594631000264819350141929560346790113273500377041648115672843091668356131540195929325320431517253890359963071612767027504115317583554449334611961289840258980061994676969127551392396030148135250767936739126592011973287941290365500548040696685182341605917623675264144431782232240660166211271639050725969672795336792689953835038938215015951746811740257431409343958075558141460045306297404550949602342783725467318333431330855621881641411020105579326936692583752438332824417612519850876372307533883392080965987604063648087724369804047906633614893065601901710573784004271500416263578592330591482211253952494397125417713259668962003038334159719392458165706563948690544208996761302807565343876068020335137705536291816079085153014194314752266360938827012012380277196684248170621140546694486330386222710344642430068328500583825101288329986541168600563612754879480164065590701345235962962159517156443003818051543797329142474074890546211584507372633938092672222554424132597985027343152227150583972906834503503882493762747594009752202855829779805918876725553135428689193458702995167719776728088630913768460161014209153304076661088150223611195594210262314079726225953661283983028651526732714005419211656688421081628294577637053067428008058236570155500145159220999369084084988456926300892283991613127263515544099427433882940502808870375666952109847044643357854891538694861136389438630970902799301722316960512730812685514380546478413895128730982098398107262283342320254683080427716648468332938698333552277831643026991916417293516261589280508292883567034358203924204135740099176115751407264364772328116690965336346079100819755962119051006810344187327333512568686829580184647257935084859133497235390543910686604419169606862271473354350944464684107052717166214369400975561048802601052729124255343551194883863849250994675170126267108753712135793134737476337455837275512784720234037642930063635081929414218971653277929650883834046612074935086836269624366668456655727137086258805003224033459643406701428564317030975706231608591142939145778409069500168061414553673565502779028439082146685187559850190196687907738218722826372718436269396838723795052313429761839681015344649188772378987113648555715640214334799037762325834801209457041152974094264457515450944785980479512293532524670440281180711294442295227917441755657184700228357493387008056357253883905441139947147142222390150661740894071756492592345042326950690889769687473263808428888092033671908585701468378006264431016217451635990616107154004506646011537435287169303725975360394613487835418362200008825164290396296256249665710588694066778791182767605624148852380584283877316079857078599770980492927303639736737446853832352736428674668441364567422825068551711952252826422108142031501048193546773384492461532539038619702044718501072365769002930735685891656220410742950114327891223082632545542651194033180449371844694234859654337182797687702897404150744204747773101856333629426023241934894358048634878296049017428906425298043276499479014038486569295138406445689026506460226717727611130812222086460690433846589419747237176704225595418366220735895377085452261362219630454075514046022227064998245356663455905394605976434192560143796707179887447907977711192389606951245596086204575430991130394120878753074019350135511819660031367055913443916884339309007144798535059271859823971758438643992085546436043435072801834860948254550546131796208349332136244496677108604051617816951428479337761252639472430189071793282547558748378709154039293538997776310957542300584060170967670634427535705819421129200001571621018724983205646647607012051693757893843616353412261470351073856118379203517539041283172643708035873303707797540738522151675306323763381946256672247567992679360178192226430982856880679603052064983631859765825537992754286801143262226345667845883140759781893318152902520438982607351672845001480053752258349497261534862714251339689784260499910955039592022931369178000719004528206811149078374589683657916651434940631979488023311189629677906127916089458833860188630265732498219283133572883107956594296735790951077697412617099033897239099231602319059660342121315917350378659842709707294184285758389342988597489145138755827584193503905344366727016685812718265124299866685311290570443697992079480414955259094864655946753684930041662910994033499825839082025593947020492336848195338787119249517373865199159084882827105654579445767319517649391819693848284835413722659219686338523761316642915515987771864764512142828348928048186846272529547718068611878316331554377082876760988139992467980129598074824629341124716338687988307345710933900384118814122486400588990336531081545567519058535778887889233866804675484043988113531819636866654344868283724469727136558903233966313057703272002340406704819653357746025779189033835938902284575491520714083678025895445791698372201323131856627394531399255852346251588526556328730366782448104664147372414758700947513602932331593647065141086390531588839740497569057424847544122949471917179394494550146733201555446439697956301353038687385477529315806499026194949385045028341568619438134002906502345291000482160395137527829968828553082777704857325867501548782629523676297401672459511312677445444251338350559021563362040977292298133222664811030950084442875017936669975183515435629512011203570174265149677794788378596996344698131179953908209251066857356305630144387416142379887296632292129419449891121312711908872255966014136274459321775192041412457085795368729512572315362408976158491007953076084443847119321252634146322459930907755568358185475855329209999909421534093845651395255626689359991047527066635487533799089410049658166611290163964904608483487341066147732491938778121342278480275273726905608387651831205118658993030224018515081237054730582483840859845875953541021779533804639396860672368292131881592835854408267002633568450683179798391803405828089394784357480887391263059200587786916867562559236612318545872973895323042614565128543685707371228705843957659648205380642271093183060777199392207560364376316376677404634473121797785344488472091006929521553714039093829004182058516989134928083434048932924388738929280659295971604136623025719430926324779862333833002148977912584593421302249583917922937519485125209848949718475044372634187853558586220509517717970309467764753278334242343635500479523993977235644065350248271975474971201549748296466505842620375904127527874488360920763103713235626018049050868426630104982066458957904308320115452611851617645680669648366301019391819548239864211643382269232290593406284459651169535051966925823978803373673207703202040655594586631072489729907009559146922263807906543080423381632231969759519926220597040437094555583199462813639353431111879495293189539701984961664556535841184065146808776549378769010869281238973239562639168261111209314130978694294779302521573446185138507262984293209067444759531038072977872583140527553199183703774748771164664306504549716512343512793113023890694854099403340847684833270789192514606898312689490889687923392311088775503921481913535364194734699529606710816072289836120152273909655854969929836563563079249891183931183950171273592165205673874461132079606809340075440881630117443541484019613395535780689479018432343866498790744829538849540301911741535562731808689164125810728383453015807304594504142376112180507467203889477373832405055222451067712848807458780128949036759302058075558034525155706893494626424828891548542656600329667504890739406639570542923855831691258663319474825268927468493305960595865108712393822713899048176291799393691804610271226777314999783175995642046747030195385012877287457639025847066876897584999573252958409193510914881941312776816111064613981961293470963415482174335006258078553488811816772895889377322419357558507403511282750806113756562880604131606756019779637877960130666073196730590829132377648239295029252252296613274772324207982344798542319035794193136075330964278781687764159552084803715145718762095437604823038432860291170421251316423375580488320630405460191471695086858702063974740163060406225030545680271244943267070273165307364163524574317886530715306106169335770008823509439461227924243690822382164452700416475696593895428006795744729660330359596758981062328978493911544597066850337736110172178075819855942715833264826704078113714704932331320854453364559511311832666169505927864584614136337607549688435391960285874061612271505995229347458832637407279882576678850674318613056506836134385514840567406546413171095654319982688184648995574970408072564154808712266689467923367470017799291800066048510358304312229440740484206327480719900758646823889484953869420008252717523689791779565397700851735920914146960988780971050561015917542045242499156408578447848426781041346428534636639550897809246547477585914780270374140716774803892241313049977981069980310848437419197408773440219203829321844124237322906434918805171177343765025215998850361395516471289508619586507002728548683692747825848153227620243359525902360922010836588128903951072429504361136061339356425045190281338623191413283176580545480276844110898537725154164301556205121708056995174346754507712809499851983640279654319478752947055480632732938905707737567837330979165762002375848317776669615348374716705672857935973231578658138926739180813686707432084023584356548279910636780991901672017623139526569517109120604908038862417551643733802774666508343102692194903552574564867236040502450046457403908759562037575377381054213479854295300046000179430784810454800201280655439018268732191733308383529774432966282581153382979716793076048599687504495798366496206376133599512073828081276312072868830008220529163182458902577812430761345412043135199118740054370269602480642057557411641680310411870962335591815037111279347872217415014249223262161408620937492239397170149000227215984498379195903492265774464840854066006512513100471667510731521956673802586685866796819302740013191007492357859573943134690896961109764722386483095734660249623637550836735441330960020725134918195894686944204643577360711519701559907017431854705020068373524664611145409701012424891246544720465392034328241526126226848712577244519131435956367223739852070898409799803390697001756521344316386713064713356362163525193177130636679394262376714621898038294925178825966541967456523424093794312091501107951991166098145745170528640584216783198185574150559270561207169527393422777364692965261128011616546405822731949533382501222294509209353611194589181294610336416961125120757619201656861157667611851161824463982271427725494615909469900017388266080984178737693485265054039418344119873221412305546165384337540422235798047862567049018295131446390882919730673439074264226650932347870462386416883781266309003581961806217287680325065695912565660489918931523288078122637376441067376695805153222936006556255644097850873297890690252458342295483739879108070255684277372557151216197584314805342464178569489064244086471766282150965558360592785657538155901677495099935491908404945108223833282488747439869869694928911081361864871486889727160686085934690844604337656001362516682369934544669726170360799503857857122534711072325161261541616705449597304579909914785122781928622883701040979889496169867469758231599137511425801164530593601351631461730507214383815811331277174536926044860033866273621854110784400738456091363248026721783728340970681181399095545569838069467879920157926999980791182826140595246393740441844354984915219503820021320354770274936218825289589764133990652820652216065340235120742514163502083442018438272715643713798949933125812044626232558563584732622827086512439066005423915039649658358222946976616052868474003663803285795352025133518965337943334151187568146347028205825656786406265376151647438491867499740094098672741165594563645607142211159417065480745333571238021132905598551067517147951898609381334723192546272342256671051276087598989521715988868943784254083348433490144993984187687461843781376725626151632980621107804385522211708740827023902351356831997554126729003329771420722315218634893837024108309843032501608312835253461671286346135894888298581192809423906366054717848879573021884783053538275573014063108344438381985917878221875783757970351818573056045140667740085062756372723467392780910537069446249360722353642721319795969160135556942172905637942880695147619248169954779522993642614346999784189377503812957666779200528011864662248317757180911361946322905168163351632318173809681984887315890051832045186723951402708894776873305655756964828278245187473717669605963979321716123891319805761197431762770076805426490634450247392164382312013508835281005928066863883868848073021365740093814090819608444213865473605565637666065779775110255635844364244408654306544546730942167672288328117175106547418827251660194972943402778460784515791803488340426671876754474207551769268861745266958133884047495027478951772405385733023179292616466966736751218757042618107858239264684563647326218625397026718843787160618114882111143153518244823727043529128456248792704239712448264986869916832722307145612161379893132746677838848917788600873155231839604910790469360740174927685742362437679255059724281640305828383826684306940443870038152754659349270900578343550818143747039050575385297928314942758427055525103932160418537002668620282939431578412485788635140828232409435528649745484030173270493538341839496768687400234022009800011015372669552022214993813513929481449816602963560171480948778230774657089059841371063893101739493024218465350246819435947500870725193393670005082613961200258657491895890683796408495843307180493559954691033270168940072695408370653882265872888085500016426470078372009503880849078285844101488943841098316481902174031999546470508936789963819748217900629338356543959509406906471125039991455392055792563385516963609155171564306465328591049295098899511035919035255757484692497645151456570868354515498099262565621929663432625451901442250826583388999670666840836988679056455758590069403679477425452726433884737911864208016526688447163835189527265563202527336851907319574504881137470060412058567734827923082946047529481856799994098948897326544962189087130149054287998751757387613254575151548813091556525069832200242403037071596516533815277319883640952773543893168622599101829455340477254489797071222848504373708433674418773622135110729389771126989199923020293853160465674562806065663647730077711943633633397703640574685686705996009324267662959606362242445111682830618334663933463067683484221487822461383059950635009205034089452050454284890519095342901608795650269050261071984956104575549691502179228967099926022679774377686173774735268762996465548532089159679675981756653203924288448250364624537202142731271684285849388375629519160480331321802295396630208766733852468285963636714687219579227477961651175562028808753185037626040694796800322000691934620564012151246999958366390959356088860866013295978607993401493161949295226823151777924862215791171102840225241220037555112259794918404801707637648938522663484416816801687158651194277177739849527066046244979399718868616517840939091488050015196477343034618230551192856233784757067360616139247626375209078461565458650328031479026637977207586627964832371006342753388540618753924006369785681361527493987746319403252665364597479366306437129713223333431343873540550104217942761121832144851116901141690230330955286953284112851683002243965463981075490906917473792015655244694363669340065999823957436473466813827000838776673470697270556867610947088228471251284513330604093065719056968704029685939858498297549891233426790453742278530331663467894549556056842185113990084119123887114939252905649283677929117479258123741725583446591648964225360258432611289792251449791558429223039252750570640243399726577934939399324781482518709593435682918060307650621493407355845747509832191253721623265873970324381214757015310579320459579046602819212520675798013684945952338134827465931563396588794848654641324746938599504464219943171198078574344194348935313208647794017622210951529838385483137633694240384220577135978223201864611628892569699384969105427572757212936315046115519043000343778435434698394944883888289235785920221322481758729310515745305382863521810817966855275552066262951282427153639993152329829735994567181713218463468085992500165278125038019767981535033019748656791407900789816614547294555392913260985879569871274212277644189436601515882958775179659053458270117152056277291838243816907044296976349405726595936751771409870050334696534104938659200262601760023336727705348543919440802541110439324210760442091039908738900799551559844189503738926827889201971586760529316740882255790114258984925495401511415766334687334294616038622252984075554434719049128690862977350439882095312666907450874570019313689670144021635871084082453970516787982001997253407282273958521140387972553474111689406517483757057839886630527048394950867195624785658504550785974557952985490957315133499779799046162454785480887398262439217712240936736454721467906407289806416560429021075476126865671713457571721086572095924458288606072423622401166490221249611085037831126666579078185853313660236881244130172445655873869869024163597354545409109426414062429196403572729565529017140742646787059300290342592524551791031889595826559148441911577953486037309559354267142241257823900933261973990147825010935946731513250505096650447424178737241651648167010680438582546793204163386095044383950453460678394989326521978320531007815539909454726173085312931962919999243477696486952233440625887885341415144783932690978970327517986313504336382924500706816282138035885821507072278981007383137282386931548681930047169502586116291074252044351811045756092664486842753039299868100848844413631025418162494671113714755312189646115825187032000550894894492176059899548979085453864657328279677842113040837018332747049462673316213647569093952987623511490371624805014417709475482920771653685243051162552873600208061499457310648821394759945745662074434772567225070600896914967255594387513097656252761839165082846731405774868167165938451922818075154250413167410944693280019797622907646901771493105356047490720914867068584912422625589204331493680261327548523605661150254545091023182041994710331051852516826013634176285393986810279165137416494283594286369263437157386413945093501371703596703745164597101174957157442552498735022275490346046958864074356169355040040727194981041780310108439555652554189110235824624973047579907395196904754648520954073832130291598078144565175496075102180131069703848182865442200816305855894803519794375107667395219664975525134880217985888416079582780857094621590647960171374598278691441237329833026106807847078321405683604809927821329857794658623321161844587068134852523114074806120448638951592348747707190595632923051552970389116470831109867244297375317464697279126186094271282783122349758426143827282593573679208569948155103371914136552869299215495210813259430470522764906081477681662060129954299964590887011789124836184238781592518828134809654287077612610372486532788681307068273820742013575727739296601488097666639131645786642603700890443473264430343395725706520816873490916586424390927952098683533003131499505429177621680402940834970361419735920200154837742560028324591347886606717525887815587698489282270849904897706463793765280432416244040875870827648044538488592747300077589523525744490854757816020318563793643388612917401561009302426426008204532905352968728508043681427995888659144134776187812194645299028500917870784364809350706163034022287870395823202475490174582594983279037520689749252621936910680579928143886516610763626616462628725606751222006842456723897561141836137144444628110551912120271480452164055408865219164518673231860377819167930666974952098030890425859404323204314251022262156038654374250661890675286843081023607637580593030748183094240033339445324765757089748811792042048355426131115395034237568630515017001632412081966765731097993436322560314204636055666038375942825052237522974534553721348797601862606754400019124832443577305696988606194848506421915798117849819248946000593409950387573945933532055518760675405915972377795575979474858175375787010970879893731696295861760909794155703570785792266421228487990595974215673328893974923891379710683001355157959970190018352164013026242668399033810195769686017999786029770904064628063105368482220060413141225849679715998754603481407790625273664052219379448877147859599690723298073786472256988932704362609390798507557433936349210573400661608822856874521700219667493389685447469590124132567368182094890761148455226451464232678462459718276425244919456263681400234362398985196168110749210166258839093941664408440581646266431937983738195159287703963752255184671188543013832298549154016074779235298504771379963199423785714365721911976355787443847953704171757348034294587518999184815461179195723034071192849775901031349961855674440328748425539425239088324855727735259111562725168968231815429663798982115147660932688659760238456725287689533642977228285534082717337840986109154238091442000765928230971733115402931962009150192043092172268762968343231708397837493986438799457954430200689009453076821688442970659476957901165023502184323290258326466612694018728124973146190926826569870168831885656938492614142131373954339520240688074105719102369452977470758620030141921975779449213394599643006273315378239441411741298758046712387103269144077595978522379277548586280573959186998890980168343931975742465366167760181409520869589976585085931172097384584841882399308943305604465415334068718514978213157226477973864929591884290632785829276511684795583321839454607214986346694131348965616043527340671726982182912173928348480366280819071399228713047320202824060264590255883642870438389741588460903458291254528069754945359813373871572172201319137057679649146346758213282025786816352407849174315953043863810116257949705499320174029560434362719048215776945388269558174815102208359161997046623472847509027110719369201899567782804430544328823955722129896608257277603619600606914785621946794980092371271095139706283095640626636939019545690333930642833337574474460356735039777122068354905170962652807974930009941560793878009792009624291748344345456678790798218862265853979043105022870806442323274977957829778209531515679408315209927001120266554988767439436641007326293053191144292900986934009431414197115627203216871716131815977799791010733654952266314433216768946718346604136428707489518676013399576356285569767709684545081686857217740327197795564113533560758072666356548849506703296377765485556220906699674531810396004679795643572868086334812167842979760786337360835387866034252172161257980526066065226352824026299002229261576724725069462227405074721640948964515710466890557789369718962783636452713913992560471562163924591521379251493901495698621315003318479412159222504524553248272027578160215793240603214730926504572452175884507591007446473160226265181100848739879040785942708093629746465098014688980164109992046383117407061256467403705839954845335224124673328954484800803816044954964639780116917292492182788119691760164069577516908817487457503801294058663329463020587981303832132678034093900423014455548227449005704105449634612658367995273383265659405202103578899040672312987614010956730254395806752798170759735348219930188020489668675676339211675407214121453827989588416755385573010733281246695166438379858706831008986823035394447244125502498678200161812195290416351418743532896635183513447134284534906624903810220882628246608337327086360884351975547672506594824307974730197680070991923419151063301387964216757070918709071853082317623152083979997697152551467183390767088977628495613673979404305334633516429794867678191981305946733701751044822616966269086570282416253802800996352213269050365182596585792300581579427699198277511261497497333577167971632925968559090241072503877890018044027349100604479316399637359857287842584683283924337095096600886478483654381118222035096103862417298632792073232989182342788684150981916437652594299596513978219006163681808416896472138681340187612828787034525353757095278316994857089685649293959086660070620843289426046064929278259829537201296584495930877806633757295546559459898673196742350878925090081053715098857141968683074827933910720638564773803933644278384716773722139023963881363732268445759631039594687217735394314331450571594513112354787179912340952057159757791986299847798185208923380012814656503459235660729798636872168244294460115696969813346244040134916275310530128359368752016445534068921607927081353120671199327340800557726453419262086257724946469921972327547754548160597995115486837371570923202313520517126786658136812022237821642613950735827701847457142471119987065906885702913730569236638507559772433983492759658379276466026179656469626004147578416545539624995321859075167615439469553049347000347422931089457786005677309873333849918551576797467264902426854497517603229311708833158313530714825740212070537234084180615545467115528582030958501907158370028118179262476963360931261425787026429851479594148423250939745001946073072861732225542743453630477154286266736132797338286177054885835207521862480728654014977690351437094165582713430751735790960360268018309974596014872483185969963304379136811601020694799052001487085790470151998623097883491005849683650611698377782395483913173795980056172197939875151093973256874883074021065290183465193918466701590611380666437361076230821016423786663343547573613151868732085897493596728441168570833885122145177041815518450571634730042052888211829666012574359344865280974760830361828242021396198723582941519299819306398323562431815136578089274597839962703949834062544433479517877904850301915920190965987927379086040188365994342191204837819802713899849884567037140640449902532744513759905113912950159498204592891728897326809120588052525135878972034481943206267932339026557503323476365055623495500970673449503637969203233190724723317434181816720298056048218911868351130519082780986252954791309083007298040712651856873254756162982272224589633444982600572759173216515588196653950560183833411268915212330410600777416710089659693589784415147642530514946600280110925390128912897355471767561791360187852182680473510346142590747537440734767678065688194061346602146154968761582438569420560549340216913187180080922365574831252052942620222873744957908619246689099715692372423834689973146167724807312871655292869671566917446260755680151510435214446518703239717175398657748090798373251095920925265493599051509715679512331150876098389473138029566533906916985558078605360728377939999244349137689107253604829289176782378625277840680668748969414433107648697792273553374995238230661754319328343242419808935524168818849964249626138630930753628522542611704511187217517881450525344267233823926974316773217778807798123758942030581622282278319007470905953646705625484324577928336244241432931658164247811902545365073994271857086114985889120512914273931115123763199960116490831542946379158493993497250315185489804543429711084511653421127843357649731792152589155078128867113133755037991293312682027061160845057242639520437706505482276347960676818776652510366690917386537251808076218794483444510655153501432223741719073948460790389271240697492361663832165111841953306545682796980950602075598178203040020559054258431866505107266774201693644380000926081814339429797864630582171976510645504094636187441519726774776226471125869144548749439636192088500877877734804438636790989584897536204328472015484244887490659944006374181444752206436094264986895303276929207348901806811211571588802474747968881737956335678192280273376313141667336076716015256467904594859568671570727679321181364226940163801316810292264791109838109020945097834642800268765592113160371242458168012619547159169711231269729015432496735122862367486495105128355262204818690659035087946622338145115305766965694601646536911032649571009097788066385799815150036051264283782850869559095730219661804593728681518803361245756389256425416875302708158095809069283369593424047750720813076260263453795728747564573781434495428905392418168304038725367091665104194091273576652592368758291053594357627961986920200644948359499303311462502431633775353030486025886192812353624020086323257910254551374396194254589934388558592510668150195918246728518156437788073279096230733386811234760805269299531253747347123417044747861206906216575315290703432693924611627286988763788769192079284113252625754533190671039831279029727413439168657484324494005536694858785404412705859246398141496207167409481113592057846851813494251172381623816121678191136519532781430547425435487080423653582962367686149627979568651023835573786345389171539501967378042901001303689818600900925454545023154064995897853319901981172272347294663669652735738735157046323889135097830070482673118633758135509483856742875860446242894568172974070257531105698245776308450523678549002137064514155435807828424672904014613698539647412633552154175666886190338229448639130453080801063676186878589191038740438813991375893142228159279494836326424800845590040446412832568140972032079548625111187133037819913835050447332654218538709622603746842435494882525347001465540255897531916388685601592439699680580446422220427719088550654585863732720054510567257827582570471812482073953480312172957146130909731479428531400518905209876482571786743041716968996266354605394085487822339199481677232879530582696570991253576453162579189081038271593897492818802090425452383927672409683111838186652954209400964406329729144696809757696078236649680796923904328469886878144214561062895498515881574963210393581961546784195477898666601835245161562547468876238437625333879547683272166711561841662510737985431465034958148070959687247889605229140209545747324579082233348004896256076293622056016658326858258140132223823373098166563153876558992370187871617490974945437947736049644524705457622050976908665919609056377194195021331110184920369362507239770518059659910862876460463263446832961330180404439764331269800442077583836448421078322454177260180069963361973573028898189724724640073048473049971647914675129028942963824789439513133649021219049818325039320509934573492272747395064018429768218272478785732715526129708870325764031486605641511542766397856348417375585079349268582050397764939915660445601463726028809355209466301408455622398779503104515450186117952907055291774710943317344727371112849446175668271193797378180070893591066049770042495239881172026281480259824407498177219575107936890331552474315544539621088808231984208662921216473208541490965660693119074593275509518362316216416545625556516718140689274254306028737173498270347543319515085595886231874322733967950635566971361909584091242783327664305436960017959337497157530632903285543759608239522367740728183489398789959135794507496045622072658237457402648641272594125080738391898130060675978400823135155581291379031433937592051460107384902644574544850628994323062428535829827357773043689556194817053287567148907034748045856821883911030685480172215997394698914486278944904537727342971034644979307551135122962041423482471604238255517770134344262052090085362224520157910432614777466492944153813210403330988083174169390437464123676249864608305503849762829758352194006123663180872193453707240673904199968093259142033844128132969360138647273918298379974824429724223708035730707117282940817463466126305072523492644242362564096618020969443302935988412350883718989585150847544619055567053542661468130991012121469432865934824132952237600605583774465813608113701688471196951636826754283440731668018708262209638123821546040595788774536953619172457185329132430353333078354672593439507246248790955146769943729131929006303812341862660544795839591508500623405627238092135248155273213184890143046914215649850652371180912271906305024332733103148698731507933496972089174163634277872527604127253047600423465599935071327587143945462623092081194240845935077162467929948804350490676355704400850129836968819963087702023071186116427658475417219918455939429677966950043538435492959194370810254331254875848735373749628067054473875373390416376530902872617428213015321662985432344490444621962391528078657945758974699919790004151952027456610219893302278634561762935763411285299528152594800961104991370713256027705928613946889823380703709701750008414916571799185822053552212026993131120179269106083841203438647335657699133768680609078937122805392784981054535942060414682194881604582699361213723737520061784171379345551079927501376579928062903486273355442838166947835968682252094910252257206913370830296550587900639058726492772268612893040044829180367756304833120303070107171777910942469461438800107642387828882444445374120718573214598717912334651393296166929792152721428133765170286786713477897833901988628591584186800083632674407737094540652925705759037392743937317570344454740752086158978470696585341529070714903548621801913027313319332536560724489700431877649172262729256098864333863575169362041617733855200044774159839419718132729423143770117254823468854029173602892666482552683198474706570824456486717512447305653225969621572267921845910147019533271345132365676685430967565014831886426422163210613799341943703537640919959765680588827544243619252524684082430891725526846326030134999276785917121758246413589158261625099620324630478656309509603186304960877220717396304656305096143036288038433311428219710275120811400621805349287463184829155172138736773571882116311293288938822382224180616749110980387981558257154656719511291123074077551668882712590420784108704655146337795942399970111172607820310635476856310456279802657115381296527446085265408471122809868318836075121038283922840408853056037405356085076183344371816899521650785846123987675174013959653278577693558496826516550018320734561561371095665609971984965513889007877579623967939549247652867066594174018455354532171146730548415574750642634325759557855570501076840270255702300156019432338993550224436962054854246003982739679865139915421762762435086174997778611531693754664918975025542769034953905522547080643464485798667308093667391540754235509052714188532476299516511962997277217106146474741753753238418394349759263476453922067708599945023440866706961112682154830159166497875862092972071289912626414425815414411064912768045326599476775703917716577455710284543621715582117094069691260047561497704971238301611489109439349945678912050707118266702663849749443752610998344957750909340168094346311354910329782295054334715218553611713223669798170946205720149654741784102236040562671787490395059396614216783623595032015515427042930429556707139698930666103902859011328995648248378162905705143504989794960651966906308243543478749634814491828744494664363457303618970063873624801576724930582068359865686363774891229443609805565429742916728737506046991007878194262002851316159512052884097039974339684699050964466863617581695258466073959282606462640211707880647623894742336890751685600579706087734827360914025758544637633762006895947529434204289072976293020626121842680165840325193869254409515199157777736401488680429978335545366659488992019378774192489071401250936943755393652402591873081201330539583979957155565322681096587256480256957353675460655989192489785121527535382284843004014458932804521148163249653357589751526856227272811889380058202649223063962945474532601916601015746479708402780803344996470146966316609353701536371358293570727040064764282263804398524101841231458916837500108684187769474857277659969876545941110935951933638494519804470898363738942049280215063721992553093532895636137593088212546486032806870050610954092082893167779539115355046827215748040667569403563049839397877649092403322010802820111086941122844387107901375178872706247505406206535085365847482247765849448730923339573157860223541042734490325887715081981169404810417853744487907048983155876484642934162376671001135970819858773244447204828753419313626851813449106776946343381186565693214546125095578264010657706303662903073110976514983776558271526811243446464150239384356702624057055213622606458661590918744615097049473231285791192232270476709593306329692768113457982554690244209671847677074049600992542704680328599587176098972303513021477959045713119208776581477602609461202672375014387866624130447713260549833653748042492741358185660864462683371558843998100616688311688721013278277910370565732821476972392406040021837735891164498325751171086830368447376532440237263879485899692908981256782121256804926909374390628648941655362773457793363884493894201728011497773169211317054269028216548485278194044702240869613183821092737884074557053986507931275750478422615265422915616767450955727793557557826149157870905935541683423768537648094119022924827325866136459875551082242554488732436348922606074392022160287452632064456834677634701122129369446610613181362440637535483982348202311176312717451585744746528520136576629061199594239020803746203991737678833673539234244392966667299309244419062350180838592051746630484976029254411945468051254648295279710293645622285864901005351155167961979781092192101617274047098119272902683056104042436988817220356950316414395123598288913474756232820566870445636351449679327989900393956498662794222793205433089327552686354874466466595308390398577372634413081784919661699536097792580006713466460177028249325532022790396476623514838889701930241919238126455981906400392701598869809658601311611390692092022213193887919489367009963076705996662692189139448751456730570340671228538170661728060656758936438644028791781904692422552430641441661670245504407886152564966211600942997301485135051420456438008292244531907781756457829681222497605880200469168187583785478464629817711901110608593069129984928155803862165828234788416354574635121325731896749981397686944835802184846570040200227107806589348380130205545445285016325025608185877928065816602630198799814889870402102355701519849482286675105170202414682806875965045950395369340153933057602737940498275881286190259826375157871600099012023841668329305730673155507136968063058529643578424382994616970689751829939878709821231464537361924065795459410215416862714526834416797626818997521897832088698531304668381319810603404749683466124807128411335609216181909616925380550174460703769728623824048883589203699457655396271150646249524131907776859801374475447962558150324213193844195526605898768172677762803143652785911600799953267638810103820402461571347301694843569423860632353908453832387132813569696915341898275334149865392372375210115074346248474238423950074559729987600460370928859914576723991456558309274989612486796147729334205972717332987076941301631021713939099801006501425275528148191973196467642438864265498481092536424845706782211088250198675231170061634352835860986870345037403888034772878812353389868409187805600540137912170842106072167996451736354695136358272973464103551870107930197727238307809055158024916312901367214032116454858184868470681374053096487958492834405643442380187811845458159663934802018229803841706379217936361105880067409236773254506199061190523280740402582252589707534479948566565553930259609170787616129107925168363885709606190167656981551425008614413785401296743876607737313883681246884066864758468154115001737676413536915930835417759707987071522632589530948291760506418945751941229748963897545509044025634311258163483747078241273402048264595860488539851256139929280722165491280923694408331536668080589087345205728261445721417323900577447771371120717039377406880224254085288231879568186199214513976399008522239937495147183453420211078333123262052484843637336275110715521249182837300807879363848690197839817197965144141395202980647246114523451220965228838249121095832511109456944888582712189389169973258616079036057788585363873713657842106207185862306528983604063490858955644802923677410512986932809905160823628734619624353904362649799190141469442340534032674027263672601886428423422861213533562634535636232971015383939135346035500856097334350034542076369782167748130293716347802341406909113321440719220786513672179460948499255655576267943772214202684893866602597199805524578220117736368685851856464426469783283393554712778621481013343852218908133611519460026153936599257061888419998824057070267909917088556020984226514364721188533415142908672292254011914352816693767819996280143535809881779398061962786825140185402457542024066245375589632979281625594806606458896306965310859495535292286040483063874843607639708706113071020032068004124265536182088715301336935122012283857263137461663873904069424923515433971756044156225272003540383024324654533068417512480693710698629891915940626745317479719031159468845408741878733246644942899827213328621822518531561896371036199144165746393073016013965970173194098716685407562921946719823819217795230117439386520514978930249198734370721507745304364484647845989435973180004466667738360497037845741687907056125073410213011130512390115180796872767589561686894905807547861893037542459865676792048650207170527920656248531811605934570629987061675967841464134833800511801274674585145809279015630035076410703602001411499598364068094772294695273003222375606571244583085889842881331081524506894360653562859680942003549438910231938956851750231713015941860818048974814921390311517726264949106448848872811259178367422489701194174433323747109011802528966816750219475434778868187806086699882741889207443085340726832707345774754572909162659509133833884748817522634851317163619710632516194206988943855110561261176140359129706482333044454073642257946320632174346444060910247950202594377281993183368540695732231552022015663217860993551466685896091956080202990366038286730807330626071213807234244651625278273630518981018342268004304060162651713168589802829689018047477825048066510845644139113130547782062626631183302947513671993241633054700794951799318826525159843382400193045974003916655825085323789785439699101906133806055302561907073718925083548617443529399183769824466650728418911888516770553202468336897626169205543277642627906231749269412806337045031290371306120977594697536099125381910115422022646553089342295627451387970835489586665553415289744785723229688622159735291091497814021656630482746324474664276099781487297573964208781750383160777450024064716798472251325932147596055998492856266712819061352899435212195151563964745315400770669159842788370788315836294556898771169710930745882168991387457593031391959657788147213590592863019997772111088689015635123641035011629421753489428816901066251604985050392828045508865963357102628946244991836403508038588380572498034740160984626382197542329227381468943323304248716290681810684969134234825873960581410057399586469826019337963114785469674701625102015952953507696462227496039559857011728238550356533864098154061235355885471329986622172304717390067765854809933486263773767482730971076081338237741661270454910157206751115271453241862171815944643930201452081418445966718553369026559701675690454699367031736769021034529003250878746059800257636132508640144207491357933539695809893208379672925213056391506585964320076488253487272970789948598838172373159641096486827384574985801362615832772930610323674434303688046011735411933123778369169971893496469217267567096232197324855675028960778578391295583586930379529051694228287925262275969385532269862695349636507455853907825626889159786791734645785201516072760500309183921344600254356078555423701708016807987726006549336460675694298389517473828203311346590750192277852347769504469668161681106504136416091176937712835487193259539337102597667001186522665794629655916122506626498060371737992293049815429538710781830704533766805398895321446424167218954732409329486885292763710191641303356386139961879280962489548961555067731808197132074598141931528566014347885944513237045659516054115224763279410030184959450213971951522743598384436292857636429430703791046971063436251879279945625540983298264785094080036580937406950647124194357711022101271982583451744744312444412050564411293858408856306940503928524159184427938785201633494844287558268140522295605052515511850890433400467470371077975431817277866034625586457642750211219152726975068404543699575756196667392258539630451484710944964426849455790502689578000428988313083672806216826486809198011994128190180245245485904788421929898531512892787977498033854917118776418881271866185793772517440185332437487379472521392189291574210630725202896076326426273318689491771263549613365897779501177869940682194166959095245701306486594122812418054947561192290579503357277233887564513509183222958809771373334764456451800284892070727370455553135563020176956654510471777181067767030329355085059566773597497747939433020060641669710893686414882610955932307800067252769317716298714993202287135236262778822108332318164022186231635152234684695254407431002767671441261796479706338465803650588712924566114300388655210293831053705221177165192568160889611698691474022586386407205706602890182935685942381583910276194912100631240007887316880240100889691611150320095809915606589221897928790724886629076079557925081921312679143459717177380989133733041840994512630605645753549568824526931168171892629305914871167753294354091285289225846033742242932378749461636015572089273163888460832983267505034805318980437950858309417380609980941547027630492677086641581788726422118067887792708121198488273884032285871309754847287960989094688940633831783927350930729447537808009532520904374653102767863417870586627273764242243767428397922925610716659858218249886148576188333371815312286755579123983413785230393097457853620340994656935312617485108835733497813654464423697320698143094960066317528011512215755469329332583230815301567646504038497887064632193481237046893287913785892266983610045937895586643927797298057629630898282273815457165999655513475357661337979986584035111363113421095886803720735333704816570702094027326428891836109276185451741159576073081573727134239939960761741203936063649621277555301160408035311973389828224769009449938523002166932426998788150482042545241396601448674866378782544319221372550211669407050384235078762413328844718291186048818187687042450613166114127086328338270120551770523440253255055450934989575079416946525826267519153081865020377224438181406111051867152676938214501070770986254128673944215383634802444813156489134468424310883374494152640169503317201386794111485293493054306028600418353589356290076549204492515756264140396487218402288222832774987480938784671979007243178720957136432905427780271855809712910880493597147856536092075473309514690316472784154870483251969260487121504376933351740035581620702750887675998901856087779109850228368362999796663380566583841241762515211814256655663277812177129143182129430526781702351827868544096445397543991918989284102086039283454298913381180190549251019738713670376300418737794362516205233421216610219973934324620799876054800778298591648132240250303237833865408491740598422240952214546686494847367061389556173306922382966064052975426858749296441734217731348108557287664412676993808706855853094518124469851636416088683428095992876510705619972238095215603302766683647713564325728863927114691722542217551569264102620273335941874677142813341297534262956288686253822317325483767735581802958686984885483381683347737140164026049999641990964934749855474338801517237377893196356270616912271453478046448194142439254815335168736045578978283950453570951567949496089525693845159202693509691511018574285630714456869177404629665422293791522659155862446582297512227493471283486503496796025967325972255622156702135524676734106664833871845523714896901147653023661396534403964513608731914772013331526906609161211086463988453883863530377991382085706213846771542306377885596180468460277030186416714423474049747014405558346013506014852661278893188843657098908128093584216255965988907772240957234500399363850915607309356058469251414217361183509917514797038241490839060504503256644298713568245213057354698365777733075779446378331229493360540754916971565319349947072542620516555717060137328731558887538913467728537800852258780232406639122582533426535321079450834514428876448173835599860724264219878165972421150899288151559817516365599677557370658264203847593017037983029524425522603003135329367617255118171822988707960743588035448417065550994571234899309660225624317557553995545362047178702809872354185230240289395511782050712773710515246366171116904226292760706681928585365541040223008707202138236849103140084795015439343784787395600325442787330919350171120658690107797491127711129805074683494672381255051616065404430476296418748825336333160869638756904165580747740767214060769889619136731969182766518985398043154998723130303880580713469013092245258765390459204809989649833220176927669349360933374334754408406565387587218977099168099181578645634151573830668064468809277433071856942167580237755478874847536814409972089350470756079015539269794893933272820448252044351354343420353542670270010960166784087356369796666871522414484071102817199178598170016593437170720845304480798928106382440115928099803652693889421533740172950998121972739387379917191649609899340766495540893891810774198636027233008406940643218964586928613993946769464812075881304623114190950765333507759580179668725414207482917835903841704844817539992314958389205494306607624110126881123237851851225469965166467869134717115163637485062655639578774899895777359700317997017383189406719428692159616770481669460470567798618516395134450062463172950433368177052350874000178484430004076663423039669410362370725692986654182901517690099324183695440265576407327689142284446114464918534004060242365687107107905908070268353461754480310493883802782354830749080898608756432860365393645582829020898695672159179036748234974764420151376935547004314291476133582047803932634714591196842363536832496082048854766871722821600087382794892299649060209414821461133921118822079599034138431960916858085462995959461418681065532773112299805435561227157772299321150264029414347977963535660680386824604933207820260500255189016872861034665027624578037265193643450239896368120237855357488705058389032267819245741169593607167509789544165486042649251580928915749302675301976822822549021590316575004599483571307041822884713149677494401917402493724867172183032546936751272882535088985136925020900625535773245765237082963326865098418816821654899649376425678630527210725507280766911656559283426178556819725811954685329648983064819052043908395711729292551159395388656183992064424048440156202398024660329857490699250725827374561302267383342164106335725407334205282870497536908707200278391628679046795389647852291548554597583101449555190115269693444913427769549680312304994198455507528403677391339749546496200999575187972618010327530070576494235845516313387531732591268205408299957530235872262638534349292641444420532982418103958173923954029587775834597903731913615663405216486772052449008936167320977930648652689905586029396149324419884179168801379296195130365953370923622079089660232200252973100986380594463274437970924549569061906970429948893129067330018309301681119456939116786791700501989350776761518851271507137344054663257578314674851303254598538374797130871648363060344176885620755614874698800321473728333080558408692030437898035208814766846402732209809472843137507270689602247414748239714236833710085489797826795954484604775184039724846835665266688922711369648055674794265056298427854927206268197279939583527390956263095003451870358206897510690701552654619609690119609960500258956823035841475208671674932198565213569929199613877599622912606796304397826833945493173869524906148293782819809305048861811600476096351593039673820402019991660098651956607305148504567698050310069283698005754974103530993113931970684803132760931863212856893608048203513608174539354707075012743287721762388741048305797435141017428846647158089822885885825133456912860292601089740934530938380206368620921288546933165925684952826511164341136917161501474033886138385763677673887492015317529659735720555334082794572809312010295092585479696913706670284925629420120930384783853381119035285504398672658743549991416346560078175622014589936977605607524547842819432473201872161123783547419076115517163066257393259569551276658987896759817681160959543541941784954530928217955898502251775212787103147200811185043294844919359110267570280635024601985494629429734830282459729811125778411551655855368988727461745072142882445646638167036174704281484107522984269017644398855583249874230304468094675221949108799213396829595863714091800171035912795564733611100564201643961756698154803308359104421727664878535429852382785812374866556597715145044656088051553274233969439883650426944087251746629903040888615338287609462605602223823234206781907492583975740986938651961367794932299044831680238674216593369934141750811049363467528891454388767642393511365877713891728321917375065302592925369988240333214628355973039336995837425757685149113274537151629181737441825720544214681760022496907962921049041025345953716292480246554443596521073037724880135822024372983009019268844765578406971455265079031477229036378988958728168524611426492822157351391664779338581097838077193590557714599647734537489373092773817034676576967496422580773783925061507527938329167983329561315691515132392194876676962867669514708892974703996943122981192908475524124980852123497386782751184362859010017566225021186938262859378263359203390248323413844083339333415810098581566864427603281541048718823431630976332552654342287397532975426003289200097721497653243780780932980265592385520769418790679710617119882496882013287464472018939838992896618547314322688139668467661760797316182766210915020299501366458076800323191778883989037460120703715266869353645496786466959740259555199293256775664680245716356486132497445385135309721244845925217708370407852167387406304104924139445791654843106071740609863686195540167131214508159542306720224286709026462993722910117052444691307005661505674573841983450853598222774316848333747187099475393926417320580620189204516795155685643165659550912139136531138759356022432551419215146356984208008771899041717081045659465851448402480678086681557101391700401353548042266677762793244575125465437087495809077311663401685766079763353161208266114202998432543347001828970648493682484391537695883096744344243586247503047210639257622939939295367005590034656409270194082943970901650930659564913514034999723030753373118570558248143195283059826986961480455213008213746370471756805539064002726591172637011974506546006245021068692419758352534697434409036590341806432511408729726901094904730393937634369177472743195499576680796319098434160038498346303211657926578042699416048375374137564568488843271420687135297702363201138424028628586052555610287111503398121551346455126851642308113804654275823853541370883407295356824920732543455055729801060821227210351887650557338678558015458823876104411618941573178623106957007108041647404337198275983086447619530401312114941338986153596906117663568332504552582624189942636214416321046405712624181506027479754556284631666977875024543946152521145615818654209293225028984498412864161719162159736493425410037910952363219518682841852270910811542384145300120868687603942053630785642580504597732894009823110219564571941160558434404466282186543405772423542799212732408875314269693973945592202853063604145572750014937502179719698755214518158960661968737604117476904614955126319044449280942287948202806757776059809283418174061541483714520111774137229873651509299087645484891386639430604818737657031817082131447023964729666301531430016974243153754139681058261985366701135544864805149057881398612143233819319248632913710789867017732958387028171554998341809633134191080150701743233336809608065722665984109296800875640926744424060516999870946321416231486063600975239402024553251289270749681880562276554127470520932984160925499690133252622192535722657837356271192800280685708242175494175831258847843234915520093988900024399434764434996442712537316102598246072470745375596636940256949703357984685956601053571272632505730862003967725675876384846821749909912400465207543551295453477337097335971142310790069712032271271621541653213402920557785101199908650200034564326744022089128945264557128269211043975753357940344921191331533877407517835900042877429091284936118771668069579548334840783943406300030302540878325835488595396508237558217573811668698446550846873876034157758750610659707916870379958364813738968981091654867484155670139605206245710268749605686727341603137542547260151934156024859208244915620381143605981564902395853495866402743319658918249925425995765281118041514578926739103818314671421098987759212554482251242502311462425654181895748856999871598883815234986384144038943282820443277330761615417813385682078328237615758536055468330974418766120325691299716205926920605487725080503028120983019748057935524944359370235937327338643222962464698602789810182232956626510906701228360018474261463038325266851365906795820561842807721832324254527553879716231538324097902678630302137781785417724896960955913212932771782718353084185421847023725969271681751537195838937747137057734229954391805381765064592190462204959896932711017138707344100760256158063294442906102565188850216496779961675402040487355954267642100274667524677584047393966480540984980851587271243292803452321013268780219771942584332439702230512589460336678674169378403146172083620220177713321268346161772679014731200030312344571414310048558546706472251632238207539807300634743214404090177283934763597008182306103458207611295378796461010734640805023003124594884051847235996891849510076004653035633290277343328285933498824504304414413770180482264055384411832485748674883496298209503010333423385246406166050603373114713149788414701783201717599371874840710117471969777626195825262789903029210291826265852136835901877571998725531830388759588140088881028555591346304318573847512181645088272071380418943114756955667031432379948527019008133181667802751789355270253471984895315415534350410414999443530981762128691472075065005268592206987240902416019396878491274040203528108061845080273794361458356681937159585743989889280171368185775433196762357043617960490187530984938803337875632562343178113714738439313361064889188832448590026926578827757374802720421099414372035432727802510413546860389541246476411784264435585077136387000254892105719847197800852467720842165351880844913390146157701754323574874691902140578878331037563197061797803373621397421039227607669459290915811581813014739488113050205513720995365321603265756082273354646896342170252137227200581906181145418663501796977370941350442066355318680825136611011581047945709231581351614886641349186430253945543360595704947306656970712182488716873472294849642456128843793209856708476180237657054428041995908424846937357238732770875917448101174860204667963420864524972952566875083357648176763054139935365574255568274425937970724440273062919685043209239035380680461728802967513408244792672576637964961878650732049903853469259852541038855403893446338177885684969611390508962290398751546984962429071452506127199979430011659098986243786713050202200110281406275116658428584658534045612520361520755272422553410016683461175751974571725205411270271502123880057036140332594025198066715994077874222897690535311939934727357757757790768471869911726667994352948472050302858693295829528231344460951233642221304289036794916060547478648900992572424984086422659361022841989287690537110522279537122199869727023783775497025420275097408304859855685992489429270375320753646746441148198180996650368609307283641001394363102038288485566030658506916668140637478029775429181943808371690020143808892515606220206327186865036445593495232883211258861726384935570336743705941211601545195469169546850040946371970308541894531541004606633182525495093507697294951298053374245974579093229344068530302812740713813867420410086616821182472059763381767657291679360946710968859087091103246797308808395486181354820693640612201419823332549597936317174360287573424712837989830064854532186800557355229158042965796821244604246571401582970432513799170544836929331842633209162267667423383899429680031712672626702237420851118137951210764311638594022053405859229394307512510852093848894599702533844578139980774299987319651951000681485093986146785240660064384263991252238550003454604931357462892777488630746379769256664508136289629220710700649980299209324961762010103360164980114381775583873049427001931220853011572669404956588746449041090431166549588993185763788781571444013290840559718650566985332135379544058035698054760957321401082531447951653414119447850016745864375187438421922520447324148211989390279173510467598879929823982013775463829722169880256211944804134489872938942254288142444500356578532464208828723818871609502403019750418583672207676738614670711827465336666811567265230777643136837401907791629581243580402494635815317200320661446777910349003439237918108817483621748980058141446063298162453355289111233950768869596783171725881123369432496293702295499218153276446121492529796578861463826523665394277192833906476420021265175308856322714786239953277977639190311954229280217341676418709911967479452564710171059629659880413614063178635036731589154816438499729882261098939136705787957925293386523161881538128247146374626807551123992500450848030747293316155806676790179784147928600037716221346380121842891562586053923417951800437443130429182226948562232690386990591758337785416737336778714899106644597522753294941213535175972212082628677242957285871987575073336801997701815213844794068147689943422868050344412486622482298073915885992638079531927454224687603097506285583012578051415973392563529988439332748588752800578426911906572112185431811452298065243069840608205539768536174679485888765318852878006081918472182556480412081170404409240367258035754800219216898964840443840640462065020813885994755127917351526474036710778438522563301515874855257129818664950723564414322203128930296736124854904855643136965425122334891779263414515495411084134611932214156275684815801019251519684100987994540960093021723076668412527887259738691198291801749829890518524428531741019917574349570262204927946785069512905815149885864080714823169049894472707372205714102918838831873495252865395912679721202621964944994959056057625146134379815131746389030558486651887571764970076877764435608952287397478877234222177484278441051453482446181819019343711120729806164420364638942468354864003421064834270796757875631266120396396310005306417106442420102677782763280583571600780498429313893181485441043711873848773117211514678669652780001037492276409304143812245439866787930737342656565123477622145051012643860942625170420779334600487635442010287706886085631129458199463722410630707116882542844688028123374776726866924858770603559456376945524880114130916804177133424309119216950571281448285121422795318284598730390312976490065771511360832098964231585403392690525089965756969104456843198360275094812898752579232426885947242619478042996514900156410032127065228320631242627338883462064619994539797184061116076583053444676380017644251804024453371933478107314714992407740304985320823615376865762733910973613804914192637031849152136098374049750276369069243936600400834051629135253611545644870506545037946381362750013382310487953235264691763594458504589722771594512869428090294403903491383912274103822055262756699613891532981709960214533146068048045362954284726088008391795735278076029360920590375617526149694525663492619598609491357202140269281361292810266474838405396363625818515162604083524161141449254388503681473606923356853338599685607789037318775096556686933660377579732761676163803669414082320049155264447762582534182261678890729680646499967426976108678091613855735910889394735867743006535543965979138847592477455433145301273583606963123309005998550592140635871810099143432380502047295235361353582879487499641192308052272384416792903499371641667413869053176661384857753191226729869086120790207467769158399772141194430669441986777764070534559387722975781023424809266991804208567958297270403859940499287178768696556690936799092364204141213604992168150522674387262814351416026052473727876559771941200266349358285452598605582530196566253351852831856677564646983077318916663837421066125455583179861569037969163542223506433884037522789765060933033424361788442429034664942122870931614172354462907683720594776208418034128435996527950744892763599788391813099749462941942123712490494885348614989110833865804728595040728509051513051422630596383578587236654085827867713516821314428809023392897982493115782145724061572888664048788384142215699288007560936015219484874747011440849566973713010444367075960444307961415645938330128986356761068159544892148243327564736027925522516266635194915647983096084199388567755091431396801927669262981335775722654211042544333241933807389237869149593142690462304120191271985532715829293864812656140504295667437519633792915428377284792402523711630033950831430040998108755413461024340612136639670356147902462948367235980764219147534494883065683834947938549772038042756852646306037141736054560305864515776099626671232026664564400284797378503643840795154133607728761971402483899993321164414875446519649738756163260461854084979605744681911267988425212967463949850144621869537282054443642722349726692662161002911314158941626552378007864234344477335126461507747476318829677483559266376200946873728116807034920235198006578862342802837008040624802533734765102639086080559101292436587469706556108990585350747464174921504422298158568260273006754729599218814369598660218051275087649563993612394935335811775228246800166101979959175403978460786342797032406540335460363040132417709148582118693152288306864577763690381505125125255639346847391693630926016106179629876167239996576809869697019646374783313046794601965651729972392437811512202328036321596668187700834210119669528109682392776835435805915405768401118818007297161300456244143804500849640997381719836938196154120852363997699658758457816123112002436866479319462944766929150685508384406831011124272744158760701274349566906605838648957042661146536089536002226746163243496643670475057970505204450540093683848620036752742225690653301113962059939358667656474305178814326520848519438743897778762621098123776175391097937143732071321370167529609102148078585873594045678642660841521583563584196106062831358487394367501956656148226199975733364388665416383609959373106899350368057094158600936010475940110237655463717612608568985269971001931677516683354258404859822959987190760078684819991299272650969057807451297941428860358689369474275618961849956688234934329558565480531129787786153436858905693147615571447806532992722407791325532655303578355279959386647636409236423129426128893767873710849623845198872545309227533041853711821470648943193001725563257452451713374843190927101427440493823907455661084928269018079357302985805330722699894614100386522903722479898898941913659953405305711092793154820110267654160827750628311736576857886937545740272175579471898138946822232109239252230076376881454435616991531312293458230730478922714491156693250368232128963393965471214920715379589408483351509145610866822709814532096608476243291573357317307297455745233406294965471293630263336488052875829828864617618156834068978318228148388653530179302224468562076350686447617099493951716348064600283054805073637718380722631632437559471213965903018765501203042951426759008617721440105619113818278398719385667325463055974072370602824134208690603037369991478987844533856052449492948970525640765349367701712436962414056927930885256038251686341377641068017259469728902632519883614656732846150232815414325556684604279036452047706404845657617496142503064173477898345158403543239844819357068445814830913900944956812836916701980006018136146828145345214042734579026633905346817642483882793231378120841981492755161033756785770623281209054498406763581073220988769489891798342160691392127771650625036054253585858427228776522543521102399766436375260364110802336338993441351859031934551748369951808937376834721115463185084644543489547827308520891508193876492292375599759548624702404879764288995586130664424411958657826995298467030997075272635535762576695639955685139070189909042851000222614864448609058889724278981190361331893313222185851874802924071078859365618983824234535536261972415863361195886174976010669683310709070434585947003045506160570783344373144806131961652081957644331054323545569970397734538707874484162816086700605360303117693096548739287779912873260631765438204575433114327407866892222561661700878067537193688486364541183347802384328799752662232903868052578838258271053896400487056683621889876332487823802751174706213385880883955272607016985898989197066798143541949968271721099604297148610773662832068876036273102992155409262562926691625102732072217311530392931454680191911787291784192670947908430755586874139357390403964606108732210670585812336475342199010442162414032238752607131006938450346822293228676396743900252475266366607453653127115540897306627831563015428720923488647558508784844257288703633035246962167493983479252240219165625746088438081098812149560856804057226679993452370035010969114830536983711778853979901243290614433907068886653661341919568877069311143742200006222609781737204532827799791757976429812934703002803552794360270203366035857044473557052273476950937671368667761832912181993199104793554981686019228204470056014089188788599932402497410788754849474423326000864208681510904223952465676645038351281568041636581740562703838113086251266934433482413646856399074053919868006115392278795735059013338301870579779269438173351243176295056500627689118594852440580011275273082356360073747352134293863665116430872959419099203933102824205377199925543286665475304011250775645975095545505702604429291700506422001221416991271960022429158355238073782843620967616649599304964204268259917894715170138827170712195346619549037054778661737097335509700617635564663569127402793932028502449901692228047556954371791058116445454469683532849717330110935438034683640822059662059728334083641668148911819738989188575347437121567154608803481504212037818906854011000537442585866774232328874457981926527659586289552025030670527083512601608205846472192744658039352866434467986908209162592232931541895891690442499300993072871674366089858065439747112104655111481241119851735803431745756283662852528274220355936586005210808186876327503642867021913520542244701015624021729761832102363033700468347569171264707959279290413555042321372967614604654466294205697574639790185280566662804105264852190709234865004520735138946127877861148424924157356829524903691753863453399373520884072249440592247810492673909822327272597193853378555809203819198807830246645151345209238233898323176755538103631863032578505984140805371640524679598338563319481833430703572369886954945275847998796792726104546744760778047495771894575372779119279756603037844031243348326307872069755215465121070415091212569542678161016522403874636786172462013397744045399612899809526086370029918657145074625476944585602209074149697715192313726704915808535244794092025446863663552265515265206931110125993597416784213305541009337194054583917392698386821918369691817511117224334011658797400422683144745816383124662238675656838216417248527260211067585184127013521300571071239755268508259227503200139650826610231946603591806624659877533005560151085558376234665641245527598699051434448012527172021992906393246875400661025812876980807935971217336585338545813493587767968490473978314553604864622496509023480825907061947919467107124267146092895621522867938984870557415950072041198080934332932811850672308386080977684154526222941696862819697314576196514654269413081313071406565338927294489621870072039777274643152912841624653574362722399505286404321250755526869967616123718374640085628928741897602917212859466868083546430679936448692739171657762325349296329074320346475028610977066667362383697679578025077927234680295942105184718444016595080513511061586221473361962415422311175070121527309934538149692736097909408441027151271852355983087589931621314698844214353780389613192953761772259001610561541952034155012649022784248578683239807944636356136421949545834593221476543439542331726043885920402961314882361425670557745872699053895806697074167287734010224509645015127372135783466528083237848302279670970107736519283320766880668523627612510697025874546412859036173232283883602523888767517484839244220819704265832247844043653516666384862569505920540006193140667097880645781056059949731948701529479441690694083365216005544916823265551525646157618364006764786623509015106131381050386975189590490614851689847583917890027327786227003719556436725096865992983340140896486673120754082286791033355918350922962608752048285922934668701000353657110591898050455141015673399389346785640758386176450299313676842542477242714969863152463168425729072055800712538953423697792019713709208471091927388558095853720822481081542336373070114358419421982756906359832871211954475933639262440657277972236758066656772028446093047364575466646006551773978883682817805227290145986059853161923490963692748761935887894710108682032579937190485239087090315702807231381390341783482830814587721359546149770989464184048973809528658927579853566035201554125636728463523486989493246967044945791155944084925388155467812571565471860867873503807366600434972158151050829441740261849391056291184483671098859516997046854737675874154068268184333213585247816769769262105477548014696981905581278492176124523201636460567616069456647372922478778944068960718991417475088544014591730938013434347406356869588040276604670645884637616989466905926197991322175190710240712072388826365816677554788670644452769712165327887726435593064915348617117986565676609032252901590705384624908830006036543809961315010037330431350796371140837879052413266769503469548024010564640966859568505791519896095826776508660529966177060642425276601553899894915605282475976654485951952669971633053781216649094026429884063570713535991491506824066536522062454972027163437508676208012476466373908628552721829939437280289583670619955811413374933739596469125674150593885599231834020927319006039585465306865691389656892459742367599229570717954572084233202214627811212234433021844152934136652890167498027244167091483408822663677537188289323577051949548576990367020352598961623886388087671342172182644367778629246025582962704024751021929954937082842179455079759726688673375420909915706084805017389325619926824463057199096381390606868232405384510382233393592585373927888332960491191387992334065451625533297216251501619137176714286860228904695446066143410664554566245352357941542952886070298344389941098882173183891633995479508447260846619920614335058013992951862196827287247860249833379191220224733916140821415208361498325116646384547108519069614539383824594891700313888698608000803543669542249978436779667565943963201323803609254766727882808175057666839235650122935256726507969974842054876197286776144084290150180318760240490396588462557900968525550819664121467725608114992365248055426580014745010742979739080860567975529008472289533351935343093975562224567088599426970203639350125661505259562220901720646229189902614663996629567342701104848961560735768085005016138265396229782736685871053732214023564109806432917589620046319572781294928549736254703715898557549956265470950969075669946650046640595269096189304495841083807783878132445001001215722633098649578965781456270601067937133722074895761976349657860860626725285909516749234435148279491683800604007192773422307845705508884472121642763029592384248250463211305460717119016346790958416080637876633296614123602701685900696615040129290484894714106116001085097785099394217014922584348531114195154772269833527572612712555607738424541888544625459012436067313455077927529965819869682190729985321204404384551520269430420008555214927496281286487610524628176412101145657487642895268928614670857652154525736954270498975675301859489668149453717040931758930471146603123859983214634864281615341131167824014085438097308665660136472759710764895166526014549704412539553501408077713226141784428581669472438304311657178019667732759909152285450950891815793743637223588327392533238829445204331208906333789030238308564108926023371258036460008308970985935908046767538792541230629943808435019243113839921047426858350460619415259995944787596540728165737724774010345338676361044466175864523409515583566895502333898082364256047795460450124997098017717045427690704723272160040738660269670201201297824561045426033388048251761878879294622566927404698712721448510998681709252646189475013628305295085618592154636737794075961917341885221013469609082538976193474152132589344138526829980261473861848687527437345613286971681118008714130414440937712322169446731396114835968841700933130312387229249768132680670104807524847828401336899001661301316665342836243621685869325263678885388775763655092489707650117657337874713854445480675805039511299206738939386631808168291285700460233110310374995377340985884655379442579542573371919049685605766296786897394128831797581671612371609765239905001933098236370240881743993094911382314943226711044785528713391361878420823933367477553999171176988103976299763488477394383016948105246097591801325261596630946792544555933946989034385058783235697330330974163813353641306916944650996791026903392158928300785389472600670726566825283291155161859542555691135008860108796324524545423360731416254843569118091712811315802379366924163726047310686320674839248721436473035857683927034700502611108149739565970694552296158573458459170062632045207318229993515931700412257301536753314350101555379118553419014555300551385648453470017029727304183584759900372545974795276623792122293343205722827694897706820930687369195130926032294799602346577711706719986999246745790138544873102325779318225688239156128408828284075525933293125113663940371852290044454248989893655354776151010494356987731079881272740285584513774446160203749061594934043749458609575527687989118675399651694348324228852318701946724261835559714089369597803139305293676038589750078502566336989193370159612826876157415730460521129091237850469050444299578401400758312465678787974934987119447641812003355040299367688658617939631279672396468699710546394712764919257772295217921816708454821676899238290383783825788649083814828339901814453987050794656941918060880057919465802212145182143181543883322072060651323389011106557565104931093515641724005567578681096437939876305961809138155185392631527853651581318247617988941245121417835490729142168705593629502285361158358955037614767495875209544067566525029066666213765261757175181191676956202192923112590762970562196121067139621773090147439663045783365632596635670229604866947838269985419811705299851197663118592122755624275174036921702091077266920122453035019781857945910587598070941148043021707759029695088067086165929079907715333904392804510372780054669533722463520992254699384067273433790469218236144341402854541199507323503826116324344693329609642478892140114788059863354600405478733498655114830067132758997530683067199026141977510228740961070792905815167081295012182506615586099013874111124971538251154757029270122967749500005865705025241263830801300759142167665000220050324470617832646421695810212965834243192320381137577042634714089690278185963498819607953319638050140704404906370570167150991494936624913857602700974279706509196123418213950032532603275992007111522390506325675821221425412134234976520733752073618460923200262399080560307447213110009150244527890093345619903987713460388202682124665843763629815147080436141759762289303124685131363160218053618098926730341818533952958330059009972218537391720750045036514662658611631140638798750842284811764174211845835164884404800379144764020794487241041949543378500001262313284919345504542879093874566276324034025337949038271566327310786004799167788181389383418795897465355751829915830806690748126087960527821209445323921544365854898893554201314235998814231334050328263244705316608131900818433421540499155692958399834318684771032739231593734830913004158989137922766773499529287450426572298890234496720102493525160145182243204473140550150613413111933408783065048567105831580921870949338706323533835370239280369382269619016157599402514316083278090954218045904279274955387831974485310938888737924595660853216198136930472458816876607615019562535980055818798586511237459223133127409581968443850800994256743538364034093740400080241707189813671797165643345929772041600577536154090118871794851964679617570989573011221594048427445336311451724771398756322053629618115452591887250621373487425568321600822623071536159106317770669298079500610337857270529273349788279092197951622948788706608551047449234122467942388373360329745362747843124934595048658744101420756189493815979754546232994207110773432789371666320821506926423390155809193866884638612187239397928237504912522704352853406601009375674460345311692292495261379193504017485693885453620526245191461460282578625285996270830510263414717448817427691496207822900640599224302445280823345521032430872197307145066695851777210189476417831955092616781141241763596621107882334531113385943770996567992542943245301329294119499458548557498497523363156589336488729843876593226089356891031308950059493853017216568511421569835150637894741238200143726302370181334818070273259223782508230973300177185852020409068654035832423411581636049440022417112999228545275811518499563488595347577532104958440812467067330382427384279821206559066937722755448691854448268198473632188015918146143333145392936678366687929045055285726928968340253748056969567553938018728556688531517903653648957654791917443475149539503797908035107902362152715693672167128051086558464609195192025420721624483672418573967919407751438824963776206710372001255215483619489845301228180903923400657429231493670735754041893236152007867693587660518271781182582033610791857056713279243528820076583690032066905988505413019960694201048864466574799778974955506906821033341328263699027612385159241556360414727977912170101748522238718564055204680302590196242552241876213619429278436085607665466350820794613533192457754781884182155049777110592514471918534636190283076981392017804310222980591768062151758734341840712925650535442453098082272879235785706535324969793863744957639618030169603089005228808517458523114682156010316398044228128965186741924669104745187621879236784122964172887373751234686987622941889423215433977568689901603454184413481183571045773704328476030493911857777265553750651283136808162396924549658017676504364239064455895906363238503875346159606214653605621139458152818243149104150969801885240872572229768075834178921324513252574405556421639795304094849179239031653916865747012084420353319366174630848510681562495516763496097672887622410536107195550209161395495158866183898113646972979849097182845092238406168590293020811187230357600881834085239764481533924429737947594769447420476848927086193082684540641542091903634410261801128995676638391695286157694681179327329005487623107489536139437926973751348636270879640971658137207769207869023159514510135615051516844678280709870931214101829799626876095434852580852333665433117799080744534806704219993891248674032211474021389275954687951635081645840177993406251556923329483363297118558162977023959037456704967928298564812345174346767370105759606381059985247944557062462290438262967970916861564290678040596282530290303260001976978612798248171100318920677621473381278618010631029326223176060657647241296884638159810611616897841815813993664926593133808563968639713032540978498073088857014776601780008829066504134786804049222812102704101439998505159997010333380457965646520326610517075016403247740104013926144247930833889738036293132520624468224505872096569783404258039263139310895266496769393668686584875380045122027003387441798771356359927609799137108617669256044336922291023846343728568046021440109936260757487688166127083706672341409410137437057521938577113104361883098369006681838563472567790293649709369227415587475534375655038191567226363107703485040932183333908097294067081497461452315278031855764048086652910722673236933356782778113341471918732107806157676195716784435494273909170788117514606648840828752039892548313973179294158221493984457430043012721901146665107917980084369016675316426729541967306100968981290844952405552301037458592804558665035744470860720538103106295900307785385456667374277769720459350736951689340345059174543933115229676875452873087549087807603963150023454230147729891345280466694324020231098144837559254269024466843509391506130279311133165933649761796969827388643017412983497917091960768569805323840342488825301539796484249707871775481859707419401174796923164732958114884640514187260756908800709995650316345359533760754442193280972809845848733215376201727732257316661617194481817829143935852732692749410224939634470834195109990574185762587502857610929850442773271819964083438663233125035096347470111015112098945957123173034070123616244282085663536499823804519378560259528686480818435824878926063881927704145674643819977381422249581003141303680645174837704045833300237519975009102410947393584207407366669451625922757621209136439529536115742131822471920461375317251746058057236124829645801763728246861982972984761085349224956831989392444183259242375159543496545828668391044916038097128044600216557341480640187334038647958460986379196973403526806881025715459504370668147912087034827389933025855164872910476348630549453135049589220091069113188137968645712926763410179406624129816263149292668478219149576875870202530776798167447861741358861887167743130576592982301417596665982604148860280689328081417190416447620720078503433550392798562524347752064270120004434552529760884500629148917250676603379479092535902668256019447101539435717016898901082662621449878602726409806567390275939137141772782498340182071661435607459522663890721186257263271922714982028859478741804619467025634458953452155056064921159334216563591848944568629059218348549888222459999773787528409408435303913990900651120546492077174152033809936768096474921691966717189741677683217775470945624518441918253297712803345261559346515362164233622426204304796328199055224827352640848898568324134738249817546929488840048169985391759646188630262134471280922219084697102421864930835930170949989465559202828757275778663374802185385156143008145255017703144678490571188033376042035635518710674061104710619899862859674507673316766011472133216070660766112237627343937700563822061486951084344559257892795472841063580703884339215440608453563021757593072010448671480619390966968751847866655786052365482496181658573822156841735622879439145475559292630963174012608320297415846616384350712014845960010100905614072218875424290836272708392408246585443676962194700561293393454402880262988689263892302639359548455624142688918295176743794543128927775193565541826098144961283042575344567487481175370634524083344664453065484640609465148592856454842806128672433212441176860881949001966846931198923150217931564526368619703256646995706275026101751332935558632296717764806839121490011263206048521687782397151116288105989538421137738546770077863473553452203403791118428919144599787047544329135995890881611263850859852899192249156013902766131120261846381917496754602027766662716317959986547593044144992008447078211284769577966514305382373358379297557775009649585682906452874517294783732174418408173286441982426497700908250721985988753423738091620886682992633735434058564531903619564628547751424059263606783473809934764437505428489768426487712651570894887334600302829022592609836672876467306819322277977103527128793774065006989257621791845951029531641884466805145827981162528870402171633149603447955723782303245964774875416539202029694742146164376602420529921507312232967184008047581139082531229507304495693264111023571778950720279517830529645679268696177892137431190485868413342914065702108501666227551662387468127372638792271270008983504398169494378581451741927985425508437621376975104221775386887028997725354854913892660797063113404878690468931274434588928239115390029520535737964806474575987910431694139862400671339461070269421555731019473369284448901155269561240821455720792658428892483567030566125799933511818290261889269953670969118612256630097304142895732445707903757116669767680501164374521262003926223813904699374384636984321915110409158294771961874141455530368985230442692712842852701758916934371083730401644561384994322664403066836260810603365803772578136994532076904153906361347345954911862844916929401308118420751264513366310742941896432667872443115087590139547386987511234663880586906915416644303945032988700960427286537149411614187194037366771866473548870658585155821381891934240534368674890354875706991697237343295042975875434440176718368856772215631929900507297926685529007904982565474669940078814264334845335874685034534009958843928250932548157730691583581112252165588571353882490176310502737700458503086652465771399974231076313072093323119799963887989551645355117323352110249842830155182452261203474080163958423388532315902067004120013415553086266375588859533551675970775154382889332145283680478917996888847997173508164289491468321399300552252764600462642452401459097593877750461932203625633894167401762007825388925858022884216035136385773581980243290883724497565575165074070607267068555256975624629161451001885904541934549819637933033814879249763970402327830965021582695422340842459416613479899764673665192514885977180882114470247001027856701608265516985427277286281401510299790393375302725664847724531065884625736068123494019721886736846244342928581984907741264439035465387516597298043096505133677130464549880500015856012605441880260318530580395805104156143007069696112741265794115775119420299572615476544219326867943139223758806593765677883597025702035480729150859720010686934916530472690824016679556363450324207433637533976575181199634613371206042601938741708509731263611301930194772833837458715697308132162799521116667300779516167430015443543227719596447207499898764001531306289018737078298004982705704553507109806694171152133893639834465909184062260089189201519562153032030032227666988906523805173316930024044364179271848986740233583287802360561911099560180132109326333007230489559938614076182422933924518425906933980765450560576809188607593292649256201654573327905599438442657024894395174858235621352119438487002656585544350675015165708758169775528464576669707401105447834100568450270890164342219166341518641321502371022914979307872822503811386971082003772041639693618741968498704429574753109860096927103600735637410660389250410420461128149677230044153987118242678264198996811356082935448154118619556382605025404529722690988704734637170603268377643773085950570592970674826136100606849826840321528624076354764491728849948408639038427847710863694874068000313423918622504470241159503915302833041109433941002386208407688121907101592962161517757222476947118326919612477478331861487056362691908431289106661979740339780204172999087053735428366185101751785123157491456444101366052102178177201591754660450313833038474985616046298998480039160068268755677967319155317458947676105300509035221384079073584619855788963207256352076707891583720273222742020530839432993786899878060077522894866064679856044139213563022539132088012423817606800643982428161227016423158930554032743135394390445586309673973232404026115984013462773190824065642213769444551840848718563036661969245823682677844596187044971261316316790984051760417434929869001444188984076415031647074913586564714253942099186852670837175628248407314812829803042819497153408167138478015453497989798047856857893659200750766599590381129335284523591837981581145885014645750434725042323930631360554495526440877308606535061490840507988002882840370228953329888906123269850412065316848413510967340498258616104537759441853675738092380872955018578590108155198181261893482316771522137085722201654650099301348974688979280403700883585449293836214936623236642093865322593906362789456534024661691360462340537919965537526794101595323910079566212544919948073743585162557592977873253319855064131153780781558266168153949265643057417047032164408228373334318483348159433029540773695725784831516822657921849078029611059612449332358288816114336399168091431438422450870643787592846796321451153989211415517297450166629185173164503431258048727199817075089067128297453608643926009549368025471493378732114306765521553267709152770209340469306492364569403251105041480019834469909233013877999251444113187028799988505419805284834053629965595426819891725617834600539723931470862166327338501782452872889716373464247478979107633266379709047924234376557840436195459477772033839897873056607342613896210255766691046470286815849712886299293314680757480110255704106012504643380780835635262010325448480035670012581728531665377028878392253713840656157033066612255698649990778204786068341130870619121219026478060352857785972450084655428467452873573818123778637877471925733201200030988325570998787684932633121733820063098395694147318484999650713736140360794831065511172890637246450022844415817143580361209971335604627583533920892301668978988402204775733796371103932039957687839537289866056217722952439035839485224374809139010367472421559389363816490104465669557716144001106672189368124428960327477304282102814086460995720698029533873442035323985817157319915782597472473101706597893333020232762458996390122104529287985616345133918796463025386408323154143070344986455964224812355438897475003193224430336157651002232907779347808467515899248750929479326944455758775912121836206015999344819863159680466403051594457734605386809866839904212791204920714489164097651348980546630792516621286113312765589645406868110558394625257319721103226189057654771932714562135650504892220713889015735301928495760516903862393604021637643966031277050588461226105222210897998469083362038363432171618709268966682659179393407077287973600428983497989838594381032317094178056223094956294887855905605355941694022567072447353347176841317798659560618343540804834216276318367192747853542650016536963025854248669164345700400774516232365779358747140562026676347911470245921495262102607924163653480537591707934566270298994789065409549655987132744441884584883081490276710509237013568622331855225860333921899093509677543865641464056939832670978767813582690632224231025326234471754565836785346846788372827729352861950547130901565661639090868188571287418380427849757416492640233448839573574763476342478226950861291969302389470847722511272887380874374112475850807103155601373223635129264764760856975648562445459387289135577913286119575929476826164474749470312771704407000540686321531318344173683440815947008226914334957775166167634754258244259528911392088454867190949775486847182272827980032077248631854821675636938199902390234393569078663898439103237667974002464231913432683127729465103414321862569935766727220249106334270110304391310645390669132074209210765662024728724644417839650508828524338942280830783597060514203184521723267545881591744498405156249205260136823456819897448891180024913301569387466052457344434317501095355501300363096064476524639919535771571211323628324439517456909081098669348761585832381405494656087528804581024751320936324599998737271071404484887909498294146372162507415551986358641604355595604452611876728401432201005660536284378587736127544363683062344748367540788899067106716718043719045618654289561003790975730783136615351103892681969153603864156626400910735645457571186982402209737235010868099272741319229700452614815885547672692696390458633573137685542419737162606219652055354101134298552807700429066745293439606855197969816458557559832918580034561975363494205601607522675972615733696706394805630884003750159086609933979223678241513149925534365733798875470215213948913787800122493893259932433790122525803504002111163046339853176465263452773917678553892805007399221555644220966750724658387113983849765631831536215246911592343576929715176596155258611200847159008582062371046864238577767144184147624504301436194034852937592268119904943236953484950241565222917511777349363748012041001155322414006384301078370099909739528646265915577776279058961619674289152289578430416532254899238042479285049376940425995025098879306647441457269630195168520854193272912314860163601573424021207580368247410226892352953605062324671649660190269127594718187990223652210429303682589867936399368593855578018317725180154079175494809904141111870444795548625743624286300047059652403427687212130483812442128519844451245391573508078621236297234341782949783280943355023509370180527358474981718528256203617677199769682538741606357230503328963972863595746703171479753382040326924414855606218864462044214656402617643141343132182486172766938100785664147156714487874820318683568676484784896786026882910759692313442091052256333287315156724311025439209366424906965157112705847613656194982146047183805811606144887636932792611453819247663916435609448038238201650163485584333715254303825650297859248645397291515940020932368679902779763989121179917301435159483387229456394382523834128632599950889781443819016765861753337611676460315133026674880402163640131588855609016870955067826013920121026845042608448955696030503634219290099417522845412974466593102853419958135757829319455744600604165041601915009802155200819675178164316881895147095675005140188579595122494777902697352156004793774583477201166060927302320447605309465432547864783524669686843564748609324653545173050290142412396194382446360494640790542808292852588222131161595594885695185234158405806850711259876421804881203511857581822247819543214115313912874208138891923544425758801645996663180897117497012150316538173749399645603166240016981011632410034550220532788394213495009411121748794457446311980315323606861696733459222159319685367421631723210811765218507588858442813436293225091682607623103534923525715367784589572534593994179114147245128691306662039408477564992624869628627018226054521598100551869840270099758311474468335860292463792919839004848439216824749960066027206389255989897508415510643563587025954586631082583651134422139582303152478685046410721884984401832035316116604866992531294975180775190604812537782070335135516518276401038509591326692222421460338970509481607319090502334385229661807516960213415910752587639215523035681132920927031877767735990881805385298503061366809534682927106406350285201518068602762257996642608985342317349985757659970536037373019288298884689992569133423555332504545017170241065525696830909697505028584910173456989004355079656702621650286687981537944579621065296803260955113656429983067901258980137477056922142100011577709587805914904942057815928731027633092904785918297176351769953573977646765760454867496720663999445849372811828069073412081565573011684868396267471435536257744493669858270821221733532464308192603599675433254521305371103442737962251616406689950636384391985624353984231403150377330282001496074203492642268342253936306477252943269601354664788021171444616047320650565988531977497028604138669485453964322983055643880033912916674197578040075282872685149181463910609978778950954442757628266236761358642311544055994505902868635817058720522060682394214656559243948273179695176400188789919615148129384236394816172989149276376758360441102597480214445876717000671195936137876393549841828851729606765787397097928589751522487992111174578848972040625118242281091454826159495120040106393771505236393732079743655807106915361573593508186882577454806743480608584319905789931454826152322903199202538220867857277526699738975488470960482468773077810219697735933485198575362118018732424545673972151260569533504322783769903858752454123975488907606502701058690839619687732978413636100064410439808799250207759245375601377006823304109332990130684070489655889649996791783948880069209776042644909329170948393392005800951186947529016977923447836891483367454634397892078452948720283401925015595176849865851975926747782297659010207265873913823165879014151708820273243842225339673192418896284602471080984871023857223230279178452423700548803428084360935479420136759029012541819730961917718243774227535231514797214212260758923355954015410985149545780241768805931246004409215091222934527066138726902873941765641133346178027270334896509772941124259996802012628628451616946444102744775212154812378841966032059583150027400765967926845109973761224349744334687658778085627584234610999193071635724313050720209796218551809198268611200442432632637817427987523721045979435509692658154009186694658658804611121830152869805560082009469395555597888129420353136700509693308822780014562710389882785165407797998139711038333907023127911486092877512329684949878888740929185905122533241327379280924787911106011424040761715381956550547691462873888027249550201466321896124623305097884097349742225259561491938002849294864731811112729548783587108297916429349194259285308389134257972919397624820978763671671808727418382900257204620172292005798575454812914389841340019524745163055056196688881382699531629355920322850147031402639042960007560941970716208799396883575864998967814565807059170056507292873473994710322841851005321270464870016383288240688789202271178833077874085359943337359643156921503390548266776981445256958988708552365114604551431011500989681531178553063850311440122167887309441443883856182962014842470270732425332120628767796362560403095043108344273464191201726725934170710504501638332776209925089837213136884062894521350348296714729913449562553468818420858941501636230476445807558965156906839972841070924090254156677628396035681890623019814341932692338323811026034255191870489203844045383427020076708953601082391406409174715645642985344210028782268912321978411776036641007972213181010788000869393114316379509204157878303709383264962626392064593311187457032871513057917224298508365790013807655517471101630109676140636254619770398989319439728821732143871255430261672982792363413320040493430299846964813699151000363409424000589894553492245110169096006657018230598012811264375605683165393931723522962295906732478012507173538332866034152486067722980421459956553055664275192147306173446647293618581391906859004992351479470769406290189738773298898633009543079787523961682271462922159608819111270943707840058261446255318670056446933410581409784349947057365547952393640165521640743107443572547544822495584107710780280424778789369714690233286765328955319758701951212481244394743286578848341680605105922835853574506071087627503740464082870403886295532837118859129424200972383478537483929599322148435047038237087446972977115839298895126684014764644247977103118981019529615760271272213866164597001592547317767808363404228599436723591773486609775702215706169744548941990974044235355133236806166636010915429946084664150076742129789289767437991578932615188740123069364034818786283031709412052551824649763092682598624813578504453829984944460620719799672138705271490018941763891622662273095204470957597707018727127081684882046705231353047634747496038803414460649428846053903591017982279647475385161122188239679722672042909515580590990193765040938691834266634967888574524074170569650999583340720512149343472587502691206512180855141681812587969852455673460755985968540812748700219726124639877101608454739760274832054652768156676194212069026851457565191675556116641391822515326807295946932328336731802475552654554304464422560124525771810471619480173454355223556160438885269020545835330642979057757057703432345246873953859624567791422959966604247876190573624000712396335449851372453990952447250358167122400864787005008691741703475443438586860845182213485380315888757710627280193262448877459484674743071732048867122968671618051375897841710258425319505050119972202553749289977050005136399810953364163483319320196279290573852679589809183245669037643415906985726348990805493724724563632042703093443105394182376013303125756873993309630492625841343692101882184535405732665326678550040252736911363940956391318082903356646015942165730644109523087531782937407459328409824622780760601523210242327917881460375443280221641870078387678169074882025795247281726707578382091862919272422843455968012676851744366340961435308681052233688333705998690743386390640115224309351181887904248578532004149136269401080791854640546933642963170433453258584326979681006525246646442983599394938875276449870264535897481226205619757422626523651570649264778467919665003112232470390078219618399809439390143473090496639449921526938718096363824553075144041287565425241180590626718742918542933377309437026057706651629921239552692586910689020725236849214750874691995937588930939872776064546691786405649809621604443288095607982025650395019934955963591842240792618764676199792285815106679786645823003643233367747409843823151504071050537266027077042399175951202808889977471799202256533593262197524986661152109117844705676072442248745343933364605631352771014041866638641643681858244030548708454126605288826326788239692565227042039028442322529413975508507978019725581426889204582330235201007829690294201156628533278683898265286784810153387785884732132597493589847792196987748158624855552910748248865437022334411261359882474432252127690169087135137134410747345926166383201870469465911517092945544258559470208247297266922819718391173193275364078516385294453046921512088725517839953914659062650099440952670840682837694775175956306393134990106764355432013153121241620568030350212336753106858215336260528929117520721171576853124688646790220647767626408786700911322796661728054852221989777575840609526082459658453062493532999137976293526715645654783980278480431796331076699417827359455550734918516784187928240895301527829100097858979706321870238716469813176996443657622059199772249906335610571804649553408849426765681021352701783431051874393816762127067588595238162998113981065568628668951887887328744226655522585659362945559497766361221251136366241039988401073418777036751890872967690702807689732060581331168847791117968624462769717574662234128514202919468745754671674530038392724149973160097697788067437813147196647390370789273933309219139392526727113241073379514396987296087637253022284745842872768120824932750957682200828185968241603028572436814990952735244826418190931414683937123535241558278004535573517157200391929737487792701138087110203717235360838560242968777531833504926604328100155347542467493373925022499593657748415232998043646264792337322382356577321840970928570780794754332719460114929435250585844920111204065979529489759765758861850565470705253292676024049888932211097596812514817956307828162472102105214993279836376445278899600292689557329585327070125787436994816206969635304774724643264649379417040828573797116559231078377031416244120912540269614468019113849764979787621434345742750588856250734889407377624967568540656186513767480662654839381569216381660203083435592595568000313411659740187257331400462149753662885111003763814435297297420736111888779346483368148754257031986986900241064684002653860688200298013340272991485445890622223943280785275515211009799463830333738180841547581788010866472790556644863574679223870100418936318980606906557964084592220682347739188637408622028313169329699216628030765823957105558005387868909372244350712287983750156201799871668568860717685207426913909140287407823792138919420640331074321570668907428607741159842440771573373876604547367116185844462511095528449226653274378771846068303315968335276459342039343460323117982502533287679053513580529792116673425172872843824273511478569566039578583403641863169124731970441887960211517050644086608184281596611026360722718519448710522277021577727217966406120500314188573049199014813553312329713716005960991489481509481841293612332752662702506569021999571393220118871781359814820929445413031763861786638692954326421088113710171759190625422791432364128275649958650479030106136596891294950227824528961055117093968192587315955548224168271535905933034973965441765340517540919110283620672961913339694199281253720940775873729977220726974822580847394774212324458158966958557117849327852537732838164457024575979471635342449771414681822402633276773185614383522312283670537328772302879468533129690844747388547298318013421430468644238588474296876436391552548405483650716250467440107748872623634204440222969249313606202197158020464403130933612660917837066820091453074569118462690812463359120734495297565166787097947513100267314802984945300348465343195457421845239238244025620664066092250370410399248046030416689686346653970129333197465533037207347057023136373691682196063446692265920042239348155822492613046147862173295289276557304002880930713929781587167852106368607165292099889268213191464351633625490585741636098043473560648886339173921190491474692374175387770882847139219438511686006970842544170553352795683938904439976323769672721128266104379353844472697146334509991785087838270549091665622306816868237660866268368238650272476018309998430820195024752403146816748449223301586232345106629071376793154482163636418343594351222925044400268297151709343499071947776821738706303789469445223129497966784717837509692285297550926450490201440908916001200046246543267118656989234838137837497074891726782754845113560311118997307452656227473824970290489234005681437275702105566560531676534571200389412316795102992540297534597337013059899192674146362417719862826029222003177587592838129567935597465989636647656603915330248336923738698639188796702345768905617235512037128442335515976792074347170415850193681941857229817481879587950069382742054664621636463225648371684476535280593917120488121768084313950933180488567581527331931898967157346121773636456004788761256606725922384888299889708294975372767050299075004412365037258163454840897162320116308150073834853656969362364352078765614721855368444296997741636393150368328830859036114272536857896026309831879938359900148415690388637146067530549750099161317871923136068856912360089272736440633938069652348713512185513710034404866666967282259827003228791639357584165636420729585565713801766856548329637064405642797420609259369722192815384059664156908584236598766378497861949955047933018233088387972286092038163269674090180341735934517849217994598598304466938988763255104451578924245902019667925485660475017071860595718835209727742511069765810290546167470519658906221235037055368791467952222932182150746482746494852725875484301842153694807807148531631325509457506069346690802063760310673878515395274873139029796043342581767260750629542227843409366673780939559647405947381344912222490419031540374109093728989728046331351969378461118021692873891640183588376211845724311087474943543745996363761490879217084800529715896222827982740847072618343241624639181450200906738710467033609164739506087140806951681668540665157183874367951205500018487588175329910652858141577595032141959706776351539990479242296940801758504087622786218128429632095055040824637267327721387714633625517199098802888585664522434539390369056461236708432262354650490559083460403031647167473764508974796607793688093366896441166547159438003761958023904399995912378996152520919098841627732633489583371929876902996224697940652553403467384639849717123842999924517432713476665623719967425828723773092565207928954365672977209091945014635730852182610845062173443948265390711343277326645986150309641333162856631006167017930484296146654674081592880166122274076009266274451607638802858872826366010477062246546518120613839345234804785767588292914790058736374738958760164693932822397973832989331752797635168542148642166965518139443149153733121234784664380254370514926517739868723316339246751122428243878863997393883042364826486153445297369861352138660719027222562210429058317918853921891100001713212404755477984396855765570492415782103385867261849997770988891191368521145846469489578558290329072300180494080026900158606782605542644299626146348690982700210677560207637279434101625731358101437322131110400258445667698560481493862201529050257741167623029124434541862920981479094280651361998423511707654515631769731553486459455493826104669869483763170252338484351370838751808149877981562295673656665559000849839898090095068430004856756697014786677285404520698459459537524527252553481256000678631826083108776446607032774074509277428832341217609720097869363706014929705269035481788700820940997549749049540985409979005230836639263480047461790319479382055701122771119228720953075109526148338334661635698949396740108643784778850158888575743737231287006728547111016232857091039788189680773528349439657043913104203687346279227528234109641274162067737864726908385667748047822656253500285923509686135803849134330812180516541976855151373878065688682861909017695509712717013877060681759015445814790045950458365315000950096055455396218680492260089589943730339597093545704739686088815084248990009437894964651553102441605333672058149954241537596300083279752518501723197076553414629733555908180562505993536773500446697720692102945418777299931119730437517539687197945538513626910248682567099098488356737236038869928680548195402858669552822209023833994100980662393339160074884847963575131117373856926581087592868552335066485600403683510147331664265064618736900821226593006394378644577470549919244947075265797920079041835176610792516180383140613265827289827383669740798185507165739395382011011074635850259389790090611362466855470050742377514964713532003363145448211332754190680045661371035929160467852156966325104428364032960128773658220746334379779448297084735799306368687138391306278805916139005374961438763037199219064952281748872116580487221849680799765952113818306850179315166297308969369691465034192998365007440936866565669285324656591621790172229266866148312494770466227632763044733275010724837967669071882269720274878208031486009398499561091526620017960452092174848740884243600472199252845989609450962485066316707210356475066960276237314173789084112170569134928345046599914752113557926801037711579393151320477985851770732887060992085742193849562718157167360523645922032000161040285941133904507157873376744769321670823676184221760713700675078041186795948731103563422430260344211058471513678936201019217348153229626114359703348885912327631212995177665916538794364352482590084998557399895383998422931433745279453556903026910499109519265953439158741819629793912956253308144548528749731128575715269204053796509601581847539736623047668611191130126700984054946500857991793954558647280776912240079919757339189252434534508409062924592060587060733121028860725709969446387826774584632584324404663611096259670523968063557476395738008628540959070253315031745116679220642402506348096381608872717703706549255609471911524559991780236193833838262918823827697486499636546586947790273706502613765055339080463199578316414049693208208281909474506813670592342059676985181751980586123246174719256837605154725625159110726962822741007976307018990562330850078976705298420619784684921194710759430035487670935442676017334639501865186113525558031624648529045616513729097623990448723538823112022104276432092507400601991000148973046090558229182780587263802718748040386837015116360520527257161399092213800563130824216247035001509848564618819355201531046046177510095377383751459368887764723988009094567724341103516268922984334293522480174694804844357118432815332505217817771377614639818509724659030008349626936018563681582551134241521178916537728418203442762837617675006759790395327704475367846810838494709876303468300799544636656566213446365313754004061416276311936347751983431721406929942699572062631890365404236021320599233728583203733593891323388523540223344195264377147773052016468264216043253613507989629530018235657534953928966571357184313258826230413841581871869128703663203472243110025274148209356014036961668011530780814892846344631964296534905462352739789844886043946948797544099342722392112671944643981489885270828083304304142798617431026870762049020497381113285436070417205538226766934015166244674959653642036972531718458991284052339733488997292643009483581735690057860461828707071517692954338153514675352310518102136508965113713677164857477904961440556523068733952791008875511909797225229327158510543652638058632813240596851263788442119386483012316818251831521392412537255830888927228926013198952535077345199766580784466679663137319627949460570117611508182813627596569478652969101168973298735135269289802444407281733836191559682988077703302359634723824186103203503754193277038460601798039628871493512827115629752490824951021479805007869779524815614406552203603496292089442544113218751797288907535075253330784446221936533711848860824529519127631520171469077952434965026772916304393277199520323931130313005187110388588793403425552196401313909611746308971653223412915646473420935947819888221744468665138561221347762173889037021855040883551535674547566796403581339539631215501501783148890869957527369911425488391911811586249936238625313172852521686729430344727999107378830112943503785058586125762174435277576349335984973142627148157586571481957134002964701602129130650653958942819430557120443258748706700715861945903693424904600791739747485028376031445239021309129505792996046595312798788594290977056203583757748207157253545623878022798798101020278252448834313380882646341468740002364735722266136397416776392392506036400241033833912988669706964334004959634077069178217032615442137349000119633305720592398791072222166809801885914159594784607331931223661292203280946532301873510648461888543353844731433133457308716540342155595307914225983321458068526541656079025330559678032218927399985262424255077471602557023962700505738912278606844493738189436848369568778493282002663994017592203108798485096352519799295241989722871218608493338694002200562134135214490955359833850028422201824447887769217920291008575778647543114571713470991716544561250933800734192736717243005816796080388275716405279352662782167169464183799394779080052174906589491084177794703429271149966176561913998770757944046680254797772181811340731900536028312813637190631569378622919040665313573334189328833957661818238299965740095984400083158188039815080088018258373155425825594539026311894249511058068249040076424853295801278579891442457751259410948896818719480417278737392098904942054162682862365287023783384762407094847335492078036905479379911383737930921289694585266280928752353365274032222572316137759039359876640699759741297670205653022389919973110529431775380090464540359874227196165153825426969551165348286509409637609200489671070632728778628361279837326505064559932710418366594342689523212762569365292487185178844349826469555385581727767084960663311954479557543153381040148345285697835300747458312714545571261027992165250510188376520446288613600933515667653590958774445928582155740530527473668165651663292307286486220807018059837331338300645053151285611141028782589587187228303985401060833079524929032255912471817929984730270086035259255711683680939265899689534783491515636891816622068153996409180345480111031560405125665405764150205619417575556315553612254084103683469490441018768031222049032914208286875965870478804699541363069225023415941763696987910982241926485850152740712225398441196025623092271105271970554945946472077031116053213381820993871406784675115196825850862465654260977062112866350391132958885742912178697485190748877966923721336219381614015694691221589561078256539060975548524927311559072459629065735867443583807501724341209354394503433760356311662801117286797709471703321209231141235522185097061185276507205720207755975285973875339883193455103324450013826606000727531549414128483495305863178050410416676969751587337257664220310691804865895284398741218263687420522142175324703307241971565546287571455735502741406482689131455752221537621504611690659718381052431436926799796063519351273138803095933267309455606954305953637461925643065190742223054706947595087137214989520841174361722046456012914253420585580779453422821770689075684409674841645470648081811475581493922729863180826590776754952023834925062737802177998197485019625116832530163325548340395146516072802047389125296078777156857432641907736625479810981383293810552297212319703107845752161440598609291001780231259217395064767589889647788487502694116657796205760702098126320377719447229835264378930361946902500652606912922221800809233405823248790069267613066157314798570054945582741829575292313294442212193496640663622211377908181679528928567046370239096388324021567600865307047713238716666252727999667516295093562832689224866651447572316088226026607693803520362472093318587638706192861002685601262891656285126225955849994301479745912589620575461009528541005710005059276995375551302524940195385554177828274097364727694237676216038434814234826881052803181801557898198648033316794827399845445918694925749977423696668142205941343277495242751482641356005786507952783221541529433542106047873823104754487161831033896371127559707948404121816763005839604860243572414784740208811728412532348310415703060676433511212286262191852285493015240350695165947352658443633251863370653917556259956237153912591486045220801336348048104517256870475507065542696537860415247224424725695793880972887024005572847018356936809248904182271887384764728791496836727784584759195123881748420091894589632583210417418469828117706522465118342092524013665163368947015068701143691451641811220343936633843407365332359602580898063374638482804690775125143717766556811073691359751776787932523951718969405215409448309632577226402743481353793100504066628237164461680624296232572601448446558928488804602965965788477512112004481197357893739801364141273723076134361308216328271947096598080853282098111291640905436665331956691854675832425285369324967488889237479321522195920912022242411844891851238466541568173255226644862807507727058044949199072847927763964338146997315727080164365096525250481828190423423580106925805937920644738213203556483514477003350144054682092364044654414436708839394559558164643406110952182599845717177117379338492172846777137338543578447246132291930233242545382385005313189914860095360907953061050763967217545603554828942052439109831574247533078832523533830041368110135928306173124553052619767662222434160530430120941917010321788079423284097604683666598954251231224743917858117671614606382407362478464519524815300254242399669311947708521511371657035232474835190826725507161468581768449186282692794480441135177658543906131060927910154323479077008143817722174809358184822994247272685480856114795929721841113283399991967797708334806892451483911106517697275293391416040091777264194999301696659016160848505756248052031341003026069055337631626822389396285293368438325241091597142934972008348129091544273013747564474431940268372892391395678261405213442524407556944606332029825680597885271608150037243926049716661673788155905826982451485837796866202213630060719399294262931903109124315639982520763658008705608521958605270547364171602118357116573903228347122518469907175408331993613606996267833183216677955216067679524221065635552969956530934191038336202981697815396646028001988916297664361579271884445301597979700872694720117801990391717308957303849917140792892791145999630145773294155370495280712084901914406946480162168657420591927788638839429220911815753810197209934194986003132784346447449927221520430021354134729358747505047479692489413846541801661300549986159480619625541186855995541817302692120322331492726482526954722978077806549178449995106708850926379188508041658243863677530367108198053020964819126633495905200764593334894889533833613817807868892407542446441398941113747083201347882803264116977516367949991306845846385320376234863049340763435081708277260286292050301472938644246600783274256953066571311040183089159727344191481892696507613932998562438744978181521641887841297596231621183503474043690876201656491067514687704538382626745225418347817181221956071451621359169185055380917630978177798904952417183515642824409074305526693015464621638290215656870610703317096240536695039483616547840492848239593577611802550044411793453967187756785878543408545850829589668687366857853791357222749633913313106941240734231333053291213810629081650652076662667548158669554468786823109521482271956875516013523363382539284171591363483979813397853788567978111685495701758946139563677826024359519527703353429210386356809192210873288127605433812088341884266214626710714944267321467919476376210418404838789339612256328599149050849015570232159138357403580011332667684681048723231543942459320800630137787756973696314689544467538382071538247570555989024646630819460639570719632234879660894191070300079188569695561257203888677567043295585470613442949319970458900589382305956369468721479625083856306419521993649888830299238079476312521183972484078394006707438106269053221425657873531199012137020072264660336100035693461598049830710524820512830801181623708434605469753450688805034079820825255411002566419263746607242544911496091003418652332198686761819389439069822152239113012246848160007354086039779504022504274433591460991780862526344505998417226248602574623582640540863346041203253528309352881860077550649728463668755933123096472527910253827274499165392674210445004025415757347678417965737062106141795127301352357087646133999691240985897629128078098509933306314213059136757153681584435596402888418416894149527102624616638941541789084595661668906468869129469821957339875210503566620346370014711346620198014392905616179733345088777035218774529099877030674419508608792905659966698759353003271043071348470942225140615478687167001611152079957296823569104848130714407305234913289529587111400129410220222389239701550652857814905391907669299962144345848684317931335412526543414986196107351745321058307056399018562050042650475752287124541055942399786995092621010805788793710889065045453215193157957142475798371212426630788852215490548009938717634242687020128214485863690105844414044813845970083287019727784679925548087689951866843090216053502911018892577065625760206195278108114643838472112578068150136921987714966685965995429932657233994341567518144614339557466159887074470043208368005512722353143397264915002775086789960882021208109178870178714627982261668537969990962392942700969167946844377502644334119995167998311441789542382057253891897670851513830601846312490539529260971210867632375401068145318966045388843774561094200656200689686850226353046374484256060126512102764116293314785571319545346124017304605586425816417165958432396461970766487119109980848153203517447728403677515936117235457050253312661334015353222073252480947563696947563354075240592743509571644944526613335210206243196582342024001854136319856922341880105985426361309607698245652299920340110266396079983638534469360529472615423388769728259283567526343266776965247105499952504379774613042765327728037341392520566368267911463316491123165420223937003157371916040979122170014428682145448458183575093412837237816880597242814880803652342001337520771316388809397049350486500863473234098023210095845743719038152702411229338374120768141719736205218332074724807664582338306477021035556482227043717840798811087418893039327414029666882651389453335823335037967651868397465988179685627072402643050531633565179502163193858215177196287494931539354731958867712737273734336246703997041486759215649283673773305891050903953179926400561479852512824622554208142258947401227381790095453717546198993439224425482654201455877426530194764049229568025535684463930514051968688491976781539006432450475726080486887477556581102815615244160418655604142104300036332647236891817594617642411973158920590441465087672096623308948263815766452100518191759469242644753058309642880590512589361520528352634688138207272796707387485795842306728439066623746499088649413558922842727578252888236352855139938114427558411646203046604274180072514861855263295580723066934676453978297478931013906396760539965659726669488144490300582018666211420670398445647804721765235489151061426121906142533638353545407294691448828068356733839297378363856707777046116576948966033963382771447805398649683189562046949555993479300765635142051805917116206329620058611265732942429059806000032883961776263918008443047931721975632138017776820254116309560739399746779807708235616169635296250551929503176337157647562884597690992233964618758927324204719379802496216545094082349212952640523215210766995455266005793518686174551634874371919335694680342435836299260459989214026170618747666198526995222313602765456761226485935463254668260330343920369485251624116012556217469616794831540941723568378727645346834823819572928180879609753911993942002485621664197727093022515399458817883574064751333565904082593009691212794523007505060938197582195295619004281824228269299982577106841546670296860670552518942228034551360285404418340449559132664076379758555089923557092003961118210386923444935486704341014344704757851723092737431746170539046659395843686178262751740408279298278127781517974874855922727854919677566516222518806985225267071830404526343252147334973514461632801365524424394600471991398253834597643295334038968365687615171191502409756031496683635288685434693105723834372124343797842878718602758352015407432151498460246637930129928813618924165957414510986373511253035553257053085803767114770152362137421731077968829239505159835804605115185893649743575992417622017317926050768696413972233502458656512272959150646619542269718618897442230089809371329536773560326729402604395065317750828615190144124601491120841111439461069174051911388583797930500026413719464668317091386275230420955369375043913251188219514480474786021504764422035604016950926752540636831808994543126544888832410289582605508975274376647968106960973167187012042403727006249756201492390900880396562194121332977665746095178070561675788240441342813693280121083452843049630017829842794429185201925560452313921757471111271993653286581823157305415586449282952385784602349675089947785314318853586585371906632015024575500662975696607681469864618149007957731418404052712812049633820523096622383108174617413841072271357320134572473132515892686393075457109005896955507755195380052477307494885411905720565391224046570862186652161529757176508648835157693432562923658448240138178796335290521047213618372349257384982709346204397274127837623751861358952187759187892944921702084013186657865293169011376912113147932513322546449128626645852826278903052593228056925532262782764102244071957195496555920462573564683179581624793727781977499081723724296827326646852378265961927210370484541423811313483838766742367727940094364335447411241351065977262419999843120399000943872162861574235744546731190108429610892779056669163551235435617855235629631555483946227691889774403022461858964334843176769849391372423208706586268306648865301031920055043148805298080509532590000015085158910571892287817424471199123829014839743976627051851103649985123031336562997164547217219277116566884777014883222308884276867260274173432361353411122127156236664120617273942851600976219361644661139857781053291774376593642118866279170058769970114401312410432027024537620119308986378171217493954678074385315084986674967046493599598205998586194283624171738697643352238141676306942219479492294012057035828553344938670535487770169374150831043980024925572321730941142148964626244883805839701284097343814315909893472144730427713237394463790540751987606326219852583667469910222392351400913278191004890083379497965470387071444937169768597985889086526081411353897134308280975166476924690212358555223790825371557082751402895164636520914405519413547375414195587183273995019317242169123455503120785654181690515017741420152349907572729783197376061677444692449930639709270966967882933615451059584242651297759932367647916795540038719579933917350120629694130418744744308601735507369501113990038119135323222475177893902679592324311136115091687249013294721155068924906555919149251900295672781303811399283456957238107158981044975738432126141137668922710058679159415078631429729758483949552201230972639502201907430344705234521827888821469641581586576771012883625277657674763796142567354377901482621610457890759550691226724520806793598932133701624690305507913528184079054754105235089774655859168832444227328387400027159371536049077915475088074651883500254915508090348752973309319241490558334790546182322989588259278894040967655400450003794399782019697795929087889656516796267822035936570570820210577236426622428934410699678640667917540890820590072960190991497336218910185010180370014657071812464182339673659970041715665269745505392128531771437572130111389042701593635038414134864514699720193909780620082349627792241130109515700399026306841358041387608176589077134436971005010991147346513570832502872438950531866246928619234844186303620792180495703762951870908313719917268687091039433173196939653357302252542394881936798842989381188377912956239769705812216569480492858326134667741120476688908111290555780896854535677372875914824211895395065173076720607513349361819698068903149607789974362391724427972913515892832785213761962943469353671911097682148773999090788832499214538273602300818068280676830062349266171170080757768399022800628602997031775413203415477960320865284600708566232768861657664928621871752398577948177831652283035117684067565392289189110602622810485344911938543557745455744759457518853285745817255741192579743147971349237725323138049269175166384971132849778341573614761252356516685981433179387294202313748926959406946592497005044655226153900972981593765709448203036123171511911857266819526576346491688779452930382121074851711632813534821118559006481616737348118750515891666105552235315680752235102559134116216255081670336286921195059342482334407654520016091804956086303323892973386331583914840379219839863656764336476243440225569251070407435966482410284308830234615482294642763910014525599751511015784294112336372311133864078217437570936797174820849378446947645179940055740012603350270763794011638596082653550538096255976879521700986739578195172363074570552721721131942590068225506088712534226164580423050949966348605058267254516515801595265095201274122476296269933805318192483473965770044115369036167433270438116206098552977885428983364288029492705002087608383871566345921662823237035121722225127143596089959083452653872470707024002866293055049693778522187484351697201212560921976662174882605531709090993737353661174883711700404867186628073827192734243227866554655359947402936171313322525751124810089866175182969389001909418499617579594243417338001812878109291821691782118114329217174866548881634514344401790089190208507723435047655540954862859564671209625738294752796966695727945594439881705677598924900365828798012051918387550225441413249187158449994248463737880384699675083957862867743324156624604847124932426291456867191798842400428731273876375623612057559444315142366388733078657788464595405236816671779746909842673402327801058619846870351439157010162730029235661529522843244173953075473217823715464447877082687848232861117581300620451710779025639004883252991109209777945447463414416965723865589873059287086220427544546611494006578085818123003919444974697381186400211057745207870924493304432310277498247949083016881229176047586853235432293099254002546806611410943107067559678031218371828842045860814882445081215615580514810833511108658749021278113592810772765122947348749403940865519698976224890151059438721358696334234511648017411276150944896335042253911422813677073496619497587045580906458059350316247946640301841623710546483010973400147251174105563475101285392618893607683630566991673474712412257503370478194813359073283248123560103448380113537148324403532298856344530552092759035601508686542939763779309626836834841704667644135848692381252153981439977195101205797740935068571333182771509016662098740997415694137795528217299206835245941958989903524967506645197014115179221245666122090112277948248415135792288033630773103687241048363379631054407568750706798817354108708985729883044075544107737302860903294202736810972018454868332480725938864025903222704563573050337749177410521720118310221920543473955023909193718666142722791614203398950533175777484814942728747926409912413398005651543109851889142888296630285883711939892802917049368036216073224524493316835538565983858353425697525701455592695068926739838760752256427681085192865928138291946870015791515451489407985117524559581625664487268192526266918507820239125813295729384146198449473987662230664421661282304642116641187959306985385634997177701582372854436658596169681870882972579497400016260120145127533651001395676623402602732277558318819225675039630370977564464045417849277494935735584655404527165074680495494728178902245872029766842287068738137448465376211822681659347483816907404239346616083771458704409200981186127242710590097312148380268600933817999763612057728137431779689306792400022640519929257533939065243213926829455613592929252824412738548316297221611372944218966365104092948136993258440028379316700237206635690641530967827804506358434567583690089573628404610146123745486083485710116454257973944711768713072124442915383702559583811636462444561846070423559825898820981519210601699731592751096459748292017075456496339023257764053618522437282969682428459353542638105630043366652726099806681090080234365005855646092944362494338568156021188999567351505163853511022783093519403535256140408314932411804960054865051331188494441674570272121469074478629142945061975628515706917020849632469773203553988108967023819389721852990962947079506459214782186575489138694328024560552637299137928831500439014698979020188103656324901410209465191818573999313011938059558869736069112439875633546374641913391471726622729578168123791124473878295945744510640357760531159858456816809561751626237994818882214286580997119555413630449188895858943251122809676730639025058782058995039994396954289899540885506731940521695796164322156476345364459292544740453376772311411807381385283308843107743031735505606981362657910519283467464511179182588999621744962551531212372085569681676098585344215795600375497695332815562773871992571574080726111378365129010605579981765645137770739133886064726601576881356425295635994279979967074525319833239235886973586018974688540743338207380950070438659277710555007987461911330822925088311030672156086837948500826740129019384436187804197283517287853247546400603785521194623465821289013293266793105399980521502319499989720670508946146099529094772568121025402395766109996204112318720442457965924168390428872951874871203892104331520056966235282134983906061063861270159216062583065791053243004417801896551272034625807434586591450118735511481764794469015751630258566742204265970636911257326866347713488268045621240001626031361515241810234962218840597465212259710136552503191802248444045893865843792109454414059318320384615929632166467851796687829575838439313669041088201377863626251968208192502723211685508316672484187946841477446973313014565575163059097088652324807233357371228451270595953658740077499438352884976510798159667205341075343768858693120123605899582499093805720452275463136660889487399754343900187960672497424705874870630449062534300071787705807656788095244336796991802029043196955446896463627886291333731205243101266198601932198576105891473509976759938979319800345571045852867033242407319035169197183074762040832589649491351111506068035613348647319466382916543484968642508253060959528206428212047529299943192417944947819243913502031604415108603871129505294747095656345216189988518945922470502876068981645729324680552250757437492157359177705584036185492093882268551914055420970695229774722317931227389922994298268695433489964036406360239941230851886764160145218956070206520680373562502038492426030596151238192831724838160953408347631551660185284986586136536223219037378551396831104611938541215801750949717457578043116970837334901829020280157443737710129327256741445603821673766413622579097118512393566995486045212401615438938683403836209466284852041305747299375029324310683060392531649248227582511882458301541806541507033688159904890295703837910096812766123739538959984796875152463602059301123148322053246723155770751557421926145266609154916202872904988001686291496706080624238365773551038601427067377393299273542736638061665593812383764488836823082465771800460854153727630539906929412901190761576680053419576009627911093896937191017982686479921483290108151453297997477506241132673188440353410009137853201790543813575699297127911912778797693210551717278720605701610325944206824471615489222348654057663829066952941601461269553056960304088277281498299051457903607051226503978929698486271003855016757721232893713758230705726549201687076848862756066586674862562670888743267512936793009022630638254835672073303365250674000436407388990676217453324217012780546657124227373998157530518236279805410286410759883097896911900024288626753530360141582067200540924721596569560843341823470482511815942854752205035161545515761561991703135223374664243906519981826123216940866514020474081438521497570605379054254937573733980685285546545068577481989197395754895011605133708457234701907629511531619731206747026138787840350427854577422648236106424270909094103447488678547549243177240870221579160946162861928566985464994804765295184892971750606600276039660716069303921922954631139864093479078968179862083480985352201201532146213482911567487681471499454060112529924344948619702116006360750041132317171915033265921848589364987342026490326264509666897069662488860608844324412605384003002185311894109334606254156079932440958716695017436164177129613836547517630668992761348673895451924678445151642883726651306505868959844671339135430398369204119938604828740179392662573511571806720662182552069911705803924616509166693839854780494515627057126873540658694045474979739648207111307614460175671346210152577351432961779974211500598947229820819538429806183732662092563973886017256907656120545263498033747698619487444919157358448777242026778878265652228976163859450953937160477654398504219344552311544256009621977133390782319638299943328934771836935061167697502332188541660754990064963183422620875385633051881562820741983457932944669825006013762664870555912731897392772896849770393368450255819782764968107136459994489620771503709506896730152832031176890885705241531696038902046036421429360882072006146651846707382505405034711346842433559007484327667043818928945372601041106442541088850549274616656704365858587853844002881890260402076525189153330353425574044243063433280778807015994460793351253491753473254029556829764572990200315012491457516627387384710430774703012419115422102570755665690006054429959980937956786237057763373275078464377777639069903422311280653567783561645134581573756971886306368505215972865802217616010307690480558299004043964473849109213450553876283561087219070822825891787671977891709737561138719479313329809723805347195211066773629931606735659962330844304961388702488594866055547391031126919013334730937520844191675959421676010759134718508588981637499509887771611168270591770867960591336254274902910024268188634706979077246324903589852181983682574940810045600392837375443130253553328081519438991259029568914585123032303289222025406656758445565577300456518684993880710753878596573739056138053898711388898253728386432654921881135750999023141465892295522004044967588914182603637694051959176526187392100040312073721369112110434469284149984298534627828384215840122866025160504436568307181493766687451060667248482629977581493964396747379299098402342041246319297390617317209841757821596172516051897614785936817957272198844586293894757960606607476995929809495937847696718285307129440836672763906272747447534002865678726437878408898487074606406544852920138329537942634450169632418755876662663024181838927030815962787346222913193492946586939543500711739293852165945744890313488601534294889110113603148775661042781553416272605839395453055124138521042697101476973447113807114842040127433912611349484349301383459539496670437861667952000453828963892101971196290906013198534982462003861819836686571166464071595903993548118164779093542584884030871831508697603211239112317907473103742957253698888077319592782195043825602283804781501873549367178791504428819956102109228858551910195493672941188795640413537364741811274721749489357200600998182237456576159151048477966295596885248027968632981279167978637824494369223742256938509710907652859410771860513320201406811289293519228749918029607094567420171658899766025437375161482474842063648101375355191436650478930394004235881383779049994083880739157280894198752272042479545775726800058730988584075044990692282720669020631045451530558134575547940229247432229222564804555933578754422548094953226491683975439767734502600143810057405145635263051696896248113421484739489768640711476174118528962845491680319504595728036975747030882567172945080425895531653323112003978900907198102690298784356400174832771790358491228898376627522225303028901860208306136532324409098062197436019570794561519651968707844277416653956178098376941336072174567500684630015369289845293689084054471775524886327451159477027788326463985592756035203809077051895206805434003546979532632331060076861881879933452378207036338751349308168962809454588860550415226816731564093309878855588735157197509987290222671750807990652642198908909666684221081543056914114256352254872020782553794124403855197801144693787907668306941970516492308235852270931234382834516942330346899638861746285368790994391693986590526563010373676122383254368840560643343098889365552849515454328491491077596554021516404169329363667706844044954888043469886934588142368477385145579656020126335592716892352786442284141845480250967248931501182266597793978564287812840882546193665139224528813457330881559961997221712551471856499276582592270636611760881903825032833724174552344284487083024979840203927021568471360066124324480530798924548674855015834090470189031724665996675040383535524793456740984892184998383526160463012905617836862788672897551206078626395464078929261792092185245541515741269385808353606598335008968652146207302954885586100937574750423580508103762792767735083059318417218742784253988332180770977747418700975079608505217478977216309548753781434344346638996304103202533414770760093833878075754399996517609782415051942256236830871613917820111818763408858668594468766500988538168964896243366539619238582011404549879625802113620652443534389671484241783555659663492450441449824819994808811084714461898999861527372663547584243479856239713769451946351183232206285680240484074473482774904128600777249540490081429214948332341936501921986794686177032579728189637488059002463701698306624962773985001011840042976792303247473278984029857284729412221669098048992756820964928375499009285480781619231513042352933635597797610149418293947541690308771419412814663953250923772956177388757031382406460871267393319613706218852106852767854475376172161475497516815481012744607774288414909717394088724163441737482583438810007939437231282416168267964534300786014618198675077091000201638148156421069052869889667064615022229885917637877355468577831066961360637940274074595013168479153655672485452625602270548716809581944367270171453731879858061229553435283870462002785675250096811431954592442644790391890066638272509634708346470550656177547569878878830474674504259754924980944124857235976217509609430995833404212822883647282845738796026480578869798299127124351730491465428238537460907684106226742572831787967296563033175395578945850769454508978156765070262474688540243107313161506960049332483578550334550757066907956793530298429963494293190920548501705981780309740033196404593650828413029717093014765426968787122141905857966129864107504622538302145916315270893987291890062733838014810848046788935841681688042940525878345247202520538639619234343558795485305384470246955165681052464488595169689575269565131437402532763014689184539487758351382345553789357794906754287111491321534858653480760207788642853782794937119539288278549814323184567896184765258051349672490326846204551433712637918001937361852862944419880209887642101400600177437036675851676898326002265716296398019126191201217495324151638137112493844767071619846970283199512291358574005092717722868508670431410722945735017816890784925879031961019667231294637868094216997043756445189406282404820237395860547316218672238065610226196736451314479623857049444459410793806132769376776486754482786753864619380085860161916219293445196910252861251098311687326051795503722823781530215315093137621018331503777832725924865128052641772667830507945630022900036853126196141830292229670877480136766151421423701301909395469670768162139985672677090924985701531949954327602303145846069801170334256957252890474283513089156868606719584694856252044342490164060727020562783938556112568706891255600024117330221523840497839626598120345459984591789677461553091153656667564460745213977950227597011635859287109692407144670743957405727287464868654419319634774154721105538054775341552257964543258369932632222646171316290764062712848054139007852096473458597677361487160117267599633423967163688830320033797961591749253459714572743954285781696343252795170680674893707032606665246870455156446642816888815937776969310715709043240519440944567484822807057453589568188259822337801155170888907675486102572160522260896148335087154115564473564784505673960333642738582226945500863041225569232669075626305479657303869122863416033001198073953097191945474490588534537035540588577514250852995590334532782914065024047235526494209787940518038026346176230783079874384372010374224305973319207213343326225508590132693628993596570795814966944185876941216523824330781492413274315328045709859696872908043082458964597827801464595599999420168596430632898139192397786733916106692338836862884828053678669904258675926700188039121135509361040626470922356598483894294886932118465260783177887402827498387013500974934931998257117163217154435612558980775531365030212927081139010823437640718686645314152136381219141942028617580813743567483207634351236830376444803103726030824683218807537329148026727547595736662307114163274216381485193320644772601383851562258458184823835595556402059672399776896807548745310176770350998839099274361199396286333411161756640179279949399131630377955630488122931306387420500679778962635789581847932921162710926056821168243471547335575309092904481761019088064459182885673066566429507958544907312581186989521557330488210135504687643008228670385798934192755561589914427014860362549224204906897964568929459657723747867075884942234094305394867734218575305607154917018742245460696686666626742091273711951964800230364928323685494588342887029465611372794984583109082944007743975962782125603748250312519481611076248958913606943666056716294672130538633512810662123743956982752878978597967781098074432961094424557729902028779906798098980017840003862591015478662929672770484413429804335968271142797430278433359543171827687131390303716097728489266351236310279153136201721579453278859140294098107347609314969205385646059651607369859023389476595624156446812066182463779048486315057090899659369121476752269868816734372199722932327053737289824821260404606553143781210343186537855459403260960294283918383451172058226368412781112413897993694548921424564551934800777751262761978728103068177086772833261783415232660660603393315737867177663090393299759617933527612431809155148989736979854065988765662280725911482671163527859862632054368237408526724810687723603002385029414481046532523631330449253391469745110255732234665060201765268425851861489493050640578028577971895520929550248461613752540749099938517202323719070086982187550912061514065399439997270825359757350966622231604852978248174300351987223880668540203825989848575828729931064369035697503683333182362901621060530849022102599072601061264232346497532245274797818452631113397143751058260226164440871589759831780393571398105857343866378614073568926058137316028817792901287760607971969546788875848757243028214621299430558480839207788914706057000609888576579415037137451388201132771719173280102381802811344536166811218944003744570646913565593397743603070233107182943024058009375225790111223123969554835635855735494734479186399975300037120263354490787871860419811659272908886002957795896326864576413552013220300351106670161609100631133684042062052251613714228424651448224449671301635742711349435878844739640002680729892374654701925060623826786922267173153947555485560472911777827590571709426841418742466237400297352921886494515058293289514467552871197317170243907117336550949829273826909950598615719849009945680058464008004951268863522055743745314753606232706665781227510532725525925366691033197589219417320508391644716143983765089922606605021592253735340162592837539201481173241748525538669523772730209818040004318694013687897161560696581141025740381810948570913745411344072649754245743585219535333564040081272884282196139627770231188296699419348272635280479635645440949407733184757391364925674796329877940106087618919474553325826364953811901597053254106373033134397361551799010996502518708693473468208677039395164447297155053969816510004791876616474029740651836617452239363363629145058222246706560368784842258628465509509023048572148523487664862250860952302444004857195596803509341594350056514753809472515318413678346357556399517662257060243999601562708644951674162265461912020774179790524569175113732730097086900160399567084082607860897575157695306114819766047600186724914998393012790417716729716453397670782264377223748582203666938722332824534846809368748497000268903457297631650917350292340399202535817154077317982531842361771043296449820953764646132339586931886263431607497596014232549595259634041990969331291295257864789284541590000868037419718808865616158138053375478920686918661707036849155304091314095740308034361324795196844847506649732949180175554351447805144154360722954591158864542401468392928237783158667283511655670175221621773605487980470369840068762674380153944541533010192041014881990250192753722019808009165681192559650453037982688716909710909598424935063032561026916091656322479467849791619267668397650907930246782460788793307276393510098977388261816772739118381294695115858564919138381880835686161796246558956486514953288400855713976956983603043600561419108544598084402018566936897415802590171064090699737440304993043667707795552296235578796203116629322516121500833954696995853335384176198072227482828414124056523354724996071370807391764304760304346368690509901179433617148519077102065071256147498186597246955526859314849395633234201618469172492834878236519990221971645248217259354541338561602066897602428990389520184596226276417317036378748039507648136209055703930331186452853416388344456395990661824139825168676849227942128411594519894924316896493554487765088230042350507587814476007570705406611419951117442776958282473465511233770997438032403408129606965098215332091959311168498671338689719125824951606952978050564639155003937539148038379374714326517651536970362562925137435967574104536985773133403777051507528696249967581309828122768502720816909031356806475340863751058729600615770177592343275462210998813988661148043706377197402660218974716877761508532226769598591054302204359936982549808653364281630096498812880399995847775868769824666873118108402745206446821188047256880171393787138569805475636226434280246727782807878734892190803067577746975653275393092452992376470891453056077616348673515971865505185197430434344268360390910353497766635494133818917972781149255651398253829370173389570625653815792217799361227766357136300329769650292684594930082645347254447471638673541054381319863918474509952130132147837683928403619552241800134720481093858360377253840987294700344401192943254957785366355500623959127167639500287974611126077748947164528583494087583055829011358855355845921339379489589186188643025887112758887912864197477102318957228425635173724226956981010184833900530567552449993079193136351262261098122263833509329594146802257506111496620916502169237635290042863259007905338993132208713637739684146740116279034938448575330153923169153416961317423358498967562886561452665578686789783627796650880659060417100500163594388580696683176742066110938119347480115597902484578979325615056922490033153273347385576145656049775651471168461198581961918850533698787073649641903388982419194742195686005959348235505455150957263930623557478419015029822189117449574480697043907528900525271338703677884668252118679309138238452860725442830365266895948900066286307551872792330897547195752713487552819708127075139854243089730664967460604769684659704751538184178858333222607465436526560907187161793169570683341317352570404884678166239710476390266853107576130947584565958962889057260965597976955972713510963349785896786597172819098226734793689068082117464526734710415472966147123382924904286875833376674573892364954464983522946623369721718183714188303873822939405608201687356902999379012812033097777981172590815349188281231112378277261400271344345783867440325320546279866630330491983653962781400380294341959720657745384106400013189526141278789982502062630522489245103646148285734740340784731541433056912585060817446591543831016516498049235809871426541031085852843438876477411750479598593938243836871309889276665690587661138394124186675310972775179816139335817647340646003239351130536961214658634301103447146429583279978389776981501337691053791945668336443737987867524727761564015729963218010494634236395687729845963161938890653206775030799686020585559701506350436009884682494525536128416262906030062554227825573115013236435562045649335634337016236114271326960449552660051327160814178277918309453848115540658861367441467021915333522108057321689068654316017668061175358368547881822542647364923066961855523876557302993733537481364652108783699561536891637628915447968022180006918660808288712716783022397855264121701649837157939696064753221946016740447734074839157316220508023089256140686402336420670786710449201535796176820124411144334723038047251522414303288223081754259377159791287271030301912820347038244098795908881944884466351189917448161064827841586008427912496742074220651577499262642786983194301800005645235194724282018087316755266738071331268813166326045473785457859992255445262220105551696221624314729290455431630489507327467381621182128153402273061201076088980485343374295063131365145326170932519516182468576867389985485002203293247365016897111501036366096658291241101260284340156729838157876880763688564434888051474189051028385551835349543563294012279904898559124495308009460975773701210448450522344656027590356542102812934735458125876003444156570749028096100237473671217835634740898819397577597505047570155089656821693318765851504951186827822395569924070355059722926071177641982986050273744928283682074059037522901012250129644461764350641079461059363347649681286163893561126103796387626123534596450684494591095229618666466262243614390591782401399945525771505048638063922090427134285811285507912186192857113799320519604651320966073763496364802891866526305514484385112866301336560208532208269036983827432854818514664706439512092586065674376910392176741181718003373387124161736089737507256667397137524254406804302519465293869678751691035880254793859254971273185662603911461534602330416459787196308119603296582193267178024916838135190553604760812391993388194856757963391435765764952078356191430989772369632569514982962320113459453413397368532630248914037411025294184554193230233962736042714421284422258664831237073600135489427343269173909176619516398723977982308728644803057022801024617726414002609616525319507495154437946848861927141500772580211397957149770358104852141669813403137040848295867679284819708950198021761150753692760568408592884550684346186907148683390071761179287334121233259966534272225822045350206546370901429083763083153028176784282552538671600621309914723879059145857372190998446717091355443823823069114217691703285153925763498313945867670117265773828788997715334071096105745999225756497247655466794794364778312145180512530852858340098356573640648372943198372086457369006618966940359395326895571449212302938150803619958726115450505537822260532310944411166476953696952557887015035741651744502090116627733858216044421176428618149562895091979007244753822054065976115435672716000088376108931709231441158551197672679412821200103029775596995365243179924632635429987430722429338614633545523633660488495732563974195425452019035540163603532594843340963432322589316690014493722107515614171730988669746203187282421801275847065658546424391443965521086429540683087277904594804478453914136610917717463364996219755606034690589712020959413986740056370491623900880222882989791369069828644866121524205266875713906538587903243778814772396169607073128766420886382089111606056625355869393673270604386750941056072816334983613984044003406211302768457096802559822856891020608312194862366376303742030718959086317677244940322136231516709199284371057879694425413659760919042367697077003325607364095887765466395023870289762175197863173751391034561777699674214445536698006166683143556494222137636685973888852721468051334123177851835088831567258900703298490178825881250889287845903721420326925847616766473293155917525424501148137160483881881803774979723373155048378435695650859241537302231998690464898633486809698181554598250434017689194650751092114673127966725307328205760695460193655726210723865878993164451636521588780383332083309572703192558881867441636452256761313897293952775974149549390085128264773476637730945281424292199365962787932000738798878280255555747517521707982560690141261794569779707964306979860602665196466374373881489983463666647788573815637899130066115532452676916238734943259839713949806246726532013576046274742913179958037377744140181681912703215555638022878222961837586547091685581183757420213221950368457670828413507924039526004249653294842126737424538053223277494068002335635199871422911790363265340235094777379815037016529816736182110394037193013369904197867184938394140506092485931721547016587530552392086140277184272280417192495843389517394474827487525238023861062751562753938903152640049324754815050356433583764188542219767569702990274794606321641852130531935354690301823999718718972892543054276834455287151257461731998234711637778371883638228058861252340414319476926961468616724181756052214830962377818352545396169735069143641876522843675986990755062288990030645851601080575575947011433784815304650428186721037259225717160043360622582293033159135589936572858003339299151205544757557419889336448729345587590867694766298148727085335871722822330896203163645556088174204216543846389909069278172295753486088039594626919823515758056637830604703659415238263105005332288304707072333793383436557976475605758016645874891222847148269012270944140035963018454897155871086583370101441806166838940725003363695526987762340192827873017411031975779125864912618273290962616678282619403265426763101551107996375733510361726131489765559747022544059102874913401835955883438556892432466542900148883123010346670643227647472779703266257477939990278998866610602306705873453693974316791532375194090555430711181856593475789367378211362351665142242608561437198601816219650465299229534277167170115162942917750006060414164749356463819552671029828098633932361225044085050499436858861750418966212260632702594768342071744776927685716349409295452831987452788706658721525048415481125126652827286018424825171407309478951561357379596826360427367751941761830227553921835941422385426283383954400302482243722089344050395050523148360652205738285300648328869041054753536134429701520534294633258431631823612344358589897340560930140386549399061629940115170427881359348797594831686000256469746364356326273035852760754101919054170300641558586443626476747753667343507194503541267935868262181397993302465423340152346595023927803925134480530160376004146828109772915095325751748688005134374639647784620357340791082511661034646260585763731660371358248654092256424614221418935005223320102275616205956091444801759593502960432745334246265909496480045515231461122232110733491142489762144386440535816601631425022511422060906205835385288845115212741218050966595406994283237273109746885255877388887351372924275762308905016204239723503914821757568099669001567165780217342006135119328295153811060485626186625751114403484877075813483242686762262842953107475959031733870204381887583274848665449539173760548658877012727179218779480655279602746396536178231116553950857008656854878873003685827220850068712097310371161815804400138637423001578010482676655180443270286851492554594174114585070153564450699448749577661122647094364247801268542114551179491514585778648896289915381669247129612883368794425666930294775818876196453039366422021658129733081031857864039537599015956226072078456239931433724804160523364217369796429478844674572901995113849338906773824370391477570622075311597044053231367102619554537070708155373638028158289533868708705447102116955575339590838587799129418488491810176574189321609677757160980839464561547910034231454282365476075216925114911204248891752920832441407100616518420108281716046839903393266382914544918059225616096048720210744988656696464327592814575054370015574116785919258335277094047820460864367679461634445202228540611634923036858133015957781782417128658249613272932964802782117950750908370464188512631898884596592452603659074527176352632638678790558393806779000358488740917539484796010355454488172255584101704623867914464283716723384108864536819651265137429342710262354270435695367401265063556033485590690251437363465513867079619475904951473230856693865391469420329113323238576394767095491663003171312363106258380598068285272095065579802125045309476750784491359259826774881035004694669348593039207841571047553604818252481232510232646600761481673338849112606564846968629828896700268793040884813452857192288189426246622536944808758658167364999000001829524864361725903683918761293770606244670014538106800082685114439898621910888767570867685281086792095595435623382152253874115464486466720851846703701442712899863344180548568965971510624788530104583318584934383450187928425436534322286073380612268486531925479018394785876460217232911261812119846163851149304214398369518185765748147823884824799157399590802091290666205792740577810845446050715099578388666881142589839787050218489387336707788110257069074983743949693031578184652161972446613166808327173925526138404767451213778376926589798461747382687094958007767202327216955603618437141709083019524989199556575156966831895986353287249036994028740069544750587540534443371717871959618859250547658421932787782740033968378233813744604487834474477124924386835443077066959796886677016040798425090226643993106075439715812692983266506950755315712551006531695767136638390506067783819499260945886623260267461815906416493138530204627159436468406940301145935715858873521528924054396153696293521811011362650706981345580321875907083079021247830693426176981809646247195461008437533891176516728092921059856434779208310975384776687208936492659527821985986783580832589410832053537735404259046639711413570006501140404728921806912132987119261510604267538087394707911908915009587054995138871707093259606437274442153808252590819227254631666276128971000126874865369187483024856485243506959883548181675257788450557659761769264756035702379509700056099248162041308961329508952897741728613909868223889027054922711846621646498457197567669794270695270841393967458557955943368831797789457180426471129094513308907447958606738529014771369423906901479912426592787694119907720912464627974253277959684290906269796029156001183104540252639708037140051787241957255856597925606624684708845788726574111196073901318885906853247359346888969399739847886476743716669131544341530567086293770190224977454190737620300494714683544239308594859342658150621975797609845751896950324670007175059216716521878695884495161827026509135733248313242770007276650861851652340395780438861439654895891701552431999716198188709880907918646965520232573553200914568103070318029939686027523695602830864585692025723668854724301389970450310944709714694478701919518627535125753187020559247572787623963976010963679692103788250906368058794608270176980985533953789995215386726123266442025297048938266137306460995267637099063139126575248485136832529597161725974208472704792924647686624455808042583211308461121425274801134356455311731252732280788102411005456147180968529963420341783369850622913652784000947834684272050882780912691347438982531310315632432765138004557809654781822516884812304546870248865527047888305797906727729950112102412942416488806136368490499744095505293819327558529833032235974040397406559595301529650954726356652206910053349561459303600062283611560328542819457747530412170236054558191747353541365348264146107373483681634583105190378414024267251985347867835255142975802217260413575305211066397204538504910762827267138774779493364057007581822139024980953028908046002044093148531385779581333028464148669633788189213371947590627402796761316227833990522390355705754843554075071332051629243516171078849249040576009643139884113317597894189869391979244477578195055038525186206025721531231318620276455383203848012234066567257327831411953461149720562679009800701395202258698157593583854575528288051972034455534666987733523571030061720961534948497547273292863427736588526631282095455332057496934504796051020436508511340128301186179507613438641319443144669322067179133692774227984766167808936161332675080372998590386639260308510666738746533068810186642107370019802867733720092629064905792164409172332237619770953624691832085802355547463208146906631887194419298544271453805928188794684111088645666653205009684493667349665732243285936448151382929813842725976645431096403190167721529118709780614695820409256077135606714976054597859812522872161723945155618658669765575866426823647439247881535375417667230090100848762837561647404070953949933223856248792279167443124078940522596429215562091274291290981116097859254395342669333697619079912037743612250152624967540399153048075639480149336952305148612853777840462825292198701690428610613496411873583616686296322404063555516699969435604217765853950262312724125408858901459304097183683495665756140240130087873999325231533682972231906687464677885929332449427325076684164594660640973869849912318515461818876627563806785143321965853402266576985197793349676689732966177763484316384442882413017356935545943266232728041835124836731417847366180511270971099276425670029548128383668707880402106994828871753085824779583400535486801875590024763304208488792329578019086379654591793347448626887468697645113446531642183112703748730215365881036576909754082741130349475399752870417887289027480833280800867502365756571266268027278232010535725438107812340927776773198195033208970576858793704187379371969290787520979464441621082556094880118638241988757838697951010640938684818814956836360718349428063506587458587017625200547967092671170304128214030290393284647508989711757391177282784766792544564652044549432389460660815183774790279122621948018520025465351497875707910957215065567190347527332615473503009514507283462420410155574086009012246591631880715988480840734201998099052891952358631689065786963590311347702046256365039403434299200065427073490784996618612974318983995601290922606334842009508068642486958126941752594215500340312524226492867597180196882773174778866915728601087718733091618018643614643267519207797952112048129230577161684959175300376880569545228283962589761009687846197373174011565368849630625721522188563862394437441685257412736377399516415680881758353953014142921749295724788193095291113212292358637054074756753204892234238050497632900509957934794232694694408863432880989130133601249522666747637692167763294981914870172912700105487226694886570841281128912606028096363154138417693532390603699394181873466949986015380324042993352618448776235898599696305391638708238756093575183861869204154129875765198340204936825215130703957647941823964545260369240923633577327968692527298014838512557263136963488010602580212558519580933447222573573284917705167716976765105923132875761153342359439819470523891763877467046612995243113331305120024188667824478013298260857977827290288021497515463312505177867394482714873421837038253838893398692423120685709039763981596630262341465548718970706476717482952425282196532945086076149331867805227046309584843686828488507230476464260218889077139247996518968365791343975350248772066600544158466569687198422519081970903687542299137931646614741973553715546764791426716615699631118584656148023989187705065102496708049565142459982072307553371750659633740909280718716393060172705097571101420686104993018923732004126041254146420472648491489631089762081399524178338484504234436651198801369243772606551323415546701162562572422058989473481088370968939084819830049572363703365763114109331661289871070421575298727249962357010568803124441133282584948436298518878296523952896013062279291186183670315893283939634671031730276469477971337346856482889520232488179046460280895688729470728285390507220881102629417632208126715856197200329394339937860113896681298875564509510664198972911393956874446182224524607760062554055751420949243162701937618639675979043517214766530919852992670763156225420161204118629615460373121847545832858524290308366411282312866204880073243477099425709828405615347032032358133090661146013169578855516789585877446590302488067560961325672596967419391891992155555646498028645335006833243471430877302201963908713299625838594057302934186387876373922079972698612258197178724682153493585016401586479393744835245209870413674409504535840124514165259747373361099140143041878134566103394998400018010184070063847777948996906418787405302068908427584161059311656602561618504194420075034831889388453503500897084982973737908956888894946973762145056695253478869523379221183269043154704293625487660462100504202717520633420582776810394792094939070860321220211566789781045285308839542692426184626538955101041539237612382975200650929936054520297568763655862196696745534252269847756519460912901920306243563289383538351350471799708956823744563298774293701371381831501748156100514883217497721103465372823446355681042115741064510888579772542891752005184248657423899447486528055428494202468456319387305498238086285516915930320044134890236091809484762382486218959123679723492000381586154724321033989399727265369749631649423244655240000706791270986299747057559359743880935858168458849838039044952948145631080674989365955503234037346793504886950078676482719080486882688076592045399319183056311165989050296981515119278113754333563194137508101993227212861661770912509321437418219873776809767334900312232522980603772611789296377058554427134815854588030109036778932103877454576652831090585130888460866427843275937658976958683313450924023131290234812885427308155342963673986555443041204329107594304974214712054715201836485259321210601702769541477072199510296317222085210980069571079629293683099070661493009783834154241900978692542014961970792973766957209292899649734605785493685028504018939557850414447877995494798811858968015191542314027362844193980351828176671658161778848426805603953766239393144605805616560466573677246972625683710758653084658454306209531080674652098286052990934035476334237589187786063032577538172227908315139813481080081606654016588208856465489722623972300001680852438974827363728868416581587978175959823619786070519783094105155803803193117315934589374112845974897886502140446161757901521123110032908438147509662596214060503131981089804310200266149565053890337733265386450545065353775377720451038428736670581698241438064670197470905151623231622105350080690184651683117255528728745881293470649817158136736792407144349609504991527469458967181283962459490086839348363934427827883914483335569411999921758812573458211069365510706938668078904095207831260724069365096986641658986641414305763613404499932983313531012166891648703454055168075687610549137467699691184555820507083724723648877513443591245861809063224150384108679475625578393502638269006484946633835663261173426769991995701380891902889148047215973828537306785251342716807959402376847050900462050487974984271232720483462835823465190915879496136561507791408845277124958929105209307486332187437149464448162108860621483918974060014075221567222079295533304091008368265696226221719617780732596125745022301785006156998256961077412851995403693972526941014926715627196653846780373960912066304789794850628346847048566122723132757972331637711818448597563826023378875791167104516853436345982327052353151965673773866564498385177436137542428756825114967453665041534232198524433143661163745169197179690325734298387962446327203173255451896854303317568173088404619294536285763895897220328015675744159744809808072234425997987275783154349631707677633420907980851329735837042158598959417280611717729488357704692270059687015032581033562381830911330508590408431981467791612970272145333215605053592946062640492971728240679875006122730345327233781069164624630153612822378682027050472960711011491773925974898499313485534956402518962438357022081129284270758567922180301614681898549774358274438229201313495904354519495447817970485565414125683935278862303267884392103162987073950808741507205003047277225207356916771164297692628348892247358372455798984037751541358929731796773277597314828428065304273984346478316090224913680942765445509625725298313015838880333799214176241855242968725964988797539186077814265932827062109768993024671857051568060458856264210068202660251983396509151596522561496341847352737479230700213315726859862385324423072314372625123160678617643588168701793120021883252484167688080170884880031831727255565916767135688578789544508940945210202964051738637920009528733949369755197936188417847864526270913928989380950054717222114057338519762519795055889245367195408212388197294703245633603550998443233908633440619488241361322794631480781513849929748483590048983077245882616825870414998054668317606845189034605619696560328375774233966419319038010275508625821724574850656305206459115892106536133749547626694120055361061599021450096877922677199624248543515079952696858036491905618295356777997624212630458772347756617792645848562842470607181673780983777464516784062902900564776073335626934786517467805094234775132149679776588249820574507324144663746440259871158933606766351892479982399236771829987597619353849887682324653207046483587449120708082433426847711815819802984674023453882936219931990336542786264756012078394699406325729921520312257084371960646171673083625120958474989260970178768234352792143731198043466332023077921952817673263820180662478164155615727287853675529164547592366962725119038234192275303279816603761816935733813548065678453235353675392936778259684743696305447596915021864107652615216579585405962183111955054965139863631651223154841022951661445849085789180404332736116330463493417032444164456629518826895825480067160272353911536317757130074383946257510074193967858266929099855945714327950787014848337818393694047655487056784048273323511276668619647701904979459329798821039295898155696402442084494690985091450904267258100535802257072870784064962199879552458238437767484815688679728016494082542102556753184622055850111154023319422646314529260619502395867649766327044085151546148457173927537147606878024462925067829931246738748692295733975830379098730171491516723914359718056272037707636101079625778145516563430468923969758170700465276537662380698661027603788024606807042997320758801490866486504121154090955712050130456696936410817299051461137694760929422137891996191308671458650560542318182942698047388127555022059008210465367652383140940211147231522392526465855875384444540147319802077473954922706546368571688633996554703665762256456471084452996737544909030044239951497977187074407426910395328448288184295145451338389217438260278940978558646484720947158361142554938976914917595997685065668251534760342921759176115219776117760702296730341840112005675426062242979023920123702485933233414340435920683674213293241157250896190371514787340851041890595656534092878780614098206574246417999980439248532699557216359388791486939477301740711189716652075498553503454852390848577266773849737998640468356156983753241521602874149674836315243939252060151954941702722277004128280251936175851526821764995268490170263356499073656360083143794364605123184781379727692527676194302688169155733606022787178869619816289185392348032239572190527513481441044840705373964577598112759085579082975387298156367795945114983427664809191117366035008930457776509532833566790017484455930492744440665033545889466056678869599529622340934179619974861645710226868469956195941646436664656377470986332297033131334568890440645816916222914774496925473620840053452666271244450543675876256711292364001537630748700460549916360281613017309297732986223730743073007429122997833070733337035726006961782310250813069722353822565211590017492823159063130622629193922544404218303199992658221984414272093990775025272095289714496483164149949244536064503710483367874847042394583776203671400003864114913641385642551168490049459396743313460439175894699627541871380556716255047873927000949226980551212759328286897105825591653700725344494568646046221109742791442855832748969266977628175263802145846873548754372658685055079045905081656874758290285901107099573268363070737945414493564171445963291352128335006856317750487466741024497274710093972267902256760746008734327306147126880271638743793267785671979961782633572379291503122017182579577215771393973193186241618429103029064528322349856266622050321444826618502155833887024329817475136562988663643647319955558439968557253275131713918336686032004806511625284525070950960875919476656857651145625973004699773556478964262976734240489650909604897658599992055796961127688432251782621222954662589642232889862061690763492708987870387795684341800034680365429980450163878697986123677753450687394723860262995165266876628471803854597115400886110080978414899061038899532489115901065388024295854067499967272185890602363348097762591809384032703409684041323950012070456133376865785120519675105175485936697743023341628646144108091519553733286399205878101670895624837740955279102036964593301145146851617488758030263489913663851075791520321426121939589751387766995794002221211227195024076717702434675194460503592166110298911458710450274081862693458723450334725629134160394040412836103847100641487429370714225541148753934489639412888071778436821631009690788103335140551227356476174673080906367683619930814598129048752819534042265666070268815115232588253461587898556076857326611357996134037010178939812245438401760661332751330774045343507456524208419006382165747123653287511148699945200316119066519383409030578500557938136012298447867574230327895894463231773763299149247711474082234498244678327955849517618347525523918029150955363454673139176647854178834972187463211659844327720813277306464822494327849788051164956587424459651425059590509312091668327277545866012290892063260575312387686695458553564898540720291941518375934664085677723513318106643009760339067768645566365504378031817359468530760917776013250761020071469432674522937302770745216377553693193739142263623803322170245441347081605620375195145400381237759544729717930865685097476875594758144134326995265374760535371730416796584547196435820847738532709994338278864642134023953207810501817616460012509769838169761320748621764555697865617546314481692715781729247414106178186106624639622896265162707595395584546663771747576284865766985490179705022771844298751891589557734381770268458564200046717206535630089905249422549291883758881857283718931904558138540697769865814439128099056104648375403420737569649823081716285433940499620609399348802973307129781568768715940252763432263121216688631694902838959389234692389459595751765816114075051751075085284578720731093576224541445092416496659616228786829449198781597989222374890769555785626827380372370547015500689732321605305066162048274203599360668610510631376584504145680554757909192935550227645949776282623405585429981075929895355171167588281402659041970879936773236297670993923808519241818838900410478604339100132926769569539657029771897510687181843797645957689552633203878120686241236057675852950668716743989360747047836663797314298493932156245203529561376918208838137863539062985410370479615059523245579711660817467397489600767116074712893579113686710384104337722119339060629462860176706732708519092392863206847207487320597867530919836557014740670531107479636198153118073927815804881487839835094143024880959534220375658958246101941319499674257548433184247767530988647111290567558990622109391071916540531423812309754084468861813297203992773597131618903626132734358269005392943870701363542631697787925121075093626324022703610980887640409324660704975222919314899334904711093870481400167110935822055310773799737521018962233410548494127803855155992749042485373061113329906602306077799366090641259886485204897384762644438973611949936780303005625292900177999565896398812102414030791520102728877998750075443074755889677254457101788565131605061358850762147975780508499973960024710273594556784116921136611380282661432912930241759397560850800042656917820177057678691984572848382049072060846000027001561231690130610945353438014854339475770114780787106609827030080017335935770713267432024106895055667491592139344210879939585387634917013473026213191564970194086379146671895441042988762712404261283599471625488134315037239660387163819313538870844214801962815600478256681463710779331794404583422918174782213521484835753189363428567480714430993905208526374937557531954211326737233057498607859045068690389779098207958674174123678391805954702521419388037430331622351206036698650529164765232742861585695598862853410385834598719090008799266492810794683162645491994145718029777055201759094243305257835320325281989886221429845843084912428452889435479480721440236059590448971542059565249909693071849736045100245256068762879183090795229108593218007227536919597726763846172330300596464634727345420386582756187520780239974812469223591582089225687212216724103462491274216095892142172089500003696761152350772615511259068270350034041791210316019618359970702647069594061903868414652886931780463543680598820803166921352083060563517267389525319495981626267608654211447931532829594488707851256789956748891878500269051582002231413889849829484340000377236940324178447002243712338622984392698868333978478071190043236488646417278411231217235483588825374458870811083997824218893013018717362616382054444162236846131474433270397459074108537312603122140323498016413667475041564120421899199081299056896000866472721853585770250283317027057526191746606125185825394769275964348899022820112710377415284461209219746213733451716833094131541585822424091634890828940601027761883488414446314274531236969829765245961289397078227037188000816214522972516216333528722237976287576830744571752120095252562962352837329251815239798738964115623636105920901872059656748252545336604271695168448432112404188538399859562997841049317146392876305440805376077101479116100303207409008859678477488981218935632751753561612037889765739554750878959298529743212732386446635086879906065789633595877882891387585778678008251084008745321580382702974617622295789946809113740606222375034710151867121106979315678612694813106095425990320630488818329727737465493446340507791749891736395684943875623365495008828818634655666810022900683259505790844555630599651548143678087257222248786732751387172841757364812515796849381209339412035550560752572681132132016742618751557228763712995739909390482782516972307576621709239068462504442121151284043075369051611897544808039785302477657778713690462946711457921960299623728625237672235469579482343249576910760116496898158646414225726665681713086867642316907416991468104862013627217310182746650386682967404177323450092517129976470900749173269372627206622836849480608169125227384424184357229483369846891826847831126325341922051086433732016224157682259831521488650906023925442196273779809295430823907098584679955494579760758469259350501317356693972991101956310166938255874830972559128662220527361663530698867252378338082407055989207165077701354277669263773587846122375299335203312365534914537344618236266988881403572025571867093615320543206465042027328333387530859737116221255143360747890354490615949822499364740931869291843874509415571987566489801172791411353679486639034240117933222326947680157270828762527071788039621625393811486774089758914445292107230538337017709174593453993435923045905626070996943160933716615758166189358081209402306912348188494753748375265506786450355708908599980659819056022908858172196522691351564736706256206961521141118761893560705119637661744324720162032028603370229209455886638345952460996759857443763773715699695077604114959886517164677350427528912178577222119385542641011484481598191567584235756079941270257050963306244396790119146305334572328290784750998619588572027451379868785834276308742881393284434388646039516916175130715331776757311177057321301649099063581749109286194063298126742859392986002474156423527312766034569112244013814611274485532663595080349368333069891940368025736431683547092705499459105687689450988557457466917221516526470900683710636615695897287359065590732472405707853389380123947334544588365430241292701339537280942730517948871899785069943191188773592968768292623057403085776754991867964618837716908863679428255730624764655896677539462508521516880684791468552212839378086576341516315084352178433006221956639325386372488773521047270589107463542521915734478515149668457677311929453163915877218893977457309067267483466928585197386068040736960299672156473907320416945834456961991992764904555978485428071303062955006202477833166026998308982343100245286350005306182516897082231391215813165879537256565820007114425962561731681473691404267037191476211553218909980116967149800336824292224423709561402499643490157381107161244186812881430881990167416552984588549372558080162826161475537526706434692238173817377080793864872110532717860668715117920976687873438002126871802415876126237886265000021517968922268132827773379812255073366571161124721365209661499594514830247621446839880626224506758154301381413154134394373475022353580044498901485194387432226105848750479991938127389125206875806373246400705938209600307976785108932710794383038839470614937951538222283973589179015874683769946066889078235417107838441016816888016831208383775165103083294502545016893155167861120980765840173850138340686860675814387076078968622671363992081038241141034440668304087025476236047766629002848527029021773173522301562253891631179092180039202640109389924164079491714450403357637637725712709003342485270379115642834551621095746124210715676774395910327202247093625857787980235929732423316895017192897141146587773975377791701442630978440176044426180236553946670352240547378858707249565233106540092695643608250317356485242211984615861394103985118764017539859727884531085314443011215689331145701980510498898804120868494329992500032435511504923320023586319664793248342836341629112311403818749855539384054839001290799903639140410559848113037556914626560553405027823689851801084793652842073066951412366527111856263165653840790559490260736429406750471549875511799328681163500353667086941136766764895053320955677097226656472579641692766484782977407700982643866502803787807473265535334796545425582824089854017688405525891344677157292647109870204448205658346505060853877197894178720043479436961389280288547912795512477555858236959047622283404395491068112772318893853062470153675740344494411438760884642004148878837005059819119715841364604132108744132005456600214995176725690156233004662452062982956696148850909106551510676069904478340740102849543930089451555107259296314949224438720583089382208969970124042945409649250423787548032156245405260783436521480176845323739981326063275816701243074197262972435098217072315283253183918589088111608717705045048618334316322568224927076975767593737104613245232016100655098306847107102310833371193486014949160962401760615496449859098105905321323779564990820769304849616159398387761411417792556709513511891660593938191175055594199634974412126287205456854957787264460055000699046552318709587855604984938668215965849157027797108472551721964723301237439926909934385633086216318687253696661893755619248889080362692085033582400508011411946800282519702502224437138910632116195381239868399472658952814808177020650750616234400795049600958276296106183794335013334076539096512130567901977448431452626630970309997633429691001456116760410840775483121427798938626719504170875829958459518848233989020788598752321349686206326061254124633762254279355839246248414220613308637323676434782994102397700998868491018273897376182382938664209656671476241370964502418156765582950414064294030858124274157994574812813727889006531840195042166109909245163216144692312451322187909256969018007939818462454017469915628639270252130879965530153940414929814502943088448784055617580348599178713474411521805884909051444244735363220529695254899733494601375746928293970125077413192427893023812749158832134172679544581538978190682453339208676918641279472839047873352836579297771184368978580048836477473503929282579440325998065167539256341629376474186416925286350155837428012430622743135809367174110941506875248757972692937707264591692127954841612310606851930973257512165719966656737086023757833314935109663644866102929007036411939023924819790938344607826215043968570890579056111225056231482654124821701870290333547768340018594002245160530438629081530170212976419951539097333725859451133853209008551468581518600413421737692403206758288076188581874512985203754204389775768318784950044794404656486533029395032777505495108690662367241650422924070941410453432166683022144428178905242716705233386882241611356365970016980835107126148899389767689444704325479076575012997319789647151690408099916140039931741947844878370477974000943730190786092544645774343548006383287716709259903246407376840957443790050573534101942006981772814838638383463513499032102983649861585754374378030108297737192230431493864461264552123754655303658563281551129469781234687628029741633255026829926712715612304952682454232340833489464935723490896293033176865081272897440202203897439841093232243781293643191953505283517805646416817570619454941286358221801429864800860066845624636919526056712387013144904177484824717636439916854915691443378382021247488945657073683564139984699647404396837398688147816735133226435422646279034522731400262899525014575202236685894456867983094143597128577983353697362193353479826122418785324908610917945914714804732958191729204532554655795447630172477393015717646421258240873276136195291244109634937616477086667380671244913523931200882480559562310423742127621663434626333761641336930269124338406930112598613877053958491548918126492895799332152169301113954400187104608875459597618616649630166848990929328419248181336834083774236673328904563490498482062064849962532684629274760817845538258395177928848911622045700690925305083977729309901615514206762131953483099573896771307206436608420557533007123168959436371328280591738397181309760385187514051787005414754556269082117516914348081102623125728867503719263154744655074602648320064714983989434899326437714518145504655772757426507107222601099120908622283211283765285193097224674430514897305022036974197799518998197152296683854834324220968356066024643013756224842112018004076768921586268591264700675452448210088695140258600145219660763001575614509079255096899381828226453015343325444571648070533081011324973887420599237188944658491796440586372986137118719970773103745588401658117713273604019198883857569686429849799000808892769619309018912275348426867850742896743074839373061326743878208201256969435054935736443137545521196058323458236516483348200106096234393810967880186112296998493935422460173903459615756021596900588851348095698468256506872916264243055979921821967029989617559459873386317084781787756688539212274906777631080465359158059315826838804218622066178336888964126485947936678087754318856183861285632103307542095710921908555671261384512374290267198048592752124631232400980769316109969694848727503171866304462957699111599378481568725828267101138170606622211122034522875030472426690338076746947120044135470863028020414957449942478117329118823282471036654941577277810679391039357665205405654627848228903532701566982733003443893476791452663559284981641469300390760639692895287260701615062271004932575712035604271916078985558972332746587214305067297073444717713190858546598327794880615923235253217766460089627908091187350942324106170519550229009219418832036228448897762733846556546460560889079123135102750081797446410100100091579510760676940866816940418647494373182700836957505764458785990676261955869105262865881422956453712158109771709597117247149036754681799508294212554779466190466865426752205535751624064487639490131191159958308799335427105547593205681201999643034355448113847263858644773646755750195701746172694284600378342959763686171047933544969108951431671780730928766428903494150073426261524692367534820255140405725119294073929120082690641445091624256617306963192110323918824886128498796134488593822831662554913567311975683036023335197300841572179703935690268459911560150949185245923743596395219436390950312809953264727558954329946553101037446065003374259045048873914854764072601321964876694922061838265804646437278532179426575691001463463944648184445854534442251022532704734602370519055458411224108407733894323990942886824212224428399605222039671420868838572424191691665438735731627913889892929063005243643394217320589053892787629769262689740241359817831950261736023745590413726829888952473762598644828499610822004677786419738829476466385462194919632798395323810249356355260386047406387070561809129378701839046393475824100892322982900507335851759308863384760890474670243210711482915221436049098006349411570489250024498449350294845878221641112451967937497927283992598054246545357850371689041476846056117116526803584622981021224654134566965974022022555316375396845023568867956800964687839090902762102490168510984630893170098372502487039329453398869186939404288667286220124783388061011039031080955378529588373940931322106535278551644894991120131982625035199563026802905141338671487953440748460177849790390651412322593488264825391366350672103417078698607245621149388532110954351254334433718370343742094694189016589688020435568558763993296234168758455719779053734043940895914410690093094696144950657638025505299355730655434393041854370182639696468295898234684591841908786336068832239069659141610939811443506337589379069062959554023019927626940357883727050795331112117486529568053007335733757399635520016736767871991739722399081504338487847743014730350760456078524905341626142733183136117395761527489644779402865853522976282201431943628257619342999503425933103673327476958588952121611839998545921804415418713425518074744950170659493898109957456141633176148726863799510900790430543889198919866497757063400131893260465589873254673745354458724181065974975082957135773268545378776391289777766574450571407979537743297978217362606219190499541923164203497699921842071709842557066423056014946633923495666778072422285701381531736187399187864856607348201414067506895407798212065968627124153429928586965043925638739351817848429497151480306616223490922119089896935535957505003402288784495350215644781563228160738964414619315717170453941950721645904384758314147755426462898562340606559856428133289788142721525889234991172612246853405571586003498722713994598394047399288679029452067371973462097017371362497745704508066274976382560188916437558680895146234024250568315806278737914170303258123768745348556924094869102972764410516986698122735265230037238159117480227258420416388763659830874588660707849690188110180714471946381887566612929580221312218217496507823755121098335641822445558389540636882821016792383580834090285697769289685903979971532696092516505367926453343748102984154601680199362368447146046331594755105467826972058938830471244392581338861966731677422340334903735125918591596456600478603164943239454104139625211489447313206585980163280435093999381164104781767794223117978090110549730290331131251213153324617618051174251211534820181812483614242258048576676807936317396399670337022782961515663792676502639888653498360716219031399661595103405612232117815475242493096329161126520906799777491421752277619665880014435338088103329289443442933296549641712899004165225372367646306265758066243885547038697746520311144602222129089033780508424248763750575002377256874441180440010956486910528924425881208262538549792678679088398783958401822679630245367931861081179541618288114299742219067385884773177999363773227537639371395640714557023860540099186137763874762996187903226254400270593353534486060662366079173717506964446096543854701248296211843052532458105430434990918198013367852152945598717167087473913934810444362689314770557534060978860613583758658448162880152268205140480726550303708649379668204859109834733663843716364431085241384198620704318350291772979434838094911064009232569284156121266765353758020180772967544686886177972788694798292402939144502169863531462776002988459029124418508194574865086596867548112826689940193442892234404319605116945963233247926249301588507380706187578701839600327903926614225015909472449731734093926683425639582635169003834408028479131679751322014463895360138675628910951775304637718718059655428628156487067201845556398348025104986253296649694632419006505269039605165661347278112283987522381433755355214992436203894380282265339840515497675179557767026354033287016274690943711711665368405853538615021620810539124942123110380792616957021008048354102673295460532551719555344367137963787103945293981215109396649294829364764017976486164497515652939876793574447666600802453361038479833728172020540368437900233656130466235795741280575422236730240398823826748486091406960963387859849453720944301763101722587118749193948513191905933520636318886388443089954084501629639964757640281906296484931542214763409949752848573170385042897421408814811833455198686715326186417104738237195704949454448312795720103230478899914756958952668390201232004821557516618906601256883102621242960615694125873015392096059052561809679071593561288721805017154597146164432677214471612862265722256776472313114155882799549324875189137894017777614960231813495009767450800651076728796105980272744657104384940906048157023441466141333946006069211364280003614619211018195008512877782765693925400356596111392542664960738084131857021276894847854813368845609458085771186512830736263778320056400947569718614480060369379776998198596383130457881162163161410139765333036521947094286481970016170143234908852179699383132497779261350971389812394569666468577530502691272445149860253340416129649812325320913023496109154355987538504847043195800358155463861199231597811178909077032561623154001312013211629832058570434232545129107906313266529644440877364930792065599541922220927372810937098500357517367948678718273589269488328196343678772987872598789872800005276659405232624284351361378405836125201728790320247056773429533731635629494497691987127740089247975106190192126414621049737366862907293214446196528110363692618756008794788433671377711106438859634408386205893172665117477303906771308717917102281954165461106100811389075408901480892269952916593107844375638442545360596985806146339749067690083894887146905123060774152265306112947979505904126290499652398863150626114844663683658890186725136984430233782523383534005282831212590208194673123618379539358695885502359365654416033461614205732108229180466001512869653986066293931615628264450884706563644863194123632020917105402425729419887110627369032413824755725485299339427307830246864261248251743901698320822241607551302379488901893170510420654766651236496696017303026648909913107122657827179122798366786247058256353356705291730960366805423856961655332451385394983200361972647835920519527448060786411098956536852715705230668536829885213633518966524686802266073185904754991150233515320550233954745424259696803811871760821768097368315139793421516971940067289472993386712135989682645162000047458417045036963113934815340753295193879788545042494295979347825899179054502955255408132937003923578417562387133373458824200985323673398202196545226706901676877605748477866607073816814660741535767545350648119141071513691238301562276936220153022673979964531065453567950433529894608716423378849971591412041994807344084880297026047965372582838146725900478775646638399324134622453071921558646600723486869166656993790247168529389399259324821538080462013923545102312323604104219791940662177027846070924170709225464870396559042720434607854184179896164173563123806561279965931236327599617932352370179723208080400196545574530556542587931274911839176694680046441322473782093366700446022233047295433505959099648880270113441628276036278234884689215990654094721184485942212926724300229162227051134021732314793337197307726848404628495292910360759891007915655579951828615522145714644499520434563723400230126750688395256964064975505614422462300741180285978921063200055744113206783969662969828791752684852871379896252088059341630312525685981721882973545955822842908956188942622737544831284614203746079489909543448784910301160665964381296053234501624026532083420460396867483452787255882469536272447270713288227418567845779356002038643222460177472885004878301091673950368759521799206198662771026502375280200936661545244273832191921360104087616712605467324988650024727419665061561725488651958559405674213565534732782713195112439923551676867636733914672655329218861913759880689092796173682955104243381102633669430697309404085697310927169020045625489686714704640055535698234315835212123818733667685549296716581357114332163752249934246567362735506270523131125426495300721436172199976662573042901383469160526511821999016003239026050472861849957030843699881485684496815666952461867394656482117804333821598527601323024570689718181065179720826061685635287619610426643093106539424283007207993574705564086733641814916109506719822891478998026662495238158120905539284573468263892356003672477194099895094556154070097626545507573714137922203417526410561836798871733384702267391942933262200605841504835469792560635207080063332417076742967167706888491670201843968603934393290730804937093064781716808937718229739911260041112060429445756472707347457678554388257101951999331571534701114917221850865790696576832279655831550547921762260986809735945334995446089935853724804215450596840038166407800312401925287817146523858695534106306787127970709736265428454414322914760488204508732574586092050457250276131649608665651267223886578946733140573281562857002136072581063323415369745615828351837324149296590740723849530388083045500711572987220802651688554590109606838033068118361671959541088740192169484553606883305705505664426289609500914463122109547216530907726639604497740868019397212754196799869445487077668963795215039033388739150072679362072132088258651502312314692453044804573309769354566651977278559336666329352426447925610114700549418085735338754632384174593825843910034939115359252004208493275102611271828181053165303735044758169025436437539086707391331038993089653464850903316498660520270276143256748290002855640528934442895511840614777303079401977905805329593006273161880928649107001810236364246419257110351083324711962497593509011124207601398761290436496210294345779206194012564722969737437890149831992927005655355473632501165707993809493848876485477552400275279951648626439616114021274339266665926713985903996295432880189160083393894433828353936220107796106879090198074089735766890541404130772381275113298987356149369047579062366955011130808603166819156483038425894900159466782476545976591923578899075297526406463067671531999486483582084900221540046724895572444157487282871892299348695893308300036871588027039286532885502000540852985327878530321763790589802501954874472156909662766335503464221936158323310734989500419578678740411835893321933703782910794987045722135485143940161211099120478306536057471740308972038407885521817059087837810580669228446277463538724846840619407174141956097857442644372113828104785590999356576844751207148207808904955019630614614312279233349023248775590859764541999572958110471296970018573715758161865589039527783144098828520655793437804491642131121979851851475515116352981118514048589931661041037446782743402544547995269744422427287867771356601253427805961993086116224569851524973581573806450440834843318054498782720097763810682295922727361401047595843148712081344930784094435432353959617179851236628661474445417127160458596150878497000741743606604403845054180099091401129095305660753142187347432084739475356205269107628014970524980932123414185077647012078845146670952471263934599397537604497934519523846822212913016138066399128536766367155283255270153604949506244703630078762388782689196472911157423351496342234541257915246792659241064039474322004451835709518421442611083547597864043653369589219916787537938785658042652100136404428642816711973389342547404226892391746709954493185644676616417033047044048553935828948445565293813980826508243914311372025414307737924725767692090740454351891520189713494734851276420053423265254234583804034323160968462308785906763031819657692062482314694569167102388501673830234374179159321567488088805392695506624582611911908097837972082475106093269680066512797294160616728850980829755722267046190935627469166012557519147706063558340023033822567844798725138720583911065097939408643360260288096361722267112258838075419676778530055409660577716705082924010796529296394602455705365323909190998556893418161862176994107779673817752360487091818165170549469234174560282165062129493349007902867592818017041684900367560117791801673070779215417380325354090450246852741640645679821971673776380194019242718087756196223892736853295905910266451161962391458023301238282784763304525172004724119019386005109248203204957452143274727806828758998364339404046726316552444840739655422593229091353048874212670048918959873516777285923927680450098853923810906066615907431506019696759217426824729982059388966977184781768985381505001636274487256282091216414606996924698373348836176001578787039603476541582149006628876579528440318838787140777401569058591211331994962272167826541965565373886667664021152219140504176777529830860987553756135017861006184848257465147741723827780147409099710973020078427490001065986457907653517908901094823908270727672873971562131294396355132952903420309899781915098138704335425914403172404716850484881717449435599702717819919008100398033478297638753567941290182265573466442648898177563035989821640655086000292492439339218888156850374767983259295746495085155994108363785926375468002504609381777700674433581425318256215805953345936495097426931870927197958074189334569181474240414408075857680450332290683932292706751754207765549505130068672487207238419450821978111423635267054472796757605978173048464359699475819532999226064877828182473327978786466495006650601754952379733033013729179777655507770283775526263708589818421739268727455676635418405048673358051072105599432555194876428049859459905877908403576865595413257397813856671986631530627313791294128255096553589032438689071030666897961099804375657741602879880273219339627273096081480498684499588261476409011382413997086133960564344808738293999488367785963645087980144156369324260146647544540389804776164235073903553677634341484997842099407280452744917343133724708209793219806917617785341525247743877042939817536761671348034805166651672722960240606472477056656514599076305368557315415921943699055712267757621492920031565213468486335120936927084445530665210979878588168394695131324802538909937819810318382390210984239289106608407912739804499356614984729028315072281835797266901769341015970026378799394192435388264232092792896346008175756600267279609840628601707098620447752048151449876228269560765270182438861912580498928558521772901744486615183130194457038692130620826293550540737251456902685512935758111326745499914650067522918721825523502237716303924611484301491341021909027373546527875278562844064948397910063581827804804792328655648585486124747512114873764098897496315094919514747501480670726092860493170611593418184001741467533893032600124407428731108740719154387125363311399428064450736433370346883881896044567025443655828470069382286748038772803650693937563043158535505662298632158355004353466466634490282782114759806281080691667450824918591366021835258423314677430195510267841058294019663088103273623560209852869019121529034639322334665642943994423140950582400259384343922498418640046900445449227160462263938725112106162660486690892737082628172941233650210446756662253273087742721680366315568726063346953966243661851808758685914745241200942132555734370651495489143823140812385022416353686499658313271073379000829285224912810534993453108472952251172499681461798816457923815511608199285458118669229900274179452633416015868643911907287659689739769908455913546552214443854227574389242493097929717779446417370184212643948449754659307952502193283893885623931041104338304163985947442175178209521987583222678039100943392970838963619517418200043300446245890316000994628136558304217908198790710009512058184114603534478612800172985374733225821992721400159692731404737876326639383437317749535465322712225990476312891923984580724449412735455589248675120842559365979136214858259590501744410844011874847949519333866435701679988142940064206273825857646617757023817308834361938352276684516557537367309910939929840705259281621787234207533680332468661311047035388235166114205574765884380864805252637156142161470841004418558893841527982444106046063106204462283312142865813166647453500113470267017686140306327866755948913086279140853222176017423454677840950595558048697402793678408760443539326353966554344637398534897580618182415438311391280237682004407387578598748701548606444987218529011950602419699735787707827121546926178286526324419913590642722246432405044007566145938886818423469740094830947564337158908592950413711605683225949550928844153706982034893617051667078347941921700573750331216272491234660803993161053771683083820388207807461674349998112162283325075084377106673584250309867473980239919688937599055568939675125048342649936747253314756512690412375807717165660343488834039671633115507320882484432824604075390312338520613434460069933113149552517478677677521647411522140865338216141060933212530663269359055728424890008420210656144566655534430122301948664809825839639869385814223588847107387197103703780833645152782769420637085146094471909691504088377721760827722945767927924040831818687904036851274281255964189002305075050270483595061892886740177444026324361689104844277717254037883705051780088563315222543622854600749825530167969972423213008101481688168305315716641966748036872918072860437978466813183749820424620018918486753033971990245759033090274273011874900222976851085211729272825300296578351602216976930350092528087533186384092704356563279774843533980071160083820458854024250677037159609102844801469605556406528080730850400744992064163711466302365194151466032013450438083636314920047317687546713397225288892308012783879313489346608505273472100549283577011816918895010281128692421997514734804350194878326344006732433809299612584163104989389499235734914585784802979753110085016840383830262842407255122083405995014591213675830615292675706765628273634068201071163138244262303388489426628309932571515525611597838700718322528477742837134488253234920011435051648968704815915637182538104273787441771268970770904778700740334368428223015643297239867960126884147981033633617288666233938602316999480970473876802094169059985959015339378769962275051654636803447506461761472714908356738253494457120825586341114221251773592005769414623287901154464859769491251564945540876090391445603766344617585980194973046729866316021084718339761746906918285917350300831291390219089788583160872400998619480174498565869902470151745159258980336053397876149520126395047282312139920279484310688477880298922057763264667580547999044769630889957832890050663449405879564975463338362197088561670099659757208226171273109298865863739923001735914115952980855468140667475130226838739702609451730517314693676791585100389250327828550615667849006518379262845880593890576967356582930128242838520183975252906973381056045215755856212572269800723106625802669538669954932416551356277437651492253387937416752208604926329485982054587473277849107073955721697637389827707210804247347068994820574950377700467393585344355478155357121742604557370837048174845249572635409491706937757836871465309665152749226500654483691815988561594124141120836344687477867679505917845550545908481746833870225108414657059553448049814751112642026588445260201526018882790972351959387527950377507798752101026016856769285278109575322857938348577309772354265883790652297908892679563898908899367232514260816343701699873000958512103072655733806128812848022715919124798687253144431230036321220760300237920847609397575456384307352817700975965414283482792140606750759054623569571128839602670899234255769897818950741688866493043578364333524731866270863204423915462378554154684663605300194677134186616116066351883583012227512388509668903298488364220840823680912132292909751754983554426241255663217820581429798018250624554715483191677608272525864289610858328578688001367029363475430018023190212400692729926355377813959229299570288253145364303114763389522606123361085856265021264499686950401827704301549730818231188938189594253212979394075698020688923095391035684726148283815510144397863782247140965150727665316708133874921292841270384889973728702838152383732539714562902259446233715307573693609041845077942542250533767794833625462708974205544256862759560234892348294576919828592810908421705102166448722216576190849234169944697450891864862915919427772161924836646017015287451099559209624686351378725404835608244072575884468076908303408919257564566522445397168254029953823590460535257348398842956866312692378318196927139121258971299403463226797167514032441096387664694909409108772647791574417791995171697434625885303819156982528514568800897530736752639812476518192794962450506946710480047637950548990485478061014003595801525534329981424962419611989279068718516108588925194133443760001753830367248601531179931216241042465031327359074269692681052550517655128505213503853742036883543068498246727794516455769928487672087529793184487074025261574353005751908139582312467910322078589133267377035988391981265243799541705399853534015884983656709404618313940300943056083918141474710211197383019992773563643233841445046124793197864130650276369035597568334118514317537835812554448076255187550163237471436578949275762631732097887158094112299418622337120094403976628768551452033968039132089753673877935735366356343370233203114166681256465088203137819556426016738041913397207085581738868529807827577739962904215982125790444850599225913433389779180530854570438797595821705964180731499602830193776508259470985438518115479094352034946938079234342454463324989144383082561761650328140726123734556469345264661523481649164844199713104087200140547092426569711788413732293203929496034784051490826233782353825532552057766754143534091730567881450456124936529177158396851949958748345941444698738165572448256403145958180304824435923945287029186441630752123240202605842125831839927397241832003585038125211922557375053398077848661727743237036871625089888453462574423595965472530597196540747174430508920056095887616993709665888457685389512917731933457163699203759525664632212512754407761634430895293806597602616154303772661919584848349244561872760146073275101060654986857562114857351720103812993698184863415688312832753667644872706017079242120840158137099140081592109729112680886365942663920683119304888939430705696358097680348754759674581384100178219308873509899808320128165450452001368465844621187162252926951192950817503525684116000713673037616309297179015592678894317623392841030439875569758017608393379838115004748194829363457406892716850717964877960060373429427543156666368636461231098613146830352461823956336790619355460831544198769041791573840016875099631895244950041118762899046876917159583208528867609835990660187422046201161437759260535257043599858694953824194062607363752490345203480285422381002959626464257292663781098704073100556050006138985857833863652614835513133144543386709012508947904188159665742285026547933777424683327935066886746337999964074780843771001362675708756163624592728269155232104990299260229183248921066131507662627205989357793753143354709692626503593951734857487800937739795116407531348975379945771972581889667025182604397177261228061609689168684202260311170246955547251061572666352312710645758499869073494012931308220848123777693187753468566976480099759044819198954358160843525006830617760262868241879823347359881951233528959783323425216423305193845739580810859674608203305422169338436087262336003855718501119856592013741131742265354121712437792163234777273495817463300347274843195799485347761916676053716148303088679229132787270481008128058225432835288217307403133314254194539077998396455366419536120693781462570128693727710528686437332489842062235658876051808825591505752921910495846164287738876601042312628410846970413425852279419088850167883676832039202777750459616675749981722074721457833030896036739445727071791848167238203829361946674578110599513591421605206984259066805960785140450396698312213749996250581667797441291397467970957532507039885720678549826795691743397472634410277323283871695817010194952470465742920007247716545669992383398396503825452805034799334641383633872128447475571167340554250565018587613445095049436023096010141570432737238067232049745290280877990286623743861592659590932608712525910814640552453506338667613700483979847310327286705167559837367296548149890303653212609175721675476433765570397172377529753360642102590734026051820793907982855811127677250578035522343109038804372528444740785996669482251456911021932363999118918313823986062878327492335968716287282012457868227501433879600224390171216485531451196472046212298784454329607777058336019077784073359735920040044858961652297193173507015566659895886805080303945218466423998782566157812761551632052958415501841321096335073085137361768758914922127109499551245054284316238957751456146415825595359634943644606415111846284991627166771060250914070915189895304008333045951612435562098584423511923554515144976003956625078114624344046054983346120996955213770247203890216785059142688134754806577467790128898707471015493083230608004432442582003888192294770775888991460378312047756365259862857601158633686738754429703001240179923305443053420803121234654653772139572705031866505878037771192831130001533611479073741100074344423226553274639995092499385235991248535477027602596498728147128864457804037135995588291173670983003916501275853830598385013377248093210159751183417558739244009283071494957842378246843091672162591602854827733071307293557092491106732652345560129420799691169272198564108998289214199360916032073216553003528762937270753551073207804572574036116567559980484251747237549722760104429165398002069796375972240411790214606539772159363300558582443125615596316587344011085314888446865759410490383456339370643117814065311232868724670750152443915662971512691095596534400381474386598875114409660615777749510516197526971614192766931560505467767435300354178420505277082357856377230065271354489046697257625229677998341967792229335167232845256876143147860724632314506919804279257683068970431122812743950219160086220173943723626601111861416113634942422849301597349405485757399552259250556702642775339159644962153681786597336424623113545892267496750565901262199596801059542901838332693655355098309374858465520788870893780857624003742765990614842944342471913345158870340908857551303771273593851326717338136828339903349823738605825576048886846398292046537627002411490123346337429114675919354506986751163925454549567223306995732650051910638896632715414199913877626079521703375163074504663189270796674219299006692895722201953975351356411882810396310030272659821611931872560980000020668935581128324503510756527024543839700953828023337754119504361470311409973380148284078137237361768838845916332106246228749032536887613772787502996065646728174080013565985167075782787698382293020828987847250559745223463899651616701219972466678608813648634059117617616193818184022545763177675319679786527192953644823624486729700473810144249267440945712817670011282609023258807014843667977482601660094388176286559166005404824517772354897362972957791232800534395641048307929204849197411798993606064754408346050867197907031315565513001878928013977371031306876131665360659299196814923600482106701439520435367604657354967995501522554638198373151685921792690181760771614335285703270368864399392365035679086444375280762846053778956205890490370491236277246637248138709594396305715372120141872825895249002867172829251912184226382053901276929057265124840863075380680157338383752780233524293873902573844477087092109678393043514149230932405889125413136155277914416191302574301049622731383415743550855404011027734263374847174385278045724699566282410863835563097347587559452142744929318015355881564181406064483766821406323976391973127763120354289488195303642656757861553458623298871337075164173381847043131378291625095297194642123117691540586059772081189234745782286468864966952854175958951950596351421908557768684478232056995557998931096421735014458892131671688735872731277214736186549770092059991405961334190403828369797582251252165911912615690921196173556025350559408771652202845926546464833338267649158669662854599800943014590831634615003483124992473077938738173282647225927224131175834083817119147582912544611868359611829055198578194274692276157537384034039352676191410648781665153579074182141763695374920954411174818769583324792165727613071980708565409321979855070123071829146791719967482569810547337806120943619859604076160832763165719291828154697621959876035907435668556715837346958210547329035834985079377332866840517468087033817213359634747281973534381389179784953674895028890153853188355794490261933681943208163851416192404727273999013682276634297657794454935419567298927566707215546057832514504595310579954228097269172438040484031259162885059315064293097992890954414209943739668646605401524703430172855102394660991884656247029239366504992683368091980083185865934353299854067522287606065095852805095276281637239485819228251848809718201097551228102440940561785110622343287149860851067709732471736474820405446793299739454079645752702493082675405968221642522195236427733625669144814512522433850621879244040527945803169874189792650613573467451473749016534784100485294970911155857604149671362948666724637987811251616238387796885136489516058748059694180486046411388285444810846393180527158696072467716175507493140613479196280021536115899133416640982722837423977526827864629694833229176670563669032646249595943796941483210251401170427491285737980870462564786739850151473472101818333668931085854345407119984347926805744240095649826222967207176105670994611814804238895951518694644255576671304085956498622743820171024259193359513631403263537201969212855785307171896499802379931179516222869365746211406364182362776020754001186420758514125378495289219184119243606029236435979402062523789033930183991695856204684437996405635047805825741564022843020714750892738632887970617143591509466444751619726087604187351949719822496204498595629776016606000625207600661701159184970019262541166842155861167436092175464790472431344152577186204851891867985005432119913393538032377857260009674254326021285762574715204702105736979284158547947666423117353838289187521032494281638932209574070389902153159498876247306109984701071631393796528273483571306785159395905312963999073472520386312794130689632526553162405361069830722014524303157460222641021667170788839318071796554169490960241659565004010613504846146311794635155380705042433482839279144810389066459425724422283396633247666625846273181492417142198240367790226006593861650015162317887846116557207767660900857453751430176492483732347305076870210065422175613977796093568612446033727273732196611596212813725330163814171813806854841013757974056072908653270194587410676200301430597822224117846462117535103700816266308363749851045163951007739986150830809726431848082943554086857080828193386562324418355795710097604940906903597084320465795199203880279762394372171563221557909082390888534720024466692660922283919895457594686605662554319318090147084040266043670605643405548319156001013167273820119369275545291245201397910819189657061194777798685919062928059018244252056785634697495882355462972605751337022474855700165558733192648064163936126381531103521952005311250503851424438817525897748088769137524136206471632538769131024697279673586701054944955243058319993398489086946423036303937185753283558351705089720180597749723766060089111424795996487649914687520364139656635530568619652067395656530299520499444860840081128190777461549689088323050423297596202791064386565208300423637200623155926657137491044982709132526359140330730351158684599194981309399969780840689026834759368466762690212497921962586815136232447456864329315716178808218496871747329131319258565711103459953925816628991144616317823019482245565529163479226876165565055248443934585780177258486420826768217046460535977995485432488746513923795108775322895805197237817576861603525603054465946492196455127706601372931356787489919881589952603538566011617165490463794275217126320730146201196017950897803541307223491265329821707065654591912115736349472368877314389544841005765273144940961384839040192402757795618419304799356485118636913350462362500859380661500949297057013654936006620344319820314047955619861237822211541896621200803613199324506522178583411265205757680332784652502475101601253930558918524341705019453152326133136436556671147689526233535166455264064428335624041346902630346614103185604572972847335807745176823716651859571523992668714690802659858977879187556248387149738131397338993938910208827815525062971429166919719258315493784768141105643737075225228038409873623783521358026063233494455919347512761005668447336463170571462489249092476361214732784441931682673696851194666660901542566623648159118698019908047768041329050875247072669106529720975023382743207737986522449527053909577397370679689633108390698415392562165351702574813561856153986210408531138859735779313670813210569793903973516142284749230223831624479353009709122671323349941199562243037266571318040772077068299706532957377356654443242216045012460759355841356042014893273002709008453432858662970431572244349399696043116048636149484392861124227939485254545204194654378928955279050348222694887612233030360712385705652383679975795199725638673610698046013206955350663435852992871784448325128882355402135224297438690413996095185630332113283559420593025352403723208909258217895776638157920499745520128672462560673206333880804796855930769801667610104444419853571677535306196389539544862708391138878526006021354704670224012588802161187890705145404247525550063505997239509749018922029987092225832531236505917335824097475779488911872613943092558488001622924607148613126928498019956554147568055144665286897310165828673854075607779685936674910326837590759460029956767602346319812954522951617557934482027293399001141652585831759234651370594102651020428471452991784185880220742844407709323214777714344383890916877313505527641067454803711630842988159358983955110962240177611507752523413445674643917992524536783404221508176745943158293026231183518972604244387009193203557627848860553393024023772575823732242991390310140718018253969194560272460463205136277098570756928208131207157974563651597906423509831795998934782909883544835235651342007760618745257519482030075862567855471670177518434236591231563944292930496709783572059334160471179588265207991961579509351472361450771998598056981393297281177732862948546588647543611491395552612981661854850384418882792438623787921358641561926569851781688154853319421349553770803557803753422602969873860291548883655166706108928732008738558098091059364572272018266613075461451953941235164603917010781298075186038767367935824879932178426028279187312934332771211696523657665458717270552938654910621737530958003748668799960692133642671478846019078865698998718539607639926127921027831394657185346303202498755259063671373843188000042940899319736590679936004194161501956798092430325812916227676152257555458740115679793319503436982673310507490337578169324690886918497510395734946190766648716236228154384225966266490573641253727586306499698160593049271293049467122287016762042231983632525195819373693085171509397264845807650342048232701647420023719372942741524099375828559213430363748025549389575267898638201147945137404846056165855324711512371724612649516540165739507926219165965366499262967841678660562942247237004560471487074183371979030507547323373710464543721065620784971626546661126148505289977052975193714285579929034995953245271901244881241979040963330331323667073049521523154954374750615739983091546304833906687174227765159348288148908881583726150677673716697882499848429170807855418186161532295254676409403159654984031748092520763699068075811054435689644213327452426761263784209544342428494543136045787220639560346444646156758568158308677938397950900109279006280243745362294817356580814548225912231714364943594194764398282797234230487969812471322235278084417562052841497146438999367928412395242584991508452796493143061762814730299622537382129749483845468919690717380468082403755537197797297102806171978836779828131760371957528097179022641374304038609953063593212691973164122001725460095651126056976199421328545881226245407676762845340438419556405465695262777356919515243904296911077389031193313099774069010530466236214064428893666120297531073537269434769483271592325731527957383917088486170186726073187011453948119224587178050712714840358450387704761705085209395800284454908630402241839605004862372934371837709789232416243361299737649390831619543994826846598430914558954744110390325653681800203239724604320143262534998291342898233542534030580533258186528293880658884832730081170975944988748501051445744012341582169188638017229453436442517035040813484386770050009026737258061768837239067739380781770688705792886664531232441820388107999065308304922979537739229959078064047730259100401070271570631592570487187506111004533270488429265777868982629478340686448673460801303873360521462420419942611936124081975995851821111096617024121348258023337234380283865880424622858446981601849215770240776965558971969606216183431846173450206541576928450918453465165060490690132039369210292821782946689509408963216480210635835111759061716613037088944352883759855033733217124149755518236457468986090513936645701847355089120763845675065993394104608099652582028444602751631751952165488865738346733964866149523962680265281908955215417816241804490511300856634424047435384691491991229106024917132447243916004669320777668044623269812026902535820498052925984714836512111414635884444466549334502514252663530490407735105417003795811815339550635224345392516220231258043818628845116198589113254774875922468516888402251586154291539429076477723810875165069807300478251266445978570602336986845640130207049055676734771932465149960896506925401986200433655257294338709962228630049373737318973720977983604385612977395655072158633611788970393248953201203702094952938508658877009226191656492137818721159443322718515848032099029511601563421048029063550509209941760780355718072357854528089523126198750940478233581332832330938859163526428133911810988511123486905799208485782255267454849650634759978413454563035916670122398403973737962027138140605598301512419291510946916259687583570146584025344613677482139705562721500683733500068552536132368201426359899715903384343394960285550421975117902161162678807124727352973148413393185709476992960966928465288795583749487808742273911954065849973753734037009478891195919697444907634807591382103414238540052295485110083013744238526685047063713285741840113044586833061833016641281031224771527228036373995026132446175687044825034425906101488419769680255633439344751989698321520192236887293185358471026501116670314951315965933283026389784275548627823040009236308088432530981159859682108255238732545157744315871575939562082882611090773129240216298362038137573801895140036077042247042007614932964316073734691105159107730538013319451063388979777837315686955629614260157038271703318163455150952998557994116399676625226105904792574959703161172399180318682022430317361459439319750229107156258494920854351252879923617408837204291717029409652350409749316955170860729699868841443658319118774251826044324550361629493986911803358734083976139331040944638076609099073971746023264825619318303402362830980541440101838288247237575853430916787698586812834524805595450113439601454250522864776693565873560772961076106754459520774526764423947269121716465679635336780781149263720472175330187189220067777066993190039668042273596992421780672530822391994563665013957647223095351397280022737130855136999651049735352606365038061022719646465141702590338852616629005838901932345484450858953701104291109127793807575718171349046995321790610632303334425895227007283532675823267929911657204327997694722666113166899874104617066435445163499408153543652838970371832731876859887093332909933583246946922460881024756952931916046705156745026982785571866585976243790538041965581000300516883943205152838308282744353955359933844224620161166376262986506441366231092845041684895327571541039537431734191074037733004271315801886596133174028305982572923720202685140614111449938310853843051393701331472635926925571881802084352211661426460464571710766509628595833721972654655883229031788211614291548671919756080774631277529726760807160893336067834203486633293480363742928254182450178390243632766095872194470161307277380786073540588307380155255613402701204523076581855788785775932826398653628816760016315232231775113444035182997847443171129609348873501667623411440715038349645224494543657261372647200142113929459448511521077633595473059530929809070828843136004022739427763920430209450259091150563409078554698436818136795423011949203972997950134871942681869084982068620599497327299000092213231041953727976897012394288268369084428701920455724578503877817750139560371780817183893521855663796250937617149824851036055485706058054987913213921054361511670009849995590094182405620996478441344562921855211672906246808401699342398632566360060831124907691295048173137057395126107748754450877365470403053726346069166318551741487701035617404284528167141027837962255766962294060289452603332610284506378316810081751515225062830338897900353730572771451463944091892930458771015480723912275098276702447930896948693501960383767016308874882263555878311793318850495366177235289011700016926391909916089589156495466844983824163248850838679799713906684425779712882038231076512190086101641352728756738282408346131468617682776806870035698611818649286184635716280531712895085487751499845282501885195247678345263246150608714698393804824294100494863018903170383374644094557976745035426665392766394518869636052107586968015909420414945618169956575271875856638563196892591624949365460491935442514098548587841414542905289142534636154396157422284143049946689350072950266283910729623292107708170914307227587246170132753727209992313791827130422935423073002419543824846679731131165381171285592788271602909963251093813383783458440211428158903912884413946782505665043372276583622772261475636895994118164710931207345348699734057939879694282166647778026889260135934124619126671322275151026270410992263963192275917833257931756380634954096890914567591024981966203302707057624274385899098480449779460403035508716926075839469218424297950415208084048704087058713890597492447151903595747196985399848546545392213009122672569816651600130687825887518740530174807716084313554207851953830306844850542583268880773351380862336273651646971397766586992888752321761802124450561367783250195055332144681638047144779344880742825742003825303393869522538589462714236569305370880563713586393466814556539987702723322038315070258637682974079667677948323556467717592445027519276453099158620078462189778562632293345088371971196703646875960964409055054744407964624878905762413757724649675609891862517681813107301875791312457755253669761007692877422091262907212514553801781347369296427940246763137112590486681709467966221554089875324971841641999342439814825764510265537115451014352176896377802682250671315357952514355424535668976409199553192812442233899566263013248833665030571106113918672627940160787500784387323723539099981483921343160490508221782737023536558083165106874396245593523828676211191527551685453610427471731730717020197812185374977697295378278250763313868361804710122593730071310607917160515669876166668094676992140527625248119906953066447006221429251430249322891907275260250399345078463999855136154548096538569371532602762252166351482865071603280629982774333879655906835275736885794486689654073140591907752251037037486434846771989247606928584839549569865467939536118904838165463315761101918460589733001084535019210818762883064572098001625699086414533154379767108398591953799606813237835362537368111892213879159486807199640588321330358761928983137301301138240485581049351916441813453103666292209013540604837435333705248053553785658531785777081766572858382331580160184881903902050969253552455239056862082686848951482323996928726583546413727140522514171324405306212928921541717557410527928171258307681009850040753766327415132451954949288565559444153638007758881050960606330476647987893803511456025993676877671329768763473647428136475678398832089777595564711847938312073418598756233710041489866245526812480690695632872923944531122721476144178643173509601525758389097123729893787300218535735435757047420768483792428873483274303121311338356770390539053371577838399972703996916260470030629774082593672672064179505738603099557080511884213550269883459204504745257201243530356726837907355469768473959061959867525281130498438871003300437036729395719565416304008432600367479202092831072571952159899086413995862042811850735989935545205797869795396815060717809305274830276409297147811390606887333661039965087447161013801330969061000847406462739658658657559509250099132398921053746143249498564406610103040684334919782210554513074127288947448055086857328133730607969816506566796815870809288219140784347236294101268178876984814043952581682857518513846499946841170141729000844840557173919049628647022908324580530936306148032803257433577918301282361764095744832224816741213905180422761020921087201198488111202219867150460362860173013472974060605367774601659192684987120998529885343369376134003894535009928988957758225290348249641752942583762281549730640411210180298299591749387798052123974752640535406674212593026467415213474714353213821009242682682312283041199250101119206675214116804018474897524242027661682747207274707102129127155585227853766196550213983307983925969009517397484707448451720912104392577487147209454558787331750977102226349943505125473082943703361781105338657092872907807403357639787131645727800458580500434637442426450006351047091180566331801814675941307691899773142728512483042118139577372675279860948241126160992144838345679724672705418229256725311139544100984376019517808253042872208795759826813526454612335237639322436280151360727249869827827052398621611679846096567935598453740518932430115299619641338776686771615882006626526442799328969630188314615344097303010890523224864052107692602868207460429793254412338777076605391732885426834059345830343133146897689328186920384275139830390971909871992719604087363393363444554355999107318232749546311107317198208488146202931100015579647208451817241682120935347207606472313215918002696614995439864200899920147061844081214515734333750846921122134981980463743376748201349873380598655926263910972251076382126646313694846544934702604793599609344548523183214683282822238454976235810045542327686858200437647052281644138954704360637924244171722622900112557587948007366605081438417312807435570743995769173512604789089036796917641870965891980652351209899709373744452849755576121935938845813166237670249897514110875519287045438480980027663528003635852322112172275957395905097511445337165533905009921642368117845799860307503949255248691910807665555079879836241785374090023527462989661153236824707777738093836423240612731423408532209562426920054703077439062786801882970667482430384121728460137402878928906273433185515728523346694319625952670783900298617324247352731908354231946713937174926508531379603349373104508070706610786099363138077233478235570352211453521641721776478243049122340675488349489420522725454725120534344346479415433077025285006805565700159755388230234027200130402942503865492627791527960423537830267320223923915773415650257800895453486490982657343629040142154533700503874270615614954573418320087781448023086186678901141579223145637508486372631449408669386061760073670509148257765604714942937461021591165942458236546539713598667247706406943965913986883635698904480129008882841910178187952166357481514162924599348570388893982439659748734243080730414990891509961351729336450522275441393444320652774060949156432149786092094874414370735588616794700490484175917811039481841835873626183426330735828202305150233356871674478870741717347099272361835052610621913023654876765760981957709882957840424452119974916381884495780531394137790774255206760334655675517815052296023137505835898189335198309438368649427076217725272043354833688974685295792713782794662660179136973690449789661357631997570035849007393345837966883375544739733072534102192218751108458702102603418761721750186565290328019807413454853111006070504581773393686407830545937622969125318837932723735861753403435962690535351403643642936228439175120926923065977775351867890378299462076002505125171458350649081060304489012505026723790761025648299989031604714286918752832693933136249447738116595829363857615874666523371382339363914085644247580259726106603455641178552552810854399705608723428616742311036500585745453443035100435869004771301177207265752547295697338463959938432962591396395258874599639925076243295310964017562617442325158895213439837184137382480136726348544400206767946816252082167742817972684983322368121596585798660313672073083640982815577603783650297776173371491426253618453139292750487209439992348677775607443885172141781197497780096684459124589642661465270203676217017214770167881317005295814425367455881403519233028906512868696471814156469628306944263027114604720256521687905116279115154912739789076822849009992131583073368667034313988715478582157463603089349693378595814127097483707637067628355104122460959107667572091213849475581347332412189313936090061888207603854650914302549369548890062145665551475978549588980602320568448236589346996047793148502049653762327494552943266399954147495786468621802025166450203109604302400094963174229818338152236094657642323082477819334359673513634983335744725394345067725289460087377682737071617180881949456638523315350147662602687968527785804623273247300774954131998614865995471330367382167048286577983142640762652453249054747808419736150925500217948793899470281563332909785300106498839261095574860200585241454409736497248832215153577358321121359704821403509029766484932044619858263454170777192384690328987590110569163521394657089828891709971348135278948996263613733381707142322038590421860104479652356584051275010013092948037794704207755035239885193869805287733520107391016721464138432827863264740399691735406637677430940381416781211607541549036711699699557020423679987356258026475745797639478663985481616898740874887420303112419096890654861066010931052127123661970444564612214393778227809930076378490758165169898422876682124468871000727151340425116391407259751725693708201656962575256295569111965495335187242407239514494270096554599012700843887114398763525249141480164629858430724190585806635841309192256223832567927645620065735002722085321028927258720776140465867613056976588491003352249614379892346926949280629627388200217603623077976371748559478671310944392829578299258062870245888684519387192379141062547035756137537822539525458362246050952862594532222504155090059370005669312624671749489120633932778539631592559459436933332895187894380642005614325938370027276766973820303608549692318402891881904255815529683599097429504503356430811855547319601609958069860369869992161461920139238923089926470063995023894619941699843494023588396226808231925916081699932853907225445539642639654950464402556325757382859257292416789125392501579338158710632035697628576167611717635203089608627537502736192758377730400474460486212228035132801075489381013457946314115455068495071255224354927431443760546750371524735955554777183721970273727972803830756971248205682673892940233028374983500675786175096331217208811089480420580267456366306417698734039396553476695257349652259618153928972765317070823703266395474999427813175295896320945508631836171824960828268334138961134381134217143191957018899004265723331801177215274268518844873094525115238117899277693006368266656103098277956534073061165158436015411334661474284051194132547241913075601535766809072825106288801278044846391115317020528294868390767765011502875718671890324724834955894520847998301512201477172100663248687750896577153114205559306949753170129171540774103538762676759883722781256603738394680937456929049260315741111300759566488314623806491842089321345210385674280618841684006137390193904919547545621215342282500715932106832345698556839274213122808047205955435800701285777254007077079197905170755259985755707075294735273202724882299171854570063660935964627819754596720464213674297952170298559597152091641899449900400278301488173589418577376323345379024629210851251510286611370502758358928586320219890901395865669862716481230754194160212454699773814522686249429707235468347660565028235204169015313014090421085536876395572018034902384480424786960046029345618830672012257891270834710052307111572250790091316194634953264332210547219897683047950397181541249128854218865840074402151326314576088166028280780066647687251073187322563377884351618947657170452460193817877813495031934839169036421821836215674679140758160797959031078996420650050982714105111412770808453802045425315916109881807654769912473114929461945632478611947352493649161492663675031270989583516033714401570577909210023214168191195075844588747061523713025999778808292554487576905384943569779075085368739517444131300674738786228900752121284405306635004527963627331202356281121683059290852757943953187123024221336961022325615987689842433250487183859267685854953002252450055436036183216883722959641559592177692909659078114470705406894784026035897975123274537633680576453455782798155945780915735470485199827104817987113115292681159599208064666819984046570725703000374113467287379502503742573726807186457236092934173232715019099264856745521397848316248768050073787086288324857551133265149147694687964461039449089127171943755270721880097431643716357400110635002757117288106139235891992921029370676632755180796784076826768870763227994910860891978624416704401564879938458302133029125901412007782311571611229808143687307357091010025953549032884175144761278974928667438509476703534691027370160165491851337732557884672084210936075371913405273797969721354311529413474128885629114811392311922552492645430628639036842957862000024548305269699723352097011138890190822424933097888822235116315257091636691865621740379576126222512527148391347716636472497470944206787496823186259148029916680130298026864082085518362509551441267892126881619306809502958672716249126025775461700156076282974024980125044086779293334670633539799387646401765040670542181402519793344154885530946734460145810266401885053590629368088103308504147006495472306824040387835728703402549409648232819155790509831054241445377713653850407862794647198251793044102543480752437175162460536795465286128952530725993287558380051954782530836431983163619576402451845876275663616253131863409541161952883170684773143743188512334697215987905364419847514276907960432110915916443446220254672050824849768204828221750210780006826198126062079106687606477035998568758355482888130123463673474623099183546558233473385356830952707494968954735399616616314408863522318187429804446319841517073235289318067009920766557967127612363624425627133986433040165695626867508322838180321467024838886149425281427433832556138462828252764845336277480460974096790310756015923961523931504514544386392354599550024066092100265525804079561596875448981619265246675866565040931088912042010608624421436793943894825124274700812936274050230879940299495047478606850415922169441136179805500505459355915280713978231006362942411083336401033908120032353386807494088859632778148243320877967727366316310159916552430913303846217135109061690591481369011751598490981695444781910855945637863495256953213438545484818966958009975179367596292224663325957422056713146579704830400613940324761204990636442776696430248274221686890924821734557700454920793510500213253802821611731311683299437505247632092508076463127288563166398044917465446747451880673356085583037839836425733314997419172391418846163084822594896743860636218268592427740898285845318000732635254849848832626402012895038120027624066030165561769041265932262627788813468190297295410072446693817002073025316673179491885242699222983328673595918609592325090134553506374446829594168874907602726039372772877755992779833603926053286473992268779789878300933002455479688597800119304876351515907875102451166560764167188213816752885139996138490473299713990665226569310927760771835237966176466874795763879205191921389363516122507701445261046133328878943447486134177090754381640912388498587527437156743739002626087268601248367161953361487267614900596497309671937980818581751752673778571980285597149334218089977539032407156865198148241082337356049494736657357172090635004347751362387211722942161757812218767671405395464826349985874535764744908692126247794347238638341328349365835714774461614427151527509850631238771448483097928001187992753718468559781755982272035174471718730519995948534935664137334609693641411420490962207637535209476355009568886611652832090022396236212441727130531131061523286377642754762724813814815020554643341803704031589854498360683375069324488684621575628231082924903499404073245632280083452465929475760377269176421543041635120885452738895396626010419802535906576508660737252803952420702488300171002282329750325373273666177539585341185922474841583159620670061906301339716957890537900583309607560944652370957829199918621511049901141385166356035893250461186729449725580148708828422979927569835918896829344362078788634159671070061698308958104534024842010421131705330456025367016408404395257173811168071332466128167550922739083707198978330638459854330522149380234847008704520046148718126181356371833470802747186085993098476710754926173155373511037499509954223130273892290739170528465953626314544579017192042526613305932116511020406467948483628142108089786445546777209607281813037317795112630678646978307071291721348515092341205268952606419946069285157860696685847799327866035994356166052863589592428215074048014985964023527105031864391387516186946334433390844664633594378303364482437360464575339931377255202098092279825482821224421190279462898831314361029635371487007795441615227722388741897382570577362823636042599743847888433304193442458734312626565536642075976588896045967579473705805106520906226427068471246498522748990667060902745292476012755530032133596433659380666862658810323872710855969196303608020313938689635035646925564357605017086709993820147957605233443617885156550073232285266617801734448436222390534303552774469962507681289768327933617808687455812299639027105608820621070266475503555960110610783185741810903071616068243967803278795561416208257996197191204113533068943825696484646451582945311080729764879883213920306331193979799932374790371356814840192839111256425390965178786409883679561481168962483534985829431272507451994398761925549007423880974032675208603596666207025751652371031881571928368773621070231378942114031461395016835926912922180074880275098623427116439468089155470695188997848432418103354052922732417466410882751488493574692350136094017914134357119772763498967682047805057096624023081713442190569472442614662354791797429141551476543854016905642889477613755179949821319995392477349072806643120139051328992785149509121358754665720406176325898886846254523235781784428349956271502105245688185972813064302011030881602859856209768636808256010231559750789737973049949273798408425301334461049568410705120359791535943867588419508632067176196853798512044054785017723067587784894843699582769948493076550273748631156075902794334401141316070362531032029239993486452132976643224073671093985291198766025444308487438020847908835754456993935030940928976931930520497813481325780514156456602924621916194000136834252924256642927138023470208838472962947792531478826813208583409744374222239228776148239425781114315994472092665113242443067278822942490088546212849171804541610599426924946764790583481263173118660129031154358656761118272263330989623229298398138661516178172727587436741909358594440176421340933794871855021964084488401668125228820187146139146565355217833507341304872060740697100646194052802269935413773646317767141693633369225648274093615660825289744695390828748488685646131013692710322899539847148828853889348259119055990561265642710267448016506625338521312935924284253373662203487866959930783403472872642505757701794630383370328996915687911097423794805339061590494506438595997192364575087910443521414790412305024741445254707781307590011199210590309681539360257581716069265809627135269881463691276159666724108735862660594938888034549434225844977183201676283169368847785422572932171485029257281296098394609652815514657138880720688975417835057771358549392498966753348362315302046593106239169636032191647592477997064700814652661499572388088987418275982893175175488334268093646929089135212267654234220074188011404347563347475647385884998031781669094446268193427173275040730778666077890208277189645525803374689241405252749955716986714933977770493787147770143412853592797164097796621754153726639436058425651190544790003044831448345874053952998791818641946137352076467559954970838352152125675142661407478839338420494791494424321128264309558003990861994229516652814700659985140263849103221573999033483622267867832347390831941952601374644323093203011543358538874834916035865638924041573820949565540396158384574785264660383863121956515074513343822358611902477200303248722962967582084315859591035709291648161079637601637822875521966921900081582572034868850822656297385249320856797545196684585149334873303424862886038077975299522999551637387293752469347747697554489765035530566342078781889683734797433789154409135487798429195654222361036960562975575040018651103776673597806307679624888586043556264751439137369229290399006719940180669674046386910959413155705478721215278448761337685611156340873543003381528616324223367962316171722813374798959270650070974356064285123979297864691888218872908019764572459903537032668992650415033986931760716985676173385653206909405548878016383894780899610894586247913405761145874798227152874641036062201634291959562958626742723859878906699498866477576235364410517649713938029556458171702881101203451610572208059112428685093345164785624664391680762184268110353452383171801364473190392533633275639526054154439793941561422974514183900164375762877006327721367265031426331844673548816906907167862908889428991594855599311736976384197117709530350753409907406013946714905399094378870092585321000843559055796665056150798919108998960472973909063377047094326761792998245579954892116810752404142907726360982344444450375998396896288176344679845917705124267405522778847207575056877170198788452333289602347961104627441007670411257860154472919589018180142992101468563151442953639601409838907936885876157091363345344727310534919368582089362362700615832137470171919837879099565190009601912613744295683584414043319049690934401001146643178943044287377519411897351605775524041101956129161720863154943882782410625088111139508974259282303079403055742247665374003244012728519799567812117850263882044398108672945822371080926302924980627766757927646904540978479199211102749991871939440898938297971846262019803332033167967927271661832514526327544717288274553359799040218985037328626292209620089905216486695037399654564420731705900197379288050054853465673011491907589127962373825843386938256271469143122009185453270950104585655695880759795267991141758333622250904624782632299743632522243166920481469501994780293532353613962680302566259218511388950321041011979710958721669643687390387939287792100428994021688503703540431005073010891970958390154604260611489037373898839688964584435940005254310321749656764451120782207650053663850461065739030572745709925601693828211852492936661133693890575203494259565722505685052079885320693773259040607034519606460451512658843397574347580570888259030341591255107787100949271953036891340034157678970453551038752478087628065281615494603601557338822666009724631048976822408171115102077365067593641288001011342546516966448533953864606019021736454139788550332310661816618298915668250225339511500403453182771947554323216798003281423249344557165860402491348939449849984703425569520866163793908267497409524337948507146802083938177199546258591376459718516859038677013629072631610853288512565255521949312331902478732387812127127436252482515821097261049655723797816102686186578837085702051954292529100499641727937036982353792269487380463594357259788659310931514365908184870309492653467675820493285524691921856278141458447950170035361411664914949681392649068150041370637244709623160524100367742842512175716159202069553621827676894527011490368612280550784401694327842866350366957025586025405183068583505238362446206865668327997308697654863256505675253140874971741692921133340138427517624416152498755588140320871159653909064481396776354600799544684005069042845173436632833337868281004179879271121187719293736659858143729171837042064976566759094517656281585302129020385133390287462971694286944634498293951552808130023423739928596126561236752899600183728237679721060962251006759373379499070014920747764236305162641516900799294178766323630823185698351303473673723954885617440498887554552502481985922677122029329508395486943087049863734432460789262170774961997033963752344560063993759373505504116570345782863888772960199518835005664456631040090770440875616403093339796787350982979725322044921653034081153858803517697748819377498306281407932265266418301454543193804359490128562026563898125064095162247140294689876954972733568056996024794706582018922942426507278538702564884999539707676175873080765018575516110004968827526119000420033769043283386511732585192889239292305611753927606747101299109339629519638211352145270232152285389507644303432240191124104440701729549373923569150333189939001510715587901527681242108881827250269900644139002362257098922945152067294431949671568481951921964150603666475783126980669342550508376366619398869366189039153108187611232306082355646967681333941968823956944881909484738451926154834290776535295464847701891894228216448263158314443996822679655458899497691619009713555367885821556129753415383252318281123099528716923814306139266265533434365257105824954289535776693574799061871220044307590277526326228345299397289203660463983063704526496852729190160562834758548494611916501563317715509382809407868904966318185701942389216579677132549363736349672975558667836183969829433467715339679535123740934374250371477285900445453455229867874483855662597620290701216601862901692300595818990933746114995487631983385618445726523650152854798367662899118265434549799348081027440464372111162348575786463363527331672732109641929410612625059515238050301663788048977359606164117627673667953647015133370680111246940202418781861474253098762986832118733802926153514855573717874262709096954087769640491987152612054342040333523931488577432460780133161504050827041243344705084083911029052901555449720154692006820239015240295160157506414976891372054291698568998557306077075152145640326009465952318852192044132230208498739804151564284907241202216213895367922287689034412472647106676154524983632107570799636188609131072380412666358022850597510653927618702762744999593336695287063871549892121691364634023724810344210802305399811239385536465608127014924832256866872911447995272231021220435570816550400765032434436451844091851337231882493113581491617059231180919169735710168192146408189014143986125792944302781047059339918890248151462825486074825430794465296985871759935140756812668929349262157722765711014032252659316315097702855114213157085334095882840386653709443628662060460549779908927072788251678339954409706858809117865575801878500646113011460413341610812806176650187447014690730860369810644360931861095692833345525145872220337879437506842361655074356717500637186266970082076975245500375256435551272579724743353474225938227409906306977330109283456222364439493999676564159392237242664023259816398105273607840857995962610398025998168618063634720402529611529777027400632810656070627370769371338431208221364453533756750645287440588809402376857773533745283759359971506327741103624772186568129107131933184864012545028503978593666609081657411716564769228401348682328062638214653318268154511627454907214405860776897268071471478395630037154047296750564362469963230410215309383254566967704743065234653610598315398628831520104854066931264729751859625285840551717539487463906730071088590037142307773116137256479991382783298683243681201113192489147661505211669542615088007643153545781350341971653453346859951636469359721759467529638159720828136922176891207771065442219564457698191227449573872010935604994642336329996487261106042070981139152074255131991568028273373160185472906032265900672289048624062901449799100216311340198475487338103656725988508845889727700221372548863650852468588174890420004011505714475504259488143102036811383074937550902680989944057783760555024265007388964596724244288166479605900743706793977812187828817344259744444228394016386414866995231615300894712683712214855520823481461578638810158942637295208731798486076877604610641727979947797359174240047862561478384135411161233311752594702551400654531829499566159889248138541499644368503393819500109294417472766882702067512678768575705074398203734665744618674741857065492857289944983836496120868619940989620799104982110476002249816762182432703902925958362049588910278225445068879545698110835460512181271401962348460431113499742224858743715381842504208703045308280055525701494742981844100985120512891545969011970188261863904640856832682279354504535714406437289065560089845016562508556064368298454402695739488748517429356632323429836430092772403530813307906647584090728660996534574217123661383835611526429959762511904043845656287029143505817085291487070719938198924644305254845085107284242605185035455500379855342956829592961670153267244893790763074889046979853971297324329832782235028691760206740874471890835096567648401748808771048860605166639293289871190638457156517188100392071751921511172057894248242358604009876400156616273146026121587138833820188607348367922527049369681456866062210363144380434867105049802136206292769061508800397439195150010572146873825905460007106951672406955917037120157493472441551224607323125766913232960641005164094108219057611983370953804061909884521214454173641056049906886668420819170476285164960430410397871708940891645365306208950736880316799658936541693705628884901685036779247859255838297584695272621811438495871150886027992183095227305422008328349543086088744082549326476161790263822887758157184143592318088952709942682310680448994283105885851158049133196201520872769818547493854378838022770949385586753024042816111979723182896780300639111478982216803564026420195622520561942502931282939174410430332758094305714020265182054651203297952618516488506458007284073204238012085627839526242221032481106176601233497862708890102319834637013580119823158220391403712977959849815102253864120144702171896555771867652856779780653461150152194188101117864027599208201034953626709419989083974151798580802254731195443872457600182662307013590720491045783943437101187675746985032069560300028568777539730570253962843730021606981808811701475708155366325956650866478655113520863649839367724202480505959307389245279194242976978291389438117895055599391644468328822481864207611418203599726435934969450424411133504034387901648831349452248339523739859162395292978256870336163862693478319654666728281453036752504258351055667051970613392765003637321105529839982256147363507073974895327859227848043179267944856892662037162877256228851066670674436805535042194312297229978541603397251178354748928775422021076465001499758853536810002433294140344974938868376861169779246857910394812999267786198473345047599353208733050001057384456762571690652580410318735130738162488260349750681592810685130896824219459935800460613364451333988055218578280195258573701248194504347300925217508295238657096299208014223075461494040410755643992931995418880045068149423396687586003886342350899611602253072862051893065112120145731657142767744497654538051560650801072903697538800762306810508863064567635316199037701624840564737654285296028389578805235452827311320441379020169243024832144886284941014354158500775213707461271718196796283189705254538357779651856562771233361100029773289103278262187100583246927938020159894822904035382423711214477570221400466847953818128272052357061088763369933066785659966527733719497322337797454684844897279332555654345739938736181908942038996916435032816155370984736854085976263338481537253073156363499921179172400648013256714684065414064788832933529902517384934248311634909931931410443001702100869642016237474967039370675569755926667536409953956406923299011528103753219389090753425236444691859448367357170007029810841152674443561434698166596736929146787619700330833408327652689715089137035382759026835234555563170587441162437971705479758094291417367905513259685080961262216833585959517134307807288069861047919375229737026212689406847893200087419131303232558341103427568569732884992165144408482501473569171288817485151220734822870412389723886025433021829860937619367284144869838563865516645124544067803023049876346414966625545424736502501982785484146840741154280468391962199218287427722592789032659231775381129271560886376395081577955784609415393123766302445079874356316596270523447188454682579127257319345525544542251542224055326188353169716860215942981709392869718243479258131809822940981030827144275562681924152718992779642562328234800954748745017738356628110034032410820322643437226835820796745190472055608627057789407465539485186202135321357603948062035169484098621733246897322351706084383486387442260153817079548089395641920753011774393266710061460300411041779251879651732523564349744277873629382954639038318637297936720107244391726886432673856460321662492374150073823598192614096565362761275462930612386575234547780838782641496230125596993533070277691176773652918067242288124873945866293767644523636523823147196719510508990988980231416236619829307130522351878778278470533497376975268134169210702816742435467869433041733706692735420412422474013672573700213401382976317666909403448734657292986684838654482173846111970689644752690066738693678697751040812829111017338523724507321285101725305081547035525174915818615757292117291801839187979272931775575305053903435151027526047923084734621228242521511333758656962420158633446272982967386649596919992251310056204174247722051769744251926014028519111888663106473230236536884101104391457321099303492409234469062385710673015785540631378004781531631623761781350407587229796800341218000707986011394099118163885804796078544022806031823519908768208759911181768893860489506027445421634516812940555007503558672331770042327744629004573102584274032129850265150507562015717115912894976419182366506524940384187193597896407839668715831717723291964545393633719612809691905671393384854287207555643624922407017285634255577714430508562223185073491579226194829962176692609259426478618842778927816830645198359419295476799779117062824091217491847533024987812393605209278074932385431291343234014083102836569254280896652487074600752925449527022126956039369683880695535001795217533074666323798691915592320531170305638077520944367093027947574218599022812792792922885699062901866446555965988392943542245004161126761616760835893170190436038694155183261337487310449992936108866994580340816653293272372855441296653547396820047764152106950572057545435171603207640940078208920054387240071642135962789997263833644330898055538901911975850074000693537313479806383977001119368008466658370748837236874549309733260968572633332490927046571824326693743257353899376772201564344646869268064080331305586104171900731111412477519812076139885456757066979914304635916788094038781406058944849950880251359266875089525943794938377858898695582190780869656059673138350806761487333212611751757936258928538912765613795735639686373616513131520457728635599195978750813743492379657878805015987348821535143439002126913271321928169243967476324154126246109112956118430720379733775811508173882889877008700255167211633737639340723460540570915401180115559753875844309836660622056341885604311704848810619346065880748598347979798261310115652753651884998367098964015583577298171088257114946470619006388650360007167907383106558431359490432499987829808563212059471264555452768308641832403533689428710526958820997405033531119529305416672014207674302673618281380846090238934344548341224035552285690592707106200822201067110337622572773921441332594586421481706411357732946565652214826416617672132119654648871348393040669874932911785995105867544302003935366647678188553693749648843641967368365527232249869687487681101745416756487058326589416901697675886107351781289795996514466235770282890069399159688198150445397452483799042657210213724774233922662273530833901574372779096803137339033504398843411804104067530872395396882924844145745443059840798336985591594531067477114495728625370075480131069761697175208770983840824112672163429037735401526584906537930108330102525683440698411754908905973294360432044073970997926473184377957849491693576093663456499802722094202260394895253363979419168830076595214501449063402546318834760299155487710000326103030900905913951225195343984935923601155783141309405136541372715462842236493790296477832896023298427458061450668300781365663788851771785708227851285662758303613151418349410492692128302928191793101985935799789755589205813784474014767731364686992598161001379560441270210833057393333034532963287748840200656861370596906291236412694226951667425691131791281452202539690027043030546086917519125112491357244494536942969714569124584061630794117040710432743068809267622229405633508500117818148033278706406276466474597030757779079179863188932854485709031442925041407988826827994042254180397289047336130783660769011547946494944636417458416846745791468017915933021027661565286180861370180904158387461822378204012499612422036926026810598463209452309057231541942404708735686163721706807086444840915984456561099452971089269996359803516386480766836910345287433099887512476090054543385281375613578775662317521807911933774463725188387887467345103215300822119775727713645481127524387139215168810751719761105819797549603919297805679502483216266412629830450306517267871625018118338343832833468609502815416055338261645599537353931835554553386590689113815858201692943482768027837861563970251354682504027273130899028414221453642904757376940153296857967783552943432002943053694093108138337630613567730409421390917524086853641231083635919317721240988563000014385858949541723473826317730972946150312386509722812383057524523657394344422994332948829362215886723095897224282713759089360732413849086749140506823795032522005060273779715975763527171551290162014684947142382644991634543983804341395600571309654973968168118301861657182584032444272901906466963488173514631570337767165662033750597390538184795564178114010835436019530950470586457155731296501180221873770845527207725298612157773409291721765446099751144169351283313494517818097169696738670325462349666957896117030785151037251814389271253400755884984989318241944446509571017668817769170427785255460083376038953043600702013050109728418996733897577106108841642243689211634412499462940275977237401295113632426381705988121025700457680878817344771070900989827270322074295122862906375199898603082811641986056492998771252210171668070510851952725296951520876212049182808245811978204287146361175996470264533007688560603153538499737785829785212563209200242094760219442470625588858490710863421483503438942711692249228124176773625725018764147880984638121723062745897388516736298166306625720524903936960021320091017851945479906557441992333953358045901183667928701387641510545368624561478653705016407349623106967457245409543564329433569284095101767301265497043484108647828077100832260846510934391787498513725504732655251904751054901326554830345073433961541192756831291707748252210254272439226785821285603709309056746502726770707227181836387272854892423929590314126780453663222011658667262033541924804864715286233471416898426529975989170057159120490870645129179906321744589382645519289636514369829674587555738682274935993270158210650453179886664160784969904688673615902874334701841559860593003583388565166185536294911528311352581683465343720819184826636791744047662040367107639042528105630539361447609068966392789267440782982594170412298865500329884499036726943111497059981730567077103219492377661460691831834774588818302670584774736640007521246742340993826690057941769284626972403976743719960180545793871289066917785098951202587530313833101856712759856572316567173301153006454637766200308130512595866230317801438680958129424698664035468628109671126679797638916863079046139992856753666498113101357772154150386961996954203217672196335402613116053726197064058542168591741178287781954528745744511510705580444401040063422828562672275347742079752662142940485745078725586620255445394015058516345356385820784023047342477393599053405992324366332948559042902070764873434136292593321559706595480035304770090031646036879163094158933534279068222903357692371235491419551046186739706690078916978158609816926827197450293502441186255053197810485798658737005478866564167413057747078549477952748878055243431913583810522678690960217597606990259019740093064414129330971596803186872779363035866483364194061738539698003458674671912334050966140803799732000595708941632140956068369224836094478894082699809168962703638857241075227604052116790413249262341788903024056381054750151611824938870202016274151937047381021820321859322429935349014051355317813691258580667779775480229711433786429178408828410812646535103555376248289781490489757552322384467823422414269860631459499874788453131603612876734035775382676631996669915145635532730677014994734207971938420909766327173445093087312626050197954801543867317797396861737370320482462416722744172192942297133925073314006352611067350626372884518124321053503962340039010569187969738571382276216945337558193589151470874307485944720742266509246626262043976768429010809714547844872224077223035780273032358223522070703731783250463760257546201765071790919356572872923529313646713638254050283171643805656206051092722480680543591220221183372190631182625641806142549914649323975959274803347897900231181668508452363590850440878368212627596848307835714502577039704799017314624959823179442645720751874840727337010752754068458284113106939390200582547157294164465476660800677305243787083220585768783395479432258094923690053272696354805738650256480260147744324281965052303259507427126783960376050920825243521824968909502371605233044122520800671299180679661465497709905951056051749342424129430629619425508708531262741047290263721588769101948635829819204085798685765650705769300938649454020373089788019190186720380239525773290502590899182995646507430022134534980782562240697312150837904533192018873315967229153884965575632411459052355338469368919632070580381858687684655005751618662839589180985406361732360068205378752335247527577792101319013535143174127420683208291707902274462373296668662727558252755025482620864540512366906122381306345926354943655289231508769005556897985674036465817231716397575186791271769492782686769318903703877396635896896471836133492497618724289022683455803313359722477039492946155459227536125251603706663971324339259378500270240194320627077467137143817406453635945820149534057203482412817666869376514201293747224572452754938948764295516073886515328045848809806342194181054186963146545494442733101920122769456190308202422470858246435256386131473679869716573895844819629058517264180814557842256088415657035439076604541147917292561596477561162754533536879170931288086019856675525700313811401425973510286636146472890855464406507181390399065647760821892084799441541140783161508858225447322318585309924598461171121672726875370324031180094607057783649894676878259171189306962559643908909391804128785731974225902555512265767061762809637064451754344835695979244844369461305869688871943432409702780926141329251391730748168628350379922371679740885662928864711914814677956280970575453084380363544202149787339436843760159278086417988163056584559013791996055484663330813720269643670364156359097057411947521176429680795398801073320225759597097237743425603315615873553609683680441288377559372515041506022402710692078352391491112052727106088194998019338676692220761144291851037373853966934632089911475132058526713751931424683261221197518048920971732235751386832435497748160640111690926440318574251413780788328727699740099553663002227476735071190158033021925903358194155798872551726164207769808980112949069275437194211275595244408751867188988253683333080924435421286152131850471915655790595977593984268212826504633317035689083475165212363924138021510847060545439306831557531858910129137168309309367021433904455073372432400508193058208077773276919671154024200712010130376045127490656753870135856988225277653002095084950934106538235981198722083353745597573708435327624963701157094383561156390355954976416541781372988155581157998473535300838393788721633267694589999168240156204415926452346110052713664086369595206682982978371079327463578398477695206030073092378295068067597090863211929396647912254591951720396121987271373197548386087847361286950273843480050097648147896370914958094667356832372619170428257154402658895753145770448165612644607129527171095703776988604393664350397404888375365220424781665197840754924922197227580384350539794160427976605133533570538423441082891314211622909426779763149868545208799782322985178069877844875362392738886364782369638063924638848108296032776521901481493432817704106541248535575886638607368336189903878775616016492224088394358683175375989966446106384625078697199696649647018065363918119100716072381330945123333278654130434439545393058717313668066938392149538126190546704267107615233899413417848136461985393288850141321302529668368955655392708451944458237670182554808258782507085510904047146169031595456175268210338397362551621277300932437526603941589112093751672201547483066072685035805194979036603381307416384937367539385337984007825979487486869254414270396840628008103691982679570370424449082453067182121389491859408009812514069737211764004957017842597826008249190449365745758219066884634034444363034658280543757345283560487425127304677522014285746179831755425802932065530523729771444064192456772727818346319089402486735742815380058202129858052005797399315434982548673382857818486457854449874305881518875175156207899322907344777750564630225869585172145484502259938677370015846960718740817918527700183390528119332779538764915182889558754744058177441164776913611469585613733073996445536917304834207513310143240903309376887280752057736785391206902158874373760520488817940548279956860693732320934450038506927637562894738893696691558845246820103752210993295485965313870074484029377585220151829846870343752243992506818134521078060605019254628336914632281130994889626944218616260697227440855978399717526031255286473806202648045774116912961566776321764486869853050171035392286221982114451431342196041883794954520193748312182566141654081799629754077852092771541674140105791627053107177271053376750489149918939240289091280471473094449354468249173819734097040709220216289962121137055887461045332801844829298067471838378546077293432506527935154772824157984181163499843555414136448274181826426338308185000547547425287677756143071980409105120217181533787859362799863356100876318939791208263486058989881698072019652506135088309811734906275370628813098586677281776519544252106251298797632240406047708927075674609239606810405606938548108259308357976582000293270932551729398862323679995895691930974168081914833624217034604795192365230959556891237335457118675992673074214314503196198418978251299924450461985264759783382824748954387236431729677130021658348049265764018283362560340301060727150505248439205250493201907072001426620596569444529791394721845342748497808829670023930913610582792630160789561728139294051612770965106133882675172707752434022864057515026779458187196458414173855252632581271828374272748451474030090868317202569221698346197388324759333347652835724111725527716886171074055279776383696132243691625136160060176421398605144426028169070213081689090400911135305113424763521707760064332543549265340885884545405972306849903159368369517427813873899330456030663630317592092643562952602127449778689640987867696261225413301455370888823451206102741761909809452762850461282149160712258575626364655678448727713951649258831820610761435786798268569096031997422000355603288443678220927051028011388723110971116146794564005278981136365580198719972093549144113777736590849513696016006151390898436279295867645900813391194193343269721144897915554654936415337877086760175250109962532083119697443020259833005038568996106543781716984053342550467791258756912987200997895020542839730079960493890174823123253597346584230028214725824200162453950976535676728721609873711242028442059156690059347029822922737969723573068638418012222056655663396841484287668653732777936019907014842829547015781940424566066225659437872629230124543506898755546038803185385877452096862351480362198677478229480079996037450456649208924148263742241175120163496481309788938005328415933699183943858426045345107039455088528010611098082877337383364421901328013564454420487962703766520594531855217402151414255533359623841341371798434887482398605074590200541888125866899743558618712257446238211388752627511504122946942083404376727240919414895775874058726591478339955696744065425467492037403477197686425903123065143770944454843863893242754877684825659352466057844325702573475830656590566624473374423364533469766822983342595568118830735263979772450173087387633287613938810236390632459245454549128661330807497821533274111577509622210816359900227299496865895462603266811474499423722291833000010319863671257268258758550346565312902482708160884323657476144111319419175279175639445758844213082157049106035947931666269685846714314900590553823170315658244297725071347664038389305560674862995947616112906606734135993640201751085598910976271110714211919378249936654646480509379659548497131474575139036394181669943381131627462184063911309781039271659855665202703634207869888002072953846859888102486462616991728160303687512219252755064170805139583345778041409913337927231464283939548015491903452337446878308520078731348838814305438980144969463858020248644300170956706049100780142842837592492879614777431459136419794721680004567809018927177541941328680555943496650245170542443506038566115526875019428157413122539558152057824276491534769217738380022208908018852515777696385709438240242644914407987422090694027412314643422987722496212898841774415111730257966919190959684506745383528463719957071264612335151199131801343305110863903337010275513994051143853694290139725740670311566765842812646441671335364250205085127164995200655303060502423075958203115336367040510036105039962072877683306165189916388702913113728162149070478102147486512560543000086750429956010582414579989266667182669154280925519879858203542496964397211586855975017687759248808090212034287380801915705599863688381271872210268348451736746952402701884532471901554773020452614539888834181607032133587525105030885810098102294541165410824135614490367037860618110193930509201037393764338523096234810394003884700040824577934674787776005308321793139479743549283646289901734885913916986649558160160663961756068886207244918538777943657657836936726181642239979546592437057166585261340523276931736098526525169971491273935789909786120372939010510331436514117877438856624354569815692366884103211247436387734679531519171715023475250406171576778806217527744736795272033480279689418490530440200209395630680846112053708444171943303714697272722086125850845828342620717670046776316293303497808527178641574195466593861070646911373192282209909670372253917824244229378533405312925193356423064187158776532429613455385737873994685485386263888865653920554362556683757073523625946139760627608708097370853722792578849851355478273169599698463275478246308193207716833608652087780005340739317161341877683704260833271297418651573264541115806722407808740870252297444153461505115093707478239713531387641826076643741143418035952758684028998986273468249073030896886910449093382125521166432195979502477502650943711958815334749497183875357198184771743963473217011307130544355814914100376114920422063442555918079331910748259413147703726320331481858031668107459867132185781591452152495216510941109436248659666527773016118783048677662615213238645007800785021212300654733660137802292776297148285483008553582051775606261315182652067031647210225244962928260210069014243446897961786625820636646003212697092725445686243164292145107352837905398111304856882133939720463755716802154736449175299914118023251242922169371480914484602958917606191432013398891218366696422292435555840047172771098676714840501167278478477388076125019945232992922438977841855656362285527066527017538756345517367197641859936978368763908694337112221726039515934265428843326232088883698056687111217152707395404088528491896334539761790597234414058415232603716033176840431214820201659588638509481872745812456272217653500141999723501450241261055108751886133412840219391737364949982482196241288473796020482929590207508352938722786640043520858191275550132252720655775439626238887402251172151921554477694180705876789313742079200379882579813839611035672431285460709082544663710109333247667708402550823647570496828416709714380106368040177894134165406875348773575231880286801658436964258391994632302146924891768915111857027646231942145862466458974255786418130022096872033524611245455433022813865921201417599014130547625304671886671811195505701376804672685412731316263176820175659135249495782639823581732641251059346202260926962599502953180363352061285638265367758145336653766166832719174826052056671856772125742751133151328150547005128973494471611483929098216422130448221668898459261001061305387709411703519077604191107698760569403004343793505119839584584754561492729876674633186312073795468039285884889390533313545984339093201289084422320418674671992454826346391707508817907094664918173095527244344478557521690300374974168316435204282038440687570577035557341695495764500026413867840936024275540194612229430228981368595734824467013667819296470352380798723775482361996901926691665278642762597961351914574393999223122779840452618791049050001091201854130247171568989614760919766195134456597333152869645858331034657858986432056311178898531372441162812820227331599383500045944893355308514101945179681235206529852730434564150301568205782467766529142962602279537703004991041877033477064291826707811923994155954520756345161236265400522587995853380471489400450382560594712018286506914568375046327335134891180457823744689648456639185299332152654409463908865988309697084360292688978379733737352263515290294563091049208927418650373200480616919109073175715049180457058451584139534987689629225569203629175094298740734233116578972690313841061008945573479284071079896257909847832092071417282684708407458523493674724934517963292110397175611454674989930930100537718738586961138124374246993016393691635582328259894031942417701295135702426298995666861211251232272474463669895373089139539407943504846162280778784676038837311437028780737460903799944137104775667113037026978583276210690869788932693792575768503989832054285676187679307574615362516939655700934144054440845573308931298433087532006043438914767773497808215488808787175434475259127229177439158624432841296402888429441694815848669217616388998985192971771700887018785450545191339011831113028514752749143587317954436270345796706287270178369079708294820595344259481906077483168178404888095535594130651283005685978675213221414872673307953775312312737649797027911795584035008156032070235260688538321932606615229888297989619266672917459457311718068860832989240674691401084580872332460429437422562972042949903794951876304471380377557426809206464175711788883177495509621331027902264419431943995839044076306794060352760400234666294991211179568761510523607245839732120554582080576081075522357887455587690264420562380730286156740255176518218527544672802986947230360317277437680537920797886864742724498842000569329763903789069142839852785195351641571989090352546863647266914373188043371432742639110997807256677759254959185122708002239106444817273218722075988581616436338610240325690706597158548367177166787955292419330103076481377118402472524137126870492916398933425047263455552815700104315901741445293709532963304402300200106587913934379478513064161023334053299090481673171263803822768682313121137107533794720436719183535868205141753562065365591876486036875012834240831354122796999950563375491772386865271457161099708202608262480851832836440586047070931465087782708524049226834882939026568422811264620774673685427447105072583133607679221532128760902952851103203737087768875816314508510256399804720701215055905827461820184300636876638836973264270043056613702184217169788204388369631029334371488562254642196810399726554023730364216858968080700600263454333076827962922103495054374027611078882458948881354020123368037286631162397251356244655584242967799512325457754437256152914107462281033155462753642508743583161332322059878243879337291446244720958196306631493264689351528389269178361758609514618433693940350439889498532030695463082032215338266657213118815743864114902305179752732760890765020134926474556415778492472753360369219810656782670010927541872985367893257791125497090088326728396397178390856282118130015718490749002708902398622554970019841386971588078460483536051129125873268019405220083448531968931482056163151536536880573105204996152074937527029499995001708267515324975578766766535431052492910163723747855159391793058145760750078572520369952423521930556321319508788291145039747458323263080086730958757980696277877107902813860107964157427889508344882873762663077185209549031327632398821278089925265511483310635298821242316181912604994708048811464167543262116836901071119522396446883262748664643021774472330154267083191900817862019214504962192197109892372853285650532796096769572453525230776350210287153881168001072010867377262807494944917481556083835375825846903139262550598946000902206182832019952594890343293426073825531666262798934758319056896359991020264409287784126050868661773864682735648767233876756837490970717870817062069984497732789873704425762017210539415725883193149841712951627506164001749867547809985689834552604309161717093134600187947593955696581047602838013938125477288187689366303987336909200977158075358938538462488760508800798410904988857207898467967941032536703072943458233208736385085203268037138891339380284125483644269769056934083395517363186591710849435751851157152846530010772107088003194434720967653549127858083009831767937349934075837386614454825317319490217514309002268503792062365209036416023470373870062455434181463781968111018956715126440127422149653436169042788391411532063797425663301896086550556008092269557607588604610497518874016644507133060120255494421262481968737204089888143246616953290465183422616638613326289540786553327944979566180577444569849708473235657411277548893015305699913055400402057030655590939344747802971990959695532775020869947366040920601467804736244909683838808373974416530419616790566731589097274000096611593187560562265959328818044136647719399438310665794202756472259058971224388694150410121026676303712854797724282668103469954460505791727252903739382692242508828190264427612605418582125924036318092209086742047482767428972420960559475491215401184541009942009382264274823720125579502053050560604460850542285149713510525397102983132602283029915197785575759384254173475012064976306479410030859940190392150976133013948302840028648984362823287488455133974508152793460005929051424051526981043009201201364323650330712478557022782545913675544420333855286982703525828560182573637279332671053222400180786430079034796817105758802870446666148935363187017526485048036983310742678198633892601761402015673905684040670223569660922035653772923092288125101630776503641203063716897496647433081625190546674032730159952289643467565011588746205728913553941105463122617421833486554442542090592120068303338872467968946963587025640127651896138842127294173986654215378593255373285738051451559721276971084028098131879218426685122625315495239040303107196650214641910760292521404712206754297603885816344859240306334097412792991400008719326930159651924728235655114160666945341545959581644122973371267683973937582866149318065095540977812328724871073531025362130267525626920688143150696375143322752618605084699773395581404939434716782284256119518055004224629180654756932596344709096566625246639727774675382240171589505419030429623244137641299527901004816066274950848834310378086693189958169942859177886447825514608057149163413137922087211894085937988170646817334447727122607974392108810214679032408652610890526645249153430282410998182113405097792602280960187014772219133986716705163907716552176077579638995401719647580675477984239796799658845214800125431565046678059570353388030274640575549137327647921993411852004399479722763173053404744909396063892003707938836850606127714244591570929850631984834647367454697884456243675662470981278483758423493757934138338355906004836081749906932361602959614974453250554988009942549046536526587827157919270559503822469632668493915261696723106404235475703917951935177021976170312663737325963670374737811711973291313792123151563152272118915509522720408606901513502485900221036388347047542774903904489795369690091884209739913442876355051638046780338418502358236071763375739964534915319870546414002584560456923645136582856698277548616596352366603806178932835556127428858769429122976495725167895651676035811691746011736779561859594280431251325943090445176151360832510449697900166079036932326125198575265492224712940726832302539336823185829398936003841781869936101895482596580052919563488533542336854582831729039215978869774618648883926416743396300832003051376524731645565953081618448089287354985093842003934494036299286016098132851603198392176991767228346668171055838637449533978799763200911065383142414693007320675025784446907498429209707166035686071901186869587794492293588298323579404565755598040218461068778454563974268403529731655228629146592461122576354558899015714425573883052443167243275884415615993167847339572323341971431773258693778933935521696391244943021954471164813215597587559170835201290063882955458618815377088361287437852816891808056780384762995793073092475494117215590754504589745722246503446175357648481707589398076248255992856284315693002953586807052781509862328104124676694307983142599232631571774274891091779826160415443673258816231055740382042071949692405812967377173152087363866363209294013309885803621198243949062367098664425216627569572609612123375925172101092444040271358778281018183170024118144701282660704997760833216809759523859834029228452012250586760165003051307345840199489994593237848379284673806844777502216019984204382693417801997385110603927135077372046522925879399926327569840985432495987461642569294362093981858349839771866518223866444922570702868336422057974436081557301751274643662531389949509037451571708632156282763402075018438322907002884034299979932747317050176712941976217626581097135180100610744470948692183395979423380179229102960947321899462254766653837984516322052084454289797225528688152855680445368283730001818483087620846243109723346893836734245401837143967922033662746296743327290850780756431865254002346308696647053374212189197011542971199483856820505810806263229752191268017523397226105535315108467836121843587302460007072469953262184354980470322861916014140927322441618143027804817477362365170293102272605905008546324456504490108448309106535920232692193348867776012372349024012807733622223303560369371052917933161187800513360811984965706165759856030277362291577846466007565230923597524181749254960415350162511914209806595203982415682799702974169659991077208489694674434207295927471637152632077065089355416957076328314192507554372858071794624753615355352241902686922159549154070478467012502894234513710545080881568374003905349199786467097300478334451060810195372644013067049509689163201706756851419091697263289892674289850297271748138517252009676627030225682689240512875463620147992758627614691423337413201039538241792594037797487612503211206952160529316039998452698038457373581621174873011840091585779977110523655629251244883031101628800889651405622124495439714892477946488611980455808592218786606762253601947099686489411800039493689318259608662487368350417214807823464244288131984451950798210270829601959494439004017546427648237649303416292538224214402074437694988097216555518709394013531646033939722238309648231087955336527232230245028804089852559903695436933342373200428818783755134408428628467923047526749416430136487687657495330029864236150313673885508899212744211878376764688187925867394644979312404616822348166883357312677290455414035192292859218070169910186556034007532479603386354679871080338342598669752734525422120548419665241612956794729905536272209958510849960790245924962575209841389935854394339504850682865381849787013084590435648752465637701543509548986769038768412549411325546193762172124500746570662617680271999887846594273605591559420479381375063300632291460612624163401900462006909414944168173589317604828596419931008306856829274737935440762418448679572051534626342144492562173674916546509332593657560500533058947216720072618798186512759693293738457336210093122055994098740671165040467862494993476925385690836761868196987662165474815363292947135855218461157673307048264274479995442809214735304032197883406742094587466183630244036929465115257686238040306620587358336063282514281323495237047920496308081333943532878675464270543327862094280791132969660657215994838596562195169058161969790488779631860542929273222118932916414662942547620049084442122845718505756581662158043289106082038414208377667512238961307771658261598510217157087670148126702421924939671954548563714138745086175440536710457155867996229031531293762000179238568316435709444884452247046713534782761690489061244465464807542884401270855717456030223886367133859618156296121238157303532129996328623689997747746653644640878874273779466431583647733913542633695332126180772736724683509663244668397917277505078236947733370006459260171262331344694036724315120069671773998601413163150801173163176587487667039817605623124871272882631496478483296911590880708067667760087056065764553933658878044372773124118277048151807048569653528707969702702999647658762980205262771646306646988322818664620988973302834039975670853738365309854742821525736545225133670878338213984385439937840295622104074025772163865775486205904337128423618594258358073703670429107747671632938322181804707578972898625568364366216288078964108857424168318054907767002946684282248290243815999540792421958729028647253293962730080026944476686110654590711965424821457913405066893690709782583759590344597929401506222653946381177483475151055317149516276936129827384795088753317258482692060029900020982538173717825565601195207074032307013616783506373730151218503720701656856594451835618565700202884557864951388551134600757661033501541191606474385078526706031341659897795927629428339290696281183500242088934064733872568515806850208849012694320959401008267205150488809772803298413331984216344069068551195347163905513676309425979792075195097841873187258918770044082173322794407148522732325290060991354388993179108853086894756203895630855060844963111128453918745065193277896490211706957302982592556669854442531841131663407961983071555498710012589930359516010973974360766305231227376522370950298944254974647804933382299890059843215878786908083593599797226915623847781176943505114907272328718850620469432540605605679206994051099373147420098271565936569725401376143934103399963489747495368052020397851399695711639968414859178943475352134530013039180735587029228302634952994836594278862059821330533123638683089066710132940089021765651941337082221235460373941136131144220639704907481599535240620306491383569615742585589253277882745595864573912088546851119807713386950961191413096670651656346633458987863950753889412152533208555921337663065356737673805337513270897196062891947703639185127587508391289220834743913153272429893822238243461811977570938546082644317208554962469661984384783067864072078771220114955275331914069167404485818011678178171636598133032584782787224499894033585917876528242461108035345501088900611897483293263436408804266012163050668513327766922223733900950269208861930758926787519411514516610056957842722734950221899621715173061583136160198784605045535293014785815643966520457604957791096917594571426166478240887961590433158416758453827791984489852427327320526221590522330794018715245662228894048032636093536645742544993070869077609053500674391899774090054714784511621375213439515762415381205797929765518046623351957111078060471938342121809172912459627814147675228725620353333114432489750997207214898040668348336054538804176050698439862097602718990876554274799746796897715451436812597150630371313653013061262975199489714071428266367635440537034145119186632474078904445591737742318611869780160151223401459925024802326146308634950521158543276956421103099050831583480327199491749379372448837518812459534191416772469384499982798575875644294981720927309795758030923673586039269313451590644548185919553986616243709653209613304235850978887237050806689859346800944869951150403407415754311323139634922881676952444496476397640967128458489971048494929882603566950035021367107528688245724817754020734901346579693317363334019677324533861144554224665675217731393703914759961854752727626021925865105196014848853487199159800195600261143447119620651202479253223328731228964742916351180366185063237139106167062196183140567010602682841983584560597981084959333412568782785535676197834536010084326439928119121191807172596913923145129468024370205776927841585986342765224278023502664266902912878950406950843959767092849931974624791475771235300797429909702645990126055317406007634881989879804377156793271490230585183205973297837349509738940457262542231560123692287979702197170262650285771669968427767645215335508810085160116317351999538780085526212767413871350904036245579440443424493253245652405387174188015902192296475803365310092318207104073748387042047897945889044661592584286226909690839915057342857329061487124334282489559987346874809969243600537082982274127019449493308735233479050700971307332198552853405824762752446197758305522342145383439269061126920068801836336509698177420330394980948179557751346605122802705145117212485551471250210580903572632002727955745141366173905832321631193116693593952611149641986524122223182880400233295060799466738054868795420529624113061424481872585581904415552030831823847438892109450499279136787724337482701639337388845061084619784253901934244355854884352976035974350468400576820782026898922856964257598844899682346034033157258744600991209135020691518898618640593327574157161053670612335502806256498422954921700156184607543490688593682402158967798311594598139411424762107324087276199432795126693000969905698790751093565281723877114437468188804233019059272105566353164914813195947943458556856899483672168854962702024379973623484287471059943121181976916920552805708332897206553203127781652752096812282701801236594999964658979779243051774440762266161831737155974272000807786413423623286613401634225331726577613647570884303125863988427730719324489820671147378768739922342939784804030143086622155265779033862001926986553283547063354296724960243373844334228568345895437304283955620640261244338403698774180423748736869723204196162703623684304962889375061565333572359723981125141381322294985713985075107063750758940186342817280975798823466584634495591884275006792705470133973223027038256252198891033970530553486045781363690957232906437039750929099359393629902889541934309110260467515989315166314106187293897331799822707960282052157030319769855872212589826631028432010164883742251188149313095187367875375465756440520003345491974762520281799486124144721288724895471460637966264761962245568551433371436970874737013176721504158999232269417762846305599490759287492089804441385474913024823965914051462936209405224870058151254884521393342268445072516581543945537036146225489040700128284265384661145544290947533249204428580562983204542804942828893479130948725462327483119284212539267649305067148408487037905147264135949847975476564255941082611129523605777007440915201308333858507243632423072887563469211764381529693437094827334822776480472185697509236087156753668436200686496030369209035321653654604153846867164518149396925861202449155598119980235277694105908950671999025555064492754014636627864811495692498884360629243155585016083697569798634189379273621944974756081281446464092037494351812287247197028626519978372169041228386473747902840962024033921223092516735189625687634368072325515076803103257475254201151519702530333808002288798819735600813180098483998238826406347572554886116859399659133290612158279438034991602316603625364213011052685828316388963958502783662210633401578732141088868555653407757170555180524759967871904753639440520922747791391549689376744161243708475757564024868115112874982011763460252112147459834602277495668920099755980563980074325601963514057701229147040425249566832871456449541865917052137338950776658597160748142002337664879646080097218842177590802512292135177057381702438746634212410065479767182209259102407174401753230411500332537180964122664352885598678955550647291733058645869009127755776574631706015714161190470730935990992539343283516485134659421616171902152996416219763959573871006271652302166514545066713305900543151729128079692314648259919084313241117689116935650630402284934230889771765662662841183607426346043995459883607238806334640768225662191841676533881063814529095100823392714625423675689849691932234077709348752471587148491457514596006352464071274597065922173275115523796111821939108341771626558032050633665754968494903196762674326933465420983191090551635559583749767854953918832676667370927005722756311276152020936637892507361577350127306039660744593358867405229097849858319160480563129652931083793301228800267219423906166328009704363470671125637639712207191881728737664876948766947558251440014164978872011490376008826277622713742932456074012236673335283761945450632701420930357931062394384147801489615884241100908737346086627157775760489914795861390181318968627112799218884346673223642117991711829807158585223443853012982346986072318277146218551379228314738570993961885613215709921247598252133497915244816227783466571003193451514352813593406083966994393711876270490557683459072159793638201502181497786050674597519511403030162353128664551697558666229747277309714027492637216908516504506527361407815210112963977820260085554795111283375784173070994051971611781725239104378421574913887040719246409223132099771570225290182528908497898120871681785215865796069248139774480935881905576131410943445536202667557702487185195695982306784236648422409974628268409253294031254791014864091070735675819502595494230329849718849605601102416327854078573249605358069111510707444507085654393738150574087005790407075999941856647018002489742680588863687143060425599933348789344970997438683177261228059158312239759422747697779990931270409065291789326677873430730509595817185809690403602938618145841063971420147498718234718226910225188519524281611474150540244315724360567090156624286065146486062120685652182856217113941950367534905348422296436745588935783471837239644502449911716681889412100773697013374692284001699825631979077239896034034069053480138535821890550960565833832353446756862786566532226989533736164706011663996271299851794641134509508188022217556941966442647409782983377682357961110721004617239117957550594904552501734858657524176300968604044456398846532187391125395197563042563677016143155885789858151007664783736801874462727849266508135698919463864285473006556099710493552105729756284244670816164091782380905398683198384739395754486941621840753233424817759149923979348024197832258197661767613175756728688716449217380032395870804454371150000790636591053605013877411836525480399019026689447945114088446677345841589571489340140385226802057958629391978570933104141534281023066898506589877723153271681409771581798588300216282502681697803301673736563668635582664043564119899690860653346137374717909385987544969927028868878513063316367931643067777605095198952673201977450862104414779427140710823592706379585434217681383602861429664260248137283911655607591268142505754752748407255017875220619861771123662629289483865965981272489514929944570213193378275132004081162075729259687511311773102118203357663428868506778342812300500964890530828720037209231528132054103179047642783313514005369928054802905837190880091917153716345737147468102153259680393896014761103923141721336359502221532030715490280154845148090525446581103423906358420970620878987636683282740622246829260413273672814071307883106775690329829734155424624410827483669856300113479301395035599778224928405605763035064089342690670990989970269795927866564996632576755942194611544544668845415708654435825820217513982028649843106935838755746362548946518984351161696465995825632288252227979473180755767578565700174459751495532116804217195274733292540503856283571745141951248734772029959130719865537594257589738863937280724982445627179870724538475386715740297015713912138322683222733631531052736143662552327754605611195943732487232408895083348526174165877194481953026371042590770336142307498730325707402429880216980275222778927499742674989501363573699552470062219393558080195818370838543042996664587024838025489994233256450645971878197026472822715563341422939883397506024076293943729308586089716646486272277309784273587002531734159451977248356984511186974157528625391248620078135241474908197764933664165568191968348649005182917742583067156223311122917083015732560305722564020823512989235434260910672558284706393668255164689571773806048240211799781465386830229053444237523901367467625597132147367257741337622034419219448999630418771567435547642044408068673750948000602344845458876396359382526315135853021447169763303874051458070886957545313919148545665724661921233405414042136537920052663573745374640938895646309523164149987385792625926132844080301721003648823515381270276138281588788969227377637850778692691840365456152918904292716578154379153465738519387716231796586866234158392064217122164643138705452760437190489726962341311806797002297075802592492994241079777194027885304765050758039569892015054275888828557686933555410688485714036947807254675438516346928776945036663785828576995606987451087062748566079981202089125754863194913514458656868518397992174881462103742397511841836097082268209379108861970450023536697176529423132735516266856975318826380031707890351386312845918454408614632142051125589823210154267972856585795567076803675544888266900292053634082313825742218446786071700426892132419564568718805702716028861714302517676773798965133557467618963910565114407985228244608676588722136906502434399184749578215002846147458246136551692404211098730654598397120513287214401193449642431610670875604814721397155787823776588660017755838420033385045351713489944804228784892498559215865243655719507288550574441916288593095075827296291741226959351923414800920204079706851641651571058318100373649762789535483084159947887734906056470923961171277614308311244269275857413770964812504960118540249722216070266714030360805396872916263843197255997380911129734929890004570744619758371429709277225535124142471705731129248154379669465512681159771612986822003960367838026846350816722826226705149214747139034907119428911704180280119773702494107850120812867331918904006679431638392505402612321990925865415094452102231928397852479653163270127172876747441346916197829000512122413753253659941860912458825313410967778005109245701230198939054856052015378978462329746482953508107166889349690894660652129994865667049010488816390851380663893725131833857203201083418332947286166461110635522429135261654569065698479946747195302487220593455593603545118741317771908536199758350396128984837380265129193148108660516599830659028862999819461326177868025319477177845723571963428260834339103829838237199854821901275057809215501872004926969737574792984145051627485633961206081870597002277296521347598375340565590132366400333445608077669850853816964962932453395695722333636451154252445578422384812064731347985949009953065228308274822484641503544163995394505017874833704134116428428836512372819402287307166452727577345229094439503427693498410543665017837392201746441432162583966796835593256296689825334367478927561017808160094419222136303936012844733787613797785622028902615670268569869463126647226683537953069318945239131581059172623285779932113444336312023432792326416303603568421018246980683840393729978273269729165236613726734852731554960803611590276245203207237381887184276282262172659590571212125767013160379389266586149736455794514091548753982690588122725267529899939960040090810082900092178377492209681142646338675690215304654042548897847847597829859410104451012933546819413437699493571825348257321840535529642614261412886747688025255450245184828805032949557568994977139446231070226272885972361952480595591088463524028034813219378742548110280635883739962796397994688375857513897125078474966580349036978480737528089050553084960428780655014762449025086392418673729979756246800643779810377827742579873388481691546402299939696793888710197268938468743357975530403765953138841167513818913920523118758311353691042520687385156294714906984243693634206932764825151413844011971768502953570995339908147601703218015317576211739887776521001755030587866900394248849822182663615458170389534609143048529180816752184010694296789195559372014423729553816914912514185415531645496097363712153273284068427100378057018367549146602343057270702730232873673806764666141185934279833446886275403825261158517141719734896020458867143406762706905658683298947267458320115224480579535718487042622675729959578187678910887894215541291116590823518407510598540066855573229765129769243437794194893186480800797858494896493142428502137036367121012207740945816398148805787453794014841649034362199804515879434434628027745760805114148564643118087759370612937815820021508869628194928913783314991943797430843155666207743685879065755096809197101638558405913506848695989404782874108034795535792049336187014136019926893757986357684480321241720826648231922297796583914006903353311668871027505845657498770057655718888337893757710128291777057446244699998063851563636322985735014357048804160795648081779822235231768010048230833855818321627960477960438509021962693653462669147502630764060497004044857826872774732495705477673418620859587750154979167540101708005558668971984845534060091690497522319632871069349072937696071056290677320675221745901413934395728183365277796670499755506889600583037352288748037952823910561092125671080849210847554707630870228068074857887122466844252698014382271259553699485778657152946565451273415578427057361400163950041208167406239301143349689641547850801096493818598238300450185894481863053735582400991156408039348686715924624136499661796046039196477713198377048292325073626136698138156707468047252728443305763575553249428581790562223033767145154913632517867559997131008651442521393586709346752249780712297426664732645416742931722306776584164975230448754153027855487944982528116019415000925039584500986499526194053344347051871265847859480566197882935819181773325096694576642813124257306778901673788405159880234618345352304423022021797909054002732229943671315972062689691695970697874101498794710091610746799564369379804437358431740496824748012093434352366597472202646739937837879732873979374668003761783047335708044719415992342735033657918253898388246106960657529912072312325966351010350132312630892846002624773849166228710192149856234454340750205750207594321590477261058266426634239170045562022063555326603020264349911255246579222967874352363147272930607394092516293543722680502762638271052716953312940600800036666593234329006547715437577918776062704042277860540529238800242957958964056610932770184292653803409911174968393144743138660316914305874944628374635207095006281153195371851899912633457645810965880689173462278995059597060187139999284829896510668857980485332156590637593358956057750755641919541101212183917024688777681569668453614385748451065093759089783917949413678652626095495984360328737583240857926304992577223908883725340310086702020796325520586046186779829408573759590187291112888772051748940220332335041159369436386494418057135477786673473010694224677305687997590597261242214511982706588722200792773424771101588259763645860062460100713566361927900843688967503133784330970328408476137448961586720605787432122604473160164816548635596356258670885279680218539011341703253031753014931106532255548247327364648696778659738785861860993763457506575252512271301962228151979332485401491915484811998480874601008730426342704447270957649153190063642896331895187863621566334261078534203325581230141221519662275408818623704142924059494415965395162662838152900233208639577511875939760176696582916321752429060314928761127094484694024816063302755046636909537255177189948585511280734825600032023565570486712316101025872902876506515398799302310573545080950398976213826906952377694189466940017145790830803047737613971758028788206557671414211321633528146701536953052923898558416149058895171207927995509942617630389421084562830167923833180395326201774650265747742589759281599645835400369221021252415887030569752720845218835540636421350714250034506688098014500865710636187749553771823178994326931783149629749567681724412379553565049844947123387301121778454633128596525502364826223634687550716516659178529275724836987285536628276164663683641552667579716986959272833401583971338783684041447312878224940075534040602861101187841467217045631818457850034469076752441598387933969021749406708623351450353067300921447585688129666207373454206924502943158045350186935622127270181452450659159940321337923828637536077682619085317539952275410274988639283695299420923477397519461795053242802066915291318673346620654392495938187524683914095380561413824239081347484199326300086615943593677107649613362150767538959108603170177450156614454823367332791504839137197265297910617642312078382196540796937618304308597950592229352187291389769789922454937750169967596041148461818817880305501020937633724313822207204886591336184297966998134453852327213855753049014890469392710448329937443708787328361584463731659005707990962221492119570699208491242784523316733034905823089724196562093186000068349721712149851498720331677785283917891226445095966884285312835195184502097372392749382318661496994149289517235539225338263043485117019545369171247871736868868449213568266919058645134470703045366003851924435603369273742575012833381443901734118266545198546522995245420239027171268487365598032497402860804743339751986813561428268454829671944803165410911249531336249955109585434032452154895453816111845603803070075947909911213468169182933754840116152950393530114773041735633820897728544118035042201575001652510365389814929888790935600607074295791585346009158476769922893023176224942892830668848912981551584930364286526858961237191336346631681114461971544905653727578662605876723110710605060274326642758126466542408415249186014285953372146049426873867406037359138279311016184550816579515822862698416539547766956950569700705138629499671598809520774231133886471875176797605251945376442932898590490454837896801035837632357978721714189855754304224063147714496844287810678467801507621134393701534577051496050839643215611505742694158819347161965204308517934248148490338518353068110149069614607026287382054919604098768751718553468992990874429824869847038317609547320276476697911834437415303970817773938437119586556714977920228349989899901469935342518901196946954658885342540068786486324071860989933026636191433688068746940921393479986099615587317620066151306181366226973242163604747148181829579158333225150885487306890905911522086685375632617857039133288869707555532715954660332700198501287942861370027509062032512956182528077399320271812047893462773431810207350734498735707042721261967555867812338509261236909267926681211732655346403407317166830697560200999800684960439766112364757283272900306088905957210805411759485757123531050808214683213522191967073965259247923552336268798494150016233958613385247700848640595470641330922331607913781791090581247416712750193289934740896944630428366020149229395020174045783517015813834852866872513480700042365690102830022338127926635103478346901555046101148722461393324922408784652281055959508915115103003514660172225814288620742198411866394833385194532783572300491726061398510959356635362846011863353972623572232818538933650070594723813200227977108279388886095579167304293889967730229258111600695324158204680860400914046744083428726924238039644621199000003218699562612712592415906416126617510104158835730940049619733700718872223058418838447637843337498914093346829388870338869263617891314977928973588934234723527600667162485696189007690558469780709387026147396215414704999165186620258957320594069485505726882183432771190126796198482890352238584167136107793454405008635351592389495228808321618488609303744999323585206783958780232050101580692418577769258836681517956516890439155026328852292883259895341106633349847381846728851099907498697156188673273275484350877152104423376679720891872596776819782145878607115359259322297399355709070660475257302319065229801961450215942066461833524080547893669056636093877197882140815990757319366254857672821469404741604163846725874470363282125057877456943914776298284468590019120743787412145814666673450866132603988172091669289504060144028065230867093713583992085116178943952322271941319907315968766462347801902476341997516941253496559579542444193201854057464534343282290168564234216087417341851865486035678307642069904135968353573578464792438690613278467125041607013350228777940805999864821883785073440081893151325923707181977494315442414290995565495350794958124728687306734758255717209202362857142340863581510926116052904557314843663655627076054478052399776996752925432342857460631218639655260456850004668513965972119210457607206247337428221947593562394067554409327173513384083340093800676903092886039399952724198070099075104635843563868051143813750207729726986625183102876144192898991401854260232629627319242051155621665265536556013545361398508066670073670719794936177795592662031852892705243143796704748906326827888906162629300532755978812576595154360895418626802423195618177830232984942798006785249506366689890973535335179534108462990257934223961869730848190399126574405274925723776324281386373338497999622042898867951507517639521253273556592640223014963687076403967412372276996890565060551546176395223120205786287039942359643224134424091243869819084049388558168435885373920146862497682914015608929120330377809491211498650233120690937803902884238428109625707876227340249016066839476852274141558965575772311691040416554252457362413154568452555978073330347772143878441829892896335714192090325501951602871110879081577468375080495298070899327815804767079105672016763738893444612896749836016552174891521307715705485668031620616770083529276196697959847989933700633780398852363735370802240527193889846776788257706430714134919276180723714157209645783632705786548311232764100386501945194761989720735388562457038629809809251989154199477882028922231859717744074286396054939347381994845405133226834774599999377604434599196439422660280575627409272651019730328589823825468500002891644435581782151588040093021330665674136789069087695896509248711959063747412026238891140459343565140821910742873566987938059056237237864097224184834464198058750823855072967421584607972468112730802600495382974457456317964046850773074005423974486776084343227457132569789980000089601694884166238365600982500241766097594532471995165113050991298595584880257145637502501766094828512532656552796984458179541097614735758085029453150035574598304756706490230795424826504859965952120397849196700273679892756757815324284641571362228385974097457085060831585054883359676528780591071147229055286756831196806476424970987849020736017550226066945964316637649362790444328602356311657964606898053121630682778609526342994920150562119371627286231870497750418707943864575103591445302977156756672093106406729670873747578926587699452863828084299074358448828331760777891487312995862496978636826852460977966266381827994773168079913541040594154581518253340417083025519239053072740707024737936143055048225278893599025629621050047156099303044610977653916780382201657728839696104662415410065945735130837504721185997191433635815834076212974291047541651321844028149457679711640566721756929685394929754154798418585857966169890722828406809539962391996781968346173757090503596225466555190181908538238864426678144286958197247646770204073664449987546107606923633226089763745887509614923676034233200506921919520243783527950265847379270181518307770737590407104106920041336834722897453843789400734983767061344100132806797142950648039977118502079484801671669336616690435230984520061069371486168822202781705484512057770018427185112611705793984057885501596350744553610012900902523913461806618505282661430924231948996970596639767636738117500266244417189349030719034095066432277649559563426844029220358597880809980876628363045263465552544249518712114038245541488704555257016286172396935019473491113529386261781785603841883929814427641340179335166166700238958242467811284812739436106189934459367452318271342257976763632891294639268931166011519918820334710921124378980777545395410206351387455097219622135727124456257854975569259518075579408380830341877435908362959424503906281971074172633799709865958086863727171082667843619049819611758822673277146353602677433539411635936135010689453985246358261759448397620266724546711020053464401501401978247954823788100809855945106178238885717060643348790731737561727542067734317715919718218289462646505625553635372854182081714146844001115789607361983025028810007370898196511536316227100173897821164142848115510553055603895215544521631802473589549817383149646205574668398029150640248802086334257647526151005556994082518186459331132858849724612141017880046681751423541580492412668974962710081241298840640642156867778450463904923263109310923420881135816630111492833594934847305936138642226596457160976170685441703198416753662306511134339415819560650979793719230543162630728529476380621531650928989109031062308898080516103479080204070341513047266404126568900254612092998194402126358941264204553450931150876716175717759027157768434724637371689505531946242590681001470872322158453531221131292733000556737321237995387813935618888553239833073095129080649117844856739183248707850875731361399089820407228411914698740027452384619969412792674569304657101785172996346872749337493267285908125380412808810253383762552007874097588944914952424043442328297485941395760882527404310572025298281450370239827968963616561404914524481599343186834546000637865952032210101016976538777526243265050143623143842847533450309198504819450419598737557329901641836268930970046507424112324828633050440678390122823111839549177503150310893328594615522708872327506556535701529843819817293221968248171356852121029441268157392865465202636353492923453563012121080072902198089929537690192363741888689422359802546681261099196730672391555996697784537944708253350742533169730958092600942412586135294889581025014603142565581422252719719969826702084436887958166103584635412378176797743197598698259677648023174870482465086146779615028940432916966750865435538564571185186172572539065812593767414168098821212165069847130734435855396912193203416952898686097895050550891589864730312824480939166356987708875721179702980128836735965591039660189961303678513952804595900369239548216079752879134234930827134767515663231454535481146530227096990375790515741725779766674200693517932055576292059725484698368382070247722267302018300297435150004848048957263560957883011476733921844853262062886194647816177497785397660964899636379129075772192968331367827254616333342829288573308769488416319794109072822658650045055872095158670111082624239915155009090381214632193659512450742354852965071513426138377542197141465273424353890322299066521660316108130953730160251534403579745647880470443992192395525331742682623046880609735016535371260633397618502241389826942972735451178903806923522804544675825991252782566146233911782742854821961899984363920512832978884379426468089999259982199245134250974148759293360613427969598908189964294102935739089017255417735272475823649250001988623062754206357047706738290649380546647378926778751700728635303086104682560533552703586026535933373758389035685815969046463773375791654425672227970016163744019954382078121252388240551285797953618693081352447283778223946299309863768331138979324761759048028860056666354975061828010966075109682708196957320945095325651756134670495494483658285903008924663255645943473453161120390533807138573950721642014329065232321747938672480889180574280698993240216168700889972568351168582616649180116311076986051048467692463595227094536305540380537735141864498151781603069960100920613872056672247915446104379279543795325710859341810421822926639615281721047892206302554635508422444615628588632430708782735255207964789532290378628244636483519094942454288323430554936096266925808213415730962216179395889947080446095133837431584759580632051617461657330428958954362288756112844402266633443240601761283919700889890927022207508279494810120334022819276303863292751446790303292164786076576186357323176858094378051185795522582853306507764333771929223166067433389731174817123385926519250704588066308734113007950780730989576658689706497171812434424255802762099870116816129171829230304096222359405977705341889018320395597381714676794763708559715860145428046857847295636084240148846561966317729662755279931997201393279164527993670102360878439106108109607167295162421216606089293359008145040204072974717070570369411213810645382962465566102391389370106929783188188131564741485700713260946462341132170320548639673077558121308819960351870502218322171708456363829065817044464944772874761354742367402251319658081218672093556694949338807887131653366087243784001702268423418218333952988253813511507400291506887925097527835768383562003934504228165623178755981935261964968455989120023057616055276561337997103155401620547536483817497996707367970043420249169234734985584805072111366170355286183945477629582339334164725153742698113198777508336377101861715777666748900067272706904185169124792767925567182060080423149248196475721615555664870436208750355639771079235279652908059698751559966231855637024896616970341833600922676281906517299444595711799445754215180071342034659473665571433326546384863651518912964165001747819622562967255968524744217038503095774708027138530427350191475044542914155174796406018106420206666525773456766901750162151188439365213038422555561370205001233908416739949681589101698799293462490300463520869219724745871383541135416614849941215191724848228131180586651634959396489511297305601501442097808729221597335891610111430190434131340290470262067869689079960483205685615317841939497206387377274826179124711071301119184572744010529773594094389270562845176900817912912966254588163607553276059320698646637918464170230535658602401219316537978575957582568227227015984341677732284322741777087523240324128570753635408638195932945249618537774707224665402441516493497720140088026294662692489372257555877733193641226995068726603834620677833233410128630304507644464675523003304483738954442569374587223733315308621473263233994440178530439011016571567910787856779710819607343565524967283548445298609251683040349993761588885530272691142063259565680742860460473595048796193094228153266431295451488933014572525541143410397744162887354669412106420559025474584702924828388889170414467542150423046370523166481644826280244660316807707993086421791010715504558600900001546155706128905898848390532758045432038080708818020379582076027136616280534465910457533429922079550322387901686036677482674108811499386651221925828941748835611036533118359813030544500773032159711565415413501540449936588135461891926646201801093354047733108611924231722042483489111817862571697043856220797652461427087178270028629622671167928629002856352235465597432028635646690758376585806725010222967748252739332609724575697006040980858707615831188208477228774779900156117705177393529612733031282231784223702266825983748405269127979543281890446810268571998094218282656884192922743837818234193561327255753018166997895053621582193519926949044547499478796147209673473828681948111051723623860579906400412229827894186667589728423017757534094185698022905855684884571606614115905554752132685262165415217396405208165359857122200559834250976758043000124087317345250038794523486054819527402802197408751478127313509684935803722032128398564997778380977088076400953801823431812196505637807665006956238542547716572568358088097659668655556038713163700714125742822231466406373836114317366600159830191509213387978931711742879187212496367513508515629245844911368556562367056026333054674621749397230446352185883810341813188321274781673046725354958037953743027624906626067950107967692932352623207725621565930697997956402426128367446080183898747915268203282355313064804634957179727581481932754420075188435985547312986779289023114873746975396550020543854841940240261617948488398399454869159273146699769692054750316200064459198069374927009544620996335667665925922205933002049345438130262330974812298696963449228368012926866707351618265002003170133066839787615138943061057339592722525268741829209026538058660949480168678677643129056287496573909343479405902935256818842885696241988683720200363349940217667094609080194533805124297473773299365341921342018297846988404616246651178672498617633352075093339289079721618813527848125324278463145038323257686485560692990169178128722523710148101820725056847807045517264243030639194086510008540401774451990556513321271051780098444825035167616265486360036222473789177270543695480975403978710265957981813581852876288920462774565895276896638540468766532364853869339407610402505908709071200316276611154508647532931981295817147781763021325233014056792349199996033385888415073037016128103931798162052385580416974725095207826131372018054193319199620872677506728047590929255037487488924505863035379373924917690220193418868613921873204412234321612395869686706206129285134354146918660416863607249385231398933504522515361788249877784405993709513547099247770688971911770023091871440934077827654656456363188550821535333004484041592100421185318943976952315322054715910626604141286164892927483730769278663334995811548197345331698519366979979387133173199548610997448708495004636305523902196563882211201512171238960260212114909688171530532416125653933091658627481734187462548686677015127128655135825023695802511034029804617490073027446200455308373934085590891456259307078454135393809772425953514677512737848570656335793117108320016021544160675345283734571509301175592857173008576019593973618739703739866153827793436513707421596764145391712216857876596633299370955910308338225513071092177255202161657891970421957559923743365533995026976282258891701034878474904661224930601572844357469606644700957078088445833481959686706688531485365735479876636599052925901298239264057159843656104610596590792502920739453749052884402016143015049834751403030335114813996584162024728875648759099650009475628227461941175909121349458167606745315557812413345014818635656501519710850254864425937573125946205033821539279753150119113766381190805753050609550158825867734410779733060232805901067849367258863471272234886703752216118282531467411507889172101127182942565584540457800016542004579432235778978356424610607565157554811453060735182535301755778474866967350848508504346786401325210639378299454982214332983623763415014254952727846426827122688080042566130504281494607453806855094148370188408075124331367786118182865430803023183132867035234524037457000520846369637669281851686912368045449250678835005851275961557663755237766633706794511751968011154259858802314250536422456219376266750976166494495619308148047285473987834663030157615180186102279328855130425569516605282955890314284299450329534552862956707195613150469760144529996675051700595191246983470942473761624874883856930930612552775808116627244041101678654342006677491744195823324072387687583192637958040113043725618150630954859986428284152416340061177410284966328028807123672639640537321808537670453022701911769221496092393087768097332818645238913419762498412669843931500529364141508065077898754329574978641696186373572750392282672875201140369590489582654517116679574754935745877389609780558095853680515982528406512851279403903780804096709489971590606338744745097002387170836303841441119783609755283412045336649895979181533459460953696963074206513886880693579354341463162224567143879329870317318497617760865281161788316543485558331764269010629751085202955912316642408083306959661584945082379587418331655195502959100260535095518182787072763705444940209096518594245443704446339373075894842001443366813361786376057966491628442929068676616479364040119647413697055529759728765829632198646479313316962581358101423232135906785485910899157879847911060415489371103025151444054403651353165052119247822713305833978866322986598307790267499478892446776660874906442135553362910566979503323375596599333905544628331586451411277260655715709032752752656990523179036095545636789950179624067726812922949623571728033471640074433830592227401686607446573354335687662892280545568916179175918781200633043225982740627335116426449484314699745390001358026040584966682295903784221478294930851879673994859106710622462866282349779773162476933568931834058792757472556593558228357296140797825229576163506367500887348220340288377283762250106316911223484799005025741455276460064562526611704603935055795986799140900152495714322190332247504838910250725730599230328151809483118496115818041208492894023562905921006517987897157181035887980918701720998133889595563596279716386907864237477186671369075608966678006909100322625177092807668842520494552598707602046723847319060929518073849339651288189531965901654441031505098980481841533558445016074595286069252241952536940432647673001357119644122688996868400950350797852473673259089314960070967288072870322691947660834644362002768134267766543880489762227647620769804778105556617476687199020105352371507160147180923615196191703283024839647639481893106701356857065210959416132314019860568619045340056534461576102355940737011051482760868915164893778232958563031298693391961946589488280209243638205095222848776446520423867141923538010789059929475311420522969872456758614793477872213806528750206259255336453605119705159779440668467962586113767853262405618888619444989536815614286548579752947167856966948612760245411140174416654844109613720924774914319170551923599882820119233312993715799202246165718063932383561190767394859336453181565925532099023986696944942813214774549273628688656701322006951825120158217033588246496724564238419962474713586584971031964516411056271680068055037660682358482080642799060285802576815373634519071640657980442009265579689643424029214489454107582304190013193488237669655402605450241852365468266193544804468475687076410349193938509900389385598584816970757362748718872161272751582461201795489929782676717419433436563595521300675147704737953710541870092322014870610853033773841721047032399964681506679048077218101636793845755529493402134279441441246377631164338806181759115967205726043495006234573892424769527353284261114254659945812468743046688112277174918971065621963344116384242892455488980515361238910836681485546273253540899281191014092224367535612132231354052774913697669002726531242728532217034595610097010252211707735567189225326655351684653626717419451085115075408848890413242527049348509546058578140295539022197040467804731882163850806785919589893267569861111559475512515889160603081050123008318322727113511990161999503137765077992015984759109127437504661514252066860303007254671225874328653978769413043187932401856222799741025977294854089083132306061001789786835584992274100006874689742553192549571345730893868817341038694093048265640520652041905142421934460860265874177657687488233007747087345106509484468871063474298470522507642420106999068307063484973539008224635426247714325358137042874525142167933605064454754253733180022200420528753653974365353706078330831332080872663531683643981280307272060318608367899460024439741276128494613465714932285435098090080644721427885851149995869882663138447531469107896344116750976822057126613543722673288838951217609745427105397474935690672762158304814941632407213759639453042686958686092287426621489026073849046954395686074793977547785650905298577910692873595371090242751377663961279838326278749472115037053674251679811133693684650990206749293775555120564164569353648122307234310521502276080065624280266194852063749975135790264642086781541499812722055042965199656697830928041979248854253158205235652955440167115527375247803115217450486538039227961534104855024415399876898945264889768509567550015253769234251944726720346227319938644111435599108005613023137150215548926828458832089557640423092868028887629196654140863107366248315088893050875755104613270718713311926387342567000595904815987609047591706746474981277437467712314703190079928252488218059507524768557292476058323470920080348828558610234980687415857165997307637465644654042227209725218551145700623278006529358260496839253099186719470212552432208823806609228484696117458841178916106014294151112702854590317119242543310305276152554336808878546780400124293990571977179606253850074485619378462123833960028071074044278560769581893936219342408852243312334255105538465584465901873599970915834278800043068940122312199447941100531495699967379223942705301791168540924053832436679340229304144911448751130294325327690773523477138291246831357081248479693822924342571080898638938227150057440900216925685368078864652670683162566435149885585581614872955458828481273107628969597016403833141119440460217549431561444014202484110203950881769648744228066452976166019206257974852581407568651576330656638118269473928899758288239166734941644656219665682921466562491918134468063968649267053866534278217680513463901722746125182577022251727143709633917592842846895463620043380580712070655895903853439582023436818459242544974015440638921429154173621871702228532536918635834684092041328693763932749962781871937405860884499381097875363702077461649257793861278342682159557070070659318560526713831024923248258671193733314125545089102410522456074242703785395224451032385080125803980541591881533174564333963438858905663121678246054689785660795470339401009781626804080215013570202751497851963287810053270438997864432191063479410053076163462235622141153267313926696360410653765557897307136835554918882754476004305236936724600867130519355261851399795897601243071719995337785336018333341756744582894637280701891129676132900292342242075447036119588773054819358419500463535381066702680141168125679640684181403385681845388406028211940747198028635908405069890853240711598306576780521516506489630678629108586228026725652130143260083900011780111738248001754886733149186329207655799070603080881850059103604854938569441259158805824818343589320119580484767951426750022272037996793862199176478138545055686185186939971668978298136537424516860593303072888803939623538397603502520247560772497704936384760022095862398415223125867434314614617777958992750484703087498232304458604891978451480708072608807687009660409222002341277517209807923057045699673961690994470556836105159542144022071160197480624976166744292753015583046187746930293837272839727168534547557035788338860933247594514794373312563010041491713024970720870291051021960168265407014534098547221333810831922013486025624663309147113149200785293549627681902024702404944562022239760929733284383396510750490824599096937541873401480007781728047064844353120990699021749113657425249786408441302052339000745303567160971786205675034400805819580368125195785050104972390606156114091372237307945741786924768783351188138526451865242858066267259792913799787345561989504492374758742700448870395291200489773387237582882753191071240923858023452238279882187329858169758984503448092567466799202115148676554376822617421383070166205809922784735280878991864716840607370539389736135533491616923568352321955926721425109550532378436696754213361835118348349063037500818034516164168686488292815727130413211612571070733494913752112633149684890162173653813777168470209032754673581640925224409166288987689515074720827432574174374552345241657578495728316567745525321157145521196787727124833025756612215724514928380095766568908374603288371784817727410307964485097217083584561173484050408434780223836031641957282435882658834475823556587354478815269250873767282327611977787139716547215003812322823681692065955497071119417449383595877534138247044434415211929250760009360696662268834136849564720555584708755527929300527958628701095914124175267416406950664355301149616507409634200211540540489624622691359318098171438904651423859214224850644128165264151091262747561661757724199504288168380392499473189322967348856502521840092505334286119367554357015981654666552818514052233914403582369446163279358518818148801579947704539570215149549613244310019612906951131216783621978757447183743916579741125582030587452280073361922921775371214532297376229748163565492371258809171462935365394467895504549255503716737460096533904784785787167192178363049014634593995180571171744897200637638036521011174984524758784370692760904594573060093002053008894678297702617348163744151985488627894182757032301864057896178762140757993196861910478910572407356038969767283097368727057038517645486729402978989846742755914870689316637914613099801597731980100282540748164728661193312616532166090390180413657788936514654716131384884773794891278808666773607861084188777341600669568667894145099598776411178007079233738512127788609395396705607613869772869749958173650736744322595131054334173871900935119840081864757686395643143943379429009107749721336070914023522231485552059495637639635562956836789031834445318362602051742489410112471978715415231829250243804003808225543671670792040635885492963431625406199282013749409242002021665387402225799206253651055825308660468903491049891569092289624794237590601245720584691330821362089175247066970384169015015658663119169767947670977190923739385957630930046642850701710078541074962716838172872071730237977096893370795644531733091076971329902747750104178469704734608808877497951052810108428866345365905811058805459819058397365277709480906596557158850240345254681389566713200513517704407946863389665555132452207972824791413868148486632046782269733797666609983607173042491739976176162140347399117793764357252832615484690251449640163617515023182286153696929033405193337625414987487112247681354070978397036336823880346790845252738233011068542350893387420255618555087562565478914256175864323879653891706043971188945055771291167184664133781349996762385985797576662190679854176055822979992089546683655837430854003604814773736121480210440645460464376159175008225270535966884398951129554614980743490577722509176484736047167509354316262553452055590426619390340521231943572240079095034700120098555510955239435810139223602382571481018540437052611841959763847271225018760650780744238765290998818975342133211911980745981822928831246368654227354975849298940243060979517336805295680176168426624927827426341920317155018793522017439490963155292885773293205679371910675652091762559981943418700198622997169343264490792416468607867917378417349326650748164067886175917941515732597797933470711376756231118780422117726275519915658653947396885154992097296958252826303043009822579089813553884214654531211074390677083195616690157687757195139906224866574168998125322633513092079616494862410940384288307118105865380692124786877436061182625975448066301693623471372878499953604771948490238889267609869149798416766260859263785746550335655326447579868276266715395847451312539392692621023759401620854362742352173716804228504549280848859789685356882865486821728944378171972493238952193260472172304887449531399427155294956462021902285154179736183221650949767222400504782000338611456003472368720796213923478545307598709181316213324935459204767200691638502640743406762549528609111078712091925303607394776066710054133997629954355961690141218935258305851910658790010074463613020315974444497203046917263430382190613196772833730643705022660715357137987566762391445286915908487568212817266952414353001824185753105067241659545855199902406926214030283049360803240281502416108889547702468062912562974894109154181691744222340305696376947708174368878455878060007527323230478650818816419603403343183713532303803960925003728930554085364927509321662797051014360291261537254183588763332567752649755757357428353713679959262345612353701200622702204355591736609654257991109706962364260325183190395498668352885316769082289102387649304597394063093157961804258194498089016838725963351401822255334264582749295443571279788247867829791010473415935477348798913782561898764011672153340017263945878948809626237910321392284303646822858602065086006716879883073608444585915076968530362446466294759475180192278879935767962623189762564286999640017942769575197547020236727376734172507171710473948013085193181422436742609965890574377236987050117454424831625063031928641838397125261403286728920263930193741569481055275834501101696847679373959894723031979424486153638753000281555137503121896696044653707198193435852111330909956085358145421922296206788044860424463576181805702780221997178876765437197685588445258282184625630032265185856392161613550271190423864002903219751697739871925190615594641961372864423742208535655267110256248067004541020524413108030439549707045591160855489225724684052969119279821997190682158397887246291338433806106284232306741484056662555255709438024608549827957547164192212431027844805987175972410082515622977200327117927897520914384140684454289204005940139247954325790798881190474483334090858410143501979247982581611030948976382845703283249513471925071517943237934106438620780162054834234581016797676454749217878652228569516554781458517765798312914664134600794894116213049855020165858863535871904857439727844139695826624888524135222154594334816305934391745470899041199129399662258219672849822582518238125974620581595317713903677327113054782354106555380426030041997538474519057760961712471327970731654189467901256866201546768693966208848153669844607423452696532749572728815323918895179421710909793183780503601303108797641573676709561625810120847761175051679433090607959909300627188774709841636514218048088053407484516333569473757537665049993426967986986660006198111249265543590267631728579625253269150710297647872818887097536579959507022677912821601713775969831761996503384700999331838366856276174088556290348674180259701459289983455341856455918603157946186404188529856283504238317245308558217901447693048296603079547634860143815677929070094904478793541983672357277172401173507668082610909005644562299550229222312102852045955663296268525967945095097734368742797278037640256002138979277299882974991774511183651709931391967643983075589723526656993889503505478179798114706693745417522670154414656958056542862033630140566707073746665841942501841025946671482861566136339623239898467759474462881598926650941754195147294904037053227851756565717331335965648451633064483583483802339958337700222772926379915506257866866331418121373327376438811588757677275360824229857362063938769540527076764488043234219100379417152528766275125470183694672644693393586264224727019652163914736324566698114939930238455679426406283386360589668254227026807562647899895233292165472420716949146251697697856895564652957671625244043784142908477993487238313227078386071815153865652054419787981636411053126999364340530881892629527321334892682626908635815815228906678985046680814085266985854295793952384538239043756281078693945254896210657488560499765500505863019308046850546239202932310933460954814570252908978164878439666573540129594606805240916040259222350696798197031849029002797926090895338123159563524122851370627395105761787662213018722527898754487968458076145027171308047020783604530995301235558015888628709983465632403737670273742563434806368406076576082554511605233461701759168994007003229255313508317195147230099686419547629613791914558150584647717797354480287637180756732819820305584872317541999221308937548511833501467289030752476070774857099174549487405796856620739418159126614647952037393393403585906568285304407118793488399867318733592499292902652796028512674471308635462649227166656230510483954815880875693087827417435844437842446590950089360431542344095993406758795219421396227483300089794912132880042782292787696506262382950683840787104107582777361279985788799935939487752649502476531143144562477203602561137498467649741845052056596258794745710835911476853397573491792971789831967845239593024317950282334724344527416829098939486692636032257324172441867504998336939509098898403731923132967448377080935375560000879107089565469350928053150647494077660713721624905682513512553070357145941875144986364620614648118302656444165571091608222268826560707800357571372915978535373096531649739239551993245138606380542140300008580832604816333081947914151284320408367927421843668454580221379944238187580728855745173734309200858856137436953662004695740282669357636189362482485203170148494378539048039698250840696917699445270872828433003138147388129654172966389243559892670878230598579640114145374446675207600091010660476700603392001664222971232157990999837745397431587994011540020533836775184189318000013417885706471436275862914716529082352476478074112621990755601577604826869500997187203593767162374991289476152388692335770305179361153577811358204759129157717462640744456242854046170293506935617989782387976611823911543542854305719042466322200047147495396918343136796038071335563791194844079100805196109848800348030559542441701993509407937380075123819041275617837100533696148349729811847522433271482790088402357776712114853950611029010352690559822146910563343564863622479581784995867646002208004811121086110648936506432513055768536768707445381323014480983327685973153814604490619694171850019376742547736050138536953207913973164836234855703702714271351182182572091590071342497184987722493222134282292618468091225056209399036670152422808515884826556203286874562651709894347740949137946694159591017028301271781927273095358497346457830937372078151481340492492803157762469327125861601933922536820607553693403985927184960124752928722310557309587942913172331709238213039546831789492434677638738711778159574204572086639407426690313265164714015821748041133711378847651011122529462986003543707303558646504899070627593378955903689297090672761624531886880656809305701527158296085186906949566996586262956389035868670987691582680201408386999641108712156137841012629935532808004948896528556694869460438125576453594730452908897690303653942584194619961312523737470452105992481120857919375685179084977217157866366405489137237205010381008995143134880652274202561907860093389495871947510257631763147328889752025720004077224979336216332876053318839864037547625609016048518516675890390089055675511858861818648988971165305230320263180929104430317566855070874688967734048111215030722955091870582092291501599337404551475938220186005266624479842422468247205826452453904681281083850619486386213628105532212972827492886777260286556529840574605582915277391759562740261156854774129225836003642476450067753623006738487564329436531023066963678156037549555829945619745546180433067614102895269249237586509971718699986006482103945212465604311634826351774781463760965041758259564855016638190703086103550486543481794141945189441777268416202104668616074535795304063606393905511594904573677562263611141779284852925979755990361897167484658879581795061463511586081553757824188752094108628370996844100589083997342503171519745831567942621735649663384977509583649726024579883244281847206692646591247880442562742786140657020621059809454232187449325593498153255638143860173684217000766876297564997284822100355437425394008802141266941481500919716047582639089796159968344695879191054621602126287553909919334563754357620204327184691187434896145608891289043254118414762196151531799235540416995874754316495196604256891671768448077046646547694769097926300667590828006337828945752167270617463150605068028487495698056147848199286248250284252370646546004037624667151448501959527329778299095177568469896874084224714008572917313461436579211570029430552814527092794222531994782006583279766951624174129049926977714944175109248714063492231102436823042678599360256828571059911169088928630470014632735652668294359881678245984083731171320712558325531840631805481869730479987782638853715336215357471269595894677307667569952706571773737962485820590153163012529126791065959928793881349306645521566658910497768776999807725855102264679473503066809345035721554188114649080830059730569206147904750791538464854276723292269256040360572886650313241641660915059842102621033219400487390950586924088360493205909366078367604213365675799381242220590656046018683455162200765672393236426893729037292507522931643068925269264474374906637315244275433220820142368179391104858169152846664205623143305636653505407138693209233532967751135742124976646859221924087572586147492744405291690970166568453377027390451395217034160534482430611428053653887714536110695429277413186713403714768418900152124776248792839794810968526678317358088591105011751008537723297441792891174437424196139377685480453789335933696272696342623940119149838270096715931873677583610473855828597640937582893567354316276964991837576655539968013216478550558408080166545808359738388999820819252272820416234014053297440696533593664829463035269399078149256217861533356755555393218457189059226125660281014271960914459972639562788809575554158083011573885300499865650903926447337045144436646044280083010516659961454343619167175155936320755534825697116898752565125682266234113085074270247415678074321441872455888822941508835117492651486677041547453700577442485936135482974278754948177290101171733894321668554565315683237508775605409818143360737056849684285119390712428193735482476450977452781690256189750363988768635279000894745952115512468557670513912128557957429244129100958965883289393931382122742520940571651112146993818470070245575476374576438156240246698255188933202387848070888400989861906289600978436685330010107821532796105942952399473745108867336100675857047272048511787061331107393076742057946851457911580921136004173971163263383156980042426479201041526192584047928213067919066622932185726089232544214825454117028579813049772448972376732440309914522855379776113111575133667126348370649153672176382017898069115659939695192761231842119153784459439847230432650228321906018314044237995486832647268472160721213055947955909361943591110259372111397490126306354510415622697492018989917921972640862142025571312866805965906799651527741033720313690495740216282825884938435464645489375504670214054852297724966168701638832933540158402290901863414746314001601990958257460072246284282849317297757461437241225746066723930578283366853962478509398610355187918413420930696054285347595446912199302651036764574184515977998806416051822303956465358895253916613434057100856133200473452323317674574967457229963416284820715041187097878738508243702883420962448305887521210388384973366630899265887037963606714383927868399414073474215909070615982563718866882315377482492323714645430638410440464464530431533155223477770669104172680290567299443133634887416805620385343085443868146299542910147121695594663243591269938561192032485636879865719357658665703121479174878747596842801035102012820894840617688600430642173678177710783116260837815111911004239260329825091767811430565006659611500609470386057224579389540649994842434735618577887091863380960330427096967428177389873426971131933553390734903214294607633714238638199661795335726031640441377424397107970465427546056906427030457843255995995094274990901624152981881072655757669802561661530130623541922141640916369976102402145194330132015110059900237129457416434126954256126897269329787304788713813437551834204416436938862735979293897301046986087078212918945653564510393803051010168767375382841087042559321707323202057360154148552167225118490466926676693246953329837128099281612007806764426539251490187211782839208116422569629096604335587201080524228020292457063772289150640218784822441225348978231219606985176372672443727985463701566660277194014044403616648431080361885977454324049886537498754729899036789646903755292324109165524184109948725295468520758568931914565340503230156272702104079676793717640071635370005137101157400498175838701435872300836626871375762752314444786089705826419976604614025782778990047255977875725475870288081126654684454695000755329312853046441852644364354524525339203782614225043923305593327074349036480792544881000826445427209269219568747359730458392820501593548234747530566169194834592396706772475560203151263438359965710152024596974030671484480522414245877711012278691216960803130530292465456926076366692081089429080885945860353734024777169595323421212315070294569992095761861129387472400649040099288697047703300402528114372684583277198701385889713509884517924171456997062120208828863745566058594177068222415164950157568093990971679105037632675205996721563275278320050777693701199075586086248672238223204612032942773923487666908555637921022574010399192107410031830099675815618483568540724409807910691691374712790452318757884759802980884127068310630501314087791186245023179094206989455567576233043277372420307461482567100723709895829772725958623126987616567124531721245928892485435072973807478834949831873344621122214388433748137634335411551320433461404749612806665639519274136940386220723017233541391125123299122899387271817593581322024123306864787515443015622055005509672763572471756747415561333498781613493281173648523758134987377834785268662562223503428853605670303543582595249811224490985859466680055401146098300519909910328198939685183269722645711022369695879033307741350506586803502452289675003796286427768021406672402779998492646995226688747152171759226330515865441193182404378616272294481387185299776192160772183145324890747817236526215660430849671265322304375976026216340620401688450882946903797175208616776761259897957621970241168487331298379607446592877274831898791909035801304188959121299208324432038703819457671633238408169729000040558752394356746632854496212539373235792060793852289836384377221642629367899835110049299887624325645149510606967372188970638445014237874072506403640685904552493775260735834102355220178763311323947425685411020056414987302307998788097380309376106081949119292164138774555275805525932275007202634190847709297243458496799539774874018305148497553278040096208789443206865667642593408669261343933636418083221979887469455170512674689973082809613002819886738693523747975740111495278127706409548435405627548669013121821030514440579626894618401807396912226014792803183050149149897805289310150583411576071476670392317561038580544122043294660888659469134704846022139625131933052227003929141413807311072765882425402499039218870895346863113578727842614443196115125826281164564939895849834850605638643146988591831626156973467612497987879055502468826925351072403552889666891529226685389965360976687621786697730021778086169479322281731657845180796278017928171772902762016394294959859807736574618474924554515438217883618179084528041881729775739130454307303484340093349571211668989036780298215559880449601304660739762003632536647064131683404837366864645688760197917585038449153669997643859787789951395766326858450413278575046266920588981243982371312086600500975400636998470093788180587491251159069478477043211764173394000187386935491909453055422015140646321179437430162729456061269218675251229121660574163721998727628446276528793385712363142523269199842109543187463221687750026908607657871260727883980638208910785211393958248491864143296182479653244174195066430452775786135635668805375554486037543969220806302663416828661985310266221351094554756948816619887460591106977450430853332249220219800053761450312180472152775313329372943619093457895460785130369200985966679165825681430235812099158285565345788860768859701646054438271565004093010859057020732325897656051377239841393152463364433073472672902987264468469944411992898830960084859494576381807570030861557747326883957338612348102362121776803332697918518271568996142833366855778172806714229460656430947437704901089648974451690689727750227509776039098317302245690921829022691324825577457594882599573014353589987577755229033997618419501088349359419749372657516274992636505215025544662707185738805954419433046328201888917360641865245270282509429621241162057272022602766727490677232647943317614659073050467369898310037542890896376312975112739793564845641728428970151890043931406450936675387071979838391627732971923530876813761111124710069239098410750887596852667791220702128583034361783757609361785060553846072914022380896296520584600738905678937403136903047151158069249224467199832461952267225555125909716106123972412547840590541365781219252855725129493780421555104133989225837990246048046439493802453702251004189303778694373625565091355894506664490373024542903637494160658954128652516246388188769711966810477245889294384172421896143373145738350828508885703538402008451631461436253052031640865082365647608281083159134176073749920768955260257225185981548855824789999452066220172186974852344045523652542773920382150630639323744853977427159181303020540435874004604695557128732324774532201849495922122133614889950629674492666741970213740612027213003445173487839668935936848101849133055405268267912790953459699832220331621491394296032835909288227396763725614662243328645054710663920916404819066445561310815879735106967427739129630738827301930984245038851317145966183708654985165390257159778963582188910656754540657090853610490731239627371495108356566927259331342563418358861207651782772239095193645250130338251444902164307259140206122798835220355466073678820817845849644148218606120430737634137847118159733179841140691624004703923468576447395235314180613814341993620647990444626084499674392637937061889180849243020761416494307160177621424992131648772139618060784031347145699571478313517501801616360736209610552489327115075928867822128337730992806491824656355439945589436693659046839884675200315775588572803455124315960633831792757518736418608979839159862098263445533743063793368546733682756153635470843641662955447545301298857749348254220569595964341106559320693918316498840266962951505609715702987306098089618992412674324318373117904310349203644564930235387445520035769785136061530603559897906019536875971960468490493559179426398983813579201807839009287544478693892741222449547964497589005345300795903410139849272478997479417758104024406195411044289253397981052250611666350710905253063068524054319372171763362347583757366411589427783128603608864681541829566417272614547315075298783809132094095839759726821717090603837739323229943360859872353208183798488247587720229971253506985310701647858198238151478106829887917643068512910069119627799550151571004282377284062789709920841264180816862577504703548372428197304802602037769131517687918168142116360710517660731176767767607807643718506774502287977211587085210905788862832172130466009876401209775307304531756174262390868307691048730532247457286507044688449400016885798524440627288630522021113816962794755632210739017302324963540026651377742455088738490195384163000444482329672111393068545184250111157479277344049387695711915460543205095154889437593464977555882297287243421472148414056490642333963592068011500847512554556290504592902880276350086982232124286281247014463593514360740111657469881142113317148242641104106587597502197360302962369931143898945082188482385498731305911577379559217354577301984722841834523597455760233488026418677863516511189172246768313102122375356784515330927685809470245595157196882620996307987759210557033867093847012180130573615399354805065883347133430014605867118620275845720260169359179670492797248913303033358689720577096111339726945339339254465136567001529900084553662047014767657775953476877207024334736299447967232991015406384564339003970686936002536181192098188970049775269391189271035168076029937150439892669447554743781547041860298923657913315513971418715085723908700228741685003293928555847435149242370353943019135376195341594335100329765442146905473518632454423107614599040940643199450550616133546462652202418441222953270782918630795485568476893226860427447514575464577086166460830788639940836502522721412798957173280186797134621975798821573667639340367133584767763071558792267256485796150508312640805981656345742179070969231126991940017320300114225073044271827508570022248353722579286633334680769337454785394114577936171242332617760790706074978457529267399271061657357612927925791515946072571090023392597007054622050522996915138457485792147665304598143246384889157917965508801187155021431542066404758668354772089629106952158280662244685193882042147889939190954704803308329673938706073536085948634948315615875703280321874667067342772243720575025060700265516908332218131627028361860639638741508702767748671942668350512111406969082183898188325374012925639025789325864493108433588251284579514754888014703582598900236446865173952651619313504906121865396971076169548679452095961131116477340266776648699806998453709205134541179759538570752120262485098240896036390502388453840075839202535974865716750652094213938325491806492335612179115520668069384308232468442538766834192238191824729216779448489980683147980032037527980550615040230063068423859652982704496287258159431570602338092121569925394940802176830718248215694633911853066404670529931299177268414324084389428479786570567734457203071612423512211501312363867987536678915314191464870061475693975889001246594758733708917731852342905291272768403797142504077218945833205449966688256059328419565730538096743129092586987860616601450465001557284695129678312141178948669457069471625672434374156124001949655033114337046476160952235419509677008699945588508713867707583709408670498703155918159568657035365523835132443821315235943303168650635138768634178187610517177054060616841430346262036513090317406718693108041338054472512808800515916691622667775986345156664801766938941775170020022050052193927632587688838075095558293525612994194383280065695888503549303855445459898801100956561973144311109343561388801951369281639703276254509014461424875649258466162908816569253378035091541429303139103443512853934372875070901024843532489923135735535558864427686692244983919823442889891617432999449371423504947868660300655789863314397296160215135343991975046658150137897628207772969170349779953854945122231956329320328935881003618839706277610600477355949334503621423172948136714713899653103955958751105301940049406205103542264329384025445736399538794056553483260569015153710186867798568577920172763068562741610719127424260072391974630064074529572115119762927866263764846152796379466205865583801810969199699410675146167026387184078594557833480307775275189262399540317084968053322930305548305166450583165466887404320428898633247179417152262117204113126614638773151751741797328059138149989948189668441051955240561487351865983693250901722812564421865530799964423509792396233934406960838279276259959240443752799195296589542051064401929061804203342735235109334228701652398554807998955298155158350600138906188643347041221909277631544239795249871844108821413388782696444481683405405487456868078698336675159892388057998526744756119331833353404375435029087385017253431322980530962917233305711455791497958393184947206257399282136405377240894918070778755513328498242616891976995270111822994202508245161404760005162717057878387767470536000284817789463032437434192590100186708150264813296626912813156984143714163440502786553520741477534803890377206927501910166248045675933971298838827528941932440364139448127907161282205197418424373373665559104724203884915289647206171247660568574800386803429788996821469260148753767164678451030879326937204794699543409619062360133614994597175008794506959045042180675656970527298162155559471445815574397854560567243206633715125270583326065457272673598402404569390700661708832985366009566700674991333751552199625334718009772051391866965137161921777688112083251900673472172287101231535170179033943653800148513747961226411576509806578828433742019417318472607020989725099180762755284683158207659687735724655169219872289213073176406444755546971532161465526225509935458339761150568082046624204626823552686586467833568933838127769686721512582033445073194104941382759022857430576026716227574307076392902352798067771021169859563597813912697718182299903098847884381236699562704122008701082975056994680519296005306076407391775360327172049057282816939733175959276214831385915970450950210018162983162217794335367003593062878357979857375308824664592014274461794390700970401485805481211233731002331298470466075572384639892228534650621363887353529578953909234808627681609146608935128056713516889566253459399902635665450440961515234686674840002795100353875840950394407560296346252291411307072819089978535234805762352165644016466619896515748762908709842244260991985262843814502147819193355568158649710150290088365513101401587438305202309768664687330496942845121629633653356161686092099790007331100288986599649395089437689878498424944202594836555162579435376201163682738390658180629929296392237101744792036057242304834214115458857272218829387814605202227512537828979539436188378071466907903751434939984156939586642884124260435821948846692907122093393677856503787916040757056837152453341649887692877859315931735950887213056043195594986707728038538598761034032105084564199186228396102659991040727392422812287139837194969428390893090254311869951092618848201594648047569854911387775195255540433477517139423033902593662669620604083767203423860075303503973042497944898546981822493418462230217598143086924497881016656502079703582739118300129293606861499917656784368152076339342271724578221068150740158239981326549035606883573652903491725493191541397915695782293710289793644974050468774116391985067616755174813015534596816617106926748796589474593288918603765848067144372807645839280670169048241178776884254949796211854052054595071122759374475938552898334398558706781937178491851840982413830073314566845871416467473170265707033869438855838908356533049824951572844105556728934969308075226882696766818622394959864569683882037051183026722437004699325099473929741849409479307410127789653356656688507463894179475215980696190989454421399265116901579987797218775917968596479901961617365726109307847820218301547572205259365879660494600777939411802793404220339886658945027122349873556209126513959517976184553099906840063317576900696988484209924557433369329142000509032826051400215737775992188444564164928874177808874183373547779132971100960392233727285016176284119166475292349309897545259559329238755870061231882941071331139737963033434690931255685384554280757041997724340646362514883184184451387870094895657346466119340286896199090148047818382196547325730754626599621509737877963739837879041619180588897976457971852386975300543470367962019634726366834351378331919406895949091840336186633013394222765209801688231076522704887089183937972839385061060353193329237661083248084443244320921259360474455116613000081829018180765004451036980443430722064193218452024007860693018769567776691673960634378844050341205832246349938235439990521047207857080289746750108228776985579128644530913366207396761718801938620275861095869749044033751601855691852348493824483602778705649188365882030941137959900014167562188420360444286495640986819408948006985701024088761512551324949948113246521815292962020652459514072299573626158912212266850481777497359322457713766619617994199292409715384688043239617876070781907511109206184140185282447888094768570936162733843923843145639112154824797286145073311773471716255031079179041973092268689448508180605357602037247492525392775789735839403044356619687134587139490907408935247258055651580298826680383846991004201758383264002221469117641514884483333408278333102867590651368131423617550552175568620883774080015634038475131598562423105788565911127283071425919697500343045888417124673462375423436990715345304449643981520758237112493779472865031400213479062436300871735935830570098047542036083666487232466137142911511667292093476183165819319052349826824027830375785975530026395479762601049936086934615526294647613674712877044923366602572028865374623350573828890891001219162942833818559080515077076510222353626105143245868617756695612633182973941852551412859493928959607385687142392290474264154290007254859863480847669622684975179715052536268310638092967324176347219755553811117275325228120409546745033174510181412642972119461912003004257513052984927357715005127294181769643108890584850380667022636435653987861008951377550660784520780401459484798123404084818182297773656558500860532035397961258288641655517341074709052587899712409348205059117371177081854142057432550810590096539244285632954723741367279112624620961534240840730694018459033652164128447055175136785023198187006636094522150889478369261451602097661503703669405248693130389696325234118900206088661475312924542977919512131171005490946604846140625506073385984374894542757721578917913025261698498199309500738220495436740061385764529840652507773228675311838438937537447748136952430105392248876341304149513028888090336357761017367559176760709477640373437494888979519973001352454243961830421399601136282443225518150611842374669660446930978367312321057506369574050662831297185928635133509929452128444667103102180656755505862433922436144322871169995896871402467793267583512431189504841814290102701329837035078037298100680375499491549811373657057405796970846968894271717016039749080534625239649004601920572816101061962569267174099020755019958813491737719052189259661341303985943428636701476669203660764871834075520077489666599833219123905114383507360380435433355380260005515485846080253066428288341054876957099221804040548538504205580254375334887260884007847361762411746370579916458285756629098827406158742037973835784328286429644697528814111253804554260956505594011171752825759207492004129253761772026537856741144305547210618675570899910585573859181533868393235944588305782380379544371590389801456918247296487528469216276730053348231816411724264501763333335334327166783530345014284732791042112628335622921161888217300338477175755981177674792080460983609384324324175331474085521947442158139807205673941412162029200343306457366110296997752601001206008019625036916616792870210421985965583578704854647626418452741296459805992900454538636453128837462838261671484152699735187621876567101165089542549527612648923283466073461760225757520526112063277479372223957219967607152807716323012582028728889142187401137919214463262788719223006781288684372889876135464104686346999785656852085883085194198358546058103011737684182732257331397216455892718452092727336807366874989104215875125434292380194717348108369970517949798617681798468410293201387367044739860279240385842971185603178223606236619035714832923101078593078504416417094940402349057977332903360395097523942270523032368411421550659030868151204694821897710450281080340379652342996968944231012884749785230635660975058875031063130624965324951598094474044676834218906048451673907962528693249368142196633013015839552420041541212958634518359528371126254490763010884788160564503911385970427924505714061501175757113813290078006742856222760157578576586279348556610749480063637894304706640905353015782128772397179351392916729974215109200971860054584700820195985930115102095826823364242871797729669651119780635677080124205562148272298449752004499241411747331120869580846236700150666736656320323320932469113163548602503773821112101442966658467439318107803295044906032505068721806209429039011481905898465106280467417166248501578994467636209358177438401409827227350567403794179024594309133137319310568419741362793379864049690292775985374346413046700004266934207992325899356870080711545834185325318348794480133462707690441427869696671053560364273454289838046273754624369428642526862889086513505964136476144943283956498238724050396948532082660344410626714610043255839091900932555267598299157268847133607547868696107647669277044720842473578075017081643684121196897024697560908344230291786743819055466415286062626655552553282119217261224125941510828393455449771378161105430364004462585959436598053238585788456299700486507331980225086508488101139071255404487714673951924470398614003103901732894358716970242062204518790900827178495093557020208358557452569525433329218203308691131480767928536437634964163199826926071405307788813143836680692324497610851335953507740844870324348337726627573518187713908244706386606014066009894389171442390912368172175446988299048488890692573879853836789921411615370077695978964711840585975714623631821663763429520187921632061795386150782298689174664928414687780928655027675745510876368363807955856926343821788998557661364240838534580237422844952525594710137327521957118306739240140971046560369041245535727090015302155035141302074898821094756695322546850838397279279072099991421375281861462708085488304602399147572832003059190301790210627729301470281145806676795586023349351799231083770652115916401727792537348804965342266630365379580948390850806363085011887261013709498312299889582158956090642603026034378680036451574046683018587433916118138386667675934925662668872205603806631979958246528471671638977953238755454108629992679435124216613132380283614609899904944829233247665873410098382284237303860735063012982642315478682228907149907033627805827306478717641939056851470457690422265796491405422113369031089649390288655171263931474408969502488633754399717081628880629473566386258096675469213830260547301584071793706036366093649002356898548614135268815849209499472074105185989406459088155133083285507945590366489044408521571606798366523181394668837970887833638892661943475906840636175246511494402194270566999720409339666221243626627917636378341060326890491150134652087244570269235742337274984462191067907329460669051331659002983525772012880653586112464417507227257371684427060876928936338656962262178816350457482943492309273857504045352497215215065933508265604620335052755474826512446627142667330138879962356881681700837505001823605892309765322965813988687403923944781924438783643274618584432386901486578547264124677089949670321088455683955842367607842825859725192479285355074332031387777309887408309689548598623195621426644880574992577798551436129221021821348169203877257078646251906982589701196844188227937784758114697843115245886340816072537930904380663258293780359296752418550809764869283203666193763526012050804241343841503598343179190222343403271874766228860573473241219886172506258394136260713378686660898677996787152329228080793824336940399280640107954349616954514109298373597521589058428820187141777169108932210027540544821478526161849706790701724870307476536146063684031824062361436606620254150250177885153851973223210468934903102026594756751649190386989300413795122619602926726593285567339570276623698772023276851319976800653514180647981003397515616184693452077237934490714594723071712445692686170450304309355124566866537414993318076003577051739677978682918315372899071396463269004911797309769053030798113291903290300864256339085541844687062500291992574036550578974173750845771652379504740976872791346650386693523396951446893764728465248395527578156243091903231371799515808638766309038796816222980342223629769111267899371580806654711799040748478695279763239426625336481355610615352798949687167040175797944572548944791194358339352659734173635695715321857647580124686840023385486735977191036860227017792478669662265693057184734819191144865589791015436571425167635625144209173778137854055021494441038366084764941044915512562807167609010317467892930643565399069630640195904237206789521793771219369670427125203157474777023832075255334247533940626461440408761739190134169296365099380894975862710988516846751699825322575891583841883667817596425470925336281667411363553389304694433186193301846838047964432323491275129016913816050770325585863105084319897631649254232965682742373014379819099449105125410571380027632837603428062578437440068928903459739947999347571719222745744497389358108847813317768662633701255020929627753099750547183513578160192887255986648537405762603538159854791426801840981747235712839233244002130975534285501248148641806733601150960347225342600886900036537930550434143218994103140096095926272055359022310306967550493410990428372254233246069632387581850414075793155512680115874644382509384061628266875948935257484306320592445625618276760265158669504832209294126422712906605114576182006909352764759533826822770704974392657391627782201533164139406674803590803772188678897554586009852330743870317798786092514943954004428622951187465457291345939631711929785520245202812751510847745798183679683212837339135839465406189606833092457339933390808568088583180896070121951464170162263568826980093854113014761451512493040228284146988742884534641307769461261218449705763252068054252292717945028185831156607520106703297731900778584225333614084175096766026086536145552376160954704104115486438211764089787554476388069470154167227018497392914007903139595361287975772320740178067748003381418516122352709919976581737002900624240745471370920408422174888112799121684981883491466892893703471531134808759533613983721041483070713641774356715164281569752379965405499528402325931174738135067149760277333639891697643048167419966577778618089136983840510522734182985280177188251654647496420453386023262558282416262111207908149764034314957321138762460140048379239913889789387126193870040655723651942404400359767572782716584740936429358080928093388123595890303573451870019421263119729901047553945941513659737405269211070713463144552728368588093828921548098406527754945330981893757175892452847499821746918695298716747164806287559136371257462378733052968437981967845526134054267252921048596889701279693787158861279762998607700795922155211169791197797929300076224435520845659479679420048822956919859460399925136893354156563802212497040205160820187667344389402860495925281121738135100859689185783212971190669058058321426817981591478920555625653489371654899743775714919836373531428858966623620407337576903184552596503351715230595245954297308411210858341903886025027479346782130923286064934612356349539485089305042011663070852283816197020411696547413075692336277052427681151537246634589736887317970886769783673678283602913605927284387250281987977068624717692008019251706569225873561863023913636596200456509303292897920248511524220568741758096784362997232492123628301969613803914814063638372719987084981599282886827963598743246810641526205363154568488361354317352239597905908815222662099037132481092909089765629290930469326729053805103330647565214919609576457438860200339917980465239376136657301879677746134051690518594695204498708082916601205463235238235052407336057011954900440258438571068161045293519838625325042764549661526038916902260504378263842272669330403939433049668530456287857640973536626216128383101952603492108568432455537543180482847413128503376673147199828185932720575321057094459833895662020103711289779298728306832412183364821100184701449956683398313770752639754734639825248598987364174105840931971062459073448163847503075204512945302728955554552115905426683342074844914215109702541416901528694803626396080620351821863698002102441687718465764838364006492929718331159874183564432818609621329681618953523526244446377632869872560375696314918879800158879862135888714458808253979992830315882770025159729570886380903606741396411917812292457161192167865803914106746989586819718447824920137855755918395943455513151108464638503856957577419555182837405956707044784427369240723214885897737695486098114442620368125559889482238701727135551611426816787547088698370330148726541379146258007073123989476306551389623366843667252175063777663309707720397513100273263426774021822633792709106607910260596510100171784919067706241681105689963857582593444907058201811567959917961762237332405003436709412406960099782715779905703248349727979530322858402947412098264658440335004760817548497225595318296765834751960283115168529439208502544846154552421050311065315531060637556354106354060297092395829613063237884272357160125732529160680449785762321557031995419900243321706797948982711813971958597953697901299605771973253405350266404237600342250470756553236443242154263050556597600060640861313977373398961468951922392385078275856512181263295840295694066211691569445862969416837804213008643312641785967411868555525130824662300618059939239430791062721113332846828136977927207090429992017911930992307401487142212086426022688718938318125186731175588015080316024483116619071965117763945919532870215229580511168096883115671045005391865729311861413846399749027676607079704817849420547938351662752769720269094191212592430821912295957594061871108469404601364045376134085598663327656620282046663890710464962042933007593802616704058390018354800156781606096156473070841134640240143030496061346466687542485554646485976327854676217802176203931569199010608431595709310610459630956391053110169104578255835641609912143163526761061664775797107622198120329009911267696687081227761521996595020241874685554523377223286767468337138018672898247935885652729019869391525140235400292983133941438913732296434510780885661789417645980247762793579412272313860957077118969635384882853413694472788288242592359769621979650721696041448339663979385684937917915590265932042945377537220966344538937718487499034258201817078455004465992028324562233878557752529680771734181772198404200379162758701669606910606505026023464495104697735192573423741653810454898794093210322029881627805530392564212516921639442933739124533098858057184393830194227098828905136849340607023989957126122997876244618507020495130078238797240788633529457732439824310690338962660127559563020846622413011587855673071708691690653512429737732747471577572304125464074563425722819160166637754261618516425917354651008611525628249280194217872592436329961062282254802773295313536381918367947380913171415144176821947503880373549653454481499529143671719828689385568375494206915903104562257425103220600376609568347702218899646075831618401769072637100268421517683993921622476751868075897729066511592888636111697678283832808410785674825462927464830672596826909818620627768885167026877077705176045976376683592044748373305595192988467345420763221604383433312709560594733771196415253272892662185034181128336629289599845411084222098097274314534306039612541507995788403705797762359247408846782463771393820347145509030799869342275211925853766251429725248682824759545792611873414812065908690565684837695608677880903111370236756924756739466661941811968245585097920528999202553180787153716578536445779011050689935258814763225904554868201513711301078281201882270593513408499856714805736615860494447506729837759696497473050585119741487629521860548567737798666737412844252765097076945909969338814586904103005269670345711389178936310304698185185228809300601114070374782286119598638644107605801660119980603992703416077514117933444527857814070868839904882164676389469750089780095648668139394762569690111921853676571068266085374111623059518550553724918219243936259986406507012245200323094652566332108653737018167488462676139598394355516906680027095039012467488386755936749914648744587570060226146649269946154267609829251211176255966215603276385281121844838169141828412819507349391000271285463137060111195973477290746455338730257974453490711326376012311696105013587084857514787648340715073804052283426674068262896359653204350089388653859825355021782721625637180938198008369074603305950565820565028771131651509851954419568312154163731315240702927442515810669039473380646982850399604812703875773998107024058846327624140411060329706725271384053025157467190487188381240237854337215973368581722540218151435482586217714255524132451376095711675171204032629112646501112728734657540121129791477312463122404586202940049358444282255128386005807641451882683982527228922354223371816034627363161684643157808590923955427200944034344546592017158169112795435521116420979464343585056826394024766343836275040982144447675086166935148931534527982283692722146804062705270159161878624106049321110490052706095881254644886886461612901280667273418481630075177178605328345191734193706083773337461696931848506419913777629768037321378427777212714031601667082097888612334666390198912641095062373324491778750571699968077524149516509815383192909349119262556736802068089094833917114122925757410163908424753281155119484893392601328488414325679326350720829598926943655421007557352588887187297696596755575628825177933615989061317598678204496016515909888472581635302193985960125548675913469727867991524340274289993889419358611277653350132048334809143013974118947092850821428797048926206768560819952807639576860112018101304759334314926406987490330632215192796733612199482553100092030305683559999522140065933570925343464527872505271847871807495296213426333617987789274328401347431323973753255708107811923351285523471963574641874751914892998466522402903928076787350358492254019913335687933486936257685008602592029898337593005089988882430663498812090368507575118404965947541865836144423767613912330286838338012761877600601285616418819774577957718662972123965119876568218879434767500344866708308695456058238489200498680473208560999811214909946437120591916149688515457667271631496260921617432340018441900620917641266635366578718881370501292734451441163958243627416038678587836100384433908119401674134239557782289098533903113540111252011895691974722557385654062981863152574333460559369128145679305771585497806013014748985579286467181419817332610850948711460061684160962474880088909514588221269464639805767786546275106321046538974830189215510092876363116416486680484898662303308729062091192671124094717284345528885468490500168908634846042728715037643244339521988480535050389426451654356706343103914217381319810308065642929711061309265378613098375365809824127477510432435705470895465993229388654929725367227308120181244413329358888180121758344740824506770748168634768903071102972260169025128394629927528008826895267331604803832279744171208163797375713717069838277543366737846629730379885876310307881500042567224223438150852063136318159053046293455732999702377819601407440537694726971116406538092900359496857966529168610233128816986957945849969380311052211861179210558460197521108399894554160301503348446503812808574498609058725400403292875078757509891453240450328093915278812974655635159660578934289879474335704836671497507928232574052744728057664688227167862398394681815607716928819595796125307480520921152072775877015071826464322884956852268954083522404139379289099705573140980629613510514615171960828347708660790203277296664037934512439103345212817021980957218301765689160878890725854738415094807367450182126905771674925536864660932403550510290759270133782610524097526384511708720130022937115357072195862479928762236329903405234102058047266698898270584102455212100751948849739241229495949610273528895139972155835163387352015674638028352488619781647148947951430861789474806323495222027258204570072812629320059482334548024155232071354984072153870484034714749950492169226182916174456088022950218332918129935670445846681946079096670257120534544396579595852614518727003320668266578861731510851610022668836577040432038156180872556161255079465689333749040560853294843428896803838079039187862864890143328252020739781948332302133412194847416584783507598061597795241280809480052996692273397727040051746040435041296039575116653489018693329845413858697991884649684908142180208689601915928301908893323379091660933460144624046951109482568357064246469170395067612017075662795598397433739379284713526995497958705924477497665736240771181697518289334201330089427371336718565688100564794739075625405567868659874197401199965568136479445872379053016822359205435229413710417780577555184196176645668394550277943330008455131197735428828833559520354085459523000855831757720677028090438922216342166278744305861982272726360727924119910551264648089492862748064267076605919549993648224188738203065594839690262336546074408321867631097017953311478456558240926474608343679822703185808109620293437926788096070828882188123490283577157777526054080866358343703705601577917403629950214800625397773950282413942744754723618144418731355299501240265552720171534078542040024020265293482910788724689498287112656409613673505714261751840451249267589471304615061419621336225484830222490652833011213127060042070523070019934967858786762172517495005686817496924613443426775566075392752283037129067828984316380107922259973056432661702688578327113377720813343434629122241962845466038429254622911582816979958156121581413630220325263365908273340190822438067733106430535655714252315722921507797947450951541725334366524870067400687891337183370814912134496450622022127574177375740790719829493317644316088451625894653268643772126342551764221050915370498236115238383245445972416611587552772232497783278312680967660508493392290473910570212766235991806770607707615414928451300719176240491105785120836283672774256444963580685378631411857953594633356525080428182883301129433288125372705173793475947582910504035814032583720130788569168461199019316006790774071485886925629056437237050792451898187826760775112475844295818872511952149168186413723121849943108467321935814930330428803517087350248118887370129835683815038404475717040429039107113296935551056249569703291883667124726394956494608279622258923883668963890176031850353887634391836228749840427395995451561886809643329803116508517865940773861924102587019467787860193543189183516355264912055128895870429965218311584486685945771905727245535461537756702115758672062325193221319994720135925559907810887664000787126107647864676191557400313404447447802674932182223946749991899934631131957056082116443250584951510322225872525911473010159370999735513547470985008828969184212995612464575274512731920263023949461008183149299652071823338330730229354739044342204263235441791675302450024371434684358593753992320132739534409587384205688679821200582936764039072080285865159491957570916581302007478003158240076025809080173847387949260721967097226852633778596446955696306270465239030836201907980840891539990546223005851400425142326674606719935575785622051384454632153987150082138448776355463752178793182227427178977753857528124328932267756790619302469085314058249832898703770580646695382245047376149974477951693333847140803411448258271232425061548725741296138255423933627785443649424134653672541384092329220858766786608866555148200644931014446514516682682631477536468868484211628944642493525126902814337184606415551872332964331969590430669332531893592331205213472558810345163345061150995822213651648758697611761420027014092206922651695079487870857269086985594544928770359290333477977562171786282458013916658577974032121392766174927270705010113525695722258614215365559740138737858521634527116389058331604245038841421969807997249776724761681813720542395773739631456152436974300047830390704011335076512193019856598618877801684815090976113405934877832355270207618952669659067101530696800318362958407955148886359475514076907645192830350845102159292924853009378316221295058237179264001661399141959609291547169659391352628222231154804622317703073830022761780555588989116643489512731305736800026091006854124090669749124452233886700749255389047543540212743524169199284682626667574136501554774310264150430871762129476882306912553265478676115120682917043150564785431489515612299974926083864813514271609939836502205729464475972343265164637151668626905590553184202938069046699722767788031124305995913158428218189485154871085756524449588916863728774790443343744209337049742421058501426117252507035222336153471940689188588512972345360609437295135165620047935791366210766937366943446387563103275833457409366277001525122622378572760237793618255355797113364246625207963633147370179505742980288368360813582456892018427623640595412932082220950757473905765809937451192053759300650316847897993388965496703811363586174569841340167074001988472570862726999759210053602076322770950716776624524296870885005543696035948738225138758444593217031502277839592679014991842456386113250481625646540410094896637303946359204469778192696353344809555774427812997325870228740463209500348885015380561366184680362613624245336021111151308904130017461184267884687898185767050442173952564772007412637893825186468444542871520282656051447282539866391086563625986236947901437209527151765133776812316351325083232222747799316764414945670807681760338111513198298164477970777730720136965163131570520130964403407167893840788052882789103193783070751808732250792399403196008304308252052165957990455475222168711108261146651117844202899566385845132347297612465283850548722224201406022347768378290933498353902208293063338868124442317187523082837847795415882874356922109954175700597936755547494531180470335113088902898028886505163057920133721417558993240187920987727344044258824881153977699331335602692128743909367986185751661486133035954632386375848553410713882937496132131863990079697189033481021698593293446005109411015595581148612031950661927817588347998335679002141629852856708455856045529048172680460369354446552235617040968194577250715730131397867462460292176531436599027842578519616419504376053552754723493291614591324454172550246843196730402103017270470977325880318335577769964013200872748239593575273006608169925961691143707000477946407697259549687718184186325316235217279779442997024413774674307702324060082029687297323125785645073150761447941628299298569582535507041069148439702225174730282616425233239462351760215930140668485842385257612601583668991420769396649627681514051110560070899556782888892338626391434187786882490515063041438287452012753610908800156199301962567684688913117471313193508889160910758867175948031887562905391077514990603940728252005605648043395461834547586250642245583181086317590133541021412305894743770225229506337583937431918536518556626879736798477036459112562681671887038605488457919563140293280594133866882448965599017688785544479039054348149527456839842379876820769190647620063139498277774373077965679659893358062594029983251717265229111660774941753249529847257150500144247450403755547456364892528557723982424274523403111882917339559110658433688255931402078476965619111142983695604513735707796199892598980984443294527239579336098473104477378469734117165924588229044079620329501986678406204139904032958663125529732372004408681891909937351752661220006338455813817796984891926489138588322354005059495329061312194778086674670326265520501903693270067737906367271685534930920949822354305888082109715077639353902058124519528359768031747042189476731208768302465782925257452174412482934519091034821071311193119170724349213493775143650656540947801533800284698873671976517478711729990917526432403443068828483337686637311757403980552022156035891794177565598756294090035098107856709284666195711966737895670363287188361887811562634638703064413492349975960151946432644397722174746299136659704707917351933372738261348652157126707779131171094399280341826048792218625829113836308284431648996454110443833502121555874984397413095135467305173426541291996566156344319641013792687450376496739185707835157153787538677894520172518101335607396679076386144704589134483528807478903541330436357530060983552095392305126785735385752619332137730086213894905478407872624470056737197157680437429899210282841788463957932577490205129061405892437981560618411670536651891140557387091539672765700696112507509976255359392676468691324787151393754680237738716943445310628318892744850756007513698645748653806706441565674833725885740319585000232462510194389502453759406639637247923688427073732231748523694154096753168399223083731820146917974976908721618917899690841466601186322998750189035533661487749745416403008045481132531192816822967641806283652152675041633966489696292781591613335703912680197720878639134897564386443867169556910644743269288446496694559360532719097550334511888484136507391155607393493930491060417032629615036012840804760995972647826785991305139319419696435048519398812654681702108417127727626827026560151615455617180165204261220981883280608600806493803546308998006854040549353311412130603162748271854227281802260723992228466550851198527067730920795623968250184929461462922900438893979317665844476157019220169216360608243206318530992327606075234236297894432522032403677722219053439971737111673360111800883145943166616076564627440396952059373157711994619542308774040414895578698295172936689201681367831877449768545642734257380781728449592749423353304756534112872547221556226418454452176662795719984374886787782547252979417992934216129226435377023105970129285969444987679486602302665129357096132374836253032722936589834107578376466886663684792263266744865350306687050296367277803452100577849059892346037558509864755364815128901368035876320572692263382619979608099993705958779438814576577885565701555186746894701758034128052539511452068470639973476515723887907846753623537579790413177671723712706837444158963962475099017061690124071006413005758422015497491016168286486976924327920922478836512393931127615271054601371721248819735853115651375756325703408165835031241725645432726143817156046686805857413192430901997712652276559484233096630696941480666927645476234751950389214176599791595004218144430061846351751427509087777340878289855224539640163116531394874162890369053038428012042755984014146980794094958259066549924202348490283711996233817678589360652169624058156181677573761877085310493820621346646864181730826632530536457767226699134362090319283869850593236563540630078342446134788602144466123151808396340401814184857068661437411833896678186023773869299063766686126906879767597368048673481653386442278707327115684871961945521571279986433561361984142564037005960332767793966012909594347628846450336723760205579341490022619914146351408242510874447093514243519378557199160630622887204214881449124514985958147063238689824107971930177075910298781705972995873961262677163365871592721817289775058460486867239607008422765649514121038565930118634212778368184404629058571106098065087929350291265122347708845511162596288199077537700572237058327250370101360574785677059578995580992889426245198175603216884305247493613245876730277199393597580261654642828305439013866233567297652437828750849183464408051931204427197940767942631348894010238626532575612945923012257934142569813506727155107329693326136477801661486246112858313185605522736549005376803039610145572662739013764175255087741237838745716138640586059718884751887649856536595957183669255481476684919035393633659631532704613737926087716567476979765183149497122541770510003028251361456595686403813785855782786743710775811999101064990189885261988157907165769356404787879741163495621072127240729710651936672383088349329183796364818075318016398918447236943657229284462610581381000099552053648341964786222561641950085060413470088879095579872942684407141107221350629875838882085385228623895073805185180173254715422678560169834875693559549807938395136985335795140793105208900968927532604881986746701375052714997615424457292649245453742238482841097984425650341451371571777222260192215821578157233411614109733788386571618204461160424960561818780912269934891973382271362320085043112240603060972924649255890012860904031136821039851326260432941211021050078836706197212610834381607021802865808082096098752886757897341930329542365076785200174055807806059027354074967728734222306644520571813660481363020948986884729065087061382554888994581241818787000436536422592541338094703366887098628360793469416606477559769237465234382626073248382078800351522908379069418715310420666028217698042318379192242311051973106480175011692872712363707027030830367267355146482471855214088645862393589111204034782293795932597493321455434798794468643582747234542149407710076733624966659750909237797240214186618789354559099358072263188987865172432794537662550178548498876312071849289037612189615933171678397482798855726175475243898267581610793325283590620324042470083507784750467289114024520821398876519882896040237517222948723099257478062444689772251589710173256261428898993647954431384009091013503043981081927454741815819094586360348174529444786486810828579659114865659204326086655431034333121028176334914236343898732830807579648177017630903439410329316997808699386918018384234267120253612905902236269402353997006070075891731312776740722775991402439539297214949702314146577802420933834828515525878545168235432629742291840905771789282062172645337530916250742880034252150276107948109480634760804104096526958984421808863278312047310681438601870554254440800187366249957252418858399811738154516977356010713254966105449057387784412710458539078505002536392236040700559308284013847724133561768806545184814988720073194588008669472410934714610642942717362614258642551608495285142832387126065288149422923717645372280379369460561309266692551472849643365014806916324832585901158702578658503175272857108612520549460778645501990209608941296658512684432559097354669003137990336990826157791683236993357626951835413986603112774771673689776549097003707763052051039191447304125086271430745011737352230170894289934378272422012972880902814132173530222020757934170417033449678684905248836555149697516022438020548063364182524182078009081490012246395688207660195736523845623560022270010070777509156063833671598894489974214624130436012027982183973960469722571281712612516011955321733620808744945366340204077407741100311269805263682493405954842509529780057432237831290408131868140846729808862521329239114024286998499076512763907171701068657565668848588187839596982326830014159682367924746613132636063784525973118039612803462581623950941920162810098214980108486497760896873125298627359372073535405652368832636253854926658599077160103724028847733758056252349385043684277294720599773314395630515413346554474308121934726614514055523937285394626385697724386406307067998780196527032869238250100814910851807425142170213787463489535177445725921077247074134986259411924017009292905785279242829514916297548792013706349087955882342674626539271228266956007544711373148111042266936012681325424147679770202991879487637117001776459782285964908900424397850277948637118230986333793932658594259469154694632241134775883495331760688823266650837632330405720701053671058272380291050235001311971880556783752463428942093412247076282337451021420252367830538069637228974440471211159165776832288813337667724635420073918936845481361008187266113284517649319323072615840232708064840562930194022005875259995798484530756545737012798782707162669654799139394984236006787466066712858547973129353771797992433978580310143276348846329673328969369822363443604741900031646939892005356658850330810329880058785841264232611165945411348828352184823723583205983144194178731678975111320564765726304341933459968353182732649931226453583318908959358929501106436727392756872749353241822148336255460620651484128569240209790069943556145363102727924451240964574036568710100161843746759938495283671791952957137507140315829015426149677318393643196951252092374559496393239595486128629776344116883102691487294862541448747202393857681678987316606643273552335502959535166462227408413035203376674711949174507510526319213603600176476961918371731176424319847664824710416611092279819053256868262563360493075649675079765592766513044973757778294077526644665597389397779562932161107190450533624189064892718503688252361010542411825610307599217215710896903008867246122236248078111967026847095090053246623165145222179653383789440605619915836454608385519406992130892812396406407618500298171187306362576011954738617638456166269741375135937371245951296141729158573192504645604298968716395339312895017904319071265130757168604443794650658041422825741970464270973372905747186229128136590111633803221816531777217625291278634864013925165923726662204110907938736674290216147195260851812867173582916122904490815369025357722477103254684472567042374689159815586190419388547618908190699690074496114904271856690184386204298449754406343864961847351426429461206804510424680548819201905873794221555141080084981844070285436737367012355017328923239579016017929547272442244003126687731456670539186479323005003430356051383818563695461601529925009520497624648828953121477270611064764143593197130432013001463123706289037305240353960263360437952293949972731027683881334036933197485600900234913792925024948475841194352500945098618708392178435826333631315380620678498410280661108274374590555894647601315352770716705974535227116591844708239421522391209736302915640631793932368954159913669981348283224191372179835476171613591821446855831151687600200086098497105494058568693675588198584363574595843279370218453012512223151194896707289546866926756874701805964319402362494217832618545723773799357992186852414069906615344243040791779473960857838313686917461665966399300076969045432196803387753732871961762517953032796072485084670788813765420899383477210566690462923614550228264404836150588155602020843106105733914082991423237301721968513414560328266544534620721353397634147988210992151900802884723492364693575991329548053735944643838708771255662778812496447242504369361367000956409494843826560036103634261955213807762525018794750922647594380567882647975287967868937443047302873211739524053547551830509073148421417762871380528718114131068707088978784874783076031369935072750131882128241276220270273018993233806243012968331268576651074651132547404592966699782082118862044796086069980620807910585498854715712562970752232655620878563298161764147701604641250442653224767292021643524094104924156284718718670861928799104810181339069011044085388764342986372256438063618530110929166951815993509603699621717342579083359955354855568851087570756164015669964505889805932424916424958349354365398990823521163892130948683426154940561497741375157227135035019170416396908628636018003215537797772706409080452047397705406191923649284009674009418410456189938570944162907484727004439449121093943798026942987968553277786381668247643348375646767066796034983972632325971345118947693618144751669426109547846874602839958328482530473685863883293466096124168648501664462748957784127411986483083662782536867246947454827851066378747400735797580146913625566640067527374899396955929845145290768011219377609108846128284636618898444054900103852382642873350358547047505489574384553016096328180964243639788579717839676067814807974902076183672891175848535711110821878693497463924404385021810407392319378300208075117077366556316271593722549932699161808289196040534759037834389925071795095897707736862157803042088958182163682915628559096848675387823336583897141078022121488014645222580005187766059603429235214126894162454977641034144026267859509017945980939701792816984554209935235022975215900315978098295890910374266630986632554090155020684145777874825041890945859647279314515621057314756123824204712771033663388937608614659367544268665365162341585005553174066591932022601404038729240189121684843026202982581605383974858299007280086720441514100967105385259736667402266365557850973083088885399573379149095942921294762871821877526983334165681534394499960922932316695435713718361342447105244929288567910886837905042258828246918980331200345428253637665028428420544420571101833535865144829012175301804238510564624585695487109010201831350086938028983994002123730186338879391756316536258292896030668879416080508188199542084947665913756862140410831766699857189388348622808266424681727946978027725558188152298240914564405851359478414290808879774359167154120549083659206315757199659312916636707973235677360546851372250015089200318484961426641562730561914804864725857515630857476955996889853780043071735670382529915719878592976092841249810912418359269971129534185781948599023203887271630629587978196035026406754876850104309175639351181235418949834735323751038214007071963384901763539024241931553459182080377306628659609831355737185405768092871661501605111223471051342338001379908304363730505246205433119766110928873104847196443281503725551276208444809241011666722871405555253037450035746152781969669526374106610753139013100200144112019809778167079037752904666385289671713598295576719653839108891225792563807828953562479884249086288632914066020480147757947642937687004575422845578037955242192789058083882008596895859881935426441823120320016168196555637566195038458920691756235342203290129348199197778613756530727314071967155122982117101980867652678855271607456477748959420464759138218374710001363548928513229431460670330087632855796011357343505397887288738768531065730042819848269256320552502894396210515641115160181701181034908476306622849048467634871716151288317473546804995068080924444495190268657259171461798468672110049114438242895868636440609133989907262246639679401164586627364508633167251970956664350513097604421116789393647765641593701122642691562861720933280227036279602158047912105141679126256997638491133665669252442486389769389430226161532095732739211257922890817943738508077394974992800756628509147461277566209105977842653999579629193994454898183709657649964634168615312022178889285744434343067415649301755574508484360542154708690786870266306014982682453212210986260245626680558002256731311232620286343384546956699997532161143134799798682095493754096058599255864237212623781279853376199407731404299830262271598647816132831460811124805925439617923235925713199722472452289922695059088238795330078513332733542631132594056703418271938506185099567800889776196830603895007560077673404065019581420672587485344231628706017798514798348187740416087931615100772653871230167036013815381063733826771220336500720776616976954307628869438768752606464281556264570809525904695110971780336507400743033454515408612659939009728265495241508199244958643596036425816748028292782622933644545683627091547163104698948850215178819974780302871661859359703566598919176806472664548351802369718581397960492209402371818568400969653061751209969269225349681654717695822823888219232921631179640195042177532788076455713467075934745611983323623339413335832543518763827695518551356774353126112743951154292262576039905784684236167664243285761273780158337625609807272421788711112931847685620763077596486570776433003267486104338473004266683890708548529003205770396905617192057368102803613213297083604093820229893552112845594870952564053170973295086746990789842137920772835335276295435756872077161627985119969180416508290437298585445944638756251830600144153766809019383280148383746940870135168744369821908780955784140900710472260868187153437549042060628098996325788168857964537839984463022752463107603232079025899946663934030017200448551764456453596571753048357126871538743079164063311508160259906077891652510042847541611072454596538719856776568089315903543723690722091735153092778033632378838512686634878627668050877181045428503355917115384109853694110256541197357263940630057490343896777053672757087713342455893247635367432071087597110875129351462068683998590425087385707859773850304029911326072311519964502336796412657561281216921607533467938369113526175983453572239690268927418673930480746303604330562721361601604697844566331685976780220058045574431846001877516159038817310553891048401556694807026129102492320203160959673815206959065513509784521225797847548308313094325473220078600846134292045915261842382616614384413708689098748765134005064888141057896722391185131203651916587668173862323724059753953362267502189137400642690911524794798486029793863809095421700751701701326860604315703550007580914072025963225933970629228562753299865073828981290824921474836673949890139624446390223044830292959020252666637472422594444295293271990806398060570770366206724644657557513092888050325238095756522915468753168201427465225121911593948429350437634247535331847665292154808369072005605569067932967336255000003998494665527268731986455920494220023577225689075950262334156247317277696725937931884265186904435154606326235950599191627070205627184758673693876664908991365382657095714381960649412227099172572272652487134045848489264532677971873489559803389685478083946331427554651434055743339706552284151344360351174500765084702493879107891442252268883440213128568211856533770736526381191510221826620024825005612773558867963301090505635757402213547959448949635433651394200953886658009166635156565693085417348621708998282985869110296451027788393017701242731490751084834290173426132856305715099564065263610451481675679848196014961188242075835774727580951823037451494541167767358488660675136362490179533671062906704846301803092960268611195982977843926428547225056060690331613861977607793798954189725116394453170497300408229654836454553271133248115557017575547348215014561415568495329085810038226818068151277808244915393241720955966537093542298135451131163510477386695583766615345269037133166979273176287687171572854515141428397337320019180556932879951491908572861723934560627638457959175173835292887076089680252415284350780788965345480720359290020330492417027966722329195444861360056970245943224827282046400389499333640119635391569110553011731755568818374854036013110815994789232561396322266807832939273442394957976387417357404636268587701962491431322157294345930181486514637623454692429688504184155347481444334212935108636523569190242367643844993630619848412648156283273426535388836883465981448353081105006257618075944187810697777520958925754505939430934057749487740610454626747338314026653700427007895852316013576447817839439408355928375825066034494744153680885164268357999086235685759472213578068451769440999667445283147446042621248721575083953473702593367814021858370852828867818554804053171620618469413455059587939514209832711333297633617468650154440848659788050814003791187224902378420656540589196317520826127596770786526003551993383045801521711569393126744114988917563957944929395027806368354671398050704856385275861290794130231889056868998422909320076128503903178458982899331971961510673080614096777500308389390890745962888123576008355783498446930217397622293182025620316714430817573847875325208903335125159750525843856447870239558171252488229006176513417930100236275454476574553398715851769997651504314899447957955005174892380676961279825444472714964312016723865555144691552446944440804490322365888952176837638794033534560781957245381337099325992206781947678736793750126629806962440321983925015932480434119421521627524806117475793135536853733130896478988702108472972784261533082451589403892305303410622522197518377735155239017025610814209383450722932050497932523794865750279237165136115107479067689219368513693224230501880407503345628724525720213324097573216157146627312179469103440711972908868484213404868762404908052382663684901927066749144103221126917940251198788908082876235415087860367298543127876628319608728045331239480153913896359914177172471076039922065116292571387273950165462399880353294117822116943376764968884389196174765866504843817143327572995453703676548328285078405364830948027239921515596332898294531545201958701598114009628264290713231170347953545354040523662575559755343549862050348082398023311071144324974118085212395135705123257411002584082064335572584536991992005917485502387349627557640764125045205059334328093435507135712695580253983266139674365215518621705835123832794863752296220710974395714412296044308559250389267896249520886058385619950210332997438622989647980826691102324628378380304622776910439078510823959580753103750617927937079320876757549752544225622653127806449337415924372221667625742550855825259623646351859528860563409091159638077493882612277810818413371599061967616434128051765406532352602204931152861158983547053577494958396167334567931440428752244141815179832860015131696878579713814633230574929896892379865292581131648190535581317056526970012691701485324286290948261158169996586616095842172880689448585555436088625179669724994837350521942961812819822669146023673303236385148097484744602877091582505264675643192032144679684323000210051107948401698301203333820483285720153201068362517184172824366965795154953346453084109721746650439030127840832054589273972240140473708902316617725327693502316315930721410881140553787678456935499459128032023609743360791983371468908261288137807060117705636705746535355132634390071652459874568488815622804318714003607708147737478679644520812593480578899129852701174791202611785540723517863312091216088459059263896075428266147779747842518794191493579087139643987058701304574322424809595860689572291763636171867053728877431613920459357094921723432569126731892048493685993739306803399646489405932106394067713378333781536729327168663903058854739662608396645730905449793451405080908829713929340976856277482174101394135385182458832142361133951100328860488223292962217167219179175260545543989558573277105444305035015281090252005952027955016553812589735139454675969332622340327053715504701037003053275687867820056397412935990221486030411043187198463640697782307949587620550393282145196350754458999701421743733422853261957289859822845658028001224214931115114134328574166917037821393708409523512283767834959512979664934570118059699177791124336034710821647654891108350829593055671435360793332299670419339198979804668700613379082045115887474163820735209651495415048548244583466828521546927006829130445672990983532043068684343457886062023466245829820675282872624989605960730407405175013184569978187585516587588378196302724388800058936487691907129999266128271891358237578020002328142904320287924631819685907106802707103985208140576351207579874637811785092775331874294910197732302133547881381588756262734922573802494322803150979132756137129896927485003642033671037029679790538730914156545735677021803993678804355717142388495515245458352415782126880516939660820655612451599761519344032052797018752498696555585681804246107788211605489433128950693021900608943695017489657665538376628983097839957165694752540269639432818425752601067083396519201125441500316274052460888465171944216371436562102526144720319297167213749052178328819725632033913490643767652664902083030858098336312501173172161947194353882676035404118620767184313073215655523801460384610407839190329924299709527017800667732816070748391003718243814717158677196432486387977553132930083608022222567336501344132695881612979506954247160369158605749804643235421608187418537127430453252738712546240180319212316795883312680473561212792827829431723559965153297334263517295540848618506021684952017107748304698357261398762949021236066736181706509530447037020692323259616279078267760248008713048806122613769758866821241486759047651821668082402502767523944729401623810999944717831034807233723198338844244777928259810663363160289568776757081838223497522671519136506475704225245032259092621541809735813410876006990919099178394033538335129301977015743653804176606964542240539137428949269278028439570431321725514258685488019280085294783950227577280264859289348167547214102631936386589082993756568094839167625391464708404827346165596507246703259629812046873747678953012191244598624420125650490328465235216361522612979840136280783439919177373492875048337596149266433533363436275182862455820817527733380151406407613551963742819835701356105903118571766317348118738438905577331968917597903212513009328858440180798675901103168639611447871346275025951502785340821822166812915958289002158012473375994218091172909910996043830707420046105792086790264329277603628184134595959659849146770176088920935345242508892472429953496494265697933478672321393047361948645128930736636105341309076549838964718472570538240891001061845099379019673994991194833041636956032318767199261803840345142873804097890528112796710567204317103248747806990627920827599182089541322708840846913288533210891523618515623054656016171895887220339629424269389038902301082158721857046096348992878519173609839925141232056865226574530900455763823543340684705242066006178103763820445002091117064979985571113977128887215788449105745950410147271133069758334849024387059592876113879933456487755329210559312999002531677610663258825075575865450160905010038838714219939587293419672345298308244912690204975742268044960979651423125988845278731929570857275462024406008864140264191781140527385047879643848346958461013160800218123172763949615469586126572411359042911440096783379003410684614572537503932048122125623725165509272070072582380039292529132392812386128931897313242940340248279432703171881660037960156097431846698974076878337533738107475949899401870789744935266500535968862438757578622851269015657956072820628820752083048635287335362546002348678646394649603434973374814771318780447958409299299990545130876352353071364035897550878709193250187304160016799133984156786766383437493228268682945595288138541227616849657441144221411996727119445830748737794095998207038972384099455530525919179811211767065319730661279299115199461265631423689051383152165405834548949577721964718066866778789261988760950723834878488303974568650798863337553092127751329270755435585286802198308757187599052595275328623850031228547392487371837283655715044459262356463679225893906933403547344241190770881069585461269841622132442905907716222405652965670519159002046305776248000022092827553851450405788606162318270681296808018364696364563170463641705883403011425068281151821572782617456282922339643535953039756904981888475985327106658155734631907725811336774770407597307570922055314613449547128818241278452913128950675974581993313213276936151094256842762869062514064731827143309237163246749985315741353734279589156884238736603778802180849858483679980620274435454399426640959453261174287855083810280611501769255342883383411817671205594560795806395570458769916293380828841443929722020965810778712176239639359122296549641336130853737626609200974171763330152169053193923770362265031821533254752313470256575575025039172495842467737444622798442414052387717435024921739659897116137532368431394596941766155312751713563539833439453629678616867237435841001038683020524325572566315676185881532970385240611552066677277375662908363545266882855394447794939359246792880477472065309340286870449389703305078523636836141902007905339992869113163273398833546523869485752220812879217696294492028754943113489870402712622726352130851625712109126381908943839110023119802148968742524609990120645153389209061247161710390394210929418812546993596330172122588658155161003891739398897871036947641746718914619706096395126328482779257690817603079813278118737190600140031980449097460888966935916085946604004173156613648296449611864341589304492331898659991893425301660783578083058136971159767635866262287085472443385761040522097763308592615048406002528466884743552787120607976136912671740839489921949959662500310046731648519562543786923556968080979924550057238104568555923091994585698976386149291024766147595253317303255878417028517419564078581948398134810920980772063377699615317162075228548305748416047369355109490706235576297337410899451820274637269074838857283548163060909523641367786928274685550402773353475664469523506622118067592408174544569109089810779745730905330856715022976872687800497010835765001610856304013949221456324952381546875733134781718896759092039572958126249024405645876814093697929665361993227709816633572285600936063470324121365920052751743810175112149684999867112642568828159624390544068776933287514570184368757782083727234494184379693009448282891373171989703063665040988548734206729065465378334670812985537787183520518758647589725562412997300013664577873794567540476256894976009506186578959658713295049514487953340368778815989904840602737794034824459039824453033985127269219346934521625486324184991388314143827109097082447944948996155916131298343302010899752449046161409498342651510888193965274695690684430784239482989397456949750572199386488287382664234733063195246730637295438747675703546492486731998047926218342436985443128245572330621105107992980519186129389529879506353103106606341814151719909237420346242630873230277476098657952736851664706990591807200834338363160505705035073124905860854393718845063109453299164217840901068681421050523787848602237010225972379238837376250699002852001677539396805840524602521600858397230713592358558922414534676863905735186890743306646115860262054439064771702374000751534707480325400220149526494338092512712457486593021004191231670920362579191469155752836390816044369294982452526074289600335418068369450624444914913243751317993507527188914289328109428432698753239259116039479755867781628127481364140200673445070984305630725828988944044897207253261716692531231348225122645673549641207934983353964841774209555485037109329672785094792070736671955152844771344407756165574394158476782108281469700756748000650275255517703793537467873963077428669141453636463136820645710768707968910095096262976993022110585702309901322058313814742758961012601378814385553965096630326396782200396370768460966442152803161920178125889399550236663657357991631231092176277164448413945621007480236258140919677407407470847125383460522187758565633565009534713132139264014039568951090323603879759480857816468576519050271836164894279782305747494079402192953180716369405094800794886623992670063511186508566578197869134388247001965987587931319922544691777163627117921484161119188689143686347034715402130347384301167044112650262109453262508258816514791778256690496928750698076795063807758539356829028039349193138184540498775564738423896809957328976704024153578548607818545447535255022794518400432730776896273807835277872942291142371425810140559080330023847352479229070577246859836683496951901390361408857893883834281340675727710300389178502008942129787378432549786536436870821440397775605926415576662780064785807288161128153051272043009475842181363273086600932999800448532841596707260464392664741348403673377145506947681919537184075680489158458504917707658950694837571804663074650047655542854724719961061903970448533762652812396726154220959074606828889400377831714590978387383465631457467996031829476534509074925908195380127485478061105350241538476436844752361243240126726185564381901600974526572981664760907548870338200798072642697765950396572665641773253633967501602676136155853939513121828535767782912438644052914195890031702623120781762042258300233947905763759790855017923327599507566552960484088609779929516159520156485987419240597545507774561934405866757567660540430433778716332639649417013783952267212977531549565562637666049437344012025100764166154227769046009782918604272826851329160010925158347334284016321613989061387310541164459823716285560191454406647743216244908304004697908820024897114646268765815920695665786978670131665643746635552192338462860485175555539068753508678864221337201120250317643938645200461971708844580193816302085501526381973409790901844578636454852220676289017734469834059278504628105740251921854975446836918907518737887500816270114102949823242081876182096845848878114896100184649605423774489762666987561768006290474351079994392238670425089979727700663346030566358112193941586803194509313982981789256397127925058621934039769820043040558976113941164828290596024414647991424503305938773671076837917827663069839412946274035609543818335825972921332875200577748126155686244997610497438297062026283652923334339366219830191509902631377615525492244404646022585384668313049364903888052350219664804291257378459366839509831114175822358757542407551076324223847251283404624791042920551929065158084775526599280540605870838324250955009821322280444051161939121121821804127226200806985769229124300295266906948489561389870566193745519821360707997034918226148173155016451884618602437176643012946051357370479322056751579069927147936892814195535400239374518670509622552725473173286423628463743735763987480798808872291543328087701895080789273753948505311900451332113455600932471386965480101707051837406746416710798149215449852476311688170624149396313971057546752900767535887705740204858002459507955191987336725433976619521064425470166961775538875349153001022721779862277564593694866339063281055727451509334779287705754794670991933868118134894183411481483351807529005108877989912874909425493931409758326279624200504321722258088703293420032291941459530934669722675237155540678265438672816778769991502971474338877651327026590362788207299646113054404484994723096498891356952749180868905622332473072260297309328408062788700165527604523449268793911400197120770546697377636446727370876896530783618230865486920164510700574911228271416759472625960532160929286360339373158893123478645111577302968303186385196542707912981244200767742315323801398236582145909120597233676306114754534427477266330673605788638696894409436537834672564387323984585610371506077430034378329140735293156966873827900076263623585314163489302057145770220356725285605591666174032670613317300177424678296658581114767406087080151367040370132344949748244003707226701547244948562683175528790392193518830495699490933902891551639230525887242395665390504876894778823021629233392275076231570328084973084814018095687317104906329247230849625242925988204407220774621069613077152019657115557271368909262204127857961472351630798622812872066825021252530549896712823255066565833594400128186393165471005004154419489753195334765228900617789459738840361406977648118147952554415518850330251500563515496024903891843248233395207282122044915033549327233519606168611406787117401515588562125152090646206560305212454093682380721476904305679407598773801136992492884892677105882963630432633929386601395316221609525560549407096094776603651521354490713219886168053648772186840533807722228759957164594791082001999493300051869194929574776699239799586669397404940385030010047486935560104022481027533540242034349280974314282837984634666667896846411709502701278518341729985495420420218863660702559056560400536978265281220540474938014125016461022519489205576136718545939924197275360300587121495545236683666290570088671340122732327007897248738223674618387249183105324479378260876919295630190419470794729051215860176819974236960527859914926867154109311074178496718035967495145967225997063532558452718496120190148023711351356503301441068559087556159326831302095183709920286059534255652555000786122592921847489881543049847132305582161038142488621420296718513777516901221256544452214890080840479907780815272528348030038092559540755261973125381998925704335959107710329562236110098366314993154551505964803904886384966188259749495264640494937058437709246878296057678046263319659541002531527101559434654193384135179685300281097421570497023804015283630571952314958538863052424360489562739209689076874809836021412063936590046762573404844728408101877210029878043328974313394233526799326782193507957419544539229404321137783224614523656938378698298014962564395154392838418923740478810953153752462877543266365862509333835542313654194876774768549373430097915775690974069591000053688964090178875131813576872563053979921481741280836394893271372429454713596542140405402680218456421881844455277907980677393921117736910978112256021728646940019917574717643512457427338852766892790451368093665709247677921267108130039613824872363762419220546968899544836778719150270318360684270848387744303204097960618466518927699936631880608849792584970100438554886445434743560747653181243595321662677176712929605984325278731342000669999147827300901282178447616920630078403819323022172351609678663763114702648695461946602679797457078318169434041362560595441604065478059600974931867259499017362478654039668316494173320994971276441225678437179989256010257494604483752661035256361059591871413710153448639148043588060860292507289266345304905807530472301009081372751037186208265972003998784912040360864935633268031039376367389784888720149750334072785392567327936158395108637609505886665346328639389555634837337988890226131247837302163059852618223186060546364704795693703253873892682966089002739547322909541203704623547771072654221936977313947665129548735021948224883941707562038591595793604177690633196384917933697753848709929324972734426013808795328069470027293236361341656042405716489422864030244604939239471589457445251487451583650095836420567598055293476078217372191729022123873678699727991862022949068841098211825702671522926829577714376213185651683700259141718085348795151000139664423264114295719700468486335138190878510633314168965220555729163045754490535310865313609589247744270949771011981171523814694919732179734978468040876901503039124106873000794940262967231155000366693765581311929666770131027625542587241074129550349546134983874485400569721014092790271885080615711445780478610902777748246735019716971233718199510833499803016854462841289701655514823065810677301807393322819983958547028791461920369695140999017789526358372007251857480241932119104755887432301028298121278516605969463505260654771330056234874733684543871425375031760831516110860255224268783919985612378156252028947373947216654593328434789569404578529339771562407744834065506686426821449871101826919250080516701214509735697019713778660562568392139009612359202750771814126063381611029428387477091376643590997080312342979726871347372086764535721942647455804685870028713154663575251773108443233926018498930075439027940367784468277658067484754283483237580222129178075916463470914615835026186267385668415170619724394450139891251945687040188800263800645754730632661720067692068178563496056111494490944882846015881877127926972685632246207921866091496259032011458532757680413541052702547546008515244920761934363090430124596860431572292209642531485129235130517914518813262984289893694458229785050053787322362136526665792572355931055437890650266226115713383634214518086906939385857895805759879955176234624481400999314486989068241273280581228711744144390329457532172939368501715125180467192777524925917148603165343768433838063428971824660926581554337633249541835416479242761699663064509293556297135348277285382802455307351523432139958563126023408060284426787635627851537034412891284506324595359588829387248709938561543233719753547833365054539383882265868258473585800485390091673522926286047512046142830734939330456326985679038976206843116798267412784457454225047565882374544834488701350335423597234921416827898378552585293165327754147241182647886838613464823925463527293108211188904891140786247348580878254474226622831867242715284045534716084007050506622231763397613856412173534551873233128348641991332160661664405460171287956981589600958590326132701320002511322727950442470345964366125017171870235396294505123937813124013163025822268317418804109408580921041219625133400531995201940244734445613145389425706530130258719420531037495380759647067094161215423617160700607782291366464868932080965427318833158437893130516177317359677106516143869958869200300516280434947700815972084760267062903456180298334494434361112074613136706571134844687965013853057380908228430052687915021811836915525237497310944891845574596547229558152373451453561918894870913495344380086942584062438977611378962607980997137012980811851231707042261032990710309959211086635939346684256897146810048828481354984429785033744205315233204638326872548634456459240753258482148847380882236928377075116664919716769565838448868251828352017625083641194683383042689919667799539770700951863465492867923278211602791678830604363645950134918385348929251033465741321059332082483155791102329571468167276569608433669283474243196570458409291843310409579026698544526111616845744901431415756312347563688849039792576163107247252402455164756117119812030774833992143169192801781563260934143659505976267072322736546609037895437019886177395902405871049485588784626967208706522940682196588032745513739694096494736661914755563962964412903883077979497208067905977973806820241026838227473834786633043353174636877001140936810629338423903061482861859773234004714482274541063399644094050431340907723171061482749481233106174498572636513054123511347554401055676086100246170337216165379203238783394365853857505932203407137652141051036216482667592681613446916053496907629969313272937567135937740912033843327473191604814507563828822800653743568610079576789047619176915853628867984297913629034152058029367744484339246487449780116013400076214380397742544464451729295014652067804169483087662810705578219391475507649870650575263871217308290969144729090501860812406023929465931235862102656337363420518216720677729336796601179191482005023328141764992632806002644361727364372157794372633356924515359464753778000050868886755492551084881622262774391415208633531858920328600148038182630223214150394420675821382500426435361117292011905977988254808236067657679138649339924524580216611096539817777272153689830640995380585020136176801539559394879704013886240837619630595391945326466879579104612337422684194156526756005834863920715078079820582449285063449944381017202791691436414272074829429770641184788278022282067069885021363757149008757397015777654109057291733898037295255557475456783171978561951478426187790051048496541852599005098828639279509914758422880822404026147944006115964661325469792390612535242197219529071235964817166601444465619306926496633919631286192031587127586953975791429007487527603693494433923581155871998116471622879004070714702511769283498023242914584223940147533730564152351716457221871626090185411984708841763559146275707041103622312955661960513816014299851037060571919374044405971704740997534941154809557445824882638256303157260622385393122190586658716774891057871593587117651668495185774266522155563726125369493481593141414439545739050969456112660264246281034977565315171044080451943286531184796317520439920959896503830302085335680064883907936268758349357673021808470865683719038086581987325656568192402134417434561585154943853187207331364590264674132738350358307407108489562682587046356454631872063228214377643305382692277981824688729580609151208658281741610901257189705054088563158489194505038596206010356359891086381686366640771953025226243557627716339638693653359166457256820923075907528177994934228819932243240449505230413929961060648635339355223065305882476099495335664125603551311623734487089597977321927142165914378897525943585132837954159510471294267880249489369769826664435041568176199714730470547576044095290982803085023680292043075924685592784708249154397471660376081445698875234154291857062016720829646035432858218518838919659617826000637010607633430423439997448114067194892270275092720538460630393500721907522812231032449282720320714800129452809236455986777149233963681150614253677936211883958017307749802047000700848054725505769859425292008042519602197419754305447113273035946121033028992289135554326532134024872224454833908754753156429661615068385351002755325476725268876984039408316277683742184462726020947063078941565352303542237261856993180638996642850256815762935894886490581959938874713827120022243760365080807569630848220928187788561700815643122858888544655323696605955320113815109817534785864919703420914104641682883378747268729552006092901912357630327724140527221647566803408821858018397589229021180369024117158467742035080968066998338183476620512711135415911140300994194586881161735862834295850284411906604865569871240946500534614112290387447130023792476299973029038976935806188533729387355576136110809741388291315378291845910078246785758258123649692910671528029305591202021638661392867116047377437735134121075856038964414413859103332017314083211289688769566614584636282806726583423816904203550949084903370736473271300509919420749990489383040777316915330278962327383717204543441824619542656338841609559215563016900866709932671871052416807979860568026972822138486054720167115231636582494028266768094852656565864745017600654601932471385156629093644480813923727370259785296005477186089152731768397994194481614440907079204622652209440721667382946957325185322008287495130558198569447411235145697809450492349084605990991164280765286355246712345271540577007055074891734244305369486228118282690656839690072421961496544295749500098385427089377258802795189783749654336776949649662908324878323073778713233335179727258200272540266180416965273531250809878582461016289554787773778460920261468383801129168048602852329345947773771636548842692870930692940180417103624815256739126399477930008092218741574363584010653965706721413642279614989914836366525615404977865894424464809731322612843266998426415354550259908127941248184175233776649085839574880162258695876461245270599912369203607972405889441233838495797728941856279417226640823498144230369670022232928904361235010192526865717379645455225503250344102958750855015222671867487437168085338484837293998688339934894389673264103105049185578931988774637022272392701318914619887176062124777665934923425365495108332400069548762459963686259366513762569323109100631753741067252517909071035799869346820826943323056481070824774343019878852971449713045727109116528895249888238333655745588044869666182378049153524577773705475080525637204586387458975895354267932435335960914987936997425656619273389930609800765692772079352793192170136148263348606691686230351978179061453222246179991104748936432189641642406266900677657966722570736329881471000584077456025859450187206965144925125237231855168545370022046899436516252759737040160217256207640390211263402604148976059761122110742355124735364187755275675046291983286822725769493477759195949665246414287407887979717171461398421910124892259755664458007193595457355311217372409083242432522294890280124272968397914314342210982180248157395659096616943059832237854457843284719773294496254601387524071708260465333199868346980636340296677296354160471374721605709110153286643549113788752974295251026987985096907015948714967900840816876321431499496031167236859370416778952524509325951851542643587792537700767682260855905329646762977506141893688514795206103947573151748797696143170384557590676544262024115140989675675403039051708891821015606763826512666117688321221086174786459624527440526315843579285179944064086097743905929976744976339793136257492013968746394005505195691233450432198228161986778320141417054049870951297443966171290702483527623791309429390097139665515051304350445531560569221603229157192047738852471572234324814881510492736064798194965535850852944299077447733521354315738545367738588437134330284435437810717165837379262387433081871303091213998770166091371268784575812031898142671173761420780826386803272933524142895413338000684042316116294253271559611625531524897001534440887640331034762682405316789641614654251604216892134063559297609722130829567915735573174827426975578787648816986916791102941962628395960634726921759321342990028763463035002264251732536422964313512687810193303188609069642035876187209914411204801853547980089691190452433335610342785164921279228687172405589612229464492967363514260346391689230272359005905542486883683017596214062915652035946221326250940187501547764362427468935430701669942041360806909447766922467712618346715608044750850902895470079223095467486648329213212403709076479176225065714243665746072249547976825365924270204659227885056845621088581877985660282392913467727880757353561767429180075889030954788595889861059370559564995174167309646521215772770020125181381922657187538699387654928787102391113461200157615064400648095947278485753934166781813968612842763430288978271880809485935368992553673834014196034117376155855812778782831578622734307728557427299455249077584121963432779002781208352205186096278152988987436260648455538211721126598646546470622902738438075325533152813458275487801975426701081261055248404215290882707745711004760439781083451180104736914833531287736292861713299156087982298175590337632769873383376392349003748227611533506028489576956332377046719055696067862729407079256069823203337802457981399053023293890497675812269527412593062487768764135231764489169710158203106021035898258897299647252629993756575625729661591033012914803386713075808239108534269362602573183646707809237745875143115874435032206031608673601187754616242252216811969152818702240510035586574112981875988432873271061045364363864076681512349675416381437204540735794077093280708481005649018635508532690470447757761312577006277271346617527439371603705752055658162630793914302005742410639970070387631675731289408806471595085008527061978280340290729919836572925848489000273027893964046329679383069559308157973013325518828763211996445577899365233773950388312576312244398805015019742752167383705890168895903536283045508307207696579013224114165094247306559753500162163469530680774952466581258494751397833485862394578760846414383696567258531451869265883470190592491855765849042329523841367393321590434248906013155578251887598967536411455827092086685307608924633457632935731308361186390195630385593198651778823099269888166054019744649624377284719376409696858268349318934362847841437379165028097787525219063090400072630939329090920518596420700141641604419837888281369039289128795799486592739516780926606827954963792196414574597358063282646860644398785799598075615444988357152192453292711519655619573337264939976120410992725489912935389001570925601390258442839250315444207845975663643620111700483724141355687848692719302740927988189518447098098734493263745722953698769439293775827618015153792724273394602753038656691317096707771544412046588046706457511014874841589795353679211461269073388402995102080733381915036020457838975038217894820218021676010076396287155287773353919541797749056563175101526480929736875647354978234778679488875519033900419618456876553299006683031067548642513243786610647990476351401938158083201365726182126496211085731258394816609436508785303577260375908406315087215285630390460200408898340435689677042744891915410691112309970433468601203789939845015464008280192557842168288133019277885530950873262456337052734014449902817609842466122841629162757924549491390045946018023610785086442798786475060657821382190517782331884277777509159869010911846312648731131050086215302434286628362366679499123038303571096737907559422411212773053395947012475745383629450332671703697238089913805524565071664164238269281306564771745237059902225808967259415169118879152073982920434533546253463392626631887252562040284508834284342167155600012662250946156131749800012297805134316588070714161093536703245102627347243531184769964054650854024504508369972765021675087313031453896784918075203272497528421556638659237562486801188106720054250721205202861509793371206412217257092852742315703239426951426695386033363087395096896701693851540301073405953383731193942459537278973068464651512472684980543242058958170156800575217361554551036751379607821068473064245486491202023978744195715979180837343224544422519495314020192574680842395372170673612752326953075363074810395535957506030575076804204156532372633549208462085046342405532620492596404671243179711230839670988008093833624579091461331867209078051611617655681688476603986201603133653489182734316585186762934737550176510162983953781787901184249976050529114234135007522285199662343819701779676982758201280862068126746225219714378514402156770448946706276102850881392113267155214580840896537661707497110881252296290097790093927123198305215256693438588165365206806917003155200982232927932220164799869775047495018989357862461122756580504116269858983048846483072364728273332775642325831001857700662366503156198519454084834589514803575347773688083110049678160212938943348262505613330103683846574016245158073957637137546387988174234832722931483671916041642014200523314168822804522338089103845873714015337252589144391851760467128004661341092684652083305088534315504051607515012205361596709522768078939990803393601802255480214027643391479843879521148890177900583393793792933618520036655775200827007699812892264371010628349896895070565032694414465878534773265046755256077922345130040933449376696661456269549448678964872890327017778879096424928158424265475655959078457422169352712711293701413427133172370243876296964075173496741617841711733641064395366624837491644805897784816117403558017988158814773110790880309234593704586246102343139167391152336687258874546560332803803481869113226465728591508897266218497727364726609632781635443974661728676421890879312290494815592986857382105874469467271190697279011489286413065483315685162395635775168063480654619055906212419598774354781813854445587478428528060278787277104183664875659471377649277968065564285616968467321492710680130310008032928904747637687530729346930956615921298961135947109737560736903335789439044830856158840303140109823670922157863967237781281881573663213953588859412282360603641334473804260918840295157981350218555950661584529364260485641741702162464948911283311235415576313536518319185677332285428654693194174024810049950453891918269433427847961598845850550984925763634038946297235957271934701922177231257055579421257966148865055555410948154769606773657394590444531732150969612545550230523673776569116338774864524378666127059382163928994145453201517524079791034887072700454296315971751142586635032913340986843941573934633913181065451439859990661334966269283165156670506442443837916151340110551681164737085020953348613999540706708560662521610628727059959876633120120185210310693671499897751934599855640839019537034362328184059127858583707774159006313325691292536517694872712976035995867043872886533722803667842356655856671751352031160650148564738174145625510691506369764394100626129687022704470268450193146980833979631139802778370207331628691740023552255087963197591943997441602992742582599760709422820410142136453800923942730962963100411946962900847756015772499520892734093025043029281700740351961240465845686687877965021874810147257660025622024395019267187630238511140933052437979860514558722767519372369351199811928906079787108084971498205268729093281147580179024601688901768433303456819939831851159820239744099286586358304214073256585677421287299846984059756308622257617094969179661247908640254358582649763974841666886371758447308458381045043739183706835639350229615848869153791623121897705613677299568731449672324527286889813988556218086056489322032595709208087514305540563111375088897956152931398508789852070313908352201849839238787600564043626800526733066126376264039427514637180776140944085062973386687567807426881927147836687076631442231268212593026168433010522488168728713294652987047174464097317957100605037578417720447375560789249473752581719793463386401503607053099261566206460404467422600370498901685040295954851822099000536574759795708882671866414415682077137005474750666716054547267182751558121655284922291991306991722507474387548432800176293997553851833766582109133063122336624206269251112253995499082228535023305960794026970776991939567958142858574328623784137510327226175658609104680579755940962527485752515898515092798722805270915377563828491406452330684727183488268679203513230874097813561688138993245118258406972546970073887561815795976167988871687581187958816477606963686042356189376989594876232507500630316859975672030541989145229061757718929745522453399995277462134361512890448188855127643468939471415372799603260339509375699564689916560548909317672850986548472975466662262204554262425135309745239727895612136058005347533877512590502385684311154625263089775898025004734741786081691201455084927932512950216171374792353532365795208791229079710556026112827877877504650642323297446263167213292589660459698097354549445364845045132171299117336335352242193463385911582281137939183971930499430416015076106085817319534585862280705803795576534765606417692622196391519814166218502769398819273072861806930309572906028766128567479346887797181678678704304749773224487637391811499210157887938587843892912529558638264504756639285047538348442071811102765211994633131994476874505302686663976631856670174377377044433274120715112374526465190883243588051384191074482642693629816901762583357795413925441787388588451805244391017392163724272116596449493292785522229216580565305954293062744635167080825193581484749293559056266795353525782205879075184685201925907076638481475471864983332317971198002431028797017617585079537850743815570894296352841324695250495668967450572302713069147546678005331420988108783476959271865670304481699568526780747649434776330613524809388379434618548693886016328328497767864302470181642870583008684489025926499839993417035394777058546048023902804686961539278293048842032016004806893553209325255546532943996609594784581730080554347202286447875871458556906915268942456342389166520177544630070641560785752603491796482880095171409472975114582596331034100489439980196357010349370467142023507988290352780425021579379478560397821132862007334667195986075745047056619290734830657950054833494191033003822453872378690654958693980209794073641543237595186077313212744370443717895970881871001648449108012732115134815577905083667660424853393948151731512701022907772429709338256020769221626743617296261366520371675409130363445181095257338848064060222163540538096733228793367541869438472702281876725520826288071756110385764702092959336948658044728156181457198588383691845745878063048483151773459873463585751909417953194089584399719114609725407327843990957083390447503077350394466496529031279603332839869486302747865161261779890419581943476281521595461687565300928689727077257210129090248114487181169805092937621888452225338904044785760851332367227705412935181847003410042693450316210995851332086577971734781084809566530201051397612772130446658451556203438507478698500064529187521522151045062612069850335831787859374208441030842748575861235650434645467015566087505987703149829794713229251176659073575652273077773304982683193877094918534267386948869061313131352100834361977585128450696161112868971342777386379138256372323377949109732793851846926512804599129877982124938359161300584147337937118675181139299174334161939478613588806531798196544766339431047608011849297494155434217956045943240086250528862352080997737997391391010445917073969645565287289353104156865944017667817836331649347068775193924497994566677956224407295251427385094450978027768625230162817328901357925595055752684508169907412641288371515908121001123542168141278011881294367147555956416521264015360718210914156130197538796339641600534966535043465642062766467811254319880258802609339622229177876970006789232687003195235441624874462619998654833608320945801995901567778900580545751509953254275529485910080957957333900514178459995125330502920205992999085664291928631248153369123236388979326420218994292493710199646605706853048056567589723884339915466299217413225951641242866579036242719966090779126715929339294382671675571431210731842649995516909777224468450694373664222282017653528091899129522020943061340845114606054220888382124588897023369289996871347958846749112473320143289899534003932950593682580208411631360064969459952386658274620580542545302594604150087474929726727383361156480115788659370076675923865622687664891987790183030252608138855412702915056028942330003077594535014341945594848806453883670713644575556612013041902902912450609724095899158181550765138613434493493235646376196491452550720459997160134865294802022853001448927916098972747139495848101261114739881836825233100047074540415993516918824493170142192684518725061025591470451751804564240436328307236707275132569198808876935002969867885547398502601826298159291253036954513021972132099738169916168478276020027109305440336193328425899968426891433794120134987715547098283875760178172484056272530722398191314408031354024990083249248447702955912686802506882129103379734162855842566077734718662292758880679842359357649643491808867167836620688835371143077375553650200616464616538102095240780657407522758759149142277928640878794822181796163186348745739038901127344698349899789953966578996974574631463778814319847931420563805095445973812445333362424965837089459572440956281292935445323229311316453880763285921980810539726744420024165769191978491094664811554558310132216942684727477356221005490063218489423379307920970964860115195330028916756801616728613219662487062949330763970461037141200726669520110623590734522621625609027529201866097559228986562016054197119873260542650968608392818903472016892208417413427340004663375832672605723304454677767057901315744385811418274577316226421949779632216581949855911340350814081155909071262690202710761254910192870416061091504897886183708879343016368586710997114700321573722033244475840200239911116286461038500952854621950613123747858272474136536332033209185738309608876551198072662742985215352472066244303866080105169921195925124884758774108038600077160532794441947549229839725610863778527687289272340444956249573645228961422286621279559308240794693088642502154535694307458686263685545390763085661889826815696602610761209273923149077277323777131942695991162837146795752178892846395125308328864796287068726300635693550389519424444579114355038258756078675194060037041060507449352567993618146839101096066075805414823887401689759189693476591559431325452089418117019687951711677013352544854668685985489148935011918107616055410882552620324820267246006716305850588493577355669836191106346673343731385600863041519263938899987916813295875299601770194776371742484164929665850768232660618653888690194003947050755695212227932172179922599336964711123474657857203924736890685950386119911833501475320957183344667024773029955863140486674394164130267983070342166458722522151655406817084652394244938957323353909812656737041139718984229336305179781808733827422668187073864330436390475434125436431564428613876110016064945725185084994082512832649366467053820996638543807644126642803547729712318131222209497143332263200689898080210752140552896073988414226556392459508418487433929309731486400932330521895046272670740867284785054531065191291114619874819307500554208334896710325091381183707009967186616116602213934366097782258913642982200047949618420151947841772088504088340696656676618735549330944056224908383833004086866891758724197576227645142111020310343066792346244874349538331247517406423912151320196874354911771335987188449401347460449993831844543321036940748430842327472973743559954834061632266472732401875396088713027552343617949967256341765659140416107688710231837667657052520947224700561479991656777951633432297245537486598366064914475775996505223578170120843391418301767748538201656158183554873304916101220769991445852247423320310688990014917603601464454354926436021165474974085490991518360193642281043732357101557250563494334909477687880944689337085889221139115809493079512142828304597216138126591019652754621456919279729822197202625612004222991445207630107844541492197610090310630301100103281268282359177845943342733634347568171405445511536148910905305085037003101216271675436474125468628681855985812255384540057967314898131383263211274849493083757004847064099136684725204232867159228264298472040075117465786339391579940893205108935559531792158085376075219596138310038866518671893288264169913404474760184855139197230725216823287288421965586367432457881642381794566887036546211571085604726792787537490672940541441298506793449259773364028203765612376812382016500572263560117317793269443659829504972476730602876210362422497484660547039454889381118400131888293506614918526269037577045180036242640572900110218843876653022289286488951817351207491862051156442718706198388111477120848623678228864297024387358522835427074929354447222874405928967847467426101672196693735297789777517768760129764200434212900303995805991364485842774406038912041371265240134016135413166299984044606810650830041012679993581616061360273722269392804589584579564904502060813241663295537044408912074926609096004696964696198373465783631479733206901901063000238275251710736973061314480928676898955796584607166289754934371048990417622896380658679327512031619528569691568562267802882719455905349120470219259617633773529507769181869104817198746570401081898225885872615138517257365831245934186426586756268083257306863879641089398397463571143739220385754074484124717549462071706421364800109727136788498603955969439610222892074779128771094715468321865926410488996040159295131300904072849011568976149698986387032720709785767205387034621579168390595324960155446575846898507072182116117031491935431798884251219879933367765020997800026873754035833761696519381078651730815057802669320103615059553998218706059576222965239703728553898066109206393889501669413503314019051240877427199163378202062380816183500686799146940714520084587340606431852279793761719449941745196763375143824268101549830343862053987650880001910090477761234701992154115915706501248946010380319265177567619166378508888550851683697351254880487640074464938180940594385156783996889536012604031530153044942374817373242461621599996377497786264445769772107482036439078335961065716153559058333041388782688866656511326004795487482140421311414111998507066281528711960084256561348335150278894930709534312200489242774531566325525810729131604768855037188365588634776542159763819089932749696647095096914795154980105028961196569168994781045234575782631435501631316891865503732438437397581261405847509931152155118915123051191759487397284284194794172587417455952454761297683806544174687753844028041589549597487924297432230244612831026043157114925203634760951921819045765341363112505762281942525775030796126516756037629551305635161499440321664687519041595944525347996259051949960105647485211201989306826797693478639001071726104670750207316317098928536335233173343175393472625569713947139091619223261142591393490550132235238991498403229847525836189003310506283614551797164455899470635799099613889389468979703304326191201339535965163312229586164340772179714259085697648876115913712374136260064677577674348949583444526450357689199137441947204410616618869393540463510309653679742257535586753373384006751632792437767443446877433247759938804473344579568170815252237699187273255522987774794029403644252654956640594870575907771708842100674635029713552852140017539036399949862009982803898707117977977805355345055085208014061150225118887133079537842416829370319264863090039523653184112673707540349950295872252427320464778674086276889526757034651606048749765017913374548630724048623598104996688122908471182715168481074972340838465336393702803966114047622777650052198794222222435333250737956615269924071268823988014305585270580781114187492351344494942630892432268505707660316805414197097363834345423537495111217998289493462627415403866068561711593525463667072214450675855511505177208331212928279197500121696807271587792767274986081321020668618424443485544303234907904205789121664125965953999127328538759152474557833827859421214007738446697322648437047877383990132077036116605247964910585020678659935630068402708876248463292520320051544920656411044909685725504339631873903742990669578892690622429605857046789889157691567302850338941448298254355661896949811696890838641513306989686926903494147476303902704096863545498991300333583147097030386332101154719923402070419672064353544136906222002803884842764727396812781283740377561749529308698380218298666771465304346406571223036754627172304883499553669760604584938677973276069793688252129133720224520904275049876068770032045178201311192861255767241950237706150258271552337450743851649289539324831668763673950477957415207558295735349327562332082773386295805667737019066039781205318881097067414897042623290271230226787829364882709158130724643554833066743230539629326464386844434667052340376705565261474984556185134688529736813274147316403862956798218997813162169375786753622692241869907582025924074725991570113435316302541282722047056959530453767813058046696333501982289671379153048922938464956399651971494984094709046613365977677269563749750694440746352835948921053485961410725345809439308684499418802710201504523660727034790821761517309106165870210841956513148690373299761645380175324242723524377926963839905710693027113505788882090369149816770321998187697545961731954572991556537308244658137199083168929271830184589628403727341636432549994856670203270804508631494991236071178952284266740981991546909871205421457301807638868049494199578580603077071192042602116547090987690838433535958793707743618582152935915711067597677920405365402746301631437379182944211094523977753468365376486188991554678457290292952078460977109177936031621775424856859707573066863205348596989765900132409879056418968812630178681803926742773775400526224522601525387117059801863207127652180470126896494520450927434864297648983213985851539130856683823875567685391643867918413895826606963262345248417985210224925830481822493006212705294424858096853230703783633363933837440735026400895018276874453383231381394664686887529876759243817431389336304801394744070358766680204018474780091390688585125284308859160728064208383975568877261569858166622184804417668852712029625631655460048795729335616625267869602423657158879544090748028939028382099237627149663632659176808194308065485934099209948024672853295036280187799835856914194407989143617786734983543643583466385124046691944387759169831623118896400817360339659035472583136390969190774342778129475507448670871125689022497207746770646146964660917972545832142900768807174522811465696386531716391244104668326780771707255901317590306451416166362754395182120636272854965879076763555105022511963640500483231373252626377699732755596518192773554785621149759859482719972118093931952085045752998413279863684400293801208422011891666834673879651584225665502036457758268308064384220232912176902090577566727737281447042268571119956707762739425614921717263928914304489527276451609062359968905701703430657470718346368253118704837401991554907252758938616823973237372770705787826693033865395301767409308088755689158511119323912854313709585094118298973297914196358330511364601516302112403078852808385735946119772709275875632234488360201745203509934750184941289856014634867204460585475134089273527697009609121468994036074723481329820848867484113366120121355355051180393570947692879767843265383763038896289741662033593804776866152641665190730720196741935369260239479604311616875295912918233777179081025764194488919458115938363719726951868542230923749040859513749762830443351141847720630247793216205910343254945308364088958442140045779125793223214713146586007180409775023099797976574851216725140771626123267487212697780128071482103627069215910780290389532035962373306763223670038085523116783100959937918409945206565766791359372663786475435710004838828250191467493192172895638083850781785876038331186445395830409732502074726956753241317083651375246143251981344097501525220141097452475836397175410435508311584389181156276118833274341477700894871767428890568767176999122864578437232075138979307902388266212463870665693064952217368661534335953226443659107777873288514586064630438868101628903653833157189652779445061319716072196845113070539164147029193603221691957252249336500555613923236540555092032735422686523158081587021040857153102129608738196050426566353705208296438179365003591964285052297169630694856497005715528131907721806203851045242541753368762749434691096923397091097035677793228457591742345013690026740421207553681840451717123994154904920462664585850780627302119320567044153360110017120248987443735793894184418423916725935228244660985365730305880215318353392677040756050378875293672151718456313692223392391417434765462093590773439542975472789208258851276969486508052883431299287223205364650009131866744865735882987582359353762506571895625336551065982968286197619512336858702066133241016469534377302198022150830035738085532122626238836354147280218235061317871636019700164141325492155776204771897045144780647161915898435353709598522079765864851320772355198129306679540403727293069161799478521334483826115419627969136568465479787115553521226022850068296276098397813381936494393150276719817529329180907021235462794281890659252409348016776415156301507898139157642863191269990361142146695409613602565272129862258240427544718680936484946392416113636754211410448112151988544671086343686825888901062229987917131560700048572583028701167642005821642763517265240540831354278573111158998964700846732208159419647159991393748223625685716641070833900725278710036157009147894227648565229152919253510318210832147032680349789348375402655179392594822899102415580403088198966497046833078172303721349698357257033747426431857674006732616488579972226382108846984957106872286616789438440277475939166413050193300611589345671303333313320688362106046191988030796127853964484356226832675832069129605630572692923258367169594241395129066913257966472773630123217640215125468606752388865685772311096652582839028605021908448945279445799436280569780318354033793930942768223566996565837987462586396973889800390744799125399708703449324627963600055399467272498402987196624862216295779519560805816801722215430710515339051399606721723592350182544498026948586936770422731994521354659894633338030188095448842907355961823341730047781377255820874645524189395131461069995444440505982078388850288146274591468012206251821191531719626534008824674952076781856600201330159336511082838429670297939310794977288041783573299549428069494380039569367390940539786962948160833149478154033535331472860739319306367365902378430284128377249482946510725428126895391520145510715993977603721013698296755797236602721159046605290294785952754643598801121633195075463988795315592145671003804194728548338999809694877592973206095824986165512408237121145769587603692464059899652965922533425327018067014476345218943607271347525139876384974970097941236693592704237233316061070048563761743750944126233998605427056891494217079095126996333889945753614125512676117053734911725346321356341597968011272570075573738526034713660014860461056467718006641370876651868509029448691874403436255890871317932374298192212123622003306755961261361958243221245081323106841506649931980349630392573250657711359617068469050537045847356951889376578788906631944628700413614575746104050337901168355340254161427246182311952253986517386758565040958379305298492552871293764780913768423753258196255023884746228924184706712215291117949240188327069012545105897534600604807934874160816373312497155051574040628729670144161539763613262144820159504368014319450016715319000734958270321516609560525389221354192596508060686358223719357471512627976714739549698066386008489760576625499559722733674761545741562602723456129296384815402729990846182696635369352925272723861791167798437918177091552210900800042290151730312435814001655803980538583530113271908542200787722996080846405561625373458786115988537643033777068245009773481170733863374898807392561308969133025713328346566060201905692266040653235923772892012139846357541640818540194270979246888657030173575292274113199882069438651358059570818828371491529072337146168949718645314389369376389093882036213441628968499591267936736407581584205410326461706329171843637939508167053492415991346111759953955964394352367090416919174862627984681295890468851188212310114122332613017947811600725867956915849101929481095922873453800256615270931450994035758086838351618024110965754774286298251666051626179798517614233166909535807810425196276484179407411924013687815077825956394521302074126572674199567944991288742060565382053306322082362780538247929425093722615298145156908292961171648761698338356178924503055566164123487420240357840672167882752343704065804844517582605910713528416056611199458828843655391339352836659371039055281304120631928747983297023525650515653678665902013085462156549648679685088660478296220388195515766414881931037193699626478287651206717077646170295656530961975504864794099647156168844613339363959793231807078864276230755161530844617653445764693547343416019627204233108193053110403947569654460822306645671104187549576025566531301651050370086402482715284008131298154287458069911527191920907845358052388393622549674013858830204292929952803230697098615664781378943737566589893254777416541906920976683090265039082421605222241376850529774063234450512320004886273816136092843189858598414700388909116055502885591565046192646524404951482877929359304125652503672793466591439505105216856286289855590802230157997320782697300973053644862731255590647020136025633412983817258974752528739502414482701428028474951708362687048175740584377009682928677650265830879426888620308987895888289097245022822646913156822354232117475488974972235532357953782869043592892172670071064112723060613661262463229699864794647548559627422500266821919548698230737700218495227795764150640838203926711364153391954356926294163819571147399977868506333552812324861369754480940414000239173245182070085927135804300581430541836109076718726033794596180843083098254427397939114680477795965393898632006298244685761495608286685366747466348532175071740316038150628660711822020423932744651837812925014793595097389698296517854202040883341134405027372463696965934330777739723146367497387357166216132501689890999146097626470066321622727024523691314622785816327568499785628283319398947297227119799305011637450473864088310391884605315694419035750510606966841240019536635764779011677629513839211314001175563103581367018812307092946903221787688526443049345501950750314134840158781577567226435405802385146572992336566413558171725157252235473075754856648616926078493044550616889889225869945384532718347885054555412296906859552845531059728527959832985348623295705676769805524032448791356244416026775174719698925209178735134858591068696030515531320775256851553747225004683694267197552296035931924143239255897438974017526811302018779320497136525085005531891214628013753740300219846936452935577678905856416954607338947531085658786612301707501734612376106209157156646804925801031088177207475766647346564859001056861684240332474360316902727849126150870562864301072505728424804997581830361612277062787083702082433726570983085484101239212306398985451709184929844085044916191465293464989817371218449736968132074271048356605703216635011155153580915498657142343872874435589271847145836235094455920593175590220846608664341057867224025598655518469716180962236212212919132885465361307453769106914305741710764564548832880505616166061282810530084854584780451343988720419681018923787382781798924526541099287319732667971165251258814269281369030148120666596158320104699768326890706051113249136732406319585944034139038805064949856771904209982594105194415822310253466612396378574498545699580347662251695402219322097847949517649217857212133239075014861761399265661903573996494527700799150256138755236301316787718641923933242898160676844870119018027868710468057926819551099599332245062664423047717969595485742976372105998749650131594639608371159028754391700636426310423940381234425583778221942485371939617441187249333028501911464570845384005038769054980865345837960239203433839957615130245719753097770492432125007248321353671697458871560188068304459236495849397750717322282474454889130317230283215950080581997864602191276994161668117127915626465898652005848793819343355129907103720410238755351799492746034728128649311343344205111532773554052091964232962683322261330235496562126693826154222774039247580915550063107023340334189836657647975076714743050735609387165439625861189237819580179272593283206015946957771976727002597237151824340455483232134295437372370026186635100199072778902250034689009263990252690921976221722605600225753792843166344123596813798581556374738550642947649126051445179365101622816626954627830054466589122162931786824907305058237399318608493956725245036772554353116628727597154758061860386413492561834166233265998174633339644427154153978088127806119971880934837759278588515258092112182546268375794385101039764149697950273862893734530862779412467644474410446999618446963774629456801060570425564762015270742702687059903559951993524707903761072553414832412643676208458872565698879629552872085237396496256290279505997241090023529453124431074853839369290483694817954328754109092259397418612395884349837129894281874091566198610115887458251517555746566130027015332979873741585730409539357039419088924063924573514860535241419778251025150028039816503693199816630956842170393200536961970066743814118610669900492897207453369385601476545518189129064088201334182574211784735625537534829113670219702664343112512502651313185395849177558250020199654929101285699040600745157977420246322545419851093464491916250123991983589073839609269526769819856735512888043389573441693758557717179658005116123370263396584769085182012839626654552525374648109052052235190668021697010802594949943518174593501299828669225166815362611886057681036405558154293850093145031581115899821227685211820357682018179668875740020444492998693286735906602296988793259434768464071121346465511609223691393506786927712991725751647993115923974483620421399764209116823232649369941804489653082673197713427383882960402165163380130351205060785252436148670044865589565736764514786280512010744485358605338042659508115741843605594745105046797321291370734361488551594869735143873412965859185369963239528343856530827042458530868203484305844645781555370026333097015441244377533007158257504969944189090287856082533099635360128344174245366587326707531475281327609604697543486354769914824146139611356684565848078573988949460470293866113073940819645611696913520398083560623254269872249275376660655589719247477123381314049831543756048263491163674439269602449401385104590758444306029446997952720520186573585344768513778288917381246541092544885773262008567316844439252679098515163984220195968339448321346405386648554211345663118442006108616777141583483951377726983774226590215781546323504844437416581019490746406356785037589723949301705043360218974119353219466266956791558779569808067398736814464138944423902052622505439850681610715938423193301352457089465142821374505524378514226520468927394336805466748871415021292739785028596479895122375882052689558253448626512763930658589395032297465997044867470215300186322474191652893630962365816422910333474775939294833550453454779844943086261365915033267779929988768844081036490273826471591523848317945124049452083433293777798829381745211248561812648124673466982969495444539038827929093408284173657468463487008525932489422610316272431072513937422414561344453495004348123154874084339407274298964245824177404960524011541675650535633604267773225935764958804145927112017272567605710734036205698928325168704230498021364749048122484331522790961907239439113877704130031727720199130654826565231188986234872950795151478841875915846679219078192659114600681007066595584558666384645960628561643058555420330424705056124837089195207406435847832756049314934663557706539085229707618253680662882502342719683998891646427908582345395103274210173361405441130009098631730197063170339300904039240508549783330081203206642748929162225305960972706511920255710156665357386804290596205282192565603044834054819546744218526014539183639787122746460565487763954136153708464504679959820805662828012727749291474650278936567521016022533157647813497106667289381400363882291850519747210406086799596568420254618824014396045587046472019166776404555724206914298958212459299537300777665405575216162233334255620583542303245193112761864624023843972467512598216644359468423978815236897671908621095192117836947748891384064622873263995830839680068469261283888687181526663715604868601025299542719708181987717072234565198208924368443600874228299958306280724644891207391401069414202243212410433881191648320029574343748234750349330347580117000516026246762096045888870774179125105318976904681735912148207568102583794211830570684005831624982414649921509405191777014118899939388877245758381326301782757852829506373591100843518503067025531044137265906071431188550353116422027740130582323366399560739491321350447594881949101667043249264342218932965261440311234806438073523022838624233739043606523218877581339299760980292692317381660629520011192987784803044594779318868668453360257944170753718794841427596166203126796456854310199997749784804999808809531966138165103636245040002197673381179092398909077687039659770781518725674513340629350928192422593357982899601858736813066291594052690381025875285005197507248224332374596348978647786357268454229669321656425406605058124723201482196506981227566530113118021455808988952085676232457317504056594039792582515748200776560895851439236151095283545714462470620061284071392607425471779419146745172838297939358344533245607964206225141478322485616537141567763958127166916583538191235439659563837099609404244530395093717686694557918128343246480353745827930907715872262515425066360699600853716173868736839719825970351943170923691988889747706335045558489827682168930083381790865598770390998868474704795530303537566780037874625541502101362418993109452408038853199064129539410405986599402072949410225149488599868147504889261706111968226919394263514761710132488106445376734768067255077265441037841262832439347539775575196090475533065381930987648302074251187929319924360716770353566705893259610256940951515744901194502007819326948591502203194253251545112891221642154520950555942653796283620723680417981882663701153929644366987774140428558622405045524048521935775336531105116503966898456553571448525661300809103971536913919355254873006189668259538897866642053048401942747191137086350468726463777007380461186669977300233225962879984684083337170229013039408444783660444326153151535038196980856134671940566627047685484112709185503976202037738068724089867034924614763475903111609591495302031243454227264174865404495931483255132375119042519856298577850442267845982805972488839096604195260258876860269734350085013198827317027494916276133912660769013424029007372335456886499716705711650430633994913477064843645939428896918494622158658402311081564810890900969365639862531952997133407784930746513269286058447527532561361524140502142652085097644498154781852470282337667977880619405254726864648089074879279201216682691619420084743907134280789551573905936111289792095649757480769340892449166104415099165695055352113183412375438625755458895291146750930198378420973890294770398204359395957501597611242626132184153893651448889552548376900302704712017439326731806997504507662483765240869699891598055983622593286677441233297473670118443764482285087567635633579388656035778284449849439831137969031057653268739554608637876251637895717078197666418732102275095915346418134138487827149241876983056859329534329794483176435185803413939141863794302483729644717297989371787797784453766324107156939704489296120758511799039466153857472550528253334040752869798595278436339748703237536670096007462871979123217650984503355758032853082508693165539398287430769763218318513733254893242134758456931984707347470630987328411008081954399364060300306566634914159043007353345841233245408688526276967158883569611257151421720479249029306562398366822941032815473294738740704709731585026872056883621184458192236371666665517231967455293440856492287621220308077687580282689061236160710617136888714889984769989389360340833770228369626468818319159196121008041033225183364682607294548171550753682003259963949463934424316233204504258042475166671671548832296813242808146443987664163396419103413507812240868369686845555338542035730051706012209254935656765173874175501754480179161500202762147499909417951025768898839361178528032421882780826850985036078585034080239596836482742234473300749600696533701530770596910791084156508904427369909915345935190825334873484998767037465705204829129086017532998472899512417126625503162618328046637283096726468316383449879980150588421274772148745174954010549507010216619564349080858034265020857597323785894353615164139142852441491296951277278859095141862725683309649083425840992020489914978972655785590055236981341229327797444325924396950693107791285049460839707765417602198010550634848288968625553790770774187361485171067922751537916812169984491072112566378306724978676356107745857382003153425686998270401138310721073801924188689015641940843899498830231428569627104684687784804070188004221676732680208480920943684262458067586540314190932143465486852353737299720209892542299031211837658090239002385970389711404243161999588098035266899232267932599771309070958729519169044803673549134748306461826836983846401028911891507337912661135918889734699429508509989869015916168533735582045829640344105076257652889559237926125404756783595244488940308844383230053262276788312862979351686828422819910331173650756094983281235798934010321686733662025512079917786496015045164262951799939451686232038082447146706312006924674664934359255822260201701710611562717701115836041219363116593170900579015779285534611491888855317094102091256118191828850916392018933812711111613954852414223514052921552532933402764789431964275138951141722683310455080916061850805217828832734485079585796449223799682244871449711333512483963700363729517091346605191397507878760739946619260091972787045299968059185359297154478208382742737241248040504550508560872636880057335196750035041756404789624763957124567316466246345665789970533290929373861579061547173895347756466675275775260719437758763133973233273834150109716062569479850791168593542948300300276595204427331878414616259721251052664879176868269027812456173778790360068084238183084742812515034385065230696302356775700119944458882177467864562737866125801474297679132943266027446950700858552556039078131333299202935785226108321395181332742607293289647325437469075628369389129749137348931402409545107943364524239593303297217944303494705017442843551752154980354490282814806419203122031256544194211978440029237287103984590937926185315032425207738395646917323660112697008504526303499314575019974221878056141091977929174087652786523513075168152381511139792017411245044390623967319424617330819883197992403490082913875733692076828983374637839235265810119159701479478488397134986865536833293550515523591523037291877891732177351425117707297637169864870161966660897487688362832158252411925269348823807465010115192650038448373402209950299910646233864955996383909207915400071927731738500462203941689844365311706168280230800915389137234395108889030668494549120629204712250229127436571289586103956892116146823143544513113895110461490072300320302209228018747870424732104773212077438828908311021454821043333860651759638374480953375682766619476980243246916765601121109420581881029881150875694227990680939352089774527633621626217748744656764992100348502387874361915591412672109295418495421382197796757137532249321274424945072994457042847724360063498944010046429995037207801106657391735025366989223252140215090675748169862454348309496876066494170900947965212673221833419395103426150649595505997244663073661920362575159127320840017252808342952433363867887563848948095822765168495479987768155945316907283853218848215442865308925883767081916596956437809216077591905584925387478678168957475774355713264983542980993153894529680243218293616310425948361427641568915385542088734213328658186924791797359363618623843754058264048310895465123227936084029500257502031319728585806961340377067661310794183690094457348635103257124371762295656789937114078274608144636509393749682641033110998774719646684754502941454036802361661276017971128473286697326335739962819847510485634590320033337767822134616756980549252776717492083810299773601906661867542507310037327443299296556405153633192551871325952233114225893432844957600834987318160926739706630767724108433431304894115495333852414505870668890269611579315808729450780100639460151109669061089081215762335868368181124635554207734920097066662989135466746541864061307425716179215456478286305809884043863683476918194188049774491232452780493551209000601602791770591697579501787267741963184861895133635847243803414865401190014448351176590010063593715834250774210048418424993884978756229237329275244325863113499610919114360873110557630732557266272022114994487145912730583931265982253267901879510527191080676539408211785218122920132556476693062030215266740541677135758159167106867454895659667981851673710632809212041217959017482624135199378826998653125438045023456280240117592580492554290393923612507353372064236903194847690386334962489663650673587717352124691898130107442594597350745318919960737364492757355112081030283539007380398984871528636978329027353804211687663708867963311790288644105032482167557127354295283363012403639453139856132271502865122393382627264115780687595888744520059438925691117659442289643325891043302051886802608095971166605396787997390125387943589787237848311439939467209203246785218305954784378056926588159355297108553966505388616007534160833816876694362682960174445158338049852247214168292724737335563730172593037208865751999733573375978123579230972135503023882785766416866101763767097955641099231782112998424132108895981483681669204809787996855082057314128245124289933639917629240015367919071277522081489615620183228352167250258591345415368763245385353915492894048862899235061449928226963611744384138285529780071753599680442845294513894494136174920412201784107411618206682233297623575905114510131995190944687679366379953195080623638378838902843064952429288229168577208450658129635372340421943727135710750186871350744119035899537683316622659652210639865522354456374018500667280982968755106527443467026426746107114485178944795263047485874933588740577535127315553289368612433977200293730237741771592316250408878821195076318252933297034350537615114686930822356750594743119100241335501513112817333784366545845215302081975112817046352238174326445049437895617051937950511572989185844973799100150089391921443221241594441987136666698785603654970959203349495107110986765883852733950507729210605537128953634405305443957187045064639898716298652362481798564038114802534550229446740159359696072982812779693690801657383013905070238567626455994497315217518412696409994548951523582229149273326721415070939782002873424260198607372188233710947027388691662303345489450211738442491865980301466826861458953152750818768018682881112396538835057162045575189162310351048366938456752439586845628425670824410363192523920008893321583574353077709788078046234942284297345173444176792940650961389485144239490422750490163213366618677253307607832608612598256458048117641789118463290674480841913338739415980114320239390417301451428382321565431281167239149240947079298614171518744030012407979206911288332828895242157759987306614423554160406049446057582402037900320851477901071115137066246721731762946364969519689069269614669069169491693038796256703937042964877661527077491691710273546102868335081761363969307230861494115813069093595052117537803449957270769058097210280255606401756418952006046183124197196858753551746458566835099456568014818689527456150804748653065237286700218017445593664133179635010653425098236373150998069152441553682105555396485043401085516050844374648036887263334358561071216838560995153782986317379142059644302270768310334062050883106526209181127012640020924246593582268653790252251895689365891383441011940787586372818906557101467255877060644524879644784920446463047490402407040538889720512373897054804702725454437317236863506972876250448279643917934303099290338950284526543477206217297639339893498818733645255222053823283763648540082338376001127172036238183178703989396112602740481154360538903727246575770022143419759586285732767527601784175637165006333543445209514242308329784080151105573332065441404529171538185128078079038589048739315920508510704001243375429117623977340662543683727282534498632953693760394125452305015189002036478763932380060925523988851083234640691454182279058965573909803397934808073230424319326066424960305807091431940705363404747875541820754919228697211891627503260975492033049260556521969080642129673636382255493506750948236932214570754169869211080060248251377486918416619059759489918212378109786813285017773648631336016834510146707577215099062496991998016512225435998871624200726206197231422497683529008649369611861412195591686236324002026549715602440538800646330967241149303720776640823714843935768405805913670112305396197079703542715634916608783381814480256972382423156775594728137740053765399501487958565227324515008917060262488208156765015694339112529959338183790672252684370233202529519511833741206322578528178754799667418256571343504233685578243929099806850343452122767333386347942460754378267740968500450058741483764449367418275975218289658453261664627565597033605908274544962370446220576920127131847452560235375528520974821612179789046597676564759979622178588511232207151022191067492986427982470000096821842427600683824284300642065063527144392012334532669482650929375568745285240106610053504820130210450983770156011184146032426226981604321158681940073938126544034988764744221241994385646850432879092588782047159544846944262830769632028261072755660574116963603925185694319626288857055014345440772293999434245228728106417829327493887688350948836569880266345244882176634503475768265455066825076116463966226359375570765261657810032917791248980599577180470254143497954252557230348368179668017506901185430728359047984499654913541102238795008138722961133749876159714356773337753707251847859896622950732439586765017918257757201888615559431363725449839630505153549816877232668566024900202114155426593814182942700825281604125942019906687124518867473123585834836586145526773212831505432985151578084794637302530729439834179935428869049107321183080062083487786214097396417742104526851441025125290677203349887471530623714991890904024038700759939071039934654648790151656400094845312415342264406036557973134043886329076715855199268626435866324808571613889927419237707790490928509846049787768436979482534402934488990639237355740532978888694603124750769341836288092947656222172750114027635237964796721630995092166438038827509394131596518643157662972208366466998926427176319904001306805428149084540345376695099854367177169241851023862622275073706170773075755955058860061373888274205128522864442392717158237189057564487189129172627435183316584958191655923804013714122906733501483289423511759423708566738654560015558600198090968253380923336578520118832845594534093818581339701817527281620646312834510309927620053783675705835863873997231193132828506063088038454621642661394974750691530754235569313930442364959156133348984153394596340318032427938891526149066791078933279479976041165570025872741076475973698131447584183367455268700258602260875020108377246766410046625061209091917791088535699624918277136000810265310961236077210842307886202727858659841443267989810121328994363296940044078873280175203065668389803929869019706095004333898681606241173545710709352024168135357708120168481959857983695406002453155892910601474528928601595083669036837415171947114228727076535462588545514705249988474733040420302588694581606757188741836577468121758821891791074405533218226981060632192469543809524732167850682905715874304052048293233234328864286154485766584634528199478612127031622445902994187203225781511279327190822317820301762497905881638296337498120629009622090218375187594823924615830525477912922341604638597221921156276567242307785628666345985112228698958568190762656001065785307417522238235137672423715331345423239895383542794367193476689515617459151780379974239915069607281421071625134135063878608460134076810490630623754994015709424098796045415058947584509740593926721497724245042046983815433521578508860071394763706216657317575253454388435287353884626647689556486731818860689915639014309258119924138106272987760210866713489880427076416609046167955167275848894241489349190529235037849169735064876061222098128567317145189741057556072867625067227853647938625208582814787913816487709862502616234423458487132039781258437311600852343437706057850902774166956173336473101171434964429177110202420279806696739349534196098234454737129909777616572600675882261737428916434693831705237387558350465705294393626747067266763561619668063518473491783490772755478202458127646251377982081909654827596991769552387377086690816167530270795000148212120215087949341663957954457310604946673371590742872050530159776367234510473944047545546059261439132423079190545205485606657066316648605063333020470122368468928079057892446684543823747909968594779844520340011097184635735857801605631438445849854503032189774800113000105846165116711325342588499705546288199341465704274463263518874873658471241741391044029263126841013724498694094838928053500919262259517439340261954109790278864760878258455888842988690507716994581410430182644308030899369531516116186785532120536650308053423667882117784275665845123446714498620470278470714893245634446412568793268925188612984119373677303622154070468120999123003374418394134129824487526538853660450435367708112767285746825860728405465027133270901420011714572289227947505387457055419796369549786576864577000267917201862129918954888563051033233650671295672308647524708956093292103083046588098200708731376651621317748051397848769302043462942499262951796848350269576358677091187976352579770005507750892140420637035268589312170573168561280693652659018190522836386460993876833069920584148798087628799219740369714166065502003868018025840163560764016738534940856752071132704534084715967439228995709532346871564673183225204079412828823512791916996826019667799645684627723099560110740938729615723260930860259725064732299604978886517683877509180222619844673978179307427180454096582325871301805198993350706012030232774749008376601503510049355455693250183512877956280377173855790375066226582453111507433731367460485723123126955545404172500441784914254962858274986518362734258635244034614877834245735293756007614586369930585710761229258229299050831858754147253479720785771506016131211070667900162504255161526768121351691100793583882321517570422105525289743087353662481633899529396043470570035849356946769167106940673723758448430299226582612084173505364445197026555253098736372859073945303581589368579323610221530171219331303914010011621752069978465941870974631000503783040676955615560007965748026139462004668673311948757298439730767655275168961946099290371722909760089817469858925178360676825300572775961667139145084129555862515652083275736946286096340205483880543763375411616867816428883986254119970218590886798043975554102342389239358798227139899709229313199010264148698854784580908736793016689059787330775098827599635562974698720393863967181725262700675574915090702756833358235275021250462877228332704964012147881140997502066469485680553912603763244569384102040555471077430788403412928356595173319636587845931901496381588852160768569479524528396447783342667272927393912703301083597480571822967129802795162149005787185159052910565750460599279145975832751581120060995742987267344554296527451233235426830576778194734515494365611868746528352312821116991759296493338940455557290182718725665745718953954428159454463488703372531121857758755165542004095909653598294912431983902278077496061372199002652557201114405636565989343865250399450805318346316270107927748724139229422333017130482587654621613167454089040764659049213399918505499281052956509233587210100802862490890384494579613269113757713368694579659816115532701454138338994214591341757054176082410274357826177371284054098198244998240714866878409587533892060287884552989765298465268022099020063169442888582660494419494604629386180586827010687923963910229020200416698623601955602407897853816199525819775219523128986549420993490113376324799843922461246952854911863464335170160503178068367242226364672280204888804124459504573950202763697237409871589891204183071011833668406892301134563423128271668005229670843844621908183654293395331716789031802045857604902830028885571919083850057979078427271457695347853710198667327159261877287979346669879846369154228107417436778093405282199688786827839818834303866772522115387316234867333929535479294293720686221971650687521306119243694495609679127842900761204281044274691279467506668436829943246607725382178968765621606711885296348839986108451325178251006541830400737739626135351730585987316379284216164158427442733546057321585799203134373193045381469760288421098967392351770860618745041174502953500936056363274768226431777138636413731947904652157585761404567668495294665897989775610458579746476529492342327257297996494899178474597534549893323883170724681307280493704209891653558835294796958455064873037766063663344937944120588881720724809829919737708076130245085281320736405814187641851491303161023929677980789180820879534974151516229946288863704989562201734289384695877910144789859961790123420489202156596692439748478253450813316206714632323071342151007316938947134249152594685164001884426724571214525926769886222101436552789606726970571970566273141430751767746957323636122060749355018537778940422859689061140264000596004973760091998614059037823749391467358639457001278600708975423592818419461644822720747245123098570134169326286734506213346725659569986751908645440564074249764021467473441011290643143236756192101703453398003387377857326348515513348564842466678810162438480185886934127620421274557891768194980192467079511736297841977165914625660650793018724763465143615975812576101831824506037698599770134159539753275913077650422383884056557120233017987159832317723733290024487734692502365999140087723101979440673367124701976718050057934615187392449888877478574642906071447338308435660107376402655898395367089669335581954719172109270784138683615513069068188186869102790768334745993395652690664608984404290897145731139799788658343865555160434302926256779591692104257825444773750204569082688202981035457439301554538247407724857653713485366945938231182948437510470494734368473171873356581351048729622030729189980091251024818660798830672612868638227461819627004909115954492891402400638566061769229165789025796707301254738720332908320982958664656778470106567060628446466388222029416821795907524334128640177093760777831961938329808837117142477975124472490653768643185822367511623431795607388869658141520059499105297111456985288069013371535534604549601302978446967333211911973696734443966224489221678303813989162092382947980960854535515249436008078429919192084164139362550418119436684754814876027893683492780568519424565713323457328935557608032461214845057969929355625124270948191411774751924819174026857461215563492815171953265886427717082303402644309385785545263518919778384929223777886526563192426509713729194586045968215196674459010768741912524675770287136147256659335970861357991445896330833942739097464660460222263453496374396465056980436140489876877539275055609962219584902501133301782181792891566152480226506145948519584952956037815836456221311448456107940548090930714049014422418143636938315857221933965786817339422754387652283402511111559136120300549301639332291011214703146698324625328574840876551688877868848486131497174776103018181099043058179375842219566308417661960750088207777707708548641582735930304414056342178996315934913553261514902486034796939715659968583767683880237959417257308044789400820396236891758877501386027682934570712444803360998846123845642776390534574715554640635520019416832596340808287009073785676308525327194998528916563124253826156284950645914149387190982391063763839386163426126676580208009764199077986752480200410157253002300600019662130200529077867912808200158735169448374649092632616504391776099278326787046573883465255846918516362324762668767208089023606875999020991253436614636116884997924342554332152721597141361832682190473871532924666987466194291304573002707646013067252260053879770940115573869078052532335300706831399183199890895320498122426878738310675549261900992576346027703585720819893666176518132153557121046950837673410668479053294886463136830317311621217133281974146076743743041876212516802378973668862831510114279983427775684451736043624264128539721412468301150853564913992900544116443809040086004269988762327043067669736999731301680136451329861116126486543888852094821202292882765475608109086546713307033686709335072192275606935121802979515203330205488575367744677558636071154830992966449785548013319014927282791727760049245948024178277887264073128591935563674168230687646845857671551229147926823540048649362722381138456456651393751280679420758015563885966607798471207346188792874586181257101307486298107011095854235870648514548759299908835558410674053669289906962215046015575576443233006298440085340063948858441856879499657962119624483500402848069121316010122993725468127323214069971918194045599569646608729980500059737120050330709783356988116615202036253331391245595107793152957659753619867729991675920615427479015539859198160438261196986969851676063492314273918672963190134482776668879435750910220709350350721136223593071358644095568795419496771374724990681509006416741255539276362323779678917771624358455533610912810862899773940647901633322361889860591186195238312295280326278426600724059956815937843635917328334616005354287036110737872909700595353867504821538482954020406629691422710362413472065776764528883840156469595673603363564588546811998559755408237824068029244955858615761364769258110931153338740408217361106663889158382795193299118976888140632621053471823066237027335409217728704274391447183572850423344659016581151237054918775554849933448556736425187463013829460940324262545418869210526127318594730833388035478581512209906512955081707911042340043147870890663780875615948476682973331372493768659201462046742824955620321327304977049907093905818459428212020805223067927460784801192890122439574036623562171523882993035367359782193813894160602882577580236624448655801837419419674797340099986173499534004648599318044257999742250987885570387205600823054939165787204199660877676186080066670515312926891331186122041991143477189124015181554515580457962000275821740071512186230602540559438970314267545671290695799070915132866938114296775770452044368461111357622484264556718665317893792736704131688011415687319077328977687820571075177018450366990737968568182445161412913905101205906886698424815665229890348380466006395362774161245673520773105911924670546919589883796836561018970412698063935575915291502223332343456603611473672357540931406734348268426679718455968098827588168220726479582794334992942676065566811699524604327745515379295390796258365252987606830085487462137639172281876781554949123764785025454092994894824111962767713502814636472950357372697830343998313573644076694872414584102560031578386543258293374464594599725965837006085876240890381858892185816336848459687285517032834387701673771657132338495811283010217388756921989912064571421949110226769744169956487544626329421471371037681355921142983018811929942787377291010175703762063067148262344738488816057434129701630133607583231668814223702714184489768152559110700232584938948793471113854591200677482403472394831969919332204242903767342476666139570160603719026977984384845416266138107967271193973293796055075188245825529300835521951011659680167641629610439341973050182422351330200730490309926592912737140000769822665992166644964698054961875198936088494405888567548496929575510358623237327545931019342763547116875825055961176509194600699388395454897995722896845973885760255332559944116454865814577989307310095312036312426932477664355294296244296271070524151465964850822753311764066703882652900501952843724434155774106168119374790032746988243014347663836045284361243605883371942675936739715255331403130455651833417211139780307539292105776992600288052121208531691209348411583134197121145778693381386609940361638841174240685715562776433626449317426506086079228611775769224287569570278802181559804182815935771416130618246729814507852650786679359915744427458556813097848765319108868825874243921796786066376611974870602074037613115201817530504701532998455779682670695027457446395612811330833994638481706546752424228977183702574565917690651640159498691306683959015356689845792702858526330350237524197942285038382391846866879426308869933074914949654202310597222301016801922534105144205154281058940133874266690013251839106557158551450826072046165450382415054597134601911003298387319720396355896334767804057375314987503640335008332521506805835110315667234960284148215339134695579844669740382405201666694131931985840715503981187535339039849142798351959613983524618665241511500935051051025547702771211461391606677096675789767880553442997136157931166388539735035917942457280412920299020776972119823573245427944890922289630486553036071522620816020185288479213306639745367229727775123201669140942163133795868845596220109553300206013704485479564198459002327157892289210075382224187453297181901423721680402378594195674721654207175615834272194610116920708609859492407726927206769513155413331564274447207515103269387891442964998865415237559796095327943878304636530048714968776218282103294219483738537304909425430997217207107544693799503463674285599518399717110953196237252081367526158352056075583151135489648349877923316483665334191465438141814730271734694898857010554570151363921864866655292866649249138093919049894667662929385223732642854261250798198341288895403691455099024906004786258577078905957660062301634934211380163644616409930566465605275990531308529926134362866860590989335264895814149859045736354850361895526996087925687322713086019719563276849364423362249626272534195674459578652037785676094842167720175232164637957073422578554325229804356687002461600110852989265094195931991045884647963613013587760950860539022835523710583450191222107909561129128060994448715564070025884742969305013856147948194539188411762715667955550617806157812005594412131849746372948472446486220731623550955399478998219486664335080063346333743752274954136972363238628605243923972533239486679642206107147428206846099821488686524718433487974684369268792575557662955212625935525360044039921561566292700828834586733502750722237006368406755159884774345210246032836064274394276068740485352658817832189083440105365312820198960157422808926276753061267152181641617513992672442515073960231935710366321895560375732799326844720284247115432695845105766744595328477780181830101321045018747512662566847354305895542545990679661057650953589041439116281156975898761112308235117983078780171884708488396627669120787463350194132249787300086508542635796047974634933129496229163816834908620531266439622912843605963200668503491760922445525031504753227105051450591366989315834560880669931180362188557978031701886302069445105226359582386673299486331102822824573263425503209435239942636773773488644157994039152929480067563953491543890673254225640884855033624648385082975463409175041609745717389120254141938577973984865490383206029555715561732457819597717059500266410513105472470215193702969948234017257405774237163048610488789220735734797072218597826797254167955080073766456124463310896510836958998973069963244866642229937142183856222848877855635823729895199295344289495905851580776035414957437373932136969596914802639581291615997362581893988723965591912170023365572509275740987150450143322087359952420360738831781401830229758765476635469099806605497578274398627942729244436967241254682336455588540229337906063098985792274248605544698099775243780484859679189426941159513765743996630174874100870456712151904261095201191146612421080441278331980004195236561739007203666137845223232921509129841193983297654472180569007342221353686036301558450378747561130378448201590181539251528896215095744198426793276085107920623866743121512514634248827568882721779716715909700384004512469361739137624937501333615622493152289419443235074704458029104810423367462997908606656576171660045036256910135144718068243149232333601647644753851754177598872632667504729388540575611769887741666935831322386706572384529974489561542070247214389254052763255945993993441865863458455428823397366793713872223967123618622779451975404871311422517359332062719664330687855335892415689480314769309828502465088318406478487632879505453531924424876201177358858176340245538440064883653644345671055791451092022102750646378448779049614789837270712159334567874718545103716810718928181608012652442965304424300153159870715547417598696579214294366604760137671261983712648269544485400571126803374595662364458450485108140221378884267901500123587398333447712259460885299701361577596715435182070405793975612614479763644482262425945689757868418813634113863014334133853926230522223466325759444288159420914652430152309763642062091060475595195454768012318324712575767008341578372549416542899958892150750897007368163168095293700707902716793694863027922023914377820811956865823664784069611447169261819513854164263817646708571379276270454336786844061780144672504289113960908731564357443925555421393632240469646192173305301447602795016730173173358059972888260006419597256583245774693048808458931132186612397063548649621710717864922930932793652615300456057121440510949668134299030619662757645445093294634280124485875767726292653409235182002711990809767539490056401220893005514491425932130673811272402635313373223003789084580437613566747740997928996012481103432477793955864251464101763226368958529059367945863341409730378996373902323075718457731860355171133132982431933626733350244823115246060199515067495809977765166086906177351630398020375252883739120055523043243261200481275691459017197302180372259571276765926640830892495286685627803267591533636309394446819386270051869959169242916477109597818962034837190899409932319371644216780175662275185630760868106135752885252200219030644392834228250496641776493455800474675500304330116001530128949596222197188753191141306607843187425154515849983970383330551358132483584775028991079146485911750551585708433048137189373486687264028447295523734457619926826233098700298794527215349718849634796467835138891076863830224042101475791345079548781325032850984807506199995611059076580247440931612092793553637669075235202463136783080892689263984077517558351556383959714067323600303919216552597770440503959475721625628192001277047360976113471442597236747524150028186863140841303102187418583274846938449345319875409606856647736319533660877809099789166164332490831216270206659743595399969302070126221174959156701646806322478067101788962703773391647124041861064544363276928177964500106471983102837043368247060946634744925917848569759185510026462073292061370623448309092599034367342853950982644104259264024754728864873677871842004153910347078270201794126978379709573257843893758829367126375771972558959398179137635280526525484195631435946193972018036704935143577343372801486463517848205141842048906020065483355945384396943488594287531996768069610781707591060734983413524248071167682618575242554629066214772646072234144245774295727910578735244158082506214730927057133196359288477404673179571365112658092366848133387279766986898362188919501394654560057963272661199550278062770350938815697855456809468565686717127561029103659723062630227804584151432928850919968113494266696603712919873294134923632495057461882161387396340225248925754712006290811085948553002535718079415886998479588483983101336132479234079558660780235599476460708681099730784677314596722653582469127809365990376524357652388370133212248272537066891328024089080810795534196957538318290413734286300443143430001829612453181516306454418002412993117966691936455249434437767574620418921526382262502912011597660415018117351000866533700359215414656424521678565117800556385406038161411390805976583724274963044732143303426767816954686391953047289473088656285895078960937583585140732649734670036869501508011903137932286836021595541061539294105076338042681203481041265004795275869987252074661166527151104029991502085086782481718894862266093817282555807253612353093783160264409589109977433236512533536545978907066961837184160225079796327762289692724573094244518357161120017795727813094487873085908910267324213668075554287651510485622777430776324158095557294230252310524481341849632353353490134816827077570470242665703594292512528514032350135154558305948113750529064989393252094385276087962241032480297942008839118168888700408265173149362074031211563312491598868928192162172940300138041326689544079214752515293822620526477134512034225971145621827487599218782132467483739448397237623778880311461009727568325260098453040492436061805278766218524689065486413249177438849769733992262200167537890886846133685995315924017326089678281284055674654328480671861755214484699142966673706723340887219396780681796657623745573031397169760823572202818104418822771579527265973810943182524378608862574461030353740562237429653014335929651134294583833221118286201998121255787918640982880119619135703837585570491404506354545942624018821006755722910795746154579819107551178434580617432193702878193972291345050008471688469910405008136150898706942683895293911121046178708872386236644302073471582822888257981135541983443482075439662327377027248404743676099903315712191843834177919680185463138112645164176829863508969005332719672006387817804668217088294558371502690110077140116289873428439937724840543915743642725748647656568509431766305454467673508919725886209531094908941532936686835940217202146571595602269767613574295003632255781867109466435669150966916891025265243694964321136389910692236028472039355506025234203183716796194872675747247412813009996559579756948091820004303483335041180382275299445358478506301957002430988300856756807098184553534004497379654424210614241022991195555862332071134044754970018155310865143348091988737821569517414841940745503142660545824308307729818393101171350951375368177059767859130676776927210880191633732640508480422682172914888333999314956265073913609648590977800923015710760600032922290924416059916358941396495941118020567870430175880607991360351115340103964176136309507286969633799355911827021522706119955633727540005350016806937515185299887611388484063746371555545140877747220186979149457523662258197695466896527789717863411074087356485486680742968736917322650169530756091882522096685085104310804121102124301798769219126425347388954381150738901544296418547050121963019363174134730892829750753459680601377980865304959056852545153086721737126390669997942756172338588529545593418645055830097106705676373018442389604289191991938507292408559315978621886070662664714052193862121836276982853335472186233022037672432600168259011988681581062460464629023234169617462042697359384936662190678237388353295854059932315602037491802857065921304704102952691777091872860611459829002681690955025100505646277607340338663647696917677479087607237617803872335783696319977082916316517962449115107457019458046414723829052432320504271837863744619619794401222273184187575006663491775479121583336876431524805051812146147299879534793928159770847616077113328898953876930327371238947363505237907301154558012323546735410473432322898532919785081046954702411326845367509205058257041793295335917879028762205972659363706341164123702236996848470221254731854974903133607942624445354062076135472129577350219340516568584924852878755044869683903901640340685928431543363613190539518499551487230205272161396132255138852707222776193291188772372463470955896972514761474033224085297816366251803306480271958392131873791977103716355257055449933900940817976459166500120077481272896323175716118457405293161452288734057734871008391107963027601293284166847258736188652214932619296229540419851804480435319735135158369608789060014311860699083080592140053991943755114490025943139195109968772087972394158794029593226111521113346834347217803171796635757168770270076162877882629436718285915472465967639766200024824155900738051018327467479365740951898377957573490704987223566031061408633553889994803026344497572574541477694808444034043468545597964994947457680420526405453871021155016239643596191229475516979936928053785274865804842308136730961741989132303873966102468826686549981342120809778866810485692029299724085969597472489571750311087162970337684229815614555856369017914723174198454138502445491115111886460953231564760261656888748693887600691506579533889859441586927945604002622273721104690715169167428264317952746023977579994645000685231081424014300099512525641853347101501088837683371563414471908898838067833085017399020207964059027645504349961004904550534018124451014714696603555831624962319628181052668303903561948193487229630026854716280289777987696941144738423777989985722066729718322697819713569882599955429203112231443385533279451096774270442649819010055145719615945961232584060207839978655114502629993419859185194646630400161486962859578251851787307646826018585583958330730115313069149840657807500436562161375705158347136435141264870784160103099559730218515703459871193099395109754412298464860798190296908374448198294071225784201434662366364133829485912631035570144206574321846058484322761557299993475356818059915076031645908929180252164168545059912175609890618082709551532446920833469774879104636987848293572661811926896823968835764657080803773893880491690023152716851146369609133762226810501431229507062978620027196882198638881512081308450702084992051954599512228620378753017303642848953329308958540966090000117367661241129542754601014265714070535209496632728672931244147219774615751573821630706612925796563322187106397806026067310950929793057441802792487734600046125386232516417355700053214794157874265592244578518420268081356087112698816984207968098908480378924128802019898180629547777690769729702147979717998311800887494430590712603711806737873896649826687927381418799893624950586243695187373638568354912362078225902006046149932514281259414592913739630404525496729810056095965902599867804832739335431270916502401185495616967704172556884328405379668984193466223000148530271851926825687170240075579577461778745285828635445689624481130182245194170259778079910968138803804712277837797878294663112135192419439923079077448543419635623107338351397441421090977236368176341693883556146891692147077172095169630034309123528763776088525923699309382363137159614262790328419781350639142498887770062972626450626806089447182215293638242063245752946780800640034166655329425493879293338006920704135940580271861041393777576220651650564579690752529340953699960079407779471028836300109358987948116536095639498735660350835223870488567267513242684186284035415693923437940751142353271550589271776086582258039316143076403573702692067292380121895637520467116410514232365239982087190641253069021340325113861303345806978999208045921388042315743284135890023976113072087390931869497022370259568671247654096481157401635077248882604616175338942047521733303573999625870777103500157526682702220394687184999425769062264020844465138857629430033219487710449738091885819566331457717931246533603121802404042113585408352938583259947854388353311015346123465717782088609721542126300776057899605152724147399727562025209319500216365202628603352693417082064029296967157215472245221493415652609919629474087319937726401562261217171648241239633946000000284628437586934164200578921022590051923552298314649457728376906027244427505334573877874117447770901205995463254465519618762025058738925752284789938647096481464632376116967189398579090812219294224507736115575889751976088098485945191295367011424317566196378209433194591012844049580031349470157130732245512042120281296875876308998974622092971184589997044003762401111120047269401663715195634231324966976092404433230342567583117938209139378205132476065992060832058544867383341324501568391588674937473941885506972692139654662794889841892509321752420322380040201612910398333749852748797135723796648317297876996601802492357193489276135538654931592215549940282677097220255785179247598879225190999390807945212628432978445135683984018779775973867425943607202688093147641217207191742125861213209301886279474961431965669209290720373347754695133407699704183591256740099407773832282114545691953386537775853062306382899275077881502849135065868307141174111497404102505673616825559615028103955536017151055543687903443472595994425079536434731958193963502798940217804997511018135381207214382483905868749909253581013967402486327378178398885323405722878483693997958385937037601566090971243431198516827154392383713160510682627089256937085737166358222857004059428365420926798018221249846643843693818826009849856466250818241732886916204567837808355050870880119675983668409250270281139973632661056710515882595471100352189790932822086692342970437528232199227950951892389269484849996837029859992755108413786061601530236151701310719902114554760142614369090514700947134386177954092519186109898107394785544217741558380845551790116991572243039563861241530616587422551744767960666757471505987193152353973803791593029725552088884526806078177159416862697017840370601805596363043453738556920964921346671558581392789935450519815135697582222073664622333409897774729836490097561345105314282948556139333014763549662881382997459736856979085486607026586351541272035681857204588225249577214835634824627154112957323129714918897758168415296792846051431023933655344631653511909509579619198972919012016500455862281911386707179631876371577271064749867292400448564174243645815906427444275264247486275443606240861850529826548297869590494640962868484295453742340653080103718405266471319287509823799583375217647732953409953377311906115319324851611090631675385698558033434541453724234007342414655452739052968134318572158085286963901597946771762491325731583673658758722848698055950027477634389330338611447761234921728081686809475629558262436279685763296371804041456800714572723015291641714719454587974340950976339694403359390436798681007792442832536788327212777011926955405647612924444341545315410355790985639577373622222321584008441938873486835698483537534296538688500965536864866376610206098342249038400179878477236420188781512945384315247584412471398586918130831488623661178090582908608782794657314592050606606157396603444119041614173960281913696865371290821592006777927874471506220948558733798784641650971711555776709604479385270480249335297724048810599324342865696024578371191906531105154647658256847012553242992100910453506808853183323706158804137824050423161937950974435367925266265736203667044688532999168405185117366225821280116011146014694174260264574321060305850743661807884940534874033480263765364394507146683515504938762859934610559271359661953571916748885913094656187131723798612215199238048826640196083510220248061249993660566941433498637148538209103645855480848169539160070015987894379401600959535016309638764336980322475481286345360042474642346544304630134707829866786819936939593987325909473116307617458774540150917012315231713219066480850548429868259372179179002299009848970725984210637065642545910173047000312504964456146907863198745717221970080229407236143749788449927500626941102224453572719337021971276554327038227117113865425961565387629035578892380780551943080618420367861305023353116972821036955968179550553032898148473981858631489015593038964002064641707586800549024049811684809560207641689645313850398250005948456452620010523496331554462690614578762156472543699585877925697365978625095055353847858367281873233237973245845725793527262230921198867916948984613069544517007158467654038582209604705417734002930465437780638513590877256967012103730041192711811653732817497359645033999726632873176802962929287716932577836360627584438221735564050266455607241930661380750105568929343451632765300482738061498911609929500921576119135847490857360222121724876586083243650962544196035855656199209253662513578449585887773285035863026356404162195692582497880022250796056142897965272345712233096251969570184593019811443380451308812946092683276029911384607075263252546132281462369602327784099612402383638155291050272518293745729076305976813619191013404342842542900148468243699632358434191877903783683060952140580870316597221679102695063406464394074239702349279810158931106720159927541774952436424609475552773518358997433812348006711063656875558514930444408482388704119982353726102369745892602852306583460643569575407023149103498143975077021160814404233772043130310709089017132864083515620816527249184312598156469557625021880040642514311128192259798968347420949157921383094519783043222015259195565835637054692377009125135460259527512947069308009107499423329794245394764793406681808730347589907935817580580378780712982030375277882167217514718542775817343938222477320515424524296332373523814370373209837318362913274466963198169848517078325534005940694541695098987340219325337475911672893696382321553224560077443862824212640175181336045883716731083602679976148193540498059914021836869119750951963929122980682191249123248819378098439205319627327523459184931936439122566515689854035533942830882506961458341513629208400179859188462739021662658218222318729991120012045833563091581786447891785335894633259852580971185893070281854561565321277636088811801831014045168265634348448668150884259180235552960222777106165437893524023653367831035360962931013608430699482959685571675034482149777658990537390588048310882618120328995865916169613578149014988412922407601660105857976595763950134177113729787602923653675224026434314962416388961362659935647790231970179809519123052320768237820493564962581766949868192988460840416725480229347271282750194226246158637947638725390690713124100909604304122645556163160832943317168726781422229147839220704702674961837646375693448000391880748412367923123709740895771795991491690999015698393093082361180885502868752197981190516327513430410956090306545071540470508960964727713985957504483505870245362415023599498005783080786655236449743023517823299425246128318270687915378179569580623926028058953725475517617124470945728484113390395026812916883552851613419947561568732067343679198445227332031438307637112816980278800354138991783037674153714873899903007792619278972626232817178494393251304872955882199468474477597569873519646647721094281536868762510032395338248495240082165628405680794446977540387902695800279365979996059127707179443252817889309418532808558600316548837057621846713531375470847603258558182252088209577218483596843730626272664576741372787682310645017014064914468954854665302906298262885093882112755238997090221457765378249038731202427746256498933914449391647343058091990951801337463808658157239034225331519292270036763879748902888839730051867720577653860688621270020835622778449902356841745946342497974099537328174043426775927040279578370268405924840283421579769378765333073186193878292795861379713368831083411508782428037231714605582679532881732947974627523253305684127536779945411634716493955912440591315040672939676132728497570974766558144990590359865607067175789494194503495293891141622250321385271857372943634944417542724741032906067441798827907054472558418676187245332586344207895029662393799767628574686651434999440934453793013468355935207953026002697831007983514418317592165742805499190265140376455936051608078122699189886606887426297237597684195737918263421360146416230997570487678327654312467752561371838503529514027253188804310755073662758433287058670857352929717734024995241243346022696156209831359204780505571559741784004613785842735956720538255047798307978304287652243529019321545545285165153315638274474757430831264076301411401962501021290895574056667427627417810788131546072595591965065557451438088359101185307262907048066579382066078206725930511701547830110090871026857377148186535952346822144501849781403355703862279440758405202968203607083840877473511561507309788538720314380039718986187819800955651496046678663294973878450495386380826255235788567490291550394769064996780706384797395373779254042760493221345560817282299421967777936242569010601182436669196808826737463218950249053070794345657367390559669397098077356223028490646704356761206294198462228859681849491666613845848588990696288892687933071026939534687904081854512278481590657888796819475849263088433421711825493948972823403219591691999578429276424554849355652721630244311144109554982815534569754871268046455642773364114624596407957011070974937472755019611361112625975835446670596279272361537174899302735447603042102749480407977988251987744620504464904576265101896171173327475553248284142453476014279420935570390867539401983580950503336651976371924880355231161242217937485955412253543840724662028852381517119495746385520097858440896070242232285088016556485611460679086022187791816312134399133498854219805861289734429595922917614853481981386060080856163309236640824041611407206206879730675616990870620746695418315607929148099352117623776489297216859797765240043667326208498673175927201394317949195335679247702651673128338188601977467709091936613068564474947795574761461805522273924432330878975374642716789279736371970469504474429193899235854235582512492205201959505238489138866073729608308282037997073980097194986664848464225843566114909790007736972266840116936385031452141323950719838429918159869326857500273219778741803436482546988579871542864621098221883526661836283431370856946638495016550838301812637605488530092585793620896822969258923371293802873812271791405511054850690309250849972066979965533342837018014779772388635303843610808160310466165297612553196362783556711323370051196971017491082394279417251560410957596472578994015241487407890118563201229440621813988927772433262362595721547358357533812879514904244286445009235179215650389633740204454444872693518508092721510839959956640539196564319727608412273225331647633281199831308024904551683463071582619887226638263572265150265746292406656670094727289543299246644397920804551459814043870221048031349942035359733583444264227155648058686876629787213950264593892970966728684917529117770648684953681680020725406228629070195912002725546541769618904192461093068348106036675448125271205025149061698356341302535066973430624013840628231473829785488620782724746791848088017215033459575074719676852590922599948402388854687005951986267950799481847959189429802563294098024193395624487591018558774670789908414822969331235776511894623536071252901151443118225894927189835678622335397177389507875959748122264145212178877676948653093377905428600277071279861566842768282583941650776641060250873497352542398230093290423030133836299350931047316308339527191881895896871888076205834266234417342535396009373867559013505894709341387855025411521182889948454714041659969850007214799546183803034104956315044145467475181412057314737121442574911381791157668864910922689417148806000182993720175552167193794674673193805521299909408924060961141191961347302134919090574625036417429583807432510314295127607291710440790361039501369147227611178992564001644100148433961626457029635002895693892298960460293347919130690473402440993405139266685216871593031854664398135548750692590482343552208419373502401987073740472111361917815602942393219958691039666543933837794390183083528622748006926307609816781508396095217749644459189247114070257456680456800251117636814682025823935635122562270123120564491624717667594048871988949656414601098078338743171870003442563030412648067934862661605724348082240000835833792176105159275703144559162738541269338708370290707594157936646880411380182903599387532971180468854030494054938310136300291706661457658561303813399987893152149905515038695649713185156237402658756689651465193401329886436698467385939790379842702486756799838958724538521060093061005434945827854496314963987192472525487937478691114508237299497600145081952245044355600979548974098558688757637992753915935108860872000848766761631286908517139907511609236362711439555708548224064311541807169782874892592025798087622634510276183353040895387693305095021643942365196709636291276685845166031068878186832079892284279688065604843353510040103238463213217899628023283184380508680672723652906140580427839737205240635928548322477471751622063304809928527760469000408188796213998156518182514662565532118388625988554665491642764411865513641372762881594008553307918091801609489994685561879816572083930007027564380745027700862799949013967847429932943984812246111403638224321081228746615149407927457590934586218073919085119168899784573645098541891947385842677585834905844255021006612618438400856250896865669119182781043195738454037314531436148137224663724749647687364619491896641625812378269551144278709009839318796766369201303946583835345475936484544004867715192477512025032295475670206945698699592600148990449385581466828993167435136752174835000659526297816268641012376456123703791209574921363195930252804690510326697419196626431201372940051765703263929648352674017302831232093299013445630981477457855614022072572972063779235394617205478608752740535615672124055077222866156318601024151680984129216092576599988487208938057909504593395632536826820985612307565727212731632227815429984331551922719260950643565433712031571558206925862665643345206756185929853758077968649709262523145502015475626386959492300078847638950701678912243906499496050732121529543590217572700904737214251018760698181250543225278901190187410603229212638752019633176377051050095992984382436559629598306766433297609323503448473519524423084951003845510991237183727749956749493638225685172649792793549477360664557569985606073457725092316915415713628954638943166366280001222607305090726294346539191730698395707896723208671121902618076825990146478100873836119030405569363181156796913278162611337912107498743504108779755618610155706881009081107942702090813158822175617045044694248675885226023127229214953469973666594129144921330109591605057213354501596043754734358400104245582711975470084813173928149568796658799953961325678319232738075057972390053497320067185764927986245726434855357578152330880454014499805447210603372895894131224578633959645488826987181729202835567124164507589737183222868073174528639122287125020325894023824977736057284555145101614048115750875219142433600265335270745018664951446765618672739586970908527104963348584468303977148413383760618431305780116864527027730339670829008886039073910168754413949688833201748614383393145119201988406417604820659731872316639326775246016776155012992964730278115852787220626657595548136820331751097404000309472098617854192954991069528702813661884521381775277849945233536944590318354159418186242893331286932931430053982433983245781577289209291542641193529242811291521749516840944801839817204158413156029746183720432277587055965273756702751838228919997551454342435654836621125115168688758355081613431297206691714621709230135758253187614010294726310383226803072776552986392471852971422373034861472120157858037714762653295525817224728231819764585321800332534990430903183577956274960812234547877960932141733377951225856752994923799981449477977760928949590093080716758026053944988947030550421887387730026270161935316046033389257997053162045575645407410517657511227538894616412894745950344388352887350784240039671607764823304479642670295618596458082199627538903785232287714923354885388955759766441405885634984621612856358092739552664756558398634678611915086824071670768845521120171530982017131616875723296183895619966678158487280873632038023331421277279482593178445106037992162334916637231288501700822788702887246148945525368790312622849771067884349267047903598519027771813042038630600003636508639785832404727171668934856091989679327323423775152859539323382560495822729429629258109405091709099450928952975813091576010361128797199464418731415190391277273503913428176810654905326259506580165884401436405332548278498482184424473675442277583024296551858541944077912959160743423125659007678233127644964712503403382300965963156763986879566280274433072333706930773545580962300981238830993565199791439361839005572718905029633412748536930726206020953477960967741816632680231615102748675182093576477659793786840864153584714507928497618433737789867767525350686482246455453806690293868826316540804475349779443021216943921249654601891042456162179927118221372491226770032408714667035602073559144831737382220816357027808133303016149897272597913786316761535950186054206962183276291484736293596058852324426028167601180460210337881491371212375534269057247269639938329440129085354575711212084722934286849036315448663012407096342437691042726389014401314704938956688061180642535727418351829850721419095982247170663541685865854602186335498715107323620601056268476973850839448779923706924361606014934162435629473788902963645665467829304154467491755993064447572434331240043521274405271303498995467074365269411114526574378201974672554905095151533710518945234741179114153010352587436122293321890436976280043825850536664992790152242336041249008473443151777289560923198792500717845183418988034996086947084839222234458411485138997710533715616044119919792376347289714797472754064878542316057698918549057395778434687384756104091183822466851584457828980220692909015141065908004159932266509733534469331629330089067004596015914069111712070893101421348973685016611448014976367563483815191446244222040859627860591922141839750680877266135513708117436295749876181269281243500083991947859015176663203311601384141504328639274734264013392678368013017864651162506020919123298269003785947464374621322615301108407532189616239299316403721631545632864545699731222061809546544543225636766404977856742108797519470076739342816091592973375157832121050248815587774131649933093669372660671813021041963246081959115556032547637905925365068428112605780379322636689833843334642875680660319696907366991083543872978608632215526136291541304905795789875678279994727187788515034726256911304037977828287017740137718460406730950658355480438337539737485176274459855876693466597331520873438192387469237205858336034118451081402800067530025875380628955307786119114624660986186047311658158690842846848953246104173937343175474434073506588329968767428377615768670582278901861225994498195219245703891900642014806947748135745515482667662713020628493863775742951367704090225287584470700020504596239645463279295394946434904030877910870893899891350072068508077731593517087912419028394949816092202469041547924117879023908459391813023916602539591451420442287962233774479428002758127406554173986161926509251035946166756162679843634395260765886051941050686810199846073593374038326023197709216001361837513240316161988841858333866095822501972810628351809343503346537725248713359722246595793405084902042984181049729439094467303383852149185149367855625473778154143556311350276346608951895897160041303916311939676931310375161096966059320635884535713725083035498234169489441738859593245728122339066141921850666793740291245925425487327380784667908387638073495881002618683142652059864196032219068732399238905783679093012886293414047906305944778338514675407560562211034059386594463112308168851132568069407968682014844313090791316746989926658959072010127978525369578791544484004682288635996622550160591371552886634364429188084458547845071288909447184433962802850333993722242844013075063060847993764297626199286453313240234996040502326302376408907505819356260462829412397226482187169312516296899507717903396353429701277009144728573714566633504368120531036666063828011945555848990609984569183782664323373549205542187922182650175341696205036555302565848010386171216565600355638300504141987985746893543596598822709711287994978779597090630808873580937023787789306255048827867346541448769558321894303959333966100090257570079964923150259711557768968003885927543408486295070856400182833644898007891085355371439706970620196123660660391791622953721533326642555799892689713527493199100299755270985579375472529143498413334922614606814143366908052863310276223517208306416545355797682566441981184824555464605683162791161250574360237560520389902027939232964373796733094172558197286415985026376593733067138433422477897729507387133003358096744069084395336178156614183399930025342619652123299906282792946844689658367675024209087826561405130620600414050879188463789634999405440308085768408118838031886434450251676599486823398477159960862765040386499016277065597204455422108400893521061272844046494756627374611859142912326916422814298120043655948733500293019500287988184653412025269606854002739241329047095177806237631324945594706350843225183911685092743703426132407487652219838216639626702831391718453691268498925093930553271919466078068300880730329037886870576791218788627285126614186845233151550575973840867777493199250266933157697815877938939458913236220661907779926629441820154958972974714911812000822989620378599113631513916882821521712748465347400332678608592685605699198979054927811405205093113819592069380401131148839697242974723863017384139885323979959320265194326191642283897853334899002295742618873753790333048633398197329558013747968683784839884384379400435610502476008807966631033004674750938597493341001260969428463431918732896967112889591568098745083245056322249837513629778188775624918847527675622126767982244085662739379900935788001093666468179606864434241960970177351462822007879251851499869249371454675509660902500287055084257360175907208873612647503402451484632756108544803588090756208448681714547952196372001009775495025498994243333643193621569898448388691144389442846146658861903639793278117196812906534774785369889523167675003761793326453075952497304215113689818637807694590974498514721512498618744593785540530408044371647893703859874200368980039930678899387506752684418723682256058489638884319296595558400813404143578677384380117535227182082523950313325671724047205366858639870027353629348291048642557356639859626900805414041650620090913386368424505672505762424829637824879131455857965877730820603411752439811868629357147159246777485180342192175604403208845897250243622859368155408687888407534823700638772436757635741852550647523543831644138791919637205371970884972030582631995868949314877932769963319802626468267853329771519531887762055140486385280710680889212972371727235385799941492508308903172734985108995116945909878331523302160901636400018899449483928593066659192383096803669905260309030617048816741411911596867850378126331904487207101509621907534822179723090464965302416709835532126653395176162542291750688586602648617430190255021541358218161933776621788224831353802526338009232370720862575138843971173709739727622096541994918174327103766132406687994748132278454005578044735469952470114494163241318727912660359210442372683516730192278988584792006787815796147645050987767543531390735131919516267542728261974817335545247192770012422826237001162355728616754351072240357482457937719077897495048311667341083449202807657024881646609793434304487900898074934577252134498378414206132900838307165369391828528049919070271577384430877038251009647113828623262329535905942813473178407151335636293284267349158745388548723735862317963962656490551498696044211862676491741734321232665443655524660920489742342840014999267050570154395863515489551744359679705102516674521229470446617643014225335202726441801852116358296526031177266280630405595776840362424282051843214009114187544504217196813941939180649523984964221717781430672819351596495691334250985885425487151987082562219012522398781805621479938751677279445462000664841632029469642762273058843474770184529510364324229713376876752215901309871122795206956246744573211474961781642983048760498592350370759038426546048758888601776107986758119441394985416421946156880248951078600368946690698807564869553576984645104114534533788462075718152219501250540064594870176346452039503140032648098448392943153818302006147681269237827836712994279886964517761430144155328360532030839926243769397917852969146228708196708236843624603451730202583445986672240752854516593914463368783678310546328156860971552429032978611782083991355057141093790906588926327459239714629970339062101272973466512794488529250525833762405788912315009470556705960338524521201860834727363496454441808393873479029102688709559094617216755939686185463279526759657597990655428597540194434778581734948562322693106055851380497526562551450684546873398047015368576301624292402337483974723500943739175296825563735256738714956122140906841831741312167485042624641889762115585664234269062904861647450451566098577334266547618928175135900921036797758521238297642200723956836442598183807477646960945362467531345613608794292937993283164973205803209928334927647870065289454403743305622747341559097812248978298709139158370663981850122604180935902905739451415710901136919321307189678274688573268635917126257452110373767545629612111007298044241088742710117991520493760674932992347581275474501733611641226822123771141448851666726068698585402601874160604791879867602863092401307187568794418564396820104690578275095538499499562656902360044064311025395317705196911345000514920221531518168144255745816676994041797203811962885070986213475704272520177670515193208031779258858090833401987695221915659198424551904788677554558032051887054908992018483410347498721387379953475444826121144103462097363140347707630482207683121838366701883132037932023740500215441456980475899430818470529948788050902591360972683977640469230412152488141914218059174051524905382380712657173609033112315222979027880316085708429418959059825169040727764334833359265844730161074616833423095243532852124391785407127071196282639551100109467775305990100387363536636747981553219439150477929679840155018156338863615509216544250499321925602943987886151452702692405570869104051016258578001492361337142710877855981963213353694694805857864479040669583163065444521609909378108542205390582505021944862841688246818124254388028418369013830199693776031795801604932223899704175216547775984923909244879216940155917599002297552153971848993057367475127052516327783347431374674200472554156711870537428404649657278591700303653940151039539871678090255324020400274722615336106541951076402346423070797081015492139075040532354637169748915434349572944916539023792043620208583424576465035136228840382665731555186914711858284549433530444422090914780321389829832148013934936787067954142017819818763794311406429080823140825127491516781445695512243426889272107380305975063917231893749068490538692766146134514584104564633864109316471572678533202010466322016579808226659693019019019698212652230431904430025755249655178132226959734788593345198786779352926820463716982656693682460126632803956718242755707824148372083481187527874745903278789979941018070435846030635500676908371049320855011719595465225649019580588732746505479696818795844618345951471965161409218181535554997565060714926925921182393192432705078703024930441328700195843415999522949060270944434749323194062232319372794794020053139389546905286384659225811819078031181332831003775457238052307517378200271319185501939577062885041704984868146338890910921672296073209813511019711599501119511183422180410724751366847101768497615146993357858789886559008025613776469523143729593205713778092510635171358727135262365973520021100787251402852459240056332940399828062188837208000622965994030708008462733611602586002875719530250993849182496610251061483292213593686437571519158770339217026627872892029330895997950157707237420333772494302339774053281108770386440674950643234996936234491630762941729391512813390919923587791420382538934465609402156635306617675347282293892856256851195869864892471130156407332492135722852048582473512907752723860734640004772228280454933241276638944674870298055478988425734159415620414672873202407329385134367102216065523719273601859695464308550338846393225532904608701668814173887125812597673312381030145868944877180038683364966185024046595272958079646117296743049754209701648496906944016190573590619705005449615089645076444738754503275927016193809511317771718047632487293940418397059019621327977352191304830110134669794619135599615867181769799737130332167338272388630060876776554328215289506106430189220790747981250300437418420485309828160080527159106760214711756659870316812298360002013622478328293166792166610050259316979187710213074936398348137079718020708260255783101378050124381879407441119617971855143764199296108707449701969749120630620947650793189428058665279367987045557366673854916372510964874807793082234927150024560348260376388395929707175040435891786329784571928046696022992531513827159388831471259385442191282666020056059529079776036565784657175817936295646617749847290355025198134690400803983551029413760721346901117256824360140266558406324049949183782351141167446426831493198061530664118741120049280852170066734220510178676499745100376412059401922336628466072153179946748705257026182519431720165532098554309750675036827694200604219405936752588935355086318652045522120790931450393862267091784283018416734854246215611202969011454933693682493546160659526912241183678023377080742574722468607676999401575823533381328077909538320146366813627798607642019006332243376730713992354017183549237835412968259745414262944328764878508922730753047732183471171953686858256198885688276857501889234106185918945734195592592541202668880919269494767848821975165319708053609290375459326617507748114078001656259290325449514922671460152677764434933358601550951694588100922486573204933553278598514107087980161417707178309844062704035687251893954755358872291331273868099481965014803333478845452814793537451527641006517935247107210790212085944558363286093591027973151116849138360724615348038121100914955151740468575991746043292551903735716130274420346091629961488375710149531049892996516407285569730729576633570458439864847547252367005030005703878565222377188692669296156181161620312381511993236730321374920029544351485321486684552096088762375431822131429744383980275542992544131412995778766798565472756379214178337023746667684833797741156888761947197084720728533328847358736938220781776420095021981666632153227129878631285311003734844563720077527873685026907886701086719400450028917113516460486116640683154764777263437185473602247234269052557810453484446088681465362469199782846347462658182782030813768939094795186652866389494041199026259853725255593857703898862504327418428868189372809183029270732131547926736075326936789504108480620282010509344331534135136113572560594179108272781109239374816195451488028787482740390731401168676694883491334370746495571707152834738192623875326715914765633669867751732619546090157996329804577481462378168138029215781951228183599117747220518757494380069184251265334862237166352908832760527047583327851963254913112414450091067955268949087999988776411264976502406672876952089499717972028955153501472689687988568608708778452739109638249087768907372436913095686704636728026939346617124691200927536856115546508736520652920990173767713015959137976124640828751109612811126220252912275442775126470654293896991259869947976309267342702900472353108674502528630766788377379673671836294009895870129425792343588995017156615420311426225492941156250169349232088590889801104324937105306684019298170538329995122740673758763845892249932227463291445394307934688965819624888051778757225292460331842023303299811075416670546045856679227961790018711885508127005727318717137101994623015169459512164262964675416134463533253432656520548122929594467308421623674241997999110940567489888899179283838067353522508704374467090988312847832077860264926295898827624034100726881387211607279071939595993087043358005188321834548698961656100009831442865040149933766498838570648655776636679689091377927425925842000374466609919688450198840845275715177869433848378084803058360112119943439771618048275331574863840707179287594529037030064392874874973983450978374611425997962664999640500402583141268766148328859437797931835133379077027029370231103230314285609962554731890396211502845143479940056328183907829387614729287285924674539860630191833455838394355760825966552104492010589037733588649199820623181950318676821388655933020382988072881904666021824770920929664344171405939114702466433515433520360718177337160031154234840800046496657068111332356955088621888813677392069727030211221765468118229538992172948673860089033700408314799020465760560407020088915727109924460469405284844569062328194678732777083823730222282697387473892152289263670976748816702705921586592634411669503820011019407237467172510942228926361773745747764027371345409141342280700661502087704499467811804307547191495631066611129462104077360602701046706331910407761714104385302127847479898380865516116863772524643681172266238384669752548541611394513358056761297211127477506391296304490997726828721892171128875833433108365099057542206279130623488183371199022906492472185084161896802986504047284131449091492956438213970713971935404277495707855373663199257872218971358431527037666545000926979465298649433911258362045553291826659383792881614284954605519741729365599465614269607954637266485954273103521025013481086413395861622771736080699580652604286008261243489103796828991551334760939114775112795882688176894649418685969612402631452019402943805193909036582193681293635576839353961429697581169799655684276005484701903037503295172950518394445001253554618737781179645331938507090063538978616748169581289841607996452156090899835907255711484121337801887452823158606998321459692086593480663603470116743047793355727889264883138099100224019263408852928765986482612117896171089414189632791157189242089868696146724160791979607119433652462600731383917719539026962244052342392973653860489468164032120459603358727570915739501599462510081773293641997562715889119552394799339155399075881779069390874534280693650608613640376346944238635734946446953960133491305213711329360529114390952946859782021101057461139319752080334094281819848456599104439344821315993436126237029540854101212117302269666652080189057861768888623884223063616778084560828911617041351753009930075967041321810694828200436601364423299908226439722915784698017251156730926031694086045276690880671855475162805497491580063897682761477583841770731274220414064554831573963266040188478194237542325506407866246472192446392426250896355008665217020565031132153819967943456683829571300018104353461084183758686702624866491693717896283921821740605210918689298439197468389040489674423367791598293759283530910344840051128398991587904554959476457805192004714428946130686506057537360955075311891288989312958734138553501744773668113790373398192711167015088392624955593303645287890470262592128969604672752323541062747702931269509798293199759765631515185632226435575893314016062813067589269481068506239082177791108122983493654710304470115236443470774714371662842916905037561121964624432360523219283766940724607469229153717486277031854095902504404605563793346784697457636360660320210484517807624011782209340232480780038685669190266113833972695589904243162059731307496554483706179909865580598323242199099845115015855763660082985759449202642137141685334798787591745763418344294459338362243599240193246244998845060218349490866271184738206943731310885779003072272212241968332452515142446595309578448881390170129704531215212964718878859208305655776942065350784759573528158025361850041989213186113746376890078052314643845914263873449437838208556410042851499695507903157533599763457673854869660379299293353201129380614827511877759748215623140178089368067145496608725389860812578930139156324634415125471551551054821068435829452412310572339892802736783109918949800775680923510614213029362947131519962319797917934756298963880285702133812602338201390441754998168464257385566322689808056424833165147017873814624290253382445394260318077033650086878469736585576394307050095108771360871980167535421072628734845751390671051265945358508028435930313190814745700387036887348535671801356310760289164291507680429884607331999903016698473986510278210243267103406640877142779715416152343747139504429941948584488055883709902319271097774093048761706329794866669042951900859858937462059738123057312291807471447791450334932196021944028083172589624646000525879734125815800233752377731924289124807684597721831803939070625218506039231241108376036452016881341446449016933525708934285879426187734490604352944043174994322557769373981586420261389314198990797645043195719682472338144842850919900420978332038696161844567162952480522510742782508238154231625019268597660214428980450467654631148936436383230095244123787982331047961241881735279091530339470487508795340611214577379563007549309488817708582697991501977527315363154577248097513689380362218661825497546886265810878261811275338745577279001677302725317673055275540235511362135230680004685791906305837863927776306020330254404484539476881661509913767456813960402050090059546558649493502439740296172207791346039545222791078930464310585961958299473345543652343022268112825736557392947363366676105105485466090616505279577311858509592520584149080531995386821156318614068858789011454054780299595863647853425414441699286018141024568209060205660586973424887614729178857726249936270174623116447927858307005668301977678439530868254097924490285188855158553107756128750541193599493210338767562582673837337688195149417225132156667863406453043288106935716596922478043184420203830334516873002909824452572449157492668941966333800092927439339001822318032806152170002688568840141990052242734420126317673692205810645411684865846035294966786569210656643212098060509791713080213559928307607903633403283938969026477775696017378686758343693644208106303244447951994865522376032742696345505832155210920840614453825086237739258587127487832702343998975059517446242713786234944056388535719676345554144530931766792718593324600190228403757379047518310751899865550799281251478807431764967428051887649655393322184114849227341497283451089791791528426399850627663834019921607345139662492184072976908498668960037489093630009822724814764894519868880585275234660869577427510775733604496261176023163409126347828215722529228442727090962706961552731998141221561581280653367248751760929837414711920177888709141071106228387706558017323969094087480947598676152180769035461844453525575465215258062602667339972009344550089406012232976287181891842486254038227545929317906549454294949539536442289514688854461121667289163404002155282135238027229159371343449502773935789849908195103065307930550066478992969912027099742122231259964244203027545858985224978930373193343835353673229344176793559588876935619716017692122385827287309345920754349218052078301678701751183357484289845871307694346679489367674650755894908627981779421406985048949679546258781920712746240313680824690684578880543493470942020554186040954030710150530793018268043037665738977820010538309206454035067753710143968172027670299366668056839405107747742877482349062207854910913042553159069114723459888436343484316419153343023646941854599577633438024500061406658779890987464863233896653570170610829586437482729446841380797543745371048352525818923764043609487857215375156911880923311084096452944102383931762886759142327555141916990832233815289535879698212422365360704737699027690827292645878955624487363853526577988040840545088076048336759767777364485972885804763357638037146077447262374348508665265003394306328273371215019002459112575418570628065106820234433984158954213502319906301556892277673153066728228050936376049683275075364356030309660859415527937392483572734500028139251638987228755093619075115962632240074882165690431224790153712344505058808910296708096407638052353602429180271497538734160091661033744457041021897139437528101071231559349007043858761310976822768331940374910357480550629999685589399547813496241720100371938503636712883645587754729651200761569990740196367593544083607840434085890860103254442831492256427581461334133729518300310910687803716789575396608587615064438607953239053165938580201661334806831138066654931048578908995090291460057077754099558049457595963720911317365780838238525141922321850261626778082824135583856839813844227131688515955438701179288589677173212990949853716240782089745841591694968092021894173600486261909100947790073723675050410718132880488250068657283726399875978217493914999338207412210560195611476198068233858642283855437439892756393030764566337983032246670690933939275949080498716564766076903834555497100866078788886715343528516976695399029110263418673255584426004907133097818527931039203421568988573997195773227327590909110094409299548756267845236089019456422322995322418644556867159209024762672816676529463454425549797192748952690929891160781378275213329171162906167525707908399136279406932468526651580130765690914627654440742977650304017027570646744452619487054802612101367411303441884733925885332394005500648527745929401344068504238035527500495651026042020153535234822372224828045594086668328859231969713368252946243476883740101773728199695885577071521331028192456837796582244546305443057988391011524710574163744794821548712143925998087400031707942958743891010997025553465000193139361112958861381028676453059473785985286914434045000265179736381287885406265850167894613087722562016707511680004351435178556629914913958091345351446198747239781502967579530290292365310874318745040368992341597724542563006346281736192764035997618341904569324555796848094662886830487113831329019087512541396799951676949154458117819707775391034842420277835051246983449721910732620897313166418860822929952909107904939213706555948356033093762894318961979318665740131142026001109086422519717102880799515832798884843749356166932788959513233526086985682097115029172873930130874234498880756263278805073290257552389321161784825737939299270828110448015528529203356354145159911417178290470718602358938768870308049445658762323066004089145149686399959251418792248256746594552033197903198010685637298616289664301492865016817100704490201098368410861348699731943885847017866714570826282652819980388620667674063180618074712285227818664779217904427979488407556841290996325896047999104549037594940516428585602061754838088512017632014850916136797617640792185093110471019263860135390070411992043152731027533157383387976790902508581343890829036626031400942826440544653817758324246918877363865572918641318866800281433892099204723235499425975157394802725257084179669254034002054319777517621352459778840952141277734314082306893858039513434985036526283864431222756766267478874586496763657537567084971487902938351039300630698254701711675550757107660569889450698996387766443920523386313340300917063253115290822827294823822761814789505637186762273585148490233313566633294284290338749028966214999388494340096344314042086116666850249438901548676197339144093072265452439904652861996296780450458712081671109534961693478193835533793134915652331909268729607138283003109223840793099518603439300004899717932944211661574987832359442316872612110044985443078318089003943205677138577112031837846267973585107370510794292071551273719158745718749377496881986628302328409265109241341696964385124454283349872746322676033818222731746247298382370863176133292448826628961655017967203415656984596630334805350982148601700035901692567528934890546272545538974660263711994229045859242836152835610462514889141211845106859597941490151540313370011937462928475009822998537225209898802760381029164102210480374548904199116870422801497004923349852739168795942975265135637730103548198370608461975236409281429701615012060109553027365090727829793549452740852980349937830158968624878682693909592679786057727426061434489416685221044035538347430200277621422194029885732221394226004672026187720373258962853715099904321598941466857935002367447510575089775242396389790718409261025887950881795148944359068295616386027142703098426944054340341997264003413079646075581664976469612514457687126702868720367053387412677778279711414106962461374376570511294597674283125906387049438928237538509688838404026923819936622849470015679557297347956334850412544372077284338051430160087855979309390213438395478857163601134220366612385915618122795441851949248537951225018237043022323101876901889290713510093082827711388865021746329223586179529423543235946105733244535221438212557910086579970214669491727195991533207398381844594705037385101842018239376055419652358595387814749793041115735346064687510916951066700712858032467542047369959745945265502193024456940989114372625269340780074342814545000404279654765226379257044868462428249423266648589687140787848770501661530014552998163074966844381022411899473019368709393543302965612362561344100707792477455561869218159994856785579105330670762124057765022726716482523622169809886169281314783584511030030361754096491288777427809190049745066799085927105114926736968679361523362520209321998968502921928129123692446888624756069275942654385589385479063820385858551010047200006676063596879298252959045928724365847161942872126816831213914950964941237482025918647579959103264876870500309209228397771752017960787548286014453874183697534631121497400893698098762312975048423323590186599371599627523237635918891366268702075807122336119959079719302919894587718077454007685186295648614113910284479535647843586240075534605545410082058047884307006731650557286407422410500366365422326950668506730932748647945536954265288224782603045391882025759892202527493695164227071099236890482465541482838203812413337990218670207350389691780409116495823486645591220317477612084236247868414404742147972655145651795041857055286057784938735590323410992272405709843670290381971919738869410389362145287745144950832437293924890392596987077353566758024037577280796211476628976016935472851655387142267868114916261266458600199584076339403941793815629502268063868632326615750343617818103326246042644974174950811820626548066117422586158636967687370298480040711452523712063885702772732096734170438143274678769554244184183877534073874516108124363476745692780521895586681067326226986966467610359873159915511110254369030023133681505284369599788285662026451515263381094628957658879138532445916753274804277975273421651715995503429202674923844700342215548301331684789355811180266739253469794568487861950765788382811773681655119053952824277773556491866976265163848484243150634127190904735897248206427337145540654904752389795920787150337186326679609369870990510444347798441624445865882039122581779928450745284170480635875129231342660402948566125581580228992376710268870929200705996351934402321940302460323421225197349854376208849458290456181998145997865461333905572155101006342160478334114556826771527552553260448205493326722377224147165371429895258614046674512702021947866893421726460787666756221193782324811703126001583612465229735211329064419207621642213839904200923371665468719362698302366662896037639147673712060227122503405174793362471723210348523078647232012512356361312601198179954413589742632902683551970874552021794944552049735227553436064687408444668935575202922829047424909836247780598907368467790990368212253292900973188986765571074059258469754302868902588769534564028944552983062709793677520302513503000397020870087347771005120313338006104807234353235790385895225107228609706788225400094240621537221329757986154444779150468670770662356893104832580772493172546365067104052149136131673227234429831663522919951508277452812133386137347679455959191321559763785685704844066665589477675763487974291624398295847022284401689942209853562521344004004844672499671712853151768107052489238121568608784590986154308776595714506665250963611050955202857524065764710012344872573796184864856966044999860200117614552055361612050777672029810575779679525468657697796951573930211591864142836604950128203052173820992677283233661783277470660331338353530901502858688956333870088378464255692487627453186340754457680875924401374122664941101749710207484738225266243205739103260688630169977368123455236897747494590962664599645562329437910915433592645312590176502698494851661025072184547069447652739295835949253713312204654919935967279445715029204724946866318207984461198445922057709515918646821894051604034234095361751131471114687551894385293185691329196151715655245516517509530871848243477614143453331800213115398583030348670253706572291589051436561820725372085466764939213508612391461301143647071797981602554771582070193712094581275054312130244690609945972928940128657076625355438312273482077445258863335477339336178601452177980998646965275839036655245595926006511068989688213497600083802394157821066836175183707973399615300421521691192052662508828312314861747327462991063567243304971241434555592671979013454832576103808419086702777332353980391245309909789193155210603671354770914217288678071107231090327856646792769471911030061238579688276769733519922827315668969644733230456949877141584242074954685742260085204131065594796897204851505896139608162735853424818379010276014928154451578079243145234369731282652313003827742108039583977556148940877125480281590700896661703487853439832583718854100454119394550640016512946189229012461825218864801617728340153276242217792612822501172718894060355283116560867083071945034211107987670224448280995969667838910070492111715229780538414406525381683648576292076793057677821824802796397195512690319447200145436424745555305985287391012153429564060723287413414703740364088152456587561962483003484137037744340227178620975406378468345623925011364815738615769021874979447327416447113284486573443776460965603695314901915925852860479946166766906107300455239306416761887529199591622011313553896377598254551608172436212785013454197275611110353589335365961545138711171680878817328745447173627632698757591858886135028990008649789228437159452096397208431831422591801671719952277954680026637264673885041789897659734221100951106937696527218688618008120693033705671907449366693233624875238354961905177739959133980338074977856270384769834119157792574213520631584095581651800135016177945612986387431812732586415883069819906610864555341030215884004125258005105587069129398735608524195037444937057474918845654250232636411344098498777894596279269425914257279325393272064348931978062075781207329960758338515596587291023531514999546252343630163847229778309995220245857363792183476562429226180416490985303790876975382521476209348232752055135008778603539184225894827683238284776199078126198984421627213135257000143357926684672773125180775070335947291457199631931146840505665595615279091480839826707706422608415663766136319645246074701423561962715104055218870708868009083152853510889337392314619807718327660557255096224854456559618594456188414489751755790895761834509801300380501897062932193942404487513832341829616515738830427387400937660179194211822918484876666258114944774502393150218231861381136732269104360026250987697165201463568234244098373411918949947987755192192378096456257179446716888589262536788497941011467307449128816583052422842659592812102987005945761446129953063690343878548087850288130730255007688285133801509324713275363785303853056991680619113887016605667686200836502655070246435157626330327473284023654154695342503020745536953257804013643524466116626287077688052204080478587942089110779247803154770019284075591129646015132178599477967756528302410578009137998856737049548901093840772180067046876630966733048738889024425491124957173545380268966050489449998897223210898065782751092804615272205356450605577731078735817271267149328718482147713569469479915112339427531455933241438489837177231750592584353996211051625172970698237469628958810836071356052415842349928293362629107109972872434441971716138097794000220490565260489382439231883599420403889280953636567177995990406127268086153862310996575206177191096614284215122799123599991375393865540106692624426798227765117022790624224297436481648041054561007769589196616270590768896458999720281799889960244571502499922863114471156617877630536750513927143010317008034171782062604722610495898891031779118640920312959593774236249200208432422409416958561004329539567291662024771174938441711214042222359122766651298476129483888148106550496167149839002355851503667360739015123092417507923781942402252414178152712944103890037346996458585376774511210719179278831352866804751087896754668553869598032365204992346503951304437862613449697723411941310107751075374001181521249098645598571666978633559568644145336205914920627700558381406374616283340456168600074366564818924449779136575885773814660422330028111348465024567453138370599046222236873667105145960999920852236648361865581708179750904930324422018789978647620830202311321196620124743439755584481650952558894992596078455397959066033752446141522929942187869292157395870743574037493518258102118043331673758973705303281459574072344671170955121112619181859510170704813581569043485000645543577581335872059269837578985725378591080120498684883655595375907634935250820457172617921314960448544854857802591796501023702105562423090948549149371297954876584989650044794102437593914427778943654075648139830636875356070728633038704372426971049216332772857276915789102942556520723717139059796753830333183445521472270097806038724344876639888886725145392150538641486179370491743356433497378231630650560724546019200742944458529602518837563374938525166359348042932752012435330905185516437376874969155180866939363967054611611444309408749119989558763267764254073307110293316674402118793002871206512888416018132516545508825040154127584060444501434516336627567385371530922822061855144915572318791119501671885920930046146781948252242388334406575605953991724213721284934424829097105410449056011119540226246064760472288541278679852079487779193674437187612431234014884005262367877224331996597820431834447083312437932754552924796184363580183856023217758029641944219160078096261809832608740638002702894379555200219639054222982409308131320651044790865683847976488800380228892750104579015347140908601879689805774220457216069737924847353304319596515637740231037071788752288348409841898556223584477642117972176950999577520267785126880068019726643251506207169491550255491685888213915856995285644070087945000771188512462328873583016029387408869075335608488410239180344330654280662526900342903560821431974139365643533169365796845158352318858088036642206371426308532114647366916037241197368484737049834266479657848877291228069262527847501261371360773593319067742347284452484961062640612608303833258318330744326466368799638496313060095195056548819036131380584480144712265244535499199185889488752573802285441812602130208849956513652913874452354591581215964735224630931967952876153097556349770488362742939629872495548856056548561718502522480258407412352191383852119577223621173387594554029046238160078293342753519276409640927703352680213712511308717874639596846610081056132599207244893772259915147539856171288829671526057883380140839918893430668643744616151061594261987711926421514406251246510352470537521193911349524868400954350479166005448514947729523082983118893149162559068120777808116873191761362724424262250566664325771566113617911181536946276984721507953497619970141477565507828323298980028372177007608946952639298613120180703121659959003422611289518896343143334322116001509602476763022807766247680835381084384406550618703787930517610065476946226412387034739165050599646822047667224156251274424266709829311875583952910487456696570251748255259976646688679584156415709397203994530465758777407935469448480342584301028608237199621861927034686365771085063531195355484457381531123815107502314308709772018180488218298839679442937293961565385373033075828778908283366952625414962409274331678480564633701306969987238591639915063060409610229524295481414918333675756632561095085711940674711052883195589383848321170504877170706613688352847970097238455908669037705525179945401866476651621549545024796794303186935403440324448475248163390366554694049344031018230169029874225652856192303645968539464106698147581258868689631119059301168731484698655245087600786967061279737729009216211391188593856844045115498799274521575390391524079340528702495921402598460981508718539651478159982553000767241537464997470241804565676903760372370683203000865394606927156081744126011545782958992331032154902396190161071534946862450900728564839880090279727299597811278632203962083091540853919022924903715244298594641609726032255967162335776844543506752753155459676141602007795908920460470843220257485249349931999982883559696878897121993926552135582484003035094255057729365170726527452365877861240020572762794316299297135512368535829417447531561598165063057765052430272440350716071861109016647518521052682093378303121309044689216449487758707684427675923889727989524847370510655813247012972483800688359017637982308638035975447906194905643589998548322242976153257227212226431530024029945950073389728302339301894446629915641523484486476597913960971019512716637775649021240306870544479093087218418925180417056686904899567680991555214720838326609599642938269202824147941974763105808180213843884609339628704201384555094680121135823338342948682047343302957102679942926105980063902921923526277806086494949826892255062736156239585763661691659412018951750919581394042484251351069381903623858632276899636696162869688758022475804151386620716374498063742116071906017265554059913943086789122603449218691312029671718232377397899734635650911350440676807278302457992949178024385615306223702780928208023880210197611095395789593708181184570626159156313966590098789070145153788410819112792655097430197957382344684912746618190322895716093725825421470423200812584437874301903713435879283717125014773094697736470257862351324883517398641384782635178163033498348270822132136123174395562208208395690163137368651835258005724700089671294497613501191067012292083409068418017488669514489485268059345698892098754763098128949633220260259300825652950480811416995021896614051329702017451451604700643002916469833469293640406572080779855365440337299043678859886065698093559891985133711998364195150829815270633243510345824500019962749480754905145642935247621440517729996184522774523400894064893584516444428270240682546902884878466396269505441297831889284686466716874761778310374674676825897873174839382724117176368191686462684127661914684471945531587663422384524795867577179992638846162479075378770545703041658766873306752854796228631895140031905933188578022706202371932297816683103196115651237406756828630852480629979947874544206699923455393722766287400563601050052677634121044223783527078489171635360907854141818718706261781691859357944516241268435048402014851767406199841257488682235020518375824789245131698523170487877877903055231232270366225743763673594773264488192062802313407805123000438839504662303070984032668205795929797200827499524427350754906335395562757087019560177106865180762304925410013628289718887232720876575197754546101100962782071186334975976725035880977702919997520330765309410629460870229933907461265464702467129427040984129841827257161704846625420476835324168819669552815014895942605367059511545876567068663424031590449686129054768704939738847091034943195512935533733713648598941770051914871037133634003985779744577910926968682016886766946106953884052684450036523468889928784149275236400447338048872667376744898143182855932514874771823965298183257320019316110226583452035797548236739401238135204356050754414433071130137805873082434870426926698640020051241347455348515012569619936300219416889676354337833485307652738574059796793231819694549121634752037904008578066922653062759230325864938399813140821911617033307527362760794379692087522402397940063898090814860298685287837206258031684142342188651127811675898640841962266640260782516333143984731987679719005207335014557250740937531158565609926632441225490896995990704980659993024868888029504206616795541497502060523428746738468782711040994766269861044998345474171140550636081291087717511987410070280707777470945481966290240861035874331239767413593694709164500245311699145121577070563239618728732893247122066969502727591704607129231458082791844388849592435979301562887345861277827296485995787026860361175589287555864920234228542281094345073119655686161291619858296350815028492064807167311024933395274981695453063658161815966702367920314767640227043856569097945816982492571692195762631537623574383024647876296604582972015223734009393881256537018173158985177288099224797200968163815966481490856757982030984677523852881347442221742675874268664123536511115572553890293686071310597427602012368191225317345845493177596569752952235014340553475025832505612063124331814774372048633574506628647896748089068191664547049845799726257144601008244759007810555555133513115271956846892729626119724151669295205105149305662253061710547250285869262102959438270329625610149851294026817101891094775490501951336711257332819166920801967756296932643876538787860782657952259919408661397229638738526804402457719595434048471531326800172187940433248749173518748261785654411322943856763102454365607763410587934864100050073457780574744273153367601487518269065238180965236703516476565475618510185763347602971615028255865671953868803366595107549822987500170938944231978478016069650020027805781778941080522240623333975085846993694124886715294704370746517888646305657146386774852665721223431697449728810731557756321846530060248294616583568767835962774589705675015529826427245839854185967028552435993246755381450464853990124623738447144446929639506721052764494468127435910961635495724339965038746797527319763035763350321625869683913632314304757604441791732713441215442361968318653337065655118892904076397805691570223168401845755582935409298487141419143571545675657473177632666262984008827129283581524509328390476558827524638513545861036152651586626972040547200994976842913760134330092809605502003890617952057264582227819522400560274505097465036869422166437461918488793678413882417128553106104678527464377503721619782289104150043243817867858105748880155608988365384365672013397522619851585879478355794029502324048608726947352010852640122881434955216886678965685582081369626954502983443920509856849588833489605243700268822535302450317051441153117934386765971521953446307110249099174018940751724727781917688780955682314697567418710057889666904140772476148509896874889729200872504750161567202695779545386629541645218231937072571069283101082012422380744347462762105819068551309375239895335749497991680242281318757254628191915192250199899648417646947487248465396433402764849910482246222057524499670018976932088382173287097731107069141311462834831028713270708140493906010193861759757595940231544539551439629889966194380196789969253808421933019097056519543742123337512907856120552807538961131992018216855320419261791178497822718993457586281333278030116094387273735286845947629921039587531457159624730497613512223642958428994213748058172924351151677328452610587478029833834224094674949881438948001274701159056503364614707103382372029541607252160832151407582202693381729553901519588489275416811289672556642004152501545710914790235909750802908036392386581817208915043737701743853763280954726753332640663622631852777386727329640771999260764951442336907022107537727613413952181734620249014939783065258134787286129445159004525841197639705500160470004623706338911573132639888617915553684466897670088290598298848290561472857152957723002784966493180117104677484992558708544427502267905513357307540338692103911543776914774046035003134021163655141546261110775590124246013696052169633320176255765016135137082207682692142151187192756867177681371475002659907155157504243359150000620925188228569565974221124585477193971065516869306046959199764662312073875418404080017049221410431373676471812496596982807218192045411004072872602076645043847411852149785968711514431680819563233451704376647537162616637909475893403142918001527773611786610072057727536609894402145041652202279434145810011504848948928415508534043277453728756563691403568535955919242958826639741755242687893591167995370081945877921023437341536890078818647336865639892419965248652496803375483251642225039164576558390324037769850617077552242524209712487570625600913631067429048303163828636471272254447227681182752927208727616082009089644013364987419212987141363718451098717565362884371696597204293696927794890683500553985183239095529486175464875844992294638487944421583917899505266945139366607630087054378940262564913512129922983380327050095608830751417635822896558450421187719023960757538993784814398788265906005012294726867237999720490483558087538899366105511031328908843941414407327928095978898115570763483377931080850085222863156842810963349130229790589632085267809966526285669936402168503909929853780291514667670355829882565261660066483498021367409876874631584540258625224736003063669085923366486572755595203644098562545207210051733966821525090808563846457018771061631398080889993579383599076795568434602894206172964339015467658495856427517351863374275855542674609040652039599344717565426221596941160512260332598011287279801291841795176035888851292715925500215243363589169984089222970814327823582349507463001817939278867884627551987258535916615641485083790101194444949411823783551477117103797092229872021308862153031560086283609633782005186127102635779042985232203738589145036921443170959444243298396188630094057395570487180055575284359827422305148793057957546419889893075362626196205656713196832485952458565278134240642888463663503865780597450581002667372693434214531030569583288033179477547758251122355299309135722149511217609944601391586296248633985086361191309935509754299419447577928516034007627634060380634557794430168444666638949662112314586818964445238722984376512578199013494521897318460696975436904796103522387669941476347360286704644349907963982789593842950115285314774584982451150829519960611689882853751049108240925281353264654225309953863116952955254858866655410266640089340386508946521640772377933426680047933652820110909631788492692041150891705164091161753507859625933955137417364857382790798466933176754910998808246682629374791879568677638740362059586092481812648052469079418118534786535574952550630568010452952491742483010528495501250966773480236072786604656086324195062819041246306156023025594678495047587517478019400833384426998519113701358269689973724025631340734609979770787957701104018985954105815115423905094849228645635912659471161411065804028159755748244518720337264041934540631944323659806421693470704342959568580889326399342985179343068410774797704240292777016102197689384900498293595401226986289874932664608315609474774788989301518464166062448161385430779183029114954774136287949491665165690364376329443910648196681605531855519086048949862132511302035215138748884102818134873236738906196766032575791043098694989088892282150559152940509257010858725839854988430421136225832273606472139143832503351955901842134436943535984462087039916077248965966704809792922607059001051670893902300923534606169942309512209202452307413527245429835736790145633345104115272227672282824825538368628897130092117400934767231466071442256478326419505190855102592168941408237821497175209934839254151520447130784066669703126364109646183791695681792440539850531954137803801966354646417830526135400262420330424021207697558916502580101291633744820509895171622552605602696378609586792616094112355991701676216011131909707158830946630715505595682794358303002331670506538602572763270840738212382154713393356160113724626877564264189513991924992980728301577203702292077367468321650157365523443519205468785275470381815368942539614495863630463959661510733687318666662999861957041172424477040814000770690697738724331791940150344599750954650174174932770777294569748823740858004473516201025677530130632428636971900253669752379657117881765673983614450822912968160798201187974609663767518841228917565734353628594892943604536789205357070169335149932566828817389687089618914446681861076473204258079129240001571712223863555618152492722699836156834833903660530652105301352523792092625191143534574577652070815760743541513710606678605256802812733970554174702721897091633247267765864843842759348420470689223421254348484191256605341851689744099812562785473628277585577929785206200897884488229711975909194570804944747733358767301929606538130364237428471980585477909040073209105153692160075009462754703335291282440141987217787538045283762347156779742064474955255322756570150283466010448816040019693103296986507376230867038870334554788701399651715559061724101283008716769352254513516536363423211435826559877129701280435684759698549043294640754901738632530600034020591088297635731888176081843829988764020614081151535188239990945410573645524888024712164535728674839002601319548545866467490955232572315011259148440915526924108932987851472039248627296216591522308440258654083229554332337833494882197184592389240005043841541394766653376739457847924747129961343765059201014307204958796699486650911586134263599976173281102754752934773491201572275638541326993448780781964427968537211062523088540670840951153333729042968292468104268074131713655227154832032296725611460483707638114995429999273410110506009026412387162350783952385785422792151374845494466907940796170994608623926676834820768174862341143478101674227999646625992393480611825313486806039221028004311739992647146985815212473010629571280141097284420689500115274656084098467715684907957602976179945773601352201194006658054136495095010929398945987022029342091323267691998946594809755063946766508813866564600753705950058137082096506765169977121597669796629963444480578462168941963953187541244658364428894688898206161231228939519097381306573433714652463488230258749810183040821220977285041480926591571038203031884995734110156810442918376131976696284635669849949674769538432780742617489268021226555682590015546689360810188655805131495989304430281695420359247067854864684347008507524604726464754226795687497526898999776557566210142049543508933880263887444309325235482606229806836907476147679600257164180914661845940717184216434795221682993131109829963810514401840042861311626471793187078588096487597068673039453068319428518008691719064582769140491445247138920440645467627091974237314046977839874280246701442542714613626693227473942117303464705253093247538903514752415929286488967187712594358513861168836599623910679293828356661259073351357016053196543794567983431543378588701747526299352911268785866178400036735706375845151855133577588071837998913607429351047583066388837127314774467938586728036713925580255526148800088565537431934255292486963679277998700279528866617590394967879530150666839111111882135113472959113484656659354686586520756244708045156582209177264552235104657500745738728105557668291010496316643800485035466431998902215035750481759123930459372622512929057482107577548053681960633563215239359636580895851591205112626315653045066149797533305500718751920933397084212069652161255930433786231796076863170562593535157485662273762543609241984041773380350809960208885858568501911215098959178815436298286528732049438742090051604585318935433162625297173007354460081650078071803490995748566130582492504963386628209908757405556861427595609296698999771426359788900754592700151746111838458750356516585821224093320983560230890900726802772978965320946217309281351831722265747622533023814026220203966151147986381298045528399244907969570146307457243194790217619263285309461495900502614809122043099688644913363380174940391412577879336075777415389246991677678149975191486999705699963608647977403530686966516725559387620021386833542138170118910536192973944013822929669920634901320490216102002925969225020257308665924535795855427388997530534973725153306470546184099009563387182385671488793154265695131081734742994595691127497331545085405848452428934076024916745936135624269004350501952562540440328270767176036798899257414995043721125831413324296897326087530835688975692663525790943191919348637336313993148591836621529570414493855562726076803987703183243551388318980384844178880618063237133703422880013569151493472195134422052086888118554432800459482101160034279618296229828234840475455348160633151919660208772860942444506392620447296212118600311591337613932486777827081905531241001601097866834869457934401431837738384814245340088496265013117851163793163070743073338097336942866614280752158395556472292150793751850706971576145525872442808455633493620701180338068494663064537105288083199784165594884541324320226882607968419830443993362380617913707449466678611916556765640136356832159236689519542488839893691010320028961189264853277613178014479549055264856094573751620849640650007310216467643418567573796772324723364770386197900916399704762180442220888145433529550881167215713248014103848349324275966551617901070826645923655797506746280803451501886462168284899947979386361248295776770287289898639803711258016305428969094441568222154228638360167117001809818187153583480284421357461651457765708326831094467929931747914805352898379578259115671016306063677109335345842032913556713995462311622187998354449479099448195033823108271684679298554075171977017209383617106432953473963609232604254821882109864604313311951514907348363998358653450967176560218293676988429448551306599005646738104885838379575326445029876746717256931872663152188736761637888613439335318509064210728814694921296306535229980029865447369252259437603990093606268897156138761153066639558089640466160153720530684419783609465481171385463526409358449683686020765397770504110710490031910590279671961686318779817150122128415087319674372603813234566200362630418873574303788550279684623194008859409147591435584486053962671085750869981648913440982450264489123737613911816081236277219488266496723543072276110422597302430203700247242533364092514260784428628724680336583649207468391423999240943574989627246779442868823312162762717347727953486354303062037489991913525238470863708563513465680447544593259164748710808351469378004067536408979905593683810470608798452743551293365548984782591238887616223378626271550965616511246547951295250639801077315140557150382518808516328895202353947115871161519320775237243192190925175138061138081519240250392971607049173553983474643338941464471835943479723759960362296324642413081162182841181580582044267347634588869955119294970091615600128827636842866506617210396032701723997675943417110123372946329321968770955542660935398231956836938437471740684054540241082757817767106669435183340642086210990577205949530620750503508588650007094483747453793955351089169254463747828558167351150254955135670206041125630995361049918394122317643051014089356023128545208312795428937471606357117614361334439018518825024706362476858169692914265747011627099346943441687529901210753992224669335124490880137210776680682687253269673571743767616911929106744809460178492021403041062367372851797990061224909288895249872512521514643157302619364463142972088540680254447930585084680426800604864633698630972306961499485858169287557915646751401870698590512046923156222428351754135955772484447837938625284363286608392110341735166955879842839126362989711683413123638813766833404345088910419417775824838089477637626476795771916455010656798544262974848936552368909308008804367716971426312762112193203241443609695001157882956238801223954672511392141844679510302219627571629579028753709620400837531799471872500600548083724652973209306399958055561391147579901524854523406936642278018727894826930747237481324729084291734486083175329112018200679904405634232905920309976558300889472174156400043145886234601221169944986456951995385215338792883524021556784423426256507798835296745497992409074337730306273976533845287096655566778978201971242858592264465123439082210621363086500246603877498659347247774470225174710288165023061865871104181156164287416617718051592579738558216036363838647560766913353665550679917462220049676805123544126208519232998961701868107275314387671255109012031751521547964114167797039370329156165317421866404048056318770968381344393258110150273424278345584843907558185897929334133671033113329180858606203822508361106004213078547078334275083637065491552867554779004447939414784582205692061667158032786342084458708740458447288018873484536248940503840560308821046437743755322061498512232229449979197523596309846269828944213859016078792529920534033264311277898199377907229097589183325880829775176921209124442723731934564700864209215102939915098445657690909917438580287332253175454932469399103380786719352676264088264898177398378881349546980470021468110652846153601198563521899227020568124699897396214397454801278758684509937281555411458364765053848801998481693090015057922205846244453176287929349891346937643324081520154376956752662670880890554441173625125164802805992238272529309313167925379488041528831445292280267566056624517427744983638266701159187311410798466645009458241226463809424641593299261953544079679255160130500979929731865950727510150813712378965869102813712677762300162134820116717794777414221036188717002228056705447229831506847955555207543303273521699087383450943332310533991460622857362849953482012959652830472175159978923019413318556802249751441329683598691949624549537667987507805028573580523685375864778137289933896186467247518748906968835320112131058021209970478883366304775517605346707952350064628466297085260528710156390561736904645943892420466373970862795809265451997535615119208902128215128298771097164172247495600029479030710705752477600036519493969645928095456788049806155175368174105266332217664896075177208956911824433489140974173452341338571212967690027733828720244511871248938508528519544907350580161285642216282059983561537792944788337050595796599882439624884923169949799619438334327106403832985604050020427344226956508177132857016444947557775794268477333671679953011742938167008640252433927215575572049919404678635078231302767385124027062703071202815733373806165399492074389609499884788007284461998129963040336150761555901528092050284623214354832708281287366975230272043848997811400279151698984718248791418506451842081303193669425273507031422450589100254642846346472377332883645940035087770906996870086493517529904924058903757991579295512151585491163429462736724790412104203101918682236724776453496976532265629794063413171629663190193354189698170958583361095879509521701274637924797987146041390688595171265223523359570658645168740592893065441945794079578365859843292057930624887988727568123004072912311989480345817616130111724535984964555297953277074808246205898167705580351445351768089215180224684140753918579082276076178602898807684735905521469898557507944296779344263957135180968913316136398607453899973674890751875555708504548087512061346827504716402448405414342318656874203657560164644797771767139847567776945590370371590732946244777775033622661043869606827062895933989955065944358281770159560322029361839936867196895221538336503553690180559524561795477359831376174168736519852353692316979460324773438411895795812887359636542221288854014468446797972547643776526236730955286125972615030066323701164916007541789112042408618037188706747882963945370535252773668673694008007279428151719940547901389230345492827858092390713520970004256387201656947768536544541047892229748865619601783130052572090846506960620846246334490469423496837727398317439591648897137463411894251118310333138966512093190882984413271568228566722562021261429151180484953935218119124780821508640514122661891352797714236658870005674729027676551898382501440751848867054982901767630063456923455624184425163144150519938299266384633087668027718540680905860697416305117746914881402163742064077637810352821966568159248873646240202756597945398449348486921939191332846295539197757304612794605750468839495044877049851585852440271220866009575598483063166698031462749010345351807084209043124039732407422039908136268394457713355330749064211827139118766671856686623005402558887057965480453843112017906098886634191967401391947992862394206638035056131260134022702367707935438652931183781153379615651300239316071700008321428134965065951615157812434514174860872955528291106392770647203207516290060882006959153067200076293212063546632252575128687125439922383347822231964864865248071481500480684896013211025853070478530682940509507697534826217697239938995229688592491905503129555232124019335803607518971735275922157726128375042652251303888705492763067740377572425806083680352415435780521136650782227355440189685956238947651289268460069346911256950619837048980134708909125567685346512720141541455763037512885029957252429844884889933542189379355768497427906917052349871806347860592097844971043344237480931426556421914454568495112979490828946177152798845892671992832333505899255514260547426174555688291116139137206683563646080795981913907913057428091089464969195843516311381277557417493179867413746592184048266722870726994237725013738990736414441577089736782175796832141775151862698021047548453255031117145861690081027525310744086224202224753702729399903997324454389577429571422197265252035148478934382894294433214790620650522890001753951061120765317071121347952791615619206872420095190223537378775159729291146350297843907186282450390999780517025890904643221749598673792161853085201207584507336178067877405743829940701074608937630754991627930515677387138509767901213455432366497650910801883061569064579271561068520753233894473621107994306146093746624715821868492093426541666126618216469976715750365490835633695718779897997887502122363186743361814621512616513296857056167786286513146457750611154806970823723706611945832122846928837972774930900781511005097574041996517627609799430883547883472867113835824650939147874456199829120546861882832387017724656599930492779827247873983162288100432960761816413931121915914935705846390457418645710287824337560273280457401907393841864837685248958416487347679082089125657893118308742808334629712378582126608801518527711476286072926677704988923442128934771669776944396711834141521786006113115352942318097025281578931412560255966669924862338227287518076256464376233785499996499905512642192443260813123873755900620598197654586164434788151929982561873364414765608479724703418591843190687078847312331338554182936084852308967297964424930708221977770450359789756244586970607467082994205989175742411515509974546830519310521337589939843103289282547415787562414775050745414509469583134376103545242375984167953397826702092924233831773177075959851354470826466200681662901286971093142412565028260795021533738089612395804037231071185066966924453858375102813740466685723782447421013891802530180173824980633450560179117006260691271034378850076272109431505022150533546525398699985758465555381332362785793909831814046354373144702224542551881964046354920105558514043030634083244895534569365905380714770249253896962567702762284378029581689012725104529948889101268551765153381914806989433811734694941712057884329210036400783842763839262538290060173693302614372581350265373386147586079378804111529869339955451829013376957436102536436532357773892025678025296676003314317473703691673939259940845021831026251344721927716015216914817010535911926393352288213360157203076025597383170441852337234460743775673627097372144962309189664407990619984603698542649172846717272536811434446867513089032567488830975098429638634162299401358538440050690403838145256601963716907521718254143473339802447711179162396635778470484674115737235912555413646390670876594059346884203639999207020307876948740531060564665449914642556619465076227554781382879441313902216254866591712005333225413667682116774340824639195285616440017160394382378087141649395929338213930529075476988586144972527489426973133810983379542777796281389606892917095538426536579571311962414151169371551172795502610109137801824900458693041292336263742323675987274327797857470565899653132484299590079365361107949153474394528862892006716151725135961908829466526188704141070760191172754187815146052544590082640347869040965416596337154310635289033561610678049780918371028793659883136931758661307250396871797670518547908562998231280069832993717165558684873545004636716420441075617791711295385553115222432547009390317641343637362808595301675206748325660416799724398225549725372312812705038629770344130473636730520020646670389010390634761200999193402081971244379530512094042328843608525213808842879787783366240448931805665533472292960048027129034518081792733848198750795152194331030069587946134554234151748734771771909689005616967138389255382260359588406484645360264868674358921663925258872459166294574814960118357757217198178408550136794770847098772940468269979666615670740137513942198854322337393612017317484111608127814404075939976622716840432504728747446679839374520698944109663278614828459602720355551940393358768495538971788696820163869776025179671426975205590365813858609374364507879142764007238979679265836436926928418592039667026558051471027111565776928255416518277503349275329447581761875232007409246876138837642155033821480273591815211567420165781405888919171412706885559974581338525379749336025813997387790691143709131867125352755315241772781311535687654091467163217484363025750084919232784424945317968885665319765897848860742271759515947514626629510110924325341955278660282968382336558194653340258709082921085943398386595892955930855357362647166282085700744224774187050703382248544467566359401099536394747614137811438595313551755907444710620215706572124920683751247509049663444658802878921265330910014203825300381903778605438435376143946362573439928479435379384655824138068475752569905329675745987313600932834873814655222130224063831114324028277170055497992392490951064865351643276580264332313845459757958600301804913739195584697148045861052247984198798520251442435496211225717113075266727482404940959781449811207481433442160425517028899732586666243143184286628800609761401200246184707038814757844322768161066790954259152437216327521716345610458213492218629702748710703814332379182382260877415589296991327426094988454330914987203886869645199538492681801460575534914029603192134597684157097146740124637850645269041812940989426215608952082415135189056625992403030446987235394490362403627802118615414795949692656448208624817506417011332669627619430574158591925765368620141777788177308636344574206366519510483319879612628591153528137358108258326972847257447611738509143960288692258808047973669231639768153697727587830202665858235182051340853733114728670571059035729775005011334351503350065404720606615461450859158940477280497852277425168882481229088220701367083931466781540394500837763176496804484409303743863807807874096155381499717764651216380585558799284214699287425625941164713651976178115327193167742261277691867661668118142296297154732062715008962106923434463428629000090544406626173994055011514019408903953337520139513675265991153833032573818962113980183659528830935940416883330296565275737799345445537486369671281676800207256629589322935268324472820332112944980281751633816679899307078434251457306580206450199617961072445040544373510957844532538598736043067346235992433311101834179953581549566780396979701798904080895171630926825772606987492650224684485901902265314688448193804888213292341624073239323224935064023423153987165000333648006010350769740046836718546927424189255119717258921720272769374571502672933988300695414537638139709046588146257455325894770677556956534048104456790662976490410812620809928187026067991026226864644073141277613931126869448642249972767527574819435933388336937148107090630753023688580596493075821145509646102887784327702698877923119002717457996309044561918714644139306245129250132748763518679439306542028128140147656747700234648986799342179818917364394126035712113817980027228114760771731917513794774211116376811924103185781222012718683468782281791350026220322580807530238932130056279406460870431078669567849224905274503911182796860911416794608077787451414776094845359158970610450792747226938667199396645747929678832811883588130360179725398960917914288235910669194642287174495804427317482277576338926499187349483285401609204871805668458635548413555857556561015740194254066964591259215276300159372448395549578679207044203611694758535446184708607524369892903829138776084890675837158897094839148738305092656948686789230933787812971201046595227456190767127520958343674423288103155531446311415632189399418519364801318420460587282760052309535191186635162391848645217404589477157824308048699565648980685754122426739347634243361625150173503263226197889124326436527270618129762248179724677233592547173447152669399722469801545101238358237357495702681050980694841494355294784129717587262911357093492057101085611877479865924316782856277525165510441474287840697984692528023266867151510603371803760894877409550476327649973329766894666023150464727985646005035699721673333055716594612022110807040987540644350659564730980604171099766504696226512033240947826092343989266852950875425088549012235882041837364069050182361984438375540888713935755078588050741802141366321621195045298177581408501903576979367537583925973909087537663825515041751425759220845404494983567695038959488707943262291504932895096516102200317139187226052699309756477907591686554467863440820382800608514301380919063017029539012432222079292960539313472392639532733200121804917732835117509062850291550966001201446470181115860034252134848921341480485548825460999874690085033927725824859861748811221971147648756399065125122263382407478447460393020985183113995624387401475738115453677666457733918346705629128225274010612398993407662705117401979342257333270465426804658368134779473072261499736748153717968286334371194608828683529112574746376056612201750974496411379723306205019886623135485006364475315247188789012662515499518099745952451570268844523746523298129841552451013702647182148004978255883623166324201941030220586826356924262592904912867670889533528736006067591384816149418045021819609021604454347624063197737884430059467717590245267533120862845740580020651474034058275352031903777948942802873548358142177725164698540053251786904595614430186919626482079839585736022005886215034375381608067830010591485624501561067912110753739641228834398350549872262151350391368860951047502490350620434962023898050395361624240524593437490313674007393783425256056787133224060929316732272348134492727138205315496918439098051256875109492722698094434180869575226392089905227953095992947889504941210494625993415897982722130035542806912999496736927906630173884122581131400499557900497795305185761765351618563868698727862123378642278457391642204940050525293005537901170661187908764663137493819486968566608754457425605484721766060804456470122107124194786803676901680900325085135204696947216182241392087700036540139336814982260020615523025476568354062151582737081673421733383606285806668516911820675959563841992866048638013719235443088709698301085227760574758681986380846361662201942956895857550603501219719302787109262289274640652501397102799087682839089955447970648826327588821090706286235301938347072333349116042551524609223189800346871150932219335664513340502043574374982008178279503722691703899775066776583484680225269478070196879579992714758821496642347091203188242568000767417102992754646099866531674659160081853245715594854017802847527451291381847865247380491584887108600986825401503431821083427577830805615382158040084904640410010917350299492870837711035795159512020369835284338669918154917310484657814627109241724717319058678129354229767048958942563442186081695954624000473198886574958823732322965672548878474052733912069236331978275141025238071625604138188522392042939789521520077467541354663396947119843141017529623491270352254218598616364465736042457219646145354793051912500252867863757295299553742674070566296905927542294936921537833316912558535367765667134760219416881241523655440934426043487987811529880324311445003964637416719305325486566587413824473390714007584853322328400698157565113591353700989611412920116591053331047215401791458497170049216839080306340308627271035393543263118190533765318142690088491936464673570809553095124905965698641585980600930637939505126192194112169934582836807819825215167171776930644809963437822501713533180295751779893360824070372290485767155788828870730725284466423799270793887898989692096434234378030981883789363300647424250823966288593701881893530158741060167097998388566688868627740855076596075172777813299671462125074064459316043875820560837338426842590039825065529177412391802865236613466145823161343702454870050271110062690465584237686587099483043374233066300971056310001165584001746187329505341150909427348714785108995942218886829633731775051419167778072623560354400590539897906297215559118296045621204768808398856163571559464038415130435060986782531665057328782522634379302266739528817449979288016129526715769603170478472326649106367106214274775662939542180993517263530254685702904572084692594577462488580384763221817980385330665768361404528494796380189506776267377699692043602294937222776565022734070458069060540641462025867672650566754434413612597887916989853584153466225725975391785260229797998688187522336415502184212633060137942108743933425224027849695219874202801289292167271581992741397735624503641675893353056695480067818052079802745774082759272667971762500894120508354058604261572520515328483835901993293075979348530200219356944684906797822246871048171588366933145752326975386559157924554832987602584569852962278666374347877861245546973849517321554070838417178358207424342513005789342027531664645787349930562990740849126786000501296582256395551009449847397078855242589442880189158784132595069362216750585461205492865472228944306652469208488339719604116848787619323378535507229655909922765171823837495803288086320884615592244808404599304678701606667990483541222622234799559216242980390261685398176715530030056541065513656379547356328592436931583816133961359513676220685589133392276168008642532281669398213875405478752969349713912197305200657717201926468753756388576899553855849823837375739236903760668496411112658445152804820377635388208336968767127402098494622089665722008729044884848690642325372916041205532360478772044372906466387298803261219299514150785353873336892347362795623589503273728380207286538978557183164217234266311541834465743099528407205071521996659916407123897342391591637718784224773742282099216421564562144955135677167349646105593155499730027111501373524652543426352120899957364979480693123422374199784648606646360310908819359723239105663471786715721093872872924474394176889751579461917807152208092531527371937756843293632643481688510480243730365972793658766304195214849266416699110010834247192135433788921117289222790553971977215447591089403124314082632059188987575191032198580214893873464833652779923039697984326701717127063866240198573506727360697526845922988596430918669613723134900047553443899039147913395796912029990801381774680803428885144451855857343249033596834588639193157243831840663594916386949310548004104420669808728428572809187530502075295402687880574480002823824806240705894280287476576703065515018303942695657566501072548208974997191110908899681114965906845890805326121409567593995406004939563405204620970718790844478316275856818938363321142468030868703226088029079689524999150105051238206116195823911590864077561106398950117271595036720033504910938286861197976373735232375315392954088284983551921538596221155448626421209723741500360543232617858095684893976097276955324895633891576392113952903515362989622359764414497581060003448546886042768269787479390586335544754449548439153763716740179835574814097622838426141967457612231641605626857315659064537195037208473268437546917684885426630263658898721757680117170683383748896157873570953793952957054677773543796578827896550879983550734773053687302860224511358310103027523888117679368140202072823471368941797646711736853957997650489600619073911697586688398238121292806562562459936924288120162020308319500900209321893755318301283388490785072889619156367815213205033237612754251280501766243003751959951561208387842813559021104224915279058291317249033335560094901345371722933364521656910153180720608704979682470445869585977720583942117275203812611892157750155946392848691935465079726973360347948100256392983725084218034067177167692812241932677714946120188429017105932436024529956142134230095209236548747431854428602481405469738140205995733682108984312808051631399786029942690321539955452291929389056826943611236615194916540387645078095056019360336775424949036012055533270935776224386261110001051289806816484089099875932639693792075960230742414473826377177091137586389398953429234669642998421362930753056976482564789623080442292210482555190776009555040827917759103020829892191852848138963055138992883161509718412841380777439974677668215905113997411317745096484026321935525034763640291328521251279451011194112837079206030553778643682908707911942035745583563813851873894601258521150770253462769601689628595407510099078291440997501928259108954998507720208344739082793725483714675525556732489975714540461430575709176894767497169014544605655039845067888726622198684099219497225378096040333375372627246088457553125907987328296981556467868643599192577612526002915303231191089290053886632549209204085604040825311943500876239514094993612439987531582476213686769601886786137797602422872103021866342866666198826974549228764483350785517563378412845537344964976431179953500503998069749801277120100711094007993696410593860487032866422314367199195686062881602933326843480583520260332486665254998448773246657200889909644519867005800284433604420708135027981677105991428643341726421629295583969203639817367832470380885993484160638922051972547593736706604461834221234348132891888059005573638321028172696604122939189688519534802235213755362241532906200679017074254399017880182440924030080354365201317546814825351405551868897296914726762192402135987051082036644459629936472192927675413585141160468097131908300104292995238452032633885447466926746401002106111527087851343941150528507602033047769238411750995701113635317290299596957780771482514780041090554031462202198721205045385749769407520586109971548823437991388007117495745998015519673572637225809110747517380256646973070850639413753602437097311114824339054268322960195599482412452932686480662633202045445696164240959789221105224815135520471727196657046904265153679450149327207684381033126202544940192268604711555978374120839790091127637905621625399772033872784549746712095913622476260011478437035393428052832560197713247304284463757196950362254933368758066679524032466846240177576361896352693465343664987764070614148420710269315623307086504886843665705180491910671899328736583746837159305392818437900665312090924574863849644405380458408266461642899551697664292764285479216688678834204820078804529315289514765379537277692369703216732351525951604213622752191229943472822306229760699036372759796898001935141122654992895274399930769199804855012337333822865391475807885725927923450696988250762150030752700144835752884538447520582390953593582149307269560262073384026882887974116105468976188721244496234906133099476921738941798783729677366232867353917479404495735202473176532855301793019938376673857100997341777452705115729528136436279877889188946282625451913292311148870996359902534281038285609278416718560836367969161201033730462839751464075037263207964699374249498558054914376719723387024843765741301483008121122719974057045763398792448054430978107096102986730824160351736799139497229147467648513936097616868246931926806640813557585520088607363433308932567432593559683936982419246477356496740037256548632031144826390891399346064951611798247155797110289718816871333712922001208296987205441331236752585386570298714252798755352707562455825203691177687390417655207305329249368882275866618902622417296945055782795229547324381767908012683184792022908560988049142162294020583823840440211447894955231211912425998733616760714453600649692204841611594149594238901832960762400677328901784397117075094695026401225254334258784854702482899601357551419796510116898116293194914073189790048396169641066265254829465084418854458084355349618892661549553765153922321047587961602223620554212782498851514565020183832635592408328142463945935165131514828099573890610930789443895544923032503000553413734133146005480660148297661057935692320931468014381593918641835021101431728116104369847710043233333694335767969636667864878827270014914743944598736156733695748852391463743422477755136189110511751682803934299285192186565028552587945019438527901129120023099011328427070217642684039891777783905752040618878746352731606411036112442579711812479490904894874155061602056274604843179096702153763945332902234515421093906377475976713121362078731435843443852850488252018366303951820368206920394399660425866218880178066954870852813013324700253677352855127755156330400931987918599082345136249943369694640635222190159532650333290070178050056886398488885801071531023307500469605743903420447396329795388817737754872961123610612110707079137011543957593380220309200880734600361373781716950099951496806398807437335312668692444705228303930624847327971994258936109591843943055775312804454086929045596122590453776488244838431686225864554733250453275963943621813904353288711570516577172691712044442179908444514990671664245885781339446588493301278314187264354144145617395958508258195352701050022616643605130548707896319101499681595661984163949420313248691615430262408191933263185490641470128986724834635108182580318053934528946904955764419521706530573927029634612407650484177540025101101582708391620099970923826943600495549161953803614499255919666505320134342370015189879852428535583632195147250575766114300927222769506776383104838597471083593058130177140770660071111953450972903558290164843846776934906874686415521046900776291280443040622827845423437138455693704541314853807936569845902389824967364613564388348406128832537597415328562195375187576783903195193057988193258006591819955086463271888781993052384228838175566073810530198383101957573127148958624310940126203060642528037944686716713464878095387263532429215813856459936332666473940776395413460280447758100089027056145722465610653378594780727054808694349019176688056219060503336069379170478639915669725533177713953728047444145698220559873347326106993398734710977147707505643957475943363765317523062500424678658810490280219224477633607628721728234859602117263659413000538074822198837497972315659429496601386892237410582520293800409066049499471905587096502577157415927837454495759306663362445474697030385443053000732255984571314587912753987341083437260111436563339009916585661989294381394292321853589232732867483222046640042160643942459424855870560931950942233423633841806387804501382025158943580109202787882509066833328407492269165945764683847895962652343146774737775998802909076122577524367924728072543870925545710176875088562578975780608721771876524668104075748887967310755875595004474906085722435517184842392637676743189386059945410077874772078852914740177277907637162553952444057225819176149539624584202961133824210953924489081470050702169382393189265944820969335707404537626367982613482079794559597555085336535074558138195118611117084864546367908702558669824219274835813950530634336613611117103512207998443501665470114372878127790979897019145674663567616386154856850979579962111043510905148548950960571092245887708509194097099354049960653321646040703477200540982177085811415701689675820486842518372359942315458483545995843161645185012550286631725063532434119555567251441781588360588347040753053415264767166342227310431209885111584175641762611455804339592845930686076818267527215063512663688226196077175132494762967694896604459401240049122534331151662643787828607670245169018266523989317973408749159538882999018629438790164513759589183074724351863022636382944878260804545611037834559982180947410777103510325452061083322167743869693985294720478393737876575381694128215905944677883976997485496971544530103643233348457907888004062551921691105862822167676436749261282023227113257962812067508552607308843872882603735288687213482003747190295885925930390173751800272042993275702136745181430946843664654712913915397287104923019641692231834774401422701845102066508910592004106310207409605358096854200055054952698265351525265954363016474077484115047325685664351633949425780401205366398486038330152627474751246281259360163588149691414492317618317626560561265412052452569314793793147101960843897918356431443404974190666247550019706779397175713311279289543621483116244650888202888635791529747699846457358706238066777862128669892632260668628211736167069520345651604594633234730088788150911999805956939932325868778404223351647005822827783463315084627731086499271447300007260291833019508261670990417029297804491816374169601752570142689249593479112786043459510268448751226678151745495831944153152274908092684300634676296226641544340145694089272278897388232341794460602060921972489131865582108315876612910707166980165555673810460359516294936105140416566364811713044631829046530827466030538384062292422118840412026813182637734356491761473326539250838138598099436377067708482673594702318338811117768727182341138978005288522139631094519208319515732948331169224226215277695008823040250093630569631265366693553129930246974813071918051497155863187226406789784046190553200235193598361758374166516187857141559053594631400620989704814870850983940245239084208885012689562522238378563858915430697052231664715736155838320684046363181878187261730478374627863765194687572904625076313413720136403448955993389188771064333170422892257937071109196051452697143411902366040599911857737491138547179180837244927052849186107867563754738764322100372219613928512561229833084459158019857511684927260029646870595932927828301877470936600723732585882548183537771888059455800429391317181588736298568486533878540334115535795539585760598334228726168814991027771305595306599493877291816122042786197646407445200501238077383620020336350453744228346906807358351391942515950064634813572435928510297034791499250506306224842491614862042393933237317001293153213855216095577968488344612635988366666597738848247880411565179246022188710335230717563610150018554727092628286278044462409253022917826164650148516700687000353021437525839491603583448790566657142446524999599565149066980734160733331867779371147204958987095715651096446791941997390845378597140298637587400063167409413056353973820751927894132144979243433890815483067523448029757472322904107856764305369376086638574444576304716979962183997791398312982579968214091307959081467234387197055643449010005878728006676307358752582300854211965644882895023365592390462898001551016898773718523254131908217788035577692933530403439449867180631013784509899232876060337115636477949746664444728532344888428278313094370851191752870468173531510024254772938711924090221363383280865687440032622895995503961092234721624162586924128520059258754328101681559675473034071911533277873340530702091234262024151885010575752978220688072910469567757575720648084771191483153792744457277934607189010882732735462638832826843508931333363615772979101090192089405294883928950884079628775897622755250625573821065061389131828395635779659332406529352755973032687187777319510229503115850496705980248001255595696071527187091132862790118437596652587569214699012004101342512343438092591257266097344709066475155945746406448408910508638056471693886707880582292550776406500123089100932862016629251357462988407031800896867169409433543136523280412797506920457825434657965128582136935828916923628702369574241881562629084149308271272564172001240944033327276519691658747739076248411552359689484605273697149622794520434232336000971657014160825917131559435010664648952864747309776715388798285894536586728529803461222265256775993361788698320526072200262460168886844710977487492500117810205981364578989963613822883040898335273377600920867661257349065745624624784693836887126897228174391362659264719462713676256702530308588376412080191812371292517390366840918468538595256669356578126308581675378057342792135759414012390346037202530937448019231890286872323893645274245046161758059678740676837844691673324382401755107421105586991125966347354445278321642517387286187782791760376154714277340896582897977255498957865279226791106192578656218121393726245246765922202266148707615996728434445940376470531205354916604705821433110919304916478767699541889973554359807391284948996527975353940424524719564049855157561359863399790452731421658997438900366262929385858171953296612342049911800707187062217738408721008392004340402799230881614687004425216668635835705762137330386259115302710291070012774038565850077662273850401420676502288103360035344281351882810935812102980984649781389085455643119886610154938578669565393227720032384430970055708657456820113282025228812684995766257128706627765148119884534293742773066335552935280175916840571298997882827142634927304025737373408570100526793748137221506231982197958627401525603784276964472814376013597694828629566260890517248645355172777379363545546080744785867587290359635581560070643406834322062073269967220935177510350817115544304691076464509672901394580971236594921178923770873642247286845443372984474307835552654246996818981383543871615240683460408579712444413092588882853385935362456330165399689668531646868265656119764584751082482450149199166318418855190783486059361003404442932623473718391916766502436493388884284724666383676239841095065679361291424889126399714026168443975844919977666620173114624517294024517469095893387155575769897641795965327226304531086749387260212474964940335275412166236742921274341695849870771370450231621087744910886498526305221533661552987018532566327951462730450668065963950876106201699562905415885524232319933059700698961382121454791065195989771009066581193103257766022872597929078418217902252183671267321680963547546969485349254682599264187796878894029691845679109295247699365639931598859774748235991601479414591942949069731911878393920976253640080704156863646513968790842434342262169914537888347794613036181419013688814249820690831752690968875149272050252354420221288799249068623870795562471888540160317614191343768853824380923053794922428782078746308992474249293892620888385316842627415891596010825347410382116889428097172201667928983211009846152946154558657611088849228754591977812169706617865801777015668338581212302719000951776960162116419419311772258087338606796478215246383390843776333186846900342544109766704385529045561213258816202849721866375999170988605635755973705353348907659031564331065280802353363914727257096668453516235541056015597126323998500467197071466458257314588256338380990716831887665457892865301864276280879377734792382423024685992514009863663015098829023826684083391866766401582753519449527829537573154547172310738509986502362835101648415654940314947839185219858137146504277168843729195169031927827310927673465355646723118333917171510299508689106274167266354880979360218362138630030794510544674387390711169053640650150353795749505509995275961560136994230309312013981681555658116207124434121778122104392466830557983179110760310830759995099120906006614493058072768224652023620949348390025275306312594305250180026262665735343872525195446094020130842826030297109111694189187306707215764448489252427257604220052049591091253347650417972055298459559137672505669930210152466827540389152498287650257591522513491889640712924961807926550168893318603099476980752830833771142272571714155971175515454291912000846784067207990444329342579863364318959999456813440391042522290681080615381639259658480246692662003324400903929917450835901736265675670064786822812835083067466847962705779438243974104306226074494043100566361508135310376845305401185479025081790111236402144404937127719591888397713003238198235095649811796631568237988923005362861583992961794462324058728455418025484110116306507138951925618767422193450155967467617189192881428833119369469634956765003897082453387362448145988788218679158458693849636276630744864131840885369758865383442646167255500784976926752162854467363546560742676944726214695913954868578199706341152656138468143954389367769261732803051462965913539637591384837356807495984746617627867132441126991880337821570429614733190869779082720229500340864018103026831819827827395930118969516329664249758411637803562648992178503086220296773784715849305195959669643561101073479183338421642373582402672467732634936040105769577432513219320227576758195346162097830283335356028077354701661557843773301162021375866824107329720048726838123996625577555591919881467963803270460452884142728484189959115929197113538027178799681209116267992934935295868945326703639487734888597007086728899055754452595115034433370230213673790414646537596326858014624949771484173451598785575184045014990228074494882063970810330587588800146874957791894979003079363613109909476666988229581375378802099485252911316155578987013441081696280910577712406065294760406970913477770423018530693419715539045945932776610511105538789550469636949702051008979757957221050304774871107551593396563716420103691257093911302776196394502839455134079513212952158525354470047903009324230511820145890200670391030983807378719133999234190717828094121433550596627686775443510752072373677637409413591029120434732262769471573868397478410370566899437634890903993273064983237531722248917667754248348054228805401912247735163967731981437088383617027787909271957942821038911897650542972425620355942813927231888018275394511351505048439011792775856709886135228247012967599597408917211359764546120471461840576817767312527837143808543327102070612790594291320219528487743572243116918268473254290039168594999537119205340406103360999074386896483659591003551973069553575797120037265673783706252739477719865931397222893440678321841149604615075668106465821075029801259539247036053641608884783209064562752933932900655643198342398147786080316605138720678316468180083324420123265738932144572536656901770795583683937676681344109724955348038779062413215214917845644844376547497262316676879704842536870185516911166815530142975739821288268322138623303191094058102191422178738864652816896453033098336357927228819175870585503140127818821839619649803209700392651335396616987585755680120120366738696179279397247463800558043569230214470901431019949198406774721551023240496710170348090204573366727829186243210921652630146449910835582815618118698097749535150204631489534534655765443434050675935842524092539091621410600240600505978026780531076703823662241477674464665159965444532378835498042110340619582577206387915788265649494343152469050421445863856272117306407165381461344588519423385738987801094572162519383434447115339351377332466891234738543812080372129476852871038230059067336689470510914765262798190668456430629213565038296614769170837789274789792624276424495794151814751907402138536256258431206715499656574056136497871369893162695604900868167526556474750533970490892068621278022484417732142965045363507625746216682548127414095995865909588366696044156969874009212108964911031846023392747090500990138938652812989440048303649370248367323165665493984009959389572373950322387534614035759722420707632692312611303024593395986011306309958284490571167858859442762645739778324852047263298251439932302214086694839899448714125663050703921846373189497214377644628116777766196611466448809170857337953556927546584419221006083622403066947064733077816847132618852951364660856144269480901191670879889520552204093736306289015685894464114387257077074739968591012212649200646377092026660371180879486096012865547987512666306709094188497724562913802005831051441299549800126427569760347800668390854284872419832479763080528972264130324347717423686161158848352881619621465469900538955076296105141340600703117774553609143453601501688311253118170148767622352207258865126402277244999445437743331493159972633384432155107310608093747727417085534478488699529962202257886554275112397746492039465041468134131961555948320926865365613699476401953373387402491727946776645067998316780930890656796215518623774194382786332164211100796242984775812088891570940757589556238220443635233920755281462214221978642405709630052632970505784413993071143144759835880499300104154107840232810897047426947638889914036776462509433445382127571200704676266121699768251111806582014445465353842653899396143337944356893032820011319184840082461040598618869619563440296642082434777127416683417303634292669903286686351959918792178674139759878034826220071325228630124908864700978081267404694940229724173074019036915988748792957614888820633003297409934264935362675720786356165335760178955102957118364099039616121619427258814605521908201874142059803753767581387852222607374182388748798485754984915760161911330681904701912319302171646215441061225123313200787808548471665802325234491575314136158797043573354678725636207194411191477799749278654055891210439182780469036726085497487865025576772851944326664409268279664352746374711219681922877789562005183196324931060189913291047745076633765016156427881199058742270893381186453229874197733892599714664549554613499840373765218004501650725445260005115866234450179136396619705843948377060191711151666078082827233116068824313074637181276622750673768440374706986760991242960367964586658288695643039585347103358811338243905046590705247297759440579418465723047161806554000659653891941272005534776166460960176867731347291773684375494530986469406864992798910868916940167164903120775599105057639678272264321267853740142592678756844100545249601942353730423129063691873913301865757002316247143272225373486577967214769386556519621213234464428536651853691663523330495047426811290592005797532004717868460109170882391393398864285807945356732402740145416745394223912233738382610841447465474751766085036530449547413533830256456371547496089251775427274336373330112980790067672598580056072037155711173103854775981393442864669468316385230755592731515026013185550182357137232142759213941958786452551169042126563019463193936752736235691628043176961111756004804663803866959660167545641253755965195364264025127172986772101581212804209650809429202962799119222944310591494457672842369974842767651397707094695952837314761828565508664974692502217486017280017693830146993617822877121431861444594038120381103254420229675717402153660672280515225757497451823830328429927520955280588798559272460902756517568783626133250592845189537158042447325543024161783348840241914053527869510840854355924204257967151522387555381421636373665050358034497035958708975376403799066245267418047663110260743319847483879600683124007054952978525672611311773424404361865369723612430334874233128283414457219080228363208624396857662008515740578638128596006155453843284196630194089162465920021066697567983433157301734415457087324456253107300736593608906863699078402497711637303428986357995742126239493641706758379316797587618811436452766183879318664214015130073448314624010056244679961882200460599525707315417153676100205938447348935034958253338868216281997821497104039239315969500614952300165968290289391069475598730888230024635942255168059497675108832455025276616680415750977492823924786801445510298408516942378651068439991179201538906443198596832050221429624128528431542258999881133527289699306176960129893958768326259015536182519671832261374810244363729425223015927621133202340271528028885101621574419120976086658977422049636127883291220901293880744486001727379412841269190995032576038071845704706626030384034503553429087982455140331323035372138627846561401829546279429955440734583650580939130607119155721989538284423593348414029786736886536150903753056375668377494468169774501936125871206669840525922894933430719217842122985803182328969448950400400463399119960026918611505648416621496549997006207893338173713942217565568227203684325655293930677656409190615241911876253228061477139147509893885197861708410900602695664175899491773339865799960756909980180843572551808278039427681628221981724244538376825115725780848012980771860550191669003382020210984284333077690596067122639631471756054396991302447080878157544843824615898091346468354471385466019802405773786867393813616856998407200798723600994322354291472083972007846855202730853861376818943427867974605535468052086416482149113787487886420035701881209810234204156828348047395711768259761403192544793792499495820512645098403781847046824970836109767578153022930279075381154066859342142903863898185598433065011912063273942931154212285082033336403675879244085548868295670523436856231147016571766122738491136581788049298513162601121514708244084775406865204594994539406075121134562674780698503903769529621946404792551690094209952172713334085935371820899331474303183646191410524306800061635781484740691135448901968145271779427431904405368723431373509698055210237580146305026559386884058752007789757097997681302538709412600300995335287555905767693290353946354436499850554576188124012464577191136472127433871434227820409700408375809676450225995535527605973893860459169450616013484631892633246575750674934684604978904532370892084565231456459127626344202240772964445941781781379561834078673444413958713812293985519438017013751887389225552864098685942819288075024620459860760436384602330877761425935177511740745037511605053085929373719933866482398140064218449641675233310456982856723926461286077426199761005120372346017091232756467904358172475296733810166796862644627416166769864157971543216624689028953350366990850596919727472091582411306314429755745675809560430238444433732017995191993693494623127869167449578824668727670882730980132151659272079149204922014918324232768246387348395467828633934649858288676522443067272091018382925670899710121841888334022128559585475237212685668133828014634829474187057747753111188740122667702231786785300173419578974409431455232929190651739713785581102617453617598183075126470546136719546669833143901384296916283395438136157437555896358256798070468710839528094626486542831713978164475285938008055943945209669045172406854980662712257996441875502309569793872427627149478033615491258157184580489107924213350961874349278131423482810479251836964723734779725998517200990829968933292280196076067023202886615166038496014384678309870496569616321745249510074262254808019620515806039228240903858770499757329455972017837343908398997761302452728264708041779009303251324930329084140730215384310789025626989496462008463808568857579134522118646424183792278906651753134191680588258179752946807329368238978402407097499492529078321926857761172943838327501836570623411047474470023482620115864203616435233233481493379948509404375901255649526691629994725308675365003574715528246543872780257242991398580203530743113442091611137584425445442986024873996195875091518676701220191936106300076675756556659529873115577762721332958163411062618795241401273951187043696305750405833424728755378675319343415185421659417559693213415847441301265440795847206764484800462758584769616163264426826714214408718003461378786317133680736698120147688900256423640496626607481715290722994398320599201510475962670917819550487128534802051123311117812161762751579368055895937568265694187960282351978277691929735038951447053849230466538090781436055294795134343058556242347789365457203183469226774042523056245171571952814335647038565715458945807957950716857467345490658689460111220964471084820829313302608716037447953590302207712720778694626616357403010435685142613995410642907784549049819934100972307557934544049599723580943073580167220820389230637548449647962001226181887443729711489967137116854375514434089606610649589993067136427422895577025741583718235740687523723701039582406844552792936280986154556145780881268476322073134458459072789991989570902602292661014097174435209710258694087773814020423964829356007319020961367733204482623104609420750245957101140883158680044491454293002156894597501833537163680032402322370973886680031948830830749161832899105104573007165948998630036637616245099944452559847498553936644179904324744904095254315196616538194222432579533062176253802468481146309489681295657290677380401808513966332599135903253521276924181827032684081548074446383046450099790245599498232584300902050603053084223199314032015741966106737161896628511187115505616958398619871019947794316580718637973511146266081792799404771434997349722378124046359980231687632083875587184642854350438415623282710944541365482180491216733218681446658770496852601461697028454706182396502952730919551561204873399250894173164239054036356161381801896242425586650263782438938002026321201598970467778026153939511590686637127180001710847428824368392423849173345435010718760272958027676325692915739179251452628079722777774175466748498752457590318989720645373814717610697169417171326396005342682999504158419645342759686786608096903536183791316394005418493452572318483149143158406189829779737193166809985724632303058605347522077266110300587019971002890170839608230879844898879360840810030965256931548429036812102668075316558383127894751710403381191213080044311763414357345153188386920590622522595334361991706583059073419422663289324293358401057242980894766730586145088677518672189946491205162715129553946292396290471720256987804153069339616271398591785236086523142568337335966115125166090131483546040153831420021974662969309538161223326329228885069477148232565002106832863660635432320931910484763373192345118988193003543190875753659642039611074300336986062181741378175006629551860420768639013262967988262101365689608173251643588543695554158904222895439671610726461425653700281914919052657972721464889630012025548405909571525824583618888869492997489024979080252431976293410496746182954671850782010838608567954443359588342459956546996432544762787908382610409327928744943449861995094129440892374138906523955382922154342964849867115129120819495530420421685877236673846287382176046391867542149707600259778649876350847089774197731315176403103510995372784159381673708891272127267405994585513171228681433630477819513469717416248027792327849950291127733091177723709560376107437689045625766157575947256493560221169342148427831258119847810513630346618205907551351381452232726858113412575514457006094416170854559385066228831365664150792676366052879577470998436611669574711785159606545189495252405503767334618094484708321011806968269604663671942907425636639408463872046171259149646531399131225417233668373475709256942216296669068955478006390316170348559431343732184343762039865352715704393954968029014926924542277766082097882428103463455717316276900520293765677958400137258913847084389953307500226893803685158561480851203374813788522781635969326087719331919930920995803457573958729665866692268291971211640471278464373767261275936153429633086302447593230322767916998156445475164031026378761243050298397289655172507821136721515296323534532486308418697149453108251673368669130944941733200457534639181571905714378665993868001098005110510546094506105277739678543306146706364640167584793883349630461516836998109168434489983180352818842343248512930218312694524583814068689529324235549597127185893870995904812688084027656951262690383802341400175488847819366644202665750545875363111619695097428033769724918622161022418998414439068924080767611866468364054672040918579066959142301788929550881128260953894997868531644368483124453573103155167696898405893466917393235397786257809848891414272059042840121455417951894752843406585129663202760209903967213826147551120700278916262414715843113299198393698124376569737394174633292924629229843593968292403704627923273986584965187767674771388018512597356361593639936669346236280880824323046494695969659744822450192240914118483949510032770267638779895103130083944902492774963719033214279643321744832569821164821928137034244527496699421875621991300386439916321816731178294110415105187520823842673423787873732666488300691321038482720472714095192211952202565718674893830531366905240213441526851243900663700550632052593345584288387742416739703799408749766530816072426234586268155771801870205908253437537904128197851381486388328447274818820800659127395706198341085916030886990574772824989376048190376610838152691049333006914826695289128097264945268511393560144426453995648478430050321134152646481741998415162960233224876567065919312535067271201665045917662056680637788586341810969480212983830778952015784286960459383148701042271625707205075709764756057209747917350561775896070818750926342288453033726734392382525345894223744287959465067356453133668592143190183790097409479861915762649492515848783949992117594786755479656187433464555900998740101572196669839561082230924994863335433152433669024162890447184445742985515481780324311684507125542824728422601100363196219685250879846771128867684768679589069409880542458485949792355089334587818316652769002197753082279288661345827618397834095032781897273206547021170204768867515647211535080226735380555788069520908413845361586880952694789503372273985313345309162789837007332992834245475506020076351010285265916456838365728623008969869015374880287961655840706832817768557709629007748194827666979511484846757160982097255216788593919015966372247121662565202022002546200500080527511746718803844747006444882898097325965998870588436784421192829051031498163485851290376872537552579273252485446628664684612594528345483134200874675008688226356936131410230209539554293266929136212960507031408164602624721660264935529956858953993880772974150247053146802345810237770084026719944410339133316427932770360610309141786462767996685112794658556901337199856770544079372613109294646314324197820756609366255232765917607578747783187242778907858089910423579791827770124734210772421257127216357892882809872971659761069352019347301156514416962110776051721092291701698039325409877138116002030494083307906692968029165732818329541625226402273224043971656214343399587027819897462699369313559285126953843581817600882553322146519742466377571433991616124550968964966549647669742247155421005542336902772734155261358376631505532739247340910621055170872072510304105196181762474171198873019649445163514130061357257362799800933853791851802452498403070582582861613733701475490257281264184099428848246593901054454653448217582447538802930381647230212767376161285554995572097607121391342992505600304698968171866698625948169098399279897068975447619170698366501788243626452896895310941038528000412391212477768436928518245979472575534248387803704786648832028572706381605508088995878278969524373439879334371195469820492563097296312252263173480773119873717670336561668435657006810125848375960205736755578101225469616388250437978700802323828924358257980803267368661028338846166533556197886959236843855284309752386088701860626528931576757801559129173586656207990639249274759487283805565400071742232624347040862632323865579153841129371264123797504361592274693988283891654167814268276509866768311619600307310663327392171203410315257155775179094654666473915646125073024949890834030182660291545088381924466261068114849807105432771937203448745805772843272689806474554719391000841502111154739102738539056673293418118820114280902726619911809234591893820497151338411356918908890666229650263329777561069772362134669625871560784041474575894836812198365402607226200050709468388534105042318618007051356127482517792871009905759532969639317588710584831468410816185058036883313793719617385413706341448684708784322473043965714466040116818715523194281990748482960218777461900502344997848142248872916535475765130413421408016279319540458906080057487692776534406117134150088115075894636447407370127261555448634057768630341634089654710163288864610126929186148771667289452486273009942195254783133074851258544908325693568362274252575587888361361498857865525584279339924993693675386885475300307731447050655677820783391780501562299439756484068215244883393815965969281868897141141075420358255902141135066959034363283030076820644757205065988260962455262558150493175867355418597512803329661608811619549564640580743487630128801735328954206948936717257202660150213551403944701829396188167453486080712433650974483571081157115358121452627938595356284785309662048970290274001355841970285190494746015207137736754023190193826277186553038900554157364241738206051316440686665496441102537409400608355490738141093350127240784105303029322324131258093463055040705701723211211592450783121656282764240276283009366759424749469016513563810893417732531620169954115381406499373475375652728426872532768477846975083915608474858774933689941442109973844358619168901568204442768850368479035334161496090119787476945727025080300130878424758382418455421952825617368243837768207342896265241343047394296472437042559696504806629538565517922377833402565029852720673657747239433725309297265742298799914219501475192449667706809466378216819017306106532389311085986709884424860647331037181975926107726393321266585904111582138503734541872217013267253539127289241801643009622891942084922480088067371998432800778552868103060103371596817245811899950384540030458109117177423773801617999977821485686975449232977415473803886735346892285412488496991254133059744580313606901734039485413660914711525631274839693643745635209901997448961803506499381371467981503270300573469391865197965176043960271309805155812964947856968380459533381751694738835776498908591716914957562362913562352500246940796636300395559924635026427385476595229408706662735227469408737063926573717856856533058140009655766457210926281942016778237721491406740303921358840733557662868487178377410653843227607403956884658770518000030642817343961872413457980517052106429137276031967022843712689619841747281343304223703082898261392181138703537543951213885762602233038137599754092474122795326943516411214428046201769050393115870754070924168665614225613752974894465367974462496198486975694474269332423797390436052168191018191207578577811882925313561834948263060823696826433348430138550252145700871840574636656757656960576129734092444781024575793441704839588288255865520071095020413175318740558899968480664949885515315625133644983435564852457559751316327798867340860628925218285111567226636634695113235385804352205818433756683696408440882843835922206695276104446396155956848830007680076530965786453706508454981666736558960736779930745862410696491133156072667559182984270122235665363686506016859964439268048513564735128140786564989560622871994574237517254207538296690452186175796110110052821705652421757017456920621690359523870617450891469294150244198661106160073240570442056796170092826176898531872650555654755470156672649664850905837053864237247905952270209379100797329104228514774201497604906121901548130726484771446778894874507559280868448973586031731874063121426738784650077770784636190199843731358639992475162601220642822726848680124254910199604224190261990696155717830923805231267209299854889406646906469270660413780032694747696517292704338234397094429496226484453002943723923659627119107486972874640755660774046741116216345798956031118758779498034695628095632365990787417558882818724673489560117318174160795095366429107290205662733919519619487813271286568369319069164061535187614590078982467534585489169830525488541860934091165486709138458122524346840602263577623414748031944026386273717496098880289454870887039559610681513615346948397198951725040776180419785724645351275354478823439537213545666382717779518635784280828055070685376878941310020345027723060459806025655998253434007304288938384613651227911045369062974174599896048620422759089166087731294193901975271913374323718882633346055123125047759296582143359805693062250498707094747062687246882034143720463521690792428467491525164589562016564283199090129439265208065514760169018623265467703975860331420016685449430652113799863738161844251135584002149472882495958319597118633557263699709615930854854947238822040469693174414655478359841770220647180831196100207691268320834746633762644020234649028914812897318178272399222581690559625582700308718813085588666413121348318111131876604377081802106116423015461170189287862135597544586902033243378633716228924099460476530401344925416186661230851359292766480578526256295548008757209972022458064715946961711219496853354583951745539383454669373787944877800425134251282205072156078565025779391737319063144799092335130625175690374704926983122344719510555507826532413626034558372897531908616776213114195305900894791490396552904433716635399008288901584129228891830600607418405444055336262327160339057175161420460980120491878343783621801336775740412894706659668049805338909584151627153344997645654042702821072775666351207884609217926614070368414943853023398779606906115751075001769482808182985144320455731368418841819487674616120741911023660250694866793416253402150083216769842761245618963084947050253525582915586142474124689700015241076102565222721055470296975757786250189590138293890656496841054800153528325595938662552038481994461658723268516271994615051500522301439102025233751866490617593549284361748732199592169902462978088619783370535484511289921020754390016315494762519031598534880043061647066587439533527186310028967855762593065120284601275579791602675155115889747402860312865427788035521030827423167971673663765469890562643274370745649799621666213793311127151451108948445113559177639350746092076484152852711928902603813632964156804014768803040649257906550788188942241314187264165823948035578315130068028289106664946952648304077804172687260808192333321450279236809075705549702944260510993055376883695493097317769734958109430435070009566470257026291268110400700847522894016154237557260047276961953535671614806859553697287301615651318835923456168900717154960645543564350161202505017913124748179121499935815513997753769652731863093149247412618701436492047329492561334435041873339854386357516791316262062277051880587430968791554566345390977478043031862774453485066288172150718129895508539936637303861245738445198368934763754207525588400793954336930922857747330701593619621364705295404813358430439171644883567101346260315462686619393613133121574281767896753470415990995867225016049283724181988591811716275450465958953640324720764343543034825831554622857409971799500613407760813320185440726092210104671591847653912306228722137729459963475182173102314860774305124937790526305226063726781144693340134130305813022209977963084690624128350583499137374571483404748367324578082296866969645675510562916860665228267595075776469244656488812766930733986901300127685324025056903274896023490647007079273724508823086132357172964099890314256988202440492045496074871361637416454383661019635169280405419998590681574271006198660914821437282298867034362835796839565192421479481610692957957972933586224381902843773350966772324407641520291337939883332148657942976635508172611793152952938469075936376402728208336067775626012868092472855944590531850024464494763131237846424321613997917471712782645730137582442134589634943233323370833779914189362210226480973012738928779079169636369364105813933767198963724814568122282931874686468966161456989243453786830379050676896844348382359421765068899728916869701847190089055133162276764190969371209873018971188639619704927624031955523496295479267903277460740522568625466909965189754841833847213522696540134146084365780817108107572750165474987646292391947630275513841195752001455772415353821749616667746641089251601004438973114883413917106617807561521660604549355206616631684380104633080883395096759896274889050407539534793066685419704705683879998080049727936435046738083124780376206483039680806984019809660290564559591045345190059383124774668643454101512048700194484372772153895552493340263718270399977039655666779013183558367056671201157593700874121380937006243432368459499547615721182100557370505726320258630047618930016632960166565897361020704957688208400874938337374726530856734641707769498637847156834333074147069313445107482155319434078448399974481601186763496674154587293400627998488338596474904696029188021291545320207565870483477529817002719133487026672476060517255527972258573980751511004764773114331553783257098432276417415807945573873762245463200951910604736831903087765924739062094791697747869675828575144153422556920724571842055320166805059907371438368950652222781617958068745269623024694931974658051652548879815502845471283926956721416373811100940532869815397805324515192414655101702798340313769438164925752016520982895805416701890837647019678210552808377128242640151352535463990359456743906274357955532398397935653008819041301617485040253793103752863480663889800842211952646441925329400210802013810424529637532852124262776222358623496136652022505863281822420993462028016852742031853051653193842268310893435609207483480375207396443488485481753583374745495517463978273049833528612111304613045932396861743102306549740484384045146015498080274832502028037144629390352562554736829023480670986838287284650401016326808075809530336535158239189093999454132117354853375078768176312162613027957881828057595578047129580489857395301745431127519389565821343387396860660919095204841050688501718441696947595966303809820677413026575535011615864351789780621919946670331967991856426883367811925115986095474844492471665150494088202100687936460550980616709675585311295154419023195475421663802883537838203331825446869467777781802783539201689313930298315410593562301549597808052807562151282430550240954386448212203243199763231388470556227843665741485670812988690416522431310349672159229384767597814765062219934972156792114764305004766432492048938072204519676151014991038148807076369474739482214658637196155843709419057587518750846758624207453197861365228657745612487073583107066189732826143689544423710501725585913812749429961787767405183123159487422619332154239520630527206039590538822637467661810535855125737269451877245423297293415925829647294056166121671248088790557514001085031551811483682227465911537440485532842619195164098238328928025807680149193279878622479913818685507813019254032823425793389030825317532139787240266366146017996428110030937272341812354902558034356829881588170145812694363072589780641233342646689868142397867177485195970318709758119657796547392464069018468235569955562121902509297927208242325163138109518363222847267265296480716067735459762352856669332645999096261975578349207265523744114752505304241828197567508917901695450966623394868624288286657047906519944071576112107400701807342849204030335709211038877577919117276899843294281486809301843994367154394704321771006996906276359915603367908233051059502808154164721418119965671494139384006761359746569984298607864177816813966345921092023978081630964758681075187947767909342801879740940830879575489627324483905477595654021689215445535319247182445764724347167362302091554831314521937255669979705804588695503710304407783031984801481983665001311472223508158239853382050184858586095295943608701959479125253846710356969115916510260235978543080836434133002063463107462433619831345688053022701321864458996874296667868531461905663514660068552432165943445363132283040032810893540404089769347654964711210043841724740592102156670804102414361596765513326096911692401103809058061883420828007654694250115584730751928720833533416601166093716956841905317611865876517537520086284543605925401127285223541855958486487387931383214130100780187480069174999723078645881071669980090169842359762463692377167669238339674792618487025448109109313560155006047384842102284012967680742903409258755952383717300112286812837875907873936126074824721267727780595068388489838251956769209223651299925003314760396233972370401405082589373013248346011628383967983046173900914344763658909858888224493093199151227031576127082651184390770390314481009810950506620941541408658208428238323674522166481743270122433502943982456272723453654994241781539989127044267058427902137413949104060117400838988381603416192730592415662798653343130252375031923291293232699323144406136489995812394842168075850717772500352568960245733903031433699480879658121927824291435162852157327542348160370803739437073125292228859375860455057274361251894111686015107186927836016502611565657017191375843365072813278962483002221568500236501080712455764058113426496583987224250754485260145690347565581221200963284782337255098117594684154936375967186343188130891550503445517062130043154050605986044378876262569301681263238706155215863237083354811913515037282877930121124149078766971260458164286218480808970138817036809514013183788917115942912046875471769978307521522864712805395625963815749523498750429090932608897752620469535722914037550420445361305090519109763705252078513873583102422381662939725218243724997528889961199722316042261972949916361899369926375584823668340022808567626039432474987560939344843211743490857185381175241947552289131043450287371624407701436953948042280158677027878941243097758980791485505959675284770178494831220652173893489640133680532852092022790514824010829469398136512555087661038004806211248991415647663057547031625934476256139496505391541178539464857504869087374388176759398243508918918678885349626484035240115565815400878609762883879988289470033372581798554207798877824154099069538244696556848145024117026024295381132220449865993171991731931791629275507878913574558453539334560372512478700557463731264821149493646535256295708131096464965192378663258268444440478613655236846278484157939570312596006257912914458472530207318919946827311307476063903908088408665887321828444104256369140952969645132188570878492746007867840756679996710674906573342949134440403720513908538753764984902145847191192333330246353377440974308403017805374933264631187167512130236044963454031168426618006946574376734089457369134412146265171633211978021506683835421214535127486411723870636695110384966245266596912263165322682740939648104069948474410655996761197732679145154469795438280662643300440124235006477969435450467748506332779228235740245000265303930585104358430703253275757404422798909468831474219033904940285197064572498060085376510494098600132986626980159648934481127125017136550066185508441343656283031848721740471144444933813565027130499676065588259924640134694599270476198117462967362148451726500035013434784881115508951462331938658180967168749233968851468527255327489682784513409788332923030336238970706745933708593544327717803631601329177216304297789230071427381303342565346585465992560014717599677942899603620318113766869915698819642954748944104913963037435674163481814760830442904025641376460213109722234008541638912126042543531978686936183397640311756359864542604168607596307458400790656527427614111263692201795360372284905491545458623603644965192068868258558350608758003362307219011997273741673514282652256012578690074345653901860422850607628011746488463228999616009360639766430900996436380733180008868810609106842955503070077814160704270506390166051578555971420749776001375849097957419077752720291121438924022270143526884472851803311176614395137468571654989456094903152637925429881547198317092366536963064948905417832480334253330913378076664529129548322497777657194923765847433378046546882316110151689158413251675869266300684793085509549578266925404724795224127750650797926663231533116451612763842922551248179703176957710505040223478321839520435168113318100656670887386376948723922429929761608968083723087895862734797830095092780059932898181856264572904902859208636665477092980536618985882553638962265681207469199162450223671213279911822216162452157869028101907167746108653363433118082587415907416553190560114415275958347653826315582767416996695236373569804722655275352708316577303208090999220288841101901492763355517986288652578980817341679295236562297978126914855312996206010150729460681432811640416257185859619619034885017900665829836839241192793635619375627442834809875195196706435523183277984468012205079999702713420465178481982747734371221209721568832006162603014827046794403061078556478443407749363922417557926167334348040620897011481639336880179513976222211855279291520681216283161827266659503681905952486739078941251883449872637305394620316728936572119234071285182783117299904803679737851105006208173515338923014623038042694158501342623611420883370565416047660867735088443384174014056644242030947518414142487833658046568704849850748052044730636393605204359477359247291432858814306398322711260509294929136245068123514594715527041275393563986587427656183483733719496946297649773820602903830962642589998236532668696474459826022229057340318443014900946753700218025324453780024470243209916699660385680433539818479069800551792460644220408614764666616629547193167808134883404765772413327987090055165616931831125892584205926186023217211225112164188320425691402749761413070688339056301955952291640634062524894577983963175948527804683175695501306683930453873822951447767285972388511859519836249053962315590018653399913752325515435140845945908492878575081506689620787086322167652544258031752771665573690400716405165131211657935285179485393295770050013108428120930095426289370765506182117226184072592249726270896919868374449824762579229519356368017095772204437540710202798868460386198517807558561502209990003596621989860317410680273401915189819656810020939998815303363505337297229459842110167425908281138282849826028017917926337112901277529112832053260807941235209165307528155383164146384273027310986778874676431662284512846784962397347663094035757486977563414541717339711521669914748371052197666737520202078656318115153923674389832921176503951267433615535365063339225205406083968641580929166525952817268487114292112718762495507571215171014442357527472470356347808285605637010799706334825685460185371920307040735509864248992380032528950439843168960854210949450437114912477217158792537498502713440934180381305015603143165169344306900574540286279928958882958714203115716954910573209750734443156305560593589821126279475027719215879662556752856210508899517429129954304433831809312712078078565891589484289377728992740306293649948959788710642308328386607624861505885687123143747261659607220604215536717732934702270279666415926215013045858950736718134536083232483819931423395848227487443980907748051420485474479891660397911710362094809298880051180451271462782298144526134070065085955238084014382384461157073083168389831225412644247813038344742380010814054164535365373210278471541719258780442930884194561903469144746199563026864381955607463378765703958369412602269455885661007112582557997035766139418609003542096026498840629461326717269509403977169765292251470540821076319882915362853390650078823515797285634205522146933780509635989270596019112285574149285130024258252990497616976150904279750514412446834798948480221156843590306864951774895337222674439682241837348626556622158069808155665032785056275409911950776868094673946256795312219248998035812662057641813727003284984839744081866534885025587298412638185411159088727056244301523120006710350253127763983450056725109793412715597483508560445067394047899564758930242382723621210416071185308075922330104896523664839912460538093417718278017265956373904823036595868361953949159724894357320726368840076546439736168315567357796824133743018979217058732945663589760491079179664463622802281831019936851539055928341028238391436638297985174959419507378629034454099943241913319285796040327256893581708280191658568480745643852322878117335232086813941882548379012838339035181627638625354248054980965641993874010482989079974146554131584145169271407659719062894118597391284509706360646435907014129903043545181368500294265256800537262208714030331471071615019452686804660781928645984120534011750457981818665917238821829152170976741646282784846485826816447749469001205286004671553979359970312151669123615229569289539372628361774935839551560749672858940377132855149087727799470642301532969456504004075645773907651956990408923861905791794887407763000222897549708615056665660465919454774564886215609381311181128278271469549426928608634884081967390556538552273582856489987053892239291442987312874054385203921776667391353468701551787239068750973826784729781804945907983385112413602059468487523581071326384681407120821774250975799196569523048963854279995458354668990575250150550013952454621377314453877923098181438517290989511545171397532581322348366320338926683086116492855128082565342425316198280392001248896978912669211814205254850810853423477289818708229833194982363186906602435780064664218866200280354960332829698371481208461999460082146771907510292297346903582261038076030902937026835860749806088580965012648821175251372835882741705038084623748992749850638021567339466788480396139997216251142946611142694812333470820248258528467943076200514240091430931622451245291831189143612862091750159706873850676338373829202306966632035839084324534235434116853049605167864072218454224859058527398264682365861622645044981893693433757493382231775957763609263396925764657861621675685077590707350586145071507770618238489679956887557918456483589564584343946736854906566494388221117004411962268167132748531966109410501920673946163457494954261451465601461968305195927735869683269066440122360048964877783926780100261705892329967317307213340929739950801989730904728874555432227693525466114826388639720488345108001799339918419751979348704389237198895594856527658971101083360209081369905289932218644718839239251616438523259670974704412170680301514245064419393991922541334954215682493976955716477024556356806827199914644834456216386265248934641546937472317047614518146138028233099882033455007321354677308158292380642859018274551971518799969875566317873942929528038928227769721680527147574798770369973191461835127802378541192913879237897307017339452557015195101800078093141179523680204436615791509332623222503356946258438301626341421705167986780718542401366273664046093820074197742427491687058720447375886497979051288979932158531756900863860888933049114199467551649626302699177018023305560187656319120343425262852248892333071022790267494336189139508293376748840494264632935981633328343211489552229686437695279300100837912816229340015701509900498727664579837032719017932880823966482125444864357634775564642105475756954977356941650562581841470246639207498377704499998059303573210373800160913985416357087677082638768982257897090241602419538272800845664609513323824382954868843453067757458624083942477635788860052866621471432835412922999154645968397197979388423930318541992208167188171091224311611431515311900637896814533794387115364269342969192108280149757027082775696103393583550539912536897518692170809564832163414529373078365413541352926965894248662840746411899652805741603268968720344902769071186248080736595978541576495593118690089260610228074018688449836997993072246331106582988448049468580382581136685282504123678329221359163609824387467178409155953958658761633850608942721343045028838406030437264998874911487337050276037370863025709753981056965321483587929379290650676015937424611270455266068872859505466321835057013728604826494159874128025783934856518178991168217069029647519931355508483648017584761045693056953900278134581186870936967244796593017239601784232672661911063472416322540754972561616975047338913447023530823065329462696535921972789990640964755797780189407952652422935510684829484207885353054004289803854774826848465973408525187673135400069121338366847675388267594263884260120277187491143074514803789907385457267364800629766142202124767921016626366802692038732695779893756929793321918251367762831513442235808481385766362286121014146780116243404682555219399506352456353539060330218994750750978964984942633444374129111234922348696238065240914010128843687300941553839810264788503558871529196471104951645565862040579794480422024795168521475151523705994725131688188729590280586120480455098631672763515629815512703917450490288750732155360675825762205017807346147740772659159573587050749972137812428685870739619437881558305862263826335216830358164440016028694673258583923064831524476910124672845497666183691031583241585570106730712695082226221473191332854336473567176107582886352505075461069646355932528175758170110915772360810601712823384624882854423218771361663937956451553701876771418986494643449963837403926992923781810408930707788258604224513585776137150007105511903630210301331003850456235740058780882686357578277154371054458367186618745902383167370078478378370266993139078365495458329780933595074024497643008771680320705260312170200114111903296398405126051670886586872095459378097938316348065475297626651924279577842496563751421332637703146279807613757914107666033214868868777949280326276490192822346401265621408277661011869718650778756077981949206272194700767370509921407397358391918532920746933859632507327886269575205125731154825574086194010844404182103718578015087499535818566985759591550677098887115778985617095146499683546928560345231742747345505738011716484982823350689805026740023861651997870442287897424717631052932673934259973630047020894276632780696072460426458706108582999009944125368321728090780434899742371493879818823793153906689023812234273697817136517707431503545865657612930054230559310960264766763178920499449393185066273831817663630982985870433732285584292925368699196073937836587394393978579433183867216384239490109392337831904344090022736408585347116254124339698052757065977434905782755889718895166548293096078078545962095421885657221933791066073542106843130035696948388864675549288803672717989827967984843083437762692233540701222450488339478259834568803411468549677135011248817597123686453398042411936611011145126439646529037559011195525530649449781385369162151473221927659294379756884866463604345188934351761677122418229596061951843055529207304724757763922867013713458719268392826831311707978482682918205105123698509380313611944824199922699637423851728546900135707170181789853912104022810326788194596906333434080649657571689191802635750488534206046810656231842858679161488630115590734022571624085164891238785472673958300930894644183677641367533759701574101214768974284396173179165743316309767062260325076388033129333308623247226399777091152790239183592324745346654902728406810998708423768180270737563802963212712827348439080394174152274595004080282911068567829287981244925082522232554592510386449946570589144711111209509667342921297440402917705119341141745528333840350855388345028874927000286622775418570865823500774475370691981427007773437550838787147537144439162272385120883427214966004527167913672220624885864376962492017360200300667926737580485880904214048762710979451929535317967671933393689057517093915080693058083697311662444703865563435677555756821202123297157916938819242150733131717309378898269395385545777819807117025599542539496363888077065263585750572212571001373282123459359185593418931857605890991022707229900224248699992395965931810055267306867281943998675117208120663378834858146468109321163262144785743772511359001989632979674348343536627148943325990782863696918305226456512136706044835105222528663071240258954342551573429168546285940451482502998325537414975839153861256856349162795535182255022428304769371614637392547553303623937526820861114752979692893440407080295074102356055589645417174073073071135592402831255971455157183297083973660726763507470471707349390274903227131291896094962757653874342936049157760949308693145568140942421070528638209307030091490450934055774795365997731509397206960091678977633785507531757091042869376922772871269530042421261022167130936149158541569453980274815704578646791770050860346382015739149743883006128717542430853185953011356043321056104456889748423078806027676283461808162153228540596863810982556474796569821890147554642768601462946307812370559277271664914865871036308995101762763926397695277830336210942175010592360320603475667410438351693953884164978464154519059763545920200023545068432766905311088560739605185777406039555893718317668655552157767012528292565470390089221852393742646086270224275699055911199209365293492761225637393951618448666155062329462628181654758258948353095336066408176317651014805172287037770077220012538116663254662932733014153351470057877830937161814626281940146182039361724459856626327320217651142339566590286470953405835720415906322875761372513483995944168263075910134038832274408480468644734380448593747761631098628629845186704131784587700199919510917265278088134287194253838791776989876540671809738985709574296658365224303790027487798563596787709113880120619572601926522632840948665575331320726159308884331561363911477810664106791509311502493824431692498108126407891571318930335818786384691502977312064177483700730488049941048673224861366728637099897185111642082836445473553361172311704784971062121241489569378340899737050674250993351203559712584567615643415392125388009816937657158760313487058937824719409876006053977493204874998479706459691613443276394707835071979052720637255093247747769935859666427144318354952072424794172370893037240786480783282469648970680586541344769533031392983840824016211410520234438126686861185278523943547841023254126542291727870206262956422771867441835083810014778528259786708064848683934923020158593598090971095998530525474930606052965509331003122457574066236089250814750032846677301008070664019554468967751522866635802205611833466029314764690178932550118363838642915108555141260088138443874160917365334807242470071446060888085364097935849318445721102312701077367894582951942017657756508384393088031374356906836378329388037863160399964302482936599865676712253238535101342248235911240373398201207369491725833748095312650012079789832137806119414046279899921927188220000671120674128625887466803589916065093480799779569411728979247416216218130881426296283427122760092976307730687535678781939406605394717055957186807734171082354564191900974209410888082361669234083329913200822133611439951827544737787036351954653170361871672958553330590966845227180440711767273806112936756268757724898044833093893795608632597401332173192320742724908125550761412136820871244303694543039057309261555276430072891531870363409839429737280811924064133782837834142387432335020853174377414201153675154590930314483504849135121337208471763972130358799688147105050819207294668410083665850128548041960235758917619360664824445132525176730511648659563516251230065874747350769139989431648058980591636436092180144938338882417401407258720059644709744854258948888850983338742745970749726723402214666166894681131836980831076659092899536386831091840361793458287660893959361595967546960411920901102622045560394232982762553771191926967749073128200606990997272380441007291842143716427763628374696890358092270952502271401454664721437619586911396055980252903162748275876346295038827428101134011866313906945686945875965725336658604699823156735217026736351568173992906277897231282661507443788438030571629368825663613711787581440666452809695884643000419408785440450647559615065362845100543975322367697499076368202428253225315818898883445743766176200750673473323543558992259290250385128307007399754018154130892009833853508733074092479357031474689968758637082084709761334337704194728311641620573079026533953505587540186621882710206911048714072479187418014162794682285085211256551199591190848992112371473873491094867956330168769238574949737292081806875839514689030481886838347274979285749704176509624429121196974032664150510046768319771632582004781568583951809408309823442043213767772564919892691416316939447284777326107499462279401903682316700971083943385715799222803044093983375545398498659437860905313905241438627351207025324035776325810734536165333760010457279602375434014227988285744702945408899711834521042498228968353501447022442380171393211438374711414649424526111472428813750355413994538982608261792086599197028421025147628939399552615922807722842619818866954047700244482669679198263691304814407049130007720181283278232940184180841730415383272775065250574198921568894663736321927289041844063560816068151669578398768389099135928949837914238039951201648474007148215135392888498055127854528782820967004174475667839193329368273739418579030408929609491792106816504418874445278163850100842588396855231415454840765772055976831398238422431602964995379536489433703774720303718420096506466672596286395706815644215038109853196267007199798711193562368513439805169517532053217089931249016548090648796227777250571806722990261046317580860458580082178368277257683765491433368765934089502022047606868290035676067185089571286799900175181732166567912423069078593054751693201061176846457313378570499061767909237997430007329422965312659748195076945340349690900523260978362687765254005150715312002015072623968341441215299129450318256230292417920488611933841399316343690223046266075027796639070996998568186917634537390102497265536472404082231172469356016993617254474868137603128236925258888831884106527466305027526819442729397681277010260727931689795549420367753759688820055402031034997363091258948425825791572779317878493302286117861780899861276583758120413352081417708280114397295331753537554477833735785352195830264282962877187437252172436368215008319636013794022404961167342812204540481344921012720411143762403982073888665773284168302075765790926116500022721906737425327316677462790617628183916723032768569226847517924957919606872896673672639472453699020971491010299759947310363959806098170229618351613277201693952025559220838028603785733561161170752350593996119587017684949605547346103459941948531871390547588048593333748896238833374022769791841892241495847249081681558632469045486190167052155223267112167833085069356407133761999211322575134357621425813659001195517889955333070992757287615211618449006873439343551535010260994563346243595830758598901427524351284921747996950858504135949190140607822517879361774315092799546261012113933681894196665798476061470925488021657498864771234787141414769516142594085024947009174071890761710800073779493137784752461896941396805037411072949574521501794987470750863019394834285360527023871523961719955949039878933797311774038912766277207923594618221324629472574666498168150331609816758003178437678244015763057605475306748034631563608521972902766891740190837446651589674853107362703678486267639871305705916985729357121051629993623322081714317578777516936425232001928540716731281389301866126020529324608357877949090811382856728413495497703244393974479647508369925152304914971654398633079324586791805004821258671117553915452992169217384019352392655255062941147052436047201875525555584819362604389043903374560976046238991761318523757454456793191717944539254993591631324515871990911164274715366858208221555229187719792264493520518401281074185129825764629659135140000145849338921850186525472364348178656438651147755770025835524703279133702423021239749132466754562052712806600434440963286217359766663692726857060631584871981099609723400343780271516032419571081609853641848589759452373615942863108333776087600673499769860244120813398083446202088186466598021637117218757604110666785775972799058929680998514249401409569100190458674827130303522142723593982227009099285026981514340666399253985321133899447179020152491175979059523261309920999338151008564354809044930042068799520276997023486394824233592957099890058153474796578741205486265756466825817613006203529700594787029021311805284122018249822074388315358278692251251326725528473908874768496944703531016750181342438859239516018672458642608922912757336860136353087720149289093167524672272832288533540437276701908268333429611885829287842446450806599674262668080150026478512650094774554282691524994155041602658342898171652700710599574544639618657240114411306621550178167191118656342339670832599602462529876497453771136088878144413520011394701026823133052518110321243544110073940503236108195542758609186888463203035069216477470146347949765467360696922092363588114395383122395103125002432213568135892457028895683890690539350104187201735212370739471436500570577340438360667882693692446645209046660038221951373862084392882718086614226564185086954975137380402927085450081437734662591911234038033976326295819288133921002146292066872450495590364341758713463014868506370837174335504589716602558542982256153875153179455585498883442332679225012681077339346936773077829330808205974284301764651401228534084229851133365523600001131075128651403094560324670460349253826471518433158604057328671328868521515093865130696435838826180277835432164624287062572493593432495696818418147413491176361298848306898645149585418703121495002566552637209150489586939288416264907078309129160990351667054368783697196046229438941595914303048866423626798369574954488231694283713064639590780902549984423749513193546989752056456238617105744646048272162471020583004434980437724626755134391124600185973849269151674036116834223703406206756059174454003562910798412475211341986383946894162627166359834118989930668966552194662817120632684144390890183220500152732908954353496016629965204596439264630538543507149139719490765575893333353392462298812582752415119912611960741852516345271977349893579849846933580899120351391559169852815222340070868460414007591791835049920935885537542756384010481550935791441337003712755894274793052791698323256136619666998566874149126735679779374214400824296981994924289408106282352421832575642096186219937167647242333896925346477026499391413605463806825187959324046956268960883759468741012477108021208623092273186601044630608716427098744894876570943463920663953146309591330652186946322479502340113120233829050840507584197466088872255836344000783388263906525999214522041836028090671004873355025031596218240076333674707232643805300315340941357196219753681863968189099344967075958507449083664089297678277735353059063429518641729057206475468135076657217039732662870941987090247133297665090067120352519351804836433487361915612634266144225050376327110888046132539187465736120040663216084660361466536512525211644619464390617046364464089441972016997139097231851249432196154806054510168009641331369589505228408461814563306777745501158724530790215162617994290215820175028655852321479996047545978442335227123481878672714494351443624474386656526206316632091040953299622938358854141085968085586115832169059074959241085503854605777675954611396626525327893174000057191262245274619953849405815195365120701925611101589563455313352528595811283849814973347137936517510657288282395492325461833750653712298968200326298288147391598954817232128940015363968091446773778222894255149344632812620970185115308073221228865478001114351688292780503184005600246046546577470731748234217163212031624685455594459012866366668361580747984190653577667733046697027355378327172343435948015247443224881983085388547835291656197728792943816871006248507313378058029585037154920617544799929380292416697758076079670458278466955842847684602214690468722659264841886167174115607125962372917430958633743652346158462263017211308830527236003140556694682509321094055085186862957264968812036334279497721856415872460494315205529170831635785142697060890566375386063827810173553223016574145755813366352925455682072168232417958984398644567749769047190095150238075744199243827365057179826716275022062299217753754622946097138579552992345459381751601904845453035016978986841669864897981511983010090962971897878857333442688215514934209403128568023225031595910593608107703370586860038070642792035792651136663129096604066813774133720032744382027763454854036731491907446695082544001863155707000173652868035500770533933824277262144747707471432809440171133858729440481007137276473165382355076599501876955522307377750652450378882548309027853933407664367596794466882725104975610809331136666745266859002524262255668844151349397548083841061015909074160648726384657287621901538197452814727013442004933783596048662138567668779338344475930936999736874221441442325809510911042089254250645021299069181286798134267444376459675145020047186556109674360883819258050648376048275641049843482511176025479636002285315845756493040215464089561719803260779267030720132976120376391498405204339820053735580677312410892524776076525918263723421009453255788861054931833509728862013470722801146249377180942273007787837092612391295044414731582599999867112484361304863784755941858599522638083391737612926398731323272256822912623484650902129294873551355851335104193520817822375600750046718462710234657176777457156485401671025411166158007139682002528719598422636897436480430885088293768330417086477143443914837958288883172010364630515993453395756538544409750837631628994611592864413480313252860408358938266831030926444296901514223765032206474667627458839089441738772213253660481550346641149626571786055550486958802371273912213472838560935739932395913237720363878112023568710452434359741844190412502336704437153973268837416411520589578825199517922081762586179103751904205931688227921870498743910986933932537172690439613324903582281900732959512281988519854452944300422131611002760136223640856290760618311151034319542373091819405337282054486113587524549001547809387590277911118954545652466395804818484859455967455048032383099775894995659191542444705902589166227980622027306316228858167004019275624644241894551636634606958824478147588582140770778915750804673671275563941901348949341489662841730223767125242560924979705122350817835410484781642190171282133123533204689460903939490234724844819336989213674064587790431243181786004241709790107848408242950861055170801617473880951408011395646319852852377778864270946812161924431876664748414298552436908248904803265450049712924526427286359568441724251239879766471286119105657938740554248700632653651453710934037249331627358914799022850491814370165815663637272206635645683061738745970734304496171755505965455659455548728081814374086884098450040673872590587068214621866740289539236680397138024658359000083137654373163221190663758203061533229774459748511084439188687998831529576049290524999656816034571103207627020916779560753518416276561087914652247405678189683246249743081887369799504162235312009345479741397348003550951443902080618228423274296519965921385456084767912161272490465248380329635429157777187397679576271384732507891138537240902771397801565675311932587927610181704703185136937098435817313146878827487871892986511061749256114076818339617780153402453816042223246272624200698884112126953272733652112598956461422925040145753522406372898417634273518563115285581256911341602196975325182721232677677260820315841123759568371437937994613944633397133314768184501173943016167134270363007796629552181859531383043519211988064423532262103946308980183007444778878402449951926697546630609652652793871201349713115157448356789425125137132004146037752764332637670581358219211757861031305918231688705071205864667212733554729928602281450207235487510161893913066312823851821603719857581184299723179275226467063928742233017801315079901718494469071734476098488300576239023444490271857127419423873387278584036863320553685640226295886074336872917521488720592114977791136346336988007706856847597549762700683611283370536784263539056736960764399446752375414888264321364891334176831097087676244201713974099252934644984696075604403853313181027831421636314168602213733770221416802573799305464036653096441723453072026241172654883988038376274281969801463246216726465562822527809130919992434760957556986584262408402217643082564399497983816009803195681349064619446128659680223661485624458728285890324773573992638167229333502195181940904105830591747772028413997243405501496244005941236860908366701114153043904943464890741120245706356810919352225076844628878148651897083103910075499244080760010947249733627905485664026411117441115091952534469486545071919100909529633331585585653224823754000871589257613157968936867428037446848147284271840575803390166123584492950972468072204850603747023315160665795762705866302877937491893472087816748368058194356378249380364895706568808293295674888649464737864816371340392673809298675168099851016985556322182154153461023096274871053320388796136635453894911599521850264057787514837954368700603079526221518043580720964356198535949189662783197994436088979788072397308076388253393951551280468478731270925853322500359989550757754062622679657730512428474466463346861176006947953642033483814003013878279195895340851127727821639683300637833147412887256400784944326248168436192694570044344977968593611077433171174363297095289886026473479399003309614408511896420425292954820104242203886092616134158608401463358408107800529419117781063173549517947041024155766837871944588225168234552470281780758621395825163462696651442222316543485462667618797573636703297729299778896549234289478911299634954961723226727721936843891243562163023254750248410647283524552615733746674551832253988808711773371484829741701886125406620667250962366389347774079096178092490591406026353192825982713710045490120049349375649631220769930909346455883155098486182020305007626227752934018509494918948921528599570056347702683308162941738311944821273069872419620670290740206064167714714534088589071447090947305576788133909307599265942557277335152037044408404068395605073673041009332098172596835692499048331007033685168157663944297047420970456166888230677438754335201015872288545172430427254029845067426319421063720976529275833428996691981549090401970596751078594287510749715298142687416353351338347719999778908052200188012482380700407203356547730030903360977818109886095431494118625464555552219629145228810647578909119338494219383111248637314679458156289092479500839074601177939131370298169782206935172960988696405861648757319424841972189190714986666053247571866489383837515719731779678996168086261991684561774236675918721544935779540728767853110927692641292435063417825425280207726561879823082713539802865516077606813279455832152673546388270641379994881718570691821435667977057181565918793076358180412321783924688877367638497092914003489485901608802558509166459373169789126400812305149213090130125032699642749243265661842997757039011106016264401620615564796350168997978163069120024386201544285419493612998075742755709703925490231238710329981395938244788558597610841738962481143867855030966761959969099505485018369597904153716252951367150944865437890449900539069822396838345438765991859852790517219643601289484039582418091420624133420188179232030213988546327617610400344052707428164196919226131164901759152234585127495857766298404574461794892179924465652113375703821643516717158148594345408445217638809013007867553540635347021542404042228146594956299398948841138003058778862051286368811764172009802955392334056982480385831508984087455879095790725822514511656509811563466335763800140745470951473070423133647134858810345000843568978591236605424450318086478611543309429473869986707429224563242395141820077824742987189362177495635629962302187466946586225127194177381046307812326962977025683548434743374920360996334633852232717641570728531195572081637919570070505844475187860713923348784745766377424116928908701867283576665024965337930107122364961069052891272888497302980976480169396132653510164163092669582629647871353614747110891954448189990980149570832061517985385014056691704030361369793652505703123782505078137404471140228971572358659988975682549659751093248070883819946316615878200163425468567671094240373903888495255071102461033616045594202701631145916842009491446283440174488485759764698897781662506380877946159867112984859894581055013335202754579068798620808370684943250633795052148916491756903272532491062433109439558130689973239451702241545265592467185927952378137851173416187525195688659860804772575547850357525669787870108479145849635351132998304496000383506774310950371223648108796099338457881895907425464009729253145202031586073669938736310366413487255857330122402712063106508797660083438623825921261132700201790998632205778066764948406702044601402248435810560307201311645298223236966731996331583092404003972389379046690329995499531941339547645802825831852610294993351588260376368308081904967013250213145559017945685971613927298171796039539029222823372056899040488063854378962653102189377098548563621261661382354458473947449067735750413370733000353733045497703142276191185969845262123251451711083492922846983309826266709457510157178100057185673645796652328922996424982702539657984278570849941942279647255726516932894891075787798186610753404125202777883718575987960865928363061600770147595490883536549946821796163278769701454612895218035861813721787024112160838820245315139729093514243330575108247733497449476583008813645059813812575419261061426007908255949351386106573567368937656093797625013075156900487446911987581031134429445251194867499280899445559852901266110422573406007216860882851535958957412445768809818727243438053409522270708570686076234087845253087581284358085793587807889451140672782654856750767738870128426953545847033584883757260383584956878991750205934614239114203694166132045971149047941839117392011944595017760818031436834668276194376416420722457708783395182901607250551734874655087121612341959300556862093568517800898477726529632685289314942313364661864819241124541068925544676560902611983382272246365528138136056166418215686144704728337418174092121765896250149832744156200190359013229843220810226694455264221457891075996878536857656143039720321279214814928115025205431516539968890504596238853460890240526227961961646236710000531671828900140007424964256629388216737023283523334826440532833680404610541576684467878482027581279251979915946041333372844593113352725840842553046272501606721600401088386832614601554407416845573517467409094541106633814065313995047839841096188026784006528813025134819652680810872348695786347787094329210680829954617781687490005221480079565313493173954307133842915922891199808160762397012827475850147395510798246275852709449282695051286730435005646910744726487006699510055160440885156666887495268093951140260519903175412312360098814529142966014551653230802429327533893862467884262505602048813181230628063182534425967271855366719766357977335807504124159817360072418565290042269247551629031042571027362794547855417545898543145400640756738394708000717441694980112974654454908809295591360177154073136234015644641577697856786416887144074127613126691937315938442885940752203376776684815954169563826512192160657265265696523448608888507500754863666894920291296285051520082757001189783351047289587974591447360775292456247796058621233302838851061622537587799902891188104550727427342271203927050945257163680732888318065149410007323876861269276026943021328450568846836299123315941899543947514448117562320646040515828333896624627024864011517328445153235088864844933379353178504620447867731038615280450621507837355309649937749391669546730694395458257755066707579945570266223337063234567486599387988564079880328925336378139671843275995205294431289624359732221143368624492639318198219579045920439231848122008837731341862539069267648633937179163591055848813012660076206731322295760872918825611659463127712730371898463780670995797315870594501906203412038214278826039582273106396803434690679178936306408860470940937291979344121078176365256107294224684197759213171989338787317394103550607504407870663229809960031343171672106696654334430124531594038199572909403620300331767923490635894628185245807154036328812969451317166357400329603400711548824439468278801512013041164048043875291943708990757690518083988538094812053432943196727718664213045236134188557574426208450398469900402970911767636757376169170350263771043005345536945667861080975872170360449834540567679361255968744888282590649008200104616460290171746266180791264421588314171109556872029314993582951047532858844682572843771112126285812414954173775430273396351786694537222513163072870388636193933052953128304288179377852517409725647243479201458022122124370394612621387256035665758978327789877464182039309215635551477033256771763013425845372485898146450357896352835470697505499483925419960426316979139197774554139003900466836474275677188037376247722905638654275450792271723547067337601358182139983390215836564114730087184961140133130428278227909330429667125985138314027214118073290057679434576397846514541194733943212944137082589562021417553959040009673157299155815024290428930555683036700402167135072842041090675794776307830094568234856006664877832915012732371904653198921582110330709334127037009196035819797874746493886155841035477845177271284089002692511250689373658428843931325442410446804460942653067513638595920510929103514676972169525174280737661830475489688427282622007636981672597478430420037708898462601127404926536932120329075397599205532368413397107011555509873605109649486274683905474192964147675271272820024460666221091731681404519868015093009884417963535397608531841288702176659635448184408250221037176460701424051289668366724745244380392798312378189656804128023287974903542448322113843024280942346964691072983492943897479486598080555565623626442260707130800363635886041363022669805370499293950838653375044921261352817216306030493840711785970142504741763741935365606269350678130396349736255961611961373063920679116504219378113262465592598063250566153313148470111763711094172135974853902991804118330537145557298909330526010065238153097721447824888592886591447317322565345865576232745493170395812584018414831916213452241667715102791627429318112623872439502115719595501607405554679036911240214265057972141600098220679017421348709690387457981441356281744105022249412107869675287280194196656910654819421702073058331804395621556919534148416165879189856800836043050183655273289153213015358801312581051709978181099048981846616882496598296896671039255461574221389799452413506321622180576058553838628801152904666179011937196356420093933882971173322666278239679253613991766005684745405729377216768404015043867901005382878956261435324870072261640043180185787456591682361301208615674588277102740671095215745299858630707859985134671096387331836432608695618137203503635128498959603356484256389431950451761021352530006691558325267593911085627468053351988642098913423016398116672035190674640815979488434267975940237959747951459634270780434870611803001270902458056419162031031614396808964770715148348366446574256498864170704860960338707833742195392874341423559903364906460787286474473412591882392414885218941988471222925728820317912099309169984077499363042443142317442270583344051073224664487108314250418506425513248906314090115289657686734128820015581509811779521263296669466516750170247552570052265193359021259168055283605938403732516254949827165414631550818677594337731849413306700711493249786500263539670643476437328135694939520658936214766798699358424108759746118131102061735226974264197108052111199998664254897635698041743863088504061524266779650871565008948176225913916996170032930019412502956491670643869859250688955637714178438542314675938912059585894645462690800249983608079038298835505356912409353179701830659041796463548520085269604066036354705304956414479250714416850983613987999069874747863521956026731268815427287964120241827512591534004454349620941286830299103199580354176935861799251064718798583299974528506637607598793459707850847647571596699392145942232827465837646417920697751809270175511776919456213463460819699608072725019132291234071041734235887113506918629972960263623891002179045182609475313683235097397378289392005048998412929299431871095787655760633976370217596310618936872279356521861314649844271687344138466793242327813458986101725087846412271536933230348332690963502685481023269104659802466178831192132305705024715047594689593466117631850263900406429240929221377080914895456497116593642243671859651320062915900859039037242117247871719626117826797682101796080061760865482738090095973704811606591155969361792551351158206225915149688034295463956110174098612384777642116467262189600613876682921595289280532153504303681408971837606889665203044281079988543303154449762823806477394555229056771429228382459104026610365207578782846341903047473175768387188262783653600441024637178027882214804542967487413694748781761613441425276506950610822963428389303873616244867783372997041710432833196696195872104329931984961087874048632270219697088280080115004986574139636143314979820929375029440434634757689896600114582715129492684872267727559917335940834117461705504960727350433350245400732135037707258058401207513462743326437339213350399198413809926682641664456458825399056319780463101481313572146012690177513183677686538641044709574410585496721005432301056479217743938841727665143242966076568012608904318245460131029406036481464255458792149206546560840730914419433530312547499841226510987475222909196090282447345966490705494972430585108505015798779128055944163531044436975251561905817024683615375273306902821121401169774869890409689791675769762621290464755205808588046794356713888754618932907551019393522657303879375934094557565437062923904134688974794859936853912108989651525861114930896859843074794023360861909765277218463695498379234677035121497520948434729259176655681255450997984995828134205370916200187212219897183523790445515620138953192467181255298523268788792504517549684063791248927037104154583876235003399862158892868179198553455903746876526705845517098721778793727862821531339469602385805064752228455215721348445200813756529521083064050543079513944529488605251386356416767244082365101272842739475884285147922469951379159815232219992583730645105093655146318832116104035209557920456639705323884079407421623365918132457287509164502461292374117225520919706514158104791008360462139385561664561179755755857856245355815668834791317830375149058775732371890266034424163643459354191984775733867932377919899736888688356247745727072245785452198863451212642169414537590737728064102835666618272825563026306979078189423744140631860312750693251859634155082938654656578537910520722418387946527659810303258180814383917414767781965018255355962261548008045533070494075361439124698351615294155457615907925684183664893428484679285473661665097308366797173525121456094893516965289331002883513113399450784857445153571277034819031174965399325619944341676025249743184629798049947093834657165103529982041847459493191881399694187264776114943646176583807816376380746269968805480433449707272224544311545727164323296082750482850504125608724875001446814858430650766240254506140978911591209072386348086514620610170738089447022009276972450536248663685184904667746147391922701557765840854851249716548965310759041655488840944634934460102906024056454663253177745506088748290037821024453377025897681736033775350910996869988569429401672981190515490744561321429581505105790861291933527137996234202085215864017377641562450314037972172717753648044913218239604735844598561134992958550748797470519632570798511540529808442437758068206615337596750550490004647853246983646854668095162813620488984378278131640582982011758667269058520223683965456748897213879802631780655249982344937805918925044126817659938980853525818354971879995507412733231809540027832680027722907340082631859582189646826803892275277261004290251066578502306741956303019418565827763225876573133771927511239392334114968645027289022952975283951682774994043334900917390789942244018097170389053833981569345544327039658893479538761279982216605850577146911564434675246087014824481739539474564285169688156311194876885294139871244351300056568120041745105508091955802057374080515968826147709950532505547091894933558863085105058961764856387505752134271926197924272098307626843893247748879277217264960174572987411618519922983138446799352594475367430515003309597188170282236329475662464998026721216822807170636419009934960131120197871277187664861369798022906656268358202397961733870270229945670644174718209029668519208195568162364709995633163581846057082248271121772523053705203485081651408579432429008254273735611333988634414865382723587675704128781332245260550026702376287775612467132250220647196650547765839198090382272234175377779025804321836713724777747360565271700372157628970887748618362827391288502691161268214135309038569899841631153768325486942805444199675776190295125575162321564025371128690563314018009528899655416478136144208768530836537013013518804218547066527822488691010520023206702892908039900093255549288941627685647984475119612016979189013546650896075794136358771126345440314463093454060249722571874810777867194954418889620036991687609700426010372041741395442209962196306124818287251666024332700210017344096408987785747728257780673744894305161381935184589162840170148849894582327178825761081811386122501095249807220107488777448855172618431447127608679838293755137719486833137543358155833278995099356206064181949742462876548194992663553024862932893256370624728508435255751884077994878911552716979044749689043964309690026646177383734626438657384329173247005095905414611244388501946601861330514566234242180861377495428971993585141320268148332794858914813685936410315345225116845674864305435561942836916675787562608616129012079708143989505963924703041192516495943850548771358177627985678053892321063493110673775138914645570795759008867576361252762447097447826578503027943403059052995776923868979235692588223290540567465767853592511851744946450331340861215251884529965162154126817842904119289082444698362439380168277156800907729870697818013536573272655460488453294332176953676697401047855424440622649252465047613010208250092239986087734609452719163872250618258659529928220604538055255412223118289110491558134908035185899204455672033529274665646358684504241757831985726477944743057687086867138478515756700720542889145042377299331561272093500930355520593679993033466438137526510032961544289444725739248432655414642810483967744608020026909192603858641018687006120741151545707245769092919103966181104402254033625550028648259663438839765819449677347850041959164629402946907476440989425839408106273328378864824762173379102800175551890403596747454594877763883604127152804795626289223881486347664000777903530909967190698062062905330654371986819679996224078269345553048238362918899312158164098747116122378405187970022696123808057887498055655899472445502481284630891237804320494122338886532114346857183098259181466427020223206360492661727343229556794419208382671747207758648425316170528757591057612950804407529373707630409809202523439474385683675259098384160704122848606007083704063913467521392676257299043192293988214157430636041491876946532472696632272012106376098169492396944911264420804527255142511103553305283323785646546730258379884159680744081559571488883503256070098539915977241993581734952175328201598002139693468948323523026130441799533650380948010544483030601957366441146080855846683935866911114750202347424854219154539854516574686048659726833733714305728061522018697664404193514787032037918843081131434189489251062297015331291819012509861674717185932119203760206430332781216917837905189522075977758844403185680051515579129600237783658450370550107099287375302888120400470669619470559554969396111027059985729754238944310889532176158540098499527950526492585831439275687100368358925082163878418559696877088111413265512613183608892455327993998850400328403287234503085314740362500861482689717168254276396517123002864766937817348052430778260458565285245326788841054453857097708151867217589668848722966042817669960783553653282573242923387668486672538036988647982508970144803658762738579886913889865635729205121935540194195595214860997849630405221803798918270742460361253425079350042011593094025461800322316742224903239375311840958227861838216398207120079429555399976471429137433890807049482540066098279863122294593641614641505584910397181645905627874911021903650558736805894778248883980100959549148330244205072103713455790808353555708406963956915089439597824035532557405379175442322438651971290739107020532772519145552961320038396945308521468013725041627207072107498865421742147797156795479102534584692077474500755007832946386386266461567631067396841686221371169367685628842715279387272993525204100207314338475301151939145098243963452014820228452178384598760081069669513566061528824537655365159648435199887620762079312109201362688093739735222374781760191870889233046598606294248714973567193458765685304169512087319463118276382566598049178197364492792422169858747594443531175832376644174847136364669228231922533741657505728605845963721241370098595280701733842996214748646542881253614399921345946534275234663116033363679585369278610799927955857943270573184650379329392328521028120689711227225900227629369646393924826794457061442483270834312100512537370471419926679437355989735361283013248890564799058023078565823192418953643019300383404706532301501398505817487324031658727323608561801090753866027181717986123884557355666892128234150956017713311476383304638210129573976320077404664437564766622908743430159944303761335856003616928898959496277403838118575179335840563908598842150194378116148416243670698340588896867449440409900891537613137688869532872617265300793322129680244125265323323190913148184392320411092696866937034165554959134323535793697841600296705782472032060232616940003685007687439519396212536887543545131044520389980415721828978476808254881436073344145159048797581460877690471910740874144098766090733109987890042396839866312252074457901900862065746247601869851270189808706475307298330086355513990005781989763033885382516052272654298911841300009177171014915804656364776490791297617608383120738555383130403414719657966073329592424230617877500247039633393243687770230900214053956850849933332161899884238221029403848556230426024971293024894846152133110943802907197199697478709019283704855601121248130172018773556530459544313212434567366440219360872000453429639042378840926047173116385375113587973646296107806478083957685501183761263726252116006436509177883783348764350754494847428227885190141144823430622431569391073527477451969126789362961240234394325872760881401177194599869117706377656507849026715149244359433975714419638548231364202657706263315057739398282949527542627022154239542567920909270477711901606551568233687006533610554519632036601045393605885389754624748147618237377139630946777567700403006429626405398207361400626623835992132945673882623175730150403222981480302227427670513279334312722872465008735307673593831081496848520521447400265543640688367567835621569683192519371069613045810725198833249037675037852584864330406901716267559851698610279424159282699407871760246039693875329206525575691935531801571765622266457217908532765676419472053271629388194077466093648557624569463533666518755516121661013683984948213020509034929001479807384369979939089379392888178168666354237777632419124381280666199605753974882062774733045389217080320346039226329529980342207049983292102230952705567934591230735948294234653406033518172061844166455215847050659620917867969765968723527292946269711605110032807486464231001440135225383796195856054572991379002617740532276840284353859961394646401436440983823359524337205082844436580781345057525238710138360658227133061886139684302678377565122287282478881093342288248432968603896924969420962257321633370134287111133360382662406629339389828849340106193639259727827209166469542361931126439680757653088639991490456069881385484518664566737558025779158988921146454635709108594841940790091922881895691685405143562343194348702662692765064966654185249443464905567423487118404817944121041804111460406451295637029563141179842268353946458099195435261649501889081068985711565309386276209711426566367027478055473790654592630263469709990438266255016265159081814150287062166207419200800903972563443869072532740491448300929494219904932881624308557223316877580840124423749083993556424731641027632826103640960688732127971735223841455499296793883151468352778610658486155807713454459268025791125238986395223884598540635162180689076886200133771601233366945967343175984918822840168589940236517511106794112507579232423377100968105960928704916566241243045401442008239003342331770570215523472835035022308342442962962012489644727920882315142700907172499042535496759252657624544557092921673552876566620981093861244193086077829958875288940310882711498418610469741011707894038303378552312737992846895415504688374717201613611004900738114429550603817121552463980478169760696488961175272251154250764460657983852449944713584055635080653365532098251542880673655625451273418387132578701259874195359495681726795315223188100896165004713039582498718115179057157106044128426842494340297848656299032182489537498512423659050069992282261503389566619930175793332479046165898149331215183912035602621009591948245043745184279659720817715685839440126231589185812385763081268060939274871348487033585959810960908433983402166456786541080765776048783685748359457991398398603694867847520971521691828404140229131937703170542491099967060387831325691527079717195437513364290777787905982688367805259597841851512143502473454893969404083131736544378627210495766273399853232586199934379441622345510934367686142125234063195088255742914536046158800623539425954888332806810410660494984677404356348564436041186466550528840567055620944513243082753140168547075606253015203134102399574617180599140796540170485069860531700609443530619185549788656617443457768141049067283680530660006643345103069521116758310512736572433508309310375814926931416461385960441309655392109891729201605527181643686211139765521713446529745018146380374860054253741286063884925596856570024667893241645578129722494268317579501015256943313864171306700145742608654093099346444902184056002032339315841434845596525723535252931886186336937012408142871439126577734078700733225904916601597697886862576520312638396491880385944821839078787863366069477314921808137112651425729063030058519136520923729464060658488352812740990454695415064682894256475175580846077030315924193932450128000727519824316221903413070661152038200910921333210077172008525040120982080777880654542514449091873285580821949663297469481550038884142234039358681187446455137895802681749875644582012507391124032264140140662377702645750032358949055179585318823474317626195152327408041420776896653536884716567533137859917305746558701022006651087292727717304157525871109583706106095142908770234207652765753605104623929114557829933520505658472105472265229385465338787992073962498543411965812967983617495373396215501405618566364579876970137134377833798899243304226107663455220632958580565857791972181960448322453583157275637804942067151613500222750631147891326194346654793380235353638203885674875772076369579449915152246532828254388396910219038804254230627208886406597570419205117260037795078043517398861017160362208134562000768228004703700479002877303037490285744921357987148272940648304573444879317721980030279140529307118610883870823515311335510770245725326314194037463458941239614106965408454927611758056277018712849007933271246119373544822483174824007453230484439926963440256635966524666445782708016168199863001064378967129210546617533721690476904768234678361050767622052892303586723311543098878994122502500008869313605723005677108716234681722645063587228589401912461017853142675750364187313064447173045203496038363322437231540998244643182435475607620826443836251025448242869680550070366746945898635838669681997631227346855743599624187299270631958951474181539648287008275687922816465679952588391004510976222397578147581342942488517653655769168172112801970068480594731568250598206056664330284433357135838652097164748018914344344865758869994275816460055047563540920502833757991881819099740428634380629875872556421067059367905681544198337027803397944672017315511679471348110093066003202860713655387031465804385365028703469780586462941649004937262286635673139376880396371196715427476104826328619554478502052088081879830071413870672170603764499231751635003679942574872346696293977019576473740277752216967039789247648335490439306517964330994523876682717205993701297368528259290822359290146299137808841451782920372881212053253786505298817251172283361423532267319963625984661919729363467738870860437434035159983212418626415949922684566433783215429173068710149275201708320385783984324270609961201561429607801765817019749790316278225441674176382988240390744188236274470838908566378219718104711887859765225049713327058856833517759597421073813964497765631683158788347324192962991378242585029700813371798034317203724558961063766545231247327150277971226251370771841039936980370391978777571767329109356041209933576516889973545719710686919610510936056960813007294549594082894531953182914294200775869743839556173206151640032154982722978241249693026589138498333366480067657042818714998403762971335840094454688786566896477701122674543662625861609192427969858947045864340367354779168892915795499335894290544586215838290003038083102947490376842462438615075855721361702955820675022169472397982094166112912142961662461315489352578402738991687151365674314999897010455761277471121108557245053122250205516793644415332194172956846063606563892198961674063358151030919182995125558429930409956105736166564213199482711937287961232123841271621178805676744353869942498246664618078982704847434116669846999717383031291751810801281411978163874582797326573835987505365233106400704373827693300650947847247007379784831653374278669386419191655236694228209288528888091699124425922592758298573629031733447615496823557260055456469841535060018123554479380083394816427356174500915520304028825717952067069581880177754954172442577858788084798333210313710155219137151145506903136243375779997100664778840203421576975254798627961711437774755896727315398967127423493752728104740922883850633071218652102382960084382480827654467821177939673016535488725221520997576541394291322145556036653921997886870521076366553457728227330469728850794610430905706280940750704600437490377365232557629933172539979919616434460768680646902098929168070458813751863298683814691754579817796483768414358465021142634907297827934487454481989489038466207221323681969164942149578616113420555006007364882793730349916031460384896486927050356535113190652004953557859565438196032835738217524641005821577477602867781298909327584205468693191151832102072645844896899746172211565408764279930819056978040805157169784435108060447981111556090700131125441638429674479603210263772976372307567217227023478089564728151472614149992889419328818724300193493712769572308563677974166028670420773811276681629254992079505410910122657225770535090289330040920591148789206121140865810658948123266881854059220929629908058286021129497275511244216842858994074705562336566630023668687774894605245532445833700019113548467612143079248177922368768547631535830217543502095724189935303159738710342946996265344783841841022031361343148773300365825731299587869514004272321946717844025891744014525500658247604563864718641571085418716498622915753655226219186400291561215595429818818378634164319453270259335216220803690462375682670426116904419610305684496386802916214117603172729638863893117733611425961730455452056031845786982506696599925577086993166688742876833748044423906940768363222718358436186648024191612919187892737365631902915360790294411967263753153511386813698265732066115583727909325373996811487547010791890065132038803417755463688488327226738730884100190051347960435454694493207269183778581901143058030752229779426135890509139893488200480591332289660842281473808860697625144094485633927737560858346108507490341065750705532761045550603815683772341368928521087528624268261934455635051500051591473619607728008243572174049071896443834176969659602831538242535674739618591453400710346798318307591022771679659118022033290564040101605235914625427722536245456100960143243008832011954680155786409656836155133978539765663811308480806919239860835720334438119123563100962911457634067813070070768436759694658093283538612755817816047802668379543685732799108697365200620167139371637371635536690438190128688503864569227255364457816654576359957531894539789527158427494752184367579759249943659831148282550820585643366992425122750452812280250382703701074569479168248633698869729309090850501917801150566062669338920166951058381073800508622008885359583198753672868767354966029478359905596290553875073251642178237063077683127824509787882174458742220816156573409273301361396484214283980308791546846633440709903536689471156320698761397623737791116219089579022170427589303202281534744445453482733143322216404615356448391453661706359780794614053934345085214905137758497089663891956672348991015676748872901945873156240064954731300647931868912436110208724565652293682500603905456669651487488561943589804387802900320415334808450866037531880562062538131426329398534294919030293858768814407564894523967082238297853707262063043092667182489743644392385205827190831878496439553891966496855548973116137977032241325737361478247231483176873597653706793809142608183595683103242972517567141177788235749933647786601084591315244054149772549367383778593969811688999080340005550115291345335100778179127895700954903831700346665732274570044389374309127231065501363119824172038660976757277804981965308986009921736082920365033062002990699999557266644473293493118261058306260081763918298561621948323216749876916495032347841498175372879336411919833488445023137992942802028230865632093683678071685010501478490154651016941434332126532148834965381364116447927539880939863987283105122106403338882308408053646373443853830307963259941376376407376392927955894404826121392785092050325155806950082906642234957120272227913407496725692015001330609192966784051812869023747695611772292241194239602352736544654147845675789250156273647182738260747897490330686448662004268744611255843827925996782838466479148609412649740703515667777567331703877037426350190045481793912155810501438022707877521254301959243067463024428996085053589884234468237105390727198338750727584449764385564755277516251431009644217170055435793731773611627072408841660941423407753426780241737581431889448428233475291696906929094676310444304527977939690888075772697593109063956789778990585390156113409109335010330318393195596328425450509073294532214456717114934030560558616005391515004460168537414780923434122305025021558546496659564177688619581438410463058482031777980080241248492959611769834114728824562039490624936923048653529971197043579068511909690964192360941297293568630680988960624705590278494185238797816956160476091693205896985192529735417838685629261181953227334327623939995232585143643130162075290857674122226004120550342017800616409466388252864585798618929194845563775194482890827023250471493151591616537964654750092508240951543434997408122050418199488133440778701925297890995195121367158035996469820788477899293148647148907342389536025675749103923976059829612183886416736034597213096788143593464397533879022389832786339079321791084787778160908742204676669075342016175274884829025896686292562543794026897491191256746180244126827683149436941913407835480858091822075518805730079773561362477368069832341023370767350119907871475378386436269392889842487464930964912576103716349078436947997669043675957683647807434389207888538874273092012277424600588571910939304729662618268883995749218309760992961159292224552195129130838799666620716889056801992379276581262455650275452904547417195438330202004637125328748674479858630138394318857438997916566286195385106784854765788534783066981073591407736002298324113130582367399542427895066937544114736388201442105013204084996880942948617201921131045390934652639195737130521343510410289859700342927292344388607755572282408958604086565533759500265704700503704178351145764884425328156034494362642371592836618335180041299754378443357662641360188846378330106244466745911753797758544250622693820237595515853281139712052785209298650427744605543442550374635645412349446673588477733712283903268605732226511981781507649050193586675591174770040858673501011657693388805290853032429401660889678468386944362251718374089008590075862985970052543745545762510674844060726010389894261683604675520792079890469436673848106546094984712249639322125628998308999346225401199201124555869912788921948119538555916546345905726124817417420348331663769197486205802037796165714121974831638358347482390963624230404854772672394469368092273992069985781264158351893797703985117227422552759316879042955521740415882891999460807024683774556603225777695713405065813165172301905217639045418369487188209736984184776236419919691454347993207681678207031310138982099986345221580221427227567123456329776304060518764585034883049007730745146834666662720291976941902637901459612089505144676280995666868149218644605458268214745689796290164079623170225634601320034496620674491905277633113244424915757969047247985241992568351347161107837955609805541444234424980924578957444833601408245746926951457004934143177847829975242223926906764168029890302018549415954485374192450723280065918660259797028774683452313442034955285603518016858320652129247904712865123495182796749486470061522290667568168401692967945131695407504761762025124644574034827212885836025513050435028524551734328973319599014480233675247777569168180143999812264086056265681453366709001503138829986252417703788241543458474711420557015970241273267152286814286175669345208053964920280181941794570921903552595759925355719532677304130831029306976764643189174133375886694209257027317980302712266229556874960714361903815806854083039734319519580520534143306988706236846146595534979672273479363058913390557678522934487842712266174190926489260763143756693546997859473541157362749566104361776830374482491656582754411811544899683532299242973057482828100004141270019759757843019563484005794196059892725487136967763107689486697194374970543980281929277205431412669845099258987123946754422007299259731270207537640771306990446321085053895509590775423089225174032760885872517712854150675811312427767950773133838053384545834077196820888482688290866430065764274760808205770010273778222527204185837803931583531311580946950361109524450784576895272185906393945153858738572652243814111150220135693491689666172071894194479042020031367327582382450426407139075862594022204107568116042362341737550698426179188700767308030034924863173478403617491775551859632401883368392812143019598834642114974350085411887435813592614271641685493705869933668152943197564786217134756418208376791492170417494582523268928537999281285868007948836334497976439996502742080678368546719829455594056185865930376301324765477264313426133555858195359196402097475933887358281386494927588518981585532977281563057362122112337776488101367978446877102971329158074531223398603447548444713932008538631500033848717694380111556351662082610031924420856952556798028241079959514265819757900805741005343437614181636546455055516915905547165076431490626756951923117295962651220678618816221265743973047046676967467092788971379932563332717961771623509734605686092777874308036891704200080139564466184127545579737344188748563617631925405121901112574685256486048121619400700646833206441804868727423494640847293097075471340904065732683542698117772076810501079639473007903211705388166658214073067627502520902276269195810250403215505592644326776797060622182737750254546066705697855311524664186982096697871222570776027874383173718369011242415439869965224446547417939596050315707614348595251872908542967777143195691326834909184701326326537454403467494105469432197542697624053553958115853656532900457657014410466032663287150357407796233202260775431201350157600806305571146936180813620973034005278558661522719619229570564637903408052455277828789328747553649055517935352051636699830215852915127879287033294373343611240086773350416571752353967699726349522756253271915973639959414995780344488759340238208936029857609346804427920541104996100583700743534375919962837983215186185213784254029480161418627524172701373603176600470158080733198484073397986638499405432562507684343234501041382383815204668959224080646796812046240116079670248860823662045409278878546637197396516487273452609813012184829592744208266000955814742722091755286897637788073575391110720799034013293370310309803303374677079336027976485771012308772330867108806850085096771455205738100186286385396208653412140854333812577311738895479643813428604352964578635550617715552177674509971565685518114744870241680699611192117612166918604617932223101018084152575362222828838684822794109778567993916897443759182737487111986467083532553061382216937327105579495991513852146319806162559386498788457603729767746564619561058824661293421046776480026743699708542154445135879056048228749708033418779750627800895551602896653098386817932008994518389879847885800983087285474356380364424811649284372846783086052124685487749995385045825822429693086885285007181502103574090277004241711269990121279140442250714053562912866673383628709888094713024507256430258653487759971528778759082256911526880817883943158333990668571023742872416715356108926414817049082527589394507494865951410319969123936406777783941840961729912949873364847582542881823949640309059680808628578367383094876036591091760620673686653487992919175985597668433002665090375602793669025055170393515248105095238938152011697395009333948398339094742764016142097426201963635858288834971989615169309098886304429937559185501366644921265487964718328535955217763461395107599275912023140424751865638690483704293346490571415381802695589037344761108243442891687250052715172185652795718174268277352443860410697230941890702712256710097486935196815231151262122715670489862071944161608699973994189558691782836294557571437623588362016330234165282164692573463102379725443723666100589660961954845073156972605098974858666550777184823302251127208680953871603905609208558549714324021810724459551740263860614661534525183183428599899807013604444698349523526633291546326801600796100925324407901592106705111704560427488769464096598341463823199552567663947429224571788251815234938026858754308856563822463860986745777471747000876735297815430583177695735987837218005828847499045666269196100244787338487193076259274021215483133369343994963075395835520298149453215253205570572613281533344055026602664104286595685602316968198183409321489538473138089615604815452464466836272500546960401629991030621691735018689817594664098408259901102656455201558308361651826262573033526310417580068589653475776158612800346748699085795241623891589698205216271224041064207268103875976582815699644081732561106269923124151574225938347166373229285382183265711064547927299376168799322943589546729053335355575413583501273737690989380456046175554501324469761270469945093931488689970530183553472720970362659496947347971356395280770995471800482716434199139991237146538072267425203756509870305638753261412381054392625238031848547316758243133013477302500079236073800825860795864720513192220774290233881875527648361335101168011482862243671527407755734712221064292115996910485971703032238833952828190596607270426749224947595793407706372372690660420104357525515707889750596743757699400839774903869227366820888251157163778324327439298150319567492245033604127918361439275522125955203190097998849294583796146815537916727096215714739758885659365593787354098475287534037407322520341672180633013790414454387888687102985191583805456865308064052713103152432926923669203447963379504327486782311396611945372353922707106658534627789450065365861143395685532610769812529580776156591819636968290515789679961976578205269792218103525084922259207538879959501668730639052136339502061975059424656829744568292113351589787178683299930587982945931457574273391028370429844608872351607739745426572763511046535688342106226426611106555876318635186763087046275123114642226544002536597702780048570562312267985666237651262413206931327729600819997564616653499737715928708037476577174071192075665017948593384255544212812390383508713477484377774043661298370362090821667603518165838874701187393402089065398305618229515226213034026669475873547831234481404321633480159633314232089964091668574239728845301497009358866635242899724125529344033039056305621727527195391889110359301734215830369999128321419059549705114377226322615711600853946715188214141228443135700294224197094390130805789899348413367693453785298064955063061596419997681150250691203898300098486655239093128268573971959981149989713760256856789157109416650129735281047249322427529155823755270343778100921700236468901632784208573747298254936244437962301605618959078841547423944772914504153223341741629969222432769760429958107939592172815214337139500678978857048022343235520353684669317561667408626549224143062558407647465043628667196964929112032448356311004871877232609278869040171287741417043061097688610637167749907455105543665774629007927019589728444457644042676416932328473781047456728502294164106349445232838871986551083684111641212080096848115823914717471722820665226549084831950889674849667198033311353904548409947836757952608210291612299342541216120868423808081157809830535686144646587379757056329968098047544874847171489343153578941942271577608693709107725918065559761305317108747594331490446133286804021926851650537184849129240877783486090663919679494937972459923754395174027474269926858759276040923064465581740967728474674978027212085211103341339070924061853799550210217157136571449920408637790671994714917876919456819972317431923000384119657836539381334864716476019378638832202800547605374121740190499506759282620022768760573775138057464683533521908458747014732291765981335103949614880167349242600667146644676864747170437338032888846303723094427599919462362327180096203770919108625904946368395993135790668901607322961670093804701842521054404364563580759239239043012749114332697044899376174206111678941616624013146714271082073216786705188909207632881972518581103106813077813612206322479687600051346394265450797689754277250273072468198661763584826360521292130362524257114195425967897358602725471074081391021971067379409568204078506541047987914959231569925227724600352328390701792839164909365131570422680254269730253644923136971893555214148512662190735655243117856255877064566259702455876306205502643584121829399555547129726132477998133943642275666593228411207462678075032285212867200473347183732069456829487383979099892323964530283359770308524933097284623268006927714010325779190055421491427527231275778574416476983231569217743752580092879752514902771244034702677060622761911288690597934943900203531604358927224119902944263921525520305430728914509257674646923910818017852613098364986088679609852360463700022373791466862239090978344025256868087753724952004927037749416460981517168421218707639899224931845736435704077488408243815900873962370124904443541581771048908377941188472982148946683023784800158371420345319813444696393870787907122316227142066904615367790146663313453622775933258259216061079646304310534693932667290911542151141828012228546178041618881079565676232401953463369022474200929527383048877850018263862442413616058314364038556347363091561612709357016873496566907769948793859418960335999971120769790862803611941316425772148713818712975737079765592794050052165776249892237081948579531507342800070365023081607801612244316874505336607426056492160708049098326275333394073581662962416073813265352795561555637519341828635299900070184030504957184677514319739017229149741070605821082823023416461600853333680109264830624067617327269388727835783261451906742369303753199954553020501246420524107007225735220919373643645934248954853891001945916834830153698904737483784421081003858574299686295909510020053991295555104857750623436290444368189183399854900981877059080753253979246976750126751986224198570708036098546935273648115487874240866784786195798645315820928508114940171896567512392917058797497844315352171396821234271291641709679852793815885006291691899722170062245330298594289197053011733159816861285151356735195560333439977141038851619122844256283638948730807867777714539045082422222878646627198040880671159325081760525229048815205060613406315206812882002968789624333679143289127385846432445646226144713835315295223544146732506332526645749224404834687269436760404478798651225047206450546914133023973099622313071132032307216759664869449318785498334881728875239783053637528663888507423966433356830411693132578907493350509959244898695664005928880960865426294181581209659485278987374124800790680661307189593181885760681782156243489586189840075541052785867653703991219996029590581409924386802742001280856680567458681199122546580256589136227836159802799068684544302601453103200787096486343443793722822825603991957106257116772357751405985575334073378771193399890979094687369500870476244258492708651781927688491206378785833693324509840315570579115463324144921305532927364510833451411569967028555404388476233502929777230387920158868314356910087474260679898037110370585760165859808782807437350273133876967185020747909833725307004786299857440595325228698219200906025258525423689270396331205306752131530287363139288781158832237342303419397537967793277613855010901686609122393788593417247844062011828890076185316392524033660498671761202385320567189652241504436870669824915797405675964570524238415129862945383077764905049717399412342597688935785934001785664486729064078732709180474161912547487430103175412796722878584137999140009299750857692244584887658863509054392089255285505774131387015330270188457839882634549063390679916130317720136919226227352034272409607555287427338095448541004429390614757960183083970612155164530900987345904272541010923788578616801509471658545828649633248317563811321497299807797450738611352354622801597403994680803456171930807143857034475826189235418878651505445625868996316595113932905866437564590851058322399290309138293364530213530376673757785130463962747475023361421041373580756240522123967429377684359064163946858803837478583410318297893126400823534739910423220879426489459382240291875340468168292715948948596496773762020453957436488056686522136580941247232197655533974681069345222105037556662672641305181203823895974696475048315455041439007923492550486580976669519225751118806309920473645470306952013394027946990982604402673292041868104581453080185956421469734647806498584103489529447016818545804048389782397654160373845019161539679352863843446805209450341441820119631482339225120187848715369811311887477524243170567803629916113676327707239679452269858737737958168031811943473930219887678430178506685105046788092034322249565452870174018373931315777657380883222902252183246460746593751015899897587921823360863130199954589867205052003792520831412086509388778628691484616480139039524643124377191394168444647582760854830302519238170105235372960010697024519516712002836138042370044784869786291737368342139181060233062823426892334549536477229058948069194260640405112943249144605332060410280594992032071052110300096187581892388663242960478191001008183915413806471586144615607180337722803624679029737157863432966086421935584382604130276016263041071683378891877845528749264522522644030097340809310557457996276751073670222068362193212802708643621831080150415749865630019851288399224196076467481733704741685972272688586363217840233331318057854808038391938667061027891513913461267102934640308540556855950482868131075136195343574089125402650749264064561437117989022613795556256691851574402950546054972253611108787353604230604037031963190817588950391321403029565711163958600946544311983472782530079943403251101044711482468955670222321186301186395079671694720353888527519364053775256192689683370788956416499784835170868567660487619754690348026204395623503692077126905707180019821975822200812250929999403012832254258252535007441597346642988234089172337591684048453032701073103968772234531044067584819718008557460209477151949033014315461045183460011837591296346044156192362016677281621908367193160625430479626490881916179708634279056797141930674357336434212544386052729290802619131173754894945544702936623547612271481482236906279994341325927635576135889815558886828528831587592973479066198175252044095998147098777136949450891282705361503344859529426683556546011042026213064919350596637304042626118880437630525181492068069090703762485950204098627579261352601970196220165898158029074799690942047748195520171473817832269887746009797594883298519277651757531639290097321812386130622442604761347826709222781965796764737680108936467361594966379918462784880367501260452610339952775703373156077182746825341333210626762527746883129265142460096012320030337554748699447357237906018152720443654786844854078542335625876065183017189872391941230515542296028425087983422342429234299039079650598688240911577477588924743361454617563131329465993371814245420810178909017637619240313732740123527644735122351909885698130154903940500997596828686433411748015845322230415406563849494176079926713716943004606617125945564520777840286372056939878571420543335235952546951408492554900466126362873092601811721907811489954712669112227652498280705112133185485118696902880387653192348182324976292057817901513755472743596452364093340883659720662816913216417790185323607341210805305266995901185916837666301554957718181664941185900186013554790902558817888353416189762978376769845916421881480735495002112417085789084913937555604783970787761555153858231737843300992530301862177011542334473203440308390417360605396427571937732982846912785144807682559641516594127469314743462409298365533291682956772765866370212503307724668322463354208885624973435899652617112160640755126699549941564144948266493537562834827405852112797081209561805820675853006942555964858920884215707787862558914201315520519750584150160137805715142656666223035746025728383879611512579513868315446936035061527302768974905320664112251046017301912046864623047223257097592617318070563735283394531212968004081022759474358308593981562917534019754211595648367848651410171694573304043409508695989264963624615924167896447266676885928481330843987784731187239529206315301129962199594963644067532102585512601429058217577538508102810939372120080221615586146544517917351551346697189575061105307007730000766250493249573705805837858964279569194425971222790182764188668621938879896895913428162297035114144581298246456931916973312885990153697731958965645753110996696618207204977845733524905901743479551617935663566936698225224739907210334134601576281944924851558499831027393713824375929305702365693000001545731509904297047324453255124914368029158016074124893022343816341285961539711643015374420340522490508129255799481710611793495737463793144850991781825831287331971280528998496004042086631921717960702717394330803292402651326708833395811479683853606652961170548906037973475327491595152859310813618996013234258147478841091544999048961095221086038693917781961747203766120307466237264379093773043270412230889821255422780148799196674301849992312703303785058831056825857388837083033892917819151958674403726900361225365628487800010914308800153901539904681383220147079055832580220066774819141995301745484530579973759926976329369158265713232768347034388641228043087244301480146433616840812761996165489926746606190896586995109243037053211948725043634928940441834763112502104116326267853965296197497049836434716467332353667265361999214092747154616129558140606381347531066763017934384465975270127154740745111662903093806734552835996031787037169205504733160786681760914291286690933165965359983363269904692261520839374931245990697722598410949436836631261799282848736495419125816786849262603010136765792924943048551016499454827388416020910803160202442999022877805565992890330172960258047716905526293541180390525600094780744589788015265798209547587079182101099133719112831492311551259193163760672511306636277160065449140559684572369136570236653464323497447884738250379925719358708050799726893253596926450828997403413148448361883826197342108051052997745169290511551164091250161251803653264125523466065285933456082233692132586758819386348446768124596540360271346974849859637797179329288254859704612264745903934809069348990983331824246565657360974949633215225308144117496737032378427403740796058694801557363802898338329125250707975533107206290465329108872363357317832309333882215973316184109376011772168171697840302847576528658512204057931688854181735062346574416632665203719254535788165233547384395711147171946070924581660613774001888960872146868633599531506755515725710240549644705216505952718960595203169947093885365955962487907929764637981451445589491461383408087727691726270065691592755328787164434589781493251715893347677769868072076080951886643363621429209689581679187362520245957614090385632705330097999101120241362855779173826922759558240145347369313301291642434981963439560218201387525639149901718858539308830339008212250272571922834336900837882347511950153189878810641468611213923480390748550707609724795283581299476259590098681915087197551216904507908975151588263982972670614327782010121939260818884329767285982364418637713058855849599106296099281296609979164557243138064026961461203284696263383911432133814946242279941484292016186992775890836616528074132682223102889532255661539057624157070728814059604983984996624467088139407127308588147476034338441754999278990612325618096584502433380795992413253643964293821604974272218346528101589409443061979395658840011863984807934862307076307755595200581946139952217493480721695926644385670617915067294442367828416545691767406385173115455905289121663613043303958565288708043010015266004707604113728948648217801539944875420613936872860134650556655315563306236015984689146587563556222584066944292129370259398903437941000169520284986880119633730712574688795068768863297247179765816607279690452465935506216050106942912757707708270411857026218816353266840288389955952532103179836558586072122423654665879741238782244291148813136078260124487381268402560828902944070714760944676675080132914968979769678107717304737680262480302707669347251357334654889663594261493727216490053640180794001459500569636267112405456611105507954563034271616387639778427427460827910519582972716742436555627144654302203560382943319268072285234912658163718868165808060459683257936674410185367433417190383092043979319164833769615265937374573028314259015785479388201421670744759366985856540625118017184683218114866929000686139542339050479268258382034028581526458738559276604386314259134483858659158149769505630467906520799530774995777669202112602648106987482209312231100235648334394919959142170542727680547139210091020287100012278203807637523438866280113890236259423792565791344820416922464877830319730264041891399785932503765293953831310391965782887039939670972581497550738781383276014022372494781353143057792052191264421728537794770153188054036388058459083920628766133939292130719045940041774648770850360396602412664095853937295030661900151047442473848985670862254764142728609296828970385740952550328669418519331855330200664357926778126345515995127027651725217255027681013852466268236381028082595542057820025467397474508729059384682266413291375536789656476195393508642311628296652805492769635015436593368915126365816680101393122755311806666403261645347362754445716102480851374761377997901765320073730034138573160400012256303464942159773270354078664089922628026847109377015417126992715152821153539569998522493077220190321767100442650803115341886926740318638055518536621693955093998229542515126809001837675577272654357361566753733908749836694829082766071581312149255003263136658984177311575074182018072418005247387948599921063555973204194033033475578008026730204869156789622680668823564438505132919542389001531320489737451893921787204390166049037887827039077305842042068341861213734936549707519275204019750687158179899875921059199790669129353834624308804372041052408120894465714237371619232139689200208711756327494478249126253804277144812432258422498927220666225852355531002451587002664288047022844311355996808616063808666071424553938592328594018506831061259058875881536231440233429266695154293025686530944116303130394907342674391806976292622946054267754756213692029543650358189914099201604268225153525563853525224640552165242495892049508799366304965986509157841861235589268659248431090792301872450319049706196379941005106267293696491149892861043409403831991796246394727790090907052524088560743039886639055973083716515753063206191960616813560066745832808691911843174860289577335483747325092548177235898532045851808829894661217361194275921065654284817292756994471765093726967155322035375855206017597718295486967019288756784539166457120478739613826021497608024495471807329791129263956846205423635326353034248239517053945336915328753375923033245612434286879361976965844840430042978465562100025592083757153317493886404982295806377123261945122616041507977234276587155670557831596510550227992764920201958034096093057947974380603391661801278807378060011536455156017769116960177225788709010496029832666853348381924757095526610595320782444645185250679825828468883049511687212058794890135913958041608017667162082270692983349922892679646362838604171664781669003264199171302878922588752366075327727261964405625957757512656339376165586475466562467245218830671327634148729008879182652624730509744831225806515589033000983194509521600492570600915725067737056160982784497505273639268036164555211803513086397975719455346766935409774564054947013031445058677701093168318445577025131692883258843474264194245613193551318505491264167791458966071647679392157860934631678476244391890915127151533668701969527652633409790123575388326656502132700343139667470515402957981584417023993662942548510883888649677933175526058002027837125417113641507429497538803620311416517101501079678334151673769033137545681560775553101940183446606752611618929120844149948597569372661683396293440275875630855218033552304534090706095306661295434884788815834738672686064126917198885688267416429206929345275204899090097227967708430455104605154865938095059115901210305773014271859621810144696159037493391105766846101954886349597413921679659376532901814099442463001960163854682524864824842894552161819748373473949243393489474042067511826838674711446319406418805756434819759931496119311852541799750732662902653897044099069552914327751514107891397767802215874292186360724829468852316550125671120140816314199455370109237864806885476981249187241749095088919271289000853403968925651617754763281564406321153195830897173129401618353861058013838431649404986778855594387932564435087290714065896279748472870414655098543393377007316843947823417192066288647302429745429615625747766747835071909752387597096273414444563751454450810758827909780178916732336930472874811028146468663557548769882943479460814097485946772340167485060325922197478350222169805441419890471346064500228719851519117935316414499506474661788194772398191933062357009370721885269137485458078859188935040256858620017956959715079631188369705422177519690453395575011452389708749671522682811232148167807852284941955481981274947487908996475406172231438518361587055931645544895169856892390701348742199643939566481083289376586718591125085233474643164855802484375026732518046586982450732176210279618054275830205927111213915268862641061818335881911824855424061001984974740838534872999749967212532862190160627530928846600363663865750848507147828842613481132534834510832827885626828057814994093553270734712205252510984016666690482884740908036168926521736213806223318169943014027836695451806394001760697851847801278987621368209594910565323900935419537772010102039086308340866906920452319418714971051717575953526472765044547052942724109998264870024274777530783829047567404542142419381190421461691694055380257081097645632349340082212997185881767540118173607920316448344921349716301726328335597998565637923461401619088802851177228145262905266532649738662967121021428444064858479368647166497904299349728312227213155671485951115165537594863945925967285308889260762020523231167219806233049424278492217306759852111909217609119454946515140762789766678340378464674801670058421003814469721730185593844883981241218939376377467598325355189636963109991352115702791237712971563706956556867533712466598380313363872432835428812007686317464738536042664900652519248897387114308997593262004176937242327689299008590079063887178522105556585391679743198331652674782053406365866565301144426191632992287791422663596897520417606604778645386299604275296208300905502559577241764971758764674736325494263269228090113841679025476961705954694656716395674625073360071053322649520701132383801644391822874984321723979338114537563704594871428688560074563035960331264963052699804669799128905333853373183053833215778586478765478448914249320692904494189055835154967108669596406493809174601064267617629022065220800925182802373998573440878424663275530260190151619710642931847753992658296930484724479103187278564765767661181903983232690909435947072282827412222078243624991183576614729780245995375317153711452887492745138553784389955828353372519082564694207966400111590112099166992642553014136331403867237654118030848833894032830759275013496618449109782550505828389883063966226372204152296967776115879338652246813137971314018451347460893029995339928824869294424883454234396877769799999688588854807425388093855636711557424701073734173857502972270504061823055735758090088069611484808759462024584235389773967252041577336776024778835585296096956154482295038126972862552569594256935160369856764313108745394872423423071586867323082753531797220215590043821010902218920698339190063128515239886669408387655499356659333549027744718717922234423845377300821134285906035317252049796014345669292238616462934433000721680239385123963527600493498318927935194053646702381416588901814139718190921914226484115918670920553020195914973995826556609357419605689854228566824033370596092121714453674761331183024351121550935846992826752632531807568123973952444232369870300960241281875948562459162857047733148503713457208076245571946824262565570988425380381350837453561920036145240664568779663165169286795869972040705074484102591050469965727855585552521954568796718623171770946681338026804288409063623809647219056422203248214991502170662295357935056500481451740375831977867800278696221841218172726597356824718998942036919936743482197504679898169283716406771798651723702256231078818680218468430015535512839922394498158785959215123456466124306001338422293146983107748113797012687344686122166730773682979333106265818102006505370733468380111374771798783271247246146382550664604260824241406502875345986866854339753371784469690915569315875575431456513628296706447064268456494913781002708079529288793117534333501069000735595695720465127640380606702515690880557889726428768716675364495226485219230417501519810708045096613534923460945196182532159024107902754065694160756717617516321315474121416655000438347353419298383908864477324810713054189309487744247255492895612475868547916679659174166012678853130637823828933665358128056372786850666110752468368425448035421592494962875604337969862746909481372482854144710881844321370981207208930924104337316200283309854162812637480484839099994866181611856424288331193887640612571792357695949182787799736125018220008111218520206471116190071748056786061545366397226026208133965496731630858922062072132826815022889362088667359236642668969730325300077249545246209221707591965341135219812669604637379130582514242530727173024539061651584062809559119279060153609900825497728210882540268537680518659376562467725644357624115563485372661535946730439984441449467550207249546925971625439004242959856955279613527245678935379733005894463667490129343181006149911190153931019269477908548172886175289668265737641343973192798813009780285509832319760140229820059881914917053876342818973792530405098613398941194053368192937002137253549207931314243953917689631989214170094359104704558973592927051329866658861589230400287392506482681769382850397528316216408853498216932425096103299585255494114844036359057935778451378876187270048887402463145570627731679416442244520051051041589714420676702219153026222879446448627299678903860372703073152880360042729593214973656756193464374695393222198554477867101783519778694931330932409755048268288754506330822865628491969155571636438667845681316021738359806517973275101503444154871719645593957438550545762575792187424349176795064691033752057561333671094007237689509646378127584616661842948565832372845745009427126709356104581854145364653181129735481150649136140184978627541391092500161102287754246925449606466819816524468516070460729610293812979525376074456091447524761241790205487018914201929210815112842712045054057763683613887630785766162072424241302070583777043099661214384152439342292949552115327982738271250332461863114730766959205447981543155220269789514572805357827626716605044273830784864272167221029420600522284304292433441751029131102652979792053505251018543883717360387387589193563114531688895187270465408810573666497164656035679352073640392609556665793735219702258067537884033601664327233896936939648385581195898410951983243087224636556835907104433018502134472601767756921900527608528509517592475473525105396865855172627602671595537598033952024057860183926358548495808142981827247685527964915110145537974224873920978879942161671544910010864041654552829200478063222306613338713211950373860663020897944248323706513241298794451849124544836660643696453243403666878596747307272768375094509957306836573458728917048105853773290881807551731949611572029806391868887708533769212947509151184794800207555472153350933484295728950334012356767027726105775012161776717776041952004854303129171949286494182540853665773041537143069660268320835237972652253471626993264998988373383980648701983014191688272525214488200628142905012131639641146785165593126188233003297058257046211900237452125240438706024735004782027914534968346096753267944226648372890054590186250540668328277375586250765067752095709354122084283815102616921467303513509868796596788330013833198469081625435063453375440569936320740391528578769914115325433227550563857034406993452776723736744245577214326882340857105455679573785871040135019438261484137176009416422387584714792758452230002583683069049979004233358398295436144599112148167885277564350792578877075301329078047782689151521727509436424243931911197199059765822751565719249707623480109697839339500117173275764287564544809371133499553742335954112449192387376218240840841345255084904640275348524401239536733024003106659604779719978213393511458536868921541768705431916993290186732727490764326237292489523147917761585501309512193128732424169279518956372990822773427272370914302557269221736434912714994871910266108231796720401344432253713086900598684564580664591900584275465593365555591999381187623189907848939272114162254233874184550014733715710743782048084452627888163097062860689627077814182521925871738165372030090944294792476527969348987931392197720664336064001278039670359194644648455614625021918685882972579430731654226603028941596543146952210080272977224116881002226392241335314780997838294292245930776895272451248123324485801049802097300575998662652678458723270223089836188449022128352256883973630001583394768056114139249908179990311665560646684159132623350221010412193508335356952999058476635547295348087100750590570821571758969855104955102821575626596954513944491717599431759750836341288932214685295942680554297356553846891163507907112527872178952119440096824325481456579424672599842601225998241089857889411650726199085337446849206200417795053355483844613742467171436615689652928576550379458171793179901800207721470312918676230976857477527892192638890993363130023342154084237053824666938715411509653095073946605254630117337330588160958045541768871166462531210323866585898773874573456799805216268724472528810002473042662710856992230585956818814811848890495917826733531997666391786865723205374309048017348829014131394440720406608956657950754752940223194308977671285092728404272158750907612010633430097602676633362572178178205617855783110795554976388762875384395697046636502989568644181092697375681041370472522997015922385078676291939903838324836508583848273501594442251743627672162422281930991979626401876739404253247335264400532234896456271526021155890075972730474445665947013645363052232635335945979887497949461362090684289808655795542953573841418867924203308352826568400624420025552715578598534620394701716909851990116642643335478623321850183116145434387793915684736950634596155928423200820228958935511687450386538672796992107256483073494792574798812064911532266503840726524103596249590074671387965854878808964904666602695592847453481161440327395008322125982570237971264608580027741236287006482471105016423053023175092496854448715996040197155573251604016269527102430087325398026689601769652482733824766215570669784481846012226185484346836783731709232687286187167417959145142461482827082517084675357544162221887967646653945260539142366787919819802615807087581590173708446103391272539649286073295060391446528388982706833892590341063277197060827225965475965224386864570040818203209505752819929215317844939541896800544414943254847046376371213590245726378733110209157161166932313411991885598748693661867939699924463177492500311738306248294660251706448338910277880799687964525111015511633430583150047736418585606863793034573126160867564558421371715276747024843786588826587291471170514428648893062257765972512127159460443048943241097565258307901149607659985172992646757255534517560891233335568569121440292595699033793319399798215303136127950860701065905729046939386037708336996964865874956235568992141985754783139847030712328389862509730734022621230957918763596205020262214236925849974288667386175696906245643218547159686517022412960796004511237198272004572679196307471710069171701646376571730380356801926557119466118735140558959361938407373668537837877324292811468566917488286324565339239173830681782114741936715804539185627428759717188140862452447867591801968545899683347488788410143537023341733253531963469111101094442866001477162572659903581720619434601899544817638724947104338224425298637295150044602537333212671254791411541304288083877683704241355755575102483476396859823156481769676522464615559812651311606660165605157808636710910853287751887316594267437653117636527497842014757636346762559819338917488256282492133635935730751027932590884886545433974108530863292405695747201660597441841351908517095077292353860655580134767320931165046137143561510009021838937467694631816425278293227774757212772606251515264363984386832199599551985701887380866689706385783659727961299192366210709501564112537291689578499427883159298585881182654330083764401504355883877162321639288573431834573717619208827839901928559004916626145700771427049628962408517099724069677734350907260368485983639368058416507971545889706586726374417197916171006007597134370893469245361817291004179014059889576374500029794045777147129176652264531548909743170911868397704743948454483062957672971009746284676520300234944425322931400341610031003080161169495425720258826513396240930028980580427200601640562833023314172862708756125750741360853042849143249751125692248583202531802277619460054638469979160521535253209029164524944673323740172790622290857938723366521339075518384675122371933519177185684417907078007026525152156288188854293252308772611384560258726987000184308404742698954545847383013724916451841521847776224494610115290752644165249437687596361916362428567678125866522545236107645045376788140931168014426918102351578111995218416604979203478676381854400622771801314355537701893868015030479330567895550876905041154663354031700428502914442389765666521990380689799708546554348875524176380664763560657398853193455668937680850549315705266315127288449196037455074538233482756565516039683701680877932109611620616334484963042598261467536509661796782322552471314460517213172655016376262729473693262256901193375403056097514236361825086480838194398270278454903413410968231426121402474911113704121131563819153955918225443224653230026582376585930605833957384770395204097947670048566968950583397534605256588025951618769592272071277847351838791270330562818044342020867019078983506907333803721004008743462990796388294004691706292647088694879728469776923673659546971647602597072902264929938143003113994095742120609013000712465695498762866786993394686278091538486284153815448317406727532359355081482292286659876127751356728163641894243391821323822222983127329725609118070642170604711762448279223685489444577277441144157820515894824627879734442745204532972973484566408318793605702739591753240283625140017611864505289722339991176846673913066830798295144901570677322478988092410974828142627801494989063948141597629310383986378367451940273796352145568547172973201951959051504846149031725058354822606377222838853213591657772660811471022845195157867581432495161727355802481959339713643793507309860358054141235877205644869006155570854262466739158005878532585785444883519246502544706822301474469735997122429627928430936306108654416380256970162595554851557613702041392521902393534743475296493109900069110005766657224961577140849753361613517808076266426296638613991142149952117209440089971547991882781660529329009299585810278518267940597187777971707930340332903938829366089734672048540402436430284734987383470584896104439678137039962352360060904264627716634970872427158981989126799970941061892693679639925573616842721089672841140022815201002094556619194580011857624441268193675340777914651650382720566173559203290118344309689625522128396882157539035758120692626594179509874625851652150761682076427719933626610117455264045236820792829075491093937974285519456616607047580844407176375426346808086624011200097417242747990958831921795454878205532665692109077656330221028954209863849811159860540919999688425609004765088726584827377429250787312587456745605795994080062311767298056857121573813795303617582440514514957320224927162445567954266718883807978132513361611686835192420348476019318378999174038455279355965373920362446006754403914898175325745237843428223417710858517064408392972756874415896271347396510531835492626626456243228380925607633874213961563925017070498552994159175947026054442499698138038278973305163147417608901522560931983948218822534640118818143331021442944343348760597767866231913424066928160636016913966571603260134288590522115607446468804380754824702482665731238569747522760291441755746026064192380027143107444569669502678314523812430210469135663765445494218321282171231708541846776169308273000344310189741093311587936651395881473504183224403060386532212141803291432592296761611944944953765398874431911261195279024165607677448653817338952859485862131151749660944519097237282917647149118739262762014255715870260519867192074154471841021814454230803000652914479097290598432004729671964380378915762897777487460631796604919799826108362563189394878820109878070341896788764024141918035085379374653916820773652392329511615316267585445221023407504262187084258671019708588355814346374069216116266757970274568713882159482454195529963264763632897171694511572940696655713311105205857567370346135419245728412383395934096515203996840579391722767085873420930072157437652199051199261231470036994460313584530739865534223861882984857394275081682054068332383580292253956425371499946592078168335396900353524470515056018975660276769154792662085383464037071197776047127535400927937664114666566093678945565098013924967230109663592333650431500404410993128144977737683549451193318074953767835525327182350681130948525909512791775053445765711474422619690616382759722137668784311695236815706485071856131439122130525765498070713576743295545908722464529777444147414597655976174841163002151550198918806677422647819447219849988491280126601545240291085364655532281395147277629166994099845721987033465935455858512579992348757307492747980509368368046241758642260867600170204341565341863663363459965479316193581040743439994986248161407718513454689967237563114943195763081904783871641366541495999152357009433105982148086193137251324511573493845177128058231514055720138717672615704236682221428649481708120547710591090610718751301662537646285687519594683298095712434845861681097583827595677793798264842779369084987269157024274503101722054595028178838809809861335677154764086189149579253684893933627901568770537639899640315748222175242177854991558850378604627779106016360725262301197377674466127481660958961208928286954572487150540890327238036405042105345901404205848219451712278387314587210484749459081427903674331557796179209831153457756850379093307373158189854875750763839669800112231003426070136691821797274749506287796037848812413075764309529001598824112509287796460815004912497554756381314222771558733290358140327244690403856744830112682909355482178726346452462677242871122891762584676745799363995446759023066616057187115926557356577050691788837587235314043022309581319622139877669764085582617349625773642548518854322907743821126610809178308205864480093633818733679290082067636593951159868245882703193821617547609989907564307592267049709438191865118447994355069671289066190079096095889005402401775981531469107198598331136139780153688909416967935123980161204336067704403089695993972895707552483500810463468325256180084498669339300643245713537732916858544980236682260199976088747818271466954535292182605986280518040650956110050815990486369726814085818820190544104377919538183326184372063485464038243539418145036890262224304454657265088165046751830329143131759272019950227821752980142436951265741237331819175440114318322554974892967409422329050380795807251641084960780512732625466382033113366703360249169635648018601328829571910872550426175624271837272811489690746800481996536583682724185390528438291115767939364557746155282072537823063615274241462049867250844050798038759779001640226754351865528772613252933548813717203228323385110188262621390683619659398740470593090287139650784291134636055589568281020622643167093790883670589802396148110067276283745909008410340963247726655075730006851482868120217248034075024073060506083802577894276201667038253831991674714230296372675494936488574607698411081057425614185221524876908254599288544972001311923490312951821248799840400373338877019171059249104637777301620282963585101447065201042223497539871508780106879453976019137380513746623276756665011599152280884470865630399595627272568523884597497847589912876567719152157116940058243890410655884772629392968104694173163333689615409728582931651565956960520853869365513911946888769520738736377263967287178482795219479078480549408850262256337160171899680941287952889565887125599720608018226320671889394886163423104733213167913324715041266848782913867586818730997058472617818457305108865714315727200588341844627378756916234316640215850894253447437463301881813065765351973330684276094285484372068050887126298259695320476290448563430573835933970673593759713215011875212798693465219795700581133644415110134057623052922728527765206171465759055770702225454546284698813687409439978887528265226273588228923468521739465055842461494509286398497847683982842070032287508179492752141756638044590578940528607616100100687949944681814566859370120521873316239166587872963301630636229997326897882918421810108673953246699304948123167857060518079298511710071231862878023036654438783680606024615559029101842619592368562100005765664053860686499667375533420824478265988979252989111306662562353372410726846481021743710970239852167399475488560773784395582293457847205185741866443611433894434392420682052579196421483337770932052463189738215537496364291420428529207540187175005204828262630112624147293840242568767999032213944331174445299816196861023343329269873585188691801090264241260536036183531541231447597631413867546867822916811025470592680980258986658631062123914044424133082621301172628744747049043742994079876420698278511822334798767320849930902128621376539161050359451447639088405575485904583634261889838948497818584771030058507851646233611589912202007075250597978480719850193538260061427643764676160100143766503458132266846526754104543973085468503391165441325003028161218861462228107422362515543379454737396042632124061031824202216070378701342665260728555876383677074997640741193530896645968290377101528843277821470773123769639665262846589505999747528626921798065845539090427695077542710751266726660224191574563902872447009879982331606480794807558837724779589798301897832640255128527165676489979122926408588823155505313668673158281789507994834166910823976090072070171791035817914548615200413060940555180627153885058853014765138934791038093080246669111117354243691475032269999627144741430411000337295328338671722929172058347464484505539245435331460559002660661749745099624929058219546032201997624457741243372291319416982771829767901107670392063936662791824580040359612305762048839833433403756671391068489271851300434121456504495956567856941967184547502368617878443359605670688437727447402543044096710610933680372240079327974171785708765095867125452152312785065248066323232944657132864712889083005265014943029610549876770077774284839379098308812999507006656275339395370844623328633637689582420587106086463354175482064079432566112094320180095775957715585766908514728774344436376504657480812501009202501583005606445246180518187741176815101185005784065724284620739514228873797926377969242732309478860287177733320023278428596455051689473743912882965621864185718137457009272706483975568368315395055210590255330945640619975004636394390052844681029713866627508743255871919118808352408492920649812942382685123048163392630463636869466875652859094028601603625796110997297789930492442182740233096696240131941161166583526485500029094192712821727465089255740233476595042589418671862014230439264767368798294092767110016779372349236958429843294231558266293882610293458998653677575841862189885766203271718356484158894594298110202241602500077427834532262824353441590197479135189642212370756573091815795220480314939597198081187027426241780674217392443685590419353688418937645236512297314481674737614262210018697082016062143607524463812298519346707270796975866334013964629499521884809491901845391304972665373094167225781784225509875315480040357212880322677955273886450116409860118014870171628582646157785121602659368745406869683291109527389524077711845677365700149214957228303564195178350781920533824813610025242317686274100547505520884819286264345487510038924175361014945304553791891948331793268386341155814941688755694516434913242601700866581266137762693703129043978064697778518656604684252906124542742410076187631527254608940235695881631950254292865256408333339601286974987255160826557535770564433447957566843223361383320384081554522181395249407500419421899350071141270341796515411543758268030033728162827838070366748797497190631515003273323898559889320848725453087238784515353784512017701049576473985758633779230090656298081730335370471702279893823710189400408810124426753740509057040906118777949985589743190581817133915609049911439816250303955437316685098978422384367303364294226276498694721567594460853522012560218594334096126335579105715081909441530626310204609358470892260231261514877650188383634335514036243142336402475163612676156609883647689850901231955225215552890090914187278983915014709822465633650100440183371795160889043449414164401585869579133512243324188182202695389027681591365300363639135144521615279562703622632395769676135657852107081020557371864277902343065317261490539589034655288640302390224128829080562908479283858996973036993542413371838731790195899377658565666629875106061816225663567902795175365188234047233367338011578944231905672636005558890515990082326143798604366288766160343499444290180728335940954732201217541581304429936315676835914414330704143884987245589531845876924853243423811946397202108153574758502294693501371109350363140430905785393529034641188848266786040515255437147641604057939342027767605931995624356965390147742740758888211110187868365372166102118860252002127396367040123978109293728704699194943777157139717956111178937152456774347934262764840985681149690199741623615569880364271322504270589171211614205788280226886616190131489410398408871841271712074276097468686089561732012627301075905421818429512848711504175016809555612535772662840306831909178160058167539233809643454381440479555649855088981299541200804867324641310206476303670626016937896586789340594908133003318088076638605345070587291365932726906746678925223149508827042992466303871014054622050434849908572153381224620988522564834865976856458094165188834578001082405651454496972066693916483946975878616405525949647634675790454422987169126895192500051607104140265523429466194516464553016976290695964750946725567813950899501484089314394180215035726997941059098906993700411961950034644069927698656071370266005363674127593208464715332512954935933406779515118243124587345903955163426787349747439168402703938199028567785109327873656118591304099539879298626477405236203429264246912384888362049411752926521378552685848856189684724451010678967503575706617602227728419054546411753430931810844699107410078730228808860452303374246187668799634059504063325117521642369177732595981901143060822749889260179857239712292381676593753330505134873352464003449110840797957894962256720912819183384041154914552179008644642345464289420787057708961831834563855586079086181255683331472511189319786995352415045346304026162739185994281881215094724560195589877717550857689242188671869433125614347790220096319479308419752509400088565495528892677797206700800824148838003390888066689566855701373626210571559570630794103537453338591108224686783853758904230104909433506933673982161914229398620107810512506335171019154638323465129851954479831635624869664372932272310151520135209860409083078015929784656648539849282507618096699060418804779051429065518735746457551319714294857729042861141458924187465472313376476828697294181803795231270417862825149494772011923105110453084894867423100097950578678028496806769835938485989127998749300249204692230101413510367575396734943145363521915445680721083061967598537788127830635475249779472273145318179899428561941350905305968786737129088465073076463767476574769853088886128935724531394770957278754370699547169083097506625103757599128017446529367647323437555388643368218987856324940536603971037793259852096137107311659081093524665341553536801630541219569317689077450462820591442877166148205559028574767342123088674818633609914031021741276560432544045612950698157346578470684142666228782654607085759697362308236305421881564326823712756774676612585838762384149705008527311527379367922282433032625422545237379356535301808633706792839603537244385682655675329692701895382741443911510197791405985230124412935129074488211514904778048927037565056854475616350464101591953905543065477225780251475529470633290179892180647375656361839349884437984601739043113804332244357611490985103921323356366517699836043977451948349224389417111341978885334157565114985117528993028792605247419549559370581373956283377371669665425426631459319418103982873735498469890237706681262709247993158252884513548646902218796630461468147685696511587303741444294378173303298244439032459712615214881790213759310737311795213819506597363424264120981111623167859441240427716090870342856126716721226630239602018322129951569626984861891237897277693571795598348831659144488719094533314500354944469383052270615657969239929820365363619100514086593575045125582874845905589584974872285807916234020073974951021332080460267241674609585787560473419756484607622663112236815124147380024755154722143631913014506368991449101821487100168039616726458942498004793958587761955594842035998541231906172372139998602551495788492510607479517073866691023237068690717118204427202791867390988663973964047267545121973794674813138252162138378793559908227976353443667559269382271964552551240975751555108866233789159292678279761546665059896381853762139860527320482464771519450157425875905036020137682378127309361284800968247210376419151955619691949881263990755127884331798677651176817232675437140342025245769835001523867664076603143286489679699007598364865202440864545731190024395114433793441095058773686590216533344153977366070987016276997475357190700116947891673010248670976559870183415859557425937295921654866683485244497602414379790397464283680090520796198731755686820658040137876331211547350584127332246913505153366268839582018435813689782424772940837376431781561977140651967885244393698471139946524650293547863001071089833444527491797289645063481376637467173928147901692876531080003896799656996137075473396448145834212634625701302595229611023456646794167626986169067352197393447108624481181266521174150316691528892962918001799401446004361028383461578694676549023863876941307707692027101237901066335665677973222792312547116814280417147369143260527732409096881760006405734183606122362642396512083991805304183995396425710675633643299898141267473735777519534386085963811721875795395172364701956453844565042042396024778035800733363847593269311706594083523108025469968522624371299490621844254143936154106036189475057411581918234544432750542481435669699733834717400197709607618349578687518999506195733496778374342744564430819402133287819424331183691365503616341976772746579309377784203992872543616793154372840522462373181051277209946510707234099575314083052236814856909330310036012797456942254499732615032870289487591361295396712416871521615809227740781380750315558178319825204838472659122684723756729002543158408052226640381825141937510207881478421711115681285263696018236427449442863700304439284383463556317428119214606807772353445265014616628716233715121822195354776469699284749373753465689503983165578576424483502066088297710742027492718880225841966973294206785583757325108427152055467714079549446038174808628312024214796494510529216379884709591466682986507681388279095302328233289195675071391608945763237578884256894400004173509175911072882514731906978766963581312457875003017129064496551200284512593460263186640856733461192875161438830446225553147392304980239564606672722245640779769618613407042557180862781895030471401713167917696891050376956662787639293843030968669735941044353480421772690123572938623478994029961810364121168219393916631111487760217637755815433576102154534944032680949592976588688689069817542134401310848178285925469067170545534325728061488046857713570106455752118110132018732570012104443174013751610481708842328535383172464066773550908690618004585148916101244202825101636377726282561632538725071894636178260415305459718998284382455142846450892142914031352344778175232883310851857232440804419343005108069510421509328366952670183063977163290323230445606578626078328241762507032741859974691629710259985990530123432849371633737802236982267308814055987925796483678348302956457684302113339495629414243068905858261614861443865377884471042331448127677538816084379553584859312824435261087095101952508361054622916158554233102072027948907362116761458100389028092447961239307732686537973004102991017928776596966412244687016411440465932166218370615371540040073649316809948506756722922713854944473655728183909259539924092726928242098604413058313224932924324318602847417281565670934022481498054600032201215336840910614392869398182582919250938178710715123823436267509707054314577538138590984355593125161600509371161877442594769041905092120296044032676745388505116781585227774224624156560423352059551428984595485479213143719420892983259695886101494931751759747934599097540689159333544498398547030304978382628951459456155094987642741501677035350906326021209558712829146261697136557811519525610976988971001549693685054099949795271457544103670219789318233274379237055173698357015902426899957857246433796794996082277264495815930706377378398927825802230382637370292349855330753649744823756394747324960606150789294982736009117580301936938562091704603506296104887664625400265837987783673335328517574943798512838003234104358188952420089648906129623335677118399237927428202634065322122488195020746584687981863359584793673559246210399438784176662002963503783909841317052468470844151097113568048739790681487825770829117145690295723584869832614092938182711506951711092898088407087306963936963190643555518610290378453458019336190290433472715140134820272215106790503770229211009152446499866176719059164915592218892621156658833319112210047775855097825732011707678622426355099771905318678195783511221146331867487321287518699324874860063632881325742408704297699567426189596500269154833854229969034133442417005203505432284749031270035131344750066332166253175630175488553824699164811875512031189484817879538925172277811566819164401888867667466734759439561315762377277288806833982745286742214133252588403360997473804762681291705165466228593210738850402150411813647883853787377897517365429912324210035453016834250358805764296769134608233067278943394750768344445278238677725702957153555477083652423812731201851923086287344282141413377907292110849980994290228691292368721633102951844470001340015187712476212578976718539289861794251253705523971025854884912404686765611590700301989414592538112595229796187930478757048878419505067962198241002015185562211881095202092210272927142779508710043919587725852232725173913808016745199709546163073706285038573948999383603593125496007441630340775669059479347244015144696608360079919371026781436253529222646336172646778034000489742051291893984660965663061970291298628641842258485016992830206578367772329778033254291229085350052618601713174631049785597057911819760655323590029702957372347932754760054333390641309164145081406887200388921396594541924680615237304643607743975828358812528051770276151479233867292791300822248754601099364546301829122436982213847015365898604918787589459007624547507030491102176837953404865732019724115931880631747753717407859385386096940169614302241150026900797136519104613361328458844654000463669999687038068680709164181200934719449876831707168638541595929309968704545102929322734679739998438554151625970116867845245662393930061795018141274991389124678114877187696387867205664448360821842411441117389352423684667417496224151336435389872611536017271441202134621124064287053957745729727683894593105737285371887337412174904581487877099045776381857361321857903290135908970933490934082321444362173100178390335610234000456231966279323978296888001248601716491925826930664956137672856213129808971227151542465923698443888359177466769582122692547407374695126272855658499059731993443931972868175263223108132235380479406808472077177558034661049207648331448786526303574894953798382610283351079256050289559291682808835057158241228571243393558602219220291465415409544812982486720644564170119057604947691245567340370815533835530036728377773876566835431031292098207243152381445874184179029949660088390707494207805082564972316992115019809676248140404981162744427964993405136770684781110562082212250918358623881468150877939541081988992293840981407258556213957120983501403509629215266004239675491994305514886083471666049936040040583224958477003188059364777398538855446775030256119558301317654215319911299036790575156610751134892748935694787212596033937558419297203801110018874131791782833296919906333651728961256069603006277025597994358633384604418189667274165267657722567669269154534895605116797864063078703749114183909426801360706567498316775584507630830024147597199419955018513817368223959265046324131187639831952706645964498601518318976396696922386062069466181109547447409970543751801264468065699479761308752976136170658718870830044508678256803255621793348506404113065638856441476382356866210545119524210001841662967267140692852706776954535150293813406874254508771723706334331605683512669670925029621053391458472132166760852758870277210492738553928669254636169118409400028299565483235184761624471147704994614541612785997581490122640192064582274899350197860517041526212962792933824977367168400631442104812540890466275077602589725148900676736362387651624400677859631269897979396781913515096683585119732214609465035554223185027397569696213739007290243101903959377525276600245972639391768530778304884844628467195214018943597503153479599685760442260955308548264430237755967364348115830795186005421501564831351674634882951271405813393843512986166485705465926695812060581230706504495181517461217658377934710896719199547218504067821654709956795126774869424666539123384038224231532104466192705250896379263700840896799637543139755216185796005626297536660451624521366735654605695282920651820006090048682819714834680485387049090648774959020362954150995922379159844049280836314225521520504863784743208882121697296839357140485209295228965654544306077695499624251218136708842095900705527528335332002927076944743307485962607774526300695350625825938695182447768646677867977335940015617349855004359870450129032129382250038838916175042052989082703867283552012114986772848241943718945336037384088033476175917269820074814786443282910685081555654585876597204476953735535227368574203227835621995639654794030060034002423835537730094448440505843594965411978657833856513122179190230794281139846208510448890280510904836109163252804287317193280457258305625081554831763660149967925545467874353368292424115005990382643714167608746205812862294288853700782194553621040846988426075935524265551735142765261336999407924598706755081173339133028512381880542878154097024671498775346442878566071601667100190357338583281599201348876024977259648420731144223429418807373539472576783177418046266398934606443668296660353388849640620001208283978258086653062563794940035705819043594505983635773795759473054641239933562978709459216156535735392401185204918062263440375520133005881006713625281811795455416184977405578707894711910411960793039176289303131065739835281284205388981093584949954090859971928415154624495172432999036229530143128127808666454777279023849631659266366424105266196854089060510632103451365369875578410520825820101420720305265218496565132813479823904016301459227717290891732893400954372302426518014424657893562051521311090927277221641878784201983209717069405412698819483245132057259341542319890404324356553867528142555425908153149227189941470080761428085709147414874806083726693147674290524729487084526185244120462014248958462661778785343842538389453466225899694057029805997249654178939123102325052273222232706168753558998824376739227776660673517019548355701509155740067024098859909445547714132952218976377431041513232759906174625070549669175220792455367081857055349040776870966380690852879529185692268049781314021779822682195785451391011792728613348991282448331589818112368371186490524488121856791008694873817658304952064726064009344804203675370806401789952995745468833507746392339635699695130189295373535748131247791802668470286761199410146502386534374309818515483683719348810657400491096475204832596160713576991839613517354388608854179111097021012901252890439808149216458721573765384801023154020441156662668543447290562722561495152644612588475947496715746078501120019169989943080241278357065194064653168492721050436253573856642650014172467164456941541586980260689453454979206291961307307026841326595375094239456768258834486091001681996569520284862901268378556073577439731898845634107019515103036024475537902379434303710101779194367374796502473090881867317160440987573175887244070679128158356224800359402076892341497612644676386737787083034337539452635005010272676139931945794613615646939750681872180125672014680058662045562777233958260912129685766524187526044358980135570284102955864676009949621257844586957055911162446040046915736190886424146257544525189547579511285474735310638922665751005597625003733037663158250417881434985982197772311579522539786105534860428008047595851081063883516137298940760861967935388166791024784994174329117398466897396361018706902904022816796223914510768697706242502237869124891539388744312932446320258808280645450202559972808161288077298901883614557479205645329683858602176390285034005965869671668248938189516737129836527500268182816598649249666428227776767619105574226056078027995581833262441829536723272880617320484648360593088120075869468676303490344963921853524998024894556316335334024371085824375990983815255441818246952963959085282136684655655774703895482423103314748952439441232332599549946109459913983515956704513544274567393576989285977374083284332345063698105028026334828983042886822951132072502213014400758387128130544634116435274393985535315163320080657046974669610388837041719708137808437250267805907757121274326803903917372749881187493732431491297760118514898956122005842627364920246992969680501156060904039522175170481090049925890776805028658681514276627048145344965072547844447352744396545458270666830458907138391004361170315245144403363935523839475126824494828930179269552069466604467984099478266568618473286283172020684712020331519469915679784919005122152929642614598123203155662517801775348343280269745027302086870940555614429669769440627010572870130024695274741092419950486309275380422906803615667869466408298198259729863146283262829592661445491194626342323555486332364771949511376228996845916819697284321046635780339066865200077232978127517178011630514321477177331478416099610217297408413627628839926831110343280259199068119450666898400975948690532919860740979382898206878038821637086796641698691452095056533125405829734537081062383463047336657901946404313055477249447089099865710923052828267465433021676677281264686609844214054700289025551564476341990134602807938440701871520791248025412293686931642365911491697660472205455381763008867846390521978994150150561198089416939976681118815850559843681613072608193833825033010124476263768459081086010122856207654391122285775958431890589630932735174372244879963604825885858791873941259370546651661267997247280634595294285380182267824300580101406798778589817969308287483519915881454742620186308072024386122121034528961722780936627273954015743627310553459817599028549276817932798208130002168666551732618162582190036747020582797702705143430752415718994188008669711134666712053842778578157953589786659697623642469374638342622255096082233547263742172659876990012777976388767793722554486256256096887508979769901250897178226288021316751958142840105280306528072684117670478039066317682733173308967442643798777256315080247519041097956369793489775527178639385689755691973769923347504587457203785731456379764040272217134233640118330642448157637205370369290812485511704253538670823823112919221500477716192888307573581998039180968682620820470307917966181651590130340127561346209008149988004635817823487412692889535179241464737195749101800164056712352498696215502284547766397707573547583336500625525055425290958464238079905352797467252834744936809301129200168342363903184682488937045192754854092632712861896639101076855362136193768960471463187325251432991485916921057276001412793819535271145058299687584486149373093635262984408199015645172218203357697543971341296878164427571149109050455876439399675934655189923996684708712180018447798584713683077054016237316217052367460209311232314694287992259969942053858133498584075815265578321350960538337857087709724242271742194671878588108740916325492552474307380458701452677914538706788364956195821357852240912180239133823233640109756089473725571978381703743075941846660517117278096871681579964298174836866753122412862277784448641686026922320932434799000955506799804505115782104581689755994470264170019929850166668168561814682724404862444390421888677149045044773734674279589880782441812569443931262751464288414992399845961654868241053262034872366150963695359035420990293352816422069414718595818538973374243415640363963479502772828007588144267966072104536270074750870612728867272769553181998561572769158586698408012061815243837322653953286534433450711705998061981206448461505591550925344986492096671868948386663840773226358219231620850103876646972304323764729666137713227966967869343266043017474511600133512448326976759263535000296448999527893243907733080531828710110894557469713896062128531364608454341115994021601860035355204261078958856115943269922251523263738893938541761359160325637401141596455290021427411829234713215309764600480511407592093144514756446239934056756953474743620133561775968966766534033382609235929724962426865247721159785331971850065774732913240940683364801978484909548379604183562920047600281323260602901395053851575983916799153675047122997147299031447907812186478332208013182322735672778287710083315106330883211256472631047012642508228065422161587439367963428213923232155366647992839674940007385820138095814882170577086401115373163776029877187048962488159254271977801159559726144299537105333890191777758940519427640833392811743883648627052947572491112152196202394649991820069503148222157915553329735243987700439690724271564689172016829398535388398765237753215602508335387580567787719578445994563390819742390717203592764918704111199328630738505449770504572374059136965196248524037713801382293258452433432135983959726201280258481603254261172631152356153971794390878660274794465985190557693372972660289804234168223525119516627038847174085420164091191748881853159400557109188548330300910057046411934475444376577085574154453431800129196673825203033741605801770057788098846277215282299165170228506569732050433106833315882411958111242617120410905002332939939456219736532875897456490793304975187759604558380565143719714012377648310284879379103092254330540558737071727877150452747544847254924906101482665915751999739789904994478527706998935388196254578296266487566333571532496348248943383742306092138621248711047732869836949048890683711915221960526526350815593177255251228684550465098951074562045809700710444365430506176551737886651456622888490937471938335258190242698386430329005756570115568898156958739744132479217335919680653862802274715181286029174380502602778535791746868831689938205542192784249368997744455503205023971879482262784361862925413671062512240212389675913530851995725690361022092223333059880941759355775122595870200287201766220700816562729040836138411133904499818700327020691776945066412446878023440635018814225051665734111006988705038528723034167277494124204322328631983078682560157458600967070216402984266557114886853339511914140503579330359483652899555334460746263670007301111736339989865673161869285404305738850667120911148033072832858503848996441726423715225869989309456622591349946471618637192203069089323633249153774283394340000573230400839109394196616118024133800298087343511583429572873980769131146151639074282200256924715238966526141026566377745782697398241124617815830685292330974635402004089876179222871967794367567021518452586451625187119188777492772505157147874413048318040300234285951001565431633452540007744098728665163646899011585552912749256968944793746092579638688828850712611883757559634237160215351153814386081942908191056521329704544256521663593047257150534747871504189985941506271140910697685088953712292013450694106558778902524693836884486517342643529213943027081585360639143024384888681791847827823090137992918264358685307056658669654117537418551260050758835907161689696644061624965338908894513279804719053304624514638461805746001284912082884989889173941198798731016650919161719442791293149484008444461032640731411700254496267597025380312363399267187781463038476380295195534883026659343341980548731341551043206954410607657940282843013122556821564458655884472050991487327849601540272721266084302718861204553483758913267655919822089331703820101594735764269776387072716091304781861599096656483456509821936042974115690513632736223622144184656540241691513014429583031158275928529209958783192996765116076581935820791313493924581307412862147508435367348386195952379690474298304434167560214631008978041231221239933674371867007201800602782479151860879678234089102991607328270390819166945470608494853138327000991732050819423661466998877439921879939009736929138158407138861138307961848317218603932076377928681983801996007672734139202822365442773451291221530737522190620137619028781439164035121971126614030418157027773883200702065780182430977996969018760138107028061033185975286110137854198982173833011606960904049444275643106637381601066158871471950766889494130253859671783023950302766373035635571900541936173564737417638977710173203344889044400504165709386456227020412479506647477528417116788040982750967428950965065871181418285334696423475457834311260634425269943595092534963354854022581639726072433606613114722964278274551843124273804739262968110654515030588768716906974174084002031691220632643765762926874463217201629259309266533553707781684437686764575224796931871881105954314901274501092744325071766536472321988705647310524668888961042207743335978885651538736004203078140343207045917785211269697745081013713280273036114238094450690179758845058491994015690411717358481544062604120758060342406063287858878588264122862045139762816530941214077539703599097834070436081177626241484535351469333560844028723203113316491575849082636784236423935760895629767971162123428086844498494346026883881864121911753768652299949719021943949947474519058291535729669028728413801038251614927828327039365643885810879234747073663206833250448494871827675880759580595033068193623053972285563364875595824596591605385335373924669693595161826350255371258564879327310882741501072726240181095722938715849858966743617382801958114084219763960355630978387139550864192842720434261274137434465288254569012505588600633385826502926228746466420123972335628983536816458262095363600101243416914909876861579736605025402820487694480867453953294629122138802434552772955113282675062363494936416518506347918852993493533382803511938618540527847816605161229474739605061394855756180324154707340806998302980469890610447625459702038071437960066710836305057670799808181068317030855739051620271727290882383353136358260611556999292220639882637190385723612565112877085963617103356873758818651981056628385897863504521028774949435832408315286932123033547057989705053425708455504676284095524959819014008992473873463959915770188729455043330164197734176255140102002991858021417251874389693791382610672321952757155796940304078496531268120402907009155854500140008975073999773387200387370927927108087070219569884987827279406290679684236630490143258495654127960213399632538162233606065021552421972016347903479672200997611470952986240862992104779397215360923526023636778166535731659807383471327447391240184648271494806344155773124350117692337906653593522393904848172276533956042131011811744437277878313721033728090658925237753074722172467329334667923654566645123226241997841738210260004412386259460358508586981901150294553088597838487440677029169739939436109150073467554304071100764541624253381152561300446404848646220995077401039921395822722290701952376611066144411408476687743036258700642733134398425420693817123711891539541455124309869283812765215672376839901236410743788333136735856685005686780794761666856503532040717588938930001879009434529470531899901854910627680399509826481503711516359479486270725776924598778108442366016364646461214141218462129371936669403319345350479808321218662826250222381396963583150019566367454640590266188102201941926057023282771474324847555590267061023200912256324163736799958127847471101623213330219631552765591851136319683972889021160836076327859070968949285067004987019069559437980403060457871062741242616281440916468148995164768010090348192929263025001627444348814647610660573992630072369234894624606628258522258351140389982080489856772715316966966725708641898671175883688096331341343700585647091435307923235830642316089327106080483549325205121995967952209610156992894470952940914784021721472377558533454451540001800344567713962535891221326891015831784527726194061096384707963859070413013435707359556244780857522586651596456337068214423577900466032584438219013150491741263058916563703778959522746219913886604252581138806670177062556709347004350880204401417117021455333587172875634763750597876147388311403775407164481972251634062489764151554808197145518346572073312050484837581166089271525442205446191014967493820849548704798985487825281461450492661142152663720990312100059668640204776471646217080318294503722799913347068442879329440796774982547815963927444652677223964967457657633514281076286188099741638004123293837552997556148016650149485852405595959393382339010994741664514736616496584183479803574320437129050981482529461899391767854939397039233760959093316456381278663010919341263315845174285687374221399953806176645920034204739607895024307442336769365778238036719082294804386488608381367261987499941537057753001498937414819727171567470121887616922050696209034727219232022815657924325470492866662681592554400404712311230641521071118035435512136628318902412106245982204209217334426253033102738609593845450018582149301207361248204078102590788380061505709689863441943348372601259402156097634166795089562430326054913307487179400921962586547567124718849739987183843614440714905916700218361353834069890886661318402710601847080594524250629258761480859386662696434399922398332254018924805985769142736612299510830473930117429449915706458440134669951143441449072640159174859733249636238939089684397889358755128490206483518744716351409906353779156629405315486628846826266098349649977990670797770090017513728595185031642735102790591135132561497702937918474164243119397641911917979935792747534834576489833677350922306856896639920276575050060519458784150956757355513073039161919044748568277639026004915343680278125587435879349219894117121039684036917455360151107055019682299904149711815500165279904925289248817940530934378948844421286591649833826885707784765722493157021880489772296215011836602729017812700388651424636588141110854381304552918623552975153510592514027485596843928730970294192334962867472428426006640699895598157476607975224431861501706963641978744198161911816415123319978887436945507534345367981910581099575550343363361123808326483021478664571696520469284158669812098766669119769391833004860275940660872958282410598748892164606938688731004501865816238063781264155130064151029903287816890745356302159666258815218839991436748290295134327819734683391288205477752419026177873003835466188528003552474755805749607226846549365292673990462572311518169005525886586320887575831498425789435869792928185193597081765433231642256877122369338630680087335071596291464264708408801280357522766716099982920148473247060335644706627281561737437045500761070396838674322219198699019586958085796910408258851411524208541176827904351638503723237254347681681774179983173217463775919689555417070164074718771421288361346691991372294007836675022249632748619722002757888476264829975496871400790090609457865225466882443975608891378865795433051777124142110817588384894622527318626088035842029885528783579542483594592532152460849716915441654697106018037395577383390311827889941302641200070366828417085285378463479916331375151714824042104389787256445018589102589020349795674365445486013777247966809278340924391591416720015598279484480094766517810055680254450957688150164593384957120169465823902187166287696084481618278152851717537166752014853678646112152771798980496558729874138486817268949927818740229707753346091886274860722766128446937896351192639615710696982064219698036779146751245705970516436676026725538503509282611077987235197093828612671432604494271586992260937036124523277986267057629018402526111047847861697328690273571304996840737362291658433046841611462460422295099401205980185813463838320089210466848468717386158304579161210203361787908871129335186897336663150841362549681936755138916204549705140040030887089365241248659360992425448390795161191356709602262660947344732678548126221655702733409568371586552871917487420320022592699940113765228343579727215065382837025402612910476323039464335641215916726031715771957625920361234307417625029562670054618257562377089550241628536510298958904584522868207325287155646144482694305419437572250457984718303292798989026836687996159854479306722581602308048855962377462458092891454252727384333639469092821605055399741144162685173720964689399405227037799026946102020650204508315955691041410830512124675946182644045697803089452893976994552495461507956733918001073930813366673278670318169912064096695310408227192228390622042875234182963929019174131319900010802370327885412039984805328097815257560321000084019137364601367291272178270526585092950733849746293243716798830704321122443476508103268125067389194639430764253031180519973532342272614472233211981354599209804086122274565906663205014465837964628815910651537024395535204097188930760001516684375123635957392393807993628680577270859271084210730385626955629700061494237333092572084731350106654888236505578505723641601246957247189324599836267637145601853967920884460770185987170389071667059108034044609999299236706928323025980048192934860467711116551940045721577829604131707746970948751624610926995928383443179494657662088857019880853564856611643180942014880176623244273771241679113246394317657441103726796007151161383398470911357299950578856949964312715698784747166114348335190428011060782636267856316121943649997116479097493572305232973528640009503905438613507020618694522630604325234726657518310693790975713698098115325254737577762434031757264254758018062559108531866254073823013753392552214378259172970667952737362841068070870787695558641508121397120418763419046573132123716576093469262274369559874133026890598876379853119106757639806677139861020829968987719839770701850775915716025846857343104386153668873534588112827776474739796893461961615238199051987720724470334857307175788665817359367363590130244459007738739813254843673482598566204226266820506631750029093926652009562355338593855405634936164231503938897115143458082693430189135242558731361316185121743422323440448078091817609091471550193609838434876155288988196461880704523592180234136778862925296815982949243413795786476234434851536596307731600562222779303613375555887055253495001762778779583793915013050629866928970455725195781192594270512896491904568295880907232894742273487375247540071823480978777645816917738677380391611012270613167222223863793588472165216958687361585009217691232467308659312679030288393429267266298640652717952286968209682665189681221319995400390984522949634391648106293341526466363591675790531541417824685523563445653784201191757143140616517954886179158404137321090737307121342304894741570368147999656893300259439462701066023043610990156850692117212843464953594503662829196043145125717270629887804592688840715363830610858971148496754004075482179444311764493700721507114802053959377179738719555605162578943772536007205543197971928495928861948685438373502333015200367360860020863912186740943636497969347592888323834867010544470495305339730481598846514779611523310217258839673612550896236421301889127457352294481240458262982498403890139372427979306784954377454308427295883860324890409439926360989291707124234580617909466519461104907774949040984828255435900783122593602386392150722579509869480759051476275006065792701684275967910095347606070766669833262546923998110964681185230773005961548231208991263057732614266283126204500273458602800750037223542636554465758438513164988959935709998688041191417475817807200175190024603008351868789813509541547808514354991229979268237383057510787763936462062300905243008668996091024823500182399743176525395969163169426532314530976120810879700352679698697152776604892686167399960558550306080123772583151436502021019167362758140022706372348859560621400549055888252454991636698070274099154542874166904046168798520413810231224917304249331041462416618427244119747821575507829454350916916660408963252800235236908560892040525232688704617235685529628471470663189581166080593726290059514753442935766811031074246322928816291651859323783007697690808711942833398238078149566260808067398079882831221953029269848665343926925678276738891783680397968627804209606102220571726933887009002340385242756018457810050851508162201937493312960039478570765812700882354032354706479355004861248513866937888437417334478269405712606858502492561614175960132826599775346605897883344764390034321501089477577595453200967596823243836730704167292396600371661403004209485713822746221775933083536038491749023273213492962495550413259878531050917555926642908349812516952052707605624517235080846422759561333992618356847694353834796099770868284116901647488740791769910802360220246363869919892757152030059431088166933761515364818033168593691934299809970543028114615435497899041131650167127120867579163025991443175886248550927046764021287203550531731246778070476233352291724171267994464091454562241544468900985465061834710842240685392829681700237870657980280395665263018562587949949739785572212338748105337062291477572110862053726628552280085914435284715823434902322540317544627249681434620599441156610972843582633694062016814509877952117212956527755069327877774997138299513337389840243144133190214274061151029485949335780357975188253705865415292642666192011185945713035316536247904318598792135422265952940137651006933092867342707789477940486078998893501896933849791114386441422902544796786422708813251205128343260329363225922302235285666747990426890605761034520510869088915616904781952089786898531701391105836958599390745808866164554062508568062327665764386412764183680426209739164036282303652357231324678131818510115643183758626887606803464237644710730415676240959808242541704505355453189058458481454636341628051550274003561993177567710927490685689132709760242810805706636101208703127921663950077601446131701173723670814662972162497317906555786784953486159324048560742792959271750358353557617772642328255429142151022857144889227870034112762287396902066318722209031655155556786821256474753479126036808046749237990617972061214401696914276672608702313312869565645953573539052757754936538089957057887824846438984111072155984809995098394098147240510860872851562594368978413267653682726661220941363970347902040521060251043305242265824443417407030909899669001034274303019387982876139748383399326348844310849013957283960441131544068054905213503257468942424845585156023961796349403613534752279936057284639516544075851165489284079800228878385789293553750433706751509264992682679341688761360092840947782520356124291503984587280761608764977549126502015682541565332084276144041982374004480161651308096688258839904683319366243046692759539463238708103404952239850522902331366255385030412234247148599164881410507990880289033139215183416174946194568233479933132518275456993535311734554536108297956176981455589283152054986946859196263874645555407884656801833214194732785598407893981197830156366009839411977691730328774642626457794758994553714705830173603602615884458159138378477913451087634390464092752682194007676065295967736390544613707641081293779861411011292334286008524296484455621691541253679672519287480123733748515166467333409322497105783316397004215780923820963222617340940339212616174508730092714071701299001252087160598414998765606635425723282727291727744667096775482021974886186011874756869081127200603923882488524496305874609668181391484279145473707694313884712447168733166691433905819762476522521430302605516275553965720174709943112571455351120852213225132411587604361539666046518213325406654186562619922163593720041529705339304913681343693113723023757039382685007069644346801529245193654767542054743963033727837762284451560966838030175918390570605759062840837805708056685623636583520347643703906679416919095430270563221355853130449417426612539450594328254472438541836140898679233119825313448776992153106909201232932747720440032662331588904501730927685743730724992022065465957704984827269914197165263172645445721603787410753229528518194058559489223186870293628922078806565398503302618679577998496917082393504336152443509445835894465487035452165212444788774524161615988918013763337412179681534285959613431967223137552774659512666845285428755114390170418577954612269484163203958998413413625607353107690464601061417322821001140413679059881190104228040971255455948856539272823046352216734468176403943354487099880984450773157934686192563831960086021668570749844373556575877612626646493300406131640907222466701150738026507662645824111174094881461310389392450961160634098333765572019317773879315645751134826083113890234234184648338750325670040093672666816861867583050831509942907002056454554929955532597200315535613621498931160318443619481078314431483009305677188415423614116995643618125977285535678560352846824054808669181569133671419284103976087463757282815139788020623877170800626846885010980978607207961579172483347495546906716628713970320492166302429688664084322779056985719572030002730961796390595506262952534992138855544328738716736942595725045971738078625069782095685430192110803168679471824585527652831461550296795526077072539357364606487695264385714245336904375603515058289728335772924054999396200209054548598616573086500931326057396871335183140600808502217857192665855033467564921216034700596845091799608055311457345338423349621050127927269402953861120109565533119706465726379478047013585261171614467132074012261887516884703302766329646241469222656541582483103605030183619087639131988252435639874860443842956179891434138647356153416947218214442974346786437306656832129137688145194181672389491796637146425569797693813263309104598272959332243492523374716105986411650116294952300680572634320563173212592399748469333164532548793008141807788811367161323428373709135945908360659328634642338340174237272496611947242853880134067338058774280336570605811034521162598914765290737192164882342732246322685693328821524316383386353973787504712195253651091387195031546632152518898959854281794555228995464087410618554425740116101956760191872693636155912285682845591797956792976942439486528659189376768104872810943825977023384789730415348106092982206618830258174175963736972510254229991978908141411428349559235441327272139958047278515039880054442324259210501714557585486222910158207358749505521759870287171169532533136484160250134977746117083961591787775441469143678082573466954926188853063989845262496327574443041802866983698592976631813503629770412155643172318748397383313052587099712106088123380157277312345428076633698676604469312069338002015584405224805114443951181253967668151037358414099765950653154077812205800761606555111142597521916405918193335728556739040722468204893862911719150912510388640241416568657742713935738178724323940311359583481041235315952241203514834226164463125494674640229815646153347999154448747158860977144152306615600527629280655725491661975820066816350420562287557694170514640096097999470154337833020276842542481860942948718045241996815641356335280723482520956010117306183565003564687803076289272068391116216048451285835553039134563663665337435507715665642828023872173291458692736250382522955794008858143502219904369818070860553440744183490759053878106904657663088742155120329007866879294778220221035895846006980536771854974999173357731719274110520483994910172068318157463173094364780449937683426759491884952118857329519845317230699675592173066740915051870806004979538182955487573679694274137082946631653649663198678372996790505928044884651107429146753960263365658544622563645862810958739225428900228747614193467445373700252797170044080157908499512196246589742531328958725738030689786291691718042145279276311620082714440526640097875191779576595928638694137615263163715891343392096306401332360825993354594862901477181278829216496696456403577892662543969596164418299554649287889064764012832252024953540135316525336642990631743538971350868985650432650509255985001323045258795826556486270098301930506630237174893526888831172367260721486201248020210766595691521367984486218669163088170546010226057263895839010599763680873939363482196013968541445625957170160603889388492698844809396758874131158756774900291119359683377628610989294387315595531304967778659606523986241407890739660706308867038652461781555692696405295867005700246178554197016152297347538226128420440804443485480361845176084789993375401062404406896504154626182683716002745688501461286501148372945173122964758287181303930790403726226835316893656518095884418703766519626521627617064044160797780696852576259444698416163065511895904970457776337511521774168801921616962870441340275958712475876552724371374568422970759190965726788037252803199489152417229242975698941721491732378508085269609826805893998751944545893770634147935240818704410273400518914293326521876870956959244779459169529947717512689125481171373592341684720792445946882006017353340145362544654122650698933628474680159485189451076334270184218888710381918776160499900190191000989547715047680835833726114690795018133702352732400931746992201418952246852109888749160279306341823160434258415260604452850344026649303182466314141509826255180286804903024013073216871283254789828374703509472999631016007449569327209854756746690240042142440219125245156628414702998891917969184516508099929896657743162743559402302507763283608440979256666096958950023659729654778134248253651556651793648064848786792945860337369375974577214602112620894469415563559750693887189478927036417136925481578263035416208073417681601858233475954481075988782771864966086019054315432992116425384625823675814537157215734197229509649938127122860785650735097253040975847024851084530489026312227736046902184389841352803254151490031565660321440947228326459691863648939624064186843417597567340631111487785590142023461515154450612791837050771265397900508647922803711287036245810444367436336056514451064765116165424703677609123650082850445234512390980247373355119272172144443367884496587573079954100578800111749120778561264881536844402020814168695600298475950808751397566878847594459192053842836942724896079470453635631772154861007581710578382492816795114996562923059746393631712933864118051215647728613065235631033202148408462159021261171069283447850786637767837910312601822889397458716837132251652182509668459611358575087745371194344250626991440039235754031743513381996159587138296961065037892279145904202431329712525024372910691050503607576771310360958424963350330564465423640949242248760482049319927923042747109962299205010131485248223202195395342231573524156659069836978595791926261944225099012735779926681206628703087147006782203427742223450279572316516322679176436551111157118942398327252597158008369893457395292911502754270631034643057426794736589613121804669861101638660991636676397652819740080917536332416930778446944716485951693934307847143310833548471225880293604411845635320354521661766643838932689777957901984213194134570646806248954328193952416498168216522233065159274479630910398318170925882193992981863167089293667737239575099652420181348828115133533404304546641194031087976894447515154723645595564846143208539550694445785350753659643399860433527572285018038012867049422115138616523572214117519285780150620543022950127954943512998133310575128155347605004752797892943550151765051675898379746231397051572020470774477727965471713108016923291248163143195620569487903792726582527238556666258859224186913600916495605331409071735463932774288858821130768711402114927343959026048063838990725665309699370187794404941352893388642045920207437242273100766793307470132103574600977791053045662056916858634568368447617111347298852295106251518187436765305141364483077833669926944948005454378276530410438794338022752812010118509427853473697116312438870571341247571337764458350434834645027239297737807330386309383789901419424474169884139618728465544388874005512649617900083955954101485422761211919311113854150992523062643465867903399415931404835731448757969839981082008238366006586359426620650282190439375282410903450938726875355195988695612867328466961372004096854011672331733563403760462234542136062846586048311217693887026990661581900466387648575057846025106284411721388508932781969647928486652938931120255953602201033039235009062696427351937122776942127857645717884713684371776368823034703006314054228312605636455528991876300720758684069917720955844238211595612497445770360988028437334889647652954888729291700850857305732773208622062753663942679878331265105032494141931956296786478561832944021709892731957480311349342863004169540769056198664511422279571074637127731135422432247151035460663492454070120656129159544610453968239122741028321944266024346537592089881063707991545007072709177284443726833569116400093881474248830799966676946293033844196677435143216383304246949371794986253062720727876976807487482868191168411975561318259065878803388896248502100468403002852727898442108389162660851610281091347063761483826549498467372957765902554476226335864696099044905652960146293840104441449756500176450913541594088180726595663050871812527450779162848535292539000262489924055224014793568391555632081814858538361284576825908702568783322424292967466393373860833593902740692618415536559331672393049650989809329777868743088610012231440440809527891854526602805397844896550828328405599472994220531774447366482405008524071893409112742150525530041318211994869360991009644912527049769636795301046545002724117657052427441185883285631291336398256141256889232024038258103769690301650664511389998164048198445187682573901566228190532410334411575710420657194072510392329082827434043831849290497349567748434667392955215081630693587374610543736850527023221785207565036398318969805623856779989463502065545434181595317558281634542856586336508270648853483723006890512734670079777570610718950604486038202303780690117948733255675570464535419909655921378340237688295417248961454694020410365749709418485490988462749419523211571863398973028494211089654142540658772401882583170020006250403690305441080346977194646593544110596226812531644016756176605536177786926024729349748532476743201807791193420887012211958165283531740148520536721508440784623345902477132721075866065188205548311295028789599856499430134017818333927252748586345796560793327465933617075525517472431419714933345002116149495100098822557730327861369715645091984093023027203058145188961583498804147885089188855919108263451880269653868648821398137613001870652349392176101177605776240771288697285777354838089802528894062181787048701012942553024850824432428105303463301176327088545958749466986816459871987695879341044072540970207367407323206095063919142701326161550805652662101436142028482808961309250230784692861805767249519888175746062610993267108697232959522251953223796117712416741463564585341483917605000220359884125754315623271212262618768502656021685094579514830842228962335825939239967355963893667256827962280093919926068989741532218956704687238142681918847785546938530866028104280475400930178484942091820007235358706198676366403102304496653691194584431331133903849760045994748271488920643012244823186251122331623711640169921501105573621806365822398763908897340690766980123939378798558083494877569977746088235319945997576533327406461582264119716465163177413268282147481447780828321603495569754814172588629356518890617992315295853165366103213429273369392896852823076573893540509860066015898931094590767562692445758834004228279808192746730239925625668210151126513993252471775388983550625037874794237763030109585114332288006115050945264523946113677029094560212674960589045664439147600825179112219215807119459303305648441599189272476156108418197906530173478335092104926979959776895299108420804077943442197445005541202267363607951557034164063943552019821785194745882369972606748609715432500378017434585462237549026276691370780984742769974923637629936317972306141605885242346496363188373619383680738137246732046573609586601674783145932903144605096350609311352600054050883544911017395254948020370021109438951029313090412680881969869883402837629725127670201241556960998760902120065873409165135783389018892435726408326127963704580526761042238650319009541341370050118344324574695034059326499260808271533456247997453224835126914325882173676271392921892649090030566403741171719164024030172209132811482524110345240514572809804380183022537410324379260863339744938397143867276718361535048617846334472179306651972119318233173873654638438894893924178859811015530286259302292073306804901138663474663820915394560910634932453301914469593527036536580640230879996955979603113255738985422687031607663242799828452693189285414071777798666259976952507525057887535217111683737683477568893239543505867417152841529126898006730141530151205327897017694490127884530834214908303323616677711780459864948639261492247034620545229451056623328158614474003637382295868240981128011112932579974343237147056623297571925466450235600667402272423558221449708161302863006875367858294601173137212967189042375498484789309118218252660120043667284767225273194109042043085403810725371956167840866394574345721719326621178881192304092073325909424281191038520862631049672734041795398587343259113459209714253064257235044656836783417062736467964706643818243649066854362132595171828840372457234430499829990454759685870683133601462472344663772692078702050405257321320184628548832483076322545058706270162971332881420178809179622683400064705113731051457439982385480497708929609414707688666855452422231378331861521246248145470043558585179461072502099533091987014347574463695184480858807063707308472195897604017591182094193742426819526148795079193978408976648717551375347215226677093572273305198052961143874291350298026872446900871000479630629758959221898603904259190996361843228233087458401639750456051086196201531685324395243659392954014390483850499131923183575941915870375492512695409559409699952689068882337578147866695074889395491674538548436262831253989794323537826677954765101921984945657165591043636825656155687287920533363966665355512965609605937358539698971607533166581186982250532868709472309948225430747324506423507513834755764938709810948863479338011013418530313816785517776167628352903912148121541518628708774480173927823745003496982064222981095076486314999837721640715637503129058794484274932532295555760973689230983255605753284870476607454006590362535172105973749878696234364632412290332456316413834364524468668499910599400380149052465755996499533948071307411522420909627581457601492016308472548720037642129944388867837405201841426974565223492617405887421233002133638033190683716240194142475467608608119275862906439401499527742277281750140242658712039105161815315465365430815838180920903608273539782806836333295457200217457065298315907934543025283786403486592589086306210350684601968453220393695028745298764461685090560336105363098884025908698604635824437163958937800263507376557120711266416039803939046359105731699744639268525465014340935382395234251558661029572449003689155734066313923006463941783271049560839776002941406831610295170540126526704913043378055926856376486583110358019941101849877580662587312818990302252418861448947874422950352597701063651423485924471811504890715857912721392763083231797401300576760689985974898423968886764848149835881976648667771021862932682249557698574662219249561880839105377789446331254100548890121528299350249263319145937830413060682412624738894387669855368886571505908963760630957617015197738433825495626556649961040453712697543029883582313927175402392599480221673425754924376039440682258063355216603178621993969335072394393966208156093718036433100829255749959927652217131535878660882875905968651471381231689298982561568631877255538475061363853571458311969683141977183636346550272350948681795258223031090264986965599712809975368672493480502722215452652264863253912583233710484922433847005065070074831543505776098124807252198663823645354263448683001651321973067785017109886785255176157486212889993186487920711225871793262079608686390807350168486748903584248985102788265370744253784961814489589476620286642855219200337837617968619151347212277046502525348457544234034399690865999755145629644998279869397043539060039188372505084511554506380101621062547967040022112990586548842990862715066765919991271825981022845822714185209120284999516911738633334473386309727604609115012753751644254159393512432474193579398446476867249610386592178904584017119601996923486921884975837553172206602560261260206599283153549395950424947662491568060010895073697418690877832971045685543873591772324676555065043816102325378957441881246743663386723974920440970285718357174173863691839552122428925942511935113890710279075935617887370311214091735655279580470319049013316168541580657996091800151602071223730568856400986108030751368670180069866404440720678217505083983703181013758683914138485020218848140204943338851454405263253860180002186442542132836789867787356438011450339278633579221270905325429377821575918072384258849911104547991497389132899535171899221281348700800076770883225023182576001985558925460388210257773848819258138789487195251506216437217437818799073401640742824900962827784811234279367672367119504473023093718653604582857644039270880425389302354673419198087282704608816283370982240271680511520061943495743995745529566795832319320453843376135871280301499410371175413493904084749109845149986694079493227177059099065755911076116731933643617263785791640244064779091755067821865032784032425174004482719997269557677129679542112723696223149185973179563651608934441625327483189413639383573845484626852592802780312138741953004550623088182397232358318655538585321035387094546966256179362007694908581644967700054260802656414647813750394724580186462162341726801863793567245625694846848927279232583594848961284172084691397487214429244820873341805601956963359804495844147854844325546268652416877821573860876020584143599332608967956333051593761002415857322284796121834187823816805061064242704817058858564110890301020992486526770901713852428681670525565128189767944152143694379315334218014892779190605938671481775160941930167085388756721823188990406970991107062261667989577514296504729035618871532022403354493974046779781069671648692024945355861656648927589629618839634673794227290351565052920609724428046230573139425567867378205409525205820707047840551537348985134804152419239709118719078166477310443780608909780287454535483801400822564779611893185321553149083704459534720458800237749405628323181529638245019692839290363519027239231953635894883280714902786031233280043017409380343387112792548380265430389504494406602583331293293320871765947741024940161032851251245280620056037402137488209084565782808270814464255712060397935549177378742063678004107873785557482033491106279445935446764393953214569500912648416759414831869727744414713054604024016886993758702613106657637360179033849716666752489624882453338030949264628794608606646095168042058017879985430767718689130037031052718674426167275233258253751845794508277705608250017782966958027213892328874318493803524951002326662467435652616761954073469476639540312328483718969661589197380112228769049471420390735503185130241637425823651128916811973768744604521148108592347870153172220241337626849969324381003580963600648683633654159095942478391951118625055925987950552354722861815542161052891539941770376090666285583146622409875390846355912271273184860049092446533157263340600234829758546761313117666758818614854329976144960456940033251746997355248229061747587793467005917626588660366596621708648062683561601100724728322968920274423664246674386213124828788214044232690804247338296424236953109027325592492847052556328450958286881352228870133488759991737059970134594356796177601067070322441761812115438358249847716679743457044854314491994316622404926666125282827239878237346236989340071522983671411547567181357368880643689955909676414620908577264162278755127550519893476247142035492573922462691835051211310074242334291567647383891477790850510206695366354692133954348410332845669766041024436383922253334759176373725893256559350956394167573858336616615505420724634175493531737772148493559407695564604943919945736337716306675638088177962009250581760193530443719229390752356392563914261575523189750531960107287698665628873631127397183760015828332373190895807230603311915515653331309026853155942501845708513013927378008019635972929726737056939805678140734920899448335529591384948292356854354781514690842290681398098677300633483519350823213706093883802360265768542502907614352846337740475463103522040867992564703226345304970369213843459634880927452215340579443092286221386371862274604938481532823982562264074021975872238676698508649175648012788203476475530578674868109401923674786251823821469446476724336736951258858509201642110351350248002056608735443672263773160642866242826478326100590217574666621533489012975750906992464649670208848175779652903791673235255344877583378242691322150629231005905462368547068173988367055166599818497170049408148033113780057247885250710611606244249800263214049151500324145058759649815298915102275153109620302522581894320046172916879693256229607566293988838930869555300917820951860894801233051094160295406854895145223896030183782404732752214674450923503458376111869380116745870116629278470088009252478675770488734134132595466907030137842791913076761968885828774703228207823263393802181823519126639523669809495966714933152123687494637187857021093159847148373955329311022939727515116266502131375155069628388361906075912629088421116123265355274376544964019433083947124513501311922326530596195778935069539734695188934916088987188160282605805089466401788824986442890957828885239954891469899323971132218380217830140922547983038340083929806927332766141040113898979115920971422153387629238927656054492337347713341928699853676823000566971623170634019663879566796824594860849178706469602624640737420422157562909670057941816642448090317531756556115300089301771689965516759483036029705355773130509929273463051902496526628352029040399465211655417785389226587578850105898023951914459781278516335466937812031013259210505108414201663144904237365909181061199786697528901729471128372584854021078516973904221667661224037535537082116487989866737068003867013051181990019313992937322685238289087093932204525027770393271559756343361624532735032746117269234942861337110832766163766309479854619679842442930805681277090682401490432075446723966945695603250971592627526604000925000053762727811921436431097251814719033317765610380292790949942679515996665019449337157458027681088580543452898262576332029842133736092286621981967360990815624956005901993298865169121229680249128146848423841460381963054175104085570594041611096489279389617711700575036607772696063529029227234729644926836711669248064512588667145181379781991981963971695443848372948410368339165630004794909162434759678792925993291732714555865543863680458606682714047696891635635188476104259087930408896083817066988919082719744823327304632172441088625950587406902823214970060601727353369250930383270719561162194395606043028957036475015137708083048867819132707423325650715859096090432748756173073469963361579187240080871555227660618463962800181619982517452113174956349852199211555956931944285850130333812000143969532679453673578713193570456976382148096485176005958811951140904062402574546465849804115250920434944563979672901361532330652073683629230666784427431128092312617640443758431663575068950366791091282014499433334083549327671756850625003920950543358575548291261928842805461910727076065700768997449723951455279859790523749955068774651060765187012690779651293525846179793290254116816027331208794138987667116240272479339350303940227614348561065381609107122499146776971109769054088569586444632335072553623152628926462865066481709165833716370462773590910363795535571232903689374183722282997315531104234746264183503436484916475843684742215325437088835951348429366381459508829802724498686543038701830100639888187481382815285993214768036275953894315183785989702248791282418933474880399580821731957472106450528529108972107233604091879226910452480706803672662998995050127193658866123499874210874557622174084456280851172975852892205772190037731721782961960254939184044716004057369483737803117766990944448883154095124744066404179940802402787801244650806538620844013274994882181824200723306299169333738849401239662620042202883588478646826418499924250515084003555055264419174308927283431862814323420190329158265734377441172123089963301596680826634022680277468415094446695191068731683888432662964465785685959702955161053558325628922070046404062487017621150811919278102105363759879558239673030672728352805283939925849533736743330458044308997716953842639032151085067800440285229660112050140289380951542832207652755153153227791495028905563123122631702334357705410668108833583329703144718145481946994783913296608252641474542165273636083521075756600966977558143022062883073598986773429211786548978033438480654453824124213273008664121621047617332083660156127559865368092072505121789550833067414853039752688538918589824574972808019241451359344595353221739870997800865779694207070445549648211041514811702946532230046698534243344945336511149697296644795790956879014042362709520004225749719235026204458034371795907091054989926863592315685019515104845269869628567514359065695680889029121323095888518859256062641515448851649112885839758095322632457081176940620840565511486646032236217861429026563455005223472081749535826453486806447669438736259461310139142348876541205501306319339296239864730490563692739496915822954856008273712157767004758879462995649779016977983427813109554476226886420271329537956590891897863675557442883628441463757752337389947197397132671229109219975721517318470891646190387755012765524372415229741952512675027747237828836183544290290755918102411469680356475942322445061589703413689531992255456542900751144320220016205865803917310448618965342428760328669604089923855994875778015762014175673020795081412392524871802841605170108245020464818839421305835706932472947679036128126317064661438552662146362573052843326085578407405747246776006445275957797975547906461127572485876120137174944045600458455236937840927727358223089674598732636613228329640430054817350745694584930405164321440165229363814668402028751633808535951880719574871350199455155109301669769683115228015761167932948445189143710643814592907596520716456221986069259155616208523917118290024569983066029493463041015731839634772992642064980722828358892794492181653841705879279817895773282692141251553920656706384742271206367186308930950937051320117670805925885992446533271817161288645597909957720585628063228943812440269025797745773750664659703671750808589220187657303706487465734318601714302255837691866377893100744064038011987055692703260959890542027409788037145158498498182589031333827347428259413941160918710934417304071941995943280159393610354069882501799018823827936334303647538526531363331342326223192486369865348770385903337029616328090652734860388253116384527725180259737486783878685736525641893141200374856603405621512701203397901188439472372531363342638096134547973741892469896596514530196697386492072805626467663557998779469846590780952180054347134937496940249883631432103225510035951548023369867183501961274569848998797057670397347072950242509584145747079820551366396153783509925459534624417545726189467014406999584508073306381256878024617005384927076865812868543690168848706049478001122464402254842480984946616611898960432565270859010770492046858193636503998276219079654648836263740807110470721192599274138748924650038835909816404431603193080557879081376548856561608952674105174113170104167439037861857547315522872490552281793008043977041859375041841193672442420988838516731555000896817468446180975230579801310381919403585868024193589099900722602857755557646356944714722314702191990475739199604581945390889436821826330842995803612136950066158393030408703278140251176092742056531456422916129280204911813027103870669584861914875058787419617055568716124888643942555509152459119861188199041398561210120423499465304994532074129828939707321226931426432380368398221735242527751957842715997869493018355389728394850579656166239991390144393654581248020145720494286405210945022152091509012272358404485731470942813500780510736464277770814584510154084545656963959324324438197107896850969916328938894324500375752178446370051652348587236939443961459909932798069960962773745458145026454641192138036655309321312776907659740059751998693797484311608845342172584026937289830981596625548506611692712042266414935102806499262133411062277721771380497817069010927732086849980558231143301802698961942125223587978304030794617978175768742718241944891847895930550934667519067231797976120155663836400701865560287893515646354871050937485792668591771998512815337154366351588107963443039227162535370387565108938147775290748256200749860191930018502113905461574075257820301740580136232923494450867633051268161118993773709147250065491677098633284310031182593582231985848315597859382239304102733100034650102130294296369681363598044569679228179677625519047143495367254396662318731263678231050941171140147821806743276518480272909632150614483648042558085404928358041292007081259181888775538335060758208482604708276968675986386221320711684211679119656711403895137919524398664310215329691657386230398717154625746991802429368517221367578698200505348789151142917529081817828978609553071032553788286907485834135410941176350521703818756669490354583001840174478366038701948820387354161013573683961338338611612769750868657309779974666533968784043998941981198137265006080794728780503427011999824758374793003197849778642590325034233280584599266676614832326378671459637463637593902555005839394192747758486498873820238711759102726228232494299053648426831341121841159819784048412949300547976155691461861977673232697361559002916149535163875240106376652700058889232703520031842311625191850634021970921036132203785450022794352929183885263677094403454910897246866824745531223783436726207723175782295787373042139103569725009654791790381468254252752035339140296877172794788776377858751012535693291340569249826453130505199519201068245874990240714686432647122310446436041529698091550872016162112509686808688731760870177174831217563687477665654693886166315269220737536483092803375387641762774989282599210420433345256164061983899082900367904742966901657791528940982070799375087439767522320135899013224663494835555025847233648696721135761378815249123784157074970642857022943629750648471208438209898780818020238725633755015211280789864169482418006360296879786743524016356522405275471052900923516907396251895159397772162869420895670221601125434816080817406507871868691567468065933838358667577524510326392173689067959317496918632940955850063961816816218021858848456719270189463117524445426789982721896761215481886598927107981726404527120369273743095293424692994678087152859177912390686274492951380242054191770621034338807540207326273172973639933219293658470331856717127663016963853011316061707838483829097972733036114098478424656344724550747857781247321575490880395417077298181006194145767137328109094910508698654884175649281577532557707752640110542407983420858832731767536807212991335386855323350850094771760251904958797279344640969674698293481897833027610680016510030077918713167847031306772855677402451667035628605602436362990299531928680012572074936773584267419659299506838533100522506565577579512254843427055207567509100699874281226299094041803232451969706607561501425046062569400691193533969481727484983669495359558864437032666951132988385208981693780384150770723955652163361781668829473469464710746260013996994544528872464337371679703600164445062932060263748719138112845715999910207352888285621917710183555843471280131349222115711798945675750621921534425906878156587242523850175377948723201497328702610400704400170143070329778435347216932070658543831528456982493332915148999335153912812409996312492658841173322910801547064823989307835624027252187725179566726217227646997831064809102982630647368312947296148937791865923789286134921864610690461031430838674760228695731314229070435383279189300417060426703944221451669307761181727494998462987172592410458578750924472371662795687430971095030369702865875091420087037295483441826468140113823168256007777111232964394320555988738512160638541937408908152890454334490919540335678938531405718929642025048694834721373370560964476283809090709369553212448779943876309645194492996916020056354374827968916868168933425574265001099702160879175404617335774193505736879254475666288226023811570841581670374783561384761841005381378613680007720566628286301327992979471680871763312549317576569726047136915053417785251956334756969450750683143784026851553186247523647548150929850764451562282393212803703953206526263173855619806171540511825947937225556308617519256823192804601612711778394682966186460176763322189442936750619651611115748706441175412209424212489216776142806434012206115273871979333244536773121231539756595178514549262105722349619909720820697860141811990008736097262974430333887320273257728985417827325837493791436308907734033201023755263438103406112663144443540704710980059923648219929632559852552366531579316618312384927369932711889136353310156178515137900116862664721630987928815107259282685274440272014544711138013113284571603267767795492274694467021586802411462988860661217256442219790565383383216691898762215827264177872569208132639983618856806960772590708215946835009395085403612517339617536706666801542503155531976327821823947497079168444407697006378439114828604122183253216326821039515138762101518265665923135595736964978126294086265783330967493196090034561258137007391262567771045184185708149911991601488951068733901157241871917005430864197280404181634329397004109872294164640086998436431968410084637567232612206354482636522953310813244788581664455869617863817335048531438104328324794106389054902288192948732846984520853696496634332583764398718945400673075377569323407206367866553968030944284071143465203135728251545092273260369026813178983363964800453900307948367003423520719233147802965116002328986870650474176768075231148121103177712125217951799412937755660026625728058579866151281255398339787874050491614920112440628015229447464827646000113385307831142308193988635114406259656876363692655696379231248509041581774735991987625108334490564983855026953305345883161617112152665416647279877028449201985371908676449487728692217800798744560846634282976166723799396664957403619453881985970374569923081319684729789394072592929031207539802257342665820498779805686629833973482723126605033211770715256162122834106823266338582509083476403380894219121190684505100511151507417016310223837178493518639593068757624787048148574752279736141013871826335136677371260198675702545028785156020187696289767439046153167740618805962606046028605187173546123843471209469689001939373831555624185137232341602618389593017375164535523984592496605608435414562309056803953107061041889816174258583163608958768871396800850033579285871355634149445796972764124791042727119718736197899578022984177662250764950767756960573281552435505474963068351664804396780893335721999219031084113299324295861049861201105046181706673441351081801361562761373520171583151689134199867009285177896371927519128816744942360918441857149922461557877823875546104275727411449526303468013612928146696088021643134573777596151308284454334619102133302950905786390150128056042635991650775850567324243350020051388258905604743599685830145657624927401270913429948929684951475986381494537390629124500365842462045650083020670238229375235008306741425113820859678142723261675216508769120737820063101031080154314663279013138554065576344476741084255664937542784541650671253349810735459168762042097417588950683967751856780012069729056452291945474988245343469095247393762170060998522326294896637373449928847407976722377538867690689115648799129663310470174848616795844203443613215379470659903829165708799172359860467199182424520914591072377185292615781162972024361834177849266141966440841381956518421587391209043335599873104880248777123925182122368572912314662951181787367195774227497662702233641748781937928651804171725992857843081356080128708523400729961156397679705434206389256041135904896921780685347328863653290014672565613354985063217644541251020961478541614545943470403525190863658884906814882421337938266500379609626674073522864959898533468363696205040260307380341310512243240257940638530303056322579707513034486849249030079773654446304307496919213811108802839141852780117876667846213433059800499882016205367700859837498999743433629474821911999194300158018375850165486799707875400284385387422131605572193583386105947533845379210326403314229977943898243379672386616735888070628110508692609950019383854824491212681066568230248160528207763239173488838749934148569249836839144634120603874680320340083421241473285212509567544780874023961044792280838297188453496507430246762280550781199937907199356475408731834778492461506560043039396524886558336119963872933287511717496502810713436406910981072599919777436246549188002432687072888002509878713700042776563934216121251381689028695644917359278892666011046416633133692004910038560274494243757716735080753713395130315300611018833897772922908535567076620447587508998001467188592138706632667033693952871354465489583944891209244654756418790971721023500545462284681296875315656509500352449752402743220772226436846287015262963095259835783165918698412491526075204279666619401783800237402627922602502914328962354020006245987760306441215835595673210972809694998452236698166270001776096497787612174342577262893274835633408841107789851581464747330536871662635752752780843634860665342507006928166419993980562593645852521022852115960495932924717947067967979940709630505648591509273278956431654593058079754451811181403943144788418930982966499690805385447608170911078103913491946311911476714327371498855116301640526276133139117044156323675590450426473261187673770265705613040329722585275869452487985212526049767034397619850984074592905071581530554482676421245447476420097064523330036560410986877589087122797555886206424615873475725232710552882408972839690165114548473920540434790852355999911469365395923671072578864130953786823577603611144443989685005624450239346130808030183973870632343076653400864737606717939712093758768136401478933621367175802706904241437710840478010955508301170191566765087643608182435199883382915299285547477036688039510308743514238160034644693119980600411607993766131782057529963273468166271743140156849893501796670480991577425304635658019555936477475921567523293591348452924604481770716027644443274455046180859219083865478008244970330790172263475161430386920081929065685523993087228884128460564379677450532295544199679393558829305204500620009150345903349093747862649218686271188784296513989602122478661923682202359890195693453301529599354621640281701452645226839617351196825347939287415470128692253330763464613014873025475819144887217827054052252350832666437158978397769132935487944999417827186880274792551206410273953551554261678949219773239567394023269017790746759511659007113393706878569830544140213994695736554258776684357906935141836002282249857556234697655270059112438078713815219647165181753799681709960961677677291824218111761906449699031694239686491635646249190090495863543588081554084988045058714990464143089934606363526319902831132052251038861146583291892572521583431568072891231462993432753211105871135871567879367922081152342553790583037052628771312174190015041442094843136976462618009019331242378847712503923506345628991619546341284401663063503748717561379118611017830550596633044389208086975110786369960674982306551406122467450742296456768832806802896745510364550972784284436255704800000908356263660655699382538998064401610014316231666457204648790864155268154305101092442485834434900909929449286323973533483990489527219936680451212171891612047028039683479189449271125962174191610985085600022022052449129735581631331908141240184746194094171826082864913936407962819602042582153803208356045590619550142051434906686058432064282628343154524140437756040032088085094687868914830052928598295274048415440001751741642625013561918299363687560877173809038769884253972116968867556691939092550443551081210588506531569050786972594084511809056830845830462627407809256680027241561488251204971788300248209565661130215776322354294749759448904813250438115601688342306488425125132406961865458647451971147460548734149840262571377969293423609805595149706528826541843770623308447440291311106668261725089914522174626516642014757915425149754024853649345886211596857498716010780535890909610693379307321436909938776236945876073851006820525798469160493737407089698489767619162215509332957796084474909621535337959384694771580046036360911614417510884094941966107020704384137091257941780062652548774147641431312845855440093179948552702093255450473548041120930451211591272034804389165175723540226874382320772668896936093232854765994794849147750083745957182413674649990370528942839786204271804219103759882152582183143445633755604803431317785133916143085088312479857349876305637475195779226611954779388417019387821085766203817413887131042887693882652360599103494706641478852307416768133157633397590973323915207228764454560703151558839021281933170492518179392901346134363535448774139610109827467624095430001103353096136883499082748945682365024286106760750968024314769153828437253580702881273792887076338816576466833646019334615302481910265578057650721412109229368432984531136223388778698902679621816882648800791426200214581157228459142957037252975619660354940029293347643055335273013853537399940000896409152198467505335212831543240274888422970341216800240586116657480177142176706737340877966694756499106077598083189171663217476557500069339499510978438117395043551308459228391292721273714915126886699469477667489014345148310961897867767516654208464954857797508692594456924415620934464963656326753489840038287704734555426796595821661014218529494957028872425275030910233173580112272448513708757775052482904632292337862993350182295907385933449363053909185261725686791900605642886370651649490190128517189990057577983480081865652789127653020903571737383204632307901705116825009078967126074271742657880479836424477763002737750665782081108436330960004639437742401329154344793759012523629137727313723960417669460807923489757510984637878753768095012261663837104890550367687204927458428752101991807996992121240891814966916376150675259794392017892726178997440949166355546381337815068427665921329239367577818623944929523213173245257320448354275458560417322153291723084923329674955035925426661702868688620780912096693713972374660976537481084319887499856839980173086616688983781908066238066016405917180750137023052986826474204364626752758328304994975198253581508884364986869676647675899024452433739701540687430074789258855527457643724447266612723092176879453129717142463529405545544720739515780435148192236514962665978624771190132627592792097146942935764091760560250323165064188696084091379441949250047245852748770008287290373766567393882524358260266407690960978424625404040260882035582084482226006307765753366019926218514148482749791654395764923312405529458046905513955504925053208283167207496979183782577258244000736585111086826204580226553478421202468362093983041757434481379005803484854687118734976895274575410252896611834465682179415053793970948612163720999459336353251792227630314826545555941636731935264582045000499825873914382022764251162683352897837947364557580504400567104957144459787302092763460844088248278689600379938986983491996473476126819912666900384939478400432120202931413613938302432854843569940425935984579769029744704284884756453357387707527697849796776140481508498009430243154726621984303435264611514183003979704146274885205046198033505385851251303359037211919489758910120601556733057636483252364686100426820638302364537541104848780840135025467160316346408719440214618114142481936356600589460490391081345941689046950114859094827911185703092802600424914648368510454459218077294204427850556956408929675558861022113288348229214681311144694671844641581710333289209481304246037546489543992575077019124479431145590467932144592270738091885009612919540226248025397728400111708813986802882082496722878706161251756771892217473594166212215251805514090983618072090142928207270663439005396998515053377188356465989445867843765534181841835832233034346520303243101109443983026939797484669260665132858503765701572695934171329864647032380878776437586511541586723349691068059850839237411756732252094387629874919657591204671602855717504899600632882812982732844336272134007258670440973267830811331866898863460128555031449862404477297937570349311201161163671778834749448662050599991543360409805952457212212859940339140594291750667339949235267720817222292021618800995953351902862956770767842264925038157924092249265847845082594891940845566502957747974694823384708884252514457295334650443019239701297237586820209707603209972420616168995631838392956359384632796251073637492436116089782237774208108389665177676885648543032328631862755343612451789420368803027870165599177015696473252853749000440820784601369609004578142482035397560683675785332299897553438922628639952182342246661590271507103321186077578834178623112589286595564978607484105416727325472481491260909362274115241744948123148773717345459590506645144585322360983889882053871393446215395640326652660064219665918322817951514131302152842016328684625725041929222812917474765185907784121361219973493238423177753564337499648674403942412110616655444946954296316251198876543766467494527789584902093034992143172715988214625899917088911550043354014722448231301443983288198270715657124329640210483333200278545366403644430978325933263193411803693743870506218059921789628706959056508098179533842072183047496170056424157676048419249082222382874749802154521807816823591926055538868110561726492893266044201511088177873854050618397651958107043874004622291054163421532788349819593700145290740876682534460435859351103981230220625569165994940378978705968612264051812862149183752370820445349217336825393397481501643518965403243943032183958641572715226374932061030389868625092608040118342966748954594356121333689233536508795003141528649846872472452867056439856920210591268989705860901618541799852814971348907364256281999017759796691747114006373713540471342280706922932346067815107990367944124433263632619100616104327637045237890916177950920524988729496154012027346267733803300889039989787337722064606043384959219131108456334760564607246461988351716105812738431603315310762156798198839894211898889308143266066344849954585677645124891867124994771470615952584503547926763631182036973509667858710632401145528663162676213781978326977818489617070536798819162385807181532452669462706418929322145589197176747580714692832592020500728770040672011646943674091833797774897282667515213439610791299140093973040682007383031653043702105176324069509225067185729574183361663366936366758727181755385699992212816321253202902164751521694780941830043725745482246125631660365531475804037133178146964541629467812378910492652757600664286555767576250758884570807919332902753869779227268929480918977871277533869300572944157543250395334277385868599635486519820894894884270202538406854255366036757119779021765375421362201363669910380142919046753229502462722489263715582595034988350629585248565377091323057059014480673949143468763347216999869497166659231295445793754127231048488306859308972607882046442739907480018194169007800509313028171909997221118909415905997167523211077157529913159126207145625695548092755448031939544319254718488841582587020087596649803522439676652415770838745356462992769425191715501499474026107662061371412004126565250533661862500507648528264305087488664816510276189669909635389128445733271678760684724978375986857059255506452775290941391311921697463049520672058418943556158447584800736191023324232575262045387076376792661596670722320663738205810010089492920757027285985714806350457979713553262113423051174559065361757710998937159997556930941335868203886970789949524231147983668260642843692478153423767851771298199544454251073179662274935141479353605793939580384489552214997524461777136217001938334159690246657099927210911160592020195030819476160487875504226717849550954601108196238615294826280077166305675702093706327532653845235613892438959149807972132344281583682756616533127300333819007174641719778629050224331055592279979575922534608641336906893034536926798089965320194320375477565490902676087301793187780889913586868485522114558857970543715683568009698224351366697098401485493824735103307215063472468419000662726840453975054245137238551860928547645412690355597659241960370015224522238014908444909892432708221247860044386569538730671728548131914325179583608310471927671825989945194618265632227459786828708946679644881777802088781201515425713330624974017715340659865544959013836858366923926295088637784086389001842380981360250168756868494680263010762675498741084017294236788371375593965553945929243401642871342555338405421994443264793706887805060085632511911428195746689564287085265747364553974874307621274516704965346649307946624822966826475379711248671935869188703198272212218663039831274247793267615146802419088454514410452158730239338435820643191018164355619148276050522966405583945538746809143535836852945298418847887289696864734477224633104039610974195858916346200632655846839132939484171521389467210566051030115157439536620097583657995314940229055776292436683229159277805206119516518769440166277858826059288956373867489982241978381748789495940710263710852641400050078185973198858948701530600551509464459883706677806287259394193831982426991625375776056477766748882225562704217370708617541119183973090747276320568534166896139402847747080581151586335631998745501151694541194079756761996001037593213442728316560676920535731124049356864871515440424859118396050833525138139588699538164978395849408718575658279261036000999098016789921637248366758994301770624541707905855993933242040311132616741396823525479555290329571849023044595470882040177588764637768643655229434424221028791249952355143718789076412666377997219346255602149663657924900390863124958240474649758556079834718155875329522107694869535253444708503460550928917795150149774382511260889562072962546341313628859027059191820725652373057285020176674925627855962033458504580990393259697971652156091225596852517666122149646511351600938398814111466750214725916574156532620599313545468018659842939562182560976566598424568629386530071712156684790114224297689113702215877487179546132876296257149174050798774696680608350444296077871925696885589411408554516060148943356193309968551815730054537876275334928287978032300067299705518033514392375011037259289093270011680441404689540008785108934941556352025076979477759274037235745983979365367418959817284433472482816068415225218658200405735946173640531666229105585303793071011073853177707948779553323664178246682306018469680588669664648473043017958859072414500489703710884691620345354784873977201253738412771450955192967597130089333317969830581680255601400721237081799783797769993620293587525003523006341907466089769648863995834630177049249863464558905589489033331082855823484651866171990343626410243669297990316233019650895060655396259314742888883805480007854606446172305273901973961413148697021103260933986714792111119062667459212384267258680092904140949863756782658561219554644190612421976204360764265143507896768347688596794041891599271774288828569540146840207459074690070033696818972153096534898870374556015188753752189104818006702340450320282914707826091220710670566261724903186189103664282544180754907775901634095636041708497393277025811245132548035118212515872631231565497967594857197666468337799019110503522562425465316536324464300020232940809134187958393685801703921368859253166059932954219914038446811423358513799464229013378593319685198706765940177522680186896322572227191095146105727384748435864087001103806868536621335759107001327970049247245281479256222529576434845037993972741185206529128150643340913968577704864837373727938265890056528541943825584203953679990782509784383347567497678147189620040831825193069181448527622634119268355101979074354221770820332063896676340775820203061373601416984210788127559152628115501628661345381247618129873901966179310334616748112853661375672151070455567201195195642880938047926314030002768409772089206900307526098629715966533763053682652414948040422182396917246306768555859789017079435149328898922654594270476566928522409465231491589392309463032294949395314507787154053975731026545431420175063305492073806680940249767154669152315138747959347483735583966538188215154404775729919114728247853743279346809870674725828992406573174865464171620676913643367631748230557187092132409213327481192732634165959061417702473637982986240365395068133707531110500676777035303877366327251917725298248613182491693082938328753146141675816553897771716290911467592520651762979521713775037044889502680779566186014245959930032146110255109292007673522316618173923957662533770256458964228737751372916134222477856473694298253459497233535404850358643940432957813945750716258831644168060926822244213800152858131921875946107538211228123093930373743640721403928266396317876040359792078137788046699282313308286868799788087012676298460078971663991581461896622273997430021569651796218642090421559308304541888832906557733702956256880743313048007456560577551954853379906634239731270878771502483442933678420511666745493748416972056057223602612739627793000400070413462809830569231965254722049318542171974662981036969255982003885181096773474360902529667142125185246009890910001137387535795126701535027589922621875892529298999621908715329849966921999328789638574076785261373714927840804151617698115352294617091922578891253618803025295239704759099282676972553401655771911495662090832359999144643311061932770332272259266646030936792985905468180741610879177845820382824331397850656173251216235912476059768256243136882799844601865077220013144172551077406005619781988542638282069783645979825245427430263762867514147855759270797130300165209332594129907988637660555447223406579195172293716785128532378903978098837183496924414831600136662551710242908555525824469885392144640506075896480984305581882571253250225175846914394471197717662645330940350767704344611638452607657749379097750284592404898967635150927344251246139579404903796496158389641839678806293108094836903303812351050937106376650293460197037671058126052014356631813879344028399064613565964506610464574993331675679731855439579789363079782522627800622538590097852842465241535079748287337445191115010458097639695059571664361352617168892573673228636252632602786187068424458031693798773032121558587115663809664999155923325937468894546135278166633236579989655514345325962369804399986252596034073058311600440990810055221576198668156482902896729127589624014991390149550016090595892972256773053085059267143765698434231621571856595534158960530402709321887174528175284541017405344813741943754935794197977314306912341191114330603368449949752604244166075935961679225675098262159385362778884260826494699311083658626187335706259423612389069081461952390286323437508706651961962184403996530214974382963280438981889092199263706722101878148544515502277769262498605030017687918598875240061668843286671405721842522455524186738744972313558439270995909703469148223321079908291609805707599153236645274307769501315718018739210337547407889013060561401483010800452907398539161188424223657671761648257658788545707889487693456866982930859765954959349515400825258081381110974163922409950369956833234102930463123072477613513578676356221667479371371012089735402489767383801848908019371719449809043760905785647926242319303237801450568570983020295083542949533353720766639154205674086008780284432105750366397055372099201139540009941356021207235475195041843693122770590309674380509733688639996344854578381967734700969103879436845521153621791801882614164077728636811548386098011465918967680771811526151451702086308655212679007155587643945789485199846236024393632207858119942657591461996562392919543169738483901984899854295999278365346969961706978641174143163767989197354399256436106905665824049522147673526114728477125021667612672535754656591814462926824732815835527668702496288581203888654336803986392215515477088917057635089447458140886906893177113504331258405689145985840992250865540788277615001487745655371801741476382274299737580887357895775935699721862002939766475244654252562992040490774362966151730299062749643964993467428664862577179518821785099268590264851506612364690403744005842662648586243351821891362258383153865347248844866264306588284786868376394989015346578062131458991570349756604548193803902601068365049679868766948307605551798493159191427853842165145279144109975256577518205059559870277083922427637962251826064544631471866472953796093796233504599383136289861790395204023820667003717490768921184670902152893314627562529577124633429457569848133607260004870826669152943067265041736953046665546889486662644812460703445591089243052165253667637641994604292414131611708810250491357728950528864946022791156663909897501210165706798948099239441493034851482069128976398054387157962061770900512370398690193642328737312799462320667783849625916669266225228755169498716927269708528881613215457436263440497500385518989913727616287851693746560739905810399771663481342078268826053030906342977351614329950441208121513832892842938053233608170869860464982918163164081374723255667451809568163045776155096876930481087643789820007482503528717035671984043999231942138361225387501220962758880513517733414794189501811597483399289113839498126854370239898737402673418300872071191872748584971005017109928239221767411802832502943082260296223075673913741696465132266538534256911646221246649582457198048702204164478468442007422126016845974163229888810357123618141167697895571138774482846184089281789629222793493038850816888498486966963740543883262420263939575791753593935870003122938249375917311574810570643000949546034789910725645493034690832807620489376408430713220772441434207270718508092373281887126084249085995571823685731640703630903146520961196844493663319404489728362545173614766513462206284337725036948582432644601146892544553627509838648636433382970090020440660837672377017636413823847684467483749375602000328869743181843201327685019388527094194750610227891545683499169745340502996471926664166186566723911520301006548729403712826676611003302716335770847165372319672947158842425960076117977348771266792380336231802492315270879525584880466234555459979969357877992260348045023473015384991859577910258465324593731191242931655737106579458614615217569908727555063128240390990843195725286421221889757320637937830561731702862267708485455918276014469338728882579738439527297437303994516816613481875771926725107529340987989488457628276326005332264984623578339692622491500097363842579045939572305357247869216965032880179697146600755704048209947334861839274117902255292960867374627336160252361284474337533627894628216251461520811193640571492910098715226912702735172483655099058653614455068884557158085497461767500978930719569917873343464085506808103412429031913383676235457321973764404854885179464093243615320385461905940672233787465465890734534713566976504804693256533123783456657988838494606845379281838230056432109786987126472327035579281427456309773884654483987741892637347542831812481877605737194408562394240535441578797833722865046687493988336617773749133843773561397991934757761959623549877430084080926892602849436148421350352794454619888259054188566724073262515972700673133037557316957384483196627257616204419727700218773104279916755784333529694313404285254018223095594646989355377618349965294990684550735370054518219706691365290535001271353458705119925125198627130695677776644977990216380632903366752401317995024598054931011467832613566289185918421066104042917830569611840695741329225657092885130019418796310231889309240713632167382047546479460280446885720026456057286727895287109361738615356015488096820518032145542557654933940265693394678414551486316407735774359050768776062394246190026270543612165868678680474567506249646781080587625852440258754963074616705925492597013593244896530623045596168805589941317475570430794451036393187974015082315340858045667336163581299746139720142347274993950934657633382166813583748658339109180202640910402168976972889403820824831365319467550781970245296333953866599947796490845614179080367928692431317563330831060862683212598569971887705840061307877000390988272838986161287817343716744846761166108494801571298168774648313331625354418827827599269012706252406150361055373288149911261285507809249153085885768550721104721229457391188917913947703106373828429101660131273177714134769900693961460827335245159172667488710062145810842364388663744265351841161376046985778175912965248383732327731410922591042005166196683994556496216596280993162306419993864103259091814750361602280135573654943605699338475234663694421665980563540575569348409514201359486351712826112951568426456423925686034431683376304521145297793534147263989538699106621264079903506989481394673272823653974017859947329347013586913141292176597498698555600613625582102222080833533864501611127019900680306564001035919715988188758139934381293184761471040226731850836543367667324455573657019377430197890237570441775235273937786536356217467646547600284958916275377103977940470650428980218381585988350112187460111325894947520365414085769922740831534055029008048395485454619923303450997411185634557626130316472644988553201461858095302775250626291880836913050938591000759299008779825216415127718405876008282885852547387709509780091439323040159747804030138057836275432090623067042056794962062485745085219827055130255967894293379404214531098261266480451253370472546860263473158724409461689292958432686691990505371079362328430064294298981027532908838547321557237284087950381257770994630930045335872271433145093091975180119389837726977717945177027273908149185278802796818351728572055326485560613462782241948178694972539665972724430028483475132673551906409067052881359969535851854072320130880773816202459722787392223193960779414669441745050398359322695504136588590590564473668540442529199985459146520153722694449703891310957620958548088966646266291548406655451210017962712385105343754997885544920232910388153742896930964690933844285148817283399666405917702480371395478749681681678361006567973665893057192094919915572103056943977467682709119994818904157242056339367734783531887918450856804842619740453388327283450312115357441722732631633516137303902243261776612367913124959851370717183381224525143066472185708688868581198939609918008055169325631823259108343447946353382335793609397708486380082064873212453401062403848417507433692536441652132049168810635044415978575351083218480266391183340821432260197770405017059722919819188632230782550037349929743768113328049464221056408146852998376341645910318838095436536049899090588437841261919706660956698063322380455393550505351580180200838771593886232733412330524851971998092176444803391214572337578745282813514242569572717090087218659698407400802496784250755201149840987316546931679208222922037068575859625122009874205195177035200725620199998092623591715587796856318670825462724772617643221210132080244665382523127769175558658586435245222037376889833434691264682299945539699364499973502502519306757370423385190092210938766325084893739385037908311593321159613288461623219685896267229517614079423465673658322527057951511016284470870120326584181117445222186183774654548069400815089198402084602981361708033559117142712749858998670321549572178869908747105890171684736148924623007881847889380960970208684697076762343034040974225972744858278013015423043665600974677857422309837262751425022562756762097309089993966464839362147032113655919213683141244895115664407478595752521062252646190475605933461492373615712392805989477273019284782625990897000713971729105527925298215381990003181490221525357365716016794140898647423044480006857812416075286075683609318407648127117341760301368685649737788085411268389789591188394757603382654822752821730803216216011450350503028057854443834906577963106563023197284119367426979158004313996438071570439117567873445704365175572098829691287959264883091077101147647632698387469922080291526202989020668043137492541590683656456593940728913203662256590240881041191531005077861897504228657673543568009500400418370981302078644269167598532142990026866329482113357895077769711722562062098232566930601123567661946238847517867735148789677838722922393572002396179021335243345970134923969468287117445506065328709174494208254281326341758016541328113582563076560756159346087833850549609145534601141106696858710992255095891177569082623349881657578186389853286785712515507048581886174774784679458021736391863888307906727047593087903628520949775762077708964840585588420991522270356134506376043250682082893451136295410761538821963063786941783405784342266102135063230328309213987012640225936961803626317458307061889627880256286143092010383082420671630563511321003143555592678464696321636409665022745583969017965998085235664848364104014147662383028845461491500069535720623760172734665602371400314513555554283692060325380550947026183010830953098452943555390465868289781502153502887201191802202953506319352980069963992921027655000460442316802111756580867417343451248996839612102866039580468952840483678988682565776181807145896032632702351443070379638135046543244596318432291536706498402051863773888229557706115339849401340249345423718658589731679782742579099751600873877633836863522611779449689751579031319090944693218763501285288025192703025827076390094665888500558889290637921991858404480144773487973019398562224049314129821949876486291439350958330166865918688208174947926571830801760437635272547135801248461066642531757512926017246111910512335416050310967301844398270588150684867054191628074165233214273109505713161709145703420279096169823504822935623683448327667765181119460713082005561034624562525294610839149934822825694743560892562201522828203474684206645610301120705997444848933438751269398538920565144449573488029418773493218086353101356052536204746270938185945017664087362704541741135414027038493111598384477395561509119038718964415607012115353686642250537032301624292987404482547129449075592759128213560062804507586183786927549890053855166957715787680254890221733956857707196271797891274038814994587522623340319740299175494542996080562321076361426089484729617715688007894041696392268230770208296478225694675457287392518583506011279534892803592213242009693344904614382113825584364113347702720779961080384681393048478403594099699108294476567503890880794765149114895101316723179444894138435689293017275759918097530906517649633427490988722659304327421275826479114868764002976128470111808259335332020882470428105074429769512116826586824305039195768363385426167855110702758528625159227941525442725705172321392456595815545779218989806156089061666070052535990386242781867086881677143274868189360545537886076235938420613179572301689897971048132048379198504251097097120345072550698431395565899203205094630486571663589547061127356137813277752703632322624613885250883942909404845384233939494658543213392845799061653885093565651410037938340330739033360541005299390937515631891977822632945210399592677432070648885624465648733497300806075979351796521308981876840964544345788704182365600438751940602436184166922618805258414123908420551712221016967172086910976529952786785750955270177874218084287559928612066367194389759108121209539846528100263161415909444313291295902666658501322132488068034070263017590938222184682359555953242644679203264015422951972869378447569491648985875728127770877716607765510135014118110544965848219987105608734467812919030121152177738129478264933183064659063234311809084160153591780838165727596752217029997448075883444528070400045908735737141988445646745674711264752265248726986283861843615280070314892877900121011805070886021744707852002267578961838320338318568477552086097262578817046650719827886981093906193486385232941749313102102755059553739839409926373848517469787617788511664020420227095024196556669221187443663016796068209566362668379679615711770618477576054535772663974429884450165169047951758317223316519355086084098882902265413566373540438945165592067499506580387112831654216128062465557897640524540568224610101425301848288935667000121676951448078175450450838125171714892088720086509802910168000900985366537074570651181636306581322494723658725198473009544624408290306045022007876600772098676945060709273632550570039963303249210507206663021530267632104501456749534046291230138145115087973611065117852713894722749119185977738453090916019539443791769087442416051874864702281591636543496622071823374929382266452029545853359218165523223552651109650236239639689427992428009965594035626122371065586580043022229922299114553381583088741218885483970199375754177071058616913025121462666046812394074883419935209861629114277662054541763969300057367228193588732207782610581966356338841528393869642180401271450965475516093665248046771220791573016062471535497639021944722345521498771759066031185316910391186922418009509280486082159139993721404072699439735868326068124218711209307023482054917548829835460770236607738889531639326243349892498479463823330273954255205238776282644226397973951154212105336548263886945537521195617023157725064053780987862779221402369853986232091388439881909867688468342565093592206084501769364724912595728007430604259785037247402177834202592565846784779668326774678202249566591258806964965945914930919118470517417295184599449174126487348806383273949662759097386627028901801445085715242272536276017903957539455323597865436036831191280589838500483207516155770791010084630275845861080141620427286852905409995925792784905702013815321905394371928647699870398112846809491834754429771181452454226470933920013026235625606122967719784495077233238125609064982791693880768461474969023545022391232876474862484997714724435762248410027205010843378558326546520609899754949181719045062819296682831538102393082965939643938617655263198613241732047810054991609211389390696842709632804787576714201686229615187503790501898358002975571937505015462795409358214941819083262005934445091695202020315804561835196425732784375799515364957552458080611538220238393408614339869434370238709607033529394253946682655248238666129589705460001545247009630106498278221734268264074849708604093264425879469987501020947417129736548000915612015483693983205416254206335349777659545344492249866067122864382117417450198883914489309185309223307469704582036470510144692236319499137362495720975273412320982438574118758656163814736341899711513012760193947122058448450984603345976710509018193683052082800802807043489043813044775187625370571357619469425234675357287205388493473372208387438191681972459946685026105850542399884473417633310484275755305493177462087771347549813048467502065222083677068955410414571170607693393428423673030546036689816758610929581163630819304339194624092326688560906376740918645586312536536954780904214434934220539313460903791738780405546415850696970255092542367707075750097010437460029647049619400489991557284138134843358139240948657686962090419292381864015460620947203350884364243608908975682820467015415547041327376181097827943140869163225749053950447971212663018197985441441962946596264384222393171075388082920422388011072387732599266141358195213636306392709831050305182048686363665896569675593297506267691526780848810137446705165991714825274438356550539825420690790448974500701515753134779342797574885876162067572199561293433389648003435032622091600575976453338195281929049367732003100424987392802407733624128829668751328293815980031672019452911577128278146656141141256121634290192058707914577875724806117789821124023153257136842479454808790285939719796336148431282719532318047278355725683350459818221082752674884101699868677946689262898007405375383268783747868570595269122382564240950260670579475577555156066833328272016357441747892429970830627154526396482383497806794389100264648865971788307192406181173786364380405075775621742592627256580045909810702628383412194634970340110291992440912694930378425446723220743067054988914474068481283702976281300795705740461840759598843269011544197263785959602861932371693483828393139854618204085950601738404294829151221120657237294988382790734364576513983366892530786018903794976531551576121900172913906259749281268675208975245138811891585639574394520448552281393342208076974655780058094381102711302558920878030988345769244479968149911175529693638103227733112837445196788456101562775928506661386540563174100821211458627026339358712787846690628336971284069290919020238755422259759823743263750782355939446029630682362771051109247434726933666509188112442973026707461266289559745338454535109135426164807115789604151953162364334016457581487813610216033422428759172342353774193598893072513467252251412457904621654346084490448033264719888590469561146457060267539129992393429274576610483205575889358585287012165438226157664979764606695280431640655715092575653717890412926366512639559800148424993278353304697692013787075390570056522013353964950739438032539853920585999597360647312937280865976522001919607741033646617985174450231113026977516728059684357698297296701939405086635989129308523533457326061748435678336623240459997567803716137624889686555346800304483570066640299833455120464572733566345713300888442348183892787359856663705199528878267411644582569663330060742835730604841159459607125266125410162285704683877975726095745469516944200036099655400306229685878471488799891348633911304621487324700783800738776727123606643850289176039353470849417293341842852990107253080104527294409206455543963481197432260774433441467325592491032786060246329367349000590971479674778838912304027978386365433570469442904305942281521154996144810967111527326680345049247381141564082729088931469467629789603925789503273980483873265573117456122485915377901369692908277143096014596665703437705371679196967880109027023487494533342761564222474369678615493414998752660764130770821043570978285706556787536945558215676677254966188263544252322387974190179646484709008184954200516664923739629502812939586775130329273960441032725138055409421015332497550705909258275228137311821896924350665171654450793618590113052057762700488114895107423162426608876137057354037959633539010751607780306624632559757922473904950306836352961724626172272195038521616855367314145506135293335391028609092612441925802279983447138730735297599838609515909953788140155041631226724237524623398152653274053282451308443967101742868874084245345838903067710242870206143080438508865859146252080656794182657833990781609739576197093629417530918704480172251486984042323412142076423054409168379041037142745011364851025435445722703916264073260414451916796552325785334423629472150051270729130728324005421717735358823357894886637679828498279690699461136053023522879783356400088032110309500409052448957844905197782269773369547126046972171179621637243770515436518647024370233143638671807884532803656387672621918391690509848485607152825111055035235114814642271028906108606725114152905409080932084151825573872110534356968039492330587506111741240237648777567793862592360090100439241353341412347543699733061392121778205547216080067126465096655211794584255221678053817569577351608314912295204953629019584847281721112040060670633807283761706039556578681528557537606670059280570628603617253277213911640275841594719884681138405027871371642376372814113911301638582221288613485807947708194500431912252308120810806215963362229641383301693474762578216875005004656272671742149385681151756431154076757485649337466419521171563473405826966516151281227130705652243973311280302099657781350047776451303005902546188694476112923786675289286328326603416563216510012639152856701934207327341163388837172386008121082048527165290139151721899496939746138441616683473961800886951720196883623961586946490262921786273757267863861555052516776626196752804778729098374284640488310277015830332619652751376604313432109542092217207945851121991168499168254751275052856822164382805922103807040870441115228835546483393767449826361911745367027481129668654716971479371136040486468554034115194053494014913942199973810416398848389464303992797225959802051258614444718917096256409211932688834165889466602659557526988954059062060955046713421491428207094484934121628438258813355739894238964969297960786539869589191927258352949589493883670077064445533299249558192432236060007212052631479980941743708478062406485183819093949430487306972689959365049819168322594849860905263478405693088718204934389892905283944612872571208442465236833255631902274825747250044219646698497262103766851469758686533935574574596822918287010598990802378033744345348807291910370899275389941858205953321710606397060570019047654446187865122899093375697180763611235469488780150702994854710867719371844567128998730271544938939926503803997793330078532282895922770703428126080942798982956934948360605310357015437261994644910575221072021592195768225625828456582613257390853059202820222171039253433486992601888612870853750161888921477179820122484345036712077945307539828957726094276687161028382204699601955965723183599866573358897258711481427262461533865206525643175314855191218920814554489723676004461170859817001064615087227948910674130917864478245254664576009189937352586081412688923367360058193724346328944517680438651780244937085087586372477046292957578967007990650062031457107704931468983791296706711784671343264741811562622779671128017987049190932587896415561519587831982010680658821340986197829948254080428125708485835554825004658403217858839576887286421613978859170263636549028460553302118474364018325873158108812097254265719444488166493565301867252477869953736113616457469875694838420934963634638256546797417312631158500372623331997845760935301132454069521775865274280288757226060551162637753119835499694912788074382381291282899137507570690295646654854523372529516533504539847333865911258767160116299034748412387707178024186135936312121622929601521460846387664869693726586379128792697861575175267636975382446937066939632927150725874674023656913309077936948747682807434301471496377774310317181961208892868889454301351746918338372298746222618628008688778584877762179892222262576962255310124644218131481570301582947358995913914456589754468440971092709386526317648220530374898954746254381598200845815967744616943244836485982554634014419230684894196921254463198161429099447022341015295983150677342845466913674107895765097427084631038660423496645649309049202022307382278816736288945054981833185934671467300646726509204692674320703424345998857524813225665959226678743641862841849181740586769256063234462481810129344672724895368870293021325184643354332686229446171491335815053007607111676600598957000195432971988691483465892803501394808490678514068851133165651661607707650112921343156474791323752987856464454682616976869799785155479527055725462950111415163069542373333143491430435543051199202776709500682939281986313520519697611970782728731558200540437095285528476822142938321858518667281830092761047368066590718421232884275791613000930466838377107197972572095257203183256744250655416478696122899013986706810432131827746123105094223389004928559153318989616864198614736551419241714802804876442934214829578348896647851295826331364527778495392345063362251691494015653266759620441254165142232934699648266144938900411661905668928567978677436994626405958692622738237554600751759507358068598199420032427802654883452999284983463015877139001636386825493848528700397061182021691340461155234639835056618074320199918998949417529948950158409532279676214441731544515128776422060101190936254570304083000694251719029975674245831919926390519642958966249681005250026293481441395105420569023215552924408889249551578850057247162685052476333936284790665766943708807735284614471390332044109725442825178569196265025385452481803440689948507398109570441789641288182553601717545189061633169026932714598599823969111000805904846610475081569981901035260960035441460341893912146950903348267462397674865680971762019741194711962777082682900325288897271156716099406203692001773274285491907644840476948794668320850751885450647172660739435244338808212785981988094683456379425026932762533306839401881575673375787186497456975387411177835033889189594366710134606086362876900142462979951613847915450393746185798860549644697509381995654086040107300767484409842669078800086832305883883433627263721229199541825228923426272475380927737256991805690111927062097395210286641978516789845989152446066579090009728266306549791600547972863797852715792850539708213328310329578797172534294221109971981723105292057078861209741542863203536666040615403663257025245069352518255818689051501452115504524413622262631954395197880474184015046177414247433929890164147403589773421670976130300396395804252808980581665351637708611180571493589386073930876671557561011574931820238304593293245444871034677754221412498976449766669866074729264767314516612010549427080445829069740902639242977547575818547078637091450223016841687030728668170660583125657775122568767393838301852791259720851973453065954548811214469518330253949671348902004915095467189765830243398630877972503358433128028493379127449323663454345248797817271573739628756643417334213039946050409497518908666921329008128531556672942594227666671955324298487134884388830595025788868873401994401342230243377581913457125088112040734197664320250941756039151152716637451690842303604193799519238911130660358724606265314507890910102315547935644530806812267203491109577124297635546279057208060138460175244465480558181676970663079120875720448329987339424076641716455727421723888894039534371678466729312696762173638734377602747837786016193334509644862848418737688413185344508071464939183329227343248569491068498071384150691352152307950550659646152001053862785473470555015775377120002901963826175031984215962475902455098929298619967518220361568453339308479496336301818829939821816591833507422968010766300152801531842573615367315825775533868854181418329774625699455627436242617061663605579444740815762800928243535338443040850658110930641735657453289243284318966902197670182049030857768773520326448978016929861185121287291287968728525310960772707083116319638221093054609812202027547386424523803771378171818545453100897065135023580741474516339660791641537248459645187180336742390180594194847384962506533981007978350076336231148074736971985427862982553163723875702306649255374851825179291136842239035896671186129819790819836675347726664002879129918862962570038256835851903909682489298021349208196245681855451693247456156424700253810853500163131584627017866159887830401109286989812882452177460820056572307780935795968174903621518968296028487340686932500599931147986139424514132778711196290948769317824515265539589030194369456967809817468193946736852640526335880492253455253855976448852748657568578753956128266927625086765191365782446295734790243540885109806902391541015325867717409963319568363310648299087428562581185125054797869863929770112210002172470663956682286477091613478375212103506260513355640825700989866997330485048256286360999561022947345180573201637182541155409749422369364111381742892663464881771861953864178871053033837623056106789713539996368826271437955656434112486803448064214116284927401459116378661444957371094770562969360243493891674748199715079384842766348855113495665227360290600605808174124626848825679825951407682162648375974251725293585515282174110710093517938097069002324526401875958254602642816632309725011148639621654344831340950877846744182864340099196786792606415736654518813782508991820432747702294586397795395708781956107097431660743162655499180234902828142442861221022260646378782542381613819761357493941655141350520650791768812432925976358780156909413103706371368334781541623954251194137979402337150796534864605569179549006317724558506113503452670905149402600100361474137228176828607325963041155801939820770353653878917647079949626674545131606332779955120919268736456441699813296861730346800661709411942352568887171781499118563353892197584659612544936911098155840163992557830179244818068645123082567012701667189297748635088488110362232746798191463984877337939358972005540618613771949877243018520361394926559137677788550403494362752241418119365252905375385417761016793073300349031292002261899396716136416194658330950893348611991004138637457833289001434603159808501034059606069820706642695068548919872540211934801525225885928022945791864004245958202133480206698905490130840892047601509381605705246774013142060790462301286594740408116318948580412620406975675204066570782956832201072151776560473226239337156870735304917113751464126638428467088996569980384775921018785851796929682460992036139406062434617562214043116374650781772940264228230193766492593904272041195459553646806843089286287143368110302497859092988042982013903660219155655061761685301202487043791052507078610316756263276942466986795064706800859325391164827957736866085160564154862714270994762551749697334909916540498964549747974130973343501527412740579385317740401972243773168796879343244536878587677171203965929398855636724494060555624242391627492432085313795533612760610953554983661308043368957287838151645898288840240003820501392998191327093646379305296639972805206221726564015859563640486202428864554755862355262520854428726215459694520676065794888624845028229651190492024604581236339805894171923072378513517253292772656888259980549430008739218128383532729474802449465446888225047052708081438073734097981848923620908991883805868621148117205898580836005955433485473076291871112268872787846024179134453809049474800187283866698191912157766957692354922691197995812999787176389227877999284889173371678278217084414411547960885939131974258460738935037703610247063693432240247903612590594824233134442802876934206672024364555164092372012358606110546005840003632554223906630790913407312998739978785265573297873909314685424123879329232275564216922825894156509143505611983648309320544404519645578135803563965874544257612206217519815197959020520843418759649093748652726416576936066488735350872578495719873411123310067257631880070937115812801882087757729432893418748507935040083676230344173051213372890682502327054787119877515179974772999674027047074426681598754465112547433538280347873790196476000778525132748495307476384794759269323564872357071016002537164863904813697155406639089824543960031952953127621655004577249817371785116128361647904794261278191231633564529861538132966340910339765086883292313101880305374634789466138385302980242333073419625289849750630306616483084017722578068309276857635159467036555448522399934093020106990995924347858709441801127147957194092981078546621665318641303301248032255861222410634772643510772255252964928279322087219730531067206558866915900805930748514262064210419782482403943240892124802478199538869804396439892329216445270546060356446362510918076673450995129020600396174570134799908516662038939376390962325947890791385761996874404691607181161017475586604755724715449642685200807291887620817315460474771702291541498198395009533530169841132255496548803898333201320272041353577476799622248244795208777774993716496958956408553818576764543611646435231353624154702132922645986312515307168960289830860096236961640839640423580904416406515904685546269646527760376369042480851926807494607940107852761218647544387756655635548417035272397366923904298976919270872922603864826251910971998777107818752442527785299182029332182257333409171012916484008263624015521278402182529433710957101079794588115897512760023912097763948039558057122802168069273363131556236092898606778265734790434843571242882393785948504880622288010472399592212877975928220604904507101174464836990652297057308207511477815616418799723649110684379610150473577277666058335064694129222852150677092275338622008324629113334601481940272368523819544240062169323707694073324512514455326610153113138108041378543459497397562084355994128641789601010374830375119371606776482329899770503765583228066955410053411966609175388184339508622890874842517170965571841444798193252949642731486275761178533709518297540168129971986257419155649485351730039332494435615013059252534560942705643974717648432772693672657844069884813421398793517715463657694849719396647246882886438121234125055000398232806891974508238475311790046774033820598194011338028472382949537647779142626183262779759125610059579091363532819671553621699569659964041520815167186546910296173383761061259949744062680080108953585308887587161683921406743934296413275496013988766993113035534022727602204561968751710601750392892888577415957499107270613092967334955416810613399530995942312011223130489469440707015410322725851063243029452726395054593553002201301219858919787165408802453347362537090528476108850657427688536609115779720785175171523861050536398048431230282300602342389117204041926969493134696791093878905369284527131218676414712678522418713013557752760543400524696076280702350594570271132070861538359768867712734249936444172050881552581082705551836132043619572351535445331140268680121677294491357839455459412256987382921978226534285836244834991277382043687492848759231650628251026851958256574012849711186269550578994047804590063007887935045918114467614811368634027798269236982401454133447265031893118329163192290979935893849708516439951553168338879785798475285505100157080249815380856236438272259926341260621815299344439755897108572226331747684520655991805447570325716448433521430914140897684278294924192572726635390126135511217875429551670120216194534907545116393416550980187702501352123130277002135529057174950388682596567457908309396572221990335445999385145106797631996781516977523627994073640482526849871188754335452899079063853022784491662536576520894188056750677822312239026773979859050119645745538294286664441062453626127504702275120893083766802229637681183885356788259170883821631763679045261038905145122709265297634689770336133007146974646928327320021555570674846809697106825320558194435640216506433732181957263996628144930723228545345998565830331224199486356699279979535360059320330307248274017414061203206644015284846525849986983327530981613414617045367388961684501350308028735172424466931557463760645356213322361263401482500034400641615261550321618910950646979169163097390661710676880949185137586637626880646980907190047859954276824170911037628250526450591301327115105144273575095540061648956138527311579174825567519833576627793994764122717194930556655719027045704548100285695641464855708068400685491289520458965290462895710666946622036491984218984595425732489473173391619518493098682676378535450406264857453552723688839978693539720878145903844958968840304682970472717262725283050278470374720303622663940175379485588035613759075154226656144843922555526247144713166954674485564378859100706135908119618812650691740511508663352210826472355851866293653045842345990507368677932443448281095895795361875379778869176964873317381095875855963058236802598615926425044313846166927144008867067214489011666237648705756330051086760533783952626292889577541443538294162361219626519685843671080224382062187015403832293381752362605463363987267810222294247388824032426187500535391832445882879829943337188767944867832971260995566519205929462547438766759660892045877564842368091510898128779583214557548065864424647905208063456833584562215130469125401320220651766074125702691742023385214830810465318936896131459098013509467453818028124815035122152610876922092322226099374556713723656896283707418814984905704941342736844115290461928464012774784547852402406748766897220707827646002041845337644281273268264945377208955269393058764040186949211302423191415925388907297258619486424456261810776063047052123541066583123561172640085968499439638812247147171745136765463089019822583120406658784770701861914257497144988789036430569271895249261293623435805831010047594860877591228886852926537459673288761476070885971046607543077043674465615609058789266776453384868293375147267233865764053290702530697626322749039489404905888922170238725515866036642261992298798044210990191577685380049868907702533190636228546058670993514591751267174016775154388945100633361027098223284946348576448675467518430952882185680820321326687928000862344102949504968702311082560228764093783021058195120990762526994638660553024308647777372277609138159638462153917248386970803685770770024258792632236085341205079698378931156000307466056359767948758679744551387714101921409349156028632169907049386788411173109577045043425827016383930989007712921880424543360394848268982274655518468173814725272813425265065181302701938769356599857987813329460071486061677923616209796454475614082563571246913844778781472548497848335832601415521739597618604161389696263175527830273003796115864542829890922896861274997254521142645677679556517784019079670105637134899899716298467625413417263926151641517396869118534670418762198440137783561950893836702042818348053967258252444181700512891800948233699444872920178023011729994328485110791876358270883809116102507094175279706152630075045442746658128551080432191404942583643673068527693679162441778286342615886732415549746191382294690404577072622443786075527745121973390508498160061481631172017801801382100966742343032126419730180597482027759367017171909651982487341971623440577551859060029893632610444375938247859382522890312611568093902063400964662871479928367900149302347787291571404873917540622383257068681399137329886865503999013908553539869892096424964644620167232515372375508427281261500199306020827550874422559135728531873198338424671146209914471744377037565903881580539275701922640349646113620889820470920684830184413038066724058371524019464352320844192706923803790907932614968701363784107950546696748312064432110750973261806854962850741538442682305984357496309078007473550439212212801256478138800795131887497392558656267360883909528565090741231354270266848149974910910228124466697647045241335778845324874125173906309532578211891145453663635489570320734923684668203630714466173648412905829124601622157576275076898101869392422099060368865676191748150720364450445762429597711032417207399665917794323787055854057559592230475229096404134894212438950797729208496947893320248922961791523448074669252017963725319743676557656071775721408252203629511217564597329070168221481331011712372546791081761884777128501593156932436951585355052134904705313391437282009463050729065186621403417386397968501216764496912026793449804121045611121502498242460183592926417615961535423603232268764149621889066752203272846256917270731222856041894247611325931650224809274399603920830898768647197498558985635277603017451887593311187847321501045337889734143158685592432265484166204691563805587096213133828204484809817059774707254672315849344640199107382817761032726695489242068202324320812604018536932424057139860506121137697541833704065072696266112452620293015058625264884555992356273916915606727703483840189064925106664079977223515338504194720450635721053285769439607897736776099212079572674418077467215517277450257830233818747315351285747144009038006866233073333877367162902741955046087347078468706073755240818257947170816147878945702127922377682609591688373672743839988251492661068346003085863280445575676846377276119798828133096140569746071624479958811106382918606153639963200650443407178800725140303084284055248189583164955418125440677932792979095176660785703821325153355209111063946457574745566768455018930628924013266826694380694441436113394532430932653893719772208116948095071894435395581112202600202002975316973757257770477406102085071606278791980113186457017145334324881917200521967972459249289484011610281060144990238044820808006670156166435564422574446584870823093538098262632377323226943189024472232753066899279081452032850310535434214514153807448444668183013032554561988528141938058664416559163960383753422985944812375138882534939139214881530927184560372342747690057991450456200964439209418490938658202000245686373636261641063380992660150124111691193831832012556254604895037479449765372724445123832532906897863768091115694895470578189232736096884186162208173275633010749017448428586604012028481175471840548895017617276990299904472969689616757825915653344746282736248572978812931753027769563737104515549784283152143263310569383008662355729021824203223944853706041581098649028954012518445274875940354016904162446897415271157999561777758070893938717813688033394928712917190578221417518112436944435320725112684779555915110017345327002892527844506401169177281117663441212263925866571966983048170665802805140912716423964305340836227117326393139910324009781711144508341923593454366696745160709909420384856282110582661222192405198689573949405164078617428797935798545802910665876829010487518143471066564621247664890178768610156974925363293558617547070790277088260294615560091023761633358803383440460124478418896320145951957809432617282067790877423247257382416624908593912617817434433082784557550656833670189840683540343839843031796859341541213893134937130746854047420796885214430917242785342261993975240139940684109850219447808681328314506891675142414851586746622989789827934366900467207112242830898174579211655650029104251806465894892261625327009571282413085143435303540747439265937473955999398466063533330623636814300033684677381368956084186481741903505605467610438853122433420693124259420412387453892202957734512049692211305875169761000039619729410503053399549829569841238829699784050354195132652142248002770165689290301738628728165275780091953390120425947882963384038209910195612088743886116033268274912351220846217268682080009646749892583160165199970104562051906125050814729110479171344295058375771307112851864827927472219799933416100142003231940958892882514385334738726332242503818133622276908545331643161741087121450468472965741708257910289725010769264317631299075691035607856213430293180844007259630098300948926373267665761083759358432167464989630650180051091694086922160134739184281827772879932083480515350809327720164479337644216128794452252546722564400427099517278601432535480187853928018324854843095224703033140497378239227897707392768409946527121011540885469925479025045964149124254680697271711358603532204292586302134823278291849509606925423461253784544012648399265078419699786331880657983058230319526031439627247527028858842006365264495242182714468431776815191411065728872473840207009458275516129821782224618830396564860348580691062364122698408338459684155585704927557281622193563075704131406866742076776464239919930576414843266260014990506511375006105589371968126447504804723566096552049915837005506258844642100833484419082623252065962673949136127421434481836452127199916926555410886506080660265029967489295041253538256550656649422856464238353555925764261159787138933682712134480154093792797610929493902495244713757676053559396828180135697846719672846149051432117552143154403044421730479081684573293047451493161104731524239961142182084719754555132654144631620424333206885126439348147432381863452650045923402145283415419909512136015731459914433124869039611376085159477591112097162014077205116818105231429721922426604427382243654203813615404308754983059970382024505531019224783049259607444808120317888308950390340372146863612640630540057686067524951948971183825449701784242244650163797547473172534324495206094428497877563523776983340063342547160448454855167813867542728668359519588628166303206446198290713928570887445064678387101043415342092392761232041730009796213431582268772133758339058715087415989988484433807021444482143259433813950202092226715110659280088423511875780834937333631833272551925733673614214156060399960347922767823407217352046197015491307013401953055426391950993079995070397370534395283118820131377786528382856420226304822782260373825555854691798837753570159190946742140916192459690692300802813770537792897614542930148192386489133110899239636603480925243710477126092190894754828474785376250124727510683709667087842506199342935971160573945975412743276946540606532118006984711974090679953491696689257619456709421732873437870793698524565645357922691422474672947019304830220897835792887733987916416970430856610939854956986079131785263346780211771299499120309636182475401535311783983604083772052088638508214706728436326494508740408422301399003588169015501259713592817144117684368719985775859893528349381576316218301129254038156734531916044402199159585217216706420401221026952893866665812378726115475774930459112654812411460240956829113932270608113096597267890768257478893182630732193796172902001107202175382815546143087633466983901418710403034074702280439585433196236119613205308245656390437342035587062604157246352423702825734503233262654730395432933994950744017472786497157392979329061313720490750027655592815262345799563503894358750449829380128044420949388355900655591068893243214428290272848299936419386318056903944723387398080848267272196362202568837073927766870496326561462404630998935697807064132217951151261211616722960245770987502285889760853207607107590937863870025642303444494483799143277151686263602254087045536006713078234552149516349407956394013632074721002785154402281661434860514938214654091149743915390534636966849567736317696003515277447381932112936280686246321417586053112105232773037997680403455172025226706987867900154089966078162014802113305311192272303691822049888508073885320305313959163274379514925762402020558578776023078415950280235338428165309909652473458008536994625288309144014870859962482998491390285799980119026791618110456737184959178254172362406188649598831300372224412651184777956347868073525372144746602713328615119691671404024330588235267347466045041813856131268542927879372268853858332759525772524553681901249051463521644627826254513973975238116952196683152839456730868174053354609402151123661120545749246444024838574583193207924469719553220840749159447822888872166286118274679831994016589480744734610252802266335947815213951448559281140497493377674216859209799139464174106143449424561704351427911360243545827524574110856310597898955204032644269368284814353338132831489886229486918026049810564577145908277627722774042313995214009260002744665056890211182431861377928015078854471771069233320999225449774478021721473490643727334498882488003874341469884249778416120795668353100334004009005586294671856535631032264867369667238768168579078753062129219436054850532305830052588842486057883413663425949565749637052221229112007652420499650035266920495429979470340687146493367521042738059201947674337196434322827314002264322481674512249324339007749998535513434495440320814094994084464564438593610653870572258285091207089050288175340539917802498479191368681563692470703561604677248725321179059366998190791610446243720811497043660211971685449618810783047775681280140836172263774681841247127969275707470963791449099878109151294523655509927405823652354456817149921054836283371875738235020859875619532552658881027527035607882355013094412893216076194607554920649991396347789192282765039716540159849473267759289464704280944267799559268936870502542214231634806281137412683642781618443207338151359109342034786440265878305368066981560280594890164835572000350378511402977418309962798213581544427070824601603778185723379988033954448440686001704084729675186547221585524229553582526710741926748070323338869661440422343645794620779703908894042086276818015077343391896599553896500447898460883212489212837368598336225051309817568638584122535990666722248686925450429363491247542751115040958087023567931031469256298037042071252631221615825576555703282397205093545026867300650202628533982138959455946165767443484256206584003296948456797770807247312644161560635751088732431395549204959712558159282341304882961799746839197555772582961823015592372521712795588701038945391783876826688419568673944197899679906704908197999361157754381143230457047103344146229105279774972191071715215983756936673241217763938877119958202983486615092304859589503461098713283464823695613871237116494044054309302475792200326311800362198488688461936666221382881882432653677266555990991189679473169564357064882691402733408632520487064143423286858695239909756533903054812543537320552523620730426239551451610703325042128232853920419739931630287651380046168655282553315368400608759366244611884417622281939005151684149490503083609892301845492220738181100950987133992138583507833626980048822140214334397369580634831230276340637665939728136813637729037416618952909682474943697656390393983289855188295301445860550095887372789912852914661734673972547216914466174968218036960682695728509348993886327230839711832649244246326754520814339833235622366082622386917456600880640729054374325138857195680565230314947142192378652735646488946772895186821093340764980463800604623039048114472664969229497773614370975445429215180519839289389499873198063904631178743111740260697085489914288099858313858086151624689424582712991211294899669575198009424640469012173864307494735861689828512708806602207603189040430262430001204934547257654232580376184000163440093390908636258801481890563944146394238208449554049885055287050530823433143061076594116160512958801434085825288675651607585898677256878751619355548861185890566738990082350625382110674993280644927597033136794290316429165514799579706128783401758167652691530431499444916202336435995173936965342576575204261550651270635560584934294780005957516496303668735755305761922611335993273324412351249151848747981645888235147227555509251292149304940942589421618465600897444614278723981230320125433974941945141962077459921569852099065566040905641232449463095598744382869951665706287833580404480085794716981713443565966232743274274480087266037586271459134534327061361240922047602024182860520373720675524311609761495378791740627653451323791953681437439448707553034437375582662380627780187202110557916222014199597889562123260506628876458051284782933844824069769026207825756384928354171383496865182853360286613381263509149127721499104249428737250628412682667863794494400897360044108904815155107034555106569941881159572436946502271857697181604849028252420382066343347633560348862303864811192618311451560706622212576123314657600967703909280490137177826533635338522627888695878367270105747282727839169094242362787742334414801423945932653378072649591557984025728413476637763421485260759152917463033490712623132135577473036488558337084372636389383491112999135207926707422489075175320977074299851879348271889521379155259822449431542118663232312155359709920691386584266389252868013176046347716423530587277495095259786573085365886197406824257176271312713199075801427701324919863186917403705961539446171816927925016881275725420714042795045219182812587866086389184752180401909334995194180399098108204011330599753532869583890889962878062451862730883212984041757432823867478639811519140594842974630782809756530900347893971205599739391807561691269619414925590861844340212349004941265188454456166395652543133187220071953288386264374872421854395904482410330458953631868605455946568309115079222318514773434066870486087679661053775410026776457152418494956822899150411843962346483711484113171023037239137937635478620155786630367572764047616054139172396096900850065480073035698549338921477588257327736417611306815851877727175465860133141528655599159774670450992046055658379311730331701713352729534630915308409736158150201376286418575547557984905818270767756221883971941922113008739047412872864334499339433947384003485520274805485802067237964684367124258061005788023598382851911621488751074555954902815598300832030236092532919983013507840834063704314828173616560290559691965094970599057815959666007318305921361492651202124664747666709139587270993580673034294052582374142836711000550622724059953613077265471893953072623796753929554505613935663490734169070160822891047198373760069934661554017883584146835817922391800852070191175618960807218910679734848483714743062943385554836197697325694666901235559470052240089292186299200566418306073311021357027400795006812262931480985539534497097584831048709564004332360809387523729955513986703458652612891935888560314968650448827065529170139554481146581079287045680892335018120469207133749461947815034339757508222453257198694952711227733773758432647207716731017659468002501973050665073774495595550995237192558802177200504454138985886425852765829364319273073237520773263574749114953418738554166549440597185120854575474473672314511386224166390446403193801508096048171552629360244622349906015959295231619179736815888588781177394100039219456962769925288209814554156640191250095069547836885449950840298476493729308830906096854379171648424190061832898509730879037235833847427385325223570950824576569881519883653061379278319873800820293455996082770986828390648629211376192310785929514704778130557773970641902323408138151083858161530967816903829438296225651084734174614560800779055914412491138785195793356841170342453933591684921710264598382334769576138864858130774672934562049405993035721619147374298565683114139301018000897030035391184019032274164913778794965935976826363479054288899977714700501320973936413497961519704775912261159295891205593582362651271957018895396759488346392885929350387280293063477487763224796586418701342657895486406266031043206225692007012066777190039514136907716642142707006416075317978152048544046323668448123901732534399522923687532879179940397205339137558556886450121418086578833801084042487605091127149582692313000323410161813968206507088375688783537335748571229829816659379462667830448336263687102630266406124445006932694929873863542365171550383577082516273948544919517253487253130935467990550098407235931175397377971182468569970645723911643647153671393265775287840015795356208367212569439734263955459411930929851893831232405678427255625346855117754600111560987623426498650780910573793412600391595390866491307782867758729406236867093730057301175291213349058940551854304374694954343037441992394231486953292220830411162795900796165424830276074981802844436017929553235817452080788022923788486081675242789689194382258442386269572757070323265364727699496999633833437861983920240458995548535593091763740137641503780038077153505466997126670179617036029596229375654452132517370695877008324821634589879302531237409929980453315214643731860103879510751034008521969016567765358607919711853920687370499401417771649894688500273648179467677608444139718241991941930914230420438474353476725869442914574095747801975730411494941268156349593655945797532772202492134726095658471963460321828022101502919894025232956493032525743198098436270274356981873164409927675518806884808455687430610369993184677829119137405450405093664272446070322470478745531445034781386863881394253100047082880861258735243322786898626236877720625566279658118742553912008921566149978376577869054801509097989441420762068822460944063688597833591563416711260156971743899509096829103417534055876893955201087880749373475232154034694431875373842903498040362690609062275390345726664015905542647575072583507557488251770877111434455186352839818805451582053997541683919098217392968985793550832776319104475961574107856196462705019778944655548789346376395073521579755100302264762296053746852192055450269514996565370935417741750002653130301510397144990326870343367065060847077029039529296021565881062231461764687472220552754036087370499723346658768249694704441244021917315385119781891575080768630400897266211994887659254370961917439137750621082012342977261385423484315941696036771942126186549505084895681927487223086864561712029799075255897580973211322676822556870340475175174032692288108909840426726780363833157248567967660596271287173008281315453108150299647102343494309937435503986415061270254438078312927350280946871532647449676537153167218082254342588124680550589174291959230472920994916905203144705626994825504528901376827516722293071183688312040531627877902706016474042323755809681459486229394843923362854570003081293870659752218885584235076410232582863952044672304322246014988810930882241903811415487542968985019606759336233644414027572085140644587938665540889045633612127497531255042074962570266312749752854932196775093736111641282974890783435500658352927714547027679327042838946228665564060486617938150087584913323807764876951453909636232676387166588307332144458397490581231015836620194448380570089444546471303597541080182650465038088245878522503508030720850459628171606810729422089947350207771448698812798377570673506036006312205512105161447603097479943583418610618980485369262195864009421972591730405933544805546628534426310143976733797516967960925633994237810500833115605147852341550120626414337341782122946116173644897383472346662272477377405512096183263917958535998058065508001924670893027320742798195994200355900374185264912308520873122614564877908459977150623167337057730534051620836735279788171482222095336560225842015564496112526333126695968069166262437884737808352146759973345165104485182248824359152918021955618860519490248006768144626407075175754187604217022624877072606153342632139818342763090849664812409842180946367482548615417201008192614971277342488673076615886094994207418758279300225909482638781360288491671021027560709460983182116571825723817585405296693823520011043934609648591965776909279881673877133088993635981843397491185843235803855369193911405122942025986721469790757213493634446416206030607617747346839236100489170995122438585605646117825483385967990718112357095946601347186589024629263130721162030062296849480393717591226787041490376110543706299764053791587471263900557764539376719483729365222400144455302295986326844370913133219194834803281023638717928067429308685848128202575106388700759664919788896126377561911381961603697920009502894973253001546683960807525614076636199092983093242644703637177752320432973146894611550051795585235016303433739443160056216892963048033918341393554099600326201068734024867717473967613939941177349496814593706808370730068292992707904176791916051058995713244183326945863370326971521698678223158471242001667838424595399113491902878723565111937365288201643468843607836941329825808168462761783559497764687150879101764544503782842254263732587747026304515225678170470687883137443718141364524703409509831093905714262353721281513164264991599577902493103555467190127775194509485139706607915935016645241562351019770043034235093996612421762573874190309277225089296890190598163660949464470779212287673976823002582859905925491070800977276740799330189075790437981258014376258948768789291900793234616895052296790509877126816477742990760082577979235824218365158489549996166743244956454408856992432397267893117916386310279012391651383876719384318301141479785568066136366827985530436298475000356615040652226444670890679052862582427033439581553778348050823865005026279235043117092988939528279321326196654615310975068340340938510040808455911631347593803712064708305387378487398172895102105022218036041829500133751185115067255934762486228503158479369837448890542636238607999260882431501539397766168274408561408460030260604830566390111753817923661021937584437349990530440265302695404790488630655963843978313446151476365395154897086852945208924764326888119264195466510805464561352424735237380186423285702883659572887969855679661944429997756510736557316226962090927772156613798646568564679933827309369568183463911914052498710242986237486493366461376766795532332136842689576184727926818656292657813865758967059855236543644548688832050129380051959742152193155352183241029570609302944337656319886750376246470121880026581306655718554523721256035790435768577461789042566790402360706915296700611352818200303562785015422330258670075883781613855580246394561118405808508312424481703541979500785557544090699297052412139493821871836702076304675699919092506174973068269292041202711834420382576416763754630481884681708701371998341500755222242714101598147447041781649183874564878602016243723957463858167596998978152555129560552047901353259060120423379408189952031126108881319225300399930451771668774702942318545069194412138642923780556972216549647732601958066924189850523714203286639556569271232031234777503311763300131936896321213811013309951246017103344640618091214288996198933154343142062368812143632748317579881013463906579788714232629553851089027422835741701368509162905797425604805079967247015443389998175438099629482978961397317779424098512499883574722138917710218430724199760843150205731595000993596489656757455453993791386840386589932952985875297154102954175695328035681994016010532627901429803755186639141963077816936368855473123710676928503040255888251642773469250578791441156647467609967275446148934027517650349916794682064992904426263658005704993757884735346634005162344358061770805298829465539230344739136941086245064958883085238703085089877229985240923702979855048054623708775990797333379845449774766886760916953462666274553443761991163150049249632135206692616160339231612636265733947938140795889958486386245136265591558799837300423791561050626034515853689997314860421415533408167212746332145099749623605349993795993637691700966809816482582596277436683352315239063362672966809102933360229574104476269481677605440124336675638924220450824223253818161535748597286155167457723605026275741758924606193874486839917519659764790677813509732033016312186690202794983164737765905407955845730642569035876700517864091170904889478505708941951062449694100654212348189023471785811594757046178476308466793080440370114020706549667758821500655505887095764432157831641122276493486028232296164821123144979752692621340282223620652271590187313130829748040200492476745501660302562041622495677228217393949609616027896593098550737171131462788633200179772943211970412476277392073273338972403440341045307818707459827853448090155097172484283045944840446291254430203260728751373308346900231329636507372359713628392692443355660843247088661993713250589051817638356383238563113159114805218720882583816961463286115916857488324516650848638003006283820895203296922743740174346009651449686091988383545462750576969107584730163730391454189159942021592072146835959794483550638495236933471031870241591685558171998624667555344739570371195975327118532371013752624847163011905601469908979952330544180624337810201985042800200440584478711473443289181816094956850200877336304144323749544647266794712930873663018104934439347752876075027539021909635130067330262538171299646753790483995760457395921140130367055871859948067399335348982428916367774759991486202384875958496893461186974371259174609083721724173858835120632871938262097231552267764787046153771406074036762931244726375400682726472377936968429736109173729655567060328583801776620995758153934138542129502147351476765455704065778440492328207293585570887540215335752240613170718199892961278753794990786677675265525571848560270651271247616125041342645390682375595033432893217464164294471990063358609547205791275944468839034933917486576662639192566073456924185124421654009358698979374712574063414262019376019457327735717721808318064299004898535381338730974469445982573968318572353442503984828960354061753888181107622134869886601696926638970538379846816791019349248154726006613153268644764838865127110970761963224643473142966678170332543476384149658642102916820861279835034517163005295789804413309151002085263027278588083791435346348268251329263563182981691832141962520293048451090170653699833207975376677440026296718712450286654862945198411973905030815604239642900558176199595817989501026605184312960574316743862117650372157408834352545027107275218544216862230688830044026182998699879715782287834907731653985488572772304920349693429882887464042283431559800674577728146373605786105755749250012363240647521546070160421958284460999303498876050937918650658930415602758404525115163531564640923048188489947570950200880623395148888482985105193629753396148366259776528970678145001947765166627963041915847519205171338944460710388000922549923373919887878346451279765106686467524852637142607969984092456537461886868089316885360679896345645446043793675582809355386474727687344782735691444076997559757888883065178169148697783386433705084900090177981262768184891261071552095448867133686227213938679296580101048882526330283325064908018657259470361613376144824101276039461573198195490191581983765468373358149639424251493695948774685796412060953215359319322983890013258931192447880835150515773460082153712473297175411633940100794311822140255779130272259699703372486144536892039421444477016947179828108833968524336201926780228518017676931734524593210938948004885774813292064384425248591864007212972402919786323965885830541170291748566179071084449002338817258365579224371843916012800022598391273582016113834367376830823254671944208615658205557330304900196223977618554725678950641479556029778246349064671341476267607167759920203168018107833896369870093072689839837284989324969581107331674348362662575990450842106104953173890150497120061313983968811025977275663974275305058133736137595927205979328445708350274818339268812857926202722049596075846538315480927740486255270939723395143684838950557089389345745169166798711885594670946505426743262045334170846100655842413247080576522625913666960745426901414307633524165751986488038616567519898782192968074780316634566661291160067308206607492330559873271181425335345670651607907353086259310887154476456040479532043979873901336973611610447959576070431965135504036456570507479734343756687335995415020077948362621883468977874588794660781932945306598735554541490194822682740804231864454211949986918287288126908536227986730043958545659184154331092675934244339204636942087549076598775678415066230640574790074140621240933881658824021620552146078360049956695313941044129351344997885750348208672959978098360054346059672606811980240589909500266899201397759616531752398753860558150312793767335078781967904530284679779817518279464338867715838147402096881015015325057223126127579417176042804258939311842983569396774742856828734439295757679147836597662821224512004348311043263945007187968446174468571125755628703964086821948541876899964524203970920767844630987837806074691805202268516918770131810419446784669048127993899083486595590525432496089473159876297634986819924038685815731120582824023411528911545670849122054544962624376191775790864261466363245982820558268137890118590818436492183777318307098376817681198973038806830027360940179506097892344169671364605284429909340643470407790910796395420936678750815344659549874377536080600279246040435696960187514411434498355489714569840816493247756627986345188126864279409396805366142218586682764941655043857247029965989679130233561581974815963440583695549766338048210738811296304223314183739709102770527889862885475513212611096011043316811798863629899123415050127746834618655734767753770324669021792354496995187117312323819137883098160667696612310039628603816808522714157172039698775732173192567414342393970044361507621787422528558169570060056612621350369973952950251336834157826530316958612865802666735840124556567240249409040149077717559973620830125219353773636307584411370876668305234827083541595480537773404323780810993766619481302541714247542404144434188601028253223175270319407859401640486906112571554166084072731097030307651172316263869551124453558000227529075691156028729251973814374817051048795512624523959005493155969628592954893940683290274510351134681497975577070041462618037926717818348788627565670387357551373268670751640905822435036188161542389052728165352336981641837147801704997446941140991995694751191066679508522535468306786859358502196037274256311767000641852385400603177808735600880925290408860475022939386512384754240145080172359221222677570770759239100838172309742342779007113695520360252873876664687327649593529114327315642940502628325755287972854112280978877339861320094844765373969077838472205657391375858764036063897577430139163784464022484627830818655389613323927482704343163952817364522678887356213865067329177260858643926829451527759428826863045679510368918753917682281093440501023695185755001624354832456838408995428913997376472324589195809710452784057438382181511733066225165950685805009459623278665422497997461139569309096323507517710629704125323167264407695638683355552693513460536451674864287595603807335386342368948878911148851659550766443731001988433490458831592339808151215991579088327479807308826620046812785630469345729860820237523432533334096577911143355211820699192080551407734591910012047699401646249976043376158379502803499093029169348332157707262141383333143886718138360485064852437584042841387070640968674906813311059780651310327152171065903135976171249003000422544166568864689202388169278936208155678510765015493040950595585481459083909579400768809275093111046628714358570048571092936540235190396363925656753053743914289584474414346755181252476136929679009151749352156072471703765136663153197644355671301297740014037583976725331144765432498636716544689446915934883409067674715091489154470139295540866750188707849783133054603683697456863183880759588944486025542153449949675067680638344845964302155857843281230930454020227381974421370707290897179108147888391233922786823672305539291470891811673258274272911454457770805996776828697009272077827470498079407793683130789277594171243715376827088164080005350805376629877824648393039739009262585400715592221329890794604232087460631991661847414434169198746921602452321797224489495599482313524610458799763521148616247421114554576513252610377919675225162889291664027584725410298784185307531257618041865296604195972692101269616390690177152900254595388447633658371515917957393361099312385285908243485261413644462021187235228859132186128490682604965777343563076195777381812438425188021997182006689560380026380471000998631513862868985484473848125407490885770647749522532432245898053666701508771596641606591164414961030692764980699215729386127366897472472315685749881239182153718149973855088338674096757413451219190405640224399594403260839940981968920975612087540007080270353924888760937391700791594067079320769087433331128543206770341238431929015205431886163766319365979802004024797000044127661763495026971281398065912868272226334354588330387957557334565917185436545104286757831305583443110204674031036016060038160348255901319881892901400994970533132277611095189958805837088065428565090284543107629816682814623866025261784149809510280430022596506914080840888970464063164297570908016719659773798429453250812468461594489094351726875740512377891705517203888925199606802633959861949614697326624876137262933075453426870156602401609193760669822526052033594595202723760633796594894509054564730427585989016224026614927627456807037365037994806551263756782298229872392062390537128230516066576366095080996437179103402853995971030921941548560452461442628956227689256648493718687268985612342631586867253704138254597169350086678328126020577961616164414427262731979918987081936504065008055327441277798892798079046763957226064189105593811117238804473312929829277146535541328041514416718207553694300509021567614782632918026956575621757476314439225172523402947364662970177322412750710371316905402194507174404522104124407643708625768070842409746190987151962376930064285531313774326274906224468365140602380770633001842493621438136579711407658998472293164501752633754178582253576408761119372929515318986705352462813377251958364995337099676126974277353144782092909106493168247538833538873396264593146003343905232391909122156231192939571697651906814345681062181529939587173826308478425339656588325618881018083585508693716452435984641446519825602316144656382116559337686734806323220217175089701421599170360400815949242060554588192965004317393339530076690957529344792304858082896236036213699493355724501112484481069743093088610358465840497318340918544503284732716355322613957055273448297598119847058728380697891052673754144685764441683667838110631883051652821522847551131381221314306840360446654418867024397705707741773462496158668595703666175690012332087964377731347359373653982150288789360121728159527118530525222026381058124414337870697612901672177630849169643171994545770172256293717723111164905847812590017116706497479586290474191779401678124343942072419233669992190157485236697344457958869864841347844040930330877107112123467204174784950594874807750855186887885376584693253911968372132432757839272664442332859413037835497886253788868744737918085977338701470319044874917223867513435545117852046891011209146620015525333801507424967543196234964235001530987328366084738540856148622769255589416611164014731282422692084906138663889194331877018782098150137783898604160006998869020817487421524180858630194821682048871075203905408210030679628805473673095173975792356130547182401865042057772184132276293389236325984704193003312413775717610002684645552119463519481099308960802986206124026873620069027918859647372657068488292502579838172094185789381239083659854019523693689340055017311050825517719830201217461909582018037860528918576076682792621396461879808308367280488405041515370750644044788755874798167278927551163222006358043810627082261429622760507633800738008491679773162262713228531420749583927694856592804601989666160571603701150278054298587342652518894959709073435067924245567480556646895497529949555674533706531363512287804826052993393374377079184141675206568141509440248646583876552312116674307351232001180935314853390531188492231786386118628196805957948705191083235977962539570863065611702934388931253977482204060063527922532980032743540347889975346336350934814079934741715234647631828788072528706994282894374385884052417095312020635677959117430270921218438213401871587597317881141704790025131599216804768954835050845296273820087016514675766662962454966679590897454512560449687824247323817026810128242054489118914248552238172308026642700277151850912649560311056973034507795863324138772346289546790883216436693700629068778714169703779175913784780824684308786865156120219533345085347588337487077275566023355049618261252556047004204633805405431723109080826020491394167694145583744351711110886341914321891540544095496676858672065759938190873697230987118944217343830105832883849476191230461854220868124136324472793339129855883851505499986603329386439537513623010444677303772088308558043983226613770191262038256379043039177676936516827922080852313101307203414305297813871361585577387511823893916687746477347607373124515495122368701482635207388967154701168122163206612174476644151266608615691437236003764898050531097025638278798396567894408692769283146458973837170055422352898122732788347716410871187632115358657111114701695126593288135948325793134428023487073439301190058965017800699841112769936026788185079076366645815793887394448872862890980460682873002446815477048825609587749012646915123591363559553114697897310188828640555642434371743149961515016573867766487207376727027483012288272216212514867187977751696674072239778175936157096152974783711589083172175909354135358607376850119587521716080231458809692282048651371157638239474044232427034442451523058512322681189303920134952833370664354757370696510460907989564409061085300166837271764554163219662072678218469804528314248856391871484787651641219789919612012370103120368668072567106981398813388385249924789578383465595384430014976195858394241252116719064892834889574641142169649620716254325167743668199169356822973495320314771404510785351573381516516521061715147135698279136448141849104889075403946286432686903220647573248654388238267425928743316348033628746153491558655605319255961591570702280423272065030768612010309027787646864072645622930369267816432636917924979751695489197972626928076342712197629829007449541408204781420339692037125262778677115987712988414218150222878188936204079163632949676235918712726230232267050561883266760718165254266233831595383875553365353811423022967590070892311246914235208039508194082821801688461095058930328772757834239219469311975228603404941295580018865861160348136677128184475014870263907371545687407427711011642654855875287407467680129571954372380089168117991219422157037472032127548544646485950334761089344983281325573448017668628708498053974535491734386238522746108116001883237932544213396936500855674202129983934363098536399219391255396803473971786759064327040343564912697646583632381340552598875531074548886094116904119684727616670384399790679962119772954539225388940172153914455085724217480376237639435469796766139903679355188720682614085181022897181276167048717537763739436118087582636855074595260205883235713711537958923994598037330909262514786758259808315893694156313102037488117449360181223727284140610035093532230090116064982338191042381253810684480164396889648362474665963990936647831611177594807138271368949294040835438590448430100098146751692282618202970078264528879899814125180706565752261218013542915603328558561428662005690781688967242350465282023408054773827574034092658813312400758659905586903871816769401546966143609199450584451131185233619420681612040731592681405132797130143113971098088208609201724845378809663182015455047480063713458190073344501576700522912906871014368069295412509636472126479276155523780442361425525166730525335767501397574009072150690943402208535746573308085892662771881335217572072254604409346944537921299557411634170183063751333085015950732542549972607424916631778990629594176175570249891878193107931194144522047977463300740715384661604623365167679402126218679577188380329601221176979764775568183167614797131272965953554562907866558908070245464251408473510760998185771965814838814844976882231286216413667835454996341209649175301734542793783625352221749234160327881166985884912809286804815474289143973717850303236325108912293433331946037672920221608175895637179602658151645858695852350400543476821403564058439748358278677412858726951917735950916355555124951736323158756506417098519504862557829940952788345845330815639521630739592616254570284177980277674076022834863604629815047594835139531182665055151802648192578940621605024396576193187574187816838394395596058753957398375082395140475747509731378043781920175294421548673573094813661952843963990745439998226656932714014157906703866787962880581679603192436389949494948250066691097043710579771995746685501379857000659034355297831515246795071207864199190277656254524140842855108315466303439033804294251066026552684465250150134519651419050309297850952702421864132920528084273795520926877298101740636037538782897970289396578639386435558991140414455227476709382905942525121350484277680901255616401669338077744918639530482947212792087363577129061026343749224006891510283006687935738099457822317131522733261514652164777185100996276476422186191041024437801040993109459379515155946065657405219541775105838253041980059551057220230388995519414147241623304953741630814989537576798635641239580338895002889105544860172874651575494903262878524493295771874328481417065017087425209134550698360354162892866509282368154562921737823853892228412524404799621655590958958171513065241248310724932637942483487603925862927141400930502130022702939156779306395908289683729295989150921440485719566982886136178509716343151882738393293614675428494112006188089006159602075699045788190481078636167717237010367698456416157086065249958190728652269010166932653754189879639996687215302324092213892049078181749617176017359164422056260728291072664513534068404839505123717926387894646736677606464316107559765752770272549034383543674716507648037052608799591180010135316631747699986131385675875909246582607546313869083961978155879996191871776685470391660618383127470741309326044146384930150341159456756080396117573987273820556613297041383850402323965627570997102570927001949546109721417490832841756179287547454368845903811734247250617998023334693727268058120780296571693687480027901073495920774519542379553015659214371886741468619037502608276238063065895861665922711680024522174590317422927510075531638343414847266323817705698061695740369643080907735820185697192613544079280461664674273027048239259859647688407722806065319155128257481916794229227565181493596804844351020809528167981929472495546740824209186739815408383906484231806541922742552215993345995615655722745050497651949188199745985848988116055390184562322443249375529561521227165567705784172941773633157459627390553863829236572081567954231461800375621184367235455985306791210306384589308495131538174249786983744538774903003658097613913583905896277857236791541117715132532983453451376046842447266590283161584560002607592373320019719235517109586907920416144208101782739017222802206065502237941237198810552155969230045984951614067411450565122183834555580613617950825660479698803645512391070890113222653636511742750163828735989941084740028222147347283260053159531373060530397394586315725690172624001542696297269653726049009041086114531939037216028512347785261513631682973266069863729796524643864925747003932556965080640233846295242980077119553359558649838011952378187954663373299787956502728862483063514825771090274338690128854376131153054072732159607165996199928710631479343803411662780810111769222664039014336756189008166519921329960152904961933663957470885718495151415080303219478246907023561760823249755118147325153743828761734523439450678355992138725608305976515152694002617201908360500508374546260622377396002900297628410171757279536783101035054584656601323088705736103643392886756475512385997291189985902047107083725200875380708398410122835457109725437471998498468270074618747050606221867901479288817809679735480273913850199490252470582001620923425621973877553884105538742961366401673164691484065706776676116287662802254316671375400681492605614123344334237223672639585609818575443607740083338713633097854768463272049372673993733180055227570819618046988749160312916194737517196266489578794034988019928710623664419484346118453354723954959710205260647319839810562694340018490443978237388426834952501803222807214948662202933344140730408500008052059078706266195335041744963425400930989251452829627182834787842650890713712842895987452616009479810777069589405981139206927955919932961016993293070085725117373806596451718168330882739769615016670667474160647368413815420353334733424657488533397164696907738700077736215571526092830763820042485135163859199443746623281327968482450905411587848175634646002571297654358225323071102750305414022478605568366970178296491190751290756199081577394107592908833737778940374038954245307128913519886088999100431874502383467820054970718085779079780006617136679885576871652134035819177021886647563488712264699036454076930273665164390345612313183717965362638644018765402260083113992092161624529855188671965260053634840807457652154027058261475449954217666767914116288723293199440862410113395855116011455965049863380916162108191168775047388117424451137684385060291825609869714221568861017192308456874312087035849659753730522461896347851984446742909550910202873800317623855400811002413109635066001972702143765835840269485278387889989040951282972546520552011313111293510775636918669492692135571015403713679341872342217310519209195107434895431846971611520701404078620904925888011351831134603369113017068888667661152529468330547840295603577949561358723992713901628382776503167775323948672070390520087557017172107256318680944262659466145501586727036747497011218983608315300007233240027475152577454856043616568494555816968908477863743693665945974692730138229470078794704511006096940822171119992767732320837503650728413882285686954174871390663973988448409979999912403432624746949796738986530106337473200910744928013685809680624211354344535686370667645203730050785187237938073300322942316552763635627942982236976726259745932182232521240531103745631983679635673332684967003519540696475809942006154727351699636419995744870786752011170062512275421627721329791942199510935917998692347856612811001987046024390204163009592995594206739608531673633270085711828171285304421108883068269438922823439893700128959217221568418483555585165446189588478983933367682149647938433703665650939846857904049719264039649569296089553904594845799159780750512792515325009036782957092583878505826483855329160620588037975045443210933096301270965865217337003099628385994685334922117063273984910516081081009802855092777449307223181953570001180513327194700969760151627872082213126545994802527874919643422214695491055777609882755648411008346659185729775896929513048079137063589869910839227874641820781158752580168816028969657096442620604669199857843179830621761289382406687382372494751156869644824382574231725552446689261493167609108418327921429365999654077773102815942495935021967325545188702376431087567540978552101852556821416991773230009408877376171269856281101298063409455791232043391675847909528051317797736538145262635465911417243942099480368023043597783439759721855504184608376000184632888662889188788698186550636727468956186356659920148502788525579783387234087936099472295387570668201135889542312567986535302047723286475263658391974467762446231930553992162528577968793162313472232358891176247861973539761553866318782503059801088175004265322204465297156790864498741049700992386631394385845015541340791579326036162885116780810217062913379958261652298358882613691019378298922298177404355516316249065597861279866715020362520057925672076671873275702842259212664175713024543195441499772310609171972755294537772925751965088099508103705936004930202728813057373234434107316032377642224544162135298043997766207527142253871423870386265650038439240270399473019265746394583042769111492315649853338291816746261151576753787983802590084867139015333231156695376028105780562844594394334429335874949173482584549754026231811404182141496969692701183001761477231236911567092778129725801722109547293315088030487527411272651458002901053521431425908562995299860199869049713990041654825474446330312077020280497741393573455713158904453309430618471202264875811363817247077327179453104908932264149927759198769264929259975102328868866148295117041574586110765738862110725043216398473920115165895034502197275440955591715280507893676124821135489789859887080853882667914680184762013073771728866389021556498907061183103157027717316674594076288506261976736478469437197070734341079898381801321534375277078968946991225639772152044875403604486538942196741871157232184945556409629685476331956448265907006519658801946898055036243797758527736529838628490286100671638478607825249307472757641710274082681873542422597403172310670333800618805804130009487510879125402778178970562895075989193384172094507328788571506845617672985614101437504240040927845646899745089689151205526615246412856618397218947057235919652995022655926072914121180476560586245622442638895912491506153036287683855433177445552904178511327790031622814727242946372128820567650306219317479664039987584225526159958662268491005374104480557923847020991913682146751075941231317204798890335222059363327051632457013914011282447997754658982110905254808113539790590449783197170223280293012203085043791322450424493261737084593656671380683448852299185319241398625990680180282814395486131905469486577984134134416079502150100080086023463101148679379157567586406402669941802013914853494569168470483272226753593391750054199804235931858693854205091103774471442790407518807025485876679498424446459916102643834809753911693952419179106075071281484841730855239111818668879470699544400703465929761545376478147397893469114054389937809089828059702100526206249570955422215955605555169136275328621875324506572187739795204600214226752586709128366219448821963867472053384707267009797699564006170168041738800409579111981462545224884774167002200698640101357444046319122063446918995651605871866481154451291091116046844064024538016105629637998142514487360026528147619715316307360143196027139586521448370343124875386367109862467571443179771956952138558515782855972281523333646588115652108277471849097801274422747072546359913658122849892413780367173821762054471736707033857071481166869276199066937909661939050691904669811558020157616270562951087535631982157326385472193931161283578397170195363221238118429250937783269979116334369375298560250994987438475739229876318608140665986321115696443811137150720915897119808651478717473569295995333304507133069627974301940575169730159372857931313087318160949424922528974373758161633173134137492638948663099949285469216900928270971311530044601154571719963610842437714053170717684671447368145754972510405404788072031984328351642582735088686111187862431457777970527364254079304834459569914517510305957277358015920648145693303248633137908439115429343767829764338631305493051915314684688265912116162050907934823073091549731379857373224845614682047432487343610710483480665589870962870193197822066442389206555068296745006571309092664173541406472476417435536005961034523249958952787027141687934993401702510253031020526292357217279455008477181940034364967165102545001669560857917051400678478271985034293029606515951280710318350954831097882177287397876352822260916894627476404293833171434702026680781495707731559851296947004761973914374163927353157981124643602679782265678431359604056735593689737925937955402702820390820197506908384091954401555242344466530534577333639497382667939616934712878606997163078808195141695797414636913771647563808057991817541275440289295550527389847179213226706289833926542817441842742200949617186895511670260213910474417210142408330105077335830646790249574266909102977866920749110542890293070369769655694943292355245485486280412435899745043441581366964151883788069952753465945854130114720161876707390299456247900274780033050205884129469723063910803578209555899505289841296413859714294170434311457568084360469120386311541536504731213757768609265515966099660530245378758257329359783851858321455590877884159395077655159060520298692216883516087036936055321787290345882711015082122266751508110129021902570905112359230698197473139958303959898797182681367214432738059129466430444596783524849079731875482241919299846640254317779308220626753531887778602563046989728869616986087409263267572848587928959751848149982618064503573301850246750945904731830668516356899971305496895840280623530951369983803354457616942836448792031299133608820551123971810972064642731077603709853028101331512655810317153144976082514826898006074926705056582791997201353748043739515330050701292281108707251899558853917044452824857988114993708532481608554935542115916002194026014064156557900952752480514324061924997089430835509854944781596036079611103220449856207815282464734077786767419786318240320199611652269748827714235641133610861331299983061544637613377330807722503535128043189921413958299950908124547990979697197617449934917559388082158412677112722783819762753344963155921626958717659993996403474547843309198960706325916353912738323614011521354213452702363274604228361279674810723293814741741265257345484911079646660404713580598112055497711242589777173965494987634219473077431558149056342795971001440572209344474901963338491262725318338084679659244707652039906898666032873567521637298132528263763796487102378170331074339569877954753226685092588042053640081767178021323714227816238400000009893691429680830278549412782343323384168984972801433686738386327994041013717508761532956529093999523597765329561986667901454124305733972806385058844030800221743930963362154124006984895174336862496776511635987671253606261331915374683314675094003048394494584055964256431345509859241827848051313558508030381227750044063943920724581530542272496945103015639118386861980265391709740238585751695902698167688754611706808071736645577258645852153340158900270449447058485639603820831057300409242945067107919867343248754570299715113254683073303679728725014390106629232647329806881901168278168219854944401203406355286320644070124337487040817598906883226371475042401573823113158335467797762203221155518588074857812681909327276081426611360999224054331072349226802811749275580943687543904224678373921060946321948661879028752704725144546612524668296701571579399347431646853078366575910185690507880807326935918747577132214586648597417758923068991757544041620142150878310422901809511874785509049636494833954952345287858443190128941939097977958316583334140010436200424621766018405594018161756658336291111017796066526518256134514707733941958796902889907031726580277127649295684629319565701689534129097598302948177322579161006867249317869902345938875731087521405661953060217415481770786860497434141056761260415964047936125752567789987251082137931085417041592390147674355185436971553846408392912725013474668646732430787654727772293575226672589303161252279799650707207425257775619942101701053813853917184966890416631969605250959247467247677445364398351047311443061225077321341876503162590836139766601499750062571538878594859841653526883446358685353572906928324801363233935250909049442277131898984911837781087664210324717761145008373296745853555665023234924767088432780695808048990773246856507681830306132214290128484804574764089611780491619460104638098354337079914026698329175603034758075336239106935295661312438756313494608922803231792919668509631751394209747959409859710519152810226167218595749016990343010840268858455271141029912810939920533465988547455314498991748606435832633700600211328931458376313528882676914043823622024120865183943332893065097626680659274356518957248452206553553362925564857396919578468152506533419190923147015965479543069039180719208402723001993796015393518013423273617506301683864619593279311063951619807178090879373176417633716769346507433033514339799438476590399586935550442020381623579921623404852802354497498138164727267231988179450613510108090849367740896415092975982708662649088059081749596053996025564152404578585285433710311985449190719596611706689189762832189177450373941277152026639658148697500248288734406725600223232864031376753048217077669253843697603350517428625212904302188121957902640225340712432370287346528253634720191745520312004014610873197569392930297385754146267359099620894079601641640564225755813383995791880637238211913610475625525082797932214124589077946775290430457769719371924101622273569369741068619600909158372787381239490255574122393710445898751940828766941528703268293686321218072075775885579209713068306651826553056656670102337507927745552598007184007870956378348901648777233533531274311282745512654413744619757052791401811487766745975398695129012830711638352392680970616318390861998397280289165327145988011087215067432786141772001035374164316209831045759289681609933298376080142897165646758205928338131496565000414624790049156588091740168233092551379854015940549809858778567941356697236489836066540078464603643371331841201566819984215015885168491076892807557559975840314024667507481944534995447330940748455571757143663977335087220973846897061859969753282668469379854738925559587084556158832532198705602220088894094893339808010002855224395942622048177285024736513880460753378071310180343132525409030749927078469323900205171511539089904387942315789655903577974375507571224554044127303872925169235173999300298888414792974381244200680860090397711106291128234036820886084737712663537434256214284548383964363549072494710627301587835437967161399569537990028834755118730954466737722070999707947362619079999210677890903370971564731983412366125379514510598904566186747526188460722870981863005952532368649577564329252286268548396992072410074509199444374376051114553325128730935622883416556609657176106804219667698271963269551232549923993645436182148526566731370616449709064677899166807789202315036559524776571256190438886582694068429457167257869769600257987591992362084673385954532878404867593369858885715658506296171346125478788636371964238025853113146087092395488654908550185628766949051268947056198405351997758027138952626445575733896068121185925338612753235689467894553904069202816565063288601832864598823015184808478282786570720486035706363880239391004707750117452073758802164769555038226053118259607572525350215627777975380108954271990160529489230154352200856334788218422365351750810871427350334477235845243413844541685431578221875213520744864626171264458375088232361090054253063303265910941133579564263004995768945324196542055118622292256313178302964538151415230169533546776116453508287070664134121412980903241190915813205927752748238628263053421661554128909389699199984601962879108346242135875152523565840837094129354620949903479069571657918788611941266864315096063279082443879329377467930749816365837594213161790123316016924558230934689620900591305413327370700088068243775288069216189457170309386982977475976578536147373382923415146320355716242523423727016360249875909466976006005978472147438003467207322099587913839295360615730187708212060464350876869080622259958635270939062006662287719953217395872234423964898686167405145036313051486618111519079458919896474738695036711776997003459694447420688461781569471899698877231811133071230949177820153268543604733843480088112999885756844770758972205449138866346057486826492274206350473096777367230894867944983142864754022471275259884238996697176670995032932659860413279548390156957537863621287867042854554438021365306711648777385137540552119015907395258845261074627554610386947624789455628785300348894712254409352237758308701391737173998799049163636592154163515301076291241239362416475682338655686521490476484881079798442748252621052362295891719844167334278201160650275792673893156845643332004237406419165023639408460224495278038856257789917250742159681918545509353660026866736771395891041743615914206691017303966767052255088423283971999344526214173002173025269040162002192246576684577525030474092499649964597918171595852498532300760330946639430505040579459383531929852132591986173184600539703439868204206444338471819063726045094277914219511367767249727884622459678007402893650469804170905822317486869050118145402058314453415248145186559330635112907451042207014730871496842004352927113170260880700698297056097402098377805899548132616736683433691201549819132908100056303074674211722790534325767736882800306019099847665732911754275425732775868892133510452633217482562020929682051132712934763221642752601346848335510897054390459308844627411630229977546146474564666435562845222548754937033536834577204148405082308687663175098218298310112486018376899165003328987561273637145148034626007198180370932360214535514201978809965019771621299104203094584517268190730668248764173636905217554522071466834977065922274214975892084235665112680275258584642289707563627722972408696442139375777334147340248206923099326763329747725878409992781694557693089038246903990883418339481060710224784048915628100156609426020660995546746359322103627577448316265783197979162570445587939859749891706908949126824067631360552807963985007082766856047853740509926026515637844844937905930138410360981636264547449961441954862762183685663511108059516938283253767240370367146777009579875073582391421800979073770470521689855073819358042242821346555612733184239617973825629344767591842643225390961175796686083122086139504292305108179879649105335347874290477489230147042761350818218594409215856839398745512479382559104772898071062365655834446733347604419847787606083630832176689265103559822552727165922782586522002762127823538185721503322812837360079314967807613063072698008463015916568705276722525564402251920357218731173225310091424832253710647474701980479846176505294824651463387105606535782294016033563105555262123222560978440878695583158194428163244660957237375244650440632573287700047554005226659001730876540231563023208740431344318781674688383173604436891850547427537360098796920677667930533482548236384461745155699143395087349479521483418754867974435864419882751154055933131865460043976584559366622698928325930650853621599504622716316409724295213044900134645045494991088224796582350833981793289994580851330698933970097649887646158951853944975194440017985254544715227316967902138071581192926700653333828022107071287030917826255043701596351599251684323977207340747609002127724064295951574425626349010691678953173911407748488588639587625345845739898391882268736952842579394314749467496774715027210674202892187374401009426515168061403444552385294270698012015960443369492803927340625802298404704398167657162099832902285337979406050505121011812175559389338515278819581093161581606755093371950202229613129100698598650134577963351828874275930203199196489461211338092063552010399517578600907213361777584699952697183972479921460095415966168493619659027759769901300023534487869082834411888447726083923420030204882871189571734708692543663572424935924199153367014277053438694320931763073288999522617099352322971865979513228157597636023600560657386299564202454146308448349251624153016850070324113262298824581433415655832099674885675540976284003803330227079068381782782505429229240306229259478506405562591085253283689869907429484858493898557845272298271663578799021912778305059643583918137131136222874103552259596076725071078408289780679722460863497287858456413886126371476974926715057367028023004071886183583418861200698220124614985984142318275089122195257986245872175144003874503115784727764074374788941913292115814712961638991511501292472620910950585537065595404684013227740072874475794940972959561185288340045089620768253600267802880654520765150501512838790564743859347817365106140957310706259014060651657481168703458995009486961258985481502568252255745696379773973191363794795592239695270157747133623959348497965778346897503580333309981605421311055287138207531419936719252435663928646415271465720483121451219762077318635711917703001373875377343512950519694596084174362621003935850161045625261763967198693251227921090745401774205747077623573037984068270284927888500485772047025009335530454835877982050725308834600419829066084450372192367549011052350443187245357103086332580633709003964245933181496219149826112496497035865259850622862915088575986178172184794916463672766705181160887349749544704571210275477854979578399021427043933699032099332034524804039104155958949830069121752728981659413065079673478511206105943705738413579229786722697401821075605561117702671283331602446668718437348682561599073156123228013042255863755149869576752103480897540386192358410139111637651537039615082841517098852099954467470030175937824925147368718879972606631797241456227002588048977610641868056311176309456096040325279115344857992520862989393408699288041512201337812094292946685775659973904707183697552596695121168725198407956045409019782227817480761652293232926087941272315672367491304699685348604082158604632720156663728032347480954445460509348851196638897544385884682799872103172816938410408990682633337654893298097554789998759602485319076686693036043956376824541972787435198897174374360250564044788001354635724957250580357051636132210640420037895477397291524644807945271051644577825418620543464111764010514725969698687960862763996536548266763791894249171807064504895194376783069200114983158724365064123230762164185453500953086802207986400504975431203358444373159320285279682515978006892380621689415640641867776300762374031332145203692424591887793260774406062682023132637676952929953033421812876627570698701415026427317061603628827214558637267392957009475142111440449569373508640261226585497000726897681120928544191495014894634978989943394715222889472650823257009916977460576750438653635403762212463251920549584510915868421312425564172312536837073898929779822720571738909018372663344501345085053590036100652546133938190466439069039059090335713119219462914670461073309542724481516611447404718832236614432401075928299633210756709098956039025604600557400349507359572369945910132383754617649528705462050440824129848109712356084851494681374427280227209751671030854659073869837013143036301148399894862142022839209562627874578814586409825210312658363969924184217685657200055074515477332476553447785263683444314014577130342089884181157651621513632606200975211833129884169729711740991258894686182277627570472173407218631242593942449596775820029584868573300610183421862917585259903730757408370521553534979883323475191725903213793608110934930066820108953227126045585655753098026344394943783540936433314777022825608574201508184274876168723471936401407022305204097081337064973129999887546296231774187492863463114437581954433303051258882753037694633507896462385305866692566395061851679526727045310087122307807679136726200370841082806402145488315263398508275375820758867692673597306676014099523678753851751371891797236785578113077204119368251950721380019398304110483796328858470339454006629672162651936480299158236872508682489323422901516120351975391162535229505007959272400518174272792318497074617629732621462201855597660242715247299182809902275686009075879170068841761278496593916960924801793164783972127678090524139350649174922356838328889318052509566137446034363910311022145960507231027690349850863068169017672060083827732130105126970519901123382129614654748431578415574555208807951642774416528691024425939643688479561051153469007033646273186078120522965665188001169310757543662205286906533945403959011975310251128369653374888617931767742411875285508129767490213711039323764624630158899434135225536764710500066998536782280450425444433158769757600185544809107177729616831889784860384072144012445140046378831081711117507965276737170676763231652146604962362043309343889182603098513183497924262317383212799546420631148055418925966167388410819568494892165450007088540228522080471695125016164739681523016368633583861022527517166927562344513701062290582282966614600679453566210827788559511454255572438634233599685116701817911304115805575687737192790151921229279693742211546749290334069661025619348582766843351976973330995112567714580239470142287909192036504876395614695469185768906773600131949069288199843114883936027046656973854569089308297961073797493903051571921069275661074957457552814026451684694775694276795814224433519411921614350163617969977731710987648857878771728660404396850447306025136722184095713841080247841228094992810768600032750303219653784629693707583004448522842320536580841950830131506041341415761451279412633241215313948265427161020307219420024052268452525751177908175217387622877312491984458975485300136756613012470341032701656882825001945773679048324046842348552619842499660461019213885115067307397168127295083613139866659980022833791233441062993507237745499616583563747096039881509139775599724313147786342292389598515862619425185551446460974911356146383641857677100645731838209016144676111631880368578589364212804834969957405927821363215198149620907590219964025396430325358677391035649777152052848757620892770423771628011207586591549207828915541117002572563021806819001050384924897050072516375844748795057005881945398369614211802210677041997777801643696935626116535129211948814942328246393131049668265997827490543183576620452992408920751365763506423803217401650132258572248910217240016474599811726343081459538340641212820619867142481847920069723116896796833175290704741249852852104176168085480331109770474450255895374929011375074391614922739589754104724678496455872661407435685809507604754966160804245182483845718073165821785433347124014453383053225608626654645784589730779185872599232207321362504809020602329489688963355296595183283361868806730053529817300594528928046663984779627160603433696149539847202089718388019951973300302831310010014072921134260933082288300944668759437034229175505307227601142267873462496080632228619063044933227344640859632806605866650271171170123393303954745847055269793481490613761613126780853117593501653720191693426121062130354902545193956495395466698755543499664740619449086141470970097559128008461402731135680347339963760281298692822461727668418131264782092671713729269798266025009474070026409882849352625050641453937325735718805303863578807144511237105867741289001238935844936398170326533896706083144450947559303377808193128368269824465462478942383105198362067357588337266364850121742787675304198516898250089111019929443455630876895294256516105038134654310585462071507969896674084784438668603802475020220810233992182051820129831012381702287073048836867254994447699880946044519342151116081236541433168031870143417935115324470535840786135815432164363480340053094860308339586897676101239497922661884172436419799211447556214417991518309577192707308103295392643500402717980970213945768073060456540211839756502415338628835704575712617918027616730135823892845881528455873047790544055586993060445645546384283091121586923027057285203850429502078781490430927748253380296066475576578060866500330037153018392728698743429830826763365502768974698967153921850568956734304905072658396757412756843876301193624985234079869755128156553578229073427183287883933861231351874031719073869632866568141841045241311800553645501409281239027485795961298773081716780917298063179299097838152849601616150837900809291949805239340676668219045816108912276985101496818587746406767161611639781625255813762818272031398306234631907948843022200848668405774821687394755792035129653030421899895967866959047728539050675802975583819888059808700934162536510849675156437030321171311973312479445894041780055423542919775500381309453854295257984157113025377877844602931760313948966755740985942834606069876164134591566701247441218812808188961862616707186474715231726254827117255923289284793557752020529330508980556533164902727436958883498359872140795292709020583425714830443998984931305997019920970549193177612632633003155491858528405749559960396854704348033856464680555724380638676401154222697825257541673908644701878235048934382786719690630233605723875863006625678348693303686360410913649773238217463364486060333698418853291227074156042862307181003785743240702320467032114085086054501514477871830839772130302117078670369959131754742641383178796403718678365477308597885273193166457042099942102232417507540313194020793026937481974791716146222130174799219420906961330723848644234561680625553663903891361638348690244030377390272730098638977693352902614609788309457127457071046887070310480445625219961486293221318645817320121784064014617593205247452354366950237699341957238279005389073234105930057537399911029720173903719344280544028104759878604565581942330512412065336719175532772112711669589987339055452437226823722931387420667367288706015777004588741379862144091210872209540906502692210863411121213188431087497767545102561365194439825598586891116009835044969873406909261409019856980078071291362378757329984421664974705112579034936782210172148682526858008637796463114988611577914085469806515642511355735652100173719948677927103333595180287969493981768760748990667071849864005743851376846134034545089305686233862899322102258729144017347729564323598585989567460420067008025667153764067273922945784145095992871113009818678465724581060656385097660064730201542188353733617036522534500751214212533347315845739293218530665127704206444688358682355065386813252425972497149450427608800515938912378166482961772932525069082157027004385581910570853631923329864935912075028866083323670594231486710080629118747837293008183049531470186523799785843131319132743370945376448024848717875563426971850729711773790491375943599934792907488718810234299009108852716995405130071848145068639629412313479740606348628377029986595918227955431704333667037678435819826193740069506898452375262439641303709179455695134238020368399856674437039484218691712783526168804518963159118417318816509792829566091987205838152247166822158119501971694995411776720519271907139317203152475917989083464953754535324422437847931305530920211938325803580656112115929147292033827899234629863965623424135952076163380257742090352461380932246839826176693988777658411972817244093877986144495876568051496108338972588462690763745385446335203406333956255647414784460024443321283562968125683617033903977061730494558504282847352026475893683626815138697180420400341504899465290336412198534755819967738513325690545388698427692195160692280447697002165196359815338212836702593385674975518624178019445103671468748066494022212218442828488945159006818000031890146609186351069419383546871488533664563132129583748687345480400908344630130388641336554089787259917037152887318643581117312299155934411787624233182375735308361918819176161434904964037621996585395667051510117132477072391404192586996138123809431379919003996870207251310758114537478823807566001416730289806530280446701648111927325733995552723689614981096941277189101641549370279335772849781180309284122157253631859221912886460715981773599487747658332764795514843618750058367187015998623092965020984765272973096671502287217926303019092063426586274153176149967299432033408341944388714108724099937816077513979664050993620194620805768465612904034316470599417867435916179904676051027421472478370063772234734441998470728205856736306300710741213829209254427296365461021709318320381398899234719333747353842516603929530924189811429105891507439411463218065357259929962019568424115008700889227686845731864762657175140808632730729053794299320265662386663446081590694766544461098651910896454769861359888125418901686000874491648256548970204059507021794591706395818192451894028709756689314280970652838565680217989945800791029156163821627864185678994308098811655842853153183344987578002400517314415548132030594958958071875975372705902391905788939157934548528363948443701193625946426331134303337721183657509660414162438437330095869865363860832927896773865374046993438130038561030891955718852129634831477257093148577529189910843625658727640728789845493071386188363300877389933222844472316815336450167454354456561773342829227693793636808336149271618571870941595014796761672314635743945683184612162257843351385662029259753745840408894656838225618005495445676269659282083912299074666275104019561437928811013408222163395459661458370941707472225615063375831389215295372197679948164291260296941548728907718941855598154819325850192564123253516864333218977178978066586091525240144792440743018829837448343352393654362824469087932916488396928542026068566114908022438263120277374998134688154457902558614034827787984672817768181011558837227911768154898989488326226756278716469377632599620089134576059159113370351561792379849710254289961734419092049657942427500277358115566218874722867405068120545645025353863921227033238272515069305265788423157461597686474338041607523855676416771474005742989754772275857831792932117935233867702609658338980115507715521793593301316022414219216898016206230446765616190979907250276374775244469831532127727028353450363223186162396978123284179946827382028312134973078577934780543369489256165040203734275543079126592254516859748169754067362739823075220218681866547740381886686562048547711827868813686988365379485851231174999106378254050200040784223071412661706320321523634373707136522821866886032786311825444992071654007199126433573419090754877853805768383949618904289836636496825573908534973380648737475877662105599640408353517587156110153144363668792320208567550433183989200083505817328916512479657484119958081664535273234471241167696189278898535470886219784953297319605405189479948900007596741335630628672195070799968974688103316376497585525503368285690459395790486398868600379145166568394578445605713785527707882546195837234201735816008731220438132039391423239872866664855241396523386603660062315177906144261544113246234749823085115832341565848074531584333264149152881403133240830140114632417624917956251622053963678145621834560986412359252369812976057915519450020316535037914165387687287619288238281285826312806399762620004261840880989997284256944787111726167935094515770332796584948994673230919887477547618191544134158163725024857301321464078933837300485777758416537315364143714034405144618887190807155403468396728307484401102371908183306998695422940304956487526340990335308904410217160049212106741982669340691302486062671655783736428859476858927634223558458903877588208265335140641885707255358907202093189989896836859601236542311501496343652617495508661586823927586786784032026948229061334453781997152367174353259408578458044468207193512497213291968711430716318064208549796214722017288245526326193290373097858146396749682687775438470849210490325892259985337226051424588388670498780692994380544561621812274524948816306617679000630402993136269438006508164934235175519590038769672945173853343324350072303168021259521276011491446571564687224747451877602501983473387438676296872240342674848615254966737353935231733321039103321252299644096264929828846475938295783927932552286401738494187495765789588735848858284339647693442942665984266393232249965780624808630845754443117618228717999263478001171193674848955897863365746850731594757754249805652259795411681474244007952547954760184637409239168328471684772722184224508667117212407887221836687612625411349100999100337723719672795485271360092337034490699669446031939006041384857037723811368566396190620371706660538485759362321116645315227348866503646615672827141027677125216519671190742570716341494823958760660681248742775960196675270992822587292523881870255932322030010377688436717136751976231760071903736889593147568888438369285036592540798815286517596817841242451925249607197770158972126409693374720095997152843828753912365042570242025979562689976058162796730473968366272313491875014928638837405994287777936181821137002649415612538755519267684673692697668555298561181720713566911195128746551522200392020403856374178131500600639495246964017591217122000086549280568797316622106409243305458299907966344783363019068643708847993137139574238399742989385109747314016693259457278071662110319436868905231445300819374486140084045304558328869875089847567808556315256049160587151783870634694538770355066888842612570162023960057246538659317757676355961966389210069763084014063848810321216211195648839824315446980152820740820733409235280833636013437673257516087783467164798813273814872386821694238563159691868764029382250050031470116636592981394735565776815336337833102356234876102782055324284278204658763783341951210240077405937069827900702892265142958841328034739370583784925180649556963020078723252503230143794321380453072165376775334134216984024057294104434938078559132277515600761515735612235102620987275398845480096879255648394323483883953551002793707617599164106142036171894688530469336413045227435092588701207249161022069185980582969793643548196704601850189704745814184373094672524777004721221253596809144093779243569090108162858263193476580644531630147404983882873694859851419537790679638064672202494867787269884206637555811391772055356669653739779332362089959277047457778245871697447785080295168508917246148084564802380682046521421240687857210028464999699847235428476443493469684188618993566827278486952817298607932182975486022357814084712362722911794801161869891987460138738935341244067992911672200677164875223880181510736863139665430311210206049916640833663947465811783334467709478926751379047358235817892795111575064484480113546550568428693503464974929342547788546915285755945147799493218880346851173930344050631369122157966879263805962648729546427408586825799669601213830589566469132252329382300407151616459926765549194349128799457167270151705626845885205466862498414515270962665201323225196328761653567479631319450953188366551817154911498685633484449142829882461247123253180818516960870097138994745675675818087830782379072633496869947574960564091020542133403998155844166353775374443230194536408033736985112001726284191502280308010635072136855627093130614397605358807306392919196762448301497123703561492150753141572353516185403556872918033750309547415186602663763399699944172927976331221732112158162744916007471629201126464441811680599729575742632020206143942268416917531995093839604266514017862633496166548254626506676732697572107932384837254788523063480349396629043260768678782726092534517879438823811386843902969503004102054046645568488727165677623508380074630503179994990562549181828221458558529050936952818269548759901883308007940225457495277002106845155439221861665899209400605981911657038072448559755713558508943234142865503677131394568898242916807637316187886223277887749990704640577070836596693190276839269585226207472449311917690558061400891972691751166136271374382113188463565528396469929127354043155697061587978210164187033677504458180379642584791188294774802912492065309560946972513162574324923817764034721836155641124047344470574718071141298873890634413766198817055541572286764383355346408370824002135403313452071321190862988047195462252409350138504533141873347035548924764141032487080162669640603522314793964489463816358021101700607339261123688688312448287982874090828233863576275031673229001689091565806731622372034862640281952443809748612816780850639841588701353026445631373503180328615965897052259132055865262103001670032188291924159578914981520057472467785735951263144025973416451221927589153526983926011369773205586349833694525891914317228397696086946149286418037555190934117344896164507657416265062149417396858822595888957106961296156042134935624507493325331239432964533030631054652180445410554016950772434954732735975762661080411388748715556397948834797140739684053344589746705980355370717294272082226467168360709544209761334896162318886436290690945200996242553193769879153225080803658405254434837351088758366102349312243693656016739882057796913002731144033305342073007794599137201340420304094680481077024280216095672383086928698070050113826571624403670857475355489695649886798067366368479383599973234739703042030158803164756091526338033287893505465873313428589301805725609432356826786706716074184500990705169417280826728236679953643082877424465300745644324532031797570532316136741215525610773159806749971743033042981265901864912395639715438974843208306301361141807675562907711413102975078460453743405202114436722611264370219210505861337531479616501349385152263113907495186020480744697764216563358554451444347312439756706044231526476227458501162727748559012770580191450648806558495895878372806653904037406629464393661265793957784974503579372823645313113440978777877569604933097834223402650628112789940969614609524502774389012055862307635695800306172474573209623203526484189868757487625442002995220232594009087124833581218433225513424706932339658797266922334727719903776420161903662483103730345730038120878112590395668384525996491045199771121494750847210876382537524155609225286944973404363751712167717823855183177451022041538586058676740745176147838042174172598091231004826325139979514264882988104370391440913320988104496259612825332993036874852870911820166587773341407199810672781556330112234726331335230808105652338179578483377093004543809034081567100558500462607598863030799532265758916098409830851591986033948985966405721103544504515895455866938624975224751611374204278747082733621573190928359788916377089176032957033057672514311050646033540509235850949257507998159407602013570091723798567002884821731254598140950123351466879188308378878448409220530044751646014706397498190845884534662022390578059181550366514095496895936707467382921028804216140811903755160378041828073521403850933712558442590742896587134239024393840717398268224252071181081159756284382057752281086592732267484291802226741337290909500971795088581907495597054421071047423361303159404434015868557927071631759902675596163154831963175858044283930703851614093414310021111209950854953159177477376618385604706043953839329024223836268498108881857715408260285912066134486798266546799682062264200525993212427941171465177873668217406380232803415098404147005890929588152574562395367687350579936702542951745395782513716312657500007146857755216699496786006450782665949343891950848159093236976669690002798016321973975530246729251052374886762712868379307469426742699403454325598029951827263096408602746931726739779365001968340754233657886439998844163611594504394061180561762935460246321492902063724461657389092275163702956812359798360783241548315465055780761526886365979716883832059633300921663295192353555165025961561652323225442567539815654904432400314171502210706721724744907362712258107999305341666462284346218775566178765121991513343729182305581937992455979537535137060903730221545278649548644867628474995994035769825189627821846488123549391107751541849308423218377610933408432160169021869875636686863861074969014917305431223952823008800253164878922327703871539371937801984033490548270763208665562027434064887315288632536915987286537388351475589436739057430581518783343546497239867199694642604675909523535310765188938377188192960605365004153577021240504761977420496761329043769865238101649382618146748607736961384980824573310615594217153449753050294545254659788543266763871388170994420702846268883466558150747012781658155213842071523632537193426072750793898301260765594417135700330742160030563819554564404911347892719051486365130406210076954735737439757535866142554194387276644256005811016106800663710069175175662720281014904323134437422052062236270619443403802886637111512801850347688566002119381555589266548858120666819120514744099233468169708299039190914199057537070272039542485645548978569236712818454022087465953588186121239160856811289501855551410146161454876115067814043482424077852945140057378084743494444401758024778263222252691959888951028519578491495592835651774548140407564793694830439037090094981834287832698959302353902743875512516239824190011797688422653962051351018892115854136286638691671265079553030983322338847371060476240864585242133009023144826581145950842659214391180069344573288456896026487061922861944243339959001360202338159376173686441953294477180003419634507395139537870329693451802291199127939080354356048816571842973821235977699895626175562984499941023278829286485825354359313895317441051732986626574143058357194012444422132108129872124544584831057810560738196921834077758351145019023692297148790265689640146353197664987138785123729320300237523913744074189584453734605349818019581149307970789926187456019404803531138521707443834394064980282735983256580718652486643785431313181915706059374624487291146031616750560674574021564563847158287386731724899716937630577505603859904067600833125360629183756439026217219496765400506485909051933374633802887899194651405588330385806990725299121850242854150471724819477230055291545089867011511686734093910786163069918018920143632733051156517200346100049257333769161015960303976442140226144382626667797373278008171819243261935678806979497837822516859038731257373527192766592394309768307883555858395139395204325330602866339454392135833890937419580250939313454398785965236971091221150069644092941995467095422224987293343221719881197000646845674419705864149020612362467502915723478092738009721540334140968003376038651986722965507090058930936908681114164942790631233214186595272311789858486073693237513573058311707860817541987280418005750748496788336495291739263075733129594862277887942936821904457717392368137179896609817994262348189227590626945022131943134860901563554300393167676967547323133711066035002866548376778105653089337712019086689101843620933939012000206843046544897441602401114018842513438811474868278537330946153036276457816444784939613860855563276639820429123493225503417109028462184382627116270596567676288724844873586321740836666520548550766133046543013635767939502728737857146922702299243137048252605089946464827932017032658214591462963862284822955353684530108477716400678517221603218266619858111371105648105394199555644126539193803023188504960091643688727132847706093848071341280621612859237650944886720537771814627810204083487110279539392832975176093946153715390689342327540342178395135528201244929066309810107429664031892924360515126014939375325183214760801180777770439276450361705073853869729583383524033033303164083921734848893013867493999281290111826160824235203142570575778505757141074045836655150284351563875843725035633570265950302947694616218364153466888579643124559011391015752861736246524231216440447340046478304822327426631710059006986069452191466413227092370299472780114443801719193681995373307913724214066160391214468471562844037671309232742590011833882420209115628875660775367137539890965513764949461007294024556244855991538780475521777449450545046957680860552411763193130412109198335923449233707995464087358031325681914380409242869588911348166471257615357785984157737524143451105180049047087149493156699332562411891115487163291958574443288200911104081279732916721669034718779438294520080120891916424327829517546804760572581206791362862747631848913656244576576347406761295887796832591760450908628888617225479926579101810898337500865275876562781525545701186716928366681399817083282781238585261717236189196271729038639015571733061685333279531616412054741550057574491222475140315463870979767948335216284602120853010004957349474288323206019190879469723018440794709294977322349943186655370817949389333359166308689748399834705766682598793519152302619440350794235373864321154531659737116186160661413462767206889099944468007242890016482642109562354145149401729409711558875608140009246425965110645457085356490740687075476873858326042508293970810081419505535460644568657818626983280650634785537867074025647687267907054295446343073799709152136841639678767754699364093081790979105279394338718587958111172069235102718757892758434273407987816779591975663867460214958161660548893888943713300635608234082268962785947863286991420785987389498553229383929598666459907055045962223900741181899164881093553652541155099407393325341863194965986553761748339213982347411936108723951873486937794940662170343945357868167269415902787621568947834571196493249633677127602820126686639259189252284917173973792103368535963173314050413988513960492717681016656253551013343639286690967393481218947543375823863221069940550595956834724932691101075548028791208079276165640921107134571617059093904568621294862313778053025181706112955691498114449844193332914166172188080174008320345943330159317919604495760467506635035635523080725636912159620079435863227203822329939274791191959037949478937417377298563396670977773892419738427784902435357166196579411917974557199309992188050458018541636547966444939213800044601285557030231917432484141661041741730724420531506127300978637490070852748381407571529183746889150342869545184683177651878143882594510061667614128666417231117527233044445073828960140091221238909226174556067615198480394925988553300439461534476123942279620213787984880002687190183725914083191118953105049232755887186333007839941806042853279785014330819834065818087660404651182335871987611948433656460348327124843691917247391112691713683495461801713326078886697266641328025392535785623380740089925472961132926728362858376938724429157287987636345718139159621544502414448014720716344470695358870200670372443682371545103430096469836852796944862832077330152295243257659561145426983000515365105861175536191959240133064105465102922321112287912449180417281538604732759771475697339430565200353019158783805512291563980149331050564065704786778416553580433064261644064225129723026117034248369721038126137710489274532421405642079477340959728927771862103399328333645150385604322691532859849794335422267545695091983509277019278018963609849019764366688283170516760431965547950860585115555258595745099154257597814119776532971980364680212714394134104806263786453059533678177113472233308341435045371222560445850913883336878256768011691604646418202224170953071956732861917221281202481436579867516539260678651114061105474535222786355588671614094778759014412487301193744160338954333337037795869284198979496014754344601409284678773208791696403170067736692437844900736219298546311337900391675662923677471180212502696383888070878568519052558457675808314150230789040819556679866548819026039852322399857881261592503475533251884265584067328472952400966618694539104898296635850363206644245316182245266124831832806555175331024264005116976699790587933788468648792815572759752352033355748865649204103600537997756791773238151348545688684646295355386791591878124145393787084500473653685547444810373496143334286561885862684610044722158225940233514279752792492560159393621301305533620600468461660348462340837511309967981001775728141257417226212572389306592538688536648363336310945900096529785198615392674303267632438040724724126162124638797227318719963504709290905177261157978838566318396576861748647255757512763140282319826986590283812732106453102219123407409891645627445200756886088324651222642228470589720247070985997151519366978334338158827857210373264467544672398739656347576903916395395258587638730242116654414960673047835906616912696329973471083527363053633714865347032047619033327177635490885537824243086439056749482231202462571062076343550001909788158139212081732212672599958471795611334125759292900514100593644877414460229527761366820574766121951286257269802969231220809525555961447029133743768835827592429664094259811596401055344164619969283026930384354798207409359676644331098423552354216878129109485602227081881777839412691873802200974558462010223421539920510406344876730380000558903276820392893256390710755352056086470749188423073215567013235639686046860657954931976757525278688787241003529161088674153417340780077169245706922948006548613929957222161541133924631980971011673446801692140051775667240165250845229524059959147949018070142908235648771898787332967678499185179064903987542191135345727825396840569915692055502761080044649593206624605900036475698967573798172546070653348275789287810991571222919762344191037683353081639978947412560582574322885387246257251667570297567003666314700679096571079053681409167871100913450261541658486509569181781017927383979872333624292781463158299987170428367375586095268859763119958663982015139405523500232491140057753746436294985822094864417033239977989782961127099915851259685224852407669465671484289570132597454682649002379057150594574729359815047681701451435266873999795230518694885470354483825071792662955913121311705816027089681788446011006557551407092689672282366292262435028381911072235141254924877844288935075692069517845068254610686018875242955279306279116447480492980210233298625186891283936440650487634380766279709612741477916768624259403419918168439757570140924635568685732074155027450379575147964642704634012037171072764550431049171244671270275329129475900264900725840144385146434244181782672816203204658597348158316329161203280223352984192036489260960877110549205288426981234984663650520147503182476189182860874671788315287606222448490106799184305649141517919802703332807927389966549723997187743582156223595659286657088670384991589062701771938015176027517138843309679770759959162047765836532580643609000104353485403832298542069876605831111372735674189888841048001403428296151864553154813376919616880354575346697576580520369012593829607406331092289622783532294830358447743686720123593853986818918092875456773529396831232232547642653696645515886588237937290561925375600307938328819144484682034988278381646141666449417745471803943386326259622715799411392787011491143196961529129697594161848482226189292967071521235699578575079626400166655152869036798893090655910816075482588328996304828885660936511196932947158241858959275959592315192273882690520626428665134844920525710870613377458582974094973965823514087887115459860988308521910813318845483304177761073000650221218159668209352033436741168594818800508583979236433082220705183737523408856664770496553339203858811098223410699039564361478555448713463250884051049114686883275414138129762839942557291885262899821189233527928267458045627720073393345557699383824162970017738486106998718531415542868319811030521832032808019759840975168144540305406863327890019389997788744995815802372292903763468502077683498346374444823062503409070736667154514025897524599308133036779270447676942854837262637835881720009018935987409631585644825143358644075981979666302044938215183537356315735484911483174468733814247454106926666770426047263035897449961295777971444208255461452185527883752755035064256126082003907851750719037579923687362924401952340237280549139498366938087134094209174378916126992848680004599784492458833090390914386436046246377151813115095385678902556275309494358140578761910803390134871613586567658463593210993750362373440510418903143143974079242577769124521117795884148135972462687510486022225497766050271778550449481709431933302675005252086416645499271163315142321280703201073864289733606942726209868704052970039507285554619873183793055568606592770935481876476377500527460875289089492662825171440484279362191289745099379222651208591925672208883577973070770143948089845479165917735535961086747050859707739823096522083762227206623477866598568477738719378122405239003640129452220687680411528013931769508661275081359577335108114241454673074962238288915921391512828400490923778328345373048243457565594225581641666401072682537761302992204836955172251230578242509454284564669956854767745649015320786165891893998932149789312413068381330921178851110733530092841831262816953227724769531430314421869716292656324824914401924680274315468617694698487323218495957142457709690818062062365960990014219458214718454365418888695618260580720279985890984094382588463485200429486139583299953968452053685226510134400754539403605373590801407805938094538064328467583996356313788863401978631463140967252482605658194632568342586759563602770891287191389601653210173959399124153608234343521781512064400745688894332358253441333000571776345544787566443314854585920694794397854670194616306098074635179549851780150104358400960531232860781326350516133041687711467167312397969904352473155989966191791973335658478271721992030359902368719237168035072721614134549744853166441225332478253026099704472296768878335785422756106544225683882368778801210977603921820591798130239013454317410854055005990393987503570315453706716096524294930790184178079436612656185560424742127392606028146511685371218286710234721715738791081453146195650652280499003293674723169850362395544343636014324299651063401215731376497979517366039564109986385357565687811929578048086955921978253044814649736307377745940743815788163465510924289174948579422676870026373896090116573490582398770548652333885510227048293992330912919705532686158455857603470931973295387866327791766385377712749004174228292950079715361967025008759362014592194703573686077783161805507441601841602067699634793018373399042371088404741237131030865895947581250273121836455024969881806805168227559705347693657656237187904719553960887990378850285496998490074271532787452573716673566791726714314818878347964781040420136816218270659536473352203131668738097735122192234566325776310266999405143383450763424033082049049461360242148540343990128350107680423378316193868880713350065446930389809586950246311195945935501580801594075657645253847952184570088111315382842562187052496637526496124944764550331112416004237457357598388893542378749902567828178462966629155312709879897298948528623314183984606137496602715242020662786109020227847254601183518879742932897248419849362504946718517042425324370127375534317201108265656141120431436608432452448388280148070326401431918875592262650221137214794246845567581329431489321895966552432261402425839354596473569417793487544555675069996468016818095657456209926699386101912477242439321383952639239317861867434395374169942001503028711123245135893253693135086742582985713572189535229749715351100827795110056397342643255552185861537699619953002861963500135211130127138641408361409421364929198729639526842240893214040540707016857570712585152116392131301461978343482753418550429610835089498565703177900010708475417568323719929140940159609166043231165257242443642443135455750378172538027208482614086781269320577485020036522419523485460807846344201442448147244407185223224157892679223006079257975365846919159125469870873211201444190880562071275323902056579370049051008398915296201004021713314469060455640271804831470726613720792208413639066106934684712757852823824451135239146470510965457848148286376503978924839650918060908688940654182550389515574668153678182155425987957580590388093156017027306756699214065663994669892351107066266151046174949015729879978800182179911949075086307931222933949142866539695320187534889349212066165154121177467557767162108881441375263913061180860631491542865713598337612586011544011055872346190458145505359117631133393046482607018959105927903864142066696503845876379697516705629476737035186363184373410214128739098692139750237684516301632179654530908397690989372452018577069507584332227151850456389844251199860816474478712559068481726889322628409877815694008939746904249699598484392750034489179937700986017078620109461826977507827634087289124767449246098336292445172128666721806511470015238262231055304987352702369118754802306199961396320160255311414977155379818948434842659546164436240357551731682232991990775536009971482993451567156292987984113129108001769894052114637511748635788928181561641468850264518843708153515850636898892608827994372582623972334772508410538059675423509214726443312046019675333611478246461295510779620025245843813182715840226243998297518180494621605631564923974291575979238927070544979292554061076957121063987080239235713477177666629197087105309263316794108100400221823063730355300827903841411967973888229444531470333687544421429941803701150540694127916761945082198336141439285555950464446280228282884056142061163258219324500246228641484186525445811533549526046814377698037191422308504146555515638108857701735146218299287087169514478064458519487128129804428445809386473539710511794500664303861823412030307979556881870428340581659433877460121467732465020070742420150768197981933607799774952043679026796762074727085806757396200434921968219104905498235368370173531150366058346910654113576610058411389410197491391028275900309325695620533725175582756886726165828752904654684770801211313548998954291435939182786331098131286245990987444236346547534118932376591160157347926438162401432780734755169794630899201978089640295329037125981268864532895880097445135923041931832378431107635629650342970802631751965846954755194581060197958629783959582657569838785986234442025481740161084712354650788125727926999561796521220072984780450013381341053386878885834316317159992731692337895590168180536761047988412336938960929756177662321042799513993203256090758351663307444397377228042664821232412801240783718240356979298167558528306820764256014898376984765773786713564142163785336414973453212165522823753072024832354068235678057938089441635227030799748856187423817789838140645474476138307898371268174077187588835553448152594521553231268815801588956669847730408925804793824665239255153512332557963570505882786545331796268628058518765403212622575369399654657909413773889023587268569904104458008658638373027407404238952652742517421855735480113406898384381063848796783791960386850374076010996979160787084989401063466670641270544043951661305535891737573421982637245649729811572613893323595917696498306502637341416873922648797038888467166546355577781388962946120124340953451804221402239444128006457103626187087742314291449767245734451537866414925269299123216031111598451820399707493372253121628969786846346772954331878202290398391407796265656380690382378564237829238317817040989248901465034698733796248206779244192715711048882833547927475369128361416132220681993611642104702868692879871298309992321219973478829855590208942769764888430276081227871006624351132947397760477512291257775843380905405678821773084897745321934976077358487281824631571358481459395569015717391368964731676258476089316818656619308719846859840867127754478302242501200150790445606661042472211196729583685982260140249779943924617771475480875402966540756367490634159217527085915674192657630761990416225612525397822941887235357378593747232610147718589691389013083025091010689108208028230155835297097490148895975859477890790141853298841943292736806827762290016180784479537204803004736927496512873911466765819861830495605966285578099344823954886671945151295523574701048704358728123551851964592025391212199112531192332827746511151271992481205185420999248097184593613349722986304966720394212620944279999646367281698160602610009102533174485939005953592829296833597764594350466457167247956500940151135666786938069776857539609404917664128290514908136512820318036237945859135571854569399255788890795010114165724598380795639347685634132043713757066925082562669883837061026436367299783419165038372008875446347832241067517187730086282045283610034501077034597943735854503438216650077414816849122034566739911337239948461810470589742311841457078055722384909260885906056848430590674658371804219347160635320225703625869971152100632264427031399160108971439064180769224115124727733656569994420545752613390551770091287544577171956952601512591951807890556775008061114546520965140173161530723771355674669163808707424878691710911649854374502907405532279293098044712864144343500395451229877945340460358557259998176936440859129044378101411145563165226497361732339596428791240490838631302220108654844981330924792980514818341169216960208941119630909674912827461910586688027601090708169078685899891146958545062214828027256106474729873607345883353745070487288456745127861820418170211009879525841057417665721229326667920017872214675600693715559647136939375333282368461913890690841921230014582730495276184288993935713062551623803445508708235110772376807913506711839389012253339812192694699494408134881505028353155488726474441375805166090960877542010224934106551597539279293075017046867757286980873659579566651278695181128683812863280484711723000816548971945098692185069722670412704180505179698974004553842329283891450882965018580813207243684451923427710756156978251872069051075533589024156835454069705960255656645553876263899754453319956538099484297783325695010139475151250470839581570204041371580901851172397549678336873353436236320252372448202450711690966843299773398277299961199793968719994816177421326863245966058679436216039683423620831518605154159773616077557907885397104544718395514874854857522336936282125455310274496711953769908777155205040510831483998428877404458668088117015463030965551837367132910972934045600782144059917814164958238624932247979431868099862629065904051234979599686872330642862598151972005073433397244348696398266761104075410440286893332285054069664636707499671590935701504201655843195167069866130621329793764425385414473001302111481296369934159306742736841474951263328838052627560270026432010103674568860911953760781239824479298512147143344827282208846392663044423071717819018390809725612726590062925586930283508832921966067525416320356032782087302951338504751823742063781459745450727078893288879479753693001754818151129153235160268184742601025329488065094154038932473166630678007878056002863121809335169473451579980317372068338460349136084475771190891641507850278015782080072905083540481695488570576544920708629718955562180041996338830326722233184451310055167365039678130026608180601305624484737478572464011989176898620759559318881806928556588120831206236943334984072925120712347152623798630893655065303047181390031162842220267498716668169335739063572268967138895269545779883516590272257758882840397700651374709633613934008629944193448626337355270574390821864804446443575178956255709420635608705802108353443376996037524528185139067842597604686051546061437688152850884333632433353561485056553962766432530908925382681992313022083359159798386122886006132772482504275882333523157147924984456148400951809217485559401001367070462603722246359444698674313538699951936728955420960690738645632887890038114312895524080615857688417161314933512743699662297741932521588902439287327151349651699272947211302269096877567571452499424628357296317757027069999393300669454081124720376521440724646320585191219710262364045926420051976302337981168681835237520380766203638338720023796423615560242887925828100510630065270672367609118058162215526838586764703562654526936760341767645620209288139097314114973044134187260760474420760573422416242868204039325987026648080077926373775789562773152147101457228031219040109335388151635634569356387833351918315833024057269036662760335415699884565961783425070884121476624187406650565181059908992827582075906494568461830472386049703207630490483716186202231820695349165836944065039811548467921110027412722352609134565174715979479958001097398682450377474919717935328012130164383382662991707484285404880537121002222925155411660682249108425580708480524128104343065474365664910038529701679063981066286062845359285570370114859722320978899558669186915201975884630307567180678867275013647359040750157095536922336804197221380696620081479768259464557606978417845309293339508607078928251787209841935677282769361167923057620721270818869158429052636333334283639371017941869189321460605142655060741735754310547230282721798750817355028370424346855735242198260031777830216264492519693398488514355825761192950492492592578736368763394901465321265151629513286485141644508667724232245669132592137811146359096657572788384898069800262688001454115458020318400971726182825668848433859171227812613042661838094770648940779827830169441742410683195788421608566096582757854065975080462946357642461888053432192066137709710798935993701839934899975425168861941243272472598480546153325329392523941405022827829130991183249915897886070207693430547175310574087473053824682167437828238431930587216149666565785797904091288522816084705157487443544783800957531835559839663707852911486604095099720319437755818582766493074450631475822404978743184390614010536176820899601346593435722088658650074989288933096838023811333958416945357138125746244659564357556789671069582496021258636058126198951575630138460311076926481366980517924112898412540751728463609073880235030065351287792521641964781632108115107844753439309868983649173062816941968902000560652214398218711562497788917714065569412535371961859398431062639533417516817915724617583425931721095954838194779408514294731841794243207412207842590233862434031641701455979583321178803272087799596825868752242344757728326242562358386059032011361365272933189934252362727824757334168795061550423378585460760780768323330107855646742396353915784617528190223284704632073986372028858728063773154742996508012996494486600415121552126445837727887620939835824417469950404776681015184455011100805357627142918956892283881004725044583232088855254689892567086447276351644309020553724880623148780766191850573313850961242544140322310960805696218695049337961015628878373418337542304668325032039250456558754097301520376565149478374410615443620146857677346042721101602806981206694552353940949137698519702364388275295007487054653176217230735559699801993182465931877376558424532277948981390510964416473844637186575329626931638225120132823941071098597240403496607744039859659391716829534718784517527429053611170001841303127123825902649657792784053707580650128379351411085137292080280864787800118972779629741361497177863555821020712084934398306066873892030255391637438056074462462078633312429620711047677684633880753141680634952960341898150969888201051755829613833510199564197995309021473651487752412493223016504468933648782241930036522077089828575142677828747332531873054872420502807421671293437148988282845310046068256590324485378132223808321459624905798336480377293546143450653511548645261608616375953577550090941714777942318571669258314554578482326211941754670152336130034119193516319137641906889558373535419136790948742169157433619045063579651170511971063618244621639092968949992126883994670216489922730116704351251628364943663705645866701071330875870876287261728352714279559217852334226325783017148301240955165601229731757621859311752466680528968464576806939950888620548215884402183064899489483178351847223686779469260593411954233127689983160031072249084630648215562796745957216260499335625705115353938139050437662692130793584685842825826305300519302016399678001697214588188636836102015608874229080704887971227662000283025907542050970268814565776340799204106948871406792281927977579507680950606518318490433951106043090786735622121169996621144869072405221781292417866470035844801208095131282130302564404111254819251034244469728787978506855071320264703455161259059305940659157395506343815322625510375083317207163140268015187821443075661095745021188818822444264784270801341566532468105155571934633422754654032065194411359556478187728895508332650337394558729805972363279192133802407337293616293101430069002567919661992899763285802467482647675114387688801344285020396017578140788578391499960369108611461523400766224694646218502915670736934461557260481013824713413637391131740471834388043199023568599891804754093467238087478360883630622639268372156150185836938575529107454180289567121735010757894876544333644891061411650613830536140114027391854756254655022001140836149246949341728124479378098850378128646840056357524904261853258054503666061757610811201555440057697576683971557375308885446711931162812011143555483478341780213811975977730983029500390118934457574364525126272526764421081739504835402823059957258437284694408366216755740921980341945159486484824679200377693423157140156254289287072955421784863322743868044612846284205755964164585104678885024398924440465030775178001082527764038649067390294231509053670151020611606597566780010784777685732702513764072725104553847324652572590984280140979086442442006792379452219059812349372849606724032952338739374008888200756016933834232208694511248693750738581657965043128062134080232045134236852443799317759979894172347974693205441580807735671946381201569033223476741924689289225899615222095374042329357481497200197770793089413553697071549229198394472046672322726384938317291460326103553966727991446704620193493204038318100523880197121019144505861802200158513621792826980371447875850531216175360440303415573896933746024266985362736295961095759547384994967677537038431490711111497946282612754826398550896732699831121948559678963059475347274569978761616901271217230268787979135201984208599904138808855181779927155631111388484796831590977183636699100437809512148130346794582613381561660087755146625958686148214712643837378541764258576650385183264729017350718923990647048382994464702236393987021837862266151801263908286499624183218473197654902655035329160822626880469991904361497711265959163291326467531342738230481576886173592084861749360040456979671803625049395765010307305188517671225044194035041222666398314187728010437857012796780247888561253465590485470536126293651341244775853567216862224716128549102120146315311651423918666598475370704101016948447891697371568768113264048322379551369908231091758141906435951585545977808461290649545802911922122689029824790545540777481533368307967666152074672349500872389847264707130671684012106422695115381894216333508283542727036137164406416412295936663442580812588298489200470107758256489753125890472615412830681147082121790928466155370257543193524980489666146412528891142921074780745410083496710138019314586365146347701152277122092668126038823851857292077230340239739418185553611042894813987590601593195022373940446027115333647227637974878335126821314869494733791127649406367128297773304983049592866049314508106096090949478470786502242364545942414577043805888730500501105174907713533778862595115781981838647817627440317304079204278892324086586627883101781282504980668354509178289021953671638776482173889070518285631606278249811774138520501852683832030234996377848351814779346066951269991527290364595206797730404066706741286789668109824257983784251614315343875735860616574194355929258039390323210923692750196720588825038883242655843925076793283750260825062737182718265720281026951270040763284682078492214740839108012881817740334374270914935406803479790633921141040189234857394971174198893683726544094659537189553008470519683546083260723494815814882923990263235923263636064761507727794206557927547989372125573023608797708792654871530364239810157378458333244128935289983392340859414101038865372690335486803950528416053556041241336792422640145134473561148375865923943982095229609069158848616321909379798428422654992197557212126140665728999805558500422058230237101485484352157248807155962941880644946165232249647351472791571851084850973994715285186584574813432868048458743955401235076358695127970037110915603719067072799948434897235056949178906798254323852855941919451042832811085289784481212908058030707130130344070225265152255157028127757863016546169061707345266387415793971576530241900522141636662734076924264811954031027216568472947067355027299613507179229406619150321163264468426945226080854396420233464047532423111459420033939591925541741629502502663226713031474034256136635233125005843760727700279797111947188789415656738194160562160884699976190368404015156310558263668896292675719101501037385440656854314272935235092859345727742025763074950560028910527274102045853343746790011299193739245350602563873593947703094150364222063040922925954390224371902748024472940937691814454186759332555267474057837640309196597564422000639039426791196249233028144560664876585301432445003502819854012863663620133394769024691171352172455683868953667148241124435720821457965901659224443405088490869292898963150595306692289502364387845619658592267576577074606911122459194685704073638394155049679913132221533878259938213244424992563578475409652945858772510815668095981687049347682448210038331548039411623886834885706201337747393981248776317951287837423275562520585479097089405270748590468577805459416610174572442371285409035296716947378041947976196560225053594351154328164313794007388732115821869516638424131794910578659048907366713593300197439259967045545228951785344273291828781684202655485539143589657617547126117379565552234253833509081899665504513247562271136272160700751101261658424709850368792120724250865028657756291674944847914417290255147980201846167367999225147522066882640470847233602049752075220985495038369428254978240352916675067525255818603035182259017618468811266382901610156249122865292032478763116992460439548459594449696386936481749124898602164268375992228574253647643623005173788595562388476011724519919224018923099079179635563578417236020077372973535822827427010234981334976663846730365150011132446138486771753617089730014405558196493351733199627824917418075906193909025210480549517389243744814836245777264609891892548257176764514814496338071157368843118118275203151045487456979586173780132354688931446019194155916400468708135145389923349979104612976178729859995325110659506030907165533391836849496953021350167069432562645316472003868540773072600640519450527820987201307274392772838811468779788435693563290649171363271377110883960341385976221926255709611972005888687562222912722295007414416694701997453429678218970410657668074705201206973931807573242051344099803173254752181612473507582176040440900143709865586142493760489667371766213892121243437262419295860269658646550256776993512302143939420679595867739929734391866379669450330082836003759996260031953583631771277443708942455137501502296826635753390840833226535088072219485600310408833941243453586178472174165925225129192051775766980400453303694449553141378899166615111725956202370859307883167014846532577917344018844058574596352622192246507834895751547207084667571852102241058889376527276172472001032239607072397086713067984440874304997607733781711788381677146776454840079167504222783839371240288475650136523043719759568494460326161713997857501306125042348242076355477320590884940119231573027152075071787526785046274719374868745774451004838420761604367426223715208941558316141779903577222997809392446076414993562497208040394673713004817979121200588943754012147486342476297344343379971607200541510093269396265993567730895761423352002651091883247954972222082152045919099075577253728199491704833438152650421418325143205186834287331675058571284891725754101711700484086718633841252248917402099409974020590512658613197054113520571088256553201293395285569563683814020811243204333915779690748457020494029149265612912746534853571709563290113686365713372520206739699569061151147160896976860335176570441581606894495257123891441717549930256532700884451429193059180338725194462845384438125214739300422001450233391426746268951925717023642901090253448320938118717753335420562880908616281860135629111321020670852367965015034291001327487215757876430612865750308056984939485407808111352527083234992868963605310753790436137279773061114588471748096513219797054642730862577306607050630470799589004246631140438351365099990409651647104947044056235951658993998258138151431402099819386083942179997480670825607822309447068898814938181065899538906997037976419324806164782376506111184130580087252921869944176901241108315296920200724801948422008738860519863432687318503729590604469343266284409006100709244643069169267928850615227313470106899126764058986708710977217864826990773903592408827381188620011559049947939993253050413210568179662022576359301767336532503002164808188919094478855757644576162650705360722115577665393228393740708550587317611207014832355343395131063284768287208804283345904512306060970518870697731228605370352316855866977548569075801222042979566506034598606173755883413025561896881400115261855738789451365845986543203316860629029210866729789938405975641900455696957345672620312092440949462769412883364998596657893193233730593370175736408971002595040012865167033723393567983380255021993086478518514406311648688395622804063843988582337470113596321035524599776415575830066583586977539985812259874182634130256973741590889039232466741396844177579194826694413200488127131355747750005149640229857594818056512482457997891344559326550424544399033489843934854107139815477449888663774519920302033680368993519756432880113329995553111777247065436324920506440121130091895381433452225255746039372248215776774617886354141835153962906919417788964707679998424549879965028057014063022724021661959140693365037817973633913203996592232452144827601298075957564078435324360627408113897824942210101892857886609970967386728632011348354892087279886225377695870555091371448490772052812085737106436740628170189738898542101147320807018617393654027423242569936784159891335787340422096148805110431634687974139002647728013999923294654403367422661502979578307093409340537354686570371536258887385945310267699533244864194884972295614809698007643858054836229966534431293361176215164320908562535947881922816357142590571076900767735302870467725370350686158953999713282799315890621733754312684577461932062116433588524689956554744444109402703807027238919253232519336889662009139964558492017861229652494617305322044594984971551732807543684605205048748696543512830294558815165195662094766958580716431503407657217140797696761476086143784640367139506726302574738636530888823129487484106997047176301722651239349397978503716898815889821822094591796470794928524309979319529378256049011348201593323938687051814811522686564521147392539566275157608244923635548962552406054766409037908893530221355624624704831181010738640484587364623156342467115248811712019667807074742772720589641870045101563948116184151873187675638437481680255689474153024096238314805441290075001202125032323325938172695153300012303322477546311165117713130815328204230327760438726355165883345796226508372412371897300908905827722660160055545645424491793229635097970437199402554860980423317785525028893084762312627025615639253856118847295202715591049121271414290882921573281395925679486806264174926510481759587556400791965841660199736971990823572774374567573477749419843217614590009804865979382549886900713873720773300459082129581879670513625623011086042296246578741980161965144245001827225925399362753831091563457446667975065840515430023815842817100846837756954074396505739798835117393905821142385514045988488106081947609858259213286323888667531796021183575350845796338482908242761086923966327857617201580916283906110514061384288747494602855817876411581828336979354832889268532054520713048760027373464389354029783544379614085068347538844303418980371565203156697970434750470383200519102848682924024936980387314180779045139584655571458501504485524908695090913403005797771016475587031216300349118955636151726762215944822419920776209598065872082820143886860919550668985980719143812622789179354611998923355842610953838995864585369216592029917061620459175131984153773822266888378010517482433737169752336167031506040132616554938769647644544162939857974974107297418737265876914687097048904798109989364472213753742167220155966531722637410890927955264449842041144077483956552840635041867402905162344924139226125910331352380783431146421933986186167719235065124040542460237108838288459456138474427977985216970014745671980815075726770357787479563162075356420840776474171158399023622322061799421923246462421864892765289461854105414971533317475264742859596232803166884699111526344601043856319780505386314182862049129445635886049636296193835474201659498415308307007202992282065891493392516162479629565605799223306649751871041509127918020825086835813374648625138186912986346021113674815595653584765794941392144647637968638894614654849474044291386866094590271557547066183112588081034571521671663483687124055513664469522937755801821617517551532926520659723838946199255076013725029147274822720856327458069036698190676202781700905751459765538545452416043390243348119510620266982624588925527145826647453873665892444304956978873127179186567381308836622051889618779783437937247068863766043341624498794212300405449321800166592414864299944581585631111977684504021427279488232140377258234543379739321039593582712073391097551632682951951183532122713654523144972214050452821191650071140872833787874035035335198763747859332959740740035552935715164587064475002395973385090278923798384084953031598909064065289164019511685823086259483134439929427514713485468920943636348717919285442947240708807702759465063382710734659208052998837490018394472358674065446214147860214881703083678658662448151682274369516340104576382267793795425669798110568455017488116882665177878768905605425700893123982142483748635841648232328419569720223597541567437110391953789134352019520076743345801773158970639925698824927541601362025800854735035820939827918147838910557258120060306112305477504934779885564094305664036616128995214935965753922713788310117863407000309641747187428140528117734554374532708327520096103916362186973709363110979528798521008360713243066567623740759905164019511196308620384883096344536150217430654050553472613553504367932674666905272112630787392950704234923895001773996036932118100599761288208366796524285038944411474341835697504125042546363075754698634209358281632622287410850112644736501572664055593175739740509654527247341923606590487863950497533463808418779661018842705087312198911378495544262161939998569714744101020183835344517704945159029546141226451320906411704704573057132359366388242399680815731504562435592231499612934129728657885490370329640235110049976236354783837610495766952991777163891852902420016099388465393893697874803621676510402555985668282697184036516772935625728118849264798372058496050651848142102547264896862847986872912943166091314514103809451307095331211210814359883180013536044857481872390548131135423140772487937209178171151772119509024244377167497879263042299621995291160704477811123711721741701439774544783686071302247047289450485860358945692336763349456969429895275404235788501031003572221339473107850726573466988007226301102666419650605267080682379623618826547270260731114103652535828366429113184158673880833856174667488011247868983014713660201949578394925228786828902410762150044634112165414647204819811566093370291138823207572962842422888525660013466156394799142581423394986496640379312540383795354646064973300937008840099458345867083096851080536421002645383275032222831989356735960415146188096736309385515086147704360360700408564006539562282158783658488774650082150604465836266745952512671023577389199648084230594466937796413597049239085540924335572613309466063465144477839376202333630524189482946275876935715242296842368428452707440348169715318512206816588878083650452909667039937017851227926803748400112331644592333172811687037802673685085496654166471095854628534521986815114437133662896270885260536601574648349495797985022663489677997095849860087197577267141362702161011339272241885592487437465559659324944586543472994077529951176658398386187286787439098795180736979898674413851531168562836097045987555384641199143772258404260162704842919848745004708468880628221314686714443814179024066344752003391095022814263159504625207646438085695009702403942587398385321543839111760217572830226748082118730012418585596250976114517823595465602464319847404214555388584649476459586684537049365665592963559097849327268975730552566696530750611001232358765145247210049919678185067716585612592913267969587272157183859907305889833613554994984459194636540605209775747571427371224091496475213795638191194326252359877788672766824164526780051092756308928338235217400910706910218124651402288876620212248146321280973015074968073730561217645946050749547586712714235868062931106076853542996915491151960036745756685722229630654426741066270738145615454147754586933654305403812059831178396681335449115419246976606956581847172129733921626096979564249226819097812291504047430988005750418773085429487726472598897696808790146491051028075233618779804254089323941337018919504449607702757484306123101058729211521707845016192078478747499689724085819185598826034134380982103770000175925456471612134054632652670717660977181225503952910531612243722894917167951598046120833640592220440869572995583322241327236269582811789296467724077603371665466755198989616230357437960533527653513096360681235435471666513484789702200319788209041987345012788347825760837443918669170519805120222015546113937469913971810585996915614144393238303399681308029055565685615116857524521132399978759013160656654701322232462350767423660853206912352479801770194753727690210083824656081190940883420447291041228633196782332998037666334370022698009407506097868214251962956816022730446301993516927430417572793815923522181103187446293113482493078662120478812961349237466662812732736927780698383221328247872088423459379780821327367432855591449171519451882226381237119283522699581928275291907666565189452111755660120959342889015373745094280676870232919615197518075199394326846850405610399433692270440692542036432199866503841481295541153420185393451672174023955793205222320788771613379351724227662384230436707792025019902065340338176612663529013557070354909650180132535835559880407690321303440852385111719072253218750916833389791130617804163769466232272016430525514060561990228179474541169707784697979771292612218448408979548093785450234977650684340882585981972316514156712953057741464675417361208806239085596732280438976691879400873905024731891360366434205969805446143043770489471411917707590023042705066377195072603977341938083898677656089235518785941127225566174653759749371309796608333428337412208275273954268231888940769208083590119483218152652891744994313439194623784867686468462696135456223420516071345188849557520415326625175169623960146717065255973527028027308165059341025906800615789633201638907363092582038990676718370812246930693905132192520924335851852126944635570891405518862488753962607623660094121979814199911280343381658676470932166235535796712852653784226523828114288547530475368082091035469675494024948386910884280205708127150882227677486339211697826927396834032365282070035485740139664079167189470405757157682958671492280876634638366196621001405954476883564798981784366653305527685540227870664467390775250685381826249516360023768643655519535504325848036463599977288394798535169077801526790035274300329877412572477023090619451817256734803720921191845344581174330332416109602117905336764994229355788797029832610249697606018750861751889166149479964907995593439755576567975576514036558237461420277153424165031305403667035796613392495796476161646038991746075534820348528824113598027298116364319023454894496461818416256435762047265705717910120006519008578447050020259096702669853499495968038543499823657485873550394399286907121588119505972326808777669230269290697558919961461886328061331044358120696309889679333744040590216411288091919074783677657108755321103741939914233968826270492088251513317870817588752795170743484032688165938111648381563995323975435449938342506347060190913556668490591549945883309900536436907455334059124343838192424477228919855189924625668962556015607145118093446304918474479612375906119710626986016608832140100805149561306046494876024643576354231017623300023650386237790924062368366862453325187477875705688676225600145272736512386778367112030939167204272208357949731216025448569371147946879357207708408047008620557538048344185771626029581627090906111185649219963670760555027507958820799095545710642262357738184336618357857363319175949597777595953925678622480496160566813913808657906341862102453829914416795429271101818216206001296003386264897234238045418457450243838314644308259946028906791066431976501945816340294449496181758541490896678385882955094608894285481738288620181912442368694286402331505121172855163815295043875875658214404614504172125737315970579656441034780550117747343836534145498066798400919880142988056176398467433462228117338263109631744607791718237242365079976962774351774949678018014756400464543370821787653735893480395127127740236863372775624228918033024143704745225591073095765752617605499023805556165956017000675808888913407891179926292638471974713482031258513243044001357713762830304777799542989485118758523664270294277522626467739430879842500568729215942147704016787466232384082971893522373616624905740539486631687719333672243172346202099285464225336188931443417060080238661873569398254969687716336150049964241562279531074523598127634315159378631688073103220672998132123348596197291815610486880209551199650496802350034810722323825756612311859663594543849363196260805795929307763941061751984985937787045080589960832323918601090375596048766542884161902217652390479160942259172275110404703199149280755584718575570236737044135352782245309332350049442658688614407707740203635612222240616256079055084557270205371338214140409801459328463572631108089189688193297557408511482381815462390263634696028832770957551612489282096630590476240102608614427354040148910603356565105384941876175489132483533623974587326514255732406580390433760421307967044919900108399569417212753117743218297414280412769308250604597412806265264835187413571926805057381635878532136178604154600685501238096984999001126195338879816554823891361098061743359028485981189347517170952306353544443612373420101311346518098983063523458163473063690421152444053158530950824201837509597338220861211618361306828513520913336167997584923024551909700417313721853671359221858386880970918969248853462446300930783367788151771032679002176117592798299543134187256617260106121869309776243538587219370893846562541271278099522720029729846544973413418453528970210709770866396204084152058088540452357818258047141812494773159669209094381483999563535877951268732689523094751632941714106331169350178932834275588764856938404037056570199962362326568408390095354699013484405006090385401000126159570035566803193351092449667567247928311138170487605271581727289936391111714066466693607919370447921436557910161744524502481512969091035719954803110838789942645907900916396238532688038731789661195466007766003824714025752793030394640672817976308724070034137635454895435700747823800387724591087596244243604922877726225646176424974304736205021665135538597295328664686401805540722642622040606271351598420747855014945217053529181438227159445470636621665911144572421517260870266641870127260200614401908864378112943276159089050538190713434190858976846128362620467462833471588746740823518084325175825292755819283747999870360702267241073578665011077651729239840063008328917496018553396314850527731063123525342586795286411798441966004081980807912316168675958732896077117290967759875308265495980873727936887147704644568443345986379829308981504451857930805941002797294567060876361800808945262718590155840505300655746643963516693626820115592115836607161779764808610972453804215866886358917687865560417879968030807668413344033847667133364704139030580840202862035270121714458213824722260128454921908605531577838321769448741915275540955500931862997474637271645654637003453120918311871847726993564232395246108292280973316885543993764911467480833055720712524110491279994354868185696868703058980821688333600581263971671486523800853887712438327149717982884356767416562399000004520289892043963286646830960256298117914703848143333711357676091474851307108448297959205250898730947433909267534991845355871399632741370470162636978989406150663440157468856988934018816194256319991826993699853689249063448638049442405880131368190581336054491461851096603561765687831389302207700765795137070015754681234680994805684353127123782259727927308759391147446367957800423099807160306134294246279382854472423253259072603288372436221093468644602891445024618347746087379428105034076681990685082377061154108391640736114473024866661223655540690685408684150311083773534938319746330403358959136903060870825642861207398076748588910456120827380843881526806578408021257146038227378582061842370167077491028344265991839037485635654022707917764582269299249945718962832075711882439541292011336634209729236356656332084483868526304559234057145431169286327306326555782263904278975123222931498135777549463235632487207523979722461580031456239032677446264678793180604223573080781448030416813978319925676602511523598899349759822647205943770652252863204469640451022177675206777884785617416087592111863582774655726676320973898419280526693087495477148466112852252866587346706898444984409600595230997356687730874207228896261091035009903419382956012530936486883784023921130352754747069547096296863060901404448915824462982446844369539579421382768063270025663165799219370571853909444473471271846329194874439167543356735113917717808678795852406074425085773498393725189322444258873744023690332879121297026931506843239366199535522225321019553215700146676502224199610214954489006208588493223334331353680631421255273568442731698972124240754911040693509950088595755543182607871506490119055988906439365712538642805212196157029081459757916797718540859831033631253270677064254054745490372524825776434859239260385922616152914922719269289344769353298823390531273865820804572188444732405770831362876348231284208645155118062987966724100133848473570426702012082870394584964167320763806341556585851379016399719051954879382791842702293881957686159965378137379983048949196732331234772305980265830575322071687285722749354456671811291125151429239397230857192748202771594269344929446255373220270168392106550896596705388632954303565448748310845704107653121309551489935535737192530739181048862378922894956911786718408732839028868576149174315482078876454382116526418721858505076143961182348091396115648437079642272560692917915408042727869351574239982758408797719920531899282902397102280025980666102072538610707231553079737556949368719220306998688188458015920702725047740639138335378541305474813084755436796071838489758763069550314557060101167205781775735083200712693178822439492213273595812822492323004033076862771519957160970538949147375356822187176899864278121736757986421886387670381908164469465731238421188646660697214297401323730718116086292347194208371375525101252946728281604147429758197017761048732292480879676143520706808660794726851194862436433529422099448710693180704813314149329714295552254988669715760899633634576764124334471361184125097446624079492871625719738031297081515955015991249632877226163961241168755127681876506662820548552378820547042029457780371337642363936529195143406607396205346230740003010777638862768147326880435886063880890131498129208561192318379347280376530397702087020681602957781704034491786213630683740982038014423495130171802905208832937759752439726704880472350366415298090676392332042787715255004911183137619364755327976216816870388226514906918272152768527340311792684597796975453511797285225111104358595082351183384138524793545495555383087538186337349163117619377119919388206438948009839879276483564565768444201768564721377999339984535221612110982361425550409347641029200925320830623659686887759525899351670310570495267254537315858644922819530723744759895564594121073055914002077597255560932684126853856147011288850939146281442521612805821510246204549897586276060552087698176306567556165069213094338616453756338073954429574658652795849980323676358857158758638979339727860346552824131042248080903728511054078789799473857982833519766320040909832170110435367590286132200515090789457612616612798528911830480914795281432503281265692669989747003932007603555883925176115377230924420505343436513897056988992056253570855243912701494794380713584224655093371605759934329736256732363338454110700857787595544317905264733766222007408342052542141463350985335690913239568855107471317947884307285314388968599417029194825836971360850147821483743388403718420130463908876228793698708749963893337235451489621521373040968391709272945462342893321865313223441991211490076648066233145370647961484797729201995864063127934158890269043562614623742924450075083811226727975562455448252946481707487331291893423341977917255751738390981010923278773988981890397802380685725587881391119621784913125299644087208906522792897969696118098931850449019044350285838908499671333120909664008669624683707902568517556760923042527389351256419570222297461593914666547099006014039351646168335894710307758359333088781418558248176182785817101595993150709051246224021363635028435960668072363010767132696727498854918407333211379704202073266541816108686614909430110828218023862807775877884438727987341073697664982147099279245307790065480656381531878569580136147817567802289410367246649449229900401705790424877459608473909968268405024523827957341720125916644842081517718950903347092509782739436080761226202183498220689571027096687000161631445821497672180548877377156509458308582675657158223729942360173713606211382629060321014676017975519332612212702371807859158054522786925162780336112263740235587937519718938959309444910921662780415328770382893498237361446668287808896226070658885537390914670644403108774784312316974964727333473503235057594988624397313567605487607974987919166577611256673985226637182656864620091579353232591751635803161556480251713178007745774889829010553280844658990118835688250151967013673712971208750135478200860430151727207153506016053353090158545755034433837956698820326357729100480881178969211604886944638779762952498449297344101458632433782373053750381007069108332943397848546010183876422703765066342308155898325001602373381184496157395683114516350057196152275815338511926927962136317878719008766149273798923492807177253210743115064164755261154976309250519312605772498566468914165174890483704715988103421759061144341934610695205337053239725670073117655000363327406604970023218274260056043556416115518416388120765210737184876631112755283317409302862962087827305950188719254375132206812911777986597133065283632098821263195266861482398734463746354583353032787999249842452667749107273455793323025442994970144272566529828333650739536795923680877182712877282453337853298103678856031759427477289871586015102969834863214586676050119235875090713006353501538607472324821265176381199127886401850499419313962667364600310877470422553447370817053130534240597488507983112160336861124059006081597987939879415853777312625945971069848859466201685949321139632901491340730417924429912838990783151821859494123040113928769995337059267706463475575867499854770237149919185230479681499512331872367767454535825903515060088084755624406939071560702197765858368814597303858936000112119049982414471308840322335105863585556997002970360026424561539205601586216544230760336262409627237493226216932096589172961258623216235754911178518427827742932122759709928130070471968330150132824488306697998364167488790501045923119498547897281905283439710995831840686019339834742629547856545034400416172164898700070511206223248120451730997954433624336875854914384870627750966291514307175656724875509383214929274323451852196923151276751631506893139335044998436912618920154863523131054731726410255905022588817000202806475625993345643328564935181552784464895051827186717085537670666910688025951457623765526812339141370029565705339881705711714591780576515190944537637378809284252645712329100129610066295375160768175190683339260933184394855164776152732257567372531911636217245903555267900770811675786578836419258606791161417614756040726147124702715492090136079047723551166300094989139887975500531888220335853531064069899968885203870464472623137223848379349221614805359655999811582951297471578284514682269383895034282204976245936802404424894320569242170109572063122583053140768103216728173226896953777689872709293513689097312555708753523597957571978612037344351747231785800940548759403162440398312839144045348285566803463977243457670635005318233081699113672290607255277585333880196526747288443919123344890562584102875726667589190199113227392769984515564977195982743475831477657289187041874782326889367265569533102602334321868586780775937895911577790706241451041710740333924383292231095111724828634794278001352720128827644061808166395339761815765108257387623543694998636032478406096345974774032417908132265959393561180411325837547623283706028450478398691255117964483158302261026439392605973637635541250804755787683911772033892168880613481340405891449990005832662545251216008368968404277426126536543405996712130862541280529110982952893607480542808930671077007573099902098445059989751487478315193903162860759609695427635278769358521573892469744575260005816776951015890069340604749554802777693304814387051774358385910024333014009153244762875473987749381574498561786830527309527262939117092453829388230523999095491365836391305240034970777379568047308055686484380490036395112074458644319999698930749495576695111932726635674938153340883222860625210678128714728805672663255419464224429386704500486522050387373174780478815868572970926741811275773438558963599819506900164293218957904730848915303505228364824030462188634771057774485231757758523225689289674857846607415425730536032818561712288360113704559363445754742948228986302504163387842060643223008139197057707202607109744725565092947789567378317500190964913933208402539034962579054326308215339093384251744878399282586557901311781876916427109477300885190723843313840487272108787673280106238915248886740324686015676104183042587148229078866670085314106565579203877682512493953074617615021189489706025886876573088888596118262134714895051798024517837827221780243819521697070040088540599712227417927704041757118483992730050918957470203628980140312045262564194052993604873940081777136996691586821976177533486081459594900870823149544187518640652198424931820519563545313039195729862160703605858371292693576467979216219643854026197196704329473766374651730517905698619335072981214427298913858202320688897020761165393416851284476454500679629417336294455972865755580215763011062504037013557249101764588278973340843669675633644954084745363082103894847861829044300654492715732343639546018726419461074883217545261996112490887999411150734642877243087669452281068799757634282509860568333233830926587622280977228593327683311054535474583864869156524521820441135071065761137315096179277608928494196473795292124438769802167884629401876201898582936907830725624124948697711840310183750843051736700520831167724549936785360784535019998646626062306240868079663152672559220159314656861994573018351156822667160716266286266368350255086817891791357045073221635906969137480792764939338432610756909204454228102404679941555506189243719450858082017386066992682457217244891723655129066949902150220503909236094874823450446083044920504738576962037758030478232694398018529389582592892601142193216329072088016382328700912374223776431650468978353082166385166052395476250958841828925874205412779589250749584539409580603555384324606841383604260190380365508426690354331939360907634923201338024540838353125026793622175291961421325474074344252758896701140223634785172936469403796745785771322011120688652418575474623719602441704731955763388004016099551362675073785664111388669035304754757538719857857183947928480790893889924867944646205151645480786299882987221238185414733030335584736141206686962049785905111206553225284400694387589836033182064312284365830999166894757203482430753665564012051108275724224846136359124255515920383149369301344331823241395947296972418818449873146554947198624168105769621499739639925526329761067046575344583298522039533971800090430492470606732435272282139572138623961284698908257781249872098454760330490007812899157188306292687988130738962005322493558057461352935519442070805735943566654029713075201964485876992160296938122854854934666843531786337680462528747516060274420155416493688205998136590981407895701431949774816220573394404460237895115903852604505029881620908572741172244275578474570570480370374819091094519789295068054169562862532768278400661401772922337411708581528670667356634761826636963710805708797551172614999997417731131095013058442838201210405901797572976370692719588563740631634806304004621572105164129003702936330353139962581248680651927833852862734112662818979398069496988444845214865506343566388144381133829327521082955725251687316201587106094690131886752169380295383914339279851105504783255121848025954459555823271756787536164684965027328715114973123440031342197652654090565166533655792490105772977729927727654630900103637907084603686930223777464046921181235808028792072633136421327853282339624305307073513086725546677307751923973506828598262157220333777933208006193051550180432541116619360718428312723596559997338995604837166759962789405602078251822341759384999283906064359984851017703338598592586070759114965346116348812690611716549962495878320018616927312550286761225980252743557008199174113702392409671854133291247636913624250652643286318092629383211648558422609307833233012293399182027346980754215063741659536841092998392130798602676697408430378693200543193353464072957691342518183280134719276358686066776641826649293677071934423553513994418439267619971891678940246287109858059664635935582032955067317123520910355575296439272952171359153725747657037762470000513446637281629120735871294000395457384085768820303339325723296908719700040180139494956155953246379375122858931753652460156376729738756386442616725440910255080349667958588936014587016002335056612673675049699293747235713861302311721184008479334333808682040494706597708865480610267166604058963727724121716493368275267366536687177834570761209542348890664971616491141499140580426476455241483637516369364361802834893023968345433609667101525353256466948485872224438495695677282932056462930645945770276163598050905352056924373622865434249429491844819656708880885975213781902222677413578610932032851582787491212946259119585259518428660581109443477322019484737088304108219664022454237632867215133269566438401606998088248290515809829094549960945900295972530210080468475873712815009475686377271381240511206347090455503024193268423175313633073222543006511882236224809162255069466880706370863291827287961645378479418345071902015348453527154423657741564285441045734485742211351342562579201938606522535266006415180567423419932843947170907824256152860426731730243381690878567544147077056698646253181284555360234290678424772034017296335492074004938027399697961194740128060591704591472658518715808440247114392806110029990717463577322845174714013840794635335220761079217628543214168711052188326329281147069072063433778949677072853497635200414054258047099313868402986789194764565434765152629828609067555860082983797973518322613832636806772965359719347785333108689514451392850355613588633746033132124928592277743748104808735171123878184421670454595330589164645909384623205571860012302859871278770842266841564894904795273494676122293116915648873965642012781384964514302188140599683563149762194267026450795657124098890917481208333678867023484065416837983719778281857581780548408758157287809782498758607742440272279876048756237955805832725593341511657991429588439564023935651144707014102171092682968222503382234732116211483206988249831020456726097374495709575536004150230237514935807021779198299499345332351076243618911013803588796184015434411279184031745803544450499236955368639152358292864980456230544446559490232179680037790991281023535096858388739660972949375465556757318260104055785158314362970114703731560846321516678357456599253329393034563347439986384351547666634817839567813485017125999539696569658476037225096886130093381837449342641579745652364219476362525346500226851997655876061084065240389965254818052615258867031727179099356020213939018490208124349304165182640833186752088401684550244621623080239708609939977059251255929533473433555070127394757988588553970113834389610430820822525447613712942916092346894155258189632733042958028357141173264560608841099321994057663080930283728861393277565674510466420208152281212713715298940235324088339396588127231940235212149961922369774291251410074950780284880840699767424999716553515540586430747518262105989686852270749345662387430558645437201971017161321974413813987549679444076792923904836496160547681555247250692623431652404412102664729213124867417636088726083245741461472226078589776406445735875213142014714079959313500467617451828790626510040924568349168158797294749830797781847632751136862212028652727984742166251798389697457812127339465480658102795608010500771256904013171277198451179106527505172750403512019401802017976778829298449716556256919237265603107570541204439597672898592386645254771599443839862603110310825201845671110545896386644354871528623602111540031434688134635183075040065561870476417144138892693513201550966465996511130683497776260654345187200621800315614773785973652988355544156668198864334143000806673686755933344495701640693208416766637246776038584053312638444872958996269718363414746720443980241878158435854047736597591704387114552709574538434483646469096395589949061073257230259071551470281039771750239581981444189725855790805707094007390232280801062363521019264402388551219572113470837706008615958305457454581434752185337109354787550567957551516543884719206357462707362740742848215148400854103826216251471064611472856812960772883070484172421196514016544255933623948083842356367947790560281158360582767754333504272624372443600381198617841797657058106000995641413615268787014474041043368392377344319191344063827604960763074567693442901850595423782602288662020794549165330260343624572570447801643706408344987833537368965320492585810022824172578486853627133007052575251696575704903820624924215868052579690198435714866731081808799601714351374820997063304105183399602042162296476503628393228450492536181723973189555588563927136084118651104320215111849813694879045291273473798397370405905524493001237202158975597814612404505584490386962766747337905740551560223085066202730642569977845923271832385428857715407381197216021501440975840962805447237172293026532366322462133052675055874182807636181117931177279642913598806932621738104148370015400683384371644841033404382332745365073980991267721908409637430035236320297636289082040183730402739485877835831631180098960596034591277542761597847249992808754408353239711013432958292010654915981734904794975033009747417685953338396870845924480280701367643332828317496522597320361815599686501929697100954316096246450635290924110517983791533266841879363062252827386318193903315013221917848070455881083478011646448119165444869554364404921643416867966122007815989085621219831090026291960497990467461487313445365685391154655133760960620523824579775229691209818319267973911781312044037249651306939859165478200328150712568347699257166935642413413881290260832807551561723277694118118334934143684160477089850219665606363878477040609657595659612522801886827307934788388060884157084176339663704241988212368620554777121073804841512524952958039952484149057652376928945475822503151965485394705558411193957222161327418769434180188895469756627436348116106289132497585373770775930118587403854306094620515550057689223043965687174474780518606296666496889028667081814412849873201370733444402040474555883948770738707464162951078991236692618818515717087622829976646871994267522564535983465761104868437946211239912946402642203597616973389168402888640818871837101730722067851765369173786286119013918416599145961994601720739603616645385256790412878219818682275293345477300659938730288543614487794097592936477867336048528106218485520928594832606425709097022219391990705340391361288519238114574212307923345668635547382114399419365154019798633525193545670726604001964928156261038814215118080890185652844946713098976621948504101950197811975927049935851240110486624527793347096738861522203363640382441435822059865429719234628893132847601062494074509855480166396625877639090178550995676297628411600067298594340886716931500202531944672262056629131337520021738028842295608962766373162956886056871378359188257597065884332543856640436045303353088855094211762542188101346199461505516043473173305701707417063607924136892502062604783166301232647270528887922171904570370609634005577554487809164105985258710480976752152885863041179139140376224662539908663132163918187748517909226233840524472578293122231075423876490414825642425863779151105947462219401276286090872157680841491013836747062001539880066286911757592357176679856376268484061522691969786511305904152384903593230217755061110253191878496367756166678302784055457988800391281798045070677164165597176413127799197258519742034792163668586360702883786853524221698580902152509037451425600082398173976889379925281726361403094542000235088912768821412924694517265914682588831660860988942262570185165757165533902052882911111534402824079835340729894917613661842740540624890985741809911349049674021578683244421270669596316316841312033611393249326623898352667239645099173575010551222860793950285418807998389230361730262220936394754505485793494473400078206970510805296003846714390949311866583662682765353018928365533751505161934681135875047399330389517911678829212284732569479938570867878472225980199885134341467096356560298091114325757765002329997390983432744379011791519016575668132472721038488057397416191712298554942358147163553989386644872277878272262913358479929431700086998276501057801680678010023715151402881937661958598507715059361130556775582677915601846973674660764515801792549417033402764205043985520440892342760818929262770577320260165397836449424403248159090921195059909610338980415428906457762910067292950626825356205611264130027559420378361204292831875988567387155541792260889583321959204380613551289395012730907787898320724481556192723744040670209916664724848148952733396894291704224429286691288653165259218122232537317865852883025214460381419103474201219064991309132749884353970232285556973387992860543855246029508672577175050047046237574836711195805030036895541022644308323810034649491162319056978251641864351119396542102563330208369931416538546116359855887751172539700111522471040740638871438278449111396294980361729639338220101869595536108754975923186054814455896084854161088483435498567417744651064339049397292104706051464484550282518319746020801518410388522502075022820689651451135772889293318430181403699171296803514429561710287538704563129880105050464401975473474595715086517992750870932662685374104860571041192853125587355713557271602872146075947161610273884950896643930063445109612658047407983806148864105255311240682202015226549292471508672378967124187664701097170479243484362026483857039298480532189762978086497415339882346142733767623667654321236317089668914484860328872828798269043495825627951331383339273151112471727989764388798743310997692963720341727689733010881481105693924752596877153776847846019965614613502182349427837164510382503123342055269259445715694275978437354390140104535272327800176207675825369893444009815034955488153015825126114739451522078419342007216535286430323011222381211470289747925990762868976411447854053042779534802435709339537423102567944839774529773545970970792430612741490484176049305586260608439638020722303648714916488194987526903435157088989273726538929105689927449061304069323515751082646827818047748810556969039355066089403384071245720766896015385249703713542487371236039825605815574984723151814207663414827477244452031620147992003272368591880352390813463764579968096426609862686720529333394293274699134562831566268928045704713466224751324662716243729723750398648917419614557321843352123409533864135559355887888173138077510833234093636601303117642670313132293463680813204879646039230643874613318338820511479929765001552484068135870474388601173880048276718596538589511663970522569636935951053759038152219332921459937542799341943608093528516261356649143811540941391858121479472751330830099509495961149671289361575889672569435936940277751509379248777183228741504086162047092489552264122178666547086128497342462648527706600882490110818366570938808738082814748784261117700588881134925737308054859526210686863373588297422964346298229459289652332070370765108001329795733985685588467928894976790354837359582726305379265223678195016783929832862823024654853541432507274634012397861817583902121895117536091503201404460125538135479426768768639041933015199130264591107287581369843909222442556079314123128448129557067776900146235506261923377874177927106555230279331808245419801728374337792870721151124254282038877926784145395317422098420167396449457545574205446622652852688990844881953325992930466275346814284263521941146570669431761433211721155562659801185266586192912594895764487046123391172331391206100236790446827455812053865397666378571669363644510911785632412090863323645259368634663432756579730385345781975674161637110841954054800852199944348459319669916115252580864975451850295147454058286014514983765478624604066160810806386870543523472323255006264791727068676109591968895477854909347951049711951927076414043532651387140261736907500500464469090544935772680418101430617465335883095089700222558138284651309522178662828964624402711334911448808460612583444524765804719675807564559700653266044201346456624852485038884341454197605413178294299946980516800173886842341098690230524475691142039934408011376599074507545811217237555720509310567110555748691084984468487966303087287639636434413999875351714718417154150976368554036624967284451809252096949890867636087115990201221895602807699895957911463421803715405048391953785652640762254827727204790678050769504119070009902323773095041770530412957703323334225807733484190005858768285837949768559400552500934026918855968973527042917998776651067009392885728727123402421800709275336903338727247665623101184031679073098386106493048402035075957186723608049603320373240892570928410487246938785797443483965650759329247672026339315419241668025487017977482307238171054476936873511041811226932389313600009433871636493890386767446968003959669077491967805823853658645466411060210845077850771608243816069469972104188041473450493855627288605362201623340748132107517484315496444051062876973163083970720086150054869464795684740571508843680477711911909118354560539842507324329219110604610749397109655925270712309712912235543315738888929461219205835869618543929298415129222841462624506837775013000773974867040474131493041498754537114510233429430924512988778421909161773620018681356963801124990012447296292937946620258046825117752408435603462939163489742605295738289593761922436913934863117399618150407121376564295013094222657012220338122459452609295621979149720317984153051812647111670906220728645017506485295695511835985503633143468048665413227901822320138263919126032998390193734941692195448965570508049402354280638853308380595785881859134499048055079775417130399468987807919568016751553533471291207541863978575758276990818031149109998288691894860559030034479689719759858422926838947495868735876388754713182723736906690162445987863099900045614182567805878652190217673294863517242811667168211036040125216878368313286010139359672016829777682722420044853450724763930038826374491040485929496948491402206903288477188932757617582010612591817832685882852674737196816588303721279435351819641849468787763292689591341813764776672446504577290012585546818064659900740334851327782776520080102144012248991153349193306041030229382772062357944262997979577672558527197925154528667649100443546897403445465629072533871264533084144961575568450299850123464204408947156346883090061242916538137141788781425501249252817223003836072958305215084759187974065146361415863547976196862425997262659746500096898261951434585158406164612219782876733542156730309951937202563199981310942563660727915839738111717811696182457922697381363834466332511889807985657646334447332491461620341879836523280182410684003653028797659104191702716835066702902116202936203409712333812344153093937824497855246692244944871074539693000911492938671949501418630611152639561358590808878043353072501067667858013294115597439631799302091406843915766722100883225345048301788836344546799410626950085448411458659171305886077940450547431607764961617324425946102570645168005702876963495078926800705559167927811580352101105351599516369887958749760708484100878832525559476933623517926238066923789589310826671775877149956369783742092808586632948301173254878478902778623457456744669443634516995730117194065795642775433726751026552162909231595892870096936417047449429682028454796519970792800877391360701506615087186705335475514534455458071635102370557444025958967447831604227310239869685679110105580989231542094233057624839002852860804262170402266138164777567424266932550543924752978537769921653938117701202391934918230099516876595045884662196598627662841875148721779515971344958902036672197123619349260300393019430445946939596801722430128277187326003605579254223068838733188005295642588845932134903526456072573626643038174259579901022204181943747422385524053689288811420132394160161029735064088629440041822189715299713039728675261018221739227256524312729525563927452554264447615411379600273358581207852641188186657308437445228817955329098069158114670466794476081326446487757226004008213326688764725017285399690467220343065381393992991488028233586128373673228428891235572819436628836088880269105824206327479735415641601457720636941358259555616441082040275868336213494505377518102344651489585244343031654254696937632089559303263642781846858363855595514892909258329754066669271800329110099218234981305529126286871209051801827343404940974027664076070794551992108043352581041049350979450878651388604588114572129633231748174534452387723067652754790881830688854670991819533168647535012480065142541013418186383342967405116525127375391947416274302331597229291463757869923214545417520356297918085501230823899167988935139024519525092104415627272095933707786503151858535672088724615754697410951019720292698649206005458039555152235112976034244785787209522603516566333396489711531211809158517867030159384479666024463101860557697964584503579250435848438108841351595752759577728089192480545931150626413727532845249770028515187093524283178321109939569858386093861506411530899614309454660573885697529892645436466141648348977980644880101804366694584632898937802648977151957898229581316888503399733038887090251662066022980693431464052473470663536817858311474530300673104036298092383848528692635257331744505653360874788971599700218518304067887384926272216693449395736552139262098261042075875230974148562516155566343281166981912046818410253858365517193382274143006829010838116774042765752888887851067970128782895700205253421972376370394586121208589076877734847936844962610086150922374849520335124750780354943635567578571755761287461212208249167688089804990110704444916504665027676724427327817598096628804096066512542915110210910516080386015038475140409818798283567389885836337697975508820600407229057776705424822045600619310582004413848919174684895972612092427949783131756019162289521225668474152269867082214767771549856354756750970615520236618036963886455841230815428132905804773605991053228441020833877456994418194293122415406789355894854523145938684174412938707851393750611259427368840653700136531342611019296218236428374552238492655017461524199739264957006353628007232049224029721925621815385592051911827967807245986998375603522989584182358025327248819644995525591516029410118316031553448261196803366332611596320327095809353499444105734488579003718832420199097453284026946516696032004282321558575376229882826003219741552958942221534795906797944746607352918895584136899506795977232100464528807701273911229251122557394319712688382627870512585154905007420083907922012926330836520387595368788875880706096876065524650492417712040003522368414653743421769767989707269603312884699381290708352945178772738530938943631695392802633703979865358850484762829286703433606086713163666295481355672274880642539363709538442759663785678308374164311016305961265494239143410970135534478112070497343520615167835760945839182278495472762594588157657443185073387784405856388526800587696698925038237388753741308440040023230109153478319985962123374538690748523671717116970262660663301603345402390367709362882077349926662415900013747265297185559077693719679266356728077738057800762623422448032377746685715445350321618670553101183696489937065961347508891898786471773509575769112022096864422773062032588043848534825205221319877679856683194719061326835751156038400531283140562631939806979440186429365687912524270767623651743371338881727923580193276378342076956191162035909447400156275562352094934222366051992506630784982792783883179739227083269500627172495016341715431175095565586369283334667287923972164589082604551660714444137600909435408715280990761255462653745316254009114075690948445332781031711147460250399744073596222337306616922742071424372317783382744435598953537953121626888693682629971521917959000609720397000783958956293889483241912579100298501819212005132201119355393901454280285021853964896451159829468474470166794051088402384487644069347838145945728789812661235164967036765649761854489987324988034007713327389536253040606334532807807895977924088706567183206502791715157074143677509263804914578769613377066635207024125327569606764206822381230425336484914246243134525967982106014160084527913394793920977054547452638250508819443285107060396833746587046599329801090199243442650583319323780643633864136380193871933074711098495952731110844444517289292651876427955688700700942090735474437263763706095554020018015239079263154331467422713469519567210658018314402846484182877809471292510375525469648055339840590736337520274601534813810893287383806847496326649395586476063386744188896859578815080418649532964274154169742300089921772063977398583479130592230285207871360342935624785161415169614584530425835477658530285816046848798058031214026001136675450126823109398768270112321262248879750903741718464189900129852192426771443409036943367204314682537679225984947490339478984779776972312511479456374172273714483414520772028279525672677041799898304847830877639590526413895319478404414964051073433820395593431690373482718234284257092012813381919451697008955804225496531681283125330326654510837601349161267079359981196239647115259247822449540100485122209664272737223601451115830686294291361560524845351877149406045996653827158826802098665011793751917780484914141529044655915420629869641781112407889508789867769736154090834372006850162168102822472641829071926588248382792268308222897216168787902479409887521830446904119904155522187938399731630783986730119690045314950041648422963733345462389071876690398827700312516746498027306384083773340911990780356774112772253398910362967153093022454975923835032125433273289796565296440785840053083121516412815625862635935467649029198552779582521204913050941100695208946574178809850275878632630123289246129530956277148190983641609830142008547442844683443040104557251383151263661610350959173503278142339789924055011853813083001697143455377384890906923531200758037852168647766673124324405775721103351751021980004714082669792119065363557741560799142564108881482730865762640084241328735462739137632175819850944895656154910352572011715566491317734850976142966218609611999352370759417998207025255634342536600802185204763298137880586127102973555920963339187909802482692108506536034563668524961577619939039844986426639749429044272437656742926339072878109119014115442824541787263386070245449360295022441723694924481287724014680903687141419486123833067872010408642284366085398935388036658536476207635386751799771113939275009002758886196591272200658679161878010272944388527835689811835996906110142350452821439886992912772952476282772432681279361908554750748810920807871543487157612738006260746901129153390065361343504269018767905965495906744200744012582220472245691718169686940741492874628311583615362330629548865781071180780852411357627161514556965770845159063458847226801542863496055128027940688858460660428726542030281994328596551296251803791797394973130008632897489572096038931794269824787540595107332282881037677849913929098261207722068950745857626160303992882658648828492317351714572300748035992078069089921613621648081658379289876041850109649596180245028686676556170376641096953546940022299987614312368342723581490857093339012693236745745938363667333013955280054622721472637799779227717102427566667338117040713589301897352919647214262485196762022404729806228873692941118660623640423109251447021828405120605808865355448846732451624972134207517370505138684132681369265082997924897459874832712177791993979556388637330701805469515571477910244326327601933043268794070374534793556600195063502913454714090234623295756910816624006651514104841846431889346434869900969907004323602561481250461870516178672780096133473497377041083446812646566604599665144221218265576748030026591041605637132015079991738362266723772777648460402024067943730443192679149278800769934075707404492092971099977712423978345455771711006182415885000379291300828693446082986971136016733177414591043673230619724173087501454239362109384648511556702462269700855858873242291453395376816618986044874101113232501160874228118063376366541106122350718474634424068538562150649081080734026771820090393277650665076053462607851430674071093470826804302461155357547625108500523520522435105293251901582872369085286775599240502810648476378954656903490406836906412905611873110729485709946828448989045546820657600962901968623389996948990491561125357201188946368341387785293222158090975027082458815728319130215367653920091775128174640804103345720717112854475957009296972384667808790069852035093291312400100444686497020470595048393716206864910241982624539591086979416836799693754204083305706345143246457692038062245200303145829010206109229801529014901622210811610005526365090947357873900854169426056394159061795776385374855014852583913495202158382489213170344410180288102628846125839032301820327220710335493096796497305338972474087999438436805927785062076640829291421751412216903615577683451712059774880133328617326616443472094037479615318573177795095005347182760307491266178291801344308911988921072687332567002324910819399139188969733569107240848402827937884880047654123063826267732904252435018449600766949636485910866914220515732610994566501480604422790385076408753070401744572305945425061089933001894657237163754059246811020425282635167787227357370228059859809147870508493058081149792571381128620360743248404736183110791202991609052473268996723490809930434092119555228397740054480422463791329153035186531981118685065869487360973788084400936903805193938924652460896401622200482078659433933524061705760326524932577539509872671799962757113172506077798196771179069774030874878791192517177695888739998352396513834376284080590604926418821601442655605493091567141174234133850787481959654654397751972525310698390197772346347480218504352934066880322889479562724761066775978038550760625410375960814000959893749061301387254778554653010832023263632370225610103224733701128452630321599368113229414447986677022810251935145523868985259189737100995221764789965471466334850508585373095657405188882406791996307894710622824310387317453723691448577298933843756561689549466932416778839032329712300221139118904881237827826295970204919820569625060179315036986866082317844980003194405873600156543347681089767693257773461985079796710450357151742573954594965593183988122862611321265260242187664916712150799263827225939682748739073492396010304944322900784651026386375104475933943795589419302300017190255535324781190944377384555111593305910828864445713459125326152202545884683379659132286988070452122292257090102330656309098879804312206766675521902429497418061374210670071807661562197869087945222842772349162736731513994268341853943244676288792187933278932649189073780940288643839081748376291745518825335861758985800831189092690575851534736695562643258027829574565435670064584889621968728210055718463348004804944012539672628049075492602399462207284429095057090287284689595719150278655633848207657958602265183553804758334507306935426184966138210165503530386367169081449574270851469498115784533445619783037630573893126812112034285180417752732232921103812816378545427453153134671311652582208375860915361180001283264077232070932845749938243767807551615394168674735316126547740558379755144825403088300604562975877253765707379796855652742288132932430038233099512502017987249686675525472187293766408690298207088072310891210310931898905863383230886632304360250992654148067181643163235132893289639679255896325581283705719620351212812765170843313644328288918310924340167231729987145804070910401436203054194990281294687945796755092474255329233158046454967345270340245966384103184964155959382430660399996877734818796128328150749756401001962288656323360764944454153537576119713988603767882999968532904380374388092926179586164427807974014179838950375882246565165455483038112021373511964640927352859335917021193609897152624519742977343675086205837424895199163795885866524760362439818600747996736105051166711120888070641645847875226576173721213500311701747034920944085466524546540624629176351429058747043459143707442585259751668576425881144496584875427348480078778108397581045864886165483357745221351601338595985027395940954644206452239692839276683579806740782754246433176047551604921336372006306722233254464341679149114718762197109432570004683136707421070136843229038538978144044615829356102935349750801977930572517390307042004658391504347528427443394228561083386541883410199387514243879909814376916777281347325440914503749303234364181110319310202091493238728674582761924950711654970659112515075606643729671349749839917528479125766944221758280385703938322139975933080913762325812213931623070517796402384011494919897287657982109261900043623786154733995807575712299018132580022827109135327832456131480620160266383380309605219443019839138338099736585203175666930319877878111962269026397473602675194191342897858297695056557020063483085505176803930952776509643524335211273357002581429825199384366523347057620047307956785785907166094047932567787305685906982377898238751335940552765341592542474994657065874745292997600938350087304436882170574491080575723326545997036833782315747183065471336475409462233188874592104584638306538410636310767547730305289403055682921934589917711699745329156376640938230629836849225342309537104504455152973786809119295463572579410065019044835649110104058237149646777046347392265212217882276476687727489276276661264472761793706534988042933668320363357248906459621146816036366063147068445792786284823050316936958979063638949343981298447260542715873385317676647350266875681258640196768594114769636246551257805094941051552287856529229638967226541594950067950774244409456053831244669143925636216724059380416587674149171283505059223103106058584403588181722219417700643758950604376982023790483627408047647117959599022458294285094212910236034814113245615140622263858885145899564669877499525833079809174840579925783009253021531324511814294561728283819122209904552157477365295448793319607510788320499766613445111864884452550718351499647822690371235069837691044306678468197073904881345700388439681455587146510743885714985578000128717049304466758810084842981596600852220655442358770176123921753875082552801648101113466053737192505636982444222499928791858453106301296492855970757297716698188448244997563503119827358578736466693712099474874389863255714213781065457673974942732336363442955897576207431108101426934090239583939715216170656429508816599193406674685319742691263474254157517812598516999624458923487701330446220862458257142924457815277596398054847929578462990544781075353669435345854065220332685713372814801554411042092163953590970626432580392921549064337638727543135139978880658731429972228017443037688135936553146727668184343740317303884046022900907091258627321332884576059799791726107404962882535683598493839290160058892683312726685583894310959458488563313381287689800328655328816056902487500339544413403018086200510586870435204705784405156043776668969495657641210494778097847869010229012075575771274652974965126895064867101428595724913853553550226578777109480840876402163399454966186020145638464817522859852295088803141444645654814466463615470467438415482358512932932001631873373418930323927024984198406417860786347490470153073450322359398830384997331735540745728459309486737465332549746933164212770852601074976615159865880304399560880513591315183327341653372684562850675101563510013061179427296898646567624857300484254364981917813092426157206020850417643412272953384962223384322946146270408614195687935291598927790452362048764772148469110523020771500445189247670648105562827799812845931949653579674989162337213238981473961206646416698755962745140469017526532703880007137672119038930050557463086360153016155166357049554123677296326173050696843974011990415679264710657384105876771036600931298101746656039349032055360163262856834401955317178150195458139791083741097332065996325686815886937454975257609330730582401560098893812523350147907669189228871036412969409528789421716960918084546912182690672386292471916637101122359263224935823349283603684818753733995581272044526331613551998163721688769302233582954201953449292875516757099319315497424543118033479617649201819941984157396419039175772696656185758449464992009035128914494497821354802174577729620411472847312609501994467517804983420940178303991920680496832970535123397893789407098163244032032642286250077375557210805348842428028620864953774426012092368716376861094640159140450031547677200729777410497736899199123440031370981163676732233412835913298876124788368858458109499312371389899913459295624103988160268651507972201570509080496838670106879756245386894912879715726176983405249468419222860097810754882298176887498183276486608020339481863099520649652830319965546261565629298788546514845853089639883983119702594414969122126460638897659921335058309581215287994313283409774942952680527286859868599252567710590017005640418135774955015226864027556780786495403813891063298440295897717089991648828975022047321249123219818087030290229732588330939473350446992397583665058727100259040424403768545021950362153043500458695182623561835771867188521682340303742010593466376581435644262219836980574122345022019682143315578076728317480030743000432424996586582499453997633064080962471467838314506367722425221461104690836041727693951682575961869992407724463766529275371843149573279611978530548708578432409630069189708692329417353872230367985270259653438306885769575830991880215654104723515572223592336893118497497384671577326247872214620565808019980272790615291359100390683409886238166970206100541574890964470198460059300311295526772140057324055776072838994202695208607493307988685969181595908811329406806578180800336994431271795538847959192455078134142690213762941338177131563628608068979406686694875272042514271839480548764566750283037299048152472306503359498491734715066481335726205244234057422310137236038196407954098373635256557098687068444565803678725210674859332698492420588597670938693757056380588393863967664638089637005639205612619480543957185482247786129925849659200165888384073884148058458683333156739641482808991186248962162959977559388134142400345335432842452262051319133997468384917040999999844548466702995735284963897389094575568883673772855772099790586314056391217075314605763910870636332616241372047863845245273859009969128382919641781301027700316039498593222421456008156779137733414614469681790287680822580192466935873376648922689262252952387219108870083885576134477807803344590394028346594248725251573139518941537796994094268678604046256777628651449391869205524253129521256272092843621941642368831574512980129001023941296358707873810266181795235051673076991687133482289359645678196170536296142925347669876582853316568857460831209921897330287375243341175936112001513406269733007362312043609671014893289888478702244256506711870959274710385840541231133480340108691349945043368798917563886293414598391242126949476900489069538021902872739753500341795925551506170287566026122528959681768327866711547117053118233739195687967151349400515966132581559647841561517854986810259406178654683309014446884921010663961574678211900477508166859066615160733982352286993973303756675262296823382293262862083326613788970651627921732107651956859294253385232472429039395249911239429308761354050443616696577327823509485587008870499029319548530719498360018480648161111735235643648811553220004041810668706798201363513084825966954859053635223403086179789978172681182404052775638222644815987524387835030430733850471564713765912974626557285014864407032877945103368395061553999596359558674096550371512808413483081342272857448554033971653295864573040923871785571952337136677872088718342211165996285848509880201831466586923368354380685275890324593962757601901724815744960290678090905735639283725799306496891212766640560978290956236835919971679427572601542443280517774612140741584515262939110411197939188253272042965574041341622606868858094989745667442091159429428811864893223355323465881710883232194300200306344048271380258090782181656977172163452901505410468201052155094736896998467090990565909355695941304879119242153063187543100910255304364543552122304226300814674535691487009247711201123346191587843469547079956566996612526282891206508699533115003974711921416945266397005108494157325775469015967772155036045089669082336789758847139998574786248291635406829031932208368220243219621472174764766618082711021509123702829854728159477086190355278844837377007316156716089127711868219079962753497293665197457933300571623467324757611460559919764521399509973602621766038655075275159168068582355618773121842799283241319145765261259938110283591745434884468549452268882905388533538189188320084934322409431589792254635218852000561310007480930599057890102485671888301034768935292795746786960036480276044048681456121719375914441966026911399132997623921213680985624085925534594239424503074167334295505857576493223796716583293021147322382387957803681041212309547386762684339608313715615128042502560830624863039106033184437408615777079241688195084070108754617584021094900554330672694920300929190967930948029106291418714251947799621806653552638736794310503231893725458251282074014878775044075062030662970878827204712537910157470873798727130255792179052712011774109372199077899696828799358815167798857709008466138196108419668450120040334686653883593118362068339864893608795855860995173243205356217957689699272499728454563486673851881864526377077301592851855952982675652168602713557615416918346260499322568053277067203617312463641442533014975109646252937395128343738396460043606390975718698578222731721386688214639263375733593623372159782449351639416705803731533373752307855130523854469936759154749294344029600525261545828679652299912136085594719378774336295320945135516733008782155948272954275234791432851260949249321325225844005780437765903316859193023744354617641943019279347160340506247552506789814042438205725986232061855205141726300214233210993917966734166700752393977270529020859077952816608179898170780850949121852787133052663987756991717940914037873883503501493400020736346675522111799147048107861149671437523372534460924954615448577313131648911195453092487827042551697283579837703089038568150639921906023589493662053399215018699379605589864833720390105819769124307851166334700397486221884463030577308355780674610970351527695801596756148256653326021616265322388491483286501654752185569284451549409408441085238396636012187263237466234669858500963113007582811340316159544200668244555202869975439759508275205877809999429338421353203127516126772525610270908153149044453934685539414339233800147118143311802315637063015949238448145079483615711758864780447088678856186970342765631914628963712643058408906030269674811460875777888249760455216856295918767226582362047104721181504571328144599023743266606645040359630700100062032765039548070551176237938420286233527354120669745155509595847710684210695556505275414172634960077284044323229819344899601387292938992977489162265912122358280444922213295808428455891020422728823250404633499575032291107395931165991755253392092106707659914420567915171532962171753931663385575059244502066438656388489270798637455324744159261933071679830232233602655566616630490314448035559752508491780545250736652605488034436470971023313905628327102635277442589916420569792977882612415730966087730591988267849560867698256325434148485317190374636675642866487690330635196817361445344343724841135026741183001904621982383810810540219177901418942355432657712841377657002103907026243666027718825907234461060273940040355021270857113465055989491297623153474251351736899784823397300941216576645945215433442407500930253573844595972324707546244564540359797241321142220743650595367020077089152619017462961545688135217438813455666381944931616449711468575982426594677749600648282529929459536151368751480886553031044700418770911947613233451507335311633444668087765387231444694915088848778182909730387417449593922240021756964453540388893798420168288041813379768324468067902674350979475514367778506357585658878196032008175740546969287406179828540089259591304940718170874662130407851523639693818118401149485482838192598888795536689932513997330957501336388475647816722616827263675426881309731935988462744644618233170523356411404186595576572227010245440814115640803976409941322808828561990510725452764835896306068733521249151731089877962638849560995549600185935307919568801617330774278388291716992584644260272084384971304884182341271473991288293621001529136790135065699363255786903062282584529530822842373852187807810811775873609204327422465211689269713480915930618003534660314008058115259503203688559609278149436367288648772835085508571087087537674799976649764555933523827952834398086824868247848880007432564120695904077180384422586736135701489082480117698532508509824817915128076101202665591435396507129577388338194732901731395765335219790015216288294738305104928046309170949382565580260563102795282613317982235503234847752520811669736537246439325890086195841238037222467745914159674009326030054946646673635632573188235712055774742827173290299528064349325874890576868000609115867540910658268044852096268876108170451645197758733821014123751158715190212086687581515422100500283790165451146674677161021157569655519208812511383495825311602802111913059011167357232159670545100767200693548174384968318872785777693292570017283355129134982486584991669135958253478832923606352323214919903573744128790538554925000672080504797816369153798676031419761821981170557499038365709247489788485865952686928995397227983549966820394033199608208665099875330863654660113911730191569485678694131776190898090036177576630905898767222904708835876645169114103869895184022752603271166359531762764610048845510297616185855227021659654867604388487737746730926582648393964140514382354089028667717955292187967223826649272981446224494833707747628695543466136325036833659903236499143121167336286567517603157170539861352616317070533935017318485097509430766021920337756433977571623792211660773617640512396176839963359711442847576833617777998785351892480551733124802587242632818158593694004348007887429423638277145981693448079119116221064985106814949009267150978788162839048565901773351755771183332526200101825496921939922839539873380656489142731996582872943008362974991997901334343765849636023128949383340833059888753033153467396839225378130812663629508425944454783772251778904145616370266742027847329307777028956956173606667924417954823919315025632603942539163245171705060656884204923469697815849493075139839255582974349879874051581916796863679642541524954696874862808003971415051496817814810303328826100989799440498380097062512657670744441845715240586909581648351153863260808825605246371552218978773812918939435631139293256808572236059965824790845874609342051454644309829728491372222249438317688975172898223647358608882889495915395553668812667886645235949578288868382069238399014092086414854937063475304769086299620831674161336582576305270923506455140258969445076065455667689650734349197590617996024015899458162775141202302624305762977545415865684212170207739829942482998183433646660406741845298833528259283736446355623428270158714124008968324530360316233676563426097066461666434761672738625040867623947611477311823520415406357478961487260410315936027359396125168287693111954219672243745598755111751942296233872389865454364063902143087901871919835613505390656735031269362404773849247810357776448712116221049037709212737133431758538743299109188706121585117989727178462791100051786983799258093089144125591700536544160981420264535929979790319613592072710446533370910506575615858598333833509227886267447621052179224360286423993076926055814877041418140081469925467760493683768327242078327992586766298368712886490389291409168464433826375204806620140721505232427877563818939728514045112568267445517406788744242934491492938758111491741541689677946165859711532843979407264643084128351795733385841240086075292563120871668070227862357842594427437929877575260206435937913354942253360167741415356641939147431334160521104520075719121263028872820355478935956000051651490277341508112928687438470669570854908242615184690074207367576786631623385622434864430817035348724852857445802719919440949287436174302819067745993661676907626643962580219355981650110293920617475202526369937280581678526496493826828729218160024901456122588606549023122601606001895392700441506966200685301699502548127898652773525177396643840768673195910132297332634400054285589323765783726607779604474433736243952836233641306923929301628707275791811187517118173633797982293032324338524424899179002935238396189554022079980874587275308516168726921583017709610450965732700521148746976643365834279373849203962948091890920896715340085210973533767235906401393095841857032500759506476512224374655103923471707096309907920480618694109881193814075146369400131096064529131095200856992985028193718285908065581699831249166465441622300562193078307334745921766857831833881160451517612345020381786729447956962663514723998861654360183451083488973651703088431217449154288594554873855764242784690341496249103487345892936495560800580692673553789634960894909361133145252732444675895816684686728199848296493022633203366151568924431950510776943535289572592763427674160528212520245626413554823781735099652056002163354560807999392893548982892594679623300659086492935028915329843797455258190797063408712091207556193055661200940218425560918610222878212629759920631969472671200515106753780802467180822088405121026166844886885553181318946867864710173887516904595302673870174561460331677445193714226881901633700420194542245832376993626210833121708755661676752453934556688094377263859541214395747772137444057296623139894060225540832446581621142293404781814473397736379904263069359750905980066141563617237496802092014976555389045224637212763141324305477005965758130095085603261232967935603443203073753967123809838065452742770023526912068361698791257031423257838506749518109235811524509579089243559648082954432718112295009051618706783342892700510337721904416077362573128829412464645662393516143123805218119882137493621690559573108739295636436507885038264231498305070062937588121011833114999832467607431477537956470956068314785399189198361510586960961246209009229872852090474241523936149342600685747683602111948735029613865197911533849642545184906324576711574024750171395177891890644825540255480599227930309763564445955016447343288452978545483556063184533541794152836845699969471746229429708757543402560835339842617372797004919324620941217011086722951286699123510261729389704139786035367500204896227119640962308106578380889271826167880926711291900811501711655596932011727587715987332633869436590006431765329049373901097608485459488997506943526548774754758543366340466942528939968680244469255340239676790200401743012598860466589975513834873779974588637730214969597894333596032745132128627382808992961324871133052877314649334299217946373818081701281804861321911886296211622723449529009633027590201321406758497304869862202642577744508967182093100841678715207574099589732333010477923209842913925978653913482753907397309953128850599521646093490531454642550605393945266153385060464749042147643863731315077700420524998468497457500425643383454424435783274392450473966025241984363456544405946125542632885904183731578645682576832439129044470847645034112690407371499752739869116731313191774300825457351254478839030038675790238152689719315126469441740587208997664093583461560695633400292706011016349658169036407417783982079030335301320497729046053623413874357373910651172251276941371419710887472097341913984311410173338428556806051910204379457272963241880463189150618931546740999932432381894864452640740825681284178120843795783380010147074665743027731507723912282883415047352163578532064081004881345150880490012987666353843857855325407275880296852392322216541954658665709502139349587762278603434005422297742621532092078405026605514716212149755264940336898425774716162445622930850565312477477937203649092561669898012358139670938227658828285990651775395792392463505452311319736963601380072545347034017403791067226773376480748401920222755081181349283924826184300842733331340535247513609938149317875421625576411295291232087046194376517541321621379374643860571658369356532012802342557575238601483151275554807019527925125934300682731162585895249120067588999139514084225400303408095951136263611822424640687883274996220522708295348348957414734488169636745137369028615847717329621727010777148727464389514247637815445942484786898572627166260267858913029397532262918427329998352589326579408573847193164165697358739627742986331479922266446622529715848523276754188847460387252745459913500526791092237846144699623448147542420667436106952985768603191365403850881908824736601881443705275864269946577494229683469354022690437976296963824305356814268951156907451425143154688509702776272974701946714570505535678114469121879366097622342931114160580074563707954417917581381175404607599780896100876128906339123964092462578565048875443949533928385654460558789861764252098506711751961351815394362315070596030848099339258404514416663624404973472020670758736424559373138715059584344461294596459214118461958124319604376450511459278775329704045638835898427118683871115960267170198723213212852518481818146866862710110397915593184662795453270572291322539748466205725837877904832436410743015783087312418051166289618952492347397708072406325805506333568025019415421517444995451835550954476974897531536520984061030562910271166085585690733551703753822909514217641473118311364241482569397071121383803222313720132524784690900989320125527360547717645225625183458396622268509205241323415311618355583065210064511229865690286741104990600170013129317759419906840054490322630417129002572695384326415296070997236503939210446062368159076921660850683563372739143410878452899716486928972060551456079884942036237722512409949212943709553460157138918159412152388431775704060841488603303193467688797487660643711667253804355798068847462302948051532618366365601247163912282075089757729975545033280798054817949930538785909576229558552217447222387959933762973654893092788173683240321084193638612702771387902204085662499524290543792023285353167228903471980815574478590661271451789492918887773302420356047416472653380556907644729582340281275944949463574432774617207907455941019880385811613042004275619679388082355187467002484523702781550778601817525731394994650399441713943015620830429656500509096887271552149168710847767559477770152098714815017654900571458366509008552262115935635037185437952357642914447482486492676871641806826421288501526543826443070825367569454470588072232024550968080676445885870028861088682345537617072772240512803514729633251536476540883288911122903626734282550241320565671329946356553989352340976252896229599877071264283419678867677349698811112347717948994824429777286485984345806426384168313434235525594616296399687736227908086402549800268515474197962438251259998049521389098934121838739178249388671158277146832763733825135784146642837803489546745852817728171592586716500390182855745185615214356456037664183980959515171116422169784327698407637008820283037925127098194104934591824101345430233494296631577150805642679188315796884169727651252528816949583525548526263536717661008945099265303446266160135007710137556819143437882854960682409706360488765496076203074775216450212918001949970337097201066970020649121626580139870149856631729673466442114003931538827489023882111902862967608150364754948082021588984432737587853060515865641753366774381015481350827871433905085517914017109772356061385730199408338938359421769655903524417794446500307075595984136512542502030353398398071202095182468994033808916978893328226987907473413171875080632147790197152664816722871070100631690380757967633321016680475216677106652729520121268378126635794196830721454439419049729894885430617235242812524735313471956526199986714785696791826038549195501622884233048402046020160770169147138603278873074205853774414163075630748001734588840916303433748649097576153791436613115317354831823355806381662856913636710274684419396214947870717177250661853504785950996767221769528591610358039348007930666364018341608857648568869523542793300766031906344198053666903511231986955820049152750723442588770079678312980244979126662250211123959701108893114037467224670991555396941190154498091479073175534693563122936645190024654454636630269747663062841649857990468786572019275548581537762905223440239434374788044104115217063581067332943330143477349846793662347032649919606841967265734141210779762592065300370574673578282950421716765759796625200706305768431636773501585448507285379685775448984509607294853800743174673255550184496458293956075810618740738341583708007782510015583282747618194944929990416765742417920682405209799741042171822188296011587610585222349623426474687866731701661235228250769809853582241619071386014769301036643154111625090024128738173931422115771232792935390665037385611774477379075418021568341056496324873844197543687600638657227073867167281986709587740153633274041845559613766544233745864750369732650151311006826323186653082000135053216226692849043637717506414401953940939825211206553043632705435872432218350200465751660240849207403519877827123742382350095361662416452167396181178867725017969280630790012220391974648030848485876663991748226982197147088010897835171790815950514695961324342781503583390890124160682596895037926500537514936098894763572573395950060518762711154104981927757953430817159985634411627576952618571691528827653250925593772236258420766669661478997344604891714331947072499488129267684607793244513043985134406813292915834055679512676495622722753295105471573587246709974540610741371244298375994601043368170459632231662550777715444628816066780810079115936603147634678265620007012990915797339807604358061900788105221696437041673774490593136718163296186880859171759535331380092007945083456426666325960499924688657389061619767689569365043395223002605932878699426707863034193467720135396707640625337610561826211311405415507020398158528360479021776401598277415150652908263266646157496657880319946575763164678702196034343659278163177982167556495644633468471427158360354596426355047208307997561987873544649236685835660669095100000943223092898894524370692802221462825990515689190651643198408918704861435630834759972894223954336646364563158019075827642857613724812834677063787678512670981536201781773382914221256578882663625560244708937231232836189343853272653594400349094082233173655994758534019632388480551696170273751697457939298591340468451809307988539495746703903898685015623976020596569616424809409676576938346221536801951819299512747821122733671072501339408269035700677101443613147363508640054073147441790352746840085274358400219861811738406074619300135840296251132868579430728558726643819834826709337582645015572710070221254281912037025554144055827226721985084092906706691168343235853961642421109256439591169842133395340623301366642525860854968998949063430674021848466308203576317913968099722138498146866574277882102756954529082546916620155322158124313373055562166585125431975379497839935857058214163517109886654821686065910359107408457989495226815776908283999436829205400946265903339055254819653886569086178719116015640991305504539779742803279577040019020214884384678792167542437201008742034385018587907681833175846262822400752338610779684209072114636984745966094728748469816382576607198857600339158475358877131984241138049398812986030259525944508843853400455930695163701821733523978517476691610666243690880129974834166563853137954554681799638628272009926250135724347300937881328454101230394165973594119227426107525571479902457342372789510039642878436034592775324466843250489782279834384881873258924311100115392042101383545981427948399177811506396429503074419675031137603502742552865394362339861004062783066645097627473995880287026109922534433032367873309917392709609090256726154765728961875519575679982660132920703179383832893159325208417599734659108629285282981526967533335359987029266436523714516426225688558992480632322641042888385530707585764678651814004106902713968146513036682969555116471805612699937465475823495282401216977818071931127604620041834077940763207396852087725484035040564808582454652978475079543481083742793861054387370602563987546424044553801465959790839860852813295305805920659442678354624657558044013864634535359444820674691493632595213275091493661272124837183063733618580116085706679504951642793584601454070156328298531028222305171861586526642859168205315394164686934853075387283334140858120592577186861069682503384859529123289865135160987079675217646921562830399283126798819680646125055058963631230376595888750561140993985077654140863930647041325565230393527278025600451813090220036090713198412314818819685594101986654274015235452036208595438891360528382154024051188036492550078270007736594634034424214777697483456727812112405500100439293884519556184615078474101057752252087112634701462683286950111781568272618596777556181638046879427238979725582814649688442631314201862862490218024254969888891431963460987534838420204416054575353837129538499158148980746059562088126163610765135945525661963543657227851740453765558161258217637894911626996739277013948244993642805601690098976280159459424463902994272413802156128797834502756199355401116113556670770899235510637017881780947466923688917459201489095588719420584595264649212676130184452551812536116443095256859344347836400925152762650360478432524682686995040990729609167785936069078847334668636834027270025619988007570983228667842915659113210285932155705538445905218782527247013655342946685385780363291990834640325892891940432336723080084035966540659309187848592352650262098331866939324617971343983070290718958937081624390501044764459123351691624817646320584428908647882321778074853688787840931568661674159523279559335129604552929873463658939390848385805492748425706118990905233969693033185273135105950480206798222636408658398002646794721073694391133841034738893477946903715579816218318848868774089473856062943190688041539367251560414108230705794185283435624750831879007688170140860036541268490563026008903099742490118654832184418116078702997615795523059299859178607931936909455222886651015115582413740015817282899857145172155237785162309045961852251328868728259164003847095527936306873306146697344836445100889203448316472481611179362755696301028955237188391612811332318866557736106187893658119138850585494583368982134214189451356588607920860946906313349368506984607585043767135289876999079349062006538727607400771734074358802804017415497021887856022989038384565444865535989121444833359759131905685939034645380123331755700023218712924837969188979979917026517175429258512774280605098114536290995841333579304124966883701968627831392012555852377132155966566567616611998555903825070422282036009957220587609370810953198558663956377138795109909493235544198423346882969199334907410531155122255438524450802729224393587972240121613205322783087824938942406541868803413483278994370145131395594602550068568839678507322335949216916855973979602811758259263939242493085624022790247083031389517097877861197706377687182247996822313809771531059944455680638039580093747917159268036305503618499269795844159092240374384588506077398187315071012056855489039176845215738241633771341373790560347956038384496092897942993876764690909906378689603176198642828398261218924257230036126433168847019210545695804314206297978572320242494560215745994086950607714623684654380599158181864595138957556464825998142394227356599171156056039088209408348846824824742566103256280413716645554493966498152132515148383948699650820435638779966077719715671896813069999273818273032600834710416505117066634314588384736053408742990211769934734111145409519220595678881701259598979723358130644506377759643151791638232007313244858168896092435870450330590020279558515474125374148610971555845692176381879608409827421697465754784630434466968476755497529098044472629488233135075355653201668045480859981174241919653017888431554833659971741194025931781987704806001006746847064097187217006502232497134766118007023685272102915314630241794341508776026990495268083664258226189228659988261893309309705691533363413857706599810139612691914731975682123397783328158553843123903269888985988555021574783559514373291976222638426835192391555372173857345161724066118322151513941250421321966351628612193249763897519144900448654272362490004711778382279712890512682500522131844440586004546480310748207140444474906549478486928429266808534904687379160733827559053722932654701865122167982002486438070401552175647731494394117108664927325833041742922679420802599276520145395074682092244379495959201638158014723583007557442719748975082714643275379355302352564573677351847558917603968935513693585960555123267825516440476059727900044308013013629286877796882531097430561573945247962690754188369875621959435135056113678182153798306956443458181467337886633848793181282995421923516108351461900542934994657937110622804068997221246862889368903981127846096943084433074141167170792146731903341207110678764344129901017130745724896678664108431339662413027731198022554577877879060920078709339422597620422585438682765926623309971955409710620813846577289404209375903513588904427800731416306495216355136746971976516698720271870802493725341589995161411489458695234776151319970956920715990001402809561848880589868034281238716672375920593596276947494840318018633703323329978535526187987955785389719292869022597265392252476426075777475460507059140796729083841283666742366744250049037990767228068892930886882279941532971369154721577299165223979998875638369477430749400976880031433206491793318100507737123268463032456941114203096252260071574588731468441433674734172582400988750663109928599519550277024841827091776777103386198588391012919655670943520779719158519563273223687332985789965431487645021438495873294804087497184994138944093166095255438723473335611268262320625920691297068901209772239209406741481570650013384612095836754339513108955803150146818570525602875107637583191500247056685867502588851716579445620636818605337141532500812375090847514187248360394838778255273906026737672066578642081712065860764762321875708631765956236687051415282110405211797475909179895312027294935687595668929563573432789864482908813163008031593055463406093735796660762723380687211787208082255072853955793536902626559978585761727008549702140966044808422503678855307811103457740339591850237339336416741835734539444643069577597704696424657347754393891141488488678458949525234944009583104183221481159838292705603445367958843267234267598048652546049077696307130075225644415829472097599860969413020850170362467566781798188506068340352117942124251939840406532970454718832416437755944078013711549743992283983239733004625010770829405015815623301582998429249110257968135813402401778361300832698985649337201032461637524193976511620505646290195765566133357099939912932203076108991998612145356495609834478852555698652251862237069966780930521631724973840514680490936652151679125666754874175572250470539873606510309157654609312297872683327871691623110215168959487717014975879532977218235616457367263255232435778432669324245999007252868061522564347165841975201296945525739400933912723140492353652238952866920776955421372425796424827289694417967547503662442573222472722329264268868438074579332634230448413457800606512846307880147288409805524742312017180435431400399027027083671569644798054375594150119828920546222794103370426937585225259813800604229396957516603243063340119260672935336245980221183709272906694349997397803432683661009342090676164939874061562638135299016533187162981887911071238868110740880769818952273557623757571493546999768616293536726354840314329877271220816086042767381244062354053512397095913616921861537807266126043029487011314726440079988141494704798313343024051275906185124110529219238190248602482721790320312796382649150240538965670798150218866095553247614908880497636204030692873100426942576442991379872740333733053993157780959407109341831198638447554742526502578611391257069627240923141955646208207970310398574586472009414636026335721776406508829816299789582690271373103171289868212033281560996148581236708654738107087325939469756111436621578819277682890124408906373931194416188996766242337038940217620270230138617078012551167776221848312791747560168676065276299749733686224805848328600068446040368876352097955754635199111997534099744259469898319298467955077118765808212617208695475454487144352017664643620997487113473237274630490394679809172001233111443333935848451381906087897868294130068886844880048887558067973945989867155327727945410705001008028887314965982766188870795737802729670063303454842596380500449625771748365187938478406340604685666079841316399150549603431661745095380528032171079341702272495899582189083353526585119272908692191461411602075641381120887317783743478923571264092008564326281146807766700465089678670507415807508104757086874537153860564624094259605674835116307456970017041996501471172908594436039523847230676548419606785378534262044607609091987943410799032768053505287449005286789366610828753373800321621316910348887758660643373739426772886222784555710531501876602946691070114948627639265899344004237691087519677995133134697294971361824952733238959277136542843846845510222950256075403182734073785446740983823340759243557496990524807454273946877293787103904036231646775268683786885019995402985387614513046462310154134562196891348722413322975173545053942391875646530449777667723810199490627182603590982374629733030874658008588200877009181942371927894547820889062469623109850942539397061562600852519523788899173324445007500695649567466832281270995109079589519982044067423553385314047268834157507632519647310535191395016107210479326118335870968759638991330911895835920223718923703979868613163553316866857432928989990744866785314642762424327498486683003078045073499551016767739459452128457787173408455024951591829465498866611373143592621323763781343233605336353789922732924488410436625357652917725312448830061238519454791744707720172850765322904452869734360600288812077501261482723907372995669552324016271970541739964646689763108653008190234703122452222568856525375913714242356098736645563681935603446139360350059320397920596736841712609733425907368318531924516444030275860021818703193366041638885116925524385331230198695226745039858842419200895523816684184681194396678037884000484334741007500364579623785533217182768011316535673706353537965957437726039881021783584315454192393081403821309414492119035005617623613844462749971144367320322487625841664692722791515867487822872136419001304815065413602266988497426468746776122537922387780665634392648947658372013310061581648278476646770184021160475273819449651066382728113155778695617091945116020216471227577143555770031273906048819189166904275846809913912208382457289031439987973065517005600275681907819495674964605917746007749040770283891177377570474201549572773124113354082352195180606961701560400107699319779877094759893870028678398887065821242933461094407852361154870338524517312129209741150843724501092242625152082041570976765778219412877936064846500973526817727994623211090669678441098207887126541203935957000739228120054091322714955096053254406669207802840973089232299949386657437111458143051910228232066746704770871909021989951909507348909248044785928190026821613934754021077580152624907261973505208008682550889266893159921138409603685795740860122467689384684565217289552886405223112401770038471486936627710428975271096362363119760230449366851279346514377549247834017684204861133008020296961223934259376909380546655582130973666131475237537501536807573763429774007418426136522229441347094823179302676294410909426223415847894845366440934352665253899060925478092911140735431532509789782950494264162709259388033520434673240021549797825920678547843672706279075167655016820801480977705315672014011800049022109284722420126535442698139573107924330426684985108597110114099623604631099862790599323526695658710966288969098472508217327114447912649942259318124798610702797103190688215461004886312762287052102497191906689471128758468642629068341470644082818021587593063230609286469639251008557408644837880802209333457576882404241342775393313870340517894572034792719213322715069668611081951273166768078511266744329101641305948269802669518858692303588198181705860145697441182049230263290891856663782783821044584162411490799966630476855644671648403027702551107373102599439741694621711379846943823682320121072745974449572200112476863395164991905452527613331318645334572302772076638903194178152763400298820955560981738826482399429415100890449834898455665445925905345340220146926557072845333345672341196081615413396546230653482999431267838575925877453363449896889187064851453066820997554014653107861494182818002643283478776754663366289306794441664485977757375715298769496218469001700495198237338875994124686870639957942748865751670477519878307944666948766276757819553531860700399620757795944769648167053943120523400923562395608595430497802009911292243534615449367780492070462637144653751052893987692554908527450501652497028695114180432259597206525715782299621076225954042762793242292943611688380727850734300368223770440983828449401900953409838440707384481114110117890329925203141035152487583904922878810814549951437212710394279892240732731961134604331866151869189398241365542792264865801750278171962854362133531680131821946416928234702916166149730655797005577634670836817707724571871780978873919504086927184698823953535412910007146570458498489200014380834223995442091050360715999341606148368944970828585712245225406905507943515018927187108402075921046837185197823527890492671501982559091065418319487216263800653817397635566650034073244577341190790834035301093318417189506413192533368428056205615069468210330552972036173583885695783306929966001494040689319339140514894147569244077916711111401419222779896943396146817641018296107858289526939258412727742215661777868662086716104202764706912516806835240499325429597425583448250673511042884271750484671810485253265530599490247817178957190770164949057601238927844178553455195608002828837830100079419004484340952321578496104355574293724388154776175731464328439122572291156643293609364874907070483702765506451877800768879380419578989186764032641950182143728606461225503611079742808874206207198316066915578604869513039823535946507690044241681951167619468049960359978950443305184314765164439512421475453791726579673560299046027260657207315286182758920536340514245031786682946466656007478684710906811741011456612752677305077928932593516913966429236626867559477812695826590492473147792956470781940941346559521349329031373183659502313082440723021201194322557016691916626130188373925128585201451712156939782563481703980393878090810484602167057324634102711650673554121717958379503610430924183037028547687503918735428357096383857469547304253755467378675581546729118678679601743711230615085356712528938251845968866205748787561546285607749839356585610797850501012072540137890354848304874421503664858176756321410536487131895124052648615509187991702291862099279642543990485391306795956257869535486301353944199383073890631587247453993076750270100271225167097072052237971582071415517354345964063902472614110088343779329396748864080175102830477401980868688626207221523979523828272403801108949682428413731214484187635228341097709792315257727139408745724657540956090519101049356458710227111592847493410847887675347967153007846288715063841845256943579442549988238458755884316257675377363714638159658203718867524912082082246166542035321707729018008328945566361198392152862189284800789162453435735215178684074839051195224086261857565415976815431809958123026081178720162553912406630534539225797394162248257084793611115811978406238197278458744902619222037878695659434377267838756043066114850381207670853425801509602578621551291543867731256416990398239925661633451932824420659856627023040721491630627548899389883925677293102039111854982753095655305304879957270069854755152200934632030883532699203910859413290915219014504606498879838473642543988155586767348847290889559757777051062529221187594506297572620670008975577663062610711113620277033866831707243356272421172741558181589175854802074836767506600310013702616065017263421695483003212359610973802603911073684192827164684974233642016183759621424355172391537336649714355945795229753497054493130229539073205116755393724650626961493604688707258147005474253669457819612669311602879546914508713662003724691478897297028437690358673579146678684061731241982270679919613979771976852858263267109086139740050902530690001692758726117483110645938992298511524351295145571335506027690684775476510541678570601318678723538349683978097902728524329953464037453340832743846125369766937037990916920790976091765054198087377684602545935991692874765617051935030375986964638159229981136935811251997164358454859790572304246894130037332384132307009720480993246889338539950720833667996083547314008908130458809123997709774662562791807709499441845288650127013951851825308499441586310194661679369827640905580013492038401606621711961295969720811758642582687784101886397825740811029428798238806262170614239699719111067391505394068671499121201973874202549470955908256161404356071090913245183621722004990713470110213426943596230247417709416458751830747664808747060672915896172943123109485203343082497735356608888323641369699846995025528132574414210241034584432712910015321074879014105130216471490460621174082129729664977357217965890080534491277359825629799632959379217099854806748899852535814571171131009845610977258069384529325185766838412354809873189255822799696042403164765867650270932655681518664288172496052972638627027533504057176400722977640079014941462404811417128844529725407488398348735583354580802330707520928157332871802813209418898916644017880325524762131420808486748858106233382285262398083546959170964784599328297068380055444328183452325862868399189649155730757320917225128075831671652784086771906246991891746447055321114151208403777258416000874673751343354553195674763761891328674670831481463499579393404862414957223225339596016378250939776488222451631135987417438053728602743794559233272304768727389239919775914676118933228682397046890295188043908735990983211889463484407377750121382537790050210373296420247462012828783278093993242434659669301923307337699595316982206925484289452904443824058923424936790568620701160838956962021019018571740706572655175666993933632024242701080238870537747696632180682124645168346957040282781571584658120606762725873793208734477184245069564638889086203084088195933198823523755890975768752872296244625193283762344391582163786672346350497191566053114310785286141184406999242959114999994204229810336337578450238095591915364612561787538689195064094189816979969003260283994671127796465060169847272002408771991068295964443160694293130834102382558663951906728860487306795766667113494465497623356145852504561199143049403335566048466870477422653020024425677364916314298029853030405600673233936899113499881225820369705299513344532259867721261183242147499852198691928986156084896017723328928054371400301080202308214678021226068479691305827694518764767579692340072597604495075095204353931981826391254550101832404744893071306486542417927946941103410304801330648574292178664125190627658776131260568228527076348347393309654206756372040888657087895049845063664907633300504429119125352219148084675522940652763875631598884469597305386704405227769717058719285994930794446037404015962682850428319191988252851995175399488234121446100438394866972362864294995475048292271954092381874572618100645545763979633836581598068761119394498059290909594062879955857246412690311072011496094737787145588163774187173728783416482627440764313015512610204470643054056507534358816536517796627935002871976134677911616872006366700233530730174098239758229261768083123173943414357635808159122023103737913792054213989115902553060891171094816345911689493016397366656062571001940777854275362154498900999254423313713509656224347855372735299727410619791673576387766547888168647731841993408026185232419268193848721672107150335459554655370824667106436328102386793200424038219035803269864992891093455953107736975265123797970008348807781635601509209972904537253304658373032872337570567963545896724292204943422216063753699753326998302040038839598230140613836220842251822045470323919419001949829573736230371278286709516392611127613324951593329906632659482128341396878155725887537568729478277233808700621405763912292800844121995615018408671117229379869892077002374197297288220503089569256309932679615225797493679918053413771030590681963149187030010512476977389891249439491432140975635753172353963220278285268291715182338539412573927835818882496463042281346054070214046825851091717020457636760017530955416447292955515893608151695796512148641289563371792168509060639455802541549985196092795711211971871508747261899823325618174161621414520224231482451647150065049283710186544009389891625042047961420702169248084546569780112849005177869127537386358600129639872689596023755733528632374660289568542604793422317765294142374290808869064772672433071461311791748906492738308228143296822782144924931252369483550884922176900178996431535425935903971521964825429983061342758687490162155172608455332674528310949442103566004338540084616201271233975427658450028433228778923246867933833678604925362763969699998686785068500341386483327027369898334189709752557829106112848297991230729293559926279086874261443205077255471904028690753269418929405644556776149366103793384640618720825919385198846226305806445543184331568678661094953417032600892596026227110990159197963920421186586614403820600902492018192964243058935758350974431364876261071038215916610799243895426996201393481839763737870420049704278098124609537214529435765283786939055112294185451955172882258681975012356518011274709045154221385577462700398002884540823992090277732767890211410349158560034888541305436151024743805863520116614566311095723938306576532912097546234016638725130154101925282973982321744062716749297871165436352313086061497398650166985004957633481950226552789602622735363857005238583407722122778504592848104385202742322791714293560239331069589070168056996967624948808997595446761668886468470811251067755638180706345185497047987091798401195555468397886283320737840236318947338491677747773600273786896557119974244498333635552805965455587067654173914969617850052756142311420338080302781606073758951127042335178868770144476326416220178848477748469850741098544085716223705419330246934012812551414591355028660812338507605396355637386980429471809229896500069593460875820780703504091392871735942027439767617714724587423589961591659244201915873243576059101128380020936061165040209151556312376419553502526193110768589897389023817391269206108511206929961308872493260822985873450059305696273474831913233538947039860797507441742543810718590872815443859431259533259155601796224421383638468794256765544591969331570594458994606415639382198851244623292940301452618392902733552083647472762987905831015702987303671722766872973212509023825212951968424392601054643395939959859753791556428148000920704442001992116218171365044264146698483256307980865545929906925840690337799251549399993858340510587904204990597584465901776214627027996301041479293446136453282682226291136171453113319724923500010685913197492724790554665536170632947656122673676900053321800158478139544093946607898591155266626680620057273588768029180446263299382621044111832264241407198173543976019521936210957996865455448523049365924384420853959544400251975373180590857416891819457101120398387128053107463426058572127877028733443426975005728359887123542440030830748882017777175312333908895863125001032146565144574592234057604132351681838133468371897039634506387000691192226967434885534606046787219075585022203182511350100425722765645851358801929730384058679845406336089823533535924966611706861575887501652602938581885090465778611482298669071731476355497253004987469063297992337044290136628793061825907312146410156041382143627261829804887651512319331014077112248199423182769158010281497226334474220702498116270194438225070309419846476268676415726304220402028447824114376994636067867793816454249245335411339413047186531524849314878324141032199660124889422571544898522611602868904706013562393807946227873547553347697414846927367188734032652878603561172124856310482356821554510810586544868800556188467133068438487692329804684657826559685858486529585619062313379425552416574636461343767046374191514962752426941353995169043875380213094162756185308843995910229774715456932337123800964545381582885889618668772771470013015950119602143213302165691999310630402934249561338317622339207597211654604546917073130024211813854790261548417748124262587374917707518353755448775746898636210956632380822114734640322150651169431792377300450624032569812738071128034835115723071175546158777902934853578082413800457781695050559521047245158576069991016426303252082273653597612451733888893415029516084597264385620515793597228297113031248420687373184658500889006687068758612704642983682078337331156668057826330426953641540158676841481755044042343262585037147160831947099842241161343942677356246411608176614718397195653410724531442040637163636591650970812447305390035996429075951695082278724354324499816567529301449454800211018985016587709071812626939870121294513044194555242867447782376918247343053566356068652137619955336543723112962613701978036450186377323720017075730302183773270977202168207625235097215647786165168630135404795767164935701449011820576319278260551609286492060115754211781993938829289949350753071175283942982252250974310006850827117338727988767410863208920441582688236444663720923777979835058828046893242377995341007330856614552946143819820522703983184739023826807050854124643424652041237789561738759428347112047273621834408904524246174442148224502563994183272343418018371932630295380058029352312860329421350247234438336698215220463107072194941452533635170350395211835361611441345492486637246874343062751861420884317784343527795594967389837815299583034406780841005670237286944453569300825287456998117711628370602178637023200774285229368552081280927341344712257139061993086413403453015934963175273308803111098851424436923094539993840154622005622187171878234665626565965732953491424779898046304722943854560117450552753745375219572240871899768643718764852371131910540567875201117909779998604545025766886140668195725065499836802370817453074990908294820997403635221585155019628452500457630888577225092403212449170658423886192938077045912579711496890758347049917265149052830290115065851185123901543664192048529057787235841502523826121587004596725536013425901569248152073944147842808569265342059375440217438159245331606424243235114828283119917573105933291561455529777213917590844631586075460689358787340520444211880604401527278981028624007057872720696049626974169777112065374395627396749085796803907274971329010433783185427224179154034318977118208637439241604212307645778577965217058490453952964451667409687824269856407756048892500339642655012664490828363292191993076109970488477306972922377537452042234748383819026096596727790688107172551130632237852440099467565982739077165129666502911201337471158376150153161935387452910026347254705316362792757788340627583328722235192885867183208037794047821697613328276656572087294990005534124379600649073486777719289974832349832159832265910452010804389473436128528694122891026434752593482691921264838986717798137600874003801376100534158268837083773374736031868645924043438883569614406665947707642013006178904037645482550398327423561563991110751380321429774325550265054172144187487525560222405104437450754979577559522796449443890175912214440428819763653238318062464077816007214277457105187836038537844660322732756418581422939053283800276450486435527825322222730532648219998673900290565995243548039311144759796120980364796638135134594968062962468788139835077593791196152264194357935213836081606657671568498314590014334793955014265219187289359711437914827735209494866490339959496257223651163467705896395167414230072975748982287601097217921374409981380001987664415880330659129184431242751743053496305295700260991653653445680305559936912556819376522663198283262768537651926153511518184150739376816497138217790090374627589600282877972215082647585691061948562539118295505984181836596804110925340510405498623439630534799970732500079113316970439491231603039033296609367607470842293512171902449395284149934915298295658593817862617304541464843631147555865032672285008702564992669944814372474948682726986256776894042213769040473959961017708498946396988107272365452965077796648377390438560313725067155462248085141953294232073135674767517046734994654623924862015377646212680148954523141031722012837465302506814670619551735943982238131492500854637780578154060435491395803045494759674503198329712084923667259712872084164349858015125210108950768481891793076266107893968674867749522722814485740388489168090609523658858452633208049247640797472254587140702456632852066767541416516309212056682209297282610584922397342306515244650153143802319645033499369818395995324106014947949868147612798768426337226739590725048320273609845427114936846042500743303209271464927981058316253972289678187566385081837608699406461340784405008064614865861829277433341910101376323248690057432405923018726737359804895015656192904396648495893614555651604897093689970563563891608564266558850434596737919942078446856764671968000763897065988863715601695965146832627472626969015015621867104106127584352310482952094766727869457452823487458182525638185447034967989776968131120722082760533144934087433898244409114473438708945215469791652363972957710507690825406492935193449834657881093213649442905145258610986954237264521543962379972772529222075557797439056451296150620634380676968718507416878385174732331170401142319809648652245202454618541549396868517906852943758652315482725173795784373159527726895426320451209971245246968765347475247302270798888164304184787312991516351173632398221318619392458044793089639997915200913572997875859619695855165363445715118455230831695428934636894406069507450690241512754719442996286058891472733235380998114153505430879693032648489229825869034489789422059861380558651491186072870182242800682213428779414537338984205568895937129728107603786625056275147852085897612362274370812361936102185956678555984837501939922990956081534260506269379013889305159503157957889915770691106572069053714023285148242974612096108083806525024632286364955576676690544094053560900809483102649138599386273186562317980248227404105724482148471938622493892860150938812786651949095507220187672323804303773400146006499038523991347596160582724365787850678731148057239582160337177725148114076890492005882570071106248488339911416411135467882970318054508644817075966420408972348686478883715398973483098980090527298219508772405462230487314470813838236773417331923800878157557335184410017483352076706885916327337886348353646676347356903510296955456186966885887778395615452892820818967472239814304043714572291982360903040961551632009073161067347024486931414008935058749005760154768378070512657883694936371041705616908603784081410903974640033492665450460816364085309631000128459634144730796993252368282697800496715056067265469013543514999838247564662207986020588070450754974026516885719121318476207198725891645008239975092733395306035481051506134040372245848455685163028244741679375025093383370851358961147245040028899726430730465792413106532136173278293251528938874278183025115643405338416697573264949921066781109933449871069875303520760382500834490425571583492183604377006862795237903661777102631370753020147731282336535730424001016810300398999457244756486789326885807268977950316299731679195068501049780257818711027707951872322121462233497267437137819343208862055802576928797349412049847004157340058087153790845751674653166830419097047076122898449217861352650632120190864355769268300571291799042126436676981112497420658930570427991964422198326040947295839785012828509719251175077216313961254458861251098468107956771611403862861673506848276020221512488201322954275300371414233634857342876437941619661363262185202451020295336074532075532295894727968221615276994817022331556690053696195849551149973194227175428289417660694318954989881238664208886950935206800080590192875492663091860935697718449977278428972734296717135559471965494334025337079371621981445301282534385353314516894122349412875891262968635118724900061667242093731553689885385971112869960227940229478715410281681628714735489581545359107658336168522730590757961747037576889892934246767530061533690662368662944191345683655358063692442451648312122025665550395121398953092729090418120719345967802657842818712875663207989614012094800621263436733223074723437181100463513116252025333394335001586802070385067605867906401114920702952614736359612180113826705892816165707218222244029291290439114093525517096397588130626275421964623056084602687026044996961439796959757752207205429517487245926072435004507212258846444691765523946260348429522839363047494678998193827955243647870505899312009660984124278402604296198561509247882988191902135607524898888437858985153178388849073052189817218809113095061942278602227704215757730188306731729846346887007243581294069395914967568728697812915446626874893990226198702201504563177440065002079413107137386755021003757992614894273361383304593895597500012734734135503409656578236410876420959242735519442928884026562771248447993023389656212416394906216413249777717909956499846103724902158886691126000162782535670590793009996292492712942477128257137040992879847596035047162850617815744319519982399367199587544404735875115900152325248843043066628920630070254860382209015073809083479561753273469800858861695077999778764727606919739543351075127216625723620918785157404545914895600309021670959313122543698122852354905030722873177985782318258162509103831399427747401401288547412739097168654057802128391472260326443327783641038250992378376065851493727257531173135478763223669790467664718086214190759256161476061526271340870758867671411272013974373610683774318971070044367033398133212677653804410132249480945692502217959418150937203458417633725924712318565634870931503868742595432383520092907156353886317601793412943910924431602103711716551551880204711819568658754968862350640899295273538740237005155714182365998171004643740071351672068748094211969826383357353471397384805634050707354741491034699402279188684829328141926491187448577174267590512125413798104313296685516043802988451706292466555144542157925746666624079147275027633849107479244046780092120456587565715081802404440310384565632178026378392625879812060054586767972365986837189391918709747762384873842633952875214766255679270638635446380799794159391712583983534106548521188544303567088891946226662871790914771680049179036672425889441907494394538518370256153225169714770040426316246606348701129673998549786405187214890301665361573260647857178004065833924022737133402542928975220344312624589954245698027656080727216269594711907279132081991531489512754864636267875066938991671732576699477575144835329968533616103501375793316240615544265043453335524614885134204736233054313585460502759406633709634465070613065568786704557144509769620703504480478173313587168353328980499376880302882532212913035516509023907974219128431458707678573617165426960898782023714231671495130661810981070687248191622118006903757482671838202500155665699654355490435995877715089815654370280352997043370005080085675382278643958648760875359097740448139504096551776448681720139458438164431017882018325704141524338978124372133667779959684142621217411907345801982256249109459608767411779182858331351351917897469941088163079779992676381286443033144294146598558758649510551105237798291591255064142533450572172028679106007724719458409052695499310750363833525364733996524976714127917811617905992268228599822211862946881103226122647381891195086893403316993971670350139615742097803975800452303601520128849482230599856758233668761985495795028705729876065878920612432208156736127272098768751528951965663668724520976268326445937724369811967306048811167464049102480136230103110477238240446552718449530880037152595434394630502965057809098445332528025123044330335890490551783591980753206878045524301410198836031554162306305159304070342838809116213491501694288142818274108039079576284385903636454255958410402500262018445376751455140021477774310933423396861169229287115982778394444991321464451173400171990973930135570981620878389618680875034806313655172506404037669976472171128177548561607706448145334781691906736281748548245585386682216778234364943872439110970145014661470305441343333926346080642154237635365302760430941745647326919946728187701987927598032183793315313080485580697886028524142183989916007356780490596031673374214251037267480756052561445792795233479368649807630205564677845548013781065346760169438917055332580106624861237615005831489600781065577220057326818526523165359055887841568566980472157345323785880642561757369290721026030933426339603305013497351106490703463332866201647322361111110226783289592905051308316423221387475054392040533976015660216971375195399984798526495684024977933638188195432092448377260061499178282245230767574195827685328401394076100273142052424883981756871157082598021033249134021513075712388621368962354962741505401148238533249373740859991613595681803855964802735682544173970796903758210801239249171789577674342612873594185048241249185262275931600698593892080487803092165353837765423820686001453689815293998754969603173990976356592670310560552470434127091435671464113745447970727459823585900317181424234185534365492369045488128512127083981600648950824900417239880994947445843638528718070760680741984495881983736306518932875027946600056903041814574365778281766197828850711758009720941177859141798791816785489795682357509602636242398875578018954924592317105756691611794352342860066524263313335359887284405161018756279996885401266241541111618371517392677508422469723407928028862886139373698010295014556497229888727922713284811400903638470822632009844376669035434908307993899198203959912400400945837933042036485972911381536113385093303520024565125495888058451382734090340738971923648844339432473602845782871922651886696883559079608011383769400116522672677571173481990963843392383860433629829453079744790826907462160351010487716112114647731937388020272604252962691927959688677327916954882576269552350697309144170708251500494974046090176798832612164199221958031986796380709211654837524323380763339362059493908552824525743015198137309023000121408729294771537180336867652784954878610638644134454694735945476910254412364193333604468170128203393527766033851531928979132018019144932407860506390477974232878332391650626963359192068821443768735391367383742111358087714253212903785348745421043361601838234335460439866281631695808514926765152389395724094170848463024550750454021603827726710355533795392921810919453054088260760487082937807983541730433039366317196363822903506772331686153818181529555446326383683116231935381106985188469742576040127956001629268931114513383233366320180261139436418147667039949596597666852685392701950399977830903888523828078930654809714267653431540416747284121871558553547224231501193383152271056346091033869138475489323496913789299610996578723200325203724312436939811595236605777348930647767339373982292701551798250644412287652268601047786196566366667467495196194784480358413119435808057670301858087541451322025131085399822765742970421233999139361531291829375323274763593575947057428003456381962551657134972909003475232418752604258572182340654963330398044834617272571293739136894237365866786780802093019927967606906109463736414203951499665836378466866262621297995439932550594650092609389055194141532462750470356535970572156125029953820372743913867630071836994552016577018660925033029525591384119424962894572227898944169257952344879778943706689077937398399896935976276918931797892691498842378429903239408204007539549022986776475785255022019787684586407027593588013775552891744460068462149071955589935923344419058076648832260218701524962891526984769471101952018979601852394254627627914194460660468676648332752909865156111290365260138365757392087472007219547418053961875978476815303365043706840901052700936052351501568313629178909520946297111350802741861327880553364551168565111601604237132962792466752894917220687696635773281576976099952905226118536289007039686896294652013317332286517750717352593538967377150092160686280335507796064545314533734329634676766311376725058658696735488629622572230423865697997134776651732862002779983437693269301829351806208263198814956513821396486402381250486453045962566871784447052401232969737070467612490864037870189547896641681282986183105921409277177344112585165917132780015195735122421953454710714643799108176209171247061656500078788081444860484827474549944067372279416193182995519480595881290887281267095579685534792618621662532366235350356538852979732079862601235232228922286947462086434549074983496184062670399989973498992871832246541412449420532887372440088643261915337674837872079256825001840587300136128632815332550960214191013064256133658148931828541654786176064481608593361244219513768303753275489869784322254434110087668708037279265393650634505666476987731953735453139905240181600436647364868096817371797855679084125173195363685710436433597037895026010081530708530066193233182573576025092372063115236237467601218141913638189145879924475585382166606306027838361998010584381590482674181129261625119707465771619554141463607927088807542491752658586418017520871841657121288190574272466463184414779020192131654886751239545094507343467327418922238360356576264753524117103853642409925096845829673943236480571373298285876745321098114269263674978860431993195326790283444064393149935668601043221039871784795060512637832109698243455111148978401561554661484125573698150077357372413057994213536325088654719087734904686656919948700539943363463834916396946381901393382065395496214994444912736243647679074143540532647238569786840411925783798574499941738575453835292594988664647403393276869576293438102625460918389594450679820981737571581439015907319341811246008734570269914857738950135585227099167134308909347951402956778842142385509546531534719655672943288854478731568865324962490928225805804215883149517433920036912333512679229658889886526306718059286779827411487488311646364346591626297158024261626182125115364887098970689219053131215843133309049269091869923079667536054261170044278141899362237245020403883061246472719954866713105629217658619004622918112234445373641499969451917183240166957578750751384328961244850981733990644705385698297587407921966243598283359086576638082746833402089264492926026013070156650093980730437505140737437968725033591448992681910121981394563321615816864681715392054017298220966148246733678595012542126618069460810290063717987853050411834097593344389884026772506669171300707340355564445003148693836389591764153657390500446610968571148139155222461136628102518284010241814460911096705550575173455674227799145705191940553447583197538554383005988555071278503916127511117313929215760310074054018587823546392788135174315570918133846981217842202787669284122375495388872412529900705263799083362183598306251838590899835452991544835807828762384698098524021954617964571243437707840729234046230837925664121327073876133979331023972400489450182697595254576154245957290054936138920764541854990270530310307336854747645584643105899432344452522658720002526673632271416694879264093075262698250238393492769489278267000235080303619222268901471532547550353167285294460083214620872610712921175550580469313451503662199429299047837212779416946691569106562438506893382745002094365144145831536608592023135130931132670680931764850750112139054716818333536315580006518910506322080916350175736860184402855128589795572137206328205271376450624003104661814382893211235860571673482696068060150407350578820863674906762375546281201043894070183239639365297342298991722882222202884618095652629111897983741216587595268832105442172814109362089814999874814059336820297257570589986731027132683373583886548207756072366365650064075987672702859199058867912002853555575498873006861825810638624687872443874139329184271018511740714540766483567178012229355901096451955609835438690794273536573582447986136461864631943855320693528543023334180044351252619971082496351202403925783892180149870938489868841389620034406619469069318683847537211106117205985985680797560194892671530588741369263952486246814820542554150335326541463413860463854637586272649790973783436695700382211703993265288920624671050072128394063694112090740906930248203098967605753877700721244829611462816251823316008158186836649439862757362387297131938794003822416586919936935847998147786603581916940945318019761231424088680476779142235365794122262150311139747939977286658022217665761001815292752552020002840834529754210909399548205271869900749402385512688730185617829843428919612689637117946597466768826440219880562895777310847277382674627472268695965167941614751923101213038103540562949962984104116834880936980831133332036445441909921021455713967336772955260733726466400733190885478247126603410635407150884245886885823026545330483253861320737186831790279293667041860518068895257828882403584682867589376894579797852210553555003440425990759065588797300690194196787936614891523195740738564607066536555837159786332557076435379917840481637329491766957953457202943842301615631870484101020075922096428563951865864933040018440724475262763249646247828470467800431661657214883258267926972725423511517588655359053211064350139376136202338803062925206880730837817911289808882167144097682857376141056290632535969807973302886548540979044422542837019520332300893843027998660463494700567704037586573456818143203211213590490462613053330392593891485457321344348027265613665627880980843511397876014999812488553689156122421211424685696803547324640444682801450453734444123829627268459471777122847795608137557257388684786355332904068570815035905801135340987467768580916483182027960126211166108658890100641341512950003970231842346085760530883409673191007768129288728299706518358973835394528640884675168296688095144324616309911825147973466067180753224337362796418896225181964401373633334120763003413636628732531834443667708307192774091444353059322063028814616017516514073917890066486646516393938488973797452927581866681265674246190374527181670266801797903199153457425079786149022328916053389919093064592688050994169941204313326591807020569054665636746553247298394317290496539010531403176629374284662877181319927462881621921246773981874490713664496068256690856666593998572070330767936109061348732686272676198964666740575884378454378055786778379632204213882592659499258105711896332581364273466201639004554977101141706956179083533306999413242183650985705750169993421520013447674224456992740582524095662161156202882952451449541888800647372872233794571702194936422877764128877090956710515494673389804013755915499334705016710549279273146313896191048876888493415359361795955693447919054968829538716184110331852585299828982565044606820620810485568803904115353226896198317942322808479551692419477021051641287410352122708201430145609801916547405507012593755650942199488452372844886226772103465683960774760280492565748615048961904111590614006190364027424137838711799949148841950609430474802830908705761646141931397067664241130552739031332803338996391393868135122625827407145238403546010762140084792516277787232833105894463182229902209547157202150623271387548811794065140556167328015901344453054443885438745145111245794726657233420803869706322998685363548097894606975352653496754063603420844751059834997738393092100487326556826313834503688285138962851902116166627123918911809832307647036132362584239674336643815014402940176115916883611012770050867155122303364704045911999598728748629814436988228629171145010410533447022909261669748536799838430385944955142452527286503000211423901946727092692235280731517836462820222095242770703834021524234251985834843411906868403736759732835502736195238190565590412268852781924782705369236157594944164801368199999846301161072249279898955539143135301238225631981155410446164996423854387845385838714307937228800403048300157173104954694018003804168184842673278778410175909126495006597877421099381485166001737621909374309551175185936928785259252307596846399140312217599796919435347335291957615267232907756971861721607646342293420775809298853242360108465282834992449002673597595907689424166643360908226021528285282413888940527599388356062811405288741111460114636433130177119736839375749340127247128158901298398561777812783293959075595974881838232874141125854301870368107264529537394883631456753213079611236462296220685746691648078359241510007111993238829431592753917164059644559596383078600632927694952878364501972227990965619012591110446129527274399527161928834818327220052618435580022511371453268473161337048832418412117830486012369735808910646280209344982189989966303324186883562974392851019935782153725926260210568386959000764946507310911714500106278773386912028360429796828625865429739810200692285447419783804640313249158670731075703701425514120106420992170695516865995988126723528723811277037166436217342717960387107975129754357863473911042952826105482338308638536854390667143280984687485926970411599959633787063545729670294555358458567393661551484037885299903251516413334047649216036878270251931904801516925667279220345186952652091254275390859020142759370044639059056118045030317017113578419967853677412788966263201834257123194003271066533410859706270754596533372265803817497770343988975506158165225107248386138196095923174442317816153266003102758019300353177550146103311039418124531562631571366726753477175882246439980364587258972224647147050233114390184987205881217844934841573313636812682046470444393161820548497585780185363615748420989201412259601966542580364523799416711123457758004924742924066930971438795978816928949820811192272528946542329825700796150478931501208061790606855362083122441845209442424301879173345052761793633379467683086561331072338243698334494966543256096415870331284836773315157005206100297934363571353911798803222019679914991497670512826368602724309730157064910603265397827800237920503391332331193784275711089687244661812196365435966467525824524610839450592765712511558021015712578677154325060940990828618352656695174550258229459819509027102369638287636196277017700290388314940159333869566118955262740428652960335709786433618938915907523859717844025915740346275308348438384455397614944834306009944001691105218725256161701224338920939132089945272409252839500148520721373852033761174114363896732832025639947203677093877181796152087795242546269587901467957802928237889477635909847389667900671282805376924413213489157825987568003270520303934507151634116599127088410563735988504628900833789379954851628133371573118869388527103949137808763065256123014084043253091276148598485612737191842382665404739720675803145280468431707759551390767041634014470762799582149644820123242316340774062946660015846157723000512754547887746079180956427948256254899153139915538155490347000406100250877951340010533665526070770155094508072316209200868854269549188448760060185717710048314651705077816564417322509203538707021637824209145167306782349582397994053071021583885458552585476868013526020902170893324966540396563524564238733550395588649508563932277964634314468261767211013842343901248289238255577045720533043670391001810352130496078456143335667246655411691457107023374697133538268883085104955198859629744581337689461370839050890876174260680053141346365070085918082330400855598361505318383448555208038626426024318785694176160797198055059357884538983524567465171560520081603320118191181493662712384361039727850197372719116288387449823881821163296266552553239632425962622261110623861441176826052344634245817297667839994363896746367750301577874249657849215245086198768934982283520123194690576495662618103429264098040888000876476595030287291167507835264698110934799811851061188562372810375665240888672469543996461189532657144868564425092106383203534013186294567034405352972045367118753063317352540983052291619054645110977818859215568642316191143193543404777277787525951128368104508136878395336263284073589503990402714870705363057360289742999412062151315803328123072260173388652216637123573857421916993106075531716231104994860373551195590727109909552814970798841100591655314859541027128434658621529351683701260325025459962186813401521173160499869481649408635207185938247057214420143801613468411193572683475881423598574555948415782911446337564746540812399734180049893934014163552642187495526242856704185983036298147330821112170592294059965288464812089405062473116796563957202274824184315891699258955468804058450646059490286519135234493819167395732047587213709711243548473882578791092629096683546822387474420472853025251629317914956125476411858797428658756036903663255649168609937185190843503510689757226091392067273770988179547513361368762395070848725706994216534171877415249606400712432065952015563734280109380993047296748965803571466032095592404630654595964600554845246629126928553756527323463551217175576543974877899477783333370780067855576768726348898042820946191926157083994031248378247494765904669812767555584933468363027519842975182542758487848416366735099207663143778598801274268903714744073719419180420602046216378592544397103544440351058906589911851558076650634331861432803823033454609330366306978531603010651606668286690861036233652566854643788511240835020651837653609717865119748722097605307794563914693908494062359544987266004345207914750035008072228560553301187369741036495891265575509699042790876164847794875390103738610680018606578406053573748381853350445430498851543318564192422141158521751112345942024696621082185647668296148208340159860281413464835960876719105925236922227835591235668219888703376710758741646573262241150514671477233900534061640659451787882384523669147965061940265685894075840147482842410385516311128509989524884218860118211096902539550592068821056425275974344507367384337838552495563642636628097991682189109112755043602947681445130697992784592965086692842113226685553617623982827765089195815791124554460691174844653980097916344316189528957468962495861364829927300444329007780808367078021737501318698389922242513120353978881643641794182813229039531881809259461420108238288014078247015900660676763704427125761099811770491265094614432837291892335066769625208842910130426458760795275429281802676592158081309250830280191225693358508847342015601762993841596596920748221537056841037758578730423342393321415225579303882921617107957368934610093750168527581546005869392169560481906770576027788095076892132623480726119019306777283446967519128407242040271191042082678691374211192794485875110071492642259899055312961597012336558987789242624880606659716984680225274214197239590333538290206206960031438706754362563720358805251230248936101165560178845077582217279508597356796129182933196802192602074098395522049704740682017618781941602577830642326274158348836849652421701152451997452571021907930274422409551786484963915516381373181630928800667139510592647363650553164168942008013024483920689177696282992079989312586820683019161128458830391335922929390789057142527248771927317130979447073522944851928084842548666532052719620366319033052557554834337599273023723796064407684415120560611221802533099017036907570373398436060238048783426013853130944878537190315265344786268312229964991315332181886265205981347395862314242836590031709971908390413561221407747861639940918797711372126289361299127565435269833253163668951335516160402327985876835484469363529188259708619209833993841392550560965789741420596810790591105700577687817705411194875377347347223594799062687990800910762024481194366788247580460578522007909609749897879401151025793469100529819637794666644932805293198861261105903949171387365620046677613212709376090801664560832130623269852285127275807272025141895077989301401438641652383969010505971491382051902708859409332722719489759980688692736505096126682359119881279965845551563646692354799706999416358309383671711621371003205042018228459190865892927564773891919182453049399573805815253179921476290087917849133432179889442752339950334513166598775956728708199899944124767018175928031826721008901831796562159507104659991419384509519272576852214363918807630353178054013345238456153841131155096601302381961336835991318371748168501116579103354159381676031442780811116906699240078627183544660068095486995735766613250435032762514694931845481524098263587902306731159792640251013158586649034115983599050798995950253809598069694369738589257624603214755887365163580595144353755997563545548220039895843601191298408271352122059209403783761850047964023346198619741456213778132628956740500996541043158754496795397541840307586950322210675977892280831687495582889171723186944818851160984483789471190310069378860505339122476758055780807237450060131091662134170383821535198581839669017734245772174495683874559390288665641273509690984327187172689705758145785321534301473574579358604232859545529093375825076878639142555171032810343422683843060002320488277847308755211431474849843638433034063970328247634191898212848398024523260598553706315099225358677298908247551982294689480381807493063869914706021757042649132877161169925887252632959283927858238277642765488558744716214280798976757755190179483638807056375237816000795529797666336058459377871538186917141826973704082203573240498893983157917582391196666965136333069526752864307687128505437450950570573095442607338453162955387228998084745197011832812984663996953375967264087581981969039466082015828804115128906164183305295621473878222404841850750230539597924977933240543207553385376011354871475452445589863815433274713035995904939804774499252739875030341869605617456282576358924996348516214071342456469764132042266065037031753021562687602518917803294913216075454749853738399150352890401831410692071681530608380993306668729080815478996541348000102765027557784260386575610186136281979140104960586568481402746794028601713909652948113715565756457448905971529661359363319595424593887810959205484482446677368140861797901079047642812865959195886880410465620200006579918375974687860179223906389148196748666137707089820550127907215618581581036028537699278306663412539294491478395751732945457297786874464065476964519214496827327236493961188313135853543096917892179824352577252597812556706426525972844979522052062942412566861160466644114117037280139536824906262139738834695014475939773334808429575225238545225737033860570995882172540753166914408799964218769382328167442862004153769156285201055167054918579526095056340501548912494475988189722793248153158466645152436599130275865558506920588607873485682883235191022473104000117861140266139146380418118789810368140491494717141444609860380636947986688201384401191915386790461057507254793564210410227151881625440371879562334280669886343672519886158797347919235252877575389219012914840406983819913953510483928696056805902494011387668818142976558204079562911190439482487215547323620793533348284438256757577627532519373377244842432971923981829355129857681071131975563865533181611232121498896389924911234329140322067770020929564642128206958706091302953207022342697634606572194718693982036317034527955869780940667891285397912104522895587419502585945341387360269497847994565311504001177542192000231965598994866756766499328544363984860120036471600702249952395115195875514287175748312880835689898459927777462270026057020935446494700070814574421838829138179773017705383461680652431084212692483921674930893943978254118589958075387775756961060596019396605114894568761284178853436921247379000806014247393926823947883982855018177233774891396012347469870241764105855292275823114735301249371408151321822023269652131765149091111857681136987000432241215357637625706825181431407211487549273996783521973974000978977792629772805121553680182349131564126672537831975653652915002044325696148802803774997338907609687204062747373449368677181584002040648468942164922753195830864803525464743246632146171168015272283378623090499330214976250415700940060224528908747758145076107827757050654358486898499355097889833886811390796637097176271960307750322536822769268997318235007169714797854895482278409486699882085475312881575717653823728235519153612324430786348544799303525034355728379789012425927697838805874199453555302444511635346580189343696010063832095603146402306448695996417843364754493029981652944920448842159215327746891710605052390802132167170600773609282869879650636106147801701265258949491617396603190371444905207589561538811324854487774051615637586320335321434218620927290597034392297041767792166095641887504931657976116373985925994586962276474701996639777348139037582633099456096918460782297282571116812011441568927742285566950699824459936270522423580724260942696982862972228473988114126263829433958884253141744914976974108186719412279877180249261645366535922081825326909506871805468489845099554351495394489840828864199654323174997592797645645293768733660027136123929720653595377027695800680086183806330550291976323618415708400811287726405776551322697877011129101897824218647273476701101955776060912367596922697614573967864902503282283687258003435411998222054727961419427865769134725552561337052102928633281582283302994697188738437436783746048616508311977166336578444427435556956504834753534435822493886363366516035181694394747241399546295324656479092494244802422044234538026109073287067680002195760115948066239266129806725470133030932805481230648273876927511220134204802758014954495571031165445410120589185242347590930685957330321398572724497182987738504740131196170958525482308217722362652386763995201498501243038033751980006949517707203713190219139655317684562526626880223034286869999397047283045593688451227245782109978211520176225689720158703920299667681418732836676238290451666404367371852911805795315638067126895805005174694872569442798815568025665907742658946212949919158608774747927515705309219570575150183690313227427234051729537093172536488585033980654122390595367389352315637537794953605443536208464029169893302031621615905792977113503856090968210785842110616767235944795456880795395047587465617871997659038048029078733649554645385796972619471433590937750359145734339311943364485717801413954534819153282829315720585267639961227652745117238943816993353328058561225650181786927064996829581496566493189072113934974245673317778120871887002314022204536675908216216758775839624138138500224690261265305486230626523610775121968674343648863295320594018457183853830809804644020911437097381845385173881970288180546752447746078375917836831192153584220153762345683424647521594536359072235857527550445084294500242582927926644123568732791192660497618590425331388739372521285770354757557882437768041218275657596721442210885730314875452553921133832123817233018517690909109676453692206646521858480305749876948029968014216787094622290324182386813344976944266100944443336694386744635407887135026247967258585341694433497518116467166393394144672968993668124939339347499751559924176239262384476794718149641544103142169073145489894320801334058916060455142256448105827995319630745109191863606362849931248166190236528394241578909285078509075142042798003211225198526365445257195826009759750430994932372137507740815499108642864575871936611370690447063280531451561652394706063842678788635876900191146626812113963797008837879057925000766316479352884025098055450196052464262646563148600517638674579466131220320919215478137717104753202777201980595455480595438279175172614103885587794627057559288297265759569064483814551297672702341145786199734016886390827620045124565384194655874371894295464250006845865867712787494424789018759916560776984536849927107463378633101706140738423417583432971932957924014296424435161193119835708138097175729358357257709121130064497132627373984365675809188463795175372843260002732818089602223137615770394745754824289610336010242100751959350827182127445319258223536541456499531114527421516175073989253242743829176316942419717259547820079695913134148652956674228657804940559024676223328046352353230081444413762652682101604823191597587846073904882888705224797331740637101739865323675857130245821558536386220261226959826667849890824344996643532424746625134178511980137398343720093211766614185353614881550322661824021426902214759500979995556182047886192617366108992870628665917701306407124944289504979848899979814518256690799864434784463263749067455866959402545794068597747445551924037177810071326134539639004570995826132209266549835693547775777426314447210363103054102635427248758980212256884071102108713210566063968562136222371429680539557473915050958130639782158807855021363906514815634591843461934327206923384294087940187595373227694633988921886770264594048623542459046166900997996488990660573858329370184204861764857735447469899301646800034418617265255269015898349494176209868575880061053317594979177557022274999764520864846910143550605492729150975022578343150269911204696270413849753211999456336036074691098586811193562668970472087528004293854617982929293701693474371982273817348249884290252537462076155701755852995212513179160392841712381628261393933071930418402530199251427967352311947580228545149410066555804079679205698656069792971766698425682665607997382418262135405213308876262537769802940253355525827066580333320183587686663904335611238188132512669258608828517108352724709660254434818547168651235854010641047535629654627080162900512084856570271452785316654890546087242064632231056868999365054008576603706193460775876060109611220460953649492648924681015553354727296444228641612999988435301171872651993166363814808277520144561245871138861840464907906127249887426145125122968866279873758241177295021382411583766431356205516035577958288112260731436441076408043611060867746483946184339027467105224280272398730090294181607232249106423729152869493013245881773435450936811708482220104630969207629213616747628248177947647627500163122293219121834258982100104674344058412479050435439672541945438513033600771969129593626211209702672138197724952336800993081493297389091818462593734408254100099864818795416612923192236346044858901707566482861531550182120352478934816881185298784363875672661992764583639455018234309804650673075457930741266081310321454655434174356418325142211706741359058379741829442879503967054478150327123810585183265190592164529679032574769407182815424717989419885265556897137818023516849158695692851885976979029351655886925674874056349745961634381435455971758139000374978041370180512240839244015735166892330822574796440163677237194278667199187398672934485909033826151262008444676449093217588084181540393361068093002034403035742536173515687325268307659118921156829946696456408399641793071469920375565753983944041907615615828818833311811363723802782488100471501754890852452441406525722784154124135248083998224276333284016846035591849776006743438895503241870696846649556381316253728633228748285940644319519636702744298305021543247607914363608918882266554442859737664160595123078686204691237883680347543099468504245786961864996458946367976077751645556819599753290567286880061871760703328249274633958120693420557367504555270311176098844175109902616937261902505809602249938119848729544706050174072075107943313417950406481167377243336977599071130332472296002120410519597827919665817958344133426567071085279450267689383928551821022703419917220376864408346998812883817553820935667588393695711335895522458081282900403688386788097599696458916588483450606967155495310794907442561149689384664389445553386661284971258702252799494302136241490037892445144708831929412184677513128384125544703353244876238310378632765402545992932102320334654477203847019612132212392040765123513197057430030406325444367988343324750893834257682039944764198920790803424456032912240834019963257755095082593865888409918270372971036386951766828048389687840587486576122170063677388648047320826014786762228033174678197776609055843605314307677496921275265475142634589706800797545558939554130439227740221000511742516699473063139450651772807226806965082118717408312915874503785099217452963830220703169925535921029737996121638308586721450852455263882941875364880197631997529729553839208242001727101432313661455315231050795568919482255121732951166709380982383802707829028683512990416909896668798124331689000549868614762180101901130460125492762680305421680680507577374639267172621209690959752005293002658838784294313900625944207919674211427871915971337670459891308568120099133218132218370426244469028259493131274545211405521491804218436044458447690039269293796370881723293290336410370515329961130526495354580626232291065791722554948822606422152780744447798290926444420361189642457702577409986476210043188367552677286079645119755847034574503099615173061004702349804426419251192163265162733772154410749472229453380389883732248732432663004226270841891748327823760153736213975638311662960713251532224569851293328909957419398236730005322845869320883887692612046192714686978684385025490848646056719066463545510034367555349152369903351340204952625892326236360076013453702380897640565043359230674911719468980690463438379360952685262797069438026750559127185208038916482873864307823882751579304661853807736226066628632845919189488622363641904642037478895997336807254442623249559500312676650353666913681387234912208761077620697408371742301049350334796145956973021159417843719363583061835080204595421221170744505886921691769724160637779909941875500276560257319582493742206175729838098083418189454276574825966758171705861837778714289740855731806512268337835484285076214367710055152962433981741487664639544110063140240554345531681959131838878659875826839213811902812363698908471214292080180590277728340981047193708368192646711976445306277047316520915073302090706802645159732506535668931166868654143013216369713837150072178915540013002217698258893042925996114999915046470471067344025430715961659124777996841413915417819068820512812790489512269840997359022444206741688745840998008417991741260343821466244448028811325044655559476260312008390532568775490445087985294126734023206054056489313858204628152364991164958268134403844218933518925654367121552744688779636349116138768737773656937920867832491481071687450633437865807611357540372169353168872267360152101574328633192579054655811529328069041799066690805438967050969493696833719466167797527015481614752354531406137129026466315777773483827187578513002146626388195443216086649182508602347045897205857759650589791220127434691286470066368027652360845121689606327246462737951928327559685021975290512188577585204843489097498460119284868083465954792830469788155070386857684866761784355838793122649121598222480750445182206828730361341277179167711546130911471029874010901315253093670005190155038554353445484889778413597377695161864282200388968727130376794765007092659472195125248225814176192195388792763798963640894090423345914708154106468547528657683201577504149560138921150391418798384247040602983082958441539976687751900444618614970109544721145069982585938216871117906075948596584667926073870769059009087463398098730135888717236463510814357896097226100166305798464665033819162533973332228864264529796921226802578932542080828967483889010191380363373751138698820965553385604683658687914268228813340997151874815523038708845418105177234272229789378219229034903840830836124872269890735266611568629518585018047237770863061039343143164287495572113785637717294790763194389116486496525376045568506324900139529676881486560857808974148123057056949928518677777214720480768270780968248053906087760000006038939215604028015891300507007984858709331283388883818207839025182340946743423563684945052532643537458901731501901356153942260365496296170805062233620705435352297854251830684431297121285298989696320891721729291196007955319317244900295547109008553776307332409522375071416788928628335192264168711555259141814862908571636815333884027145565152093490877358071655233512092256853537578118095427179295738593310749589382401399631396169371565338881112932783252258545846742559801932243198530366269586658617896588325807582889171257030956185600830668859915769209943803844788137560103825401137942017708328952027764192948906872554309549229010136472681325394688516707806772808605048439422885825982261011417516293819893099199518730494059921940583740614987718362625664779691327746657119772612745262644415700847675959646114542969396343863889284611046497467586387666580636924109836271116803051923089217043945326586409307248870944083648779787335323449463505468560479010246614289098259985443993824553828717745185814634809416487001389049912963905765692860451369549571017413013471007687883339110856423513015984138062186231771081080737317037139942906789161799124807475123832391250520125141252534262044717309909945863239626055243854225808303163072999947418671581984970231163143318653668123880457706342245372426607686085345500437338673761283147744059829048912713312414231813548470030117447080755334386689652734048777297165373805380795191269600653192880647478737612742826836861401817001794179274177533125157613138783021930284969140517507832420389952513757079058912460553988695267948605169373230820506626211862773031305863408205098135760209550041623287710802937284670912956130371527066847363367762621590819465872557538332635231215960215845700665019793773610471191471283762917103494797415012643398433679188131764733031618840980249620857756140759898648890777949678749456917271582456250479110303801664682643480723998199768842408442965850444053501852183514552372844349062217150228286957392101826123924160656607975113566837372790693272323636378044990869312087559621146898216746755320447445864706178433101959079352063159018307634981102763267354279394446599173841412434316683768446702895785191162447802821323004507059796136719741285348518469674562067499072980372531788756436796978858368256256519600442374603131339873865867350415898073320133632372471910947298199740973626762844573612064076109766227323225729829829367027835589565850771015031270731706075696173396800707093083045295547378367544565486878123225035579839290700368512228576041179710573252899628784985433773670585090924500673099194916906077112105286130361490951678071037059595532964794286685060725141722901705815536524021984874246361609218575492176142676358589417782686451547101884095917314685283706660084033208716867278789131237659470532064562424703896581364160293307168436909022765592523938690845121027736906501351299150028055092189555315464699415697117594403388536977272287695842245176382798009539910633778880831397805802151616879324571939167673172105808027725343322318389579110378847427530145628422206700426670181876061132909579984999165133806883260415524775960140031101050500929406555117670806170605918018727517013620808085868844273237635245359384004955614395906195384886576071729574206294247225381009809870135386183235261463686118864594829442377314064700453346773063035960518150251200783948677633853861130807710368392491514505464036462975935685068194327720298939318416803269536540755997763873325795810802080474518283514555548660452019521134550576942570005534714768123906315824297222369180827546836128864696405863213047554361332022384248533317904793619561299322851159106820793366080097360696970118520010779784451534819469783226092164136595248212506992458052104233753903297522666357713786952770820041489393150602021793103120707221584888896632780382576688196718646860687056372574151860120981923871645552068852659614438279453686812935582515861864069075694560143982066239984551492038316952088941881517366971580838164867981005506104414181658529441210764587499888069253017337966511781990386042229795582060845780618689366764964612075731531371405074031538644101963321457491416336460371467195563859841531550024854543976071462109317061401013086283962717943908728709116647371656465648105083385404276484734337409102787742506136801963165707579562600154797078159928919908692357436614836964641298649373994329685628339174513097340301415340507175352221472134072725364800745466636716722914758743604879038850012854682000763397441618792266968689034400930008431991086299576424137781792659193777337533714208827394230820358866703493150804402359163274450897535435980997685485274789232904571892714099964859565807021387236066588843187182815638489768991526567302849262905221323305416797483751380292773796178354439631849704600375833280312497301935974583154761287329086211666685619431191242815711084679940695133823909199333293832516540932691845739954580381245215932667278857380827346740970703231977177906537953496642910501970524964236752841478157085751719233433441021824611954610989802212111900495984352515226424712547051468330260855473546029071155525941342571230078184636501178859379599369221546443415748046434874508008677453578067010482281469280131036024416326667128162070550373931368559828213065275794585545491323632238383827095384756082581916882414228437876618861063384305857395106190441592915283389950580209293875219486300735944383153532486818329405029878768963369928508939635778466927270762974174451365509401927653042492380833736184833287754407340880802746591267675205606248062457623268405521270662637930823046202606559967928159322807984302258885106182416489185875568081992159905723066021539916865351248942727049148272370361331910480044531807395534294970336230524684761310720609121011865184574404831805510372791223584912652197231734834084542903319330303366480605794938117345426085565173354845407834653483303468463331479842387086463870474243256985502110515672894127344234072341675777972629323817306265213637022116365225101320790030156766678390743300525211528313774072300515827054758067643064881712107329912547225740636873512929673048129462840563630200696962941311824834464697789074882046301478195630651469604543368021883366400729792514396932384231463049239786451466659697370496109846474703227436905024529983631329591291111805355081000466903520752953291125316037842374386000096380484907165421720733711694629913396568214972634581081808827170458895901322320003780339106687336740682072216181369803374878902279941714440740803797461201796527574926787860614505726823229574901249816753888644598500444638708648233543717274258756291705778725432042177848748135440289569846273712121985587926398901506578728453661513303954656702091578813606387195363955833146782509113315206966281233399137457959371262002555195859207229753347561092487656918946961176320916539109956941379069714759402484536650065410035621948278699703441966763188315487835948901508227356989932942950008930496486384125514684821889062814852626244656632652547987079127339605554100232744265537789983985523825049631050545682946911332183641696146608421501928816960322839233062599571577979961721013294611550229296297219204062573468431969981548483783759321430019402807919694816929110354911248598611356290905408550927677938172843247142876661803450395091839871081835323087821222323017149313284947555731254229575718635758793545931571357524085452087125303032628726895768283461867317536827507422947905159831134049270492905470742647277318516848231252004462445563019743736387342246893469906881279454479391841526332017692119668288443071480017781416393544039257009250216243386992144673752687725918502786746650070629814856661492076126508309717277435962726496932173703202976161689924480084076196917367171069426135878093555219597205361975275607202991299206976194978466591353391039968293290897060270101017603697207603780857746174881017807376967455200186358777511932672826902861458102002846912361749547242026573641461224139108856089475614008391983839534180831680431999961559386770466052086139949135474755733938204253714833633793390844229209458864555126267383303892173245883587459864269577371268492904190163402865787728342840443625060858371131004297968117644382087385354521657532823160286418211526644861248828818284747296954560148476215357277922207238604727184727746379290391290077907579123542712791176242684908359938089108789802945567354492740051090208677024675771554856466823741377234449466240196182742946423085906205092650905878457526145606353894530557857458817303546251653402146672685498500035508811933688650210078577875196102978677157314794563016584060026246222053860011648454870338140633464036268719897108815761545140193337022822900735824494581370232111319428704309081129644528978415407947402645895755717404228115850635485811002716483604919919760246273362150750795586914430630981139831581873829422435374728430213475910659486160101686281737784747433332605675143819881309502625063035822708625070098431457241907564352218778039207787776036318808815069383540622256816385255916319560930632986699011928919173309296893309861470351888687410810664521737414408934762404428136326721014841434230553558194454468741902606924053549153714951377878894646975208328926598399980423414231957187850491849198133374936707851606549217652304272660709513883512555645016594605728920960004180361131393601401722221997982036504074734428350230530555303393160108957459408364054245772792301716713920421269545433981201255853679777736705418459156236278444004986370167660779610058965161213086321274906450238946783709166651700201564569842934877212353167618373229476484311457105868405640962239307349941805530077600485643641721790718724173597048387010101644975171379773752285803463647938690963672953164900977531586904829467200788881609477054824899754321623532318230171294985196053669809431952778205201714193665415448203570782805262173971892845146664684341236399036271420106001379921838365640667964035813723969648622258512677160269342001227274452865769284476696610168958030366064814931766804661824264500496820675407676350087359571325630009959950887355492761041706173040987285501364159121330155599526996317272706386095686341396580677735573096714191296460043366395591892378701748117668601955983504212055106543982572803786981476098557337827677474320737937558048054048036537579816730747922564229509992635195836324624703950175952018369254204447136423080154797131418904000535577606751306450259787010051853042018227098016278809186603822029403534225779517720790439812925032958857050117614793045471099997476528260896865373059304696711354875594508696471970956554804826102881175942689866979679288520267040733345239975899292329696604803206013690447769085184200478725221355267738331483664260634092905089529346496515578504500865977425011843547264232495009250954112709214204912114943589588844662208794508378822504013984686445181322529775417828385575869404634654825121683659293134377052185764880263245077502158733817102983657197142235321453836271120834479583589562589954206527472741099228419283010179893145350075887781823371554454654461823759570796299239586274380316179398452780478369536749106793619534518661492505252618544281580519461809564402820461658092980618383550612452406582600107180869674816622587496411692936612560338303980444210828452701193459704904290339188034859912891762071841327159304765846077070625700254040460837932204523630765607999688310524097869424290837722366136008198479289950838715453093285026969189977037382408157439172338509079756923202104491017531090409964620603533664305422533099024369913357014505910188585867850411083511359747610340538086924003145485536616547492919311498960452162902232023082832937970344387014618345738404159308587308615564412700135785670680004507112439990222941066577754791226424019279389830005066304510908941597408354932385436259736117049079648537508621893994803213903090226381722533365257890930379794596705960553262034548586338013651371690805386316493698112088659878390550668809723022321641213312543720958405952375290318951861340564540111179322932052499142535179873399126223160265331164136364877340045319703608495742958136737653221389048091467872412014902249364604062443537118777255918167693971037901492785883313652282294867334357533465051761411371690815078791150496637584519484601603526207733610107840639435486827734782589142335890009036947955599996440147724896307111011734034997517323573331473481440587531416971340251812406269195095836897000899134980882223770405938906961127507614196603685502777372179763264827072043253114933291687980534774904593889736230474544300616965462039522792538793823930527200336909457836822608197339721059556626755112866945319875765998438900375747011334040571402726496720786715815076063851300573620984627743722161692407778125221087479682402282311476797547485677991806149280480318159331738156576370645377791967822674977559243816799577923805894721928048671993854035382127984185610421148612234302789994960346141730821686563156144756538918337648295372185806720705452388031748440506675365298889599059766911175452902564800517845919554372886492009806766384193939217456509223278593943184257029434312409195881335353425566083737179321521519604215733207123948852391945426526480390554667340251853119302202993299056028637165516918772220033321426370591785595188479315785982678082055496766087374443910250255478205997477073170200720684520044271501819223335312282976808080829620687152474918185222976253207638642828256360917469470142254329670389708696805212876522412333173634190550923070765405432395381796650805502614513075142581799282596578039772206332933140829686083413962841168246561890706566357250061395566275156760110379249222090514693338065769680700913834609369585772271744174265474187672985417506328497479565160544208609913129910707278855371670946532060094416740397130891491634032629669241018579974776806685405156465138085043000777507662524331320116071369014001700172914781664191143717137659390411461000876239760118532228395618043670810817418517232637148019588420614728568335046537982967783071094357119938708572634181673713922567104560041349449226656876206327596216205361111238183472145412507475738468229353187035685801014526823540041159478403324361227816277917442081410478750944488087368408848647456601507801627445292591527303978300166527283778279014080504994717756816409919983077709464219575621803390204779833713185790980602769229394273375653831959674942989442782162240360820434720738436174505382077778992405231893063241999980017548571630984492689997608005308356518620655041289953037690776624011033140429207944495466189771272187709023818461943706739043039562593833023771767804983578744439230100904683274826763240548659032806833555127692041554984631936834534786853084464636836819998152933619407386259731758826713786784403330173531619811958277865766207266086778060386303394895053366418702649331864007701881497082239679278809957950334461870676378534640591243297671665126136191164018073195452603345323540910216551212518088238067607310106532941709965291392089470001347575706435902226273308396579874013532247014350781796294247282270307325198141349682535175890150132845524702960384181496022416155585998533535202391142854565307955441593174546239525061034620421678339271166003556345802933791757122345966625429383850639053767562174254494517936875023640024637588046842008674896295637684338920686507534693910436543574861973698413643307420427489809252083037349726521130767692099259119664431677101977692170385735078863758648457965951632699985099485459030421428482014911677151090357323652791780499935978931564388860258542625897485490343188884807244079613141472284242606146282017213020322407321163600501504189402715192921526808188730441459461090835099336549183621828865803839981408871924773453458831914804103870848837072099920738001669799383923457265642734818328847404645958759575932009801549365141329719056711773066214477821194178622443936258486491083498601446234398285150885797424775044898060323172237007766479651979263103268622018610748442428295853003584908047379138746025413368582890283605204834521325455625727513387520844285107715159359685790716908243282399418653235826755236989190721457968541922751346976735606101284972622593833772864669680311718722408624668416141235741613998390138156134960634669924136125661865016962670520892920003162509162431963197115343706363666501850486366514898136704184833894165247371882275769904498362426176844489171287082548991962994397621143731883930305515227442230371435122063837248799654207107766681575699449809143098265679417241889986873974577403934543377642044958691364340165626190904418284540208712758045278013004245281977508389968768381100345834692089424214860811725683835817321342204400514202820614004910837774032175760632235281403054899986316430493959201880049105800184068196457579353941130749071167366967159367435432016645018679983148380705196340385099194127451534682904237005975572875140350467722799305110929012823979542194689451869479589579487382889751524365486815724076852237344115169484590884026863678376334807597155100048762125778011475322760513210313875130180811126820500114083104806358725064009561906583240111231984618583965952781287465534653919078301888263879890351531942568634921893754273261949354171818595874866230337692056987897371817149044732444663368072877416492349768123302892325666136234629392944156119173119069558617085685527036323068341993392955246583379465217597504251157279371194762621823706059302317166706564633372805887053256701126445486756574268365422390508845021842502653804725857592323240107085019397775171220991202490033805432060689433183571426404606421703644667292822764986678281032328506958578759595690728488403821949814112454108926825380926838876402221638494311892237765223138443388299282753011386487746645475396955783128094396843615583531427090400179835452119216366472428582941561693086588795894575529534366437322507818107909944744379745281078404682119813227898658415982919442030408037839593823360609665152661144850964670353934823519075847566430472182177894311869160122735457714905903036427974863115799913369180919858235144508666651278700909618903404843763568404237884879284819343366440438295323265665593771314823281989140874146692764898799588219525960453853174358042569700050370771189576994133096595820843460095732727146816163515447928994063262712122238202850380450813832290863822362984221849092963673709097861135523921929967461972250373973449825671346450722911861788008673905932386162533144683718322608097779334663784812503254610186143114947801427214736963725080399204127183071712649113896533445704866526169120722173652166113474139611471104156511900589940302340815921928841932712282715143018446617261929310944734828742867404001691444915760806194971064861417047249293787690377403499077993589374915175047294610147221912779007040049351767297774800437809021444513063656127586527713009750578377301658516275429960148450964618241732919025350403085315687376250453402212038959703811808408825841873092337544361393622763358182127634431430803250079341901662545751458063784328566216865821661585928745557932505824816485114016804226859832888660613302748328753654308574193130704371349650455376208317787637601450902071790734286098766719916789507741595841154742359228656810161432367425470091736750611923973929913934577440214835154080748575352872713105438719451395046548355464235238818349292756438850518410714395651572546467513663094575734482596018967657779958702974468175865534562247849064040392224263532003721710410148131578023560911154783144724059263059857491871158441463612446581695188753215271020095156885980137598426643382152966314008820537448638207175267914970175965729840875521617434749475336184547788816106888086850531385641344130346413600294850542848327143707896761524965602361653942626942620464132002691444176893680544978767078824692709144288611507506048294609262844846806788899575274974006992286504025732975731575568925660516506276917271082643612164852776556607438569283000535438417391617420789308295510473404733820611142875732949598634263845834676778357842231549273380825416558637367967030589002623465593395365220750223323183999869134301569922589483976646094930688345451039007769770088429260112878660238175658450541786601063280512643256939109319952365211913852130751725676728515042059901291995149429075434563522899195922408120214131689665332119315355810368825490179517250790200816777582023420171392035556293047505857628699086383928210090010470279774959497514342925783035926888911397865136208063762590936685473989851794641096042050412622162531285033714968869239458751968679948275067983651448386766802946927438482791114181115477359184401838937704699181897673356049454972289876615145746684726123372049006851480481592375534359409743650861878646663380604464398500269400248804769822073680360588911065520045168686495033940614803950589249694352140928853729623176374373033930724353161582968498507922718514546832637246372327519093100482612158935653114474753231620489553193587758758269967572073258814745616415462833119572688625451859822058431581773343557813870383797919926416993254146314532038377933441736226592680238411651167851545007239860353254594153236959014676415834400383525481370500869050696577719930950484802100829241967584397631904628258182402788240366395941003074774640518774600516513780011279591083307796549156361042437109680134555262675198740383307786123483190414055610702841507100821471247005732621835761717711365963006169396869625385476352119572990520057685233220819858195200355418866716677707407802343724680612957151174156945458345570182841739114700218886667586238833337114704828748443864786002631966216862755452204520439794780796971478588767024406654404477509953332734646289663228315460868682406280042888972775588839077352683765046897773997625842703149619397161175330426454341520019347055489321175144358925113708544146159213221259081266088162807251535799727580456616554577285801312309827782063298546274459715779194652969652532552648315313825994592781220487530050312278406116744351324810734041012549593051134246735008022830208745818290954634309990009374732793215862361397274366090013288972691675854967642977554324980915296040488348098140769754970678677628888912638093747923810072311437935784718944969505947854867712991586378833757929307925888541256608547883460278419281545750368301703168357288887604756528044373920842814568713123541639599282631839838977454662589347720846820332742118155634741958733121887342298296826306420356941945692151173329666325725368821417254422179413771452014737275307671526462998124615194069878369254437936730273197531526367356199608486474777730763715018573740912492705732627853943074991210331797242482366415054655326334603703237945321894564809852065085664158148628194914452684712021940615173193803411939281458816127249800093003606723316740993438324773351515504951327409334517623096299419397542938033430259533324274655554394252618389535589685828756044235559296086844649013487754240637280085313130986681812922770614624083176886769246480025992961801697265183643414072405296276384123586362793612245734771100928660811584214268783503102244881147495843650023810966851882493040731542482493211598333840439442501446780930702497217409817396761940032165840613532503651591563090435753597412988396503490049225314823840146763976315321502147554223449533188639217838426015860335531292578409596970206474784121486323456974401298447933717594754153192130469059661169580062105379308932593774870193088609701718277337009153599415808165219836958950178329586925410214088851942393886227060559557224485724515770362005046830467167396181178021107312136492054312161426941009238546246953309417290095217931557752612734551555227697450406965644854131735288261162312221162117058228570133358589875886522979694085830726662996501714381188682923229729061804799111652891729975260683618400445465961345148614561730540568525034317467426538354957852093034273409557994111810596940533113650791983158798022852770338880353190355229961088219365634483609671146986508067068857189463644468410611224541259519264488410528820686430482951531565296034881865640851148393241921417262081406560438017618164807005987624894313073901384080124039119812413439252797117785429240535011722918562417511164323333845444317499668264529249583746549991216780048234864627305426036681626558723207678654494098229160274447089576992517849951975323943549741843344560275422742190205729864841470432834599176049701838145919254826515306442806121730507384939711440239308566350646734358306927715823564730804226501188604616452785944957071810438766578085795157861965634208160837437889512775974048952979869811070320906454460792278763667657218990880805025185882619082946672942383243754866547580790728844816836038846015826980642301443749986669219338193725530806175091684527116715527383165923192337779383647844455602788029623865773130599103167296679823397530674735572572190443294971732120922624773768089093118714614480108599070434502295988902122673909274821653394199911424949454490289189921779771954847479079143312230168957892468373979867569687158212981410865732581795106600067837653678198990553832451004704842194069899911619573342023482937938334799888227928384799626036416132343110621593042157593125933710443124146177256473283178945480360749605673279652492283436057657141596307581047967292255131975214337259546680719125157963074764384425014360687535424301448139536433836158379715591617300889074421139615399254667438514474561095582614877329281131268452528603699301914742597301230117162715857203932959771665790471794280171566740363554080060175919457526802346397640198193249559466495654615101532206779648013483095585053057582684188189392560167156753770893631052087881111289669406890889934107009372056881036691798485089058360652243276054086531858101147920993227336849006228934715226109123830070298875324200181786594291226093486689602387919688059052751116382307159133748860833623597956849729446202206314043739769734795117555069942509547295427106171276162064798374506724447159214228130130632051547757811479958567571755709286059526831048375544353117141130933388453104058049788297202145817515344888571793438453615407500572316684677815052851143518425101657590604597755279496779443536634809029381619515886961791390612307141077405970759666659711708268948504686614828242481122967948645913336307531053861137615983627177809281375846395019222816724698104085064589579567536222063328564789120751738540683792359488001289705344162484759418502226405847478210605626336928413685826944713330174585850652257430257488602334533282515397794574227647335214597566776379331203106914258844415914580016916880423273605933385666693962701954571579240784711200094666205452735000512377592696746571636338749698341421872629641419335305031704395846249559972556604130047740883697352388561853172808719444241460325751964373043492963167595660607370067742737790729000597023846155524504338288147426749388321825085037802552966490874848493580257578043238705746959131215934016659328407506564153686794713855902286888424303968307030674514825618386243696119494679763952057909949558391277554478686289491844247852610903733020212197869511615398615546194268572802345043890512181856614664867785751864630315985992046407811639950505876388482110939767945945466519087010232428942419316553386063453597491001411732041506874341424981779164584732791741139402538195699977292572397660524080650019744569539841232188022873644028630572518482926069788420955263413626004779511303169857174171723672818812235153584411725415065914515931575643694632933726425848655354941273177594639004892921167680886116517490564642987124502810970380135979792212807939899242581234037437089687389445230570228593528742328126128726575651531326351101687083818867608158347881266361108933644655480395158409376845111528084119147978213878199665712807744911567601771907524095945332208164050151610576960269719932352315245179836313453535795700383514603291701068792716249217134051213467791675422613593981249285602216793404328167277479901819566217166046818729372160273855179629163825544945799204506792706904208007381463543126727901766141058881959552048638120956016635205677140873675336953451565896959054697590803511294167932513446154864029632280134308202640511823203629214934515656533762382715289430705375632563051179772020300448766796152014116254182219031179542245945472657919383862981916472705340010263320686611041390950067190358394358815221501282165734197858335376268945067385354495472840258218637343080982907105828348951232772105190435265553772692082987129575976126011407320182842581805336930420307186413692276959839409307901584725465457533273914419163311038999813115514775291362139249067683585420465272063883216920769302098953129841755785086241636739587788704232392388441607799023035386047641348292404522638189661319587888379299162799313675537244059902929005571118283768644902139353830096203307439108732372084817368716814257223368600327719518769835488296197331489177654082093608722215401880561257221594086211612717980577070276708307565977333914095341475943596309579972877566517998745888273631874332170760988791213417723239613834364841720598386131722973280692916097715611174789023236026505826046651817299074520212404817087405708353624703146333690499067218636642175201299622334701962314576706520486080653278849441148043070688730473814469321837086087716094561594838387905785251794674555295370862415734840495587090782382243254251785953914864360718798543096703853935898855486169086098410005952147861914837360204859034704321225435231871040800208048037539019276902915635193992226550206010109890155678792526390340745026560571573992381642684888966749174408799858036517162970115957736234182999808917743687148435427868708882179855178636329619613138160589523877002946335096030709934163177400012238929005482636407019520215047238580324232275568351033968758451802072928977911350024366198632411574875846150547479373900801105239031615574771030724091867703022284555353380589755323003702583825961241349732262416510804657980625058725753389108052118624760980631426355641658424006113861832017874649714644584336450759878846278055986819463990144288724847435829686630639163040080957009888733733770522917462574802832080617502781218533625347158621839419958549235681897053446107740633665695758744854444281743806780187349556982698503204005022176214268857184151829050753346150955889934584118258988305921912230642017235136669882007184538438137196078323453719778498098592580897938240797256428876737242690941129846771164686798182027443039959482097428532598364991525816193528073176399286942517460200879747321386472071767533350830956004178135993590157021620214651454917593666805764084770708838531660954303266035232519249606695491975294885217552465283155274653970403936893563012326730564975097607013720225402605508549695398045957343143227327962617944265844960935371954553357106167358027903932018563351302520353082171944829527282000112841422182668389186347848506910554731840011777936769199902682095524679167739523596966706545548042161569171625021898094967456224721940469127031327400435010868183272604195176175995469703342676934277475205698919719119822338060088006393542826848961651924707295869234339668114976075762018554498941589886129612868277713735788947411122284899586957458147112350912406861367712983172871981506987607347681958926684249322379141686703540622294852752614530206943022010326784002532619322452840771089784960849195705612883739215956851716865821694251233168277155948427418799844963507451561416241948960088482230842176894867743267919004622997325369390017679165901580253889701452507905512737517920401816100645496959808282032703538134328656142180261305234011778448681762539908723351883735180903124474578799242666643655137927795457386412698953082174087891669350631687350799752603936632695057128940798375567451341430529583591951009441041712088837081256778023219718897532842285925480037965086758375216065629931995483134018947487885686914340377849469328979836248019450241803278620305344837245100638488402384632584603665845069935653879978294982982352745421680543276318995104238782817856048096831847781112204573671621549092146922432708798017291791283330608277454077648558522978729163308468489360306654936778230616092900800150767214495069530163791218087176853492183034986220459184577653026068850471503192329634745919555262690534682016268499734920837330499400891851657132687065632446422402949911106090909164469227995855089011885257412573503516151297354372392579190044241970395268997868101023413045103565252756891896361646533150804905345678570587042557099477697754779030347911076749398406523352485297289576764338796152659500703150731201615530988219371367118664407274959140771312439068922142916256241032421320893230262689331764390216575965116554992946488310894648736202474629005706575932068993612169569376646095941741747310875009975809864895008350453669293581617959286281981984940303896207335870125462133614554272015731139788282821036252979552148829429142485925601232734394011047253307344122731465830005426535388558049884765707952109106531561439080503334727864265939927255073979520694368168818909224819153569384357844456248021785961527849994026482888499730485322402863445306257797499019971987572775339053848399992032153163658145246393296554372229886177593896164702630972111227742447821848599085743409986694956154219210883450970019769471396637921614392642361144090667800490422008525339381953948548354091811655236652599885417999141166580340965474886922143962225187950223348438764856635946184295372503545222013557478596568025456468651264923624891966378286564379979774755094746711413772575274061366426154045999118936819747416037551824276052007368346582333997191296397081378185971988824635988692308657155042415982393341788484409283112575479765657642652592237420490463988316956839152418191064994253895621755832771293407844497549983604923444773285656791761752848551889477168054486172506169588036004020134296107493119810182135865131209402531926551808989076705019691713823629683742565963849810778225686519665373466453057336397911850685445635114987443662984375061809921814474599517637630882673748256990437693783426276252104523049596398407479137512596086634494544525982023176686215808402969568108233567131374633934338959849820439769023848878266862224853668154223151441863600777981400968065355592363603951763472079936705061925539007553178757883254559100971713616870009611025004554319572139575192399853716455385011716159814718023734162063157401256568964995878527523549675026156810383648468821149517995307867908139427582060392095970520144284445513478099780601526391019652661330134024453047972259485358940538488285057404417320862880973677294781653811516902698739162137823849449720072168574839587118529604215379935525738742950985032826978291715408361210706494093740352945747560959716284832266335952539942520793966015943138648747528719022619136343826352415476877540832702130085763050846590539574478472658013344816704063489171327048900784238061006076382257498829241866103521064670593484625068353198988054872166324677246539030513690989480702240647626098095279729063426870309867231790567552973051204651322286204817280192556970058714941104022197892963430188941143011677825491669857486513755604199867792539090153475136252831229052842941917101224292741240557580575304218647702116504179317963134985761896109776733935849564974190208438511760180396392963338483559693697945243873477437468192904266645936577670439077656070624252907692008963413591040023713065436857492571449800419260394889378915338164940452516811228311369820984502120161028813863989733305999816207995392431723153486355480162376866427499914351652567550521931342929491544355937793894406197497606571787745636868928425088398734214081166512528402246909536927357034520360281709636621766873802761223108725690782891869220629497846279112548768556878752810592166709469026248312589338457431452821327078185011253352774833401175235654453503214815394116287417344922712697921358823448977181027631365430489499016842825904446554994873637276180669850985882098300767401542331250870669162378090413906506828638342904845713504549260065375383644110000589888992018650029061298366937777399468789872275273849769894732244704041037661628912517533655479504561675825469566779539437011321738352485337920101787747486008806030748236140202511106411098356172985245135377467487463842210732072800687612080662973703089218877039076628868016006763822369462645540459451727876584377361705303007433868767774944943389243435558956495038338849909219366844260689081017639488969270801153532188862383116168948168604247064536426048136760243599673495800058935285636173495828221120683102170053836650102696772436655353874638150316937992548237204696675708281234054946335132234460683972407741682338231780540891150870663946242908580374139296808428185846924382875412570978114886485491093145858391668400738893607458040408952264069224678046958128704018177734047841408535081850075920913111430651614572123487251200467680893881986422410313365328960945107357362591661884786632039714737883473070988410106656474660253199250117220973161563799226433553833318881718999465191609843333821458251554361949205822737166696806145208218907269452595580887986193911514258326612564088769162890552648663777041908122009257875981526198724998226694523386851199813282763863950276496800326255575564902991468814482987412867699345125654194522026770998660786552713193745017636318410836183343283706725790695030834676689792534799728102812753877403065096680058476251344625158228617765323765851645882212418085285080885809750069920291904565095340538945347504560463703788866062892178444277712452862630953091801502273101244827676589529555212789439751208832275054222419926341859502586022196725410632825487372362305196738715961965169419821658189007294820201196989049194502734345766781353872810505756003241082459603842998323947249433031248292801789147952778288290145318253084448394932342498104130135045413378062578920603037856553517670680390536492790161668573296860765208122719814823204027602844633305752997557092366999902449503416774823469512490911075551773666319008489841599141381717216516013076797909472894122135202325852753390827531101825109822999690003123111078080649875900478473346425836463706316824819738022192797244483378201278755623370300902004328013290573591300326258750396530587678781088033321682449754045991523142942213359298442284910809016821509360227800333719996014957275426296376090665210171792016801702907799862826531400444164689872577171890559197153162430646717724227060179841925993787168450280705688679135614065364283845626434417432867490515769988094375342775050594340299287349549665065485843910577639266484912573695515046271658671533811706028151279525765775334058391749124158791876872787793138925641279995417876518412314583925392013546992288243736637194273560067825114520965571457719046362914432682777924881269665382556919691837264382189408221877823111037635847238156332837976093050474447795152808241173280476229055194120186955754978013536529096969424434623672040084438720208487419824135812528076957442381305414902043888286457652862208200997346597562338432489726332412904956698467591909432251173975935793504584107276797012523174673912146834454436890644322354848797489464759908014533224139915910282908005807904852515597042204327298414238459547183174615592153189767172622887409530710220149775041715831689295066245535462610165569305600882393553065997834997190998308542184092119423090639823959300125813723950217350367709541835314115686172159810047946680643567962328315275062447079621657091154988981923896078173889420769301872896167773829323034849544291907035287929743761407080604006408070350789795375519362535024902219836504830617460849482747422463988868827673108773427202403460356296454107521863502806537076763458188654548108727672229264375682766213915364213730755361102984564642562876810329431269026682219213705616452804948357034305633433682252834954244661551138732430993927696041902439466505184493674771021341543349188291658373064170184020127097850219200911642186464484536301205145198198146766953379701354921372045973932145255101010583225426346340997329426354708677346044373914681875125817439577210742990401390256230244737701332476376519253628607508781482915490484914162418005757434130180682175294344762026215446073737284851530399218378147313711649829221934306221898177895360839396891196009344818057702774478622798136072247387334120434459247732815493305854112156956643913044381705478560799883519449508805369528406835317676781114301949544039673791571838282910185764898351498973232582824856784405400609563456144466406817295093226824518994316295818566144883681166105930297502774346469748773852909646560838096474380948727176747743201565035182304087684093752119959531333458071216235285099355854697625843704215773114689034804837316339240978844641087491599451360547802714234065175370725061570968668659198843037567444625229865033302771574551789995310124661022824525265399446437144304910803994784323117192064138113827883957995326953382175146357505087590062681179027608291497259522166346666934886220773658617922958459594378074465448538897084609668041027378888792162771239636807634052745283075865210653557301473192902030241565408794131924454388647976939632949452294312065845216349504620531458739829376878640693093434303858455749931256837853551562707217364377674285305730667052624650348443529909914829114686998935355347921775830377657861607011538690881570088241172549664656503035681054005164472618009844518928903737411223192986242656895472723679786636564225455033965886029324008654013015230782703922528053856000636343747467324670917998688744043059311785713194604635679524941916202118441493746021161557813095752247218099389413310637670401050747660771270562173717056376494959375610828870963305817583768252391998146712257046286519143343639053913933461090841234763537782413369243750071032400676083199840624475115762548262753036564015320240407627839875458234281336263332554568799679941698208503862187777360286564637545410051121727492786137440567711909099064703657909134861178984645909277243361755291239779241808089124455758631243846668002976955268543770444200631582505322513224602281579431627720032354105773537504213304732209815613995078883395241678486023838214282360247690527199385087077796074007143744496740555420814214583356714969409531211086087247428566900651932952468149689727256694944968426738186959390437520288099467090285675027843921675771921900589448532083018696688737856440971051962911791440306491498392289386677372870406793417733775750634273380220232382420792856808485599834136996136116168080964643172673375372320867148125865295805223760232627998541699779734256736767942156993523130909270613470569772205927245537469137206065169171023776410225478419448632546872603847727768427357310185271564228518071740559362722675055707979757802597661894376200864865999809338911871693009346621115027745075133194646366755024270169694468796336882333487796403596423155836645010254034199593408017847471304570467878856425072664056184508746587673376929226763485704031735402972548953815252482145788692471654176228991985290101964416236561188215355672549175056996329160312804609887636438845502606352797236939047227912821079610912889948329211048509739532747320218011273908840223498013683528988425030015656676067102784763211178255865592288577600737519425823708935749613310765827289334212486714126585446774799441610399447887525733512544406055671877994814333976777469604674877060562070867255687015221796865194538117040703007344682501891873597592640014593971528854419132893782993539099223341371814147578627636431560734017901034786468539539622109765704675219333080045473506482041533239622622761746804728202479931336701308284309722592858669556446913175682837298440178035581176470590846406546139988159247030689633501067712544573303717374775695053808566363853182544895534853908552490192003490952259297119631112112410680714598121913785863441552170190926172676365137382595050726784605197506200621860237978248449564235946857653981778176123734798541274934468060148666908457385012541843679152961821925916486957445398967954725788246258374080927989728199157957919657308094162471863791208686087398191581087618279986592958090235746836542962702516030182004350306641264062100735785745178839115957848044153550248016809566237871247644828310857599535424974815953870004774720008408085205376506774548410166865094714178346327012929740013883003075256120025409993175941137571331691780213551733525908916111311237787151167591769707706845397673612535598233143884005131664481989290313064992153356356528035742293714646055775139651270199599784238854314108429504071194904048962713881851254325493049997684111218700649233198882569810433863205220909902482635051580953927212911518165281743036293863141205943451340127127922901251055740372940886263279154316550341705101645811976104391989348903391632919768712947915478903770134111279996445592741312141036825408281668383418556622957947579679372793208739398917414310728797116947281628827713598398089328803023583266164482005555783348414517372738895449279313230011335392579708431739350848718378775094647006782093241830347171408664393606702413455445922064092764773517207249884376959890479360395310495088483596971692802650511372187308777816321832595612963992498667108020764917712079418773597479411579392594286281084848951961042820469373423757225491013037034317397098572625779250600770849356604736804016613480650964073561568241675926432768136665046400544336820842797426304456863030136264073184087190616991937701710902192105427625615972259630252936031551496129710115136640632516225039877217989506510113231265217701268570401691722524996842981064545434713628157484724747119621771948828051592956859791701515524029124184686207555482549471130545686060294529773089265019221252284593573569443517032095590331872913284575553051536519062204215066799953016420229193092014432235199330639509503607278618271690107890172682617280761054402700120124881857470982276366469191207282361145662080638882625951825800262443045963064905476350488677944122888784871609106673952011438713620886807234493548662832010526552675975382476177667801458926824865628890307477236841411332537816282519110913506176562890310552906167149789736104838337743222063555190234965170534635718961427306979846831333506465578790695814803101772885932726810716832187978803998190752881012388929407626858096498168951883063529939653705228185943298873865097657929540553998976917927375153157454174348462355596353561216766622282654325637077347207192159137564209284648241813051303975362333522353681704909175575533082296009524675427218664448740961262951168334614396101256658028185785719581925253601295452815567941704551018360089591929178918004411329551961591693220530816320813625950943833501105906922455841697747453037839131323887961335579211611647740152318906850948683166207130290763909978196532068573325709666255087479039625570971952924413347760730688831439859196148813616916354539261462266879881534690265502884710456658360128155623483056091768657774828349050711773538203711540647008039869469088343580802346792711951372117219647077714334297774935616283457961667318701471586916707316702617394572916341625027168501198411757104330014371533637498575928726426654573816953895009114597757892438843937577866353374214747177736027316399818753038433377801171239338663125543201432798098592112881710674833719247641394512066855680662089280459779488334265875174808202190120947673390872668656088849358842395679361946939731837075848226986783224256105930418250943116017936442019992324528682007249042098369103333049779727910637718138181020868947940854688016692017400581659819765594120123170529592940441483989049813892911917178618532281169880291440882364202171126475337700714652620875210066218956401357842675259844684163300580557905786625859295102184008110489867482206941444707842560732602752849416643123320881367964532590853497267797365375848025629942273968324877172426934823756230842380111144337561408622059116175879848869050605038216937538441361287996845819546291146443967863431405523870013741883183371437376014011214415355384400014524319845733900578197814625829907201868316495346589425289797567167937738540710347696032021731342767739281087667393487015209133186619032682308236971429860180051879672954477799374394364504764623813646951370674309049202547428689831459745912628581125443953757583266650575449079168580981786302733899107314535363282711687539679321363558232082324821439020742806357028645175349494232028521615048232035082471849077591953877360181753904105882203974385889237425802886160879124157941617330587898592761069631358477399983323344517856610381070003322690069695493685762164555454467098940547773037062986142909995103603539419914006891872275666051616178131782585939373240706220343578709623623731401534718491148980484742716279819892479444079453559302747932678886755308649907117913406064234815908560463907299870353713240208095416789887202400265167507413811289359438875888360681702183341448581996810444492176234636702507373920451052375016006817144078517383321873462017215452691049310556251726854660153413772064167012792865850369016857925710187883387064886086038643339906860216138776184411489723076322048732256614320589066223419818625366326730295456397204312002665815561691873302798255631411476401000961948058844190652766942114922568247861132501890130984257272398732961801884813452256928907409156591051361898884965872121326088756742119968516624740772855157410084066000228371864638032567950448973663747956813544255928440768214279160276371193668328910380311359080526889072205883129791159494763330109128909233027096122353589775186182626669746760215100755292245391186373110660576362098717255943286174309095121757507382576789056607887898710542827843823995134210688345065802436924351872966925740448681749491156774268149732911288979778779589810299032652656215643476805831745956518978020276851038729602261755838989961249444567934228873328801535348508218750811519868071615493619028875856575615887606548197263913922679561239597841752260395232527326468326973221413722088955909538926631328212533649953886896445752648845354329627801211772533554548364362987842659368664203113018812894765951952411906953974015645769980626592790969027931086631751323525344414421434035165381534576024494600284672016905402016008919780281239136206067532739795802794114153876892254354635042540817419757681546826968583793166680692535444497619156391026092636368782781172411270674902124532907790043641258463127270135156625319717873022341754568964988749854917968118923814984583168579224602455439604114211612136744254073848264968992674860980778092044756136598842774948447881657864535943127419310919011118315228865950767834871964697986036607261081453647179657540896184002888822511536837042912858721431261843344794794731718957536218145815238494614747116714573139400507805934717247362918650987577416340485953119913712686707403553119952129473607636105689463490186339443316416961928781746773192343773353194453213299769346673638353276597806004253239080967329799314771276741759856713012707375804307454874115329850447295781379243393847341954204760639331308735717396735622803394441382188486539190623327987984486167100282290809717019131817664127953504005719759107942597944635180482497369025530488315242531558717902653023202792687585695948659069928749831298818223289757755588269115228885636173599821505411472862389093802648495954029454637498189098528658187161697507121111402096289534091619380317820808946269930778786210792492635903716609192839356896960619622152447019111932197028652095809221692419929804893020580915369557989739332276828474119033057136816690928528134044997034779650216322976275034895920832017918336274462110691315514167577375286688807660635591982448363424338315535962114779339268293461233085934153398429447665262376968992715778594460776127984599160416189325578535680363991313190133228484827352981135106016983859965511557155109968459198093885267329444987445001537555178231080934224215784491913343718589974649250466249043873648944584421961115121952854694339069131360808452398774472317303224302502465682991446046264593929514421829483891139210169779438839672827303138558187397751361005380969085179671904320309887284299562410732371682232906520350001460933670837041400964212347771500475347333910383143787407964532301049745950569693105009362300317863703956573250347542263239341369115374432411269379041788825334202446844799073030097770687208889579964904985999369964447504461938039621947550029247580720702345030728601802699022044958199264561167128462055542245358043117966615560173625935851553983002970397427603565352273082326692803916913648067057321944198698371890329079776537176909376487049817068525739288238875677193569426006641850656292537142621862471130414355251447830098220302248704399620431829790918521420872800492313865896717252711376944924711888808856490505029335115066213946667698092194353181325295632321689254926359506118350386119402685339320357147671022856611114288335914626620496898919284884998562722037031594559361938276715735050852510376250242033527947306195341362761209175487375957359153340718276646504376674177849182565160119939057375145304296924996121755805195765961838615463373596621142926827677973653234825744379595550180887427159642811900932656182150118838818145549697176957984871037868506378554929988466131088432081307731205366378190613937922543481718406521096331129360444695980202927884356705067209231063791987994683603744008836007358716652954560542049256893197751881291189865840750369639926403812752562428788838020082304520733794281799158493113161180874186625731187888693955092316844040433640903785904881174981598423881553295647229531125749903973788164125128369818994147122602447000066456765298506765749810494008939218857125190743273730554924475655296667578666750989575072090584499105405993632506757007739648500433353529024441121564852675782201474153071518326973147360155806377477189648851003671270158949452133647277985413169615754660504400261437875558617233847905177934419491657525245356897862818652515908374645724857854677663240211562159488199234081031551090654298754676704597216536505330271755392842363748942327593695489557343145162609313478993803741855793130072642310420088533763782785957594979653395866255913016820501160292991452453899777976742371467072277487234415830567971622669257657878401430992447238061607341594886476618462286022921233765964847560226385243831373232592066817730700509184597986861968446105135860415228045996812626078828914109108146854168208167776241555827244998433760038909404963349371573737301101899693019822303978801074078397740903324526044741753395425176591702579521535601488470109557632612684252378395139628362713200980346886533074967427833498672768900490538533881553151196272929585549436179976086530781514339113078420258602260285055895672195594291801971792746170919975073210620933698734139489594570368362338891705773154105171386991365032385475518630240115909177943570048599325722425078206301925078419114905811912563930511269539201786109790505722282284152863642752905056434693232749254278754346715597023837351817124774528356725826913357555516828161599215737591689266948731964079612841485763867811548475520389225623438808315910033637838364367718559930086408140701731039303176050266786097019927138931284366605373414338759875736123053838738978294566077156207754048014704366663989301661530455879050487920085979272088957398605005381903498440411471252028093655985493272244487381991951135265026852108440804449696385785318533273533416409865191857223967481924467856523755954631396312760917127026434484103598576486439528912772737235884381189103973147245310714095110760041876865973077265517119081386927477778671459110202600906110352662914363521773046994493674633683556745899225385045716671273234220535942654858529975375459111017092428715764110903788734204335435890528942889397928491877576745150641288074405995694341962836453393041704868364186701105515372595922299891537966138743508632991669095258832684686311119296553772781302600556708021501286645878758752835573019908774165530137649317165111484808065037338460053525409360174367338061005083337436852696954800895700804461433090397167958042316851332040948026425601645259902508102153815037756632724948360249696610614706242982540859496847733028804758850865371990547210872635921440886239067970620394145880881666256783420915732280196092771736397890339078791783368047569338607554442654798213114609630685792515893885420274045581416206656683694216153185955717059751740582826746194122958827966924440407413496119477078022716756000660192686183027704400899451115439605989752328831530281654421402929018812191442290436506542174255148295566479317038967211838995936523575252001476764609304473114200950853003671448820311926649729273917035822048358089317613019840892729838139890014438894995646735654070589694702788598751385368035523820688511831058301200245949875771525675734887921515989328129202566867249610998422590595001654011517714757837854749459106321352088597063591054099543018583970256598184590199913159354028152180205019374351888469168509277317966943315539274060373145921990835752890323287150621180194889984614159478755288436195441026934115101495646057242226580680646351217228288298019444053951759706413634600256881852565885211860732671452574053810175178146732537006748233493457988242797827986642050546898045899330559907923633710447097314388931364008696110371575948657599382539664825127867398463750014443434684406474813430584731838130224015681037763876932915413419342249012100095887421827954113200403436330341490957544460786659547532175433389733642649029319832355332856771328102518172160719891947895437224937179345530272122703025010388261979203703329546234412533509765027752398503960792121497738329907791227687280289791178977351858733210280815390894956138523387039969922191467065596102996796178930671840230075757516614118185315004111429125744408206458160796514086805325054323475913064703995752640596633372074391539965688663300264275505833942720432788867403674312453517063182877260243937455465466520299785913822576614251165112409122755380637568531980287858037306277351489956143871989339677060558802728644350008484644393960702557596558619821348877013829313925345768481802460126681546972561878753870440499963806765972399963107669690637393897198029175831742155103766906909899831687313460392767259724087049123959992122437410003850079739188734990949556981162998679402164136312189901836960413369848996336824085201708452113739998180018966661258736968373185330278979752842579571452551403814039511778555066980420426275983581281438009276998790661577267263728219640337315712493192655299958423454306062382696411032250095701896406289270259643649034450671613109274232808342389979585357883619664062137418557492362378888998528715243100174883129708582499851625866089123552173846982423098923806240344590478413282546495727248680701382470181771206688463715872988514397167528968535830211184305495886419846403235068060691137129715787394635870745228136574386208211615156158752484951636028239269150094835031751415394838685695184249949925932512312817290755740879960894959503193549950123921267185057343298702281604791468063362756615322634021505464166061592118108278885566471655186402850221862348881667666248548185261065092676750740284240149217201842275113131468078076683035802408968799646091403520268066294910229046875226133856953666743733086237487121842286928683576381126155840785709568393499570326722583914159114059720042830707860037983229041954039120354809110696390473582436278499132691626588710558280293195880654243363157684525303628426418183018375463384912566452128229471948951429127120074245768390816657839747502750601889524252869634096039910273240262156947366625706324422581308586296436349989082162948908018771982844629158715784527046028960304094930037988811163184912031408676571652912153882544822339421453048009344981377242483173821448505238213425068005372696894391351408689628680939466155726939249694960841425073263624753258823473581374795254276846218413290296621587509504540072554593384911697506490261467515115581811165581242227541064243846997337310453645439138658441581494845669614073864071946550110512721219618938768909454662575393095772803726320375433571400954170015122859708337435235507151005324821335008906327453084521692834528367732633959886634537874126095958539068934704684923452257993309567912231571281080338550660568510592651997680504886673412704122970873210468199703052492452757125720841199706913376195542500849050761240265513614688902472212315133801616343781304427330888099026657960341077348296977494579511197933258359707103935043706975243688840816349273254219208876203441184497151014773695202613006960661164347498964850912048408748463903165237989075858694264327328287865597624192240992072608653044472669327803496751002912135531200314636278575185822366176175153497966058853819638991700721755577633358703675115422540680922530306760319547653018069581718536012468393528926541565833865440991159546179834918501478514373686354076372776551698227911466825839735511116959218498840919509519250162368070064415536069744718934714078411944379220074102747520138030550283246907374530479913860816429757038811245312384513481362994160751868848524151941272317167559838167429167174331065246266702727806639249934822006088102325585877558949072850003346407730562541568022333780680057974936479683126717006481199133001824400583028917018563596368851927518992102647970773679340609989714220314420294520934520125118913696879275676973508604075941981137993894778267669336678102489737415002331123885039420683151940875621968274640846256633523831014879192875637153717626658886843362579129599710401963078031291898397869928511985042856913494136517995005731138075554278067742642284226374886875152668921619478287809526769094308854865187007406376905411053298053212459256926826670366279250487742781900538042190565109613908725023109867979006785065650393682958228014185900334552557030575250070138990103971667005372751310119787498228754431318840963604998388283713831863841808162800880257929514115318281760003808034628988351836092698945792074426447805795252895772148468168289791908492531012745315603025579391995284127520085037714938013678233763905323708634860576865969341477617615910073329577507856831071528253947438477425593965339617819294244609448860730613453931333946599184374276403532824286283242213361466087145513142338820622442542667572417130407640959057217620082001288569906820845116394622760622037283772641975646497500247764967444029536188703039086948774799676815558895544040039066500002619531442606859548862537627767034527280623858127512553319379410988232943780615854789930342788880473363697524057266823075474304315280382562160630284984767661424392644396992963301384899196967223928344277128686936770769810493704789732570216155394899165713995682764660730874052714324488682182538567914085921143510500845664286427008799161906379097567800541598035446042110256025560726805014491111471037429634055440486982039566119258538026184715055639081083415171085819776766948346641141330253834463352425157397187180995955838169949280588085471885102103810241496276095433715937089363967632019905860913224912303724644550396145113657835314024042374491637051884273056988234569759101474968757341442511335177173003098165872175276366212867090788190773112804477635184035902540685369283922992857543051617093025490685250179862943003687520282479798377178830857972652102840188142219427932670847001987800734671291823845896044256452750591999944721044357338828730767513524575210976459600511897202514270506063864381270457867939026853321301380431409238211039510388631391781371326769385032323012646617954918053676551672590372383073677016530829036354754990307205232454808205239026557926597785422275291159241868451991005394294215437756121329227482584953644145189051701786448178173066872015345349342348889460489129719215044736585810666198455830515686282615877842121948574862737920112637171035010215912421570918824674393338998606173047993474865417028431261972424513242796476070623497860077963184540555958259770520574100694705498689508470137571053082910939314420288822832010186883453385342861603445824460617984807178133133568875121941840713985387041635700611182353441065425176260733155731827279194689824378749401992163079153171221920223426388191442012066938913973451487299430084533695365833227323953551186101724124789178495472827365509237377690453777308782170327200291832120773371240133301502169799450010826068552030195827863997332960684479470811417404140763307620936522947767478042743404855122916798644217300621048364476768169314061223357372809413904508451100956595517638385798303886343305174628689449339955399180461144071859350223527374920556722359384805460216870494867314433503445141677707036271096822894483464254218962787681815220413754427986349267629815243226049709984353273166637621150124883956367644768558478441014819362070946648074341265471365162492676596116351134822201521588811827813722030446536345443713435505878986694471719371872298866680336265195100490341485795472616325298153027128857190262020846454405521523230861313550149367695073818946323479360723177645010561584626239874518040307736999318108896116548381860781215667836969984210707756817417804048835881849999481107482993419142717009476837281706734716140424171579191661344053072569104212060450923245412182559085261081996967963380890470376719884497743160994305135591385348370034819550196617572038627405455762333862430863933948995376044610502886574088243857503778661873268678158924176415470760107189681496265918150720404727420763652249927601459838946920854988220934388968657409850594975472183773633239335472421851461329369816687168493411732380053435704060153458755000259514129464067019927662396956209316568864686786157187426049603599479023010969740843478024246019371631707778718708658915099336232864250431119280668288233550913800899388119817117400455932778926038346503348528574359481480593877899084080119712784634832628075888499665498416939018334381547781379986327842185091502696825720210078106233274154755350465859036809129833150733677358506638178984226568793413996235037496669824364017364303064175529070928450786886433358507747297250476810222927849635733981032801772656114419460420448200348730378195751285915652928495203009888885029109031064082881617985293910745876283175114965338410104617528957053045733489670207605309510618160343587979480072668615898963299796049917273937918406110983673026311205924661806712651343789458908005233772903752553036906323327270189984437298362321174242773281981612659969695066810231863966664120668116702299925022617284336496503101317587395081704508150583574378185397997112357904895771373672407146693732703940982970412522967829921673848131968679436945612469189975434668759834950778472787185862154770694366356062330922661609445911242678172939176195019282277401503515920692931095483048102909926486719158564403965501949254066832485787570574577137834396819804790598307340683731283707267177013193049431026870535561529926451564106088915405953526154299095087354587288668170420670008892553452602882162309365883444524947996130939909628154819062512996648007474169386372717644714601021631888679699443060973981724178723938662274314927812438945801305984406521090807642438715154577697372646754640083415259449199911488195490341265122029475955351959253003682250856688975325098494054598216669453501144332138040284222482703562898152959693199649519832761229167695749844810096001669673902161152323218267240020783106323815878367576315416683735018121369157500536389687901175359677407124945599411683217695674989759634942522811845032467785925907502138779735822426739487799920520613196038874257450569796137793780016049830260765345124834315765515208727202918333166324526980119299685664390856160822996720244994401262660229766380892746728836234844973769857887945598007583611558787887917977564194678857158356154332513756201163455609437367741074874026491288942182880874300841306925582698762049273733377093408898900195627454108313018349981959436707874339546112947177227272232357027719107727018755299394716297695958053994826327902473799139751863768016455682556046024682689752497315806938297405142399176461901866722784362620244944765184634115202854484315585435645322843492058336716156733825675127264245625182885974204373278734177411390746221890345570507160672715968547565072516207966934829096460664733295688716828173909253127864182765220427069644552607836812629755127513606311492290224307955519079018650166900484534296775228995714896618447449254112323438384351191829730196286131288689959626950640947899149513803844297903424004661697504379919580156197992580154479710449959186026428267339331627134666040647514726490230444219642351264743586771787635010758058189680889932014766961427616959396695311105824238197772247855085294551601724551150768996522147545584810344104144368955327261270076446394685594711446334081289834193055766456944728998135576687408450229592659808093019465564648375341090406644227745460172758478849328630762761753385377489426328874191900261767346045262498827375843387783654176081287836527624277123423945549694498680082428571909944156570288035321837247451796518440655011534384499551332547057772816750410913872920390578655296854146319797720288789285098961403946143298126754154173447643643533390621346502409095073187382127772761125338550295216985575263639844381732589096784071401878352057032436018220398247136202616413855554581229671867511119268028497987581230746459906235663336044781322341275290268305634843103029081932330093750511099580008238999001321439051301785542406296580236690240686840741967547278238205301717485453798426569916779448834033940921098733614758490456216684098975151206187397973860884753818275522125197718338138663919164348184187951439980828162660105542609069562163849948573450629190797863482335706646334259207318852843346094945145686143220496677210712547284252427237665296828781420823978034904524036445678698657308571814690466847106461068179642710802177150691765807574132659796277425888916141327489441152773148915294528013129245980613273097263646249785117714941271748156575589947380990938633663023830628022997251876596004459198551741232761897387639245498215306547630296445605603160771867312860512201339959307221744716011443616497996109162277164302978812260226309993168156453989053017193319882823931357414024603961494340763590723945227849143820987185785999475560490713488140680371893780338116056160447753253356557457979479970184044086984884872915903746666561611184513764459774010286381957850032695516443210585151126713618186390258187079050722393091506455085650563843683351982307456287376694909485737838459593415147723371936329579309851122969629309536968407503098380861148634006552009788144336222658787850251027233249449419425462740667738739640314934157243974079391391052632845029722229337386994213008146238158918271683176600166292070365549571340507071058768386882724486397052925872135265398489901337317460042785475552648736829983949451247721777901027153163522856707714179656404805252436744756300669267259837931328052245323066479693455885686301498679267307165042802925402408256450153723203274265263624445980380304211574021731421624314632761561033400258451000924473186562974966006548581416596091521656288662106083996752068109179628735985426357970052318713685557355065476073681317350214509541071425679601543515407070413422850410389518605587992134860160091224903399548241912915102624140988404620356043297875495145915577849760187755893775559572752350128260280924969963958565773918118645689289716352163466897962441674735754616534438730479160330613574307186831936124370362132937484815520317982247622730351074655786078590285374053869893426096177715210839664505015379885841933324444059868228089253611151018815300068955762763068789060802867754928381833684987077588488163197871084134296175333182530309215852500377209694692515135370408458465534041059733213077155561094953988340272849142641298514100715231416799212128802800929093310831291419516352082444693745954750742630805683516652492895500342714186003990296168472672715722471166749410214578492421603264263287966083940432183284061817895139585111596657010750915406863069391143377627589154319271760144303533358667677389104672139196461005029926623734739568957183906280236468127354281162591389003199527734374383586437269418161565264480781967363419499789109448475778022055523642287359722622754062159711822151717346009932027396629386084745389446138047326286747443631422466198375386925220725754048459534166771994004600092846613797830616016830532439505728333643217307763404819989280968758844580070782172890530398233487012895958177539755171803848808108503207997508915409258357876353038084122929987930952062097362274659636142880412984659564246615998552585947940926258524929446911030900510441019385759542399471573174755692129227538320308413134671577701001937435758198793211758295846313823888486462048208293915478940667889654709085261429663514442784306235003500813581264411852040607943438637391363369580258656672429258133633002054031900021215297017282427396811944857319977710277217958936727811137714531258771425983678408946281094808789064104174302569890344322136979643371170585774193779715665343433824706593392687610450158867159829678652807956404670448036168484950825239090728836275824607500388063193325316749547256643667239287108553993350321451947353688543121697175072764028884396187013671327315566716513162369651365314127759690394248775427211607746851541369387865803814365935963134439177030708841846731232975843951518464368464777965676729683986380930137443093889872134505524503090662772533884919117788055950233537512789614184289503920723922642780789369594323390486315797383312520430052247939492636711975932876420798945037567572505224765685101157119209459762274195550920330185722657434490698387820824954980409420478675609000278498569461957561051650356657574683983952958155907220682234061094091295184386298566370311017046230359813095126416418034460795083844275204443553701270899255173241801525388960440628751735657478342593657843798658960936270854068104130699240133308736157363580734838326392992545070945350870747254396495829426003028804437592782464048008777413768859189464270835907747009148634507280024329166589807071425400459692830486095503353873892623429629777375543228823957508351210746864799043029926486699585230606429196886370614998993335806894438569602122418930109119910406144592498945608461666071889095848222925642862198719215765606745552483017911561259518115353885543741069489310416639019963376612000492470957425587495525403125810054357713549110034163947744154655053594801540929287229187601591746248806025934539549345238937052872111994517377261428105744630450666882917627983787573168030721465129023651959312766502023712352392546168869576281927470864499246135592689920470542167038370463393537292107491648023568572593510016617439520399671499825620148305077697090457289105785684106746702442320873822826150577227052879286704930104418911490405351986804962690968329216486559310085160575486448228829345268701961263389141762075404350697510696144458218252857201672290096093772500819865463906633804392116831313585217668428451107967662263235333540108305082247458134462632462347961295446029849703286737080274888673609125694794840596750071158622923310800007912944449968703289411184551214245493966583279616572031133742242342975584031290784609993339902061954114047441133640092660375393159160874159248861707549820564247434894410312507202234701816676164490141148698607516835281860262631130266142153016518882923144179868436250284831407187337600120981338640169104031250690953891937793595229012755615825634196110760960456422148011207794991902024715984226136542391931015923397206018111539491232302454493947210097801332938484551502428717144712107633478930905410624752594915667015817989066465757986081794599217190400423451816323754768131779926659123094240266488626479552213072220715111525023771682729607160065208368357739855166507232075160566942031438680233919403620439863069447026863163557747481793940945175462999357701950747498917411593598715010612614185637388664863197172121095946871114222476188862912860003386181597047532134644096507237274487927603535823145860743026434322047007218111971288620467057992962347990951826769877067793845492043799048092869154453668986221384811324705386047550518132012967836498217041493652788144751223930849470448630942915124447186688786920142792293848032901740521259957674154502329014284600624256366164338793971313505491920446830923376382942568940408904154733041221405956970569499700718940990864039823205632205610686584453838944280822420565043676031960412595825788122410071136785168593766617674454404014546075490767828170229432166923802347266358706289454680314166482430521221316069086690499361139025727227167445540960020867123795526699377925603168592762023496064331973713498257486229704844148462202120335873420710535356729646179969471134600040639696085711449482218000584898972389671515506908218400435925177943204831192650756335340249518156155239588345533507781227950181065780624537366174105201421034860858770696427957087416122411327297676902865154749268501365461849476935380662406899887522956485207665345098437748379443259780541244320157912514291126072162929524775661028802520229508038751580405932337812147669827578479580061253266739174034410951347080065811972302481943382497837344088000507234414139056305393099301661876526190523846802239648600265423776017855380266442758036892934468277786327442523293973414336731192173328641443446481603396938967089534829107558654116949408154521273767122042336875245844343275852187306653560768031589086563960198326874736044947567666124730188958228419683592987529521574070056366349857620497653989649257000465802857957233593015657053411756557576180403836842322687121820422119287529117661014446971595900612954616865510365650918092727366447925059989185887017693347032176939273440295560409181129309064714333781405303868862862741155861892537061956769911292500964998265292650138274652884075063783341494537672890320459023455158492744867606905826115785374037279463096523364255180486126863599443579977702941104282007491424268624880997282896820031233439886530602724829502825836409866707898003366847271749087584331693477892398469925647997859372550510132447652131325142733848788272971877779893261273478806110128855711621109753802952846203573549592211234258323926975839853175155586337357015970361838930475922471131941242896559041563054953167617235740191627652936414974692983736584613356466210230751143926425918178598222895203672210186607284046661724532002155663615356504839173834664876644065972326043251009557481753860484327744098389027997072610094921495998310254299139506232508852030316081623764321945742361776492151541937574341406868586127181442759065906322751048097555585097607407037488554939235943428503230917272902283217864270464821751869499766937128960427928159765655149982959910539171021056499390026985250919500360210417923646563464276974517542849165550863623252705533653254833936092735551295849568428494493642900470555730252567226974266013877146623843789043606815211471966859870016203324025094000064388332822129559050306765518927304414741317951211761113276477325690106377734499514548581897440548014742722249311654337094312709900722341840343906112082795490583918199075999348206837317307186746661555654565849156166007876997399224529437962663639383740628451677685059920644583932944376621908663821041443071350867237176801728608852736830097166614636223904291232344755650131462775900479987391362433814734060979233227799839571998749481214101331986115542554938765991100015217575368879802728226491190852140252189672405805815492173837421941492028308088812815220046500138076512472204750032461955048504536281510485185791567243721626995350362786236607407973876664602227402528309706753156564543550604731326977572203520911277778218701489865710368920439038667300458823958095961692697239365763654620775689777138167100604728359868205267325625774532868030708417096270406469059966203236334898741689551120050869185390900362561807230033901327735779469802422013815874445992165833916200870354709080727493996585188336718003703838583049995643586306107766226906436178999897339438911582549312124665568713079818534909159979794503929656052980337326472639655799519812220059784711338223057045941227688621631566833419428168201548806183350534314133516776146658511015838044100933805173962491176847392979684409033762904923668621049894094490210500635970793901664922021226787576251948298735875775228716135872259869649389332954422677723316274105898154154976996574438133245378740916488543087557305989952586522104378905631610074685727429488559634198299758557734649083433483175290111184772087528421303884648171614015406919715583214995458713849321828562725957359179379623883848204940133896244948183152999017204523728680759678855100058464944554053154797642279185546904593434980956759658217449483876299466329695155458618801422738337723852848462514814525236840031318008651446372794540711962523885708965409691297281596818159252939025914051311572256839614209218867372621841435803944767164657065566486594870857550093124021811469605200333955458269764134307434628299799014821230630164357791485546388607666585537836766677492964097393928792245379471818637568807668609503138437811475209392988157217637511622656276380909395893311910104888449150587141856975063673367768281570736503362221098837364695518882833670783305451459900137172700841884849487484840478137740675495086714366295982832844951279444215476279594083872397993419935020069375847710938706316314219977809454778282077920010018112904836258993994528483805392282753357442056578070389150919224579699994866135214458504436760258462324019863285076448485701524423976271988356076485958567344364477484040388017155027081377014359932601290507694394436693969849963321086096561154757351628820284102877618404474403645984383842332301122017538808409341247827883106195412705722222922872270968217477682478280958860211429691390295997958186225024419390139134768902884597711397155203356433114884217750064403506985271824455421433366098156196502507913233208212961617367743163074731825498651091723632702036747405991095541391417222791342927208145615607792809952700961333905330815845986572638745258161034694302307035014637413838573721346180249857053989473662890616550170051619540644912607334977233097867836732544949388406141103799853054286230948115836570109956356988563886330971224534745221556787925226745907313102122038155958267789630683937384114965117168483434615567062137095302949763832257562917646163196363908357699573977291380097235209289781210208868475554748307747862464156714530538782129462590256888996953606061490370301058457530283132994119172597616862158151575585449830480021561817112132384622235197747858719217630210136718131912942221402486076498862295831219788717036032366380821208447654103207408157755681061087964644099204947236399157448218983845009574917515083282378728615803374174745676942610395009220433119600829208578982404770974568404183210413923985138884564069715588321960096484312508015248637409136675473648449719953846083809088481469636787930451392657372894932585296435177229500380779160475066078020865472493793227193577405890427047117119283922012669061848823676961947725070620548418483099996625759362055233230697855181625987531714802802670196594166675968840613782899080754977084118610952752752168943779642060487008691294588638298378946033276358296447974169903471811086874303600175476363410560612469459027222864353722164699035022134756569235848064295609131320650212013156199231187006845997115342439783222173619321065566317143193339663061415375062179117473074322473719417898859814517044171384653149647224551273840998205745052688225915276057764513135117218061489398784164398518732672648913172827944408174960363181576135804814578244341077258350348361721072084477595034841413033351300637496441756385818208953346696869403158918609569806994975262935201200533399051554865439562879140459866330752747852647073719329862853026354874224815910620593445054089561309286733257379015807976334797322455058930623038045439517895177291503249851054872451286803105111944538147057782488840814772198387716227536017293616148145620889712647458165149263970317261394730820620391354606250203115497108521017971981305771427027908396351025970657450072842203439286410674377281546674331894803627522511412373868955369597395103324262285055714090557149244351415326227680368866726419597452606253843213333328128926272320367335035460456751758319058529069726346951402565143778153418619318133410681351209403061478497618378153253604859182347778540506535500597919955670355662294069987750142511606825385199488365632222608127979254240068755247229775885178889624969037545212931774145099843849215294023820657764357762636630587685066698183490097602473443715436655950224206077210451330957398342344972706830632662363493026319133818597329516266585647006437294233116474031395379692929634314604611955829004212277489961312560111168214708294943263708986017409607561270466891635974266292947249219589262472560107555368576942733059967364938082871618506724838195138265183693563431644948556246150061312944572486974521846982844846774985252388428757068006588235486440063506053508017340985527074950218018674825879053324599115803631960323648319558542698306918719677764007274017762875863971078646430299613864716576657681066181788549488292271694694127551947896530305431004789619219902557193092802567129173196209185929839987511714689701577045091995833518125687314543991142988042436270869557067501363098684715045440074459358009608473783881178447999229337624906951265832958531540404374737146925631616406843385731140836441348618027099011263885106522721294900040243345639101311877373377594257784921010265959314620463160551396984342736553670743231668785254698130423067134334065845303359274734118427661561130097941712478172427292389026716455998488239555769017853614219636713991257763909805821186421943177816352627101923467697560814258370920047395579585946700100918927947826237378854218963285415246776043976637379669244614142851501852430759557084568432470745564069546658221303391213234256351172969493545900028939400902377767469295944628576926171809758837239602239230379392493188341198430881668256065853116557153320470657872902411308163314815085329791401015703996557569080363529130674601459013167379577409255313879388325152571265541312312022668616466417276362616381226924595165138018942388849079962039699393471468408494341899219113949074172042036845718225354883283359717916212716539557543223617608816373579849862514192143499370109076747755781761085351148971190608168867370231658374154257460725638247820863412589206727378621955905541359417596316859445671878506131045832647135390090613845367520938975783313609548176837118581353700118540656840348135157256196283546830550781877047562078690742846978660537444889225139969175022676339052239191768261580831582072474730851560272147880711492071043293571713526470570954017256724081023515522664284141977088179368465950073651555442215008751881342545624214037176608956606365925749006245830315561595191668416639694037764738272545041725733488466040160290503188958776920842873779561419151465583060103242904960296510846832301991763273747076372282499159428181099582591489326253097268840912775514698392936747122182765409541837400188631146564939674049920889984463153411396668865426167483091987253559412452258978485097831470989220702407075491757365212424152873091621557964862624703112993544987988943699926959534278262183868696842988687889585952732168702610714789311985740666747431577846180695048741687963656036991337816071122232119174017191662443918321532373105291792382085062277363467817139717418163086595635357056388114557201220074518362602138089593183904499382533488696500442622662252404270989374924063091059765927623185443996197355843540468935074255633034037993065760658064766300701877616875069300511779064989761021799259331809270347739734559204877944708046982783655547496118880117882045863906544288445297478505474019002080203711376771723145537892378538874853206493792182772640019642206707877093922679876919090197202611274343345930540317638011392144519746426613988548620392349573238514928913200544650179120802045736382376462934208678198671816789596221180679312037100656648606414861789471573653181045743458346098383675566071336913703766281254184321776937332899946531102924693623012626209497704429577184519509460620027177412316137075290274708541222497843806967766217209669623636512754479691974611252908979748951032899707088505532485463151025131724003250840335002777949885007216379633666326558438232449402271249338022274771219719983797379404748907880723084883725546975849128819567278729808671796049317938764994231254290132182319780559504762255345105805591104341586702351062726246511043862466059779770485426454368878960663172021891491111136572479173432782427978340850208860025226615449873690245978418938473885099671948196497158524707200756691668383828121066671260841341113939580474097410673475731022277626527833909065454961311122643355672594755523387148288612421920972083998005128783747406000728525457180127042657223964090119346184071229308512809343112703259888834032294315329189673544236417742048301229924597898963563075969113391610641491498970341153463830129212841687790565599869285137231519503090652140502303798043926330364855659211842099567404569710316934765943783395344825595507514233952168617177141949072146090729528070972301287565954051787326464508610411800517741419480547726542760099170862747062852899858116495626635923951179509380123150836681715403616376609479004192318667262789125426322737992228201056746763336330026653747850454766259915988895410380252301722544758369478472513271060358608729328371870771331397104006288530847433869739116804806510046958919332473601920451992539743480649736712070782536202422335843905226333127198305255359778546676927899747956458556476755473174150078061183057257409668528034197818498676186882151932315748792953518833720318585922914571043702281754712087354678629725918617775452108815238489877587395164795022172232773808057640837451782237382929349099169179400510680018162259790148451451806435935208875651331358134534041052709098066176394958165784828417336695879784291722876262309816321375534589185947027900562635161807119752284516588416596564635810714800388307996150377019191663393380723374894967965611620134242532239939341074108588759759755626667367160932660952851633066757893161430750155855018983508916525189436657963876395834425323910216025192989554714366999722442422392295785835860564153967535133799036245977343017627038144358578214575292148617978888728450244167417875109861795248040397188586440956147868242446710836177692023564895637685150544777220287498845195712839406681510856765596706645093812856698812734003029346428512574863963214638008638516158910685731682644393495993372739804181624357450563447576468093263875359523971724002115196424567528090943134261699251406643375130468793668329492954709239379711297146089271606874486706531235478317249115513123335673476127024828517181925298113855310822397567500620091601793787619535601521437724601278904258886949717511181656653487230228816819464912027560174698952214950769144226482261072057458023468783808656824318672682728612280855924526824411032441219607247330238366347501042949085033227201368605233326062786132335911833311833131211142398867189050345640134345497019193630078436529675150502081214493595706725166883206976261933334140881054605656318737004637929341009662297854377054941870436724463098575937466299060657345518660604788545369754590724980870359635907957368228667176390213791788561971090354642467536113267717055842893136315612649106512603520031226434458659632073523370800580741351495267235118159229554709189670456879923074774592228956851958481112648493397761236492005478060691077917679637158432908608057035076035281363887683969611769114850269324630315675072171825316759105541628523678537181237937672628620513011144456753906296317294373118182010936489894333053558049963719773156594629014192280938409958403199927638833473871222146080003765722046675639430432658873831102029634399602808466559392803074509387368556214084728814329696706945279030982891371397241019879799323820340708028070640487732258614840844340638429729364676146851136811642102548609335577789469676771024108105568159844651626765448676002513414987589784744546774766934576190686821750640687460433613326868314627888547102235325458162451232864561288002615117377999667307690852144910582058848452957668201529831778242183223815724395013038841264166357696857228967933689404513721638049040433670280800010383660259938010365222452469485926316649962333008415772300461477615607568690047991401009105834930270968862131226917089085863928286126685834726080265249378977990430222458342097586976472922095490148592786076122756458041405319029497564911647467272778962051545317478711738201613517468134644107213966033354571559713474684032047436750490447884729986338721103202578924860451258558089405251644077855419348773484492195098063546033524782254525660497665549824751218534755920646430672454095118745688344327136454408363130688741123139857824137038991728304792214508965149963789050600099262937932877044480730113263685378314237345829095854489479400590050619541139279514296136330901135854867949937229014841069276431040881245403838104578504716268981767686878938237703226609837386494742957652037401955564828535356227204053270054113873242932019826560482827213677106609434820291080615059876237248421602339890946574029308535554145376703995453303495532492201905347916559030344113122928501683258092665995870387093903589974561458363991276538981218968392652425026574186366675095303045387589437452953219334839544348799552205096552883107101192010799048276282893382439541998563079613651809150965100802960516169156856965986982402725717521169086604114943995069172626585720049129312422707020378085896753242384885108126017079939370205449397448159602978150519669495635321596442181389997325302485795437882297523452806917908592667003241144766917190325487448583677106464635625519571268690567629249955722596379999760019525568587262699977860128464312702849295002593859383420435728044797759832726559760625180099721927759550456158986669046608257611472061496211012982469227493308533246958677563504130971989147590696295905686601330388077423937127914962237888346314302271477645619938972416941717922284070256194329567750509616468758458133261479540815798857937340320479239730770007346984444109870549955687969397043811751840025914956337870820968764179570449380453549336880423844826829859569265947087019856187269531528177109918779510341772266056791641869133279279535117916850078357245895529244655501311183181493299111228176049748156737905407443633304101505493879516357321566359555583786897789354811895711135323768082212302953624242353751466609484463847995233484121971093346554808397443620287748947122856725234693076884442795961450496962913058457431846409537680877036092064377136304194018869735804089466725887397138873937740991734605761372010569123140003710627554520184489754792785413306287403654163996928325384366449273345025584779850537921597306596057885438525782179170293542714466740194367862548627919607094116808455595836146951914543086980380176392220285113742278339928249688607807334153114191017668858173572731712864454242678212796278249982858514098334015394826776911578130402666642597764654820763783842264264110214380435603666315145651118758593184023710892929468453018413948167420073458221849724047756964991732541694101089788357038368472420874560403775672616582485469395468182746268821571614547925742273796539080965843380606638576337468236496205988598562497886450380194883338381088244502298310842466054621679164698247109368093527660101926489608385723770507010940968536284936268724018557241301741946217593526699748796193307394405447405967097079261618636656522873012030163404404405058948820582050044492997755611376014627715077290222724233388203809226239202247998396500360919982187759276897407865815423164811432306320843820249118084424626779257422869382908420958893579613505324980066158210332552547897951611805142005258387694917969448139390757398086309221461446958140888671767292167127487657286137134879990858056314555247377303705634569491033982267295631813783160154024127198622854076566134235442314315689276819741457379229679701235632645517705183450066632372165831688089123566374024624077452712933995899362848734934748651510582147057220002702974562058614793151687497908458203131640157146549454124907251550281481455902573450853752507388285864805746787031704843564004771085236472126082078227153516166531696843337555928976088582842982609932541651674401244546487820272319992765393912153570769186863939717006589395979433511647888884646254434703480957234620181449896661778324240347531382844367967882394965384827349658712583325896492793243999085655551741262598260738457674679222885453163384985533531522479283780121758899442886434242044016555190986560393408407771192103370079254067326791248123063637572676426129641227198804602550874077552265624695800600976114888681101732858208389153622402649762562659802415108867238795257796517185446619506436145515614822120780711968263106256343107588043045650518012215314639613433249204966416836895654824268622942399265057582407087758218368333637498068327922672891305760748976367165183524284523521218471186841603188014930098250035314273694223115955345222038902515276474856129050140983241403193040034421356806707296317985459942731768778874891174665923139845835891989195939037175119150072246565372614608395165918349488154124280713132984186276704647941746122396059730394690704160850290614632381210802898079320463142842860746288463171580582615689319169124216613109343651706537598918893601631578464976258196068599386288776521167453356996697936068094714892580634919122660346603756293978520440290626852552719060402840672465281132433125544959126866168978101988293901819308338191610353639591622447649088875053115662775844719634210854667869887878000902809992017722755668393197275082150571700527798909881401462357227028406311713894498434705353424202567059759565156180313517242519773530344554797098090467196466633653996678169576694647998577059981577508551786902741049734473049488106499085215777707419274707467896052491924685016152683412695177683370109643511209483821805821458154050638414839325513537051430694355673097921233326635555245374939697217748656211488515739227263122662325848462027823564338211018447443641143942328147308491433274506660494759469671857709242699315922972617615726053543775324757822509416200734236893013258857046251601692346461791375891650071722262037725663974797322834806731527762029132427706797077955631685178572209635814463272933147165352263817438560877569134088685483170672603840103440484360188930357152182029679598554295922035775214754731590678162321620379429802718276045887363875757405771308204460756595641440540329727992228551740949412232173887411098012495235775449752744717142130254061984301312347699079531009259566023585549831087674454323252458182976870384208332488295598463753098513678335239962552881241486008357580507437896646749104894470179734332378906108692396827863421304589952659832057320406899308457900867255337837897383316975071015970181459242545304388809019548625519155816598496783885890867889389429018795172732086689786991460434027876747703806372790160868331685744063974402686916556479236924288527860476173707900102680897993086228193307122366845495458447660769600642808146893570028139257698234952013945873719760601845276200420994400240414440453675376932275269642713963255914098064371674469837601368461562320746610477080182535085983834860320399064644725803573800502546481974796023377446638218257621673983139267408740120935150966207944967451698685857927174142518094871833035988750040441373269016535302143316421184566334197798672008638478974269094705042044973338322568804848584815839636395787637235150734140167148926226523683857686263663542882264344717201913796669708699124029475784345372190691338707696198406606207889680065724931373856052308660882249364252797934444801497528744290033141953406130703538927361989269367849359265668549062284523561594750567456850805923236837503807285959478941199711498607998336050181094200258767982886898074993816983229050670725190230710054418581699564349466034277428074726559055463962023520666663299131899771017267437585919659937851344745595712313962166117161904056772478723784980956763975630355064230416169698102683287509208544121324766078953354215764546279580922247974779576239029896323511639457872574400053196092377476457276457323336433513801728299401106614034665564407961073489812556091410890561809063707884214762171459422959678161166850032238502075528566781640646609984847540412025943183135974467561689618653595313125951143173264215510680178309776562689041370889446164006650567935419393795891397784965425710438845194571909230555124521864905716953807226657682413325185454267897882877386381970848900400960916043577272726554656098104468336957168096944137511658364512958263778755458694885297703637015736333076064789659002972104257245460446040601453229706697859649877070632874569988312671350317910375995202098624153564271712085429471587808267147605294297033103389689885511752452069346944277002385977895387823936242929791890375399927561077389938464328674817403594483909079308759463832091413793981965591134495821081086740748330343388941597408169081578279778262261467469342031970607788506607546679800395869403358393624384529014210246042545653632083243794538975409676207043598275484312385799912481622755420932877821875161164721120351429053748321814880442234991810259306174622346786705649824960847323925321230634725753470325983241699727653411568825065717642737831204865198472005853152356695171596180631472462209474841004665965537469960230988784237200711441246753052180905427361204199702700545047569695508667618594096372380261310720656410266791196706148337228567320804701196188562922837588746207359835888893600385626767044867249573397298445653985387028415549913855880741619233664891271530200001354994999327489606909595813927440591460287511315183607353103900508957692379114613253739958325233944108999720933784069771834412823097490438644011228954699129047861775022174966188815000455595941379237188492781834518836079332410383749963561785946727978591978942491012354987976607886218335939893345640194587219247963892206581990435247454266970913308728365012552882701876359339229387370239940778495149475051974501595117423888974784740878452332742658069295439856497652065058835149225833068394822848633596589756067260285675803114894933896492074162887077554101222190812163195140099212369505274202379323284900296503297817909983971188027439869056700895011414719885673527387237021461566499316236281386338055169779270471034040582730169439487738046419467901145858508417234542116444023056693325656010733374678854092012079145620628193804020172838680561875250292860425963408632754888016042911893984495138393412771322179699401696730388055847824755181260790277652297414049719594806050856789266809814560823023934804295465441012321838913897545901946327473754399229391853235017680769101523418248341597906807789968136273546354168819847193058091468512217505875357199045160290225790202429041899928272300279441573285835947410009895722840028520251262925356700996343201108895245057197710528155484001950981671366491388440038659414667641123968336549975519874020160979368754884816897297944039585735733601902233601927166182086464453802023786854693719986568842974547420299281982025124959150723498922806758690908531955728995273352190140050313371894064027638655760193776792305763218324304734194387624777649885889076795744150379394143246313117598714756085196936708798169363865476761826293676753793116970181675591302650020660264565195296948773751986926941741240937739972505287433602677193010247482392874225460322801925746940182253940350332377487774366005419281312743018981012230814357549260043853198059403997176718534505401238160720112424889876232412543658504682311992927162893619040513231067384969441175916681472318883352815738368389184161064389186768327916943832883070580882770167391532622063485356294823265962020348694828508277392672515481060382085741791601601419619071659890318695845814840804334878143122528177188532938100534247422035749416123550560958088206912463600853049650699098781280355247181314118756223578101010122375540887568128876605943164756670580722669539507398829864740655858755696443200060269167258936893323980983801967954094642494880904141225446999077662958513427619288178308143730609974615434445833879930543416139022731927867872236854364711822879035362565490150610819671176244262045248775467994365566407376730899350257044359565369514713737122363920105032188966808762384530527342260427479429860392539580508727491203172314287092663508987067429462222290684147907253542376023891868313005481451258562368918239725236642966029029024465771443787802970170994456762273590164343095514413439405888152894627828059859343822812310603126293061095453490390265924479841522011767441234080044677072633996589941320053360816198545215104417821589733626608538885387732022180375972394829160980476023592121840383595261108433111050716229480033105811157795842919571667099656918693669199547128258193189354382626279728710777110493823764538396724807346938788742698281393265240736913439588448313781109937198612575943336776653165309632838719518694157893771478911512598011977268440339865199038173265427534492562347677457225879144998796693128750754094194281021618702090860995960270028198829108735186729536194731940730837942890316845129529472791846164529616643257027132319217848027126174916309510122241722083517669056220858290227644862887231244293285444123237324406056472772016647735763705443062683618601481980919825598271970430163401565805133306007562738579116397407533127744841376450302496650154891124411288282024789768089733159355917315099534911145148946886093394558337164418985763231048672199219421718078379178236209225674185446230714117563581979496697969850218056268510171975605294933986728206467147314075307044615633277218991116528521166766850121698836654321300413199440489472401240974646889075455947299339890989677714106696410642517650497776212209293852506306706011066544015136732923447038280130131183014245416954594620679108452601310633419288009441396451744017574468099598213597295113203688696347629140207110694329785973294032068672353105992402451371137782264015956193730384423591838296528037170929772525343023919900574664909749500275665344420770522352912935933018923494609042430446725439434770018909586772013329384312956972500884668758488522888015037354209508384894959506009078140664289122526440209494371153894034797121018702243513830889915003521125424819009638123297199973941014668181831409279158460649009065270899054252050075275287979231983873877886494846344257766576968662570601583474986046534205350912140820985682844994931212545505241351918047220369306111322225529297268735141086863539142105727756737030684960785936024875476211367900284036608624008071419817148599142753041681088853460868870142329448074757372912216643272099245795996902758389599374533898379329626839853084105074813532340989488669111635255767502947703389088741794039748838662943860999616332302017637941660512543174043939563291545899645751819732111432719878128304092348749800684845945288858721982104517103577323327623418676486439389681475867353395459710800169642486149912148859310527956745744691007267662430433455902972252146897283253031616891021432327123108311596561706518208380514022887840899423463287438220900111072025464875320597082773204971450289326145036821616234903900138650661279530413320676759151390767756064729708717834674556462881269165490078329221156476806743370817229334017203769405998424180293751253117873694327698851532333672562125511670063621026701406032599000393215364371763813448286574617275939465352754053294915498508628371621625754613056899970746644754998723175570767748830592752394517414539967795606223694061165810696484292237272514022650748489080602255997810424834819074843864977607353068673933678427872145597636815421600431568320817345304350187058123617984192614283301633110312062508111398643660520771125603575078679382769927278923105588423848954969439754254811154287009325675815052373845566064970614184659517773821052540790280210917042709042881737823519819273071015239973545437803185461506638122509752444614153705850906923678026650713985337982334294745736202088987745307391604831795697811501331450323903823487080285034747030143568624089540101401164343630585037425129690248322591915242755031204504732112833037395881062275887603571358738478352590822678250385481559179766313879871465077688753767530379482272564784069909673995314565170755594610685382281693046151249266420550238672736017910521700360823938613932598546661150452992728800982152785984853736489829104072307064902865061202953386136977476658281174273083816724153859387288846168284742866104168997749324483778151945897575092709861481047917295803940690486217595425018853874456809491936095901768179442766467184127597479971318346989343154279891584249132020381894770480419626576133876291796776195317268465507470322784099297564900769920576183018102225348283310613590631393517582201468646291981852329305325426509706923797581743659138218523472289566974535267455308014527636011724352668263914082343492176062641030535666878596915446864756745508833009923794780328897929156934265834302528365526698484635488010635872471479491301286824793662987452677439719835719272681803855839095978882406832350704393588249567964410427747486450823935464489316885601262864901486179280845524242492178809508224639490617554387548865021949549223908161561109232059614863769519307291423277549104897005302152848398011359576895095527020804384617318089203676058969270536782784279395379961541124526411432501490691183831506042830286165319179790122786786707730070949881982840799527213529050835627441170154133256009902321081520425886860831751787831893682459660942251754966653552383132871048693624235993633142909231975860792022729251845393134953618979756802001370337373937107433357736554107451603686542708452138393365748278636487440163685709791052607887592794542984832360227049042909831358262065114824141230827166517177501267985893919946502121538841660007096780986532399950533930838209412680115446322502720326045718530688027653980208070345590788039447147587601736747037113230546459238286855808529541318333419966008070832117704812926384222776937169837412507681997046300844272600323257227260332950575747590349253349776368749781827343794823083017006664911564438199134985183792171762711192163661278502803733555152375604969655189557208479398643071650786550390224253766342449310786496071864188850302696257641142968694381463416595816915870249978249394554490200996104265890443716912967327876997767068795015488104267245236932518242676276125612105430592469641456693372820556204995500174487340583341716340543865377651698932320451326007602243748336739461549913343340157103688512579158384802020457946099823633609110934234789851024471062189628565835490444240943212828814058926521245540693661632982464956949124611316638071434717147794705374830203724038861436614588779575080848740319459378139800892236254461738579698276411275245765859838962218608874957199482042275621572988359837481804912359970063873608598410557349269875967030081286662473811428855167943770498584922805023260089832800006545502340899417736450665791386256123498349552732380113875245236194765798971836094763940852842639562552689331839678996132202569931979021786215771669358827014072648687742026247758404078895345207675594998725090538478297379454775465035245455381103971917639656788057097934433305218520638944130483395452349099120496329207687485867622902621040845116279371469820066131306922069381383362387477299530110758382363695030581746381220380456810654438054337865699317837463962240893532640529353374323452247392564807189252290646296002331643247264334593772276725249468261633828789477746714797058359848305804396633126741672917284807008874698636302751453401171113384252654374619315227996219104610659273297727516134630420135849164674658364053089765917309078234171149189582889685544355720557085828372762403282476494431361076714603068002577209269655312860512452717827863081441857359729812647753004727887455711902489663529554102527214575835901652580440715577467374902778808412432197220825638316582197501094346801037571575357071199590124411461500073999359857641154665017871488934859228864825785161082254792381041979706945435382214036622249734253793553191571758773944110705387115915396674256004206896995599502228386096262761846827547571259442164548099851424731449979812734434374673629183918651309631722073769341158341666790250194479347656393138844338331328175887042589084589962997218225996091833288251959639398283843331567210614302948048465960277951538404280466682006330600255440045719781827283598992216162378630702758951090867178569772436200863367103497484113122845492424698334074392694257419940647446073947272029190681185884465649981478563323772945860155714402567309298397095876464041759414002120095260603611437000737632038846811964128231037457954274126208858956901271479666564185689676946461100330246028287061107721824692528460182127395371684152951886709258777696700005069492008390202525147402549206142135323689994297454714394355046631814259547624871079432708646182622468310827287744347194082611320556393709170832836711442238334092321600503142908850721204293193876866163260002011998983094459245330920329306531457762763720799304953647157442107079560077075911495464395627724823707232700963883205410904693017178668027608367526656222969411496744388685392013835733756381941862971203486492257636698283137930920012585402743829576611696573712356900817938108778980974813040847625791560029385698136636703163866507310593351803943849382773266160539786743346097569865741962661301646868905530880175075607507273746785230244471397460103744368598449134038259364668638426166148423938756323548504309766979185237144002976257626197788254625628158907713384153162172896682215766308062677649159173875913263009429398044379087758876140208490369259651629581631921769176982207474380879742766413866393533154221875409560249612848416273541655997771489271262646986997615961269463475741345234510804987901314596175763079759293571673230807183228867076481559709523987368919368110581215598051303707651441249015737818023589886899481402032462647171566611792082021225730755437860832942513933026752237818328045994629683612001594852776986898818212577157087048267601232338410351192622339708894480071974464444120438693882255366283926451735968678186168640736353223841503498488181829235572639570972120612494809754648512824138696644467909832219564384357996836313144621365736584376527139569749641313675875702341969602763395977479787572187546399194768319711083296903831209094352765174638444343478007738820312311918337782043772645161660808434854093701286334077049030040413685713369117526721674053348171264256383922444895163162720052378970758301950686687001045514874270928280324784498027203320261565645203102392437339768874835563071749890073245246399052326599518665967618112194522553203367381643337821783872488212516145749938080832864392263154240115730035230439510561448813684527286250008192745621151249159623632790435885432304836277104633268392637082056351182298468938879301756313887748499879854153626601490611774535354486760240855886666514918703780267388410539969925061224244399504904064069212263789545433366427939841543174394838484686091439030910109829611420894703839885304980733486221589917826300325206109516412203928781000452874361479510606212246973353336002881693609872223390508427295278803871269529640027610799555424918815308603215453155770588559935704743880312536455952275477265408729610440149482032480002403835602197645826919353041138761527180047740850675920430686922916313529127810746719955186152831704916816254065675075751198259742747518606351161935276522591079247908684910227667928913895059169973665128199791432849944016764040508217057568474280210885941773528886107797949664694121707242893957339738414158968451253310270638688723529735569498870328756943049252716002342498673150752515731242763873520949072514234081901128709327512753698241696889020247081015996310981246436187232293379204795893866024966615262669642948880197727072267282151462597863109197589110086288980715603439142596077376391214231372676712089919123553074721822315992078730597365047835041307731446633649692732069408314282457339779531045700173045126627979909323719615394074105743442388295829499186462302650756318350301033674702113862982092826465764655346938302978141755784678126651719593484235310476737791253497369395467818387824240888801627066052590245109996777626929996869209413353504285012080924393294287207053624358566586712324385158112535335876045661502279089280283940440998783704733150591273444063799497970769787421616805202777996690483734553526425990846345612534217633809894336171001480214789801245893546218684318089152915070597323692044601219911938924096669242772416834601984462518404989565203700164341017724678818988024455194634956927987530535761749602015596801260205456564387294483372735383169379281186024200379100506431039364101794586466711367449300486858127627294608891362712685922292652983104079254377548727271169604148056099373235714519551003072720677228150297419910115662002650185364778112227789878989369495361974197195559984374366386928208831008355470942988234634020230336667184374387411361914034462585297316125159910824200824702560978393570710786071599899134852494080582771331886824747859620893519026123123717735046666737411220217828621916409686611501343106675909188308092268311627794132882021686535491230800879225280204090443610216445673746451069543654188312793124351941272901252300085847031268840721216054656949771405673087460194823063820178103919233782445870267082649623621887835430155884924234330550760149083544705225383162946388046970029810270715945042959885881081896086325712093203264209069368651611519818568358517408513292721024575405150541543583021948746717056146304805766880955259595920661247247193147181285734817204376463036483876601035790423025407226635602566346307924479916959051492247794700033636628957015395101260287567523860710438442113461377566155368679902176908438325700203843778101891394102653613830786987659238530627858300283429128932441351318468610761253508724620004860510716463217977098972881151261117174759262390314923240206618445099522659820388251800387060577374324618049987842974965889484551793976594591531609342408930392992821336586150701581597674702602137837129216326877466117187551413092828279292726724721611182968580540094874813782524477143032579574190250052606331089076450509967101822427851599107090060437454057626645685483751914680487757110329430804074234551594246658414444215281000407602048289572212511007174083613088648499035779239099144196795526512519786869326609083503042749101704421232278870274059263548942185860195295077097856848368190012253101566474994260810354835394593746825285621187600496638672059863624311075389713094400048713398698730279055633204090940621705964248372819378866927074848435962308464063383180393401910191313437757453150482642040153266957138447768324575004753790127772655880794112083731148520160536351833792891575433865254552756870427823955752168418153800579010938995464904611805287141657571999705955084810468466144890517658349790128108138197497161506451271987015819458213797999690347012241917408957561485989709423132703588743628460379017956508356808564453152005597790016277526798578756376705308478045429958527720630445103149146738149477228245376781806798511325613236808134497151960235911259280751713762194260098772892675405192877283396877693685963977360165155097302290357068189775070087210468904789143043592556923490331231289303021961788828606243006014820883309736374960092462717743763736503939865516225147200959805531546558608454964254281983020361037252265736402783372610491163895161951934888938359841519366688559441350205498385050472651438238507422605746195121007952964475462663554094841890704283359184471037998978235496280018158564353871040308668330213867933463252663939189668075089953076000778282587152908559253169983033702903116790235526814594484173849496196348135591970207524865386020282387048218370756681473089720339380911117478302744582713902325696619583606664852761006931709072083350356659047630432957203784222056046399201349466894965232434399924887286928199508059565785859490869779936896508197725261653162070785313247000345824877006132568307157549793009893769762825687765423865244946690397964203930878261046817306590296640500644360093839358894920326307297102800171241905111836882976905724580587555464893767686932676731610146732284318194649463915502685241529319264779072970617142590022907272568426925443624077967644432290709500360747783907442490844335381349241424198313334588637424982963813531114886214092946130518349214710009083927771896446671886747370351876276523427700352388212355463390064845102255159318754654179135559086266694812480324020818027765635620986157626863714569546916852201438001267115061612638771810937761234813987382914979901841319889255065224366959156422727083466521740272122686825725922188425320969173637719833118801534366219988582218272965465987493857911342317234367273071713448195362853800532144401699741447580763386648053127578777642718554430405766502482573793716158614881283204464136720794531341852333302400328488337241652009495366882421330538598446055550799865214191395301237035601161001175172300112846018591986732281088696554120990582794598854523337657650530745514722660570516395462715852788130371673566971457165841907950611899107672657823654945544775926929580352366668195046120340414090480095032808610434958235469672000700685194518057235267134972268391945259698993830420299695215618289577324796670207193004437131378013971135205526718479609738130896810363652083238752693924028046012071024141283199382793787741812879384812249911742327100109408229232801355418022738066158807417804969254225015031170599743707559904995208639231958728299960277530030569771084731114804359021579026811963490692420986655166703076549453879458876248853357209209775036895477366909718775171933944708625860553570780908637394389439869413762990770534965116983878976905215197118586075866597273569098103640673396132845236680684988645952946618882604454589278993964386139208506071446741270575854962858162402285025840543863400831322915216831458596672706814487862165432822449685439534152863088698054245244372290633398257036424426797311472082755188842273649229238932511843117161405062094008903940573489843137800567161605960397346226545670478468173974391618128980651259628271211630032573413399314980500943718468457746118264924764121197985222169136805045332516254131144956722299038717314911561729927627852860135412955581448759043715696276037704090249397111420555636219595948345432001300176956517428037218713967575467048759070753126084423998617600989667720137122613611395499134067266473013210333676242293457808748071811701879999692138151698251834805002509039150327713740119113216150695703049892560239949831135428361547126937205866204029214919441003438623121280026600109594933636234115730677046552269078254358929730239110682254277758010949855897864919911937218156874788546883024437861916280910998969335138807026562241963684794834444900438635173855329528832523914688699948165677412141105642204581752188233685739568204227782737412005128548856916755596474529321169103495588248887852978094610974188929100571395844273172192346103230536332595463361676684930966950547433065273436978331868098689246286019916507569339476263432600250072870307413987403549926970179156992742177483656648571891261967992506117994624719936168002635060929429343558682306939624475589266474415361242707377084441230424852151303983605027997671789368416105113467649810565778546684624370902469640935772477685279375532402631404400421824480904407909489911757200522431484430729874224250038002432520095094872781067479074635982288495358381517264648944196051037300896417703577637784225556065129897669071968791313161089560454887568355724147192306161804020920976630806397211098897136540969857525470080927409064214098140723909798230699151254362229626913292702323406665787773713721067188647784790416357236404329376951984370212103261739228612435799516406581051514863686325901962872506844867016189207395424304768298164001238214895451834760216689399116747519466497790482653005754353441493721029909409830218035195723301248810310684079529198119840430652881983169202399988389382486172384300623710200209479315682066071601601393217435203996949778997544323226278179034501720161356819834865884544974762226934804221187871913458870368292202541538746758225961517199459449270304477329416104519816555949468982417659480778602225326108710026812538833500416660110947851739705935532197456859169556519039716335267738332032441120175181221199393820610978272579481266509786480081392692004662805498243835253899382734413992315326956074247582413442577986773873002888411822003923308332056428185071635636169034514445453411830070008587586312493837810760987171668985036436471110427065649945760701665636135633555738559812494751018847463569537127903509230550442567888008193396521921365082022563885956938821073901105165708948005408976942513407925981794465221711255270830023868360394355128607821319422409649725741395102766155926126794636656010102459806609810064466578887710479900896097250593961747279872303033203564391263463301872726428125632673286387129770084870569921711622765569520622270381709409925806611018685759368700159659040533258026802618699955257834265132709087198016664642558753174257644687407536751417784362718319134212290402034997395663994896847453436606457991096702929412330652884033428099205821284520428332538770589403741315745368987828420469110436905272233258194624244295896361721173112102580733103785825878545435599424293189942715334383202845360794696900408524191813281094390167546989689676840745411519196157523695758842090182386203941696477532837254912034046518689226484144834820530920479485568281230046937033235220347857141854913459677629171501422379585978442629679898205388007604792159389465051482921629698197712241982523097542073551444987218116166371599898673852519520626798431683336643617331600318562757041110173225598198894611696819437480480468980214594378415932644530823633326818877837429362110484225766101962412955023224976711559930369883198714899414476343184474680799400361184911843126333155945444649866244597243908787600726581991019718058490239135821333194042309378263844989300925455293321276868210663805651888867457026025671228018377163830380738501284042339116278225733030008075584859848476921987179837733222893600268485974327475190581075784840699487702997330891708255128118725999607543849343068629472681417260287431802817851800606609407557674606214281137828861124613652473948580393105475035319348174627099900429460699761586878471923674231794179635364088837225974269504576682000569295963424777712092191705538473427263495916751675375336092746959681591444702044809727046096200275224832039685257947306195708073542002817304788082518514907568405075189832208984003873737202842814417367323389044507594407332282007992962000889776967889965915201497102446290269393555791170992762622043890687957903611675369494088855511872788112733742656919877979623815661949744140131448018874798216983099693687175288354668837590403687927100013959934002821223791212280845641345862583042659333724928517123736013959155947190646716503333401464408796971630726838213632313067979102818514715749430076264043075068709995758048046908757857555260135217775032194946950055412075884830833669794371319664635671045066742374949774665826787717073376406903353667469286244916217514435409910003547004170711375562928003780956832875186806228098868734949817481945647749451488397801086927419045061622499821230674056085455771635844956197477477130553700926919940039317937714089270244376457799192212406169640748643405131455308348969495456223902632940091739144899448263609320314995860227286675621331386137193942687636102846112823766670740153973907576070082702599606409812797877544408607832836917966074599690698338222416188920569393818009610312566755967985970779841795577885581067624817074135537116462621444387540525309243901750592765491470151315709269061327321892437164531779824740431602580012792960244909880490869245372195921991680493402804432251972914408763126940182170487888145009784706742840252226745019967479850917721957459193488234440373159937081292677328649133693767450813777561487873071690823983522597425285076316449566530817242869301852307504161881909869619972648996501147505688514161784304492442175821188760115195637396943071772576735386962200420921947383911644677772086437713357567440441878128958696739067257919290902803325013125774783324130682354009780570735271695358411166209585276537669256272232528627102005826484856680887282395759298441239807723969190953029053907536803037199919227474879126579502738186914634640747633685634274477594813914150000893545722855680303573044353144717724871492669131391043407762165432306801319597670272258749320697695155931461526135201705730638805663376411974382791185131556160000841821455661469665967729040787339376936342187820604110099269447907749115663869167554478010317001243874898279840845699459227706080110544254486097621520844442441495211348268390796241180401235139376227382729655449723076345973389258423341138246255595072736561595466191412378345915152545268362266259603147258185174945798045777500496550268753192045304798671161026093272601148172569189652558158430116219130423313038823564281625685314965224937781052039917380271932926805950161700109906767648118487225431377492081280921191013235900600234989338881191534688571370650398891445753452895466806908690561441513982730837222167956852442211823756172248891846401776997496259273145031485847802132040192242673339959996042654849471522357333383681797777473172227855893897795233702504749428917811110922664075419215812733772933273245447710978435713411025387291124934654947627379981878903550279355696303338181061333474505731154142944134003701917896918711698610107279496761941870152970447193849837426747713386068145888646675272417745023755696344506776432152352002263191886992068951305996168586837476665937180789050220252399839350635701519529830630737181168239613051971020372855558839437565812032734227391143144208333652107041811653727935687105043227083574176394508940338452435913988839230605224808848693896802857968619696180539748858575241550118652397154479058761502801744907318703940268725881943277538083767627229034971330813249493297537474532441475787530108177963508476946885301794265575252515171987025262203623385503718680481237398203686758704491717826634471649902183352591212452193472013902855943959146106249000306572047596302429803977678741852620679339010144468057131926027021712419439797234988934108656353141965616647748508304492472412577037045913860367324290589243844836562345696022023632225951890028167604475865198949292086169717580481819881634822376749335412119087880134581110709836450755945245105097686137033610344527018813132052488162218832742742202021035728275239377409494310239267513618719757968859748341000611527511066379180582007880958812976513219514070603428123909539506702996604135580049733976745454769593622358361543376217895480715366296067185898413589662525329808884154001684483777425375142806876592609023624339909710447748062810459204537311625413417343642731640462734566692906631478299775024683028840368869721422940209538283225581092500223698715305541795461160378753392102917323879182264095358104641905992367555412572977559970719031857256491513382687236253357097465387206438112878840938301283853231732781642215058325357932092342580097528135326177174816166075895662701198096314280377916739011795228952454802777487406583301968846469336657985325243630091739728576923510968109642354880482219668725312512281052858545694839210972217630284435345131444636190313786966505801071515191359379009981444991981465996720908242816765256790224810811843631595291167892620344806966678002858932104014859440661190301566342015349185836515825722633875075706041182995029705234430078326783066537162001906321260346927905867041713075180326129108886068278330212702591571705892570755449732232123340437629179725871271159138660912055923287199597780133464781109025681046058560471423312027517839035512162333664138129214319836623723221647008715285927960319132172962776406108597878367580049246919409544148922399286931138038522722125169410715542953484153470466418987877889714711280856582727384842569758890539568861967949897131450999650357347437610676198368835572125357875165293786308720521957475295785170559142223285345570653656971518006620172050487912232201034707257604631780117236550671740674887072758887280871908041310701056134627316344869020117833174060114199406522118850143778144722419156409798661255054203490390324378828761097312497677926407809200404979879014487021991359666389062857166198990381364893336862918430341040874788692952191452329076924832593735083995940071392687527220233365063585901739951777359637461674472360069731464675989918814093634280118234607764984895421676692941556507273190612378517121817490642804838490082887702916398938253958632699281944552869746980518448270734731281216460609407965836922438567702327636050506055943628256162513203815097940322517994653658389316791374611091333709997309948581144699939486958432329568600229979634571358744398864148679960438075225507327499866965788496262107364342563843403910373960703728820261400855121564158441796702989373377973103229509617441587794365490754359210111946845701439222365275017895243807555523578871375945583508851271490261888366848563803825274589654346832243145573034029312568657681421112594500206074473080621393238342850266756856749669169727261135310863444084637192131358205247397936068362267181612970248215808378880287445050601499481208389984688583767855520439396065143221653100763115211799382621323790667036211914199066322580310564129134773752281138335844954882851586462468090453279963297902029511963155116680120313860261413263476515648698118678982555277881613574150035062718825816319882008736690869819450154362157936182100840319172455900529079947091721961043052810297489700654288216646609645222564799944849419446038085870893242578858634543954953339849562887243107947898389180488873996809038596909414238204655696484607496135965645010182312035387628769694207884748680561361117453202729454728823249006353403200002266840855382164827199267789377572151724673542787733733148128100331469914916734221034857622245898647004997151593806525434772861930072314785179413392014740599520485543660941941221952976564733785975080285060081852757015634720177590118668938962558420854514393663822319937766489462547702623119542780680232577726867858840795714245984862083943657231588136674263356979567162774111288826753024754064642734384600656929279464372938608179167068310409255207921421653905335526129854542481678642610229235399683745906347889185960455422727265509838310159684046872214529812063872423216582809275614349484754749764959027817421081403429920495204385410057651588136263592169970759656087178705901347338655482372518657645285378569007297156563378691069844160456098841076652613335359697032830590792560629509203043510352714781224465567561818803523707343549694674692154027430430336328353377792577439869206951690685960867780032399867636523289513707012809554133624047060097386839171037947886283270182950030945528565505929052452728139993257628583603451938413112649448122365602675246370626811145351010733218914280128675724138553332572200513426565501330816159166553811461672272160825358233188615306446930091466916945811219214916458821177573692529817550735342126464869291739562984565591911986073298897902231102087509853555903276898651792275111384778315351198696133193070110393204180798038216801573842932986487119708987963214161962349849328191063215277083991414983109017563617443152392692617166194781666985439302283477780011824431915931299312358504481271705323412098191924322706944939270782110358014048101143697550408704914928898015009086556901358553044112087132966462528742764059111266332532428781694721841411090155217598923240388400475018998161868174938482688806879699899184433125002096852338024405991402757265907775013783199755844477021329904440115299167644445558863246954546440698269533915421830041152224477138355052984057964458984021320129560746027672720969065646233915550427749134657310572405601353111275367146910457789192227687497546256776649734347554861571020525744735124751214719874045914382766309470382222354221474148567417796813476655882829243766771085406750090534717563219970499936775906679035942027010385187811015251316165043091330262453995539923287436360874153047531119614354425853934017637014794165204884033224479292880271493674405846479323695055125093232330524289534274365447430078501018087507928758960909380198386962985631003955997428294484390112224573221773164587403097223272329892066172521586649118454051929372071015022240147443205636314591681110112091127245668915692028877406224891827167955610046898805780201566718723060693117324063051018001783698370423890291187315705315137111732096114016762633890625637030721776285712249301643618281924077004669139915170962218958554412627071240126201270728545473114931860766546631869772796094316996206946741120127882287809605145280630017354915054860014911593252339993696707211373921392034324197047499443441665113502350265252765200755750697490222241479529271516659782171306800331050321372959148372366676459743504820558583843225019952474877696551373806555729849585881832203639620406390169828982620992955806704800647429963489983411064843967884342351706721277765889921266567946455683353086715957022385001251129340934197677427657850938158281943368355786180785750635065489314264716607856670510767544914810535541898137705580302016234111842890810867388580468444256589763526412243753397993388085682114565190826470030544554941172783291444340430272148084200320764026483436812401641132597713911893126872993657773404778771280148781281744537539559152286097680403181925378668273531696054138708697437425091031583903917652292859985495264282593748484806840660732664841088725394192299434153830392923424421872114983640034468606912952760872426885850822882367706499342234605066019744589455763205486230512188264401592799095422930236952520108645489348884892593659914193671187927902358789202322656135899216809964420010060224524316380521153910209430657405039483616542082916240611565002837279465165975781531187221694094478547620664522572956879921979160556607684507315030220171500469054018104045412261875499027397482863592893532029839529627484693322053346976582686776562006560197476745849393253824366542330200825931845894575828955257561676036009280493199165507063268437182049417041873314617880852005992075660671972126477796432555861483532688621825415424316756607954074476951993820382294760518031381727363222259563958108580822948685653001085534900102718503081860886834125743288039812273797688440090295747389374353961001632683244287295981114225363722916536644759786303833844074976534258999348985251872736997407307971316341233132945694986628910046528362339090234579217438740759765688784007569811079800525736004683204300692862603344418277775906811112007886844505146205531811208923758289475804981511018402151847505189811169736146633857099220138843032648381948552626585565704334752020724414623897404701622674610727691856963115744000115335426124405230987807615245004705840353696636927790561258533027754834552856313962492544566432859624377122275175220610179727282364843762099915787071672405490364157095510678777340971294710067813278561084871247864614098958213202948779838765651900423115472584284424088572319278924103432655162487936020308837862031235739436031950336330592547540916162494608153523678548448578856234754300136999327902311362863455893838851579469594290052770763199473294235924573572361298123773564000081875633942457056590272780300715882600209009632188324826233745545715331488086212003105171780923745373082477491776133890135084328670248257471571767685629772655854574530466246430660553709362699623237651161861032612282342743299927957437230753399429969541992259830475221474057590019736103649822303526835955667505329536589818002481852837546328300428396139455147036650736497137622102546135219655142639771832285325191144108048082839644263441854978690305409790484560183372409436843102021189212815756878723630046205929337212049585630042508505081168732783352599764931411686671460096180410152634737790432406400553305840407133342755877790510169147372124661850170057501696805151914235049249167670043069638135331470605315339924796538600764435785383551265197358870395207939007482387917749041380341153228626451822325573420210036216671236298952887935364370867522256219831076588901390378092623474063189259845233327223832503954423348264323107613543843299701174324413160991025280800628659471461763377706829380228991972991288158249903755082158318823195211811181327519520148898905289777809555183968305679175493200015749685741510791155470289690106208375894690227834876737492631793421877649367329882190268746025598887924250218513175793912839383391397088618301978815787272109183433339492013851826012929476597556359114796426215372390514069750359836325609099444617880485246626398176426705811287935478679939297282803465826993565516937265042780449441004509644986656952748175070304443341706712747143793222054762595895370514722153545814763319444126362027829865375067671504950331015604529982979792831456783026003141054242049300499655362073779434374947579828485093677268283219812281517319552807040128218041419807866095718339834044362217635424922402321072868735791388030844441520324059457405172316743640300198143757534344589283549393481448938913292653391646641921398704128304712716961677263820376412765172324551852032346162000679726604625444353978037743998427435447670183109216226293512835809468793921795333838253386920148430301757459892034319119078047687792784278299224692021167169477736130096731521147371219984911846992224834324218066653019577213206167094993538650861481243320653802819396036041217674617297801619515076317089394792308827494788823985441932354364324149835918909722737421477085837015172485754761986548812396826598030341568167913122547572612255107620182385457440604100820341281822917433888137848759866849116080570097445788926061044523361701716547806637677596286432268641720555945071638410528166057988804223678053231482389775656671836001937414383574379814944224095221312571928230183658835573545005078947675740197848389802174666904244175873142632524385254253889251907206871788271591530748731589570198808167393094994633899688654850502451272404221060475244098659024781179095066745230581536247313946852736919783685694371442217461385513850621694000781003587955401858757660799175957193499549083647631303879442856905359196848052571333468419754273489014565765458366174419149692285225821428901216547214965191914887064640507510757265380525419757391379528276557477798434335782518503193811765236190089168225672154478276861086063044045640321894171751155496431080674452692245433106256481223441703749571322979920344550707781737684629497813954055761646435943436598807029803839038395351480992643326836820847662931664629219768871498099854000199272681793049830305975251711497507275362234750486927423637418088117583673744589160646197835579208885554708128413390321897930814318104835657478909245757857684389898044300457354308462780281808307263877024155161257373842608846009221177385339238878726636543910754605104679592521561968688315198828440599256776205740788765622582783481465162045636992709200211311928881070519315472399913770766932639080554774618614634631228708466717223152812538990974010465822608379411745892937606971324588350892861441493202101001744008869544335944123514127726307181959509051193244634378336279352829370368100855863585615946758841504341294020781835518410171501320948922282076986346120951712975916143182639387876670280316271192364715754255655852728800054139516112669278457278306239087880067040478033991306270141103915934406741041205329568820744354744912498259560527327753758667560820013100436045373421962428194183133710376164050003441623200258122772829816592858034354069967568487377921239824946904224673506430117554430582121247070860794048545921995308145544160569726461143746114460438983025712578143718132868682144310308921945188783742737110045289725176407570110306110245233697906714902397828095746002761296533529262308332961521347249247063641522431303740991890566206000472929425543166211638879803228155474859706703503030948540220520266165459407676534911254685666997568786728036700613458036256350006711765705319109644028918925229121329932410742209177785576227944734400417400132201032312720970483434535511284241067594359077375874882260729976206436937291209317476373020397683390966718195994877778176993268819562122377860050078677033507445982189927087783671794639131329164829305021795135968245008198505085440828456641177461572168712155394198707678424174495669169745175109642081930703427864910784817522325025493369068331042693946639513951807391233392326717868391212972831185894112114991406486187402113480820602798438320575366336811207307902224719867657844610561000991313170463798338541605060811061648911195221352811335260183614279939293049570346067701139338803861430367593953634449238312774740142583000912413721835986192558489269364874777502495506479777579001044089305448558776785483126647143348594413300740485449424686368544054381289527374033946533477388191547686184070345978826454286031398580757144793706194024776546640284046148347582022455042415204226168575421522146756452165638454820234868698024092812147357954342967133668019062845655636522707406313268698094833768696560772581916435717747882254470154992610489042225358675574137399765178578816104980038227301390728649541477731042270727748707360803343110058993882211755890558792141508263997807542572136351249848219952848855500372150422956167594740062890100905803664447984981273590665946344224261825952903999118966667486235817416895649313818913410358522282437519557312864060092116606974046166644642386384051329354510142795001764371407826642806572505692499048064877141675217754175318021123010275842455925263053509677124763967299260637815658547569467137265664567431625080691357547724965515496433049966215361308764200377862482607355685747582704896770295963126718418066145784549744020512877080523759622995351798687321221279705262559163449631067366332128437311059295427322305716580474461124228310211693077777646140119330296904528875495271655853833038914856592843381782396143089470199498581616044648393534918334853237631110568069248130244590135801744837511984422336353621082957330300699318734635142347590321922373173716533687835410154953409381486889575631993288784529678408968458461755716532184811390818141052833023207034338129682434529911778751282395326112069103048980039096014321302054533344294697803841530134936182513009713833232602713756831730692976465586091958141796359466480707323104352123250764825160134586148916193826306787045568165151435213636777125457592339850397764874454558265904307966293896085979444109111975242868390426222867102252916820042970369586372501710770928915439883413064436059549035083890504889690945971673048846594895546505546078781691893114462273273018803952700988243180692821115105916278197088835039810445654037043269372258463774544179760196943067385196436357254429032614420700160808854546631612048182767711721661542127876962286534822800953078338602469427575125602653425388259682868119626431701759127879012402754133289953022433992482866773331301322170713705465010459592757809215777267350058721110805165621451744811835546403159980197852200088238677391812305291417951221820369030119823123757502907661814447808844592565995046750035615560027544399492348191229586776020448398902328564314385306117985844509711366305655049532515880072259316491842301934233367247152443466293109510019293870196900798785001162150537475723893132108336108485512895458695106297825849457080934121819715387247544968651481242441205978904899993219334903207965375881404585937384573056332861470473944280543493564649346396431011298221377006657668387877276221902577174305454516142789740534997466589764892395271757214681958925291647084274064832497230691704270208830690701059999592751930267533880463774618674138247199597388725619662600229386741703291668965522611619457384196560399284756034063692472269778953427788182128716093551765999588263116706157098432167507259142644346147686945806233863762545389471037191941410061379660853435992290400029034057054115097314557165754191123942133608050114177162102320405282139484506282440092300487220657224027277092231817128838784073851850112485240193270513526400246698194042303133875297166859610511160742350916863086690630164346274818477797121690212473086117909929609412547384576941773313154231544153510731061213055740490561699156685595639956303857866318915599811923348081173060281409818447751529913516840805370846867354274920646684268901360572684557032852581809883646410369534267188353063700018969210588726236291370623163505804933259928905887970359841677105897796586665818159928696357175175310392720175090462775439946273091435943592489724902419154064291147416800519130543925097623986410808377485019078790397742927006911995928983988078119563108372135701370553633748041959741951556234004011923686624856894136215836072675702302916045492108878079112124163473775125397441564822179970032704957225240471683563438300709591525174228184979158906562768943395022527228327440540469823561616697642283211021258696865442986319498509890241703300474629703157097579035302788602716306860553770092140384098776733368721156745573795076802133404628988039156617794651277749334821115557580763850092219686851922938518664370775200779833288664751321085729636546456987003025600626057028012244970709394339585424123157747580388606585052077509281927068460798239289923943095251564614585433269742969935792384494815270852606623745896478870236017918048932863226703864104428534791605552490116894196065862942439583062751547300160005532882700953608646343918700767981525532315065752226796493622634615793806543473602728592905331978951323350216208240651288592959491756459539061129228574710319487392749688881670505989099352807586208537314463524428264864968910678994329939459365974105174714234105766096542310723495538449487918839717437777543071011913521006458722248773169709250107070162043057131275975804183534089970926823751730438047425687181893515860716218271180941165473684518662151537061255287296656768882267848712564986438143762020418330376455035402040884488179278218170505560409308156582951463614723052261271120107756002601601903323097918376841508806483057668855705118572829802533949811619359387526217076339125635256098147150286552465146075569430442822697899204965312016617474931744122798570115477277995242218018231998426682578582006478065845804705363689089292708640885417806859853783700385978656573974347959734309292493558755303436510951820352747824243264981469451758531905507736585670263067544994584202794509823608051979782002085456827296379115973227121013727296571975163612976613171162730468045971752267893601841711912944977805268688232145045286106555358132982671374478596439153990580969808510051834323362022545498081768274217587391297671568089286337492229628034055424622458699582657405648551697007166953233398204253003132726182863170130608922167987750495602558024519479913753320146544646241388234112517938346980470908623672005198575852123257606207225015950030438477339488791718351645433525303129567232757745765514747650928533389352543305809351438766147667845077056846566594222907756722117106281870132218621915819683594422983776195085688301756563517294372989105895000540720277137087593830728001434141543095436772292984222654999204970274807608201671032689938374587050668762809224764263415123578870845518827175731050899588302123091534345258373616934495824090969740390598908885267837513336379384349162202073134890323433001453138163797797687104756969597284964341110451442722466544302770046303159253381280085722319920665864661787707431794501577617937128881248181813260230542117836992710648164654608781064803307574675502636834233589938284354190156106006989022116547227726698084473345212336339192989336054321974278803493355052931253578394773557071202160367374231569992393354065290923163425960816667649774710922477588227356573019536399631546768434157353972272784744355183081456872169883870595532164447919228171728687551369588599512053237408128852961372800031182975127449348535886329395570953350176243194771271172772177231133899134443424406390843871466052925363148199142225916035754966855556426211820756452222413996034524619715528430351056352676582487450950619191994571409999238343058669971352487921470059791685212612172811670420678191660482552538593312601663084956561337631494403401815208163347944266283965245457976704734629948158030738692018498992202215402251163106258460728562935277099844699674316312397452104229191940574907171511369904967158750572471154943243493346574499078750119289209656857671025167634475950173809487728269378026652230574357441503021468717670781441544486143850818044232528591010944246658063623207861316823901673716449343148759161212614602731206051638080970755745118216562036722953340822696624235940975062833926338638460838983745693309986772335627871037807544545533698871276607700139304515194290298510517736090110590916290138496811103617260751994060272107688166510359174135684940761426034483912731069649852487165168232379465624015912516401667675232264313339224184399276173429635910373597314664423394940656711472344129525834015641595061647634792130083895856190585108830508709125496744882409929259790098017288470064717755266938572762300024746254832770997730856271325460186450387043053110089153562252511667786887612442707218629330991066237982262657876740014902345682292180298899001952646029622132866554003156423582559272206693326164048710911516378538275441079988731210318539101114313486325847334523451728990027817824643883706772990496342272310343857847967668792523718045515221921524207305441071838490595728690285115256560714053985879485687344415810395312589413743879241116365182619322558968824026878383960493340651648416541141270192613655412999453875771361880436243429435202412680075486776527652728479062196278689251458452068238527339517915502164994157074652884435849001108007298446820930462343530204088906769610469396949968507728226754814126140569344610210923711208219687266643940374594703939035634576174664019427754128873260814682472912842594082846508047986988506017410103054668265181083506215111526754303350095340521895813499042586335361580286787419703600562382096612826760383001810888474550464180494133419000498955770835819295405018694378972756671773771857267746416287650647618664112914594348400380805396629764317400155918355026992369576780529409321064603163046478313510373649579848487769522425408060509454373453006312086904165334885305397241382936197507711928986291727651246256177932247714466520011802858448930068705473002214329848943987120148780549914781819721878610278789069047897680241233786027834146810336362111289515711454649303987793734115336661720805174666560167258209866967969877928031165595218240041355220839548460364291303390525403572906602131116698179390240692111408927623957488731575074096229322674733040555409327201281168296004111812867912748301238866587107626509501775588847494320332433380616408796676739726254174648651872429422814450617734321930145717731389211933127447610731307843204293303985177606450199780728786103534542871219571337112363594860712470238628765892460560476064948311533861206484098818940917205329114805791492846977138444524310978204618607848772574804903455254697066769110577797844212841119944790975124292424604325705313947385600788519596366297727201458755856069378149855343355266083144670092855452091126853956972334022380890203134087571401917169339970538250658153561924205468210122614436545379387126914995141255694317385515134582707323877693063062481732610785890385659700870336677052372764689843995879580515995778714621316872209825454488825736180382921667740492973567625634656633096995483056528168921945725177212522372754278874354622993169372740438515881840492645947369783039526768195043609659258178166330424744882816593184143480763145168992316669194018753970854837992905358452624201640587873572126356019346317015985170583608592199211362937741700086419891525000367402497565801175932904740956113283436705516616958308277790056993468351672472023272760530091810964819596838348488922041017941415801190251639035856048501759944958953387281599839962308317010124781075258736156341116322411403262545844789707012055012263917781743332532448924488017870234900829819259550792700910999710030616610905937326555438159397966799169096644842052321419146779290546571281627580652905508929323630021754382162569359976871853665647331278445381119443102963100443039462165804504217343583940050951613098671102726973182535798163186753392000574312793287172112048226993011481724157009303117260008161412890537685593165311833226885882178954411376063401857089081259977666510938320763866881273997727391640327061098294042881663000053918887703553830267433974742098143969965710152138988132130316954152254255094805869081947842276613331053706541581364268759793698275911549324580332188315153938676617312350155784412616731299706215846312207219324598557879848551422671922503148486304129333892860250375904691650217074238592917407165242946188651779083663170943256053117785287569963325687522579498885947784245718501358546466366392852844554407074044046573971406606725414410814039166461761256088850949992086136628372403708786010330061772293839506220690585485514539825113787804001084725598025679285734879783607397200457874099115191665377603013371904491282502862042222310064500236221334451210877719343238052453565712857500124797977693533592523538439550251294427021125051228362339069173300216041095362537363855537663886521031669394150487138085347524555065583365502511776807020041670252583670183627351926989740421066333417603940906890785276746565114427196364706976377428426193948156077330489258744325831086375985591830888421868151738202662605088933145248323904141705982419884779709752163351279418904961431432419548390601984544352262361543295931595277338214696860461044422003351428596697034671399709816750755739291953780573080729765483225620370846217634502177311768911914321934166117070903309926740529920318756236983189764671289353911220868772309233700691523040627195292773166001797096648005609005455155763644022280694787979289938872341499962640217025348913119863287664306677999546358416836585464120477335986280645494532852631226591967463328322416191237916229105765760177738632707108989851507552403503604127135237113217771240334382715726595006366616951539681160315734127599655998485546446696533211516039049517272224365774586227229052099850372283006165800405564456351327909586515463191804089165744606939942105029122082647564577956427580224057703028796435588459610995289889685520046642055244806397729018026722629777750166679356247071974464199935153691064369212772369947952578870421678042902799569354890598716861269786073609457306710599541439520789240978973399992646880053214114755498405902473282942290919341223374669341152722484410589321460424968045150943998902236883773424863353800285979933485422502049488630050688844351794549185975451128491181478003041373618261435132815660508549262106499206571221945557599470127601490248808661840298046147244845302744035385490651634358860588037149791830180433717656389559146847571827543661418771525189471537192218816086578506796633131547458176905442385755714540346021131540910226942852555658765319301566137893592638446218837828192328845109829178644246739646832734134927880399614457298273964855344136628803160310112832018048206347730493632904187313087815581221649370206978252786313287639569292494132171004081408369444175764457712829240724646337805351516561191440994563007480229081029040000473843685628295496546686101140909322414431132507629996101389470606644772012231124389286801639906477937671066849904676839698455218525072205261484047430781108820999163051050262808550027408103573692789291772272325492529297872131695485814655156567298992839551635555506136464459199065498754119556192255232767405760997495373449054421353438171497272200249825078600293185671677243899991097181066911650543813695441661225685829552655293624307846757472173197537511341051177864778107522743017984327060258132161300468327259586329078195014546320905059935701191471823208322197219086136216179664358680195903071937717489793472444155685574843818765790406167879179887998910551319526412398197326404405196815541613525774106304483384419557230247012017947604430057232025697879076658069050143306242643223219920376399591379722444438139609749913366377498923593130709140128066103409188742800546370018495971568835759271268691938779948845471656212075220090865830147174196189680093584831423787672386629461317988362428548634402045572822043510823710488810269695229622125182319247071991262837175885316394047335328243499908885457259805199916312359099828794070459686240917421038010135069057560593394687647347567466412527278331501669157389131564920542596673378469557124268195550865662960734515638903474280884503968932015509931718858799323159703089628884761546008486997960097094372529651343401132099359208525338814544389097625285983350978098442166209251127308806402393752358477208774469333712906124872687873479693033378885634803997364794632728174891319083055144268238241630277560371514439749272144567455036512352937541752923587424662107961754163944581622224342066114477676578151576085288714883759960755122335882129240840234804005387275336225141784075197344606260835515421105976200590945970378916245387506593487029116109974904720649986640768936748142753305528441696820018829819261640575409511662740197521259153786215748907439685629231846481798939791385874849076582142917621835043428243089480238940459108273976568477269379963743428554358252415915791443340636639262144149809742307096405976658866855793723542900762284934009022004233207623812047696131604684927971016438206175400987819689271342177360776020915414125804838340745969045615823986715676277855510774715876848943806854953427025759020782719542542779036222421452429370942634113732341931669209588455306889409331414473037939388122571103546865957916241664432064661615868904042301904124780336473436252289506397321196815024677918796747341601053235783049762976994874964574040217845281457093746234258932680598457547695254608437523665731345053997390350260138481740124688465536258430520539706224745494993075680241713848554669556595400332184014061152877944783703041391385038999089744395595989504774041725639513346718290811044497460707601092713818993992569573773357271426445606181389812887930637687313046283788700099107058856416476892213245968541910801968304924683619451409678151516863799389893750037026643539778220804220799485074110402461719494989942710220987564725356673361172243796449968424434805045818121281606393495046618004404161384172673415772194374619967664313185090226962661313669226600251885327125350814440137547178040516313401007979847670021464532304264353401674415174777675640833379010435952969228226931612718246393190278091950660890321738532226989639892534253842673555945949748588758110075270635574393753047555420267546269886864091934952074640805230967430381825679651043257142775322752229883913653160289809973388098262161223165824132146500280971141349312270121118814873075187897403990206964860344884734917207796630972277862692640844882851357314690227952719278384316847527890320762887358293624050357270156763031086256536319108359587299217828095636254625180672714034284524293383689179857697473336347570237419226969761728602856789794377641684798844384578864851314630873589999987499501115026811796637191126803328945128477867775551545745399021893948242001984095334314075808319730701227604944380501633103243499286748535881014518925187940627388416696073467545830621180842665235609321780182460148787902095573521377764272602915735083391580184633425569660215865389261712729001220779734810383942482283939743750202726037330006037609309283006836837910403023512087056716103081875728987636454126500096063069080882030248005425513103717037849773680275591640480175799523770406338173757137999005147271627351195367386803938533934570786424856648006507033717824882233082913171691910293212221112911702100360669646439548420176987321432401992512738310311834767902463718050627346244036198361066332264927379510687500015773511204109543832050872644449499749050704090220503670132806877659667201826577507180699446892227468330280100745695126605230210228972477034002722864597091582005565561083887781044967128015250546777201334869883733455298741677334862238120131329893558149123929900401748242407174900712691390279250799003560722389806594721069177569586413101359439876019765364354808077583373274845853460003886081433023558460061270835860284883819155440485323078033861176342018087948666189127632121046157981785817264836068560654413056974515818257458036307252793384364641566698170024824096172920914920814663172517273586293124948346085984606520287208064120086809998447331672885576813682053444195243726434199405030826288655962038329096874370520668998969435055318133619333392491603411763607664323185132742856268452565731890467217434405542591063684026959755213712429573831124928355089437585959828546831155968962828029572853973089544919965850999731343940185331153052754253646159488789243487500232872385569107564247607269240669509815268997806778502307541270636959874144556834328554627981364311143551379607425636082297785954867246183073989249430214839245270897900108954306195748060036636722375805250433698254313037945480916624739910639311854823071408662003545497827088947885691817154901940822257132345712960373188416645580514759359310313146627447295938911713030890733780340143441082708722137245320914787414769477503895757067364541238800789264732199567599219230645271308027186145707759063953515731827707703053069331607476325132490670555402383550241598967156330715853317557420097866394461861105709756637741945621223255767754562557720682815967232949890558155144105447997859864920385337335354044388276167999553716883082523736348745361828658037721253800229035597746084225650276301071092779284241492709070544607021847630751441894964905086381727618745929249185563583478989338291806701111079738009021958073181640336989491955007943004892907504999950285276294794410573243385767103690540060246150301559714178817648108200869121695824979952918509749836567989511305789519305596231409229613834922190456779237701436446581068653948227909675987584953672062192071697584703564089537517097355527968978111014947491138017761027726838024027659968995268407210557187932330430887702912490910233326808228666045921212316671854244065982209091133218422814254524886208221175826178687952545292239893701889666946221061097640224183276940552310979026477978140673945355335779219553280590859531687582242443810960895194193822388711691024468371104017971393502925123429365434251440071364416516346089811678925865364825497550818878515238930397256186738924362371763307588041465875123321812016112032316027588011574382640136475565202205694335685103126120238483750584761281608110783071903453599884109680104737009879573727490857913090891091364990544294979968545271964510438061067085122143201687229437975885984091998097339516223509623641589346090025504330681271748728539848945886335759139640696841983304285306953498193325219032432943284252811297830829705322575095110508410666681189015704408259497167148792411766183788969017414312408093470909752765689818822491775409320819240632552883702631887378883288052719025760419189534521613394739909296135243637881615036376970186235214140454789795232159304009148407252521556420290581408356152173153071273673232482998262662302586313712808787465183899543935412075935833829093732460846026676354615472263287083776969385924143449658323879879287478416712404026688527912118800151646223652302774411330803776668514373056147319002732541783677516089378638112384844244810711396468039844898407022548219726787796064858662490937964508327915435161316208664066248385397816693701433992651462081297530553703613099175645546029668763750566022355879536386445523911194595113870627157937955861908279024247991433075505677808532697673104534558955436269383774880300623112044697219046023303431510258842656304702920076126453091849382358186220247883795542019330088700663229395049321369222994191731204475033449940908982792262264622817537662591247326768823391076717376201914253121165326465589724194741443016206643991789108787403364687519909334338143936862833265754876017812653832266828417098055274298643715949168080202896485748569587730014835860824083398976100532425731246040192431152163853314121454343888374601295852710654522166911435346704499246032923549390386202323579531669023442561754517262509023412332488445606633480358701935839857020334635499799360792494611608994329580418638574907890242154404180371575807844231301988196092586473176459253180718368729699217380692448600374708691800705726915538034061826264999067972650498715538407533404781336869370837968699512008815454755675926070796912104847576207845505729898556749375652614472780844572945400001774416630913120234131302394308190967262853951472773963759135491022147110581008013465902067635601376770158321505474319260095576712474123368790290907722445159649711083757660650357994398074652464349446237303084048527963271556337387094593091666347326089514424122239981647744829277889719228149808305827676816267889903840663139671882302295055522525665273556246929890239387064124705264076753436134224845487737141621170420729933387880817976949739504943214103095620739208450002055522322851869586580371305630264222049807501210694533071103856466281092028290738815765162684073776105428778252906892068067506513921797286887779556840458798286516299184886452519643428126835684042084055922691299025217662648505478891264355868544228709673043229812683602125099616269811103438427101841038000696282525169105582391066217232861139210467172775515772508316764324210743604784328362678424404998458244466992143168157053423379636844578838302264437127270636931792916957770414927534321198721020726848166177978731775551359817307833201147315647326094903470311006944495542117170944047268038183848002070062655009388494805997488730790634885375308352106860053046988609437126953434068059115517045342246281197930083656241414177688529203579646201667067196062356136200985601774533788787685351280818227395011477955441012281176253934294549466162767473791074937042928582502729267009249676079324054223914504127650142410685429937571451752717393536748104692366288403431632888885430915591637972142516693307252458632684595519142778523051725732271297669258321869064531346530341461703911426106628973064817846298702450663890117428380292339058395741735585164901551406839417123634971386318801077268620112559577994219321146998156144964701053821031126819085729124043182932722058152267322747620688254619020287894823596349949541369383870535251471734017590496306145828900914566298779869957890384279582499970566529807194819004894754579018907558914728647395883318624560926202699601239864391921035351013115290681647051761475191891046073263887656545761753503090757715731883115083346927041799116928463856670138626692956663364127998669775892766614968734072662792001999265460181766051102955157205433126204509185837446611628299769006881622773458364505176223856411810178472751754748883695010828077641484652777573511897339265312095427358087395744808298091221398997457473931100503825608682244715885178570040163157243735559760010923683016819534174224220776165340279776131582708768542515942581931024017111928252179216086398464666000726925674692454136906588587417673917782343779654053497149898736039827549616145324388879702788606536813131484507875709508960178504505629027026061008240566643165182942394034855045376878537597554857884294915317387785398515660920346938841880643797294105017512611409239415152496065762006382194074567961884743686481238117639204661244485775630768062251445868585802088671033018631121593693804840994925407526333167952217356213741572830338681662113313671540734730697440548447146783975082339454073065260648464960829198612948923008093503110895712329518528275117815117363718060804109642199059995330126662431096147683542968547986762362008194094622808303078907412197893194516400710938045030640622307300887367515254283051500866675211523512102117199460256499083994789938947653480124219128492850601728275089022384946387309398270659747201394699627035093201690973860998353468139963101522624655918463273627741714291425721517652400615051393095896933956412444383850241448565536203002708188838650900465394437138479807077312228567242761646221668909024188126922825553610539316867498291962823743168375144807050417439902482626381050775762692859951327109498431372635505730402654087146244650525830611701240769059796112816068719125696789485725849417968568385540615473896505552022370399655877683281759738977933236797528234057198026268279278093326197258160934004522306656687193745407576988396869416697277532190148248180773987826405406950126857321523431099890152867433183759568509448565216608539499092957089961747533800992682158720309053685643667830012102175551438231421163919706957650029153432781773201806158763868056457275064047724145153579796827682721346320129132188580134016372121910350546469211648029411771904056019133058427983738811480894231334819029062676305404402182512951362446712040085581283341195167375896455244977815735822285087461275148757333424092873155543674601526678244010021376173520363837415871031046039747096924967842391211649651227552619740225856813430567188826960848075225442200482749774153082918655064902658628641167185531055932293650370833433095231889776097746061028593814232201084725978092666494534268993418390616764899954269703698034213051986161584078048456884754284957177780245674882030588639324150101170713432097257447286517627370182548739542419074738019180035218415767151715699868455644907758309317576003496916466139672028221344076599758652916569692160289095618537860953452966199409299433703175919857720638784377936315679771245494193791649224262385744512613898114857516015332997817452679243196158867628515951276418079390239946946147499499531364507762078023262069155740870910108200860732175795374843075064967150457480297143291670459176721256718675394171867587533903394270630376179535218456294453460330081520219847767133080389122467676544106499493082999870080548653377956863408310059517395587896612002283329515678370249845767979178864641914919030243810047422802858103963098363261201970872661982477158006745067533766602060766517759954395926781706281524512593162515879414090207626817326696873002670830662815103661056418269847233902883908267688391704902808902383518007230616987164826164470123357195641163284663900422435642045068336684205129557471143053856763861645856330283441972848084514586139795937896126707549998491061336160937470075125777892755778632728024190662947123850271298583685881354568151886420794632247844543529580382698801625867256570992125992969518098703973593333002594055362676989657072823226292350640996271118946273811775626764513827934008072126970461236076099338047883651578935825220677890339261037482442629372610134242874305061405970145092924078319525597510816077449136427673956548912521223644114561854086712682972618341210477353396020238946475003262945008398841656749239767463206802445460973475325185803701499474458847451521113456987555685544949371897188853557426155889913111218140800209909202914515991319437689473090293067680324418804505327414769884162719855195000428300517534902955667303147932211464362353793442627584066662600860791566883607531643626866014057859637450783418684751414079458257001874894188743747861709546892130974266508542488334462166771844302608952948956816889648305820348221953670405445217227516494924227830962125554393198695029322877756543771117570604325817527879716481581846241329805257962175999258242368796591269167639333746015936510431501421467313810731009807050234105247408882097745900372528357712619904958555919569970020533059224488756896092844810621069113428997970007006705751757832364106806376975081432969544692095880041037129606630176597875417328839297716130299394467868789152570952207816356069942253914351505579374028735343236746193502519630515902316254634233007860237883748847427400946863529959415017369577467004513323712565907293979539880171318324779874091099494117058015249342887953271436170941421605646450520721111869935446505099907131934554131923330103734060208389625699770837710278470942870765548963824529483285054802665750574946884092083936390724801153359441083555007562688393698260888342391923553612093532533955548335878522080568743650017051937350132886447640041216835569667165073604877282810445325254603080644396228031193818629418049709488566317822936335484964601513444468656312221652965766923115806375455079814306409140207295616721992554660344625114757130804444413391942196038665865897807904793855560118911073066089841678515788303178517417272628169362401949142433925139515155572364673183655974704823071973585580653091284252114755017930620909850280793054068063399841760581831588521996413389069514370115180184000838907018425799588323722818395491748131741228453641215932395945943439330857517834372512774575751376387393109323278628060437807927430868725586002671830994924033216197082872911383123154925314263814132369973436310873397887212002168596208452204350095648014412357912364772936649686913065598960015612320157399391272585084118133211078343797313228730384241593911173620891803647416036274868025378829795051126818145433843879876772028376737716114492904368311825313771023921614160807998969323776926153948506267089202897718054858617133550938016970125061687594158996386116525369217049391574815850896188910149258881397617591220398248798365236636108163233579451775603199826596912655489617107294879088154374354454582584440204808337019971971454782565458362059476953575358168186937209114630896878618895469964516699268106427617221002998305530935619728330652248072556220236428395183315025917492248815559946760597819158936057144699106189497105771290048886841637490317052976810145135166494458171915554959219092057910248703296270089020525157728637094237307513984486595798188847682416974743018962215432686174653964033868423125204998697757490692694673108433284200757504967277801259508496015921280703221508878673668503627453104208214754632660078685258294648439528675146765048308030266222716164838055777072493555337056283858405994161899259241092518998308868089634529753263481148955288466595636554580576428937830182937250589383656502871136844299025553338023623473086669057874677564637310422869005687905548050192051437421536562838056102818847188106083173594870219237782847351616559737405449134527956310824057688096265037193442821017271515768824652103556103550116861279220260460678790015622117158259567144250210491061401173442087624404780415073256101744573564321912112391941833273448888809482428775401812759240199820205605711797317023823187460841073333995458101535238173919856326230422415757989154542544534472813788637881277343916559504671910698365513330135721665438128259099245194852131142072934933963185578869191923487197122389519696499238377968356752163863422224726445457300895248340892595812496834081401459043811200657889277209054934639531612791375633928063984143018584616153625353935078045429449534626305336776045217065082535534244660657006929175637139818745557530427531704817883911506019278167102153314147352415544403477733948389544960744992742543964409083911302656048296305587439539430158106377377794552734799355470262713493490061968852883528831962858323850155456725337363792623418060188642360306736779223876271729082294405931600116498174885788415016460851484940004085803288107074649470956310199947177191589153218444479462066882769538252520781719675460721368674075468034483757116020288042181158617590806974248528126717160069986686202259086753644374976159789918516719703199762915864531528680649806026045527303455362671369194273814099823638719783717697945205947611000553625938757836819521238063012665176742950895835900461622703313518817442414689090308656496361969665002940065021698651204605693753422719591115894562820178717486411306981924192572589464395663335473371981596670274312759337047568475995899591395921248891754450362226377656879078007373823354268071355148818132337834433047736101419752660555539161357559051607387306836922376750900866756915324715597167354486037103977025650361513066500000367086214481231373501953203823229756322589575178418670308929609685685246075420619995749883793623915605058293194819683779165758281536123671382501035141983007418100930132498040844748334456160632472737149815040333484723488841338509241810270756187589757466541674538170819285345314138568720226458712897444735157092816095472702218084287278001695623487416914870931126048433389388383107777531035384368766137370407891447951510443513214925585636970285568640403989966425569782107053443439940101601048090618400730694067210632338485339648283375856843826523736306498478207415930549446726571592072395457727970278796771542500274328704347602920974058373036555151955855145688329862591616341750250038435440764215396293719252096468494632560333959902903575339440957781928595037389478030848462679193241558138571765479203678384696584633696131533963654114151886294034943041487938768644646580888458507113550118083718208308694656197347266694421683061879285660230568357275051494654774897998442608913251017723445045960698144802258033256015746956746737183610334131967185150818118015184977634540119473500356553965606155675140839021310424050053011837416015635403394848987341444889320440602570631433758694448790926756389478140172423009736984071457077172419485955660127212054379154633754441716273898771338411379305944369619680354655153623707794390633426287112379376067209724499959996582193261027542747426576325258780860651166689686457586585842793248854260230407545062138218937392253201428146986951292140268379861187134468492774051365957130701823640525977291872737486331482708433093607619176599556577183788943374862522550896394597437288329488111797676048901122849653305997112645348029438855545343581796124478283084226633286096161977025919453704178847215160412271338114663937662617598463377589412164141096175997574317472793037193674301759466969421095142807761109026211948494932267742444507565457331354214897056533441589478942572867433984357167053303960804297825733866048058449465577204789638462755429796464479411479988783532097544090399632946184102567454676167552415203158658915357918747412639728768809590831397675600430900395585941638658461983710250155827937768954475320303732217699107321317161471739128874786383860652641793133358466770835602999367318862422931346835551637004550685311462238604679168337820028671882001542578840808619536033431578571530262980938703697576365762347672130379258889999862252449979406137840209781470967070051824396511771471879921539433439218711555877752075927767947310282802540648973523008229058775383750815595570409500163692426531865033631783725129564305892771346619553058637524692244938287407622881127961028674833292299533064973177385536033119131924000538939582469858809842978044462791664660482142049668294235623700238465627506564357894834854090181055123877635662815675284646800857888788419148915467816074361563897872763684913465386732176115563911450501363150411005479885745819674410764944752633294273723439412221199308927544928903701639330940426379338288193494682410507857427526085273186473031002559443878906953804824307039203880131491682783934383848328502658783486717602697720657905013812896376150477007120652590841931614727136728033129606706708846946768708201250953302592420641961029741787595613677732322989639963221131393533077701317237909005437604760811000737737785280361224271365433797276362192960165053470787495015405915431987699049601031525250993019977475766873544563809558403181383847028482909924309928287923813770694426402692229721507296129970092181624388401093088171154786314659732754555896606886378658922767803544790184509688005060493620667819481545729031282335745492560246014637285875843117073289963496194941404774450693252944778901014505157585494226853286022910609792954166172710431696965605369718063275053457024442637929108787325210617849025044640161219047206118546447942823356325551816533747333838021956590412086803371087230343829310959077004144648300690257606353108386103682566046409611375478892932251505593684468538257824858142308103823176342072778637975892723627411708084840706407618697380697804620104712368503938189235054291041547692297235249543862316150915329726767364708527007653460614786338757693825123767365941027226411737024110201168068377736381375582637364391561801832352917876236426559035202456058996325118469647836344411680115873987727118985514745691706910751673595745998091860160813389428043693692535315658741263090424599377910814699115366855404834696278549144969544337101039931577357221075247451564678689608143926272769634893477356402440575898129406254230509941593527668587750720487456086594178577854485231851641541923897545262432696316164001619252457697084430657264318059772214199349804950126866988111421310646543705826876988529653583849571069146387250508084942663122496440187766429559051596783710258699189067572673037997100063040703613867244813249364188827851449119198989077217888160281452332639200407957742696979743031622228356997711648982347980210500285930244120300927958976135019756758156457836791188551244614552373395993456039234254473908955714531411418380160190181041013063706937572078830583939015051830534837564712992645033036784202726047560385131045076409646925401694251189193255828462515162251050319896765571379545101314993496540715059861474080626486447347976175974388513370388948167489139464355435239730286405216443552462850367701912544630009946374397903289157900171902011677791457732269934611558649606051706863457533439922121839901684647777382745553161398714366849027043256972984705435107818258530826485643803648884214336716848183732747843879830229647182186590820147162262969977809154800434219841873066316358832212164021447240211908643997694596382422835518140946246318863140114924755127917940868312895719178305045825343433902129141586354439380074853536214775076703240671608798854594606553795618597020956053400831258096717591931602051507213527282358287806206859540144196347371590042127423171155110075830042027539313526376597163794893356405889957099777695632084723466798283878521278709144670032370801790106226668197746707986928381906671705032533403248364571878427776334884322880017722503727603921865063422919153164832808263171675914613284183885443331924280495006275296058454933904522708077047582575540104265019098306721883068271159614741265147051020407144117733119455949469107755453640086511122557860419731541778869456376793932722028508372601453553705824019264196574742733630890951910364675596884177654129702460171619618740008378528554688149222603448043441485413921732314256121910051955197436848476061628482828882553060877040129852498213429413034287353283557330335831267885659763665373148172826975849666445020827975754089295629074596486906568143289387740158270906766706309768025241769249864213198873991693778118570592674598332552425285965961962729044515604637028143199186899293407739618105447601113134398375969775337332538688181229807076265217526016320121218517861493800007531775225321469298785920461031405447898414039659677604930979586692072261865484552146406606679070529480851597769587638094643731424334993076158705206868448068787182251413192576796209762341100541869999460306206494340234573247880361199513556751411997466750949440487670067625327175991904285896713086973772664360364407281363098705663539774882463079710954267875613156773278681667299309379792662765817057691241728844381189322026613946437609754251226067469325241332254017621509448051414391984389597846106262576576132976472189439089928588943117340979640786731385819895759904550235039027956622021508339762537488227717290728979260804119925671303335653570051817027196035111912726462891209464815565612232478507793610303610225102667430502453531635507164072685947446796525981292808288211720646268965449442134470021409018306886089054213278452548124632281135599073417961440403820550044723084291858983236108702075599379722132837303499505227452037770795650176900916233854297845140608991112627940567624435922290320629070097316483665050199936148306473327905865845961706441473299083239133874515688193587476108598240042963029376790350389470086806042804693658502851842680426106529114961973035115845313153666442920130763106851307829373123020704809300785254681676135352969256677125788388396776245971851563141281998615970722075596793451778256128608087250023564543714166537665055188708298299569379256306671770611678611841589280385433533203147239873153803040719425811048123985973327868516794093151975202780345175204336572789091251621625500336543776892604571392043839239499308211739334043376534988547311775586206587225950176167215569800230854961256597425016186925219620509045415879904915079629773186248053585335919394812075344403372632790059045285816815622760926498222440878860806743820473620604840199039095166662528763081725097491372081601782176989823411922687142927644863125598081705862609101192038044349743386940358211307783123475812904275436950835927650423204606318916829111763805657360216988769267133828153089255745394340748677055323304549402277979961165697841393152893653232583027737893606114683603831471855398376248382787844513773352646416354775732451190706408764643450011516694014300037824305186626157379333040024394662628741543464931118286632274015699965855457631250522842481249612189874433359409712875534973079351045936937750044427821907249354680386159523195423912147688461413216193901225058185612321272399026409691209933275048731345211945859794281551190848946289769895053394639423908866596298253473886796349019973689832954210246766172041243621978640562812315626216428411585344364821274602380881885168985938946255095913062437208138835143355321178567427401763930953392036372428419281447782616184886107234099651925924342375867939574497387646862339266028852020187731271443283530476949323187738287281777527012367001336837251720366221115379352089734455211245885876889559810423290499504153812056342159399178606038685037355964392706168402618502433202567469712575919785624371526828843069554835747154609792044298034894712961504944650461073701792719916106465758031087710062372594992560899233931957137392333694753102591056985594064564041119288613299136439007725130270227010714381455594717680867890653102621351408566812023540641718177756836202375217947474519280387236055453131968773976863600753880960484366328410253102999479751079066229208802117341506455001061213869386877281657950513917889799750361536940056436523717224696285916211022235908535022530465066936640443822728172842968422409315002671421730972487817059198355750440607501295389956217174990236436242475336572839036434182794192178061330588571722230334932095685333769936709138476012982767552192680171482069819117513269550883651105081218720563029559794827819324773316796172307712568050668925091540662654764079971121413548089028796464166323086592371111174188778919843748515077074941315005859802706379330036191906330845202833523027379477286078930501773633860213569656043722745338527005845087215905822765130154482615054986252233174888687377062114346287286937530146289006281450006263630698163115713715169727879142491726360387428719640958131559167022094704451237410942632997490653575827648321425711566985657983222583402002189395169798224416388390681220949315540609214707460617779207761790692404670440251179782915203959172260150911766643003587748788339673594842925632766349748430350019289841036475077538459066118875236421878698241526520004337687812551054767387996149642725417903455094367749681012483496954727985008417757261273713680627807161573581489214346248185260000225120340440695173073810851935528080127758647337072120535190264471550195700299357156096517677463095382809893324900962412530083357630043393302293928680837833243336355735683473509206167317791062648561483075332497214429149469232536394607611572377370019402139993205692160051871623598299399695547448507652902963673552132031434504567679883765989348625227390077989643998565210197684269887702232931028584315323328054791515403915013286375471860945724443127086577189429445377404676148898804514319508081871716601389383610320729359836756953094539841097645595028857050041447675469217874491293800622064688522828360077670094549859248666526425106021309027982916055193334428500109216310959155425345357049047531231121017129740882189898907787516842220238295752290559800172233507927122301345653264101611590842116771175390556492116760373870723961964871107678895035517817471972853440928187564731399175475759505800838633449937047566573954402780177119549090606890344038005762603451078893359525018138655358119700579841516546647312808289125108978842247562957477825809532358300018849967867440944529534170708464498466225906602411076805852672503375716064217635404144216135692012301222990900584472331406458180929037894244482325988276619824053842223372067067300018947082615972348981893588470710465975080953083565686480386515168942642976710439922447965520925367421957848071465321278461104220409854291909907934504744326535540187762968660610710989337568541988836775899330187560563490768110905022002718956982978266829231714702520019234472891385188478010332184277880880147004976944075667831911819999522110864309882255882867960467283804297444077468029492632885226856674361758856412802977963032744626366966503881921992800540948589313410382979069114083598273932962124300398490354702173827333852806712640527491932418183085303101106546756433302534863605175475575304648520537432091857845398914694147386908545416692135000729527212640643113619930993044655387508123942376830774414646511038942275324563836092006791278919925687334503484845572271500642465703592128111731124830054182415742282889593314486334632684291772411299575040197920809763673734655403924967858466751064755052091236699971512839583316487079495683414033822371422106247263376255671800193983376598962615567275641243833970304094201729924400901737519472365078503496516738856932865986547121179883865033076948145254685397747918996922875169341769270521332156172077840699825809515256699625247106721146123996788915350835098035801751616262132078907488708758376737054719118593189239706173432715665199046299475677393927771476840429442774032031936443642589984769372689653163775327187700766284212191933927392305863624788578858624876573789352587678950555056996407651117372477644744285326764563066369072033052976384336917517752941245359322956782295028189813746187040494211629652151088969094770283437048811669772091063773742161686177402804314867756769470539916404642027694419133053037763701018468626424338550022609039958639755268330136244203638184421603905719408063743732156741002570405276989831488901712712978121124743428573431109706422150176201770812574949969145932904224367548842782797209042249077615543345377669591705273760648529281435936344939526641102439034960587200759605927209315507072284918195505385304383955439463510408904759652698389428641116772411397312297329260098507834271282768138352172330183259608760742790286592579524182832959006927458956167877404813372790740635300786925311842114834249965324461674492909010720843321374312819651525124122193739862350666709482476854018905240564936118329175178058130799633289102644311033472053645732571080165159208363584249618540565350677218227502417117993061072256064841197233204677696953176585836997030231100083619338006765958958727983713825864828624568053539359872800643054786047573130151752101892803889664039424053513255932052439906525250786181892294225150864551101251893639175491986210869304194249929141478512133233624203194464986239885264792168727452600639983670813674235682964507254292815891429149777319863776666354101539285867571790680756409320539523228650443402344261815305615495244680888845359358867811718307694399007051367720821461151470027707871503101243700833232793771856427776400493896372517218386265496207424122393329127979236487042934196490263555851118163752905161454123546574299854421707005278353548750861172843407721755504995596231583025375994774600700605483504636102968222487060506576251465180584863003399668590394853618080400133129293798590718556689615434084406283831253767562238765986476939641817397991456166328961383838208822074205489309766602313593364242733712558383181738916170919876945409825931460998076940115151698214904554034992979596523287986347785020565265137096544890350187384392645379157391917741622683006501377485224735698515503786196159478734759313473546379526759145718232429314994527489908218637378428187290903808973047279126045491208754135037207248138616049677709928459001433632034502779755870793179986181965797115532742431797014225347615262123011436572412728647074134861291223019824872394967132602987241748680297159875309790908564941243117774793212924670326403464840251557469967358236014331160217831894840450926707291414274022314901965892843709089374875492776014137703078162764562936818359378462322687129638259624572113591323089591336081261926425609205954873932518709311411834493365581502323801057161604200084253040272574641518617930757631086863640984755615384960811581494024206537925994644902191857611659447992689729817020442199579560977142049076522117472828744802729230821446621599538781824678283271725277598983787086320975884659252061383143849192165135353901984076177211606987035490968579862951111019231071020623883986602060857567221520208996407261485068541811801643459598173730646618723032653026725435137574299495773152608702472000698104924280866224125136295180213602509716084148201511434595389957932176991330307094540275242616523954975884557080469509769409997502780388202793133039763634771791444010413885922457243491822888756799615850588526342183627710615232999879236692831072071247033855113779975284456819780516884186999621329407534847931691009532304496793732933234466958332853163806798547459113371340148162770367040867896539842191988853029833401125289518009709974813095198777326613688208410939634092271267751468664552427728576448366644685975567196945414991630191164104080708330215187791535043320648464716355284690977034564915986623156603190371748244484829482595914953867044610164707456347114163559278541848118107770817623876988082735539053090585049780555082931145532014771782282112840691138893083685515020431523038055879259224811245447880624972263741867243169038021123852955580209927864716553616940894503168830350491609257748851606179805809738777822554200788970899697853348773377393449975043992626783063625348634969884659382740588750799033783335292523929080470677731837457346186979717889456334660110287952583178768249158083300089199737313290703229630442373103113875139791878973607504607568097912225591841280441394325827310850580518327528047145941936972967598751883247645159119161098982483125716411117429488584301268732111170214160605567766768755131154003372508618468237760225514967337983230210064233642027113597530501075159059868619937071738014330816315128702912543458734593979448742971127360303012667195510895402162049820844395496616055991125501846563766214127182121205664162676093789812301280190876337099068044132681577283712574408762561419133423084416697089523546636309711537524338385636261800806101722596003501378906165444619578486499629336016078379761234682301802112264044049878772599512624279669859021072667069795332302136113923955790116868933910632072675129435617625079659114390549540408094967804138730598125606868812233101762097899193445032088097152734236270380648519071989198788797924878978741834422760206561056371311340938714682414217134140526173616109545426124763552289822202330876323111653523615053155875366727217672840506775613173738929617602411703192190521982192828828996098511015650358656957848545161180056257048975149848423706799185113217763841234761154052293669923320265148311989778778180546168355897167529873686823270201741387814649559605004695325377112188970769780018328601216907837670344716555414591407609358382410475629938680816574243056316087479576274748253194317150961298669953061923127358768358546152432157085785595208440504121020399089121285638727431576139678936016093403698492891864490640126324059690886721826122473516847152957318240055965375135022691282692101364630507349018299326376788861544629299488536309466583699595016001752676787991432686957750306601262358462157361746516050996963883432997388904745269658402336700936790785288237812466939145772986475997305662132691085159015047042386927611545456601336884546165844879355995991908825300910199901896733023073570319696567839251629263372443910243610833920694896957795490547657168378339820799947010619351683722195587785945058929254361175868480452766939659334215205431492647950056092550106645452872539816218994887981864162677103028762817919137725830152252489707824783690428132635886139489573567645111044757879973690028564054801010900986284372175558885179800287209540410199438750249514631349430810564107761473766968945128876426914474375427676256801581892253898050993034846513815133870138588523039152912415171118992667449083088761225741419359227386920173847338842076357540103902132538373076657000455436428236870594449880565800430886765840880893484161331777474531687649819189178645853817721482157859683761853226129072202283376874820279253886105355021177358738722359500844644482610704607957242352119986493455692968592185748526423781130167475632232336144061403102807372427608156411200794387676384494319964161428536258913137866950755269011232313909976575152540510260539403208460521752363301433934461509098998864908273294843590085207846442463599170222454866623335983311015330204347990530386240829699836507619246781594579439080675095933557798894826077930958947506925354830644221962194235559618383796849614018141721819728119354226858963305444779535188333258876379941794335115623342049109536820986926617835803278191681749778141372627432069037058954722228702812152865179146946244629857597572026048413044575554902283936312806408217231016194994821486459434044327978089960208734546549275730527064590015997956920847546996026659178182542173453084245807560573928475585860983327945721581290774217001594865046689709926738790480876101565411850268321689116340399845032248926989812983878231058731718836992464440904610133775030613922514571094078115081397751961682373612055336233517341773884483115167706070576693132263471707337580321351316611724546734942192799792479086272750956397922034562709918572744918128221658623586526019553397045032674722724355354430940629682087106899869388870683743750716590775953775951686624068185573293584768313252577606579836172492478503442037426263530832570231020013441971717415490271421729116158183889899091058113139891539871190757430303345148684580647244541938142649570770061794481337003628385527885563534154876872686563146518644860697523581082111445928462648087236655014892735672704351144669683512218471387149411539600584459188809675506680827939332068973794996421902061139693067529810561394157053606114441839478454916943534651440877278546508017867544104646618609486104757411143393023707941121321905350588023125116205831681003765247779899783642085662857067715022025610858893154626802402712203789537175733311397305843663039719133428022992163999872097585364971815001271918671803330982308503811117388286074639244344783046271078653154262218889909262207589743177790779457350361544033214230830281687803850046365466763925756001463498983394092627443326027022371898247148955445849254207758353116729747039531962887116921484017672143676982286499334031574194439104434181499748395990359619569153276514281633849728052266396119756372607952880884757039678376267952622132616758195034738028258567201992648777595495077108239692803743964484238661777448988323333231532357816956398673931921550213962801604105326081976673976785350589005385775289411279343618072756042042777942861392421238856083098644781361985710130639523373409749455514153606654706176193529442481748537078109197040351803445297565513501314561908207617253181709613068379982507736530848927549968726305552620418537954253208180066156799755414427234141461768852368032171151915649472799716492383772794985754759757514580354013343040895013814643828130360096691462819569266637466380684364741388318946812307303063521530801061807205466271216168659351109240237738225891139056643561283826001279061428841844105515421736371068532326876042616152310193117875361215369543961340333574394127528159893402007403672608291588878241869120573877170863537253253978438035488418190257360570572285763001742807882637252816952369723337590143541546320788245267571450733843076131157539003787163531520080958024856033954138783748067795219626162557698247613758218009817495544171369725187925965175136769403452620959185810839308398939764543345981367101369469132858261991862614034132000620674124769150441108845099009839151200064086428740640974485753651351222677909035305229702116302216513889598782033552714348922595068294525333575909881643242514049111058068846816371390987458138230532867224414727510892997308509638743782686308783235254547964112307799700539204907556852112060600022049245518073358026714627690007765065277784027706860887817287946110201151760318549682415876578645483290191595699227591354211233364737090985172912448423480070038645829292016441053322297699253143938398070672383494725635737323007210317637804527779721140907511786892065628323850439790783271577642456402158702090928606141842778005244407748916296575250346377266422468496440648036885485512623789493403244148813449087823629841975768021184223260869850233683005573698635050481976315432893328916868546815571808305307903120311363245865659531388550314757122143993815977593705693463609369882553006961449250526825316369887015311596385583750081236828111115290584782664931490054934820705257984949510944274109536725184358841094713714251267657237426744930550068855632777587183788454513867788638262255923225035886927355677392713073408607884172604007483524057976262631628659555923939335950286515994261026477013636298470645770492596300130790694160458457406962045581526502140573852051158162579998478190214035085922692603151083841098064378910918245847424062874962377866639691700920050624514717389162578454004058849918401196720277124231914584237817789465887995870948802217200670766778701995869995947723102785700520421250963238627335290387873178264496994785219224101843847616570528833759994540130552948890098036140070152841641854456541780539558594995548054500652345727441444206663082574908571878091309943116007934916576053891365317958400580470933910363704161629170238606881457759645415779076369231782053506685625350514819750705609001803090252098794741493555965150677754937584980736915703763374403917399689553894885241412479937040571158114025237081892133805730359441987937536465844892814324449807380398956174961968045651047139266528831079630172414649992217261216004439821104822381481784315986333126367077783963820030447686411117056488371122414401893399170141120840320086347648308264586959591197390769541983456160372143205506047429953871576757855935369986145276022316600999582616725576230800448195943342734118441508187348621539388716435521212672481849320042706948048028293312810914340739359152497288160234821806215843034934379764244608737069891146744727628358136356458672470930956062854576301691817558542597783336375650629745013882037279415039356755763561583781227233685867921972726697760306028339580295643221964740328616975366407580444492913371274500595270387543573740190595775936340994178833278939619553346913905088173906964211756567815048900697391082922177104126684812087610304638638783951113798636085136464862111227081825074465872775672540476751882467705825594902487164138428995919752868149041258753167253737402015191026301892936477577181990287637062964260557419438773412120013727944724199903307537486649434987198320814653024172656887877231354704887554312856595091163417371806705147990988470515697292372818660227602609651717133400238672007579003352054527778722421453128075177192123998172014674576767030426870015784212253311701801739151783201373902178107101288323924196795759884281073457888325955843578738772200245478113290885168085666251494883417876990447198644927639696867150672678549281567468056670496939696561198227999349729712521336494271420520334490022836557124732094683880267497494744290008841567099346210500435471478176780802217248723561680694372342294673895049978248063734582338008301225312041725382939811697132422014574218208249337960092114786361953448465810394918790524928268064402754131485998534654257243770851507497338693272058728726408662276439341754110246430307390744618247468692789742920777357104656497787701115137642279276092472368216548238980934632626416410595486379487983027107872157992269466782924941813219998320866776322393888402293766024773078224386485340371301364733309454772885247219688800956623102468123717793270866773762435103850453085282319202825955559832797283981165397306139276062041592965192812376260145478167119671594081121516467175980641150824225277687451308918680592355939316650762091608031060097126896705441547710774315110089027036936108948565577257263134986337412480452033467506705579223373530696704267636854010807701955035685729381960872524696623787311074314477744476883908220844781122888909410258944866498915386846243106624775556053829642295017777073184354021178824225363742724074720978054570467041456277509739694043257557661100821971876111778711363002129294554781494662065384744683092148117040802419604191546557507278341334139788174755199303766379576706656038347203829039615116808696353359551360595240392643751560170555788977985153900844815816750020875551146793954891056518203297053460025663243649981478928415825563635819095204678216510200644655799733206904805389759192893692697841506311140397873935229283412830996533875457363663356062151629624232313110700929622244136530249081216301252529607813164239288050011030877132108165455397437569528341392566755083306148048187049336994268895487274064910468756377646347231261419235546953406635834859433490277517096880454323967449614763774194879066614752350434008382821043880653164788122301798254824341249837940357248948040171261294152952188163928273326468421369100583384841907189278175250408561290222359726559544261246851619721114030658805043406248800111199121480875781673070802017129420495622757670607235202590529371134822784467708403924694257737798754754899214552440925093354164005796524352764307839664723653998289068308274847419602039636290447117630663321294657864705549819592303003382270411607155286384107833969341461316323558921563834727338901442578387918430634170573118715867810661453553423806354487339041661946106594365286566362966557221552732117972293287728855609500938774053507167972794326929572262303787447170558365269105634378600952281541101134044430107755359102070518466454797138412760671884319167639375836330658044463197489261987632423087675877633443876209459490041020278337630074765244331636509711431251742389432311846057602208592940394276604990175115153818191693560473341747180873562040391436242184995306828200670162165168993702455633142263733358189262795260915024257399985131225638458159347447087698965211045257335280958888593121226179192341752393263526949414211523311627820976675112292762494363065589456333854110400702282190475799706634110754562315365115413750803746225563142226804708839461621053295510128123400083466814439031984810907486411117732392771371903084032794501946210413199639068315819632142394161859331192038502445712628112340440543075746655911583863386259873442749709008267536049277464738455895332923672097136422116756677952309736673339280551409733663138348806130718343919654807213355237116746587116871605095715670409140448187559542902369125001914966662734867806966811618874607232888475423724158973355129309625624777035262170364743153312561240690795293225402056087985290013865014793028877402769791783061554852250724471618550229848556719391323976840483462483994346670418046081610934376880073640441732901734303822402896089653802264308782309815617118737652910951666797702746416045464897570516376711936974267118134203605264646496223451799765916185897191329736595308887305849441615890350510277084899171246763805444524789648098129224528549342357229840105150443037254579536836184489843416823192745030284818569808916187255102334620726371378207447432440449803323397799403451075454383076645488906991453344298732177645289111914876217797107241928528100100410554032471841773636394818732449964651472177724802460056552091642732096896183531781687230097089276824942146469004191645081980994538053604263495531696118859522921082065322140718612058956909808597084304869999368832825067408143091047787099661896177972997829464484280341747637510371699814320346314473762134478133852051775393559456080488792758959615095760732589270868376470113345251260998333005297982000367841480776102584888829458277206289473718570338435958224181679401618305853465706626350523633100101537172668213617776282835541069075044233640145437164056172548592937015844051994238532029247700111385873497841470073937185456001015290419170902669226437755873077076225519981372543407998607247779540041169320874451256123147895608222110469036430429257635290176645201617010852763519307094306222329728325966778114525929956207677301987025401405369998463984183661152230951281738905727145213580542876703409098043234065827105623058711169250204477953572194422026240562024950935026143246380058996978956693610893019174097063188109250049534090550030823335965150354297277733920969200765553329168236658639770063130044291800755505056860052117945000159904255886235789428391481293620093883737539414943701457113529743101805348178353955080446761630594711287701257857167937133894559818447537164622402796949709547761677082780472361539744284621052807386591823114415977444532868723957914646491946931306325368408233536039482288576463497281092444943473224483860645174657335749832933825641617884713016098929715844052644070464353005626302341817373833598135778005363367177547360821708376560158245092667843238822950796445671885232688368715330418019108682466481280181415483197665705604351283464885268196404229164389993570189000702708561589582751268368085211293592606016518761154013936996871982898168619404281559896534676652196525114917081749370422742064342864924781140762605922528886535613642924161349159083412381763076287379962196360577386923998057088038330436097025076187929025953472828320649709133728210682543838804635016164485082643576932393792466484331156445974228619088751582743604131521466383821464829168193801201411404284105007077943246565671230620561176995515682106569536282270162693308466482525047947360680146573510978168271998595705921077981850969630608539808114066177894541330789563092424028484401848397962808339596876340792125838242832602424188055548993432776926569673152499830880183158686348080806448086920270203941907826097945677660176330921557795799857778228626980178205677375235182048058973027902630775565372894444807050573702883551750109079040255284955828803548949892204850840868994790529834507316387662909157480458754268880998444634308191563427029180958776857131940116817779841843987885168417168072728418465724825826887255277798578357852058591815814774842259125244650825435494870818248248507705591738077720451882704868140667756105622037473499532407418757011641501920518731156925093846155279556197307590134583165658282554229716605376536913426670014276894222285350411951443543357286932502727174684162360244322893049447406309208461611025675379554095366406796221048946119581476553016559019864233926142455082219361758341518188317419925923089310996183938899256857646064062397916348911462730597096828155090784383035010497225212983449239795370554982569933873773725406426975536576250571006916172365452618630714853685361802926743882416429580723764934065679760903015933519368964227610373223956294999661806605431018715404218946803647613226091380233207662786447497791755749278677009820928560498569661630991050242006436688779550413476866769636615380649581535413520919505583134357997495347585827746734565977222063537742527675487987944309307287411391964012126053392729571040343976535169476609035341275685374355657910078657203015616448623424894503745769623380202871647524535958550795628944383391645817766108201373318918330394967234384213082882196493953616280227504842011315840663852161331608092111128270798883903605342016071200361366583056574198047967891603219152292370207653678388231345679672492721764908739061789746510092406594383418562207475332350747502131329807552722806491752552744810155752681549966246294951535466740225089109990001697510726429928313502210105794313201766675828180534567761761312662327893569437834294499293604359693621802146998213834121049508438574590762178968380692214558201037968193615850364237072618668168680598550765622636506000137853442973551986712438693768282037457827930441417843403695212762901172124062711672137816838374195600503520496627580710051255553299182218682038928259621765423229499811721974274892344069927783111207743095679839667549482647402293423657148159201914809419215407540955337327684394178756244662895024355340663038106478135811604971799595913946037972275404904783763115036233430451513292508959837631030443338444245933851909338832150465800165592825011460671052614670129958309841181465984934587617608214891871820583711792606727446966493552035478921415877570708176963109876555680080936725819661824882598690815679555352544421306718610664514939269078230051785122208110607237134971297831595801307178635382839300627061387797297246130074087928191262045438736334759484791668293959519714356744929644291762075211208609858987697393701334880045929044919164566100459668950243108785430913233684636101304957120881984625758698927794954031006356616828400615887201985435905302307333887432769567813162940226477539515044817478643015863433686014445788868881864770998188138930407541124968088127572323026777337323409751411607287231004630287061378124764063796533910542475847569339734639664957146941135620662842845731882211467283156554409399034530468617309971001834617203996681029730562020556990032391875627823545840386136571666995050419152964070315712902477442485260268135826948022448467491230561165789801582464320445606474515212297067051943388845692638121895994428641686805098988908729190394904241049958124561419494181287511197516805574045678882636717602896599916931413335385366351471901769072211493594076125369008396198037418997963803934213784287736913973366738068860446961165191214254374200984061525022811005215253022288988062170315648204707685770873827924247887267872063933393499083852387300704548685771505965527176815723196312089064005480767942438959558048384269483398142607390693922341479743076465842806704586627668246003851406341888199889005359703178078368619376614897150741006180515764526223563891144449991646819504192370274742118878381091574527906563637229558782244151361478992207116007117722023102137063163096961651832750483986205960321206780398455801430776211316391545827542979057624823480351791096130801141505030753021966782431123188126917634149818580392798697446544885865707042800966994310255742852789861674165968968089352868281592310342012912383827356222080360416598503878026924058680178696017348826590554772610344463016132903147831344708925969283551864217248123965859556412944767930981838535862921314587293741224013281588352925673239239972374404032009872866519330536178922905926942628428825731167384420086427212037769341148923067642191813478956415027621817102195958716953865471110317758984793885931908673816805541206656576085095292255424634871706975352434706378144512439571504485846821853047703739752688681968650332328807211717622896493200673297932977160491849603838079763847869354818751110330179126777336879436122044075000032679133166923809416803177414597195823436234365514278835838971889694892254217111783591563900822090310247544265158624062865639221329225303186536124525736688916326764045452080602583080235133041770819461894801151240720306465465313613804703958440846395834111484576976008095836943799332865904093099909512671759410219997370279412537517944594383366802464054757507549393821093291678106188994756330207694880396425739305116868649286453313513372464816377494177937579180501852817260701029057456892919363946411107621213405973894607855333308028490575786994560413449086314170709099440569798109274604237787438012831771110766055944633962494117153759199705561083068346657093880277884329428685565555165325628423835319198390464329378454172941626065720282917364410136649718565780646995507497610485455135891695411622801681395481120228457155132290412598031683290793047876854345850442025048631162768750726670948913769629757511531374777493831207279324203097907407601743577808699767330552757427812380671257020498335623685319834417616635705495199429850411921636900151068097571346638845719256911202817320555446181233107372299040594604182807341949854769350885537197104956788444627650968814328771457993735246521283914723591388223495002649639353101415745648867023432772206691097513440536806413143879454399180757208497669141985226091644574928918132779148446144463454031723638169474758586783770690592336397780746448609527357714682892281141433856402917635431454613100110650331338940881049404039897626361113052812912587162996570627229986274522485648782120072093533221105539582834293223656173933788918617292720228692643441550406613888554360021574803027213955194330277112199536172887686046798980634523428622359194584695954873361038541928333410159337781151243342439019979687690215014619649081842598233558577211305621880454036391012472913574159337287234664829258468008902095221871949554374490539628367318440019709312746546151183963079065779260670315174102015715551287350908809758086636762669460797155286095550256379833591036014533771096044784525180891589569261128533242028365220780197632835594158892069881432209369725697475704166285091024906184015884411510641819836956211342673414675295077491529878749166057322055801676029300912397095484128889670469702710177499040584509398000176653313037833042607021814262295788346691564530093381421021047744692686006118147918716610474968845279114118096315274787427352179073086438192744295237674856465106748293129874961231267322461718722846012513962655195588632512299225748725937706426230839114847127832864224516470402485111160155557272619806858501562451208974528723227096154469638298425413111870703330776946165802161715428864400108551985480074228063471111406524472339185043631164390365374269777034800803704914818301307269218181768281635500712590725303456498347597354766381963405988379864722340554849060138479336694674095231536309559351210536816222323044411219632563973132868343243392934081095821671307356217604300784760205913467317689771332115200036394868069620848397498761340119339595273722025118038711403699658651509582301737783949345995779572026700759846560183459793911994684543648664038583339442635253078460080502336417726244291054514853574168911012531291495351638167984455012638536329510649613927562713135963949477334283676936132960839238873355823971232808920269922111068930403141893902533500559772619994949154656220565171418082953494610867891734444243490824173890188618257167066587716795820304232491131394073640450530500815377655862479142500238244367861439031440734619907802321842167112295794763767097062134272991585460409399084663355584455984721556595276717988871056695952153428530508023956231559578740621963351535116163936561480627816748773609502523062245103054859977362653720685998366611068177293823103349710140821381091688868507950445838791303685533568869981865829988817907143711684385812264744973520109868175376120132878897686589092963359139075644359086997361216570024243195995591407943244470986573224514600890143096270770476780344409506505437556756599906996655763390205408245179198279625592603853328553542351210331835784526370316181407179734211487500258907037634358823718533404460674789008717916600563968530265169335640843230181113488383696193498511721975244683042014015009708641292440862338518345863263475054758248134485764729173020718547855937199985756080790513887315312330106899785783316180217642426015598189930580591785969436883308379836356383688980038812016705323844629670134776719261881219505756085522985479759276927113072002796133649844253887268987578852493824913794394369866529167938628704438916835865959159544921016161464499549405868880176494364990467095898583657368680558929027952677099127752694330870520207197345078786313191517394611292697679049599376773990120956702023361119395180561663170687546400745035923641088168446489946381259268735597337408000059549941455500842108795549672102502348572901498858781003043749833125853862284486420073310751598472079264168015670353824978860808713472626783680141273066409645176269261335997942813564878197262354380808166394479575890264364912615963866140803103939341029766307811592414187751576677568379282865816012297069767844362597304591924551092089888506800779466470246820056047295948748366296643167235718346020733418212915086238428481156284025376061396170020676187304740976257574554979360789399861405151778680924114639833968279947361927796589404396758436684591055557643335082672315840548527440926110583891844545362785584134373463994796915248408421840374515772114045656748330111404299126266703946293606795330998563090967231592441680897657477910041636560329099718626953193332308119949945867459207096266007053146158969830382047259270447004279478206642163072345484383044010321418594413055924331313182552554410511967811089329510515364364957848246233386175826866864236433659541986482876318748244726227406911676632796797639077183701702928821015051546340981973277170031587801457715739001630261079943603507574420739975980913323632628012453129517007863865931574735442972980711476835429301491398695363784613456917596379684918362320657322874150136803003733113899478613893590654274499332621736526014901314611459561555936563985337900799084725917246107238507347427053830654570733854202095462268311329056835525418506069272723658989765622989555969692493818718717908221749059092964115140880226168476068946722966640843386609748654789769637965510923117891258622809073975993155632353417717702102022262556053859430198353008641693345143917511035132355817871045730980985693085194038117947409378717031537390380266912147955251116049519385154108125012942459926055361803664345682059504467687199750525287749488551570502713204459445740717918333691269003754251195470169563393094688050789429942565986497814721871918718598325975879265226685530180482674062532169445989801331605722888009105566718353499596036649683822482610765753789364176973596489492915168443832911081379767490024808762618471574976233472783388119020320744991756899153191981365264260507899166973773812032737296704505366284939819071941395326223269014636825632327002346502697147188136158934036545593074906503994449084580057397322273503473255359115839461474101389068552042997177221570695897703846490441346203964156491491048278038109982827429164208401818880043029496043525562526340883909248889908523063692226175081778147480331965412669938342900871500241689653131986407711082582043261955572682999840220759103018988267274160723057738346326547113619542167377598376524335735794212585706729727207081136242745398494250516587213126112519194907498683280343682878809191461361691817359342997602771501215751097106946763901454956946661762968058457138100362110843368850029518025511154654700053774371750425593824756082556584028598091591621363736298816875189095002660050806864863447314507843494598971972759819250937795029522174223453593721305915602179222072937977586106092339145577634897702488488804023833543261072799606865400168513777050928582705972415924638690026291026116538016161163345112148582583319952011545411982516000836214892042966515989292912080045507517671969523704175395422283827788845824728061073942009166315991120039865205599239031847031482538303534418131056106931271325453605993600816908811662758500733896156215838506213474023250604563468104264956707544000460284615462711167149579880619877665008406522452959000458313171616316538816813146710069343698969292793361056081985633665659813799563143753581104501937948902702777872229319329539404322178189942608728806797817862295813972640897046450562736705347252684170160679840031071547723230076349325419139890398451838877541754326795663201295398551246039312573523091330157331704303944521709300027617344048357006581487732594577631250548069149662745147456830363805010587879044876940050001864502920047122573216582441792212226736151501337935105310268397166774886818734439198760340729487980400472036264835036208701999136236275366572526433388890067769266267624235387050107845388321426810508997824320735054361488970844238327306026284696076209527511957292310281943037241982375868030435726733564307396596673621048277781178854898939587805548891091875078174209137826253570067763558460159067327335767528996062797395811927954216836345512159225649086888627223858386517197205046333325654508710844240742497894509500594775191065102075043678146492722686984425483745743610059265732345500158485863226718653642738417147827203508505810124800752301933440039243058195378194760168137719664554027015561938914696332070700818434608726312224882804946170142787445093703718779160428320848343337220358134993709383419768384721752255658475120724668287239785821136186768447807086411995356745957935195952072455780663825926853877387541768529440048533441416162762787576460744012350702611542072441070797762359295493703403331817595730570012847110830108026051740525311472524543106664122537621310728565825737010385137627168909483440737861098633984537094336923026511934677934989856203655484632698109921728764866595651609439925503539506394813774921599528547525313306524920831386840544261888910095918450650628603746754172499661210087598809186792411183367945931534372558088931276870746441965781798272727443720103268909633734720470538317578674319696838245000671897633856986701496332314639959625079492803010371900260454055974957146867940499443798296169963770571269165554123870900495358131793945142287376750252544817891924367539720315684506797015976617625411129917504383434763282769762773986585215458413228150257491961483489380051640791598080034930514268012334261371587169295349554298591981889993594251043347546635017381955596818800071905535041154375100079803482894923749028568229057477826602159871063516417805059269157423341662823317099463422098983357391436298106113287088867101341254391434948941414112603028035134493766408247720222251713195846781546698141663788467010054825273136050775234775009288016754603713092492015460996733100980999975181051018103864154337371813943756688790196568197407125484576829375581469273473447844987574329320231453929900736011680678832844585039307283454067485494472941914109314653831121766299807369746695728004740556240523301406011617505803233203752567866520715015271018504523312673760401027934692361368429063608878309008459321260260243855395741871376674150263945510237674304578543039983423660104164853194175042245058775415051567251873342775750983000366004031450946113604365333812745218206700238463462080140945848364646400755005746210169667171976306461039916808636869158858942767251070702596158678067139145556200314303702870905955779836911388013424300001779570920928348650968342545265901694962106610727168833490453744683275171356382273847304595081721218901249693649087538671950389266410750758472017266843466895388384191094226231242297311232129692798446993463437189266962663580806384742826090381480011561763329078582636111687754221267439532165864454672592443220003253074492738207633266011686457791972585390746930535603285020074697975424561064532136956753753889895339351383998158872845998216075756688297014992283759697539265268121075317257327051172748530113816095880648044937478687183580631391079215384094378926540591242399162925190219688171525212976582094521906275139107045089455502052759923214485185917034578322195696967066377447203687936309024472099210914093077322620765633151468708765647638290573415646399841662339786904151915609869959204577235051254341026909269339081597440430163404653513239446738272686176568605370919649793455706948377947287309114502749625374357186349785009210378471832992265138811366122033206371749305919698083523766866160760294525798814382493452952158287080529403230298769056589352114983190086251258030184030105114707743937214395653809755769803177621683944298405018046025874447441345237634152232653009065597740748729675067549193205049690779644313595712003237120626732090814565454373546990040374050052277041516511065291121148261932821319725841539875403342658175889016783189357106861266667073000627444369533465261875920537872200717593259219911458260049483373652267551306815255798564742876241630904163969568700549104179019252871616351040471015052358310885472234594527806138100602570993922788966704281951681762997112892561885211998146172746885988654695911362432536366673958272936597577890576004702716608042186093702109326236960740753781648388926798447522914969329721877382709094292511504867417074165933875157357306922311026777484492359228915875846974966692917858141480582469599122788371535567805462456606754137003049762786362057704822706352748015639034919316800748131284024507704121101129301129575577055821771452151596921291138490829490105301587787179709011259625987499994301421370895748482788922126937402490327063829123292489356278485947201309706798904682354564108763771816011839705418289388581835217761527712631512515102364407763226935653346951821261415643758412608777555566611727481365284242777402444443079388644571970911764168325725119564433108447203669515066152663398770717164070650317034020673800651779562471615611626945056559456531755321216734994555880299979991389469224438956092554284625501804719950190416938257760640875146744529886187139145468382014640474918530703498142931543731136783801003111966320716117154327252828824341716977377125254152945161706161172178361975541394860116884865644562831593356937239613118731130704524051538116166371094624182023832215015303016678755226470279526231285692865943730989027503309824870799303781746548204998392999414465751738893307166688816270929939406321133757607937068769614036047438995944710275611266623081233798551914042219045532905905432039299895413070706505228919077989570218959634254187085307655786278832682774099855539421066899498906128623685439944621088643385899906071147224466788448470198149032159869804818321629899059856288157392239913081293107642669473731179196703719452669203634927946540410816098555308166598444722652511425142809770540730295404985939105172445891592942477480276373384837545139796341035096393593747131211939223738887511859750691286754103911300759334036757009202017639792056777425726853480523179432905640941491793069491947890443281317137260658167456130282950714426873074910091866575230454391632852768614915275821002594964536339648021301607630153651742574786714254357720531249512824668316733577684551908308174150649518892401729768025419276469559762465142972820659452134857338984973684380250081924330829851784361524544508971146412460912074111260307280973670750256293406606485118037808023850753586915766356341212795991744871156516699810546247104639065389165080747680966075168895527344146666485610114719076089297405214229414641647560383305713725235678662779840152550997566463500714840056161030573127228540078960936302324515104740346034949561448096095452471367973177619920606037779848095711728563170476763934425113762871762479676155223456234041778538592961173843769936976341552261375057174005244588327711486840046436020452537387769906425631216207640514584326745189074235179504186680532371574145460012770643601977513759238496030416971731584208328836670379290787000713796334884104010113429293109988871544658786478236808469638248468487840260846041283810372298961285376414197830493033290684062714327877615526506655847644532649025020605381366987184391272880564957539351218791627166201104884044559934820231990610463832093679051013887924953907578360758999693202284696729340763896607633532324654711345819722307846781366000887693921710936537736032240635942169304294999870100582165588607136336806756895717941438868139534594991830180784149230782966294067258035168944929457063114441286605863803313421340704672115016982988024470130586511520284490580787911281082374882989256538799967999348220067077635439824076448534618538540662260745309440858343647898731898869371049203213129098815174797016801536261145731851214057069437081624992627758213225480307373702495691678821653927944823582354364538469531508682573939595688781986213900301060768808448160415062410239095073502367449620850521309356334049289141252652337301271908490599597786449311076918039206412367996308605823537908540323002129006445445449453069038604467536401015925879609520247520802156303592358337658470645726622348471691607150760460804269291572996196189889374449841659581071420888239130015660825361827425320144377974907448433868614922340456221763562492498533740434773069474826191122682350004500424833713513639259098373388581122460034065603169686998261625430570456997857192955155899428486014527247653130726655470990604852630479456114663041285971710375588435346163224217817182333555121728479358121730035771877255422753585197249471658036107762575911289392411505196015885785989818394463822376609260465442919669329915012060989234034461040979910859340220407958687770201638884121664447903804684438507721068797656211227524044357011689279497158646288475944203918447987376601922746356494972856729861704597065890492823773761023887922963852038938671872178182426724634199320367997864494878375019075317116617350543660046099372322924284743018825654907218623808358055958645733406084387626918569832465669939054256601340677843426486829096032773865094806465417808031409904254647788482081130605529794818407181153739349510219325507966624225587808667187827676964019794458522721089530207594579083004896054680464715246126090290189307999231808630566303786769284491871009867397865917836983476731351364670815201527147199654340940569741445709496469877244583170032755835603874521749885761396444130510234018289066693033088812402610430408184555455531650014879169284097092428947820609752384637009024865147517770262715527854454695873361573985680531480588060366207953093467235072534380901086339862259910116802003989065227332160462368677872278846999913246591583859956339260556880705281639310815232730926671969298725158130442999622391301080602556301145752590677649192767717462902362505535156000056204234151620799808281542412350376646351261836339641158083740372480077398527419884412298362694241748810235215680760174612123351783220125892231452146497573233715319934878759032159335923001417307213696274265233240974752758332501503794790061376840692789080811326116349246094547116197151375703247789010074760011006262196745693003868158836165910702364640939649924564627282571619962849279522446025725601794612950269124347957340163780984563706921472087521697330535815700504290135355603976820281273334615322275426614767128750102318637828921710490669738707301800202294003835706547729031829741598609171428225261890018200772101955222898819383684053594449225832455256507060400071103392448331000881891490476686013321485594442051470833053728678024914381920975398312321466667540740174603244909990604325523249419183185807888806878500708789887099903845179272232154911009430525137121565611350201807701653811218476466282824913436400828021233196715226276355097179727884559408431499583766553279896839731975464128050284417715437718570173482643434934716344855175011584758170852914368986926515968633187018677102462428969520325698408105412526466354126823437716130950172008891205779654815077595978977284371765598107100130745739788404603575515231343516416104495202144770372329681804561272367999199181430739713645447049519544052055352208663473894702023792893240669765905769077444657372695319093114539384127410576583966519355910348358060028197740803399749253964291164957712050072011562069949748073031406094113036730326265871751587364310141875751987056643899363446427006004803891302956142911828216313228272394479612662967286637233803499397306450689246782594989274062263673083595880843732066071228262820072775151160991411273472009273080523849140353283615456163190628720121129547332733358569419144880401779881958670008513918369974891406866545986073254996472059994551962679519455102490592828507089927500134201491473606442148379208602720571721677259796833010792835076756387378517820756157454772658716249898199431608446185417426831219472154415822246358219969394970790938932797068679635121373894102603948649629073214331509327582790328251774482837591402193450375540615688447651719414424019620826299327831186296025147583550313562769724194650135200930960334784723517993489362882604382965613337552988192739464256970384586264512529147921709110020754105195902370655152044025528641761763239241132631847835412217584601929305635377478372048331035215406013686522095942412316190820590057770315218127429577405742636618246612179524380939884028499081619319828719679781951202589784155687518857268757720187892918380580726654718754723692053096609523278020462743744049212506926929101913156608419015610810595725971017233255944039519994239150844188961437558817237952745369491721214766727484324161536963556281930326611663427603591612406153767674129827554480726505442205236861376879711441905030225480857390538331382309639278134905595670254409860963693731412030373093144942800669771735437388045890591597558212427694216266580889777027593332853637225430737915414399071744879500195177700616247517791144954413120319410151314999092401968971669749694873739560501191344471552810564327061223270084503882178182368358125557563012032588716496544940905969485855099551303082828004479627256799571872725726647311601318616665286538315776140287063915407665078310614520339134490542225931762802480740828328056486424112204279854623631802503279998348800926247962237170819571515091736613652042590375566122818258556511871378213692674210484325327738200564312682637285748874967673618396043984144685906953587592650563454508493008700546937164348314874931422171985384562038459231183460029259106110944502143807036502691393225851959950126172790959271951117847335867056206481898532367419505779843006670527532747790701429311878477171098933850558435351689546254278710161971451237963573756067228650775531102356299942094537568880108002082409917547625688126934938697957229090538368243562667808186304228781544915635462727704529879243971669468777478004559895812435311635423689413350564877218299318284434681257615788320456440001621683112310809698319519621101013985442679216810817009683395365250985131940483798377290650599971724979896998613086583762736930490659446740841660249921434367021591667778265687167912872524200733681293637122984629856741987109843731645551418779575452104989296564596010173578378702509688523967078645356071246759089343183254799169254391757018703702258685011214747242149388456269187441993101967610922236315744497659687131295341745899536537812500625904180442040818649909547088883458230555838741226490559140135769723189389689784224926054097879559734187411532711544325846333681558495677100719610538275682835658724271769236764049714748537826153270871603461903971542805561122828313028853681808229067693775201900461679831468378893887745123400090954997893742689719166744862043286531944865225190827115127925529837867171523397663243850139468690596456861324016932699761562602714400317785954536386048839424429809738730012721189336123815538690247253978758502257815423784220540729485527880635545228661048707896738957979309445558328690449314583534423265446603000864667997764499317109344347861287232345174780808404425795227829575832627756984838001640312568879353181679837864329436420226313575068590645425637083142935395751024910630099377292719041397250229345796714688992947650393046604208507324438459229098480523355590526702352994927246957146474811738903829364359856711528818485701722360828931583554849225244444121170065262889738087078156498414502790573847028369988936245030357408082085497421754278005001418254430193886156164050922638885958263816063932173362329096029211849341538696580610892382972693562935522611523539318170335559434927421504491117931622904451919864632846953256933198831227520232270490955447308689606737043975090061102875749163590655750505325461090016272184791120819900779843693439672031656802904172654700700435645681128181063347933383585770451006139012557409949950074897855004106087776196328102150878816238045027801726695994097805574822012268694850598972351184567932676500290608908135356072171564604825713687493022476629012613203804967127316367088417663369891313399115125057529159897332348627590967129236348113191428018151505525025345629632109110027911000923494081683994126048964168358824402462343944192488725183959366774537014251156008487673608097140548488227199848795236155080277363424476207112100284410548673573393382471076774125593076517702677899004466453009988075334440728372640688958020006280594750935841881707491553299877748613396768993511272897577205104989329290823575737286000036926799484979807589773465917970000760668747798449016618474904444979179088872683884796912191175420336419186898411078201770147878484721919860892716185025554489457159662526213602549986892758782551912830146873405842807415134647330582962452173718518920366127047048853224675956649267272474937653200972474016541396523885908042823752764187909871182844174435175041867907177933986604095383534265557523223230475886130490991286131451270094795613312642942865709606375439681503101854615544923307026356558236113474070936732515517601454125742308107005733329729050489456942575210194760327489255489251476136612975766500139001260960287046889508991448708951547752728932629843967758090375773741446655508120714715967573891707006013213442133585672140076980079203904924956047046306493514388301774795756574155184867665149926850818349712351215389347277260631983834878975195957610626150862030099577560550308858495786277762086125798820285439829457532988921947316445602631456225353958946896821064195145396724747934006937439026835790911331149001525979254259760638359758291716553500420322169617714283109464678576918638109108873247809040478693500088516129574144698259348934812144248565636146539024363098118745058837436482005097470697116952950406048582619653327601448201700090617095398776987772942208027262200229840978140371741210663814220015465096791023831033518621582614290479792054559288034713788286605314788393868155842172628937343687742260196470904665002806257156340593352886377614209486244783260839367638142368486518507167582528731687333762551502216934256649915289035370855415442284029382237441044162965364360625716654089445838021965542426147947784865122367172658980307396139739784215605168706072108199317703915687461328247158153233267369706967554487974717545960048067374860766752350828934386603288299679793679147770388450408394547024309354164712105314619989766507136452804953878219083637629538729227007842478652558801882253497069807852774599379740766082986152873413075152151892362339425303765671654506949354379627794870787503701971118370565224433532379784535831952194490147407112505257618780019861974026572721208061977853612018573778854393143428022057425243404022546773301406535271517961865418262710392462808649686630530036991853757719755847472166681484048686502349166247284340385190560680134610507284399767587483135400834352704938032807960539212306562038275153243535843174577940601844937010642079128234956163181596625859118834301670676786789008495793576330777785407310845908524290788932809783122082099509977411151628413033680354641906454342346446527951422437126516375658390935998208046886316493800718243411914114389362902196164738977392204368315767720503048944147647901365401473670877603601376794748872824310648362028513749812196301325760301526546418348580396770512506485949523323064994037266690277736366012365480073506795982531580385052764897707028118505887271071382108444041010888094950990028500944720191325929681951901635906731766566885702771165137945299739575620580635066087929734046793631578405823013414874866107613125419687554232881840355404969132002451201219197999901403199440031872071152853621081635851135765844999123846554132948281402336895411336523672348172300243743803342666825411640743953281332306661724270790258591434319427191635281849931085577180826662975156519718638413414716337533827977980968805702351215630763118079732303209171878342866659194664952859919776420142926254917521158845929695739512923958564524905639511811261891390466985611831682339263758874659988142600290211418547983238196656199178621809758617450157750400309129196998214191003026782673097117705449851470914955672553823435297997136510679725888921393246335147879489222664878728148146476904728456575071076164836086712014912007223375312353083379483219490499685406986341803313884316507606326782111044327828724889125010850719780887273471909812027712788707052688349229202393863988391741325706552548864831416683767307328391457696024615421873939937072366929289797229547232524738919525223814927202874033420357251611280765519763038042970877339923534147255927350505200994778529704323650359476023643581958047714804123466203922490278598689350158992269101812150857766641634656957921459056607369016519748241771368753772099322840098032183180524695458325589916489914970003225209507819731583081452650768627764796695655881454421628714360943434250154941608721729991241400333227463624431321767218140571183696313558495818222021771799773386839214483310016194483210820266715057512815288318837569797055365409442642847891407636795626566145396678229446150788736956563777860973477072651531193483466994648339614854381650714826480874668177099812941432949445065549203556911642731537615672289052025977485758193009970616143454317457855785825157505965764055135122777257503864560758056947155676154899266841924751947831042207455407565283898328876570103116125517307107307130270888232983687404053345609581175462498762668236283060715959596680542708242728214466645029676496175624298418409735870892599146403047016338463324633354187758366911584942527574215131610933991332870773105609481222369989603400741789432603260320236213562834761358341937773413297063451991831907281016658711664191688271333521811816708856681019162877292859271873190414260999570965291349750640614604962397861033720317452694241394440042074053436604806050783200324493494882439442849896131491667403356138547884715043766500492861400749721119672180631464263690576671739857275657011158254240451373050967908719550682844368279993715692671223717247071974037799254434324805541246331320648499592121519175549338648393855313569815809671667617596167580277860128141565401064203220852474265787802423072693009711903985637285244985891014481362535613558348492666469039637875206888915885450151959361166630651631042428644324138523026653945136412849843262333686187257764098480890483180582324509979867367349169982769714549291351033508912749466709697296184373997326046686417627177691290011759017745906746344130666817562495957766191962867987488015987391722866615216141991658468327723539283051994991377526322476359209578990260420039030647057451932111348204768451787439818055757677502184253817643155354581540262394724971435495755260245684825511705743733396323863516385350613490663893145252466311914383289162608942338138857594753823981231373453234956885749893047157794615371541165681907245094789091706691147194541421779394407063620568118792773558045714489840373847250942914729836303960070188208303608534430719703344627050272580320863956331504679045290337815332775205376843460507189611742035444924899251027203499754050992908261019036959742395452475150445704642252407476877793836065074971500149434617243074208334854587005925658872615785332130267074356098891959853688972969174936258565421356525839038438713902115046121340951730514365267279790300656521406947098744040430921425890595490700292352513487120788109917188348688830244223765354199948924605772518376013847295788896737706177665681847593586497051215959503825668811706396249620010098772625573177274104346553995257196338441843817309639110790180385855282518450613642074900040285150499335153498988414847606136041214270805242022925485304431164361464839888314884209267841522724771739903792517732437255445193733223986630232917354340103912866300508869469194349869178525063647205584340650311178377124700502209252512490100955194297296390717196133975763176899343923748262253976679267509318138772321981175325512592296331404105978938065218385605814465653484177844411802600115590615730227011069258262251842512676991450025763689128360949407438857087739188668991241554635543810510100886274107510578801029905681944032067875946873037885553119792708834728178510096320023528960772219572606645567990377722998375087895776465892255265410918966094733930767915489036125751213449407047642065455475236864012414280887039161354895387023436054153122097764226207733293884132076411881818127468798246157893290042412041519450610776640110154628054188859311287088411158454658633149308477737583028605537861461103407276827923904921999101732514207354682053085370755127506463185724869830742817026205650568718241503216766294429190221530546447379764558474841060641923350573359887611445059644347916613306677997879005484551572104402062424580764619164463740071336077236038635396146742839683500343216689224425872475713096209524255104711610879603392469184925074958383418157510362436917184313959265923794326789515764161063197537218691295139151499054621444441715332782031322008184961911544321670030013595250186927586158706980615108590969211214074545038809965623887517463783327697868439512013320448159479858728606243976493044567586499925101734876571420841737493241626643933710126845070701648306808232008936329859462265207844585794052323726046080538888130450351831131649702610379783860054218707943741275218797053038561682205891936736236075424865959456922306142454786905182747163056974791684225617770584872412843235674856672631009392338793637270385622283373057304982914004098396571104424498599909962613836872436310353313979867213260809893694432050306420401077623405368397265768045518434567541953519115774671888460800059716020591011635451103305980034396697347478442372962762037424436144553915877255062118738738595293832852379590433951365437093940628108249972045919066936261375615457609132754094407056212280824571392618300181858199580766512397712890630994641424978171867154934540999097751346546802114900228425527728286956529496404595055161580097694200201682564322256932692967924520746181170506115991507315053018715943174579426155861256594198468277647858717030596940624725787684001835400559084282701744027880658876723621351668011580858494138036727568512357006535442333221350104112859555541703433180792399122334358295705816812233481478552669055119986784044630241949664277047122208733008061864745948360212630720672636275804294824396887264679909311918287275980237438959782457704080181416414861137767154420674675128528100047336233404199014799798979822025499556876597570232052169819846612425885650466427011407278030007785446066571062557658888936033781922592386180195798686990403981363256337610243749739769753446129217421647200493820893267532978158962316418523173894522366545930947143754359976446864768267995010105528981943793319389917047315987443977283727319695384736835337643988062660725871520467187943112203509076753336251372394506207195340500738265620415075476470632640823271190242632978575407489860752525413017075609993801999762822516891002308209091400142392221108561376239532832329374729579933257349631477958859362324732281924128414772195846768775234153202831130707544656503582193171741298982113428693648854550709307263300087369777010492252912241633867712803495934751980675624669280855407207097923578901881221104565839460291006158013593773296290982774825038748089513918754517597481074297346053389619553231494667145942953693486715819154720607391755824930128525690576848707248162803188327382549680177357105200129943789341037563508974613666784892721469663679402986745289444632700798796678718912320929770297553253215163990617269332193193834359425445215780348907475556585117405507142428652356214395889427355174293623801093009223563537490350411800292838080376543776233971950588442900460559113145930854839272226018223098411604920655995463520157506783321556905472084439428425108469472514007753794288153026563094999585950721717213588561538286203149715401076643088953363211919176798139107031387116778200637403787816074980727268747724634568865575204974728374922948635385592085425469565423726044363720880874444130104699216194789845009863572508616696492263790138666804837636972208186769868108033914249953457997425839844017292268718010648919439247713015104726405759097157250664524700167118323177534931832247524125925597104189379360852740118055088055510693024152252700438923166516082587514010710668043252601360646574604936837533760486319180960445640457478199267748142208619256207319986387622177682895619729176478664281561432643880326293305935463047833807598044234694897232685580619702776863565055638642254692195281070632470093261742102402380332550495284480941710960141889959731306548489459409570077901155327291499363853735953986145425885905372746571943296131070421426399077484353731192093644194581139578133121657995803127004148795212536604149656427487894679762633669775288029272040338823227053872600897780809617110150252001812226355410803964322590146266252968746201596005591360432903437282137509757649862063052441289131034518214119790324777939514670907181563857109033868667174585233012871545147480338547191059395699617193445052647344840907138185956946798270455911923016375364310823424894945387832530439855320358352620136836925976446552249808768773442410905800668112791374597715742483716255448128142459197247016990421687008323848843142362726575776297700026463352822584965280195100605189436237788493985483758012819147662858816294358034104496911067537472416758816208125626389930033371275083901897199659759561315402092610716853955010170050801077626800302583956094267514530304597193440883067453942431457205234938572846591827039788735279476488207781010532266135170487784788046693101171323344742071704272561111642875670140465384179571101048134666828490460235945944035319487002592030948136472886635622328149601731342855359601590006953554413328295856467738573049160841479594766085696464662486080902231841682395533396257086257700614476953911269784435979631053624606225721397017739751419278891175691480946067613149126768504651330177497399603449574587938539053248877303530779498104382367109195910962923404054179067062412250242046404140318845350577349916339485607969169355743259089159341118311755511525859883513780787793970002638681557955729350021479184971912796905892353644821468800684727087443825357065995056497346480861196902092905405143701755599493738010532234094002379956364353163579716143624426072688089005663907964869515921583934275623648991429379096437691577349370200388882346193431384551160123974461472091050757446586817731064676260236163604872405172525979713669717516301886938206972821904988799925611603656356074363976242948431513146566934213327761552042167730923585422899375217246390864961816875279134195623265292600648130159635939767702621547978562575335833537905120604524852771300512400011308953608262383430788016984027120099914874107385662164637429785884064229300323452717656817908656698522872912015015412613672940741133247258348770295876059129259791728833119521640794971148625782276743531520587268798457786582845320099749753321821827968794757070964388208549048987144835252278118190637470168249037994547420556031153106048433559787839938020237760652001002882371183321803008423526598505177362986031545071866010813928374537549049401245170682623017334380115096378070749372476076303231410009283244852693302708684368577070095276557516796557215311054604784778213808185489327299606118202416464073555827794655517611329953851225781819152565500951952511968506392890670178644493694092464871459058927463921945440585583966841713134892369535959787150789588597860386621728266757478755690561075800192089270686096092076984942452940646556622651597552369232902352705726438232148305628202460803527638992077829488077196225184829614991868942691367508353984592560177336953055723090477022126396970400588715367724646853689078246412748187120345096753239737270667784561901491810148054359680330188628920965471846139012351017356659621643020808700565557188986727202879139835810922852274346176738426098020840477613534838169614910421575558921133560876722566546569363198170416271896395846169942971544976554047102406238164873968335924176379227043246172747475584415287808006111686717450813486052477661208004796983225316634505757919087561513108202215442245008910703409578706198211946918127195768490376342934070464702389770233106780443219363277774762884635353361892833314435249853225478126998741072210572137879739063118429355661537657923656433260118828408894197993057120791913807066067938490028680453175333021138866790633120707552362135064222674411703382500115066309139973570251720276524401205679680034788158968128260770377559146722101613215112584746940795264799691201629071806001476128970269759469539930736479838251616319458588609279275010094338712893602677115598689499111655034990621897272289695984254456502838097493309981528698826652815980073520064480916332905548792218457615450416140480056081728888878282418897269093765479231491803816578518875726298978504595360889473725204279303486168137066456407606414153585242160431503958340599617646422239487329275753831423471433460322147993562672897026663540009515700570358966429905040386879462591215511114097629530789844410167585388844080699122090670955688844710645196771663459844143799779124812091838655618186809297227715190717480495852445406101907533759303715016964115088263105883686295802705253312549910726918251009907017181286806200565622835965845709564898775534891663677005569317508178665432796197287688027724469312283991683674991203687826409597055800588038391602307312971935657262582348853251068095345952536272349523298753421411014515846256663936164107202980445844109198020162377828914918179703150976220246150374974198898488976757724997525618829089562615450564553634077936641283538284218773961453596142918997512003446978597556787353223821819042551908373600092330602043633882682386572078780690495953488104040142497858464908928427742168666569468562663768151679925283330393445122818483004834861627770573154988814815081171144599712164498397814271552273153539740011304294216691494692443172412859395013860685790911136664598217310335149756344624770416401995190132644415420246851266159351264291149567999313148964159140824859083115009647547046218383733549095731093570989277920874333118350945393887432646049359346745596320858050610137059997273757425568479643374940943714559688043724064774826154624083355472621787231831062221055400524802905143862996889691398369643867035111848741619637973185697321694459970033284191320577966523929654431020929292514203872928431440917573540896096930022649515405840707652253837933653311132466889392988006776936038799046795415531370547419105664802974143994387288890948343442391360889655286730449170618127223208862440114532297069130893948017002827731163237240851460550885404179363055048734661982118325353896119417480145172742629577458778152570039664969948926523606070739777156292480235372747193571020293836406599660058428647836617757471817147663885853978306214152553542348145726918259119993866734462629928909749559929475754668419100640163193054942209888982790271741519410790810222802894159002207261389897653830855430606590502942636190885581784584095440264102872134748842115715272957575585323661383609611917967109822714576370566200372824217711333517406389983736692888561023092109778328292702852285783087494700895923454626620496207216997897698699960847571658929364211223424021806453492211558478575646906861664377933558613537260894961969758822031210399776003816538102870081745907178043247114954553582237987080907041695546120637461078303206360298552766345712735667550958873768792897868290455653255986556214790221223268041355468945311631325518397030329295133801310274249221123198278740965759798044388008659275606586034872292937082810505050977770490968895301266945017406085720806057963327987334033022503403886646858077218963686207013114222876976083870939016254271010964307991736722983954615007151981172919643272148029097069884953979337503424705520020050771591371830303134369393480535617702861219672180943195121374222191151795331096066150514136486772130047611077212570365567367680577639829066556150160409702765870438383770475302340693338207726466959443169376807778551745002609802575200356575042788586645211333980353746932753082812532786937136118716175674838284469126548081287642495684420632732740401732522311353044690894911240359089166400435663712584860851335801280629374660623210549910004642267552671034037199731104344791135425417831580696854507876476717716568406782162415602583803393432530520360315881049599577658209305127185889218452662621627261017151086272114282274307137691867702379952691215462712535145514756839646430689890215887366365203216444653555791965902184797103240111811634146648566414797120045738351019320896559446577909535021974545549393990608919948838983647948697119017866336201654402625556513127445825075770633729904639125040296117417021007103344778092861011838193678100386206704429699372978992614709671654754915190771520366513193880493853634564253989205123216826552408362781436844853641371436044475449102163040284400758787423473666815850875734395318530613003389604030374907841566738659094805882061183835366384108476275515489352747828804083397254318975554600060906250160266631248705819243491843699455545763867799965618510353816257826435971077610296051117658369066542871723679414474833168501560093213300043921212098153797931429258133157004600356027849730143819822890707313716128518387487703147920231652861943555656313425723185063098549746164410004805631641217372990999632802776454325655866666191804143685906414238765259968141755860830245018625817926345482255567432782555162094142853377052842402789059534258733524757237460729883883467247819015831543849596013651278956710633514097097992348506945395182766750288305498701610921343085640944441597516612629067638846570622489257609938274789844738253461084843867970407390840524523505857563134723817358057256410764553537997358488915851222363797188457542636468213749375401919904357653290043126304199838045426057948512806839966359756234141465622717522133831472505728518963246724381140790077627420784718514569046459950983812012541065845763377881943464154841068753249138043295522683199317659775950306304011521200078175335821513168374390614094021822239272763151185017356935304363365490444532089634872422350642099030174788175866500490852703226464907857225815007770106364785085973508054497023054540422603189932027710713315530541924676691089992026470140854276595235512695793341892202643894048580752590701017462503925436605725526017206052855924538123241500316979235378490918824082039844182007397338849182437782596082839314002039029530102886371359494616611041513733201841582712766985753370857853221690393328636563598283370194240338694081369625188306890882255520340136350737582478815118655488680886306552941633514054878003868646354715436757634030843721092498252740297770522070563428439171312533703125560528681899390925800908217907709896424654722772228268165093924412689636194706841731638734856638895835316250511153921083146525706954694791783479015599511446671295583107387941239617468038339395129677428925711540580196470710515704844696986765022317206101937427743982478753361301602187911297960885743608558644016222965416353970005214528021935195547170033673967206726489544278731075791975298084412130668257920974003685227183040038188705430490219513859672094253981317841050604250469623879086064780788221468068017848220759681954631665359255996826648219144590375428827851334152918336056546875955130494693308124767521933501761550198540389769889168945121243254081854421128204154611701590246761942119165607077674409745131028223507666345380737659645651905331298835411279990811001915048193840128835717956097130695603021959598091108026009302013835837714521013309055587129164853107631837322105973066517905616068184234232278504987529138799292023485629763986537005071449784853842628992209125026793191237523005825239556124053633307901891051442707829808530936178431815571819376083476913420588920582018333953940807040635408444480390741672690398995337631947616788585781542822308380906664142265586966260983091649819639278942184310939793389942544443793106147045662348062879845552078958593399923513277638286099554400500755346424093569831340525048503539644572454994478684402435414609608147226548830071074884147057052281679089280296961090946639593615231593099972012813350961435006351922279543527013027218971284640287625752738371571243131663967178054433454969345923023207087721845171701820719436952105245239298351579573509824541555299028704437304255936668684983135258867830894310953315552240087402447724286039869562683775538845849253521259071271968929965930892450230482216833609145292244422187293565607278855899111339619346461181943792217208580780822996289868458088888105938803755671136515982309168613470499314058781363860931691948339708539880012379005037625365555447989589437194680969130481776530813991476733117277173533533280782240453826878369561628083843841495664055844780264027257863393071791818274844374425436462909316726380875142938519100443519022242003092217842207246772296091880303330561941338144619010651483371687796693183517447850909653621381354176229062111811131897769864818254629742354540493321187410067080401001230691893456432464300308588643512096611501079569852149481127892253500993662098889143881504018353520267952998644699138571603953309122671244381112412254029751921750661098310825426554128189654347495345969259957173599156366988201813117680159536635536442297513395077908786189309169650745312531473984932421387287941015162813613154953663457015075060733900223193603891565030241372924929611473748740044466119144958060259458786982833869347295726296750102688086694948558773144307637525588567797035976829142105532226335817672415456942661534440341160035811382209997399234295740962152179377357340915149546215193680304692090063489773555642752566954888901494932655870624234271652374726853556097136445405853680596650560781716821627897299705618667179224743620286932822850034167473909362816650469861155754666469923219009525197744911452094846314056812107748756047759472756089673286236003684910482490063283967974864719674295676094078991393063778457466589307662712849500281083305783171992584084643537365283557066203601842864654159080215912209762888309195857117382182211941570770051922512520877952892794572348718627285083848151434818339007518956786244847541164823608451521356716119366362642034544530337323613265037286465514870068478735716696848280057888013219456629468916597983340041220875759910941202711204989336887517005902948726955667229006179587517535059513046225035111958533246130735736779821714239010380774108004049852133000029590603366646805851473230617923182244861010794210598763003426683864097888596174066276333541285087119100611399781898794136097860506967398609190191676599432380830444224968533794662298549251711580590546447014616964092797551381598438192094577205513277329035770078447560569693749357955937348365755166010067886880160957139102949003643716897911412275055072685775935784913783277594333266218365991894382487328323911716683361588124679328600461614027826904675912501474420421245842085629439243459162810683555730267138576214317820657526635150470614111452296939390215422342543776296676218249877840936362700833245322163845036526646961715827540887340005441397470494305900479211434226080393990315151391156541304242017586472322773805570482477651723817556661273358720886798801411006777529925142119687638902899205927207283597260160120062867710402956944086031966560349838031954232223835306956992894896786352249410586770781472469240539990457099867844544486748058710664299018168654634230110102151333302424543879371485083832835116018972610663465937488313246573271136821637081807365512254122141159075163459910600334549432069217670453623102434121544626076282048579273961444660681257656537976145275424897700902776515910782356064777743478741641400849482108884523630708855062215852054344671219085478631319806385600623655457008019437335816637470376864397750010594282814510950242598434301976048745375174745671315322179585004084957653792464330005539909331775200592143388217111231176609824394758826929707042134040266287264446808669134719394082109470244051515491500917148457981777535569270896658969460916302068198454309949702541256706721126249267400239071922883702862081941977368391868200969256553877444438610562128077302431300929396339866422629498469840791348497976665696588939490552864423738907587353587419262803120955552870840144975022185326132151164088569016339516556907527206487105991483241604704217851965248832128743396770860686170936125446478777616473118018875306445614542771488768688602973396948502343163730602857595318200931371812043677766799318621236147187462537160245348874546898265090402705170577073677566312172998377412165907241593159565017039876785318421221668921445104910508050023947067099243641454581802040660904427254504505075949492435275068353881103827848611860905910666923517340798873830191052332620815609849989465301710520060550151505183898714182543871179461255335956423229212802384672053340913507454323891415161522519770508635864902293082707618773343995477546625052770776474603485524478899687379486872058538933737341283926315805841844711044988700653582210609828199164573910618541231061818536799111507738181756286794034429385375264717723709567258332409526598958749210230839939272128628418904168965248981070396597280132242683564262344520295559177519937474054260039891700449788796334819751785786932454671538615163107215608169494766006788678279991176847931169124997236631780638146397352800351092703409692057206555410718259085280348473509468543500884499229377863692845602273725283735566570332127694633616116715523334490275314013914160022491726594561576481079237866919783399748096441989762678805816417183894410136956095657940253550354471133037721997907879586931583370075541002330944001995023112977886773313033474257828212697021425531948164292816891968209660427968556693974684869938518421271865864785347319146812998385993287586996379093727404032261766317594392772907367493857163694659486451100733218728640528990185672377999922393097575342514297938859986749587732838084036548116534804413487241439304625657272685807603851207805482645990014863717584158849791670419411150566859189769754212995737534755572408646693224385104146472659157285312293490561564941942814382317194531494452083000201582567455503098534838893321364723273384995308895681233682533610262527508590284733650956859024493478786938846422856456866609799109029719562396940402327497954325691031030808266698756798476776102805191762812942717315043110936439838824615213504577018933586779843460470385854888310428177330514241081029413660175479595941682175164286097353255186107537112117989694237263419211325437725684412588862967429017524102944648722410242007736974683485246946044185915981765057401220202506592984855151679740289655189688285617207378237139636041441211932404564342719906871633876992824190072607252564189703397613100940477330949145338427706430381196270763047150226007850852059089898238112657580243173923902091437325282786811909853829179736683912953816341767865499890316082656415004670774602529532193957126764540293079552343648057817251362127237661813256465380409677747466010570039083825020441615560435317144788070922643037320534856316417323659057771940326856985726539979172555491786091050876654552949815066884774449439085209304469669848747859937956406230338461117538744334592438587492128528798740100271243968868880065519012724568259728054210553605149524199251572687171160948261447182351102039497102159317403505829983668662106530466887610505682370569772757177398647722357553755115720959153336834326910309716048536864263029472744179781137261788003102990166337894155366361455062346588006797435681825145295663291560814081833126701081303487705448274205214681560653383166671939887501298676949552326939572268334653529767883546534930854171918314424172137184850755176551576553442037900455562557978914450395116294636126574501797153882949648873028400906139451867884104029443771674188672708050980099753276305891137565637094625726362803177184432362050644643283797522583549582358361104112853316410474695516287359152877480096225837232069972156111054957282361966910351451622871314435738840704181198307165308078153409041840143228704035563664523588613291226356855520097907069276458263989159530576825752596895654773406467730321384925839879490760910403991334265970192095914225028288904305477706338585823850040119379226311392489578513121019567005080492750285414053809307293238645597173300431401177877677945107514058813385508232251265883390104267762094397817147177330509667960140692080743400096528478179824171654984750815734055407953488300298614429200361901654763851667842978875005873584882296897805438045776609919682328831571951998065425562323757098205233504099972061264625330690071612164079540430444760216158425773598694282499171545959600963293963667060314060732003098483122466955134930925538640721422414232645602499402831272212769864207138607154208707058534214455048530213886989781069485354184797471761344315635406893988057172051329282459172103391779032332530468741001295742043226835833764572000564041422589455721458351977816361734315124058256423978094131048329366307729749272926217560994035907949911279368772040049753929318429493276994777803549060038998425187419956052444402413221661935926720964641530839862086540369503835866352959342027123285328367268529458122233075815348747842656156132603966841468974525620250673052980971463667642515533970549513149090028721859426822097205057030977536800317888969057263445402572878027948987553714381627392295031054276078203258134685249675069189926667020832872302184469206332001186742862640534536238295681611346023461191162005482765998625764883487350510459745609463428344828482828858153926835592798031244705638256647126754278292161098513385521789381760616474219883797463237288717486693227567593567540883751180231194439886091074855972802082016497371522483605523308340594497198152431935536200875319856840235975522717875248951233898643038995661400403110257806541988884500841214776804825943769802878117366442418536427990608923733121987832472476559497650526584041666106462507324428784017842561983061074592654820588050670571343461025668871352270708882355931489946508779071990077289336396799428620140828194983823212502968080646762770028006173152771626770351911065978313069460348175447932518800174461403173947465001055064627511337595115172026157624752964377394887185619139436786375669389367116475360884485662312660343344705967877780329351920150403805515083680566006345391046768557039174437423580660775558701371565848587990200713373622700331977998450488743001705510484222486972911148576101239676535036665329958401666720541041536138243831145838058195102643725168257419979645860876904658856443490405022610883664618696766796579272889121670319813306021572977729559782988583482048135935989867335270877150648344566728493273798919074658708400127699580191336201594950776587965242839008204690973760155224898287398913275417538522257317811889639179192932013544339039822523909665170970422684267620877392022051757382488715970429462847731929176942327320405197541780041237810697910491636286688620213158061462922672649572446861571729018654976596478561363481324173810628970860612154244485263975021180489435427693817979546333945627206399331258612139340462954713907882393072397949261630422718411668020896760685646331891590255526986857138907826096995723801146936006171523887657510053743166992619393899688224247836256071851722373706107764171896249342401276052371743825049595363388264469655891563819115769830829718278713294179010886432539420578154465165015639909585410238237315906280473733884774392828087762995227354857860192974599032380822300408624617758666581675780242902008590806850993936016538726120340342102625909544264608578367152346361988394444002856424392403147367433308010019346375630402467411748686531506589412377288366629855025640307883081584011671517652107163889667605507391350467474255818465105945870559272821009747722533447406906670242894162040041576748692654725688125432860533643133826610231713938053737728637192261165849555962374205801738563371321495737507818147078060894442805732714340348119803103452426886281744130134730897974802788713257669460139260693149438274520134385505448395301306317491737774482141269607675510557974604957806596014783427241032053766939302698183153185775696670290088761044117705197536913027353052087086895949566525271876685533021123787172584071421591647782884009365891956853373287757364998012852434673671190922852621452091379991392232399176816099540619636784599667807118362248640626135574799755111086591361366361167886924112901067442919443429634981639341972631759454378400977563325757773376226019841233589136544902742466313771131520010159839395323917474989034815310092106760473079288243562820679435606618421667866217934655878529755015031142545142070659946132168108238827976580805929164901411859111471026028812312420789336735747924811999613805043004099329545914184256080370423189828564707851430019124199556080825178569771540148872568276732818371701065313442177055335869195472510571525314150426333453767708455085402405801561723782557131140362940161458599968257692762046311855398477705231979131399691545926391507445910956466707529814369896931611470504984381322839606100030974910377927974137265540181606240986800516212490448619040226588752921096314040739680829633240035782206402003276380829294765691471405456728737426269555217667286124208837742573785478503511918220856732940633324722277797210987899493854115937763208166390351925381211267083526520058905652924598790355012486150500623433789035007180705961000524480560017164419167305303027327900824000831764096724005413476254369753042881842058222224259858647744828165006881217772419829176727264899812763320443069537678092345493716707064420226756680764104234962063325898428150466596386380521482876006115015578022126639442310392817039885982023085992095292422848236651306996311187998337634643083807587369736921878050397237711771842086199923240181477642020872025050617660312285117599632725986007680866749506648238124224823602202067548177416399947211089580595707323690792187456869311339318987690351864581483014655473936119213031011465211894206925760175652791970255151635816004498416600819417401182890754855745564623542622931300225947638230074383008789032912218050437441256770966216827823690032686523209649685895665874592238642033565968342449293613592291497961921470304373918787767498223479102997609838087327993946438014724291731326765397812897635490886580143493757245694076088029157157901591685967162966127251405732021685246179624126272353116397240392881536829869159217610781611835084305070137244264860198609939842473585945705695967588049873109733633492434853316555854676506124779821752898545402642626357061399671435392895783086222190423428642425407469390801618517772040345023389665155971058863089892948365227623587505164496785770484696303086625341087690484178629520667192229553659594463447468904508880242363600995370884831272977570963801462003723697577362034843717110149789913746623336226695107130778513711841044575511162661105129054643507402631974467088956149761584038804643115406499015231750238306425820385329968978943289546073201943357283798175271154478472394498236743331049608900329017279726582091613587061846131079815346831232911764301315098714146113587577752578461542824199489679885297993554171327899097028574474618897092940634539392411525967701407346655232672979672168877974457551997789240405459373121372572027845228582146189195364299600781387557414293036903692026850345451425674261206816833012718699884297479503213612198193681246740932503034134187398545182227969299057882170992259972112003756437502491919836363648654440011368485339140670591550983529552016951307440615110818809545875459271901747147257231528843505275586743787774705880249345471407606430594685735082445449596117819846885924225774408646365268441283268265338506367144608640125313212473997257900249484588674216893221723906902615027061536713228745249663855177807855004993132923519937519973665786642283575685738916099461944117667548579795796840348242108044054410977189044859419651926769429689861848069475299018771833149286189445049337834280638038887413556996017173039384308160311476312863571443484218460531394597613600659498883141412274931391295616903054033123318962519281599561943398779421834437251022909040476951275563192594183437142549863256844069818783748489544778547913598868157451030785305745250413549494094123410038217215558609050824192374677778713681892951212878519871571217222000186690395215265788074507286709070140655620107059897268771531306988342848184937722380150436413989718272459147344070459931402398453942431839982272111953198397535193603385250662413941151818612683813953058032557793899269139258012113902160203263772546713286974664375640785764738453504942479247525382140843015880935659321507995251885580997901393340395426966381851511448783010776403995764469582700673051367592095263903157683490481192940207151733207940959762815232546775239461247421545268551298532073603169966915297983078414940203601245809288976753929285568373722332434960352444854427449994267133066300884899793614862672160860976244140672464268773788630834712231148576787080220350026836452931060453666976899518320999837442064747037654573719504501842402357110572580492832741594111238139015605350782524891521959768507841738275916336008659096956911336803951778512827793494239356741300213931861625458683847367684175752270721028271678652746066265270180792446905245468101539517375505682029033038187431543596440943114895264285306540003872955138071327840254972206828753669320348186658805976528871892837602712412883126501959628239816023468553205749066449267979583759777156014500287107322168653509542607019621375692545942024306321801349128344412145646482330621786229252726881132519494585151571276859557058699283067589253204858215495606694486126226834651995554969959458733506352511105999991676923783710219598785402053616974922580227684644516676029179057751173953524805444977891687310083800863392131069618851909602660553780138655034394573668023611801724265177933114444086138782004013085451534917672401013507386096565306768531736659597565630157162740248721069965833980420789851813638324570555193673686387024360847595499379941309972061128982947281543610818501037198220083687816975126103633939780245941261414002212728283942300585202372189162604507751347238815975015882278341326030203239910788843345629881103164960705828034486591964412027298876607142168200657328392742176578477683729274736675827673803274938762199195482311648373989886737032375419098744334621157476033981231561789859522378330348572869831323475380172729585378658935565360532010768763452503808675781690502860823916969586481275180887040749191140661277762606029875439773204514214636133563757737055075943980727197034650597501670752537313579366010879891653126242682681670099098765361385704118765134066663291496174628194977746898294444865343867109685965894553923226767223461361475280515444894502883915826314157810818963086392055993965678932655728314062669358757606293157260437483650102890639008100589875931855485651651375893192577565037078039454111848484059107740851536594917607744709051282666184465160076892140136567357322151233016766182258958954775265397417915134633106310179537579728133962420815361365887731876322948481747517001584158799194044313501492220824816644628454513456658470564989965871120102485864287239553999218545524720300346354131765299529452731795760495802173525719948418176488089414502939334768015581165147864459444463026192252697682001488769520731598581680667495751965666349656808378415939259671425010570138483501634587032107515933469413386504919297263334646385258100428897791931583311490486951813850248805756229052601561411238387688330729260115857461950476513377249854299669159632380725621067159831269273052627256064950640375496677170636576660234264233855975606993915285764272174553360403675491678574502162676852441739204552212426727397639239508691197553210637689453533782008501207387457599944530164869827911799458541167726745624998539784451144219776682392304933023030818797161846456905503797400244443224489224907571115838147285810580126514955466748860131245645042545858596313965368385143588719509585387891807262424129441939597111644122964575049316663184706356364078819788078746086485082659251681773089052820911885405870373770891925881322112786636073328841239884922703526839175956957382471841155387392851409130609703282828325383684677398796588445188077908873216958456906761376277691330521333359765376590251827920086294833725705534239050464020629691002025208296536762808851415433085484378754058899584907094291726749470314869023319971227159154648028135191703564223687245697551217907162975781643838773374950484100092385731568919683680496776835254600340175213333048690477861830693256176588270632480905957382676460389276023437595289445655078197722271060704955930207896843470124488888810081196675614522818039011367184796212046017646312765419569173575380747969448420469161494273541393940192415366791646023776466458948428929396075297868623972981542356891498000825510771578321188847535606384617064155657672365106601081724571970339990962686203603382361817533310558552873463564374861570907993433402244324732127733262891775693929978021150027470154712041501419710752989585481007613276845445163446494394530272213386160639620178746633885303094505040953488393199380791025335389680936741040430674323220917296419879437132491861909987417392895965260717452673611041574997527687843940020164735695768896650743328034608857338877434704465385932888886037377927446502983551949385118067072288082468730185565258854328778349612789058070256337637387560373938288270691535788049348113001046388573378526079058684570652356885274884253663443525161901525269963474935466995659987390460020189764918812111015240125967363487824003099672463103842585105014401822311648975308723114873246292401415094062533233330168961201257301427639301108091458189001291427311008198489332522369919773219097289725197430055557557198624526860476315888828767747279524630240909004191899746670960275160811149338758875320740668184085795538849245116872913272372201446128606911941403873277963015300635730515942581389591114388089571390986476743298651194645825454080677467642437464018174944398571393668631360317763731017424884473223371526423636122366920615641599025634248291356233635226307983161241853014317740056444844463589401680298025729028716348107885396560371328192874486906735613745551932210468471148848246010012236935676152117918013157429895877708255414981171401142761745743620804295382015732643457542893843779062689449284762461394602269766383321026762130880111169902664610250768113485286697850288424831347417539311071960974291000006092939483414409322587331857064723725053193136116898843216128336098301421805739489525947752198235899465025911609442585357442101526496400920338146382269131428162166347281907935854316359996521308164591683769144725852356603674874836334957632605222272817827739880181727012695184753430251942498235755573488814594553709604777323289375345129046358483804585789007822197702947292715506861703508234492923501027184897447577846817909691076792503330698123162510443166828693362845120136223530219298335502278541161561742257370088895593294644836126646759256397461392487816660555027733860100677843918221960544008662089216757237476634897614112789835040824606283505420664668290090290220647646778161826027775434175591112982636198545670208802262705839545920777726569454041372763063678917364169234004386919866910493973988135255120196499754273873521418186993532088179295223262290555400064226103855639500033361545134960076065678433310146988164002046753746205601847301305066262844828552953451953663710606519700596799380869436965090039094630033189598700879866197631896752823649536567365709337716591172052297704388917761828183978409326936846961895770668101140675368067972568749309620093557508671178364115212467293270085709707611773266388138542816607251345484561262956982815562769298368103047036057747089589474141977333283021126890723826183835378850603555657335215566739172103868768109919081788108266034073255655922073074296658654777435343882868370884137850832919755383464997755733862961429633614483311970886428467986038107851962330447240364964482378526148252350037293124379997570453463478537444574338893686713789442205302570888412617797758509090310383737208737398219422185902854541876812883168034610772991674756437601106157216625601154983488039476814008981813821867192393409432359434024525761393286070586588630729504086445058918890433956161596090337762625666090073960287540478512933880622404946021175942338993862306217308195955348927887926070998680214512943155604070200674744088623129522094899810665580092955498556139221572355702326584434417820536694257136352854644172918973302376667536183244395319213756130322654512504714584630901013371661890506615313754994636711330749306148078749325934453033658976571346857347124262907351963969358163613808001236757100635288505889156925544050778343616874879673665230414199103259979094169075487827726344386758202768219081878053061276916584244128284855712833459346539684910537832528579997889958389413822730859083730319170157595602207972970458638698777041446361198066861404426979941064555758875764907422862659100687429207227722100299621970972785682699285770093783766856885604944926649394375072763886515087795867846950504942377984540174586908490473610310313862459501102835753246457382774961502015660614877299726671973442142399662893411863575707862322785926505858707981891393273945422013816291991397482417325719049036616065496122256808467949926743743111828259336797555653477115394289929739463435204654780721577921664603478201276597947458890062547534886273146349882877877839418386522675937462052288976585908017047310474824648693459884812433376244089484038235263465068177243776155995620526339547206921698367012760012422137217079901902850337321601339604319857018699242714126440616903826812889109662101451018077305972473263752548652567421729456507938609055429069738101062833129351203092628124989581326622972822834457104940632530569196501238503533623241562292126120933573793856118262353427151649780802171802598966972620501828776326394650075994527640870967141996245893017986786799500631942710560028877459659627452046050375047349873293025224565338449546633741051822281107557244306601763971630787099954515933200114975681514368680348984837241480823354970322152928505877250530300134078760198943199156939939424792350973450732136520785327446911323850808861419647370776352102132447773257001405839145601855390041602839535038307188024739654333947846591341014160928589233339385668877609383656340782175312146950949934964014844078756622662394027734069772657475003635543136985697341928672852840153157546200563936700999132296583791994572786735714106986530430963482801707277994515564235853289757357324225114440909579371644361114689464614323166260360617677115930806816519920824692251800635925620800039592738571301913771023435733370676680545718045327983798660878370751058658036353074960153281437790166402598704110318982717528480307881181549328767273954819801696984877533114807330519297969987090965411075877362061825497422922085590863964922613156269680190378461369570589983503684340406985954264813342481921708956574928409416960882760029479306431434781716491239344697884604904344234721288269085774943680817186269891986889675857704314265084440712733897696967918021221254539313812037863410365620922184188134404673243386921969743061877611128551543062855900674952565475464577229975536989595323458878236289946956394024403991040971402275372112700455498392863560087209327702176332242590972198019888775713103873445160941962471237574582343327424144891418207116352519146118769583412089626231263085583479946301725970660094458913082335420057567958772158410266855057905490607154141817922184993906321674632725773024310744582689141823352561957011550763075538679343600865425885812343603583768594040367305388054081995974286078021933791261777715452629646266216331402146628529844947036675136825563353794293119700396664670039978974413616577700007779066244049392161426047853643501155986755673460979227899893250339279859452940539963164379232383588884080420949861166796247367193477043357951774123489520198014640954809434097166301750620830111998055866302420756617029435223576690869925939415409618829636607831357370483115960082532509094255458632036253139061894805275391791679407016172103547160850040440620779192094014494380381200646817589673355197787508999413432146698399316149054488351646233048620491556381715281974173759494186420716568195532094700246122585097534714214047945018351779233406986351907219296413712805639779284435820320793801735356396034531485157099968702676562788838578013089332071425617500791087046925929492723058175915408899600152736449189047574647129087963016519273744405797589268260005287586314630833124414813229566250958886713013625184560600824632188273446562465712995652434001133252899752405631221033772414907214254846474249208246171333652485407860202405897405470660969625702189549023489274751265839788019810714470181821509899844355268903701557473014517775388265373626166770731493873749246694816387504138427299498207903314628064408262572012553490343917128120794328645964898185280201612382467156342896905707364052681494946446295196633025495513525968172422649446397736101707543817028512970891888824923922469311990271489504922140920659759484101795509829448490303162316934897192735341029667092640862207295161763678083471900108967461650129472895463974256158507428457439451405819115942833591765268794718041479201228926120407160905723551200492626162402189719691874623091132623524858823784054525730739329669991484913178845542174992015269580222587214587191658042093650186675989623879249281579763702466537624698275343212537386046092933163870584937086046059601737662232624736532951647455868069230494043678168541853001475679536602636446789643726723475452340111695932605031656998271890894323720130384990721623124364962746785600386063547827894541417792609699228577273247062733796796069597967055731126547120239469936261885214460784855671602093091023426952337666397705998697855256404139394246591461237229805461018087021701886889026045318786326117710250512569179692109266029996410926248383736524060444976119051040609052383897954437932737861365706843358449458356242159339202579095619605627746446214319145004855899620670054364071583220983604943885869266432929007757589567162776288059022054478861168825979497899880909840500611037352963781040267558050399275235876482192532453759467728484836308679049566560026267326427533945183259993600626078190167871958921018642006112400293055243020600645330608844645848827057801669968167693927131385694325242585079078723940646420308682953577564751904989510501805204112272134303869329121017635194585026908474462573463872134725386441849613051946958042870382486145295258219549512696542393247703552598952799095738760283575128044454334641307821418282575077751220151107983751757332560940321874398118725688978464434790574119997897770669362617871589396014852034230201581637523058616408244884518479406536794058694640505660631815207964578083806171763655639556205851360112513582564693742553607178224682959109758800848692221842455855096738205143970495759218049424870613850551931242313976267637312114055961400583607903521731711793125156465490819311756165472606562764495825706988124421736898013077334011378557575429242470718196015102380680463265864935346591254213318055671977673840191068333745353110139695476381676497346845205721130443368544937724091308134883736948307892268509379485374275207686439146485490676189961437468629189212392326511007187068418448041785710814721409851553953544860487807812216337108377298636696871614801400298920315140463185562064402351664859727382410700925464482310562192904133676348014753533124729574041829791453250876032994641828240243264334176076151131371161333295064192256939094602408631245317108508193918880480345594635016350557559544818730578510478339529675549157382578410803990795779669591433081869066983442276056591639890092149473254648672306122372110524811960019374713001404109452254971931626087321751488692297598530456041697710808846103347401444180293737687019836138994500524802578507703713884715908300062935462045971470763262814325822037130649895760755276636257491614773769351600601338309285163449712309807395444856429802908691996699423835569097391479169019106446914626529346548084020763958305982426179192402464269895822071861568163474306242336814720552630523616228510438275012773989414799342725598799020087902871074458648314147783133039775589342409495187660937398293270865176678202219193911014766811333693281902907672033294654129346785605609252970398928921286660226898711757759468755971632258722375657802961883235028479557575991915564292076157043503316031966949219765818339064341203007135957591700245339690013901868017460032125662917607739887578287891452929826174174900636064710762357915254615263368459256591833322780225236663543312994076696237207584000648049834746320650907963901589674423506239886377277686715855193343248684117157478905519062992556098428768497945232295002031787914456773776451404517209943897654406100101514702013581872444111252938167542257409136163137683129897381566658574434028890198652990279664436939801053240994720892007967021327356482116457075255309857801306743217841683949135076147882603446785912248392958074013891735800654774118630238410644202908848987503401636678022039248702985278599330556442326443062887700035615945667089568308437912155080246725300025775970228892044302922382985717410370034181124985951320965943707840742728373592551775731060205153494895685308913814934765311161774892537772445489546743692198826959256709183303320880762809394399253423690390280593539027475922969262846851441333091427809374342497674615295318007008584648795607287179363768721876170952536936780140411953912757938974086379630123830545998625261703401531921577501405752434442038882031153833788400986824615260926816014120950194857885944151745002058329094594532904776246161163386175819843644822753261651952771096150522970092750260307647619672880176815787601672380891391407097797905949674479469989739206430411356295070995536366695176154182111880751430513048508831960822146425984761938953213620627851349953582447552497435938639943920697934225167671387867257618062795217379108948944453276644585738664170045559260973390385212540405572366385412529209628305058662544621233454916157617204967044751403710699941858556776155807835128823484827771022873500921608887295617546639800480664503699922635699141853834311209277645483787203302000472316404789220101798587675291845380362949590422157994585702621035069503720222127491566333316356155431640295710762762726675192039292411909810893716830873340612011144145755627114951452714179447314282807802760042252372228309910004331294790567673672886092432404574183596637374986579082544020529091280691412282629832035063748077022441174879163640752347899860002860454095012044983006196402651463861223134269116246240817823128931007555385270616566201172232909090863341835959715798866947077797234248493690294194272728462619969904328396581209063238567539771109372504902779189453322179848187173274375805567930362914141497797664382614648554738221593931623955664151681958268807127357001211322625398574996025661211944425758905839725977829614948669009456443774367278089000424114550817023448701272060580950175534304935958063803594568717678614132910130230374605295471602852628077633713120594621242725114094235387728385477248376523784716667724695938264342214245123969720958133902161269812752563465300961819216910419032011984084698418678783596197070722678247799634912113811322159098533946126870461427752773106686436603852081031040651884129096117118478380158766230713459571731528023662945945296510393494174265178122993984616788814138995887895584855847633070906557909478937581493155470881588925524787629227751953641329975178631193671200165923242195421022988638671343000214715561402396691595621895175777945585084587424541999805701467686839087774730260734554046917069986667596774685821499202166578789780280961909072663217274751768930244749515326944952255098349790754135135430828682638550702765525318783179387000814849316314613640847747089357869740394849200119778985703668689078418871033099846708816650120266331022534279449971545297565448807780359308354090777032064253609654047197964368978097113466147810700103103407258908091322412237235494268167272824078410123399614241822974105511555380090932080222187290852890515301334093561469216448424153833056293005905384708454812028235434300125384402870409330927865619901865410211018581854541208315843773172976419311290607955096211562244478465899211750786007749957031032566356464160182407556431206889174796475705218650197351640762005790375472279569688524527842079889376580250900604770859816247671325204045107883660214174057631735404528525807355198423272269023357016114339231942928884441362681019701853355090076188365941689293872894089457099829913931269725350797606527382116858194807304530746115206750772030401543581061733154097177866831846441319818054292270081885951538256873936373703981937521502381149511380616451331952326468317118513187397668406219069160189586970995910333817869660328675642446176222323766433637167070055462955980616222411476247161842831685339940277969157735689226491441040310058576542314030838983694911717723745014416759656772654299825980698237929846024906843048422138532587156485497606691962305474044933353765059869414066279823016117453346265241410611650751641331794291344834020729251344343414308684033456909169526873534533070490344821708118064216548511462945705582150037073555834156369715610559951463792419044906214352877261180671665161615196702738825589652495189772704264400031609649648657108358165596891981096512979071376278376478098376094473062271234289560743378235935846031110360068454607398944817471798969452162376011616936843824788705186894593207761392481494585025600232121319285246130903652676037165561138393006218417138365340368774788647131251022039602034919282272584162451825839637759801508999551667330940881231454542823269676159399422466544123169815634707006670149939679275242642765651395482905073040871541757062781315205812564501699031235859145725246831205402657018323314670425372222909014705172100013823379159641652229251447301088572446108911771281098287057731163549055259716146416620208516086170341757442624511418301415723443462575641606467052735182773034730830670805213685318117534325258516936706687377172241164379133431140055369657921211804889319682421606532194464930210999913891258776738418290745600479146213869201512041834587788404159033409466481505072445543031025833571006860778853055557431912323490736981279372066079058518631263102977166469781863744697402386345611880495710467327783575556829786662689796398491398869900553392744503469889470125922869996389353720256302665339536579298720857433848999514795729508059846616201582918675951515991472955555955017352393340167255414948324188457717529386185225370705972643908802454462647196575341007946046514151235262365902989337495848101414282926926673736576357001159067767932152115691398656559347475883855590363288396095916980164264198762816088513411396374193178401430224732278596361958727822107038542461620640353146478613882105798730501022735914479766699863390386215619511023297926519173506510743784210813254830764786256107029123057758636174328728741444115916398747046549055847325083056098712145338944852769485019516232390063177718853105187127848018314732139194130955254607601564254371260305348578197896050711984601204018473196924191176532365054313358845175728964338113137650518585976800939614823154780589836958918236493226772861692002632129497258455873869449754407598199125639020751698973326678836882410331388703685722953044079424721479669295644547726861962669743753860868196386179482835817813579570819149725053301615167107363797879218228552077986206591576081843931001121776611470802584591546800443712980006735816843123163059099123332439420311185416241679762924639673419153332230000731503475694112202310018349646345984187171127495507680237836883355126612033103650708983685857181995774169124402227222247734860716161112040407183357054301261087830033668947384965058836978298306491899399338571024226007974973295860123148744160145016572623701618800153989520633152854775844223389122669384717601323149110165403534217010854929822920012734189946276597034551390726821079166129508988458280683776299604528737241590266882379670895884340199045642587409139799682226946779708520626860089535785462006799292111480427634738707418503145640976750188489610856855265244923269256316459491570182287037510811518408290751343263598870128098997762297987335216585353611716581383391341150729254338168075399147348784333283086750940053507863057051852236686828627634018307426971502409464464855200182431138892838458930977081605048936957325150961654424083189274540002274370082388220421306095831581014462993597266533559537415168898142575351319018462043067117796131364556056358628767910981571877280944058724561989420329942173835496633071375086884817440106126389016391283812334130504470138814249449453956773345588602554548623802615082950943610283859288165777899977236896955527603599300360678096622287137617330142277396177227663173918992637573710742681496767030774953452396397457106100313555620707665679067021802273485143993085290965308084275398462294600283976363608808568447308183576199855270130922515073221194194924967772540843753824798422483311158869955231628332427330847775585840350723779752233174022612133065260047317770887707458079844120583444050902922525580777895144499215385499498860243430793418895550153455850764202441631076526286295050510470034398328559826420751991113075840356395332984529642555705574682628368302162992918092236354983899894575378575578516401114110975240594667402513206740714168857612250847755336068141789805212402876906194943603637736092418273419205987336264019383714693885737806727338234945214414021127293153960507217169308987972381804381718898839494205050634849322624656603232898519074733902306074529025274362240361477797155818944703063930534656066298268015296869687878891033888457393656446201670401671131233903757176350747219632022003682946955828081293074500267840138766152910432691840767576992652717555069539156582837025429939847238354827131131914656776108722478886174809453133471560431641439527624338925042361565852197382558759298518284153361034045120066297242756986610917890913989089953763588989280978913680526920825998787190239523220556075646172095192790953876504117947781042202210888988901278507752447424604713411674027196991790237549620671212760938091703018327079855468333235895881806432762771093512012000382285678298095684987738823742167349617130871682012853787923462091010839100057005824214581840169400502254846202485292263744056268400769446600546480939302454503104907454036682884864934540011869338211869869548681813244644822238142190694857620465744639681205679042329354775901833607342346334417767837232198200489899114597528727769283884318231230003532574931183181195454910050920371503227908353690519503534112306611311473485285625234239742810427412879086769863852108193575940746233715649504705567140609189739804784499744630392007967190094129003434726168552321312682251424040183639740497232793175954278001088251979032219418799606195018121456174141882250496846942563800530267935809615965015807399909572786064676841869857267722866174875330899569371466875815490802723185204491958502024592489539728588533153221086035898083130629360427641209749121017744346291481914961907656870019959702214958718383482730836396606047711192046346400782521155468553027976555370213085334486016499562175304762734785148514484566944414500463657540993346675024460681039733598326902619238023191807501390768621654412928272246404854245148173496591948220106651178365329117841001124546898541713627630811245049628804116580580388353581043904955935978306546482252600778149235107777570766318197806932771170143525350344493313373373131927804470857344636834052890466590747247027760630697742400536624308867856551573963695063428053468494850695256195551479901823522584052335456487406042240319490507866257555356153040621053282001373653231175283734530885074504870700032373265357633923044281729706755356286348552215372064010601293797501895208562259875489100752686106111913930589649344693203781689524300210566799120243100108673215026295828630465052741490391906745363618894362387406621514633314028969317612012113568963863718251410516247109795726923315665926705637484493435742990162707483037370556440728564063455048976759066046630206674454468537263462504488478388745953344487325980257209641090816424938238921533227338402374083143745472004691025913516844549738227801915570907330979925727874550839459642277148162080440462140682209942070208509531036837286521435129434013265662765602337106536705781692216879685493137575552273493177918021992034526397289990316515887667689402595266244952961783109005214299372992128108078693177843541204792342377718195515385864413508593179833944755948570707529625321370320880104000582310546058049622443904223554675851946872079380199946851389650442165491476500181938399888458599389945162703021761376908437398689351017927940898647852305603677702792355914166363996117706809900417328468305147642219319778805503767845713686138233909223147051912499475772341521476661751782195109268748532386382078743655602742279068896560345113001234202715717759963378114930820710318404056904262847275554498730045593533527072489287966629145572424046475487484526475507035750067952429672196947957711236882253386069311313383665912502178459558248874579803552709754599974504428977998238366886078470149224291761316212497032920923545838856136090702224750377799478166647093075415774700514694599247658573106319322966311160543793137509974086088967824073189216750790536260961278497246558687814031262612369924224634175713471110286361696397191834922742040744745668876569346241184638198050354185146542839363870524422649469108788324017696159939462384128891185028536843037017609300145417705437905563075051735647310474405732832440588705969351834621365290065654864786060756321255158526022011574975908138617781348216921522066358404823605844208356106800107153634805734710702944954271836153252659917188443552699637091504417676860716099294038834328464575647624693170082830222887723237672041268169397282983954031280629279589236257839229808859879689204455256756154494200343420553470560957120905917623979187935672178671658714191340910542896648391551781641642628390066468537212105714751832520388477115438452152613644109153292835798637745362396153721706319617775035491468341270257178570414494067970966391717611483658583939150034000691905182992553777403475899304383580727179371757584902830383491521173306393405009142501989461756635542765045823440162581383549413182427146338341930885226006280956110784603247195429426073511427937822898023665881368455044558272374266645496956413161622845072589561071135496156845156579048058903141290546919198757953526563748123007446067299577012256693973117992828759475224954484568484691476614238409681530841465747216404378718589163205935550311011123900777453504579654337411496126624833598061437076198910729834165438220548353423357694489468876254973109400076619682385060287791174430174734972552994098914471444852558251131982161567769055932459931742664444571988897465444057928134668506396380183446679681297694254811023920043523391808560470855517713912191498360264831644343664381319774413351754165996575097486245833605871514495344187355631524485280723589288243656595272224479583071222099366581757701964288634266063842722286135826623229137673914652094515139583479470836507145394080772151936164676624590430746356860259428403490502857477765635895753310006328193529159293811399166964365056889453610654584048832800794031772689041203840263990511948813108198860052957961137554297575978764997082313471021705972510158574351492778128885262821047787541697442310733051569945394024573309344024142846367674987606873634718842079218776742041772994949620883984311567586120205225606610452828242886242658496285569264181007216886416973645236048997680403914209938979360041289769531912390672675047575292963362698841188816232853579606085290312357676975309009773776722427590403554953050913154020227136164188978458779477540709511107126497143178652445524336635554469273770826112381222253171475438279041904319535039047185643434398890380457025079150398861762004652450709493920400500988580638068631433917543315667057342468970377969697477620833136496151389630475671342738938679028641951916791245953999704457245837632038084839463707048914295780480440320699287072934376650356140851657347003528803032940308509769424023936135958275517293369499608130999766867458753619586787683398214341889300455329024413338790509782571143072563008715735699087563932415951479907413974564970858432367518203889739872573233315971844328032257116325719720502297815067025249840845969389149010173401055232646374067874801066635189352435318600519889087637298788231754239996109033092992371033678275206012335009481857204459155597886776735381798870815890433843445396518173552631402037113916415228345304745036638328734918894670311963427329007555720894992335199425362482907215793658675220667016184570997671693137509599002878463719956606773097143668579947717323340516889566795365794541052914940386435864906363249710916663007458724072103514425042239943793545097103524479728917357700660520228507128481019037565331127335803265456112292365539563394436107916188813660036641076668763070499162635083161616846785675291983630174386852185111312129280363265922426505777870465669503110310059453413185565272532097969405750079303430012328294197529967586652855324624136053304349209848275115185454027776668064466410953154075872107067303338169060649108398014119382554455150438754719046487022473870833408761768604913868128782864787875651364667265109108220299499022034395233785271992837751737261817212412757470894825275242240701954012179836739307524881027608694372234218999417033914063656863159708597903320755900234722988550391012870361976084279274124439120726420828918621023723204878590411542729642183665939174843843610853820886376203905685902935660701636758745632941111375913762746929389670519235733557288075164207510749792232742905265904325838963880199434490193963220242016504501014964553473153525283669750984611942322361711840591843948513996619340125250952588154741393705517445249573536423107570793322800125917398959186441385993406075774910919056382846457766599113281328654033465194863552194643863309937027844421845671792387800101142168853944353025636766493805749554861370424450046531288820791602518057737802037210851527685037434315163199940491157775949200945256210868564467546430289818564309643932224801008558894649608306136186631044067481092961871165981170269917234191320692831195077279550376724667486102079629160369571112684005363023226207967444932922878596888117949095044847627363923657508809032576787058952275520556898312907857837265692406965763780557011678627868291744368932799531345578247380387639354373250848870452033603052124999982188644958474707855579735303647135309184521000114392507670274052734071609505346790290938134435195474176452210321824738885487279755631349134785087802989900026494302949345976199126792970209263748993967901679985519960814378897290964409610212297876393967695502170362600395504642358274967184554447015072946282907427862638501265266570025290538303361260385698905873936140806779814585279711087927250743556266188875266558589573284182055456351824850880002080650396720240082515037844771620714473695316646429469098167855090662151900731868407203671493759265953102749164345730840770667786090493171919945970155816741503173539530654044516285643382329988490013524786908073639476911543982193665433577918639004174745579925976419949752261552014204831073295683536346056457343407628043704862974214158948856348233493366194544401717944365544904064094184412050443199799126895641754029674375733822818406677990181258845350479270421513567050636505926550836025852815870208045052495004127982455178841934286334228119724271278002635686592035718484556837982916636169472718688035539110171916606898093294100758984687456874844843901672029513961185585232369490849179064218826127356514295132797110753339767171673407943977690484106723407817332939253109972127039229839048155994436675337625007892442599143334551906850864146843961798653244042101001740840960934153374475940859285127777730345973305336102676910366305574049005395150670398101485988419655008805194832555496864494487092894652392389641479808948007104479199724309972149342639181567102845090578963064087963554876702139405367131327855008257802939998541938690967355193808036833212064064709114316012626061602309578372156465464888601434489672089589854844211544673754050118689863832849449951702125083314947709196055092171600502879208755060851716099486063682561514497096247469554205613075263600525176605167479193009401432873855532429180933159606454568544403467858467006510569688685536992015070625485357407569158317026330912500259509101686517430850914260645075462526676627627830394849696128779816113545189920872625518819623814018464272527992020981284628110193839640013778358346663079426444299620774811199183117671552209964921930765247352403286637971595030813300512190223959445606833101174013958323215202788474540535973915412764321901107726754487760635440437531130616616763103209178363081338811318088673607255100164953551180753339340941289604445383451909217492071638651078937610565528455612184485672252025608274820913797908076029886495650304214018257426805702350410594710725254197598029153135748594181704547200712212995891297535522660558673509451686172772691341119153763873065801058944523512527019495663578552839790933707084472881980584217068233080669802045288050449380279904963280294490566159797845942892487819657670799954750060977574834822787965639494565409926223773014994931020853257679018758573182597703843942131660032200253594551572060506447722256713237448620786208949356825839213233287457444874467707509961808098811474835621274100810899617990156290796015288210623865619912468724696406688455124237302833642805157084846950902826306174223272363266813988448927019571256738012257829149187468037717308280798021220468922014510476500124933886841364454107762742984475786819676565705314341032696748291552871397521534224588886161189067099444022640189680645406133624533929461953742885291502501045884460805635912169141543973066701211230869954135008146176945724115480533814313926099848700200097166462387275658656058176082909627996066318795512584915222034055605306097061724196638559955740293127624693856019605959128056343298391617049041997801951951683070688637606192960633733817154102512697071719290898285361964372018135876278557210386548270007607201804533552140575989984755800533902850575103384576057088874958084196567716344090080089728289215219149641289665733048732769116410675879260743425505507413390703161774096335287644706524169764751673759403995668968324245322962414633245277981941355603541379039429847336630995263922927727157608288076135519555873463748260975648974115661521427174643957414502237712895115656043831318288450225673579343505755386350936690181637430331547242244259304762855170910297372156734345439005875529322864127231784808032083259757687238635307542598127038662159235130570162168001698981607321364157197655238722145015747538948236287206250467253301369621131696020245640041431068257669508545840436085315777538331239097105010231564038718578066347892830863848620381454845326646598105367055058578098853825698018419512309757666256069409316762154362201584684472627283995460877984328390408497884276769366590440412181354020089966612736440291141392384522086091152139165386480822202107237788080350122309729770021965289744933634903644345325814799419600731197741051383949409410603636190539446209828824211367101056764284886038159181579173023056451150196847292684915633840622702047926566788167424933275696729543879587910317004963688065296303534290183863934592538500639417990329647893885172599751137309924882507661352851846317816293245578918790205847700287075222464870963238289213756483151852533965007264497148720409948190221089922200738549822451835844163155616487528031822414946502851586944640153780104892928818986538421342277371535057526427491099728917947167920411892944584372977924570564720728799023405702514459770719786841661412697749724618250674968033351550167300561540656475587849311947876915465274691217428644187311138743177547866238813121385065491928472153261445600689223557738384215807805994392376763080597776053991055727880506390688388531892979720213747102564808749687761771742420085763658682108992291021949680735189579155023348039167086098191383339876035019369695914425129579720381346453143514434866329371831130102129736995943716785736375934367843530898537471535826229004144204247890424197210955072197784563703759047099831016105997077138549559299893770477300641408955040487427821658096498250072259910543419710691209614247559809311239420911464797243531192826823420957252654421717154683105562263948396716664170379836868136289283679888275042082755134251598140654751697279134838442293911353628204281513133523763072410446933933164558005652723797688685341385078166760672380725847129483221296630072812057541715739696177425473659119228457303069955924788858167293160336599417701747739715173858996491892255167086450010345943621388271938184611088566800358835236297965647200429211308465235184895537064085616124709542291090169495060494371883742357324298939504103819118008166588368276434133727676022910792897322233876982140840960614066679150758393835374272311235168914945112318078216755804187073600210158506983146030795671242241220416783691168659185998168103451555310445697110680585892837363265661219663171530181236965442543646044010983241179656771666105036181106937087263524794712845425075768138350965008414017516583439124208368611904601148494211089647769639894477584183681309855970818073318420251965225476022638976077924144343055022037839434703357623800474091839181534732883393693482932173574581811961061541022831957087790652377615363562759122643990769141117152092240659816146119075073795247985469678407037537476033102317019142999153521082303060610959402124626456272112377786244956055064540896078312936770051498666382578298565706105896603223025289668857385511984662804050368240981843195285164056304644385653583770996138950559843029464160968756512699762912797427055471358674273341400015392970047953962446795071676693930113830306618907536031906591933847037873109734371212214263694165320772024523881029979155699385493651331141350673258326765984072426039503030390927295746393596080824411446600040308559258669018072782127187136223397936075394386479083618357160630549611721200873422669114389675554580330917321003514456326374449466214341171342112508646317656808878842617265364155574369034190045511559163194417862605510626610775447381300576430312595783845907058432142975742381729073373025382526426589572949367173868558835041939966905843441415111272353873247637271115435674452966385803795185356022350141739271578671066312236738106126226030795225632067169648125540281180397619548352271441555008729389671231969861057306525105886670046180959782111339279260455077500746372225470327351106830251313896662946538677502469189653001034110566340350881417929529967528407582322552001065759809083683272357368372215200197395230673814367935496950275577087481553067549768564871655985559534712297612832028742225599171183623332467191526932179373616634541468990507999773114969180600854260521608587417588003062025557027353628965292446618474851392525983484608617618493095829409303514858287158922066242627980399645858276020027214217778750236564720755018984320166731937797446580945718114681942996635045054269775351468066737589049847879918325055926736584940850019131217466665484296583873805782505692871211386274542548096949944626862349601466592124532260028807619267767071684250337186779422576541874637256905545602944012524845447078797061860954008836825088630419735815149678149310241424403698401175300962593433303701832762752568134198818790169953722616740216204134119870919069387231598782477520301478370908468324256402873782663946580236350984937394433924959490380522177801847233060115991356830409667767749260965655053870068103336844805367982245346418206190975601303980126402219243981526354600740113103695131795114954975941594987995643238659325261320460647613946681744995133346027600382021282495247943298223861248630589288133839845343019706945309224981318483060166812054848220027646198653036109441011214363771951407430702425090500192902286084389801574810850822654340576865279699839005750897610555805560733107905895007499496334403263310656658425479544510953764264748719850746536972850004256201713379309216958195471853900522871348418095829909024470783019122669458587169393521628971944317409346749639970040217548049626026522186101157449964477450719598361780289100845544208432028694991892450229799380131031924842613054798083550606341627284185466890658525503377538958843375827027925119115714293559141063191925586880974327114898069383575497590513858506140245448522452541165899496774433836579382901758265049000844255143966150439842546788774317142864948594221171670920493613552953294043887376695925713328901033503139083147465237317001285867813852309400170368021196627272632544163771430894594274104312362039168410670104892612835899547986106690757194356428470688554310795751190127555561308705384090293929189559405013520434084654045692297845360222985868644655858801702251334543330878372317707870544115315496226970454386361913937397301142980827757661834141711155240528694406771656744413630520062644380822004724928334892048795909392181922310140923763389763693488951827932751678858385497798812078411302584347316906626982780565521757494108747512011185276785017485740691026194755090165468722449116773685593919273882484257899946657997476559904639684070048832438406812265926297805214273739612255358642035128637702480654657653265392767910809800037694438216476827155226270219338125891465285677503903500102704039810345635570554422782378789421322303825788107332050366550027517483284225420321567827727647545536901788582185648316966030499694103056827326930653227098781142854022525208003964252712425062969167180796834186846826771463356445752880652566596584373751956107182103041524949502850772867369268038242904008165843469093472651169919183848434184178276687755613050953160454045566710811909470183104037845113177062904384103954638545955625025707159089034395456898352626693289485623078693123064106997307544215357238088527313092391788267087222693536673832658559933899468306485976296623149766641514032807517745837934081106200179372951003679472687311217811465931729485030006209701721217894719391554791009361247410267802550191672102140231445958700352440576094531934674929901894106428485012009032913855176732038389277497996916852706624997329241872036632602355249949321899860752923698777729270032491371551391228288004051350681001845950046708615985963038755327863420984854359119418730859605096214379433616212761261004292275735361130631791321575264654135441713105645361613398121686929358495875978912556109402835032198640559070109276176200351126638653814620022019645737720210683922784993086635881006181471202180971818426201874804360238340363171376334169137613662863034982897929777520819156204572630652187703767891865475658289941111139756493676535802166896010917589408318910627576731872130185348317240985721221341550537470914909416976508886355637214489474067687340156123296702483367538761799429820569872485126388328807918531009409018358318139810828854998373491081133844594744022382257606812359985617991891845024784220428520055240980153122494982316690426994969143944173003078475440822802851773933841943698398367076467222837768516316718330888349226181818603480911998786931132579924468240921499768299272971845605190740619177955551254079856432607053905956080470836718764265747936304231065292955526098795321749118546941792306549568060707835378754418099737139355102886976566492157664086370325356079489126308565670810940720497456258909176659557718232721066137721243925421494389003924850431761158182004760419012694108620408961238023065078624235417640643483295675236828861192015937521583146470742176068267358165383923979070847774726974540953038230746256263937696012927825046978447090596877267956735693538792825119730328300267796689536137747494687098730409782800187750027143782181197616523979673035908373743101640113352251465834403732712131687053648735287506835836072980509630839008160167196117494392451968832963445316331573432133081170456441828531922113809119976124141736487626066432630671558990615036913472541944235555093653616581421914465883675179224444220315221418174622503783290185382429778459323383783180329967502827770359737032443620064845995961209999602277051049634982822642314441040409229591601206453704113031361775884402039544452606616453589119098928498213935459516345491539122615690960076221544651439306136620919655991579044912957373886064869953921527912714738438377876911660079179356312926809129185315704710975023371500491746370655579640950567907889933628058644861294276698536225138895309373763825463440358113864780560026338739344932506005440503705194992175401037541458355493785041530536858461524542457499603112572910030272073978291388671814031821210063097487402376433399151254806820288286898420344662150459297819679944683993332019206092209286091743971343985788282516646505736096056960733331377143938749721739533489702841151838970872217069287494551946796798499257651068675217282345383166712196179542275935675822345883951706385659209646358668744127548079759055623832207970605746236212403445835429968231976630387835728790208278328478961005321003937687900565067537574021150526400163103133413346624934810896039016484795382068702385669278892344283836246223532716399675084331327567552343610902348281651312668002240774364942702335258644551462381403420741991510494032857669325150728931218065964551700298946345191396364508830354633330029791764605119062112582085207814889796946848930893022218190420445253626919704461721049243549824232290877857907009905204152687716915223481986266645035360659515193233875186873974900185515687743690175005053461471625689261835563229698727087047788342624134307093629203269981995504413022109409140212447124237503486190434434966363545909829097410496205814881183577761293571779690793713106506788244836099039177052901424452277464828245290870674493357930096297158323536372850025145509747668260503010229571157735492213975982257377712000411243318217898604450932945362664654017633710116788410270171966074168583211347849268495959005340219618358000025769257506883746806248034316162243510343388812617201540635244476180051452904803939815792723805886048998367108986283765426704902833132385763671948069460485730519526816268867315701037229334870853529493774483457673301904095031285581836712091473328337092614527961768029453722864232998034371259362090373460928649796452127986599061023977366441719803832823239549052525246735789863649132115677559255638800111750341704265733000786347896629788536318027750986058534147112857438223485907013366814403097704478592117434807712049656161640041570479358417924846004514476284215513711348294102579181501069082426982050441337701425978876630247109109576583265536281746075828455287863384306715341942306915207310567824776327910400290348739874354663724723210255568871639301772673596237017160682632468433266513037198366656122989889302972226126987075453408085430288597023025176628133015598938052981174920407409600804769706532832497501024858124019253111612698800235250820028195496673057835565331648965196788028940768667319061064601203907014110998033332967978283861614727072491476712887322993987667897970162975419783837227700137279059493277891546103543774200203885147194822724338991824013012664324662262622842629740849378006928225637547921182298209805403278700768638173653311840143860617967621116941845759320069861088181667989834234922476520876577925319389797744421937825646306803850677650650618443558344294760617231101020916085853701510589026430243561083586901144609795478282069310794844013837178204709926751301632084782874690569508151868777269916687981210107568173411020780807930328392856361191826822716484316423218661954014116849486816690583202711750605857878949426437118375153819677480136460626626790740830963232911178769143007337942228561656382290422426219381046972861419915424900499352213476505087670189199550606731202782122643176351747265566728925270140271179544107556195045183842004762344203319344486048305403881859491835984423730907272884024922989618851134727554513940898227575221338304946395174283244134694040603754390382472802176949470883413813921756059619271096102969284062117222771658020010479266156216278159188046735014992221453914372226470378620038246901497051288034995592509865557964819668085593612362579951063036892543840863273391493315355286242368808363050585664371026784966809839356797941411828135586731845243378392790428937047239377740392091348503924283138097676258174851507459325058199764799634689142775539586555626917332240007041836748993334412867318798862167157442973787085965212435919563904803351148357693711601508266500197213699631846648505666851073341656789058779002073387282587946537068179002251498717184190593808851773881129503462311149038962847333191743927022665536164765798929876423587969999065678248884786960328498725452205979193984402325244348826780359615208482437911793948379663997009756956180550923123317152725048910683577192785495705188861626492660322814091167735355763823886469813278294866415241650852308153833516696603805113130378150487071954941555087502879111192301863448441727321271612846831604605386753467993751645267343892073440741235448151392329290678467693298253772056872633028375866953467450209849362422916527720037430252474560954617331394088828285005347642916433690612047584428497625119580414353108876839207785240812919877900234797356316312141623211337337605236138144306837310947983580964699732695514975195891216930564019045079743047862405655585929684526069343393116468657156706856693047584106153444919422262232806197530791463547191021442770899703851291018482807786502812492043323146507631447305167671874589137152573202840247907097312236890525771166463540958341239636282297871384253285822336435322385245272228398440981736257628052862265610324722436759825927317418596890525965737665133128751174212855326246328310908675169850325338878465682567464400519567363135595979910955443363449858884057229546812695184537415339010807376899783128941133815700169342881886723732893033960566939026354787644467601933023060979595517945930966395220247716322455857960180388413459649829437939819009773417192885266300261811995058320241724986447473755641028654288156458108029193786353996406790910101405183201222469091387622350017879554182189790156286346661869097298293893006617121822150386824662235453462641122078481418908628317453989906021971092130807019281060558986714333530654391445782123395351413440424305666455697134591269353026886346992021391102248744449420205730950335962175243370978199329099433535871338117879524036687615827358400515750148697157351848210764832525150975954453649454683590337532147033251354520697074314193297136132922807516044321696926487936950969148065753065344373470123009499498676695184025839020839036105595218871045890767537366642966634610484218286574546328449006798089580022918849280478638422258590487838788084718158889770688623433325128896077280082220520987305192214413081098885028218310051315471770333588623452635177394433032020478270896616391594997625865800235160672793678962416302332689465938321999025509038311029865692717574611661661886419048097463940444569751932084497243695535884031586498335310474684718196913957418072471040803525575178038048620573243130950873232689880889733353814995989887077921020910547148088279864440324306974617201824231485100374844110058780947937293624117738885784160350155226863469152156676244666243729772078585349675000590751488041748896992703544026991982567265278998389404518673518717266427910195332940467195215976188595841702739193330844500223132638379540901655109559991490153124659701854679234851951064984653317536610003863141840723244026320875300627839906941702791950582131551606013450692458475615270116541795777226581001799594652888800654546734505119894419246632308571665100083753742610617165934916728360886532265176978611427751677374248154741383427032143766734998457717033592703150488875657516798909002790631712040331727128526475018235692839720086348637609335064099655047161828499207918738649420377065238619870406315555577579724118198155421838830781209226527157719651808705152114968674910325638555455173214501276010368491949181174525972325156286474450263634392566324646670552793626989682637419481621283331004145583125447228662755026699355151963281526303141382223119819829788981109874229366860108853431735356783065679393668657307714005000187642805357887365411152061726698791734343853456538743652464181052157032419474689735469973365786270341780687504922789698966690995295161962947333290639864875202607327671276211880183342192502021460743170447040608464959025994595851994185767296545753839892360278719562020205864649182276840376334561133448056638533928220447903758223321116708060560461939305670848981003038776931974459681533036590567250515580881430457464831245115732149292498930951211133521882487820730019748985102948859716687146238759004043262821677520235669232166393024195472940539291026591142017693134722953967683902262698799882166402579669624637720595508923229990703939966686405410191105319698496865469053597588197402599497466112412485174455804186009633396358407852641298614476260292765830244748151307598845617308487744976048807779361154510811338631850383579671585157931290990812905880168322139134867517378632481752195476938978035853516391491613503855223155249706774201778254640343331976771858211645178759618001579861344968734158842370188109676154360186901968852715277316208385624319142620060664958362743267361916181499150206686991735901896216040917794125017142584612863056020057952901149466156245259831626260435920703114140621945091377874222558504029096236844350256935901261996728321856965348898672808093849722579748760339673742530138227442830709941192774979905775511032779905802256562499517286651136188675502787778224741505127475070927682675561347359139234906257945751985740673372018628211288610983617379155545227103994332394917323963452326013246202197092751935578353394226050351515254123532084936767377767457618492442389946232358242868968830030252477240945573105860210435789329980448024166294770567695560983546649355748372281591201080295549878522030918969064065997697644186730091536585894647950882067952822174961307281184776492717708208117524524553175276958359717255552009320330165450554940765925740049666386865586727039375349899331866937012684155203156934676235138233940875783396798867471663187969934305304024784634003082907240940917870227523668088603936501429631764589873630949848961709271460322336705997436902293965250152404119721621217340754304607948196825273183454163142992842039260957945465312037010276334547125932643083137344610240815233180067889067641173815431402731256379837228598011438834369486337250355243376753414878219124959627497327176547771349710689167660808592696106953021467132455974314258645575697060663830265653765048207134011844432406594330654121889991348926725136109276222995914802025553468983866448008732211482905703909864159865348233466369117499013556163625101571095696931249788159151979331206004406318782605014569989716611863606609250613885677928941481828668195499330228932373243751460199609063649291103023855821600910526009729770258515015367616423468913269744502796481413039446506493512959975347292034827205319334622472332896434000811037537795436856291843291826247562546176873389233775227954788275818471430514403314119756418993641689771128862353814723899187168733089984955892631520550033380284865626268993757462199084930410851604036404042039639905388113261974061461922497434733518937252025301481613509266955320045045297966253531651272176837907836572030685609418278589204487104790796181447467666219682886332838053580454106623438821939181435412134558989063804284840032455407445721020783973035220452658798665250486391276319840996006782159177524887594980024029921541333456227189198140319911762157149380265871081537653284951353829995938707283112303693547869563569680023698915857257987021671036099989881865137340849902654315732454372032862385286180964668047834979696546378404292117856998935459741551148607981637721003643110017563756634446721891476537220499031299471226238370011761897765531076017914437616549059144012637188935114701795945159071053617412980588934540732882046030898012114446297083617280105268261411031818547421281900347390468882341591967273523767270892671397227993567681398727261243229606151484455684772810257664376131135862654920104219514521509858407410278586094413614890769892715448382371327385092542710302361022481263041422332782720063830602763164427268968597682628215952598436219102967669335581212898823505056597245490134056579798298853923698678795777559735256835771989076898032032397304236352819701996637057902231581669980445329519131333599872782832795759487537352297603677523866766761941552039369612727423650691293737415338914616442922407080534181913228733326798187826126120965030770793158790119468294132643294577261004561441913394873091923970869855880006110476472334242211893449255060778456913354299311038875262073998768065384626761943721058408363485300913033901479612868677449943126194955634080051598934917377704926879912079650407853897469927317011872319773187944117581998853035068821169027637720901851924889699196880424937395686128706071296628200459793224882247085147970711160457036360590753216208475937340390734904805548039747422794338487533997418511366457802046563240422203892169478991802664677561520413481828283741373547399288194729251213446353636729532458360108237869791034349578104176170689472423293455109989083035127942031132022133308065723508256324606016290281490702898046144319246812122494636485696186211286761240453632209604688137174865092627850685350599897249983952739978514133336921530915791242396342216278070556290115059700510178453265547990363803378141027964372312718045696326143892480680473208425221594611968798413878710269093516747034839276891985816472164738623852724502019522285611937716594609177332234992953340740312320369724350162643286401922622640941403187244057300906469253162111566585628678956271310439978884050308962263946190279567079509110978987216954480615401910426801223852914409371189174201126658028150067285475235784384367759400688546801365142112070437179532873809780516354734107394862027848685722018825282567216434097912382416996130719924505695684145457331239903269291267928783119280419212079553936046898317847753125463407350861016674418387370004972747960689600434111655740667730034433449448613112700923125430567225732766081677172071445705077268873903607570400035567451047371882052455028143129757695782816172686436063235241959696716957023308052816816489027245041714582840348059868776501319852987732246726229196375008859553532300269500223231718625866240965590622723183770866603985768558606775272125977417210825435435191038108482271104188145893446932358208183884531265640096075869412948281004441592726464129636325940696838657208259433298588807233062479844016285601711669291857017359843582618102910352878178502252501172627186481712590207217863467554958989005124975188979342827417643729102537385009750008929036074219769300807394185905120674715201284134891014716747970975128084763102356052439376344085127070858391440019628570239326393255960181514420559166044009772717842464555122548220649739723643159232528287686103657363334337178545245198304654031914305523270841329100639804471054207878287513506374003595104842165685080810840289115759283677215051971045090022856841892032800032111052892315706721078851545140903359096871165866063595772571508215933700161583966446071868195186279769587733183424104494935993762781390011384727374180318011312559568519252432086218830635154013504775684641006710138416945263233455845928869136988265069163847918897659213486596718158660860630133144862062285444589539641392341732110538370077586567849060689148513224597519031185384549372755163744053470211884148405486886459803676093424818882362846286694862580490467901557876781040321522577935947368418000690475630710531899353142019038302981538065228888361250805850323071636519699252638204906345964711026459649415394458915567751939304889647868843034527561355295439484703159820696706557160724635817097598674646034384692907767988240355826365679253647246039931648626354001461144536609980276274959046971707956963278717154858287486568444640092524382796961447743125903302955695641181115974999456815722945678442841451132205195214887172545717959121367341461862957262855371657284182213500565692715382934465113171752117231941066691252506231141345327270060328384325536451034655283901044676187452331183237931038777978219250045268651487504578121473503431568044128965514832737513455377153192338937715144326300972286295012853654619305395592448211340858639053552820978657733473986286084106700831503417364895536403233844346001937184534432067576455293803663576801581356089364951766851233260920996393701622603324545131798671571721700494885350524808172290462602569742981756733313822760835063337021815604030821070769682613835128088216419735643646025129475076152776239906431628469252884310417603048797073063282443359919337354268702986126847299167905524816616352903536857063747689601577673842557819441574866505546537410530493898757877213340657347162253284234569434490043897327054311692631398008451097882037038807624660708725697148566867376166486141258035009314699417705035193249886137552142498792998445795208770510901302096663473747587882558893198586330485034611774087467261212774869577614955948913309409023982714006770687933491412486644782841549566693808539091058022462660219653881653152306680485501922355261232506285647009196212252544661455198235829323361533243106278525310719386394763702421709498367790915969149983372539720976970524839212348422691214613613732752466066876974894091293153590603105961296897724203993185916890629657938636526169272576415908206769389361332923322624018217574599606795581218477034345113075194452998408445134635578019232224265718318451617350923887933576905664457422011033828207680815355226208770104083768401342791472753135857853353566424479641757211689941614457890106088068397931099044915118759345058491588053501208601160673152567930128123937706034162742885392551689609058696205233849388997858468108923991833032589516040589678388353036203536604542696775411403404917165243839951644726709296659333235186956509911401947637027068107182507832571486748435248097124575404401755240526673517470330798183904953058866934200915075745946224628040784023715643382685392078690436791870216102876549399087616183269261277230205252620503198006787154519849844110801279910912192875442076416624941082138872863528303110487883582115991687610495942573179694974480947163683748190118767674386841158173546078565250121702819173663824148881437530631733246204447925128660181379491198409569662330614905063694834653275333964541199312394047549380148753064852129199920894214866511971131616927505783289147137269334433145426702113578827822061703599059587995698078714923414725705302472811078724256712504518964970864777237990577938446690953250916574469704777841333905928958835415929998708912019115601967252216439579102450209040940131569999247131159900782230754008461797079405229964490620958739450150501542485068391341240509248883463638508893446010511147734609797158682022209866198825990794744655713884786608911305935104152895640089889713897757146384241448267967364529834205815069206000485791674273138449891136382487358039367262134368422800338833051816555269665397421952261704907829033134991322257867969143499284862215845028610182279082773202833483794225765850198146186777869440050788395419059191266003734711865825192866915459050591715307081698945237306300785477351706039774231020162788372077974329426533379925122915068074329766024221577025785181573139767507332502702551397977866717054120689016917444483742778702029020304947471148223316822579818200642303636784484436937771196475869826657639274472141478203854839639453147092591298792118786277021332151636753341507626328984931908373538790462923237465551321843802868055855961125090996557098600228885041291282926461306451414189467228884029232427428650218629624860251625548740171776021600751415485051334250990760693954986378572907231580668313089955900782227066532406398636045468264817200201248992514579797849009252637662694070139952498980472801242165836441104962699803322322370460394426036675136663750116411777290819808145028398984148545989259052387414204955654548036384087814983295175934419200808649455018484258473643602474385855446241391439884047508765094765862744554443530919934240074126262033486806287487429319930214337761305818170951750694178221982930567781298192442450295572978987541032155813957349244500766032132173243995243383417046129644104716961543132110017767124917974405264892206166677406953056664501836082867734682961860966853486826428505015891185406682293057071832610570822225141619524218858901067112526496070068691056268450887717313338079025329530597807912534589043829085801113265710856572644513935113850323565306305341528282965007250332955716554529200706369497783971782352683023030687076687092518929265953977247732912096917060235348242950603144901045293535888061241808479801301810408940727081098151112462636871106788405833147664169305868135765285405413970625458581451305672999827155762572338898002602219892357300665900246836090955118305911622037031337077351856804207984403240468673840373307560503538076112586922575220194046417129841454705845744393216037711369466311815221466907936763709259148454540992385948243362551561558543014675330495673327669130612441669474444833339231183826233778143501785726301253843197732609997832891710709516358687732538468247700677423748818031890815181651443169655860470064636427681733613766160953610559789032286495968838256028291862360814546072848361216557050119779450768883521879392065199665638430457079036416653687119245818876132513902023114757211616242590321834586256054519617546266795574759606547401940838756406076843361500760462886322676829216907271908095693912328132430731606283714973051832064219577186967156735126275527887650611394292187195850966958012811698976783443710705045460014398537207951619104896050458698262722448151153315699408417322579059552082849772498941835693457005355851027973263145837398618189110874272640211570892445648723253403340971189856766653863811378180497146194025698774244688356111479484788107333136843483852924647002362236868664312335123035639666129978653064450124193758266386266286763810628727817127352201829091559908938725930780854789811018737243712251516492815316703493198478754316582730650624924335371030296694633937561658751449926877190481531408782149452913130701134115167924395756715010796602069169135427516446433073240935233632084921066513543155940304120637505653588266873402775028577970004335986386844454022356558618436135016915027459597931182925696899576044518302837057338703088740025749928522457408341525162537385972633904015445460178393367985064857883200292204414545051314872849581284404958649470734073324009580653477335932691548012772738585067085355487972567512265703722014317780901135272288492902193118439219786657783290169456731290558675998473106590868691949488346642475258211356019075031720104981590897222068747907870069917805543244425268666665111573777653898123679139111105938493959821402414457400821077722993037807618573534818883966181327356072398759935550873968859481628034121663385172703462780390995612467644716733786756462144941568439543094633283363366635695293765600686095691886413324256238543661548034447743504426299286755362340839211932226398564526195684904967402390143245960536501719204350651512312617326858266825032695137129838185496304228528982379584503346722617599811621359621874584152707963125376622391693077401677305667209692620092951249685804968234155934955465099884998684788046863272317800619245267839390374823149903392316051736878896928003066571787354629600343309949389154759582329157283587049017214285444444358436480406039974522827707086358379541580207850796618148368172589943714434635540466085792605680343375911660507582863474522575744585527054571316928860321993274552445279335767153689523308394000794201825878472036733868128708000794305605324846788051696961076579843521325676964523128781904420612326964828048322957508637743969879454535335374909767489165202955078132501708604800492207764951996470768576644017839892113187090027800273513708078984141105726695433684567404329143630246352659812465904839014361287477847657553985425109656548837849258868285810954350640715300971648856239987263234347619442817127653891343053814099458768282647204261330315113083020262542252840811995611301408222053148308618005264946357818981079410698580350892843069984546624065732690806225149118628931829094658126936862542765598602383815975922246296047942691800300955200778789328109699187405638384975717037961171581625108196949193149124824859849240980628516211379905251035602812054101357091305746383568286777088555472178123802140587471326170055980546700380467580745650547860170809148839211287654983417105009660071793686255021715078120415702138349912643823781759632940988637473964982610248666850937290440901486960604371360541101129621886228640698725025496657397854196825183749288933626953013124949563817928845650602326470684879730461671931501235525232117437622708936935035076078816980527441957130556572740354927629219348676139465768554412918425791812109781079854878062809989736942725049432893272484942850366713495032102809368386678663185722293585686691743121511766152919690638843140339978307950405392703922484941226482283087884989046349604159776692835717668350692943121339545818226847989205836571604521376178560324000864104204224546459179967257902763773127811066400986089229881248872961596539852782817544523018668469286954053264461618867379062442791450006247697520755444094047975787459399899728240131114067996178976906150846500738275529948936415954446509716385754841543083623386015676408921275582174788494984471124286648534216851052749550437811277195813385008811266952047660847675659126318285191128190242597835500733277814969856085660203464156774075954090939623225145194314503026014367288130108514770861931161804888619444146764742297365705198107685409859959745198654829718773085127049186661950237117054363019184894633852009784869295869257747642144778948926230131707121039982955209114031089086806316947578314439800567040890362725634280088992273639985006550633529644460050008640265480102130831926126798656674237547614696022680294436951204459306816479318976454621603433349805769833032260237380288385952922610858062081671953840070330915430449166078057223991299126159714171461504717728647837535089997778993954856633447797277062838676260710028823653086357543085513683287156349113272568536206369342062712955939818777897607778472968499311356972200210909273549124599341308299527395737286479380082969915003422529098181023481474457598982304472007867088180058771360756156636293331280352218616139472514991104531553239433919896330203320057880287161802991176159893747021413957269541410171773564948022032564032330560990312553414980091697838674303098733024917000523746494189528516163189489166602918476605895754897769899287980852169562373842925519715785677767830134703261007982756335923381962675387129532648133357360143539056762844200852357091188000268696469165138017301142117054524112618769000859445985098974934081899394938557618417348700394341798587337940830781058364084732967796047764213120708427954967383378970399880086464446282177002463256023440113725865949352308795905796511905421650136842219875245021149981279561167966598343363048390325362863409898181420786502367076078122252607079647777746322346621493689273847187899035460540426139135063379422979406194611064683999644139336568234064422871674105748458517370652853545621390086160190862149530240930530950362815874843987109351685635052065403208715237415146373312545381300735583602672261533671426494890804538003506894173272995152255990496866251001082641398784119862807317014864489465061838939392695423380467488170224441673909855337201577695830092818322515951942499191414531301838578616350681675872371033235886923265171732773176881681905389341096201270680097877122709826684580921532894430083942506528120800789828948737860604180569363241174801236549882396553769704233945572083370832588735537426393325412568654889154569525903437556529972286220102292289578114918061858474532233526972401493231225316929465773929659106381467689148836726628758726367961818028460337538416847215606011389182046557557760414021429053925278194747403867797321199019220047824223547897567050571538160062463776591954864907188691891905383100136195715671355628946684722799536907494558634642092026023069152052140852195057569517753670753438705353202533211155863294242096098163842878058529571905714867076887447569448131872036745882193032072490615233635968695538349588728353623486456641894831238299864050748276625262317574254778621209087816359910585451015573817583827565240302226075848077673030583178661201451303688123886580991971679124038294047974099331949937402617685450243760444687656780976488438510683265903725041985087266477977810833628767412039005093589661540769445073819431728503781327143189713952175814034887638511750474548118956475931015132177708592846191732909420140222542629224237982863340520593230574107216449277358953611990337965715202044246179434827707944385578288566898650841242850204951547752412598482042537541576721968674516996567787273837796989344052519659088862589354976116486836176600819129847110724622287444929458534077837097918467804077327379467326161341820629714675267253959540257043293662762853397814722772885186641026297506461627055055531175482607883423894911392287032454558540697659327234172893033159653929225387201795753574531155440589114847026006685195829949474373849862998789536805162707548965617048597081942136571496035460514165864479438978697110669762460166787187695633542630537270052383473155432454483300585021339016476811117120048517920086478601230437360717547569616085359676953661907658498171101418360946526518407972303161139923188168511389162783330514731679368967542581221842174472580085624308567327026227033775977148337646857775429123467677267563881008781674443176057925497735307778000674045431478733812819670124356082540479874768989476232134488815942201163222612389993250809900680724181208619258158358717256900596522310250637011528429848197017327834846727486117292011165733704811296199024701710165776429533018097727030278100981535905951677289847130043138591522991699617935867972799494842225264711329149233387053431347823434226933588336970827434236109440313392573115953386749098402540738484945744093701946515032294049064039879198456826351504173246655434434671307739009938373815549926751278973272941229232159644108796500725349477088376435698149617274886934335292755539701737122731589365028257714935869259760193637235121724656680543643899451735662388730844436171427514016276689642719576358450282418073842337572353244170956099447070964979322024487325786553673340142847382821437587719359560756409858730998218044183165203330305478313409987835011859502973330400386674075012824435074692845866949055680112361952804570303265831620196185046345920589185463156747174043860078524855687956013855168447556130024732680722617645001875615039187087321275866106796043891224306520303806948283949005098708819866123518793449156963292002444719324770062906479919603737738462131237805633278417554148976882789940866308003385001332543653684917118925303008968389399075691735831706324975855685125263515394069862855913545049741123405020224444194100950585126391271306916650260788173943251296576742454913642578039324649385950136291392929409907530107203137839342003395921857639782368716669136280966837661970353939667992767590546784677680747161433212625145872776018400038853044499212200711433772318859093447833776355379663367142904628619325645031113463254129492618567854490845540175550760920305348250750203725070088875235340395747042405470819467507975840987956560913048712162953001897646659862872930172390227313966484610186614792125401587530490854367387146897401364969342577220295358757877334828778062342974745245403959356838671748786909153435090536198851850637215738745678316664717976377524663582939526310654075814259022040945147561368946675606688103055532476170000181973040448196450125564758107556426266557476528562593303974828972242128616888377050577446930810222655290380194056456932989959786187283570004724182021400539414750992641340172749225867610316329940532417272241233888909473609041994159166657373023873555818903761534495707616014290474444480352393901547874497813596015154602171221561823237371514188506102981841888210278139986991002369202011316105262805913174977683259445881343310937606043243566120483626919805211728065860519212475440857969702464225670726845170908988607043328008267137459607899799243903320471736159790948230405005599620670601222832144790878832391473246242097206317889482680739723234680912733065607185075264943711597582849360709678559442020686635277962481114316152509154121972086367732685131355536832057873319357291507581153171530224331548578896056394570001065460356233030019968015528209392334526543251057679310191113197013075988783060371849323894060372684925526495143516055979410950258498053412103938789497334918172442281259932982301415196082972600145491846033244751346881547297120214753121613833518246302348572367640839095681846111659015150253441085371706493679001184600586384960974130013386687338345792937503702925817252542076509033810352053917626611344389810029006727948571311076419830987799458308282899867201796844985279153223113739372489921289214034785135548461168066517486233479437131609894300728400050124916559978833726775281200036108115211078610504457649921677519724698986466625406474883263842758925955062715793924253114975736262740699897174623483438597647590683205609718125659599254439035575785380563851240917480439317699853255589940149454010035184153614473569130234130738725293836115314095830320644400659918923629476749838919228976863329970148841881368202704157811492120646742769663148267250301040486026392807819035000825925244618536997152058959072679163909491271065620691259254052874892345644584500755108059108071936749948206685375491190974757198840642401549840008361427509210168118470071076198314566270208663136703817852534831499274162314270842626213175326029740667533032502550305586955381060150440866242756101248201306637975482760481263788835686943431068001180428191399993400325589004498440332515508539191953588833088346993991895101699134332332253736702256728531998947953812437990823866854889054036789411315320744029508507220723703091984220514004476971133176226094108325415026008375450007439010614873033080290906671402671269006344813559333911239408663598155695175283679852596426058892304511715146807395682588265711459558609931582159756692276005782478437011213861471453661808798629645758075008651839006225765010252872968212063327773436119067821446439058635548511163763774088525268422310850891705145163604307431003206169365404195271529362871043306018084591055207107663589736999032897939362003444632612829199112461993271923031709791106031510437320907704439688827443583471031960932104036564608380894124707152887246989907512705649934159839601370562678310041914095603256713818805752070127097540751973065228844191549580513178256332185512420678015583234808095311979170286519087982707302175200643057577186651563907490518673660280845754409898565654189849543162259032567340406404667338359807093611173053750551122310236597406231849980061353659961054636987132740022892073439205280652985904302121176609430213695685099213506983567503251188701077360557051143003236511794254149187410648313935772256404118993829637902198696143285936256072390836835131511647278339835114244261002084296687026395008612070849591517669926237096607388764353367039739149111488823847376433431208533584691257493927956381667008324828284405129353655140687221678159094411220385068088920232869566133363604598712828310614141172063356608349400941855597934915827471390345455529622348910388495235651598412736777392537602500704224349087474737217740354487036172989462069949031860067604095656911957300666728787273126464877691441244414412529716560141904165316279582566534409924260005245982176356001582257116549509308755875847724470671537170711730522173942175005832041407553700675042143209547697444157840785848673986760565520779827610305630018072120145333395129746116074589180271590840111203604457898018824973081838563713313200847361863950178468198553342181651784442615735148492802624048691234505295057353897353437492544334412498582549199935716214720003470835426996878912165231004450433151154432854093978850686107626282410606047349905562026639206146309663112934787806076927450918077239687462275122918628446986438346334010629836491104793685027637755887232535673842939096103753102710402748726612487140895981488611368080256203028256665944485274834232551783059844040421978340795315774081089814862161716917306148730581575216674538094989345745548301315404532385872199802055905003605170109385657948774611734527493828287108438140488519023824984961579975862946449789968774257204901965716920542173714989222464467907413379563314520355066806779280247557452386503487175542038758820290026540098015037724763173917529835143266779382714268776381366975754620075131636789005519455087576462938036990200581868007995806805578178257352676775350422285543204700795247142386785517076392373658240349441009124266857407141116196397472639318660207054585061720170702898574341809509923184653846960337470987015689505977502886601449196608523668351109807717355608793996807220428538969004955963388434468451740825708108181892868403031729637995755272054267407862215752916930217049454016217810254022361622301555565622517763988597166620468829547334656916272892972240308318960549917743803997153804074960906270806130631985431842000724244006198594294633993875789480287879573845745340794253871123653411386338610226972576423327419208012247268046923063043838445912854839911282194864490227772204930295129957349919085352059958259204863462383599704284712590837352680725398340585435549718122575968806841687441817184872907955042524544927148357514670710920082454102553147277489612946821416069198280908378041159706342378721041821840661195378734941543905414222578955822708600724898012926680384628309473983189661002269024920081147364374308543021764656193862897897792748757702181131474712840160869479153003797211827400423085301175778332556562582033776882346918337253111193136309162106469879473126562357258580355010645760084549930049416261860349390939180512113258645297492072170470183204508585999279421054723098644136210298248343173840801875064575896378280516844975485258297639077201166945524625128614021709281441922581089596271578975001702205135614807848270505139574042773161299060369960567899368911161546071623161260084079244837869220428125575915417918160331102247866321264807345976336718071158954318929608381690565572376528122185442357772540499974506546639716948361092936290574647308334592773836497209647642310790653772905635898576385230776071008164644087261389954016649697650425915117785112772771961216455004790383284719835428017981105903986786502798763230635231005509490080935462193168211999080371517276718289959655035242469996594754508670846933135024637702835452788745113248141308744719145070704216010685523866321330060436335970474688966585990230510739092887319472949446167400321889563895372474861204444752441769306762928880064057423656164448763520841590308097229037209380623068003933393164748816163063440654667486641848530645852635138941044657910195687882329649350855038935170407173365290328266415870364641768988838795023092548874059848615892344663341229481612089812627644770700893829643882134326117234796329040287658594292335935262961166694285666106616292183279387649500557250045571262134394421823409822799215302774414037609798544072101567496017504314915317880560622393374504547154622448298794107001163153584312437429508695640042190097880190519446941304285399746848346273568507077222408831568543244096167682866902931020354466436134309533657349250126982011602708882561731161550315944658611233566827839520812136957690699804762602631385939572052382413122431967114221805292502701088771045337785866658625014265639995051698241714487282587153391033378774727135181214251633807337803950390158597382176157482437674424179917649448893176173490563854203881390059321072048686143040779829369732664306024891152261564375463924807477020079019468678418209879816491374769643809846278308398157601368953084160427937967820553317674279931687270098680271741429074493868987974979816970661924221941967972748548558988049570232705363037663164787470810390288508882721687597365554893449924723258149224323609298229952599209634980430110353248016013835978673814712577078988569555828980311230648491648398812221417486919272918856710815253194057324166509466595956115422708693627973683299071088185145646617902299213773832962577096890464530361186106877314115297134982968463374035268492238347952162876076176601478160618671431731138491944679735516516093090499543831931870102857970266125998710605932664371735620032901551316626125434435325649318712486736348534835542517572338137020833709790154204996068497066910233997016831564853193802013332538846652000736275172351812667973571816056658680329180442817869382552031876693373055576764768892593805063356703963696710673240067723637603129752482060214773580925372479894186231501970322181784615254761957513276504097066664599056239328941103827859981374718181411791831938417941134197005880006341683022469766432701412585638967735220615491960629924794412605373373199231789645525396305777927036304502213743843507908986257728974175750636717061310456198219181324470245694833480708449898267170774155997299682583092253563770492895196966295152958344047772140207453553796877935086124176093242311985302522952373676036922763814248658978279961719009899050594252673887474527560927276403801887952930937860690767793911517480953423370972829089530507043946491523943112482453295311340071360080399635302921839668924677457809758166706932342434904471737587843618462436674222266428401761662428302478025979525530854381858232656464597376036240143501073810121505590836789422385662340890403176396821954615773181145013816969015218217277295932421390180116384833028703087833398707247148096125139941967968064549469299038914653018921672051180929807989451243617371988023461674698541629687095695779631599476981745967953424040305240087972315934983789037930831079802630466940716336570523688971233591226639888857187578078927135674005615178623143791030201279729975743355109078878405222062429033928652340843756102501040566456359406544873605917088817528551702950084350490258800834736072336904593764922937634661226921166108664597433211347862420876566775129986670853433156986564371237710618261686079906891939086945553353736564181428626853444451762583341051455903508773225692242537903950628179167169180360298021480732488135708543012165079291613599893474255581200006708710273615581537148556134176317663745261205338881663334860553158756872887203650994442584466368884126397098097694871276159145794712462825433112040175835175609617236480900098354302068969277049730602109593134003749046053467496948145592824933045953669479854119842965786004286435092444445681825028952372936436024224140539803461268466403303767070022322438703269671570327676493300062908723036313092847934216117943805548124321521720610817374828215331243941248376878442861737164672209574588942285658775467772364704784357245936354710496653619912364564413909344802968868226925838058736919053816426946025042962773302938701253437666719781942051644078702864016588159070228056578025635611668363219907786583139127185162839328858098524720926278507398622777564014469790400942247111460179108110529075729534940562972698734961246644463482025799705870149964847128555065433809061769946957065607375120908317909353298778064280569236879079433364337068247870106400097290197623937286425512369528729626748266170351291659819394611289855278873468601864307047715197063142872392708345106046983442579142472807830334181199670501534575569488485861892049251577344911224015389476024946982702911496594446128890403822397111615891086350603536933935845995740128740387436353884356172317544276519361108192865943984924262851338270861279803348939915089204133771358966372170950613101855534644778891880058951854107471810597420527892955412771757714001101460106697067776459878357128171269020221401416070560996771899788423734058060304744877251400630798295556684918830303397073109152546394422863454168671767722394078974420978397748684906058494919098249569851332580099931332695022213477635335429075124686503744249347507459394346222059367633100834637504227773229616206900519270183405314300705593172227917902692375542979141216289395947606554854207777730845911184866062890884537705227495653622654511336617740137578011718850540007543230483205516575428879528741767828135314293048780433318453980537959353669866710313324561874568951067914672902619255764402868430141619884390273404981295583000223394474194520085938275557478112967504916889733105164382089740747608710492785185883833368123001195352336192246985939448774583324574389975577102646637304618513269756727077566952481677389167687422676190369834238913784431565831268884889717308373360846760381117579520305180763471309837433924784681659867963222476452009512451593129591974317279447500829766136363007967441626010683430543190999422795203273068615460976370298873357091329214924181401169342535353686716135031531298193034689732880824712106151941596527438487107978039024479689047497899882879585786848606737036665321838701031417953630894191405405074112757960063509740183386960792753357042776249520890866573338786887759250238378891773638632222207784751554346050368758978034235485921047043208029661848045365377025530019330900848057498481050092927220518352428564336438109077675213093264603508684939789770098140322778124064299176342752429891653255365849281255056985061220221723068336881325404234550290803090317013298443974769588011380872662423010277822506096301005751675932710944490547670684138806332279259274177213036531952688838030697089399838438548264859266616118946313254083218398250475623101804642592615413663141708193434516647777014756923908552861969434794717429057485864215253928192816700513933935950789826974881313701462071382687068407017321986102306893441679482668919448142005981998461792585126825218775156143867030973918811719301445581783027967192894747460044402945568886359197469105562501398690948203464168120518298434817442967038952669722177573474800684234641658056516798436291857698573593727415769324971789715948870751688883783996475144640872863309339359514569377108958454478771555301637699338034962437579372052402655886611008942209162417251234786617666174306385188475869224870607739746645786350109822337704065802448951571907110072834554464565686793978357217410571742922476802682502713678464266062333541460298996529389456254945138987737448257030769749262026550711996634549895885081318473888720301521462965379041071640680842268643513206623444629920817957244207723799286172573761849263948415952589948302855580311124996428331393193310197519688587711312965709484121807741065094832743877891150437451335666036268710774809129579635865054377122857226155776885600845851342604978860557248904862847944807141850443430369846499789947513847491840300591398057425658059803858326384665231338512939131059661000880611676717531210743190368211579312260694454649785455541185176117548278863276489148699667888798655605018437447377910059763761268548098636625517701809778828222303739444591385518511719582696241804989463461523872283617158252535403684693212426354974940163952995314673338427645521059476810250068702623147702184428400108201821423647810967949695627615464270057214997620826947460780319551043363382383913307515372126523495587175150315242409230400059074340554910611807703012463921578106194992690897816249879390903436171419004872957853458926660372889997561968839673161176083733489617194961550861002703131843219030289634287255113252945376873043330397597248882218170225543373454421288810847530049730722266163352475518757496056308341708878559005942786370239494794134972770810805022589327138975753029247881038691564427310281410162099862011748726695229591954347777876088735896057590480780835891522638535011943350706784231127138808421480581388392179155418876230855030182824805863589397302051046620306101241559991305579068476865702479618663457069538725923200336177732218523085722650614469201525037573422755964620564090107354013831899159769686243543439189320802062909276396200548841296250895941832863789297375690432425942791734913290555774951341524518156002249094713430819938591379213549151328122137624641254268065086456559915258418228630116402536602615264520661933626857681503401689198865161545756570204470624433395616530754759489238049085106994440182329525709443952352615355576580063813620931526821533724806298694539569322748319472913490060378599919539661047921935024147012000531803346059029996257049746054765637665696929773762784218268382086446899048506391307197035123283331434798973515921149274781019472953522109241838521217230752549036971214097940609593987693305300420753679647302357921739946766438133711467924054067184192108356395232526616891042215171330098036285695911357860172925344755343208067364655163378514796094969170463081617531889638813647207771121848375134816640834900400281066674770040791069002782063657052285033555814488932984327478354042958187285510921563794700353051396391122648598483157303051336045587900615625897451301259849878876608196896755101074762530723696438892421474172682614456397497237153927772879789589636595588739626593580933349344623014829751515617628253513924410781207439939487648722539375784473632405772845232609993961341729905542627673636991766462878803885134784580337783373521793168025471249809224958413733683668252303833176985583139438639777371841963058675922417815604037377998367480017709088682653012127572131042754717395735128747883600945392404742559620108875420818604609687964170495505027977206569275957428001247652291955553180948958392908707973286733668699309734238610305021918880936347368206937120210129721561457042620844748271992480047272998210173867747181908749074727438234009113812867415555036272789642251518805143068882979496137162082155899168209302002480556590607056437205945945356894990242918032632193139003622289531761144903700356324759521838942304396889299235001868226625326114046752290145083679019316080184015713669426526654588974977357475620387953278802853384474793314539821992497937307828789182067354207972366747728630098795234760181634438588512274286636499073197707582374221045006720339389838348146592921066591689680576225708955606750591501934968353393600577438946287625681890728921851454221742992035469309494658395733570266471755000258108670472854988945826042009694860202158532040018848370884594176051498302148984005612114081534577501470090737809526491665590723735790813904405186397830597812408948261784100352381318048624529744846206666195109323874802696946072444973215433569678985218302797121273462391105130817996825315313588652242860084065902310276997477305698155859713598582042881018859147753428850527037143350809333108851156994745546179650040971124330489394452814782121732929699463609661565606411453543209533454398470271335803591576874723926532126485298179661664767599177241938569383934790513569313175635786149884504689972862501029704058632799363447781765223201618969277676644312389223489257797803870342301634872763162379105215455383882897596142108519608202413293090980925790086621213393597550875355327925387091611622816153959866055856139834386709964599306976756768307535917611007969258515209081569183691721869742446220682375673166651954013265287088128372886964762964484082005111272200000673377658510289553876328803539440310312803529650774646934935107784522916741819514420504356525319693666286564290328919225742382585825291999792159568481966075370040004313326802250187241858415864975839196853534964054959630255814329290445452849037175472600792502332709139626391731584779925184499455691387606472971844249446451369824139130822331060069483772981688269051523681546348331834750974711681157648258811575285379476807849438226475077100904011531630272492004685225859492795675818840133286383160474908723798911485203412056524585265465725419051013863165460110779971231431413303162989506955986460320689602542269481750542786496005534082433236907898961493974606906575284024315209541595128355173003619032348773123334093610188488680469677457690015007170268905510049015087925462290785405832041092620281570577294127109150475153217224177163145131197382189529240361163594985567430088860762526279628668989569059240543619457350768120064646915414340100283072219043207147936538668536968124537166567265215066259542973337849960164682170477134947963546490255299746600421283655368614913378470346764500394332959670240500458433583695164234797478390128866866022163505050971545091091841724471569107185352327088533878666642821474331821170658457027100526616911094596079508664483720349882896280363602362149497722865443287031130361051725802405052208020001287712612106448979440466192860681657514584948969675044868084986924125867682859863934126069940033622663824975381058291246304711914469374944665086786634293167171870112500418468971300975302897532578680009366248368388226873588594319193059927522006253203688772571194640073248516425242467896277628148838084441072365244041977209945708006237060237183310938282895372878057271362693625595941183561045771631160462709005585139075918550470010389951565127091015826686291507813972818503826926708894078319494016367517848947991948901608565912080039271821913675448193304066473052103938587450702091220002942190190221613395057080809907359918766429161862193965053334309730554773981220791579459843487064353564169574675440691247475983681511427906874786341708416111348640320187350505130803054320313021014447886575945475855986015349782246464964672793712393726812919765599584827394678847014219806870642470802106712193399549475258422118919284112218788134385947978742728836090315991073315310934366596706901593044328944956012114268746012730505764948321284162573108142210002392618107430043454916289770948935677149917336258977002837784142026137902070853527789582212359357458390170007824959295755446986711043263172988770940515955589211844024482458039028359317020794893598786048315452532164499058433518572365165842692964543744041595051195978178571020003949002759892257101559764849650187227641070848640572016448095022117942776611688382961894550525803383980939635875628283871216171822674100536053755340694181058539999161463055261700929971169664485652357427606703719432215111669527740826279379083791395294760757180441580465891726912847214427853969225605540199594096399898901196122318235423127943611543550689719412534014370420525877183123377334455188978602555468737704313642022959956379219780048641277212498664425028885208777900768697372377900789740414009512060031241145836031640297395078728670718405404548216493761996646401327720098086725519300987958885821321806807809454568209269471084070638541340847791088743488015189498752853020726626872323552855017688036548484671998857338853464090756109295213352848238577641770811467001097543229298660782916739287419691254105753273652817345376479480709159772392193008080994874713060316130089074328660740059602414416213633285227302400459940747019351518215084070713828292092949973415496761614422812449145442383227477719520662131446348379917091707431660212608497146523503893124346517337545605214617999874723276773981700508773381944334184858110271121065465082832402774692335995382627205090450304493297984825251527741952755218188023682092993314957065420508926236305730549434504698954991102065281968018629724741227183218436128032076001024117692767358809623766181191263399135101882783648373728746015405748310967732135955515400382796319733165754159816073358246416714915409060632657058638759641670624385897348472248933040618321524141182743289512278715072077254471626996078125094751065288399460904573283457640326488564496046456677503643329447871507063755536711609918078035913716122635834129537625515293359046504669174870671555698020618768042221419019577312287421654349890128240105272874121300003961208933437766993878305295219450359013026447385838533336775699060951266728658432941456088419494365330386597022828937339584040447708582047899828242996012488676796521639554569589787772061256363453726467312094154551238117857072832246439883131106617828268054148460738917172534959357760235898187414896759339625948717750901752290860449627520839425096239370914689149939350016800388823115449715824182305462995825977982170402614669362107256509763186522704118948724100728498848412321691437082432464592477937829425613448306437930834459617274158324332961686958822376389256763189335068569391172331807986587973521266592055528543385968778221343666516817477094814230071270459555403381320298034342846883649082059335396822499580760033513483139086539357460415029370071475100301094193043482732095975060512760574060862246801791860489403922791782646033875626322101453551049376372419113468708161202049528974364452289308288449956876266789598087120185125149698487694434084143055370983859986714571358039834005300782841346225031405787164993614845212981802178640051489274743872098760745741231191618528520751559601631749658023732684006230691602648521944089116790443238155535795952494593315324100401256392796291851491090306195460834102908056620511819277636613317936357329038806590350211925263601458838913080051268911071305585681746634567757902027675416842268123880993730566692976408477293062349827563940535878547868817914155411788764106047732150726917931076785803905861121119180785597427420547457977682171916250622801860424749125415879356008522087093844206238887016845873156875816987462233135894210006811673223098380890638906717878649105621168501611046169788368086495766990881919261634089870263501366778367212796009216082830580117222677080067529333157681692365561539983032543670228020250624540265587373729978854275430131554873682906192489430693631259533619367557198203669527556414216359848421799285470310135146258806674240824115774603633791645954856446943312404793902938969472422039241796552360800797093634013171948768932601440337961409214149029697737887015599356291670619734914794569613847783750734434054306857408927317571147395977554130869337668507338688046043948868931072555302387945533511205013422554587531544544062132346101205453447295669165809221912201331852977085448412406223989419510890639698803652773234130761122803906144676189758156648466254924542465399142443562980360438856374926648979305443270906467223248145103183149469440152854840147924964760551665061360356600849598802869922738607626276989799438393226927393645681443608137235639528498132812182742844719439139572274006095657217300615635871174937503357316184540894533827694623582610427926987219377768501838066890591940870738156534493777553350163631749050901654200414759793798685010503704702916163826672591860490513503421843787125837894124224904360071933703221841448180303332559463720244814466317382535503267124926431640091307255699629372213395195102639023774338599228954799800513437318196468000717401951868199162416478569187385424661166005412907370634540390053174303226573127797418895067113454067277877388404782225071630233724084694485085669221149507467636770109541313732734131707545866916155140704968634299688222953728457524976487877017145888448732188700919401079325000281045943032919593491343056275953936193966949937359801527294170064123080980163920400727461232162689338805102807791140155429452861515063650864850147444399630512721549503759044610489843630523157774004171388414171940939363390763173884508409376080509463962854790010544600085123127400367510875654151201553354287431557150019007602853983161740057403378865056637940836282172729117979249885381316435669866634508140502330712177887133107429768046949907462520892928108081960856879943190637013753239380863582532949461993374055110989230044178240292619219240411602044947955297176558364223101957197365327168172023812692555395526011521305903870832499779405684772901081685119245051202444044007154433811191994959434997845106873892481648095303360419308577409206222863221210577884383326689115250955942939168060454091183041084453639617850526483094313132782393913834713573141713633557090267783914429163383524342004866448682741813332157951873197293221958782057350578658117249577508951550413637238333227093916404222719701835233893978710126639042436334923253131885825831972288068234283374303256097823090526633536951941520730048661741311678374357284822603142253248203408375658713296983040011803895404108358701019532273137620280512836144292682228499804039988243085007996556883344893630652832026830740492046042718016497242421513213474229730976961744479971651111652586390871630949079878596837807483662903411638768042565840891922990412100371036922980174901610367113960725634817569200143283080027044505329493756695041714715329872835657502696071429282650884729300402434581317372287520346726647008572439026185930355108038602266835020096601535425648264951460190511985041113782323074650679024379224827591191415155708517897505362722201172619447285900591921146388629496658150285955450448209031287088424545464112224906544714249666741573807757845428059932233666060319894622853808073427738221826020043012530553714991811426867105634632212764255525394499645335831324390976583438274111146952052414513873787385880951812464458608073375853988588578491591264743485598472138813108099259724309041625965365899444375664949778602093457140773780221143240108649055526189939257506792611672960555723591105624430557438769369835412488138251638497359471950516772770185113678448528467877869610810300059934609645423566591213741339795148095649406603220187206755261998630788145734533017763876362963504696050202410089983350308168645986804520422313901625100293787199840932960397157091339739122066732198158835681764541404456687711643469455350642069636926869099577838269229530146357184290727805238359105821028378415090767552897494047642582089833572295501763803620716363209452751769198948436252752191556977553420143026761735001336286274395932677039481339743906323091668641284456802463344547027614774879969288861869738491326446694433582802098652730807927250483122708296133444209155655469036227813221760282495364201916770695780776412251886081817557851729008619122737562084488808787940323990869449997139511436458829191339645232493743659624306640365766600906246816044985453667307726141300593993539008344238029584456347753184494238394161869922671139237478660914208535542717046694978223504118850361374705736477742779568783849876459323963369947026886169492814916591682130604004374214250443694866125278819829626609857452165457364758047150158027567583639964738767410916540644113316449342851551024962858310118511750270369858756157982203127608645448166823817710936707178749259631088832407577815966722498731031400349561927891472983617200842901557371162372905855492183592798336017680258062146630324153716016561891616396700544079102904097909554222666855831971449077800687983846332655623679186375817674029521827463927037613169056346837968058574576469146961499876498683039735787212281562427229562474356055853319863816843142158071460296462721893551431137339144334343786314177579264461841410745037379510454390027454368442218540774556928389523941252051355218656597235840096056698029772404983455499020959832624887850763991343232933540150107786374902517864602205894893748026764465958321654605664855532966379382432596590834433845716438241920567430088713243128107891913265396071751731510015460121940323610006898791705426462576774343868301770226722675751901165669572403657583148942807788802357301972224008614718538495538230612897877493014502369313405392869045176159071121315624790008595306679718472382598115246664662102872595123658899747904156243459059455512700160131046988181227196167309839455212449982260464499764671080428590853491937935693318058520575117183261143341511487577137552812659800720471851205133515644099276248514259220509024699813839453701296232281370109476775590271824252685928335324444196526082077194588106386131453845938159849638675238519520296997929406503114142882787608679190156336140199303116935831149381971373271447353256449842035912067764633203612616502312272219541351034400253861325207184458529132842373669274965799635189420934851638809259488040267206506273288678469836484545988644006635449620291273022287268744793887595037659701390082995582310035890324461837362626968432434047074038751100538128158615339458506761321646677060710950901905084838756477743012144780141261633992554819952901137895854331724056113532039508363644996192634599138133471723846097220851837840859191478367100399654115653100302643022421277449741665832042512422553997744380318805698636362194841569870374092555629277167541695698420490314099454893269519264662093193895515048771622392413864738700173206934044160119161700350098018688896187701024096319568197062754122255918780602468193389477522405518789122742368008334979643594522346535573203610784656208142431065500374882269884254161417319284951195450749152022969317926993611471480660227294770865395308744137826654964688923712928254888662649828933760573317353942549868174920759458421295529848417948808119895737142304238226328779258261234218960601748849906810439680577972977088309352231454705042397765405050360250402119335285482192966448525740251367166030191173152290388010761046796716773273506952624580328323785313387215180345670248724992579944115910496778987222511869685746957886821848605989492091232391654461104755184800983347596589787238172374925664452702044968413238198591420521151715541502282977917199418624674379882122986739942485393778745811619701055055597630145439422294869157875467449649310518694103857194837277086196876142719979071870183439834036613520498304580052596520535742927323820974450053711617174523635057214769173406176122343372129666064800421703402647037501221589257219882736000939292501869235112715381002773847614539109458621475871875010058299593069292450349427104514741358272588585478546102608344529108119578987164381349287783962285722570565241269325168139492859139970908903568816089929607274564886906160975131138165329994634289673991799069129466293516897203886710732856927565759574921910800040969054494401154613576867657819934314451847973127478149863687388038047248808085177893818766464767807014723648519239775247977806650386662436907597454822544721758397287600428347496514238106171876195369217542941365502130198676842064723875096419656688264781456649143703547163914439870363370714359719712420862879163719824897917103407754835584451562105421201827906077735790466502003972478755668571790291430311684422155827809404995086353445553713579575952328322385487003425635476439847191671874581607585455083945312945902002428903994179632765493226394786515471952545384098640217753685165386461246714526613608589120234681451722759275210806180521566237015519458907031230327415138758780303013749494522406465612402560933063846549849769961445640189796678287898532034503795311195843044890643450398373709123109604364951935646806113624036947081471289767976025592064343653289261804323028805016236940749044760807221083539994360803898557536562921190982744788179180851482243669773846546378118203071509384873292847645838709852016638216265163270160479451196842998770213595080659336601794052871582760545185538766386972645605104859045218961329571835398484238394220227967295519179459913630382306251641453315614908319752162809411550424349362929366246618104681524897503884132774632468595230611513739276516458159274262284257302921409519924916258984296532379281991523835039165296466403257901966975973977673211416841454717211573905797192979010304279380643985581100990084368598463471321389268241648841513075537016543561473182574438199493069431283413239756770346495721302581181662756411428094528797097408896612467926555698200569178609373047772031688457252579988735177586963147240081758116032911768746290517094123870563696674199801669098318763352372062101886847089487656250202317667199141530212742663231995127919671858968276475684515983528668988854132241495462355131282766927366380886790659723949717300072895092576186053909535357789459544668860835937553704762886008661220493540264896339781747348739141344429118066639562976427532618342540667697333406904427623651402113774799528551124955195568435642707699016558788013114345182188954233277175974908900278888144540474492707699850129202986440414321596195784192633540649386645786713326141412983945349697298879479318319848092637743157014624001261966786958129253272795225495591311061115270955698891924296233850687866840683371334456290780301285977591772393642469250254461149655130067267369988060207569049427905653466098227601020665973465252797456017539999731543579883727127350699576634445861333083914009635772585084018079096464122753989570927520141111270810496725213419466484657366452790561689665886516679138043189184622671030182185454366304910288077638698982024155510022145145930527165140257715258792902949460991176594292827768197507734377857869897322536894016850982575860804980311538755833909867541109764291556378732016572938794931998681616665247179163929882405719167559095020024719355670667057036046697292338419407940683060665203493584020583625539444077498626198786265202332849624438666599258203420092496191487744894493260545505430374637897145642040616156492804088027354915672990192214271783961187307747842687497573816165236773765957061555250663017901139364836738807007584392512425513173249054290225873939672580246329257391383728225715591389534488968112861800339960181793092525002496338271634393676122475614985860785430119339626864381234165661695512422889313656416531111116408586603841561230641970030006341159295968857507282257819714561519132690709353160442511090561308575289140973896283049231355870882427200191020935982567256386838122227740636487768403699459761500507730372480400836790006418113741034889159693267281442414410931619435251551053335478464896767145455238221303390254138498975928823749464185221977318768868615837763481535251076102544093805789371826709080854213932856385685364966065750978215298000275576021829784671860432325436686134715898593476569004667758760347032853408658371489151309686104386065245930304293815461891503528368339937002336071895057492045833083541210000549655696803159161739974516329488977885463864518291545124906504042565926046169544574674663920309420768194923951116607374444296281672967897038302314178796713463344347976636756219837172430332977462217004645776345751866141379025155311150083978639238769573877302651956298360661157341228837907298723264284762108371236277467645976424444419527950101482747841868738711943625933472871752737386481814915034043275025822101331015545377993235722000943366417731203486517531343939549109164595212610511948865439948068352725511740961821031647470654308404665312555239045568865983451899982434632585526731938107642711445105729733175326931701960811363526392947406345830037167587519753392883658919936898328527883005242615302171672726632895171723020717105558315941336548123520947516306170097651815428028289203914447802050493299385948290706789928689474644758801822943454912153435299558502499582881727212296383383489134236741012956530329573922517329810264816986031076517687057941370389069298433081474598363488240540128368130830861550212254464012487038149151041495247962549090576803774732659186576311680104649594318693848495167018350274167366201300638338464991791377665250940829834152513148696031919280507095821910060368921303817833143514337395100764494667488723302069968846417883788823064884309928783176320770663188328508555845511058860851002416123568607417172557782063709521729189613269881784894856856678218543632152193927365281811798023795565738017524869362900354350596645869628748298090363148042844484227296300039781586461235324200226910656063185764834315443000364377283202299995141903140985845492240998724749906984057642154453065490683713683316712268748748143173647022588767382677296808692146697572385630829115676307977248192278354059839211201626174786138461512709426042828291035691112058192261368221134108877946966527297401963841847998892476443940333958494466088598821990234043172671309097281903653932913422434343331292702589491371029690195999548077103287894304909577424634614185166269327680184576933679486387005704804476824433811122563320374106657020910516559891044425528891911530634741039844221943070225663048427167453393512888064752193847890036848345695324530279579888462244411190418105450812086884489908020361125234177145880349757722972262279782557221008436681322150502577642758753871036667227794001999662581672915391621803467089860258338299921926935997389630777578712674300422250659758288062914716340891300795027704123328807184050555357963857113115383295147666579242934877836910929203809212943986924556214360605576595831885782104979859896637984022140806908230974231429917576639871823047018504899129713209544022912473751565450954851058221076160552473433071181531762708187130782322297649159795368970185377872830738155681799394063159295934666948052851636399334044107081016436427092440008101822779975756669942128024867150345324161426002612766871237639061848658861225879850689895939446815480539253549023563179300614398229496253086194219083685084335842937266504180470185721201073440409247517959446300746567220053838582372997549122763836866951674118336939402418845569627303473821208967530053170938417135252403573676361248436504371799859820776782657584421488239418483131120460382140265230006483905792924734467988153251337024186480514699194797324368523813940110143404387235008385456987217463461629824297574512675026789021618648929490466957810276473920151107554133507451115431080196039467501010251769612265632477521809884392142970315553942961159871881358333042854156998361004249910956848492090336423477682492366343087803917455719674749609082772990817653693199202909722529771277924847969627984965223688064456168861234808973748858099578825803899413070292844814614120623555878064995097424426583421083264119093159255311927050979261780990879584208407373758481196911819072806379819433913817256756124954130552421140026231641390689098916256389992434790583400992085898896764656133971945448140734192190147187312246836498136600729467761803119855156647820175239449172850583485186050713312410451416025332765216171501986199785340248899714148736979187963345283640741152888230456323543685417026725091704185481343606875073795355549177513589200687488730732264887041722341591138970890275474719594525636313553886063007457785234555130578394846826365680965590727242906571190586187464878489603222160116868711411006724054919028209245907409761858425707808275714029894205904078643106621477910287879091593936549486739560175054834422102156378502419615288201582899384744617536362809923675592713075653645994888110415611975313491350512656583378488251970567232265723844829873158996353385926369325295185426401223982537490804715313810441657069296742329305223243316864370186334565827920113055629076597888843774211262163343961412500971210741192423001731805835087583642524509764614722625789313667816333556167388346161047533048567535737100382701663182421232287699365096474848163731538192262432531086384672854464552939698699364162506172883050097432292261135575684197766809212546621294649411136958768238721622910294354782905629141591303601113533818611816696982016743976765155397712143864329772049586380120259647825366271373649876889013601425976138572659701100728828786061763218293942410003059919685911715034499146159306978918195308213544253003142157764540487744839923877397258940048608832144274324017919184412483210603045260421994752861552373181040508163489697473319771457577561341203433247621021881166938891644361944775789877025363297728480018540796809474855086668237732263855568985285808979662652247730462389686257859612563837835533123649202631946439980381307942796188191520485760411821589341414425473658116904390480117013488559653958175912791766690812401904348369751083757120057118426051870015509729629142266204731711405091310813397106512787398525572666621927621779000230090496192787467594443715749740192316498455179771056058806294627438472046010050224710005825495768521452891074293359185712445579745756677529980934358156067536141386009315702323776714363160465978554417022370430935270650813557296850172039799273763078155011976451819166332996386375368391110689079796414065007530890369402839241311667787754942530963597472095158388837527639764679487028128110774338217498265843948179400760461531238941689288931496353772074235575501481867413992571970280087533435855463611499680615148038318832123070595908526428559677275351650482678553870543825672911386296354341933893336310543128254027380175951784716947017225700298045855113900478375667128180141765945198672765675639005933217992088735184143773311605391208373848016561267185705649402520841197517225657251327564834652525218939748409093838712270482465053869356378833060905567357866115969948450937961129525833249665976628419433939801266455961830747358460075189770386197107479728853052290591823473696661001778611730100984758645305641266074532151163795255382895331777652141576722496778912525130130006073074551082545621352327972261489937900864415443724994348916866368520431837669538749387914591691435756933936995279993287379169415632908972814543923189580368158962253536458057104727392602682074694390929497982579830089017642040137387978556639609453579272257851442783844972568572038369016345843742149027498313922497332424200755598267625762813734388739144996267885757702763414430097087609799446290856953966594873682836149839145202714036112776644093039197243234377345755915105115421778349631098382191682672928589484733996695504474593068896568962235927933515923420920727304937077521555801295072487163670623895660421282251186653915372497278123837891496322707912544888447305125028744956824788202180174183607637928023047368265474776514865650880951125862305412444898315161730703185675550962709759156647781461807659018774149474455570869151492256708694041078912612653618452547583984752567030228093347187894450001367837038796316949276676506487289056241106149691744738244910572821719221461785464489448186255130836270736868273903981444298286193641493793539705440128235853335252659033224555782456797445634135235107372319352860411701825671887627106150537958568754442786315842029750691017790087300651753829683956650161099730724739224971211106089892222348038878295285062735749476081493134056350014953858286874596337537809109147075484580069907335006492580350600466600087774809938424861942511784919055585988121745177675119959155798391782254389161528553866296356276978340287405810611195161968338494632332877708202856064011417567797486546828918540336298545568875645258850003542837036194195386670204502157564611006545708803293983153315272052697268199960315714159895518561756495677764259131988073999484072126866684822522620857872263266050199428623716834624247925090324285881736747095209057818995857627582653848075904335797307185871214676784679794603176011900480348644046981077123634092240491248192895132731266504462312868592331900881595347857872227883350195583657223637264156682654254849032075729606338654914860761050495011255631396986831312124871444306814687433800976336843419690642457961996319318966558120945602124889112977429771685559142673753473913645538545796921160796443987806343324708802795337167606631440524630687337619940488525000067921921515468682461646907046078118207201448419635621675497964022472929590309425631299721185452026734422711883701766427274158797035660754689419544783351061200817983978343135311604585402929877212961367017253732410124884287716570324027861470713714374862666769295344561027729424989818310455440821906140444888110414192585796028890704870849790060215785206676706818518880178521252743301509461668002811162951975785044309332681715810364183588464961008363430201298654282899849101516630548704618905217733704787947641724348898089725564746714838570221645846126743232995621728028801049914310119503079519852574031803423314349024408795867765669724291653697643086572281682769097663164524266130026056268903565268574445274823908326308023055077591154742946538339779371847537468647785716625938285510741984560313834538365745459722994942078056571396442829437045809223187004270157908137464611356565942329087147809878370108231728305420814078042968512167246960972906727162803564926467425355228440928756368859967496080836384969695925785672481454710640878943875310926875214015354064308166384654734364153786694754614434468883712235589248432153711894632739376000982523811199228299072402152478429569180915094556752679271866020677654429435073812471109744323926660803158792346190640179192319132273494269072904809361461426488401354191907183448128056270106350350104224353503338760961052922114755451111209416173318684641179519095996054600153450185964615408846337352256349566856100085052877136189416966798606028229163710638570172615997463115376296547796866448879971793911714645982470508481308539229966594004718280319960205815804817540774281532059267474562441726223755686752593383451790431102189950268215893186233701998943495873448864376171806618836060905683139737726493549451262755610070114599477809613503541698957491968904676683137959669965460938065712720126381700740008431492629083958225019894748876229892480114103578662274480272105731004052205261261121584452553449203424676568319469371810181313657188741534483362551904059468769781080463600472420040588634488684691706393682497101485457065024731276434628865758631152762263193314613850768671950025222980160100251623190236386120374513599497376017201704683930217050251492941907640109843778343755289311272241252289974135129210222822921899622340841992560694192295072494431625053348079139984775830838238725005365160007962438341359892249604668603662453518237515475396210579569614889714252826814507903144996814026038439311323269358198444547982278599323257235210115815276858959574816135825890482517275902383188339290035979082569580438120026424105468048507711458108049915283081619810618615744996403327941655715772920438427398603447629447361021467266707125707969115330331895533223239161332938572871352996771893907763617827879597333904558620201485037700999526731163502683656320189943782396516432210096113752231415087247041618598467247286177185868803774815948852293728603875955231109931422846538489904303821781857916007757405846398118244756417374256657478315346204968789380255089535758780508789033392575697670958079244800212201188431403103332203130598512009788570821946204894427070647876288300158554541173040498854963305980746792449116270737698315019878006783538623966925474557338388385341782322393344434828083856373637391801502739603745383330053727602366093732475137528299128437095394900098872029974216628258368503264192792353062411847430869951931694402400982011615555765694208757375073089289736538476146035457577671020738175476070364688175719886601049445920343513536089641829713511046334661361921455287054487984986955306806275262036746701810725922208648164499775822685916286589028580222707487043791461718880676407356130635827833922547385286731986195035700293165209314143613506860636283717179626476166922961915117522949340109823666273298445641088845032491727062704293280838176777392624287611770099576075243722394400845872979621685442504990882668849499275739909306867583302792902622429078436274430251437687323441830072584044521711671231228058888677826480556233467672013844299025858713442628454631748903040286158405093649388578365049875322253698134244563217795068103863854338286173022627549418217682640570756137095170925477021493696280118782209357596704727589453396468696551276959708228201140226416950990106132260234481260543081201442514438139442645310062131326644151497844610680453728040279662964752015458050075787268307898676191717657809300697808184697088383367810273185388619657392673916182713952249473248748678602590819338172526710314734252201795281369325485642458667924911347644475589664919052212599940912524151705453999662098129184210641175785529827352315547596541520035316195944972823900286470343272293796502641038985123579893930925314865383297141921583293001360596579480801471969915702702239118254842968576684128831300607629862514728616268400264495323029632337501343910200992167453229785069557661702686339703811489884876630708842340869668182420032074815276157871222819463094838460766321400143501210101118936603523458605080558607753263491545111123981680729336874526162519082739061068476244337937509494996312742557863092689028744222806055782259212018250443714744540569822343631810109295257387850581069328629468132365280012614533988629691203992325076229373103887454937496589574660219864722223121902119324246622113503788532314209458952141096903926018932161837857455493759582037819400400084720927674735509107538979055858439795841968274086464849078477603863628293218789695830576013090533073984637524780007404612514871754604607201428194225234251011453948667350066420371561730640164685430109185760681683748031572700969197836583613628421057994678690217548744688910902061640249845997219135393394876773579622160398577191106383687371613908186749082477333223093003342541698425992252553242038085184906737431197150708052614391399768364873666760113511010250762122660473294832254022897724487409512830841198280249140727584059782343961128013136832837731382740368174879282270286765601915464429534432160875007730110854467453625474087430359615310228082038752674765656342005292141063218551806256617247418781128229451086106455788117043186878762658963370501725620178000310125922637572815982911914804107265344923300255163583503717679657876220363402059509131290202885225778868902155888689301343470397343098672622268020106743346945631107481673963928897545497868531423131727814823673731750447029012899541302104210668725570834198636733140818682016464746091017103555944347324185462618168659301522654380426620872216996354090840913488553201321805484637185804232347039317949439272059879110395743320244781104388562285133345504777339863882884816410290343444778399392188337527768586778380313512994366351513157941441310488959401529465249297329736985100479171729580611018998646912607611776680995776976172807344960488317009101012271117595080831963675327454260792416669895913528010415376939801938751037626087009906587849811583700956158935140496918288798686372207747243898489564164792849823195804956172125042330047657611110589278931193862882124466475602069911160524991412441840116467503107650714835707398340774372892034141672570830084201236279080883455693905521124058348779681838862608378384905369152758532974500813492056942630091000947519668328038442418120851723616560770956307356940419491974147497447948776004991695402982566442533140717120537552815111898156440989805687367447653798584669848614352137150278834974849446323711661673140285330621626593445024438489362981390319232127440059654340635291578908321432488936684099128893057320480142345252769224461219780343123874960526371379316967369617759386641274797005859484600100146631044643813444222707479716026781294026619573079085273759504332970183076470478988702898181291016175981662666288640581121673520802294900894439663707966443266371112907881352275656849567665943178846247607157541376044799597915379015074701082297403732235245378969100276837091963352174349694859583619203107684710476797718363743373563560488553339686372511396950690807838325051529612672725675375702494893122832414348544926453877701002824438336568748443071082353281358210405945558758352852802319600668617573651407703829158616690412179964057523525614875510873461869751348945251938619671021017894680187029776136523320898589491067698090868655115691801168451441889463119807317041130788797604441455095055218276577127947541970950403517670603448950188355327119906293427223421818956601564743330163631770070075853404186647146799185683470261448920947070481223385290481423180744427699732834828041106925000067229176008607746898167382408895551713648810489787469585243136803717719341114594187639355990129051861231368518482288667398947137451054678521393456350473079462587854283932584856954420936913905406779227193651187318024182355848115354902411183763196913272313404345643899238135237810048760708572527704231891281400879553643101103491298131231591447603561028337283702454309638167486158053632384047700533637794731581023585543186257825779258799092576610582037849107028794878087046854921787183120737937747975863679208887647899905279762070063412288295978950188524613275480989285186445101514814934851912520211409246401458324481880722987518828908057710913553059584374626534932085367492351325619195693067107417483462548319977692215705944573351308589591215655329438895698563344706382658354623207981416237148044592533519299588009995646443706379055584321540178781117130298653364550644525868598050364428699376125772691487840424549343643433486908543876975890379837239484181695590485394059463131050654057891074698274091832279218939104061279507970555835312587430686096862148699854608969315269668169322280691866544436979491408896009473852485358622873238278327440714332033725754134886483427381298820263729469585267691433031757152403597035949781916779973220757362104885283662122151701919173831472565832944064137836819163822140383212783045305253450686335217824328211721763489463488274566244649480844449961898688292450862675982721051894616643063384064430352765853537631739968863228949395785624205799280891710314733766559736005819341823303225977906600338499058365912677549083129998688058628263535715611918733365662291099867478769359371721971578769433216704325678356151132407301454671731962728152102295223957859069257397643891178504555144666454455817364520727057251397810901022332057336546673490830245266784964768448949688180972960471463560318071714247466258969074360888778730147405070426752280339376178216977370958748087192103954450878487529553934857733263428147401623696199515300347332814356683910279276871661502459982999479755806347277439953968709264573639841599652839106995414604113919991115324650290888277547860193888748707908707415202308762135763257692638576668767463896441795165478709005995841483964707367785421030345122210242488358566708462536472872931116080115348306107040586062242778799114693733684882397008056113360053378542645590624437181403513100941860470830170809090652913882238613364514204491000328833011413620463266337960375020484445974937558072473066844208946874258199586345243047282675118628734760245257847803279201296230550271499234258512384341031268754104239525508004738490581721540257289557298492651108074778010594797128068634894682226285361588650745448025218846355816683408035975385901548525374805236003492563715162120898542938217423876401453673032822037046150652640770393752597073411721565138134884419651132723776934678907835909746865482485258988278973395490567333215804002698256103517999488571373864280732949147511678955530062333871215068936346654615859324684563567825601880004263493560283357635642698314655914961866197099840099072221995599641565385552005140979836577833918888241163650136856460136734013389914923439231669905694813405728150631083258915075745208570141992770339858367617859020710386678668936506962794474702712810624144241446466635350437000180789916056143628112353545436606365322995064474256781112943519122684884587901301899416634173262077361433841211451755372348543713688048680192829383469488670638504697613259244302602298843216657541620703871929645544967947346274348903771759816491984021497408361410852515870548603245712456569674103166524486596898446924206021661262635118125354798561801797318518754688725004651361866195160428359330641722520370384404961667865955247896318412371221192250374799913216978445276839425036358297209346547402186598436231478374329529769582991820253057512596834791811080914821762276059871926104947968136918755070350161250562754343623731443397425657740272027015561152104488488265429063143396935736645013074226242379457874793768330614580203424775771324597884965756047228024004670539409786110018217027842790463061246459226295097600193027888276832701941877483957171241589457682311581554086403166677999971813146901373625830932428054395792635748510598023424645488102535889852019869786816915818708281545114283600200849175557531712675032858901039935837839213361144671437709929090636422457470110332490216700175964507819054366813571304458334326817290964695813259152067238439983583116690484074719743702020364741164448684095869309206076368608294249592782864184683782056593404443504082154017242818959627416881652469459244757092285210634078425956604890289956789978306523361777562480185585143511433874230214414004568421747288031362721077930018548407177650640820483484193413879956639647100922081978053257713949351668457208609265810583578128345986448309883896501445747089390340898314980678427229871147339691802302440320658342587922511981704617798753861034670554929213559185976618558477292889505455970555455632661331757687249671218533372210953857761237094537234157583178641105458207627797264938943549704624890990013014152904029298075684103839943709628883713091048064746126185235804007894549855259429693804932489859924711358380313506919455346946337600043378429572696783514452834573378894462369268541600789065434934585773960333636558650920018573370899890424822937000202197181779318730119749931816404809985758113163676689081334844638292954545013559215646700349336336366816536036837055537466733666430049269988118724546039780930234456776991081577353670898371262046621774453421246906596007387242976593971718342598278735534319262824905230574394161939436709526597160675778692002964716256704093554114729560627278739662215136028618654190008239388493945934448842385644362737049869719091665803189533013095245004575298736925914312283203185240971449430694129796069294642726186823865577362020642089019539767813916706344170785482035588056157608518568597473009472455125557965322797586264997054463467081216461786154368127483352442193409154690405860507701774244887556963775781523102951692069599060448326324544976495341355740552084801193574718637198926448447883384264698314294822787156575521118764327290342677330138686729570814406717273355023355523954082603164299201630426491707518113337325275717243526612664415264366593939928498289998685019571963917690081078056878628351566999253157472088304849107707303948165716812650829232639409247428911245148847679682009528088311811534166016343960982469348001438596367812765092216746439691930669857778151971169736772264250837712600540452301358444023961416243908514911231866473884484338467992528507717937917458239688945635638527275665119800351808377446326718608543411703282938757774465642958707839391691782310033499399144472980304026468328900928121310114582511316256208975641761852526896895714975398926784985338827730780739038243012994504405050235826298336350617986127994228803391165726764341193992000151909759990606616991860963540393726492891369664891218425455195221544873383371527563391741444511537358413942248340892219263021003163174629750938957250037032494974068168434681002512903573080090182559581532153397664707945778303202638351409868132894654874115474007874682308853462953011431976828293230576575009698256845644983916931335161840270337246646393393142690414754850925449197339256616833847433113651853961252689114518875186337405223775128489198267086509646314792389615127548193693815798580568913840153952444475050287968618238991893542119272738907324065027493142313194097782905990549111629772991966584482869333225690569854308690903453407009052035240440785105963393749036848054222719726233584957766948564098102831798342814997330027048424329932642263476488169587096499664187466604624385192979610468829864132093451949674454500858305129230858287872423905283474483307889746909719236491498202157155302147868811509808181896741389693453221071262197124690180092308701468840602929093850970346536972074777728553515543060767545683931247879776340360576528159983352334857966306921482156435591214224692631209259150581794141652736214364288133042649937544486005684280168776854470911146078171505035326653648357382167017738714456140085596534562986686146153436217861199778057417653141788362060519412164866255305531210140457707360113694313020696724035859296993597187274616905179182880670643888457882100708452256407997266520780718522344262774765862044986526720321522473898306811903360457738761554587297521609017905926523218321701679244444527742092934973036677737762259229469923989067157182439899924703912629439605108346581564662023777378804121766342305164497229976165805017209937220059022978013329209125417257491266526929298037812511524915027336903506324561303402095444075956113219609458632687663507682435105609288487833602653700456625312189242951977496404300461750177108227061219698560719467804331324201862762123584138311098734971776617939380247363075472001132373100293060755471192792689188619472265938951875202887194008753244538166271930382941307765893002285300709217000983464036214484524539841251411333036490649326198072151598634985714867744601998338060352580416457723062368727800670492268083696412013662042635045218389631608474890818697024154073378139224070607836068529192552741621677518647976219375937081059638942097488380509074273330624651742157404624672939779040128697717467327822942025376833043371333366360620638128456682870844379092952233786511030764224705177967371363289337251335102362558382299570840080554127724873459804360937230080236956549282446948614615108523787210294755313523662092921186598948919476890564788459268368625614808044378199043044542898880659756982939514975657542856389938135191019009175655248660902895524328617955925296684791890966168077812638473876713534901403835492046277080734987837760264463321185965446589278113252204916504649589487448092917719356332637351822948704939499271672817110359363363423319667185405094102549493236163408576083398019266408887829863149828758915788281682411543326980021273332825483721575072524682871069508260333681821656521899513951710214603513194505061328135707932559341445432360622100945304460823805307689212044717772484168801131690702726569039372131393647351405247622861494016141376504857850179866556850933310846507638104237413120472531398454571569396519728612211777721092964085794415506060402355985598714101509720172576539744781202569737078694688449145029879692616572101636404773392486428551848254480518632621559498097199635742448297970538631635309784494992717585731164833282092813175041372113221167307667389134892515608753272845932915566141924591799961911996181815965311994842278124897166498579534072151149204164390098217590208816071682894888188839439921238190556077421475653814414444266906628776214344911953664050793058616285676883651926498126645785993452933197380496799169574986180674834817329267566661133710668737386678767473281229185722094054420340396265742602410079293577609112052691148461076988782895488215718506255095497256559393900523819249386439640350050669602874177463039947273538255203339909066455109739905465205100706248122673502260916777038521740075622324560189601632473643153568856499717994726367472380385814810302600402191549057200388747022053235820750035555174181176134444968832074261156299191312300914813890614471678756466417649746869952583561430211935121797513270875376363671966207362905682721512600816496460290788121198091174373900165297632173464844613879517590805507967096963688915769286844177220633040787950297075446844485928609114028006491103728489692045522868789475289371487869478681432008199381967804695878119029640330321677563903934544350561189083360776711574962407266016596053529884585032398358815339301716823737395107914049131227227447612095656848211198938369646223956535132557389960202654140370176605625385627313414644422112556167814531970808793449128855002574193273792027912304583166515464607093239713577671553728163087120522477618439354730980227651290981753098069293242240972175144793959848795307242295151592781108776732842321163025641954270835341629480907201692526634514061015388047914992380465417357810395228430746818432696174496515840254922687352681440806319105162582204725009013104138903739824171496639013731027775815223754520823736688396103989675860703291396526513539881889786581419504193338465264342300363004603104875312023462470249145014525306481111474453974802684073970105509681315554589152987812356846551495205519147914065080342195585857046074907084374166546419325465745022326059497971227488790514601565649625314981090995658344376940554372345659460930470627772833117602239168850828199115760724028939245334909259696228558842184486716223681898662914756107542252131494880939434857322120262509150302334749245659285202462988653287682245119067810148055844401182294201384416355757445309606178220740369561370170715702122895688091721199757756640969008699175704967836588004775723757141204625208820595886398843261697954306765546387663131442404910200068449225378380061617232649111617081909039922938178169718178816736192119461928800989022743351727518703438351806516225049900853827063705039956965393775102429939131168228199337320194581911261647954045661497343688903073388182184780746468956318439159183662519974537872249094087977189146926419075825408105379748959086325932999263563618330576599254552546476603686269650005414371710610983310951236446707357980975033185462115216710495109131124533042519572001224230030203379014946490050002803133560143926484919602100392961644537832592080990091124637240884702698689216734265304396556398989727719779220125007795932801444267372933833399576433389533675245227810546119622652411995018412954317523226737777114664594869800182519348685797110978457663111034421556472485175758636081623932469557578967236570929906429628011921191822016715705746008493439959311140521264659200014967878078640375484837049716198856523314091002593813671360307951379133887622164016825608022734076948787724776005629298781592066758535976382291361558854465118177867063170487963741336907713912504727581647727891090195649453469562992239263363476226641341788341290006664187508030944736244077735491922353213417482258249321601666546334684781756781714913156374449506223348521547063841474424096913485612903834702681540804577353044827276489046141960810863975904168876595948021157802635198980035321334169419794635628362703255403543525508319632025337443252964703583484798597038133892966578696764486946571630131394001756813432267181569932466859200883257361652207436035876729956919377653284911718955091281310539799742201748428575699224358086346722841332114632267298956761080680862366397931011705164464852559742880716963206821595201094662158898717684398080615937520604104529284435881102251010256819264781196397409506189032265371269076581579697481556508196932597606871041327386985254647873563486995767957501937289561014757219755649750490499325080622407845531976008828835805138020447216141546119580073120459799449352419513207046450060434600612746629815534678719667493684742301342526523780744925382683935878852805827244425010890885690362458790481761845312271614457177085009836992966054140544014826919232359522462053435004771523571428073803744996519828589085090818622238016828241006689435031527544505903527505523599404190512960533781239862432934337556519494930198037240826982852191841349837886932036242578636295994226989671263611156129573188683543529083951410293219069010456700158290599252425555961209434369141567721779187049262371702647231116773416676307673846994692151652294940341859396917533915900697946080665676646761882576843543694046633463451298442755779016398076232272128879415838304724913284395228839785986305588360769239027627229628673312480577309969571118394039603544158122506068071284569313876563496549265308640850165602368238722263799460476251992941256007657409791457731013356764607286967929656941009616234436150503662248428763708892004238889495921651588968966089625322718027433045684522425600834810916616749760155962181652143506703980427451434374457139783292657703423028692135930938725011431909166180305936615204149282476037711856184476707205726097073414671096207959537141463700098677218448371368369575846927982144999147511179885072727350544507813308369382852135380146684180297117059356316765678365336270605151973189114732384678483976219274384072304287419998320927772834933318408676729109540400478016020138307606227141930554173216103644401125752201647948336100314377547618183221858097291242846900760546750570632260227595453617241115294674653750917710910107997093251738705298485969831463687354558692413315518887494602814247241394434897623343516555600204110832605543404110768659426969710227780767218934017119709165644258498655468659093774642670372937094409159674958162427132542059507642886765888476687839230181361065836034508900034019545288122826027107935285436254160180325589654308081121262646940399065943928726766669704695869325895372482030407421710738445941414956609482266514435625149004544132645697618830683172542660288193228649092366971158099863780060159716679880687030855175935791657249869713632423732254182861192934162965662809245643900182683110867536414117224264852237557203912943735900736429514113618774705549277229953682704351179554956720758486087599107024155317953109038251828397884414230944936817306073970368124981174631784729297868630863238670442337993513794031326991412596678329911108376860230293801317828572707849442912438268063466902189762692608490718570359252990468766799737629875661575131585913983135768005859946250383068124163349515399485205167981222686396905708363662292802064647455105271808497388530822936851955148396530486410515733876408294093189595849727502345321339138048089378713246098281510622669593492202585418119488658993313278095777018882302568476895526625152281847175644548781735556170293738302054332342911446935613040742369018708415829605749478091808675645853181344311347395286729839801893659767679275595312267995603238136368284306915437353335066265450102703561752023719757504132148405299126096317370519102741090522686978390232656877226627104267435003936830297531240662452585063769188241338950582710427383986709147433284924282921482197014606397294011990423770847484952725031496166124556019292596165220573327541120795792115288029885202965357420761902854656451816200926347337734226067080000839649081419676291229873569886158546900800559659752603178951224764363883753627382922624671396719678327224374127607478662536202838855970863927139254734477121222164889706363188876818979435695854862318749044826980829178145011994779656989272584475172719050207325177078692127594881912224527526960122756192283440768045843455047238730983817273614407407305121172308398455249654883460064854229074801610391336866199004556334909047427786203208589377212684632443282920602539550696881388078546873991432626153841878409260787323668286654627067499482984340393762750237309936328300411283263455529355995758626534414811931483586739177438892760798541460869979154398240616972837956270265979384415060064346212690820678757234226314453237849982638268351832625188373156879434274930885751226976384676918752869499022978965931625386982088198816433630852377964648693115066491837626478485418952932078370354103737637385943659970385944272695036951805857255932175847606585191547672615896726955117328474560743625192354798898311324082023443573008823701354968666007512501950609680056585098818976086791498718747160456520304755847452199570667269344190369298025407306455542014035629127795011425944984617165983537610684306693820372517408603157590793827467190098681277875220352685263403556696162106400312476784410474413321302518358913327956588823060432570954483638904969676461653736330054426897639120744398869331121178947241379586248981804743858105277513900344517717073316104253323743506239732844021351218151449284895432096770211364248597013538629658030085173242300755439959281593266832115517708676491714275980833776752617630264468912616196102127384568608796967117240226657628129902243860334584716169838661032182403653651554804069905552443269766232142448440201529604650066449306772446454065161096024062940532144221911238041746528504176852362730684453457935851969769868405148992202095743535454535477814167049098680607214538780831999641379508429440524826364878307677970879489811162079179077271351054602690961372813398203206051791210760506902162617866201760265461153653449162600199956383230210472750282291506096547287522371614423023524608066147781022470844658490281742222855518069805531939583301536851338237436334884076031650659071617074865257924716514657177249437219443629538549210208848595262513097451464421687059829812372355823962698238608776529331094174317681351544933459311257160948479885812810075715093817479531707211869709850455875240618724806434277393533232244806086412205635928451666270107928609861322479243959669795962473297392408276784585625088684250499227471933049221800955754537115389979934954743819595529037593971032013679175712936711694004432995360881166586844516007498191867640375227540294746989871719717443431636973417852361186365764534433274737463557304437207620405875402711833062821160608502269167064231318179451998142530981825456836125287987086690795213072935293431535831564328312200700327305563232558459751667015048029948706099471091007409449316458620812922798007093412433732022704140056353502763482216725913917605662035444342479485347964405514522191514051259310862829009723772585844809451487195976799199681271346489833009004122915461324242958577269111713971538103009762391287546636048910664842313966663166034012041866522572407317409782510232224700406266139371351976619023710350437331418104132849091898179554008930453805293134277267890910541040333502684520059779990870768904324453569686764403255617657819686622258096450587600839022756292976485242473549553028712384193568873279210130642852510256965001337530764543770813093367380361290503846094888159132818943871830846171419153990223428491743316656357967027071698898545162858629090531512864910740459523150320696144007589242857897271307741510383028748647962408015212581003843294355505954283543122216804975932508601964252658000284525127186474374550230586852709665143925938870607259841012376879006427674688110752514849109897394203006093642282461087322237457980507143048817933197603431059884671566481245886498660077944559172767425746674757241455392675258032853740891628238468319204241990298124850844841877168781793196059341537869087220854028045814184332365991265937529621020180759284384642199227027801672210202045996375952655172968400991294714015296661273782164649078455180299888562865567329893451323492950223563406146876488495668417612434995855525507917746939732593339501402735706502170443698549709388158957016996219398361841966646383944104925556192701106526069225500399046258856092452570745818816099996836090890690093697301053678371767651975921285291085714950686990458290787493522796583347312971744444406360851371357816006301987135617615608691416535144446356954340734361214524679772848713617257242413535899682955052004320050956260609021569816729337348891257672797825569554897045308740128149127758038172478690007729234166772821512644779436218612034519982324684835948760011702575436554824225568987413263521620876625520303550343886427774831012018800140303988825932469584046626141420244966358042133268000603873755516644297487788353890240570160060288893840535319381102867633101488293098244983861576003821210803035307974330878550163652452671472378521599185348091276713864779809573080394714537624429549109727676218978213838493336034873555928045348022234306225615862713363170047168384384240051949033780507816244845255905645162880612816573345313242840931097190624159972026300185434241327172944650440167788856724404594482791878177209407051139814803201500559897153098545491616250131407291230913486985006718034454679805237093693223732748856100468107507832007750147438714430465013208349634275193565192559958818834295305401865902503896007894009374006238894429192334189976835277061603096057723608700202955654193570382741468819190675072662179514421536662444103581322459788257766219707318997518437559662234880998262660368177576403650392483283594120524275246803069612116849884936668412744095616067459904578868322704545103572434693585789932929702687869363977948757888289250704817730827586261883102963485220437283872566333765415939133707178278080957409120840890151401665466970373386369970687115283409327186663291228875859285691342788050208427882252421498905189988273570355707481026890200382139178346358979368738622655296442218385054286248487830429753321096874742814860840872613139155336801047923741070549426832789754608567302082710837294341794757486520208267645689460801362502705656478839649692495324781210280502824471850495662469810408135723697326067647946966226689024730890593811232101099812432068860471823924992081109432124535236303793704516688282218638449730524601691677498638095307859615040936386121807511596859489486516389410229892828157615266393399813946709894333781551493910500264782657831628139772211370605128861630993311499895020477882886656956687777263109749965494123694181074352517705277553543600281654926581260973102567843467571858568041894977810475900017512858196674905949746440113171599365028499917630748095893857078945174720020431078485030178150633598225475420983177557759311765632698092363779503754930353001205311502375276016560731614581727864931058933814100120226882833040796033956354508235540130730733033850181286637632250880526656576471775229136586779336053411967768474225542704898067291849709739763751921231893879210762139468706338107314911942300913767383515055440398528131708235125780956289134660421636119111149996795702083623572121534902488166160745556130418341930107421190829478483212800091056043202110731653307770574449476782165135102434781589481723766607956939301101365893602441872045823818193248324968901324286590906260013652370506609025828137858604784209463160257853576949318256731613338432208409047478939962599838840368563481144232865398456650461886147611044663028247479748661733664746031766046487238196963406324385526762978352523369933182101832981366088871099710259160819102520848441173631708813932170751283573637734173573901146690233060619812169228923305993097164706956972387156536724626484108492689747426641168071208890466424061244051447948336097571399477140541676647750508538957801856065764002464054740507631930093911255888598085632873350509168922228727037159916361083370104000520612225335086856915951296994201597196497972320786818187865907588266079472478072505540036290232557825781315138860808281437538196658149283332642764317375093326362190965341652221621059822518672994573835418798175366454716526822890776810478265261796001285019474855688773268796706830456405846171869034592257748365742631727508622668470473230880679522091230384542362511003286069943320634800422247369230491118161197243529309271734499471301817180131093721224208699108800030643514147980943190356596991582674092523154658664001940594043053084505556691170193052799810408910853553613523084866866947412958439479544960037230922517587472997315537012420747200515089737252981779497853967541538398930497804317898945060578499833807285370312645982742317344738637050429919283183520110877442623649927479017341104313594245507856095861944344082945412366751082940435536601598948890799706335021146230231445850696488246466206691162961824304920318398503976746824391093589134428162999957493588445961301485223550476577390049511304861248399881550280767835614181740274322610852423422513075082938171742340752414409528679493517125882955879278855718174764477668932328666963312038899857210682550656108624021680543983972939756001703202326540691646130096248538912899336212533264555583425061050054412087782712935325421465731340180292590330917785447146774927995221338267636121535946806082473658070157404179969340636622765442781325014754093738585860762220721620794776293987463049763824612730707241537662668286124290006212755306088943536017526647904759439643817622066531214523797429332810075728210214105174461845288893033939073609205343261232413959510622778942207240003135445177919257430228179605615371869547871718055946058245699729149675180061672161791045499842933872725355274154759032138356927635559585644213668843729236744052882700657902665696313323413222489398171631476222715105534452656274744250813314239028037950877793084277607274988617474500060307033275260001002988284385197304891992182665506561610046387451560957440715016040896803330081951752817330689818549229036524322106204825237283553445098934335707987066200290781418859299164823091244308529815849976160737772846965298498537894025295955923635675768552076589186932949798151035345865918469447570770569438099917749917389227160486138164325992084622385353733865114878972825478645062989481309252435391481053741019376742481126161863950187027203133831414506594917571786887092059520424865405756957123175131172893915479102523550400255457762967674688605216601139200484907549847393907568029019449306548344511522921101811943562648444914401244074460444859437552887027985771753697514448966166461225305309315276024237366644423978841045022309012610123822683398060223700231665556330655869343502367664437360233030232253768600367594510107970203288998209902610150088517398447896347681896444282643231269945858108152921979897702100240929102963131845846791640506682012205711587670607966662657956402243765797779116935931308309540693532589820951321506655312627425231559901339392795917635875584807733336737133915269429320480416970923749678678461225242176086588554697204411629516541119782414227030720569407205107795972313810926594940025885550124029599405360204153589025404728363378881141912423339779728128776466700332781121574010761603345681722835304869489804173627806780562344986611645353954026396858193286883267624296356984439986182463802972268085565036394265338853859053528019965456684280817133854579959531274565944304627133579745169237587596496447973985493363614828720597202781613929188704833652554024405083140915027846367771245618972238497894607993152721426671800802031083292907947503782754018066108852007590365226117432395455121003352420875958175082911989359075307853491067725291748943858259210332289640994072435093661438006416075430621471946583817349851740356696303934319522559579740326005547372177986985263837043647681642125470349155517356463850050953068573831361866776320528439358060422068267718348014437695688750869375910139128072467988901356705949256307543939493411777670428238438906052771846805319859807419305923480866978225927268983435361743927334000069734713096936928831767536441616968097758164581361920998972348735917220319658007511275903255446931121340480772448192917099551708327704635079799013062394052764366871195090826403037312810627185572992714698164073498717253042698172246671572873872252080798185032875447885433585019442981088321884453040267378577830689920087553455869658225169501601714902005804463089724627984177724423475268119139540362189454093315123732975451683358530648599302390709023356859654785299790067214830497002283645987173063599449183706263685579238537163502535716692913497182161125967795663848994539693651615183439059990913448830463491602515408509218934606799426403586730564844418110635766637432776771216062990001937442244435215521989275938277203803977490101773482115519771643658318039908497936408053270207868691851634711117781231688429129412931300123313070610718079803579031751463443074453082626435854343757794665652912326104553121220447927102752526749280033250519693877162174469382339421658839434297587311742584449337075840567240334807451560284352867516998290636514725339670792305827564445377817320279442674286808094975323425265023569386624288663501323499732713575665887819168747899976963992350500587141754597330902844066307331446243406353223782464507811928716579031196762942197229063156679887389110898283477111581768885069659110468983275574229890702944965436744118714069787562422240354054329300087584748424503336913953003800239477067134104660521500441704146141413391060402492139344466765826725068786306650058363537195834761282006501842646002749472625833092647671389362360329400990570977461141383046361305953447513419357033344871081698571058942176970822626692037758671424147604359313791579494113368084246463998359530208032105300931486636285974334272384955526864431477573118255442139294729637747658930830508526534337041199690026123938259832550161721608916776081678020743905892151307594085708855568314159743571726973348030031315170278562401184205946180285365526874062003682499062445781700928927405717563022951709899715661962274198085896921967266152219444852843466078944113206130207653574671679749172592339455252669621696124495204560854513121601109169736420071858709284914623135846769387894543439755775616629385686600755352844353314611128725363179797311088595802752622047338589560883035058225887187555452251859357247118602733587365427892363450573443961570060417279117376375351014081440433107156876925365096177374170946043649089326024640200656498110917582168472537358429226469990629061295917915396745264332360403486373097785082079314557022762696643295971737777673552732199782904294996221471568282741738734834615899216875470431618207352127345640994240683464300584473828566372635075174951509478883675897189569769168796129393917521363385998781985279692599796916784609706663806229753346058777697466478913585840647887342206416137937391485759079608619849111305472322005684968694282637340431149690559830288608187232141397516125054521402562535531578895981901803594590470612890013191094300655014875562033681990662558671536396146623680937094960315727399846052950150832859038287116277297545809055879375525302267075713632378102066360282200186309550511164771486610372479955117550775806100585093733909466645852663189336705865817983567161646704656869469096599113075998518544069548991958955322584964010402877132738808012387774004650005839522728518805015576632496194642747354510952900839585513539559959756970975515864155432953680128327419302864520782800076217535107623124425951642511431698718219736910676277841435506670989410465832350067197897815899603571600508805157188587275326506722411918973270781823935584240657945783139674866993307655730890214144844342063547001978061268932329247831940083479915877860912705942633903813176748548301630546206387514723878403145744223686267205379815337083165745232583569795249662857972606614290182383087481590550647214360478877373970316812622670126823572001977095440967502931942241123059334532066716017971229819725569405073353862965839839667840158215659298673731204818922849995096812504635437101771918804995513174080922231101188895141204539919306236683614652822075944842260685348720834004535650005742575616600602126043325115660103755310577517930828784999334009258178728798128006142930947882836931784269755800752885624765745464973320382367926508729779117868904246013949142088927303413955359432761536661838199756462205440665471518955337920772130126423233347380446501121021355283503602338399027411043722336730492566715045045362453246078889961876759732325520629502096994457881811105268886199490257279521159497339832079487874411949466785009229956434015095534204050262293938635041757194026782402246548779095887598322281626365283661517885434731829081620412186060730260855064808634619198993204297627714281947867645872492155491124674747881144694557353065765814243416420002221829693053095020751077683923224414528333195406789723458641142813680337472331841689775882904257719836714212216682783176852458986112239223174430215972708826361729839035016414272746986218687404018969181232093210705095068848409565230967961165147531118700689327319060578662905340726008061356380112902869848830780550626411303798978420691138590712573111504334889816995897846996979329430457114671481094515619334177893056556690444757493859288350898755594996606725779345885640963502916844542540597043696433969732046399995689150684090301075127212130889193565014358727972667535961363958975227875180407701518316181366566740220934813283035482040359899040621136084583038946104924442243377436759136107327525683579976477233191132674550744049528852270189781241780487832000305563687067621801874537916247553038509321373126140522232777827351562423226306758944964722660370720617244896566348362822466072174670525085845307997620491273596205436888872366592294023618878148663445244530173346229484642660384792520812130151551433669568408926553837436759865873467198300414165070117343446724149001644194535003899970938863450039690016662686540096993311161578611591613455452244204146172943590520389840410377419733802245424237317262720380222619215392868078585714372367904222821094658034226059631735769889284126634796197918830258590604560794345228553533689871237526808913026206439201644175255555184455776111930248462821787746887330181462462542310805448504382326489711471786695027984294038985171359766814790984804263933086789497514436943511357800027041854821437570794529966080970782621325617183429474614914590510902675341432259719688465144787054701883838001448521857532845642062048519019166508671468948027303446170441852581775572224677682160648228500595957731303521558510758444822762285551378607407738977167066001515893159875518187374392988924050777458980304950036534746143162610060762392068580457305040866134519849404645515973547601619853122078047230958673431899967976734218258551764141324344548590112512492349565132502413068616098349104038637383813110621603280779843561760504941804127018307792977915461347057446229293416817219302500080469256566036900305180187128504072082137010315378956272002248230264298307457418145109270902349851632734848129131429241494918697567546750890646984308698141364359494454751657220249700729013465899373903397366313839366186687915705615438475717716164733480702798618916152502654587108041034401534092830533542833503488537855953531024303121408396384994673041276914508971009697508455315830441857013121091169227280258010862775285232888729274135757681989435059948236362924721597439652121263832922745479303523271053357103809750652091333240882061295791459033835972548009985038692742883633114293826783638899520426663451636844434593025285583396038769271484967407091289334314748320157714961277350481715486590813412570697434048968184631269720928373342232233806569932729682443734994638122547016267416515612357530010008854880621956978187684273919708421861532386843160810648921696670908866441643069821778783044333692338879587120952864659674862744011082448403474057690276041603835069491908777963097267561615585072626122921299280552332015174756985601370379804241899920890720465588825915457864489444942374704143742507494112538282860748845079358690406510256283684782023293189774786157702495054325612900617804443777973442577500737314117459941255653269812323353272256943302953475978304607365158488421754297896330778509865239523763956350465464855627258189373908850352625983891778489397014224197255318065576465877608063236497940460079071862959874438199294029160750017676753939851817174210376599295602184882610808712058042943373346613038706714561346987179602959569604920575448181464368736130395408572139876713413285928833668985822913765496719696124618578543910896070586076203922134475166110806671539299192115389422355103023067152196050059594567233225656101868595102020739816262648125328802789065339011579775860053815872361192828357758167003159182637516285224182379266127535579460938401462036294153821390189001498162891454301196709284071137747456384670256122753184246977808699123685426913638523613829064105457997760302637966534906746471976969045404690785687819510886648968951802101199264768788882299915024401354518923224988427032419895630625153808223652327546451153283663297039500088017819585420431822415405834371075239182742525190904882569812443684585211822613494030775807102920594081233205193341220948104519604101482327807867580892321018521908620709256389480241066149910400215149409844334161116274252853490613347247297183228824841147776109200686448763384022299646122302867558090806825043829498280798388170186574779275303856854817206385522483154713097893557182006626583838648909589306066915259511573775498516040974765714687754174996096683452774796757263604340659291406533120025494066018308854871123957370765915027668622280313612874759045120076522604833731525778277109984203902124507601019157201249498174229666738140222347462982933741947233584648204155886063352049389666668939041376132129441069330032083307044520492772783630605301203858850450980899509958767331299888663956972994474141471671752231133649992032307899046087729718531569345727393508133704457163988697649721363009343811443257484005086744510753648679670089102275410220778727125742915939436636298261077232261948586457193208450961029912904681051846054769683748180045359825147076297195982942611895523965329999714696205313767937597359957530715218084584888530759443197149260398649239075268897480780909927604767313954637626490735638748942455760019152536686307118317411783064515152376858420799352967100731719550149360966533697124985062572084395763456190560834061241493269419830239031619295554568628950425219288095006856124755012830598425671680954798379212028579904848482824968338938810156368171773323800772657174160681022350882773683172987318927124730616209349331887423364765454021552417482384824344922011262592995254586097344018792434924428333431666089370704530335613609861062657663335839686458601075981369802325301855279109163564204358123316290423631155191371535146633467582436242328654715157242642420895093392283802691346415859771384669069572003958654690766033370006592469446229737525359718524379451987465974074566051127325273891039503775764402380651695370764291504773553384646393027895744620502388335596941267835976190580077116823482526389320139285501145792803236626720664073559339150031721319836018260484424874148318099362810128304050023808931663523671049670824869838454830678151639329484838258734228418251557318604258115490629686315866894283269693812015753716161730320094781236482957797091623879951284642103869319345807513061860536311051780158257881164446203113225398597456196743085530711946056077693584701132967865219043297334902913560088505460294021093525239714443165397414329097961675630443180013895486899551429452414335098784141759140669175798050592987232757470356293574586775835579652218913365788535270360218495404251378830676927017592481686544437154209185845026520797131224927459462603401871811391486570254579726770823900707742950915817618296248693301431961575648556046623254991805220910776346368891775450843147674596335351747298445520024778442537699974336225433366062064906492463069260739061723579077835850014894454623445698403333029977358050921294572377629210116682005889350461598788426310379231145687754068298558695717913629626695537708101493119190883077877731725950596567368272004592763379848112460171415539447391105708598128133778510081684936100645833590951473276447824841005915764617111299741044346633945449793935839299831173005694930782556240145141508975020337248123958500550062863028463287186334590723809205040423116362401029211137570943454040299069627665017113484547818213976565335759030471958545494885014701486460644743446010429467729009280373618189837384252443845004202177224708428796761416869924609711745000611629859080365870648632982469841753294616437541661507360880885672203107440471237570487777592009743559277447633610007629335653192078850838079620686778341311819587184019004880719802144492646583168729528997221158849270965913335768465180988615392897595123553341678382837577892629104837616894573885055442575839706519795329642830583599131620350269690218038615448272723279123304568976861252777832859471207337934752627509577421729905265042942268595297677864807266357320474947146919060151344157941043778120443550594368318774142103905933832133675627329621412642905627413367012716314702562613838964356826431760562703338489745995121747038689685856354645167754458465568515190261350883255490036735321266079495367531807492326309351755322654355079682365837557309912974387043209620424290692539524344162033190234388462853565138464727935429525358348237212140786076737388330393891589308633265732000442883736249059406530871032914032671367960519075302686342210194773273977625581063974176712067981901101169858425966460969085925866495117617571905622415969311799335657429672470107560988384561470364798892317877932781247215889582192332381726487147737876197159091924437166391330631620482137407268108007786904731156617622833501238106285564116340239631702736858885878893973159676130009371935223651991517352705980174185849070566786373735846198862962728361941847240789248540344657921947646869995027689769749686082697041269042810385464943106621308964037192707177957078180303467113940586122082513162100549576464542789635569426465914073504702595358725283430813887933931987204706241026619578556380425495644362172540309084275218829771809264751377874926365843350827085695349100796147211847197300191333912588688626387088771604589410402230509289271546955197000581419874229766099899159483033239197501318204287532976675710696306168475556045750593823831730159449624102394940304040998639906234510380780994299714670500774714666026437367905955474363094576340368593302763213950379625057739357319707083872928488235639551788219631637274672351861320334467343514563393829431775877152280633147271564318854905809377977568895526387843033684976199327153332298517817434427902146204378659165020194870422045685921304390046165042087752809590265417330599651793979551658296821945209878182739579216879307626768267842901755128487462000358610393349496981337994972731030774667501470952429054538547773930627684787054926169041159048092325004679791542027533897750319511234322359479707933841621784013903071688917090144802784971327188101279283357199436402942861695308380218348236289602933853933070837791600958452576549356364144031858437658018049974939774079053755233006167134765235103854842119008422940242462283146341756329187821586638838021150645483372166282163781264971292634802707994584626613572488581162253597608509327249705204516246506300783669418191722348001565660578739844776980097720091279672307120116170995712944154863186506518416761023196676546438720213645445476141195743239184431668047969525278131750229214823076886607094042606397729973163716357536050730606021156927224582116514853659166878417001097337167388446235106431972281807653314812621997904612118161164919074357220757499590418764338104780750571532224202735397468650220579656283050362173240720323862285862037888642070701634801839458781573421246405115296005797852465129156389195558433588777867634749172194567112377099226631803484090343607540353114822267229063817934603881474823130889152374998897823693042863061987556743948573358147704891824937846971312317454344566496228211829412181305327707888576762283391382254478998121783043719701995032200579243357509085637696838368046130182011912249306774590083754416280336188023718947180657813809143996995173418621203143079846069860808308489690078752125908004238576001833479498867678014004926524590849471001227525723539255817590659774019296975377086915882657677624049048650880323007371681060093435559897115939075374228636640323296435546200354622761101794028849356529932013795844056130451602806387113020166873492357023417324750617189484519615297802827003040386993245285131169997969272935103337704733519298971313431102433111562976821753643043340934664368936974998363429772092336507394166043699448773788153622272324776597882971561124157448737796495823652865685946905288273372621116098822979179321512904937793105435190771903211045768641493297782962541755470543705416094026398384011045554282553533401761175296881857755970807978652813842888353358509628764897562173661171565844448116456060257216608770811816058265262535763653358787693186461610121711366787658932723372687971612066150981352143007316737930291472050821262935826027234116816638580160813052428669520559790515146526021628594419478404602487070073901571636106342851119238239421553227715284913283154811415404824006298138691983308700043256446077045920497702896874389674325075794063425357102033566615779321764099325407879785312102539977202594844711323065300899500563308767302780112049730232215340957137956139073051397877989027245509685908374055550368130696401115644016040949878201550089301582559904511228255883494996795097116784200813589934795760558258780953682639623523220406620461200637464122264716744430565718026644764327613089969802098736520769347985286054900204906165363332581240645688225482370129427140187027209723556547880398670862200206872709782647925414932364245073275252050056327138676497977993596584178078538637382113948975889573789822259515026759461588752326343537562773068126970734408348334275937913983154682389943131750451799168362633212464212130491988707712306467639452579243138436440592975925230708060288516115061174537406635860318963148251771999772289857278547790206837653654298588793384391857906821345017613426524279520778634293828240248281658562395363223121928466040775528563509830912960511623500364638609620862241755904717279501521647632320914452178136497197780935100338728506035764602643350360950326053928262194273629323773277406506516551588387505114578598118218457680179730089948165457632069730918299140693259204902001679659503703474513271373148444313314039045744750002215651491850348750492211343915406776938926780858825464983806400283879815355636875363223971993479841355982392372187887386715980116605886896857109214225934935307588369531888088105229276442560760693059728162709107087150780687671584244233066134361577939679432898667098017347276892678974619711589840778389524603455469297350694504430746849376209289056577709867630395875738475245062685725846846980618000868551338141689201313805181230528179398544834472873620942628332846864802952772082962110513192585589226600268788898625101658601965303809715311800640018137407874751906785003588902670930337646098048926761731279718133939333185718569013380240521300190604113994364596745680157113537914689539112398417037791145116783927054877247544830495054068692503756093861205390886763032599158016729361293703992221995841274601356323399159745115266893688417785447695053525576358468809609259900646974245825151858483642048428405945004526750012177130138176769807917593475817481226790192961315680061526508958819858542261256708800542758582379476370025192954327802302476269196603385838010586160039921403674170928636038078094678774045673072366001334774203525647234237188465447408046507272041567712163487503258317585988477266156916390390688929964123453498819659869305947217248357263397183935233227720282745446945908161820121443936437288776785599694016313513135131329920452894160967580642872183353957431578528226887228513163600274887963527111269734622043725780168308287258215138574571300934585722194912163801246122235515629475209201954829032056510256196159301403949333252536731168160401417121144957051548350275743814002841312485447332248360632112944628015387091478210430880649448513990271948376996255655218017251422543842677149249841720076821815515136946423172159573865608603847669164079291765455588331111637452084665699828245020140984979105200115409941037510130336250769861459818374460070912005701418341653450158773703404664452248543859678662880913329591811654525614744544762694863426987793130856154913881864474366420123301122780634599301446689598669292939416212135150454202486685788841468080197676064345483224109249730146668906510594521909334698194576890348549591004997435820722365841353550452023780498627235355712893596303231767793673614399273362812777482936618293429375784845562940564059145394220741111193047007758555995540794723780228935954418724091241317547219220228998180874595461368994687115718600720142941254531713113608253244876462658392535343477743417335524708594834396428676841901620912153966821721576181836387750625315811674836455216678875449816986465041234044922742434008453785042819384010918756804294444911814346758978419625555072961908453577465690004128690797651443968303734676668725920734518655991149533197160427251243429729173922179646790357528690234864750054161949173810722905969145672867624449406465071656038709235357076770449045335466522008321989905844930253656302131879145440208415541728992462048202405717339256813946123638126343068317060081496352519171684573531291186435181206675182766890024612360220183095455316079472690247686650122089389306214622824516183013819815771455946176938978256872121548047214814256766962112183759498072279705869851922147253887838531752885178578103898635260711843147846253828434271120679405417330857762659100474463133648595970181737245012465176362290611076042716109597147649956201577818673463034872139283710631904652575335168240748075256456329662591076225922357688024723028648123591785478973852626545305094220280263400908222646483193162236976821495581776415237537906495465002167882973080824277159542283944669275346454329187802673182118008042616198237196981518200276469912390691072699106118298108745004875202681304133870081767975162785505392846727084831855058447123528883092743974008710546760098111382197835920048456529737869759212854329642028761571451245081450226947130997161405796883540735002156370103211180570231006841011405364425033869036621774955773673718276731534534631014942737152271061858630559548459583348316710554676050726885209097233647085392784964333104665857510056888124510912474609479552665352344268717920536422487583493014933803537278062495169675985714072459497783513271544336965295648041218109211625036037583224116464873970719976027207399809370174437987632731941590884993576249234899725192453655477407172661887021748172075261449605100069427500247057536727785785880762914356671016511432159588127544683574579634187095059659040806175717008406434552577408992790961196958826937237394035990680545287666247947311375375493956887458427617211338936055673835481368410183078093779194373319676609305784103881837264609031581444144247347583462767438773406830805205296705148218714140835934125146278824019019551282420038909019237535048017474024398743941430301255308838528376123235192368630503131932129216403053438522807310313857243515906019739496089250476049250494947559035708694153688429300143891239245076332661577817453035377841753974047338918249098654408749807605792344143072399683442422575900145945595515632183436502967929408267408685302127383512033380440130426740647569025104885154914078787156284733283217188445818914308011170783337117026467274541223186883616697342144795769426035264575956075638147156158867622793287566340830748461956617020364544628481387838967367504976671069062455038539298435840607732807879279961395275025288028607623354331690360003097775811263641243106290880777391494118315544857736435728885569029209553230661116300281565799617993745300450319099324053454422070580948908966989326251461344805255479099659070950568487441047272659114760672488898604439841680366909832939148752824941291486939823196714209749413717160579188645159004085967052202478553696511175782791967432910525830849618833708191590113875658998652308514898869498920568730538467157685989447356860244322106313437751396933899639568259368499972017302596496176097783193783467654806800975510301845566415760747595777376736798594566531059352188292376528951538721446556335646599834494260968019048770642092811772968605173739155576960349054881369306868830988097779166204808060803715210981419514398651681344348442324594572905921358904881814848770015227333381177505324674120387024775861322384191708268780434816883875148921517851880427655761995833671910540737074453793677988040349273713036246994278007564953779317206555451690027458520712463356321471504601549114171640921348810947174346729587714787896381454457132422570739816961961078218191481990650145149517112965312366147899161499126069067158296436257915312843738577522695039473324868064242498763261210140741133367485163476686405280509720260892470486426171647715029487750907698343585654268896616926004306297398437707522390093139458639815143561712721741841735104474133173992671422054018255965075985198309228323091622366633837497838522875808317470513981810633118088718793604236351267319881519835297308408983040276580036108531835398357098208971275184482023148044772636176912177068851558285312042892268510984360094075465520432780831864582923870121921765026573825971462146942850012411877277849796530564406575952573097005517654219048488139429950120342772595893903265595617890290911996378950140692116584227627293699733747959035053617734856729205570017137914116959948420374363880407257585075331194629940789908492037060317575546754387136084402333337359831925815993459132081233784494049020707605282997771559893615864967525872745379810883322740996101253693821908077431360828500115437495138895086021531305454433427418378163623478230565400150035646409224627090493903337029908481783016281678213254792500096754827391798217032014208967870964336319635399803215559752735388109638159175101066553333468405463746752072223011017018289005606213528081637227435849135824279879106926227829583088680346143791011078626301142611720392753996264452447613174631637220985421161732319808869859557705093639610291262112232570429514099532967270276103215101121820949285135415049744009258265197260055282636808840463643725100206592091060272585143461501076092325423530835167722949072063125704573749420252224713393789597239341760659679086066473294580346228149890653766915631408141466474325537175266961455944293054736033277182168942044482851974419081892282819625895884072346448440824955029007713321966837451850616132130760891385393636298863685059704322207195531561583137557390006068333691920038088952636442368242269350888738977244081549707429505150564420376133077515446433839406194778674437164494256141147831046338939885788918295661483244520786708964001262916472093431244134902797052802439281894090948767527207046769242412638002104710676417472540677409540430517542080868730511672582425716963794547447364155628975239896082443869026611242337830164929219754755175095052787513075248493156703603734906334541073057638661906013438892439936239460858823497299703867265808298823805933532622460758815304609538497094226410017262002698112319300916270746695830632667120061674987109793533318957000020379221891884941889280442836591763559759828969006573793409472889211778613244592144909963982644389068152887176425421093679701637549969684449489550080712987231858194803842183046621948625983548339128123420216803436773381328069651473598397658466551672606357471395474152860561559510558138725443299344070733155928945231166342767232164108918940369600971642270991138431613641782283655523700355641608915060311065043187300591033859070039188108377932057620467330980268035475212400836178750142746805715839056476405789138067121825824459362716086667019370670506170257244623782890526422821950675796669282520883709115522436361982874860135455473916266689014155536531659694818816663737002403938908654918703850417182649395571970763808920188750381431376208452284436963484328359815977984896751597688936763180392510742595710293025866845882298765153376749063684058805574958881421581732612634181920248322705271966308300865721844977064939369302856778632904928347494819686619349886926543964450753302507787093405055191339269008667849718964164517485907937832956885928726228561151367826748852379395344207527494099293079162999561704128719098119874977510249802906480479459614306520663303276179713267400826137479337611519479298969576394539093092540201289896885171108451393875028939672583688005278925696014590640017121447925102110886101475563926138157228909271885990348028016301159816150485370255494188923476244405194179956918099120508679610083734806369046985190575602714809402263534916941086886113572587282262723221808475657072913160952325141572415338292553749650920565528600432059757033482280456426798125656444570514993075942289721313055933602608060004357973623771679256784512819189112098217481690511482607479205441277887576853152493920857646385772735298315843461981652684289096480998707038684896508656132226361806639569493086215708078964211126986141048674652595879796748497043745781932949574754749586183482595214833327688329856744757890871435617629427651869336609258169884926487713037386365328840407138034635434026641210351573237659332209658731797156572492973117227085079519693284125909062227572367609646800788343211417036958437341731051097611156423422623074628275670230761171222952453974149533345032991101481040581215597673181042242958582727176234285945318873936190293806138701176167001419730044398064455920448725667485510368563021772913428587496328267219911384186238462320422580990283481089061436256451869842045823971685938530186377000910332829187272341300082735091891275187653473036422178797783035590068006295095926489127025527065732344876854660219994756656227158286424197086497065942419708632547471656418814111408437852401076816847992275853527481965467228954603523499138126721601370914254089492211579478921476143392228921036113762434670612802765555872024759533360909669179317361930741546384377486708250510026606318211635565016873686193408512828669124512993968275905523467076559185347573232958130529080438757900731983692665051918375815373123089284355468688707032663013407377521352853432659587240107906897681322214118745259334160824504057374170404639059356991862601077319394502586593829122354615699916082758166624119249650039618032368662939189184186088859479314666035680542097761553331673833872510819522727740918016628056863873146354534723284151606033023627597926812091843565413269676740819748097037160861332149980880354372121221243581589836527114357338937833975194561373630006929339183250002505439854947581993140974336739000745811776053309206049437688850204929272076698904483469473595692653740369207250449196755596594742485727909074554566791539227063653102005981058002709874879702466402184455765080271475109091521302364071527501683441933545161041767657116373714820224971597624232562709456940710182343072959227658555514244187574697655609538878896274790188521868688977538199601153508837046377940035359296378416908244997683377420370940623693699059580064111918147318401102184629507166170276863025055157155452607837294971121040555611921481765378966856207988700109067337018327877664919616162886335634471842542486474559179568460003025590887562456932012592584042551831627060010614030017434279690114306724993700282207464158489778145258886663625271361215283031299712335344051658113206948901711509873055183627743219034772868547162643140663791836471441541313380710242004165782782750548595359705219452754157777489735931097381287375150552935860697313109977245405793231759627159271312189985294784228650022481390864114781254099006883520796356248510199855927348005920985430610905527561870304805932476021088793172473189596670356210580932850491377083369692629156969009460944726016973600256051032673431831732704545869240360226144253006995167681103747563383777340867034768056227395976854011269790657492281947922180801202228634245488393759232039672677321335147102668952242637782777216364723023993991985483557373713560476537828282011862526416186696175782121980804664620024765058846506493727924691179518536719778450984883761450751809665703954832544749823515640095942974654167296958325755884700318348869492469256813161903462774256289108440116698257811364418812600001675072965659134611351418175469118084330100368280417701950422562008350751203984048715995380323930432022658826246920611965005790201794505013086977942907475054986489134730801795071097956964316203142781390158886330696978321515959925878150450971622587490147674767264887957035865616890242922088717918690149071635024571741990344879037023343199826571888107645691098247690064100216047148010117590686354100765552759633641303648379812915101472311276326274427497911567893874032630765327444635212475558474706158158309343672742545852160204600684015337591433067228736355278458432031854820308457400397230786698973184066577335960615105290619601358605790737649576412191287143517716096693870170019706307730228271111411802514691212293107640024343306528064808830681668180385694287815141059149853823419907031154154123056516349217833285888749251827203125272355866863744405193968881313604395841597385747283856043318124891593562788110043973962153298418711855293030160944501400193354351741980548185074264899753059239745526779478666789522673678185903404440778060172209436390515697606843271943834007969755498644663507408877049881477823607237753174670194355820543066497534721080761989848621794346530615738496325019096828175194891967412749034425114774231788806691723602446648753781577912722860462558656178053687471221623204577711910283214857154515069328371994748910250165939260725729696919184272812549299078262756689028788286154408454836255256943838252700346761879053264131512034868989486428042047814733234206251036279405625605776921535325760368495558405659932770609605375467160895416375456939876225296156821036146609371303778607347303571315407980783971982860482335150182371605970108610804997698870840273509047617098895703512133951910216853293734339233918133495455050390200705206180591004235862487304724019630797041884669431696264123715605318685929726771433148673991944157764003672475291139213412182654787406593162910722216148528610760346509917027839467747055896858768019327163197701440095003302970932806136288943772376340745945792541122957160840462616596829445228160756335183619846310257949272041607686813232854319274266365587162564655965825599285738037485411680541879987159342263305480753778778985031477506772841380173292088474217027938809948176356979232114862955030717660835418203604763441631820645241237859682853855762346840197035460927877417869616319946459878652707436685172225996348838263168124721828860159310408208582801817367006862620733921288873337421762279906914369738697412887644092444017158488519914143667438367640175941728283106285900261420931986431304059986513222114235360019796109002368418328863668759996700148474452795320050848765824437761185284337920392640289618389136602413836425697834882059363921421659422481226470248497546989389162150188914818105496399445629987312538907193024289724411099508414143834949477877456278970699947634732611641982592383916932528574573833712905963388562205231982175745755648613885161238721898996013911477478127391576155854441046024780289967503765800531029853708475539702790607066711102723240215307418823691529758858087690478906262428788499166443471075560225176768124842552532502198753699111512171647152667387256227988256327864036244285376216932365551877769052456530586763618856437836916925253422235585803367535086825029010882766850559214038722299245962441775629881735113337778401514497669989631325551573683502978822978630221431948606351362966898098889213915934348637773171691211861388407585607832159524183930758553245188085470962539944958196104770418898141592331488144865332286565602422473364102894189934312241873235680825648415292154156802117180722920143619985197724837152024638617829068992902150642437498773865196510176467852061667962116411374166845105628175894796983438656853774641810287390738916134847572585508974014288862253685482970740969709682899681636726817510775305084099371661449471971129788502179029040228393693131717198256326107736507479148907617523946614628031652229280674387581751144090249558615249673723591527837260113933222734134011005873465721444028898702302311583223507477067529086259626850487787787029854986464809025497898229130110649149963324603754724473786656684367610776912517116949808295348164747653874655396597172480733340336765664956833127402400573642805763300807180062611963633589417392208442640135357343411790311360089508130976428867095780450717811983857289312782627653310995271880328003388479330422031508406450705850541577952832898023967139605487966369320784348573031647687988310194218828410824583027892212047335102855573357016474624927473806276933720806676041408492101210419802686544513238328245809868228361556797556346913016194334650040419850062242587893703684479608899196531234054710597416219333915509552922816842074907013457995645546267678581892451648796076673164593761668632535993895327083472710968079034191964764500463143524772515815870483418271958980146407425726330203118796821478161844908555000477631928843033892528811040925366432091663292788122133477913912212966682941018961753389628982078469450672838915393443027288023330682743275087764687757580376615442822676355265841636352883845289356684245471083596305870201180000170586142658974079794228989418671075907908335893219824917986577056856513997697572748530453900849849834718796299648248151010250163104250766057123095046606490720188455999023574192860919275805557414997847104956552569371687894574750072614640422643092990452754126353008183420806355066095874050137746899490578780862639564710818364948169765695533088336768575472790311006389823321022021186122161935918628114000355065852964081899336049259531445254675419801489907760731734360374064229937983963673057390568935091545136786096230804513850190127518867034798419979491944844430873698578944397681691708209354985184865195293896349395030367770123228188707381903972794205577111249693793851790926194067370578603285836995435388660968168862713280554673393839788054911532645686627791104951659687866178056179701172237393525505168168491550920158479901384022505433526769282765913227724460478479578584118274727608073882932485938621539113173087735824426718104589943656811677500580962987365386560074960597314415491275182105243419159673805461672679580111144359488899563857170669201444763562889157477485324115855886561656054424829413829756123111222355381602864333325473230983640201392969313807907973637174526674006141840782227699262846863610745972343884046393365070449552140641849688555554084097843503170486142692280776780243096624493664892033519925060611222918503046568624399063534778424749463546843360107367063062643062717963156776034213761432360122518000822332788190979357993301639005973451377003809722727369174820981271429383725166169413332085314101057584481275447485563073311542480490617597545119519811339130863104279825744424202565950085793161617544032128113320387928656447060722975375390080270236750242409110327274980709123608916830149868096281575865423034838941256028062237502607920825595762871988550034331943219812182406195403755559639124241980391162699397234084794724990764124829893985256811736641039067307782307547863107531121844712986836192327015140308218046656258001414383199816513782604369663327027319873653782843028435946349031804323437165578884088273349926578084865444410939710981015273621463852109394365691582219074729417924160563502045925552021420505391634328231052958800399448516119253528467918808161339982189374952705570961119719501054156375385667159061823919665406006671495703842080661627352084096362494032144203519569645982623280182170084978616326910667891323516888301195026605147580210741908042106595009267475218263098224199610211180620662128293182228203321272096571064447798021416923814855641926094138872586541850093497022529305740937292798180098612164306188749272134371904018799938319303198600389825947769299505595157285954479410893539023314954942012760609932908707467013288744604565843071272353902820648366047313462614658812194086868635422344142202051057304738724283720796300539912988279706073926212461683209524538686780555192576865199988812386326091953038657566141579264057828692644254436347644750555644820188122642714661543789292785408371364447660931903802466291278439292516669101687029027982540197809045708219924010808526847461501913675893493907836910093459846170359545838100308613285223010762469754219693917140103026967887371160966589647648926725253516795036844540038741595374416795573375477028120152825863201505046094117614428075454142016422597279329561851462547250049983995457265336948216638529429255902418545423089379744861379703157963183098406353000762297338178157639717271624506372121860460656122917010381419223521463001665458173649674719500419484802210033879035057506979501992491585666763831936459493757688315904069100880533834940462638758179819899751311329865884797835160381582013148083005858227905621736943336845339296584154245577724461411621614241627084400851271889471177564386584676230577962604969837831004556445766658891450895289427834174119994075488740798602162690257255998708548464275029425734551690543087691117745315465681741308536989822132040050335276391646616678665505229379444078294631164843808041817040832553562123831478222801892922031703810195369521331363407409655369191921364346895904400968201549654144282688854155985407252249034476986784727740144657110353824845626783192738107504585051838396149245887879383655846225397358749760927744153647019741933758761400733173181149757450226047056870403334523343096378878674874738778908812094228728021203717852272854567258338780331724081640749378103423288694799632812802208929098239421231077468260215802421993147870493283612410101379506977583181921014468676099145440635944125553291026908504042352981232556722971486014872968629803111046643544690468910133683590263515940815973621946773085396628606981056930387564148898201842741218224250909270153392492181022888714193153110379346047750123343004233658321567515000925800117762415747294618721594751373988349606135702847903289375741921463129868789785203028249065218077950857269351949933957531434041507300795710589941887256825906036468569782809937871519890828137789828355491940944149134261591374312378158915288612824480446772645892078104643200330934284989366611465198515456769395497336295872461992997520876232263174090148621037351849311074631052771621739432458483700348366489000703546660267866970126279146978303134128625229903226295277579681461300263925930618325585911097444200432601901271895585212697028353770296637125205721131485683714833795564687129949181203931712639297263839167601268003092984853852459389213085858967883904450439384697222485326604188506561845122488932039137070762370105645931146146813823781261869672146282274865514065094906504996543525002341373859435157687654285769663825145153458764978012717461515008783746121711630769481438353440290347448217214567974626903841891247580709651210611383797621783300588069010454598123806326565640081332503227756663115417629112878875159962636541681299238757090867549073630063056743041146797648185916461483347568114579133286904779977303663116761279424009528378590925416517280677128290450064246192471664477469245422846119466277555846340509592907130701724299273416174910921304604856063386977862150580161601898437386981390427221361757637768724788075233563629490724732068959192116883539151069580905222731473332175296453078623298330505332029914278719474873371421439969767352690787557407733647040062187415151015822994276689664187868601237623941745011513196847635433609569852748872193153573425195877955769403378115374128339934412809900719712207149892120479301606290937071288602381593338403219115442718361301981911370126008231072849884590644746387649714497442386511420356842152635054204426400496338171064849715217895443679693986444580583535855448457455650428504851806202890189603203233093614074257291186598342391150695377342793690234321479577415305560832447942855018653314376144656364742613702678372560248638544836983488201873053957606104574491298939611607505357604516742630734323027024191959291374182290583209028784619540832339494744848079730307080008932433643453371893400062560048678793515959871892386431700963142219832265917149526993887925224289479454800326875659596596012007049128467742590637033898990729026508622801176160188229434326404779213217314574508022121226164594809348368125639335986957723140438395254747177499855498468492407546013116483204352086979457268657810685669454574311875682652555918430498832993414171366821704398076487847599028413993484981069947138674545408241895201087659350123764036049695801351282440276306212325248940430356519772400333176566497405058284888461375372197603621989744105802691591395352331899992861952828384576048149478694186230995212285114017107029901465787337507034825228025291771674120676032932702919681526409474192965300912560311384300505851604071296840098103585099830689350433985628706006956656706665917194763805867857790413679137552004955977758945027022161397969681171396021794833003196766611192680832989411315874695000399733372079136058890493981656089136072307235036329366351218731187663598184825665956731799024172484593369064313627933840015113536748672162626322771639359496104617779709635983530234106266279726681720907545818908781114813017400669379806206789775145006663823472340727994867777700579508125780782961413511229893778146272478551217624992446895820970308831632194546442260385555961233624789300987577722711005151549131813163323442477852952614430595124722642669142623961566331626320090541302190518660439364359727436595179328639522487049082195211378079653818689711028284575057956353480228277617971923092120896584843124213069898876181520288845254275246893282360634967784045272797245057983362621929596738037149427941204849264072085482984686691609670253508985220889309245500069227369202883631408899634713294428131842719070922169769486958146030095960855532621261844611395976533060139762784608493957548768846584232080089044883573609342552072046668331938686687442128541704660331425425221194004729796142880217740153960770535375742337995819874145756835947744525261429504034475631857482603302543664733852240037826054818049915493605067837822482419325916822238939496185093965381949169603949661243035960029926311596150723383156991828429037622205296774022439119611176129075817134204370386077455612949092818485970263014169066576267593875765252996624008317454223463526692831467570466096077057048261532732364916214887355752514489740530284828574176883913822795707845713441955804848774807679986579600650131901057784166774173770040432030155244414822969667509646477522322915978606790961756787033235291271344911335391238084851379641598596519601534372744039872661352541226193955271343525594148888896426113266736527900486696389077365941471091941452587175552986652054650010863731185575947999248479687290347586634951552928908329288685880004249295745102018647894617062314139758157130527957352218523916619711098219735215327582256899073735961175362310169498978041625851928194454827377143841085347158211436154982004616399661936582028497445176698443276538456922794708827017352497425572219804980402618380786541624126805711631296800813725841546937973160660338923483701185914829631767094252468875466436979269654720599639685091372705423838199095357415525153697148269085678411578117581806159828671920142489516855273232541632160536709099391271503063899271708473496325459761354143723645701725851682798056910616694951072363423272256840716070909094930597260148208899382363702736510300085201404941474494920685318542393179302860865771264872206583259300293304695722636717213648044121326605591154025012861397276168565290653262700108105703506766264543545090374775998764445135827012709093476003514692204050023365871408062972682487274505738343349101021746812448513222576007476560909765672058313508394971437828102151322072881538396393251200515668220985761271169779060356393944354657125339871229730558977811392209780877480156143342854797156830227191365742690798491986784469832887823952485607119541165805714376124003375361257975944997356602081368666309684770497241451000410984230253976994734561756841628558553224551935567432630583194438443215583903608090396781916905707336692776896578169745488409605873595502445055720046650468745869657147010771789902146459377638863038389289613983405508743595062522024846842257969006748673734035371751516535410162111540067255484999631543468731620140552155109211072586174613900463180556477832117170470029264411229695973109216792316739422919701171630020794911405055760620886827861766240638920613822950410680392273860802504366614336681330949937111591102995377789334574919428643412388691582201946739730448060125414377728609579957321587357035744358739616742773501390662382102592337651797617307535975218882217140636328115158934996148588719949475013308806970661805108038328040734733714408959257501511458529397058713698889164015767521329265614590152833774521131641638204248468509628807392160858191720842403762146630334722698366319514116446073549497709080246028458164877106598091440196853241859344235733632023300166633908286721831780762582714059484279626745038208859817130591780313555795173116259673432033590313867764208285411835427956816236364879829822471479035744381505402620633838620574582376043545954890249596510902435769328272171674948367000188328068649849659591945880476238744038289965833750026924613199230884552854769771716206450339647280173101855176273843193519242116974578265261106890542207443037705154269503240967229004715401484467641697663286139322231124395510073101695633265764114988121187717076303060034309241137464056684491092140005428710309089578351739085234021756564143683401572425012640564835783118831711550055286602722686378149927200082934379847581144881041583262413131946858079446893296659598063489796944404017445311686349108312350671043145471750246740979062845265872433973089633759272728403559009918529830172465394957213043473821188728387250771006915888664800653853155561097864620011945346841993365736938024091823246197112152406063252586930246723978868823462537108461802472321014578277487103195494474543402224646119301881653036670497620587505471518210723594818527728355402467031727786968188035087769654555717782037322563744311325119974162309272905719668559094756914706866201288232247605616097069561915440271007845266382832018110164033101223680858293781507426710491798076335246207036582895817407766874559872707930769868335834079991547023373869472154773608461025222599212982682697229012572674866175148374999474693288767659584533655408687160349840920297228635839778375143656380661445559161483817484300228213098606735840502019616251184463390383537221263471367322817240302100682866711633533414747312924250476832365677755256358388013641486820165847378713405682641502546116579576940831130463790308558414409547387631120526837120491178036086336004675507898845771119207049243248622663343632132166148499163807476568295373047151156242463985337711135909176000561849669529219701105590870276844953469329755138334043990061091092930700174380915706383896854151400813441880775132352739995374119097540949248470207246394620068769822044590363158954933944309587422363352086311017418204617942340444427132386859376834901077559745916257558895755311940660795997624551050105016731896988268577496273610751247477411135226881300729295377911528420005025860242941770262787470255179750187936759021057338785881482427643582307665592616483807676037490625914449699499011025440698032932930690005374273164365943706785735007949755842557416238309826611961125020843057883274812594149485117719198361414146010752333480017534910948728581743130295200482378588479026126903516044619418030124088900134663198242067806858144633392860008583474990606598016676301397888096781274173947816432301459377778624861118054943129840241412982747285028420664311716149744224647841765942924435222001293201054024107371060866103129408485207962367772407642103287094321729851347346068544784161362069345619650343893765150003884124978463100591615845626086298340652232055621920758622396998518149632466057706239380408298644271035318923751525925086444075768706049190762898563019443839734817624234643318721719606076727262750944780029831336419813164558696907751996526837070834741360172788755978355189150313329442694588234056981694424222254824549684841058498293311874395471517248775847403925661367863214255294659908315659054550002322100843069256741492671096058509303172595209356873764745720606983111630884678439070647322667891802452165013966981024907303803937212500191784018856128772632658712474934695715391782490481403440217639695570390376274730822105183815613311225766569467929171163273863359722589858947205868475210466698923215012465157562846190821289699100082826369392360470242349993535922606411842230927035286010894968255766199964928521311204472119364384885910736105131040114388993467541951348409896295327482573580441853499738196542317510652591511260949127303019895474894217145396010826497839025065073094429225607651610562609259394869150836636337123636936855307245972480169068109009640043378545637381981767710979738094127861456445290840925477768118962366787866166992362471354089755203027553588382702422381821288504236448324360777404517490155878236536832116525302470782656978007490097439171132401720268926700993885626085755493784808062958931539050391579744753617580787198672904008361039527320628011062312705971324354333307716769066409118026969149223231087299198191251701773880743520864214323698204427645850472281575581319483389555284839811111556135070091943183107524506499086137360336652353456362340083359186253128168282866699464110969164155954143631205818685664905797224362227395787320165647814856612674134425267959919753293125673136849135667848664864980231758951424143237739074975174457428973834154012136389199257593832746164254263140254686682420725092849362417471224517470268651135645370737681177402387835144524812297660651394578694696088298938574767639593352903862210311732409909224656881067661418755426394759954464350876420646874182761368843128704646912650705365850791995520338002302336821603714359063363360450803045184935546993807836061518399654454020101641977053762090013548467778761627563671656061379577635970829285855751354017656171438519719626331574657048304001520992257450695083985342306073157651003235450937977031106270434424276051020719252775922512691173484863184676009508142023630531651874482494987227705105565486520839075253345451432508254551406770144062870808668918347846880481223261927803164067379782038789917328992924683225340808206322845670754336843629232520824068150365227722385085652578714221223600715057477121031759948525205503503655583363574020329787173398816764223898669607965659761479982902210617815037972182691377337349485138648552136056040317043947953827075627548537712444033440100499577326533637016658915529174628776396029169006253396277079157923717429524201457027094169191028245335448034437847270565699030747746087961829591590255029386093069803306409716637912436732404256363428113584707382459618345563108342116955844431470626688436279123405886753133642468474249687376989255082774046378424060275496126468070332552969093207055464431465506498898699458053034154441279783769994709336674273158522354130394693467345456399359677753698882423971798755649229552859116174050567336566857382882713004770774445699960094729006978315177022038303094281024082778894539275887040812168943089612651743155031727255953281206153145662900057069969790058803445650864392100657376999078894338316923140292610869267041349023125016085733689342174991375948241620498634294196439431439235054836567218937939588759639653353640098684158089433113103157051934830492177704104167824458765969692603354443254916956826183699369179842843844643891912914793536962008730146483244480849723378150361435708321631873080260201483627058880372713721122307439914219604986895032080025496979754333562574687855326490260805096212245892206108417599877253897690510168431209964230297128449665344523626428115732946719118610834223612100055994504728255210857894345798564436070214754705634662271161906455596617589266335736993236571712186062012544898299368146113857287715755490907580220493756522243008538226294090581251730754674715019259578709499628211864514001470214583083195864413599534670534106331878394248676833423269459263481536966723585083595799778239899374031174736607536785759162377272737009560126297272587120314388965769886440896331577926637559444926548445411646495447308060729929797164264415616694838441591064200855252572714152581679649852037605122289022762905260479838311806645555736191290113031331292357648768496511560960080432291818207828299338156744258367749655597352911971760674387086148719437024749684391187766029424230205848597488988121860840818609207034484064174401607750352263633995842066280734419188838645490114850606793478687174359314987004138426868549305946313601978253288134963808605819615709209245030970816695693209241408264855475908905015564432267927480341621169801657180565059869872664539964094485137053509439325941401721683083682436562164308791339888121192760668604903976704635818122629683865224964079272552305221181698435503637510591330914245034913924025766401410042408853985466667262529643594878181366301326586031113742267698610625353341661277231878072217335939877770093672908339171420406397125951503307456950729478937950980818494166734554790035725683969721803689792323755931891521395588300651162715749618214093000498189770141569363788401230237490189787564023893291605675163591768507346644562690456918393459184232691470789685514313382387491305619218912018593471234770872416504253147237603133610303099039584197462407786896013435317548562529990980957410298776688105641305691706990791904133191062435782769638544112489845738859689896172430801582339413949248018169046496786096784340599736153676356662812204346955513544886266370530614810133473158608252673977903679952605904340508565795913275643685517363955697401938316156039840196648173999690675930668780310465220878994899597644383024452486658790061038258364748618399781381637108373848736065702503121515303007064454317961053493978140583928824165897063726652277728741756392236918800890982018537817632866886380630652521262508560637864271543181953105775686559796865520416769848785187685506183026695029957159839565331616887919538342498956698605096155106728897104871185981026617082526428618411770754102431125256395435406588056743828377879794664151560417733977911891107200608386625883022363960276890216949564457906718709868228900773765641437508547274309747079263397493447687457262424501245308576745461545555673632782960394096616149794018058672398515583005320163851799110102301615826697495907738763361133039853502138273950500097664516135859759924662305254918982763701346524716120730105910113812227892661357528060792100321278409515837771481390943835612697669359137139891813506989781995057860469944542049644525734428657698911509849616546693173048923033262029727987329508844179557662855249082495203063448770217765725476835919776832841536850027702733031059438941958312438278257075547323777179225569422257379146305643933860859271323540900138783502190991551900907615263941964738105091112497261549793139608268914097350343018254422974889670065200685247260179853645289360762433589162307332935772924340191087109070416876298319356032620126867546914844098417806064708938890385295950920952111334684669715000268369190726286698189889461922255271112227358153315174863848354668241791906188882084541421107124438200020175809366277227149767085123624462548853598569744868469300423132409887568027168561709776407781267034619001619172939015368201843675922119042223467745167164631904263101023252582669474246380562889310878876127364670055149794478519942050665889076253792049399208177117223191372946432186935327761922822878804937482275564747520613633194802131266350935430521127062382371828914621120961326948996618923349678159590752739164560176311321494848076237662256838075474505021455382489677174678595781975580902618447723863559899909137745096494400787306379806414472453777231829977514402704070430828573978655164772252423680560545608098162805232893234713261103109404690806206386007152200821091544550397434972800267992946080815522847741472826571954316399593625517339917006646999805078251822937536103412527469630971202296251252514374586343901884440609841842590365397545480687300943632944936520316661511369498790387242316659337719469542587990377216751844191277319773680144018622600341094057489412970211483993674651698343115841287911263868531198148362943521230497205534182005000041117679276628511323839663909900853585027614845614258430628854546144468246661692702667490136653031122623245717537354895211675826037948798679052394107461244038238244754484703074412859063806779154999246178056671109378917473668893458657583262989216628404137544514842433246778447100694081299604979704845925166903122353324788850022585298573492654263469591104086948920499616611299856505766460337419154391779845595975609831367659336001454277321228833110640556395135297546707459483525304945825045990431038994497771187553894777126264071961969338381347379448815858972435117778211463053317197400253374915441217545997467679696640790646776583848410996626162420520715202462832695952839174003566389863484137249545243978834218062412947505825336954205042968408328483727100543186694064760557155732035386616428938740697909871155809458135541183955563714225781539264792129958613239111651800341128791298690900161853592023745258365412667885898912315454818483378690658041925470896240833276409859050191977017523718056497454130727330569269474291595443757516162335527952608980508285227390227031807654091133684194922643888178462480244345819485569920326343682748041009072551323727897763494460496313408411851866903202819571092579344831005343112503999812279733254151721584019619913957932635644320096656915404494106623209159514263918353742514821269785752377824363432915375527465513820619455802708381071436394382062343628306045791190055817155271991335852899397793387589935301602483219213781514459955371257081001406308215328903321827503671561758571501698389419019680701887654099599419399805090980832742591109247418541884749751334073966614430560267153346355826718065679325395305521232198099429977204055657606759593075441943141619498066127118558378321009410334982127597203138327615331306126543410346181728569150547351269483351993956771284777431612186159173228355765653564352768908275259166052608696905052446112153241664530800464741452789196098822890679704158110692449749670491299721770088309446668048856994566082727266048905770029842886804611335390432267721133338141618366297945235213505550421840461004341325837518647580612655816186800538843682796594450080719492768331117690271455314253226865820570272109944564909160329658442857412716312930896093789947018666838530418099034239202186593271123923588616139156151463076913893014545507152557016193109926651596298039607864685954028199304775983823476628982413168747482839941610753809816844024612931295902813016901904345713839487933443642598637109610838080707829991213760936734395928091966681841977188579446376431962760392275300699836089847554491841886875533416912438055978193177231715908758493691304243951921810864709367755001274049550088236198102466270703197161119963117112537974738589428054176138621019792275816850070758426251364175804468957531133090860685386867157110115905980734544017904710106821522758968410910190242794472896417876938339210517072296287391656367550047949168808441852976834834267351952569483086987819933283830136994518652857657061341345118071793440495164603987281732262077589049135321640786798396474902293354080450804196849981475305024432234506257582342273682004518259806422541503721921439800294414995622635617236449903151187925687628320575644837162456663758324818336381288443553170635674394464215240266800606451038788550622509161025109226958108379338999413193214239279291334450280751295929866817700389112655881830600777821606774890742427995292625634017281932660032687846324302351364935775854247886481286538105102240803380301692757804142703912661179902847946895988591227929279449957912857024152400149435751393556882063336291481954396499716680966639454595695936442018565423929691405965963313690544712203194491557771188746448501124884440094910765835386138725060120271828743202644358924972734617937267819019506252365357426613372506834547944312968983593735899249311380779646224278125497528251086424121603246744357611570591026519707190357290504863463371434215059394044342280112729262548774910194643112818803269838465278229310451788430510274417359045320908731302915708995027931335625182053795463665191578669060771499247599537422205130283380229356739781621856999335866931890155184097881217999330587924021587268034801652800707602216511354561423967938421304752791599041707655607673316837651207306346931190600201306927930565762312866898201433805937660278258294947513522842136655298778691953149652090291578939170072411320650767477640056409490492231949536621887575843984936635820247571666083347704420504722354176947335214847496402479005125677778673634338439274016012156999983081026687693885053579503923665447212227191054037357501350368506402277705972065080784597675365183152638851327802199941994897732200158175253642604118793272694928434762230520073893566300479078850911258494332304275152288392493469285769923995154889608107201705326485933768409292883213948287761045937263765638593653977733140924511434171384128954368276576666055524611085097916321186631134326233525812774141709973377664838491244176824904092956645798224098638542954923335207786929672742298543235598707115986850955876156465226837037443925417310455995454986335189952161131221899692281903935828972656347174185356513514494115905365407104118177129198433885115396997177003316015468798553226456188859399086189069866513100148061645637877733893009723918488038396195404878055485547826505670982373770294889599556119190967990622324281811447975932538503468867996841359345479300135349283048839265818484727049054485485423192716111747700480567237025344669009641840974875773426687466893986020852811681562029557445947998012230862378190407096609769526778998823212202243548459427770090861269306269126372782049880857402527459704125049099101368929021752934214841991337490422805333921972785870244073202897525647419390405455116631662804707294793696106233213007506358152012695593096250919254071695975840633258876906050940924323058511276067868855575173530213055748973085929263945797697563007145929670462468494615875437465136677996428730627428500810707048305747761184603517925057779608376673648553534674133598121938991622019682258276237854212050755455078927675115650791345673838046064952657857907021896538505923101616938619264536007821464976270751885306419542700280910390258140155588007063922635404431930332776479050839364753221721725878069797283223948060298845095552714700398069452951783022051502204667669647230229673849738194364611994335712108639635063881032341389446535009582237572107950113381978691760550031867058011076718014463857788520586909310591579794759048339473811450819802261661295299653366547262135025887231128099594292470101484308191944830806108036756002096106255326780307246343401169677409258577216382292485783762403428535774723321477368616315659749394798617489095987815056679484824302765883597374367724598992438725952741300262043519261454624480941855854141907336066564177225084402241135969734503658452966155940354635641985293104027255962444141039695064756010169603773064332974742370743640450866830627646795369148795514231362186107313026990046375836713152701187858196456931466894962070306925495350731489202487597079677979094132917898619902579500890758779629228355187933667725004690198634387671561187190609757149591829277759030998703232747070210720828958160138626798006732345221921533957163141922402254718201505350087615285517198306615324213405386304058723434006046898166928448062577127008392639612420999456306452769460059635255200427775468852203017666378374684985330045525786151249824612294217476085455668598659762040830699148601674243074295302507776562268310470931717980043052416241238989791190873513525771705687807303432046838877935640201936472080376962408400380090851219635518815326385086089962384438522048781420420365426254277381868024404216794249550334489974346436615879833749571208858991355886211089836325711739595711771628576132776926798219628392981473877288667018688828005653061632070881548834400608175557258501657796952809863173132855619103081064752562714696587685366119840947390903064083804413691478106524206029295766855201399420493333929956679507418932412964042469160938448018243336827204566130340763734738907299318720060948197493927184639607675921770188655774665536840532843584376300776394782623850410829487626552049813571030223142199319432457089224640363944192472058852233817230061070341953905576303625680394401419989881551122531817141459719601534459823355087524056853837606759450694918547819164438656999260249408296009366953887542591705811637457041975061787652100634186747462586961726773384446016851293607955345822035491595103038608417020238016365548944535432082566549275000206334944495811957100353766877872799362909503853794296079848337533255982074638776795128769538710992214568506026794106066871942440246587931749265338590258488080388431567958694151176560639923099073543974347811752798262251939984637719066308868440781432816503911150327840762630995088711476323334978173714399483248216715723496582705988426837201346438568032291267018732791891062205738241748403502132430579517843949359768592544964562573824204077192618238745929052615190910290774565127244128138687911576957033188420535806263299039607027446189919685925727213569462350119219303246472449300309900107133803829358031997205938545124625312657109307860679183681489280924310044283391673429950086917744893260395996342535968297163086797326675680063816959791144454819846784639978461961693930322045524453316890452247965126182666979568001889633685188737478748534264892214445182086309900565864097136190531472821331710698135149651320667624984682500322761644766036295710733617347397361854848563665233980370747160835820253840958464001350485550389916637935965147115659817372171874817662755738535079584186702958347696854757061832893106766581406833344317775425210771930816840885381666835478464011143384805896710125066580623150439901884172430207948155619130794530293613316245935559283008449390484766196861277433362624603128082171650208931797815684704104691540284629509760219311568731227295584926396201906241733680307930539790613873384952190407146429816944769709989752660629503936378964157206639634041221149191870734042339235972726192805506207612516420495243969097910857962900131965190435662776149788504659285687036533305885640365208027370003987225075614154109102586137932956504146463847811827983297929338273114304292759965869913067867295615360618017028872837451358178818070402912677441159581460464884084159812052715435903413949006037430464197751723932274093448657185811964943176186088130503102313675102928153364925105246413334415016871779019046393721049075283070068468120872515544535950809566357422336089340968862096536182198426775474205767287278307767750760772839084872662090772371187388167891937865397726319327684435759156266399656580984438082252444890618847330485686550287990040285245435906457079183676226761367259080434850121966623622989768143226726327053067604345450303270653740544887243191802424114854253844414488286225252874457776461179002815492453459590022121947716010972654165296497104053059520665331080179245923769599831072701505098396512468679382895607382582434469619784158320465180975057758281532211984862976318673735925570594213223885596585440301954820316667910542815205576613062161096557645633260085591025267923069883847202092250761362350638539547455646521193932771657161597265829477080854384135057928760112989198242282718407564441295512423056835758229995997687925452096312169080853361112529524429961365375571862348466782058298253608085395019935283699299680226079430324840799867815835219093933017726267555048782305950768400127871293374965683680011654525335492110357267348676899601475432639399678857889665459803169964961557999896961228091369815434068696940428276322955921514240874518045487331773153895094526850350300019327240291806580937900042401505391209022183097954465768403489844622619841515803726601716555492180197065668410675535461342434683323051347926415454159008622012134437533506724873589948011309396838461721238983653175876126718128802603166207212369728333309318616448512204406767795051824105761777515929401864751567451768738644781706895473584756251362231696441032379053093072045962862146155814189450587922452658028401919747348669861654481765778081962188291250804805058081225342232925376037404079811634408619607924183625602975124605331541398826612936565577460575500331317817312413773783845018834594231004345140424011971823544171059249620274482816551223699634727163626826804900789750381855285122920831178191602628020629872331528561111521132277741283824722909980620753197461395198849325118656100115309154253774264187487007897770583154245196311166732606899207673264894056314870206661266671391249389782773515815327278150871308830062961871047917484092293616816714855778290803548956104418107226158279579586007449207469073744825815956960699250192347971023875174979855137865851701427106109095037288914432006452768964327593334785278175063308247683369765525370580581051401826299143515232645098411381111162377807282569961681898795375592268577019067105707541203342292016074976633489807009287235009911357553841997772983218345925152602653007359522331140611305736634737149650023344757656086719562151452590584650593752466234170616762326697666096305020604883450336656058293166223758461084850914833885622553564567520647648884031062052948155727967790317859896731399997054904004880421085638621237495579700873297294193906379208380786457370404774067248516650740031960891347099634626798456344005894459014039232769786782415150552989395742012388766497603900431495557277340282945657617718736880901764865036696703415253909437121947029596942632562048170196290340326316084611309812417603050929575972258522410667891272508013906072363444038374842815284354182111425044101426696484922160913868295465892096668611920575066775427114897335073970725123983655793429023470042631623275803684203451936910472663598037422404279557911027914942187286462275529561743156330745138136560653971415798661929160760897477519603935978933605516283217438839398301373160630954933350824513292517535739869072600811952765319570007529578806293592223969442353717164669750679824208070233808606156076372213682696863243778499941502366367929989713356369450474302218911513866611982788671749613777117944596358805152764721920633405103536201391373745846722348843023852954296719739227000166871082480769759536476485410184971982003104955137253836987384725826681638946899193207099520048329347553773410081110415736135488253659890102423138656225040035348649668541567717207380022314150084055696480652253379923343847933058330682625924105394236297988205291068867159284682341793595932266127019374158275773729860569068896001270138751895746056928555782546013770270456342815985371071915541909064797534017860111495459101180646690081604648135615283624046976988270709468925044435831547274007575147291876583879128727628186220621793169130502028053249143265848524269346246646490923194234006496323428181598042652872275321637831420150494809605230477788865338636752528283028004539030081494569997063972919874367287752731049766480998337999822727677675903590701287207259762898826277510656777152707518938295900083283894973175469591812647637399736484042379934543098339678645636025667524512528093626287302602632045083393457585364243676940752183267392988829708588836061316922947762480986480737628120412167378904729179960889413517978702275662756765424082155323752961856899215094599483776459533160568540820136809237826907235182067115324289775231699043844676506486006369347149547081528798496211145051579488322331035930677803103587379776645895074623469185022068014766407801328869247822827906824206937014417334294014801990659084219170118301380117626410395721180257387137857737933139468962239321747497289601212123811066666135519437788430671276215339363960400736282838240020422822004383710603927928390398049405693486565921658869442835019459342231841915974858235354495624493631845663195567385808818553491108578927626932166092428681485212773669927915292844694467403172974134223423392421490015538826245252584298192081064516369430961231331697544858514985817856430396086613582640854285840504379170970740244404278887378238419938838299536639074344504043444535341920585219012522338055304660979777809060684451091816619681568615433427799620704528022302115792460144152728723045122587058608430646355304399599165756203051930761006759310172591205224595558282454577733293502022413040348050586691607396825717339118847712496446879221383811384193261687577321211877636415950013647668226514853721891799345263933220484976248503194852576912273285581030930562140463079066023756786176966123008205697440358782092710457543811819100146899205912364237489123337494659312924861365571245535973868511102451077110526176164281809705627254885484808810997479709003901011376674420447534927767310533145842052810354474761629207891065222594301061901960031057808282221897386568274878836540282682439993922199808306694168567408098980707446444921794348495632885644519782169502090532634156662038634415851092314417607818121768637535244325889132967248820499836433106640594254140984697890461933664206938660194565188883865448271210472479486624285499972664306002439891175701094509704224222971871821889666836424939842465384529058640758077569158664891505348134230045203081925963585969822938127561964682933568549162522033841063053476153808050591985532483468092013043739227290172096194709360919954330127396076525064942389427450219706018504203917320130232438531040443844989215869977442289502699765771010235664616558547405667453836750972167255709730797495423308868235453211788777822322686684295187229263575887338903047066104761579865561313042398395435996400073147431203441243621481371157507835508870657603700847230946550749576293323473414169987538536924616811932885733122241451829649276932427646409634004208676543464513036387838583236962748883935412796218317037424771098655505572581267255044782624749939781240052709019464598893110004436830222578314848655139115470696808490265659431715695761854379689912265578119524957991795258233856352479828532977871883540615059310460497451085247265140320199157728914120793621424723902619402185871137941202730884090463880752232124750210771599070242220921638885150659575246418633905807858236492558808825182641843559357195539366357668362439457269471912929855088135417474061717367862642811210017610592462421782424852728313050145804454114089669814278733948243677418814355643032551959364871188469514427148340736533567052100366347946771195611147937626074264289357075911897399171932491507546735567884093514265097023841292934517825209602020072269151922850438003797907468966315528216541205083650096620666295963826987743672865012663897798016773947302872632504325908452302953196583845067744960618833415899631889026789238833590662062285447782763789665107964316598706937292505109853222493080837843269023767643323095872721157495409313640556093451088763241345786822782370959569607443364829426419421679542676020533449742454270103801457879751474249401720547750534022356099058122295864987336706175155351888510156632555220662846208111139433791410490828870553652785346573659432427483564861402430995560146443364317600684399264277896320305922778002687942103869263418498969648952495480721074518715724422934451890911313482503900658090238091196985598005494657393713842252405157920233953624927015303486536911033719050191214351322800692956827866216687808494383964053062096524722826462437753061170380167091822229851834702787365203459486534540599578051230125059053910132231374053954073545886513839522846215913619964822212052354588331753459907486830745339757408660604085053375017521031249567738175802090074220280650927053873844797610243769206802795791067684480478472877300641596164375491313741083333222587393329879580893787171094373663772750965498063580521460029366811700439924183026740688821359154589645243405894324771670023277768316893033302720445473735100041585424262485919421784329812442628501987134277442636879704590771572230075381390004553460992976500728888624873271629686159084124904961092903010074995258029844010955299084415668616198452972131038639784075829662595269012484157302748831070101403005529470626114704396482911574666133989757403002079420948181893743648218049982707345410818339591342699086836242214697597246309360455007330064000346600822868074811635885100311734823441748349556311110287010114587834753785131237946485889240694062415517061973996492998555832349604006543624968105615268377408518644092188157751678351667557115812819273606100104771505776674619756218833457224295721606600732422048088590825933757618641786862292334134122361727951656800900773524105239021630123443482800949935406696398463290336275959977492984000764006838494985523383795251714339696528758873649216987404006972906845414176797835586785784226738323854457720258828108493867382293533359870442115823969287400819858233239534625206057144666535722696766038194932530372976709130392527492334676928788023036440423509336940757120506909579704961078057151636862735030725601821496979409657828276971457013423707290396466834870535137546221339869866355999425619553902836541248386140320723853436518913336834259686299368501481126046697100375861468714386874311999297646397882236404177670773715520023181388568368351760095497110386062562340253715649852422880172799732531641346105069486981980253435358202868172288513786189146590167943226504614092901393854748771536106937521102726058759874236306115031773942134933019422410150762364061259928921312482818005392207255222612008004259195125574451167920913667665087358859088845574428347768373720028369200928359190352520631899521996715257243262887919350825280386927423861146070622011448482799022303595934437237946904387491844278033139953830558066382913680368585238332081539902770087147476474654002567882043919093422566336444259295933512281475057156474803838549112831036143098650290054531991400295153980503684057876114074684629273965659211053748301788549840054011566043928094065136938142657785511463093664101340167290238226819477454129261494864405236730071243027901096326152724781207686531310925978700951613511587495401403116842677157013521959955240710008621820750676543038056955348044801671583111230191984708264139923801382884985714602909277135013712559307163089359288105258261753857954874767908794118351354449766061920750180632522939403106930552789083032161911567933814762608030720307285583188117474148380899151362855182578416678885590671164596263157324853047883726120756729004670871565119540854734149241385947497249016761778522860175047787222386764968026563073933905533878666463318866565481172052870595138654015094871815472598118640381261915212477688367714145402959148616855707766450148548938945597222125035238286759461567856861697222713543686815779948864438598756145932703684085328427652171158628679405022175603506145853775483618066961180536694113423198832697371130293652365138186526763427787485614223915335711738840452657043628807342789037031183604352561904340058976351221019016034541079612912861447834098471164188960060804923556309431936651536967953661882426320039101118707867903366740718543503289955075085859164278752173674276789201662601486290181095890968369900749931151029431308528628899848738650012769321180889159439547223898091380345022554383953264655556363232829190788313864619998229294388842955126552968923138246178921264820814413085574982339064855655946952677173794022820781447923568888615768656486589816394624967405758883733974738283115362449698758658402610175057554392682824874526402317213024323955492132053570782640174475428176381251595406594714974323482610549640418980034846765740296055210680246819859167471829993132737207772555792624079127978737721804067543017976905417365157868524438402274331824854023746543849988351574662689102988769287509397121470409015981648123477456277596677374585005379003203520373853228347376176012371698349329281022325083821976235720672811965617558201870001390701248970784371855218399115366767787436631392820851376687577242023428983449581403431837487089292231913350566678163180115459361756681879022629210854078591180258374363027995556929968944336257274685707786864849657192372755886095893143291899237250855556272638630822814853638236379889677220380324803882332652932903117055470248910216670365127591112149159690897469708483696697835513646561893600564740552352857448829578566300367320608184807463901747313284087438835380014292728170074031626844006482961933324846689379295241137051233202684422208220930906357765829909042044396333239448577058853476529153401597978222632816851394504166239163432536007546150624710895874939920916465214579714379515427222514669451058498637877920909099493115780986166078379138459664486558094146190332143327953555609974156250629235621467624028649213041505755363804846984269476939841830457004592310572405190796766810796022914502493705428669689253258311146745815235079095412248131433757958977587760630017255713581075837832452064346987512133571970534820542071241916572479284127889634772345478074099145754652027941997695252869335648023707587839354954681018667846677202888418146192560440997474199451355101979565124861520733561198102639519165319107584619979481940508077650966215734904820055066644562752222555819813925585393927403353764856389403142410545639768757486965684793973614100231353903868694173960221393237724260754667242790184438430199477820561667051367870173195444245325047253353125007299533489786614571954293047479601932996716372100320232075155314206517799344565159171463175236805868471090187477955663284795129961948624389167442674668187064821931557975170029522016856969754781515247644166328432807930568507893116135241766630775895109239678291131907095204963003172522082498143539179119886311984119340014349296775728626375604638985900271487353894034997965109601618227423753268530709633412340854732004335076417746849086122069954752779375326862606622955898816249452449605459648179678612284157626562479263992646435373775620332455160399609206965491406723978935884101154145230317148921844512155901433593284867891332525831124577392887270092114699336841478130516738419397297759682646650532029781843647401397875330911531844622746889577833487619832663507082961247281216567651536627040982768037220489214953026143412907640116027536029111185723207108533660608459154665748907037428862249544169489737721558418529378666390122290778952873750709932305241003947468575825600079048495523833459071069375572456103080874388919920811603859703009251792915134443807832266040446688265098498453608233401526781377590971604211803637182080526602494598983184474504771437279905195096455965573485110827608062633595420857378100834763954359839260296962743581310089949338054130533163383190365953674810950837992648015532704676692894152470996160177845708117393059006485843603929522919791777360851176894341032267824877058759915938638931247725726337934220913820891367879033171728991347013323290812361509571099775096731281501632887765264198309990064692574815913831914208772680365386474998835514359475628759128252005681361214132974943037756103254709913328114897771465919006694543971563828689405659613846115189862193615006413734178280349693531488346895460706168907657059083815227999726762130530032931967516946376837644196044137241582482629485465458702780995473877225735483318300283592335001257544521166288411685754076767286610962004135107986034314052837820593963396533720599578277583655412286179641362245364179242647915162341343031224098767853233037929036481772919313345777193164043386529562728222213459424581867063349511148211228834662740338778874387777403567143376678675748497454642156557064640753634577745579519531640535825742892708467959272750808141802584917447829335825114412496329920953665494651138022128064016013375230423214839131673548393807124244188209933068348968780476112931823710520611680230316552190761798723595524212744255722021306181725685751537823083804638213179637778700551674578094091934204422637887568710393119676913772730700747342690851431023930690797843867210592640141460510560784460161034519406811961706569917859996477206700279315190361962493834737407332034542758337509226648263901631776721135138114339091955289998713571914042703863495925841664922607288762499042098828158363761840019487465121927321593367543746936570710545862012764170643443864367273343547536735677979492673488950050231990700314256673192278683574411466862374390274698272757214121551342790809189376542830166506574221130812414505105203861546815056033499349828026135131790338054872617175652443293214427087010900710393818261536266462259099681482914100551040034097806321567396178095310793110527648941936458047237440757258004468546783152273599832970872305960784618774356836176776098124302429973790625314718830425210335011005366336550125669470607128983457136817623625449328591975018025443908957238561223847686742661010539850769789383905505209140466337171169263086895844587907812382581755723200328906969902011385799612651991558262224856230999753327071471149842395922824043487494201826202160779318180222119987991464054385885492397396768495099721026902591479094502728318007683030475586718851378876494394709373276711749832137053922553819313910596686268110937567139678695399923681098320057000564069858218020317863457895400588788463299125972090536717927437138941170251535597013646599784067302617478826981827450883072914760015521597439538350576496971856967909760677459884628994846340698605550524816964179304025334182411687598435281408339888770759232332955599870211278366751820532038922721371953117139921195943411365319280721596704342738185289509167950149013948813400927723373215249434911525461177269206381576964720910211567294380735176265156328483360438499718462646977648431143161145867370762186300738313915141501348502381247337383959816795586262644970242379020107004755102551865873157118996010689942281412744870931609120541996979315460357517672133599249014221475724301785697278466997598794443815373725243277000235037010319935437318431530388436438661283195040321012441306081902678821985539729946599124733980947489370490702178385019676765297558088391356548674716469999390341819149032209522123967779591277738124614076311808838543837337522272913222678258566434762855191740447972096470220850239831885753457650981937946972146725961557150194939399712711623849010034708777933096783015082482272522006179030519922091625572776391983487873561373211328426001818106419989937092040525612607965767205866640695858998682690686648716955122642765500553484653899602340937581760029241321121032053327617842092489221794706379747698003962824415319044945730031692241248682507405879747290495498489645515513209211804825511226488390436470614870645198282863609811517504674997675215486663192143590876779812222833386850650796523308938583955427807773761937500079229839818208456094907421749123168146248369163869861753174161251466785606269291293537678228187683347978563511224515530146096925050977669509272649047605584327140026612275865149484648442779688295375578519804970196633994668406318323306518716237864122177019334888876846091373897592126023080446712558453114545041203637435618855558976336296106781362048453290491574680548859873988356801633801061429618891422181018847169992208435854735369588207635728307750174253732876795885281959608045209155278829144777261239056411671885762020474781043445358164121861455222087707741995219218612558956558951639620774321301520859312868011238996080548638095304983830918863566543147115256420573020059162767444213237169914005324173775090302952854503498061903778085390657179457014270116832845078432126543228929091803688618919880879877006212528745369077174419213317920695278739556921594586568596162064346671462439619779583902884092653214109452811729788895255135359112221982954262339462133251589437435181706680298449671671011676400713719405904087806812508784857470859041257188631077885156050752715895921517912700882297905042476971246077689411317894287327631282388701490275371190666989011311577837760508317805663759470582012622275643949846835656801533233200376912015732840127681661292805545523958190017297399378316814661248445123410045674326147697743078866263247494009395493933237728546343345935189102269007282099489300096473845146520419003998864407294521204974989187298937246435175883695280905422398601006528652583247799937709579163672673961278626404763248888076127955988030969952611434860056580361911123340516406129549273290950903092532754139172305989946716558176522804101422592227075215844308704622919198324173450317756748362960708656073912144693925031280715399709732658706942110194288686873150128077582643946555589144501788911725561845018399606287274810474245055499366865011940298027186227435858583494853281449704608559199108653114224248490016497976464755090152451062902561857504012112390482808824374057593396936522309625406987037273231832670090315714770369684905303004160106873727583673812195366822044288817923153150457878071471154255431482002771021030032922581414040086388035499610869806136210985212694636692896126946188410528919305591158251099564088675032229551497164152262945371407997406394487020235187059871006989523896761615259063176158290481082947503944626052597274700090977454193203910350240729888092995878004594047309315469697631473307261949894920020246039513102068214142848261371853813056373137806515962563982645998399963006957779286809059864553435053473187242247250853042743059796215272103553694280676356441456024632668258035440734234303612927272038896843601203435558899347715095254579740958060489524223064231916187074556742455438881364668764358339462139866655565367421215664112887908269200412603378961134024854414073675181578388498673157183081659966429594454316369672593572247070199596745721535020737595792749315316791161009496960268391203071071279965229734237854439492514768640499343415293226822538081242663962089295990592842827896212504640855044303899281449731001607957163925465494418326492810599632650806566019333948373287941213847967141490204862028209808766070770688089446082767431064378560582210672394657067624030308536250039531822198262039411733718613335463797064444665470537641474734049332436893631209017296246757647098203561017574319185758521280418173055202830377253967725157075681280761200080652908241992583773002260395642300853562829118402489498114241804449131626886920915747826597218074975790189060533574192782018612828083108169598996885627501762988589709434851884924308367616763724185986762168755082861880830304789088724376619971095336171549831395051062384424450681090089353912630116009031663550183644732281465734830930440073684387317321223584325546235278131130561204392017530829393601779878068186446153546335488075659441637484901049989794649113898322111353393337086339590044415892919063920155468838039856405573563512171086059946728330828537133098892416911561318089585909587194565962317012084946479301782642076406300484501153270680558463098656077353001315995829567048771131293145991335904691556862374114339180167775442625839056513703949480749129544502274669452638151121656677271193027883613919113107490502916929267720064820878558192964171813977409023235393230287701486346989373725091534648082815212514853068169352428890729675743336720380551918171187015722207550070902905557979848623325664558448167797531762692844642440182793943149346450732894692818673010076460019587670108319679782575188670069908922836823048177596100137611206511886320286529676668311262426027814079272135399824110005144463643780709414014976574542687796312448511722130472087367477085942962303434662885298148654298530241447369147423961691630926331037196007683658290400618884838864920254911936174609785173247026952639745038760721175450736070128168958513069246376150070418218846519501927712654818301618988591555822544429240362210865887142138758879833971475454272095045837972955022884953514496700639631663633081555294206391460912050583092517494397932987649178947730158871866184373109919582191369049005458931591244138251151388583177510813807360146093916594674799491441400001971967031274289312186907323556984900816703825253303196044895610563471181795664288685195308513439938972210920731121072827856580176902439179103253813533839376240257278277180847271102301345248097046156402586060047111133732863553363252665293551432523923610765874120949757433739631776249212028502239996609600726832468549006839400332656611497153368358332165027922092805284180273194418607007154403543044112763349238421602237696518465375949537771840267752023101208244469758629357085752861705671432203770483560977054326860182410265928240188075838644595667512010068876718491759672110968341790775467294178526341451707998993407475030355075107558020651846124797578710658544640543997589593642714283408800875084164169460119045349067887534999853707332426829866831845529746274325544757727143331410430829247799379219443543322139300217354564320743172842694388444813002024727421724486929083299809043165610476689113875784171103444641680022489690359211450822401031563374304909384538852371134390958802961902558928976396688235363432815541081173073402635852958910320777713580316839659816070295658029981755803402945532101406976272334039511641793861544404322639934515232422142160722429849820852236708393426150779596613089399348103137054350198747124472227193648167860190412646583745290375425790014895752354265646034947387700102897470024396116009880941775314226882974804615365739255049299544883820874737734748031158155943066035153074216650357318977645733086331389059683498154376590647590372441152309453538397691925250742664884317355367460283121508399950887390892287076555492772010128177378604579894392550721565682849116763007380557055817481384864840974409351053926670784569984407107307604645507623642660167155270249751895103433470537177270564950379808722191283006234614159368048805662639829209909298503747857948908060534579103134295323335447960297450562312733758297232897418911717460622626823202349907223358431382813438048889588125263813188405039115352252045755580071631663642339331279246720913098572360807860600511672978073310292370807195674879192986492630044406781165736304035214261197016547679609104243051665231814860727692073029774430839881747526259669891922963871457031703242916372152882016829914486377536365830410725406715745174381711918957350474697049238059054674742740475284620797343128706728407126165388446321261397593296895566132663738534282757469292125447315957992128368719223095692874975857035630922332880801354613838242716848572176088685893029273066662339218495347171382915577991247911781013392609800965864771248551062752575911948777303004844665185650559699250713348638630215025128665056272539376359392449440595606833915466632813224314793408855236142288979911546913384314304394389356799437905029290635805770600990845808336052901980680283979474258544006221461861632233523478473862909499618214986712117517152316409221251281433404593930469285769072753522626399941697614326861251672545550173561688251969602088719551281236351441652808686708244249222870451405208225459867708423008691526744911691043148089863993832943670435767720802842692380776281245712176885968467262253299752171998574836266185491476536567268329231277199896354059926253457937870050560196672626475765911296269201375553806440125467171855511014971922711851214591674637542023533115784935534781097280281494892747868899978208364171972621984556474778969840639195290657682662269245990984906615800823065411409326153234616851495221674075922800633375035831508727514365298677154349149024645245972794081324554415806569925281177940078173277124888202278081608366536961719331787242402093469809301727141483900242771521511509453088728240762675286826119132057258853114864563022176470946351624743273137306415256189218849355101421573192422496532268486313692329314783429753892328826272951888997405286075085210770282528731228564393824320715877414819475941922339974980089226136567282320626987854129868919150565281346769116130781798980439360888254135923512605161064611322486004493589196678301797933180407273709933375574534350987174589300839914899513985616683644452306228305877888528939498963638716282351354737903127466098134576321401925118832201544860743201026426822994276647045738379039669254072155122689102197655240014280210097335282146218608897630060570746627353924068737644055524392218644565908205384925819152634642036263803554054754796960465032180463241352423719224709002049274475044970556851727785071860504565177226176944918757838247604341460115297663499766966689977412872255433193605436527690748499999197541874449952394917619177519424249662141631758427406864358929250129084527510805556853322956440233969870369744966334652777126883158609057427813768057058431562101296599392967498658372287874772385585191465058040879771758945298280895994847981311222788800308092060044937147965950520816608496062448259092057929448769138431660352256813764315627314898034200129800548851756486667518581090904130139500206661815776050223171386284803306313534539441138917264412379980327484045986143400504317471613648865453454039887715324761061505197008461105233727095678957246006541693396270029672619804979815508266148206525960311509544110644322672489567594973379070036819430515834408976077307281585285383384731247146842918628677590206771127773467149227863579333730412254837426879560366545017860712865008978009531635306013333730901147308462227014727062499074811624911745159839003983206531001906214794062993953370383765727557769088214435061866676639025730441736929257634588461891112624828570858138594077910439324453456253908767015852311151841111486685268080316978062930718417379143675267229111349447230820675789067209640079009753788307025133030871718607258877098716254856625903409977877435893905376706371803313691900546767643963188202122878181117029673639701345514141507246214377988862206518813671301586042061153617778324073131547167299113592520812315808862313381380866196205096185466013877168103053342507172585642419872087743321116422691324130914252341632360477103749822381138721839918034457088183984611315738520863976596572330811880587579155654050178171841111792218887585215280881012011807471291977082186891915077804229918568823856287347910060863368524072766988619033126645089325449998530301553701262801996328413228838455422551682597944588810960694399255244685191080337280847694888584366390088720818268753246305618309343801610657735921798251895348061113341477301949538451319895885808582467846628900957717132582195203974941946410474705248466418952476121942208954277523905562659276149866934147612112051824145333037616700444631865363859710151845033296111499712249968975868517596224468399968524008239198848628798042656140374957503961046629071947453639345754821036094239679929992970317085718316987207428566025603166764087599022969925054275655336891111464937125992257902234888912809577581753760876019667375586790362825264243961795369920342727317014308536087866478893468498877765813789734830617868526755557808680243800941783218977218364205456392213296684568614418092058884430763506772635444062250606249060324151312549003397260248794466717261278039497414079133891193569617570752868843397422175464698014446278263339450787691377156613011139473099238227661670570617032550724890268564673872266091734915464609484553329333556424352987063691335909703454403661275485520613262437875643024979013205990188579482440444370912548439234974783120131695059869012414183774955320283657386656942276340486651247195797965530176020392295809050004609442471812548907907207204237751617987100604589348171142952571975982923460673134581250613461137761976116545289880099775205542230189381776096858230976498612378363626879562599713903928191006485858124404590134775939455737136458362290866962160006738667022457759232305057700731047689534481763504120565436859185843075112943776209433935971313599065443588718166359711738102145882201437832440864251592729516916794302865470091222539609406406317709298369032727490891337047235840345568977624919950439057178215867796756887904809329252710415589670954468414238000074851804751612058737865022921529857457387908756316776515908376631951346256305589847175796051811741018847272336824817976140712432250477401457644997460994626465125806379966532238354169260825350147175320616427874016408734646891381141793547805065787152073334109648971332303543040631055754632109795513304386399208763399939712238124700236469495549815930912099596199964261321622870399407132110470238855813997203486976841589898326054266203122108833738537096026064974218339677638059654118699871212082980747716040993513327801951102548755285963464073981650315449062890081787996434700273749686222317260112984705491784309711507546487370716280255847370997564485455289688260503017658256683546408714250604833447834211464245305899668573997050077287685667088594140617133984158278538261340649298904058692564404057863537601866051083767920650847207183603040544684155820787914312997125366216604965580717334321362912813222068431836562316069637828088834791065479098132347273198027552251162814515408186571348110604568810550110494101525261992332003514514237747168034942537015548446399393968417888590475634811242177732536986583466892041418807091282052882824597508169115310954188471311242118585475755251658066010829294437720443802591780407646810216718466056482684996185041251007673595502473123726303342735336646553273773608306211139342429293738267076235911098845768533802969555469917332090637285275673131445281615647644562161997432989143683476683101663422236819798882044543228393831348029922561838084568973168748406247468652282923617716820789781888843871411894844227912527579503020000753704515682690914211249207614725666221726087117696823897171784597681492546164161257881336810430132044103036237408626867699202456780123372444031540228379132361064385032339391804721783577278486711710544448916081772744953008131720059792778751992623996531268700165635232359547656021954273286620055453625899509145346696388374612827587882508523310926726931888335430373045971494157056670084933012283284188824903763199217020798785862590847255216717045041684815309582028420486956520994019866690854323181053341001857755315376003198204103294013015405864651177064546489335637304719077088381333858730652276141925714703476866750496476363168414809020576035515243366423169716608941052322425790182691357540636202093158679592578131305956549927123432036714597437950122419746115530735651947326516986384518191277963649642811440847392327108073688271466779520841067538670091166694610216121464913290002089479011382269798789354724417407709150286407670010496423208731953840552671536687882489967558753725865023038699990250343814950162581211954908233306739262996618393476766782213911420745250174826493860413074774670491857187540252158240369204704031869093763747566210524337409699509004764539808184582885110063347020991375197777362628587871916969132904517254890189436834982190894244107176953935392297137656878659952226350420814022107541862312447545983030532758830884144967901521915597454095475416875820874491163007235042427142244525796708453173691773010464613104489366449282077582337284177510628215631769703321139587971702159529738391785348700542017944633864057266602204273409332380186581671895644479292637042503674379038706118985225593683431927553011159384823257983677887780827342007986740425212715608269610223280084688121537995038801936223735578655398911129869877553361673694209067119577821272858269089723442213244222876404874084637220255873519787739058054687234266084624161449460418668176623869517701933494937644168298214120611374321052008550539875674280085808385599863456438025343255037579590034446991155442229450611792337747434327293433784623886697572967787287921430795557759407936484480955866512367916751661267388529707492714709687463154824139455412302531248174848606659062479505834788916536315043176497964578444894063057910075056971821861215007876626284189338410787424457272421959713484385401085139261139082157497443512348771773221200804169150525457970777207792920624513366523514255575744489959026768065082879773688366404891104747413991801443686430772472592218772554602252211764402301725324485201692402710116948018230243602148256549456185643439197331808935104424253137272054245059337485970766429875628132649209137709586694053966861451339004204382390286802372390774373547739125708041765624755264754769522891836102437302132853848811138180906377491461110451311767527543403742827596440961682571560251386441987945981652034022461774020468619890131742297186373445243401247672447030445317517714059538526344152309125452880255614146373728516133170433125160826486252276018776129160814293596079909041340568989601930786529584367653953833386222383705207312628626176372092371287603890253193499194656047204397986943718801976706580558514366651162034142281399892745715520792148014026340055486681362961951798000068962259915312503934041222440396181802168117579119546452865231675376627894476359609228239712716821143618855552251374173952487574510904346284699494317710141948763078728679191636185707577896395778263915941171176266121276203077630341536569941026661696801666864541839917452101955953787788775459106821108979569932401406575978770145424969493223372132005212462036258672597677478513875798254396403570690696178812364212579564755614390945000407935108543638260883482224928018928306106779664922060032969285552235252273711092105998222937694215904933312236344036100122941590182024636358508355882145545221716027068541218359428845687476626031083203445367929641671911090346954633671737094747849932505799057543991503490454483155234678738907378361786685928902189731841118369440762170112512983721500753403602329243127641072927421101121050730835517118593192485477239510610141969914973200155598047852625146599588530270615488891134905371503154653383861369777431445404090536450865753746313780827517463316027318241337309079058740423412864656726445786721884218984679603026722521332044672049173962846176679988570613424873658496503266691505697296938217356628915403383216315533690471164003582616476519894967019946606765193084383902919779784878928403506324323102933304966040442173048847328356432671808973545490908844298216823842283170607057170085427521185888100705230437137035247704490423861347231108096173734991666222430587640227049536764340913731598107116948717434245701030239976331081800008941500831620168010547653314063971226512630826493981913897510227869932778752547963246123136252964497448532395721021421291051911635455178222680578393640318523670572595319316608457556682820473539912970349888103761393631928794696090942172833713770567716298639264619985869374448667485877652698273441043441998964191824017571071416937872414213354185823196613944257848021750937757709716815861976896715372585943385395243721985643351487379172747929153468751030600035560704817871651609340166601441790339831567978740086543065651541266485825670525469971857602789938287361090777742073968591248311117123203410768437411246244101492080553431408486616782102107337937745348238307503384318908687983231981555254090302298152585557008690576573391762691975564592129307674164721791250987876851684048616291417489241138647854880741900514079331388749774395959837268436060070864258096973006684370072214138991369297820122497257561475350928227105302369795285554414128747052687716630775261238378747614284782703866673445872083333187005813709548226781464364362840893176819696523506667162091070791821241291237042990764175390974067224887814490535640467098081365821558524381763713415241578630253836864265887043454936136225311663069614082386937933285923692335513703944798959667973347152072592910882978711388449839641852640939630080739362362509030724124166140204353210995483576631286440636493056327537412999313381558706574405933832330635738027399236702120607731094056876987280593452002654827411645935941780532438919702019589386736305509028349871781626100265053178031961228625532492874373843147514841717790060818563490697729110663371104064250106419544426751592697836797175845078330933036939796442597420606957333829384979593742920776410212965249333998830694688104488116412744447821667715274612317779059459763907355640184691844733129856520442406974566544228870570607985291755146517776591689533704772201887130874330739856838719226449088175471405698505738318543338009948639363011097705418993368640847373227667410485566258863210031975991981864151451897611162155110167382286028551156721354460493448792707801337434764643370920438040427102629384604004533462065758592109605191487186622112661214902158562785216195711489957988384400577781373277892522401470831985635657739201876481984671232504399861299981189828875685258943981811823956159673205723979399044573474846210996128298185790617548908748056449442668873549840994842627315482007815001440241664754987824968747469533949348994900941319762501267647220634328322746908371726299202230741947048092020571641897353328598549676062559670646917739112341499780753430012508432604546666809242519986765897058537469719280203103295711781487593136021639674351384766835681935503687456843129571432825080428190724366779354529440679544605274091506353627702633563641308495131882348898063841634106044466360367025871692240908304084717027596054359526930182347653995908249797684935476407482280908966576187880479750243170511040801042065409298666163437653922818966555648909436000657383840273930887066524713097412625786901033455657819464144444008790735191565851753228301633362735984933559718265766312530703428292931784052661253290429373834854082208633177126129281256438597620150100874566587001521632508274067861534620718688793327955468550679836136162505945592135953253763857227473455443282643657533019114852618993659089955239842811539781370663653000883362485214583583302373692837560979200214241782912693870174209840248110756158359763992542615917477756295456591379442814275672267609083027146805896348116102757835584657676987826554218125767632976088936659038720925814752782543006181450763959376091853075017280060531749086168328204514237854326155248703439240154285677874211574060043097212771069926150609348345493451025463527636026334754735319520323169096206788964769113321531001047358164471625548575093912063765086019917469137472227385235263876825223638526950248127808126541421875213844673218509415463378650738194321468850738897170234301750663052958951285127857492538240569181748717910965791429786251902686565376362815073217628813549927750230689078415038474016909231211258864594034331814859039211654886757067415310800797107107431139185722688901380954307518847388203204282663943889865766309620860928716488672734151618617669294867870667763070403222532068979418404510389268807489670170928415269026142117039796257419032163995648481162287325934903171987792052895795684968805749997611237090816690669970356104820873756770961377840959466075768797859978809268551495680005800060375210253317081559599218159791010960835299007906157668263554275060557117246907082108829069815791927104414914909075286679110648582359855873728350696206688436269852678187022072287384886560869175874506676980414771205754763352911877369941626622770165475470146609628961207044124150996067236561399950308594242068143120598273669484252023778181310550390005095007750410173925724497290998155796710546157960909721416262629935920565000152020942678623935056316953011701779559098499333322743473013482204254436561420228900644698585867482719735124358102291372410423705592255678491415218701694150435833003120119769656242770108049827931489566722537470361845755355400101884659434754450891463359671501580964398988229873474986726274612925370440809567369193817694702833717627444184946804961651523345542954115405521729829188821729864418923051484820078620347527955462403973778673324023956108366633561989784971948040727280046470247023560181073468739996254650337690654207191698941208008985728571063143289068324466209209026760892285678729895755318709855086912412756576744658680648152653654116491182765155380451405109099410574627424645460160242755773158925634784549508307546793135958578382323374494446031484049785723070528450908484663231023020291294322732023876154229622793886959131440662658767191871562410929486933469435486635285997035093104765206257686059800025289560334097183815333956594765945222172767077477800117685990723228657306296312877200793080332717921930012954292750757604821577771274685391004582527272835954355962060580461166212159732961136417684167451690443978945859930335841507828705556737248947095649197219415390333786745438252059519124760782416824229851119474727360076336455998614275109084539824919857732968391376157219875355944364595153954828254185643515473299398727143053447039200723014101390085956422993323875597314246508344593088654891685108980270816453233313695322444087536598410630413581491567459186914188511035633644660765200502654694768639824225360350387577834666643061212050276925008472796173901697855281174318519347480397617275618402300645960396856759815590062839623063345338866094486314259651222249956891685908063213988322014024372605783266843115164080961954622105739788150255943214899028791169765260694820095042037704258053323158353384314455007572847108465417816522680921813822562688005289448087974240505552779161078855951726785384576069848023207252059715311886945256010294167676637484929511398179302401389823570650733861975193059981566825074344849534397076365794994755041172711523366502099337153116561951829498079330748900004933632665691071184604694098000962959014463309516456126769211275547635441333212780821410664591675323659569000967326371898968059304009397085494789519467440064365174472194008316897197190855729933328488046197746362907684378767109486231865505093158308627921895153336075344648141126948746821195609347132374884614496466067161946859490894730208507526098174355617260622903372447077443139551207162021653485553706904843142306150617707030313142606970892315562268226688918455870613437615247710784226777021348622749145612401961642442245670751821584381262989046187606961823966987614269274760547084184393050734532620800334953546630565799371664941689234354084988368690704730621283805648336339289375162252560139130700956968104991328303332104502778330453984824736444470848584692020307388518163900826975230139840382977107399905680259714704052285070006059345322636653354929281930615846227536388079568155623736471778952464513460163888182034770835558645650159350917567832689142111152129299700202164836668185139605025701686767423245834327685687528904430509797994981565148824147262479237755683829876272062005846119734589354166819553113578867808426807792311438550932131189164351310135579358613048238969054556561394811934082714534838563187523753309154899494671566207809560807858482119536811588604431140684420445361789109955191006278421476079955405186510329082389942372578840316450142334802792213789455016532052554988729314282062147347622333717151663675967177584309639026672117765646322272006645599203904993550986372675770361517497485921586715770032949475988799422931337394091615693898253960765005682682242677730285017052047662592214445091997067771531275728258945454233365320077209912792929294972012422916458325298155296044226582339446657388584185305821454419349375362414648125533623234956879554077223623240627564922993160878915224285986991662052729890319061207132117964942944122435242613587974734325929169743689414756977645139769616069407423044318292172239707594798468678649149014644066081998844410142858940131480950284501847531893809612338171574746752838849006097974798457173651192285402958154756299869692474225101806900258533542093863903036489412071273291571677266177138543133874164772516875508328905548952804513994236091547204545906228037671905072171507645109196801887244201622979710521564449027106388546890925542832975403845197025599452794449368412639819673124908343380613781577239756820386527621636089619436553954349504331928079702653522948848084375458485137552412754966188698075549051450048949532060369573892891704864663735283198681054791104085213326575236697335393086230347938728851937360105050418889123053229261428113980785057229961661516400178357137623276141764205229063502709676901258778125436134509226198529564510329621633233832691704699752503542486377813478309411301835506365367820287077451627507643471992010948772575748055408441608345061643791006457065063264006905245933929040232946439536296238203843451253536011075807571133926697761386097849558544458583431997848472103004002986405609341704065000890564220636507752353334465638175822865507050034445634256881311796029233952620145565446268794604665638399068051658205493691325984483409502591702512249422410112536466148653116048971463366847574653805572945898012207814670036581910754913370794146687368599559609575153207403595890423357063167452743449886962466131639481222971495227678897191233254403791683821811174603624118670557507790625948638936092027018855659841061553900875597532846347431753505196582689534740558587968403959489665778580164062177023005142374549386070863037006750015099627665292433919426286679635096131575952986630520312253138179554292392712027009109361240856472859685852339440680644798220992272057330937943512102354206796412532593967403935684783286585798503427359139021135522684365099138778155013477266989291040692640214598709677670872359664267581504718816997495749773875692982359218933472288952948053160668861422526360591628035504804488631757376000482095526772978607824923699277382162690700920621888802262733767265329729189251809065130796834269000879782263704825913715283494308074631441976897340551198930043066634070596217864336363058739789683437886553167540066750704219527216615495355751448782538575868981892897904699238990865235312057528231195591216566995097052928276133005065809913139645140344041470836940012092159616231787159311426784209483737127097143135964778468493837129399839242338542970943174367695254871930770664796128684709796088580685862976744651391719367525323279848354704965221741212036644289417184257144524958788410915425582025082190883097649439001304829094581899568221287037319446818170912269475721258940931030654942080673133776133878867462901393469292393217973708893973256033779191311614125184941516779558514446905210782400868212094856559266644537143866023464719749668319560510261051186193175774587946147449467635376515200714601471711576275213974104149338442469797613388496495166199991580223997721170033077607631844578878727605734503854106933344941725311079070025061929457894832757052735911155233666923158105127456464390144578769080540088371616023596290715244944382482424318510653702780131516425190825459312004873694783409707859478855932136561360383238775781787981901074187810220054592731568351437381566435832430648007589503420508555157906305885289721978911317418928512610353460137668946107636747037224000973910709886998791094970034052569566532097456658195641488290870038987265989700121004066807014796843982225288769829905678381858011706954652204366593872407157953624232547797011378733237844155554336909824850755087987099645269639142614394069138471095037870189289640179350979539148491624914070717471698505577870618807917089755461796072124821149029572299970376512412270679318704788444264476950306374895108503024161148230575352837109788621377210113965661464097428248139847438242391321273425177440393940485612801980251314537544905553268715771264976390427227423584728361112968110164666905528182187297442372208838584430395948576313996583308604448953952544647144689467939652114655003152195567164780534386066596824492653128825365948730492902684648879289041117469467381650729386829717406678322258332795189595265403218782872029586749829018641107408922858762951426171030468922319841763013294689061788517778230367046776065321215021421770573277748155468468469245561232431946656079177408167915372518258647500194453628509828709480704040071396618973629010525317534846887788890978528413801120353740892996791678222511478263317454481758788858732705277876129657280876370278463685647047961100600533219413568060263511890773214532133443961784115607632250189093688585252359331466182835128824060282398808608249912422595547771220891619948363806663335500234010212103928483848760966995434554811159671333078684397089878785203032828180290448210500333240652629732946869370623367417770826945357408681740130548978413987129781891671676288078002379470989788790003851273361804474152532419932303459974318592396032997042326351685865671097838639937930376413879988635316558770868109612879346739757382854594933996436452978851012887573502779002029037711724226135061664760161099140207471241316721719633287800190040512469816403752109170875378799010726210921240762295218291633689028322304552030458422559118013398105265944319485280080295880848215047588936725844782977124716579600512684963401273539627601814970890508833002922966449839986456836968232969270597681295448530771970291738675142590767184723607984018626352576902036445988159762141106343335656796420265537966729720824598324645622830829475822087032740398241819559440758126398993569400190182305020903727857474341333241374737662114599187531402664127704326651787660747114447017901335546426751712103068422178430193746852213144671526812754793538939659640590830737838567042572599724569975163146811144999770447470052213887318867367508618675448198026079679088433838348828658320969920485933524322720859775697620140822804377665449214222011551762422733029248450514225336603854656824726425133212684974543383314994649077081235927569753244629942541376377120497686842532740818840426858806721713050089877698015052019258250072317014042540367594250852099005696228587226316433787762277846574371682782033471985992579120494515690139303709253094421022714791306241023505042728592584857366500988669532309751281055986207955582350244558819062851937753103299593855545892988064587041600958680069986235955707708851864168036017287784404872851320148370234094009167974957346365598147476451699290561955754560395382734362282388294554032251463725417721344099237836475739877480228718534341982838196367697020947422225929483321035377741513602146166487077745735191391529733215190198923383752560824048294162660310657235718608735275402180046764437293679608955316349614695287241916543812425893559392489894894300724326534686253402916010994219561876450389212989940877342330958686166503162840404390969949380945790398882780912654471748842964111247011493283337756424810329563681382571975510473880041494803876134494955221630786654817052199869972629193626491757841251515084814500712630961498887647932057202539546543578675393495770292603301040105566767668767331550337909313388906942267279123981116936179695320519802041588912342220432362391343284855049977490032402726235969189966176605190154457915576761837786427714995445995120273806112103193525256801468216912958589452331842712398221605013921917353040190368775025034120515382792215811886372190286744613375740675554129076698287204287499334348156316976803439702736418067819365655229245446995114496261018207100703485476682768514349352780748671415589708779524937006237712298464643333799259516805625705800113068547838170210144500530410503323080496001449475208833584239884293431884015202797295297527095974408137630190593578529512132381246069503290226895296390140770499309217277672707081657266632129019509278662776617262120029608690489870633910985747537832232708185608984338019895292796766408839909557395607314933390526878143728808473908886032913147132968090119059690534547141165247825051375656090997678756194082407231167844337793977042456819881398822782443523500203756742613974459583790758277294506375712034540019515437224842295204062115590668347695915004515582902895175481305527891896625995601643083354752415358112610735888906868852858077956928287510003064904358689062296849725363223893349937468799542206734131873074482522175653158550571209147127445587935742431503078692395772669021452458779702165267077244591414009735433680168867654336247641184750084312479869088628945881417637265374677852384912831191336637352982155529605633481910161472757559616516793356478995074552029676893877514378846246919276095926851707035302868545400162004445472982759755661991847474998619828641026917893174053948672440968109877301852653782776789796876549096995735875900750383230915065629332608261516022029868656601260515566515173922068822916709998146380616045129314521234780663073744265397875936803036673673260414043623794675382887536176286612705873948883033610127383863030160556262362429205201919937575073084461972180217537345221594048366220395609319279979315973324102323034919668404498757150943434301696051478868063392239606502474659407490525365065478270164532554161321762897950984271392604368241238660183165173628719618992793207248409265260904032479128526760617250230286779255711504124989841424884998538409080135543590217181482119385179665339098006408024783463974438726308826841845856235390639878315876615388097029950828471749572806509581528784228897219968002524446959158033145377231010906075131884671868102942743074740585438064838440534704760275642872336961967082968496538954679940332502545219949159358972847572191516557601627079004219931344049337290404901141240376732209569304254899353361738998644033671083756212719728523987613291193534981757206238694788221841109575805710312335517080888555320619634322833016129306178451253873592506324052057455460493205975513595935272430950273879020922199002050125935768566150181962315139613801135810297707730452518927795850766037470161230300650727198877891238210782999519301773827171260903229380758493534502625079428022899065920529304435402623313405439168512844344766866723977342686267174013520508400066954760715006004237684600516644597855319903628024587847775582402138070874466898879369339369800786688834532007638031280528057191059419973377257732845715148899931901420083831664277796964965283218877750624651751264875372464424353891819056191595890906966556935378624258931565585422625409990654952232812139120071565565514870896067102285992072053000902184007770873592220163297107304563156525848692862925574179990872012518266899616345028306230471213599517490366896152767136684540876498899785288435615060814295319066006703303064132189376212493932725412059929740907077724130680762594716001763600727745935503672390465420250406271988404244239084336247219774758366877652330688221086375433785144572775323361451178146773635836042422616362502167395334728377289952760920795796435431440542214187563504792031626933440446192210149474357657591126577357942357429576276484026564778363734286891528458404418436392790496292728460942162310181285689391211164229215649061989811350659589683807838264603608865892024931247699696545369175453726918266076917729494231115535568990366847903856545444309610929509209443899823770057441457863372758834150304750593993019823330972468233759036085624289578081397484928324373672402316837404835784411156055239348679459867882279285781891453026589393439459255412565361837378215085012682579674710423062941227932238567830136364784939133648241031370784916633671887107233210488803744159081459718340887609749980656968429630720400082030128443132574422947200941403229389116776930416505492353456586641555295385714758240669446826582932752885463532524610268784863209474077543244603107361323112013522122809091127709186004428194878362055559694636345296239411570917580076182067966129303449487531514160344287600674974615620123710142350744422397951033152375380378614006217176932408711395174478146654647684495407612097756594249439715393144856563320228016566091914109308125733039566046462032535466203021224116754152834798967561181075396312311460275382837965770363457929222122272221501582505298600415758773552442610093527408450170069517421503404303766086639124382927487307908130057715599189457945023593470914289580874569907754870240208568617484377879479151034319775797816581973716927038529637966422937100981269381941801189549644076886864296266372784612017241422662116517292315975197393902539717337630761936776396024807059680656462624999059304458704610409426076951186390044460332919166613781572542717003885244436250086475701502992290984827719766477484956643772462751406330061667134883974587413526111965385509582101916170490569466908108289787832089747922131811424052458103270236845889206184673843226244454040103870147994971707042000698109593269473746210000564740342816102983701945834708048510540447366277892939452905313381483358113265950716712436412930341136613058955945153069847841638645109824103373169300788190615826105703844035621662758325374973915726671556540387423565804299455065450210021226708136386857566126177198162931870343661548944872548960633947357934831548694712922951900533369357581135654504806517229258995562890177167617699663889451288258695216132925868524249630993092870885680371465888149318964048150238950605501101146123704280556148385373842357316457385651334110590701696690940519182114000221261606468881395267360167353503422976192404169408332449730267107315792076328792039127184181480652086550553768841424372773875103491833100716878370864074542127940838601340340141690794070399455370975922863173163112182994743767493820746690017895612485101095370871161826799529261618596013957199815743535919947303056267200489927372948523324623312620942920976753944203686486395282188379352289052163060497935970933603366845075558265718043720251429531588311542398269657329889324498407788458443266560061452197021262077746726355007485415845162078890022452883942529369704424939489914046374768302470735151934135201691445702107525781140163550802878353250171071472325690458638196288925048336262291508770094754476209782810953669089751553365371464095085667647245382612705254989580763981616447940562243535425241783863777548037224042938307895014706714858142628752436896155590937253133397913692305792470681461111318955187860692480771062403183742594579150336969582862341698656566402042595012618998913149492983422541073863825245597051749722750713266332384095328950948413783586368078409946454459422016561228795382129757131625505846834724624711338808296172373472669988768160588711888966844031718016909636489338240099722529961337912000982918348504011325994118971241425991090210566287425859502642857335411092989371865195759403033650345796235381869566997461230205445382310151110952039338722898254748883202897304138943169968189320041521365911694099696152279443600073305385924688170921897209601109936323853911268817011772444613170263687462183768147879940509024199969608238111976341152939309990623437791088798305047230116160010406443687595012577876991308756888553599630361503540715625288498995635508624216027729182988365190019854682826739782142697504458968046062051974333281502194926049427165781558375410082849374808052642178069046813452376017963770463231292360418808925979899432996955933710525060199112120655734340519407560461814999845844399866269756113863482792857224609571301955491280424667463668070573216107549314046048587859452796263006826454587334841074201517723535338287101635387676268616192265397673382454374405066823802739009635749528500122914471046631376466253056066926678253122224932360869589686531443168297704000345977425667870516086611744633682654143130226336340350269186327919292976488253382806910879836270287310178583701921487158096894611159746873329003121034420166404208389733552274338758040381335977267781917889604574274654384956304829614129684203492511199388881046598365892468462388198510635542805880361755356833526166529034209542984787698771580284366714213685073902769998954137745152112232210392455066872085483277970236642021865861242373961601493115869054014232890527982710138045484869919439996092725428676149447825907812478300731695074940008545176246056307384292670702626548673903193238755065360078253969078502524220269327275031676956366372420853324629040630771609071198403377078984422270357416265049481025550731712748533844522280782244340520107044333310380137955967493518261043269384004390060738058277701731687304054268050643751240323477751669955998639857590826562723115613565469610589034554009135385208176507599487309946125562092352779571651885053660870887014196839583555704436365812559721662769985737691062052993991256533446327917539956223837933608048353306540765460847810740657067934869472588577435023998989312256400565018155111641245814840994025177332343691193042332745337675851730876354981754629731239478198169381181127332981353881184299349470781734381614004205070133379587246119040958432535636089411010617700543575998084161241827354166846529232066991980673006456676724268082401745601984382685879264730971103500678316460002770346095670788072996600370190170639269665022589298124079659428812352007596520351163481762730554249702755323021703678615204531092754773106767802119178952303054159801483180071088136796629205390267950766241565945363111906562675825277469196279813651658906269697026284351456215776643156405731790328423369643908123762089406047036156121133642569493543091809956747954857934567142282769938975989638575896386509581391231095832352514048154239113842918253052131339503930395473643955297906339535589688619195036407962834259828200373735375804770763983382630593853783973599918133185551325546463567214770092101709178025004437092027652685239453395978879032811205586109444866098846637134326072043694615576928764747116113326066462370762076920544747493055470197218029342144427479384043769154804397174978407125491262708906557128833970531019050781934158054958301914335457785306538926549683213385987410372442919355260494877507783011022119552732174238575804694049109879534954327063327280050361828815638815032350680768847344357976489389440793995334080229794054233052004081259872683855085606682121595904008657811051052767779732304156944684321310085006166709372793468698997790085640186235789211121839502833593786220352625125841867884650032436951707060483227767715538479201391197062590021723956986895972495097279255319394560280328415303525203145306781175253021201833804696753341264490590926938501782914384963986368362544700017913237269269684431487526520015629735547811987129793724807388866033019468254693912051671104794686416667100021038756903189320821919602221114676980517827901062240121050951833126169818983233964764154777969689487382586700070076817605386805162354281184826460089740069386694671152460225457504417817318561130640434213127316167488610620464431981069125431321443369461454722465453227658951219478475820852491388452923230796775661152854131030818039712612194515177070058724422288367918241813484731135859889455928824164993040776290093393740049488525728891116220117170591523896893284864361737524416391232365464673150597925079724067169659289158331281237602082441073114685998141563938010035097245693934354608963043920635526350221208047838885134803539465126453794501370391324705702760135896168098933714556992110518653008234560051929322662975258020523940489663662963284465714541528222358017611714256374622617703858862584425983918763751893198807098142314381676496889616837416344720721633758436582692388353131544068377849294762123927377108981335289115906438251707848925690192886154224007167293982234890953494114155886543873266870844952917258037969846893843392932776710929149197134000697498503551290336708291268143758698048892608180524886805063279568944929830658129526253720959212088074510179132733664440665878746585018416821967373316472386606166329200528800451432705383973710208875283584565057878869672868651335169630842838591874794349448641089091671394715920131719682360890000396269443996566436741706880548679814124884303180544819988398070752042168726693323143173019563334272345679768551530131088775968224684048215894573084363811137490329413668708010654427431066265475722366171639138642873713950549961271276096809778376859549044057824567499621727091083641457227088049270878037368531324294163738674221537583495486924120967976324671857153227573586031973287336830564472471730753615900952798703904867740345474834321092918180166125383844557284911256287138587625383148719071306011829864060521844432066822585108085179452061858064962401283568001484587681176653232132725230256126321244188254377021898824802307919265350946913817414346739252057183900820638556744249742669285157191824439842992422266580799042356227862345579514335854886397153696705080078019331568484529458478756542101206309834976039454589027804491742379523013984724445358704008809262246597079228569481661037107389326993994859369648653064414673051513241306787222669254593309242485544526770269949988842576268157859562371007663868658554333200378129213895951898632893560563094862725785727970316850617729587501796736180551507735143829717212114838715554233478321541045842383180525758283280458802154661207918786708602825210884400735152785584873358262965331401340589880728821681087156704130437416710768507122803489010905942958948621886562235254495906763206481188196159018447367425866692457485657400565012194385765390348412829479620286758311421968139663760621822390791960291278256382313578076596179966010894804771585357495375282569457049975678585936745839193921292603916012358205615785452117289145565798158537459682156138291546222807220207450075116271103119035769068991068609905794877716347070720641382042309472632103007508302037437412132890823109369683769812100784016178178966508122382767791619100286474209783096882910592236459602130239993157875193806168444569462037917937320547231370435594549490772883149156397329014951639648152279912230839559219067049900692424085228111655968482456981965157841565610944085181920130918322868234458696592306561099654246241112053698265030799560803756906897170287712206501234375254603214454049572531608229737023873266873494512989874893477671821446033179399713377189337135822263740197071985666273616964162051754491505220561276223176945945665393244840006515958455582048695517120938007350627258898170718811808742682516412162364081121663118491732970128776901189889424331444258961998892044527816342036557889784784430936748005748872901225071789599625295609868857138305628138778144420081870052773895703895341592423102485507624507672403218870570569096935260561225657747485990141918115031997998503179737264023417271454948923531607971173436056234827638271812071189388443320319993320454377867360970615244946067562277220143325694730299591596619458448569982985455391664854163483730408602267399895805690299491816102388490673094486917064081021267084099577365601926213367029796383904860999054906476612570076211915851074141313877347193802694675169167243662075282858935154484627800036187427727152648430053773680383098827593188222659029362086188398733388120631411182452964785031855803984522177338006844967609250741592940005291754551891823918353627186989249600988305420859174397474655762355839205274485786025734180375991942919716218052305031702424574795939304468324876809728982613623683246742746717371072453650648399436806337539042146524033809171371327920720194400650607915907177511182712321862882708171843191562063096246479541421393485106726484554939070964577525976383738710591203772462760616853559279412602838501482076535572484615500879913487807925671045849989294395584510518546501384634526369595228401676993302536461029169322612012249264658618617379401410294948549872930447119149285436374396890385346516884358036385013661206051304273750381033699405855960888433274059066301064439564777585254245327120334240520138099083380587715374244118801169867800679163976660177458549216256420014574019059423815352020741734283822762087340065400089410566778019913099170682437991297692379594392150898396901291347761645893074152263448021326176911941977525306547520061295174433886349820328036311559774849332450124083605000725377994810781356110894334532963819822432072838344724100057965796511329404624086813314409239520697934382599387546979805174266413752858847305048022007863460327012102812011715491543981889250946609082557211184915262299187466442237975007257561152219995424509884914840070212226368636604001889436007883755831419117560516645716607463020216565178871448113475600542040468622952218951980001097395208717129767497518231905860096734636155907283219427677076755934217457958202783731095400404488495302516661369997882179743397003163881122114360549503151410959081619603572438550662642300060865058204978058494163768754700579120743194915043153494207205715018004384565314238295313303582244066463259682890627696175328509211089159473047601197491284910341286768139400274712602114748845455197904208116270626840563672132211917893744565371410749322547277351332735986928056986513210285173630629411043618593373746494594252252433606211177356809749875858159390293262444885577411900667603252526044946046364976033691738705311149076750577980069198518014551946282800986766260756852706461771338324103379142875194820217822425504765254107750331494046167235364225659256776393060680521563919247541034942848181754763933778382898255217364153639672498036263143224669864150541501270185419216385864861570603034213170732978986195174593271389596761041140157144935064956750821636105425495150027917728639880776848230170379224255429150050640467310646684008930515995480044482557231674769397313974722426893464393213218366889877685837044050782289641392367682610730014288715001455365000066814520278723349362569518732476599442538883026655775564514549735998982483767979672737816612246385713206877127705151664431928147582057784112326222369049643412914863391919920259138515988317830006314550491926975478695833779284476259959077313489419848208397813145949559630835062858138239836553517417801653212427043692429309797559673492079982165206456097619400221973734807397338601564139910103983082949494442115797017733852026263529180688404540649916132195214465023500469370255304712101657002289394627596160365326416819663612179103436550904620502374967352335084914884294708059469989784647804454697469258242001995704474869088842894370999124557631819836108275945151714984174178762643705333318895704809842788545596834316761848357408095691867178799220444857430408076695113094107639484813729709937338341226684158331035886504507909479567161030818311142202691032412128410574287803016333831294927791812192319610163303265360321402715153002137158330624266921152773648543182013819085848531178438550496974915972004689624802282983108836973715867138822872028219159850036650643434200822908680552931777352327745944162009765142192216804806760090207306005372313545081911717390455466205877569175475363909326503117671985637399000090366166991258365582164612344496344050052259806478990218991349775765611455280123376485699388071148205380220976671168823511355274239311037175346245896544319367240132347678471822418976735808994558996028585064358896097547509215859262439169027241013744324939797026546383431902949545386183718242333434533997365000380729570599516950812676396567625266489624192386281819812481738677132056973110354265197983220704255728399355208827806278087083233855354651231090183493950401219741541895848427211722227990928246361607254640672184870966536448141527349322507714405981961920340021698027465412243122247841080921201926942418566985515760296436217681548126246890443719295511637892097810218188975120970086041070831318804592986653875569245962345221096360037708896868703165285650184255960226838988524084011429946214312805672313836641337019671259960430098046460568609645444761960696291366764220659524798844480030762421556909958123783423702658496710722648700376089151097604139371268031359444485616545656837876496995640638108515601942802687677509618278904287266186962359948450701382834720701420412057552020829803435749760116044626626703141644467140103065078640744477271396558624034532150465884200707949340005686505060857139144498441190337078800158713781292157185085882365547552217017032421707666504977661918555567094786039018675354054876318088776957325688375706787289625118846561164964272562242742888272185276985815202248374888716346202612769608764100469645539062055509116240237970004961062277564948190664719816731619346353907604557400729350381303623659718386398142777504254756746746924290931155581419660858458855309144344652502476698606937814617000636189934645963758917674314478073325432147312186279728209288942362358128224601923051114153798137744149726091103869129761089331407572575652338623264871439929526124828720102849761413705410458241046709012296221812494645270499548932432143441239332418979971496918503012854292695413975909773383446442220434150283411233146604633195142724511184641858950073863641863125626530207026254001950269308096831556273106744957579428055628576154487338539113254736232011913024081769838134115541224283152575756759645039702477488205050389086686070269559726798718321651582994341615695508223402513589691144862342700514298112849333581207110189386094817236380151167237648331902445971999675565455769420231501225078540335743663198253545636237524727352412873394027961915700881365768980928234292421692464162070373235476081239067664058814584708410110933672803727164627753875951934921889076162462014948567194903580122104412056763130723339414708755443889868770391519429271462926111133444890176823525119613386033402412948443508318470872195869877421957568616300835948146955017495402182278559237246277608218993465945494081381226330629198895962920420667938747109369640315165779277225775601388026079267015200108923135965901598755769219432040602636083774722411113187769059388892472257209007460139228035963056688497946872138426755115867443158639490618530809500946342578814403492284079310722912034845065650223908743746227085083092574378966544029381819051519609276598143924333132057481145029269727227580861795934634355898555250672390211185894975437696178195115487186212555295187394796052781726246369352655897745764102830454925647550458510377922487243085713728498075887022802312475869403291151516076327308682503693604878655248711135901415951240996156764863969373304560244535812459939244340453825892321587348821036929174204634511945583174488506927795363586060506266455646500201822707278557466436585933089414760547819308970456482065058652970623414517939078696305444639351620266432829158820586538499904445709221169023380403601144708666784345348796466771055773618786818722401826474012837837863704709122700217092442056486447691111015313342092796032976818908561477057897188155360781650836237078242975014149339284327442840477450507690913425851308718072914498777782711946600763741073904700555401255090003879834239188786626832044432194947940306755493000406826128391007316502141858321843207154109014801377375404022320637306680100432937443092709754925548049007305444209110781216747183447954558218346218593458110923222829109964941775197051706624888537728842610364996578463331420617920761619222715784746580508489294087657310742381957507242145668827165137608284971129449944927172924768200534463146200937269107092138550059455721279850504846836128694264005609042640140471477911689048645012186499790991677225996858813086378189336111622069512925849450248600312137178923363405845186392427415324302488912255114484784633239178420867772564434035793963991011439338509903710612795270621127400815368490258262563275254431451337856406279169741607960932714869490863938281622404546236875085080315431745797679691318277351486609829926962337037618992796320924128968731602078061450739750800131066986137276302713806009344268948707241760963333963242885202918890636880010787510087104520301704193619822331938163583940683209272262785488911274766632199619360415488149774002340827431181825528144290368912400696756725223346284342522420675132337522245765889501873629972586413959592177061631169593430623332352342417129702548421511163275186000334661941321955256465416039867480485131788821639457382165787884718906132491334558316856694701130550159467317627754336216615107073416280921885946229521828715000794866443036287291777607160723861168700749103214013756936186362569466319724667337162045085030790364981627261575415612263095444227611146610584830028331873922103929714782275033745105078876539600732253577235205284679462024190745125345903883523741026321102244354513321520458361378311897597831007256325107255519046295653534838696297098175256677992975540172296705914023417931794183803579639142149220562378630233450013892855277704620290660849316975076416416750926278268421403648342864107858908356907071941526066785886743786339899845809940074430503501001104849215105165712789684745190642969754700921636186658846764995843439316249329498988318633006821275694656219931773286743569468561745000904193193989066459488767852760306336980086351637295850697153012015357260147296747574880823723606874929828341215789572761166711805628384772648566462122479179400818069551502593495460544864196502249405912094866949002121011883561220498812455285736347891187467399682686355901617438995469602116524625172652333682294816269330909888982661353872201463937532939643100108416992150581960166948226028396020083313668863585103208188009044859914574655464496060641287346767951653949953132814331200698699259493057115620708253065158505934785576049726881123668826489322059293885561595001444031955395760242291750591687650570108877323086095445754027221864548014327576999582011949665912539889609937020626367768794467527201904009502242905442161263297746396358544828828329932841446549276237626694405925410146739223975013463983051052919035500570312027379856581520560673987716541265174489894987232037472992860960333669371470140520075641327448965017390997163617133433284317046316885343496208371697416503266024813493315273751255371885367445069823348244054547072260095490183139327808886256326325059223703200669655671125511359920855478401125736735792286053690178581050978082334673458253996062776512961379318640760544163377214021576062508456189099283597812035154585919093765712946908026364841912822053506894023523321789096504286142820529246790135036431653438018119221459333992370000806207362996323969037303177000271590091501700575104857474879219104308755453407782951772060375536317804065900419294360200722607578143415538913548197060950027553138885468523677829309929121238354912555060664390422826540716329832664520649365229394876098118833796091061746357491523743582174303116630101222614214292374717090228046719397493230931436339934028374909533106781437480217078120929304999408610101519510541861010638862406986027135835511553323633628973888603878958308153322118918931459749438706397661643014784003760487620778054972975113709694589047862184298610212005614379033472344456124176299198405328274817181957158660217679621723181470866010722765000776568898426880959700048621353067833772598474161532016285755309300354724988846098075638749993324828921217704101638601395432302819080654436329976703366859541872928897636637833864929146521752077226992041752225489860323681872869142784637329079255759989376284915923095672398322807486054486621401316536761422101571295439544125293952788821459420901623220979833980093526575208473759511856002277894755982781575584273099449541804820216628901063578167886435629263860576641314257204789483733142966911907621047061353482481553658883658279508174587037231905975776043877263617033720661697815124825157834551848097173025777955080966967356183655665889588188554907677666940091456084433223013832833998825587529196530247479198586165067918633054857595436164966954944244063718875029947776599084611947594667972784253351950511402661436515118547757835506054122655205581354866419729966780980708894231857790804492467772050274773679223963818951641171023676683610865609478011697601584531985821276045400318340641632684779535237474764022862452892361950181253199139659274978957812591201433777547653449466377526945359048235299057810377150537327350160112312416502414042389256542268714217355337006368366748052468939051865666844450655194928385303802414104868130937729404176241229695979939474386181891822153538781156762042316040578295597343383544868182596585301243101237929138626623203301454600338894926115518998070422392830062987874341303144448197671491465370291741281117561394727777984094260463822610953039231927344946592796337079353876596563406840466214210699357691987241608467893485048099450287032683402144359126299119919287367601257279462259821877392389042925746257237455441970740705353714377740693072873064275042416320133661731444260876094275580100644569665157401153773528743687721663251087320086433171379056652796209423690809032502965026897035554409512638995816826577109366018768309300019879536813096721767821644708902482333429689690913933073504461409754414084540440436493078091042243824464691655274004304170647298762119530593851265335101952486475704952920481370160947161086344477374832089856496125071842009004524614857248997651733385275565081318904918322772337742791121601575524143629038748323909647176121390060931713178576008846736457408692709027564774889559571470563562406282410876615555334268874271290886989599583539626240215752398517822548085230462575875096164864611244674506945536593128511417837552957754639895017651432637448442901906668441072883961743635119906721913909985609416197901137259761760275336243940926089532831514179578536145803473111203647114044998909131679175683286448715378189227340721072810611506978812671919533903868003928846837266787219526705462277762221639608589588616430236551180461930409330532840800858871592727020869551049364552570935938249843936887909508031494360947721526851085883838932887607684544447051577146269445810177329488123299717146027451294465869117494909361101224323990343571159077189080369563187443787977966791439117839855905765561082359161278576109345167164132140061745913162883584054034238040690764105961442683945471876963744221080489970809159809458342633861593891912714166989043520705058821442783427773866840419978503338910260409331004049563361580973258321495915602353124127526807194021157348286906605182822475084365493114544564439363365232258556583654965640335091097362211712227311584760314387884413537371924354221219185855477989307464074101605996875870279739021515510527697990487341376089845930417966222006269525074833529886481346918200282629069857674347063840898685903263486378859742315351353560590402914602677581985538319476034574741609068472295693488166292330762608510592296506477428358242881863153252816503422678922969526319865726085119055406702503652508644394508302852652568938559075780160807724115210673604484786833571999857814943753273104832513704014848451817932155661273177336210076013448843009778984464166327294510902799519786327409290999376099565220726348172732335358059596648239712136622667724953192896600242634442015128818169087271129844988337562700820281264086080904753074161130753746114165419700649927649317461017068076930725522470176674787709386412138714322566510367017126100267062767599737151824338400879378114742691398381630588583423306804327681340305278499236781403771236438737781015888198505795706429228703708177712467012751306514813009977945199152595030773513106859329011320824578207746050688283457568490001769100819600651813409564362080539262415306999724932350578753569658927913113455780704394748542201166542832942482880637328253968825470989542275413526913954526731224160016568238638716983959343494135844395504532815200924384132008297350828550168297737717645200481364145080904557095892230002763597867265553870170070496172330664865897146987421093206527816944265923954538530976010997568074100078096455997175713806081024373027322982379399787138047219497144467727432175766888001561592084299099474537634850305118171638315079074283132924193563929749774406348073949664693464357700169484494912219255950439710145583577494072478044780149302999050072568196698961351251364968945566268864182053707437818211034412216314694198480932251690520493410475978951264586433929311923968326450359582577774668240271322386571473800414144807630224679922614673370509545444999734917764251568745029759114761102502468984318076729230620442790001923260280133357878768750534351888029910682398583868434481833571310820689072002426175702526806654086855188404455311323551011991177009431803049489231617223043873456415360253012610313002042668566529194475925024714213521241735760629579837168207026091892510375127450549570310924625764216180443551282050552109105419868143243557914583480024177110475404724125471501222586612339217225301952948911945988581931430744025073135980501146666654624100712151549047786784040561667328531029655876818160456107959641151135751379431342880052091276210599131302466788916730794982164638338447626570657065799313876607448630939426967153521914876677427869836672292120039239515050938917552001759082642441834909454069203090543890384875951559606589908287752633948882822503864475462975225256505738400669841174828034577372011003495595320794765358157020546775413375512747475891505793215962397934208870667220864687971389103142660568886900799039753369811895358861435580607095253606463746605533193827193071869321686941490498627535723488809551605944353434997811180117631817683734889135805800549849467775864198873293433284411124694031443030451203169946306995861527652146334003684536797617055151428081022896712962644636434425604399198106818086967970019420618455765814502478635482865730602137532905966035352810979580953706834106577837095841523380287979417937142108908253754457409043882221012759593266644757748716729039082651358988002664333728148311993019325829945207725480887552827909930510986944559518807555358422457231174299491946228109854297341320451617394863754764766305064031651539767000375317853539746759509560202312446300089852943174421471668332750238457146425265846373384024355443543190995828924526271573236680313473999244438118940824511734755729291095177593608131594707096690591306007428201199981902164531341411958670160242978556931351762028675679544733052602162117601032178185102556599824046065170677655254155203281932963687266166519877504104662282808760848674439440339379316306035992871465572946894199823743456526191827875518513702281280897651583582874599441534433847780157705652719676789058517079711893002908136993826141127658417086534275954936467280043990512578288136397405570951804090626317123534831242945644076647824139275757925938403981814071060286590553109077264586185641951925246217508294654236149293518848326178337763337222215095372482628430674464531591919366280487558097004171180879662309463408461733890244859255811425107596140365379522360799343180420968854449089844081181145761400576147164188493385782672320677428347272997855052711349934830832548051305502871905627510309368541239664770741029205625042232366661627394752046421289645043930506769155786925057762859898062615028369081132892954358491769865457436656320710597356369023336264112933230037621366639217425557783499130276553912762088509601918656959318897552942513480586213117442228463909117910083923081844525298346510952371486630115421700150975206284430344320385132613701430566880028752775943558169362724462525268816266128954207632846064274401547385865481524510001101215175493688293036797323315897695213934653656237028313818356779756209177248653004853559009038701220067109810921762535506906705472966456304303586277924219522632156941713396090078061105801063511482990271544453753398675645129075023119137681342263980518949048732563150664021179252357497201706541988681526833609349178503069052195717361061571544326022655584483532477624656518636710151545886648203305935486916401973536240971636963038582411457405601731415392750155604841329488619465774525729921183170270405286420278814482800884360531663265203205025843901998291943083504705023077997593377972391909377545399396905211723758827214971638794108233834180655944446022411970544971762986776612023354855583159574228711811055301134034096980024073270175637583463357699439794704473884915701806063561761795165936752181462315076862959998714785329045700786256786090565210695795631987380710548017200498149523769785901296126353460498252444234192942053964882608160922271544422884088965400339213598741986415290590997362128074926272611519799107520906153187580684934264941739567911037335706856265041427839087307310597986035660262568709129598584664796096137212122896072229473555172213976329248390547971825724341091958835089854747404662594695056253482777262882016878090738018147922485101330125540869836199496569638605013711140632507502942217382928711149584846620526752421645254679903371018253491556984306663517234402867437638057985842257971338241493657814930198521287746732297585137552910082305684652865337046675986193682806159131270303511538631386133689987036287541965752350864365192973150136745583172531802296597000056335945551265771894126206906734773865004147846495860973902400077286362428100823426871214136724344461566394204080146337127899644228038443166290708114648430954536397173378984443663903052323362267769287996863538590353454266546065603211274243929164926043308821156487732830640039825054988110113936105650867651439059025704483489901436953599450127042500659827220873573534834195008335349701424738788408508192008626816591181369249190707309984702621250129577116930036799457659254922818951132486936945578696050750907090095214332347661301531931682375525370247457302086270617924912833675270146729145302944901486282896515472264880644991750297346719359481130220286331284768969783048701792580435141708573471260603535547366220096641562597286722379399259344738970131284596215475824250763504396423320683244866404671991622938361342467293341269474285570655654580929960808590742141152114890004479893872320714336340547071708965854768052244964628878530813078937866687076074224553211905264166355945267244976333932696866315689553686411710378337274695773983873012423637806588070105665440014369184629297680062912561358594875293953618782992108575104849453653644165975167383063994751091045195391267817128033766474089794779206277650089411203063146861374104033981930508910456783232657057477238906211879054868535065095836633767694535106152323985181308037309368353177295261867237721529324088470337381135348783223435822655569125904433786672411623996479282923751872238706045167786027360757786633694328482952251718651599289828297302848664875019710236014616142646944775089768442492646827776049544244407325306473316784871784069256626917855415649822087246173239111596698437019498630119287388132073167492020027532425405415024137850635725352570305456729442763026249201387604005185209676786415757312480220667567461118228750377608889482024869045873524970336538102506515775529444191389832274385167936583654530397772731076791880552980248304502248483444711459431983358458041118960751986536232739097685417445254536705756456941808007492305258256603474277997579727725368788992776581690828782341911871173341294154296263284691200015869796043187137296622969468423450561211097913140531400852542178907677081919870945121856680269470694249028296191246948329942588611584098782004976591318259549466070304131780215238297952087277448642499102856796092985984281200908322076882354627450745912139386496517807946390428398588455869695849812706433597265825014748860959592057489706590488863429935236292408809906988875942050567142359106649395392649272731244200026485956194723578062398090295855074841044608724748418569867417626792681208776794564535281914759043619147692879058110285754164496588546844580288500752758488947140440329867691145899412264178201070245044051267209531476980676998423713152057267312021435458714898686802573639496524551982108255330392905663797008519304247399331003079575517020710252546727549400546614518459263056950608622340795408202394200579144095901535941180728005941887242019198543065826516286855604454704631077653362613977856324408029084117194888891719560675406255920259057810559679791946039425541156877512660022087786577292426456317225264833926693602598898352340863968615513248187394291249349502953026164344645074955997471109114293193588867331506074091174109981115368509992737716328486761912522039497499682504204169942086465641269413087314113855604432925586843244443763852806337581522383039252148857322711419593250147513871125727288877882741714150550930148816517055488905694910511587940964455043334754883505845295705763633513138566970098766790647118285426858347450748628047482050226280340951877737797771931635442560842391818761109783292269019821131754915365197725526094772345295260065773981478224018976803080322241531846128920599942839088630426291176022575857641824825845926704000540081825453191509103147585477882798709576392959180276939523720014832457067741730645209296762532983049253944071956256185281730904774249979414238932776604175161800653468376026540748948558219480189000826435970875378383396397754624095841062134693247715147974060345287524095464617102901079815182686004997365837139768763682029454202645406456601564352718449905941826970429317437562056643623276249872803073826030708887126810950989866380475580645570976640593205554087340566976029873031770336972289455513443722686430624873404944585981291661463272220249253733707198726296502481136689097240574685338916256310341245398100326535841096519522727811431831960967480503590426046113415509235698117993329296492885384719705749653036999140622613208107715860153432082752461700273217680416847063210313482690953158054018196507257886517526626838754490266146750830107511596553603865645214871790606857850810627598411017296146539633603337517607783628574207597560962740408912177816628629681374381702437546009062990016420373935588522443383308900481441121001927084440894827854597788328449938346379523859898294729074947191571569470015421853511778579730659150136716395443742722763682663622974095449130980422559353694753819533590300720845418009345953596120006148803269595681978406482097384239400813972347048100294795702779778066549614976524605546318265517920007450551014444433321205111119147404230304524364719887221726716018688443611765972769869557069616763319749194286345514972697369515734475473335942001564213117136173470067924582473390940657178695036685298332897414920652742616536222281451615869632101556374879002768214406275953547616210603424943378414006125315768385687110620931135069933165218424310187536723030318322183014623323995601677320077779503819008442963439095643446023006516635857346747536984854705399736174558130351630977065005217850447243964987701892914519103183864073915480490113833776596162228366671493115174094877209495790122709342632829887135915299001583797626533640152634849424814362517116278109518548930336824176169219373542178228670369855709180366995652615553797874167146408269923913263407706877844885992336986462942642164740705212103220781082074560128689196986228517125953609417329865063829429083865004569639067571122381038635722066134442945316027170094657424874831956068250641210297526386522868508764642686213705927194680996991621425841024277928313804243369108693264293833952240134743023344384356354617403793912731132269277601175967345390400990820467745600062191689498702546518156723785597429984886594312955600842411841139101185878526381674226202736876140497299642479151545943702671465187628926695474565733702772698457019636777043872385386234609447025692699119533045399061813069174637403044650833030255237059191123271590500248499413841852319164159720535343880865277186063511493841038463423673979560684952935083561186425353735711272194982452462733867927356419461659127587348125993290331961793259378763922913917408784532327628161024732710125335566253138036597940548539166160084005498194058923521305256634657613210611547455136308295386971387892812132153459474845631892809476232274839029299966731036532087836045329909030479854924312590107670629633956351118035109810351641570801221337009663389288516582306050693707860859526788920213739925737999816998591481267513901380259442424782600384099302205070907317399412537465528855103791472492112410384606907555673268827682281449032073144956566006509630186921127621467399424138022116448851466855893962612390414257597132338505848430274015229410539270671694972616388751244597366609925625545990139626672032073503134817343853835390338371597305636431763865827705690483313868326647732468245306672634353360340743384093931768700875504758016444189110733880529053654084417493118501203525552950706518109542296299555815229369934867057366874869781214185345396550868957343602440882433871068597026537217224240816080749626324046460640026859798923696238892597839571322430336043186862482511139157873540813863761546255260446729491574366822646982709507911235166010640304905898432544770833426831841785169769237217247269063531612178090971579738839405365400750386194561214135713722582743842576616639355026060196605297755141350370732887509546590691603594242048135092281664921299283434584053754508925353831373104211283094651343001844132895748551669568981045756207756036323451414397908000738734289792278771749335346643454427647123855228908426340321721595642080423037014964886024144366237850711484712065502820836924055070509091269620290705613661262342991495975752968282183141186521717476469552429809826686871181254494800962661611369546224596939398786063196727036766028269928250605732248800027076355950524038726660083167861419470082852478729238627445975458766301091360652030619727769759473785197004429712740521988820004676687924140902358148604186193428785472865428438979475159765385510361752497738497594857394664624714920551687424198302807975468393391596964887468615705419684035834261648495122429176171892498701124552904940063082921313131715117637999303543428257360169955950525774997643449413309571342863178681814851393271015818929000884051029433348717817434067454371055050276181788597538042849124032241584675261226892291390483445292869648565770529781028159704520728723448356802565352561237653445480095973929992420454206937813500774743540456983013542153576597636896353175508683895005318906133984562436532728123843553482141221109224224011618524063528426013326273718082626237530171239828333186465590559427318198007096126164425938908237723400106387394210579225802631830234959802849627396372167955601915650066252275992637377467291326907743351922199353457893163467348154365831240312148170114822822129243608312220812821415796293159295572845734879297917821466197900331585829923214518924679292831889141680517289365417294543834619167860841435654641116025688057868464003844234884023991054150559791763604212306020206631645759972368413960456858356488314387734591725046776686763151658342831658608148432681856804683879956101133568630946759901522806633986935582357843531121827898217668734218527936504295298422617761802026077423114303129840710049156186209549266663248371942355795942355804963673337213771231143486131627736654994572219779760321974424140627552314590304577968273088268251727724139804331265400285039065801828413579797382146245795628872855832811200812650252095122107459278248051680305266966297678035322266821541246913718700293715760000944287298441717661452902496807797771026105725232332755176550490383008212019466242774529631020084994493977537629334080714829745045758093203989407432405080389206392775457103086036621782969017889430102808550496591064026418505391874238973706106944859287810199365963163806022263025767351221265682517880579052076908599099226638307907171012419059699335930888059047546894442876811378368552418183698258311164095431165948347425711937609898786163492265326081255332979785271748089969872904604488357216979312174002670794748260025131135017688725328850585213684266243146226295715231432456216458355062009617510605236395375307602584287144605104094909145129196435780349684821236298254849041958977056893188144899754818644389094264623871724477611965328364663316858813438013737639542047240535415146134235629151958119627503450528870785534592703412176153563861506881884819066637888787650869175916742539788428270457581044349241008956089418414289753972493988590836211573304324709630899514552507115977985957905177441298325053199984062904919688083697386285704057673575435983223775140652791443548603953481333151743674967650285517788222267402668120340301441869767648861770830099599761442072645930094082081927910217489785216811865340506750112507546928140686705721999676958456414208070870367250596254766975451598191999021956344591842228289113123998483903012162477381073167710931885985212181692060273378038586917794359211151124389710141409502788638381325342880456138087418030182438660160752835439271692694334012827267030433406208329561037215031894304442669563368423260390711861425369297583313153816951826878757789786188653803611667701070622665986262898570919387735631339757751822462959652199632579638082291351410760531094768005462097497334735195150468483076594392131033074525808243648098104337254538541790437061582639363502104652122227075781673561164435339842344027986872032719899050200131480456226446439921224661768116323578767767899726662842982460759536344711111596315182688887692888547177603061887523302522397686741356419496283053482186842657273089673108642822624158321613892381437625387916381694424052591952618894878661212747578001355191989167533225080951908567152721603381713439826593958979105475069706666683668298621356665406521932734461986198339630060037979792760570003728112128900873700665685937285613711518660499271778609103673350385461377888086697053978641924170225132437042686885932849392032760907678268502803936964241498296268100875824999777298338740445697650408451998228657415991934947773054531551127175786730908381419322024924071791165342310777127171696854497264474011080539272293756292027685946839083570923981136795919541268957057950737493876373134805934061970419368577328820622369269457032105517517270552912012044783075497038979443320056919626846339094357270135642567833473208274785522672941775227554193633805315226465436341101814533773321042541965546001153400256890643741553806123080895443239305834815907922161146451784179931616334868331591818059656509584207447898567466835013393548528713894596720501225172022356223301217732046601825885738463674054532561836146997428299634017667638539111936873136755660597435441881996647738821535571083228922537264086479521467485705984177297851580667991212343835373408616643044553169955266652349574897554965950645272988092671112690183268467033962407784878916127455149301498796713079433993364006653887641118995530987708286291739769848329708099376646274184010153321555992959943700904937968943816878392144134763890973664184058838325038715605241138848051973813911504165409011300700424073713284105125731695793449433405670313068043663829256719619023962851553938158642395974561013466104680751043195957810116116822946442267577691625677797073043681355670540536468101698903371840382189934438232528052611690705644557637447181577636174197626904248108404555993401632248014675628517223667050599745064399142595383411232619678148406599531573378948017205566869592269551335502673206831046329477246358469284845479135585872580436089224623172052867765739842814734513897594938802526351134296168078646895821382707539068508124092839326262105027901068486487115681086507520710965283568646276161326556549929745711870393873765171377161126336962083652915243360164069431444802239113115799769733364614390989703573642583093916621842138901208706883328154665368888282548801980819848220520706582110078615841274962086866515210631160549652253725714541638779432594455680822584687299608450885938436318166106353461125383205550136267093785066197016106612021033830219782590498211999278128792252948000416627453373453082391860078082409972858259551830789298802777067610644014069199066178132232624151123014889158737538651199114895588537545757033448460432232128456754780612408915977235711423174113919163126811217878543972667140119201863146613408120292312572109114332723494143999466852300986526942106567375492338596869703019456116073487283748146511764711464983726809932625918658658575774689242382365030725430321664840492410163132056093346274009902085842665494794053089652578388891430400070503945293579814970146203268738281471915205113920954014357653012467949024201502865852832575183582544847950811365476969486066481281933280075523272059655386328417670206881606724161738267680457426229420754903626319755085130768680015482580357284813877968609941193801406927275412447646370239296520369146140243356478060987516087411995578201262047583019603373928881672965632948793620511682258486302039334054943682408051122376341530239304499844092711396283420263277524959874468750247370629130614094991888514412247764791447136993534114528984765863642340061414918800933550299515978643499067944748257576742126855003412920584237698991691314712763201901869911970221744337992187257746245664188959575654861355193850466300036752599520469154358942621154599071907855582197962472066337395914969643754060504845251874773967231982547050359448515783899000998224803692854973159641095832562758552855032674242741349529416155017021776762634511529648759786688779153960846880927265175538651403481385972324493862677734127435472869071869011015366016885372904540479964082810050110330610928728609149464814099067927309290395573186690419655884869573009471219264552277804867354281020671211605553585163544698678833305826710479745211296549422168491059289450329208503515973360145647419586207527783650553124646113010094636408454571934947756145483403972303191329805533457875350901982304667663470406340022574212387135153594076436880736418896162571559826225656121447332811527815807616464531310645874682227446270031319922232065223823104212729733778457341883314666861313237093659161056380906142083328066559334068118302167553706551131994148777919117109079536081647281280139614840302102983134813436642517906952431454369462255798101017099440621370543378455200984317431751311791252684808327070863106110913868018976606705187770190457802047098130189502563301254523003321618157193550662159534974670775167434354648558364058311070259163278995394685255274465230144991096354355840521370907571679726557968951866021490758589834258633309573711388543497650689879951792363873608023477604137006314798539829802352801141521817514112750429754233171923983814982087180397315480867983673801042254199004108052920646529632441747187115855393976714062384411770544194524039990516891202630448764306893503319216717887135878619296113974908312457462994932310199869162757828939445538567850466234162618038747600707984548077961789395057991305407650456638989650373786283699115566490953958448036351392957532587575830144804902122990692291269502108033427459667809602378037375331861695286088783517397137719707887149223239479554183607985612118668031604637618792305609956660591549562512526543842364339464086523057376545041631999644972842510042131602054714852227920277495102612096905746374649814044022192106254985957234276296495489703843493727620534560808321157589047952354868219212514523538219494675388640547634420052752884966404226185088029731980062016025605652658494098498335897766222088240750375642088763401563267203085277178296676281251834481968512179130036202504691567962098643992598257220596134526847262575644442690034468573045763651497771347706049010062198314462651538095732444762019216434104809349232032175619611379072044639834574067321013598198056921715248325047672891580666241773618496255456599160052419968256699830159734269627443736059965891619048622119686885531614289059949330833554121122692674188783698639517835560453922819619110899094047649274067819644932964912015518090933665778701194492746236675463265172188523070853172491184576488326588100956740884240039744674163407329999529395070120823437310999599578660744392999649516141380847719046185101974819821322053657059401455308803187020428036964010037896260615587605045460276294223073933870010728536477107648563916187225450914270448646269702121488606905258949842461419419582426987950939880854739319194740784894334164568409069965382132218810940464502266484493451386807103315616606981173240028127907478998951629460499079349830051840576645327328801479934781632493293088869102078345480468836066531893010553502120191685940836569784534818752485496131716715223484100307978824938941898259963016467302498121204541890981503437934203943901982503151652969465279228548320721216058208905854840739858629295930225686665425993235014538908096619091140539834916505921892312728049175309236630453524239360978244052895134627654901893781539471993645784012557968699940476752675624841112165438549810743036579154553194701561681698242035632142345346833878385833521480688604621695802326097914305232599846674735547624302571708260129949827648247989757236422125598608406744610841001190189418696615455998888687294187230007365540011981205565419073511832053453458027057098596425070403093606444991177002713808551801369235186718839866998808837922037444591261823731691260355816742475805916045326236778601067482278484262953747196131240484725786784621792209139896170828440413766282888259326246088633989187173241197312765082070059807278730870043825308270154253738540688624771500020245616264028860725889101567677684220846891043226697604769489075310149749142299486671949915626215718764874327834182519007042428097989088477528385754607349591232412371600523219122359643528898340149850768507751777880862604593156997151989193273803703563911642690626971900938617308788487516971283820769834839674133318949521622866697978457342764188257965232110916120823698121125359292467199251662920804707730175950869730832882708343475187237498855495533589739947320228635509874599379871150377085697836236586880402307842321874456713003552068472828653320461506691743063186256761051983555501605551007247052284013987690511697912478442036281234658159061775447318710813812670071375666095937839463470482552276108010859050408875677689314626473790662986888874297685314580560716295751040118957448273447062834472561599931680582678119417570700699438684956946720361029676556569231626354539359039957895218688628972190926861465457628443678600929646196327529939795186143290968119134366218605720165919141767300691284594947533980938340274527723705676711889258014551770264927857892433233908440293085005195417058728055724145683131716138372703818218711333939534997927428673250033962311214549459069343916307002410364405810931975276889153565006200739602141137907356934871868723168107378796300193335210934401587309595123688120261505440252653940731804814584256051391389287635502371243137741383559590619867613489246294093340185107862413789203064577272687232473427948194721857625296836005878266681284422856352148225505660490383327993228716023643673121741587655435546761984020016679382910133359155214079912815002540314072561608438841824014445390983958253426927100455520247069755798232742221228508201737276753842411282740124443976767398944485374753858957652518639241306866554064809030773560819110673716331845028185511134487170962890628741158791279473706444797493949846078203081628929150728160858871945102666971740866522780777641368665935012672697310671710858922616407184812226497655508180477429829011992356548446328373228707133991174442358172220554382837581105825304658031109424630760788018408150243430338017740220654466882564211086325439437005673262272156493983857511291488620081317376773088934877210875713199639383437397889466528691633318883283038933584432049909728731947267684806778648104149419615822281424947920990732466164608852537440379561945116170474325808423833536924949443468088144104105999742696290617122674038076094298650088618088463860495239123904237786677066104100109844335094150775242407666334256272644154729165473339629038519414738764990881492263458594447697154869941452719219437744520863116079026780618940989813239695767271555420596695415528060840328556811532519072730885067656594318362555432264749066006760428521043711592328214319042812568586911501970307616925049676270159797251103272997959864458242122651034836519687549221645306667116443953414552310253435428915959465469588994770148238579230141855248281271235557598854075135449643550722790288198782758262146260223777060292066022435850122538310913010067838348502935068050565008714939025242053032481783791800646242603598469890034335954360685287454988125122054927624034068094428288776864906467630779700468168486828805280395285949110343907737335904450040614095044701286573873411175638860910049538706661697277511060975500459293987216389623139699244809901824605245251983176307957091947383062454309278662739535871957377450578427615617425807720256319227555026474939511366947621617812905794592406606818743389438843397317621304833622641782872822104725068681768609221640541690165517121827009713613458879795155755365368583402017454004690498108590420411001043013284854012679396646694355270361941391129859006024422212448718407714505505153620272047229824440605650852685383731302559501032825163712467375795968311373946554704239773050527259890172557941307211680526540884365164336884303950272649850060858629112197990449683198691432524591416277390595340778664752742513248908689999640120762286511415924150050835539875520320317723172821977047302531581385102731388619736586243487669988437015568685841282473224410767093636255660180949301277921846441349874917548386173471140025840912755394037618805309596933415809573191913241286813538549419084088138446522142920542625627464258731243209365709865144992985037960916793839154667662484459478986701191885807349472321311544725902396218953782188901589317752675539457300603392637033951668178161221778452408349619933127985555634250647434368366583120195278761681590192237730697392348044175365313201572105460406773852998910212620178167156707737488563840899704820943996137769442713790022509151036007439685996123705885479043912053308397522776993148831639689108402756838262785372551782075599514778059449325585867112014231020454586510026960359636006335986866210075928285627273986049069956247236129979629196880285318996652524456362741375892371908951211195623905878572534567616425217431967360004701293778631322766635519187547422685741532919211884538108685402922800297398904112329615769693472588808788214350255713848513742159008388806276066723068614683448758476775253418275279280671407651470944998878470618992784923337849632914595981310039874635325394684359756762248370654600864968300232240972220325768799165955998879663529119778387689580565751586862416028423002019953394397494759020466525400835645918088178032179877677004307813879110323741897495879556630549121611085254899689573713433831144020379208877673745697999034458807372190844797623961207305929757458630784741068685406902094606900844088765451745561183836699813738151368274462130712804216921499174270021234616805393779791286371896471376490416329202476539290048047645136164217439636794457948733284050770786069630395481840374522729664747871174833778637458147530650523039918428474550928374646590413770976389681661344079843217346310344413149100682858215480113875348327272026632680382050230124665486950026323404634316504154453054581588172621318380682859461406930455049593505057828537740400573830952750253674191212896128268452924608559896350428409635468803511683715899399239111367128437142787910196375918235441469001041696259670109136336382999489167494284159482536797685761885905616728506394628568833257598941703716129002764785527215320150145311805690137215884825666682660298869013926872839894181422342125073356802526662955122519573130898949116271829005335546738425730306313485688893144398709909972581493252992143333130628956452467645278841100065318296407154883466056380870017580627670076889187837265746415876804231949512920478336541900762481812887854893126749205417816110893114454973461718075662179083641384593872853023632392590108254802377677660216280284044635629707674347638250844109584008622405018389615437099915637396330125901737550625149083810307905161223242388344943466129614031895166036649947327042355080153469836649695354355455718897343984820922785756693033163994061394756875731158625569307373155843021013257880257965683598109848261749315593692411944524743090291927823148597672730403549631896063726147619705392563411926733783259426183644824581199138588538852550615819918005899997038112554577743590750210139523616491995072934833426120453624607555420346928782069450748141477976621562658746961356633607859157127157402066237866582137874359792367404478437492451585851638904327250662896464588642311317593874349561816555281163456083806783808304035446004557765892672408133615056827177147597385776831742272189443779598025104792713695658253709404722307239108175617276457195896001597842566618568442184473649664433171264234201798263868114223267812908896646827910766845747481597291644649161656105033354747354119523127089708927033614207022547447353959936282343396523653506051843306508910509575359615812043110300532373237585726065957964918334129282623029338951395786721145924289318549912439885386623152639861152168034697392533570158797560849964303174959166142630020496684923157388142304304923806126136635925681785207622859036958184504843913257567208739027078093925360104066217818832203638515370863552585064826719585838189720614872360694769762885939772171051674425982003830906590552138066092287392520419483114865731378776009115724985943485524000574113272797890572454300505685154691304201852014564498293070792555622620948556571348783490135709276907481875399618672761448676726685871078161692420679341858809528275743357365608108608935703368284486896040456182484414253067012815920180448665674624660170082418250303952476840848726706367165000627590216594616389657985259192999897059208672057343026256063095166090968558396235399536110690312679986061118451803770483056775974354083395087166655320335602317821242385834535327727597752697692364710596947944305497409746400991469721276721142748430573813997151988722244736371297808123292361698512333173396343271420162202852856809612341537541825869854059950128201708567213440116671985114196690322966094000310417761729195426033245777996951117766374604605262693713875879651649428565920832146058808226279333863604060987582256242119709578373997425936772160343022660032879611563878636229373553328627039165909981810298356844516137761506204080417135407360947466973705014861274914079564107361107944447866279805466881928074503241849720026250753562168850909049156547465174445598558621490067678923232382360801186160503716212247633503352237376674857001349320573799489082869480468234500157913327530499858007117500322157963830103887853566644795950390157159388563950656263151705596482795315589372192883912310793690195970839118746723956626838743157753586739287382217853956060371595442667962145166205642561251375940053589881089048543338947636757361814120597211028195024290560987381390367595199197595213914092735601645170665007408990401859732429555137058215016492429216716758515027555043617916584095635447987372696388828981546365201881663869366901091260188019256935706866576871698987330961042174145165515151361722063873114103728759409824025083358956091620767086935648576385860570804469434691217407905862379605773065506249461163695059091752237848818053815076304500066814111938435644119859525282868091568998615846728777594505444941380508086334094582242416046023950470306370950100492512240013525510788272120917598440483499017091839395437582526295802468715399776759021399298575263379470390777624779755690953575407204935980217775901872908098652317651908692580962204949878760787310842878386259074899599709009100104157149003497785090344039877353704294493293338098802561764227614114201721567738982225250074091341720633431719925228021988423983474916391786037450816129432580356767863911324134061763506202518929403322458547530379911147000193324102044214037499560961884918633022539563965137356175453164561899879901876083232326127358524769383589588486114396713052360885495799590228562582293561273335562064352907162081943102182571338447478585903676951430619434080506880402505529433862002398832934139542311460662838968542092539687972278995095030278470199951770404625668438877519049846309057970206185116403937446828649090125269482023222920780121247216832746956865353591293778605774206568764954730889964316654798622396702944652626390425459025911992843589162811534431835528595032813783743479548644309733850563581834465952066353398322783344222013972385115257101102218816475355835321240475629931097175718787456902591284548670583282925674633458205666746518713811855806307143503178650349515637045315219181068805617251196869052837834122546002587505422175872687786369084198172529807689035985376421494169754037035379962361987869358567269388682541223400857428937358006903151208102492518892987240860331128707242566271074983490454284201066107396720654182629425395155640011138461073744767913052936847400064701604217809681804761823048201939354479741603030196687815828514466896590311591966598152416051425646208097189906035526229441234334968348928809392066149585754632998878438807269695848965263053865884496755128395477047663313004881647195927834443387186887344029468560134899065511986585424965247153531739594014050230144089075881495615121464605954210282398968313798298180092995795994392438359490057163333156028475796620888760025547354540557361217923026858574362094767307051257574143283502461808015557454775226455123620829828799889919126932749471057690137251807439250229419996159191375389755572027695963918452079745354746441639117532267123842608879949236895350435293827909277280373823857076829998472174818682451954475147340049788491675745270742932433911342557184491881234449374196355931493303878410441345719329223448659331564616846974773527587921061576812353867192906317238595504275824152981069144679214381773713031052606790199650858764536397582001977288856697255294598860454003160726782363579509199025316630613728799276114007998029610821039567337053261362802599343706826504556062958373898100256790107958260867183223773985498408708076521288745852204461291278747353511989940320588090800107121309848568796234949930030485989023957349634397785955597205301113805841617059496882119962298510805444365499352454970498295150550887819570432780398486728703728226605301177920881825075379301425579188054022213348279573972628323100216433998737606625147170473204694631770224773994008268599892140751407672531222982680096182426545217260170494743094503829550720339874399862412101826327911399586986532258161310942240491028100039577209082833700628749586534219987013532560019763981476052237057546525621640231940705411365180618496025304812500649537483957048124867808112573344579714870936001022069274770443495353285677001453490493151868164060441608519305253786450673425627588189034752346881843842829827381302701566173829653648336337181029589419850019773900466566506375169532371187049478121087890073759753515092252787048232335695034322626590823997574488026174069005872059229435281375847078936475432802558195430102249545712853240866398486852028537637993938712383301478861500933296774659930772403347114360809040142823757915273257402844236126966231443140120711783812897361479414194421258256497461216971928898035826910681785791677207327871261198165435856657121756744979444145670557957586441129647117430710631999110331423025354058511659357656138118476210545688576588980678795907929645158691086710873034302710390642494765907259962033700665465672323045475575332457940485955272954760549643141695408481916612630750226792913139892806998048917161229354154573245801917063833205092838811356660724070149227580749173040715443786451481542132945980713996090862469799742184862064493206041792621527840591241537168070178291242351948319859334405361879425409662717315146638814137034363673195900986974939803374098706360043504688522096329340845388039216751634082051540560358792199066888729942642400968612376710650117288684080033919660971929519918331085110737504916408855823028354255505216007537821528345940996285545865723347290362933074914526038078935749121438077450590045730167420370853028622870796526222330525224736111716229695966052453667077383746648416137991987926817520552910191244600176110268090031749041894629192908792808115514635983250676660469769797871658155271317237232176006148035504158527683704078647711792466595370046230351361708088717649836328783350723235698393229243335051196465849551686994588982135333249011276989208246043201911659048115021052347675373548573881219678517974417862052718014757859022312842352361911050355873071931276362970355086816249978919380805509962756927866787811685675959373099042655400834571526381478522553833469113540139700357271200472475451679761150734237996031677852971465896724102511599961124503496231526793207754670937950845197484619477184420746222109329875768421584424445227502449858916977184875377812744289338151326642306525867724540821083477822936947990579480978529820675346110322120321715505623633032681653491403912292436215057668028783321236918957638643451767974819676734601471467364837088721011386812534438496644389964713155476383972639773171933066274028046132534745292343010336607301050967186201335590793979721097705404707861545915850452645947554742699663174236193764302544301719350910161607619038490237030661072241494817653528533948677247083874819267287070650898985504352288756606156868936252385440151151759334499886772615363881668680575021231030680163838179466341863906053109497971145329634806141316123407900488243412734886449494023768303381359949912002274346250606974151779131021732447919843974737375622736341678864940864045326976147691063078772910036964288440084877932120984282399070812471089484148125319573406455794575518731877766805650356318507411958296974788008899300163763758693315997212746575616645185827952216910059218583196853111017903461942515936759328434683413897337311433451433668463614994209595100836244826544095238931098571654295210261258200304416034405752830926610353080424999633776955938978099161042159949479290248722249354131871559514429281982612825174991801664182350301899638637505359307457772301623908605367048462868299531049741637402268258644295029587681029990628228104650787722682992585699980058118262835713787162389765482107655895517710277267911351013809024939847147297090324117440865919092075201519291217833683573613522763917669082476113029857823273130854820305067058115110174204657431778764837168210268916485000265412171966097244726525157955687321940863351895125241515966163055046116125535897202561023246927356120725069482613007228740434954184839928362304727997249934428065752318299069193404901584687099674529492901725108217270953996299228417633717587531915330506117161121673028479044854945073647828780371296277988171416362266265435580848803320188419237317021383377257998824078009231256714340544851176787094072659194730521353362343378623699722136856171652157766170350532325549333872630819921667656148999959606803054694664671198045698038502362625442039389217941108743351898919250970774820934179048946893814070055243975995753017878402351624560747986591641252950916290207495788103058511933840693443532737670396107880246334928133340681293226851000694228422833785448570992237237952117759028347766020298456433474314623141460024597861852781884858779374970533665557504251416094666523964846238285928262289933758226405583296134680575462023684223257379680292501182773295851626055032562803268819467547710364655817693086972044605241651277557915904229882029695922576187293619443345313383084611389789962510413277441386671440574846096617833238258829158847533411604216922927314977292469699544514401735574270971663507950685374947189093532840475417106715915261861504329464276257113432400323458066209386913575377154376274171933698417196185574243217215808025765914667655500093561225866620198714171860998286889866936737668675064301116405438584514741332186701455264040289255710261427859324290088088407942767903824774784691697233722932594454526813968314036953404025345392297755962262705487735849218865107417703661860152543337921890094528958496204951950028665151976572617821969269298343567438487894964048152664887078324242611724799630042717011372263113942535804910033729920515131575832209747068986573036004089777872245093525990092621469600743618445533954165516808865748972336977712772813323797950090318308844079767831290097653569750003330375695608439043341066822984577024386731922759763242547187729139371644470910117507640621696109643277554845595718752961564779057239561357621536829940780968575558391570008879310885387365119819443317146728826473140063362822303577929629720375744482857201433240339479498735568640122768402082767731472443289254707741313089539186176062646271509354661400724883570202916026218646169649760506431261814100646803641726567670865620921821131213432619569717893098613628778099431529083319277410604936224499891577761282967354670088328928229302061556100979395073611873759173886196805538669760743338592095146802426110180408775266707656126030537758304529488765445310987559887004961638540912750608884229542199352590907974134510464716019206372364476085897953005229075238539723596806790221847823148767443534981015485436772445373118663618565292668174685131192210490156045561455650041466876329964949852795586722134708170968456948042603900559702835564233089455589645150089848767087118704347549121097990364748706758758177099216290869616441617699841353491547390059275640900027048751904539694753991298885289226078463220005463598542476889398583769946634982024298271144619963667712304675075604740381925175084879657160300297167314954073850713673905374727859665838469387928887365777808213914953892149777440072399477596780215402592456063058016423213885691977040942857252539977772429123050776025387514188419810260681563027850813193228278182162298626191795088383001638894785027798240610897487795494878291973362611347992157998426181138378405464024091031872893427279028598394104526495689101358627598794110336158462175782622914662892549549451694660371804565907443739195127833577925362473670836312704276740055507312269135494838909436156286155248150439206564497301175926713373243272316077294791661501620485118428048902790639533575323916150925563304077281020075197448757616522662059693452844715855471548459823013680353039234417269665622818102745196677787062740701720392486960309201110127374724054045886340773783541481870874126796771322034918429076918572236999641552851946044820087389687789787380172727224261012078318293287022752612579892280374563303396713167286061818731187736743126748879086376141343667119135181134994128287991044277315296072748685027841572457333562426608785998724213399524745686267690756300301722440483004764248304299971229447793869949222499537379992400654750973372373507317116511937309055377466476629483721351746695805938907171695991461984383087153082642816243646555953408897594447629699192923165190973257106220110328396141404651095424307302547205207072937814614444709761118175390833489147684943115779913669358086087703110597832865392755303374509348764953030859622623482952903773394162849661773897374630450484684477579128880149654738920207894846764730174964819447150292913456185599715869443082754572519040670779705609671122523839876305100318817391033476134441900330056173336539973918105573024956381728661387364208976936858960897421293618571271995582215864066238063670094092727737876412514698478868438292749316279059802222098919557220787300066257953392881755128030799254810185025686307119083394644144503031888181620050660615952232592158300035928597347866152533188809522587855957870958851387615139613337380946375520774796898108045720724724074644918619750849225596681258395120877709035434805223158460030975044145336438746501593555523944780751423871841921950817694541997301946148890900843716831029120159904083929145482402291419969380454132755245370229074690006669361279574407482490427541413692505308939394216738515673817832413818453553663393272075302241805370392375346641865197712478452610395463148944184308555793182315230980804349414882259475410710599803818905092929889953442929360880313210357689673915036906041244767188000131723431333889997275071556157520610126083443443924124183090594664454809033841349736589994344780042010877792092945560340521178358137733399363296930637996077171997752366693267927760688042119855622606195679672725148208050575624247301289026358553133196690597545081206288746732758296879956263770070738021430405029240694917709067113323606849709676280169972012898200808750669329180296609781981574713038110576856641505259222789733322151648857659977899723959434442640251366589123334295489045885937623509114738354894494933823441163989894561793954925978417728728813099841610027136672257329710379463842159158007482699632780468839402799514691335402071943071419892256746531689319235817382800363986016491305576664500446032669946679893836926263875571539379816971726221597270980930235912766238255547862951995088643896294808050073800901894456241216307775423678596434908439623520161288219765759107103445633212549094632945859561787551167262240179730260952707944579563802701532710052158876624496606600393703842698035168411658386153836735803846719746320635564317994671602254824626205911703893213580255566164635550548007822271037886955659722033945706277527472943629425384148807820610894608586598933782884498462308768826770851610318339867853447819071072237674360188892219099668814019612878735436306023954421313264909075735178676396505629573359294574127098090583121590021709512759767584856691034613764047122253530501047402132208956421246531159413376040356108009638366071696951896713819309853493343272250291091077950039346646405650743089982244451174985025579667886577979663336762353606776178906847172452373406544326417380695313820108584441001400431170904804609916212395657722806646460494157227943616920637624134339267934884548835441504408854033310450729848173416713241223053432115250394771325639072689423578412367012461884569352567821340051162434717326068219114950079076018514578871942471324442934745022397868348160822198739113122555813566120887247652902339936804939964732534629930266469509782495432281503947151690577628600301925747247433596357744925989580404026772790355132357952171241831019638138373516403854116973259006396499351984716972665433364563559408412243013574432195744687038728694489244091555891457606008216659118738888821536515751731513991519222353437224200683899286006253162939590547056110558337029192207861107938667663873353823497706261452827870897623609125243933969719216980626116100348131591922108275891475519307576744847448273822157469817147246979492415348210023767100099323406686684732705032510218615253328784869284046439292329089958845306219672582153062867205085602970653698098559435508847868575763164713178250406905474545926417634411644036459639161927725341796112846027995327320728173308563494282080134111986855021277378561215106597023433233136320241480325220961372928286124108269542946516488355810235214160292438213353690656564997533711086125126185066602882409533936271352772089237571777876962400978148250087026517278629316442572311363395632995267814999021095638652827238233898253776194715880516760679204818011635653850977301938382423141531378892200838047219941590044847631911899179765407174858337487341018758651785056494779375314681813363470840670619566499236303236434472859907637665956350763574925905495625494199263823216249861269743817155406676236683555332811101418724812797137448934043033014888863218332883041973583961602650578161277172685644451116113277785713224094865583454271508888346610821154862698953166537819899367436388095098179681195366099115557380167848503413437094601251291985133193945082423865011170894391691002744986811532163587075536864253434190934880339599594386173621889102444348304277728431670343725076023255432544679691629915670286529733717870370788338211333391884246824560877363706341936092646512783190809580839462930615834429782092116211592212870736119757540976814860606259253039216449196765717796880627544912076391182529601106585007925420869107144405576355898231004572555751706921553198528374026803165274329379567576338740227745184188127347655132650444706498434658605256326926081495773448436143692898768402332443701049870230596180718284807664362586785927014211545310147719147865981185621830360869296475798222569667355462321633112447947879652436081696216249351474578879590885245974020161752465856358128162622157386605609777083324218195373829973540025175893338080482659851858291305884668690921956187405663505371714383966286908256731216545993450021348710741182440343676178334862117585540203042409919309517236590766874094028481350606170157465615143906732591467472343721984797311283389806001641365069299305518039778902083207499092607482844510603169374523862562667570341648758028231076263519971747716617271297352691911737340878147022333193074562308666765963010145603928978218289616742777890451271719692108964260066442009993604608602745794831615439407560391151927624520610048861397280791750614900228014944796163499310239214710322865063746163301968500349757336848195184249686501566747230304732613296233083814697890664655964561003469180111821203326584865360627643317716137087991566701565176481931675584989057663430488151124008500273383800207555734930098376639857883874626071315365566200875340711340422902787695078632939443812928930357254043340465163929961530461857085913717128201700131216378141009678001971717726070377481950712880138925071989746888000620323173163818949702745814670555524641377275553076592568354261008200858109077510118444707909102058639049596648769131198934588059948175627889710212371236619286362266193079641272210869494257952470544644885916647649761895840785944371077225281094560079604276638718898930177436911016223523800588615030354861603273806091643647643691732706850447541253143477107106658827337356642098200014880314716526768003377515185284379717057961295419005164329293335903029805158854324403162301824701068894491111414398574304668954613609655739145430742868503783257064111924960440974326064223140164918884509652575250883564989978835633591343892381236464874964780542550709750906394571194778942879908941266418647265423704385552576352563217405065315444051325938734606656205599475187462539280828418119555845005227641944408158341714142346376926890752390521833080750328827818637053860713458814336431467554242854554688195434598880275682180521557930402253773048111890744812938562287949644848741291505970536630559018381622359177453518351764557590389298830792043821717846668592834485740443633639319682954780034272214534015341394192612409995271011526742541677705978696929793348918969021167159471370633809090062784158821408016270668686415364964599930185419519253963723936087897800550050531142647421485829982948880389980352668181359933600567933845179285954449691152093643518517826879018992489061111997188291123526967358838363388083523751153970633658140020000369073313692374176050345552023193291946337635020010282145812262473408847511904886241510762670279629974821579649848998050142177488403638072301958761359879318424547992923011702825627474473681385776657317299488820572565889501976938671421881413876993581872545683768925720671241850826927792653510308274104751519529460686439208390652263690237942504405096660792134180493878644705807322210160987799732262614141958353785464118272312972912012508299966207399080977029641909938303626190890880294890640520103675381347445723777930955060661463214607058628871388573554773825598837828610198396939621105847403559876064378667135818470691149302041617225209737396723907073657613524254957148809431836490704003134738646311387538051455677806319740995430677389355428343036927224759986049989887728145155397702415327401738811271957887763827597361552514341614165445931412138239587438829627906128769634591685378505396885702440295527471332126219918827742991903983904525603269420862907223849009721851622935008567205996121600284822719347750724352037000923966234244508589823001602793365291476802039372072368335040629146200172011963471602139515443719257878361220823975880542462511181799161896834467262979167648982319285356602499436578795110580992342324430233995600268704554465508819695535714930703120978237356192750223877593915241093323926835866667456001335907803612704974240709846916560072740749685872945555057349007040546558429555338777639512959855989085815234789022986973747405287671774994577274250258754184789714063565618805227864200979796284922009832097687900438864195658719824702603901750921803626115747685340225441273764420888735390845399851423576381879444884499189663149243986604442170527168187809241035908489553180538222355529891523072669447368793818949737301793382976790040728169832231026481410530681290771053889753954479413801086992832080848427421600057800351355047847518430516585613423527487960177337679704577968528711311231052170105739841889504795291385816682276341888132056357338836789987217426492113033737893126347531471430826230827330643516053914552204949519533376977041693598187970896077278418397958317960787035479553310789247195846606496717588883384727144391695394398468806804320496535192830416507941033462917019990084682314501417621116631498795935342701254662650651145733415078729231006370364001942921003243285372312590742585590427277232706196300007875846016615181328589287515988784449469303059810355035518432751619705838231867150354114098623154958424285456693322143437511301741690337939438515638684972916201161278493286982346084397452357706775902951078305266996104125886394924947088285427523494044685673229592039829258009203492963266496786306029603247434318883518524116201057606493552692797502205189638976449901696357397857905325544851976698519711397967528737505526928348561913363233923861729098171025861819322412207511708880823474156986556137543016883618254999263741134456975603986217010155454639889278119505771933927509172720243337920409748988139153500655978746930327026438175385263792643341606996620353525872693184525868646849684265195480928098187590584591406715608168851904371768269872748960463971822231508068115013839160404314386274695887137821335754472867855794570355509686241580008065589409429984583105791140533404226005757885220934683732167369636029654475447128682134405881628586675032374780144334642695262028769727950778240816090680369247863507524734432486133561072984890323790240110295177350223244747119018582784624560737458407070423242088151888021826275737177728706216974426828724204355034763506175266849397667358676305112184735990283922403463900932197860802601413403333767405151128732219453698161659656748925028000830030603510443849002708010889649614501721326415934982159837824635359523854689657691231550100331040120149258456758841148501438365603393210913776948731539487951255675068288591690877902057966594591297873044147900490452314138019640428623022709324996973358865899373499489716690542888483440557426669804723418314475371530965548668929587915799811481462947823759457029560681634013040808636120530242507284850126299657078986456467474608538630085641112157937400746912906929798520216984574868147609673307890369709917386647642819144537138760356698367396153737513881380329356234960939381057995382877869094053412841125364481877492525319730399470444826624693262672912383527842661277683019348227296747027300610391834381148219404783407860855751466059417103444746599639123977144734296429580115054280372497945433312724136385028908894933872824307839153230175664284972620866914929595463767364890887586380575879805421051178920302810472508027221941061635853957133769003870515304375405042764095572193896081004497457675208035474627726530942241448086864300063274826098900698371701905667149543988659123931975620291980746271880685943319356628675519236512075525750238644006225056081449255855726284207002096150243116328188816999211135623844968742382321473391163051850212447004276548161523241285475453902360731545605351363370671080013539594343924478952306447378152513575813297866338463057834442677790034879473069486961588953764202312033130784873226333412588262223327640572611840907232905846629219829653697770273542985772857579446779174980593287277657761765857791591683257427349719540424883015741722492386826236940774224515173201015348208510272867598469484791373814674690872320675309363322313687328481989816363865520141050259618340527545780151356555022088764658944903515172183845250382257997772283909920380048953638052616639176783945424485336796449765272525068175375484736833151516142576426525823781252529749179382885203095104938839982316775843972584534252179921682364874041867170537120329878557993252832481372773973765622594293704983359253327109533067137141890782615468642250755504796056056834476302467201507268952899001793014011485384558595688344917430683721088762719294657408953529885456488594895804517035632093856165482984998220773057730809521219967936163647805353308389544620272409739621297371405203444501752655898778318532425903721024981811333086773245703074032209110337094254030683161549038394343284314386813276902560948631504792975856706157327114601807954700786070714239932482478103019687269147112218447360319463344458800615585968224736193149233730079483327039026393109764194288857666218463020136009842718032207641797884549550280529682297101373476037122565138663862192304427083415749911190897444492468556536531161992548353894423827076246182293713918889168053668671221561031934212515924950256962046711447483324586614627975095868359572907447972255708578752368451076330902988435104417067798167524899299807666125265176382359830008145074698319022821719239581077482725226329659790968931129826708240752666258846807344259864194879046208569559198755525991892036845752754178716383912439261877826595685925779176935194014756618982342624438403215317949486216411179800435243483261289197511303147227045496204270141597552617329451628781956348127335097551268360051921078524004633267942962080412486706686116243442193082571362822267665643327470239835025257024952397727256578310335433271002277990199956664092564363400634252832125391676771151434427083736583946927273203976596592431957218445757484745109040619697151894188441670296811829750614096462654500981055655976085279491374800999384036205268640555717645074874816119663521264427733364278040860319099508391283769411101453256446885168864552575009549351713759167084058297485955447588073802076435878102761790997005097981007508751730726652186374993457060390771463083594778818792247486227855659957524325158481534631578646551823396188405250195239223327415467673165961616151933674686707925445692579902998951621703988252618116007065797590258537465472667722259088584632878040269541845588807086367680510413917986552880434478269876711892725576298099147578439264384328310994537664508342462665829356428313192306940532520876148775833058549862085484150918575657185658410500900421670614410562184031327904385032027456101724479705888019585215810424881932300284634901467188049246123325678545970507133825721242091210920189883230294155194776209022507786246519246751323360502174926398813776979025348541110525960457648915933317432950794755994722822974316431289045676512641304557373705709663986759999078153613161016800155728249277200039521551727721060023624707623743168794578132232486276899032298897872365343843140320603255846052294068635010874647750172899655984202815092593517732489083672910786419807905484678157396512638255467340576757462403427862102141940011082410594312413384050140251220639088005111536964455743133472931354000681861420731920978831151756073094776642784052225592516646251361168019305979057051220656998599371594391795396761901118780140144919509543725307834519257078448273492873143793684970017507619151065791170582275083795556687806627132619083240146924421439718093021110661527003149040813268085703918203288342254004249315885764529808351321001726611828077349202594101133858889489133050875705855273761517417569900291995500946906076555039561923616954404476084433164621606555038189810064682624340431778986590987104232847962598146197262689423746895105898847610116376398005447438124512263781457251231606412923598274374799213827552496021560261064065966064028757910945789898400914053226849678631048985056716612158789033733632013227151684682645460881744492214889665591328533831134700659310012336927660103661531327792463598888231994317830214682693831610560667913300018226169613110114352791193562138438967405943825960767943577835448351720937784398226307911389001870171708521987274353282566252125556220759643206084734235309172875845924848395767136945511982562962552301400521633604061217234358084365328438242364814494834008477967732597373374569395150058978448089864100933942990284062504129955288805117459131174331429884213222830441800140586115429571870361108967459993005619272493234883965466817207501004827585853137029689856688357531273265831732617100383875836430383198356418682909224162246656357232457415731888975613343424152165936492553911921948774668434411987675805697144643998188122481673234699100507929548436159629145990172398094580320938832160334814196650707523457782090277363587123825642051470882414232387877680897977707107541634268890788241707426856824368828138901891706273638612705581270029783181870812587954155982817537989902956119314909455245200941154197107264382296967248237447094068488685733829049143056253560664504429928216790851648161305042843228719836007893681459611889765858286248571137777077265407087887898122457425124710143296194397698627987854224176122386084898677974835673483721889661163048486791560799933214699001780985196233817728471189188173747709914843985592198276399122866470619519613350880740409534090731134673463234826622737365579897045356586572427428554020820372582614188284304654424908057441990599179569732274192022184677723683758121020321256773840678289110824236601248300209233101966990113437199465711538079980987087297895206498617505969033780488345693603739920589731784378249288122255455020413422918419673892715465216332985923462044507001245318910295991543799779546181958318241999752205101768016148863907482523956004228444855545602391918169339503894350647528276111514886696778508937807331638519565355784465708521812297963665043595576732627112899999041031111606007697189620539961414160714354867992686703497196412613422372302886660311999910683947082962567809313747900731680175881571014332598066037661787044836120616163625444345041817301692508212380461910070736149751379647137483855366300235889029538201253672794575945127486646964560577129066187721527707569093780479611334187254878446038401631740828594588273727267242638993851596381728032319771303062165335930049757745074710869363918236573965315832184537616931373923292275905391595781500269603239178483862141879431193258474238487609287059340548492143475934733395260505921824722031554575013312279437747317748217029933136433022049048739050877442942355028707537353082190397031027290248934673215761425199032583824391987835988184464703878995728288485431975404986371989613458764481671714502775377485212041120713744613766831954747118957084763049288572617388655389965623122473880179325287021656217420808392329903290554530727809250529225062569916340853956783606330660858532987759390798834824525310513392355013214205296714744585072955554017790112224887118160021158220333919155871680529311690287335385777209078056116941681960274579148195479083624214200158695893516604000587224103141954618104229389391622515320774318729605901466049737649928481513795016731272416983293606176451488077042663466508654934715037500563312710381213002530201651384899718735760875489315305371616217602907445956283679522868217173055202615066985584557302124659433046481566636572533038624364861847463909433588631319873262933114412820406386144182629002218797262297284970420091967980014979723221470232461009139244271769002790029527047619422025079622395452161102744988527921979340185913096419364411196461645858709220565749838644740754085473115496003912660492482445759693405492067580082605210018859941810499193146497902931895169226161277110328733166940334996331230607913506859067410636478271124122922557335265666377752304988535917895598456720456673277438177559569142225691047712235678250067679558060740576904235761344583493249429779027374913847920493371731651344097844866789163842127168242854380572277390964741539177008830629514447465576032725997870825136998627519642315211178862319440597006845171499302825992735636218613070890144080673491047953023778191876778447348562782791705347889182467293610325012610143449261192860224442680025338977751484938103086201999570659968255715571857137371635762288047324115093448054297148598429913692329540105680507251247855607345784325831757217057567019265521843167814798417600180835517669142603175391424507531993750562155400261518571297053484896720121392147611419020412576922718379593967430948126087612723566825603393207812198428500189561540754401697745581638803047238406619277956503608770775979310933100688794997263305064520976362612966446309294148238296451506272734481468569854204632830382227916689470692021913395426039189815265202457050873890040954168250493802127344395944802857598607755398230923410996326858259937055856571077679181227618922662288355359604041897869456644726066567151508867392632864578893981739170847429943618508463792301154001574966299114680677802815715169049199558749418309437547863187635624391885829087298750026063599416934994544973530153956175157186421386300276328770077779400144849551441828016558101889819337787923005743352816643714342515060754173378231756376834010370154101920163018860442449786379394425907525045391606068665695088309991853828206185836470688214538189498401657717370727120308083090388188438655539156074129338187275060863063049728791617193999457776753502605903660850244945489627973166644123071179376734063502282001218800749626111352726173012116686439913064916571906118418742647426226109563421050442732973316179794804540359340789229267035385267070707583213896714994366281220555688551289173042554185423714933192487371718411922422559910606868613336137825164264175260682921970102861991955907470169968327327667354525320149054500722444760372557830564633159334272315413654603795545084140175381124899451775907248100373210535694665935468753412087900055822411476917027398218909889744431670972483351766258347052156679316030982484616677606282261373217082031741668470490745378107402153152244276104138987014907372780923622743980175768067109260070335951492610017666101407301188749836874391622331893817319320219103570326025677630894406742597311298513463705275808634017539853633660715642289070970390896784192450377706715818164224116297444830174149088221323274604250333966578991016052950853183102043876262702952970237140574661933451753945935731361216676105238438794181638217926846213218109437768578639095715361410405839948557112499870437944612246097271246314310229646787557244024639766143633159120636633783543278125818692476931877110791103810709731114578407918036713567123329119790087759658657568598047500068533698795402491651149884761967810936297632484039904985087430428210873235407904318539754335893927688314739631756625336510522196645721319807875956951028596095299928625113619992966869159137875346351813074771695468765397292748680017564930332926233914980531021441844188451767422118696234207376968646860638650837065338723306830812471792508896406391479957036193635706100761820820474207177421021318825310071105667254250638587087568302718999019781847782138691792133562374527630703852712204324995005537162955278284281659902368777669022989380986632064181031724198066598814297249649949787170524259708803716465519611632918568089484340035040297467376386385183709776930283622727330803962402688455477014595962325855882822963349588984389621822334833881398012147408104083384591415200309178546926505621968121811121603062297925191253685566547629971557411795146059188882090156031308107865614355250734958991489449985986220177897000797427857967741540700513626205503357344155359349756915276931287751239148719066855594968239218559658126744359504312295446089649321928561427446098104739565372161826952169979164271614460536787642690543431794074230129791966111857867383969546038870619861828114042428715826651574407422369688179001893660433323692439956359445259966802689620821284485265807093717465824940094806511217103221855496211404985171909568451223167912339044967220282038764922173235740933857415950695109491634755997789888869148583642108512160675685842959492809097946009454533801964210622310200915058218363714280335174081473232605041378919540896336707590898947731504624189878305971684162081680913021314776973959309981967899287699905508844362805569936849134105566875123693255644725525348311795712617318195625487445732268174621842452196185643885461657666404381760286616475494639243570410887952162926172479430024412686824229865250673831284565005195510984454433899519052645614461998820419317387408305071879520725580684407921879076514916235981519855647836719836582282474339710976801763506135130279299056323130524502899722373993821501517653433246994449584804334561006795547189620577330923257761092525220495505330973922738131931388830488075385852404450218515336154957443659210397980570537999458805885857732765058916881353820834541615962110230337357100378880165141321607680834008656739029603363919672081550678565347093583819852100133096560220164218462709172804118663294428170444665495851096108475230000317675718612337407928897826810304713421115079124362404092393341244571436214711844817748149173664263631488253088218560773857102066868695517893891657728967959608843857504502301562550496960557347885695932013301763353519165928313409786669820032388841320597367051650666212492935473270119789265162154053409762453110852277714190940865479524654987699176826168237165514228921644351200919054420828131698841889540049614719072844793243084040602552181279966934627928470493099849338823811243483242838319503230025610335637165411251556798218748887961177117811905498398277232477682323910589321928687565048396365433519933942042016076636543897165881631364869899411417244826533056644644400731833590291331091852701347303643369808976268701528703217987908673073068393865905427923532370537484958397247791177244492979896730030292340540100254489346341373183681888209487236627786883002978982259590563668716678410699820843435202119258208895031468328276622268342075726575376399895055408495396698530080013044945058787371063315328732766646852205172985461991545210155777584697778748876255337960278481969781051224722998738275214238309366509254156666394518400014062701302366681034205739450304900305999513975731862138894861676057253739110632516541051159325339764110610068887851359937133426038690573057922104387226727864300051781088738582665599052629291615105660836165691234172716746114427518347603696149102253652259087351235563353941888962925454457520763477959867235801975914173067556375368900844789743746027317669255293741170576006720392824165207835417144980916969585974781353829008927082952859547419996751746909507032260159765738804297789870737107988600123326182726054249767575793329136803417105598323136074806501576916313926521055774419144249504447067257201958192506456597909495637873852943968417008943239469272576005354699496174588088806046547648836884417572958000908376629141012759150281636408772839416999005303337729202660551542275729866161949902414636261026972591148065680967421221105464500397178456443085504188923087531736679437146058303558879982907161779532371943144071720042423709279061354811449181977060091074665369990695695751160004560132860782629858204779906759502092603945399078427804961401148862864827629797764628921329400583116737537144525938998674735911242676244724055654886948625048372927097369622511722716512807855121414418903624237104920776869755680887781788411521201527157618452497974431116122385179024418136385410745882225508031018237701577274615905408947918812083269680134247082056755610844414131156840789471467459647934860436671958668109850664357521360380310435996809505672097353577281269811804722959871699489388836939059304685643315348607079048522357081251468545678580036215303611017370720545041212344191861853244645355942312383131559280115044476760585884533201839092508489234783385413026232905563825247632905351467736280317717791003716208887772224526783937394197950717077444108811332435644512516339629127642037419830762129543880061288793510384674753924201867357229858139753077639971213803701428377454737629342057996214890338386581514073287382904668487107910109690555714324876777937820061248612945107483765265303002331727046063422936481229075508210582349883099902174082673571257286510448852974292250567145793234109023558055679994174515055683758915943824806482122171366965755804321822256360152375061109929961293310977400153187461476267482508251814954626650308022132930619722584226722425046154414537439362264723265147015162193510125809554301566274113768879856323054743447898514722917381884783646791629400196838392341914033084059264896838053739972354255716663272317922236349582252547086565061913423733409494381369672882331114531014910928350827047669002299983991613489895165108480551213116154179317546378253305815340770278011172999139543248657934899803908240077098438884337102328989337952921379782070946911886613577486398828314337024229532283757397153772880427876351272238182532254807905414071980274364225379492069568238778125391970557431058407137623174883419870972711930494216893833738232186584306906741959293959371318939717279959417850618474632534797905851040555465067010679290010411712318533504567309813644079222050139149097012443043885333853634529354870645763872639652114252673158629122426000424501875819065395895239263827690843745027089658384075689121674866606128982803211286015888578250292698457589775754597241633669168464272975755203065068355105879965461109289364165326781897142379841465423162977598441006193353179318116907311895838433946559356836390184774836741480875886308731916127930473343497113852921287749756156139555928935330256032313535024647900935945614160912252764929682173320198489212033384913815376383532721708935161525848661758874324073339992169989833368301121322456823070910354071021631856119739951839361795719974948526160029093006388977095925933126714745895979583156474495822821334705692071529264747037460942295991140470451118498798762259978353178174875332845017398920806651223084547877042542379362625123941715826388246074214122106944805591912305853116415834136743151013463904092448878622273847036683874856408640525078814454556249719911503289667094431818882242748679242480691925234336720127022547903536702159657812822124139588741556125546197475398365514268715552054896496050947660606677705603190756341442866733265431255388336544768970782417747432866891071851034260916636883551864554047946806923264094762724116248227548519422059899679248314379145120505578708493656220181284736346441139158433296901697135023719753559899144296881263992493412062002288528899146907211230587235453567467002670083286838225860922016485641694111203101359696024828261686284129107699733087761117915548852970986288856818215951930117492484970677078762728777717429395133722245346672079888280265954359053156574228848928293200784165211292975945704259944494701262980515288516716570875319339875249547886214272717355700388770801395109427887346975307194962759602611050395884869295838901681576088042334696393159816486247413320651656483832045635610789518140493632027848737764889352310320390458214366921440341589058753940273889927638728228777435962422435956132710614708633052716121222039474106654919634051280366570129184114923743076945812240622936443079718126363547337259285843548186315593205829029331111156993819685837203469663633533304688428191993328896391184362075939415596796377585182591031286034710190363520197025420746870821816551386265754391172564522318963401839186142339105012058091279442927768868389723276885624299773921523277557688984595861625317683665583755466699172033302459882034782016349562855865713915899205206994858021295676914172155854090382239337748985681063457049888986229988706527220467915946645243787574221691265387693188745375093202971879199188857654152455154089346133681399311205737450888224310717829014308867499784832194176069929445958293805923616632027699638039461648120414133080026203856515726777470883699775778177710534879192161364646480902017527389738892457337779710437029878977019254794232385866507138252858595550838584179061708052804309169023303780953669041370247496160134225456263490548843236232091691222141801452573041695299912296334891286836213879880881667148296435099890002802494429703345302322930203166512527020568670648277982682122864335973400197498114062272887346826022564761266558384592322018770505089185796367528701898846720974622178287624966113202918811578996517590361367978131175638079704297160527194959585692104826495892560466134189698407479868510268455111774374744361126685274195775670092413649940952757808228123551819143206597787297535402134379712060379824386845565853184004501688397568703700988699483684336888388318861491400555582967429511931107456418959618039799951185804716203571682910264896757074159487857159396861380265376797641178406179289897757011011376485136641454291607335351154847807339204045828277989864287809713227695269001027695529422069524392388055652820239411180381187137063070195153065960493425294228059387967068712548954252008710776846323842398707996689413067299847032952339100770448644523726464948198900243476578962994166079100589851969629073335243122390760552666567729541619373615849143340659382356416064481220802671942022456613573679394188798924128656566025044875836062270954438023776860631518170024261912246737445606009774567672405143547178004056441680582035377954234357420902556309028873938215716350875227733088948602133210010582405318776069063283309356087206086288491801983890605150856272923526220041738183989641984250688496193490391725274831816411219623425390591711459380243413377593868496109692097678674219916518570995450380374427008691639339534378316763411094209557609201044816181955957676863959323557808208512078541067047334547999255606941305427282289883195668302131015080773181075318417859582188627281581671960402974545976702718842364319957038140531128315102119006922577335134538352887031651934050440113443458006009506011933768839567448972002259617156829240459701445212186835261622449736094156503684699286827001686061374770673216555587927366478469933267739128455991413954476837394526116464423644779585905136038504244019839469261595799426238303481642708061719823389980140679594556766356476922088506477240366722839805825322838189354576459680304748185193932570612406137095475216788903412988269817700433265951934404220655254387742338291790969862611837888778800163038855632283976913335642455793066734924085120334872349496272991300780650088928552815244224108126127166624061450531967204243422905741901191581634151148037152581622486997021953900947395857688325879806244677097916632938885191728547507194792083539733999210146478138858787722653196496928218183260617603436157850655634945369759532898122566117205944987508816197773457210583221288398007774758274308889997848819569826560439194116930350844286569074789453112946692356820530052320710817865085010548732853041069768195249005922088291988707384501467748640531068415461960431664507791853936423447290569663884922525345009348573718559619908836161258008356214092314181027783008786553004430631436620445999868011656379792944360497603742630795630309131726833139579895483498799678483377963619164923072575045982388099916147842770865835906328972898922255860641926789320492927859654811274681808341357504869774990060086511702006453691882497437177143913138756301308237470428235558848461119001801281225643034015020180336776140550714483156689905863964349692214486743624182451983385950829579944330853256895725513295548055032278832249359852672276456677591340265414661749864116460485629148505751147579630222758643486147856581536676761939145672143634180639158791417587545640310691974397968551344991773178229651172114834473982736788721773870622099194993412302117074958275753494678246520277051704591113525277321235418470989930277832475845107286933505731377119495029237698798905379465139042691645184946054250894980838937235612792886149155922586196965591954182733343762131982192142380832061982725301333895024079143504617093195172552930851538925972474503786764093806707520682247423724523993542477688029688754226893061602915938876866921230125105562488302957105245455112251130766849850574801522490899787680122205980693819973093961926846024963806918541583385181747341559168716909129694149398960348734682289773533596688147830754763671528999107337682042724787394634646837573550855103728013085586321061249150415586238575732156215323199694729457446077031873289060801123849752129039086511036836115154056359791083330114625589957971136568890534961795952723844063149134665772008338755352592002851829383301478885603075486211235493666808211051857491811053451807244347475805423143579830762920322927394524115104427151701865856700972037209543350753819509590270611232841703284243444003113078440380598083931119989575822902473307016761234070609069599124909123175970578031384868776584583695487089674920371232229497953565152010024631495178071176117440811927050353813368091621899839537791222172445683715772359481694700579934083650103567603264295493894646779589488891766733519325802458760490258307446998154877616166522208296220785139256056535943930984369072815145200352437150862954352550017425308962656915675352572601030522322977950996163033972503242482430731445669462880223326553553404194973533361729410221403826353229363240549944411412148453088756201498612945180566798382549204130245493285340036053732365892936417831678740946326689299939571292842114639971876508888963325333551068168080449373460626275481335400279441493548755022376836980766229634368452141387663144709059333710281972147851738706212069447254112927666366553634681312737290300291125206646662871372095701947431157807021080460200708371377604855086959864655570658365029144941622440770391347257950921670915976218645585389353739407981288621771329706598100961921563801846715878524971081584340826499755361864228091304447695959439818113498562702413436532343408452194004834031426761065582308816997008142601496743025927316512468464795146162536391749170414931535585192119610600572246968261425487184726125598332558191207625839862662911362073078230047922131005341293499396976644216836069704734689500363794919880433496941457668817648584499094201669329178509750881504049190786760270795080886745281184421151698070771539591746171740131755579521281288197742455504154140991316136596931297804822492614385410032697607062359819092195468265692718717461904957842139081346665489821843637058201081923928663891771222153710933922993264401074090315528868055098939986670571148214408609244048084999076882995480375862474122300042466659206632598505143656204655447029517688517642258244483362404103988479870119197231035163657205787509532921492976678406121961047893261206998164642131555171742733824120287787887689825119115084159960578495564421840691115111548836260435203272860030209091173424546850273816083750492678212267409383076749604993480369781543011878742263429227963152811604581319464004909977110331894456486081502890106980245512027091637983111039733703574861881490661561148532709283660116088826901900191272751853969520382279882629603424440760193564546624016783881659052434808138570199377080978189458595329964959183574678888753677561790792779372884582069615488314997835090359328309773606709724503403047741612632711101205627289641597038610748884500229460105976945732117825870120938929914408787093868272690230601131444964210764632725804511055820601835602976151186729573897323538411495284309343482485512681306922429754039197477687904022347823492821737736965894937347562286639145816639796701489351908599481230211636484916009826782871071293955163431187547159220163603177952052571631583411433227375556360429207695683409860640782880104093878759791085618513568368148303815966502403385199658484482471651467523979618855187202029461729666704374799116093323736245874513646296396707088512508371904668537358337839490336501161940267192274538753235205609355717409700536595022553716985817631792751427338040732723365454251133127651223649221000304444757935845549078892429525791915749057723175214600084081058014879949184656120844492438691871711797325871774241875026680257919597273676421396325012459320870810670310333275709540282098075827636124297343004607805830803694966238174492927955592159019886182963555251051298851937982177563290589413407561128473413632061439839632510225540004845043694611370078661996236196935735161359337221454632222543649142400803243724127706465269632540763851718686108251344177581490949574311430961766546772165871562999234705704042198572297029407673429687112883697425330205807708145198254001197913006019150233824615848856867306663311225673258307649299502090837188587934488404512590033595341403525751985442802836855419898272228914279820032932146582572263209267502640295842086808524064943937949191761532636355136938102365611965015129057974027012740476004916796991372129881076992936112562991238626276050187265175655039444430879779552373718064811290312668070730988482258970245458357448830080019953352396193546978055793854424943351314948239485387241774546315904970136820944972114885014699669185725185766437254531620960921269064681828779384245348902834047578129117030933948489196346123427411082323624157013243397556761263758041624947328937815852038199525958183694450130697847386862510439722582526477231784595342210833560369406390284981494673967670975241676016266082770810907751397509108834165795211588631201259968042257384256706458007928799783524548444380850853743976553587966750101510112561908698475951980528413752311961008187430950519441448084949263255402811873477315071239122917419237217749261027644657705414150232070767665337875933844005261648418206795378550477764226960486488896404493371714670090282703235650434990190209977828615253594063836891534292297430031715355791477096840192352721732606641121395970992111523355678434860731396994584409573688874949003308077168482944500981222400088328110528793210024266768805879947320370711418462623983697937568875146862769120911283898558509242725164268230984364714846043180020260193031606488083652259224654398792512257434792451680977154823959092751909088954543027052907952257264429972419118350448630816783610151171940348431500761636291472507809461780895088001611478628316008620989253613955810164970234564837262331818440300988958621053294534289025273035428043340308780739166184678890004982639305678483011335665839761825292465846280415181074476564515653550308403310756635911054640329777924445052311219068135166693615447980196290559286758215711070237081283139257813648620664194500151597682606006556392188944684331455492316767627070964557696757323569883249387672669915858558875202385720028837460261711118862693879735513017102949838262685708923828575869990714140274168805268316913584699262818766924231907039818235453705954094068010812193518097958613535471114382701630291315643151910902664512610958593196532515768597263862503552118883974171688569833160864764574567531546975369909988943841468897394206559292187538908648982876616103817769027454898590769644784204129720610067505616417872435891686866274165785327264112894695172071296122913053205401948743551915830450685286024201048281530800136555745237021090978631856355468893248344299789414327061951412102624649490520313980600335674455115224734763805756990825017323594555634109876015354740456263533510951594065008849134248852574204523232851001688849630387023768331622924790162113916580218648284641668980852649806384632393319286325233321017558797559868742643339120224261256532463662632637934568325007418759520556166700060271758164883272741649988609947884973903709524349386308309874016130531236399720207115484488361093849825966862058338764847808971801758754202814996204443785000025254715086240748374198873748155261351813079444089102606545132646716980679384827094829741873175903850110121798563706191450678375622878097220710356933535981768578143560163151668271362112400748403193674333297000333914242002710529091022264219991447576633334835299995041275210124353271729568633601815598738459088965615843253276776845910275367317903915177170485705459519142165994682398333259064433485752578249494940273703780677384225410211447839650428221799133064619713583501489542190421986963433448174414363554269070754021285433036294069482098740256550746635291349869292529243100189709036357143701770291314958053857904966363737607374331796621054494380875103439416347893008372953774653051087105640159765879556331280165892990235995062435325457983200585521748652613462982058619168954974005985334139327442094215094001635092435804645106109045497754854420615373103406877900424134537477529756123765304104247999923761711448430113666571054602349488960766184464491184502144287628920866355511077801454190897630899607598802460479607593101151226584244140082930178684055850603613716350193137100341618132363375482370277636859678174381628167021302833606873345581657569539508049374082833803371878563215271958310688257532126465824723567669371170468869558867806287212588798188876787777694558640488722655287659729448735118001529534124212759977134617853961297489111700099991383400724971252604198936396528948897944385516030320371497844598325829641309476792886102218329404611517920606876055517106688521808577803765190440306544707793089674030848683536650286763558066112090385977976878908018864434699789359235635592513723600394920443056789942038665543743827951392696019431428048590895502777048509480920890099471826586558186920271769364117122377269505802259830063045604246490013074632871785650102747205926428656094345854561425184236983574208093844058089460907995009231990118216821365718509150229000148866308331473591876776535353604496035919457243979023402267756189576720124964642551405292715729921884746880795667357977361264984205845948608873274545849835179904987466843681803530095819468410479098045593439639017992679816927523020696330563947556118681367435305069312266035624389975883854122083097916990182619833914006611693318335480713211907088689465322725292494312720688520087213391691098870896788229420009637447296136507024383794534349695876347506957199160990694063692061818151182027542718158491681159324212000235322951317828434142431181182138915728813036586583502455243742093064727962776312388867162570187706349727729314837741884759117760850652160859388414571287254359236921891034084696821887076119780768476473750298522094338296880685390255070425584458258036692731514179586643958754321044372442819828522403593490058235117010612179097695636218017700967807400931460749585142347112522925080181665145135706660636827038047218049982116796774913774754649423051855478518653524006053998130201903068652771289546038975175359165358338560364763218912140608966086162412766362149526728668857736599338131337685586049155326312594104619247369527502752086232277045815422479699470768595227069134020555360069225401125009777347323237188712728763199480603923569697887133308346603654147555815899865708204360118570299392668148186072590282331756486654992565225729401148754970554202543432229239305506965778006443626711661365648159451212939683402729641312214815118585021053934531711409222457017577158012883478409307025402129452414302300972195512718479351259974033237519992269870701820483486391137164710880253886816227662504736762481752760361693328790390719128784457126094428687707445903416687746615460290016245046570128979924170916450071501765650600731416789054145943124621472325526756555483333174348305054041328250233582465414534316861724269648435602637554492778651998506747232959092753105071713100904110907212203009437770442877964888650930290496511559619517404902332282495752834190824646968555144726323167783097067816004152239986052662104108670419060879107623720139329097809162253299898297611542498177012459925239119969210043937455475013092682598002237481378197324046414464087328969850586349916143282227529582307661074931451689367650011932140487793309357464916231056331665007779915409920928522887460354066744796805863899940158509473274056577793161551407747597721780972298289113492860996739573491430982008824115488460768300826318229323666179319659052064437543738994947148923410541567180415849155275220391035542940562930218708261213450226980548005831371705674880106503591300825575083275233096283416679296243568665353768428279407966762807187791687349664457721111215175820009056090733366665190506390459265575909543617995820665703986896414386683580348720721036980512508534232002251127617122496290719263866557806166422386331053049549810974215145398648344459087434262455392893727431199017575568271315391976862893443457942760564337200155218582989702831690682770600889767361645796752003905500404453869058140202231813302181663474442130367012213580723214950027291257932854649766597192890715946352418723096269519647816513350757979687593389290487873647907663771969240151952829665822198854104133259336275974354807411469380123852257096431706247236920621526137543446230534523759485685965490978545829733588719166535642007645498290996510755169986879418463343695592902875070284147078714071494671180004784597498241479386188788402174841515732198041105112853704485472547477806780473363450668348771410477879546037722145197838033846781832764346993415352562231815591925086236159583552111345890406355678916874691866207382350678380863800671898823766336092161338917016138894010995738835721718693442218322714225093855674060042465218139343404174719982684048337593662001446516983172810756274988730034231723950951149005364592689645581115043012348975710108024638282562952285828872893425524270701473433894381869271230190209568779538815439755791565385768567907568844301682637643567877327211947767473186899831851988888623067674087651261496850949905873811146941093133420946567384657969923870261956678627942253926198703924538033735714747349379237211851917850560824918194884365564430515324394419711727392186578901725382944504244546062437785000081685003731358982215832836641678334975413892862708872455581191282310362115858554602885138648759700410550347534508987558606572354457059088964156009774011453613727162679606285526915886403520802977161750335010144233494428241302176568885907910072808415765524682970167277324186091730733853622100754458769524966152040798686346041775966285271458800319191738551807379946497316551284451796817299535684312938935552985997971441954614193877879485796407437086822021457170971888675587498984027158434270808840862881388568422829303856090327146677468156400062774193615355811526577722200532977517141936242741410560158951450543695214307224320664672134752317258356682313774887157175149710759495701322569410717323735447699206469166875805947320637297445646381219860783354225912770538624116268271331866877479736004036192424527478914034671576427451907572993327582882938457275656043605180111176481903652369570046304930929143545754192285433588454647753416996484162881250534726059041133075712649627117069213811414016943712677911196100703770277488787261088149272276867505404949649583069428122232062904122222332907919990576066540050797561260843682780190458029303852907307918104729778303209119196976120711211650681700472881907193480073732246912072815702007761298309752798401368543075057098103098423584180740013046834106690952202654736215244356691112479187851340178123052604195537579366341536525175008322694549792236328490101313866953929636485500515915167760709355784369676890579399745505513729428870892241302355100901176890943062994310770288484117554894782788731208742295926529925180030614200230646844159194385755515169736331769160870764420738599827961554090225021354782679773747019551884203192848961946512086160398764386679501219504487607532270415564317824312327598924010474654409752035067278961249979882578321808892602431045996334481117291164634129264573147982706510179595286889491710181100871646063390720645339338512202805506725334881324622951777813398980847105073224189733105418751621656025505073475395339873100648657434984303434642621058718222504613761754966665971284207351639320561375577176650798514836202358416375559145159671115657801040397379611258750678011708207003209730908644693201738389920169808669626012290004108967994592630287021680186848877008623123609049220213042194889573590425210193275538316158222040689921982759575455801202090070231520975139074172146876205002395338598025500361100974890982126743453056332918918963663178423372964944122718437810090613029287796768882019150568441776904728778062152426350531609102846156838737384739866931608165169043153433096714761571625651914047822891555789652617255926604971336785725359669500517925051701080005169430760419288041739380689452239361618773799023188603200179244071220458936227759541590625712856434286726695999630351396864486746561229817760955318247638745295791668019297100314362455563749427556792861855218697869075556715079668340155430215409487807255397057603139578859182595355511723218575067881379913748569504470820111979570793524103285999100110482045231964824843901399791252811930790610440561130594978048578473719892232371643953130110832644962293554307965636436268021472609245382668091493391925733382422195342346205007256636310000936229612780365497777515456230969167563404506834425746586637035905013996930746008973635117625630762510712152992230761420563513212099195815387767962444429182740142063294350055514339965339854785211506674402961963090587876965520202813290618561549105243944687142052022078387312396463199318898974951644332291523090911140778345702967942937690731820884089116655921458995074941582322841180187908664935819522119026283860716359691684070565878569776831634557802843383944396905633304730488054216796604732220856157188402929932549364109043057595532311179568639444983203656931940594595401893962338067599998448810574472074330491552087076196607000907152487094232776648543131178006306947847325674116632421541297944197249144473080807675490066996940974103747827368730622348075580523819434555371303137986815080923989518552416251253251885267749495236278259283778125128702452160546692844114847789871201125805076874378026790576894962490084060668147676892589683021963844044596762953697619069977015737791626841525422886423750879358886531718109031540472070646461332685751172538722176801508803323169565384623997891390375741881258300748217847650070986460176731782819312457928144575222064226499293885763306137237757284875735677868849697670445692605308258996609575804662559161626995787353579210804537055113867306834186589640758807203249390959669120075781047176481471028300458237718104415111609566513595234930043945321308683020712348410727212081340573396568681646510005357151406475684115860146775048564361666526594464199201912147230317903032388162220461058768441743428889826638490216048649826364182646781939532658494080879475322061416096803195910425406156673182811995835584945623559783892558825718349645713815548565860844340730090418221443950743827119043120450296848706996514443486507820187408334073227099431127393555296315515086530904018569887883316172165032407292997948546610766003927952001175518433673086576669617449086325136276294685411689192380664831907147547266216272671044944046226727249140074000763387671318714282424975949808947060842483204307410339039461509189118857882665769535478654093067604494860551462780996291946123671786735453764534796619491260929784190268550788693666727724154988444072014714365218176207728994727334309661517064517749987973674012878998609935632230577355263900471756589497660923719525889549525580920713099199775605614362165685537766064718451189483269770268714369358429082600389939062217507036695874503488473097619504285779020507325915901237556047566075682522473994998208038001848584372708711020574170092255160701979941171528297694473422946212788295833761220607120135289187793761180379962062612431128452382126714256549174253526016397009965731907762016074748911462675800535617176325740551658281196305062122120944164152275988198306479422638041224293891136648386910227273771974564123675167164374264859872065429418659964164286576625439813830178157641032916945482057366432764809284944075620364087734089754851848483785456547127921548437027437988750422509953380292916548724362621928098826270337423740526522290946045436615314121158503495267878595275504433702366407570269022812616236353645741384002103978043870768197534421451952764477800782917051341821596929456516354322213365270797358249944009936117467681362056964982597139940600936537720831845564611502682006503047742342335779131885806219582719903118576782696378777823720509243172482184615445764134937942816483931441418543033623479320020054198214433803380141327263293132702718065663926047576642778727353499453346840766688537197671513772933357960764934091436546558963950573594764327178689836402906495966291256053371740879346864675864789804430654307589793999027089726461339880728507264781998566253308557331363467383816824284828836249649829141276773289083890623842112901196632654788192909584392488684155706739815828751757413212788277354281476118718181317455551074935177448805828772927246196720766039522888129020159611044980870805274432873804285935681170816496103604431158281615106298516195852516085938593606601459205865959612472996020749785133070561426791819373013674536097252242950826639457639845991341595703522670982590182331280137208576647181600622674476837694969639173921475104964299874161817715984383983523609015476045979232216281682480534657790608969088467327655288212606274081223949728864473058878827733870250197136090628992540277487931128238159734842962464742616045560649635854230862875225131313363076571523854089055160485748697950413521188011498399159644932938251378165580483223001903669483405304358889242279536706410184960382787842427803060964565524313327363393778801731614884406264891887967085425554120802416981015255405472404845682230545522431233002603852417903450127723759454061903157701415723918558674656555465666940612234674658650215807180784616770225789987880139811729727838515282292915056025908646029437132651388892328378262521818339155645508567746363453649081671275496262025614483988049322348379401278164475419279168513311434651003995002644779756410618768137930436393095474358364658050530665659025589712382742997034049467388165374243310185890844678349637635318892994599695763419992541030561168358524545751935908567166447522839664661073172063591113836180994818082543940264046082923335257034273966242759167820396833914975991313984205998463060735370258106154417323385366812960728305091878289046330307050032014989624990706131296796630585129326095379560070609301537666535391890931997228744958408113760724497625570738947008772063541418779882828381998397059108169240626617603321492698598873906419975981327293298149898510474815004759204741932673624360191255566955352891391792289093390791003462941184601370328354781300519262245528958635820316681673049475639718723135612353552439680822698389014935418963035436398855105524763464444376706162414250439610554752986235005970836282919494685408143962540978150389388734623460350101981827754463352132820245486067664713647815296553603376055110010513602945261529119623742928419224156315704582137796238795553655492556548801356891576477104230547643551308850317059610511026527648073779162404357008453535005100246106786062178317989085972114368890425137940271687990708036028308975686042575508382120946977899754454568633903169460330569206971351320124767358296125638147569370000746948901215806000582271879544736850988472647953672411317453970457241003771946140014412796849368789711391550746529849250511346598227287550248656358470996895690700776028631232530207675392540866923327531558643768472960753115967825873795377763691153163117207387963296691261062645681881732150624156511193487236435224884882317561472789025268403154229968660123546917899349017428107616239835608744792760433426985284971940688191659449824143644049850391330153651068154534922066125247107102389935335549366381056773376364884839173262629893075954696081254425870461248321579834421213605441544427566059869497506357238948201368538830253053045829276679843639813397171719239675393070752316856341904556630382207428288359230245492595960684871850799427636340980552671011867171985630683615757126794428796036431419157321642717639824725200478077619917911681494911098476100325874567845923484896578257634078885393983939987419845398671401018067968219671756643740157687193311846984840391247376066553228146976897645980050553052772892571568473824948459524412124362742420619479415499205584645838542304468391513356503034858969431198856425487191728409857821126864464764210017629720300171997374487459724087828900422430966291969240129234004708847543797207674192923513814633484573062132461916887356521230161229484593797984061085187775920952324603827169534112555503262999821173963763503345003979960933150690727764044242281601171994700166584230858107622836802831704053368336999751043741359190171730235961251470984330693266034559823602564427150638172624514492867981519877727023987266512732995898985382668220382091659067076520518357902364358843232453176054258953991810817658963530615293546197194259454982753884428327215288579012281843666680313359965001810134029956508070114420346670588203172978380453863205493450254281836707952861814078340062485388780704379996680252950492179864384754261476968088543535273011593276499209307881201821927712663126177941946904669787722228754008184386534737170134452947795179522078233904009227317314654057449887019666460486442359875547640188202446256488183296794043969102728246326526180514360526814470124759125961646842134299354729759700094157293785849623904755719452596508023115208702077758838811332397699487019106201723401115356403391240630875592395861116181537072697754061149241650163625214838970423081194710217150177241529107307836330943940304784704858902803332024251179800612665949038030115503722330536057158085190078740750182806411031050957931999547576549694715159706418464230304279271208738448641309175656675892423643820661809050129614328049900644644723623871807738071150037394639317848065224836235591594700768073136752793140410987694335940239275615593451749222219883110197400892138380267279962182650970508795150168963676818431324741247299678246494063469414374889652434899054779808663492841615013195449635989689236903122717976489119944293741805402881403031609056392187055582439924255467932066939725790293697967456800809193429508421137042138611791698602504576053389976643995352391575274380635236744102820621887890969910981581247319084828998735806197747285723414452648940153289485571075667329593187768417524806824546991207096251672566058399566563400680390202370590790817963737177177849461177540795087041006935263479877765893709269567517788168148009787066853931969866424412476242289525644486485234662340963547431182386614962072362692551547763270794893933719667196084416178531954934159953562010667075560728981344987023481608986196028704368528533433545922353717604560900155015698835936168356162866031454064246388737075055309135034272903983998175426640340480711061113942523591129414390473632644736241543510546375635104554452592757851324994192162230769442284946740285211423347090041384280066152266319643761473174751654437968219807657639993611808596831365081695790031940437521334772227332660323941770323470251625568464241385835726526152355796842528578078568100142569935629332911114593284905277909479093363567864877811268153764613709495176988170676293703646540149147942731639315658364493438018764432073925329750346977562915724735794796578105356447093696987131074702443922037831726255919563637780404076601376590323604173271219793988862279507195786026006524674294339991693740681716637122851330077857592648190358301297186768423009696916659673948537475071715209203800481212138868529209809720849343034615528999113488868444167220688527205296430328902646709880887522577905754001347622500579765162607010544030768908051792292374497500232868813258283131943102188288231717110640110361780608140421521711743999810605810540273495697260721225844958879455526983316029419566764682326812993883448259251138254865187082950198856820452566371618204732059754273643362158864856407500767568045365022623854512039443828949444995379564009440512988205624580836049399029867508097707785187348482736119322318824658957562258371908107533281014039581125506219808334457032141015226754199012179108800840611332690516285996646838586720765798671161868813552536259836300027917862987729967652459002012188822232109412482669444556322048677007353773052140158288795963733673174922654265376508346782562043903002907034815339042887490446051855741293237109746143478400534835970403008856018109667189254147245358495073227495799211016254310583228940846553681438498136450626273886456578766535180797814018591170619950962165223428766757588363809654932850410591066412393425571501229820545830600829251606433787235544971032235977335191621959486645769425843854284019756834689534918571124829337840567326652790486093768356879210954229772287981960082788382213236569835685063015385914235781921000515110232778787979227602233128565496337867191970045960785383327735080895934068334166620079541631518696556402216125224138534081812544299215605167114601648764489933183154073286349032816114878600920219237648139837020321440184952297586258285198104347859046382225907314946053870777115107698443302339311512005842673627488536992829124178279022465104302890228564810344671989914450711128890570472172381908299833677190089453767185248118207584778198735682335201951778054473076698869162008940295968917936256035227469249117752785378425948967615827968670554532648905452609602531988350197506727818897969617112316420567865507586377903357439635406726709182809232458470018122037768180399966138760097521962221524965597276238922926652561349767012557787507921762111294596028932940679377353279885121824156527343184864316631564047060320530681017019381946182402565838866808641527827256655955810942018714337892623160235244083478598681722592638791460883554600804591607210933782635422361936783288898658709985307374246393899258541627352478529484547157892761482610306771076292595379358918507300591985042831143703358550269423604918612244920948810548951267513633260641861215852823206253386891076669445824834521518012836529340522461013680828077178491664650587830018889069883662643336436859459771122581510601650175000982977410353607017285908905800480023025802067857360728271378438797336873037277187509843670037856149239448716440722891473149797176899810280413866329019211762140950793420573842395589864127698172732065835779972580393719864649966773050315053768583693467083361888274868205550835115444031951662598987381052653344164017093770663738031725242207608485103767940464867241323222054501529424380927128949078252732686372426931414254523109591673980638577828861656948964130681238737203784656035933615908055230170414660980249104926702594559035572574023831632147806731628028344327511126590131039967941742769188178587234448164037670918360696511674418923296424846016879541699853005210956396503103541168557267940832295648407907003418114355517893974564340117890713189627260308918734651489487401750814929737340878445101063432855728046597542522116500923227499685474079456127723419731174776769641046697387864246347049619820257056946318922612572525349690434721364246430223838539462452878608742149700397095916808141020894738727391266320145161014838907026176186789525218131918065153999664090131590869401919780852253494353776058763400997611207109469652091171494495096814404865350958721486202620293913894434261653254787280242410252932726636090752666809017669478517251330547670012908533598895632631854129829050947280449397562597436715292899447950599050410170528397731584063307398332136870617145420655270465440990465267791410074904138389054903624252597125386910728476442302125220806599223950075289846382826366287856090504291544018382082008212725872304230047133183896062330643450423089872323959466344002655308435518356101248431331298399841633028018114398426000581238963197675455714551548451465735253518229895829978379696146129858186548788496872008253500377752276984486487956115662308429834255790493197357987835308500788556251057609571355023480215908420163260271974482175560714890334481220215749452745810049142313475111036592003643327555902391381831407719347341648932060315800762239297906367109521964493887188757675015697100880914632906951506603657392492573660446694401605591209774108131533547000974528942216783339627484872518510537337852406313059400225182781153051069635402308549821649755156761615511913988457917754679107837636154632877460200580064449156798209948784255789418506641814573030442860381375574973940060585560337437630301562795962881052223525745107586075888951244333386172936131352409118061184714136184574364295707972428347745030644078004143257953389079852298863468435768640299164867901972325557727424858570141345738422048220662756714538102819559926586812235909298040188319025779865544659974609732840921662348415717946610169841621244155161739436419496882007493006542272078765208803633010571780673610876059916695122457277483194289494321724803956174550531076242011816247012124942225953039665685180386645283482379274051947717918674175171803836250047310084637961009167333996901141776908284771396930393309627616503270042348631509381674419529463007498880318331743396807276181365156416939635959840378725121783415672560784882049933735765053853113086917245552726000613541331064692727029347797665212067702394221402965364943591203186229851364352991700616301574122426152678427026954630167384903109888596098718305386770011689775785590382117171092725681386138886699658368111927413609522533953230490415455695835458585869749767644861967259213518074160039850191705511946507563227665697349520648691174157987756355087362671252812960257749583610244580101793467313235952250596267317794239864368217302608808960375845936095471692373354457799242409293360350124641890663321935914946235122182733933277121251988802792984057054490771046155815326889066607387855919296408660969556606940001609971526729889089187104316943562729074756384516330991347956751192921147733734498801947259210737100981969137351514736040473730080677121783070894466247585830663707178634834325217903138890366169079295692605972758030574504905458004370237024368050521592117245722205170610362327065582187222696301201281868475978293209790075066316645206484533791596757995969769640715606129182475767541609207103414771361717730713199829193730669608581241461721247076213269515197283052073106765119109777376909329826254653962645011104763206671250541256417119094528272699181017541764763189826789819069225358682915591216518020508731905078783872315733628082408403110882502063905961948628171054821580713179758741056285083634732415723065308918660619903800722152326341752093245932764236856180382050292798321501734641830006892045870713149502763096295548505861089039595300808443850123416370355715045110598155559588342521209295118075704667380762479949850533353059900476787102144982989068029660945250026857187070219727020317134294239756411436706031786086874302905209348882054104597623742114736347063939852529930641377912321724975091891976068122779068234373400415270152709433162532788948023030854463402977189258086305504411569121626302531149463885272480371363728269515256200084269836591423364178710388291534679659894821771719605090838985850939087525622896159954234007078742672885921457667627304675051288982628882785643456740696491089579321224793501384948981470567812346813289812856628890076876408535309328042675422356573599243251070990217132094098171100851857749062804076856318468070801406236122339613760850948896221930304693938066995278349159930639264751270844904085437997399277552485445692021042056847417139892406653228446736230994897620757996333238369189473551577685237402383613885056872024746735512045359779513290000498147167695523103094468500335759004233662718795797777145780225696512932408012241139155822703687411112851864329842498913258440772653982699298979656811554957593120872099654869762610493633039032074856633906714286964520040035994283544369858153995264572498537699112717463525167345913069611362002480765830954062854085669246838550251142553590607228300172465892626521448953966333289362364764422974656573008519277506064037836085918006880913763090164090368547423140801884546095391733206895582099877767076786013902682754709657493760820423281000956382906448775042277547477338898433413733504304536204359175893614978141926878362356200338564140525616899952763313766073079777714551512268197253048034288956350273859327061246445022888886318335100050764405135293550474116381928081468289173843845629444899513720842934861665976440990550521697115260219803755395333699747697056010898304915030108859510884962226610440919081207823661678839539395912877460907162647775868474772923962855549203211705932095911914447037877341097323203916916212046657021128642762370381082998832781896648788914276256807556925414548485912525119287156570253218766527986834938027854950771825777719048869820079864958160559437194856655758779566606028426664697420487458534106950904158309425865441668478927332901255487811243608220118802312516504441021526668653388640718673194956298917878997563076043316968088190242095145694269848517274927839955132649430612687187898264399214589290956920705937186999041282115654757799408748444062007499544297620123108758060312726123864247833347315078899639148351063065680292156200030856524881463743224496042532050213173151466450964747739813603116378889489114798854364372455070772555558494837826955601619471964156301730968156197905823243347622777167555670386675681083190047654235117028778200501869364097567185132726298586570563743427729510802412704406343627601884402129145820807581424657029134910432999314887418370475839384939818214103611004715314913247918482751436114550769138405478867717154096801290069416254224154814450386391749751866067003788434628446332906577307695383553342557519392352479741268245966051275622283574949176170774702011835559383137731511410680997546216581949905184066294801905567016848590489621802949586904887662437792126928823025409577626532276260249542660362691762541809204030552173179580506150562397954036596006305695860282242413134047561801200488970912520835732258771621879911888644221878116188532048617856887002395839149034695990579219745603777256915500160786703016673952709268632565891498834473733430625796056845701188440724339898408354278720984635601684622056731707932681410629348382890811327455613077296382427176567777077548621877523759202165453972649486182631333973049073225040434931082322731644091164621133718091172663857018295566117346777411729168962237771349115830717345093615182947203168736590872122937874122044677500359628628762652238818348663318006971454166249027535931392044911990044400292814745295929865988176987654261017456141258039125743391705314280126656046350099300202760863226506549786642355776428787430654728204073145233101657482234479681272363488162868291915779595366597149583107323484917845408745603977592745917685911842925061081424269314664340126364942448023556351487319271734873215741150057229401678917610600211132377523927110084543771579038242686567094078341341142344362808059433543107931735652519856732679046970412418835948266287119170635622435256996832429899490225488971850109247290200627308052305282898825315623813210892300592469725803679349064212558148954672659840000050569713682954410513018416665336419870298230250461186443327676327082526075289263106494428070383595363655934303926115848669054732407469255132082104698371028415245017335283574369838522726416708278139252833511473596152630645089044783599122093294348000269559348961481802135087693816657782958837177706502927231511810476864201355566530851449919730266402204258896029651763226485329076525517103512388919496387841894243446734814901163971129770596565923844940136385759529916919088042537101073533981636262446004164989390916749462245201131146987527778089660203579962776551049815522757413008539789865873017607688027705373966684570807644931796816990028084500061886190750211432191645338487489946164272802649189916102513793354678651936502064023105681154098049400618265436033777697650584136828442674531877981214366297941674416515786539619529171343939320127162302780646258924121771471407617621420821214510222773327777610198537427684343653619215618714247492965296928920343218580909783817438859972540203580125319686204155651356948845126585662039277989950710085025662244796465617221334563988753948865214885741586790206416353267738231744547016203803642588054370171034810543249043392939286898876647872498146693581254740749467538949687326681136264800383744930022190930612683208096273359932967585146179396528273606032998063861064916752265604964004946245210396832949245851178494782875029775548695566815682206562977651469194685162417177284140085133734736850811720764367096521457161997291696154113431682116316498334742763920512870115261210918240658707322131400481898948012567900373354063832829127120370195064615336374094703341246908672824491740564501636113432185692781209564822770438015720325254766802889635952967426648521581650492003000011421836079705416084301125195622241290408140042502001253337220579276625252515309907248277876404829401533763997306592166821672376822759975263557805966791792725280183847173705830674559385959970922879715764027964124855399940214545040955690812173218971543962299516787495437000809548450052003791247532177289555274245284828404217139893013878042248550615754180587130629584621369459508395991110354882832072188202060350322591731650285535346954107774121247344676136206648459875294237289077537318631553973973108918491435992825110196341135426116947572750359119473322853365726900108296704146431095754902376158235102107800306578687434117324594103373068905401635507817689975273849658108351121575385991897987414330656652657482540201999144399886667344530233052824796291804905976287349434631179050302663238565037264175236309342035566309528337632341495032525312300747948012610015591964691746256801069206820189147935678916341333838856459896812959340647885971431733842832857856435208298461310647861165212397409309158341936299112946322103975822301836884671795554150252521104800420267568724889133418639622116697939344442923129667508306114459342538824886329876042156464419031340009152465211695119720976334564813621814205252951317067455231443817507097140417518916025525800940788745584374747446544544343271820414762132722899366613599567976200089131120082928640520679170504422949660734498524048698212420051431392471904654180554356060803669398007818932086550563418142794879859785787542108912475671066581747496119893319076487417295247529154572794348667801315690978520163235561711858218398500869826835624804585016623608583231581117032995476128091211269056098300138977276461917974350838039412761675333661196571668545050053156631610485392512831801740589291421304884733137509300467229186045325363248548881487003436393455999561575855448528940829629094469257843213949301008268123453687153953855484999889666850181385940279552235435566652039995548400079651282908104060736719433288983822911215815615634017775559030302908179342076678358190021063604129204191149000571412481732804364607205505938962822651681149415106113932776859169310648937865306322559889495624366944559864715885344378863519639542914753580181631764388272528109124726530389413265700291720157850969902962499488356149293022890417442156755773573835782160936626212456178390405396366268579149819142518252562181022783511110132419079702772156672566282908781738855877202527699009773694533311354104092212074972182899527076939485833736114351125994232721780764241795799826044877748942616258179705825296066414203573488877036773358192579753729308004896190688337687035756271945262918794496991420571262663983092461225464617113491979858203818528781980274174936214675667614397436730355345822759089736008440844251394253918420843391519359770200074703445112324468031397750061006049143218633781590739396562830820635649992036632199223177665995592068881919068847504295616120443822694128420388631999578582531045203514172982561426933925327985325313400151371681680476791907892444253043168086954473870310280899152719768780135065828926632627056918993780090683163626087827363313461165191054992237496559077926142818163995948136904967019836400551267022305152919540574739634564189573692550875879349945001549329735823159931526878842442504350808181251158259308450867047721790199836574152811690271072139882729290754387629882320990515063078609419547815066740136383170796768118369762147881012115092877075090518181840467991516469581895009244343155288547174277632124649499662673158668444541653501504260723048702969516406348291822272418194936187057245544136938806326295066297202675867814849436257289543697791013557939969849438122025406375137290822420041312685859579126671414721494557797677390566602366681085690734431150600473575638939244899138724274816824303476585741238080974004003967311791391737347132081759627501452795224678538411613987057535935144920403697486452363033315397961615674103786902123566265214439195895807529928710754780018347592662179401178577476480996236656190909252048406303779007998172605808194499766452618986812818217154558596023671646330908639155144386521468528710751995736506629391967096112729769033358326413409558742987646934578201614994112937297916543909113559120430721145849603162927581139548796453118884133855027030689315000484773390196828353842062004119379314069649485058724280503309465210545780937541195972935872980578045361860611597151012878101054784758164705045432985130255738945508382302648353906423407684800996215488278718425194434638779351821859055072779742604850075610900326286857528197536196176405957904005521657226890881565148386442703606545136765866145179640909694942915979613912655222433152884561424781916094399554153986560110394221148697212591147099967946279904223887311758337531295598935679427745459570789998976773026836255542324692645816879122579873217415051891916797730838419894089500629339943406238791737482178263797603071382275652571000133565665074157491845154838039514997337388798197356075499520489475706094019408848617518969385114603520288445714165331132375655216294349224108573471614411860684179431906673296542684237548321003819633290992552841455861846502741309649301504195243405665307635284090448274420660621183316361391087005168602996415107797094820306646735621169595415856964417306212405428170203958014000176704294109330005854586489849048330369799240321331251404760446737309520377161550677486301600155910737936029114595628116467947459339118499424816387280275533967999850309549768061037803650294843031670448683696540428487853020723338051603433162732250464529459586858542714924107005988167766994693732831637373229264720925515925674798690443209936240534160206924013751889359034348259363334435315810562492286123199901907005636497314987889097373075806262423041756598926616244241231730067354168217506788255987381879903247782970719506279555148448779963490699025037780871245352819968407369257127600209713119962327139165316113019560153089676713890740139489561851365341420679113449737387597439333256130303406045957260535580370209911046821633316772733688659028390439604089729073115148011460929986190390760591667188921526850898511161873317535725582654200094570526237884130468430258692751151567154661598721855727788205301237454587460878738555962313617310000624367408903516503120244637671489156320969198150449468304850545867160710027610011727068737262316166846738722703573604365831677268390762818028313887401239806006832364050559035963570511249788590913811202685689118239966788742026936048675539395174538934081482461773164635093907126222389143891250791023738062714280369670912629853672637028626115446757777957349949837052625400152674963577910525992400731244471579927329771719750717851446224546542448840284096003178328956083858049452962986820774731284669322010596459782540078225428894486915901372145086292732896211696038087133209290730268990115177040916922047503493783531280017800785138352469823478690781958466316732170725531666160027059006590462314143925285838942533327551194123639087390638582460460688712291249413813818948122613085192210630622347158203446214140606904811980941513357962465037627648116741185275411904613448176461752718758222304357909922623168286638669545676121153642839405375638706727880606431089376312489110364339414290608385180081491372925032925968728034306315778265092666106544197410882660062619975778967025632445726753887101296917803804115111837354528518413817546566969997865627866227203094342906365391658914280293328936633724862415367413540344312256904731079947072922370880751183056075332765080273367818603036322963405968764308183223498208817787959102863820823578781208457926245782767843955479492055997031049271814928766726516316537868271238596117247125996241336146125261445864574959969695646447897012246029344387484664197693740467458360180002344360729376470176875745914734623666638243934187206181410757870899515654237206285998929912584172047825556036668904937308247000071239324376259746678670871899638041534448710033108683209858764086990954444194472564416833591021089278759334742070401825499087983283743655465945613954386275008844830056111957802103981594167371376917240207226877719079664435673645805548093183947865489608451730438674830449451887628619571184279036607538547456010410753254479973856783646543492251795273179531496478215515278909436982641686945483436404135454653800669851207715235961276059229090735443570580152063719326277574823974498693859267872215044065090479482252909477483360712820757411052101145280723012382146448563380994830241165784176058721024760374886300010392970561338893005204224091473317358324429471195687320141482667149517339663520954114489330312014714774448012012637493386839225354943621442411453785505048808655047983772360144473363031683208398975445123768708582723598498987941736459614871059023005036944904931185475292749503905263644496031496878297520818980858259058530684761333402129245658654094829896783233689540615905663977867853788900974952854748643388431983965237060251551442384966910052016164360061809008878646577317186779906445152513913022078018091843317916951381966823630329492509955785679606067946871607526376343411041923756173676258658258328002973571341891408939955172672513745002405509998527616350654418408964436230294060068989891069153070884883302463876351964511156572439010723278504844866684646805313000274397230142597177882692688990325167857291779664303292322666994203564260641414818027903879359744409351108715480674115058586338255314645414083851930133070179346563289390328486719583699787591596900915131597176329557946788825684878820493969446437237898851595143066047900967094406085753094906894703951880764585711768430215908708742525393455571391969769400174534966422187227073528277983833559842118060122989676996865960603937090889844569606751596511629267100862621879244336488796700838002935904048211614047405479081257600596563134208666362542146933840616622211508972672901054212122895448249944793868250202080667065544342858605446954084340577707229618697319136727925609565210274175252897918893876292091981685722568876919846942421114762028402178692005403429358619881033669529921608835198297958221260725970946322106669228131874442123042355264173461651871956034282608126781788845970709445672255511816936835054863139591241075272506122754271057950836373225046527221523005950876455711196639708202947984537563593503683620038541284025382675482836561126333990522215572559636109796024756453898353055483142423784722238391297990168532830564817565860806990049294749071050137060773544061420819985224219363180278545249531304146773970862979837999676811366622147998401092726560022432542216004016161401856089148902512921851946136832062871943130817645377570489526096598471271624845458441779380219706270650459836844580453883253018306740704240161344281723651348857162157759603291948528307671101181790407955321193794616454792703179624454658853278131266228685447938380690541931760720488190470978020341782413944924113300119258332089852534131242305089592131565736866945514358556615050408256883610673171511603342387598118969585427133633860616428635288070828953653624519304397829961579825487371988865173193649633280362174076508042964157001674323339394602010244876405463172494531969767069601856450513161457077458788507042548133919134687049122217368719876994582361011111842082193082676430956420144756541101328898021873882167407581165221424422671990583790508073798946139561277744031285122786822584157510265822636933347264800983979856630826718967037669059253090358750317852538186456523377041048651873700196782322509223759915476390842222061216915464659606974246347261356250624699587690701141540820061311631357455684107868011036358226187629239041881819513100785127498464479586691433127941427013911057986119903534376516046933877383607444126824752003944946084443397725506963821326966457607105406807411028402294453050824674780182751416512988519503705817116325294297526065955547193346125172206907112420919733389364725513245313162442895075454790081811960114195626345554504068897352221181950156065255810684912625137049211261921001869352057516379489078830362570489540211975488351539827692272434293677381822024003414372481424898629997367948873084234293645821476316383582901022032853410176066912137142917911710995193917452847440637784727904212293843766247850686327063132471984762152878180453327094873466160050548759440875093866155363066004967573275455744506334368201632699199163800335153003891980588341756975951955208679436277309689036110044265963580872586899156285952678330882994363736442160025579130652666729117055876336264129256964971263761515145423404561692419308208623825822059460328311111151597721002403165646467889720225393816592040281905016820015373051898922379319658139960985638715040642314987539085393828088379800325648679851454361861270941787541848459115033729033067235144191057557154611866266445920369641114453345076009253912653570348156674339740527279662502236187143070067617612913031208521556057280917439000111791761471563087492588790620646723983543667625494746270030017403681114457368697651614671662861109330122630376613871718736057153494134875211254799436352386827918720735167822227510892991068597472253948312537950720302271412275696697027724869378182284747527260669859798395796686936153563974395149659696260968629409833359430354338657909382616282303937520566487834543757093792941738204651672655936670588167570372378487006764448761531018537803109348847391284145069903353272683314610444319927935047304742891381693302623893854068084067858938614458953154434412211019750025049536447090770897622949182368996980835302716359002341432834385435206458893765879055431696542791701482451498079609788271716481124774201822768578643110248787964528785157891893796097634564032296160793053578730108171630979952193694355942530973250669190515307449758105437893200777469643375023385836624347561690042973168681206763586528719969930875922775824717781456372168176625408617942419755769952447158954418364424470466948751698724682011548347101185253161697156919779475455472146639148854457740643053079629717678261864076088030108891547155337142378448393658178610641511299997906926675217861070444000367585518442111824556632977464881260245645321965665734849749401882481006883663119147123562200995251515615312054925731485110645753964509999887689932471659184608871061891289076665580671205095332600977455929617176408208440163405242063406764734221152358954008831589534781560694274372773668924314446290061390842522887994635303022054400600786206270953634049722656143746190700458779017981939858878379454179468408758137248789731595860094589663623934435771440952713449036524166435826416906829104444497227689901227709707896875454444475271878869579418524630339578619763122285630772146692737252616938506628993749557484034897225944048894494401827815420020126630550151650564296752358253569782236058576927870328678899172091431920068223040570940059436712507070745324889926870949703949758002584710298418182062329688782946788453247889221235269349392278172604288683938560136934741162494505859610608340716001094629814587223564691219049923780830855781202873435884337856112845685513807948730741782866975034661059181948198392138551297054720812588769424061240988272653318935750684400017949735655453597535269642952448996022951394604535766944711785493852381348221429109565085334838636261323565219821198208464073113874161430759580552788018138299226331613818212217360521578087854067213789309088437052127695384107124497018830369234989422629432837365817434693709740063451103980926630489196534555986924541922595448113774171498983272924046870064909324265733589990298592856536823399117885294053473000187102961545948035682277770048435071101490376084488448814479521169257099801538482848838219574230657638791804581282267834731384230078517448105941459201248765512968864124339370037006316639820833348349579652868845685336161534259532787406795051059958668389437107001440123207967967126378033970851691552999611888773606893728271683042200262751575700145808658058110847734825850701776771997405413349130154948311128421098133496672244551478321155697805542074700736344500496432351433189018581667860835623344223391196508354924708987739737396898063219303193576314339573464868341208966604882443601691471231035759831030895406934149773372406681195615832551958025159660322240419862668902385357453315833354593720551686598974816666690233656824341151227046418454671582432654197162145507791117699471778664944450200747216800413995964581658070395031053183706806908595655914019811562976332556274459529998867675101196098792230386775519017271558794297196959227686789318049595122543652489763938692415283265744806280163395066771221949172776192462962643377203957549994648726559169082741188377434800008825146712664780490420185708737497832226253179090299900896299031878243378859076273515655524762826082760536456111979054522255547045814446316925951785353844408913132395748093734633890454758061887933975432314966563400240735211496472968280681312667408208389455827040352553500688238093958936890559850856879735534713519005122148834632087726735980705625740372459256607220840720555510720061334495149235100080389839207682859861651878855118202166112704255546723764470765620792286374072705342742057995518151885094272647392689457319456015494760800857873036890986053349128538031820125624943926585750309583261785909589058022128018492313939683632254212027117567260306643533886002017506821392708957123487984936867811042982590414957419520620582170888493922709640528103796450225411403401010044978339961703360182195089726826324103363803905785987309688213840143564905171991696763221869175017616264009036193365691151091844716127393696414120382600525408682346655136760914740645941609918352975244189904449800480280499589726944703784565523651947650014138347687737760589228015270523785042845324813127751258769395763710404310320907323057480176565597881695234721644668190624976149608916305293245984074219436865613656037560329405738043269887235411630552006139501083190844714984793691069294961478116252300540537929281431580742806928456202482648760349634243478296067266083914321171346759582890214151890361685614067021559315066852555519789075308091673979285840074538155546973176999449324099203982408913425378615794449269104016394993333054913925257679486159301734593717233582675234849335594902224331721580782248073568634942248664598540309620264094706423466302457470343845776468690107439098350862748113018210338008991342274499706542730164235088005346236728645231509709409464794768949064577965665780625056087486681663762173187014797207545672610477247915886599772567939942312438761886355206116117735651620987582824207733839539936802305100754515105777112515619832634252661333889688163578621398649204043527252335753947670691670766435001571361307603834444351561881037431983521203492257018284485922969656333008119428243756969471041421264794841147646993060328177127070823654892636811408181205570378736309115054106766345884837448211139702646771345265243797388167032927791466532241969151622654157138596296065559466850952398313695088127432028134138851952259662972749385257961657554281023387502463543845026597204944552337467437408476832869815033471325149685333555678163238759383971820798982672819168769887742286805176842524792510622297899744447120357289425334150705763268000290758369926450308674607822137775674952599012999648517305902026560477576744625825514646214315223885480465149835992153493260144248135731004741293921216400569359080068335382421012701523921848863115902807080184157275916802162116953393945895897567458982298531842829088559150691813495813753022024461069901970007127761889087139657115054832183966689310832832862697872828649962126439289485383901925908625224660813263602767668109039207601672667138051785493821039855827766882797728341263476701221977501136485279199958373578391084781745829893974416289834087882775211176968544109141924060461487147858528379831600014878997780647577398361367763765996497722069209232942421869824272473329818335608388920275702324075283475033413550851804567217332226116913280317387073407249661727425835169705207468531222080776269337026481638958122480695411987232245516871570834646443219551553665311244098054725129685384724538730606015686675212146643184377850574877222826622540585863298720407015287190711017418984388387612984819206255370493691124376480084727646505701756060736149649541511064112333784917205895659279553119881190536964024761403109378098781786171074547017798840008667466558200099957121318583423022864429714967041838235071199733482019771413037562202586398319522647900611711675149050139747222509318461602383696018783167671487153819753004825167232204121252585573360520164769048353093808041103996783179544747395476730857837788607459825343795529051736721528041024718696205148485314107786015068074236131812651990218951064414637331194518180714534388434268613760456231531338651056089053936395726654969677190244694343756382841485629544569105046036164629320352422625307997081976486913254870281780056096334618169610867793142511445812550378032391649375723323302934037233841231354365517938426033111660494459699663962822420900727795117825383798779836982822576161037477154633264846133188604093192200806239967200785899079444121821569856666696248018074735766595744660007109888209747879289643535562585487761601296965587529484444640806580939800947384097848734414761684702964554093935963258424090368707439724100055903763482521544382413575382641668671392530576496589068098670484435969485533181073642696970894057325049346073199595992582223270305388558141395520720888002613456720168246848077420055177932879464015015318741879074499952948692328598244687170565281558300230140972072297149693408996908647903977235792454835295962378481161174132738446534891974139996129025108643251623643811114612763956323738972263637180169426286169973612101972708219141504470730382323883551481121255209070811190689109060136962727121778399986085190109111060081737355374532785643626880113648036230860262678543794162980066338537386938736008528780345729808753212647344114968811326075921910011726935460872948575763843580809328644016433424664229559076295838677930502376094870527026582448203590582787888411914450897410949174136010693622808063841387603898481121294378458620017914114333720921515620498001137792290149468559606091101231322180687924581754996457403314962244500381554726222484912096557770697346165776356351748606239823582966442966284194063186111790828856767714732449893702569068569571290092302607025083458370503923260857086497809421040723081735936250692724908271000435326557572561651968195464625459198883475334928816864446921700224131908374674585363039096372461352616888031068059462261428682812969011938986286063636820041036571950445412294946999620880206010368707628140920312032522487462870797033819877954042142570455546363355258060696682378451333132690990647550116090409265423983598381587029165543047820830700029290464690090954940114583162676075624361783493681504059008537958386961810247263363511431036766889361655868535138374294620598554303765905763279819305708927266876476385744717695608686506269128514775546802142552362700047674151428472934813255609814987504370626098898046316690091458863131945335727345783344612532373507021870012686876899784120390369848979484059497459023790729259721767564601266682222838694222240503668418173210153912368244026984424499826108630493619904952700030426551685726078877876690656529953453449610905980736131205400730261138094625704486948186279326402407258215098229294120994459088253162014172680679162447470083503624423630011556372958946099637531859747660328259746794664065195832116666232895146887269690632556646039922303196059096509312486292902630530217750566996058984614445978276303617913401402558675803047581341320804428004616844936557804124730610153540665722544951378202443550648862617329943048566911309774990771886446983417731137026771957964254977861907973949234525771129118175541123370841767076483328939751557982676454907677585676255426363853308734168457917601073814467608643478710016483191585182662986340728914600213395780948702036441446585454838064974423285771842290425431204269112789018581192010284633331691194562031318976330307135591130648646789060442312121119852415279485739216361228058083025161160849699793945128141365942956877749743921765546024457760544442929131543681126609442637724031768933473738642729008666691446572747297919800892877835514418648116374995916923203996162349218985405147866231242813635913016030355608863566493309134166142247704569469356091461404565665195076174994289177007681500844154764380618639640366094625788417358838712522748757771136361252786106771930012004135497130280131094555560542712737629674865523654856643422275896671447435201146037138859575928199496779235905901254784674336751976086325088208334183416795721704273090305501737995207944804164169214855530126041776561928679337175873087106919746729498278711938360764131115818589198287874118663798014788866149247777382972113405654454325658150573052120017552292451231494947391972495496991969105661507510147515887291135001019108946831635022119913795847769585166054045221404237447441059100612466362505258711392907126185623105219177651656437086396478927367110697034921862077141113841199564503425437574301477502927151844606047175256879619377032691982281826261387250763498242086813450640416249252587213505866422851985648546328345134994348107385313070393024253476471433936022428528894605364477496087460854404744960570833467306583785975910310069771435573778093533843790388997829754125950545985971130371449820561229316136887692399677339956930474380118764267767523565486152965588539335410838753066763114088214308866157532858422997074815570790452089356977244747009117125724981217004482805201239628759932665019698186569130258373973699931664721845117270752567714165768003312336405930754898067599873667228920017618444886772251503127255826280968325266248457219614125071538649838041151681308441343504311665231983520264413555128819664341097970732416465710474981835554585366490746995998775501537215957911152724403479568738998202022242523194143439661770286395948871621480266765333081463289087672089506579998939311940969464471366379820613705651640602635818679035926235099764856706830893845882096473656990543493775796446465907187414120251738936508703470094154643035813181244370214556478298573051526837085538929310593857025354298556294534627121767814915072822215166410638584878091422945986215989672593109192153779021103372237840953971142198722135382547820586350403884026785867113235093296229459839128481634308514984257408115755262973689526820338098249486254316322716856247222327223359234375461745342750047565125334868894352980678960591209980854785482488451556642572509908517441785383050236972354926455720766483051217718578864011108715835333284979366234602486598295244408988244188623807268612247211813102626072965293740286735538256436666533450855573676506582724516186859136345385746644044164955812733098527612882813311637214663803871094600308577091557771927107249132311794917236543651163605619028308448339346651083147284298732637910713766522498035297398183161787329993517515518163231322312940656457146228386506568703458235903028191306121009644539397433897440802629154882969491128846771208183043685677321618216380289201269691412022317185821083139166365857869838036782680061113950161125881537085519490340202674115923442562867490664589074311213058269662286749866585517466096861391555589547783408868858399567119977952563538910052857943722064999257254966025947663640735175385769285314837671532877175243114014721660688460073162479708050349241209129953709683411283102088881829888645756184236546675466016396943852231897512380507471639758502151180999383438333557238525570094689451109371023619018853865551198659167588410760768475078646955050061297612795905707697328270562013955873382222545695608950409488368905637825515131716856510271803254325146460502370875380622832988034706502878071077072688579412354459123659184760761421276438085365142575099425146257550360366763698819521378158802968547981983220176257346950407131461158431237786179540039705580862736083920251138927081088951649164160566910055839980050327018369803834641461804107022869034914338867245649669988086453190061972864567762797891602789823847874201379013327708959587854977314247230249256532596241590605082145083207864292212623063069674200834555634824320640912711730878472504366627126595683318174542585077915915905065765451298457565102015971495944000728506666535069230922627671248520787509256405013375471432283874823909808198357260518005745260485514661008184903432722397938236301507167792495060833371911622327824138171340189795428976345536891831937872489754181185493121530427829135576721895679409617862943522742586812622356334428045263146741767340628077650555884344572872909905121569322912171955277593297365673388552256136234840345911121133594866481669021737210312121362862649390067251992196586862008149627846240150370734553441352237845884121301777852783676369786826810880622994286053156524781455273553818880523286893578946218607989126598660963325642691013077509637863940692900904582290966064041624563231112085407858047049281125607114594791329018105010416878676440563553030973359735486217297524529477561024343153776536154088268188054824725048939085144211968649076212149721541263648975286842947324548396136870390634715025826569594329362747464456577791345555205110605102085666150477104273928974174671798471720471190858930508197357705486406972411321454915455571002362448342298349426970907014361527748624127592073242329538863183728492154885712736213605558448012869664007567523749648256604030765909326318288928486705945773064418222752962774335105666468665526009559279387476376897198239039271839556486877027369082005004141844437732394050033817294600889055773836620848688410920967851307312964209761353438514641893555366989241577270433011126623610787421255094212436548491955555074337800674286059317194609556949153798192986726130824924722211094666972572104883849667079586162107286220606989003330609498329537133944512058632849565102158271001730923424502309243981588279074279264915612780301600667723776623805431442239628612052066895904435527547947068148330975680239793893651185913151865960524154319401886567263202389256955795572600012959049347902621532791467996175245872531523343799789506016980709841119714310806368378212949070367276708429753174837429471474568743921607507850518812716690660075009161155902743000850677283003820243772068611310274951185260399590462252635618065947016999437974531518929586747008799617618135670935684585547920433049829131180250866063693694842265184985263513184948312182113148109494341034970108481852360020383570149291710891063580177736090530466693338588725409821294923009651841514487151514123363687008026758329285141588455502106452164558048431418368825545223152952356611929684734042071661042897252978798406683772296433297690338958729475134994517678783620212715797325808698666951462181831041395233070147268473893500547349835757339923524418730993680532309048585018452391807022477194657378562934721754671631288003189067280084124038006109721429339417023842843889876716345483175883573095551076529001369889188599876184867916254687463097278425261139150664039936435118458323893747003766952907436100893773797150886861507501835786799966559408585137682579436390555664564485350974249573686087754587080218408328295266859244200430263040226809804101679264658775759267893704605030626343061772486265909928743593453483069221458491330438565102052051805349431715764457340177547366668465611314237110892549256294355418780523390696144519141920195248653650531442091193014632976371286059244370280121117485841024682221917191305171605877594793428737149177789758722639071288709597599857835467108372150477669554167396204741474089083495280083101192842973078408434473543503729695729922573005106130395767498565950811695322626310107604592938590236559152221080012154781483045120821970958012703335982340664204135980839044290081053940580760677053676211149430893664366185986004636308483505437958822525410278127258850018972036015871953361138119775608140993611363570958288815929530100152868558371699030048169573716606023412091056668421965542074040675713233053658770884888802873065475744443076556836058545737229977099212833793647482859495618437861307036194812893510041730165468984066631832709345045797919161338567446762492532537900944514895460814930996504696271899288872278202076178423991056232890300992928101905898135246049973039140077114806624651434393019254117145832022624685248363301460528868509650136484911544551666526608460750169536394070065273891014192905776466183551971879290876334265785006340426211914388016166475020247854859728692768675796106049105139464680172862900767783711701609396567592421818317505501492168398185286162453221802484814916665675732913327844517865810727539700224267115953143018756380315502083873495696382951243631974209289626214624085190706644416064353967142785794914510593279715041225392385099270404966577065143787018550916144455238284736770747001111752227273327825668954345769348876088577522029870934822498277417317507279045932062565306397833647608081496052217830008485656645209568059754888221241500922709209972825075221308634347776151749213209530974977481682971408846071963127279030298841903104279230108559399513108931714281148004659355966531885874718751463982863885388875460559226151144563057159541265881129336464959736067738254354847505017932273220738004449827895499207523190844123396450653208861030368452368046339184631959186527091062949030334872725956120605151694077015102461806973658725742355431883924232115459929826400365821254114266793246182494233423553033062190027369536110521988135278745805349198056744949689365881161255320381797332369418639329626036879794812331367549417518057982945306160754714068423882262329292942168020266259919631873775056015968761792910146128832361369852094056565951914710936195562193619667899262314937296998368708124818739077199848134011294757401676449656291062459439575833290502395497497646496295744367841678501488068069504291134237450414126965569855519275600593335886760667903263080214419407811119245687286484478209299510925274331741323107201757590278616123676563558102762311951459482371820759227930442378994314715000053635923669841681797573212598825515756631684413225242451556201381537974405204315171447492550306482843114546014079415217761725749135181019815223335672253384967841693663984817625509101275512456870288614257500175089949265027708337307256016686999309552198192063534072821001834330737451327942202700235027239425680299132998379537663854117650707216588324089678429324662552674884365130828072035796792690145227541993218003517465116046418096420939487033473600805591386886288210765842783124338829035763710906657192911212634714797608121825465982660929238593094314464787729151770984215413938545519743101330211803683086497155567924735410714297293205493380741681465363884046985986857035566832291382569255696233648447635941248498560929722250888278199857379537204788943411470631949379398643469218575267471194882211020078345480379332614960056526407974568363102127708720870108610388081741060307334466474425886855876750239470291945091058689868373026478971767306609584983950255836009652409089113797758648314318831840889449352902609274882513532827368969175618865718794535153660698358652193263764880911179308510549196975066773498680019179471251219346735398457993282074841452344359383242255299831465032589155692854683189371508215156624343174885139301929429783426848871473198855988772737537568580702494622109911830727824745723852551516160448968615605197750618110531187533986338881988055732494882329249701180122579562998744490402792587182489200096002530595470292054470300579692006899980862414948209157181526740408941046581729995041894674358729721752059132310661875224839497511576416417143843064135072198423786441647485117933968801314968644434131128633417150855986700615291807800589614474870635461004370081567201210708314513950959099969256562465411730287699602455385155213903598886846270148625552588654926360937526323750383054555322054909601397285376975376647925086030770332007807695544580977545280899035747001182542251703045143750002622790741869225672197722257750400480949135714769523972522107237029646259451806007724312608033752348489419042445178654744457395622004010080038918722237279101663020235181197261344153609352013613545224267734493588084324940158729682464161567967922145221281060414334434567748188356404525969593695917396923800620659636795519989534106443251242894701469507127487238522066611596394809946542586734986067380280980634121968188012206936177875828649324309084955194620551045260662647143046358741589176099535065989056042782063074580796495808497784554768339014597328707365141638294756968254541031901641029847943257195884031905342746174601386797149813480751617323352693482552147545399047180308582621741923908236039748602526355770624309754319640954155032758191351512234893379007275297642085842607046808941308448248004470770996617588043930256003539475074044112868920520126474429773752688512703896228201356666875881674273584928011020612141128242688529444242721741761154119110118944372308051126504932906148502471105457682378754586788125003039676261800415474121279737697535100037556599601494083129649405327187066711929072700032191669454323005628234539101579660956975070124634042222348479746842537249069381573055423860720871057776089780581548361037961482344376615160751984012663175653827342682292971218155194211361065308772587279273906288059188947137172438794634840004895559601443855454847328694627757745273684367576959138852751652349902404479810908797770789049628201266842195543632706765535222742318074782030170260779207506640322107966427359035871330630365242841676112784539530091538197622494755729348441234125949563457991029843865017357133858042637461727148201878125055495642586400597785979602380871886405366023030368078711133793798277452328153215615713349161023230903625308755852270999486874021420616968276619152991320843580320282176329921796188897681221568682254867479075535945853902278550507946379308532210129519981723885273674130812089540989219517249079160886869494316625202519347384061048324372928231080618034093996384492512466210946791089377477351241362831720549331701499938873034029635026824557837390939086426481867115484789531963167135714021304182075416593264053025391221390017841300460957129058866836855455493339670186293250817390916925548906037619745962884782519572757006695712055343373342514402173970979891460256704475904210398489650108530776056780278328699417572388855054986831316697088532000286167874349796084489671732183598748714079854367078584616041786506170544100466896695218021682965344833657799233978631639872453869081692968492760425621634090756599480804249462855047192003935438366741020309487844977459201571220416334127709033022794792911769754915262141089108654178538863991443819741728645316936230745207858386543067794424739459671198058150871031624981309349112076429753038087969857953549961388124516463235469286997597428044595023690591918469096839256858596296416033427277806156289694900722356647533290290241537858193151430502637034661917724201090328643217878061370091252603314825066328576333314285260441241087388396332804863732854687065361989970060306442905670575653764676660832510642735478794064857641370538918713992541411481395568795466430925904964712642508618713819838348922399285499940035057862506807042491190134264279234008408899126865670497080424093040091905790425094620159451180939657244911543403508844624389289099026203108976618776760131342342642256850779658085156252966990147673313009033601577808874973992733873518620517213867016138812671211290566260354624740503396793275075253410014907017741493412867298339717690209320434016021077707254848111947290782559074555551462815673285926808546698990837884881971393950259705730399718688206466001110654340802643587888952473547870262317160416521393134275748481703008511573393499828506664064589781802112931136019086523730460255828345668956056546796282948038282393346993655594584244025821075466130475355393241082785982489514537597283336365078677336708206955652814293783080946581548766240278235506625671342309482199170771334381812908388830707853473769803143775277873357420314155333814222090050838677444622138488703386921879137908207228256578286887704670357108429193711371189088634091591314283035172042319207803554517552322848172691675268066154246786740784664000969456963024946650305615134760898967069311677273241893510247539730169994972092419907791505613566102684058534259445926532500070248613992290749926730999294791714862665675892231237232111699836345140184429631557527793248851701376674054562095845763241871922025440518279149650610522550304631173440609952031349252428711856206875824019073411163477813073275735839175889631710929402988441205480252088715945882863571664186498052259950177196723039034969430244630014127653024671424518400592199262690175286185576219108388854995296041938423145371803392405983329655623702546529751155416043774809179731725957856494207870129414327667006719288222116473951385425841007415112498407504041396592388554944128875452887017073327968790820412974660280553321979789743527305527857802969100937925266521766598926984505448627914372673296471731071304248064172238636735318401871051426007578719190498519517720527850328611610881178294284511205908512735055061453221058536668191677590241742933837127965115111959528322113453123718744246765799377064444258681930139690473319780861004577589679831652219324830202864823597205400440926847538226742494188589426797177124847909184785829750923094584282340456022809362004064199680126256540332159191627172671063968081323279079282725986856887550839852276012926091051676216143196454586423077075739640269436163662713556822666200426155379789407401682376735154543615801383919087465981676974389443519007020915724666465336892797918110222469257678201111600238797311832801418313434304625304419179425173616061244289625087011871286871855765234619080404474675474175908273884316023373688285446174517751551623757270606447066938312429085931181466742308606611331794184765297503522156659001297449396773431183126703297581250825315486665462402426593354867951062393256600980892508353629255950568254445164088402808019334514877083532947934669971709706761914914769354439710517155559211170877926633078343345921686843127667733621799650067959205058570795099358446851687012065954239855886377975320847818254221415035680769013699938197570196607182200982302463013012731867372666253005665379550385737085866272273460013623228177277417601027658137247790125474113935825496772604753337733909870403247191454042127125407657051524818342947680138497852158210499842407334667097870170073884521643613769989073772609637965550563172169934568039410686497790605222905726461805656915775347901488156809703315123040457990489733413585848914302163664157276008899828460414340621753985812762620054413358511729533370589954413308233425543475681264206298421849135603684709796097652956043468914403524965533650048049359773956088272219450799941215628422072063763247606612227059187490904100517475753001553826491393606412363120381725852724677934780285060292487924505079872684933123429191975757229042772494208037999568331229298493662972063563106362352687868126347614418615711788914767378900192740684493000554468791790844002277301179847645471805805184613633869543687756005266923599523594884262294123199518854690569445037191498617999806700274318624047297214639606584678052177477530995614728450734828922466764623608992936624042642720521431177571049996921867257524867592404344867438417699801737481612368160160673007719630689927369482079697727512005500464950982225182444315531574755875494484461669575536930056029194587172215288228055650697627545419500298233225599550168901943462690799836538013114387487665827662966838830774619045693545852772452391309893010567177317366309084894195452424959665883536690881984421715625736017787270289728186499265690978114750106857330870092823592385481593177510542608868340284269528123941886588690331534389005799099761254906969632493086015682590076943188370796338616873102026108043307626904500487096923557040993594220031605759076182700270130806275862208349517495508155163380242898332454328753190381994930396252781683328487672948594084624064649414352179383245793270855540043364287088257705624638257987456374218065046444327322423314520122514133945933058550167299597687791623366721371568689644355487438276909322765248931531170488626373846044613061511155693434130728258328769936549699855143318053845208446089298961740628048052891609153368141121996318973210663347725141079215767122777049814932846014806428420062155106703275653064172469809926303474229816529742969628359819904962088190251646521032045224633254941169619278608693666160351688444656098920477804581485723839725626777005154109899665498318250819177635508266627727145222665857950824979135183669677429627557301115631947794225283527206321584034834168468135789949477027690145093287513070470910686218589156626633585898823791460939269681846024836358134600674168497144788739957847525162370018135111669591777309300477523846142663382475857112194037427394980784970397143824418398242369966511446756870577237135203180684910021279013551585122606095588606288188858131788226010898021596244593262251626831653357968534961517001654048952307441959771204740186757370018304182977346150649478394223973217826933401362860957196516206718998297656103308604535573605000141356758748442627842801894177658566638872035971633548690475314354357197968540178891832315401245530574752158917362334548060836503723475705551871423952035128806711880671402650227786857897955048314526149401621208692721143768942556304752867367596335883981074317947000998567121103629180880804622716760592932958088776610173409235764355601530326025695778680970153104042032858302364545905661780536202937842168064964094085774435623767907809779443726163130848235234294100024848911718641671705824412744340343579541430263527326517825957465012041430074962937771980033686299664845466796579308533670357031056909758423611433272180655459153387716099727852721968025604608544806610616292708405846967239303083443628698757038981395878835679062789993039633795310749628889666682134233538520880955372454440580700704965813831765936070052753313955641424483082675814378325876002329955002873048707953299934512841833564571794926562575562154583739301110007841934176705611953058153739149350963758463500317969297978783631034948181174463825255801555058077511160770274142747496284272349101822930959745356713759779704046325236044244449342488709975866908992661544715388074844008407193160047323423805882322894924945961294617519194222623522674402464206432859400846781416313462071294187968176967027932995547807540183707080778500394772946711132694216058287706628637833675842716789962926255321935776675446522916856017463071799090539387150375239520225898769358671310877468427587039257910552380796784461594783126596816314534703649108595290613088247781119284318105342383140907875383700208699298211229959297365345915506404473894324838703295610130003468365569830447268288318212866834546951425660870702499538070082124637086709276503707821567350107468272075144167913488996802722578719607688999930900875952951404038950953395771116668222720743841100126877889927896063116770514343097583928112905810965402826139823899698164951000662006824928174857634625399369839779227763970695982421636090125332113165007860281032769707505369405252171802512497894752443083803434614379749890236664718448539671238311817213550645082453929706022514110694100772637650365456822191679718978078052886194449436500827759239252814357840793767909344477229314397574228863014545426786811918606106505110084917875893636427391340298397558334184397847088565418040796745911117769766447765782599074493199073596812318834209744294844909255549216105897683289975414098084473179951160858451754461610939259070527003824532334946542913780919763862062672357004438938322105004474200400892359472393773690473695198680929887096002124123812843910361256396137924332536300100188497934543506828681925836707271029197209228976632940829742420895148246963030721653560592731845711212087847394293296557660514345825573331212275233217867777623640355903715333834060046137512031032031149323637727083933536381614407154655858754444073655960961417465122954805974044274893536090856197111988760158110536574863302248916267700767684588508701320873672076672453597858430350526783138716366780632448780440999154345412881886493141220464147846338468784799881818988523760053797998229893991265977365200365082340860259852652602048071693282414492477967594969341917241449367540947042148025700404424823092068671976045481572374224173883614055815816299778771478128098777159431034112182179194219270332079826345957883335861558118891606516658048055531538299867787705599849530310928174174735962350128470359867849262891708863917634830123031746488676101411750215451988763191285593559147099150777784549837558364016388151408347497642872186630361456964598533347428409303516474306579241535808849893727021562114011365079981662589649906827674168141224970299076094034035876368783788388113418537358798247190553855312458443795122183237062280845547576186272018748590162892820686978263763231200832516699253404132720533621409826078963008984098711472882967792303330712491984405745042595848660651106903217254651906786290052972530727822693675885376352208268742919968864613966272634795419169996951266435549988466462720498652961614756540900578868003602573659190404745489417074516650115716511663623132934455693879323687468775062740027133352645161851705502695956129469921353414133716289092519472346335758351426378785742086431900975797629657252798453960157137686673367621195446974909494393400398549223668295922497940733016092427868928898363926717699549970718708474560243119243414881727930439115388889545417171070751247644206061457917528061762018573987983097848865878570780291169979567103825134468109159337445301009279325639997832976777601313889910019907869983899328389999648276567632592772230638562182423508944875380136986085133189729402843844855084237979349775985348766594254360303428895319935867919557765843433735842673064483529015249587556282811180463194227299601562618511172373433519360745744997525002283712957370764807188047058275784326955473532881614161999685212921030126889730153428675207758474883835399440782186635490771339326481917919807728045086717877659882762732836938130256718661803907883704879156950179511592162144828225396224218125783332353634967015275811160267726319419406134099109472078834425815514736488415663515898766155480877048621168780999900858129383822329761993995052599191991626604772676632580174468392057276418144390555010005135021194276634795655787647630013573499368149706274152829045524926573307595535644013965050069311822341481172032072742052450817731734988059694160448340544778702011750252230944235576367455562636993262639439664073581070249872347092654963673821675494133448034567517945147517964726784037371743253710309791296417184426341894903241466275273466437605651674705365697985121656833297400140941203296540462240054693578348202690549445430208011467621211368062599151608552583244617175707629667118574613000836127411049774762225551911771532748641309257036790984197928976544000446322057066830028414560750493568823891519660363421479641654518224774305691217154103234762078766512645126889076675929692229238187335370490590776156799552150465228901819467424429412880639255685049527151004749855250718193897497095689512466225207310156618360804342693431412037374833068632573199637216863488740619202374814107976808213438611446633835680056435461696980844649439689896705023249258269693532384524409465719252104292238638433442191948928287392134809875364367433062726468591182642249404159897123357642333067073372563281315224534605566249806381052919600444215327272295676288562605140506450675567449154846374602601063194219528178141363167504514657813175379842858298347074768535392276667956330582868139037716027586954974832096866108377153893276581336191049214675426175753379565732354285383691916702542741943337227440651799203420401822182828641636886704035664619055144152378901989332822720612417253867498047534749130401953217981201656401024390638541994629215610928271720023861965433639290276494570703891559090474576373985041886559145583073176844017277632623253438272948360995242028543712922648176685869119257269733125135003386972365675773067147604460740951475675290473692668761726966916364471791515212507581127600852933684003541723682908898765682417005322829776338578232187252417959203040392950479814631547938575245174899900020949602659941366441849680959737199475753703723685587036348400714420452068887620347932346299377711563670251596763439828191406048401133916901610670378421613259830661475853302376360993709380457516025167041703069349835507666914933293913905713710329590057394125214862469595238877697400445689345536299568331685858047537665501315045559722286983367684215220449609564204449598366748581619889316020935292290132425047158195693973665464511222052471372766883241509153942277339798497154962081259275642687146593157928991888771161999708928109741270239767229710059962936789283643112033278001615513799648633362230637171733375376691608430043799504996588284226568241203403302131305318704192805841270368923561098985991492923471906009044034113328987491331928489837905447651742495551136951217735754900664982446922460680474883952372516044423686972232038416739353132543036028961426023405492104582867923842539699649457970059729390880012698070604980067103932213473155701464437439409224867074759574417064301215171792104830159641186464479964253452344797274803819452799737017686615179544661647523154223335565342970190805527359484367003310516517476493244249228321075523428947980571538158411192338916164879553697895251302528226030536817195889885413342936211882164406912273417193842463208453497120676005358531051201344334424536467843524606598742978168852865814484598234516820837072805631137155896880446358593577469398909553574962594606200617942742911284256305290551129521287327257300880813815783586786046996399478265274417083097873083960576713204257327770423974453742131130337017971278159737941472670632663101541886025195593153076196885990914217875461318030122324950896317213722516354373383716349333761786546777353414743556868706944846817318678377882482302299123496104446259216643463481191904907253741295384646251527325994003547403611509781442772232553486610078021878330860899149768400421364245982044702168576291970227312805733251641443358627996934673386324517865211097793179723261303335565961102801098469788469063346877950695077677985413559889127645644362223652484949760668327792987602104888119618035082935630383531006684818910076550372237342666744750335876751826612134866183522949096018119571666378178193066540630081333702789517852085316652570554342983265866741159102250310272644447302380526665036949282946057877813620323770926167358989963332697075159862712504437692851133491962789789630257920156052774632297639805311017346409563360880954816713241824945695062462197874742955712108962108946617272601069461735149748365248449330130249537854612093571969953778630079488088636320094577226039975336046785114853436506914359695653672221967297124275746340825402972841541201061372963188451067191837956096040182009009901534710019622730903978508319021569684590033227758576070613394569030754183364028777939025023907986283571368477867522968662568509803268094665885000868924986657133898814556492438584374437722449368278092452163130439895553571770496518581230199096672487534117688546263764395248911240367441610286878582467886780438241995400619385797931771301314643190971224247705959040403586979751728588620329827198055878249158081132906681724399233091457313496930076590045315969044567397431335341189137759595196004055948635527551471548705866492677645673176406500380783338911715240768238660949400135311816249789938450985256931056190437385691374744273837504129154945140897320171992016140498072721271206259296572222294296020433883318640472114610049549394734562884251964104723061158651343031418515376412179260976915110207271703577546290209060900121022805755145039905736845029397346293263355868577934060024384492224393217231391944110086689694819295798365664275938019276706458720886728656398603922651385158681354355650278652675897006536052051897527937102527219931694102838922392007524700484757687545298285135148747638346404184004936757871454669099030331510186581994150388960455406733126082613705798558161423374150416230372048641434268323054215611473758314532128659603877273358454989616720635208896008452556424016976373080877348867949384191479482846428184176119877148996928777597595201182170673231593016579488335395986139538098454349489997074520397869801872774026551772055602726798572813479550085302846629103346090396564770629861973748233356925116945722300621839650550023462051643079451799760185211853151266155011905798527714534423458761944723478587629024503860301705961646375987742396342717412408829862160496772470626703505330566246693923620438962996232410574085545298833518635759683946831674130690068796988522506616066016266738801087015227072429165045590120035306844625291644221003535686203361386441793440265405883210712371018374135424579064725940603595692964686192258416680909197902764932371048108550481897596452019480685617740186408795105460856801349744843427370562909669177262821015370036672565185430559852445633628115993883356966479192301674593492132754280168318564139999035086620334885207846940385972013278972039163803632049005499888853278005358573251153205438868921667221267409959045647126504678177580610083767886334141854038290908342210374332286596098241114418549188412873440269875733147365140291956667773551103273251084368071749560210903697877649464411346115663151341035850108034884545467282039175543394120814384568302406274652678935203565196436625611860789979289111022118465478732715135936770073827954001297577957767120048952808004251704421125672127325428786183961174457280384301459840607041008058275821929385609333735221941174277868146563651641402818647437354749060909053606674221336966527627278228442014615085826082361022953847020592273793543174135685580340491517855491327831468689431637899712443035917876506826315649914040289388087705003645186154963053218969636328157091164100550337315587889195941583187852947042122496401251435422058802375486766893558602923088376080106843265509024177952458015969972232493882771264863988313600570452643564548040061733244657386900568646730705954933134346873106274882026600524786111874169887805106900853982239924157401351326026572791387298357407332746274127495811058305935287179488182319389569565395210010561242564906038719885404777181203681879347549042189071955209215807997134474995864668151230835246466990016470669037245820872604087529946911292774942710010557271701619841827303327846485873113745060185123649203558560337042496182753212700193803145059487661405795069254660468475365269982102763426196647705906022616527476758995862937998866461323560353960901994407561551408216851686009872197713289481606820804416567393235423520238907293440628013916357980436508829448232170005702995055054776909193958671302136476228265397698375964043176003414329462712892759947110286596333545347637215547855171572471912481703012523261038273472967856501157580566605762988438735513367999952397987147474619083724879993738630500544640208760351033119148807994173889276165676845394397731736131630821730830064960156716433587763705637282345887847932706555716109516930017495121474692696359217612667718101148656118717490787347332922969168612369824834481679853824972617116906784971300984900657361922813680437381299477834719076622031803671832867905097424831201049949921108947354960374300375669106757413021904648295088273997167922212097834450599983939445830507637587210649253601577922149787571848548932677324195810139578703083287165244150882012289222430913384134530534197655769020310246836197321001730443307515963811790819385130696889406040042940978954760428106127726665884166097446074011214964284014868113319706955919055160787002116829767395323011719611852899687451536940972755991202591691367829643186733741288683113429634875967229831374498985939085151858012054362514174826991774987911024754313651739229979206348340843781310591509134676615151412688543608232616857335357445209321378856134912386420912707475612234279442165245824883507500902111359853825835901831230183879096862131211077347691191007338425902622650714419502833561055126356291751314189872260657444670296062308945138474164976400053127037240913098517609328265578232347554869168843417538516583476403296720112531822770465343007664811035621421818392336822613051884127163625519703325398095394273261080228267729470355491598391218342671516003371047570380622806727689973243364365331592450520672301109363780632471492776205397427262125057750232919222068912870362666838934437481024769877935444115580606824547990438800352141413511086378191534921389198780209287452220684619025369301301021052582572552670953645557348200854638161096502020371823760367981310646113214257704003563382918405148970073524612832655334709195096573974331511623185358381358408052585011159388908089454406198421022309387989114187799266047791010710550888167977683654011822177094091754571477007909230873149637097445484138155520766340025431251037626549479523153830470839513403027613999494562850515341360214632719829796909814328250655978773042107559986147732941520319499102425946124657065176438113379527441469497673210707263346135276563263336699854478577727743379245156456890754739455032815501047898830320537183518698847901980146702027743526767374934184726523068340346538847907285954775846831119634567244676268356201558124788116302563471042291024257928733204322227564866839021821805186325502820033911043869722516265464086613993217480775933512719487979844507050698288461452497017043942046658636009339241208034506873377441814906547782312026473999473376625194720760623262155324799184870654335714392734728185312852089095968491861138508237951757589278150652286086459144563324451130926211655487334785119531974775074490438796585106307697138175466791094614396102725952306149942019869867779206484017936468563635006225240339632711247137524228007485130047653833335143616604188778094707274581793932960262797496812542010032751403788396054495324729833436249340378540303044608989143755437928949043185816772912899078101779254487080843378967156496421062492868759549084329362760766701884034689522083737973876412032441386832571159490170737804403142365962034886599260632831408795903273153469127717471911668191230744947535113295254234779973929248596111505152409212657204914859708863164603255034492524462788923644674933369177693302482250111409920513846438604455410204535947167771746257728722203916747677065996604909082657826335503746102447505082971056913710235787068415076102814730968706744684439647956451669027141490063679533353682234315426288299840150269130015309679073448995891021411395138380186272569715618597873117885178823809297725940125762811735210570935765316090764128461068664268937979893587190228836454907596094904382562488381798758185196424361691110382302270947546267389195360437463561759271754250869727414396401734938248259894431086303159229241698738208742743395372365513418175930964162754771024892456920261689179265710589378933442224068277486111797119220337508678251257437896193958384128175979249182762793274158674218590526471896168856447361064601099538866608980851274567437594837027881246085049580672656251687879623423100530661502953716104904206188324115610974389839791515705612611165158128872850442764130018149517211058120173747889812159364731707561437091095672404702251873947089886816665514918705078271388236692860143089586157098139540547129200374810244109441843472060729410070846306142855064413045240613108382241733056201627724041761604379955161607618635332383263523785480340675240433036735772923760428134281174240038474160811056573511761140900942878525137152088776920857094384307375637383309339306240942884871502433489173957800981207407027477160432414146623248207515510630144455004513668907143185303324654145066001884917571455700769880917505021126647231459773194129371310451278035475133516223007080500500049126422097982438652276232556981949713127483519695659835809364190143820750887900182677389472997425081321182514828596176632571267021323299376119805080728211198731426914928298520953025531879610740339356505656433747333797172544857428020873083870260608671891599039926105916189765741090622218155860818087474794450675018031888055904769473307436647596888928456090825168520237051668943055439588816303377103659921995785607201733050425768147119327589803781612362617857709845994153527230475845237335293464595541437005173960419829234292477004710275827854837673051349245218862860776585897331162061259109785511371863301845289447490946033727800102009959033637405813410171750349557071682595009975898855225158707843406532428272565078763605917488592915840475284710435149999640017835827448545528262918085881405192268556518516503390077917322761734712114081259989929569479757627725619580661885518906528003853203124114151513651173001132385609709433364137573497023717772843233995975097050430163273456524000514889397968436751736105546605112019258931327938639428698393074239769277372431756295682355656729694020118986802917671506201567704586594106911604742713374314589703642398645006538654415944989524903249853024739792974468926835709708270175518512735207647320175189672706806360061153971677548872445192503399594972908803583027735400328039236825827965489977536529611038006442768822806933844535107399306399071253610711449347944488031595533776006112967090645026620436243795704375104692041561993863525018644388710743691647597245377628857716623336152497562129053404893733526587735518314356620934155014484937832414790961878987504406291180550213819132133271233965737461627995038169761625129579745279135433520186192182071731310508450361136859914453989270865658266007178357895216745547228459127208463666816825950222825415019108129671098304831279206375347610401738120556265828552126855460986678201057525727096002516460746700249550466007115016780206144346385998580340693594949699174188365992059303628858807894221067879624228743674381431304209320296926302634621836783645353972479147373282252651068955402019421823708349393965908993980320368912782752010065706624454418931555959861088431776521113258159199910759602744116158765229789026724887455579238847195142406242463538199329467587877730904529150535238175738365640671105736430829679580813026359026051938589788698143535818633519686416363727854958576242317518827705280902718724459934524993656723727731888570142825856777715940840711059517724765783585827175019099557453169860525268010725568138982825091144900330779242261048421597277066663804164350782232002742459509749381967496753398121062943194824756748306599430452537936979843103483652364238922372862322063096395543182920505820579857984399373181669954140284687688551071247078779267872535460872949655578130597269699545681861273266808588506763045509743170214260957828923181216007905441878074694877785134785783637808245183387571061117348871505709791163053327268084838829030518050924688073812095117110846134012042627172297911294239936030214465203434542205985497110777865873152651810448379733688871796427894498238153550074259273754758430058242590535707328807405958938423161275042465204717339929431080125584323090189901730157225163644066948379305184883939573389332614212776567521347159888099721414245417004544621287697984972082418826305609823543627335017764317326465226916942104109623517697745646602231490176860777440908561309224027586517970053679603107903905897636029147924157042900969846501259802205433082266200752053538529300609866258400790927550506208869841464741224386946438803668065616863856993453895405574983940701819968590889764150138811867444556832497178377492849321062282130190097604971787264518559964042581275927915824565497076267728133329828609499564930527384380002714751714949055040070284608196457870441496187385963948178847066685973492038879649771272943770113522089977600816698741954448454410442037746122847829305460055250591232722209755315422095733623516085152532428634934506431084579912488267715903406851433069779173522174976100521124233234157250995033041970528416683680189307042028563356885549818632044239059241646237987951403761623392207762172008703889047744438546216125522776823154983106718784970779702491438343473296269323565891464767941749495643544153097085150239644600726940542636084830744823636203800657261947178622536690995872859665544294832829672423108575449509262243091169566069048492196298756477925613918035005119800409156378280238792103469945564394443527210730433355989983554616287754086387647085547834341320476137449827701262243177430290925850881203045565983500929829584130384912173047910890678043705284854210844244423075267137369521068464722587634188901758650097233594940681584380760521245860706514952557519174204650328344423315255526849171373107498944177702247935934678726695489743734973359134032250277139837303655987141425682655716837881455855681161597658754528648329659973003683258382873099019938368142069531505425159564469364680701907200667697473923881925055767454984852442150396382776646788253020937277519896395932853648755525065039013449789092601323506707964099689509530970862599156131906341470053386388384051157969368063129698061496008844307239617858332962627475929179673070780806780055403002429860985806296399722416894976300717986620095767626337663568452216722936250017130229058062891793642609216999262002775864854675317235765976337624459487115008115622413509536549520999024005443988622553195541801679842071748294620360503852696109159798586787056326832748737141830982992147167451551662873113378309212740162788081265329521403631438712994146391347183042160361246204145974174210892270183260116323158067254290017666987685532875155748894317082659311254504759062960388178442617349725326402787277055356775512441927500279764908589384645917577015496784078731032567438530454548618997635805918586330363205194328539389267929654001910432145838759537057885678397527491903931049151076018524009841795127144507837878805154682608134648062493399266753237837424554323609275939801904644290613022560429625981135685298291484012506908646072189502369947310064678073756129708632318249501748810197174872158004489434217304222980552567274308474641485460487103162970986371722674822479038421947408712398723369988880569658466799648762481443267848872765508709597979260602138522298246346280495554844316985785946593623927902237033065103135078508972489920929062502867616097152667601894002319803653580360212113630593270409942395492874595111899969086811918001182366419247412573594762065596292753697266549393304062958352862514543784371073788953290315212604834239074759383651257395155659711802120278797414373150364547547244482402458941382870055364566233327534322308799211659993297909259342563982470044262706329839565769587797228639780211813584879763622001036454088854065200432689740237683261493677978182366134297664166878350585753012906500080464394353128485980823255938372618021309633799167004528614667468625302015549269380522693671703505339431597308776925154863466849118786755658650900320974979979028290777770955852207047773492526142690103845370254709809487229910473221581548595923017282316650140885879192048059122191315679288965049406104561638532415015938850730336534374668498874017551239366424030608596237908841992625414082044300942701646224188189082962779623245386699425712324717021813357475422594209901645143315479959702407812221206718595311252093839231794110205011610256532280559053050059468079872074792974514233224502796966172212285225370995019369434582827153732871198646836794503474186481640080989987622026951718931589485849622081200852948839256963883594389013085540709191290450279257989698261506539167047229992696415386558289704162164910525476430974594902876870250920832460236003148614377062037724984508425633156071559612221462726028946673495499290508650919389354997837849360300140252789341377119790004546893668471634631131905387317339874575062942458064026238905160205398142447947010050094715271439984761658191669741761957367601944287372203818444024376164864689819413693820353564519262683635118720241384546788719153368028592741787648221617477335526118764377799647220070722652545775084250553377359093194798998395704986115194275086736172836458470906441423521427834488706352318889896018310758708046812421612819128982307714787707109320674354620990139314079393289225161270042399107403793661687689902768205831807738668691100692724166398068733749397085461714560584784146789975744734986033855468200754500880471901113999992373729182477241463421957626157458272511369650360124067751790740198209760887204293688721080410510510608428084821873614394764964555652507679248030030018265438582881640634464688677129595064214428824897657258914386140338994534720432536455791990885926166902510289066073654052057673532908477651855713531457887379924084064904338979756275484747162316033980880087290805824090682011059218863820858811790622021101529322974886453484668537429404389824159748731345502866343039675854124791160976383687677291036449502712725730757514702311821296569820033717695739554865955688440257413199115700936785813693799254955330216404462706487053104230882048706707858080821217675293603302765229659436863549564690453128734355869985615492648135554889451113359392934392554925990956613156913411689886259906377671147760597701116440800737586339037479924522723538953377327845126242453076779117227611112340971334335178985273826764364309954470543722210834372913037828359390305430209683760290112142907209578376647021029012900422246847886136960044250228724568990458165450275803739789809067942131333224720728833650582805700102468468830883730582142434594855669247509560961745733205793018035344574985273520065924270086572273672803435351515940257892029158699052348420481036829991350904211792100639993505610322051751103561059182055467003054342082313789988672810283016601048976114230275854113381720369752069054858439339714817729602561123816408201286539573187922254767598772205582918577893334987406552580705627118497018538910162240398726487900440424084908867940322579916704333400019085836226511113078267439325338952056266408931331955622295279523560033987893518960539458041841893202098228374774066784508179439649217769676757670997790535266946265173399296274805690154342375806207243328441550899941308720143637558430037865877235697280136967119263578888653840868781090475873400630645741210532637354562062571441344021068329642425313656604018292133366266808515920499586151358454092545654852812042881450071118243965192031341484777446953242595235565791412302383252403334359896928205653634349359211101449913148448087613363994490229903774941949954485983957296771431746383362940850544487286374427478266304019353235449446236702225342193338874125550141870802981884504989422374248811771821048418229797645269868424774901322400705121858632270032999442396585398394525312326193416955216976339784861582847336579028316907752996109320942209917786622414986321979963150307811808534202400057413644939906559930680312437304632897851136044103917692810766768859654278575379027903652094721104829618333758550033558937840371193295690949089337068009360072178681997421093315864872053684729621301795000179804421503594544593044834261729098616246920154192832245445188444571957603753659459171311225347051829276974972328775233120041017788639201562909309518729567270797371897818328780404535880577780000274949281734711233539241671396991787190035315800745953577466972643564759943160980615728558268107718157810618066556452598149420908836771840378588055992577449497410776951014430348801966416770657177061604707356307505530326167013265103556647244278772261173533508725865024994343489386726741085203063441305264875197222514871251352506016495799635249328164765159590729034374458739157562182173932508571432139080867081805491031008930479680793400599987072804806090043504878652733834279094794707817207520625116934059739507083695477646932913100885691177978232659125039482314759620599316371052038435414163953207682851085781023939255918369802814151415662654450834721814662923031582567354520704235168359534579770187863349125199736674288544398118143218827095102349258218426542663160600861978285009637720165682334977814419196188275759579980311226088705475815555852085329808719034899722224305376740525652695350897189887808585297209830214391048198438705759494388143433926576077087716748938566205052327266237270474912595930271197506529914124167109956441727175492279384476790679524535821732914612652827510092181490601944505268066269876792980847268227710793863514118892574871940555700661394906261927109856947797818145517587012039659293684941247780949142112449233340709936763550373826008130700695711747556497196600874236071960163644572033190470599408203205009840628928919376499504014765712347555673654762815119642264072737952379974861234593496160357645168839659996904158155249740432017406530936635577849160069442817818101788803790656718577125614360182972015269977239603786948147323973594965877156429115154313198279203378024432655398509063772767892454306639367691345661802332693237986395103667877402317352735766119353227484525690549783443399648891161046204664345807582171036561922062373935553206326154257963787311526876663996523544529327774259912317209781327748568960340653487975209503032333629976956390330710927167826648041140987624478143626699733897439990321953020569034712261178250608496984858120125378075659869233565304708935359873194409403190251459045382190624860614639940416110242411493059215809225244879242182055850402343760462381564620400907064567449705301131082169611560650604576926037078179952587809326107368193795072507159077539474587401423783042959357885710483523872991328737696151777448049140197792421082770832640445010523710560935491883066521162411067497755936498519630260074895677951344884848912722456095440479436406641384073811965946246123067375985370347610723530879139261280945095645543125400591357968310418000945396552613186167371437649212305267404510741952619214609421210123353131658573341989413472099209106366500614329180516217782301385617791113021310932182242518787779255325072828210599388992434326181400656382967450344084168996252349897478989232234472643069992167405224527782396288037452695561424593100476322878336473098635466291153956635948818708307691357812376004729733547922184044193380130411018627536994728715687371352610958539554928036009703494577977297923775393033398454983522975505364272993748831628686145636243716475266791599221862552257133419437761150793072380514454294474988014254126015960572631935080795787815395864441849245465739191630287978465573840938464479275999925247982123387938611908140414947295901991238511771477279193464316343927784936189469179867774574612373523845208508810228081787947488006663107904948854600946065089190540790339057907880763081348011304842220945233578489981476042529423440554957704846979827793647605734976138327894466442166895395673048752999102685441779930344395431776847021936180392590664609096349211199992659694041384869140697462282608921867275321216695235929044908712547610202265713183530496925172970351752729058125865935336764335384324486354183168693389643095764109117716601570579155044721845200975109889060940459462563516861079336354643315337788545894029274519769582824492016877650415899537713260728829281414105875869946129426829294137144049160283838828088608338855958325011769211785719378422446379388078852130318011100605980785560595216569670107806014091698403018886379347332402989438217681160803962955395818174038373484169414317800463383512495690104644069720966162552107328045971062209169103984901273446319538919249554884723095845513503336197620506402774089272609798946705745151387361951386926939248008458980688732413679398232202624103409065444725572830481273342924091871197004374606820513012450502617056849919870568194655441984749235471899791617555121763484313527036828443894246896244415374888613465517253849363848960863534631202213892652474667874840099655735429651456508581191939411904721791240169088646127206067825368576955587886768025166399690731297224428817583564484898701548990147696811977667510636908402713271896887694706545943402599215186831651957814716077878327236675717388024504431198841100460032577416995961608931665619780783321468488715815756127929119526449020639664462760722648510530672954887910052001711126727328812891401186032565694038259656373580049360982037803232785653502688214830390151346171408968270403596533738051855529283203807833483072865104304846652436432396394363655928564939434239491449750974617076310436293057572606570003265318831526931072317458255618494870025185462676547092564272974333771928756575395307683858485536467470202236315155501655220027735231061441098003877804150327364810693125976845315487436298764802118962391987594530246705010452011906121197275065948049438862885168641441616938553559951648699389281402784522687532837219116681787711862940447225645419612060428146881661440730220266727226637235169202302338979916098932329882756361082936643183589765389623939793645859038651556919904158058427306145370827311069111966195574755813460593492741523647853479579585869618477820157933925421319157150649667654644742169636363332053535573030698963550134138575579113541868482882359963605638836218576147604320692169545950737215468721289013627985258872831477227529288840813205777543810341755319279008912160066019843642121200667645947120573963355329709222708619674574176474129202163973452297527376978405569124814234978904344281155857718976638073571656425763747997452873276221270378334373712538320391327820075060163950866690879905059243535251258915910856779317300864136976529401391036545751806666469037433556032868519227831321774877435832428785814842126394153995859805857579783229499942527551755117036446536744874541719374547436350980950189135691613763111145794912894717460999648510165131572939384283108087813550149526033538758325420992272640456250466325778974646071750688389493745353735464669707461873523258372725866571894916266297681808785333340802552142926674993134785232958958128832915340741206703487954366987472103132270933229294816330427148180842405043942201189107429034231557594110824084421198448154333187665050664561769819745725860470087571607168953861249093624356887717079614207171696689938502558526737887687168638144949065308571359966137020106692945095325450571321547341052994499721553234874298493515045885236696195526032863846460721202579651205542380935403984894884628944275239674251886797527545347606176597026554844925250940569484922387934459277164287939610651436445692530914983100660963260871478954231359837030437062421922446637655524205581774226005253415512010817987035443623200783139180573166068141114699674811756161463097441083940134652874096825105566536066319936387100761174381869306584384750463483028568196390190969774473338257563032366633681299175641208048585307881035365771505325344221406538245773890918139609553566131446534411231718042163811612539730464521942407893446429830711004632924874653248866892722664274658893360421356181080506916086409336677551970255493596010630402249922347476693499609757758827735805399498104700996572375418369364693265631526099538793655837761635565181838700108041007781413754049185518707093351680558521281375119726109160497523951588251241041194040999953082704909788900849723793361403316162508521476740879084535744111976211082318675686567004231505948720241034846681704014665448092920364940631110804359416123647484374829471647063863879045099364810503045131255711394487099169591431530714633032648638126940990225702377599323344897552779734367287640180674044829118035091942818042769008676752259323156125733935923252018888150598577251491245720406733912403187072056474995515394193880104206343724203266759274859738498951602595553591608262629113314624403363590426619006027193049680295976033960443019438727558414539885158355740606041893017136114707785156172506673989270703915561755346298173540988110206504119518763240036752859307662980689704825962660050250457710273110094957185483171258123429147396420645909273775744534017158576349499560726510749744613244306532593465812558882577446038418197814212443670578355200061372752866218407549998642789937933203945755390367838203493990563129786847489940662448844639893883526170963260997314525405920636207565639175369279153502812673768263685377300854542470742457192245362962351246643362736873296477499263754170232287028687090625989949475260449086010789709386139258033692256131343144706193556105060605275211059809294613352521368311651824193474742475574604074135184078677095406377704805207245145584646695161718092935455564503013849806634231546546547804787396984743358449972430933795679695421864548259515842758214107209065514321535370501830336782038691053533948847027641059680925391423504376820235475730652242681541464702031868843188649441761174457946033042572780313908703687072465614886982951757122723948955703621490755946239226759293936642341663078618033743409165316679067049915545852288644668908216731007457934913868483181931287812422063337580605004573645629306843677602245164741863655326888193488294983105573260143253076881675416269189676776724149082198696870675695927105779899635269321256274318611172799638402650964261569300476743982803110526676711030884097046855780340048209302971293258794862461692768441294924801439866704500464472027023336558219225277926345478941824913741750244733599019095609812883686836424536406029302209600174787856179550195857079845186202375149344512929093286071811727267447801093934636594051773891774097066097843854135837380227220558003521111286425855347018810583349086229552920000097926360180184661095401810312723479152596705906977452221334944630312381711147026537414034355131177991880628484595813427438890526814948141927092295584570544123994218315464914085925528248390583807008825909775991739439955614447563046003557971641338181236093719076022628993771515886565394430879203901127139311705643360146705368682579729118534650004162567644755915439312800755971193334324567331671194572946602151467009301969750533183238807717717369764727461080792611543309142876438806628662515428385407505264331947404095331392223813560512670427550100054362098625051030284712502470647448180274736082896223802533793904492570800632567083892203225834849988861264324361454292009561423286070024094871442588537071566705120404236436739572470356410637024405677485963410171449927672189601713238116053715000867126381902722157305583600794801242781034132735366149584965066375904475344383915540173498963295978313268658842689060791892205715943010531202172558077129331857736346251916528354677076553159560476282867649402587940629193512439094532798102689427660645511301619658735614127044500763797238157419383374380208510665763388066956104035972106942085967821592871461851010307063515782934230129950027391818271014795452014908503843855213617813327098404954892878408784266499092217023752636867200596754751431352203781898546075744182588985322097060570364214857595445167699956278810481459625955705577163331643805548983665290806133453093502655575087922920196761429698073348202321000377162466500094059811243723666658915396265423901760158472363547173347566880846682675765027556974386074947728282575093831455845870452601906820985587935123115353364790372127979555400077819514125202872152088885396812327312060075366908716130490929544885316001187555366061890477848798465322194980188437634702376152983446439156485532405263230531377277083023040884526228713999633434336083401291052921469428069463576231730142287659158436309530374051572163314309363006386849131692080186626813887274976780098884920921399307524675156108129264307306708406020964017410153696442947542931026159980412979762277027712955546406476529332485768252006377199853174489063327538166922315509338473846263972295925997227148829023486500932295151864973708244656592594064436725052481487566106091960554718064319597609367850253802221560117015415658370116920533427251196081705650074665458561057545522016047851542220912442032649447462054657182899938503942643409756099608992294344155140423278957298447544343492755879837699044363530575511184056474787109203212073234291991135416218080379014185647872757318977634942194649239883552135211470504398112160777118030506701013823155263115334010080978596137887823677940039547292081525610035004347142797155818864351931352254336200949939691846071618351603107658076879069342360762289943983224056124171307028708828960797321043763173300106954664557215481579536124472537499517431575224518328014128033053783148527226017090667236991036737753835174287241096655286888185543684121498562075310767719865709878289577449404144549140499961103990199046372162028453084015450764225015781549099786423669322626498484474075049154058030162172946305285601729764780869016145659810748034431044899263924567805641968809800589341949842846908031687228075505421697176178039781449216329595438239170999501053030779685790178547053833508878218180370553065684213961296234808026521569444893318019555984639172115688067239497012606467068453932946264552571969475598754987216959085784049814533297585263067237995303704748617554197584821757327703397138040235867179033233459280104751605691753791022245718165581197506618353769622916115683556509696294492252106908821673461642060032629721395388269705454788549778144479356161405588515916121831768814698254870037684207634418828055827687876230202145080165609066385930260539922226248042416209308837409416570863959212530044752696245691323850489591921523842002358159898282648220601191565002276090751469692981568510146751605034711036030714648631562620858447044721984656539038650783059377997740793296467165279664064893894200334185032560588939740046271223692639654155186109744130953854029007906917241559189558562412674735870879100326941227032356212805180401336156774498044256826694148539729539385656285489452818418926749978132172687862451242468566708048153610665052865425175379284323553143949506505252233985187809152177081279006958709300918896813393143576625371536312743561013769018121458978818233016535902928773512379116455103531618750548894176634816079873076716314914540647023033695516843834707569920218177812538863742683885711751952690398654870572423845505720966339617798942772459039885327429628241631239868879141952339827102326468439959799867475383686900884098383631442212129862863578959016678266399162705576562199288890091473167205671656504269433276708759761961865801706045986106357289168095961902794457740095716304337559922491553205767912892929127384616335993274331585049067065757966337273857277115487050918715605165488752253601483723067906374710411129279901235535474300785235553410314967767281893384694102418857872567289866736392860658944142210833209326879461087957715173892092964137091610107033801375029475320888606495924492842099873149650742900323311709256032455725228309986459296184519580578690834721422433307354654902580401024481902225409586480806592416987831513948923722222135411175029866808477535033871774301873945225972013447084829686402730129824618839125150534608289075777160684902070710026797825487349951255829122279191232126906740292760073919211165669182493989324843081779121574831292249276889772939150828783324428691521222249285221829028366117888767861565403466431273047527647514003764680533670584081676549140469085578952264395081253397744940725235058157601914954496645144615059359297823945277977223108569266795411392350482253130282910160343270853512749026084039394658940623085000097590000026199127373573517691546605795804483021688503374844729846533329931784064173161020289657680015986913416394152546735046190299789756234168151309900057854471552638159798116420771661204235217718478669505050090976144047160540099962414966268138429102666390536552418747506433609727589869492594520959015663938607184635086390937325293159616010874674306064220559477127404164187175131791173854205141025721817402699476068371842519618286286317566170255465812481985531174730426653004334593559531751462035700852157463455900409292087637662826914835915065853564280624106456708900980423524231263492266143732698897272033847995091955902800877547162400791771018974984639919432293799975234984364680648044099683198989522109210395339929398720029076828241179206777975587709647451127946541786879838429259671584987795617683152721884798344706116119909641813561174754860868404787295687316856518069510534429198057945323180910926574472940650983046757057400348881864789021291265667496112430515390634653670930500780601594950923046554483860961780233610658058134129754849185244383613689844577985803009917932850670879345291387530366353923410757789756452628663594636490990169647481204651932744173949251691404094484640942664054291534031655412302155226261955839447507169519913565330789465077261535406282461786843595262468895054820290897820319126765252592330212914862681908098674262803977458343520346672666746769023795695887959921409368027449312135336080757761677739016370766181100008063486926707169675514774272350347948918587721184864191144086873973445835345639279318509194516981864826534896860516156120056643652429812424274069287576303581554812841127164169565744909857663556768278766954848303965965445857608186554735120742068796712246006987042077105127731534731097372346571108432931181440584826129155746226458403771284246875605218501623462363394963066348811595545308930046045198994958977720287309586013563261012634804728253658111844533189223360472397503079434856754085611348037397205536627676363076524610773907855446102762958253433491091982134319202877715805865189198160055950047016970426353613098898414091795198607991320018527860490515377871549794213061589320406787356059203396498647578420981025663977449587306328745010981432308646078313617481673787100873163332852972951664021594099068707524705045796650868261453967362007190752022503636607618520355903019352534949353708661963646592118488418046369262282247860148072679570059000781546110372385780517771336225973859882916118508964854585817383096100282521732470256921501584016765996550778112018527997823804044265429880213615575266793138199243224423541313910204114515600609610610151679006876729139412531384469626333148548031300344360896413605744589117601393283190908742930747937550921357660288431800704343324567646149339890550005110751047197323714030223535890900297133904521669552905073271490827887091275092440248781878328089086613302525534437226053897411882836551679846211277926725058246333667010775965400266271573586822259634262823112280824005527920063271172297936625295781278255219092865411017001882444049830917821075520755991580320356753711912213073654241432570620985361774621947273204654221667396537568142362828452931288432771803116769221129568180035227565210476510190007875104412218480889455080720639809957069753494952909838656899891313890183029694909187970821693633411576098941365900093841034784657392923187766081360545240361176182637693521218495362875880264282415632690394501108185906541659422880617060512978681513701638287328230949417415067696935147277263378632172008620495902141231184667573727958598581446382199889452906060663476267289438986322736902753726611354623221840146305401275870737188279745824014491456205030766360904046599041859145916606491189053312182828197141520113661378851087668008354914711528218603350869202865147028960993248853230557373051864450521302619122857287563792439283009405713381052568612005675703143839707168717372891869152926331807282022281394833146888435936715534372238703826563944960669730286500453245171104237409178265751065470539106214620369890805751793261982687508502484587419145263876279141991983684002006466020462442109911453990849478071443548778739129809568259225845859521846871796238105025575194713674328995010195604491742162335489849486310971519890343889659328859753203706024953164458996929981501162198689852761024255158578546032661963958940226341263204379091072077537122650509916037947394741280996962228473156933304574446344765260488100567839772023434292332202530737338267025874142186463253296660421083507912705244893851462231043431882424319825197873694211741217257710091563141612660319124270057302346637780953202228615705934709789868491079446718608421106010153365176763069090728952517349196220961317419875329859694996778487075442596542219841148715802172993492049089215706880931045516245664116158177479026753612904790504595091321023770443019640706789773085332871117660524510044535376839070377938612154178655119762692949824472580399738332373480061906410239963751570702992564427586038582739659694519740763958929772700833978882900082833494617783862063683299954185624187039949166086666508232871016572052611338746141291792393020054852477199724198996008004325829999013579407940946479336513845581780969146380700100615546233882330956506100421558908916859459057927398003585343675262005015588100334530847809123103921732938506096216708902945365059521186944546497936169169032738201891675730864360961420457546168911454061321366558073140538716847050992166053847701865832712454871370486720961020828680127312880813279380157574860606111957825008035415048525054438785589543839671352881525306892167942934640534646840652830057505020210401428905423553413605466298228928629557492763236478889895917868449805122251251997386630853100831001739870317069726278812188507118368315963265422457025934537860659350634947176533504708769308546786468833813277518504960360684047107976920318258424459143967988042572137997675594191544224683618483554639742537854833110647200876479202534039159931349625995597995430290606932404504824214297293804936002502047839473297376602318259802427709615006193863792117159197210557477008514936703588613319193938954290190763440939274824641290554564411419189940770529533699144003243240873110846645666654932868397823993195960917179633850911427347647719611907975208955321960363035129218738966842095066511965773988450870173264672107433686442537969093462049885872407926087123689060710505546439408187996476452573961437674190695791016916480253317451873233732929909062481826033287020494893136712385456919940475421298096742517219304610817901840889675632819060079656020305839007219400704637319737548603401989571408707920880924049318099724083835993293473412790501861125317079160017085958553414375472247664367150280159757633181515210634825935818041698642737201325018850877101210109702160354871240321792911403950586026162496549240146264806839900832999973978775765650456250883965779338235620494486759250141147677009043095308001059276062972541555189758354810809866771698746169433525592659858917000877877655456758763541224574540005252543317100840871435160194722052005034808448128166573901049505385608258180334310572047843060459976398222238694923480534681184078262005491652651908708524953745996924215558663537945156405281441031374106447932103547737398683424181597567377112333076221817427904703052222938839731685033545482636691152785078956415824570066256961474523542322216231379087970436014864175253811599615100476878729795749241583775486570483536882635902438913631098769608337077874330072635798301826539406454487486560561473402682112167938194500525611531285342030061846509694396734299736568190964918318238401123988885337274504396022337173703194119609654189793205703471142516717125630312446602705487811054826828271960325406634256483363430573245929245161336715521194973965114606864618205166573941060301144366801070931871912300156492604406044267566062338497385645239124364054775225319154044238752763416680340172096837591247220041287027197063382888018076917854435578621066817624531220728553551087109530170080886486821400786887631900134861072126354105102463623580889270630628705919956152378073178811610440528662264912248558976535150394483112884552607326768102192515227195449088738024240580861817235991992430077632380173618007141102620876019023452261278335795247589342230818533555076913831984166219025850939524060993105205641242815630412392232800206761997046809491342086658279423687253823708768407050752176163374760427575080659156187542147115159580403175367326983845406878427399929216853133106251329328651714992835253450646004153575370747406308361432115775308907164512683119260602855417813235592895412874279409919135405889966577237770360925626985365718900295882380188659324322081073698846225119443379761954097877367367648909960269429424422656961047507921672022194350985585613369922819188860619007421962804197543007068694586690335915436584561099390191729853698502057822124385793694994886016968044912903957059630981171459678901592732382424974245764513126702882668864674821055318821607857565118520683134313388421916422086651999694664012879337961780844584722963328362394354731501015659406934423300740436159013914860608850035822422107388319620454603215488607523871819203193739806067606191699189775577320920142231484452406736849140054694887662337363009450072449588849335849718284742919454162102416620594621365289753574927977825606433418933026642765481874716023589789136094717847789768013141747084767841428566826485159045928562944565232533720796693990609001276163654590799152090808039753225305022521944419728070077238358391383537346026281335218194716345633429608173048164525850219406161444647098476738392896683328477646838147888654905564275476400154580563218204276163637161753157490013926891581285080163908259720517490646742597915346545985701100411218153476879441490188418016521474287175098755854064608696963018228088476362760264001063777913149590952793611323601081623982872030528588443470342829080753533049059288736926804571702805655402026316360707290905744296636957736256990640401610837133001141609126988627193835946277503564651871977245620681775483898330456009233016902641418682914273689844911552112168381370858361059709593340690670039556072097270865740899551927809071494465376810938656742126822364330438068615293155009150784540552831686375589253224803766277017420370134216057554864261821670085718958334157439635911504689879679501303974614424814138581817333599912270830776809592971879114748903785343886733489690690216688729525313362241579303539215340370412616833621265550332985239913490456809429144217893462775761503333474521811949288327207533022266481882916083328468752452319460167981014760432154202798867233975082112929268626180435808414323538188251022523058209500032252848125854530550111833545910224408599282061667946227224101887159469444131476070905390771517409732629324732877044261908713953349986670807151890674015709429802487885861470424460118947247901644145082816526926305393653100139284855422649066011241844386681541563488365515199980970799398324546464630917821312566982971415188209058274425887084480232945045912300993597820914267232352305742707709552509023581555733651798857717303380669375623345348265137784364090769490004443612194903128959635185860073450524972720728706735601766123188032542988538499429298354933701736580594641855379692744701987614050864123955282262869972853052969166673623486421809616405748932584599002679973242008538819238091391794148476055364420899164887695076152080920620188327595762802108943139645632540616247530220704002543648992347121993644723884994775970492434158949304378914177627614694721077187404378992339408185379189071719589430280330182429650031592111322929439993334008756143949620040952731626328784993524767630851374098886770813495638796483220837281463250349645683036542259654301082000188298415889253375460749175751936390814014467055117670823503632581663015776400705402831322012240970379322960054156060852083861449817905062771701520963381784085509850356294362445654483737414188768209306317960378802750641776837409863005727957010903621185299737077710608129998399494259914340574038030679816352569713891112465296439081166815805040115579657524487369123496370081997825731521919733479055170998815073678192337689747181218090545336305013199499429882942927810582284487091729738010429143407186908031541119427314258418899544926768722079740659317908006732920667688083923661515544324517170823562105699990216308275185314374563977015547850841006040550801414382517090704977110388181237014768522603047893870250358277857714168917378012861054312224858742536239392160114724920242008932145832370282090861843579380244066756128281624358841864709242827856854021321285843273891704484570312274956195822223354650906528385637337207748040950761196869376995624985986168557641508062193033153436197929658620273637720253492049756700581550411780281655230008985249436534677810064657796181956352543575299173299150836076105552676283271487725677761321524966222618733740297663966942644595567492645137195073657309789178986978510600814584568847007555452826170487722152880105997065122473589391492888973670822448317461775938067911742135420154037566184151515594939997617836450146216467532457424132504365696309805485715152280521038159213747993751542475548902936750592216220457103229898131501997016938561122902922894656959727968874409267364123737276394944377845821819206395220113387141014356280592361045389048294323819682179412969499291053064137172919391338281533031388362302505006835523442832592184517625173629065334852090182355310005519795460111557830996734150556872120990239460580953009865524195265095184484844295853865381436899433576141741193838858918242569068830267835776531161561111226309791818311951439694886764461161491819430862924754249379041018014382271026572299318945171472274991467534795461540621603685618182995829852005747189424178659328620103169242735196294848350908896759862702689245557121860248343829359527539926127141913407367904773891432875398508146231455913341737628728605685689746379083163724532123428382620164370021608065170356566280670023685423763636428649922430181145666763101898727371796996879088818214102837722917384491993031424491331650415087404624944886251132610114790649358695564316120998636263100534818685648226160699674491209318344377027364739985015359517071106901823051555148341857505855328001718522222285102603113462037052790651456998780128091266879552386633186193852664690784172899916639566229778817062740350958852748495812731055694222440142219022860070118944681682083291527574346965365057230247213419479766375329824322183670512431148733715137764519460193534915448538231528156721861147187049474401978494028560887367561140280343001851939582721942869821924027536268506119423103836251837018358574562047871529547582206533143884798726785577797742197306446946749082179940877999397815724241283720223821079396346863396333674458152975698891975156151482601509533836065037617562800521338270882753538572335909640546844526921720235396230132976154786855399665339799251183473265981954687942563890697656666024248754201209038346593688414155518864801277822580685504954612734104459593789955095796979033782213748494155134695604540732163668867656515602845362371958611048522566359670661994999045335418362753652778994650680239446315175911019322042744234240788963609547300735434167275119783559371989029341930980566663656664078967484228637335389091790483447345464582986885140195455763942995735989195964206724210676748928629928612517081214474336590697731645092743538264930111841419348343579595098451633624599572393244365727623823234501040302958047297315859711747330591813054741482895850396744216175672969717425617322455140736080619088356454324805611092043740312604295549459037394887031658235256017152342680046120292310897270659295672399765572002422533695775361512047472040041722472076297976250643889658651475146374873530655018517790947340862834790024739626092938188884659236242143553422641861619851930636639417906305974712354316931797969420900888809261889279322987230968176165377013728974120583037898793350929651345760026689824039399340864054577957216797316969878328212717106504004335058294504802018315120153401792389026584957851537086817133254550573801888039751278242349595648039490338788139098480691527612628063405167524755676440657568620687437846521765481194747083239822784072160503902179665636257380702256966390328020315914501885251102745124132621954188767992979481022339218963563009564566891925478360804755828869566885849066013622120926166266117086609129583603515809658222515021165602193744189392913439340094104319698608639582704846697639874174788816482737223482451808586582661306001159847881738220768559661537801503742899271984097845654386160712588071373618345607760381651521718255215679954704172502564928177753484690754979663577081644867802730197602000452817471355789066878619107409160620256759427388936982444209844115665336329507495195945993651223759974512004926002892803768586471660888567012226915266506096291969470081451183817203884309623292256268983738907989414991323024057962531513920236247383875787056472113413778026385993116043670230600854190700784541386174585509494323565682509037518189509678181877763354366046706392229143168610252250143692831297440614438473598395907890990330233247547643885868562647359068269003718833087225674068614792409349100552946266108291171111819463202902486007537431017401067461669250678656080367590964289932887991922779260180366601916623491723970265788200534503665100768395152644460221462275637207641481076549952174945060116181077998688815217408589573929814337397748286781098583791111181901937036940104338955288205418807645041345072672307636951820717612093525071928928349551636780048697487692668186407248025251285480137221451762197155761358590251496293801104646934838011629140792471048647131348738320831539715790826371880380387390026888221297102375200186409057411510950044095325942738042606631656132965922251512786511168778597155690517292493436394887496212855538490704245065367475130088738630059459017285023244448783943461613639298177981785027284344598820108465030456224141056929615689435693885204779326731134523383564352019217520345721347573935281242899098393771353247164822057277395944278095948888303743147072339426069617809980694376499693514310682606737320442058266451419046423981166636531502883172398595570059010732135534134049070804942222280039187976636614212595928480005676909509939409596554106201115557528075533347467412647483452369095630261903231594039645100137818538243381441082835095897217084481431947380977852333209521776796346133166499645628069764849675298200185470345162617975032373791501724837541698755403036073794786493422315738024506994497025192263836115005070728745888907865568634010974896138769664327069349039278910337196184784308660648186515191562063553718738546829896503177508473257433353653546026646276499648691501550824622491037892252934761384579259484215767647700743233525074236677248232923216889316439118008245122377421206956975782158610285008389795852598792046816144814541328485366601078208456714262489187051003811096323608857713192808793423229866712126767166718598599822419062073808859309585094164092980938030144716600376842832995732898043884131475026703540923097834821678577377796917817608886689185227023097688305252419070900280097162592485132705074104588744323191244115032779379979398893245172190795641809261677777347721545718257072383324265526584172010203106710773197047382960272591616800113644477123679307701576395914297570270523195446334014045282931679169358671534529913796892135195368154780768442943519419255060078365966383546624487941561783182638584251201563173984105239423136744633919364606826042681964195386774596159252308962710800910049892759733360912290662450317913541298859802989297423503880662589678376384320620036253319008544739313301287940048273980361143666569321207831729935248973582568389957526762789948068381585008654901554845989106392153203601029813551672023246115914135348053793017374951463358255236198072429281714887769018007392308995586550430639638839916825787136506432685763350515669993547393877498203523823784875015429928319168580962957297652144185756822108225519417631591783105525533964245965800368771452879844578843863089704220703552909405620416209684065973242124397285729626520996630369598987572046856496649949693145599716103125033283305477304318245799501737424618548162902271286722123082610564464055204861290214168393709099598394923807431943778169588801099502070707108121111005948447031297403251706175499604474375856261061484756452184504390535296173699046877405230884390572732537783777825380101191586079563816882575123575636153566147563363724627931578815225561115307649494359223671520681798943094771833758700242162947709355119200383292940563836790899385823713684394557609644559335345881339991372396819696869495371522200345774442587918788005989922386746712221723123475578535245532913938976584116776902121256024586409136225602931497587022160948509669861776960986776546947985890737615358999188601133936196984268475135697307658539011139681538156452680703815960844751439889690310246883838783192810889340258480244173268923959250783619611378969179004398043190672413893013008163433745122279480453116629918355395363348298974120374618161508832647008241868726656951759611917110874600138597536304082494089905887367095648477695316174211268469415600084679597752215282773317851056015600426890195993293940633031160808397727510859990766200739343378145746141918160837818432898550173421326208768885761303032659653166321807885201093781143130676504746128363759967488955790522759737035086863289003108557290935535510413117607890103197195649688498325959085560502966709843573052558359833518227981339336103506803149659894148106531205173021629932092890922128084051870219598411535719167640048150341028814280868529692424557910724111419999715319436728598832204200911653250178910597046515205776735100253039535888904079071384315227735445088482623814571884022711643962817397608169344942074514707886253409876773994232804598100949668473137716213277031517529522752250224250925412829860509408472476968383516470737211557338422760907964528650374188278676455458223521669540759319272700743634164084068429772898722735181974951700186585513770785320153932210887649692594682420193451572097935551971727124350933922638176092838327169123657734406756611625455005634433123109887922319167625368178978001347497922809497622542305996598274032445003115960380375693939468202802411676230960018947307385233966109196570208449401051506262170218750618401963066234428149797063891047589920768296386880268909456677613397334099361639542027934395129970791458794671361852983667578453630983879343011269343227774012061216731792255739326919800446235579142214204594503743613331616206769341383296056748429525914243158207903781364415538330328988961999506361396735242505637887110263099311361084174159469233706672473919757229388581175664102530408137639842571768731048745878027567185046693853295716986737679814126112699293346582499277116340717832572167801940598556131312280529056391104673557343489404993092083703697620125073660131382652011135355895161035749861192939888248232387416217764641912303075911698294338387809523408613412331506026608387495499450066216332073773423244717488812530114175372488429786873714985034993602115236265366413590929096258528894332284974228215927653306588239305776734633996900883856282338923180587498113936142336775373527939569645619175000158959545798508304943513693920632506590412340230335287977950455234223233479721833952866898485907973834754604738303749016274416857223737082672910131427331694820687966269687598624545708513331676986136385598770681756003405730531875469109090567186988551419232036189327285313489825147252908738132836411923327562791006184090561166356477182439308414183180672875377675661412121561619579753542377111631418583444461776429915328152379099074223492273020136381678009593754804760498371314159230066645218713433268327410286282575816034078630999458843190001878286232694137920315934750810464883689669361853096868586560769676955888452299391731397642451567195890586522157449425400338344876638316015642778345792706267091890303985757384976286971890894052161262135343661153740106870373743315097579520519042551415785648780724206712929138452817027737459809234069887281627439342037747043524258400567796786900009303055104262063028175376197082416075094583569247623466237065143895092150406919208691088843489166635957085988025228988038435608046917974174017138469110185864895148529140958616319052485445644980887793492024480848359242961007440584006171579226992386833151304302934529300009212352028936332122027304531536568033788211536628469623538665770502494276634065313139958822550920363466938059276806042828759132678865090119728696681732202310172598313379942593361251657475002375486750022146820976721135651947171122162384601875226778357522021828887008205442467380271867606145528901253793182123928012419926327765052213906750068588953643833908892724874891954938268143074402081511107712315576131835807058853347819733393359766467703025661769584813841993104082733565936756889802226558706209446873397463399382956575956352071823141324564748927073149644441526021078230422591088670771465555635468050366833684757159262862896204287602913599129477736112938918248931194987762733752016023347634856701049832763412945420897128345904004810117258457150502422298531389186262858418885617460138628876084457481486001558836964764476363175000727412911824200918004486036795347083423722874305897525044562128073966170358112456786917561690133661910589389640712980829860429413694335171640725866562102965023903751959855382637884588065060242480781045717921466525707094827239646852657537736483140968027468477762591082255603651309271818472524304556950039778314540693230780256532363106186089647800513789975725534551660974415387778324095509806975524634908319338950224651819361428607495656455140967035570970076525429303709995363456692826936140003747614075356520052219662406677461505932190195346885520833331370164335002055938429530607911451223669847840364484347570882878746580800109575712628569229518560857383582749873201557147682952838229139912876850338609331158980656617041418991051918532563365342696601266264320463718607872906979394565197021125058621791109413806056922657386742136873881701581657272066795347656482408579980236034889684060706397674306932237311088279156029184699475673176464892070720256543743958607274407583109726795317616338238383199094783161033745566307105228771748896547619114015395434132499362176973260742498539172372996523210170655248093850841050958353462236633746069674202523023184531689804852915945144530971777309647128662758828131153239236487883776062524544175662243531482787595707291336591940444335142537388298576372915433200277490524199928392126553411212803602478830818847409501398428803901049470508406415554490306454553236150450634482295227831304127443628927159602227331309188533423798417090068503877081368944528847153327374445523428553304134216802399848069013388945571562998346192628812640016826307395473694341671336869568813710840755560361981092823687272793883471707206115567881605945330684294311129598171209724849589509893748797410384408083025638969874725465850971529772559324076055680298333787268652725746187358988869146804067319957990145000128406102339078207786197666280116540841066872329940787183348046950970303475734941078059703313529358163010367506931333924699198062933129899642167157135306771376922959568191119072612935520193344377578010927164465787760205478888733262135255375702860581051219704145369815842788320898616885149254593283613107451451112045163492020572893827713180337537570894742965340820654929363783216378090112378475720418885690227117076509789072177067496162851425525775629875549748678104471041942063110475757833700994669549646309094102981558247118186985403633258476523580269924307036080373961033289355449085638230257993304113253582696478282688884902677293135306099474233773459709145885873159576600071439198901179840698248121640520896010761085599375897711919393582904084289507459988774857627403693967185558541725170624845527649955616597117678816130562805950184746567169141713586716641835809455577753189342829125383454438767630740631137506393679683072731380259568660281863301396004683552145084644176713082108864687874843749017279080865345787967341709194533738363873033620217787142738438142128067708962018072679400585184276800500924475703769279830907504990762492114751401963790658383907589605640448457968669605096394972266690713071738548841807059153084851950211110496970538099540582109623345402885308268415703553426886650475282530778193283369910775341930031473669951686689837444542559517807093850579887561411235902944002064356954809339084070342747172410668625503683588961462311845771346667363064606783070187885109264297983081782769686491515676260509602684635170829211105824861749298687716835956641825006356697229618472546399495612754182340561534643110319024125430786659687291834164928874155786904025826929719276752747125960762537695395609238762903875499545301173689630844307679311119875248356792230806122581361249882348087799598743174496229698582662365197196185181470023895820067023949134429208272874277051070652643309617887871325592362874669170331803330917822865812137304062364510898908554533702887770880385230344721733111924770539343462871888575254178431435294622252538597851358110307900336205758093502930130303129775844273870730871559800137719287095775798380394864628012233223568361922232108811032532405016651554740034815798503268650977293924785035325038320829221968226864975734411834204281222933280082696462567134995026884453178216119297450110169321494632272770849458161876242491523716123603122926323651673427503520182071632627325649106886234883138426806176726298384241010682256075504043468455930173032593342104561167634380811075915896256972999461980699177865801985345891052357488963872401712340266806910274171205853622390283820494919011644754798054702230210486837432102297372121843826005662376661978774268302074305180820721574322876793181732727183812884580278093743553143305585406583253802962093614902794337538762771297616806955192008241406757324165677737028450586937575719368023366092504569653694057813565276586769165234519872289595110595755182513829275841087773071790432558824596370148740387639030791027328488696941193453533924262089898862660202870082812632969988477072250350361479154815046916793795989955640144381535376357578124850438170224893649101335523187179342257040371465626679942027943226510105666348228828595978814263422084153892102724877860389916641325231911135395539362993882060106917129683866854347958157361046828815941780623078985771764739558597584028111560310187024566854938373419976330563386258019962243160114834959670898785168876749236796345680390230210969896210183798049678586592091884286346064856512154396841415986704564389546235372393558164756105248997233853086686393400121764436898181863145170904837158903738690437144671647106535966167031652418084612306449264996258293653356990669668421642605629020726353867467592920406806435815121701780802029870679839708300079812101662102314034262678335242998365675431782294294364114769638020251991870157978937193040198658438445391881598311360422796324426346107205338117950113667744402610330424386976974921742678278188003721828154197476241274071570680758827155451011995524620085010210658217982288349761889324889184992664714660687465413231135529226587021600993043894354010208383652096722253648618845631485472110904083440903202552448218943757346211819485289791408127735334683717925267131618287039232513338974084089938497560111127248841498652456475331105253150494990738338713094904955655978570810100748983474871109365253992372191752033453329599381663151311379357038843341943009048311650659045473181524833445942757965932250241207712883197670066198919284098592671181784771570153163003600028213123972856994130335491912868357968387204380833967149276415059932139412844005609192288965292287607143135417811821335125572746762071570093070678279246268802659466349628983677824150003519031248646421714890750271622398970710128504370179721893558550354740873952399128201201845885170882929035997618879030917717138225456828793142705139580066205523239111812522145139115490019935333373696244800885375651612148662479637476594381935247383398157240479431008571740948091980968446497612822995500474479410756448407514778804587381090127079608475315243086720096976069562628276573804897324457785202618958216296174237817847916525405330071763368859404080866502620177339222903125863572974215773468777858695775641046143425709990883658263774715006160832867802976456245630135484699079201850646060450300580792284668486284868774216085470415854820769862665988515989746762738839313828106593450148700366112771131390649344237589505103250651253392104574060066415995921188578374389947907879341586101600088731003955404727575462421547624229166051747133076941159398877187813384311487550630789575588467627358163449375210337164885233132226027726745039847324938726551740611635815776427812904653267480170389388171612230470030374192494411797785940560626219510776923279893187512373865187442235892291929786059005939387236336040734433177171681471914713059150028102258753705984113645020666958464629951953538003557796872955934818127920038655270709602331066139226437913855822812555958447536310441887704856170744536753462093877989757390420334790451006685813707138286828934076380765655560331479727331888717176023960862178321175313983785843683061897705547768018747357051587512896073584322397008026527344627578507855862749303000033885684143285771795605291880747426120309697309879885240948540648957967568359799051020714188184682638204437462181753359793371239686173930950114483081202834537751461225757040829760006806031440839678536330867089134508522482675538894108516306343782077855379275106291585221632306735170181189370908392915880660496127001345339895788705953631721690801517929174656220461646420806793365479005663333607048905338731078087873990642927868681006781610694527214381369822296943084775699818887453151898882739687631843827192603461894698368192228869692902767638772987598036197661256091052979782534977773550960748336464243766142367854772657163783112322344706634986258183878736632204948696626423816484475268751887585344970662624782752955885630491733099476634582878857882235371394818249810702141511759822269152518797989618393249875775117337164769679170147581854684009227982322453017610353106798962616637378284154099326045918887692936537383886625691162781487919654236194541356316655576667178433893555140224513054105730729237847571434262954117018351908820862408596712920729028588352749459195248153562782741234690828321925841917660347654162574712208514561079462328971133581384782184902927056821412434487484632476989262353544762934276469241277755087827177233060296096120028739727898688620176255076419521568846543049877292246037457786993597733425169503175048673945926072017588881710974813777517170702316428021241819889125982106231824426556325453073136892528149711491434479590126370311784703975167399971492771608099827587716271083897138991532289588846650509948836043145550241216519921798183188526271070284611546976716230594497335848417392999686488614533714511800691777712409808263990021837307224016219308413983338879039912299274123331302600174818397636107421213101490317101383494792538593532554265134195202196775620716033519109430254669943513603637552277545536804847299057219239521904602120646422864755312818509327986934318921983091383483123623926788194053961511121700210080881099836842525930076799217092892266271885261928765476468310979478702091401733247872917789518073269577929803237993048134137699240547970799860934116061695553262379144077518258146685756565819626295171440723270079885720911235459381499316849859458976570986832236842035925841499106498535064298482779154372978446143986592838089621318756405697980426894407821924605334761236859884207906849759517074375760233248047244253565443889114387165955231277781846709888066002710752608544183543448822609731267845559120506458978387084985905528447264201419881270262266635925631268042052449298592947245032050865186274540108217753648964442554871525357426668634474614540365943162425891399955384211588399792917773709255793716012042175129264932321461245710185867639464749150541282739481373065692360876842255171214613117300930373249872233922377477101357667113807647708448415626807413415969264975185955066033245590769524339546941540707432295549633841047180169545352095501409469621916597743058980036052317922278211405262035275320157447184385383360678689262084153236967157044023726485810387424604126533651134179323288362232306185649641887597705795245775610727516863238650139347953148787294541756173065222762957426622143769918972323272329425423233154659508424885104156852997640233800027451562779675942194493443217275021945138713887786154310707283842585252927324848869052118791998535913052573318831810340233037119623998050315961402768755618167895829628288581275173207241171170920949928515772928541675622585334411842688169401492799193696287904409180540779970645829719219812437326901786268684407320236558042315686344479971743521787378340476783737316347066951075803909209636739631572340509842055366096330677268252973917452407422840368581807943413382645425237508625245405680936000329982094448722791895998990029895257838798861393260719399123388950109903873910120132261370128733925658299648053316613333824715959164174221893954129157622621897588921635289447520842729218905981595335798510053169782640923846796798337585217017743615972056463377015589071336773066147385491323270463297843127637775802234833788539245567757367993775791952896455553288583128540933372846576662548109971936706618266339978049457277073217022367360294920223086169320058641388817470387116652949315934517063870415309299515458031353034131606067931555951467283405819349871590224163456814364442680674681519888441743142467067931070612379456387540627285459712961900829595965934346985683354991452144909160596367153737663374541494156829454641187319751137090703424008178794496558599677673323164581502131304327366069870179018151601049050537321819672499397835646221733489319695642431630119074990152123459296070882296162478396321811372684642490003863716164608272953588522485634234054227620888766581887746810211971702825646095023926530568079543682902180701698585937782643824993556312072245617698493440641177950024645284201366037872613466989987388149639827974652474443156859426181763992019403276461779719699304674496455885262541712707702964570069725111155808949091522785600720069784142949078008269666861044314938836678683464339064880830940939737485763725195081813727238726305513835598826600399031794454496204970083930045292005713442655479681381157046766291146532873196627422494363625481695283236641268619337507912353001477892876872992834148644219870322017996894279273721921324017992925622677995586207485840537610897256202785515197459344675110162440748195844472296406199406242165021718535888268622917665145654512902724515133734671130495089472697457533144895215446596411526193096606736118263972881588306979500505382313157198388984544732842599039617015992532018460326921939136244622111603994906824512451482824304366235186883875293491231765215578247375268204605104033029611328479572713817138559750791465801263767066641645795503949625315313747983725660708682927846612642182721620632341383587862422422895589294659285599065512782412442281955530911770452475886328036587265891260836533855076437820624940243062990285815653880904509048071744910258600398596255356956629687668133561585004437412585733503442734075798861671663607656049704471876310875301663210441599704913390844543968148672542121591450602408768168359251042396843570832025153649346292039286083395927281694379211777399334056815933062166768476514252180425573708484090807221673877840970346878410197670684020309431318607516909166433631499956616267005302255462977981895617884586215948091554949894881443406229963514682103292323183364138163088511852097348283683610302092652416073303867627201368798609312342320096662058798884231943052447519327328150073541252976634317988173652661901465729325761695306550155741315898058637352991284327321661758264427546297556947284332627459819045293170602180126140818353566356114595205940316982474864975969219237014769514628790138305434614107753416829756141924387275395250406384681876401341675662508631126982528522149035972435536218288532455180619239018182009028043792441047336896661052082887854533471353784532048053811488384909441663315702689070918212169149062466808472653289522128497919024416890836668029697000072955568850694222657403048897013201955470341745050482157745894637578797657060985091193521341491059901380673511110831986497127815228382789766437552954046342596202859421716828153455768839062312833304970106411501041847698241839962934085852187844517142660777380956519290736289838750123602865836639894275416057662684751395402105819971456533039294845306582838160373316678216975731177898270357848863476864134184961081907234111060818310699268790718289586218496697342473169387424842156781905623380783138000467701912333962669884087924906545100100066909298585429761304926105127960498748367663175724044014989414355808024520848998939402655891415142204130054832041875051499809146171896796631272833112745716774501181450594158548142022502117387494460446243841304466904963581280333208918449321901533599679026563825896681140734254741080151489517735616798572163268688380280078488256014878805933299514220888027445488473135143153818989300088063005639744592427049812772493942334120829373747938262435404075753554751721453530172805848614525058232662405197905956758675388130202839008079314622075166646609049953046850300898284486403911437944089067011022500214307148154147620246703868096189320863506322881743613216687033844134929790515498041677940654577223515460042874095831963176817690518862562699210788199804299578274475068656235057140023489670647231895337699844201856802494715102375324102955319934823389472672585084969927590609485484835701934083052667356374808871383240400630007845004144970616365395959184052391070747117767010479731857688392172106557847651162530164767193803802165369064497746582968620561810476512945538419723228827887008976951562801559496721491843253014836662191255736221905448045800707629326438764894341020077334243319673314928824307975568104047872979960479769869465288796953930663050195067048038792502618709638923361488152932757293165320983627039045155416848734424587273436738703287524594584320621909049426178552068744294018580627195934535718848045950180813826738067676775849188708616866594590837763801497521064538410827671870101011617837339269641324612619437800135770085017489921246869704361156844881487450531481238695860263071464538181885832318392833988131055874165536321360590123560330577192289243300322594581351845747563558047796566871366235448750812405361417871485137031021301115929671066347491586839227883879059220119830066330191093540538885024447379373195980784781000248871286956722621023315035313432237940662006663255443208318886863967796872504242565978126778795338343604289274850079248565428175620287365542086482072950722692404635772517976458974974595401184094864011577950716758205628298167315963049651289698869880854404019089990383544870448083751042130969573466977468862247363610287656451401635087554900607713034822310493594128823759878366006429279303091085614084480356413763472485889022998665057447070606418938374056942674250670502265053956981274226777670944753987906001054657103956365497801450166344628882348603762593764825991721241693262797985046630631127521764477018786466184114877190387533631133719860460253825746195384243692351384057994968127030643723801949884711793070384965068440950812997276578721976181444043570796804103509298691178280612623937364401729716670159932387941805997585797436956143482999553611353575965574960679267393219270430626663931942851073681347844473775499623004049608302392824527952684383474855385368823445436050517506943261046564893143142740579891367500037805740287360732419450042057785761509456753688049902955487751456479127966060208566873625554550147885342190539546452209705374783922467424683050374510850740271619129850175298224549099385116165626336116501294528706220599999418769955230084596110420243585504596939606689811058289612033718482045058629619391795194856500304735130172381671116209249610985298095508504573804011616546902238847233605107331519987384852978439380818181509579536652001992564603418843842412113572901159169106680236767425538185783560807106720705478060663564718678546121902586453232871560129536881188776859253743738337170768603869822570560356504595354277419805846042195449324868760714034988650633284740737931713466832641695700690406300682043204849671434473627348294845781844277683802233372424087616152847270852865598835083510939483830136178976480263412818571747643578731409352464462722646769522677088931336015275591637467581932272652692308683364475533507477696353678754231616680217363505821661779929924433690000866008171474103095730569713350560594276376999480216927253115937585221192299338965272181118962491748596151894687977354444362601941515723430573069744359523254340731671307844541188917647458097390069017447371262520258446563062053455779860235040577403158024635998250472886540538645652058340660906033753268159628352588296457168838886565844544037556240703644268797682312024883105150788947014848770328075039387160356235235589705487975120898302133554661278468811549126117868281816559082334059446326414588658174763331413369383943320145088937073879755901677861055707850808372535232148975210469186888419731428494345232673423439504123314306956167757356638313571672304065461062887736784585355020804459588050736832128368733772327572528481936264880877372126685345651329907096316368203573701522561014371670095007967579624744519631135925548483271962153031404079907896755833677796240436778543640165324928440789516649404896070211614182348443257839383865202643339552391474230149419977431842022779362053528491366437861157786952726016768449110355529849162376163201359128147313726273552787208543649362366345713255022543039618055834067165917557184198316300266144165076607212329461162924742180457179501942726647869930525835348270243773988516305515478001636775299273775734899001760519880819114581637736124253531569184698360004712613993870155474862196436205497903981753521582149381918976411581208907085400076365846753295039938053416206657566903220484212857953491652767055462888684155260787660647941274696352523618891398435684181909363607439916077820372788563759520771473672708860262268333603098873401383400508502904232557973854240922027474646662751491989721524866407056551137384556075610136295125326950247750710558671770118573031070090418225607999827600570537505248368066855187417641337357114234204668625980081200587710915217354383975147098181925812736432642861338715197395630961756661514193325662538553405189250418525611876538469567880658555137329661658256259419800016944820409279098610876238060355391726923238678147765032679182756151741888846468970451307836884559816710164231484765325881580471430864468797737858056576624174068270142870057926019998375344633263770133459726238289710592350310772926030634073713715290539770439404481005508740124102531048085733515802501855858767897849853794453503267952447996298999960546013567008139878232706854870076900066542016349357147112858815892123694931149388387205174693831245094043585669524379721244934470869510698407847778502512103074534220760411124734772371897610552927622998368670924873694156655868445798089768464397089364211533809625607414949321101798673246575413602938756372742873002260165746887219028313714682339540069308517287227179200066130167408964819700679666198208946230900570019610493834974169021880932061430399658524796561862986568055393420614700112957177734252213281473562768847661159331597723821278494661303361408002559030947272011999682890879502643403122734906034168799392796208097258783281513009223409452429084903433045189288237959601054689198858852643033327470571508913859715045549670226620487777035270024702813060862440520309720460717928935647417831167234076472309895977617530278420671420837088762694087421447969069283707330861461152360231891090546623456925101885163758688880077543719384138414225930330991716551806546026123827869528256533885760733359021441050065635950973806554323968291624033183215121074398454835513170258223158672782307412486581577562463749595177382691237280257563704480364960396545353682935996429554621413462376254735644573456331741998204137287812011560711364436518332331343559599582720216466669562181314604867310162363957842310708870313242142855316512590345552219038213559309864062661259740767682602189709643018214755593595605618128676395734913992016309585008590299568344870168192712117141915880519333769177588950037056544159762181551220215525236578260386286291299191395220229879685851909083704239326432579992651971455625558491035990000946424754524920486791058778453848096620457200205118258807490268029117543467613362241705129087256583843957374750800798926850486202153022197436701308572158406956676677101183239040980318879151613004641469368616299005244944337672860645855886164601537169347439690514782934402689845110395308638344724321870058663835142914200352482692078230854127181363473550728412360699309067406072463629608926343018205377298505983064518283308583139794586487157973828450857540488153581511589695885780698278619004243539327216750083214406251890732431801468036108031638286125316137342607607000571371311995181559745213827654787979349981876709042753240309204402662965847876129306991963188070863602338198626566072264730236923063957548642627002362932089079704767103133486456899533659492857506914920326583810652057696828427442792646902994516334654802618638913229391605725200307384322759464661620644158509988793912234738416868256266791015138468768969342285348704815469803809603450777954441547196713527325119890894107287194238705097529409133756941269108890935299031007024222119045405502474382398176133765344356064443343365441198227793786686986908079254947367615022518079364634962961274141067749916209977105796571891246820021619600671349274609572085634562079986149437132382461047182832719671402704404978894929077238332424234380721433299393394019177397009230505099197613178365175602782027847703101882065411855299515701817082509524907798202519375965760016239900555359451210411315609024138213555434527148141844378634477532745687989029131030733978190160370899958280126142881251325652286205158301986873165779095728203636796786600318922528079562317800611685990957799750825251378585795105261028216975724972382186576618665837827484463909804343211653811585978340358071613029919338837586151148670518614234773336303227778439016445185363565086599628928872705770378022112125085550641864049264019932811278194200738141878577528392849740644795566057399850886790628890575423338918918483461984406739503098363438101821190069427687004443921851594557924111722308703968575034401669637144447893689241769479360749730248892249021801332757290336438686718905531054529844148783244294902975470771632949707246031712616348710422786498622405506950961373007763187455576483168493975474127751380496311987471684312649109550638316492618966293934310219163591123190394918089881947842626347626327694441256256519778411956291796484844365315021690681360750162105157797075137198819829244318040211718485007151147820845360381711908616377159941185022020984487961715623628215076442105487964228268915172356643861318830461952406159642386435986603803537785824753926731456434163710807824575468732301773674917428067029506034677220288040321321369991284821877472558656961990947715652757672808426595901854255871041241866664679680921956108935296784881399211885413378846383740607005789131589510694595953140850719878744104578323141917754509468411757501486377285771206833741597279196399804619358388522395242108516118830100979842647950279584266576580105152570659806806271959460035026126322436707013600865029854967880078445607120102036143694119689410323943272078133023539075315585868970999834011906816745689184768769616084191019978216998113322282532683076343750874059978274948968029862412061255563460713731379932069118687614042888993243782123000939403433978171950802221689084778526862520463275607172178907461056883398181862793231457733324104388476066232897642951327545221751269958375029188986566418620111459660109621724113615543716323468706697187062774252869217518141635000042855915502205663526147063891404310885528090329998491269090733832056671798513355252076221035045675578526570940336781849115123302052373774044467143814431321438366692113447565379077442235072280627762033686055991864361614258082738356212198904869570964371286902494710645999069456288812127171985402599602365776115426742786862489046055612545657789296053114923086171769757906044018309726549541561407490572397000826719092033689533337948779251332256438550014788015468507706525823795059870547417847086746267575377479698380876942216327794470628904316573104785636982792573728875604467666761078513949783009043933149885917256857419710000462007880687097715901700295173946460924515142029214715868688123453620632287388043702777966097292550485883530854816239969228308567736034163448484189327706439952582626624136158194889396242671739545915380321816309161382225838204286893635767899638678293695840604953230553091991771876823261966779735561545962571813841358452480590733018583970966730949943259123871510548735628288576327969117769246247214086536362395601968864963305323300822846874839603173973879257585411572829490396144909834124270261211230705226669329730888750462195287154315885806279562607976310586006814682259521476607431012069281914669625895185310335146125398861247538661198040398770610180790812042510860917443552634647204121143897716997802710608115490153093214010753494368580399442729634138716486719282046059075631717306240722769628403106760294808679381594090594301891808186690609125669843029906418859250389527210612732541844729349373816012856068267567876101193414953221361933859865530315046110308767120481338811849526309892075195061332782520972666253879882863821052276496948844760268461438509398200711333208481932232354574085065467942117935830529893084436230959338701437245905567746349286421966419913821503121181169347035208683743039089848435728395526611160850548868447705257473702047412525156867437846501016194744918533830027016020118934611052421952023148925221595057367529399112630150893365515404660131131900731358014890668650842061726554911598680730672641719941500794657116683510990116458298755487572503272614819116408813407080375712070382230803957494785780319190037773064758605260770614714511861092102568475566764998190838703320180349102181137805473366590206963436671847384039270939462261060329319843026689928647594866831072433965316686103845524080364366902350582677880895564145507685313459090280477309319224086840145173548144233403023032362558195951353863183554499023623521001194928867593987776408819825005579628466004007689194542808994989729135365464502346592108412374043293253443528655732674339597641408014026503665525741292606641680188658019807758286736672390251475868733903252030972849454223793666544470831103247551540566785796138241860292068187580543459778819877065106816122485804257011424842916724849724919096804287804232145437312653044417095969749417839606011559934915948733107480881686179170993338821416990893014952425719006041847392225457759924995162527877789142423358108748803013271392136505165453143490319539279002746674184286209953234880710910140284164932432500879481159291727082107818504304396653223298595001971856012135368592569526880105658487474699527527537332931725087010372316422176188046811753266624991310401790216678798931462098979289166217989756222679609283358270571079102666704048262630323889497009066379550656857380822845714034754629299382255877056903842493448872028322631025567926546482221440498509794373750561560299704277164715372877443009753034383406964008000234709611437497352758128781163491326066211729639629992462107264033593841584650269714579732119228584744022440417907604808147624084588782447194356027188514507956140351015984988915825238279211434530827745461368007572014739084896070140160460657714923289363284978302087405167036693301838707969462543706493586295746745160209836512061680976319020016460545216212131557148068810117648304941513671353379129697838689352974921221363032955958297256279065658864037689173493612791319609620363411414499813699041978534150272275978691814690955160840780669703922887675119969149336917294348519327826409870340779053028200834556605521884434810943343479265258736230630823727017897551419464445221731882269463446933017408292970133856498669066471107992402278420076336613394164044619585655800020381372631818028318969114872176453987112382499367212257711653991749064814731684926197011997972179959668486308845086714956155226254172665133321456306140735578021349460047353494706808682356906277783582012107002889461492225286526648982033296406353712202125869322360743944649436107642020739445806329398027782880247584391152216892631140179461407100564672926072359586797265333660470237336909733072689591402495417751940290748087263675811944218719586119143443787391964038939163402025253123109636373202121221232319977514633165817938307467058682004186684221360774057472801120627458588175353407297881896533521188441288726467658543475542367260593043699954883094467314943370648185912089834386806170922772729063690890241626274205012820248129525818573858612692226183052757361537369295130047256707357698034224363728858430970341109035815970113129384919946517063469242374254647818758116190144620195695785948814833823008497820015783841406107117856934202678657461916549514349197925858135315472669127702505580175719088401310092505976887505193391642721931012656497265275066294082487697799543148392118715305011487863724346736711353792541175841048961632666208466847661349694434449840843863390389025258977917303031304637561270428246565653870172782047289008179896401036359247971231191410308697165690054627536871971984512278797099532578848778686062577891693473545133707035553824184538010685912650080730596587311778866269018349536656306624328473703071196062087995976651348904353943687625519712407090704372126265472600770171767735011347134924383192668416700136884556798485358617249466804521782811937408311276534247901921357139839581445832718977914110497377018236075530628015654847611093663386702915371831883576425229400082486645808418078853299105084456007929430112507117027963588100057147162360625962195762534675319919719506435876100631269612624831017864326450765645664471570352542469629888738108363950036514182891698567993220130993927935859087325015681956795974052474495154389059647737327853552127207039989714909771636572348854190369806185165022530047893855795928029998016359533727303189375189048521808228708106950672983751773075611713718847581473854103340195358824399963360901590965705443504196059553391616476977516924682650553167115023078245848945149510559975583513881196946225195922366780675880052093139648365209374125566263003424772552564473245600368979775679948971686962921939029223603789488672746359354870030159056259362162146743870624761476161231271411943999492305905376115952822875385774860049159606693397153631303979733202887857836265724882718307998169431819850016422962422317596261558375683902912068642469669250938074178034369052046974159338594787329725818306451046586758002984833311704970455635683126501496187566357619802832006797207564916388544824196424259982053302214397340652212939352210500662799579006540892388003788755717605354687599874281086479429552028426224972144306434083176809646301960109360864399029167088626452242820358692376327981851464121030994362681467224597950346039000349716397482642783033255138850455802299248961969095170600766697745593587319660356372814250087179965121361505956160830193079599681434044359751032126477034910666834343983630973972890970145215078328744101012359348023065754085269357060192371865723725334290237004647561088471070572042028589985249788120833870306413729890161933520761990290414335239131097587401308034580479493251000084246942684529795340875851932802400352732550027522827751142547335851142412562539626234933214061961421264791432016735532093518698664856367082785854952723817883219088051438575045110532666880608310752693031160863932161835794336074452414656998844533411908499896714500420525295151602552333983841344112270157462617950411526802703129811097660404500065638920317066738932858499065171434172676072696065477162222129562444165051513137015767056167021853887037683978612290164933701982528287291776740576117078162607839074475281167015571052427836613888205158823051852977870172400557928034354879755348572393416422468621435830094654465415982097325833651055646883188802808114909447958489040065522607674698096802651892661095170408600300708833687838816992475975187824916367277999992319447147092177634517300438471942235990851830150975721746003853197880195583990936991297432177073043281766460492331298402632989881245688322482717215142402411823314916337724039567318288981010094986094767363668412541524512069476640660311164586687744733162500282756424968959928494675070248865368074745109985584270932308514966923077284330176385718525863862898771616328403241783921361485557889719935086850515782859497106751341508880962223542262770587558678780256205279480367983373279843975329574341589956377972962717112291373098029909257654791464037640791933067226564640770525413404645885494882003346308759933763986477476862022755492091500544956782244408252674879854119378054925622967783076977631734294247554038772767442794975235591950333513804905475069273119924054242791372061062771177016815251740517462671112851353172912525249548074319999523490388010585169224732846621389678252119928184382657005634576084343370066736005740305865913788701122341026930916304027962757479231239374379496269379137501847922979658061432050680655081396808019846580848589211041359278931474188383506346775844228165576227932259678678046875675596186606220320189245148021081877777013797050389421210766568579599400038668213511542278578440250196666933938254043785817424000661649355727361323426488219509341152684339164200089085346938072588001099783871975160542022202231035589226222899019465094098596957465617717832541824835340320923006948718741977362173141231552543240761376033544378493597542015723594137116584132931470862189269172522403012702529340649973968072025340095053091358861358618516147986854793877978226599092995223765541077222194091497331251863812749710375879726774419352630185501369693434056083549164756284940933066078269704859575944595733578905610875976659540691389539223064150678901175077079983151564052997667066749616525334427564622432639169780417814790623546545493772611969391750751004374487144950470594667520780330246407906556433187951433350198049592111607607878314872537495843142595860537395493950536694705964995026036294152856163532632494161580343313185349976077754692597098902250718677031117722562765172597604164481573641091621498973635307460462239108700373289554726464220764251537244107866713020449437275790638506523409585010954415189169672966945543229760022856896097821753891558773320959499188253582613152327462038024056611676177383046406540103784963193754015982567624518786340088768684197861702120672900235477377250044479229790166333231917983130104941722537439962482970559380841121591042505322698050730261468911805371998578862011847968853688709855328192211430822544925978128354195577001468101993294324445136318498337765460212640013751571574926469864741121155551456071671785618757930455173634412616217548325821108539914955070536398518772622227742649114892097329997128559631267978657454810343207986950357360811570456361069458555443121560660910488627856355346348153040972141568526501100069057649561056582379799287290210262368906396987395113225178891214945567687157813425481475293807438191329202014381534162963486293000141880926946302557104981622951751822394681297409064703084861315189827398600448756872984279901538681160508453931446069748324192545841777197645678886913171611720817024577608796909009994159810626766267192139967918448193047341817806331683908429308829285216011987697572179266305372370047127018059874982092676844266965031712158043483901519770530919274518226916752237555855675368550312621776153987202875995899529472659117776255330942438118729781727646403691986047333164508117133013034752725596460013691441186118144229099579881395056873881182696124849631068991592474055087464822197391329785054629434971687955557994972108929294063980086250354967704843671214582437951551396989065680516275717819281782407097119778261950447386709048570567229495974337546593679820890843489287270011293595298011611838168944367032216572692691734609297461820680967774463239675020690970656983712447426502597748831069825340344339019918334415073977196074180857485005614146031667637324306141989009451720743204157655535251518637983947575079447665011075796144144840082068262828632023705492634491788410295927270047563927216493315018328342652585133085815544678804836078212197492618463275355711587050732995728782157927764507568575217046490386089641158000190355293835108059214538963851490884300563225845978687400747438423999556205449858511146647172211469085623229166476766519107945767410423952129011075693339713918338657263208888424486210768392858953312639192521597835504091974736322141253354776024393169779585466742693821722260316639406437579057539754042509531587115770011907318695594348554259650701151083156295909015906068027844868644222405487839790269944766626092615229124695136934389786622364170309033288060479721559531953238408148175407491386020922673268434584096162627546885592241164946291624369244600896972713024235437972067674158012646905595808436552596798196282404159367048042500966065403652245548402368638565183711917355358078237689575025073245400417785834224343690413693014943300634655582377877257418269470939632528999429657874951809110691696286923949040710716049667875438852784263413770980534395526430330926966166643369208903760925794897426992286412855214769860377561257386103688031917129767983859209217788968466040499061696462310280185985148659287121308379404360666363917001435477867379662700061158050235612294360257927633448750719910622115103779191575040221413176422723119549431443271147527319421679674676262644394863493436920600753710648210471581028126430543056024833966035104278809778185621284174136356708641859747415414566198687105428223230979393170195831343122212705727053543735331045885192709453928052831634926512138373023052926278522939701518813171894268155777596554610215241109702415277510859824363158124139715077396785352680469326443261634474848137843879324720103526791727117508547173051306086435579158836045548523414331497180379200811238139411063663371177591271240820302771239748979154992090109282870116992772471577551916591179794921401695913669856446408856279669834296966889985100261540671108778382503206851326804049276794797803498174917954270213797485907972280579629514296834467664049279914671469443902395910237116390450162199213435766707938847551655823426458149311369718453677583030080273335314669958273812010160868298412253454885535959092800525762628944632565507517620429648882258039622090493353019771251235958922771288768534357800758524847369530843440686141188359981338596260775528853020894426630668583763660691884688560303320443009316058992912767136336051804238662300470017239298052465090279134813738602011784717058493511671951618892591397669613402620000563166204788321368955635346934209025633121931523092748058679592092425693479068146438453453905130708892203060647877931012373438685706883131723371463885228646059392734850415170407460150078511365166237129003932923503839088505321737628560616353339369558020201991094108732849973969353456668885946583467202908528861734698410814325192952085106403163707705772397148009958262248048034177117182548849330123835171356993329834263421666595054965316254971057977117707246722453182057736416112970786759700335698419969907190540767391363056090599358810298794010014988491800488830763218748682909392790372233218642698846850739131741480218403169136671515434050351517322413855426879649616266287884138819651940971486638501930083894373893092405549120049744393494024576101865597050963610325263704533862023518275158715698694633654029291107449295755973335043854323579547498504913313500184114839078501481601571800059929477643469937743873629539582718101702332277901585949698507177658877193852207428681646032686663202418973099496136307675086909099013237368653201837464110228154989876087578548613495763669486019768650056924533750471538969515960143722600261810942306864261157475523900710338675767721949338003082667814430031348789889781555549738432609218351513610967633779687181780877064149525099736604343960056625146221325462660261147486733463843680214989533738356444381734302411005454191858432277127723267274662027826519885633886161519518830755168219011753399946556152989148359826431254658039609230168318401053864047003586596185829794095277371761945141794807572593094657320647501246065446235667747426578978936986740744487468586802355352597421082595592921268800367076377602740701440348164125939458517964271224443593288767214168726574547492976400214629769270943893491863907817177895286156279186164047620150402844035798373417936526066504146440747747955838731991163534757762479990741905411270889689297379746595653090299785142453952652065438683952859590762722973743961000837538002725634820206971558766216573305126740211654169348608888774780495927995325882559773732440669162658099495232987355108108881295795748884000187031042373239065273513848492839657157114629100340995809241063379963987210443133008502774601727862475707913569918254864107214223223150872690359127556652542180203172443351092731738158469914050349813726122263682785559983256586256171832749368888540138518015053630289309276111451010227453022999532094559273916614021078657859416301269387360817520683042621249319940229234505643826052820931177574237280791911491290797088649268822363296925538679713420370905752188353457245988654874053787919257683274787804719902818740078501331813237523682657109442930149098911186319662962092651037074369329922734052551579971654599706169701586987887267422451330461563836840374876727654691279423362759565878946145885155939993289046621700196845385333752459716168818952411331563314978309498853409249896113519031712208272993279354727972095750227825372723625548981656049477494417969808458857925994764029485532769330892681932493746614075729419947434552284820839900708587583693211479324657466795046442305837242511774492867304272791707735149931481589933424101074131859768299341811708356052519897803412087128780126050506475746451343826325262871680283582433253032853934356229814155945286557568206039057032445842381585499812319255549117498800237800136496076111970749669067007912735613703541709918070015678024507737411557020459791952907680520433595945521213277523456212645150070094611191425574957993413122316906674626979954249083526404893991093477907243150762651689179266018670695130399377606288414053282433892453404913613240210862433283276685844944973560906089042076609880489522974840846942594071141339338826294230258771980457210752655149882112298544991869479410203957843540684441849220419328462393023942807215200109694746711804920791123703882743465857501979379737393281782739294891134261513993357642677847214927344476386057900324193445964898167684647716060891819870489718791147203633459047731004323576531265509230682254459359130310985532211656193392372743755976831751533946748603551284875258211028485869089516244730605638667594382208470915579071333617928299170313807705918519425127495027061581917111200215256421539892375590824395197611254000394811848107983247623978556973598300841858927014493763419829171572671335915777078302446505986827423062133015394877591743211358734954220971788804397409383720257017268585354675592874717468240407261733492723160828820148731771892182232338507378869252264656114618732830957911715166493685094542856662152225851540768118423141613974207774340416695534867524258629112579503690028273201269224908603258079045704627206141280368482270656200476597039929812503420167954485878604343604555545209440236119621684461770000898806133007880348944606129827340276861049954083135981179079863743459603998281142201400387125648215382646981698096417822881220775620607646743332060062196082508291178175670469853730715828422975815253654871497762762487112803312763592409337589971899519511244329950236795290865829362929335906480225905042415798109563477214133895772350391950125870445509472137951175402265328141580859257928046214981456041899888090541887176075185858986118426691786929016254629759408770608146387514580727307912266334754474712381318778081897513805488613130642931773221066713707138658904237281839392780855041679301881881662206418682387896736295106541142394376941857336759561148171153316666314575614501502719034804628471388580531288946180158294904187723751821382909070447613996375187159846731240682680995308472326996454443235331628885987470598006132093693971650691986965431007659343321431864306615414443399034883232683718314498516512290625578846965038621695902413996613536615612972008522368150476486944772448310226763896582798104190283541344398398322808872043116176491914919049108416283867765810442324083503880821976493487736118460451405843014324530397473593871682755350958241300661245085330519401531977606346044690050488893374271291764543985242194368109390018795354384834100194090524089536690862660672886323687304662149285048189215047798959565067745732319283629434575586122546114364875004176756307582395887301570863344547716280106847988685617834724454761362439711029934070405187460834156504375637366937201916958670386562360442600892652049695845272356300668634516092313696277950721738461384798293635469194646935261355068649050130833963795387341044100076596635607902020050105752463634313470221128174407769791991204871922616153999692779377344256104523511829466251600140688853181458080912635458772696366375919595444342098608822728705135294542700313045962305333918537788342651628405355457892873616364419894879532069258999926801129010993712030532843181232922395598817804568883465113324289888904260673894611586297705027245342719136221106439988711972777075787157495441554186115283937659721675878474746420681897958878572242856982364307526718390070018446268713379603224443309754730792556226462513618232829961428168037755506264755111601234607814155870552417985783728041679914530491884227104453748940694190919233792041263980422703855060316134522002790190994481315042499772307203367348363920561162002176890907692090262057428886287144365030717620994169635672683272211093391070970516558637378405779931364935547454784776197458095303576246679882357010983977558516617840037278868508783344673724019253535719218636865124660500638630834773377626212331194722621909573799939777531983525542411190832187550722457722810097931762503604118918910833662130491284865866477869311531567849558819352592651613750700655765651496283058466725676811476131301289641110243306473749065866020490246577334260939548089294505150353704907107268130612324176707645999936918088836861331340127416045325270013725837704091442000296795939528921787186931643226524914239283987253114122538356218164995006568912555603067442089716463035458868219611620281908065124425056112592088113747597371593954469528161859388628094337219784135039203501367117467031232473348972639381299218724890423841840163395655716414231541556055887718825235971060953335727858704182811019841713822285249978919051860737273539643699342414304047748999552599013545296894450547198276955414371155993080399480446693285345401949057053347283259575101496023298727001522802289304851377933695346952797738634034303238840979620955755783247185366542431995284178244582565770788792908885345950883109444419423261956145084005409734198084134728073269824315782401867526151752555166169366379439143515576948139102804823035431283286234629642908488703906371890500300136743799770504492266893231042757813323379191011202060739425473706361826073892465943168512956663911364838962759487171580199120551877084086144492087139978623323809228801193548732124400766032827569308617435900749823716525033859387553664406047302648611855718717982632086882338774362417287774031041514875049608115799999847323714783602750641405049037564005992152023104939741296393392176577310452272112576456194242501669881073989499340311071659262598261201478603294479409970942476651316158370780960040341301121624055871135909823640664115683277044472636673542653100587553328919515228778410996556089880989704272417455260595304334693876984674982508577015980453152592399399876658115990302774081719399957664365242313949609543322385629952384052499886880290249848668657307893299534485477796046625248715619917075942620389404260666856820358274453646897019037821244955891661042931254496087836604371268527243966892789583538648057586153250533645277902598995179059399475420928261906665992554330937235038799688810413653648604688375703915627096287574275365103645706064080021366406890837346142316533475443099939274039702934859074973645291150278503295995279792346506202730948805541860559333824865893600613001841875436240129350942488907420077844196791149751722550630670069786840681863559317952907296354508076212283172472125381209810591482453872794135909740668048878256985811617484572061502364055273361515949691962505006741094241702455637423761323771920917639540479288379342663650750986918918695151600756180354207082770065743282670738188869865940464199588753742865789836205477166107057690939363682569213020436169921973892339422443312127227022078600486528389649970498113399563549034461809674892832147698978846170203380914252665668370647342577685824081320100210491761274873783206592673019748865193463953129927474672610421059680413761767245303613255202818642549538666654309180818551970218103214918880204770919439906467618937561426415263355165210971122644469040823009067470308606285462308789209399836993492596844792874749198425770161482525223630156911321325854133452985042196334411182078613928484071968930401383655771507609203464321451114709687335469532978946473888794750501350748278740259074400409312238762950037406681806204359646275555097085456653374294679830526724294243051568215704937861037716563807360706727822356458877038412047402307683138415835777006293104878414745919788944993625393896477518163086787846296247312797964975974510198056336664160501593540037493016804742085493443882437727971431393177804507200778366412457731472039587874708508214361345839670264849583070609209011836691057664476629521632431064118183463061930131920175755483451894637052106397995783983511738772376326907910983127907668326599464500691068637190055980431813703545239752943176940978614853161635128378364877033221935390726433671277464982848745306060953293129265922601666032321335791627377209566155805009419365017481428312887520613446664110927900709255589903989050148655042160819741852834500859640442541886273130363691889339043204423712782053785530660304878626384570351718340625739364472541724769940969490544424989093751394867997086304896195850486293583218900139394330844682338324294795818493971113934205234649935581405402630832495909099309297266974721255770269182521695965006734562242729115968694623668676059745474229151674590597480844063267240426142786991146985927951742764019202799641373696954141662985797841251952177404615106595672833708335632661530010765187624566874514000611453283832711925465181685289720681134418719106129750390614692159329265560384042115505436620907274112857636952134557539216324572431880427840637180842029799345596031730400199060546882073595866314480878626904619722677783234029637467296871805241297824027128941023620035105555431676426134409932844861089209346486043694863683814189425102560806085988176398530111567057887507805016909244414481581999607387369254267524605044352224706113339133286431296394781389018002951411954011929232332957503003977344122682990428774577576698669822963231609541634216632598623385236972598937274327921271198295039726257216762421432568119527357554894369941146120437435977260634848077774372416798027754824927751491324484763200940062868073851419699962537497277085238501240823343860527634965648041600751337160931641577173245186661779070422037000593878087359491272780809314154889692668748052826328844113561311627304971556601506999807571225860627707793559779653081769520451066525484919916197623750134868370614405614273898998899233565496544111722545348711571215901900425226352372427096098163952387251870649484462153459730190736598232357221940068643679528258275424828977002401568869383087183807263938145053481898697006366521153892727130337598035124947258286084429301474267352048330273707309039724014447329300595026957602183634951876581452297176317034182561412042712835485219259433365386178762870235183514873737771176625751697081372900320779384281698659861064418586596187086062779201640691175884271475652770460861984635766534770509537734338478701637473530615633519764456700130855681288639716638873038234651353154641206543320337172506659653629934119947421108012281182514044030848307424146457301053957439574661521398226296212352602912533568716682217611707782621514105220344898563377217386988450530666647003244748686612807204582301349923846741577930138743077182945645891603487036545578166426969306592250009298269706036372886886815658142637219237585543391485808804622321182979874497506864577903892527271281280598051044438611908760224561847498606319015023248175682860181044925632475942414025586545520189332379913372533560517593724641985493737089008126421679755174808712291238594093107985660371176482911872369142166015841932613780075387207853232766448318122587722775114783728942558908237223499013681870971386008798445394653156228813398112971154425889355749425045986369174508406548304226728254920906956099558509946606328144354971008542342164310189794519112537470595031192243899211774603190952180666066067771649457905622672885599129829731216437205974323261866694120086783309759892386145350707444258735864703894596909784072202732891384073361220389306702902259977351658826974724797855595116369360512574042242812065500080761328894109768742704439835713800777730367277392868079236658502921537675098097964116595786385120100407915406816146749745367380846447032016066407521594805099538382738593899074697769659448793548723162622750999469637773535535742238778061547349699048326819700709863825203442620250782875508636793504093164652098149471891318180319341281998537637620649658480243217191671430401275835538129113038532236504500898521048051197355162430183871238941667952596723885414931363824456980440121675814743580432089690253486812750223552895184085793318532290810093923068130077375000141871634205539705048664080030080601650173386011851848487052183410282190802415469905484584654084888772887129830961839306397513352820674560962234809583749662638836176149171062688631483282877838678715466345710738642452979406801957062188416440535259516453139112142869772669717507873138221661392479848761867397328592806114858796034049468621400120553209142986216353497636441699332100311114405131851809370266189634301610723087564122495064767491868377406251191868033655537475955426138789654646285746807873305984181404308141801953614257925088165959129401128290102195318822715332740192486453785480296777711430865160621606999251398604407206997844794752624593147618311937512146047049549498124871173488201460619576485668988071289988647546574325852109968042282218804224203013334410685717742325436525475741785247342712894693609876935827915981992090169682978407571287180365950103935902501456819085746489388443695100789800298169248482111679447555343607327216731728442456304733341047023481554406733077969620566164458759192963206509648200340292071278809273896406112792597533448685204866278108988185875321606791944626695653926651132436670048969310484184650922251001892524541240818502957282800779456825833598809686139406895184870384443332130791552978091656667085483961250308065462977534709737335684037338831072043448860218464516660565147076426564575137952151894416577688826743535852096567154909313719867775093726448752061094713621699578278682587419425109325394154110998240446943086051692073442265815556215699946632723116109141727166076944861575822020474269372716626277799441508295557733013147782575759049099541360503787668143812438987828680137249234260089604036729104867134566066248798859839873836867389071939188602568954175410001065161339223309371224313153464272683932293263930081148341161724206894095234694391489639138512675291214553625092828911984533836974422572759837231146920232848354373806963001106697720593294325233029427741979628834212454376543432497387002677520899802574647890036311089541434952771011450304035876830752374944059509718480442404599661098494430097854524056773734232548801353682900062197600430447283157102267884918919148307521352509017925317614741354535166499381629845172350449728270269790788776509368678797670239542075857404120464401806569768475899261959454580664445746922782438201975742849012386959986203580336112908883462011105729673302099779480031208726025466842105604341548603883643607174268046259929273639277775484511560709380809768409181116944989414416852359841741044138972831984463503659087226504187844749087547402727261274864829647302379606788120966529354599914530999752580477767897701541102897410844564911513998111855695839259529390835009788937597275048495725008581329663648771490966486353286981089238600292977969048441002279647729141235203798286155850846007914853762114196424511623774809125693373802793852311167692502776581671869874337715612435465049184674830497042699944967351833416495826546379801337558134154709396341090250332536695910153858271811350540729689349519339934890797700962351602830218083411263889933880741075215296151453526937586311624092765948475161563102203748349032301013280611987100475931615144026702043568078731088363034285593170177459412955987357354067083684914783934412881246143516009819670839286031837050784749253366068368337053625963856876365960113438824115105058003485057145396265437489231395531372621448270725932625378858296273471291717418445714009022844735810175971401336785280637188029572858901760973377687126144707475150007643456725338088415471993910015449573843871306232019519073884448519759106688357104155994046183339279926053158248535053723573917730850612998563223861643489307127411260839414756396338993313889931988172687667635774376690037092880821167617994016356462340101746827374959336853322938071573204672819524738979791775732161723112424680084585631322121097924572360381733335424390724442519738522637585550254114312722778658733146361976818637969604150679014269120289599785054255588084708172012297939732814157484715990662086374367666765825561609184722514463269985235440442766948128367593053938308520438428459792928350790997460342589801783622352614378537740423093882368569485133608122650365499759171797849133263738412676016345368584784759021260189813887289995801922620951156187395590517990518438536683741351304975077601101300767804999946462957158094130300528313048569294713920834070630044360000623941049516443995949981709274576447741824143804544956632787983875954189197083051363039916940606717134420711575137357507670197151047047336331080775880554922711034840923306552530504571538578570629897954108961295188351577113071114375356542053574961186893107326510409642398743706114778680216964397403172249231182282692090995118187866597059558732480579125349838227349934561602462642256820089149750738651886070532146381346157186091599133029614094756501575748051984551643950874874087000529177072249531480042594154115653425391386228734408929676150769075864908225252909825623390814684456172101980961155864281025656959090152032318693040282593137321690744143789161373831014533123510583766121528318521796349455155686162954764631100953630763156836028579866379761780474479413855911339458025824168611346608496847285571241446451557532671997135362347500724975272197649341850150360960009244919931481997039323181169916240360525138188085072952727117774086783996590642357970316566994357061743907049021528962298298965996012793339008986638572028933989035597280360605615444004656976907249191776689229099906382760222779760604698802380384029787402626287408530389361123280507734056356171051286757449434364600299377779932453741892166943832156123658865637732922615319283408825598136507357420706781394037781566649025970298655898401247580733217463769478351873827674033783281738836898861053109881829589117045262707023328334014349427594242517444867178729342220801002174725174516255014806931489443445047668312813180769202920585314264765040965071559188378497261435220822976817292722652189615108936493460203408227075514880113631171069463936430271324066209749903240605287876091886860555308077081188627493584552960625670543587284231656022445983642501718142671950545141342611301439614672760995805639533163182191515046435286575412755438491078129382781655430134286384228010670341367157548939225651215007503657502338030097603644882526871863692409605461551527229486509139981500693626343243156560876008951436579087526767888198194192233301340478350393402369536402247240540819062791013212578697443538623069070792091166591773554098924720110236830197917092238467422024575069831393562404917005850067194657502614602042035810088603152498560726395582615012033255168072335162535509124505402264282879550016216880840908389527768654265917129921817712287615626019920378527670386119028297228177644470464591502208619426674655752463702319059376166857086346383666508596651899371696942993682140374458337502109329116393136448016451913922020446900456055921412192721891915612929980361144947955284443853909560063482595992299493583001245057360206874091763439861854384173584956953268948109939879025204971533529945254410761427926359026399231765521032328580649023112514424271422756289041853229166736363537534091204588538921948310313806786327716605694265830492569043316647651536198259776356181797211972903720023664018502597007298778951831859190451837964594500907582015255135917635521229843428605252121394204795983032781754214409113149720108818998475781948939911579172125555238058081917443235724139163637813374231480162725280788720136343551787805217257338149553525659706157802458887436529657882969971633353674955521966272858009156548046384562764792653403809154369569899519864315850989150447534841929130846349724512835170754309804960558200843850640731866867206752305391327293391841448506377759788723472535866713546480592185277281455871625196358890092972944148921893831107582411892453313144821594807720665794642797419081553180959629748986601725967922634352817867200653355595966667757505594376282349188243112608381055211929152693279047716085564089923194995017086306063123240226349100088230307387210798349181377844214334548074156087773202269585045926667381959702244987136298061661601337767036467836979437407414827532583257149281393178837011980329465134451729543864071516222889295655471246486788350191867039138276567143714221069401876386446171825105769073234578784766825177327341470982745354722573961298303914503015733340171586201504213306403260053966455754585494354846061176589532075839217466110959036623155199995407845681390218757726503218897927153188697428298668359327658144168430835000036780701926871930480654179881274834050585547002767310949953807650325153436699189895885626323896751408818939359256849463583386302594591734390614576362030773252904794096367561480928533687957458216774064669943168776434027374390902856750616644707742061657264685038605374858716936403845245741638735741467038915702610580808774244747121660129463573095066252764747409168525028106234529855037433394118793437713293758927766693221901701827753088370560006403570894919637605730360791590107879004778277602291338221587879092154016438007041301622931196363265507010577324086085850708352559662016950720165828400639943778539675169023962610957889036324618354236450548667053321392442929519822803189537489272224166548073353019921256991924690822214463604350609363206827359429636134936603788351147377935405410889779585086017655720111079300792299269548949335824870083242444525368596464747951120200573568427595433880740756723127211728955206854226293824835474293565951484692693308045124874011360763543809284757297964568559521943221019459477851846510384372797109934805246460267056600724205724907949944416504783507293812760195367551227982180523787781275215583238728448553010683604297549436203356541623751175310354520306232426247556442144319160062976500660572035526970256908814582852912941985636881999772388159582609315068251799037647496787556125883254169737323631119402060127512866453014273690950411891454133559278188815558817026128467983693982233455846924261071505699599345684375328944819165884244419302051262774645712436114690462590004068001777994998316047671231368462179325046252223381491016007073235846702348338765177170404298838758946875341683260967591446556779955557685666128583418959224036345318733982209636240884626113284709630938464637740554106137246633431970282091625842024443814922761754241955576175408901720195773551399161810544057056262415822493376472307248881720983362851774137961952524893454646908671753354613300550389298796511153943730970025299386291228871294497411409258582136836910715782603972837850337700838588039533043652693020823893045860549259571640840964003266941484928356659180767938372985787453116990804819612729850050580014365811345264584551753581934381918388834913445138463674746896413190979709050308909254521652071587491919127826556939684170756375673968554846619932559690875364127240907639371715153223215904380146131989512865808026993242860521787193927326976907006298592115114993317479381309350381805620257286929785907829958242670223516156856273126917930230802776912275402481776804587787574502328094985192855831285869682477772180184137492339678421649118651871599357369706405873477308627712983857534434098742340834133004034712357085792186409425819511612930031523253500834848641259242129106237103589426509556009295885612145550979945371996006704495190379976105758438388536483133535228865119849894632535429281260893228730491781528777879227388002641551578585936120209423990967925677449853511478297225797971245870663831078505074557344475033511733981052673335855856518628513432935568336282896974599026095096273361730665190538600449618772474573039440627230690042480001256220947937352366177171592931226646157595439521250548234994973834304436830439755798082480270413305776204647193595408124502672804636423777231674385413958666867326558067633580970158698957649745423704179239700692118988921672894951451467067986425645270655494724194308741715583827254658700832138712174259284758794939716303258340706279689878950090074459852214712353381876718220799587623017694567305480386117803172506471067253953459686565336343520483336806029832534248578068872806204601606970570684260158439561073075606041240654661179408313162448368761293094060053536907596136041046084362390628356202085808848348731818533163171371989472465485274189279388235092174577147709774077290899682898757376792674828124069289383149874270263492724122646996346370454481909763871042153206073223497427727668656249527179600078053218947734306279362532754625653202830361286742501594290401764201085921613060988748866970436297858157760886320848936337658907055888485197598041500134437080504009057651382486786828064821539525663569707684005845581943353563088843367873742266091688471889442200238787536328743015883830493702253304361959960577564117018314977128770653720613721699113212816160120277887683622807795145359978392017550197950055582678242695666473889540206342701891953697736252006564105172048470704648010645563593388074979193345359758188458843976186939325790403233929735842750630270191932109784439343959943662605162219801265952564724720169752244552209936617907653973299148095309552034094986006401597703360016438520758173229514154228365178423640566185821293329680195470829064346650323382722899088296135243698862125806503676916543666352795302129171464057407085456044884332868064672920076632653267109711862548383840899279268850229434332842595920748777256434010402485855642951575639895149415184282602043340505370903376553084778218084342665146905627243167663724625559277712322501008668431200660357027592473309624966797409228568748661438826177241831438443786547832987218310324508820034561964079317797891282776710122600836486257290448515513650151817324109785961307945489065086047417181810736592902337794511125928849236465856929546610557838836021449398578059764102222229197406605719870626123088326856851702452947253229228124347892479390827199227727503473600367155698447238040637837643658945055069176653379226640327318133779137543054369080649780663283107345423873847204377897132286170636160003688070562504118045779792517437528573581087677154664242009351700915981716792034517363076706793333683431262863251760699987214123937552585365314033740173748789413023717273083434874085526386294380771566130943894385209302086405049379072317305471147118823097486895385185869390906276116226318757510437009805738480947378798123803545581927834967912186188621730237918961496696388215380917747871562558708681065713768385543841733932199382196773034759151014238521048374155518434474232952625605413883926832659560870189536981087714288595895482627861307893155446819343120658437523654838870165293466991792674284164367758782122744690771494537215044353237385326102782925693815208862824660638535076816441813508438359507670834190805194281954595707229068630001952968016798287536511577355044443747406455216662082305890078107304998757202471348990807639313940490752913034369218657581196970735349986191930430602457893550008790902960291864451093392302814990170569053619368801294817923768978736179576943070168210695027572194208134761416913900576229003757550259299719238632596173599156156827376926576489195517827836319611892852282879678548165266550316434924198790761625492961845531231865390755875983498583605473776802741470245485786495188887885518766215645184985123477785614650046353448027314884489867231442307205491134904588974513645614704121724174112258900518669620603453032672006391826983696867828648916196173595495967827341287241064800448910442634182472006669418201895168059756356486350648018469212638871861895476760969834950314361834635936955080232059929261096478291982967055682929227667455336648400653045595233378542847779126475537376862008825364815803394489013208865063174096510406772990519897806122029041009995375856254597714604287433246065758935566351192070069349717427135652005528531756301325089762023786909368290485502789410137072809728953757197385456397934584311723672419216930287451250325101589882348208295612747846990532476906581964916051946073217234649551284639609752497302740882842576833879115134610708046544668979729960005219480329504445825219227090038428473473150784556148374631438323408375623475078628840230347637164508957236974204774520060506510564547818135474213432829888615146626044706367934312504847084653071662279698047076166010107135582804171550904466970318213613980521195898045311449214371474843658094081827565545448752990739217853858904217017482794933971653014469169279309451340303453620345189443670579747419117914043662132222612538570377091125042942679353895122536248274079020913240839512838348538312748782142583013328745996072969740249055790796986259464036907769994635054570554329752230662740540837419896357747295009921924774725655105553174271188539389118782562837289615726412926202574083093817338995942894171338987573472587481941504133138966931040346157736660206744875126317818357499689739708547414423224326085055162728164673937151811015272048772827618308551753037821101360676336414148150937832250168719502992325640930669785275199887832898226117118931130527108765663942948098330554938954477413943945517188867937920883445144583071758507139939959884261924795284774644003463719169465253120099016663478304390686896159453579548368477444797147511413721070078151702523728883703055514036322701873465131069511927422882791155872978581020062154549367958604818927209137234542175228621026472489880190115976497354801485704782956624497329502389465020234585128697479942829608143236598773165143569356201369049173315029641947584614281715219790047473374891210827746786365010007403484949209763416141319434181496845757710497624562191203719265142177383406637356981560533417997555481560891197406493734815012955315584731645383418645636388019029354752119311039058002040281667469714248491615359845129315362778066348804234540725498860636002955966120129160618203802727816611877863464315960179984264612896537123867219721509499889978627960863918423252041129429905663422052178019423094569853479208495331938906707250117969367103804359433076083844831214431572705095872753730794452971919601254619609668178668020536910333908902954289211903090137601723737334701048351376021526201184728886644842993713874702589676141462847131279166121856122421944782722655931288740174117123251697637076874239441842501911646390092628639472847570178135651005521568434045720405309666186358990645970453460391224394885457689921674892844136070620013706022594046760703141832504685289763456100666273695388058690483275443219714277505727432194086421025209345100651097265907538880787735998093923657141139005919374029763691426340516794189796250151414073167241546482289168032079195513602511897632552974193613526224973254528479121991204660538865824969921449054723059362993387036844623359440678082697590213985805358625633978163722999269092020702282088728465923013036285587581871405783079428747919184403262561672267945137544741695372048744668215827952717687443710053612908884761445002168416738722415926077212843578459957303805307162293411405965593153255611708777673952653864212722858920308128923440188863486527894569436633095628722679832101640789823689597689040202574615929256415593610815239285366544081679924540194959956491231160177666084501799843725105257467550661502425692702137707934303548075323305308245874178254642325454664669839779558192895470057192788008817661220142483546488947214158601354700130190891038765614482674264555705099186720366997076389694846744004482277705498980873911794519859845175430661229746740108721755237382458810490644150206269026970871958139776563120465188788493491339307214373472316779723464123369971201358145991588614562191472076118769867542719217473403535024846446501866104586944583052077967213098684225686612635920240721071711725389310629444408566328040081801195501467264291014508062499831390490798425859340309660525494585942837515455509611783547085952862671342714677564234942101717791957172404736199813888466807424023794605225597505268346077294219412929517467877742588884970474051508669007522586264334992734186005466381366067954637723552510904347084310368223176702937051499280213073472186259979040049168073100517059179038266641195264138260592418564348574318539288527364630191805623693589406235277454441576869697096397989017941814331784718597024267521687713007062324558525843040846180021963171382558306372487469814489718510700509831020815819189485265907022853245342104625211728869384292095833427969283834377227668617370152496307348884270938089962270766551542355106074180722526383722266563324827710590789658479978711691281988517085775789393630535349122723619322994591657129599461494609138345499244759079769407101090095399642594216632819974841987169492980825552279988341108818882779253119853197924046280909697217121426896644743195455023807837000693964523732876832622308034124233199019634712031870512155123234808349465553595157468783060182867821222132164537858056181420019420529882647273128905816614399682453132548670469358247463329643504614787091209478375934940113156138631119140656757606551532769251839506125681868922505762984644524468424814099412148055664299024084572018530454452194123468560322734314624543511214574131172616022654932155770969726778680412603734763759909041376591432374204933339900310037619036919111601180086236820943987685019595815191030740736007284071077589880555489060511693201499275830118178135007834094654141584387663269379133434211783482008448995764214140666825457713553252829867603587059237360722571998082794138823609997665657085694912566752539599135575363594456633868063829725557414841558940051055876299475456335861110794508813474953720193474023914507464396748234287639341488056244195208174508275726020070753186781436567993060285876989253805140323495599168973119859421258200281792040749229987026029737963564072878896307736257543054624234835799673521398644163511989385523173699953207738607501262509732882770846889448465361222688435825939673527294359231736064783509109292376518183941201578456692029175976431464630103981315104196075870572388518164663739095171022190593582202414842873584546226324173995703924947269201483039391559366959343662002727184810974401995572923085378485262221103552137411304720812203076882068861338129245855581226967192650290635145057662682285570879255762694717044384108272233012505628251665293795499657329056693156287685340687233313229525435776539848208464910454953092622324243536322742876321431581933214185006490883433775236633146810063498331799060811078139396146207468156021516575063583748172281650928553149047385128999885769658232437044183987457413455971048129129367038445969891999055006841011974259572758552152118871830691345977774194791079380413166999364787943356416590594343308396039719216639338284101403014104085466753767159338283461317673886685792550157933993613114251185438801099784913951840466542704298309489757283875312663453346651536386190005145268029505421115194786795286546340071205281997162389117285543137716816401803292328343768422236055100374444766424834810742420774347810472705715075343257485440080698384814393699742726326788181098097330294631145827439809217713207806614974840834242521648380221745952033658154112556797898996471973816571863478555723979565455015981019363791962037674486963417343312285761383124413538937753574611189850535383990150178502567373282983636604626253785884156487701688938916496755988440357857745136277084364200181106505917424045742276315786085840082644652897994602376584690427440570948392480600493357343775839938767142414965544637536069585815212030910060890294348537588571418867112033917651931455747898343479864189314770674827964460804272277768460093716663758413457874855999969774122150901589687239732686531951956722486377983432327553507720262058484540885870314703109928976406740839072344254599117091803812931180500177321694653014130459964959011684134050529227327217723110586599595423200786145756253586347912171040415709107583739135072754660299144875086156377025217331292973019483887544258454363923455322912045327867271993157177095561082210014208199396661934240550564943327941716101877711660829782023966382687419088306074483990400287721496885657940641557526521261829831844714788485181899606349897593264425373749192524917859580935028548740519903987007603096350318288929143963789011852230773460229694726579236001516041873724912145990099002850986163267676129050456145873031775461640445322529406578817418078521090619892536245906704307179477559258992316247632770037463220870083133307151189156521007047782416316557555408238363557724006798535764297492626436288989687550529655875407832389103649564637845336003726914038190328251429304050367782814185681860248985034492001274221129484127654183347552702741792066736490739143748952549763080904629023557796801486613122800934831985736145568307710433853977254487193940807634709833921362604439575480765667588419385126473479033625228895770220236696331477274348234259701379082941501196372340567075242762021636541102083639967543367458625220613434471294951820845176582071916498447997449516257171122454038452700139580708714245229876014789574332572911966854678417710727854949629927165978472479329868940157416004975153631829962508753502644104526631850621845512509968238906594794506818593862794877412675789486094755003692106150822834300436764346377205094882422324761762977223410960562348237091557700565300234740892667651360675514519500193966812260028252024713386547489314958812509499900617476318651756508787575451575123467052280802546260847941389728691356978646342361974386228241207423097985449190624623841508474455047274791296858459901452866894028356630458883647930163802597854989159228496029306696668877307562563211799173776670577141273949338316822174040953666585285244480739020251272161631686595422929367072138455525892664125418859624286339821138891526533544787920324090178891066861720105260426493007180970696991696483202129232541871366294073959420060801528431116568907616664303591121254032155131771213946444685387215885437059049234532948784376373937365932034088736600332924137869250097621129149887259094554778393062646337114191138261790550176568384604648554111629642512446704236724081981713033556271228922855078185448026138292712930949279104403088453824861218101100271322908953877590407515048491874059909226661731803039952714561141337075866834332892963615567626481311287431938894455132719879766853717710352973482687159613661218903249623654079454117335178807690941287981556015591908256976572033919501236474064277847552678109851849273993419214437159619826133165036818667822782380768325191491909477278340437067243702221380207287373742780892738100936720559504251004885733745337548476461383824486109520891174372540833291180146738315046449267329514176644144168535972266125226223585000566665496845803657242641654891639045548557278296069092850446150430922735068246194988026941931186352818873834199381484378609503605558666682160854686140792289619662580866095838984961204346676396145451861016641641722615832334641086835132242399632463621451704849238449145968845191099680188311260614659039100952019274257580586795029588896612092478448328960819502826326319611220288583024563096612590242978404877060032019020128759565088507490860460057071752459416526200398972801882080174571749719700771846055957850039034433099225479859831145056204849133066631120419878973232948757703492390373288326680524480368858099879632988461346541128392659840012597892982813613570726914478280762178323250592043542360270267084921331290412787954007235266478053225205321487377901333183791492898776892860054051273546181710322582436206685961991594102043491290591156710787716416323367983460512013582846478947130337394842088635046129824370113760576553189858971689181824627280556694721135240426162293865829048327579523425963152220942264788451789544993402263315596679445060208288960831203696813516312973217839798735796232754683901803587435156251611554416885338027459211810987284910936885742152547611710201884330699871611742456621616735098459200145045548406730942060478240225634185110301968467951986773667692711194490434202891029644414776401261443466396186755592256352968291656334180345920487750351054224857293498308442134049428914904081833933118032325217108107288368642484053568018160478416061634522942002833813359199489871968766147699434539545522249594051042960276351259449427304979083743558462149281041138659059934544355843526085529411660091740852225853179344523067216970458524094078062256546712613811190507947937587768662143947054205207699411885566014246784956646976230476484268166845929404255743213528454660339940134712202395479553086506405437864812435688680883508692563041503097253804870288162244094165636786033026785410441759983836708788689995437260428347721234164266902166715629230068349494734228945827121901033019555979585944206461948089442201316450256240824037942388611954360647041228284113733998416848521970322052495080241046178977422306034808756980671133599387384635285113602481786469167928868132527266891660405178290300390687109843398231695349258893977601616574409188444135484967020172152020919558829837575243788587731958497797572717315621710647486745063156457279400130197098106385917242896855773511499152884378120298766997999317968002012049752672279065616886748776724874596879261758335432902665239974203956254133977303474479645774641130727046790323469247930009994181912030961418542788811505935982204998853243729846831181628038043145704206029904443616562459578683798139568164323907470108443359082472343180767489348532410227256084582704517962792985915683103084939538699612522170975353467332227416826426959433134780633647894906304415165008958323326706296730280212117149117039081039181394111976447315169960874093973773136151497281350284269111161287112726820338298227379934499948298472456295644469376012721632525823634274482209924166543613261906280334390338721994484568737615850805002943610349011859025510429206610010302919746416982593689753098428146554370110728784490470217218306733968323930508351010269512284747567897660676207218183861283596836107718053443314448742023016075816348764644842576971752366481636851593622010340045026523332997244084127900517678178814825635259506551478355564637690122882670628991739891667972172676931443089133604284044208955384534364397049754683800278181955947829496392510486379721239786472997473514943486699722475123714087030935079974932681569023692022559860213933975589238343612937693348308815186089969499299745911048591193708970700212701138893527701394859198483118349455512053087716765919423091388183334078650081954758470370532441583783409845270300199032237501417492838542788956858336445851982880303535761423328668050274239472363439349426055843905281769788119159988514869359322560197666359260043818679832844104662873526600687678239277250341072068953323706237476292911000513967146924490913869158072150914594657149320150166342246946044316140591756115147362329792506797134106291290278982540285586777099360868330037752406401490074812346723616802104882323533854159279057738323476266155807416833460517831090163878758521268370424047439991168821557524976524481210911718733900882561733944630697721254028803721543015054811404396163625627493508496467129099312065086500587586947442426175242405509970218490938140663616950606004868016648536667638207063984197961590449654279450875870227009631231423516584582409617474343587101390456489054368529042706531681211666798631090123574756836992505797964201378357276592641279722131051498052356689507701011518691232609123020827218101443653686543785110781656954261918816955373187328372043602537988284900372634022164263865470305253682331142206321803235515859333077146440725394342161663399193397464247529876048539764023195191705841415727008869373741240848279781514186277338022281071829711610117763222521162705950779798794454096617528712549264226061747647762351639918296841412313311055602577879158217252169570755857147747178055560163074801878487348737785876253474765180927250888599272085816523916175513025927140995932170484845069060970317672354707478472368011528239641278853491766680494011411322092042331929991092209893127371645009841874476506870086892893287563831945089980182946468961441507019708874227874565181056715199831072467513051913427633450025969686084629083544901698995252067214236886689307700654063904477687971787996443085900107614913119163861468981885373631959925535093593366814530584634011278075974780658087278453496631496605505729174811124850643007941368676185243452377621716770506512576784983437221545275476801252958281532057927354374599991363525113627274294372352600139274085523667651561815773107436476854190880476976400757858183022800678160621250769824944290647581230380869995503088839996417386127666491280075593481426278839050665875684132343322452048804973489576134030698543608888443918026533195697830960260748910278536022028024058725344372668158547887999733792924130564824587013729659596305706391543768637397905570293717334558972655392067019019262752271332474166305706156749910018497107791244535331091632245703410528385655505214548557507248980358287764683070760458311781651493930403780852197891140847867376259666589923618478223602478183504165400095962171801918238673573622471955454099871055539662819077524325431731575819676513115382431626810148503179793203632023504016926704033464298452473783780511128972391164481362440602328724413147217816053234220943325431143101827701175403522547026460385063238533588180995101787759717343977497608305831002457783146736330375552437818187439795098148808570375832204120385155717545378295278967756319315625538641080257773575428285381526790380440363557765015046415718378779310185172358111166561992744841314294563545453337266423168269623397506981456232094869534450897105358269204816431115852231755376046768537693999609871142160569157741760779974471131549709081468834409236093309540366742824793128014211081163078311832617609568492970312145801901058642802610457047526412360659134773218082991118600974131806191665911229732741807578020003268169867914576265083690874347427701482979143654128880723279530075867433740908616885240619308192583580707552721209047391966979229792825102973828776120777704897161727291209192903821993662666965798455453113993706186159870236960858174569702129391986132901754377505362301659656505974963620139652964401565993492073663493174601064461170683665191403889682121280693265888399208912473952184137647733126598296062620085719844402967521406376213010622241851330728545923947592397968373891181220123325201604737336777719996025511038026863509769634656297311097503829376223810839859587226194066757291797519920517083197647740206591643002055676321219757718001118782591425563345405097218093522521090744384549529327014848415670418559025496718143615840182209293195079648348622718960649487013808623487372604714164975948925112257870699972624246457411900152930895777647931410172129391743680394369969557065604042715050161274848912561467097549818815288582493718801976645915368483891922866553362951629429743001017289088879303583205313252275782380622521563354576362411177499160614693081679216826345056053721275903966417789925530815656423577794947146993832218398444822424548377156293961080805667022889741152830174162209612439887450326887825077197319729147198605663027962594353292088466067143187725921747057133719882880834332185177322288768819185303082412065469681594448622849906914112879616262560805726245016382992356928619786695792087529790332647965292143548125155416911915313432709574618049073855342400205597503331476608912731139715307941268406626348376738445881167215870169970387791653148841388122833086924644670713883719225169292228989905471143516960732573187816712242896717437271088639849127205752188691902618176889539202119176552487639092220226757714087233533048237036008616612954526898160912511164402697380538839353087771204632719818834678350755920990844105534067385227562182337914725634531079110752788672822499202645606747800579536092204966082758445907736709711999843313257100842265834302921334682883629533182451838489463537864107861329572387248302555138495723481008501701804125004468313950379405505136505972543452942651699289934117144694310393208410759521217749163848537581292914092583285896931639717210438434921457024345998514465673660333577687172032622465668144515584910947401604845654365336349949311864847606894088884978042184086958079546788723026975999686605045902615414737514987503228911436513473536738155285919783531567255545622370244542411433286586848408646753635051390545282840297119357420225191794163909551185015214814296554727297156692842091309136376405500549069840276925750462342354706509802409231378962525321788921164800617534616695420721673195470417567430156990061447583526844950342217393972627682401127926339054280751305475298320893317679999149693304114860375561951452575208270759669715423801820668688799319267008849737592168610995502648722118955776376779937395863121344653431977294668596780978767128455123450908157229170270145268133424335310135174848635638211541280351994945445368629344999507535098453907000118556609848176518771668958099627119483322638792588856670349045960762649032287430155227571546948593535724139158687678718858268120714504694856324002768923806618518046544551151724251130389364843151399783911422639504729583554288305683028233822313717068550761549205326723136684725193245488432970115006320657436486312973279018119691862503660947661634701844690487286707439701496166807416001625281660102372452283054517268812321524385217304937966486369056284030791851448732777649137162868689897081372664008733946386046184060349841218791758276508397554940821209491735070193755410899244686155543162750952660759742132318515152603039362225603458529519280403039342769442338891607795500056721852228865821624256386357530080300670360999578550766373022192650544880577265656135850524727999714068500240319537585391219442670080375055562213216169803477611347008748800308912618490916924888972199593374968902404950746803357970399215705679337960803625796548855175023043357222586957683385761112065980121910076163911123476114559985147163627469845779421639521812617291747601341053471724057231413204510586993951723856020050087027565523113305638205265634815432240894459157552073752013527194712539319002555988218102810151733243752568523384841928783725262435919382294776312674399611652434283754324133911030777935161008552452674866585153340338281587025449928306324528449049242391532969184509215805895935025135791029085250559510242878953435935489783841754430273525855411085866533731753258093289070142184252648837994586350693336882774035302492572445779253665845485819839271663398310261849661565371444099040393353437958879421854429100863568892671040428242278126202586004540751950009345971226170840477554073965431162202159196106424048543125126471390720327675287604890895906471424832119990582624593468590206931972908397390201067811702321763971208744499094880200485282306821873582681630626046077859313471047137056058147636619822681887546404403836656641131924022920706073761742558715158649629863111221823179265576163732811934150786590961460027487334329040987303172234637419569046661952851716684362872205440694132955834732481723509420637103725454929696787642553421835921658717948134817613680219964415823687107631725212588878158624829761551057492278487554667596848531932707214705852397768107741986825276786609379977565030978055620107004189744774471178738433010285213663285385866627126658470916651944271568440426613343060202236304844529081964650893492067689318278195461695292179871021865868489653963326992740875633171310490978780527022439895475122267870934900546657251775686070748879540533873193141665065750861798781729672389290990140563608095159948877729759044591477239335447897992691488823293293721937614648504112959884644829663557012410481698505650294820152232786871384404248065218995085420908560639602968900283697088952254041542404552193240198153513929888848030928744254736303753346018026232610015872010734928986499805559165592042258770949809568380390949761027040914442313040346834356794158094724126829505389552946277178930356355741101820127560494473757574238749547887466103370620423181764811402659080817288629069332321758073860263144302373152718792812329613163526636436625705582496821797258889463998176845847931522183243972710674303016878782099831110178511660511787855166947143433988534922259103533628125603096023085597840059048872089697639431668275017705664340005880287279260729753399628375598658522116061697782916317141232660436817779620922992353247836148384032991224840732076588386529938198287948155936302242678436393299507143908221825079310548549746653455759361182913346388001706789415208893371382111356626966900667540854595800719389524813367769429577581570129431225530001519385692353720637664350520483877621497120135231947119812043033489133364195598946829780934311010240678896984831694605063032109484951646030769183111060095437990596104734928291561437008155176960231476183917641147820625367197028343946383216886363169913423994238894375921503213630567850082103044114607543993474405071785033146307063470841396226249781818946601297570079453470585037614526116216595620089029690742480828491403245502770118103795362079055716807986167753882163330697411387538435762921355369461530405971430227854904062230015471023778161936865045777410440048671708620840202414033606687674967918695061610274639224362780153890576385233025405161154130300434376581347676513538501529890272401842246639178215568165930374568141384659698104118313017455013485440309633380759120110895044114425744882610768745811583766450028218032390594410401323431174090185431995931005141699222779223265065380374112915168010189390228551460337590539067981185086734165141691584046283017859345112354995957934328463681689845488114628365366522156389846486782060172360666385170069009977674856921586753071256180222406714534802760414629785988832545152836816903791370187112681093023777184209792142959081491484502111764198698317572975393057169862266196929587199142147744638524628385071344324854505038492065083124432075916812998682087523572743891686678811236192014661197049664350556529729412941027072906795513027870496276342901118082078857614979107699977197755381447776021053785940061226158416615814752676733293438407988056797732036841627177309649703661809891881718341544624285597608102182646279818902989710574830557336805779241669312205707379463633067773338707874173166796963022334644745961446842032677915877645947015743362918992994605698065358020612895515004066576190013766149144367823847264397429911984708196355628449603551598675742674100529024574102772096274611417068051352842952819913233161497412991916979155576628973904028740148792993913064918502170360313825903710250365130989471409283391924142278961901120780908071986265915700818044769395755036084738544180214073592635623115088293221698228273222560859897314572000553772610837957595928315523379831977486992003379345006978896354045558510405398394637054476472577354682094668213951598098688540232797522514734809578919617007175166060651670651286670078296394014757750376048156570978296278535771440705132221897444743015427541640872228802384754713359198597480176070185632861436445612047028461811772422715808072246081213656392013616723872051730209104145935733677669751826763555731335941211605266126737452837593461182181560910294961460548006936080624556403686197921234732121163434845654474619222997012747087576694389978561569671234006193618793631476964925426071524693514518432164367463007259472566711861336027083382196872073663437578848107384042138940552125326330302668946512926272809272304302319253133474153725958233065410087020179160823888074861595420840702848110797134292161769288186960538135201412107419476946245954065853376763896614262293566265027295825801170154608343714454973227670186512546694352269338989139944851798030131799779610406695724284230024270505418040652270063479567963985875289395564860837639104195795375868645178207852267793930508844296069503163579734171754052446013297277814116023612994979890654825007315500967935320740804640260105285901407610166923139026221826803092919569109607335297954054877605515251829964881337547115005048695144009883773662437503407821394617481614799029106789065031572854776692361849192077927579306574268329058996987259066831225452219376760688150671736666470448886022725811474676581221297776854945258465572656863157463949847007790517976657597751200666422094655966654790911809475580399867651968876912527688975978115406381156510718971298565334330139450957019929289194382136434403272758437588667229151443535199884295652019634463534145350662407189211525223578387547392931605645353609629676270925160787292030351103742620020656340721907475236153861824125287607296808927665114291647013049122081047625561356463620006846472083810757627720058322121325404132386771350562598625200893451245586839140242345545483451661918580413393072458211718206322074083040382934697112424943728724857872262510422184609910244769910175492584431362671842517753700597129529474156660890688518220123521458212820011922158710705211104325761828775395215858349767701059157274762607079603386896464794227075808846592226242167561704592494894815073917116115357508854377273266387589049718893346576965709948275393986295377630633903123576353114067478632512780558892867580333363090761622891663455893262244666306006346451207745412802145726275841766445666376727404329485218677754409364998926333950262038862983658412056671379834578495684490633822651587747062447058806494683376329692584793733796491754216844310475078755668099335381806095861912592679438664546853159449051690325897081293348849768400637324900984211409067914956320095493643653421867250114121968138269838027974201190146329875305527213247014601469151546524670496004630082043902017843611521899793220530956564328477183779247995111887562187690943080588474205072779524360974288641567107838937292114485583858266404801424104199079202790811061766833602273804464472319826420383253355228662883618950494770179747897172348014512457971804789950075642281805862928994704110941538093188295344764500599316179701301156659581082922822124348885499747404767152743315951418405019291858277187630145953407595023830966295621415248451220246884842345720643886990110088489179126130723938408054734267657143516726172398181017062042958379619647427870698369953129686012253259667212608254691429826566150427625888920343106585105168849743754628287952117419594111372840424350822926004802321169653219530483809165918954259548829180629429318229157432843700739507005677417481346965930491769492420886346817864877663348499078980282675422393253423778897189043845701092573720749506303657111377840529368918436115226227113453757022682615453172408176852115915154356791451321874180918407349915115933650687005457589764932510968752615896901653642061203593307078578167063023466905786268135173039588044165838602107924981872451263257160563679809899751604339423567916107563007644684253515115316109047863783278915048590383924997445427811700419474835135122979073901911804260189510460240036238292736468086084727876525809289442322558209673821805131725040991127916465552472753886518459725499634152456722021232716158465033693697615449329196862782892248429521307369867684597819361819273348208110061935853899119998846003423851239338326455271729942308831436344729398133244541311279015362362712860225140702259680493648932754076113120437138512830248875684737451281856970046841495521280385661620706494425824113623246493375630635728069206691337901657044152288518448841697974159517313711118575228480498167376406173945481485283618704528081162714096128450614677471272547399657294530811292464989440203585038729322959267237532758963244351410529269321697213629052095837302255830059489030935006110573879585875896479761420336716834844365165875530936473114999301013423162241628489711778200610456151263482628661098147797861093459616625828599299597932649812192974252072317891508416817412192347229398682771303455777980740923674018381640184427651281086561250124891641746838693474740740340608826586649704665783536415422957846174115471611732381197764410973327115930836397877403187087590442105439751703661484638150056253246958232266180614099395794598171687246629944679981069373269463583530369149947552144654754668061441161044051505058359222909894760425611327757661040573733236673853257546402004439092111663370443970499576581626910677421061073486711373129438018789534542009930137224084062279616244399951550902556344333511650734229289418117781140580006577837962651012039094464275798959523326517947928033184004399327021569600397862610692725106610458494935590456391771434551272870477054854364113803352776013958818392731102899029551291057636510770610214438121309162433248960627074805078329246867081747942991478170557821852295539968019291408578769382553778955957892996569110449466624868108065541585553502221317773144722677410277019430783037456715319251285481209838767064062420624383281635539153586255360154365225291724534566788171109132823465733631769503143489661198531371604693153564771914462210403836695471924377752460171235264471090208575268021076708722376400436831092148818182225737781894568885124187106211091955970819513280972095499754882025268588008584603885702519364144679684980270972101857673318949765002925042852958709877915982155987441433503932321911624510793670776272805134714523912354884151994208029767181262217148830143425524629303745434243038914813808374681064812669089943149634628453784287177424701019791898013881309116665704468582487346488098890890900287367221786741935209182023592157678162223243174651622209762745293683164154796056884721030986114378275672171886166803286777560957632259028598917680371428237413513764538385979066962063284299626911294784400295945943554611997741446253987358423939077049213084994242769370474542033396724102877645324839148449735451310341880693076151357199598239032174307932068506934051423540951550203296121807146503859166528047940611367099703379874627194383424771305601957130225656424001028681238165976557339185259905179130791120442127635618089052539655695309768335430455724918166431954183151606674435578394126213792695779944349953657961421081742470025165339414834503980721498056400580443930098775819325598311054958802724293070133219076804332698637934988731804581036457323198712904926203131294867791567647267631519733642973325424421796432830185113724171347593078405426368742829108582837995743103995353163819392318032604649201258318671597251761673090195139521593737014083110234713963313250861313565038385613576489911522858996371329022160775878543510716571210432552290073529336065816159889264145563422420217750706174742596355363180966117584872587026598173030534538408909949631988392135834121569906310987853665870697080801516100906080322849348728256443695712681834134216152423781115991811310977398484335519199231765802410886745681291902659191940016973838234573296744861752831417767972178790746031949557794780198698176550079117099361440777929869211777919556040064515990140013160227311618068231778515297658826328726589667413892385784911057512856377538394250532610071272124039416223737272373236707841301827263666824870145693286032530403158794604353484607457488407725309722248884716455007857543828538336157053015155034049992276086808725212352065576015442153105834688214070928802712747037274162392617290071531540489401053828768231044206397254423452610956484611660825719284178864152234685791547027510751676705276785564114478124444853097988948350765649807449344730342797643853975244434749602237499317075846167579919278952173139643512496106683426365925033979340841639459007573255230434600541169297040110482344885053547728678847992194194611843743483944004528591226776393477385808274532295585224824867770660832036175131547567114596654456538611794354012361639649737014027227043615861546931732598612191722169506350574840351424279620360708673386251302357972848705528665502721255129628712105434925650660929310253795966175303415000878268228278691376959240267186061221931067234674539830267069390773757188089449957158664427708833299891958456831915171034770290389728263605888017105427771050142878994198235814521720943912453389474686877545546149945178477165754528952517433141758758828145339217146308730701231586685618852906516432880335011525813378862236967945715202788066494000166097968745874464657411246329063181473321443937428530317986622168876446676548328973746910902779897792957886721536476604283826450130998137253038319472571652838682317028460148380784383845731834169678763455691220129004142910474534234402916054452693743342522869713323598014519395814546086336001950151583010825690610973137003876136308236214051562539420807953947386623856277969588612505842999216319668566681227123240776208895709757626152199385367580881521094802848866817896003956263088630739012458905041877810439250850920126512787990995279232888448977614604820676405692327514088256719570129299441835539212810888937319535463128098706240799780149667401944356602320474475743706661684879311127106812647602393900529098271818960516407270339192329875782317179069535949235417963260698264224113664790458769752288283030731550251481789377551855230447774494279036752656023275330432219064554089668566420660555411717243006620224776114741403256863015133168666348201792938011162805640556492772981736121352430720908994017855070865077490282973886049669356333185566480959542597377585039936028115886185561565378953010383097804960744297763717400021302556393486476259150996488596603803497293452019137632716372247978037988086893480171061454149545609640553998650807687953421704311882596569859702257060416388550202187339753491983795069135887398680884821718698692045248866367091412888456045061352447098993597559538411958439060201719490426846799835173858371786438476825049821648091302530891742003967884684016354445980951890313926657445220369425956960388046406003180010996735658444551781555521921340743547690002255322762417680357292211845513583074793119561171086568395849722702263192710679734948743942650470773280639629873326513318358164316953051642807989584508569186882931559983572678347654653424431693967384954744791001537025538993816048136613910972478721303854203632318968564995184024636754012788920957042653275253482140111141993510392141853116198007640287200772224799999457873783984204957819679807849360733910474288369421423856372017710140826162386786638924184675983208354082105582796483860863719072310439421958781893091152342885649552820120747328572451053648914546195996945760858353851294284643393445681263296105169075286507853016273734943347420958785072910191952219818538328859106656838681988903404727800675523067763849454369298767310843279195339849235721003614271909279681497444587563179290973116207771974427872636773826267240903739151732432877260833030358874549571186117680299442816104166808555595220941830602430072336409445646238481640880234878054177245451867952987903095245990641093513678904607534560025205956784180618994876758517484050213412858643143037355973553805627610370779051468965280382599454544919427591724298717181953107461616114690244759671320490490211405164233245348497997569836068860463735704480631913251076893221315650360383570107314822735906362921849939549199738380236286821244597800934092741520260412066393394489150974078622712732513085202380233949174126986873690985339013811283906544069733430878250577419219069805722048232323774529390030258607116495359917096296699547556274424927455399494830620639352563475878878574513948469557125277746933074134967092005674602296644019862065644538995796626620840161579494867818982995283283770735633639678832664476328056173462290260005613363988059397065783911903715525012546275508091785079152322062347755244406534997140413610783632650619948347085754847023538933176404795144746079585708202824704882897483577966054459157618702934165933346823380010395385968316156557239230922898016344268372803361257950214182791519910303988321796012688847169754634470566192544461195628117341133453591750931331551874526944214612638979601101312866187777035743295866292430200626324034264347720427935197344835701670401099754503478065461519445744353489006990776213546708816063153732093087349895305776359570994560027139262832283829516105796806951617100239045562074051569150389152089040929551604372841885173427848129916225038051431932421291417322171361459493323177261912574986826561145058691806511838262808225165388596587889764188114556002214778480178385002316346538664338581885935565687496952239315893107732105645206485418213093718458929791873212076335646762653979304783955398578720510892026635561527205603506833464976940538351209796991654537635168138431752380237355511062887257556659406956897146009351740612641513870678071872494036136004059610564135797364903596860111230402597009851821188615432535569997104497045692253701836671811112392235593290040907991443901385706651385223408053713491564044309842331865391561436227869382821025434848362616537243179371308379608019823428763809942650166429773472814919566837293819832323631052495318553232365461359473097215474760438457770682661106320885566299239533416363933984799934624777257416378411450201258569383464950344478351914613192229047146075155323240577498307119207691726384403397330624985575371820754356992847108693497854983221440136476193833696558689473081310524395645606449993034171111214079681734021173727074782543158267350980875504922970989922460235974397014082074794577333050123383689933132389154923563302576523486662842414265224116206491037851501450221416861265440332461066762943359946904699900319344654321158510683158864030252935897962629299241351610490479154947609440425775303750485348827774303303737555698461558187755311460097306393360180233846157689073439150029127798282721129611525228950718124795171405416985309698852222160807973389011376414418145968598494935487440687865611768433350908280796061965678557699509806148282304553147076318579248103668012398825350263920234963424541278934874540014639931184302296234734535973184972059534082817157479317605181777359725831977289064117679014267480487507961408353931671524220749118984898728671705277238982256374836328907587635169085226241313791456831474786661668850344286485898695117164182031956497972180036248496214725185809596288437908441454051385651558704206338973175328030521078220298176634250525187913779657577320982013731524465975482730801573908707657296520492547907112216524145473481275850262059965512176219366419642519219851546303384468623755461810905560972831273486935413359951925622178085937220811443734553185750824623751853625902069461368898896836127400101450872306024266542812477305315335777503875079134597083342618998076618676380720821262906603266991302370294165202186015251578197641256136689341572100843540482971949322463517240700604588426579658549518676290963013168045334781614345997349923634058534110309139982684253489815791489074332857415173152468300110196090090395145766254452499379029903375851723648553482907733559125123374356350276202407332632559879865195857630890085743247503348999106308341773009641960178345780506785306695143802860692123412959541680647593722860720224090677030089313202434602782487136881229674923538008181005377448897816529424910769593021369174614577778998047865624521834503361657369500348535282986373628197945181000331389467938331972457843002722393285391390373880076687165402057566836314771857333277943048332918854110178064203778343229371158178294791724519450587811488032956416094167306414184929632526740054227523405688718846848892830220735281645032607513044299507717210458121715022457547238929017519777926710528368653848812646657752382572770498957237163808283205957388610743349485812259159969317142833386466871904051109557588347520443022824354063724745424701413415427283726841439417914942809974194017517578383127696893437090027864449141477148018753734800518713353615128688011084765486630840423419887427882264383012885306529079894630839344061327618885738681469947217747448809713082083696452941377380168851916911813125271317025055798616406239533853251716494139682633209835489062836363082056058505743575043225149892273076515362737367953311564219225347464534131264049474615714351564570480372716384632152399556857552871047336030924459460740374023260505002075916549319146870161645981073605033610867197789765078944865189951256066479192873493967307040223474054499647667728698962818920497451132118352466137717302325965450759775751247736975514642696433457430355882367262352571005608130097815258122804719880794171639358008305997513777472951024098733459775124266382663449325503783431881446116457196790616364751163013140058149781111381465950332756050403208126872775398083030758184568177248060454028645999839601835730757816886301747448522164571222488821064483416875058616293908556034114371297631417816542272146320855397580982602099460242126125435471738570200603856947514278594286219993262608285174936102188895041946738361459466060655641037191695755776249686570501559148257160333401684728440015260954727607605266607600944942605262196010494486935584466881369892558337196249042284824268083328197700206503145499160163708707934619986481964979748444315574051263575490109075463079551823523909359831882899834076340107431429989423372052345956244003681388627573572938850217036464633796089116579406301957384274620172142211068199380466311327159945939367973908670744123922292178469561462544000921697694340077007055196747775733287177175381996411096932905916593604014901172534101866123425300031096594073877591103705424858359535726482421455240314430667129991869938935757659818252060300104803555564244055605507341352066487227655643589192767178132375470074142652351320354354701554361575032074286971269929767161502276590345899953782055145657044855681364364786719654478677388137771014655238214244951133819335950957322347774735484003799286935839540785693867336743280968010257914072137957975201678157727300192346709670758632577757898238148939095158634397658450864559244870123113932960597654282901391134043464819899577521056314528693528974879548675621941032486488060611597328526354744116674707416129080490183827901707905272797290385314208911847496164192076710830821757116724515135272740220830427453791100475626010190582028582849089101809578209432109219949653504252886579483930810185032014732947036500070812243564138671315058520901981858400622323177175391082594228405732831926349670842241916809302249080353238118097479361201606627403663598526208721440664800783347239635086189697931632155640421491759848292981198741724660174464929510311507888523565373391868966471072909802461731065335784509004597585557756469191017943456304940389840599681252830906546676716814271269908515418938528591545883897650400115758368933872948812768469071892249122902334499718498887492341343929591406648977268112432311585685499964811635233135140307957133645531690746239146106529260422287820603509738162236977216070570496100035899457975986853357658752676703573826820694795513208402622471661212836686844185058506026654201533111818321525190185306979733728724433420951728964612690686085474625646005355455020799925044456927913307070761459587571098364562233170956279811124980445031284233005713010205565258553684069207451298093020112333573252565603364221741325598788886618743645110343772212685930087117242618305374534025255132420383252430577899249038969947497434181539720887327386580261646631607698911713121402492576913692958042037895861807712345947450391299305142486029345186690966101096384294084523625086628799301830637028533802239126804324534842501291674738228581809600634370513151754493815979377597668735597054186143830697639886469920402490423272067446458579661022819736246824209437909347154121185662811507293600769374513012787744212887174626668275960502819154017007384609688815051082073671130883612299610850147448391965107215584742156461482652470036557875370975525456034204635623852265850572373097844728919777818317416783414737019030745861036314907194754653797467620828860296602137364289239127471125268104407188548944766146895683266375865661980108437097822363058021980350582730855702553034031681369967703431070245109606311611327789506687415834515568378920198601548699378107503664174659216111111592302503820973057479732688253043974747134777012736319639440314269238677183946014647362557890080054217997062588045333267459234741478039116539681818556266191565184515810861289336662210718993658626365896468305757346137641373668912289556881024451826387053770229074722867966124060164714634752949858883617419307331848781711237718491815762866372258484038904440909878888468881162537553446249908760015995093336447703276065089449256825841902736631017535058383920463962649212968016618634188815263246861976243158663815901577350638213475468809840513437759938944902666457326408681270672251173041222651648051976060038808029299785038205242745803405774453140776166223472658925734527057592592029904621917743517144036585557832048638561072135266312852081474682600918281323127764878229126142871950633859085487658641255686139431577869462497503445443872808453956014264163527757459237941120891394800157417970593630634077280664025117452671868421610909274737763911951015904253071625357485004321777959773689894131823709991587641367527879280066807330157755372068970402612363222287399322654587203667212023843324381007814428525211804219584450332108440981355538771542453329550462980811548473106828348750871711733198926269433309619355965978364966623554104048178406034415707230886800563811116660179651979153169732669321504086356288527635720117676280491280009778963573213174742970334082085994898354776009181520094864089712748318130653109855642684747413984333925679021672060421933511855015442630694259397521638677819837407060487981955918060216432382644223926256829910985404863901317595166354812075759222789439832286668282996688370601472435817376908038662317459340036589516498188309535648992226160523371238196155842709030148650770891528004166051310355346703795324449603728379031949120302982230596841762301291442919260157381614116228968694064992856093225445303529577891198802590963715204079264125771819263961768651058707624885790822493125415897471651685183143393992606148280024684808838506490109939940895216712210582171455190807170551626632858930773026525446519173640290232376082939031476741910074873556287844625560734352266529434547830653862675954524986644759290791266828494744028153327663787897123776069271811793041278394301049759267013403004462692407464863094996160750273107308957381536437696011323905869295497039450753616100304486047229014577508817345310279449290176943838972041250477481621974903905290054022446785311493679004473116410312397952241777374011182773060270120038599525831417656908864322528990457790114570812693072130931018266360764882871254554606231889484042316329124493657149023515283293003494087489437555391951143186015061449450710821417842631804399525699491593539963654293543910711193623759238044600500766374448766191230401759104120490919251687048852355251930935410647672404645154654564261446387302737134435331331112000320471831031554126060282300578777114863477076226548630576227929661891903857333906974863517054607988161035286751654488182997983325649476611682473077508611211399222142428051797810393252507179946539506201180024210880149993240673619705761057480880981064148051683284835576621914166613104892167475317641433330977041258442113884751809400120512308294442152908061505435176944308622024268952289659460653279924413929219120495537781346674767808800213557581104145139353044188839251220717086399928098448554746252839702944739307533203499807998237240458761973562815264452428524713544082825943241178389095535261354491191423853492451154015606126538761174901074581058640739245592342353321368406912369806234159714524338138154354256488039066987240654628511347641168519530168065714782224191780567089000662710367876552905112673081370531633530941774985755099140763887050872310602667546492252779912028895249808188873050598972707962460938022960168096133308037113426578716681568870564421709611406376215404221466342622515745296301097472588971107180809541831521589346611604481581657429439998024042610116331860354454428199124211893345642197414077677821646967266791065891042774966697712056700346646153624000418563073984822246164597349969229672461193113230823515966682023271814674987078191245169889255190332587462234946185729184493626644832093130856893324906289796406846380235193763869662428874444340950375102916451994128176531903777112264453117315672581595202243217642810127847613427235651312421270634279059570810573311595581792931842438445547985440519257876568338695440523342992570643419527388631987950039678529239678388359698114890170754981277907908570995445846503069984156206119570752210300900961192359179795067213144914899713742726766132988255680602239492147598284180691924395970998728885364867230150939076656114975643466864667724751048300132778618108327807308679540460443604411299228039162507978389618298093021985585356547010290934513687014382027735918133736599385556363870745829317190879434996730550718849179512527001087484087076441990269616114376348219759993755492379764536317945839468360610159007464887350096546638822767145432629461806876097928797414160623901383759046813884521627923271112875662475480186774936587762413551215797749823766398414857106567503899782142474077630623419747265695070223522392702358868580188974691169048145256066017787721754132846471090273309090799520493410614438037603604249475959364163552891514641544231759324918348331712247683684238072003034507057595020803242031017708664956093202844366087016289551333615567460398059373055413555233231341480932090891937822301976041227995532724995028155324165345920653094406472806695471339577337284456921848336469655886207227901603866066262179187255426636825677845558170250149073362195409645911835065049297339493455602003867904224387978767210595657569914843363737715243525963835288147840896053315769918755190338601110317990168319320214812794098039800849243205651207067092026279233703598452752140299414278841945387554461716530209824882651786901896588291810920784063888231777537512663823692825435340757968819730430077462504532850268411691645635288581360917304012550609340456435533244112919887568642079302532774064758635467421176177746233965279375104467419499354836764468088500760432266279024777805660190989946356381650719360365171880987119711527757235772977902876469471305873166297391030034123266810532066676505599102822621663385380973260634422992327762021578125851837272565789803221312473202136841002731848953858424444196395293941613459999807704697526539238612716706246290420581251190863639674754082987819946820464768354978076756979217733781044462105524434319153166843747010541827727461525954309894000962789298255242955755536256244728003201243519107745982122189121650219866689093025097150903331216767673491752707160044795491202665767094311438112646732753970229869229678494059953345547180087594200058656958148312123379697050424752864017042012910158539681877716685879468703672115663313463626630740446116756663207643284582630709831767410879232283886732930582115278164879195045148358459784842763906818394596186064267591613833903921429532168804681648828756963325133231068132948955949301802311490215300510807107962942333025871596621442359216757456964236523107556834750167834054045218232531397809545259434071414345379958329775535345417429228974692257109956089970423996575633219480708509779792451777789220504133014518298525349451118745350341238382976669848594761860175387667512720681596923910807853657553011600292296300024885863454305960425270316243805725706730394993804591074516097157808799908795811772193479119568535345706427610873508393619770558095823481875415341975712401966615835791686838147459196760812536311879164103357026473915598675024595623620773979521067719716227165306681827138420122469230151462758218186021089732292756377455623839414117625494667215544051217245306740708537040319482944885552770100785215544480218077021566001194020216326733649726413091643535772761079791064058926557715152036653363383459123185903145315099561452961693557438720830286418397167701074607067536038936532957410612607581452960251762667031569625552924418606799398779303382421829248255387197018676537832194898405939246541150899874225819833024540505110576430804655146364671993105650514228160282619123779975530181803937040382293337330735551247358714916411146819628132752358218073031019201515422436139707146022182625699081735177212504731165167459681761522799665719573308106436888911961297566220049256023949416552987112217456948778228444566691206700238601201831327413907360164213754850278438596679905076184888664395208471923567338700866513844740836543053766986447494940992019953093411524015008335038286916606640737422699379525976810115658362854338667986338591836667972866876731938037395718527562794662249696909759391555345250324130736732598830330293931510133334003317357806870767336296282997846881090849642651670827255938706744866919450981518301997423020376730954444187063013258797592368088120493520299114407980864374641916253356052274435091112494083802210635541046314987792352041452587389067942985124215142221590322191568075551991360459369047129343831928346864269022537726409548726556045628251922798315981239644425276501263498131498161161257112210096737705075426659029674760753927085186113773096678628407559761089155252586129524757030369986081461303187929576696377783554822551498462049222599090795013609299761717933825629221141784967279996953188608517174960488081962213426992359063023475545098098734893442718577629616961569795570877224726700225477729660876444807199363185907459396670740043462405609422387022383810481890468846623407090751236001758131549102330411428469456051350211869652972289030916180983987901499512210609723919264004631503773081104255674585421287158290502083323006639007872109337424548383621953070029593562738935387401306027972809849488015583763260331714657333066354620102198090025950142992756983253282285717971428259660061820143797859811864660816341251232414852218791376460766811090157521090745797875168459800034341764006620288393804913625962348384854451342275771758770318121728049442939430255375658909065710895017656608617757884453463447836280421952187614404870442825606280858535142317077697999525241546998042100469769501634193660159927973278815141622793719508028593982889382150456034713992490981757034037611420844892028335007019097639452752599396334503663257740725538266817675146631702449245571841346556484568900164001547770456428168595805481405148825205691310536794394746256824183587125930980089627148734908755781343349839741641636460226318601803266022882165710122683555730750752966620670318465423171853470433976298409702516961271988717147784797138018682264004727013082314134968649567820368203012746748192696698629716903029643180398128338611840211587916679743957027215538266214588092805544446300800110152380348728169683868980598531550733101181962837400104344705476859078757770931526458535387743607502670926429109040253547865661543948886502829062106591634025104925609349854022206496573588640150082572751354958958782912036215511650266354199785333099634917072667709401406961546614792076496857486571532743852235634797568641277235453719350886827048914476204392592710634218996468961837620217732097593172714462061063271330232435189272544923315784508488729098039422318587026446755581281115454013046411103645311749251287032515011087797006046361632933800903198449683780186501444905823270007349696389418735990097892290895490572115638888416878685035360301592478223287724341393561454796989074210815909952974332048196471727143969258061225863129374495420460289627157374248502034201853268725043410767720445864745716386193942325096697732009754107137777281433672437043384710870297214129276101845485456929754247514512251189841473240615920990350473909986436314214286368167021469695269723273099350908947193183700562093633565207842274970299346847333547106738528446694304522066033174927976613199408995310349426654900089339345907334389697890748159980893488976277151889347235524674779068255661113501059362120183481746901483190028472481793411332764257694290260535515589299314627455595060312443341399801874665866197128552332912535754735199398682912495983893068421092111283482015228502078615095376010069424346435732993206539897225737238849183777121376552585073738389507832843229366946003679515202764802487987701580626478259099415688433994291459439016551677359008980657757979669296294771271274102731038794298432801425234267405612121909269872025261750195708098479637553291433630793730146725244437549705957457697607878590337495963744583476519495403752134100846947086786925051028969970029423618271287050592370265675383529133386520712307623623113671842981210725413432063288500050073892548267274779898584724120841787380200110792916113485146174636218224890389704346137157797391619139752584844938506738167615945356519960158027695263654707196915440501188088679721868989448975968492013973091231720443358922935718304084649163443609228840160936635733729931970373115241563065699748457201137213624096890430915385058319436642568542036986589987166603616806446064392285940998689610212132359714147068107331200828944718577328193990417278083072923837318936201408542143657917669462457834265887022811358062164676781198116123984541645795610999758491774788742353689065800027006940474890715528965801245376507226199152114893819017088332158326297697108785682622012588451340298687877847178629012598432091612121532584990749841162735916115572520701089533156158312860136032608622368136702291524273852698458655993843261131091265183520377628450795486224660042332679822740112533937470819305317096449898340478531455461463070500554499079277418246956389532543126683287205804599146077276730657205526733851319752944203748092978984864545501422342366280572409799173020465753706164009811816477819738863073908026183149584920737684575532488659465016524622978406213242204303076676423143066679883652442215769248925381005175085669375938419227270217160791067802257434946196452254858203356974166664250388752246946088813506177957943659048305936273032149209802193399145360565556656329551532882160371067745001588916043902397619518491041898920804265795130784081849160831245338647590034489023380401459178414357096066205493927061293454347812279851929426635946622892690902085524621879901965100872982406950874258187691157358462399634871853615576985830794355640839451510193056471418647952409559704946279537483165303286623433656746693029765649116859219858178480680000765919256652053822384417590434412546657799890115544299183505609362224096354839695259716906462885185180271430047261852921646820959469166023966905956990339721054816124242111280659042654249652145266755742453627243915733753730420884658529586170998484320979264881226766945391247828843696672204033100409221206310967245414442842886942575386130739643212312554065445451028870664300963741238965156215418701263767776050590569831396047195850075504490991134811540270545707386460764160690530295892544072611995475636626586311042412616938155541899941908274271498637518064541137963110292221892095051750346171766234605828275091519774906731800068538817147531736398104088698540297248015338024871273298170632452659661824527448212477144678561327796127823963355169046446029834057439417422856447344560012484167684985001161199543122465943265399070201819400731160520411279978063137532852228733914450754102178727026854939998110413653860385635098717883901910667433746061939843542132513455152319742468158908803694097161712340405726645996758511785357940455442093765181447143808966097743690245097488817523755051069895859550293411296843770463368918246703083496526569599040689023999462139075657956863915719623857054858624650239340717839626117759604300341225103156976253825718105651774653378833280812057140711377596176247204890198934270723960173061745728590001196186289666171435770998741545643406809926956474430454891449331002688238880184226839001557277984816541445319745505524039917344656303475555970596581336680488447676793691600162048220796510031900170330594617782778029829566482960993292359194891218827774546831029105861402870989480787224519548501993464651872441037020511912469028432802510258185061677353543475657367861838778055185674686164659653495812266021611609125499494828479666179873165378816896438525496376525425127881078101205487588875924870916599811093043371208467026365463642309382308797768479804878639452707029766535277341219249566172035450080340849838440060717607714917097228155490149487708167950509611339838586833658762487213683252662264385967920649429849249850090218242973753462283218875523958768267837644539226328503999868253807376574722512445759485042124050103191504336019930324314493718017727916930386841532898824776765883050538757445463701931652275920225212228646238363198445160223244305847746798530241010458461507523449181972938920477842350447652098253430298596001901805351573219295571039963905711447096376308179176878955391732576462344334952304665698576241300146060545787970344434466550492262513760919934387690034318613769053734793087860454685529562473735506432972127332002350874829200579247682646415100160029632590840184307128967626611127603134290102079177631792036493757981468676709358314461632354979086147068318174825394661677917689635436159621170172151616411113632460096006088751272713250951949275536713693577167925848002705432565744322731642489966796665497358357999222441440490182640548372390844932267508791068294529444929729419520361228939539621773459329720763445533996194922552297800032187074391426383399398600469700061819589687258118447548040951340826087366104778350609429125249680412282982218746079325276827396612332100734473251153786738834852388051907225397960839622884360157144066486289482459688728950656133764031967230219600878583545721816337403870164577306035275044771259267798338464268013959277428850358964330455755004771038800920864975127566260250666951782977122367404921957221171176542508871928285617361267940379046767241787915020678961885406633242328082346057137759806220591299641229261160006778604553427574659309558277220650285237967157719596855554615732586766194696846949890341202224186056452892279756670639257713123987133733029522099486068307884365073126659464352762864414007002848514462691128238827316691971807815978777929790448590003757767595443875658556434849628532351403842166501002104387050541693835366275897669055638106034315491641392736741315318790440900622388110792895782419324917382062108499723861490050781228712628711514806569939224124045868337397034043987294000524097495256891923138973729649307232958548843508985051980883262919820440784675216506141647950365968985392456236145170093715993101249449358483051163925423892244793550463216085787059710298080804575013850045641956671995056510294652882558498858002390650355699558192413719656943829514117175323610088920033276795800818321547021495709243078711245604375464507296739106328167704901949562313515319005772522875914687081637530388500623293541696595448851838833828677894941048364929191366683636775888623490900581016097455351483064747497552136634237824869053299804128448634282884567586767256406139204781557431978490094869471957701310157508727832481391917723400195721503186456078631806975580196481765810944298057540371850810261160506540480671958242710561741360187252792362793019511415118047869502687087327395565446089447574432939092311685717027456903116424500770361308865204519220420301171172691673090712953506061248614636686504904702891892469845836257682369435540962198667738351623391340913179458178661149650230019253168654805672382549275222413459416451717588545132209225568788100498182545561640070214227885276753830461125227561270765900772765970557751297564157529499292350997949484820260779151872296054441639467311453277213063154408495544168691570493192312469284457287526912760141777756138117742484221669567657827793039880454787955866233256227370894502156103809008478206108605835349682472125231376481999254924256762972594603340344934452413779158113790659798344748192550928436325656026659753017131510008393141622341995196546043165889683470274246096270164052353006242421602407753380108111614902917031500803433682534290694348779792462726561772851162286900058626722585518973324566554986148652306450360800380491621400771167285641012923467691647733463743880373252469105657369116018109223860575837513945866210026291556986075293165172832183197192743774608948732721404053357939215540561210767165140342133271870586559531702601868360728540814190460115058356874053210938434595759287167397527906336874115884066945591083267837398321090089198456162154068832380884696743639954749894359613818444674384319828135424068484780628737403550857602724192610767071678505923429930606757418025590718688260622682463410300556611455375040320497086723873503577675068495558658949083689302751522931726841284010574693689742760407203488028611923152727538627661840299021381247085195730460759727369874440155214942294324520654319808978550936469712919318450155205283341097509410510966071020902475441923701971418718005899515910501351964597745090649034684834927859340209248678827038979528633790863315580520227112033565319526955363010228216771095727323670026882559743417832149157406955634928282179005962982235339478816504227969317964999450679536682708990861774914336140635580170565605976718827222588190291007984838266512997292834582488272254940240440608516777296173582366345234340579145130198111087378732851701770065403457731814530990440079586452668456158227257749565942007802631225447895823879887517417397413454731589408242073699584477911014034155102240175991272484096279444869438076759140260084350766518695947028684151010999982502523637065060977979433186627906759253836746797007181900705678155516044743562576924147846491048838731365404792091015076990485870494772873854580753110820785879448898495162118975217489077204837218285824415979548776601599660690834749064030376087200140958453869175493170573249502693075549490492269754548734035750472098500744635736138448915910651513219183661516086194535337641337417016566547533602082211629523052265369874543107084764535177669571573306833481083469648866844487228967012983469745749338420823364890592769222052494274175149396206271482176968744053293598301621747706910413968881225705468795313327590689725410820767408436664812201696878229297620051031713763411021901893148283727402503153969068968263625139818698591687261807035758214269280347055812196067684225079151693064503526580207809011455790239749079948143787344373966517603336717138787493554883687551924555585900251899429657251597348032685624199841048338890619318057801174904372425395450812041216420830247099125420364013100700765351960481400353722254891168931162820186425732910715324658633298985437989038071670062921284250917567481817286682013300606808899186407619185448317389156802339140195872917014237149628839291798906400291018287802610618901257275174176551870938226951516719892633549755646115784045540983875995976030396692440842565969822192720657279356286791154031629166015746843106982768661246099292360845306352231004669917119211455760954747667707369460197625537912234381883535874878676690205841187016930753498152508717388856232203338005504884445860847197587688715604867578740545802967610804933947429186670904904524140278923090855813350697386596949803721622073966884844838510691832094630281104712949692276525154349226389174379971405388405304673368655335372662336242361069656140979046139150562204803687107398049766682848917562038260342430771411796719296556993186894695365572115392729962648478348926664539275900056967938242316074783936537536315284322941834707346870686450156551168637030106082635587909236016463228492402069060791717540272812653187656187175602296580564456992677186925534725260295426084236777041846253928756398280099345886360016638305370300440424557128295828633368373641555503713534113442111025884153323710176963925278978577563947517556768433532465246663668943234567510649018956199164267396762409835338606110964753157432825648435383380989038427076617042910786072617505872328273579792606098665445730883167674634803847144197840210414852188287762367570535981493310771397711082221058480366642841638398202970024924089860055867991153481018334374128308686560979533292888506377042216692136739734158256550071587814443574731247189509610808511415807297350281049648415428105636965720561146422701919564291694368182057670939027464360136231830686755289950369694095639504835330260779743924937950212595769773689223168793205689764858958698314936622624180680848289040293970695773979811626798488209801255985544067313416495183161767624179279752694960085408796699526618802204479806708189931934773602608330424140222997683539111111017093964289649763779671145407647248165236636097591403812890467436829368196933870332655557816001841463901659956513629075675879935517539499789952538963662639350456319282181650331200002487730037606349513074114610859896183768681660120432231115622934808356910325688531435091596545337002224118301725555929228004139627064842058646523178949466996756999296939584563360610183928822565277865176334840436266802421055754594854831899757525213014690172372047839307203353372237340284496733378185264641922206083747083910607511744906598088165153127641024824004003170517052314309096537463428178547714505828326431563046492337113146546354000895824203014349124252379298556090434599771628387448433394491202563153992002619026192180406239299594015383750591354199727642666654905171057447838468548697890921510076147469615600827965513866778842955961760658053080272921210472622842182074961359221671681871259589084056715910462673938307498430649154895785657314872534772755659632871470000256362680247132643984144887006150479176097695761456842924008704414002438653967019098736943758956057350113452007250188336575659052714052567173298942825245711023956361001585837867838445040987953649910361396182454527536893073470773669317080551050634723213827454132677321962276118326811611483846285429097103332539708394117567868492310719121045506572889293317629918022979648267741359431837339415529281897682401760426217778256260822896912596027211114399298924734185130647893333138083744482660788322829243987557555235188108469216079602990217881009998733991875701282796967005506114515059353406302610257002524241438629796431097358929320923710731668256101618083482557056169819115187419922600437618334841438252178139371421942359237911600985143594604536696995215953242972436140895628262712604183318698626235813573065320732777635861251199759951836676830107267573861425820177103143982977895204625276572129769002119638223452249241230120044423646898204813560856269106400624576605535086875907337401457997161621356436338696405325298963313936367143742238298806281210147732083976675480517208776468515558668579868663325518463617066902890592374851984663934602576144378011411798599089730650403699091093914537294374590218597370183766884272487461770851045589958618514923324827132240335218685548613014113680883993044351377159949429303254538819526169403499329311255278043525843135053457394033997319305308917320346367008829851326664150999254040284232599041547479682473263197995343181401491491897334471399230384921144561508804584724414965365012943992358599536666808397029615035306836609366902725812922992446516826141481004855199937848032100540927606671577324821788955783076807065390400214450340471132149143386803087100763748982859073390172554394361212009747920483139750182285469566711801321430922438915007602001728085909795922030022690961737098551793465596949738550294583784488087980732062910616500280516550907292861327046069243218863947964698495449987908948985409536501487228519595189194674302441006428950505814079852594723952387695280414298963358272903310204548447311822354869993159450637668897633560959241364932775493700322242328706302623263222336894189853686569146339714893750198834242756529700393664075642003610222814934548910641520280503141849785998893564293984066255559866525424840163093396081237409984104228237845415916711097383070548549363191055034372810788385637461234310773473757064263731659436157412347947442416818150904287818513682159764906718863667608272926822926700931195710514428524762298973772626140104518137056964760714933276461974549995186669980774686621725903441341320499170041792348398461435542084706545398138150247475385012265608618363212943220730993404650564489036763814882082302240180437622083561887063247107454099595818428483043572861063822934684509113544590470104049951074304133475970459261582628606242460958557612999281725545485423975927586116773542724130351509602894099556257018471849415831518011254238494421257419607187166989925583803682115297374991713281017805353932376120433402616571458717012583779772195244192674290176053491213529648364310082230993092812837859859414933021932007044022432339342615505605322072200049913928764412822911460487010699789157886972062947825242783090669993345641684245508852892198208963400696781207294145901343663279859054690739274874982278018741018721102678269877964790555418647808143477062754613034280073619318085284196450904880310491418066070226636445832520197120307543604577128931002446152671641297592206195861804386022280396789460473646418553849570223211270526441784967533845819669735683946621208990262440525893392596297866924143572013756850689127338040847997257345918403652556467317648818395368935807473937438699141054902001887665024885184388872823517590096230222595515944240390945875096497852969477316346717273392128987946736480661561165368678525111450469937927951770741773067158247395462417268654999876304422805840160193615558648783163054443241265461849912772479948507764331469071542508820262288735161797102845135488702453033481389251602113976187526451535360065722093537991019454494664398183750261159449247862921765378942310089347209950872494426119584460312026681369837427285466026803419501578139509017208914781169851823300921844897534063290466276348017360870674013397584406857808208341549859327602426279553796577811143224981034932374131728764127326949137723027196269076665911239940131510824729230594971447650948647598205721973477580190897027141340118633813712355804415645162275661198337957862228816754360538654634622848522538662791376715200126370721653576864642899304463487368847803204518079590434626288069669570731001859772315998263351238216414580991412099940494669328974228078238703087078803615883023957181006366678679871473164723701125191307779275299518116946687278715930240123493270580649901618846795283719552166726590969234390785692012335626897230033881807320599540733626705063141673166357199869773850776013814403320163786105454771855047457235437961787244322256679879545572081837001894409334760991109547687914923138063970861213823386778902103395998353496789521976199986729105468091287049882731090857869961023314207683581409979024111086386133189642757439676966927552979262025166621760950835515570093783265570163818590630161620544421138625218953434641004480937798181522920007902353320690125107524134374777380999759170957037852423453233038526685992947245959291860653228810123336342175623678893808992423373246047535089512133524328499966389961021107028002694616018536570960939184589887481855906388414697342953654919753637460764894773964148893732496043661297410043061388795825790526424561273472068272145872677261563997263549632071082973861327898628155452800153070113449320528693527733328318429921721038455541329905402151299244060257283426403947872948493999749581637608173162428629189395274731112290764477088649472561336172544331167978268669304852315423590125174748702171250514872256197119921875607916525116737200244656243725426618622376471431111405731520949260894748556659489214997610070010229861496724986914440376682059023830237328658927278617678811756241163479557992527271024762837893570482497371801435404988289236012258213801062264775930510258684407050193570403528160014054679399170709390140076612303091480154570638082223216928946498389169068857996510065651943253480887247247680425594121307606142006458438245105973757063216635538458165955665914832922450940664341559272347956789031928929688238255604978492464096736655573985147092045416412814072952056135476019621516452934767236283974130696582836837623748238938677358940656524455497305918332443677315187541000169276372633042362771421580931936621692302432708699438117064176753382196544337401572918933328173229292256339812166111979746374058197497959943135025640777707265412156753939012302400747372716192762747461345256597398229221924064196266271280380296535959317437500806791804924784013971327801857614194146451990793461940717116933647905769467258626949752180356989338599080784022575869292896632632308399599902345473403243768763143171128626518699131983377579237369808772596468937896959383783006377200751437805539904097871751492547966579152914375988265735281311826854206440834977682155167515076196800028634476534564960825925506602236505392346756174199951845993937099279294726702401057606851163019877816923287431914469294883382042413542060509754621936569110604376707455694697976182317332249843509407087349933207995507516180843077677705704396179026004886919433474848165109869962665281949012488429710995626130344379341979861087775722660080716453333557305317481930896725538459333288352573710869526865648875528307114073431107954880964165149153091006948722471060236844858655724553495773297952846614197980004119466979909841944252558722236166622334010544767572350392688059447079367314254652421263532394252031188466113255089857927827264792093950102987542115349072986593793650993655340844420183991824850204195852522692277269149603480449720795033523350884007817130340114093870279160876991096116801084092324603419960960709954632409848090287445711805969228504100560664410344627882722807149992761701866917956557895716680303471056565297231756850909031355797579260666863286638524107178752716870732082554022513052170468844660413840857204816107463853203213664214639256422827946230515938504636971565257645956969814612543881040989822064688745047910695381361151078809597559038534919324034083871618273523950241520107639528842328267171998793428152740895449693467788152940676700337211725953049978076954557177471401642121999157816815650796829897985984763228920902909708052054913392921758768863518095351397127323854338069869097393940135315182295158308058477047875676695668411448817642326200210524155189226863150911077044570486368370571408186249256523829290114802478735198268072480716774259591008344704350616209867113640848276898417855704081753383639234030411620706010786240135508241121608270683443866976935565488120826267464198885719702638172556367795597044181547295024393609968745163553406310658180808457170518758011235020951808648246705768157253807716340947635079071536317731592759232542555001225336490385763328501630173283011076837319576872983556795517480906029537058628454579339056553468764000027393989922874316664838662718394730814657179850298425497994350964669480494266752682892411803436445262364269324081057601152977875049660251472701152830262065089633315791288372894414161417088744216823018689976563618162489570831947407369678367118682285590414078943805483676515995691552616294366382771020759825073617605612464696332454625141183893801587493704902272579972456291340811698082999699258839513431419691776137128419404016346166254696612552374332105717651740813800954606342344860647257490848656370397558347346682721949317517432363686058392428914332121409166994440536218107756562721860222108573721639992318276258357587861779041247736058485984779307933820628710208997249477867008255937316399646720547624588486963526854334210089380428574574248863476631075883041507910150808676302176853412027496096243407205944346740592116145111194251076325319108528445103659353470954193075281090157243876747028455571867680531018031580765546280840115771797817434264170166302433680457851117033773731086665567557755068633394090214612773748031359950042664697442047895629883957241969025100109860013360050471724289539251527898509609314178080482856950164182407348739637353043084544901881953424400122815852304618623877344557905064516590482550901204617771850874325688785717112409927385499336348217698155188197373012556700116376456993808410469584999709631280062423612012964933922364802300887617333034003922365982130562386806900914204164751903927579679039509667853893721485670119518075568975699299529113581825955885109526922989558622059330014595531954677265396954924003405887230869750210707631310964979574077107529645124718840930631427785909733433522119896395382945710300710182241383980471093776385291172445282230585872385924594361428628251442159881184745483228514503240812813959767039276869853655591742073935262174025426662083959582072448332731613194652527234254395476933659963449055537642681969970426984897934228395259389690029149732752906002422046773057339869303060515883861599243189548663136485816858370814160730345857837635761307792884564212640696919781619002379805659250665976902951689963364950318667325960089497426191509670351409917622771233824702450741497695549894149006197491459641006325426148312600811562443495029138108176126571092103912907856772229921991434206243205186516262998399477176317604005599090072621869829941503012073638676118508381126435046559358357958593202530124752788599590363872583650211601359725497461919815683523935707191520640508531654014334075245565391596242959365217984852722794912400031768452956725193442051329757105715860311668075890676730923027188321584674380383814605904562143131170139570263700726910823133502469056332484566671797387741376956052805276610993386736637293558606203962631536337410835831169879404775780439926504815755386312505536913601752685693535217549904614211617993052143485593323020912956476596252495880665580548239732619733081368998770165633462484639881924378246990466872699856164287033017599722711301032476912415308893972993368482826357128142235720019562095925676614316948155826105122396536017330201057559861760312696774354218572613957572842819759812029074704334842413879763458267383016577227406616983432565902660058277568925729288316635595616559447000634833654528351522918115248668183404633474441251315974515092032231376120842333998766054718407110759148809118188098419647519709509401415850658094347060276739313947107224771798339729270258982166795811195770405527819234745840299647928372791794582337215243237327006697151144216223222846689314617261754523490290854401964984175844948965569767203167084808838988988966594709873562884403239717491443832050956756741920764089017124771652475908435864622573615533711492377754488436413965444745428705653500541219657584431733784343210138884896391943926681462591209336314396846001391186213402658999980437197834933470987690344924527858858067832427256685179060166006958723009472530978367814317520748821870696371551245931990790781240108388580179789164367717760200663812837862159634909000210336382078030656698340693700138006790235978948621966413975519317682132887193181432305119857503962884952273287665170826518488471828449398289207784350186596219308825239047904272564453682210707548412318671997298182980406308574725127381630893814190098664561611046624713246714809864808062660471837682109434615956567048153586372479148708504792942465692979247464359731078549035872387918739296385837704594111406178420070509010011064490172732587558553405468480060764399717214962747375115554172826770124174584276018533333255570549334568487694994644824993775654833656268518680550215112865882474146043907775482163250812731537571328441312648423420652464205061420736376555303896868286576655228527474414334053375424376273154630901609546476177491788190437358063820648007898751333131569964256389767796195572597806751604080024529603258792948449406369654585498477451155920501037741853391801259577520086000843645057499971751296025982192983025883151602878040395575492071401076619427293191458275759631826245760266466000063333379451313754207161545314889662397883007989862442808959445894727317625484949397473569100233312285559731495534022747939502083242712240333715175791927002776758641537737339486503483913856827467345129785258252316860475015549195624717281272069478904276236692748162948960307259470010385980580384574315650981242184915712461135934633271806754011057893378222430006232956556967007234786946838662203439091500305497380854895520101477551577702004088955305378326498342874906566538321412015476220118905777990570150076223822307116891053570863289832903876168301624772331079045312414827655250965331117078726584745912051526073875028923694213812924790696529147388614736820895828631933996494986708747391633451948070150571513022183036501124264939767477292803635336935257812915400466914557288605929955981238188339027392683111316073123981273173064712914111192315496216163339924441647125398018877986235909437069937324900840905350880681834372987782575244974250825703478220576310149348684705992584477706274083029268427059255702219844922357707019915112382794591519119151791321709802523666700504133928308873564879108727547018872656094099542549617404170725097354746975831711804745415507787544476317242190545549536420515913018477517170516372869508027690446083764654756301068933577688849070537176664855769206808787567521584500780960803741604509249160827330715046855599087825854279950547799269093816918539209983790916708662888695685312160726302835790173663884157998765926414581108611425129098668962601535491588834221131641238616571914114044299521356738439119964179917535949370316440221526309794773685110183231190065212078744391981593572987790162282095709170019832054588575457497717677778671906726379399044688532626933260217691781479713207658407965252051853096729566463720599812679157636354350902442326399535423551858653912770327319615021194389634447747235684314520682497724518903453070810512291471787821218416786568871944630061280710767029567081944716534793161876934035075160891537522432484863592103581850251281339097612069435641443549829887208945845993532749687135609192155316956474241631837703226875785519797220628335143276451313412403349309669695469893624164209183754193858961428484767397475154374192503030311121014372799122283489493314126061424415313776387965464168527828297161089106126516545535185648929517343035263593774824142888134900093574193585717022634860676890849257220996200545851791883835044652847480627692982170309791250476383017944498759891784505056193864237480098240317146969525725539644299344497611670674035133514106285769868409340037125919140509142811380149295983096787869579186264194207278675514168811279364194746443579583535289391461221825865814877589377906254072009176121498707993237569611851207668756974782822788911758510594527191772556434665211737541346838140904349450571739642424286287641459536212631596977733250491804649955826967416698833589034383378710021569504748060272281060914915360912505101240086488779629104149338879749846805553989814684220668170592549047693017318276930313653240734981008682439687807251237957752566316256827335198927207514555970642331868805816055233665435851387645811179692460362234746210305948711558241938634166849795711737973156456507294579118637413773971761350800242975843764762124755676602353000874295831161123738402682210334969379651424200018631046443657782643115014792608621731293857348596090564856519481427112107621330572322524348136264844453524020968744237199594705328077580335969628672162421844647236706530519770498408432062427727466866115268010622322781452968055153760739700035457044705858021195633383835823828507601632947919661150390597249110461433907684327736582019879734575936928023699240908648733811477816449607813729866262933452962256735509650228741107168546172686067913241129769023688376158649930516188215646208934544805220387644028489721917598313917090111810466083531913283010965651834771905451207287327279372155628481754202777809474097270159486420168285685634077393295761642795207660486331284171697277177122177502859686440288107899657309544756228736486076911668298527026574593002185451855915870557967357308811436315916071316293468715287248145754742457231080347878905504309273910352303617333007811918851869636232412336086281987344751123924188617097926190215349896407019252164310305358129626118526124762275615428276947724921675460182170718791547498336899973696238221192854055877644981370750615879111051924481969420765074653103187912260561154319508223390683024813410628383419392997230149855106865933784324321858459051139573071065363135722893348769533724713102587189068070291701933604054008265483142837143856993500743191465945276571415838923464344852273593118804326598821283328875781405643674658142078839218680562437760306249913684260330858848363892459872486923721259098902408515860699425370414772989074062899010006211143654346222146180106798111710711448737574696366379340786890623904394836745992117590030013115268019492475137288839871445151608687618222973560430229919609355486055540611418681321113387786445606664723195373415312434038132588418375048510726908426837788979934944868066568204104510138026283523276319822806871619550478250914704305365708182729347548089576428512656619307334340651859024365196516958203182237927271878381674264043924963844177857825762832998670436653448050229113583260021837176091556875736322505974858160144610051869792153059442922585128702298410874173957715078106334553482069617644590246233322385428735741174718340759106928401229987572235750673697203103836341258284564800485000953632660266911868770594246537534411345419251632504409602426771862978641774884798336429474914486094026514855110256829673067762552858974515517754932993698036753820996880104891274763400581283796747889616045467798730636137779455129551184343042261185537666758157353149835427103191336343021645242333936735896455323086872662564508948620083320230243406681607581868958248430195137425256445484010506903078010328436150652080225753750208054122923167769576151378016328985743928883916116844483031528313290636524536017043868318301255300407622835508405320678859244157071729255148468101396122729120215906687531130366978906503990095587748811033491349118961919065197460729459786822437298101104776438253527054435002539992278903266161731257955465991473151927952214939950872897755939261614772092164117590241553714211436058140543748254209196466943368481077893048993244053056406814540582693934047057306858371523064394267564488368269347108258089855774257165909700262127478606673599030867224673151108263064528351916898650247871456480966358866204142960733412415980602687647251615008140163520153068808319525468868720931873112952447793331603165514761741458506552322959040661840322573619648579447529010469244983971227257035825961124769200080762618038784625825403401362291529798228435437188508169279458731816738725104737371945078601145774048931462022525330033606077154457031603498030328787580713224189710663549502630578708152314661479587524741547936464868156131420369491512769276990153437156044755190347773952157826434418140395075016435495557761107467200662520030563091934422860518897970215592465343727807910801212135593949304779838225101790548441792879633159938540806354267719330305435741330589242185746873083147378870929180440661590462090606214488454824686471701786276856865647656134667332376336790468310904149290633328367025617639167200664686112544643909290585879159154236672261051071839721813333408954028027496857790559824672217365431493278600886328969511772410389623330291252624688894275269145012355214901929666007702691257338372311556783770052366925022236090436541722629951375387293801396504219439685207152876625947671050590603683227052124159189808262515778305745917313151551839865209524089378266189568878443658535441483360889292276102865342995302526820337769020101306803802808747079219565764866178814604092355525567683893221439503188201732158210341640460773040554577626343397284884357008959232212000830226841204818349592846575220730808915405364615718408138849679964676901266464291650399029285452762992229692552048096650135253183572401484621936432759026762452627971216754532121435012337130955270831911666375431140114415095565428292323541193152769490550840909981457197126899554003351580660166333844105392383019038889696354154609033138146456521607356220270956272284421494807591368906085899149834488290798007729060449514088913311151242180471140743170265461490691084018306583079800831497593390274093532086095212835985487846278021178289163304968519435226974209359564983125139802396762928408897903803105448421776015940516144004222747785286590907095695946746167665583644364265459561872446920232827047708290264909646532703225794152496807865432231597374760498998408306568932835225933703360344726782443872376118105863246983352608358023223976518528509047753709608132779135410196040580223417536283437651013546808509827685437316646566901631944315302929222781479364482171940189156714693828902260374033005189811988475237365672077030467121659297425905203779337956284212381117939866149792705315346603687053665638846565469472837572536634424393942068298059167262957499916959771632773485377089001570750732504493541723578211552820291754598665877649119457531205956172409133307783815751067086517609762171629948041842544914437881203864280338639523342243511496281925285272270348353620156078450706891640952913471024030633707248606420016430064345039684444680418492971183897314762772259321555470183515067333192727190637241718360790409711042424141256689194157519884169041939907241269078751528463285126173272002555227601014062746538202923443851410180812123880897358965271035903500600958038920803326897291897457964273071682515042849201326356955508878409579384641119314665720936166298302466761738412429228071791322904691709425186908255782282705334461922875303661355395780468092401399763456869953754531574158765175690001725231826172886189602176347246336034178771375702858920675527313363082403008788983508774971859865047933421562179117270440453519179177775549313304919170921363729351441825493683666344155750509360402417542235177668495937543027234791901019374589465616604982635730017573727695426561327116733181113290779417162299017921582781027348266691422518784111587961673525413327804269970484671662036145940578290244313431448913730328932654116077073348632734590552767745020066674851839180661728681074915817573061147527605277619213799966985158872780317470599383127210939001553427639031468554156932892006609367044311873888831215633676112840843415914168195733009626694179904559468940029903006631722666238766349529276082303167339627478880978679518491560255552989032741181473485037509036011151866267850721325280679684913270900742255190233271427402269538632767961882215645274100304907651858082809793247179542127476647083459167654374739149681181523418683202815859327187798002795726053319545486092058489343959195489075618436945780480992833503345176403765712479392126084179719634022447876258757196634682103362498937613940512627796705144164589773768701411795032603989263991154251634518606666609957376351385643843908738051771044707993401499364767610301598453834027275060996768182368196309509612843298491900444687255224644100199120874568728769946390970199366991900232896252657279953119487413923275605328689036623489023966080738751792105296215176394417164060038258409126043249211176490132552958545851131367699784820449668065339216955178853266881930949535902348866344453109175338275577048688885255037257109865959377148625573625436756084648139092708362796571615872330741268004517158825377765435616571507840220382652790497994336308805913457975011695326029151595113965606324352912640262056825143269430397083020596667661021090659294141891081927333411758366403704863900747344840300608767210918721895776644056337608528279603065692463652301233841177832847883736139391057293389766469931955618908046376370179026318460641904059250818343733075015335931854806511010296501126409158702510591885792319387177884933674658925119832467523349112988109090667477855299076269529120564557210311335844137488888193897708213947875089857896548527701464557638325900703713573410904518850073749583534232787792890774015736542635593160912645010940283645808870102961039644507835205284668952573240863196610409031318201499915773111993145127557450025023226206096952053335862429778035377306016108510988088963900799864535397354377395506294924705474652322613303075297977731348024887347384888160944199358828367685039806944891933537425029497008887650401669389176443465689278368441475615361937898285715052715367801412470648872230115398880799866945244725041545557865403405330870690571473336397824748438126151771310892437340815108962721789940239345957513563313786533198229189273300982012981063215306152317452481030535004382400426092229353527426127016283768241191209852892982217739279447318777649458137147814894533770914386778380975639339021589712722065529865345260799604226918893372134401487179283840722603682816137271656343926649680937601989272914014243696345230379668965072938072041624729512555859692546255035161701643106382874299316990099206274642445249604240025398060259549505056913648525381168829554096530412962839037206942884971114651643669700874110858685509371600208703957571590263599964206770842391512378931391786266149104316360473753416492526278919203358778444822648878416746306235695854065327043678383171472006578964786083959067345006506557097769476058824579733717507313123084257870298764196030175486912528308242476947448723644327684122181718096258079175817173491152556824318368796485756825072966959099852464896481788169094187355083500313999430038681586576159793158844174166599015358194499686801642089596255831302487500092230629997141378743779484014188891120530633229725245073329947105955422301057366261049971768050610491271633628737582611831355294143215655094644439645879828944639412324462359597611024194101369174084704874156220096565683355945837860158868634267385319472333077106446718297195421083405544497214617054883591890741343152702565772473323073328098980545782650922513086108217650108475182053160193741738473219955048411920325151883679466842130382585556587954376639845211467799410439907993636383416466624871313811148207808293498730221925262148678091319345736254013919663135803045209260142363848160392332071313845333657409932503366677664117959944248189430480980138040429945091145878268525756758334041845687238400469974864725547484379817704426391643986584435466682341134072473869234005846484616267732641321201175906711875501826401167428068553536800428984779399225067810917828556278690202182078411653237405174311226928054632888977519937012832001546368675380150219873612955619624285779076772858130585210786290352779273502376560010295319774780014680622474313727484120235782260868424559233312885344394891361361123395039981647563808562497702700813463115837277650075137782142753320778483802727377286252891654222548446672727012191014793816262794444885005121304887460156648778790320815303822613527464914365565759560988208271007227747466562042881853999862731169737955266254037768955155942178195175970996916253811534426591784196049332387221593995247144758402461645521238632585169972347664626855135746057686750426145859809752860829621799661922936233576827749609768787492027201886440390650971882105135079700664361828939669094126577752714857720164742203716907439389585141613474063701415492289801184758336033553325117971901125170991236027728374775324953649637615749876259126849752566331733081168583978420004773293639737831224401193209809718398392512011875077415971373185604959496693249907487513545359714688519968519944607817890859858307661295122487223744842550706608416978006369926886683617678512808552415647731871981314675129250154132110796471838549914276236720433329288115081540835683864722931174413208657623197028662183063227661126870534368401771404397788614344005958306356324681625227788123937859364961739738873165555348631310458955320051883743568619516038568642506059931811650878522140831861158412972714084548245240387907931847701700291869424398475954211392839614570778843788072224507281989485987735076276835918596512143485892415052786483086178338601743480774468244488350443526984339142928632754032437877279553914540089756703967926497130974865899027607137857749499913636155773493788191258188448183208506358924374841048047465978569904330736975981403736278674100225538091742782606748919415745391491616587511728009168818324404429471581910946843305831767923100971650496076034334737095866594321222913380305370620341966362534483643046781737792888728377085453221139266110873150320769782478079166750418247580595440231498714539203610580075458417519901006822175025525869346027822993001335672821518804490156552234455104616035248683758767048947509453059218886628293794622260684545798595317388025120142032457854824556794204866665564662574893905605357622197996992319327478154777491308936994184003213583484878088343691419261921566789216408300731382161241650067109345366650104190696885761884673100179423492538594044460146360386156958033863198978375668864113583546789848061930198356421472517413528450712502756350106482875328310166295485377449903130280125344895869761213090648732528504711769470845705328895955272975274766962341950709343694953732110342681236411322025858163275702258371965311625074741175581262468724165897403355335781522360204930664462449082752759269546249234714322032331747321084068173245844788456910157882865680571213162517144328679689692888413902255115528309660329967094656796769054126847781755918750351697624314074072359923002480449417441479938584137309827659036469939042331831715519414261489649406021204249913023653003415577075138671363007176968303677301758688104649165509227799334480981927155152122488270294887938993653398787154622635816086412040306819887145030364183164252189290644101836665784532763532531610049866182808265538099123681969483416950210857254781411437693064886174646355439199815065037352798120112192199948781487121671662114253352734115855501050810393964778053570924949498317311151306750060255118715084929887331992365698980964400339321617462906415965684031085303413639233333011580772573267610369875116754516669592959314777650276745026724422330087620269831982293715142265014587321933016029170435600512232865456089657424033430632279967127212779856515678750909580525689266606737924778077423019374354332684773411094334532187615976469068131988752748159249627665207925288076643167336219959396478474759917422466893725786464880338683083214679717745273813774570883374087871302420138020555106840810772725451236029374524471619500578878937917991966186230961694611450775750764758085542917465076277398068416365490401494483593944008131620240482135705077893591914255082220079648079440677666520099477480271721868882231847953369758178554971715425362013167506339517400417212656256276251669346228004027034831438597494204526193625648464839063661606920251516949233251427251255604857670849157055816256096395434556403005444342297050950229273773336983132964381476509541209959514887550759953509035797418717378472922361270187280397149515394404557258438448965947067928412731535929145926234750498890655343047713066393912410882445749284864146606379239407109628686045526050429203075739009086378137632894295119155679594871588844032495108427440212491659181541785931689345742551697981493092940817834184849219694010359239322633708149135803580945150687946387370207047073659607201687506556479715577606558642934899177006386045218922535321015459972383078628664503845206329963358934445131190733017723566203698427550316040623580492015846869166874697689894169665749458864721700395962933620195592820739645101139863935453159184371927323663814939030238911796853489844615069004262872939885508197136799565833571162364356819592416436149909603015279103035237774837187733560027568531939236095245072747733502860775891804888880047273477714679095165378474843443893193697248660506487957756068457710634954796582756843918453982219144558312173008192940268253525905823920737929262869534204878646091393661853699066056591583510989679987496617872687433735367854702083382666985351987670455011123360120907853075910633836627003156281317196740871802199485986166834874831744858016023883026408578615253948029845828682926702394259057981731811271347644643179556401427448861580272891201863381355895990932880745406475677290194658937903687016681338148324405064479978579979632204601042647919683442568522880194651407541418044750535310499277945884651724732266609509851096227530650856568054105638642535020640212851216901610627632253591215593865102382531174077461095460857344564306271504846267310494490135826253660957511062370783532144583728304453248751560200290384397998366578919030180661344833083258183395892605895575046891873622638169207757853343503221426213789211329480773589492029706761288952089522627315267476053512565201709649540403630136818217057988198258836397305619097729187096747526125970222126027500002420001202538490462942854882994767479061006137488693760433220277245031296044657742231816258109336111164409365577154090923340634703456670632297422499589069537879765039741252796423273574069422117938490861398509286675570059675930784689565158965292174408077847401512070810543946122636831344453687951828608519101808574936712615986269420168064431331808558804335124138132084426049160766980065299675155511488367466111630232207677579486858633697967307361423041551792382118514489689745600335649272885301244986060517733624490170279294685817542697949110949804466830948663726598981938781397868729653307206350007864091469459840240834427156789135842621379315948825864461485134722965687854773996093127638811435993388987266609964273527278043425784298048611879577155015020010257683359970591914075587925612455788182474664919626916180999649497587384898393362125465483622743412709242218198910418608240334500101472027878703120713886255230338844974696784881317239691805947918435070609475175202962065856180726290679485669862808363319176781908165977078362547165449787191707479208990663879075778686413886107210339553152883568214518942261173462585312240402834060024891499368697454639433556621255840858496459733018752795787585031585025009612868564437757839833069368729249308628161870252968505725450324853842574169097180634404053445284850599213016281139699753443202762177141226538075521697594280796565204287958892569145866785577432931928951116398941927757426563941466682582384667835520085933184056262490636000774454824048313081281965248689502706438818231473448376591324054571303086894068948626982436850002248565442257564114201963366480308075283392844827229018328805852655112795818462440120566624767783730010316782307437150452343179731666065099873907674584929104173660972035457354772477187614701074900260620168731060334763985984071471504529926434103045160878202325534261534566465906780946396065276396246488858639299351182351247013467780620805040457890412848680879594496068584213865013787819623942112116313172900320914940500549663943039694867276323228260630453610130889758798887008241463133890296762627781470078719449739667713312706162334943205981095069688037987689538503354999038476294536506291027389805327845021595217951778240420255226994609313995392856273578524793738402683679638613093157265418985804137833238062639887772829080456950836829332262909185165735251060202337091570099066399468113099379829375917015173970678056830425829559085937005658669182803595948169509676256745387802630472057901890517798591687358979516462038679723369180163447308266238190847547348094822827855713074018529716920950373736440578598328533403177660135022439122238553686905259033251888594885304481707238980315746741266506810382486907195406748312044002897288426792948890793046355267050454947824401260538670509117368578357788982501472942270649277499345055683723623629787958435749404161406771169639005581699128698473646213364007035511746102703640565413748219511325978283331365597416561110455407264072072810256339698405872071307584613694840261668449695334983733397254474283392898643546837606912928031127508510023555517878856303980706980944359306352804364579544337971193984010697195839164129383949366574691059326801641435314685964429335925154206403639549666717317127212384608452201365103453103156684214465262334874664050116126471930292120838988020172375190941136043923169962466525010156197762822553103105720766150520275624298117076579642275407725410180520559582678006837901133080759457879252421945254267060120698586973219237293622632804933377025531411350871974670309858557759926512344536502497887487870124559613794216236860679027382017831380437346994285104927029467560370637669222825020982710008836959366056476156313291593553885920486423631516831352876200089334547822393832790207523637728068860462418536650748096919312234339401699244692134151174526062875850070368279188314861636523985222095556857090245104025036357166259800284621903794726187273853484895390705515346188959319611717680775596717809689057906402247786974379275021192763986749087860514978891079106678031725352541045950855639229142181014305044728519173753412266033303433776000828140276195246140531716395333645226902616501109671733622709595046764976663786172312817194333230997426644605338426188915447951040880543369659979156232844053423305471456709140481505109510819712016908716836252489104084105994331865818309489314235095786901220229307253611094461150982142274813302600120198738118161600565972012275616027001248009694202400280854694646147740134122335803111367622911042827724063348325784790635061106308774024466944225728443269840300053778389356085278681374687536043587535963174037467828829821439789895806683752651200014730643141822917748048732582468992216203393468510692278744055988164365004415933643890846290383333468543028452661664293262702955865944607462810010709516704445430179662580882824010672737180352334665832830249692922380904863283936603571034368528479646775109627706963177646311670011133182619956972600446057891996888648112294185167671063825104246539128214927637553784146620012981593870020955638550942440871614712107400051541934898997148067023258763098986892099276799370217465034642044785769395284152602870899849970936494519747313814066881559206456178925922695677413020983696888275947733159920149070956224288327959146875885540508740082409339029008506788039581770085535906974637511860181752056493441423907915369494350257010210797365558172822702881481666195801400234358058712370633230486085741385719177464890899937180912024366922040725998397641540456233218738217262439089814012764668070464847157782289210858701822960366870693945244181062249459435826908215536171593488603398022973009931892379643988925547116157004101531651784372673062452243397760990343629200717996802281441167703763836390352826388375924947169231231762060992976962150863576874598842274128259252676602113908031340291428878107682747138868726047727267528845847389352398048971458926215481483219355253399572818384627846756226388951408781758449709757555373323905553159919663053735758368839872989979481012064677646766844071999568449577937272925658761732147149416731987519996080285765284214930098840150412742487011239777239762205366949996325293697270807049067798294231497619903211670929572045796723811335464530124071033697203118276129192378479357878134356940427260850728168188321459477800669774302804626999941907928277326858058114500670223175551094919563160447045086011258900987365239188392100870234143850432383506744267565504186799912390563258418318299620909875849402477138290384842024986063268910133504603277174663284985079204991262899083319691945703581563883379285681189709309061329979735199751988162049484494993544650809851732217725752799752245237348793793852824385116380129507966106694463456870685934338511520856505412250372363272798735953306109853793313391872009172094228273456106081986407142971457811166671538191510477000473359306925595388372411551567449662308000727722631029741490834048976056306990816205880265850186516206018235409302161004109076291726927907024374425225165685483307237811709773956807949677757773048043908751680225822396081463833781294077136180903265039898983617245617670611609328128934234169631423761651350619945871064990760858633879398002302574951109177536901568725205871536093647012898116366679097204527501722296564391924388929668835687554471057546514469393257655142997176023819598770019945619850377737762995234625913127988988678642365981225091788797435894744038841264079366918811415602025921734974010594144495032830253387324424614751561386688769623473304282994658138774762525416724165679761749148209067621633395451872560176821259063588890701737268848329530714978274280753689070821630791964735970984955095068813963229519681597010088720246957267379236746771570768116086041657319622393235289817643032370605219313812667780106725246635552623257081924467660194064466835231031570436497074439756576540192388419774230029736419961743907286249258682373128238478313025070173563588222490140579310008057015521596964161661132713926659741969648857138627450815507665329032980417288711381517317861344333207454389326122669976758871063304185818364217538020727797004385368440284295089153626190541408387461470585525239920896021214444882336890068862353414977127320077677874540667124261846414723362740890821672756784771456807430583448440329728226600092841979355062973204510130957994050248573770861237543872553662335430268071091227436661099865184062682758034757388126190469165186026130029999384200744914596482582267460259796108761217392782046621843755723242083263412011965441672798999567555889293021393069295254541159541940786872299600330989190497904394844269422229980668757525691572437575986300664412904626009745950011448347196839350541512002855164645039420514953858154033824937116011810903383652125745273489118835439881210000182743791563514832125651923850754822742382343001006286020440490910314690034533613143278198928595476491624367562279775115636319639402898300042658745113283825801902671981920434841425669238167289837670256501912672699519817601927628084518638967625352067106917550748682938900923533810572824332723657904212677870834853513317950674949168692768331423404765736298429217212679894169192057821497201828389022031204296987656971653388630804494586135440239215401623578358307294805895199049556656153486232449198431412138358153017172731049832962847628004145895644193367656013411180240591823007965310106521587581057683784630540882673182275209122583101598267293041117889947474264420131629841557344836310514459592496072137376437552145449271872909548429550553450847794497881800083291609294447705079304674449848983384718814595450805210959700682149851326476540323007276212852036527118489769875669276949985675887287546961814267376443939688492058420049468428261321871261579241921833450450669294089650359375552690374499092443253920094413945810470924644119258528427980149371314127615927602425360953232059176412375576901713243652056239349435006839498479144248477643578242811338911419000640290458047535751124096338907476443029246767477536907576257057100035827991148449823535873741147192131355909158290510028387987277312020073149538052897299374165518223186672146727470769942434797163355386098186359812795323510804202285635675203556066219840309453360312998968869010147147900641370984336620110317706531079766566732542570256156603129993197914751240404831232651563876416603841640269118910088579527394814030207175721029205774384907022509778077121975289963421587215250462208573709207990907895717969245887833869273591127274077175055950099423487621816487258003158069033539268216953337711425951275549739538113686313569037334651467064605516587118224603049464189762096073341533157580766102407212473990077776633939417262065953487495384243871035566087482350190705905143708833664409380181769278050448395552478551923360313901315205904685064499846793258081915406835599229205264221510310349106880170363666478709354715014457202487510034085503005161121677593001886574226044052563158702883000564241207913447476454504224154896721108553615279991076520256993819782466158885450931356990361396194323711959859218690103472881043960050038412996247916174331793435516695058121869122962260839358882526133721765160995756503406849157732206119869930137629669808307931488372465875121445324805532310340016881551501350113690727738057185528781492647816793183547867114947108946216460195951369094833474588930398830928408187586699724199840868661680399696803544019784180522416706129554561912886820985655438706758576874414088878125486208661478513000344101824488576823732490325281328471976597573975831175476619848883598297614254765413689691022861934512248073729242287448965088312752029286927742864447210670800132638509313487713800357579981989809215689844192224963367807111428548939437361306190751363877631618996750479045965427077343408044588935588272771099356189386919234235925339566313416685447497106881077094236720181938256105017160443625282405784103039983517909347846421275486506834730594432792229174821225507737663122445655827059375730268173153796738766978927497172575317718062162034056810654399579853604905070558364311857610367514478487708318785493627382354329231415080480167402696309564514354569923262695785649034252288149321142330096822871160308912051554189092160339454460720460780107032092015280110579570175975507890706098899572743836402002144874275040664003318449357740751274154453182660762444754727877712724677016946462997698791657431749352248297718839335653823040875803621574009846520814355407487425484964022407878130531969670455674917423512218457494199043735595607764281100066897769316846530194272700571210013243717990827488621771912520645303978871366529765944315248466812614343966353051790899935672193419298214852571114894139685957093990943079481891106793398647253173418217286693331483167193996282744885403917862832582043786511767557771063893303706605405526614736267187479343982664224128410587500264591270164181732662561346289729594047019101057791840548699266482315552325779724001814822116464820244382898470747673588347784352618289844540874570833641412659610174733343938336153891640810285189177688599777692453885238619330945041050088685927806691889841021287566011028366262655540225947120021254370710645879113410137474104199230145169006544019689575254266368650696164324721962321483502634348320700597159514537524357315384496369664015049547889498191091472363120180253619473643409265615954974607490040458453320887324549360568222680596512445621019825317084867341581081976745315746281325171138135800448638223338746152431766057651519132157754325118601054526862752931795834515788274752454081264847878432019085104724595724791387825665419639788126404776977299070042092225150702835280583411732808619561340836319832085452629319845845015053419085421972997617943772907336157029405896296601657964163438713626125943375368145192282811135723942656384238614504767075619649415336412765942482765693779255512815981381948484436516715901794969474842694865940122745605576768707760412977241625815802222641246291477995161151724304900069179802197202043530421652035591985870032535506773217120001019973247723791031092597705794027913756817514372549697465494411401997328465079121914892442837035953924436760569000687220126375230687915772005583614338130464205937569159295827840798832092835911662345780237334785786257594677859638327955042372472170834913238342335061379244356449849524781780986029081056615193044999011797011074138319179275318125603139161288515059877245648226072134335441630158198405721780563452596770550484088162168061785468723620117933737316284894078383753263368662296869568002746851827268535532375717373644135039825129623123931872327736540346699484121242302891707645970891677459864224088834649368549283450170756180878092685343861647728826902291248713148167002675224991009783518387624653501251444903585634092318713596035592585467599325415274488729569749586589491546496664578510100494506552202503873931666958031056033524475838513587627273076135806315891669952691334937795492727454926347992739481111880816805174589179424198569090456445498186792967736719311953948087239344977114956606610578381034300678900076553376236584077470367069545146692026701067763134579906987315315835233360243530636375505686649310323514651459681134369299691055842340139237434862914261927404258980837709876356411221300552007011829859993186414424136747289702794730487845504510958735471683825046326443232042588204732536957597599184587805656239595448906355039637330934828276041407342654988777393422508641416596585518518755077870647690233281544200665350327355569751385511584839273906999482357157958863666891789730975011975182919990658661484395372480100573453062354057330689178112059266511444241009712552862324645309925784184087251346834574378322561436965429787086297038609774813345811205034587459902890541520718297235069814942875236704002060808117313845129944109202238521633146904212224552361921819187582517066430189937296688392428823257248624158657959009557558312656854339651432594648604788333259497411502835092796423573351274179331602213274062403915095734146085796241353499792339814400199127241711313591420726462571820855381873878188517674635080067383265097085426878168154346242961511528524327210703677231722783767895189688104378832541288881026836051237179444032845286888223909874401865194436692681653999287919807251443371948152864680439875808615358158876345901448576458395218850255061243900480208752220572766939801760418763203335980526019342136680794386770647938637949529772983806893913456059618822726905401153105624279857150423813877549192756439580239152512312504539383178175094384781914298983698785372584501778267032399566419449601622918092054294719727368658598811777149555603618909880987807613887267923501517253940437693537808319295137083077481443626899442266952323963023752974809768996688912370123739569503360507749978153409666250762514186965690616602029470547603508012236574537884368780352736878879103491545255113040269522985078139453382142819049463912856827312327915996149643240905180920156359342198715951962979549735721871173664837106496451724737472963662969235043309934730143855103382660340396943922802552185175509816487871774395557693166948471863810442678765105737007067051672933106805870453766425102395838453175528621499959695903067086553289625247560489188452323345500220108984086274338069811672671435804344707087483093124817742479074561211309544331883721117549171473912904195924695370890628624465463792520479509717202022974840151478205444366728694864237240123764157590704584775016261823417747228323237283632116286128335649027357935953863165871080622220544073150225282075455798127929977743482990870008398410566184155839739679751746173960784539446512495674928763988148315327355438490959173375203605447811298383708976898527722608920495596059082439559671232081989698926707048530219654332979684221109147317594900305191393366625604946788469896590606150443749153598987756572503718661368336529588345998375778591865848285336279408157551867437445068621861687652312646433839644162510319449919991631956854417845151083170753922502673823502998254206847201642574029503623362172343576028994164038262951477994540037076865368896516110273328499640246780227327485649956238653947520890756220874897926204619244112843282221072980146335983978773806186314365422745292421846511574072974689180227785292719328292821720516502976162259516468849065386716603256952662178138712476738285696001066872452670847238565131096569721618662378004821607175978544301972100377442593874177782592747471359981558508030737195164817403815557023739164015448506471484491157755656453136953196407466362526552701218341349807584707988175686613199559486759937164570125052315816566065998381374694154988756837613714988426012596318327169998333387658062614480578674333204016794359117317086562990906578173307514931662856587073405643381220423422071998688430158529993587535792880632876656200073016069831856287453251133655894465858501913451245097124821093890603539963238829031829637485931243226057196713245929367842267029180974778709951490309549813803720573416542841737047305852451848849715225729856901685752069946889163376350378225965951528863554052311895987795302604078353915004519084960888517020811016888668685011791992455428786585168056189534249082041206509114840413223783557879688541584647410928078961280695526336526518280750075888269706456343157217924927081306537452675752875861419857537191893661465492345072334684793860251115902404730240233070504740778701855130136170091890169688301031074937146236702253833965578044763455172896698937604724561278756747876318296463804890582565416103040265042358891835842496728322763245254058789759980106574571656745232355094389078884221007488720209123381894054034115681910969018142393159988623194037527231221042647806731518342838423860190335526271256874416532495355659604302568482589791202113875476871505144139551032468961589216370654045674864798339690735579576497238981403970246712241960624306185731845585770792167962715940460407477074944723468245368673930647579953868375089044529642771885052039087736469898561474965053250534024854311327331011486400973136654297549734741871572590275704657477408840257498319223418231714171355040374375640308330965884913082806671096545513129419258020655573370450458079699959009997312236951668008687440606439245982198179917593366630714089880828629962762514980071205057894064955642805908028091523663137476033887906376113790373731747088012221668747278121600715847660669452451233021585769630770379879774211079811350768591724031055967490519326242510312769920019510933597751661537704263242104762462945931614862705784727842294244897265903891663844230911402414338793601973605258612764475848749048258812789611041323859161343733795049764657010179996428907029710947844600227758069725145782410698676148600349510129785147623650186534267871952118861700305761331368935563780102671121446793781660109410441332677456715081298732127925958958789004134039107064967117568848960808540328084970389544298041519905440338317742362017950675205923687638007528120327162084558087912871834305185815598961720942942300692273472130113687258462009970974379988737448182971496985896925447128673867164501611544181198792741531819138377369674768231233933993638655684415457383556848619459907624824292232202709592258828050415333591294059675992207717658513475104959566923792524582170960871054932384058418230745530068537467243047180500038311713066811088790348112019306268202109803813528310306361207296537723163990222865805385175569319981753610773212117928549006786229936028132264069158658223372753924764348310569190287167128436551074030395453609457331708165798472483240936128182391999488068003965272497924273328052780907544079574790407328701596203616025533122785784483846631921807731532831165536059126487230375135088426316817251533768737991353971642184464462479439578907997284438871958795731056752618557535911728900060968277104373013254814951874626314617779808379718875960027253242231597654230746573430071319474705474739110963584811169865422230244316438285024002766436437509341075225607615322531232509612756806588316508537907151532663566070730087643148395418314459147572022424959843437261111327825182280597356628907800082444295361043982910663821016082570131889157852957644102141696365803758059308759337941614522475321746412322343337866330225459004120834496624489930356817439554080694133271528590871900281006050043870514765515380512361322192200549116352736570257336054097025553690277342690344685881383386617263244165485786744698109105875307674415822440405426443359612367998995370400772257405195944607466362080831690193223651031573906488424118256600222582942962775734047570937227899022228356677679155025829653793236249514893254768295284805868836089640199403520010808983607251045572318340096020584187379857722987852137741656679039316126001185741018583525183127670050429523970897942510916060701086345345352464575825325238475741038931612039258509890676833822351400871117846371053087620209585343822547383140675094884193794538755407823998266383784645694420457906844750935279294543410620099931454795836950254943481274360219576607393393585986566577165854605298136342026843336216206147150716731157664352867771735002572613001253962701043780627637615760668365737802403975520354932394998403833679592408726091266903076912711826994035096828672848268081446265653456556439476250441899049803835654666809293223932860758560472449961092138579376812342708658190950974254594751298743136094450809644903781290630599790002913240204992406028014662697257775129545520527094061438098626883895193569342469415382229084946808109235274472278663897204367308835463736195867960836996557293759303448943273937994471510595914590151601651569456001690061230813206261002993969142917873628445779361093905429074084659307337198376616089292879982694911593652577005879427470428990181409806410161984004976116762786500028731371958247864932773197203150183783729166374510473508235971592768227459273349537436151607626041563990554904963685674584374362552029844955512037445349374998100110272965481162350130240638000044752165493080782341782548732437815096535910238113653158082894208498100595033662099373707169373276597877586720554254099936100288082485350298161533527453732005456003951124815767953514115560531746251390792100418333721237730463015649813787304346586420047327233134987158444425870037923529568535778923761005884081439089550425494907596837465678350440597969998569818239161357064267130024051305031588817689215463593012070945685525697283962533147629129239113879947677657154248645696282762220017399109438495051938249310932526984781481640978771447835425768436454640748420684040986842063763951440697759664366198228461394679300143912526921946292496827051800692365453175560306348343505163516779523766362883487964455559803098828571945563303326892001170159224819369529795873189804181155391256960374868211157940982869020300670678962247490134296623644164436840607556695996009876665694951657879586157872641507147501393440626276390503449186457127937737012528490924076964335206282195491464487165860170945627421463848388567009887665609842802551915973736445200723091652629841813106493244594064205686781034738027601374498965459292197802495608309728878573012750652587616646801791761335606580682667374552220405199469918395490213719748980974941850324883578360272159096110061431147630359415561241061158508870447423106499063427008154673142434139210366631820288856941646301251962469079091598166846219852542083332669224334921744279158472687784847029397337556838873040365293663175017010730614322934289673772231110517660051945818984232546201578168040249517759317026312043566314523489683025077658942442422195066836020933968685599958025533446127706043151793575131943344339779031719614230094012580204960889293478094786024302222302458264562369032097043241870432532349238769425802247725886385853234855678530677912611825735265824495806131126370652693036483691940944010082904279703155447782979994935291776782421743290671748798566849516433397130901957357374019869677179584907159360429464027458577226454787126086722308581806391995336674003545879284984592209920035905209770801069868321225045152170643746563971262214535259415539092514017861166099331543694615606612583753339937202956494140847534394387097762713870372157964773827049380831745431301809591181117001660260078934303958240097941291449953524939049812598740586674071204403952484188687004359686961247393772384768230779894914201213323776411222679469905838448867884856296346091704758986491454880609940702417241266268565078909355938005572748756824009030643701950740154389031893762082840572479756784036758092404467642379047932305255687566122604746022277456593109031075069935103359557021993357716671374676566950412271031305490336558776177677748112928515204877526368434815232281442821283570467411640422933661437700089819813448526561373071350383493567696397056729028023312170428983443666176889576623122117485402335818678575777762555847872948976995455336708391842761229385525576327349990399419792055744166472173609077149517021691153157726947086715500502705170085350025735809489975851855942547140444856110536064418484111756868102102874511842970908482124002577384960182473370021288720275583320057313655226809297003385832207852760964210228479618864557641466465441086981733367478261480153612028141308993641298789965734621580508431906874911592399624129921142438084361482868049392256992741048624601512767405243884945269864289283852226730975438103775269911226255212262562786116749732670329385759602509848523149157953594272943440232606176388240263747021762220862534278298362682690791342644275949641745805210749333180138025161132715818812127493446545094680858953750593929864745274795898143101206123847077804270519494944248207659678994556967074707107593890647624606597266568777024124645719981714116396475177188924913501477398474722179863203828589997624393440334942841634616665366994039273946718918067362683010631685117589447903560557799031729958199816919650067553600056018091862835881093963053363459340257081141607356375361725081521803882797141187318288610105852241710363829196332200227653238308390331487899445417240659435028692327451355703905439514171643412639439749451685358315435186728619485097763371263316807631438354778424788556718062108330990691018952640056315030347708482326974495184755065356713292628027978806798366461957014625280373538429283282658613392844663301993788937068560456741403133359718239046162224753105667530245095970169094743553758997244995116722439375033448250145438143661999397862766598228138624910213914192273328404322951737791033952871869552403002039363152053315017452549486130088234138072599706735973041239055762351081834617326760512664587514837478972700243675028222514514765445802089338643024176105008401239893894250516931431257537147971795635207842084841226530947789387900276804214281462538544859405878482127376984911848034836762532119856164078262214929508737993876357103941508495918618610157767063804183648316778520725892722870062814843235994647366881171577662333843859582136709681272632427737164435493830204849542393222200166109195231238889220612990892111723461569138372751319126644439693941029125257393144887403958744444500393529047189299144675950380237875940504091879476270442688064649819726110401521098673497277642302666066019622134159233897390292979249313574039643580717064249620451862855314923007923323847473732340308551438312409994900652675495789888296425848180236601176086005012809050635938928515024077007092951255549680444527828318699615402339307460703906630349210991738540649628324429677961872944480083981147897468187810070542569032514034450124960931722820204818581698218461269178095631730670716276052136633819942489505925323450732033056183250252553775006732609138301051838064004362904955854133118146461989834726112739634875991583815308421626815110252424295764581577906513328732822871044783570713991437104473762245123547873920163106786623730439851469869034435763114707150900902122069135212182202527008208368576806175644187011521581375464240090894856031844303492088468579849642083785088513602624790977438726480597771153932499659775744667630642560428128927274681860312882582317748934490002089321549430590266905892483007636096474452722393704315557876540982347272790124032855903626940696035008566881992661542850155497687287383200065589774177482924473697132044881031378277552270456551678459159714026988895471262900611239722200043370256984310056710997413613955356878179881387839000371118123808179630910846794718506542602007895380496646670056612640773218398639742750494868891676729337932053987822960855153038548256557103721600451240767243161738284154737416217321699723890209928427282410271521068040263593960168795663082636169857470581868661167478543254471365724904293782221696970514700890905719223201498794051682686252862762002364175490374323378810093297913965716373618222463466703818609591590584010560746841470832299971061022848230705102125884374877111045814609615482787675785678516344683420186399022088818272921767972458737838511635111351608866556744220629760522804481264916621624125050310811941171553882182978910464435349182878831900324667863443958840241174324923241460127430044403491731981631883185809632795973003191627459788177249330942753931478230026352939006288817824249281825646174543418134645704710907629321363633170733142155652664297061609694029589839281077970264773714138189087290320559041746469006865819652800454225886535546512832253946685842119467099090203377014509965807589818699050317518742778919594336575161705151635942447404749080481885837047546690702857828133375065801326994217423269243256235649685862903832325446574187588141537324451036379963816469033245011518543690307481884468287407765569917897690214973189796789787419571837423156957472494219040153070754296638572523300341674092362231476699195870776297874939415589711278681623014349003906449289851125312200689928145628478800848575072277630103755558828041372093640204091981011762852542810805542597412993812857663853057874519769956566716283102391097800430275454407508906882149407310069997781169449677039774891711892024758630266987637522990904569960353998029588055956737839274837762078542635666925918382965699747693556146497781720256813544635503332165767689514034966468706830110676133301166682900267420770511639707431836859679975789893900685972799922610959933034411570167079997362601645081254412103031539481779089894156765403678451079436999423911137416288050090995383222411757816612342824856768823062048680723672817916843959086133703564015805804734072700920395602227857462535492167871820626830409818799689223402429313264497482329079174881100142891631087396208213421824141786572038259847500656305180381087197533013091812153130054026570214833290652335042062514903768187653114162293457779655924942095743215771713220662564480486456398969602450920089336167336886408462750201092138146993701210288261610705467702373800158978846270788397180017650572646783992762177179613974991313194280142793629160089544765097799005258234910885186508708375770012122192192673393337674802711662760487070279691533076447169019668194456312820792709944869045896838781607709539620721365848739830247290171803531601969319983400134159945874904674774268415567562668260363045582645621973536730332501729333751138729842526445951858303094366767500501883224695608543380329839455355241433020065028197897249893029738524011133023622789922221019644812707612641067822765482344508028979081362394208368012263184225299111016255481797224827323408036872314981249390622142996877702963806739925052179464286038888412349507422285338279322301605104450473961013352530806487772818318434791400092028605118276642391156599151611007672815183085519864895536026758947012154814531216997713134556508310312966682597678947583264715288444659286400974610388813866453022066907800281360352075298815464716478274219937576309079889353018346939329701167245476206360403041780166419217282288561313728477284233150402986626494898119750255871884229227410156134637321409564499120872984319197313246431523733243906033809996901372115093788438825898968474170924473557447127481111262269088048854656680469135893684261667336617389614505632326443814868151250405225019911765579123415767786934671746171972866492537354676984532535856703366803285420685265709603211002013922998825069014874649609292491162924102366021849178829373086658789752140207004442875737262398988335909187887688231617887697838025725246840569979482799643882998409325176336366711676784695849575335841935196835014458630011458160200593550358771673863279412933092969247011750366009210256335247089258603970595131855110811146394706604845228203108198313744894428185808804897167653115504818259969851979739941135764585470703690287637744488772848866376945653466575791240390781819876177514331129410574618490664154007671499403492079753824423198052300475197086832402371827528953922963766712713965794468126687212406333584890111998821514468443459751642048675220107531632025110870871572504821951569421139257860055372818860783356177580136265385702012903787058908645010787873596806059357573270513170338992932772470479642825868040848487119564113043274951057418036836257618797824620406174719131826082274144188042939367330257703648998797474002789806844886233954992009668300885001669232569680334387937318663019351643678536670453433973859633228533098535845401712143490953562204707139629275744358673343434988884857156961106562679482898486442126604505954954577745855020725877493617287314947458336326379080955257749538166454081779233773407195926772030090330623226570310997504877873039094690506987029635897616389139445620268286895666376995655376661820881107644861944893349487385377869184084423050613137438084187405436089584233016941494290952188633916264062882408948183129468153704820011742336036331635865499240725444130781153551497086571850563549311552174624926747589441719630813471667270099673335057331505711417879407266217227584975489463711826988974587926353716211866077087202541886091426033871292190464802435114978573096406287075770695736187239523242082034917341232177176877813028445610893524321585377127198754721826077463641328482115629398740638258490576308705812936238420822243239383310455587483293061356997458015635457959996286530063441327648970331141864064025418145433340002101895938901680168671724856658284805586270194908870109283258089405537180894490949744773473133664008934419436765601885842187539477076399404365283212147920935398842764062883518727430568448263564147680602263961269565964617351434612715138990099221139846506890234205628440043748766466784933881415164869226701546698633296768053937706697784337797655497755426195716688295532159176965109622455830565677699414466859887152128961738010693088890148793192449633651296937385442919015273435596074572364302997190116906069867483689675950343555175064651974841670332295410185192909838521992099158211992462800412225152068368378540070536896809653034011849694037702299002965258700112391170779257121046868495497375397295867544371925777626702300064231475004653480765158429077112730130503271694582242583673420074647573778551388992477016170877049848345097969152931876963224182676122896185945404532026682620582175721431373077507411746017762354094791426404907725902128246002087320075022552627828987851094720260362734174542365997982674585689430582468583152193772657539693301060824767265899254964108252484555214093435826204780248875073950437342931265106781654037650081059014453173140107622366611415478629079028978997607038768970638238829693890541207972310503864289855198365141754716402043953276327213476956328714036301954988887637681466995312331855353497770581303542501316045271148928715290187977983857997723748364775715316902133699068071910768933197162322868038517940389058991038777817845535478899288192448748841574549816354766124754064727013462453992815779078829924202069681616629227992609637669318206315951848485886413581341865144625279124665949540632836192351378285059028361135712814349714348448876691473530899891111340945060425617293217621317173824396296274554045062346997094576985780359698201109795673055653020913428416233901864028300013608531108729807812772959019638655256343509857123972167390916887698801688222830411066609296521863989248099873226467506119441682896824939636370161846022970917778835412987322095107303263159212360763647967330606368728326183101734356627777108773504872653521143153750387453541639135811645579370543085225178273974100598855976516870302824589280904508651119890450986459581653859858139174155362546835621245141159618988261404043409517375447118810057564195847630016509867241738355184096304019950602607228077945739800354706138513580550064635343835883703709815546875115115849190282334659033886650358356101215087542723994285778948308908794090051829388899437903870238017621202151577520835961803518696232195834865682343883066528371875325267985533855039744354606705920999831241344522221413549988691027872250744470870057299973508598862337895455790704901191820515193616514479846784159145633006757891996639988920267823809408564262857190031488821556002317131510050867347407807271209122455190387969398610460258619367352670339773370036531227625617806849161786048978423546288111099371180662896352069102464572833364025206714048034163241657030639430320826589184521389905328960433168563276405458788737432613291192515457816858429610977038479092503707630250372669912148185390760274484013331913122064911455592677479311129080521773758270374598279643005643140974272656127681012222098978284947981807319283368481326906826714498074731994252365140581537870203351659123817011413779660861991309979410245037411422492530509421008728282752595159431705505392467567541072227910108376463618834592355283790476125630719423760291918692113017129030575371980508992490209859108272747313475601752931123372554896577019872249804239687659409753416331581205532107717570276668398765651579717703974044250088217635520308777334134062938148452452130256778760628755721706332987665805765876320909957349026925699503757175710662741944939871108249596348594006473381296445446842142434392435152439282802220809468578657999102193537891099992211665846425845639421088117193072885151149843241685868855393817130863122200801208911024720366900091631342834795890795027225436890143700203768650179958901203858133677975792212260089349830004201822637788664162615087047780115646576754109378894435967075304213762422172224831822510701126654026214517431500357295425908969890944411386743966721500433681227587397456581803007535042029530439113279222639352301342901569130326088158165538732079386012024224880102418050963585344996473671836410088951284528622603930508120359112285538512631516880952822663889505229913884654835090929563999635577365708655109992619863110562545215747544866931433180959754482537010176493876811611325268516796937237637397774789663659909323581623471560198826418921040202545794949401228003950884497156065096540062052695260924191232159231495015068115224005139886276074940289835487173815896053827153463210506176618410472469140639983103457504448846673980864050052301541696810338961608657272640768057669268081814957206136537809760543783561397494105395658717987629393993466806124518190436576287816383354286342375903152475822248615156835538895522143265474801124805026642110685056324093797197110310364999675166598974636206903028288142725696778602361723733045178932726796506529108089912217565865878377575925438942675417838520727392996703165100159604146556053487966978809297647081888276984369168155155780635752495724281747321418837657941338091883849014866908445681186588838770584204881210827909217139127586167190783375712085379699351079188912602533727423286994543881836545661366697507800006095598303203977417180578141837923569249063915116176582717896222727559148369225810519546795887642876812610743013526174662186883201930473743487228860729817407056815175235057719607777600391862215111998860551860699719599007617346847639332881555755157581043684080743092724007821639660256439626014823363216820121235150158083987262260717999233367295464884453483826848556592837686501777405534007493074315508238436845746918365398127756224724648131870635341666827767028672819978204067538759537985031254088669766826339012694276057205568801862943826392082525414106462515210001553478520756024845889275494595011514718961989937146098685363124548656149106169755921324151359776308068681759630060732360280106113502810545517971801638769142305367872996431912040118201288977721725153667303040423227395977069267483978158855569915915214846846918831837276762405738116140269437064179710683389695579769861046022512810711881975149097858902777652836712859003322687907826047873985852293882361083640946597074661101180759215927855366072971121715740243511225713649994435682025462291293409393503488371004870699435562453215749006882501012311672857412948669066692950780954027902487837843109558080464427153688378928902124803535373638075615420537678324869070484837441701665375873999652813031255915968703391545558139075379185613894752895598506623747961797163327443413619853205625472218393879305259040387926421671758174843519319539284340120848205721929393175919856959361583300013144168671487921404182731820156267143275558621947341540345822101760274852440306940977354134646934191143728698231105847460631945734654972911403870607877582930339324300978860619079100233020143654868451548158874952116647553679791130949243274315061059870323669534559907596473863181604179588492356149221207387431035251250995991942956525456905808507291347169562353538024640109421386406819472380906064478984182733258575265423844601093390736450770484704622383806141432103358673403384848537019245531745972757467651969352029904246804421737864297740966255499246776110609534477786514027177907537072855386231404721713409384719975105898669688104791981227403589799025400894089771943860451961431892530395823496494102281996755388075243482158887866508250817699481970339984348215752848220704359622867483779588824329660994514306488328620265453762604208732421653149950924280527380496750469819829003754009012512079277122137093179392854667649131117387813037236107260624081488566745034704465103671749462907607519061820520746253818873338329764987262632754420126574603557210701975021869379952956765017467698065401321730209115210850464296413514798917986884471986696249507766786674164118818522037837387609367536363859731502848446130916288598145243661647801216929098241563554508158755677643148141868102572573525770299553826223165233402615616737031221529295201757154222357413437356078076126864655315109787818751607000587989043280498708762930706594832231658972945310347760390280388803259439719176852198678102335661297421699380573374216928786872859067440324901169250683889428364097017161879770548547459853337745671061054148476752276837812069989360184965229725946515596867218566647359355475161020139542621888408493405911148730420496725209391528579010316046661676360812925437349740980628051630168181556113612712074562666886459537804467474843688483887555656037006666591993346312047750960454110373949540771918713058754011788500945297142232312538589427254170358953001443180964904314358301167111745718011245564397353865696977098265290300774293874241547379662816980319769811194328046360866354146869069452586721731521097687055826627731030329151021639417946063655875018107484018958777841002282058769616395974106943022067662489990495821892854031906300970318742100054937474395016614821465085123693622201739292252334111110369131569022732197948931200486392354081812225979915325826111259479763436271637748099181980045584742654225657757830866768320335483291240228459246977531266415817418608777978350958607860962515804379967351878254951181584328473359431728124084916211902494724700424271992795810219956946650969461709586456122921409451560696389815955927228970402774142433936911881423646962767020305083038510782650938609048672633113931800286353559779442248717052793547511757222863914840960696199245570026060422370100412016339350929851807484080886905744589399328758088940637273647742158613015468800325627477147756432998267365798346975671535681927313598962392264834695847852284751995333143908097957487985643027137890846297536271510384996443568831487731026561136982554333224134636113679018555705268507314117095127193726364778419848892284219957691986742522657691023189396761913478728576922061856276583622161085126525730191951632911824246943071956587481219100146509970192259316612181482379251843026962512207868277443238770738548562810230547609072010675404248670158621887926075544536666820236989074302101280746492243696806703528575319474210518303182375132472945048090901910580485354942932653229601120022326486202960540119180841982076073635618113331656725318430353226619741584022103338990892255466506373560841084593472483288354064963921758894007783150054590370323739894920498667242424878846345125761811998341081550874628877886219172234954835578039575906783086103439848390536190058651571697668650448690173052489578685577381680375200376372589632407923714141837870463022256071234717915735019052071908978782928539537672647391730378485273966310469853061526099990299429945042307282817173186825542863026047165126408202588397480690986886601273814986247236425616780211222410455851178998074688799230776877243867760788737818844752246531558480380102013143901279302763568719219854858168177687381497043357674802830986145385369783643812948955647391791236797503274516294899251592550369665386786019990279387308762565884695867555933545102727522022344930176807135363732441990683843759515238017991462920651121431568587477323182873957577846223974741225492334193345847994655226577163307492782722680926693911444942558909144594396497878059234254021184911217921978927462341307474911475641790655539367982559127171033600331464730949012441167540158565553792988864104082691037390316920793158217606451241169669061226496164399180202293620817345634531700818462299398454858410070131915219401377316152656085203062782833221445385751670039882381540278881976020395799212224582043265741786865019054876735662806672643237032521990949882668747891377952800172918586829963881256177385552462089315611785758134286795768807952155227857643456275835713178554564826957664605301269231137438842351510859300905206027246104190031814540858539847255468787088951136897565592283151674420960517193139703625692942715937788268294697809869074074060990774582973359493596568208232024247673892054364265229250285461158409803909345151614758445071693799944421725509514465431249959535726575622012947934960660117889743779742908299753006864690550899497287697134762171852412718848130919402006991062530558895639611322715361463158844872648298735672669647949276819855590763143535592314076673041189546913585928091360154734519952208814814377710324855504574155010870217371913448723443852650980958274497379267737860267986029994664085910496078618012099333174990129247892259894954643674210821296981827997069063081299702751277709777162188583828496066753115801490278563392092156953662489418885259103246194000355113226749147745286280100286157450617978315593833177705379096003628443951310904441481681341514444231629554626386770274424016037135993926288779359725896165801582225871774845361696138741143989458765513076133673436334489606144264756297942473073428371752799183623072892238300819716553405378238327201307018893033412927744359796999221371946276015335868542610627853253974677798488127372977040408941243273836941370874284191868093504310425101701306351623614737795120371389444524233131034541378925629942978139536727705546921823020053255236383651334795819993675450597797732653922708345500272845475919943758349718730973837700905728748500442745527797121852939509751762395499406197040553254686824065084755428932370438306067575520082079074125009722929354215482025856191593449800738185328178745163268483906984535055522414628618431359722624466006090155230989119034411017268714890183846726541704176109403599553372693402427577616754693214178567451181314050756542940974184467840887643638602313358806710462548354145741338824680675428446674027544645071656828537292943645428627264403686056421466200813222504599060518075761069147922975150287010661988525299272254582949128168009236065712558917458688783175249795814637029549212740443578184014437393004777378344641342230562685337920432118732893633426154269543492676740574010425598642389437483967019719454905779171340583271883817352843843011148595476548924007412548364414472160049019206926482509149439992096957521586308050556348645717653368697176233048971489830263338703147554897258244650347428667873280150094489225422918027104704445809972537344260328536763491442984073703974020035492115672580607806712260420843159790650916829927458696980232195838989136322832477554226198484502659307978961113808940990527026595874137943503272467641393485214906883206331805151737697611451470362785775654196536192690758833532473096595538864027234653287865126219778762092887666791885851691425770737796487937781226707908895737382856029830893105806050897558614960518823999390560945597569129508726174635074380152214624575889104975377501485961703037059164082541861353734854237626409871014528612689901731467028408165833124728439373510706536356813287556580531783256101834714256303472310120689263057808200956444928974771312876450356770247192257499363188638970805513967346735195239774278587461605234961675923052727473074830362386036171473480825246998158825838603660581406783749107781823561581710238429160008450309506654982826434078394260708129273583247811731310266874840016448081044650559977393549643263512747016000205131812305364914094921424563609053789710232647051160311977552854442082514452280543436133008540913670957910571391984944269254351696382500182405275711339371514752895397757295123313278679370569779629004359334464563433649213869874461803476253325888555698256999335295488227356497694308900511894214857634591173504763298617619773467117588583230441534452240579456240452103044383909975710267328791980104376407287667003138879983380852813478317563525798049712085661341211067975886956680541077980208994412409048409470798475170220493069936601226065141753334988022952372421385436737021302267942333713712251813742247755336719028161319134091104546978099009478317173111743983671565767857244961780026195822757789471735175381069167413240577296886270371079899342846397288168100620997839256164432460799086093584775879529805084027068575997366547877478594443658652920316482123892800922495162540752462949467628245646712751491508442807508370324676254290721306488146427130105633769515719643761310656729033575051383573093673262932292725154021008165773494300223382275852137707709654982744939040589200241731755916498056872733000110453094189893069059918421615921290703613685740195604160848613984870185123900893830074271204310044279629325861208601136480542693836420086094135298628053157821544060595974635059413095242364944677641130889488992688664640508456806078424120847785753313051843842014989828440381309265394646560015994328895179084410438975008877758513391669863526059558685696549221677611007675725837000142642409187722298226267537055653177398897311796661374872478818658645189144608266783698036051253417532832501516516214411672439370332639205953375110409910333525615192295474266458704243502767951054576595922880099511672374782982544258799564572988273695545701856680818500951650591649344256892753748797056809736059478113501603470752420829044581791821306202403276526767257244415479859194873405473303702367126312510046583302544202155552917463100580579710598639036888263901992023426105985329384154898043859544788196673582491730217405836088005331570774085499395371477069648929773406711933565193593915056067425173303060353329095067062241587515120915050483487128400126505200282795920587768045704165725825737149274634458328175555701873061638498265751210841603317269848375427069938911611559039041047758816855921619936461239733501811764381769285251253710446166371875918133964698133149909441407832660963071123195109760341400802157755407735543317259124182170982168084229661949288379717973360973961788705926957799696295188402019804171945038644074310560309415232844302546376757557163192713929265902416990675830427409702993164978080127839361014942101725633410341391717103528388137234655857902964087687514425508013040055127659914482357986766984844455306270005761417178694617953328189020580488370818553392477694740571908774883873184777795527073132470908981258618768877109500752810529033029500755806213774488951678591422739418769935494870915077808978905093303975170758157353472973958228686303628638946443737667006628789273810912658028738735175353605901586619458752356285196794779338966790774103168714497715376392779708129369419673923843762175713676513464733525914036361848083409555999766928460556278576789648365624311074972653872964227474704314306286233566141008767520008186281254483476591573751870535790924466723574888521122757666552850209412004453022995209458737317844431978886145932317515558087788013514215592804455386229696333206237927855414591246134936974929091396326704030699999770374108789549627407632281519832722024964936474910592164729400011738821390984853996905175490905835026406602166060656373205643034336944328518220767236030662397167739482445009089446417812788520239131039676411297581962129171059091402474556221500376460888256725898900799963189321682176605416432983519033913723084205357400657715734533635097219902234519857524556441042118405645321383961823862818807190400803054155925987847695019901011971815827966447425241736925071443836432111330568712784296517063649662937017220533003549072048345033850336077649037093401104445455165291530273113748152869986154660209915364140477336142532178022982547783813086240825893956102429018002728769876310704388356201038218996140190022518223613057765105878605794236436391146087099029389804716619562254190434236888512963300954829908771968658803898416757627566785940343102459735749984459756472239978156062360726439395206932704000134662715915435406579509687489151646384142251525338612333556208986348521258256113040824407217513226681264376447121328417755567883643573982072017384355838056530825576129130731148768526974111595969048102314513338023131871321265042429626113817869102836216917814642737284497027601874562994898440791221693415908748345712552403072286162655197664896773029881193010528371238616483209867120216143299173658580323628671862224426317281863514693010466326961635616763369387557609259435124779228999168491136387204002952887238800808991925346573151090677229986844865630617202763980363420418893094621166724210553471679088173147219567830423992298226680244764075511579725772895317536449257117054631435307138047696726446119428729446302413182647062327110717163694325863615908198794549280288628865556381634572456757084900868834065646091638057073988737923488473460387946689935489535278013783704561431932840677281301648973056907590379742095696067418961912607072674103261996712761596312320112928140705177215924859761147028066754255707193363659945204633172336905145557915275150919625600986524335340418277287421905621642821322647019344794427751225835469984095202911697700626133439324581043378732821030396308537495055406498092945517868635406802408596407766441479814346264581630299256319961684186552500117509183628857632021375242519210395479683928772774861187588047278153150694845015248993049215002029810132696987879703993965173281562832241852305876950510508814011199681976351499964679383418180070529123890402293251305597864501580284824400357491922838689765301975645571602002322889303672290258755429859706020467570397395609730532297967344127768821523875610528640264525879332833723566373202405698659360886824595034240400866833219090921189115972498367621850735706072062447826055469240514523669309134039607878839678316361501148115696789704021617613838205941208349795439985943644392424937696086670591602599990046487551843051818771115869925618667293337094140982876324786193894267933891911022468105446699004057834248009835435361257717470339589008688280886109716778658581633709576425190543854953691621568499966865616339012048374123638062970797787901925150734664395904877795110055316790743253470669370702881549856231924873777936494873634440509546110709074981031128153594993325940167459600165292620216394111189370507218443894304613194330985353224095592277907570761615923467463569536446306031992200930280082632476063713024611620429377950768378841721536200084849852827273306163208486312017666275778794617546149234770761980169944135545519782931463063179444379234782115294989792858433535828066876243596287471638434558238638401010592994969913780194096000176639872042630986237328049223513127951242274424403374204833895400483319513657161807085954176439089243032888323682900531072504566826113918297852043849656912259230372056628754627686475419361746677061899421193419991197665476426294998692987985361383274452219001990464918034182069172548052564237865064751124431858195498832724300361561084998300955884234458506617234444264540539372716516150677133058358442880427221962250309988180217914098973917018476206803544561615377981797116246830216271787932038223960490607083613618826432358283878535986689530038149825888509900870711925983129412322559959690671906899505527924791541874725847360562227222797511279022155176403709221828404328790194856871358417098282893003349987504551455282662247064363344707345454995808286355384743862737773659283108239230237585651868576392315666832860440143242242251213774601263527095024125664678624616168229722998374190575356295264122121458746813923473826593497799485173486803103989498931371729509358576775693973929267405086083371521416694254759621792165540969452149551294707650063571546967540949954576623263825658886737766169641911700909465078605341913093967996096680649168486074948863724802728226451384620303882281729626949357044981584008060595378270200615155317769403204563800511904511214332747266274291457940015932125764453930763256383676329996551854559128042831858907955987202290483541465872334352924337902766577486658317591025096835602088675708767102671843984072974257205703567725339636930261383734837512966604485498828443242735172989708221814392562688942779208118996008748009615783796697061510721077409547318540784732616484525997758622862924502244963822408606472343494799250741472819261149636083280998013847160946759718361848753217762381703348744603058613138274883921810798317773838559610749778523317467839445294721577664991374058546127928165500600499940525856603229059016950838163911183239066708368791197614567616690307924823960145640820709220174674022860094403310110462911504854466404187984567459631936097863590628570795439076148854961964608407249043313250697466644688187120235293902560320193898456126399828399022336447403892366884413660026401081101791958148894895653864586115800286893955515746817339057284617223269681821947884198201375244436664691571571718476494194406629196468240435142033014581735906993575347704275878461676456760722103029141305589646096803395003472022712472790799556643149487114209614517798825703999578818902899683882475308509812851222156703702748411680867977601210119079771648637265655591000140913658513448833790432640488980376560882200105250422422450832503105550664034796069180240889478212495749933454272598452055380220237898580132347460531738153743669984353563871509524496717623182756230705539400780452522720284300056179662225150978507665962658706017099723333477498692393831736531561792639306881988636594699218759499317290983508759564118009079734993413559926670681537368744602811234304039396051824169214743793633365082994779671792986085372263581992258347810511274842057277933707493900783887322232175447249477610269347047757978082384636960099369205283381748681829864922635711267546861760163525668400218009480086214485320221941944049913573697336538897176486178867420930691884082423906263161130288416239032025935798909404739744403339927674114749202288845940035548442503590702202920497005064984203940781530091143845072014726366014914464237710289105453967204133273267759935776905909208790635871603096144447757479890352838501903972488044436048972319735354335554670685748119237436599677805899116322970806827271713852311109698793813717413825710299112701872461642026388905909765258773726512799741007392887400590063509904995565635734739501010641318677538656652860616633382146388135086954506789823726466429841819699975676531153726248182629666300413719487069402317441663608144729110893458125248304452648909241248578669924861694231578020218102263008411476517381050992002454452675843669354297153129323846330147834662930123322299742258304715644072624472430696756572983664913261984576194920126372650312628175810146586574889275471083502657207035339392833782434534674867813057267149299806297308567407975866122535766866189365830874711918090803266913249823630341361957340827008979380506690653720468898985254415203934506578071843265506657922325467016966590087412037412970721431171403915928790963479130527976862734355586352011727481155246040402736409742300310919139851889447651204545867056467320937933991455242386376621826219903296126542160863927934696041233578165116032095964681790774315516188392235557517717742720568973840586907644981373971192566126370194634453182403555734423469667836656021498170337018022181934502432668758964192966875420597678708461298525292821084870202401090821247810807557852393224277541046985389429802166535828139402558679346927955336279861979384813645820704790545388334392266405496970035243113592110861506215142863146784670760056800749761439061315358073410458392612352516535300858992102023891793521129194347180921811375862655035380079596304423299117731856368192716273909039433441409589775861766639428312897826179241615849806902647745891497091745647336630851111027110115263422158263387332793497648000362437175196165435782017643953980726926456847061817499340634747092812980106447326216168169287755392928858792452254704273509338524964618146449729146905987637661483328615337633265187669921637101530715938436140677244794559827942922548053373958011664799491586374135697380565456836398718343173410856546548060318825518143770126105298748297626844366992984476566767173356811480787426857379647912616482750244226437888960736678090886983684753709948895761294044159424851905475838650676985270043353326222148347725158872660385470786925739741271597136824026329342367527871251601991141947379262163403022577452510579842590944112988176740492666237226074450191920094555774831045097195582370967433663617763926580427636136596491682483276177434338065435012612237115603397328551701443555301440361357832454374894989683796637566977470063624562822229676694967197318375068960134127087759028058524818783083897400927075194530788274511235203668504472773483899276507828790911045445100945542538029237567926892334773713278515295879731608452516762047868584288390663445909882177778314405052626985469946406872877711296787649965488515540867832144491834460151103276823816750477405847033840547680730483801293743726460852620965535281715115321132024762508079703841511522548009970761594258224984077819534154987440360461823581453144334741139387040805719403135247229439765992025077532405684163740747719160411735063401758527439041150950288525707712027029424693248156536946464430822208556725078562098823375167122638736393055842746844292750809142820514373418848830922129745002428105420169298413233756846358061213182944171219524538605318318716291979866747533198651870148585350678948414137880535236355033219165634441616938991412029605890917910960324899739170091253103158640341426924342806917959050190171385672303334131759770273156951238747002636590847502364649177357210210493841716103804878470934991839844649459341925093272520975583711213556749443731475235053848356319151025729586831013633161738004683209323774360173927314587578770711730362666184440840159250868613843295603568919631541681435165709643202893169078237909313038014756259628935051754433159631035478469273466927634043609685195774585273811216172530533901749502981097495427506542966634267465901843932193773077847588531796318750431954420815020355662421794927497446003787007565791158204080799258377746641694424548386240036030972558772540976753517566427143946460730202926486764497439269388667620482515014843084205325412811266450688080661276970792705858455146944453148894219433593450352199152768504403945137328490323890511696681498276404639673776370292190317206409907929097457371458230617982419259480069920140316202479893380450609836344509264271091953476014177419507845616489275859465198111039510852849659513187785171569723283402109117230369961406969078913394375188555556070689500317274219422769598095738057560963482699365245262218286512669675142104899187275200483759150107047635050235236975816238327094277816959433309193269095452540831570924446818763763306263026790950770102120008966909910965561934433073263430153908154197033364175785229872977023952158057945071876155519285740544077234493898094138782042869559580616827256356799948526208323085909192624642359007430389409023611901155747769592437989951135741927392613939454952303335512576732491449240907587228850652364555675571819985890016028752310192589428426074284224910182053510110212002703893768920336766420074672027896215570462855231097770322316890190881003675215169409753196496727262016118591764694951002806300917036303596729788614996266009618049510016849392686259647744687851989606737136628636795667482268928822023541288148887480332843165540493655837626431937039669432293162176901734776749299074896093903501087391377845021977407623338777315371120263215554553903835139158195944312939796693050105540382606513728399191510587161544799767938448701307905175831315322217823611190857033476569297385812799393566445247774102989006873424828194290619885990456918269801567762555254467715608879370799241529083808196107207913602720666430257937276591346758035640712622971433955044381893123187610987385517108832414229290031325124443582212315641976154598034665003613708124365626132936242303058770170156762549866001216682011995093529643389850246881318816826719761682825381771866303386874608841817427034979824030175312479724101363586612999090598427926189376834075748353281155941620490835122666200678811769930359762175741980380035115950088417274482778382889382646072917358226644075537431110125288644945387944780460831749424009730080703327323587076192421573283801231727174302587256374746721769956319612335742099665456294896526976854515553621687483030538059304203714402977133222087474597022239141377464082582265169231336904406557164383347559116109976500319152778381117752663011868196552553530046591768916853013151842282177061889924439059149000231865116283723192114076392505320082000237942653426003219877269515871366406826539559541867136884707587312912652982496994410182002573594088104757568883831986377079851818373154135282271612864509070494830150530627464557890546354291705420864657128046760827073328507926727070809569663196271561106843632444504197650629588648480607611249578810954544704266838979864875373456234861806191840300525509016192353210839704206101260550404243560474881172265013904355735067506141717811826288174288515362755091195498076867321185006228483328270683666741152742070408905060630816745344435371153291242768543996616184944261111573221501032465210482180489906480314523191354299583910547330621380749745417120665520675493423778139053187278007080453246294116664864818058104543952478134150831611920739185383240825463239113913014758711828718481279527735068478461077889938643156652612463177067119766785358580229188670416643233920111466158938810978572830088582336063937857021005789331648532629951942133973660960142973713447490957201081392741344233585696649933154881596409599700564100505000021816041939720429655950706974544801543187696446596869773850098064475035928795462091722327729937196205465248166076849668688552428478129865535123765718888682677165442738385413366751924298012426022290081810174667412949134730480804773281017187883432925871172832911099890986560019900203834573374245338273552806500883207549431147098309264342190832544470221714626709575186224606301934663895754217438107485657499668065679615902429869571818881363928480081936977817810236043800403091790567587160633640691992567909390277484492452476750445763493512913635494260829188817819580473731776453182269141812457809962984979912581956507515014667088695625238003850812882280420980326157142473652945418987184964327802471323433119660694228876976857166423055809087632028499099173026914109118656716271834038637652264050340383778412685192031610723825419937121361231764573100295972828642417705859786859528274124090832571266128192071063686159316586671098243469995935118003391654035675008825802545414107254928265184597064571358819883715625175713867222593486447621606021945544787175215578561602463439291438187581716658367951788806417326085601455597389936086567457226351552542313534432403944675423495830341547547935877652903898626265905008515928843864466111344944906772266690059728545482707853225010550762645767560556472826647427033668376777364295236633949598938571610409961854244030128557062512419664693278087394697530960789168616144580179877476675814276603558788643175595340558607359880429263544130220798646491541297629217660111623582436666458533187014487245375564235591733316709478969265715390687356109300505863045784480498866206051900675576633848054571518075135142522983972529974755864291212963773119034094840039508955415639563221721787654163598541850650463875046406779231703300923238403419247115263696379018285742737991616161284350788532953532481994009246344379757926835175103521288836780929594261898463030087242222101528650747485806025751595610799311709084906286762332083358782243966781738743092709640659300739608244278983358165149093773983890346909252371733765368219937494163571603634879644887450639780893395632714372997529450214520568338358873369450351481591776889186682374879744530813135238313868332314566202457226668495380730327381077382973932324607298516424573636734044716460206582369244419188885324103448044687069845628655378284110753421514921268758392881339151901701425321241966123777534357984753224746722407782194651070385518027984354016007659524692908461138182980645935979463336241541805534485885974977882702488080417769706338265094136638822890748737823048197072214526352590038240209871683173335839389854440376506211333240155194712004455941071619812321180309684020719175909582790218769949484956295803686030922301090616530355541668490548879182129296005422376682391011073952967263609645577795626436861438111500879143958031604091167586070276818307451560203946640077456705559537626480683674488863860819419231836651610255386818956345985061159106309834244631253600799507396827835837293969983316150748011111993932701589175604629138570212492109732292877780776840877587400578895597775738236794302831798631563383473246596308615203010428761619180944707291820669129173754783896045135834962149250099172158879756043568203495649717604573401835841544255780145673592228008541442744596126135829377087229731693703691583012668246017687703040211263273620092328889430058450925050407314675206988202553103504978372063020416262124848453769392580849601073166229468450465538043523372917953591465763789926541585959528520205966915023580811575464978742462185695590196624269065532928843952520021141201061830845904566940248016221088316638684270383104605989612467804482593969945990203957667341755873425726304837656247985106654992578173779878512038998391573854503406774494147497244867722075270862703827441472928792342408874694320510898201572844383507950331886174581007879561258795777948728413253568233166259399726565937715269469273285611955774946130690505576543798658411172343719857651037613358640656070813491280366200090531326979352518646501938332953139855487672761920766202211463772872705699743803875234070526468186272132228227851673979563589240927493073075670951787109911781889831239911750119816275016279204516228642624670004559390477317468984086682705078510889445358175378092724775072648623793440328633884640478895788899321114888397682292655157510201929182262666964872399120913259883368579620228249061705205855855337333879072909563036449610570350227308350961973073656376249234621056816311165517547491632918449662633770349371740292782858867692181808007835817243895740222489012204397765689882382289162837199849063614342559070908451809608342788327966652799178316916532084936873614800643283026105548210718196122453875574286601749493955195662390925744079249089590685833521745851639314790081043692940141818720257983128699578078535127203248619342994332791447044959387186575204522560084961015608344877106175677620728814275826200933349221285017748737495191926430095066305604267082094559164218870172526173211258259867607726216588059305057426585499819947960208006241315838200051755790274947279281109449654142385446869030126484510043079979527784782022673585363916565888223115221717419107766360841890135884282190459477956377057990708116116949370575632057986496707401822814413293981333370122420324990252224786095812082059165247588499211296472260691408294180022169018175017508136687905941213286430282186567532301178995328077656277579750878273404179519463541336186563516062849618656010389215586119934255827131338909364856257377773193102852787922696996229295662107673367823836223492769122708279158117229979821326254734380841034430884914676765511402995718026581347315475428464390850153072196847365876094314443262288286929157990980328199609643364879084076367833177690923242805614867128508566464254297861300723872280935365599527722995289637584694709018674509257195010046440484811379554674610878621470345805094495838184831651846135094847934792174264447749664900769333006849426811509113436808447726276038069143601883511816972758863547799932426912973014381302945694376649524445444904548957737233204483397675352275248681826202117491405846017969009293669311892332608997063326414457614565247120173740755172795312678177938441790598428723143799589863028108913940300285106512705462113654932893109670766084264716080079522668111499746866139567165467790418206759161453254873530119321248307537592993448082347969592403432222754944101676967921810824151356823519054164347477454972640476508608595567229379734915921735663359677865283261310182411252927591158566256327282127399756803107302708279141142516581907985726187492274680089812705129338445362426504969902959112316582434379856890384422248658444612884769802604260688124415467495556480952466730707587138218033094250177956332092727636801254360579850167402522180733780259393811160598997427198946721408650061154543102961504625287960848417933589302927786503836355111053202513291342278918649175890268746666436591392609155506376080715624288418269034883573105074534731663757388706980910674781102165099769904946363928142081806707022424531984675666902438534983278170776671797983759227605446386146982638385250011533530676485685414561747627232495062500356162163386853621567997009767974317456486886694400136784677643042606205916272035401402676943120218609847219959652102534316810786645560818767170663874530597464011457447762300234030597735444249606454222662025870322520465282794427075507637576654226726199462058511386763684708179720732797959622245182397632779872102447435929851424185988792107223864276087479904317733591251559775705936425079795406642192202531834216285066182701825022295577049602607199541329966578558127729280916738378218605455608760018606512540313033186285518643086308274271837898392784619578926513216694872655185378401281445747020651489780573748099451257275873172457591972756409954476685467655820739744209700619893025677058782212969201773083635045258953585914734510749503252583011260173015543681339468254442020238926574231032085037196112807770723700736021232620585723899955638632197303674745287247339197761081456475655510806031725906757962302586438292538040899377122466106888548815786615237966056598068544618441515610533648527279965200148118518775762420387409408715995697544985436202622546131496987659460090494253859158645822902963821649185167546662709802797337475348880206284391750090716715232868358118913654490216695740444552279195750768771038582246573409687812870192420484894417046888541199113013306249496646434838662001881850543835681511713856796257538096273798369781280210239225107488988389983051453759235906357294357149464157244952330192179993204244281713874314052436652875092776182857637761232179186074476096519837800167576080872277870397099161366704239881458310529459323159170326598082823407316072296229349876699430838809448476262215202734719339861251518775212734876613443878732617170433680601685702650478835328970460499868000679887804771440445521583075947697589366976396164831878038725040021891022364827493200059610712103389462637526442327076942067856085260578064462497843966759622554526000430363783439864240821576847817164438354027551700005823714724900297390489491626097019394668571662223423899545713381262933189192505250722669788725942429094946123856876460913335052654249817260160816630012673735740524412793020628864887431274079772599519667237377952330851962517356477964346417519291299349896096590972922582157079717175996784209954479858938115374821603162434593161275988056956452942571638294000564300014357063368412574277014084454591076907575208919805773917622838883573425463473423569609423624088155649359085256146356812242799497493702240951299034215177716829253105118342766848495400657100485195410119882720949601133473287409560994575344715535679377492398836256627850346776741657226169328357315862127857812624199139234534534451796575702866377924662431701129998893573943811847394893061147599855908017933054365310011828286541999895351427371491011089883680052047015939426795002750316997168760406831526025898429926086067178555943279012381124672683049921395154716253230415202056080878205835912212682027073533041076453892375775726554091734924254787651886002756280224769031835956959124543294247207114180266122398095706255044555218658279198024827633969161840902372564919324746398585023093862413584663265102490727351422510265381403331025980661559475265996451764115742721773940185119667198779230513656701403246955649119985068533360603658998966757361629036493825902271331892196696849999854453788062950525121222283389196925460784409121429216100316667998861676338820397861481910476798530740177362435216419265261979896205587127629964393735162582162056793057972104908678337935830845815470983952314320154113229729729475022654603643016304529366444478862560608313787972328359314731039087043067494049208457235048773461049077028997659735976403432041586154458426453822357630775416888059223786584806882098083557535296671966515298358548030168880509758797264545420664168689538786927128456797371095477450630371598816669128015833941641236844498173388156165339421696671636335353929213885430488644202741917112338055843320337147315919149341614881224268467240509490652303843235712443172565378547239652119871258126164979601782130331567902212778114015744630116871771562317623653657139127283075037732953602015581625056472292716167219046531220131579173280345272280834535126511480467513124902659868750227454266875689591149420508589985259105035384663133277754636939916645820403930577251124230488945498645044021675118066563471182182075380556427298738223235236738186907675783724390733773641936028810926082614397635815451260266414491217073307070372705283197128270005260678385816562723118721814005393109748045579640798015413317818811211995186040406121780782110698826603449669852860619024328166543581355809910259688153267479878235557073554337898087655634014087993691879733140688558821429458853097479223136480979859964053427753061039859062525342830775426323430171325449263085180967256132825177906872329931761728072465137055055997264566602060388739860528952897022534559710279076223773641698520037348486680389441237216799959862412111171901289058683796690478072053817151029765045487054714799553209505978800547168593641554248969620522283546971720645822369008378389151119611475540572243609967577652085013543936244154630999081507915650471571394272737517024782500527921787166433685849508586317460401517562112989760361701359906099949484718495951450001124812360935562160908695396431003886400193735682562907067047168781104738831891545976842719421994661498994730900048089598191917172991762547353642257789711768897194125392197302277245121225012099289563998525225839495726706285768744390757186987831717748886078399041733154517898073659563303217274612152038161355059241258351717320989049088821074185285718844346275524523826486327685881913797065430243308251962558414517201323395215156664684851977408306138700771996325930089438912862597871817367480660818240496017745916487641450421135731794094956385583108149105166535656904344835777029450066253480985432577518413650348997630768531344365240178114626961185392816054555823289854212789559812743289783989371121428038442819845012166414065449620896711787750600956162228848011730157667921280529328272388378397204662403521628579838861071032959370326925255304791139878929133455488219012213363851375814676182592907478806762622130954387553316795156404208793412158748504022083014385772470140685047862370870944847220147180917844778812079657220391262406395585771913467563735117165325561130445271671351224209622513094778230717051682691161470054243538371394468725619211889981601623300321678007786229722758759711281571667234136270032891430274763681692332603176916272560806825502509912542886863942987900517243396723372888053013299527639667907907129250062415202827355941684778048911292037423954565857809876483759574479487508554992873351139880631304913607840716538345879961436068737502863735490016171724805539859969330049645931544517903703110212334260790744461298031686923911146798940424655271860413502724057618220680855085791235588005577406297233801186670354215264111417234106909762964113864296885774754542892050340333630257905148921882693447782150626679619090652442671392608633331439264754400730317312720274431537363693857666612828132902317775279074265177282037457110547922832481111992284218082103054497096173733017048063081963309560441165640466978824854999160192460035530950884352857243031308803889193745074459518932713232014881346315855480476089799601416605263851592975531496742188904027291390556010556634272974653904424110390558371935966068106518297396297477212091116473770614132536900789658770398072853597402664188452434424004578849650901058885889014431345428710320623660923555417255562456433394705281028379874258812496742675749454725494700973617207423317873963263168434992054727525893638212443877781124186545903995610146844354905012525191971097074831709867687083682982201562768847922136402020337372740750624301542555615422810530833194820192109774938263937101102309058966792128678281002452670203954950220321307411304442103472006815817777997474062203852914493978858650242267650605474304812111131707871354092139026219425610082900471315809710795868411134723414432024333258155698845269316250213750960018229956650185550964063285069461018460418595334028138328819574343132421422866321592572428728151119829384244677578777253872175170807838931540570421736675035593004850781449632702420364514259946970354496444123723034424542151394288400264228168494350236773337078797717853785037658846372171043797932348441812816267680251037291302625029984434895279430241553819088452462984857181484453283707175981567977313064142915520493359803600178486197135572350969748396217116106328345865492862351714114212627027507685964893391026809247379087489074996091524543761129333971747051906548703466627820469388864899645424176522870228825889965489849296390018962743293040742258480360387693841770329792274418293494326992492863122556877689940842560637451437237150325680492642774573729689647318066981850833914380933075083093926504935281654464093032481001714115961994439001087426882207841498374906314478017783834670025562629542474111081774604375691793822686634165208442647727914095740842919506167892225461835737304733249774893137376954602934772675774733591886265796073070119016574552710364906186402139026272333633596791823818440261134396320155862181207413926455137414214046703766857309586995216206851994524007151708776078738352791155004733356337068407389963858461827892475686592999703523667943302505182463539578650801737274740198569093736562518404656197102641614578706867291745469968653484755603795497998034738318088244910881840344086533944421459785553691354757721267487130256903912956465634589353607827616774819455799456902103128185519629866597476516209616820577226673210747955267640673046957671007982904727651598530978519701673976746511485059829393898909007563015320239496066353052542464240444420581740521245991700872974011060453005385719670793188675974065288160542382141210588053920802100507584228451521566226841919149380330405983312747392155133192376252885182404949262868132072123884022533957164079775240227293590723551533561955562314917974227049919287336252954337105789032444320260324961464490932139867077535294828041987879905219165155654805494155342171456848079909953948911342966424600309670516712715497724278250325161846596844445188578336598377591799904570994990759789694867639179613890402422981172713168175159893366075422428839781394997976075587314672862949725664266515777683362876997294761495375076059198692200295748547209979656018977301753651576792333676304966940496561025618769396208141024547379370587659874730178982069814916701674930433853952094219745616162408116593177714659060194112878620191604725828150740050833982638353923819709611230446758387435729633659147068243765485677236341823021332644675619768817336171876978807507851354401528400246620937463834271136923470761296258019748305271400523410744277413500104306272155398354618840836344299091454007250919036678491865841842960495933788330187084600784464208397316855408401223757380733568357372962348470644035184690077489858221011553459444823315324062821911286829264076155513132949105837494544013730029642624982867078227235131060628338133427278698462811052018344725871475835500561676284082772958941314242878639500923831027254108260740973667451480545138746150006367404555888807586669539774049109188699736746667382461752868617404355240463758840200489643115517880391981115038883024914499036214532668503661940980896243745639526956418591552835159404538058279445316209249755993561149445509579353920946721248871635627821738368101653027425067269484964716427710134123558224165994801005469166633224558668941482238360090227541036986280361113718526897623636776032040879227565695034475643414657051708380992055433798835739617433121573889592086921098462696719309257491408740061362652713585078499326391316484887464429934838672816797567336269509882279091276850044254406957224776178961517904525422641158548029473899249282419872654673512247691406971689105843415805172612562559179217326114584740840379253367728818984300840552262518592347894741370012771821381175833945855798155143244089735451600862384504525370629232860687730669162065766357965414236138001327322227489335445756084227041601665895293347464878298302663906172444046399572331919479200023984150699803916436829596915005581946282653668624071527292448233909899860249419881588447233133259016756204368652591192666991956338877203510656989874995660167956019958760264997797351537830049881456211076688015467411563261064274372693295172732137524328888816258107626195601531070609018170444326968260440090115704131673410144761989881563143701424961417119929626791986739506508884643699182666773155322579364137979824100182683521462726431303481317760259459470813062473237796143177144922239479725338765639248075184652480846852530498287914927228993334592203187592755291395766576618306408506226774351269330432924143393262579848822388540122004883384005338583911332527567386359724218687449415426533669513866226952184082334878687795016259947368741476487258595818313459244240450934222937424567391737069812055879242921808856906464651990156142446897980730159168646988746755926774642356025922687185131248653994386636062780952352193164932213890340536817914227767121873263195335446428862404997092998347357762620021764907210898977935858320852666518032616228133266115680311721726312973705646567948239907207832804573873200407368195050179128475486593654630474620020153513892589490350130430052994215468191820974247143621369318966236665440753849447421645231256959148295912712172906536255109788172867442302067186483781245028133509907304872502892573996886881596179198390957046424442333911846410366960615827802160391264548999880519508680556596555107097788446687329572975207348355989013152410580385833294851812079961231268578923659598638768379228842352203366782626379322443379306812463114517741114162758473107696028280629021109516680654058991801351875003490762204863585926649821234898682298121679944559288225368866265090773432447547582874660016931432072101209580136715307463892760661956261556892858226771504708330675705999770131631965263659896809324548709159781031576575888429900730443254051763867201445127831509045687658636403793168071544934510104621923010191012338793125634207558202292361851577330933490653226806661490072858117806941474593253751577662425216994460641010865839202143758417368948310091606302196879571594241922491454369351408648945541938720009140680763489601370517016965374326209481733411210482206710304171199549931471501407740360533413662011970322267592422699697561387731021659709080205180678661705809075732196849218689353678768582537940049161655144641553747658007274528699614604948199256951516368403450942055914982696307994295980431946125526209789919749464999066948611477150620313050161300577578418065429668336527512533297914152771788562498526920417749309070565359385795993215999521635843876326875296740463583949629672689791460282579748511091216779016945701812001434009881718117022218784347092747105239321587312472166583023344883011347943712104381921003072015299289451435891774930559526689759581316669982381115228528260346666091987349369031103142584228029491199606247708290886994549708270831202399386569694945294350672283748600791804449853362055143007503205854253154919971177006163071400439383757859510770239697394902247704323489578007032136809503112109129524392437362414605217484277190219443383714541768862726089563420428301561820901874423617697708418560307664845283363728547416247360083203944178668698297427281847050633712596578476071140427585975642215047067408347556444065756567072020493013682369057664026358123132727430224333674091866516687253969301446998618201895320938585191492599122473239162466228294579802446817590183516101455612979519751454220440660538643798212666851868714182844140464665316731331999896135588182357681833405418935893051538713668624736847178191456538996397992469531624078537333097108209361587424015902232016025062258674798431043715546385019278354234229321013425404755563529765122652523657759785995810364703546011647196311213780407941068830285390078308217526735561051724454758223659726735469624734430416318026376826264661410951854058783121955491211401274455537592267569259199800017941042317292413527827978594137441657322454594102229958158692387492499088782053796120261534015886780801977965102405812728536207207407673345570268756289345619741723107097894549729497444693880639815926451406518227825460665763455131691623459080167434984164474420678925734752743843543323598413087589936578287039912110516847763645016667502241413598167560831581086148556157532025980132714067496605609595791249373897515757012389046814826885055509088809753390127791196972864954078383106725774668226059782037534442961583411896598985023250381267032145552870263485293754744771891858423271938709941118044478107393254690313542228687287328067004153386990877929332970632406924385591064938979932738371027690693420270097746094835094617444403755113685623386547383052998238214285621919765692818654008157623259272730470913966777444785094508295437021686275470412386101137009288218811590834207918712408409017076049893762152233113380046154847619155521834192721969171941686489934928180050671847839755167594587085798552201579458519702290281139692669049238896147998457668660071012280635766582415445499201288881282732576118324980690520065860483521539925298492515207816321064602245097340944696864969401230061891731194865070089640444471172154641599268903261537993892367695193613827613049650585124677444061685383494178124513705026922994394690345347439899067467536449421945929196463620269176380825176446158668108090979970549357980855639108604206757096465856760805064639767369105939950497005305513119825926000168392274740821896441732194880660969511074170486505406624492786821983465793680456214861979508009418965318853666589272285839241694310352621170288898451211811916772813517643220245267854662610201834800923362934503493808824452693487550521625806846894844732244917971603272935776204124886136605124401258419650721056706087006734816099841088764328218532107226223885562501842743083944825181501165981755043480032067641637288758147684247342594898745239079420570587342258215182994696252905501752149096423166375443367286145961866711722180874137951218866993684729938010613582695979774369193369418311579904724656565514896018531151021281697594434980740351966171161258285541508140425372097998706695382988952815203802882384196936293791003410842424922858170481062330633182087094954438011769791124883161115379408542440060232677547079877847930242340680068474143443603188566368870338462426223263830233658870986485567997130258014957541481705941075085072131883914708586593830560725787588535339937546717987075910787519548941109708067650582292282130949096949778493206304187508218752060287063896491270941029738835845385091422209666243114743250504650812824207917757420797537436347278005792273725908348120087014889860448220923421725493998664179723672811315076473420954040063682898799044740528075242793631675619191486702647960547033894036022508625544096877573720912814549925742766391991824751891433343417027824558740317798189144144789517647305748215889819768174909528210046917709197709628598688456793699142927133318199071580347062909977801671238389454534417329996757568344922251325262772325545148711694972294880031262160144458697835263857973871088922187964461306375443809419333001462892293819639598864740725002361831387979794739625023450815188488685860617473344325547590740852517875646896260526895537303910805694753595667338596865588787450004939231523784602509209920464203121089067850793793226183244866294353861072462880714129223689243641222571233299103952643679127406306381473908321375318283111045945544395609135285231431806640955619528515597996997195137977764604513300360256431410397410099820938927973019077455878154628916473706921541313118510237002275012145839977052160821885341626797101094643090492062274913998851837463289336322626516703809223306567012602644236731008728929627009252943075158381522544789731740374617503580932096588741474547243671490718724188228709342921151224649672873684523498733579419471348677082170764414592155162871195519818485719296968916914928270854943163561607947339904174945122139319207921162072148168389243637337524091135987682804440148122380815967552028190281824769396254352557416591349597285018185907668302035858891581483293988872688024506685681665408810737064839632340666024135963220524458803993999487287762796837507493728812058330722433482669970899012908701020521882453297149568441404672033622647084551764574314817912051296586550901449413078519948555632598731580640902233162162840502360228007557581196336687344897855401783044476470780119322704638482818138746763171502625957476588713282818662456184854122422754914432103030450853836222233207308967161913898056935204091754276530603695675578252212021651699874749939607970358150739411881687174209570802407885280601819031665260576868911069230951974375170260331365961100325645439762473418053859297030492945092791694943943429036547878824730933486060419027283969941917913488363728103928293907874539398617201761095728437401983612936619542639906762124887412008729521991414239358267463301053431437610052597033951462949456139826433109331483572525149043586534949489444420289965035050084368150618651117827090538934718717037601779052196168060168144759765252833415981197743470471983858639673093554295865251295644962365090352956175899239049653607135725324909035890904877990457952952256851416898019169101184463772507119781033371715735494540851124940329670148278060223554899981482184102359617154509448193689464991012126921797913967781528623067139826944909322103471659087844855545160081464564879320680791597530394579854717507026893361353520618363158580776092620360244585287424084042884271614188354627390928210025647728243189955159506222538013638901497275005177850696385928931531195547893940707515592805766163364208185444212198079920296839485540808583367388418109237100835460655618119634843044200178415352140185837512454053930620274340164109668731333975364305151386638770151036374116239386178928198961305577131649208528645158478700603984978204069953533273585596026797921456736582361768464969698058049105322865538985198253472916118250517578385782006768759672707227676232341508799004730616311379930370986313607007556039042463347113368416671905915218128895591836003928116448221165503113849450403534464505412409647557889319616115593386822535591615273805677136024462378940221606121221592954811366636966531630162807141703621140406821597368546449559787247562881972083981473334653520812395585599222402502178003950966018483320456740354181236392251292933508959831494528056656126275805191487100098185813461105197005937111210094214961332412293968379849466598814762671940572370240024820412796140033016482262456595175085400600196429507788474381151236344748602971284271607184226051367197286502485557180022844429667555568613783228014043198793874664682470718749651605798579080238673522472715450855748544691481802059749657120071969991722916987353505223973974626534835238116835966218204728429617065330143594734360157656386987314884812645577358327609505702867995153458146238765225229743111619740588152541251093116151626073640064264032872143787341867373625241237049002000322630854267400144141753767306633253027915069299866673800135142759066490188375860531801686972339998067958171115732612842756045503715241571522439747205456230614124419758442228704436761116636663931111400426416646877696114814059738133118636933867761775612919778729736313076993565970058646435356277192448544386122359959024942323184632547078876776616402255535030259754189857668043390667788791285918093862275773472518389476483205459767806243674942044126047800631190714763468217030749232928881947593426658421469434631373696440882551961747679863046009193292871792370164968333381631708737616806448654818361668443738866454487786845142153627265926910243434181736233059055612285566780212201282313438097053685459438472974773058862595541555844214691077284473493781651066122341134900288993274800528901334476669967801515504284274544976818681572027204960380589757151605540280669847168124840538092689476879452695916481744816670393329536761280274714021863910866630255268267837966858690049919801388141476933021232350034873698916679270357784130300431416543802303361331292521808133343559681781086409376180769268172222274719851731025116385336630487970205856311385529303838424452140680081874844517705405244298963275174219283491366700827323930131562369455030664346997864936883720775348094891082197054147382177179171589795090455718212843456813251789751648911618467555075970693014624153257544822470445691999377659773237959672149191589577561378650992185250734271590504148679460286051611573275741443378741832850870441126011323002655631511505637214504041530252173074222253078978389071979787771170257589196963481813320252189412733532311737860823312296906778134119065594018859524645222634278509721641849890954136794632321875429027139111448552735184514486049021039125153012668344410015794835324311830108612180055848731324096548720172738429823315043526691723666629777371291121566611400918491430295328462134533012162352408386051480038699230284811807241649033494576765211294346086716581994919905569401087784289920662852106083588743937755488078018393302859669776938501925554564698292775949323058950289672842216419429713960814429699233940589349704330662330179603488897504858890606451380428502398714714886581087780995621240547300978450675722605513661181160042337894086237509552242892095400506523393398369142723214137637641178796598480394975465122450201633708000672475163996026965410923101930635199274697274902743729216169573007023521197160708444243155576504977590197549268123473769717113877268064293334075962783574856985205868154772356488715547233196940565893133885314125590211108103696500543381082215937214524048329769241472486637822109224994297163696595103081602778163252536865220999925232468173287065883712937128015937343881819345523909364841155085228891205126652207481493770712891003924246359166952736118938820132026921958733002305342278886696262715961077266723311404497783624268728663675814703119661586140050918936199278614481043299466791450563769225448027088717911971392786697390750331356719473732663700974829563990723407065910093381991087727518890575312252429651437101523402063285961960418608869926627784622013176324614079470990739563243433581325143562175245923117441433504321428231946067769694375924868294958708768159029880417521302442554029074945420253504169997406201216620709526310114320855232559230240124082237186913727820628158744212379451687096042041740099675140634435868719183516383812156503581295682033578381211605022554409666457914524821926705870179806844243663601858266376874347076978994516810393934255022340862491531592482127908744249944376992920740638516277261358467662879955970307824110593893706576226120342326205165612387251491761155192335290276539793685943390465728775251840642946931310482067174083603977303714120566971176886501438199003676123858490239428889158479537230691629722384064442809256478506812250216336012491471575983652160126284739016966604852154653411035172583597724073995381852059409118856325275914992487698416203173241515324115742015447948913386380807056018479676499029552856639243580475488729091657223147618653182660201661228017176351866379073569089417934894681651585041129267634559613727725037994787173303692964257794731138625249380782363722434639125957813966445751621514145439657156241280300201096997878199741914294684491819251890347185044103052588709726719404473700143128843207697950074011461131813076227553595859575526620331046963992479591077977930152574158536092140305655065923959477887064729569685167277926429480693771504728485628339896496744299682506099733078152366383008826940352529399297591208431494460136061512167691048353253396080861696253069404132396923151471855455524870126894919800779016667358335911480268395965280850518334373523615774843979580752308572872843186463092030748800921687600782461270192314352441288633486941981126306329309520810033380116964891325048618270034341149343296598894813578857523136167637785117355664404504379466931486269925114228847273818428027373214582108503844501178941992684167729577992152231911661925030208328670968015261095610129698874584737198225086250237218782701243503414869953763831492179694062771539413374685245263869309063123275488178935847612592846691288564396087645158768283335625971374663426638400498310211960504335396021263021793712785200052514163440825481950117518395490934933285688565313390635893563447255729908231982827088422720469029404485354126587836035210915448965705115201366798262229612534618317717684843109709098168817412444434039088824762944415545753239596022931451284209551904888316158322509181479466026522630428915323730796594396322713833281135732895015835741735740857847340054932698712218579316848822766658877203481652869891343735708723926078885056704649451071944445815345155698962686212232865295244010692950403147396564994425102764384475244674109904060064565608108366589321169979514954969909421483696825789375197432776344884686307456077195922356762992779894836713816876769212131754875316748964219628062526587701267192497264590130333909797438873983160784028991695442836590914084802091043846374041840218736099470033417214863431968855056349365278174960947440061373595651113157171268876210010146510518486662286100975776684248720568450825204049248079769025055637032188704115623103415477318873258451604787296728884240755220017130365857486506172697846372031752393680620982229317928829275865386398448052221902327145360789011302305895717667227352449700314000720387241317998474123295378318874238483241973485363720456321367301570250783738724316983603372655134597434929145029502081456705085949467891898985482172898300060819142259918698528213636095923402247513151597241036373193011448304104395037422780894036274024583540836345603632736056408394916746571983455522979424559685523920395622038994141537340217404230021011238918387258053130148790429826075584760859526989300847652726883654821395918200574429316371739816953009692564869093354883752286479002180887142342086841113112047159696584637721940311466705479141860296744402303328423244750716712797656326248116578466053326282595764002330523487770772380438524283834542719673901499304687993260387806761954651460525562058975011404562480132805652328474084164142889158391401864164189145742855051203035662168856436642207777414452422632633259833102661642320551504356278045319207466755295887508799641545770553363799270775037137651759343932723817173311157892611879228265850592867799939656790941485527244902175383177972922146715126752970105839129995742494287806999633588914434330430810642360939353167926774396358512562455669296509436861212190854721905799264114010701441498829012978728257947109653300363366135650648876378284999518391745606122023421567925572248897332878231594936651755131031505358305139145469132474601537319934415484418343893899543476535897163415769998496632208520822838508818755572727355050794408725140908078104804210874626498793728200263866955427834541703942225137188892348635895606901900761632093171021275568768163252978012994411171333087961605683717104502427695013225341995875704079562479432671321151956123501282895023311564428275798191288327684697620393297186081688447813072987619110552586754722059636749837413863937671920620353693099631294300234316243366557420770780217104972839605751324624458873723177375224283516383602652038053862265867961618237500711395272096373763843634082716853855635806353207342822327243028226187253789349192592243085426271347055577206187219566988807118323880866394367977187271115496915851260850969673752808996053217232284119690212610972448687776341601773389014003622397941098925322839117914918685150189787265869308398242654342657443207317189775329690953178943980975710012645354990967240698112576180514889134006207155082446699337902227307463500456375586726926303816780822833554793706217212099793599572588472177348274936838160671589815481828489990784525981022286036292074706389537677169826811281637917717949486760842423878524981672429803987340014713899508958391009080815477929770770537775437405710934043941789065329109285096366960866080539727959062641302043530472949774262087800030437046331975633638202275322267181243994440658654944515990038358977160822401527349921698987832436543139024405512948047934232800537988752558814981405687734121715887059713179922516387220985455489715036054476170378689824701730028122231837635375792030268766685923911145204850800615225662506469635438320624214362750635077389841023706108670849930390485160663316320032589971142364121066294330516791340239900454483173372433195983952838298995825519858581100123144854292396525135587500109402155379694716513282123932561014717729424070834142245973051218291270567422117589670204355285135167686327727697021540248560736823430051742496254415769399212428377467092886095635604819183839048153472534849517127744357087409592365588193958429739334577817545868923603407896898894546092806432736467973851348475780219097966943297062791677593918425405627244303866840908154243042202471690299343988986208969608869103646169262759295964332381871659052567544902629574246179646197402951138442817836203781185828859581802778814495451442018618288956055745268489223004644233899811303470019234094926141214823047555293013377743238889795708164655257509734209462649595002917215775922490142028468575419381429217470651621349416615352486850850006961811491295021599278844094531891080885911951403940492842904523680279884752146835795281434396163911360131993493426508161188873327364813928019779974202504949288348235847602304160331441988649170225662458055594046601665639255053351272294514105696324297089888152624488266968590085267483317949556875870254679526412810974325657269446968218448030632593518859815717114562088303159311288796807999582042510148507508024883477996862546272518951923678258089271816277408808407339090108730805285589552233953240874519448534974164650637095696534299565566435268112986314611144954051914202162457715101760196839421660250487901930111961087681407876489955337718690662990966603986072493684039001289403167164841989440487374103043621540702136925016426499987948155623341947423953357385939279017788238394546269663496032846762083806272529415447926321443648919086594259479139968402089350128087218452712134416931088415423762306763513285289725143362489265147588794128160686516379617539940719636655350538433526906303318712442466842570482292827087970499244703028024124802032809572614686677567846352540602533670916108378548909492470322046300541306799871887878902135841673803424108485118252390515137777495317479830663341342148642250032947367582059225566919714267299206554978451815919835191624907425629703881329301107030358207093978367974721343129236735907169477082370761147474567024743253581160867689199665636322461261356482893994373657503242402746856479250607447309501310754282634859489691441212327204060030404241999830439445095610827789337208159952603067444649980132455209987859735334754638468169059505184748980593668143674087620322260561644288049536963322101839727622403939052437152898320803409303262624564882093469273651807830558042877734013965410758145254318812111126593207830517183346935008729945499289280509528217285627021690650109355345750441554847613331375020310257748477110725329868955916331132966737529877288484247463288201907798278187657778597948651355467157904252554695376261010254472642225418802551465447433877172496338935502238053006527014111064703889387440975444972924116609130924070387686621960768412276211545442117299952597094777883501015868194602405968310330519176505261046875929803644550316139086123847388964383500730763087884166216125919052628035827344675327238994420564570379646702918319082921516578322431863511767416878550648746636880897135209047125332290588943861715327270987212844719154465369542606165688419749221201718295434379889732739699930894087279604617303185523614012860721879606830335208430757517845702606694334799903825968605243505641364737001082384115207571318688607587690335945529096119608493576770433642107330418209655192956533901643283359563014658059581437976554851780877049012845708667490025412059357740944268028107897601980652591858318600198044143543706934292033612878150350809509705507610159670428020225582055851228929848763950853375451923845664264457451205670109248518413872601038215150646425195578819046736886638418420520334094224584896279865554089138835552738161232392020924820208527581964129537022096364410415763547364471936200829141124292077851415862048551778890665365385546441766952402812478129799007996919670061309404625122606938435569170663290579222779744752187042403001426735828386477203190231710778662075461639069857336578883822854327994023725820519771914910873240182184686989385260732205563231958052272101199925885443086135660194938822087005484582006001637416719794987221862703549776215884325255605788227734708237535525892853786457592647834581451471095276846052123829635830364096075572968733425378154290353319033239678533791273640437864966720892432946588460175398343337562419224758749082655450138503236851137713766871829229953352861671000208249907878678857065720467012512177276722981157436647481743026378377277624041539669937232499432115633729212264134968375604524198101688737847097852206210472161278490464926052983586415126355535606003464226053299674900383991279451104055913209601860561554489157834105636254505400486653006648234629328666994366169149646330985846131599372366703615223512137794997944645719685811445137118015008095419717232162294984907294843498468916209918038980499596967650934244855571263129663005784106896911001031174751437747160666526378484518477266751038075380187757618923939526704944426443846104438810166223144255504390359449792316490830235672756649297493744509653175633493076629440262720536272595874547604196234321145767492393119500438156909656434616304014681988072923049432056488142574659514267575515662889538459721608139115163336514769219467777155068228074523597232524773539561051326685908024283225030778308284527414552678806840438763686170949785479550281171305328400751712010319954820037777783544352554093782657281237962660338495706369475409375621196810238222140071560611477118576827323338874894414635834067952495913985696948585128055780750461516204707129738956095418651429840502628986604099198139990181088493498194475957116094828394211341771867492167312895654282926578319044583572385508365013868774237241972341655412066594152262454456707518256417999104137986615547889387557081935638901759874748425536681961340673431024923874087068875267827325074032431772648331017984454732750227349721116447410110409110493687048761824642196579934998411484857036147516866879305891661306894189539541319460041132702987807746791331074028553681291546634353312390092950895700834254355060941995019381413459396567740255065829302882193774604017933169745531233004154109116666298763388974036433678379599929052057379880427714016372552782766790911161762895793788810266786309822066248842671391177476161257889841727273090464415945492742864371005296411221531440883305243952635451775611069285399517710715460882823723772336356339494826156122192578514493680104850993885004303974957379357087911459741383170981395469651439568623612600775154654510355614042568846311576772911451655902707383910091165921378746814261471341317981749938299155843080174338821578843082858794197642516141489303522231392328845456132212100496971857285698124988502982062607010928211824239711094590262115552253841404454881384058957741328877931669880659600100437527411912883888028378775612426544979524923061124037089900061947193660760042613974830268676195827957142972199730475967656490797630703520917178625035948599703488216486464297753541807194395549618984218311627033043641119084144134304135609360876724751485105354344579746780652551623076903162710925586611240810460536059131249211643370543072138846017418054938111943114126122544242037022281600368502028200747570030632716540500241456367199951996930710963018293210750790812283305588213739504435765992125877269102527622631152648796754111229854006698317085807131609550890390756565139631809271020586726181979197342805783968182243492389312983425420118740377449319093205045435719786154460287622565659142978994187837736284731871587645296841951071703243494787462220735932281139108131380458255554361139859230889623783675951619355803801227852323590829919510166690256958186975498074235999165016056220248087997229520920481624670627375739944035933218486705993105029260014144567505275739196440873843453088149146908592362302704523547950899595498868432799884671749888310880676182812320548867144797702807923522287857583776519837822849552419970632096059735185842872985585699727148892697493909676897500635106543801666846228544620171848053554756773730586081684017322615791427409159707461936038381833390489005224493819094359422005937086258108321822243868314829101012830787896081183214312593896215081582301707419840590814183881192061190363180980629710359566386395062017918817512319780451910420458419125704837872577785732050336944290545677939070263675068872158315513039785304528241105010619653723403769164382790873330152001003560780515690490994582905479390782794824057196323551414335453028189199399744886663636491358993380460406044716652649614122553529934046959461367736121783841820841532452114727142852007558291750894427805010381812019822166704213400385757624978143931840436685980308107994658709859580093040910753679665923718325191342136173809155594414731151098662621279411478728921948159971097267082636083345013117626313368403921293386415645357848073245555451109195808082356589265483026494886804773831670918070406565040851208098992578869589407000410052935771435474419256204848956267586260921838359594615918897396355208641989258847154602271872689619824024380925559270346624851934317334124537245187223668531483643242727010849268765226964708850007682689836890548560077509318013618033801371884055446720846341909017845006790118284253247091495252881739867209957078817999262209543209199139607554382696356430837914700840100226507840077986207872089330393754691358502344452618032287783961211354828320274904422765125076325420598309073427600253644664534294179540058658425552203686430238505187796453206911260687961313352973533707340546175913992746886064719278099198535278415633080397433622765482359961471062085644680439976424098937566139632803882442160507222625975909874963471064875034808874424814044193871685529365962896063104288742310681073050407439633530494167725042052521813732475580316636546339575741812786075801692510132117649325914798043002926082741649969102891824867032486297363152927953394572169177018037694709233122502429522183757758077224962113629481929661922955683570129877955788062876375490303776681473365142370605511890883567369006175767451126151510586775477795563234959745768731085956325603888438052097233414919088457464487055916253046105443607230419204215281769035783081704555321289786944640551675450977919824120917755325285007857368757533118969374516024018241018140002848039407511371786818388435964983222422800377791903521096331350080207977239096582150947033536412986775928864420196646667718315894512167482416573753212452652396133743073318170995407680962129327448562847307587605171329294275024296975936601286992851319748229481627661999230342333569645203644757791496887513189251331476948563796772248807592038913935263665874492169562463248249192360512396261834393386001520240500126631913878566532141772066910208076098071846460647038188458645383656989572939375278846012697169924720624233637523178636118933684405643653305658429095161106661920659269255769745850799672790987043550659216753208571744567733224490523953220643185407993784060258641176621445811584517038587606607096080365247535024116255400595278099310864980291433878382295983380285456606267512881349767228321899335589788016928697435534347830954896221828859532326776835893843883371291984051887576048565429857442350207177753174815010900036478959281755525918551037691439945731929849017572776271370111084499677202502753162282164406718740859306580789512857969413998856493096858161200195067249876942672911869628717386749966321433540994844684693149939400339916019249034804580909170857244530156265268988971149977221879512663691010104344393216128860120647403437884445666226551227275439419653382229108508275412289442969721129191195720790074936600281670468207583139175334855929256329075952208134693539703952117990996053226370717905391119033769684714755505948515585926493873939446644587884187804518202326309313169387312701385009894036090722023254433563395279031177386904531166107984279745628393309438733644788394973091528478344458159678482478515129963214716804390285964261476502772649686943973858111502605242765965391932517027575829829682571974402000098197225319041023227894273637931596441784548864201976148017959134286061218225222199164123753457661835056405556392708206544653300432398643583125654532000200508990894973738864944283270962551003129467062340031557223761967356728423931741806146826181852275752420044847207616613837698946583634638859115594199217009726185716900685844732168870975903555859104923735996253434472304255268180913892205990415448222124418850844178176522995639627258654691587469038642897120838280011363991090158248498802098879611144418846017406072973313907964227488634516689494895765706122239292515322056632087346274618531755317612163437887951308880449198160066346227472612231330893587188271307994307392415240525805405042622496615791320507670257153788016345329245541935187836159733474963647262714246807305299385923942550914698732653604915494436563420006472423329237462385259509002759928242441646688237436752078818321245079229313768559844843024952594270992693938429226551187015415889553370548507326911429045318412503674741119416339939750865080114675981494362918122083815802078411510044355266369934592612124593424102049577063786898388605481886044406716277057475307346413292196677074878806668725111249831438682191586342732022182847944084136368861471001640996052761042000454521366909876645202804020395993555222253474102530279868236100558148950391894021315360283840426608873176340469996580671085935919839999221732678754694402382659719276911317532712448200393474121153088816659008021139502495801708098185444126920473253855459214638051287528404093844767147121504501882294279690024402985951758187873714853048717697000601165058577080615433818983776981685340883978779845724793683655798536301944944902924708270091478919687826771852624793263811415271950616388528644813319680911768136670080981586516805363239963721968044929542868719702096986525359578477206417393981292707067403735666044275294175827590193504033680263688168169345714409489093661697471189360104692998804224423084012071779980703665838539864073627610483021532569439444942880412373531514103119768169252784565402030294852221286198559821892692225674198390232046727421396610517616799154086585679684716236953222623708829686978440398584459705761772699587358604663895763476465424539773699730283358265508838752843404656627073218417938962240593297645207118307844578612320453852428452239376846572619717377057515357930726648514171270051058714557264895932145045672117219346940122678384716640462115434219788952977874655723740727102248215911905576175823248302900322050552154638302568572564828005933653403626278142313874426520747028288811431430385484115373588973632343276140788616594994393194695145808679305010629903267920918026503792554551743385277921368695328285524691368830388418786816941331422403274440043566300888494050323511962638135778656455923583294505979397455686768469729915434759525668977828915631084425425183325889877397671815706187324495212875509608343553794723955356313059252377519430151288526012636465379890243139675919274785666087030988926934070449333570756669072041055926618633284230865754295901965928686721317686885602749647352787875285844947327658210417677135073177078192640943903705231080090163898701350905383361862732186073993856998480135320325609534659687237606356659814267578365023489787174765535356872789067264090721201211968157557186337152740168799018025839077704472315506563806752193765763014008027643577675241558905153252803423981296189386338757267384747345860677939260136984508363775269561416511532532655491610018966799675556109343941957272978448198781154674844754275184032529749616357118109845054748211535702387312040012224732421660689879061462237345781657199127695995353434363711944045496645094213969484191483470140309697368449572572871650649110317474968779289586294304582216494691748156019785908352830147084933831257562902900629023072105699670032302023036710164085311202467477992425864452539243871098371797591305894366044462059353418128269588338674034610975959965296909858287307626435505188759956942115515501037606406282459251719140133335968710547785098324079644735673610216242707133927418247016890923354069475574935190372662843469672603710409322122191414497030654167002278404308576795717996291497048303005843039280839417504132766783627491164724096967108761867656001028410637233897537095711349132698126851884264320803158761253900873387581628228394352019503792890322405485607749134250807727097938736906596845981960542015873578153297701357512969384951606868797488055320895391217397661934351084488417147354337081245490275585593311370816453142591841833534132101876574774830870230618854695473779969591897562939886463161481613809002858943227738039316960261135269506550011626197653904064395282685552464173424807345073108929635390501912440530384818573229777509822281010831233406763429274796007516306717887066300488395608872321679577748480145817449959726529798408806121558530214059392881555681356570674092080168996051521641658544627697962737366838930929042783136852174664755108608950831880541903318763275178186856988158511408640127126502767966727320934310021686053701210155800647711341826622025289917369441548372694534339138802458923769556025018986781559446333132072057829739329805154490488487374942417042584937591677194373149408122046786161738868340452990174613551106684468478988894935468410740892974757196268424252902979539398270444599920734562718099086458649697750215472623746727202040360957705709204440038304272267857257645969022060298428379675624990175992508615549989882219532043641139496300286343011206291559401980103443648854716017357618665033206424607882129746950865224689633788395783861455633848328175693373050794037305268389911584177962184027207035265767858247674559748544498612586687964570676667051256965340178557736564231759536472299070767156122210966789479863510333188476965038747583440545933519598401706630093765426364734476071853752448564612238718312306775777770596519082489547700156690950294546529694289907193898851400839159781292141715879059796020608355551026579564803715917022333198741797974160128737647558462728702567275566654446361260468170376895370622182513259248245449566850502057023987011583574866135810651885221826562009616080985068538776075973077622821955341619636162747284707687475857448078370521138593437061508187692163109049651813210273533187817385778441580768203759223159003470602923632814288732952303469933370287322079983369183314898745183168080581376075243236733658973741084090905120690331118268544236790624711477600172193396088787084163646623404188366391295985305016613286971253341774316317965373556132900744253540697475149527451095202452724925851446918045577743516229351206657097026413583712108911720849540272669804257453222702242794281324625156421634191017617878482703747652336524915882055001856818551369249067158522708017318675256931230993343860867804754061075313274705881962391943565528705580947194523758042361652980037504258803000517422052832246515571137586815452603757810319402633229800658220883305965409872652452892416759838897636050610877659894174853894311147925449826897196966136201209226595867393360528555267435249930708590564916447488101621040618717826180970918717354599016080013503927968300399585374717351701978572020091746718455638634969690005353645028589004744343562278916114730638840407417922513101471321789354352839305777418746163453298829933383392579951778496533635432988780274022154047875238330395983911882598614181412144257807961791290177125058552014756983226855903490930541095102542440205759426193405782817574807267211214107081490776403769068910991365895373860167432258321050343318530496534943054767877850324628150039380561560455475980265912110703493432893487682878038742860592748343880169363250869392945244613951645587244148570423048757918205397169911900451163138353595761770172694037876517822245372159873393046208349064504408957443513730049159386978463962469119608274936726320534642400142365965643453951966123743114471586614481237534906541979437524837918082880925436646261238609875188286399444880535001849034071574510976270062066154360893597994777166138061236516732956059718889600034384631689479516884907480092541011549572789227700205350926167361440988235466543764034639104955185947135011553076094051102842523334596736497913964657062371021303206841313215274553089579364781999717977750756068440965989065480927564058396351367605193999380546494084346474868149019815572295755412392234803745942011592747946503500004108306060847941391043692528134363698675055226559232070515884127745971299221277664382623430938286085316614330502213818795650485801885252956366688361187098562122917774670661887864532479461166227891045962102827872872507203970610638610416016672921976449153105594447442827800027163481689821306932920365837659629322648394592636933405766428641937246182318192488285692624318943603880796748839215474301862695182533828330385205390163981185078576237751065763116263774073269276274127611157136370877133549948397411929331632670249275081617007051185717715753936127379225377231744164525421742634779719428178489207597753880476818174645703374273305429165767455325615535841869517319189710607527359498940580627472747497559014965301312919491306387963467749263151374205713853262401512266997957569247777323315457385796215324790014476603672565648842920845843280757757848577462250185753221687593162644636268378699518214870331368026549821827499002529939728339330579267583437469184444819332499305871647588528985451640890209872653510046041107804272659309408202981622986865809679910927562118316532931526294858471999613190404354234708259911346106634543101116723410434882993498616987728235365604747792616819499103953678481511987034900185456382091637104437443793812370525021636727833763552099015492400976312576344703618960183956836924294828674700333303730485573145524580795931115849190046637139544533215969904175468468873559898707492199673489531733539249387051727210390941412424383627099004239031984507429712727812872592604990879775141295228216673039533730486120100553479747731192234714619167993041565612668547298038638766513590479778716210921787489784460626101378376706248643899684134446456644777486503607805568582639678293690790365784601853902067177536818058501038632784409902740169684443091429556034606175035121692032066788191046184681346689650148291336359331937980390392603005700240972098482732157933742430817086406219040035038855779426760119473300855564165752750257947323239660093315094829943695319917018146583345531113901421668950776203107155080571862025018129614954645169449792964017888844233922934474638262207801466566940794934467486038234181706105367856074662050611270714248629183640216227290391649005218528973866774918308320670645985689548340727727459733136615323017609791192627711613557106695604874522838261763965026315141094848947140702492863577003388184557209166861672355646854967443195654633146334096295587453269302104073611326742475216900968874726109122159347033173860123880072644719769337408722241623431055632681536342270748666555766797793149678118271914946084045391651946082211604961395823057951101162567172636230728423596131678805461522557239707680633383737486034638114110898094056697661531039106557252893787929333454277769449438863528288034648568006443906815502552825140089906942471936028724758621958034030286346168205237423124838360744168137178487098495761309618452364256238024416087411775645345585746781765776514220456806491415125662234690233842526571201775150963432293751279680746015923814958128472923743959555130217047519258396006715946406003196625237723142096595168684541735235596521969782626348024708302470946499321782834925501930384726397659651133959348783902190501516865715815417041172735484195809295678295208408249444925563336440473389363725442615227541104868885658818478769944200319008817579461331823836410875112987584662081448508798008128034027478380776988887337806279173625637445544998634480354779396113698721968696398687458214743687958241638232128529994911914062146444535957476964703780087302234499162515062361710755072549725773468009702894915739213193461185837525954222190607516047245867556512917995899203200459217179473529798958110521318360105242773577048310846782165160993046455077287059073912198275085335850253825426619707700338965541053994291624580733974676268667366444418377108210816988838747716792981914553227665559780957324412671927650013467864407430610040502579789949723136399478035948257023139057125121029299222024553590211283457258555398455638910083622074841603176647191818275680482053913703344573315805815303645450493792155582186960090420805306440746447151927807038655384836378557090397068451210489008623538989496262548615234441733639694192777692443614818576518740664665831080449106666630884945470973771553797896877162541175995614030817037096602314043385032358465893628668736769686492654278535493746375805074662104064805609555899754750189523352810977591256350790620566545708364572092500355694629860549007427773670504553025507156019210086242028795710554505686686123478807769918961373933020699739309669685484001851798130041059307141144526076588442497574652485876469389796838097520041090032428027171142132293984653725547015200610011378488912695113578857915213354597287716044767554147750275359995483540564410411380887157159708220902470269869363444523056300231796554690561393278518962925476181608390765892829243848660997994140658493873065758435447126412929447559819923179873636606193461597975271596449649143092108388137967960409349661218703952552812341409066477302221580068784177909987639038418430380894887631915353465269967402135178913215048007201654852273571212758800810198854657943260436808520726417234418498749242836749772423036327860372939874156234578956130116469814369589936686571767056631854205780616488354026059144382809802019460770966265178713247181624120601400221775804844815842725939499897835438446834418445544685159844827516992308852830329481935067873686084652099887244416285312279075485589976017281338775039472831410203935591856887991329632121008112361772995920709429649972734646260491807408988445166623084904820868974994066224582447506899767491836138447833914652224895484146977297058169557550445601103698257493844958044269289818152074568863931010721390596374113398247718898182448407237159942588787916395354745528694685570707493497909468673132271080528851792989984840276943340354666281900231085796025360307041232109826775186778850640660344187002536950690066029159050818315352986819332460240169698386102460740957542230425410449553491106823620843442649876885414761485150450496937796939293977638706496756178545647077494317723521981288800329947761649019142469665811447133706561953664893710168574625584525488533546448779928558130315019766890828560501803229861084492667007174674696842057582808159126377115455519881428941898187300778644467761462577010799707516560573746375261872702679476385235018773936719126004729538954391600993840504292907893086049980586940586717375458286682379218430201605148652753471388947566683642495025427470475203548909233952588563341054137747456536776501680490672006398073690202374729277132705939122556299997955204287699460208089443512284781016395141896688735015175157138647214879953249543287778463468515048208084434891364120303222173073480732010096751394491410853819493449810751487737726828225654727367712399238637919636302881328059076683800544427290900444670665326385881893562285089617696089972849418130418143224287537583193655717824727347426955085736283952444092888017746037007463516215412950147092188531666325677206878943432928349188626287441626750425220353732974109987850879385670983420548335359511670084811532389630800721710610903802602037806093957280183885017742777580574023856887915015802802024907136359682198183472656482095910293809582874052766781367844700820732671723965420032026312817859820771382681774230785159668456069137054510472982770714648445603539053145610887312384710431860737850448635428521068044362757293310327922097621385376658598052498326772766397580459710179153544488739256787687976090138664348024455561335882863685133507735255174004142503698085693534001612339108907408496828135916657310411835169321936323377378411831159830868346556187943564487292039572965232411878760198339256008899285095071228506141516874727149255738132447858662503849731829654609278114617097676294245909601448423088811444955067567341963171028861311238497453364805797895642700995104469911253384868464002857591627948986308865192252599491409026970918987660736372060946186716456102645676860330292214905468957141915460889179765652533074051388116059631961097667905324544394936346237080139424632769502002431296810992366711793599564966881004086209448479138237658551268053381654048175528299045554606894021791833380924583361597024940881327528155802340519318752737727881607801360854235113480996957946451019046516676285145089663964592742215922650141125611657015270909954220449160690690119062092835524056971350429213761992073741285835094385373114903069759052594372137154938284179538727769534342310727577043128040065654889668206655405809458451506875665841247719017257984792604227119336386243094050474555038254425794761423545928625182453034736869415098837689238200043543586479433776408119245376735805567398490798274908329553066356936620388730743120105917667350414323879114242810078819145488450369018262689608771991602552075023163272392466249016055046545475310436026694846996551062206978990730314841281624928242290603175885216501078351020017156358254790751852250733787444801574350719295317402065981109053195891734314291171604237426923023770065325486819554956208382336270874540779814017986047341511905380026241837034777937046329410603943853609967536840059387101828689484797992422293963991223788139874412007089164965534958024764615627887780239065212145800275610203805199250106154049247815937668359390290151557129060076432032342111670455322723190531955348919570133766621588317388436944499102048962569841310895708398261459428269467281368141565666641766012889895951655174719796739793684145696469450978839548276370442570021619430293922385053918087290036425494735564774762931045369401739520379706978675942979150002436179756133429293906596929310013713919828256656615187899071468999461293099455014549982182003818752567188653923538777828192091701375091253588626455341560172788407163587625217316059809408490828640522690711049595705533675275702679696508660666690124706124382695010803156709336521330803007867242362630927566425970475229932868340444695235039898379713442015711439501763320161865022509420462139746184622845330800743290447497186417317068399581237545652916340202961665115293944057541247482322675414653418720398355829625941448826922440909625903967236858079513821939141070939501803909674954372393910863257843114726774525346133438003868107380207554523143826205550658562387855421362794931563790481834567941925440768091753240962307852037894461364029977379830295292401521608427168475077131116187008916672753292200442100140783171283748045417767211282269564572034117462527653190690842392966974426496066317025555133855458130236614691626652410020515790564292788033013583382788737244593964444611726905648375868957786488630685259294071407794252823229075824666308618010114985201898394512186915258497126865097086061254406578525076282048312552427461675391925023793936300468617190646829829741790545113777617108373995658618118436497116646475481451018743692527530249569719276765108130528942393625671781512090185689081586506719439841024461523876213279329975888167976225520238439248499367639695040246395189288952063774361970676926279491347474183055741371534995900181379354329112874725285133789464532814762148658397462076049998229370959657493776681649964091591298048921244538095010576122655776209503061773446142016901550786028788755927835847149631586166810300428121288307127601174447800885467051319951017463497306492732018875731968904680830208232185246689560350795936775050562892174933057148837165272743697019370495092623100783838498248837234847323151929391822608561802988995085413877068694779961471390644268726426292133696743859463370862038273848383147812916722150893932326337543656958723877547658954771961990909216882727424255939944091256611748091429783579816623215863182569404226353287980685985730740838845816331090374301372139939248493742785030890637877089840052632752759332438584682469637249875371528359639901733962355292776874194035689326393006616952233092009179191700387510986990439597971742774726388750841443242391270341745597548166281715232639237555381267707117249390906765443798020534275454188463116192390157296732391687790710660906234709204245331186419225208166910804823167296114710120316056506834898301045281296168897856521219437448195641658146775938793732501988021416403136273865459754059883402071809416703656215386916109423527236984481051488650446382820194934120987727551896849952138667117093205936609274834945886311508936879163307746368245960561730146056816507766785804404372873405919939917645390834929307548022359722921513936074965716386222841506047821299408960855844724555655688196426723076479793812899984685959814020330381253498516500757803905992329087495626203980553599643343668799189188188008487769221655526897337192538773050180665854017088090356470725828208382393148428889563304664383046585510993738440442944643164190359378946643018785774356140260786820130907126944739005104479199250478046760313618384915937002965721001552616710629177250697238687729422711576215873082768160476329036007276211486274661484585477079449727933295370722383942515404489017221284759686861964960233670472579246445440924289836426430051903562564274832289335373614334269169294315579100356264182820126839902723941831470042347465862939453310416481295618740288063903753171261682226126970507424439178568137306136775089989544278016795216794631548156952569217925462897611210894575205392139131061965847190747691619293806980150053872176038469590984742427335568778119207256503027616975837869732418142125081771344491870896377619586553681023146099809502303621133599916355876386025769669300793626072463366148422018742521446606691089530520727260592797719444156335673179906812113254965648468507520096816811162137614354832419160013213138150150846902979813385357219618956252404613469291787762298496235994125135578125937057921905180601747896917723772692785377962214771901984070589105308378944794730377323351712897631544506130591370714410447561945516796989247065430279582886521466308266450684271689236804862380881955412348116302394154506500775831898817402808731315580469583963269043721319979822639807989273052025237980370700814038772396292336200492199311885310175257723974682005633511396903581767536662422091694718612504858257903901705126068426016925085417505739096560724238229359721010107389709404064376511210964056704909832756209876268883024494084930930911488427854296276314217269906433425302686225423159138134975302549699706174412917152484269277585930856659824727381311870302816722811743990231603064295614762292604215656630644999737811252941521427769017942298454330266524949161712871826515945800347937472058430117807430072180557990403809476313668604766409564512206510280129376224753492505188073065196938563396861887616708370057151606203909346766508942271688895172345616489578934418328098791196803409826860844853013121877509268310258264296294702802866638232886993440406222737648072859921907711062231821250633901297615997762140273069186695947673115001572654177758659962882389845917755185888840268815466422034394031780430961003148024885817216460914165362843015278946330457388676804042896593461328028757601701722228282225112843860803154409720856123889141507147612276349607015149827396699731153526931826789769020019808985816119252990308899142360914647799178960013910955889078231972338875180988561447967114588653596681690952400413549107007759274669138787225392451825522622727673720919143319911656923483994409539954132180462184106822955623410481679949021750036136845012867525860111160628838177037409144791825398658046786364263487634784311607536646932718098764528243816606367994379792973738769964415375903420582703812716495238398370578050315540874008234009058137050599928419578511357944432163957588411602508231399421444597209531819856715576624157672955294772561806339169728727061958529308232446597500278510551844101621205294797316422746180095640545068037210297283571287269391514004729099767030009613641714053634201084662411971762855975829424483342494316929718872513301373784431735773090928671676103186484599803812393458870383662472821545387510133470211817327420718940816861069132448856941162074487008876006431338384289548859188322166369318543473429909390872043582215459267185692316704090978883534796994446200854247347746278025242662060397155934225951738879168914826768907895732178719362513459665368234963236026041700296178718978740712466250245213373903601052655590972163927808582330049088355600007205706605108344369683980998390133565031194261661642711083065280431013294722223465981889878231917160041538306771618421055609525804745513160029795412077893506373296901504118948169595146947026944793279984296552545526507008523820919203049676880447981051543707001129144634939720515900967095289039718706238683625865400087808765586866146104703052675031876379763028596820322894151470526200825073140978118059452057768346077267914395987083861871348520709932927562096513138804731967326786494710722247782172293558657432712198701604092811429389465455069281415382091913831512338060769145802236855033270764315268204767630097196904119842126287843034779528292082560221836140548625816237601767903233171936221000195155603205568698651921761560993516766894660772784290633535364339628802215782031753246981903325407969971400645179337020332654935090566332941917002282250148188490595729819312945702842849990323991915372118755053062123830885926188756932987764703994686312749930194605158675069826222283566450389532976326256454486073951243919622704316792612334782335410782934754107808131200254752084521439649669794734476466191960466218412120617199747158559742942668826464428692412268054525224960863171425827026002389090737955632345575350273657518819729698132754282012983310882576543686696910969496961403554339420525021264515887480790035675547411104580065849257008977138569928851297318239212972926585886407326433857249945626652432508602258875708018678987827431772062943287103724729138874098959689196690572512997468825126993196719022588873386450315027006853053503577232729700977602508352005351049476688389421744538057042371938902433361440562910936248961373553706520171351695597519377828502059153405304338310765351978036137900144997881609232307058299903550021747851818113116766964037925153945693349936938019613483120751735704054660295383933972216819808022131049172195139672178114852164802158435487509850268521114793931404128838062212447136950962594407850459660764596205181614245937534946434932117412997592537926037216760889503875629948586013229562080372522084378285140758418367703928072763518926713823599766151735728445926484189342625787692918262455761429813879051274796604351741200835795406582519624258989402781455435234887531428310342814978394651186078333936917157042267075783661474861567329315134988555048242313724461059161540121657572957173416792688095873235099205492180745654625774442190518045525537878973572999199665477732202812055933998385549970286858352872162481774244317191636862086556344732624179462310993531556516742408683873042291584445916168609134108208083629146916334577456149553486668955215106355027714373377389720888716432434856629118169011412654497627059159551475915478042812955445670478117569420914420350770944529518462566305570041194015901757132444572714438477014981515386608085481120514788089989907869848219726577468112826654221174877194847755555614668850487833175668404185463557638012673465225191292400028280680905097150702616638506883331107183659181648215602605209870248651013187778882498139586267734267390686870896795728638158906932831348296826795690920413573394562508152992038253013327125050601400276922196579579562864734240084918835623002938070885032998299643466265197458329410083830850073927809476365525741576842056014449819319519793953770228751215146361486399445452368148208734732749749151952413669022795411799045637420187293898615838733523068436983899890976251922397793937745266919436116834894094289657598070558489268848761951182045571392218935556119749917604906491443840508468845402562018192915195172576407417902541856378620335482006861687467702796275950631239208767207516538210635194284604565050127125984136470349516379938778423633546720470727926963315178729784448460174884324941806368958022745536933667740667852100872323631483987391604914575567776670013274098788930382407508193535538971745704367388764927412369079741131372527203050691519642859133303372339065303759190534351653850259285777299678202984406726276475845892529231005029138401834968956262587861448599615262300773067010450932694742401281211570460636251532130040772641022483758194002198317205190585059168030561940334748345985480684080731325787229329434335933038596791068332332620352654885361918678167282583739116135215291593606006855842686790329670573682604570833908957817683650136111391543432026643849240626181921378426383297818548362684399201915709050332512692068094892169933286538444680602859049928287358237946376069759388117646604505512572581538149083801800945950619296819186305083960109317478375587989326761145957106292853336521119658863275518005299906087163208793330615420684178523705954732323225309758848329763330361950007055953760025280025440256033574646022043115469578555248509048480980489675483142544311180819529981833128462871145049156097300344482889492873467253288213980786820052851057763473001233847266894111467938294112548385853264149542765096784515225830212545850645409328617875500216886402407044098724670107256227979928052606072224123327080710406740600324790777850077769772147924389415113910771796124581062119940193690513902255062144796602915679628482580237431058588495395351251208241309789830755855931319649110819571638558079948477948990559342259582942231901865605564463177133437123677117299297246088657243047508978379338101227296045770094768505151972064211713480518656039639083734526322587894588903546757741962178585681017074430978979095997400710816953619321617442948406721523352802023985989954657394594781995612683207584422011335022823236590600990319422383469621245747174827553284090607403583647324051605490584428377627273019619842165912879224705806955187839255249108797305721372364076703318739566985854336971865635312276850343014146003892401710605690509112240437308103949464616345521979581443987987950005119739985753922979276207237643673825530436906705108742714556566390180855034051847136478245484330242206863802451614241512503030448382785457350449267233104884591208886089523666186191882657806502249192037375206564744574119872561329211794663284315690492616227524318858031978679385264334382268967797037582568886968801188187112128725987710659254888555642701954621244746996339996961552424894428364788844936912449009549372506264552544539857331986415526031703092467252384151612380534947272970417780091773121108538343681713688787247065075739566711191896666460952926377495795789902650501107284249733891029619200919451836965829193022993080900618749913569458855490208634710524054367094462234365591020011980943290416535589717848027958383203579901135036915821236956337774986847693521610617953228969671670187752327849395753311679846209286284400970275119588935540995652899492985854583239907009974651120675913927346911036243360991874851862366419111517013487662467903022156962377612470166594827388834209412944892049451006015625364982927695574477411093782636516631861592072698825702391122940798001249736964017216437331607507750584251288101268535328012959317951514796684737499578170055509665739099979253446254855735487918392612812327340836977861235541580664648292464700190976933720483729278820533655050289965785444578026669693826259913599387474693196297012105866134557769345457980885085527678448371088591066657077744195955761969705516347741990902972295519638383640660089402671117468153154336822380995904456586210812012520520439044304540144333414909389845060440324835845691430821982611438319136435016020689420598933393448162413115202855898077381745316224820137187080129654605022509814791898642339947833597417838328280213395824223457336450157480560243641231312712808562065550552879019352372312174958841835535891207660980426209233357280570714449735820567584612055750764312548349702519520602560627469502140313182423707765451845324694566689908576030302386214256366621865826213019563173041190283740969550171000715604712938289995494896016652785689950260196045808107633393666949107165973374196851518494068916329315812829593515020395805054307139728422876402502909724197724168351027914819405782801259693880206116979634205267158727056173303950638354158453094149373366204924175051609077861804778256450397021479301855050688770921982893988881252373510866041420008064064963815378227614360474423387687297132592591333358750536058519821979635867822353639811993163813861925601819689856677598679553557623011714812701895479975263259907526695692878421351100359912596477068661202421668626652595901576612941552876150815070662482450145052676271152711585906522684606909789960205714426225978900830277107880952126462502008172903690606081979698963097988721032563154912724232641407422217443843168156032360517525301021572076634645807010771540943689827231513044635310674227627644438885066381390830477497349388800039644980841424344192527133003784223423147449996111884086933061864775831846086391283656041474909801751780407450577557812189864961808864356010165062792313406466170082485583889280527884917103941587126918491093743008285425130025519211630440444385950358332541081013846505416377061617883356968084421818291803315274306917709938587572484927233891499473149488450488165934717172484429851105998042347835698441005208763638812561051904993316380733810993569500101353310060610178210475357332057632233418177433029193850100723787835322983008163852229839347368399395879459905056716029353766480871543397437921383391102001224973823892816592816823370819292757975709995491553235835305387160947348151187388212103445529304963799928991717670970728900317774156813219466133561565967872256027783026638755420652500687704934040393557028851199293741814104428508066853305977937264301705131601736536309881003083453179345247151331556930396806880192275033115675066195417672920079954189582090313953244329750761389157023767367899937220485084376256550677718228956955779769197421888149300075293993418015191305646555292007079186373380715431743833901438304700557570995257618337295225025402414350903622993231788704485791236550589424761160248383724104628317578105496173281927158588969806289450479079621465219667736354494389075648739468556687366568349213270486538632219039742831631028160136314163893732612668648943502205443913834630122699452713628507278145301668417005329671777921491067154265216372682079391955925116465582789240595866696843877274802030078801070159082062571201459962996419709781294576250951367636784646689529892183262308192358251982553897878780353772039361937702469916434975146431039022335529545933304210004656352547165552214514654853701212995724164495125419294637440493413960582346690967687636774554469693698688016585425505072642614293774160095974326240057836019175254723725161640400105620945994567389248823466226684592175388461303015056014325687145416709038959386519779726395574213848429917984693900591825349253938068849833894624871284096151427842512154680958360228231737447567770445490953040492200846499862691132526396998756223667981122510494302738665906044224133228632336962538134763453075551893245812527497442212010305020000991297159644125779151839421006920025946165691362298481010889959031317227528732997785185286007792977906467262439149448540473885755182703847456959997508491901374533695066506279624542655936244454779553823860377054652361068417481452469466139564670565226443962948102049050679370986148291416917697272566518620443038618623419035599606265592719685747266534006675348458819109237224137457940872195450644370838190324320193637631045391878542318273743958502705185228390470037756671422620700907514929901138328318680801033450815113974136027937956613117665786931152015082197903926325678603101896087464135956288518642665445172499266872621979705153897083205484420036297712949358693127567623604948337682445673671359105524177431804245506012941006896166738516305527743300081411976864971342397933021881668700067935345707491207767159038674660907143068069939523719141849844888753347954386850597733895611153236160249206243118851242422498097626486823564747506636883320163422741807106801469415572822609604808973766586338006399105034310270562964122556127826742550707816156686794221541639924044695638395705898199870748526039933515390097252442590669506468002940500653841546511562784795846506330358180857072776096504944914388075500161236322501422328714311030269057511994841762554468784847481726534697495662548937581963721837771096388457624603860139753586459430843242846785432712584328344265331147674078315069682798736449071933608668405811004310959642730544800545154476921040167605545075142372092237513626921112402178917358151878556792003244237161420316244236444964776226051890237371490671120094393519422154175513289600813488280417799637168572994176603222720762199831634358694754199093481043481175545657369321106710713234155987773059906394893401114721921488838324820385555735903291729602569564784309157833859904962223476231265784573336131645664720772187000222652414358081624942173370745087883812289222917586379949690461455431051918219298476625476534829613777139104929251510199275168115472516971852705372314117167734913587603111453868631480213605403171001634438764915439279794207235585291790962115167272734990743221869311243386611750817107238465568221832671167183477400724866438147895939115200930993938631853782873614813066658488724135041420613251688748476371855474880670721881412410928886356700655464848841054059320334223599848653141091120688247712875285560830002736867020283755997975450047335611182706793701168339787754023648308428979022293780579202793431170888597441963620750973371767387835337755658261265924036023331762885234027109919098039956405494666113844045225707003837711098186669187794524544154550944120922129575537101379054006325298756195494088834052825075023645378582036618731125237593124138108338095593672529107915332406257502962060604699394350842716564535889110230479660475929874113728847740991164624245282849542377864752531440612273438670361983763910512223364158546673762819026504916584250751795675638641004759061965680084539443036703098819504611439749559691743108562814235954941622509252839732456591727381103195915495873028722914833437207026782932562645184603802110036396350736642832647153246299180872376008652650689234925647746961672266758458887820413992939681973980091735922789474912590416169654266746500964359399883030617429786330399772174698488554283745268650682060187483059319127433273382055926480576238678588624558701087776171937566892722486126778962308695953419803928192104810782360889718204294901881966441556451377393583299258796028827547050262246271403671716575516808852417224611134394305459166829696499659223180247001837211071693200584385126826374135791461672008548940675343534980071030080257608603963833531615070018498312477066241058585439841298662450765123906173453784675132291230527597512427085754015197453330681672820256803047446304586337897264501783137803205925311507282594941618134491127093197643734208135823142752102286183913391743423112178379464997878513677613333427416347961468788749281877746101270382180610452831560769288230471636338427354205514112634034645360231517535278716784255047571471255068883344362356114266765345801358719284693040306240229547350271511238291751631907209972119130500400985793904962820252408874130590981255155863289849826696233370854417631435602322724626891773814042081658100488050211283076565573599775163025249983103095068919868345545561665500888876700525892771828778870267222292262301841526132118302426369656398559359601441983653299599449937154536755134618922807703132229260774568098747636612647653315753149383633854267094740464549961486172097466633300889311276468660060553363444781524218967000370680774617844706777364733094254629380047700039249544793910702203555299300084241103229959264369858298094182532033004976195393990647543249264411884904148405263843838269975927120362664784909253052388179871317875714528291340083757876973734706644752815919637531482471424435816315566313779002636511895414614094364329795671608489018634135516426080668094131643035667695103310390665516973375574359096321556414178208240129498821565239765901116347610562426676444605119069703717458150834607805071342592553252188253807236894941948935343776480929963827156869589208020175988061658741716757053757950332928808411443974553477428815898232846283387011348263661510827653134704718631647078651753177162396591129432070150764977559983001281169486121576080342729503504512611965630260595089691358968063347373267840757966239858192351829514180253247133056479912167182558145686648922636663873615401917256958348192859870184252519111080736339743116738720594724354600826246828313426131664970312164711813113782623110514794603625105256520143676666666878433496744789640193089480034923782014361700308813468237812978132865853365188223191661157812450662708245106750546241852218410528195237141347005394304888360757311711040687451460077776937770839987501911473264077450111108808822022672709658467410067752181298304651476658262509802177485544233884890724561781039058502905508948271569098867125195238549120387945594237363285179084128384335233156236234237365475426144410603392332285773835497017854358951878354172894941302426828292556853603463557076708163714678114692544667924405921935185974427434204271008710661268055297674855799591305050891626098975028648197436120646138130431425305165529108425493819765244829319622276756318428967478070269307061967474899482013501356550684297765785391910259314996676782057321315536196026132879083751871951466382088434141140216464080394187888196309919231517623882269212467800213440986445113643044436948602985665204629453129596854862279663912171150428352824550045410857377746236827631335441084385330391805018943196447503874455751741455755319843963966592893851762019925346209536353106989920904205629716267696080953522244429673563472596344753391615365737734287994077632723210156488205661410814904209643484358172368672734445175206661361221681138945827872172073745493888556017977107966469132754148783485657545273467211662530536265237296183889437548271173860553735928331631438510996515749823256190518024944180243288377257514029394673903326849222125668891205461694900031196642536244631594930960850551710776142823898672241181979642467291935168689021352691326299110297690955180990314032543039848016253178340547160712727426625332192134000498723635701827723783510992995343868422649314502828803213700534480824603700943518218466996837567218279627232681066265339639479450690966613402689102077670454268241738541665699669280865902363236692744961444490553936867630384611181750065995381766405262273022136738693803952447248374918299873201829292585866279285646477699596265203527912512904072026098458732074728123767116233971340798991193454382299497128146596138544441239892019545860155262214671710829329502886500230421393758532690319561881645749055258912938842613835499107862671231629607278073933404543261074475286980016410099658061436089771347203050195072358937602018739231583006789488182107748591450970376396667560510261229152458655073433864813646987784071883079398825130809999480625837172938832190284666783987205089630332319292265231018518567643336083855375165196590876776326895047277645197991130689858783833301059495619653053881291144102410725853954885299055900437450995208874252031690771968851585439564316807159270584699392034865580718736827225978809472414414423919127538647915308513193238709687399026042072504056296428720656119085695825241948162056450694616587138265478903477407960575790997258285053777403266037985798709276118289657487138647773569484203546612214891633273972841242299300658952713479976080390954673328039797452433848238236897978759538732021538678773563320665155745323440635111932706231237037216644268011640523007324467770649625900857606402507189147067108203812012873695454505628370816497560849954981026861187580371502254985456609453815407469553486613713361423566621073474716100928086414252647167714285375243376124334830772672871429900948054896007104372177789357031640341528681445214877635656294712554924232361012192773707672990795329635947731199849222040678511123779278722962844767052296378025208179870994200050721824257257097794142298455967222465438873355770402872314446233472909796411514797250363559098614456971911029461995799555364156826118660726815391613575958839344254857303639557238316456088532875506156529944419697967843337286494924209374990100019147718094364814429447155626610501960838340372105074105094737053053309060053256406778463808671201375128418039853314160395333537198239269396902586203087790255542174607976131084098186909613884660720430395187612087967564922023442375029487667426585956060870900427303142847885134370984982024538416135060830134790669316638737982393668987432447317479213728595462330173840485073876141558000875605334002463700271594012899485103309548180642076970018467183301698506495063221575179396346575608913622241191071148602341151418312636905380147486929442814582910742890165493727921215926451794757373040790426499204745463825673873330338284175122596039261778654914827107526022613650905014400271912475507804940428043197529337071651101719612527276902496434364450038344259232925623760486964216979445684107846040019585709332053422603622123229992823817737482029157815532988119410911535031907670844714930981487392006728359477009503984309859705352338095005870183530021588179728526838155608678193745178210781889422624532032767848764780807852417488880046780765262861325813535504430245736304635052542375235224171193752243192293993484611111010562000844710804599528983388775367017300486857441983561763223469126758348480893291513803572041296220331558764734162450991638692643117938043363447357237625823021530994290110754806149897812217119542494181567332270063057242880482744441960445702931433791454326018759113129993993575693903872636152840976460695424420354659075427088325757868360046721006069902437954763399819804867667364063184017398253118800545367250895054065618713609396585301860116028236148355327196643933218375445700396012229237177932645685330395773938366559529267139708493963226599767589728417071429722426318816669116818210823468723129807561957628136525743021358043865037833587731269940611078456937931922819017011082580808461190341911733424473262834675964984810978723446415927300016432546806413682727361682582253278310639548176209887765091544268995764200573908410630181579105809701271669819239215700095931083392671405054600267184441389979186549647389676845199831566726698695305830737706123880219364597082205292221955862028775745945207387427184497026381227462834757654031599299729574829397324702549121073365856030097651075419530642689498747730556555604880094938607331351988983942478572375847405786864280348944671068889013484328689410946961038212278836351230038375090812980273426593187999492684297979908691061242909698682195009089254866259092736667566234752214870002685813982253788928258690013629286943812284333594697416612077350100047062464415676817947932388780498330694604255926409670556290563522904279634659654263684222037977917372846102600855940223795723403192658345420520473703979573801727560098542584726811017715795269149335891321654937415157448688017466464075853911321351759368500116107521655785825421786912101795906790669050894979629990656132962038075386396191521538273931072969752142097507859685506799424945518538900208652055525348530020669793052478591462981230357779375044911815623062630686358175412993453388579861753057459830835477800653774276928686818538697907176569275579928242543029803378911065079964942448377767909606860958471565511844005087288061222676076240912418063845141184989576250721977466970284006925124921399858010098590501037103840558309121827903125137293545759456133101725293359051220997507949531822458480310330754684652320347317968352296066964651697366252649300386046136847193573740866276998472280577911038820845694420279881755872856832319635385078160657801870347255085455943562662660817905823018694754861475938311638477516336923195709489145039318952156875522807601618100364790808330337242399290532387911237764249960299801750346238862754461461124354156106386101513918096744527608769290811732450041871631502607434409685555671811948628007092135488411644862536129385264279262122467649002079769838412148667974633161555965533838722606175069352639146305556411522686617132645907388231666189542590175334028468726441343530488074833571641890561430628275134853027939968494791771607096703240587560563281794417616406797379158438813900885087201183196795139262197453969574426668636323245753058303248064791080623425099278058380284180013463305305649709605238098988233352612264153013792650815945611599111879126760812890142488918450950608029203730073146425970916213490744876411837267551750156391494651554315948151204429848984931681334001633618596619258925017873402957593618569313366343617955401856271345453979293089225785195554120988749203220886530935184324546525753578102301472516266535292754345596248103460278776908215021992774158802898727383791212408399896986809198614338276662863586185024724456601830289877590575519803224438465119486720641130641509052952328759542629212024255699652534157630599745750672599360600687599568883456750914096469083045699637806211892064457524627411186377921510683017053069027206206245250533626382827186103038755858691023513878809579136335339719016233316742645111603547995492855605288872501122652275278129624560063442497605565828985413606717318107649937221452690544690827163949922749261788265804844614143848496064178420215498664501279512273187916383871207065476626464527411672404051038415302010748539760895142447137792946410887305676288960162786517336180955547797712793766445814859500996529986509779432007496169276896100475026077029271995014813527990493054032521776153487747205711621926140522614239698259709165916316202760641326159803976406786636996136884674647624118961757749963148002918973335633818471174716378019189133190607861141224371063067116296920494261775941038376257818917617262383766635908419200341108064544271648054922260511089145920466625185147507458184623090617305388949715623751513904173136069436332008584390058233809985250725688782356637484063726965959080552669993302342047654532116518360676870497603349356462700710167132363439394620747287777357309156965493227478501257888921746235914065507222741088059903014877693527856753883929520863854061999646291188611773028622929748387307829726623366963491801943124844913241278594770142807809969601133509627593025928722041920429168746838800198906130498668566784717624011710646892917295301984751543705051892620751782804517719969086254618804633009426385437453191885187837968865260255085940554490692218504626749143607602456240465650691696009560601727803279874570819142000748236171565377609587076151789144545368420823901202131716260668195024793985184707286685940439983214709453517008090889627837907819356914291333714289968122702826070184411964655405330248259388305007486479633288048260941396081036177122796355607504187816230545523742564344002328344298593831121329427436022179849978392390673980763298046244406634640000022637733953899343893558555575343062859495721715244909724958297102005451662120312472266490724195223426467325262290393706266520176321506577569873156199936591381018409283063177086011711841321063604650379964276508597371988169286658495508826876110437979797266394640289273445829011080394836646339943416180118857603510539863012866711878601076073836423657670272591191112103845106787692815355710943244048154574617742247454281188669450287404171309111697171712072550739834211202464832039229602173207908268127193182687586006141094397743659016500769319274672041037795648576861625064378196673369301205075300563362296849973960798246493065975921497882199578155243938187307589720537131418602506122617216810497663503253948010582546246859058488353278011924572731970343065411723289540720606387596242985929851719448316068877681563509209916796643832541586248980206647887893726450119834070651063905811418359009271724305529606934853370255163239603110386760366028747113181563744263884440041078301485578277981995253303968950394790340990085709686428929083663454524997944706700964231489811561556963517853620782218788098100599014769644699479118675158777353922645779702098137833114645959405732331618807968265090819513174656932149743424656261339721945095334841247612885483196486227665985840231307468887745189007631241333357223701444645687926130457626339355916627603782518313730346340985008106856764280712302250628718549203438809789761976516390578406323702169393856047468806111343287414612088870267704081408749418644486104177290792930865401654890816783497752075280489879737575102781320043580127585233376964933386438406567893928703920656446694758923739259210663624813761937242533235308263721296654224802181446435454217472159450812905085639837788214956234887602052762196748831402181474529526086317677764425309624924012006200300220629193796785803383346126601213015221863435798801077431559328866304476327186104884946265412613025255646592239810073302772440773232865553629074374658589794530850271548277967504198948873950986078656185783781128965767774955282316484698250864836639006682332290967392079501563690823411965788360253304103195040708593517065573341731910507851343060269876002932580900220985459359311277135881434165516587730986704842471623840583811558913471691041134534123294595346601626550912521720804632306369798594940990951267828777655862578437563174524317916694460316787980223474572591496331023634753337878217308401093446258404624776341591025464531599501149131886737175410058419890284660519697310518004701568965021222720138246222470183172909400832292665761576878779422057670042191075858096157910512889866090023236172146956967459826274175826222238350974725363342383447870130660712320561346894377389055532862572554224069346852809235737154268377241113859227059030713208913651225886114834054313863800973279446389786477525596500652386913488613176365364941760628526602596707800889748327560645840757955752393542489688493828708557481192644797796648916243985340557387677668085303725692109124259559585020321839450459479278547481516312214112803251685440337960375645953815624492760474919826623703319402428048266804864866829528228466056730380136544898026774218520052981410938238928155695290273986564888047919359598610043352908443792548272582457700087596601354410861022005516443541269394311601774224039626015016322756573089312818030697630296772975706293560952152735437410885110551562829070457136363086606634096609914378048882147154513215477285791459413228099420331389766322023569506649967418009750204327424099441067101941818592207787158417626117435202966377974350615927051657246715528571159582275627968631102301852836917701502861572567807309541280042884370609006911420890058762226016032948779043809653601091722832356895369328427107355411559561953875801806408482032938787181083620771197113260646507802938835755680967220975172303178695641972831997557879806748339588243885497822295188052950190527862667155446707139051331629758830611803268207799827838139257508298386708942922574506289170504734525708315642300144684937954022437366113237467193102857455313169381232421637336593852838869895469747508901980455024652781792467104207051686057469827693108196537831385721117156589876111606741333356268268690007540361191345594849422081062181861067837337915733076304172819942858038934907848985726304110260131869957456967692825236470608136488358039728946714387706097228984446834969728661616678495927811069718248386572679305184426990163886890450610469375486328675276493691538016337350554450327385662753096725076589501504089483128222105578043529006245379092739392786104894118313430506365663850744352797183903648572700851919989805306131504005140949791579570099464144705592310064431519986675776525575836331047792809533755031781003808231871783433226555993493698271421405559434209137909502877252830525183949729244553610024041434132234744916694605468889368757052241443429938692331133072078177848417046086785069453496702418080894616495911095120527699074873594653215009202545218183733407626217986822398683908452375769142092246134628021726922499671736078170127890258557252142299032441286424294390630236514784471574394093800039664288012423289882879469564886491664765722689577994995445465048117429613645198948031161836408840305485680585856617144915042119693604629591178687120510389305302217638787500012286421230979524745597966445063375586998362043766351090200533812483244842507497613783942324793358218852500782594008180764090674485119457047375402792592450525098118468536125157730291510574073882249834597032981122707635004436707283717285716597483435521078093807949959825562374021684157496211340369966110749768429568091932533377145990240851153373010006164425786546452557442951360510386367965573154403903248910327083090389988042036239925132977214097449219115749119215215746833957760736654820839563211743127418617952770396273425961867354145909316339416903059435939870923952445306836171999448078646261187400970828396873210386671269637617018935262890343900886503109594830634768450317480978740324762841475573627665752672673520885925846854124447055103210934721964589643386647060076861721057954966598811785985282761071998243983596910113869108962010214428716605419881834062889500533181521938976491004524025133757743255985760801505265236230034172243025888090457688546268567936472370943048821455548176948548071514642213066270917546017853374944349274223252376970738248098949601443695728660900278454180997069405427507853618276571534556355540238662840019502611138908297808690757802449277283674313285206724746272594416243355880754097953728295145361967607708053770847872312204982062804155878943028946563516881753178631858474243695964635533626430172672825555653131385434871442042946603832549183590254431793141714385645875900835054615082349872484853798932198215766858332639348294210150374891204401348846320737104792777022940959866035786018395471469336614487763266880737397524981811000439191948501647375283241686090825952613629702688462328166231661746392111489796763552448724987451224335550332412182423248816547607768434878893063050665254139263013582054852377102568998245675582817425446865148107918946538738745221765276017055255021405474451191772710299765570565777862829163464031091406308062879680796888821222778611310097610780872907505906042958802323396964855060545672709643186810775423285018839659974173291715112784985155312639293526198014243581078866528625951240327675860593690220120688643991886144584992746020726630405467184177411184465722572083996361146509490027114115459893574020257467730624570459285193388520583355663300988623714995382711896336363178468799860228151162636735620933262108555991133150794346189831437340379549284959279105093975774291775412456327249769517398169833534541660156358343529783969471250313384514238113288467581647373512596951482772971396254102271885266711144383169961708328850741818453717424960367307753411506700572132846014177560919874480672451999490499203162532638960647597473361344292158591253991497028070770640895955392814521386230560269216767807235387297849859728259436105416386716535491003105291242137250306784420181877524686753444515830535987798701248089117428275862294203118979333904741516531174134594377689360876146406118766282897336575418449102121048459814506376854519079972004515871345123568497199671265579732343904532771763847314233339843785039920968048995177812574814637531692141097356651258268239819604301918529409246421658462250676904310318660743711908915852763727796037382543115120234250160236679030638993120264908032524052709773285656472260985017091780146147644926766729730216229182877654938187344199463408284228746273741576173662729111387271920253017146700808030582944975503486897022223092630626594336410264264081940158975651302914239822692232218996638350476499928194399782940392864194362398599960156232981487579890866303839214241669438971798101646148039676508941207951761622758907120838183713248470747984154154404569212968285705860872019802981476576392490702484259051711387816575521413706982102885128264432247623014848372665957704610543857535752616993049840637125345321685298929653942475529080222142663300846709981690269749743509691857963895758653433708519637636179696109029798502861039365901701861489736957678877497933910517617172652998338008237124665454690582368658827055360825377023404557200948669334584371630298114531056933245095259482885461307174129265431587829268314291969407659641541175416856175972354022519840999425467575969578230596336160699311931463928030093288608485270722239905124452522270875607101227720874546690587472432808266870683575508380872705807489326545724211400748169694061133919278788803873669238972408948888866479847461508390680358274117421701270715377698820460700491855882696199190158105299273989735339696964209556710773642424037765423303850967143934837810397851150488080861394757993360259387800160413573324485244608803325440480226230903757100266863142004097581184196141234571815113509094813829973699725787461821137264809109567967232609795928263904047201863844388109106273957379134848333031396080108200583445993092057882408178619646510865045540855726576451239149020298841398047033851342748561196622977848721722816293661244147942975540553726249698251543009839487979701172528444057945377845086474421291564345103768028541429988367865697887383694211378403386124810059071789129256152109001969936565099028860831911886575266119274715936960590717564954100050760162856164702421322323173572048493018302366640134610065106825244575914976581207735513965291393320641367628507628292186399444017179763728576739244194119027733362584102689020030507405720762411432042632796545953026838619710173264305804878927903123172570368029151720004275723219406905582256090661566067801895212686765949218553712810661262740749185617568204854775887633786009452983843888480297962608226256332925444097961020853299206242644957940303300796210434645784146450986622682848249011571717901413852090542323243243439893208905479617300817566639851481892116195717749356349877012529998006523556450208136541237221695364514569734952018882822480549125670841153163362133891027539614507365060469464097838524915067535767852113549294328607091563035688627894150310345366855207901165023539285045955705130590178630658001915041391032365511880384645209658191181922889677584945829356642612693551122608973168548931333573406046478665619189733865609593484529237422338714375519945725779018041989977757900466064025907519144004303793328447426560223831005346234089336252333583209374790245326847044588222051810717455245528194990031754132130972342714267952111072398725609837963174045109174027294185068316073301427220896462281855125628467759664483427235059359209860805635297366934703945423958526113889085167893945314441854971542977700986127720093942823669124190550577930320796834900929433599665224588796032832842237342345021005367660751973094896492927155085723760135842533163890881415498308814896264308946944028383128734612734302812930620001720280870401008740495960365532013330418061238255180464282244182202940120156509207587516788348647280732779862064516099562231531179000901790181925716537159753311841636922691582260862825057669168619160112333117114951385817841537608479614976040997558476891210559004843897549949645694428419495363955333712022768339024449733330935739228587300261526316584408183811847148153461943504423721748612089351325869301891637493718291986006578613932667545158951253848278581391633962049194595389127601019166815773114161374351365587267399480728933681785587963219439574400906179323047719782585756259746257303765552937419923906912089399204019159984733829188938197951934714024890000360992288256272373849457251609087033225315516655131392045448408351241295967259385216907267935446545746635974100068907372975243716212739400943756406230924461933819321564782255141932381546425983947775389574892679802527296662004766578415293234429015528132746495630610528378339324930967481507921311498812831849965977724081594129792369128824727880820754802127377929651282694373252469922922278726043485227659274970831407735210820992495131886965033833328074328300322028837023171047434951707326767537476180491903548462531769005403999132624125013380374016823585526931809454204225192877786192001945243388279729058427769750918423827393238468794961425979409219033435137719404785747239901316033206387011576792898792383298264613076719958664059539986630856535997198686042670668854791752375607582013819766112954009274943573049473423512625539133109292249394496037318139406478390836420599429824450246897315829532342225704296039249950676789860824251027148142350824402917181945550322378092514648625639417373804636990175037598895527712045607982645492050837227910923063727020585222021145488322221954290992162179699857734446279129080317301701711194436508885959363210729394549194917308548084335734929261073472567429271783594783111970110180903066095672585274076952934280534760861662115574630619825702887696163366232240542183035272835549557245543815252271246382618431809247338582864128420243243026150539708403347086186622491898827766416741094567185899799490855313807952056528970118500935829778041213455060036475336861180304455382409071066086074394053571024856188272028865555566679241855336431380952588848449633189365938595985876993256581120640640447848474387422674675202079324165651990449050880278403601145388939522300918717049079191099607189471066741016275643087361414117919610128078551472951236529740423879660921927011398478713325376221294465391160803803155371509545687518169477644130918108527482414188862107430364308760165987727070191013614255904309634027530861434822100153220502854370527609646769748584744370195090627240774223185825963979076014670380876836462815066344357031545724964056158240978081406572437504315886664183605492045607720115077166867351406976495500560773092120525346526521637005278819786828801404006766753363509585745433551217744689641967907123916082216581080600730591712177172814181208428730743189595581687082785754440865296882876731000790279309416640206779292745163811433514149546193424166341119905059796065775684747761822668765883739829191756637801950959027052195414276362285705892231607965177075370009955139724652270708724830673062305807628189382905752229465431967582986753540270085962803134685670788096444349652099636288260249404619581048351642565021571456161272983617453325093928552173325238621867223485904320773577516231922361779468122923695701251332108609670365141012567022589716496933667656690458492959027383329914807005404059214576276118810535552488294550080106700603701802290918009227017534810715665889255594407300021949701546105624021720378251028648918114476879661552932093943038999765854732418283824097185959377935896289203638864377728868372276192129470618932959781195011298284060119142454822047174867083942349086015153686922695013255599006629975902556147470383161151591876801245488291566265246458033256285258596913009337104495523164668491814829788195445420698639621238649500826115660601578973383738994530902900899227205864656539801859108158358078397939099030527041857134226771161683601210178423409742032044651646131337425944762796045026015896123513413214832239325865852398839814588826436897852093641551515707141665298798480204522245111794801921871734937268386998695437940013712726621582142099457378375274849231473657725189858954116809988315828888417535176370250557695865225046455528507861337378057780077237738459990415610433818442898987053721688767210302345577382686763899465299920302129012036925729467419784995173254222712652397772623921347267811637313505116188233160785248638028997049382014647347718258139946937335715206781839891970481596297395988824222364768402149365238109912090443970478623050251547684662695692593576626522285593481903418425370909532678297011977011721241956492652208847061264136330025572150289910366847558273916064887100998481436248000359509817974242495774092120877829215484863381327061877142913600426613197100192956575037610124216962260719497790351800885416175497052595312105137057093562393850987085481055169066390552846199129633979766550762885436949531581178182392879990769446713782833368187397091744648561000819276900315730370421248153665160077427988139399654332717857930874040293662306013132808171273852337197516428822760487996037561486849473454558681577290991498698056971854923334325001509840158529518744597775718728341216331741947783419903620260249207097875314682213085002592892602370312300993325916887405779024527872431141125108891658698964772403834545140148844487734715978834829937632992810962254066896426082573571103520699233589172662236770664250169819041520577062567438230919209565129436245817236984349166840100868681694598717222287583468183996842218192664884393659228058019681043094499246481280593676302653766948332335009716736604654846082930599850828031936715960109363955443353387160136737223759772856347772920955698134554645928930475122944549435280244103568710367158196485601906566476792462653858024582010312566881121463536290002637455830435354809557488025567930799025968195832772943848559257864095962620723665252117420822586181079453315796300051200423638175720449418474748639091415887477731357711342305618581063570464897961947044605313465253900943408650966147548482103065017749969869496081099982985119491059785438959317059260517495226577299016768434850844567486775936542736118529572981290107704222429425716506935941716353847955143123334838125927966606801899403389220917408119952048426565448018915463066616739862714618498015131122611936732791285199083319221664537732648546649090386041957563796115684308012957213006794091798724843646735513778555826467761598094618317479997746371685707344421911378651202827210392197107360425293013632002821602771437767924641022692692202967451336044951115504968062504621798736207680454819710045083782145058947425730050387052487907457127119599603131731883953651769621108912203324803845523940583237759589765978848451645710125170657115359079457678777188894495449723948286825363262106267417148953819619818591081014079863692516158721423172870292097438789644739048077992516588408853244003228652900401678853430768728338440760732302187245569866463055619632700345807329628676397668420860981213979002819760397113041143910597371483246015885946394489263040266876951220405954148210803649131035028517120008107582539481855772586669235038681706636430834209436853958484840950740043393595628558628895026571481907475496315733406279804218816546965700679839905666962102559188898621224292585973657901501039138946990987445868163280298529583619550708463395633394695830397799290448221153779408299250521871396747757228770513776266794017086290771986384993185853447453025858158978777541508266718447175315361380067690783590590632741972014430724535249338825185746409769194691081341125310332867299077706321501327461066927494857086528858544752382429133506148875635239341745986387331866813870538567814576975779565338917737884762679712838291749341320729062625111086407434383565214907457944369376372927106464069244124817575875478430637716093529329095761061235465105619717139092954427583990605222336376840731191294035466444829805095873686785637363015854742670604272043324772470890236066766549217681490729329696345542411078073479750189495359785787207873865067757857898952220611302190908827156340345630673324442843757321050120029106315663416539901574400248689301330128499806099559846642315471415462967072059558697622493782805698629105952048688866684870422815322995253130436225684272806171548265613871308303565147337001207085250389424597378952354543560941982108366477368519449257168210224196651478340978882146828540747331875984303742211162774763199463822572215007663637823914223623715056212446317469152016925207529565973528981856576970226142061076187391257289152477933653697806487692212143426417447157291345809505975368151784063386781944458634558399770391467923468122825288862285392576889049859929153161624779948540489413226673036033721630831274458651668941444908903205427518613375797276345880939875633784912302362061606891935786297319774177519887027507000503874692753883742599731137060276415730033016515977108028421403713792459707509296458774221122197353274444239881017298202532604557031791341194005062840898402373548234959947878446643755704462400293956136142885787509420585149275642499989798359015093120539217847814423287479318674811863868837750926618236742182733065444768932386043215306931039929133441089899662678451317527077368346028171732399132731242301907947802731153141849447139282748209346284158762812550562304484947099824757737538595629343835327364681031274801742170428508488025459385900007855501278712383043455869089601677530870753742811769713665124335594880005168766636873335235675823009092521848304810507448818295472969785391198128373236562694729067929560734913239824364898789672218420970038574752290814881388024643659823371567264831377083050267911912145359711200825599750949898963743132811947351789001158439296163740068325453741899314623420399315523411569852902460803787202115832957642282596693899352631299327051298015339106911273683406600081693016414696403098117346683257318755411596275559842817672970258211717423539916614530478667941890672574709654106905103781424494785802787444836250791502623581749392045014574022287150545630177978098567779814563320360611134410607057521538953233056681816692483622484835708876182650609223772871216016325668423539615064577652985326032130722991067902338083244885513678401932039184835526693325690612087899686989884634248396879225700366803562446847461989928396169142861610802084204555550024245378011518614409206376677493764479066341863663003654825184646251868474468844448424025903339470869658984638887436161101895259964367703851600484855901251363124636503819124586475944586983305721369861308612445426698597084791957200649763851741069717217312707885257885461659878279428925569340153174902239375718228702653758528078418745089110999078294225148098594277322668892919341630998794228382848144639545849077532684450351088557931000407166401477067248559044796031196144845670516593816552536530415098373626415983225254907694212204389319175107857278676254719598098297425237797182142337243704212758582716285959327622787475293938642973332449534658613203215502459170129978636735659468505299145786679805251181467694085532103069554665237148887987657337942099760021374159187332028823934219909784492684671199776133566461838172034067311507002750231097470447545263722875453162551336613207847051826465842735846004691826580059723594956982287581038037342512288714202964524644910396278821487198640408406142659368238739360084880310059593968879118900381078723828668618162001699507028213398703251738424183811163157632689510127134605815245792672183703618265216782217259531948893068798196898839437258828919219119634543969263004422900810849533901490064406971198852184342822058677952865953760342981546454955903119800603160193995349534901267396770320537832384068183178737039284853258623971004808859116359427116982371421662760493090803111337577375854365304068788341148583518733407276753357752570822040773561045798232604512200484682223247518884711702539383122993007586576534654389511383406581617689494291579956266527293827531322182434001951857675185840167297418634784202954267434883250330765037024798130322346176100210206680169452644113645615746806169930976310201849193894902844624179564152164932589761934121982339869201665907249246571276835227193413647876365083461260772190611428077229200523018801758627451806380508379945267225699085636064553296287666796979348469797210052989454920081970936543004054849846674107826585632932901302914754114180032704526723789718056095544397903559108435182158286794944856500553142286290060660637668333361288883199528247829085289093452629151842274647996628376125388889537622892963793393180191498430096478300441383740870553164335529994777098563963097989053646015561449324923853351677047622706824588961983985116676102094515397538241797620218816278602614123153909258032737227731826735573798597370769112812419518143586782539994215480279572650990838151021208877817237468901119276554770186485266348073442371414021398230486900580280830661708769930344701226193550171730349949502030615457944909067737463561631662455203334841086318705827896857735469620570091957380631157327941150762082837238659846343621006169446008649575032288262980459566158560117033354653702179797961817516659299017745258705494250620116121043345377868867560354387494831394129191147593623866151167663059604657613767826184181106707087863120832170490044594767860470095109436437264927016502987652605012243571901472940705144371000331614845507886021073759945217432369120934430825193362560099670335737816494559211213153824220100070704833574351627163509060457238283651160458920553076468398856701106436049353710163797249523122821194837722914187624041052525252562784853449594317519439697511946430565616287019640478483627664181780481613855793140016739454066650490224105402729572866228138359478411006118563485025889189845017995323552399570992758678182951549317288802654510227018068755307916263313631850424994174393614111245739777198358628598502695624417117571458194087184339488917310566180912677678617116237478716772019636504608348930976257393805489860904385755668412986447849726816002708080421134355434352487530416996907876546410518910039730133243775862627461113131917292747269937492733203603228098562791291293699562251939063184650948009269478323048529843342825938719590566286556944542915542380080243667623899726684833445294008037319484639185470069799966447007199014681153339108057601846168757293534699585908931902492778421686786183094172438747834735431432530566087418232319275881637461029469060568654941922185063651382240848041823168276543868124360688224656025680842515184169936420852706742287292601411908115356911006726815568984879130381444798726999551303207703795445065058419541223595530283977049169574115269145271001827173691194688635447730015606920408440732066722782942002470464421133772050742479330698232613508474433121517568118419484206870615506151160636877915085711086483815767776796596616196334763470760354871549821721571276742917720650339092019503428465950305719144308450325921019282963943539439371847127539966907910969611315141369939282936075747830443998597372334926760293913355670991441757028222380587476682589513839199951599212532471028941840347638942197334762502575734296397325193773661838055530440074526197395876570811836502036097508149153625616458624119428849440979312263478314320713753894311645757069234128076187581134193774010036112079630000682601103146087455504632365889885691474582738754851171345003143050390612293810876023809777239091232409868785544225059688282058897202897168994414057735490198312665130802866473522718149251266461711844636368918178077442287916268340040467797069421476560403707121447911438907036113413793878853748000893032110638901881855483236638800518292200948367282960094347843664764387980912126471853528669638461594227702117421040316013170832896665564104726866244245395420580301646503036538134207160785049572079704998935428410043507743178870777088859432679152097019114423208873930242876318543105971654459066146280983320810310992228397364787200273738272321654334082046434635080555194678053415505447133603615807697601811290089777004645950802314167962434678327876698795528402702512595254177748577099192153108940559881337358246931056803685028714739291908041700023609198312886902039233688619237253909736854776245233896181934177809772235921257898984645444719579319726578678472521693431052610711082106874156278049936568714117967534774121983866212579461006825170783787845627873942239662991273142432226583353565194237112352483390964017991133412164522053941958512857651465039320698738624005949021928582935295099838725321102312709662268806896491417826470301503790293235491088828883112658814572497605390899620875744059014058445113775462845907288820214992921694724787953695905727524161108879913856937556558914667165408158375671356475883337955390448022424367628125868219211928398046656874075185378041993852278330216022333857825492951369417736710917022692091091293930702674959887557526096537342889653596137198214992756742355176298100702472287031437642705005392903577385783882186082220965441289103237576782301839990458092481050279669532330269331797202961865674554933943252191897057367751165341115394691738034263541018236001453597938385771636596944877188816070449274301284953441492826254610421981234560774296904145414789925703128200901139883491777607915803852114914688957343691396422414635692164829339416176226999678901947775704137294037673012876689189356091056327973531434726987653480495188348174489071327499513798437523352945129918211066890825222139361930285370447576954581589587408443498837694532814465285111901860000387553553961342866882888071701034408634589708869440848571312960131860111279065828796549899542797337923183615392911204858263114785979104394980670234468126678159832591036773688017779644445367401107134469342642818887263025762708984783972997198847079985084564876647447866813524143513486014913113532078329942968739147959679885834749823647144296114022271815496593996503542766675044496714379513344808644851792055614011990088492197049049586476265439081070558497877585895504964250669164942364554957558636856149327111255355850764203453607604517576180942918646782763594100989803910328009453154216546677482761621344337106791999968167478393118636005911633648588774491595809971462994697378302024318591493611495356033033491934956699876734250683043561263380719966377498758860003482025856131491644607464087760074449973034396940996629928080394038162753829826066916332825838381883748993201995113148634426415969579951904403468943582802318781117834612526408870061865440156062433981081648992633813561578952045679855165331298739695146512876202450561501035694112444695182446455763363734366815264127214350295333960183626388692749325984030314175982559182214339265976501047191761570545234517476788689942754345556215340791187338006720131779259142822788693713825613081457659822577084522335642227447739245487040588485988816376329597247076197490131381474078928234566913118533856302610312724809455268461340184476307069545542371911924183469539510178355513959292967639317923593907729753246398206501286674800371442269064202936207196449288226361103030164242248276688042224766099565470154349724051211257622025071549232630408079511652563358894645798368246180400702330620476792287486779955349152851993169948006418137839440355430481969707536134864708314691594905925867331084019655664643705134145528571346876828843066347769755171577854164827583285226961949498921020230979039432931877701255661639182544084062896139637927580206635495595458918776906495392109589473804867485204714997966888647387580275604899219393915727745573232288420194917431138276379072888437708117553796324645753281302498671540270213937295947639948739306178592837911831497072131299348701072468392299011717645283273761354039396841915051283742656447568979787537843366916745241621161502028694778076614885528205430433672138223579296469841350602957212726495455986900329854494177684547708843573009458480636927265808217771760076844736186141077043230952610740387587513763051342967750840386416017705140177039183173281795076938048806135394085228627638147776210248728710986796924896067676996826544129907062373082707463621474768005368636303627509732651375220299737083989595052502564850718905139190966792159520412502695187959232351244751699164236603189311714967056942330471968061388706538405105627921396039459906305641921380146108185931422404924013133720553144171416421572765887017284918471118650762249308051407202481150171260858237389845168194049392558979312887064667234456903722563717855371990109262043287747499594707056589470331378505888812061090931344989572778264882919929211120370825379600317868903004707639480427510283788697251978220502453621100904897311505333432960190415080607136683409478744896597470841049044630881787416009773246109127420172207484651333147435344037463157456705283566633263805106712120410399761205270208039231912766573985331342793751170670261716724010127791158636988511759976560632284999746856268189006387979950593971677572324708966939959419835434021678038309404625877241560623316243782706260335207885040651631525414544052974740068035662154209530157131975580141623282821957672419810179143691324886593488124540821533651861487260959041510644792239709647582790501114389583228647368222990816562113155686728406948267120845220883023605127583103323181414773646039917938420270785565135656292439919204879767749254111510009441269207649301992830387052152937536285135738469068812545242140114800133058840297366125702050311094940384583279653303045994332385360488647021199128544392038881255345083825320164478841617350674593573290747063657815000732943891201637437891995055545096119614903053175792290475372623903567511237756438190526446736359629414843105012842442062546451887998528693999088910797271527020140786455869028526627244429423174073963307505028151268113882686326195190529980530268941371470840638207136824395844102636426203580559915804728132878678801699228328936094134541997250833293562489311592528877074220276222118316376028549608157354851219156294689032983184181890297523308090303974370245216254134149999784758290750048370990452420971516766699996250222769890583163336849105509547391090872934126294149233506062896626808537004023703971303819403555199115459655281900596596715287856908582477492510916429664753803457348650253155939723971874506264433992885971077460664148358886103245894319036521246299769185993267553325272831200362761077565722270969038988887843945564201862105355442838869071927410521646627517003620913527108336116364741625159003893411170501896466068661603701699485219015657181126576422339950926562485765280031415049884991654668571018678135793961284280892241923417799516585011545909464571865210257501059048564354950277455924843480050022040891632329600599063381252167777009467875709513399670408805506626204080905505787451392541860351534565815726185415182868988186794687787584297580797666398703609597428796744226358880118606907643189698231044253474915231801238011266405178529939621102953840136742359783036610795597472361378420204073581743904404737268963572612978477840720830927155395888874210983327606538904730705612489953799421457446414704858646463276765280163307230122454978808997928000901924163153612162050282661793390875967695837373565596163696722525870457463552475259383803333911025829419502455198632542638394699182309607771959567948185724115730828814336972867659641365577801908792247368840577997056410318781220212848880176800112754026219498843608201103998894600517899489517643592220487714068441769253459283894331113106355084069798384708810352300659900466406526605101736510002579265690765991984179054244128839399181094305010854971974467661095471187374174400521976962825234762947011550625989652851229477541720704104939394204768739020270076562075780895859472686090566773629919629808295552316229272504972736959140361800151649196325946243154566440538148809964550337259776614246841529591245430934206167108043426126256893756529519554346733648516601206761694749704954172794254730756080920296774347216501408071806522770308655184421015451975323121581543283166864085248293165667810930616237206877317595004707057327446327251469242118961971218688558362736633139657685568722888023141366079688362022833698794460948287705616034704944084865359180230021314686564017025267722993231268294665347297560688302755529877371814925728271312222676917979076908523913439958095084187622513331162126958175856915657132844959689099534066661463440125941064551614000652747483833695460769161091479089140196294375423089957986307601105946320763090163303478251616479483644501649970595753266367168882805660748006420289438413808284968068517369423526548060205447430178465379765248590442978171107621712106535434050846454698526868390446378865598929203555304176582689620035923707893331688114193443684176251222769268298429072843807204161577656937112089737778084540683942722643642778442572624019794456194995840802563261387045969895087936538395216090694188658866799679681412827323311193733960257746809516042273840703896693732566446944700205519484704884689208436757358186430210572919854349959015433316036822859947803471315518777869691020322167266243110264842727972498256119129199677875702781919513476177168703734208763829486556495282356399875856588798343522733044326266954447941257509115224972089680130354627390653411609329214642863152780825984141721978585945079734147609177381333138896377017340224508445206182478644013156239233103375032863662932613722673264301901986473632872640569381152524151096242833149198513288369688620956351758314996316314565592708966119073960984109417194525902595955602807171055802286006586051617624356647955972497753317287815116955252064257151488905418438669307494948541107031481095789608867697826578387123268208032563841987250657162190706364929043032475646791982018977404490197281361841773130125786146390127836765759849289050573080078920701724755273337633316618091243874124773674760431999349982267819703338188485044891408014106896414438496040496281614933956102380246812124162881297993099816078189658468465311450146291225432709105489498991925045866282299486814511781171478710980239800877276455198323416540479278504791539771891045300307114442862662889199768835262755070318586245286249634515741902589165279934674335128341266506429651502885892237770098957236318513486684990533856029725039584409965127931145080259179299018204745634975869362911586204369568065692057888948969597698665606897253503645598688802814320724285103266335047299381449426246777881769726378499408705485786952157825676969637918736670697503502370930091004887831045861265055642430048140923447225402537397031774384994606224739327680187974332432371828624569533280174859903872465996275932773767478460701043787807374221446583969223717702469634746763956852841522557992219678011430758057664682482588688479852050473900489106075043778120187643436205017631172428839641621649966528281783621151357798019899232885942167358627522978069734771518505294937704000049599377816230238555107996739841579851875420351704057636896117721910053076026940484999447410453078777021617724532426966297952259263734766143067137093365717324935674142244827117904310778178652985476200040099545054894974475434177034677128486067246780261300335084123061183388038374035801492444462930982056241369315604253658126636325438147664471835327061493371209221325499449949521613351282438385676827952796921502601948989312262842524687457545977782316668720480293260653603473910258522986286091011104261921651314515390352154526318713148330050227654854546775738225685079369409341157479349505244837726080066523575040508800890058988722847619625555158391231796019350457066142963337628477481261665758282087432740227962841303753210799155561997886578744329023165827712856673453340609262417029217358443622008439901388129476839303706020592239755924229544456068763370799651890278638191542625527382948380359538358928023979320508578071071582664186145854696735217321857267147770221390317507215319117983435181453938733637834595368705533011631178773167286497125103976566506283121464305552506253665393739637798020234589083376131244927982733908519767551776271366613416417112802586760125871235432318898547716893939021049340653754480462849917781937644050720303697099689448442638365693957353089811157924525057107148764387058587362060831435443746098170855702885587266693313941048839604541462331597615298733982107569013339982669809810463431875518406751524110700738537438434626279855576516381868577421253265548557035489363680417386560797125530052192476471827727908577672071854735867227958500134444565148950374987738991054938662545118615887295723039687352698951467912114548142564730532117751271141950024339684459304240106188790316773248197079279570409814386214176922571789981450700835807953737783995521045852594626998305264462898984605244753016129969973589985279152850505875716543240766063631220759278183962893824659924296989346313650742006926600544236774655060086209243470946598022040970821844116008440129009789545739995918646547527808510636611000340653072759477810954754523221483166151765025652948957312698286218725225968711501207667934829420643882319083190878459407434005099115052406771931667257074631191946447143600171306504771547856269028533602970751580187738802355579354261911066751476305518281405186841081654970407438366850068065511753786861398737112477235223875382246175828962240243290651667244053121241032137775684252974140473663915775955429309290657922902294278878817700646950871098209714076508197692453690110053703910246512787310159171350713164873039436167227186507154493219468182920221921766409837499300072589181814414697627493677479293538377755557978095223809345926540827512830364065020219702527684394772855043614775996168627187327773252404290707060228807673772959181301525292635172244314745670543818622613056670208606891809405546532567932580022583335765853963769468567318031011544324890221428623951491168151101631078275917823385358452182371625385419165958672519797235120176257529735867953032043754541984672722061502100741116897618189154449622868286043181178161334639936976175541773681038590109962751734979866851232753385940989151007768233875858218185013369431655043379777576055589097612586750578069743181995049718943100517175352485956901587656393529281007041914158447182585703632000238758294171986695258976636843563488236779229029943486756452454544453920239996913857968581589251005114945711478166211796352180216750125274880456316940412448205256901876064111447007515797114989187119552477187837034466703499551534628578576401142308893685116454891944156724133456401764868233433371394190912258333526471256038708904489926720994951405962987653455657912731624288023926003098960492896828741262828902359806971219675161659002806998489465944743763206726678105242989161295617794811197460184869844866920299747298275278061983278839094234627632356642287781275677288152122612904713942978792293751954877159770599137220300880242252590005223780206591736348375877819611651548585239898706477875852742568408868271698594724700507574918765244055358240291503246754891804247298048338148503608517439958994457010551709734405097184674199175298310511731365040688725820190881113991673269957590740624753410999947596009638832804058113765293959429742888325928489824445949024858642893111732312506793669713258092109341312436376822720061806207550220284343275663675576574958902455074108643223169683765315752145209531222750335981453277650066191691509309857193380000986986897299893256541484736666596851910123672533936619942891734858974710349404154408917482573708577567027117181601654375533796703218165046071910814859593143213399311166967307855649502852726675123113798038265908754589815824745969846948444246759096469743013040853251548375028458579202333627137901261480341981542160930819864377499814018924749909667314777729069966372097267586239302659486982473582778120901150185085685512359756754243083703506315600170519708148050685504516689647375591380670155325911984456736401587816170015560427578214290224855304758334518787143692096544132971458651206040159705678946224193127946257543732972800250327965847806728322490301372864191242288769654770200944339923570194351395176353177392898702400260036690050086444648657595270092621796150464615385157029886633781319176099561158718334154394745583258569679855522239388366295832488012614272621205438322999457170383736118721069548897976910631183627214875331331896288219932326475079405715043508742605079486639592241110096167171866406604416664658501910477043707064038019297647467298767514837735718666120696474220114899958150204591665697755823999449538739126386376227020754127929078549114168673200874614540566332347099112450451780078736821165529176601838621558381064498709272873678787132214067843176188851108936326174852251672051265501948150942024217395645287906399294231307381060107833687140667988309244690474346889707208901856211543481806573386126387199657105321687993961428960291519286779993866811910069362214100176299879428688330728019721491225338257263506268187132155148806397633056515488362864456156945312125130703983955168085691664886739241385393083064856475422934828589281146178822979598317673070723125865942050367816029262211836163124429201412610850241803078349778407599615881975242709012017985847474651663051593657858161049911149741036256174505706412936994635392625651698585845641581925396417935366810221273014842395658101683526780790251941212677846076479540505907689080841854131937814001392887470362968362405961819227515904568523747816597946744059656446453905585741454525509319506581466316709286538521646309820800524666955704750737168939437496556017949899995814966271131308070086637189491972713028743584300474132009317870569127786520942757513183696038614127518560898789598034970415363576254820256013919862933327303376194164999405939224452835491256725941103098753005926990831304968766475538213694605811031643542203060834585007100590083721995527652658389352773376430900483955951133272110453788223969649553470231649647075496133108439897614108313757252979092617593134034271601680034367025511183196858915446915505607756359323074703861914887081459738858871728537298776004576693894750833585639737463824712193752119104926641115847812295491629514719621743259113351816355832322145547886659536910055468411335040454765373865216333081950399455707122163070885427245525456635500426973213560210651158653809223171506931268248441536841301660657229860446211969383829556371723210594504377217749769722772768176914658074170334345916346888117355975122050437859164488720837833702011464828143264147615782958983241165044511900277622690903783059116614006243311777501806686068533262255213116988187249057206569273351348663429650525580451927051553942642719115677155191186618354108881829841027296425494433615479646735377352930246154746377319315066424960046578153012586678111582956718431110800792602785337868158412273009161479729757859001346776934010819804794821567431351669846981664063635550941804618704413936836317800781655563640167539046821371673474299348814895307390105217321907266004473127249815593743336030049294247691861058465282178554551406630430017880224363985280692531961479737067770254941029516762583217322261846854184988296068503026731005255222430212874654250505008501662213714531373704595678919035634263811028143271722044194053558693165042078248336672429460175039992119904430805649986174594414733358828540291481508788446403952559772879641557201631374362845979780485238233414760293257806187537002196717655946068702644597781762015274342283848260200103076280675254972848435560363492480848177666179830576032010541122483188953307351549383601803158410828629017883360566569610231564212866857456992145116922773836069181202186419117716976414695104517873842697597635301192854551977262472456742791782984091024827331819929230226946317817612171915183500223115485727077991389478772261194542596810677955427718073695656848699583237787670946187853210062210528559642206764860508217918274805072110733963941899126173238328939227698087173295556530759633418732199757212823207562392697163512852703302335358064711568123362766822817834991406718161192456402726341049320177677293462036323970775945035550011191786664769695181357716108051847419377115639235415774964727439773702295566494106591338640401700732861037499021097376613834202002312378905592141827034085121668024546937197900620857324648485123613559980766799981566070436450520745878910768378614748765838289441838024350174818201625023942277996934759497502178847864543153287921244486501657553813459478379717970363133579574322290921396868634680157988730588006570146659868971798172272242644451176844425522127875725641081806458211995414595679433230288775535638177608382851785280345690144657479308024869075961062875705705503198803964520724669024971892888523531272042031350830727909009697231516286487267468700160061493970401831086250522486900562720782105470704473141322657971939800652309933394693338110914631862273875587573120350225478769094649185554941627022376038361036547881573622076817791245980469184828147284065145750191459230000809068005612742512819613437210653792887631330864943466298475934433930683118178022434449819358871738705139007406741787642324659502975426939289007967336019353039312443231211178182702939431485033410073372341895094768463143862030844514986337378154970503626301114288576330005267512055834273646812063572798147852905701454791446980882251970559407644223725448659339133410112045098102895517945405824403831919315509008201711321790397875024883574146562885170056843623371800067859796215583481946659111109934536988378078696250396262366533125943242912858514103457942876113580269534017078592742612914124619573089033696601651875659137758054237834950774650543204803274081912362853435219383697478410801752516977006073202262097986485712639549536476345617268684431603087997874788899498007469768716171971759205210004751521749383900859491547292973904107876276513459337083343808815131492108999656763694304258837317093409805569734824734547717612459004827469956940436319568861583977005913519659870582423421442394533165815907720532325302732697539936490570402670781031264749674820303914493901634436480313065850000603209732293457458827809100550961890072961484916450363845816438569087094903357815930758642036868659724506540627205736689496175186029867346153838337707970536056679549887257834420097665307839045009863174372959977019758847511831551293734767037088826135325168502044237334937234885607814655349106449571070209473272740977721188752765387650578313975230755872201849485438752080328199744664333606300665787310373912015033189680394485482588685282774052189961716111312890727269129544622107126123403272506635340315154859389180055431066913425378291239437034442847953713986952377652310588255937717156654959761630126607987648201521578376228295521083289299922250925773921418687530260290990346931832493260598927927608508574686925819729412352605185985841476976797508458754257114694235058045487403537301655378349259764731007040744891540151392685005355551175009568066914592362641339706022160056735877667412195052998662399724942728460767227402458321667900106610148370961935356509419370650609277132504256159226999373426965221339959514314828937693944971622379699230021182128871417694803967176559582988240798701649546792049094236291534039663962223332321887078724562955766483652628320920116460725254368630765184980119456358491375232033836480574008157716588650685052303624731083799930596327917575697477504856837686052012231008201633544612923761119665917633809066656428910914648581439443428426626771076262358295662253734866236747153919679440723830235990765551838826564058354645692546606298787876965343262369691745191240163535583565945616559791695572609359600605489068765710697877772133252016504537291519957070036625915161608210153460687570078360072108304290253448605367340621365732566272591037128599047214430635383769676129595388269759721681661794623213203772282852637494008708687514361112382531244534756254033627815222671566200281603241952614562706519152787052753418252528018873001066967092269425223778003563461024008431863265214393352709076996711567471871725333933051148781103651398801147432182698179709441809614053931900701255342980374088499887191711167287173496914504964636477340812876214426564719963909505221103991943567739948423324476578601613599366742525682555891514426825218829809440390702254696372233677442332005258763407401543108056204947719335952182643080814661739831912187444228417428572953522909241171183860586873311581508562502011666994465231121294375490305463274611626908128422091340414451598752197714186192360703829010389115408545856609616749731259110038807025606534243822782285498144063479688309449397924497741957788702350030491625367064826433921473749529469062178147858257302352625255441706360553160561911673965608848955764769751719228393849601409751575355395418150053057218481631421567163976169813454382602253231022405879014065139725755951130539141937353672104487990987534864718118247471025878661573680382028702302002763385057036347752202372718129778437246335907932674632558468438750362551549644224215996439070879973572160184081838697166839680190017751431809033732279354953992296453624851462522423891201666770036897066261607256799981460265269031671864609239542426612834005688795175717607032684344638985073052022780247745017278388234966809762210435930839922113497287799121626445413267760661621697634358959487883789650547028899647619804199336964110651789172341364103389049983267977029349582799239028456314970595935111456049743844195380077466678935975358859589542025081043153401161465686097490083003020830280539286481258659863618976607960085202350909985241229232608579227193692761769607891596076131767070810539424949172159317287458929735155860833821221119768109380961192758784851481675858109916020360761418262655544095945368142070866063246336094048472997009107644558427571648891894775320401366249879819519362555084382489864062166724726511063917567687781279949737926864435521072858628021743704288259501471425350658953294746570846864910107848724339876159133695255887945660607662165083605739396576547236617719009095639333124240861071667243370832815600445373353395008238890531210352929693366056099022768000466568669607855114326218047679258675029885008959337132581722870838343072310732550846384391055559793229003613760051680638664616931530167957510606671501139090133736862931279415360269735956344665334453962665553789507630752589595086957167275545835206710065133462650566412783982344606774311110796248160608954869487917573324599055333993480598379663544519478510957594334784238363327745217612508260371973483578164104378142939475305475279064986278712273293136956264681750759783931130811845591238390790058867819726830298000168336734067261155513397466706935659471696887797356400958372343254982014485369980339206289879141669584501056709332694886461942893268737988743083132315133083902150102956400750796943910240563807041667974285912161080388780357194403217246110632806823957773847936956003784156919485999556594912997014417451250595438267615323159805772878703203040895280597855215803111824010966784658555589838219533616115139139930016952436240381525846220103173840999320382814014930514131844455977867153377436361153958123661099340133615340945769110145022257326150816527791146718737865938663937224522702234292242721980380846832449968450272417287280634127572641166720939535830812232778719685911225889448565294973554445663331438218601566249667033287473614086818041230324377337865252523802249769791128234440100341748980428325798255016881458231948556677772026100134697782687401880535839741354677599624969507666417277785671372774635182455766633002795469508706491519900625544850653709488568162160411081145466279572216450310797947953023136710890234307918964450957533934448531285534354778131560948363392731436510235612632001597818676495329546543222887249874212377456554353657063741908700850417057833095514201587010504058088148524152308682827666099979220011304496734017033911583766030280297595640196054582477565769841914043376554311622530000343194700986922245288217891305052349732816949431023794291277169077322956059008365227819247389341897898921563321365198432444728661229445170380793416466365825987448624980995597480614146396689196981539458486959340516202108905890530174241581538222242754806893469471706423743970256387182180312826386452702694039632486571290963733063066986831788638187453075423697138130819641594957661380199037901615704246000507725885021996531725203017240971280999451903505458201675438204347466468355331043863214739305758342483609647010280463933177433191534037768644902304246998210481630795645176009217668359136387078047783816419258936249025879723033807967560946009584199613632309890150073525525752019428826420471045139167729980870571986611956510751794743791971847107150700252426148357803977505091416552847754063062376191972608828158462780898634303489434049541817786846073611115309317798093976454017475913970463743682205967159059537804089412117923375949454136066322367533925066899509819769468422649295047684502926648483465021349272497739829172139264456649543032621406678106856339129437732055880872531867821906829486782349868931592077472005148404808182971397008286730939696224035736932645483808075502406628058377513772907767031319614096953060312067219351771362101987115437298497838471388815352795300203075075044041647345983685686892112879262715062079048031754966269222397173471800495168602444549523608927550479514166368289736746116032200565278660814631327758004852515691686654218119990053981035057568850075342101174453416564944234787824168793053883282972376273364903836129897321390599655616690459346458898570745655970156223611879365115129937768427832105692655622799203980341420104324100812798162653174646203498624470728066598232459921946236343040126108173709895281792333024087265722350371772511904961792705398861533069197301096601196572066379496686443131964221349284376518234351266077797268352109139426168153741150569414736431889185020011604693822424228586541864948372382153071528134535580052013763183122238708161651771676386120462304565335169824996298410329818019313876690450410113448202991027876004825482254689837624267720290622813659112649906346672872868255772902190275260011931322095800412941291186751147075760311398440121418615976061561968570445679550457646408803684453136085983987857632526772344640780512814259840445215923691426554103722409349969796576335439560233511521728676824500215009821922597139079056831054391118392389721228686630320863766244153576176250285229232040796111343635086095078919996238703134865708998511344303449576093486760015376254292525886295764464405052138590780431317419394093456678010364628708065853503116224082346076199326407647555825406680943600234693668603052020786751042995655059844838466541852297300114088608487546874516378261213525897175909424187439281248129989847232139218906612233886407728463603346335839802438678805145196463807533899103171217199870074499617770480109529041026313415453970575805758512676419482930125958785920750010191057258941643238204983703338407067078156531842087213559915423956392541280776005882435262368245133567878068734607438983334654861760062503973374872174048868417125315597722296056018799496905029762717358222235284411045803600296145937122329358191349905029621764388309775706526189874002200574816514732469257116893030858559723479862655803448810331484035480335482280892299606560917236663725459759851443825817568007567543439011651469753203108411335593117132992559186622480433952105482058956373621317777697034345192586211371799123844088663803133879483347956100417931837760934668630597524000803876963689279525402982199333354169906195106904646982000511080861986682539920119415928767900635751814764938217964639285095463507102038568109003862788525227590497410320066371062562030751760000251539775192508109169157884541874589884685482124852996174916515596445484452706531913906701263847412688672238657200166538830120059207679250216540982831504803469089649852578238801463053692104962556667342530851191937920771815718534135689386849067872711412069584743163186018559254790009316810351185278979575751480638532815050786667194364111167787652494197918330581986989179661393509404241028513495813161550996090109873713468062129619574584836350597800722106559716097627883627702872692725034393005005998825450611191662921103145895526482269181562337917312244937913746712237269856151759867582693319247907179205555591843290759613811762982735971612121258885115386034036159546786614298856470171558532898785158123211696862612775578602507832441084011767928732875610970441457698427644756030658091616344726872854015503105672153022766430609960230570566485868021320255038312083455385740943746847772538053522214151668949023747218352628183047897393001786537396533394732936005260265526307571629020258074218094619136905807482703362881880652689326884681994946125518004612327295018407012993219220866756429799678068798960099701557468101800892989433999764796878204350966311194567441941894721004873047897194482464256424580946266933567678208879685612239817638629366443391191766463919050716416183987082568765164494924445241508209018925574927331837524278539594400100761096429738804790878501310433607284146172293795278615220201217561837509639380942468298980098070918746172247015207617050097357828358336305575041156210594421477564203777628060543415268019412511398690651483341628731484762814713194285038076172916125884499501896113687124825129161376471181643461024154000547809668953035430494982160494265860663841722725610291743974903924801411097967547031933864490815438658251646837455295680919141123873125751089707124982004806771285231157593019642656736534169794785063355903973779038412276196098873137536916799226566432779252332565093705015832579687305462645289855395946280940130983169712446780316863649024444373035780667419246773621537642100338567754959534116806702646358784371817907074684252806927593885702271608731799522884446376261805825009333701507276190031043705206160963743558233371870358220611699236345968078894767319049459302051785699894225672444302981925775381914459532227092781049741535989474487458240561593309489233709161640469958339179515451100640537539933645629940794675963588621214077687009905052318185839959246032420486009776368965012925633726809982730364525995284495705873097600255806013323294164186970230844340876487620598740369822434640749326374823896157869559871858859453633941855675864826541612835499409832823119504818223509585779350941655296716006404373450251775803822542670519849845155965662342495100500226705119548190695676429708315822518993617344637641610884368286417170769421687010010096794782758421459291038689438121224761116263831826052758284994644592287408643656003313079536342291183010038252957336744645209421716308252126401705712860081649840251465360082960195442069137283116337146045235420999094618765700428015361248231655331456602832526722994246200611423878974228501934503629443866917003087866876255290036997622992038636691384741844087714934503307352900698608839664354299878505395719191587818204435209445353815561284029367175262070053529140041823008555122632885400471064956322529703750097596913322101922865083494843151025950329830896889599230748555591321011985188544416708824236035808261740367241943873956054827274379486962409548245775863550408232354977693719020822360112328901027207147469683939040717833634565335225407362075794386539692585031388538863799788301401818615463793636136662683567100239566228899244864456390061807164792192983259441791855623907320544585097262747898403913191651031953806963400152449805797473229626248020449133676871087569020304698153966605271134167941779564129930875035905585810723607794692183749305706208482819221270716019088439971594153494580332347487241554645644560887548834163353450543813751412427044068910081290538279362208555020950839147509119123631897213459251704619182024455464870988894073481744891823072195885161629750277211305138757728790449560117206596053537710758860227716075197307449738847920841651879154061455388801352403918599611354931685865363003522982259901960478878479741248527279968931679252984554034810615123819960601824644559354089960626743117401120270034848931594607338084915368846770312401338995228240011714982066023920636426622988114784318285729587903930570934081301395240907826279889541950378610675700631174095666156351773434508871156955087934063240691237425835397223301878405271582582733006103528568996265387099637989641614983023329874735500521863606367245412121191932785596378898735339182221374288563008291585105727264435380466321133654957224645736050696552106706189784649133660335957534485279360098943637752244120133229727203547803251621544053323846991147912098832068289337067935899117747092827797695083314573058902584557712856737586725126503640745252825157849399279337322620419099836976846242848586519511805914548489724670774762866713817351065290065313526811874022373618199924645444290785210015630295956920529939501064192000262564546662864256796957731403472214748211291979556870869624148359400949780933839965744820565854708893354788405843915083682816018897642998781123086002557742596697421939952716168329229013513307422855882800628286714037048527294931422977508395953244228139605107828928546757984722336696813392706759091002501491046571892201150022224498112399531249601185842551898609615014566804389759837923599673683887705542401807929870863340740465808421017482564054018007971364821386465072020068082485011726798001668575998930124801395876943349253416291038941426430369181922326831582362180726231965902257902924028224898822231909485292616481659134781173577667792197558375731353016315403479563260035535988340002932653694532019289519880311588903157656525978932720382575440330772170273598628610105157033006583076612421440461376632707739243053051267347854677205607329058994104487827473635759138666685974689434695160306297164926364268930127270608765077740437895013610969740058057818932056994718961600009722606646338357559778926431096799183783369159592806644762892783954192832631607751653266433837276098598991007277772893846780831592757442212004361731540594991356041476328905079266065589965848599045506447928088891575062576518223236933216997017179253359076981628017448151823064880094124949635890162970367611252494360692897574450961315277270337393198931483172194366466800907110042800199838060508919281920972493830284164259762437195468014121119588213156819598493127663079020823168689335203826484525601435785378856465317412824392231913389466763375953817707051184069201549789728829802030123059128212175612980355509639580262878521106385682523148845394772580232478866549531906594822731384811308454021979992946197316746109165515274207758286606503528077400579947319352061253260133015392334407922686085589614319044006569617383616785677797019397081384755440723108236101038520952361385396990208485636476257159949376269346297854611400810502058093246515253648061037529562177281970320874798587585136841978582449951298564103643317655048855792992900854510501970973947533216022780215996227268236429983834379480042585603802593924090649970933559574093846204216090749326126738846311581359080087056898760149855803254315288568659300205312034749064505088192696513256870452995206658507176695526729206696937510014366427087548406017723727847940512226676715267835078479946910834576147486312549331161336956557893586938570191618183028564333893878682753972129648835404130151060716141780662616729851673352266507176088456032955579384366514888803628581095852533179616149392847238056629371949097462336679915112126142531930518715499179180105165740642811406515224227550407978142794265415796575854219043055043435339553674316889738320603126935971818345418503744609370888514031067421961477853035501578552509738380324025447355475332223442843329877488703562168840990245237370883341733053306401507999735032900289632681043957204948518189356705177479004600435413468841077062037690839678849679102381522987403679145087351253034858895282281490831446396599167004526266256730450885099514616467822482751918360131912714647896550816591386013602997650003747736828923068482021596372818926624524196367227903610899017973703721356583746477106701942329842189049725478123741776474105356466342836506522215320382661869326884171196382230138750762499079342785250299853301661083143663189570589740225711371578320562168548287586414560918678122701175883701522673448472410031372519484985836407193835020814024233241755544001842676725012281592778130684748049257015219624961914434993224130792114527069241294335704652785372191058005852232952163822695934185866834624346392081518472375796431722401805810124605583838747492630042932770055780545278633916625006855209701402112909945380942405021409134202339418268524632061757561253471003233260275606248153318854313705992735420497852967902749545618144092006577048363738440613176713826261597839046056302530026992228897336728375735287990141638576636868628337516612210657902499638103122532955368067734768689584009324925989702485987879136413702829794862408175999623833915639097391768004353504954461698761757156802426901469457162440978064406239935715744483768727041805749706694026645130236237302011339121663043186121800285418409564284230053019378802318992118625731449930493780934288145093866448927122761520375516142988509179416937946181282743620447338632774844344140721845995282729626329006718756081919384484082710783245136217207987914822481304337160248630254175278833850311133428056019002930984717131942642950021437215019719690707991749775535421241473786652861181412536104106903654032322494472416139245210817912923367422167976427184988785554848054511089370874601190662495664460754289605578866827815592944401542104907446011808100577657703152566854076430512422849892783283217704906759699581746757424354468832341106366509864510645008370916922821396548700856555851011237061959313403835761087045913995246303959909637570554131419361006434169609133298088820137020105198613470016237617224840579897718834362810395280737674512242158278934000005687380920519728720610559146857921930041792737938176172705610905174284107060871211293555894528550383290607503315700526562070906136049919601949230900705063250985000559220896270047976738366635924228651214844174579215219451345190824082296376549118798302269813633807966440544642752713420709399563047848823199985751571287455460082847672771776778576788428832027676425453347228550655887037107537667861069511296209481185473451905296684556172023188572650830330965691930300257203983070360213593523932422430508524225654938879761748905680492566896533943963714947304101599269060889647246202645328923675491150477196832822128545751680046336848409013003755908925777463105139944573080016803059553197931643455165012111202770401412312282001780801677343000803520814764945673507654227293300672136933365536941461926362104629042685710639762103038555217702599351613551845336608143587942886016609931685824883164738830896334311765404899484535946190792695606188727058249536865762245100531644327345506730791539307962615126402904274056931991951269812271120488653494807071250629643506057412234948101651618359891203388319144664085120161248663892269371243595708456147827400175911902460449475725269724601946673752213487926192272629808706266083966246070306326467720177971562716343312737458944592109642914341846777939262967561550043582962086424484904456273593769828135421732132736943032976794879664191451565366962709835035434313351242902135752890415546091647242051169346336326683137130286461481817738310601389742708312016995224158405816180263505756908128496349377010137331277192250507777766662767201479117087140646514820451714288906326259773418079276610806349581484690483688080109636526704932585034767749366981730901165945410389218608444829751087778494431428592538431720875241879855033675871079129914052326874548324945539750754231487633835030383543993687877621285762706133201103306890003291764014174172076715992188097548603838495332117041084966400877992171579818530059018263870995066262466012435490274501054412076993890099957657188226146126168824294998455425605649062911014169221815050025577505893918330510475024963068426977393041213351037184270594394372549185869640001530629874654936629487232873327610400572040494962010656361824597887080859875866651794474742715502560510100992997918234965346556521334675741434625476265332798162755310692470798272808087520167245990727039592195151711197048295935063617595653022095415933423767125628327807657962894300887445442512693298524800901028135579487437414283781129400594436119006842053418930558251890202988628146123303308856686306324591552928605649350369269204566800744903789060138447489036163627085275541335411676248323380448781549837998640564909399349203152220198114408998831203771667351428361598635929323263697084234203178692477492574751311917610917309481960217052891462212702786787460184367807983148651637352248572500873806398837672875564078361036313673778588197096425601024790557317183738308409579261516205338231705494245152955363075485695144855795489932084281052017418340646443847560051292092079018208990100895263022067713846171752653766200518602464332073538506965567761547950660184435610163143608374064463010575478258164335037086806000488336168188768820937372305691366487159319625794228342580811353022908681551896703795756728957960643614054191147693668550743882122881344691265951348402367521878960332168505028166572030871667017913510649781314443907963182907826493041313979164183716322357008991376031707955393233789695245903029094541322906231724547855770617969914195310930596120686540475921427389131711740533876215012602754114746203971460746663606764235839505453181103281986103473003772816028316845976072698217867205327583623470319016968000651490852363112976238030134430415375847358007277819637383222531082505196779391418032761123581060798634807338630318136690733713601405307790027669288789016436793612647270059184645598516287391928785413051354747527245619284349102621030665951714269895352006557721808041028693283331938603911084701556177856842190323349664637267937602436562245960307642851209360846143470440805537647929509582230456789792179875800123854589759710652004740346237849390620644808587894723195397153333591760559505794809959591011983215287577287789273227213091371102378893150449623438133542253809384683113134403996428155861250748510384153538372185661134094126371180651161107757058280285897917133868470324944149333937798019247523740389779687103028640096276394921398426466800010070649971964120052385773323486069900975361685120907201180812175447938253605534116810000313486849816958909195483015632025109866236990166814359452502604798962495585629961599507770887104565864226516955574595051345557666368008401643423421268252077652885585514498666149463233033158701606022326640700458603965043264126623576537944722924476994212251305753577896740627405365327292806053219459756336686338500912770666926103655706842355244231240444602710194563231583422556155776161967221773601662143098812426693581134211435661954401523860416157846920019565794867162053238078475412695255940139364339510137643462163327952080605154068411844145825582908611699105693632171690505552887504492285752959710614295877543401824426091524965221188428361794960524400614626308006876944148833889205762453962906681798841113608397520956418520755249622597531199176949383248141463802949245104081586961600894051983540438120074404720489179091594185479504995739526437519581663943723427084226063492260311759401092481689991286664385681591684116389376745779911929049860791770275227204919126043362457797480908078558689675386575995090019627331192791129601842167182152084506838376798498491246383978495375975401110777084616160671372121204445026295795080981316235933363377755420461766911720361282010242912891612602014845260301149693393421854678256657539944351014456049152770254017552133363697009187072634266471369087025146497050389709078559398389716348432666820679728466661246690529110087461546322233354257207282172851412680917505861604845676140630481497002865164282609428837240330782136476936625849219512123421845661731269345317837538310437114462390264526356682891108335890355033418175190366508583091711106726182422514418464844395142154767517739014256785948635307487438522182214575901851847738098858380097228057609738247950506089560544391477829911860949117488986531738087818273092237885849942786321180768123425392295363988002348002835007282463642253721294717922427645578246310137731015089719895412340953379786730007049063300491519325281372823186114613215786888642484516300102763089341259499067965448592998064275646822432126563720150858668772515325169563037954741910102542018773476166697767414998361692599461551701564894605844385690630803268644301593891395391598313896214890904757776028562853122519891809903792003718197850965972133350128643052242728963468544785385243038780854954752939991990616488117077144143614358466219598287125815161400599048421355389920543133597390948823988179421684800393081953523800176326937690916202759660293393208808128253929230325603864690757901640677376951074769961899122495006773247469981588383177472976729865222275507090830291644959666020841780587049790373588936719280596734505973683340778051766223139761743694764941232212586967107374448222265115258347160609671429251481098793373607773294237518378926218412648361338471969772352281603139066333597171533664767867384974164681722717545625922695746542304205781660739634378049264228634644233380424669030920342762405968297483265999177207434178034814843603387036764342686108181195539975824631120975418945511487381056688627466107430540163068166980612958095318915813250476421361431132240159447446122988027337797320249677433648419257538180461520638254354318503481238729003663018492618388912727988410713469042138402719404158569690899110608232676150293686323837875048943501331378472700866845345178324475155710129854545246460755896700034840419020099379089442912215905415420426314752389211218014373750131251460358261000809632590067314043106052451942873955018727174615512168766603292531860958648533230553830924159987165663822006366137024675571854889901606621592421826674066287675115214168921816619611273670709692566894117089346513312547934652632293746292026150446724800869083320882819708594314673502171256305535585938714941482114905476523347746674657484020036134505269179713938004891031032859018731063863282278815563806521264326180709039073939229598414938514672726003960612231888976924228994488777258839790778435682817984823840806569031238934037611279045839916782088602874726251496091281329382255076380316105386869393962366812035372316424287197545000852712640149805224689389895900342948906390748240452178254178456363576555591190801959142644622576823812605163942051689219545506111781994897181190713074499447558926043570103833796584021760657373020612018642656181736371421920527405591634118847689160321115088748450079790313975064388328699604153064706621844293632203162575182528659064062388845100278614409775059513113987749143998290087120356209366292695549540198853323677470393563546409435128967403031446507642741039315655729383408883519874974041863326640113160164867598932287228097032212924879164545613468068261572337601921910309996360497208369259634622018472166749763014761027613692624774883068853190607216631159865168705873171300560469899061020416006095115298149362504902831902986242113657488481388197398688489094095386849695949433451888668980248835115136922791538826349247544672982309256913334295868547998075380272895799667144190359130044537646981511431175749814814192821635209090153966661825393922200143618973642860472762208264810327554328384393365782975891156528404453827795352144707235398341435790594178696571468483538332134349215220162424914654742403260859063849917476663709073280564255323872195717586556814086813800784735739548263510832374973712862800695168169856491143550730523171998001796787238426358535131475130922691696350127266538146482599650646872278313501111692255433765564369375414491933684988983738107669639866841693380722440498972799517995437374686509508032254670735787038756190844655060772007942051359808756686102464689067834861832998068242672184567129241093827474030987639310284645314850790428449995112181246516260756944639120991016486149123455093371801563008186638712113044601511557809960783133031925145749223547586188907107277874351968523672004682737009335815476287247029856780052723081901112247238797146802093494384861738599538813242819232344749118401461409186047326132719552394065788784420781680959309498929256458009689688971152032827633350603716177326309973712158726248933363021551416240341292547450948293999450892405052414956451220765919358306175052701738940005038339218976320942382734816882105640754333706276182116039235519755472792462501391032535250854617103296804867639729684387928520514016874879397459928126600090824084550888065725652832405528491266311489026988799884648989856497830158200897385082021723244388715513739987066750225812392146315503539794955210614122006284800903161192355872647241381293486312357322034057506943982901443966528883664220792174353681277880817720095013540457453128893842926116269397939326232519430658055235234664386478472012498844043781636556774062638140164973471489152175276332523423610075135184345884881299001998899168024635641793685124831920155450831320647544749035335249792400082272751528870017857640683249813264686564649096550947639467507382234554185665765170711843180361917719055087112485568022288693424177573645475820035826335719395777491100706313543763692417607228760459945202484360783167957447271565886265617115751166882546860235426573235515671460282880877094199748221139946886629241488766333043407120961859489192724021980925829547088877133978082716033871273474338934231361747510985482989150055549313190404193060932877350097977495382532758957897524971071565652031137284838655946823205708058314263692481897724065058323862558427014769190829852473719363639686332904408800930476340244491039139894714480716354364757703009264006690503255538312231146836644981446125467373161262516048896079687536254078126903315700382447169717700723272860131539930289173133392646170395630007828898626014380132002486618581343554000697392955120310903730209249005380501655735473929307995173993031228761419040052743547774629471659655088014201047644565470339058288893255529977667680079985296656002402677302615414052503000092961875793435842579020721420854818936207681980223205954570246718617534710153362321172332618576494013424816114802226080197731408584015325914777963071980973556662797819189402336942860294717282963290189826763590200326834923936438248072830697813110840615687781761991745326287886537953169280772522044369111423421026360804938550541062316530285600701871242252328373588954433956510199712036752343506305222972499665982364856468592658740747276996926013133049899334617920228521244318842988363745438909295934195493593084429513453776128194630819305835746075192174581033091490878636954920936237467760293125858558314055332775504399852043979537150877805602495770097127140295637898178823271355173874648783374556180082974723193783773621832816804145525307640097839544582898320925035422812269535616824892362694657809485322312031428125298462532498603589402762638732242859869742426251984467544926256485813837911058092594425081810286258306743326893788506638154563333363690404278608771465231571409666554013530999801032911721754332167160626268924041550081132630238237884058324242397567301098736640353076052168230698933991979108765054399403570829669933433423952239523654179089480533914690534829051628193841238614361678837024103562282824455138165146047223028975830182194642815879739637975311903089453263815768661954139287253088887307219137792994090229398929349630528918663858562974019644989402216558153576141286093978192515625767106939440962601059358594731216488510629724431315651073207628380358495539314533504286917094788077971279855072338813006994691280672321899904597268687680752743403756325001171708609887250068220514238994745295039053364641443273939451794872910486843333194991352765401233762621540577276273371817136738470710562939715893293475470110372096659530202449656630844200326015751526139060170297718766279026283603650599521897235251859195024326948450857650321948787452562762868863006933265838106244346024678328621335803520791811107831996308197077009257981780365577024908659487295412940587909110491537589964531458380975235340976636570845270114752428437941989381005234856979453334486118258781446352098185099904887205332817803338693358904846366934930437410448293226911974924204027759607253159443616536449100354504132520733721106279966291946925751009378260788268909007924914869155089927975952062455581816899506409543898220987915456064419844155881603295484019256754501725809746236597184000654257798372647215078259659348942459923911864670086858553024525703464039337659611310833714511270453434969079639583596988030828905746312919406008650059347525294779050041865167588667409957539161455991609072003869169585390472655953279857004754676856097670131446911984566797339660464743445443717700023208820965756939122837986774191249603574173116835444856704873845545672624419356120398883831507341670821825111660106037266364072883383095937424371632485503748617734809525961219282643295349606387931801539326476170708745280546825226911865149176184787383556769038557053621317398621402714468817964915321584369541373762309181281732125915363560399528875708901687215765509847169804292040732713512020064754880440472097322652626160832799737758039206595702478110192684058896191459999555204591725854730011884902000131951288227609628368573306317523998287978456717107638466637457663370821568422254983734196010683486670722092999424944728170507973081646091997702734918290491421741264302937046556644797277636396151429544258957540350991795641275647782010051677568648214676732252792132844762502649200164092201085301168039589999269440592047848597983932706864382728670502825898565075963572717634150967486424299242901626207367847233340618654287339502682278323588635547270634807424804072477243506484103587923544877639185011712720850351425302426984305322202014092002574458712396599418630244672096947365404504341718091764835241532195629602412609333764385871441987245579976622041507811759394135004857888433420271862230263998234152095221852335287951213516764133822775083744834261610105922721385735915392900895347610303637820014853518379528544856772004028962272621146044972448957416590119611869814591394103114367918403687608968528405515681976337845853181161811240736810185108730174140661419039192843560951390991573738170755373510060522207651466193164805140950518140959749889030414296624870175898670574612912731317039625028737280389836711209973380475040518786975112415028910273315727389471670514040373271152403644645892810410536326239840373607868748584962122145402024933548221185276841336725136496754114989858199709447686176493641462106739842679408712569659881778813509554944327878001902041221645476432386907493057670046604068507861763411074414014575914926632233226447866394848775308158083833292390429553634147602302084146160490059086548259238270567547298730938176186076985362146583018987777419734986883024814435367749268902376729011228944301020458715036450568874830888336664264888837345139661668888492711071893835689313521668355643127873604337846218301271790385160228515374191875693529822411474485122157825853289328908765206404061816513864957597370042850906345517711039282947651592655610184119542255803007715801150188434411864047171964624625236545123259498836199533037795643846029987554570282820129802014150647726434982751202511018333148209935934524902000439564730210541070447457756697323717827016106107990246782693456100891491085281466894301036913568868057507685005727136250801489254085032664784172371937769084820150596062544476542972260590441040404532222798250825173014926493358056766206898160224666732745799230273725116578427704363177601384450449045471307214227142774632390264485499150460880241701318930722190538109714629146364558995488701076501926374942884732717259994578141309994554522283425598908052650712762135817934925302002042451635728048639594260194297614414402210089652928896074816829259106514545925837158451663839792750669705839746275475928374650334827387625058041923891556219591755223247983590593527479813816925234995349472464227035555298125807268238471051350748663520953813933139220241183923351013758927932322130044735962192351012590000922884854331064530438614521237624605559836469973935509838766008562254227019432864758434208539338706023158700606894476677408912341906439503933993922458499637454796839980180136596714179652655887570681718541589011900258568383244180495340288237650070313408865806520302289020860033979123565664829267066804820911498596450868647287547694233378050925359576886657421808745224225855923302047865972838163900068493880262592286871613010837189589753518004228203502800033761072349503273223607332832352753918419590760751185989984242367249793587996647126565202953099246992782779087875571539296027100776067456195567208714068818850438787947699014031427336153308460366709004703729469077638514831678651065733043283047874477097231270023384371276648101429135969503508803597314792313196906404166256461982089318717952786973293869445818006186436337194094518915086985623316341923515787204823854750634327619119388254997944907019964390165703118926593182142733738515405854764643121826984711622770633158418395844898776421455263099198381464594479071032511637330305386845079727658143582310195228505492672929378486802502455697377584870841970818611127466632533383448282021694503734693380734798548015144789479725890914373272983069190398169788005309353284175761200916868497671091690038297017203649619617672830733553624147621067700397473010980058093324391137372235055019554790403025190884477097854314249413496089807131553565989866972304943607013790443268964671668873199266444201177488951340519967791069739146475657020439823738110615641617331173630314627535869865895782664357441050911029742402301411559799565927449589921152759009583155939785967395340760188900583479936769995667313534036933622154294478558770814659835478482358180081476057559275868159901740793587488536425299691977761763897469217478017799867611482943230516938159640781378986933801238394535122783171961464610987722520421970036914849912248208570796413105780730928010277823645313906578345907557757506176102715735487941879071858220351109599035558137908907719355945231167927402604723694455475478893879620265659226097968341130134029866794791008617462115989110737050278639583030388744364495869344668834422073556190068707613727519578598964158937636094048687630077812960672868083854127619804501644698337450037871661461054142145623096826100723050513256847985862679205517009909221751912240212713830718306321687263871782284166861523179832065892190148068339959440263481421224695294123559359793813042508478740074348845875052670246483547653246212391640004876074390806196438320512730901612803172023323965907306980929081174549686681619753681757352251098056400895843041894205318523724033242764915541076807867421350204592056902607169892175982702031625023652426183457861495588364244423123624293150723871221112722027006237068221000545510747927615651783974432966646087254140420261673564086546590663315921671803940885151396027814411417099822096598778913814115482823749453082762270033823618080866794201521135245141988400659410413398849227963101232934040800029946182280153788786398193909449082493813155203129015346842430895837440271657378557308494873715834041398275124637450191616741437485333380091492653934511839240750282724533605594106523148657552987064563459839291922217434750674123023300257390693569374401086242484053804264389868847591986329705509701115238876940208113192108937849792796156892930110511942702903104978773307558821138381419513370675625759235919231341041619458494800752957204418319207597253974774535258903908435208403048606142778132309479813895858689593954851681501776461841556259474403015197510759888650406876341226609266987449113569891815761160076632640196021818685459232299534627002768206983408653364876957162828073880008925275757136980658309002232248800187466640345454793701699121035412209951208802105649253279461432719451192678059794018933293217187964237128421523923592889999550135136966468741296458180152010372558575634108984251691372277311587868224079258241402844319938528648757770976694226848073280005285412759620039442802785919709374557397936866170832500586745006226380966538858759966542886421794721987811611131253227644466730674313201629028928205115445864508171908726128229419628235078195481564034316064119525904640842594517063570630638512839987903951631694430799994776995515168137034717225831842105097114299129973998996652200988860973660827831051366612781436580424884720915537980026633755327834163473649736813470225892769520057673692350141449617550951506799637573856441716842881752123833596703290744828693825816698856976876932963717725496908937844462308885027963911778773980126564517995868925163186310346181041287944879254696530164056989390697234982982164846077665917250109717772861033879471459945456182248574072245995560050968647370896642670399582797307101133298579304004361102877839035339168017128204513718798839627822992824750522847551861415764930655347723496201859636079374295565649482732083352411837562118732936305716752369344587815198476422341030505523598071380278685494106382898423019346149070226143592265570674273999263201173187023549693190013254989725493780032528156397287635460495701788843189835588411238618199706169994627941721852347189753707885114700773414070425034945693589313407315640400339715933740261816728963233471825321022246218891648800174980765702011479423620506633195530814626859329805377933200600632676001769019339401689202008879370370647990486578323475673744824189270015576080478790849277132363808325085617188749000278913169271204929488498531783767212543698895913660526307638792337829063940930047944405176002767005428960631019213919876309312035156351452163107866918293296485113971462160840361088997094708877005679895905787108212275064019519978439234409622118296177571634149122185959114618049786402119112655520694327945752171890837332617889466524231518839959963878583763119081114004368314343712768865240305957797761650644038387498914787179589916843829238382606000573582750890681451897862105588769686042135072050363695553515332253972211318099050389631130122286229232291524696169909707121567763558756427096700239717007178679626813536870660085167954492256031269989676933103626312803690089947922795821594234755618467660716632888257159081314349481367930604397122642683230018531150598736448466828481245373143558944716255817070296142601309273423052420463392660834987117980834055579555977226787317277681901311915771412462725149960569924493935927791958938581895662752432925673513218142953038806246373691242662041540006551123911778395568477314478983173065010921909919643057358312220904108681325869077852990045657357577644645250831642744807153832297954801209375656792578632134570265357691932421258492143857667879564418979306375969354030229664154884991512237029929744441664336395357041882125123259983694032968383486014091152562161299890152600413572738332127924334477779649277976429439672161129449844218042654187006151508322486117197892105773693870778844942722948805859934752247146734461928304117238523773668059465495898385064445206897740102813488951317844004507140930721980750275980978222934154509226660653975674848856398111898372166348040625146172834353853612293279633936963294249015499208738892265866918368216241036276891580112814386198968509334144795322512674204758835266029805008241702795877281539235887281217374598631616032587325665380652563605244777962692808993827200225396009769568430407570191076333207123753968328847989540624464205360344234991906147910994642118079657365374918138279362672045870488182498117902824498175990190177791349581751871745525688485264430068384160477506125479280354017621364701240861674011353015614772415151279494215547263562691833373061671678937787753214644796109314104036950231434745548263554894296941871485581711626363296525977615882280945558539325492406184998854899695951544121038189598297587909212261207229488776897592710661703529264253510043721867425043611405380262583531270411132486227116207470530559695521795876961188428174635084579386332374691041949201108699469624991439582220824985228466246417492744827516358908192563690941636808678041132438468079603712870620301696293496109207673524921462729774270742693588394332577552232608091914691386586363317668004778318631009223921968025197902885490158680584857801822155691357709335611531761609251926641639672033486366720298526996450603118283432390597594966569283589251701842516917941358030014637883879402828675012393974115289147025941143818508715461201350618269577028100160024395589055186473657176555587428312639548325018652488726208978747290659232751587403217567594132772277242969867556532827597967542099456795236735217307768805900113285596336453760435699359431229417325153638128409360797941689559243936100712188367245643038368410580738831921041216072304932870448792020398260551418965521351967906603895274006864264121384475522221992234309763282500328630703046535838877943579726452624359278634280387853642586605640015329002022424653377091054823913611435270649432608079622989435611154362630190763163407088313648367134737084082789258989466750582863976107188888705227848217236305997067547528664592717525975007476861176602759566290156706745231623084720375269568515212963794038527574838305661035217140630155643884698513325371142792643296538390299604703873358483343411266182256311719358281138686616980185581394423610945948301840390239375765130684881628217716028864506974267430377877914371013319587369379125795480085098925326229612319024079180361111985456450213307257307880741206965586954996717087974067037368621269905881713145889643903512063219893556989856203211761223262035805169255377777503403009575641874815150400338399680737815320662828477048025593876465327024317967774264484499436879249069061978622821610079544345746262095305193221848970425082489239739482436722361674573963241477202768110298499099849882434739438661368847126818509082664551424912852762880578227972431046991948604525842279915525927475219473690665351188419628854116357124536216844016158101669943336594384152222793173142123181595397213789701902798419228481423909577188767012194568123448338019016210446283149284567172621141862144440573293246701996833868313196935295002283330119643456785763855421936218510999437382655176927709809576313666947990584935873385960570771234509667637746770369772337625246853573394986888683681201827240836854806701263064104657155738425471124407521633317954873991429373077813939629332764842232273046214707976536482208073699751515068102188446858329801172719222153563789397331862149865374868651871576438306539370013881783122957411908981301593886823606500095511648608127574642923693637434280497072482222476115108631737966948172638275664366443517859109679764455652999843867638465634636656942528158525442086010660089097267385253649512733834449737007677514722308970043624646815963089994415229981401714736932390169326286970452455641099432972879891837087237890137403044825446503665423527183371318986272215490004830109867535804669726366500202132934005496158519279395429311864695186350813282439781536663683155462565073568280808409599341837744002811535719762157334756814527586584984899596066966542065350739219694245583467985218985840999923043995752246842408080637118355372338697562374932107182401529326991367740946263595998150365193879916346148629776738553321206720040867703870712880655167186534332493763921653765689629392370625687897368413239470686553653990149678540625233794301250576404215736819461615957230125369515095038205175991073498799152975630655471843755906317873256019855563205393888605799879642989912324169117474688989411027453695619157974898681563119152058709597473687512484547217521669847027817894960945966641756459094310442693644095625535489041038836944571237499835284898706920135761733324145556916668142209131534569985863980739861264754138897953054344603056995439356950038511564164787293513704579044050034355339022295209996269439265968984781993311578850728214934249704861229639006711124972026634646699924506225629593650107345495904947881890081335929424929898004571674652259583399053747244652358055014648683728419544673349104899339584871466498547733305585114296776422767335124096473895996981873858643877638004538189733356511554015332282753195758702425981585773652650425258361798381844458257924640289192055411013986123723292907882097527908141080909730748443491402532679402906331652599733824488419455729666570604439932971669144955955937682224030924422181257034590209582147358389890798531464115667778455992271343898663492331027120114039570808319645545260361354490764414348092428812772889666784268511607162456812450298129381719069544215160423378187011188549893263175540411276524826631472562548978423532379479786673075143525999561175899015430248692667781259928228577782634990601325066863360861546109675737136963635971696857724588027071595662545900281961226394272841905234591450020477999608769300349569118749409970931803041984052758064321186967449084307103981329536968979877187486188275998582811827707456350653348080750484463129864593715293967024814551380678467705235810104560966074770265801996129305655946222308462769582472951749764229356454476504813810764760947125065591569370080088054474571512582258904334516853097219281925655517648281329875099705590567295675039353683573679444209584103943460398428506488569209426216741076156800470919565082913411124234508690033473719176685080231005137988741581785516007993492416579306019638610040385031263840764971309188346368490112436712821509702253834478603002051814444090101304939313749791103088426875333598795378569315963536953672918434587314552868929630232125701221170474053828413362352807763022696289024342061950279898992589066156833273961298499125685965747980323894731649621377177266754515411584168300781166538750233887146971373184497080261540758053104938402757898604365801540551155137872986238376182862363934385761242160465825923285238723188239281572115752945239802708872724295246444524869730055518413757526955857659796301494125428028415018920966956376318838796177687663773113917792834146813763997615732756403282450648745445823282095032117365637776048506734553241966854390514876771676626841169775225308136408956067289641255346169948948525803297201938845170006960197038672862922477350100225980408569868149916942962584402056239108577591829229073426583744609798981681613224379774134735276197658199723078722994623708744825216086623699912723624931873014055227968519638051008353284454553273295483793911103745654794409557248751225400103207406840715484048624831255626645670521525177103663157762740646730056542922291097445987100278424622997575924468789408978764091536892313323715482756109603188526194521424546408232213231370693481903665708214205332261842065930709693460995203674495554313358878532184163199867941845243153015262428934110439607922881350921096421529500849867853347191850522113026741098090360351422781580226673108479348214479982584108970025551167342102222927756218907138197850493265189064187882366461689567228679302116221147991291838882538347679788191447445498128370514872790027111399987348625930200555355484809569711492971444687940341539436094553211075762053592135794582264824544651631623135761600201617505283269437945263345452791080968451269445048811154878615349409002739761638523288551898016478495133026798296661510749138822006197141082369890739944569578855140606191846466191179059757298045564962607161177560185293950073021424044646137047933349796208357994417997849921574467449485474079791062683176498756898272632454597315541616721266311702576450540280026273919088282594172444356947333662893813361999202111290961957507187706384790141526411080856958110248755407091943376927305876761445428684345049502760358343057254578264927156956187062816340325881390798375418020158189479365472393145721784586770209074642808186358764322751203101301115237794099827929587921108814329728925394605473493237063365304445757322359622074387940733885657658381070290779105257346519458732165547556974425687411736474041290186474138939542447739304132318015451256193183925080711260728381049361549302775053872235587864588270103459971567425822293878554616603326532566466062515591601746798373434835849607169721185980444086747906893308778935326745074960115717009899650571249660821932539488807732471646732763772051453797025091283849221972539006298665040776854688380941068126857248206018253330525633201496472687001710021851069171393595753361997837062322681778264826008855536417351467729546925682502608417076253855943918596710292022400715423645930248974718022804940526119724891339521416410458303511151917505166938587697719966056281158511468677487586983480294762611837948938901301717093649491910462698477523404650549128726326838934243816739737002731763602302849706964068479089050802443980251036783970124539313632311946692553639445145102812791250495567049946620677584158032947829220316232006237512694135335491505112555300403362840379387536555498073158480627128362089108394927808337353132272922574091187945099457397987352528311562590351108753240160723420511476884795053948378922328311056317606188088429655702893517224200488190588741475149370363446353489155078315522390793423632896895736085028427653684264153961841570366350467226764684674492391078010110998208567217295643216343905292251401361655489794607746113580073351992101571086511409522939312163172101903607375644687061393362454235429106518814324251668078447219832425660780727378298954804292021399760295923359844691296459567094596137664866366732067249577238282891119126543387004458074798731349430097419258678075099704006290194707741998831728773656124515208743535740933063816743812969176373643722414091720881339754456223441250080902170888038946688482451885202980112956353671641368708399339358671485270778460634602206743789716153555628099929337334005946564345893037163913194238228138232396985016980429669617611416432005914624915672013384402334946057756426472715775089941219511765367514568289341077160381492342291780368484052653035153587784868659851573433027884484572615058245326655918474803788902989521444498706443096273564310854744934059462189828513446895087554555611493623669779848666615913123245602997255816196669970485146794766705699208888502777955706300447060531250876610114645212837739981300822793961328331618764810297161113173789379977193455572316482085495418538184237732976777116237062704271790327325746499872690776674786309653910379511387965542732345995231114503349573758960238887516419853001340193577178592966719391942598169677331780741892360543221390307392887953152905387953558348940958590025785936614777136370592517067088077947830326866015330835956313705544101679581172762935320609648964599629574101771661345243651933117103149124580871607657628476517823337469112512415127725775596408628481972494494172212937245275369598758389580418782125627896708336354677433336614781911537835259675218916452303238772384518277662429976575162831081550908553787774423221416935479061317490596328878490443729431739183130912462467956172670387626634578800465262795040722874340807605479446561831729006513247199474576269257376711976831444115082816291917119208003866884157928469186122977235863495776154554885577516146014792840651821850429031900330538968842234119872633360287036799691956300036524365673303391175390041566881153173092850258995270269094211864065628576899654264863417330797267665242810170127612569094000014084602985447505022388146210136668265378355784480252520209448609916320971571410558735577023370958527427425394258629863322849821845902154628663000972258163431263937360576696172214623916311877781671300303813865341953770468472202976844949334873485020531598501414568567358445134200539699390898049563352820010699227796894406698889418541864412694660070428731731418946663791275025448306625150584734020104540831284314885030266021117344683199524509832902437322738363698453436486590678546201089039299620221832764532396089007190543013004344498425578654338400488718943464171481008401487140942067192155565718921510189294177869163436939160741977547343129861573253322830943088606474786607720370880018110571406581809883997384324147217993857045035915760219067276176862100269905494197510088136869387043824398967387779542844391283875847723030990619753820635372051232625371810803049026476952879711147685310021990250164139187043578661544003444242115220563892209810021260041490741523810126147492518598744699883037547322735090561162586433359835175233482099381679217645493577100492989206173422946791595361080326172818745756239782411807729391559937025576998929175262820539311198626527055360469159038728315183333854305160510880101344347905622026976246031998709032066851656038865131863609056212093692761978249104734876147756472717651070201158508538837103101467192037084648126801617423805838671184298581148023104208342991228803783082753821332676613638415270853472260454903324049619202346525791493599913699679067307267199470550749036103990957213962704326395678873870412427154048532937841891360739112356476975133841452119125288237624170548231040501638145119828429061674744364562014437211766525086474190278498268332346307978262398517673730076495712939642132088431792885294866494428869405582975280459074610071704678174391275236379730233462057597148650355410454864592245441409369076440080382194033156820459588159551801225949137603513298360244836358371554324623203725913506039846072914820951377876715406593371050141506687651754802464444227986567559857351419130571698325488539962753163125714623679151817532447410207585159172452672877085326291789399627509937002947184155471825949091889572084300627652260192386546338272598759013600174718489505208862641684791675989927911440267503371998480791361145699683041866395031647464295387972047346286004635535208329516458074176139753108694673753972160322058608887613011205260338807132062382516742091921484083225095579405767713812971270522071320287289429191936165429452249578000771426255987924408842480085918129301419939772773697359148398321128011651128271297777896080299685699511906800483886722427882384753167552004684816596170083096958834694515245179940731013826470792192444224980799198393713988630904001911918251171350143588352912814241017685049606652128828947252082666341992900289894723919619520239774388767677561459392809321889964347585199968420973614136531293402443531204954757827009256224404688662479928340177547057655248221554700835536029507439864576047524525911699959230529269038324494333677454587055764450360934097375941061465019611091029312496458266790167105995488836222250854587923071647051474322183179602782159506956868858900528395384468470730171332392225122690123625411552596527200937096871527118615823220290179527637408151444995729058966931499862380690283577182531624852936487909342232827039870268625486193185842430055286716293687784993003743078459520304173239402383393414164815808718203220872654774648384086841191514489685035357304677105196169492319908681353346141413182200062986571594989748657044923745560332103096234484675906084275670678658448516854300532211991956896506888883632447052123945566472988200649521090933183375775134220039245905053766147287209162188073262567413604410202127430280441034579867652096541876122175014703255790338307421713921453262728456672451199356225625122856573519690773622046839177728257583774297806294751630467734246073829988211453361292573604274062746360837920505479672110601820534421793421655643155818287477321726309860288700011465153585805272724706003574411443471308350265922215894817503935011029619298011411642294601170175237720699158177963341047686978020897751527329434212780463530752536681235466764411293784939628432837701040439992554441704053002065416013365553840055918241357080165311671610611124131373598835363378800801190943507061344881618550213291814949602177018652785888018343554156918099699787714886666655311563044209064190615161892741041803432728155384290078935495746739720146876952861255628383061136501277190936981481091376456540566955103339053952409280352032653869846300037621353966837935440600817640705799872559207080971213886613601426639415599210950118307967170417636394915841833815262408140782416132361681192797606106701812564472376037032409488493504653389394149538752136007295941494449384866087354267781975413509433317569567586233372606133466392281487132591672193819022522752238780775583392368506413265057462749175751024328470139477311582571985960734020482654613517710259966814991185888652055941581394569958274094300221254821536158076152379679411520050707010522944159290476385795978281854808545568791290608397118518121002431658314123998064079916990143174532634746750364208621337713910100684875116629891393120071749635332520797794551631093780798864017291453020456553005606707419528647383361605776519896241127941496705026585236346511034720472064219341435436849607461184742740796620201884482398645200617441408701838557780700970269346340582010493404448700912829967104477140688198623170658091571013690532443116076187630158401482289423691860873802498100849658964694786783499505852011894645376770510649380798857521971974795535267940688652682909052470773749435044013326685271037270303383782238440720642189650035406409553210434464368042544575029373115084865878457211161516387115031583951725240088421818422278987091383520237348647187244803458917824331510965926190893154320326161682592578473610844004704590510407725199461341146671722025668656260868576435131618450542874961421982313006446336471513865190483545360313584920752617497787670815836279845027538492805633137466118275814229537648786282317465978922487098737747831179740189005059933555953884900700289408891612578353968692371661010774129289863071371248067163529021731964388228574700426997982076732493168193971555663129977259660607336498575648594789359461737714119979102900809609311090817346864073786203604178790344601741069068413858452309252382437701660284917609642424700465471010132410727668091514834352676080301764157978171027553468488453525976903292271232614293789776709385735227295478888461270245032937311944295739443418507948698031611593494505451693779612515099733996829690582693409793288745511324279102829059602520873364800239968420657887122339124170373979741792202163131564106509453706203017911494067183838374808266244000739551354047275361315424680172087661677437381685201354892329002849176283518474736208299192123737291395894318532534721526250092351958708625692646262949619429487074588278212467389950774049640884494309623727407641135815174061746377268743394131494953710063315944236603763793529994245185157613973566982613243228116112005179263436080864300893702680095651455809766877102830127380354618545150210214573126233401929166193732823489205125641867654930844421378412834392103776003880222023352451757883394239713330222967590489619903418189730799601705627125340163950851569412534386159421493894009787357041480844868331905791455006699587855044751666103631279249663854028234694526137405244090359218498854845733845817341096232612420175443589941910864012146322144994694236877930405146408479952488144131606631433477038039086489983429602545428698203069085066409503402289287377933677673128517702752639644695952457040372926087542507777392379087639024867742263548182273268356294045760323264752057145325470855855517460166388431498890446762636208489625992813416212125945496220020703842230706993899378769222648527509581961921068724052958990178312132693806521623136054423979055606295537902197681579761556378531021660420265415452121458155521665434751772671320617074154435042121449795109422993191328232340091879261948131421579557384745378876629357854711983380141119517824079950499952716226153738582331740426213021694175277255508541475121045141013593418939483990999894522315098484331561792776055717047125574174590885499686394288032255576464913520630576630544152837834678596539791506975971412854604230953864825823512893389136152006789336181348283815886566890661932835571869740773265487712400230675497737847375426757513852859760173735478158911873343938036559981567114126945125926473855518472413918725993037755988788110730841135617949221636891091851505268681048263403618666944521141754586943107639432941473778413226582824153748222402582252854702038298421045528065992270838187650249557217758893039127737406750712964356642817776765767359829397726686514675324497282306120054688561219274863915493022426982513076773257398237031019962889621854749496990464832192916977139913073682152359237806049547438729500739781061327471795540106365373465919875795185356329252707950854404559929388190210229563528414618957753397744318552151847169657068821125398954819189709980019098649831227702275574452694700827832635247845371696337204425328521614857072603348583219383147889517725372227818216623573894792060547002449232857960854865889317085526481465761426943418254400110251004943480388690732446632988765795698452603452925265135681472321564148501013925725349344883264388054467826243821888824096930138642954641195487800593227422924782425533239267095494885928829912770276307628573977495138770878770344612037691154249008589901626023348048145986742081585894465275424421782736839933433244116829624522679491989187836863571977417592488758936781297957178580111173407756584947605273832068976674085182029914030589166479125531674377480180849703418922414684172823613465837190177313520849744191189945079086770464904014660920761884657664916258732234406094594227845926719839937335199198056804944575522450894257417462173042549037618739030177248716779504167759189565615734217927175372396165069439913466172338578837628528457122135016953461049416142887872410359367224221467934915274499368513145263293224601763334561706052951161739824529515213923103325147075589035823767798521492518934545107546321301397775671178571109721255005691025429492860752367802510473034891217505942645131497823837188918547791462839675168113976597843599602579013135305554544989847945382966470371050375164995859360694840332408014072989847466317905025646099122441316043796533828071340417791505487304056333149807730642963495045335305873731500187526861340700615334773295121272057511804538728959840066803342852867286154480884641726035135195693470622082903845526540960526623533745704810875461182824604765364492122498914065213658620413460463223343184962309645824925237500241175899732276779007054888636315009205009987502108365930048793394689161233075595334918032235064043776174720988083005313442376435349734803257933346302065918719396201583398762172464496141042490679188872692157176240944460906279769644632036285554586454873244235429523485978713827356349534542197126956273493336104157090453902406838838838725853413541351689280591282735638365451201927711030378014049375862318561630461118385707523112010492197284247029481192539124837171061664616654518212999426968247112566991652265506118065998022277314201867656579373433694523432417717094539938073349828237634741231633875294285623382454491713005800108270587121739340765769820185056311419669677339380707274070749621744467815739293013487723219386929424791093742461064305991616240289295186599379940155631221978170230668737764962985952728174149099147660170503992925629389797135932586869871306088654776152270144209476421582633986955739086553147560179262984933978623029093675337809078290702865593351793912318415329490892518078566305944059960962631577663013251140708598069260511591355996694032412428673935293072794210154811054697233278598831957301369724274125481871460889127935465054520420454160484715509858629570270078043066640621344171988651073643895383539863215066115308887119432787243526877653717954590244089894959830686827699959272699186818486648783579655649560156340237131570502605696947676686637641702717610427027232294056135698050732108772081573614412853110183178881550108949586947060960193873028479923944228837626687913120267573772725032532566730687059089130243206157935338362292401981554787782706317819316372224270478110247129365089858152803027781842655599093364051490319482405174752097948067052706222371595006370331188085649916937981744540451330215366198799923165367437930599020306766446879035540239003307409438190448921731918144659281043036648341544831219113412954414991821094616935748397138683611464006164160671720782715661754232858356443180303994507557674931504484711776214804614845472037631648690370314943381148765870352477312405193501429012896902626541211026909279140346470684156841721042016292468892795231798800875462949338834596849633633656627705617643956602201224618818745106324916589124307539660957146287663035862825029941586601016195310972394185831855991587639744351098975853965775499528353574405648803040231405006904874938770029274593114848832227188309249283332798152157106004295586346395441041494571813605170873000657495769442055636810355392066446988080318844526422014768303733684575201463743850922002846331310232505706892211181334097626698814681003007032205718756837687511622118097400539990381221092714677468602292364836120709475099150860424554199393750562909165099359145517168476133595580682954567569157254117330988473808492379083229500070695876877442523192994678016253772085477186376602308515889941983156072583316483307167141548688287871784533252009019499772151158508238202623310210005988979958384578104321036880651240582571941755256075867529875228746100316313805747713705538900480801000785658120159835050658542162860546414465732746266777578912202344911318237945169490189509663989156262118541624730487221846590848758832697714493445253226491424256606119618380617124797759975154959337966008421978127954384250253148567935829294266561563397665152916439394099212390442541568948130505303908758612108053137772823224304542878486070062364271029691997762709964589645946251359193369551816060416127535453689222944423265699754369145753488187104188476366527486975863654268959459558446316443297843881120520466217193247583116272959393703032066741201352855767818700483014301959984144762932186538612144615482043234979719289623725113209541642435721474342177617211972147329326089397186749489148811887891777954275061929896549206575457508955995495177746325179923563844895850275030894185421928285234818417150368502538111316564878330310611403682037002778475493385640814492011018068713585740960050955000844632131656730976499047172542615535808149376510841265208889241499374135021302171195931671673291050059045364442985272544279515817554564167088213301028203919397945516733967252808417525681476423372771813853270359890570340274458603429057550354394995049795939846574041125910960817046721366854610720690154283262563533024838437962809994451969667459928244977647937504009626376344657678671147030582414138732340214211122919000913656005766275978475663727497646612797866398683901182883276292194722389911944943177214215940065557800924196896058953033566040511218086233069909796387775921618911998210503682569819453532141244735899544806885994593650311087886371398865783936174690203041215773815955090034512221083871348145285679652553466918543986960275460056662544422226188997767862370070216379100083460851165202476038705649805727401436287937994848697291887471725544981865119869314288112054312755602427284146202132028734671260687698291765172771232035504498655292109531796572847344421324024596922807679567457035089621628498578597965339821063919180379546945328663174663218592625144704570922116332506001918718217524816773072323743412036433932735982582389715418562479048961301927844667038520341532357922491445783716575255008323014224978503019641029321531417033123551953902956197654003421360016052532182262579328684253010193729177095131500224046913195532814605305094722021212166770240795753196131577123695050575033187377244004946920748671371854258039450177273315169019054954837071716616023163511041987124490058806321721931337728449556890302177876294023134054218544523604107051831005880486849515841607538649108326443621217602771085606158107797056812188003331790145735156644038463862425797298081393424775078090417543779814953164651949176310239334477370987818509710812490306224830982139132480945147157806693055159197127616725995573935544230568810914402314717518699927360785932658817787795737310912487261474615335864337251065866544437173284677891961590180856566391736429066497325299388447656653796026504027319809067300928605547145561692203895246619347895482109424054819915510203585542925579689108909756362293044952285071137922553983361023253228383888054229619041909569602478046093179414316175159237879323941305008226676686123733224677332915757494963770800125441061642936722123352639912062732502414308647111616329738620873021407936019439160595742360876763963498035659684266167067199866094478436442891182810254246131579398173646004154306601204125235813658454303680096424151790163342377043912415560183657161518297813221936897717731964244696086859320527896115830584700812909759968379120505545764978354745189591185876992826153066429183293592583229209996088673538740324356067195101536652573108614998804898494053702040515708038310573378374511091987800383514351690451789848606796155576160694061500427223446090186603647126522968375919532736717849269426989600423567784984105710144809659962986045132092884414630167987574989709823631048990280777333147788501400584532084963531225270285294670422479810299025477487409422651680507388059514910665650550730777518572962188897085039256578422568932706955148570088374916834998270720733386711690052373799637569792000647284673886372805056661871973461169011707995284506406998758665716884205452356570250592470914681378760976176654561159437789265668469898584240694066227473312895095921032235691031051957527720612619779654111669206532874568809529615752649402219884815977754052057462040502232277591452128437710888175084748880488369109947115015686423669421072647812500917166503385357427334846157894312995982038066722355917661470362624745707058990470583715496360315710101519155942390543363120686701735749412959167689444623802397136746270814378359939690790434196595324805624672263310151841797852938627492380737706805382158391099163193931731380975612540261738365714796843872096066463135254762710991118267041927102173416381969317068555237706952502884520639214538500117611943038316322232470274576007087125667086104477843275943358640761900113661761976038717887287054361661978579463045619531886654570249062506841765025438766861885434167514167325076039895777950698239724226366215271477998953467739052527818282068226812778813573819715983927960288338622808833922254891752045775976961017421342324139730946929219007420444694676974668107172367067694579409729461597025360183809969402116945179696722809868447534699181861095955348338588684447352287955856810669033335383305386396240760665906539643370252499544498332876334788942364265046126792690976814373696024344023454442692863688447245945464874656084011363235065329922358787112097924645260337439278212142822818274209787218117831374728345192577139529400905102994177845339653319213850319460151642523557120284465227920957977082700972041191630571449732841547215932999455521296225883087730513392171251074733146914848106032593765562611858474768506837250998762088976551098004190565824696611014513488976412334444482078114655160365746288796537931701198839278232804687930865957462819632722395099264081584608247751728978395737206201349815177456036098597928651997838448017946328477640734979017913120505184470576019409772084285163406198608420778427591363944467560640144243788612223408505627510940412616027950487662554820020323723517599974173982792448873688256406645588530916245679246033166512219290054938334176691504911446455523615291712297151116156962937602294004088334119069305596878288912405916600213783535262968507988905849167083249606666996785263135567849706052415393734049240143316766325037777924272037303251028169485624533586215260014723998981854314597781405470936328514791979971748305209356024231801467389052961526044266397002637149894645632413039003525436184069296028372349071291091635915363147893265828740826198754203043151293244474523447452987204761052579650985654143986517190213971120899784395546455412418649115857623065702529661549958552700837706822858770150921233097461238217091466086901536700414398331378945918003201619733237193718900553242970636243118334131389711042605571780799683029576251520051053287751486340739217242305733139701999655842836275241219338210110400116187665461015184859854639067982211963187955554146437894599480470700424804953226808430797876515386585151683045584460927306302720703956911027422232300333680462075429448962889116171899739796872603147478889190188285490281118689841014366128751828088200745959657175444305924737398712054191612363701588768915460524447597814491139044517750905696507941898436133636431611774085587524671570010528969319113749477022035412126259378582094018607940603404168385569853253401367844266812149477772328490761196664201008585705505870341614021028554207786053722878334649051368020697604892289567631764627866501340065414022564069871793593049781269733241469206291685965977111536872274233645894164243673083110054567237316315480193537936582179763522751098705270103512978009235196499610732621602336290361156601372044713412688375874699703664578723488814312043488489146017425221120562138315888341801831111274351607622263532185463920715252111810489822903656512488911215085188512581745037291171319883235258958367756698366710409571677479077044723407900623168220441507553865331704156501014006698608201869177339308146836249960574609344644129217674896087032890390641595126411297618953653715246649586772892115906495750307379639414064386768541524908987527829457045450425755631830477645294644445179229579073026245671501476644062631863803524339800469028788225381531494140751606584822234421758455432103112393591235992530121849485187289039475797974047589376592588645593397471929808761689042604004207657269131993077630052375012066620325921039018496734560906235985636091270831647572453552449314835447451303944462963656304970392904575863182996755000827452156918541884007533220828772789052710902801075530567836490803765754533809016394593373063668096813289655445032099729657609727950061645855495577596869527552092873985661126315263286648015417829214584369872317301940828875014536761934351301292655263086793308511660023728543913936511161067130063379443353692794427002781283753746828966953662785134893345403643745977790302372204214847770169396689404248008540092390708662197178735747089594044601577348731220578047344648504413815481368727170144823325435319730675028230019676860974819103634363299365672077792259149506264170733485323859412609803233635092194867265000442307424036220676871269529341695650414594946237685382479869339350990948373538986632091855076363527168872167664157759942839663007780719593310811972903950789481212354239927718847502760216266832430229739234355711814929147929874949759302161947750858219753138489050257544703286147689666835185311647876329488303337005208260534206335935843459671576860617150586032207222814936261168434616954505560602229095669162645255943140036403383896339459044145071226243949776043414793842356598883671692912276354090988150761203008387961882294877354721443343571902815616529944696170891019151129332724983752936521699749680446740506238153873818564012913588602166498180811587420682666937586413730609988959889370612578306474537548572382868473273221233150717003097542552033600731836557548728493005164190234910803539538058634583320062354141512038122016753865870421179844217418354161492800473658157375631648218006754544785807182596792243021810645723701485708523590120072307976735572087874971335524279199797883032907340121728525787521486300579099774497052713786571662765245880842864895506199750536511804820070141811335381253636157408775074045229017883547104170608570883884867106802575186095319925777232018338938893259395987350862465745271868081651975170745431503602829622481247730976872930146638867591641649764916811967739096985196230020492463582817509224511040681958392555315439767271153022767742216021990762050618860830397639687547866464990642574033391599191111686952241162786367242065468946639426313889637439441734524112752513433031954193972376525363383895052147615770718163548857782536000252621045459421856244824213793364847454450056000628682572720229353592307247880374028411013078744997155227655762981269582802997842035314449686810151715102398564920572949691515540698365090624442837457494827693654027451804617070707311274696770300918154004474532913365251222991169022035495683125364916396190819692893505897107481051209591323258296279393114128978273522909129448341729368195120770390770476622977621360513330909608108497646772272534388447670589959698108577575724085036140879183905418381637773219490853926180950767771478421396906964579016111773319484041351465694251282696936659745944303868302013441597895333833724463523260867582800802522602634307519036131515128566108751690882414403096020405192571174766434406359323955550990539697588124371363875120603328416168518123244881236215175744180324420815510831347448456950761991610842542329693272913116705915141932317364922775204806711498378913313578055339541949847840704655108713562310648018075851907210090929576264498054843653771713746784199895315182954265675159148188213303040171769371035512409237002457866015281228661619798307662814627502341797980922416451651234945722656507657177298081710561196203931887409425536353992943397658002415331188728587204644516365956153288187266517327505003500844918219734274077775444711652589757358873307357568599121573924788772717039200922862592768360912588437729835368410434065160538669317039470835107306348925360819908825148201649855459835139802279775048960690183335758949403564890356586053711661341971670832026041502248977856354167086980135889281798746392508801473425046893928067380120544976464350752727912947002094631635479673697858163263046066418410892101501923393453578881420829538745330943784719796202617996457789904995997970652944741990909838880339089645070465253723207607251841488911732076212622680860389574046773938367884732734143245921470478241676894645472035813095924667375101640531846075921124137372149760380688176762057235194465187814955314327351911363908892415714562229809643858686278865381984019331984210075753707023040301379861612248253416037662676598599823602308333495337711207455382247369079933663563733410248341040277443020281256205919210940207105268509320262080485923256413868396801101974751963015931393822482626559821033263448506346790336776284445066778083385502332841426359148686918621819945253593308554885129887488416380587055487324685048964432270126552455669157048789060868173117770940070738303557637169884779939722890473172674456401279096774513647758081967153988081653578454921243482579552841773605768385928132195676955820116372734770079910060459359570631190546773834858462527080603235119551515060891881464977037504087675156644746716329735437471974064500629213475352682283372048518060368691297615554179780524239047418419191985481672565626515888463881078123369202210743901672559110615705016251161137700815338562728391789254295839129323829122577515899213910239209590949658088391284603058292606766422246378168065444458429382536687188390550451024009259664693198833402087632587823185262139083973162438723477602840507044214277932706899716107594207963124170072689095936533790028601308708313032162148195465706192372929006162604786271289243010980824600617040087576578906947144291005718972604533855912397818254100890451956292181740130058454964983804586849722844958456974082591919874749109576735766471801761718629736907057553280118565971325882577495783333138242878877846549871045614788355492181322459215311220639564573054585182831371202833425132009454836642464372462549358506940687012872630692227044295401668392969616946929521246257598576680148079612230547638930408598383755144269382579640168122918158175600050671110514637019911861736044751194563142202949353922183752480866404487558200035780608280202078263804844823157578295918124302400293954780536982386664447395797629025790685849592482460217786343114753353044244022333452899938399055746196432721067194338463857924090050895511627598951325816503861986704171159277293394343629130279329318641077663844934858164471453480325249575066559267475281112244760603515782158279377755663772041456236682401310079587678211184072703440671529529765305457692351823956029237637661346337796415236833464896943668246790635935708606697582378277204515240588736368078981345247005169578534418272239326318839704704817107783111486687135848222362777885715616689485460367002813271180933245004471656263083860492571660549690071273417216069242411874883102595297772506627237490605558460599776555863451611979028773164001220464196240907202682837951636489803110858816403653029482581904735311022685082528465686360185510791675658254815246980572877004482491826613461810614701099115509903111715513654365363522613873900738638073225066975738199285799244586103615347609530270286719981430655516553430485046462155450648919592745089758717950085008246561678468139194289879954230090174736204012636072373694541368898115129208475318556054007794307571863219615120160776873402844976387267341559127752681734296909984698220259443889884744775195723623269539055813004782377100994355250747967694066015386058337733676557869307156968729570998561259401647662685221329749587439712334992140457537092762663885409081938958179310430703571112303517749863514205585196732357539906092056382823420698352525411445071009838154978315498732374152674921659040685123918985084368040496908634684628205613382560381673020622677494524235585987386103439226918838824024483298121642064215244189982247859433554605593204016785930662981345905388809751888307340225108811350819428693228104531506724011532228853709479480172106145976906410458485760063343128898429713845355595063399246956594625477357638913499107138747549788661063418444242714514166526817399681180525921449510020411659228773534045914025728416084111333782810191079248820789169718087205833748192886470637061225426547861964720666313871903691759211178521680853125889495678063416150514606523302644276703403295191747331715244247505855666425679992059090684817632534677640370563202837471956324855218156773599183609545649850940511442124680602838969376784680376211929995493240806383106213539901192686404030771639371961323558151408225434513610160192302780606919573020496400881251264460609152564202723485410994389151085895456146695106768017070974800059844493200226846978570830797356207746043474689424828173655461177231763106443531119393450384654562197342600544307192546095737385685775783469811647404112395315578558062559041950917701794115906793234569798889645557778138557718200560248546613931310484889041308834282008171397595690116877530786730768596823500265433568014748335039787623220702132801535761178489495802190589283057026596944097230064481206085799184912152828239963223122447619488539035265435469903596097781842615105640509410913708753186847718563340545649464323296014058722631220444048022732706861655730885186378398191878796808344187377378724316078609200339421261476125999985419972246140294351800550376914535558879545756890171075487437027111757689947566707717145668166982828065507316197397209843006501257053516421684631512100936900246231880107066490980209915604183990777272317183067233739294745338312918256042859933062600903505011747311582835193680589164466060345682824856456602228121724701647542918233123325037884022733792109268282148082676714136159396023854785135424392020007891573189559602714136238686383760998310788089042458455366489889051940580977095525807093177172690555280874224799683712108605646475663361391779876314887084923145307531703465710000147979358029999326303310980001503771097291095469272497016476101909805027224146861466614736606118346083043787554159274170633476510405894395085067002136506785791331336614815904320880270289019890074101773218812414684793433289976867465998220394266522963217167712670155420822119026903333138226763610110752747526688746544928729934301735774315570042681298738865257597532751018321606803619062522995216623946309491828867062085627101852699518877427514228206559107052830013523864572542167583906784667978659087847484495640533649256807454005645804992309797637529908915823981201171744282710814843720210272920204327285146263840049483815102122040776657854103661886970950056173691263782580723236340600541232194666813932952933405142010298292369603961478950009941778635476878289436090380278713094523143419042560723172092605458556876511250995570482990896352031702960609533673855687065535320058597073351148273661872556339105436259317609003381732397311543839380701155573509996055088531494538367489715270588907386676119777277785039536044033416615655802056127299270034786465080210034241607057839246299436615154602791809366002628057007652246722544003579851256180033518566026701727816260594367163208391458785405724493494550900435492737827129254710944557959465290765246555114527884268320844983116902716314478474926208575538629938734912615010107525539998678491198242362485343993976248868500672942393512693356888569490082400596424458815968025728948831837668087808339079447167027820643312804209477754443304940967869502636161722375096733556391697244348128273292254767555919549344403484618315065730169020421438780444270383512753346007215940530092993455136471184544255680208747122598206926710496535609273003864237125737288404122602299378935780868433355391302058773372442831292767419437806178164974756213642921540260423679428092398367872299863677150959790950140643335687181691669409521246883723394301595764199428503331627937751133667650006884004522233545346069066902903165233125954965325788273064810395907767519687616094098801039802294390164973265955954541511420155351000316419296311253706158713991803379683538762866001063344397502486919620846347900262593736689086402486605086620751506641518681367252993604786056026794970389967952970698838305548976572857221336724645072632278829103069069361975053544803475828229768671613822698158905343303892921644836112260467182176196665259536909717034530703781570204469081336951251688342481928199234875331198485696955277542938024549379999788810244239951533514022850275925949390107276271307563153997467121605006477886087969620799540700821544852889180342256267892925520963363158245556146752365069628345257369496674495535185081454740434035385276239846093938046362800877503579369850983553752757621387950719156603015814974895743554899587586429877069539264936396086524169490489072057727443137618007231160580039889880870079767303630986876554509407119865980110238264203059477319990624670654165195995902061805425109626440604897865195905080173797489649373179543701622828142827415701424897423098854216635354507252357721545709817123465810245138228085874641190042123555683907482845258645804435571502363944289709575689915060647490301401277572196910041745097656651145934355695466897894545974979012080385861513873436969768457980853205296275471938153256551263430565123554608668383508943540669037671468040351333246427062839538323154495563060781597346192748346661645593169241424659345420086003246350494015799357644853984600548113848859123520865196030410318769330356679364178673560146726943995867265019224558926826800138168257920691866285084324148428284606939691974110451015798523574789239156208260500441964345605445233288411435844719445948396057130646090876358072991769777608244332518650072369103828513000076952422818241456403603491423326608397672089849942730534446160062178322814446114912092299276338280834227375436544338105207817805866525927399395005079835521546859656068180935382059066444784187342140435690816549980736772044898717052053566420080477106589920574284326696790608517047330160625787049331753725629760934954180961926765078134464601283797713266916316419067065934300242255239133141196266194885755301907825943006278010028125366047238785646328891655817471664855252587188665609011052920237800018308905494663067560212566459083978127682466363251249323592800939220514438372239862041521352571585615569913483020598138438992805580613027413950737068422210154031947938572072730030504906076719688969702225945091865767635702606054318694637657517703315942081253030083182232531904890260525598334393446250629573903787148298952374827664846172188112299538884090692737152711648369547123303693310483634896982631646035937268276399379572616689997872300994898287644648939924747666033257882724929830898685506088429343939667074908174324115820283853697218413636092945839443527523515858584914289363911927392664897049138972741217753042623682589863380270753452188131852886776380195778059186619509488878762108928793900941748318652851365145067277676728483801887425752588479713416144956511806119368740240421723808550355156632005089775791134307366824545091361805254123193381490099047118097410124159781697626378514405918314440543364030252516442763416501423462363161724501634282969074230108353834410485731879515666976946301384656872952530961766465842364135731078201362207263143290546347072870937861530505667506420902392794239187962681492069010943541913950578163857238224332274974563632665913027102834554081855853553819831265328129522880787275206250662336701132304775513284906903146767058505587639504226039959990984735322575025516612918393692882632025169807313068435779443223584277054940585778231188736079559256228888484901820565253498565899333704582113702747223225120846572592873115429025358755449380832916615665743836492666112402846434898009131463864643930211187436701274204746396010949794120802262014242822448152453235748726368015831706156516980244469785399183605297835614544637509709521978532781585068719092306656975867932738769971606913640132525455880250887349922316928809674574775229914663470383482947654169906838842256205071682142160757625076444630389397257658705073325982277919130420615831332628529077390367002037542995158438776428996507781942857891566471042336952191831655389568023015577162038785232132417502258285646503460332826677318890280884115669719300928392561203764332962366676910642625290064958612893233500292533119423583446713651837530663489619428655348506152136690164745850392973261478765152802692515778971751042527412118210546097813630892399433933096846201535222534996713909837131743727370719896278481327681538817654666329297481704020308775217063864525390689290010979325819508525624987751907981388325274298405580675306672586790194423636301450521029944763354206429327166169571456248956261184571188137194206954981384959964108828877925653789502803542529992934889990405288745970255408284836519515446397290951933872374573731525605012059172994659801916203594830267032129536129824395251551202829896559537736325959562305572373220462995089334116679676678600437221533867416376763548715193523406379284143126025885307455429287875301533829060933666528025675156493848115020953518312363850565992207812856759070056836737421028965744639197828951403031980378020452350516411494866552244913520450114773075021775692075865097141946426066709187039520045978699877843950200784851874815620019694078592769544823596842782843744903080668978090412732398730282944250642321626983512492792124140356812253214235871365197185057062137620578350791903345588146283783120567958663291661382810337526000960373438366246728184375101936879512340048323626303088420946233207685723707890085733572333879163132301854110205008336147170507620278866255311562959629162749193242491004719840146779978279377112484093474018202373326601739355487453933496963096723899304210654617899386051927663249292488552162058701684306144845512383184496256586455773435382716742907556118719088497385488995369797917410601700579884216063611234683407797829789779894199032059733160099124024655686370900123291677422213362999340626143507492976484057657498505384946106972580062577687077778822886047641211251635446205612834221848363420476443130044985151468962087237345952698148320937417526888040291758161838603795979184104552990963055050356089882008586510784166338986314063208428031722164070688372227725883917552567812428888412921500995251666522719159760411964252299003957797309563115897228416821013110406245396760628215513123143449678716192363917101858221324953206534057036779459799427274515538690937219522162185302549071470300871455077759430868075201554016318361820554154491138275442912092056726063566932155556853264266239566404995004456407427131036132787721749981375180342238985090288607568721581826610772259381189019034406717396722085178572742489290492807652734424248958505229060976772785733516751031337609426652522601090758431067571289375090040009524774016809215721840813819777454068773639211290569333429062390952356356750387410167126644743644655449086291827908156895630818163780387060197399482327685639463100135444604959417495079901549026797956048337194239352379459245004585457463756530025568775953716862383490260679161465152189079474315164945140351458326353352818942172988734373849830535963513312624385951296300318678417621001965542234689387106275605073176411186950487541186456161057495374088737686400977635336926472157105618458004255199212611065334409110417167190866637720928090283613017557838554480767145900195448876886628426190386565317304711385562953805613560822111583622164678090322728778719597297884923763223236572389752440068605583979954826200897601422608343126216095091582231902416702715431017793790462800537618617610223762024257445484896799287985910811298853911723265964127858239053358237910976898111000908618545037519429538262863355770840058621556869290313856385698140045756371757855857853426668172167526068579031854327509475479635853338776304178766590951929945264780314886416172394354838020449904970958667004899878314542504137738721576032796138004012081673026866289658129259784934075823804628317904877056938217475367699339070737389395536374794924601617606350584372980000439480089612301792557028000158493769629642618872256678400753959432567141303453869112161819807899931628899938722069350107737664012289206939677472621356932225139620122677478712419850524131806799951597983825979890816435449279779414653761299351040345299973073459440630999351141898777117616040657267732352462235403305526724181284010099096794404828774813406845601333328488771585097155102496454995416849853789273165927670846353472273358726871382766431929361139581862221230538247848274519743646105959882851322555965364465866442237912896229754139635532729135879320919992752127110987519762735023727901450074614529764551918036141083748770574276235008288706062644747606246727172181122943550685336851871709149336339528801520557783167845994824781296652950560309431210987176594461702999316238101913625240554006324566842515462184519081139095999811449947903147135538919445535833480831436088419897541084781142431340560019396171258901729838718263990535647088159316425239232731569097110805456122041537583454466682030143030642424068955568528912284518193926117992228643999715286363808820724808168452335495745688224184451639733519139308127991275275114973366133496724879095384991660484500738998123778956124222568710406582094327887060666863337360144787259286663876586810888653782553349204023507825418905598383429909764683752489627293829710406178185995971818968280100434046615354686876304888791702216503126538862942493194173921698173987749605126585056598385223103401876593660162263344194916895265151552233631224881812148939515803957476238574712473686502545650189858819121995364083640912399928104265065006973883975103334896773405598847330437367110422758080947491979566860320990907585786087724966286175105286185770372308057010000133872809440043230555651471679032015768623215889335937352469702411187797635023640994145288955931499445250116306779912092486602948547980216846483658348113567595218736163991906905814796370229323653602362698638245379013642612870074499052891691869678436999124559172966029492607776199587154799717897974417308865338559368454679258671114907946741055450527967369530808846105938479106968765149731491044388212005741754985991776793415071151071386570063490238515102348150624415290392323159937104682400410390285580423595881188063683714921536852250193460903564823468095049557321606183383922681078501452574913208303891355105079464463945775982402339152663393416614940878621650992975214748682747590830935363644464698496643529242492967060380058747172817345263436469924661573040386597947588843738133271686308839925015297863925782366570654761601419538322908773871741404791017618205589938383539804343119998938063320909774835705546838679406596012965314833311757034603603464268849081397164554569499633706751856978851594036656891205072448188128912311267902799711404119306697529411158235362155197462110999706863654940119119210748854976504576604933115638884539465457204404801382874371419576111238611658528000757406573098193272349147077722431369063925342622301697439359727012856690042366592437607941824833508477589395427036122204064866292886413946514504307042580366227375572518954729428213899155532808794547058925027600356403046586988270114095121728052509142416157333396369714814178224528616678890791524467320489833033153909203188314854491554543360861158367916562665338990640452539357778347860920971601016811929493897205611957840504178071296535084712198506430458958630751353662749565386850475650450600231128581973669379368680986326096823493059332647326681123884388971833527258194062574088974233821988224595610351483020973639132971215292056564477341282654466826089737541797918119670050074901268445620855832657303312874243641483685950212494683563453109562448231408300487968378507320320461998105171714411864999935308179611091054204996705260903055884962489934986554647493345168167979312827151346917970469556829655964948553278486937093478272174939672533994195899986760113967855374063757450717827763308775721283852731741947096272479356103748351400721708779738903457231737434757675860058270305397677981580727349348346533051717384708426166338442274197516001674446596439445486444964482543639507311221021644553954010487801264402198998748848950259790479218920066684634610794457662679455346219472667457591021228412278200697618552837575953554502905136291725004992702739918195455037798750609081050891813340980103659419563002139860625831611989027576188308062740400097051860304927182659761253909196127469461485034707801580677874882980708316777472203248483008046640930030402436523555789484076183146530037017784507222382376409097656694143241449388219721528159308804326040508707356206584455452315251777418018571774178884328376453366577781237190198420367610122419186474271941207700034332589436464450154310205837064718313864359308653768964386985353961461330315701728234208356886408982343952187881504580502729797024201868245920304496206979792088260901697751739082800347814028347203593422084446076943150390357002050596972163216918294602771594761838944506636167940696172686036669899976397887817664975920272938660271189453079198800125194463957286560834148636914356208985954289401881061765308251101418453329879859065196013104541399314939120119945896787468105015153354895827540315476551362974572924855509186552960713005330114465726503180318009052617734770990283347995970891440335429734931184503603336643166214304525000298100296809168342613932650333122476085192832374510500391688104647343962895474737196046459754605001712716033084643199185793942112984905531518973124964748802902511215682768174965265129967349634430867405326299588762030093487605215818396281342607451521547019322190453175530418413542180330024348627512367610709893217898622883977016194582435939453713879416273040829143393520676311237954091343664065164103486860460345532810159771314514006895014234495739653636176969641063271605971981718253222587056607143227967391440862321689933889360290478894445500707237258187806195529155577365036253660503232792113924243844544341075432570542548486400725559962570821820202121813607838924237701195705893298072243342727786424017643695870895415569776136395053817477512427963113446005526905999154008420281022085309751844634175892716384958314417725662577598869784925536837074879680349874438941163421545039663358470520493301556534153892692763848512800646177070836783275181891247320628328851859326862528249699564017256864023341606823398724428141129502865597783819760801526713082229145073734362729878155568500788034268892313517016707770184424285476186122448760219402690114819087562688955365396601330321441433474352917744820852989763779239071888658236658563949849177814848052505181057081478531905855501874301419426650196947141059295145741809807406389063136709258465486522615870757885307910303971285376920678198630600912766252807602020420042926920310845238496045492205504662516517113951740250186241752245950978633273203330113470028385805427234413632778546902514663007144860638223409139842227477741923108809288953886057080888628311258517282070740998749505242431198238164424230068663185364728570807639070992922935520600839257970798722582189235407072255740302807665337834606381534201159531119435567782550336899282228741017764731501328364456736848849123106737708977284458388944781302918203628217862180988418845051401006064903701953196370581283530775855515909543996234628026349205913771505596222318294614781184241384226898227990468325780427266309822628842239360316101313899159045599358436935754513860426021007629430992894870431051001722355748532575403107584171028525888815153155792106069755368871587485551136426141080452102620243387326456745393702247046343066767172182832361296940914620235561740409613548068180443817837411638497736061780827630640506377399372607910298892952876385820252844316722800509354427722418558180621553886082075039873573537588988430268740488772588667734435411411790646140779149002637028959587788256364065239544653820400182245065311841159355324018782766767387631834493025929912231377594000869224705160887694527677264911469696677793799556228815822540397515315003198471811183013783978192403604812468571141694620255149481901480973263138642707900263004157514006157434601220760593874435497898158064636516881750584975238061557093667509852165584216366203268663831187706479940313958845918350494012244815854124476629675829062524711778841830852378571315128175780259128044341542736889364382594060853393044400540335131080074516511821937171272886115312669022765941811864931944314036475274912521334113997873017432179401222131108468389041536295957407826753839148317930461759549403938855481794080982828471452296371811397993584917485650542653428942568685810120655756472250400355373789232077774797276976510030456183336989040412826168369749954580602608246602373332629453596544820369248502174848671040641036927830496710240838765143059959899559834419405853257615539699837933946004742797283371388401490155814561879518650008766508808127106539082694758419409903599392908931505261824032792105531332132548653293906570468291414009513157025630506552731165636811600287188364603351875557682950185092840224837440983665879196279176065412003537228219187661239901646626855113823782751817326334031849070375281406575848371718170234355198582445543501187567090933503270609021551035893180378448514555417370873901969950732627911893299100779575273643565756535863192261399891510920574704336051007480465910859507614434137380454685401675864332540857952619317661241312211681893038265900762877124957858954395310001091400440884353263385664181724731934391606575535991370332341643878875239463109187418759354448860570364180868576665369765055377674989426527325317384451636313307545682145119889474094085112617798322809947129992888468345291830660573007039710951671906950773502548690613242449430532937703374596196875014679513976543537099630425928533297303070897608211759892726844011982019620948697912931712566166438843382775394416528660853814412527301162828578254474403225007225682045039482116211822902932230857468573245847737355932647021427614239129217579235230313634410927801602366507461885307968445785539013596982273214794360832811288470566632015895341508971453953092627828847139551938065067195766541333325157444630887926470273183647817241522999874655380679504776552830954837874267268014249149368524650132187028476842129544668543646556064239378658328804212506715157929864641566761434862308261472675645310151118122764119992357167028569817720216443881689114290645522112524054940392419314786201574457782894622837204459811960192259999855100281728021986462439129850609656981994747156261569697414971132420453264291512690967925867556442782374548250937763209969407458456185321941827326158747088294531621224812890632976737396451187642465026312631805522384038879705807885541229018636409433783257575629113459674758452181541685859583670178803823180616805493675213521351053207084639988881744295920473834463749640845552948190635853817109412597388208616076862596302521917548411380766903373775176953416638545860623919215862458156302813915969270091238925587366191647123150580118904518867743845470384033053971543275354272031918818045709674839320066210403275223628406872695567499226554939459831001320374203079724579738092169027991540625831409596950539487662161203025219784086820066875300855067692061224081791581462209946497748628190330344610422428230338626248053240020357348441406183255252932570311096392805766003416487005472749148634847865803466287757916953499383072334858859889998250679220088230529780065808924184805934595139213960112078401174792453692226016839528471201468802978551277644897782115174730717074328084467790196574622392959893447355716980541777516932733556026257681385478907141423824866778624738523113732439388763304830462535014857778227871455849187766556192862391211268405335462119794594462117455369685104131918098016340326735391365247996733001867176609816637994631730647132187460639057547955076273231961310876845609360108061515520695741186992240172591836040198159455376760979031341895110666989082140078910007235560481865515055500894674065016069632377634121863273730625137144282023997201310241934066068715541388696168580772621342282409423167563993891723476935257653204379453569283199222031963707016249391275036243131342369024639314558638985556503482219559983151465862124588985774030315968269128664014526140390428337110155271661682758570194143160837930190585532204255527088835967210739271049834563209705435981837111908904044556520536393222125454011462685263064242210864385797748847090189687760873436643222906409904435801480597642127127108109491936571726661388357704160072189367141520235849329918565017149837221379893924520178825139133116017049265769915532847569772398822001661126054248360180426112214106007736286833996318060798118626444902210323299159812932704711197617344854621046029080067660525008211155707868649998330294076788406984687831415054533372388194060077339464651015623130149484914648567277610463136287573506291848496701359153623903857035816126954732236742588500096826361047507373128106878619859435327574315088948258357203116674967215283896926194677157837509455756029946173906358978888786031218597177090126266764406806123291873353285144453326333809457680459131339524305502216842234012133647011923126609141576633698902499497393169218516691226955104693908407222611379603860699758802554870596978785680004571267703958490595429727126177568966193295151202132969077085517002244485163551623663388815316672811266941512243618761332554571322924391365047617796966034583277492382127905081222213673376489680445674425601446149964139537970386154992167836055192823418300405706821813317200146948564831366935533029620556626596393428517763785820581141916374642142868400433031556917062982638631764221629835973362857504375054080542729414448889179680884255625633225730204475917576474482197850699246721783229332785186068694220119856562809415855605445822016990777135354205705427326641003567493404723289077995876435140608168080378266702737225048990359535473868702021543843013306144735130481480820803938873541451557124475570013809356974227400839420645312520607541963246015140477000847982438252024654136993011707711899640994956227376925454325207482653821559593105626230364948404222830014124363651298283724977848210547572555043461409897360935383649281442569228161710262673822011281667849461047730094554854930811679228364023625394562450756818997287784810602048183918577033117859709722403271418465450095674520390092191148181110747591880699657088872338295266181344561963907941337827367142754959361772051228877283096505418190128176774512689157599667160192730360355438726255630417008746953340359756111646437626193478368611672178279167748784624044008699964964282681438374127921917940941302714507421974310539190636736467670365738266154779223174066719784245493127744220338955370286326459190928239809020838712071531591981340798048834195266029083630479315788641542908080449694208297367292820773549965906305198808695280436853123467981824537454053255684767659066439020241022654835847226035762387577094588735857442802883750130915059462600207955900541517055228005414771319101887190599362377324883132529154722551752198028711591340590070515361134314829813645743506937427586811300974975913858266679098604092639528812396298088032028477253731090114414549328365952441580614979862567958053417891340871425153591959143840801515514841092961460561711333373741697259078696187159223952929229620469229923902740423759793316989930947704338298013554502512705152831105370308318521444149065450385059193835868908921578154477188561126879417261018002052731461495396721241188279823212088258588525091300408984212395051027806137872298907536282146216373669991919106616654063316777664939055122428587200011488683071949358168632752730794862855770768453358222244523726836047347999887385232402714883526471890823248926304691731131988361723402279194352858510553063204778331556039706943978531256151713836584039741810582918599942326924222494996044090112169830421733602326328800730678866683609918990906807357276915761235163431712207192385270014159791091257021862524792683259940554819271832099982870068553486401342044956031968888068962657422583852115033935952294394876850499328533770992026692481379472019870774131561820032577254423939572631129058745365973011999726567252329892128564892955329145095074781722135599009666793518449672923614152793439162491371695623088844764412259366729836941991420238100806491906265423999121439338914660848699275563829987046067989231526011954257321769759169402624862913519249469571928807572368378660410172076623913852362006259168465257183684280682586233733092183517344869315957006319588258834606876791274628311246256260538675594297612423943828232377829463255778498362050829163593038202423721287522864238984638819101706296415471579524847329612221472186690391192342992699707148256668056822157282514197132220528618126009695946281644242455209519447249847741722441728475148855372729232378051217648021309005365265770559923099205394881669657729773240312916092506795042623415958604579301004815246526919479869531814761618745830287069014055312441856476851331233004869233083781966796805898384376176561363710330760636133489098640325484758114188221278015769327569487224087548799978035135561709819591481185886179723287841648388292172877427940787012225437741435884077710371786307845964690866920723708408682413126417180821393550597448699794124472603548457310951925072453865802999812824757371753230607157029659369816638794354225111373827467092371966531347827048315727665617199136163171688261213087602330990781064738204691655900713985145893502731849686674249434087898479065933644093745482146329749417621601502781086959337518792861748871018461742266785632997329656008921038679680223500442503043852140496228723679903419112556198504454044958494209906236473037250461725831749828300107139870530997772307612817851537484880115901688083049179445784265026391503461536599713525696935076557576352391563156585277782488615999977950278856413457072418822634126184590090133625074401574808516858282957283762088841159097385350027677025659228097167524438393814574608189960306009790239118306776837274338891957921947488385944034560880773888138737147710388116405783212749213316637071733792508889931435020632346653219348293788866030777520771698545887349007896718635597030191805151693624496563709193626553749924826351232895943280258499963312511505941349656579856525985833830845809804318376883000796973279542673984561016208650990091401349367468942122244104298293931151279861690109462960956174841401787395481792580788409753619760568543236668190007224548290374023421553016062649500470036130948993656209181164742617725713646187129379283781537480906999965705628372416071312181077031319018864156293978170626145779610794494840527961082124611235346422349438601166945428962861210265897545233411044194041440008242865357311614946478016492556104282110184815919212230821420553829133723396419694427912361850406603368563212751838174914918290062637472667809715054844804043734180804780266047905256973705500888942929401794266564120007396619414507701543483048017073606936870755446162924417714769442729830973688954634893987538893828984086172937228093184015601954506579657969115872387796112595493863115898069496237390063200521467675171365171039094363823238822682863068743256277822091505848680292946503565306446544406958161934962837652780445080552326144264755779793579155480086323168616256824664469454823428538147965372495896914668671030461383895950791325869250396608612747005848697561838138777412495778686890886278269842177191235966819033396460830065091741095929669805774224370261745818355237713897033827397080822543998039679391473251836630493244473334630713558121941422545553168664349990110160481494720987919922936013425117205970509397876779167392096818028050883887078238655906039445029158325626495165378789794616836504485618302781445173961610419654948312842304963312934996099930135553770783585287039549599851760866914182448964194416193674553693940585393519251886837783963476710820098336643371936216797238989151438174121202854842966087395503207349433997917168758730789811844723971046906726137411357217393124144630625294811078401101963053408407957876230099170111043151605998968569120340042362999359091433198019745177381284428083433036971562476907401341380856525508014751396183189411191121294831443314376295167317111187652394385113431263700986573945833493638662197618856987236882671854222439345191041022046486022207313177900957372806854803903058126118019287264849281938150157444355272446764618111945762112945368308245778871253838122864494653136434691886164880916411952470806540793978266460180456429005680871674463074935133391514804842893281378459799025033433507368055537547423741603389564099984439622037245670794641322788025113362158707682527162750709026511863148324093466856958580852676076691172053771610317437337426452418041987765060254493170616387002141003125883121547699622221639801407546692667503325411901276423844672455994523388515893069624212173571861123411877703764664287328618474284029221062227752217198271720932284003680321436018072111138096915234960278427848479697848313596097431211902472851716541476108990799321188404242032522257077442076612951039025074640977090349777358207191872382822671950416534874088600442106697840524095378909259047647221388369668824684389036794867716800354767622498005527252155009427320084349152455647496536818974893603624109602319191277034323764503035278818319448483380297506041673449970714145582908886523870709082634319932973508919035836875650957084854121527830168341392082818705379260646503146629740281448457064290119932626066256171332720335968603343516366469750917059522592777736135988272089838089751307091648946920824262580562657406812163376363770641767105045001672603038555425535936164459526297946401155657472359399404257356135044468844584820879578856206438647274593333886411685013965540980532125198937013596066987284725462088700653813032287388984745313917381933854694402879177134543333143538188612018643033413980214197801637764655297131172805174340750020400274196777185050076619867408807380124690479958563341728771808283443207638962953358716395746141617765142538521775678396513393531597510850623818321695161913945836049218615993381035727780853024209425184892710093137236233712995484630975876883447104908560510588936849098146342023858648629121306906014962817100231120309960824089873439259892633343834514165551253521261092563428277270526237763792806871075878586885615776722747681355098713567060866598604643989576206419524569287868250308688714443870526339095858824755703446645283722032755473694967094685468959237686571064314063692541391474755022430177420285118192766839087219809336333148172247015374611834202899580427824710905494422772204194942995890765548221250031857866246453509800552065626113237548308082518892070242786766298370794102584183658120934856239556958584848572969256536443987238021235231429463043327520069849912207960606527120678739966470989969246940673420324378801253402848511543217913652794663343556114933797917724126520726616693212352472793582482340599790497112745859022098389894808912499640036877459709685554844430434571398957928496235092437848043147485769519997920362433165218436939001500340046521594450561632580165199302672910908843521868747461371850505570539570173333406029215704527829813531675543298419324071112539475726521061561540236614373249477969570600512885123714635841624810065466146721371035313460430758355634489711132104283279009851268867409301446471193576621888952852483949603215297780502769568673340472252575245672254598470120893452298656649330311593722504313042218800696605593025279003884209364735902929788765655708160762175643918058815347587959242889182360548519903694463454042256966330406222195314295584845597993558666718438539296041085858904524535615104670978641851093138115837943041440688395370990727468519048292267918022589702341424359035614440905833355979534282973661245320257215049400467423571819244565147089468021384873137281472860204861361242341660163998449063901887515255565646164021311781546872922890827054921622242959028837167699969082181830789231110895494151520012819444599733923934965425347069513461347923644621565476104969373886577990936099652690196396698965423839284464022829803505570950128342695890710559237611768184729016485250060551353610326381691934617521334445757740594567395633119473064115679042206856203402344030931832081345747002047680338686024034504821374647359029807745189713542943400600115911737959778124914004198729249427169468789383949227129092669836331169279937945898007230508124827035841583336199635937577952873981060591211212950527103827740770998019228399589903082308566969862687951659557927774318866090279561123647455810573657447552155261870444702481962693957687895732180408531178150576510914601720872703800024929801511963874393434085166883141908652928528462988515566658911446201135094884103022400579176993164983319495634202783196929814054279993794010272991730588386332901770646427000352030471570770480169681676127798121875205762957612782722989894141018274038995983008203563673250535684388199546380443376130767726472841362367289711409619295519695929811170092412258404700848915108197578331342298481035958283295302051093549026488398772354900918804568552526951134562907554321770188600773970850403267204349776827182981792504706640338973585416286474444586781731897823101115472989737604934588332676549739525638247409202471526162561627836758583835284454085037313496095797070216271080375018420838051722275937761155599195429994091098288667345348210971237797713853549755723210474000768510541824282698281587978750725586506158761013373801929212098243121071816717179728567180688150870863809260576681709162862991473097567055406473938708457217805314720685651881886108497353402399096318052017438047938920840099077473810939207513507040462191353344944863651792341526731110489384217674804232123459103900457271397748871670240732036992255625096544589816603653991839027669658274895770297606100491622339160687411287536369892243427597484057725504616347521175207232153601110737377523496430235707223704113514077703622595763244147017496010920195264028740916897514726260280175324085604133895136403787482565112546406591420131984988417879419759874834738115308213758987963461387856194046316364143939657907982122972252449025931086855700384821681940243118248132472378456505912011272048456465564414737634585007665573113324085378752142764111015979546355373324109575383873841581655495145480281058967397430057202235206351902647912601858353532426265859265426856138070013266553431487746472881765700225184838639116455699781578189069282266608140446296150128302027367388336819527950096399959567419215099132452754430612468429150131661770728311150667461414630665196696561025389518211042342204171716300168927250035296914143431503824076714325321766083597349301517861122026817967890506854867104284041080619593682362506459212413720857908266219594764586924172488810585096140238230935867026344465785044524955941311603111210289796756949031738386064442090244150816666002436275356762956045855656710230313835337427945900330077646402278943773235814889651382055851108562291698441693341226791466673986769306242099040958988562735828194795736052998625430960789163106524947905920762105820143461670756184658986044470092719180570185790797713256088622733162123462718884188121607188750411957577816680534515364227555064426899636948537798193326592647793920569735429849155094611599370798681290392006583058359946748403460477400816059063204845860741846507246350855935083843252067491360839044841462477377790421904086650193833266964720681048952720438491697943751997115292762528464965943265000339208081352163250339962805328747432406384996499814271035643361944169182584572272640287950801773341950089400651565205998397239185718896898918820648642313499516917172990376465397967929219824746018472385183119360696152208479031237564264283415195030404725028010435484847441155843012238481899665876713031874632056672062056484680504990263458607503837759689860140236846389768863935557689956392238287150910633022776835154318956274517730961520994417221308537303851627255192742602474385002124445133739348211618207684230998495006844395863405630210254993833063538558135480759563345957188584903656470224855509268006957681803838868067090857179257012256359192196685164178604899455219651985494685962204118819219880373099302597415807956167625637809582893710616739077814521434757389933627390171325922231949599858626984703767297326782734967381789349608672034688604911799185402674726132453622458468453699812679473835361980933781626044826009908061783341269564455066242905460204130864446335024511071197427607978463317660097392944495616512171946544995760111304841478692511080707649246578232042370505802741317522864405096486327320456012250562800256954564021641091990661145342668802852090877379013474574299488037932734353989124912012004600568171467513976660135581102375251281299337891955556598014116604301115933996842727594748655430177734900364736155163522478612331411981132939500558256655537343830264407968881641847146315433894578731018066747476323893439011221432981129427226907382642923481533935752827728827315610184224192728373763008223390751623761534601979274789689737325776198341238910115850855758661654040142083702293731513772970511791782842374416862594850400299047192085500165686773654951718384006465459349312389438528796768034642511065832525944794198428369191783388135314554834763271041220526584739188463953922250821770326342566755420684721196194706800528507058360618971163281578370257803843646740006990229590614541005897993192191651887808059201593058255211668237614716800588052504605472416638596575716045987071568273956959926532741331584275327369525080806063514172617576496030629198009139136592604388495788475779041040497587152413235399364102618215996299210346954027484191729388341616946203552263592924349373568701530167513335440057062188445521323130161548235488393386765398897111725719073446022140734659047583057248585624982939775222139755861175195237542282676651936297712356621172049266598070300572818128474184138761656526867062005656015640792090261413703487516932970966054359259249597856116554527533820110684722032323242033503011352739597334782190383197663694487871490612020446131786614548416705227516416622413025250388265104353450857638597193902997909049827212935105435749962775813182135347949921822233441067585897459091511789543378299909145623737073174022386937017245670030159824716838311054637390147600289150021106571416081485452033092521093710635967704232153529843843218633999885327538568493335631793696292095378885964464764948772132715410118972825274610891952192588089785646240762911962279606120160976074021946541439788439505117112261403500647179933035212049901335255129252624610938447335712479867362243020794585176673105336022153926270992852041168339482650358583340157457909474542486342594377063686543840824178906584546863143658237669365218045137947717963767172742142806889807087515340199372083523218924176353917025984733031733035737383420465915302834728422339193761650797825138297825221361250904582629003533328050114646925000927525664697017023334484977590237269094477623633785922298810437614353482478063977735905934948909514431670616352655047640880669984576796616227815724377427792017816221274263823882032688338349706867243025982687694004475891044708893919362304949320607972645984688733275750035023824916289047922152478231270605695978367010359713017832637368877579794091131467509028925350831701709254739044670393555308958208900554767892958527705862906918156023632199462946746312422332355114527740908738946686875637716579214661815072679086941658726466306127037163008906537222504701617450953813278076054930798703844760335306387251605603792959120658879822241580936163388984869395455403433265106689977596219512081930871971294604454585821999627190432334134108455727689743267801411586734154649375562047515278031149236429683286013455479919527626281594850687281369292370889275495574560219310564472282578514140531069179319746166303741616596141458015460865749108537911715032859031428465702099565281801889775411276769213841686807946305895982428686813098598251798865432071626797593934471196608190994104051233564991444807997286167789379117829369822832487792585624640280112407563342258345451117760856674281813497908193390561370022191036422453333210104058342979082563611070258977398210920319326827196214051371560415935826678570565197543263336086171956671646217235457310919376316291477688920975138891600838693633308863851383102562755091186727541390599181620094063964564576140040264209778193638609652244303034535897577770796729934983921244393702323421195003338270559459203002554061122196633056152178897534037097996948505944228165055211260926247980453988023454348637497237270671867310691080254013013595875033901985222573403180673920335637483538175626413695977007723058527383608748986033060770279857341456788356784597032195296081664121261918169612050924678149057884156944437777650510685055180447854522578955077673668799809545296242809439889152160277724556926715304701843732924596135662497817989859970902683082395576685471711951202922829453664633953629761364279770725199154844642940944308447832745855233478825159118627537746078897942266107581598774358510909284849478807021952385366963211540136515927341911536639622247313892559304303949027195373374497845088085076329050738331644685591963791408561875670185897596523213470373587017747658913281359853896250450430162651927881100499043656905900990488195112000040341569605270659120157496763233552663607940043982662467941742609877942432405125181368528135745716354458198533372177337932268915400874928175276646121115983099727940831677071088805152550173017599371294616629456139308377857193805566815518519525066689544483807042831195507900213604649759262720369214217080070336051970508866226637339133118515291196170996557814310540200680273226205948041651928818085078185050783387078316409870274178286886591092150039055915151827214358002995017440837092961108027810150811496178456522368707151874328592703902113204427751035529436717541557459724655435213085305748688908557167566596361533286937823712840796893699928229637199692857142877664212056839529388781421524791797401987365993929269291808140630747028776969905673032710537538974805210193620850183879604061233974038585283089345151241629794533296353219242196854655844812421417677338494701078516149460095943297537700678421594235740551366981717547099150407136009671048808280523757887943876539908994170961010077688543224960116942901785755729877525550401690944840154575403495001605924460144796474400550125378970648567764790258403814218436612726688487382573409897723963655960226120342292729890662875456834513099878783735050594082611037585864285905276339589345041418874820794186369311285426850377154474293638076788910282507949971257833263270865180021919393846334074798588822201647037428866981881367371496436538858786364612471841052509314634356785216537426377666022482683634949460793074448012996840018133502213832066453572352808087749262343800541544755261413960638152996280448301490738755112007971579421002548811958428467029946856334428756633953653856567959521080627311917676162038720837707154621111480923245722073817522563529234889885993769975031041579590693025235445411673209873044201752591818665692475336195947870019134132438818766100376516932482166433938422865125154535948746240913959946858177494898890141083423913873428503277311065252993965128649365957613113664695186166537699273222498017274943421582473511014498972206369043101459013352473553266212423772912462636473105338514478317137160661655657843405635865601402608521661437119363295173118538418246256687624814577246353230290818376476277371196320093944457520861363367338756165646794848595737720873504579462065375010741586967182729623279438171451783661536139437139210722255724347652154027686354819828412805768083609826618013060887802653716056063175062523820276196169985847164964886955785339657758202780174160169072514307427631528073960459931124083836467593267083380411590432688123669381658408126872769577275727544275960537254072282049727058195863994482351565172829857099570986804033362939241479971059484976985427948448873606717040120574963162857673581314751662506369021471223151195017465711878759259391555703167527336697208017836783242298633637832689035107087146518982508174492688013582854762447656568956951525593197153914196903451801816855767055035720701900119941741245973360940404121793172738963337951406364167536479507754185127868301378092098616342285032363991655620102157135304196766348284812495215998924667180700492458655024516913105609327569717666684300877755034170933191949343388801252878781123913942953535154751694430551700201763341831997566923622438717601705628306034694475767790154638445998862362669576911885226007383687236296592552323765185784640828548257034558252675856760345453987478471657247736530732021118612511168427173741826590017605640377692501385502787326684282743583223891128765294595871938927580038636723019483704119814212417772149510746087312222512834325104119513713211937309459456745851946627886699838164200835839389648728825889786674766614946345152751938461465037844924623367072746565734217402481377351108059238074314156869732057454334348913211248781524672208426443350001653487918187025934752457787445690101257943764066238659161384404034248798132698252164609949115224217559132390632055096796368847851435171859760119824272228583711909922196814715498006497116073350150268490245206711013861635404096284349946463752158727253850707211456806257428871910876605611261057906289784305579837544181086898799045871893406355022262107674073436938186317340874384333033884039112360435727719703008806854304393926242557356690423848492403792191381274978266243281585283331589088912638722514652727624268039844897728655065766689010797506600516176603674676509369841308754829278776551260210839172125989760338585645344537631403838371937145608122421192392677068267974135472744889681440822427442517009412330115925757886914531486445038859990129100891937592498646029275042787166051868227417725661522533730503458465851084907726396192145451087504652381101334684204308319619009816466026501655400423953398561960474585587412959246170081700899567454642570982648953155813138607436204231977295047248943921996123493871251317040113366274437200778472944302979565563839837944810224306384247571196584637480937045142128940710006132774822178989361407592457775735281556585837118257995992064555228460021185203421058176105868137348752955699391815454198337426149205258585153426944094032235009267617070249878834693522871441273942483297701414115258498694591022507239710928609284176762117321865080680731556316569725885663552178347254632659926407740154001539079976105143111405802790226127172482284335331914905223451681155403889404568778304981571731665413862412781932486629388967128329356087874150026835612199262999413366562481538908928543490746875188432235712901318208744688796582825488817406169570552497931470646575029380730714517102665019053642406274155098676261669746120242779684711671681035244237280907272353339415550813669990269568677813818630517005612343298372835707463501180157793450456100410042104504037078346853052327644609795355239011123829554376257877332015799636699701329771729920205178722273991948607632695842289803831025886289139501298814407342105376082662562192293414131584765946109659538724696175003643992089317147898620922228764979170801340612116668856467125345676482856101367456144104003716454543348357213609318276600937057477788313306487927296436015592613070549452547420879757238311451467272029017442082972647850774844772563031722985339718598700896198000992568605101152921845100912439144575076107154732781795476909936220003222960296704261130408820914140982460120346865050360295034342551235823420236074448410423630181385053171706262267736768870159415443689908290167363584823882305717313676955075544388233406635264842682709977409128440105674530876297823088136998566044669159052653091835458463332150342295079240447617039274129392218169119209363249643500955769376926157991522064341370705820861733455492337843797162778868545312086689029374904320671101802473973616120689271804673761283173344644900353072840595963781215900756686634093133106129807403653882237483598747029675105199794879956883866794850209663224291660928681793562314309787340586223574498803228049064483353466675555345428545062677723954889224860410882592396842294680201077186650993095894665624699470459233019265242308537381840395183058711332526572225964720566435388218461114733187734397143118357848405851848352255961314194835358964514200858069191176452395767454046821229057569251266643538254628397653475026691417738965587548866622386044861045774945265205201650001189598747592630368985092001278391335544362693686495016112536818663550985585561426671501553346082473997508660672850732788596225852240696862182083806178612468064655968204454013161071482757384032153372995007383844036725105837016512459902108480257143100990913660489320056649568895875516362287141054259103706875285579480039395390111702596437030162752756122203125163130666747278834613880104524908566422806858865848437482157884203987383719358053259946592440501789519170088726519486793063756947116465364513637133075609761583055864793489118002112371227305325591625865454989782796399074857882970972219822797783319290808455168079203932025230687200824923196553499676078659886269405256628126811868236410054484800751554763450360214579263903162274823713460548112954648898456157516578383002401198180372960865992633767615859026439380261706686621118047571228344440150463384169839146871124016357449148742629782047455577505630292885243377069153278239334706048200430376149063203827195140587000817900634421144896088013489318041502402469894196131639336415707814941638909399286923901077007687920539561404009943001819151088094331390999234824543073798185588302043021195614324244068495921972474966107208933725524281219868611586522023174175794965572492174747278995170696507571635022018375702845746923517951055154588903166951250573967399967598321649246262734579364601083972964501815210302417378899708742483503558478273642499592702047101965372812821839711656085060214400776633211940174867172623760295257325923283070159663132770392547506689537483209812077027312551073350533244885049230958303629495036803453409587802980847908210021613154739731787590572443190315055718652793607948045519310335330773033641201554751772545185308356886978413414583373473364703147021312929753665437517763348808378292181536125021541261100552044709829956438036053473437386129932421374011511986133670794268089188997203163889544714794385867156878322563428041903637684062804879936875203580802978608844981877057730431088567443555356675059705645060253714372612014524754725628488073420177890657507808950401218692150741516965069611922924278046462755103725779542870205247184875315836970282161930828715265238120692931770499222968131973556479674047831729039237132458351443740919373475759646143621347001003559501775528675156062093507081580320426803320830521604481093138478137530010216088420454099115534948982351441397458484152873472075268421879930148811346334727722373821746494765679714478355274285166181623241588121528364898597293379617730166060812480124079184577843614934119706695073964369747786516352970985900687361552201050756954758232536255592830473041457467558801071130760389565962800103306298761015640587708954414241422663856694505216367912382676734065945619872899081543988302537471780920356582657613873358206766986992979523250525120111213007356093420638538896060779535655596509581036670135852176286942876700946401964783869532578447594497783200657030374524664325994230891921109161929172270035299353042602875636961856167057004224834107841430188353346436551573466784583521691399102874778265494595626518835498467781192349495187334809089627313916232573210023444435304173729830710171962492325204265893911496194210380858189381956616207691977990493803686841411920750931883831430633661239087261909219522647392311257959801385582923832106459727737225893208702500066407689264937441040664430145446756612251493505248358355687639421863200727816092293330628310079119206671579841025282497383278255761513349151405824873322026879830190512928512307604602633789173778829823154614042297624252363521939590998798958485489356396539371485236270555271589763417947150919247511457128855801381537694045122730176495322998090607079263440986709152317792750922265208664407484182976742874512254815372474466253783997161651870567285060334528195001004874198873447603567399634058263277016956961415244624204480844508259924009517854962470842509544720447594860435005502147663852160686174583242946636301747647566307672058773412236965248837428611211917098970691403874522733077542457794472896094494914060080487254816893755516059914444384045707270446608821693098334540477497725192598318780639992471769298173155012234134777331637345662684794452073866734377942282549860231979430270474158462921910936697045189322959420993655156000877745152377546566594433439042655804225580889121273135988047256711114176343551591785194031741787309048266091299238849675192009013575431131416976400071178559582164463061338050744050528707572064223668510218744430534994322383999487423866508723474430332486806767494394673516463282862065531313700598783597269461902457442799237980685537088672040348887161038359580718236694619100221539464765293371911751280989126915638753925006199909922341595870199965964373859773335967764115968892659648480235280251681525844865282983333229046932661058221935607898414415930015827497904339597141591397509934808913961937060948415933876929526844469448351554678468946596640833789615244660166202788212454203128596020790749718198509813013947761214588746478566739863745455958666651756508921362311212178170220706873585111591647453772434339167547437018599319092148495537413267542462059386435344881666844417326929070754014574069913222341098471604265321495216699316668210417494957307734684956108554272615651612564427481555990739416693109724919241180136022484196773959998720289174304678392748121223420465167560829823147350472794992918552168409986801853022092382315871612836909020145568793599345125197003672102346444182257364333463463894726643436454723371088339415127862308169589768637883660675786338799678587171674902344054020136417911243459973041415655734147255753148593048291184007093681593780421241580997618325831505637844759529205425130214846983940555845528181550694720390878176134310734924664098781329940450315082027609353280911397791561403522431744710001328602006267992230771874437163490162979170911325772141463365502673695439286950331221143885920723647751816037444738990377866330455591508863919966183556774830402883461481891857773800252367193594495531012583768901518585229251039811619484874276293545486172387000924040695208188871160973509336520253304606384983495856536280780480699383444556748830057773592648274186203612289388529752099761453249235919161154487943609494832921272571830683046243621422570313687852921902695468634077957244464750354905047474481490569079559544370158942803760381128509251059694697993524514769879649685062085806686786891134753048057823500570509517216984743377140868164063439016330646248122885235346222766054031234085098283281093648501198105060689350973421889990839429825447507392367451546416071357812076043456725599781451278052434140063254423087579495345602984734884614891912717271016057483765461725867550353245862286540186082908629220697436664023126707737715601876266608945560763316768158717893721096316768980462807332565267047398872466050774812042229537355972837198535817492148520781070652741142769397510661350941981564473547265069566724086715352927729241548661289155218698043285679575999542351446130370175471243016091159883803235098714489491032708374245962170358303840727335851506836391019344525059756518702108186912560221867699476213621510661986490763564350947007791315235291759558791038039476957895354367739150940864470018734888913154551671118293954859065780807248039641676551367005872044470911616404433638304351455639442381412490706396855335049461094728058928168479994231266315634569391870671829946251093009102179895957426526262581855445768721607020830407323146246416319636616513277660434675200942497347874280338001391281815674656483292925969680504331193253804934528637321939712565658669561183969960718044893567442652926339746362024593192186126928042035473177587893463013693018774876391364588379626690212707490635815127741726259270585126223277454020531906190819247477052477342858924711862497424016491204833594902812083224453276127754801250396366576708814607891767177602611632695530225663797313451985121795641442010479754654555322480439859953387860633700529963876656010545490708201355460333654251889253382749232429009703356350187541780765770677747032199950314939135099391108261886527372268919560640066985319247121316245852110985643725246674099147104083089034344036992227016877019706544065401927847133993045301328762493565891854243263025889574949404137911018815946335574813783454388775302463788389880774083270460554013008059488543034487522448863407248344658405440888444011408594086194400608028034221764076293514096889020136585527297202648126769556988855745939822175611356035267629928662904221613377400954199748567105024612324423431859140946796884477592549692061744517432825778496017379966375800082574999754094462768813812418834010761261962351810259954680085220644861780923852661592322870563014934167502741987557990562119418276742238205934664187128042316894183416412776922094395653941621023749264015966851775216939698620904341707490868458384097960525597528078370314539775930977806875616093769300781727921757674161960801758607782469396007405951579621884351280902709076235655885446442366283173650837210778166636826805048701355092073650146811469643589751754571417486361377628136264342889944218026964542436680821822360256886895477421543998209067313743721692942279635068139350879905372917346447326528946070807540129465380007665073848521612580454754656845443896453565884275249947746907624130093137822513384602537479142529450531645643044635122841872281500369232410110497071951308958063900718846253514747339886516515066990864365618296182368716274209330799185897037755744227545632928438705687676412024974166194409987690342546446261033056351315875355996484558585673632796742678050027585413094026283733436459854536311580419104893269429530031505387793860712848646574344080228552355407471519644472766310211014716950344006741115596833513629062301734967154867322145252494635688637183466294513082093360066461698911200604798984225158029104708259949873073394109167428514809159663678594375225264726971514497444563352008730199432531344041707894364137032484137253524015809040041901435629766825797509938617923328903619741969357987125352515021367816603971796540580079906652266577307915271191389533164540627828134257084842588210425552956367653547027517195547379367536583481532756751222490706443367689283516401728699442996170072866408672454364561286514127109460409297197965604268441283717069855447378405570789243983539401189981336153680403527825544031576805422552754759823938448711487295054260604354077244422400582653818370535472169893618384935640732980172221427901935950433891681187391247719225874628225820241881416570081866201445782870825637595942743851431302922670436225237263331656935993650771070185638121471108805214808504855037583589713294233377267211707097390024532071085153916052106083399885815869045580782658685556667054186724013941589517277005141433310627159884968313688665061519656885952155871426426773131100750786370976214272414294518256044906033215574721960318834888753460910311304241305023120502722192321910162705630035862954963248806317952335427394781638979387486061643370618935567227361004232021869498122115612907630274209486067644443253746679137446210480378652191443587900700556636457315778004142003900922442655196950732619148624931909640632794483454351301487025952271965342256336592914616844366383879231462243107788670376348253439108603872851452672517169689364037407247463883210624226770321777802758744990197625540127116344899193165263110728509361580924018504627563352453031026287860254621020860748700371882196871400877498463462803830941746750896582925375719621856636234971383232402661298956471010007386462439957750581121667128920246490554683066334790905328468833967679388431172250767411283130818771502022651708481740681570519877323539384708681933087537315689902732999718242361651207933126175132940717058444838429177555039311518833452076951396466241611430906125363694743343846741992420155110233631318398846903177122791685637994047885692346408848376526300164096813258492604642260879447337664682173218124404990759554304143049221152383787006010140204400476228345752136997613154294816327210191649184386229097317629135250886653005091684870710120125026992162807112065358596498235913873179126805884634921394155834493927988730359880349444563676638683098031877118062196335100828560148283168659056796945534878129805281395630758533454470858215818428049963160400792493735294970114278057748461060550060725246771369164480573972190543957068926975168525389142708060499587337097781383387486209197084245767798934479939901111818324974783884035074572416430907079599907248488683370213894992533685794315490298743226879168504362345577129874999801856990608240657624314378473268066418959868090244696455546683499627662780670379265284621687316202721902392948894571072171514571478825590396560709853365625367902300214644092182506537717217575157971771935781962723838595637705650980578052963394242272956221799370008511508270816433173580844562930227196800979406347006787589105371542994847430928870648266992805474987184355563891026227267534349349867909477134678731783787039712877455560408910099831344482908474353041065756941702704534608770250873837146445131608341668355665305412349874573724109328362972589496812454760952924271518164082114915084219515266130896228334711340825893434348141147569999336056708765045005189592181613645241744914970555237985211281176360634682694416270805060833268028857924874942556581946634950822157662003619974941838705035186746207531910210324457052056553956061654778478212993626771705306440721059977771568943152246073463054032413903529838262509011681760322383387649862939497943018848162628347021420038303857167987054891061228107681775974215459940565723821903625331302150790791077306284799393352202603540133740963254238945153413541501740037300695244952582320166993172572899991723432311161009873889217553560771255695997800609744959191413908663812375634448247039857244449937848714976900452135899067017197646176924813679098438678242849175182244636678456462445504614523623162369057486284672041812189023203559683915528849714056939469115327688871186691451894535961699552969009080572967653833322798243680878036465204084926995572985432591637192603415876586846383248289468542798483130741665165453794963722124531073045994263462905249289330096888598458901982450847518274214372628242051447237206087265997411392965405170817064051677029931508247972403452051663236369954957562759566932416825208284255323933697071800303766874911816523989470464978904037174115116700741380459343869943843371485460643441147383397625766233594281547990789215650961256941293433501249026014791159566454756193310193210265027013675284170735599502357504913566120283392328550978365919545884884146400307090717370762315694815057747504158991043951996221638989317941796682479965221167885065925799698566070968006312151337308551453774795950231031602588187244201797943266455246182250564357645881505814416441387445459377973367373514299493004334607023385337744695199892908063897153765805337852386354278592295146139889028137555838026427614506516820250394057689752686042986224581359683494596989619734310844275129331056351585444182233679945669493346569336093761389017636958136450923217409399571631463289586552502739186733412451285098598972515552395354916733603201612628057872637258656319230861873776816963165018074170915967400575452312700355080445438758645267008660550562653079829285395832769024907946062610384558790523622096361078096152802194265247742830256731025397566217075695838864875442866926619780392139864021606581632159099600257090197794011522167381415229249133354718547830323050188045124993489195228013421873746458404992414002636745874777201011841307354610424148845686667970770497794828893660045350202436077862522974178316032616493378776385144122606173905883263435303867312444218701387608780478712821212722908044720141705445105868009166159069797247150107074953113733584056182551681878542934256518976468337278595331966096996513317431343134707936809591820109828593437146794270293205630956272508350387874727444932940027488416489978572142478090673600972630910352114497651571262242168610127947117843330125912383370204162485103926204694362661557427276938104368305474383179226772166064737975634237558835030909893888333301977004710069818041066025247703253133557273898020916890712716161936145882699448934992065815065228515032211273759746387506989111570629400240471181529677823177562878949740348701207563703557443779407954589341008026304902194069998563949435651619721078702950507894251494182224101496511181294008155820751684124884396876957745642826644248211563328177167839895686195523113494699219544295583184782338338473492122891799669474854238755627601520377721764472803289344012092680117487233034967659589950217504906456283385600491903232175104621349158855042361576300388173599513642757402821931055963543837420475606400855552709316544974532074439661620593916647143526629915029019577353059954228419997372844837779812430555043395590177512402406344518517059878487633445615736141757588969302589276724937797641254996479326184590862459823025161108843973287304575642902573479185032463273652180269720827608818626524905370123759967916659800549404232002829689366245936141810025677794863086549222433133813217078910500606706938629464136834733438604519334308674213613128163920674946495756858710051461772803873432149841934606641644164137012492239586778107773915297599025873328561180580501606524233522028612069470383784415898259569889985276413480108431848608647032582354248993501776313581468410272046513514616402774795841728350337315480152693325784429921854450433323370604426766097568188233419440290097126064534303150896709532015148858465908422574483873747316635166100092461343856971924584141092918336801367049096172301801670894168634309533321731509644847132135565129479054713100411722749716946254754114020110987280068190952211680185745853073466814464728278086778151657957773282913242876852570948362913483739130367883145680712786134872833048531441894175495967559670150278211145297191389764201599958967887748384013925831941193268048362404940548238993778414761474250513519381429963499746443143118049888136369518889314530650899127680223422576501411544449613150694439107048640342060628294129561359482030741579837548160767283159950031321937032034683293105815111984017413467768353150162635877692400556127032965401377597833492072165449666828590461179999746536788945039827092073362331487296178604517584673712038636805373718948432864530943819686239475337167472514574390968533190145750856710923914814384601983688453697119633358780346044138602960593689797264927998574607931485851195021704804575006683203420491650680892947275342452610178461051495655179285257357448669257748754426669223245634843870168554605570809653656073611939253486376620507938194013722833164858830057551500592069519523105356102518157754039648172835748228899310007954948202383087477639830058725051693787726723364323661489614676302497757203150230331662013767851840539513217222599702764135475477786907961129354108947307712712642760448929889281642840977279953579647260973246289626661024950406841653492258043433273971150599714365222592424477705391570499585612110460237133889717091562033459834012865850906338859671091696954755905937398944443658464422586106776743061241164208284337498399415773535128097228185957135245289610196404473384199102029841925035124882984884899618920425053588388554545922204345321604701288036315507826140420770621908784522410437431274379763809931687976279182888344028246933451957152888615256498918310535589295518722173609655932895667724624804805045365112076841415426050273732366935219832174872504754269905591073629315995997739839460079128538009334245980197745374192779752128736373924446929355722435071243506340198578689946807887891287309871035970525313312492928613412435950357759750907802149710780555028488265209307019388189921715073673390372342782563043016468632682569039735953348533185610691603185439063159541523506793278694689975332120037063059066729375166227292404249997237736520190067353406356276959117664513069182143179274450278298352223566384168503320654172060184876008270213376208284491140776980462159154700505238436440985687837663192161158721157635238673167787305244605495886408298327442281195685784578913171305293263693877685572126912064644713899123605126305284977132204485083240481588123526658569348712938466996551866055816353675080077390666136280658283414088917999012252364850437513663091671895909775073004262089929988203148742777544773877442790494823667517330268490215916072957198906551401341998739697949807768814613948301242377030510793378800514659668098696566117897386507126138170054812990043968640349510734673184413044728572714108540279791864132338473423451965042071946738819702465369451591539838018372267955719122684276985200912192818535409343091486295372968212737035796574906598846020938104985367046405395760791291423541793564193689228374163018939672535591038336550768074603781930742209357606013870207973142121743245636975737428206784269381364519936828635766009813439341975157413740032180174618032646289159754963402117438688715392996841007530510405447786496839274109480995581473859098592420525348257339590883431837257981414830156871386371434885009857542130769828983033742833965188890170780665055902750795671599800787232096630765820217091640064837324221664289457798021777986193538227705598698502828502358038968022180593445106077730595173654510357519176636335800534302673404845867790422550155266812274618091858949317289270079963450984339606268760683669248953162410552780229003537346588617853136264958971147005104740367110223845523800730160137767064044328058223643737545386518557240111355001319816610723003966013331186968660549178823841528268319779581668770750000636669770963282641791652657419916322121931521765850822196255442184149033724727626701631939002183193358318762413632341384585828378658441572522098788050863439925325541283292041302299607852897397607899389889045728894218187831183732535932557493973277337853421087290796633027877097422661845570198075813112659686916734022212988342091814048421541914514448589977964860090380487439313240581474740316300827004904311583844112674796038580450978516915393772783830892300028351371544669387251711616328038708528672488741189993283358419879469186122927986048243176213902194656827590619640152817423504174718780626015390784370680028762570942735842439637958886112240971731456426405847350355233306227982635041604593678860228607045144453530168974197103901679138019667409771646177648016533858582068155250354985681002396156767047815797601126610043379168416093050914145958343217481061414672751799647339787571212961213903199315482278808280142320446729742127540833707556986902410710319977939246677693417630042413257290638099412647075115941517853549352140403995841463970852212507779587941686374335167567625402435168351827207224192715727464656945963203577129454851546191779971070597120808779648831843165579321585111526572269408260317261467868458550450648519955749634506604465340757608541416160520556758775640881693756841393892114310756670153110786514605578275221729831086094027641493333389000489511205947975472111291374430676191767574548802886161301163208661039409577745808150700096077763441043098837564507009372431245391958465436975772041622386667463870244718678944505292123100736400855713733030682747449526052628157471519619490222111427766736872533388702552099334170340720250247652640379669567559016025727796508358710347470879375928013982250796359468351008840072854414632909061106033890150173664421514557227195945961472654788090479922669249482487668718760982852748860467687256775139866938387713479967935070154995408508094267954728717714642523305418049896246635385205702427456584843144163694454706024466313212599403081337338595820766730617999617684281922698682470596754949704402845017698012640261226769612638943317475778873130670216668207239442135539529732536305971104686796014438899097254254260874131279141459476672100622298216221687766278115115421561779193337151961556411599822686392693645883070117494690218130427904105845218668985607599384917107601529221911569960042369812779903297753569899687717912219049481969785364839314675499115513681320700967880183040807101300828416727196715018584610640639298786348010141294441753044871197102276926862112541932152952994678820695207874890926798416680453656653658064040325180658559976162573125621454620612105758476856102903552755423140202007535281371762428176380732331930874677033215635328270903970680365330898347240127240155841801989165522638131707065580005845414136346105534979767112863134639984146779280356431339661821773799959461346512173001691378950177355346756362565550986688926198728684611502164377957528720589617190125589408122352369203061374387582220827464499838700522991365322175293500535947576158045979162701345401357676608517143072833212229016732782051747818129760273065067315207874027218544760423447120661474829393963030385228618621503008458133531057414980331707370458743629088567166291649249672336114106463784090496995037218651231969282485715691409785212303030317665179667236003876031480696301201215299291477544958249287594157402565379206685722183217261789238669569509818095475616198867045568713930688215071998526330483849947118421180240328136383162782416829266464820130468195656563452195906376500165718671869338694492127270722977303986515648310877676864677177276624024565847743325527804732883764456726261497414076805670801375309207218538922397392217898467289217426466976972295934692122641538510911938675209363484746482698592713501348805412788456027486762863927341523542847084835420373744723692714681675102613839731135962082332961864588625256016515035247289481840963889531660687075527562425766341172705474358232753398358758728768672308586288199360833992079878350583393875397922506299720964037296621527222981524893064783095528488524620666951238366955432438335483904197603750838207831686207303304570458308897181623270264814235036045654188900771772984470651615406174125607928334365384834147553566763093456099923428136733061574961586532933650967535555150706325367845981564174078263409774371207039078179589846777155056048198889527376604453586464734328859552513416476913430746835474522664289512402395022481904726318396086020276093050837919317571725461777340964523030394538557200352595148114821864650630080270953399531142614469535203860149143562082953957360895398593544324860379520387282537485739285195096548537813263814963494843109812334279961084451278048517414375578427207228604662918886877359479278084779244377087149582585011431595248679496848777216386679962264220139437033025288356369755691744792799099831118756758851904693447266595419885196734480928486138687226912474728234566015731303029303747557904180242157136283080684717740106604309925600002836894544229619071617374403610583985747938456535256268226200869031076736736441053848437838543606930464583567531455490557009540968897682401172927162988966303622673020377125744622369400208803112114432388631821905137913590119247300314326988385139271441674772168865084735052580674688895759606000787745708027975883664738393481004794633059238410807042252388123641616415183744228064042020080471181823373576271034274767059495197933073351260419975108519730134508187900631774754540615578652642776773622231210830274970035145345446861600788343304504901574640687682119833361501327048951931865021154810345072049071356674860647830103167335836285614728557541602793011499056590583152685654613538158426033745384963127272583065390282784180545543431648044457015331605157402337399565526547171165120817366982017753259117208978226979950419447174396105007171089148137656523905282706481011051988727988240754200457332233154769265729843883943931480706396331513925937273288672564859575415337406433268962602769726519039478737205797462550956069054453401962931330561951385779610073341025534107975416196616050256730521888020422259099889387570693935403687648499860552291307974331939892770476445176504207558953190214884906288167751882238193280820199472598451064182465978105114905021198130081139716396763175701775401623077246293202484401833868105611614206531058834861298490438277619415969664603306719800022621603576984094959348038909178517243729631367141760939300709762508571888736300178925563313831346887982221523411449800972984959029746103458568158889611294215851267575557099816568750623356006797670124269567942011222746102622417945690280917011171647532816436228890484465105663990277087773582600748814738677548536901185934251756292020708665782999837220724340266316449656714640608934839387968282373073894692012115137624037228529822833512282047320043135806678016353598491985563977511706974169372881606876908512796424626130016153443232051630221497594856852256969397750447496098534126594940803235913470486139096400819654746043547499679539520712192429381423459907913447747411699767476795107846322502522444626778796461774306889540936303968185387874409504968553189285073162749861370778155828037363829312639015270461638978992546098251020461492243254515392594295482367167667973630447990938601154391728919600646199926970299434562697523860829914149613952747574168748082355401504385550748029216829816518033261829316324441012970661739146721585916735803785128977581069748885228988055995782641470328266710869715869611079243767997410025773021546140242323455168885604177636825210827300150521827280085630217448613104084254260649291815248246243648014718154306212728983392510490294796294754522991146440749283936426922272912245443214412028619769815555743412285202304930746233491538250142401565156521111033406152927409907675616101877347349426578544848084123554687386082750401335596267983227135990254247589979235269337467635404656592138948372929374565451206021268472888909996328833415290115077931933373220730475400024589513181236071873868870769502931616296968173696462765078960784917577216332148474497354888084333081960584978358944164459967063790914595879883997161799573166625228972964361472529466370915192221050189304936726846800313006707557214144953923295374127747258237161900841487850086706651219797950613147839876548226936886881235037589571090179269762135592540171452503912706998715989290159978299088509381370415041567513272381377910330636282080938659528839550386301385562140494073503856058128214116364114785388564733789233643056344860933336559977090483128568358920243143529281019744530561503672899769131044422393454034680676441224919837268781911792479469762476593418413031953941263072704778623035026922731462127731137599974665987333106462285249688104742500978368143218408707861485128597297014995572820921613074254311884755307440761395286968918656015191696785697486751693371054185535300176273166345768195890567131471427868164940879563375497731589820423745262855592558180499368294941413176327798572152593769908758636203773754763941923670660815430464956182072703706211676585113719072781091671903763633243454224399043275430839631789721167797923786168393759462469636985806780799931029491781245435169439967078179258091433389692561400602084274401038520871681507316756793583916600824114121801235098037955174634460860349986059434398814852173705092146150729524193187166317771546195249860682204407294096998546882038668530621081819835174792254979211198024473119277828371405642962856145808942765520116604241578875767891957204633228681022401458521607107794163440252725975117835989518306542495189269300424222723635726718596627717842926031355219184025810958147866051451453982832703756333378395641959289088708250755220764255454643611342977792540436683242292062475458083624056408561440518490845296894683074747212882579853012361864263966104648127653144187301662530865883514928767584513939430108189584084439570559178385270253189275951471741074830336856551055522601052791102962637953875477320007087381897625321838772676781692120969436240193893645468224190626814439722567489994405988991408682222562785897281724259210209550656074541158481589461307307610786063641010630967078422292475598310301382911229352831203923265950273065202560436044300504595574831064745885798606448161785391557519216169718289113467931044213100663452299375288469591458128710307891750037921261847360164698243172905261536707746684498019381992190600385590931565335482739278699555157322850564891810218384010274101310054288904286331116985390246085279181048703020717938146665315836503908579256076016518233780645394713261899181052066990882600145269261748738581405370197704320106465218704418317707019630105620737226787195110516003690494409691740072303816005857692582156969859966669582148629051508546462976429087111900321169826358366927904864815817808478270382404302054758362659343611131322726288951559400476769372827376671811668974125810339383571455024212000388357753595808783847329252292352796980671373263136458179718021097216007252546028609296032670587920323343641812292485948822583065216239650665342706527777290343799136438489933327361011571847599313110995390536462592929643153195357453235526108041127774459508920856358419645251398296029222033389020335053614806122708357470240119951371434853325713479313344235374207384404482212530884963788315487759764629833159201045094708435560554667270217532286030533005677728809441598255980917785575569137541590852991707266999383552988765494459018392812171983314525469183775042351389753169685530764875015717914008692381614364471836739953160262309639747408867682608156838357545895335994642451832191495667692284523675078625999401858342633913021981710164112757135407982437873946793834205429663611608807400990536904552774619582061178179219387761870574272369304038666159153638458189608541424467484308493089213801031706998307029984218365007932931510476918610242037877764863098871497443328880157944062999229241571537544433334760119932186518590525925715484677083220612750923535551036626691814121233724534990021746779087605963247340083880465159670683411066853998792852024159514909689358301266533008814377071690569357518785976777181088549646507669285820173777130045795376052391319627431027696034967147191593309184133180472058941173460328177860872070327649721066664591878337968235889101632778085272050585702690144401056282011411699645930813586552846731560457084364017636145048402307321739771970162632258762745623115658961160850466045141108886058393420775818138300979974976418547502858141305414924066399989406680349453244323198204670830349636827525039438853567007888206440261168477560996788626634504867660110651720936825492836119871416175545103526862742061369889712452412102512855817369303279656517021557246901328522809825150209103912485046995587678235182535392864505331415842790846660946775589342755069840589099399174810057392945736360961409150875860906808247142878810480766791941159621839683247706002522311515197605493777142755585094706265460408528210959671454286876509953931622677896896525527286171634856601901353244599186881029656620418288240674628106919878651327080369377344435996276878614498251483235224008181692304481271788933621825193776081684653275745173691156144220135444718353464135747520848091218984789858947944616337148435593857193865968850825339777017013170429186924731431424677530239537843620777212912504792304386205997008226886504378119797290727445651353188368496336167210350805547812609389368353421885030642915510584669994902597606078951427387891401282268289086872993900963004335257137772329024065658839016123693447330229577726124613006686820520620065821663731035384639910495213818844268140237983582130141126242418474714972303298153161918650511711443402127621825698549652977644113464208302068123691936306680602508756289830025236164098718282769091534176803067275564655697184469972874479790423518224251182700264062822258007648537078277520803846386700929249684302017232456406365593177422059519648470566300807818737495722275883087602840064329832812781309450543633973244634466406063123648692235346314171191981489999332295461746378094321208156676593471501566327550639341262109656900734123619971177669039659532395147621612502064820784940609756352796254708794612763917014582958486744135262361092004555184638148304731305684694276306921878378774168033508048663159841696398156430231765438584520354284361969955836219969961032997563316866721446738546182341479368357155213099205523159146794562437347623119386806213435555762547244898471031233323796247458442955598524582468583653713546727099049820979519632044125167684383182117111579649091023143498266939640270753345924654901311696074321752494891657577585796005892838617316013592505921681969379469484883681088987936509880872907265105072148876380532336606274793840528793291514802367658854833380440592085821762822379439044607405948050790724247857298399404429869798176201494608023825784155116775859026779673832837051746266944452399539438632052146531021984845679247220351252169535194978917605500180760746280524998786150984084321228677356200918948264475117222677839560332322714062990441554142084892095074272978431856934027626367064783279262349933068907504743349124070096616118056475143845796559862657672883827529771957159027051522333928026387419118709763263328499145308607589611817500520263444888887026342394181415547825193893060972952280526952260880935246424557843179640774199802098584317250594257905087013829233467091744109718011706672339897183114005946397391269010353318499860364708861095470713468032661790286917965004755423465181185498852608965333095318684149524702009911806387613362212110216138471748544165513934875566739384080060594391676483439537794374959462167746759177463629861486474376286492812683198633121000501639588358490711131924236733589245396364515436204468730715396325236301839892646740960976024139263592615638957203345378757249083877214601891404180810017051447923273653296417974231832040946252469047921212579163436684480161374951530539018933034655926180256684554674702186378983326704931499088743565310659889372981697428407501718759618064119493397243834388586294701135440342790346655977182449656300420082579276885911273455167823888601136293103766328950266922321091717944276778123735439904665809136674349313039692402538835838792740105895096602980238564869450215202980130785315767657935420232949012358454988868130751971821884309338175033622421018731687937029753279408748670897777222892795620385431455612303502652352532209189499273525845801351815461138300844636255825099994584145580072102513442265006543432559186238061349705788373525459767599824644552358033244373814249589808636693492873314196204190311082661217106981996300202291306230366064830424318069952773632418848242827515704517104832657362421518807207322789173435212266986752283323205058253805485907155794706598430076554998197442605599208967775418652445596436289323386890125674910682295080449542459578336514723129230079187804769888405640774824597119432061129575727998557351945407746810642448053113635119004502599614169569235000867728185920276672068705943355400991146947029768959964129797198546948970272902877097839155355294120286663353802096656298896103174494566676350705431185852230939115642737168199273742317990937197885459324919521428914773219307148414479497678071549164435753383232313237666739144682801145914843213699096700607518953648574273014517228213436394864618660473806269619293893073374098049861007827310327608532116453228043212054562416677760246058557538596294972038517468236584626233243963778183116960605223195366602833563310773541026995760890016160443347531891374446754371099133117194191125903338220326779826133709007068578913848736725018363643503036445823423463060230113326084738306636112062304625417318337146841024122066282234709502285105878654346533173249345041459963483434428407337756816500403680519806644142187122815849376892649493251526241672573563423633896241109076350138328736657841809882663689347109941919132417546241068623443976438679486259061166588836428464095968231394876992737773121475904477905272271364471000076123854666502201985028795144062807412000887091993198627398901022141157330988834185039840216236382016869212647483541170181340449956060823059812081584932522143906991847949651766949618334274823732989380484669701998515875446630708354705761216754141073679361260624190205359093217980440833439292571437184672499697570620529215696753147869128829331782791864321476432105722129611230484516847068818059262238573919864644974893826784777888441610414911236073542765565794537068300466194718595178295935431313609005302301491868876880345703548223362186906773263781261563257259363871023333851129913098149054240543606962205699375259930005192928243520553004973773690869873717141633531833439883746737225109178161794257218864004732373719680669844504079267177709840558651534203894877089136659345178600197526182084643689739612356116393015741310403005586751989488700209708871759809126300657134080002149430045069294438948199226602790181441415132227611877876268313471790276784087443645105856260062766423046378487633528006902611868521349160510667430985219719902825648920847643556568795150657924670035074569254496436313334557709714543371580855284581693197314785518770883749864501346560491383638178488227345625500022738435591885340538345597454748019478047856067175202032956827974743810622090446833834828174789453874949454259844713916252709417669700925472239589583080017902215237559927644256388317387235542674392657750881979550578352366196927840281184294553856473675139699793803055530861797563268399208731020680869072005323010944145433590168626665179996930079186739946782034490873643343423387022820425333971133642199695569687314495445355330591250594697346042020349059203791206235833813983797041139180412452982739624081944369705992018112450061391225077091600528016094996406165163711613929825561476448865372005282313907225497573565479062623633111650746856823294559278079901509233346371133599800151176408186395524819609875199081485641640784712991294861566815512006562031693015375206266505479713349860720964080647409766893275334320023549686348221876467730621746468165399131194111273231588152535309113624466981943863437722871752631241960363584433698615088004551379844651891174783368609714133953385252859712719794999227092643710933391469544098936317682117166595531006751971272976837238978553530052594449748839590859956215674533699637804234776286096320092534570907618235962661139107215660663124699822405701859220226892665521762457104269709034515712218378137008684256246824050539171414327460545783216606352573842658019589869086626531527728838544190968087683349787883489483634020002831786522961733178925369818971871408749389770607447522778318913377955208871820689464600388787289080745448199778239215563179814202912866488420501590143167273599557758796381758694066782383938362827562031649665729851059410401525666530480871764307138386520407431134960300368237630640584472609603815270310739508503061250307629554590979381711615460897651781415036880660794685926834224138047216511144314222475657183496061404320546623217280410691980908872342850035061746046213434485675890623244663613571861802917438884745759648029786246517299888851510226580563185953783613374954012209334947841606426476716182271116135482328925677208604868177582152280788801042817378942671380689415164182027793676815722981506090468046709505439179064262748671616843306646385727957943228195468328079217683307277275348404125333737749604957561048393352497424233304579450408306634909233410227469057451119310896758482627768594083027315384518399471081631708700127928615272783166783612064548626461855241334729954775133804383369085401527534220111703898422049970843027334522479345358030358035251910803828559311091406235242665178271742363574093178240245991670193081581888545701242502175547041062578886155622498423118160048925322989911338843997578472620484320901642689196842073578194959932074342603176041543303799197167513621404877006022984384146925748056861923186735240662357876452847026333524726854207516691925098185740290001522807001959474132785855479662026230379248005342875909135772455664490126729757099204046448911711691533079474822973872341276336182273621664257796031467869566779414652291182112272376228620098660488422140159353663061883939372710425325997749668792970233491847183704631940526761472369398723023051682034714951044221132875197197827185639640994076353913694874742074916730095262333790624382435646922686284034266845896421759654142201055436231970302968771822257053589474855273699512437861229513338647109148016827399285851378224552135996975075236915642342045195396991074298257169995209046519364608442759723542944898947173705733545843816885370163129213652263768401586445370314099502682358407046925901535404069218008345712005510924952694393145557546991327065234328412882185637053501056516127713845826199890266627021960446755050077505307759078817113058643751811378148369464031627124765243582597084215543393431540619463763154240526315545163384009995612138911353480293403148940357276184610641222650758600664639563715114593236790087156704049966369388518366108107251999055417893063139407069181834054527671570600449281533423711690814002417876576448356122195233611133915273676070672216516537926918232642976963079118892133870133640274075666029193099548685253973415092554127741308448852344063498170752092509997918961581528834475793210240996595088748939775252751153896065231109730866223395049529807324045792580611675316964330932282263892525350904170885164018019694489084846351508778862150876590858214303375279309510850301084538967891175761710049994325672728174684039468086171968275966320300501873907898211925601199203558272691154546092334959765390506547427153992510813650730271891574283165794881486045240391105413820200886265096790199786051968480444623211940310541254924346431922659155433514561913045482863756274026794915826251974544125093635306096814813057178632185612799877634416770710988395977987099320447951025575327028179925073617618348133758641283004906850120387892392491771886377327267048242852569328111286201805745278839805865560451301323767360257429805877481197436258358770180215530625966538104446107432815844310058543263772349380817483327720623453627185684638693672250597514944992891312362858170359458028608644426117489021452288377903691108108816366520961635314009921420165953712543921574703360608712234928322080977946576357613827024402847857221842061544355102950686132291405420464953731384230072870965740337647053184613062864918147185097573075897569757682132381811300083569152637153558651092384242931894495484729598950624935556111167153743176111361954218492669718176639924960848073258060466364913218023837348771673981734895547964364377209032767917071676399026915663261241381889804331766637132627756256305164865267951754062995779625876464270877678311761790917675096126590806078781905918970495143956922276690326929023251583410787542486290808052509544938577213494955766062580514559992110755919845192051170411223717278057861576242923415855683363511855429108918096680648155998382832442187167034015785935861961819507856853280707207333522532724781945077580139926635796125837447475849214790353707061755410055300076432622570863179581189864610808049806982611009423223224694749221738655219891719045217965168095896740158136540854677068846959273360197054644392900303665960926320835361533607783544302368723910488437880357985421250661040649196186130930656826827686583102858765018994279846863989632906860818012917514747979717300552490696050609701643071731145285940922731719284228493933732426615762520909877645780487788094115233728676685584766482403421852126989555158065699074142569613209462386380163255678021745926113475961592778766883762551677134063634224287706867143357992195791972419072721973878350540970664741349118335794894062548501158804186929700934777782011951066595520770708805357862393849237063026919265569637064654672660267016238095133035215912243632660344311281241742856841699599105014548408975684055695196439547819148530040736607229509459391392978202544187110935043578202197548871984644981442415554618699360697637195126501941899642509877486726362652644273036593538285843316682674959548093437911797656446317925711880445943181481240933133922578677360283859493354395189852436746638710300244371245222268800480973058180744527779974549603534631981255463046420841974838589827697859362916713674815107810716309461328056251437541216803592149867943313692858387810687318051447421219786823042728383507515713998985391076828129181153585655871366479482635156261869130310005220619126282729669197948609884639572260019783275926681108916183952181626458831669591381130831576485278828021012758710955147365276466125854250682184121809007947447326830916787647523322086416360923663018842407819472111109690192426930721047331098429476966071200644378954771570156434153979910829211400667435309656852116899275606489697049023136626219896408051976510137117978809829908353689042761412789811279742198003215462940008773567892101424997969305644046548250488235450143647462307554603879119388879432407547081704732396320350457384481884782599389830017097024611307276350769906512622969653212893482304856371510279084076795136172284074230063834282139777062175541849179926274013116400920323460332278255348314947384830057968119093095975692206502851301223209965743731486108106665128457098363326908368648844691433834887575998665819412176973736748748501773070423281442705483978512352489371146416541231198810344757783857201973065171635587666541206418197317446556772876909961782139583481849552329373644022509653468865798174546294539726287756051094253061563995182657368936106915688979396811423152351438418385214366522587141371431724119371172778622145263252589211793485180865236685703495307604703859861400543769766863407947114746973181272231120076271925339839811979389237653348681079125975194032577776243724171293245993748234403866265300349990679043977134784915320574480486084542974595040939995273951990786786834195642635269295476450200181945531183550246167293344197333349253856601222640395970996544803027065862352672219951998711220678543605188122222663168545787480780770803167069377336030385600185458065491143808440046557503964188424107513756452264157178605884944729742358021447285686402648356390835583760971264844111821939454009348227740360961891180914070815408921111125196230286065294886571028225173597042441562306284722890917202610952885321820062226466869480448787931306203332751242975493193924785638333028877267769911805204383071453993168429376234969729957618459758264446845503662321698514124595693464941592932232323744004303455085050103778720572289159536466908700585285803507075883652728505338377193938260104430471896692568136843614062768735910859259816425692507491600918004626468320334341348687617862239007747205039350147567640530403596145546947352132737090437968490759753376841144014384191441452200138510185814571365098999442774805072409437377332172844135939344737336780112237872065437256081578988140896828000098877126238214632852176092390111207102354726916179725713735736404672702096060877747604886041245169063146560939148128617237669572947837040591468354437061599553800535310696819762761988194710719379412748250015792137029259226478775015324056343415455683510279512629713706655809216963356078605844760311398326851561410553884965029886491056251494479991117565902555326015020230999682792975315678462081756134273816617804497887311078529950800938535997344285761871871955821673290189140527661108264851406727326847087153324032263624277720440410678217381229841038120934284395087489978028308178408533290243502699436684003485077725342857771899954626012448329387768703750167245610511900702938527995361456739039723049576197077787209682779000041105159421771280315376453660188617504513396228611828881412772976733572969007865091642436234503188491687671809220373779903276503687370562676874794697104457343470949701831133517159769030004893200493133167453284520856185769795695210924631368552427061536882538935409877879124350823495903010277877066084170251849076228978327247843120009226910288297734032765690432891405361343071828923354784906689331290248959860661610998969032634375493631439137898616428040277647225909255987571125965884379960496534169717421281972710859715334123801169419371908009643157602226702879988992327685923381813719429158732206355664142273483616797962242997132078752334195586025179828539430893530866457194295532645779694915498398073635741949712233092493726798918524343553439615098681402831172363699313988917684043476831723498529491648137442428321994899296156061927008470206920962979253443061935127829566019759643990447895914430828533974885430325609397792128292421637051549455611234684082244948522969522816824583339393332525017738047487504943897569982908251316951791972914403375803761237538731007210583765549254238928682128492492754118725588511257379556252367649717103062611633561576082778205373559903989015103250409400156363017320002854927369692313294995237612186305622262955136823608727024657116466573590348663419012273262180289724572851415758634446555277504434550077704537921547583361744741456292681348086552784137636693689838948351596248675542405441520463346796412492465993111834960441939126914384372141642385616910180744247972412480586056573497036022972705772983255875773596848537027148717856163291631330165863196334549080822150528847502897669343057242010048885058016622602663528181956863399493148823739969939076320054032980151040111689902138310598060713940409886509938599348818511459972800782655981012354616215971434786888836569753775890579974468707498265588524760017929821761617955289518490719350867297284861707847496180527788681643028695449381474142804389063358345847591204859121286413917653146664184106979478205071363258161112380728919235217051938670758470988776520535412651012320797353262434314176868452542399238573739589774054788643039561391449633443718394780040781244908744961177614440608414773459744615342936076691429695399141172166448938944769185698666575661498012719372934965546546944638563394558494880179575536771987487918251788623932329258602635464253300013949256322894096728241326529568507091275591258939342700692710731913291501605526406757062895811204454259717424580246137646786079920898745431895851332248526925140440766503475844314521677682719704377441347990357378329576186351955907650031007527650765005356412898099953599242688385514315250852494911691850567165136118269298629888792464240080495701974734068466943226283552806822308105698715381766466277071849928326635170141819960806479574549582688332493987128514909483570875580032637249135769436805992080733509701962283678393596757316367482087045338749913187839591268425768338326742619021348604159740860394260764572729079588365723476948876358202022365762493445835794912937405027883310587175732968715501102040554094306551100210740573290291438053814515557291586214715401155567850985512461129481202021490077568414881040365165822860256234391634478662480652580241244321579924234065692994586510796557276236697081811164047636135613739600999389782086716299918538089728862845490133152661441435239337470316745786835050469684074058667041601756072663894016898042855240161001956692401361661402949006879288582380864377595740084430618005894367977626360587036395174656483465042219618734981664847075858825284414751833693809870394671761423906991598357770214157946631437224209731478154602464609081296293723368448910494092978840616048179876606271417395980379226377879821992847538766825169984554664425726022366608984625324157634784229825835338214725711984538348137166272928400431733510411314745509868909768543398178755404421642121410332243909983467352163256221223142793752132858219905566932883475252171280241132043419107480422668663697188918334550134627352119690726574289533354460932775352046239812166415290054527266616185124897297213263067324222010616445997091577270464577026748782012384824861021285518603278390675333969028050911630518074047956608619695258233115819055583379918261842784303225942357705635371165457722108743735305533895548026066648074404763438087562634906278628725672547217393115251153131576824297965612788120282216224026433145135565166470312697526763172337628263085854639036694918246485972602084813238580838641935787144818386560841127141295728999758672361700069461382128440395638492158816438941956276181021654402937438013651819366565746866288885414280833961500500662977707876989492407319415997131560572635191117874997648027108856603900196218970013401956235607402559654619103737767149695405418460182154761660066359053373753009044682231490640041438791971912997667478917166352297652543925315813756830807763202322271467999927371149392667014014040869762109165275782776437633383193217194681354621250937554665699603996358513946967861072645771778762914890847366009163610114830830076172636236115621805409978413420962055575770570403430352418748777061057588563508036538345601514130366602917771293133336860195123856894229628041880394923531677501921349609343698763373532803087888239057713354507730386782577256669272112456301231760548291575478161002402921789161006921272805720456240546718249289820972659912994496338779356974923428289634963787361852043126665118110338980413764723264287649009058047718354687926826409553760559683417352952120648886965954996619092856669054546484190030666425344332188643188278023556774834624623985530442174809588872691965141326483072581242845824904964135181758872525857316670776557095244779670529976185269622450858186346009061445532812711231790699645307783639129103928807356471516428165033471337512983533064072416017953455798189735410547088487336932585221435963418767270792757649389541932030683691146215937139402007862480243415116736175143595448445522217683783839231798400370388700250193795504643856399343421327447599157386280510326394934150819595057511727609676203123603843110544158223632904618732330043458501383917977730446185852435011243645827601624663645566252988483249265156996166988563258863335389841184693986699737695448170596560320397091271326912623483471953893395214575911733751249478485003220614323184395068245692085328229059037396771339027048581630233819855401458225971921820311656549988459273202127514371134393379392841858278598544956433242480054276061019813756222561143971843215011844228226816593017493197314593662934637071446521291535136597468672600276719877644203627967203076389154888827334770092016508930701296077166425137710802540388044469035468462186945492645170589262114928471869770181811522095716571897770394324967359591827410742967584692032073563823629891649543193564925844561782586196734737492243100391081537821863776209045943485210025144810014896391298676166647892354538812343344334545271284873465109226023293903942648704103917242181241355000493276380896422891827341103364906719413478110207626351130452690384690501869758561705566880249034115937819187708813027115675581570168545089648101260891888140593734263836649175790265087743782489200321853059687674443913903104479465210662196150641516174204272409583510980576811605320419360279269466600337386616860211742580027442757930969704459282164980658532099688783339133799756405771908338583206971113498913270017470099337207455772648417153219126759739196229291347728284267555387998770644151600818908484305394528929034643262166326092223659605944269259509951618884950558798779022205915616847690833816066891141266662151236749723476361154647365342057508244890346671055746343877977671018171929754344320258184587233893286128703534010429324551005953087638999252821413876898536883359332234618243196126369302329169469212643899195207075352005115037227996585283658381958608939184568279368061450914723182996544106272693233387875886452294681649167769133471726787987544098375802290625891327495216182009395433117710381040920614241046786250394890816399380506220806438555003232860198832632216667745032572214086569382291471638217885446797790321321175661387768862226930644730151087667965926470287405262521518483127636524881097832719960376141790094702555999236968915683293919878890771241388739838996175934086495076244010772291182830133013317470769815306474064372797662609394560250495895114465967355908947294150778093730852302015506609702911457689973535808437397098000073411566231073966395614124556697605707020590238498300631201858103712694599858886034185840431779701142312374357467609928709033376391500289902742763263905360497031540455936577335043024065744255838679515084596449686083886879610571471573782248332594427248304167366784954478355799646245827116532974478228350101650511996985005302379620693177996895653516478074326830607185392189365373470078706244806686787826961059332888243784875733700734821862252985402420532632990279898374830380631451657159865793789454733232168020323945782538988828729582025417082746678532292903079181254686600477325240114074355777607909090017393334159849945304535014312769568618877993024687879483783265165692051097722982429679755637732844788201872359066272268427178180475987364836619375217425453815712093314999091551606532050944073250402853261864448191664843210084240764235610395394951113552881579945509902765762029279134795427352684173145915853395251508406335616249794934489881004090688617058968335539970117090983833771327615551124540756477942566861110835238733998611340336855777985443990747768249614941772098879583834771040929882552733375555216703904079771166992252708683444534958623400720324341537007232544370961004321031697717569148436948145195575997160413273216109328274007585517574109510978513333800345915175813515597222703001393292382380184551543135871380696130729934493911118568067496058276499309757586283138689538157132695430344961927727788478437856099827407763181306325458872902696785143289161349844504433292312852967984831537569059223229719403822973088130241896752541432218608304510931174439605487826396814541039383991776073833370641023021495470795376124211598518520168067941952970322915030361421351184138103033420780993662152602030179110109481350986828447565387296922475265277655672718077265933341394835689200704143233087720669854286009693270425176399135086735838965067587267577080863890472845004149013535035260513148776707106091231788384455169850100262425148963131241140463930840021812864455491679773280119245658625123984133994673720899270077984534158904431137117504639529415120237151753966719438089741202489896172841123237591009502594282828250606474654971054115201312826154313400614061662040146944073819432897140369119279950351864504413687001702318159191441723520796629785391388628844707806338752912558330141926427797471106550936258136407304262840261487050357030193789128624884436888028589797293468854508283914029787114115517896736653226497793326653099201706385939090839936938289339951528441853723633050463161306679216432544447472728452600410624038653340039827354289436629847087344540212818972939367819567643342211873015000976486680469658156963725557852113768541784636761911437977731872239629879794092709424147740843110677010218206038227760997504131109476616382930405507834867420786572827175500666705875326537367873956373430311958049164082734603783382307304866425370584227158618440431173968085767983249884394574871046265757880095152674123757071832291280948206721772384877008087750881772979499315002367471310254405604448538476606217861146032737508729267238443070243870414541612754565713596096165009301479593320408615143147214852320503303658102870994022432843397476973437450679250353002576965175268830809123943112642383906428424356776051583219556079961287093357350140426462857262925653031037125412240735953797859056364931671622570840515776940000927579543670907033046194034814639378231356221327800464566906376416146920825807761894003769255661162487798223801255728525940419019058723020564463042384554800123979478352399662239296434340816387931860621390369202436853343114682211949132590350057673340711040980925137711443993874956502852131126847750047355005981149337931907423280987042097889110024715765697952640112660648599610791161419908922399111727398304870427838516104408813695190505122596786519004847627065081731029952089818292911946632925051263478419821805908315958295411399614462479473772627979778850171037863773961943505305775261323185034008179587236014299391344086377099213068546424421277746145469505929234745085779922408783848162103496947530407618745728560966334608913458963186833485073264324376922418348788860383968984769844658331290098949310292731977790670041771064451860917873135977541650285129047948183180276173420712655876554730524528387654739048464927328326400657403908118441748435631784791295255936111600182254763749716690678904323604494832644228991526474508189729124269775201999922695943876268588002819043357786253562296168222255363457759538900974979767645832127580070385355251566549305802306183237897670596938500767569953173106213303312543861460648816580804850859882667238000861134162903404012572640901020224394425897769397726734633795156504298885240560561695591409728147740675838898664409740724104654789881623551297450174569833244789320120019225646103939816168924466434822595471999502232766834887738788915467011220091150340574746017419894833663462921842923720902151888329945242686376598833130534887216565442636513776382086281892838497485689411060586062249657928151833379761217189849939021315689767872151801205337880890363223706685580078572310940994832174924267724017151208425584294292660776581414023619980742272710770029005333773623674529480077394840182040785578305613405917598199252028274637191045649865978374365216360849855610927084070447866367655168735234295781583716510748579142318013908405397651493179176876214621602189728528780073976781088066361733533088925202521129253810317841874411775681256856925411405899291266922579005109530282116740035955521201819556751226928934046513662643959210206750716304491109948638077742359742103947300804844202840953430865297857543979392531711495192838519674747134251741064262836328272254700869346525901528560952991468996175419199065838201914181657280663326546241123339224951368356057493074372036116468807016094610658316788582658455506562098188201711910498034952332325194056236298129770252641455185273164998757000234092926012233956553392749192530181415646179203270836887285979160963270368503998812199995806284918548835543769300753964312737688624061072036382179187498953932096658648917340093458024909761553401966390959041538011136699316012994633165334703251407551406415853553819468810166323556640434688550128272306453434220613060789444053879432817789384160740150007727379361574893133373966309830352313099528281465389431917319432261628498067497168220664277203237869560168305758111008484492018368090642892806932093776346338282268166700753442861215846133181904544268039177673197910930033263937091092101691314390762796862286652360257358191839571608047021856826142855404466835059634858969162730509172611634949111006012495933959993465941831050364582324993633039931992152870080416522682846699030002125525969260912566851922878610605279968458278990448943302987776605441767413243827728450555151460218336556469366528583186005730701998072951231169666384766867627492272373250169380876238895094254613780688963523620872878144042074017450710244091157919154399236744047674682202402721663453286274527897885985721755619512456911767249094927816877527020203096593026743692753427005744749392913688159664276088104389445782581976618212041061090441997221694013592778386366044782404179557957992968230568893566011567577434530968131968870872939597025093088663942031226367467795673497549873746768569783980536831941673335669776180357339479197390852653986278422839931756852995559677327821990620796746284057302666101902587265246158422197346734691752656866580987712868226400822868169798496157184818843659894922157270274322135423462843554856921507286571199983658829954250247463516779296024447664879001428800821714093588736029390736472912052410673880846857277523950895594426972686513272138037772410286388006151097348377894618298722389260663056543395689203618079368402231993790562313335945949579271630423173325346063208901199856975786448928549365076561963583299597975207520051334754626030298005899888628357951809223381484883837047148665378636089598738021411881448041730040519543904154818354977651306620507560634960801065615848342397025414222509465687362989552164145639305045685082043119687526843721640557997254494386222764893365662109202393774815273632211971627848335268204333799287102842343983648268938926388779536419678963068708429616355009562045080434322130755980773725025012746892784143552930620060456716108886768101403367865765244459035700244487014867252969684326624105502161131261507554442976443554406985700408491527157754158753892235932901839019786760207725208508707308492246426821619506215151416595728341096439901472152485652407640229210483999687567117949460190343955174638000031948475959909656658117138922184522846369699886850081015795459678762429672214108955823038653278348801566773622907458780851789175961217485879407955599321785481722238994024952845791310089766484064529027442019642070034921348971323676080937509431993494746467975012104091706262531279905703061570440876155271526900821317567871767475031654511112577554416817317259306909206308868438902576018582372660964032547499439321026256061430976814535736509175568647709342599534747839776364572760956996934710721273991401276591807638258284649010369464370010395022001313193980198050509667061060327451402183259870247806590911515850770875237661410257593416406466341123360903062250483840083806068470695516055903379298980916667512497423067757656321193699361122064440620680183846663802626540647558014562558024516951478894036577739419638600848122605265773136768651374524220974830796048720520759749301979709514876211973809874111159354181124539257883135484956387122244965250052855174365222488189690159104279404081411321374720964127213738370174281148860834330205410953395673511121898279728868504370557990191740689555127054517965521660890116979490620592113902066493307528733214251102431308544157444040669306279690767159669325006460769651669908539674032912452474732912243375742571867351091406578932949460674638077203735710992052203628492007664729396671124790609148915406263476475613140455584262963538122508174542365530614984311281797592455626436651846205601034022953547631193101269808198943430041097401803254189592869920542329530203885866382448210331755501569415353195637178199660171592189377960453157433024374723046424477086763693373201436379271710384355607142434209336491176804045853130165648948237644739772922088802779028483348334454115473428570109873667073722149879802786495997536442338412652977581639940089941447493428172964879477491362586747246935056709241423017033312915951122823745565358547657087009902831142907370686219326739505398666675613128179948592240951715651429511558337668004449754427360075748688189175746306625157562036751887353385818175079643299159234831761479958994541003682112521893339306933264128486189168140851174880602952564906482500620120044655086787108760331988150486457088436179550547463392069376014445577057544589428790662814999126393739120564582705046201238575701311144490554299662756200182622935332528141013737802347067680867368903894108628430156010580623261813344426809989050867759988039867183754800670610177842176155526492115605045358317745607346258688021237798468687289383532986272002216926470238817287130030191667544439200323317481068362837812669121497161195573788177914292736375010688477863303433053154947833184085470696430485923463166816410374547943823002511266540846446600787716886060005726311207256915299334492367307910862859829703398200984729533818101209256048777131764842232764221151895054951046631223794423432953503751546227222667983093529883178819025597866197853067633170841960670045814588662981674862098851917256656030543529042705896870655193624755260570524347195457786484993897482274165553380664808327452340313312989929834323170940159652777494354611833063521555677906668288000183207962196895344682090918185137555532523918082216641446227834569529067115022577224351690258246704010932820886849081189534014508423244295603708598571070637086061259318506430512762928199221548074645223359839649718364473803412750183724877649927233453561451727158567783755661779669239760636283564642683573399826194785871710558044319667711695014567675520284726709293433693350626150415730502640957942625691782914587940794603199142782302962528813014187501196229856780179683982724241504641874439044047639130585173502527954827185700326446879489704401688738984614002746593776250565619083586248969756817737199282376861882942703206013168711066983561849080503783044668501855988286554378400815992056573646231188139478170591306735116288597912988795299250647869067358884996606653385872099618018538384781291603660060761231173807740289445062930247375091444271286960375364056109763072437716819309589260254890518790531239744746154286414074042616333976010118977721684270805465535298833192317034200647541410211649255847035616725178013324657635339023164677747147543315065155180232695988099804007486297896360726427064225343280598780778599258661223533387599698517855576954857849170031403907929091255121053965281546257706126959498536727173797408300449071521048697449752506190102679756907561035087052956619178872654037138118288262237133957246981637359524434639445190562578581671937175223052379512725798175185646448032961366849455250332078314766676814811836063422575416044838599708965421294324367804856538105338731462736443836782438685067914418851608667052265747169415232778507872954418056688162181722613680335155650476436083599472566298062260738829867050405840409416819541348139355962939770583383163789959492794713049426560539231237880489662195276327435214649533610031946859154771188620332314325443130298164557330937927167117315797837845815269000474536239408370416709498225524496439750943308126738632805652985386136422434531353750021511659494936200924793302790798777582530302996367292177099672066801055390968644640800442307047302206775232418245250651443943935978483696399373569439034841262190058123591301832117217688253005909653234980335143808883451829563454787288724065724255684133299225345176133483254373870655826078381634708321370203144556542712242760049932339348452188755199193137485075925019889227647768839629926014053226481077408364434466042690305390282681012608809956196894701482129335965942303533688255337951928575355692115539552265189421142875593492242834096796113303806446757660094166056045022305676257787720722232815762472076340222695636096358940717577731926690704260130729129148481742116527137167978306616463062597215458645595462425504062292096901276702366404177691474922313761960834881891378758070774050128257362576424658685621790321444381147062105084894203229369014256356088467117035995717691718188828774552609820669650061505789108202244206780768923408515452651682771544174763400283774456667061529696589374831262176438282249301263711997806972722972235089740709872721217218705337236955753244568106362098576140788087487734620944173483093263697674247385643323614704201905876559251660584964130608586140538048750085327520570883472038657982482742885162078355886958683179081059670106540391284594341603625335442830767670205243383199869175643819929934522817860749278669852204421514358533622871238764155622776895094598477323112746984471073131872471464247907141902959169863698742025700858143192201833964032366300612797453367466196264205747526622689552410083056161856106463876040789252160145161461477091738735990747957853063846771704229919350039675917969034225427251220576720234090786139233224002704664783835733735670809878510976715134152527861830243641912802090710913014258613651640481031748156542372338106124769998583984101551025355060109552041899568809073655606652050718207904287694886304090103053176395719971007481947502568611729156659427444410195434254918423601037929830604452990879648476571448444387179945854888785493192068508280363055606026528604086694229228794228912963966566637534038395333907202721873445172486717235606333432881596753703564263223622060656334797586688273253985407352726914370294593794733234874645701939048392984711402468238797810936068738808249657410146724460322315214518931295139898074777412378233545556373712896160784747836071481699929825149959042334946409151795198337867884532715653808872083897931920814221353275387971339989080837848590427417096513248925879571437211546937225702351320093797996069453183483771857546038116265336961241006433427296828273514864397910544078972382557297857404418529804727647725245139100644617706446930936421382488216592491171047159093862149545883995436275119555159874487473635938842700426278261029113699019404455474186021902311714761774723143831814053321774012639171514689515205993601547755996660189380180603281731794437288076811385844521330775126223494188828363512468011423457897847918095726880396805141800647229643496106061279177831688574929060984640197459065831658631196598899071812693888979483359007514586677963024631004481343165564035248912870928069401201055366982222037444342146630437162705706657859585558386524990449515842267324493681829612605181126856786164961871035984840823834065888035844760118779058286323679955845105384129227637785253596163024238200294504574150764491057480027710243201214412951639596708685526139382178665615395380454753465299198736830938055117926749857544669736530598260451554987650426134544039803929302693650696880470813187070736111382428821574324459653558062976283052006225358659225806267111675602186451494736390917907327639067582777404077799358970465803796003076335766541581149999093891718180427732693413597761823250288806943745414003483049663685717681378857831131616922716982599523796369451613434560109787072876562069326302857850217875685939699529852134111147323327997435683839519499943778435820033600072816316671291957930154986004118445479211203601511908347521714305899219624602005712728475300947583869983231553772004915324578066162287239286650935623077455226628173632690991663604473741387699911689795584220920288797857564550454323629615938257919683397912631978457724926833179191854085584640654639035362776287214999532769094434134036176204777466645384422954479091941857325342634444889978186641688572027691112083299911421454920487485039863849875535403207460818851558130565673642447913557114332232185548865481039882957918836337726108573428765604531205108082398911582136359262512838471074968753737460757633260935981059829628945914835829650971348480859050188036273429113839427451101296333518510605600132163300477555862711005344814396454164876405880688847858298941408395466067444490318909147978265857267017526162927847236857063766032301557778865791417793962451838752138937973235469743809229471265625888289792101856959300985020166086865993956796314037313778144290194372036819150457829659617369945059353044553321246508211903412115858389348647441890722921138536411793896277367830552218883259127669947442840890655971722852971397097573870663464148007111800963509825004894901022119979235433701534528435646925347557703923932526690940895707831776436191741702433469545635817176516877667973614305135967302422536115722152224238021736545326043739045169730627723308913050462015844615585739046231669547441842801938698781522799146969209752385762909154886803620931424726666594053830113537373901328307158881231024796863356873794657187827916579196486150935598127732867275693694896619686012982094285176095298065825206497208591897167340704459117463171573053749413863048535153396579180285674388152593875201377613116502473345224353448408370971387071707528756714027858602507112094665738547892739223435788634179499929493288006523725051460068079127188903457732272599931263739643616545011742357371194957553186174451218774249636478204008117068479211758181555667936582811932315206025017357153999150626459954719040645835838066390351394492400725054348687987547394595974673915368014831654645124315365431982079274266993695023160506972234333442791395894145151479668492304150596568993653849210933312412171542182833041542073708046190315903538179191236849120040602422449983396449211012816068009785241629582914676663177994936864585941923501817960809871845728935619178490644490121953071461298726233505655943439769998549902360152945350269681641430854887595211624943263997445766901271126467358902990895514345828756641954631304376080471173049267260147873590755181877857514029603251372423713434224406495170906905288550015155637136143649723468543283263610935919174977918789286086727803031609688560544545588311855559770802842585110513219113394087398862080785374702537381705605936569078257642180537876910357861993165433742844916616992264725893322764590010037290556471631590021462921267390887017248567806298494843476631117843861378852876317171784153878197756448487571878663056376478780633580713734054560501676873236661254626236806591897139292383755919718612003271410241358480474357308947178814416896476117295786619375163334788469997078954365829210553470936164213184770542798384485534831823351780511366995972705323309380779434891528690331719253011460400348057973871371099804865000406482652288108274149641339751226699649419508321329770725348448729285270508748696291292009186999023079808118952543348026755211564667464633428867402975980822707388413292019180914329576671960733786684059608635429733403698943940078582073446522077711471391143990821270633280342706300056637751038709079988948606829388987920041391683994299828785094033043805610884778175751914800058296343432304234737298587093812120735072961156699946159412059568609390916960220356550507728223251687091567162743536740585821438940696800567898829104097120631666197191901228092609303334816052467849672816056242092884613167017855896927005665664741016878367550066638064221131106939391907189238969870069557543175127843665808248728021220396420281036212308957386036057950173459586572594255578431268980200451926933652607963098937903944742486485772248285129004924467966912142535393976924745737597627755389223923173146063154213145855877646557309556810424843961437305820692501178724125486749426389263352914835740870053197939479275458533010432284886328261735573826892659967102701053382858461010410735964760102021659008535620418119338766592705007038190607352893456109753840157138954874940029780509366886304341473665751132494167449815730805495593060687044002205904650271155331966988229790715186572273828537712730709493352267714104976395069765922058470547526123411145768643861402652938498865523464829069601166485061598290328523549068300279611098026908247542379501558859857509045762848955718081099593959059192667019879472862940490085118181284376372223136296351605748469509662809622554358761090839431817718145275618650742011491426219870628181003393253102735535610010328570003968080307685271165909347726625853361284435933253362298564191058120049928199432916154936948741476463399596616795274038393111547251237214990672428665173147326977839084906960823528952691581049299563121083804365961994822818812918497207466452649994417542184872527178108922540616022921629114810002548721111516729252704922239394330010533981021685763982513628464520241624712850003869122278022773891052166703887226564689917580960509312156697397671427285293194842674544679595493808814475255321188511794480840913244403002751505243705330486257841839253310746292413505495720837805689443650818540306295669205304518445246276555857201467311226774215029751596495068509079603719675706541269923416060780956373775928755906706261853963201187892542889592413411999199778800013282372428683742171877063595166671622373298205160278486695676784227230846676915192650145174797530253949023032365247431399508161842051048015378080337114669871117093713532954492895834666213021384998330855634381648222699815586326871977839178241313733701666976546920801382765276990966525485399546142331833784254323126922707096086558357870553211696926802802700116040400075802382725905695630259461406000957657706022289498749378854890220171312712088656101259154844203277365009372467430962459526031105306860627002546595177594323274665463684374190046550888251044062965040113685858480720821975949269680208394936346806231558776676155518466957000573213172059502254989115907857283988175182763485947336595041331081106051741159392847228463279252363106465186941488134428779577673394215748898556164435489491351555423633122730878326167919252675755587736370500642465553000048137949487763632304071706290101452691901233200722516352402785793635836604049621383304584627113259812135795386730291657381302219910295036870587120956501140508999328762496520353648534962323306526077061689979015004631579940616660769238893376676505246192656289074807108834944350785851930610809241877154376363446448272009533743963041385012792933915535751813283608291394988033964749965483964651901632714900072194881085300701629024192992096079579499423887780297354115140936014437524434886640258584029929971100656547927404771925581983210054598613576407822566272283307979747222691785543558555656672384028449495850566496592538414340403448995791045219187887599705255570947817978604494308836153656845387139840967001805664310916910497061018633147605998544930558856639728242793550341949937399825276029202567478096726911297939552398093975164874396413682377739373002472615792980543640059827122986360783535160647181211906585412543593091743825120718021561020437901156797143484522027555176667564722541044049293399995150527647356635760421966877900908322257892233898210641682563134249665656162109163905838436675970271969308355939425303879135982188046083594308414565043921783264360904784571277252910548901203667132449922437634083054110199036039171528431281609064344011413844683873357581403946499660204865601982625776227896942143984261921369750848899691586825019984618265339190444506431779144680030319813705429932163276855907347037409605792648320724455071289484757205248158302257282399211095128699584736784048911333359565010635529998686558833604035753399151139578548347569942679293978407858397059416221996140936032498293608203276543197165943150299792128660566975689377867190770009758121798758173666866706341856113581463289493796256153332298496910064865622258276164258535269235051591411409626836013655060056573328313713759611099868397530248299166967619783981571843043009993560012594770984877582976746127435155687115196894973454366542681224188521553530511587003729446093116088226074029160827884323327271001734153955552850338648015308610486045079134149202456385307961770630312853169261547843286566762620021229777075855613359473500150516387979616095025534875085741202150116611165320910525314178092948800936685877077725547869041579834340877400249528655121310473867683970330417569242188420449506712157340382251682036719136299889855667748703097144310694616735402571197693116509430554327747389331472110261700598476252926977875868964026651752963124505044612037148363676970865244760327486876842357175777358064042328412556597166372182619793515568981970116108764824762726729734806375481769631217179454052624315168654953029783297270283151767535714005220623150271000349364840474934663756961296255378854398971493651485463745815908629510526894435681029624197163649134239008476763251701130224960502262044932018879472200880679829548886302354135006783048573471832262261369942273376108160889182946206802021842323551285398252400112428089564103463115235109537959474016364595376986216713196744770608283028854950462478335306649027158755571143911530316346908028491443638908510054042491237618581319244810750507988769377692983964697473990251521616003173210576971172625539923792204189146071345625728760372850272717770184257010594432173666623227506092407259793951554671303897362035875388068839835527084613972429054482681787423508691527833278496914161920787955228281479224060607475145418359124069676468130483186526158551236993979289943559720671850357287251926310185337875682527749113327249615245807618545739636316409048061002189972406660279258299236875147106160743668275925676480953843756802301138324266912345291548732446014412370278605211725616311509158153772060926059166801836927500708138468171876092158857152218982958353808120150685273198076974240226469524971325831613288000279669788642712863234056783522379799893982893941508092426110979601398699443124091346307491314853466924302526628992284615748666028286919154506827150777579080256475944181190465653192732348247708133707608270114536318711192306868553942042282096986982527061394522833606811112959713019701159914747304189236616406436179081305043298899328367288659593519226404843061338388304237071356663699851259061591610569571141769438057486293186320642518567875651268940903194988470345205166464603975757800728657956551197121933161054194939780795035266869953512671709771267596555099199060801196268021806265333063294055515246914989708722324319976276363135520536945880027097007355074607366447219196744434398844162695819071182310913470326773508526306979484205512093092117786957238212470992817510962761952776064548006611970996872855651516688604469211618608826980064864119934361604434096100903444893561120552493524183818175077851808632313053666711187782250322203501181069252053955350093306717894892692381329217691431064416921031772040773393538544022789554612995647244106351559892347234070029186292893969120139914140566454432456452203213907199513887938371525218607451910880749497726064942858668187059806765099018169098788820140900303442067169531013093149601124873197002495341102426487192310612921375670396559854651736764729480035712162823560529763648903644737372008235657400051449948270778550309495242808016355052783038869336088050495326831137883317459877683755749347162449958285913280382146895699001758361167727335127831284375701519033350876435465813072331479325368155878640445568741724286388016543471377866445779480744238269803617183919641733903435857551575049355523236943071163595573710524284211850455852568888939977635458201878952728932010445967848737033798615601104950533661103942920476215031314233330169136252211052023706765124374846848550731462705553234809646033532671885440503250911313728004398442730776827218111333175421389995590958049039710709421062719377717380667810736262203023036193110249501322496183686530983052935342847292992217495175120012657818599112026624316344471703529649512266640960312628502289019750262980937424770726181524269527416969415372550673327380656455318691422585986953838848309000248616373795453682397072959099047400203598580204757020405682854980015458143973098139403936527899010889344677083728176890478729305050828404382875924342869125151657527115019480445738180511930010785176965227979962358618080629783584048867538867126933786991953181531842901572365031277122221252324610589804069737337552507640923284160389910831668971631291652677966438821288213248806090770946153172417878153557977658451356628498239610449172688659028886339772630802169615765799312451926703359373681209227427647303943976124569695084206986148865065669268856944767020919304355277445291270685740514941819256450954020802402278214780667988632010617605543382710682626720968058977051502264109709217572138337481918245354747947254395504961339416534573395103034807050486381636865859246262392112977528316353931974074530772294695532447839502252232774831521788263075532788599632965195096092034669231585530177160649263646813713216120979575280384902822189238652982339536708780834684522071560868236541048872514918283435724503795073020460994052826354483025576681623245464417160969813651542078418946230056155164431661021192838214032356109855714863010634129851909628403845837412760787364036947604278218480389927403491538599577212465014161109541448995145638036318285957728535893024573008620943476410041919141347498286023179369492383066842895826156903807140508100914837406868255080663459530060058093307572597593554138713319315780151394322059960358686888582394021724537104200283921234149522510188898184377532393161419336530905587688311651102622556926824696740261699376339594596079701937202558889235496072049205831752704152231470915180469963778631933383509518918015702552280301732312532389617387705432375997194153371903693420285802957043284646742431902776240234809444553920054983264405701883216089546995184935640712312691527761214892366710257047077308432273957738536697772173825812599642598047270914003288434011597114414316248317944337041244577623661226681970021384577972408494547154533610088406638054021330399476227176346780542958874219125569608836047931256995980329957146486897171448474830944298185992872214833479096131025269963582843227638537239904616153837927133272341978697822589785224631111759697768755744136677639073011408218079578667497324410251212215828079390575425524644734767300904379008018459241038964886677193004860187912547875854332012226457437388191770768446032446611509608302990685581426580471840265057048099246602559704961200431634261529711545886127440614597140355879102443158814173751479917827871777697670887312961598052205721309731149735513308273567249378643500825294316489910845632042862816877457625039860007116870720892006243916471468151794979996245716976797970787213693683662694720501724452811880366559317733027832833395029557557883596311815424185740121216438582897565845826263692198105679387678364203440752234884599174005364230862222279790251241174360177572191781518171318332953566260649133744381372241190404520784780704855944392572299582609537204408267174460457749537593867339253003778714081390632134674949689394723608403388291860196663647154841783413614844128666850389184316567573567615914937502004393422951551847083993125868497286046805498269145354239039384733532382581916625618576701309791226808334031746769151027778981095399294733030358391063502980487755995750760695542820707315994420529753820343490500651139025855281297806983599928273209042379872751463497625678952492295255348168117260935962017798793122562949554266694219848910657711607117634134672750835751939576158295867562103616986226695832992994145481312929899060545665302464338934222276922938870897309758649101708818738603567149520819896279818541660736000974084750558695665670965277402666258158547740096661726400653555869811545759301620981462533284036789044429007467434899577938956285716966182286479707970432125661872535757994305340439994964842407704408474455980971111198502419683143925467977555695197752683035518757744606687323285979807435447505428812348140054268339749663994172951719711193790532067015925639415560419932684940689942516885196690153636439635924595225592079257600535615954807353825201855289604778447000701069932651427035483616700354495193437628754482509077359444420308555810356211068884798408668745025477202966093467094705495497824012298385442927358841260267369652095566857313121763128784682003784063576767392237238820130597863242987335176061553240084649073256018233823297930041612499561062867999626768147596568534699382701399106487830965080723039937241815219507927768096072561422566714769202932230652752956920591933214335050150724815626435626532280510152096883713276660730107437759319880036686321212870544425148039694944642193227211770358459607956879344686093165626608705510687091587219355673920072043510003336982737529787405087698366536233685690892853400526180685854506970128711009522505530392448046546583644764834853577672149264135788368545070993603768330943510381348804174053756546888687666119376929140388221271545308305978027702876003015081626798367430087234474937268997330133962198125856379939565309443683812706777225614117674739622007403570505236497920653580934058537473322406504055736393175893914588727086018980035382442622212174568374241254307371312163119520770137185068336048965440171783035688089938869374238675766441131804102819829880689042506078793349985163715137770660296798959462079453462619847554033887717556556922840672131149495927464147839746231644836484221274498289425961870524009538910970552664648065792003848931548443899401661092886887586695327801030265316516859160393108604883389323873767703760589629187240177872821741972393538631193593741856720983961520809789037806825765167975868329478702885307137776171762785736184531545267450367056468580873943940104360251982268863457953140817662943276901230426801229570548914165998502339862949243212262695496939673886010665146981608231978680673179514000047861221984523913281230588412300626691090568457409289680957010812042281816919211927170808072762716635624767539761468091896434029473327445066439906378848641799564906174715407005433841306994653501008621186972658814345610287804866556877786273522726448342074062366368083107002031709515170705724779837112352442287326571529621399625538609331769043255854942578910848302215688837584677830084725610580337320067815072856075941899505816029816123565425222969363010514071085656570255181081828435879216752535460483632849456901610616546599192750055144467533157472670131042111567709140676413824887848399903773261729894542112138554882635276413954537664965286069502183162923473126985513377139065548747234625557136152191221668653300191162468626124732686835039757001322027039715314812510427510090913740120070874182763702881912237431155928947539062211925602263296130348621942720872243314307627100571980731326231649757924174180392758346997145926142100687348824629439184834880662193553594765088716819892617122824540927943121696334578369861260639139318363931062065374520183715418183550845282699963871613172168059132617187810107076410194495383152685054434475320925754680821193876045292714309133671389175235905094499942713614966604441771624134274793668381321023002525198191992691765201058564508271456215314272696215495169895139684976835596857934168917728794025285565391309032608323569378589651150900338753262310195252289850227725943685494074939712828999722523622633108350510237655985654058363231658158144502710414755108217297595117601242143213031926282266152244138236741622698340032533924173743989124593911298122931465054111753354952230303898600145810474843976054241091009476944336986059966520981330310736987459067743046432853870910840743086325846362226246341161515090719419815325041820233343929629229514653671336729262190896347513695412430831621199760689246091270921038142493448298692271697466159819549763124289023416272796307799543087576515703536675832231512852754227726496782980514919976954313164123440123655014794046338670368954245986243983337300685502592187931065933441196426070286749455498042304873528560188203394722961814554042544765703822740192333479803563455161624813153733142063621953404831377748831887559028654088628755452713705883089134112479755037017328652273029055119184349786361983419430608465091056078646451938645461774273537042050035859095996391186080067373734828002852607467972418201607757070425315249091797178536098032619624649462249852731887782695570157738155346333594259182329875766001932017957733165824080579482211645394252933947919757256637754818863154858031073030832968246612789530495178710532306015979038337531531962665823000640142996900697740204126907147267200303875380500792307461125811923785032049834573020207997592426032868347068302945607464646577623574890164748811226471036386629636494089753140510775833843940287853054900138500346112266626126960722175369842270414439745162019774992201751399711733319369264933764768911406575297463873441516156623360548971871413868732187837111901185749503509466184981455570554156562800244075172732150375184080425245733626967600374603031974163187749872412887309330716309603521397103610198734740069205722100803595786939444701669691584930976838919444466167277507502069710902864968452714233447554357509814975489320211604691821766022921500959092408126530287797082804925222215990392044578979682814416712081026306393064897599979431823214803483262335770948838958642733064737696974409072381254874071075601583119840978078805076955553927363287755580910489846493513866542014658913630137603569061534209524069553539603375573210644616464037550374173522188148702142824759947322193683003942806398700376093865685979713779154896048438031640419615023667028946525536301411348393387627209417215769223480368505915550008857854284843654235598315954971487829019492984274879075082886552660689725917037437374497188474692017742458261121736109185386384103568165846617591363742531305042161987464359071198700857968961995315227857426840977029955398138936663956497947743375809963547265831553475374678967359317469433609013756238382537025408023629914282618125224304774564887953050574797492732448671107962650712934393061877757025138324370455927395429739909535634008311209148022638457345958477912981619844674481192466869040066958193604738703773684146038792069620425723246027012122752051624914598231192747079620518969770985625242313580286315700765358641740517609529798337200765280561626977827398424303821432578321811409799768207110635064082441414063572951512747805824215652795968521544306948424361805032609372831435166664321723537866024102823722382474146098371751436478447002625696001865870132368563381921933672017029125303004932592764030239884915808964423344222223360811627663713316047417981155807366635488123598367162647770153007735197885666290999388115054211203010868459369006309857111706544803197371340574837197658785210843369605011946048603858074748717911451716446046184281403233080220939517703466247144872854516265931981199339710081072919206555193375349010465264161458640993219559838704503218801991665377001519739978173996407853498783884708189368642535558158372097411885585503262135142843916266084805912899603288461709957988517860897902689794148599374370187371565570161854610500390054885436987162956428105406217363878238456939420631810018439699436039131680782550949732537230133137231074395049709335889880348617554341259019181336849841885004872564527872486326342150839668192619644965424762339125975476588188534347964022945014175385751551374870456465011866811140111414786238979837013410427558116135653077446158072681342090301019609604298767996148995431970761398051264061267187653600147593915732309866546834171340433722679933585283773280058473916567554340761976175212525312299760219729517726010287005783958259443182671256660713792916474494379440160744104322391481063598631347721092732879168341798064399429192152980792716858637545620677352326004229193988419032490812555244869548092670524100113278254351368691893235895706702780494714431192469126332750566965541476561076425428411458327618453937722769243884755675857508920430013513352983796254000824441836534180912829092088308699554687018101634742879957398949856672392042417175463971910664436955204083834171097047229435166990511146326106436708746059248280141802691744382970214061155006254211244957579415907554781830353798962985785198070084063268937556379920313782724132390431929612434724323270474397437713166583821137869088859408860097954259819087573035622903255148822814807764602931096454024619993894477268227389122484909641101747323630513729471930747836910262368844632669055143705988169770650439906469449792928087026559973620591375805682881231033269820644521811928390752067114391496525585473120211492455740431214839773052923729504852645471038251769747135949773414671550813688222955214182253569614312802533199262543517230737951037270909270045031563134112500264109531632957691564247569387366872554512445695815925038633843154638773523066132095690671150689014872648208322507540459284638873679930227403005726005193553338763911280602044701952530259539012120973355830988035945436175721112815674478745720133589458486486665225030328354965139148394383330589194147866321407463299156625319824066032260568046644761654428948411759383037845802528450199305987585353168677981207285342136601812964621708953546746811379974937479851390668911513624514086060827149701415461967280284633030352866923483472375797199176089557003287103355261780426152994468340764337142918051356915248756680076458051930059434337012328487467561972923817872860232316130870881454659248697610242145005667194667824550033468213927394246070058312932959478972121131148058930186127505063584351066284320870281743231601464373379470649240296654599972292714671288452964406299959664588782063110286049895432993598864496710206780840765893674409813779894647561295211865488245064239811811973987003457655298663884629634492184672778214642133508879091551747070625644584770361130616638826108318774243141692682117670842231994924030584852395398213584663413068411350509052987140655085196824740195633760842485164114331676694868895341657978369297980483667164090245034652651697983939827409906185056648885753682951639289937102087711964186890287632428833005181179333773441086482678142541960289699041761241164703426516579194484258236108752552578376380126328763564558619730535092816695223490729297249461261372641953974774977126260004795402801172923599817034029316151596940298365088969374092925608842423542846514840103789754036044539053491847794301964690990599612641055654584194909241908039341931407916029090527999597572336874339416544036618848629794514247879813969031717040172967177728497491004039962330262802607711190693205329635775521513118100391120533338340098418972649652264178129761934551604794110939143277435248122316814959774795268545657061191304739216426589497054510198589797153010920383969796113041413547013232650589793764855228927932864444067351423647069473194530336300776061074953264925085715059572336574892137395745786644713577315635971249900654149382063922358732400871732310333656997639607223759514843539563620410414320354560274126400889291034166308939314371327813818213623593312860087771905898876290459090009575225167756697076374228057643367730708760780241497047670415141739057926698709918876363121654973550564090868991185250244906075425871034757634369806935786519182046762862296582749144871575549850806057834503329918194436153414843885140127338743331721169415606432702625315990937515985917678772686375377895712355093706950824307068879479338128318719211712661147041321745615186737343169258106888926959941631353916482682949991914821393808562184817491302076856851381594738087860644569858202563555756505120722174112215133250903153620878089704540750306876830670211560082207622756673568157035569882758553255767886591901158512596788342950266543151896551528599085318646712265665066890049790317846999688799494104527634675529416219848447266069576679296630735562872494332800874556603867701722849261930800496006025336303075401218408556979444013155855982338974106597434458958058426692282128165426764446632112626442150821012544313643145402396785952730421605548040891379024494206204700421891129885783554662121624502621181471066499385860397678050934848573223766952271542346546602006046231547196927568954118278839817848911385899969461309053106734084927737548807562138441249152610070724536765545419768348841301401902290124935272777238189624219133941987031620315203530644344700477115329304383769221302066299157895592630014897589923844446480853168624709152050965641039552380641899267733281854080104017439975694255694503436158279543211928027581154322675535606443781591370350595981707140203566242286697621380737084626822417877332832515996287380862606350645009910632005152039253668270339536509510148167472371291649347721321056207161285359443994909223735520232109489845380299762132154162893411428656650040184674150733165915831774053305440887958777397658712504918413752930733319270763651470869447655762878176472223479319746692534987747425594044497818115928791196533107727040734028013961974800286650995883840626570070018592904898082312074817269190408756941390936756407637713881717553561945191711490763371859785595281495949780292594903174898818889404457456469766111869012751559042503564562961706580814089135296401222625924688217180902036997928491527636286196908363013946734060860092318464971980010518531161584686938960117307595320397017138966988217286045115457587069267702887611925672217322788226856308285835334393568888865340808547392345591270203809458970190449555351744651802527259091238818351619250890401577469919655429504743935354786291152344774981629997997667747892484288712800934766717315996988983778075849374997863318639935626617904493019040900290356467941238050200761037997051871300948646460953933617739086485120133179141409091758131794041504747556486908450995006824426865742923266028812458390693759900672652545155563973513665403044537449962163779559302084097161639884620421831153207769502820688832725258713891245094184297445177209951147395540078544294763627473340695975469358856317809464673911123074387057577633627398397665148859720140768837864131350801719843185669264816184049378846176097166582381905421041192140088375891822865448270345184992309035755235705390868255965148035220796940005924402819152523116716653065450639157079638954663753062612933868253197367979368313698695474472147401994114426787693893910756419748229062396196191794069562049958041649890195346257750564599043161656622152506650182559689147978760506724966481938468425399581252046187149999462002589912567839639904460309920688069672096599608228797122691924793967797988471918895675437302469530977023457409847005007197138855101582796198356720774331469975375835339820810700323946165574114747206599173009965966681802949924837030528266955838573887971611092528176394779819318455456260750251858236478954223290758452433475203071137005740149803962068372179962458634746371219757519767923946694507863581429037308237219617416161410254240302310090624781480192432490938043682552869137537797533123893619356052674561942592842997827051750840109970360657466927094505872577955623343974054199280887010666195714370959198875085669985255756141305703422920126868577495019428312153620557960066745020596191926741224630233944418636124177787890635327960816378833878007837934849329355233978105273198856506617052784414369674322579672284593633327697879295761302353233375079808132153933919740041056512667707182063412218310361642584709852051182639998856029946617333335946973872012253919558014589573297127115800689913449851994550558065729391628313188960314584073935968861068184520603452118721321735146563753160085512827205328834225893364146700717689472748720129967229116529370698839083563533789690082761887561130374237322578679239998504234627155872294705176629702590491377938796692886833201935734862837072536002893619092134641152649240564494011084315400732967534792721098937951187033466490351824959694316682162887617901052668647027094657598215346398352750662301526765785756315396680144604504654769500015087359936541523978508817958711976385308750732428678915223447420017120296286282385431541368910541412601619990367184859370308506722181965710177307636823986617139764295320044850443796495857639254152997163696583542136937352400108199237652420755888508766328743153278766669414702696980813620461137256862075681973505030635801240249175317213801679671830219363920430073214483056522813722676869709431842952279882093324265553108601572154020356858059340491528169989041158038410834226165922483964314286091575203922863692904011833620353109119180702260996491722282939274695299939478883722970117628788498970052678480347438873609271773273874658249670091603522425727665079362439739863511409797696920966688423442940782824848079568776649995040971014928870980290255642033936565364032502151275427058924470335954919266300583562100959235694081433454509759574258334802298708862989147318167435087663500533533256356735355040288683835036325628232741611005413591371483713728244301066996565198916643872411745187912368537203569918465726307406147690546518936399534770961489959584731052463594727820793766276607175549092300936407157325241093277318594669636241896486274074940867085274294697045591274207617276549939500759575453345814958386952709435582394270178832161639724905323687600405016542836849114219430907759070349275219084753294473671685128393003583993529449227287961890215655095659974274083173982488191364561827052968523277088756141673791624076423451379386860793296901156276740623345137272247703342394684209587585682338337813111178853964067735626337274406075085454996297214399385578391584366325443078417784288562066414855802684899988300291856471833464535473739862516755127664083635995571056737492610975238277648532209970125105083913122779338228559775764304205419708642870842808418622920308412471460178727295519689532587938518855775670632084311288438001958002123810329028134380750267593789075151628110619719360249227160199771018522776295158289113485834983218510622740429009725772458396681940337249285507406023505052871086630075857357728379968564015750163984109253757695859425041770219465763353647673352401244751893378060690077461125451404479660730019349773802000849379177679858237175526345186855168976105745727442200108109100695185765884786975263586737094536971162536760331733325329063885667468415002392896816385583514426086226597250636375824346398857960498324901858528165881000801313395093914682759343639197365656246743065554791710019357830735331888576802587757062133858875147615829259347278795855702249990995287219320485616193330676047338254571905434184785887135738545382173227640928497113015918915566585934244731212725020371941714046947977655523945461313237627485130417088304518516958966800261681487522398998398301519546136975989114813148255689938784350024129501993913545200968876793614729047112503686030811633280916400010995081889262162475400483239098214685549607030322077726775571237515760222872104067517375147697442539103067529517964047125589491418098630244546104446171155751746700268732935106257716849675543118203884358016865570806204832200090974617431742304662109898160361602659706383856644167860872982660230814776545475435712253000407242022606076438313401779404752626979830431535434072261404287203158637661401808242090214324406522219350735536323513982884726497606687839796481556212533207067121821704858419077461269472026654919911661905332472679766720110153818002920433227928768374632658958982593352555431244267803457260149237638708241894096799913813009959455938352486375695442741530600481923536690901594860350052018810616207223535090944615536507025618573296519062131635994892230814325464954589387942134528220211144633369278501131731866703815955459712462866565948237328471372054749119615891435490785102478263625564514692041413601718001304938699976205699671619465055786624585302178546710887827883297209051498076046826517172399729600156667929863050523759167773003735667905663607461719008789056826138628050279584141479176659002228908931620397264435222161784132967409909807933766545977372995856445680012835384378314276267755398231369856999183669828477821532235074075147783121380371720950913846938250412978691095790913736442386105625200168080483294721884562516371870902723857290917014584990498691151780566381886477758798404720860233750178365792442792045492241218782012992162749744649758175401138919263688176132694869752366655488738040319447889004862756218639475671491870699018961772670708663480799800476935128551853556402600118508100660808638639364872966844256362431821608994786100936782841629624523732178007577374055313367093517836116310412528991494559677305757302514898914859103820871719874674622011388077462438516683210811728792149335351728484131720550449226947674727937714195576770846738523888319115958867903828802716691233104999760094001699781261212165492698636741474107926367150188655899983260610891299370764992730840127765198455480183386843992196807845980335646182255119525331479054594982889075905213776448622522125315814857529692402893649888815887200486999580810923164838398886887297352627149029130205805348625534648071662907686689735173636896927077929245253183744856754502116978611155080809142933435749180356788269281721111987889511568687301212672237877218906980558341480840850903012239536151147702258082632260380964901046385013317273475867310172700214806576077659489316422544017669566254838149252432555277224896165728112974441094286973894292377246047497122739494950899299454232474679934845445068190205001556305804388053553002639380495138901247192070911593158213760648900251138470624847666279598932046558876927431399843036898512184921859132315534804047357495119658492635546087723883341628294647258781111252850882068675347086642107191725442116824179037286005627345419376610365412511088957542791464900993428667227316511930964126399141111656272744288562042221012480618960027642085346398937358689798783310300671657220980541488910155318158011625800284680010206297946406445105033395076267567042667359265641146621203803136690610980600600560452457329739106772152303499485613694497138163809058317012664256624044032031636130458800580667372659332542219765285141014198148294770222101720771554608346762962038560016653683725699818210137222087543656895068192883995578357670368300725041780268469891718163251809020028577507928776618706426991102325423178033589288819877983200045272156084260697096335137410655752867304304217728013231429883580891155692756576177052618538037759475248800272481865892776764040247925028587380584512608300836681983019274412566145895473144310598828952227278675294794025947930979709674875782946194358520921272976261826596706848705579288228298376542076704072306506833507405405265193748375993055829929554971509313613297400028267091116484136686759385751126137564794823287805087077277437707809085034284491385652012897144148376761828154785338440392193552394475242736541255181752804298212655437731820132986015289261944063278730820447593033719055092665639690824522708876196545876859212843006846375240493184389843469184119460328579932498201670627658797781337676191015913275285922285108099844517178478809062417592923055239078735401986938393420354450251951306189156892378059513780868717247960343614462366338803735708096981972578691132933155694384195387989060218580649578928695397879191491972494238009618899611915605427745932159338532342081417726825515163813419387711357509251556116768398579451529019644604600964439989199981731506128200631915957667055676714284367926800711280784297731855726443887066283831362893725055878721628118501964357422957112185105008867723318025041514633646970666540694478231233734471025549349715065659846544233401776076193658188786748229372246652920349793513437088419688912596097477366540887038549957178762576509265350481846656496229001084296407771203210938758276535194747800930947201526216018491151173745975848454763119682058524219723462604747712757568769001293808611041569867952810549310824654597697739831731841571383336610467083767839930274210894635690570179413344447351084070609243274228276210792878193878854542941257933390120962206868862915397423869270165580367993725351660427261781655369645461385722151232989871449364131850419932922028951329733395642433362733269661019542898137661799005586229178591876322805741145430254485621137749172435192990117397155495811822745187094924813196148831192248418303398168369529171625018389955545899333545348357910440581011967918173317974622521634688065108422499809609621553987676592579684147569759516739539273160797306640921470261666055740011780313098780013379262051875625060309378866332037437894149007835950646828447903993914982932352214492068406544297231834601692444376898875329816906800864612717344133043289560563931255759892784843978064197734785971355515285752598413858889913563287905539940347640662076058083683171653758649133286080164187475230238459819628698936769761616886245742317271195363981791374055146202723015577208337425498904299691113544765316124035181497867226857834608770425134176742346215125163723319769706392292327911962873247907359513607680943886104833008036327775520905610665317608930852208531277255702061058674027521031676203463292464354962174679309569965861523930755505579056238417840306116977378233774115897507906104330477023122973288230693262705934983107770847834385317387508574946986548017754018153431289196251099782018527186357175500390059408537657297605407807592329144151853551747264628388706283228640721121144293799248122797139782747244710270748203235465591525550688340635229776465095869523536531171123929777202369767460893311761600760809097332335352625797082634855684002118641680084076333483591231638211277777759247114951377133343987964052543630691510428343492876003259924243265722746990656837317358473187078247949899737952695247114601717914533327229936056960014238984807222727904690708901378422421209849620506381424055963608819317527484845092487934292304057467882842194652223223189221360406064507679013082399898840350829769422635847979312564883810690687850392372969697808364292041851931849128415620784730022064624032038285519608216101862057246434121177586222163625976895154840043920232290719686912361839791633278155364785200261713288917896170407121262142609793200542541062685568069622472641846051482202370964439991733909077071503584774565235492665172248303642897520156887483003493137810005788143083045478900006503642184911785971621335984517189129869965078949391915845343260789866710500994101758765886193057973070044779269752673219473420381144963532689086511113024318722251615836752290421577377121200912985602786457506592500027077582419903250604524319138787185187727715983146628835418085136348627689926083836369973398505502039432937559759085661308052890264883478621409913051964271486727662057363107548907956426504189305549709148802280567448872833262895988779303782634122328716715686246395220465943469110648435366279613321901172229484558201425172920311449344647740420681328466720623778761493214513084070836345140116940923997028273371150145525082714874072477407204560792069350968978460698572249729931677079249700226522778465184210783809456734906200743299142441107245998921857151993498056141068860972698770775126404430752199052209243569560253885807314723171025016115572565412676851634374038078296724691635913148462886172032872889557068677026257309576001472069051979965642009029233488631896618123596956910378929037142561023393184188858864451290762274578484130452849301470290789923140314384118713311174921113894065320525626749261448818398550345070152902029765269447904398204696227991245404474869249698316971199582832951750210621446219620574316753787113115714073233420670000911235942844817720904948517660116819092291558324835458551037397811946998317879452507259520968672255315471223649669642019564313135858349000593779946677205522995981297591122423667828105359438493408135655990633329784338201522751830089448140846306855883075671412723412526475649625688551490209795800186932353152192986410870892196232715582355069705139367679334170588782695626611558495621920624872238633638529632357618042694414241187462450209541292599331612115412495196576062764942602520646258272245242894486143866757365100610071926173726419207587092506423160903087880272408073183095413150898984828431450125222864092254031593834313172941693548394876379302069872975006577000019461017613420523099638487233705354402727758211024622082037488929208237248093505318002373278796811451776403175727327171971062461875264618559434059043268923267729938749783131912637400372390411867178030067377870968909898843149927204554846060725792619560776977360428064558325869795105136781543456622882315839483205505706983469256741909487572498815621414964229746286446525423751445158162565857877469919548358444848413487159367452028930446822137437797662643811730944655596556511888192702854401275907386780028073486854280515792223956699963492845143573884357730053473427655489600120657541779238153476266656077021891650626314710244216618616547589074646224253608737142697527203359165018160747772259968769665048210545908227156582618620175782488506180372886908619186203672008054358010745657320081106708466834894449168115165535546337139124952206798828754782447575733726043754299734793594261962178637238042783775608631005783884249741143961612492250935790614753686091622289741245597551929183575190077126419197997979052197605580871849466033021190411179003593499576335824511331652917897006021192805159164241772255251703649161547894304947982225213451468945938401926392398434567866286657922603830035251850972768816113017249368970843932615885560738017612739127937442692308780015527074236293963365414189605616154596891696324751820981115165113028986440806090470575023447295482288506824200598416122628276732118375278512677026944965052837018862561667481139227835900334316977227578540535785611930094913750524055530842473857533708644809204864077156356782440064310515126342633291186546794899509307730379634788335087616973274810552388763923607767059429701880340910014361119411934388871672285560438182985919446267774364864402083688961723404124718919048997338718463176769215874255264607439851942969107995574203477996900929057568010349422132533678609443168493311373355831416234581039045503052658705762883415526681755905236199765298713994363300597574157266723307096467038276748980619506993444382333828136739009852410787131604578261766486388335212776448686426654717912585394289758166787172298511920811297944017985666130062613975481679711852665872645332141126152080217586662982726402547539522170269823424999641879014888535189907201190174188831098460684476440708237072977759324342660764717055226668533022744973132294839973660979576341898431007951198535428562796581563833455452113547899828121483504027356958675038430807659431235486741084895626372526399314672578428932991409595907172184939890476244330535615613549539708886364216385885232899474690978582850251231033420659247914359404987616228725566707161128333312259108773802280180928365872540875628558183294009334089773347134624477643141975309176332360050332562880034193726264530790741658501724632112792074912405430816449296669408924723178869086822118303034752829348264407443182261648228238417084893340457277604035807216196278154771240557791597654394841978194691644355496682658240841015854265301159395892266182543402503646425593941680017249055190198508524882714810349500388176961777302047246781141408056333854535639755675712927685081313005788001966609077711024868470053697333715096375110447147992419353224186672062809988379699271033066241322468143640900650711688621612743777290773138086751236592514284917928339985762100816830955322203545643170611242001977187342161661684902766203135032930442222399263667529564869113132231760798473675295321980200306101432939472153644578126351073285248892729933096234990444241028671626661587668257340345516384368528321395966729438746835868027532550580613804614924507829932316064139858924217806364009479485131784038592494890548714461647979644566156062615971261290927898009303450190646613381233590444372053788108408074337141307314205079536924749893968167088668927076529718482048501830201563076201734562439085918367445880401957113392132386626249646953164872456122757300856592913201771017648248959200574083184635945092854741666179646255733115934089891700988077167592822238827232871675580740614422341364955619341471407611660536387281733582098469467617935163646553069273416876749077017905348138773266067605975932693177475784782026192019691915596828037285065193555986808788304927094290453820508402488006068629104408786663554862151661207139529343892098911012848145631048123024153683685242131932581908908283147285867730519592313576975089289708901901234087125589868175092077000829655389900809053381249592363112460517271542258526458258446751404005902444874620611453447570544595224269673401411020059300914145145195432950044255276630610450182086801178957469163591370155309645367931290509736527091560894064346020666361678962944951476112194928616482996891530037710253309381328021048687175727061102850393532074711450621169791476257456317642387903114486881046327665251952383872828848224021144457816477713970147253275610352514678943344127166057838921215806910687538372409784634016495064193054175964324040314333644220894414656774423674456455296019319193775068787647961781026186378010369829634916308139087842325207443847909324825891155461644378156710579681749789456025529347230560458382683135614402015500230515368080743558853822391556809291925174505611061647489831067447330327558456996502591164101816363273460337121522617229735980815562855158430956946271244403339609890102286770479905067934582909310319619153978870737609866405633987070110075204574012258724843112855859414151027657352897277441841800460449190835698594715473607070383664527728949687436094776867642752400166844056256450738820000226995923846512823046374097206617059318281728778163309365606162333150161618751736362545953389442362092906809427884590011197398316395338762979722164216831106538899718470804745683977394411081299160290269143700720478972242890354298293657626393244089911832320440249685986940866084846084553138651475531857854245128501026727833457404788518959926884743107136081809105393687397019735268781370158784091331213900004749601091239368082430153444640850943727070316265807097491048218603416231392300272643129576638202374396204744314444242502448757872058725621085435154127346532034658608878100552215708978229268533024537263787557151038918610551317507606702212298011376166119367093119209418217466710499720750308218554846889854132501730773267556288426114096386213160408202914533608641784106575865354998689407823526882145238651494272288072036436815395850069566919166083633225597466947723695406761857803252446792561145507692894961327057001767335693641579064680834985920574112755153268658619860020890671773779664944536508256604283363368437737636215535693198422102963263162217589864357053137382741653153432471718554708678536982045302489436174487485852435377743988086712983274726482319919402307112261726098175123304269063547852642277903501184851720340418891524930717525965852174810670583132333828439019267127691698446656332656559550637577395374466137049896002164190063054975023435832531963116898170407574147974152501867594483755038722017045373394976419454304241560608555296192222176812154906810606965476897865817623796534020569049746499782113200876979055641988740434743071505599868225009697450987872951326205871150611862846409582987654667756534535859919354930449631083537922339718868734575667750696957199729780053235840629626378340890888746437155925207766117889558434672142400862270244617840623397124786358079194414485927719128576180179525272929154387144038992269323066732996399979914514963923157213587056914321559276287610826704796057169855792633624974601113770953166190759082618644209127547263933517173551816822376859078134913400880156118285682109888617476492277378505148881033016074919703548651477611483035118136814866030429772295197828030773286936230805075520844681507979128316823315519361770224693543971989574546667509122677564551760203446954586730158157597396915794841867358466879131917231538370520116360871630340046406306832949402621029133491013702178631870169099551789561045104301175668285246324057181120934924985862737709907130755049303134385885987696327764560720469123785901081181851221741806504397137806616686280254640745503920003604508831364011218367218706062374291604893244982213900794102511441304773210139516324166434310875294202093876226979489600014041156418013046060736313927085144079564550859679304414603321991456224020256867573145795072024815409816593319102774883087582154436153600611198084779147745420191481653009005958010840470874477541598463575849208815836265906816544068311677711323435257368030360903481428162076232736173079516400234354945883846519386080353685547099089698903000883473875618670902295554886671409748896390726361103339135729580271238863391070505686820171487066684121421187906144194550793570248324151011156236675876855181160678216176907174390639010846786422387625748919951637393024721034648790114865922074703559655644497776905415695818778274265805478157898164788849895601631554932042988591470589912222806412693002982889974116829330343529579269611140720596806390441989215594058584862879597665578775165935815050526963254559498992744187534756445045937008502399670753746691742956133316597407846885650499612422026992485233727210183285982545824932022541260444825975192394561971310927635937042464128465386888281300961243009646213874116830392035129635029942271351205353625138170782697837172204543649082636301017871595936134624357676847086953095078308519386851512204722411055888544996078327407023652788119922743694707952730346650717083150189968195102289808257021722439377117363595009785621527042774178456342823859511446689849044838905159179458171410557721327853785529355233011071975986933046100856832926986643249202479332231068186450927266459162575053269981425570009463561910663214905241935849004463949387097875052458879104787341217897268839028236475291756464460308320551113423048007804717493930444755753992991832849467126561202444595359218501340275859173359788239204178229639290545634117815189310478075403290264200752690128270483698606835925206493219641929421636116196783701758951203661155317081330300550143546319087725615949324518318234812105964901890012954848247254449784335632152574092203160072518289703222619279823816764732670651224688850301004232181013500848652919668844344380897148734549264278669022708035976367108034515591530088242312378090719045002553164210279447637970178888753566478938670195936647915702807303264026723697081937480533130455632283993978437345595268153518930219347807128468946969875342347874444963199775089140181012994057221410272267395899467146474140590767423733373995904638126129376303201263775417313287776842882795180895321213578294850438644872438944419984522961168148318691869206426895914247699447273438212729198497955443782340947950524980734585104580706034748489328635501272103211139641452808871085226053152691229052973810878978847608254530459574355605083679306228582059870644574420551295548956240987037263435979119236796140230250067633139777965770648093974274728358544179078198558524709405679276704407043153863223887200054379577194102948066984434667481656264842880639060712227676226420309920368848494667588497306442786093592718616686018790383097630447209969786419591379900088956254233049109182441010711475882976047137175583689462484183240152519163496445167179226964675036424257885164386805306691426944123601240196519297298310185195605978790970713412440288843797001423204926865506185779718322881051687316852748214820488510791867427710873556410956811463867039742575773315950068515517425724748682817790761269409113668310396985918782618094746316682695717473551161215436309356290372409117219332056924867826681943176588801625373791547342219455749733765449530881635167924907049441959493083346782038739511672034967763498678696656630518548798583605130175803081414187503171548577164688382735445888977404932269856075424424307688149177507597824289576514051578926905765821691625480539432171920852179535352183131709462095839170445137961101385490570432973155281173731439705991802924150015957283315383455270859820689267621816059523184147449336135202665319250989096444238434937976013665660578169461696763732457765661468794895800317775469682919047581527691167046575439330595203449533526821033668900964034963414883129915572827141389002112988192001175558924106745589163651258731742525350164583853139901897333400094324089710432344562418361386223378511768872301148710980428547503517770078226205322286817040576015610865058117042201686833107163374917862652546618384893027938569681193645087394619342403094892350469566068935795591937843140951796598363126954488692397154762711585255550306769231352895464876482662298147380495302660043471339903639081984343456070857825828558449695521903763439445821206498436272207402407420861865162376695245725341402303347292813920081531715003926563802918878009678669507559714145591688941211917437057718140296039477367566480307342654036611578960301310958242049894079604339627953070734931363997387871385248567742978089117778599572738359027007506490645574907016054759124753005404186511254739694286086650272515239594317001646069527445542645298709498037836846223739240605645608177778301414509717138258283251876588155144517718290073315930892403197231934086503574207730871074507628554985143300403478755909869487483655586857556093881170330672639526710488219974665475646144361400633581130956524060322465210956726169313454699886615068623390948369593491764093143770855034167441787371130768943095981765926517744953918797246093673148242989243849294278938647673502303605283607486689088292713377222080324385620883728923991992292725516525193582087038148447587092432407204770431193843367439130406983144134357296197509146112915550546349978647097064830276157647920749769516834129419373193213938412006373025180840164683005476357207816814334353921451478770956457228010880312787489161617925926393962770516200030277836585797618711058465387320533901856103782994442902080136199695357092760712524189450548441040238618954771506618137913862854058093549299327378619180099986841955924855803523407127160608261941320420218372256744008775711865610463983759289955528728019435413453165175646674712515330402673303856202882849633008369388081724239354124779984870281644084538858822754112480720814835364017553039524174542768906965168838935857352271355585140905902943947974955644930755675762024610973235547319913369041833664805950842727410493439968515193735500225981099999937432634930513246391185489091273999611249527299798477283973363468519068365422256967778065537689564501602550691395203718412346956375389968431821747307008425991432306029555787441106530499241529054783798101968677613804668605813453096657539364707723623467833419539898016974892581197767229398491837327012304682202344341173679213641088403612579548747197989722714981978692374748791738844176872290463335426795845136283614792564946282980880038981323105189840231952199566926057875012015636799387201144071041941130869605105292052150066515658386617738164364429663824751740478950000368322944598459947994730451062521398615447490482084308202514330652497420618937996370163209976376462533605677817172570042597861884279004999129913027104234849687699265227584714671772904163276094171526077338323275231056674183404353954077321726226100864930205610835066747020050088392731205746177438677751222851706019340656581023133305953085280285556133585380673107091549112326008094197966081841814027712783881021531269485050360927470596112818271050879522210418270257053050177954434137247102386818674972475322083284974956587462453425789786631806426683844419609820506201448914443858187741989023634344433760302014782382126367156518161756144134360663017816857823323790655450578896170771787616243152002639246192084540101368448700837530228221221104728387338761427709891996308397346561988574277035385776867607483107559017706563952352423700315291660253893612853240011191812726146184536558954584163529452670652834550483993282057057114357484927381130092282327596026383769261689287651998233058880742919043318552093170793830258264629068548934832323857724152407520870583196462997383712117554817847336961192384294097558087799026632497976505278654715831749794929197559222479992994218887759747094050807242535964847470495896941293576478130620608519834636848436212658222250296867226935646680959087270074786968285076485733744179961296722967906199665172569207326182186998473336959474849083325439075418279716375743565979421326979673444320740582252289972315782770347399432069776485265325521447209621780016651935233930765420047607475701769025398449754903902662125120300131705992231533312397677778877088547292422457003400273554666985728492063102418998135659345815830433824390724096435081248051370961097949440738359005804878960678492312881092524974746287050545353198058327653977358591030040987949234210038388467155878722520805967886884983266719464437031405549260201411373327936691174161342742571789233647345587950179458295083108413146584847513041119196726767599567277750069009140149404773734280505733384810763336639009451042030616749934421781291114132950871162574393618626344838861868276549819827997917833846748795598843928624949803502621826122990083137808661645798928956717243526053675870281584953067820303942389104421866220650128724117001501407867067486390047690246181325943487541187962779677850573448526696024154379041368758975220415884800702129397742827398300789233670647901435029369935762984991377149878678488572292774660739145259221189579048119093630299969994605986131691959140815378546167145416487391870653315682456819799474005702156972706305327120636746680663797218063920108834713624871756803195220466709290230567560139464197307931223251856961883280903866332180984181370661578459810566661505670560591347946025521595728178756602007552551971059968597035173649832430529150747618429878139202812859612831179365724365161132432049909790644749081200492472559628087346094228185373207988737287463609237177551326223421739440320714501186035169060582036258153973815272665133989959896771196374859711577620081050213008398988458280683325536740433468505295732219999041978304024161290245299432688759252517268849340021924864111191695692496005723388040449175997047167854738450081590357671224076485476892410291897299344445537744687679362776063299279566253548904383394773221695795352532553956050470722588907864390914164610998885873442890836260072947091226304532586333641145060600367247784954593619851035237104863548579156822445193332730522266746917273739221406377855998192714024322574068263524556395704180102678057346375708656573800174758199887567060414943019137803852317520023445626423070246636768225785597241313977661494236246660107317248525608087479267676849799543663030279673343227494112472062870369742500993248486089148597449125018838221148786428820419174917517017083208440661655404596911701246973073510855408506396237165944497668360353346213589958577413125476404820136965080899403694094877790458060022781577901962441955336612726014741284984222959608932765886987413026455121575514617641965839434587783195458584891439627643998600753030505157145381554505088676013660477481706843348131464932352214859173582855108800333391759424739142326070429828663075736233775637742830835993804573640524839725347384249966955964330836856263441998782287167284295268716355490596549079150663968149515555597531784292375570177877421181451006059587725346818500740849988546932755915325237057065125323633241559137981571412586655230295719784502683551983833880403510550712095618790925559976575775753445363561359982494094307964986913338087589709525381538527980844744661798249673388380825134645091122781669577871918483746313695812379690582361890241605099853262069976149065552025503119456049018866794786408862008875071669797008436250029669682520843713692239005938692827746210818865449122932491424821368542167384001064389300956360129231385213804419062273213579485469680899603927391920843229896670705352926250452930680872733875748604977440873549488719150591116415651843619825827398328457683223839349595817620592691414586283929726154096273760190124610231763015358732015899305134672037533689956457323985685486596729241536134753762909053070373594461589316746975662455309066030458146083101331241925895839029199102810709914241690765590137456687055808240782906624191616493833114689957774120953400344036341210898605172335157108622324392315538031062069536007005048986685420196772541043836164880041866023703640062931067365431122212884799162128394687570895012457258416382049667149192245477601119758609091496273736155126317959015859752727051764324231363000008131016394949156323668451638302022774393364685261876922166103819110840651156210194921421819242809624745862527831026491429154139606046271493757441608375390314309036130380614951601187129101851015525841030886344591934530718846580681483563290872499767355984125845467704648791333486107856263831456028643595462851333400953439247810027886343781965574921052173660691861236285809344187283112581294862773786580484811252596173557856262150496067121133886651333531715872724626349899735484805436157216735868745191887181362174988005330672491618055607124523539704374590818764350483178673668462176354554091146479323381193668644052299758124590458421431703855500185912701139655494619188546038114675514323418201202189422111265768564577919954303109739346878381370225916931054628011817067018544090566143798641508703387931804939154800916652295010401327612804504400053133304961912314825906989750936590864701871663113304451320824041425421295542509943410343872076095417184647639481941643358998529561552522816055619761671931000630741884039458773040280483330527895004141888891184805148750508242826925804133387460706223149522681224615940027915162679943452690867355315948139128929562849122328827939865314272498059384963459691600476751197145992206030728375169687451101069384573610712748535884002017617103959196659539976440266244782265867330366988398624586799148159767776258253843508294635878450020156777295940880415751175012833135629706236098676868213896330661486311647742609063321009682056009617384522049943648717206458125842369091919812690755960149816216538371279710078640350164324806183163062720824296405385812294283484239237297698879087984335855414356677490768637873325641654866139153153117723406534635125703408621561666432229451723780479405184794560428401637954051795794135462700140505758847598962532480751860508536822868631993647661612924232450410937078012826612655252008831474238241764581290140730690348719748947795056324374870107382425412598619020988827636897560292915427247032634841276697785475217979344522164980280862032494665945981068957492815925691191995873002829591160434577087286706580340922916495343006640147463193625265894366568125754829103697482376517053379407932267796430064627044756651767299387095127566642732952528412121076894908100772360677633015185223465535809716636962041024604784844507441093228506953126486426032684965213161080127422813928103456934229039388268858319246185897825085039945802967924532581887715376043539455030273049012337459124797659779189901383224976756948818949829149050106031982143555581737389602325718324655912321694867140930005904289927478058508544132815085530342061270132904799277656399780169278011861337757838190968274628331010320307500179926602383458549546468184190987111462395477063349030472407130147151883706699637824344722026092136379032604159871183747981479527298178896578468689832077171551216731789743712194437594556364864679021964852292600841193612123747492354421312856105881169975291374123245975237390653077589406848655654225152482103660516126384043709993118094547728609313345394441617211252071908487145355626912711558432805985636672645350954593377091380838959782226170419450539228319948240912006603710572846595213938722784991805201692123916569103797889047401515104994852144479758058094619892353424343762965974213150477638269673685644823442646069145136504362496397566359264448685718335119070077558080415888023909304188040197594896695287813996348741946803025985813774517139967481727751510372607972146468134918797184576513261707635547335664905208486110687875561852729602531657520516107321805633433188289623649200368510591389630885699739712383448201155555160570872515264099817508314556668403960991780051827041965072371046048469769119599438327617735372372415836812188535027998957784791001655249206570502901014264050180454817846982024116040037116368014091298095627394189425046493004256346689218263610035260095504828963934610853860476658643443321995795344704082046113098525346179879664364929841981894931032435720522211081122242114833397408082723204559522493330364272328925455821073575051469940103119990567392067243961313408134772257387268133865416693952272317050683027269365012893425493965705554264867688822356836689232321261104315705623868076778580026970971950445141721918547837060479017149918103454645870344761871739456912009483454697986595419229801760009653765826941930216198509572297037552369757480642213516758604692526592475868605854032644211640148641591827180360863996161586536520932311065575103410370701549132431223444973083885247568677359320405693420321648316599014749365522011086682332856549142897407995848865161625350228001760010124658099604130625520023102792664141994653380206000693364704016925529872834848354677108465171153759255722958468507030772461613198881847766783301667383568052054544944701885796946191177261859173133201882761212440287094541595249627610622578994741071521052927415799004738098401021633798689946203892121447811800805639138136739012974294695924163637704277592458268654311208469331757585225058167108985024748801026821693183362362908826449212234663022475222281516664002824908045542513993117755985152828415875763732334905324837074598559423468075327583509386182190462270359418113657058642398765032158210512717627091057245079952737517043679141467072147976136349674486688573020642838298555019015383395121885399922600128603174695910298676285002953286909386833542676582436935776909427023144227415761685564018523851945454003803493729458646467251308869270338795806401242338013952000151589407271600829279157769494992775299951600835439262345315486276247086947210678000242529099694644134868713277585171040176520225799459079906343110067486890875355650336287233735392925076506659755347126942151802978363881167737220216527102288530110153800888673468230220194569179965194384502593793776037779185243536591330222954577901638135448286007437548881316027732417443762015209720712967134593952356467044464025777665240174984445321107260460724621041036579682918266328179813875521271739347655005727237345506194980702435178621020154089776196674638061293274626450327757654874109377353789671712166608126899628299748368635940201907574511671583074766702860040185020344995010041169020090397778157604071292668890638919818170822832692381797281769739904198717531612335955235933648426557561178526685084616810198841540041001045752519411154999585325720694760361537968494740369064814452160229121499432281869668384402239115084535078566027215468216904813697707347532814766453745951751341826487023893926108899157437407318425735871003535579899919891771267423346595663749838952888710054584988590268408031191111250077041387157245917669875542012880967366098683125783952397251982916733925958207011490115502824099382986983131976054613754383256925472191286545714646010049538560015973971448766959791780700332009660519551723724213432210823969216225139454010702224476322280992312989999809021045227008250942996952508523551551168979383776690162805438676832494387336478973954402522662403412204312231171097813418768842443092772343712429464609689681914704356528400609073912537256528510968259126603701849274048573921474090058581755235922960329141548780611358942657358716638637439039226233891504352973095342389483852643427407707629153399752914605876732439301944488065710608746345541315971972482248766506403241354916260201091438795675399955528555610015741401483254194457603566310657650354736800938223116036741002267218590854437619582130612645059444097996286644924052610811287948155808303915375920870790110650073008299760666938474733721524044531760585048431431835294763147768855049075869153936061589049926459628325987882629602663562889927702819414318251369472870685403681966860414318179931485547119599537150687705269699580779142373592385185080033727292179468706109871662247521938208402023553307219966676207057524203911169692449514294686319780778890473846997746994172367401695322354521909317825148755742384336884843544446441412877321557328732407985171703139867409817772898320467485536792100839611664118782658545740343884938504300451341626908167623335786405285056010195512992934827739107269597290360030696552487877384864871871371319570723335131908732417064323927824229212116503186277244108533469521656867351428721843158028604205205257591177075411392172885157997485553260440512802324862348645996444211260737135469708828278752216253420252367192635809807488762519939109445032357588855377165628535087790285014531129584385651309186589782288387943738391293846369207211667118641585707630550581167936716035428418153331729629405777037319058980683230410323042371823272827539031529334477893468892233309731867965974865357949103247094814568025246680715209281029110637172894519282865908487045643408786888018591574639724654335924681078542667309456102157409053664081877971602176341359446920406340585829264817354617087218852316916000159647476160794012757019702468614476167276362764233390823134129510258351975613679954410489317183446744575081924207813342303958429925817505724905530644241781700872716231074285774739068515171172905463789172354544116390201802873002813331933402126090842678094241476138219183446924511793074272422289949120082405338473964955224800862108850525143997428858475060247108433310130494155319871832628104091998184384726797988268218679770439256823888448339082677210586829751994089739403663965778742835162054696411237549039688838902357298151087911166983463467093683276659080773659057371746602155128275702869395460130645715500732727770805407402694752567882115115262891018169222494448763335047734580224680578010785879647095255322769949160374994443409521458336247343739331077410923985672253394315751192347282838592439437020567348838014599015097585162333481297058813973699291929753580403678794660603273702559398146358253162239770895528996705805999945153496380771211627881465923767984495966995934240020226961456178790659224407695383947541667558968969593260022349197622300660098428756927316566938299009149611104005712239674196024099097154677133069042717532599024598360278906280846042139719871079781478858472485924878651519839197263749960822622315036087315592706638995347342601752817973448911614065808062491143910596536287363845311218970154627925814204614336931373313952326605968767284907912205748474636408444704477453286527708381121758232066586893922572099052281357991075548588848902438030064098776102668792803047476953362480242658298478360909796005447494870476289899937798445071771864027990425817835591052485279528128335800012680304135815435271575670903816691358857852929362396150215158732972484705292032525807641048165104975573078692089551909482785234846661850663916057742991627872321913102216211420938371299285806336398448098194571943488793573895473460645504431268034298274244807452106200637018568875446177688955972774928282837514178463186437521654842867540541560860799977288154795249357401212188382478522143955351282768247746331181768353037540233364536745716548481126815608482468114472213924666362269161514735544358458049203032917829853905129798826868754570940368425403060382581176187239200020141859586868019191387682175579361544461284354099905948791385181225873041398580134151826481687624806542679017414670585159341315832985320022696963428758751325531459961690181961228662060440744251839303599951702231098572369566358364597419757298610964714928749322451308848247909154442330414244839890095244444089385229796328594827026161214115177474825780689147148603666677412141585595604753666796151614049804127846122376860435002987066855868801676228614163049986488480390563626870116439351623393080190705654438985148029157217063658476342406649179585158171002639524127716824019344421578271165509193605624163157837604543705258356515893163801182366317706285108769960961276218564213687261005846742186949475350444707042932243398410590475717313476249627254523831713728899201725352717326436547633676306019636842426437612644983071783534228370418298990795658254224944002095086509934864192220558305172310574065605581035382966248219138400640587233798135780059943997485320866276505884883028504685385958188043241417386183202210828927203684090860159762118735998506749411384164663379137739138334463742828197111180347556141890426700976475477606039386377134117221322626955955173847375958791077576582120936675696191868096446779769008331092652746704458636624954495193198375181655000207706960958467817566278357937392978529847623976289724969119535687397219874679185134201632917548203753641943639628039512871734257155456882101799778485945949468573279627968550175947568076248650915641458350317679457897723167158333865926345295951466961154335086293790834841956939517992219786463267427890688589106034985631823873225037142784883599744753595029909391299984210072980000894311748418594154831256904609371108670210878031214157725094054615397146588656503376383015318464675888387316495675327493264845464726683182601175089172840091756141643890547449908507840792958185144252485722539593940805368134125026703797519167355377049946674612919115226596748952470327662278718478268339292643183151492246544213833910432218623587002604363643415776680827494482904095467776611549824328127551712234485192227719599820583945380398048293019459067041490888911488180165435421262649991276443662092588189660130102716195333647227429679382423764178284502748676227542687472935249275617485599362923855598216395528401636796288762281761218798309846038706997388101275972925028291773792712069018601762783784416864945356516864270353867054001595532570383880349206017836872793990063318734316998015774431844453024509113479699411732732088313638037659775683586602620153012444257552967688645652014371641357840870346401560434701592202011099629880295998843133117865110679016085165485589918297738200483798024138178411007203284659452436792503817338190784194714041032351725259890441078896460658378923019595737016568748170232165457917963635897989095170916661590996567255467632789669194333827398343118691317861766693736608090104628965847478473307204703054577411607680113590493526848340331725082564740643594919436271470634616493232543631638624576964922926347812416560469809429893180287767959683728120250052012183018347195186043194275971447931483351360693647315268783779930888886884855734456858025858594063169773597890199471832243483018085831926329613407805412233291266065064021649514330405253730593728805841029448994821040911080181646065072093633791627302312648382109366630083293264113091803759359506884381434665624973410252475240199126437232662084191811947399615590629155096246697658455082046820972394314792136985993419708067691961784057393509070879071488679726612442263479055300901163007508112079517696895164924414851123431060907740331749191754496449168656137358206993434583379588087691453770850975509362213900320556689545344939720248595338433225792070896118530703301953328550852500171266027190286959812941146963729068369091857974009719180026327275470191815690649391863875778041759037488394320928407079560148789391335774582064241334743240765729473823692667222470195759695413529245192113434409702714697882566414056754622029731177778856760846680269473359179530696116629971561240672044514220909847188820989656278439025914684674103125832862959341340704184197317728234683848993658470052199328818713459524746328227002218225281078669677709302132379293256053672166101797879567696967539073976248183014495140197259870042160008046854664935235680698257558506407270118997395313845807893058537202383392412408102437461211024706550752028397749249126475472277869055509782004299530037778997908726816214047802203817102481979997502016179387008281415506684176628071696372092360039902908136425402776754016940232920933458050136491351897787015598564586385340384602753174466974331555472970897987889154001424667522726470133113301928384602121965051405956394473211514848548160894931515310234881713048813981827792364792232763271384502570037494997251599879480778078997667194617506390567500016041943672672085937258364059597864836887188481133877198067247027294829756985811179789294259538628010383289147205330238097574851166238505543992511354120110941429680690504643043057966872567494496037083681367141920499125417162475083043632709527362711968731898542529871450657657695669231514056700424050550295079917098200145030592842285090146580844929696704793657897299203263265828296830288886347585689452491978627179478883468791454364097182348527519098194178521615522581020119826527955677172913553821882533159461343421401377795923942759883936748655266891369716875310075403018712258268407404993389752467021891600364126639739891470335993445313832409781982471751556652340226655521297565262537754626472918528798798236473033058443482284393529884984589581501960631222306731564388500969846121097163101492637146920941242627155359879947640873142727925684023983273952871527560702651225858234006898494050723725941554302747659976710396635266793724574538963295882634860922117533341632310008452956363635706602863224186269826574016499013370771338519156006843722215237154246358749170265566852859461494115348112134683440705835842610459974702045519978821089291037371104447782686962599883280496754800263771696823505544171169117141740807176471772519624550592290291128384751419753487132469652283602106724673275106303871307499588657151897939146398902252115375018097131808935541862689698606339303915557267678938215299580876344877311798299889850617121173537461762397560041266696100006453598190954590793164728643729976854483248640711395610380540283513530638711142424924888622134122764818899635191548103715935174495797801952667234918356418351109363202392205015534342895660337381872510234755995961202257093622641277056870585238293081861675158764501517650983231548294359910324668431502990901947553923036814831079620508956193817539863962134912618873716537790781431879920363004218180085041136367335249978804592024795283545081554817929130727056942314347446928174619209114914293482280793362134124357380962227387699782304665201646057416301703289153434907460310136117159588998559802923817081528487618532439227937581210966910807011535107038485705233868703967164261174227696665550701190178765396336345172244549836726947252454679836254369728186583953396969151762603516206440658721305481896128996187709446544519216316989371021578267790389414714922475972137050552160095451563364848336338191990684538282630319706656491098042323202912976472164268503474437129061478415765331132970783706952511592506361704482279743609680115024473954396055983385449229548848200666054679965141777783105626441196146091313805726176641703566986961414159744930764336682912444080972709494851235037467169967001932582790886863157506330720185534186894023420573222004237951751563484930842036064952425035636169385666250537504340287614862923899551787340261051426097613875521915912641623855061840584727858577224875319637161907029936344232244834193978235836288656895372491308274614943515092214921195082056344433789771757482952577397225212985338011408179651016652067341877126047900480048187972037155353260813486085162750308065297679528445990848022545615311867626405742819643576960143670829503888675282368879307721465068584711349895011242025303951281560285607736148803010897194658934104491144738625907824294357636881353513173157817167935816200611411239924485495829666320383625919158224402836508873958229378827716170635927670987136025410837941011730967117400553820146255978146105614467404783302560035571634571757134670096597352297889336122973692928531001855653350743319798388577223815553999027572041753159647047550991100825301512749979124252617699312940091736260392567713627062107672648424191344186620257779261918397846498353333377209632787012618657107209990379737716230166423510816981940388985645134188153755838314973605725442495269984667458623389846891522746425430607034243332604404441931554637285172119002310380047185006985948425961455423873997680906871168772788251731303677269962658516919737110033784875132287090368196290941927179901104364562252219196749103990871958637797938172167796072365538195104147406045641150658351249506346903684113106902113090067177819135795214202897348402943666400472984540524976413747156195052154896031231553731037039707705472540202243263287988083441125504672279723930604567418630434474690493400060423578434000821180908999543973037607849229392418148171418853115462542817670555549203251501971602445103146320122147474559140986828452433702539216322618520053548418020862903788502732410935294005096528791993674983646551364419170958843739204940099896192599578966262135514479739094571851919925875714854404582556348204771291138802705339333928358211228108646669581112947170703647602215184111180243774336153760267326411428885041405505701315062954937691244400343899554922194087466227999273750347106477302220702040464646329390670900811456927536841606684486050404227232318343914522541214521982041094754181221211879607708356459559387704014173028821222949783048839872538195931817321210677166135393974336719805673320269415725552133006720314127976667518559739782149496384891421129755421895744536132084004697487288187774446386473751151988249217113013276395029523375127865082420149566453085849303013800628085873770541534916638959423460135170531019434999066044271359030683373774197668863912369247286718568159628083099315563358468851188201764052820653490271174605588713353183572054578928144121640324379919803066816719446184806290749146993948508720425837108855560025144137985325785427242406294703456578379840259436117340077096705516873940842227255015405148488967299293476352182261991699837035116669064784157205566270093861114360536686704546670385242917755472140303277251569690521462784411452592552571208448186686316328758600460310183969242500258763898425215645405866265477108283059537257739255458381959109889413957368396172047736844493142359457994182966589166723403220136197910805849717974367290396190744282975843102282553850037394072381223675666345027499963415835901547131621781869672478656412007698515998980722385603815498626156417193363125970708767321646088946356776073760441042269880641915858681987926357478069704921225670753524612617988510941942583902844602791900334051981746724218636102387699815154457341228455102261981682906306020463594085455476056752168418359800500552316051441620142942427675067896469320964237618499588764916354908249393689333657881037992803719703717042879901425190594911692124243063992855425946606154620207248284082585192302457019692054270370003753689350817372498935078930894200427116522588550040119580154775194353772025842748289276264044051120192611555066032837246417470391036587006302925391519885665553270846068549745244433651850872008739574079988997139128101058872159580235653726132953555103175648338192325986367522798032430019360358247865034950847399768695631084725824783273326543010176749536318599673145951692804868308985409160721050920013532781767074439171840080629773524530114199896906778578186149675815583745994845879836235151539800145726148921064477955365402196468401329606673907632725264456631885340253879829055189585613744952196128054183536220015492610566888434073398461162979266288460244118726344710500771131124831707166601901452505061289641492538284892279800482295211950373103052597944809363280680746398426506607774743860345793581874382064767493454549503600828136356861522622303579547475308362127222702838180959308623860634339636642879055507919612675407358803457544729941226178995464267757189851968422062600021411472188236442709135225097578879450349624558323522704731525242649842203142822498653998658314270789236463985220625042057444952245526312261977971023487820158070483345593457056619944722403335666496032715074968886792157755984972484563078868165937170426931407724673321517768532708308691599984005920469302578280131363001969895988911381515787241301945446922419910080201787488049982141898457267896108533576663721769373540130359353033970818486455757638085472643906413228961693359593338228408579449291781994924003137887316452873171419661665034276602136265578478930960078797846907559826385466766330831497085694044092436833297524483575752742973543552451566470442084754634387908261078018175540857536820023929258713089866746197685505273529320979034678913314610221728243580701798502803710573375684671024787745075339048657567741288946270602764417830525380999184485185756867111539312664474149343958088686096738197847413846425006874540041966214909592152938561664772694577368340373605640133345611748479657373825849391897275587849180972274113521880154714895279737740176139625945220633012332992020950863461173289131809524200236690026055519607494822400892425427749254803981080248392736188830651972705775002774820756265961140879867790253211541286608877682393073321289129056047508784768644641290945125896839387857290575367108714606919441655401412254705075561110117776520472401363830738168421258777756783603584695463502374319247163893661156552738590892159717134493610320947811585671916794552890049664165608105254898020427882672239048755114891387505632474124260811062518440867915083323288825877700431200033433460138319940569139168841828002816244751796244247926324022980519426269424702547900586947601118299089751491516457187958945135313923650538740820552006690637245457452823210615994899766625078470975450583718288383985168934494787607968063181682259763641762156115479649004109165528832275863661062317104190292910432990691028655478590686255778252975197019516014338315318742902931425352958763187582513406573412179531923769622504654145585632421747848264111925143645600704949297611705475891707691886834399844289763043379788043138110962755965466195715315157298900884095253231341804111384666327940759872259319066506602391390488822572445709111184306537734826454358425992367793233812197885027523914087995415080151852291472362039464925765831614186290579906154472168154551657924407701508970431578444727898351875134810773840749472445020190890044206621111142887603766157232700895234783728545045637731031897879131635216708704945024385831762125501403416298041037025264618919644449136379735558562371116489422961726884713750515409757346160319927881340966841762538232223909275926910778667039117293583185410575923156723119783421381356144764558753662251375631547102931853173797078514756073581722512578956700205659773175834761078258059889288403769040526523191035406934978663954784164239423601390210205506789523585624410360563538229959220270254677572644363442836017235072758572593279985142553804157621428617091126595629087401082809719904563300650616867288088636822077593598286927913485997501190354372732392314644889556187567978350556139123613100329666144550931654332354200822321609191951085180422368629660882688801363520020452632408547889285332382211301584827844948356725120798452790837430199897865359715248144986366064553379833124334137827534083541577440207248350711380649207582677661473701297006704449133032268076706993387710991718473114813492153289955760938229409294450071853405842496678977753773590049617810292974908798367523134108927169363538188922422590908885501670601644190215364224704234069350410423988246148697215093918635876253961507317086463496940521461557406367870938680975542767546441867219788812575176275613856869043473489616060951253978528224192608876731117622669666908965896964939132820638071688448387272719112592594618260089141648113041928017672703810367725700721640660241970056085460532005091873244617245436735207719716290440702332365664919942539784353349058548759508937832930150682708211435075303053935724281401892885709471536849559088263338353872747326333403853740647885761137332695590926935029266029723706596825204310604153061126009760399524822136649776223566790293774524348027246099440470540750853520751331084938239954709551879521356635521776794462353592089113975563310986734366611691959953240691190051135253574084792995191730386634055436158641388553339539466051731901125172989040976055886153970084904980545995526492322187430892312341287173938188930273685754486516218373369622120679195894764726682301803184790935790994374872805928829067148855285478792265321745514605902033697479659173643025847843255919471338999603924302679054457968646822711419755570694282528965069478576210135877378312583994136790924273302305858137517653858424884956860087209233569493566995595285215654762361907771913733782017687290396464469145264511910772739660564097362926305877582283783681411233535928636644459704171084544852884324394363745479227552214785646369571718047397267898820577790902262387559203372295217418050601575945484954325197166061147425609119344290698840779476999005819797786927108461108144653648242636361633432595175586645911370120712962370499878277530622561036356721350070246822772613651256749543548010032543169653534702253621679161862941804099360887928116830924453106293654022857626946215340236667990569897205339523585986443839246489679066006102241656592206584168877922836350026942726653818267996904976597131791817987173119004888898507511543890467462529138816811173175449887925908934070265938409850709018001459282277563812279754046518910318822318743386334461622487782441786898820449495797970352581173489162386357082829207360719182668907563901472673268352817555941318916466434758087578163603909340600579963700202374694515607194399330634834052063248229245171628538329871282864010129240569155252462811776105869753762798412476368383844594575464539908347160443532108101852878669928051484883631262014318175977556854175327286136990186908828605673151917122999053178551845495440559653593621103918164469175062562142226385330009115700477801167352493126735373516233311261479283629485495816230172796309226675192703128615899617014681163435180539450279020745120478980549940763689958134576293681967106509820942756600302717296410435811187784690786649036807929867797594642483768460093822663731262315415143079973211672984901397202916354917447220776457189917673306346370926898791739880530854545218426207487096658005340796647303409579092436722801186511586794275527368671909915020083329048723795994143816011580501712464892685314365912650499656445011917396367399491576159629755876117020265320687960358812823544445093383922932848173864423466081578166238227429966208923072476698165209000875757783425032536570350507460126059034896603696102627874501600230490428143768492794049226121606237253869696084464876918264376508999157409916375972496321355376823216686487540830873849491739732815368362094898171375530092982518348944156551845483519293368437802312668498551701216981153388894207700109317604943030304410083174478963211469610327960225887012634426168409592689648833534405211615515359704532190343230662189595744884109335089439650653178982931617209670524932750049701166953456723478268628777853524900115504628104944500726203779509285937998035447681039967807482648965659470486726397070431844530959384303647566145717307291622134836808388672392032112392914234390683206483276094805064996641306268876332830336577366655074043630753877250903174863419820070543213587055517822964434585519569141201238279395792895812918931362851102590373385516208778170777922063711152257511644315513008522525061874921916979109334247915651966815201911259112957320527025955034105196948788666721989568525816741046787622584257207317479116273740407321080738288138996121022041665748719896911650707036622371218206889650157509171585369362707813186129484362132945234558946514113989719228490558763633494282026719217767715632798370382219245162797243788877127432407539700532922495533769335087247786732393692049908763942583383654339641381659112555805267874806803891774884197662939924125423154601680107827325920141572074621293946097316272699172416974072808945088970556147217038459293533118985344589213588207369340243196505456553757513219900078663988238314397827698436702073862393937054307284818198916746208070219064690608671918882223608343364085132245428291993012257877896729827014292151372833869852251354914906180932156366650800866071660482039351103369468806829353063952601788659385289223771116718559127049830667883412450843616620734992590504798103599985227062764143860516308244097547016409356190168677129367535012949855284546366516589472980623870709782569163403637356174826001044515669978120509751847405486173276328486668471805004025130151182647324949652679852742464232236684403720121974879398400293454127885187731068389571753527834606085545720328910866076839016692514926806835155738498248767981165970820839913450518464903129676279602372531703876514501542927628901282692442500685530324249769601462953303211938584542331144055203628825267758394830351447516768726716347191905184036726713290212215154652786900095529038245722793125475430538014246309057021069527709541845144816018176650641250015760167335336913262940865818579197693341627993010714754259274919190295351799723170849300850353490672933375200826934003327797879439051197517955864077222612894178433262907696919489917231646257315589704034180360853112157832278897124742820366127209405424647393945898704314147465072011408176957750250791543245015955421374369433030872763621399794680963198447666372139135530274698614099150492633067731179696912930171071254087787287129415518100740547730685566369857349548960257052731853818189694018451248539814930777955045153538590866307629686890838290469101563283078628978128246361519325866645120616271893025838141220459266664344062344253695988704181719575894254869905676208164902511554374290771118074314738404492364364422376753875728633354164816359863237731173596606836900000761201575244676100869396567075615856031756357471820168275825656534019320792366475552318717494925543283207560482348587376415173239554722723821184615841124452537730905210855993098617477738538837926382258299654976267446092261717873594244823907282787337580258012523034110129217457001116520514817398094871328940812479624495786269530358371706280226180609583063836740080363546159724680481916177944573150997063863877663901444487602253958269451550626248791165315220254650653227020641153939758171792774944342170300149416132819225876560747533721897568659436460752965227382860707843582656018425175811157379338758930136128217581519857674956439073319931767185701859495645131093410189566200097840512418148201418905173663027194149192904360022550858818429175751734991163124875182010034934742065101732198202476475879423420376810990601652335240823897493734547271386574121295270621509061303751755339305644813226908686676979036158025008524134832191153287187981920554838483176897225357541705254806361453795035070513221673260559971107648391884704479309816398009578601955229654976646233292709485122203557133704159069386669344794747926698741381976534123708850063364702701879341784848553339151882003047348594262269308400910847992130238468727259649966184942732469152602165934402343099203520320812559139257172404689110053288787565312944789883014660722003314285919646997346257003754633845813833098430582634958964119956091296496843271887355748428640720951996039590438646772323208758597611458453036939794964419733029680490107877021500786434630606668372102935706335302460359635127189124243409734337125152131469550080789980350755345566715143405283677344886751160341783575003482377729067079003556129069113407101472901986425104397080672216348107700113784915668628548108936886749296723479572290869536123364930070963595536172268690361800901975241228734374931070422793984898448752043176876412137016110864247481734754736471929100056752562066005785768766622026924038727890048793173399793388976140333175493739519441867745413616147933108871801497573718813800779984720634836439505769101816412920617035244759337193283364997580553140442890851337866154147637945442243626372595439587353327712580886286641404365664489901244504425358325808690126558310836291246001061895020257965855179465434324063916733524049040234905317658359198399686491554777119781274005875228944964668277913315865723583013576240794224056928606984534506199051758639787674809846527723182256777112281352241346012559861566248896140686109810179080654413195279621186813717543157491220334537592029857280615598494959697356702174513726700052385001589142649379113363194046745149344739058443140214831005136281295070059044338894416242931049218200557762757727365804051697510622855736617184321473627085593190046972645072764005733841472830714501233886609536926866772388094540395507031247987478306381428015543897678251371722972886345655498889329362123328230521546330078893094948381206884143202519700653886306218193200183288707750687268031177260780864850668827096871771878306879368104428347332082573398952685485219389053387014872272232606926935304829077541259497879342845134911960677565247343687139593040393539762960643559427820540376792125934077644409450524849314726559617640167655014543172541428499466057456481915305212592144883174831582338795625163009512478823639332542225022019006530512775127492340875003861455533861263944401593725046459618697581678546000699826666676737377294797960854500814180405932993703854230100206969913774427201391533875197617930709212140821576586047461690209643945746938028501226785254711937472126421686651241617549621461381495415996677315279769299819313926681712571360121769658524512729197614811357749662665341979690961586383457680980833504717274769133792048943139640772254570523788239251779810024608504088862073917043398299719259920415006354772800507367035483632655687402668338220486130478757238175111329736439953870523013041447276383426045666524585626943108802378854536886140671666126084388944324621624054326040671352106560517214353544945681662604679363785485186392224736656998887720618697232857106052951223905664316086321941958638918680644640402869581955250856582033816538369824212781144098552516641535770753535579062354270421579479449766854828804604594095806215268308799668278765932118507383948987794351955953754678835855953360826341268531205020246221605052661150284283335885880944264952656040890827076099009832886960642847987540683894682474690888729668959697696881501243944894843184223402278359402087633236444953164243249373804494863449755207026708889939166193401821099793835260613304922337035617428979066029734530782573877279811905282435930916799956303341516744343885978476474886747606543113091595299889197850660841997305446765996191632942595338863954450760414683612655945965721196592719546043181215400295189862696080415573821932276293562276765382120500652615149637214827359805696288481286999039890686405863219417110456951436153931996482582203250580036479211904172477451697088942314460958215723260941866044614166349694319961513279548451202207528091347351319431706673695471760886894084927338200232698665399334338795467267420358650541686144690281699677605685553590179845853441998334250736920128501987599829831635287137886293480129030755229343308102150815575974324814371353339476936520293392835497488313114916808558648677645822794045369969754014145020856856556809032485800399375529001078250970769015698176582959086719243073745524812496811704273791909804853079656881082431043330400421526690711419819176565562812433879886986533861107887322265319565559330730263517375114220225146367213668176958944310595962494190015075731992040605276784215154227243981313140725830063952918302439367068421635910609911114398085693865573779629017169248603537697706135944380418565435170734125709396361588942005086048493171208784577460725651442796149196675571827028852193632908610907467204871297656931500390919322859595961377145476973416332039579648457155345491530325030798233764735358129996956119003547076281595676667877803112066794042451495070447999698729419006536879773368774531164984723872813838516027797897741219568521668701193026363875581714682827609156545624491224870063631337336727452494761120169193071334981134000330777282616598371505522714678569912568341153616327579157911559921584743618654010242480032272227837827575937612271394244428520536361437075232015791060486944130697562510649237258014434805003311659693837755669459411520095069118989951891063702002489375376885319652572230246869697414577318268026405312205299591831504605324763515091917692053735410076276366266036639276837577997412421878304525765224463772412981376806773548711576710651125228707952467318148507534070832268558512886538636956064761391839608097507431715257739942196607134119933247895816944470982356531164846406266767894684692037330652907782548621264133714374410150355672947741924250134158651021066607263224904621975096051641948618303225530131270902301873991158966642686741575828983457514416037932185886302454326595714745204640817185845154229093928486617878036698455447224472240713795055370739104354139541841692346626249450202263918604338816810333280501430047043805195537521411512603689549904462712042761449276271902670771006204078020062134844196180645104709382729445148417490031506439292002790892735229373186009408954671379567913338428512500948005436754007682910774362888570420406239875693399530023706922631520859669584088744274352887901822223276347555916713779183598022431066712682011164113973609979340835742232851273204069257088139542427688599880347596593148180144017320790670918587475767839252166860040941363185984867079494038685681666630883627065504187350257979585004009031152446019519419486661117354515365891347663282834812808810035313646829331752828955452628192780484708775617117625891330635851510493102492777783203154005525231648041945016714673687853140076859980830766190402703920960633221565250194641558342522569905511707785213664436389918307757568276969189085856556343697449585415081483203098013115933155557955955427735232125502096511883317844198244037180770482239569590764639885524750564559721067327563311919407189173490306543711867183182540907089969902690820313067417795205337125367987294452812340396930928893204908659161705297818605559749798320363632414847801022540755958572854022205945382389583133418335736319747201332553426021535795925707443569774276035684024561120091810573895062097968240429580974088523556242881526142564083733462806114305199377481404361848983868449725994268226597310899074340063404807780608675616512913047473677323111882739206349927692684113085774067803476703240659675727765611694525190641004123690006769789125525440191194450158487588770628414006939896944249719316744405660113921874555308938072692763598333182413841588964169715392132766081289216518953186678210705672985188723737689900517873224652334027601211783482069536689550507771072848303545656702903273949306014307988856787363577387039293882696141411949369916432400500082358942715550745965735057341961380553259987579955596263384874029944552394171355725207375464326433697783507210840801225093788699875077322139698007897725496257240007158776420504096041413075515841355798334257085683142092038208870439418574736106001551256693490797147805692001728236168408201736545192656765165319785078757042925030180161280059668049812853497970778628442009480690091194195287912374599701647468831814114739327195275216140720823983038049338089634122327696402907448197671471757244790886867530358835904764528160793320910265340884557279913396547417922435004359724605545485336812565237083312976651002427391494907838989199486767408700771685172465495236182851344837290938987546217909688292239370458755970604840930874098357361167179916227826528095458282355083077838130292230279766671329437788816721772885117486129966581914158045382747390689220152968702107882823658867172366755068958578875130982064092849610342272972689741744665020209936397549788678488248635385637201633392444177807465850933202577615177312938997808155562691643281415511905123790188771486346988091982156988739944220281052723878326974952818689509961359793802581560098049492783118138415917794592664655828499459940749468545111102201677002494126618144757439325090805430416533399976765544211230719393829129995853238134004358355784268822192509667398440452439021286488743069940432991608446087565642247927557348493543917286976577382516783103837835946442657752755993815034949578465829046769236854843761953591416933452246757464626307307684755800125156000838792882325728949445211787741185093631419873754903291547893487787225173109275182791965320734422408830190543763169196660720203824145235503121005921359093547567561050025976060809639701550288542806121214598462153795642744634288211702256151750022301376566930931530375525824310761172025286323907238549238907596644978608949218334979779357417880097852988948783430979379117165016091888019843281710355428089962221648255156012076891904142925704207433319377971571288673189217519217529369751468980829082082154677163499222826248144895874783204387274833193030162185370416791997923991563227907468121923390555969580963353655069478046578652727875497120322319371991464622075259587670090736251910907957904188853077867528003061198286291068334527398450253504004203183788010562281386148515697803749803687214549749569018464421516434815208081515205866433766223963260358368376156675068877807010892365873288887938221585135392197119245503532108114335933993776414097991007771673605715635054188862995944033083588067865480434806324478777543226519814277461239219604528893251513340714326634802707987158771471324764404213343931958805212117274737376556383573358310903059018753335767701736652278946800232721364744571437482544587737485618241748782154613503334736791209158620184001650014053867921049310264754508700722386976885731570813824643711891335304931241013795679880173766538752002362549894238662857067891958647404346220735560440840545231805875660458111866241626916236748277821560296899977805066167149900387066259407485477202367591399320128021817715561076077911938544945973168828710773684043225214645165023561325784995559846989767518301846224839981997692999396287922585223922191204686880383181899019864413508495722599540224032940027771893429382775063743982868606910437653278313704532965336869041398877094467932888928441929752555964855763629242030449402077049420401995548734843698027852389159218363796045016092040864746141447375065956592645042928006514616483030882603240790555630481819280573979020731135824401179728740700832843377272790208630059648221935001635061039803809411105209581992365079428936607895971550310474200065770133227885816296240144205440153639951234388400432162385391868481082272234073054776367575602433314142553687736302696206773637747403893942252944191198982285615914860435359412814439111801996909566848645706403655656310392371154919469207736653224367444945076821733685889234627487055423724376727750869072336454601428570147418303977360632812637841893194342956811634149977107727757060136988265756980292219558594388043544116650922427454920330663478235685017533502576747051921839418675412831761236573519706776166372184607678030694644694648550106626041580131693099771640567603975162292805101321398189802730307441841782964956158730613705055208083475933918033001927005478725313778702102515357210525757899026642542578356263161404919134177003631534438336894327126154470323434873021342392442815869328386874599771715188879376699565745958689386558414652805439936424436897513585402211181799642910886312911604603052077418866456217644559142006618354275271429623137846212780142578611299038733435975599175178549220621198272250619079519984912060573810198957415773323614264285214726643285138602293291767773847923248683587634349536503454660703898818872825758452194021506738671177190795396105777542285425892960221199898764437772163484387024870266186704715988824518504687549541421023083793231871106437666011567129581121989250264216665618093247986934859718589830792025260562750818040866247693846910374654646012361320597098148551535831670686977198607504894101767748647940713930547347624905399257469692981671571750996769773614974593144234414315830869858247302960951511071944966760495618066158557384855292817226509757884504004566068162164921350238375986156085648826390667530573185387450505367152990734324132025617295549692690296164612872911291909039107088837371778320984739710296864724592240905437771303352212565502576499031925596756371483628390587457664124013987229257989923129686246674959668166197188739085229701366991783832294346511317747052182012466075542211584450328650952769024511612194431489728857085972716760617967166464906899438602385222094552166407552099641551231494437971960757619723975058455946715883172310055665157704898811018139202118832782850755260225547994889116063237423542376578791017886743767846890382591304540987993265792442552588001941575205013118743499639420382999609121207223378903000524756190662763414493284762249608908425499941694026171458740257560622068473191358485763578520813041695419533715446452792019956692349046102165161771489161047550577663095233243638859132085064872788013427809696844640440977903643691965584135288119970339294395371040618851718528018772425360955439741214753297857617913013519678032679023871047701245342085938792561829328839017318346213804175014475640047998983188279292741558033255348915372032796314806881572039795122582145365779716531740285347613993640944471924088881820845374183506917044592843361152432170801661763997282935821589751149661799886906363092240984774580869735679136034817755085304522215772195633937062365690438925901735845476785526894124220399233582965721662977636523653759219196962847805893978806627020617476828984182257925780785469483266903925093513435897063014776845383641509517359513523995049930610322973649397930647345764030313748646500116571006705195331677467010227301093354176439404464330971522013981003391349401571138511788571586038686559898223734905100006389952377975628968661485221665345929148248506673573531379607090447504536634188019930349974175248930624598362425908644160134593153185574964557804869137198576406591844863651078194516501652878536111298921338034684228520874702735890190418626614291382303430806382564601840634787335069886055772969981407160092300423038560058333388136260833204644089048535618041853385300035629577330360792171863519401185811209195307260603806381278328631787998812490640520286988337283968635229498308214415646520165007669324364891630901532035990604874116779833311406583803780748189247966185792854120533498965978473519624355901765733320508724037887049676601570830329464267923441954818773246464439494092488156779990718845629204537399666751973479743236533250917497755872038281792551550778186678157742434626721723770367506968929011668745258763298114334010191057046454121690572194002170257790907205727963228573393410382461958411234105037044607943595810279766695729309068209953113170678963754027917474139686443425325807231542215655053647147628200340037803819821857313864601058041600608419946037590928513097097184787313628782220304320144702055404022827597756377894522197883075609346274802825208870981979684107204385083474235978756925584644716947431002867537731552053111303696363814214904339560923777527503025869693790425992970955796837992229352332473019506704086693422873868169838207985550139669750911102048488758841227472763947316156222538075159995351613461867167194572300832943721892951672877206443385630499139671307178492995370537528748356996571958192008603068171014353733758132928564464630564572071468522332584224057209302185034351732677412677418520352285631600263803526384697476909836215153955088987441238994471814689834908514161486289076943377717050972672482127377219906264803629067669244831677219053797765811188165255671856516318836743110937938423851358690701718265288267604841534866556943107173059320629073313174631137861043668971862603202213012260154431989385632187082839535295439071288583857383162593564937263843127758075813919303556570137210738971253528871101036042008228589520332867305213107981191988016270586686296753263344779490500503034637855711653890846184564190547813199208089441994978592244216301460594190980982501219025667301211337146147319595992390603669849588531376580789451635773336630572373051990297580644052720837702753173306789529005521113407922388102205567327489191964238562589640391946601381238405278175120726582029449322751131566869266420923311806741875077896511209691511406872964409194940044565096509357169254863703860032533404559093548618433864717931489247899163425027427800933561624547192935096326404000047664633047464183061212875584310427824921477721887464489650299627341279320763489100959669954830984172108022076024290457780944632562043438737206358644332006327794819749451205527604962552165932455854768866123814339920141425037677062047180932129107805479647119698320896076149878047276220169025517510936848712575554025330381836558528133264938266498916798825419310808007411199581272400064126337267492105031065714918574866235344604392235347907858443367543917503323422809230400944163698846276256716690552264001626254053115951120579437381414172889544214727921328003659511109712626100332879791585800014576945277934348293042864438364982079248542824462065878991855844149494158157136374149119199191603552246630014278190208878171069541272432173719946424106181907979931403297875656908753039860974538759570625612912225976592935099927786445408333723564360051870386925104133329197506124813630052010174619566152621570901683193300167746479231683380041725318321719116738714898486236892262077173467005753035539966058273925015805467550273807940872804916696896621050749481013872900779553182922539555572928584708751041580765515338133457762571686514643690321858566310230971556601304169013786041501608404171322657185592895329213859146640729999708759703341033237802000460581256528727838041144347098344247202297653957586430730810663689980350399791614155427090378256222594219826566907546966909350525926976894305236020683802102934664355076825325244732493566517162049769701257854338545733714522539017012628534198675663815103847348380942991453109361174233508737637149221356442912120540835358763389663442812365534998555839473188327379039254487057366400117980848265692852500746765389073591475192536777380260399812171230513796049733629934447787169578557184848761295545482750665175332066942938790291974356094011035887100655151982671237987951627095449995697428239069423834304736287828427687057539731092529661522805927398451889580966027831889232727619307605454694729430838299149705011117421296980687712559898185289810593435332249539441881537092555411144606514283168540125123578282616859794571765704812327912430745841403684372183269610999823192509484156209195482801292644072702755675389870462674918493365165507205928443372876019254821430108600235693571208257006534145151721621190697936986546276561198644982917721712006473859690473279042997845494691827417638946229232996078418876453105726749885900772928846404939581509671608931658607926958702675515529180123489534953308517171031827074208902749489421533735830877139610725885299918353315575772939711105748333970705348011382194302978158533686853365389627388867431506879828012758974511572671299826104667437857962804829439001597410520793168502696170768104847134223103861998189993066396503723241401338796649661556938359767577443733238609067592853368349329347964296964590708019000042664374727930864054378777081916476188588038676526418893626411728555865223573093031021662592759740141540366069297517704042178727172662150296216304123971217890277574313433693722996500491707259348509615074230459957256141328240331100637012690558887320325758645463800617269311917316519197760524962531690205416352320742843543559802762330314076589972464919344017087869102419317457054711255908861593275721350621602687814397191553196648099298251327976114945631953657510993367132257156189975392892187089493569596971475759231002140984580143011125000880635108802797125064391380744237282183826184942699267374713693899960909142196317884656288739867341217993902440856205296781294978670194113221002227720373554936296213213354467149981054747004268873501539448529567728339452580073916838722798062595014638989066214412932110622416589975019716400409597992166344699523004991682799427437064355768746781899792490409093575394666959321766394211789637604136887411404172629685520524557603329921329097327005831657553995905459572341676195642708667670236860749797310665979103742330600031194633228219247946032383479279488211637985483191055468243406452440158877252252352182755873977755940837359263430457118487584921471183712221491478698797465203736282515320089765965258771368088668461269526729172181590219314870366587627871782201651726038826418310908778249663349369777809433804848270985684461338260618852464779651345872492830788285057428291441280537761940622100454195182340762583855838559080552105305466643347033835184309247285158831518509789906479747824848030002016611129654146288712093484052985739102699972650857283763604302570883948003923798998498330226362608136183189482843874057305857653116091976875961649437528638999025161251062293603451238443545631851789738428931658816695030521136342944188899363459425241463507659297228229869828385751245398693243769525031963360441742813045503949159375835845936054971403156193301145116784799714351922712651257221615644999614610644542693999760267429872688864079164540032787377316810563909680384135729230435545429602320418702252757759068009640314536758336770941496352854611773250740318072290303174046250702444523251818851291328637366337036202116353998384830024568704519854529369926536124362358077366819667412198256962959240354666012672736820415427270778591962524181105004221669207507653186941063305727378624940864348180912427475645035330161423209308921471392114938658139190154805752637473255333425501429573177251915297003888780895019298727292086399956881883837712291727277050220733438120618891410891787658912674057617938354584925617098149083598883601783732331632479974695880328684152496046125985333184327528045462123267822311199036197915281036389390656723097365299000939868924267494231369994425845048298867710007235802559878999224155146592959720500002473611968177213633935867770143886719565186711255435354403468842971761426490156697689211767235482631262741688920106316733916929392545288600612314603993192041006965489494199639550262528358754929215201531236630011248087415532836474708222314295503530309893418467401011130153404511153705178568179454629814917887479795722892439798040364351384082618975231371209152225012293983765541453229228978382820275615610173201344661826162235477471873478728249051044962630871602491039284348837347874741190821982264149639240085253079084254227955456928056857899222258428287938101356142787413794204540909674424351251543510008327745610081611981848325856316725443481966403207613943519727521874742909686662717891666899138404836922377594301410161769905992715607474211781626724938973685383453381511143673885919919980310915980748683095081821446755162134600636096404102873560261403484793656422285524767742470908000493993188321267690544778437532469755376278340189550300218891162755832765824549544497439305841130570005450473708122554833124997751547068801030406183592175182068061430323673225120725035744360257390727477960381548706978345475041785397363664581305308433117694503222768710182700652093453190987645409576652845335475833798724964515955820130492006730863603114111694821700536774921655117907579958459209230411403366323515653060489867238983356853730799805907900505219328517647743478480003179843169725780507358651786261210618723625243078038514483456591999411033448681067707963307716242646301046600701683447389919553202604568066049739992754982846024927960505754709623348801590900835474724856724579433082112838942019098028796419964417566763640839780829201537046139713809433331737175690479979195936076048049858654028187278891224772966100151926106170335394039592372756845811242988561807412417307321110741045206394466140537759369523936491374973317064647958413011386560656227335225571686394467914201952100104936497260572867409910454966353575660591291314644966848230114648956482924175555763545998609437018341316283274335771706663295682096523126397178719370133525369059106379169123003092994913645335254586968241240825512740142987844681838349419971659093618892439826180847077909608470160249798390059452503597051708284375111926132428470838732879898283150766430932739674961537599687953467003812095926225797402174719874982180137922844536391003691815761150161544566666700252712647799846908403785524656737567753274941910857440897230414333429615311522655895247117198886916065805204918177148265249192055991721138225339562001282838696287028515987332430184616392970347822176855608030517321643042402205069964577122693677116254464199192140650400314277092208874339004045074013643392857056064584785511976678294730368976193800670857097293727785729537753436230820793585236584244211284350255513220717308179752474878615730322279957169240654985917051753492858558380262745097518591202067342015698397000351887714284602987051268909089315514984112577149318706599561470571535602448797584163610185882820151237073750475490645378501317031600498856873329029514813728671856165946200022478083933163405567253322919412130030802629227973144953822253324027645233317153155279103864634290041072976198638552156041794972293551967637936493175356037397055624346653830867379450483907622238640175182486893966222948108322161848266583629790908401935640658917715631139405513222340172352410449756830338651304527007132224302166642774365451759866059893743879424255945200572442155452190200503098768087070372493279071699677098258801162850033691493364600158111168573210600442642448640325029341205835536314922668784893198468950197168340422368404161784218699667903229508727235823498239584776346750357155972087691239487822854880668584727977036207653486777345932068990074239068346244959646255650861063685895949305138507140177225496819419747275629908464724717806549913408227654652925467212756604095419751826268870882902131255068424757147370463591740443633658458452582285693875295727603966048561740199278632849544541525549686094843331993637159530122210074246317092933313244271780212412421530836988424974702329600231800039000542239860158816166927997953910954858692549362832343773223467524579516895231336905729240647081307446397246852242708221558999406324699874989222926690465502401167767446694884766354752094714848090367175741378985688149556951138606602570696335320845731714042913834789593715199426212163932844176435390963993537705092624203518656372970337118702528403459671553907079136631432432207081609704341058413267390256870826202271761353210571838468689086945432799024226279569654512983391608983629932958515284851996382236731545190487011707050032409824585158610549767984672376934547592641708068809628276453740513173228792121004483668247525261068172560059723080653182010651472614867196325992964605769107812281800898700713099914816772736455690344366886872951241626871674591078985498545513795504447570415327572742875005466195454948581109768507357711771689926343093701636937863546490430550073456026147313356411940500854751411602987044619443694137691908163941328532266968707557107468746527973548117660013679561844832738059982231668217417475861569446544494541541907498493044595745430399943184110426636988254190338920928888787449704887247786702719127010880165765819754869045473438959793649386396395325672164268690896484616692864142195217202676713451093448260456081379491190483378078245312483376876427330302166897083478758457075825051915787577814244092454842368206251338389468017156415242782284453864607090205568893401090322394518267376442627499007833517506925484733787914014033275503922371792298649669174922854544537750115097175097530964329687146314889326583440264980663776814364982955902597332200524537909740523737963094958826690121240453307183023338201731672558994900476363083387100963758618488804277716705558712590732783301590847880699751091275235547027034544545948579193537012673297058647259292011447080922714268508034645509642059880946954032451491366914787337906134969982089929318952610151942661961798418979171840857123459359619001540872804129786965955834117078151482187357673427072639333131709335730702019172557283636032462247413742265432375990986901206404244549163207327732539515279226159822095784899370067998142806022040756597185005788537131382961295102718989113926659505497039262479853161142445566634020616841419154909289230826089871874227790126130727314136890901159273058544629024685531875865209392397705686752344072747805339851997148670109712925342007519723626134587431146730911864067644895442761053360114616839443743729695966673027048815401268692274972830766948533558090348505756083662653972176888546221344937112153079677511620802677267463342030797355127133960287900934515833957634058170227010561314393501159248595389447114858517725674705886968947242571408842147670094005217651714529848045915721561187793314870536281305444671947094500723928919133226521519370367761163420903277197264856426789532785229559923707853813656802834278384991014107010529854848140214479276977485171911835739532122839340017893247552270520698815308475430910805091310316595148373646093677780300326306060557574755159449746176594938088493261205317265769253587588916880689327340933962120082581071311773164280341452034436621108448995917101673225394125543918741771244788785435633612132992127922025518364401271672300046397617305579263284800639176203792386065201035213689322738132695548469931420743795854715604554679017684869706933353201589214094491561292739091721602445871280291311542007294546640305526694511623269982962104810375276119183689781062349158144503245132095800912346331361956668571249358116330487496154588397071908341021698595707693597878200773612675813030095330647717979709580071795416303074895055936656064955558087398624524258422984646205994186495971571144043945926849015062544429722163782566238464067284528614763670922940812463023136589491101084680242662457788409127561004314951618337112467107190744715866802352874054847551752151122170695861526820792305437945223196915226290565104411674671829377496951298887207218678130924151189815272944346123903815343185700256545283117742786034195398088979330495728665511253876548601289154691973871355446778868408084619241970698975998731370750041714640737249960153025423011161635726584150898536322262427024702297933437842242243814496320975420399395325335816750812060022442516329131227860862652821569695750170171351888458928782253630782759817480447023213648765413479751637717999407957459708846822889534734413449131885522368496728670282965444777200613417058232666187366589307049037710536451355618400709578917376694766956210140612697453044839677091818320162823220468434327773842300150174458330706018553417805717136622310865426176024321346540554825690081404272212993040390270920801628171961759851719828650257032939355106079966159368449770565354952647904287564180825482916424750568482233891738150787593993698072355892283825101953378853849082083656662441648733729447024832609128440893771517679560049709409846635145347285407829548777300871348093991140494483754570282773522635263449841073397659597169296243664651679214412080669590509804132443887454499135993683519832172145065500283058782552885242895396911995735349570988896529784809401399838223304304442485570526765571375870741201744036966206537521592295588797978524411410363642587967221879939251704564289365462827359751019388405750457588982114697399128134525530101016663515599655966210711026948678821255234069253547694890077194487568367585096855772436099388490416695224705680664107301223214402926538933598838839638847423390193437853468028472052690689307850787976417737465839546881575576844823988023356539498614305271923849184033192992092161549960754580836845986630316367046040055301874612743533475264066271388279067959270951884994743827962672108873085572371004625976656380228257387485069270417401924252190425536788391649002036335477648529320948696044870220401833010993443232495212138840145114691715786639726271086398506515132915863735158734356805130631690298440428012690164623371386129555081633076673915656343192092762346970192880471962997915892643985971672211586464787510952515259156987666828881964829495808040042349038595385646984585615415940690674309367144248723060262747036975200978242215331908778786679810980781479870680912672021939104868314176139107933943551910874827673159537650433249690326766266123940072736030558084592574966164226991231603783577057311217984863783090912661971099380180410209482432089666608250058793387087250505232967312902855818477816624388854039103200623094350713367781168206483226157752681551441513164453806215814682186745411339636607633636121404605940149881994749141870789058147014056994776608035898186847768710997657079115046289174623357247083375819239097776777358651274695648079804387914743558282636262143681403018132839028670741678344952724479699808807321890173785771101920789829460283198961213300616987845639977208261665764527414695456897555313714839736159170627688117300196020949073510415516376838547631638822197826673596240598152326661420064401822361009982225109665333336126783147914141139764320399228179915329497250636950626660100949527143982120813329163275135157058181201621937110275273229311627330199767029804508586685461357758905524283640163416842958557534125192348948508243140805813341630265274620026142830822648553536484655185208609002100560956318331336041573119051158337296651426357658536573900908959936772723843054421145312006471230144550431756064839233882852115718095445125963435348981769545957189222567389024477439843261569332322308431853847528172035852172840940095778064879296676182644708727147258500467266516657862059665047111195423623377994651415949334877153787940901736029700126357444736022907967002680489471866907206614047941702747095632197409433056620944805533709676774472045416752165424608524951337148340699742169538819401804949723183292400865227859690948696880552993246241078944662275090389345707801263673634856323087022137161735933512227235156210607372657071830901248680727763481466144089174677314303302486627729794717078837511661594266658791656572377581099940641339567154488454979437708242161401156649699570421049529774601837474122907721602834334845436349074834605687645900694469672950000084431853116215073242175086552632079138777057224588770114105267001214685236690009516506195787808436476035058983918008591102909440378663721308928307213517260178482019913648438500044977086694383723736984901989998706223633452425467858224569654218402745067682439836162603243431005779168389982024203188388531720664701675473729446972249965657837949433759904359888567205195456795358971993511270120618735467008650557249107372327981043390206192854595409978201642449115430565340609442495091945941624722584986240157815661756770581135309319853880168256721499670082362816532811155831511577696144589304295887563974372810575844471594968229952662509577381744048753232651385913183116094231820094985399642811045170087088058184712027289767511829382689073526113511571264114643696691682788466455071002795211502640217657396617382061947773914113518098307722428573648137694619466268262273158012372737408092419433107075042592220525721794911034993600234898175677509527860883557905840406152872396393694908196870063425882700095528883641732851560428259214475161244208509411491307455568080586470439415194188886096447721723656594068595748849815286913160468302504889643427297755143030573583191266803619163648647876407888513103904060583470587114513751212155535673265424334631609193947676022255978764525395287405338099523595450379460677561199725487302753929262683417424805766218379457577372197565952920752472660711523604777000746131876062850817140157532692843377061548663497675494378362199878259491866380405251467557117118563612190865775671403925132849097437904596950843501763039949485376690938171417902280228087240506622737671334427531658389403639225520110641959004930877526812830856777246651444859078867365807575830908377865443248727838249293636061356109209122952425639421233931919668364856311048765181046970385113792007773458641809352290386743752850012614189670529214516602898874129610350628397061257031724103425606505227223358378986310031623457058058660330012117613254766120413289697172308487020774748686982783187157011780712758466704316498447424956081997217075212262185670226242798510612687157726907663922614383127453672305269509386012674842602733456740205604581822285164637659776186264118214203291322702296695801253227808179244745792946086454290948727295208810347782046829944842144925709157993344802238083257403280406180984455075526306019178142234332933040284432025620567407978136400444498298831844501919985530715119122864889086450816464506488404080865882570426308694412495154997531332719996162619655060412039058722007965208241139983384075042554941564538137411639186344264034410407667763313739496404968464514998639207014887165013854745225993692063109568106761315399800298571917407587730562818683429145568523369806071527048478925123187690906892217214056557269481150884974123961567109044578047650666004309114260794672328621574275259080003910791609903485501486483642949729255718380628858246464859101590781804304663437200422422579790856116119004537635110531492498473605977048871750810174120056652117474190646744980751134262757435374613052121740657165691855655837131386567311190594953871267038754683633105066453867765644801922885357617951266032931165369660382084732264983112410363914765266183980927028470206655599600583453359255665389506802495283817745903528565685654206137304817369767893842596731086034637518767930285790443979338356928685053616929938189264851893360199301282006774171282747930058798906621465074757433582085287871624696805265095899180118382360480467195559122541476516731782887539478713655839352888241805941254633729365316803398768961839459937650452585140042941672693189835924840687441429920047052425118129530032290600933425853461924952337074028227535992339678299323786190639098445819122194022068902165903451888130966966016351498363689096517376187348359696395936152257719603165889974931978364818943949279825049183864738457000684093442003080808620964087111806387069857371517567601244655566541883611810611098928677240627737251987064940552324718457293784738148307837192768850569244800229823347810289789275319351057446252225974652841762394214395842108599214886458863416404712311444954915082768567704151330103025633945291285657475609067122803339169640080313901553115980922853621021068442366190413781201970482369296528106688806021895793390938565243523510729319726135692424597706159356604291380068544821339669518058276357168293875334567919882517104624338510236081958160695558540660624496558007268643298664453132632015557338755619681892074277321246118308143495959035533157284654393947446400180135941332576461743383153973915129688195745442140389805618821632360429343094647333532867474401878228546477005191285736500618813951021338737638682481819830797705731355968924242077418054936131903792115398801598425972313603300767507786951608924325334737046247580524243744859032527543734734116130030910794518692084976134271476239330973562525274926650808969910845824612281450976795114214857253399262616324114654882004107935999024094591640784636504792485914395090987021165809730440924880912728283120339361562717889421988199189416481017517591311799443436472775417392184684591531275222949637081947003180653425105849490151606329604021702848625920754358814453985413844455842639791536855223865060085112340058458175752031471623799722379495976059897374584022368951162681227838310663505988245027524455334049248279135508094595608325777519747910773882686171052159721865922666258234896470635965016938684491159590840204778715977543305583999092969157406666528942845077484221817422702867399260083357392709796723194860462163717348690044025626329966977788857688615492614976760825600179287928173579844956679504074264284889330948545622419698706413589560863370311660612326111753519339581797161967513585846941520915861849314457264585071226346440006954238612697012713510846277393138438855545585600169673954588305083060176175386755815130166265250418508606725517550104728495633701356479944154878840269230276511813505947300309316126766405668857811828364311193370087407929123555653414064398575939642204334806923605537018380565322250156025816474915942806205109254327008528836328497739940047761175174551877311752464485979527002512021472999291170777882171886213640377001683068245758724252185704787153271736557121868661900624068169465861407184211425666817630382525074162256130611082521809687727179250146522036839851237002701485085536324072345570725994423075312072605714716257858741804155286506648087207561790999118391938682022978420756305846942337671764795894705259876548086769517138284357494431753069318319363582560797378060982122959865673595459372600760972987578812745170962248612058204572242856591184402528002257687820750440715782155825635692301521487128644411362609367663468890498249455006593255985412422676933504164083895965843415670140657519541185797282130812951815874298742662392432464363928369705477485366033901226683245457095136449457180017928656605063244536232393469044697686003633145279312172649304771147222267922724858158993362283904258287731781353825818681369474736714559348867154674412535170738489033749041211649904396043303292255631708105179008661508667562764470860787053680023740613292331077088653931129533360253582062791975404912753365678162773568341186093414087095612689953688338144855953409214938698960717932806623674869794088050002235211085011139331150369188136772902808951612334325468556690760269567266135302606976387416224540423077586991556777799962139975235118923744527109328666012105731245174385594946437768585175525145463921654278079822975597344871655132399280125030298882086017932286068765667371189603471177307516252269607108959489504472929309050777747018313858959923299671496777936550643123831436010695213229810457381963171760672737640604308332746633581909148794786652678374721375436382731190822629783800750599455029815826553228488819156018242489948335057498820535557831587288435154681051599345809188225224404468555860534760714088607950202744331792196170375863621529506490036914485447988348796019607804180995554618577282297559903249389131703464232248851906118454107027341119521385666629247889408183551427045408923245303360000579203847329472495534619476977738068457025724855855062096750482406374202499394429306370596877564360248327583042988200308229377832772760998709598190155979622852908988813651153982836465200428120746989387209666128693876178112544695509110791877760073996026397925626466335773719020439864113212601670101513116716038546022072892357395744346019022317995215204426294629371541364577454827082361124658751714730437123186474740032046481184353209484661020095187684938493619607389290667651843891696538471369729331653704047662099195252260297324456504419577547966552736848538754654915465369694468854859437286225949372123584635568132956262086063718602085738817998197651328951241709829971013367169352279484701478105895579980248937335263568647270070235459907949592733848325204743024419507336783674379045165865494693519855727936123058093332987929284426217037200502610644242662216104619525141756890150825951983437918435751010890759966340409247004037683124057866386038562339639840710547391988744831301738575571150918798759669197661639601823081562361101294848390523751033430432792315533701349114154696506882886380189674775039851744302644423008312852993760252332833739438737067232687462382416954702265579334884404082284913275820428313400332090169272501515124681555053624587605928470338419081639170180327040807550539593905458076679763810737185624500670870351860017185648085568301580424344329388182997413274928450205766192067323294441386377877250556728922410661630434230980227124013081221066633274925257637541313387932194437836266153729327993578824494751814685080300367915467098208786868432813973681474948173073304255372669875728297726369826538543880528735588634849931282298349553608275472801452609267063528792234147783011972248921296763885175651072087627883913189286489798122766006928833564368514899456579204481819021330587556641881202765914471842108276998419538830495173257451506204408189340834614507377849326907742369862319765095471320973671975109551079539103893544792601144068456490206447381926497377898171849630357366347638732585993189156621925570456684068925385220475315184084554508426864390684300940013787486852742436592704145183861019413293544803609649793419158820337752133853572830517646280216568384041324147438825336462514117773576939092711880608092738483222849511378717709794568365909078232323001726893467074037535061310239288043038522152751954408063337339749349925520808310173003372841001356340507929854120403071804418934480179155516184359469709478902634063298710241967661732085073149279751521630699944665256130159165575089805802371852674777515576452997402294472770209606406065156547577216527546289052548268398496555343774350104370111729518845345776782226135589098814455699811822560320004314702840817094671319604060054431017055525566141894930569239290203234194985793350322119329219288469797318485147315176462651887440096085329362351146073768920876336289417823430494078338363798860589730848097317035114251751253843947289343800127124505268040135243481686698891562615043435057087098110647732803572944759351383999183831215048614239657893498048448835987089633021418670670626644908140475173625625077880650063368561354501426220932450473471406383966540979637640492748110167895627284606166523944248505054963674383761992059772949225069282027867860309055204632470713613363023325918561987274608400671644128555323139164906071771938310881292123239818313213833342769180990310651776151328667622679452158923207880788724207056310495671783135442664107969873801502023670347545513893604735896171323504358376561750622098393930558881711935066491006421972448181731565802431336799217772660781954702850345119655258254932914298441945211840942227988623042485576327909799489231624755760852680752791304805422951528536963848411223433148842150999989068347034675590860650395354588593500957609510167347096842689833049272285593229850339644265675027163364571392864099063598725758644214264961404266935804645898982416418265172079162384056335959182531115056490405787798632364812732159643046206716636694466813731026254828601219117455300685316699852819299471953549403304316914566921588384134796740607077385206231817723772160691034006359245517388243306369506426865383833032565893840949780935592027427510226572116095511659409602052795186333006393259575924915733037138835995682414311014510702750714566013726827741021577142693510264856998295423201509614148623168326640216131726310524262387814370970446360924593190692943744753996447119726507997242719051010059505190157140382111350182066151467276087142320276151169505665158559736605293056079020103328047119830310014942514896399749864695317293726915683591435078805511346082543704119747154580842159453558557073926360950294734312146342506555929547075798042092970826657145832589838371859322805636629162574553085071305792445453598724113709161747680774405784575401280436115950474175517005841338672755630748982129321277139501946518455447186484526293751167243348609679439279926257280131187600008475491189749738073023962848715673764846942603069240765748538017669832939842280895792767011136103927954475413298153559587780753525574284051599891522766283679546488315867667817757396200758817193409938020607316220513283776595486768398345771918668482383991502788061433231154007642252571063255819908212751220669146006327729573386909562729703657116428225564612500795432797802680629436031759907577492577862729990826359377742809630007404272760768656322183873745292421433292922490734782132019780663443159063027982036663367914624505591211706833632157251986906467253389920156781476966419006305988386598829214003690059256711373827054246504744049582012803661436139746936040928961593443636967774135748222444382443866524989234631746505774415341226166876454780311190815775308442287520196903782977747407593267586925528628557240133266360620157640838963752015222827381887083119686906630898951471584999245217541684953324104150843733494794871026210255638880652984354855354683095009370009543153436849942522747079214809745358457622919318697268611971342226066709616120666626530876750517212997525778101172919320044378050076246914566073696767299728318030608852544969660756873811637687138010258152560564543118455678859626601656314228641708915942920017553491937509628394544133759004603231938429051366122636213657408943261845707074855545333328458049199654462870918892732892778485152782622179056567824429221106388240869430301302636556536027345635971562344309832533499841204908442184253436733825263301955812118882763659745873914140683591903218423064168074547441121005967433928688380960783774996477147372355197765061951489474680092587194485085916823100759810857743285048337910597623474834632862766142589346777148477556254655864544883709872894187888957664146835534610265781742125606243722936804257939376778851465163301238381899232674452288354023271400860769345971654298946057044109591494277861160580378954783325077176617847612692197706753307803543437132571488304626092914200219949329832729111365084594316833336047847918720911390572641931498730928201991301775873221996302530074005835257714770769363332086907907251144240478708602529774693580240422891780999218833667806863234526455260860557975761561098059397553568880723707908390350390880796349731707501775884638430774384711774727211496214556764860604001703540354904708047725303794662790985866618254629946052871644840812157032975989023578410303980280966886969291641451452795978248162431299231137016323362930459118374036458340367242514530103416091677138959344702146623539456499256984891710031938316251567608924038131024139206675170052300696243057354640686477207742271464906345170894184670081417922565511967985623883301808366955865629676823343817957049675898465740895863818609978951658699465410804832733164352845021005067956135032811085529647580064690137357034076630009946522851696995325566014920252328808371711362568234481710803332249619203371312965914893223151273450655112164006542486398022057653572754194805865586061725857212516671553435268520849207575513937404568484170104338512886025799390912006873431269526434051649941679639360571544604970646469861173281450627149249940919176066969002096692559618542073557101360962020308413026865814312557660724162516461844670540692265982861142028457379010632787111578101926359472231674594526570737216247050890418688080025320104734190302509044441109566676274754136619949033177933033142991642289982401884961117684429833285022239139302109937282377716901051646917094770064846470107509677371436726267472222153514107700192342073305231348124033090709289728916175246946804143431304584711647697764219209875161929065525137748032708394529028312813038249573171796430487482813728519586814043930840968654270986655602608875868592926776826741211901508722250021967511818776495085857424072444898979927048378139559664197699510337221935715834490417056965451729252046148920695423991078390882856518690496631222131182989843983478580518845460730944314370164074377296808568073316422021029987859385353122928626886109839653324129211392193281667677831965913033415607996898751188527944382545932748095961054057008561566855650317109985715096586657360069161869526540173121622804006695768277899494675891799084674423845982486506719328441690418991626061579869646625785959270681486416576453596429588781439033242503235087488075863959627703303999143475886853341388431031153230679057557976188686386499412313667422996278710511478568888597063597438708197126377130473908673928415966710274667973958450797297981169884047588458195705845600486113776000003536566090897165687619918562211919385004986232766776960306018505484204714456200121480850041871499579380148326041853753488947904414490485749452740704328932982879234712506453815815038246381742434572182900957389222264102490621163381033052239225485632182912211550501417783143605627095305778076919428249179033213045006616643894917534723225226517631086844982618511263031473967820564864200135393597319865672928893115876092573960951547445186017714897104358803022041349280091725327199631284568684983112457696828957167990029795172787105777013988273364527613136008810225278878433012649151988000397018139374252058545793108068404037344179973757054078696872900612456777491150483063756168311194937550667117671038815118404898286681387511979045636836591028034141363640393051340745817439992495473901137239121505969839280531264621258543367308835861545311022113475889761648009060235692559460104182272862195537859284228097999507122505030242921721900269663636972710093762264702399856209472351974457832359265652514619322790771902251103415717278951644174099174798990344283554904417090487170087229851671626243424402831331312110281892180992361124836571422830122462206550022811622351711146356012923121764750527603774274947939852856096173725321587488234432465313086528621660062873442820844516476976568761141707321143345081628708752240564337669251366702916512825819672595603119027586187689215449437737015608438672563907001263850106516327270064132106189346970968957399742360894985658984263330073239349617488503993211479070888228637803482837226074445958425564351423250376239358033552588038322485488410302293627814864069216459589802501836001234111312242833936283835642399858173926794915971779932405302845058727544662983817312007432807646154543212375684736752040156181784076075555218985909751546366740499075402829599880344003144870558354209776344068015192556853661597750913584705947157526984726691470435536880847538028960351318670520931788753661290689607546052892174675120140243499984839160935515261531304360629133396994685932112320463937670020723815421571235188882786447962509593645024472696534861320823587441417842632439284917790146857864528630733046892374015938059198591320143679856383772239504651254594660979614738027491189489146629202486807961004230330688945976688869608615035478782796047334764388681635073117298815170937952707979963524562573589720423365710968927760364992969468121572472005160627979158215446943824543374585100376474979576825810187463407070166150846699833696290770110095499256602534224192653040119609872553378362338241216506728646839421594836052379878497701410740742959124605021176841395566238272233390314189265332129116954221496305915779529525872213744121141455869067885420373653997532455634890804132139076855155101580032124783326855367139589075623988837021458344508017489881268604958778075064680818782869438708548683901229648204155026711109130378353304872892910224208075121833003289114052984318677024722690221266811950777831492417990950274667443458849809533160800068019258092048321328291414577119645164881969752805498654859258425683330089013720866917212739020321134385229577310847909194754082843284594064045553472102781106005350419364415116881921835399677910247831589001808421170193879314399318601522343385649681441989297922220051317531706372954029894376797092624905703264291964616496389014549751898336920866995652140091180969276638475811480482213717886478303302987165749149272021909723711903003707933541105506353881957579635898054000764942509368701872442409302271274674722657615768228411535914458531927269860605469068840353272357165254807876487659701312785687200572829270107062554607990898979835342117568964118551352304429340824358849642985054211882990987488172784464756510919043713327522730219021898474775406873743804572328312118186077200863813498774687794979274035930359573051080265746481194316475044934116296246655927738843858578171621889741479283781232598408758035655138055224484753119215773896311758706849461497062971226972188593218989344229838383028170006369172280381478847740886824603797878598446736132462098389120434573234433470203502129238561898315950773167667877408148089291352183207487036207661485455225696017765169033740480994978722261933665357341836512381233761301945682916623959739135270384256894574647281689273116203964015599351366794899348727031223762863399808727657349807339162330078942281602482330794448578251366380824925150811706030374117536276216830323425391250877516104806662782635354918301194997694343254402683775416733666502453844592404346442536511965897845777458098783758541960868167656578006442605865318128308655410710534386835886311338960817843406435075682891185178807277225482953066558694079537243118205169626445381948367414256284561870988458862065591279617969311390694827849619816239490533192847217620683941103560923181360233884201475673809092086311117002071901653366748038700598736347563345054634125819397750774605167767652395548437835154649488714430382571678629810199724918740187821683611548050339840973773532878899648538271903097343451123113757841101579406733330933519970300893523097674226789034141218309286486773771139609509533026645822418199645160164309863789907757255207271046398246754578872758709971853258237688051055596621042683827062401609372839204489404113943135088968353542056693329978960318574212753511804702425948010564251421034351243084293444857605706648464852654555666031422936711941346330524552325678566655525720432273479557104030913356285095379664106745630144558801490745447142033046298511977413185690820345858573035850796510438741083778133912538105041806706216626873684738061664208977346845598437197459661216632620559750707299647245003607030982933920418551231585579180300740039350754070300716379856524275963577550566863736026518627770394473609629936532606468546961475345620139021817179352992482707397064541949230056320349355009161894159047648022946583765386939047438368902661749792891084352551209494766890278348342776837721291788566791629303229887038631165061591842356685719292256162481732033164616179914491332986956557024812781186222482982619446491174968700353848128668832624492677452828777432406717926947355344863486119122450129690232542509531998706653363271422944341975535552647736919601176665804826708382625123734540070381500174371213962128237712173301487536642634997905397056566558542022658844442654773108523724547926499218501448515489726568636456706256307237101408365407584035318998982525481740665327547781676175083134068065858364912695891988640757462138980647624308459367684207217296513295450289633657773703009433644443974650651699319183370781214109873091862609414491667259459015928072792131915889081219017458337099968301534814498095049534600293134127613661853170525220984971609468327189641550326320646022512682835945883643621084700703509026184626478358805088139347738098271332145715813686744613859911323316177777337977322223534732749943910455321585504345424482291270080892759206236014116777277907071936183030546157744236069127308933246406824895215156623544210900436062483632316948209951686715666479552282355273923903058507332719983864617593818209853479143621811647503752723305187904106316703440947338604261802417271773763651453588615914477080956470620296451283746897615365427320543855951446239398311600971191795956612981915444473058016920305921149176899190539605240332272043314207706280744596970119485814593488690806556951012574569358193623024987838478237803231277796134489732935307449607334082897096479379439805009409090591097189614270797905679039265598042283201816704769665795504569261732937380622209934610632273400310296011629619443144927195735678630838629595326469248672959971805212339386921479466463332409857415554295028634860010106452951874386488504698249547341859883094396993410096342830190285911316261265230065195275853448455725190470437060920500566974626702386575201462641019363060675035415720342730124700431098583247564969803094879767270443337541446322449553554985318166608773939402487334038716303887622068097475440099678346414709492012598124823996473352432093057619327857840527889340574435415840645586300358321358171390270345516419309024579205623476160785588277692075449804660985001011975964709904927000889676400803183637679094159154281949140888799724897151999394298293279269770701810367626948146137529795642756234719722819096986149289443853818038136636501210270111041119163069631194160561531851308234581832099302382166876448954245658497801653874531576275933725910074513677838682483810206139073482862647841336082446826123265056777327440620202873314254720260294978233014798969873135730267777213720821978337892676672690664967846715313440617353865470284940282078670520245578252695489516722570935403424764609057961122119110605155173457264173450795437702588365343173500463745337905277780605320689743701074711296045661594965100983477115089244587095113463807812386237056541056744792256087592271344128754683795645437319298743209936365317215238217530071663714817721879407126156091228559324529464564955385980153308048141119154357559938326621013046517029817083366885145141185464665342374990285574936212944662749723595138563191818216017776608111105144888293892607145920148843183697006511064160405333875579428349594131767496763497321074524348005992949608337459991965068125554974663863306163013941294133315340962433072508292976060449562574984003820257800988926280319125819956270334846849395107933491051259130641118819387108612730472943948092780200021405325840038927638653431728152882105111433271042887319757161531909560450300659171251864336462847206929618198307518272975938063899925415176134475412266300407250053518793005983088205910616366628708527469211524726827467888026172673166197270922673596007038613413005491283380946714332597137096465351835942645822354949977009492524631712981804958449074284044982354494194826547202391032201673077711404242803637224253849636597835770870889561763594397326439190533943158122412851675018571503871143855734394354382157317684912564418237949076375363981944477547318290606020585496509471187386974378124135813030694192037027331203421954970918627997418757481582220365839479490470716172374202369820438451587589315412839114011363761260097796588451506267360462102406379516517016229437470874483253556666116165731515690392086957841327716681625070689803289732500879341566565442330805390801091668480628766927789105206353222954102317918896592833837546451482024007889037856739613182317807259702855927213405372843107245932091385744301513682774384859632448126425376885336562185719120868703490542544963645059644206529845121565740897899203160228946582799056491450488045590168210760675652440719516767243863966863579461427529206690317048288454182497544171242393230338561890550603557433652271227287655861026356610581836958233972632255243282424305992309106852671426451683679696902303925941648333850312435679471626442842926967190511329765189178646815885985740283672612258626753659723905958290462634081685271225005134780675530498231046012078281424188094366669551920065398291632690121972397712214513255686638028738234780851046520157156679244636138634122009408227033809744552267739797705877104312505748099964195482332938325411472999334845566311937355778443816032592325544864597506076612601580758585074149051894214411841111764143326318769171309670240059716019930959773720674298591353118126964533413389862334312705646958735332268144366924538425151299288280837545203265282067515966049767295757153644626088031441970904205046617536326445586252407768675539639912047582601407564998383069871157306983482950975490418276699952683961833472881258214345347686193592805871626698096861764212584727982447466718271108929279648973120070985976043408443765182427024523723602380186571770073753278269907179992970579453630908503545054908390973898347142795210204973833932962100099649196868679582184612337362844990154031890325187038382897255155066466864206462153620113479571182825922546875868967235719333877242843800062620177663991850279182172602552525023743845520266035135895486592179589905980344373494518279484367913175543435054858989047689894140392120403034523344164071648802959176569585134158790966725744250997643959321749442375439490967792980820027804990514742628474708697666124840987019729553606343417726700282451975553285928556565469052166266440442376174359521993699581713212580070804097903453381973960034112545237089367309881008489899129381266021470782726458802127685466827441930077687943465455034370076229932293600097173866180596496136824782128083292605357279055975098058508982315997715574744362182259883796964131409953671656684832633055488692927495676434452732784105207307230204904450470037767327665984486345585683378398453615128487161667414332769442678362991235350867938201540209539622833050243058946929567082025753321384840346982435953115484441291378838133665108727634620722408336941093852515127595983254686982748572698586114468297005919663823446154161940708461675746607596100635736105500250662277927353395898325525369897184228670476657093418299196590669893922816560407912942737404613471098586598104390650360204379347000971581737853025280287816543161130165161122559772864787219206605823982460076087546304883542603056968745427684630163536557134720737959904381490754505917718909645229613971530000904657269401096567664115944200157787440256985052622917022562057106921623945974440497788230536591920328508999013847259708119366358286740736516281761933533379670438773744437391616798164831968353299081825903958220683380390598818567896017652671471555823561348335552663220809013309522250603817355252302528563494359797517904864665135469692273063383330441862876430546559986587011410227803510774218570006984869573059528224977206039998353890213168658234513551916402422078772225820893537428067652637812477096833469709095724259281580377571048891573420620470709959344932316918304441899093094408489261983500598159835839632581865308760492027122742372489018765473570288624026630780225429823270688861724009409121665999464559777686365946951882293414219658068471075049833702854942821522674489099816548717204258843282140406609980914127547895817223236706859576461717386574166384492768614552201202725528844321215771157714057783182008774436207858221232407053764394505319886885995391223028259573846748843215752276121492654172541197155821453519418146204478229537131289067358423269264962134975789861261532181273564644982709847090426573544729864406639379157500265706520182731022728177445896623667998528770261063468668565728569272618102762469200410468239286565176585890446066352926888502374661077052644200136662196406003104121806968275246820044580240033863319892638045488746566631029564062515572586442316263987186689860203800853815465756666524949283628647922685557001934794448027618622506917484465239424201101841806855618177603837729733036778380312377881777688511877318522634044995579782560156003144250690049312200812683754623819708338214675378986823461642264142628863738578041205280475366713065444638379643270076295774966637398267283719182576423743508807623772028542648910685199436833592310043105464885549731077292466546971759615473650181836597482354824579370128134924358323516394550952777584174357763305998611706807673088637507294080048018538767703803271516877854704235300204578058127769149929942103740631662302935040598625498391183495033302000070579033934068932484436948929347481803949298072100958288396702992633778223334976424737811806695902288162884913272683101990219786085407730483295099627002807681697574988344613350679684027769480846586519006855992698061485998204989034095645735347894505537896073125617867384472684578950538862229387924222500319233982454735794903198030195290549606110515456970431860417311976532788998988841809631820754452152268232266381283490534314378382690519399924589138867879639738382307049439133025335265383496364228721668227928043125612815091428985244189661581051699930190662821081250687457976783307641168973243659327492597943108417659335060399693691194915344357967848557600254008991982235831400545630931683352366012293792430003499167414739915967980931557337163905676385667705991869264180051811422320966874330684311154566584332238007247114204850942534151433945766633627957725506993543554279985711059947431199440978300719142488591736189201255052964831798376022118028309443216437567462940042979544970514318527260290652677259549194126584611036269044722907120970485466523223491560515191488409978595107418594243189226639851283404527120359065629963927647422373896220726218927283455129551514003560890570554261578622913831522619254712875825576662959165312698496043568828265221649503468059367815165328757352725868910899772046164929919364334836214966740253867023216170413529821214170180406325183428778300672020440394820147092715443048635979277069131298519311380453181122991796766840822222988202123710910582760981991339465102007353528850505940272048695011875693229353170704678922108713951353978330603790290573620723741245442778810446449938162480880813495328545803432721814226533358266069072307530845110369187463051499354413720789474640798188543710286545154223550796754874500517112879678532970897158423775927691284653324922376470388999986687295474680010860429693265859350775343188249279902623219008520816172156060052217478598550797153456360293233176416447840993091608279948881220832671848885476373273473796175107816947785266391551351957610596402992882785117731060401773823486473675415698102980582745852915449137169066570979567612081190263842449313251240134476738477108812743101180650514477398206690194626655514834764337810989604260719103741619042967802935643446057113112394807354404923128139192958156017634662015779522697220189773752388736010825458941771095403220286074610769045671959648485573005140912138136186380226464643240990628600740595617554604995959344563533632830566126800103902388010066779426433111683627403476019830359285628810792625661153673490725329533969244240607401257753036884786954587918425266148939850209008493694173837134349316027942349747754309761385843378103616593494102597225570293544744370476075098964446383693131588884078657079977127466700348445929292776565505613895447004411695625460496317285191510623809970797296680556938816364456350390241984696628079739998766241607505801598680021129010294741146310934580102510316889449713681047830051500024460105797318979463055711975200115699990009607065840990071120899211041835366734132216355125711211455980098852178789747996141056562834024982432129743899979135608958074686374471767580031012598955879930717879182554208935766532311916768671532423640354002322339555920268605168313343712997260362388162339353719883879409023488921801193327808356209740777630759033315629776427019441831887305370094029907089644101363928997460098972875232514802656891163002790585051487842463003164716681088718377526734806107925121494159980732265377275275821318640143190348538456496778426892475660384454172687808544266206350872135551108090734785612348503644503398194996462782716020194394081868886158662055281744388784269210660248430349833152915440059567755068631102243406290814323383545391067862577456916139782475550349933116413348057748296654765480818869610222981567316448656086358724062016702130751389394014752033534974632235838749795444930645382580939747707729562327371028509162747638757604844278246093210057193401537529497885121402898816845985043714587987871449563914574018463542059619097996637529295513847328084496732315161924362271270430935793210867496219028255586696583918538678184264344722236996916428949424762521059379483353317801708425507323614111719060153597153303745423755288543363479632642106366621491315224679575689437788840218280593721343680553848078504297183621091796141608445356291000488500973977679247162879221906277838299303017318027701053743397765719655193443978542818635519744652826202196118450041617274320830459973780637238138796350337507737866486630814179131368573018654122143083128959836324251909315156071711025738835031742568583054821056306483659273752463672647148899309699941239884911649731502347663180440400066332784072686291683218239192282920888312412540316020474532574300899888332790155250837471317295464359511568679888588792676573917518715192214656030296850204905124799227493038994916171445715670884777299109513632514561331050135265353931794909742896776204051113970130694819425286717946567915281003068380907163442843495398816966470740790360829709158136688343960304229624653653379349281270013832083648916882068273440734756621899254651756852374611634276414196665683702533289490478112614333382326528639660363944432718467107259424643510525021720412461618601416351476840062734887794927731880703515913332872338527903800350404320761611659672495323983106717473040265192710895229377079731616308341183879163569883609056341511169229172718896569179388261457042620908207305705872528875570018096264224238960404054857151792900657030859078710324754910511754706531823760660187732253287038590068002777457144504252059419664623994791957918242553871627251887461040404280895319698276759575940532383822072085980875678618743480790484445207224500163286235323308578972079353206868602453084172496052084649972519451539239318767879317825425484385234369865069174973031582239862147024562187940929363563772367168936686692128455764460226077874773900593472309072625932348527354801074174266384842025588894828255521584423632780558633325657003090745516281408451808452639042366141153615642488161348605662715137150387321834473766749197319381342041635227585675707186568671521802106382798296767422815883623908962273317058486369141641806376166854694014434468049246669375011555562932589930851135002320453964420339639182245825165161934410318128780860046889951069652964131402550325696946739714438088029689224454478372663894932194832176582845163088707859950429621725377624844369612823515432894533486036800871572572258810226677475250926026326496478477412141819337251358286471555691261838482402945754120761816330711639436585068037519879079390757586171731828177220850011871623815047279713565632108021317288295021170278169640985599334480354222449007992264928575775207319194315083123339462884376013554914588675058290993560435304239411753991696580975881394352846021778456672942128861552322536331111887698206325374038412518182957399332796665893843921227850491668218388306076826091128645844624135316237976402606872814627610480391723264823933608013626060136860667868516306204970647478157171740775144444235243673025516453294210834069221675301774653556608915444711311912466417961108636306436785016646243468996485588704778765612216896587038366487587653819259061885065643093606658326314309918957634236112823944988745529207868960292819755923815499717402356671910803568969363593596569468848680722177666101599832573138570215085795259395058177129437482587470921613239648716653909242019683938308547801523443235630031970816029531991562620569145807257926577992606532955750440922902691616183124591612443983769957632599424548972045526139950297382245976765356000562156830184459738952269737199331832327952466662650472711537530486499616310243042294387553355937890938808765468521782397714824179943397499758980566844393546292114681610191168067338022514690177693002953981945489799008146953086966568388184424301240719334466583648314121455581344042967013990127782457535522165293629292192326587563408040853731151551708848305335153034309892533424163843421362270193310824283535632133095040495039591872846084372038066477318406057687573318686598861020028725527019351754800336821687418949066852241001432567248085203590301511101295142688639769011277056715439659387900476379623446175656977791218251853169891722998462819305765553235697875775741288727190553021696592499310845082411724349478043396505206123221426183197424280887055559511748428700220329390023775605080431817148269138375819349248815138192457104744371947773119393376301187333364423680708215956979139381960642105461661266128373148500076450427279440470308275223071698519001592284725791254087731849877561148664999112295365079319636366014492793721162337150385217196926572774250751546153829176801761091517962842115538856563127795105413025532525424292485934849758153463645923918608265367092550853829327152626843469524721866292424977136443639533949912787271030328378908664133952787708450016730658296912519078580436021112989934836058514279301055662727839389251713498708108588513796872262819627249626181011479077941617462831990990808959620563170961756771780886306864545137057577340028763743382449954736312497076533273042068399577015397314780292511306168486243044005621585680630000945282164324870259755906799258046978785332739240902804090109301450260509315722335650740080012705094877806899027749888623334099951798358308883749441909400132526010656822482833369619761357385091260404701753306960487071793854179348448429291955828821211492700031989479980890839306707883598526164807271511185782511079204325269186624013992271751294623925725206930917426474144679184765625408302746443749240659781515918433932883072132493136200291042504974118759570751097972617621825788500905827192950224185159836990171588220103553464356921177168450227585293064296756174882913476590133011912378472031354942331345078966664784825071725406089860320276956496134718905728627863943346579647270131077080865989644111057335624318965789728673386385852195305009157777977188729924820560084498569064029184124200778425072056437123060010703864567542806422097119248018747461058765140975917218761583397546868678761624494408254893793526743765673675478360478394018223606524812369930169842473098482450507462761760510001060309466702750738326599203292899085451544499714740073962607733222018954610952665812126164022522132339839029591819167155313120161482363621011770540296557042432576533702914253833436981788537103093406215322280163401692453421956092169976671300763933158736352509502298971668417018946448446186108944071819256623880641069670210822864731718985895219213942192013503738757503163620249951584846241422406547138533604075413708450685064738199895698642635243184112238188115486156012577510579924484174424960001762977042270986817393506548930730975763644641282311290404868430612477012601819830508282295424542336315597375312859606598929996929473004608850711587055471391302188716371092876351940538568177700271311512935978491369408609341675506655919590046687548263276520700998751737605426216311979653531766683783812051284705299347296385890569967651165240850919340912276813930903274224161705260945724467533284350195350881685987047617715854541983892490518897545548018699039286858756568210643285558189483042297048809768094184759783536218285076610664188210982608524598347597608590412491156128901387701836083258687915501643254954814467430873904786680012334749236764795736313147253778212276026422970521121891876617090956231974094319140899058731277442615490729306581441703497059838289515552805213739799646362446350738901189632652414611548831029126526039460223551361968080472804050779869702138681315959172932983587401308607675666729958305320932913468844712691619938032929147749537034813144598997421681103382397062469376102107976755024246183598788115539506163892271709208852912063788325467326735506552405740380293877886915107926597716847930184275031016012464425341929861347495294479864283119183676905905882188232954820455165147876306277260503040305156898044094591838101598815666148221826977821248033542040638609211000188362765696513821925229585979365982685916769806818355446033726290296676699465172995119048944479292246911995520836761364548688512635977762902624049160510397832641248613246777709480423950938022531286995531924516865486381118307737059651224811844567919203839782869378481310044743880555605614571556542089901341483533432846814022785625754862600152120761908640389643121496151717479489307169750465866357426947914730200209838971257770168628901484749072995776033249167828111094158627464154544731597034222856699164938723233842276811088051679373249187849135659338489817911293806678155993043498288582246146119074892781570607687335333698902998925035694146279997827309248233343938362344088117557639449094280640113570741196972983838620947459931620812423042920880334125327847118861727899557200577078525048752747951168470330408994412597780819066644116753898273651560007218892445016752539051229836889991706642156035359613070463453859297458897676787974354347903492051165667226214377995229215927221277051831220872344686445341730330017659992399620895067392791603791144412738537842323819199726323802848931571946583239549142621167764118076296767836881793908954176888660387346650408082372769199071522157187169273351093811232132503771720461865571274701796352794793105859152735999164190557844723320665818238771195444685663544247783196406071537832838081329570907772811399968656041435782314633423258547775124631249323470466226359088441309688217580571422400603672697818725335132633267915508508456383394310889044722664599395145340552994909255220262428904340180746088250838802317908668580738709538191562851919005744820347143762896241442859968198509806407595416804181423104874397000136058514368456112679368699360333164026288731473555337278145398090198021672783706740474613232995923210595185926037309285873694360306980279024114919446362368471374228363075266745596408624402672995295827330545912483664578940948630387833952569915165423444181860427378131693383633263251894502273806627456515107983583985260229443738259890030032893537666204983701632563143858653338209208162807113735533712494928333251480699997845400429514302815793810180015921157263150240042510305936525641320524022424557012668972189613380650666617915343979052059616130264931098262898981355917442066517024391804352682569213384911532745372295343648183026169502886383415624827625988829867215314211412548921883753896436581260841102162452320508411970787552088219291797476192388371002233452930778214043735630592399992731937226356519757438419210307781489357154464676878321681149027263227435822777862241322586369377121478739896963676602842147574576788250342099735887920181397675921394677885101900560941121139232746633801948553063894444083911701670620760637797168930211159151292281023402316309786608033364643002329946897182857067720950843585850567119992758431064625347784451275972108969782479442695375106552111724851282886571298965053090637886530949582724891717434696290445406661089703946982150358978169391290851442909704235331477917816024561390057050401617328093029220743636926280444816540954678186956600764725752856100119294562504197047136460698357607255475095236176331923672901481464818070814235981922383940309346879087795912640296335589130131697916093762683116293387988244201713209857799006022404827820889863992001329780624915651383155303071661936696816234423469799343553173845234239428980304504320691305376033720492284804037178291093183357066396054844532928928411784078058297741613392014855307724616277444953650429864613799582255150465792885457052812064983320172461043421513580758191542188457369648830532546450375091389885533901088930837545203756564830711026689757210323060226986226353529331418373521631464885620140666730394896258157096243349521419410802330884298572294391716327155955234726992351033909014601057259208462723886499956495474507452117759598099325004233706599657586336842391190142572320128618233122826167862650736180121753799900588789368237953814917717464944797658641506809685439449429321749079422833767452494920122337413203584908529717983043446025426280557786084060282490915100949853557671362278039412540969978837506773695311431767477165703033269887420286179966665699041491883627815794844735391686182724932352834924704530636566013495990072351231295023812242117074946218759190156594670578331424515588816302966198922490895357717159004394628897664007509627313857031810374841911505339709259705024232499823630618620128308309426962420861893259980810578390036714425166249711823567652588091391146937076706229606645566750708516116497522300963001959576508620448837956525600793913402864163168618434334604854903314658395232211475951826910230743157905051198347159193108728142750631453166903134046439713816645114406672678074727291268984581730012416781339629794179466145870263922171519072828786817324554104722926066252235209088604732113217164205366713165503012657908948862071007564414232772563313088554653112374415589885427839844482264404558517730016650323293950825073400655407101101443578456636167450097655233958414099533525800082955466715641465706523856936263478585926421276994294806487598435686338950540063026844748062245157555355096714110288219142708962684955777968123721786399877412524256536277324170325081193547815029284065647702902463481946281978749819281675412053516638461873455191304408638046979467315731553721930940666829699261993547007138369068212979134200085301840006001191669328207559125656267121057958846819417645179836524926669142107727893571533083578906318922653797078168965952947141940395037464934730300778583997887118858392180768237609034440271706671500416233329974771933190926216491368511750479231995648376313352162330134802153741593889102279338087635084429351533701150276140850488051527570529269394627191515358931035044251590403125539671151614318517915771171017244524900583511066799160868795382524806977020104280641885743463286056179819902500413314697601505890232535808651544467363356814383270126178298018324279939708734916188127159641786684198990834474092277757919528171224626144606210255550621050030689979703617537232467386798919807959990456509258632081761739444529624060854942705973553974820692607641630481389404405805541566937241766025799550977533447142655343637800987224632740191972519784398682432875139641374069940345083352783187495958535662721694423789687577070920643737384333742396403261298152221580246039443369461072563641699581245983484384016715703338258475168235958632983660534714346973332293583519700037866670956284573584877353685002084300128022387191088200658665330535307558091596402347743402114353652026434656479271356039607752204623333523520320568583618218100172874859227143315723828547412110707158827093183613347273403105045549276599886837448724657515793821704600420159390787309676518638566286624746019190653245091706399653823997416325815828386411769498144279098442825380640615335248675498394959014121171596435755290437900130296561905591898204302633009067206391381600628901479003379425208797942246173881765387325128857920708843593524519863028848414320589223177852685128598261656120960861523977457490893488424368353167391917516668050159094535567985961442022040982294627515252894409644453782720827305499283650247035992814927354783853291681991178138306663568220981499530918921329427815112298853950677903988920578749566274064458803660246613575421790130203101425439843095192523703854680207719526863331598848779002776492953500277270228698288443208928535468886582340423749135940797997761278195523175937710090016712444576042573056892413695162707839108450935220761575933749743161193712941469086443316263600916214415130301520151251267050552678545293808871810497796709564100239287735865626509758070165974054705961955150672413324197359581037964911308108253718679670330154711272167963730466922440195963758519984701919693264031879078049219573429364399949390999404443377306816036877068187258466623789428257107917821729081502761008763159281350352460972162738932047130022331512473653232561230301754583074484682535545077000758016547078302544574505772449150475326535065892338054893963006411311245883806777922091023780400005930241713067772173063327480171389677558388710957926920678153145476460727176358858970548880287594240218885588567922474452191972460897533901049017556564230854603807377516585767839565092573959494003277920931119199137739845802129796674793186772143119506752115109558310606983924594174197143039495568574118249322373790670516558028640312040756139389655343640205044605643967233447353403226011613892396572627916921662904247846605488828942933689864668122397336548617128366998601616104452642849295147548138713835027804415882419181246131895891623025641656951820501715113488460504875477428789050674663193684384840949290098619894591716829607535801567713964254796265610523998925505702755582738026837599174545673786503498284976424043748801067516450104967806070390632182401844795720825592226088750506729971840040053862506483293546786402419404214856814235923741864949724942724124260737214067849206456462354130885709635372265578240664247641736257411654725342208927001509761961640852830575035771296723593068322767282881235838091690468931960121490446312564107352776749574298212223185695771501554782796274937764248961529658408101317134747678911195315114088202558199967756718161286301594843693972175592865790516920483779565004888648954533680727824658403326286990326928128829898096276073691795853989970238466020467001367454730257906018196437876629317696728572325220533261640198368796847967244776263587240413113347826157377868990339678154119974871698116572629320324725336718625233991237313985723503897145196378782271285588900555769592123737100906599524259252866681772856639400220825971699881137172953871804041322131474564344333081962716929534293943383219185380401736311817227364341536582978557417949449191674757597120091500222650825168006712311669680375298066418489559509018904674323044831180941968030643716473234764032407270795129035535693691275254060764129885875221215318075431338932955797243610764780988454200389402168098454512020328364633848971768014232839443702795347255865834290276455147738670134941701589525153939917762392804220707850835137202085962641481874630538762407548617802639309617564357832171991039550439914616255765658746109206749393762768572556856366076248177360455986298375437291763899366951138172414598463641641463801236704334572093448445596430114418616454951695653987509207637355463647353331897432497527450722671447874399915867051818087183872069155066203669696472276786568625155781704612598092847398115437988725258784886106930927710256512512130308935603105446788290883723917065979171908093681593233033889319645825327663214805169855059174142777015293407396134817290448445774338120726426138078437144669958910180143554145129293270254627365720168148858442020949215527147439711725948468104629827473239462576111636603853569842506694171470580622325859934583070323660786607322320051372175411415448012619161411378605020564173514348220219878939396122799895381010633567590182446563183185937882632958103031470517310720155699909321181342465002314220670762109802541048186740203552942754519421024014688499214922462754835382581108993848720107800137660337548647197604040736937936083710182902115495229375948810063004946785411219898108356411416882939696996735408642697026040224513634322067949886510907085976076686402356672475459817671683746227490777232344009768393011273144631203203125927009150176106476716836628174927359754218684614500636118006272997429768724834857627294071631380853062687692158609236699418259315352069974226944717787411380594574469865576037494055777372944776501283467012016616423237514937326757787833201076904021510187985210727278731518414656199820438585959480547205336551413859083478275344921504664941870261073499153317454084338847615951433749023382984883831756835875942415818066596077473078265831938181345580056130214124564978770717037869626056118089699814979591486237342592263861860337662179144167471323501790721838824691770600678732553125689544501244496187779642239756949091822742188572763140886845843393760629852189387953533672704671058315344237217292107993231961448685330226127004735179654237054625283144804302519764940394844010764736630742259576341180445272830238058740983860474996362471999618072601008206134294809641141241752447877061026953295523601162095101745670638087782043517751143282453216149920447521007162096823876727189836197735414023441254047182416933620439935649797803483836074756191928617054989243453238092087557852700378629417727138372557426683852825172297917505224121459360651443642682392547748747191188207212960340485438344529940372405276211869848925516781648909407660193300817664005382401057894746114279261231960347792830228326852740973983523267922024031374554359766378109022785285720585335186799037264420028460862657389903062611613911122981588905168206203451411938667967010077781120426600656088538823566254013835412267807679979271691979982188525308820261337071821049480784140831066567612173645712655278679835678245301351607598595628591143379500813725682493069021770478806561642479757874360818297513087623129415769336170833803124410220114115872010581778710317903850584071202006993274571616137480133919788383873696549831848319026223820879713641012362998261995758402197948282522949577758591118565814784627147299787738675673226461477778720995174814463870217081175819626365374044526943120271357864917799843869182332277040378628315920763643984322232089870145759529247033925617926775441076203205029172108818880108368245787875352155031529338552748326915563660542651029188698978411932493820636794375456663769314591467575949927126784546729287424900056105700728885331726062169702414746928403742472753882428241783999535157060753894295450813333038512837201301039992245407654014032986763293823736602549109197038192200942705405925127357685649265044949711727121206235419511294039297865326995279562278617954283594087842485651492503974991624891623333151078454242494972429242512453666395105848843413287727343943812814676415373568560211714964301700014670832330116400327109628787488896634195178135000675984611165620007365053118218522979057684169747344208536898879739540928112819905415789692178570592809583503394316925669225230475905677566793962143176321999500520767675307776601464964840535149767204356345438945960871165411412672349754990671263264591426554752233300100610167490204276118961433479678344153951306416733387281010895949460492368493184573403847363159695536644575680464193901761524908785608459369672893111915785331983326509567535110265911068295241470697509102565553465651117344206702371483907617213003431774628777187485611032374719326968603449182329076506854872624049646050909427489434460411122308881118481606202429312517177973156542711863003795294096369476739887813645447603310145535300677379190475068951079802369831353494195264415703772460782969166336241081835888708655943553267055265705190812945169354498204005689432703985602200424071276348390469707035071682544209850518495021467845857640464137912226857719341581724782576936107953921466439599433476126514390642519253578212401836574821666943869201465700911140755715124383059505528030769206235946219230404978300924377170673146835369143789935085587865570803625933657224854711323900335470409636732580261814179293717874650801423744360740265410607079948207561185530792328682699846509101567777956386301242939761642968775887344744643954758933391151005990573014057010177401192534164271827475963870592016464550964686154710158221652460513362744139026620289989945643005125476205485557665692752182118770167445555181127724785204501149624202166110998940652723009450829750193830365308042828806531134309176979242708432838135696241452374332301617861996944833026797590420802825675238753841286151758279714106731193352565345898562646791741359577826449056257077331122763719140613304419536140285035084070575239519569193192959322878215231934647543983668142477675652397979684098084697844556413741759445378646712840161243469069489572806138082320848045699950980928674172209989374823257588103650815655131626924029794029195831734572712604701370862841940901198307528170417092057660212659039303466166057174735887396840310065048323719118821325502203425040479340677767882643409266053357546399821550420036968044755328699556685769985937388957907693233200126562563926476366377643500092329806304362854977477050388471485166687938746779324188177429782883183745088419754078443373229598167143757157414213827718265023642604466320446222448422325994575648452326612372834568893997780355960375085293589391630993215263869741779573964010113547135061825846604814416331128673098686302156432763762553150972014906162777103704490645942413986616996652984238443011773029385916988429192044213900401874961973095167541672668699563915109334145620967106909619897957823196302853031744795053463080335666339180359694847508527360432333600910417619693641464599926974962653626939376827188651053030294172542703339943222622619830155919833700383037022599266116573707017629327658755561741759401955576021061581503544951942983054788719097422232975922000091574984766676940863954975903781161669843552266179774747556405813763558862478784163655745137159979199558808624611008308797572012692807305152925033978054751375660418439544766887604139083516799300957150962235872216688006294490956199492802167401140642184551470486249261917654123666794083688737132501393624473668105274181912015218464661147796743814440079971368522023786633417680840880790868107881843786445880583989342249074090660540807744966544714055203037708843377390442701812177123838566186491102501875477559932068917267523283475881764902365029401521529144054543541662703915560852947816208572366742804937224880185953037295028517201306730983795274428945562297042706414421293202550409181779786184243706803131260505770738553990821429219470650997660547787589491583214374400121886007796417209165550563990318685887883161361898468629857789266259246203067201518501142440747512887973555781811585413754407574779588002175518873311198065496189090596850580608358327733182203588148725377554309407843231777078192954253678214901054330818539426121077071306352909696169662848608392372649779331884112712114660088764658229710552552518211931878369848390468508525544579982883807052620078892894347124411779537260860258855666252330701159477158488301091252965923629035663442147654344450527987467694252736634327577015169285034501542362738093992734908878881524016002896882868325211155544476926108495047646867296386815654373851784223600737965120781728032445176598612619808812888715760904960280150284312872964470519229914677833145561429513805788106934818860864366666228801091978823778209473055568245457787742622492160036342405596506155467151015458833061628443745135031386490226995702391871348496648653244362164597889195452597318003405974113717681119354219474277259271919220440421061628862903354130256108854359901458780365778705812932332410241943258020199136366093122984858689677022874387727693820813820822906910783563347912029814063763105074072345509196803980792546347249771904856709048123325684169271988344620303255931861540729713679330930221058355745028562979093799542192358042554327349066795522480833011203222739871927643111162086752944003323082032627644724566551649204784029772705202619804055910776215527126796235871530359655144409684494832436783920931521103515854503713599632836072845449988477217744808881301118874330413939153369775035097129446711451198281201880626657635455656542986164182744093365514167419319941823511744024306470588199468935610919342860379233016971772607129793401421045708225543800725958763605245104449250853648036417262956532868485024744197226843273049451321476605613418302310734465295562721450082762361186254834586267138045717720419249910232662222883120364424342792774024629770069698853686869308411963684319849378406977045951342277285513456776059819094623671396403240872499198181035980343531025805804500213816552945684455333347019708155727725397832400409310373735026009881524093152250907456297561601102792627541403105155198300819735257650556859153231602527013742530313263530344054889935604526650900091062942586045914800541846164580564379164407724254121895555911758597659966949369901208924156463389137441156190872652009184011655929578256953774193544552738203831640088810351105192405412206028141367729515673275520793581064874969187029594115716310849370541163817933286495981488215494680165879501168082826113067391619507537012338283235931463749354143060452015718401692695889678698669153409252030905429880173550256099536304282740241422467601032710536431355701404475903934106412817997534975892557140967599451808498534574856318306168730004212716859826457871590416262704629404453554601984186657068694299270254626450875336399698521179992109103123732214099527326138423638367346539185881183269330604011235367204004150857218700867720042224508496807768656898851141462087812728003517038601751173352287418222013509564592140253203602668297943923830013388322466289672994807280394785615940746745900498350734231123441881325478643980343796063337516410104793556030249176908794446495005557022880253921680835682138572272935131963295947789583245090539561765968097697806697639422493017493866714254557197680730114838085336959321344752928890406634072058810640176724632140207597618770379871309245029359418016826180125256630473973301208466676972103001188934881069649529941455237643376985395040671230790274444680868462349362626250390129053167230504910670642338324559381322155588634249588016304524994887978933791611132670865954861363014385039184174005396269201470829723893071100170636974373079589914435340892411440342431913066368559007644012354345662159856881454789635824684995225135504851811830044686762738060965109690190888868755898688601163186264132606569679880943462923946381412026807002300175033221710655441826641790775656754689496890872490201717107704514043399160934047439791505752609263619673911351721542546537162569563717184527965289520368309762750162678360257051099818300135940000376811216013630300849246140614330978111363943138037871795729759244369996325389360156839122190136069164538493515509323847760912916599457623983768425031812710973177958006952960940544927953521345109321128698913325457263351963523345366640052613876606519216034029057881637625401814911383280576132283199068681716211056040298012549670691283002262468974521690195573812089839657006479336328344329259827428767999606426905111381795236243040396942031665944688225439689703311022553973835007753552269590617329113250641492414248021403560897459191029772144569357521507416720320047425901679479767376512299336743765441710345433782353955503979465801777805572980804884027853661779840284411851461702317846720103833190122287221942355927079515893757131355132548352286562546455274236879751954717607828344041579712641520145297548637318858741851562438253020707870786479169474229951029418588661957761094830751207602363360875216429831493061036813187292105252868377854493319189898234136307853217549801994919482663504908496829698631913650053018070118783690948028625308387843605224920610113586034037646427474666832551369781037961754546315203164487357782236980673512439852527167459839103312063021723057452511704278814923962978306853611509970558979747840893039973629898176681524599878223070959880664257048256135695458266489683472560181861563929041071783741805425961715172815981072925386020657387794409582392104514429290785578234795892077131546074206151989676677192993151398899352842629082888067184970179132826815810024499275629386348851742113627569939817263771562479456934468077239234189264934194374988750365874131086475961754379196477734841969241465238357210692770707910424246519482818757146976367479746557619712165044310577716628118583838331606927274205427952795015093074767142095016533866190479242520695970051448762743948252392893095321471457467483525959663668695759971217704769935230287315591775711529179135481128256478762504157014508452012201199951670366529397198214121808577660835480575965957990319390661465648985520471802226581434396904615805218236622765260048879997370927439893935735521156341132341895817565260123612040583661623675365050531562112877456253910099776342797313695273391607583803837961161913874982019816581716549757665277882024310799972573239988637240148726599100644993842446804229748961750982189588249588833582944166373963417522039614568295181286251765001698870373682161990056895825737543732003344104018239967457921826299398822218441544445197345796375147671802960583721960095079586894981338018379988957686440808429502558076406915658055383290652508895369668183907445619009132825763857185098049239695855973250388365701450252209843580125008257842359415847688652985902421291561277485910555321500237088904164090231029625730976797146484331720211859851628946363225760134427784885173320374384610713071608994137039820798391720928335092489032297148362299432689593022395507926298944355440908261355279333299405762419669850626039214726091505534071469326370732039022726016692118539266702653354426413745373990539770408598306783488523857312347621904240874881191921018092040847816121208016732285990745488973269903866629629048307678567998145220810126103639667606604995885393663003709186168208627238721029016823262556118497655093193871673387529805754263615238615096562380454164638415021599009554337523092205805349498648282925583840852421046571778264154278651737941019446839004639256419703591567890933668747694973508413387972643049201699045946270372745765003959893411661531420907613099410377741920922504685987262706236685023525078652363091918825465292679170066568909027206742187102645096314317467680396865054554280145523023170601269848282077442533928533687060176211898892579205823706402237534245984877734414645514600071076361299171292529177792794776477080707603442942274701538023238402861463044117858446028563343463557723196474656485826733803094624264845818603312231309700687104256815926705011174577117775901790344037266906486115040951812984689518831148219567633618589424858703031646556157472045910897863202565250936869107173947277367852674884292592768346891120041327632875845140493159241578112440407530531963280316225932254176201514023940844195774962179559121793445985636257363167154133545395426868637360188801721458080769946234138483017468107147975686357014228983554524185618131985578408018949254869370304572867219434313375151243217752216444934036182739583934284330713476239636815103504365614126581803980393189676332176465010624252261874713387199252415005853692163856799331100826466097249899614487606591647694628824672741814737082727956631662487488880713723174145115913011573499643999251898733158793155656771288852953001087519702527160075471575367985223423169817927553078012800981561668450222353676801962886598442959689665618192219067451595109815209593990297173310412689140513776984670257901063975646516940061234714556324254512352180549598179799925437961840235497594747092993972745707617131400151237381097644767905136914601381991739671323753948664339080004534944947986130483348454701778963494727538221267325624374911035128974560221981148037346336939932517314668114250919243908876386655949266324817625018361780238924496870227117606966672784300557048208128266007443579815525200629121966945794911570612831484863650909965838943520430976209080503658166287579112141978959702447731288642962707743842596468277745804288905057878851949713551832315543637572092848744265094055716867944193853979800980822638564911221385340551005148725417272069022006602766108768580758245184567587095672749950347651149109029695515961807547927126603535310676592548768310141964642023520766869938117504175685590868770900154204501093101900566522506760324869369206924226156802372703322929368750376521704243709416524523615832911105800092263585277121895615655434265996759669613568544702193776394838952888920066292244684357784669998831043699989471970629854635683618873949007365852438738094984562736830082113159843621686221704816481702372208134187533260369392572853372731424820729399379648414861228772697117332874534950567668167216275625415057437929063483523242030797698493893854832669576966791811139286915598803965787414642540832467592000316082391919683887598311043272242724414014958308850382261228901114985800278489505277611209618099048677084060130791992534748854960010471778222144726935843118803213834415710462255522318617863609277286532363837024549402906635776345304304656391398650732982088840839442155334305057715246224761000336205955875166499647432679441674367848548430332056598140280870711752743379559048044567539801761297936986004789051230850875516154956467774191285513020090770611912244521473855143689798049103297907933631133814483145616717964746790323643287929646320110806043882671876115423845357704221546133675382813689819885403046162027739065987776449183713539821804319207099803321265322501249653414921526299251831056047881740148700718714215284265044998082933604386168528962364481484702604599915875380737657704341101908462462630706569407329201218626529224938668578166312085475197788307890453850737685856749114724483796199548156165012248759501048277171839381503181910892461455416513610325450863802494568989126205025937594882650141999243484287818263468709384784077545098993025760046799219051548345651212844275201947403363824588488374879461994987480576856276067570178266784505940176046378779390791866542185285273722547664890772626277620944721487538628164165438939136724045862374507251303448060248837405353546557537853096452724869304881587588087959923663293555265316948215664163496070729311960543821655103260611432376039667793647946230607900798603480231504791719791673870736619337015944207282331783466663466700040530258757154459496790144015566926073930644690249938569130840455957309539337682140675388295453759882888993833179742863639565194955148173802915252058048573051080448586690656928927100681085688173440929052752440662304744571082822519820988842981638839828629690287950919890579487972577535054378655781068154437482393240658087055263260533672739710676718642957318326024596696082241628350331521519504585892028048330069640852796043034307079418864179190872506531333016103638284293700807019006112345490658246115563757467269284224226467948893588910740909389702696464845137098842824528170474000704671669900934719908165512595051515087067013246849000999839699740861111511249044328363017828198381790909844131607967494319319082290500658810730370832132159880226759570966927834308696399541217848225619450328005777357967378126267148608793560067299344878441514014306372686707220713392959055028614545964179152099879114777539889552949798409463568504862866727137726524871489523133731351463042435777240282225707315165932338316958101627492987259596235571595176352231754711879809488250201077059255746731307893184300810276289950346288271038816232192668801830625082146037937578135831121492174611675733309575035715690008653722784635908968044872635459992875863253210636447383954966459632174725988870460338556038681303347469281714360619940078031423938330806848526925567266946096651827171874825932845274515445527853972118104123887376973716183749859761266058868538755659212393658816150980172492506065746397749120501429465903181788515031754259371584107379163780192011025801650699267153416446731039377824049173378761159379825628671400829210133900081004011003019685669868900065710701371399109000317670378911748531059115257433987348210474749673574121293624229483767780709061242488179140229942516813717122456159376239744111327664756647670023100517978343520871848244126788513024307241220524182090477863936001529780335645745993401211242831992576668732980827190201383189004850973457261346207031297399564367211124531054485454952321189477489200703787999278752331469547978649564607508207613541539196396688704857875060143723369312215170328859133640018337123064798646835321212734027234401841991020413969783947674972632241356769466530725735868977968332748039228119373389374040675687565973589152223368935671394094485658841961625800465380827157325515924254535043862550956559536403565968162752328462330963591954424778873184129839719274361942076250526740341090644980992248451646236759066299151076595368572585682929235545440496504437328188890839386679489016721047496943058434019311971873396997036278589191305811253476560596355476517941170310640412674207139819688202038787621938006420440113283937747413616399931780706731558513811708003375333196735408257856742281003902631047172943032360364501664039838468322277755769632594248776685245370989556975428734063670396802697292688648269573433744376983635267160972621276143605251876743642718469198976976125028326897997592005206902725314820513586054852882655481125747420270266579695422050143638293367193804736961591673786997356429298054117211738934307784337660798890688515618050108988856089987953797579117094981099866276451476816905811273749176749483282913790223328795539900164759472678747063223534677580165074710973626493596692646822332166953187352522372271978787275537109589733233617161501309920439012369635577755872651739022801125080848932403806248769024853016695097390269851358841787361431857196519691333981363100579146541678085933008548246832110012337046618957738564913668055894782736656659588833788560360313789790645412327543271848349564717754091720239196255372119140717260918953872257451083903574748252958264755532343819889577573003946082049920057168279579367155886172845081060253855255717817595374404901324319442822747983094331238544096556462692310536474331892393806082128212068877754715878733349937631682753741583158614748371410385509984401834443206125548527902474624845236854993388633699043016228313897141512968291568708463673484008795993493411072677123379886468497489303225370304184471403746496839916434320678310822907485380366449284441067078547681567612142441227967419684804306211980237576942051115899710508528963420551278080921232528633346904703802266103096262370102188041141407682088136282308955466290361686045589603180056681519594229493241542296802686262599527081483473975805232323392784780091415155216268045248387427199675656166229294337483976881489128324398591263273847718780478047461489331626517749617908945437340596005691320900435448580879078596848450429523802062722853433601869404925593703740824598720585882823917630412326784701543216230304711572673543494508296162627737520786863567072197827673926377132270042466370501865324523270684896839238299626118838405815416696655973821509080540923586808948761978534612727396663208808841235424534564569851116679445657768306615861322070617227489255212901050859928959630881219408364835890645665595193394449724819662076131366636482728143466345617542440081904925552979765793510866073291835555646857793083953249248960238450029439205557322386849931764724285830606483069325442106003435589672973795770215149323032742980270290355859098909341951827326957088714664909251401687760626396806979143827091928753848336796913399339620052829861556859191491893050425047226571275261541404802961719393480890231878945420489586864797543575134221429456261994533777390069927818415666510286104427308359962986529477622423495596761840553732601291541094296253654357390504389478586057810155015447752130433118072149697675081798880978259297303100363892962237080621923792874793151804284422557472982145118430650521310040850387619346898253354207591359942257908592088079946761319286668180526635518740919028374527106924696981977177964470868630537712971439774170865908317055639465962334791316183601083581345644706667328781750265371604059542304331479614336938117935610221052465671663841301968420323271963066609895543056050876864403101453942404125590303477166916459839659563078513407458838687323630401344837612102570953657218779494333043188530448803613904769369773563846435631639626040831851545893322082337202114952448048187693110337756108815082004675893595866889470440276491432577461900236520375804189932870392812244449332103570899262820548386116593647398414692803008012423828173897401882145207843536177666966064069037451864379045596907553450195237948112018256116879003337984365711927431807590275592192585957952761790636581370799346269279800728848201684487818362989383649319145168721141686099984688149158209426402035800118189213262505506319155738583308502290356286063520666374536422868814081135103210874933562685091967274602563584176585286844712770852414951970739767481872577323164185939247045519740804231460590189158766566362421543181420924392630308576952170413277995480003260119592613885462367449691463934390111422683791989517379701139172435395886239369097726655960823563496318067142870014764923307960316326623137954451247932533915897149402729900524690284412459978671081976646507676421563969376572593600910449567044304010919367177857704201499422734303726158521047752902541417980834999784933801752259381894017944951445053991069525292460700786697308436882591376641083164106551823419532968184445361622690985302677194259243816328119681691478853253228007323114565255197800349219466471038003281366014006881887055455454121186309917282294537076560022203058674132822069391242490609188490951134416965417163900543061808896175338872597498273948364865856998233768274967483522164342801381712047818216185759641522677172785690233480998711572686676015964412140901291103650358572283718904427467630126649401561765983172514036986389422763740931756006152408725158443056654591135394376970770704047877079442850727750462743127191401681946809398143645732687780935865731078071569178881112034543183560569178439950090102825700163850945206953782615830752949477669834273233791957281937559720546995892277366220785415747671445079212685224379005998459402038899393383723285456992768492993910110781790650605993191623061632591101248377531119585822228292080990312795589580731984384375071727859351342635047885535588309033688425029378271706881195514444866904657991408296574414465874795785405073511267207037365270252916024804284005081178564692876228687626022578887389883630068365522957936348639880472366548208549054200983989689385368520670545319472980188386136053026430684308359366849504266351222238412342667102274337461318863201292721764032368099466008275560926362373736145699441235394537326234504346565128694122754717504961364955769836921693323650898467727326760225920207176567014293718104518475738988744831983479750891335844443536350913273131046099598864260658676960648586928975821534803607955308962182737302352502472765259541590140171029780220563518064488828930898817773475530327879212383382528294588250595396869984848081651948778593306482883416136904899885899584484253332218832592116933857390426455670231250557222834581320181363266800954132243190611807944817171716485601673309510466203511404570073973868153277186754059809832514684270431319933379051071976057744760109442035869126215960728813491054643762216525657027998041221691082967446297139246675759424947243691307300476790856999607128350874751998427506110160317065726633994236293144861505803149950059637591690677423848474946692465533979098716763922473325309132762502168922547227135551374897117055885104555396747288370905065945310493272728444973653589306597545391894219444836232769922644528546277358996798413258824219928330926586001356219814243476265932351941744274614387990850615086834450244232575357371723275933884133992632254042627933099407144545333706350950343255421917627703976950455626790868083515637093723765753746692152753010555682977323440274263074888981096685064177841599363482420624635788424806589118463541025004545271941830460527727942168051890101827015186135946302122660201313191839942808747004814021575661168910008919089233751987228884470864393586838950902835278579615435243339790291823207887725623286224839530055890683676418135117132261125131586097813203271021485728479102749851043912814479274457258248922044714651009844821566552836063035128985700105765871280366827837257608116899169861277991687767089764854182491714393564032763253675594152511871704411629218207416239949293138952499603413770696717434232412016586963003575973241662589972671848208140663054728429901585465001822554694757252955865998631097476524166450731790725201368603238257234654193589081925349565352314402977412018451116475286771646218354959538673690422881248134438326655338675921923032467263198052506346028062364058743720561373967462831617680688349935261665426414138114831184961938177348701720595266226803876829144978137108222163361486701036703802296404999963928757119609540808887173791064685299894320629878324591240707557129682979769306109033267823868376622038257180298888742298038560254497836021992796557098441715337394537731530171078150759133132398452966886590221775078783335918210632100363604460688978227684961734834589934879966244423722592540538602298642524419740407228779027407967252558889831633847248302443791379888573887739608943095708496535795114582376108185708817576509991388569920057928566700401154391003310977814068112828219692864443998498923190956066461492869121785027724051538228630609335085736406857844797872744181565369863505827881993736568631422794626356884036448069766884137388584109873182161151006393310751929363756163612847628508379212586016025012714214367064767381040118326911336057802808987097498295119877794559976300729502376451483858365353392804788641284503910807798143166953238067556071052750341372604375232141235950120687225505018122237660792562607124768657498198333104616852646072057957436948700382944581636561650604263097095986393048046643427885455060300268930990115087876328105564522154164013814815713300984129959248580764353935262158687890720621145048894209194768727613224884442137746788764240466688356972434767674971436425130202921572184543244717650270168776230720886789776979449148541820276317350455702818984110659700646288272239258674617192683209514359727959447434985190287729733294875871861121159193198801490116786395983750818148900172853320172879252710118714393716759760848814789019191257072917500710512074328903647206696205160731253380612073330541289494300810307970123888273379661206566669155018509822507428581653412461800991007841782552680318543662560985615362177411250519038417514704189585777104253096938858729883440637661557477995947425731557643749234563269853997241667583461750404245491616094839221505287712975810069437999586007115781150241773686224853130441909171315623024721248728317139615118049261109724624392747278663739082014280474101376815845623448927250409936513145549299215580473554017218467375896766291068690213281261374046796860910261934411553449446551240703381494569797620168505391616049199371863245667259496230103749632831187110678357600223434368577189060614599069989060782121938291205259497561478063107126318436130747252702593172176456624316143433427903055070374325291218923229285500036190479025450120304873223255267639431354015973932843991849999033656013784376656642613392770473301106250241157869195637166778550269903199702396917541186982281175582393714035551276435773838674422103559381004958854528057453900315942983163917240244095548883925918274782159532599377040434662346776184453572984311144805548796564107466757305130006339758863976456808901148242348747665930268659115241945148589551577941300992252934473903674952946396489515025099398143120388351157109757608743065482524138675539514478317259811387835482701075951021762076932844925140399789905958266699868067995189507927893716374703550182694673641977659878975402241141177952376258221719519350472421843219799707720151859105744047397180988865566535843513925974694378420050082994208949566493171504687420060179207487190409578581095316029689045011777570013645112357636992875503132373116653268192987976777899644498697463069672179263122653703259857100552235987349722495357950197303518147173105870482178881960113294059408475434542953840614438877672434086218432489120864602091338108906374473907159955883288529453368302884762720050483641829004371500375153488894822778572026036385258057138278182009007211570722962979841377682494682328596415222631380820266729839331205075219555061014724793171338718538116644210848988341628022440867726759908830434445698740019720338294100874230074497019390151411603746790241209999860050886589088683272636513962996052641664761327120820310605725047506032429041411933300334437029157361175323037372980803477229300455960793372706374276819641223151482694616349310440253538304745936698569030749606748829506465359142897743309329041500133434878205588637579080857855474814802530335182186866409968054733913965233081055483821482410966234190723921170328089112948392232564749930181596917938773218018252279548047414173332835073732428622474309201144864160838903648077063855192152836414532074489942762694008930271546870465708376902948076062881544928526655433611274172341814229463991642448073134412882321940805794071462756343950219913781126052598668726667732052270790127294313454614927700185368635247095326596045797988952024346290410358327826878027163750452480865961022961090045935718631103341827754722163638953791395278704233692589969113000903924103451298895316376430457133267140050423920379887326935171755113042237194767853177833613358048167959382244930572822258443686318474006276056618695518640448467859621602421865435986508775551235746965964076330503846900188004035136365935088715519179789620477495066082830953589174458997091553629251316242197464320859769155402922986750382312896223452762934057694696538448925848491573651660819643203947923597692682234925176352693579916058487687027242569340749478733489570694527678308709659870622707545720148853492785032529594972076036030589554576256724363550534913877278193495333628826219300197886248915127620546074548410562685888259221126618103968307126603958412234212818312460709437509687255481595626961939165739330387831170263398332148956975444850600963704249945056508700303346718838624710118994803343262790595744986682886115470753788613887105495632020512368023067171985547797612910970422640516378765640931991011775847870659437677015023248089712890335162482713643371828933967557617437927985756825014429602105740026792944343745394484203927932349855674729684505258771863959289996970879466937239329118741972840944114822018161552015480888065736213248721048540179857720834959346614087449123362104574215776345676481087001076408610605322032859784266418959067608733951355612620618034546109776479988326607870113903529542880425293945926068287813638671210874045247675975839924436521137136323207284431335213822108984207804603457462011722840835575595867875524420175420260313927073567437371896411995983920290200060389735351258126780206654176350157944188370374093296985504401579466775875051308586050309617908977879424664020987478331424166528022840872191805552152419745779880650048883507053027830536631304179024904694519525512499389332819020864228936025870724488230113256689449643309264764831506515269812919828141526743154219418741032097329740414209429794465253778415285328817984897389863315397676496409939684460505551405839210750794792752857260986026750709470622300424060254568192499338623317223529351290729577660288232596737195474495846775405061999771336778707190572512705705161533034389676174315690014229611671181280037411346543524434462404862321171226616344515555797647193432657219683131696950845506421110169598428252935516367146083916574369582872657627200580396552652044683894785821919653439090119622664843633913214528319043978254748839271978400396550734570818248290747669836981659040475177460652705629801700061381275856015748606132505516265414233765296083709687532085844183187939884578859579377593030593834507444486064551991648480020564749800666467353708495931319788770279432090642029818936002425798833493170199125447835351765072662297294416776458261517939803159249087779603562192693758197456038699716854101312168562150504156520642289368188481362766812580801877576110270243141122069945766362837842571519170194787097478982142221159353371499302991454126475603682798323794232476607823852098484444949334864037823332167338228192762797462811133303386261430335308697363705710867936617228711766320188398056644703590092979433240695510372949515511497631633185306116632993370592190780793474318605565524033944599889202713885979168009606595162985886979273236712169695421345296533098058318110673891054253514499224287971570206703324968045657282217384903698987536094036796630733333315086724827300057426999952493070382049477532394881783811189014779903778372893659875068003392320104931862001901841905482566212640846969566767389228650439309223247312926839558919832042114929553671518875657963293671591479341636001489014547192740469744232863128629508930654174226597173239217792232489711960752486456755865371594023258155373270759205876368441272300707009725255570190686370762816051005629094052250014424568131739026593840801513854788684144957104989429492625051514518924671984521358633747550038895562126336818616337633508250151879478549773325330064326983209985632343512169339220365520446292748793106585448777972376757839448318723279018256262224632710494269772722814434005813056433363720642117513735190495470418805357251175123540394449233869259357760887564652073690749658512109052843429017415610236725208393841116707752769907581935218733868790983732731915863970635377262594791450812923573261049449644428820443848753478832406007801807621301418452198979313187308103368931964433827479766384338473142313762286411865961088199306658504167451015555767355529415949448761321732872201903785025610406431082666686545790126677234906066564143281118873884461798741984692905763245678022898578194190328875440266362255314245605270875109521445457691045282876589339405829030508281506398979249458415448331525369743340247372211076272842469211257945382929566205299737330413260095485854716309026720648430128327646138614381397393071227636510011363320013164586400088434011654059952540654831149054881904059487674687247448241641496455808523188877152218243592430474234401093776309856921683542970426989590553130334265155105217058373386042997390600575404332469200599322907397876533159676787449274650842979647047036596570489846641421202824316107886060802106021877398228436143445797214538017058952597799909887209339854786113611637765609980366074851221175303731545597115746247878467945554835991949634881777398150175284631487687518006146599050379390888075964496167062215660978750234693333058284470088253302147476443196865658872174374388588419052882122044889916426520271955001191315967880975050129280725542402887098276493177261760326033275189453200059777310735908944030975891150371012558970446375023591028132722248153558030158024345374505159940645840892059994582226496227414814778441046783415500254783753671201395884620199187894368057442458824244864676829156816987753117935304617405526836681285493654894473146527045418633612981913570732446178149964287082483624159559689363753278752066979072364917423609506960729351541179370061384583290194206476264566845096862682679696990189468201672049062550059864904055402149160572535546852213308581591239791647904083173979738703311380038479254392228744163313314648526152289517906268305833211218845143723702286856908123764138994991093645038836485455992721388615137921137248922488436056958512010112839670361112998079327837287739482024342331794389687534480376856870820265978651588731663631862752908849668630521748994276723459968392124825295105332368259066274965895928783558275837325790011619916519540967255227138236222045085515368163741920278901205115278671915319186181770091893186885986825263453116850625806605455245231606737303715162773529652031943859950438911832653402023917378269027833193156350295783815307545514620067072422552168911186272164152280426296176830645100211936781776627232285276181957145389383207147942951782263692660028623260520455428452227328464365063538223262675798982200407029451455652533045508252596062563485425877423116227086779034726141181558503534590592326590441345690650058610892099472020128501532562576733572945253884522294440507486744345797175799510587303247432130255184654970412812568475068269124939384458522337612843253851391066348156622043799956433366922173564626678159613870552670092229528495380518157400142358219928323043196532124680428530133557341828003016528416951033054488201863463055852960577381675120697629733584110057891973146730652809699222124677377929764604093904737502819882001932903794487435608172150802066840120468752711455028037802475101956249070275952973737590626866396300740285577463369648835253923668340438056875734030754397032562540167689351368218549083972977627849481273859278770468631454520122851978011694523858870702776178499865849221833733621273119322608823981052668740008317242659612748537384326380731117207839813939542166831313999901629841361364999012174560111122653530857812540626364326527598792650722131488082695909971729601726094438737849415558858757608861269804101996562302498018299064324760433480363105494795324087457734450383301024720190320318446760497127107202213539912127679932515708475547722388035198171692967444525226119200450659239698162778416222292576737100643700255297628611141155983376540293734806522288939336594427920057646793341586704518090557663014993572275583839589401134354880750369558625694070048514849860925455397917196933533702726108568742865842608119543812489769683678110324414155694022462737813557481876376923469544331675305285989444862100069466622311812877287108223841007534071059805243376828956576011306862993960702877849598719145717032463382798836810176245082963899867483738550667060536345245821692246721977521555737754069907005835769821788835657383680551415323307799880937182491496461661942501792313922741064984881161217453671242428861956447011648302745380695498539603471943471737249532250664048147442317816869206647370126114201808249566344080310333192396319182475706965239367839281973691263136827253973667432384249336482720121890551000207454083800758856578885914598907002674122251091012300063633242508198899787785580895986282541273978386751122325370400674536336747022952990812341709136650951266669920507149996391471317194001544023482275244796988632506435710700421039449994733703560861665846906522938670221817475613438359080673494569145406500311310648715918424951067623198835168546263754221736974943761710496821770880126578742343946689560402528256690515211325540491367141397238251735613761256226111447547517026049844551110679311831305860911206327181039182221172574099713189991908753998257236237899702914264318591855478866567999000795826991411053903104442734210995745663935770593237521650462301900161126643567513620481042703110249255513883831517825808968155982187911904220582961613128693603979108455261478105603824944742324364407957611642376392806005141822769185725273870876892912819691114548929474772596447815285059588287949471225746587878948197385772470320880274839750666320194351379218676011904645280433346088366363068326852229075717409340613083279419949183194390253340503891522066046714443482870217835527363327571770947813907686276591817665025528167267313047055554522675592351911868714374042353457881874653288550703497401232137344222965943515914476264829146826268586753212974629670576629247369354298265247188577348861617302489528013259358022714022135856640308119848846456456099415472442659633347905500158175547656146970827761183232962746306472961923067293895763807024785688057224185259260515334896892259681291116573761691138940562425479102274646198528195579213847960447309435451777170602506540772000776685523719229477291334273928982862857308718116098292746796042829825695310363299399429096282259255702346837557181224974537930453235748149544028823194734528913166442017649581878641550832719975355344034876229607231476496883333771831539180462030349165296646228585512808341503625348723623698921908478527578468059761802844287661513606142759934378386487779851834053587704964179865387830718583506789443415556127764384466046904258462016863442497661015125405903646430414534213225314773497157223050468961031491182314728887590309331452379948739436897203916201914882499712727985559012834493593181229723481918765385111269787439627089698760753961987967624488582261332468698812620694910913211956079333746252726350592941474875248576685068695952482110904274625197238234013265164741753158505352097878438582142285903262315347664835603250132046445197815855053780578882246946995812607384208683450927296469017438844344271686094875890219397275544716157209112145936316442637396713239418484840971676531188891858576132289756395696035539964436022318155287834088624504829045737224723732723699423124088607487191593004178255293635550194776732050768362568325310180971685658333973799598747432794530608796670768059498049781567381935449431034180623641001230827630393115878442056606419818900966372293931242531160575551620444438423494279092561904916345361233932791348863068700350480953180134190832336769768691173352773532577541870627809881017966220016615922287824397630002871981982052609181266233089153735154529790869400351012577327975745064908209336176739630431821732181042112648880824345618114784903033509537057115966988655213682603816730433804256615615733370082865468961478432771256843960589806000918872494733948174846037766481967496934636759098190919396162037873319289193607691336560217832816791961301409913139780854528085433083983372815091707211085946973971699238235710974033406563088732542429044436281357379496947734512218016833629547460519391652068404968460821739710697777477990056068322719450281309910036750382668311016432540232593896519451525458767833785284652264718714643719806405038528625648858318276646829079539226947987179915673745626028114883496008394658485455668812427591728621547023049769393944192640664974469116666867052753000788243176535620610856798157138487545020067498297972157427073752104712868225754279761920077836769885005719551141168424949884212268833771891875400637473989238108506260119342784041833323070123691648234573984515628856558728978892790538588703519651127216647121340698771125864111447788328028764281846753463962927893606735931629025535484064246591677086103013575420618178158174774955518275393405800628559575609390663881404093681621799816430446587242125383055853732497335650996749909986710842437165435304362092792576057352895661710920089996581038789643818892371969601847958245996524259887869124526657550590655787106990374217996246925959429408924617742030609674211615728583720589966424875055380343043312085985999913741475466150745540011269571423057732092765137015473864770589857927086173642039406885348935057803524049836170552626979484664466276087090131559048270493435878197866028484734399021392831731964031292576979908097028767354602833815233400724250501542348424297148310669953553372018339515014791771826253647867912305057489834052961158422156161086800686793061088331296322105378397329861319476643437617559070450168083549308832588492128197565221344406474699390503218854480941368008357432262251443290614557148649535254472315383408460712505464062372628773989029125935877119429258903251933713952888760609695075687717838841589493986683872844373894165509726493794520387906048464168459644137438756966873070627638116259598470083618948529960650101421421524160669380988491357313020881490120100694678859353337519242529623772328458912568661360980208911054794774698365906056265391314523634787247544810627750606014382552274527542416514977041110601959969216632436366723805535117742724647633945925086235151556242463007397143425463451844746013384633382876229527657322135539175954619335222664019310127315223647297086421594964365116375883134931555932759550049688900774435921644870380125963697186688875933994878811669826532083248982997774010133802448713288010178824784582113164963703132784244460077305820242065916048080402654925507626011542721494601865050174662472927212420441481883603627862247611044468460455381255054630188739357056214567646192077645364588183777771979856456005023623037820555424786610650449551342210933770040171824384829765250331720088633217692730279478071556905382763470688226064291408358400819755814449957745504618597881390504934422111864398198671335784774533579628604411134424526494117317467761099130736623453208515820674221643049493676662014855621857727878597387466093708446478661668886878620899174167785563848775251576452424576858900808154008594336948739859312851443882026084785893872312162503003515936155429988250178235680468016010238657817023001982818982455700048580012721487503251099159086258314182558656290278804446412836522025244096389762998997819002902916824666502095641816837604164895888609350317246826694922836044084495253083497988858756999059024903108056845299195325910667676567616604322823705719813223216427827405050882616872452186004436067141810661266334394790261451981343901474595064778496301778761656648755050967379070974433262676287424507078244439162501925997814435211184523085252905940065350714605737244658809037554886776678265956183905556023801792857967487845807225590111460476010698038848969878450280722531673507521202021614988227482397778656998695876669214963525270479924213429822656607940007742181323616658518771795944687435866090272830924305133235863330606303391258816734242347156569470969024108652631775018525279023441046154490912345237730032588498120479661174853043010075873482074891164171683902107532910183280961056968667615514558707548087409908010092080461564084161074168461180813158502974336701227953403552223125556802207636635456806067981233554698606063318603914638542820739326892040774176014211055380609926532397984945251610285313369837901706545936603606366637738534648451854054646474503834148066373123236337472565072226422914363574856083576448499387015201499178776900423865986624729949258529401561539198051713539828673714531208486321253357389110512085786428780226269046205232179143698284279732072579631591500035249206714853624090321039166312808786925135803410169601450534328210325133207002094750973421013546370608100136106671467316533560859264151962234377532804236318385835632442303023916270263794905209992654147699029882091959077080659011657645829564506479783375142226952165337814189508022675604602951452264494316118720505632197971272237919514273004644198424351517509990176038123759048257168290855776762487550695735097062419356871863581514975375074559614679486148363430947033820136421345425642347927875607913415009810719255736016213121058755873095477969314196155370101403501654146343708952589605725138210443374404645027030364189403124641555386513825052467739700985374326118131657103561479729341932575459380146381108125787562146270785771565350582479752961910922332767934194041677707577153226770338457634958745501864742036209188988049050029659386837568253695786603861118633020811339291503909152262684806477024094531460679481175261910232437226846431268758310915814661148248499501903174014565640030993373437913928668622539106087541013092973919221412170327634056604922872255207311703625745340996441558466421401429447326883067151709131202469488237402765983197047080864758873651592922519383255930809906118056771256560494225786432387282683356968557023561696854737314627877105143981432531062316566655131353917245527880515634533102862132393330884549641893341010548795794553999864195470578812964141625359874705263044106907042124295332086353937760680525584517327564302235439488299446424589148359136843101671193624726768004602373221573319302646398082976550487251018306641812514363687933779506794221396142148970411144478860584006235977679129732797557653570861690677182894691963036724334723748384234107250133226122549226891818745542334582431796084156651834913819666335406326943842633993413489233244074861022077755972754979561702879866533768289402222769818137258205649920668331582523917264384262383406893445296938509611689210407393165449851331920269234687268739155884425758055784980610717397627391802359087543704467894377271912723724151933091716076244326682112822964753322734368068069184933115108235694493843182660275756536231126273044618298721081294115092684052920124966462548821449131045503424486181851652619621836271929222458905430819519035459839638479199340467797027039872707658553525133303277765675596056218225018770304731520462742594273013576830591560693709961712719561673026109518054346892317585931198707769021645803934727198786303773902164067407440911366744405998700617192301515538373540936333950570973574529464456194160031580355269450760792444919454865229550819408941267548752756575194750209750707011394648738485430099329423150066699296801697544517574299173022850135399986459285344175917965901821738203801453990986363953101176737408266464314418680159007799155039940721736437971056333300764850581592692911778133351685280972519785153280872590944218224888411801529049069433300493209303811914462577637448932832942811899691038193253926570896722326837519321525479163929078673967186057060420915433058852164633189792889226710923275305640512287904072690549618788925894752888283934863319036463610656301964884496195688065647299045174465287944462761015001253167078812654523743645399666145556989871441107114211004121408563903676357749657664779080466281006585426754508898299453712692526115181901751387190077239581077110083777001599831680209265411968547830257041171691850320127187025927726946901543815211896582895092379763295582093190381130290586270618257288358198732411830015827031475628512649087087113550518536590476104276842912476557314529381729954612690296666721601000592740597082080268355673849700294419859569465963564532590399186273458500509904308062184196682149794937993636176895073833645235776849215995746479317950112073049933239494945187136186840811257219214976748736983360727647141646021432777842356423675267901781728116773650062641884945601999073299090068279505508546159249702968915914667311547284183350086658445366263436075740017500808478534023050683315819343013011202581372210534475975149730331361865276833384908393018722616126589411926445250701608737662166153676145143385767641680404928818768951664967934062890869838686252823967969809791155182656114963967044556454623104590619651180247797575133383662289725047520806003091730531399835673479283092538434072980816012947031040049100756267589375259396256947617165323630074193000174471163542473664487990481351183574359022096263925748441064655796971902950499735005445527161038836134461749306680842357374924773388162157826997638314472477340961527832569213793228507816510122730926720197578614872285000576562525449305512757933201054748617155356397798872843484422389288666355076665964263236269456056914030096449123659956337268205385108018861478362574188589760313141870511607367746338829502360670122506496334606929597700690149102613725714104794176210695594607752777608159896741756562008354754058909079350088620456891684766422039312845152665849120988056012692436415883715463113961096133886104379237432204776500838304404139739809481378215122952251926781975747661132988452973962895980516153538955570153526628395193546982222899863067200556578705169671273626101505656364583716635875648132322299874791522889556712871051016619304142706913585457572502391748586246212264908400910010559851133716567471849023816765699226225191695354127237291914463169691536710406917118879332819470844762717351132143342669419424897063461893799240042927950133553821162101615914742205151348064874211436218563812607211959709233824479462700975868622682939834872062047082068037172618985061829968212831364944276878382218859685667534087210824872236159848356777436416459565514292324029573247178390789603403560182361713189479378745202712209051083880752729665530812693555687790935097324351269196010133653082431243309597584117332254408006464742277581322004595289856990697644225840694739925757165637695582357042183948384752792169276413721944569718541009314613515694129701875325123421591332020157556743251856568590324838077579870511635039666695090549298696257889183223122790966497182029335312493300778995249068858073650942640708681502487613950513209843665107948743068083763046225472807415180827811705599170652308805776626096739395160269027565369102098399262448184293150997673272978010288707453417156530561435694332189627804727989397705807833044032598002249513886931577088555537384414905435669885129440742277006662416013885696716936784677471491999771023576885344234180153930292319328273498298335481184186181172633451574737726014138662053954163966790750390172385924036910715066098392691810831292366343780558554261313700621671425307422038902895642129648249733629016677636211381977531056888012620707140811551413656268812708319837771335143361369282009564371255940714957838314840680877249007310575125692498407784730025758104909969948047448928700940387419736121164934033268868693918358996535428466016450803473451892632999136492284969188534326429204264186953142826218182524984628409922632248005684694300056874736942318663479265901931986280882744493546699956976746593873789492000449617538004879987142311709070056543452894580123246327292786782012814531678935664083386123599756350890507446267227351794554868222146202308081311807822689924575019427689094954863775698319128772135528132863355621876655926057582688902438093074092364967620194745028300364176273914794832812922743186787820985133428606252479925070699630479348230747032632474666997821310707175207964084661723896151052231927988379650715810392917038484911966765334182717897932391656048794495611984105415985859692960628606558418184748119162898976046825619712672013377110843086298726223600821285484759280126192664457942718908643258558273024167826474183430542404791314052326380434908411461289978171054319567193998340618703390142792243400287744103007846588807020081046792930158922976517516166952141754078194751081047867372173018078411978812754014004089383141688817984426800552750783922909249597010260901008311820263766187574702073998241616677299737028997815639306632964833048292843607145057685730918304062484442469677789756227417614838853948035994219546031774677555626906943019725603311002793604699564943367029679157897375618446807767265295928713776469452096118141107605876931858348332444229798895074957771066432104574446859758580477032290565597957782725551541062311772152658653771179697312256437253599925771583935763149087735497791135502607743364125927402927729172302064464689490652994021227187614819056318923601996715962543521835965376682430971055643071955914942888313948350837805014882883239861404722435175354719788212508952303916537666822478843893853368167885509155359566073751640377380126582081684390118482773042169135060719938080899921313831125220639666483988230990414909383721475046246828318985194937154112188490923823166200824202923500871672802898078997729556632659672479995415919047178939541175451839588986935793097658496358166637544589740175394232068183603979929996185591572075117602636775985891625272505065499822576006921862708209587913638021398627983416731369077834868363791737626098455016490937532536967434517720130980544292869774569714936174511306821360175922844936660780460353069940671909268063343217763553797935109936423788650885954966701688336408580805547724275453071571134276011893202599377012877709723750445727036158026593884264339210329993293254458336113403072262572043927375627413270601368452497371049203340214286788261145917428707822852525872509283935945860654214716009623845605510027927576111721854822488779929113459071596530967703640773064857760394825059218893228751713221960779011736484773875514884350617353458843224863367864105925936048897021574927532587727788034833859302144252626158262223406300375718988726615342871817028345212166408544732154322266087547442099554592066860266785831217827298470465674209811880144027790607449936848638383386610199644058675321855693514142650649361983504948678059165499308868507287546585054538723876796739658388346162673829428386477527870308162956154830059547696939540224444577297348567079585343441338744275254672214987752064772530417550774659489023139161717429331279392412536660388313688176382912512383389974725370754085984614735919343156830639004220375803357291334947131563473373070999766495754915153684847768771974882084476348377624013093138351597066194579245350977746147934001853501111244498836180420851794469968795303128351461551379609960266184687409764182594225365647361675377566522035913618327225494686125272789038990051669460260528994862497065115626804775909243448073027174494630211326381058084666597975095641452325429424486627598768489810211562491268842569592559429172907780320731235659640967210908824869313827062668224006871364116403598183251587329134874941562852547853567919312726474300391314657895997940840817066084191447160193168703070600502477487818841869533545160973108675188011139576030146907700014246410947366607911474048720135468540167245320061512167306519991803918298640249282756021182405132842244803312595418359980334127572963428755167133011570926662878691574623779434269880682211914351887124715933776900115441038520497907886443492075678129573094046953745279156760005120683146759831939792721138899320846175166859682884223832711718944050724847460252586312405203094162453196519409179041703545526053327972366087345740303008854510168938640032878630477370702630736245238129463160033598510036340213901471290453576320434881476348949553651958641294576736106931598696063604470236003490525481669471479691489890282585599033182329716554382604721421041417970911262645865487051116291586096684788918829813097091684122391024742683258295836309878250563066566690190569212944398137947833430298873544137675463825444538720215254710224029673946326231161455414648785867791696743517559146118193219832827350664929959479175372789218211157965584198861236449009797526963144404703603032843228985277058594884334866302205115479727133484294433374103861877298841727183491999686954486272413641095226126688727216303007370944155117761854378574758434333989981050820189340164695849687878836179649549835465223627252256479338886813460678585838950382787540844383664117602563130864326266900586659509967086791468688702190549718934252849273270471587295642959668147993297591232197581523095525393906564312036126721520745285804559487885693896779714979366367397745097278870561097269780116268070182907821208372202640203048511664008735670487547406589800315738456011947466696861807911750778833133773145219706053610237245809099716654685841941556457938550454553029925341113261418119538792105936010713320039976309072329356175867720442432329057599265680771066125789032354791378459276760973317901424483882252841624088437025179633754223596062423707439630172288594941828058794388338141155496234127406011939716198134092727850699401226435772866392260504721546640379515786274757482817345912542667269234653874544305577019495639327273742471332097689417673117648271519151658177776625911715936687382880902929366836126735686733239872722497436055086588517783520769410594817646757158370746300090346316858287421027030310758281466673819144020725383118005074127286901015247150428850606278424349605070222271324252518842375500323193673341038048524931246063198858937864944100640390087943547007228014603848132190941673831720752771287093574037817279848854889917940465236382798085600155132415970049200361916802199773858803551355780765927034260664785237779444878272464059976781759290878227797095848637727686953237936255846892483366785143715748606798752640610172829915175778062277190940308960827387106578592355192011616042285294444355709090016041213080884459057752137562364019686178403910521736225679487907165361778506431145501952656105472420927588047433531855927312933645960807591137634902152189444058555237064080556719670909442871255752550132696300885746580274798885528618993095454760637829069375265489467516107072884710877205588751956785652430863515397934573779829874576549595710873023919097985170028882464169149561457019474241687193343706689661075363265550597395630845002871578928546926544865856164052959355741890072615120874187751301250773621903221633078432415988801841171026056869773482270282966619240389103624674448609839448694834772617990028152860005859918530495754576337641222547739115457988423585746078798695949477481379072509615361029544191239787915619438085968207287220025444864252268635189616080661032682676257282306621236071518657833808523947177347335245514416042812232979544044723822779750200896453823619383856801948599428875163638085591312416937385570064100539017977382585219738530258447605930061168736692421577609483299216943633955227493743404142237971550173306701695454370834200053666177730408094498714050184057829545976881615496101139174456988165488412876590151253808276419696457958906378549786392196961920820454761275254075072535284242041546718354465812043713451964367067388755489298689266197975214936312163922350167449138932456121199367647124138274110799661166651431799790315414993803573285157929441786481959293176256593427067042165974312136723917727424586910301697681521273437361768864027308645590502190544289694215278659650107487452026715494880306402597330153818911474938522506249322488823672279794727528704994815282516542439993180393366325513591357840507934980049399256389878485710284217112979118133332052216535547254086705341343302869157445988953870460228162387475950353318290287726100838502668998218629537287407749631759818508810787418956515182046178706708435886006411218635624647788430664587371725316084698148049236073421801209643232369140904035915993532317921642535472917727060976414233793590456109758899593088823625442288402131722310468326756287797154198477463902497185138655995793461819582916089715842481224400965355532638569016533423601685379043610615810670093184464148382336634845319533374374104988977753309969794097576116706717918624949205587938257114996616223925191662971080627877736378859062631001101228981673043046326574894274463499278157492410877620450457556142094400536594365557748675040725041744994773730096739842161471671129750364502988166599201173104423646307080522715724468673081479481190699836996908098363616960173888583527033699992257804233639424253956317727770371304810228230289318864326756638201246902524737786833694858007850934701634773110793309780398679447772060662574847321620933091691301032359421351440149972084103474065405232044405825109474963141918456843565485536422075943233926454829544161028954328423051329379911164469064527847572484236230911352356832010112112031650504929354202816871879750187386376225004473731940501024107328631627652666416447802608993757802286961615002384152471541083487765624484027200394648096486319140220880067735951949988867649698709150246838421979880969025038314412674717813279882861309552635491082510930500360076755571771129256301071574365173780990256446778222102253522915536764186589606339523801445621573914702670555604991189522809004752087546246294703763198206260784993077982032875436631660899130318371232071282839298782618452494554360877424617537405533900599965418370952994989942957590715058919433298565739124754596093301555464848412084556658273568346738795983356708311665535029782260481619422262046664392756719015579413934376048655975564707943784781586668856748729619102135066184233075215952213276681015890342993047602847251990508559357603067301475079759866939007390955685583792731820109865520914190017328541644205155901532373019854125302263444875115029725919042110139393642497081811769089026151234826993248352735161373332653531179315111374000248088436227424457338885789208402920151337809372854501524019115638311677851110949063020061417579081404550306901082966769834050214493341967246367467967749411558991330631866907963531738383081893760380371122819047007328647051928537277738782578592223790876698235673877332504346481245923480670872567750950986721612022998299060052529750559537474849280323753875398067489061377832680606129051569121504230267993892939322307933667427050206770502419768156089606650126447981774157303757346485474292161020386396157504433441731745570630697582449617173541669414778359655883295885981631835965710931793881900408891199774371083997758265253805944342412657107599662562949408495744388100141042713497306116027423384524766027635219776599706531598605495289388824423564761391485617402805468640040738710581121646435737151918403536001368605450397172353718895063949453621459634881980389791950609553665736191424418762347487604654868680787973105634288856022950575685579283554234294936882663798855752977007555454453469394228370596753166717971073928005826560804441243230870755559266125286910905801542754546886089426754485793266785776576200070035479455882046935075049367817210882990690837434968808752416351073072006796390846593048665150269143451784242317205651853548901974506300389878786899435489945968869626312363484344742788888943961374512773144916170938944804449129370592048204810052461606835178344450511141184310236451192172716756144589522763593199342341938401585738917217405027196667300333625969427283681098763058886321573403226757453569767773674648666940916726938827382298208119794612699385688208019089581535789471705141763038564516727676833204129067697589787073861991670832825465241596296570170704597818016879950767818007981008001286979291201667283697257421908601612982017129070012653403176900686062218133277830303104274143473414568393738634382530400682995348592914932135081935517543738249303295450409417409130502578253763519214542364529510180571379633903084906331352270033142092881440205682878860608257193943231730361827168603708785556161252272384963181189480053815569380123153829863211851276695204649048548465461646099426704523760949804445514530567510458610630951795122621939694256872357919932912849890214844670021689440469001593087036507113242641661454466055390915555995420627197784604610346889631966302026141344331186625383308859187033123224115466010843713040462553588352086364018658435900747419418464990522848785649457963617417937719554206161916111278736602977878954387460946806502308670455067415799476794773700332706826535022513290609818248500472548396429134511443408049690408617870155316832376327046688229037619597179516546728233621738997954469501603629077095140754417778334498942638724813185327913023330275452359818737728708373729158611666614046332630086569435510233105298590362519182151728755923206332896517295981105851260081357354913791220521233730886413777440352357000862736253380193522735025375470161115742428932933257569609131754664499881158904042879406373178834473288142923621475833551335257935098503126844063198996706948795870045109935849741513014799317452342841225727963988898189824562671071381192463213445694319293714482220331232481952436750834311716254515876114911282181730087367738459394012126106660603653978622515533987739180649075530449672747898537249763012300311385661992879173586501578347191925949926732790940840539692067140557518854049279153447793384848224505830802478207867833409208964459456529677201192926468714000536480450501753877047320002439232510601625539068192418220582736690272665574041497876131645243444275741945843196741770404836428740069857144323475155787583095189162418558045396800519761280936199219172899523357604956371010560826411094730525704566544976462153326814881076909066763823580031426947729963326756210150210220654217488181710640867701713942053927180667848315369170512382055278600166443888408216895270232307507452061538176373499970341453884258735139709583362759489219194416426002198811854115257584786226587403732856185541782660493245596449530985906461687111399937665527282259648335147802577436468521687393296659979715762512598845941442465282691178288596238796638172155324178277541476671561803166945147344891044190162344367538433968661501504972310715272678238722421564682064376179156919707432290704721149766070389426734876608072492764462912440987604481996101279566084598303538222943600273684694207015254578175906149613601614611890369304335823388302485580656355171328027597043829357460841743400494712176480582992611818407529829536428451968166137940384315280228219407659235250212629555287484027750957284459194503588507508644519296917226130922011761238579082157491321043007547516462382771775081824640020181412858206589882028662286876369783800650370187231515746807166711423215665704906054652899459154103943429328965600806677495775583850447562468448886015478094371618504851931454193630873993767010722017935391346112046093774322971087180894226665524178350889867312619984297197798878637599863911173161774678114043312535265647402228929075675951038851180549711380491097926659518275598945651151125117196842695664999213201574274226789031149883238791396709720226317590087872081327543250735008188594394482681283003984776928308507343775826005529625170440463810647102351515984644836615787422721958125266106855417058407914806688590810682175266138761625447269823451126495101530391513661048991329004672531639787751307548865244722608068556140920636378985114338224302352975111231597136849460976079031991353781500367274471716424494232796211194344113792013193284780879169845179709592459188254100097598764143066717386628882190845842517676828906958544703509014357713284461141522588398188010648460949416122771612560802859557485409362050024191143735615045078766068919521075366711864098345130537586850639142013677883441359900177308593326960399681451098259506662874197961450084203811860630885812200175168992987931965355811062159606268409675192612779226462220186315285170343847824657696032224566431966974370153800150640823423318898480031802397856568296588621784848295938031679808025970123500464681382987365231723215298361426329017611928004676941133907539320405420919140637125681401882742754503844899824936919963971910394635736799115094626027968724620901225711495286720506532368069421417238469355708620315519341493517856556233587772356443651958345198869083623842982426633695736341101271305858061027681051505947787047866125334712553256880852378567806735550927599459540527728452055153371899248831164860859668314726942737651635970032413114947547889052792575566652110279371759526600830605466487836364078705755063826118568751341417862029464153734374999093544056491479228665377079338801227817260867068432067731384365697916687611327148102379604127673164911009365272262596762891392395867912363047012331052755303001267350249243622155035741095392587357970643235880254544767617827334887821879430918958609613525333453280378958852864585924333732477059673408515286143580541078347175150322756733306962763388870480441862996183853384347561108418359102175090416218952484280185224127666486772969846446616372547264706589210299085532103951091385159097355396511555534548896131013010337069035877990815282995057775862983974852017894693285061864511883110410858661874582353801883013662571769707214226394357999226057091520642351292897431094969482555289441687679930839981783553038838446489619665050181362526374292249125178405658932194681646976611480746758256026890597828643210183646504880904983982091048649788274874696504941767514069882283499133944201047543359320681152975772535901179801790081793873906641059187465900390514324061974002350714400835657132987163389185519575774570659957689778811609480517184231697720384201540208197693553516547001116326112824459127890667091264009449925631021152140827090525415774542130098072279441553315288862065850739244878768205600680420703474450277373245837264033341066866388638177534665188840604927872496456027163225559789727422394976312116875437277091071113458040634053617231456337188192028097976962551405836058254581557330776659803521623749195318245237023933917897725690520527538389677184471597807274640768594282227374272458649634221617309167564645536444551316794724761833589671979543793125750466179990125943477391848819784699406365693083575987773381289124535005106846236076500843205060009323189682680892318948670002612030664738734499536001038295107616166169316358727071369313920366837349693182969691727816889999667866677938302978137449117807537109032528087372045063615266836442023216821449652606209706517556276924789156850355688145954368877839654326832064412236172192905114296978393215535299599714159595663317683993394504508389775106942028180393935130108660423268339717793483749555994604253230014300014215827453460010553097616372633212258633283389352115463314168207054309795614656655223661207105911723145158578353395414827583654733722905301811893412398868033272131600951642184559173358623653929371732710924734885760491865364431178902206114038711475173205792132394365014918498399275571988738234851986461660961917231323084786199226717393937611614962169753106834740841261829227573026706808350985054618316067921107006183956550860774129884949970550114256259907308178147364605779816529232092916657976845101260406074878589651841634857698932649279690282337519758722964433431113140249743911446487286443799094758806443502948187507115145454690406275864770047082929306442147742252394311155706586849028502346932359573727732230832294039380314074276151425506286140083429410165611700094841759379666306017059592537473029870246387389829810913401068885647383756999887476316278835725229192236044724465164762553240021108732304939234423982569319620290929887275320492427901394692559104247963263716372169026533375444871340965242632202676354154240877957563499510031144926696454055183275840416660392235593342123012739196725244726296605082801946550002649279986060181409321268573094962861595419834878562606886701497787591419919348802435785068689938256759238811945830876935541688575928335182180791362824538881770236306546648342980249285912491793684943927222983845871042991527373921635793081866438409561673055639081687291008953155127513875410117534576196421101504779640798179140827659552818710210000647697788860866567447482115366836711498362695517009197930378987046450238360391242590921382629765751102784156675361183226408015474954854008908480489393222834291369170098725277860779690672670976529713291304165727757483884696807361185653503749110426389695617084333041206469271047761044173704096671320908154773284289604742151723750180525084840146896193677742890686363340924579267113863234007426997602852446919103740053346686208573087774757305719033268317381722683317762466211739390623939732948570191210369284084879933787415772708631764155469651724066108474646106868863576419306062558124328227604069353675394620198789449051025820350142877922180620741632054581471617961944216956848064892267725956752204664284473481076805417233974087446458775052642132599654443983079536351808966799020424689966453386631515336649219848336784187930915002685730293282202185563173525788384877462418651519562561641022086505797648132474107196329729915651231942696715325846787786371786803237101503357986978284787805341304809165786461401666658994405365071010647989382001281550549730141060248085278101027973916021002712806363665893535928351082011751966787712443214964601712890343145883894558356104988984067661068912421491598155857321446890868604534209841237392144201721587861648328479694745667143739427040197462360464517348885804188816252710468023161192171530122112121940127683161551470337343571667325144276877468581876240924342458189751620888341012386152074202498387540513529003324637873618889546660127509380339670802693845146267206354856615786926883525003818371187236176677549561954534216783286182547543492201777474072888567481197913051818463397540433597094350181535590767340135101599325520175243490431143106289339429221409580783019906267632382757217463229077516203384749822465836217776415560177901333249716934214209035856334635715564470220133103627741701328408766518862681246756588305709451102502249984653800555964663301168431883641953315574543644216212473703633797492972611066710327074819984583918257345945037597349644475109549398851433123397017304123245514798587131246536772836592597153627638669849437688358098205483677599927121625162727649858364858588776483564964463953392402028773705536662720481835466283504249014120592623129467777996628755450507903439149372424318571284991339002389510483969958908403620314329910746153315975063936050576081540181175858726533423310437086789427044205707980552124815025046379080614125456957700807729404172483705866527049963486849161565506319797808430882504952854564957188708101061184885547773577286003213809162333975315549089502292461439163442413651611055436156079623235077269450579607230887405619333413968282551904604503108656465165999503727904376712579821951846959650805921492421439064334210707538442817935475597293573211214485204191121750977815896066218804391482432407636310175954111006484261862563228155366224787259209977041186500911637856985279434265124644640370809497924548731371146511535390297273357132658222108996332031584841675181786104330037110730621870344376749041297843173406164774782935375143500903325760116506345834072404886329303787628794749209525233880918829016445827430842974821619259548510409833968070613528358995438734277323754787599801882204508991752672394785864924917370390359995878018154333824664776120548435051036508210384255295548408677536250953779360073389295809318099355211802728973862280365554111151054667730028444979392864101634875595373046429986110305995903520474558229862118944290961280051902834210986832520973287884473759779834514268911757188424732207986655463026291765800688825362023427792095402891720355888962962200595764545791023748980555530459258640659153314221059463043810199197427449709569078658021110170364567698744755577392790517240709878848342735934078962718203152834775977724806539272709974773757507112073798232046790584939140858560137184888159113013749990359269416920799221020365599388288820445070539146260266529056222517087205551322063433414540921957268807943409903141844025177349573891453609557001982658851670791790236251203768299899363564795337319265755511825419450635523139831638370031861543320858604871512333411057806095838790508443256838689237880744159085299214047526302494719240359276738967443965877933792317045309615734514540110493269240630472669012530565477498194756699738734397939057862659017023791393838978246229456285825994556108721562734048528975960575314127166471220817587253217927813180442713693693498227379521460664162860552082683845940289863756002866003353151374591092461836442407028397100263355307099307668204559393955572847280279176251703583832614612325219421209594707835590765887965380340270583638289743925933423206548602117070770372188245431016398076374668963852220632214307467637495893001100379474198871709944599459052877422995371757881713116885398901159179245843395852481986675770661707768427481733711583289022103120920479186421965316180339308935460783797106946567942183740020958696722522753606669637990427902216077300591598335486175790023093293300403401285404164452923793049932203119209259636638485232610656888937226223217059593566227936708279323929656384898580425814653005226232329951750852286203270326368649828452531479112098818898607296105560454307141019220067509935384908490805087992746062175811621625581398262938394438111772197560479659005744524145880842865376749600099984310002538411460013445540095697130451913237289270716126189094955630362153323479913134247249928038064142166858233641339258903948315649520873395771731261618881660212160394125142909730503507404494109764586944109301269791910099429665011233595140571630394949651917982101213731511631243768931653180431212641335486988453028978832743995605474557393815614216218770705522075354662057969204902501187724644626495179749775674581226103250002304489232205847670608873065067583070642043484465703017087623409216835936122151750345946861985226418598742378489428896666374066250105052958933776511854058906902534392408088652509063759957144998081442987675101288284057544927430613386562014219042524177943345025823671727348848111334394385818429311354952652419853651098155955659471669424623964267915131253919440276365062215623775660566160580838428243383766607997716785530932454308773335446608847710337576468162004524231696009225226298371652497638564961182353159212403912698133813211436936824307127603783633382098010118571665036524480072563118987145129109462171552018645219451945240413958637733855274234244676111120620405685121044123774448436653129091836273067627528513901742824774094997132562526117254468386171538973039978649889366975785774392489034609977468971796327719065691389604447786170313765929277011060950285948065296574183644752069781578061103414174809976335633098914947924544035578308326360808444018384792577965239993512097210246399624561741929347056035745917312293785051384689453627430888328510910116129389648569433671659290490329952486051555707992071600738209769138542100061840975446454115832875655163253254718350441810599114960177647601131464670320814789547913988368289751049944984578120239783730117128166321801861323213699157561412207600957793048118274931494756810352274189707398410139381842284759184452401559944622323815152052412160323665932845529580276916884645050428546097919928894740983997702491382611879013289683421057423517360942378692041388702392517185031520541162850677396021647240785735988403893551949027888346638025009588062673540605906125906058215296088209314084253592479680034938779556024247410584745851063596878692111886701747874123995281195552713207383691211507339367343814310273958858169876880769928518068320609788591333077838314972150314989010372057738304715317992191469278981601094714123631676493752608785021460912242742422245215316854895218778085838758826582195431099788319226723469132809962280095672516417943989684682642113657505768135341391685955653094855392637194345178322182295665119866339826300722418726205618382054715983003458823600825791440364912509210873148029412291896838899612102088943199797140880408837562123831663140947404137821323476107709398072279365972897999149255285089738356989486954607179263049392068144333183559043357243311841253808350139846327694836982205679061146962990656689286746852528438589145819951967387731018821109905396381513224032944646688849880836258574607114820027769332859170762518231010485903858269730756790700568869477547962113134312123232792019867040565020987245465329641925570930597297997693248889694780694702682171451314608264919643967545099576365244014086359477952455045630707755863893309507430308313755589645634116062806579378312976919859915852529735857804516814160883065449816579187273094946095894287446104149016030291732624682866719794086531053690164488736164877285721949360075114252454129953826540211196133049281230876599218760417121876429607990313241164306805355299358113500113286327872608993960893799767793865589377116183492799754409674029734822969765291432870055564419735806376899963983166265887627802205231271395414588180331290345234190481374446017812557627043759422046741432320322331543627920800410308174635990209980874311296329629395758998005143513471696185931365811015500777051113315428647943239588539597868801459237111268389976124823676930222690277854969013526116719714571259875167907325767373834593976231126315730212643934978626076312155459429120321325254928162993894782737683632454904894610610017027404962498970701059704885108282393600172678806937318300564123690956540900632452110117716204116426618043696774423729942581257754175896311627086222297352610367815572157371101984899189603601908195807608662581141684338289470255900155437757723310675889881920421308256643821937815839993807820265035464110539328735333705687652445854980478665004039961693840728290025788036102496265306769668272974825237087208311040334429552245497190598009042052445689810185810419160113624663436575225128762962773633664361488788737201974205044273983256523217006759716658600070169346162300212632237769245224692885140870773766580237413228747180964845105597618738477164407163955637421858291757013395863404808792856176388320470204494787419364653596947155094390279844481639598160358416394932833870412201052284802023918121863915138789799169456193820601545270886734078323736452119739729636780872501897928999722356736818844883658182191054018990465080434129019716297017793953715151313769290408972879541837302165681393547054573735219881858231631901926870773888737667915080644302376109814911347908285180291299078183394279249560061226648236541794869089635728904309137914910541264694256822648830240223014787867094018985174680542883630456972222747915493373350789135518224157537979663116354579244741295453971535909366283021570097849286006907216421489785302125965695361219060739981312173787204229865923558524282260720437531078997675348423465317854038516071464629668402773791319804710603204217599308651135736731975417769032657278874016935217767587786776760971515910601934354136317077370304268370034633817059584909962742770060602918288909606295859626716441952241593086363030407942263212507792739232492140275851097138748658530669446865312226627128466833186719319001508709711889059919176138280859511483227066882280703922454882244406161203453422874775216297717864338639159573444692031151011663773581202710666044861798542162918443865094337978108531966085043385142287072602227224272178707850443757760513707368615240637069672202476858394643444307383479197892920287297712009707605045878538351293320569366041267154533283767778471730276079963746657674475957543116293748538665460416454614075183026539578342217876362105572194896156303016624017491848618261464066270957703565588703558785476836059802751701114267324877861223084291108183234923342436606699279203124335251975223971300744899595118266424313084765922555011134933456039698039076202863788323502132442075107790821865158060541244290419340445311098396287754102088331726880490102473839191028148112828063918905586548293565188246665001471169244584679293447875453388238795978427503199271570922841009942213306585146605924042955602888009884579034640633069525570689592394590991396275192021205562827254306903138607744068230458078717523419702460659007396618262152609609528274632462742409377315014003269472835929793034970386896370989702498752204352693092669512700916314984430244805268758090344041027413437003770126780445659409167339341964361501067142839868617408428836196218450541172261561561288601063514048607168546802878028442057605100888946521736512800034377284183401487798954629607526945953695007094441605356792931757843691588514879119667852050435429419759138689156309354154701775344908846892567644723569652440151662008143566262929580281174937859335009572627639681464015494209323582977311783255041288603779285460738683749101010357621494681459436711800747647289780067807087287751906477509163021033778542484072849815524915027734117226900929302647924427828697552884977455738628833169554503231078048191060330781300801306410679987748956213703193542698036667351852699554025447131130015791841996989631835685858646837000855819128410706535547824728305318331985331028137344245251440330397820864867487335361988853585340433846541282250178832049069118354428506717664210722547922596906145536092496515403762306121993507420206108552058641180439138963167612726474299269142195453494000080213453357023884642088708440805236049934070855621385010077384821062074899924907601582234832815151978542055892762161379360321904912345455670603809019329383261567367654484714189215998524440671839507584173679572257337257432773291481302120866111501001761409951425436943804403170341143025625631038367696286983973121185447677606742291062252757306514334943958062788560280995139709009293011211333808845459449641396980876512264215704839662346629398732873915043377670809011583194212304676411907058121787802507913825965252220919555509954424114506974150681078183562286166157712276434020879452991598601122626358464335343589839407017512895257377867501033277393234081129131352032424241984859065847816920087876851847957544764337181983003170436875108370834504665220672188239741324008097201800012295406277823397005788627536630004008433128263811428636885724097156907089598747755079348530659785372010766692134731463209306383934008526642776294408155865202778509811149030298744828530066154942214821130032493241431419584686472998578732879797297119762550014432122056673432409340969861767853731227737923754233448912594264328513629941916190203975410418795776824810338357733274378561245772227992024062975268992105681429562924358564974525474413485147260983701517276134363502410829771311334993725944494107447919504113457665082781091339509752891881895388648678386026053914616710462763071515578680279033204704842811753880544887545046913074393214311260203638222517411988889885143454985162357792765586469853032077451657930385436095616991648686908620650439164918748722913118241570103382702776684491811467023538682255868378315769757425297505178880651975863217237149812210533323939882665438325146897302497593868147568721937484649662345021482731515702551799104525915080598411324601939388219488768476345648372994637668658687034103721000992756649260230801159259968940664796883840609664312491808606016106428033253878176747061971650807706636212632137885565789302341167831976011229563962452286894957354817775744740281909148710875560812576288670795272593063779481173061600971795002690963667768660690853544473976568966262420324507062958326661201473263632108752687747699222407738864986129902284139802846924703088065397856731133594663752393728021153920924922145320470408615970762815578793122728479156869392645843881281039267120758516607851245737021622951427395274155116297539601002051758412828348350618128616588391111335549206299627473242996618154300862336039394343711888119800726246478911087700647486836521252592774002249916950541444833951275674148619617399758606426612180412874387605388312004172550398242725636205296374029329568273919214655786963441087566589478471497728260027361966210483988975373943587133422462206145478495688775368123460619977902058503838601903274914973546456038928684728865773084550781691880024198923325389790926964693436760026136992756991989916996963759295026797339283063519054328564345068489812977883491490083802958054056648184263590045403198021438888322803386980982252782319658434807925292171380596390123472150188717098618343901996744920402904132964114241490223129962728542598194775452310608854224399048184491452396074255830771586560709780216479599532290607628108131392932548501031232713247606182908713217320968871373736763367421355876112868102352037569038191476146140479080242216961338521222621679294705299276800787056273350188681167795691967242012516753089014384381472281635484497427657436918503677269966440631511272813683172332903921895857651845186109045881233275775596121106301337558933524094108788574787151675117944158860435004508177578843803413175135834670779222589857295246819999976619301099476951504079070815407756271523048710607587542717027278155767164673961137679371955890958197137299476299496730470718218356883637121351754515040601283343699952203642839039829418122057301572507926670925885458913472176827328976055404083646297549577217785322746224104150094889467452255917822619482710005583123696306447741470908222309294568631511195455134122063779185594389248216290599435352524063534733327856470615637867230360894770709189269836996045025232294232790797244468265594494629980403733039256851149947376338735484333902852988342680894627979338475289941893858496805593150602528512393236706740261830350723545542335569554669656076675321921320511871101570355886228632997406798210435621705775412314638682386452684282295033089797594162297366737837084548351934897518452827151668213624458184292061055463416265551848969032765923743807605516083356894523664256082105844075495535571063733219984205165483032948208077930692002305104593486545298343579064114755695597439454343710084603263998345077897094942985851851631062376211258501366038331911783901394110252546168074487416226281559021883141256650680082161605041431859618225955107491197357115422762358807166972305433142390679164644171949651155853503383668438367124514303458070337095714005895289280934975484825248669519837860848402388156555108212280409522984986942330244922532898442052043358817458570712975385829290294007290109014290467914680211192235134379843508353632098468806763945176236240569611632941056921909214244268814668127165702654002796245172958748837356342056049235497707516399961986852596424939727011016019441191343650470540737521735442162888278933624885304805925062550166862011047685468422181192509805878983251054797298621854444150202942712304872157494846526662290449094484444992471464916600729046223417604423771153401623828821672593091819440728493778033898561702517457067728308253504390763171393988501372830202530192453010059135574490516692953776490013957974644146232900325803222991497568765139913872450518118620902429608038930703385761627460932339152297153788550376635704599046669726717218689826682129783275452378579610185942782140222767514747040164012929002666624441863724785167480454478786519121475352890871652735014584295093200502041872643572135438401659084690790449259316517527631235145549448807503679975514351098320359331548005794089557704743618785841687419005330528481132449414497585665361956243916431976141826707876946575923133537369963214650494274479361225970177202235864250235716472879891592956412998685524122543085745378405183508288729540363761232928895340218590185525991959373817526216287583825791481077291362604848752220132711843859068101222823126122112166024929014215183387765271893573708450420864771297408756260999544804227386475482915720968897508267889172912705270549249719381751385904925642123397738233232943378832683329973102791607965323864601422774359430826072696967426409482054632230991990027175100098682318500149142150286923051467531073865338677328300067016355886217378983421420116671028581710960024942510078241369882487823736510132360770173641242068811977302360689783287618470333447253072556596967902318287993595037450966088085358464273162090993475952860004632540681893513355406338238852591120559410243580791664559889777960060764641660717598015731491601316170924431691756576843672337847037907023894082208614809453945731721002896537211128619326875231014219602658195101642644245303564550685805757991379390169683199486991610219035033575983048673798765927925081465303117967103939320085568016420730866736768728993542739928934310851256190689826875953766384199454688626954023009451267199645577346259305474814862779773730220744826963248618894547003695974598382427748831446784649197316597511385872587474601307847230095685776043119049654680675228029616377123532890636506190100956375428421878270156401655453476157746672456999433622247296028723435021296475710742168416229268423711246208592681536046634390506973107538911988719075632367610925945718093416373574657787940888163268538448138458956613498702848680468030044281506788941486225206937055355171599119419795620080691017996448187173956714318159469449095450047412052979788233919351008080514294736911902523096882773728259729403643456828010883349683226495390236481740332780824289972131555775654925173716236354288165300664464486116980625908633103180394772186448443470249625860845681461157659157872044679403741911579976230431331633848031945230248751796614345111362301383975439301680021932091703575756897040125344903607287458561850623027450794623431530018842985433764754288832195943344605443710967105038746464014360453501130537284416106008244800368701059511584925117319708443816840548748961007806659545191929769887840886907794750143604925413397262533316756299008819081031238512906857033712943450975357256723454388932924914554537600844400304289257042156031165284221704015764345730295262752410571098089183326774966293416752114386102109238998473193001698714895792951287166622477646250613498009058748134667631712157611099416524154367324934462673389045475443772871369769217848283753548547117681307327183578669207212696401252498735263269166176043907178171043060171353516769639583152764360558174717980849894157304344537155744444661623372290438993359372760074887729332630769493932434494709545233039448906538916755338122522449813957043592877991983783808509875623344138616814456819617224606080679760364220185298164572654984144484761107903715352011210802675959498481570079975478278603113815634145920715450494630106993715983006335935606731725779109251717932516594243070868487043419852828658540714177288923783784615755490295477283582531774207677784258789382271018950684184467791837936413084738600693569177894096193641828234126942541655454824606870452249280554884955555817519573727730163865720944899038542505325265661622399654972835465332453577632978265173558551073017934760220569173884654522327154934857049892739821168773360592597265604957416380768188963511535493303391389147164572505636474121884002599306774780622273702626082730016322327963369756906092756657428802527861181518899438718287843876535803423013728312711179108137129076798114926531449137978359515617802537605468620463943778606308746792267865387672789130966034783117262792546681193388351982394653497224783134128873038981597114311655714059749770743802858758469493256205654002686398183818388417671549445275385441013600936398659785530307598707095889426256062625160954109525327622172419239978650597109988598245501364372754309557919999290135521461686182067129681357026360619680997757045861214831189920888852099468594775849818692324119692770029702754680964265894662373136806249977714461542142696705337440918164797679709084477986566199653217408689862104309609562693357324422780853026548165571928240462764771067149898799294257579152042647185119864296604306287530840790804080959578502527337222139490967260787735492976708797179742256261939092070021336160801011461066302185400068498905429775113594794901832626042008395210966282245833828633829396821376357638190963473193468500717848309372003656842292961035986312579026213264692355322310533096094568090864100575194176327171581789211120285786255317372692008150708452931006016382370452162985043559901771599969196706776331637764543454513277582993997116854605387688115171450761061204913922927392369296515740442798701032087122633403292309831239018480196255779552417765064498338860857783611702133824516127343927411529872968012554102807428761508452020122889401315241677421300439970738348624174062524033231849287972452698453526090490356169657574987352180185281852865275022802354996279060319824786904556585951665483854676525158434493369065674780703801845519682969503861226912413244752826319019219691998643942637399385020017569085333544631003201731314538071185976117862147529767749090331091173995366106360605878628091980290067720399059002488530756325830572253929339967078980186477854535634506716753065334185598791579540169959980442694800259452747364990454276011203632946996240932689932881234933069131012335084783077657834138592012935677918728839828460842085556873404460314088362082181954358043395922857357777376435954208780669551196868637266166366643483385149047765287697306391496264148661294175666071833447717486515359187080457793209198761212784119874505027633457615320642571807270001183293238337866896681527955484113764147346346945491919705369661125205638908501341777382283783024873222803570137201822851443994267696601324141506254831615190265035053772589367534482500190986988864584755123702077841316397086604889051758556424916177309743058794091467160570636669557617784439927055868244855300274220406176782820634879006411605870024010786475324979439602992840826459279743273812283818740331816030370610168735878014068765954653788188529956007505548912828786220401212450329998430022190065875733242987649497536489063126704089683753820321240142659717163775914263895329764314145594427682317973416598700346558400494659346522105828892421008007891859553365197422771822694298562365589742930981050089343762613079622672865167742989427445388770077441559612541968280533716659160210981037924922512095917621216459716679136493330710686797012054651190532991076013213725429889697360662642542001744882065698850183876243406873808470147433527402140052167512573560428180713559711092939912032358753261004845837261656867247847334159824521310177150739082578539989677371301068159795825288548128766171848165988069563795682717618890562599693849851947989496990971625906994083576328306646724701990006939018207526468546063605785215096558451118203198858292046874388500874969613301821991055385010051320510362771271581546758071422348343494047926142325428018878319053914347704467382746405119089382633784355330997418038318879075034230226012559554983648293022879150603015772249643830309744264215401706606580573571705234435604780213195692654117776914848830942884785964794480075216206904917151034763424139795726253340794728506955473670774328012163324752859208539828860888542433246366332842437662925246776103074742218625710233793085820345467505528356437372733704703672289708867330647392410695654967432450556527724756451163650142818073929244860463839778657322572804802662063944978673274808529854703201910209377208568954150492094731337769717659515534537014815271517549809305361937539671948850074297861854403290560592619398884233638478330039059087343790228808521295307540791023790420093927332650400236580652397670709537202810268224469982437866874333292046055213402016572623362124386907387892789030277331797728659455974531580630489244059095051911918879804524325681591662548259980769792376036370063593449842980663017701312731184687743069513914113537408316947867266207200676874551619518291876533021594390998107896596495330803216454287847702210483952163484990506940839753949133611440867424059767199365824238914050932149003575214098468713808105162685039464402356000355036245207958324272493713256810166469954594406192801471884829291382786201763994837853759687878226460809022446877288698122306803916487813812909219476362288456826649318890705223773703078908321109419742084484740664574227694100903969050338847678642121721363975703700621897630813395418005478232949314394625565075892420477270839242659489338012935088647318172036541807120792435336719943055952596824001503892473108185794033143207698658761993923241965642043333271477854187749072065168847226636054120716390786601345711836254018418154787454241095958172543457895390074028627647229555021374618741591944623549616316837889872139466253769390026356931479665403233709617082544086427859928277799385219996881581731707629496614889067114342999612477098397968166121431037717033593246801628972376566480498671180905806930706158754234351351068886124032768660743029187851918689520902585311098268116012279950610101921199585089595525315471950559184531011483863129324415137077299343925298290013675221756668039367699551939228914856891193086885746068049586014929360806238731828544275549668406009874448364166319472032252127186661293713804681610076105915297263302823133136894031212494039544477704242116107854717892780059982503882598111592781402683947241672205301359257078156356068640439484394247012433026602627899410492985955117794170709718748021782210929236037438490945358363792543098695712482060835486245601572015569859124494197439048190418635261004874859215373831841005382469306500220757410977582078746994389610540244692563468655181152884492107661319552279831935741738793108167120945748631662872305558739296175752958973584384894990002610393527947212062188975933166993684166251359810800612153340078714384511986306205976332083551762535334362753609286051343501302883306749723338707070001422404992808477231685355621811229025428601368992111925871939202846149418714432020406431612157835927298349740070515877218365425048345758443625529948264197487538523289490210526999343694328341378367020514365103399500494892881790347508057094839636842246669811360806986732397024673395867197392574510647941626709634770509274458716980058909239293134039068820889732647216958735114165989842009906081876855427950750689681472034686600213079127000923814159099881148061938969039008870044469807525737131918199431931095430476105950481761056654786072137190135110329045911905899631980654154080102999992061183872527530576890333455802096721561215079967456611447785998087632048582284393470070551458530049362172412307272134397092663347842862062594397845123239586847739207857803785017138131594441259256302970267768021120003400721872232070069912686583651452416641566858661221928149512515109529006037766174096324778540203648552966219366565563296494614835370737594734009991869795105790730323515613438828114513194557006102121213515734754996726622660878326791803171965165533781368923285033214817459833311446977574923327329809063648081577842375385760628481450002203136687784097286697710057540137228888862702143909404880525112001771009126673248321993757405391224741164683541289542640799324000847864070640122870432495949498664284471686843201358736817408788697568919861527702851819962612808179572039948639782607852181305432792113977700058323884717020859317383672187097904520069570772695573825112224879527742720384096792864106594986388563169857904772239372610661872895403199726358610041565840213203865125741138472008202044993442731476948214274805577218589859424699526476879363975033744178558280551485022352996736941649959911361172418236019782149184753454206688543611070815924697337631712184545395355570059560187348824274634906112586255415591786643540908179521956966038453722078709551154851502167307647521479326096678510347595434600225916972886466963181567072069927804162201048651770981867858166864252885133804101118129528901485826926824807790255528018988902054162714606540003546406489920681073275259598881351067450613504740119259067692441449648699770905435557761007264908454324438751002335670982622442686159645517048170281561913902603463914667686470149550424586759154572717896558037214633638029175399823467336763998322500017883366905956810097050584635000950311072499013588013574366809192514008949370441979608770664468200263638475299664841172280589096917944038458114210460671243870657952097437066933998783209029902459096225417660959232220939071058943090687743064205966487328816113896507589459202057763995482745837312140487394576607171869516086241007866336827051382685548868932460180968353735510919991729996188102728336103089832481611988184987009751685825603445066701877077995949368437293207748755264740633026168337869790486040943448368955554217310900593888674162293137673360246778305715870442036654396090497410505763878059023066126714069504832240933453145305280179281574578180289708795724946708384099774177792493701790801621668342439311941122725944036748134607526167126348031244203602607903437781519790316266267729337003468921986589522640619457481711014692228979274995763310235594536378452365529649818425707379315609381953941578215859685267998211623233851086219014572876969558502026212585741388400967387187329746050431580700964286392065933752578181321498135697485822722346818329797543157815726492286712510990418027028722010842690605860359782627857916738665748878356184203487757751134656021827262614470457095837721991725022912080268918775787557061356852169723963344590435837560505410379164666683717678783000298243292495501109907276636753397446049272653285918582016013336294799057320309518807225585263619473981734581441916466453566387910613415933409080822715689909959079263384542359333659138740007563641268013160735100574035283615151485319858299630307756386507532181362024578366266931221320832256151566486116766373751199368280163204376319165333384809202095097928603314881921876816342818030502396531326932248198028492139467014818840557373515380365754447765535670811138234528350622067514351552939199541994519514088033970406966425049770035540059358513329785872712606791990200513398103606431360649215316333454050926415482810742645868242232410463487460781925078872258334160345810458409972331257155177267127600128990366760715246965066851771569388801836030570356704412868047584061344800228418665835798225974415844089327005628079571782843177663136583707295049060378994313397685521124130202624096651725571115133680212566611599418795313211995419659382973085053540691316007449800368615255452453741743588650475355311694904181639405200677763394875284075676134641129354017221160897137300151424934733695650766171742737574417360651909817890537648464958913159310725777317986817544253921136818657437733028616906901173293284620327250847745365447068127182438594792368550839622508005588340103284577814809371126197209827122839731830270816950197653126582581966501884389897293706452312480293672988972572619046995944107619646596911002231324190701972889542700331490000714356472234712349279938244444514294607502124689581018921385128215114251367540471504376064092691424360523014263360256858826917451831020649423895094631183701405593524566291778959449612183264932987386001331147430688377386060433266310037267099593640824250363628604216952301681980110434731015152993388341856199500999445382894496824265023856589115809316561596961351532600638601599259072963945679793248583319688920321568991566967907584696570898705842754540670416561018113114364309676430992054692250813259850849336528629727345310746169584822068585883022838664951590565668153586935453318880469615306827215587805370033961375643875086050285271639989042898712810347482012689743796276053272896740659863612489557895110379099790303784314495653306472502720561301771470686150778243028828023476803759263320079146267705103778883086214012269380795163152306500046166625658326893160994197079257270583774820133321216276785468297703269536577676514486749247459824999282346945028286281596175144892701659966958038738815804434229188376263560792403128769863900381536813685919871081557898033100691001411197905346363714139716441705710968184211810162070185064578580202919621583542291079125400637505744226833714185669664593142315633785317613869695243794235964999535761822999154234617811240890611658737005491422647127998191956401279068903462635369090180687951377401328939191266048220320732226120378200727241779842576405215606140009309248368668590690454606653728923069927878430856437099341431996036980068058872696039596820919782843174484167463242275546450494907064826795493077954588566783744572223523978509308806382003822093530559825144731283464877715994716489163768561408008762214767910855181350105035867938433858156287891215649509643643609462872145677395080398997425255478967103661764385054418285601217562614418046843773077741152046617415197029012185016152970901217570011142187717908575702829447413002318579298737736072204717978561950255135378005504066911995104144575207744654871425674500333447221569768834761193100840948955018954443563401632067248836167948400030864591116693638882652819545200044444187786849773608934552412743323905012627471013662927500157725159886626553061822329477832038082584663818737764555850102206090155319620696744995132017525322208183119701651971062919740146735880418413192051460511301460806795369817463217763730119352516872365775937530870621776149439431566635420293189590279761136700021681077620840294667410032898177460865685789602047006617624707575161462619355770869909938247807188562310778706634507629696267967312202588603542495260197310589604238164291733175908059905629922153318067755605667523967044213319800546665283300149699234867850981503489110721222561537708188648979275268035484828422728546758073112881724261824042893690493793178677974224409564993544267632494421634452516437157020620291420670930787898225366604400197674384123070104340014261152024515413486691573088387956831927610295941316698300790699851666634298463012713198736704307340855105357800838718166042761135770841708385008598686221703185493983134733142439546541611969513232380172998250032901238655844620491124872423570958647127084915543927920845567497319543573344273248097704655479855621708283645114778495395013780918821324493033158260366319831309854071683847573719917483268166572278768042473995745846832353922290492672285618869638366955101497764289589895145541479279292686117410448152948681245268638382681748543930707352557097100892212368138601401034470801485101136433570309134615240030047181813645635626404016066669208953970947736939707953102915881375881394701188442640761424861695753260581082181027752583357371959973607282726705979330559742701334588962110669221509040439300892827411769266970029156322791216158112881028018147812874156031327463174069182573299677778446838819624071099584787967955810708452891425358774677828266524396524138980922361608675957810507993843540053261058301055973198504628454566776170139469736070323194970429468719630843574016664516835289890057759488865385762162947302675627440058224564580654943666000421891650510002573545251459839652564565072159317803312936846718064159666709945992246203172603102971732949280455576795599951126638234683689989166239142755184680639504453363322971741120807591090150301442656493130087034969023268556850287451076307766329357077486611575089870376918860870007842397070707818715655618001437854466713223434797506124151678712368458861191198916695873723420206928618576993851768418696951337317926590102451746933449144339116510998506353166891666244360817894275231964834759756305682254670031332052611432177547664692725103777006183898497592580616763305053127038572539455066391888286862371445086779196114767422304414285145394647073527470218422862723671322724459722206315203783272020148444872520028636654706425461669741586756851731172645003768995438675314151595244899308611589051624352822658320973417733546188588001661087184330956116958513255866142583982799987012216850806039240871896262521485027898704675477010220320065816907061207018767258776060914030707844124559294850002469303173607294560830665088861516733752526747640090558593764082210270108725795063763903823822017717103975559506807450882152322338336869440435988764226657581440107425205122196574834147466241287345023114847681424531883405848678978027419316682964643892513077179404795773742049408513431842873121083739300750049061711552148435574509940732710157580926571798188078674072613765482096537171404914837013977553926015242990900653597735085186272478053691372730501184631513304118123410593292883314341194002761317350608952935178387343137972046239455967954420778790572533134052995175560319516963078478805534973757256054618703910966698717213897158280911196750393165774410778022989998136798247608658823623445568531602979782821179835082890534047623593097619670703656302859654237704953854581692832648330490292982823891930753929943647490573967475153856715793644088285881126962019007685150111794404472447804824170555172466465198772111781570619412703614519430789041084964544725635914498738091743507457467799272660180405825236921521302561474413897638005558283712520739418953434132594330648667449759031304689521488792271776305493303284843020242537541450149657003756864401239326331457584426579299000917646518793706083299680445895989180232171811543754070614826410884343246884993473026889453108607597063377588264218277274836868288674789745522898495282732912068927661922062111102307511088354796630732288988372932180983402913047392833697884797050319227981694141202162004986994676139713145632226105669480912038013469866208368734723292316819466623543694696186799322072600017709186163544298030395357342839853841407907241971663171552314063360151406113640505361036439635578045752701158360906843000275422475669512064354374317436545958957738403225055702065011525959187871156741172610658946171920959840029807166796374920496010436694592485953443272768826402261798707057873504681324972588030345531336163574624301885519225810927512254992302368569626777828513290581233980332273043264701079318644409267583409336578218547908364619809886058192094848414079490087645447222326567282284984648139180524276766168210273516902324631513915016200402417924070823317825857764283337503935584129381925686915881293571837344777211105228506147707990967851290204536281790955904962681467268881656431259556881959703419810907035905370001831592476955268448318288369547998321980004337872038929943059503735576048902695804600659092048690554450969698656274288219815470212276417551066006361464427011043055165544704494666244215210024740749851346726715251457255702683880826887582261780687261646793965479780218892436540269039215420894129822681481516624282501545556736362474449722958838873308914777445935393374208933299662592125793834320643728321234900136781048152113015052874696488141453128348741267622461931999525062903966453898856799947963110723757029785518718488490001472554653582059424581179722625512596754415522327507304048010718226621570995696184425957365806067452174240996943428872462091343759499504093290634010673608339750576116621737256229463433167802162212287231619200757497079103283557718347763311036704185465939916613809724288408895966430952894672922110318900453239633846614530097182248316000682718819630473934878435322679209078378926233779920206446535660907787302527593785975978123128164398953226697134398682542262908409272026838960429894632325806073776601209361431478390596830813746313218235739106258954338948536530249863695953295258345829160464960814125641893935536231756168335831516344651313794043982693691316948719745830256834783215242596514218373681618921138816798977030006694962377979775233660587541520658835698777163343631115362915288872773067323877941568085079744537903051116384259788907604614020737522386039897979147136386037123335071536255175453558840992899041302006598421174795565922093284101754972738333934568085863438367864018149025817794329737924768331415426210396271893644987604086581474029206053331356804557934505162972280827485435329304134392616663921646365074549149591590637285947918406309429466987634447057260809184286803899298768012024282920296947683857901142327205202256356970313789199460023428177854608685635184338090078805916680594830708751258325529881428250522697397789887454372317539950408627127070735881943894470636518219531804098258346584411192929817510355415819867059266205112770498307257477291985411496143880671307104338271379269256974468573517492148878370845859441773249844640743778073845340218904704714507648876891557171762441447119102476907683065700874102612134669195453081590768654779977414488866388903013863136765379513479284967642861074948867184410756973187302789285765052594343682125824555921315718340095137135106428508708148671551999121328467112415197079324258502096855195408518839491081166762832296450297314990863729241654756736373943826296061594784265015719897266331901416333004500378399478065956185323970954669362696229264011634356374962358408888678479537092565206364258865543564402422353960700338591243855325462902049197795243410866386208544168673372472956437523957598345661745406361220985326982393432972955714616687916130109781286141947377266264422021552048918555818678785648440375763554189166368383199993884925094830627031005162646399955403226344840315379733467402802600519290594498735441230659267619331039918099903562517811139900795174407517780433545173473701965373330443794298919226798015998511790749864703714755494452587647018252422884132741352246287454158313632832568508880293331051749027246217845385715517630025294354901111725604749167403643582294542963408620120023488490070540606822425446717753140311343686131995430464870351702724941669598213222485843405663872226774945680860670278044531613438861449386854009950868776957627799920646280519375527904043095534551785169133977662206530737285878929117173344274289515383346313728412334092041608745531289390842264933000764878343051218198796051658883641700702365232275045512605119246015536520589338839522381701710141221141720675860175492446308912584138343976499359658116284410846493628749198847942659181579286517088034572724232231832268661528408712357120760855869998081047704242098635858445193923243580843077758386201134427255508082487319257718314309268245941575411822342952514027422101126858729013148604441442085904296584853799462578781682378916144689585444992449048705102695469759045939454319970767770853291823931069463887910890067796562476731440204906608934852201782648156862394747955633071980713586151920567411710081525321510389369160827522966043441187993347546084070693016375754758578654716696193060231072079682341116459546076911957649522721003293974931701030212294924056213940127449626089006674693349992630408062866110330041064327453090631769535704263649473972204766870230825668391288817569773975288214207126690919738379359617310878292736379253995683933037727912602805167316331330996634423975493157346093952915456284570078116687716766807999381951242130775764938531468839639870477044863657056723758473454548113226620444100978729679818078744855937944209848827584209897882883839141647533811740154873020755564292683062954564740237284726754294871551154803208082144360578083476608334309874242391206104762457678990737467588382027118556806452777727015294135530694482552693941082955960032297837391346186447049941669487971856773242854895564405127684952703217281058648398426008425435307823284201140001848631885016880594953240494702889553970036695777875560901941508052590033190154893337078251960536194569455248246886810293289705142900815062625281280393111478396459771683022588994460415346453075272429337801332006657885518928979383541075521818962973396199727902154386191798087297644732395066291037010270202323272197924173648344564731687029104066056211381657573503566186461051739092641080366319051831799286379249205597208825435364708018176106685593244355589785706513669135284214018425963269519087502580469582348573273198426482141460020019979514283032307249146720838284612087645832673223667370280185676405295854515146628306552538327971930273984847661225991541867406782051631562715358041976144171347207452902635335156308090943027297975002366364825511454866351039177488071123959907034017761743578423067449055303670850949965406943355852639708375825886680089730220719327416809219341734818149532506753361069909637037776558292078656851486239248589003442002655639989679332906064866956029724804223146248589573916550063237501311850383529192796121457015073079798660201116423364385313996331437079727991456592503118822434505436735328844525328290585390550449600808146409911610638649083521036150967860684861417597762184870244182854605098908141444517405218739340315749421658230904203658401285073284804814256525704923788198319899564381874246615401734333470060333791802443825665615518845530314225898565480161723989058732666445577498332809394142409013259082187774161281811224960702836228577157207506878309088460759377927227819562400631507162219099564478558879773328935595769468453295703144143272921857832506472452082863716730603476617306968502626591349875180844102771791813461546213717597794562919809988832876604514523286069004733250832983177655266859011018615660220767426643140715850576450317589877873155622155694256127078871475132631765396838494517848333078336052489692040226714199995237769462157290123777871912093944848409552016430561015813734439043787469072980956311240699543223232543958745665556922234383121716017803239603497792648549974397667512362261896238820491697499185922113099541637997357782974335301392174335311468701814457945928027739598003720075462835803137215183659946999312031174782574270352032067909601295976096659415631655197646503728172639495293535533733417532264514888785203418465258404838313371126786605112208555786322504843985316552726439871051195833569565733358753027704226337891654103256621744910288229177374544443675066567004165248855067567322043710592519392538014432199842638872542476630685295370772952349404218726777321133016199522326411549803578412343799626041410166459695116236067428544634757530330045667313351509857664968294729384579301145820101367296759297832347149719304278692622749470280246365643715023569931943291351240842646041740966617772328399865702250573365221902819125084399604185963026620564246479710760060987816063338824990545985106132194498405757841548676964231326128941447588214817720383694288547051710464774535314800356230770626744853383249261278119561670899849508371974012815422970125368041220153679054942395456296088974154263697775665913451263860314433252202304785461152717303392725561693024811745174245000843492194142385483974686905605641380413158999451727554670408555163706058529174373259791026728160960436223645777756333181038361801168762198723805638166942157521411515761153253366244667021374043146957614880452452996007008049970181071906697538842424761865360007877117164228705396024651068259317657072193696872609661750600956722762565407037598728613916431257056281613830098368816123494912122424473822461918261630889915404432845554888045290543558103320932121522925668970478334931030487352841096381778062980848967904266859606354515803994614485334662651568074561425120335023232879616690536507011719173952569813889584760066355504937917426034751958837663658373769797008812834975480739731132730118144037770760480594214979284400871228799429966664710341358354734353034085038545937485438091033166977521043980371440768829892445989446112339816621895041921938648512704425187515276777824994306789633568014676856904176474850239408858297996902843161768177057050015475606336509890072184186690813891781132236382761074843687410728926331888618244101235027506636590192132322284954858872153746832959611356500502387536943535486104037662711815565804213861671927114910361118019778316230951480550344621973860183440970802572118002739306334544392443041120547761738241796488659237672285313788390506073667487067311295206909478166708863020020801901015570828516703779558202108737022289560457073484533172662205760670896224149416813540844466939728872392636669183984029124976346085655627991512705079343439788237917092001680123789824478312465350187632244898402556064011458513240183820533115457149506799174548453606245642889475438329786571735140290643485625375938094012973241654606183420519533277969102821343682390154042122196491910010400066294650017225497116746575924461002614775957669584611688883982507566690777814406711738679250129199516445429105520044739790260021677689549860974779006432136948376633725159191594662751167524756481267984580457565517608372259273231625546434386173391080146569815590325839626470073459212029636970601505924398037084572481525725594793315621927174950049809220720382448303844467946614761219348126101706096846234159390656876390289111890490513327376584645637373860975372853865208099519847473066368723446337469682955488336595077684812138501503379548309868578758465929014775080824278652964739122426638227020709856151872166991991836080600201223383810489394144055873071627755341500124440452024304247107022576737973451401557932403261234462628721268997590465471098274150747941794068784035063593322125625010257611833688031900027061840940616393845307198291582550104603409577705559027949631354102418532496960532695740613494726192559070891115904780497749460342904910859780549667147276849008043822259880382499171676379605127082869315181146517450883965463223476778065481809243156933172182757432852078131668352746878085652864935492588784595982533808678661225535438672495898562293538664250627431542756712984209373302550103619838435087408912995285607690728892001213110265880111135461267515909590084052640976328799681795438616776596272875000478351593068773516235641214919971499973848512174453805566839279133990179668352106936125463446903062096399159884024318490392750895538332141298721702192852566081531385525683716117779400790231461860827326766416833232123916257000651110353412376740596242300071663888121218766239680839291608174964641387057844835232289762231228929589278668286223440137206043753263365789152069530156229109902988332300435947848176033358059709132450572474568434533334138255238401350127993067228991277788659985202951085992174283572053545541426574910823429310526290453408614159108044147438242291383475865594556769540464234332083046211210865787473981662706268551474515589549633931962068279431374350463333642915826468976641677183629702955567968743450879927030615098501654065500052763513701001314618422588878770634868666657744966922391713581958322946517154342907901001844154884967937696469989425477314774176366448482720854878512964814299628959921415622958685777823839372753048745257349939880958480022269058911708102505706051151219422297301715914328193422118657158296519895047086760321154875403416919075848525066606138118412595688840365218354407089993976318861116020705796203611971406567876868038667081606190814999434823733200993454959810964373650481914734942989677353724613876979723641780915761840554085872221281994784885390885521023713544661090167815788888075086525662519424612071507872684829005167685915490830332137332616779595836478270670409904299619753053684935687077658941435383841493911281008838679447102791818835666571301838256480173131042259974947639402250714119767692706303969689547205015221851854151493916126597833649227573709032543227937564782057202927557911846685296093547213160161881208411648021331542701135398185307768683020204868742388190935358491068347812279839842893675907139440963236126863883960574506690475817648431876530932970375332547727743081675748179335049611249946382008132568048660008387457490011157568699738279128082798350552501471929085725087929739689091350637759676789516267989444871310247661995859128699270387684299513381401001576164062181180099201202877958251929517311239496382130467457381356509513465247043780166225429713261546096033132367908542927885208072059262157037168788598888291559584332607274140771360776220952343766451176839122293370292244003503577040717432686002168024436409455741314227827027944643156335661887929740937123092491591663379296011942043344883295646153892857368556886678686353508153709186872474037782788105222379302105940369806048658252145580507145040136561544157414152233271093309744052506331860162129511780505247361677035959594726481659571600760841870299225747128489711795770193884259497668276012051081496211730028857791371384246138655365363854285415740683725336270474088512580609164759907914311119988376951077608103979836972391501337160497667761081837872095594831024019371849001456146409503490246619740767202479816157035523620722965152693625915098128713747077791357563175471091083733908842566300253224063657346997064651285082009865183977022021804497060871439712051705180209301106157808272618575976459888413630485300180319395801939990956281910660805799559447030619869504632055736404208713166755855904141478662482417701338393918406532263995800343241176908555692101984318595980917426160087063768677784603623821125306538868985666655002708649830585046783177568338145848192221363255630135085444199864215838076921841087395642105155551846442615101601424926554211907225633980420845603372570972955273264493139957235924032989763449952689430784222498883246737650025626470382234090744594157601666548500588076470730067938785888291526597133196310729816826082857979288792287378922033482351542636529951512688250212715743293262494031903021185104147098626357363955936329708627504125856919618171736392792877773092756323862694545387923102499682264968233805594100434830491673025645359794284208823930132698970309778664202588177354863093639994951826776762259073117564596020418114348369205793688793059558501833008381857229498451364512812504754239389700530775168631160748622746814069257865249666697014197777134780656926652108594213122802680777820336424548476790664472775352065772825066114131845965672893429446365349313288568440542659308908179779835183062696456901127013038950583051350257146383642733126444164867748112873417838878284330881235586773729607312793101165144352323479155833599443316505655949456521714861542696322213084124114173243876838785073068602452963811190586911998011605712636193849113118182065768106219118511621602837775103691539496010442793439103303991186524158880932221115340543742666213932563433880827755278693738270077599272939091345755751689971151715036190086442407223293166017958746900883641595921765053576720138449033417372597322324405525318386157703747847096817808227419496399687133147623746128459739646295784486433650535156149855247518772326728879657326295716957067596023371152889932078491855437297682256486405121719210028803937624549025259436743479959428102601122983334922780911743792019605071331185538119560903240121667796718830051195051243120646996732814931886284318930952776035718608426034969449053197611701034380233134258775827559046756169223817411647464128515702931414196239564476558307008687594653751004339333778281969829278393767957951829011466891401251377647320171264960235395848662582841784630844677235336947062789394043306636345662130809362705403898238704374657158880770000922061066044847719360807413638296990839505709441106674861310396894174652763162072235382500777770106363296064877689288106794593632239105081587263463518305503957414516309600480830159164388013854704577425317071778153268074061404201182831381199151393383668902021144049057886981335405624301439039748045003803869956511029612069079302293604151435921605682826555652032096755917056686058275641541500075931994584402935794365911065814305336676524327328880402785353339815823718362887703994973955363300383699295769744726389260553874669696144600199675860109636187101086210812241982874266590178336677460867721639965534700847804328218121160554799755701228709919614237006962235243384331735779559046528228986240643264275292323625479697223263936514783804742935638153086169295695324390494199299516921981760941744898989470689202923754020381465866173918827524593009192694190954995807184421664952479834507733838619385201842468797866846721966190665209573493857363243943744710717414494389058047569151530905615080013335521279210558609306139712965964742159775702032209277584567456210671306290542333598980627393207212313555003798169993325799253067444307308657924745064167769465511551542621843972108250298322247887352950167858023577944260240715352845522507119475722101400467751372935531602726429542459088823381423095807062800648678319292316641001923734191850339866810792449872524961096447220611087243156216506132211873891715039788846854792554336695522898996155364002659195715742108067321144577787723344752171289169385768534696188574545247885307315614828446805713358775468138536653500683455323848458583973829080108420197427188092756130781441136708822308288044360374377306361470714332007703650842366366502546477892016382369544302628259583340777700915837490355664121106818235750396078862112873851085503325039673656212378659222157179693560131483556678900085968692641430015284738227852176588798528226830784493086493223769401262614485486162167991073365093140997901431315383873220166593106365832781902610901162423802197424529014559178803934904711820357764246692792240982412777415796930854174793805810985719512135484968636258494961217223301838404145137560135823474504970394417937069072737086683523512549230775406247708260555267871571478235888536702386127994535778835087706793622677226066554145243261085405229558380245292862892794333442694349370128889638286195981111309179006939548323499275656410574275880619786635952929729769625424428075506868295599292299080567817074422571407219185510279968669234720627509364662301337964782076557950269865142775463422812320336506225600563541224087809782784933559420072426840565283511276676246853181863300689040036124275053415524858546821494163364614733022810534468568535509800560073643190902202073006346383289728162703363120858635095338531934159555469902176146251866390725631476436673930578215706912206081702742263654495502195401491895910815399975441476549315461324150280117976131991498624548938726606473824844785053269817736610316079839123973068139130531081032290713281632583176930392644013832010225196831039393940498713817149624136917373934845232450242022428503125188174999271657801894791550561034095892495362303998043994302524126268414282754331418486572477555223176855387070923715874729235638094721726237944964431197719772942428314499350681930657524865376749915317319110043370374142530070286059333003017899155346621214701893559244435366677352271796584252830062242923207813507493324182859940670054250657749804840392942255616396166564133553044797815268700877970395396649159212312640684220650585071970836199560384668508214937574343146695298217725621055133732445085535462325300079777362890495707762851607673251080760193742175757682706321117112360787944353532722268369227193821931995973180662276186132189360900249204545174735577956311014212071503109876399168481958144543889283627225066105075956307786671692293620026959407315429439263437514445231287368882616258560403480152802443875659547899792338776694862677645624653841034837363599909208165871304838355644140618238542278202507070588704466373675501139604590611433172975404387563800424738454791321247709374703737072623619079488856754423134227077166384154723961693316120549318985452705160544549997004006479818617818004425491442349225010990439710649165481547978406397582128537160686507184326493709534888856974492004781046097337655985145280865255978760362060824967055131126440128792773452649529778997471714778388974399988787283090611334032688949791348183734659452569251510003848895467727290528750832456156837043477945537776283424680456498717938790353672156465245348343893625784003883024831472853844667355342839534749933282258844922943534154362913640108674086343683501048089098139463469793054730645198225596542196094047956045704344318476672670434283909635725383020249513813897404490766875453495016427864753739847067034020600626800730631062032137688167252605404256434855161299498399829236480806874367059664917734172432453414989836846547537189796032541132335985217327579733072360091995051726118315679842174140101549957649079339772784119655773725238473428992837336250914502491890068377970984067938491610181482900435884832170484038124086809308821210871014035267838823929097226767075568284496483172953901216801661428995259418881627408558948489140588532639974906520535133525404130132871810725161425687625723344970133200440314620376305934294960611365024907572638903383128494899803588267023480033594990745942324930908471730416519503375551952544265933792590520494980861619834005833646956531686736386350117892211492350737571114094135405138481435200912253556343860812934124088384243913767291209925172177815092704882788182177569018048499118393212018883828193282256576655592744678936700272003764427302481032952986672356056155532544103443740987419209509397082569627867714175368593007980256308670079217685175031272575070500179667610383681531468142465882555284398960920343958082072421340813040955447388392421035322467494633414101577792107623490356434158960890226002611916664140584632171223144442707153755146940042997758033970985434227542361559896989637866304173543146895386901564624312939462294365903552876385318204692069223090858158619735393521217884496757939501188310781220728164962428270220674381238521803099034452474983617039355478517741713923242706164522857586589853460533243200565240656333553369692261255108325443149005183602090789815288130647881310427613703525578406177910328780903400153058527586736667087515620023036343896484788457280119718896603560132378377666512173322432992426409345080214740684097394444689439160165219173926693658080606860785115232975504035091611728134289445831422323532050115493491390016235731119675984961932318221282500488755431707970778460439535498806137731761218626272371390104018693150009405820084930157527380138627178509490660436330420541544202002038538119393520262959609784357649852904897369923374591131660798919750205035839139049891914189118988342455995100542155650623962196080271441419996033438221213353905690023692929945755766902963539166188188088182808629997437253192685137217342024845448880401692136655643738531358683954664954950847537763689229719227114915968701365253260435447480773042663677745080460806795995234220561795023108369626066556290354462548149529856084368143915291912847695038528968448622971248293546682786114164182957457039936251535705741827476436944853393095591192427438362497203514541329863649969884912655766246691395497678388757369437658973883528168546003098331233361583325523135101075535534633827188206286279559548325371306944166670793466165798249428174861988892336245597058449021451371193392830417587753007391734987590450189038622782700140027674498694744561465725355769106672142023855451381004099990461568438138681195604686454241936719237528233730275676748391531568409965937319345750187385294511071408063405296588139568000350994737121767519391048641173922516633073631561238265653301850910756429515486330141072721849148512357479805109547385505215115503412137827021212947576389451748316500692906597021254177652712411423276901449326950259111232082387579717755777982661562999197121508839487443761868932270296510047413417650340917931172561728595600691279287475303091582346977429607840996453729198908148404908879264472069741811627638891942329920729767082418180955407580968125736231102684691257403413013802405731859864256597807960981189627136789437556933043711793188131857137080971827927424864123250029493651149163235388977259788942709246596924764557594990664091212559406602143180323676882582682635703127609201490286101143610413056667599482497460241740675723511437735616506368008114169159524508809626665233934589833291785952637923278774902102946937994290248867460679355259546471559083881065730916582662108711098775297863518851453545279068505595736333718843717823707361131727956497833610479895951641860605750600257695113094769170395777240866492176741615757243855622631416823396208707219107970588222966318536220053314920794780967783615181306061527720812169406592503104846946089123451338903476344101548312926603679910607868992419842531051602987003172103376204672480065477443405451722364503815814495612492980630114846963701917893259812467685201646962592576804001410517769742074835107252252046132073419591312014575552708200696582992832293477733691040205581507413757128953427897767546570034458840068531903347133151919256994405664739405702886334617614217491148240574612531640123979127323868063572415629902196662101429550965218174100656779219844084326683609631371396230386668807363511522512349753094403842258101737207928092797680065731278496955734168399000544669211780859565821204095779563431081364530576411214077656958921944618054089715759607677262066322596285399179785073121988741293387487822496380128873155245569440735019063802249174005857822823629328203849590572919918991650216629282738096111097605055591575452347645334864873778005123635761373541673796257268436182641368425399902432091138367316280525093625798192870290831661840237305657512640156823251422428006911320473244690730002121637257500402831698134523230036089287890808884490083852823403677952824773509752263843733007432458143476482268420003139636704609225654733744114531281254070775919593874121929852676259782249503467082320423302297711982098435584866877426392812275602046865191793710198700640060792722148064305475438579354471376664125509506728858423325289800288373798886619061438274436742270650152087201787711665543888127074690154806755504685173428184712705169356690867854326258729148427779617143276148687525269244591577401092246049721493369741919631941386329933279870587435961415246087878378020922281698006166225499645373937583816525661494118028521952683961702670676264338292650345621607755295216095514899191610937007353713363703331315848581704210688890126194417684217935452637914819588680063925410596602260148038471946657365700227668262795326212378905553419939160003253238582798461957600715068338686356141669193770478810689494633081573045697663284530740842531220648571267052502576508298349316615145731047624687464066155490928096403426697362274818353888719148279483471578890881101821407470111443620686588128918067066831515118346957707604921860843762546555315659911167449135827807649648437976681736084301883600292894229545565968644814535457094636041958318823291428542510456876905117928303814004917198676256036677466153672982068943918419276919924676807829046432469298012376881591919425808421667119890043170640721394767985296598041710410485341177156016479166550740287813831117222270499741818119757657907864148585998200140716129960213594180712468448249837281852731824758637018601365479105309616038408006055100811307852358970614454479299272508084814541384932893247120776657985578270408561541402389606030265555493123125360087349471939310920900538804851041670395861964202952277594046795050204895191884708675711019928168877280276161568058096062219241891981882326978429646885892465462215627792890071146810508989102281097613714248361449905546879127042358600610827758402141692741741101253550022800768892347869664086185622092142130872444799522226715806771391263969001976954803311213221255700646659956380701313869303301386411615389459922938170691066372623412910553856875004527218944964399346819013712992761112776637971834548540350111825091399209423204727372757135617323778060623469780496320168226810297676093904729067361197359991071711042046928291428768112981799003699242898001208699291124364602863721526517437722442253988659876290553821070310119458072054744720183429981854569304274396377895035601034001320315528119678798693497044923136518967758079640156680425862230704191257222657047623556411610915907705801005447891349602001551934101751986100562183075411015264896665767431743057755404557137017839921754625680210910950390541570498737886245449121590801022663256654464070906165692505677104969602604801927925889953841803504079375537324657247300367063087071594954232578154455932029504365032822816303519968949301292635011802170480935630672006190587573642972745243695359866933329048600359502749648158691014368108375271720450130999373305979293432925057699039992880881432786162103662998535909001377072885655943205319744404810064586973105210644293679139967011955360898962935780744605470743287901855340013069624039517121114627525846602037325078077498003672575037614652049656412973574444534165273370067516593400760035824899023597996954354849769880345241699490025776235100423913289376936068784249365544527546639149264636645767699667842412165683586643783085371198395094441874185923278937841079662686313532243852543603836247283361529569907174397306241615515823716353486761087836675034202812201759334603958565026744349148559215952332606079702052562725082792001998271794364975324617167871779521990591048531669865016573188072699764204111347406730283558367391036961061615104352805285049072342595181538932508719056791523308166182714456353187735752413512970382263460673457214752636723762287196548311166809967639999428335387651528171086115161983521179117137568423977720060098977921673341342984408551587634481779848184936515388532720558420613780629702132333488304308348217630578100311681919055681500207768605588159041005947695912989782167260056759096467541971909697515485603856505576764319235551457706395200835119643403846806639371549914489724626136173283049701115754045869805206617126985603066054529083434778452109660767932027807457098316832557643662457514504144465233222020092677277524494920705319362407517159795727518610002390323543273059671726302155364684641683315062110484809698833994294111470944192925890730844730075390673454641095572316324985710939468890088497032913703179847127046849328177930273236463277065159437727890944421121892525497600893893135239439554390565974526200881345794388641545260484207535837633890655867595582573986015040394488733545674135778020882008630459034008859592068960231279003200908274672187800819382057848189077268511083573215616706465465342348635611140818621234190795701438705670279194599122006015799306112350923931215882367066938865954296651526173748845722188688774352896536354797718577820782813815158696610909859172987714687497854333815705778187917179261850505260748618110203099369064757698744067871144740801249553934810346247376451900633723346530771822615217054946618491477187236150070735113244725489812206321259553392639081540834213053323045336548063200781436895885950397547932304047660379003716505445505795705245820183057585074307984403080849538181928044432642807610731270769823845126551210389010665388633499342630743272404237573978804500600727781709706343939620456901584781346299614173819066451011148931168287793614436408868353214671093350406338804843388360018301856430702351693629306035141506576676066241126356305000065288175465959849513054117166779641471376550862466090725182197964923671404285315546213956537354069113493121370147053407803165875346858985046897206033806724532851590661841151186507854019379288428859198843717265966244379419746436496722232203650357221434950024029090758664537789794072421319995001538675481835723086609325266522074507657061177640449854317961777528333675600662634194210961551149475085402857761384119537836046155230686965043529418114625861729327218762759912731542157762985636770157136986205281252032568034215186391691108477020195966352278985899666300553266874011963421709022427131647944061663585749075915601860329169415763326404684188874823721855080365211233943703652122615339728598472334620473972169617957189949532576815918855487057911793414283925701519431095602906395373074676253294606068003682447903274437695983754862124483344559519074938551720120455933432364727526294075977430750927493954957784778475984545496580739950366824842811161766631385505916689559036069362872179168673403028828723977114714325047787413413440214767276002504278548202644115409952084749644483793089882615782268497663381233867706210991403645529075051060350307296146548502767007636638726260568167313116335282745006012943048447705264251331036585331460010243763959727424716936193580301894996796867918157144729973507931686185736563729436299985281799536386648275616350153165049254634966325955062143957066033529377560597518428246627545366149140497401691014518522278140477759280365233299875566583997010987552981902538306436226944324414490079951526381378047921473873018762707260928511472428552803220871828637420635406723120524180144953828248227616867224175629312107450521039553079898704434590749837648414610667082189197409373681205275827156077306118687014497930550799612343098610589632708658562853699937523079604343348580758962931891808218353966275340892316234033396911047860269976855297446475796931138365548056998299722284290211174873572400584557939403888639836233762556334975501607023383473775261993444567678777886229975039205641702803790013646506159675193568415712122870729502469543662316505445153465166027796894079402678029914157849020948785299518455258706406897819934036383182057280287062938047048809603123761352832655691599873386277568584642854333543690641972736487812810810294257675583976629884581246800731411314299395697876193750834577333328888035310978460004229898315019877590477434677333350305723569913744251618272804659999588970734860343291880556558599145843461164175590601688991111949169087564502317964671495910821349170286433262589900200640943932737037063097647096786194558121037027497344877279846519347599402637141486107050796456248089388456913989974737564337125730827216638796392271456881012747180171584876072593131752784459834311579871556066731465408550049239883463650563576014020956297458899071730590574012669989048473852323500309142622770961627007361107492148735464842485803276585027664109471698149563661712528731967812301185806367781044544418861872251357197665343679022223346517837987264995425717192130514795544525050895352404805220606355548229385403857338094109116035695269834434894841230995662883551912911073783996109878695195491735011658272291284246116361287407712051700524871352504120327649217602672983428235311539888664680349420765048010739199709169034981977986058067032636876433335093487869299333021523354347270957066464067365722979923011545460301396156867636942435666453756818711623250866732817549555147358522437418142170051742871331465904266422478269080663537829643903859050870417634835630509066355217043897648532172193751977704742036126692881511897339413206318023438606869241234267124377959844370343796676900169904314252282731890604818323674151112231336171327634901658089983524797306880035570629362364537582239391884333276859675125704181228621240227720252721817461946866736545309211366898118687754407723573989830399479011588038964517734121548224765171228870102269819676170248700835892989496332819014307559175731918819268806599382497294548712048138726292677701350789078714002757732365448950071281049397100199454187472517506459319540350554448022722185384717379415822190932842322931706440348158410401269723326269700879555463159807379663584912681670324343847898399512567732503818739224213827342126565718228528590320673920629387036491732508432976445022114586747522335898961404753278237636633453958660672848820680113447725521859144546336000122913374669963121359271033813197099769089591800303070084856880328009976251791155883654353333539712402520211832581710589281678825973481535571358544659319696355814126103784799066957551569269020978131736931501098343742131532467584254260024714679695349157658844174680572987268188360832347074988505426500276995924692685254125061777384271490918060872947586344664361708778169145999490166162366522997911311523478706399375492289446255995618996684710613063476612526017345018316343617097749417550520235284301189996347234609249565319561057429481208943079358639053646504124875852574681615754127383573090299981634864458180316563164680392565116548670722633796428228907421025759894470508962500214217544483784070038496676940518720255584247245677909142025875966909745103754479876683514394014673020420369644194930752617517972539461384192107748898776094551479496223152812782050782876815554010842681649916457891340609551706969617870546800228076652541113389880482861085268123936327320179101525038143681894547145883514529857315451014991175283462996687165502799083841698853196496118047377521729071590331954800816025371927880294462633571221343245819944616563115599104072586113815429820434836387528500922573462073121124703756956391141093511366674718610992955982200642732135111738018745492985766740838731040087091951855045611400847530847110338853212207056191775907638304949299969707160577564452371801096942477467176981625586807651085137921631717333235161215081326919426156766000429615055667295157840767642385301586307063873629196755761573687723207494002035513812930388223378606426823984102399502404655017819128271061033537525965291664497849211321426122841123608061859953916670196809425333640500164037231224032405482131824174554386347306557733273809914186705152723345299759430316916167450276313341864587386620758858850706658387937477096322000162818685683317849784765132184449753768290680667149699025932267036232540183044851721816696225678082781769435454281218106528478295261851975722167574190524767973187842045181398880859067397204022519239815079049395962719232683182785848391559060533622257139324058380765885060125868503986357169976864425398340576289115553506107780506777536680313697149815261169776558160835197155710366024682285684485752866644257722613031379359990635749824588721233105242583369734407212116470426789839113191165858544239298214074971139937956920368888691523032164899034053385268505447252521480926337192196799525900433300048359491485946377324933233258327562325206715137060901455072951805696711258368981215179075563369289219282194960363237304701569145345485324683183986498980646169891919526542269121144851003618496820598104047285473168974876929407602257258687240220651419794861961848524382418024680162192682079159952025795735573084208420933207841230858125238186614500032222351790476515761125068551124243879520504060122640209438679664970541752642452268942372265020837546376769440166131815784735903823896855437440754632670175200449834725077029490185242387979244998675784008935729499422219558793179908869143337003657243360331383257598389432761043660504016162643000357949783367891112336170836584626682128756419750237437885718558399353568449008156717636320011926037805932497119891863568670530856472133664768921844967791852229847547285042038672403557768148370173590537468586514767329902289587329368388838196621902220853156407060419908278660194407549142468487289161799815465016483829276688264603421488461897632037153200085974022152629744869702522646492065993944707363809472268388123874901597172922426997021504286675922300494856070126691276735018885728790611092278019127799538190286566990939530165487542792112048178051059398355129091357231948343953083499317280853147516671546993082798753461603868072580807850251355589674344667590925869981876604922719572775653364466259124486711290516644468639919324446232626740611399508408944735741815883706017596893595157085826268990563890581048350500735495934349752035076160069041512748022369804896379065744518309999030496535498831901050781732851009940101693304850036897076942576302259407366251655136666456434466754120758725821848881460219613743522432579251887789487524131284097233718854046555779839513437919558534205975584462135279611593386682705566787087207061009810359003952692215689981764348228556816085189029490673434795298042420990105591094183589252668390754045827723119941306318321511916436207515751271718767120542569878911109728890781706807653048625239363493107725062921624471712528189275029228090858734287491134665722758818620446893057844526196320321057580985404902758636732649927219763007406289844787630175814754968489887676559025856148234268904707173029430990906393064577392877716845067723095768703146677339589216954096017977343384956553683646914424045366644867107608109554381653574402598488410024168609716992678319416611313394869976028552119582101877339587460282093023408453857973981717865742102698535741060196909525119705421031329969131335422229078044771489227717729947706735278812326939456895682751011776096351660833994641192243629135907138191851185357181836286619732166788252424085319594565040607827227061201163772185895421999369088409762213147741392904780900286639207364291030576331854649989686893237595558702301298651520675774428162644545793731315389447163881514419029492417933315541551336123796506102495454922975228005087513305058824573214088889522364450803993128946117519543662406424912645211283318140062820614050020028450450921381557186831411780420107287928936311246498696167217065774527271002325479951788313833030380678001790027575742313415269865500378827426588759146795096082469929545469700938744071123703751940032672628324721216135212042115754421703885730772558313215971830661082847372997803744652031105776387465433679005296942358978464681773296052642778164989511265544881905476687000453699528193389662835003714982498893772436312130274685459732883472747599529867642479067012267728078726640207502575879336141706684450053443362413587421527957518176535246100435423934553967010180030944430979379591667658226313552364961447514763615154051470578123329739067529260770929528634001560852708275744009951870672477949204828907708278140595628686158038459620253217923008622912146989600732573642528571733605943432666826520015494733250121815187938168889272653817477319420653872273073574360439184505704472862648116870447632948638595237120205964762415071408098649447335883702378313641819071030762029690018106775019154130012469550529461048906229542027492285418642511361874985669035251827694779638071058208530804895227508297940173603437838620406952752441096353916905645183417484184406775016257037458003526643487289422862702558418612844304049284105903638704695660778931545134390686709318375312512599074182104117753507432282908804720269627234100401041405476840184093957763645967643073255587013205076064621233888497476193182091303708167905849790916854246510128082362482308711338549457077348122291400659281176628070652721135078661364382472864660638167308090692000006083771067602248692013149256878996413118185438902569711209762435607299767153610009187013991602044172834836005026554980673334787276040865295623690014889000066482675010297510456777612207156311921056611998831337154436105018621176097854807589885268545855482307635957255726042381596055148350891100711602952932224437386774418596379273427338422026729150663529868610814889649953038925761056342156213812290110451889708672054945447721751374824962567586092523354678570081739366364012783870558987697894786359479612835719816562683897547940032171380486306713043721639578181434847493160609746186354768044429162583858856960955540038745028924592110167987736210715608604609249187270011123350911426707299359622622726146173427787123603834594746919603804902610256654608188509386617761893048535375458124108683683862302374467554940752453092905850702559347952320108069609103358408073135364841408720975342180846106492828944091363457484791979532001607074141155230923212953517222338162749915246765087141907843545833951492375765954329743349789933020826128505070438440821306930071112441751811252804577743822921459813927869848902668873809416538861800612581486350352781452220964437566983606620631727593821952294088241822702857773293590206509897139062713492918729450740090249855455800905957303981936150556078460191918349118123010825795184028556403801550115563157724030382007286955817898518470541876927717699885443779663940993899327073471582365517093270154984886270371051766307057157718280327240662355158050557597995500439935673986607847677527160547827157332579017070541482493644899792168672487855311379306308956832057217134825702536943192460406215257143545356885351934988290689956159790925452997376925183996750185771649982401301133157518111055187738747526162820460028177060902528454260184481791037480820837581099125601171880554984432457689316113933348555070515278256218399214021248088925553439395910076283133442672659650355461689186035144674967477504776657236486679109354193417815112914148912908993772129926681989576457571393902641207722670127979478387250883642229520663230422081114208836892048986286311248609235547505156464768379169274130976664824605238307496452869811617693730893738140193094741585406773969649546258102917259669869301469626082587115962556845232238526262553367578372284168168574750999163895569841985633755908494276947448249588857241705707361585673791921955868186332022392677846927002055116177044594334818102646616129507259247567487593354746143866343443600317189764690235584466649082685636583953058033909031226608091700512042065759585405654388008627959812679523487583216559192492212826830177368748170418537591917105085418863759855077634927599891745013796580409312119909769812162449224361113400966420852203788073360319687258632971024006014852327418927466718561938627829045213371558663231363206632596445855794705726825997711403734355416331554005525325765874616787330862894923571698152967707936101456492224304083196091804927875137495474805548428509095784003389365912856118770311745852282993111222862042374195388216350072638798458009186912230640114020039907473166523298681125155461127774220352829326057190387466295915325143835129700493459594286297840780843327977490462215642269149273631396333934286958725759627694028783104781646110346886997128552148240829943280675189128212356335301015622755032108021286273701929289101220054572416579934944125923516581700454678699176995223698451476503869765080539943832936359402812805532442282056670142051937225897337435060520340335077167529067745986220943338057179940836955036679142270772139548427670539556697036823155443128407303033470983682709919545730328049384510178808437909315000189667022730916467154297825553502816625977934075695642928372788723197714760217164361747642789735369083821232167074292029595835748895018046112312064044421983513078403887540034564402110938926048583822184309887688091612818412018052384837473134915233036709437511073993144944140694202735483046360380804706684431948767920841723975422560727599544327745058961737742013128053215451674857182537891678778629644801045368695866464230902094261852219375357809403618807916195959422169411764195299286473119037597060424548049873083275450766923022404129178761847983126892655264801530827088266582583654216112191336053077681479835369412479879732548213256788639115853974023969913800851049250533704518496500835150207060899879971462236775219998337991217984855698299445046870275442992330544805725008966553464623541010099596390487732466170223673788927247996293772538785200262100870939269073724618466852817923682551700227223405099233592752497470070104436528392942381622962717192247043850081368340095929988722552884981314579605710352289428252138825735723292382176244750344409877230071399585271385214312612286638004336350404009531230962929798834126084463981570193192690399628541470004115329222861391309658578154451869832744070775737575391878345474219089659520764482252634075568674650374757517157892807089727732075304443404701541530410608393354360611212443422189737464855792235692136929573371318336865040102896947138755626720848768136851090646757684939032447095778232278332707231701943299754378100102260492288000932102478411795761421626237955097063739529663962920868654594368859505475118864553036144232292337685892907680716141825679565225130120157195108603890759667363770537783255579573699677614259120038568444405233974460150434801024677366953927625360006822636620828071772694808539870771175892036695228798161313940885671734238246909463211276063186386836293060029093368315585803005619316346197950831595239408915112343846004388858445767677040023515253481167343648847389671600374477801383557720545897661348319350436249334665613466316815226434842391448974745858449347510515879751616882743152856606021347836056061267615387676105266016832402818037018002408857280656166499315555401805221290747925509713807280209833148610748309258375421142301594920129605072750900230869699637570046241099538349859474008302490785989125731845590246304574053272279295789400114318670994907818603700378342878908739643012698944506321711101074079479461885014754933448047837745735758431199124087088964953740211997063611305236691754251133186963304864132157664799321928398662415059008950284304808772982658919153120515538489650497175199898677439465948811901314049702835988146839193501046425649339897159327829947100107240580695201750587500671429221829003435212152425265931785272782147721709107187114449672766762484576459621233713096786069602321445899689001662091975847556429347500640636812559328531535900852130486069395386868777803620005304227169789305546233865450824199615822676028307760319915156586877805712786258792624027228743023993086267213528284437943315276666479804932174205262274493082770777267757961017171881794044898667438007944035334173490600004365305105884018728049925419724618431505253637817741563200858640106788093034461343781738924574055607818451075282958701569000705554487772448914828061644893513275852073832565611199958403856376698140025959612177714647529037608791212799778995375094628168644817167978894762030160905837857434433217583974443914866269142307315868615588036607511836584522343126876085214048069851048558520530504234004554570718465997102968889345402881181118593903658486889181059923932590836440820129650672500355605904236242860996265890510777657223614788048356065439187526850077513359283851067535184084809498580108618283000136615860404586080260355505697859611738164987545461243736186522837772685155922289256498748841699939276064683083123945073513583211431304400932428999840313951584210833372697617213026223099286330850793162118420507013029545427761489350742786209232013105087926537842249090852820833790603762374666675792986065782292079915037968833246592703387796410793460628398438968683623378037140468677887002109210626099710631828629738994432556278786450016456917278724570282806125532674662729537419392299313833500047171334679410016183984383603935282912114371138320264415623857428677734200391293168399324482205663732012490127149157514585745628650715934098818935026179025917780224293981278263710308215636981833702651126066387684926554189935499799534212514001675967808815046632788338051577557742816067124852075060661339156924188025769977275645171927540975280550666531143183866180365142969087302105175558183581683168372904076011050137420629023452613217162648572468864813349682891351246123485793651245692069321250244309932198956753722143984554766512030205295758803857530376551232316802667066478724945153091882829517081039301126052165732940034564482253273598025903414374523010457858199195416230653376556631340269647889453984819563197158017850416624832143901277023568174340538683108738256169144873848434935127017609565498780009757746343759932091883582656067634823951476573887144560328221148761668623435031324794098309487922337485718373425474782552495910233223162948198595222022164026082490457392575589571162673194904549192395256024340818350033099002606793247209556673172560706744380011270691266482022615131614258679032075199805198421016118369537588859068704792447521807750480678203003927100887010110204338924646764615897848345840314336579122763254834182500444563429141303621361386290675262664450069795168937390056523172368403934621287045575355882366800767900381335796671027100860754393462207151286060366925508173779875749880836004055548289420316363401358110893529913504643311302212328307055041895794036034955209108592501544974766912096638661367512966276852701982681645874778099359254428176629392326300704241937668845028950885630637273045299874924804481137976375306794328629097340563308334074795310458892370229743538104359473060924444764067203019542638809171659677971439111951467300274544670037030933511835808271891703537983625375799135578727482408153979887324541722740031750103968671482498970790578777699807977813383272852888094832808432406736842902492033050196243674339126947937782518239510871833502844144870728058619131994697596842669258375031460444965905621477880281347012438002466242118982577699567720757385447916702194867191118478595875508644741514830854273752270300844246225099614592809762624359345529673861472427510911803921001966348465153626498285139920066706187013688824318427281020495054345988853224660302503227764341781653429938481274901375942133274508096154697999358859484306440615941939549437406136081243803276861654210229359741792111304005264430398836216551700518415070873912990253361152807035707663182255449614653787477016408013851077038753616610229301818434118481291551103724213555489998540292565850765438761031915735617809099784769949223551197228655026147699324044216679482922597246398886221919460065944222417932472548621302111102037061499154112759684269113400308979536173881259079517797821630957027786799702282990926879649504600995633022445627191266540084700996383046580742371540786670500271744021810864086674160792318488533483669482252807148597958286475089104640409967055803808909134997450685697774013456362388843266974295848019196257321488129865408809249056263301017055083640886636634036553304052818898811995949820222996642198607449329738460299143244932605535751806822680547169448534360699300463817905499801683301243360022520123914317499755077493222028321713638709337233974118703281276124729149160450057589312045777397428081632733646795846729123813466022346012637830449914485148593815800585219700814647843723738167545596972690258480985973943496666603631809963227944281577736721199384559785538183145757344461197433672283902866634724772381672470456721385961485706718523488487621168352478087837172841299437142907860304948535433345813023592010019807758870652595735900330389061223616801378068113946608417482463839344256388269669329154615198155543652564299917113797289980902104469546148234266499960635984606013936121603418854558946515172365466475231213055289344328527651548142233529191252817650607227962417510493072745653389542733322711844790293490369995933994579680541465794332371993548208717806141515692853848994145688806411918612143083431406461177493009657354999127410820123316020759031236754537996112311149052095679644827934228143012282998666532152823102447914493766539385731138194654477352569021443546908157083676763193365285842601915854558740090283786140119728176559619001234041900963883481711310205936950560851125940514936993348574390243024938435196531961590175361778520197937615534109002129546977538857793216917946850525385102512860110889980840734156268788126629677893699592292295196665261250424796162195906293263288726972950120987812220713481993514057538680341868072654348256581571295371028048369169445181642281443550883246458904956463914580024151618919111497902989806282942757485750725340124099118387590445095785820368194486583076009007925801664093675738827642339811343162869784695561257869702403326416320206496828023860620032995274543779303943900796114546526016966517091031450933654660334066105563151079749856452304314464906742413482770626102643587113469749098886033079079283945970196925639483682416515646584938409156399895947297974070418388601538693298952288319320035508063356965672908999403345650501151062282218595576830090565669472636195713011737690338409020048051728055529554028083749232030491980908450167446962537888108023969357921449837432617934071055471817379573042331725530274205747941906209650889109853642759068995727353560220649151646767370192838472728125723233369902222851086092267179876697618380995939356063765039717400480905331290351561620519672582540771263665730296433136714379420550677636342545044232606627828279111251925416561959780012953828378962454411081940951189476996002469745255623624978899255860914322856668623956112375149503482546508302840690358901302695521393500082951396428421589437979950880214679177432369244760862781707897095372110515011543858883035261595480599792556950267759502625158062010859172150406560475816146358088199539096695359787348870467966222761797711156705943395655064029732943815625511233205471480053635180938220586267006822822624086235028244953548281852506944325107997423344758079767961577551427093521295231464517757230395398236429234005096318288371598042208161873016844757992666588941411224452046218087607007047642836737280313329136317749179496850905902363892705026451857742370496941365258501560360004181735644949650608111167634980782623872212804634705658472855823811853018945608461215916645624961583716871202608521075428018700312830705802402735941923492984168316130916738810724375588693545880767901130810525534003331383949168129195215586805861827752709985318948938506933705998673848945619148723145292666590646682675437154792168092955155937424782597209142330775886012961101100584011466563712947721013387372591891389074733275862060336845058753516614031500083295260662362534312377184796677080037822548453548638637019541503275417961144357703191843859652787610545466809871454046429007245105315418004128958311960655475334240136776061908350978101043859288580907577908074587614061417728822546474934085553921067153734165364363361576087935587738148874232268987713186788849045319390555072993355064761117995098852944880523933579344392249431616032665875118198192270883263793174671695672692685873857121562754809784403909895847715417168089151863536469467680243783702226929826464950780673177533418215656349389844797444920281723465387608290270768021839437115350392151109527074110867876659586875058021130493768178163684367331836640296797757496671512371704207895607003699532775774258447520867978161496551395709577363546955173222661096631794998813141969982616080284165680770007282486527449180309944557668714633551186277072078252264715790885811489190733695425848617185070597903266405437578213560786411972310123261260843964291457265679934666623144311949115307838361908972021150377373325098268859091899302735886518888961707717537328901153571602864430701157068849301698131469696044822954932068231057586199137741057344925128739488170522255533030512432747925296898346254070645182615259020725191356697746454686511570414831214833785801842210643889576345868345169602731002672459235428108493930296694060874726172930249183640643285121253255658326058944891165834851726092953893637014462057981438732147000383113378498417099279918218498335437220785780058158548795788763541686710668006600869749107281524424601827038344350636956664191713311510373123937499119355548118145646711619942772381851919263702989985748724376746241547554286464873966370242096185635559005160699405331978608406619544258753691075391603419001653546686502109664846240588283047850733019920982661554706659975420014895035478381246640267017673217696501349131246384776030455408336028745606895661923339827850494794096688428718942676093795469539323472523149363212690472818326490776309574569292817673874114652925528236897657715343477550183353055897229427585337467384559573206777487930106254857067588145463986610444475676679529838944106717272567730051422776754995009127316790771451259372682654385513212830026809254451220439759815680060446012717462724018902828249754106232700964103176367594945903389857665606405779468504701538474890304740505013347713527309424607514836243041255384160885166463799030467191722468576459138759085385266692100645708373301828412038705687570995428655129604267734201268534807755838933945179192249540050549420973195979975013746253055700304620814926609588750620390612235400934821961945636189582607043844843058753160542545211408132042577832636984811999963905136463688628025415229987648963044191370857483200305054681008602067321583475685747633775955170313063051665559166748607816504103381376788596347026761346126373002329066762497713207524042102515513795944601942106907966422081146313310047178035910220300677811072787341788250574665873051431247244466265902443647773397984859194867592964864280970000014311729758091056138562363300181087317086358029071802777212883717271831624530527268895075928098974522528790555458334093193667398183473255226635186225609022728518451303167572855935650281232601977405765282885332359814827679361014949201807705861430956713375581129282392240863027862500335127082267029415548167940947573741126284728397358355734951455328969488375539098617538201343158133701713681717231096867932095401122031255438691179258832131135754943637512725285536751187578542723073559043688132121772961919156598233535286730080510565541883625460522473539922376446566144191448731409792179579509589512561626924042127855373450813886740678818627030691319509591091078287081124924736680662541744959922805806555018833162766388962861939233406660479070017639993652199713303425906204096049065900210048208921488919018518586727070622534469062203697680256240616258884322385180960689555057212995086677858472033427173383875033147513578137004134207564039910062389948758694249097628285719087017193527841502579220666727138167755948222009222906641469383594246609548225259352668385038873618060885171428907044371175342721092166398384214461350206977722400991593426397652539061039957322763523134440521957279946975579367822828721708258080125492049617297414377862378665463189490280533915232991241284220925321085117835359885236205176558895097803022614982622891304681716930494719666133204049299917551475942196119862750063323379749623108261888555098294141270732418182228040824086351756410800435236695492987087606331502446761274530130066445604654000873246192154184199270113929447064432936730925597650993712167001989899502397104504523406295641604364479108814376844450859506766968140905345155541304267141505353797248948489522992986348295286001862672462151876458877869175902170964646516940312384370546055784696946234851024590086490601453512827709643694159534712108746055318215292542639570557701505430631178184944804446250561516830371383717543202967706399266427431506525829977285034703235862421361925557081862005937776897798199457023485182570367764033796597511864129920001372630725482786839544721945247167937542155306263958998839784198313466832377207326529648906647536532352541622457715843966267497419609905291335947662119965995816809203588726739700667704899243993236488271879361342646352719396720145685652245857843153238584010656319127791832190433494863674988825694768656585496775238636098577170890418161618772582233415509243089660878334645283218972492626053684442643068487323237790421064410563342267789290164677638656264060759785046289646464267705459022439648819184383506124683042379983363431443570742161701203771931803252820067326212323117068377256490633072592303393166114580809641522909840416173304179919376137686658486321159586418818709719795322526317819442096682470650731202609490611803208363192911543536756508702251129326308930472545880258837928891622555637473163598642269056388851154627545043665319478162475900499748582501595489136190009218905574339703664134389658363346562732363046467914178960726693944588980016418756941631903223055605997072255188350638257536007409395377534445308288017488857491617922953348139506028309334950211559518037714375173493533514802710711063660019327776566581619703989002582210599636745927703782508399039140637476088050573529417623203960516798295469985253819481981942262640148049050634639547694126774586650003154763732227708228544248440055214574194690561619041764302821851602982242014909634090604850580981531150695385526534888194163117052542973552339676127217711935820508813382501900867282504230732900682855206886777057614370697467759065847184576358550540330117133749509412362194938027522861050358903175057420350784595922771642130121048430542448184513894826509563885542264893856994936939564184452306098103469034526858788117482712543153607839436384157607876833511126714343612178101836809569380636621558853297818218053155528717842498803001778532646190187441876952271133821284188519899375498652694598784256747819172158789411587389581566401823509426409805910862802120289818427896940443243973185495250867210090236960573013724231124939875477167132533638593607832300601935697818781291518241843321831487860471766242632433137221355977419841731626621114626446058203823615164486497385115756512242414657094551805209526418414828313844726244532466420792911299581622477472931354080052620724890055124989645930872482019857961540229941702333257904780170661124412797072019209352843732346562284208004473926678260931437628366522551518595306914583713595185673130688396331744824197504742953236788934672555055439485227246034606089947238497691197077505391758921851573558000363075362810261766320890347930100374502275647985469638135983079483261311555689405352215038092458150751216384369317747975098367476907372006183507764465459377364105718570455727869823649248203870273797505770669641200043204640949513608139751549332399178953808470634702570372323725356184439963674553792759517071935808895426378296140899352401493626090859006732221609026116634733674729403669528013640855973354642445669566301543451843101818784234939888782161949213752377385456381232326861174710334453946169360251938799496014406406639499777185193576635210775134491468784143675985138567859923668045693603331786966076693500467401266955447829479039091164496444030068338260581784531025150350701876605092721784655577222516244707569879510751790186583836504587849542096247874335244467809399161368035049898860402480311707458258550409139836098023667421006932531325904781211607477563239881613601546502726902091891072136081865419927995123381789180432418155344593786615458908587364529088870603121035127711740610261361461223517038526070468229766312999753733080238136268907453966616518462046962837729973586581236830777958255833889497757441212138830414775153554561092361117447630203524342974596781387358687793095091109356505838117212265108839646063292068691492907348800263811347515528893876467988988095048933786604346102754027387309175303690885779541735896396841246879161656906646877992186118702233285884346537044478320919789884652494220462772287567820748633768928425284114550149834732436538239248782291720042255698439491362908887671868253719405416647496727932648828205552833732238709302855010892531935000418127198448760262471918337013352605008558900865898688626966758605392619821944146618196468707442309711836526702746709563961985773253627776712940203677866993777917233031043087997020810732151669453812366572647546013152126305430655249919326769169078033934660275912077258774388814946253440409782738189733065987301354619206381519045405134409073811687086163131149777290188124560931411924609373974195830026810422399812901057432752794084518616542472112532531043690157276501777884481118171348661457028515318979485647658168049481194328741329798969717905961418981285722114026922367966510269926234078414615138693154004785120425232745224086024990235503005834015488788325790177234302683520682379042438091363797225565260953550432252984232722012465270121906240943810981837051285674590747977930140328285867958550993013393382987487044360424319734909711523148635319969774351484828782816630933767125232516367491215629806930226540218431297447771482579052042652850174014042024921825544071370084401102330859267708938266292426718168717730173091203773269421583118249653413008140835656420561281334981103184555045151616576031311814884760125885852056324410039718173060316511906090419786253311404978129732142463144537865144145169669208113859592330053592883322371720627796398529638140640579862841091135237780832451072840365488708265928824597988210395202930895505256970833680494110885500091674087946900606845959726130067109967019784558737440189424161970886109415166490435427220864905175899465444068545397385904391404966821260296779768428582378547508693241111422314322608701620098023439950286876867239064212512231899716195894320560482565632073429850970762225366625404879832243292889403524710428113514670846160983045712141036261015493513366553231267122491740294828256444451024969421628910487970399602634100029693474711601715282771518922621700970331390042102571717689756705611819857434913633576644159906285610338110446586653577029981543378855623478472298631503656149694620223872624229464349217997959482693690111675005967141684084709871062765513821391516004160257814316403360768813329392728843368678804697773551807653375422099721871987992830433762729883091249951917723197438691214758688372484373067396882246667026502041451521746990330331571866826188464851076240683411071177534628498584343263476782087040304627784457618828902173732970626881157192615817328298751380822418293790903816941112972334640901385454065141945031806606055683866479019101401068664346664361919137226751372752121010746626146233803220737338571879751057164862047337935851884623938510568016687804137502585966676210362466084720164778448193699672088746388681786706161774588380677468317382247814498678058564933044811969854084345205702102593706210396389573787168347685129500096514350713126614058193716393096869049139317018354801993451858931691532267221620625621381877502594949756822741064251890140751459086428043572554590175118291609719976942519046472981406780576250427057716743092506542075833261951836828316845127283674627010462586270699079812381147669013922290566787909855241758816177686205929390683223535878016745059196182085741401148088984812908853418204870591045226388211744971551191180726216369028418141049280568904105636379610737565240820137980633512029650320010488325049282905205729482075954364546249544947102775453943317972525799425885786301898018950636481875079216101107562119918053839208762478346450841588719387425252635383614087729074195450673316750228811484644438904377188916746167793727088915899290727308979846209039055458959345279104914336200649857533780358980702855032092208904539363416121234430745812553215836864284558650218164539433421028950453375373979163090782384204374049804350281453792094001890462485203274842824005405836463353287045965686503391170745675136862771163381947858325791426404786801076515188335970345141190152116598181719821285899883770255947141580247034194339477902774954958414629853376542623221810062210675119413228831005183505623830665158729148193312030029668282649662994178261682716689175761387588750073473891575037020343147113821693704005604900226155847282477281113145213225889170267436435226657388865122223949846404165763414530117761397760158999514365280257301611846068418192273642547999163191037661820302928802608119223276923067824948065584868707006541744986884473025534609745314431226660343715486548213602694691810014421798382955879658188788028738933904588692173400155977808828105300539875723123980866071074354131793219667709724596289140646139362456024768527372005990763530464484797948509840398157377649391842182121784373107674690177722322922656312916939670693719528224130269563989442897769515008439741774055274797881478765502180946756902432990384811187288333225073720196718131689722608701399916141538567283023242075762270261312688561172655839827593462586578472283076622385443643367573585612348525938497875607352035409621716669199086945350345152501228831137699770633789108370932822783741320319667046483283430209892812315366668675408976471081050465327243010403610751170072775221449439684468573543295803851463861081607351860149006422268997974644523798551745124660541801774738706240558322120978228397708609883222527356185907877454676767678131328785300041046976686782285852890283677202349216688728799400270736023437760275832365790393839053007944577847465126565665485562141482291245128845515907110789747671052450661012244453969562108150608713477425912693374701856687305776115407485784927307645208243519113812260112246176838057801698319389976010445680212966811421412731955913589554067963051349712202784602879776568922423359193097693713032275476653243889500297458559015389296902195838990436127056174671602460008235927741587338206702587398523688994466620415913491882142695001545135431598970542344445207254745597394968075062032706885582659137011290239329442512901014619261418628158531010064652163074953912478937020380550739216949848988311778421408615434854780858847491899921834256023012991263594992005593181454328408659173666441185853320571955726274940442584693267607295548865907296169336939838874541657882507079695349262974582719455260761125291110731732805895466295790183684594205197373073017415356675360653393986714820371607410858487699073945370087570038043688126953629540650807385071836008758783457362885539500762996623527418677895369321206444157243409296948918959403202018557279438418004932641612939560589896387250513807486518990683640235872720593788654724509551169541491682516561532064398123881190464120508570846392922575497939121297891568930618686661767207938585979440697365803706040990820242819400488272233767337521863124508983257616543229988612110159947764237398125896423709958343166082595239184519418235664147490170811060386340866502721503621099674462172215024190608110327498156126855338756489655381252474658919765386432913942527902618482539782370337058489837063589011624232184130886791685246576487175342582623877175174174004045486495785945989625958906552973994814745599371828186223463367687322066188406225180429392863993945367995256255667149808551332461654829222311151674221269577210150092800165030641641037777350039720577561151781827053912495998623630559254517528670287296610474729713663130525925632425309537333746931023789928672945812266620353046075165156604245274831390958311838678170461661102863180326059478111785610087734400111299414517714110415528602126590080894467548520138699259221895641071478801910857049038383031709890425546607544493820677671839259748965333833762227376860920950100445747653816480808661204237379319650879554546155964034243865339145618089594348213241500591445978750037419526836196113519084327443458083841166220488176100382446397763333388345676554225847726563648958525678949456805800200922030142228256830312860732244097413672299160874041675468378497025252580378834400248653029646806181703176742388349893761541475481424215438317301863712814354261509742540196360153296044350406529930305345516057826121692808828481128603215272726408442088596029912893282638399537010193042851392310111499085592033230533436136240546457540109805493225327566693213443448397572626697537583635070774636694782026419936492631620392275490670864320640642049111298011931845237637920955819446037776894160858420387102059448171550444528421776652511596414693418207458333939211773474932659397893282557114249840547217459096731809831376160376807239168979304591750954093146505814665424204657744616155265933411431249975421100901903555035044807331823221716439057563746488685088900459650658330076097772457530481297176393782090832130605874806834155755854770116062605465871490145344642984302122702856635847475308226324133368735342530492742490032720372183703003354419275522372309043429306724773392695348438942775442211358858078419508229264954442393975120697441096882352604204301105848783906845232015250106897079259931575857896699595056950944558126075150986944472444783824834047159558852814973220957622510650039358749502083722279411585945980386064935592991791792174763336121685751808383766976030380385834745289693746606561010277958066181237422452478175404202453475289552985214621949587681083349734657592440684563029213502631183543298199068033269005301543328813004655281338973434651313008700357581651846827766463169403917463956627145284117132010913220830977502312957769559625031683706190187899616186222045558748330551226184252024256365000678653314876962229102480533786441456439841337383927486530587446770698722147028449648945283334466477515084217991018117764039414496785881756235197218665269952545260922682852999000693413097418967304365605774409863546451510555466055539868970079070766254155548868693491545865123852028788262979877847500625755853176335146302446708106343361942569738398903946392607638694338822791376404386870420221601311828278334181981203106071224080911792306190195563225750177320818845256745742923443729472452037622633072821303544874969932789942323106793842741501728547743616327938541836083317337344819927141886733784118137230376967145887741049238294294251749323655886046772176878455225761205673544565028516220449981422914488514560792333832210483938886198979631862814041979203521591481022670516056415964600284945672424856710825344763302294863400256433162501144867842813049188320550636740203873648819260605314105685070679461366774830003158061547539127014551801512335517249997889366371869280970583399526343349051143811882095451412868792782470802160396357689275913375499009671878775332887246763332081176125101581083326787703714012972874019644329688191897856413912291591083879583779796298349670631386224719383388160365987435850272324217058116946486038258741494974428050571964565665851133732100992460009886682735954818781560393557015535266519662833672975822036731616329038142594699174175764339768428996443030423949453511959276932121826712155061392590238314260253343505257209600248106593319191608744829917191194131889081212005943608479645768476212300321156492321959694950422441232391025817274280406079163296235474365124210973755287142943822059807312018285680226412129161835312014964570942784651522913770990054079682122316694159239787784993160546412017977268744456258528124057266316752967465791196046100777510158891248032511457958171943282796649104229015118392984682558402015838581442194946296590907357551865509988888238845654372515537145601956784581235536654590613340735371379917390631935611815894818772587437288098062474992555786796395595609744091238377367896112398937358419577257420982747880206024766493979665172356886689593107154940302227146101667985459855726831805638800988181185555056781605387304412651446542323170069983922089808876529423434753940517441190846327462634268736335844828493970464691552463206031188629000969178698105796598621126836585469953112528527123723921735260159439074432775832411296220584942131397718166965036627265741171231778785413270897474725380022828854213514433869787574404023034069164966516693530110936650523987016646745916872642208484665720178670096745294944126956786566708709087413243348176005507900125777959140539587891728161595360514595439621929675421081680121247289328474344242662583583713995123830596904107157383883994557684412906411041678020314747160796777337501355399347862801632935081239301035681772548318605244760490449655095718347608690867817070779159700955497040180046344772393462664651195891753855695447859845154329501206694897578870920025045186973594622186904978151243494215857703853213666941666876119381171901595416817803995168991195177325369070825204379614299648132605078728026402378897354806756495334026027726991840336663105204061165657365425387796347095718079868558617736802054735773006138880388688738647169903307000366840901432589273399233849983999495393884689973294410187206775834429820814926674895018783712611473733283474022570566398754031117599052204877418080698924091247759622314999641547877492261100561354149718430941485521725854825781755768369088770503683555446983234149029720036129848774117590696042780804588538445011561693010797351920546536074817987234725367745167327159219148025606202848703490048684887126990160363206943806064013213067784137408754527539519428376799158359075697469035693967846009671940088965430092116752997061263339240483644175005196950364248602746674549483850453358316838834617804137832034839946673837568745079053914763959674082066087829194116491616441506510018396615571864161609959925562994134688038681638034121269587588109991687751054982695719903991909211033372334252418069254653350641208014845159434175035244642836997765575154026397671594793428294730548264535546862204602295215750666392209165734787755040537068294930878074532820132857998252078459562038003575653689216587873859126114033508108715969493818128123951915728771348029511477158250227763203349829604362393294479396534860519684865099080114943149806341450606697052803610853024827731864448889224558410186747860006184938241047465231573540370522717371969406314300584846361087910815140234395139792053112752953474514612916238810642200369205271829773091827123311595824561610620699214755110679020294445599295178010046484642302251053520461692864903124560639645750515545480237349063692073296284594642576794210565420949403843101763408764691424471654752216475671248382683863818142359445207108223767182421521633862857837829188340746471461373889915802758606654425727845345202473802571138040996485944715871368010698129947782295693261556704159057717501984103928346400268949217719736188147958104671655085813979812095119749365290802275308886679359794774795490098766932179162940956244558955825707940238178965633989142805288736550028723142088076382865050491156418541596136008586338447453172947919871133653031410617388006029004616699291418397639087864128609731050827686584381468746506750612326726851318768768082674391931225468492082451759856729429420228438579570417302231746911034129431535816921569438573616582575943945130070388675674905073470260283719576651053694947400386375394492970990085424003634310263396557939512589890692716788897172265736345127129454858631934512831863305719044373208750228873723911421662800083076404097018512608779643730294642266552285440066814495027231093759752572874986361272619251390685714516363492822423841110835965192614927134878556044705446639780536127634240123867904503434508233445870376210115014032527494860777830852144173643458498838901347671926915093193300869041212955140910642459784481222874646154206504893975884794028650210540576767066431687605567219039833907542927813038120057601302625353409571322459708290733926025613135758191369073471875295473612649495622204187366470193092094180127523270152837276743016945469345835393953456219205624700597612696238608218304403212287859641220293781557392585637488793101861412806158244542996242958366361194136551545685882817725104980705251548577329763921986022322777067720754672633163161703585759325542619472899937180167175538771585237003500158660329528820624428317310512056139129602224293691137036319166081431638149675210865835469162316052185961297790906505007829470883397095022125125394708429942077988781448426213289571912459151632997855571180269245291004968185249293495543584000057004899442460801472661074397213338106095295254197843470494534553273104921139665461886013701747763698289284487571043682829657017737930560383922324502797600810258615709316994750034222573257000604312402145324496132003912217505868503933632989421520650051265383620584638204752093151153408474860444335422675520271981212975410604778244834498911291275550537467516154294735004862212124103964647952108032606535800634240501377752468807550949939152052166520874107357254086943244701187252076664194799991206721466837147333299997249164132187046129233628198622041169911042601178717882774240100261848379089886032104131524110468770611360533295739607336872579504409551464932880941555952730366566035096051308379326248508710766965665923928186123031200175565411394112480676058135224104992879752084427313807459875181645932824582703113565330713509212601940927689769767535277651900669175454487784462941553514250622805381889867777392775937039653965032947120855327106796159251617626901842508627655815160839679325499297557970708719013914576616071032272240399920669438162273571242490013637749753283636066388902880003515322130845238981513340824218668721888345079472713863049505483519257445982693306275726115222950355970661111147848435448843550300043990625251432123817702601676422619381204828406740699966768736166339490120863166104302469220681440850322688547406161503725274158935452874458658600100410800211011038711751483415968246817051992494142920764835022842739394179851850949677644717891055891393340425358724501449547723142516095469563094203725027284741857323049561998932874516516563236398054353667362619177506326479557224491649083223922753861362178574378245071891312683514728237601420522430912474572951509104663989513819363968126399009158656772538192713881152391308549347977949499005957313593580759614035773532297892245667756727631577464236018987761298419699868687925997933395081062454472895343503390281463290288806456029413914160146067156095520334103420861444862024337502457825876138026983564155791171984506924660479121490469764817743251934210365011422138058240741139589405940498473843218567118580163999864622674491193011617193553761949027496800903255161257644174295556602864725357852817157508127136234052009523196474014017335241078941293587955910415443922030624745789845367166655244228728309288013085199166142177927783872125176664051152264825456041782828023512080847897510495965500907888102505238774664830453535499313398063155490230918008362643061167291001647195259577339911831158179654137452878479820129939651539741810690258081886785683204808469507323933662918788249367458925402981183955654720321376312092035584692608830742010190993548978634700380088661115949040615730814872697556964233814696174734902975412306396882907257772642525390880394947973178838052150723913970849522123028155124375310404055367143880893785355883026311164564864937732996466261419148539723275893926462089055168871581708966935257553734412418053440659120153218941137577992712494937263967068887617651305596913658437699402208547253226177874706960544699002643301247043177745488770049371821937558927431582979719262047891499935438195205199872592421350455169428330835415611306765326262447301530912546467417848086734031822658545226843408201250166991552889150426512134865631886986067969866238491909011543163779874153238614175776075607742868432886389394162565958115329705628197969969560855552006609442424042894728164712109664945917848992013477315442257395681718203954317652374139042724776444607975140767907897189036136677991655288038784969093142794431028359290523261564353708865279201169452055859251894345299819205158150857698000216516609853567270279709863636559984625304183328094556700457420455457161286226258337267042690044035947029724067574339257779292541385703074085919733937475306387360876153942866426756687807900275318346864373184823993644880188680060974867413806017104724258481210341403235179358678381819545807481522787310499086370963464898374251897424032614175191341139106650007982075400432691290987803244465435498570903283832263378899150337963002358834253579243586049762616512362189488983925516677997628594096037107328401786483316842664333268284868160596606756347319257539703249088875968159849765539423365943255794196493581809560279374959487454605770817128933518966507982246944586654342023335172052956139965556122934845030511077876531295700533330772688418456682366355015101786733880117645593543377574511482792043287009655265609978342531861440688271205406748508526284037246658715563673591578335397806279717336420055248205946043940760061512376389064514870306018702459141289675101723239153214034737502797880687258237713280938060840453689739142696969468588132823807956661094562940537207688363478741491109327240264190895212900702589544780238165873598666432197515021885792615028166239209482415985526585543762140545191142470908407680853920304821057634285716635475938794468731791106294919711596673813281491940091170238977914539021383212419956868005845631024506619025695792143273565241766871842008020229520847689436855127890350808541231585365540419523372775126253920504112266168095812171812980537823541728234729644383916487749016587682272856478418101862271056359349383471029242432749014604245641456666373958311762675708854201864975327567118769423239402531511278309159855711003654250805092013067525076148154623038913255914164704691598864496276042762904176549127056630589755459611079692866494488096531274971849512313716891309847097648762181643475237566907485395484345351864856897313584796559625147775700438746491431451655517909421787768500466504573272166040609736542655272760562189077431705368397947495254502141970590072765569118824893182822314318209866159090243260813593029505992359661264946475046152282053801522186796671263326047941748845534546017529024804912308226103131936509010918700948056927889343949339065914755932150021214781328609521399557129381713069160690456776184071339907113135783823020011136789081960318708824166827641236050088520659132505219873852547935040299396178356668884061447765328905312308521059051215725022461663573520666843205114499303417334293075484611312846743294671471405854132515110719694686583270984554523477987096230067461004472989085783696932299684038809709491330793373263108332917490121686836116011187740365825739714213035965676025027250050056732840914946531824899618871491066126167021228871246237461431624979025932891881758318426349742770382771630689867660448411834833405965522011036854992181072774524299747560676179135079289137465607554717791461915652412533540970022109501929921610967490925135347722737158120634420120431387784473579993946957185391383560823632002269399528659784024036642177876938508124680570520615124123881774532845449742175614326286567487722526314434209019720318190167385269031911027908174971974466811478666171131813043928633372325360532229621453002455506907771827256014074647715037946074070942305255994697587297765446582890470599311740725604570507900231087822091773404712383403775968780694475636675232972499889949298734187180872918175815323620547594783745164331490970292878640652153750791207115865033776046174475091637878355525666623969103025779261002411421312602887726218558893968633786075919016555401269111949386449676464520081779103801876369078683195490467731491193774561401055835346364189193554972482328502998912350743255185479904638108084146507857636457493231550445927515644116707705448767468895506705048776656165496442745301087107324160465049646420798779434548415747844324940912984396323697513498228887920281086804581557718661419418197515043316348404265685471648746800167103384828007619938451286661084004017479538519616390435778084440854744067393847631579598460041262275262873922988230023435942137212910595002505370823877961946717014113211869160268613657114687203495563776411801049381463815405272861975538043654997976222393623260551165633885469521802437434569455803756880102787428518091236508222032215176203944755986078936737676728028919386096784163773162880933248311073913737730033202662853861719589105846768664090050853978904714388394894372373388533708054982343532186199424728880403585815382184002076172373977418012420729697669882885939711656483792447468369834863405686622496300657041746846112001491172241176543341261819802706252536054122226205269004919158958136830903497855482611680125870641227551192767934528271270853709000138393337621807191462719293768192743427605439402191129568245867706728295475481421235563775655702901481082043950326285282018134473172698836538855312038190697526370159991362202722687840110552357023330434118434349698132394718909321548474018915462150346222387219197485131919509452799940478124525903233998673649944847335531981651271564412335867640862076818806430162346743127501342912886599490801245186855085432057792681940936770414844523828838193901693752594687793517641071883821404452258012328133109878878363795053678285711678448850241081947451781215825748897293987689505777650559730046669132888950489347951998274363699528507957194052286775334141734228927166693627574608997125960438592908929348667619949704302424966962179767783293181608708194698538042954567409753763415666134968531664374396693875693670110543870901065548144178652065276657015796453735696951607952451474710134676564678022807815572589531825970078610419707053707723651894865203709210726009488253011153217724104752253526508485435454158856542221890921009966408087260182598957524883561061048871747501825862235325070539116388115819162301597498186582050677857298813658349671215689834549619480096709207661239360687563706980807343620671735167394387367300454380680756115475336305801092787807280296160099234208059368676796261188424236355578468742311622118655433610052663290791602215876492310553576221235719717328421401341305701244787442967326254460413477145035736766828195137525822205256327479777610640406906469942448453042338199861699513590300955702804467981171666030606662854165035001147891446606289657498090164328352563511234022373482526499984982196465825002330498642112655072653743913854066831556707331945513731558369539507128590592072076245821739885659119842070273875150319114549003003649872379586877339818925983703837785421026982367904279267115215051443173998433128955726174673952000681159423302070653519037099959587619464017204711645702295985150178094376243504584521283058294115790721671853303015740158511195919356863901707243723406370548992263207877495892198516277613193406612671692755396917631291726973736171598496942440085434717992092333172213792526373601652926086680678341525933029347905832580609732520923262586497743093611357169412290914609229898661403090849561922109114630879000355070724176894577629290615174652559078880674877103286866486253892253197163468753825948005662919136088236015811725471639553880882372603146961927321852242844082523088643789753515048039088115831120837133508261294854723221770833355574616723170037819055092259540660648735742918597508293404651238972245207509331696463281676065870129437757077678878181120644431797491624907756083448330574859200518648927309466816582223303038425427791457542597702858771542418046949594041675371760543188241814923248080125158359295520297871920693134767344509009968926834153439903530263454158624866981282912604309921866537530320416838768276422335474700248504383468765909552531272813622850783291208918695031243339273492243053009331989422181618548973547237528059153598096774555496793802737699707059776711488105106668291330745977553713048610838743219288481901596704155830470155125354773444590772127989156785713683871245389582036997114769451906046593518543232699494750225625554338044754339283613167110741608205412673605613032655932594863092905728493583680703381267268703687089163930186345862203871810913111508843013359695653391909708219528106676662194637199606104594286192811890724229705896698962594115367895104386648766175752227765603857260890854786045628560375557174528706045374367206116676577101014572360656116819124648358778063471961230719786833074604164115130143256173382365593317192128678360544156578808765103677620549133756493373343053275496957449767418471779614994795061744913069314356778880820502815937022113876260709993224781503251719032954008792690413220736653970358355143452395514003626784016080747058781726243851910195571154354310640025933326008565867699525816493001744579713561704106295696970634902135970663544010551998467099905840814888299273753999677147330384164201529595134175737757189249720526041316040271701964359257207693830226001780639559890450324488574723982483799638035004270999090650155652800036328205102992131643467352667426615286548604182946094865684249124487401155094329926275847507754312923159392362902153608807006890704958106202120608932702007459317557661178056236277107107181389788797105142095101151753248983576664197486301687920998548190932968911476563075402525223532943594956654632274694527932418305893530354620090523265264097660215505127371439760265086578118050921037835691996210797816150829455471414949201635172868892272254045641899939768292912132800562354270730389112280560344467159901586470177019311360927213495682141734438383013550185798928877895236899688821475217128889931845630467114449083168144789673631843568969887964922845817586948294592682739102730841196701888211010196876136248984108544781584125847793674521739211079548529171771359417071334213483324184125164677524298985551077785569147095153534561961549334505103722179288336904392822775120049357691331181822673310299383870132232558557403223603821230645686263415860841707641598906439442946753904852557822085687131984677292087344394511936097676355757897250226914358151499530595008536607009982504928562291663002394690842220931154346841486085359592834327748578683880564114623155168312034805282978093292109450845542299915762982336258663274343016078827134463149328605819755005711360795773050950846502345575980333981229822247114901902627971082643860648099428474515221161707875004603788103990665205563173709136584561873832259226850812842450336875833007649765384484927036735084465891484613273491661093597994705344289333407219218233532389872785099049099798294287680338308294016091943161908138066039942168149967808940907493556570075326198505330510752448363036864698005430329703229514943763099481912833816956091793520221944173003436898312429559909964420521951549689791885879191065630554202099161180877824887468741784798619144586068090924725511501331506321452343294284189388288337506204726896330259935704361428702111763458185823223342552492390520462185752505721265970563423642953931102029911432717845064385544597431424857710020046258643133070089840061142168793121483438049397497571415409260552362555740170124636227839976835332942244889444247585171237799495730764029111108741914125650355008709780319759342037103929474637069959521186535363850798918349441455332499277123672342261883867659070820006358636098235286547076277764998416077654449102030988498835471437242873373581196817141047051889302563076296029260902378034221721102442183918308453575939840449666291037452200149769431191439722188561010976303978439378832263778178913704219380782083665505432233143061342042643958222911053536721295556299171600821073997656526660847311389761945545710657323830781440274838810658192857798076189095156165689750516625495559981153879373268149755726976533535772359741818294435415967340918516269506562494022677839272649101009822331434889898124862981821992895877503943992141072539216271502699294549671664324931383343552022376043990483378969189575850975360927830082617757673413202047042044614378465418125775069036363030804877730850863551141763474981705326474440407747696961330204798149607826903466596420589060117479120606854314835686739378060249365115394511106348684360029953120389902090766141673841057203274846538433669124831609218438469421185237508845138826869102891099203932338782770016348738153817569029369706090730516922767425642496000861042604904361698025848643067253747695700272026959925666860503024032282419684971492034031550107705550604108342742395489452089592907339992011211146485233527036730468579469939063321626521529150933455527472840637550754198573856364612945086463312145001639823606905719482500929566952505430820721314147295872684364999780409993742652222765465479402249784453356476264062342434639608687358937596911980354333308511296460099514068987687089602711355723868959343754132314658913595380272248420232534643073300867608312450454928429400649686826788953882811917683512718290340903955931136235310851256859307316607566242912171504343837194710896175882573111243340238720411949041085366404094212635016131463938892396222457155712890046811161415331439755795113007779004325321315323168202973684323026209212744971036351996325690945053069524766087955246396775481469346779512234665533094401808783840346921552558707730468416564071922752763050063346313441409058000358154211314359831620344708741403831802042459120157726329109300217162426963337638983949225375232977841575423125766371924997138838003585843671932462296633622150488958015847493043622513511881700033865423623520849428961200117899618384558628933678977465111297970454501193515860199295626894010261059416670662805080901176247116273521721700919618240820523250683527799415663973783606918769563340723932965347011518760183693290369619213444050551617083235424556916685260367449241741022954766525657768336339070021515829226065832399598115027240030541451857923217242856093882367162245414481797864975903131763806982637224228557784623476518518024215998953950352133174549375073539667016582830543117591722136624948743631829824985178821739654429769365388713999458981568437409936401402634949674411870184364834718016519639764385615680339119567299678167605840520106516582233990510711894724411112015359666098109993189632624465867986554556065145661302589682703428143962778075369960998805359623334808781209798998831423580293105099317373727878030197373772961275904216035791919656268694460742577967778515592496262229394812388811381024074288109173061222491786711432441867743979913333708602799247655198203599252792256901822414015995426351620356593954434469194729214739914514242393878251357168797719952692451887943670547578575445083325882767904606234996353614285624704688848067041409194555400218583997388194133524793799519132903111079882752406247580472930788755854172590341395636441177624080043844891481874368089375681913252665923440518738702508973413884510683894514238196723747810397216154283927507745236710319835523378908771634026840663290464037682550827211609686799812976134558084987827794927022568523561250178288379887578797890094350253197803695794523344890827942112568773544117456269593783080065440862892686387122812538435914201523702651497822148128121446678800392346258052155566611322913026007124232641967913049686155678058276533725668199677734089575704813223159465491876335335522954977009475596312444478856709860132160375622233818125154762518382200296893731188417623874820901865160458052290729160095643333474912508359830741537680907313191347503131994617740019646864613678081411119841003287660677936781878962417984260220981918633628471244331840808806207465458013715527412756029510703772331278069161577783953818613639653739826763750117028140340218913231720797729228706821352406683984448310656279359395368011285934420773790684850601272631289910310000842991905963642173743525330613244901100416394957423333091159643705667589821579368284975409589577362297969065610692229416718738743099086957516984687296250871005265551223852343625631116836163224417962293755744674005096409780260920974717368899461888141430403456052511305555237412271159774789271669411934766066147560848120333109328631433190194774553533219224246906650031118023054617861135245043373918903862775145167030016318139564455646006689101469743276348101868276833527005508858324871274678329287141401576054647370388826951955880379902224635232755690805002602326713351167048751581475580342247835951843688155636076431885097353240190720578524241043339359791813846945774998537130434569567128337149882528162899137305156906479505733892451011760833487475687571209557284883698533777793190334615219893648771021271430071078476988381795086958828620383720835296866850581584531749442832284509109186684014477837517543425171251097242641920187948484824161393873001658057254336401608549414730995339850392965357062070038583852355946325074367535146813915299223316263762005925445137156812899194722701886632412915453043548135113848719040547110893880005356783207322345629709243770595656102993659592974615270162751035413099513419832547202022125343576708548866167248465212576918440803023089528908407769049818407750213917148670850875563997578613766007819162655943077731645069242996535265626459530887961268756480701864774759639701916918324297720576646557921963799103351328356444398095716396539158031684834059510245191350842721026655982932347270178716920597052014464421586927009837559328122030057960198413070471147700076329857840421986439427302129697345203717341652890440961976910893971653746469187822763925737410007365049365936454388706937124690816232949995711680535851546410524058166846677567632823032554644279485644840733960317590828476223386915996717234025155952403571573515818990385462117398155355164164400340525404295183853322881725496437797400636880273325636872769692211501431205472518965574169932668013268329273430592916642413243247308637727513143816148157398904295892862901654825364211297519990842454864216222615598695416120946633478444152275581412577459453845043294634450348548033005356611092058008781855010370958203511021391433896570189229281184727701072401369818517284844235566425029639740778076632567634045829425164107741207132729042507022352711940819072582124379964019796845757125554578369988754724184053323130655246907518812179851580573952259979232592952979261298047834867433862362771684633763184769483752614597086969055369574267312647822604140182314502517384910800501717366000328695451609938780593011761048750061588291692172733054934332870982665009867721843220542128948855840079485989006234893534879760756189429500773400612746640200023195899939221532710576944624056973690175284880521794373278125932191849388787528558699741860298878956825803205377802252658745527016104386617531935668247097910921169430353916702010657023643545963635589682249017023420565052993041002609100034566085413214324342757695721005751803892896243080256387252532598981695783424669730101767807134442891184445528294598208459762567846907205211162570184614299314403803756809967805483957514707352928447438978231273282364400918284539007050179763119894382261495342049177597786688919687031355497412752495052130212833450556968643862094151568638498197925993710346171987408527647423634067121802883797567796815281314534941591248645183977290498793362564882538978529967507548806475734636559292784662155481340674903811671575688015289682577869030939343083158140996589519934047359058815014489594833999667201168106047264189942585834966238127849287486105713181194766955633793067356658446428497657496466724277810725255163617419620338078640418327046391632844490292386584327224822187385710639390214158854217167260500300381996410350317050724303857440532398462363108038246518975239672237011903190253753195758638885377423551837023728422983312077467584464313447440714789476586514079901790533718604913244629084512374823107627389250425375204636048590935479967813576092973043165338195357617636245790461842781418886770816683330572418831123418788597221136672016245148361682628597972599857383887270766879890412459451104968969637769466228705841249676323001831550398979254654232158439360525932769925287603707885332528523572262667608951096762841183877645119785284874772584366287151118766377772484085589022019047422130501847786306225180601868462127223532924102932759595288595388327078132728470281173332998831466136115149013438263566582012937584816475115679599749804702999796189391268128266985551104345752368595768780550039953207088182708172655462399036285614782532881046374142548714862444454408248449819074272924802015470505859019731035047953260457462352119582617198558403349069361635611528905086123003175034105133161223814742480884492902180924110009072949562876584259028645197199816176431709005962667710794374963348553987481476674957871045174327969674149329792236325368676276350771722070690162083268388857973222243310509941393128263421172024234942040145513650433013358337832075519311741153187431797560829674874367389623059286345454250783317589077249111783222687103636427709362209559332871892488664802069020041907944841149692622832113444778656147890208572410038042610942985882037097008759626343951996645057763402622875964391030251469459942327069605617822450357451994096867557548004306909125544223109208557299656191105547083778072257418682315760884457795314835714394149038399447928163485665257916018028663857770845983096850026286920631666546668494510552739136170404753842896218421899654534219074861134799522823421323328825715238107139125014092452806000099134475528230055731435526813959083488590083722932022823242406416710778691393949785405844479689958896527628100307355627458564255376651130154920678193752606442200379605591418767161722043866678339818202641038471340839054759042353478831243875176198516556605979930629783682310308175198295631213654366657317368032224161580299339884707347768379900182198963773682949281272923395219021847301460273946766615557029671015291655406130377173461264011918649996838118021347154173281945101811951393129772743632289745180505391291989041596583166500308997007140136192496183190696137603860309373509857946453951545703353543748959218206956127559058854460611616430909554297791197354595566311086040233727096247811266309587413774534890873262786349018422117933839420215131290465092356413745365536303073359268548162356132082614915898602458296213030102678188787560328632006189106795664632414669434166668130904788603369160122995486534080195432598539431243040972561114024270181465022260765079357007892362715976284368401396637890674422413025110589843666917213839289377671133436597343880562783763849569242583490667119951494731524039691685960725213911115905868899171450773478726655709351657157967861878788800981357672905825758620561078933392195740423254736935143047054555735422832780872579623738008262564433474658511929553845463618725618379386386636810788027988062220617798883603086449022897777197294199931056489118204572581267063485203066380025712576259528779194940276867257746277981679460883544710213215114641352669775482601424544025610928073996231666330549321800213901017826918959198623220599770057621032012271640895460337135209796262154199054645220359520220288466754621832171975706822476328314807372582840913492706998040520951105767846883955301008803439053950222918665291996078391657322199792746188309115403792521409991630983391589249996154811745316898619952178385706082168106182465632912664943061985171205742499081140760151098697715142622842171048784839618733943219052659619951976916601781073633658080963309696037295719954298055159251562105007650965173760546194915350713640636545386454258512258869246340436494455905485962240701356226649957672580556720864823461657922116001839485736770850846031333738848902571660640874158318625954640205360014700224344359821145587982902343395621025391220938772806772239431171984159428027761518696031773533221111624260036050451290861146621353584954882661611295271148426803394514345109342422688829040717916132957619679989823349906154377446887304471559216017258560438803574716343549011193303097846518636839154613824443827188830530966175499109509001137642970749610987548928158546909687287195138950964451765429152419509779965123053554132435569180742199616364443878639463403239609675356053339396920577641766203897247430060107899241660934399736649979264028204855394580135274471602281057162675702185737636371594036033795667184456352426748576800907554191144097149051658821627478124271478123138099175397789129441709927065463505222933810322211859591622716912656363410686168950627436775431426830621496170636033297620667622819425581678651422360757974403359757643083931368692552344938258393793966473337476227357910664028055851825447025104025934123674319145542867142077872682721099019917159633894329713428488602911111994468931649028903849971299303306157289182296087373512581052696840763326213929521780153799826172858181295901252456981277249408807920539811076613884836074174223101687808936921994931498297164051627124517494985228618110828208140253108801558054468872081630587597565206609430291875085468486261300531656789501137675957187837329543351730364996537502079458486147078659517666676309856158130154196725413093118357497755005635799826672629824492034635260663064385021170118795721076275279955088177154996778261567340692733342571813415703705885662226920223777665716133860083967775300534161297558632312630355116494230587460116517990337997337186104213866832490929251849355455944722172120030917260768955969983387901876592879583510361110482021040906693693403440675457195485022262331849143908367730961961246490243119414829829026158205838888073566824647710379405668791199595372501295491426463796812886411981643753278509827008954996984214027608259131093830266882852415103536129402954804421218745228425574103730381569676936707715076327142799464533135085435089376099606333933578425540647796505812369088469637188614716003670116499232071238015735026357293886901936442344937271476563361659603576426671940581266305172608075930250571154160995395872494647664346396130028306693374164595585058345911103421476055287595981435131052007400618526335913268644734715692377148271746560648879067540198964454176298295170654247965981424794237571322038223941324136694788618085109095391560855788421863226090983434093065143114519945751831041911924620707859694748259070342963053402007059889259918279904340244627793927791788483274740476778174673494178672315083996030574449889921109949647433946226218547791371089630111056048206648891016687783725903438589416386917821049960963431140694237393413354401051911081383108036244800353798032283591492165097003844929049689863376314175077036669785876494953635011793495428943983204214562760583519468632312555137051459049200338434793867935259154138780752622409235686404624400923234356443835658979523864021774707118985428296992796945932834409793776890460094850107858662340344319464338024085251945135469209779059101090300578072789091082843938100951159440427365957784397498099509462797262309490422274174835821457800978424966623261232304069079869943070162722596607998004872074510945062202195768390148605786771315225068955389771552300170911449375203814285250414335189168034104383355240966209122387051148808983616579951525717491190843326696614161187558648214904894533372431394157049285886341921620060801662130610273108622527118615707087997922792462045824030519541737451695588018526823894015781380936897335193554871421734910367894464078848461150690382425182925943161562451039932943640291686278927882527359933887063589180156457904541339414030238997683568920101431577727303760979597950536961849736460700122003505147402069598734491657201261928181888921256464644362240222297301966733360292977098714925165210800006145391337348932991380591653609377066915608992424167333210472147032740388625879426441361945609298531800434595921198930163162434607033476093568110610545167172620286952305711326846948044112115515964501034263068920950874765043412558287402056308257072128581775141864080119444836961982828646708980530596115089627301106173924232713071882098272485282860874422181222892978186756551003871298578516485802402092825242304382418866628652129641914585745583666345494785461800976210980146254292569986696740833920805165346645895129937601276826703683822031437301103883247493545856396515273351612418550899510986728724360333720575100100710589790274375162211407871562113408651412883251190994883255924077319398529273549463861158209424503892899030183848745342614117184705620450139447126628063262785241445218477494202200807736100640561791097417382703457023321118535194356774140806664763285296587163306954084815399167146281112357297579484184323197726695536813533767124448701111793299089258650294324058696372772656420628037062994077077028487222635565800766593432224129165551774210658996763722064952780011444149374150428054438190472044431295437429317668949351487397161204388030170929878931615430595074601640200084206902609431254286391619430865924925558953034905835315905806072733702985129907730444107360034545435706175041697042557943841225722840015160144854863108406758363485135219205372261625685388234449319135173105048178431163234792767876398936570162160654740918998184333986238750929796257786798087285325792463919837161049600928862460813854402795167769791734603724261501641169635898448495084698967235111287816351540930526372909995295416960105361452363043832127558998707682117844079668482871970349313104145320478270662564408665905003367481209262103489205033621166450724549377765519307354846760968464340654530118593167370863926407746598513850719589128489279563062132666560130176245094150847360308218920219574970526862407176854551610066934142611477837298235744741541891190998230783133247514678776234087461081588560685685152429657505934979017946560567445080606382136462756401505323827330979433426330130933080638204569014810571639637107298615841656081721588615304643165136820137409053583714647148956469318853031573946765425653518948189815144209439292618820057388204923581428634351944510890824366508514020135283535308932200168343836709652326835965783171986045317542897413991426762076144526468793310260367519992309940815742225263714630070365646713421175752395089004527734800276177386180255858387509361931713892963138631537512932808744609191812305895295460661075342970408945080142844493607371369838780409975366113340688339019418076066372057850974164964156406181218127324074227631067142364434770762729386818725491998643707459841412105204454930487697841667027844489734863136258677998003202391802292868683046761612689556056448374276939021760739669329438853099850870400732645851402224476182826171533061676095523256073133774853454602230442773778465114804761122969271699396552396777887182962913676702436396618922432011574286875991611872725571208169213707213202859011863029286137413518857665039895228661351670671670040251342986426869753713400612439202493184035944124408367533199591133208081022808504569441169129135442093196334563629401041724273682516046042244417874639575042006189651026511605385711904030703037161373463929414002345652878656609275517163855486971309728817032045132424522427597576817188004209321474771045738485392301449807580063347355784610288436040785334416264377038757492473030719613503697491423120664388756594848120845082406544311239228883333882582404313785711579336691586035422229210034568092363570436754447141335634889909896377973092829093389331339598953278299520196268683709864232369211245045355592652423054411629893604833593041897700884154141277239699746840893869020843379789465396787902396243860602187786078120634506781350178291845841572233975193874279600276784861820293136412711993610477314393673722999759211635910580710723239112712828703191048146462395184948747165279609889944010112809108970060541774983613724833036966622030368434736660618980333516938633278432418898417953234549045470356651376659772702051304993209867031894517544508183206143434036418312414096699486585529801304010582045443255608993936781757837749049140184874306266650453710014646108578726955162822720616403604418802583975586894590514943270069635303139330875448514944379921792846170267662002753068790432534846190371385585769958595083307699410792197765821574023254150959271968472692914329253587201300181028524882095450715630100890992390533903103580882006455310257366610591507541940990682549710254570807862441879734814813096462126330492193461610319298622217068599565096588333221365520001450504659472360338706413510113712145861212889898294805085599499665926279601700642530805574815045735037437826566375115676466171140140434456970534702614193885744281190334541834612328545855924630446215085788585058602316430195363813211033121304125256163703028178152600048335688652018914164338480211644693356621328875543035863100404862194916254740910783827115210296479573859511604931727298450206058743882702581546821850254847636089592941307363412509741320530382395624595693910461662040740092437611969866513834696554932242227158886880588959699404730644344009317729835660551003565247279779273312176032455014976733506213249060704871724598898454031411987908327694444949273546526413898026430605084075766628373609389105064803246291118847902633106385896622286514073674431077043234503826635368521229985359812569456972255957901713905174980277313472960299586297798840422759062269216221727512972254801043085251035945036000115060663174344887641810232676485092150070959276188277740525772140644729007260370257254299963966199092565854098771740648667243229468875724760660519189377157345547956714426820599904475579455411745774160016086369037641777982011186520338885438424193545686945444843768549949728195317042832534236419141945624774694596537642513192104177592843748241557294209891263766723191556966002525586890910994306866750832983229966142881870569376322709391581045060664344022577620012366970465617662653742263919285103873324266477260717137860748154722187176104694139081786179136616220318769906563747021436859373870433855624700305154877787031067494490037531440742202051120572136594195225993988870099338364588129535953995760688089580081726165083560522982514523855475663180841694745884779835516544887865143670719810746316139443588115716337668620259387089349112138408351159644016395800453876165978008026737226970058994652505929679382070691313530309889815007736820149410978563090480961643301052742294476269301792528199295469167253442368170542067430119727862699859968200337897430166982528988399467955520686780881527406135178439285056696144135646005984557950899375787844170679684682280364016448448446312249478008964154715534409910504538302666379385619390425518221746796259569042843315497519550373253082190138563230100087264270341913548857775832527310264701286200303892558656254940615854784025444060150803602529043263718164242990592024735777551914340489511729943986627042283853769548939279232512276354511071461983569023015276493299146171084283879899089182764771155967649208273774327700390587490956610217347480772244673032658299750224760412251392632447184759075820326027514484359645342998400590037419106852074330333172178367193549683675856706581834840360947600639073246765660632930685429092535891029609555446117104765023909784337790703330233813154843010871250551987754564069740494656704934414822956785119756817323998539948049747218281893021227183507161674922398455747678109009938518933260324318142523587473030303402888016570022204243821549832949465246505942409805951552927534947508432370478762160970106217033960277474162805016643550906155686787226307388962248378853862895635228918550331665395826996769826027866882381893249279942189785821976528119001960349294650557182313147291102089802733914975111365275610934185273654215692746211431477659437770685404966558801026762143645625996672846582531561008456540627466804136435799889544405499751617763989664708150838959962842704290685911883731693461009436147069418441961127549901005418542120379616298418098873854843825359138521022290749811890758893503526027434320323091744263247277187469814872031667238587370839652940800636527795482998974965065498151719662843460038838627486417647901654750333289430848340187597899515894655884012787648934885911575130549902074204376052866941051028978679027268221358935042574074250508274351553221270339661977321871570369574520753422581765559752457281760427715429419472103727465278855338771567833323159975299591312165046041290761962210339881110369729639212584374660984237430139882922816110845367405927843012021599423861935003604591385103459913471072897573447537907562261538973041321255526294494983865762418598283891027789066165338359486601151197907792404027064632953482884598063247646418280659771762793015072845660030643072940455962838821433546323390851926543804082392663742644807491624449077540671850102496757902762654070327021140370631087112404175049215206134993888726067396862785137094347688700845633986909455334166521849854978795686590820138794651813205638810226890960186617851033228172520666206871821501565075330617348392286098812499725547545094637516862855464533839922092790324437919261063877409947060412241906577496148776823186962428746366979841594578429777942126751611301266936136385035915675052110868752648748909401792047847318977523924536253597127401169909879186149878653448795965692599673893135834769839914251085423345254592070440611213154593135897856992613854778229829726895702760709281370692379384375774566696018866219208424190096713086909365490771868408050593009181249096077487728602852633879429517919659103311786961948989048804906288012220178607139167918750174696696404245200175088608712538081114351313329472703678203416827306365445799977524140118536386055025452447595850109252006174573712145575199037203964475485041336188820675399443262539351726225876062503898629299244645781509446044420400452552696209772817344795856408102616650612443984564175230229222668216462797106404559899327004340573549002428134682030274369938270229536892322167599920368636529652548641642512180489777605182701137278597981429807133860230626733381712311495492093297218678996175331134002402072641251787872914592865763976322269060281002258997223523473147083998025689240474167774778874410451777444991809674744496135192720707092199963876226863487163581517509563178571725392916310052811112866254974631257000382514182610814191350464097215552197648791567738562099615971198259081750004590456165526729694466128886221193457568948910444947893264711736692837290124599192367483420452925976257119824132083225755994291851875307385627296224651233977029552634847402263580001866806093175859881710055540873608010962004867307616218893726410030872568740771547225245876374212025707237372574464713050488788184920006296892622963442632489878146978642357675366458481323238338247255739008486570142908952136086327686699834320908369574794156590422417853631651297275069844075732706259306663767154457299824273104723297920351009998838536061630314492747241863733556448138688345189331947187569415839972559639672506472651845967260710002138312801443525295838728606449566839566974951408494266137960609320819677003795886061564471325829141536613008264298034867726837945697400055870019665901620001312068211618090856677442878202276087809266609820181692405542058120527646333488533550251042224615027334993474939691925865573072807717070729876081178466008031561509906870489354996692205604299873435142387154624413089126035004898828665570609128767364833582928514758209829881812418447639155398330191396162407333015265837453402233348048692441368802488504716264017516680840713648474164103248283169416353666607381800570075678987184776449246326683312085616080520601904676309508694636706690223021952602966201202747801083400620249674904722817842335459837464894309022872738373874081490249588576436288071334326692417108577786986218039946335856454327081013149723182450897214773041089517598875682463952991882054637877687665493015579160145714194318920064199154746309701448991353532846333134775516867629201178241418713498716333980338602038369634878556658186225064762830123125187803454264729728961272359543154328603289685893351605207145072123876172375925251817683866578396687461387431122226773883013337594353829466293064159656103684153611022129310226968270492627379814007086606238668832699085055040542783699441157884933777486908819030481599855485373864988539081014772256351342967133205410001651175220240093681696865085373617544335368674381003671157160405449987281981408541416023654991654030122894672691631323729850432942746139619640557265791660670656597387064764091231292374767277011388777122034750642935641614638804850953234315654603827251794363014781092277010501123336125193888266748152845824084389223746236556721772795599833582274868095280555450921389822235572574875928919225359416592332360845056949941159998279751642745205810132843824499951716240141488512136131450140516363279381640433691619583025300565676787214075924415065432866687892654407455339929636763268872498280197166841252403315970516795006054688489984466887429925780122792044014160297963621912374219618197466658153094782891234533199251245407906663269287360711804167629731211129500718928237930522441103629808599550970313389512079605305247871003305227692794113163474056195287767077013740540020516252656643169929127534281022179265775857033405650276568199052449061566397917825414768889610999871390604348771973424190108632882400657535126819136428909688440456272603077772968555908109716348445772182388337088173624056296501774161693052671066559959398803606009734669648803761788248797515653165044294201878382552868661483258734481390826943125764276332837079224712841133009938014951886802879602441032816170485516085410349669256739856559345301652362949116435033493605010909946869824906267729583081277007726727732677859186564880979779823652466373618837435232867937218073673908584409278827702632810398451383435098335208076052631087837849945241429759495583150032618760316482038106371659517415976124216823458604136029159685359359478170340016114266661121736948700633317584743631638519090539933123878525120105638435858284007297000298386266342448085044332343874260916906001454069100144751003785022169546697295759236431927869595905453083979660014176938748628694431397695686914851461636895337837934032833415401796303211909631874439432801539342079097140663791667636805501690375261589783273781027572480828531882599211755635988865457097841908330462645425352295008205706360258013306241652710587192606587100396965140663280697303799971492118647856092552749655685647124661460493829436110392210609621830164297788683145664511924567830436224954209790971513919191752822086767310310234703541254781258005964765792226258684004951751668381911762426076767808706053624592866508274110338584144016991704280505933055935364651445052589152721948153474164381396461897892078021526867765314421643388333890123604462939051878361555777527129308039039222154598399632540810956881952994563591525537684218829531282432078807687845553125777961368637168273244981249498656735911642941079938343633708535764600750884327938145122260628195288339074866351471048959916679734321698668096278837487140971784596708326477442208621811927107623138377082514482866607197301165068510283993211737515834872233118935896475570535542444691509262432743888321375306403959750649231250996502908113726306887863963226340569030069987023092781847378995384335925279808795076655099738987941329448541080230519821634692163518109962545485080642567284052530888606105838547499456898951367513382741946111737706915327558856368701471671466775838014800430168122519249856594679759267709684064926203611942299752860771631266600540692607784034692689765174600104674499394870986799348728157646777465799872271440289312986030124106019952693958435864542379785048636142560284940852333455109046932255203705949512214043348287081231392959014404299159786107915426757888199555275427309124837905582720299770025936885387635959137962686668185556820258927253393822723218838882863788097986482108779043115828280371000191171745692034286867111714822518289319195539428446199654864702212664084581210404932658312999970144605145739066554522393671482010466302024727248545126370347334549110984130406299719626931320226401004137352098093432307299483448438853845490883066503364251819492036619737850909682361636242433592347294617214944792062084788399227745756668379051120201737205391184160420040883100634357649181638996020471575980926632335534470726595310485485634501422834085984986156132565254868840024698789640741224304656319658418558766182718987060765839552515021380804600109010005841892550355346790397352423485419681289871951179166364505375387453079399841345372396857141257108106802768612848972476742139645950568472092571698959070695666713867226412420307992984548463254154850768963357295001183966463213572450852855078618663995872836501809412282403461925268033255229980353712116059538267565272021518107406171806348281078904534058897741966387016404366544676205978070577700226183134360063384421045540521456615109094132453115287569416966897107273162590361083764728092575678208103969330372668762526282968413674273347364923773328813558590143056905544653150587819619339886075338686402904395725485633655453542459925305277173689882641894773204679114455745962702399461137207323360980485285413581254540501553462924827726692770915566944069322336882368915182556082904954591130804423070958433912310601857780228891589320198008584163181851492000171068009798278389447837445371611181466412066847472354519056208059717825224447567085148869173289531809963454831521890771066526161346262946677501659765858272466672697282544494606342482148708761887822463956634520611869773282525427707621394685514898696881625040619057378367739847616550086276060658915938815268613770816676747815287976704781091296308642692902053146338752314192906406232339353863660568225914247832660461325031830589143835677400697651186653546554632021073168055599201210712482842455108370550689929903856881237025373344867720893362519000418562081385064772873377599552785390042405494143214993437914152522498533221170149142785188285474756210928853797360190511786904632145723491138349313678865716369998032756410802631601510058396555631759804906637082587345829465993703627568141489173950070120261702404847529157875492995721527268500864009932352690689581803986596745182866561840892439592247256397031643925491662585608368161279680330072670993008050866061706272996438398675802390701076974512653196845828377161241586324906659321976021030400714741841908598982561036861480222337226623069847350416603716943516078488495682868047320228159289022653240032109111964026301857552356154246792495729136225485181486005329441622857270653949055064715548099392785207899655154961923983026792201098074229755778207709868385369482825775458292096120359785816304502476753528780107689668109071098617624466527701085232417521248667088450334414475445247107789381152880462542390015229582872810311574385875973124645123455695439165484381027667387379682512980399164871180612058848256017692695644106413842221955743178624723381813010424139156518739211911940532946767522908797418751345645661990916894675701539695706587209777027265651739376150872128389081870787970613885370219923026736408301817549639507193559608990449789639226989763411608480400351954058176871428022479998997916990333141722107263487588494410507977101782634728586293974312535612034911517793946633423549513012690932121620928153830044124438276365602119337604804936418538859193496469031639890045503643837116677405409210522586221325305636919752532595910810158562520023996928727411734234076118168290296595025764243699830937085247414882410814572118760416517198794602225934693880214552501944414374896177598550012785513780253098315146808745433852966358201925654981910275780475965214774419524203265909130952008169748379829189869862671443224364667276385217495002996020687102578421819448007861435509817391394395048498442543259289400873279668589254821420431667399032888415757005301360234153197139173932360943491606680797884630727171255074412506579319732917801527804986753356219052196459540730265918136628463725689499997245310390227127306530853295169363161439158408626408273817274951847260586987413321986773098098826136568557455247163389323114254290087259783862207449519005793679203252471516465036314756851403796347025418885836169631640117721589960756342010051493435373753378209971362872555788364804059642141133125695747030724149751449376487883965015026740331396070781598022165957946098279005383560387765362241629036619383096304974044602289786425165225322596574763064715696665033417614076365644083135592761094605846837651030207907043589220232103285815419187890943158873585994800249881819574000742362922989613728957029797196982196257101579391469860639550259266755557499759599938943921619788496255446530863675407544579393860607994596889886502449788052543873691255978206212690367443864376510731669848525108158311132848421132417371559187866276211848207499172285856126510201452296100110984419139711504053870049258761392800786797322174938431970985971999033711286425939745010024072785605094784176017496381530464225128987265710646459062715869208916049007128193323129520668928493555189514010517927007115170830976679402679432654178013399057820918203738883843938832272701468170470713271098451475606724538963849781366115458952765848526899344180664836736575344476190320434492123049073368888564626122116134425733586383647221015919238498575684086553261973071282882046082414214536756030386566609475094657047589703388218031866390758205022390598704428608210311624567119968965430084822217571604087962909000463656878137431053741966943970266771420358139912517170893754025433052361549508529964094378609586696306875152324652190045144130696343925920328069478945531232319736399686893088715761682139422867906929177598184078783335054910118040111685127959091169121029176665898462955595952336392578307900146228504385882145827545083625137901837690116197613038195191792387616807008016044430296964132488815402561970170654550133796686923371720136425615576364327310562989163238067395427097709503440347048110550686878701537123586814495720440564361583728240615539132633613795520766882246176491386348948645941141485551887578469956658280262065687245493477692879990503445351269058541648166985200910440888092513438613124382075026817297934630142086729521076594265159652303065803369607662513712515926008599168575229677225719448234293523622298094992134376190003482517738735047133562042458318982092131799330889060210254757941738958161354975395726030823727657516896161816605262329625201507996070650408440094785140081949239462291311603828362834433675696322563696872830814768913625761193974366034710349086700760903930709992940235190648604650517821034380328556220468012368710535391656208574946045087766356759949598394804519838537462361252257085521047370916579586497761498708865528744972959620682863484676631045893141317940588139725495245821068551212571066418253231001146868088316371973122191799107202364182613953368579072152547330559197657173633629569565748579552580067248563341942250075327856123438834298551384489784913333391415590522716036872838992151162984291915438686033893853905882836932179477265218476063000566945929200983658987023551627014477240584038155814990547979303363494931673839065210945882143228318407379948649934693833197146904528258118570865504697218028744017534617296968945003803906019278978250716745700231020047893787127132845020628474799509219407581988018945582789854641089048007835527581648513829590846295020360032983532305691401562647335643798121401678287265435763531936064564746545944674001150341420003697001544159963818305727712753666838467547684545071956081145617926147002970604275858467994375158730929267895984054820567492549892783423036220320307509605026166118192745246675459888087962366975418177572052331020594873901791127748016418143953374474138996033860889539728994337164128542439302855508821015516880411404184565412478243846445948163343466248514660699937820471892399336124745037988894381885892603506447905187143262355908951205524634562402168707429416148565206544499049463760577971495885027835927624406035167567694370134649124172067344446104495804224223263783995870833606031772370953612278269199441114571762078944602290632141730573004395295190209639367561975454859898569433239902420672773617321693704596932658494291340118712551986598159204917583918411125277885583700955348850336846692632390077220064078029558810745045222681282354906724653813812953649731451558672132056650513323314914311976538641460720519078098968928914642362613770963046492379615871348265479710016909728957034084816769575502693903343470552990535650922835788995253578761512227816046988378434105340558141758664194839300055887928511452197252604962784740210816876260751759674923068632404225125006178258426877837567916701499048139222390978994773496159778528303723827846173348851880018888664164292052901150047248265943304150428084759527788508018325668681034777056011334780818211906735741311043823241258022587322351836743226172434692259480979145151894919694596121123856096101577008786960009930899290787304606259445497729668826042975412855813217752926615025163042851249928581821130266298847812459514953260582747711901277419308587757907925578719858519550953353595956309230462609033353266552310360859569972776396308763925567839083598831397811715072221937696903090386476134614290543231842993577004834162118933949916706559046807225338124761357351338463929517590661479245769481433137132564720427286504039875865925609194478932393643222740691192925725696721534377409506502663229227350652666841196757496563316305049850961439973214641246011457520735523579097463720238796333906887592992808154880457441828943302589295165856046573400656694660246207594625787193373886072853834132572675815691802381596737139570951631398842701348864553319907505443482063860038451601020637114658982191981295119904957990304955356593413927001389766442388894362780746790024118591104376511098851669729222245489709730164268243565083762092146717269756323090118878416140501328188216590258755077579677008585581468659749341217442933315321805752885430501975020254730192297782977641346714332585292807867336115119870801054222664606319404902089081892068241839745574655554021759760903759201382782336078496865223954761034170991887254022702986444834849506446616511182281944602915015973309807407559771391814399634011442106922674567347224011862209710020683553039942295934633736379017324083726043239314681670669957013159843361934668161891029194703429130396209379293866430666232548671758813671625863813176058912823776227856063630277862506121638774440218712146538179411706353990345650540777051448748359701679593067888116291103256407902569024189895769822505495083986305428001757360602684124989754071999034000956245958539149436934175010734734395623824372108079344974242374027907224772055205694758146956245987189040261293344196618697924008834308190994363294270572428441246764163922368137226892694143291391683651952296080418169090118444550812123210885024926454843147106677062531005242951685774024564480249198376079654039893626717262061851646872683387088088033223807163612149419817216909954395105067155725145990114592000374547645641716489478955915622920455859136602870307996859958441373568222176043134609450719096317123839988244974419688511188171549881217389251137645923816304984813449113017360661869036722941829351958338380650240923375223515307107984696299234805952385186860318276947670719099341312071529023702004974565709795937469851753103843760804659593854351685875729233277000286408538324484977542619320697134443315805814720990384861177738873757136156764097868616803295140953919636267860631373712984103205146231792761601151735057143974535337653501236989428483095901218463658336826320136678323993884877879708468665177943836947475272917816846857099777942370465389256097437078819780861189736842601003259770198545243552143681643750821725040408602029918326839449978566885304925959117441564354665956053174954828472509727907724593425585925495022833053979431454473027381003187462837765704310762015311860999861683166654240839240540733652600353731640998328082469588849974087931827020163663981025650645392455722251556694561197538939215817878469455571058138953811291949836681555724909800057123730188117907600561719311167098966505720555822162148334037551726538781412604901232289671340771157895014924291188912584002367105237952948194285308317798504270487980598118480475826395699024453564864029214007164813942765121202726954166948398189139868971981198092210915689070222260724725408610391625764093133855433606353033148117527971343836230909057055339233537838297016531686063597050529673270440130019385900344565612807291219602469408196693953454575338189313976713989795459484592349258991367408109617076695700048746568447976577817944792735715382807017202161040738377383414418867820914484093445144801350327102407496087410861660372690014033519877034684040483714359388931217206880016357655772250004585777779391831590007718118496901795122744241676954198689592316795841357355555149598468233386592087437779554764499769583260103845903515506383439893469627733011513885778869163919694729318620952675089929116613668118011089441917964050391865150968905146907125112449543708341200337143648664725378064995854703027012520730634782200041037743882598747032537550685293988138281433367571803040786127686906771375224903786640102893438141899547694593454328710840579748810644408825585845656307625772773037591556523356901450927390815132238246482625311423835453694903017761552178093924183393211725316579646648061483948945039536990724331523467013448455153505146403298510527279864766607889124729095703255073853089643930553422327610706463649969454902158755506110188751156025785790251365522522939611322022256764946674155587408057247814921482434979831621046686480771003220002326791515934716912437916545740150528425295204315595813329259278672784859172967185451234136005919846159686708238708636990685019803333210427258806439662729781625678741846218800301469308311226961911605501253137827639195550284179449178553144145054481381827202429153199954211366177478489809119040180094466726217290934783383728799251539200156306734366822585780835356386400155891282527909786366926019609490448377066221109689295758139705111937961449739977031899717409366102975859562952109800439955055477836847910101058878441522502605033880993506318142654716003647756878944777012038804355733438440639285040014521190022418287349046473931418053871899693174949699794226866489333922589348085026016991283598790547995977199737146453852732465881639541366766537543109733266143138571258968560550480561049990974650717616433190294864922561216342253458518208723905814667183120779723802916186562332937124965832678531275071308730351818566999078454393845883957467150501107369518305572871630916509507485892355520233236370046795938148017822556813066655531169473330586170253631810847635067418112271731697089832951350950409314514141864329012350936273180778363445029271350304291056210196553621608164012703839035933040892685766034703075298605219052345924478793251212559700354800092750110119789233935534443414766577877208908307780029218744185369860596193658472148721475916274767343157486527771041944459850100320795676784556026324663750088075564493840096289117493996302027488980451251077020921014313517269742956806192576448725677874446105801561065128493967777165954020427963593789682586082637572060934866066375973800236145979407215019722007276426711728809339604211330998436184971419406787634908775621447958171411048287857961686568996697237551651819067453325178620168885140977759479532583587635883346784425819680173512458042291760037517385292435284267019302567324298989330075568441822467320620139836129822506723355532581182740727746523768066859062953730238787634066306529215648575018450079805442733099514303114105087126344871417246906397788421334781112610134511916183519817496691233090671038976439951364958628458092782114761526152131114869985972042146768940132597396226602819968939453400052135675689415574367320625711988420275745903777495711054982549742631886664677285531765115620110964802396950206757960869434575378773873196958839682692041301263611491654398422940570361326403493389430824778978990367380408649028086623553771496265820755517872516644064604758326586971004906236447607396314434129092925032900773099357734777958258892267009363597063563496010477653892110952930549757440642964996029080194547632738360231842049793916132744105160778143608692017040582437950083904859858037262429879674664350001915061878479331879315685534377353140720079825027292170494172090358484335176988396444138376329639784304125935087720407995062574326705436327798754341931846290641276145819374202059050091155101848644765538897793365149775223661888892575838994965078740431793653202603959014635557312815741787350269750073528639967289834576631485698864758130791478274087948521245570099185859079761179908963010208132810957681371333878669555159158602110415267079271815642628418945211709307349295499135981977953494055433530470540115224089785031136317059871176918769435473234747663524221175868485084790828804725058944871666884847636595959052505913554031786657049314006648961610193717383636238885678880081500257782475103137608169762766930882953630084048410670673675997100303044902721465020368956059462321033855321813582246378744151523683136517354135608940690032959839791658202387604613129235712966335911578362699028132070100293615935851467041725782507386188025634412013645901342952967831340990427656655139645972232063148916948619459766447687909767447428817563319654352207219277368928046412906428947615887764068338828597036286949450558802678550921217391093906714850751663834266647867284880837805899243191249651193240593244731653227693851647102338359950370215638538217839756986576690093656843188436710054705356832077120876088740405323612772040712019098282765489486211454859245595335739417690957666847124952637589798471461522835492723708512947821641719730492208080502022259252079138462292429908171369503613243912550660364400879880244503178936893227744447087004662339397756565564451272592094019455490363370546514281137867043836335072105999262898521422060148532185366022641357489138843665461850520181369096812377227968853053813768316440081441417929192639934250474881316819363556727902042592634941127094871383917760411679448845768879345019849013569060069398101492037560446610041081592043704094244700674723081132247338247879241261773058393151214576834280903360410860748490280322562673701688954537361566452101292393298590267260645328805938513522570563967734881272663214948817177301754723925939665690316252711445291686410453237826103511484377864466053579251796889336764567710689979296369766758222803159649528133163994603734046018166464844761800384340145308537177087721909953488609494908468423751309461610392979110055698088266823798580022836609221735734221012112828928975940738242046618852063173463608037787149887404976356226187852108699792274426128165947573780210919213567636375289122376520577710902959492536415733822620313155945236734853434310783257140679432611016621153945798025744295138531183259047558556550180808263402459088041378944127880511668745441229520204484675701651389211712930043354688977798169879996568219463791499346245060516272855464619352622692631450976608494213238290964816464059287546727456590390609237554598145055569095628307900647437808321409047057505995994347426859384830722211800427197369864545178217525908309700215612269193343126632917405524245180833667726281612629021815428520323687584442757195540466738172905986141309766013134764774557720820048188937328933298454830103326148833296792529083154461682879243806841735485133532955701438465535505431695854767159504546545402837525538001132834630885612454420865769819063423670770422104870945897918484224505654215427610383702119598360088704937834828523308898471852560386363913365218323374907806163265356655251620921013038722697942621967953577444034469098863332071499528378291940537323233397575353458359257165046219599419869471127809831578332965620967544806863384694029068872552149177407813816450815423863895989486280481287062435586101105010016195336366639614219330324395130377009894918556405675711566187068476981476446795932595829103639951260793552981316909713557150868314005124638553670760788492449059552548566765278202816159460113509791878730388501993359626422359486598656002064893331982885759258869487122505818026887270088065190074469594685219879720534025987799660398137669473597878681197383376722170322418685057891069572896906251841221466949120345847655730236444561164939207524049888914446467761586333337409128815790537266401071002699624909769075089369001038511346791070000654793705058890629306667424961461764219223025626858085317085741474888132773044321876815025550301485089322059160183453208852303946331162213845433263761375014059474248578986070284898885914346537120772307668926345826641452152412785883393018903437620481466344062161481048163979158513821653415549673546911947976096663488899737579060437922310821054887032984494869473842665660947447671496581099572824297245211793654755417973842327792793466905337691674204330189539055818735130481013147694751126103164502093152416971496880248881956558339896780701847912752599104750352925591858315917165601899778137836655359442097353728363686380388774715077469053237688411249441694488252745550143600795738056846755127430217600649424391612473506351858367837583330977426202563378678370511694088796497491812203986488807062237404657977875386532925935605862322217847119799892374716715092301013338086005367990311559875674163264694098316401709450464133422001366880292996551224342215999592246444631156470287519241913710797724751241247863897422565512969935043521364098896880845898748429433388036796652430564337169422380686856835062629030021457303939566582379074826734263318593449769306037567122348001801947254380173636747521782911037722892672677573255021945683975658911328327085146316519087326371153806890148220423872304192817988732911773974383614090169545310089273276426310729956104188114329145122536202454841932726552949452115771353949807877714382067793409383123652870896122513837844275931077691503018381930451701635819945218648488235420310838922943042435859942474923226428723370564036446499091116035070996961994961783248099112520127054246367921887611150775610750659329553996475003991234359686278564744625379178302118093251977403428336566695438749151917475362090170890343790637651470125503553032122647770697112662532022785959554385145103712164281449312417151234545305536370466261726764819282266348168096892221302698419829523477071977921440859091215273711003266146454354430894315730932279128255431472327681491887436830084778633636262273240437951604690616190714586058582289953080303122180526513654868142111244594601406077764089424353039550938306095037904914446866559682914931724593260138805489729051156863033537696298748967674279834116457981189302983546919140873664420052491940629258602289485283693884546621008312968485337763285031678721785399738059248541932461993195983856273225173597873601301069137428630450023147209047163747856384519107404704433205002068201419860745964697593911061498128458287917728780199534799675425489261356068923116835780238030316888321121846100291081771564408200245824670208843510250870260740471724296127314788246406216338142626927551213411822936601156671192577939450671518402321803186313506753408070921399580086411226095500818369356047022645174528755641728937115237949543352679748519432307913249972092680352965745254158030352119662810524227962660245114806856867416745747631977596067978101822617801522189181698509471259958682039039326736998470422390549811539374586320858787272305704889687557537082225629132601885279477769761827300410200923144658315136251107091869568282011687430953000602596319874400329877702697668761803644504727822158509783823210486126739230758833917184375313991337067140139937346377179027057667781513171999473816160890521252553281124648381454490647914806059621324487628883863234117021388059607677076352415841789113509533734328251315651502671503547955499356054916220977823603371103029658011520474182910648541768251162775942805697806423174504392611924199582439392400893721165167703085344197574594249684598400321462172779232065990325482906377048613899021566863675319399009918865097661734066603718288561853267690166485393897890205029128636076005592598391292733952017737724339393141637488698348019944772890274969606612731678340335600774571012472425530509784767106289338372296464574389715248534867139862826130474321069740133226685197920192515757943158272170911804444889240285506539503477690774907538281435587085548485842391813655156708525668718977433954772879369943818391600613408656861009868876853631369217228338633033431620397115924465662062551439676052401182409292215946805701533688976469014018029356248950760622525468239873621115190237344328400049739006697037742279337564060501159637004178534464025779605752466734780997004778775782837137592591170515674987277001318062905289107064340049547102118104492109145522129923404212191186219373637027797026893999581143726491249764058622867140035861537946199755970158161719197843797063052813301571211112826962057681766314946829116962008267943722320060509612052998044996629478745097814318768167322054632881938148574775524227564366730826728382319386780979910692747425249785987887288844583983808547896341427939476606575122558170902037012386947013789763376080117983434514026249316358815818574736442782734671446455475405907947315879931628390943890433035866919352778046371013666368649638836241956683876922445180484706743345397790097144410194103258135657942127735921393832685870149685861728042556022272179187519273878558630099100413384507111235482672314469198462554296070197029048955639604987777976693703479875468572303620791758193784747542940557878061206904551247106752098304689924107502169752103094621319787451159828425114855243306425136689532312542172724368332027081412079076437212934994958577045410725161611127822310605240526404414555440481309877436118374055500086339785380856843453634423680127039457385600719737710710089312760535990935840159692614005562164178622294889607620445069943792341343437921049164942653802149287103760053004203415791266594423048226972288443565382220056039660564123085025760017953259073308182827375839932089592142537288473120055856190413915281120306302140916518397659848093256569482199211658963802867928499899727551306632407246063582578959018642022493036503233321688566179482772097566984169812957695138153198391435272121120636129742161698268715659402882783206756805470402521272155542168508348777885542665574950852457811768015660119781855594162081455474234711415579614904582547637108871710304171774787533292561254577353137834780877658315733212570554765452147255339949542034010843609356312935917943824200102748899048062233799380590049474881118592489498716495870676757775225368244014279745571765862102092412968501572292723913220235142762900393641975620191296581777706169872814915694954161002790754006452486254288230505708879389100946173159180604166530698231545201566340280856041484792886661055121799328698848631603221974326902184077617869704191868929662033276899820499965660512492407938429709127323762339822243079671262967385075133646868451362029000109782195566365475450415212413753899643625164624236999211025240950760259752490832439835258538327856946831535692408982016791176447367835858717951965268876112979680871884916116780481465316771016903035888348154794289522464089092098087504309172907088227708091936019662840202561950867154635202904554375664672995311903841063727774236896555564248288042711933310286185246972056647438959312362279472705118936687540140739450486430508877937643477771654982482946434236027533292470122401877929696539442267160303009582615056435626401363381455774517331929000305529162083775658649256675753756123469300864738594929909212769253264848712439014858261020872358134371521200490657624008106624786061275059345773643380865368129813258700009512903460073680038981773982316662532516385684206253454345505805501045633972389070455184009915768690424500861800922804810176519878220210647504951679471875861098011214239201089280302321640762182361044340903287019668089824723216428514472205703048475660427611020254563149564691524268948285982816901315602515864827520180649050852039782025572789457132326183486440062007133555407322040501077316309370384988233021378585273753603706539607159507021987859233072178233901380389327340157619741130005630068743892618066736397970518272732582578592101421113936833009006913015698792311125847404813440431171960277681956185108111913315658345432460544932611488585855216373958817490444055810512562788366499480742767650054401272504219521551287912893823411218440166943990286886110915127824335596208372278357341591301194960694159734252281482159964065746602304486963203233128232066258917768952567841581279533442193901260069311443692733935410385394820984129360384019987139744651835400164164657858405784962662681845547413994356026101426831745542505615115586364770449103779712321193490440399827997360466484423650751908694887233937801144650138071458291717475563507527496814042218171750851927821794835008298171121694992550256022830259906991687899516938063983013068822030326683563391201784564097040554932108071521469947666892709407442862512957664525961782334940044270980578798477965052752385863809020826901366221252285494875506715994013662737410439422994243399430615775168166262605664371484846792591713770839449305109095283147673720865465800882583630221197335831876688870097839362705610187760162475355387156555542764188296178152987200872196606032808897315157930809505295491755711231671597961491600406032708545250238224147580821036645867464882125454267620318418868528421300116257881346937816522964041653319785061944996052810633388788375095797385852646157288518005161964715718173988855656817977046900512351744738281611321961512541747812955933847829118902764336157696528742793347302325182154064781500143214723218563962624853230616716073130359718515220874829920080882304809918703461664622943025345483770530250139570987720350476247003578413844853371072036273847508292034564089874586716642500400187251598934741068720313974824983738538727550708987241037694752967582632501824668341348105500304479260044348128715376341852995853365122906482648001083119630897605928697820179818220518623246172631331056177510328044411926323124997354045558152214655388563098266504818412712387604707378163221037065885468961332320115591978931727650955519473306668252093286165680421572373931311154977939192005031826603960700867762076220457869997663420662635686057875271501795463997232564786511177883035017432082649160339174641722516073659611907967661452301867535893424658199353718137543804946135927697535647960689061184128193419048603316126903750076895925639646093408655682210578322770269386927346993951579651838122776942611654349090606612787814862007664033295529134624520049513280298275611500770726644093874184598575421549362992762563966516040947659386790517493021151540009667161005620499180320908200357148416957167111584932029292604483440671125004680374046430568352698289689057835770156918097488100151831202315826078654834999015661808787961339634557762038535842044784207943352339484849504435607373533131835214394543610241936753493406727538215487830478438351401830829247554878794489492138230388267394059658750070535348346315792313383943485596296768278464710365626570464690719858809426508585377817799085670761772471618318028392876702896432144081556711673043063286844588094334742359167716133706290614877105186560476968185420725202078287773097002007089498633798461998102436319541871073823090620799028654738251807445247607781391988923802719554826492419111845574100241807447191451347296374382068873533611153793644022490867722062115993384714149972479155288689690114799113965174756231036487877184863475070771115866275583261688704454781854529274742354449625025928822183461734047115793324627438322017344317447978965143323596166902491826393099439176196553305824326565842263550590279711529170849538745771299645015286842377716025062866652845316539310719872566191085944355192737221797337830125074085585896049517113843011415538999382241460090854269625232905512458094647696918093051156171858599639210169383410854834100911131198373833662143314224407141432442695864013149150789741875847514308211738745904196979374805851788005618047627331370217307150265217195799917848552279152013262028390298871934694111679959275819473038262531960374902260132832939703298731650730948213964703882955199129412658502290860969566466963767502918777575820555825225015626058358596715622228562986017551712282631296097368823900790288460411921036197717598511479538485583395306186655557284457960387365628931635218324346695182512924248559844917219380342879388073775489220311224540455938572225296501929515684293197451353119278662789488920982895425239967323374577309961697811760130341125172989577253941883844351762338936806539253731788868404987485460624571241024487260608786763707669136515030240614278774883173923761933173566786769232924683132087309224457865469386105223371981970402253539929820403394781845578792589833213654646852816203312744489651404035970411832980739925279402123014308807403825768846277441299422278940329233594074514103094604791824320002927412582787367425553583099207270525042648627978768373188615328158628984181073491331766433370207558130751569238805127323491066901127640058831665379311226388600489747185061485358662238638390285420048399724616018395802639922746276099069617506844394381158973017294501291175931700406886259629148940664722242505479684346446663306034388421893385653810396894154812254726016962785759729073821172742826908852985234599858403921960256648583953233800550881462351714793471912266434427092404851482499949117351970034976602562464492163296877250713630138084807819081445824500678309637640825569348688245462745146649428271169630434343125776035600329173960130141383748458491947470580854510561175641118627924141967154843889166286374915982587810192381476081526285839612407666827369821340565827724973500892667124850634709515161390747847795064063753333416334431479826358740965249942231064639304353040885279996975416704205218680430702246379048286424308466021916018865635753703042722235981582736955578387673866995041177198023800204682646121321404256776353793514965333589216210880565948035665414341091542940654583781975217799979792582248065735576610910817785054745005764287399944328779196324538389281523989503387271714881933707013062234129203326124822755412797295475646494430272449913842679153037721067524754864310185428212530455098385615459514594533031516497068542075393246258711152990874334267504573653773809264784446250701920476893721883933293035675108203081370652223111858565890057165980211617574202054654782719593835352437402584962230468610799307381000340418858096949735988690379574607827472786266733128577516632045389373977348559501967932093598419578303091773841436415347967735494760289404237984192435299143950678290009528105357598241604683367793078550186852874430736514197065976815866145457510126986134302654352650478786716923219487261642440229810355070421199179076418274823359274472741143416256553031224114443818871503076493695987058772531068484529245061905793998906061804126135207743333395657108407277044204939129896528293227888541873271129714264514711429036165553504847024854746331794192184584986907152460624198097811874040292132236598684422986005181120925112849377574498051107732773110818492587232120069654775223845000166950122046531567158180245013874784959628927621051969325260410269073583190528401546406553239556519366291222886652352973806473758217532696828962892678168688053612327198667364705751112131311047348000086543017409542839452826194272487373514068007107822810300423964441305507053805198426814457304565769677565737773713909066083618325412373185028193820204676450788761990014909884657822421922997413922474614579003100778649144158684486206479466179168681751613715010936621930335877837176279397364683556480350449323586174767372446009922863213710688011712691418179191937703905385569072863117732024546432109206823731390017108250718746462450280046919530376391604976713420549218967635248503613171050543172503636071110142333955760587906780383146341654966100434114705158706052985027015041938368939726293885479906315595424299453954232346810219253602721525980392068126061849955303540299844016879627302435936409242836458173857816054101698956624736873602774947084492316857042915162657570623906408146345467292125584984673238195366795084980951167651299958759224830513041257928691920174181729505893117113179745312223522151158215306509484268105159277583980599437446409286834904084352708445043264340975336548563425835370414166052028131475871387883552241667359147557742336659369241175145697266441139838523655379807562384063390009361752791778800200164851512049988724100469569448965870638499646626080669498425657890092583974280102547861508807903840650773168819217534142949185757800310696007449030886015421798155297174333992317693756601570877444041823729504443166103671649809528558841169651442114004029043562995440775972006824545687919739122166840126146734035442617052895980448045269896867143385974506776324166085510994859107648750880624488683291984650987216055874820776793781754514536145974392100518894514297401824175547750427839564521092348687146654926000940613760444066854841604696873185518276603307928181183226974843060846224602042554251920202444547597181321532505505876156633574627003109797821607180333880812349018514069214279601922511568307823448379628539472721310762586072877322190435279720551137253331512278229583550593869123650593876574619457787211721694204767084104575439024387580226263130798164058903989681053567006374770848540904661274326884488878185844540009400754828549059357661513790014053714106729928213825893444741678706323837004947247873335562046754434795694700542952404310636911699748718763086811937322377347537451345517047188956757684148579294840295846783503761930398220858707909433717054389525248776124618862661491410638211754892728452819688628551363847996869479817312389205516589049965101168680998736336346895560478172679933143208892368357326548756263568185253639722245774063329934295979680695341592341735432570101151035310467530715509298203836186539017192403488888172677253314909895897254347815416159932528604620613385157336369943507511352056115829233311824465319656678329904591725305265660110160713422916020802895933156522668713163235009278923219704127725420256998989737856743395775838525077611700050596289498028540285539649700860325095183714935734930313460887719932760660241273001118914210494585857502097836768583252075015369910471917305965997396123050621907440189549687166695112727116608352380644948837524248510571860543284385087537054486466937893381297877242905254889157729713549613819940859919729103835372368928439130141634010025955541198682932863974752286755699619564373341382755937368593223466350458749043658418274150350607173212672671273747810864679660256291035670124412133576962818048445611812097432868168677821053225413046279853011607187626640899011087069648987656376956719102400826452670325158454231540453722897395249554069656287370782472537361704998148173017717591947658168929017787698369895587256350878880000859225724885695493687769671339742129893327756132524627511450374505825469057085881133406362376423539968602570518808631348282007919280385134787675319720627137849628566334247812122463546330861279155934275041152278519060110573853897521478211833248856791727176631340068752242296731614392529988219968450765181315979000382556181400776270901485137594591123719148669845109650884086590763237376302781814174401952898453257564282434245579615378197835876717507326306530461158174494461903156503098985438954849137735510098648767092811238038985456209410185420896757160234556332362556628495985706586715546445428874342357831164493700880671273236463450205855062052921049322907391842650785863308370769650326912940566096236958730018213155216847771875571502133548534851735785123186941552144004443929394755466401158299890134730781246200343310034232917990030452349660251244390404286499337073179656321833316053730385896425392418263981744711026599330255477351689653648960110263219989324560140232902151588798739385764740080185035519023834752054077123335994561446436118271946567366048531053558388304681910310298674209572699146734236802125559336346749885006165879506010036539498261919781499206307948054022177369512237409094588917993763334932867395610238439450858232932792390455551572936245960824793898900503573011252241835956212482730609923119222740151213125748603417873904062148629982174374454500039484361462260082694402970562200222681428820682947998226282426471083410107960100899726839415016448122868485268612474470692030288998390908544219397426975399365343878729662133044254869263033774505522611753764268272981498645560714683188294836740790570136250448243703612346003499437420070732703765342926035658064471961770937430107488252289588325935381907078654466526939010526519548405337244016781629745198205001527322555092755759108710841117563971931490007755263391149380506256281216797959948004314276416590403211332163109498929522316533467024761493941066803065739761742178787034245881694383917750449282318532662385496992331856177365349578834796338993111075501493813653919569290495268435705715375246901869429562947710017950912014153500496834645643792690722495483441483729908588192341530062865912034904058156260569205554001946664694860666837513460056072339670618372457672781701799917290325512285654014304705989209887721047793272348715889733405968045335378748519859666632366670046511058936393714439936208711627111887989378432484868133566415182477680415962625918484688669777355027757477511560735160884956442156184223908470581925896085574682480069995007477011835047442929296400342287794593989712164605325300720726080343120183337097969959428391425290423744224967582535167201142899581034635192088896864287585643751296273191219950556537855868659387789979606916490239409631738946507668312432599359920728493057814584018028999807409775265211073546323892824218676537764132022957738503172428056320614704250057821988480316383183453547318093975313611169718327676338602922896084906317000727758211946575499912887431399404122628812699489271623710114148413756639138936078722904927051968691403678341038929581630703983553735381510625778803948160769548785583088361940195037290991946397181179494363506313795645752595071563272523902451406205783527115769660438370350181288638038589976496224602596321651173061451865558335740586225443693403389244433328783101214846189339571512987368484640481432345756204915510480139917443593864197425179012187451605073376379509617651788299115655900332428715846219281551584741743141076610025023642658445166468017566437269974406862226404558499344109122048126873665503986681705370605780064129191624860046811602855141344325250978859173343979259164007117537789044909802614950317109370134414521981609660938233049588791970571962894838751706324886081672024416828950658325799847355181252671584978718569750769114718331756143929537103871607148204179899841918711353350192892590666570876253313857797253392105100378843931390557019467432261826685737273817359256521094626575512909117448302171219831006696443547920551669972619033730167300811987527349412978064166124179774090393655693173333799065793566658773410685848610554989542159322078140294765427313740992401152176010299733801537607002265006254970542930161466914064082389255828563352035752766298399385106489983841538167835335584261964981401678964632686104261281090260150157418558057708829006019461619942711501385791711258454146816179622838392261401778977628437138230602404780695353692265845771833184882193110658643808813770443402208536756199042162651321980262528306753885318487104124730217824198478941585909380250248889517417228750091352582623162287031841918874323055254895235907975636068201474035385837987210596167624919559237778255585185176089183172426538258802664222334758258948748634212305915945367193039895338877152280297386245768733754046991517712117232911891902762530756001514876268778458513802346177046829809303327620682516381100431806651143610651016146491950594061563417289934374747472688207445072853950557783505719661390411947963994782120155698046773881074560679892436675054502059326850048938650796067296521848560995143361930362810866261433205009794507648718878361913610181171121688117156805406035982456283039714026606690469910679210935990323787399496927800696894132343933322820777259911164925303096065069455678068874898965636252520180179025367421629301601054452392379767109167631575540709364424502188979974566368066905229407943850054347225993409715164831929166691871373631215117502733736160712388983506326977507652761790283208324994465878544595673623578115163815149842721569896925946722808071207598717947818344527768136471815049581204265203794505317087485015748273832539803857026837649865880044450091935353372222906847945438669455396146866462027193339965682903615905468111039850104798620024126992955072685180115296325727930183167492954586374828846568507885427307553695414253880840786120443431480074415483262328878086192094599658340151672720800687609979297609032393335401516320086912780345953181221629756501796260655565294958692177562543197953394220548609457985246982211228307207389856689558169245770420270526535414895017447359939994328990650421294316463218475783161119242569219206807130244959609521272987850120831241872207555680772266291913560168583062564775829476951952041205836597727347352924496244367975546524754455401259549991225093349084615378801540400499598851314652439052639960915115729805892755653037889230444597297287038665646791663367868372172302572516201678643514359983164577285428067137795517593594142387497575897229565805885944378219168624618583549076550058324643776114920832605287653150707326140186466123150606845569701767053106822660701592166607974802115298788214402215712252708998510943834006595227451440541268113808865477330010775899309666538399579914426551114936595983861364668690125365100477705100913214337690730116202575009154913916673239262884455790391348671199252662017055210255451356712751113124720147228789006821503019171623312198709345936713313114454786764310308624754235305853935699740582222535276156515099001947169200653944196244628409038339336754627395046274515180176378603064786749301222443472675530815243661783447693903142427712353103720437847527160393977277997948763077524089510491884984388969724055591377040515103407597534675819722473055237374476467401433749553507631750466506698306450476453267546357359620690553688650024987284683523618977768007662958842589278833459558519777391585373314515725296107944386727010035092928855967931584876890507643215507292663551109554710766161838413287678114875057000497027066496505459510259526346203540705272020032631270752841773413114721571153022729317337606697811591203588018989362721383042447466691645868417943015711493523272536140311766114321190460721940938304418770821106157921207760708756967968781724640412203894440361957342713779356026084447660889562306222134339925128836769843081355474496825694406308730088226820345444198366220452021483966926151783162471431688982443668091168764192083250640566917468191953061388077050600272426285068254451982039282550475176506013653945140389671986491589107926490660527929300649714107444203750392209523522210021889546126630229722699324322127498218311569792791242503930433320062035746556263847223176903191265007200648818431963673853762477212354227003570392671633824188462719265691313555748931655054136470520358284069224380049432626836026591409616296626984266331432849540168049358076807944933649902867598874894468102734148322376568935805212040584473140169532734708534685341766554348864675706412478542440019928351182771221678185538168622228742141102031791791871948951220936765444686423030518932581583098347749636559865646219036559105656823687017232804832299747722613792304834710354273968458194682128625226472567019832603035288074297313830791250501881705046207298653260224169468154528008526186230034400581972381203990079270620485283910111881715864712377793468697251325426403737802437042836693542051756831524393631029103289517796916562021849430756282698589728329769917750824198040611314515349355512875814517448335984033201979765366209528670120300000779453640215256655092103892762097014264002620150257938135866921101798999291737369655846889057119739558965747858439667870985944986776022799522267106456518665953395723317504495041969118694206950864643125511380376680562726203042145046135954911305759889253851036340029244549027445374355776354409693664178361904450055052932591781333192882851825267886811527603338843066133684376718627352728689159531380415331893103117072789381566156501184937120421853037564876482712735948157894807986095184046613334510968152546168175488378874837540260201894551595288156793755922222568208576401978632129792270183945152331611073246583096528922832801191309694154654242145836197326185310655887474312647971334713870895431139399303249738232976767288909310196001564465909356293909465823568497730636343183009797917421134038283720789504091240570456008684770391728664704456533409003860723948885690937239230242359390014347614333340470426954211925650321904216562641924915215248309463082762180851087550777608935156241501082897835270780443156199850122400845840596916912649312292937617567718706786432255014232238273612592229884936698151709678840749226663009492825793222346175908637697359215001108153130360381773730235226434986532234304330981907566549030120740599286651168806047693242475167693035035091158146266112693550628681781065572534917637716047042234850205332100862191862908532010011625516693188578862917558861760222471770685660755809774720053259347203219413734991620691054662195599327840216478804779991099575547073368298045847339697052773326031110525577789145927511883965742024093880279389039105943099379979758088624830191453545284728791427970314510484977668714926649317893602263374633490616686967216260056112642645832045994369576862598892977168880259609901416140223003842176818343302201252037853053631664270340241403356585025428232971288473690013994725259980598254755493817082412225115704501430185256425428110489037720546662512289164548710057937417819237111587771643602677484196272047793267707387584140897242710450661270547921574912752509472001162987536060563453007283791728425652270563745598035569084655511975134359383670651940434585921164499583073304568597232105346796707212195790857363895093595716922323721245479605326245155722742191526248557054360244354795614697224756056188518185141033205524648214502107277149719393158427016004959705304374347313900500404573138237553312817588521151213244633466498026518835016137550831118258287051950227823530492207243162852548154592374496367427534978033565255076483533396765461992557986985238617654857395492813306380626098111030982654997816995838331739697035782757141765248563733504231706749479545295851933400917932897992974466255206180946262213701034228173748283160233105687931330102741822493116292395607097416735977192216583101863199261294310392222377034425138226172017378384023266867656781617846379814481087549233761979037158239629630527627799078724593915466613582985398814641878691856035706188258703867486023167734373576026004410871020122445840832258846622900763558638816465767597199922262395926977226651161747444348774457168508151048619757221867252275919579318571581569130636686106755653379732468319616024765130904255603936097752099630392809605933645189934735735630427452290161707397725410055718283673606698810192035608645981344743124906373544628146135780830338681953809185111542233132886490377642585614774317900697762188744213055710256811916594557279203361015568267974963542108521086712413041419063164271642523504640863852669807429799566480800501777097332803617231658316034673865691105188153755530410941163788792702796268780524473659532661631579149019385670777007113086246628637138240529199401288566627817890467926633558011482913890214683076296064630996091967466637316288444441593955936883362379209447165374886438738086785626149449779903003195866538900273754764781854463895983584727783476497160709150428476211750561317654213451264985724631456869474860165060397216360363367712086026722153472760553276121595731619998169246489320186937149640217192622339047171857539570057712654116272279220041518227531119325652908414240242143974147999100366068002167970884171948764783249437380744525894603916809232691016985943085601029355549939582346095189455207144422027922888393885221353434861302234101777830114363117946391630479543957126063126535557101394419585497754884976963385962859960387625141610753337394677427799252413941396120937546600329230096784528384741927595996328225371589053111960301726662683293910493603546930101145871192224893131984313832598228735461925542296367090705737848487592812785749914269661737133944603303916897467477256786636913364104889929483459870475385805887651781895818655009398557899041411037052338835248883211575349499762764349618990427431231526855627797649710943824203174387316168242903939143406399542345122039064540680841445241650921982409825936307616950407499577496143956320198169722477501364272674484795561649954917855531475826327513623010004182565430571978234820176362947891735390076090477015357737505926903067324932282039322103643734046970107191177017243121561057110622516669277521170152043086475544515142825475341311409479983284340330493149053261848836734745151594587796367553175881647642742798867949486500859344759876067483996789873839261928942576211090808097303588166089961359805463772185435073750747546091330761582432001505294532428576303191437440448981738166375638877271498836580689948346654935171292650143210317128561632102759233115515003535846277532696427784584094739098133383979739152017482178429451832662969184933012643191097363200503189424418586755429706389048293086425984049184504764828054565155527171742000566196580234639933149774962929347451830769337201312729940430002777022100031368988811494054026006852010011948283382122184859231826892505899864336893985748406340532292937738176703578644478163554916420579607473169114344444525945064670463636462916856397990316056045275839974031733263877996297699732302607694410845936443809403884210281291944252999419955334176429659052188113408144461680062806201798622268846458726962017551782062881402855390545457921652413819146246723158429775273270454504029517645415902095417668232845756803856718530686717174228378760343343464816137169460712432888343141640013479013200671725460898563467036008576505007584048912908632290483482371174618406954364130093513533630149934434145135825212677489388172030830255731489315088842064987990516466860790056165242658810775318822656984958947512012414654980324212781280299397130929020072918221925515146048306301995338019011166331848174950565470971951344336853129819888136564711080453082563960139683014648255609165731685951980869817539696681922963628926853042688004132374816220483664308939211827716772778530438657373020942441992885994785899628020992846502929471116000926736481058054950175775131611072962949782070018354087055171759987626961773534331171492804452585055283452782965303567778042281298732592255872832839786332449250767021043761496170240134357555600134617669912846299600678004001351189486371623077000462245159076480900352661738559389733376258478270283345446523074244539706500950144679959384449676554469953164837566207506149432712413347392269280173235084884935376516773802793527554718696930553449770699234926768770891579642104072778800737127016397741464590316498380003158613480409498132032202026265830712947905532283021280148872052063808304391350531077951837464174901009029146582905630361103301132864035566716772132479653093013771501524622011940496579328353262339346862118991667584783542458845476055724440198553721809752832423020688319132052428623678219701733037279664115649274269804655194105562437289451537184304180767594709849651405992586317649241480810135286855582172371032515894262765835420917532841984660261588307983976248751340597475662033114005290676779609509337394793400057765420423998798810857453633189380146666306283692920432663989447225720696430769346662240157454582253297455842488433640293028283175852072196039165134338456907974829285287063030219173612848765867763919871239340144080957371294991552199366397556281376685346552027546667756535499069178182840731426843063016235725051148396872507889616999228437018708321531499977183266690535249348360708764787316272045096085406547188272531502883034723090313401986456408636610637822250859323660749235150632928965446131095861433404584012770094784671137539129311019322346990432298885974669161795451220295680491259056894440896719768522848658746664758089238594044347228442846293606182265018992502500186678956925318980764064920653929107044008412277284154385485380459238335447369947759003341792741837426436291026060104397823483058467641894686845579078686611082637382654717211793417739320702112649241442897551890659876868466062013546522664855269413902369972877417369852120079811206933407928678851506211937100341231258716352400144637343300992029020331196073940835385701869445879184388393146342353263412917353916900205931088023438100205891886432243014869568558408636112783600470166819221706158307725949395184648762524813166054962638588556469118021195009829900067366485843269011105294522075021393184007701420429323322871745321664312763846997801154998817975174176949835248503558444213277927099969001743485594756567072149507850582310674604407269819390066477929636496331607644382892426044948490391321006399712313950506596172097790381269643760010680700985280025976879733236472485188893998797189185457073704781112014328478903103386832449258814674035700070139595312618158486255845226285654916468128961323268854856546380969675607619114764127673726944143306807667882609849144827013910766829062556937442614562545268130551442130927257661346519653741437272581120857346493743397714362472257500253873257808859467951378006430964921954651174478761273434954507183603352696827759379821102871442727271146694009064743281364446117655167106625104562767430088709988235144754521421637155105210170780824002380974263651313374144910275445934813037385607987974706976503304899047148894042239520515890139366004469201332570655874787890020770229238146898756838954354385213825155584007347011061961663983643246853962239972227063569725353722591635885375306337883682289053497297326523696349639644108854617294115724950390783418799750388544019322839823214529535235506022346475951049456658113316490637941051987381055976633354267151054355914341787574294829805221641666184769732806229165875138047236664049366126089340586941812298638030789991561349506637882426646102805863710819973211272912148652083651265658198300416875759488582558689301773288362346865071108097329655751039199448938711280974243879703944415253038149920003900190265462294754573156004293899534805597782825006874798018598686849402264919372287168406043853408683608688957016230472960824449427000153565790639963332603220478489296835770916788309627361990285756706393628635877992832403895898799061982666951481181967387833761019622251915298103636162482660895584826715158244050476717432509927334499578813811014592498220872040296235508769258177391467358072454444382087459983330364557987439845139201703489959223895923782229498130685590792993754270344457152397200296715998193410608201487464562651172761889484976757542580506972468878783079404787024897687861572647617177314367998867408263470023925469234750357834942890482272022866798649837428502828783573831898368303510728599327875317140666764073613871587719253872037444460959669356659551949282746914428964088067700559218865062884745674103403736997636179850310243283473834480096454259396125040587816494298830909233310960848992507796164393803476938650604198212208415455921513418649172584858160020766524044215638189054602695290244781312458534734836418787471605994977487788363376499226796196335461670309004001353177883202238263741790377436232408777438002404539734168778549902368290892381457538187591255452758425796908178660936224891615334774206514676770693296948368116340557345444271075551784416472519376319068630078185512059555172744033565244452210380550401516143478578079321776614175918704178478390593058538667844243834554208041302114253610023674123887374174738571416653409175074804604349977984690050146000013955068478658484605498344609807321999565546687493222860166441666641732783088319044654923620226520161078606953123312484755354014390158045412138433828968568417037621481565888338445351635435710095664327050258645849760504132898825168967775582001824181438789855065097811043148190013358632097005461502368310446875288321721981665666182649386869828903958401522850580089976593638871827642268670679865878079847020511136919954673435011906157347428843755384131740585719047596035981830299338501546027464103676801043535058240494590782878495164571906260283805383333746673022561313541392580333335001253200806239885569596975916125146588921242708662180718357905892125435875482162226256992147943533243265371651157419501704396840155358397917336513892642730956228317525849378318204792554455102572190169545289856879205036066615708351512920299350726777242527383030856438921936920638209051571551581465603252490463441758998561139704431399375593431234726504896779878069019686883545043292912785356864362192476754746696851007937899570668432647007506038713820081027375233236460537433242061310960034050242162513762787112779083326118894916355136889243949283074382747217472438571351046170062410285860360445492559491424692642908833412485586656465027878162806660215626010479541861189777286628006611518734181513157330666649849078236984947482578357725257364195817642325898527380902454186855482176698860192425249295932614300447572191611480383827757794443721404926584510536359830585425462695202709792333123835664464398688573977656384276474784188603159511536608647797226694263202114336659841309402293551680066737667250128047330696196460711744537199079940383436595272609750242137138935061331908873616957592888182477297649004779474896367626038157305868333490796748039794156811872420108883972602895213149979782650845228368547554418042347791099396588577091889399990355362539402735767299595020120340693734907944934074718459458762186005324462829395143306596492255363341995896451222349116393923144661785248464877910124832871646237851486477736122427611038950443753877896591446141047931146047575609474351008523362991867722065183954394356453805639911879263941940321605224946676664020626715859432788994445691033463055142025364818294039922574901402590598191278329741183145111488400505181785286162663479317379766960787993214451605674111788792289338719419127942710549403858344981548113551717316494167846562074929115889571810974298849963821147603585083108123995502414420849613860354525213686016976495397049806717438730707881661187701200708590283860918185732085312488144831132020492251093588783747760876078373906006786945325619689352978625436422844210715095805927565062608089807199315238527162779949511588764242376126916846763623141921239139195803305072747140581366357173823128749660078815078575492882656727307439913477456985504329411504708750022867045782765959234936994374818540872714674459795974829084822931296921536689985753348271047306471743526507007316369447690344842578811986800743971334947934641137045309354215138480837767715964776692573815604145475100764433250736270306128986012114568352500189438957222967132116718791731012632430083844391831830043114939188789394870346607098714652074126760613454597158011936914282757764971569192239570076967544152602203985001849443770802358937784163063588447986618420714185261112710039934338984172778581995070444903112980027396942709561164029637576205413694726915998030145681953159763082563477249849753176668667674720346448007754022033117937336961403065390207304064968711202753801299685199749025740627845989845353628257604047794714402814148136760474339141922077601702603595043500741097582677382303121374983994350421479987911339506343227648673206171476569891949916596375960741276162184761998359668229803948027264004822580968213527792061492017625372337085331917952739365688509515764278253928993660056855720875016712882224941113203178248123993609008815471297042188844723907362999999610102153271927302409550350107279389225840767583197645385521698192386029341801194406263643762440547984771934237948809729879500173255410048853376448006814501698983191528506493824372136126360798590753524698414939451390686242363670695181172633260851826817526996847292918406387132111238491752670925321703328938348319811305422315295248198689335062161513202736359509368885088378064247743256108797288131645916883260895058887555316670877550355882365889150685983438111381198395250287262282203686765716526783140496495525290620482347976172791542359837078988629647806264204408086544194324973578889228772629606770101096397773313920018771451113582290685749418637839467355632395630987099244593577844875556657595054138090756343943751319830886488184396195889045673574513075556473457730915229799802698150545220462583102303288642872412923654557893107646950499753865511882638606627777841534126284428960398153537635470400198278205350827599393017428437711351901992758121672214690772028186201155008777409437385664792198694326190690652965710257326371727367394405688480769647609777386504707175148934471404300023818104584471717986078295436158582679768574644407921552134514085532864693473135928424374750884243451546561746715157790081217400386146538279864317183888988921137133595131655004816999285329504173305787078273382318906579149991251526204818879865050803285326946865350701796557900506510688868354961481357697742866555241055559571560299340047174568636181940675765910582879376534713901991791506859215025490326327990163361101863394049843485392008136605832566977020433634960001910846874937893318362777510275839843243202203282991301663657441822707814642520774823218689054398268919698874173429448006157989681190305935747176665230137222291369661753342120686063521766146649058383371730120831163727419498423873022240603938741379895067393015722707296063361692541214208429407948978484571149604489446508008055190768555114241595035039516593329539401825090243057346029350553755033836434721844092492302917382863693843812421229201564286301353372989502973725410974161019177840719974749699301882878099623917689074340815549203828287091940517602365942450482300058502986120308165743560321097769640703922091649436028312174322632527631089940250329681562993064998301548201053454371557902957674804506586513475693946201344513633719113661898411189515347375955781415318370782154755698584083104843066684592454986480435803069373284166628395753612709939745834707402550833568023478233867423081855906376752437030941110125796155016810258806446318259652380426889882449393675580262640360111990682753146252169835237404042877519835934094377713119710667324069160138035970035031309946395162252074968970169367303085653553889967795180418074049909068465173905212918008519491139044616208870464215260861383574175767674107403513251087917243402990826499686633635329099370546746781122179622440719874089547379276897362671838663783785789546368079126659675117933008208064904097426357517194589282861572852624383278524775210842020647965365237682875705381747172603322224446827762787347505841180564025522773631240310166493000413155876797059428318183184054826460060118313453725139065294409469815726408529640979559176876460837749642063040391373106479819577315759510100880790496354805974392157659622228679305460224352248599946013856420393782641087193409177721607560254089721092419499374451002922173230500084107861418756783667631406507009921677011870822834175466852385141585281970074675243187115821605116001221406156458389288872962420033923495618510294469107552995082774322007491421335613404519649591670408805635777736589616925595547600660421565148468540180584849125614424247745056727978119111515151266070786660039068071974819257750704226272262425915671944209694743934416993726634445383842761492086778005207938179008290323692774814088907041511380611946671057043693677970707129058732369489778335685892648918036830564255410453588905618309759253373209549124007841186224825202303010862444782140872808693692607641431079393797261112344679872557675183021937073156640863765095670684004021329396882741876656831938643828446779051383967224989304122053319094365344633570630849106479674459697482845381742333605778850154408606709281229500194810467467939566240216081680199395839397756898420698580224900838278333345759350337687467926946062917782879114113429923985365192264197666500693472765662925542896772442913766766242141986350262940115184860654001652881468116080734864178560147377445736848629669949749605290978466699706403974455092839473809908529123371430967579770489125183857125975074765843774387282094662750798431233476623591277220713915908149880140335075737141357933156753468592459709467395360964989111150031310772489116040517386853005542831399535198827724813400205652558191893560607748698750661741396675354655019583014365976233991660825955811415788073604893532123234698347855570767561759363510211867204785995297399663664449447206521715002379863868702205666670035649196100500406216482284207105224843992312145518565728017956763243438585930076914696107876034827745316296365046796347832691557579941534254085675606653428894349495001268402413552292625542604789926542276598476823322834694566007038448270616236737335301090680537921824690394326315847631059150035869269373093092864561753583004791692221692656206612041124489396368926364650008803633328015447567772759279356200169203851541542825073296706325098428059430749304440107633583289946649463733094280422313772036946126316469032098386547273938436235484396663398069589547522626464305633317693273315183797488521970230040882196431290908818342493876366416152360736270691260517137643187416140676925153285142071013660494675026655988850912616486963190661828908739893667258895439073179745092254364024961531538481441993097911097905357649549409671344839981100523543395133730788597034426214012767638566068019228374913977101370064135951273943817001911759340012613421124428396523270317013884446151368112602559619434272809924413383288924429705852197487499650309389976279755756502068726228232637064833716998994534396768055179310579645724888503200483878596471994803305190004133420792486465466457614850558862162974986076693662896965670346242492651261261026577338787142918811812543115837932084927200024056755272992090422914386664203930242942696678049686185356127072789350173956609730967909700708019245979158437873366196939394913457199417146758254052952049918631234603946492704956571841784081824193972797096592443019934757813942552480129164548541469898275321319147765772578731912992853062716740875367034676682515111913926856779781937062105267453544707700033084214986131589981689463264305695623339169360664958699985446393541940593654063319609105537608400745204780972731971099256651142818904515786931185382383120881410269091282307245196147426389860087091976258482724309885000252358934133951176844026231722062344691597869754574354244632156224148942716278755631408707109472116711174591561330833229318929352666516431025297686717923353423608430118809051543732964326357723459542577890656895221012237470646498202992422180138007849472935687575914022125543559391769141040736085454402326402259901746819786872919787414960730495988632388828558190897408582547912396100873782065746360140197500718989897512418836398674563900431071008607336198250852834031072528112366537554963312759754637970161384744882895922010793934646438730860199202453640613497450401325937377774239629809573785384722555092403717687886459882531202497095038667781042130100310986349090538415072926081064613022082850666533526321163342819769032166929740512605133628470051560669292739873906377852376159022515467891376892915007041876981148146893364845233481893903418903295718505292543617804977213941383584355916364864688247160712197508307262117474738519963328543473154507765002989448433169343576409721841016123514174672966915992995368187103669081352070706666547748184426175156501166719471613162981467745607297547486944487066186046883017860838043475305571028421434223324268465752769975086375177548735984941987536014051760221254523696716965404272080272621779454625887425001504050979426626536773986352004988022695103660728774906607683965029740770338165961427175934649863258535727859329100902867915025111610598186355860584389657702295783409117365749284930983755215927690307692411271312583484061523449786836489197355076060450744314106268858328375467864884879473222888309950792202733211871884856134604211506551208157754160770101752275034937521722321860759617202583639465053655583380723507764848279820060640969056917276366031119399010801688540435084612023587940088037600955387864122124181122183695578783581881177806022305339777277311317006599857933696823994504617755296172237976969451516738051673259639371418745184908172275229082633292142599730781177870077833035904730248579011308247674422317793244745564273706314966580127917480746806119589099698656102077497358358366950242795898027396189123564268315604791223876929722451271731456382050957561214123610996532839501472472350561156730154673902170247773359576080893842738214791203937970776655797810741910272927822683689635432989316678496874706668514586490312126434480687872421953853165869493036338309686859740938887616909206690149294730575597550225670019573820895132366499310807736940878670642950443118556862727852935322873756120738814702199027881654797490910203979267952859763939902430865927889372145629586200199613751149900273020516096228440866531529009479506048862405170354173152483025386194366793374051696637404852215649125665539749296063350195802088596914453296480646309329839247679274580801050035771154760070579128538144224464843969701211093522918723247243667664700329058084976675195602708267851294417009125288603339731058541469749036545444118356589940571753017734718240983539670971158920851137617847980230149005313116497094487682396861244207851822785332678776368754217768303565061627010667089635522176085828582500200683427143613769957073902716163699396958571298810721707601697559625366213192091471283999940787641897353693848556314931048982221308426643709497570412442103037579764331679515294994407742061872951964906599044623648917351302441404648656648020866600598166393665295053483415373492500691419021860235381802606540444505728677748656408871332085991783606977441608128064724284040847498775644443750771359144861410259762373020762571280413413540900444586914707147986706379929080108197458683256653930359166022673751941650856117747271287615922076100887949325355677785640249839349352101034665999855474663522442208773994803886484810002906588202632626380736487430605852610191766517846788811435943436135872989861683288373172335726218471281973200456114184580826194297284516551379007105267786611554301990843566581123564582068263365257813858674614303800257368267486680485074746253766955170497417232763041070772043415152893745965473158129994502063332384928645631347154993890620141535976636479725053885187683495860742982402437385298882666139601451187030241281707514562973976993331482160554851413839019978496762049519671786524568567779526279050314050442473181403063697105628127049993422326097927356539074810645529918159824602143025116219876456663957026107242922712673366523106346556400856090668817513086746833159245839462071498056894959036339657468306777796810852469776550834736650592948971885819765322941892723909381205242927115673305134979150487675682587718721184660529026544277553946899308813773098517846575408325226723498425548155487902426954607992158185649660731366079612258835060094469964545818211123168475109940935878532769150831232988191056604519006862184013720567353048092258889323119513174758914016850089811868715052376459468309057583140401080736791141517311868416667190884450776745774398179753665831276756062317863075628188154532339659004102271245726721579157718489015342223579352702622128955015371645206195886271146845040173997895457331405130002772471801035923039454209424732026621267420810038078199773922014959549678394201234188579149676605256896795961872004192440625267089447310286611615436737636932216061070321149708572759313017960357934986924354159412115139893694223398026668309378280159508258856814529598226466402390036673045741945547089405065232895697711402595438565501525893892232365222768966989628177762191584449374792693293197790014354083538933253877899957583181203935199474796253687590361396413779595482830252885422654342899201856726606139094427218302443353676995172169883599580771992280679038081554650247377144263168038258675659225569283571521148001794923217889702539502793873278060821548245584646392020999386758917033920333454710913955297179568751069067650822870046545929330840500553329921026242686051986919561224497915611414296142707109598896009536926667420177026183191699973841286048182808330407729365361353731564667911794376932550172566743357326056004236383311391211005091909645805469638340225695290629284502415973840929032722148778268547107058430775609582232445261098578350078185204911944296527705744155935679884546510950436221809156601884708367056502538141476354699809363103405737621658601037069745890494403644564555566478741763944648655510054973047385563351853826870698082882315911634297956293890599663974114875693623563710990852893474332071668265627233097318564170220365420220773800136993993056726786928885283693733355685045794687678662286936165405293651255090833174096686255352317331389773307321447077311059263002949362955225046765234357222946067748258968258083453113508705120216814919384341800246307557532400886548980650774403430659304874416435164173058787113804177454272637079972154486994802564155095809088718182269050889703265840008859954160258973183205709474251542533528027233268223895971867729602462932356060979577319706299414963468020513214228001093568573716049550679594147318874628856556049819221905295399715171463772672084648556918510291524032943477472301527644923905622298596321363239120848767287989753073221781586292936639791788881456485401049996987546136404712777749162802488761958844699660472057903063946929146469857482914598467079012247820320289638137277163493016084541896143183073145952458071623256586724257055057049254946488553530553633260625577751217509828198205569224302367608870210674938140913021946268299089088176992126395571000886484758924799921446692202743269696827344415498100240506776794111246057983710766153296981064760640619706278142191418258904131875666296240199941689106553532703180308465273078689400623716593575032787747467400712616855029116954411320297983231710094311169439307335293714642526071659055887488036570611964178759260243626251989250098017825903948464741243481859036571639400846590003901853171204671891804021254891574634067639292981157990821391476669208841304848229886287028712140935358846573690823201014498574787164979288643444055255271548740710776303218767151287174737517512177246625977585748456090625388694294500675692442324968597343908362665574431233775690142506252888445060970045484707011342519763561940697057933297582288873873554446638508201589200605901682019740427199909784105176304997134593299689794486992177883033392283911509116257891891854716754003723526874317171406049435069750882389389598992422349770591068463341957189823241197411292960971324617495955308815712549436603472296109850624929684191683637353347766566775920886442831640183698231076532758462585280678986781173482010509426468606556187720624347070328783024939299762709783049466774129160525992480328873162039755097488040746473095244297104584615888485926959871126317989457520818041868471700136983666344210306189878755317708790153875809137405918526236147006354075503850541497564194775291241064136860961923528336120228522490644359109778046553905150407292218194871352951415341442963153099648722896977433186724695225410855810390618572925544640084979907540413510916778189455376375217078617653270313689058065362360051955828886179096772028016258102737047697698989225236872701839117592339849325129977916957654348386207382550249089288326996412742989643517148564504019929087685712774738586320193854024799245655289767584961148101146430346046303229000445275824636830095275078876726842619242633351519160537998309640200695482761682187403874178930769557669026127576043474623729741563086081203889544619518550962738670759753613973032104705956618443834216698327031281323906652829565652280379197346081058621314273755734619722711767142488586938319250836524520727471366357964215836403533329576340543287864276083916366798288447067208721567584908566754204192872339800938934459033240130747529595828064002025972664275138402201037771058450547743575323309347402408152067593848974094020419754982927164995070196453435580754335969387584369761939418441858824936594114186469255898635275383252652666723165259869765943156889523875393918143492667115482259528913755502143663742192587802312118991492619077676244357633760928646780558659819614688974656447231228282366463934728295635420651400284905618770451676566614394703239346502374357976843466239289960422445649677946124502915234316631313697414720988667907721097774687203778628443820697208424736982870150687970479752466584054002005137292822530051424216228024351493597134946217457845661978411089074119660730994730667473762768467151284497479126992645698828143808635417351128756597228397137323723644313430065492331898426733483930738692557530769132465663252968213018632472920926204542615097641133776445425057195381364549383687741302681418823162751895729370439134688097675086491710119843136275553276329381789568178630305152996237455202542784263343723262996142189759578153959509867475791629901052635978025251278907358871169314893207706512248820685082784085254961453868812909736836855635102133409811061748151374506724995672976270703445236150389257965071179425321375242997365704309780410087948420943663265551689049930108477455415081363428871674031153445264340553243760846703590119234379301799964112073542487104444905837397232008184887333152748349762403562239233677691123708994688584774337530429766916218501734547354769503506439265930420272186590657933088582492576801588849982597822513582676296332354675404018045089573893632625414523664622028307514000141077552873512055191364908103664000316448996342366409386404520394578443502985953438529113177241715754150535560526762561640500901262227892825124807612470465525300955683814669776598264546960757044960937146107410451602249422882672693617773391197668145525027084428582576074596609418526520378834614089923351725529139636843169998063399043818613591094895573216826108269950195919826815851482834428022461268025197028835207274420875562438209041848691950388028050653055409846525300700278251063646319690918817639208844786046895690377975401725111040104281330054081083650579490185936875589397078733855519963909304016617841630397849721803924794732582239514565960673135015000165228197924537028396288128249034174160905857936793898470261880854882198588524278292024733181390066904512405984896679957482519013536183784948240591349513306688188214642394816930452335251891323903035060152160435385235695755579670167913959932698700120984555514112934696948436864160957758522385421982835692534371619337837454204344930279926849015034250105589640148709713811100018839277360957470951688606831039154724978230524884082955486493651452359070775416951234420753159810561919250846179000322978899729491487124096944466242374677526951313204956304807661769863571635710493519681619752296238275818770079180414766804793334576701878036555376504506986830313809344219887546507817122465177361115518888229534589967990315758450986678645909174734994320925056758066137526806365261810364564054378805817677345545700575750260654046119946574171202613674027274315318851684344780550267941173695900785427375075281688756106191063261858024922439365753865253303930255712259590689091482041581401461631863291152406074769576051960670021316649755581355565293099974320602591140686855793373554386465519525898818605548221264816655474750092534946952605865760573649476998983454464368738767621983286768916997913446430094136667108900623932502532395164623574905351834523872801536306199773333994465312218603132851682353666724297150515673202127341106290238383420640420625959954790901322409974181154235686951640974281474200482459143040096166685534452978627554792222005178747994553379252056257685360552854882282400713057979484733263181051136199511110042568557649563684321844091841317732942499000876813324532713104974324770462751719018897088219268825594870553064328849499942876242880867304161583059574619350845869857864251031729142080054751327904090456494710931870797200131799451971678295983235842370423832423085271117807325922962297379589464034250483380487624397601104812487180317319111922888042799193332067077450234634755796210940945700849348303124110794248350723664497745441746941861422182279271465858678194117096258230198189120476282012794505754412590685217960159244637545431566829152066429349858670822864501802180131826989445652466161505689554132838687793706546070174611841302465595325240573386156881419374300558729931449076269184335569085578972350889142607470089546890226673661098209304358804288104254036944840813831794513867596613866357696241014249607638909588758515894518925079527556521707784888964232706946087613746857952689852487753694729614927689780448143515646904491511033022947682016082252217129140355600259710535272160101607709979127078919407506310973865721632002384858665058936637578452029399682148210725751263908220376433585864908602781103321363913922197233603260810917192204776798007527055946313117960341708239119820325670174897958274234944923255184686785411505768622130256676200307819161056035440038956957431176129104564648882439341328676932708581540308128043285467701311537576488883671104754321870233868725271712337662270767516483956109494599707004526997704926627941933606810660544428779314489982341858449179805873831692284000565051114707141255700045592643952577382296264925918391878615754354314035239129729460794753682882399415954107639739839938523506772590052601800066662093541503995224605068603925821514885593284432139978901169262437469713913324513601904012084833701411991912782642954341766474299965282033434689480749133626410562666271809350926507301356295848103881495160651203017345779078238937830406064512916650525709315577278983328110591702039035844903735293181439162970366565714332673205794408399976112161878202915260058018766702210551177085126076172749203243793426194192373149703093952648178468536939152468240434051672771355937388930968793128407286747238287149719672696247684263580628881790503502906816465005866295911021671809078301734407064214996749051271447755376676092467002045882460078745978897685325059684718232776289248388382233929257975728537835733493720857102846046087344189260072982362212005216710763253404505586523376417259264108522740112237185992059308061868772075944784349735803404797108468726576225815751619132598816301271010248679615065226068582713689369539533149901154035199172254327055063221747337078959461394363071535060573326904802141852184169712646113939824902223980351927997584974656770213211879492759775526391747345475518772124953162056276182401307671627009300771282860236019171657085946540259474043267158386583244608548642783610781875435761727132751861748106859358807106630080276001836445020087522712771196748470573301291132166993981897142488640210995507659336622761527585647143037195260661439816033721036655899054847925598982433444161798597628987880725854239801996990277769131105167177522591540917364413492231091162779572690295376675623095031203957660370368319995332858915311803742595314838983032398329583101170459566112493633514830074755258017604917342805693876955546838905567159313164150255184131759823404661855282145289648587802715744383065575891029767432841574442626038393227379538869596934799230941717653027585861615222791031581012550245293941648513172298207901219024732869443478496489958748222968626912198260628137192314590855790429752428957859126524610639461372064909417796512598140836938930528613387888375368892469358002547275703244670304982021156125598908975745436719458225422344082420062966276223045613596553587701627058697905206647470320092148848866461103190388991378749934204288276629797709779051571241365048921972670039744856269566231453031867762186516815114124257848946226822363212416709105017460183022867215419528910526729322293042985094861172929352561574901218147896329281548255737737258071680594021258834593598633598081710665197492451261392298455480321103771825663371074367170817163820887264919074875647367161018106588367936913054706725746710896058506155512972704996836508556258844496643318033720843485094454022817598608880792232133476338761472063444561852519229763997934691472316988778739454047303559901081665926755315992063884804343963653012105023633138843903259438276578683102098428516419349572132575855999947090149474915010865724322027730747528603782116559463288761229772420042909148648861266819164927696897220018056567111015163071486283521248980564684129100351485963383813478877024831057809385289916674264965863070760082430690407085318962523575908639345847941886021132555668496053340261525619501889425619534433749412646789323297291248059951332700033804271916970896768948854978068372744553448171894972129535436428267919322644798958422310012805889767883162828085916066002289554633378708508848380934836897486368741630264884809243585663115830655669656930524744855717413656721849245363081242232605137879140931543641875436586920543707667328814174285207882007221343079164112559239674631290002529907756029474829947936446244018997772572671670249638380429959813745997571704025176673169103639385823748553682860398911489618080234626238352843835178799861525202039058089575591917209719904666959756099963892348581091733690983165567260973375711935961325047339300486004019744397017385205341691009490055580297000974699606262020143836756293673168353955794118662972804267166324212469915580426121379922061506408362275284573505549781271398304013060552352869408769995941399726085629470589005027450265134611646812203891198612938999341630074439166202116571092499445305076117017637187861907783243650667412512610966357133842211129603902507561358944144426015529574723844792777743537088325096734717682519582084697210995292762556512143366965727153863814758326456890736665689611848845906082942766523025485358848701248346738299258340264224154954962924191115709970149752604443769265511517401285926623117659204115355642874811215015432557832379853569907862413908412397031540137784815079780227344803215509268467798925103077870518521891476667553358531795297763137289880424769663971328559823183283860066885877831347739861909842448613372181432202110926665295171166322503326480140542771373982508563843247692267848377588531441626918440968170778481866973556648944585372950516955336882360954528034887693904683473324427599455886716853830127945001014703522097369770272841034376734259310341749020829257043892557607920681523156504155381595390614958754913061884836761536475623837454749318021210908461143480122612808719048118828628493756215775350234604592738082535999492641501889645877439699918239560043436819099940571821693860000537389515870614235598602925889753382952565126174029535803605811106600903565937942139078551099336087107015555283949218589318265361537860891025272370405152855416714583476220296702234051226078400615594300708294770491475043000635987475026509953304078079693078831489846476508324724535276523271522012126164004914971593931232838455518372389001433320686916229932027982136703393577680653824172157572363051413717582134749417872124504072889703893280746323826520849641593442700479089380631583129456860088931684547917417171674865440394435996156828295037267656449530116494020782007691664722436419638132625361249346610962575292867640085311297714545895304678624801775641677999402811702039698192156177151481025985765986471987482657929548848535641862226952365895056958448983168242228669355869961223674835753528421885214767844482610024748446845270920548074315219041158413547383111719724116562055686815451509819168846062427840173067442726052458718904856517574266622698430141042148686991885119125849379720738768778008331573632655598782872710205079833624907278019552243688629382296974914949151017175050304954134884857510725884134200095329022650925063438414620935482393398633678969114166390425682630296942486913929161462143797426813003080599810355524602830961658612065928803969887193857492372150259989917461949242578840285679636283256887226454523033787525487488884331440433359154329059891926282688994171554928362552716615687632595057446719058857777442592028323314110478870777956036435353574443735611956648734721103284721671884994481959638829231545613748041125531490103135153719059071136925070013629696227210467322153754289077860891089314044222818678726688149209788613310411657975613101316848205461934433745676677140238613965408347263573464156640081717640657597540201472997186546722045426937335876715442823217748292518848131930524066206433359271118852073514152029369549810030646602428402355679773637912443289425744018918833449351178162244835276553568093078340667280478080281978454024601536346481025900007695262920031444107718714908350104464187620321979909839617304107358938722567359912345048158900151119839647405182019522452720421653588765428158692764835608292712699793811617133696499988079823437434944774060114041915479944778735343930877270675421010484897607502780779336606812551335772218648991395591968057836631876238261441438247695311280865112579910835986712488376654566990266687745461106647994994868867499869012127820490382328916601697042289903405798981189555960945415489401341037513679989923636191712557716561991678271784043613743239129464263846427565198824018158399803221269022147386302313750030736527565075261493898773692654499743277692806259091233996550612298297459966365145697776860963489657750430510970027829045499013962699172088870084068372117778870857231131672153688365777926379638848947995148971302836709307176083016466180047182129818277807193162371718170664773128118400265111958518182079634549843990663914838026635743912918001634351768093205023458383549394417933155452994240260629399449753397002680610388205864436310470201982758950502227310101972129507115484356402204068668275845849944056621100615663950104456618859489554415805095446257428885020348418170252005495565761739910006434437876032177675653555356531891264298183081928808963136040777157477094347748677132681815769829799509905717553140724109795717519391467648136695428070329929139871244565855389285719915067162957538390023984171270074685885257168482004179695313116414968710701426440258202367462592527560499210688537565313662229052105498218868773438467194500748015395421088270194357275114167535077067642214630140582021351354659930972767356719280234849963239702312118252324538143319509821666592735499762556034849038787899584050141634631517134257246623331984039113803941683945921286719497774109449087473653757863117390951411166616236622675513514458444303103763356579745267339687461546794775813569124350403425862914164823985333053896176469952782703154440923000375523592218683853789337226540410820224304317134996359993644849123317061657792358865890404682516667626697421519846693293591413297717994486518964753277758723701869648090631321492374121383441968830536850614835612985745734801545940432517979459726575961927351419755635306525200863903455797976348083378313461570279720075990426118828677398827385293498623845901438706811739786853293431911849929939745705863728014420132743770064407551803571764613660799866049783293789348704193039090866179473305574302738363235834529767012875614441320174134928158868853649040375771205459518734535534773911335324375104482755010762141709646709161937830367593424354308123608943038914976451808937910090714424023502703618345493465742012747202961818000239484418271744628868129367492686899663945848297889571186067829108064067234830710948333617176199408161732048055834314409099577952570964206663370134184914346986392720317687964468139440949578682135044781819243321106255611197137632651568301724351074798270468144662736527364280189924019837141741445403793755757983159628919608993042262919945816415749836339533329996229564474258616806905796691898449906701706106388784410336974632505728650982510304804397658113950301086368428567248908856624837253585427063425058907069599005256428110961516873218341340389468552347524847829276238745141490749835168916949397853150571007004419211976155675686688117894435476588247595140437783859221346411589826018934728454116771184186863000932976190110986901732176792875891786481942556746562266809344446725997612160250073048167640836590376517250982942332259100767304423652011780134266369417362580443047223310345077059866700331090349681256355179728639236815266897394465665443211585988599660274673823153741284529631347183014727386004103330207817805482103513998169724412771864041023534705713632410485782550277689469147176455587562034822771656340340993120025839504074845804595208052271756227244731535426973709147670896130413532453973347946481287623047193335957541463116682092456855370845432995376535143346838855494111875480424753194911340076535860548297498807176327024920823871314899243336776711070976205222226529870601124607080142578271556418689164982719431838370918541611877101079880114629021992492048329115243038525038554109311010956585280554869585343164245856335284617497014550468130477775472780099431732896727264420721372605208397433097292478586793661402973662536892926980550664078924070150625923640959102872179832825330675660546403685394521084367823584675894213165874849841140467595789614772872800662100728373739259962863638794366004545514859256816419880015424115605129443069752737111773612518713815439081455403630282471654682735325256265133967162864072833245456248789463890926523241424939534044126430937798211047809142797998172541902771126076223981657365762707167838060219701604750756641542738405518110596415595568713053210521041186682659300601177054353521125334384946890327362126693449206597602005420717938130096216303999677776243751253894335487194771410777383420592235141138597775251363933914129801599209083923636148578928888106851801730672612463612532709550083292540536789896757609361019569833858445260812773230579874931407962879088199108401704104019945937413311817343663667508627731953286539364655622821719945887899680865310914963249218182586312941760336425313802995209918675794690830876685694482304076057078188934695447299398371811143531131871572660296222821579099478727446495825754718046551037211651819758298695078245658000964801612665705607444308728938665185837079470991247216092549192103578511427889394940332274452321392712038465458593933508423404023859443553105621359821373698551856934024940428869985690265393191643848468017065173616683810681571515878291756185418141481349802634044169786781622681040479553685935207451281153535772469677756710481486598872063638594154348498318174854011129482518777723079506465569665351476184514588744835061705112455363043963710936871183768072842096018074318414439458601211822131528784221346289814289331221564072968204509283479437472886468020583472001937467994841511988295294906052773444600630287430357114993297231896466163252350502426683261145136011507169352118404102396897881681728011941009763322995218281011901905876740410090654039775149743574499677206806080178975146462719716509482736012764641847172042026087789888293244979060985927801958902194092919355418328352204280948310527717336999154937892956191656010865749407457069696850094988200748472410650747353560986203755567616047928050867387224569432579789780449630788741151880878715534217401520045183695226496064546607555216420487707164440633966345692993716486466954452382071876138147393753703571796029752556811322842052354760816061543603886015502427795315521741852394935952673990420399978413616853421728897853111738775671431442649722813472307002747383650161271631072128472962788367178270985755369814840966121492091779733223753770372194482695505733316042694827836128806850716232311069968330304622361539109064000343545781511854667572418426232223403336540509877878346287937615020116941513145151045280320787983147398946935890202449493203263287474609849040953910437801494210586011352313565884591233675298085649155748318966156290496261368600050839538150640844441851596335932680921538649976493240097647602490467721693333054408995517857319991732193632982067621033842251202051154293532446609200922295993833673613055530247201968449722540754739869786682207086516577444432553526687580368436078499142478183208630006484796021765191326307003940257547664983329317594821231763204489319191538089891575541963796135777219893013580374224019439410397234513778392279193114668333572359482453147211419650103997216150456697560578276499789459757558972150852619252939739946110080101640916728701122207750776236516582628763757933235025378242354067219407496828734829679705238566940604914388523761118308885736729480867953252088622601019179304870548993152133507604537865512564527099574208526321764710546415060282084574437808311381935990684303770833332403052133204755344023442576028025484771637610071119689811040358317798180365067110987157391795486995234915424302005308544311405273975774092159611628623164261552269923693634042092813965800300740501547079608054242146158271085102329569262271614089102428639404432447518841371584958614395922678174294184217867641220029766009547044412420986521225785768436603406476181932772131892511658263834722318210321760689951036543523925805401087631380788165844199903607398969578018464613591305371903668952930828342522696574257179903367706880897555865134640841923298431040491799465463806033552489041092330722954105441554474619098591139885045241807666237140049263375563624226989084967210861903513731020285440114911702719635308669728769868200765478353132658506497157056442729905307762550114748970461003138799028967263558298545097725671488481139216919816319956697652213022442962414845815904447730970840809983123273398338027111582103285875504014847670082294416031908891234796827636978159885272655559356223714669441487883207828913924134987829259036185079051115160157572452148076804861643311223650359758649445586488043446711808595148015046495948912012849254130098730022788162304251911623164771866336795505833275717468015882401345112586139699871664355033744903868822091318628670453743624831049993313196661024396375459453578311749879782611732591581281371398665938823207323339607107487747061447285149565530309066059265194128178639022164321651554065385840002228896394061185004777900040202550787759797754619328185093514948871565740620250027303921992618163056561579567914018754504535418763488940360685416768633288501727350729439511145893604386627164629247288448135808487379919149531509216029687611787456817066296962545315771005798363094411461820174964429780462908046836156682983659586205168684082157203158942261960018536350691298263595917460796130893574428091156947959052012772443466449008000406515309316640723208572744655737180480793734881434016720680300961287947327209239414899715127639453471517412275791465164482999491341822447353791479236202269267021429106769002988386291515552538633770190657424251375165284315664361941315153368133378135082805139668617166451307560166723211863456413690632210721931876479116083327506565268662349285607482644457758998625675907909420527240694003748255679727789999186393406231236099644995054320819288281540964277347414385458613702671620901357989639377165301909499121866610271120178274003402452504717639846089896850989128210652377463210758945082060282892317032278099161175863050170660190047501568287858475547018134909683743296547548934484609430810015057253109691434976007332907403775828340142924388501590957943080889407603963786544160073421888203445094887694102333986660071234272283629141234703662604951159098354585712703974371370243442221938827067545083543211441537417667063867060988633236161564886868448250277924856652062493490295325599710764057531836585111412197117875725161875302475396318552501632051929249722473071433907025613586229771577028228930673456435522365191607486344180034403645813947898858067377818302841011353737287166546776399065633499602999555785140401585781896651586297888251476180970472448948661387262896806625407092777640938042522953090787938569585791303178476141009339018852403132549087967132605687930127365472851838942496485818355022098886819399615240021502161769996826210188484942516762381896553154335679649305449873134116293678960253843089917297270889022433624624187409761701935920127930292869875852554263576059807641066937945864939870322975403489472994749166996727181224397155067515874624118092250200342561449008286185688887030333356073715492523864617152912718252536112069583765048891969535052594369986795095959274924135441272213423488752894668942880125568996212104318965525518069483601998653167120314855261185729585891556397176757763243421162785699158298670925041853960153922076268474782326607117892786576171120620372843827684693756355996028077305534778502911994147364334370117801060230030012093223651882040153047751214340343204425977429628876695097921580111737002264929022193704671644689204630667998105305332849086684796171576152643515502029944099286636216269165830597919324280834035522473011195031799334081738218569409931271425465372959091753584742574772853962311943217280955732720376084757753277966604695498230025710672086774752105141894765670012102400931413972054258175068948080461852391425410748738164299112343605412097980296893440273726581218321721210420623918817392021113170393318655233012728720708540044498843878282165812745526794176270097836536484207500243606271892383294583412776443583078880022039012965689311043992693435646456690831584526803592726212873082954823451412383588746028552910788004460393272140426426218950964310529743602371830540468321061636939934049190196923410278036434076514127541425387167399548752733156471304178692927120399781070390676408682250744875385383560916620600196704589664179891995150319312292958003963516309588414931466194505154067762185002830694201746462597307298360652722495484827022145429455865114618860225523284453817145100109200061830202554805377499321806065528586915094960884040441947471033923476288799848949547126003035887245488328762896515188722444951763845744440107764657649211707093023393216109658004819094322412766062315577156773951164473893838329496471310894751151125600476384458382722187419254214410129858541281826089535782518445074875426069723669910252016046603255064120948135605717159998144773259015111969902105724053096378954557066801059104805604404542378845248197338384218184495673831503306813209752412666247818885202185992192048393437780311626868940047290371466337014793925285767803868904066481802928916961996977685773836445540292964314005129282588478928174546972073159416554644646709724644573415638602180001985202171131892691362795220595623411018967429674600641377079645100577660589007475117363514298597961972159308353873077419623267370255172069734961277846846127829344978006149890932227598056427960714919613213380420344368427978993703540050108968567046438806426120236806647205819655904768736902297712459761740879712791418906623445492884262391064467640272078790377628078551615948130112504116230075077638916495773610889644725041589775846292693140552140206790048771926230802056708641306334278666622180561178380840631514346218294108254966159940012899799450021411823247933897149265016739308425984811489720037836222694778226338123726112370666527749633768859524244389104578152575288007424545908743163287343469381893847107595436837230407832784779026445566707030526661484035522095749217231824732368677893716157540786433597199301358819883577161196938693539671196123256662626603369721173680758588308165871296313985544590843659286751541566589834663967304664636216405948372139195113593300310090832576230723506576330283080622521647145861055462754365288898082191637451422699606177225340050082577708306060730352003136335889525608535971781712606870343716228687095418864102792658765796855097886685229304448575119729265355821906246796230345330101600734753844568236129691122838067907857186632210861930829683292918311863012650303327715652822781403067575350996915951111841725229535210726349778989374595223128599711262506524661595672605927934421542737026413839526100481256423400179320573384647280504657967937772405380587911589959452935817444351583326796638686579314487635256270971674017638637780223457628173326203025499265152816211387048687132468940219507200184408353523407294570402394805766757056922932214621774657082733123901206210449527390915871978936516583581548941042979619432076289466678068780728847567251362306842113754363577431729307328778197818327400649448937517099346271047402178932182503272032471146678623678975015773363657635634129733968954556037909077818762115332593726600512969157472252109218390518613354256830120949592920769735049952866367636903063547168110258456947259093252089188413393076789295921964723680671200357914738802564869657132012274259890164569034366866609914607081731071526572269343537214975586784429593315343058017892855615880952208883352637595234103501671394606001380428457557463516882238521324294087233498927682476512487887102871292164472311360281534578514637938123756915845381413090101253768422190800886055528662163610981783956875635408242684242814439503950526977145523543000618561421775886425310197234119542796533407261439742292182818049137723263544139121921702404586557578863870562180901337669735056831451385009352834113782651914340664132932016546501124501653677240872670072974933084699857961952728414464337502633947080730489737753007857984943090250874849380709848013756352897285693153546110185766789636539788581316477946721757770410294712826277861769616950959162361155681757988939647873426007091024578441890611446127208895583754115929068969686630378571417479681118070190935419593908959903858851294253031782691750335079236025439743535621623562786474238956139630225518384035298210702352832930503183226899839874920107401684647751642376979516371972945597234179427318122379282777207189466326059937341193381916681906786757545741890755373752011302564512126610183078024025277949922925490805662557808930696242357767874970278103309752421055967290166737790019768668554021830407787675357760821409284128694680372795589352573953660563038203829634598644521580970520266265412721645582964663121940872661222725110211163938145622678679951540425356429177571187662514921659507683955423866163538695555222243814819890263116711105878059325912528229361974438928832923960226825378909848025177520618554770699678754567131376895042203549842216903692700404007718726633405128962846540958950938766155579409735690063871291553945711704117899916839733106422239173398152383508329983833659517171687967995166291037697898230189063564155111055737505431487990025748916771426112369393530720232833578048434457521215679596570260568196871664707987215317466546038676339067493927644270167500755744204500153243990848783496277380760281074087648736094672753133752510129049976146578295117979513921387645970406553374532778664316866880672109829238571849982415792774470833496948629153435982395132444077014895755332654398504702079446288584111784959306138739699787526757462848325557177763567018664628742546238612401437989758803323973257535619105223030857223717219625880656696836148006812350418698593433742397073491250696332246754772154348737222421920183372609870218886556212800731719042930604385649703602749025853294615002928398253479699608713183913756846099486153247995911035637389665857780983842703475092324039730208759281732638132066409187723286836952138367447709513693774668949291317627100798260868324539870933851151284270054070850029191908733629815851001752185686244825399546488444884554213932063234218787620051621098561384236652243952673323197843074145877661473805429673050773333772038815223161276192297246177393733757103475371293561419099190300102499121469243558728687843461577674823198619452592610036609359158654706984276685354007663729260780203830385590865756118961827371474380131294880593820607666715362962078829689649339848740554896356189437698189943191780145439819979585550044199221993770903729855072996226832717148386495249577040158548478422962583958453604339127837215419314463335410863100237526729090521732966537810715313052676189398904731135204780736068323815543712046728890416183591326891920425998932539215163737932203256048356004967712162084032957629877593397734044311165794828086241879967950443326821701515649422289998847314124208893536811093402045069543615211000862202320970301501981028718034412666798406482048343175776810767069660680904653619868725482678873612034078975610977358986406270399328434117220366960533273156647999909478868056010888707008906367414774782938404740437647504187810386876736890723943741102684372753730164856062554823557687482025551590359309629512538493484656916838354431268261760612756880986586089295768898293068367256214353964522522806000243118716963872543102263885340446661320344424150545325335201774984461393901956690200947991778948150272296991143644848235336078981350936763274061117240275174413025747507906306185342465082852365218187881283736017079338390447902547456154971370351920767005392757203729716535628348826597700919714418169894008954316507568703385648653799185161313703372791765625811668229641324813873330867563503185110269130505051413277990632129458709849380608362545069446727612983425451809561943546618600018942849901321458061171841347079806741278626916690938557934679098776726315653511196248977592025943943401592464416965041721392735780002404576128861220902736137532865343687889418356414825406764683473874632470911047258947434836721453992358657033148596075860849180972258133838699165467137079720835818951691086231283088305176182899244280902905476897226415808832388714199820079111950616323240192410920208726388056456570133059544786723034518737477427491521024462017159782649402636327297464388579222811505870039633392792710561609993027234144028185391268548935159317640945260391154870256308169563249104869391889411823868498531696046911604116473421115001707784089567680402381866316675381035508821767818871161914554185662153153055485017472776833888971593877497260176811130322491103169376343174788704678442513351775480112315976529579320690683031676343860290773132137041962597361062990486259224804320111720575871353017401143137046198189375737760371806542268125526678955662991452783931156694906621089223486082884226428669574849273629470155157683002387685067901551741443429674925757182955085361030204002024188233596668895023365747370661090422400425087937793382838159318451222762650720474114869350829155509581721862501119417314723235297000565326240757969717965791722272735477481014725672288867160784535825213772030276135983122797831985393210702968042539108093565020635494091463180705205963352963453104184298857824852724061126487940181233118987055619706297558776854019948279216156500928114971132956829127012533781386169105887566548188263250308953709391663033149422010216692358397536861836505711104811002439145109962892733909562270376105170791452963578995611969181753497699434485498146181057757735210918278002015691759493676025614418173021379551973585112031294451662812949858639544017372134864036361590949791046119845912753936695197467702017736433071066033730259050094399842682239622589188766905654473682646363590427027680611702393812545418307029660558613482203670617809852132485666527858677368270644893677326706095661494562536843067418813289329579323212996856086752447800642679828912340453976579392432144775916010415978663323138645611491770997357830513313636790585157588604992181437803494120592592101604465474713878490295096384986639570871212406601785847975425318129878517172805087791737599204027214299018812633534700969844396801265921240071889257235126927636954845425240582065009550784813920416791770741202329594353987084674963557014532082055811396447361372861575370503081556104670124112266667019666043275590858189471509711444057371433032960820310129926704541181640721396767391833388448043952004628279329356172103555454226142115209390319978964739055864301115129780404985379298983958849038982292148802767521184249003185659211102497959535727432833376805537543317544045236149447616400960609554929064120829166862103771234659187052897429341103840822746012083394585280066401779405578254831385251339748454729296545718107610539848726762604476765349386455340611075314575257466382917196128977561612562239750561866013677580152585942310386635906821615044185487680196833184755067525538558537210871714742540029666497801071472414351064145695399130046162817910311531682448009936150576191881244990164300902727189532110517944212717245186102079667352191188232222875213815231176406853677510229438655187014278207044265234764285916552903093854654380236800443475065240930871840221325269505584342168599738953436352804575587405306554708901367217836083133105297629395702611555023042334448315643747114177099495953300998020151737442346948681326662876281927454042566683007860744367397135936523576065100115863658563026082456612292568329740095787411677387105205782650548745336908051308884926919458956149869812697013810885834607929440641315794226184343192059048125851689185803217283054112410371491012907076111604611502362216844726001501327581095863255648519401617365334450493033969499615438122073818561380553906545703421101711195071759047335850966802547146579767509307684812393785824008989752774951691590168711987445323477876561875540436052644242427320546920274901773167110136476616499808465397293052584718620758187560187627880915367858091790770775592175635584530902822315880729026001361011520565373856897393557213230652325641468178468452355337030721265136727819007327129661063013014070056445565979783173654308755109420817757341498600722641646344328845776493646998229617070792843355301815800067935210908633813130617367493079102453203417657120202205077550848751424662072991419990625184367240241619802134223799795868318807128950307085447324651481805432205375051978332477747732997609022793960100242891741944701431775061786517579468393673240691875009032879563609861152176762087292821909069067763335961315276447972251073669946114369413765461437605943271792460912419183058014878267781757679362289061127327003773064471952207124788371439550104065618428121870973390305186762107018506677764913382210691123212000719287129934824227181031459111834623321734384716084472719031598459688183010946192722000680629825846472932568335967043686790315218567966459263520720192643856908765669067730239465355447085094386686109152756787864721688013371255884794171553773248020031644763431481752260582463255317926919845224960543178053122701883778492208064521768935372378847816291526074513465546161914699575555167012911803453200938414287653047105541531474513964359377743435184633047062648347566695296706099305983267603071480045984038625942853901102147693121134250099100506671770433659158536764431654119583673876528880560348235339829741813577972398820698034686248523856999754959504656179506605167018036335833914502663119702948941003190639801837416902339393035058398255270875527401966788079267481317562243810280432947387090764341679394833468609922295683216053680369817965875313608681259397891037215757394116902751448930860446974610268554639073370382304905572559662427692280431019034226032786115142921318425166380243486236883779351984884140791777142675634649378207258395967202306153313167881250647927789331389812452083217991126403454039918462335032326324941098295599075151374550924627150266484649798217424646225250502321685402511844203728782724779909043592588731026276165385854113983289419544315049077642989294236563540685134683335366836312594143688443146377516142627327388661577060969897633833588044787205832888957090483533039946745013812047109284434804774598188979503386251461011568037711609669686404226607438765544264976716811809648794963589970445074958741319830771988574394974903432984382213056031367889656886459630806915310716647429849506667616419932810053550183702324708590030797540090597279786882964435574499553945850441443719782357170185134301560821274526295152131212683837223810965521981744759714794978468246606291076370828657795466354252411015485796238208579820673895451658644161203907970331188550348260834588014934306661705913477556667400750759464952276647254080862971116295127711533974802656384761426416657892491073167402163426017585865705308961607436766841888945079873770173840454303234145980615352363201027016483144010931858599488151534557533205761923243152027677201801110202141590814114075802583476134082283454057970022199985517557565376101960445119461363020209427551258267603906830730236593780926833487866262615528900773914100722564504274307321860750443120042249788441819008177356817056024226065382629925354862422733287977669978539244942489888676502819330590771951422626015761204511624596070242337692823719482040828860702098332275519560843457230476759245859584177967820941490147927140450220072025454139774529649605482499293779023727697799216334361146048953591032063260230397917560930673386334175818066465370232132523160730126506280081566337981270657521213828833550044188270413013118138952653523014411683411792635523350378989923464680454630726020837620347470487998875890589038269711055717405918429363767207442049267570435008411280688752637720661351305760263343926898585640176757349247255268393156791354329871161727523340353407421760349380018677761519185200386944189792628304206985792958224451399593741544318060905531932771085700424049440530096982587329072523812104082558909803615740644215050670201116276835620707990252372382630179108262745510501090564545140800977985765070472983506271632483812373383374786576907119626865506229203615060134513749557369288369456006133643098622167681528184756651603754012860125892972804867787144288486694345790198863604991873755433115146710047259316814361329978086321310857581359543836339190671564761239339399751320604285592963237238714559516338047740614792165995708291483496738146408115625327675177914911557644854413885357548497632364469755814894245466700186554046034395556276539412884571284796709591669260083291100462592401484771119551111168989468245445850032026908656248408675200311913590321956771256737527646498447365407978947755549796307508556571897309537549409242591821584227469541652461436198843321610283198814128296033410946668060721724936863250857451646146824837896988202641736485526218957375669261476893783979326583306020208380207793607061897699795971526329495695215767903080350965655656246483280090753440532267648914270147188786280340992914999606198042539799246777279253681883453176032056734428135318105135442590150815790187036771337341896968398163766622587143052192345255247840592091125046521874131536440065354853277041563533477571577088903907745622106441263361278599097408877340024602226827900215422839927868862108701922107128359662361375362510609524497289519964727472661929396340725564190174794029471959489624971990447992373916141995446571725330654644412367365350893162139302316322569067034284941960429414664988071694550274412618293068459419675669243811775004919440305424547213902782030280356309127910324210362365551992240767253303145297958807046299382251186618256784904649884658573458839134579981973672781564341306838991830982652859729307446572717771534727835879995497756892886795536023599583394358822562554457049512503786323957530408743324073810967007572897827071985831736421463197343938368782700735055313839965974802162444387283573223736183756413450473490170952355804337740772872828466590547501565938563394478802668249181033035025995375386983551095807541468054946984450957069985739138041489360484843561275497890679164393271862722349828377820786532390187583383782660668748818103134656546368908251139668682098608936892902616307211126767719059659776452165763357263076396540919374658002791268884356996100987518698060570475774678227855739992139851657710394351461505440096130752718345957570800863252503704065609951241652052825732000030748459253777103815203115854382552420091836964973581482847681585165433018924938841038355851698935054322150402874421414540902501281326477412011862552663986435735404291865219145871231163824839726220471112262414083774954253364470069007834034347837315413632223798508605045756179579787925821610814859712949126217054686171425667576088492594733626111141201582541431159805537503502290008672062638808578617343030039932431883551366627204734552742276441951804835521898231734572223768611281236763397761306752787615638553219868669272982406923176067488707994500646833799873060049595669960454919570329143657830401356425305573319514298916198392471882370367444558363770979973261673518695087260067042708319437183227286318880009524652360058199526690785929656678556221149704448113037191946491442379844218819744947478210793435849047483267847740022610153577159777316003214905366195901267583096910471921535848753808384011912078106639356851234823100231819495309285974911773137324040693035255409673332369610129965096802021329549207043105396480307762774854462444475246690806439275591184848348941400660295325038502369319369540939433616322829747543619202559419361581392192695593749863122683071121745551446917904848928028767594919774101192704993040097976405153742583614632491304933391521579143988491846101200820870000735305664420895417423730069290839508883635397366065344495211784170992130394763683444233003008534343863562922376416875749888973660761295592115808732009709654944515584557602686104911420146751261989915698326341280567392994415113477724106402953652488020680937785953699635079072414935799249647817442360038216694683990381431738329277068039582064338008845937300387448745411660378131948635929407306344652228511887549817376609298467037958614788223242914176880410905193798170380577766579715623613233978559130884979442783452237808208688754271325932422442303531795183545251314561974906784000748118009612266097681730180727044871506460470036393493372746306952905670397631576724431766807956760117566821098164219409081434786443784401415362121534048736498794276767950684496594703614153534825033039178280492403669378345162915209961982519388388940944015358297559256310248068224287032637126859138272754119768699044133805458531941943855505449158280453074078313129277345572218933140627713820190397468594950193941073110988531306368248272114152434286074894750306782421120557905824164948041432099593115278672415328869740845353019548764376148192389577425904657594037512370112165975596586376548649652131573063786685894235553723013516632762158822010250652298964958007357180740657073109000229892305651260048173362250841881121394852303145656399255198966075341999497756495725283372461042891766771966477624106846022945351034908032959172366851671751697308356401033629910404609874165242495138980366302373850154027721169810099616228950231943151222692148146642106910440471787439445892965857463465580420719058001567190796469054293414243324086844250629950579321635339683264978862919987968228752386324983357501713098569615628503433380005327691021181943547163243156350557646677414321769782748570262589053656358523566220299320534283825382105688973443146219453559866673704085438036656716128485605601634965876423079278473041497138984906548437878985723813607181672201444431378375739015015072981336874031015774829245214394437790345782345894303032481465896424131959051542464647098223973803576888620174669426568022356922632059306506825664398085842535266628398077652319567865282077095305028430514153877239494556287239730762130834789600558633784503957202252098662583332131213403873809173093823163987374857707247610003143271694006455292241727351479543607601573359983558092721900029866926813436234690068955281615363422005292010432740053650411459348505754512108407692520205641639492407055400997784491156288943427258623287996256149901211074983450783118214692611570449509537915849484025478475316075106860649637733083542602127630516093842034612441160317932110104303083597211110485534159952580429985726033773318940950393462331255239668502593394082462102844490167604301630078724594458099087054651277221651075688978913497822461515062169635209855766632079348675442911470875632058971978902750492026746616884204036714264596219324622030529036992117583694894478645824388618878078378364583521268144220337331613541572796288044408156689530862362404301121545489838390640431298878807181536432342139777806308626811076707248229410902425836069338807589587130874682315149914309275284335770952046228235095564342304237190980398932371879266466434827099322955008025695480545678622518097007489756402615224398144872018970654495871405836440924482282959689201961982383846661405879283673714606018936691689262572172384049447846052533450113466531027495305568743732700964484255918605666728114312842750851908346713845836312865301510592262620816505491782564400838050437001730389341556607219694566774938833469235212503154326933484840963401146680465141015232224291046913467010294958051616195897373340060717666774981492031534970435202459971322979395312743871682881949899245463078312334315941767515376612246686182768840690744144062635093162593968511739662915158278095877936735180203935290920561154357570797229397080403991765259138421667614531830402219482444888645886089237519205251504859633311359408453652778610378140658663573080054908182054496035513568709713375860509185507523625008753757998933339685155245414417835830111972610661724414117375778583695583123331811743898617663184381087987185284263595873297971541310716739540897290017496887105056181470416329498715005266040617940247945788835078093364186756062366172568111010025550145076125582711916721189048332989538229353784083298734117290087401501456639577650021764182302815727425607204802676776422362024091040011234515823852243318454754075968310556908333484171342812819397430877318477118448110955577875192824184943937333384874853902744699729563688021833744450285374027416411493622905724445116786490065331644465986777478403290795324846321709721529597488863950315102352860967117303712115850279021501104938821818552470863045764221774498746423089185558575609032245293267302245532936527703225996731192003347930385239990010095767062935764459703783501724453558090013437682670611644840062323981659886478812815451089934271620864872803305632588796856665615878418612005609454070603375149684430730098663228625455344922755024170050368012318984625909563607833892268194978543964138848557816287916307471963121418019048054251695062707713810954913509669179092154809651567930035452329551679196371807387618293089578680438796695891043091730022234119615181594895746210106562421377707950980648114738631275650743587423967204453567104485939993278442672655836198405051908542824226605268132033766820897697401917786944978676126996815262079843148431617301397439112034974149487019410493612736409067435011576374642040927160342294874431535303910727207996833613361092243517270432352263732991426645452837093118936083531090114273174992079413067572442822031871161914418252325061686162765071108288051461920015109054098410324980329450860773191017179052928237970057012609134593721881180752362433189125711966423990055787618388459921589349925608787943012597586050910450732982589077368949551057109404096452514633061950074038715696553883113384726456453329036456134678683919660747021465425911154762878955975215224080800080935608146593773208386946230426663721363071485335778244784415730462890165417437836101938091072644290649420317386625400486576969389503075677782760933598554574537280927088153423729625580144975330796905887044648516981974335801734181868142525542130415388473146172909492499375430960306713567123165451714731637661636457591802927012496877606613011725277078654915540384196799516919637202831744932862525991354967570833029343481553308138458658503135943923244441309776567694933564079314752310640247605623185399002663586483533670979372420770025770578162204234011333814653728112750654803451011495337203879712768968001134994420893831554463700165734547575972595644018045042626115469488914034536818254245386523565508685090074982106006019325313395592882807308490960236968973709633319173840086755552877361142845332677071108817337621593907452759477861649182473175414456006830420170807880982528548651807734686997982271167618489160476097776695948776023043231056574846389501710058520572157217767568047697544513512946213827938190955352476662987961507681579264008418811204218414404647351095812151921826310381352030690399106810635628637309492505556099474409902023724192607967911796767617679394153628050276872265430402018670895583451302524981107975113859274494513582174487191675174887806540105644205144223221423761537833988644044835657774089896931376628082623657840998723836745157834147082725533639016226912732260873270998878994720304447685715271510649932541374109004129733822165712675833479883436386609832612639131259268661206061668188500572816421565964901900563216171066636029436549303759693327624699173192544360144329818015425743057608487676300940633425489977108568915061011593164034513512865248352315486862907180957328061260107942826932573048142865436279499061910924928780818622365426093932242175186194050083165491780454788370848819521037661910871025675808581342720452827250919634809403428688876831133510827351511963235647837371958095754460125801322000060874113552267232727124377782984650530011607064546846770821182471404410897061117354776267854209555646296280327646764029132872611737305106272728327122953746188821017542427644071751079997812859174395631052009621100566577688069021993561228727094307459347139825005276755040791059319714755216571352493879942489323534291932170015304118386370486626771459092266347629410988908101400002997604198947690472686293476663994387199316587502532200234493764935319748415764677864746340525860685666649821077682556905927198125007320293525884805342854348244721269346760908938914219430492490001523554054347246406592702105693218299862057482996247785017156835914319210380357326636320446590751302531884570447596172858137767459845305266968719972194807835358656320630524225978099193095907207845963323370706459865786681401420439966401336013376951619900243197884690820940455550075598011939675275746388468969552106862534994547418424666662816518152419208794820539482974512375562473376269621609593123713810700812742970376442054283236902633454045678970536000511326674366994503839932273581006831429085495200802661386302847227610127160346891986196040199358697648365210322845771897558968572821262641184730091703052755892689842492078881714581743294824020948975966002737099385712439531125975852775291783090465828103219336756159815006589426536272367975251723962919446522204586544034002584441187072165072684625134212121568745362493986199885957239104635104938571271820583166715596619383639935779903492533856712718935462471420100777531396918939770861838726167452737477362883988722315306802661007924698249547323203461409405113799982729083961554739122741364262235494798476529207388876378472345425287694145331040784415012836466729963470093977665641139325035352884337540859864744011126692722689186073816194447707391226675724627252970154438632966087914897710539464970970682610581658942120739238730554165078833784106762069549038680741468116752272867291939339648457457386042948265759100327354077533833766722731255758776939716158666595299889835865566215557275126871518125957985063742142231450246079210797305762102370607366657093286208381785986389095214386162434637000720981816982709374631839214382813381060330626702064915288394001732841475676113771300635703034152148795820809509312767577243920347697496083898920354072843434203753328586351472045816778001849850524233985758139934129615101320111316053891972203402948021495139398181081076007793821446708434742265358658428946391440600012062057272611636505769160701069659999030822448800000661017193770170643608173934115174815472022408949495533257768288887116900355351505282133566666269982324035947223447902013337426043121714745276929573606071402010498803590362703988369402126475538870407209540300763447121061167182221021097872132022674391099051688716277868692790548182193848014739113067308599548488887876535385738165803458406742655870202903383358960333627135870469134869194070712057508588038052852266436558155758770398065877155263741756584190364376812175812103151035033820127117720903370519440403123449621021336684661300428799124153181145404259849416207788742345009140413347944204277994999101775404384771821376818763397984378725813508561535090728874510205191073850644024628692955787923391825320122485267292783056237612445854085764026091380494054384974894460120265215105337843769142194689524834981870160673573807544971842228694686369692033129563628470352535199205335013390332248071254764723499997807030124543971955008874001311680333303523773934532815387768291840162667134753605841653219008566164676718218857048774025670133848326142072728712463384495681026037930088283303694975466132415867566257464661672254018277778573131125841802760364645775108832775436069738607861476510367035716334162994171350586782862378872577644899227239870759942291707496234423591560264890342564691069458555462190696455493919726830863082153785453452287744795626841431312158135252154774875537350031604084457191182210843898203970171411501714431557807475530893821650459849683643323208596399544187185599045094262892500023979747958947975676104862654852262555398582222554542218180799857148664874952316500183522746171880285754426209304263260329096276606128943738343099233530097455200293433341912778788213447661942825539924067528070426676894980893413282226179742990851169480445159363880163807765694685420316396733073111289506821844213365978179028082876534650117928994017608409354140836497890399803596017838738452766086280596184881035866077599039219826810792097314120424079271074630678386265885832504822602018205038793137582508274042234468743289330377122224790552140419634992603622593633741408873591010919116468494248537099135866306184008480630760365148721500882051631660058637134752833783959024504939411505276388283339301433875556020978918052649891838767275467996612423129670879938487696502264746726946085322395463525787082429136571789284536038931704911033338487506287487258529319378095700474013420550091814653288869635524609565070520360129485184652620246797758798262483063676611451959708236934921849276023608320105908019563259154471506929885437199981531378929312024800099273155408988580568100371603565188651059436100223843795045114296634983699935544125598895487087951679775503507627982476650184215701028605282823735852193933874703625595805414157941482789211394381214977931726582916119981265825713088958139283502153300949451175409681085485621293071130739696447197834056985289133288951544267454923183597514623257097475380487328920487245195598418716205039719688237885732394840965322137296464871150636613168508138770806391544659803579394969927199140459121673035811452823933628962381855826102950512187735092404839462509393558585769372737019036080320960057332861783560331012539273003059240638628471402588711555492676809922328713069273794562056703103951522789382585259763687813305249139327688555216800882167270399272116241200309888046251959864126321794707215444436390039761364104421647969305758623317364060260757093385749256858541697148976832550715240491896054922424060309988849207744626360360162298667302151623879583703944942376731439712327848213649004529240681262907900117615757999351195446556503047051797485386687499549907724020144119738054232480796279255257946737519403346511494150067753485960079243469566152878009440439188945815756673857159117644946950191864924671357971908898084381569397676686538448513095582688716557523564940107214290224007322187183755388252865494446210894532908849305867485621781943530377975851700840809967226645024582140904396637833971425589278717237191952991765772369902985649345526738060360820551818062678181216746682886354847830932151605939297986240107471829390016027605322505521297047323185423550802752841315894160626505633793843196010896846209653949194334695094724674275871546973766830375742003610587365652410634850495019894463018534380891914249844137021082258566508564747116959263448637574892092820126672116677756945584808362116746537975748436327399489617192873471788908112671016804584100168634149137312805821315908393783237037905886110094254593494789155648033825026617295701670763456268887909749296902071884369364606371025228787795397560987593872247051488569597177914564615887884776938686675446462731878169490346663601234182331904096546624045311971886407175080285237021965947316198261498634112614983805383651218709243952061113645862811036846326334104776352015320258940106409804962539651878372271317206107584918418200851821347617171940559915182863602099471714757485858795348407314482500470649309415503910742712440812893140112281565312755742964077493883869571186179883406785958465401446240058111483913502210259523820596528210267750671976209320840216022356459562296406949235256976266596260543123142537070892780797944319373813656564389338227964737715097854892823721591334062794642001016682536076386316335922193951890997831625873726751181772326158559477776263891504031408531561870179818354245076612221207136148063564331881373950888654905602017677878290791872099557573378777687378523332946852572321396478422319985090126082942624355038239067169779153137782512121172703523681676215851007709155917029014752866821621211228632965628922216067494810625302137082581889151318988933304537388366376394849423963231273696609872896830748636237552631140837834190235977289948963027798440263244330040115843020889862908948520701069995082772355851213061570604423914799608120683695233339257213998814473546068457575468178457377259591452581664158286721959150220685051469821376741140067811904095734415548569883955108926239839240372193730915361831078199070375849849318918056438027154806369100804731765238611286548345182557255834591403425960438172441230127944002173355791873215719017034054653408145750980603512644618385294588064722305226263399494035112963520457963403275378796019126637212693092113017405525794427827317901232833842167529005052058269246181576194847667125103406908920707245001214670702872677415775163574251654165809754137864876477479577495700034609440845487851087196428843466419998628858095570810099649705685591259907133633614809347038801339088539812193956551870829555463101004657228289134094527174218230863280435954365707067738079207245159642969743422852715391675907276347676757845779854855876003432781217904780113035376031516756012007023283754052802150590619286575674990285609297210389431196848775490770455659294363295827240262134814218312710718797694795982655764558300625823795389363717344941255335498294306885602776284175010457987077504377395611622765051537528735990483708689310034614686139229771326956659537963901585790607465747134204428490761604015010665759567946627944362193584713401947318313293303994469067154040989847311033461240246517952297513846713840779576458408129832822039829569907833712595831263854182062658975626298858292363303978513463379755732140280452492232200930077014321645236177042891198997510726441686467533183559639276143434746138630811408526109200377482961279901124814772168741929908952548613238339611022997831725595808121429876348465098281520717592638318677502105573361224707683099337961989159774335687663322623450601750418820955013912909310239612561183232095977198828232298015498942016991637284387395640150168399303996740198493267047478051279684350163932833393736868895198615194705196873247757759604336988997121310829800741918128588439171752441100011379155709708856176422721559031710304529062536364441447532249504761346295388155231646590618157599153237414340920297041683489717725723751770645006192419772667587954749266851861350824334920507266448408783684760725283874929832324058520446701906712212073329469394793042642042667213336199991884485798218062053165608579009681057393352932195966631964029072974077227499024701881252158043450480683448640531936851328971814772818331974690615440579783067267136637120707746444201556405612946109702162465043101888970251489894214000485954610728105987389377205903188933184108485450130669972518307078357794453214548803489617296663251975416191955914364433701596547070842182470368316562341870621630084942508421828427553231795576053019507884796501593990105615652871581231827803853373277430746967225959429253740629097526106812665141612833030026813347680853296664187891612260345822932603577541954553442649825686504034092639253545656641958077324051150346718400895310527066881475428104841574009205849100903049891066129575393864173704082305055710508361431311934639488468035609063280995843807265614889609207349716685969343593536475197886785633362269198569019011988757113722277708524603362161003575313473151908457234721409653343324156960888349572257597361835248511856277947179990302781284090944817478590530681626391221290401313067529675082005870051905124931026915866013679064971403203690650451989899161661873967711489755841963004766544333760464556487706165277095720155007284836115735761500309038141862480210218739482290525398420501181812165548870953094988512046236240784678916239500316783631771329850573651376624351624914983822590076403575047202707155683704983294013861377416328339318916130246305990002097280485536829469608764779789142071765558317989803863505931578177779674784804006427623520152019965565699712913614630983988991202929220947449341983034331990750283296182177068507919617590323278267938691586089337528972470248378070583537911731041390856958496078841926721299362379776458394768316806800131361189734258764452220317563466148664366673796699162202523464582129997218058957679774737639056832698293794657580631613153849673082080362513757828458985471438869993445600203571390988300815902940254087024657780820524397607610543488588515068145026121099428433711022401496783304873387267935688731831312295446094405217535818992326132422824667387217237796921006804592483681108431302719414699984750186140473170801421821363879807146399744613345493914554580568584118430683863838862899164939312622061140807105271678104430744411963463865092230083514833036836600380792341328093287290272899511271561565298551957325530025029981776023993726480431334244527417310046843492868883635000244486375230524374540869652410987395896779450604784038278837367945458653463667384756326653807588709417444510779293299369624533728910851763885353855572036631563861077452744164843175904924441638188051532096630596014065921336531126265496961570807302811098466035472695324785128552463934663811789782445793185107879075855902556622686345752103343991171206048936657831843403713471172686200019828232364095484717665814808811242154091808954676993274809638047874596774475726316524346929066948193983393544029430286993894137061806207947106733409711830246947150478561667473275859928849264784405711545630801200118856631705651328740199977728979097009540689306610149223795239107597668060775655205281647531067667213438195142692489042172863016641358710264358516709371722732108285903773368047142106804231344701393839353774418871646023654530907934400786985115500338056123787866995335031009892394119864653307473121318429896526810276853295741525857077870176447760905997569694541276548291421561499813177044417558131846234815611650332718528663212060904278672320218558496180008093076933032887212291135325697241223384617913661600589745837856687712580116896508180785360665716239282074439117842408258876044249929100631944940603750216926404422986243325814910128794010888539964469425735806993192914988646317800575699639602865663295744072411925420921309789179740012525736648100989165116731290413875955232992755129629416644264409701844799139563687081110261301878219586539084243970468862715050758849098172073734762496049815122303772994007187855818400621980426572419879830752545333519597874682353974416774694380274252533840610478189285038289001436038940203715755806551565368603732381695645692596256516956621141903243860890595762721099384722252778141053785275353143724187738406242888807938058677043805944103700274243236304805498264311182687951025433237318984172472916407999545203082713216033979365267319426612733437639010424778077899994779646017172915693847598108637164610915089136965276887444553935469249148786598333062148908530413737589246576332640700232993165102668041780076355842924244746432004636487468083474754361987803313221097875916172223218331404234696593454535600162074273614840340350492700195954680113473743144069930527578123076312174111417420579929559693511684909702000952559441398454144823738667741291136383979819716481384756403242185535967492228380153385830952427005836373086863341813594165697612809942145806784643887378764402153950796715142130506689223533892670758957369934825142468748944821190269318012465537453155430939170599778575838620361639948506514626996723092032219891565681119229933565052299215226037599800372636729493271680887786027843859448040870863256583542313137771506795628460319956748699733799633158556458472482557074816181988683389184920548644485906828148060894928896743742962755462093504274890738210636044557738786000684644657676957286295586899516040926147436558625248863686760854217192936562230465077492685563272609311338407924348573443158194950381140463057584236094552639072937806893365705760681353247777878313697384338454144955389473408310530822615958576625409457606846954352957271179027250115297991898465905230447564605362386808658547726814204566467834860594446745661916630210696634346342432730760238658426531546005169460700590766247423750210166498919107387490951118822778492492409372249049221839783804491176210383720344591227217650670623494581609871576764289389788344761288758236426421062146519588738283523133704703821827802087114297978613821918513960823135083841730813960422006835016050035592812641402371471972021087197395452755102008367117034686160255527760914314054678769106233919496955783606229458023706340747303743144422796472572953393401343240284746719528548977910338835628469209828927698148852256387211928715150533433798434668421371253491401333463848672827933249805071341955410931610544305650464709846639849581411738078774387939138864432681684211550294144846321984326919816958861765082492377260999162688295850330395116610535197642685030735369916585705513881302496120755579476601179755419981419399696022987220850331243380168845186117335955589292811942129052781801044122061064803241521745649816214577622327615481149091775880968252591710955797680758778129451588472151476623284847382754072459874594726503176685728267231515849823539614996202308677638674087193361804744928973727514247121628536761629321615731556480571234406801594159618779179186948611506968899294899293963985914517096416104133113960234274772063642451746524532689091460519537467495717625154191269972714515925365560328562979230818079198630911637619520287704577686148967382551896452514634669843862016765068437448325145741740571011090522863227553644120233519660432415056405326626475304523170807534239319999749596818636848458362134024199674089733466877770274214593643819087201447162445531669305310846617356193110978600105123984011235860315011438835210022394149544791865123453777337028374693159299814516767183707135296619883128960729241961934378188303761017040553428971490103095097867742328081895867308664974161222834455442818396159277613715483000779150430595753108858046849847452292186134056664498784208112927704627684777880896006668824083822696507105969323074404469250125372599789437729809165372224201879544985974225053754213858136705045683737620776314136762683836206475769811582984969637131578637244394291466502850266816948456962273501057363567933496749990580183783759503900656966305992606229157406547277050572129568649340721667721089488529821017310142770699309814341642726037045316942924506158045820568621019058998543683309239331617683093796019335196253347506998503457748391808040771684398964409107436322514128144720670097164999299195123773387038175523916295359611105694864884791388342142846447868935178903241073495201412464213187161772623356774153346258716402714005851142338688263402211181189562176282011642114215038430694787080244345171682034295907880242340625004692043559674893460665920136486741040403644590639896275809273510857337421709494718855367675466509835333989217709140066442438463144088594858657958269825873248685491404408250107927777659442088527748847390983745694707623871952906836962056392698396415725885476893856063652204855125368649903292993155591399321965033362062221856597430100779377905732772881762170150914166531538526543529173459012806306024895965427897368564608647850527782716334121628385405019041368453613554856136969503509130179106753499843810209978318142312319957942288415208897500866410039201011540142035268517785057723737941616304218431078996342954374317510246819276978746906333759493521578111487711674043149541025736300824837498708725538161404208946082631703492024995698329753809072322152643530935365466577737273279295882823953217020570890564814107943735445422409221405388616457326222576676242530517257209880393101804724993031888251860470536248674350786190981453011142908773370946798737409601464874772455540411790804124891958810013149863362462906211416456570526292058350282045249367249037501955801465695130774143855651957528885805152235094859655520088632455380468807928508768023755603536167840719082908703369739556806309921659705652686686879730347551533765094768185968282685707981634366394353975235772730000464914846643233889837667402731055229488723814954605483597723617445590366779353539016869671530617990947782316162955809091290864831986095452235612439247979186639444737918215136468237108803865729542125160089120182458908442694976395533777780069799241042759401702628555279093102713040576102338401442587507405882002650544824194087528002607066694281349108530188065536545368678899066488221413761362166028555945173512209122359797835843370239208121199017422060113564922233959440628532955934825144380474892533365067375353676503635770448746864258019609905592916878143660125830072982856465209885271050710156392946987636846269844292644465918799507372772491094089084402370557394393937373793113461835889251339292372252057458193610776052394427051222318869056947486535588394192414779196863115922992815179328020968349613790890790664678179973043057989226791018182464925684548728675949395473163811633578416854930291756165757152742002538803605258457591657108332378210862742762324928858544294418221096606665616965842625927605838719461183445558521770808656135962642809434119992645494153582340242510690129053307584874472961311818337215689699112338079264170956569511011491273981573149329163906999035594643827789982042642388349344745774311909442163429867832156861922447039403164740823713385794774922515220147600044942264413162727109533409792470105380462756917821399598719205106952359749814916644087601397021960888515793260520087803760856554272106971479971582208533953957940875756015990418707193999891974294493591852282620050182371429136385254042102171185676550459998241836669560502705840971095381704548247066342900107474080039785384429939775318507799165616210632004913790547457874885063233435752352746674551683810882342018621662618922152935680230377626397688683403004051263510519825920423970780557265397360207185979933855925269198398910144534278232070208216826882128032411065534393026465431238883838862885636507869954962405586523932424770449594665012430542914993399802262439373856862842365121004908401002862544960811973855852769661526793575777980040539091917293804295363814630944759122080845280196531209689889334088700637603139646889564295237453789883339498531667047712824907846543148494935794678423314211397352270502202513210908369472177706995401921480446300681322559269258470523493980080499768714711311185899503696672458772733731882033452239477732181488656626578813284455724996417555236628339905538601223647881516891571833707042116091165596448505760321352024766469552177972852526961151006960441542914473371479237618033348443236557956657587128209338539032527581288902498337737931990632329942329561672459386551555612286341592083182506869393557172185404815833143782323978363802179048014338984690278743944931603378682447438972272571170977859357368421895135165207340268731528725989871584088606553963791775493365805741577622526530908241057341898131234136247507047355783818126087637648145478907426317668786647298752557808748428546569430702066390568246736582816717241667674233991839882829366370921888520328913779317712040823692241949727994697005691740081044383232373801642979859318305552281372983225901323996249414989603401808045181342216225758824155829343801279167139790001855974514660416988581584975051361909250103174321393941796788354043862755360178946716979634624023134652488340549320801842327155960186966722091407201794917520452309080957811846354923620972367442989734815150765540660090219326045918059735261328106026003024351201930997309965932256004747918436751542555389477353568181391432662149294938357148355857159839230707120662397255557215182120127038057129765877074244912131776792857979390206751163286060691970760961789079638901223993406398129624178439209218748673135155357756369014866261666022044371814656424375978940571862165965297997160623468804724470199058377233943749948620172449263559748616419084376241307939466014224493060113264092972060558049623045340067630033771588108691250674099307142281737221646661788069808476175476398767094722141348044876836862540803263666357054534198873087626278680636430284306977308347380175795830313509186323295247017359341724178041695898826051395120740454363644130710004231677447861385390688976015965657858935080706987626740468809784888377630596406552755023923188195695717194762884324774524994466946163812597949889505800284208620185266454552327791674435153068127716069255809702454887274648187502172741742808179550518806500990969362613181905017944599379453829746635511267405628371288481786666536842514343381112588171335903761110766187997832260081541343830883825184834473574018175987197651224129806213658506807571707811571897195644271471991818820797662711624057511462727067736267833586926697542834716825425648769722721103373497704109687006485644912517814704981832107653271966213684845715520795708312958175047747695379086089271989263861968974858559461078319851463292625268277211592992377759340274541053744508395118549571609492103950671257010170103092140010202799144159418540803505321785826205789273780295386476588139855636879121292535988441979181061849785865731153306645999902434480695902016717691659259654896038309190131103572354294734191628721158246053679826910790716785569265794787158628874785052191688430946810120691136475067570591902013940979274741583070277067388323752097165344714611234620377085035722939702198862996237810819240013280564675598544999432688653750639079005497900728127878061072821911706137331604263104235065800609167522329704145145101027182195813622811603106415782464250514926603761960965171785621370983670451179827623739959655819692986359221404446209903825550287324511932472289318844692740338593261945667283355596912533856312453904072076650221167326357111331544470728311422004396352646184925449476464833496578134909958416509560864978940759444577507365315590908193884565165534591209637831825925964391473858325077531670270071757993610570184995785183960250210397987046816260675494716855132215018879780377756859954439187116112941437405359458213340859516152825523137451785397179968381700687825261323110650943153993804713354393395701399612347977891597481462110103598381298076452751676278913365655657971563683429007216805750029328147231624997342752351873418239559836219755219858706444950286907864858249489916822933310818293611884966901318122242895778877317075628546929886423219185021704369389635425800260134641616852788884484599953998480443521750850574613764145486881450528605703019370918737202348885691309501615903898847609087670765727171401828222787937472674441896161379615055965464009878302555758827834641188606044540282195215814309963374316843956610934045223163537279746355251421137920708578634051935384916466234303905132434273964175893699374719232896544860179927941187911812058771801621697751554897251246953286969763689818271650175713649451710962970127330308294853380447028065797867061019744177031914471652166218871314464509299239517848770042964720820391574752207473656702664147630363853630161279214636704811556983183978916295154763388947422586155286267611311087416073775097057676600898988205524227444809246876990743244741895358245721508377522307454883423654403500777175770417012037339874634124631576604730574438579986851483271755028015918255193956722305762331296888223504421695702838509837278952349231707886743584219502342210555308865519578318232547528347907280850839205372330448024258115826525273264310561217769732538408528247403105647008605677044555994835996208625338471851824630166882156872671475555796896581872243119512275061420551271877271393957925546512320375430341138653704675402556820395870957969964211925839176584104659789494240679305294177353110704211375752267573994233942926924612078846967392824368096272477178636144762954690455448707005364758652761453827701127393866778687399927439690880339284169901289446103254743852755572862858888806480176301939080420440971114574043208027818820243093856498942485076754393289050633512136524997805833771465962403418816251044058529608253184807734305978338305754317843631704266396253163183326391390843527923834830110320093551735382488319336821721803939429886384771294755729590422904192106769130719506701067759364038407554931919771731760731465820935822455641592052912768494739120889503848944234684898608871357673483511374620336269572056013579035584925834898842599917683517434577502274715571415136171195350312149538846527462261788433093641884774753486411105097846453735416353914356111302533618488184563166835913805603617979326752549990130877550107928228278186199964493818796438429548779040475305466334103692009704316984196979535691628229348217420915785836317962299500413562530847876241168984515693890717079951899834030928331740452879444753069357652070256848109329254902981167139635163575965607373131632419766932487304538919404501857223841012343931503143933950087081645444599341414165860155565836805314558774455756379862884475061140046827129326972028038775648894959450774632581054798351538117785718683639248980307106120244704547367875404316503540469330391745666967048416943172973732251386277712520508923547517446434979505378155301428909034880504371676238594612085320554847340328756330180495768296268058399804443104306314195002525315332464027188980205280970252817205294215881166551191470196894088685503085659360127883632271849752971272296004460773585591853839909175208920586522726382507316565705857102026542168891024070135740340658552418551691369892059356073561051080491893138169080498511754020707790126970449054136103499571506811060839790502815570284509852905686931631021985592340707882977148948853632465334064846858555396734236687752444919824361658866353089692304116259344279818873528553121730266304448942124492074931885210045595112906260848849147098517914644342267887085164479581568932215370146739278790099231577431169685955565597796373145633640447850527314509056131475963146844336040765970446152288505979564081650514984863112374179442036529116587600494743335256899852649286054862526208154584239336462067340383465464102927855207735752626095474861664435668321829898104293077373910398710848749285192564468805657634152331900942016274653039914778115784184458761979539981247838837208913704748530688241774203328307612071886749218546124946085884752336682103529832422388913429325784698873941611790615010600761779105128875909568722305394754925946087102510551088908041961717216200507547591662568764167971175104997047234108399872122732828968289377761125781244766431881353426423225308413584836101747314832887388172592009267852287748124257736054573360352768538086648311124490518363047988244782670794978745749240731934009539191725029094068185797552327547860377073741188166964591075955618906862296612492581219719757158716740094000425354491710867465365613814423451512716397351514311063922930554735543693785283525199658739922239968701784766226496887997020457924381349228511699489647539294947150824554506486424589839467028991268488700821592091574664074166827405216188470337913430735425728618816300248098419049115437643411138528413144232155826601507189148569370139996927077166273910545344980420899561992299672668978570594258081247121815990388174355703865842809744234283922861614144356662780132003277087696083910819129618177942437957544813639706240637931219608901691869346495686418493224768767532082112850483976243746619252055136862586392926154448243271564182732739001878446109496668300935564689182258288696954139076626541585707572883287380396148479586351405591950231546923195788438746086507261165806116875616146810232368533712633301153390481758718705177599214287544748032858794925101274604688809544374765000623626845239365742377576601787574776889224585573593621567751300493998046732466756816480892876655244697783704292881409415623240743751788900036713341395069119792475435269455612598291659690397813990444579135320158692604427867581925201620384616919413937017794538118282659526012952478470835664226344624523876432218343225800689118965620242631106561340583613138989548374473140483701382810461813116742403793918226078886772074149944817697352463793235463726565106397584928773236356467949837022098483871797695955432977639502989437082860449099131406366431619841724040031172891502955986716142465103204974490494661386528520573622260014976103550517342681928128664265336353423989772319606926000270304717159779679801653602765171026787837183538370692958923806340789642004531871649560600339433324691183339435992643855381161692560849896002531439350135753857235802430974873712362984891414698588104696284317084182017855137029850058644192962109265806298113283804327347677698705498158698200237442653925673306186569830059570621631917185261552736200307060176120208374425213683743003280106663563207808809215858077076535754560963937878484993104033143380212840320207649079167031968042043347071710198038924302639239255263600443608287070404029243037864822099970556657713623393649479703535517136017641647840788751240084964187845130093216805268106671388963262773337706454575319278895890556740776049456909908533775975715842814331517953918804726175004978922300238251266437353544832414482901054080297626937951859547551650472081758786919325684798622672241389487421476045941616117306563015891448436774038713833483973577539372323809774855282636513239597543110900442755889727683597720912686323489190563436728165522255386812087641538199215367907799997093410882787927230123972712284252592812876299145331839880643513819386114397068009748592886410894379155358829228002471896014234837146762627709513258981762767530792328124512937820116586944925748926357913266190539152276633279058055211257178880888072268782118593064057785473918897658913320189417265095030994818397202339277513943598100079428757766713679377935969185012050581166100919269845538984338752379093404713715583038100960857156785202204148933900436565180329033089343625642909672341852692886598283651947001142427393300394177780422062160089124150950012210419915663956857722455039634712323638357835550038087386416407229628555663869392978014616779083139007486865223128576737434157885996999553536841709933921125684150693591861971128345506275683478415847702137967231639228451955967029001481683843183923164969800229227192171490729427147510070700462465999722824798965309453016155225968588929761167276804873003026999202213863163019696748477962035992637171661094637686726197093415550854755755103633482295514773651843452063827104443052218732292658867949873887264257708252267406986312189161035863745899339241575289833214680137765835242366121306605002005358961373675992602661747878212165831738904563853955885386726016853874250912210326219365656683352891050865421446052809296189748550394072296137294416444346354152518822683364841010276817850203216049057167489903601475339732298773516320690029602493308561816799232228410679345409042021882788416477742237286658078705078317824475024021933810091275411423053318101050986348110687169965439761957058195020239638618406107918801390455824839032952145925329767554907167344770071574974863026502383334121447822616384186968927278886371339281905992953535991053579903080392119637548105548649052875883723914057331580795725620380036940186739088601227026709319582581002313796255284146610711219282875884381250942986014307299224042824917233383902409754911196473918200781886167919386195281307510220349744462436021122950193214475325229883939143105409161258468082690214924079863673215914212247706190201957764692817665912459794406031475485415855204599570171033994437297760225289465669707478370835840549958561468566865329858993589785894933778310375039493736315066554019276039307485198580971474702049764199271274018661415451547576892988020870313993450171399854835904843891473079649215575256022880266813528050106652976052444711416800512827481721466021058098491456138182970312711966586416235526553029531439157333072631185836240701305017069043744279111765456319121983648827281381104723581769195653882470628552816782648416871441371932942172749976839494389497015666321883299846686732915495942696993686587645117790187586110393517381976463286265937308313466824262148899511159753661579335237970030159604970938804146341218401708253808282581029257287311759442011593093688116454266484392141623832927850180882034208427906412781991090039644496209009149283842415581743846899640563775858590013617467903061146004218039018869878148678655996125720385541652336204061398963217090276905064328084947429916679816484995374279770555066090104228175835821426732036132708989941149700540042499390746425227854213590126908839607438342114021728995050158636072802718401432368892606779244842267548856824377630367823167372650915226218314049981445434139504981503039043919379546353770718838172247214710451377344091978473161214900427194698433991577745190136626358150872448817144512108970537818458904105194681438335944026874000409842605445693599311249662719786716822428974300109060233454281406247405920887184092751595319852643997581925481434026458223300674726958603683871271305851068820361125108251364150751906509854651142084985721055948261695921218880506160796196658185333353683376997856449624983070457370655135433712073827836061026506594396539267783195175227748102523178379613914467363954710361269461612084837853218097605622728918635595970651931840668261068619503067592004677207857832294677269089725772960816573077008712486731585053598858515021602002036317807135300658246224327381709570808351901418713118745518263986157466497430382175872172459723473743504324892054329202135257450809385507087543133525237249823173009739006564470843900959769952063669692862016644585162547476766816867746846317374206780576910981872239873619236853554170687578582988435950045370620334459908285076690304486144697013708046422603433788672193930346120576971125612962171621524354375984054675930910799055722691726504201422096222374752542205802432325472185392476405912460759698754030190280658766358368341398008340641255338219806686989891700269366189389666509775762879055582085795626447739144573140702129206877290639275293113705294669207836196039863824669761781793543135428876340123069143184570960671899792903494053476911804192944214028379932473995924332599831748037456454040795738166287558397940210262531551715508242281336105786077350958387972433863546618395627535815057679155735113608204891790648342371166285479236591959997656246667864833543758626134217722191237093465612938966372045893042476994845591469664514739187739609942119943147624826064749761094977585427685409378226560519739457408655658440591303666686800857696928072271189411177728586936984342855977094901650811984135134141988015069800071941309739803014617984280600512973893363368908310007273576410458055256097806066829502453905012401618007563255818645553158612395632322980665038771178573617988892725507559153583617517951843582233836581971042034977187932306125268616163066392804146636957136322849146283665627682782261407988024255183855079702581390188286941413519032513612673706949001559875113926501858537827434870305092630583599371227332001480419550091914863370069869632511206152728179495073179840745651615984105608909164863744146612423336839780823251222075874859311377048731402659043667128000710402290261075126492774086523224591191178978890895739250906862229655033613157393710413376887447141139736713894228105804820580086126353033641467421045011365232516086769873394169927540048024909510583701310053767477561516542264168272021326980738537241545993483330707272363118370423102933802710426533568321826779119191675014773588005462773104538833051037478220066420856861302780206149428856525950558298041676538094417870779197737874539625032817252452223825247358105639030583331879349473796962893287421250590132476394978973904306619631105306123724869452812306873723510645212422911381380122952416687765877484830021691061427549363945132247784096756952634456687173428255955037236980312392222452096771124925923573012603505639392144579078951383888924704080451982503893240965575593165066719948703238488740102937910014673716814320053833335797732113357318161488816963264063268344701805567777121189118756064264695268728773103987616805047248239198604743531962187026350220952672882594661676670777224220095953821950576502424188582966068578991804402857396261570020232227203877271336402051444526239174786492955692946708835858139400293602381168129115768145969278468369484849392154415860512820470188111027878136538126357407295617962803841188140842242267526629165253854470127081457270288192810136718611565754533763653362888201430698492488399923379263931855947079051953831645827019118342109907129037828239389569301420944749145486513377461605659130616730806314607598738158654386229954390453173222011105527317974954902200495464033153700237684582039160898082752121676698449494166836918935842443532786708445050924730632161169953345125641185758280551073717649525077091483416873171539807217173147395837504449759146861548122745476503746090009467504721287765023968702400486364299967601607271049632546103446509424639013887068098631091424700599360543780264922636027581582560582504765365903424280880220345230700260077565954244556722905493978172919726738645530941415278007829085394487800706987684767905707832841173898723132044467870464059764165502805966766601718237613907485378109815701352431033011815031932180222893690121955668163471159638744454857709264583982055629866627312151567297181801135592824280609672318581409140158253677441496913970857725165115614408031698550434133904589302514945559227042913110605091784085054354114244481230504171210004666076369605615897737769389416492047841456177531204094107765598093806534672987535512712097815317588188320283710158932313434501888314315664987584883652233601843231944686098064048988455992611405076914321731616299036703295255995285010352614126700498035233314236345902445434867525365344276117024006945479196226668049303767048280632487472660389802984838689360372794445267838216804221485244218378688941450431364868041176162789361086832296540401514558554270377231461358653042056962765017784004683448566689442002816200669922561623700979020718448490260338968326956975573010352554534143943908997608207390759273270839154887531917608778407266987172823368551788329836692102542385802741621590806414779500687247590204629541462973114027808732207945586214414682323489940241699716965335980178225193722098690348494161108839382187754961461415040955679102742040901553724041144144429884032482652328905390264636109926342582435867682821700404916586466964670659401730673588298017578195972081738671758393035844506587705154242826854088873073803936953095711330547927762793756830125435909940309962575533318707444756488393371584199249810042394037118285084075881482651758578098180891993932238241365530350410320740757538683814613503715237105890298044149784786949669933210204358592952250855534242109240913882923998820774778964217515609779127264140788552315909560324711023767152044993329501206064026941691729835960577495235982803545707715009620899470717868955276669226654458676027934868900978734418437622183940495304887294226081221428197380836089031407999851398935195019709132835500802164453967990636965710533640396567515026828035760902742069425718110260729498198305724015602703103120675559722144980561629437576869752938465605044746077011418193903552132038245368373524568840365977508675844105779831508895995325711754265678007966783869865625788548842728435890435512949481254610084500430683710911497164733612053866335118908623050126375780338451349370865979004228172499359070854418292440314118417443112493810154554861991183825122506056927552989459548012916659374357816998827338964635538144612649366136593083278729455257300588560397659948114535411999274574420303040114117766703042382144216600179733502264815505935759140338839683156919993364575660827172280599750755594453870612842127152749312124446843950798412042801868792651389254519814137099820539432140893915402266605334706670875633637214846241777116179323103925745896310713194554945728048285951968794147191874008629356623715012215607526064119258550583563865093403388632214512563831344675671196973572248073291315747171133898227255717568658831644462943730997786886855931457734086106049188445776898877416512092915410801381610186828358611053361207342715959356995378419476760257124829889638028066603220402030798776337106989848099819428412039609732684931156252076930990691821118856228449436743434014966002248798249943878126271786957550234277077391911095169052480187816633905905803076473744028294911831551805632518983196928895605923606159855650706907159327362047847707935613684829826671196186763440593604575412718891353036522631036394794237607121847578924997637595707187487261343800198271054724795185213325839368287015177012098476824331673093115819484373679668583309412809322896792445894857224180876904211581039412369025508206779546957961559038397749323414606721957121887033531009745547883039953758477437415936557520884089795335151355195276763295280824922037283199568395874071482940862940396408173001027700274286395140687822298263985854623151669833226749313812755746424249309080136773023830985297801204439716623432168779171950528605665776110043531751270306882330760592172977927303917695380368802572910313026410109530425927561442840998288478917299461125977792334011908660174228312152158437241542924247219499359530685989121895605486506498163218032905073755465609097397368070487953542139698366903729343091390109569882963209498127263398108489521626481012232932434843162952555499915230947739115977922125048569007912472530252771300112702062031535275737021072568877193062837011456727379056327708618171275262059889711623710456906795954988968863800447154122393270781830786832505238092904821527881529784265010185871793200936795742912347639188893975920697680562782439652189729512953745127850460162564280845918802580330800278907101847824200380677323033642055056182366665100219192032955547303769053037071780293260115389184324654954293019306873035405426064745762751262347944567135943798862215142247279686658669910290977135407905147491703701888113428160026794850061108040432950055713676632558248580304207158314337152872651395207023879927916238734003921909851717637652070448853852385051677398883540358280376692698260696320387477489948195823607084565064201898454080958222992783368569801577258580722509434077757099639672336352407402715096533866621305327905240110216265542643085448196112317947721373225665970405752890745361834921207185609546419221767460666973521598851494653159964090983335855411407858019328641226177272554466894092257975128358904747545425864145972094386704918286104932086644091671343475066990140519555418626777407745069407472444684106608695561015293488210149829872222023192306717147191713532407348072654717068466855031429051746316610707745682911952681842420706411447350854274982319523991628324767322147981606101393116825867878536515706659492542302005630065450901442374469330371598444035690331700012332837124237661341109434686087998231832138021601256951747909118591885774051702230263081965456502594243776445431875467049634675150506753521375135811159167568813587104239245221830067521810486002890653302249445652238483886116809022460669371683922568617084593103003347145591371150841224095150639157753648564630136690527814217234534747396559330264743368286104912160468424424991751204946254537035870849243491668984684907537297863013786540089324264430723483575168079945260972534263426241234082605764370000836144582238740712141534118252707941929223499652724744282123123880699685627925769576598769440375525052590108267068440150967917407409796179427839822013633544047089865967668400390739171867888139067642398766154565695886751508072464138592003634343191517521056713002448341676406505270911564954749969544919113608333458492960276410756988782946919941303852078295903997799685350669721373024986681222523815939789389919750956557799598304431453624172551108789996518759495206023744503143315895614105891510427626902804393690531456069133634946564945702277847438175373024655852441784973418057832799534328865923461739958869359310857354466681391174211380872554244330815944361623992220905247352269210207013298694389244023066120288391379542826302916725384087308395196755521647869491406323729906479345795849204973573337700853570748724345771591322945266744977663986085012073750473175727015314898592282758674773670944938846696973030767105789022847825870285816839696636054458227584441435987214712587489836799831179330890069094542794730735864586129754983469676583257186797400770363783705999345791794538523464773630189577057606605712910044272311463054878711833727771181102048634366877402085155496493267453978816586244864645264759736063203159693816560124219214116581125131924094251649257591408723521342841942473260997178747292226185663045351050000194858847823556723581980614379723746483444738539815008154018834969155537468057424193644891241820775190858760190775142769427660251817898882789983437003040714164683859005794298730972223063630425495028556341135606829348180794320954489395872165987098027858760398010199601226944297210054590722627758551651659674264190448790534867157161753734746121355765542231534121760135968091184120766107370469944608959349923595766759866398023952934024845368790913341507007009644267037433773919394292172177115459122519375205040897609993968519539801125355505769788636097563106204858506539722734943832281188499979642225106413019577671290089398262424090883643376249878048812650078100395248471781139609778853495294690209587226735838805722566446320059678055330961756179044375185513555402561351361859225266613750496607226537330742566746064737410742590828973399383206971340250883888224735315204892714895979094695032578047669543040067204528408141743276508668043396010949151649829978005487375534142439262889692455744920973290972285586182576082962624785535983853602877527720452000168457623109688099522878404144108900584186492996191332088872260888940823126585751363239133107176831705889594215843364502258573251895284529220897470023698369486319105332375714884669895727121905104494601837012303301355895591463380759234715483017557490081276221217633833173134194797122993718945014096808955991417354850558316138175267071587311621613848773020890764625087385261678118060102127158458338490010769083656719408760617508500230007376086969623175529217839119071568182974271461506571306845929090582437909230125502445609400152809171207968353249826549568448242227011468885916551745370081283076311628075098585324723459903135774482514013007965498052584835853145813259012818756280588381459075619552140017361834763844098156763861337657619572270372413395593222588173996596341396823664317224900798598908144879231833598799737196401347491330642726660613087896214592297693129183728104223805407459335908610071367636726750826150279380189575232654953059095404280046719508278903060006331049628271346707708235791407518269883632832704715636636832508121721330265518225612062839456569622881434491876278850805668484804778625493150380018080590911522397709118247568642235644575693235037615844777452410033491230857976819619235023248892512608881233709164314957987107547351968931929909586848505737878879931198314458014685834103748958863029671525976449087331235320355469340681467815523012573903412910114147312179934809278970550429553991192564204609850381603197506874192492307885061222770770449020691606586182603032015310752527588563666078391951001816566087708810293394781945790741820139001882564401791945365989208381197403858658115335198801000841258586986638651146423039939734507858800375617257484203179182733864752872424182853508642901273815254683228454443023545998202752462442433131876128886148220729799182736319966534321944041496123991093623731053423341070030760941336889840925048124408525885382056545361870466806755702935729022656022121969746946428772792224214715542814080931996223382848525105877959582757257082336311370809854608222025966111416118548884031348041731802993276805661862619313627379169341261089025368109270864044322052084936561080855298409099776857061354894321567802669162123130390024002386951365891573875922417669192827810112686441838687755996446243416709408305819124567468726102408203422939718948640308658421788510217106806522151257190432720581730638657621156906969796447684472763672236789133525976659080898914743048244749029906970864929903574960778119447267069607224929981667376114710737928675342331465334975496385516802614870480351139296341038731472255046368257708568533506186108167206593367871549897092658530075154547394709010804721997092912268952108705458595788725768752868829814209439323854305130748696880359925801054655105600617058587925389111578290676240227731552855915764888407658056708944121794727961893904068400037755302407826077144026788633029936446572872146752613517981561442529383788675332977507818165978324109984646817169688505342014386019137786737544779313535726288151269332741987194904884805303565658676446247442226241655734737106611895769826301160422068212363554976679266520923829498501391193924105752256525078464499353583405734325560243531141316723032667532239302895291491122457689584481233658413137443469218294514910237348644829730826084838163909018388815969987578264849688090925682586499789166317219614349310139503027820772522264149509701146662472653012007913684552812993797166256876515675175719143735182275609123159154489628443460298005659551108826507834560623830941188864838948677078841243246912183578099992012357371508090845113532248717609401603200409776392121799892504309994231058638673502314281791248793944776741553044002793102960926148457078066404400247819481741651875939667308270093926585407000195665414865451861302195187674285353417231971487281037319179047277547688987047468446251716738353374646957233831242303592554507223692672317204545640311496550095244693589499745821801970937367278820665761527541380038184612101056803121572080231337456173420042840954937820072181338124245195595143362134097763579337242194550499285025756389705797322470681377355096798639658004706300133715313000492828717525620760740380334996267011411962516469157262743038222912043406699239848613473813679391908574423830689839099633658577297084583334138983757308701395358603657696954282250640922774295270465825927650841066429209114720673710804941692912655340459520048955793412392929568249381770691216285867125869349854485581084876961682401485513230207952573424331474925600923042165438287607969168244484478038122370445256811231681182240891261585885885138227380965000581289921360088493604691188169561631630012715282902930086613019883987615992449126205507599042230951449668028695124690805022373172057195328783679980397996677416937396386528731752598476744819482806666640234340933694683348693495351681149588554474241047194224056152277601578323867111478477430196195477332212557421728150777930183703964073723000490560789162052252420891138906718674815723481199541465772677943998555178843509428321147454681266931961435235975633688848471692523687290018529412264415773177401893212081598869080133458542326239491325168580905247571674777391563052338357642546601935145123731561841744603452907153699308249746731913517243369344074626220210173444565299306965759902061879530408710094956501491852492069690014233912561709534776311059427144073212056654024328698917548292606385980543163621413212588710442063418611258939940526607869205484631545315302991135954834894877066114224084960637833713143370090000901943007422054699196734915371445625548034202174675849389177207025220844035915695786271044415590440261577754659903504320105006742846902270782047139302915272582450066386530083199471444716712799691678094638822318646838797385463458045599672967386076839089660685632305825795046722837522752706264722157642016262711832346900358690423482003150549302580096732798043278448215557601664348905919007690277868054991066142252155535863129902933286629309690817404708383978817393830623030390974138231707813166878187812597806396138680741996991064270891775500188437335195810794048046635804935213373777499881626411572423181303506518552615288256984604824569157040085519466078107808508841091264734211258866205792703652388300069322995163772082261299895986752955745926997855587285709593814252300962446370082263602917016880106872883920846050631440034703427203531614329979340249631762604043500458272396216354388592332784608675419662329080183157182329245346021348410913941541535494096836329312914794845403057934768034083033586558065626818703435299551459281926950323805818688707709951970353235918664372458134969958850398774244880180764572664352820819687974926951291487849915827467182998268005034079577561850884001711377069739877426357203327592079623680718219376316786637549636218613263126052447648056272072753797318958957793646793479082006350144179956676846059893049290777325860425052311136369879047344517122079271664756136934964325009351209212901398416125401945542620772849449648484329953729518618060730681841192974206378519155119948540384317206392086222122665169257361016482990425852331396506583800821075645182005340145465245436470657537095113529709140317355986686700533486819840671003402554853925016104793976281328821109508782692055449721884136529236308614858628600116247216019035231426697007488335740315390341190588554560274376196555499268151678334037820231803648138690831298518275174606768282995576919467098728749910630417411157561839780699176215941781864413691238946942900401680802716859847975906085748829240495677822329580725339245652540421622763067504588069911830833603699902477454967913966059903460689578640654462204863768132308334453467443434869142081973416321175006264123820992421693739261158803347539467665032752392886629649006940482548979663551126862212874545023968029202981081784918646131767963430093918517720445431297933297477110938611864016414464785801814028005324229290243137076889237768102573646156924483011345759296175784969918652300294063204087955572538779429057743483458991924679744770372818535605382221958104203634836685701401616346505037647922555196291758515890523753767686520095378567356820981370544406397856606996734098775219037664382519717752829230334428452738867082025003464574842670598801397986596878775859343417545179804168761237418598151998570710668445509358052588915656316675933078328608496267625163630563766398401788330168048116254314816314619405609887795341416493121588067465357949417135698430545025972108103445270352665368416738296512097084209167377839076694339626990931053493576746155593354810376868732952349037632278727126194911683806432991028467961648941969502023817976793627805465741238606673095056436629208974734912977034133149226509349792251515949565414915077631936374002999285699869900758406786715971629108619982003240743337757642070033532491340754917950954001401897635910063925745824920073065663434877941421657713355697084039774996001209691111364053540979762619907804901293229927342273650783923586194241354811714514314864889962928479599162317435974563068867983100425136570717938160850650557938581413738301689635481364259974680067952556875025335687970459337004038046932481349952499210140947188495059116494180948186788186187234841759925323682971554494861190443653790865863864330819844898642453285191044109670250672661853689094369879700251783686661286133027850576382864176490681359407133736194755570346693856301383962558876843356288660489799538450599680050973802965674291818829508444910785731006823891458329526604461945641249698666573531651505358342208775526220139945491615972396616040465519618675187893337626763664855188286156262106073330617117809697577908367373425302286795949705429575547509480575096008217256586971094726645945104145662724541186304495932862954788399317931426913013020081009183619937885586987709955935371919729079830930271582060299207203696302672614592918397190831056214429755379428366585158955094749678519699113912691870514651995543446353931567010249892252935171520312952431734055430498244627396584623699154485483516009550139381642958942963191335841761391152620051594384889640066981245125736629970567414478680980410389354108342432002161461236475803075109210895708311293435759583264495882652497090407889015282356524244825591434740493533708349407615507213262950727405546959163588202850134813209891085291110426164441546499678917153762779808525094253192534216416310184622487249874497333395373083503783952074417689474619559363876929809717482792572299462892396554706458197436428507022347989285727804758653764411015140908946100666472089667288093453807501992418220963145686533561665115198608664659723113886909979471773437871964294170549590667769444591784607002091357856261227104130231226157920656746437167238644743797138082349707414192457070350047553256882210256938956487797427838890338717411227142283985900394069440088835080545177167530623883230630099111431111400051268319332085508619305477599387049419057261887181548582136704329955598537444065913365199753122964489699454566965844838129096494983542886334575866341900563113783897040685941375544133871679878025615669897131288589330925920997176073765145575137888373913841654368336756555301863005883848777966521802976029266263374640502697831615811413682695931951993209625713548105093215856152031513524151170457350051061877072749775131659627776114674712557919776958994273384904220709662847801326204002524809005550972942551117593271964086883893448368520256954248357683015423800397301827726434071248106991736321647551666707048341924327514924209866082443878715580983987395886534160099637953405693600401473956466152213406890350485635545869431740306437674485643995783773475305374371249512435144922101262096460921278286603484628055485778917064043861332126912509805441124450699391455985011170327966034527647684017261989592215364566635259968203931865243740077335082876390011710258045999669156342199364305184297068581896399308524655680860324650300240575739314189598105594726283603115176032203001817671990298712954394481314498331213817115202987705295576493192748376135788269885706621468660079184437051518145290013885604868624989192412425342069771311582620285066573019150785136441786718046838320967137980232283569202497538621144880114927635364533487535294204729477171405517735323419579564355985780328940288877343769839401113102203352731853065977033388653994907218765076160696324519740085765578308722211950321782546141341461178179658838115740322779112737178759770184475035379040177603618295892096558922564212952629455735856746646526274545608885701217556363203424815032383656733302761514618615759386498616125626308698079673718924353813289383612294681540972724798612129171220911029189432015119536012840965299063381329828766022477383133898575849471205869984275435964231071883301118123043251820608825297805074044323650182103256030120525616379393134674596171097882383945393067741455485204675693031182093664139233555322547967833668188408161698682303978856121170070030106536974688511636432773427851026776988065043218549164023180700075933316744698599464329318434931758016330405399852894353203007396726876144876387231141851941195644385192488035590254082418708591153756793237381370960665489885181765460231910053181950156279121825439075463245131942642313740803835945114102426874464978867034575959660834497066056127605350761061991899542171364944875776812518611634817878701523094978614670209721273683287185162059917352328586067734309580607444329246573966323151520430097634507029434516837344917581564973041615940155890640484054461509590735354314779898498000002603048784347413322237544699398316457147772906782232786549833880236779960615882778137764041553011202414833999914022367334766725799600745353505001906969446567555222315926196626278076325835514793427364706017560831961320573958663321232014946894040247607277673762256001643124772327086488069930228800120551658377760908965127441416119151755374243655913131898217778334440812943423724028685314107987842603176498049796525361034042045947264752840253563931331795846865382403196816860865985841555837262183077899232940174977571916892870535668628373762525349978710834350980550401101189409306852143064544678631447996725811668822666165263409199854267547156805774004529055835357680435881833559692459754531883482530995922607246997352942747249176718177696758564172131789732981095205430861518274342454167865667490709519449970498032705506519152719631796860205886868992582663803348473051804456090403889000704450266521766937232244301996095851917356483560221456827213853866039404086616714089517863554114562688675529113249900838921608965755505298686196341635007391054527639192477702116379492278067993777484553952018631320640474256416192996365547410879681442447581874425756502197545466012358240624636567045389603580939655593128371378018486757719535227469739799342132079313750364212871127664069618521836277118560692306953068145759115421065668368507923671505110011453138706053336238486375116140765864990341207761366005599896397562076872389379682873189847189396675969342103508048435892263284049885895546234912075272007360044241362496700759617748051984443455520735834867785034601504094264572883814757998178153169881976365281623322642349772808726696432254634969159688064300131680998262054259346095364638723933298402385954489894954223170830827459651050682148707543662155607558143218638099233186007783165073645429701575353216753446954364995521814166999874650134492492066423000492596975246815317532900795140998655359172874233360010166833172523424869911701698459402426542826260023100694547776254351091051346280501830008825097425118421304222156028217155041999119891033450452286321831281384939814133525200487157678345875530603914297770780706762965135877027622946570816957147677412924694790657650650906844501396391371904434618794329029339600065521285054815282396529845353733147989227215725000608641318013064903389791445150580087312024849437503454229456172766393582892652187980855526419246521888148841288545820072882274375440005323719886387178016896068442021907558511266367193857986235266710878113223100836774226146948051823606192478314689897048692757291200566435525287190486715992285956676143387573698901840277838882161499473927808361502784006087843799502196198357773116391497742735982276917691334773403615730402025232389105824038984404173123132682104676746671520533237342677867682888551023858651307420197626281087357510474995622634082664452677642365505872522700159245492289877727674647115096226491752302369791949976410444337516838421618870586895592678155336733560063178200171104716953060953360082308444705698984620865539282829648370199728600378818248928923511902510541891301708756264314216401393563538048766267987847958248180974558894813777110522367832566395917397335480881953463831827193069072995197652537826221210994364573913557818646282775639409011153035859198189355096855272892525360369475190322595815478666328432492123010695805040976753768859938003851117601443429073115316601326368753373432911605155593873656106840260004708645862751899087113821610201241886210740335079321383933776365574226500016646915861388864917270551573305865036605298849485017622391031041456280365911082214361205670637113429395004427424480792616285746796613620323152653807311555282224487153134149265575639389910324182450581623500725698301379287970090137577887274837772021289456911969607398075737025349036077179074598430431302775796152774924736419859880148328892667338854985795475755912086095320985949232822576182330172007915697422979285309344805344301883390299247807189312461730265118260414584245222644449530944610521159320673925047546584735286511710891196567937532800764543621294327687296249627202863559882886638413749724020982428133152531385161305636137764881280608970222251580501053784968959044163018171587071575512681703379208177096629926947604794029803780498857896289400396774981791196709503401009589158145002597273676047738557696165672041256201205027106032227963289205646900967723511252359453120754508741168365478220944530635488808724769145754292224614958030054848012956892860192637659958630246390755250723275165645882438910339713264383037742916751518969999484124119703432913736675147131550955685071095702141606601826619232108687347985040061809081340715952774869558349753086072276465425292511694418038989933787040329925025738121320977804138704913066761854563353348092530947657175078504065008292044343010634671550339204876689317736123674185115267089185561025093387448445237568982131152415050265230171484676499407938598264048802418120053610376527577954761637703345512148567921775763942552934283520840821159927297311215933536876648091927618630276426162157249789571521089442491538001566366167633713787578629595797463389391661075451614992449147535096857266268088026635509221690070062882290393421771229462888484877246154712107912891081974787444762708729563561014422553930366063265088926890773294935315916870277122322247608798921515906762766565253560365123025951462022171762765000037883196634239974057568311424876532714463288390929096618675264832371941615090286091262121695898806012913665120399056200550601183501455221511176906974220913983317127976260123168585481523334840382701821641387829889883390601904413228319125628628732399862065971939730940507065227800334100584979319373967386059334208061958231927467934870798455687158672724437638299850653763789658116167786168194586210540706904937770153666985011507096757429223632485415508664659108926319298642634066131991555538843691380563653546548339955991157239906484432486881481117275668294987228997229510450885535539358283587189580290859799767795840120334312797245176548706736881416820550217172936908082944895570298928444812551823304652220229627742551299364819058708720900841025751062064794270674029178848356790007674486515120750259884135139747101688662782429081667646414730645574637007089138036327663287084850730645233373992379752000696735166855981544626978832926860618257266821356634114813807655165899547296438600543125225070405941060310870388890011242077784676941538068802328000484555270427103134151354187669549612366786540040164991878671910049366314543839909899654515582780611355919410571527979323638297450744690572924218247157272878375164598130566078591944185823604945497842755562260561231208758193871329122765355066775371708920321274918944457652908659827935445123837207988073956509137258093857048770695267163114075387262485129984846799503877767229549605827636689948723137326425527537770496470040863585487413319610757928047230650783832403486337289295634891789268397128762835502407877671693204917858916373321155509607465321974095688572329290975202325459788461783117101260324055145001550509333233986963589846873217782391950043261467434004217093150598167841794591857846348804904190944256687080142367819359532386345859817814243718924151295055433899737199142843974084583389908217122636726605301192615473813710170604949638513341662852640243564000759843803744271509296095058318471327321369418938163824042219944975166091670158353062207510223872734393426588403998198948208140703708209002390582164851543368113237168051860100564521058378836764136387538684808558980217227161899592069939528238263313665303659565025723901718055470979933307379550188966787256075322900826165622775023588755179944248194985974253731137564174666222300147618469839618740051508413892262473738210699607426013632568282192733335028123500714244023118910868632154885166761427059018926174752421579518596686244540312892442828143669129762342588102197413813463130638427561323872652746233698681765035123913528809825930006319289385239956911460532628949954409895607035043504762961400020524671046532994083838415983434047862196297256523472826237211756765223924244304788630020078032089349728640852508322476311343408336062544553085282611782582869655475122954594813114067959508507762885632416956941723452345981936583188902991045425169208232886640502413774647070744285556520599034330605643915600732635332319907613049995318682462064435955201833547928893148401462691367548451592781388608534141844545027030630640827498663926665290166903575174952138748670754015142877342987540804589930068641332493100518114418294560629093343514785461902615179397690955997435981211406875794228540536905265030015162954813659517818501509913756252162382484801391510628986795386891878307069811255860403308988436119245702942001228032585861311831500182826146146143994157688293784945971586845610523935239137626045299292626514250307463012338960874974736462729179704580707870216813469066423383786587304019989347155639670623352407215898250199964906321348418342970901722892255058939556834839746127654978648668775985859796080439661579031543169627483060073883382404848860422270564383146332798854627591480461075803483633206850636936541484024294109531783197209595147550234549153185956058124694574558900747742923190980643402442416286067706763549801676794204036819788314583797514537734241343204331031703457708715341056227191228400415565800281701082154658448879945697949424889727763076046174240742871101792292419158895711011602746093766177980102531023877444428356724467302506962730106458444074047699598994801727096538574353477679231315709706399041602775269055651467633065340419267003617176283093386804236868286975163841930731856026355710192934804264761060171558157611770196635944800792764045603547801643674470434618748568398252890235857308253715386198480429832616936135333836113682325009346733652770203187302739909100264464985551701972013721842122096913593755438241265254824710199793429707924435237737582084742986377870122423031835666012274814702648560000676762563306718165686653852625753276659778564135636961655115074075392992973415559063515315364680328459095922652650424818401290527010945533631321720471620836636075706658855295515713161153897506668968228548549525948985016199476887328311223900986555459617695382677785587325597855430938012137627547560504772113083371834479242494013121294190297987492761660059179170498323531239872274569115832950139913450364358609376158481489801920868889935422862577583887488536620429462794238657439634575169021648528885070390718452392211826307165690943474136537567264279602122501076465625860906363700624227820704343280566770705393361143667512245480321110972174512640671804053910081917939969314457493487663854487125736456688678702190833845856326661619895228231822611025167242190043603933249024573737936786082209170992671911043565189918928219770350500078288554846865084307851993878053909702584310469361505585636785952444964437137480306327482611144236492443726068486811965603892854721257551496811555819219391384340381875143121120141495521188591222479454345093693156652783242514348821533737108434596860980782772916110768134222588963345585041849209695264403231390872781277338196469915027466975627272754097034273839814742645753100599505353966053835672143058472600933691778055314056197637508512501843722096167088007655209296278722709699372619335387256829145897506770122704145601450844452659920120865846639511534107810619307164418567230490760205432506373833412560754240670370307245792632017167022767535880621678186955011528845021672633058162516932053595826346898938455462181047773124850505638769230513224257399404045416334245410100518871059980287684042234126854685007945491058992700037756125661216788035672102812097896604976407634413642365223522635153968426044221387724979959160588671293295319694934151982542300634785215915295454592617881028994188520008143064442068404980666692316082068753965018157866159101953404080088772790342035538243240889609103138621074418445506805559697779810882022925141771574369930801492555674731058726822403905459654912412521524548235976911134555837160239894194572786416837875290387297375064883380505217982618462601434909135269422337772828270834283421550538187388099019859387395219443728925568827251490155674904692627211615369578382230282206170049098015713794645947504858832781186785518753520195309439497380040875083893131718441962356899630246478061591253022043942899155017552928158637365029269941750565747102687494458743357657218222797404071475117060925281234017838841919310141116535017207176378419038158967368020311238123958491836261488525092200486823698713967770206272526750806927934509027689788998725196257741844753606222941723582553818410716629130517799537662885984819610489011513944475418236683665508195244716031816585065523540683150838413086958426711311073785808276552223129863337037863729187059925720349844407459670914237938224304225298497462946687416236814875273023282098109510104190305001999687753988232235984286371925477524210487716742781544501097902758780102467249804915671389776628038618532562071051724863638118918620507718006506512833223033639537771375452178966308058977237957573829816460180612401077850765687645170409527870091671610578746624759809997046578023373427431804833715707453035733005061216610978876163123401826524049735743350566138456744957652101544739407203005795057773777391364403364724084690771936398787501625006901532182568075004682826539228162249590809663440901592093274535736966377062606514780161584265808919113021346951601157868874477845048632530798059358163132745981623258484081120071546649892282301002946908665325220169773861809434422433507742728468058498833455615758676810115296551954790833090160639928744957729729328455870838996825533126823220294911583688869919723484622262261796152322866564044582535234262071482737507729565351467693488872228254028832513267543390327755171537359038500905504765315326229365415124053849966862164408685721901816634658476685928531519361444387258322782303617827285009651137610871663085298587844796809188738997429380544008489831239254739846791538006651590820962668031492044338243803501424178232043588009760026962531931079624309652585450961834629061118446036713711619105214085798361967007894753457077411177968810223205879767604559888579620590913367864175243785916188670644645316243240904365008560645548505434583918956940726994989893365515186795440168083442060040330783304363223066542273752062793279683560955969182901485967370520572635941196741585707832929936567168937886322750413362818579419205599603995403433961584736395354340059038936594305245064902795293871252892020867940548905753656927764445428375525412735958783757382711111548170599606975709433095162381883090376204061079183832638377798549029281408506096756886982740340356725033396571692037270318770989754758064686251562481340148875750870225965904765586296864880419163127952005427965382711121588444240030775357648340398802412255013720910044697556779388468126418205615654715243508788549296018062261953930948406201665769194938933309385422127051815264248912101498937921810789806516425563287772882214617815800156699194480072202621124116970948085736561406836100943081161849024557613570056331455057479498270347520542817469519533587875340654370028216920150002672991783318113383241561657797592688605282487526375409640474056235640000447088340639225599404950067023252802131646876233496504409431041620056377425769247315027934022938229404145674222762001123099679916572992560519630937686684098031439018970262379399250491823673483347335096296105057466533957706101521859851681427627722466194863282503212833696954174700743390136355617352696164256472685114551935602480746955941931694825413265500983845608273447494239062772360640345065959428978717813572265094448583934136486493445541277242298654530372732507918270637621123043344379492262839379356326464599728843717717647346777520354713309324997179906792107466429006810350600931372626249689582502366390157835671909264475906865472520944082277638103215267524799547576491822026089426402558638944083477857766764190323843987486289902675147824884715057551891692005309105959924199201996530306659073192453345159388489995358321587368230841165553823820523173921806793995627778959695941836838898614876896587632218641905240875157175234278793471134759548353012972479834224142660088838529783984298581287710338640712184151528754705219189833546659717050605643982711191597462710531055760704461384142147289326395995321143104896633990872685905672674952840128769899166299657661733097806856996335070027942145643409007425784882091785096891419474154578213934211687662574127939983527347546350424754711677489518079054906669340616399649813069154768659978876910907492573955063054585014423036631113745507817700033178281979376809658898868866757143001572693510775037631432858388387195265751800576936870885753116173247084151477062124048665573087374415924111538103106639329879988616500857620227540586435047183087894630195929930524094816451909300172668268882216333956897397234485774455000424063617898157601802847206068603999931023165144045916822046420677795210596211555002999892563539987182758620289249779802952276444950379005789849494174131157810990269002975854377551618248776730292491287496642493605083676588299145324297070887776557503753022749974242981712445705735037307692159227365312429188652385014635527093715266351516352347232104140333238838272048938642613509476635254110026393941301510389162132490537499568473038950891150951001938182689138736354311655290147129437237914683343263615564409344990732432673359678853282506744402011209667468682982068677893706612022265590062016061058405005979393898328727953222859743508971803432716931033689732407373709875439997208267785778086701971448191710660860382324522546718058237626529596630025859408800011158493269572313296447484646098462168288048401860014869727983012190100188385624359782801706889041972019363098685333870477661468981149736620579454334136690063354691593191335617597423988034593293000201010500822225973764316584211896763734734962862185035179260947037762213297777339905596849709571424521138656775610645914767354485348896734237666695135740230276939775137059824122677171087564457445213520658058202295667523137494201595049998960793913554477868698065389603719625240363929630021103189063594573418346838083626350036405666771409494036356376063832165219721458925920617635291056772713518152743081961574173346603102902541624132516767306535281728843549570542756991766552807762170497645618175107451795318475177141656831304920702898496938313363521602174074725102325181591346090935165637265602105850541503231903893764814920674030088085192242480710457416859839493014950330353949993732963870114223799610823904963678353108468915598208034294439756669168303872204398740021699862547536526793599390134819490831972869496167790434106055867426125276406325959685317504230125080431723097426150648213572374279580176797645134529945841088168201349659209341107840457772032560095817614481426800236133329599193180117311444209144861322560714889440004416138359920658949197127226982206570368045896218672895645833614743931354379523525665093213013787057522052803281780464541519133515840789779966876650984565859769985432761707896743518486144836312992893616062671785506671549727233208714550515376007835806685753965948233060060207741940651062529942726803189743826630074147563113143905372213515886330678525954995217175100811153482553955475873886823247072331502568484068548792409585447928336330188717026418401233088894093237964160373506742510289159239454970849380094091723066066969221890558938056905050465731567365325158494689136407606411530474040026850934290265305752385706146999880357639167276340791862039919597985480093860868596357650815784328685970040684296005041562805366422319697333102096256421337467356699929236659468899488894318349862796697250362795857466746229355618756293479564975121847726400477406376147304319024660788579567811532758980087191668431822389197981240167197856899968173011940169373951995233925349108796854937836638363262446126202654768613866210674024666188963193020554385215646475968602325190851336965564875581254285592539290951715381519839098890090350684023736661767019904786617475427129419211941743745187782261756670189721291585661536459222026764542203769616780503633676771955322686383005204210389581362191239295891719726418731913279235653994502310172974865686013592352692689196608219287629454872649885359293767059031447820161649433211328452100441656872050246319923539762393308971115590629259079561402239467612908469955709311656232284323453088840815283861309558480897505798998014209885972092676569816808404397314104432811499771986056362907191077660560726962256777139888848867212825631836973021844202150658673072878556134632170411258904247592700543795047056485774797082130369806082916039592518925412582732537689514878158154754512375269132039153943344615604529140800524583242874195532660147805575646446917254727881287185606568675570001060344889323598481502013980074497796173205385210479158374020935110144152903287496896798176400294432234035887503849744813980329862726939023993587099983561184177117490576697995741169833654921171298081793726831526306450705775408418085361577758003668342580389100262500860482436514452668038415273561900108922750714423641903825901520876098694828861115784764786927497232402946057710224942286712136134364582938140075569775310428246363234921535762310724010795358323684195361922311332168187462208111482933927955503487508942144660394810898243422618114483200684698440460125505813999902686926900761757634780730680111230263684365233670022164530810196146954961650759553476220582798814746016630062030839712921474346350613297876548863308998645111726712095874412030821535192762482512205041803180562602535933016242940508245159651299766746035499999939051961979903949634733730017585355941991015207181346039301075418031077460046328600904955855031322089114779508871489583738091976409569860968267843228113878344060193876966193961193245720078624076283485261392674516915491945516338937383870848008222101639232858937130439645407275227705120973490466889871259083373114828352708478126771017188645923722763427070262739336257768870049913640042605669652287418918500105152525856412864046420422659056447662107850558046234019016927902539417362850971868521934189444994765391346105221826084061976520717560331673742168794533919489672695310655819407975188187992179239638924140563624068886931724262612158299192856796336039227714571695861375251195733311129029153078284572478688670806944597402824330268802006149987248471194002532621489419402991344730612331582704875074115861602732158066513202727877172176024739188665217467372227298013939451861135798607390241311073519544901064023721150561482219942987610414237609620287758067546661674870170671193959027518263664967504084570205630304639785402658747978684624686993279508939654445005778544695600102481234706400831839304998436028403867422393007251247955348626670119508330751498839003501548338894646940884079680324534369133509599494711587206791622302966194917547276194723449630693933841959184969714797625983179793823274371071022752997030947646249986541136263783185641978066620107102610421581500414737445489345668169726011064362381898948683503690129260112568262484513520731613125047817284827190804109016933927205919767561456789971250838033156161697527778512480975669027912732088586593450623260506975228691580901082977274192040671614686195273332074619212927056281178446867724294398065513412611301902719570272010432641575826788969643192276656966604365890467338210668464911898283050432488703867342364687276705091683220411738438206203806954995809741701851618436673697681634698088675928194455191932344892654497101549348348337764668986787947009391416552496355600844476568794616155376288847876903792621045953023072674245087156811204157898001865727343695176865861917885643849762846359569333210194162803849139421378786562924997917073985298781990679690136342161782561477794390949529649056107370967603907047827034623382635535814603368004963787375755607331984999480149110853719078189500496775325963388389733658549895452632007623292073732824617300540909861027081529312058641376300126344360883995886194777130190891148549422419090111232173948241084843433928899892680402633036537056882780349618253737569285973952798434525740182789594471145078003183558452642002873344451192873788331314936176068164344334908187972339077851465752613651758756356759996205276124725549124331353166692366025644827017146120526914715185768491674632876725696960931128259647785279938151151437630017653947296740410688822455316288842659103153780948457428274770161996754314643248470900642189506015600982624710722672320736221011620017401221944101571906614192139277250545794810138212779335757796856235809666941001681677161565596250375138739057315353872427028371333353444481324251767861340074923997883922537146679591527072089854981118308452544617881936137597047899485608599846679187540832319711121108896605625364919214053965520084907707756246605380826162108957304053876996308386074405845238219187656347689180428596672888808166029807509941431157774626089275389939085851165489596135465667887006756179672413389412745334192652959222476825862589143853420350520555507749734546603159883560701143309140017753319298306220960342280055408886347739627167557354103577408775225118679150484832107328335158394201414031435920670808255176556196618797566010204996791701772800361127813007395187584635707256757236661645875320938235298443162311102815431190442760498555874229573628470038513804396356479083621419610814358570935445899491857522183633788316008827074731407255730185736590050745063294232802920211063534369112355541130968366695189547259028860041085469907037334470620476773163570889797560012444175065968820692212229319169220299513198150378364051234586191425500051184659839674422798272131277363991530542406656553430382709149402994392228778275584229764383495568959174190354626711360920044282676359965412845461055111051542946738849491512423298608141883327337646824863106498832898612711977861300483688238755137395353144959782782633506480207267418420218637456742290666108821917099979413834708852177311842231061266831611239671784081584238660144493236449329021369242564895531184007190703922960176359461413285130834306478977954924436328812761048497440580359643895597961785322194869996293135092762207501852000005097426733259916983581363230013508028808284251755704499761697538713462606885579626352769507366232958226761046556720130856635954523466398515984213057093367346189286017436473045048841154468763789062745661205230071529308641675547551501743553739599524687789989667130606932487054654050508092680338260633189189506980215496005969486279463447251080328540565521808802389774148062627829366021166547680294899279475246669213787879483803193666543137389686990881965498680161937209891111351924412830851618455772799039754227799990156028046913130057587765992512469645547223024762964483300352446331850095502880823086462092518759018519172985877650643518153297027457833060425943351619913698884894477123112721081687257222036382681973081910706726139727694402431985254102180199118224195996663670671550545926639518855304227833357822808105023935154600776329417650999261109586341358324833651016202210246687476355131252550041694227277099622998143427677942014308996790022999912622564792337219357130002504248087017311160851384546284869516835648182035892006026560023538049693436081483540090492502559112626760114430480663955179914077159241961131385665812666094049835080660504619747843267138500203259623758940134658634700736276871293428046816771696511400577403409370562572731633671824121550718699372045613967354153838749439939584564364231594352663700010941260677788520855081968663074384268471183066212524570095481439118430247911717636269022490825403918851380740933684152141459552024156446410149905456884423583874407102098085061577924541006730035827048712165449192276846211064114257690864252704855148968311062275221882447736603253924852163763483940434994998577334443871337093447801915714412028686749620327621987076063696781312981368143732290930906078925947717541017667869079982353593182208751262102576993039684620763335498531478554731706302551686932422375283513341847525904090836041739358287506473055346030482607808871744767774611382091570920783201743112962063984148946537145337425181101259609039026282352349448953231134731335982558097783008004422439144030534769850952963961522196733754136571539473525330697470613764448835524690671067785684920717910922135715337250256454572003945939679222500796406659859643080119032707558541143219595085409513282779168787614316949073622527155014117217933567633397853610358245194964356087125147821249065751881717588052766192923520901423277889543334465683816929621457554824152804187459245378750427292431376253566183055493609285496610698229296706028674206186558044953825419750081742452334668543295669710628591453297979592172357096474601896581499987429365033667259383153558065752529431281139562091672000878105013082785601331196677886749767989328909475148544895902118593552993947529586987374029670639006494319966538330269663491091167444626125614811609555362167900906486935494527269321326542300899204031357490196129361824542262958841562108584609434075381321171029484810514777046666510496968339639178435843416117872473990960323262531850532263874756767566710792965826311508075546473126256582823434212516776798968902069311411970128052932441021194110540385268250649250538251361044768551487711633451420831113536612786054650927253379104735723531607545474482498955597348226807198551691242510313266970479277310770744490090409948735828633624458109524657663049782156072459998351289892769550581270622680084709044831403505872710492700019280777644146640598740552034097117239945407839835865795384238699528047475038488381599771633082019102737904719487484762530812835924994755854998912660432541213169503542705073302545370852760344277813622935467132231721515978867911315823427460252745431651922970001700075759768489974269209388413411529033571807675142860815288190527493828136371501174484003917926727364224110948460344802228925891999275226782320966388338607915298016732508630218346157553116589309632739968379157853567773511743171815408621929105810592491704371076729526398678516424010510278084272251254968703996520302143742475757644034383070192270912367669024110135628428756911386324106018813800372063379879445869285210391013020380976547978146980007961536107648189061602549903681987971873883914746395301441948217398868788165703005004261786539419383058037830304627184696758704913151826552674046195585269294287749982386286190402944467983449822964675102855566228352744158430211874737622009428508049275978614204446994763387179663637620762399789593695407174608787988846198328836476651031455606087448226600491671290422921416664191499127609876897315180626561176368410001154685221608102683756956949864744200544425532609250875779874753726493049239430795001372772539453054899081904831455683027287436144388107655714146010900254398219823943673907242600519691015016785690779725592378550362636330258384591784730914894858630671730837733870266592253662757131359587285643442071060899837987133564414760324828406764186862758629498178725764125805225920447229985843710787024744515097844860318422703864192929307692751732161825904298193807251318035256518084131796505469768204734692454814222934214169451020226032033460531881141712232416281227867572017680597331723088547493007707620474131092353824180990063974130538127138067768510945161523115675112557318928268270311595737220082350737873261424719467103870580867271766166888262488178403773150379424603344682709681523324295228675726873544047560776641831854927493093454760374641423133625443511946841718814490428410165845812406894528508526706775803517124326105139424719878698642107198502571463077075531732183128960824682287969225519292017090374592506593850213030302541936598379672181958324435189676640279571432235753364298715348728133231727095383151491386153036771001040035464614810229509609985736389367878210229040102203953576154921661412234191731258869655147350109347016631799714320384438559804305125576575595397611158986408022947653931731439002424747870121204978080418265644852500135711242611619430807404955904882105375808293851114189402161742547147964835079718465990922909374140344914411527557524565750855054607990223171309057823395743209492431769797270472850350029475332905687287764877319012121978837807065220145266423450540183791395744268079012309819568669078973703463749398315089543767892429075769228422787953443629406702251279737198444879274901152488225807521214685133010281314648601819731925062830950883278126251745742878101624325052909136810820498636577215581313355147188553094568784408726095075823861801334482911054982834675024166351144894173246896968328633786996532070670183884964511105627404571059063195082467704384933035220658142252362846965629735114749624880828565403139861284582718509475010983178847924743645123649652064480808487858785995401618680816817872256636171962755544698001641768498783237215344409822954983484820976492045425482104524990312109121759263798560862952235149225854181703176007278373282034503853447795725941768160575274367866975103042045621392463338533947306135763221859980118227565221110940167462355035989441056411510272788546063379246369623280907105110752328276995356472656657419857522756409229372048187210410652811258378957727282805852279314167803347596809437262026485358275686378861886435449242366461308885077906333945391957837162109844521374977423725435515506375228162024075203217268839343097931413570155798706921709936494072005873419955003282969654640610327356564448416538260061120068293155375137278256297988257200739063686468150831567944897648433820688577922307722399511003079202109846483592303382752937692603689561811969846188093449426942719571767380121606553064981401094492967810246295801397847033882847814126297071194833424926482142608722446443400097044726278187090350772733881296664538032973702618703069938441233342287182685429480828196392671610413807347994129204085132443259915509166304746379879380245719483591560002445761455325214154049142472893849102909061299323226317252955070457400168746987855838263629825251924974273525883490511012972733536185020274954133533330331705842911143073673514277601611532487588209966172591170483493874200801565636806690738013213658039838546127241253709649240552734662078005457965869099377532847730322513634081234236421081012412255461449621385753943863976583432520618034438609543497752536878598879733923569120950456706130004704341578176024560776940936901737220194711451155510868114780730525918550743183780159366823352417603463445974528548267640207798125837814025794816429819864469126107740056575054783460023594951446267149524011102449592123747235837746477302781830642589739345616480748481261246590220496697803123370346601352462903083239056753004863850607041029882989586143320114710907474999517610561330285017023959257959925867677811137276902478059032409050204237163795121760248606735977507902663696429141041796586091794384490684546854194685867522769153765835427440557158313458655308346069808706622538398390858532862737908173878764843298861114686697388486100265682372421065382355511424113586955809944242300694368889320605425039164500274286107942862279048316418830186631429291330425883347191498382825393853618866630897372988634243383324269282338932103789159873273971747270488142281915881972557263660749396605984384416316091806709963974724505969419614815343456818914930989760933106193659859328383937740608416833051179146946482944193271105499754012253295107012865302613904143273330390649443791578991186042161750559476362617096491923029424862663070343325059849918851834459486426148517315035263536320821723893324666429401754688523400708910915715026050575509540124010811959029223714823991691369173246822138616399011403007809519611516658199321102303020030771707316299069454343033580286516411905209556977194193560889710052629255841685516902673312754576051815459945843816204819657748813837247930135892293151708725559480756543340425083501598948300222303245259460093298450699601577989412687793477749810263477272319189116400866107642452744488200724647893871933106050832325403779732056146138392228547875525754406789086673926409511225048485301958351793204954305367736334038456329113292672598771345432673144201854739811461199461571856570696338128057980015454101647185894143833819947658604785979797488871017194709252714227663670199651595185777238883532931862352865934019598401302917655428207579903688785209569145250408702613989750105052291328838342449162119291431949423726136498140310765927703563396165301344493496431729982597327663738739404951081444787889725658942935644457453654352563162565964336019241811231403614226429709082570765318913582529422276930361431231539530130822663635240613724272339005424936657845732631107874000098485670968286149735323510473244436088577707940778424733976669010395252001217946065524623386093610724384821808948816593932879082550896035323516984288918622421811184525914971884117384243508402655173859310387130852230562614614145987265054079946395320426791411098621016649494534109730043687610627622658448655486949734149029214807349364571400357292347713009470996521401547807129341471168695569398701407213166643348207281745030272280754657412790448327787807690671017075932865782950532374329899096740490393699011977010997514682554459451848009724897131460028491417485513139631527921402641258198606537878565561932417977765513673350189065506915089723381507786642877656719525225816961844414828598371858606667534749753792076620539539466942078296006006818963061458501729292498202091236677600466117352262292384930858676926792482230267485540183908263321416319552420382005424053913461489590897243631434178940232890347225416132953531557932287968545931680506219359836172022771554189348457344586318965723725336905851151312817511659024252928235338753043239484745517270695824779302899540414789600848396360143990604493708929759748021941241151354357181452693661908855081544757051384173624753165092654811300713579433094144335103953590011782760229059096638993094770850656075079915986146381242301911686947791681063105224597930145660636955044441386839299053060979510807151327877178266257803601321626471970366428307137623169051871169753021221787207062998762869703210826743675313775371925939618778660499529698290689488125101251118468956779107397139786141031782775085901443052886980340923644979177883084481165305655778713817707160678843706533025414329460333945144314298537333526161696521584528267056621650175203360292373507979628546868626339168633089998352352998538413467837696573565685402287370449111866527352090637886124622820995621861145167369628028891523038648590932431554427935079223200880192811074154258416473364659116573091439135597972514134344568461749615987636063360427708397082649178674616257153404500001875765185756579746828718762133218756491145898880689246476875595940411441426541286787381705955111313448804009099948700502194377792975975186712946571335134003943929993230616787291153582198321133062609757727897063134835164371031195472009412431716976018042673596548583358559962569623995779243232564691233735924222651288159896806580378139042332911236946745427909992235769911594637084386537658562355983675394262330416372760535895655334080876426799584758254963476499441327574483068383587514720576861444387773709908723637910237970185978630286329868536470908069193548006579841383406360173197181066198904363493620354815949099600006658485657069564983997759611970227353640859121306584972928861476475181396181975038420739278018490897960263413519604813260683034292501276733208282788826452673869860174113734861749174796663267900458787361562033497752402543336536077139143695370247040765062321443968150468346763701475801917298156513104587668458626958196690564902705189962101922757568202681087391558792769609721370363184221122985671805546487061340806789857833216552117858712402118464858088909139737356666539439477988190925110400500857436992358939216567358320824227027546404588571668630062281888494598576435921818109738203098719174442354523278073407052595346416619446777963323125878515663233655877163198731766038414082987765285948108557955021525560097033263400679641580053895345949618367055449309986765687019005897207744297929263487483497714821517651869617037180925962408744876875537779114775915146045501589958884011444217278725687525561249863047739738782944498626156450778704792240558943447620673850596555880180420797313564559162013019708496467375048779399568947697952489360846118243219896806378580347467545094387532263860419419304160735903070247811036366548650524374831128532914945078955413166937416756381643901699544171830157184331252064590699663698860293159989603386038495346937806430809846589215841324636701469933525555695013334578463208911277538775586866458220188038451077196851193687502848357187233441470318702443951204091857771787345431258235077875453900550483458321945757572610423203371022207701420066499264853865649944930750284248808679746333206525374752080502140926413989042698792020592003401549804025608820249170559183639305175491133765263058589472319985191914522074518747788579140028423844674093567037162274986622180233897376317783619711426351028046018320662746785163899755197644718953651709710704138395919557563912027180542811452843067895288547335809552665126917743511021577083361074101634605627768968510653188809142762520199744946140649672815119793639758921927225077131550241064323534100993775041145782204833392602434244522982638551883886089035840723609389841816821553935835244639489390352006981625411065504643934375330658367941098331141433801285515142756782492839803633375671948771244058683177648160855632370316556066133766704911832301725555830958938727649474242485107522336404282651593686831920757969810329303616165286713542312407280411591427035530686870805287055784321452808273747219135176194840624296966656054909854759220614976118163249940453828629720076417707700897567273373819968045747093079873219112429662421028270141648458895494113457734468758921596187928930228329256928683375632277215336020823453682603978436609380171349403711416722996939744083335472662639886975063450553605189299783915594772478438247786478519045618617094585443310409583164535811805578646031808380466509469187705591713564892219596278749359862002421438610093792578924401272555004101651342987291127169170696650348766041038969828216561711515201862382877940575740009577644297929497080799154572459157118206176592522839386501735674115966257389089710414610245730310139467260622735755471872182276989184264326733501706341500373094026196728935647195725462141210500986613444059772264085866582643842335309088876627999069452065518756307110360135281615218441466095717288257244229732099594161281182122588476065995352712160459404705635165787475499219254857019456070143300911779406262288760080562377428141890572615379636468345112638624252316863235481211888598908328661928238685575426924056210745890620662655021868533100116615515130989537990440472403731859555150059676998115520800383539822695421621707356084803354973675712985325161145580268247485015388672342721594788468235221746006561110161245560163653464959846711143328239139364364147595872761861413897037480513515990212495695328662663763083122976443559298166590167865158213312421786840605733584979873917396494753403231837262635341146436447184236799491345772971776961309080431058631549968362159723560464774920162623180690851587972303258546339143676354441049996347859251363828403479741130464358534577424091701239617118650835129669324841467642657555073415163215902319910831016325646263409467075899967835318952583763783202180763336688293986332048001279698635461036758382433876848726336211282847353584714829053643332850802111694783404418341442622334756087794137341843974115051399822386894559028312241031660765213485725307259365763793988398536835596792048603272078692976111108819406628569822185183984577195679372251552943472471274603003051724442704966637851653644918246107473315909986832319899466824205450163573521458128217770886292553852143272991473987307228588903794332089780695218387590712149032363978780968897071978439422740128166318006968938678695627407025298649076591876674837190865542693720234798563093871026358154642845686566095608444463661446225259016228963740561691720707539206635340273192932754252580613742010746770007308629284170863022381988778178822884608561160937118194656146526415455401725744264904956288944037165580316303298612620794723447354198620003745026342553145022136103064297019788016976000802880478955665382402609272437820125250044435792234392454684431488355483486767078375256856748511330509470029349546852465212330443923050207888774886223268629931006182561900444213247125333702909385032437478749507915771897388782968693132378886935319297258984834864781479832072492154289349380811664643946678919592837981035255472208325620458451978545978146918992155173139773065014816092884924471612784344633973457948946901964233326692614281264023671047386847011895523191574474019606921663355132884782347042018647271169937902449974446792244535465470308530754551627486814500480021076093033905795161633091301869801198977030465254221126335393047245528521574440135084853731734100718668288240367209175403097976532357669305192365021437055220461702748100557591530353736032244005577733948847238341184467302189494271595044618960022791639267622927097574278876293782172044403290567346853924876339998128430673287599954227010154816670009193509022481560329496344996130163779456976766278829355358542362294982030571972096379620011112628226728359957701594744299167610540740077730477523650608986267021783312305437675275124223005055088267652232881965527866422948945738783202821352085772420405278036184092640521792186291634862741531829822266147845500605431137260095279637479306468939978260527936348742494037836519907501855299555589958881739991291585545896431222952336383268106815879534563673037595335418896471325895652545295809631429188753919188880030688375947608176271514158177863023530482383362395962168895481379205761768796557194559115690597643644907840691869564255444068644486672481386609248219039533637426297092726225389975181346790446797532295242109957607580129203132119755607396039394429721758048677280571788764318086443502116492418439818114727679595827734048778757582304640556734970586560684108231199333835539342739002397361895748915762932128700931684340975115364047076093262306086197382440469361149153669613287102234769226723910652962725832137431245959133207113438698052883300061381469547985173080126937593224971555459193730012284608535409204771451726686250804683684563200378145718257774618870053707530597696089447145828115449744148732955249625070193252030566046277926006630170547740058594981129487897931827423639400882415231797114064828471308019546907633581620501687869693538409647383223868200153674760912628508127566408415334820802404583263990712536169112701184272488129106289755039820876284951421426004369851102577538749697252087870472066385705560502238270472383799305907670210219456032867444360161551372800208654557699729219868496370845284442894893634250025718235333748598870601073387937998861746513977889522640763434171342452746780153799535421831793303659653484007741337001039360305338282592152379417310730289989297848519557361210235531889360128022874446230413692690227183607380760408978234829368052835045373926203360133360069217726339629251910797310094167357380949154565411426628457272159772174446319415892377042629521214873055944027352048768780209821990129459157634717268404066893458939208214295750855561705177211706999822846610330209588655190839406437770225728445090818134195407223396776435354337119294918012754266208796099037620143761584856813872382120768773637056827384372289522319630809359831041229365483096883646714542530247910960891579235798886686303156850764510364695055198909037892091015111033062626518146677750200112363146056761850008918341751010185259794276017392282697938716134928626396953912927779867131210854808381160437899039218712881307027721168658269259894037179409996824547130945895442598216061616871270625894841226047704737259478387161029446288183632514291601492432461221189079914652182885208411623609895780801014803270547338358046253585921843818606317403081375307929917159674560218243883688953610824429395291656620000631337321853760445452872223855893704481059893664927794625069781889657584336532133409819951774659797864398172620956667953930569208691829692766842164157442900397736529423478511285627509682577129560996845929234734863486220466148827902781056791606389749655066692626202865922995013186352730829670581853463062659524248153975729727912432002573266831056806721240656305335995188952248209490079827005208460667312545003995084553884347532490524091044050617594728826731019385088375759407732795159971410268695983368585334146762405192563251215617014437132514043989799717591662634261752237828475407109065265697835534068807206192769561562012130745094267843616581302931693033128452606038049649711161074745068271434981521984627484809776011680095357077487987612593381194902908857699603566539100587454405235263693042049003474206758959872220069362810301178563352024317100584197527864110834743562985465003684510426762033388660846658660675501393421572076648302512639547580648954853121692239287956490382004205090347925850957871249602292673257214229649586631661008557013084908147211706327951097849188108817936978036320870718561094823076519653734028512951660047506753425600921644189520438020386674856127683734029332514836601175798729943129547068239002457919873634120613917617956117130204398867433765693899814332387844823096258232075685996030860620385573680604130925873437449794129950738533470444696082492377052730601829729120559450750756027756820370344378315355871122750297052367669065000334407182594492580348509906584498864259189581972063814503759367124779241021757512486656353959866246445482238152915764989070019327836893781388040566331755820323324374280245777851482879442084900073774909206329022719353826437145805863796340863599032769087521654575813490305245665667565882895584559733900130927668819044402865032419841616546112220080261388723933234672846113131116475190136170499336108075933132818659458909863038409193528013137716719515787455879137251562401700444939220000006564715834435430402819450769800404924899306433791003701553504540552245050994040820728554833172170771239840704960322676850448599787967615572561200473167974530380133433716182301106877486612658458334044633673666812192209797310493114343839999053618796301518485922205078106717108429776947372531956293142789080661518632146319157347484718519100401487039911973541552000360607606987660319823511335783219528952381982922951750130867386491803173446889733674925550959234818837072076943203236449525272320185181845469123914896164805970325898599267869378658138452791416017743750844312371599126674204791827610315763086299546358051369568634523775349393456104092829542514751391164775377287528580007999478941195043612381637167307234129608242770220884652949922417212784777030018299671539500758770141468653342562781521589930753668050481644240386259156433303124665195146880510721395660780803503456228667593232287312616032450988165917148988071123019179212455411952586128014903589139482119839826061207643774219449959987281239038138362517819779906803500261977072148998859233687734261679129983253084590087296468728906098756203973504831639649742659330110736359951352928392777823710276107649832079212890480894953137362886863382772322422159076856932113802542914674901576670050746246707947071811525720479153571860676432038079191381588385507682202031511642626917785159858454464797180477176630972965586307139284071696327631271408648464001310558051987864356308437898719461740470402676848603922451828795347098616002789997085551434317125652128044605038194381130552038487644120684502102597779182456658461661674649832208383832852259469989521567065843338645674561171031796936883404715175841048099243230296052205702373960083453311896399688311897738083265304893380005295983257016712867206561253563215313585626778739097017138321649628848525938430725052120047700205487600304074555652403449541966639403655656674491399002366056216877749386240065280974992442177655129181167780751884185057938131300935395540208049448433010268373295067249193667106448425763961154829683557829109292031827706845322604280090605311779685898669579457155768415585093197444035058547991482794305867111747314282947267585651846504083799216851721975205988239760273416496485541199654627517184862940113853591270550479247935841321761988294207947033374677580229687462109036479706353910196493258030142123377109428602601107866797976397376425081203452974757929690839981631896927828426198453359122304065336901207783408640009020361114716565044596584400381614838715921278393876190635017769764694880955702525644586518392716896712566055656981998329498500589793880895895942846712900360841277334802349604695349312540704720108591578810870732928055814602240370667200432243496889966769952105042556312589869463525150142791271148193620032595768623555592015003774646050552586422882621924826905086957148722507762608737327246340115780054809334266158558230132375256984506449185090827492871894307392336562782313573316186224625215694850421455743703332876931353133516627226792439686303536642618518457169492911076718478731535715591446612095763823437492930811976297559527165679687726218410906990688104961974682747611329949692448838423020195921274858248509258922257612690260785381087394862354858136982980571966705682730718786115005118849095349616447515804319805810345148800467183801140440835710220281785676040647138810393283059526172886077316049979215408371473686162344800818027155679815036072115967895526866972708864209741598371777448005807604708973101554637681977141196409072154647292769151658755021266999105686810150550042134330895596215353556143220800760581906160176296352826352430366780796702946521328324456870370187729677503020236842556206481522280620333812922886326386887530807273787128448420439962950426438763644763099561634344257829121135406476638435600152873751850020075704575999079109738632809827946581558608295001192930068002119426376373689421166114075897179197835672062109456754023498137598138284876688132818594568232866053588693819625660485264143345589266621424802387211756755900607142982161442056004215222721611246140714196060549956476235754590439007107203921631916501811060386915087661500571085669111266721712026777945566415136966354750269526986171208790866765459389950878150598314952238666021399019576959048056369215168104107185513205538401682438131712501698713452262029749970588012859324119773177565134736090348712636773461265889866503939118131521617299032599033665383254366500963627972731137426308742428291822831281927830191541175248379959180973225370951794813160605167415912562536294559822014942794682712452010961059503754583974315536246635874991689515635326619731577777681675239201625761368182344076001072377824437639935407157032537356456499318603991836098816955134057002331673319295408188804100899978497822859128020366064031156107208441542033434769533706922152841600244820350526395096423483188743439259192416560521166759129923099655693391358307302844194423058871921907132933325882412741060819272306814154526365890478263594529657692185719891772747790953101546863749387578265690722110351565784324010193087334615504787278631991195434338392083278996562427150597177526009671167547244875614642800287490138886556356619861410133510878259785952160001888607934180871028898054420409457901861104901475178732123599588959731410720347500290141970348164754943443280173851044124642704709916578857161799057088943144036003502173022061907995337272145428778608588363714732578442812605962224643358887043877048106397241323793222243780746041351338582378264358614084493198272827732210580934184349582475702240692726469112178856040499737580584546779938628588297736475118563280685392876269513416532200564681395541631555782293941943192076536699468029681471354313553760014491584864385607869205222785718295046542621794476608289163352020112566469119264710830353478468581285665930697151163552527908902249676887484930724693188791450390123720003288803136745657005104153898907951204952072004796246536661927541563165324628315954072788541188069280174227420634171966593806942313227353383883508701797805695978734650818253350192198223234111060863538405806409333388335116237469582534199082313417231718867878135194565491211326103949930854191558448081945684554661010205039093259253643863710701633280570526160394708148034150856413677537360431836831469165262648774482761341857464562073748244030920223489587991646282554339606682634243653454023076402070091985893583362986129471122206368182470322875695999162140053827910149132112328219352994687061706828313538263463958966490030959355809885587700842960123957896351955893702398765475559074795426175002528377222306000205729271819854781566227788388063917387893210493920545255014956808472896498955455838707329777339318045299896673739274317496457479053679926139859933697065040302979547605071718226288577168477580907284302754727162786413813338587651706799429799899677565601045311481261118819769832822121083374957588417995009985963447845531083065038401726659134536676647086796082926653731815950313713176399768013778481475853127531177234570466845057690687307342238932988475826428872287292707316895683644885940006192440211023473301771821598142965796838203843542535415121293337257275819662757503661644155293345359358407690738568531964341827137630176013502566052728649138822817208791311703397781190937914342708052727831701889701521716691490463081387465773863800419171048352414825736688368415507206703647414408735159173797885174443269761974392286913520519110918045288123131697231857520688050190842037330265311616816526182682643077884250040874684968732650495890052954997588447164021761013951123538555882121160824715415499775028052696397716263935776813771857915952492875110774654834717211044727077245161924886157056098210620512898934502141332351659989373430385407290786844202017627598336531161067956723027711595771347919022061597669960261291160437184885424012277392775826779937694128600640794585727689895826274162097795594266047461281632387337352821460809943624614539701141594464893035076161309871283996549580393110414054141777312568116073806935298063773425702551917663132115981995765356240232332745779930210123593174489496444203042900867528984370827825930047729785766134317766215104198474376465230651214226271330760276341572488594472699572495700895966610954001029562553953051635707082194113269900845422912732597381401523033434366268551668947764792684685150476645000536021435880006123470618132189672240882535284279878593752572115252217750541034585804917153309805913786557227314953804528504719874098668377549224870520987740916567117511668171901487862317785762892945595554890336051491192841184789982888889808642238093207555251109972377715868366650028477264472206050654350203947024223944958684515071228129913644484021522587722962237685616658630901827081404507749260418624477186778894282336863868713552670869459518889356749104371052075721215897439946740783441903677194952810284071479884504989598269237179646214169454278889051377252468356237875380879950992762207595686559825754938276095728632687536391998904303825689264520474239006009420661167396696950112585045525770103026856310244470634636970049742169201813802899678108573350532987420863797078413695628735091797903291829870018694236000938697516433302964867912364280200677042394812762079120073662703861336151417151096498837809406655782799867707641818685543956385684758825511927495077844532875176096517452843092424919732192583953241446666841435643296448078938588333943883104414345420957418431439243305937883117903770534908860498348119098000426944123686141775594809335126700197639522504628641086128753642993188552215309507817466281491436469270892776735307802938927024154398494307792430640537779463465735201999601090588663383499583373829001594095374572867107008707014688194162883224606150219607178671069779439541395644001217048486768315493823618847202743351763258513450877311147161630272909634463824290147910552391824261133207356916606671810073385429494908360776026251305345597759158706306449210397899160314580216390782793833508017002289042072847021066978018460122606559087264974768935929258528859181631396027509158481757358305102811316951649164550324218121281679089461788762014746491352936734822185760366826635932939869505196504581711572810840716801497239868552275346830814754509028907451350138498283812316751284752677141720973178475571538698818650138439664563216130271337183248708857959224158552800460246257324055576660177021804633046116228784623488559196135111456568397392100336116815542318421206444178478705906668035419604544892605674589575095165069830437241907865275219811655112326764857320715077829470934346372694547390332535178671964596628762492577205593591782902053987742794986693569891225153498151621445584045811146362993424649216514843615769071176143399642341145626014048274061494499851882962264216122923995567801778075388558040259522203874097099433915740331139556576695796811014808708824919278863505655990171459483245796887048137074072122269300889379136901927566699079541703749008083351481399660217011726537492037547622473474781921211196840530545772583746381934515800723088091918144305100969432354397162522624332668798829685935398137277682000371232238423284882932308998072010463912808486214735384391473190604669546431616589960352873219755772006444247254211163266553851507523007312307995610375257292117208146443613120754100762623264287380809442070256988891369234698094097635309575082178734125742468146617436492579762708280671487845564150971665026968410106235694904575432738570063415897570560565628338728495485768582798704373075771326973448772989924375141548053390092390078238865216762511518162820618562643696055539998623747046338519222016049067597651050988374559414012449461957415331589448608079138251111880599668737236603901395831002232903266522690201576711465729942192007707308311546558283212279268847660566509436310015711892032023479024520861118852171557092581444237084782726419652872440663525612605514899083544156886307163871543277541278364954540922409505402935167847693047314526714209959805090388751455066845247652006631169767465116503087859971966420582203798522602603692924328035692209189916312769408081869931819785864192656574476752153323599980675187565023960870362362050852153664633376115541357790964299676327624855638491495772062704670855966719337630116299441717529130868093678602855413532191794408991468171038511365148832596002853760524699174889267189032131778825098447976867294672293202304109145546865659017430343364687480523613219852986607255933980078698435402433435023669780603585989963662409185413534335039138552784230789908956926431220567019027864384177385759960730485440258403006794935750902411061999758316086528424161335703733992664336747882563633691499464706954291132763519737769619060304197889408466301881217020204966687744509884434217354377316100187133047868166649223811777015383353532389921112078547726869142142760989950007344189774249525925406397454268915765299421230977909132454267731993436295876747127899626432794653304274461470288437373423020922554584756014892859664174907569413575367086858367637949015522281534519685816221250446889904594899663316440710578891728917583937402387540095887941293680147715550007145065840377415570642591818461870091078325927659288760126669708309873715687746013270876465211202293839456236140461970473141955842803321732556150888159347489601852795356138443264903890026301553521145347528242630154154717514490315071759276955848771334422154860950963933590633272131838360486272170142332273731727161183594489974424014882187164033025578424668269063830441533845267728511614982753739820230586332481349050470386372671951991598382074649010631457616165816906366886474485240244757607386560528460064325021779721199248595270696526262255188595492955815698813167673648454298537553266554145785883187600764783986281152751231788707983792839004185727608209163357683472397308379656455752328333675864956964006936026894944640158768147174439299776667991274282726839129616070943429744302875976094877317995345177091971197686390475498970626132805416171824093593412251964322955898995213151418417456258149512014285555309299150965841687144545121462419002815037754433129400703833907906457682221997532167756890025483332111407939118351452857426906570901751089445448413225944470429635514570000535277327839073069723705648832795176825913682090370202228692047685364639769847723808704700908728883291166821876243434639355262129879823785629784207230928222785891525804060285128123315814992629116822519351269381115263046032622350625629546152633422110997338217902323751889490395846692163045570386811472858126151293707331923231795066440435100601664807206183213600135267198146376399286293468840885414393596278275938203212631537566976597643742427674390990303828963747531853657874573079681109366512062353957304948415240333211265727946692317979921525020928911652333127459183681268371811047125434188114971484980989870403565829063964976982390017027521930093279751117124829612766292771325719521671399100639384442219655097422197960843981979409017732268424041480409324919442756259899356680440403470375334243872231633557702066662762479284179899888396489546166312716106763398787250181623972784472777579474540012033074515564743070461657443905553350942993400663181503397934998432285157437575506040393312127533034797493958202698743452366874343398902605236345023626245810495875001038249467289974269901390368062173287906082218480452350153145356952289905133031815667235097428373584977873777152779511385097085132795869187712003614606182875223842956242535327209198212758120201576272460733635741825823780691359929641526931230019944899963644998934955769586813645720740836490978554986396497883677920985455917571043238045051078895646410626770200085923900517361499113887607783758061264829232354513946132089769307503137186156472768474116357758333509342317377398104902387874486527900543280007212841986296156200738323541016663599820504439886585193086533807160290039566466827995737441923888675916405980382046448949128776368890353164046538784198231652817770443816346642135938282194196905310510898770266607672813132688750343748885158849122639809214596578013965152718634459574345605032111551906915894245717030338476766562093926007257966561449587718563005275245792080688801459747274988407902070068481058493665087241217488457261257969870223350846780097976000171715361518489676967826736686425384555512105021797759150307894556068374777585552460602720541750536769645856448047944640508988257992733493398810620144111785731318119854869427585758890659151743472759601973046140729632509437037537417866587723045455033386736441940249981413120709137486277015686562158435473023221886085871424021641557566222640384159311796726765693253613408801470837311713109799025741508788303575910023282149739336857960397863954976098058266834399447194209166244276903945093403985481466783460039904846262139943100601352943472323257025089996122768114847616697597899079600722128710391032213506051548290655718060792574429898049473183997788667225902371468404597042924393408105383780101353308706149889415519325003934560622615789286065361163559169894716921261321225803433318870817632736031930378265633618092405624953925730975780487409063017594013477423013445203517525940058967713704497168835616176637872142052995991954346176728229055818626225357242946065859165974907562293118882512225739247481475136115520627024885066356116226567306970923318882444117829747059380707489567005623589101717874290365623005597025218893228395180162583343543160141396348917212914231251179948253392861990522194621243551170766028252315548043576904924713711365079034240678582356911431437471059127679904248000925006834506646201285601250955542721083759348200319733663271580834009234086374600266531136867770083938577846079320610541094497670156688023547231703084914506260021695371568729227385370683725428887415368836837373825353556833860824501357983125602478065450200260195847160742471076999670545789422816643241421453413646383304246445951804605029587890705990099158082000318636894979974038244616618153505782329844115719321179723520736553884956357106142313349729194763190230803100127269899909655025043229075413440256146740935835843223590478083272427148306166499314525751462478743427375279506419761608709741415021677241081859133265420595769767043938034187812958411785712541156078642364382387044242317680715090645630724435975577051907025117019093059698865217421214899893159674492702986227631359317149707183784410977301485297799798462268624057023572340416963863190587083736421475203655997078454091594238908757945450372078345717319629966276949446850456940993673354950169339740568075045508731947761793644094851959110219851004676021519571439280037207061102896064665135794785673470345191825445624379709480663741085002889997240226653852939674249988610185323425088372359715041482521216632823296146577016156936694047764782019082641657045496550966789998343293236098027775615266879903732042752073083667613462717260740754387605484518495686605518070717313865061842378093081177573518653523777442768389669433861211209223070162666468016204494282925334223615932354686590507826533387474020100740076723920082834677877299867222529133550221045451995268790130781969928053880565186827703379262161590447430081474164837439737633856214299904806924921254072738173081936928324968572423843879002240911683748871615709917630215673019889682189954489269506438641282504178059489751114800647112308347771774000043037948781246466494768441011157710125824748227198142368764682731848472404024179976368384574203466056767689514860431624871142538030251662520797090387782891604199222268865963286089876561045812197877405796370757828667566435582179311928263560509530931519406846294815036438102258618092251279755005893389586557206944301150593280438280246138051216434826065767014053022889441409156560126379571487218688996309625027548906800791184036691367220047640244931183575531808729894867568776649096463621514227697187894805753690308987381790348811414624103894875120467975186086274386501231118192531968600281500393692974163000103011464013618259750090391679618892852057289685396239299541484095342279821227137828257944945371912153362507690124596903924516322180364429102583380326324302462997335639540701096688572246882575836187084072082896319703731917738537806054760815183557555999449919696515113658240867810455576193052930269409551825401645060511395106535867737009292015990274730684533109653608691662376153423150648634255788905729084066782068941741459093875285473753276090096202824519837178221319647829995331213508988300524192570059392338289238254452499813545145498195524577760995615923535558431226939721196652077458755565683837075548183575163347101028115700813965435744690749028360670173235418428312149634951537327275809280657961476417818834423098277291075578366877572399341366915428209003535330755337038674851441950001866768565861353858512776883982220543884342992828079782590169044393197527949959871534137318299813859471461251759485611898043005147292059862700069933919211952432989684860033862336086605132999252000021918637399103693990119248326949687966063424529086802951000375571442093905554504951617691237572542966238277424602052555279888128881998766326450027262657461119355354164813537997728949443201174200872308632906647810341521314584399908376542379643000951145974792367440070114857146633927141039898807795959379923210777805548652965621337643571504366573964384576278948636966400365326839753281674037600321145181342680223412672559918042167132862991768397189731457071496781053271093811860187543874496804816380063337312217206411115322739359635105602782458122082941506242191732887066955693190266260976211065601731409102145071394884559374126366410165909264783544814582923587530638997298046934891891396207006980737959011140471608126497916246549107905937833272712455756764712343600970552224792241860288258589570152025241730935079841266274221496273444532147007849753763027370353027968366398155650175253441995492075566321336159772392000750513770701847281726760403392078840117203373684792464241524547190792992038851628330320527875442745615223991229237892932232442984995077585193821610709451167756654632488122533080020393826527599745031328765435502595991473601083836999023618344762278373641977588793822459189830784233858393412534674589344558270261805019185511208938614292185718946353216258990188317472208713349826949535355517210071655925580038050646412837645103175508577675770847484373461346862649679669697848087907388085799506493385251294923057103692234510477872612164669571258966442258524919783365909036194711695902157236448214472937372899245160989671278257113461802296832641268868296708811536108175386680653350899596615491593046580122991331557724643656494596207159205796829326256891816906061326187782470184114823223958822716427904669330760496996195545946533189299713048212048761236873914754965950640402760849435301114577035480750482408058197406845714691826866210093191602644058273151166896791097866388067411831324944972222199098211261364144730455174797600639174427963608624681746279612600047840437200447491515700282757859594679279608892484065946393618475530381080060296334503570461015832561732980245979548791373884041219278114860657827431606222209457782810337567183772571458505005521284456005967637178946045044316165389008384626176990670988785288499756299991200290831709357383452527611560759613226154890153465389133704805005066569792335973177096628916107744236139124596221226080864281346430281001476633846064403167398915718708289041456222879249786393862939785211114130566830983136224374374008048269624078304248194442546851035786809220026071483323899596471450555585120104191127118418271002843677975489534341724276028087408184747596834949800989411557758544977788649871272429422276019629323403221780345700633412607316393758103584683291683102720742782999790514246314945164468860232840466086807902658163513553042121352908972309600928430807202192962851027729106553966464766928183273127160587746595205353026978300331684478793432370901080372441036596156806917625726174508976629237871019709792077200214977456475217623668600183063226782963660865146728505549269411677901956170915992670697907113008099881544510695662278614846781315809412821794872110825368807184046896831251161920662494553863816681531824149220898628116718242661683595230718587767002788754774316383915224546851150108847331734576981304628159840748081746501773228217956763256573761667276702663390542071285153480364120972176350413044695839889933998065646827677401304945991676126719959137514128230728427954724704349078643104056990265755727520067793257798924132820085413831947684818148326056211868926883230538995027152167919227445890565248988513164124993951224835673669707624757171558486107749866633591881961150362668969507597275111628907216433124957442587513361523790117441911560527705178252682502865389620541001441542242041319765159517839869132061325522774647146339959012594225004975161293361697321188636996393410670698562300836995419355093133102058392758359097366564257052938901882181988918580340657914483982836485094789218734845574761983320810248604756552040157599769999224692816639616173524333603984168614051777068646019721603457978088268865052739626719456175767469526997417041973109287194016247311677339547021097795028509679427017434216284812718399522378842216465505647081728746072282790464814537948068592000203850986081904652957996056417237891394855398844663195088054375753350163063766254924538518383828593610865746308395726858164306348841482333779222533298013972552597560927454335566116960689379339260574759623371982726075244932840875165213363077423905328199472562766197571638387524458351683403580673580832603854086554956905948570097703200076075822279087004392326848093434738087395849102376646494155075116155252398948199463113585507336046967041790886009609513637644032991150877990555478547557054351373834075742879315017238420589240475467093905117800724047533970212832653395373942614411472380377464656912955759296341524074409348668387475384707695051119239536887692591774224275043806663426673348455505033249857698236707688114314431304808854950782298981909636225208399607828589690323874279215720302968374358768333408602448143871910594396408588483800852604137637810659033372152514174065093420309659458889876483716196289147168291475639323623367935851000112121169970805395548390383089273715253912844321254043405946480816053343264478365834144810190620157891314218494545306550816197890532152956977940629781512949505030037337680746336026061129289359335376539456257002059155459053482965673771418227268154778773571331615986898348244314465095978780337968234271331727710281777318980548183674688659536973095759158726428893211905127203921330706319601046667617859602237354443220329227865946926577035975758782003739961333477721436846551825718313555588541062058545018095027008738522384089258367331581958189826236742634784345316806821450881171564180719599833156047606987651761554350692031915828519821699080363824538110573831776167198094645443335059265028292782649268422224651794590395929375032927230357027509088868758739223743540191251675226894544985183500648794832926513575482491242701507404784005196181471424189425176979917238037946483425663211382924817839323943175056167834978395034500680924565489441584211372423442154536888431100325673648234528011497871828688363066752104981825507827905122502224282159947709335349633058930292125432949681854271365877856560733709071985781178482947555465805846309272928097146529623912496415782383912607361164802077723770198430284936475072914321875542439961676117231899183851914837138987285180133221070491619816376369685340995485927492522364513479993118756132017030773610346492415724065425790797964804461867465756115790329630681922517982090023339804353568359930921578439992153225675336569790311395891038342187424011303437329185656338713628109490737116290165832796881077170411856533319206583879993830097791280542794436634960311971994912734595612384877656658463947625942237162602051903139045819339882836765784137072822713275458368022418263363619676950968582960041317989902135135750399750124316423057493046096140469773612098783345131213238394834930504757551956135983138052011718783595111403829021465329213465306790953637405897271275873540260867333057134333243597933511017161270541912628266836873800448415627931685149805631048676223691553804835958034262121382253260136275227448587185542670912331575362127228133458038781816486251788976744792959161212650175610172213506421015374297228616899756625657138166454435725179541992065478929850498576892905069619266013095024056268473927468111423976316624800561680027763360963584261948538330696791012746991253862508546328030743083119692932189874775334581727909621848542319187091832623118725640142084473679623385751672593835314140488248115233882934056538005514743309000726163232815870926789496066506386413850717178828335373704392342019633463716540470429375968504848718346356055495792923548998511046226108597970707721362378518102759305488333623339676003921376291484597911869726757493361811191192329518272581350798479616746414324933090298669935054596490030378643829077804077082315114846783701971313041251479226902806641268317760584301119913330507650379238208853876857297536857166719669272997852852908151271690817941955183395920182375276991945105089881101240957303896886973093166622647317148868591233715778016370363181928190938463349837474266876279468402932174353736183400881864612864969611320176597409995872390690299795604441181446598162752785426863686109585697324017836931761275098445786385795065479650032790834204745188568701209187948784033301036370588622348254729245290081250060679948801336299436819149204709147706285900033573962516723591128851071090955275028919910029741481246265025832234436225838257683073443087574347432475635036180816461380388233137945950236679122556621749775748343026103763603085657602747165146264717066018013841556841706359091075511364362722461242786122592120192036520532954949768015031473943802191362198775708766484136322264315305495110399044362988098230969756298165798291463782658391942127898420588712928791684164895931828717429987386427733492573088090101306882849183321212092041488965675324980161988799755353365918928840320668855074927753559154281618899822217363837704848945275705787305054724538866620906018739912777172346995245650452280128711606899649172697297909016330192023424298701414593256225249963976897553748315887688406785338529547832195163848037869523517554962374985593051831128070101938272633578742167140654717849018773115475380506063230436307527934943700891063704317352853554552097211414186679500697531521148188193216418709808328628485432891688095331486355823022081199107475848246619353451679850212983597430563664215370931569326970736931435474504672117347370339712151630938086008971655609947663807108633688803271699311487356836015778804719422229371391705332981695684325358082723279097690135531891660030159440995429593027755521741932559583062467278858554386784289125226307247583215210028753198127563166891896657831436794927851472722744057397255452920827120215039987851314359787592797060033218761323992161303732997045072171390938344600310078917121875911690503886422215352963975715694879434247114784297814021182423793003582671271417760314629613568434210420549061148792604147291970724217952070412823083992060846970036274143072508091794540995956331378084127265886332324470098922624990394538753652823684831985696968220063674702084260624601798229916198861668230380471110356021204280397867477009318034731162001766759245207779629662494602739514537823140146684383069189205422829720624981613766316426466207402273447754036212774248463982755412286331618216361089780591691234021333700233209048647460686449210796380535232333060681454957880340631965633851972711596272540471011995884756904261007313361070693439558323531218109457774652221950131313654038720748946856406850926586520423812327218713091665299821458414036205992394219739257024004479282133390555986307394638623992159670918623406395563547835509727644501351187466669634595290784473507346289945719135871322356937910019686946674169313655711119167328251373932309971142154469675198243225211016345219261534647529858148455082655346910940173761470329109167693433103922413022320738660623143467498035567465705200427890656295875083559448248175926047683180675682629707933331146087941312034279019192914227103019748627137185878983274198395661470387536114456445625709344292810240849661394434870737668630061622532819553199623779770164702117493669087234287991085738600939074933267810223452995382544847255705171889237768646961250852911773881159956065357426188728293148483405958789854493141751457147427758993569129506686055652779914280011405188479071628648752890483059909710152904743806289663203585405887336014706712584531131794751424926467221685453564954593155135333598209534190667468746968643755849299256420623474271501222287598493776372804968760049716940340189798699170040174371979883359788469359549910653245279437638749503854938598731916014241352622791700500522695179415029246541654189689170445913239115271707066203339631574868598466031317058461295427488884882500686845273447558048525000551938028352928137918024933415877700879633243722726782338952232805206511042946931773637664568492898403252033539216986177916697492125591122691182978932785712094870025077367619577391320744619390992359081929514725136912134187732125127768934875217915529517358842341016556230263580375839067925820867619323354658250085691032955697761961710581745631309057734683047699650561334656093933670046195999119103012570988745879074661617162077105326968534045629257889957662653829860126375902574400445020988087042190125004760529381476800545969361861649897290762379680235697355576670786457136821244878858103183341957483934063623852467896413302561195590080198212444781800954633278010052829254524682007113614068057542307287694770375719253654623774980101744361615217822819772495275514662380341379697945921911583327497556062344078061891685348459479119552656799482728231338226389564259007650995458628268443899945371031965303878846526957887073395688350830177862445776372497602393881340215084597385837417835341851890074473895830435535888007811446031244896354645397690037676101861011809491518309479774694000398391498299557529156085345695793991709700058745972097857103600880741274304827742778593436681568117129373030115052993687870437746882551469319276598599784884703445894504863932716162961403663195658055041355452248347813305543725309043170083235784769509923565871558525896060250542384973810207037623416287973624346366306426514617053055507571130977591847085231007282112238072960648617664484890466288899459909411163663537949417979817563424729745762278980311574412922712759975479020900570390403912652608028527003787389680053547234890822747436781708174561980674912209197555476204030731962327742854683123621731924150609604385656416233685246867450505875301144152458815254402795878795550748352806916785979422872791936229203354006154997385756631419313848096116307902130856774065965878942076674416840646787461294892295325664673140949556351394859487629880415503709895976659226560664801277119285810050488240448817991914676637995504809367755963578939366430759482758272586010099573234177625744958758027847956815514439106162065122410790123156738822818689422233831552085463878564998773845385766860663708257244649591102410923420417067514009822857530677413516206759766183644005502578048907627498427604366091358513948738655229670975556531084966542441177838341999592047708257163622655172205064132913057898831762527857773751358449099653939145803834536671706851371400875128272678707237685755457491632942904550381827913265194999675705029200536651535554075587657800572954700237999754630413147831923818525094353086395212983752118455455905624111838794891036026901650168684881830145505136910550654717440778212075830185618298399522214480779605848288290929273779284420741336753083567008969950640023961725968674849251101072293220152786078531154280092688627308425352342057261986304697734004830125635856870382327719694082505552746986645162151732429711376023661662928806365662111997238701696313181799281982594592079532144827548135282231283451387270988683077850880525140129189754666397136810222791177022984235676729194505083223237023368209983426256209233994667413791735427783233644655841955767248975633760837349344197819863120619260486788647584985861538214317252328330712663050906282243358850616765963365062104985036093753676530338837619660057467064996950732212917455785358626697924587725798212932243405579378623566799040237683258251408093832361699699371011858611119630608660946649886741157532626625025844558665751902152429983496064410028858473125724680512286312534864882462641983850348820672931828003387611435319115466489748180412924576040516365658855415652634771324417679027940872784826921288964793294291903206995972749853604706014972607964939177745548247564347289405941401328229280998691341592501500606296129964038586281744509661150596305692024676958927625028730917358898945872163364021091125894582692299368904626431794197203836318788439922947370467025992995363246486302967763851539602386062356469710920150838582773461957817308371907862096544322368832676619307356436772693988705310361260227405171003999296069526255113599206701217813832381298264083015812023991068010154220238557365427505338383954759555051950778411822190346423884539354421981865358145182390381115314660802233998231556173381241400047601751294662107727484769036247017123997465546812375013248440864977128864536186409544092064230564069906300141050753134321590556799667507863313711762708406036538487347061185016308345235139809793975583023483270607042140923827445739880070353980636949642087204618957574845572067251435472350305911472433235655880979779582548113202230878858713222802313835678444818640476134887748060084530697315000399788792421742720990703273399457963875195996499972194699092594239999875911094486426036411377242167219272565124301593145943897711982339825165493947307679222280202093284472872077128710260702085850345578711441097912894497989072968877071880991223796868475973499404304122614432077152338049503292529818134089494204960924250006239297196060461980008798824585303569419068576790934804844123899426217003522916264949574909978055961579123640032364584375306559219085382384010849638907082279997199878746166573708681225763877015777698840532881712150577845724978922700971504627980415862254194528822632211290462445928766229438840898057321465536421261074518709071376319272046636848817320908567794265710366300885774248856816922527358198108661901441262940002203799673771591035096729347505255247661062288425249478383821769983039166495675145084448551940960458710276084095924724081070143532456629106337308004646401462896183429969121096346817359836787332252839380793370370151347327641134774060540805330658152435134246934202606972467966339193945100713319240801232163778092184000882498782021143697995235158104025549859931997534033102814031524728223162018128450618598706098281563690629091604158680391546417546839069669837928622306275315657623205493769047167839681472124697201643539799850160736244015992270650273652332108168660670645369354307939111597910566295625578047046196914567575212468519691766286861560223788992766660635232666589771005522129415829704370614310175525214536489682841384983527273388335819381795979131747689041035932921850779627778434010692604179336477930904870666219272894573086097319288333697380502180035852364854412269578670978028537873142206860150193792708835538652143832454677831754383601446746884470162388957352849431249291868220492287130405469953959915975029817333700243174097301241812662699783995125769554820006979449117126383044675154494030123794459065121253903235595840743666494293745512344892007433638011712057000244593513481003243128239013426916167222677352259865767288100842207987738959212440805020056827877426685909193801744919477137804900244065720995855565546217246004205195252166515413517610546405317955062917218789631497948669881496608061486810606757446302447456007784712682453847788732839026737408668237465491596788491429320176087998432878701323594175316674484441762406199541563409765070371771696969249983909564355304150932855085781888735026774183777580597383232113850721748390772176144952774079867753612140066334649979656846717613277054359785372156269482207360685736313402605204572921436566050024730934934855421777043195558563444503387227548026407263207204520436986097988537334567920643631307505551939169273058287270970305762284907934486096638111847832533970635968007660696771646688464438025273549753344035361684700311289272071203564325806203249822590851540425734324879614771516469965564944079429198411991419547204686552583301450094614021787288261801885302710094468039821777076070846904558562975137047175316527102677766782827377534776248111809872004989337844435419167336609663170687591367869903674683261861883310474367633493613389650470460551839488091728092936012561718633125559690507481181981238001126782253508751660060503820377900729173080406956149291348162312895359686707986388521784036553022666708328071352142618464324728926484414649734472833546581785096377607264148829784964363167562156616955180271526763920320053524895815476103546352266507203659821443068018708751580741419029938480302322604691936321789530463639059528355003789250761959579972182393089993106728501294893356279740969426980425597814341650029847864817891137011975435894402446793657992714837383213570590049007263249929941454381747836227637871477165235541845761454270441887563183476108663770486393490590121944798584525977448209055318219518922465491042588541965733941627552257737505537100987093710374076578104921543837254355711152362607662677809361905916751672719263293990752114124994433838316430516224683836262240337083016477881218067824256526420000290156353608914248651731632273610410562015687249268324785709526542172620112070697266114106622487118576096857017563954727035007976610618255515045866670825211197168059857179347762894333161415341135256994531920232552430460573291537105851704069396240782587168203219012566525103319847113710535512777257779628177126436088241694094437081164984915784562506972532934854166193976540794544480842878363405178243352020693504560641943179949471132791641689820104347976974602675346201116135786141575864925662758668374604174708639136968796644168604425054665695270871014369899249782457884866118638469522925975406099528125140333769332080882687983185603710183372528686864065102861574949096356155388711150796440369985982988019707839137109341543492110363219822429114134491465983607098079821086533273290295495655539125800274586903059036714550699321183400064474186709856859111097397493064329737892663837484407426573423304262562407226914777372746952562088330316497925411810079276995250111802918931155399390025275919713095943269065537455845758418768244318220006930484091128377022859522868379317458965616374837592587996442951825871571901553777881178214294723025837873617049411984150972402820041613573289265118505230622411328439699066078539410978422299230459442638198269487824201569978986681102154957064423095818885446361020522918096595179483237324458219796418188364238300845070982701840396839924395811881729965787648899331870344767394523818764404018248976656563773765610303998257031474896953368830978465818027671509184160784530162845666436481891113057987135267604624611396581805702845022370106222440051356712746022985973817265374872092137404904350566533457825163946165191853790865979832590735067335893647037647276454567818607660849308060586049895662496720996237937294983355814758295735146135658331547507835577600285056682516249321672642450781630125316324894081351007770689948554534006996929001359352521768598426480710723808917902602452216852723231129446390769620137294125720148046562536628108656600127647997633088510359188078786695107658457735123177101226938245602536483499766389834728095577166015686032664337751528698307860761517470110409339729766125157324842495310424073699826073936476869768142423044107701606613803376039328638408447451258044324558425781680373859059647933912266756236652894436040178358334493482724009390292275280573539022973850389324926886618665220167153298958642254861728829011511881026245064997921608674696663584554347038288201825348041826320736440933459003762032553691856298208822650513091942010584932436270917122371421007456586991565931360064085632373383803649935142634622426317546873066217280183605945161494587920597241728144079562289961716759750998268523085156118176501387405158338615090168598937192790241520267351687543525419794017109503483901122011182513380252355657744986402854813998297363541768239282465124199281669779141373746188122515732409349741469718342597615875639457219743710768788206746896505467001969331625896653264019218819540404185605436896671861984577459662833866446466752924361574066952735165662748373131850720478459898785870103088147325574936907559112412616113971853073355523810535416360798732617123890763265162999675848077856090126137231103247303660586909814474609540765874352562041556812972210302751506294002175058008307278579848626243406348631908508612883497180056409806529186647783685490632320030917693889801660970132904504263140162113433663337954214377606303163210780226378597717150899877636106274912585404673295958873211615584656431402879646023940320152952240573813874185614963686406811684148537764753426786689530953958691784653656624165345265506073115662011559689697928430463209323658200587441797154362127648990444236162278140230101172401844657249324941733122043467841814691643428686390870322892367490315017676563807882916044502248848536300355601953423139102620725252688124697644397089899000249306798246416710517291387730674475926883657776016712018737325885561905322432626652637753417834170557860662946114350796689672259210839295124732381656489947208342821703275678842872631639940419015604831020519641651187967487568303493235534096273278350300220195912993220120391357392336287280557919970111026004401803942331069291444130026514489462252626102518433408921375916418707594493027682721032575851364236568317481948889362487720586761212523078908108219824756324637853295888282847822555814368106758363189843367085363011083819507635786172209885209930545069204522289878318939683524566596978021961950782069723701315265888062313131891854215619840486353622617990450397274740904456753017862703439023850393689120426405102388119122254179088705945061898411493788156466956804641344634454698113717445290802857316179641362405840613655248526835133837962887709180608029591177032275535349183092012639242130694902939476210591711860519511515042837168673645283574033195991858690901173706469698492681093860685391470149602610251278178903048621422290925513097419485032882691628324600353106403518037869679551160452255240404819407007053454283434689088909769293765184419100122775006432448552848952000348867359347402001994469325272052712297769265525548976530459926766036387409552269828986773715861959277440892808469760598348849059545429268070563060805060522304630188947319094139325103661052624120689435932720625091741302801779152487605350435965371593854554380844555540573393763734496903429947294416585864793889570125479127290997174780024635596383446750262812025350590378357488486066751032030648823749298841224580136440137220630479525007118173377844340545116511385444603466395848811816696658645168110249386840913895315871040714586189435472202342209190900916890487330225254498483511927130522502120002907596058361723032941898609222329024541930094816752908413897879191385793327075862193136864022850267283581246949636763374340459262789502911670692100134951785863602339806451897379772916321784068093280318302050886603611139966422917192991327983985990706705938659752082799293623435867082942919626740950192789144785623805522200640080292257872372787019297754984899537328454778722358995241054011832138779291081540818761037638164179925444807129043728441795016131116157903811941367096422053642181869502624232761934764377558558791683393410066127652456097431159896203641422368202069004413135120709662591580874283694256802769589134876396195353122149573883325607326370747209275922477854326313474253972809626346622330408652997733961857533423429305964319666988174621947380504462271766816645836943054210398115339891920124393453008775844408528140561208388843284061441084216060475087004443009596801313875516542880265522708042030736162040317062419599201448576385854421560635841228535805112394615981257582211144168193592268726178568631975974538169698654363128273051242542415896555005659935240210983701028730356886323356928546169422117009845176152407938002957946683513518628046188809855178941534298793262229425597878886900935299071493330139874595842697647886624780460497397258977127713173419900043373412325333799332718371675861193982868721449810143338997899014677988592398740241228910965708919125979500301761040587410783891159985801331342799515195434078449943683367350617210663307751073640840718533686753664629933124924153942451986138855887049286984659131103664115158015318949056783247501557565944896019613860992161055631877361825953823846725802097146066814078086737121136407808580608454029267374410139632592627231970067659448887836459073396307704604803543527120792705776330222728186943774300359574447970993803610270326044278399939856959981660436721287858087953423716056692214302263144764886939199155004736597675721879252236110924628927256414660222167706191485135297674343234069027849794327518218510890489959316275493535787506431580123970426746181730374932059805672790091705553595302262886451485412379417668510877549861044255121576481286919946352984125876974368908038041426155894967760778631229384295622198316168069894500672458178019115881082822031676534109800252035815902422656468465240593343086902157933467182015976527684884459584952364208726587012717196702226045723155835307445219494936452559761989989766793819928019312869188869979635070093509074204462190979085749293044940324469505670036088281972456216755633288922276843789497478142304220671836620766002252022847858568706321565651017494190166482008565058939041742985781165632321400630726447604465936418270718280825205664455438960140334864533492232707972164576602462083360597268621901505032701408338439165943935551956944652728337824498246710240949438168959271408700196054293906931269081372539816822964812601885435908965906118422473965155662189843960973221336233822206811790724031596837745307839704193398098200669186664465634182288220335942010506542133880208250092564678125210298882187970702937810654846146888467632752600001380684770015946182443879519544899224429366077902922480762784273633493363866544317206860143046335068596096369453007868856697370189578797485956632273858045082154561888058185033401060689638955614860179729386653368906798324830115129593163081957621854989061519816129235011497858521522698453275639494000557197877320591362079535006084146174801759522262121824167354213037440786236827335575934218926104404276229870691182937198857587415690604314447370128686611647638598354127797159214647754440600882411344942639021094083774449286702199143043176900869633177386275212630679317398809182403833214032828516961379506353181459806685935205098140003285496847379907797874126548442145897790998802224523987263699963499425551641745238858149988944764500601272854618963619896431752548258367370984997388252850495336780992343649328680469336919887072858714147613117266030352128385933130472713140980972173466326307792024643152955186981867774121425471591160416529376716778154428536928851344656028411317082997108476049106005499212107384803792620326790979806404245608289034078331419017668205782573612050018016935729848461491864464835401961473913472204957314348206235220560699036524162973781354979112151265554022341163387994096594199896246561947537361872798894240872073149421405906194704296591509921945266872936098539855677229554413053117360466879596202168755529894874318126089474721554146744281429395127399731492221198323623617848811969041513951522858888490997816110857059112252656921456892014818473695326396013353850828950262310960482743725377395939348984364013616513125874639556038307770313219902792349382341738279349702904769017019892938269353931219949143022176489050252013181386928269407362217180998943930773182656394292582992917017638745825083259147926780414871916916735269905163783639259832517375464015360945155207205424514552934019661923406764139278897522128664671272743065767391033789247556137136967954355048867031957587623758423601500543315165135534234262389558674114599350045583839599470517607715190934297157175188672087947275683071521034982399957976523881720761831378862910958864329281510446427605594184768548983178240721944916392208290072411463458877362514847051470638962319671113550950006937697631094846568123494595170927154002229506181624163943852233856900666590531056700838495259962384649496303415595773326490630532695306761193160779021374330864173076077036834578377007533730164354860713019111732504756136116499723422805413665826670264873442721550282823676195715134002730421803930280462493132202429803273330210480343403627157533938303806437922876403902028157837615736357893615626162386603083743546788254636509320249604528323437673043475328035540250627720864354137546050650273228855921745698062209970302830033953915420368841423883842435260012667962744095520661709203901298473711611561615189972506031846281015619669186906361421733550671003311707253896408734896156701744648446127586926324078345163677485269024045132205442802937804616697251039278476939431114798052107190684109521273123139101388681298931852375773221100788653092468412499533222162568175895569343256223821684086335414504237864608357759822028528201184076602995299233519713432784020293956408990602519174003590755006963134463619823868435981299990054401663031100984656229306285092370615474946636566754807279979768614534836969597015682422959349913121264180057695809275827859367190213024401040996121634715143822684108398753393156636192638168441944854195100846936662823037556327968276726527302194357236613900664861849970711782295669151527134814644092052734144444138303023164006682263548446529499236574177091625837977385647268613459690300672929346840266055185286334242282608033292605793645567057958473847611084393848838069048701637972293968578629282851479019860621898220861492545227486445146840221114649054311461334752478501668504374371676964623841393291166707223985603146516233499767291877123829748443722292934981732990376357665423298874188124154274172082338174176210937962684654589649421601752416982696817848516162002489026256390258008997027306270883854042824164076481415995246888008065896399572535659534987430874906941648117271083969180025998343462759206960860065412063228494538233547339047256805417337981274466329383335963809031633666559050848671369434194479712701383355158850537828914387390769204641085517571948415606959298293280445678425840349002711591046934580240546712975631927759366470697142205279602550465341565199796558015776856671349278190593034548878274880465245998327306305295820479811663600211406435260023894641879171570337141669298713799508193252292845213012391518628424049839783209296546896275734801186604130598126748398841143325578002536083028268520650071574867149279577966475481051951841597013253204704290884730137393182131507833034904618574241346953640207166220435512854843584620356041720575984944182190284850821584618890378669954059412131053303369648305390359654957241519839276825659977264344872222794477829981021155449610064777933678817307094962443480836991846167593894884473836492145939748972354528630817491576550917288595506087541938969580251689168598714141099542766881510946918965585599671505698991263167373736338284464263851822595998962373419570165802791891015333191905680643477770679560914480559384304354299167486372664111426307007912214271332946208227390182720569765255335405415199342620473855709469240587044790820477660807381851533962664746193019455723478234634812076425273011987435680621649528730178449106805655584596725359430592181777121615471777451995549790826538125548747729922867785896104134688113812380765357580035916211986026712259782228372528213412010497736463364643542127221467837452530942464946088397877793744913175156603515204100138359081992291946180530707892358867373829886676217710051050268752536416821120487842406751533176195017666096177799445322693793151671652524230060818454993791848558894185436538868958825976108094860399406706716327524216309494800961282978910474253092931175956244168642154145856634851529349315773138888170554059528079796752282319047977991002680328789766190161338867021526933581698229372864537542470881672272782529808211492429247104739918414686949486056809729419724491862780012936814483419778648355215228235849480004725223333791420522215015451097084906511200221477951495110181729337626760315136978208390277517266367504128480090239543899360981606501610932987376578828711612425599743720892278341656989964185464254201115615523760409346246612868338505554123185092380850780350362145064047770463721788851224490459481486925301605726003270364382661552231074648607379809628550669140222274242802724213735390268038664370447990751692614087360051774952940370361343339956877974658370102660597111833920722552400444910592515722248904750881535811536303694461647791572778378069062376109461792758091674210384475639640108878770264386632283586403088332532954263403460592466877796168990579593395935297159215369987615336853945979988779815185408351871067253920412589151792722647635206564081603637816872534507299121179324931825855445308867561659862308078923971516993275247361888075645988099036847051407184199587984397685695612206624665594359643563196603352558224227578275426507213202702619327861614174306473445388861794994916769752625017975423196689934737468908803938512451327044088771172892483252953562800088938105635593551174749682157029657437415044662246973925474977193199193299821308759860739472534428710283165044903458691179749604084307079090805745943535967758503558897540858991391516578385175248836812748856540065044561826310208981338666848824267541434383470546354337816124206157675065475344958657884721214079420968754336064252169961969274580911761189874689320253616893913814791365851391980316298718862099339813418114150075377061568455093742412993461014468398419445391013470450169545577919233548613000286667821957163061136008083326005913269859503678814603181143104174565994640010838771075912823757886784983001423369387681838284464208355290949259539989013535655476732188687033723537373813021934313492129913214507366169862156974189803319622632852782538173970616546732598458454964847137292253529708830602181826277652010709222731771005572747994152421546020643708634256720291763329063134948242520678366784094393491318735003683163422569414053488477492281170243331737121126495240046604683246519832724861299515237945360540804335421779016860818545345020160554295955336982814309221313510438055642575151672494839584761156234959381955250402858730891789799052171756507816962181146869955435580093333057779206638863178258378163130030830406710241530197830655670879479256056848343551261375463287096336731920625395830710371050026724907757602410490723553903061951041509947753675034798083623543506582895674974158843239045325519392435241717254007364937754057778546587241708429496376032379011615069663954674420669893083422066371878333841625058352797458002399510213753152224110948446099159228529361485464159569138578721176715519816511646287128981825284471860737099835973035865783842936093146803626327657121112086983151780878114154733655125141846022719430169300780697586541832198078549046914476561479610973336271375928612741128399879063171312418988778493750967230058528070289746806829601852556031713007096573010781142231012727392931045819783880697730603926840125727617863968970385583661636929261520427864270685300109976499543903432883001773495277420781611997874189612041713811688595132748489743657338172283220599116719055858370918901505360645956822579776175925818600725879520356233431094756202251893671871948970808500109992125363918895064888853349299873374031044618723436553865188680999786696311394192595342589149796922777517647837858297068718058364257780907975855511661832831672989967005334948103750488998958787767057704357178422566364330360624436715062918019320024647463486489901425127572972156910476515823733914596743680031118317223188572100943396755413067418930451253010747046184057458356356349272462716014628543925587464534647509862087594910708160192074832092786206521640253180326185636222709606014131147037213206026889996515681246160403607832049508787043413087807565547855404114933534200888518554116422057209037411026810546590210932611980057908719973887303573171498913475000090536722919351208412031368177010309108641212361947728011910592815750416578893856552723378600515075932414248810920697542154827006041551345767943058122209001561018170316579456708128117050346303225376198635718025913959360282516304843222964007276591866871728660901136077275631570202448694932506444665252376398898236568986015576720695088554860521041195159878433037357587496791110060773731868829939141178803075137739005716651481014238611801985429381953738634870344875478830627929700244755247606041495106654814590909327755083696029969163565402857606369801172599647088938605450552353187510050198658138890712887288263754896702257416861640168048521615833626460505346473219123701385733540719535629831284989548552656520138074651002382841157625154007230022030392507888995675502683786676160705149709132495959863861575466136842901583825083657416338117805841329406463585987498886645686866272577062902080732090971751589825896661714416370314023146211183168474257406967603253425741762490799263957650644678298878206394296433349964213310726709164434296908857674672081496170618129598346713798658926891256700607419878371561879258395031639746295777984460416978644743327249381730844671369303230625762163815805888320736834115085935499677010382456769383090457633790768878416896923604676032229186525791027375935563747307727080227453941604328041139301375050290531234147779168344598828540869402266134804673294032770063149869708515631848569178143290448668054003318147117773797802455926810469272677305928710305524116525537429910466645597040108547349559534635979805831136852730726219515980592969300254786692941461925585230669297485346018164996843293811398099108857578060610813044916651990090451596736260942354388175351138283912795050749678185620688192554544069661145803459312946515714465154382402967883528196704197833894712812793300799847591128042215211782574774701198643686037107012788041648343909966414378383713202623859936250974653030522760805768622348361052022838548962560236354024863537266658936549313454029852438426838151903190543923503174664240533650916962534148684799636124831335417439121726635511660029845280290023766176401781931527121219256854422376371768868365926982647315197886719849051503967159514402640679878632510887141821324581302295248837432841716294933744658426424868700657703439395242704036637541640983934652874570919800651989839210370078934265395268587941315686967861327372536708557758836523429055377667400174537863019403051778488726970513082031367297716485191072623359054293612719334550556310109406599680332062130284318913533884473383893918614577633630030343030620606562965441187020030578426994068522267071382978308528408788161930083604792608357206880331379131624433673438361052394946976267272953788308906649772536242158381229305174740048266296217799002324704718133860700672443181977319468835569822248704890978342923358018121236300460940532682926015421130085314026474207824962504375131880616822691692973944693107857072555425780932647179169383796027934523471729100594174846604699118606307921414943472364244992867900752776917086727633588650658352201253330049508912134898180750613812642361321322348446556488482685043081333297113221548071120369413227095121533846439026424874819828939494256721667458145268051298640837496711222467620652423711939358390337575842441935324635139939867516310036950134907332926240640581323239617533307368143819474466082824764426765943771681203101158133903535471880650817908450083853554401327344326990821451891473978092115640536195023025274600693405564191192430605068746436725980902959176480376041968298930896264650155407113773620039864570533277028461149758043089999104484489720045304939034091056001305905361482114620086174139015878149709495494324839684136629443428640949237128639862426107325753796342930201506077055075362820329858465793920307067539670398906451592598337149265561972109156885940431949689426242322900691869519827947289560930640444622936589342282467803190101252066403577353272910573032040779606850219717776390615868836582167598143954029727314007463380145320247817202892694062035311566983499069209250113250789859467426935307193301996010629532060744290149817307199752474312157395272276489406250806629453509438031077290792843907655999071122169837293463812384838658294976463467216226092471273394299232758464273804316317316913422958836445608865849875922774999428509130322201179585515504023333759910019512647381580498616295060980576823337334405016233232616442840697537870426475617929785442679546243866836136959031714638950296653416703269265849359770273854982899529509571202240207578973692498185025047315235889135902747277451223403641446427333356385865159225541035757594958425419212685079018630440313555944702030640956326844334619558290561190505035608165084809477302313933862379786858886319786631421417125728470791776071517703167576680683435004550474646056851569193893319453554605746603311135172748545527118066942696529709780821984751546089366107111741372738361603711139010465255759382090636963338993454755301417520569969297663390597103913640678745414060438957382999158107774227069934508367402783558348000635090458890775265933475129455769878439203723167991253316810642034116517424306752498035984094826696219797297087346798783213765630351081184153493835080649096240546996682811265802980762999784940946802709733364250570785306385024473839848141471570073783654094378596531337055691833965173455906520908054564228529698200941382360934569977277747774610891282769307990836529172463673048606321074585777977631767376751428427296969508213377809071697222057958266640254239313725682224372989839511568367695555243379514517771628974385984548968052176870398279796008072398077257916703857787964168688003117377062599025362699762571233090198484696922905436013002073160277066094292770420448604886569477235907579608088952731794271218467781025378603254549998339383015817574751982498420359584487536486683741513786298439544833442890100751412981496187793821962662017449234186161333324733906586160191573842671448576454982428537728016504614113370956685497595726484540345764262931061149877617160303139828253660123639728430533739750326405269369899423417269920167101279338266604241192158783047461792787303662273386062717560240191819726228490523962545611525525574811645417320917328866607884271404084087069119860138606215863949902729371743625633735334169185528583729993826228901865282381890029953845988280265486010971295865999640704948216502190409830614886185069432952481176476659105683000822275872033446795369829918254093403115341767946518508295061291033865491326185058134264117660709254047784487382355775662903929637832395453231781081991943342308288335042809310476612533965765105793954856946287129556250280053424644994178233016620264560241450862681421962066203581314329331147331794537778717723473300492809812597587369645489894753021419789995531546387914718014356135050129176599343197910174895995856841035805519070267090005020839108447976100266135007655590090625144949920939553670547028833769801565583903083378738507235043819764013020115988548482589414669573478685905650669067638866231789850866505422631394708664410060646993755879506295477606299738644047826160689587191232186101829260126036617094863076507594897592338259455817744289287402676892079574651013543709588592136655670973982808892640017170728986985335312060607530715669209577462483797746164457912168590891575449791141733300743411863776109272466484612796330161389626583778376251412241086405067027757791326014301604914319635130192422830010933195165117480517863815771800605644264555540640091584056854959975674648362414872227642828179094484647964275508243458407670041933281762599416856371736517857602799124683531944710747741867369057640288073154732328902396688496141457701424205619926376603511616101115032358673503573929860043115520980100601145952771419520681185059327685232997890052204719211521758255689791808001684422637100138287967357845318549426032275976744827945593913654177819271416667641746788757611698250298300973071995948190927554959255809821504748868359890361259471671248564029914916155699165839366883738910428160326326609657137373933965650831282906749342978831297895618303630532312164146255751272669635207863365213542672101104295102028778865345877309881757750947528142654691810806169533211569211043366428592418919977093316769467745021074274711340655928294606774066121071625268134814962613393808332359565549883874074498847458158914688513746870520688165985839233627497892852063790600317455061850543487803856370265371920712592788162198011559074469606621821683526629313092241054802191820108884487544935344965739124564826344527604194451200665259477447084524721163031909825461176018586128390029591199563802478339372725134924721571349989897251419639462795406442754751051866642681172312009012635905496090790033112271247031694263687899732335933181347239058458216978824706977803271147986870901489720602822079258798522133043636929610710311948781012760790553395646972079417503223645992020489318678523585125316909275438117023492338461735939531685030207904766945201579180075725191621061642122909849617531576644592862948951504507183945198560829682841022527669134931415702730228216185557650371657332465733299709672878234878496045266330343039854572392879060336734235291001785325140037992711755814805161703305251254021831436870336022307543823795633666909780102072574190824773018401245614732265193841904692927746003745769981192290294846852959909507793217526437564426594440200749743249831937742649932527022863505561248569213957158841850690596906909660194538561147466869126377584761329842856576678905924777275745734078503351257503798216665097447969367971883582768189409833682452280586082204020316886105525586118377503557865064774803669326005567103785937063565122470580001785135429957836806538024075387254027120131981563478740567221354172559791772743584744981762275414651643044666212170393586589334154062549308400090396059497117292468047470809870560920623673279449996898549710353271061001270431839588190108569648282728898984833277096534606364106676316773301545885546990313994749128288650247671991929099028047345494703505770141824376802976580653220756034935349706852717229272108672749455221124588291963470658388841186488710735348144150119111898435525920154787842416543568129549598380004364674567501359739371925375085733948076218681455319744782599258385877505684441625575332834441391863489682606068826399525242455400609180705546417807033868120110149425742024758414862171194468158200215171803333653418683463416237645194779229430454442828947761821553550469981230946062782768342376183649997072727059413196886210380983589334444470736189337732459640149476272647746853743229327658738339165657301189549976409110032546290056589630377636143382054252325905256209452913309734441366478030802415948682089157898565918184923722007844561025175031866302301764036124957781023429893913115343590688988549243721600915822439141375485537089831340345982610644821025642488633952809540441702091715600673830940632829753236913000734070970840506383803693531271774382065609001320279970340476760034989969990627734417426821898532136327023694793211952983504677313112172209559732692559986669946749581730243073736495362331975997734219258423245868078097570773463855806306755628392096309348885680852389259174139379589562310515428617663717958145625003888821644402046947932121485619855531948729657451421224372780745388236832967495330522538260806841393402726168429742185093220795347052977534883856431899134389057474346463974668257221090998977994539657419601666449157810266046056856025142068821390483079775840821690002209294458059327383850607731047533797848529180011637587636392181699306675566623828914457907773661207924101595611778330964179021952413602660990031251959019972218770842470327220032723117390409402509361824411017845385712995175686897729169261563617751958851150376361465659904595900009502078023433995151349701877413871459771435213264826047351462797042044615651050789470168743150568818666842724276337652244236143047644870506163337699892482165796318029398129061720927243426877428105510452083330820130616007910587139517033402705277429207888158520868171958965746408175337164428654613166903760639188535678119155501238906313402099039159511842309380762044251767476576998898224957848758305933064607897049225941335412380252640362842416027472898194347364004926761412222777723261482030526124528432793149786565140661754804698065902668339628581715905927615017966135370831241326732492923282819367934042388808166571022842948091240341297116657424722280046472535481319800784702073406639076491747970937653208803514360293970958879437409228276123834629855883823816208631623778922143776112894625811863643831724785642559208130529407092600131580498355663170242830181002333794312193965223557899636713212268552218550260145096200470130019560523484995121933080507416741362295389694480047428345687661098880869581293283853488539512929704072104238310144223726206073429215739163732170645679803979413509939222718528796775095667303979006411194987501374640381211966899224581742220674135636994079638590561446279756079395090988965309462410220097512585196741699305375344141297171750607544177020170359039752916048640877789954559317123400927534542699496919412185199591805963644496088616255341084900824727848084178743372369987661332370394218126594778915906426784333365953467889263959365516283434623024058135245422383024933050923802550709521558236172760009655313851333992089431440763286680637000604218719080814658758550232295815159147719178094891453142339198397907811634633548653523516243492601599240418942589375549318213462696955947082136121533219274736037810408030242684319350025950434212981095739902743010592510123549773162549765234989823341358072815081944292598029971943036983316733760296332382167324818732513980594092058827302040257567620537798291643364502067711562153417849943801795799814545422093319948185822539638093728160956896455661475771665004229941338572358908231335962941638559383986560409709656403484128570405803652507639290567857582896486708997036025664612059111520898190422792350466851758722809990934045845401911941349109155330968688506627359274553237959267504059138988883243576560724255255188816214473750929242906674600876970326006784826164723817644740964097735675944842264218489934176255345700950855469761970812806048041596772816874246505609796718998513562055203628193082544702693024847852366611443365567388995015282140094264077614767589777771682408867181563167021698461143080203219549502631890553177624995226202423345984542465276511455349562392829775042920818240808418609460927021056867583217044336517012691092580888574062252780610363895757807632022743888314549841069493836457861541339583949760757067402243538885132016407240862026397091524055164973103892856435547745091960141957739172221617270936299545512418662340758136564124195450529695949872121673549846574706648762181106181152903228534464263414934223325567691259250807368164994601442480066615469214453919892185580657252944983493808758939541598595063559815033775670918838881489095093785340270540388566833241074908410431053857503808037724598808905722978503376396131267719915358902150317757178424320580395579133764108227565643060577311747626009599740518382537918936905871602915644901282070489971752485257150621764139114009188458011631398972388078556742759484017565511532905473864212849203163587627876595218371452743315845156906534584117583393450886241296761065038036494588516243848557405889948526752988037837825970337997930120117598032347260752613161119432845256562179014501973254846050239366683623747439114774822895805835640997377522673484599229979241983549779602901416977243472503111137860874832595968249910956991723907134756158901899743406678024280121014597392635581414698418359032727201451205891794997246353181806377952484219866789165636091202100505844809469826774132619819144757075560886986244729933090880862186669817742523317608626094760367840949753053586470640517312214744870480294015492575051973603886652201200198517233948796846142067047517747850134826070474885247686400366051563055443475203333967378011107326503303825235809827036449122820156894446219551576569106027738092729683182505302167502681782003882574587854282404416647093756800053642737742163852107074121528318815282305933486598200123690655611416949805466724723249610948941638432709325052645311414301913290542087068211413847863031326578480030644390842267375938532426789346505338951740844955176394014910641831854710094519535460067262187385503541696839319137849613677453347938485214273372669748600514068562936072711997574719592356776166916462879745463732683931419488398640348235040972066080246759611057431213871273149877725403679558573364320022015736592504442426730141736471014839957990994382380493593740707107528516624098549854031983110630087933497790368180451938781791903725705191164458441099481709218863666977830032830767888321606970949048071089438450773725201718744415778659031716662603329576704810386626374595767922815913454301884152714795106888716606137091968289581748688128120343384618682183059784911495472294524761375673407287392848166579613190850980265948246340137934400076945787373032530283759978164859842584519722960402103621473664812037453993433322932842620650068099090612218006398140713494699848681819048167693654122044633742927700292261307983555744782729087231092516731645387942868840203951286543244733643789860758224230453453920119980770096674094324871967780631194703592590009171364541347290136756614196482806778980289343927586569069528595986026692722305802707846111490242580645742094586799102357505821644177533882001594836540232802513567243712809579060809313321171140855545755301303397363351123177343631932858265977984824274471380908358064217453005415994779174243243567144031074828114886313753105237993566930984467442618271217769293820141300478700789918421677412192698389052638618505911346227710693349892455426724390600789076024427095985417867317929352126201858434448852418686335765854502291581539944010155360519558799359143634562130862690701960478012971460165193194095510162119098444741702979625786860690479996197390116372639563179920216440275095649242949325954311802062452785459859384033868659809385793870359624153786284871704452937853593988774275062060536356895535827960312871613667498876866250649870749091286925065109867174904917565509261258753968270827532561381805132704114853854431724156015528513814089167447567454646936987164533735197906107833018884409427542421606908587051900446555892192856622277203935864547554122241118607760702831972126898915803267610308886635587184969701232650688292069209606451754512729804329739222914648231639720529126121100247183734486317093231634557859930833701735683594197441136165354480714349329009386236793720497742648060010720725706762041237553120634797453565351602142918403876787319292027069532025844591804593856612446306151850451147698274758958913506389491824822351759975903165073305933473966893029186110091628187242887334716559926637477009829943854045229480733663318013804091188664471594223798424091427086319563099875954749497933085083729011212803349278144019637820240450666796250808710407053801876742295116638924207371476116124414325833388416170466925429780955919068808482222269120696640453285813025279550164864015698480716432964418513124833944289520758467689570862820351917478110777230658549842235958021158057733694936064646536097139967587760160313684592795631436537078505459451217796162952740739158373660700412602011851505641107571645887412646609838926467720344040106165045133312295590056411542488324043754349618347612615526391888287502102405086432213875395849483477238366304137132569244479993657860107031451440184236891094761504038339716373695375053346466402464281893094319418512942384126690196839128371946257936962831273782748750813637755919717329214437731962941983889861104382582476641731117288654646908068583553904978092001548769352200341336328120202136648514086566844067513110005023809113966887235303233129146019030288139726283006877405322835257252032931751715096593263227467567219582993131502065573935742857627576263868300230321636214038465893272960904187767588639171012602853461597839879121192328520825288972730728164061999878355743519881297877770968964504363106193499144782632116151869627882819873665171018507654131048274120486756890796245671350160485650779034976278083561087296795440561793683990819593404403628808810370010478012454718795487561383311930659716947627847524116121233713663488381519182917656065519254783877096983497215613574656392897609274896265875668782888490665544783146211093419743375434257710302760975807284733933292733303007035093061774771524046819479077027207675049517448040807916040234469932995710954567775133740034464259979834159211557256611957805854110792668277141881393901659862584064806557794466124726163428421709041695793390279278091340729242692631725729801944353723359341139681354418913581286848707816870585694672456216849370768331555003336747625702942420660618595858081603901020195296580757847545765074466052171803667782666727737078473395125326670333391834859505638119092756383950073225413835461301457475471277672603947436463055618014095294941385543711332385119318200454744156956405857261998919462337755415602928724856719540764144237262478325269647708490373087807960985519755402360136855796821755767973406015820217505209986307486632824639839506535307682826756662777041052550409512656296636250496593481325699143268109758545279312852893311083727092099637947957820528817805904362276048253902175167764943717143678172746663436849171446962979006758127877749183579438487935814156481833382669423680851044899949318281727397773926600753214864554094237539372817322351350386037418653754530967194971591023476229145025702607830574252249166039812725986861520941171718087503931452545059353397966873564573597700625973869476748066038606934767484596986683534749952122929803431415378638646091603622732037686090633864786190335634855439276502596993627486684359216942536285883495562907015670003062765981669978822318923530556470151585644865560124267201433268571944642534405232931699673398643826299349871463580526693191540593231702823706979976068715909752578169477659743131481682584322997016156578594542761810629750936477106446512486075858113761642479504192984305958398561110354226372057438910153845818320451084959931963304456269123315883219037207789793668871117534571327920049681308086575428307222695656854392046582712440296829227091905158419253682793631346681312611767074047944213765651411409222502968858039951487336166661775827762640707967645350087264650864583481061915589662216817471785344265657950347795505014105751462215617026684597553857606158228439303985190257574098771169485154284697769591871006538940913881496223945864046638199459774951123127026883470048456753414709774681991361794925607729313692311097351218023392738364761917908379043579773376654492992251077653093795322228320612536772474826988006896989891636290540804853667958076497545565539968776487209386058081141998608331311768286747192254289761695267067361629852458138148762328721628572223024166270241727621831260897040553342187681854608513552347072030591636177995727265864801174779122156838891107649654772261542719484723080210885406362206617905035900047226933552931571271858347421379179466635511302964452793624053600805031833326959765322381616376424587957571816731612535195209985723868616263446322420071985277339623634717004500718477306480230815080324584296079748423031268109112645813898516120544309168888011881612258566741891355341957547516890168173222937377648796043801859331244693528238929144876519739271620279060028530863199199704792394730788204041906472621126800406129735669735026771671593749147980091643569774443744466558940368977595543157698665226207539256025006193367119234934988518762455087428235295582822035601298803503206972417530424846938955061433802187753201366729993145325928209941139691442269842287590586196851116381799747584463335349296834351430698808873953596506925841002604412751470375801961974861424611973839218136038267916283309300392627390245081901617072419174167559251121733938201390979930948652383966119222436328147263696219541657272523079477806754925354691980146378841675190936079599159779080156958614087501503999628046473279930829109836201108453868138127064075060233621386512978055944504308258209070576462556873990912406061196859898919729087276611228922306401057411541609207628457814804143460172655683686894960293407007244097047779215451353918618136813098253676662230972063072253271384971765778377373088743320862538930314241378983845857528842256577358563120028406438219609436455550248125089607903729872274511479390216564639970859831434278571241929520077248929831505921801119380084774783891617791934859650630369736471541655172308140540736612320466526783811414755708464415719886059919144396553905589508002806485910698367936447301455214758863207384214023797155406791340287300406461982234757754529460298725879473073024401326839990620638508326208680170035625011010833783027854182530522214615377454464005563761438755176669420714063936192356876135214070410040934772786774871960453404500499446903902196784497714406122316497391512072427055302276194784173770847912606560656307155140804870075695720689413895366866843152645134715461773534171483629619111486964934223418933123462991571287326895253779557890939692097017916526376232701183140162407183015788221328353203774737570080545975901077463116635064386524986505841496847938900976543697772729474924495851591150841524186851506514903924836550452644363193825380096268741524520125411537643067391929581353294243247956396830547768810320829494298115487036062300545031863834822173537559809046920076808572580518023929162980461249776497430087192072446166755971040071635136783340425927159855042803094391181740066369500708750149469365026474577420586411964443601863324580717551961161364475593316195852918062608446074103628966958281514454741710432524199438238426079687362166869871761861888119302365567933179420428532625867981760929432769240063866695836684108682940429678410056242207893781990647748357206035347458167420344789730086166717828739465711418575873119425618577679314355167283641922427834590076973218823844751833035178859890613781682925446923779262862173404590935507006613292368087932611215065305961529205531965515162218504339345590382065257160041348368969185847040441089214287462398600455138995710910729669911139503554502684816081126950093018979712326039280271158406237392982275924534958939692701798486040899093595884847694394431308107642400772638571115887851000672119635143326791910633141384202909509140000132547037928750953100245029779937402154430031251716065809789037307519555025306157127820339104047572478904666607591618227255762820685959821169090105133841156874364104783188160893788308400950550860694708260834640360342906116096266526596640705153407758373255585678633455251276193044171844437766863367095790906196964116761913194260160007146082559007917167217418799359145140800257027896736281371489112436567373016148655120439122873221194666721661180653118849776769357925798224293731021026902487335807281716559248758222479258266550261337534168939424080747385103119802283768166056729346753087545611107831927002734414352798038532475686939763232850249572045978581940457147019497915966109332406462221533030107166917193342788948480380661056707104454132161096362435280239923634930967007083752746900607847869859396771844148478283993156129810910165509518207429452129075128874784262009740221013220006358433953443721497552293479904949483334932294007719814423894238926690398540160501350293645166912202711914375362018972318799577001130005578810860378119848283188066079852439704008042881796982058269789517906175513400781043964070453917292667449391040351733386512314406653080385416641090394170190886603899164794653642293399540582520134513645740371796869413653185656346918727302598641611465926638452734861655528358052045960927037356943735064865168750313513088248402092176519145188027874700688087112022891069409354649547316022314172437967485482186752730429982769207890317047640013352218125875449749435353306760191261232176158751490477113646867198760084657714715098188093700564918451504338739026940229625508215077549614185558315293876700661705956993016334075441542971425808640649166112211921667249203634295083809984589330069884887571219213831818370021195337066663255964772758580756518201993522397903170847991174008731824646679156897823769110962441085790983095039348156200929382662704788421282631615097344774914025159873249700035610516953468552154519072667276075733464503593681736867455184242592486411501716119075313644651781231057606157907930663009023057235105781853111267511613595941003991759592138437482202305115107010330956252188822132560495352778582362088347775975890974769836766799230870174221624779340301185950933403580275815393836545729203800692331430185582325433468009411471026520306183240019625242589162061239128415898266477827349442357772437915125266369670084446141149106353410998674544259321801313256799274837705179237735988828327904468888083709660168177649875104726371006112831943417988469905722368171701901263519611902750382951361930992069040824336214676455576258881646697248202587474599890389443593218314618373287490082765967375834479128009742816801431018999829029527437172639703357693657902030853499598806341944249704834464277941785267173553382660124188856067993090626769443717935769788010268915928339583135628495323837508142999455929677101194556421189303186575162744239870244466995945124771935948031809814724495758293671533618019939871841431836290992280908482937984435771251887768270442177063920881512883899978771285970995469617162264637696549291973555776316535652187513713057492989849412398845935161069768911145530913920077289244216825624900358446137565917904718100406347053412842386674736103722707357006388259903748090119653658721858436268903889413791532393244742921522315367612513400767974623126951248179109975183968087256569279691504692159697565274025803256313172933978645082484398521879478859648445973324128991078837512834083389528761249271274281944620516551710129937645807208087456797939088875593677154219514591707735735539438398617072147205899954337174427971105500463018273785745879257452324585922694146820535358398197142188824763075451605921860136265229481824096765075113644661757460469277213228211284080201546700026748577454809504847486574774912575125799689636343213861725584667114353660205662136387424725592778806548172963719990681253281115448010129652372457446009130250389143659112886807742648115018795979527556797584877087747312882727657132129611188966066798204154764228634548727832284366087454199325281693007588775782246439201685481489098220214952189279703723785072781442949280570316149529090282729739780453576027876671405643495378982777266740374517696161578406147416082875398749679684640316824585426601939902065722692474043447182638911365132231879736397113909954738149919115469895766393193685206881162989620363388513497551583411930956823154912030401392979352147893288137935801702025161155801613271161332238593666721366847390640495795473658641798371653038118669963174089402753073478394063201607592765545990453662952028296970559505370333956156495794770884212017311626736184319710862073597564443212635268720256059167370994116820054899740645795781530942173696943312038755218388067350793911933832615403691095017853663864719265201874865609448298853933996173555073346978089125965922624310777669974097145979163799064845952874469751074093941633453304170112203338010988252032106116677627029816132613944930180367322839159377674890520048271142394516911920048110981858608594967135564010795875908303635837222460885259497701347418935394053086264474158405514400926618920866837289885389731435287571555340027596046183523177422739343328475213686912317227860445353801097901189320908024627924735835677551215035493848001461725398080605289203734833520334116762170148398311825090718970645749138567576467387188380791956687269801470799306697381444688455668756563005346346307048336634991568497283033000405058947568338722720653963881829682861948472581142003738266235450103663999405976798857101679885232287768431647447141921812778067933471559001016146375831379450299869818788130178094454111740868341265887844374493906162562243673843698130058280759232025060103402384655931449892473402752796141610847449797672251998663535713409963241751499750298553775320502646909833840069723335027766414620105438775910806663598107035802997891776749438284541601518415347031735930392767420441465009566297803901128068436807307460602026911569098069500530554773882556581238083797389476090061387697813626401869877671219977328137440980583000571013808756797902660289939214202032568249782489214897840465723277330630614489398915478907308592102654099975057949028177507464913965984634051873977665820421024887855327007457815575849634807937334189649613135747792700859557061129812955510926515804772026213421614856408831249493443125972858413673106809594078469690117510840037459454059002222646937884055685980372806146897902628383580337998291587076299336995003741435473892949308614014447598534262998076943010291914326593725232743556040544320671380172523242254762270016306359898015752856873783742172926102099605747983207206594449535998272712075293071419049079179525692361937537498558687598620321225080050006403026674894618586671863628451793278566544858604688020726489783539931538328998667037272993477005893960660678365386964896416254113817621832720838624751356669465911144382924502309517782823959419185266798884177395262149293243990826049868598517888867236832494594674088689861919471501277574314124667970048682954835827038937223749506893802953371170601117834868473075305890777737139965108492774490893006398900925819816754681474221581732016376105169487910894516978076667941541877291591135208359888246647666511005154116057915836730385682542016324982203678376786169080666039069399203709761388825501322648849110672973471311710005674870798022083000940811298140905788445329625774596702242409685982691945327471887956295113480301447729476397984375060152170136779931649083287555200979546415991935772430778683657700249868055078755316122058500870119149795948666825432975703595836199330621455139834167332471937364808292900151785658808735701703723988487426890928542584366695755553798682951198207766166157586872645393149769588573471244743284331438718242473573088920434597102043791538733127555559733304940221170099948694548180700354658880240133464857635008738580733957086292987043376858998531620256222329003924327336326992857722813495623876852611613302136912015687502610670520182712650234393338123791606183594754452541440483313725789747355839417009571500478403848987621061703929787008135829707704762066584067946822633282100650588528841102929027358600192722247405272703194968846965508336709242478148868180499844092421058698044362647929950275859840892092748816978418920593954892755850403236866639738941681924340653666133120846737606083974275325161395870804075735608382097518741645747383799746573185612522843318473350851878508281817145343139027538620333246191785073166893841791784555478553346567852793011346769532414856134293833126002400106660947867883962394535622233299886357417293382788553217947570881029182299758960223947669340971988402237975956864427909368930606817837739726137164099958149698192184702649959919283268849376672249491206545646294899198443396962197532904335626074688409967937698280662671042756864532822592021511641494276542986036309575504639630345134728855551845044557479179551067978669543380683664717482301812836848402834365512084114746656354928997846708562511816751090425480460122764632529993601894710802047621812932012204302546461204056264856145564673259665981018888484122315049957651537391378120950085143567739591615928589922935357810633668690296047810672145571560862385217964761201712022012787886197525389950019419724698462220306614806515986533166568048171140528977729421745077061124985433851528519353613245427709294384326241326058863379841396752086636887583989299154638545507925267702195779549870065794524804718227198575038399858034164379461494465454945635625233774473667121215923299521601505648058406198883045834676633710738987612013743273033829739529529920210737045084075220065688468813163721475587226825385389364549970513754932916397872996145494039921306951134186843928979783336439250952203203149160954387467951436731287091448642881410492730856051450220598866888669561977112373810404733433166497899630270393232612285250389946495404939427102014996481864694964910844571690728936540587674756259199620372673589780392225390456513973818391907900650438974219420838762953903130073031792100128491646921953061008705550861454115192487987670130306586436303146683415133516045865485318736247799057888077869393299218549011834406674470286323011936239285430687335276933470406549238001092168470057930782289237229839903665704596791456445454672744057909277536564119918146704458146026439460257797285394629473114627353378734217535844308861982854077371682275287230831803182509199365742226961064495715445155547657854927614972635346215831999479927500599038035322450718405072349268663028490344274639108271561984015378597701292824018331952812290760511179013017206946212338968152098685028744296751972436179524906857663890913481080943816777718080312521507082612731796815245684974820439814380608644960663405203749201293838040658065545218644804254831006763127089019884199519216397791625767086228498835680363481952265986005179776622036109337935562429263099564861674395344322991918612600888789650787440648780600612407345802364750299043092231871772152157081517678290891960516729874102399716403557752294468040844885275644276282108575350592421314903673566188303608806267030093007786012080530643783942459589044620154736030510645351003366512124131159147524419164890728852662395136970331420921862386335520698623018807045119777688926775377063481740483380602880435620546621653746647695801379311324963639793273358718696527364664317477507267280201338115612059027283351813079768424286042483872648405609262901925126216894943694922844670935170230927989723940685412681935034624437435461087344760515244088297856770043309942796099301467527819593658827204310808768429918063954610018214587382676540721815917812783110125758901641089744473327588490004098544341253953681385062955781099478685554261150171134906456852459562727681411056143507881221383367062339607332766300810699893181572905974514049642784692308186540889087147835981996128295519771681911866752429045877661160686655710756225195374611933885254629417765014325551833910812500130127569130456042433293363252742652356839115592806058847790025292247635166811546938410519496463225019320517178786866404055349858868219329629636106600492365249012596767026449729089001775840307851986493362562688409848186063131365622968726825122770263359456778551180714049107260654326738929624570104705027993276476849077395808410806250813898963021161620499155678777050911200408896526552971118483675461953272531680187207316894585729367230128058723971998150536384849604973844761056955809301305055411619491392127269821803169931150605908268341881476985171432204721852850679823179884884541328033980287402507117615892009575615304814825726402635681770550214345860541622669340510120671577609201303032890884688949792138260081873670839276086191232513212601187594069834476141012962475074753521268124555723694434155282023402054966647214047472621720901715766209341298826828903175411922323629937299208465530476548078089206392743129770280488357443279851593072891496207014520144499043133522542534927137495703224085668123835526886350550000055789132326661056260377531074792644604791517272648770809152671829699732924465818339229510846728305142591869344153779713426732563952047463966215180827868338361597316595215448138870789230247350890312409629770657264542327008691871531105369225905592601287962193182333419986359166329601716485412757073409493004821406261315193908974502053420448161326043620463897245243910269748325453154454629251333760222695108057680387370395298962864735422066904744849605249116640742816607956153659364812115828682933589782695072274343877601988798003169040883487199907961589394050466441680574609304311795289905922977344775150237274925604146601506820281923549292634772939159350569906692808696753169662645246892035725210308401013723655660008025009319044777100807140366736952526141162123137705271436820337249701712052762071029595192227693636202871194777287266893407413556577419984017749499361789507721916026411903213679632450596724751750466419092362502263497894289792803120305789710568420215790883261192908337926485675824391295405802442052514563224251818413872879670829552433119958248688642985573099344428229760303161879740651643991772570575632616922304840729696911885754382850326616265446975576186946848291787968045853952185580474761766864849077242978529793671614635493036043955913410549622536761577643310593221201055058959784388629300560979245200828289279086399851710672781178829789756145371973809873976125720786269498897454021384212338260690129890859648552047504061049365407521738309391828373521346892009935557923766474055524867981199058973237057215940989660051365273900852059423220591753245869150860814138550084968977822424136913881592696269783436423774823693073404230214549450844489628674753218788840023576168439589135886749108475384862179907303384305293113499044919727831476687257954004105570969527205817215326604390124414874459599759736626276815478340849641179388847793769099638462039956080760593494270814952717449118244831970113061456460412655226507641735757293231627109229998456946990165884141788632216919345405967295509290809631340160515110443710417625462207539092848927695017699147110047519634799228850559694778935944815294855509884387560324717368776668881265325588529643362286465683874745008014019224016906699636526089866355275785248132319337539214410346879457228362691684552819600334984125908710708045148254800654571271816131394013060186599084212104311608378001815065974572191977474932749421530303129221311765275152568050822380346047637578712551702003189594273574230544404440683351714127084011155703075454022481280138153472504483114881878283274496319254953555461202417805392282273230684582870688697700068431909163183840555008937986183699320803473644725035782351369250427323547785629461848746008513507502356303272416594751288466289163240356470091449420997985569351100730901794214099096812595649703758281334367075712269571870807935373801717227388062096751735619673627742367499631939583255808735213290880786101324734844526763747334597324919136808017223643023646006230170263282732130773330673594698100946750402269839593057284595858981721913543525021341232856821168170194851974857520605241764435811300800585043585499498589680024354522243460732418543175589685860873574445814281934642265260847569392104875882402622725195336203680814524384972179637088347720457147339512590083653911803377917493429732831443347940703002036257567411404740493050642338758615204492724895717565366865274771969354201561374815247961783842890174611742199541986791512410448166863703246953288941486780447418444910805019825591055203418215934586254715841758161156698822492195183521512537140593729876499583029079312249298798716935339472178514617411893268726032866989319063296265481790794735596172425992866310547503022346568380130467681193173255426018051899607922663356344034860007085000284319887284682396039631538351557731969794334575173715709407858345936284309164923382127832739460965236477156953406736140250311342320803085832650277382381037497346317851409255888074239285673496615460805575677793971248240114457900709827932385258799118470167518838536822046831712773903561064535067760499506407004258681485469368763447769097698060597271357994626904577835219173324169508632476394110960341404973073774827552152103786469900550010226787346676589412721495899849132063072312623143408975899814142365848772623163117777703200130933542989980469524347200166341257278781749025953758234226375725543756636795763425227525616092056523919889213324480499112365307488379206477008606362147921001986063393903445618822213677094012794984930968409935058019186559668605310192768655708019339239568161365824332540216493601733319176653955199078286410659688166058916421728206330655699448581968556476367738735160489235010192248772921785690407461201038446577512232410668193180949828942290803761435954144370152412305691464966878311412270510850486896569423782616845159139569040527667943404384445456274546391963734743786570595783513128227711597314922361040954570335085440520666287015984415577922744252041434051676648734510255553893768145033191507008735709676717866709253155875525367684951913191079556295070756373566398936251080346672515263739090124602451122955672467622888140107376243733923480967098669184518151118867150964194278026781462310232898360986729294067728655774988106111847563935315543267613228657943042860527717251305237087275274314194080554201266682688899131564778693955373737602856410443109935399993874924796925700714580349708584601607637167571652269154438318278922111514555340173092370382102824372660660069891891695064290880512675726505301205353903462765557503463138833777485228925695119865073183210324589219590398908030038088056212780925169187082195115039750898207329659302577755660247587776584247535833062287636480797626355822642857102140793718399513556728247455627927210830313543708415128477581162592038266544236907719073805563938182127721081771641646135239934340430863972034430056763661421918886450565620238843701233436456903370248213836831409245550939512803741302740379416802257820477136842604549171355309312753730758512858961490114525466035055620736302424937377085629317700881583918664721321466479594460897203042101956266598905955187662395415227363081292422449052275898491707033239888668758046090178442647342332119650276411293869013216707064233588403381033230726757948297495149684573342811297584750487847398543281899379859115191139503815156816198874437736402575672091471937132602204773956990546177022310588640084023615208897704850486865926192218840806062914005372765530945230442976545904015260735574584619886199273055231225084128306878421374866441691981312108863524025072631783075722414772534965762463769742601792786587976828188301580650349628903720606068741545664251675522396171816686943350224921573402949657782840306572356262340085251384589999250825292518022319332983925278051935054962983498892300655660184993122744119059710622078658146878428774360734201311179263623323955061086656165766720318063416826323987096298657105092396779255086740892225824730034040877655121512181101739215517916404553292476811577227469523470217044490963617798235698963844568660577496873544862952610164504224932694566814913518064074700664801074112203842072045991393991202689973499925697021991852211771015314441727752300968308465816897466619241945640965549619167268443479960951565187903290527017779541319707806317095276246378636064022166754730456866232240567679647979460690916583456548839277497583794843126455795615271658295120718019732252313702391775312252897113987588333001476330228293688812604495798713721895281292018014437086335565309722494552565765309443708024430498031326748292610255602099185879968228984858209298812225393277585968705147985335473130958311194098520546911459479284443767597945078285352595803184839078188729848720699520070380237251576437699520017515901665663931392107348504118858039894550425700331290284594797272391167384595095577799298767701971524372472215871221393489030262295697903189964680571056359710917023150414045338663764176375707114846857236977624008449441493359917281881333993429660715430317955737474555744270742933063112745827008882124320659127094747413704338244825446741598467130130808732519961045324632465132581582611282918865264599305227602266376453712618655676604064393582726636702046147188667167625981516300116315723683664467281614318083617492426076466250209572447110846380826333330863015482593391690993165755949015173653482480976290383470073960711831845612641624850347132881191387097989577127944677849383502549678927840216821278048557587483537089018842992872300883801968532812949413666054989673351518795985372438838712699754488003376362588561045082146086013628323442521319879521402189380481689565039676272775221316628880182744853487277197221719472768126142765502944194516778251374604635153036198742231594129399901010390820739962766548331239864718262443925509820067904881170929702144476300171922327599375473697759151458406844308658859981248927023114034604459759999212394271492624710612166042010774919822380264580079312738563551957851258617480177831264933374803777972147282914749531983081190857097585540988062379259745928625817374562257354163708837220748774972471634302025543836964638014658487214407647735475799867794137172883112031343781422867203459549836900414285847759636963397445323899731966379822445451463447665706254727969994908774507954619189005819953023257348822502926521888566913955700711267493344460528860667178166538465178255689884743110545316199683777429276720447947914152502624565416115210428261832929443955287444302675410970536956252969963513968734997500262568510599985423353329070403091798357494404047693123438333004342752403765984734968652431325137858600271844751905262432822419200913083148756109847319233967496210752040506393635348592599184478217789686114582628130846538505466745388098008250437164423253734606530047917801852234085403582280358827540983240265100029080840804275289781812085235361659462346890463898830990396638245727077248385796769171684538502528091862020786198630199078760125524426414675468460934843969899314845689439444494263764189247280555705852252153826371756913533474662318504822017592378320091462098650966024531355784909501506488062938039493078044706591242265164487095067252911261675869915953167269623004304405962250438212121464561193370328442129042184239309943978762374334803932377195699244618346691461814085519151010837437189649284134101832459965109654429584291029420915980806466677842085371654302811744608384204581897309530939703619659712057430570954223991990892629400433017209464178109970578390744160612180562483592778481754355924988633455032408295542387185167903589925162614615964550833176741539311462675393465002602299863105183011268394550264562473473904902599660355320608659983978616424270367784660164170901991654010609849516690703652296241392745162884745088079522795378932036351210181106696087435041107230323987153040179166478167812923851718663049332183289267496086203103569225926478034951128523009605502695563970771970553075221779594077687064292477527175447982006674699384671185887084432776947092379715625791431887140471655903971472827649942738385722985042799170454601942084631441828613088685205065922422764765396147998916629956511927537171341177427462420374325646042054783784847779685275635637596084182717988760456484882599222858390050788611446990470618651885526673162534855896189038781284328289677932065601191355716897046407668656199502826239488561618603687128703675990690388267174148165117793060966632013755234559732071378624736919380817510416502615516982583006260816470325605847714713188919909203206374744631157105800412203915581283169747653665352990796571322284059883714878402737752494477916922506572654840526832770113123561212070589047598017646464635825839336951017019195721967690254755936030038880411985973287261678081391033967108907218825674069612074402439785297775026142322502840919302003068876096213605713722509909290806105011183189685021768550908469277641617262756723251253109739782557824366104474078745528840885484048187795585641898381897945648792843274501529977974804194413457038046985257254574247200344611214307028185693662656760872519003664281292110464419405867719551203763853434331262583993698625388254628853324884543671407193915672042100477304328279066216772949785589547993380183017641192219833566960846356260441155631129188599884975398462422117448165560319700482506132706809813212948423525094693643133343063337486352842853501718084695620595432678717884240903370508737148767806611741327172968396964094066130763203897751048196573442359161767158811190935699714199254917757658570378275398602199678676848588381966783730208985954860736305022588421158141494151958985811148624366023408392616941872412025082540298616442071252789736424720412462991357701462376446782394670022827976694289601032800455206902090892592245139925774052698890493009025360985735249688900555393357793047134308986514793257408491734247938214125169026064789488893766527794745515995038798517506156999123024547220698219477028025226800114687512539469984205859078580826127043123970999488265899638738746906943552889151748944631197910823902049096245540131090096817578087092800280827797174990427593183592920890792436784866189409999382741296201653299185361626475057579026204101682136392041259962410085891797822705020731578239129083424376205943664791642031594656559793405237999728268423467465361331572172265889391792256253824688870437258528648944366045557146303023012341760190700469848178230798522812376600050833787612344086597324914530127420854378618779064320940990811651283056913398144170806693959455069112711874787523114572202507725260405682991825262917958341493860810041368586935581921945983863866338956756701532677059796625012183011956425700796422336716711902400719711481725736042544952203027662122709639614479042663195767023525604804320384310450059513919662253356094347218795227107911540525857404570835527157741687399627189093934371237990517140213230351175274341362259226627564569903170903043364625349362704440732664988230144744594339631406720910482166323016022513221269909723388089996464038933556778763503342863404118517592685850660476541220144141696153729239982360087800052017118179908307098953812978157608539352517854323022509173508611061774643722743042063928558509148876079282669890435156910701939842132856888767611747292695830044613123333532858865389860036489437340187665396297277106379642971352073966514703825900673432911827048823911154682276703289008153468479045929394410316399472218864596700354334246918618572371940060631772619193443693247892390344784859706717416136371446300827651059210159482000205737702570421275712307845140109500786281390959133754423315191717989724139813931179490364627071833585703815873971013988229058161511133356143197168860348101982843828787141390573560924118724994728078221063781613692633500539684338109850554925247035849150354240931968296326184402260723792682137312964071825341722512309307865585445461211774915828117580819062980660594036021301086881236188897218464129136072329171332706629868802761394387955880876146158150500667033870812085570660302064435412225374731430098264224762187552303202229699605598433806728528608838894091498980573893038271790184697911216103408190593622777976020722902052343766155681095670336977413270249459175272601880021500962933726685743627665013850932660534089442765506131637993462580634696399911605660482309698470504265451731726559759558303658838032387765845012454065058656041336260862769621076729058055144371398345389498623380926851343897976267526208944722455568104661974661898543216347596394710389147386537732443903835552223603433267448936277202105377277193055208583576529353906283914281298393136695237919396885455301870738383643405480716621874797880421113125169778525488347106259661385165165774592235596117956640900152527793178627953307604704222330308464619971963302778959262497526217196118292274749051826495354453854063790278110340058021625354809459694455028748843948731552790147263773915989267676388489949089903968187959691445916548808108617498591999512106789481527668653649695784136445151170710435799889230846731393359910531109818204088240486959961614594313324051529121723238696384682174328605368132693535867697757247038982778277543815151555542031031763028648610989209460519068214330230332921267847212952774812307875969668047917456839179663118129445637036998874618699185651605904786854939610011187044329407717550197609068641875603020501004165144474405002764063293166290895099895367770397714104431579887814068322362262477685936751841485189999686208615676044048766310329486079695138504234888729842028342527624822996238845271991594421238708060116280137406109556760365683028285001340050406067492479426970864208482028140486968348909689756990117191329116808599651180831739754153292136331338938021235730747981269883260224568371427320598292154463861755243315188999986448830825113193012822274845459156169848851940478535732593353771302847414146861649428544265039333950505713718041908171514469666675715104033689413778426789905639950092108401728237765887886109638588110000754008949921769205466176416013743643111030614313756937050084404524193365939948775545412819895129361349305327254359938880876769473128601653090521924822930308226386755920857515972327022686368435336337497944990710219006119492727643320085079933392351296861067722060099179251266132344908134365384344066420065054431396367345726569742583014977628219966023478881029213010876633428640864815690057382829658526868248128353430178614509886275249242933315683759407558052912505455561507441354805207388333095768118240880986763440545113838059784391259994102173192678771171708231795549601798443323623617032801629605702539713281489665511601499903985317307623915721518608210007318578493395345843758402993287687538871871546398234566015013041066742962526974485910870852178167178250975759835630891188158660598159873130514667911934476215472223480179801147325009938227133520155988118249466750932169022208346241542556599169127463165846983276211629746588128913300954006489472505125264963735634073965645032576524875800517342709899476716348154451518834518555359833016333410842452679697892133620818803970638918775111886407109848081317004006903006573430477567734751287941105296844893929486809181976713804844766230825485627356643002822196464420663794386201882435035698767228663516193850004238861179498013112932734783805401358441071857113951682356878179174584187352173821736001967766108635874034829491474164711520042550475768360555299957482072102563815854259376378191527354164805672489611051983964340024298358528845904765190849753620277140095372780668272478177577561616756065289734047841469113126364505966235377846507215673400202506603399277998452822807142294222994864613336011677306339624092222897349747613250315825204013600287321732439970446494570978423781065397408917092149207257054639676966706484747971706172780983325972701235848312474034173865287288463934391796881366347836543794654344822771188351470515898556456405828486629599458588936929618642453176069867122189656040985885894947243555045192634234385489352087876376650809277279136924529472598245977997434452985907442234694932001332831132533933952147846257178995700945341874649022076568439271976850447898408686839888837792289675363982504520719757643943006942836645172875405963647063764399041200929340770242908935132112343526943187145590054868173380357027480413662939904711259931477205833607400579917614117211644734596635015621892432041356999624323881024639141237701178355830194307883699963455510747138935290761596448429550374434241286400794700601139709082508791190281077512385528054402991875273636358851498391321866473334073929137288055333193939654183836844375751874375643538518140653021718629875799335753156823555663716256839886825634969231028935839692940883694534665881841610170622247723011312731786598431851816045409443154257568773823647736267106720712958018411535225270781665040147918458529439306332812073367007802720477074678454310131945108899292231938853711120290409221041628014065098263957010741426696346424750903016207713757068126819160201229182043480148720775492605989829560633269085321223900758762222168291717626004151353319624946636141884083651318939913110275705142625199906586116029908547879737803179663522567111875341438617520750794998638835461518861082617622238287111456068499508148270581165693411145445080067474733428120519871214089439652367672000754740322388230740766488709105529473589727779172761721668106155481222688541053646460987745809447316585933613454455345967818126408489621320575846369809986584239987755736232819748164433004067850768292569129911917311795062597468573676897267524098805647935251253904691912089555560217829427924332208328942472534462477767963936126282871196500270089392988946950412617626485551701554834737998087148273386970090027390900666275584769907116658490685408640304244016897129205638496703993211579781930623224084715480007699036444948877825669168410377335148642828439706756260953619566945294838436235380080203456545562058859646669539445116170945307972648812547520783614665243128285976424603277666436568686467188270083018997080387776072996439973805928581216319748746696447939939023106595576762054839387825866256619515001160243583239377498474979794871658056591559633412082331562596974091102161501083471192064279545339768453379539559712049952422187218052890836078224397015771415765914870704047728520746393409447751188238042734922638931710800063928446802594777199729169754217585529921266381175454059528409950290276348136236889842565530538444898864708301534325645612444091767991039899004422663697599136732198326605795637247585253131505210905278928038519241595420115654721618390928766877452789861641310355086834288742587671852443667178660636612694170441135457462478691557742115017770575343219746466657731056035726840527382562664790108274100216161948962610360401538993958688449373794043340983576744121764566161630269411131991586032196321110706842395143596375875724019733672366257423875186248938606824693073906626375469766818191191412307519773300251695128541641820294020286042382937845519111338065409174954514812661150934588567147917497180225130460792399549369028994402522452534238717171352570112699166631995583259364648803790342267612375144719959058423609678377529459090384896108317173758544666625966654642353845350973488864181203060039388967911174866096885405028911500190415229524914978952557191327944685159104635402803426252052688421534917181082158937012534341152236468371048428228683239938687288630150849252078210741842960926051290736998487180436953304260022563179962577447675467277260248358480276904289763484690304463019310337076522036507791195437709359788689683225579162777916001847988318471128488356867125870803815486571475042331178371477383227340249876956110966559014511570821825259432219438581363223230227234212191067558432088816059670903680087149824920259430593661356887130821123323446625706136474483857851566115600998413484929696444745726238001686837487048995508357440303977361504718863775430933074215216177806040536279922582396690046034744297440362407132462794898427598117638582283995528517317410064336139298357061675763193391568051533974850110748258920756914344033391692837315783115355735646243793932882067024142497122784429044305491715871031063722680648963540868319703158061785034270185249563938703374271474992093990637257032549834827429146051207679479568886071067958100146760444872196379935898806812336018690639907471778144279551279025935133590188404852405491201930381743935108087850411649021252172572041681656173582486124424579361488365122816599390174329221590343195758396872530018872903985835436738773483334766147523339019824706938865483323199175816794163203885718555941097789289146919858647328144347080885529802990377807559852621489481080243428035338705066513583809860376316156145827219011965729957452255894978215913130567288644550945270755138619767486541844377772440716006583981607000995820061496403215696854969302588885537571152365924345167198101566440826121290262700218635646259727489353650777514886110830345241928637644354506060085839108917486106414940425648930774339055709518690520921197513553184801120130436574852317920156904986930484069028376714224217464227050185247980017342624023194225006110862238319909377646676800701640704546386537183169568198042754741310251225843780691687156474203379152418593135208217271913559547659388474243912862133035874880520838816030822221051420933706819622820897326593146721801770594985443202603589728008042604197454124910381984931749654116586892237443253008341537714969696522699964247896245701781580611434601364780804815104713927185396019483447566470640869191206521713658137279346539746682369798744365468754448329232859991665967253498909949228882677799800025866301044705035812214471859117298279231477622237837372030430223177277635844042357211587105653855456932837588153936441235175558472179968247747870145238853863746592245789915786133941804598472748796252547028239221444459333807195624929580337961385995442566496294140498132189939859951821618482964710330146348823603674365555726548754760235925349288925308393461702754440499221403008174592793878131029789857406970647759967307255761759630907217158936497685659599781121871774219403602435566750389810093728540381541109383213172130058440304838309346094746141453388339075846748824192657274448691978058405845173289131697605687960857551122243212370188516266839963985521946726777127393090855210804949452626200023208433596466778470314143107099427556526104741931310604775261437952628779570518041132547392227713955578713032121455228803860326326402080259036036756087904519141154060853220367321171242539799833838406658019341779660279301065703395864823261863452582390228993852177589741787855977901690973234574064175826450449600753590094973695167985853175557853156898546235481564769387644354951399959425186983018532564668594433210800911391155538524454052379010686676374248331613952250053689845058902625551127795399639336787985936576149961943861021215282686427669977987397945220673664744449007417865414268792644638403578215385850981088571262666512135095290734396323325323593379184385257336762066686392382363557954541950174262244388137284711884902017108552854426113436626508928551569521655194491768448216509540475146894836762802923468122702326081985552904003245929066628808964832267356411202976081663108203406477075014476422469967000667375319827068838699506778385026616119178994483653107653949390373140941309023606118944929344970949037740624421642468071612842572610301535982151916481867508738110651080641883900059403944785514306177050393419105404703200948303853332255931545810462738893592781446507376223628201670356610017905635600282022369662656555033298384114131486316433823772471496252881135083795423973203415431663464642316400528840352732690338835279087149832506173365361617555411119235571972440722145205137687641102982039543065737568173815354147192542023240010109646281311733489329290686036746807566837077174043601612125688816528019746929523220820026476761737980175849668121873110146460035920725415419507325949581422250575636984690042064420025068146573398668929970981141537166263876765324640949574247560096117790755886127028009312699546257904211304867080329484857394734745577835056590789268263625965134986687269700826288544637914543679650949481094072448930009608810491656230257852790499377713641837336651689843948925116584181483133661116464855962188750881010098421510190969539753906858643258051629291761056121217193454926838597577608334416060847918872249468379029434130727936119737807016513904235502759397526194391969702399936083091560009847100497114629931070876365302681213676333889393706098637173235140698261540859636747728259643727163377916766568887297260458118841224745210152992850019466271150983879623102427490998463844592303071547903240076478963417527380796623049868148090158233932141520158510343819172266105758046124513746520254731958494924859651607684264776680478484957892225811643844926845767111970370725949805726122694624771918873373079909015726790105400229578340804981545455857695394523228573730172631840704977511752011503200393867330491878027587846838547883016850606662673192737810432663994807156335254110402770475864885166705825540038013116468948837886720331346425604100084000983406698895192810648711691461068958362931527716205863667888056172271207367506571210427348769566188646079833240083879131913745980194652878997275624284836977019557990156608935978242829997818423298494210560817997966527697465396463350767059264461109339102494214361384815036018960302955052513494850965442870440153814817233930093641897871298164404126663940970144229779131260435800207206690421030243568796492814904328138552405486666656831684204879273568719236804607183699207750379101916463050376307794861892905673516062249869311903966875692975930969300738008295251832003828899034178041394045433610401418531301355409619996590948642836098207154631418745959942968352393562149941760803905673748275432980228078079023665080218872896888362741729448220881566440212602761974335281903924069801104095970912795594379015068002685720840542584209069578334659656422116347643697822902068001158062716027986972491001527140943661111328226210814986016305636752554442300284880285736929722723177331559726530413566552442247409933370387746590677085007458745901350513511326918764337175064632371323109575239043200723929374337761101061859060929600127367984420306236148960304107308998750215134938944758269645325749065697012112544606619927770314359754581002595008325254057233578619204717593346459295662914422093393234161269059745259044895059913867586945383018277554048966601020864405825337356526023860879459231822912343911983580966375851275270698812651185513285944605550184291220822728246437642562278129385322191593361614224131689159121094016733459355681611003761459305466497439201365665219359240987043366217598012098708927013124683756899608811627524926003125922868665444713738141715773828362208249675360588076073027260838118109407780852789383422353285460022883599670325169972017899136083337058629446059102768154174003400543105863757746760009340444826331100090282980531625834011523254564484706818718963366769389349920392858281270760641866299343109329336847520370684757682690962742573431798456645657926270306030801461213469942653187470640318294356124295690413821280813389345924165701134165022400708092112741425787530328886798624479700951501688966604753202627335294448743752414206616155480111951455011855331065757213715122633432505880500009443557154883375447084974000434072410002750066233407250742950098773256359198987680337088062502550499095069816816379598640513084410281601010826275380389092766341633736393761507798559409634818843309907705246117798060255244402356838308103812266039542173829783970983232155188961848664186338084908457098902980250565905325527492312675375251196158627141626753645401044531035727753596765812171037638839588811552536034117094464402263716423649306240281676837772576315449562271951149498786494103057972419640110039416099244669556367922966343192360276909684823553488540780398660654904393355780337534315216862697973906738825050314292087593799488094957424777101745482784534136042851037028777254179293543392856804069350868454735332379528066552153967628213963498329731893492737221178652179398236595174738930118020050023831418147124530429409095423161552738020429155259571374335291359114584976032127764721583163316055874902821382402578493631257828909280200624846020677112839665818157965381998182706880124014887452461226101333010263106705005067615555143786820548071954789235274370753731053178857612757392400449004025765100791787358043945052411770620250281418605569063266918368930040595393956615609955538199445062016215361095655251510365673852814742158402929035655374961912934492531377050729599609473974770275441690685991927339148320288381728716592579164373660466692042033914684003207274711934542587232807342453371994455272636220491710271569766420134118766304225815011576625859862684316576326208916810717385848313410274199473060409150647884298313993573423486424862916971389786114289751696983354601422068494312722155008067341930633679461743552885152520145088316689821283322344087436429627898855219606773274464620679276174462159014403811703885699476177308299523379474581358062012472238832467481266401202117944219821863569203227861586924208634951635140642423450672622098810964877174150869623823189821416860919365364768253667952312985475470796593669756509142518549889816843378781106459315319418985579811359095772493004700422711161198267136360832910349508614888141008275826604056296399128114295016973328952889886548017154856818268700472578182327597520265256654878480480698008387018000443114422290979360289430876336402796371603326704395452463316057585983369089537463907832294466841600696729896802013860067371007649163340198580212792753107077715623987225515914787676899776439498939150338840590043180031275607631989597205742758440910101148820110186821462009734511170228137320400540216588165026279262007303143251920898180829620573328799940476470216586896738393481350424855210172988941798525186310118356412629236518715436180446916116317046828827080037466567355069190257854605262724668659992429167033530062765252054868960079664186715474135151595492315381816747478266908573042849871004470568342860697000491879571831394089463872592961167471430187089207189633793565806724928997275244804538103492249954013416735167212768008573779202753725614316878072092126961488506125916956811398865520202030632132180701767962567694591251276614828855677018736386561329635690516410609289393468884462769472163249118607150524311476577591223558043316106782873723320126278233007947514031892633736064617417599763712073382158428709125646664669994047873349114612908435999477897503307096727952817740580617686785444979241767031736059559413591924755491542817042616072853588529281525534306208250397896066951466196569232730030913061298171636113229130251956813256919996947216354498602895792704555737973431839391434676105191408309837834933725615267227085965268468291801549509248471254029803176482926452698862872868987743918838014121166501504766779019332751528309102695224540286708400960086325404598578625359267706138850473403436428545496039809207204100547414681080763337541784279790926093750945874910325436884619435587953975367707043385630957676806080743085008162308465199312446410751005106504892565307281640174922687112018573681852543997589075173237030282231980041951788616613844328321155445469040997454037791265480741505970330214537936133957331921275750193462259347342029362225274017257967107644997905123365101197192231211520537961810531031163703606906152958209027613577680373815894495112532389206820542130928602634095632353169823198103795539786276668512245961924313225303906736706864812655690905457009146178969960582987654791430270972664673694466607775079991713907767018124077219142728531695539684260247495302334678774325497416119722957376911660578163200805033426829957575566528103236706623642187700831495524926503996093077655216042824181080274563553321917118839119932424858179179631858911925900676072134267795493477705979031239346495670978580640593001603634529558473958476610201224748157157382144550021297242134019618670901378419053978895145695359331861057229108066392671026306434976880609689228873477934801402140090123713443901910982590349838635438749256830070887394969552018728579162518220055682342445085520689875197859836417737400772517043352479000611477108804951962679758467082637520196977292523982215262443871708824508816285862569944490628994304911805247059732594621318201486136299363127917471277908885580985010072486760609202145617919476058958415158679785033586733094773495079064367541220682973858758832265279359079973967732143442821738690592421574349864483317239975457167533299148252123203233104286397773208629445865697255696652609627796928071760013938056136524919348111519949133972242877570913347397646883231753486035323979452541488559766417097005813727949471950064800821461366209986349454835809078597391760757163913768947516058469147857690261945084276106629852940357770826674133412005069042833165034554028118720442689040428182811691975266891553071070505172991343561382726721705941608401199182765953002218264824252625096753386461284366064329406458667769567353277293120348928067225111691460102059954220291673361409877308324719549074682377882701166858370025790304648863812327152846338815258248935275061236606681413726588574613237185617375562489819230955262822457664673505629302434236119369465623519581717777155440999568541506507075258064548820795272101837705857510792986521260827886222285450300879758114224475843370537495875974858213419728155126590378258304761445962893448774414780305220731956896143766439412377513675865393259702955765224670692878096375221005118630376277172757593674676851010539127103538188569328322807387351252849400082939011878227069127433302597310305164647434476638867207354250587923291854407073429465622116267646440380939453633465372974230027551330296856673704300369024472296548826870044259266600307935805053546374794333903742945891523377049887588869342948513566570345360729877306808686738666410247996181835817910788953793137815780202966914480825421833008116292395723530232845323475056147273480987161710139336411570279712386647617645822428728857632373591316655249695489870916621218664311245762567005447038040485469611382778369915260844877026481122756119827752927304822846850232760498758656085210219520030582147711483139081392570252283730115326849461037379830659591495181459976600039478771727508536134238325099958435105972429656551768362644277616891559685821303706655233067801597948030413522620377331748108160760628900908682324143400733141897399448420945810608086506435338188239148076478724150320603533723807751247169357947391337131915935441478133244763859675921272833102301962532575184459430632236177353454649086396709783448380992906410078008180513014346610958026450419705316483642335587758760660396828284180795906231948151556750837656554661579057845233725606642628403923315605557912521410277785530679262088663138772743590632027018099077817787712634950027931159326159422152588845551331222523520592903900901843956994283240429926173679372883634180334984613069168855410059574910564587854756701175285938419807104426260439070322286151012470377825680455248191358220852238379450887095088192423611188424208204570538119237099535235004820751188388236437729288941171786699360463102341046013776822097924927861172764942431987697528556210872201895590877251157113233239241468825074922022116965452871825481299322460373392877423285165505712545646014743396620536603305531352863605991241707132023491191577080064182769454210863879324779520865139170832491567508131391931792756918705564621376116782558706164396854243440519980528669025397519998937837862511833359956170798137927574973469881091847431143366361178846648786246999713547547637935070278310285150161572663728578922620494838734038230027568026060057889264430808944248096847467685257655430789352744269877227284114606402395188454923507768536658207504264522729624677995249709040244092199977095037018101931414761998208593982539193258980611023388183428961817579613190600361316153253927042226167292191214794019346082713527438227965494254521693892397470148382259570823478232317668837906563988298832105118229277760666350186755941103587955496442171702746407600817123637332608091524354610506527032928795437307357533810182794608214875946988569732214068880418403935382977137640666377895690519020594722834467643092775985353825701818311223534397691035739534305488645086083090394808163304806096713484631129178397576463995195101186679751613123005588505957824473513099402083012345522942412731929652795545856679327524540799068744084839987405918978913899754778274567334583766347627849690988392773253385078756955753423508395571891510423508583364815862815869511932199834737415834003991293434847848499620499534441685202083421367549592859373000446023768635749605002448654394427045560530609781761073503811429517859439471428340883576954149388307698663594396012415406821337125667478660277366177501628736049430017022417001129970618940661063927718395912473684674938694302694867973954934929056943915983961981379176678151868040089241816931950055947027951630049783764970136329981968531944934779349989633947879739551045107277653198209609020254365623172160367435034691087767472180662506846650469489590416676470211693929914513999774131678181888930408290644342913769224561141533397771467615631487231789848088470431383251111885137921330009315029913742972331814061649579018029804748212741146222257239732474700718130030730928679972333353645723617287493390498098950288532148120024057550226377916753063688590637012939779340120082167253832615124376401113116387465853329624304653763761649540889596573646203702663383631433759185934479891674238207469714389102577405637842641906554437421191635573530168740027031615167965551873291248622710849111641061474527273187746208902012774345582367181629171150907301823719795439132416743597542426576356301162192154255237670901042624729610697244190256627059577615457532596690136507936587596613842067082708018917041536307277662404896888157506977319709533189360841705266209776842494065700860926506193434193470760997038707863330291932275416375295875993225480834289211591022861229260949048729379699686781960690505883525409180479654379987312841811144597209720562192174817779334760528131758078875179303517579671507458018079546012961356951354351190133040621217472740796823602835307347880835224539324017446863638818972339119299127327148629535708007843889595474412884892987707997260230718605721201670994341740802561477532389337595762269766029800035296790000596105892625766193102493376699255348273194376865306430150729303664525298342273347500870821948829462729657198409218489856936443182728413344714975392910172846596678010139772295651269948903714464822091283678874227393334325424904132606757465947215843660778832457511136157550668798310955229252371843811719666741033910041379426321025695585463867465082620320417742983326710972958343236887658087630614332135933534657656070042682358516830891025811797285855240048144684732857926920123611382346567677518789521628729933708781438919536753712475270313437220153627262353693327448511874422433947449815104366045560030175274479324578001739506497020073984024936309453385800760154971775013820557682800628375841120598100707193265470775769803675682323003836942099516674953677532007606587600061833309337499853973115327279374117066776921809802808474225666202987912947766697506110252046477320065869001726033935116657844282371389739613479177709110269441314845680709249543248655343967102063465542609072240017821246975928061906951994255308429144723931850170780307297513117686843116383298475582647782463917016146549068993561357062148384296411170153059077044012382727609961713571400046969152971231760985213930995290146141431731714513695770166477624121352191339072385274243765017766653809017606945099121751312645875387845286149494473402642971433794444223821184318043145009621461839564267240894815714750998881882964498422542797330442689428021714718939084166013026792247428521146893708487588142804839850567559361010549367233821118046952725131065594779251254755236235801901694636066316659467593414291977420395504478969188369611567276716709692930431900901301962927639357538837224972450235791936972785810658014364575117198772614547382826042331560371676521658781933085298291577022986338560263903853082846120826665731882425298277411434637284988786209663710705078440538698024919935551808945171131467078113999042931149722665265585448164312033505292952237697609906301723586945515777172659592643100566772567665924339649051098416467508836149871697261516222118414161062796986249723497900061093673681124243998382922800709688601001905912986438444906435192106266512591420200562527786770462384658839167958370850243636878312598387533292412485361057517826936146293375510156412433479141404442690820476755126940457376528617375155448289071480278104154588521167948392530400094408835710604223498236692142686692111171451054741133878125470761800967956094691677317699440114755675211345979039921502918355989912864334146860780060242979605695670928049490338180913397282675583930367079029815551302435623424372342122870408876002739039771910611267331084485568662901145501984447473888559140019429278043999725784794900350587608526349420495779166706712626098591411536468858136399787754055864396634393802796264347664528186293488030917282368058688717530151385575601413811845678702309322208286232938753650671891913969572825122869612204777935651986163594103032318845039512903178724436535411351894404035381103293462365622986012153533484593707334065453375703898317431690611019521631661128308898311935515780559281380509316888194613180437351750739784690224994489643343794433083179857926667616707543403870338509752873209094091627503525603703075899051556713353016789524140813578767808562101100743638740984797677322420789987600095419179303924472105413763567320647709948657335207746002168664167800627530600867219415749612281235646858477796737188350402265224856663324786354943595816034666700644464158067937314494581296885203792273733597075068628507885477574312238152916066215360439782179893777837892756018104592755987290654364105771825611322055371764287763421941410491897206184867182474970531346865170255474080794553368597135632928058993988075244224571539979938867431773644736291082870727681601690178675642397612685410224637632719232116231769433552905980711185687698821732749323208286677529890680188282767445250778008511861152597455416032309364275460154876807725722681106864169223786414675592152576538523891577667649142572259160177290110841303499081799833729997894830446486755615205661661780404858918855388610890112568369507876544774927610544776480113158460033414740835826462046304564853386342407904401947261778717063250225852738110960846017150129176549377103570739760901274451086306215258047113168417399511499265041501064340675092668155872808437082576531488588314023478706795205380853318887492343519959029164620226486842404383498621617345842917200175991970597034906945267977958591231575535052758220404095514400651292780765765664729809515651532538401167935056144643718010322425540894446888895013335001973042180705312699344445804375796043767499781591724257079482918403188261600740537842818639606269712044442762097376420536978643287762613078815598747729711700807652662415871464831553643361646261551181476996162979409956795704895896864152447374949854685944850069626519120436699849369489668344936926559957215577446547496804817408772700079940493030199910027328320024802314041663977164355459957199581943917725382440398059800082289858694179900373225917110145469130880005728361643241267952320727707339024288778279788067272173654786793840211094722621992383343787282399284457495856625744167387244229289673760263664488525037106506894214164857884567151290285689952565620656434794826091948882882134757824328074688110163874203797948266063940223946076775987848387754780056557917596878392805077773108702745736566790918268683531144744353051972679732433089852920122430621419070742975302517762945400021500596916054472445014526698392294073285512191547306281726174754844758482045244535196718078152666534732973510660994236398465827022718411304675632046219636867701278694666094390049315733978411039476690037399628470773907916637590812695305381668669636368646605056821183666411876408187060265803918114351281449691523713819333003594956826794086119620297316343384628151204258005862391087440837547915798807743375328419860683805579243659541116485321519051634597690763408784942467670955141348951754183078769448505993277092493646311964203465519075329738012095740692175224086434907297769202748776798321404944534257386162719088096741288816886681806401754567825434400003311066571017406247680068867685171347508053411260136999779050112665938352510322870245984147627071123706374478042040949546001518747479644300235261523374933051554796264282780423776130201619789241764295990458761994167620058803219195385287835933413319337443220735642147020013332412939458882830565299068338125916135970909375120047858577313286786059104539586660942838103831148297441508966073049088511266108169898669551303470998182409007675647198219729302954790559619725154044971526986259899972637725102155500451852826635622424035570090884358464182107534539353687983309802369235437655289662812680467987877089343538392622868613578997385041963996701754966107889015923033305576926330386012357022462455139809284151932550711843522196048313345756705875074990649518327389466057018146148870473126920967326194728180525744790014180638728210488951936604163706809062241253842706384677369859722452830617719668205883258920102873164232738630515609133148443119363318395790375152419387670896806569890913887205051191594556080890913353827191173207521795781024965645842921582892779172545497462658477481360630487377426607037497261765809229886904263054305128986070785661108147852415366970483811174420667063354677983880050949913199518339548328598159105446584775565609508594532409929780306177476592690498293291295083383450843188686931867488230424863714118416515541887154916077427596111905148045669909692644571621692532640688505390299481508985883301920448252377834135319266560071839670803011548245653650578438050442339758470000063114399885634871164859971018524088691796552649054970373225292384132415856921973636894099221650278707861294033968817639169053376011874996892239037314562575925988733273488520559183286419243224919466672709290530216970383837695522961349523663282377424957883934888797956026974525647722239230584737898043016459353096184882038643587364910025951620274209865047798965386411716472436915501209279980570410666058129842166393308384694690432587296596904352930996972555675717366353691002331464229282390654891491794313072335605613102434051721403867801689934636596550541268500070469668717230880812421031822321706903929206556293457864257384983007777416506459800230484768182545774869889208861114675634958179682353949329413294965934407535889130576070479063913894854083620627187847444600964209233903195798078655420121036964491305482282007120597096937929096779334666543130417777999569144337167432503409843771955502620897195949796555222480000576170328660647728115906849072826371413912897248953812519391211253576477837317401271574637202067621359080400276934992897403872769610393983987488219306907815403334732050433224137278733922070105863479410719817682507274509519292212370321105300632592272884819974128027056913194337581278109066354752632912128039661272718597164432581939331630961794167546874219695496177157939515218298111149339292555918599546564677269701300783931032688675144196487161836197617849005304501429400512428707991715618160964500030963640705837181616046589784544610916516378615555921130481381100112905477951361280629535583359321478245371464977600846916514256877527209822769592061999481370027887912477459782015368123028290052977375895654964350689830131588499612135352958479209369903989753801191046585995975426583383057648248650027467838038582849314156871418853031230659021532978929406339775708115232874552245380935881403501532606460714002597194811785765996089034926429845882166313678725989348979517663641027939221520524702693094301222874084787569811020145538656493067279422695822164587539721734059296606378951638819694343163688459230962522680455812279382528950940626400053329284069907009526427501558935625137801309508406709175705427759360576525252160780591885283107456674487392989941168900512411233276421934944664884804629856095633332128728948851676228614352377381733276676919257724427571679886216372983063093552114860335508074674605807482917761512892483732308501942129902834581095393954362281443602340974741567490466138931108041022800105460893490451747909024567215851829405931372373271242321550092799743178822206900228179711390291903535705793908783670433932958074555759192613279446491284301972013669369487743453550197773756268873930053492816399993873329248904711982138656715896067105478794101587025009224733297046207211974825501063202051187505245355722864013126169456081248299496020277988621259955710445288238347706713232895478916922546804318400343323152651157359257415466773544276856733811205628915149418034424470312085749831094413067204924544456843375805157186342671601087207388492598454836094902145381476844061377287591057069081567208913906449465868308072053921275890907717518308580356852966751298888052684102057882906924999295934470030365429571972298730057098270907404331780568467985068309303685773797190151864007673331119944157153678099855156611780619285310615488835069497498328112499381711327918964225102898632724843299718091094875974146703835858470632009466498581643689304208749293512950705101683826066869655116935315162840193249658476788696500728227815765834133546795176608681658394005997336025462435236813548059091862945588897070787372927034107882954778652954184587488145571717678920514078302123659397893824076797719169251139778243334552056555697904592806188617460971918909458900319649484183941492066321227352698006988065659861026443721086995649869632103655658924063762950875846494193974313949312245993804241827457657052685080129336794712818011020662060330458348153754188484608972566121372881285453135986128939834433537254893413606963649630305670155907421594725459476012375569558396529850410954993519480296484224732125067222357710419123963448507356211685297848016550332644084014507045596281402189001859484051308429738533687474236261708232374699077729103041853572874696893969796627239288515302031657824422747586117104197042494329222937359791993548523134121176294557968219964485884569051922333898925281238748018461813874269591087708089828360729457922948883454812444204661310245254654866155096152931861498583729196725832903419239981761877112698455474634991849679886694374686876830960546649936112681972443852096025616818659096153289761332563407906384677065736436192993434547238183669290483381818934130134780141296993195468504428031314654836749725844080730319596386718124661188807108463877777232545958609246915957718347805458999751423324688266654286008152871509138170325950785219924298824844601898775297416567968266730834660027376934701485549101780364796457779841143809296870444918120302294136701883736084114429462306866816044943586225557807866084288314434883441651345447257689632303587904803515997679162726315080042424216904277365864366290808679151557589472961054205731323455923447649247973808913882586887080105738574670911852137196008013627445312209152203791817875328435395854959148545745926740905767560192650391026373476656527509217784281726293234005267427477807709027649472360065876905123806021517171374038010136635033791145176996029234385315564748726937387856828343371594624675167866402134187982445761523383029525900378455124600608057497556893179272133861959641277897497813522700913259727813742894842452732241371656994612894690858418073627852756063010323118310898290815113403037147885008513797359282210545202187638160600386878653626252728725279438807641007249723498541839091806481526424631248200824636038062789583083811988683384663467388503734318746470117636825581476666601198934830102827787673632425881513703148981068961250655816508340928980695038085314961410834030813786718751775899654675027639480341793521966520196956568042836183985439039036136581245602460803050029875030669538724324116667850629932020005189355442677915754777247025039009996225639560100819908847705648901765201901177839501132233748693538329628929170474981218670549202216919314857493757760419821900769867119597028860135343769933046240638842432997817513277067639129596678164940521308379871689240892478537577693999581198503891922862913362903387923310917622164784758867554223972265498550184710762371401607356788870369187151695114113142532002289455748929470642546440261675492552285540132244266703952539305468621970440496645027829245348504647335537154210207235387986244251475061134591616538198401355199809035246859075922593039811116234599596127565615955257354420423239156290432605389820631849029494726549043084710269111299664333475437854471551684791093855638195235128266936565016997046284708524194300354070899718885576210048256932833798048007760987416422766843623346688377397432880664986633583001340532283587038326740518871917019894230682606208095882595436019498187025714144048417630651386022409647116707452628549625167826908488697947153993746706586123062368350486280569986847319726465879740884566986349226104627802565548181713815517932436223941058505169114506872766316343830605551666786119512550124935018856267172619146028761370497861677254113317076925591382716645738753337075861906133733276624376268650812735379380494293211231253080979497710711891045094228374043559949332237055205149436646526051521011300898202666882057813696835004856150838071065292987471353198044982805493622215029596948255552080024926044182696594717006775604034461750698065332562069261350152558074761360414757963789399234300917459521377798152724637858878821462343900569054393032664746932473523898185928342802385696394879198454484739479676625059271924414224113333198393141335542287567214515023543755106840071978337459541016928859015441942713046008215715139997281655536525598647056693875768777199329116471453514005918044015701711554433181197985364130808883670476804130200172606926302099681231584980610341093578405263800914874411559249290413234943975424655199772305503987238637923178878249492070339322324082503289868827004661480489620164448283668961182140808093162590305314196572284913182129221993707179196571547841200279389777018579204032587622651713512720631449779411377385616022529961168280406731861225198108725050883607530991837043878960138629815003717870822485403047768746866473561222192826549157394555996612978995412137193666198124895969375645851652624426061128807269410025468684346910687092343004978879012369827739598008872684381359004881952989798658353173826900756684838488803893408140053170866852722330494607922141662627955656408563988897093081954477476183024831406768022742326996412431302094708853264796790329083857017519994338227195818596284508353472084673551224010049489865370400155633517427380831431835616855189682015827409669381220296007406397826206703745605167475411997691823845284420696608635600656910187144884793023643321994938336868934345116262775199609813692778308615098823909277094832254370463928861975268769129473445063247046320858027597770811116698292877829516010100992959916566674089641246772663543507498695848885423188203620504234459281204812525569108327909950786984408734840709952055247189462188617999423079340618685337607879761780847791345478372754657775337688409816590119563952422808642182152966644062394025301036247972019641628966973888198517756968328485152959959242560963490079996011682863494310505668225132267083004134210879509728452168105153670545637337556338597768833560218425483170650658575967047387085127415960555000105034359310699284319108707227523010513668417914847265165141152918256575673290660486831328184409456656278392943153781773311852947413919711751325796884238113472971917724407160032370282576818728612838674290123671232261168051006267023831635895127688047879413509323059947212511380403372855023783490234752278197379284332451355699098779007912950503328416053698157532233026130291167205087081712929514487407579009414683907746372925173523093004810012479745905127299863290366114574092311671399993254871665725910442181525191152553052640660340072434832831501068372929278509052406036341402704505387114416129242180166435641030065149200240918475591241074445572996199034721173569214430248556212835393787772307068959130385422167609561350626024242366377798372608126331378951201133954788784541143315405995753981277884434731981997538865285948964448847731990566975701286675421676342613878314897290504135720424071863400074660284298494593681331208391879121280538647547697112030610878701231568384606587676259430098650794019171128431443090778838871606700275426304693768379499700200394601878077720830273103201851315383917519416767707845438056066681881884000660117285955183021181244670920600414942403802194959599082346894171430191168772820902319673505715123291438881285858974323539436339168934258995152683764525163968038433360207013766506299344254183872690829034369940967360803950604858423521234579012519575574767985410852227145202639923445637091151860737551230992985881193492188213031023924941501950445754077273101007555284746329813372291384504272183343027708838422111243560046485144489425572400904848901215231900931145665685620831440965080232442415488415221339904579406351945136662014958517948730099987092312498204796375049979459998367921272582419346073906741152587977223837944380843327176276219550096246959441786230530348139985166277360349464145454353541281681154362717286281512568299790270924414215909283616607511014661092440811755079715397533816642075379254178623244581963802862477460311796490189332976684488612512437876700838650983871741725250177371052749816320471656003827882945958617496468498755153814252595361304710229048018406858735708625043824949632468996570898747019736436427344929122968937623492573553220110666341395700176887003200693106157208988277313613709618950870831368119860938449006796149864309365534118127890615847676448761147632948767312962928879115959956930837188021273318530219422232044503630157689293325527971033705844031611944887818682101406379056166647935266407732844703441079549690001588460494220178889316545587795741997802451398405035504933411579445027231150557148865843148365674062709310856895860940020025287037239090612375173775082150458081618659655222767966735620146201268647842108881831944320109959036351957897482929666178594502561770388443660093065312047277060199770474034579081057119552132769185356274201664223795081259961791293635807964614782566033468506730301487071086130507146945197129121365528376956970963554252569154797706061919177482034877394751844146715355433132119105062638830867012468194896499988644852218293319329670601954836491163995988626547333635696531897249028605328332191426097363612437429430454682382399691165905420800513162266740034697137171268084289943029632568301177295677063093374030176416661208020346687421005615014624977155142990346593638294106417343653683820422502321966160292801709841001329100407027662031764209100005974122595032945173590709207406322742497928691563885598587029931186414440074020962483845577534496404872978687317927701590074690196137130008827697747072860054558173499800032856162573320256623585211112898510063580530304589794260767819098612334886988722841457879120177132908741314115743914652104801715830008578107101801692784089093560421141725967629653771454361856566132619736858691516365400531999573100959534745201633310100265392481470431876169367363941518212025869868277547975068361091076977332361313574074401086993186272494740295052326387050380129972521321696207398268504833369776456816732398492477333873208199869507952733540355678279925961779684263499249742168631986012951136306197752540637108992123357001535522279960885339029690755525548628544421672408479733092744620037911461054154711466753546267216972710223477898534680964079042803832689432493320951935305842122065179161679310230685398519220911468075425889950021001998371751710669089443182714550235674564878942611704014864910133135527494364721120834473910186490636237896711256617565915955476984982009992213594144862328579189778649945845189788104770575091517210126340357710473292366655205298572586749295219278573482256306258958342943958275123818743860539588189316909165044903147785789720030962978162561196910985402697604876989143111086497527830627898235399967860592434262390467711970685209378342089421872285951304156657939105783081436332651904009909943775697387150744936158463985570496657649621018200788684346301625555842049928973552300041524535675256351079769692549440017317369396769729618256172421529403890376128055709165578899806370221011484067746888663605309476687978411441272135457336967431158673372456680201389769488381119423411091397802689684219971118394889242021506362217489445140777413564573320047144568203614532084666586215818880252291455796985934505638676174613604199152600933144355320458374803518177413728925987637021752641534212872335298206206908486673389623666206868846891860414672021342892405307132613458689805901322268897779922075924466043477731729114870314000572476987895033125420979140051567106690155861382302428698552985751560024964539215766643974447000676486013005679319913482301346188583338970473643615966731314899040403287389148324617520404831976366519350766119077674402327866804127654303923444698650129742848482470903397917600834432987013232640181025147312496682096480631682430908001278151071422177803159508442711445944498645355230729418782655093786922974016530964753680231749155230374553875749408495662065070211268841567680803764463314064314655758361525723423012263955491563099177098683874521366840754011638533770751284878437328935286459449410863685060717689059572356964160307721422798818922053631739535529117245848318180565959770850306101665399145599126769491696510921203125416235419559364361227485978725070001597918434289065683904949969392208308164096253162912040751771957889642476024750445022097028372877969732504014008073415313790514495070819237657888633304413088906184298369060230948341609934863091886930166615408757491658839064968811379970849786399483210234083467565284471202166009945943522220367726289340906685843213350449131559084841534545041018164839229187204454729620801509883258225381691711218724472379522242041052567801690627576945422574684405378939218871913320336485695338602828072765516135035916004235958799485715842926643681110118101058043811571315491963755097690147726560559511949482296736136864126154116872733849626096825663147247873763984231180852987101080950676783164605368663163533199929659780580148294070547402088500488876202183505772953978464262488751058634462932929818992937874567069417741754534994393467647686838530334685516363707933924590438046217379228877771767720160016179814304027334763259456276802852442385240796200724460915375965995535012566537952682439757390178047872671433948963662152530389375837633074965806907603588103323500108819079857444296307703269026808340081099109639198652546062810803677945400080905184155197783235982123457096386383133253842384352612430837137028639354867077360208031149056560106022686915043866326674338028408111041417241683157737385624210368123664592214132806188259852288549981665783634434496547497119914732400042343375258100784413655068094780326785967039556823588812052291257193547002935948378077508792800408464369726310345417279230866179349636227329431417283275618291129998894125149980103442723839533978672031709989187522807829088036998118891807425602973714826622614926097798811687626603320526696368568033056560139610811014601031151317468216727773304846367896420997275726241748004541363054975924235761645078559632663197371572969363867167131184724713491850098842596693563648707444205969514014311458657248081362858474161747701515186411175757102009947932165143742101399737458811043848259904075026154155481723609629541179430130813332821455279441598612142419100967289529326984495338928618231124899147422695066098882458761645924611662348162536250795960209885879903781455729120174095906557587025906777259902300252324085079296153219517211002258702455381372904079171008556424936897446932708331381010787916981046543723294797355704842482863039040376009816937691269786552348001241413201811109567304300689964195438867165651733118784949145518412687658853852562490462076475119737978742214566815593145241321394864839431437430554042642149438556547344295449681662858763915218992506437481075502993573753091285492513391830269061578035462153948750941645274363585908132991576950620860812163559822177066995453721777177794227673496722531978968026713366229953904151977350231655205185418079589983015615316614423800684540334054933705189989890997605678811825518729996010717866040575021857461036298816147078703010004934337456775213588097829744463059939557038883374849863882323193852616966966581926150929024647435479400680714373739521480689050366231391079787556125695653835870384178480217453046901255574470425007498853290259896541131716590407083694189510185008862500497149494425891169321350500842506766324634638135648119002186378673737465263407936864664935988938533813181235488620884686752663022076489468955619195242250892187968601160463299748493771545879522135638527846489733224426610421635031097933490401258599210075473169351587664321644170913216199574378197279194614560033586664048327673122157293476880274451821606096709825862876201638653167383067215796208349047694368807983834968475725008344461495529294285805488890243716744267089575479365568105587109162508662820768526997850714885875191813158398616830997474600879789289241197228425126035421020545704658427592054985654921929785128069725761243962308462789971973743716358971200114512115443284440617495491418951065472728347996990007322164564826973275784308842026981159863162193011440014062464942168799497887225086620170845997231981654014004029890520503054221034265607676451921447903579685956219449321923023173023144792237611355636293854717217803683166495212625449785223551552239110539685920183904550050284686911286341317089990177683391950684721063222850703974900013598607208774885589052824274712488784406449476685789840649843841383994460880041863009635211178596112312869575304235963887567147688119238698217159640416612360035341231747539988783254242020305799276522211277747935448135367037199877857140438690362408220289226742991248279997931808626662213506862609558678924325651557974286429374415919584522596039192192076183970232388085124925287484415328979620379956305873435741861107258847595469994324319546990405989712610893601488915657536782483834347670829483039027882313073633794295361013264898962495287843201903699726204395072794498478325037630464985318874668240826151736615549815128648527032844699350680686978995654952087496355317797031144738573537733371745843904872069068363261882505462884906759489764044731479908511163706688419984662391927745392867261415044798751303436320538644734018820343091832684014270834469036675924771756624809302998663148946924341255989937242211750193522260429169640291046769593425588572863845962458641812310272478304549641945019190101292804366880027792909941518142670954566646626870067363291551978920877653075705257649327083108947838619245835895422723394880131349582311198043896910919445637866638677615228545832274072945027191806169927071501050230693332232417940395966516498161230369574944831175570113048631321752096982081439768143735170907486874306610278003369367398184289414249500091346941305861502555351618083906039117169790485947721731362903349104924281465374901227442802784643866813658449842562982963737910558536140259749922508060818917495749327618684973406326474050127123582068415734192902787017150848568931102175259103654807471212878066860410341255574331450799567628642747598295283799215524418524080891126096431843231995708634693998838097328731886779171778971638563639843399577485348245285863040087303260607620742205730009714282167582853026267348789274114731008929504910795932436088616882367794064081952455876253021472963381507021307027980319213246201876077123512960410369260411275886897675589238481137019926387755567729168164939465606374798146378420981507538819422427851197501416020973160073714805938977789528241902928293430462342558082470497641352449341980720444414322510050424243329335752765531478412424367695754923056604037917161608008634285325114980469949147168649538119753574223560898277545679985571065801047898894946940698525693342197518864988934634193291985122649869418134856971650993876393461343963301916321694241798845625323292224711008285661117248617069951754785753182443528388686598950203256103145202017495780882609833314546683817326608019409308834147701583602751428954514367428161306502821868829311231227471493308166150606706146607112282643451340499292297728254399004865614052219386130775889005107089390094233433473200373546302003477232370414898213656814048036866806530504777397650125507766728370065955770522678961009113108152568865709649987657285732858509509358108492524542525949479192410360018500393264409881287605614303660334352899412718287188328692917156558908294872273093934846066305029294501173477416465380086829386397184011126577889728305783230357689114949653375461336049288738126449390571805481316737448962730232147399268849879474260477879723074008988844941911097123482701531330479772096182432953815679098058196718179673648578883960329555044366050771556299900633804647078771170279319243137098650994775281929972613982919706567317061837812933951580492522746188657279337405651675892458412614940132139562272017737083016560238429463666120830082866917805030243115096209990223187033656119692982037931871210131034427197867981483835103160823002925030468331048463815546071952928928303136225671358982105461257967213636795111674874413221055115083906269105677366059588268015758570712439012706460867388790725063500708204606594748725988866536628680660811665727599215008929814540695821663272440250173486084563813265421890784509920034373900924641575772595140750520076008147310572146508488500868922655106093818720246768811352426812778349748958564062106578104308962089059024195392056573422951862121193833516377216412876161305398712522546834988127702881944444309297287951503946136072788425248872973319228278642431072964029345591744099287746681111743865579511931672914248238298038083234795113814183211165869553469427054539777882072989722233670508434426275159911736952884776149372899271080739772820090067357520357738231197624834220126578003547433741157607017743344202096171917254633985780900782512005862305777001692583461262828155349399356287153052728247133088821896439400020559531301771491772656417174046988944425543830157538820957845332955408371672668475866928443659846289244017633701613129125463178442546332778042511222839367836636704276391621660713759524462143238971689946347512115731636469728345944118625107118943238853956893981020103470156665962910718592734183899713536179531822392236033030006446091607291684334973280629213876103338083215633797639721445012910893868255637895837074635317118249314291714016937636198333424635004114522085131225289380380620073612477323080459965672726465045608149146821175853119913534097055661222405130959109301277786391032912441542502141135727972211076536371715472596913551962829169015899884942028653884193726784207751519759537089951268655933803275680085102439874896565496947988240817438221901432295870718190369624907421683366215698861428297367998743526662442686657368610822176390295779251553343002607866398275193180210438659510284103386282887475216086425167798661934920408122836147587489633229474449964315077589572082849457779090360876122918801834837822098442622287871694705549516355488744539342690217541431169569239880531541109838411856528338210042674073670322432355196784491265185399207811033585182943243157087387857503044327577372486982083322105252429339453043977689835155570716340176102837034514967107018099012445965124044569907724127298992069700107408239060664423494802733084273651913304490065268473130829630191574313141449755079853885537405508335897208859022205726020151873622799534242116032380808341722842225346857637332332814665199413768528261667459567195728982981147679254732208289719122486713000993295089708713127561864279130982951954812403846338205628605169897220633275880985161620284196416476489608665080691594770617631127399425592904033158156654733339641917863740962362607020046571419833667206313460902294415177426873458704104321304626720111457381945442454234709382255586303808036609030613469624954244028198280948536363516938655735627531319463424023256368662152343612838309268953218539827972934740919867859035755436553723956020744274408628591245658976655222779975268117328407074886615594959486257199157116529480028248665686452704119051746750665478715915577730875265050531164488881575134110021805885957406881004726833006341964339128533686826287302293145779352757704924021192414636348353384256345424346490551810986173492935293491451322139745976487698781469956996174866162308036409578804404334865085237100515353091629299420001478905878714935315050185158823911950700741511430856352786984141366350491736236197218695548802335671950498039996336790068097548902012144916016024724544133876660034802162879261106436867805648157499651025332041793266289348855188744453099640603212212803112976636086885220779467142357227964714413845184084817201337264522400814461848234835271263525277224712978424032463017227581945874466730770245916277145695147363088273031638648071024831425082707436958013971599115520400771508434332921947634464494284792699252825747228831034182326001458338408289773315648699929181680924272986200857576541541028192142958732104318091129811365882912503240154508170000377444330279717900103306622202426747954675055867445097948964219564618760214862242097887583803358352502021997088378705180303892482513785690769807561894973430565361471639214779027279130197181135363949045193212073031901237011205013068393171730002079888795165879336920584110354117208297938995184845308741076606880492832441871803220052546884257141725792081235265974089437018676303585863952429168295198309329591344632034209378954058066377288942488686019805158482641650887220893217515225476204493189851061259498157008976998784311617005558277497338453391121145149286568037081412962128585566349181579183653488663347490002865570376770052166730258860395518860360997963101782488349159306060707474968582501393053693083859723784327694982750166599338768251751127693577400388948037938748085533460409605527612953868645764074888897314840256578290584091820024493025810996469479654934345519432488817189795960036339530973134025020317464473088303242386995796389288659227920026944251983346487084698424976819081483832877160622777458940913516616915098887189614106315015206766338745548823470334358762594074780219665882094603355046943721110186616515986978813086217904012524970438277926100341349285407402996768594203331803103943766630907044010486559779302723463646092503522297469327087823129865750219581465689771282825765476985132661785423676297171015514031775729479198256570891921694245189994785920558584735856593048060823054976487410514853425975893726726500362229233708285971768190731229212165095187037256923513620993777259654005711527184087904760277935998980311799200336647392497160357118742827182103510643037335067527269604344557446400512052700710731301940086722167355122044714817868645771769706393682231073759418262821251847930697417398402514826437870393106202405440045608560890319244697343641103889918995423769749122455959581843853749527425660209468361172193642850804669968405899558640588255238710497797541228514276840002501389028916318385787048475040160127417978852610180821697266138596334840075122405623521762954882894046289782353011003246272704948929229721468869831470736376427499452947513089156625682704028564634742298699396765322959667797820245104863167238549086478015677804920071279318826185432100956680253268856950272140861591336003341221570318832656879892689387652743512198478816291926000171738177245980292838547188628953086521501480980313680898828804791061711069014430862642250549976057039725073715341264471887837455677076597323026604447156993907846519901086614554429766768602309247641540252321846231701671539455868854731044670776009923231568035480751009982656260948665170071912984633738806420389530078678662626149665015127920662552458177497145624937739243048988626335700067790118842121610829839311251927644914199664748053783658176728588889899172074141420135927232056160850252512117712993348424392239135657748758022389535447561711783851479164218198562839576770738169366008633813055754677094718887225816076015927322966542462369084115884222017231917158089210933895605341083689761191298938236449591759520528287572308557571903277051722902434550941230774714392849232550327936943348049341137652132343347348862135713402346426131368135307721400199919788670582576694929889438126591558971409840534429265375704369572749162371855333824040471600204413766315036167118366243494521779661854152052227707492462621243185097912928874229866735979306655748375116347311580411727015335868629465215694172008321924364116909215894422295109745699882828939824559979638881935939150221050098523456095021939530440538915928472021945470761303519254216067556345639710345302244467906329471411970934924654550795990239062326763217051607574776479340394601735250297645974200960969239466785834119892727699609478404655009690995910873659361236497765996500245518334009525077217822807013728782030131391552363889491740457424279824791817330859111160799445094993289018465896674579308088882454511284186676212491384704575081954319605852448420057622096098720966603388626963113280779923611809845234493076030309609819052873039225852424645437394385524659244265654892821697730865601456233456159886144387824523751126157989125355047493627424257809376577933390987202245425422074851737798931880147917034210654890183154991446306530912611257921162353980314548507782249860496356833177284956874383980201685694823398498446639526618938552124484392609036603083322222474522080508695948066424441898902314325659142522671118697420848380653377699555736502234881572827158453276486248284287637856093082468670384743255562134096223983244273585934729841769778182281332945291388037721079900067799012531400965079887885909349350189468301017851580958195388443010729876887230321359181925571752895798518778971087267467702178561905450163219670315062583096170553996692421707718497939269331749230157174475162406449069985473880457906783897188501872405796902026601779654166318784655004836182631208885629404327562699527482866973792029929777630378649538542208897772769982283463938410960352528469480370956357014419561398805564778343263164794125820010091398981509741764900291706222721213026623213380934788405171545892941711490187857276576970522996892221426734574315807046069035644616813364066481875569808243670810663676156839942420558010700222578987266092768247138343544593753791774040008522437613825866963294928125393138004363687484722454220261658492282171908345581216401437519455373588713230533824446397899776799027125927393908761994192771804553150830505632057461528974821464616021349004568384594609239213732034926979526327049984278734734813876498816324998106794866219676865852359307228624539299408012028825240411667305244384582322934537890900315736197870491501977643601519044628312933589875388244590021197377255174769342959592458333672222742737515854028358446538119147552102762475809871941436723364393948769581453620973820533660498027953917501423811182851936883800549774177398032789404585767296951776515653485630037434661998925201272436663279209249654971944045247410045750203627093968026324775294726919379134590405322637870848793562067951413377179263905552343353216726673484943435623950328447436320079907393686096265214315522590072452248523877490804101704415875972261372105076874836323493686138474868345079560314074027669564785695581347136831290426033851981974936544207617866788985928468118613817976926044475788403742433266542334928999512665840300659100685147366013874040002533519161358441890979420616081121749736513773721004784579020399221054158087027361038731539222025561896218410252028112529803366448288593662076734320153131689132911601494786961224327701224877739478500579749109064493235630747710471495658138811503597968874103969441331573142684557146745976782294761444948443545765280861343037617946284398219003220676887030010857993853934586381473556585828074345424689316237486431212664521518504612558568658223229129205771603734769529099177989219092977806774672548513506620277186681680412224140542358588740694953401858895062287710925999541640887355301788670695856647173158002850758559450997823053446513147711319370149482457230001389757351721059964021744955743165375315557070502870916263464791568313342081310165784782581931649595226726988161405810404113226314084957888885313914688776327602664574855351249024008287191986008268298828887968050645456051223942440336632856914356230382705609578758602900716617198347656406172504594932559992222635415386915448114734352503112494488644531774038279799851682854754538107680818896023212828098246652281178565410950583696207570294009732387762889313398056564626022098466353698673139858982413955055843287426982067575041419219257003246530970435162601825913340801909459487313212374038597887040114114387715379699600002595815596954917016132170321083914287025524206800298738284622459735448282052052308438165164574245190068561249180083039904868692449987283850620148173655193903015492592863654912525763606602716344168439161983887835763534653305651581791122446082574835495121111122926950647833700161330036524347732080643598168075153875603445869661832470051970880644584023235392152275836323596074350782237996018531796754777395965619603820351732593137401141432263663900788174874225220020739445779236052645651961102292242770354134284870344320378452350302770972395995895621138754459561225175893646424712820212181045998879975024357259204159010453924945363661333647501962003721437374349375402087765657456485682635858399039741335407564291373889007545332586947888396150943977672726205712037533568850522707398696339941611434472031249289090241869606807316362116530681424585633291314860172566721576149828811267507249864346866559641076777640770380232575715900387414944588746087871358818495738736378445717999965772671074323319773675126557936621078774985101876351136344949149455398652479493697455482684148182434644395485817874122735075391244663120906367307742970001443769546281097777873127215244439180838431700688930336101159530314828224089546060461738543344832595649334808972275277361179867414597498017103175488404805059907021616029612155856846385070007572254850056372243178773077059695221898116450664765197386201016007345021131670298137405314050420395760560607060445650591838298407672319115266719746192931227050077396340826527534279994913761613527612174560536370505442881334002448676030174155064864355349166298078226936176267704459639443537938640616013173795350558160768611590391996867932553789571384759449350033659011529808310182010188952292864560107514092782949740079927615658508624336898333582914043254824429850511312061356266066676082353784736257002973509055759072942989405490739051784718624028108758400318967559863246328213951117119888633188008946565679686985687030945133479948246948900966250685975151166503485051127007250004246861792446249952371957004386434775357264716325961500441741713462946499092747002472253374428214141234038110520704260973164371403508194220048870738609047160355542136459917222606229354523663940491308557263187917958380781630598694918146194055139925665331141382276211588359173745076864532875346640496339775373894756604203590479129890996032560856635762331042682916043938862368602763854588834491133698475311789469324023506840695878098254817661694935241219298274102364888560597305909575823190344968099112525182293391879507336352489358403325033945284822519476204393158703720403312832536222843102048143613861935157896605739380705736387852411842418407177419148264172504791273382939654095422099134877740720306988746069614546926019836132895645251147422315744499813274945474286253516072697568496895305137892400756353964674845284886642260923764927168353197400455689283684118139516089858058453488808887143928495320041545268354803479314259264137524291234537182784925570639720604611445206756244210616063079965539820264495906569460298223320755566133378886011811468176777733118541991060275322263117490390888815388438831787737988849835971203900383400240540326751060244566378275099966313722290017820448761176738860349839940456568532515094659056356143429011347718895525274835364829861187008861839957024292824799492099389688004358030159970642897653262372092928186727977321616987850525592831225355616446602647507558586485385467411145981253955725689444509204149393793171027540342843531393583876368976344969819906622588599649387332684165132454716354244771584052235445480756404027259303072963867221932629530162173889765845647838655916138634239871745218620126752912802804755798790816130888263817408865803685988852629099398537051017743108401759812807491896748975523465169001388396201899115092367893024008383333022655966752575584304752034008769042084324385266542532791025361677851530158252673158748565789055936736001831283062452221655528198570439330714119553489405066738392127144260705944724341877573727437867871700718088461800858192476253800113464790996392069417649197170981138639464107939168340201858582012647416838255840539710394485554261667264599802127349332389780975681718810875620330867155076209230429493379031221994376675579233174209703067749472927432148817248516931412371593349985961654232439637998052356106829912498815609636610117673449761883404537457105203494305017036151041943783070839763060416718091749717352813611822585670545170184934315939861031078816627988407649344667367715819533617225936810035444848617799776545713641670830674283360542427934165566685580197197430467524359777193729669311104879011473097583066661349268225476510299845516766108311184488560597910633444032596871570422434225048380944183704076427131962477022320748174245028628157544834945751018277885643589837550527400601350441812937029982477612903154948053940209675761336858909134788381267307539727739482138085795327557888782793524340233853427629121747234163706083651425199678219602057776015681116133543064950261007372316059067204841690756502370282595802758870374357000458872724014548578300099223730390860915316945806267547393508276875316778397426560924674771045837306230644628674380560954937485054342401386561080782037315820629378248990666167249462978861660511389271692900927180258602073880652001997929417153590014815803032817508781699746228980360422033461351254039914041391893776327671096907941437418052073767098492029605836422394845581735880032401379315908467519147685530868802694198167363317806139512511732709087471854963574038661696633082879472967401939937749692655122264089506886113947878324222624781631089397982281665926909443762346749100154154780720243822861227215096817050947402431960289409577214315338864193562344900675074219363634208355106794713218190583099242574130962498558975624774318221790280904936359938414493434784947022854196720881189956908779418374155432494396882352305532900081195634870674569355098096604326548160972872036724644906624277196023007804519475863523839469408698378985380930223341500354352530228387846042296588722002638100602721021559759531827845569175229994052703536893219931767241355810594488150120759482754901973529481835032117649695579473338360541672918513355850948543673706555644936186102244753679719689203199358280489059629778603891032947674569331599477371015696928637594144985932591300663644282434892627796253845370313658348075233940980594622480566678529662450017140086013409562959741866976134698345158743648822234951886427792541429161698623078245755741831165028711475204250582244406674925169339715388863192561607794406351562170431739710704103820804882685916433294541718532317277796484226326016090685579975777416106969079188597350497756829829331603923228961930784055462746614675623806788907145056870230513240217428087340423449296413368866552626572555357828584835367201113766258388671665962837508625228184851761668527480229891053924922427406822865577991161811578980735879995262801513944741732129121239163935190092321773948420457273238708065961787547189187701318453183814118954871930574666799443234525258305623055740114297318979932393335386274737672162657253382399159937626929611346676313593211202450153072666187324440959599210514386671403094325265689348488139412526841868656580772413479392058408139330864160465942676637502177434352458270871481423904296140478150645070078730114216729868977275203590399280511457709116693742636491771556392349974328058553872695708898774734309917790913461003378580757993163222774498902651404120785998962201666729472430699160658700267563876902856153065286101681097363593946358788894686627266976557563012851785269626285219701301246832473583031597744952739521161376835586141879050474241611797924053716732084692913284839755372962866793089894212465802272280762143505359749774601270242627907421812898454582090105861249908373775668967630714377291222684064435999625568956938812660163173381675229316033622955582991896245243059773072038171680198488766522997466915353789681164993938165580539756702514857713394384085598464314381113836875431112723409351170173610026597917644534066865795005058035504087836445218491865606373079955408342484453706545310491827860166794816054047763692865553050495066423385387206745296520123146249707305576074723187913165191157208705876584998671464874408287359212121003796039316602460331795546153329192053569760822244177749339524825820099953770050913893910826994874229674961087793625955709230653139530937620556796423538967584360318958710238705631653946829508747313593601886389630722478210638838991703106234201355473821775571455230299659528781450697736617026900270762912727790481655229632602256381436294965644984438315365298784403869600320103324086521009782061426934192900319449415646270767510666922857349887545715061899266400541297255379800829553080100177905068526366753078924746365643332734792137784010389569680149302143577286996944849094724171202753522007488047641855253707865738420108515608348009699932530428832417399642111151845215061616473202632750174706336728640010614928449638616797108283913658214722664099946760691554766574356315832346315878311578694268655682756344342444382976436131683691783489021683916926022956517232474949036629824388263180252045701625121127330626234753624463971632222208452257711632868094079840241084951266651632986880199553832408642175889658198877747738183711278610212739063171729960807487081451666486053108644840952521032652395734138380260669186137838989537259018532436500233838191451895962573884267504302115488454495091381666404868932217963210672872270465916315377268920861147330549861308975795194851619354987980177894741602497355605581332223638786659186510268373376510465242654053821737614661354767297763682950534157940953247207673850465040325445859099321835396933374360959304744734836941159850072811494368773147494734154250766748426439418837482276099173244839649125253708276159129988567625261608323069580132889627032325819790722930921022011167114677590320756008191188157918079586784259395062174625230168390164457824294775076055235077475313294727523528398462393574932787924777401796438927703226260809673971030509582040958064931826851847660853021418902328631369801386868208957304378257019749672168923019586863376855029507444342449129572329022997664351330826092192787118222397644983442312965225783208118275873469559021870809395310136126367682429084984434410798059660129687541672123343291879029669322293667704335943495546658580835330169959438790782163965508537506988918789715665155323608216723773659305072481484677222027540192769540607140858343557046398060185017977606472071509099537652123275749336150795581886880101730024838088058108700254514976869936218495703078709327932391492368039834566034713995490269036523906521040601362951157818380560866947385977978885315968345688022593693041166329160530088879405774791285761713032373126867644337515808462857499342405165974232003087779690514214874139523755792710065246119302753717392803156420821377665406752210048472598791492474920359984493799240082674197951645685160971156097425115868270699656796863850502572337605151860803105851686026011854676233225086307570741390728088542287707319092956056789756608904465938553190650419526505065559074553258943038727588985790638922533722754746997560551358388235525427756287375413931327509427051208406365560153521924189849157397578168861795953635812952343265318078003100459327947845202071401694986095737305949815600441475900638690130125814414414009286909037844281781207835634265584476914345671175325619348416453672385413632493988450054207508354885528805350570354745045903966212042067165241406062001655509772944150062948484203371624288027823563882795440835698411143901347094887498618141982694546984596811535350487945226055785553437568253669192119282314550465700662721593251302751562446662282062129297808419360706609543773441541938993712645205496495321366117697775526077613897170694677733952137448175592742480567113430357477009434309006453429220415654857782910767188906409483423355833904669486871509311523453998348807182162598816762743611351277800941375172301244521133230867074604652137026250041772571553490281977246265012796169313817645299372540272724214447780766093141017701553727236345072153628459525057617310795354241293807646931794796638000137918342888075484748702451819599973905526013478159258034710286354148860610468796203677497626884490675708084282958605510976580460680379341156799038259131502718181338660862769387264351492437227337766865543144313504288878245601312955107009439109124110623842758363568499167546588301204948766549466633512201383122983929046208825261439868829090111016050272816594911838934651501099663428011660659954449217701606019120911658613675940288322943643525346896511838577065293417256869863068871488916359536591780944459103987726977031756982989850530584262949257127487654658268287740840735003350515024013102666943994197571553901139155031152746571048454022098017593147025241374237116297782241708408384480854496902236077982740830133272555815920876640640610335299910867249911607949411332618869571967295064559820658911837333927576032133216077633033012639130346780384506177271804764079345118902311431098234711733071579628729331955797632227920950731338072585484305292958738430941641629836106537601163133600660471069111750833313127818366893643488762545219998515516699633500107274918178585301811527261539360318539771881181834238458768626966965339507235509173382565023048466167355606581218685868716481591808202945702246929917086764924748192468840920759751930303444390892099990305766194138801468522308331188366630159159830337390818870545727025535296457406423031729104750188603457463680288403938717516838569841314587050519438156712659831041626645372640025780975781808809172680934319819944214633273535462074938165170248673881343772934402144278603103514496632118936317842753318053660015433712450915356044323982107772376157119798876048609271654084523071944681702472109651295141163551207009950641048770011558079402654692196175691184097251696187668512419707694342020883304631851805253411253895579109028938520132980932283374732972791056215621179814268672988298426435443013301424482690225003776681914947835109076437975706488719381999188763136320023930174704555811583720651405373992293796067629592397195667815427187064352878492500827234607687452536717838924040272412659946218953001466014061866379448158596274085615186092811908090534039554856188104075443808138497410742052560755626611394092261540800597416268419041517034168280109372936198383513663711970193855036181262735717035463165452248132422866939758196505798260598564377718037855915386902671881784480378335476785947080117008893829706312871425367171956394297816203784432787775710039607180219723357483216081337389244878247730001909702261820355360734045239200800969731983925702492298148565099468261221617862494461351711958922834549006816391145057148805294510576721957413618760927732459741399074388597204730833598087340274545192031984158007656349160464015946254853482712395875272925296658015188967488942255082849571450113465542804894753355721086810138612915674877037616387777170621418617101119211860151075101801030659810347396649511244381773339151799062359257019051029956997963687284975412806747284106044911886114808636894597792640999982053553905484618562659731965573714002993136299679109723856000665818262438967210183014858002145140251133566260171565853473279254590294144392216746610930359861073074264451526081897725890781879837520096731355235088537732746234773600775046101191315293268972169704690164551749481593045949607345739150416931371487083983848160886800314564462814102920407032005264819536484934575237679657810988038349680139457307826289531657347873532780683031141488914302490901550557312899717457484504977733268362077827906805395388075667898100194447228661280468061676057762608266018907650866352877341155496878197414794081263809524102440269922413635468198347102742857760285797521495727539685635715717198581966822616777862170195686945961400250848687536750388144070496390817870928650186687648247599589855865048312293105579960588938137101742536767056463084511973446199790162083985953362958143933191298026311506318631753680381546408381403168273495334656065863886743413917827755383840093034146531694561129513393325843417379009724389058252066883098097278718541874633496767330373949323790045467458151368633481013530480484351527906232125186297192055176089751141670033623623586529971425990646163375373747105999479374770322400716177806417849664880260406743643409902691528824149607020548760184635279772049740354782366769957153744189677160015507626653949488683336985525996755004586741576815146006352434996947398771264157201100165620278566660654884021512357426781838500375401815271923027281483479142613002964239717557529849456540567766150628493759221038107007916972094499675761335682899972331684251519340592195622734683475804495029584929360991997616221437723051691832096600174737405265032518615429467499912122258979506973198087484326908734768570704179504020991304587992527640924772921889675967067798105314145245410981467416295836098987577894332297393850186333324220864644876521960416481246729092547277670495543102554271744010867220313650913129067574450819614674112109679611689660547753715896093956440558293633029985430477072097569532346063542879288456660199622859132969111150232584306784283838097918346093064179079608434031468385635725364457142269078743962837146267361176030835266543387293678060337154538212746964425044292618143526910954918345113839422763713935883196355318941067160999206857718559885841040237300283504494674100364871826796718084762657111444282816008729528390181569289954554110749332503393197849453117955446677148156376399038242922939769636788739418862239955107028981306346096244520538396134772404803625537492120426063798454728947895230211617827348529855331288284764348006565784315251851094813332967851728605648750939425617148410111307097021195401575828170655549857514386650752111023283197025771505145794957175415505478019224203070179537427101413303437832271452014639684801058333141570432741876486380174183576277627273311229826865567032128461525100655471929171734630622810829062059985424174083834319005097817952778497708648815438728775679994543199203656625271012447040279081233075502824160875923060090885362932701893718520461464263930352428998858861173264405952899187572331177968681875019417280820043786493164424832974956810315501183219261728521650240149687921024899799531743752567031409329424029924667797216934684374188264564504545204210490837794110058346221468779599373223796848837274018597067571033635553879068648569779568593716385471512720765971257234645477648996132935961565924694839481697165009956814237991796272459467481802653645218261789529989104862966456744273076240843192854297963199029168324808133575379772770317649274534797687779744553683923917967972501586743011620461042404551401712051263324131898144956873744179561932267666165273601081136162048008559664008510320863272604998759091372792370712704592519671542163021524679227506904635959572583083751896432633796735511750803059578007682615857883419626586203117150025596938503406502115371375912095676590288805244673881293208868858115541952179720379274679918273893606834737831943251087087217849629127827230771946368908449069448283841619331647783066340222694115066553731286233094348296747917017651705500287608652887705639246696980023410746162273190468582305896643895154509768692381658511410645807790918358520751677428263988035416129400711512839114262523281109839779605678801105872127031016079468398016265981069508640297161955181181215824137307419519043694616245470696181950108445976220833839725400671062357725726781826483120570896716907068721383486339661417328726419239327757748483382123801331200649313293154552198367529274701916694489488867245390951795733083790320002522489901127848908929613548047213593492132519945268975645009976060991787167289160618347906808968685967108171316662363205569041973645221495919856784309175445465819729900913205919177775675272213984331632857630898517165886657972783330317716558386704377552397084436438056693254362482159348618542471566028783118923426103501937480791978681947246468947847000842317026808137967218691405525970239313317675711387401391775640829368924499375473851277405972089993651016485685988293023771034346049849874913492695384789792159126457085865665851908808996895125138245765522507494216194249262572314801778551512127938306117108557861461928549887220214549072784263978271574863541598946035795339737176805225027625898201870301923735902395149645816174356882073786767262151660251399790393551575290542867220598026489720474110093528873221676811873788365605877989971125912072526100897483341889058857563216322977965563076414506378331476469892402791666158707794743595635902141194915659622335258523328747049364941614589575943195192272386634856328598414937787674713581055766515050738636135767664694795720856976236782061313802321264916033203154771305627891967909530612581360895595165749146109962413977240477203010496973547241206185870704905847572792778826652182972771322372772239352773121571328326260244618059301490162891832482215361041453006510818925288538178075317551234792739584436540787007364404287343027445032713849332640537224704208194159708936198372312666781421149265182941487981427407838567451303653698587889020356526654223122826760770127324068891975132303510302639798709040031116931227103958012314445276321508525944301173177844463626259856803188191588091242983318115505861909117896541137412766486344833959798198818798715155980658122870700519511526041802542799085094800608007489283787479726866963904701777516284466088063081490364393680216314830408992333748518414315319655775891731696592349837469291935353035953931357019197082588283372202973932083271666810515242022980976950818518173854132300103183411953363299456604647535994926397079233583212735325625281252586350628473409456207140058967811261744137061233969947152002776996931857188872493122750424293100896664115065218303818481490441407972817363628220161402726367015421333150890624052641683614364197182806230648934634946990180511100292173650246780031732345015847404048047467101627823436649774285996237237171981799397277375786215925357966174793978747722614287733437250556500350680910553819953364249268529503822479859463870054645289268088108445799426966162766403626824845709426565058157262245492326770409687648962801912001985238090349403296789608759208155792619575413151654092412608483114572325650209968556480407063524566024372292089049795019701263173407259575707487875223302474049546120579987471845719409182991404303005122553886590216231758451817320131893595726989989420456186269252494627415905432229609567752698939239842346068390737201466328285279190019496662799507515779108475559294695497133891478123529370415963812078246877870286398753802428286805316731108968112501369608930256132179534911000493179969549059486125771219573340944494337160546727995938182386450758256463639653413019277503264940172576728946607878318856907824214789443536899999723607083455632457617696796513674729672073824259438646222018644414525894091379344206807869361470382571825501221683677064883930501579525432921784886714608026391550620271796129156511594044355252059758649159766984867248441167690959807736808007565628196770921778592414972586273351163873230548548726348461608920729310686206915469683750716479145011676032774214682906075046806234939213485804090211490279898229008039678465412293122044240073739681384770619843124589534671960982121888665743308642478849029839184063471545143536684668243353795539388590084083249873770476550608553930556005976531215066555088745726401123600483989461277319326011190952594473135368657044948600956969415285889755966437743649473718522320054461849052293728834571759661893886137195204324164233109179884526722437560046276045919714191429595945943500331684819650173100197895309638547717911284694025417436968485155048860654173684859735583628294198294054399252799206605406332329238435772442602374101338129418844451711720292686000830535449963037084536201719182247889941458319098398031473896134725933444000671331636358722808644477217624365265325333722163117461929279365632417573641699566502800556812371011976916253637924662274653012344599568435077597684525037376568432681703959943361081649388531113587390466673580084398410193544922685921326348386825910977461377503196056981765213671354816136853349255315429095098038856763923389337575053088720747152425633194757466652488112624949068167216824065372647278833670614741724422359140090977603746331825625595558643715916694476971312885910573342855721081574853163635499227277453610310280714060293826538715885263056548528312047534045411888027392954192851665720546625484601506031048561083066160687116071081238697167735420572553014360456674676841103343227265532294887549746058152525433176808908085674959576329569634795350124010478141647985051662610760083329519749400274377299185289776036318837557859112020255635634294024960309796213241060017067099778996754356394146843908872922061995414987706697089727035441316961897032909631049810177712269539691087631046623414987806983742193889646081410166992792747329530708809457795785334250578508073986827247198651562461638844499853074582005996532633172077611420470900288494400093686563451994819513151195411065097174806369922752699806332637065756182343461189565071716554348331978090913441070736551484333680894721629487842618794914359478429471461848599519753993892462045333771692470031104161741617722733018547869774688985825383218878209843095217238424440378238686427289577605733247536302194568556182711640870781578645038415418549821687027824980446704593392443437963863558604216930462498563270395775474957955888889545884918188169365971023474131345349870264740664778170194480635069494607340974420659913033636896637195417575128190844298173910218008960172951573219776844957117290180152473864816160578917254031886548628997290310041891949857472279599176913453529433033441325639909296030726483663076568495033302319993290652647524477146294756053675535218556519292669497155585874825431061665652442588907374247414888202914370966864684735026321757346278534510209191906706546704213768727673088434996208328326472082454945866781678233424423252804041641504482410869811306770928698204394064986489543386126755666529031478693862939566724944394631555198157472593266669299383059186126987906227863381062286741184192470088136320071618395648908914699250097040266277345351738616867086954131406556044786478038277008549591378781414997343595966554603473175582869959574644219289054772639913017007067974648198219180842235949363801516475497396712429622902700619597198463779912598101800726926968604865386091116886072406213017806811041874243553268894100710181108834645745190399487294479356946217012767004885481158727556073477340517815201206387273694365094111957767409663884660874673443425322727532105064452393280361981930474699772574331378838668876033763968028961878722143988301042477066338935522048584787885154030515727964587320779260756313826011452054693248645606507388299691310401283859242797718977206724416325945846681277707960305140967906620304293741962679585607703242974058019350689021252854909108996880192048832414313399403595340517948088387112475854246255149248849900983360989430095866397186451047969746511177254698086945941123251577002714529004032837625614402909192856517734172080109725343068128358201705411905997600782983251807525587919813797148995811163431694056453076139425148366788159207796768861769265498687845152967770848959235985961215368093029925777394852881332921291114909821802882845814109005389689689191629957976737796424899317067422072356185471506946008613715580084090721439854424569914965845342038697848430787116016589011129443512389801302494080166493447728437452911488317412848877427781104220267650987177262346393181806326762234803667429512481417446148537167260167698916173662421903005040787244996269420707974923383080927908611755420721645116324914165973264207904437690745079057486784333486656287906489627153902029566208641762698216979652131596123744135789062365056338185273873127688203566307646649387202623691029849243443004579034096300203422091826102783563719442401775230656989622054555633215222409523065108078491915341181425478475657450136570066139731495813991053646450568335916675833257912962905844225608218398424290283790040985688402878222105009804823152474858650181010503147200409437754800671023183438893209236657862465146781841382479734129966203914991630939884872273452934333272924072718115737464932397797921780990565474569928127862583982494538232649970077644586144050043354753187184333904808779516354440429514026468725535532935776939519477118008861272900189448154326350409277455873885568555164030109318163767962803006817336878797136738843086305725789225793450267233822578518971224291123942295708852635917506543456089418554448410109316338434404488883241966993452057368483470883145569705944149824190188640284129121845048769099885538377654915557240558177106369264925557445910710156841284628944716744338579279612791764824253935480163078198132752913391134420409570078957361452360476485990430750158991963196968440728074575024888163260060168422883606096177091590286148377237888561153387117762603178440660506767895302705921302345662080865159302188794166893675359673558787274953168815091870416473478343989026237682596386052618429259636256402558635688787499582469373342800971407781613583514299070114851201118181839456810244950264731619840451724643847274526262989413323168903255117435203274412003598421341961125371178384646698318333950751849541816632819128751405249158629876826657083581081978798165733971782321986376970993426639849033934305444326838717096270928687831172728811903434825694770859650984269059040598743626412716298453005552618129069403903869832829892141438644482140564722914789431040863704066867058775306533023881769124077290382518204191289083527593406428743151123578191252599922195876080856050166568413155225334456393257112304863330502946681309754404590285217417563523905543364677869444659839852070538903604682326966261338844003185340513017063378429282013301403288238905182476040131103273084392485417860916229426949430040759304999597791016267720833873861834276069115783970544609683892076246274642092956668686320608324911385275666845116605738692456357429594091660010571953681323674338079233635642674222510461013384729133440741506141556517672525494935659985197032109835426927325894964601355216812792148082704795538897597291617954876175681015564882523379115685572108154542766331034223497172843864211189808572097235482189722230560592165509869904278356721167386686964483338354044879536240380677083466888043240678722350289193055070880275214570299168626548806250305915659207052395258415940176534956016630230601559343281372722374247251690267589945081857871070238379274232549305400977987542111922391662995189247084641604564419362830268026140913036716430387958484158892214359643188229109254386907175986095537100915043920695600821474012411372742421240639041608099814297793240771124503299208402954281220070932781939156993098578586203865458931434203820320290174068238069442029472547256512766792171676455243876485877600376748277739117202291488516397798979570160516994449001611859464798213802359785692270526457353810924432668124953601399112732464248294765393190466971290867600894782441719372307823114929490460753937129952406136931066747938069674191205310545673450912657788957316289232694248243304021109215943407515189441348003785084515117560068063766144785933870330227947953872595675033860735775587629142572790608630250001092241833811252208094860815486230660042053000236694097152899147587114793281693541380734515869400444964464777591902393145578676366690995594794895294166997733740365862895237019127185625181696139006914779703293125075188310194002045848470252584736089118784386133877135544918769029529187870619758882574501307990648134295422276634351256530880261807937126890779085033387214724876441370919719066629169389484796257646922354496043561881884192173951064988586527533788060765721534541887380427108009158757332983873949534042552587236787726262275732249589237632706811551354527357368616398121269025491507604441450888217029998596766011472713102738321199735903479001993307627208887338985459376692429976726240728492974220202161046980457382426076280137823720754859674043644432840243790185892622153366877285358197298901186252996228647546760484212678115454894537670939800126970976848601258167510588086686284567011887567883909603402176413713328818852030874088203225050846838383948225910703568328008181341462841653117543647490302775597764406311325092582641320391863196274430249255616074602280306876696809177168124510074239680825795548674885518874541846666148054747903162620184373131455203289363692506655262843705608853108244022960350872072642586190601450428441448040812415818968108986283798201362904509194642681476813817061936183062650439488332022314159745342046330929331230371749985403192151537324893064480686629572329185129285316239482133580396004445760752550293182410399783291232974902892216309668193148860258842573836709758909068376246225019398766680506758147553941889346163067356235344876554070916959503792190030799217349144639083615167932366507362869096517620831819812301298113593384155277486548383170490130926585220292992626838687860005049536359991183675703316003061614312869448275839875823335477371119346044974856016361265467731930338480138026356274820444063401851804381397815293482446360696329123966653318719109660812411838600939110943353287851866351837713045297189319978771264336187154642530895064468999742992790980169621046408274885052980509785708944784471225113496605375093465831716929984146552354410992470361292355561320476093834546210220629360487487990093970728850798550300281938368994312248906201593074478887213937402045347371355326833365090310624995632774973208626491313719345702416846038037351908892703055381971107196336629116756147331358824135136308240100768039746191620506286617888373821352831217300123728121645627223372227508502826482119181014890263762460313652458391240870235575071289329189066451454468103321866990086213707533477721781402639237566449791884219338739454211540552576015622567859548677592029826298062276899959825863123583051033988171370716392077671858149226664523994322329232553469401353491594408866671373038676981441369198686006867207943580359538094150255845510784365594759513841888792280981440261026947455332462711574527067725798197419026032775847876464296787762980537165508277234550778993910390516292714463506737365314605535940446322482924151527940238391483041376281068355009901704191326711188728572042089012972884936309236952335655836385411216092836670982907119247960088066197181178573199798241839470063592223142667559515941314443417113864305227306327402160241647235782702621092701110125486387282459837110954086875835835081506138941454033621281981697643406963726838633958157302555265827842156287197420933526390092378185784656649104223917716205838121461077812145556463366422862637517603697370148237112544531606952542836674421671227263756197853400761931370559308026176284235402730267383575103317377213426060451653009398907892892504843377534774510479780693311117017013958528750983725497061095398735494954620138183102351310917990253809956770337620086927638193340209916256229630402439612460187298671199517357820746240340978610069739218184728045783270734908692493028728669518632457056909223308496321232676902619296399710424678861003633273432317526076019873167170269962541847542737554562891949681937856504980525145429567979463367480644660019189600020787508484202136083652238823037303369229526482790194068809227553268747006499676558279401014084031461399443233926055022631137036773627804578496832737003539471561468073632675265755600304021613112617910032206041288099878365800177808366942328983293834409755122584141497707673368707849201092078184473024963549954959503650446166426130015978313404669839311462772945719702272503484029475296623474797532585419978657093411046138703818582728267497078275784165465657041593861798003327567522925588486738267555949913802217983828922508366492466765899638630653348964925086836464871433881534618907057750328274569601004167582905204944003431140813381816686708327714060245283137786315486537265690401557180402889676964601742784235329065740353005723639907517790198762247047802019379503638127214348490909023743216788552192482146857556587269520644191610309469470771496332609749824650338204954431611017698774061027440144019013665378160395128831525263239300064818257657525628231740426289722087196975901263337631540190631174275003109460466439963798157431819838032226800383545054847190842660984592676388671431723094062213756965855964585893757258061397575012811140000329631156919352876503670202375065042215920805052773027299203317144295596952858258003449501460916593835240965706973630459872402347404795110986781165293493336246933693462318767389185780292515077166676218897796835033411839074911377289137705051807959946605281295935799849600110424040334563905557354934167662395120349296317770826203177747382717418354081927891185291562685352937300911944942278976323854238896600746583225169503908261526332549410392775231351372913408739369504329084315338458080759764494342402824884199412833162229435789528375461729080405587477105510113933683932202270520637712514967353308714648855774560926058775220857707340381447743749199188535115055983993030778160784073347388893546403082779762493121355766633914926504496106891292102858531740662541381608383275946507377113071354948036806261062760261120120640426832387905709186208334836413252697900138033655182172879366704030546782962911819579968397298985955212330386078383156551922388447276814083401880383150323957586788862638020844154528159701154555994289824419339773804312327179828909576605100346396744819298458076028520528507455705698799694542819353552616778346517905723418358225142342263497498986661543024813457874179468081514831300659271030703850534771379452395203736852600615364293691128217879318051730815199901645838484938182699403018658040266046492051998855773239773114324918094240393349135483699331967463792970217935055305467304136756245879168683034529860982668949848594378693634929449144184076026808759085484101559729410187239045131793819563284640214242677401848362632021056821897407507329977732392008804322633792225862192281325089947395766702021748735671251882716513158312854684446777934200015567683382214633562969472155373744772746102016655852975460164271339087042489890464563719542353853867443647434254713136033054180896004240426455067276941006401377063956342320849636523887729803894433989781507273934078342048716755475770366618866830402635128448676323323820024997982588584733629567165407565682408716470438374702209632286398052223444339480468195135199365168437212388066663153083505174343764217473358882696888070639023231013394533013008508012056579301994991942035205735107337264502433369555164428848587623649807769403580798239935010683343474819905626623544401163862603612515929718919291015952780288545596762098204961868236924730383142161425247533172683356569110285569259939018772548977717609327313431425300591485180335240170601277087369773025387065251650043534200937237088522946444919468038118453836232942952448919274073748587614106335326215905995698009209781471188215815215203430495377582638838249959734078770436088623563607531643305663125802505174312397444764018094942973191748516394215007637135778258871856066123008514371318082964901034309394412838997986421759242263765133993121751457069544827324233535176025512518989818803545978835182795812309278221707869704875142463576690183541356288854591371271498756390693633443082596580758282570239140972581254446104075036074470936478306637310169343532871456035433516418847065294573823548805323055388106650053978440167402861219969871425695361340367835956462315261356567894590926508426814114074106484511743835125022755814051658087550461293051596039961873117437393276046112127183172230983831066567292275204630303554952103762686635332953667875029092725373898661247017947994762943727632895868920391839416059602639297961762027410018974190662664781654610162025138362012025871755815720656164789622401521431085643245556106479409276698960588520036670713380902734129638016035752283760493163416252153724196048836397028432407591870929020796709503411971073583346672325852363324699350115940515440206438363875563082906268036013763896802584068478616169086240439610441351450558761413378741572258466513034235942685921409632427530616731108496271295861324556595111643468832265940231628184049676203109401852620532204725820513611327219933373949049857585835632108467315287372393185248680264646065213020686822313382309521178456819109768583872401578122219206006250190624079889373970805041496324421559364362624211369086612335987271842372370963142135271864243977482200565179119563626459654482334386366852586696327570017289328089339764249417385475879958228434896996390151408182825281238716576419772895482127427818793413378052148309264559719100939209464740008349459235441887781633876808260919461175595779769573211221417303769201298657027393015969500167264350393409633436075755784498351695714399870874451071797670470431323935989950193991913677288830723746441859473754003457495960681570344943419561766544246529873721712188391874215506675908339649699108443670611347224070821032448411631277869057721681606546818800423845355619256157116998078234560524320735619315247139017376533201853221382592731590070674558537658409995157385679611744868413993283541543829085510816482936511793336476199428090796802737809144057159687383975373093315133823613762794293599789327755756670250852175185047640870229141061279229724572064900696500598945965333334896924292222153454703795618411695006085880879407512248966834715627248951397614974187480720022109143459809172822554134329085603049801774099930379397398829516651731553522865072565935635915793162410957580558716202659443791441800664990806260230705464942524630613155753501137691403292084176902728181806214801419426380540698749172221809496395300854348243141396691456962146436797216194456718375783508322508987027460122333060563114675261019633710256167030008856888817029763207985365366939153834207144647349748394361879221229883327923053453144973633310977131568459128795796123558823222841001806882299509113991098144412471006364463128647996995186817615423239130063793611995260255554958199766952663872497619872971957045748838502710933571620726984391277483311743542958456003962962717620134182731038566462563822301116110382764399547115354879010441600186166348575182639674048122340224690559487567096146534938760607556967875832015285193635821867120527333368721998611604335030166178325622401987555690587162243291674592079654964454811921413177324390817733146289506872100032240431950033327882564951882897131362580731505994205311503850177082886844133170729333522364398961897439240894871821446581994740155674054083892036621868208199510914240476296294365966648757144226091584915578991135531584867966667022684717317973355105891259541946408347542389368485831474467101422112749391680921230650328086431031550778110356352732428130222475840679693420689872516415616294344387728763576759992681622724145843819025332453719671697987427429019873649810138935990614233712845554452532336171551341847385595990775854651983157786237099655533802995252872602319609417634729323415664402472885116748924237773362139647016990603371931285137479468616552239687911830235954942797093936703545008003282814405063192556315441545361806309254544057438017313575235375375522558243113575769412039941408066176959120250136216891250206347195462603116705262123355423995095194144940012184348808892771908596575429778628044516417540183685464241707967519767398054132321291751041148769110861761638566847874878534819203107872992129431344381727093739631762542851814872143063348866748794863216523911277251516384241407225914435660039911172781871330254531528286020285313440141782603547317648937939643262098378015550877256537136687401265884578444318899223101428938951943122591837490763258528014093756283991560679709333610226599699786950954177596232559976811968556317766315966765216704011237870596491599289481334189840298021733299046290126283516830869591408163260014972743799174806010530172331312109400696568863075640892149966957048095736948036835554589847311678744778133864668383579433219175090110029725282012966669711625294412234917667190411698038614934522119597435817426998978865778445066055777553173456589328536786683491737352047205368011651525569237393540397266680742051513931670751064239944640457084537048163060618316479468315199127205400486205532698123245342245798040307204656126814464927153558045148256454205729235054298152875769094720539346818772011722861327111582907482227072263291828575329344888884256757066126730446830544497156854856368584508768736641793263168301440513521060859641038968529828576193319946976295881112009463352843144506795021567587117226733991165754666240956025008618430952977213777930088271278646460742847541830357117474637239507282015437085968058170531629858105413833529571198540061354646954945621675231906002612567520746000435034522314759967091207794022053739451321669726343501710033588620891392425535713814269170660413900001087304809454238902569809636020902439234244566382759302632034859048441644569725020853046213026674284389522509245220852456046549672514782133496865028847467186343148315481614095731136935956707799106760209006129624061230918802093015833642345402051222828060934417817461089553341155945504142630044270976260460758216883560934502294093146891392159217623243670316099532896549101655015738086379336559426024937798718202403354128056798488017944834700015587304805985299188385639278317865021717867960506430566956449034568938778761263452862165279344142810720428598689086601804853729751852015721334487695353952179185627025722698692880814096304855293876220677094889923927103809677213120798728362521027650217443267005154854677586761785154092653742141421456260174952671317262151259189528493954220899766847137189062984386663172627036764582874058068516029928243648087469221635238671033837802826092433481728623720958944276156343257161195953374825898913341425508190626051475094948713400470467430707271461723371618413552365952767669832479334511659401367280138635497822315312017202151708178694784648634519518281203956645461295405721100640046853319601850089615118243701428362655353330843022884923861912258949772590967014367579499004747731084318175559417002168367757765012448638190882569567528279880002123671492050091293272153428215287771677116842169674834470271998649399791365854449076380275554894414894328013233702735752722844754634655405213356854347793245787375935002737937142504421913684160186871745691548144912153983143410812192578498785183439206583301931634488202556240481093416270219111540509886151872425019460098114381818544029043307182046393769091438479176665953890375715663173897142784689770591165017613548387562876420797832586453052798089180624131339870487391115723724227377376551296889818354248894691019628493500915766114081658119110225053220851983275883122619619526427466752853976490403845888382827414323045711669057886513120141681723847929105461383184067778602935883281219026671031502876983801064844009347387134723566602482658372628062185704705759340402875743585401427360957825692203484197558855332140353924158310071440233650178354423710361739899435506617888939059525295148421620387411755819151509480964741043679864826608281622443009347800566331795082731546824766700468765219390818286187362904085078493258690798832488128297120806195921945063482507113251711278933397486829682261347162695162161180102994207846870189904604043051983927321692944546926324883924353518704881957188230818394182124949075714430763405602026695365772027006379831393475272995090301226732181628242503089665349233473902601521613075580779090352682671860480106255378494247481540892823502080071678165252246481308119731948164165340147454882952982591398091331335761715039213455654244697281214166205135597351991387409421385699051729870749944157372322915002792283924228281785286393415103986277601988929563464251808175484370224019971921080285191942077489299188212168014246510213129211387200809766236101297076704456904166550384929730855164802675593170244031751171908249870468751369846134596380400890282985484981122146717754336830956580070688870941011990411670214384435991183347293906098369411208309506239382824047495940541697707595716998752378792719296622616461982562717985673486071398142928721228498156919239689872038095638201640604887409369934480552217984999662065492543678195017784377684952505212887171640122608579730158794719362174996993838701733749639056889240566275481151896893082541281869227088030935966704960726333735024719638585774000138309839160919677969113351613494584243107602964330729982028336365604178574154853323704616158164156495365718799338912198323626357655500985164916947890245776241558299236924123902803952215479075425088411422157502547501851315311285180152105379974935661918182159706825068589365970258963757803739536284296058604566378060736120178442942546922605119227662547968955790573081229368214225081303805233509781626825897897617533510952643166407882314007529856994035375933734971610988875955009429205935405502692618145502507676868734367717064143776819300722254075862131249078930667669194533478488729202852636650308228191901508311737999212671290034554836921747971361955996916522758187764112350099786847724809168445024397807348052725462459629034482200086535800565579482414122756634577740015922786157727284133951756003308699673923995600039467791213297207475648145097890915544434576486914217853973435575364299894424796949660108482009929631702477508269554383516623000039411571436636975610014468090443557828727795762180448967472491730815609298609706351075614948874140737977044012094853406644967235911801625495231624006890404112743868761502827022808259289717591983704967017914680009019570601891941221883697279534837700167328017213569969853377892873145855350196322890328094122726599323995049340385932216578026319702974703209752893301926200889381675704541268284068346821606584613657296766532494543428490846493673545102208627931141867278179174837301482058770012054116102871936441455250152883830592396656449775955983790635728582246609392678777012427351572534640790432990125744524257952605599142560923444332159834558997013617404550862066310931931048325032193881626776792917758089426254608673358656170759706905540774366718722758138030771997930697687385717513210119778995822043383527997232881987415865760354578487663447725035730322574560479187329796736281968835885120743136666426704260782516255904244774458858369308696186416958871240997180697503015879615424773513508995541941852539839809098012191570391065245652488563233830820869860510224206416821045277917865282404351733006950340210144686495205638003609355737710467763652843185631070909639431954241663498000065013908040749325358202331216693658031983360495294371567726942947036336794598346747264379114886697737973206849210049289256117225266579358494424969939073467001493833885491062105823160692823000725898588070751008441905346723794164092421192409874935818787204444811222459093623222563457083147726595821865873054723147395100080903031653003642310546277488762609164616505861377314014504107687650725593553335651081365044758665203722637842757380650561877923502046670517177709314109207027326990673799275387165667154200993004725266919327864063165811877279192889987829726605972968055846257564593104558140447745330417909180910723133270546630884097650899786840272240805116004591265584210400433715962679454968510793594093675182832555585285812844202413174263700588906860986497149593228962095488879377399107708496406265907739089879182542651475181371879379536645124232191358597315451964950496461174304581323584589789483767647068912958183198358979038933200159866917568183086809391027889911397551069855998883199428598472030546080892678532511862704626556950992176554723608025330561872516142587199783248850653837722149125283367097615207598355890742071628012441985125011777895502734622165351359550730114556667712711322905189773153835528987614807461622140039881375034299931487485443065948447265798406112745538906258564910971109779445587695733464524433954539087396098241673436088559067864440381253067948607817266619354646722177471114782590525006086556338569296096515104422508764609767666053479967718843967450066580605398690907539103261745755778209310715121884601981087301602453156111424129854003288859300724012993079423686736328591407844624092731914005400421251728994706443691149110216730243021267225042745697422065003303263851297926501903510543667353359206903484388126191515293856786515975131947766313929556401931831784080139033597107645637242251735557229667230033944755339388404997672098703119152756594851332670988103171240187094002318074529274355900526837609624268316710841952158773337008152833411919240057771859139368193176268924197456375072230438283280847455484605153595484532004045680404298467541877639473469304472307054095359832380218064722185849579422029239434888675381883135943068267349094915358473933778618524045573488308795683668155396821742488438438788349763893954355796232910370785737187579042014772125313592032798129156774374856337430665950349970549833766001202426946609109253623632833007280724938298518506085620141413727724916068577993640361560955544363300514474622700936163274513642713655052160428762305725036946766659726285445765363701391081172222444133068873569951016087115830008867753032026932120220256997924602364722596423936904987935215162562401027756472085268096934438524083304636594919742418333804499916517272932919604869463415278026809458341673228533845173422265473674884397518480531026822529437498938137799684731812025111957034603620156529018730789955477060658259888360996715868527316311103559558924800848614152095396733783741902826347081567683003893774371676177390821038222223159145085410275980364782711297936220599407840327667545308720916470649154815298349763935522717036980329408177840947163599514034495677129518190997576920384262394866460142624002830323210747835632293121395148477198694141464828923697912538078365187818231705765201944592343431390163463465271060521595662670717471113457318080585033829897517713070271296195939258190975730755312139413594858299154445466446198990645158902315564893788033489313825091038859314280822316745621735120919280351485175596609182652463603525145630215424947105265835684708143285493432769005337845907010278315214313052498051767084929817845611496816345588002006112513291465047178457822661824304807444939866154189288873649182488863816778403557564554125084334973190899038088013808360210892519463501167073583530073817664619814151327620021815999218859880455274309043711964001995985536268136337891919111205287431425905000171372847603797891089946744889547655643587362714445212142339768889017051783328322149966784721960723728728448295312413705129779149939531107930581436310983583633877758727183629042010798733469673163908089510916289797750660757113578179793642780362603430480888675962614407655231116209353058496765228386635286164380304461229973569966331880175377481897713067113776537993584437316280163946424111975576348372746922710057706211148824897341979895287750855343307766788690905060927012279214793812076873939232010375936901479544356639850085966593181856398457223315929767657102538648707175301835667518342367730171953429851308523753707379900831000326021549449802228063585463594671615007529231928583985106032338390264569501721250145678914692242997008848085926872838829249525350242802723021119340384361598194758886255152039018735915684473116318329300994855564052398138835809930867370906577093395751652706518050750733780283122500807837227433571151382998007556955683744604606460693514253014452340443774594390521906385592360957746584416168986173542044870343412597707790566983028872391207139154775940541635282249091123588408411944568872332553878820040760729989193325281433817323594833568287846177411507478972554946626806766149524456221272877759074017509487547430523898561553016362063398210514047441857391850530792437907446579844611402078802412251500353242010577714814125822030940032218865188369408030715014828140162198611525850155702531670700657401273496749070838596353007093658362644351016260459407673892232175402954801729829057483897658270045186753454998989878903078579343150811274747094827099914993262646435323496050951428190175813485901471507521441023933577008963770359876458349956017900882271350081303819422854225811659474302728779554634540020646030387246786767007051784029726840558729129193524656109185122569398048471449956993434618795866494620808630846531777624795940619319978567957466536327769510242400316660790965381466076124641409022936629996840058692950632060189701142362584277025832491285741404907590287008003421984274437361502245846349299981859724108941434644578234907432388927050459338273750627740786957239423580811430542915326757441082126905415449342181282204224070537649687525230245511397094399926723773116773509917202293218612612829493767178998542449573661568382242634882808582177289177891580102258676645988730209174568257811848726283805612087087554825231279695745069973133463184357068643210744286264032402954720284391808378899592570836822847502807654052539265130680048123795312160848061035108683036100144087142233748171160777960688178166396316273365535774775907785403651087131487818834562882740192263578214391465471629781535662081700178039381454962336586192564712696273679427101175206728765073296768025096218672475579766335185260497558582134879216904166554495768443929918357666327274087524683961619576096323248073643407442263497082004784064624580151280314790221702388907328316579154950622360676394502297424615648849363661984309090973750954266521835743365133718549269144634800369710035957066794451320969621333278656045028102652490649626626526297062591000704023703216032528527495190092248120639738404404257700746907474311456002442682861280440828485286139972295461752311878733301302479839321614669652203503864852888322177228516833382851005941431051796787598463312157157824978890796306463267174106553191586672090266601700436446123235434621767305413176504671630666716540078035795812479773446760113279044079093740647422490315314024573177035801111693566254904709986503641885430540972346685082805408402818221587618188257965512811906838808993309703511942506702563352791005937185649052589113760884443807799310734602575322677384441934938574773441010505516601614449353783192381147319450598855595155643081347841659675527215319943864517933202108222960841219594983770804345561237498890310688521744104244248371980083385259547728229853368889027789465893818452485591212164837327134071005822227057846255419389084773220689711303771117534204376531909108863264991256639138183994380335011581727361750975156153692670738114232774917244250784076346540215429233152231872360750803523277114854641212474537916362909766656994750051349135481358888529133169666736641627329916763691290184182229033812373434121440318559652513650275441903547420776887512830548310991147514818766141516715021375113486300047463813319185598019640334486760757801139456568595160259902415142042704147212683430634412339698833684179206493146974499058038500041488758074084939885232843755641519336142398742381958272919791059402880198536381815055739031240734671677690630586119302696879110308789242378064762955063277434607644705836689240910262661219773376408820535925336368471536243194885129187831878943454465653907721593275402147832510781436782165997342112515660369399654491464834335545071311043174738905827808175642969204853811619032273940159142698973095665749604292571454476755368856193620515613086511744820669820129878949474674995645699737368831564770881809404068338101141161945071259366758127110583449640412902054003452734683947838431490376197456954523287327155353156370240209154832889983424454945310649832928865637063010106111667364724784202194687325324028747123493729670050528114516329768268731453271161703034987448504774799193907858485256696574445190194510507354972710706083874747105278737072151977989322434533277794385817014875587292262150245716473696666505377749454025023152096345967648352268517143022730807761170479408443093263624216934678810779156014096868181669591203514289217526167982155185814922629484533855279616495319062636801039595250355803116449180277380985889768599976659908035109926358845083068295178160560301572774074271714205597022633492061916047846102403614517517030304691192898884089211594882952985022540807926203701951455034215274887501445908638815421321804812545934115969874893289980224020803696108153104129470616259704270879925803292053921848653547000986161701394578851286437139251525464203338824182937439101076286666797445622081693131897443643247507492673485340524544740856132875235708769814013118273841760467632849843042717378815955461722354501485411111527157790622676230318170493339271280347548907220578000497717241230457145429158127474319980859760429579147292002248779903437603649424227666805939256755301966695609567922017812129207170082298500537405892712673368822789494043309118100660744452580798069180114306288937295756782224773083561408861993110151289948926070115657320064960091082152229637360408889074346032014855136959318616448653045046817979206851666823739028528295556894440410859005057058090995730865919302206541526019682159605912980473495758939231994643060085541296106349394362944749404358506762806696808118276292417364381142327886990728871407094675150363836349933272585974837049358834522291564585777904341673407083691154243135160119422265179023309991669142621468061913640030706360102382804225977625427681319178655912025690981072836208285888280736807967258511518762973718366765576559401372326082148481256889630252601677725471254948159614777345879770752340987216495786921239633729601134465979928485575743294130404750689407872578199456022450036743367963846893764107019725834944545682194214328585969027916277432229377048021390852972616853611173575443647980201994899386187986506880084870417438294157862141709504507754319269516440423896642370328021557003941979005941269063181871410064420313783968874963656310686470935899127095754820997389656985424513079691474175205742856113604082086546722819866053303568000618056424078011384471814926783393507203505415372870419541429167608354076365583485701258259595829624045771241127096933139178134361695899636804389411059863352849893478389071491060634382785558418978843879230762310502908573204914308914202470416547750487942592346862266375467252139921853310949545693432872130426923610571295262965759330931879714575649714294971199769252344919679521105950648398060081674735160962779213684534886608148337872218910731121818730133965128382962293511158069463001991599191422938366612606823070682050808890091025266688569243619490420005364037685297704982980760441656049267328994087624426061725101436062978233513588560137451864778695375811461640450103875984950671500264655731333396529224586515977679742819694097576365646635753620602018402375534335420056099039681500910473779886352392291167408073102766610212248432271276700780538128700399038528523479356096569052065395135781865885018419332929641451769748273790824510385333565220354296381336922224855081681219933705781681793649210884217039337556482030561780635429574282476503263588531985388954871613823151408522398707303993143061212926603466722402210306382456143475488130900481827424426079267205304438789311330963807352553874567413499886958937369201256491875597263404708236342818538501006149772329459779818597698279257161560522613488324118177976387823201646270858907396814977903979590831314314250595344806074508034537611984229677588006591137571024873746924290605160068998197253175823388299974435039604893026372385325762484581853205307554875288436948657539979383877494050896510234926340580544698741564099267887926968027672814522925905226805629452498214716788535872229645174610974863965970641757523067742168564213743412415076324828458326406081561609026029871415631812194755186842876601187965588741810493376179067960541807030474896174783137305218364372743528920964224560467353034369430215915648892018411268641494285605299673608555283835579448334907825756497319757897017555580379187341755669587200130934994098451724407284941800016046293758764332007297053590845978706714132515355459525284823239875338572005642131531681243298953743247202831811626107820888864801281109619925992992651091115819228440799709051976391273843651296442344560765716887020102257358233012508630910170098595810354189211658081676890822666494609567751886887458386070329288745070804738371225557721574970014776891290340458699932562033426446625479716620590506334674994345124368009365048802145066077363518603287157682064199279170072552975372789795301436674808037843222572070380215169957832403907597823830759792603634113589027798024625851744466510004925081959075854958794445913215358539961828565102063368775521358807710112835207717465078253749332227927238249472354018809986440765086373284728213197814862321314013509408053328370618148010595923910711526307944877363001398771985720253427596810626934486086713875089762589138717980188554743696047819496334635164038704948263722432887601083279699185638190301467386695741451607114862094795260916994921428391736006663026615589437686931230628828842861250715503591171944154914013193829458148850662903569388236670842609488847511399100387874709981448929300157189676809807771411756022777358847732114168009928896905194689408866318078085168823927043593548624246644076639492104294373014083705666219549230334155766933830114058020628253039238812509599755644589486479536345822901830011907263975222319387147029045885549443497199807769135463286051632308640808618045447929844656514396737264808339611544906482494007633889084619200323475542590274505150025673679491716187290534098788679957300269891092900835515994860448034547053811587680472881946521450422293357762143332966598140741490909578314081093402438304200321795208381201748276614535159179271215904841525017222117294697957787131847474011176546733907771394516290941843538131102439635878223326102961354789035767521064112950291437484300032733650669923958139661340596284961148484323087569075327277534356419082145342470610198367722511690210243595075820670319754085743463677253969643618062505567423938991999676429267314018398222209080912244088575405757674865917701088834991324663956057119614333536561905653698376600510879822107566739588259497210928216384901416961130832738726298030349511545248028258530182963360676058287802240550979416429877602269104259087087362686129558061600172053405110900268380915126449123979908055924333708597248147116516896153138478303422366571029803848369124035829188804123740464632119283362849433930034270812260716781078212196934684595909272357016680482882603804566888024756746719918119080923231505471581449919158351885284911864246071023156463021817609678580508976188279105812488155313776137922637858315343596990486976039736119979923985667703156078339221983091631131583074452581892918290482261566830412628522356488065198139861806371676002008775858902067819884284108752310734684389924478459913072218905402147111473251504923030320076642225933757647707612729177698910939314289080746823874918432076878078172654754937006297638808442417739993217348416074063339967310588462428693820551907699064792846973959625240127113254681509789308423816809510244144260046493855154772912408329065469106227573981708532623239151754046448640417903050401663779083705933264514466780160419325382806801576946649000239796927831525314373038237439014033507923810823517505808163687703680979640414573668014887920382686075016716188447986699887465615507007851296355997071075036682990487514636508060675294470658122608667600451642113382499995386479111025202251880921601797966788671615293444172391433482870641768111733271622104260085716772217894330473719987284962660629049273040060143905130905248309936346591535122245865475867062731514058248929644177487107097089473394650861473613694695080360408597621263809235695345247233232934022952308609962941894938973025507031341343841225797932395873757408541984957600026645647091831961151745204975601825768428648651717162165732023048009181408191343733963421783048926139197454993933613315997970119844944554086178183663937127754033489788890468484528270415903314689586554943737509496316197308230199875628926232094372180457532936485086482173935238765323980671010386548784934769851427468285700959736351261088648681021939775745679039842420399600837238070323444752540369701962704751742080485404012767848992985309837388139290073710856631309770655781926087065083202670677052913600391519964439177580655297066839649615734852042290853004129839003999255071577827223086882933661161409040270237727026338727812792671667565785847249561661148590168185410699629741498593536936373205541226489548997340164786793978597464543220360308042545114174996210843372688110892910978387569893343840957449741427016355838189910977149057532350199438686991789382138113223618887858302200716575338951023683888635375658247900074088670207988209459135266926215526519559598033133214328478774958042825754882379592637892724799842034970797430099568496499982699159839706898338440136632066295519364330614503747396174457206794594099348840062301345390281616824648061985962532741167248013765437170184300988478389074225217758582382983907230303347905101834563996438132745981008149989534057239085513236251734821105171904192567609396090918073050993697755181894452750566898700113433987971815027189758204227073866774134342197917504530664756833159100098216141576751395788554157326601408230128880910679812847322699268004093810022324327904728164074833813236359292498507810962896604104516749346357228207295824574588826158870569928492127249603888916582862792770925150711401144765417688502221341876649538148043196401205301283240677339512566035940517938201061967782692231640023722287203610023410286209304235215504515007322674568474404014220298253090971551021178569597197648457460960890120347326934032775652044435166377583492323517606290190117286077952337825197402419216752387277254291619372500779735446884788227190985188114020849099327898834601574984111023041723514100236693095905616665141648280360290333232335580885302012074090391427150065392473635769024944649676893646483837544133855555669082328749292433563040483953796795292046652297802985565052186113433708304164550242294451271077716459178484335574212768299474445448428548523396835934033774592208880044648509736459864827312845694586238947571054178922785241435225751323365094634929746480547804972800254035669220905502186882128862808185823894251915892419454044492061111538787400098185865289741624593630080955080880893530683071057476225379823290696220070312191463326204202699091695171924697761035109549267222492016117786447053348125091958430918625431613415029022084128034556493952090313540890329520644683331032538644404402510807738458852428044421569194449298312067659740289237539144863663403856690596349499181449792459380785641701512455351977571832933786277338189654174178387771876270979732428398170805712234949626344151281799333039110979670725102235395617077559496163644815347138160634709384634659078251024415168940878174548205267387544747836415009529791858981521964224690561496659192678958348859456719361390115233521551042075728905060940304212938785000178109104793242236631645611023786395300273486852209618652283454634601318558625339205825640414929362610741661890721091056754470162252448271379520580853671866254589552621369188240560440515899661312296233385903477697373643843493975633534207528620337659954462646006062911211736149177386876868723153060849451445822631785874304393180351134786570794023682917121918552840765102726089789257595703398838464145525445811799361678122637586776236697715695793113003928817045228905633259904587719758737241258857044519906795777329593361174209223524056032076334040971039285489752817131857736964791054242449966290120206527804943332467256529218762981691394829154890031215004277601774444370382521022702973872558517808658131699477712046166260440528609410594027988559187601017372365960762979329997346825815389741897942060142865013079157240347672694758867102970650915789884128424247026628749908066378833643977419961568280227226328564051974948123423059441519562021671325390374083932263292286255638183921915054351686736412063654023025504182263884566262694004395065828519803851667050492499347978575029906166219705352045315609259598059036750668634506283674089361778210960865950206490191343796922067179398164388297659073050999175487847353055272645982278096331652981754853530187350741560163161565520435684888511158664861949112930509921376033454354156374326521704684275419394692100974968713189476746373171477002897212829228793401401948795658128980663457817742099522705646063823909081738894246059983068125501170946578501568646915760315439534079586674909643694793399215797438622892071199772852811657487237389627009076189405230044250774989709708853880824522414491356888564580433370433058537449496043064239969908977104992473379135330037447278708585854208549789904642149509796944878853188005487918924736197362300206579504624381519213175814531284444101447351875055048895973789864014066012126881042193753985588049618958842824299502081366824630283957480893416392108287080627044940789497647277883669956641594384355678562890302957385863825568422045115518218336755913803849467230623069592344192780672389421254156383726161488604117337391553434244725592598122094460791430699363401088804993479318188678044596014832984132221644204130944618469702117692597847029072013324617212708950322481607724932745926065483627993750442537830760815388062257291579643408481422350224155433244404894936442902886133563392603802350455238326121321560932545406646845956840158848966254735479794543415202095319076275918422632376923918805367522910912536195349514711814000248492691606510245644210314549157104740863450142445289904275038128055532401133306309957966549358020374269994996012194290317188257019647622020503805278484145503040758383821548640933002318959709123527819695626164788530715052812382359528376576652270384714985653272992572208139957393254943007502364965843593096024222967883169817367307988070994880968979685221473384958191914273062451234184833942764881131559006966474803184988405883451934354999754131516950973742292386547310381014024380111249935287130001048958495391625498288502849434028148342688952197121841694382028300625165405597886649281881578846796837128884724781053967511213768365344350362007178925158264438759606163160115851813347447842649510470275490242850162771064222864184574109771556502086393351230307132138978348812020172781582755878277491738724873663928502735004575351240536770370757791217141230541952094315123796887817889960367354361060919574150011098972762558976225746906261179765304824472759380517591787518220341775508264478066533465516578243518317458091147701945141059226427960833012368064016548905856469822579022392596187309010023162721489590433342621900277828582469424473711787396943024243998880313514408807827857949604400172050451364687671203825907641157891334206930843194027990535700920950980046029213363697077708217436818127265020255911877452866138847525468684501283229645672621321473779828477746003101225970890955613778717231973554348894041664879417018955111653565753542228016913306676224859312646866086977718639745301323189786658901299383769917928061293300175190393987406932224694754753267387249123782232283125791920869616101800611840427204210711828079016533578621959604164978585428001536414579617419830077462431020393470940607635832391479930525158346418417066479791293888238522048665181395637533782657469089990911448931686527793351703379774943786717475595640807658967235845906966321272642393068256296633802525204213953484926764136184157851006553197454811138311147671108885301219950931046029908860362459910607373909349977309304635744703727972839578637456241227990575149737179924208013283890053322475891764481888640079372054974781955355652447325048316177472421616004998656008820740560363767455766324790004260597085397795254757174825329870665926733453576522867804747959258094013240483713185823795530866747083760556150255560884708705152657070935915629003457329368005597321474717526925165872221062655178680665915737993007560185660837880460143581057667917601469562419230511962784731598610947478206975808374456926370220843690364078545846837277615642132646237270853525813931218040599076550431036471733703574306622411713460686725345303654141546270847442953118304635155580143375972857357975950488090865419368108663231061238017047214957954536879080143054560748132820213482707672155717796069258408578193749229500787691801432419661450482577791314816488621328315442656482294311470896712861302351294426333948499444506485758054184581855434142442761531251231150285758455301106175095676362814920580415216826176912272487081343897684509611087358774107993364862562978655883004491174608919654300977674006929991430058368522416224833110247596057021377091194666070379209900661392345082882940782310343791211479162878998042714843059298550576137983191863978914994331342237414402430706112146192267851101859669916380736782687472440032833780755347800666382115775619892494179552304374060879472170119921416891688343500076474932070526191035514750983169124828165280694872941405430599852380583831101613825744073327034601150173817443342900040087769357214235077400368183872426454627976501841884647325837693998690600160465081261782694703282358867358936431197643531410694584572463894042856333351479519129563810764777336501629875342482860547792284843389022602625601354815410520117767281698608235730833206110464237428232356280677090833910482505786955186915452303019762030502937684410948378382047170332884785218501694796070988733191025873064947505614654883787417362839864894740719008649413277959534378959118071510586161416613204958682595961320918737998104401809850637344278556453612920936108185875124597328013259320457564392518168690981173643513620428027310762921051552771968802999443169208434912664375855704371555474933522686030995396614532107754808343343632999739420001582591000138774459288561435934651041833957764576717408564987030265316082494187114919199262019945863716958113180511536980446301336002608439449036909026853251246838487368871691037209142166024424067519118201898839436329518606886212403939250494877383584643171747209798634146838103745399273104445997914118293306912418043207254565764216175360248283080346029524330770835570044532167254865104217775163320935459896768664795052387359289875024888485381682820526982698307036187796446929865515655331028613386621605839577778490028321750730862698800332168730018994693991277126872992712523789797074461035888468458779859496872253561604112325070504061384025468956745545189480251208105815234995924238551478712555802586850849396139444410656253955158787165691250120812033756124921686230452173145137424423693945617801498886987423778021206710788175284114672320490909487346016580691092660746634586404409664892322213815926936335795831445348767536126158326930823662144237898068688174440866953258835267742639023730622950795781071244626265533851469608162073635590695213134867987600391899749235891968761916536981334938000127720343796936659372606031142144650519815669267777226319367488801247771757960763976562979051919734594653875639211050562017680587850808327701952663974111500008399484638508931660178816275308261572405246834122734212395192878304171813661936164584055291558115325903651132664888287168351353707590901205537063325197537146399227127696364622452415770566023158414733491422363632629976748473759301095199129851907760325936935443652117539448872248460557027972705174561588000983926738367781639945780196772795979370841219740985543858850223048427037120700103931321993539306652030285732519789075139444196547623875253272584245790576475088546304570349046419307391648272928459784336555971403717907188825330190927614538619198247979356058826795305983730077852524747083337797789509330594001047159622065963751233718476455708639817723809922875894415516954131014516368336276799476390795501501359319550257643687255365144940826027942845177333405544754797728890408526794370860881126489460967545481919262518922697430064718886418513586572305907777818943947700843869969232332745728418616784620619412363143391011303502106471990231317991231063686638383300062025559471976373476193005230719895024914670911543920921908363965322658955453243111234788016735223853048333782419388238538284628814330503440894568382659169150212518955487490687834750094157319513994113531298791463656621731883379339361828054339229064222326315063433947311286564785189728653464865245418605120524539875267796770564702009542886305916287770050921531235708587639916509601309832744697577993932041962789902871326339903464822774333161128021399941653846705950714673723002492280899272390594116083563631270238308517393551118416930503740975613127908500380023952927006267321533814249609128951136996023438542959347422902405906936044406040230614477238685593749434739942471185008465979025807320733781194726642128876565544427820477774707125282956226207117024619360788650083530340506464301340618885754859027092090279412733269940059180032006193342879171633156270456553477223208394248522823489520303200181312418063232768093888866448568234646808670386483927728588572722149960924397469544045105820930329358793722998976484330519972489323371457038248475201899141884010986824853394692106251876995610183968346481591453115164084738962695118919714296524109380521423270373039378687514040211796881503686568280843855697628142466013564400943020738763694632031469154447976160827771715129855605950262914088312727347671659480917577108739861911734919895263963550826900235078049050745121882132874393081225401081443258632459979748321943252789130489603185771581019195673814992535439096581582112058737983808670543165902268598550957983344687132370231480438590693699818400870461638423560335507932363387189467748466099616794766190227916288070635982363514232453364280261690435464676571676347352240747841971881835795500634038679366627261855175300160812549651356237443505099110840816808608483079174447110303272395615220405538567428446225945095054049531028550387653584770294680691048873345606755877217122732851382062183727002853899306197401858649905492917461794329248058863138164876778593418408263894388705235861978200116099251361962486287015163138868540955515400659268704691888230108251132476777406240812159395883157850659403603779239577056406532585443310254742718896499781303724170391292931072498136407116802293515741129240115225706402404605870992915225267510728466095677302512646139462819311396590731598873215094036528031970685510437185036831558213273444301463554237603708058157177567938876137002685310597394375265891857295871947994338049825041213440252792948728296117923020374691012874484441526912100547345655749653431830237266184854848901650988066313306528605860621422198232076641227011033618247591172512800836290881085490496847545361588236205908384105895681961682836912141773400545687907973495023181846846486629740227441634884129557372486531005726616532889160608068185767825467316826169583744280255596834983099196312065809001229256372978649177953060906158708842823118383432034604775139318585585002297454014125551085599752996491742252814914280772967186225586509769099190823353506728542698733202214196303964252765887228685010022971814333006801132112348949232120704225310461439785578899828984751098616058275477442176043670949827289181262526499170763561457008222903278734134799296650574911268510782507143139799177625208109324211904847516281403204390926687834125018986967303579805803182737625033914752230265868938048319350569952979500996436110409968168540403370369986056664368868101728787950247945438082100851523329660143734354715127095751706997067249681974735999889138253422975670749976065641930609791121332648634383503669015100037873116403991976141010445859544869048139649058183885723718732917665324636313529357223075628628069519098373313219845389553654866906460192227454649525949063316474705618239687832902000567145593156585904854765735358274467646235250729248547271223901710239229876816867383077961413034620375346003346278110393136643406094523962535003588025301621032626809019463481948796651908957492073471559115103391139870068723779255197443544162721444540021801979419639855229454694007914867127557961703442298335938112136515799856941617258725913547727174832711475505806109409235577784017501058882317499246213985141211276994651480028985262976808726618838242265575318662390217298304192844634281839859761869818342942235077819979801812583875158018839699811661708963453774030273787905758947227899225376521174714156329629426406218843371025177269119803157610932472707004117278928176573680423720718407110557023116059080158604643887011951530852722730168090071148352634248913850425044566808153261005308274954629870921875847230248509476604119424384202355934379569862922752935202862582687320403321852733165866414904678524793097090149527044059710365141790904531998298614379532367860666752071850178735036892241908814752717842317987826255981994209449807710667852494876884158190266599019875149285955009693342490732343450391311143521808361355673594808664617727680022739827410550683591021618834418083697137426338198603020053432776920309255743033487726020788320192160932255827463980804758646324346226215288653341318149975040932572040107163785601490636958437921012002628874419137134107581065541068857944280294427455495887987830650939527782080164124795182917655315607163251799430906321150601935630490356468320075711443967751518141901293055586443450372634418568905113821885560457882192211906755943941232588100978459197428846758531356515810911031892555636079725433300989814847941113034701668295370119008269712887883748257763213991942325174576790264606088533147150984126989933043938836209428058353194126220807837733372443844183830936291200542171768973276610856511375509060559763225789546381762599880224190348083476413921962900042116814584034042835831118606724752543622907894572161077948256153357090749976442280309384732602072210690812848428354716138504781445480736728354880959950697075365600646989328920100495326035691615256414271346930749278011640556024320787767984066018596317897907428827914475455957159655671748440050585561846436796255520925054690758461647102481152998381577730755185818524379131560508714846391873591234211021435993928721549242973416539789413555373641544403662623394155106028415335697414338327528212184252512956213938084641350431778397723267181512522648180103486520700783740265465625302526552916687775000185589469310884579744698187435887306206561659990439627934207754824517442772534699045994639557842910174670096212433447775705532602239558372231903951148922510455074488875189102548074937500081618898949473644276007416039131887115009173645221598728310014994815220115927928381921883028163244389225244153674226218589047495659575260996359846119052663207146466125224711665269089077557031858776710026708029627348664512931059728308353221288100076866426633764754883212697780465419041995613392413208236530423242647321871554036628950552649498359322563064146169979338265136858928111963220149515411183194571029751877398515279516799045999582825171930687559595776638225525242323534537316284183872026629552830496606009840819949115211453315505585306879812743195376507435393090690630032670152534482494879313695125494743274339362972238391322907814599913364443693488439520102859455097223814565359403103190428516154973672179854675893571229387699642290232329321301101994310207030206176155469623958592272596854959502718907162081508233718617837679290725866589434441259167174445226083238998481291109974805026745109541901078732130387051698735739341828858879691168281920251153452088522757290250697304214016943550020921089268996503398779870148503743522792384928490777750079399246808632637414918260347759510164342537748188988380888184185839625126289664591012415661586711021493788461469712651639592588945030472481731189353150203288456770467737975490585401069163022567462105649312723583722582861818042667417313906084203951431158653286624588220450681403856941680454598628818026289888431420635716849603570034467989534499329119716770090151059025020290642461993485098070297177152940568072562560484521993943714061380185420578153965231278005861126303081176425279805400108992778644380326989642461705148661802151622421710447683048782993061925858723487855303920693041961124098156083955659908503756354211385061241930680719417046199023656354500756542233896547821755354629753180810708178771457764830252246578491265532217703203059852277126395893307623758615340855240707499657214185591919854074790189137999390275482284294654051069348654075577707961392416556177203611858153396662028007234435433347112540119237274161834804105262570302066606094439234589627493433407008546909744835561985135412715805777199978987990306484058266353786416244852660844701841917464469394577435160770828553142314098857289031184708603607396271700266937580679431390969259268216155750046705075567168065132242390583868790443941470750321968096874730231393030903759234147268795943327473801673726876921262558108590843351121552731196269750494578258651849484028968325489630300729065847588406189103672424642253413840617140773639108605664021403408131407468972412194878503163423633412784271266510646983671532607551470711384398347524725956349073124625265138755666311075239279730552729638573759392490465690741401386530786191688109218993923616700764343261966882715982956979786991529296393842487413555300766075028390808518865615740352392746381215824666425217114529858798976277624738847945171198612512412439838049351198753471239830071998872366587790297022116241904927028477832425664571951741735543727117080520956244181769460693903940810700223437805100725054166845422246026462601787669175856899285116502444641629790953750161197060733917038422991854286758982906489157792081228837466193288552868058201767171012021440373620039759903899025729924189248107705673085046313972434679569759582987315871200626145955209921253692373728559230913747227858839638080257792203539711316691438811572808926230930998128386787584509289410507816516827099772723075850457943013764833882813789662116737777409308826396222542578739225369328674705148752427208285274224103967273069911658901415525644900177575836733604675806191703830582627232795933919881315908621088254217775186573870049172652137428896093244893518634711764125991102307772913136641714675353280965919341103512613996707051154186333501251073220857401000355398614382796573327060834002530126745793496694941918667304007810439254913774423272067215840322251466946768263429645258246405937980114529130719089580851663819398121738882232226510162802477613366935057416507328593745270789806534507741342789345127441203221041502501026954470490542523268867023959938492161300819551819291075170180335486826202174495798415865840460460473719842999636269883766624678503892158977875330180317801348054957426611873554405217735597569276396589740739719975527517537995964361305348783468259160443081181712461933024753737654924981066257003154920623710877560681836704054877555666350345848696813742395508419539346745143595724306068721064897633045576083706287459776249883004585698859130089611446318279750246630645585784084787778806248499558594459654125613334305733710101737867736260970841434433615316361052604974025465924855235447025152038505844236423681761266736975512188697432102442516682342451608877640633231285388545497900253061537971069543798808714113305664775187619907102010396401418778273737140299675629452842903304874309228152659745736172853584286020808849114065861331357880287482866204888728296285630541724636794480811518521212210400673847271310723644172551367195405126674827192907216296941653783550448243515856958007691083533882389185188551971587784509264957267852991576338467947459301902458460060382306804798194020340116207597734236445554120740724981803519379213579653104738799518420900094028365219040657735715240458756108589131590275737978936219315673823655510375825873526733620117031406150295410061527084630046644246130065599039909657685989597616690461545623415088310105916582594142804419656758016130197156788872284744992802929281133208384955747942193658844582938941893117138125357141431995799877021492259000425117480175126865873605550643540827968207834684286777344084317757086430090264190147874525846264084484358725995644379138772855209764728877636826773986793286436170045203047815181014326614143659062584917075704813667608160417111811719420832393479885184654707053720982711850442856867014011134425692709335343516730227585767541252047255695184120546192032973673133669153834284221042743700043281892780795958785169940493134862252112264829257078682046977967123259565390497140296276274314238482489111859864396723469860801833213959265054854297907096368576101431293147482061450743509455462980853967864092347106342884476013200553826107947518761611892010149024005116728283746997252828931337825948025931969022382474200211510513456097149462910902846427917848111772899345349759167833740080094664029854628936781500156011976217074526280343804220598573459139840843681474043845380570315336383192282228770263778288420899381138834550331353235946550028465265650609326123059959383053811010228996468777619155193361192790698783599795285169852892762983226281784244440860072314544649756617899465593029321765745568127097488426005463142662333063606185882492711262833691847642359522141243756924500215578164871221508763623276861035113373830962367428506658768717436305137683207874573291460626433147386744005659607063562308588164422284665638979708836641499433885997374152972389053646689637731662707519271431097980629989605320595041030535230285107353595834137181987236915187250804868494143986516889790998571432567005627764095900540829401098099259121286814147112397376431064076098628262259439025141836719071577267657172478422563451054999082408467403494441560795458076444415408863021599934334420487206993045005817451501853230509905720546944155779208892786085177657475822441130303517323940795098626382429282622935592825188924875665804140152381476043001512109573008735068957775497033374998737584864746273565347789583611463771779339575905196651529951226443971244867624828783404183823347944824458439518152235468829580289179708089493974476517188218965008964888786125377011463175610376767932055423212705644302644177232524884100721505323942028523609817642565082856665608256193602610613014742209480419535266500286521020358497552863543772548035721810114442834577998501606382556084367958313950584531679723132164741145639579845727040041140789786869312875203808805442280440102240744469687295545231404966420530502154322813258188440334222403555940503226505910749870607530414036594931622977980652645766585978139518005001744210990080477214513960721783617235582636780238193774667052941468710826670615000731868489389940383387686059873502086669072842099498735197006940608803109839608515775332095291321153470781433863127954064300169590629945809477202110075185887925213302001495551127045387822781539250790547656224634261683275186471197159713278452608735867977180588714266214135733051537211100901410894248150703150111032429292545093962874433689361610404177836282905526365987002681946216578486594833329994549029930506153466205928484230364717560187795687149630788282145518179714373116066774822754876475107808899942708486631844444968579339400252700620691874924967085317744633563915815684927117364746896806888343188878698116700898718553513852935709608107294910527770628060190990829846384692526569776532270653005424338741425732234191496483312160431761396031679914596504932574705916614647148292775947951152491492644598551448094773619625912033886819578056393166965571751401052597938272428122244304492379023778973912497826378147899101583472258197372120433593230664453858241275188059640219267407864425104282731620760328550209054781435717467864378887330733715850383725361161566533275238471293384242767008464529993955528911413271368871695369746053465644989963462024438923303633970139145297822862332556416477983402028999101693110236427069341831588651992183416166417254754664887332185663521116353013935082411861355249461482784813624207996911458722403548780597211159631219426340704185789282982688536030685603422242757350619483579689444633482856833112924944604333370711350124312703420607875503321134937338729098026530721111490730386167464479926241050080533059250729765298743362448987764470960972626391108743199973340999818107335335125084419623840452143276821611107945661539188045707919943797440545862561992936963854936229732748292124291134527278316417000982676460967328142766333568913118279680447023367671809378469739443316682009037016488042771973402441481297842441181515604721254820311198515461932528639646554309608421400213532541237956553159286708212350610262606582874984557137467908979793927200675501585755176422724223915674026970171899592208630850793789125075846912980757055930313530079496720580983446898433383270183152393875736566835819200070773321556161212961963658216808063006842386672284567139053591507990106368099635523987242909467495705335933466654901201778829549640272938213252658024788410366210852562752108177565397754986584203803015357716760155847211452282416889322011979673723318939487741323613918714559328333441751226638801209922382692803200983515001055537379462732882358527729363566280941541146844768181427291526301559729811388760841911158749753360256032026936768177051535984010970160340998807569208262584588055058211625641589626326791936389597513270652407519649995296014289552065625502703038938429200690023166749747700324781850850752984116875857766483878710607446258770110212631061477430166636843818710915599198875066797353158084622119169555635089483584173362651750856698819023960691747012213977724026178059168995517240033409028124580066303423755347760196120710019154482205896664483501111688428546555479183845533502894544957056227903525818192516729906067896840839134526024928977016941272027628388854338072897141256862547222051426774779805416865708584659451168344971042958538129011661793827844457655684155697983399110283648185754828785994065299932499863712020978296108821899533660986084192249086913938510684133775458694735493643545667095369840925104256304038464148548473278966391391311218942049130930724234265231655797950848611297175087899712190064929019324898813281710077299966372202824665766559556104105414541917704635955151309969790716999447138551279834427552322074240610687652051580720963659616599335621999736852861326661085368705399300930553779170856170744623917430200369864797130949781488375090093911631934787578412578574992176634454969779469243408359714270083574847584130750661031051623553539684111867510429114567314916517682993880201593752595856108845699475902014431038250241889565261007666492788167882656372407541708799754204425988768581675938986222301123188895424981208778834666756006769612473581352189249885821861352626756997313772598080689839464889859523657239057814425236135546545036408411949637139553810973531177209485127481927816374364957692841197439514067375833275022254492626497687001256235393152919491337281295823664468211950031336077709800644261094236630485808952017547117521010696394075358509079659846857958538862964369273390619433103695788039458169629660150099646077309011019762567836784706611304784334107807623745963925862304180213340298280502427114770132089213089849113810037720484088062950042413795642753089121847866996572553357138952393967177389127006924564042810521798783968362165649713767756397658941757872934606588614638354310694970153898899385481288321857073965394582196003065181575727684156138222809420520513557312299521293288289040638328150041724787431771550126997951971618193235149353968982741501373547709268327665152450139952771400911619612809334733932875802825450832478220028512094161947397177992839661325983225873494770172026341213846630492893708278955973628703607597377011355487139886679381242677801482797865949483591640287403718376197019344906250075203535056791733058381570242684631247693678885191387601623549111626018140412018865523348941036292194312340349762293563841526890850351169535831199356502479479185741438509962233747022799121031068658041797552235394563177492514718873371497242193334090236220980579828326779015412074227586747552368660131379765389289877563147711243854380864332792425651579227282356605513707165452010139211620655308613247513650077472743184069016778906134222826039694558278310027425548044510014585252173481384694772680149238538044782272957211152329371256859771237043708846643262409958859441700352520548124184910163761702810882551594043637660507593795890894097176903049707632072271258273306036038566029120049778144992558640717730646407177754642387333001174345438444768959448389879323150268909223223229530287375295971791112345544586697701875589551955173398881487605302633707178939010558956879520931770757101471148994113492261509090463371522690672639656226895302910422927398585735434185872737069882626033116760444698541411885207496335943411142062829266958790899200250953873112722644131657378453389251195463587042313095731696282668765026080853419352541805199050439204718417044893703163984252399664800321307744417848120792344242031658088247459075498731809936791508410418070914067275850946586989469605490401954643079331550613732727963073662136090513302720078675030984353021196334676926204368036222787139694147200411062090691633155724248348575529938013064876814700189648707171362792980329320383487139823946717968169867686057211822541456348175986787863463516437386407859533410040167666750112064002399072842035012796682023629492425996310488495996831644843966310364551331022740439387536243544925432474621676515339852944750265336162782937853304265292076013605617905535185011266672946925002770977794566742123408137835160391711095396042863706992166968977414182238105529227208010618739755850888836958394112695975013631061891716474555825690722727011949480315297852632886686083135850845499186831619972758825836484306252184013435252137042039954296623101674010385774144507307664795045719973521198399139087041389695109202698632126795423198235806610233653257700832001986097677149892129820590424101614065668396235904038205337405734333820398466874522405046880300675857563045412645479819034501331322712447932244896638829054587213058419109764115376500700076253985351646817033861395146411989710701935006717195279509795242960770615383915984432822631667189956172307910279581726249066169270091682877735608434283252233511140787699475052649088677359395709269403194499878971403552818134641463550856833711050950469718269611202323950380932189280626559355824631986137759243368725203901248509179335572123940768230697836240151523719155609878764535353572122925090835525998481443576532385092203261562839135726654325217433736130745399036225209300837960531990340003441064007503897473971107719752947839571293645457717140400606499622858944457371185494389091213792941618782479782671957104566202028329540462208351144300017119012127403406636316210906961958461158086985053490236575106350864083505471236885813285543109830514900859337252119518696799822712685069776824050775681473895671082913718982350873005906329756733688013843837482660939398987130226950183082639487967013097352070072524300167594987330918213978719285323078638233815612518553890975647267116069454831805497286196021578819850048552018741452659020663801591719142640591102385746046997608426662521343946806162049654907309682610026665683967672045940284819619814793506517599514471916157360072882037593712186940486839527064219221820128650738710273308144790072890647156661343963056287903482797274971201211070986355414291360311036291789306493695485270392171423494389705208036048793205439220251940788759224769627694043974796932848474723689508295555584958627227006749101390484805200426228857835706883382827060748317412902857605335814675354292018411471522241251189591913929347964590189208921732614570069014537935821074269247447022367258812810803989703589666284914962366513311163590376731839749502925762067364737738284866378234232497803637312480915312837707646269933607693040878245195467559908686305451312107415450901833920979491751562675141838058926175122154248476027531276884366189367737281069282365517401645469916091138026376935809767403997565355678642479102045725157195534813711123837053614510538752714865737810224785560781273265072111822714346327380359158613084179890680678922848667954614082426429312476643901654452520669867908042354139436297532593189755016601672080879591532807809120568462786779446955769752271943614855194087279859562593457428237977933393221799252506220060627875653300965186118333023409080461788376512586870400937080414134417759195270368506731812999721559352808038958735427460223280493350519599145809464629727505746446340449354259018851408598656668635027760901946978443122602339312582547880392582503867481066406022842010958376903566392314783693787491288446799895112355181885083424159094180081782878060182629357111875376164708253164261983065651662917147904284766173422501157087027139209233703955349905580056672911453387265837799325961107082201448885317622188161647013459713417835986575419651469326420327116378917446754983931783042793643338373406885873095701419588426834671797982862749361207702409976670541794436259735949793964847821753941275549360145669534902842885858598444693768676105491346743596044956557316626221138849799703919538823241954098783478004408875213484964336120403887508091579137657732148211544203716260639666261039167897330919529880819599351614032775543913344088588883323928494176180376907148633097005821984662897708474602373121218363409417389841146794432578924594352693254923391788703505197830933918643831411153056097504711286800158606955494724759195819471332109728758495752197873901632394987770542027664341729178485142190090192272370423751218770981684771875239894858344565680741406848504952579768141862648538581716052201076472869095543232201327699839540522865948645206246664711950689453772997181836842613755504658782349353905324570753966184239916722686017645350217826394953621666895247826418437281366585496222602454890762060230603977412122501921961849927511162824792798118024976347796990157379043018170949643723439378847196473588546679313640784475181886550479584168095074596229291168391795923561875828815894875016837292223070431797503604987334451913031296004522945333311091905077761218691860527908884351817376538512459232760566939197843228246129532376983834107859970474671892364870301462126555275430575700814764872930691571271654713566996018441435915796389044365208604815522470159156080834905106094939858486484681464796471630284066341621043181169975802079330317019057048598634231979101316218894783274597372303494763394527989325824946312585066091198282890898800631897623396474987991854334402957679110402021564405850240913990159232827133799731427432374819937392911790612293251771805751834211077660772089120701371019152290327627223552958740486134290946817326141163776211212105075863788366526280490963652490022033711659918617873806407184394835663715393098054130782487271263078731551706800902167865572297661687173696721855768256955108336147218565114004053160564128417630641057326275413716207896991422522512226458638366841698924206889090074907166000302844370424008152605594438042897095816445028390074729773597264400737867735694621839645458346989103415861411806178378780578186971794616479737761961056112251138065764868196813456598872500449969498122363190858792726830207935543094331923059858184706221609312756491943687703119904345173658239196224735753386640546872637446238464786950465213382089463529470754013638715294655945496635691345627642706603602435841096844417243099882893992797502131021776808065095481220626846390861387890468424616298542925175427808254448834730049624884123362713084183756351323689369327550165873400135164638912795059357953859247121069160540418375262325040479436935443995114132982645100747202612305055015797798713532781176148030872773195981903284613797514832967211033180325394736176771576514066074165847018638309687215514035753711288402694264454116055746972351126134198727431179620410991223898391737384499207767395514114354248547964554512322046090773465127089428904184421655050901803477578211055037789971729277130394268573148444899803712530297463157790105200987079254016379793029347934231660668779092181924299739481703700264875972134628835404525059648187358100802565991962663427525892848563018842910696847169159096128467583632446415847189325792388603656228181850852492795543262965410403048526488592680106733697647477041667535962387467115585502405156911663342891911800873735467998263529023113899623585849571062731259202055166459569358098262364496408969436540633459166723492168428676796390242455637464341543798935305117749989091132980145582016583827789275031231066474419465535029131289882547750589880783568133641684383142242664302481521739997100640185606056235935004916961163362087943855442395885719833174712783357199196382643092164655091693935064632770155016900105493204624243649624247818958117346559080063109207791918975996742420272488926785804411932360687675701020323049724522268596898836256780328806526019120658215437504669989257090175215674441527292755550983482469508059568433015353338677977571772460085991081248296488650657668867131357165970896785346558680558028603053383530161479011719886773966923515319916946606934920920541311659651665440373604187380073376814095124379691345140083694716949517423017283081439919722201845773206926345970602643929411540097810716514842985290698002787353337814879691705613505399061388302297841086180959434725174300675973796428329674549486721325979487260589898925899054933970500202070265816757864259457260520317790302697063984658350765806761050344814188379476883891825607246935340340255034442919500391240982771877031805776730149643418856669166350735732224913486796274070122258815646776929093764402093332949995822952626869600500266164390934170960124479832829428882293945304078294027127886985769737403958011117203474056832061962942876405389284483757358191409323424820804264075355802212495721901097695666214702249299515424366472730514116509401265134946340993994983188689213535399109848022372960411151774917710839922738232425226611419852102892530966537277069593497477456653334237683326069216843054149276005358142256555285522359739736629551290683291613857513874791604017928363137107960177475151076970623568137259339680097921981101396363331734239535261695297275069475312667078133286072424866534563010680077847484329454983822630798797168800182912165272761103288862842655730632638632393591730776784180608403924015025848848732249589994499777540651587911919601421730591612081401093083714781573904870922073171971355136332430094743979215212666288512465282634361210395978486661202461330414930434437142101853075913288955942855202898079480438936657595286846605398646058527065387053594013841064051218959166688880244897299436837249423926692036352452241883166862583294895110408366940120433190472096746484120892783296446409450604142527174481467588813290228388885551993738776789100994828710023988066417661873615455889836876850512770117453907792060052258721459635784536322731799084774729692672226930385607483805165368391239996906820183789694744386532518237128102215789149011616324071553786337539318425457549959555246924203382666767095258662079040718685325992508439317075498089900390571930179013475120516484819369289800586881529503637380999657989347307230450424402494994331307853798795266838335426750834321688801945474076161269853919768093216815262899227952565967503771356312068140632352186274192439727253529458917903850557261973859732086601994995268275618243199083193702073939280545926848255867432451486326921867900173818514985283735257053700613407387025351372024747846111000380077504196680670600010106893070489192880664072756476002544847695396125623156383060642306653756196313410761640523358626171659314067819826989749242970820766337464986073200300177007247579866491228229273503527788530841817028529459518170362656848380934550568991679705407585101166192551159997081688109226771357892734894036903194013464192887088496778203944493363461383832649441444816362038457289394676495719444621624465043005035296950877011726594213552410587548354192882242348084895758676780895031909260625459184719841716177157628396777503923867863991094685797584007200061803435677692693470352871580574398937857773184092840006810767311977343327381541957047358890634623975051287958031973016255215469127692355653457178792274376942665037770265036281156411701780240497638366780546244733507058711776453714244550405795096382923166133259826843937344064348388491358890592923553231076874014731967083090339484860645558489631673867816539365267027940002430929692010902000365160624790988730487120015880356731922517520242710390201531437621552426498413769111531462084615943553337916901428704244739368350395691142735226665683346054845043744463870217323833933971640553486743674770754945721030356264142496064337903550962939908808688523386324244604723264728975460145897943763704314533514963540633278362270913320703758546220646670223889024765095259069482027317776136307991951616833374326879450258131051228610485738159900231613358575814143506809663134982229205502579816507865322489316553752461874094949849566353868556189466695748629879866337487686505497769673347688408590208645427157283041048077796040552381038883382999412780225991139948140636712345505588487753645830591109735474390058762100759744285638826937583929941291383590073537428868975379338331132360296369447748314132224544881376030608081746924244860549175182812386676777967214383502655403056859317738373800736789191679075880599152491717286865790662033575922785236491208404972017018723256072334037837972055503847202317735608437185310051074929365993470435837595221522231215690391634022264419913743085755253692582702616150269135297216598878713901460318446193784235704119971247088248462461207114569186674102526181501354063419166558251136410385239509150853871598601779554438386725458419317463385029566533191511622077661897029326518971125478803890510084834416922762692536072284231449717515719958582209856598056324990495369191699804420416027782639551500270070806268173981398783079770030767480716377234197396746900609580170977857357892583017241375316861099294819856007301356641096872975997428854336105642059542472562221542007663340703983440277792222390007101612900639327996969772942940376700899340195342668754851824907165724201927657365451774355692073124014075866919371178431160075650386827338903525339541345018075381107104947062472083673922380167531639274820580318046310236204169572394014965702114333417100959091327335753450857695682917227700983189569561470350861557182412723155875066360076196945416069383634850437454066792138421170459300191046128988254356725422393628447918512490458618113626708148937433154227652448286569791562798831499335693034025819215026661859435504608359898522740108401008093931522336424271704992664094896126850335617411183681012424690654879862615810845602510249489797286818439903257896419437920317438373621757669956148749458538222559793051669900420063450413268827380081790085560999743955108390720863185266130081922401457419971712147795846556574453099035066994709188426624420477705809689608793345950571190672376294511494803774312430044585746526864259411878746250486867409341818480848525237380336292941778865072787580311043244987384340323213969578148089028955750334953098588059512714671391155080624869115645549082700957761176920210421652219331471334384874808669122742952724707506599608755341632712440237593484429399173577664836913874495333894494828811525199290394875492058782358177543782247059630088594269840358762649008943395512630814542949964613791198032901905386669306395877690102982561627488901072621525411272347827282553077470046881269498570512456722283908636372391696283917939317991350558616991424039557391941947857923560311968201202822266467557292838644335956649722644628118307948453629620088090737114641524097311750237377819249550092177484661083738144664197886146277212009728911704205323058476360302032683230246346642949310149587424464071574563943069421224578901687158603133817843387834411098319359078763386027350947087920307574286523455232421388027143839743093630705805795158194615262675743121804107145134782680096579446012937050328677190727913229930098903258147991879076713759487097063687556434133299718533370216564467135327811270837141601397078941807303501439749289212827590786482476704955351908791810202968511080346232749804038651193410006005991780370743797232272067307702168717843767790280936830121992491897877766803398149567367463976160815369369620249490415094588290702382480103853364225888678824546615376455525676176044699349291780373039700872449912841776664424047972307293102635802479743143075454334330719922151873085678334626552885439693130086074318997439040653021800151406161773459095951968137027068020034185258928881648068174606169441817335007410563874408775919382799064383410590463072519113804298436163553192777345047660570564337525160574953888144267323093570809563040596447525014412941274496396686600538244921966551834173914563831502450996306079370335301922078122288006017634313612248253336605617832911500458616853255213695164805447353201351392159012309525986627665927199702439904283081506676843654564481621238455908752615599124210804120959960569318041799934945225787726003395936099409604515545990871291192397699570885483593468308513713769449790248237857487143032671799921014766745104768798948997167349171142734706716787702390311977493085562931809180263413562908112475350040604626835214053414145302768137324955165116287405142785988535729055126830404749294027259735867341690038567410777772475199909865160737863842448281872187173156092442925247177829658110364531585681572401105764660477237611543216790431841823057913835698597861430174754686614462032060558206360969016336538515737351606416173523537354224588693039151634047576343009449777778155842630990146210513042803129756165608823642683428654109524282674386158527092714153916080186935150568007851022077906733446516274638706437067020147955155418698251645692608338185630175691586986113756890930043686788639892730475530279868765947701693422805431281536955464161252322700807743773424926031793097194033998306700850280518349275065592710670531058804890451088725593507132967054219839051812392218803505013465985429237721499024494706677524884363813106878824983213685340769336332541268127871470572054587084307206803086231606297596467094872798597553836379441102458757093622208915106143980856221482877097835010419314370570959670754470745365595555041859938548653962452878079958443372214961773607513625384361859799777975642480739036038471180057677508897789832494202867717643142730370362296739949445469308111345864639472089532684871372414115719699359778265536741812336052697265406476369327266993255021796310651509542553966136180803622704149457153975374058888501398430439711855136192129704749672613642829733647886990959545015424391926861657994606923880616783684044429677362114944314500101660052437043228038165356045831657111190337458454807618351135813193913799219812675765529356450383097174112675541606424574560921922285654625994340946755461328730446395477038106207772388979318369946882227614747895007879248290965098301533389883145653369997810683735206103433093583878709369420085989733788160594296709258709894629123358988473862840104263784216446257157539769297713729007307402915942576244673007298623436362164252937905529598155036087541125880066461148784558692600327439359512639715503568289059253287497701453399362999733151181574426389521120615556029847776605927759292586618796671055254812224498645986121339020020970885042594149629415177340695103419277660036725670354099104318933810322885934875268714033752311219470940496420375879269807428234076570469634949539350832323325920610747192609857956542470964111298381747331711954282860919092209894567902173377408168519631279183513656001415555328069904666151483906787356424410060305177945121036012951347535987085935434063426835047601668743138205187114047634198405692465716851633987900273320806680831790923157750676163843414718700243297694465833745890641776913527206561869614068377059834370641364371297916702956955176045142944019629084078350148236047569282385378806326741142166622655183935767836108166793025403464265248273836232439486950037108952821975042308519554855853635372733647980346043353855650367409325879679501723311585828707094094476716504140834671787238156640726782046718035502732959031938530612072813086540045908463069013093953638556195004625570127179735554838274021368554872108285193981390939981342879466864849755041596834650276126219042762244405419987004061232101655907864463973208385139538933457964924009644720038978234664189668209142599096354225040610787639179395238455759619255370769729372256987053743997607758198888857845013663865764694078802887072268208876980079876902071793692526640390718429043140426383558203796098332768323388230532926599239892355854236071772942368623822049309081287822309860814107149447313664339035524181649707895163582485493496651512043318582980565812550720589552295343644415214744821440498751670852465822580950620902276578203509242944828406394928105913252362428636120024413448234507188471838211068858000836470633127883486481160697776735255389621374380953714188304303969669974031196059064274883517394385974117927867391368568583982422583875655867476700850402806901520348917507884896254133470225772255564872368958720237918208877040321970269103288708135897347542656878635489602951521523242021735886941147069795264383220030920988422271124287670866108474351820863773488406036758585510517528079043507911585805734967947441469981679255580441440091639531180397648073563261205202300949573232375971191328614306239330537643435249809770851223938288485147498611145150777840533566430990277566977261789054952733499276363184860796319044477531135997969833468188859929795238490845913315858410473146491354139317925936569420330231704556930412457580948537299004830454240211370372165220686579702154191999960711898063143893898210110926481730340678712884555318991505927434481154264553742977797123731051015873409066577413929032439062161925105305086761476359696181025504683251958011441014895407543168721598450897827905222575336173942960624307370837571004184047685322096695908580363649673722987014888375942483583048294455581024132773153422969365347652779747282423002490050077250003110002549153866146533649203094906282741406507705127320648387361717514317798409847736385584819099973099556187593063618256667331912369652648646111327575791878540772252335744529231777199663579208818665935456842511655526392107553595637028715031330586388623593727460148917356489258926346595135791415239686445813876897010138815218786640273927148879813941249027018221421137589214565147480932272453295934624349813764882536499559111298428592311531007630977045195417348469579277599045826986964207288735444190384362978798939593481209349829452887770977157849758682855217650286717747131918140735006436499526458169874324348197730311169807800532537107537816114306375878018337864109838394183482023539019650134343884919231115714806003198575402102763831406212918760588278475534363013985763138886291357920957014590951946780232267425994323907778467435755581033213732399629268927043415207716342156966508880963017497162300976560598453266609243220067975694829719995601598000826888668625169668750566103396309286994711845197879062819037823555709872728423071533926133991376011061992791344246761495212763016325245589599226661042979937874281255440972147447212264627371764003682738009775811513320040572075803829870295818934101017050257393056550097030157435113423804093639878944660424197160639406336247609295309385381977103613776876286674091094688425735652784761200606599173009465778767496997616865156867491638438301332836869705580648025164869433080461082027115677360455980707636726285636599478054479350153348560490119029141769156186375667887227619271737936954211350701933026273895375760553329592473025916539949507634147889224566906460658865621017256111001860906929889775362986429309877801679676946681721276820186760446979211940638601485824967130396834180979664791572402190452173780152781185716817541271445078056775352013787307102427181269592229444568893166869852908011885256197033603701622254985405044242761428721214265218393210974546160381086179890681138640554432545588836777572492057378449541909676923143848256030766300062228164101937131183159397526733395486391530217621750351697438229530883780266068363237219359765722656072457907365838207976542698344711321807054312383066625387827954349393841271585533046290227785519716628024609121380043087551320082451474096211000030498841925309541845145035142741727455336965412151278698518630887268727346424145357963565141236162111847665016643095743920144999385583685799581991227813640060102801727213114066315484682254596524031973976077706408453979578098884033444549306086184998077607363726343368481741379713386066292232295556972625403280301618260042581261449487192047641575195156390112252326088736614680011068220940718878370514128527125261564828807722094858956901586736625775106423944974827527580851591212096951063414771603684834801147944465942068012222031011863128662857928970763543991299256453557900165084480651574738814700547768658768038633613199026884481160022599472403668442823610803156329396966283180044594083872448857201206760723787586827906153086817701594570076660307814217361994035114336627588318179311832516923422300593264325735468044860960023659445802657237950148586560115342442836026826870226040054177269395012512665962609152232389625393649306729027267497250363483657433306014582102516405100208240369874030507068390141671338883465238684401220590216115079697847756598581757141406051190731252096868583080476762500874132895670431308460466400514216300988649480318322586640154377760270339128747996779653766216722704664665656397115010819576290478974915298378936519595202925403104067576874084225276683850425284063285798754719494029279660826566420114513842442335902292934849762421354108387649682955106968891827338157033632612288307756536410517309973915352572180804091492947774329368359932056050779206992247109086538757546000846309539297205664621879955506642342764088277382304204840108105867457703649013781476071790097065710923561930107977626314075413131534893444502091707384357397724953978713516143793015082171212136553190469261226114470146269834088756047620260252646354496770287749976971976204586293525874256850015831808342474260546455844154654907601453335517562482691723774004399471764673377926262984002261760228757545972731592592765702990518559013378056379059795183181473152551444760437676641542485592927050974957569050745571491823773226027868264733994787684615782402806794725763827733044425662943211862006039833084569367967822777209441929857136195492255340711078693211692347675210678174854573417573694073906771247574526272984341794009293674858757993897568567907708705657191205626139451541487668875453542816463603581976704069669362881768958636132517543958730062260775652593157246352898363599386657201080686762806205189579904535065295336577815913741615559836157475552727094042853995604629321131608508561852670703252090352085919628418623193174900672651430074074056554291538290297074094899313876585045029515686010743492626595797953115553812857411628987741229621459610224381875074916493704448131804090254137834978716637005433428353559356992303416783544737988227586081091883874413076610630372916255184762941760381024996686749240123411020604800634320209612582635170898811524885150890939747183585221539414325987205052024650796964554260599643517641733949990614887126474258450439491826463845338700657007210956621396326319592800930798363075480004478202328477872348864942457882711065758204591870383546342988692824942142678209457706826437502921047965121589047418636874223369527775490936482890060985690259413057308448119496012864630073655789463978028448653518280138487161536193375615805657723798700576124840004560108547958393175958250186419452258410411589955679432316810766549726128304123987421359391482454787506915917014803713873011044471813594657488923050679298359370423817604236898584438428796348408368482400710427713440038905403450598934460529719983140184643159346421619213758539776958357622466556485470105040145181674501089568818395564977344870120205965609122213872478956943678369174833840895072850124392240376195261091494401953756675992681905575046829586375700714339238731386960342673588001871594101400031923065096813790353606223844872262152682769298956378730764331147625904536599552278573782313202667183833966041296047673576226181184015201031608728484468018245982865439829817006730886715409299756792758816716856397396533701684428907745092948984497324397467825212410227512482880241166760237610165317056963359177251685859996642574391245577540741041319127159266262472759497103679286304645613414686117448425828781651866784913113413235868347103951179111051521067478945334131634486852288857444446063375386459944635133774542614853119362244497170921379037163404258964882543512488530501978058287590843714300339933865936730027720611708284917351876901355610299393565911704925648907810995417093420446125744897897598248683721355577525559434465992904140471076451259164491015330512868995753961986655162537212263045686519559212457193355237914999843893912973996532249341101167548178979413142841176793656987491816671361048265568992792116248888915847843439181220102252120251525554965030395517509711352858117522921329996469376956674004007875882216430818637560440412710088793028040831382514229345529110078382538509893807083898427799652041973469091971667399541222310109444361291026313507189591502896214918883184703114287368929783447353762706737134118594482736070594606962803975913799617894621338928246990149024714045544940059478469683030231971464430287896977661389128036483932306582886706150735421581783624369710552050254198049445032604987346316237496638256870327184009290720916009116551253417947138692064032793856169053451985324327783468747231351025417402860746300366902308203358597120370434658392017191589576027387187038208252066672049254076480130031876359313274225280661667071598518140997377590939734850233529049969801870527767247033386469644308368082946667352979659265954422928990194429029444816358479560251061309101520805641010485853020142825506375640376963789446463818367699767421738388037847449166487851643832871687843323796058390127575545001657241535482490851605099551746246589855971017542841210322016808017325615061044036786491906085644654091044275738267594692440713622458287024480194055792658897262139384390157799604266197759498330617344904393840600395884444121924801204868570956160113235646776625227779628289284370432294722678897919963925385669921958727258650709569834826030313790400225823516967219186508116021145818138285670184907941764860522382439559900272045438985523394852305536151128126428752272638718289125424095141363351986121224977675264696124681960051477237843164309108167864406955390823757333099987525902650441625610067985018829460423531712406249556081492082114513621619463399416076070692310355021085983626332394902843463028359027954298672095515518361249030065669874099611780256757124998297024306086650285599552213322835279662818860548351882945691462849540324445711182206013445101153470186145795747826368702443770800940126316361973756279873520782569980262748961742978007289001258401909749905479549087018543446888752444794835682833795195374315677343559375685346183089660383174652560080385284776872889940466517825225784508288898239574353571520101598273678599297201468215843823859411198761788661846920244669256520019209871330865793464508020428086753003296452343294110913313620961550331699446008105554730498057302240237179138556256110446055506890737526310273394481111678290559950952991052054296582505145863215494405381293166778992697878136460079072734004373717821415555303347773091694523968159583306404400849632263612288007774591176852169141384648447501371876998899183488506406510899448295237989285167068037407802892121243737986564957575165931041834050887098442206108656738690031181261449217952428505250317232330560823079467087228248196260501125573583185606470824533806079973155197071983383974487754026612311331751526073348822202572641999300683569603940744734695212112828057636452431432751815183806263255680117171881797420881760645461491468646440885180408728241161593100171989308428557598220280607279374931891915151723197065795591988075197025061572022971942267337278682718827661476155992743699161113575462167873943750212138533895686347495655434479631484744695734838305664075148745890707459704478564800999071013480855727393056707303775091638034479246694961429108701976939169392371814372241506459300305417069789709637431784065687530367555566688353218797198713651157237053682808612131943422930108294692478087506344425442571396015532951913851276075122711777201474963005579607926363970189281254254002667306932717021043193728009295467295925959837857362904068833849757763082026651625169337035064896825187206471235287875127852264755759481622801691866634808917834439568959542683341740622258153772651736496169341519640566135638033160597359357250561413449269131526030564369986345501175550792879886175259576282963098595257076271983738962362724332828868915938295627620979704441143791638146064329406634627729321649855295538629257154162132454056882435570164595736840861652482271695469428958101607755081482625617353850020365088125586135182071112318841342880757301822060222748361758488795912310144242435723938068895151816940849190669093656468564701464955147465068274592672300737448558127995448676716523437529167481688008169917542611032311634306396605423591910145489042602245479233714893898617796491954184727207467220122584530700115618976874592749739902225124040184100451289246666970856972679739295501133079388711516337892302771703662244830506077752139926114759506245435022153764786121770279276541180524920010329151042303605179519637086300870213463414089991600309108836313699718075265838650604326232753630915144371320843336365612580278771353540546075484160743629514270941629263558735989158181121788682689477406166169100239130340173460385137676284417986392642995065525598328694444339306481616619680924994013287095628355336508413714787673546316713800964487894475761798423060097326852374093502487082925871507576777392516491739438731304906154844977964344895866795377187812101303822775036302816255408377835962014555550217428118430964488809456569104463611445780799887112206953562644110256098699043674462079969248849861275365685568470159499431819488570185737520184440766119298273482321467619978897624997205849038012302478831639493631709148622535628417625806952835860118425275329983619877528656126504175576447447366981397174719361369544642331556900020659226032618989107737594357355322219856358942933037114981511796762651863670525675269812587789114634710781036704874902085627278853088071982893783762941826920628199255040510052247417829667782700516824337474645019079446451364151153900668674466636447197438718649470583063939594743759098795654092727124809368804991230827859747845701896008870196251869968472860599358964723502454312572472248183878732217176066372688349448020975937343699442264572699053632579539415903701934705741754653300246087685140037172513138722726878599986801873595544107608987107293060585311586812619127958761627196368949336300486627221338199379151090822919768309407588363851748737376733888886438187940756286060266768191643217638510725055023420530184000149000711209822111031843271049664749456563325026322537108515937214661466099151137264993923368220242051958678676479706533506231092233838015366999751742064670343064006506704992580789357070938474744867528306072464961738725156497355728411794535173869334612560707955393050982661927819102460148096474450278991245404061820418508873607799356309337531624589260235925583185777213716124937495237664063587700126392021149912095644415496223945075649409801986657813642920457808253577405022880790037500900152145538210474289553006968157896030098758754467017638113278227521013026882122083589346686860797211842220049473633506524646532609106140820464807153097033412213271250747117418276240766470216289381365435716836226259492333738171558866759237755566138120818941762784347721192911892833247675763198188636788818068389902576410399251553493841822657159900392456685547347392121954616677315428583299767640889701165787214869325830124942223007909082993912080379139116126771723040827756114718611831595162592410617590318258471564231764602335549398407959603526929868296778458957440943229965546315676284741918861856159677919783430390593230735031602296416783911244994107371196666837612914136744886561128346566937972070015144756403172238394932272945766099654330915244190885353939382487108698099678554926317263918186630358114463998480886519453977221446999373221170019890932318697191409407377180166818643881495459394156548101406935174749920243922029116327034160138576911354570003953564262044317301520731803209590402374028954123642636176833523365947077896948151291317476670493076222731887075053786793763494726138245477176058561002557984716941557283580587570438290163293010647799349558586330150055345727131901049450864438750624174678305552370658875441492592039501600278024340036224952112854855544525630072840637070939561535690233529896657620824420604052878607557391369183693647517743004631222883849224013119293797228005503893489737734669524309077631557572350593341278769181524325468264159548780752565328786609537998427058479946879708990230445408608028468728859552477748115470546180372139065355135021174992074278900613199491474501697146578937438017247007600169804153702174417194067688563268995417137969124500794308267691600935945998650554120665329241585950814716140284671551819778100922287912865520568655479536808899007071124772011037796420294148911943908765616572988069977974667404137745031121310355196000923931793061906172667329262130718646125595850215070290655343076379643506319107541634041431593046823028926720132304250449009897073470100616187398785503880100647818641278664364074391842988495334218773378352313192985963584202257747959319717456816507482736994134671095141325156840769130784332289859868312971629741386821568742140348094113052715696497876024270859116217023480927585302430602306765389707079105112058995032276372608433017451525825519399643404531480551492961254531607333968302178272155942859042479976227912106138094713231157332179270498626494211916939771267224348979448868717620036279380800066335439017675654472177399967697950228814049917607922353092299111926529689250170205841613334865669960093676366248825083967614348030727392244716758451561672964142191094781640196456646506193160777252170154761248213680992804380943682081255069607182981480455627966940201735063891143681575484786703390042520887988674743835519179254359960657549274337886180315203823570392935258285410690817045940594118792889768629171236462194620531292847703180322396133888440187524297532017762612714341580612927697736994016558142003570050502770865611610188758702413490934648210890587297062057887929891971907446233209193996233821552229520460604930714365247035901626298207736293135574398219764560713535945942172400403904249209932084760109461125650481295838791553816926066022561160737878736502197114964686626891117486953495206680084588297756031608966747770230100972130652224866048983216947222194746669798702447166871184983788310822520393701825858042953377262732714707397145411492117958233066081344289625591212662411233514464162859458895972784559538286608858327533199593423803179893046077657108541769840182459672430441601787594518921657483095202358186705903058986642616756002722798360240925194108306088052235044339806544591053165040718949722039541624935025927622168553989777793053226435120306664858574739435295165319369633094668354497470749887638281143362735485656014530128174598044785077914198379708605192534423429090766202147102035149647093045568542482311663957720067934308437188387688170522113325416043339926470213314383280899929527257095938616409800809037534661792393674383421691055813394885381048403046897548094612993892397868689020151582656829795278859356699059642741346452233800261527116120912509888194225844926468530606034533749368281984134561952977263547077344581596203405039353276387276541598368835195927007429557924467747962648977004995517824511190873063096861671251021958251517008681655918084476888816556241258513481199142899395896521652352308274438578376305583417703557818031044579311256642339901436297852936633082380965164357253653326104441978680464106918072969635073227230875554995864138110208088885152457426120017897173474802278287023009946578578816966237513664446701498802723990000438914714559013152107948576736913087803990035927913990942542333499212051674132030881798645542041692051403843348543767603342993529234251006353076130542221404271267680612654119134590609897973071264316885869246216189966615282994976057175842980526874399354969227397530809594897595226875825542376175227492857702956149295464734950712424852264491199177628274544897979940104799794303580156799044483780505344152293168432716853688680445496598763936107221672143656385218207828546580302665210384513366779786595230781200328935911231599691249030055538966202255314409487888157185600278962185279346314207305882755546552732930879327516451366124010443863263343522295883763860971503127681557776399026040205683964451488881915699532677925621701641348480594493422972261254209911487356404389624504193662580875227854727560503105345900133062850945233095899590511657388535579101497741339035960088384757230309392127966190916928825141811506313556192118896106519869281789875801155532293343401135247028585318445501969438899197185117114369111895438901095098866604211656164130691977913759420702413841180142176835350201106818815204776251198338185591114977611982293408556216261677571485010524306749354594417142258009311313830407173818986135871287200663459071916922545109369152271721360915415933202187872114859804699839370165000270458643691909730861350012004996527448434935115252844458396841965965510774205511195363400380870529039215105936193498714841550821720012889546297623839383461792467623459373559758954003481713380015418178742859931506518329559392849416751742284168698250701533514363682949075413634151556849620595666501494704636288162865044098814995638451175097748242102501441490034850607457802766580474274603034390240246508585048753856819259352347010487792042619739273295479160838322102004567050521685537749288356640241832591393152833206563568410099974016946615826893488972281738868632900751068497780169912558225220282503852771554673927313204394236253724895247556256079975656307741761414128220354634506978044386243644550319939344945645257239874641966341717836432834846268342714680776095722322404004371610851730363808734045223235194433257915296018133729626634648969699440671998597626450799819258321327173711921082981816679772088841374520116433548587133073379770630260463397731714058484941522036501311369547435841472983412716545912139150612099789581692437151287770813525849767562921058037409258129606504290905971015394629073412815241850748391791992785292796430119510523872554842902071042693712131685802337576567289052643318779605837264075612495001520609511403886507410579398327827197055263738094809527549265823195946282203996279713949373503470122311548718653368594336900323039001528330171161394041703897833011631708767336142433186245424681001621026679152038295961176955528229962357826708038563279861788016222853464909304807678033207282605852493778950432426814909378973599730793483784403998988659570796724616487564693136316429428399723754203863286328686517408352967034370721967323189904972236783758694654808478308550126480552699679783169763286113266271616806237973632188682183513213948353368958761396591966039938581325113024277740060971827433619170290808998460347677906581170756344429846071421636157767931040414267065947236030965509142582654906131352811125614767830196201695645430202926217948864179415057450246655358724906756403305047049991748765250950900685611313869867712060744672981076061093471083895819911344130766014492401669610178820568479335438269785172935891425857049703221284826921564710562687612381690302218080090970514701418548958062719798575276062350332714762337601792475572470477731972137820196098276728188177924181449302248270749989612694818360688802381838262435212693021195385153798382467610443892236849005147432145713335185188902212681862537364590458369975131217911486290401978327559308850502622886975490146868443101777248134996352481423883648475052218115842783481052540688195373660846542444018113009914271510183673041622587804461912998058622952956400066852451070937359313022118986475941416560291687643750836895888252017337889504839507998035455693825139880242107639075173099759195146849270017914283596986954219886217511954430031967976039510702164316317877302112227352747636964682106050026370354341181549945877630528272658118698096706723611842745254194653628589442763293901723717277356244572236888747536912051202118974827604926296160246833165647783961321511328422913884706030452518641446371841038948069831823173937250003487396249998508615706118954308224650290297104857299577247050004058340864837700568132438493342579780022394393915501840848120323975100315135442356176503255233602905840922860247990607500374353867366826934074640746155746321874231063929546292702303239582204047761801745314928787049299658086131099979408668892930087848487457281195660009983736775824348574954974858201545581959330700625431296213261813191135979611042229140261400880416680141920103730410018033676137839208584528050242702748111555813967261768016818594623676905061309578621471698903834557361154497823842683064705617460975996608160311850544753318002080704832266707332621213543332174638856511386530547492982155385269838961639400885980560364439465879192747409516709141197821889714873668103830327176324484942920744187049232519143128224341428833625076658552169946396507866299861055807867938796770087857212565961693041097053748458576540686003055550211894204072756207706701342217240012636885164853556738147270757369887029477569849004606278541717122344851231851775573066388801915992394432673590222281567928751022385255029224005857452183584829216966914449191380696813126455806512777735056304660323554229272235765105803515557111944068505706697543202248372432828885027102138292148322813824474038465510455387823399144104733559235584392993820432888241706435377988703300005051410527610982357355324737910780851975859122600192168730268513736616601598789202503815227209061709481672538026488117961632488028766923076471966163780830678954655053674369476531563924133441933972050282075358945899090412151128623821269238021926364008417467287347387653925012315114059865874003152343735755157830604511214783925838542522160602846134216357091188185705399692002106202741724531596057648342830272169848430567417267661527470412735954920896961559306423307904052785739159567294502948758442096212532896325577263105812226070637008814223760704734978903004408547425573052483238864446075018399478751820036979615900125745618008192842327603183676674589007769504610781266291863665667648644563690066757169485500165444828276758137778631836847383190402698699581839490101426092737692353031856987903992599359651268629739555078437588532087414395476518983353027310940469018835382594868681774522264284382009812168598968687004670171946076186784554895678915074348439188536616957932144998826147989676077133074642591002647868334998190699073230846744174993859913290241116816526542032640458484000211886374247818299768399111366405209011494369311212915739995104072318837209606491228227018794527919230745066499725307961397313202839669975460465010908379361537332042865658958446270744687484189799717327030413134324798274580539689512993840389874157877365789804161178122173681122638894968491370623164830869905797460652966911666631065299867631980496730011578574034455913626845965720164953228909970749921602969497496122511906928588094109004601827081831041098613083043255771605575502002642943016474621050016720254269106149965761316635340914036577799202735187273666801630427517254856859555904378201341581009096667845604998567725790245865558321604811132480662047101080003765140976028314605488341943927256573789409136841920954779330865361339606065577771097235966959446762290970969924680119629691003019704696649580472850220139943245190394199032985241263673239810626250501145737670351228249237402558722260244262447856990543527142551680795451804800876244217704119521125701069971447920045221760722996863409195469258060928048814843852602552160140206385138452756636687385813795025625037952731907612540814953202306595149882741538663097021423133294282052403313006049876867385992943246122594858741830118378432834385124808263034944679446436606673543464369622626509072208516441458765096474713297508976377282485290772439518090505291107634754661542836988724283836716125687983402733696725918139533368497828830289437759800753251755776398697728280648489486793544531769229480443415378183339256546761928721678618948322470923293641302688590042409706179919377867553367998521588995275829410768037203109392701482353103742187458027963910097436844619270074523883180372681362665532840213429369676638219520101747657732482532286603267970591201068777890883054876376123587906189607849797857909478667863732094118591944432704769758837933848214401779263274465022681708843766354019519021099067006837143711092221948909888768500802778298196510495968022149433911102799969310097470139499301620964776329168570578102827357706129636315723675451996506052505650291671323733138655250661196793775467713754544156794318092917123585571769508958469519910199476382728188726371669637536495692053765884470829147494002113780347282985976665838328692187073058827743079578536692317202100178153633931699482256884244522492156759066974781866606776380023729282169888452112104333845832425146263243179623170255440128858209012355620790408442833258198542652190927812336168423966485519821680517805866584186594608398992748164547491860210531259771503680629355041482816488049428350673712569617947231546000188322814389380552959188547126661285358553302169129845124781410380516925521876781031318009649686197454354311100033348315622042900911955472690848027094736314838752823231456849249776837427651141454436398275471418402515308721330730686205250013685128365390476089640868700485273280517082578974646041269878745532182427337132611586593428348962825504415771107154906387950276484147564755195400542869146413138451135520820203058995461236750311163216057651490469100971626546484612250177901206041409548494215841196127741482314368342560142419623770522218457359462270896616797009054497312802412979720793597595279143052093261083443540417593976815072353723284072328757197304824691933804782287556355731292485662021660623363446516677024390636458961488600977578733675082417669796109289013916709106622467376326139913442413493552191810006341852236023943077412156476626098260901065102351227881136809573494605624171775015632580843509917501551362783059617724295597750428748139515715188442752164930193520660281914061785534869892418110300815644584035061292710098275364125733165816509638345227947589295947397683184130934571158759931938811549593813809283000842032906872092198382240871635240358422566435755614781032404810572085214615049825545284370582158702036966334877370933497115943750857021628511274363866467210762323489983894781729979957408910716344211231983684848439626499027404550506795028925749082025137743355628141276842051206904799420517294207055559730926054158127634153686383944778305776055561425276803196833450925004352438541882366318503506240091818380800039987881566010954961824563905865171462595494204658239842650817085359401790026618961666397571499523310463662714759384099090139816327189482704257465606554757979963679334357788172536838719874543799308686048009742261463591857969576316821856366818112883875962348472089154240196341954894655711190486780537803072864248490254334317147490369429001279349731636938856875116255185585292640853151248029990325971915191799133308212309314569526398625087353627573418471775234251399316873876777756349541885798046609941436406221429132907593456129216577099634611983941297634468958046108775470205779750040689209158891130631346771919779022011009345575234598247831164386967504467595390368668007772691527499723531803920615330470654872451875074688772510576384332371949705004687809875544882061992960050947219993384462912797247944932115695484427818410928780853978102116014635932534242609153589261960479485041275769805083996335576749119335555669958149520822120397635425668662904307394586644203517750010870043437739920126359730012428530620813520692279367445039107759936406348218146068190922508555936178659813436251677428231322265370127701276985345179778052210276712822572213750271493702595656723328879383734862802478028564804050131582179057538801724306552984023327071893633053633894261981125392220738810567692755975399263821000289278386148650265998839133102156134323617546669738496005546396973432697858067943887600550019315890698801085418404893312961510936051913109141021139205333387503868332728500495529565388674171014165640985926925018204924252295088521066936188385283050008061225939030764397931336133435043821115243223806678093742962445109093169896662041244732632618432949639232580126364258068403461050710704030530841934352615756282157891676644035860003847505357076454146744242669222899801155725367663364162181703379283407747430021318461428719841511140933321354809989816465875153719626361856606103244159827028177523716586364296983521197731865113343508613111285026945450238878506046385621053420854873653398808947105082333844033058509808755436942948993495346157506528608715446798301959569508132656459238945181198011915787030916694603323711940787437468077627531637552432898689229530230332875464829640167356896856842317350852321960524424064232850337471238571362185254965766321333232351499758152152743523687232510607064851084233186879858805305451257328998846665182473382368435797651185032781859555704170753583852347761854646760841825911572763302096469258068874440139656518511201835776345849444994833567057139384753300410096276612700742849560346199830640660591755058936986878568260535844784806317931296615874976402415542913696913903965701632798104811988443013557039217916756918357451981041741866115975238437766365101969024953928136986258213083822596388432653224387657188465566444597005206541685734510969033780226788427940847378425484416512296048362354460370723774802050290672056553693317801184447538667657890261085827203176497364940224900120810866095333710041682220585874490182275751675675684241408868134190372502573103297557096770993181635827956757768330168860807431324281783649551006837172777264099029384529225837242455220412428080808211999217953624577400727954156850622168732951889966166963155241150178620188990045260468189092516933374895625644405680455723851232993034714308026195557203820636975144014701352225321477374552130279329328701464715802553443877775903027096964068448990577483780262408488973910187653490441451726042299573838916234912437344865996251518686492859721366197991130209811831399969333260720753401371264747182138765664991734740949137639309685204169544034679492412767265327536747534719876314110984576293726502662034273868729501764536146155904431006568139161885991575897432482543681488510426478980801652661150318163796404782731213184113143275092420653965971488862788554455503585650944366607766185866847853640158447093476186780139867822147440650862006595427179012697755894822463945843001580829797550459500848645376416465672258132717576277321683629777403587077032624744052860952782472001450856863430132876182681734384656944529553239815478812205903653287561549095483128363095584161861914772888048493158207912824389744157198162355800089360431794237976793310475819264320840435738429491659765718031369729392441808703190041778375698956128130930933107593546407109916844940123486846317480788802689513883293550185241436879496940870073907846179661021193637926863397442544567307365525442766264440349891850318200056681992323051480488629518388076022242598223728948356781530023367435993280681786350389874971837208481458394738025786996337676143816895299717451050631664160817578131419961579605565403372506983344880359557577602835439289955110701551013824282938403156861348343849209397403218754404893881833836938803842210878609212108867644009435004847382352071748314430740889452141759645391198633371819788159215453198774467116911191462977478939726991494261251393351803908894815585083315240089238250039389680502279405127498585414231090190932786925257176462600243000994709063053990157012652340807078253649276375058938260909649981337442713099034104847129541496742191475883276330897774289734081613092730114290274868704400778307291857202798540583141066519927019776286321403069555624775609673670520961128584321026791635634294190523196153949117761156077313992481834565029927192285107054399428342117927443243819147805952639117303340729241520452142816807934359983321716340718783258371922452302481943173514700887526739503602628731710527978590759464134950548449283404973121450231528977225142684792262800176689519995977042948178756995294043704332341008240529961604564844962227668560165185656135982372568751097199291401395380245188058289441375822346258289917510196070449913105703585813172859648922865833383611102266444231545845454603855973784127655284190371917510750827745013471638795158061242994552693160554051934744092873981517633144001714267035440254036366665866678175411949118979697244402259892526632002235881622213273400224756742910734365476302088689052484194581228887200433549990634782894051416235316077137275019113077761745400902181044248971701284053131444650480652609994359463289982845569127390995594442983107266905097146592290567151177382934284206037736451260490500552317889769830428058845426822205255159666561495223932751043300701305129613650932038144817599301326171617150387563165476667371000676439904436819080085382510039743009292425356989348602063694423691399564028114163469177534115494006552685324945188326598408947020116208847321997475756042642801784853609770342360968428646427416067583843517446867141138696719012147698822381988352014538646476071041607321521853480294859647841621179483491395723818681986315545974970867610998973836333658065475022424680494163821154455417521708229034891151879421516210849769472606335930942366740007928298931019243249963957047526222303112372737139420398866265029555888716539877929421301948282034197557707998393217820389146621537422921427852145148555777189834447673070359352280691771780336997589385816485450461986489205283122028659097647352004557700816059611121739534382201467641173170114391460315771628151990499989481996852093374133120933014651922533512353752806232835438381887362855309867511715354316212507729435201147104359036308721734409657997600167982738363425258515760058503569321173366181441111994291705252653451133490766053174146780390714250576120632990739726830768022860493477018047085611666269118755223012544000225365606322901922612295171928055244633317373641423456285150379616563815613075330090324514807969804938525081398304641570825532526617631114318027162313121353660485788124299141667226680301028597009992889942713745325668853087071581190589704335297892081787649027754504108618303837693344408132426524423294787615167538782459482335268111906707710381874680189431478598124314549132524140419131870139986843743063127024881111167979725410867611990127217581495794769973687489682671813033744774385121276789499828817627389306127337145759387004119384822194779309467808439792381592700529371377845431715993592395323603221179054516304953444961819836054338517959212495556645759967345340202643203497378212441695274079129199010034707328251924376750086749434015411878389882801839684994222226358600141521983827063507735930527715863661342551273902612660856236398926443258999357459765317607832476380508866825453265177033787023905888889528765646289869536338059526423208452495448402353951703844449151356967524436697838801294510773675193926014818043781322938705642573311921366785263458430888610339637010018769970684914368824427253051510379279336332181262217474856095706097278284354474703741193540191276671456809814743627032838372626235463062146861886707691664250644355362441406073933498407356974856955745240983451113727526328516456986519645046244290601180510434057408272267156118081733324049316805018743941535132386084626017810399057491882697507146763010265092263676345077525453640583415874316106293079417698846550756307536441524927401565816063881083827286250925220818689438199133624204897750407140306016361322151749707418607317146990228609685640183375671164891595183295293227266854640128239430425209262462223559682125739738451873828761860558875117184860123114885030157978929547212556898562110216363428112532225521188675988134818657147717240690547808263228356226922669822845816126632922398809531005547911021834711567560616173051395257179611992711691084963873826644386730254984315655181458966439799732069083499363818728989333336923800863325801232901559045188678125530790381269366863325108563335865588605424594131970004183478247488573403134660337411905581657588807952448417994411994368713703742083445393336193664367590288989825504903380584533840847770193098014476644325240275135428614081740091913653220477564524258117600071199640178008286122875091475071906174867472081605269764386565812744457122569578773356526921180775904264773387051848865184102888143394159195630106286237454909099727559843202922492392969982020688214967424004262621146711359197361261767876148967481791819936908235483902158194324173707998518720163301661263642437910592202023834816335570644746509418146444356334242858438094058224005756296697641408991689938732559932519684111775367170047771029333227480532762090441351002497310897516754991510017456635978627503964098831768315048110024088518249753047150137888987376858410631297918410467750993829961679109397131899300949634920864310458130246080161984864907147219049431841915870001663677777014276070099303195039730394199179873235298702401085969281117451552354198260287721414969556921551445400317911140947849593822557810784755068192720445606328513309044025800808658311638511707997410192174500248342522276789595065554577224359319716317278667373193732050511513873223736151895561366937746858773169791994842236174657614268614025910205835116970598977858054164435119079941649508739534847380005575056279944004136669666676642871142878742014403336852229170332776358307670079749177523331828601725547737326232320977904057568820009207700271887294945864661738565740474538598672415546345168158085376135245664031526939026502151111808537957010043890834458273577661913783431144850831622357147006401897882174209353835398733852694511620771622973798915485753313427970567397645503329885679294514974107030390306123861054447521488208792811809019937435932327808220806325016654451923940339171103672477357096251256934346213457710221254019075367872666012791083865932002443436469174389800357582502203700313304544650887635225384855114740504420282664608637914695019266584764456891158608689099248068904522552054590231905685665767188583389568254831271922755966008534059431561159242611110777098733000561757369355074786066435346451147934828768267025942362318975171760737335860702987841068555209567034656981816700858665081184141328957539523938568618677141212805465344868482571737595625311444727916289586051704308928567434388619805598646952783915270791106084621173432133886500956378247500478797318588492334244545496426449265616849673616550407838043141436979156378328694657303305450521245561784955942083781184070900774890758885313631860738260941719429975758569585691689026118233079518868318467477492795178427244377354455232095015013557219547186786187952145692228321687747362158818909194453863893516389531342461841863240686733974202910914127907103190412238513664465001804328412923117569410348909139910148192619792698570462602011242236413133115676613659647428361368099041811371985812580734759123140184459783116233045510892367780660600998978021957913094850947570056710051112846737080108570746811299079323683886858428491578717663372457953801043816047969013805793870238397131074932503102861642294518281462952779982968692815323094094968306050200523159019202473547227494373539260145854169045081481289198309733998261560194123479849296420033392351586944578288021120607150605193879472890767222636819435147190606627736263700656832633173839960210460931834300783832630570179465298431247466484650824987352080187674591506112537877317003820550112770824845796306275733957676167586385526089826190757328537168946908635332754844506926119524725314653225384951700212032671386576663947417245205799184266526482218740040064075322240265488784882669932969929182015595203168498460721818297936262054317778375727832237266723430174185207125372692190476514427060062192982952004021361287153684463659916427280438528743421606589886219993219619433867234889699477793560514707086196079578275979408553735024507757352419405881796885162387763407140580289177666149864714553765866268450813625530976580313517448582801300981338129987774322832404401924332005107186905820750239450551486291249308961711061400452846107932146545738216675190908114851156033239479477991182075549103625686267828171546113036740524229744124636518704845849771542599053040610890613845608582951819569374680582355767179987861890844275207235292535798512300903809252782859377880726071599719915084632969028709996555589476980062134406126256770682764875556372671511732754323002451729633903177113938739255618551567446553529672137917804972492231667720477309309248945154973936499690103144587902214902000814580855237774059192413092804515660582146797769154015916413849386738936098789214394415140221733093124544545943130260633645231378241882490946899306322527597819782707686832426909514546285196061065344193775866055862915197737206541147320285670366662324870751301952243707449068120674160990655001005100997308986677132367389256668024062333684304950828424097169681328393691804711081014105249801743418189771259461822614408645174328492169635586356431224045683453249539404338954039677054265466751066759666072111241257558620202363265196677669526858054297596117896459945923268786186700133309118564115729853848878175516862506876121670366216926765900865791643506349931097007801423080571410672217262516647149130540795035658587341255284574320640483676822331609896389773523219294742621282236826206197608873756621524723312708009704996654345260833108631513106495777931896274559958388753607405469632363469996501166108665770103851749673528922950258334466042086614060768872359598640977964439135080292833919719105297874814266292041463291578974565539764781060025041417884056839640791474371536932600243506736751345342446108224905067860248960145437928917345402563155227822022166153890312546183386816934280371291665712717984288807589575802409136402465245454228204770985458372604572426562551508689395266920231377728203060153920590384161616718310265620253507852296571350358193954057684731246875249447998802958859632419790170859968153411034764983396200044000217334411492838769391298649850689453925086639636452491088223802768382979385688430378680489522291385236556177616638918561389672038794637435010075103597691818230391261625213105863612915162221297911325131155140226732216331594793482376969158345458269656051897493864558728254708143386522537763030785519093734201759149954355360725655498038099669371001404812821626535751497353774600774773227061200152943224475694791868568222434189111243456658244141384402138177518642821143380165945097737890963844028452869528784806604044110745312594843084264499011627828327364579496928033794954384451781487754923159713446793467668871051828194528813866211794978136413553130166544046278516838346673483452206100809218387077514567336933931753865424167117956445197653962204062072026842399942365599237766581005654149037891451729833195747469263246580370307269730800966184050315750980187419749086915333326412608069401913682571160643677036823486805004524579129766541608611834223801157261589500824674362465681130827930606771529863704737138178113769330817862359997250993739796726032196140664769588446911166601716148169918154367861721969975616484199042521752687433929284590120031435525366364805882377504038564452953030236606948252990733975411685682071710009567724457264171181597437556758214913690769655498065500485281493280956127147122068347536772958148889877838066639101442830447701422316602355064361485506930235732626967745222711867502525365556746240099103283815945103896395913747491732776782375721872253858370867468309931430047978442509063207270032404315648844098083266983151933729589119939768382965465810993810023346951195531956588587089871104524117182867619212307008624402533442002237186135217679711953484713642768270402151380949010602413561073212039323299102302912277379972657012479506516899244259747404658017685158662642827345502598139504310625528826738604098564000406560665618678734939012879963590131574605075141404874329634247065008371737677721908626352310486571191825750630813218863912041781557314055695407657717381211610717970307529446170556982409498959007351905897056356432503596135845553640938991432703705577974111437879042696985939614932254444005200637058984510203672137904155741996187701275153549294632664444322206569431116949548372446406120788421896595268806878204764230495189403495508759248216027433076882412524192567820623181420766205092154378722030466195065199883491921881759960483700759189406448301853168075827629659981752470096326823230790500907460564509219042646901598826670702517050565646706037885992742044800919673085009725192168466584981139430711706767845242726730602043673350493104149244226783002087568456115862002404529477077486949482777281481793702992042667250615052834423820309157620290011634509368715048004268509935699178492337696144737621532712883469884515039858817970511080478790333183380685475277682804145877000299333453852766115815200368048123225731749014941386084637497178685708204080350504458251101161770027411616270947385744257053782730756406099685254090798806020594581555304853025955726428662724157843506906286117778585660922225875335570677555910079690554245359034022820231824918507726123046221503128864274538885549685041614874707884904445844669683985896478494827407471484897972835147735832621287430307813198932046823276990620498939135203043183093773038895339362684340920208403462375481838749366533712534866443293627333978531056920263878631194456801553054515487283464358152644047736976532652734948604942670053309677905361576986529707985791398150163607163605098925645302688812807908715366330570133310526025936531900913895067980297044777620805519237640058162675492365662552459669363512942610311659440845768424570849939713946560470070322644278016105511692529134871899728491364266804839438510068508911604590006265086173278391953087342490814651729083449865382935611460486852034747696477385948668271251372304207405253188995996623577520067394980932116285310428564311292453100157167375677134552376463807361080734731258512520575426400613892419085941045210922599188689722889597404535494946043844156042964571505071230127503880431251739705841884082347664703338608951292742859733070327331424364019807207229902827715682352964260518452364282008190199988219554929413571510715236486137911501085610814751379790859839686019658217819619875020995369209473830658706446719005038737783435558099719659925109780846746593540255012427863478619055146119653744791035467667107366976615209054756573735239294149210758181624284212439370147001931041357222383637444870074285474731750213300298710373618447706337679219927795738307896570827787603691243552970494265556267778531504783721412623368781723406905987788832382489564943277388467185451749447401537564320020122818794937857692679550359139902084273889605985673768134113929800674573426436836616744541775378884911634393591266068240406838148196497688524562312306282612345258801715817102729479714772869993132255913796879508106921859583337782364040003399534301049103213018638633186585110818798752563100267383630407803601921953008818538986288300949934141038810056956805008249659906556246230878637545516316567526838955214710288673192589777849267261822855784181285326186582328306613431677583792938814648346940500201275103090261379636711286787193763054244394398649145028077300973257665274477310150339041472401817225200363826045961800727023567810478528680444979385249567906701931557612364845196076291405842287639121741905033927063384986904480469275534817328936455027760928103468602571489225441554758430192999422648920217679313728039490051270204914030687682326979106991897967938057813537381271699216348698422770462631647700740744639344575890795338626604800570886064339622360697494264977990949143713587980918710219970461877191915671358048488758767689075396856740829668657748468453461831350509631945465311190263166657471264934846029886786781926567658659371221983217401818585218949400206109695879088670464354050774600642979565282666770309269020778104528794994508045942885438547103142673677999713663750215750696807503443058399236616765979721682407625073185377547495274428130257965946443412656214486539388057308826018613403970841902681903647470714813605312249978022283372969605818728538791684107342290289979727910433476780550559789709628750557346507641309369269420323178600034996293656925182331739425490717954867047228897508263454264328699378110901823104078004439297904641130328704048445001031558714451387490320578284974849902345776653917010392595278935643654417310021772920058179868241261121043997571893183730234552354334467049743720200055301429015821864915828724273934311306525850606771987783185780118464759849203845517371099336712062261914818774503554018969116164717352733652322812247736234665211031273359822710800856441784663945545661907096853840642373768093237308021212976493585084463280278470029467321299819689027008030755648114216276711850293835838259498979436652931793673833877275415322830343054551985184699823876732977415063328979947059571325936318456364205917182268258721719752783058180588667530592296848556654382879168097029537877887622945091595917834846782645499431103943756283504227444584177563839193119275195729620601324015399148772782044137521163466364894003632115182510317807054475859660675306179594569166978915478569625855928426991442990381734713003288954677494392539811477648401108274857804864607346955000520814066472688239129959698044962964215452891063939579866973069012971606558457059336750472713021235082202243636051177137244569367406531061941623729714816172962259707478867354563090556955161594791217063858052823646827433761896645782925833841062369640769904806382372979162123391404021092717882383469097246003740759888480432564407299578845186169586348929119359124578624398572474528588765995490690934028944440637719742432832857745911053378759006045030946245706547015634875965091195613239784347675243489710462244262161276460280554729029486510114309451142976567705554130805726812800567984249735122117678436907331118647788718496445076951271909498219970901613255711582175264358663120594371453687388550979821270925570996451813462702862703534362062954238935835875078756610579486661196362354084968293191638739877721627444745286421038304054879971740656332040749844834114236012105618680859643872430757433418471315342925661207557383288154731862309435713094173480161863822839434852355048592313653495836088290869575250714175985316715509437506653766361775405836885047971333013088940080390413124520451303088080810388089105266749797601812967774345712953308708358767548130000026513629357440523290144946085578352118234808878102452634857449886329248580125022754797017403470272030639857164185843271971790261544890928232769875956946603287365415468372104164788090657382631138080062278880613000278285872310917135399022534107113947356965279485658952318329902715547621476259799186311778523772555967390930425874841323174527102702610002724858722300937072183733281886698982588736000935293710966937895408164625863317127498875643417092047673111971662017936564577131694977776089475730702010461180716090330656158200552448098889780252657329496282543455554172971176887673026401641360103938844279791184333460963175868754966520941539718667301787027730677521785771561488220621662575572358334702900243322693566599281390497350255818281486960556767915648836380783791111817066915408004323518550387318158196389115585684513915374939722445766772929619625752573943172646882545483105420705287640989864891064576432106119708576301098945264058638726782581743375272289842375163211880028802664873499500399642272284961177350274947100090069946475364569850109239201981429208681296119135730648163268657113226876451291115661902930370336544177673469043413320251872462711468403547623515388614332536077511753413113197096841070697261026061937307144964959012937240689420508785814148749184942647492458411320163010120491178673194003827398666669096186224983503959166371115666816112715579035491751008144197738557732100881731409446769320874103587536341449804100700614343997429678150880458602058329105587161379653515128842260349008485881955375006033168495862179813430733922343948425965909485187939958187748659791705840543999032586835414279206290970155732125219066761053857493326897935819892799636185246442271420990051717405527191194283229527894388632420568719571187331964725217517284617042197843511242936247833819377955306104071474005982461325887441159564252543387145017972584827866531240099946423183211409793329700984460648769276678102553308039096295376977318047690715970145235294461922497879202177240264243341112154310224327032821789734200057966863305164024970879188812876629720443445184685190418088456473583064343018581725818666707228022529739689662585570749195525858126376302810698978867877961358828864886601640620474960272805282911192673154789649652741417024297483575042445850100698745003251366188000243516380909331480722404471642510914088925783564605916797854564683269204179496906037825904977753166658241027327906211126055894593974368820438726806180295560795692924015548244758168475659087766016948637830461988411618972504496660916876800239190081037431301816125216417198569286190000783050064563428016254995871145427408483101967800752799219497567667842393973498533824625724926003064115880941447657606561431110386320599479277685824080880391326969187343581787210468856989754380429717836167510894842611686522851195838433129407996479581878039494594170773725299464193341447340946895205112451805189923557482118580962026777199764483779410472036946839796606207931205945213561450168556227211088547386247130863530983643794352808977046963764487824213906540678195566389673921531622088226886830007181330255213144952870364099281177869516469685087148793612476023577302193987140484467005274000719761703944730312765854174043050526401674535996525796286536933040152747420048585965153787897647631146114619738422332496878973255169063489848518414385043574796071962455851479667501290474544466555980359032338650850719537979393128448608473293876461078832092234916312514885540150417412608417937617951423619435980431334378066431081546072312617330724388077423121216158616362653333885584926394723684622864637977029045633964447738357429423942566333160190142009141988520803883685606765109938501653894546716297931252025975939691251699028115593774460783709577007133586847389676630077472153215961227822136701609001924038548621028311339495472136170434401331586305437591574140990474979086185122532957334555846013206631691372817860879711801939720745485439626548563089344964140633818735793830154088904729492699560372838530919909036640148100761056370510437291328061440340170307684765681203243673957300635453173623964705070369319480469010132101205006814004033082647121725539762718407479614755726667967737256372298516809460176569275571148423958704396646543179655427023953062164532132140093435077918380368434103811644492380150254269286434366257496038575190985731818126443838612771056800664467319521620291920699135111906788377182120478744935206780988404537307374338545291816723772995100287076216382748414569521498207420944196857925484849972957052758092006514421977004997040878792679402694620994741445043088424074660539466746560758477989222535510957994695414160618523892123354256739429510512423456830985477233781560762355894672968930528778452709720916779016543869790553624859104854246159294284451834904855961093756633210888850158851243456693998220631275107551721348145812455176788209716681121592739338956450457396299335379022788899048392367885887500113204827568151407919770222000503705735826623069701599788839667250623129236417422892662386235014743523157006480674461947675406615129288594649494191675382063949096939562512911531396322499710493246518844215781780334792179270749272292722855130285377820834778578999003486084668498029590331394013963323255895831948265933695059518640267848922425400163889767574801142998505342453594215475953727064523691404896750674801806919412896541524423094708044487429537280480308449223972201466448484978357781818220214359761242134149784819898009904365752417104993737022219473370765080246055571798715752722280502033094771915372748812394957809700113817088475064908767996265792507052945254865502672318836674010895691848208554341507158126379882658088835548520771722468626634590132663147556641916700960301137035055279635600246344284044133843262530658206137790377878262865946406155874541290936647224791899847944600738248092827078170939214832407664407634113389699581238175042646141491826727190131616643902041804190755895466644924502711500168378390409633275705484588964858603018001789219387858078762485579313770998096393144114529020358288042683865572089293895837675905608368624161223939400511369978484338886185391169228011799925297127362899498636535571049383709011613844497302106423529475516409756917949338353887767442190111060374500961610099932324625994444559426941241300262943431579312588741490271864235465627746455666354127742370831278001510500205279872379412154367767031607459905475337494172383081180650164660098563519496947625573960560253743370180462641479154652746812120702854476253643936198107063314974388317649819609001702635741522803004507915057406354334005238535500095774889178649256637398341486403249805411253908889785429267186575183836849549886647253696984005384946981427429082811530661226378513971008803990574552262171509923560686953083676144975506609456534956743656305160012182144642548446603178037924556190729208852282691070926978907666076502682804066718841487981877301822059139235772032744178601217352227139166668183490095360531228330067164437437648029950405510973157475403373480765528869613170829586556117125888856811731393629814401222998902959111563173118033502733574188540811933511644331517118018925448589128428276367991374064040767328760092300028344588371377582014718151481097182408917937285681054749985569732017963577755812759488642380072259073784052519246290275992774045069209828996892209259264588182194886441833920956991601922328940417543434168855281634266319136712606801956807573284779509913640265981676994471725221161210172308127961602566371930579267699019052546402551078789067464976757584517858914812315712086491774904744736117465889258163074988008165830492050163337445417398452583846151461078335499965355385567684595071206668493579848890359208532142457031712961018112154290244707609021699928766710937873418093155938156969606608810921818508992135469944441057003081788825581510607014436639219816966732597403226774072289632464600485997465464435772045306198389331815854428247440016530593108728640907535472022266970120215527072198912398584761453436515078154332163965086050816544747173107957362382298513262769761465716686242694853434219998121299395020710117829989630027154971678206704453823825185931391850586883865391825029832467368541785263358723148636578518244428525010655922503221009572098011641476745398240869858297894295780440099134314389363044232290090490316331070268203587821439009924589101337871005315127415145911334895001634985702303121974173231038880628320002508871134775413504190235970870319925114021476861142485159876226068278493550632001673570807380407016245026064412911360124557473981966623584854887746553767196065605426085257925708826288176543680395319895348810151966254173486371545854832477429567230394147996827806989446369373248524340769872843821308796641129019602521940228722766052579050289903290799890794962190154357815818121211219009037292380037970046282250459383371821035556503794075504919034895949953573983001820018589262428210597609919389936699477166657868011484722495572695349134873187346528903673240850432302585336009107811856368695928210308922169093921407776917929729997377138738679263575392812387618560052827205569899512389835676784179135079930048419417652953003519710497413057533364994908238150222073404252409945729048908716274347213281333382927024188980130079462075305693484040158267045642581478353080907496556513599852596052201777120386451820409078430950323985533862675534732898417200302893937376263951990446557121936898165581341688146970243740062672490130394394006654514908935261038719446377473013365506381186559326282298191277286714430239720479385954152040115928578530321553108739433538037893071882389039533703067530700715121223317092967791055078681424238135405506528763283616917172830330949439818220860414407841887390473706277143611916956027655858114944016694582145886880216315563993266883962200077813690731834987726340469610419886932620904909791213989917939652611858405073518515796371101283780640929647499486101424226619182113852621658861064577927219746141969847959664735682887947581268411108451099817917560208694499041910844256488994509149071948417566127709101878991971034848233573172464220311214405749366567424351257483995892420086586303768392332877416376527437253500738020481894680312638477601355453249041125301270494018682412596615968242918386297939047022617346385274986666495631275453256203381548003684013124884342439506089691636330781626948372038981245315387311842302024120910208934526511165482784898476996347025802886160420564247300739151854241388233623842063509761289513207445323232831186508093074986505692420573901519824106642618400074764936913126944617232363734325331098710324861631254796773622405813636858631250856739636867950496938006262348373507084109419524212409637336230572973984541824854747407456774758359520066246486393323723379173333813558023958705989650867462518821550841102334909375307727651463576161570360782099107359901178975307005410704494782239051783959443810881767514995270713993347972319195217079289824615684168885497150814520734610803081257304703072373876814683454484022628506698790572288622934108946789747074933172978544042919462207451705534908048364506122920356919204653292151422690761499024799520887885526479391355415407415669856141479453434853979682516817003516429105972604667478256477120085244084274705783127005098792505979796458804842816515152832633396021282097461722977531512750947358955492904805188330493885048678065284014408877662254393308150417642857074174562904958053514416450710777204003132811154689210964090376029964127553127672031431018246873227541108627794560824482133364053249816238651688227469787767498006351763688319108305086684552521417219712316316559247806064801314464472538820282301623683356967347260655089659738773484517252877621455800528170497386273230681150705099603928846462720187493023656364497738096770890035419812746485625889217213843417685807019242485152082409075433723126959906522891491082241433572436479538075958140503073527555488931960387058375013551486129873018670414783643162812345617221761366675280064457191249260957276732736056170368172969213733829179435636946062277216789110385549487758425800894090202948823199808793829782733830896795745084927463536257895221441599561881624342946267784395741227930603455760995671376319589252234238524413052175144855957726860211542094128935295524997098543175542975500814002715093528349083888282587780388430526912753487571194020842464385645726656574800163828395298170525454317557453911240355358135111927165395046724578648912286503575073209390337326323824641256556819946521376352016882474223627499854660528004095618032204652507353318100373140550239915401588531171812041273153189029950607775668628305638308667228296592504001691246685842603443533276556306436720932883297999213421787975107614640601833165973982141803761422720255280526086781593746598127022467323287424628293591929801879786218450030425643829201609814934133197887055633604952512700286177642758239649942983968486618600252382670545257773157874404938667922183754030299579909975725353498199573918289842748132432743509513356843518829982961676795558257122007955612326727896095605620250702159536993193856122021461149407440521208109472204979778376293614556483463038018269401655723340021197139280489612742040330089162371893966965101247987690260408902190504620029774739570390181850734244364041391499235273615259402688593749736673514176654868329594904133643222379548216520127020422224166361483718401398618415620937140666138979049825129780521165535956360354865706558562270574445635300694337026106650766932911288402235699515555433027277367454515358893442964604721788559093111821247870157856335188453753805232999819513074238445390412251321897705516784354036906128333192823946028161618990409500084180387914461958142207411619457998477492004064702536593325325008923853003430282024006751293984374998438407959427470055138315327735000936314498840274842277159399051445236806968388088406321160791575515194222081004636335161667577502081286927611505852818004615047536145875037349065160618426003489531002568295915132226267872993201501549066365880227371343679412247397883743180143699779714643002484597900256345891465338924713768385601826249571248262225107340423234550778566769398943452403418345006422147271265248855046481462066674439767934758970071306758568367526864372483666353933150695713307397636887636100706216900191080682977207089969092066939638225488497455395151279507482833936290948478375465531449744924377467710074241264205405667784244629647102856919778844394664769331665756407863387505740288844812381437713923221970366506833562161568130009316727846923398896673976797753544650546703546015295076474005682543404830139520799036784153017223190655983898367255537455399603274825288673101549505541614771666176141929118410053279348492113222342182551850379027456554792830848544168068762204613309420154098517049409134806055005123564168296308826231936226572778511791963765408660303184326631112488767839712679828739939278656024547879939633590396960701118928836644722318977418813265006237534678161796252149749667376999053830314752046107686924408364720518951239043676889292288976611294634276305054260506728482477144791671617780049572177781026295221746598249393833693556548076305218240647970246523703886510253649008312896968047522431388606948214153589163594610892783880444036887656445516779998934984828274302406895881576300059232680027550904063766286799065668160312171859677637608793842789227431737435330749794528184110379591200663802219579634298778452156498318195152858025406129223464590735060621918462487582136905013795130800746992290475152246759600805240333182606356588792268303156562171976969048657248773883989025321092050145387861728972216484339913388879475387556200318755485487796290005100539753063668846869761525738596539489361650751392283160051189450553648809363073059794710556728275037917834037674560349092946792539417826791518385433736408004027181526645086236189291013885637729005960581446554492264589196918938765625029804142444413291007023294665583577486788552711640988949971045242208484608937907998269266699801663153407465076031196977190285086707855545287416016929154779452981678066292361532916130592702363885735185134370805383470864654886150566006443017567965339969651004926488303469299490611487653324870611411506319974604436744528895487361954703352646194882773839704677144521234370104613359404272992808147145725867068021116798738094380870840628580783223923414971164765998909304296433990800200992511097827104569575287446640653101737163692552988277299044230827105310182021695302341292084445002131112302562538482086912376966969873587309961675112265382493358907156905002072752331162256720891576127492312671432894509784088096689824891415038990605369858647522514259978105632201104873755144256325155326571720695327548213011125578911074132744761210084065528559912483799553174673979455410749784443359516916391451158509140222351858568382660505769675126479867983593872227599651604504891338238051667098657522747288095903108046534255800964014327993558226316703351369461430734898685682608649016862822064035481418381508837831146451998589228211660882061159407042852926046793051384709156553195805848416996959748231852974833191427095282521747831617997255328174514136323657456764760081384876348469259447070064208338301826752558665929486893690977422820726045341052731204323895770890954417287299937427930945597150515817441248299007465512814027054685380241840630130172813320144828916223937772558925430622171757791074252251260678837896853600144368278818829324235314319843338776116682013064519711173047581222033023546099918968379411202035646465134444979400318458830632645311406685762446437806686464144756410444681667873056671624494941286244240115352791485226209315204461166132034933988873330189906056894602130755041120735793234266677986271188533710038099859951670910432912151533141402893195140739718950869808932421549962179999009223556345030399864956727122136434228194065054866026265950410771154013729435313310914784421687961325462039366244924421009007708948524766573358425416804196378408762838736470306013256518999002076256742082450385385171183465056474953402138791512868977645427257443264397231753244929388754058427223871696439852028731261048057285252440654375488987202052820601486258941785319573121636125317327900162918041605396894026890907520132031262024345349192620093267571451606689327935724008244075059641340862903712268505998414374046521810850184728528652343431558368599233939302773372925332899366853919823826786655313835899396629049519382156187503576443145078130800932747092776866526209029454392228788902125590932542981776825110836875871767516409290007934961026113703423611440169322077840508101151417961473546198540136912391026086881524008763731304310391855030224330010428422906843786421220425273021929416261597615134882197461947343761617728206599385146886804371389484143603279615070737044375720940819935628815781218451787375612057996339765386011153195639756931597799659538035980634135235263832179887371843292953467890117680568655609659469880186366580875502752138885171070730503195149993559432065661998926958052798409312244110037953997604041677249274874926036392767962439672958936194272229055361948354570727051471887877541657054822221055231241181460756815463421274015648314250968427357791945512858665858053705748524714246685831997567405692369076745204817395882589134137921860536377473072920309221703210303539034746774783278271483583596326010179336864577064504100018231056335253835727350081788690264918602354218959842748492844624714786175095649749818585889338052222163509786222402558888582964702230819304182187728434424919030427484859314313868822755558777802981690344689344836091970678044485809385721939288593743647474658221860689802466073560533701234538104089135950611227976057295119348128238162510203473313880954692716966075777937234144465250713626470920783637977616242019131004238392257632172165626224769331938158983902719518666371019414915049508786973514460383592268932961655448637352503124732920316912503212730896285096551729260558434200221770769860330678994675515920129220853099140718095049026269047760916036418050659093058833293371886116475632639602282376855492666276903915628156086936741816642616492507265961753144702718959385196838807180373015175428422766611990351409176832320065786114448675045282978596752301435678140611626461860231584270314766335486661203736518303628858221389669996938318825890860883780229449305314202715271116717280835102704750191286939081297054308603670956115721789504555298879711775408971254400871545928301108849671185747907879681235691263574115163874645343541762205598667941111339060436557784304170327881098160428736700276068139327625919793951651637460910944731868322868703387177728754181897270653793773581897451821879475817895844690951386158041581799935208966164150662572345124969242401381416982492422654031364451037264501222983988531737946408515987566218873887505029083116409686808140193124429328482189974974228852392934688710482233256962245161980913450702441499941685523390773092496313252106958741314173408511630607926717609003131849349569325750736175099194681384220581224369237698332715805416383780673166706581457940906966577611578981018019442188938850083987034657505051120190861064436093482487359938013368754450498881858133857689311466981430084619562086334517652238183101254212653845022157347161409566154861768237654325348818450930745790889961403090981446030653363424779508825822854199651334724841505325804400991538374751458143810909308124569046455798294240541071402261887272787645187424588609576381720642668481012223167488276973741902986538676296677721146245971841337527684835275050706672231294650437074110953482286904881296807908442022209965949571955592588710618267296261161526500918663795541251499779082424015800879400334146821926462021593178909464219957076852588964670085413207944471844651224724904519790434026962447116066354959416465657629142863563736431626549789027499976804018546421674916633480673670820387156435870748799784140777106465940898385945600722749186336378887527767681881538185818360267334865517862743121735262555816784110966260728840310372423123578804122027792715035185967498391542111663186154726878166247572059027259293183513565874983854936682339396622249813606880409606247132126229745106243027668326729398125984809549697119425302064777298575461583014406026786629888052640721555537915457628369357611480939820405664469485767410508604815645511497472626912193816802989041651541945202630802284039137416012897291384783800991505322304711129400154347988422067362380124581009699863520691014145323348803848015302012951551818231707897846880621963830351853823759042842837410310540751130451181286543701279750950280707058702348940964468950665492426297649641077414873677684133600204134737478799024880463974233605578523379995994687537133946245323624804847216648579208329167562265007772188481947195717737543741670737735376129912065403289235518479365049585508790798132340012968063226670041125187625152403304394743678641892392542454945284956203109574767064602011495797800972894027509649784758275865494310450251086495674492110407060135824393691830716748448397117548930319316372128012344877792732862484265737119024104993513657924727159496722154408947868111950605224602627266423873012739762052567807431972014582096809244687461900059365921313847752794756955232499656319132525262135791959461949344380051073950885573033404340329842681939040130592712111402773586354874035462530126193567394972004616643679945029983099784449112288114498385747651245848149956162995368417813592059387624262310038912921541004383511975770727048327137392391074825487412277209646468320691707395166070110545578634057831540227922386996144759097672273151441736510808257474677279843248663205528992047653369209638799148805180181485829279674907355128475489252421653358698391501090924784649359519009485322565078573629763584462431980477522278153866597190960098572183937613581029692713724735003007419688916365357013042607472580387641419390379640225531115675386773440881417864301434414357996702542642100521022348211633167207479546435631031767254475761308892434545238249494036406924420223725431430978095860306343662934835413328365938137701259730049565209940431015770541102595584744744151437690665991125327500144161052399394590398311867595683762948320946628708888081180975112176608475063063310858481842729164360887651372122790414632989466833278169346689259863822158461795036061953026769670974672249311813349764669770202420452863810286539257368217144315305962442775804575775106898294028757475806203260825098233855396478488025076151025423450986454098641392020983265719103147309407591870106485018427263654164539479904915175756973393624158427971065147022993682962340368712080576257489790490357254083098880329216356515874021522301688377388016739917203476496308832843544605064566890344298361690840658731507336855903478106382472097880941824445073755923821521925679348272997770739624319345117541429133712034994752371159469529550371534401693330591031126313479638946636944396899905768153304576964783647246146630029913674796726241596505842226954776345193978985104453555857892527904400677869773878214725204972757559788189429732513934687997868556350249158481504378293987102864781594940413523096651317559862911026417656452319086320146805043437159406128523644946395224433290017995135044771417879862265566045807497469666189110953604068374574813796171459717342861515098682372593639473693642469402882898678800525427561296923507396185657318250261554118624223596990739883590336848424306989501531123681854906986329119280537693407700376860323880587816936200394003545976681594317463955998054934116782017459935050152091244309466767915989487528380000963040768999714038852225100504355217434965797847352707955184997471078881825996749280140923735051533465033184083137170730215966880715284928691967448155215746470800119278436580401141672641783100023785365618597353268469060705613313939356964315710290509215531356534463245533791807635118047562100765022285699368809768410355065276188609421699400784436359333280200485539891316036346435326399460513274107585734962485464254401075856229313481129887938025519256903364724106937010180176531909523475449215220773093847631326842672085454137929950477342521798845126427886622972658527625215528588364863998811152037822730898632557830471582756299919857237034824213423886065186259050731193385809687643003211059424755114203645623735664544201009632897475810051883008385550286136991873646290702674483228910140476490485747662900126092593228244008538100855551871993773768231316375663345995226336646524918917376454265788798922051184293622676948862530211679030315737506621999062874124426582583660523864694046594053333106195225239665599015842398742107565240140152653575256701982694726817179648583135201932559389872444408686567716451658175552666190689304885315191574543516836471633867862723921771518429492955033193976411446336240563499586027140574670513736915593356211179041429565145125348791248518894976911008855587417748347364933464017882224855108101426331985673698127787854443609356004690008413747400042301023577098005769958901454861769664565839915662452186273189875027228999158528215571539411834590756000805365750357499857463393058307875268648146880024304335619994080871629312217864639454493551605445652846290484009118716024527972207688829082636479500006731736779684970928929836822699259609545472780159793588848674601076376519427705153931088896305634976978375625597426520646818710616732677089518373613739971644768588161281928775143686752057996339843059801155167872844906149334428084403124399224724607894715187913163976955398095179139517520518869612086301455793402290992984179284221730501632334371715326292056898555401292205425464132178067815818987489233441620908102372256943122465484028072209287405747444227194087214208231604629436138394712252839391027483429822317387574978864031556025613715099153506433284283133624026004286850876057278133743288717484312152498430309703566580361336494941580285074802573042660910967517672612642573584098204590402129205551230421492999784414561999039675550645070987921594857497271943272636291479849312016151647158036811518533032847816964689640182279578206560550770415267676969393294798790002136876881591757874654340084014416158306932689969660367262597111030321860978381601599499819591510317514744893455964018213212095583515541246718153710037812579644850977793994660151529091604661631821283786309501017822614895749636941669932325003938826995803196834084558588955275846943064432163713101279672781421963003330236409166855476150410954940739694212180067826014723100079233075752453038718704647926081421214966726309768300875911148330672783112736287188241948927693938400483267811214773783064849306710362732669205233733902231158327303386989141894905749768280136560187681214661168703744574210269317104838396382987059571467751346550975627171780866993655317761973602472143042952752389890813653692346370702039391997581209279946802043142415864939638410694122161226274402685815099339565688394706910897784825588575378475863016446557929491824036643328129488327866183485131416540995490881283259081112422477415422991882545236663582194722137194967346949879050474506328285846061815446744779314909094073717362168806451843247946174991571914414100830832139219598142751528246412300221982990373179993506404072493368348179761191822127820367257460023301938450921202885236782195946832200236772823853236977213107953463859948563594379251567945496242152433834441644619063223262405026809947481449445903030642396400621634055648605718211531785350355944747702849146126593446275574973981405474556152846423966352272134280944117775152786452068338328709410503232914272227352448473195436012820072596919461544808511509253206953888380678170416596983583554522045164076912751087746031963938527061254876981688182633294379135321510084047803025539783825011663799918614575503899060437251260177224920966338195550319218990820406718720372310821501963687597527009333411227386783868081845073802947207989931388933872486642849911277130307707906360734740909221352954059373203939532321763079439032313621309920890765739366525556836829638149382000598749396408065098229389412802149248747156599661151301694299467850685394326331488163713257371290488939433967017106115553241040273167565826310529962104690860842084343293099887888202930685204126423146823001736904682239614811836659734227967850866818176503149859082004345904942497850216584653126192598446055965206895141059886109297554921942101387225807625601004316564654081644957073790124002526238274046845974810507059520199060233824831483887605506649482835246142471377433089782377751850758002556293413195379528024166411074835804246912851041810570954762780036936653214294279688148443654416287554189633007266129623238652799526758740728514153518141792660741926238627588744649600525301636647388284616665700929687300711164368762379217200613271920829869211515143115255321427351116294800923946189199389360161688009844423846525150026519208041680600785144881646506173887687040165493522177514233555395466182261451591918541343748716632871722302876869140269452575158504370003210805999601938958365715239363468280825328995867337607341814722161058138037655798084641208137381277503187971735959249331089740739964854553730394930265778022175858801390868281444306646112106931665688444764845331604142047248009961251187930466327356098283796876446816056519507036586746555009229142276709922480270221251634939548806070310513711879009686452651541863409146047931613283071688630136269763353466769987067358411172820740076105109176483834911959715754370722414016272311590929392841224352979172712707568319966769852709043985448401962170031794251990902702353727223708429755825615649781268418144147426234460307703951708813773204487062832664100782512815174778100731219207586782705520320657449803284833488879510485089919232960806238651791431246071049985877864452218204664254685869122196261374897810919090610187486099727243198806383976468110432007429918932080029118544905788326393945463277967600219351089351557958697042428442702736064898650943342804378742078013938326866517329434561795068955900893222680211853482299504316594959553487284628643336591118532726628386207011660249777776734215933663208612715988746754791880527210617820590471854111690815584899000118361774211236387840509825809504109405545498132045301058247371457367085539454294771986907875192470906459261871781955230295959973787192798353012485603608867361770246958659950796880106000109260353367345260965677124881347665420708676143552313937515592616960184592755919751615352431082247128252572532894543935432747423228174364172025147475080175360546725303828037848880067878065048817516405704812649287250153246795948001753512728289099080669707965750751793004082604012541792697715700160074367871902317618796836674923986302768281337972176406088005693581808771727640797950738566795539661027159548567048059383012489821250317973470705264693267762127537278532668993357601586664240437884844608319442519218583076781556263372067087219011786068307329493156886796220750693379769885345734796764915896572687877154741682098183560024957904696429558920658260766786075231003056924687568379324843391451829018483112685345104288091168593563843778436673894758786817867063058417449107202219358421363220586798663504754089242509999139010952886362414311549172850452435210023995899700503941972419233725205126621664586802560718189836155452130224789822584319568513306503377229420432607297834235823079730091186070650755060945027096917241801662471449801573989032384500522510057455881184713224851721484805407040171793440687409995977739402100739125336298815494014623182289083940460016294879025391577979952080713948840161969756720718038683222721794527578211525314705802216141980512675775370153124282223106565017427457526752465473316332288368018660730399607101981973058273228117564452110605778342096235630730077609334829690764475468521061665678210140718788241709173903923161301428064533308365870575422116467974837711880711419987016335056004825258290664802312761066963492559651495214297822329962481360691474905127295047461161718151721585390934339309219835779770113418913040898107198380662589417316558397727659330646388460438982857887807269611564646738275143119603422665780772386091058272489778069209006042607018211108939194811656721536473444905362817164642938179172372570376889315284706881468222642175028694572130902703491523470608060041303667861063893415013189433014954827183690059245660230465659602869087678438375563651625769163577910315294732618259390416898778734414255330116899590317055286534045635665950889769984264932035859154436736168804684724829044066519694132788695560583453432021568404718520936974033232480169791962403773113198129068786902101330069058173041522127484908312737743741443434864673134273004213438570017634062227285764411373958665701788093349757445425948062638537493895596668866090376890408097202667650349763761406863843424962014137168336146074225230003963302769004167174822211953507748115995502118269202643656797814017610572203803220015592212414705078188655095285366249648523372938983766828604494931816007010912111718104048466419112551689831869471380081885296445266288641794933724420897252540032449553676107285274926720852482899284365790320157588443537193135366295259028968760140835621812086165042519191477996677704813950659666696555522087868168137367338287412700657943465568668207798540219895859649996755870861299655575365002857666757859530048261936332691710248900354094699454684840182101408685036330977694465981471998486378311510595601044758903112611269545838369725561900394950632141480467713242391336668896699137896725048240436846373679809723003783230953886762731964075994349568676166039243439683136106581777301066223982283901859976464494907812649941189810374282775341745811991160501338825830106669133300517933941987812880552456333978056022776740223089872101550480712659733362716143424938943926312574127867424907426337346513502113042188320203070327374349592238098203618702067750956131690603120899328856751401257289380517395795772306191632526006771424445971595525016036914156403022624817068645483995162581244154281999427305852440641187544946900198942914591883035142295592252814560145426375799991109492764055880465195441662499354385169709283843568573461078770325779312239926919577204196435643126490500358103182828174120897927739167838532256774951838038188792416755824865228587402861160308565833139158667937223391249534572075636261730839449666637695630999349617372476830900405406264973084577298233553701798584246834566180977301553351415547592015147909099048883671994995554143212705666139057050386500670464986584437145789787091063147073605096256728257255935371110980712914429056235509765189128354270283564931273620860387789844596712379017002328540079615906931121191173994554416322524515970433245820778251655414360524942178326926047254599004280788577412960763049229211708592054324097542846736684635158524096410190757585844596900745320915235922577504891156030155299621775953741456629497512067733964179988782887442157980215591678595242230601596074923610404527901902389178466417448451488776582462261002735519151955345027357622453231889757310647675009860020037612558672340108644313547309318488084137595019201081325003546428114075808565391444560274745682921474917551025362696279085629123787353357940199455383463395826857972154310689806098776835888730108092092101856681751000855180263160862385939556020576647138569251800314775422726405619412561534285400827161998605394572750989660319768672209609517902906017074902486929877121179017383810053846298416197628895329058997583151815642010883311826477738056786007214292278807204276245298986755003109300064091925000601499724546222513430214014340761587123555138930520655989109696980820923985956923088298335785430530489153856113396028595146159100597941537818098420827564696774176648270356201885182870048360909193446772251545315830588544106492590711575443244459060822702445281729360353439911132653781466881637739331009670953977007323961548715180526942607704555783957973979683034393879695629525005833865265085380891796484661864809466306832437902823617330364787271958520414649974380144638228068204470488752869070087341601682439942627514300541291179422266894673680855798814007147433629235028750085870020313978699787400852473829169772996916084050902230295935201562462617000586107660639323014151719630461309427097934542788648050289026287378832108186940142035650054386557711932383858039444930013341212329761816937336754596704353848507074502241376916134887781291652796951866491177292212825143365985202944685382930594667282324706211064036419689293893872578355450825913856271548239970372350160444094778819333969555858603221791803407893031649249822174153497655869805044131387435208337450614597238323015813332171570555462548727825777963930574698612245515280607690203195166850056468379446900404380369068163207611832229842815327083240835828526320382215262536240030241734998691372645994149951533912962892865271667411647117950788104663811882963691654315103322752583085716847749361014715065766130007445839726273093296716139854565799260010271175593606006021008042291805241112762820026246116482067304808794227680530593505684966351208234120899268793806682001429862925329020889512245991773300460447079356726175108513503180173496599280352564007580195329050131671359772653571722852473342807518139607747174296437509882154621566684164883162808048174445599475185045686032192068105408766735805862987633836478832135115120449686087688665420279936424478978519212037971582885361625807444932702267131957732417617461137549451960861669502740073678429245343553619760381528423194586768516437855547896631222115453502627301075835271613570416411389676972541594089953474444690333417449133542688562669467832396314974128816746538867805620575804164804246098002984114714665954570460253032741623205145953636374282109739923800740727367798891569525943687484567859789362831556535041093582366072001304616272174373347524480009981682104169138692930188732715292555969942630929027885828729230705876376026968985750196587697407551837251715184030139204403497294738958007361870200885662180692491997865019312423044664917763337212785796953336929489853702811045036072335564629846894912289780304352405657028614279153540428470848912015898831980411658966074838581145224754085533220816535363846348744964542927867106157059158498493691283540184730594937674589571780703573054172684652154371608389569776970244786266381657758418850080307185768733325342713653002569314804241627128590940163885658535529329257127656300527448269203855439612143322471055412023407353430388568184925399417220046839181582223059210488210424277561541766543926941586002572213228492391162089868838345046390537603043208911638538871201291513775711376813817713537154478691620905483635493272378126794630631106091311373467873295140516459185197595256241155451512080472166575083165116104785167014620783313700001716666901910381545559078082044399863116843827955598999375620432558237855296904331391631990266501078845779953969520485127309366800837821223096378799812264481468769361126750326935533655536517233133402983452248879520334521627424184576155189298438515758723623749474578892648058407302713261596637830182992418191406006160066890906314632373117618169752510823402711176387180389083100100184235296428006460524195835445935620845882933804836257343621228854496352977008271392382385655028293141008539590032853716482725897351958026484022031033011254390606068086285429411871724411126243387389805322301220057827689723388925557457162541318496056936646319193548605112009262941656464199493961243990384935092467927842060132787590213848623569202587633909655422792204212835579851191100129551695844553539170674107771336332075622835801409356116483705533719301717601859468241006996971238997394001903173459511848915695324922099448296498948737531234632436679273540529571805828139449536035327664777849157525913723819703583085900851201144781263410656448062062895943003428732247941915711211075567937683599613780300772688995417725004311897854887527244867916916024380543064169101286888891827476367082227607099036720134899296034427387163269987768685515817981059996431885268694708608470575589011528297416966293307335147943964209306128462710079407342056555309726801638930045106345914269941329199567514843380080020167846146825152320743702580445029304728773042826448605445982007360523885392597382553540211881997880719758677688374862626117168692467337370397412386260679235780333563193804362381942190588027926261032704486885854688751302140040405767364729075052542150855142764900951716274130564208882764761087399600741892626089395446548796509633867747531964753818662552862197011007231759504008985744193853725228640431929686692475493219199330392626133095528844818985809834834048339500396774133170777710189079173947419672958427513633911958545772013479824424193408912916701509478969547178135608494797711845490760980643582828499284227852584542347736787259641168471238426919191029602782563597150658637946215882290452583689766111881283975297721601442671238609623812836698859535424611032393550645051161648527298155352844110167484951856549544342904940138362717859951497634686075100803823948818813350519619710721737909890626592901443459482512020484623583247548002096699276038287662870193409998233718367499697182848336834317863843116377079531222771453903899862116681800013235632906421007829357386664786289125398091662747264516699600044736615767385365725895466828482851636540960582146845321791690261302683659338818584547581020481036997888718356145626442401983303809011505855175639310562609813817758790664051826111015913297317730290439767775035759970190965980832065797846350000050640188912257162130116511573010511573393170872822477808909406512208116972980366875684489668753592041599080120697161880975430102675561975257480671232763386649945017426572544711439553260312441704899857429203975841073717589090649553700598643007953873737306172583555212751798523989278474492875231633056952698195983276567292434005012671591182620565172463621218664521742202019506360356978220845886614255298167449004076683097279300417132201479467410168111874847505717043559079232113358741281899023711789490801470980061573216188790096478808020265551979464419594207889484001059657070459966324621075795785594487506990213289836310636893694568131264050664086485369551430402939328139445138377377470650963884827698120404115240223776039344600498720826639408962477561590154524413091909954376572477802779351570441248593379276611412022240668516968755774908762694418522539945513908349913466005043522578602178407040385054730579217878291390360471969538163893838707762995215974206374243509672472738528205414592770840839003372385875828860554866820494602601431301050823526298985292997309595339355279956943836514924232860966653558662549537634106950082312345729413630778493392959870817801496309103130716731110073962786092781103615403036709067960867289508409254436088947154555432653605973998299828767411281277482396970259189129349784446217923223031212824052187925049210922520636683472565783508875956018059741485696496616279686108988953109475154633413068152840935033748663595661145951549126801442193484892039819385778211705307657588922864248245758735474833757554117859675991668510283576788310704774795287740716659453757534751261250239653431953981811635561426788684590700112490459333761337978721615433028314445444866471971474393083983224191044188702849676462284251388682569202030122452344590311334324399851576073556893156388361835523809454678716138415329882148637237893927625316389983529134706752264113246390999621670890772020885776156411863998868213914794755776620368223593135359384468216734300826262882134896243562668573180871597118767832796091178560167624851903636952750392831820066275469469843018796754783463671012632883335443682619352996287650021818374624823513813614759649882069691814400205688312055664592361816033648906233882456026785067137318644264934550561720908619511986527239099992776568684967845789242105441597053448786904193140814444789000352268814346123228940234113601843296924723777544730741191990392340640382393537680058071502618256708423436433296999359384150274737152315721394561736124125584285422021149610539078562153444813074967337647741164396962788400239943434301090917067312120458856614661540644403683183913364150716868996914277564711217353670942335058281109643073145064550091013775500913383686149372296886028387936425377758154376690966753876179204192767541197211935862737729067684249873918060399343097446072007447410417003938644889860776057931319497415044925548141708470495211674814503530622940564558825852665719166442862120277171780456574270578854667459497154932527113774210888251785914339205189931783366475645026124435815717828678291485135210410866707300188881015806719170121461260236949880005122152463848806701291301566822129273156315573241561336192109533327345475331796749202536687791911894916437780619418505896086550691624570365557777219278822933127738590739756909419661173998081150669325833883293175388157367170976050725508645933429223309745120135880633642360219717182519622052621563702084526325826468773801443683437974695960714221478264494504872275536787118302948441674706536284097089059156126460528207471408912377380884760600152258061329564229599906146129100210820229683627243123889893802691010625255972690949210745874947495633603976033063643866894395738050745646369043095187592097950781069036450760272076034453233107092190670465929919748309357651948229229516726227739352063583878849590941811254770460730551635385278384827494571128155712181688127208404458131734672510528823410020714480187281119087158391828751995227082922253471855224576046863868028449406755210136124638464028111101148416918269906436386069460716880132908367876245828032071696982597096296637044278449274221678808263581942642621842015487133607741783920217898301741995219259413353891675014939233041032363401361961405572670286199200716109499203180437508878799193788187358325707927320565432536882732854506703733978263045038503805645859400648493221493593261930698194642545856692094133559608921887373782945869576242666771936267046006515010096234057282336694478293311646881626396701501923460926692965269748711637918402887813663199239978290884050893957007621499439127951086378844517839103705460936922776620865757280371355787523869717386744972417323098856316889989134581462924344775277561674033951309990752652628135782784874958599062651088595487099765697124362274539717639284064412118213969563781570067609509784444856841993079019840572380238601550205952682671305921466075230013208306861147436083702006641571889488361916089826857856745657668607282336896514341665140624240068293522795428611264252670725084273041865637264816337320443773649583746848438143573437171152370714106113525170433415132235407606989016128846479984804939954950378934231215105592599962328984808864884231818269879102027694117710185157871469591225803911962885188035101806963683716646331390169965708134459305925506390152988208650171792500738314077589795600699510134279920254836531651405830058186159388073140976830304984884785063152660744342754743619317196092687751279791913334512724424955209906093240239078618324088930459177791679763286594618088631519611918933294860109207943539897695951708190624805286107080081778505493920756880271792100027725660162042787092787746995829963005328323572044726031838010244935134228011771022872783420565111389994384887613860536523538659928382792774036608342594478563841357987357414716949387972058596967118686517167746553294091100219875728335458011170287828502622107756963624118985423762440867644738446929484798050820056867396355796362615959162283177947655527485824804977292234938827650625683170545258408296293359742002314798957087366950589303413190405633791559595783862923799458811707703521276669386532853694144750233208586139484535832045162472983206365121363097491779187640117722155536834720513067730575671243084983735168936506737526181513553409355576936566412000705256130225486698819248516226298486281348244399086623557370862019335112220250441311760126420760915588802819072819099841083258096132175467922903351446423542826237728418633023348749678987396998275790494986052328530161537172589034544637647242204562398859940386397333075048643431635955018199351507118976349345605069602700754221706269313164192296768983936051999759356475671363037290208188423596360130001279295811724618936654662550785836597053836774175414434337433620452326958538735385649771674294343804896488795852029473480394103453219138523253909588978008753807806126195962507096346624613877416380722603797161768428672139462981915171940796260555859187275230526620926297783339173271009093898691391431719246079022810933878697151579061096411178495182489150529178648202117093664721404620614355536062137439519358110797172504320660534292536359068835112545419575583163139409157358345397173688922082958769911613064117986346998365737452457842143869882192388865381126735710206019469897160180381245483871837384122556306640611537504830633779313164790886682551604978198838957270548818763180358835813597695009599324040546742586676776093095906452404216788266857125823911036997244679143665614694909398988027401772651511545546643479015304254550307150684721844446588655564008335882224644299609967206075582912965807485840069854741759678823875647910093213942496398773784882098571048947957581631324755931631726061833212591279590105444023466310114126807078860034090985876831555268805504942011814534511598526860886931218901072530652904858642943574129088891941352842015851536967208422521657903129074661330497062451048068566528929041955242420917891262803974667453194189284182999474430487474254823106900925416506490297602802896076169479040308111249062938063357683617014114857016615475475961066896687899018316254435277432519129356504797343224456559991573191556236575521321680411018593005068671637415747041079467147890693831809815122290922700364243449263087674885605557738827733495344566573101890722945604483778442532189473360253489042167551481189334370475037433722576219320938849192296797642585976593841270702592607743162415537863415567620701040853210890030866184199727287019909276157011932696929889558669986337595012579617919162162937867689798249887261983783883286322159594397592413924274440185777329349335035307234681375636929202146994322139397275483905938762205048209174888151319141430088700548161913885602546572931469811307498157352163659956313836773682782078435928475315591356514472651692668087590638042390524236188126958793063416970563288609514838227402939710943185711318628671749280492638281451547155200287220395580809876601931858698683878451286079153257773877621283626503999218651252067981080406171355359117816551327617296630571752031031294381609106788729140513706377071918283618847418817766220793708684729926150041782324605345999822936567568661210208907843761102464169779594467714568044271702861275211054883943938506358469534826152142569663367106744159567947483738293502307463355287584163306147724596156142444236145928241553559976595484283946419848469920750366860702062228730862314551330499645114140254909877700788755658755303467945664402217613592253086740801349459444690090091201598150595068732492664297155825701233948513654053919208538331360351063135996430806204988101009313826620396825662005519073503072479660551266253675618643264652052565237560999695172763218573523503497780272835706996268054611115708865314158994115909247747599091037617424827561375099002964857077152000511108245999544542621629547041384526441672188012715013144245831643843296756116675728712412560324111559310837156124658694369655291647826162098735019857638347916371396901269122542504958722665429653491874932323810761657441080517486814355317432678865998193223260172497653187925221283587622195512093019868820867238656201236822653863170665931201533191570858714232308874489066589466244553475565315930554974265253764726762820620157612519137227852748571049410129169528500185162734917535409774924553490685191341138060332197807145254061693693121663422562264459308753840595819859494143956661230077109784671085957525170065982761884709677415365299898590699923661034545332629483542996606679065935268171584036606449475590979965650886419237055514797953275536633230333463651630445952265559090654915952729380193596035835034595360421156456875454865720312046824575966222956552459071310935411569810538350829603560635813460334738679480549323542324487489262664503474172267222823472818566220485555371209670891389145601474344411533749315480451876804176653179049038857198980566500602321653938637021438800127640239890718689698049189468013760918595331636897701379754883733725749371757372878293814394441025298663049722496540444009956965473189846823799196190804966619397759101312595384840541855452428959672017916402867959269534778123227457215283765962588370007460658141824421408973790376501943334829451318396522825249903547571363364362990400334051985259688687532360484053669452556024396195686180531961834349832644655634920288610800985521845596832181947314143747107655665979868727153352501330427760215534905634881748386959941064187622409544739718259972501378162834651636631060921889209312772084171933469147343625892026939757531002346952957309108038406462692895499205097587821913478689605681039816269437099015331864752804252852329413325757888709864088923595951437459510029928092432065988308483136058277222607898116530112305746529880681650959158443658246147019613114734904913925409220216250278244527225098452571202380881766414262785230294340914933344394846027016432701115173365987036022098413893587141825103238320367117680107783622035316379669722311289853480525094790199935473570394000810066188003824544020024390166153130696452466164300756284152413154345246949741953958974886298314897676741395077572669936979685981020735002618543487016993902791235834775578359844368489046102591185449538440192325712903933413746707736228698229579303090567031706333802465797853308671114681969830142137501454470212911086052892148192401266067362781548059385889069335255002721795095158540304789575232331208670153237604929271970966208304414357204250674958634933279211744831610205135010554942550307006050243565486087144735991591007801502145220967195321855255945038785705543693820114370283917035462701404205416939973730225397535602179876053337220499010014528986474158352256787464512778857955995876635445869245489981237399634829640838921606572474743458346443562640743973041842615905699060083669238239134399180476455887510389116657905588664567943304499023016554609202121841374225510627862466523049798187314246844814536729719719658967423541277435461774791267166163399922839330684863603301270631341897656076783903864319241518316244572469072953884167826681979485308523981265029912732848829760097406281239797406732912629821346228825110019731831185322209697758783843912440982103070810746686838998877856818323357660730442407338509923705391709967638769968353570607535783275044738847933146884213740037375473284861194391677844138386310427394396077615883472602876606672397456433815209925134322471666994338993874178114718517699144731759434762525346529773238798595137174396049785090150287033059406074075962954005201962944001555509284766872778990663831301851836827311153856963295088916891748440708903785140791403106210320685087868094799866612963854598271393839176943149077477824852065151994647775591228953511532248577838405797466882903280449078645753729626899043375656953339554400778228089822133843611368935037813242376172924568721091110283945580851718656009767336901939263723040425007037005828834464611358491823138000116950663350131699192942825340972542530213981752905510915513153809692211678433412942541551415262552096862889725289660045129004901279552561267960275176901240345813905108524104928620054921154448088150616245968660653996288658892322558287738268407932898046337248656206133044570071036789570083204128263706266590982227354828151518409358082700648445536646676611778989706185948171756366807288414252924759880180157075053914063182990584402038576730163481430436767372981465700878388091848459618867226487210181518512347612072322197972111861367667207116076730907531269688833308078590874225195301165259116893329366543707282579259565015908725970845257443948483298898275203085344632675337499814704915915222842060096879239218968801742856925384810745678335142786662397604257407255043038384861699605023163052894586539811850364031669944535536683204708789504372939744611503657349256053695003453596827067809903148558034301916663974190923006519385559809974046947772465882126322568446760096760013805367747405861760210009420135538198100407713654261020773823730371692665550047705170708767048075998690635458060364773638934000513643099889011743812234581066096592882980232130828969042439688305901340842592828894348663152068364883984189756989571135059273929018486150874193907445394813410530174727506821522068059733297076843737768466037156114057859634335161866923200046455403461187255221470126003451185126708056664086329557872417061634637704111292063253106807351657919447672701857495704891161355307239938417579317880520100045231580570705035250082645946175328115356836849505783381141896791998435602818412446632734303859653925696565282834225925895389958583631748402883363797854529537828188961843987806766604793478341827301763797177892131874832883019811465678675081901523775606175639608048025100874686358553275176825099415382681910399436642501727438895350282669216206568438055478392580524356431335958000695392631995363822726863764690779005421049228698258600090138977539050103271988970097534084342190285922693301901489098792227279361131799548005086741027337038794326618526640492604507448819660962646912075653928047984448395206148606360263659848319772902863015307093496347834044567006221993314319297886396780954082577024718336775975977078220776829888480748716868616747515077419256382438707401537892479176577298440002747409363035334579657261000164289474132359935033682593528910440504724677869193738786495198961573559736120373845447690470617820319263699260568306119763202279862625552478110574176125303039987222928394247991907738844049555121891329881871074981937094144794321481070688854817334164774416401733218991225025293026715728163485076646454271429447683765237350009201998596951406472700672873231362032281494204086603997007035573361499857669285301694270248280653784140105531150497274103687348322222832720502103590208074456613433551128913919051220062946207524710718823986700781433565557438646355363693701657511780252853940045883627847349823297475434535870301605949161879583785287075936461558120049162592605610050056588705766761642136785020798057018401921659581318326632410494033422532392937912588865142645669143527168127607385349664482978323630669821898075723089533265676261605338937147156292433192212690549919544829908998904543931255307685028184479886177836566324287741677738182736912341987183361786715171295605667495283611176404301140201389220197979137444864392668985474181335137817951991001801996286092612707798531592958566129377398106196256119681830566062539859630861789026431443117243447770676647474284244691734242066460571713907956891532452475417135872746618160590394767502225935137095420634493210286749053805093093750757718476665996486259128614973609322381318591034644450510581432228325369506806792744740982629363062561248519811177648359223376573105169022513597494413104163386444155921940333501752926311448121741490094732495901817473167539560818215284468412593565110517186596856307633326186827315814371683763647946447385307488155514212539158150025742085220679327962119083233866573463978437687162114076199119946879384668298988573548594992428279099863047205917891506497987931518439639013137188010906285086503184943172804712732996907312798001489236238200506546030922326809965362193702538582658277241875024148843314919230317514985430666495083927910808403514978112362745158805731731591140112757050696111472694147843617615099411410778808202112328093614002704154452738189494158425761823679228499494540681213732224681386520957389175436271306894873443981442319694660148917387598087068782324782885651307434703932705639766362413470315450581477518798830017392248675312176854951691694327846296811572334098225557437290163468524236675712268491891124759569315290986477778184942494645943394964760531313464298080706213186403618516055670576650545310470448744106000703447199596650884794381019964964775385678255741911315864409036868260781842872431096496326622860533257225019024604502512821966437527430662772257839225966920290115455293460404775522540502368631375876383466728557964982124853778872532479406963307161255807010488635990795224439012002520602352342377004221992766913156058947290666525574606970293161034388833624208471116480251194024448629849255156715965789382396747231293620954597515744266725012971311706712681413005193459411571674811737790946429754916124470937191037492103168700410891055991131068620583160984414724505746175609101527963518847731664979609220151516858623726739080800360860089398968111300725986971857926319343158428977983379835336966226230538256429381535228483255554753744716311180663630976908828662168270907865762695930260731618185846352089760279193724375194453146208701216937107569245663488976278629719387037835834384544854832918732456515386750164561745881952648457262449293793282385033087973681418487881274133018711974802734690863216114406672452259227693872763094032832804507067601948079018437731586075790974637159026620416068280878967818750365933107513703793140442634712344667624325979194488871953888059231313425721748577329509216232855691609785227511426232242019265591855053867429251284530847661499781331182029041287002414008520675268085730263011490563999597923917665237944022805804143818767730466047119959366333039254716910307263277982587039999321744809857017186558205079997155883055998853743102777588610863964201336582629918023485526976564425892381278227042626776413422256594132989089583052050518110833917154069151448108664809029779357306110388480407333972155826366238491731447285471951083094358026347936575622912461753949507307408142509839370502613124972167756220169187859577825739456725483977926395304753172868571192890733071319045445656353526778897708556962317800002973671704853129343760437443151485484559476849747995611678196601050160292736773938371235494658964751021710358891036660263348271969423198599530121504825441444505633100525729453744229508448111193001779862542060434274115301601655007408864043794603033081602068482711188449308292576578862109627575359089076220216813346910229349934346214248509168648014472417489142007879995141448865647899280544760990588023924656680864968992260544061998705568336951408339890161848023279479510491651080698143330795551422065020142454698546248873738917466614053714072478498462970309692036387240576789551491597588765847647507243882116322558047310200744784120765176033505978526402885636951754711128591613117896589128116448642221554284683835881898192091839172650729507144635315288182587708932882315066613790519825135762578835336416597634476428073936889246447448326519719078433853710681038859943758158440265112321420694817550031527376001259491654677727970323745319136149958234950215047121210605466019804376570570026674351499385446328637481797200388530091550327522135211652346597667870255618022400750186152707827257352033986206529611146911715804637036090967284799041585944667363564734115133731013720934719557436253225819169862478083470992417153544509761715005849591641625932758629490537399848723874807695487202603838995974882930404981789728447796737012347770603135255528486900531759745914612922420252227674103490502417385963397233773999047166323139862518408455210246005965604576122194144179705253985787934818381073716967012195616856796329956632207981035047200153493223110983154287249931795761870742911613639411330270516728074927690911745876310083046369532180713637004107768354723666974101847409861449371397679132855350809290715770378524665458086230560927984783094105040516425347572107850373577150283297985217418861398063664056197498854826285855553834455758867096404493566933518398976763702016769766817334892707966963820094075521705706879438009494775451940734170804942103651997205753604559758299977456684652819838461938423029202605737733174493373406162258789646602133307278264834936414408543583466808269119273351263494388600919811452771588145347669381628794200984440906377157097440330720990425403018666400745764816633382403566629976362424239240381099688731528800186573996280687822511440685024168754353433939918231153617516007999630090517931571890601554769265965903025021140314476366703892556449239374449419671823631422580639877860553757652403422848209205667059588914847629728109137905788904265256599740851898155668216814623326227564420115527006685720166780156948121832067913405210754676002360286190454978841442010519619631308590983369139278876476460340341984268299827314931911343170525795963706487000421572207518435373644900835825341515323401950165955481792597542024200522529759946758111908818708658987610130940014257184538757926421927595832234377130100631119379746290786328734457617402406753017342630182821796308888826805090522188422238296276801900098756310887260797157855746058145175222055096903454234167271325838638995746574296302981433149209054931786785885785454519752750338147046641965692454500981808949636822506194830439438773505156116699409435024972196240057336858678490160812399383015292122588945835552540447393265148274763246252892806380095898072567113451261565419760001916631569535617668365185677207574117514956753323165606359468678933733138664802601114777685378639578854256772362155008863522616762443985910217576641477388079496417958974854304741794003785472502217935068966745255760358515309423749752442364828751515691933341125490656276297274883327435666821877413515033933123940139406222471796506609304614749002268623246416122901088540603449695144072866813963838524413677985533827246415647237137274636903860412862693304790353161516937219336292862980039775772267066147603353586531299073670775490512073086708073435008163481471188126903459556248458940358610311553306751268022169170149315963288915166372975873099154708507359482408363181098554546759161467543549921165761109543265323098928636080695922555154932020196738369129647872522331581540737239296822938536375440152206685344929719849464619875168983098230209631294333970740334173569156666268721001576265212624629043603571736055348789654467889565252992022213199767957454024701761156625244765541629211998633478597489892153853009426302208035256942493834349627437049104854509810102465540112625141930243811360961982461163521217980848722132845835588896256262826876449687916652603387770960869858062935423307027928629235206198574598707650523806626110684387562981044538140879604228389275343230813780424022107832057548813576293914985630694430526253482733811753075911496117869936151831615900726593072206874476724619294128620712853547750853115523548602847000605655382542897558289462659082732223549743468533338392178228059987178925592745227514483845063940325887681496232279049936811857565706550777880472494691293900565518050079595708625647953846793869340240541856774263343532758665158879308019806029314980069190255470073975909683606743471466046757546832263181799517257118093247733061689009369763636373396009134576070366079883139536378673287780547378722296477475784373827247903275072074725224526290642579044216233742991165874279734625347150299192611319202301018135804734067611157172904480810443330611387020014626942861993379056596977329874994693227684106800382532091047472638186905556557770811819165516430292511820190781842840730357495469557900469351705481093523105032232392761330203247127451344173569490116507521500755620484023852271772495107134206341326244224799530344115340436057825692294309011051750585280583120279259481226713311028645813103643100091232100560703652099375875454526014720765416479775778133254883516451429906317572028536084296550963178820423916151505818587848004907125583570090079625799722128241994736315535913808721528148385302863718369292111555975525489985277695990322798045070696995182806099640755160169032907973452793298518241596324784725361820779161327604504031806368526312772464749903109998358344909793460454469284424675308802723178743653550490360275510565916669196566787596821548488743323685445406126067922344426431345759826942479607583970652181984013117916674819363002608596574526970690850209356350850006268533290191807353173240849232348895018311247107770787245713755554778035306344665996385061397824057469698169851248712153671767971512052781140282885434411543998073663203118159440587924062781326213329403241788884247570283557785384655207331693482766661751198250212858959314662537482739488944953380228752425545239981827035056800907429353640361152945357858199489402696643373861005751125951937383504654847237654794906791573292199012999833312194459700538133165266927301657469923842003564375460543004452375602317545385148662577132178352606637596264721707990883639132266965649743817855232633017120923713232068186755113622287709862492504001684954147294168840713180951127621006467310700130338000955326828748033331827327781745702983360076103305253774713518157161782638383978717907593680493170765117128108432969893314005162624421332566018580142444933761330247660881570313546657528540166644797719947838587826677869403324904220761583514218485473419237576170546960623987226056045932649662327705867953125491564253937133797719370865974341869213237335961519337845613393098179397807426771813127110541711739018466770776725444964790592694892792520654087450834971530743931941884361906838425363026592170392220138613333397611174663038070814411677529723150747930617721281878048444311969462738850802239021202916515908866438449644011896622711490859447358901217172855655982799161991448114313489923278965972974742649577453946986248349146150993514160116558726469715011370999582208136121475952048391484861438320910517604575851864778123812542420745459840035816214427547194724453566236498692628654398055298763167159921878488526741380038187893496120804912423883353658246446197668311642124782816368752918777613302481842846907773636755039128831628780302303554518593297985545763799627117796240170911919079516094802127442539617427913036786421943427525660671105495074835060711538741437529662974750941540409976782051187207177377957380728368206719145199584222425142957351943899972712703915597866265312620957894796851763680330547753885260640614119323482488003715815784196523555694202616628475641731864591646679621977872290170228948684136414967130027807741959532104415650693868595012945646887681892919078836630410487350797688702837719605321727735634005033647639706842305134738341789952566807260062230920758093621266825608849761247443075971159558370899278615651176319074043135651001292622747624692963164342253735537932421131814090570449176626004880714828064991355588973044959890935920475946125440142667399111477723768222364109361834791589896810212205454575819791041386288447980337203996281115235977739877132110836732440898920035327164128219108973721258236801857147507738256291429633716678728379759915968802971122554962056134506359912459710848778312096312627626119220801010655785192887642816070167610406217436879524681299084464208148010668438199286355576157367751937245956464668641804559456618940475471105114910766633048277774234144759767640278687184664522761192053155238626252980387094855833751816035676523888728116575228176095643421760945049051506552101344956162303610918935321730295975866162193921099766783478019129915976000106876111782302857311573429393304617481315619254251344821587459374663888462189943675310731636320219087773189520372288173492173696504747230838277350133681774366891719040833424080928054578486998219274671348160835350780952479735659412741695351528606738294860182860103192438338998371316046536276253443748066376022448764762004212986395485930735864247820164401191376384339882423249040994317553927537544965073702789741715932549034931151802185850580508447550318463755647973377940632810814930572192203263691378727822419657929537530317630452494189455067054424099563021451488029421704965391114474093571317737840492642256156165045815168511467343305399256504466230144402989592230883674541300802053283991251339622404120997151920970725892406766009392239340196495764760498114456743800708483199691657428246977621599825302791864577761833697841172584007780835408953877362351418210497130325783120362415603633848236438886380586670906778747088532250792124359234044854135228331356044568082294624388581253163553713244554954311520201754150070225983521012329622085500023092046710468573311911912914303083156385071195438054009474092865533656429415920421605599530261089916955413970483815386514397244396024013954606967604361923646693685159988402913667377414366370967379433657437679133176907456036370018434594221278507837352587413366407260892482431106618828363549522380705526785787621884360565659270320656413823330879739917838939148381094444524246983919202471026828951978838508997909530762583803479179747188557876370046645689949425009457886306161721490797682956841147169378514371812380282835205562557129683324707029566140663154280506658894257858028919409208320969115742013892021913973505049289263773578595108703891491864032885728304487674900263726737194901735998148538055484352774429182642833407135919704454959456120602071055486669427415458180513028685723813860340705724092749525510673873369621767083451800112690886489210317901556154295461939088947738337007244058485652854739820358059862721636222589642182541706435243101925978274950439769430875468304746554656425946584503484945006683953209255853231098567515818904607309523676393309623850944455711147074907396179406256322843772494748450603868010385049956954385597006375527054968224183571193786797312700499490574973655223138304408989235106166406591301905551674866509550349773955063002496895372446393935106029790070538027382926653997624267974674651551176485798038779396122120687131705732443177462294136184537462058815697738574165306877071669507868471409118324962014373300692761992544984567511568170792909728026574096254194739204400275508446007937469422602767116742308660046897690109409540339726370776602028865032207561162222265835708487605230954604424755126254559991127532013294105162172115607245240182300833195338889982220154264702461036503621956983911521059009109009519081915633983272708183124183824735454433438467238636378938346707829141723690093058433089985530025006677155276234545417299035205034455775128181901608799927145137036185791524898128399255465293295289524181263657303852532283947350281136685359835969940941628477231388963109393978464672346080107291830053244296911402544578461206113434518683366427380870839732252347114521304378883793562740236141872149300809515885637178944712273289267018696068217220083674423131610930109587189111635025307981893898908558798567514877565428353963640374781086956772512316994911626571897097762039876413571581375909591434658953050824135901348570701281372249493918579341945567736030233293604324797481085503456114187244780942296389255406190127538955580952833311132248734625412294758200647299056008301333308668536879776119490118351081309565628884869457357324711868452629999438609372213036395994012628185195649372615171105587925829237814961934753337922778999798177950746218198324915721304387972253744953636503272105086520912918570136124495335416081035626027881522744802028541403684399319186007553513338089647338620626188792044582580104752127289324540118248128461389662891640984425350238192310817850979830371162144769333886027815998710979608219181907676268475280462431598114033051327826984612621519100285005171989415523630661000893316899988044711557152253479272817572415859595408053569544615973140308621857996060216960763303426617488218925765943485052148685364865276321157980421090190618944947594370320346346544387478149992786565920932585342559232338428825204784852414104933671796212789414484594065651696236671719616488645694143014937331613480662697356107790944725790434453506303277704403115293755413112840286355267607953970172368131537121537300511990865682680559412829814818570607889422588311050472494088247665718113405332949293520448174323028464017884006169968017298750855975321993251781031153682299990651439627862341747197157767537745243010880710264966918510315934585319872512978580293445702189598545733512858555584354902315657362993768510377913154970443724309756048201718772675637658715024417410421416952170587848209208390456874414473704167822299576112718565988376893066252208382263306238917758800309647087770929849554915631853684703199360835450686994361764425884196259215780424879698545034353503737828450157112020839540007256633095921539771583948720678395809148431895697267373038276090777608546573267112825472453994392490194830433506444782596591844338031174233477794618223587778534681112954428101788035556639666984520206205061771614375132323052922001107496713941078866638308142424826319411069702306967286176760732795303389326222503897361847895050457487585535624871228149469166228194331556053614551469814417625943781493069152960757371919396293442391456204132996145768692460298480847456502324407191330025194576232808014055021895138786364785492330142277935418171239470246521994144031752331025094314294933071430190213284431287647200271236575249775549917992955118562391951954286368152254561513206530399246851967034672815348018091005985529761811591446672159515540089056697277645528617777211289352716350256628839267806621305871918725736059706320098217147197300281255022910045956411294666453509795435468116501659471256645098067893607321694232408577286548067855174154257559098845714851586938708759136313535102244439875052086798721141924779213538970962054942208025725201806538729980939061629008209477621339113040236572960890908956924280943420185845978330848339438237507952435226396917883205371760177474453983327206642618475795607802201281737674466711361079127911909237223055852196133179883354844168267478935114272599304018260966982128166070662727680250961491957279758564953094571115661367049644290634154951897266576523389772770810638566245788254285605877497465473769165632618624073075187708909647350871777570434243855557876524603159591377997710211063958383569896502922034212822029069627918283242549547448857193852121662861963839050380441059129234611627970107391071498363661577163195732816010233146365219684650817914968780239003319353982248864807696737913879487341173733786372486878898144998706139485948629471226316752840229365186745048920089083942904112320983274039482300581096780299671051291129101481441156582321486181197639260083906591419999534820349957213348553674083666891210612221749876437653712068937956762167261671507168406669534715201131015285735178222128783022949503079346551044481173950861988700321981844131729563224850339554028572853061353089166067856202883045848629956724975972174643015457830993015840985903990430181200417805283179056856975251518038474630802891226558594913541620463350471227126514798632985817481356584189094129091761597104262305398631011799393759721385813228371579990766222030176710694624472466111179149963759313160832669566897398161997415655779626649370377332694376676049000680675409225231687665963108665887262839036636688956559961099526655704005789306327025126663524465944984000135411524825526451386454344944054987444557258314580034309781657960526345270641936865588219582479016945269681540601307485614759578428916249725409898852739543261076561030399954827841287047468933450461082569140665386971625881108523204290835122139281862256468901798130101761609704406082871003260760562814157792089580593680312023764411886738819865876200037540760867255837466403258565120141756784917804317500936752128705143274997572006941931493716789821621098160055097899698440154766404266737520620344306098272263464810779079610813714408581334188196812154947447246048060191056478703595125172352709396953225449073369916434071043235811776039680314388316829565091804702420583134066907544329498319093075583295753991456487735065795246337473937902708659845977016014302973709248996621064827571970303115185053004775094342352441845638505489625444595828160853481594879103911167881937982102806696138856416931921153394259281207197967861884807007278420339884896501260952091877637281659014954187173934841468959318609257116604161101904917153807655743302260580220484075281961955791850828790850897100698894567754527016710495377786575047522167290760679384928668485691552356270507411557121734075304498843737830157202711248378636702654054223446289400833022769223404552574898469280649585781615753865394062270154708118711262598768849941037439288198201779756992122989110189759879017822018143345015695568904102929824582615899047393700369182556940720036652753520998086867086992892827696451788775667156183762470027621163924500658183351490166655365013530866721058773628816532674176558993188185448535177766616580749568511185718089263258532517706263353638552216013624535830112304107348228774647949844121461568582089001195389233240113340354334195673647589770837094105798592587735908990551761355077576721119355509279676788825412354062028317686689427540857816529667066977736772844989564573314596228544560888216636202475928411003264739880701482199500152682942946602981916949963155140710492167888953461910436306952216531481487829739580488925839324941689215125980330386443437888018132601814717501559888616665319801261397780621747293193080089820487698129236436842502820962903741509717237396201798279468427936585491600889186675567705908437908491833473164194823183656641857968940479799045762012533887556401492006745172141599312105257846191659524922113055227524289313478803004037639722564256498321648606367615914372914253008627501771589750762440783110736003420976034598430226961240893477196461725237985001463115610647998230725949779415123034273731569444619707767289270586352789438947654243920069910229364147161830979064167434421205857168396831816450943105192138838778087902930145475341902362190194485092400030971059954924560680630250908249402342434522979343630716173621976687373256955699191078165637256004648192446374255186822147211978686382430663710820769532244446994918783405334462060791352586634077598450836473641412235146631946824678244945827606402057167770257390270889974529948198204271470161952385393524855580551154699910110373868820925171238847405863202280400154017867284492760443429952407089601403631291439972932482557181712721714167598034965512706639485047723743760785415304417225932971614739397956353313730120832045694019846866415525583581833829181440366708364224158462796576747365278944870932352001216569913082638471769424322987936424454315069016700047451900045450647496356838203086722279341955867970174035444034165938931081713751798251988012135692490158310778961272195221987244390241016880179318796883766467437717138109640977071373191316856447393642577121996336034713946155643612678122259215222994358528188543569499835244127133744497340735704663226822046166310395925172726036801581557971725581226229390430234383917431568454158520922498191193034741792526194293365891258352369583821034569773466542654877926890590480180169687936337863914247025629215176780689647009545930789590943615323161000547125453473496359394755315806057919784314828260712210044225648115749356970144715241972581745326060432685203689679453793371718398380302323548573528986862547166032012905158866630157982835528119083966247476518185434780853680621372541116631232478368307371744161004991017571741391699920404377387853185089906431674279930845291229907238381941182476813580538060733849554605826064777604496750473713646202675220584389015145279168050572584719789495393563500097089446264169164859903518867629701614220099564352082439770012793194148328632618797727537753634256658037993612786726783899979105616983378895220018884303531844529552260631391949946922356966670658825036666376943652610895018492422725123783909908482194617502021597354515333056501182400212893172468321429553048415503504202771796082921761713695640300033267170474177764824140205056222050636460434462676070040135331955922328271521560749096669671608534466872121274776965864064844433220861367305089674072130902886996046111011128906499104474279784933175970344444451585401871873110731666317544077889949696208544893487202000451104938766345309053902006115100794789569915335695636518380502769189814024702713472059992962100759687372775153868531871339576038547109161719071755074048490919539304537454375310992854125621710692396012652577900423849127646221692164241914123273065101603618526485732341757873821148069515687098717753092950730179418241956914700903730862194737255485414633917553995658501498381974972265659309779213763311456749294639800319169292119005456754234925691431630304753535873903829469721104288394960654057773286983670310699364393117863297405771095901378013742891083884945040188006650548780519445188922991645664742974067117275424852319444714417372300141624664126145463085261437682433388570134987190846879225813170668111383337945010660495687789052625151874727820426328732060991391099951258969706661740751185948994792335556965337184153848522094647653296831812943021725395236580730712106110851818812991258429050121151870550386466851582137792337424848506462784720297556617796885459647196980737976326174604626337109267859991058640089201892808794164865162538302713312664098544376479355453343709448509009932596514513615961870872104241899399806090290380831712899031152643473814996671263104046806742392859360260070535051196609206681226969310849465447677606662303497365469332172271513528618041092367771626934365897318235840900008344020087383151590166413203719349618575207032820791256539927215011021303467502995676690685407257230304399775677707402722920053559789824305766903991565189204960568663047645802584478709057234843473912970565748396974681303629110358234937569053817222183146474414519043498941303455613378386855465885928790177786309482984930586770761751704345033596849447593814797024082561064284023795653011570881022200988886127051048846095548089823786091310290844401025319149115541588258940443491954434669085381000149268358728500143514774846491658720285196705334424536242883710663462952428811737946254815881384679707813166895037065034677350306012561182303514667852729371090335014073643826852904636473348916322845557831580519996806347148981713629905433809176840719506380680227395519538064900831027505894574638648520324454170002927037679648934750810914008258402298103684228704937635688032155620157133053864708833738071161152043852860627120074300456394140030929276199050879851822255354364055445202167121068641239505463376600490720932322316118200413033365409114917412782939387119606152968791722215820185469403522855576774360118295095810443963867973931819910548955433200680267303512992381469918014291054754398673285428078411335670393812266754339569756075595925598242057892195163741624870680093022863643936037956056290387714224049834602997590573033505849035577738430571443626002107608288067438581444181650254755235433106379506132121776800390101354884958126307792656440977942337941097398239159977720304799020063623610856552980082013531282181534043810087095242327646318139942583515666828252564437442285715088903708060968837761219010509103681420427158433551145290321171134907287373598732664828415281185291252507559106800797517165730046201852255229149566729712256079919732539140607404095954510096426106408938455181233261549365738111204689564604135898042897032283497233276173765306929420684646950368354662702677661656883741504331878646739040566705753024944886303702088823912878206128359357169622962381834993628977435477343757653433560623749607072542014044723220015969157589586728521882562875916398501800888239931718866933567142907873853183609852580293112670175980772022489035263413918247061871285591186091277310956062886507639925882828357861327068073106415980861890140937546142270174314765538596810365775434536381983132426460984125090857456887562082536954656567876572781326058185403283558532794294111047838757487090100753903765336579900652234700704779475889269529374441244156583748014110440113378487037824172948457589954564580284681963151225903582648740789405645446141418399832734964641065906645909601152147535770330494154470542752354301628120926715813149824795809207376009056884645149171410443668597055933921980775534794144802918088602516993764663893946639702620525238582672157127527433401928962896220925370277858235710086689423182727309465965279942789891754987629302744311051433217796625051261817015227459039837614904464870900897068139892432591221809894565742890825738897379589275208759517591169567878153919284689555640345793052805545647548902093857044986858856354477583527289939457366488182760781865027757433818066061117551982624489133454217191066779830979675278743853969521283275929526493344042497680262081291958044600087502286966501470723272040576516600882459590327702264777635202529999121346799117435148556789440534594154269012542915036755796715917095235065939592829455227003817834729432503423428138461019340128381186600840740764174447444392652014106583419193215675215077988600086413716236038649817304589570204753864531746476172407552992997518847210148569363371185353716935965548463576604636736418311344114465199802205258884144248780535839047082472483604494720961207278095699806747458866622490280550969807670000883826997979860639402156492910738259149615565199221030157451220167690089735657288804983829099833382317684278066044944409099036392561180287911653799734990267371693925869320984199596106363490434654952395179405245320618498801243466730425860383656753456413745614871136822624545927571328790036175048778419710960741140712140125287065931942907406600673998400540269777542008630190716473790632712469500675081780212568437929396027480037943231210488015731386329280958094316951302511823148278514347798856753035296441367414308236940138866226595326957478842153667486589483199264001137718160758136022091590901264750124550211784070949851452055174649464418673732033355250550307280586763463955868022487608312678635541679930162741311505778618314601509672363504372755215569408604311695597916398778814395101499477629656614012360356828184401808324011955393986994432562016174442307133985515899287474314544573655979034724050178310899863034305121679932254339054492980499899030836374289725101013954244144832745598587726854066197150738976509430371780193956943511971624487897382980642456768864555406709028835267935213878219198344280079992566620210583918680594646608882519557223957035919978953409506786093463467700262950367688461048988085829365411377580183577549437909328412593741479968195035944974359822648966752245312784432563037729257446936956974195194712801256879497643628528649114501941019648523085000271587557211881964993165039814078046892283267837014693308339101523970432853395797383896107273921515692245989374265994534169082936287936909239920393697596071881025258112106162217325713368561064791170473147029418796254257527283710661469515863302020879938346679874348251789676496081273176323256876707422256871546464286687589963029810577762258986211988051225908571544314575680380501640441112546651403867055564454950206359058078920164564273026380458754142107214997845881345900485444100752101246736920327500240828885568138738801077872108757991874040933689904226726049659988798160449396352814134057166204579367887429144961009416668684722294320945863085177720423605022983860034614853069297734384759992218185872604546214452075334454638591734498159033573341868373577014612682712870586880704452920795764116379455473770153609865297235178643171912536404775229575760643491920480951998722430161260063379691130754455849635379342080175633232697025458842510854338068340782072994337130248709826519932160730513111001101239428023783948932044579990960741309990663008598509748641815427149644711003058637912923730206913344951069236830807878734870387302506377942657349456425633614918644847278794380968295280568355036448247533695761281541895665725727986397129018987521967828486043222619880910506634628255004737695690860100394383394964281875476904877969560723271037242674761765910501175564895536215157378123607062077729967932747230917283968830369985406958470606098471162587377610535234278344002543087525461431836598848534061301992801579736091467061129147163785444509689171231892094817885038364375277732205518373156453915189473039374118744046927260275699029337241533292383476538461228817251893588702663659901671756259751071044024897301039852242893210135038117098470582789286615179449376089595838562208819757200750244585855498345042255159734948535494069350519096582528967614274104782638748442988352997608488798788563872123720783849276143939007087730234973375406270144828259835134363790565996748340501872229918133379922217654292124146815905556143150709342698292156897382317506626679199211475727491909501997894534507685539914757758946453412635838374853692035826497174679141414477079679353446097227433911243000881320208178750707597563564757677520582076483898586659402749759877861945654864832723695783998022198702984501422272096946922424345929513462830949923796887040554285666998643718276837305909426380069986795993842034568228430722360640569307143298406049084869702182711653798246118427880673944156224749609640502434657912211098193828352563215810488242012777110123613376339493343912334754750493108862320138832045845811237212498422327256081348079440373520402377710104517393430966051586416627174754048564523103350027214235485758663444451994754833168958198011116178409611224120243956740599244583287433476142003559252181207089812060054684329814056812614589977784273898782694541493807616987868568543034669594569837602112475174172520026245230557546814975420557194013264332728053135824926621349001699571439761088264627323391240225035486953087377365300852344835038191022523481016519806788379083907890426700006750849819363559093446259664292471479176188600019645914420593162023122939035454231233025325465887797742387462931648354302144139191131429561967000433008431987527123374988725381751851998125873519353036874602212813372254750549034271655436948358013658755443318852047994524481385054311487010915461141809347621435197717845280106604098404407141166069393697939109892464705634568959208603645110858180725307621276154281432827895723513677955038496993472229328480851103634878780215444621552174851670743139441827048895704060755942142521306111550368866527278555846172526051697236374120828905492444853610224750826537852269774038502349971414384716053040867327415959550400983729462159929771547263387234014670127169559524527284541887663780117747867351605191466950168411466479786999507320467683330996432786416795324180221212563670644535104684922778550805887662140159961880465223896942764774986917953048426560388392882213327819520913545710709946940803194580144043932049617712321010424027724846719173961307220822367302043556787214369630093494185444953168784883273993117064219819707207530067098681047355513985868567427859689048477578489703929221945768608814354108669421095852308212581374600326775706002895809670811264360307884168332317374923602437831194873668693004361626852383925019257699601450161871945328789294226919706537745905105228559705362418470772422611568088435153049905490631430015353801207596056859843497043389560887473599968880853556876013898496189646472533161888804289954446338306017745911919527321963289408373301508796116648283094798937223012970960933927799703055896928092451282922272684020863530124523065161839346315398517836092461708745014612755258535955971343267149096519788297223637907435208274745532479663367008138636947146940259442583778999732486949745064846678334657129298479605919225903816067789379648286008427307593272587808023171840374387910336167956775017416020150154940181168301495584136468098358073728421799799954073315219098010797341610522875474843756315457516586015768567838445634067361656042888349762327329255289047218564745266854899667194982205775325968186158607675977994203033038807439885404848990950331382549349701737151740939261171272476655953291137312819715128511455781756796890980876970038563856520381859372785486042462489721364021553906027638836438410437016437055254864438248148608720327319979434058660579709199712069689310093419601989086224200175805544853805142678793866966109335925871468568435458448529782325541899645413113272246007436702223760991058067875896299523156848841950722980996573304765885368330711199995094976800645107992364683036619797138469190435224503148185713499050381468852874342043455998611651520207665709323156199708132434373548793270160634457449690921262396265342312075539040460469263266714603361902002083433476982301551824459827655283881659631861506234626467436771120646630846246815222625931225506800696300929906552040692300278332042891732855427639192532996911224627378027513941422266213580854439492982593294647272390875940839943587534311102714721985769795467768862378634993776058398458807065449259255543713434361477291886258169479194295856689721353418477207927341236379942729593809777820473548383610850870445749452844902445975217042146172790723055261169226988794886768021564579592199134249787919474816458638747023765388984000848720196527913732636203293749488658762824962411305312123846538054395171686690911286830503891074583780096494157559224984708471336931632043735846986311475463283294811856199176655783845636469419228130763947781655803533263993098831738028439096030886155214210237541871603705973610292068382667369122008297296116330357350152175311785805928705049904887815350538212932402101258886452663616415385362454947532262236133283564320401115229908446553421019578175793137807060855503146941865069051195020698763308662922880898228416147514984892762914495179274661636452774677391165364592898516190716226661964459216646271225892392496613817890289538123401292687185334870631272153565427523387606770003771331488651402835953159430305186469496581077349543252709848373309410161050374613433283080399248577783506476645753923070068389317735114788120962641568120969620116496255734036903815688478379607215830271246154961798052098781483711320181355581470897396844431252764957799782902958795389104876335131366217294201049216846821891045875218707362660594743506037873476114940712777784778136918909608505841420504758259538091577456390605892543318339023496695406036289812887008154186755184179304756392887279464438539405292626797734135855774343682491473837144696166741637262689446027974286594050046048028118070449230918307141504514616576158132065226459920436016987715822684026018608791164869234962774128312145840377722816096418041623650063401771151221269879385972509315238017876865428456385644245279444278622279091154375257308832731379974086991990086064612107095411073264711211315813874207151100502057152646385858054306475964907724333673429048047195297019157019755914324564719814912725637225620848115614484543679534487358684242238284359872189040720919758800138492802810215259251162884095300811262347067437649818370871030562714135877187595172967505203126432033730796985819848273930395215157009896416506984698739927719292999604942251448751112816140149849797086914140804319712675166834121009488339966056282270336664692564615114805730452898071892221996703545422690181804347080518913422861458126083627234257263989523575783091189966953247491176383765798252392890115245750269353664393269551420697846178876789871089857737885564164511965473968828193219238167290284123013716519242768219881616657281921039823859856140117942389407941322423253835667076786595570373720666750075381554472406253748392560403401982839252754704599238028297864213797558887537142731841369529023005703455198340622487123154299003047959788676713399584516645367970061731886104418850878915547777747929568805953801196933492143338750280874457672056430914199843615925179952241206503043556079674482882424521496086950800965146745614506783102490521017406134674819732405075068460077600562362062967188265136307651899761533643623683368998642075738472896883624138461529688296538571639453741777175697860374530722576807188214476259952201813330605265774327623630638346175770681688016361091122742997218717080564942676589913986020808201260518061169085117553169134106859550877538198578095743407653719883817565388435226097652316387550582343562798059275671974678361371897441000460144436866613665009011899813804362496711021667196740001736035131470060212728491128798093644850560579348286314050658259484231954279862829826322433535304543819647439811816479621606161140742698939514929363823044373487649807657031809808952586318194754893920741160724918852972204105244439840546987482473371286594779252280014238255110763765661936060291650896621932660479930128050540727049209531390882796295900682370415165666653440794343096218820367779557801297814932308749031168316823751099478058263975107808051181963596114239277448494166028225608627205914511121291584707773673311276451395777942593416191956553186557302978184468388582212400471712604644113726660285467368888500952826195077139610673720628134799650621414496722774998065963297134354855978176393051953659024577737846759772336818989602279335838814117900936824021788756597811499208191271220785981722708259361062655383468727453583242752835299971646268251619740502143340478164731576682956825168801156874300131089206042658879754961458623359818637554016577918604138508441979905166577275996343615526881615757286543123502228856105244217928144237052557422003735975134322134706861455382131024700208032707841945195060872439838303937060823023222209620084134119613847983630764704628654122426938710578111078160022739883625421959866867547362513989633668911637507951588997571809808248270290964851195686278376197603151281851840947893300289671469432638945415080738775002288941006775036595500084584991320495312670479184118936432326062721048936379102543003791099707223211439789461549334195945657498844978212166741601245884223330613922762908845865549039761502470580726879217472112932940564104209817900206881207838603689021305854284328455751026697669431937534808772461444280688455279195308211684274756911156886406083603171471999314044175556260278465180792682879591645348934366423959439607317115491589833062752841794251501165922852005686017016537107208610059286693800351833774158742195179733591959358253726266335911707830212324303890923031284969467982272520848676844307767359973654161512962212832094542329572684551797028767454761899509736514086662295038669536702432521877153173781708073996892672161563503009258962120469398962520470888092385385004861836210351797178275667032139828015586275113701475301241996834466851775959632840187894788771607762562418230492498042811273985468128033539458409760401685880296696751991833494629760413180965634470189424370403557705574598257700756235044479444070146933208274255950443239336075781186958594848816273917975461398841556217628521514827575538255083361904996260410982033473826649390560260643854753940325638812363833810539317893837079340504770919065071248664395035499564344758012666122858965839510555327332354632250170323205668024740232204400252935106354828661754845030023636720924290327068767972597115982272462132947839804902968905236968895806113491496535297244271299946790792422234364260024828673452568816510831261370029521306358396703089296280020111187221026792888674404944126759862698646129279895781999934929814999091983001471346629460943806447461242280447544304007237327316237464779288170889878393679069727657670467024911180354439626155953925391246587117393518233633997673444275657926110118486979182086756279434263735794606131593219294699989719716627879182959722219710308094927246068511212311108304870678670262638033668516536910696476644589947517666139752481190351068383430840550091254631465935275024173564099793321447800864578640863835542379197604597030172704291978376517250363571994442020946238665308186197050982432124162828820920131295385015934922135057018942027307944794714642282500560433130235045040513165251048090683883221646135026983213446038726907391648964715264478088952346365074503151064727851563949833227288630151262863620312786837143113973102041339520312424242283611763383475855404720976805909674966717045062404149394802831931203194403397546181235809348452377625933112259263782742754695074576295739270033061413573980129748796332983795963996560591535311708182858303444296726094088639815216005447907549620186623347605860546181368806144103816540914618476737054201018617236871848749669745738999592425738736758127445996932973371445277305844292782758350686373003474910240151069987727032023244798843002267012467302240474158935897304456614143825555516586896856069694737261230612366765917611340215675235585434725584234658293238649419209014875087758861201181591825096660279892716650447512577841103662314762227642787977775338540014029183764610555393531262888423309143722946304703430657727912237826861873662096992129860497384366940590255383497411449251230975423252309478537502593119294526967784619912858696682860931779037631830531930388667702669994264908029573673027713568218522949762353073198848652240409057215758273086710429538880190612979502970465945086760265636761447590455012255562014040952384813710212535986132628197046804557044208584944409572678624260374924057107027422153183756665716341093864456253739366836192205027027907835186448755256929480195544933736436466124264153762984669634383514082603666998245070081565558579849005467890436245262744138469220433463791429390961125993494406850735285580480266285222372527356616536259291023341193078943733999866845981836823005165809148631156479363166118646184810920301833934076302181238742039110395929970255293312561800671931108030845036405711324677416689595901567427465604594600505942332760130099611201102022151675306728986465242654705069895216968063120605216928655767535975403131893549035740270074000174757749432747434362260119196541570169310064809914107591920685763916140281768449695274026619677594629788417203439721893719339422028018406628742397927633979106045075985722278560271021867611241586167074418075530436092886348489429135152734719611878811492200348878190227716417743010862213710147820782704717146730704478433601229642232231655904187315695029608848027664397428531383004594126132193484561593201705433322103107844037570426559413274865894937509114993657516445882669733096568979889372436699939558406444758711066459838612925711028779189016528694823366873634516393013341714760002501417475687635303691942048121812618913640346508243614559574586090669959890889806273301537245161148733000460341994184281806993142181532478073180628229231139088500140989579701040639825380612865804370397579029806559336178004167486529357474017540030001849519041298281690117428588439255817685251096692491005013778663379971697689613372633178455966451377394240017300940518197013148768163186996305575356466216566192360368382838004278923976041569593764164872939031826524066590968218321111951203769163246757994488306633243298151375992856804889592280999431163673531278875465948263264372682063350897398142782013928438459086218932757390431021155877771776774441379079758027478113960634025782860812306085011002322836060489103239527735938808371573298135626974827278741212374010523344286448126219847969199089250426878369423513105869661664775961136155621158229816217731749392625868553500919203482027395582908890095928651419007197734298538545790760320480227153192305939107580748477688500209595555841372633768966243027053065390609173127036855804321294423174712118908972992746514271461145969428759195315364787351613853077390954235169234125233101180145570834402857930338564939717862568046442155704995652251809542697206438085360688737335430684340023693158753889456624702439015470558013957082980698883188154136997281761146167922234718283575702786034077418347268899362627442806636007250691284294956018555285122748864948555701974238116947404110496762062238487935446865300984781426535099176727766930935204768615634937115542970864382512835338281244584003961160477331638707350527903877132484025727191583397442607101289353589152997719039999549370811826711502128193213274085684509021449018182563546144204329216039064946600996853989794653097190260132266063470957122840035579084647735217897666285040175280708664774097204215270197263679410736796409522938361609459610318663516355908070218310451875802543825799181991593534827953924813027220107628670983032742679214478793822970602730729379054670065524021856811211216962834154928036406806742039510240881626413198578055890294604034344838282332987614929367612516090771179785149671057593576187340554934110092369832473668290990296183635167248722731191287462524110565570667793769475551165389487519180839024525767307711971412721250654630770471311466962818619670670207925831437841992362051006891692870651172821518313597391865674786631221951885645227629031524110479820487095907501054134138716525278095788374292997914713086834967476189780579255320806780359399377869506846961170884942097253609621873587712011663883686143937449998639920317302903052530915381241027792132740672792618291173155394026841509167339675653546687149396816564473659603426205166294766420040451753958841047314871812966027654226145250293404360011385969757389878758632611278669371195218860042530138125206051223655234323322165673980426108114663561736226843106193195332111443758230637114174805197923283834678733187939432123461950497980899688683516154812360798552483104777955872393158598368387977536143858714586913617168898688637632933682696936995319457102765962830037284657098117557682720104657272878418448694455030156813220766867024000943888172485730314433683528085993562647208075818396034092779748499175691654530444823936282629855177429157987449037939337166616753186198630029490160993015310240435780308712987394258648627407973297316672494744884850844353539519835043056648022959457960231892058664445293909457404441242161279283405569273399956448178943353080409986959071782884781772779834840514121401395555866339642885335075456570831194717472587433528564372934147879179166486620811817784192839768597232900991506279101800514112345719598332583355998479367809647383157987116573519841020726946666618839614416789579537808661914794025883849937614344667924728136472147727855849279785748098409320109332163273962586548330339055224036659653474331938466634227022507874478617769609635474688967668920991045309401178341498357097796573425603046425313343546129671122997289881623260091218844822142705363995047679570299245920789489015653659478094489701989963342885169974947656689765311210533166543314442526704669434584385537692377858405613666365892308210333816745469601832677811527894972713242036590256469061268940731681187839592012419646913000454047281474000243753463236129965564977505108168310951836684220554182672217353997031112474060722336693468423311088582468378639064958974341496055437577773867262137438123163149506119281419004013667992781681597241374911232884985004424864216959790674869380471183821902900614721105647634661759485887614147457741459572300875272290227799963880766226958738113708396293363815108279986790757760454543514039760575649917499226307315344400588878785720819950491910783998705437358183481557151102848246750973430044233043178307414563178612984253318767418673261949806502162188026199034254968637048513115595508510601824264390462031322049013925225394812564175223492474850500103717328645949779357816116385152254840836808216854493231253024275151626005021012758760743498191785448361821818091926212799984397979590724290521194889554529578168409057772904838142667734523650587747836457400058622030431795137377710337129775052469733968842513847148822010638570822273338730868086380898197131384237950931639494606242298191356156341290696639515617361596309747312926901937383560649884781424764987398231530175853955280610448107369043239368038636561858040202409232555036394897102162792274061440445030575672348142873783494159078525563690586735769307574974766642424253530138416280829436880642346875135803274689190027783696954288833551939606749622505709540750023107832702941817495168786068127837446683734240730053131767386520152297489062199159272528704543994078035075671697299520355648511342800987849039991649735866075704141730883167067078823393875387540026577724182611990330426154018023366086287925815124783408156223468523428747031869395163858752850390469024316016337928329243891904216058984077668855370339526245510657168247653808094484484782409017807537183939770397363153184374821407870743917704209037455449653338606657771386547460857782940161784513681545732628373884441347493025768874838970796584436511493322978817911126152559615761974338943129217883444388399757495961243415323433934956400256352796692455648181686204141860334966140514184354883520689173163563800501475247313691407777232674096583558443124510452952570292012466441942884743371726117315398491485616960930430897426805134470226496822277698866254972716002246107960374623320449236613314573215376818558363628740560181907722633839894668754159980852641772963630670741476756410315296089104374204664391899477121798667568485690063888617101649033150757484060470007330897010123819980360531863123543527767185548672667634072743609657435650904019820150985633764200958557589750060006331022383174586543833968989624729178048316879479914482860262837217137484500806007708053768480684471579987796230542827549176198890304663197368623187737353957877825168276770361553514747005293659886806059268781889625219075194956795260674850228145710299373702397213557620729481083415524398544928080822556578426393069415132584931118301783585779470508972342413090000612564189197376224524185786623644462050796227597897448802679268226879564306878577981730613927641091159555707765937491536362601045915728348260694012186601086814252062589210096041431510521143498156814774014973509359491981059129354573979813314618918347841583926688113830752855830930219748636203779619284865134295098489831587723468495483311495349115191165822865794609483894452452460700556198909016930074557670199522956314327820286122250538394374443358252670012791419537114887303404349850238051366494151409474491476621235054029530365424336076767095854422387185235826438576676676785760995062921607584472229559995622632992718865123241578155096362811124318627516844262919069882294051305406407550718863549587352047066324021420056852253302640469073893791840733763371229998112874026838944512193395270919591555854340388737905150307585093254955068650978430459988106808856369339275393549488941190445523515924779024292517198237710074944462593802332616490573265847722538536413426294228630484700486831300799591740678892319714564486404863435118331902373502991439392458511098508168632866637821705851031353003620118770796091049431945606977843461953999452791094111705198794776049304362608036628535134564596531728461021015422758214042004084814903305767368020230835517878442963724962200084823212671535606142868036689483075945916039557623842163115449936340336544626124770229002130749536566640433270491084796251496159508306793281252611599188395236702075393845932847970162674967594775434479392657731701409464055100327970557885793338047381633944370573664537623984950439037108229879568290110898260627778649495516355183952628105282727915029085647264452549865785398398437295715707670593197758471154124509519361620078003796980041826856849821819346926084741346508900855395498267288610066657241502998888933071077141032888843185820785703713407998272237933856172259580249215794981259301457850587674666634076703332132803351788964926800326848749125641659571619735410342981540036357222450852534886673017358320806172296012868778164767791102347550746939303203640544716089984816914859594704704425304869062785359879174488299799041444456804666438461786338694906808350412818783569633863877068793707450987398252865836077839789539148692987525624237140413108818886386369401808409143559514832849198552728497008901993824995603888517073830902352090024570410543204115752152917068354845236725158948743359833653369452565144168365759496600467730120616318406706947776753335130057397814188847770904410411511372601637123501363764835964647228937328791310299993026982358851870906681625980441357748639731558734624337661918275920837387301336447744278455461004090282800266092783735663464139686110037359021265514341222166498372223253967602390359113556322309768470102632397017005051352174382493606222167509614851066411700780789893454563852844183056550410126060590451816464208494229457645290967884428616061456214699131268054022639774254335684447751098736233809742257388541875865979891174854977271769415705190716801986205834874439444620815008235845299513634266160733002655932112641493155324101060098294825740149659243893018232048463332491643444355467156889942287522450231901104787040146425791178720005837264898589290168911293735096107041115479981863914494955127649835337584066838994418207572328966169026644111056944176019446533159229870632959392948320678289642974887992696792826624932550686947985713226109221737876368945314408747284971900327725380286853273661022464172000581269326599409120796897082665601981261708409339694399165086138324261749669426951241031195967845754769398049229635056726825344350594240755479646310134447462571159086404400889613216681205027443455587666511683017709752580051976829034859512562524952759654166694627536701114813417744434793139270734155723295334422132126615773309510520368440223714374840533933659467022500309866995049055274996996255493087836969338589090706833568961453623302190332487636521315406367026942191383723591055402219529837442882599908617250397994550561649576040949850771619770467411799295416506490166553038666048485026856114861902719031170571797057009908161427550577651547566443467986891777018185723586039604617089880166878053105168082144764424042777753783215604501111520129873676214844045956913576996468568285139630050654654584830805205402635315254144454155389485433879122489368071386698433739652679643921107790096447559817225303746525990765889049301864370679012354442268965092505844264248179388736237011049725509493487787459343126783795606184704783972903590770481971014929019115780764531271705214722387167269977151769318162894084518380476565704087640637740120819113965595446322242444942325329373979369949482307650343633031203769348778539838785859009014552096794807175951300249431243431792549649398736828923727972605458399160628408405400349827784519176491518498627931294614738724386608571085150600204834198471738989928780058333023124035571321623506529018027148961747113698200299829583464029081014120337785924495585130089336688085329077506231542245597274639672606388651272552890750819781833211698322177759900455206510846413954430803862703760703940402785889360524333019079822907122918541444357967547988247745631324045245283459075069314113442191572675354497445797635858382573131345036640992433091265526410070243194954708875675328194917320870474473081391494756424262704314808987623176001885246461743905407813239719526164522448838958730439020728073532359999767660411699987646528678141628817116762402303411656776967368649230649054748844917216038328340291813348977624850364922912523524065589512828947852421273164724280586942293791001128335668895240505073021816812233798886561951550970014525516581266107751847387030535107974833391206328175946587516728081336639059981803203253634376000920473442350470293392914956036727341145116561376952837056622643592415764342060651399580982936359657923712539574279422573079927702953196665237995188636946010534156337287401778439348201659170259541182041625967917876349193381682713010136727192457741426159019976123555370534646164443648960017120388892191608275684322331655961385779044843272642568870816873255100042479759437917845988571036240250791444766590735233344015833671580781584444867037608518476882741697228009217197911927026625992098955383745430587079810637888414903956745564474029648239441712931989622575087665975692944625909807733778933090871761103751279609053068602752562777343385267603450051257514793835573178276801416015140518887079302364645329823236699993987556584961449788280649473993501985352596743598634985328197538451219436116617535776100671702897973794507770232514768993859845307630879160630830304494748189649917262134361393510580895213644758252017550233707493341256580369743825254073319013985046582943224157192708569076179323431669081731616933505226920915875796866380131301761301200360494132713357754289784466295655009333518228194685195009151450008626505079854352121608032384705473297676260174545985911551075033251887626855452869149153007549166624526718295925625010133002450572013588736019214261096362245923975640662646104881562609882229726015697804138507650344830121393240880243316133778015290587530226242171396725345256669713340652935668215606801002442914339395430896766902956645063144427106404225469083693748755772296524901524393462681931556091092349793350915835474906549439659232190455743806662968664438487838410315930081999642386513472009204728556567108260258758640413138928795511089008261123435502723811450744547323375636642437627003003416485448705127698830395200847038227139179575486197547433406764830214005678940056752534398461085889982183001495713476266817548370051675633877438299714177703759043120397138332406836124309126598767702592972284971916788607961372603870813243279315890462216662562080018178124831767702214535987547524490200610274451512456519115439409751201274369352657644001811277018876529888064993669972226242158780989525238721702016610003671801809402409819618117250703931923662012470109225341515619177128481566263013191623373004039300422522793882050363618201322524074514613384029190190765084801793204582690733055240433216400995323239363699660927531840482816970131363592176503915914993909488082786747971639526506730255066367223582537995768882756913181656673871710354406839920706360518454928540183664139288962559794085210793070730169103764922909834838458859146645147599195797062815811314575712602016517104239447610647899156014031445583469674388000177573562828256279723894418872919469662173231809878388181636868420349420946848101603710790167479497130842297272500161458036945967606567417258354707194620222175600364900435066316263537620863965578491549927068948504452487696015736478532719792223444747636936291349022082991487723659457636514210143565043294627560472936817858099184563706543203591614107973720385916064114145520457317258308300418773282165736326710951608199844906346326252080399072879327902918559016347818138327079396734305271284034572277500920393214999306060776290497596124615484679176730419143723479882571656858320338136008760670458864886810430998145244173856555198816527135984173856647571663745566877161564717770432864459031323592042690465839336577479979197591091763724863002147728884205388509352904745523733514054176105750524055946045526838923116293283067703241478465004918818146732246271267770326815609663744910522648329300693326550599414609508851493948834739803277750608415628240383858084505487972343635489912625642211288960172244765572447803585677547340154247301873416422823499877634183227092183964053668467468667860612259241228250202548265267123677135796956443150909710449732639129706006345911321176008312357862174087067574835477702294922680488458425522887719393289470518869568937637543462811585164870438928005200638270028247905669961758308867376574031239876686594425847348459489610503098199926886084684554977679395273990629502894109377438857033285048687603189516412245224427897119450707936893156490323486924825895289862053249384871313908448767301397363999323247121622684215571505747248487125313670827281703097094639996623072207028445069815858124399677828820738235187253493972455691882591249843134259156763514753142396222177513139606117659654399988866223454625840392629782389066511316746884412034006924750616125717207726923506589333293277392104514765329735581785305526265631172401942019996858882140916347303456693376478718373180220489230230798035484028245688585741396359153127480882751259556128776188237397542249417324376659598075999683989498089153877252621651583223513227359260384337432970983197094355269993352437589106157802909376311266254413115023581498845852926846897843254963279260322115093064698661532787277906791841855057874472583539205366912371637383080039851525212923328651477471100647372141312707660741449414374278220974143352734454015948747112982700024407075544105100566205527836485430840922268146828806330850308305785920374892215810413507255778252444700297147630027858777094110542289958157506656744700937714623448571180414654941270575125521691957971775952537243302989019350418827999189668279343748682931516461594458221453858218075034159881667130232903469592954476604290465859128403861333415122402044178983267558153383754247452365809797677187316959006663775931283225860372334595580609363289685209075787976698533079226456744847814566222400538999664958134784720942402544973508931059908484811084254505972578084437324492750586876324046174921888506860694324888872837582813730178597066740019905269184217731589791417799699486636654447900479772455558542189657797611320631180849987944297838246086247856416205938697063713522841557732443183033304969565545832044836421990106668050112023739008232489268897960106004472160907882817533959682653755981484615513442705010789817886009772187637914486305929324063957704036938387216272758694663943229964095233517634891053583403539738640632406742408453576919379394010065357463008083174464787674693362777955077096039081437458964321845187270815392510846809405750224997057922415193439583297042357949094804411887075504026114154794824536088774700022371996012104303391065064072387820282740091529423619707500374489939434006398202875194960892357099340147544371427439558699060640326688568990026242414100225321864440092028081839400600116413716450295829371894621415213675900995128465418745737286147842393259704152882855912102060114285697707973845114006463682183391669418080195587631837499307787813640581444471227492614837274088177406919291803599186591179700032429848678030845017471930131176248928373503753972954846996232577332164232189493509461970568834069157203298050985221561757550604020829749080080492883711379811956643815091253044126374464557981990481006110905201996627201861423777142318122348882734706013924471464375680046145578500062257356983649969363537077906980176651362778811829038626512590649698698983311295731561609985840026732773867204148315049377135782231332415983620392084168659928649030034081734051071473433410701301402987883648004637521709753747944073286383568200577758938143642393717328900421328597337625920026458787768567901211517486646301249267533065572156369738301511695244930147164140742187895354330755327087228375805510609562984648993842651525168080579233750078231808118227330743222666687349669694736275500044262300360323495158277428724472777602995162545165085760931996445593899449806341541892589145077754584094280984733849492866135038038976825442027231636778128243648744489983392589641814137632453389678253196119043438722570022647276611565970073819880187487470404969650515909043588617974904015384568028613295091764798525192904994308132824469558631901742630393414738036227709603710958124680309418091531688474767684411354221444548414651803932993130569891776630149031587746423719695373250170953725321628052426457779895485552456541338384368576943307079065020618675138088996680734118919013218574540172999721213017100510140464232060547623757638713084909406987119995510554943732198909623394011844873298217124504287351843549876008039887616677801667436667665850262316047291409806975973282795382512514958343410935388793209054083747586965474467066558277989867471464967605735991878563466869524781891213158254088781129098330365601631039567879389160296689356074060290529343709660653415099287694643324675874457793438968158832692625512544385618611453430185987716447764567491867286557460605535871197296208418392437989820786616388031029187974101082054418244362813289124657309787696543687479475858314055369907208965992973284222444808009239236997979221885214282327561262921438472922585810649761242063022804510189174292050062173050999149193526811922211975151196881540607741555938973555092974635909505885564029082425009268122486294429811500588295554889497492991852491986815166428450359797660704227344241649152191240721294648495621359526526169004380728248138422197743205865122376220662743644313178533602167687757716762744223167294409345928001646610219982067358784897010561131221338558843553991124252749617887923705221594464915882231877253460946361726623595452926227838585446242152164671913194031506092161813374586497736834529183337774661928849264158967085847116511257539040516003727199174280649500047344901504853600319027381096851196306886909170250696554974379129499011130904057547389237759684703299724914775766711284815581968142615754286035721032481048578683991903425977007645058783233478050512262353195307733165603970081501786244968741775379288468354670727540464842646632222004165821475008558201640951734051229026905470931792771724312457953580181717084974745726325136960056902257253285652363025132184283181025921573298104653450596774963696325912639002013080478923179311478307593487376349430836637791429692876311817025729079233157723707257039644804626905628483367378990728494796683061750278171781877460893624154923226159764920204458436566600218506523702962411339235677670784528906021526955352388317297305007180445110056300662415747818560992025857398464640043866345969556241600131206665358114201541280452883571790479467970547852726198808171555976764594757750081554369928097573205327933256430024319138398055651082683229840828895654836588330732957092748092926824046526810997026617609497419489615676584148437567505735895074434966378610362097449271923456321998961029222488191549249144340470465211327099519954365572431402132681210969956703138005624471305180993255116923778891320166137350201857423130632266714695403832731949733992488636902531108750423291534481740963355908583588716264222543200087584924144581763041701422715804623218330255976499457293958927749765450326384112378560680140277709194344869631127931096992469624844289824521588973525693080336658171317430707493678830571067336793081858972675022872171129698456466729023720040088864025366434256008560108681933442338950804314536400074384995575727208080494774093191987278175754294492520684863215826180507797489175891779552956431118109119210325379969952427596858637184507133073451228852699456155995636339097327511405804639172873873429830783234645166489928390021327242137134055043250929534244814179748577943135151798285914787186309176644524267813053917351796501691512269953715032024420017447607521653884944047993965364574401620454998020752596768451584479002416185418676750948757822633228075884160168878843131174715075127285244176286832621760351257949428920200703202444712915639493140197505685227056847288680039682730891833461860148676275157341874398796963534736728645238071600687894537391480136187814862461809036780297021874061870643809793196508980025573296101154384479393012462666052134646855120417668326448161752206829348098615889488727321228595071598851170781236809078515642184298259636976195498466612325729999167635180547057493281260198250396503418634767062448209167292093282361561652281690892272480264792916580692033130004100214049745630059320562735982581301847386909985625196135326141640224372107515306753271070412583891497764585955767413506601955226150712578289376896422969175855573346938136398509324922789119508014917151404548043042637945359971158433291204986958324077519047264028799694008658384633004882233665574930623885135844361344079933335495090454824069729026493841461374625647265379918156498634087643365852545464738580936546755760446005033656400683751217997014949115788499097335951337598905649583777516557644461592426592137392565688542250149801397484876314979058266184678868662310701090027273214463215565974145602914826908983578612243592306358491533597464916237145774622873393390320237655025590328946724613650789546857826003802102415918131411315616842375353553573652783282335473369528355800574667038720721414285378780041903090626601911296157005647590730704040961403513357651758592444360943101540774501338951654790451730795106217123820610705571388184015370486247767714065367610596405035155702379982059337166325020037390873240042176643337589682143523266815322805885540285524696719073836854667533439595701097166228325076129584500594180919888315449959382281029024163244727712354712084823268862858927418363701443010633621992129543406113155882055808199973255788809288345324389502788388981801799151139332834447634994166938117507667619346278224886344025063110256437112195221681162836948746032342156858889623453042071185313248363749583874369556958267348330374931674539819688156036504710939449113987973351313695022693397398877561197179377923545750845097281520170059273626078180136545696851802150486922661850244186944361987364462695831795887654248561977938859976248482796228436737399825708486778356599680060253150341081538435992482452971088986989888926633109360571608678419310285916172574371250335864981700870736103572729694931194912392000738926786677875287845515012995371228809971341780546098936778877280615591575118053772452830644287661037446424748092487440077227914857314787823857410431324589725896229700247306104600977612194187890877385067161875411651162028055493082614638610738336276163664211833847396302291185360390461595799596734379581040063077611500829312750742749348288034025345892028363593092758831977657793482500998050951821668394197693620818725757446689716969101447229810738005673184360089490918479082785504823596070002238031549961765198305511711562644842044736208221251451427747085793096963569111970693506849584011425698256165120105886160385286570984285166959849997388113341877660458471606490724380845482575103851482682439032367205100997956165463386331875217547419301282946488053970130191854769498957485544152892223926749274778716021398778556542894876776123040286128613198349546735678405387722436104646889463088401088159604669423017322787777033582269649878389402597170171383061940174250365268056568418650175440567155515806942786014928643231013310347058057459485295603412157268060688308569030083422646764202484145855630753053234730416684765799748134101161862051112771645927237755629595452132105199695215470599533584201626077800448476339206978574276981107614522052364193032035747970321038657663849789175049114610968614025453323374882321422949443363640180575846171233571131723344479298909899948564008003065114691149389459475031086839584324883404826774939756680534667008385778528110084354064949468143066910815170849732862933770645781003260085392933763093326696207237258987027238081725868054901679237207246103668341104552719647063755285047626812613713675830767213443090726460788547780446014231149477079996059758403655841223186282095585937994807511289618869174261385058410789931510407255200319304306547258238889883265238465333801259940727357407413639473451119804857663399485979107468506094664661933019773759485383121666288277437527778154726610780898462435369638761203328454408230823237753319287103987632571374987850756166217835886798408825981421255333299863394190313971524072210786362672355505383163879897524256778415644244248291425322793434616904609160589016823261312996536654043582274983031591881533463567883677762318668089581801303477543087501640627847495817487042511342430287267641083487961173695552466889883751805077317313857423041287985202492901756970207639199629016258360977958062221774485948254636358960151467639368110543073742088444437754911884895545081431440008663569598560460413564597475546762161605026498656074900601011004366736489877913885181491744047306253152173792075794492953225938045040229877014832832938909048141676563252516453208621956281770781203264384489364500093110297675167518679049232060142215553215404148964578944261315863894974205313727022921949506880063130124357389376902137563195559286636338093046961805689972976652628959941645489547490399368297761386161716065161139617444534396863367298987218615051531584536326861447977605826617724548550757802360766776416761397464899015267211519205390615263404139805879910363909215118913566724853535568055632722138203624289851209341965862423406510446282404581427242455828056531267254510270272687885089986284339877010019803209572338648652629113970401455345339757688936531764629351710326851967839973093423212465026792274155555907071700876557324998982652298384098361223356306794751851614459781192242584586952947935672820948251275588415931792922680815142058138177314171090780128430917669180967678544854038003938480821441198352931378485588394877781886949517051768704833026155160537118594625309580416557023417327721808210840936061074710693366796799337795668353542545995887257118039551914536030691197722894658635138827652545971794206945160341052465623262735861327639163059176075546933655950078454446087466213174844758463934860284752913894408270163370397193327891801522601598051152064255435832976197335607766148909811636098448007980482159868701244944067024321346430518941878159461389438473319875672722971939605087258176043148681049352550197868416591868245663666953579377233251372279263628071382696197325784309047808022413903173268893190156875636249683069658799908433912145611433032537581434624625213383150700982508804060326505799215421474869451618436930551002867586123045007939069655595833253325167754630413357277374121027965386448430817480411621942276779107963814947353655958916380451010410835892345116841993236315140823665783313097910364864937831814460023175669886778852139328033643849688530191602182509547924453207900635089642921156601300568881723899693267561921337480380630411506475047148687817119783679282294081133999726689460283221820705295879236676673855321359592105659995105351357548431550591778632339086658662320012952319776685659014228873306027675100389505496854261755101158880942429501394573655790776884885227177142646811166483216309389368233672705986619808075757139364076470460358685523809421178094050813441099087121757326410603116747023977845224502794071701325158878020439075891354355673542067688827967974485107143663316545207509691860352568799808661431373108679013873749377388814033531093697443930222390679715476090736978662863928757590713914724811341849128346153758007457220582588943627621382568744108350560530885407397410949944484587278847503299517848417920721755747693040519493868741626643484299836143887937110943467444095602692590830055962506051710452408051563753163067356612502747804185667786554175874556785925609286022963158500896378777553713701452903541028675195830427671000227998365958497292221207146718278979551411291588177793588926282130991086736878120962336776383162965753433260861807626756165978800693114810991591984153862367208832783546291253039059156859409655050756625969241809652182266981606820350096273280309113520121172925492741890642006515990285056151508660314361829291118056744447731926180872408755984834306620498168354509791990827028863694113058826809394341708874095225108600855201951279568223926890608678039766216120851705787093621506729250805573424644727101915752903336042441751172573998102687463841012197743862551253552563534812665933515907655576708760931595371444646583714809614459010575457590838638394554886316405786362398909767258668080282294796308418860175556480271670063915294139991697348809680852921999948321143371429538704045706023152345770460518728921049988997158023093632660608354541363748424140947876550155309178390915351752001001420274625766927169440740301962759701468286240919598495385403098804900771142963644817624329514405427004996782359768965280527210954870216448499303697849840577670426465985538880618163275091149277811809482271528940356239203327402296855029657058117234671271220407648266375292906551764333838767337204963933752714107085599861870888134290267939401837039388626208594095915733654154075027869117576185998626282027622464286966770243873739746125982331118784144534546709113688733365613544830231027299328866829977082724380131536145637893327782327364640966789042736353934918480167992607395478979650214874026948334937966466012708256993542283281546763449109786022216082382560444965478934085234134156998091321062212017775022829644085630219478565658209575940460247206284566873306799446517554952157965957309087268726566637708647461658651397017697356527941789737472199999420797938895140588597843168583682270246857413818229655516027055659724589490722147161649973457229117917777550034641445870935352269381865293749887308431208533328706378534800661530026199475033134001295695689414958842249691505021024820908278401636192285009997306000680556444694171162509931041848791331636846955090067373161716343866503963482683212417193484457885615508929220226677731787869008892724036444002701358046909176841823815838615223568381707706596565810383919021440018402154453936019675631410136002595418280892333033149372151478120722664030263087151766663978498509078554729823211074813020835107592231196549897551038733360546953875252949621110771215004913383559202433961614156922384668042680377638061820826939071737535525114155854879737468168501005889570549458260857554677051154557421661176319613214537016232189434773037039136486209749106084317420178507199866968180749023471797644040262460765005869152555692809736032948307260538542097246348217197528393559981646624310699079017356352113046790371376955375875382839629207828830431759325699657612983920629120443587865857800141303086535211450529381157052891343863946586795336092468591463611792634172599014863641592752666445646393163162990590344964802359164297071221162434717980111959249686102314849971480391111357990487833131821930858278079943253245507080150410182466757988832638977738534565129065378344262319022221461896850343562342387702412345557986193252669170543699131433799886137128933072451436172617763183325981984178433221932778247371067029286132090585038519468984200139157373527475237440779014904096768565936675583890095387316277265041217587340403604120040613180242373951463359154335565559526210371790068256365739704205313849743871835566107144528547432431948542295722726034465602623924351675468261686692631134156278119948693227270818722697572997114162671134583952473819137241620453341212297642945617241815295714521936567150873516596587772307924362885938173740135822389142876799306122851450057242357183272019190216560282394699959854258040464008536262685837333204978895075815232901353320170131525478596492612494232690327477521124114762453427114041720630760503726012196401176944673914589353588929013083346911756856491826290612180880752310233555188815850478857010317661362836040816989392922448751793133930510176418008541620996831219129055984064011993111944726135440110460927170427258371114338616408122692020861146887137359503781179688333491362558037540734894845342774509109776400169513790851486424697741960996853026010007024596687796120486416177660009250494673853597933483098868828769911987432230750052771159441161187799536155298867545721627182389660338571350417951097936005067888378689559918917989604775513049580280474318317938724178475303419597490108050118119116045661357050440718725045205427445762822756079608157975706475300997888520233936268757071995013546337325905187485577580901217500253777947733380740944234104480488912585796377153943799065629286652032395869892225354717798264734916700115673689963317095964839143034626714259297642575995833371012393057838776123127099145137035352699795236936524220068675272631791310838091803097791603134324615822592177271238084606131417313243857161486566826777933764226964272346489878766716900408009385038311009460275201143625824686568329304243480286862942696627500184482408164112253724513189676059599058547040560008526167660366872159577512284472926740184232540313819965149361101691662144820770544975862220833431138603326767857042346448520791331166505547990859997327693768176774591310866254774906714327744113381343907819060571500716296375451817189150574826312438216570019672445893540721351129778891029093661003139760658236479443565514631554059202706989220572196996113595899643064820595092596375822124805575079713587779720023811964980919804165162650530216928074939691699848433021664461748505084294604858733822685464783634043393324677465657854111498786304413405594284292676488761969394738524343765974050677650785562004872820849370587150517899583023774404703735579966591314816292639060408698359584365614810508720819806351497524287077064820840638671420521078075542721673676760901877116215626595724550873069231598258443690171134911554097699511955773140064261335271497147181013524703679202459262307827678342183299583341885712488646596256718947630669034320724622380239927820352280188221778756952522843389162698338484649751960172032839622001266526021137073817670092981159638752110635021140861770327033843571212670638292338454335742692774744935703108040987450811344790500710193782991994487449456702619910055709824420087380485270104948103459259888261050392963067910322778920130525775978439340834605630720064071630734100997721294124917958157976023461995823689759066414795859436461541408318646900509173103495460343719867213354745335159591516672297730121442660631532432227879295856409972976446392780843733795317226119898394612244758149402651914982098335904768036162476027940649045412425597683251131653460655453633037121451551743638777608905092382499068884781311714502591417745301645608722201092258046403806726459875745917147776287571665190830088905951038472796021057006152054550333534793512555861524348031440215285176399599562258150505821760217993303048258635129825282755761638619149918333787561212339943288716628386846481648687250058679096525303801409360484080180693091707086490392597355663105321605266065195665634159801111297584643904996469955461590244249180239305081232087350118040458657041165359481834029463936463012767083799632269917593139057103207067935926274873362269537670875084769527568250706128047658841881441665239412375768583917364407898289182203201580577762764534030922409595919856583686857812991860834238710647414594339244611619091296577111474903261979171039244064019273814692531240355395697674643071888082426645261553976351573929113510521045786295544188951294029378108037274704277555062242003629777902138295545224596661927387573825900876971216526746228977425962542137436596887500174384377999750486521994841317925153074521713813444100653390867587225755540304102495595825864322755476226882627384034568707753637316074897784950740244024002370133346946381737071607579393641106175281507300221780796816713463388377615939522497885240770292741329546504205565186062860914820610336589355704051022964675774748562107326231931797991097392710939111749603172860398355655191837050896460826625429989000726302188338275896867141143011995664574579499277833277908309621183376904561841544110022668360172010675910249397714393319279050345041886014403130982521230125007289716400450784338958026476460593333014682230036043354605307017221231723728879148704342236648528643841264953450745293337397250708973513816099203351517482334194306362462814238729632919731713901338579713748531261999088069233625737790215583045243067109372226923713804037309183188553060637870800031957352115628367087601555685151366259089356410213145035108633575162926646270283546146111423016136308444505341463229743762700937782917108163346937438240167157001175447050984109709426833725476308329800491966014589313851411575191377658134085415001028650958885152687073928308078123200085741383912798263883737487481591009029305501690285337232305324552469854143609125578399480353249852801965336157791789645986608295302292051174305498962168574107637483888206282479119667278492644922426658785078151672424357542678672926553905678172928794423761303694821748198367776274682797206717723520084221843691105790239166200590108460664776544301298956197585738029405531501109709934952946159923002573475635167987536233423487605347566194751265722577345097368000749396679641434757572889920330441766199403678052143344403900123915264812010997057613210401566049093612866989215206309555026080712540282564807339913821427618489832790455513422119070998460275145716164908661378353349961632218341835357974945453381717113728036137541041198606212542767546512838352856453975792728795018500230923653114920750877942202187675798586735003954613856314647218372428934005538400881647106346342607924658329842332045485432022963768551586433578693952716503337338495450501270067570485544887747743630525943570164208930941176066048703748105179040420544356194651452773892860137978964344727415229846726412119063222646852982895096230229071070930693466384498012669730303908837699295003486401434021936625288442074313241396699486895795649782807718233886771989203398467576647128212441930466355597564133283982702457450189670265790182752354486516825270887411635744457009153279801894753523834889898614811071280605676447346093734902174556007926044448726350347675068706541129914145794705644974274114019373791730758969403319271146911366726016463553644713390420698962452306837650012707667631313613600976445354427262895933230135428722306436065427795286841468883503119843161716162036584704993016063922336178572113398815812442746474278258207624994100208621530494740703377488248981484884892770390673308261469767319648934456924028014032744079673180031148236578618192655642643863720133489313805947980623171921553957748723885527237741020556082068972525988842543094831538763139271913758988277754052771708815121915271463306924409908508193249642128962905799165870784432014935130004416052510984503050417773299784438743479046588136311976830865007209088173436514643763801833410362412781107867432388095664467240601629677470784785168446735223086705282622960237736129914635836468867735378046186171863286538943261885749234374581058086497672663750783444924919335311847317566408521101937398355085388488827546205072536587600731884957151337933739823140596939777671257921044005898871109778113521220335251711538752501808102407618722997167087094627641135987392585452285084941801495917367343905392446534702981927098634919640716102946516731009918951247230779056499437143746552471701772738523911930302632884813839093036792437329270016929587117163483345826367160903554187976694615852867795725581461336732662910268598777251124103455778085064531622275431494071865229607393574875010021469908004793056477381131660969244204213544715542785489613823544922285423927986639687768230891983407804572566772328232424686923344779437628559335251486514536068702855331989287513000457891175891798921142135493689427536045539172256903330150604512774775242107654856166856107111460794121953226209848534179264140197461431453207115849410488906666729409156549964956595032648818756864624848547993759594299086499215748506725172391446229954410513015757748923182090917697082096787232900974220605682996406016581322894922313657587106539088781045406909509264949256088417863635819030210766047477494128893025358404932490165632418339511340480579014333208672505466159792057229668577688141097604342856145957302164329602992158149448962345176706188628580567051547429054591512834830603776905390178647369553221068854637873821517604961659636971184538735645931108174839898891310090262941422723414297378804059392965639516537766588530729900461220288902624908408299406749060464180315396515752055596905716665686704382414443739190229101296139876251480695567848982596321783210167468447425067732913336540132731384608249424240622802198326031877344031421433893811985366956358839302383108285425028862012828656212901371983675767531129127604368167914627912417728899673826338562955802578319846704387677215414084057526233910396423396240161282769666894215113831393777728398277555971551757775206310279240180420841651181792593995855783307320115921248475055523523778609247697723272976463454732012555644199079125777764690810976804984929931110476415015994640275630066541497096635114415035082681061471010943638519806774813074342540253051157433872947993224817587958534282573080295482586776408900171647439953582654501361231438133516960481651458823706038853586719409769203389419936566933918091943936004509728617033971912576639159613238139064457848783891695936352297266635614988512717853881043158536864374669745908413558231437895535808515570833994128698000330187035397777270330045268808812617565820411557821486382365946783940866037512330412723414551455174193433941845560064591227249384825636079371086612887082133451019762544196221147917507673059698659716579531903935576356864328567593654202474727475463137575716669266411977465893713577279845453131931721461093163104509941055388147627980078800612592068209918870945398863049396628309051451193023867240449762454828521823568319224008071212340983817720505884811619128043751017466833499986074581489697329450669641458113774392168140753663457237773692547520879677257227128008468869891894094914542804094542540469402476148839225634207538013393210433777881314860167829725633599409760954816982511201355190806376714570399280381448519475589889003323731125283204358601357028174391412777924653802417947148620526444535503557035885083303575109787054566159992482933301889445822850538755441853125667069887689956106110900888422411211520540139519329635100972584158301076366230989547567849893119368277005812488212618980568091720278223743186920339692849052680432834287655855394224959148063301601319319392974622561034157687102162042606166851484073928296578367522636204254741014575673578614195443709423498986839746619756382735351656193495726664113343279875225627712379839168032617784433331140485498655713548542302141821196799683010374754715436478363836340306288119680503946638248402805842558551984474323812552214849955669319793732148118563861371763754859940430500086800793454899444891235560853030021814670986425695442809592126153553115723589279911503627340714465922531648726315492961951606604517381908828888411468814852766521176917780379630133287677136129034661569340300270595049513131864359304726880107349082811269563461408837849470627222633348277791878303085646919843115573265495456538508203714075105888171536783467746150879656200801879199651740682347371573927921618891311476044447219645552511297567334691511064484125899613313362951020602258030813438153499622405790446403903502094668901110286647790148498829968505323884863065252030105705509905043699706869262398491260976670598043988718085487568591443379504528259892877526569170099375323155358573800886558380227694567378978596471601792739147435339484214192599349958715731136467116417997467832942467793064350341270598987314806421276327133056982471451459152830557069891724236216351381967334325817520933126718064305929835784044862261275270553585386055979290372070868235812513578609040931387970045645386591801074655152149041005561018530651732451798662381298076891420125109279865293549519334755141792284788206726137053993055748609983380594374939616999602166162605212373716084498859171839786155437598834841259932263134683984682219682513725953610175523892138007231332950988949844690721121569033667896948453620632866262707414073095767414134339653890896626572982245211875929803231843769444292510190298477001300040437242320381753416546954346102112269694818074343418517225848569154203884768116350865705379868185797012148018062558550646447505834257867284815498697377702061523354013863072045714030132324568669107816297890359076423089984087545340360900245031390945660169733838382845747660483720807220215050320239342798453014996033606014559016514952367659280098107932812457229982393497161883474146184358923079870443081141495163683017805368906907007269741335127127388271697854125742399951619321475524858387976927110011218493598756456685145351919647140161758074453333581834647554580698933285913462394676915132096665400375031763193735179098285173292437570750778743574743997355051476209401322337954083271001005456250534456861068458650766649264103966733884820136667556905049228585574643023509556256523337466845746233559402436989086206440874137447837791240251538866272767869665921625391112231382271542931651503745272628603346259354244019564650111553184619595538066308062932281671022595911181813663190418153417758621408548533250944231469991942535250659887306577546787142447017806624919606606450167729567117233921141002336065748883263365172136108825286459991393843351865649436332263385456405896259578226167733189454704490308317492220804380935624944014109329652907250180647415289123780714181075585959215215142614967964868863697404624317863806755765198180179488255636258690545169225404245611807165838553342027101902592947163617158242340688004120363690439055925798731877890919065952854678574377686094754712627349576462594789723273479119831520006076799087305784480373957320241162349671947164040932880749865087250769023746344842500029572847939815276841604833980091174325014857649556669787167960710368968536234739696523060483558172958755551274502096807907093917776652062282440316860339987934690548417160151482310123019310134765232433100846685768543790486363538107705451750553206980599251198176435927648808018589344167998888755890319349351516138919681151520834251320663105639035860513970641700970667232621370768858228041226045449143009471123954598490762628125735223767412003061968802960663831051191793019041340881599226961609059173051815857176414915084238449301274741228529680314767853573100924012782906047425478681464687669905058178095250614423002580361293722486594851099621256047926329503335246502194131247494700294377319548964499171340244633476114017058375417473757593824179613828234352600391031810216270514528453959206490843841072885001765616581592914878098572208993350586298509571501008736241644850568685763927831549220309432314661007034801885650439787062088606981603205594897109843790660603541185185225555662825255108372600952931450224167496582210473926872957124139982937638275119799660357847827744519010707012783075629461537453341524872920965309240170312971628594903998049226779459194330660932628083845462019329829175994651583991406319115780056316340701116441175375410329766992420843564209652342068964768226440848336074424141935369234937590106286095307608183478302445483841491116969283055689695657634669570390657726724186059893284924076367360249760596815148331544190398437761473538471225189666615568880533311872264704295033852611469288311334655450179406430232607428986875062717896029295600861650009777041845658019820101952955900389592288823492630593390153471159627778785074851193420560520465122386150136947646554316767949493916533422754290047836709051003472704123019737645677887416684991086429508472907671449793848101699394626060977076874540577285316312505794989039224498306325999801437124248423536818067595308599021367283646318155886855079281687253911184344393836992491474578412936946589970466060013797913255979517193510401674738976735811703022947891504128626854757296090603339219480146746064108387305321393436360788608169813503177914052265471787605162674602009005586603543830973201365381464824782621162296640063817291184302503163263501745481934809035332091101597456087386354543781882255693710654936685413642165263474419374310336322765984975545832572782679545656217552821101712277151921577078708930965580149124247923435083219211669669198726319919339001549043748541897043903810682933557657486532608006367179413665653336280020822755245514052368876336604250528261048517331973251342710550693843263458332977703548912728918271557330626523768625597532105519733676921978750086991426656004410576545891350282178059938272976165765795392369347115901646651430871584397826733191241424509908755241335258922642909526945138063194227695630833214654791190997043132103138988238000594689210978983033123743878912132964472825872095020258589591926180838348132260158677662476492101390073347352663959956144315826330439415580327673228077746711186654097524099424502718357722872278580926028460318395214921331993465483121738420058517033111503425849670854669033230498437045019139138388018515298992868673524875742535216329592315460735459291127685390254791584693454436417381769926506194433234804780961448919472744121454409849129582690671275809398822621093294425211442633995134511790128567346215754000340291357234641738187877792083262528873114471737080199747283237888766564531019724369192754677611212068870808025476202232525789149660222031329462259448296333158968328585477473502630579982385984994798474422960958898606658591384899877227849264658570102768597653433689272478019594415639710879982342278997074352598712109461302463046346212271913934164994698434497551289587532439332710139899769699998171681539752057489670239377394641807829712919888221381904935898579061764215377653544226689774173176712661086667593989427068207012445264876951161924859540088050145671787367798741701460408857165598432998535314261781967469152324167650570314718814860120444588164715941179988002887084502017176494555791302597233173466462720734154670287074506503678409438201248038833981407033813712452354547645411000633811578285893108441712590774893527010506914275444889768155575688463714339921637327025179951818542541429732918488311035633160429019713605587985410119441228131338976610728015753947701742813087722777515639455141879810982850535172339168290879394017634199771711539536495416135388374743100260480924498393469302012538995182570610617740402791932217993756529069176849787455828803057934753047218214322319133594723357198469231951899198445253077110733469622714120875340862013915941474410946903657103492346887374811266839759254156143843923474554430274638631371132262068249215078834694956299462240046118046516962472392058101921154089620926321001834828922531067761735202671322327661433547005013921263525374300829799348474155982130943247942315606854893705340721450151958724784153207409006617152994803150149279402261904195879271221134282475517226502153391667537067564299787256037004588705617046178331413713515087553890638280734868622436917809547520751117969682471506498809380096085411372537694119382483656123096700305304789963411619477485440923949582373630599422880611842139917581132871583333784890697475535299629904473866052409543619469338143969846148320219047155675476368572046283887959823934573016996823021818226683268673706323966800854570310836116495328591777795406003992523507562456903861406739591654419312833900053450929478752113638355903661676152881124347629964887421025054823649879082542416615842615513005262331076199496440336628531780801249534844816447060344200905372486816543230843748898482479199465519250153130045066268524975384753614515271713646513832938693257292698165210554398850337758289217300014667860218449719896460430965262317724591648148302276866049038647443363171874839751352571075196295425611028933319240110902758167171488908882709359454277738930895524401692759607885676420657258328916027062223265498585339162292964738724105578982726451421450373538877513048126722237912427451268061141544075382875493830331716071851135222615703352329691857240807343187558215405357463884627877346474924586145280129861649807208820041319227935886356156336149286107684285329820730255004694030944188922591897262406490369719326395827453394958675305839557904724275352863379466410634994686186485885183517942493929379241290370088449784372824779891390061791371119238001851195414288036681072489522512244249424013377503032588890648949671172437440424947112050826122076347383418947228936311997650786237626757796312881121483974711513081461455078046568496283390410779364405726906974636772795505329852458736564720390031468800952970178703865405097449547531958933789988090351008155497038075831508982014454813539984159666001949403869888111200492251404326455204489530336489567446900417113622088293165603481419300770828064397154610628747577113717166018505946233012843685726791291697124281428615537160857982848932292994930897675008157855709590133188601397912277177273303003504572188036399560947233535990742869751904133360539630476742291691512954681430875602089094063787175962236793092191347749632215244882926398424263653759935732237719550710876317879808821542717839142191727968877838228968090208343178929409118728023426309885713173190244178720341230240575071171612095364791714759588051402707187316120100661637787445800546861916634759439111389946723964857396015054737185485809321960857026898391696495396503514814394343309769842354420716417961877968471366433510976712317751588148900547952235126752868008169249904891983146475838972854390297045642013312267315736862864998703372843686159564246694928882878000276393519367467090712634313961499793071317051457109128803274263063706075185357819731452703267837280894672920127932415777073039582413116483524716577376323302476648070050186115954624966935170337917506248537117859516559664810599257738526090602908690442451100885178042600589120601080904239516629068166305166250744211625116344110160995775285791877216628960398792886715609524663287110921550469283843045734051624351492670658179393976699332875062850330507036913237274558190922799072555850966878281038001454237388696841587141343342733946809915378893691434654164228391823234030499918266084094761050666598344714931290830299870235668693205886521350862086639113906181667486913112736955581884882985417471428300513158685083066517767605541577395426492810335938317925536005303474908724400934399766220463210242150088790095893080715116678543372469275182835331324773856888537228788850012071851034870513016307425898951200218151577732415707201366649697745196078999244116303551462985901341298795131218313172194877005526892794869344651617972648972676474587957325186378413327346895406433830441291208680434392552497894643454715356608132964122587228621671685626679216784451974058322750262462045107487624824227947585193113006039161886666710783941568925805260127329928690194104112948307710214686323678938947050273621145506135198995852374209932061605778414574201706713639344082654928104206157766685650639095388175572359672657954322945958914286252136644961163444662735239086518302594436668989624134498909513428403043103749971865423841847917848335212773167691461351132436101215945328938667701242483361877157090867250845843962976604105261460999096689370868803405244710985836005000483738860947252023544985590877854366349182678987993580961627928624213421367853256359596303317357214447341959734160346436583109813284028525338621991247153243296371397107459829933177876916940291232144841023565709258261584829307615374921541042314472949226885583634177685593974341649596155187803711138075504593642502828383347861686750223019281281521953442490099204815941472708439236977552135633274608585811820682372193151005023085588260258387337376515647094302280554332199078092527618200952807034799277083884542662632137485836870951518321015318875903625488151498587114067114504785427678845824220801168225454323713531895902513269478272237909196716139335465663266200854486862836702808488831151367990629057062124040177646859350941711836656129082783460472683870807194817269111326453008128977631240798713354821226687718140241819162542940291106463676324154187480634747169371329715370778582555190111444463016310921216798065599063639481440049871047919472633478511880138097729100277240731345827075691376010620813652089654942463630102057997304943895380560655435902053486978786190350536976667734435898816901645065841860966086386412471688011382238789598089977089440827811793147481743093647754002066629402112026736985682143786326542328039431485288182959321528993751705577393685718242628328511312565922838565036365029351779674747390613826009016102494600786128098051029952740354832836729801172434015699125704137740293193418660059623623475420258562285104936663720892290255549450649541154759918673963460607050881580629870326366807136489605261462068835951394011655238582783419578804003216911751778722216586802409518951767677962714792490609090088667086463889726433239981057005684688010980475533406747335954676180342268059063610127997427014377030235911058081836624277241973568568594600859824339106653540600736209227001457823087493364021529226221516934399659545138848422051132633222680987350423799926102405655440851960459513296149154191121187240510490660167347746144808807875920924952775101751586195122507328903974971244353661092076277731930228315633467059220273129199839766011309750941416244363544001451593794932368390455111514823404113525383979341018256160885344281550946103218226606330223448659405997782281827526394947376844377605205702303601976699295050512825079838177464764433722831294599086380946112178360931740009972887231303292688646045755571001458022566619882929372022868248136066599286738021381249894556755138362481467807457955668260806168801130764139533463055980107764165760776103260584285485146600041700012616734638346334234357938544030017870287985789534157138066431449877797152795196120626090111768399455474261833092601322172232011777649362709825815646681127574954449526306413290937210390038751561475454166988281280318388552906656695666855435804395110295148380568290663125928022522413115978211321428514999663175540472339679916011258869350722645105380247205896458217846352793805920711013353465917860027106768731106403225894985695158978339476680755502197474638402952251391097310074825951729768869540651718912020408822011420873963564806231806637443541668797756870397888144610100464595730381483020515842268233441138224669092168004747826459854913450131654696849137907962545798604284790415687607955069128145257185923575247743694979527290049315048682298850399929142811846719096181778970718199647568256867556781594763182443804662566754961078812636760591308493414618196811934938497202300743972752337972272462978847692356670631063656748770963386058189877552711919178739971445871083745825684775393351346645714967397772784074089640051962632588411120979577735795357583913274297793522747977502092762469477643576872096609554050367463060637000136863684382431267938966128734912458018144190532507213037281218168306583207292410233422352156032328456005254345701606966467684481277193083560654611055941643828968148897150148697312699720367757786897765533946728732122864468828507735821990830390282442424926499371889288013551626948771558138708663886371821015597284703190904151436452303768450133510699709944769606173955147774636359681379433003577648948739627231291864616726138645981028932469172066814966057051455600027533630726453905146023159880953313986409443820240039383661132949652384151164153862019468557724560925404152611151167873800689129256815348191520327266870846332386686620236909578426232331941313751805263019058786485016441137207093501082895216481221462648518222150265831350215855754556872208755221557667522657653800532529475741503584591158575857541234857038963927588311553170470123292218652312933186832575563799664986808217658402605306947824522594359246684175280927718204186486753330550218799902396450626905692203296306946096401103244982278023472679459381877731652579110853119560650326921566239470516810445379368228461236249237394916011024425091057406538708225235661789764161433468893308605923602437652677342192399546082642987428476125318053183999610935100344235530363167073418735221125601932384906783977810739512226629393705923468969917744024954274785425161117768328646309048097859079876343201435633662876449190639891739833034717585855386119083196711092342344693439002281587993403815963156905894595412302507125143630992998052433267504864201216216172874179794866947025801765220256373696809993560774884119401495490733045403104249890697788790108957341495102897293647718684703087410354911129461316984490775556726017722405064396961542759405786844523588355079778402690747586745993014573810823080974632379892785653160435069491799876505942153998165768901034922896845728396418607273654186429556110094296133889232506806758877875014200125504184537571896439213044809425146582886783701411925897888564304197933758083517393992893051240566981132690287595563424775541287265060761389702403525104253925560067390773405603060184977954976521957725786359449248994049261287058252095197389746752923115069553101521395187029598922376917878952157520496747095866805982350821511142337428000440437302740200625537349223897666706755239081588284244269517219836526421282324607165978972462258870651646970534197046425943608014468554203980556848138479075870450717459142290423703775263617741871510730201194923795197779683445811985696278950171308815084069460695051231276126349202348501227405693501098132870427471824764514150205828633305085290453817248658183367124971190567952261158484160271299206434852635080525112196692894856022410628382100181184122044536831243775241439861498648812619628086205861169536269135150644852232788036055246179820058199473730274985713847218012191619415475412468327439092368504233485405084178352242271277209460975831821512525144260982504161569811363583957469827533645366973596067864564949427858364023778801882714533846014842424117709355718583710928240609798181107042233924466461356636323283556454314828968202516730895210720760188663430208485627423473150967179245051076029361520960069759646897177047753597654764477092562105183962193236346378328770971211606789717238574502912437640999131060141463368756308022211921820294055947824688855767168846079247242725487105706002825908208673944792136466625752015528582679069911643336311923617216449022317754548331300360452155343349972106730782695632117274221439745164849918400916901306430193226611765813789846617923136281758077678331182760869138236120677865608667273877662025669249486273576424403435195474372040372778662847179687684445056009039917851036662836712843741804825783525098382962494029924639498786623365288851174948879152473052490178090600449694527589079579695558345148366475158886656453125070084656790923937671698134802301212585942521312789813150624302678474254244293645951331498498789706799541061497352279547316082947783916607829875470639091827494882350664321711868903448962625477480824340821147718484182274427908129420147980008736718794120077562700604038868451009462630320089035413910129337659207426426543586772194230225241576334368945281830971776556540668378379339054045884493071326582516567738558188106003378174209457844823894871378435075466487745454467111497517646766227300084866748832262116262182757855488016266310843608359155634198522405072990684484534075154749601871643203295266861643511294986336846982596016890200929112209172787101584188868559163125356381388357894907489775072341508618270274096646796245168416554082272558711562932698778578253128598661705450315111313170542648702802444440708966321594299475237380858779091748382917606597508843230196439395309781856596992573110897635624473481100142955085179396244989073468423309362634298556226780667132004111162461219979946817988143545615797108406978121661938690104304759727222643846259314475124516511952847912540715074331623354938679820212083594596275511786134161633323463992886988328669032258334272076549725529236111600150564874530380780296947812179541759149719368710088857940481251671845462930580429786573531168782388115792087257427676179381538919405889084142824222095602948285523910750808992865585805918457299034920474375051768879827253427454765578049308926047627882137779591474715383473811565827575869733684251001700585275717599893105650859522813490542219015282080213168003879430811943442121716033482085661669724684729306213462271366413737677725028126542312606509032066850312079448303902208402102296177166753817297394682991747317738793161115343083034234082371793522842151949710517079068668403553159162343736594724215187173765611605403596512207358553687263675139204488073923276545952590296604524476954713906294859108949911597800395510825713762237309518781510209826001937983602184110216434792864426797069237188163641471613822015522024111067098214810971343928212296215983055152873151569952491586777230401929610961225679341581482262375311644206271331519419397009081697497682618208132082645598216379862599100410766679567994270822692021839018022512206611290249769430033097933397551209853612691951044985744750668907007020996536127079459052953266539593916136995108661046155257435050394378066572575222023374514966931575789741101595271520626128969452709610113609644701249164833659952631088141397565289053589405881620134759025025290884822066259131291647383075646554713205171303290757493493079955331426034547743025492254852172572577642498840081835205222150648053532658325992480885670265571353988061150129999989260725726126048678579946910388416210232462736645299646698887633158066995369080816496713639553266923334748854727046662790867939317349304673222577109103818454504291681227612801643787533796491306812186825826614420133419711929175225208797244685612628044484466635078337771832374761497591053645738470203341592918400958580292920346326671181151466915437948944316540286538803902555843825873009055192274354414475697167219899878262449564786417877143666381831388355341055818242356487549047367978749062450476434512332014347640729515580219126715155145304527976612361123598689177916694201513294554640696307234528420246604648713404814885356427552983249248294314301542144627045275418628335189916245931804325978256412038754683782873377236904618172428233417660276661426154466805527201591139868910662324232673214159093404858029763222967214241776320976020762154359206136275576587010414000979985703448244973649073682821930228405577775340063428177738031472535666562203430129605402333896994519214898274480339368407249900197529047460760654564318154208094401713380365579280183802500612580005816813881586042765176142424346478623997063458377878973209281413921467379576522495655513778983754729177314666094382371519744860656586895157833720840472316532973639298205509665457240676377698937463530159078705454624523613456051390293920178329267741043012796934140874606888620594368058109088399719473927177276708889021724546565159917404054617618418965384683364492538899884142574545830477296240869279448094678391679987959412053066359185591633129359482558795254000587878028119960770333076323673071113056257330398429158355251266074914962921360488745787322416108184539295760822256709196696577728883802687487771225680355938546082415717106199710522051371477774983466437797505586701374406113338956541131525933082150836553758888766411450688200113634577096496414616727415610835635032672583671656950036307826391464141199591468645563043397999983682713452577574625250219723541918422210201529523558385487128306528026048321516043122803504822310682672645454589114002942942575233393899090871719009504607724559886923006429439041292551930826415692694506616173038708601880957332638005902391781598301293170024037011734574877058696818024193709376705933469745134261960753650164539835980034037462270923067497645951353312650928335754860762370314651811626848173069796073076921706771635486184796237155691008154131625395207129041209060748961939240079647434532451354279187092683173436572676036793228431963242339195640744926582278824684658669930091033005991222017119206596646150308536359684355268809218823369717078832595578926025761030902147937918814342596481810743402752116709719815928512003432918404905746372614089772665696756990826240450958100973391177997197830919293284204894731667830852217434769432807889827965575365119993586784678442329651226586689973329796033361564840855499537972116859008304949375562448724448317596253467720066627301003597893460114358030285583330225083484047998370445413103143010928505508610157197332425709907031785145641838637924637992812361017759874411251050872250182492753373765259390407369143658195577234162388909890805394715310882564391258884850892317314599159468278187590700653921794213257007293140247412519852435714735628888986133196364435950726129341553660102183877761242105499789297417693314286784409417367628980655661135533088550360658937060626159174813370073939775378642639778922456613218671127939190878888455245760593584551841095756234500890815370592294436621097487295593809975463238840710434149758337654909748624593121368532104740859985329156365200696339133180011763335123185094314719297603811614342027176288458006140913259259046342494707408405566537266459851674886332351744424816249433255914191774881041917668944242173476903481216920038107548320317086405220029983103086653089482852833150007023016151117931058708016705513440642076476004183494021719383510701707833030244197006979669910334976984251385908983902694563938295143040243965910857028590309560572298041097913523791350280116342093517235578248763507979848892391212401046504914707319552531853459445464599948139144652197189144368650621744147086503980467458544341829621992388044466768778061027636462379510129360077186301889009312431463331882244998193526075072832162379567477795121990454232735867769649471720150825549140826068164587153026020140636394435339628032954401063269433831834001845446801849852917318815317767498397655738387499437479395595013966155393317810391632998982162563120931455161111135200286533742036258980344842777740222987647593475142371188178029321881002073775158290314414258087531448474177841499123837924372768034589019754226655047393036040622649553249173460807277624041644324964000728433992294804917964770289517159552279549332425902759769175127999047153812798503886805417871921076101176982326817999787880934994991441116206681147583277740114029486439844091749968826015855842782180372646103666964066397837801180790113625146945246557503526214307360857997716336332787338114192830667777803432606324323374740861676533526332786421483937000423459744869669385594947751310743546335520587257021571891775541613686986273759507337966985918792112845450369219904096257877945901198731369838663980442596711023566968047101128286804321790562779370547849160036994065213239372258409533059454539769304496243592143624199934209258730576477536497184386410120307269938795141137097129366124396567840582808708889208913811903460294254511393417847996126890408219388750042103118178381701919029667106396843404943385331499408618195709401831504654607160880686443739686594128894726718066060000055252608864331857917394319791114814476784429913516516626959430084196444958106656924806348418939509002337638721932341582622024732552937100706861613793996636104669105877486519480586258332612591815417617281782923846643614807156044175182846244923555456452458887915304758246227776487100412939117985857691488406363741388292147757437877956489448066228170341498044911688477870621180152160403324947607734319643876201502996378076099906789017560502230027233148063653515835563876176881068962161972482374800533975853930288874729806374012169992853282606442647651803808002887344158164416167950983215444296962634198201867523122889951393560525724319173672418378076452158977992068042845585679993275419242162796084075297101524387554549024512215624921663119305241148460581129941213753191958379447070779186560077399482730061113986060436319551105209916737701621093927018829498958417444309369513785461731815974957052808904178618423113682811444569307140328894244566424642618924709261187417141487917222443986241127294455205404808860547808564392145014707526237248729623700251827849835938735499995469458075418496106852515543394891497546976167504521155547268434628338457408204021727998186494085210114365085822814008323724707775668726066777318145282983185532393365419529438106921896102549723218136970605695392745875162509396599749118723300919028949131446487670688165038959481197000281225061522169774252612998342062524133371985060767069586838865790884157495011726339587894887239203996085471467572005844641865334717828305342422956046011744017821800794906185841027213105960684085793200704231320355012196096121447817406967362167715967646596789415230216038033924661880894511904622103640926817075519205980375292451420665502546662499115971065230082801298614500478572488236982010304934493631262968154290686573619901299927493923460770455545035229266266641955520070550751691895810466300993128900809733525235284280852328292070832576749416214822665544423544567214977626166039533155056105284386077481365048809316291396183695555636158310512657021041055933599870466083355216233070320735178629953948663536999838200336008196866608218688394739524895221552173517514350296412435664127010180071119216955205074001457650898224018028186539915112119321050403592717570787149594400336093263981048714151175843398861132496513025460885665521344118131077126885362766392658665490827775034885487316321128688026334804762755155241891856107569897433584387771386870443022934413008028715133846571743517604403395442006534795909476859616250864431388471690711076656436435467552114832049187517898879554013197697423311195751303605219862369789498930517556110085060987502168907217464168336623967031594133818410255108217349255188658617776854599711956136089057118578249009806637947239319981176630862463555507770341601559676042588508687066347763890361783897271479245108956028930893086130264138136748379098759951301597358267996722077650030220941605719406353982443737962786338671754036374625441859075850084686468889539017751560626602837955296779378349560298102524580199661162239792174844086861923940015560333188696432031469214190982857739307129159992617699812982486075589645712870596816704748582602199649641240663570151236418834480184612409471734444947113875419735009740281976434876289634523521856278573104023873228993839864363777315941360180261883771732504699658459955642364222699649488012177127612743090263509953233216552656257030116281503691035177167955609641048983089677982115474723199281583266898407813964587276874945827679204573280184010133802383510086039655189103055835182868528259149583315024665870653360373446341866703306781845052978921333139314307659307785233599634539001657908022136977751031319776707451799673520736356471338710502617550572950708437926791592795694977318703088123782838751218022741739519663715314459986671289520065434112833908325395830457822696778349576359404739874935106907964472444421292179471211418441478379092018440718691992040742132461964976428940056100664076890877452032281046790845655449389189408187924649963781290472728920605308915145168927653203924445465758127009962549602677036156596438331585055061858354432330895972720219877258639647188406113730488413641664375523062590643094113679526980779577556306807865577217751924755076902158096492428126638669102109792099506552374257608121287037134319941405562764136263745340486624316606059388094515316974062302460250305908450508919936411967986258379314834386712330666907160320522275988142771934661356015663131914824185766141662990901871740809890036281747418325508524552172023044054228854782723169743144353858332188861198694898064703795865245062814736590817497917605287303271871616631776894030130349384544621888321164293281068631870966259149839515415195286048107313869528872418420681092998531863169421359975174382931197288336215202344776146762567097980645758881028568602717240004104235522089291353403465952413274586882209638779760458824737335018272539766761538105564210386126079764593698716941923335456846191540275244163269771961161248251245014572428022474711475106037341318741178208711644584846772086409282754450051934330813786956286255677230608964650826137534626001693680483611366257539135348970320780189869337981588953881694543974695652368947446511054263509214701396051146779125725808056274746011223574498450142967872689383479427633512286933537465188661135242029299420589997182252463448268501942305857756190956512520965814485815780382888927628474081863200938641599147741111211081669021190544632334700173818966762167495459810625811120676092170462501112190379686637054180797580942956057827270073866394938451995870819524570085253435286911803793705845565398649960441442393405075588325155434701722271759790382351823022549669779905013265157478916973262187306580878470340926095929441663655048929695346992760702933780826800974662999934378145794014386351193895964763537436325838469847213606737489271282864500589119147413202949346761516210361381126573203201805280646754292890122506177218727962679172912164732782059340614886511651340538182095025292266715728163985758681361081740749864454014807996042980587289169576714683256111683951515931665775759647463756766043574314840310748952083082418111522363385540854640582746281539412446336095003071402847842606110831939868534155283099672074898097775596408542372139154607851364139383372076240678958660648980299947139811712532979964828527687071324061712486253349385715749095844571887589179305055110871382011596404204954839631691591242887638629841151431520163124976457708385824592111095416130509194189796546555028672302368475587914275122721348412354892207194402526128913260850145961294127034321699334982777375548214946138656725540510716940423913387532905558680423085649361400568048587110179097633975782076348681762319689755470409144000131944067510511108250725488483720217721695032088107795252503828960708283216051353080007300535939659567422495613987254736825591771042175407014170657546815823546628405824913149262642882219814134948757210954258947483908297279418930176481591538895506439281055311192408428351920715733666606823526473520428630820631100089124198182169651527887089110264366529766091316187165425129656570733736220277605722509309850335243015455936764085667785822923068827856270278797564968245786983592968850676571408668264600057315081250383517281372765316287062734324023247848486624981412540403185215702315112230501776021472304103001976918985878450350692535151592316206809671103140752733740607861477601668582410849465414904435013981238920943435304359828874822445333652120068536718068143813236579502154210069140173234442533856461521551968259519865086926370728639368135001941731143668791574689756828709690019628752645702990793689626525325307459932413837902729296460512804112150776315024323817548534521358424511536682194097535092092200313918602175806062530727937575571283389568299000615575246167890946648769520956919328570637972252148940224384370809699586560017198910386811023090759923616084575482950560611311654363523294441174727375502782100438517125663488316950470223130334428469303120242809531732621089949465587330233131408439190102276496577984808251390421139296691138709743246603013840695532797388865677138459481921221073590640373025196260362324799747406330832343402136534591731413569221783716417372690351972869749066801110592736671063396444922525457138240141253931797351818481647080736266039911722667547251676210322934030534162270928674771814111550885096945712853971333052306536733909775117505396239593605046196984482918487211771530195353194174700922930361631589511589536584662427143784087629563259708426606028354079264779594540752083488382061533440726682746850940559591049475255289506304970626219314668254558572634778233219072802236370247922575175389681112631078355122165604110233885820083552671160050453771233323565798600814137376031723089963718167661853851991184628747216493478247928932915009062827099128569659505282205504295103806562611770075042040834891667892670854850216693763532061337136791202231456395785171422287196969105787014534381813521410924718762485677423548199153218016088870943454167781735181127275301905084671639247430094940263970064156933061696290070167705274161018915481961520183489039576868067516535909320401924514560723754960071604052745463074293165597488016034411174139174220327955859165783105687486619166590426218030877439006016875284900008109735151816335171595581129567370004137306581056415163458816145165776499010750675263872434865409382997122534463877916695379168023670874121710955150969441026543097492173152424458573009541366561188617266632928333379324315689422065147295675879113137401789677188451604670084350105272352541690605985967507556704849959264202346932138554049717617586494910565963129057511644312670849772269532345424801763821059437073603964793697758284344972740961071577155126068747359831271253136786425928907649475734222343633132490005648764671096413005655889134727553632497114268733070893895635986486556065053477459317562835863794560092502815817267487289233704228255962832408797600252644975061058449238207474265209658881922657930972920054141757113992749271896443069192605639727693976397022332052863425943219649989542112758599508302083507384822671427226962487950511792468313768181842843786804652475079838533212590294805358274483880605603062247127694630051263956003685711672493737521958085346048402147909330647865070776304370749000777480681079490105652271197479032632195957234891455472175295755504991258459737292627192954238195062457136288449388121648582738764690170753591238171709392996438576567564674807207888738800012389541156299880410550440916987304009439156091339892987300705053108884449253364449912265790002806212385886974801618727605865779821296084286007609789264229702500516556013739612318238135834600213850956594676524055505092499097454197702919378699066953597948550336636847960357506279765575154754915159625154196092967542678520182709825889086969578541318306533126490165514900179437903528848690164807600525833826046906016872431593168973545188592703566987912659664051304800753942165094085225966640296051988953456089900372011127681588464438295981356677201719675639152374549791802701940388619729656289507783802026214881796461973498812993669307594755329891166040549232200519389394554816910330983875603599385800959117842974145679394091967705525250255536137777892563698673780480022806133623678906467301703916288745317896765283216932120589322418529099900967179721725807980527280237883849807585365791704522303612711332721837875039345655076988683929606991413226908959124296784052824514771702504051493657069681704373244362973112720831135086720874459605114422732889125140107498947908507978583585537853545436096691835892766395785300751171049602104622541511109989269096223926342383389132517075978116795617379278153907237113757815313002640644722735971850515716414683620568773558856819930195876755456195231150554580788181525503125534474187867583332911046258145429434753544464301428382521044397775074559179301283962585544117072474921922905218179472444018017428789705487804755792198439072322989422624016276618907344637719105286299875529863807824894269358158016348529438693348021824712354173042603934264331066410525988982554702191532446072808898908301285336853341748117701378967320152565679307788479358903415463558782476330776887775635748824219692429641630398806682077435961170167968841038555148418117848185915086424780414887529003072556274359146233856459188896824960404872851424930090010740576481042656129288308832746952849637375303239282696541226609109722336287670499533214761208729001440276661925522427892889925819831399206525264399856888943818496515744098497952485742594001167777383804168670529649203873667519403902963555200838287390885112332726233774098076296705320179132723792209946116204349309639239566615127919292453557575868084166745492085118110964258896732936535266501136295896608375855341840815527587457863071732392994098907732537537432601821280232823470942613163783778790432259543357967526404442069060226793270472921745777833242386747082805074229710443156528732133644592266110715788296552062092266047521713280158693268290615519619550754332940653729959941271761984802313861686604970683960806472493804218953888572445706327235475621387904340351250777456114239357778413609605532258389195938357498429530162163957303664832003906257274806659545488133998696317245289541337921752371275841833602979136605341787583691124576615261515780097145404018278762012226282781511105124750904542016218198498233701652546647902725230840939530676608292889164385990873528738190256707801527923304411158737313078882193166640470881033293458542108568375361000090714330336138518082065254982920039946917437532633373566802814822125485489828117070856390719156444544840730919625218524277210714331310595369901346440064819220561749936923072793584152021008285561222379427172368970995463797369685075040426719078120743359535633376890993597087479276364925178230451660565439823677952890046268219390713823526762807566971205186332569792101075179507126410949396207653385699733802206255112027761584473986611869103009881237209469395519476290932363217363018575562892675869756215255181638390028933948862413938106068418619899841509626696090040886488738592533784142636878440089832443782881412549890959772140415761162695047094652102933215324958291835260107642212499939460067322893342425381093226428244710755134474138801600507366526755572935420026522755857982578326251129080121944438446546771725400154193842206210907766169545484392989562645743424649860158227120211051194624002624535563678924394669000115345185926307363648781536631657137033913556812838514491119524775271739653140571086732671546427900213296648787939918956692046882237444467583431094711569648702786562133345881905824912442401583894591021944401915387913972877463684956198702346771656338978721382162539275242555646827038998797211293170682771411701451714900548602723529040227017853135224136354848215569978629549042293989113473122555554225415948928328343647164410627026673272426236820023450069618450831323662400845491461505931569303403649697534571161982653176742172087208534666347389593119372626683306343091219906103843038647036356472156404027649709398209194420889996079034302429216547687504803420359358475213590961635056469272018496669963643879403622479644014336608733096543766532262534360252804893329133686261400011524931567897851264288523359766212144925510991628537115216098993904507692163046140195669884662188837875605805502620499528378503688388146999808480936728682109851962438066180524585127472296249604078958732998740534615339768164783101885023364710742659750378756001850362073941729364868255746604541589827335850523775106874829310537342474460941790481567436927153485354211753991286954113834866567469861359000896392399129175951299113697141629848920981921331218193004624893140321324511179493736489202171907131896521892778258077145391935409530820141571037550343161221221954261526780784899274344721309364116492194775913761808453056149355442510085080363375111109159452896200519873574969865586933224962083886659733534190223481436572929975472172726815540138639072087786987745130686743859782477879924683001639049850936751503892718224609576304600104333628732674759967250118212630950052283744909704785447281588578543725510073148719757616582668543881886512307870756513565923593381322177605331641707738212977123709818942896865357746111210766035225973413472261805144971321194519723383557809774656344941786133983573804990388515306674241264857661693215543853480919360771131139239009251270030595339724518582683620137629690436558377241531879307102849407595527209664107080331270962701472845565173086839470936911119738059370336492067655380251160757942148123881173554654011628285757098620730104168049246101727430873889582679914709306581138968226131448336854171294414266920030285874612953430175565878393424719858399581811496754857234610472238925437192253597709449246677658876402003059365102726879584146755170871070517011537327858518660593576344429156473042036884091388301286327959138622763962329344357186323153980818234029865445758962096538267512205445715959133116413836261737355764648938262949811347868079549073053352785137015923791733562946715760276251632883107619228044946135048976499033392046043883614505310284341553084570128328374592438226936663401545211478794237610062944357049615199635902690304980272295997388354303226564447218782970148601884984702194684945735815092792815510851883510086410252387771777240625131521450552083305126362896895341188408493914438393832424723410224047852245452888686635058564811598322936426804489330517897741425137571864992421380148798010526251797099566914431500855048936102321127365031539453234112443110926058943531417868791804352403221154003127359895185038964215952461424400811599651330530839161310747411567137905988699621936681750226422704495366068909934338177306365921425912803362788324802580023577390725316080584306434266488403124920825494378520286526797063402508021873019499551449944562392986423695795029278401426226063254540538657805301590757078327852400044181370457410536708147752710336138404202359760878725121262444923906763582053886360325176512163008943780142655038833477916102109610080701085438922005910551094010476868909670843285574967718855107246505651323924519505236688880279994281713880108124953275974953938341693604590905368915649700272259973866197616011470606510868660299962094788297487390203357099712461620188446159253815216572748231081086959368876486519285837049220607702460424725779932421399177751915575084594087001779373634105939212908167749133670387445770541572294626455453919560579066640845363777739994662658542446395720574179371569713418862450826567770948764894264361306354091835938810722892139447817729134592093579848998337872775027392071654301867446363788228063333121932648910009584616442734100255638195161698675052038512558806548937069182581811395613248096604993487142643189330634167792584908913833706961688946099465659864105437291023024340443087176795795886369912268262087707648562541300797993018581141701941083693895716543291968633889532230866056309631189689505723639828243106826995946622747858031566183166665758675007672188056985490717982545354707615964732520308129884949270774428618847533735136470402594903989794413461032704037777653589241718680695101522912440469940571721257197939913772359562192475889150131762832690619179700929821635710214415695938383135118277060921647902459374508259084081929868811401007734791195923981430736111754750377854384237724064960367775866571553194947989478533487573154618892274152836062429924441356987118309715868738512790633084763702733729386264406968775263134550476660188989550665645201392974071360810369736700473652604999565042966674496232371736741035536343199834799465099863386169829736005786147319019675076194672642412654207973423124223026561890740485183258911656081218483287453233279892804453234271327688822554147330386449791797469902668025920011168173798740535608930286360689812433611234672461805689323446745744374663738276556582233263398805296218629859120168870582863397375131881447244661139834206373697019684570247104130986188770815233745864079455789137989729732255474042741941231715373664066653174672657298052403924960069469782733172114692781270383942216014557639672086102518475977895025252444615245860888484401068088093825976396420072309714567147731905172910607701821101860669112563857667207964527948126299444449652018096608249665307482197984657985564450577017802392217928286747652361854335731671019746765874839137460283886478417447547222178822199138387540712180231456829700341330935846132387677702621574606293160087948638266968461774478998337119772718963936978211867147451209016833200285931619930784884712682989222286525671192642024460350481631316092441251126001314748852187159722783587169900670427289860464061079583268119658541693276355897028055368150474972426857567123747673371845406058699204982051558174662343222525512860816144630655967162067651414420098578193087206981004433176192128719653932983834850503969922947345695581754492127296743874266137959085413886364608920553513859918523487451368373566483900911076089855989887904863828488816591816855358802031107969700603729707400042227484319319161919163480095410520875402632915408709701896507603491247766021030799443394712379051721417271979891979829562671360443863977542344528361693370725257403993581601969642695876471391404172787935074186518568220619006016230634045389760235554645559758654386969672045470679947182055272876342315188284287943219902913175524815494967335360816621606952480047861762034046322493055254369573182425349088509786314839883033913648135110558430337227364483946401661658165486688274259942651715970263834411480210138643723437348283835231980099308917127519739151113790244666760039924893240924699105334724410985978261670439498134708862660920466829671281628715293995417983253085487848325831429166000970912048211612770227159619606256212130156691641105907439623365316377614253553228182575697996654958705517686394630404740274880574895645065313578481708885271900473517804032403829125716442372600548408644669200648877437238034466652161824387654453716293336183748023609375419762417144388855631159047963941387603803763897191134252543806000421712393879308828758182791410875395623672343769975457612779136120052550011464899275928072428790876987944552814060519479657208317847829817894046995585156061969847067542717027208251303075480809472534538792355976850989998191230412864681346917426798350261668421897712725526666446863611446937605586348437490598554211293009523007301551712437265820616396244430595009251038714442508823207419567360449745641083966068571617578520386485093691429860939277535700083654448254711888767739229363317168438651331949676445314832463793875556467198151027908089019796927362915716934213367449325510760380417539283684527292810984125585629852322986418950460323719999838520335017837820597375129451353098301964651520456461355162514302680225693215736085267682752852172319940424315109419458662637300566720617480428668564532204805378510408511731686929650284382479843964481325028980329176002041400822141912215528466688370634140720753908366128800445993621212974976169777193458092915609505972224721245874941135279034924960881829115102504447166935952779100489730924953388940225375908306502960483079901903927720333359984146454010721354688577914100056930468061763542815062488655237303753758460294770787335636419158548274039449938005277383872109475293866016355299911605509376758479995489329011556177939988682314310105775833223799761432414272202225395938202567387673522126881500605870996129911045985139433379817838326727718040772039645291157050308039828972199008934408534066985693240607167293955635502822366148175574762125891442980193520421044263875810878356564922612521684820013100100419819669063703182591286530741012521282103972175997521338708545683250082915742381232262290802644984845680000038383148332799730258285413213533363157939419496450737108485699120849820140101915541780970974804011206186765481474158155090969616625065519577990537618976162435369310444281030517373396103673048764125869048055054972769465087535118098345207823020668900901707237521560852695171835458277244816164454832154772685261052120063511054098455374575112829128085658602272080182582947236601488252154669452331376703089150215170462507974361518037470088910972340742978247262000620387143149572221026243207778788808748414687733029020886898848637953505872189556025981229120151276573211354567100453307846280684215233490612239748650280989583845703061149605303802966069400266695592882799654509987336742865007830627747931798170462258139622502088851202682668388887221084584242902756632219867587483646219317111670525895397178530122479651755127302497011179386355831518924624452881155954643806863591375533941410898194535637703313436310681703804059850343740911663295540933277149794583542741875543705600857047779275763667855367963701135344414659720282797134984297529738839494851719748255297928629403364352388640778883653322841433077909253249349107289197776032656761304690795835178709546301985650390539182510991486302937921348307743819797189837233581956777278710862564873629521580307503064917643123871813336816102379472634678394372554255032994568596202426923697710740503135392234188739553156279340498967691837165069882810550869109631610968883148160970429878961842861204975074265109085144914369526759925161529416399035064106845771683863421463893278612313681069175919625891191565319954733157899098654759025999687281165968993284536526094616167510887568039633303505075398963294466872834422727836562113138732363749744402810267904026382981225612326818737370459413513190083270246790697163873584216861367554476444239625047699013720431454554351024025624412856477077039681279668235058501428178936127444625551423172148512691333916664721897238206255884858158306944657993307712738533805633704052765021661378533573695731222349084068484128682813234346309724100403113726075390275128349539454757736862362864850780323690338937383015859301077341086900870567086711986130199534106664044117643708512218538944234076699975727471613793034496941248133709186098010236578499912876230604038420354234764055250744449439140194915940090969191184635092064386636717182725139407169631365931310178473352830263350389304615391288177067053242609933101748131306264362175331038212956023947196616398212760950372668001516500805591375353904875582252015286897339296519972351280568980299470115435690494685033766450696802746332043642654689577767594357344817877128134912810515073805200637052381113480359898430699734496282123919936662397194563053731635361573703105149118265252596653586281227599141473409270244942028893040239325316354118687268468550796664527243099234493791650932656171232109082844023066200633006992808931551655739837457012283977688782186758288017707547816286437822519041805175848341485233113824719801711111221956551744949006642614470614923387230758373846496492801012533675684583866708848465352673328950527530372998134336982293608902825594656921986772578734340854824243730794475648322020322708574399035800592715710270411288895279754953201483823048960279017303545099561041667286582243541648091838412995898210800736583719795008286186863642418761138281626778499664195681912503129992786366019275054852250591671977937971320075126645221641013065035445451921884060217775074966354317248121226308297066962976482942127192647510234712206348374809683831193490599635192166999418251255317058692935548643801649537728425966178851680560196016480257978946785131153171326220313820465989011127761424032468008326298872940225827561147720050259561711624843718813265003247231456587762617021788449791647663217911397671533823796275765064363618655112086293020766668911404306460370259814826647373613183465232778051161413394174631734520674072039848243028454176548491650270329118965299648844718035707356092927350384000752678696376138776784136222789340366076185020546700150703021121273474207477975478948730809665314788642643669063483346321332019719298719498648655387307819134243767126384323768989583044099510619280446079214213528712319268254307580181251791226879394494780813158336284876376189631003373755501293708646338341181494740722961080636254362483507000680200460291474869909464558158727061746765610823572205969156372527052405906096136287980950292548681345108373532228326443381406535239239443308890884382181707888388837347711176409510257184500518552325940526009841047583087338000532220303436303424562336148926228823101205904841667391557470619405645267025764054829815989822693058943732146624833383479436802699113240965830241263961805167856526122294899433173495485251276067119688881571416833294816282704954007325761101198943653472307800362944143699527224272891164019405824543731883969882190404058002249067856801963418222784115630696756825521422450829865845110983851469329259094971911175648014480826040230017590277690670677139694685997564613707492178830746842719182391552192997965317146459359166167421894143359458065351091980072418281762447433666651180896765114928005632311700920523422954075453061558389003501457414803732352699656055890086097550991279937665300821383391441986526192328530504104967267204787286273310964693335149365111584145563315453232727504240872334099029412042375223123140036493666587401582547601651753748662080468026810289515535496033215674617194011714858527555919326397349757630834092579706395498395251676742260212613019501179522239207021686608593597374941260717985127547333609442726274601818106405262506170900222669912838873866069839647442085148096199137509564737020924448329031302932894379908032459944846004446260547747279228056477152133063805507368122495425264438407454607179397505457738622863784996592864003947710158714887290533948079476734575506527304416603309863735764320311414267954943178586338454203118498040876330213056486427153651271936302060304154961198632619695865219318355368901059798023881127345144948445933111944774846902448297551362452078171141968735315878418038355336577928585091402148507943078863699108071741126615553454456439998454773157951716245442809980910312698692398134981664249962327344168525291548836408865470961963501764637056943141218276695127850914373015903697418499211050058095011541561700180906395328527040066816679826934480274478794611054988766543497580634302156840569211221247185963187747047448701870782650453006523303281177873539933355413476867802415134962383197336300077238953281901551835885481257571650999674150388756842375582068776375416189570960839316511230748125574425312694147621484848465925955400560151607673974170213416615665909815557619019920728214775502614906206482627707791089785003893794982333548015518959708827450785732836840470867873386092935404446466907799863451161561130660057704293318470924081632994733541128862662782774132352557855307101811707391732183353286468014363492116846432555860253066445980723269648393144646500042703308268406331598160338328345845479099648997276658787724940414330082350349366550181459793499376999686545346825685865948431443527933738313345584961550009817955075305686109959578180880996058892230898776270469493661864985592859648159769511436092839733075851423107110341341097018242355952955495837191909025396678644265129973967969034877694334014204920213661502583451121099322132686031380994730154385424943789486465088585962771082279969266295004699379401480663645669785264235714086450834974076245821213989043135536014537458696574984414722269727576661246014997629165929795437246164843629632138811717520715446905535810688857020186224772460517451382000349839731871173319835504109339830206219791071288720265024615545786553760228210497669097114904333428227111419653709685403451102143600627435711361208414694813484512764760297454421736219576343880898119648752455799231935418287011930778556698279623542566039016020165911055650676750532766659197373694873750437744310921692222105238649907240301781625269803273850685469784741530671365787183010627942117459826374131664971338071259105774055464289581181334692311285109883124566320033762706054407585504269308803427632658628847394114134230332052345876401056893104007375537451120454854710297188725796520443461019048523489406837794477744949033431392923848352280777715467195670424386966321610603891665114496883529313974087314511616057755801811809456789091137469957962631064752573974020745801006554936537480261437066579794685662652343250664866455779626087599369929367619967822285489681280480333297256975532743469408159339403402727537137141287896482290517192824013347262900826018516660393911956698559366761591634383791750499575432095509056345063590750605781552634595417883046541004369723377157912204464980224575567557480241211051950509727293270119338250349338223254972086761511155384577457561995704953295567347981719531644393098757961033688683862054306109315497025423380648767184461566944602363856127638922482395795561813636310883752748230634266851480615676302996785869959084076068005049224067755763302053850622534579934025882231168052615501859558789083250313592260895910425024674564492156492913669263687615769615816326338791483310266387129854123056987978339023304924442439286645586952487414077719266090342732565588704150472347323010441472209959850608471406677847889484943187886826203988465284581286873855058954926131983607857007240401774783024690751099354901709856849477644015471003261914829115622098694407270268043110401951588433548331125918769331384756382831246484314428030954984692687415288943949673458679402152938302985302464128766258438152860177469680452213748015278884912039937652006283721732628232802587121409938590294476775782906196678625278216679822687886346294443470117328335397049921637500234686874393551880579435074661170777400435761221267422066687861782277229037963151300332685347239570980563768185009519685659695991338251345633847594136273222018493200442367394705456984591934925608190827416061864679300747609236580610863597941973329239247529524810122945200094281010250740424187877698052163702561014119727718904786056770164553165268105831851944444488698540307385487116524956318252798428216135654863220919309089173387145857773768027762785101093874993661959121280358754431587289594245782556995288479488891824271031171881677884619299120621527338465327884278225235559840713602971248429091087959324146342820424145953945284069065598434069206395163048384701783364084181000602290366394610177222607429483708847251704323516333266986582134702663535084248398747660622026487492725532541710168362002936334303964315273230495374328066336443575508419518755844067072405436827681977170990082037257395530139455558936050479714668343623325085077235405196142695743637779610898295836637571892531965715109600605342352441454150681349090122726921779437223164564047595365863637388031395488991289957609270499131710356162219363340003090803006226503006044848294035771865888856111529709969639756018077030788507926646068635795816139418067905469725600985179855200557299691851040066633803940271939677052479026070760048587724333286164785888560079330816629524387077679459146687112624315479111943164086733355128844820084681265797392835739477307166192555591865822029894592576789128553902974179951660393903786822166673457940408202328996879886664257555093233983742976755332292750633281010494049205567880842429572622594092927271675165138104008356317596881487471904344166650721858109687169126070335339597568730512780638719042849400113944289488534913241236008850875255492031289376050059191925187060813676470188566702845060806671890625201056497678114660042079897679734281803885992698773133123655509721669403310997392348536311293980742103035208573235222524738693644998638452743482699852007820390143580361814629894338091042556541602404440007629541233928709748350536451331756560040901117216855339534336311912040604862741266202054148466010582249242430555129022267907443178690793419174546284750530922377092703669463832381901297697520309084428647839745132307365861111070354002752646234125144184021200703249149186874964542467903223445015294619540164756587093350187443807725232993800954256656969678547691707986424068648580195912591798316023391851411069309628783716985108640724336954247041188819845106374138357526327866476572998920823257527523360115806755625553140738054108695684832331979325637992503311711430281301450876680733804241018078329671724289307295492216696874474397714571228880264433607398592223603418138993284822617518378896376228792733024252041927349100303582971183208164966177875201963070334501260767191930405475151763535401452381961240433871223906548492112544285212739724385331088137922983034048670310372377371626111030686948905644185456720686944044591171266976471556752143511766830817400202901923599258097314952002686095828458872702784354757447599788775707128758272164616497710512682652472188265695062690860325696537929764993386489775280209019678761082030162947550604650881037309546653571002960881670092919970677219120185165685839606272946771595686698482404186350052742629531592596015194026109793386200444783885488114245203283980541673965159779631130170026118285081830774355427531310123993119384447301063389816689459499328799442388162942340066506328552997982153636051590012511308286602479262267476709309390333381934551388754675070667355129545402201709938697783757334604300098735255235997768388997632719472400212460226163776352253922806911262262450391021536323228566293435384492772412294757670695966827927435051508943880678863273838099818117340883816433329509089236926808192555883174550715784655468339318369457528566851858594439560863935090500316085317756956504170937499251010441339856821840657136494363887949315992108356895507730691733866303598520594768403373933179426240392734724517561199568164654558080323349608348183409901849365379566572334527632133172932245383426698583611355797771620208221207765744655131437172660032447838966654406450521987287446869277768263971844039467860263903802110301806051689424712663996530056876079163060898829322952102426576838170897817289838119533129756674776960235107747633950232244116271654255371679854457617658897297601935587062350647955276511415051522262746340509701672422263208848958088666946145762790139074207640277235060550951475790893351589465462971768770416554585493726935383069018859535963160723376100245040367502759546098838727484507782263374669116662130510286646585673398695760720405245602693433619442851457770515196237131759575170834082852450338133404885677904930040851773551364108053253180342417862304145588823891818666151734684402402495662174297560795233867468312982621259918176253855439157191705653184533558761654239042185896837257996900364926220333997845575421201144626855058776848519544660928410696255896420520169748531249645657607716013601909532286093837347301437042488117503955767518072452555456876045632338051663787582905771873142178126497181579163541610230073500489964717437298303330404758361114705319223771649579874880388321188510776708416668546787839440108080974241665639654852542587317455573591322303312485525252461241205344396645396717881561639051773693931278314096810750414784266608198280789055631851657504679337922723247892231187868953576489304720153279089388001212432415503112040839193057202120078726765869839024643381289314546562589587363493781687051629553235738781076564877116614493060095743992656650222260044313067658079198347194455825991374618848934338641168380731565634269615248785440590974170429051007376626565176075381492898923226211582378302697563028416225603239475604641953384633452244191811879095338105438561857576248873132575083963382797751485088844240042697365032572473410669038059679594217706869571094055305213641583460196245815368505748844581294301522589590522913241380759396362020326135720257651175009495399291705809576633154855010201986380869681662850384870030301527499839108350691700293296392407266112426290026685148239218526416426209451561243361607328677546907753020943810664841405533150986434413493927584705843035450493103289861303904799222308717473156399032919288622161998596406663314698073043024499794298703195323698849357283430884421142577056999952647273842979421696848856575627848136260921150056724939966555160729321048158421183038608018188608717977996948356031856888782375572184891693642159501640733790523736027568011092302875812102535915209143219516555574434663902526946242419456788099917868577019305149524982818170733926298312147188679402573596010498134263853043929974624830191314475472874651266313239234281761916353867429876122552134144654990336045247461357709541650556488881056464511536798278464851909408771433930554975476934997359297665981808875339536616473678980991919342168024668679892614246600331485271541343105494984428381815872350807909324181040280237657104347679896219271696273534851104104488892182568301049174871893357046002698813014182196476201218709907941078413696771502820725868054941999498443681883342153416557037196868161836757522279645840239986810202620107192415463356410669671703817556762502609504704209272031035139191493710578848058262414893086863376301388271759798643421689665430207405582336662770797141679531364276208990026431463678566814867241647734126790186743835325168011833582656975774762756810942491147960936981726727018994436440044262410423561977498139797584075209926938061822820793594841280561724225137479014099344090630695319786431235460592411432608657451992460598253735039927816750450492121157981089409747252134404794842294135602909953586475449780771774254278241626052990017628448946007686613799205139923897249707835391379545391848298434329998676032669299804059767853315146911344306148742760632160105159827780255855439801737852810596558922610651222372350318606224738311315195309118735807751053114981718158573243419058656056340802430716053534813370401885507062203716304781537843573373097767412463649429407126231018650478990480266019454340060560378870838076566053501843209233246573936370312142774648704680615811698464352691066373800271492072148203165973688826615606200299476258554756738266857411784245110133680147180745220757706811363969380794388137758848684664877817456583102852183752603695308092413080390206082097274459835458351184420883035354084612490655889608315336761241896656977714829704786487292532515693190148883935621044791035520332818995221080678785596762278860500849725305855912110793321572985883802186463782090303549178979369919119065550235997105939040938213501804887128359781392180824741361203835379044869251402583916244388174279863563135837880273376076840537217177145559759113104297121085851481566271270068340525560110747491162061142360666874206526322717314913513232124472814434511797896570723848244227193667975101741677937648609224945515885368259096914399018176499608362518334277509786546189132500062634278733242409653889062799763183182100455399308474344528447054653627906324624287452516609743468903992825685727380470289005045796248779001246983313841774726261213488169731294426370700351104261183843903361481511258364867208590912703993936417893368977462438839244096137115157498690455182298074778507389454746349106402767920903805449121624064613498006423271177217484683198208514698142565410396838611338020849076520005066562108200516161580843182732763283822680287720449252350745462873932865054009765931027282010003431858460406635411916983172760519034124299704877320160337778027336989228522058639393093291559969139784839048598555590793695107807726133779649943395104297281473509682547177889730272280475762946697637465804852987471365527094925660872322215126799433251701986829092897542850515802890520997618811971207663392269790707185017396911546475522543239250024961999693757299053135677128260872801861658765928146673880252443739999155522684957643067181614076494500558897749443372822485639062764041135104561463140913425667532482606199168750493040052603613140043524304953021448704110178068007016549200171695696258884448395104676042014600714120247895969986377460130488466889975252628615833671283064324815560592743214924951772376297626652114240910047819069110473851549302345492251034454111765230047976561592701809085244121778323558027322424799336975213336989742845724943648717714471892949044246977383998274364866113471149587012022836009696274021019659354657232809801973578232167721776045722381670169184970003151889859260106961965106119912561287738218345002943223550771993487280201125202600888691948168257593760334561715676968643438873441623699448522874152063438334180556644045955790537011323710347406284733034705382804529430777023747100539104855259077818923796543498044151416639857218955998875764423186139586473824974661092746347852713186507923548655657193667043501240156985840324958530157677408823071822104842551887666771155541473151752693110383141911233818959187912855502436248665352189694062175416645025160885761318839709771551756857889185381620511139017859750512320548574321584086541179793023191523672274242059662928076732504034707709071737163638483126695843534797012295180476268522992804797970944521500299428470955036816541660405799889627617327557070508937102409460402801964299173684970998267122225279223883347566280789394919662124275446218607389706797383068443165493715806114769319039278288744202061068895443933410776788608453177099533353118063352631278944645938713094514095045814629317983145277305082514244015446823732204072903833781432220621996757526411009045090075473167728521234807505642319221265511654593045268442877794353630672112525548765308328609262299120193669572619495507968198779310691987790237330709950413064694231294735212666612691776805188126759301003703351872251584464684135241659806336755380956305027225635300119721829523079182125467814873783523091168300052174512328785954118037840883846419479473982779539514755008266492890226943771389122839074289536417942176661461266522192527061795490314546511390125910372124035916014875131589322212358973637917683356242897490133655536304569353183506418893057099323080088047369154700320761492889715581339582534271622742115229939761838479001720010845320510778445087175884778201286454208440992478150951958342996206753888651567770436266800061475536122586250639715614907557439651587598919145402953324480064853989602159575133110368547345459276524707479599684299425917300299639778882401224300013234307168993824881281721820593707779712509395658925402036139216213078820959511110512535536200447879509556807306692689025995749029622640591712036428987527467836304565186744437850493494954657724408014583155709397233747462096125603783945413021142893579864734285982508049283477437536047747266408408327943877475881101587435834516817781409311740790409859126850210910761171340530626721984656327948444969842261444832056691109821556424844544281308544161517149741501661023831784713565953522878474070956375945263277647814636792820796974350218902228764367496480098890226229466823425226805982145137804972072382762361494221803844984821748218948429540755395111091081702666161750577569571840805909028150384047332805632360169992978604921840007931124858372703532675094251053973081007053585528056090398026309799592869634766544812834689482756915929974515846106020593386544612213945980498164662005811658831291970548865399605742607414570759950012109996608332434879887587958418929373866314242454141128488915152433432728107876511446759397757268877561846471385261663082077921500451996465404218735324681193161045331635599018612517752049795156750801769131413498867294895713599378365580447128268862756598337300148392368596218083355842664568702400294110322661849459305308181938394162492092509115131873670075683409785908552999631844143057209338296175311189131835101938446523406225271468787956956748213713772381241197709327625306977779730556988774911330280145697707842536621259214300498108300363035302355402067102078128163443283852051254502512891240376253079774073259448539937270718858727896018698133511246346342412019148518980637305971718953991910188417832797831161851201473823676666608293210706230021773074721870781790279702912613917743333444443151337499654071516875690379551237885718835791017351304550236729202145942495601867441538678321395603616675738440054357202930461165769117850572331116918332342953004788398668966821307224634683828540182518251799393425405176646098797956924138029144823650384405509707410286291615729606476164256706992670682926914363291266271822608764895011646834954947728561451262414724886515765694359355650543722186024267559621003323092212684568249195381743629529517272258487935698448493049369208530505079783909368376280968880049533658277222941508745239844540817056368888038038131019938509082767768474702172068337013254907860101140943490374204374844930758392552750131895660580404015904832409225240406034632694095429270755021639438838261873227612737177688092960868073144962121663619255763096887383678421784672204232077355072469537633462462657940252531068121679306176644627091017486837605980051610107845540714665092729192643954961690918910581464382894629047606223191777927137577694195484294875929857435051667223017830696040621969714269724289263640252799695740183703732920432188677068110565406935284714260001805080259861628643147406634366291266674291402567104607548075805385287751555207928025783487062964606460862980100570506364808218257531913613857192620402503417788894456483740164893733857481109476756717179249350595785253761685643199728311946601805714929748718396524936524190865636728311939496514374556084969624532436784271559497802325369090289452309850413585571954144074326092322453938807915301877262693388686934601304002510407866525177218190759201542160124730378618152516985658642976657387302240566560213224766371612998330825158714420263396261143516511366057822710094321225363648157906840090878594429697612128403438107317261643262695569243581338396984455952906559130086363719156940539373981215638526186403323775826824348532134415568407399584639097693940984544623967976231511076279215776553295825274882971075296036676829445329001888381535093742228485561032346241902113459547026856206394214891394523991034380640402903774969510095151700898801708409936596777246799290835017980539386961367520000498654623695740108331277773111181481892969957552958700203361755016762594419692511440862459756235785229581396124522024842017426963746063879317663811680261818147648862963369777336705096944269496596286186198896771970239220937705855766169153616191805207404118535267731245941033968183239319973582841562327262425940732153382781630315838152137068425494971063331295834585321100838666872420533635579393955218656147786788031531405948996820770298770767948916741306893154901950937209066827906924278702685198215332894853091583203743291825936181895362303348026144309664019820394520068675905291511024697049711550484413477912651217043835302915022917037990121547893821858362052611191555514423440395666255574770104599408267596610323274204170569177911654439842923444045441155414399579755409491839275782711098090931906404872178487489212519746449494807157550382158520005252150016902595267093978262860402020926117534973542359577888534979719376547475886029827866196513439055745828115531676832019623964226600517335882745755642197178052420089703741313090574968781192411861335870740789052844979168133042657345717362418070923334824297627990059944224421836405790196288808972398993510531299355922551312588227640200013103856667054200062898204569291219608771385769291724527693188403158653163807480584090271286800486585176950641396606768962178033397925969452222789307313933004757783532361345152511035880327350608017285209941878832748036239726569271020328086956634178301841513253072974630412353550581133478806784989535195153757287083100144994575325785333177770488450777632288965965521561548793320582258516391884642469471156650460342227352364844222112063927182304149887811379732646517993403285269334274402488127963606803246147515592215038434636004124269485352926119182258742736422624053518489463636376983092494316745448949242554571866639644516769088045546339450501316917158164894195150536365674959403416080851265112512272769683938590778571434151322819429842649458894121477763669392267764687624649025975898096529829112686628535679648413927525275320439013471143063088577018781351608348335542433285564321136838390054325827407844903982020398616127350517661063028812692446837772964854796063082321361834568451110548140561998933193944145531987187927648005800066338986604446589823336922469853691639097785862362929177590383625374382862531086613949441752482614691153440937427034600873149233841910349630057965740241527025629556865386371759786443204456288695273594270913578746292379333414908793615536899585717230395826060020957214616923096535219090496757249059925272362485381053583297977725956062337308818421058311045273674550956415141176325895957694957813380954115782759799070080934806192320729424197634377715129474327107163151980431141443024916156782278707516563446255697616539999167680391145649876326048563070150731066286240043142353201065810014498693841631561580151960272423976004873516047499480770471752054788723571028008540875876302276560115686620993372594720111585001795175340034563681958208351460526735460570087853004754997005737596297152354174186506840539513205017019631222547219501707448220088612929578345657246321615501724989460651842486685167307233003829152626470675972335256033070683248895177663609522735664925174424333928397623092336959091400176630035267759293921084561450418605354850018393837771537271503959744700850652544000388858537694122557760361740864929938793323133336065898247209706487989929544556290231673710536984631041996003494310757562784180967989092130923051991324526339633681470253960825146071000540101826891846791472465016633235554534844277492545434019398228983961365961439779264312110857730633855088429227313339693912275390762806402235910493573954710477118752281212108126696280433429775287890094668392262077523924102187250356587351282955933601337785018623084537710681685355978326083602462747413975231197969413116365599519172747611615232252538805684787638204421799903417371088745013791613932080600596048396665372278811699507804879111925242466757273974914573319847639054174813408491311675834401917934004717651293066451730433864208447534586002083211983105600200996871934785671912874531684628624419741022616370791776210343196606279351877704844064566981459625396228981804651165016780697491043134455313676091987976883561606659270584167788913294331309040487199594221598521279518354556974516460793464174316342802145166418581400192640013313474541108763616912715432171176701001289931479692128159286835795813259241010419875369852828150306958812511283280041637474344406950212183056582259526840808445943740417818243251807598428274401826214734924228697650850764078874221206281093703741117978864360192836168450071564150027828447483747299742812768363707062221013650587419217647453496927414296794752743024502832628215369966658794183353782449917951751812033089057112498188502438328427061135183422413327729752808758386851268085451088535187132332512747437680051374169646558495052881692830738126054263047804984455976036118282809363216500718720945599331823544661450054832803056485577129850583014671452570031864412129312781369625084903542495493325950695123865647851457352908781158812726734825156619595743689295416187127761857712360363704925158396640382276307449333120242580879832369490082749622238787110487227546953072042740099122452566844283185873394294385181938195389786699950284181433796447446451867975832149578945589070168891472533848436368971561940801359678966832368083237008526313897844888593882058770696269031003768808381270090630113639136334605345401895729945400482757027676152804183509669527780245662871535995689911201546357905928055712277404084050848412987881782721063969910155353670730434684759885571128857819444478181288237656651398394171549576879709233349268915935632973979293866237471985135968208792919075033623085641527090200728424434517731212877519392778561729496863690038588109456588967151858134584672672389200554979540907040466774078173154619601989715855085153761013545425083688410792439098043905705495558739126811357085632735811720042420026559773979445210291797189367380705646777414438520311504644946814181942455874712485088501910042939391090419225582320348642497492683326317748590670175472291642037118793497681869553598849889070487674142751918172312539760794264745684204634847578025184081400394127792383036570660942149947736927730940235201902569357041020626989857013072917399177457908384894532731766404661028401850697152056013855474466044917224629115646347980289057743642728949987369824526311798802029653700128795100751523221152743847918408874893216736404619864749860302935155934579566933823792707173289384985726782655881182602935012586345081547059110899700729704400390877484238016689951561180791941024170380407197242311134235193863339651325550022138432824946121254760824233230577800072364381855726165021513092321541481574094917077787842058432263593415671219513373831222697397034305747074320218566905905676343739638992872392925123941833853484099375383076382219670477941996391296895784750496281320458525559540092483503603596170015743705498661762596270946328269889160190024603741285404524673117320830164419256721481873636964834068808697927506275007048141077167258406385289588000123987968462723582840063223177748753146538946284914119116373816567678587981487480407165411264223689670705524333236077407435111345079401707246549340633039368969280680914546294482375142391636005703283210207057316355254505628474080906533242871145452769320695527680817619064287417864330881270295956764873082061092444969656370329220226040256602181631530852973785706170642490929794772565820500297681665354097679080060489207757387141298674960966503746128284217105275630574589081238361718227593495730385639190124656297991647085873633734310036095807936741199180578323855783262546371204693258925512521794904068538171973665659329563941666427435623209189124054742793963441680989187612384161916491019761745811096688659218857473822970100197250051308161470783130390331722044550345712165303320461163246296414548632128481306140837728064377974893138430077054871391268836331851628443123174087776152628365819514546508999370593103434977490356931735771729120991267031077778561904586806215378731406667177610598488762852029570772711454814480570149274724442690720920096196298661024437796016744747430708260809711008733869185754860849342574988568195534267152599948973983393687836492777633113415595436024687020706027414385775022939763668670773581563884501123314413505780308884095000537446355698374222717240746349453631878767971886493948018554899706526777872347639932780715691383064834465459004410792747916963966472192212712415454056534658766546408076508507573376854757579876099744264079286996922015854561853904046650259819582010885176961116137709327777535130624762614859656782778096591442244580230873628626636218081642752325078553551592879991735235809689008601690057826065683411517703883463314524861548104359541059336046485586167526393935620027098895241045103027677309169876156420591796625710894819515169655327578534805908129713131063945830539483405143261557492877902077867421598606083774019273001096205637838669673469668282746956368597401797080794807263723242646114695600600862621002266616959780011149358517970789287303888771094579233420179178845585805641288449876810040620335128087426885542437655459631730222253911684127292160052800146047875472170101727951884278744373942254855099933670175053780234534890387836612422426427055747704100895146269392734005332995752409717898488216710886584321015525081800391084367676698683827802081192485224107523583340576025339835952014051108574898720069602822342269501887940884758801796376773062571579777660464091338865806285470154661845241602136445551026631828322145076095768015673390865612188954922219184598647401857384178449487482384275561024961335223583368467218034569623278671322967450306519935164277146241374596389557918686827445128252345732270367606734107263515727978223508655254637048949116790159517623260793305703685619217625431518169881523258801332531974885120733365705149698998117569668000716079145965153168202169788787136698460241387902214903859400900697073341879643198385129728786622118554730413843578193185162867738200513293267299836234935294025807235457669548381076259424134313558831048482141067865383237166678063524472594926699154670864768046439432408447203974181217072609570124484302335777619244164409263785863219913920729823310891614637888059967237698526392187794540369914278774518302185256836364275327557126999811973837225632394585079275468537867321802090957933927924669353302122432175807628866684434982580994561059468571392808499919570985651892721843887956941121168184425907046864406764736108444237820889059894768144565123868123926040742843926193855158385863959875300174580384934834366683807089580967968494726791263797432120899043451783102371913225282785583266290337240488005045508407553588611931853344756311543501890290143632742182471241561324490393051571464094091635842138133752755396810077366775219521452688807836196992171324928439496729551911541970091731331554763259638113894313623278059645414915916134331819637805512315288340575805042482219942830344869589511630950592442598333942788675669786027393430619908574347022693664776651074667332265057389048599805493133623477431573974630822908352175810296528744392981342211789362438922779770976135540846469300742471650829000237418378843430929072040016125539800901272255136825947714474200007104672345078277413776768072092889811071388251112351934641055530923843018854010585102741772201120908677114395635863720758480482930694463245927664070470949249322636976116958286373714375355978586212879820114546769589018202211557274181086386754972301920842532390900063507210583690270171410288649466153235861909269528970610054457648975627450101492906486718423436348136015247780216637032275072868519960278969761306800517889018046526679884629572440549669914539152086644107865842253843450584081740405773386941719727690082439918450990711993758678023852632034736142836374842552185782306192759309517499810915723360003429852623732059682700577776838327455063931822962162213089687470986787537735149761379058383895941261395611450020632917996129713259074585522378674972180670425024668038212511443580506958540834110762555293947263372096085991825233538936906515616894387928061430078546771592711063148458492184759072204114091787505588265393093384963809437108736352893779488576062318599442125906562526343897173779069197359353075985908068430579262288327047660887507538168100092171130235344160982167878379404452441484905182594210277228335754160260892291092168532851266996024078251103335484818455972169491719244477496042743796689115812818212630494438006594424009722620349013431756056473817269458166463783325097483025995602507771876168391197046288169909131222735092022824215155576248530819037021734567087274731385787874079110894971828198224601845894194037462445668577029046935653577009318789952948583233529123484280909131619920487746348051201952725720417567601449239053082719241855482613268628832523115168218237403631544064981655849414509217007330266716046996529756361181636085849572325150349384401322933269280748556428699993748957843049363667202399738397786631078979529519337621692401360188153613390641802298108325597572201252875667942592953431553875707170948531785320740278942129874589373931726339660241545933189361153401101333169601202098886512601401065649437079138700748397946805633140638393652057439667900478362458717673260236088650430309902752923076562080478977133707032780895511299798190121155591326255982684507383976867875911814185482693061454342830678139202835760050598788773635410301225070118428402171825534717753150262807148664889046430066379277140357151031870687950092321407399154166157654197174294248248254489950658108033868269983707601535371821748955562746955881314437758969591820377000191112087847698278763738201266160687273708996152201263989076681763418174905183298127523021165840923553586459679845338111331703377409103742077380863894320704015828188907146498969825607431988165311225798071791965142843721922668366970263830470271460891387750054178467276186338252567797785404050412809004997088640865096856544003145860694387105650017437268255641015234085074965844183337541496316655911931572702559958934078451494294513566688258801997029529429620043451066504392198968044442770104067548093535287164477802289015057242131798146146379903850780127954774012827536413381960973732301383278181441242315187924031494651400106208553740506428543007693999569894835511618515193954654922809996218086057968632781750075553603294398020160916487896861085422598602977734725015139381298801490681635447022051521355794651714435141467547961620219598054148978783122604304530672995652991487030080294408072257215215105564635806149440203680706052227019829813384097372413269494763830428153353328058292025075278828893937683614995277630038122766515091908364242267546477927693620822669317016442521234107020941647603910023209625802665967306561752763208062902588832461137502509149646820354876381866878106356367915854187361964381869420441943484787423849987397352021202699558331605236043541969840446648330434932145116654505536878329464659574672898105183898242037673875749186156135496281124575192640382170341329333355098329945047476539456421562286029710684022660442193235671253670019690932040004404450896702503517841259158622770216074770054925829096392536233132659283264966601860631244386758828569319188535048087315139593033123432688375911660377112338636854033877820871317703455255405590207701456664895363511181890575254457518830069751869357647872470965203504731201139186489786837742956138460389943524552792712012513927249936000242836636512591789479075459197873040096615099927209978876659546582149308451062754196055065690259453241801678731068687295410903173355874665848238865503920022543463980587513838899621350370071014878408619466270888154661777249858023981653301162860793496214488866330188437393816351348692801978366173578967030603832063669488970881625226208833839557234766216585806782519045539720777187441664673251615146538637304607657424900521193945287500842359651220046787793390546363005982753768181872493726281987289075483472700236341207416707549233754431558430019975418902136877383106064039332915766994721744703429475333786974780492214309510428328114084328907158091453126528737635692287786117591198822255343469440209313279965389454666880615203393799151948508503230173642905435333057128866138222534717915521022118636138655413488207857027008245507943261376768431497938167996261913431141156532201780944213363153513338927330333635451939310710590488465771225879025619723188422748112001351336308232621029653893654447004885720300316930938835943478479954016098329318929494374320694481870657514655648158075810853791157877014695724658533185338886554866544382280512739356296113385819689704793335008863429938709313475210824260344834121951393619183721006847262092169163295556194892767670002024785552909508494051589825104554961826352368381408498897499445611701904862639745879431382986437460170156539983759807350177020546578547278658938551966111173244080326406846423127240794939977229689400052380920226415428534261947857569701335702779204489689712990679920809675420372779898218426389055088841768828915891709296597589996904734901580566959363426971278359055367915474243771729717450436328592533741423928938875191830801741865084264856897532175791162357387025124841195910983313769298672278972479718811476345992969243858412799852697322821879145504861283825583053072798663762737542782495130859865194945505832419180868274483910678543809810794283492061662375779943585281955907684697376502470680758715303013979843083639147983729040397673502830522959345718347681568334800381762466684925426943032777559427602794531162990234945676759591520328487860369852527156165112821720944539271249741426657333190722124389775886324911004526882389734105548067546964120240837382635936191553428061625627404032568105823957309272727494345594635354204236818979966510360851999392030573554179828938996795116925754634302513007434424667927388879462876632812424440704026976152648801304157064970087043800063044043312496960916763330110399818808620827271831808774998724803846597253258656710833778231220165989153860723930328934231604369297004515351507206846147257812380516149507078431398583187747482396175131379673088516914412757454378320393299331705942455945960487290651140027611877048568924049534775180887181231132745943030067002052810310141596364237391088372797102463301643018953627703582673304121219543287200842627388741912794281552486268305761941442233494109435685997422807651258709033633264522135916940485715274648201880645762190509303874367144270736731795091690854144213847633688549933838133436854768852550281705891109162298217867758494138034984679603537562598200229302417711886143343218611143820236884929838112340044538380749649138322223285249992700464939355274946163213886950670276481230763945676592370470320401154606682544654552500238554342667728413980901114209996425866085867709822055467169176716608821504794867624508068680832781312625810139559407814170757688454156047515429159836405904193644971301861628205285129379563987241121023731130272175465139887994217895125116366168459753910658582033003390016744380914165436013958317369358252414374613374144326371327361192682755953823649344783644964541130686298655671350983164890303483640077395821576048449679846333890255834321658400503195951536913351516266185262394981063041431992995191132960515050623527749159249206555224662676431448488193560352440950044872905051149354213245665559298558420987481401626275265241870736113656237535727896065698533928426627739080371948098889209446153956165063252486972578544889175951261324273416740346337025755643240872013227549097120526211189389465063162475742879572648235833354112755483075939143810780288035236002553871320962697985714695417474590263334962670950275661044609246026204300334899404218737194414739457032742676297307170009089597170324085691059185295639476536791484540177813640219697286781775240048608859623665206297575870350927025935423911136360086157896290767223204647113018869474802365971670907968964551146393473681552485771331739200638962454917183921002209259981210161839712739258697865269042735324815759056179102609564188413893668953845090144779891348587897701291278803892429486396679443052769827961526428569060735978089713436825641220954982404060683909075242759447475440619614141775385097311894251879283119864843969970926398701380233813931966441229655650853497911015606396199815882593764909948846601194198291794150158378430899342349425916412451928846869054248054725947690108915165064562437614566329730838733340274550420564859175313321168517264000611542601420156269775468637227810605643203622843258347074792589055416431144005382880025458248302079704901053397592898400408275067384555085124275606389099468466099696160614286956748765064578888715779299072403715909846626070298865955524751340399422698594281447227409073675949808230104838743944901915907497759710303450763206988027373709135540882220520946534306859996246392720183440728533409401294561946458006196269196939190768821894579686357224313462685575190801185280295322054766558386705679579845796658534146562793590167832067327232984358554410673276570014753384536283797041249503656059283508713509869601449475144792730843437276709799695940321611465012531204532535213548078050887707250952346284955018562849193123711721403091127458701611782915533670666008930463279035333856318251214663782198202475252346111764287936829206038101050218134178086344325782250110463882931009804892811236677355862967176707297679962607607156707187392050780918187454180537550597957150871843073175476424254530454593670264279048187741347365747125158843071512789924178898734865108334951279609335110896083138790929722660067106775798106269313171213669660404950466568514301362104684427360745953333300174758390333765539486367267554303045676807785720742758210414328361193369164816989697602197023225561312804143198588427877344335122133476442199287439742004495189346736727371723159495175978282781360781169891787469465547970343089545815377720290282845199486074061593095618235329765533523663884157681416235660911379101133049670466479769040445783491562317853716315527235468442690720422467359490882529220329865161733541975700710123628586518294996472486501478294199580565532700034766476368434087322094964678932295063614271322218292780792532381142478687499247851098389371115136802013028339102417400677489589058786738780335948441696199969579037383912853252612208187890017333389762075211612312259940603545703030364074572122918919446020155822037950447354152510200870184729215708434874002635967232180579345075865708922705501645229906815125909906690837716979477735093022533273367370199494222669068289091606982734551181609942141507745797019197127168415635312021083969673935275860565954290337962309246459032965835190292735323611501545171359401492498644331240517060681123441222372133450578969081935097887661590743900634872925604209745628297415490410792444961994840903113192993045963682127308444579377884716088524594859944955168478875879385808028503310895825040969662580619668264454687149864072029356512462469697529968275791461559237941277134709463944763423062622635518212816508024727517552890839963448470802194787832073978600013305977785439515754571940644181116569941665865562074129366558346243916340237764624900820240537885559786625272199874083465833531428229993265871543878271160810613899973192446165095060087007737616771830547906956599809619791117842782391162484626805952988584658324082831951781138172235500796010931102398500855454970256282463161290993420875724359639456791792754396876841002768583433270189860698539488009411864133782210791075232218101647927270689381785417895714535156954352132805128640630754492908914706807849927470927775592194327549606577018080195702027132365832626206678511237509740524484909846928891342799565976869169314731711732745658943336745299790563310857305996264549115388459616782943353193329258354773334039998445389503952817493742128074577217662670582311371839061281505122147340572150521887241597073231842466237213420293807511765623067334681274289043444907981827964473877435471272850930984265169759973086680222340512029590123930820421576037902691445057087816196534604043176049070495451044421610149873164107703425873303588929904789854647050501253211392570774440031480614830607461968790357356831965382731633238974874187389161557265485177285485561606972527076691865199523615740924784265412180645183596007230364167599458023803280616716458100732095579619232102691677351306815756572325866783542173092194172384743178442641620020803646287128352509989684145292056197496474932771096015937194188319885868351718514475984165764232437368743739047053126541571883719447928871834576907041953625913019721743043766638855878114595590791622029286131863639874912185535104894299437173095233389278614793061477236445134240239162914315375949426793680079495273199546363666643601094001065973313200014458831379447643635486156324361007962898416305187636804090050632760219244585016208353848036902903563190449873039160790745278299386672852606174165969001641783990423322751620125667622754463670247589683093114263062439972606760374694003670777491767096044445707438018688125009972535781579640463975225137308900467251034459040135606324539071497186875664754475644980119163830162726614225543126007516255690330706251667484821019853600293252311358921371573840850366167321712420039438040650697899407157947368215766077595551823160078141817604640061484684001421631638616946233863991992012253192439778995899603334633763583497794458210991481541081095322953539111816254920883607172814231951411014438009575592066711527502894732578977423677800591339942007833831752716713328401818669518856383871406685364049646438095375387553129855994015276491070670158504186393340233823763874204846728985668551748658577030230256522718755561283956103505346913788416501581452432429886362941428929158370165347768298873434658706667138122312891703983320170486873030079797625081602391505120754489791126914678730591456352488197421373988711691606698725463049526577211533790551344499522825093124185242680439711235721950075296696055916550726106696810600365841206081113683112842362756608193771132523671914817377928536542546558391154532845287816727997897666121313203889261964983998382532483365303093746698112908116862679310119130310362684707607347040371581427248837598999342947883916157012252208565641340922434499039388158207615614772542643258312784645840408716039759408811484568960933340678624144142000065783328961822730311181847024939910359962079109991070750983783346675221428568494424784887702973235047688532930522893575368109099928968771562791366328603012514197738440867017664806183200548455440089354000858140077029972555707585397741260251753432155474559045214620330337853715988736152348039420016415541057003429506018459384041114228343707428862334411526422823906674011063214068302261831384436451198036801813271317101774984659459620164631394295081213534387164128057430237519609627820990728221439434026343508484853109034911323388973035788784661454742585046083872581529236600764931715624114772973829686684639325113018381377158551759514832202628279836557584367223120236187753508118552787387686715347540370185491806825924312919176758946936005734318334181269867045486630984589978992761533099004308031727176552013710254225136272373562017656102295943675132526597728211887197058539936829713440885377623162889666695748609089986704164469666322490199423169016075294473500259272597204672465823855781127558550546401807918722551576591100027543046576366848522124070113906393452915966097004266205114617135928856004573417093499890672358579629647531785102191453703836579865435537194968933628206645025823301832870270570989163182963178572227924449914654337192670730541660748944438304981160963020519141910662630695699445050499655052056251497078570332231668876178938327417309136752539810442852399898195854049308718732814835089763638439685125716374685865964192418436383091048160662771277326977342953807018591135913491179556313667354508422381541049090609962713536963395948854932924406430050339111239501122421868191419750423758259390236646359870873364143169045969970474416701768008978684452520896180449724039048315464731812844999600581911398141046163634270963205613918517388941093455357304294202576585356911967349179699226915206506381590521566495813916022137776367494777775137799103315882645996862131600025714854637641832765061567896516548160583088729626330505319981139185844746467409223597244788529591847189317509459727644447463674017122832290881148572357047039796057832064761378165444292498751119111385655372997416419501834625188038068953901139533770633342477031862759851462985357716866163087520458552191033531091116747265780214264573019765133847051477251402852986391662863506766579594641458127372091443405458215300456225180408774343314593821150532139817676753743465070755372739930688454953668850212666019301473570111516545496033533917586428938932413043098146474760683504564565643004493180712321796370761821823611402596266932891833339930295209811984165985808018161076976359256959615423179160588722443205343005979971081655023113328911958186679792674707261976817656439750354709147899519373185451168871088806713171520303440317455410744015676901446177937946929566849380658165881182956335121998435390256373802520938340819814995701138236272472688312123744958850117551273251389918120258192764800842046474643973819246217328143895037339406339668308896678546654329178749106709729187485777180899380679713594855761596409200015084260373684483459440646827456561902662772714270184185962267072614957305457680936264736555100575147783548630158588018482159877514506311847039540379699178977652802262541469587818556217233020801235171368847403101614040077698286986770907485419242337938241288505469574007636868212394305402074340888983021486132863114241175685499190581071657332962302460359353322287228543218163545399427056427436325415878918822401635012991748048793792358835935893436492501410136578067209667305886787518120959743884083353562105317761831095093546746058333972498302752423097639658322235556513802289991943767164927344838283031076743033715704560231504322532355738325926086397284173734703323531331684648172440775001535102841121467792601289949926773848848705769575749718139254640930156195977060297442593745121737061523396596690407336096309750641637602027814683676027092820183554741893149784404044525855121468048533276976641108984129458003325246397778364791872650863732122896395673241678547998835535577424655281181354197201548483842635173292459264313447613700470201559441098781187662866359962793867781953711064462180398662880340885266093125394535645031459405874078257982816876561216506296804096632899659296430104042174893038008625628773196429024077720291134695168581447919478385292840922621900041781336587881529649682132307370948423219491936613518760165033185462481836391511193752267495654403778575788718840180849299093609689686970758569293140920720981034612969326256135946860652540200886769112471508410397535027413144777148112801180967901835505398777984116702226646645167864707431868232658567296000278633285155379041663621537157554634378422297137181872845374147380716044525156126715347611187114348222451191564082933544403117487322692792802481783565532513882171024379452974629359489371174379036559311167685120131303548311432680362654622078332222601477020967101139425635846124054279022850162285645862210424043113260962333891600682997564488015506816352677759526471203672564406626008897771649110226631611525203605010340579392978726551362015284758354845764997483306859447050970620518518379732439725683326913334871723022732597949930644276899644978570742053845942328750849423257182125797740053362262459231350777008199055567636085145080689940621143850688501146663486503128292395862091944915800720510878531439938750415526175374431784814213376563350799960923991923073092731431819820874861378915601445162971423083726019008125843713026464344940713126641907858648581586001454605303944409835033517772086252492498930686303633704112160922878764131294390070135663183911682347411737378103712604186641332972021530960100980615987670354562798934322018684154166485069722833886923867299082201864164455258421078165092625939614778443480203096598696535942179292459744326224732882858383788572109634453510645525889764757247714860289140120263324018298868560833630023187723420309453654200440654707300385011424129248448899886995615813591656256610058165398532391701731147509876059702398413881682451675672139949732814449239553524527316875816828102757356128729879177610084659910154746053237790939050734102148525622132565245693706735171491652808690476439178343387156928399102649478396344252450924172501851588128461120044049966530018962056080478265433464359812210912784698594092172967964138200914851345154100918067004144290665272199029808588468042333542255515134994629351096755952808407126021279281426415696790093653725318139493924895461640266840359611217360958917316687616818344611736992217498063565258458290876835495387660896427200251125337042988622850546072672472916501004004140894844436530569368726639543792033704547110986804736189243898957268195177221776302893637063942321635524774514249485258669028643060382692001867885443083383868751162209617752427754905391130297463955586977079931959449898360338097290027910738215195999354779393255986499764133943593293635686146780658458448517208655709269153435721248445422571689657529099463740765974150446058094596851504621134060870195156581974851241627351051350015154215940167170163460918879668966025545146133233934964791751183826663752416877972091477303134500366221351286395031003301931515946850150590301854315202056706631262539170729291502258003354565794417253591085240956497984449191332775444987907502463011791004527297646965770787211853348816970170340843928973264450995640948710803152050368364219342859182581397458285150899687451655240463537901619599989234645975547609432562460951111207166807034136967437490662062747541358403626585022649061564184469119208597917781473052287367142726520977392422371223306350323657837064992763438579946200966857281192229021919820701015235026417349743957348476085795969334353030115581268701040727111288128693872541244627086835139684236158365837822025718803967092127190273099477777685979761055899169488854550511597078727200215108747954015895824470482089567230993627170290249569376815056467153667902642948844408460993171644666353656529801249894094062284632378110503607377590139541298252961942869413113536956422094459560923836314138818600729624224321173588888858223207300555407369305706723665950181132381843302781553049362205760514549807872967063403921959340787729977756982659218966290534310510976168258943065189829535533157936338074183859785996270312125083384054373958438198713606890268408978104809165611783586144213846869667375136333987590881277811930043788550705016885103151961345941277594850337933035962759183851743662852012778261175498721182674478340329518688468801311930739641021852015549287851696987434751460729772510129064488498931681811899666747407908397518580497312732046942150730680553825656766224929602997368662412132880176138059282872182089139800389895016463691848809785259022777854136253503034055632672236599964069082368781724794811474136292862753307511421980976991349135794396259911267918043414829857418868385596820172912006203546366191862736975890058304336636200041639764746091499689180913310599484360686091409997011115675606665571155792013689805127525662587425923091726308189623427371904029048668779601738977075967676664253786553247824078044846092664683666275604103015436852285015559061646250688395100870918104359253251570176762099211839416044571130914404072716873932948240992814808484615829923172997532934356795716474605131057464089025957048382569997632682929570899756663399784626593310758008235475795562511251764253854248171918351162470450521518543965627668570958280699295391352237550623430738806232197540447089790880892462340738839135479367689842978055379182302440984352439995549171600022611308156973641562458674434222169502152775147633638311706915815883018488066636913342592477316868549453260192200591470722125077218308299517997282511592276807000068098755666263594850220961440695093106513703686487116579897998296257350051948031657500165540693708418210851078987487100630364229191646640416364669140518470122453268425902511827628281047348585396615283903639444510459313851872893922856556083070793281572688259020529557458353830769600013581354330996453817943955687582931266546533505429398567000607324573487236666702201548359496050957008369790239466216945291754754368199775080796624076544168561411536630645765572834565132222739658629057036794876070940260563685102673900086682635809427566124337701359703946896471156703545533145969109721343586736573424570388879938261793812580318492156237689610393665805061086664396220518118085710392177034608805339106435580880647788967380842210651778502369468970428099702325868148254268254575938074735612975551199462534132674905527644452894497219848025650510899899117830341191183798242931214117237564637779788761937382419981154822806026596421236491175311876571687723756282900066188993001935020279232725437506565464307562871366341456355325997803387743969651923101100523819385266857748230371758545445625268064940857712216484859104335638906988186723011099405271258660350879174167532078898140645220580981240751921645509064727033990455472402352473754457559319930594839657325692689163695446192710535579041035969294460124602249289391650988661304092093572002798355315327661722337918158371141999882639546927342480330972782827519100971003973348978909947113625719891813674555674363639708888246376687262516982251460402401899750099960730971544191374589866511272945972468458220557058357574963438217556881454108451426144619287731299515625459205213968070661336586080256304161995270152515267672660176369662020871243951168952874595503075088331408280022244689446963965313810794607880813479881818141591065026455791202453212589107068939150874381974218592114073815614282659211932443099290668578342998927825063550262778840588379893347512462079631000813567185063804321626157101753000752543996380261435875507255483448819404699711506374156717646677068950644511037781478776246269233556007209439529931845568277866037069134678589526400094816597263038517425077444627141376993003748974275227504615144457077839579898246291424525544847815662534595334252785057751357915151350005848299150176545513746323972942574980812927235479781373725645876977702338350765964096220472552322653419537421022616155907355731664991433293516887392576721035599153778945719535026837540914242695648108083750781411792197991827300850509828508756560743543809657242492924400707768238410303526353774345967947920506832892101538463978614323726990517399775527586336420921488773578867996027392635258426379380822748760878651342690997502051365284030316299467597104704624279041627212947503954718382528603307472668543418979697084028293450662413588542073347041034825081919805839231314441896928109025579369771176891113120575733405728211164680610602935112296307372094994423659714640736745859884792854023390541842732297340140277758430664502530778144681094765857021496415732032499264200789002272696011757656187304901796943589323643566932859012895320613216435834895865466256006478970121973585870352746647202470064140123353568944369350508957406270901908948912323154621074351297744950414238621520539716169776113027119124261818322238820169180507731549841749382954732824907362694112876383449507144906414265146647293494913190480552901363895501023871858737884856131276433745584623513466605311669124778278521780126334907148831841093248175812807453205980597429900929034950326322457261407582005031953961244539323927008244661050175867189504346448309226967870282527264305955455000809843092011661306396928571579762463669625861001920562598580719992643325725322813105454760636839911623437069634188866108276590852901457590842774550802478147965017088038372166649994181474862137158334242950080098925938474027311539748617103386474658917110191891551438485058464616729000840915626725515325722181298749510039910459869801586120248228252372581983161610596713259880812387785964066459325193620372164650392439431184760013380659434808090874932562428650475218528520298431287198979908512744632612942329255614775979598160982379941411364523621582647898634357686191943713867782509406482180731439656946427611031497447010230793379445462948852301689736411735449566712110851340919046683110077440672862780338339311788500673197829859820131557016787020072497651193462485743352118889611917619707607625694047907725299535997721759090920064089606750589609994896417339656596601183895166383912448838156987276022944089040427529321947457443384448583270403252318455961454448279254544635677616325580670610351566939529819199680353799727536898799975435990502670671814980620694309889756008826902936652052933104239723593988748729923894101669926188904984683613960185324244285095867787507501356576398186692381068140791818806211992052920042421895048972742135885464703696358209863234008285051096714531748776408976650487477449202459979001147985276688147190076972728997388180450437229092747586056914283285994117079075801003336304954316313018513094913481548409479886857760137552866475385762845787227223111264042187952489281816532656439514577774850703593516478790855215046786871675467038995990342918094951942856247602653992042106495124456135847763078392415516102465878638555393624287052607356375200621195178346909697796722553575835198611537890087021121052858770358569185758167547298928974284000184401679473242572602292109564349752190859316852414999288040479560940419789192740102215052451813602094784460570695703942547772010819670309815379882315950646109718317363410162154331885403894162704534636397729286681448543830743726542993124861210741831993500739231082853325608949338580859445647217166117507596248927626714924252597944730444667299385417135187689505011290878616308495616823283878490477394622977131039661949405054817501157194445690597145782729890477229783965954416114254469195236054975075597897740545764135545091187226860069345409568582010861441910946005652373749785584356292423455688279622824515341495304827755419929490417465965583247313304688529784604502301756320525773658593920540857787909216721509619014165666861088806371915773942945132235492861755771753136348361222921411307185209615192629802603827125444150352618182261368440849683656728333928986701583386789703315097822328173329940933184102166030688457447382533660802782808323997444700962952613374643665436966935397400337934619312362745371989054095813893634939188778038838425809245423371606657483733365358553076339477915973696524322969223510884163722230936701995318244259440264346494105469635913983149509569168475368574582000637675032277278335694311095374360968912889043587552106922051605989882470864900686615392921347563837072128771080169131614030066764376300383011867695209827471985236699064973535265536515484501504452863725323984700763034122564005729745313886703632224800799969556415659155447500824006037197376649523679105305570947628140410773304414632666864705239156948113794931704671323617377882143931403907081723388056293896080554543663154251936305426512500351114853542575412429758556813567623417885452993795626150481274412736547457837311187817430640394461700379244069130074548454263262425783451079239947237252410373646491716328449457986871050617295019143844783645990950107460372030433835889783415287508001968082612287893986203391017654226878054138336690099018188702098130633856880823515864648081612690415286886169369606379598539753514865788417721918315130760150224272032989068593696044732077484736801071491401064804756206142729720142165091092615433999907148857538552254890047729966904887121283201603303483571163964519419493944838856727627089637121523635172114975234648817874358507890442744194167185945409375322492118572014670186038184246250626911478279101778430618522310629638697236687655610892472513706436749239928793256342728338541403097879717522984454610094873215353296516711837129701738428317196327394423095965700305539741898804324812414542841892387239595150496679675771439721773603302730366667371267225029564758846705626664638488406258992675602060150042940008629760857096922964991606619002588700505295490561261062830049809738233017600744531305740109481975970141882539944143033229968985783199453478146698055179406080293692546837350809585347034660188686183707844862714271405422293219561228776846418491131067739357891869112711042920859540128630709518006796686361165923543450001060528157194351696708334240880378153127323583597636189026824785205228215044247747395871580399702346537054387049143028712582067555173169973908680559246839626357043524760611529450859536490746203269993733963653016621102456820804896145551219744247314700036469337677223074218957394214771517316005475809484286605632530136960012597052788909962543407208790529934489162448770934753207504379647131590050875087727904855954676178232395840605192326258960025643325684164935929205441096525993734530840164065826201355230756330189215820411753163366597296935203072812309373459812685069571389342532851220663769140115590029758923106271051605492509067048379449508118648002933562997967498459457508075869057434628846097035511289708825849167385598420458506605920246169130769230817198791887723748959724915106335854871850391289777757587516392131983639876506082490038505863564569871497191774707540757679251300003909309017709903151591109050848951922799341651990244110154729673022300057049221761429787499923447927987730720651189954627361886751687048314932171083570201727505016589971250925736267095477973026683217618379618725773570905649932393449012490807248889642290504818800065063500722287903683664976390263813490214338969173246495872213406169505020307059580363125385373938191740580694028303055047531205252834885687927675640285573535872009205959093409427341384447817753507843951962443552685488675091262999125498176567708829713664560383172252923301259327308043768525986292138966543610191073768971887709994355331983263059283833552482594415899606658402142516727573995261018029981645805865850668164401861145329453330052892157612040279849774960631266346023364928413357307894073098526618288870987984215062403491393730302546661480133287866313331941439784064681176119754035137018377763900417358509888920781790825852585175648909093104680036242044462371329838600244123584885855396787078333057009594588902005167207992641361111633616037915642145474596024633959395422860641947733610075018660460061089650066525737460584697600974300301552832124294964162431790785756880796045766198173434739394550472858747901641637361735084304387630700718422600078933788030228632158094755124316270333618358532871805840327948463640310934304943379480649169787841243915677477762391445827521218495515899501368273029916272283445006349150228483644334400346161097744250932374054403194000039691078720525123223649516373781132149683192133775035837662576806218173855355032033975122746863355395773875840144014351336579184289196338671227452923577923561613272334464869313848792318434892666468867414470493078182231592737003905421663123126092084135908340455968235733998786275583415706052464162352559354976572567319336366754507493352440688481437770754868450763498946951491016526027598897272838967114132459562814033010873697422178454552458581672101067219787451492423135893211365838971140983800573377135551232927984998186888685041581828744772976061494476700671301146995481936406844001777022666407124603370649180568111662084902885067059972045196660921726664592957761207804098179927680018491576438396932308328805019017924562105584421882855984837495876113120087071206677366119639069424874286122457486301195274912031984060201997896163504216473847270147587414985701257412058325149356386413364531015579773075987680326969728986331909191813866595740206320425492351525756286449728103369267227962632440923409276842161897237809973239658465221207174353674439567307011809821427767605408982113374513188676062430431631131398784675865184140727121765084065919673695761060282181046390344404693748473057791853346040477975069269557865218293099726018135385937227399530348948156645646986141689679701546625437413516715343439836594042544552414653736522529327434899084522046960629568209708344437913968980880717784083452455270041477310691418392468464919050592140126235466254842964114684077803354280902103308442850493014878298027965745044861755700658336442534698391483567509927615878167256845254103103611444275994645200472201434588721085191969907867272959906659858792224386699578835700403250914614844409564199042369073821333012179087010043193180847805077101204325197797117908873853927632415211926291675722552958651513412020788852286514967962211925935394167541948681764638003164941613953900604206357479883897286688590955144159514705154164052218373534157730845848053259064233973525915187153314911827540678326896853225210623117029157587631758551445252364906740549765623472189888279773463786019369256078875477390669574700980563861323685948840916352485875636454762810155960007378316528932284970843308175749748471559781625123594778089472119124025577420195073880262074943497953036527671664538120511505436317778864169066880830882624779608203709187781719573910654439265236575469120192990023591542812656616501246588648896760156841450688047148621035416757891982833753923263133558924109954851070697014908792737712093918291555583095931462944222465635245870587667099613995954020099022250726995905280512710371070469698169731575185719211065140929196162204349967066393121642607064916719422484627672518136585891409048874147823440550860063472243231681864707379739142457878865777319457439624486161958439004064655701351117598388565619408050615856006964723067824963349968798761420299782683098703115560014304465063372497298976587677335647754426973872489224458437802563624783555972369001075049053514138518452708398877525969692396516402031061799033689853949905062903570180968607042603329348151903287398057301797103477890002834396283753599612374676378463236014344113441316912501292529495856161487409203594433167128871817596286333648452769686397506734940706664715478219566989248244183728296220493736286727975194784071275181662713181072903756466741793730777844142613439184068732203201873652327101709163657950428870190133203595795142743604134518130971370964144176841794366493765418260645382526739026222687130507352343713489338050364436516034131796554535826679995873404592077977128946335017882338229939297603274228269099675012525420988648573410008632978091486679382865508141408316011524264553720824481296965294340575260944930870682857748468367445791844283878494359464588748335367358865489164668908324085020927317615317444465302495707445612776789326218146666339483619552118967712138402620776452399054613148214575892299376990140682830010690017872236587932672615337368968243005510630149366237060135421005770192489852780660627287454378144041420134609837612353449400216281496581072872533010729041119607087799936442731699603452047221751151402552210633405863598846390043735805797445923037320661991431398024093206662771539042557173002048793850748422033163623898506556105634711093141512718954179258976318355963504060444998905304096754435699248735023986724120528781834238072114618505531876804748888653045627076410424856794585072813967774472361333418486129513019348260423435001378552397560957711032058105329521647789542268597588648297005365179270099346814332078375095644611064405146754560733955588152620697106560791526490740595828753273936469949753599133771794940714352250507318947401186360111883177573165275145011886365400279877582495956109257465232258312749976565494222750621571991618555733138246757072939438368129812239442463765380536661503022718346625212908085872233954610249561997917091138753723571250470589803134418884062707735866196080314652917016016038157948001365777137086537220066886887542905725930881199491595393595858398082749904577969036519941631421787762214251481041308441497110021744247697119240684792906189992784869772691937548830119687129146802794236554901438867741835078165543425921794244140591886059290217148928395740089465130710112951436399319207168738247214829957505105884143850558939937071016631014299615756479024487690693593722804028518274350926375151183141946867514700701901701877970228987200579947497621040287760102750210122737316055938225816862149602267848391248946833999770340664786781127383332486228428144204832045180631069643038397409923426526209791184527373579764593976157746457700736089776836703574103792596783676760091404853164222263556231305121841865124172324654304803698064013192450158301373369299910432534866826047765653844862056966741015536203422350069086316481558847600443756393967331451725107683229867728483110661238804345811398621553147395370584708823278156915670771324153127670749699953287535545256212214767730628955456720818462901121469500957847845563548615754198436060621920334802364334604644563518081691123714536398415931060282794496006870646656664280658952479703063421950833123607371815393268314609967638367560917779050891905477537678406925757311641661304512137825549987335336035456165222108387092182002059277725668700518849904177991688160557015452630049339057306628238657248943321145603482600291117563139774507632201350420318117000157554385937131048098414357396213861269861788236144227399434432716411257872213151589064952431082188534698193728229613175478207862701888920859955473092070467091622026027849235743095566039688643796583146687616859843677999102550194550530113905756678469354913139003634839700899017995653050271742108782875744384420486582552951228336233370351679075866151750774144340713099840880378844281931300638482831594332753136800497141746087356356378719981885729027885308164507983111724138360959073022914243497291841063631935614197037438056778353789040089281476427169602427017190555248739386347858432194309652900971403890252723256563929161518913235129670277121427057808873629334843366747316008515377016134398630476393371238174647466330793563638420092688856192821871721580732809937161888459971279729158978673132985456771652568431103046374448004649301008458538130199165874656799286410967264972540690522318364267861682667440947707899283458513862919871222226720388834302630505813427680580285286917273396832298712998853198369944374987191495445611543027716692701513090713938491325753367095055531771776575850899299134932378644443484899864318317053351469463319578738685755729615527005620263145313538608533729616028315250510042560515296372434900627071157367637718030504614997512977945105434893910208987753065970438631023631755511405601358463506891117938729449740487997764985823864730287257022502200914427391056707094598554157983702238227111419627407476452118772328030971445093895720222742148157574516026449541174612997477204072090066461319981649987118906773825197714012145739672426335423674774182613639566801154481980834284560713888894805791540717642068856469317767682289088664260718161576715295905567271204586407875319986619529892397007476325020861902897335910098448411337502506875281111663729024252419856243837990775012172716472856023140433748856727624626862709407224619609486154688763698838589125351887099637361204963840180160696711546885124102804012215970614876644108285354584206001725703061663181921885005317913741645720539572997708371580361176140938213616946435171989319612335625357128769927671672029799719431116742344185636211987364644511911854948608904655568488390988073284202254107994490711525954454907038503724178920322644806336926191463778611196137518694539328679971843426488463922852570101011988800252582840448509106429102536998315641060782084545287146874697741224054204996822207358935543014928679142012195236091069961194507215484631158275343702643609575649530508391528466300764842762455634713274321760561657894902664392571078207482506247450174589849781082335638360868523825221446674712898579204431146806178978316104476531777539171874511410309970559703558842798243672882114331280539713162237787757643505626938728936951338368081066584425107586326972971669842148363601066332589851507065135883135095747596313752680457470964252077203319902791439295057580025360008428639443343682286828334354902103173357750834438848713942135097287844284241026655252008237264826767814586102328135754769382616264290262179161338518530600893527650298560736956646235170216699893638330079090641308462077270793598884573743015551694897503752286276465857019771587798059624292455521094632203395002057611834852427362826355757468943041853809308225214938515188695543363270115786165473284938711876219330744090414612011114278482952970773173776209861054311469403164781898430920558387203233530395487233856939858716471773464601581953801506494323514966677554881559357153842834129307670817915094702167771544799646395810401418258251367142805701608687401249287702366496765440219309173302651544938226043128676269535936395643482027092014184134493672115804339831201310809232761813506929389702564954261411945428741795143001137105083071125785674462621646631750408889924343254766354582491086097147290811949252533486583279020209596188456379635534874082916308075699461872623441944234653239579855993922615437141303255670883390106656115329759334651431575392926865348878819194697449329201460996534059242027018299810816855022342923499058845198156401246507462602637098917101796040183905106048220717506076997551705671432237320687998557680078896842965108682028826029900963503095552049112875837244101584726968813939664346584982314836260783859416890071633262652729207509900994784883512831144564477587315541532094318915871164237018428507230618816159229501096206270393554951075634007001072434580783213590360563285354322351643898869165707906342106698073033858502136512316396057383970216489868031417143622913921929476961127075205528005130906552481584038247120771270806092923860146817359820995066487398835441229185283556665391831307889793414832507131892065530341049412792634695904768783230827517545633445652295754552497237190869193355318790343493549706154390465819674214009537558607386116602062411505994527157811433165760567067265936240024583173098595901213080701385665511800675772107735024269087742240440650537559398651067319099152533993492437822002784892455862950962975944715308343935097952405336664149410898157360782913454604255785525672106900236644165440268418100489436188407093496059485699886160331512152329704081559905323544343424429847724154375615200325441100337221573955669952768119756322072486380618899825306016213502619124516503091178878049887244451126521398710696926627150544517027102609971889688940113872095506605628217614920389137599885981429726415931829115826118772126785042009647002657370015984695177871203489986369563251260867996902748332450335506462089720709872198586332698220508485531887847752618305830498994127409679108817244167072581132246442824534618714126567458665924366172415913449047095195776980732282620037239472847217371102772139422879635630172655137800005699156317959339199494318890152958286411067048399423896711563660374501850341230695524940446255813865577556110848697854081935907254347751360639533979743526826914102541061361427629970842053342691747112496415400267073704546441014220022690605804655883716079711203913558318884705878604907851966127820308497340014013094546203097523747774730584323760137527425317253661533667173146967462772079653124253311619597117947477970676603654627571987339116432520934890314867516291258535752865247804931815305216328819582096871590751511040637251864315497396011361133725606566536385637584529050562310367494350248055502160233184849260318168736164192122258084720216761833218089443163917958904365655533245168585318842766630092615064939576937062001064430021479822325652198898237228124713855511543818377461179226324166088120688907715139587238458332941962870536764401557873668753772974702698809056465909206706401047301463600576043674176849897484922912609178318166754875476050500576000941724012598332752907132043971376646954743582020053138333459661546424053812765585332504280379612232172422392872488557925211856251776243915883823169748076254502525824128693459130260990566605769865770398171571713196082668603424012055085688539860020316127113287986924461179530202908461707054904988731718522744679903321744765183821854776508877609315331831197457761712821772185235973050937137286909638324210816637588694317070645744898158392553563649180529333730434929458900079437484076059490634487897255565661959251215462717786503208287238796729083733898279312374299432730101037665886104649843484724094395602891800009156514639392811346851522838316782437516808429775358481115480706283603642273005298674128586332236419785309233882611885940841019882253595076358151293288250768170505428637344041249099588434042865722645271933493571808877887116468245503616486339241152658111980318660633384584004248713348984837861192574888675590936534732504963023151867988930089456111308939701948773656790348995351742231101706885582421576873483253439602268945379864738166220829501142793125394750519034674585411392192162728176577316475060224630953318001975284731243449263150120586570183748517390352056898245950643581207457226536095279317204724282921245829926774612856697632832432867786865334494074880321855495621590506346493494045713821594302725330557440017439642271068455834541934629542086112830850606602665422207609476233607997112732487470093119003261837510379144535991375969651404962386477259084214844850626957197273661935880287458811470253436746903798187497687295428166325851324754470084644644468813747524365385183668729576656519706933080389459908662651036096224536201199674154511328099436421424850030631784664915270179555187793638851786097929428072632313177296062259311228499643772107173469303823514803885702830008888166451393639023041249424557391414266422861708434068685763165554110566524793387050188125717501069152325288909519370192706046242227850678145502051597504545162088375955577991339757534755104763504383035198106685577154284844071960898606954317376982442796633207324736595831043003161937008941047667018766379031013879860260265529252809529470809474515424426882012718174130772626764703865042692565320667447851346832449333045367143077960340487068887764612932319866917746780525064462088667017526403288619539731572939746167735818423090527369588588463958125766137924439548201084086793490024429676939357806863006758324440536543767184243397573745054179644255599868825755845843374677179872899497741039479872730552269666315680688909281612575376789066663865711074939719702206418992004938374210333247890900070515743370925341893747595715518076304621548832944565879147946497769924480142331598917070617852085583162893000459356018592140202121057323636573911304442236717627739235575875335197947412943815712010789700385681613127388166639495215972231512262194347816526303907840651879436391875522238649197525077913544853538221367629728523443777411998619172546745758934506344924026729846609538015564911656770252828989170686585505450813259693140041936876372670867020331124674168716876336679927032783212212302352368948182481265096263841226995380114115968990154812452554275507010468614336085529383296524405740963053667756119742019296638163469441435090888318133752940036807930382559779777890577538077228936347264453005448976734485093411907948048956849492173370885194672384026988126211091141548343326908524165722244779794771434838876217013668497393500909973553917440848527632816966138796762587707487703071731704075555783828320566238330449935368207037546569943867384954147986988412764722796751865176520879871736662315794121004423064488103028089010866022830439966254991458920047638206742502224661180224782840137749560280035530620269984090317457428400539018974161640417034714831544815628132741881971455268805273356039245700440897178188481635069817498302013837984188550358805835821026514178375722045049359636349983597092891843068617197738414726266690914297768556905676215346600862741528923668540888674655644732841026774264139957861737069550799900372080877845169531657719991827494538282484382986240014115339105952250932743756341062320443953008404730786403712515970592695573071858744072531762919152054174330051125549191176568127639832554574732306847727039350523380482029607574901122302658304422986800488724516968593030259184416235016449876207800753143746754040699925020565850507277507882183581692895533528146984232260492384337883480363091169929960739952061862709212294090715929775084145217764324845786508877627146510628433512730352795177024501610780448634091348952651435327337071227505755231953518665933879064026164024573994303418889321353049401359399062942804080217761906562712279235987367475905295707532269984352437079507233124100915039986499441507191591353501384997401858915821577176151602932688990631590047555442727907293819285500645288919714037091862536071294385133443737105619577958006953383064981878651751981830682475742562377136415066945591095780773594277236891229708651988083865332577334647623487303444532061418629023780049942507636697543571064239755685927944444635494227672260890237264447604353574216517756738758696217426873309134020263749390936843124984388871193897380764574635701166988039674346877873255345997871060039358345994477568364725268703603463929466346154619977558954171341459393372741174219564519486818652399205509025960183540218534334088092131586654315928141719288735839113161052251201063707193963405952833053140888758426462296878205724506874607380652465822175059039757033900333968779537648190200206425005485153382292853971492588856197192201628583048243393785063121991248028556000125926248069023170788443012754409260952882760188409248965155390313911656193446785556520168271594064571458198098921150165424336546976920110878967326995375306789214068157909268074736518949532377500068990807748169382099386911509175693946376166336368517663092848764050515699581369483347076988715182604573204056023866074846028067787011177625102594927636044205719309362333646843314919553818652696506714835720026142914167236620232189050445291595160945320633086446359003848529945432961496426806166113604855201067633355707112457259658280538702719075911083610124940473399952663650435145954751750274916573444508098956384011653870260130933725514938471499025832074749804512119639187051666609890268612258206819078693730795803131421383426083116312211598699488134572769213228399485272469560146608247162089464398089824631284591432859984787821086908270339346218566080352847905835767858315210729717392295257455992430755845283590291890655876994407792734443320967930287321095988529968205704636579968135966041478269306476795644402896248802623898183954555470310055941544879793449844875867406002593892813892000001771693439685767745244273593083201328789835559003939952370670469721826017646549327523569924495569644969330312918857376297891167876071380462195215409159002087151837139744711369028262463936659715832761495642674565020110436576207366012317089206532617859118205811875578984115296583376665948944485487222084022888544640789533182879476314705454587770008454185207213104769032417415161794488521270321779106000886242460513342523577719076689046235367309819844910079989767322329520120950365273330736100489919527537747588475269709337190135700965455981678189751454340705306659351913840596007805365247460261477218133399394870680124342620600694522190160171635118268444189862926156299030051131282487169610659821251123440639010918192064000713219851604788956492425445474875293289691195159559820727517452450124885509761468513467306230555236766817169620935955253552657209836660645147966418913972963544635896184344759368185698584351984928953537376059529070497758173780233666469460746890469568232473890038491223839228256345663306658868944706828168868369859076778738759569447998994849251205537037719557345369096217728124693804293886354854081738214541397155321869650507791807354585398329890391486199612675643512209880070141144361878480503156280589608154409632016044457317868172786404544879175655284531860916597366185642986136500314857792974036977164055644040393092041517994108818810338121291776665676421155924204031703050643433980144755248604067524400208900263640374945440872246894131809222405858834842832105328335430003420686792602704040545706350536603876448947406460527366872950965876273750982551570735105066705870769323916064622655483471608144689956519611844638126416087365483269355442362717623276003983537901209010356921089227448198824263188113099790610943565884425563081230095350567392944387395675867240847644011262220675347006707740805061134852946456392845938227053837358194448163090547494575728224334262976613547134703810344687208054675243048767951503742073352150211048962339259449934603353441120751405836429524400466645176327060187218983157699669505732874803245753571535937229813666517977720859499518888150008061659522628689467213782163206557066454131342744460804512184034529712805808642225806104007416404861648200846771750226836878506542557812641506829193617142964706822462529090222629997751809403158277299157531693267859895780254324889071705044400342044025104297533605423011307439577723482345725980096448072991481834593492357094570911006605800390874528937323318204830965680857513354543287199792128545397023579359205586712606677803400854100047620554013532376742434170065573852308791718805184623367295058826599879207631270918870218570778267873352452940898064486773283591259796891567659070164543624197127010279895470718288650210420096501641392297882166032312265043106592596635396721391285399724379215299745436139928314590465666227411049091446826792063116082592057068899574998247738354495974128536515503423365288236591389231312268970413374599902193224023743563872847717930117175666977022356097986774779391548856935721612675952657397661172187869997522596244759546108242107445728946839449340576382889032898215101635795773102493739584500290103596773992288315897041115977876753165907501978672542806092977157296681962777178177624659819054090939286049790136714731200570853339117655986019231560268598926424664521600717601032261906529541116016124527360825724719871124703417585091206760971087169909895355054541124439293630826837633795786937586674590067033190253340079435253641730971031025036391106512008797005902211992105831611084880841255488425954322090228010087679289275208004996769752855137399845370209587342506309817808770729757526196827201578905774886143377859388401952566234260817800460385267985823514541403648873174591574339206813895948188523735812711807484338759494241363947028774929146571740422152193748901244001137633461188760530635958774611492656446997434348955076116841761247583110533814077209954603336365758664712971959144608287910258012428592308788485590265882336578875316728032600395651349319120740433013393963933843993716999795846504636309357612738754763097107345438434701320735871169889476105643925664832396915058462513293236841705040162155096140719544694536935936518861446323212869715443922215252599472568551377195805863744500159262529942001546238315237003912387971200751206457674212734523960656487187373750365851590904709458518060343877529950444954778042458831588540049852932810697704982948284290430267281742850044164710567740458723689470568216363497930765871467067952510673829816779955092710414242743533993818025005071352395525422220108896888043974605205267131770211789633098870655621594553032484414555692690519411904388538723240543599666374770066510662294233200199648267291826581152298634437135460942029486490746107846308033352268242758964864894077975944518442629091055536258169945480065092578695046649175640375400478628578092688700831797062434395519144114279415828634754946642750125756924322465977545173904649319713168261021837550376670029681329916602178967520691788838622943459626076924634705998603843113158388543418053684677046621171579342348344999259228938046416474590249841459780105957914187683883055585296415679388644437558489354612326685764816092736812008684844877489549638460564600908619752106902220433979823764916933338540682531834306485453764657944494114333066278766044316455613066728273772002949048078139523510430002989409455152732967703726319303660235855870410165256523955439398771603459447262082662777650681415763322520421987999903305418412768270638512137653002638335037836545198766497408082938070159015985743241265861219798270304286976025537943271831086521049776889567317999368644085906578133715637524547360034232458997165903728748922896049725879304718079583853071961597886927919746734025304227572256108079363006996079544132529552007015959201229606505898991604129056866100650649576655749612019912060676454657907744019235834906187286155205241039954518352572624782228223732075012435419529218358092569371166354141570025881284887548272017686464408273064880057951805415794057967973604388960687222824867605348549000980055604214838626849784373751246085397038421898483518646271491343150251588912843190557654861444448826016503696722790162357094263801109717932564029192751151529272684790816580972021191279169560800301115140428427349220473929836840997709266152660425539049759665256008805046888168058793614865403275372570368969049698480656086119972209435390420153899787817548308575170106859901872770241297872546549896585220122582682465495549179858073090659765262101598450404369288201942778363350021141523099424250112972728807032282642975984035595868018932641351997278833084302991601671276790645244914540476853019569291773144760508140597714795255976459397300825170063283603039806256520233984529361368730756271301523711761362666117216950897515330607372257986901274135553429090997921697566734879019164965651982404301871908713502629127190259179282293245528444327124098957136358432096824305504191268731011060887404405812592525260852637514490854338326004784523955893033130193202818134256148481569284793351862249302782258519048777591992606411650581691128941742752651093148924313034928509153128406674809427853120993821271132003643947783106062809360833917166128478014205865521570689599163610048201119204099522024567876300263116653094946218522392940927703551201486101662237314597491870577467072905930581730570790843814454189854103979455150827010172223960789011606856198715632786413789335284994048924914858029370949914994160469854649249854412934470168123779265832524125744328782107740716977875733057476508209422114711159826570385962964007457517267185148116260420699961923060643367118072282615537150120217707982689033453741528946238493795615346833140235732577286588023195963784031641982319533440742384192694677556879392831815020349053736475723677780068776069682206180314437224261350756803664890170413276203758205860907948715198396699801904726399500194650554241669696363679098604881568976327374614038224275937417299234522876603452427663532587470005637917322368239173308596726757801589239113971540991888077742628251706734870233108468224026885610917158496747247086077456487503252482502857174823115436729718629909474334122874981979121056922494775497196763193220322627027623599168909009970674199415497498714587206649686657338828896988005965358659796462280420638131806768809793222611611233876412569494183985933158939882758452769436834346922526334181191865941280653010654086806946736812836220565420783621623812522742629250149714674837772381900101003088859155636843368448220103161979660833047103471090210403336985819255742062338294918509097354205535110062642097118381777299107245201287583467544175062641672235241096161554687270242629675765287594516540103178854139554472358537880914670334486614798069737410305832361609541679246384558133659589408514727639056841273242417770843186243240488192078398997180143174803299494081980051573960844109594466897732577962764813012770738924561322716105633332584699311584339779685432837486955594861089804374371495773184884326082682175466526870812191587701639745465645142555238798151649899032543472873468463935240948605040452570954075212830145570133915176049928102876240341826045328391300975225053854426934356529051592493932839762142866358825561131045894130534385413111240004596809334302519053174274483505119924221291906129274394966511948698394080360019070758384731752348880464162509697347724831954693300177910275271750102094507571347615826661059114386539243159962471864738426413895626868178159738218082526704455584800042563257554017111988407129905450545399313059636787859447106544334607754861603056243215473475391071264857740885307082882129686816700398163816055380220752881609589116546202253592228924820982163603467956074616872745965299483604826294376543311585851696742332150829732558365990442579855809285148716613382949889159295363503119799828038101561912837152102943235244027636213368129345396557957571460801766634260720831068739436209919490708214335708144529168785783791052601831899761505261433923798027966286782645232225110467853458735321736463580561214251581722789726215202457771288652574812133481288833394887548143515850284472302212168838538476722930442496855770494361279870932355317048311629800793757190805779405598548107512791869011924979829784273122724224215095339046776058954439752850718699694897148068699558467944176264209143410509535653140854722920991327834335682638528144275024431170507574116785465870236353259733118642992281989421806324963536514511467437060988762481190893255239042635374458888417678942420857169518422625174200795444756789748268328183834771488810630447214559647156870798613312896342003138852853720760930297012211794884049062739861568645420126789509873606115969743692224613879359510665281616110458717439016677836574788712982720895441626645967716643843737977862630722322227554415763443039299739011958734538098691393779993595953434969483465543471893855473400820929735496034776654267409241977877366167926857392722598732476253605381069849409200216281107877296493624184110442618745911833143689656372321084501495605325992246004637499884344699385779184041396719943107517947388998804515379212363512055494453552550045832331253281026719822608096501313873845875521152682910605344408295736496140497304614098737359027681110506134436758716708809995312528334487654837341355286852886778732497325672296400419262206576806243496216167698349935588930880503417969705393060339132570325174474866508149104902647797174108463297292827797883711316469083539462484237384799303004655501179197275612726839542535716137270738251677708055438265542195274656927155453779669493270009520621563383084190087603676444512844517681935526960912369118936292036103256899453483168903464345095127339599091429604562840998593440239820571526371505437422278946241463357120791134685687871635541551020398000859118156101233592195302228907919633978908249971824481982707840488825418796967277602835243378077826710671220796903479093740624877116895319157717365009491866986153045106027162601508524778187405690276430119620519390252312511011254449712950995684414086621947822061632731348030220734317718457359997544574362634652143275988327091933560532379183525233081146904670890866664030484266780745148513815198444639681690352876273093252447534710041888078946739315848601261378262828540391596357605569743435047979990300950605842747243815101915402662077828903823237066471087692133258827926041467364739804954735972133853371354341464715163182456612323585466688439580497233779856103961557439769467666271687514321907245006708852690007904639049733143735251803933396289948942923985605608598080858524099546528337268162565352106589506125562870571977306941855570160168474033455877107429095786307395080893759089057277596344459658335278998866120492652957898808961825479573675164191617065839071349826785443259033271730533473219285695832608062047397021930271457850716791667424398152882228091877910114199206065500811355693431683326543223167751706468738965441331943014599244307068534224131246603733238020124432016191149837479493227393299623895060570779314017223451637672392473788922723432180728041046564652729618759166231286574066360419880328029858712512584562003072210397726024746703287028042335346114438464680831913772705544012457690041448911261850627165947496678586708847542265190383038582945880096122663713586562421176090631912377227632906374878602761911164932130009388266818143129610547141741189089832228978225437490766750227431272273572190981753535902712570346205490116735444260823655045969263024058115973627349218307647209617964175018101272109728123308938337897867153788322288391169288841403561193969153956651909175006623916748676142176268186808820933719565591716590232501232146728346668101008557488021487919683835529379709215465982853083160057407249651226211720407866366918785482806690559511142259636188097548123362874888665754117121705835833245306811565932389142500680009452820596634305279041435023582627785844598692470909735445100973243294926369313548103465929321692761683834185188089286120107756675570051693217731296009511226065166578932837519993921317753394830908276958634070085005372344788750725931278745088351798332873901807394208906506022567759218956040305419069417621907763724180595095600711429686657943569896596062143270281428591577506427590114385754645381952450080097641351174302653841726584237630685635299207161851561577225103923133912470646608168098543708999685079962207636230601001488064150545243828697495708774176682048873042378946025801118003647052524915510550652653362635778346813909681920654482169862100788998410193953995366850067297026056631583944153124389187023096418658369068674679759010628291002855896061452701040875650558235079023533127203098637280086772237326585200863059348969289399145122358497607184244661106351795778730443367055847607272362457005754866355869173451137702001661519236586381934714212687419722047948611710808344592264618936446353968179059839236790321126861289755542582418604375922974194184678151195299719255163933577252801282520975338206324375704671173132682035404709763396482106923768265146559096836760680327092214517366854314660461301323340824645880920542004577613920473030259463472651576352392086719816022225345842863330365896894071611918214491527355367961595237437534449052778778041292355977739319670729543763305210162924344169406203941013285286766597878072249647256841627440359237186772035768741488805002610533406911406004097362060252254288527473280583318569941509425669503217347876690658321144236241830079916513930235327772816048441021114650229933967537445317153018737609259287591689182388602432714735365657104604848761615010711611773027753722854255352029132552926021711650078327215931115973832019591088876574110888698001813862618200028296119111711142524564215794897249226508767496863992415003428820985824536864438847660567783957689079936201093066446402457839898261214841307758810945586242832301895256977607518489308006559800026039191874171604511012784789583840661497448844011534967650176128733242106790666996602037622963797355668049226317629868431306256416448004883197321005172691083442243048082217384068263378494248503169953560034400916504450319749479778064118303788118794669290720731566946890202367532296993609633145014063256153385020254314921651394848839349813590285944089699498152421836930190636321377660381341254718055265792571759218404337083165020040885126369028222325322227513206725615506283423582999385155047458794556821522558327114386842276673645535176393359042351812399351750152987978641592863409366331633938399480447256062151236743461891442901554217486878311906007285933714187914477270055749658414617709047010629133046412157717115497080425302890255902941774528180934606030706893138576571974967900702989355808168445906807264905617471477368662349711017470503126762183363581605192980587328853895806811553592442388666394493768349576014171369952962851105941091002937146639817620557075450449868077902887372665314859738169442167246686703154786415864797417424320937586171878349203911065597248295504006479674078003162483782662087650775765154530883279798983796770258760523263707574261937091357022068445412970685215526957931878157917546070173966538988774522614148510630367342329747736654552439183724446429987427301793818119505967747379854360213839899788075906854486468217200040415169723807208215437395619807894201631637480270302847349648519591760551998617345918085151189505151973408305384973192897953944107542308912811708981125669260951853822572651025891271971547514294695400121751664341389335641197384921903432788268687544569010740806673164744774539431066866259917448463022283894975691133975471961978809391204478901636556738610292541406585285358471879900954397294863686963912342095592374908689411536997369507537697806538434514355961889773832226690392590127016805192218463073683083483919680320922025305458561636612882805087284735989142072210042687754410132337449114212387619968075774154631522164280654278495095111026586246163358959860998814209254988154569108167354730383156808653902692588656449857595958382967597056653924231968157913934081912484173097562024513807454338645288554805619026609869102118485267890034621421432132632819968864705987002292804428349614245272858514948542004005871394349863087495924840058405608731752738629970470369561462137422591275639173689725016455091725611810811159230294321049805783075337955156756284303917775441440033805123574680272977556306654079191885271110459900224345559930947296355192025739271471622465196373317903874034912874589329473954764899925488856709691050700397431528807900180544394846379976474021490136810354085165883366184794678440632977984492839112461933522740069250487440944715249161823250665480330799032270984952673277148178967309179247572829024514145238283098655197877642195866696648531140284094085424571439787078298397189473318772649912979791714653501472788487075436593875515999879870787985502964045942502566359974500890302036555729435277942436234192290465609694475295722034870874326358563882708827919182289244243923380782655768108195143554722774294939349078540372862845962422239950173379779177288742349329594597864389781173388059806184929493830677317268195242917804989741466032020367029329507601580200615965358224117165485299426921446208181280895209960155033410781774370927271104480869390451722892926982094716572697205976863289126734704408254655260123469720750171749125231018860170179935459451414128105785326351503870492450932345907510569823716719259470433859717832236363077189285510368434777037511470458933433045242369005763972089123905569321062461722918946770535837981969937074143265439767517035085130277437787473550267085342112010719297789354658138993770633951752178203013707586183862071199673641209934429940209373008722094760528656991333533510557461649138435151577745362374578087669891453275004854547331959904768696854846778056919475736348967717861262697294589438820208001445521101310561302045958198259591055279732948972151651314379728904603543336176302715882816089969391767662729784441924141574319441856336244531945898993111677946099606312932437012682671561823033236035452061220514369843726458577279194621988060733987268903611531802184889996818436757409081226255387563086351405735947840519697174444113313772260734635543075144352656426679918682163404640950803104679278091030380697346963176883392960025587560278688772680284618679626642738299544487351960939089406506851639755178021439206826622751286008115741655216177224264236246060270743117833946810436296855510085024566985304198751194665295981763934710913392691464470937981928571779380411504730247737713360015540212149169985923286339857021556430092009613943420915441347309627119299632702992282527595178607616593734368107648964985514829003872165674817082197986534706257163988985988557059048563032224671919340125005898289044127853415547065143796193691409530018148970701872645709575129913371668085429655545354884880312262532004710071083628948156648825138809325073012050946343480351535576994694528402273864270634571069745085910175933455665122993399055897161324385301564705515401215871870667116770886582910592760815885565607906790411541344443892580829321391442156132627382873164657655086534259914265305966936819296370984243283324407480920470698353769984344525977723629752678746812322587339075614168682134944495754399620666600665231517115212586406360651763200423426137951398043685916597983546570306692434782736192085010870098775461490312673742498126493174297444358469451701545525133602811689546790196088414229235277577313578343960396949531089805534166809979269899642835535931186476965595222761224696336095840204887433260823225096518789755125890245718394332677021550001741824771841701457964535427897335618315609044286812876152169469678240045230548378490969870518276736383527826282089054718080836458650155663949895709767179814441176846037560573676410318457695557294129071907026843093158698252769253555754774067813462936215549642723428674307695773481131477140149508381913871421063700361005034699713378045458281354544760117691864713531984099254489104490378882322872641545236146329668283823383729865725910937370804120975195726079687847130420623921232635765191336142060816016608998793399970835656474078861127564782228587126660518764787303327701047734611924192126572587506477231339455938134266322248318081864269317519336673051089868184003721103291474598227906933565327542184198931894655564280713661572840399501585687687615790031576777788269330866407225759365557666886771660645729208236404364333771942469141053911045321794920325947588214696154278386046403820315957186148412860648513432510429156653093179539295798765422071772073965076141777571380733865355284419473600178697360284095924662594443749093339528249211796545548587579338200136622988782368300062875076631823080924785222776571619957496870798530549307074392421877130038106798073561855073048477194769417457784539834218865082157072630868377845710272684833337919699058064220906804959501446223790392481970436668266679150995002536872008475184879061114746501604310596318431013963527413834070498505771584627457266271992410526857389383270818503410170858935920347928401695465210797870713586166834783379407698954046935952088314913797667220851359381154190489071915900749587055129916585773323543092153048217574925092339990525861064227920811631097419234022361737477643530364347325978151680178386535760275375736357704788169628404897489208103852532665172613604712247083571247215951466391211723200185397781003392198484816112964923619265542022539140505206255881279876667756109722659677202571461631584371813489816128165013214891377996499092069371167001850466075509582392644729333136449855258393694657651880585564318821810524772791109421595335386741223840830173086303384069504084283275139578186276416354766843653293130220782787247410299617551388628164182231182381979633346554351470026288005836432845873983265693238128268066966966418197277624845053693945786769137102459332958721009110456357497834462774009973221314807541710310632875886046870158057647882780277079276520980389467036281032175374510585378256466435156439928868222721091763930116823698814584860652094775846034282232913667643436323037065597657582559408406072753928750169825869404104151068459139936654143424349047715506950194291473050501731078467810051093195512875230154706885797594101884178457396373635663224799333860203268022428490759021867884738310519129549022688056314202287450794225891301819022935067578898589309764218692161651018376516189484254948821338905509561089467895703127819617112875955856723775599060137495907777465189098075043696630637002040812242090545323605469591177178456122820481295064729710692091209132152201271979227816376069498665821592309107415905422674032452096621579736590767778618701479618894602061026214155076856181088278078560649676503149570453642997019648874518107946408944618657173184351680307939121600171966344925438990320750494217391257592662936718481577626901334666558648061955734241641493210543855591188418436731940549115121254546427772198303153802983326664811070760778807175171161691282681416663330459144420200008877534751041226517829578538308871301854536844929203672480226809590807883742042713603763911696321301566680056896173033760424178659262584165321808066974662372754901632536800951533696598717834007257750708131558562939217473723457022506224821679688486904867372393194247695433236207457599289169586358807391752839985293959239371161417841093452263284594387888282780669741720851339478608813641408133695701850537048400145820530210162053008676994902902110379189318084472029410518141919687544914465676608475505565821855689528376122161644434717059408415792554827607392309898990000930978605789811174643835226215718048142043033112988479589709718482780503115663165135320135699889625970084745874182729542076588095322378290825300308237011839247233568664054494151812344617691981218387448747305077097689740381946128722511120274381365844478164486495668966667677567088667406467964127581421760324372916504563779545127725841535289175113603744783545618727432888597154977996911261251856281586669195183727243968366071031981867842555058175066094009408129717464576004514805462908645843392155644207051537150315630276963636545007880931687273809337584963679978822844784718706376491685861281834561814331059114128662550374062224440146135150626347330431747580241604004976930286913972953825535919102426720048391495201035905209455836113434512227859156422961109601287533230584381270489525350728342666402316982440308560778101773622970904299716642064625444407024772399784851865066973248665618986565882763617245684915813142618306287899857215237430054535382705078652287652935886694028909083273983780930239528760624843178174677616490411199171341939050635861085678834953417039353053549748571405240132495812444952513133022128392123697808047072322454898970908350020186938244824728851568172425218146095735241289774327878401342124191279937287511847963402523432907567834019501408830148271195568755777653548570868187883022715979029227011258910804574188891379370965146095395187127669927037713947349670237235305348834569302372753263971402394073386594425259505848813396316078235486377560623640682278855766198429048055678071733170686936108044566017749119091248613786741636912605968976272175020117643742765432463164605167361285206415098845164556631214699585536928832616511024586340526451665353454203910938283251903075335394934933717013259148124892628879497574784586629473446853302448760230808511248128951550335192827831736032796816425444717027330553502769960484490607022411556334503744381781607166677107320276789451584730050587808029493381317625981905427084185840541165661331452070560194746241577096893035271231257154809125168205982844273490319527761424785340383634489000219749265617786476380732612948711979995732256831334152252401876782264701565622997754335936006918611999339379976077344167373917002753626378955677950052396514558481160023985977593265463526323335144881869559530001235974966208707796625797901131909181944085501103358598394646343518481948544659204563644502974989364627257044062726983481382038754656537141600571142118168787360546272539771827911626276488708313384860426294290745050297414766100258384560909678159093536378290054711268601957702442768368124738766454980325150803275430119967420575453908678448300442603930164615015365197718958526305513571566560318279244891727710063876526569667246363001419629059845011625459507454030206614554552908732018988320822909116627404035112886551416993174156680333288331859300156928020372346367644331540873877429665102083394922448817431586428829161023562522706478526219556028353822617026117181232606027520487307946300228048363236582356283384233987430069106094237844792559480954093521916392612708916903408258992637024316939488157060437448407923655219808265507974384563040489712961916882971272951253560642023309835469612406235586117045431846201232818184393380285630251758009893616495269279920946145929668057416693192795102777514748418125181401180056232349621128308274824483561797215952592437238651023214889726511724118739197726753836393941767409534928501779854091379381936569954691982323982691521189147524374747729797082166801406965242926422931362694133190625503074607766975353405615990849481841862604203497674182282534442753026545943493666762069939352370497909559504330193423822925710994344355535037941246811461746730920621221109956878358146752154201968064379312914655788975190369862050688752069381112629882504965685870751779128690786051660489738156588612748693372910050409353519901754701956038607261170105691720832341060065795931348509159107379884511126514935389123690248960789610713847016281080956647236763293496944056873246819849547395887863393156963267353938146316446774871305990452073004985989175910008899827762238803803045602464187996022122168519256932507738325230135561879188444956500661326805186732877547700870890963055805732735690585433066510498290368405848728927047355603748652768193427598606623377770284842501739064291931502642828057094407363486936421522079268894450289676439540866378924903164577970299570230650217281533002902006901066385232962339311391418148558496107143161369065088831269147767989140547516037412896058953686409367209554771537415496639002642125361236256449835254295301276965750246239691717531454465702299356929231327622575665076762241857792321086427781766193764246667247105150575017828120094685520055152021256194161097731959722145906540645697000551978437287443987065257291432255211576805354150530895606794553755209748573141445780994572288170097827443510684169720658329612835420962645130618475471349025035984932261706700654584816568940284865376446246103330774119291280777046498855352835523073236223144733630123789283613531215031036901647306679161170664906498340839715523075168395810597779177933031232783869482477466521863990250086689731965948887179188652331272589609061676169349739452861267760286682548064485330671466160644807410956888146370812307703102132414504527180719419127476727180713289983878743638686906705406998729182074708684425637501886039069426033515394015511508575581296462927184746329909814036450667143683930580097538881151458011634018611531169277714098201373521036797131996140210197528843224508799344254711342570447563297042524067560886088703313805219178061652981963726537092447715817173460041602221519927424913225686570860570118199083535737550628596958535010434490626221386478860880629903896258957365041801079362464340085236745879300721177227714586282684338233959794694960216717959732615335382624801699311142282167697529226259278260023997204164610777232169784633072400418303192931277251422903448437968350088137654181299143266048924917663923777997739554010830161975327487159423185974648629660474045776125299891524560113662200488911274109113643175518001266254740254920772971625145871933889201980333726342679789841150215373318199268749367947834518631255168361882686338137336632189958494319461627331279074944290309287389429249237395655829736332813439904629430383813342595504314164342185657860041264635369835196069928223560927586041392849140798619991791066133989442807573164748718599945334850309965701139170629421639514022321113323742412316036742740072729524239525348574157784361582408162252623414247226878237870686338572648580495117834392242765234020342745398191349821767885585761453301809053842188336886916321308393659156909557467159094005063353088630672244024236722794090530447980390347620169548885633570677012436820768312622794680977813485395859359452680596799438207817973125235092194239164423542063854081143185665715798841698711789297986726069768109295334560207147148242185272060220271406133753496139157829509337497900627438371706902122867272018542182152459581083812545258533701824953994728367489220194765289911575497116504653304341392163079949967337982514354459672818010339946310236908933049757585458661830416180845437170130616040707608051929538470028051041727594525159977532499267751566983214824068386060925464545702577852319583403400389045761610985291453205411085800729688239841931732698303407792980585131787800218332331248711893093760402908247303586456282428982625035738985137971597356194577799605375615865625701060246233239297449122734712445042408488209514660500527178243296654205212212641908334388120216008689924950494121648887147954598928867934057774579558575900758787574915692859062833279444744141910498712561424021526281417510232867136274240408647874135746249859939810051460231103532303071543459451458298190448623887803293417184328442544977042848418887465685863539340827036637951267282651798612926408286894485436839709353276011667703645198897903475354199804557056204015117223227984406529552562573465771550668311332882633290645408333624331747939611789980014531750168531999188937085982892238846271543223995015342859687449666336484280153095584956696428680971828616212568354790006680880398561745799537066361519368064378612861959227511803069400051590004230890206095381884928858318803575813359523218662717609903289659283300841517126033669719503590202942186602074504367634816514993839863351801417433763019542872101536185674194094856413681459242028625986358388055488246504197662888236479322819581753167495575899126460652169205178102555340246409039774383714368966552470236715423378506130569026433213263279751651775456988352278050557021455438646244023759966332994930345366213776447196227974793138061815640911080808323579185305467040814983386030118216746183296683474501550946882030345234867371163383370289846595773227246563043774435982533016917831079779329077242460118734540088856121585520474176350535074849738326166226265685658749137129223460706907645647907295180932267497353880728418408119966994154353805725711817040909295073719602381066380639457356920322657787076293999189389543516317386056916007220496802967221987820086412097149404986354061232445487424487185698577299885813464836388955019950940009231872665656451043804254245201961254336762312187201454359970463521036288487177342628925343682613055369346261078617672320645601775612163123502205215798094832565410662985235821685770362817053125773189682819606066510107714492767342097229063646738725082855595641848994886484220182483705569685337474825761355047364063724834806707097976953944587070859068777729281200245996918820187228053792718131044824216664236934923506974284991009982487768950651572044467756756865303924046500913738293716886173647399031107292215969132777352666326246907458896232069273077770756178961248373292582755121978970990870789114154045346562714909037421427999899206642765223013667097249355198050467116990132085619882780782323188979341503395596798707626456506233461322954055861536172544470962835433056422236095480479506723226827981610323732762263230858235217061290087027606379355176683353220972743458844870787248465452351300688874470752166469858444330252702909023420868481170101450531911949736314790459278520810296173800273986603859207126061775315261044470654605126694704962537565806804649877813550349567559288274425077583288281568653812064536157277057719693248301818392456668690071462013348928377627668416705991440099913477534109358724274182567142026786770188555528569426004532656205168008458302461155051272741116171827402518562483652376667273851992680355969394552708792308591953707596061247575211671913362167802859481274847830311717621236620310080320790028779643133033087927751038870372002959937321938237499307132915762554371797453358800559712283769884704315828867080246855067416622097083455142333361614725097465751917451219629846919418832582406506196917528157707335892951577504693101813733076860687237672039705325185070777311213230449329279849337729754368548673741037907799618543771218934208166805250746889460359622833625097333513513184891558241986465332635399625484068548380493009839172351881948183148507738853394572964724638455217703611452387231404275213493312810911331038317977349686383125031973730337108514649924189201213235291903251521299972203390758681543502614696544245637679616145440872179672182872840553821944185700302060645079636666910130414454162059788840805270555768364813287258693235147745137431437725270542776656836540478377909515435367653885358764984440193837925343594766289365012726117707728537236863868764830138084855171015586233250356873340555072328268093214983917497438169912418408794126368123001153784988023910893592581737831996942179557911185765464835770742897145761487067773645076808088509748404259949397745888324507632292696573948147502637628486362644103516799753730679761319995736778546716797967940947716860475857952949551782805720141204191181816163783397361677843945057021274377775021468463871828850834839389459317447785271742650957083688848899160671313049704902928810751894682345240310945960489347064879939897755313108185235882634315960346607542973470550647383126496104148246425716096343197708769224036267637635811275892380400581436471966505414179050869276657986592778524049786074476664879446735799597855970891061897454295429831959217970761668378471500002520343420067501554724042194577389793995841631901828390152536623832136519822333600702629937625879810677424391395966745730047958241738104875703320226961292365693394419817690867208247127537751596205315238200793831756603776085036586290120819144850824991442448984088596854090981355997981691337354424820428964096664262844327951617035349049938919236718903994960959974291660663151111212958509603617408135718773740114774954811815896920278122764100128045275730416596922184375774821272587807468111874183767370722926567141992586289746776418707114576448527287907582423070234242446075005114373177076588659818291511867506405360739425746797828732557085293678435155227390566119637644807670060778949806496344901089188435703716043716401896099689131649535287205727100766347542477374597300581931865123537343858043723760835255603277578017488275329189781638774723942342108437973549800518168177352451846061254814593897247516018870588720904391831215078677558616218956433081276958404145155980900995671131290947614613910535916125800282173044173638830499389091042680085259990489254366990405848179640836841553476717157097456521803982133871971925260884914032229469003852215666575349707308619850221247044428358849489530137849705739372773740881405233620141901571751484973235446160411357969655125755321822966894161462724463575771548512057317926261814320640768941937501142192551964412867047084973574346154808615235370466592413177380082104520769496341762453370771791893100223134225278109202388962507640032395068814312776345976555583727291586009037783828992435200959392839642146554283877688155769376545960029353018315629829199656705971260505913062176093474552428154219730744306744320210890241380522345100578004413061819282946995984592429739682992687995769464417706007005686253031996425923232300015913032272480334089179212544186110421532542972741787523334933064083505984701083332551789743448761576698316552387927888604853699872552821631009756214706191752237261159039349155730110037689281257158621737574402363705736664847692247898697338471873210733812236627112879215020635023584055937518158292671511899295618876431031474123293404909449858826384621623621458362019030725338589178625181389801072373841465192613491951161030157043535413723256566192664745980842655988974532614028513015823623154410989750420080395548612626491854118272272949596323674710587838235486978272299792929365298655186292476415884823896929986339486813681696164892693700725040935238465321715992566324571639079736344857134922442700543002355158777774029650024427307109096552371107611323213921987715295970144404354409322292066864719316016810802025549165274577247727782436901694419666693903286825667404554794180210510358521599122699974826007704662015741921798761055894612802127806472478483666179503438671804705354899120820558795062723788897531237599422848416451357896683070320304212337594879790882711050655985280676865575123496154774021123349130794879866948091642238861913066103495350233491452626582047358468161905226004007231413768452307807760028635679846011395524405853093094471827489895343587470649742282926540536286905712511144363554903494802952926981486280370001225072679777310767952624776445222725526272015815178320456488412255451716963430856841965867768349128112722427530224626568856556187842659590979891324719904262070447841431005156956104502435895315824205742857640603309757741655807350082838088447835494934973787797228629343170897226555388496911389615893096861680456279087504188867845487077597904578612126100724989041638731892939509956221977749576371550233692405407304841514654295543486450136917720159929237055325053586695522648615255826126929034587329402331909262163411583746048655075625137772821718793613269147030729769273241748877970536063784424776968925084214895504727451122491394649214015619144875602962502594850897519050191530567011114999792158134111860368505158803676118015080805410567806600113222450087043012740193284108112723635433425198474465404050120202881866581997801107271657194935106951590558381648422187901120254875622780119513957710325894401873961789258105867379130268097731487417911662103602083693270876059612967331750853063245016055664397306608549879780090749410946028585611097737739103120169247998013036108949817090388057312175510761180915697742049294486892394683343130902214092565527204177505479875402213589113430793246553815406276862892679222754784280527840923130777145408226323839254867945757646082227223593947477366124185114973223868667119899000912268002248789140883634254308142992788378826566361788980652581026749946287585511343267082996289055033380354091410414559507408508775234853843241490496753803552834536199863119537974161264166983582012156564812659416912089788841343617038322803356341725397803220483845182444407004797329415610166576312589420689130232936313242455223338931493101651730873245776140496916501219227715658682480408174314335819128000268520227664660809382261216059587346363691169638828480152021322884371764413144850340347491488703635200009322832337677922356005534436544242955249751938533305142583604253740937705452384885185722063743411891531581192936011937998895209892960152365290540740269744240860469761859955353352155978751139010377851787996010148757509429357433832237994728502107679598231493112746837168766384215011799690961202564326763213338333161041042066626606449966421338205690439535632796796174149757072306451072182344790776750701736482258924693765307759272237684973404657180525513128511893036679369060065106763918186179670993638807082623799499741686531977081940714074466627760800656297777316329199936932097251141307575652930482485367502783228393179595885701046883203639724781931387508583001987041542304297272986635233966505905720550498216966215685514214264729731935597525911034532077596691715618802276154721701858045840187565907193398943694738516877921598694607687966094304218326267585338328815545312348840134806555490373937270366506353182417000557171214802119791498610408701787263335843294658104828154246167135199511443813920006539731009660741506782928201460152968116146407365199299622691555039348525451412823763378282004482828934458832250258514722379762116032503064741355059420434461981797079306131182555579831819449199472344355770834453324236931025031079108300750073008552105153210796167262137712233542538711708843434976644003788161845971057784675158057668800670607233444973485125159489368753267779301396752968961927817408777132952943991845971463708779233476448991593612816876180046745965907961351725181946674367754762445755676728544356603210011451025345079569351670693281668341584846296474046223374875094568774441220511916738332543809793726834399337898803673097802549132032009733823579588121123688666423577331846367213660942813354410824877581969125655932364090531492967094619751257637396189158059348481887844662297878252016252285160441772135380763678515435574073794556275051652855239337919954891098072497685233338937222473716572496521410039002779900269949825130526711077240911998910961626217472979006906038639085166121879732067920642076099031770057706706831087621606538554065947624790005653676440055786797220096474773795569114128553534276417988821841138798624446967662349564983339675961293186190456438441479734354179938578348982817467215984622732274145587945434359389735349166314501190672194815588748761657029990664576934020180751745740388176248715811897049540493386940938289563283501056567255913959459591682036880579968296182466142691956974744056494924642503498265952308711664919213037702678731977548153401134311012028731540053564110029140438635552255062514955884756420104905442447617962667134130639292825036333678312064535190502644074534063898505645843093443003731703489941862339687499127713017010683639165313130091024023721203338961663911614183597815741634901585805733122436358269711287070730789892927682523652993703926538259327603339874652936421869884091780247748714033063808370100429416657270132828158637820500116938430523559571133188861761985394705688383459181071679491623494769546825179835660979689712635815065359315314214479315382692061125115882339067110075916180167452826768544531717298361604389946646303919278389120711180042920380568204873024891147233880246659772597169824153351334759517031091555937056721857999436925751862198158035664885417299065393855542700386627756665491850043168869652732471866258058059003760946728274772625865504793967865452320523145943750598263218578454388044471683756359314359107550926731227877110894767259818959157193704671455675574571683063920281858373554312095888560388396358827805988057657172032806299054475351604998307141492841408701744773193790832565560108027840667187662646072012171517538203691965668169671804604841459753061839088316601450222267429916601780334700549347560946747111071892769326171245450191751990819223255206756333072841548008990294332850279935914663188748636452624809215578413604011536251175407473414612492900832394592289519059205581955924071864970372468188567562749743280937345489051162558203108409577506555396910308412482865595459375695599627246976186185336004960266411055338720740313107823941395399295994643038025279619087269799674215064378402626949103587696878901923105643576565872985079568427312733734399329031537720117206475691060900695081599754249942205827833981306538785841728089430660276970448215096051906985171496141671680590353301367601927758359673034779696297463678407661539710042691992127113127002640224838511002847326722658749189210723497952521510540159185384153401554593345491079452056018101123731229672721002579978486076923097067197395507356540389933561186856002469761401010077253665278494947936335203666131793621330957849014698532891546644899456053730775442573785838516693916184575357840719466421562808119262974881822678353193410913904307473387536306519431817967630555481188383365466056900150084056322495764261778395011130167543831596618984333992368016039493772672499948101200460586650172555004914610155145145724832546647245789040247893059492959201970630694279052680325769860838259505418299476689202576643012309891871312093693768701242062312679878470177343083111545746660168093306360046068175943887757705568984558357931626288567163469410560705317328682574667348357919069704525094008993729345046789310666737289534950305802506948451317462955741590403279021366724553826526787127204721758336597893769808298761770098416439241718466356826264712103073480659666502227925106984292415683424565085184757616102074109803431057912531670535829672305590381958783933349981890248331843466336424301359511540664049878100833691469863518651838496921139537143229059379489190272214681722944344985764445948599311695788152573091187234672927803785802667040998177652937010017010594373706483792729267123316019069708915408900101506459608233333156886339728384366821001325247294059743309373196412751717606269068368844995762960969445174892145067939698573213261183865324697020463728828720348378870680217793579205316978390836828950794380203045722248815791243132278743446415872228965344587568636682936030250777733752194334378859671815212500303773713171593279821546180534538868270220688489471782967467514080845932103776575885762776704248565452280339418977546680766246056647382439281664217152973686653729927936948748643839418696813284814827369091832737094456414745112309473526775548770749425321815670857242916571182593853150112183212314159211400585798942782700770304830494229653901201683946535787617204549127408697053743137004784887889022866775991625689027583347201686581318481480364121714183451183847317617661848945791528217617750468441286140128318596842046811886194362776301807090852196431469849323396076135356061209186978786885551101004924329705580954049772259944326519503689488320029032902604469318843153903760396549674771511610196168963326685993908264395913134453068167685961891494912547185774959114192889835605589594079465644677964446586607874405308677558132978548097566073707590980783741882110189741052949881508448662840979506162243300756119550041351295448735122090624230876044749494352431870709962328843451035511375866974035939573818015377258012573394710452210956486193988819909567775300259276622213956149373565452878147563402220478316159750253788571581682999591929739805420365035162621778614305779060717863529954450189241089104009067579083369833601515879712344022192896459326160950211982057145397613127168367062999525049511439732683147233050902468363755342787405799627445672870281954700992636416129885575195204851670683912741166895061347655291749350058931397826717698597588217012753193132502875472820885509186970316943415936761632973112267410035184875775318699655318317475465574126415317095267383342936793665147134349620012897501176334692213690566394869742489921919085352557576901695822629595493469168851313117159047337936890317258361971095007617681327593405764385824437325742226740944245239397451341149456052760065603577742072506073283193545179317321262956130393825753979815281702599145080690252901151965036416606228211458077685088474614838717391568817577755488354712293345889337672813529809431427099069590218995269647361013992874726522458276929440011955189389190886428954500718285972927297022540540350201380804396256133830887003204098466370857854762573942029687983424291271712167617972967587205921696962709139820341692626208729027037118134093233831792098489021034605477117819249603544323564637936683543417152456322197415819655560297359526920462312632547676199572935381350745979692285459837785039464536181075949414910009546093386027833449090812195264417462477669052591313470834631900275164812843735141765588056843822688282478448821985994224250512553662263194122322306413915103148984104188278049884399794984627340529973690333632287291918575977992024488234288804759283994446975926229838593244048346622988662328705367763841262176144028520188159598268877860410966579030637291719567609669385065123304569553278163313289663965250043205173537894374533062782250840674601802970614745207072675503812576166807931647723348614878506816238836084455656496750530098970543709886512881424601664249268224429852400939226710743300325312445703672623252448741848055087455254333093752667982217178294017012033219788190620749140761288754135335339976173390453004354356272096094665453075967077481835305651172612401522923277841055516749125813359030344273011328298500246983382787436257022752236269789653258953458882375786787590486581959612111997266434516867420157365149453325961555847524435660421764065073266493396748485019242970340574025303318378498571163804750442888976027051498149488210679023987223902298890095786431179950521684048087692781271266277771249344723154271428953863630804822404776625426631480077507726681813484449947390678432964693943604701505379449653283505644907428081615839923971904879846530500208413368440009907245963617367961629850136820117742900642482656652678074944049510324761746542847096969755157646098233527349684575816137937538285389715781094097408197874868813903570921171639936942439492101597646497770589492133669770852132930135534852733765423661671716004737335275919793176064248481556123441307675998345753688893596767120203531934522271503354009404057465089969163223750840110644550183221928241313886879674076590426310701305548286258582975772705543840644107876328997099621446657683656345501784793586607979936110349181382485666917728479767315676582304978359401507863465423183704164808895203278395491440111667878196909761530253267472455956158616867114146753751284039275183963990672027771965910701123184575842376311614153014584420635748989078597397346178568146486485582850411706333585632667825533474464506752747987148876881244314835378888441216035455814546048119303666766344880510587955667328063424607580473536448635439907563409151796952342713458884782757793678397786642504834171344138051674246960069097956622053980216714661532783573827296163102133368453372169241456882668910699684716061177262012586076956493722041225193273919766992686027173306318594212007073034629819321044688929172762374064960401700451924327273486603761359731579966913823643588728093760345902054296043242598988886989241642989233652751205861612762330290941309205859695237999218704976033618223320490888602125486637783057691176906372594244878152643353505878363858878788844340913568698521370183450927929170415141933547660516452449907213546267410463664283082735874614725922934569503291529584678014328737407187228925600299562151554360063071274111535612010350698401034974158378007773513461475270433908010966007730889501224592911398577134139171939709793966233973486695801277871645453287560042429825108086686656861198004669386502941353230609917434551103696786346599626331947961562122901816385017610635298824227979366283046665553953720592816872444300431881018664469943553254831732093582642317044264236767912710229073184181410788821052964021210762709227130025644368857215668729166798355388741361232085420989812453821622832047724939467077098721759538728653640620776873267689336290593402956248702553522516318627398476483547172766562293882680651852715273812032011797490710932346821058306977775252828940674752175896188442271581689391933839914870866200059754916722024720928592770004552216894308772865075870026867246136476844293369895065919768367222881422263729323708458544004413640708026215113266433634817532346919711894015519224736836692819808629991631583862019478378747202168201269616836347326417847874013491862986931867003839926072788709817870884302913808932229564380719264840215119213007793582221234530094135558420056400723085207864369156866652945825805111249505257708854827386182597123587179536070991305296140493893213409535619244609409683220658950028407979119285988319335512540500393498474479375788825444220133427181165696529331834180461561715120125636733309273912665873821119520611119547462872699214233727327182805063168678192238585433207442119330592963544311900252121765017668288879992804340268104969208216891136292750198101939753006403480512060312595161166905625166980195463607031903559706624424325643516146809418113710441101053595624052727008902860567636773488436374243730361338631951891539563201032568315440890891000416480203804249738100419996701891984536092254217714584168622481746493428664430826236008625635871018352206784998281935821064472656329238828594960787190207195855732027516124614051707066428502676336585717293392179649782288813532739136665108651866390931691525417509240846076366409273085099021203348604681098735357485499573846522411882638733668541806046959671989466031284908812997855723087429402195561426904917331393833023076742571923136845807139755638343848305006251920541991227105050190269570047085678234087728144907274882454985129578121497401670119719942058786181771143754849116466640850108091079330091506552937618654794232463958924794614174259066827785149169231653847255064018832291851888541536489830802072556032827441747274837771449040207844337378060883397654898400444769795835169613185978946960553561455506162921415463065818983561123938598344057704370852187366538712547313068407947738006665411493763537925042513631598912540760105294104365267118618031457672797172849009797779269389844987238858269527088363283446998199298416023937477539216027370605703654134113384416603408333295897903390514790792548750325536912984162987460598909457995516509555490971571831938477575104277497213195651576807611641613661106230291588908011768321855992109752094470242452548839679144275047483617954813512135450297840074496061228387049648126405782196543673617339234684796729865541550602786135867524281280079684103114066110767054566548017551866043546958763739154001554854466496542299452007871216772370833592936369002572807678379088921125455988233603946970367779958855736405528453400081651190514474515676197341052205224241055659745903096356160745058476636284231299795720629209024579522231144797961646296618985013683237096093968732818177316487714358070085839989685631525779000249792221769255364399830616331491435436033644551610976754649778628267380586284491198255998725966600499825371847412985977948135314587476322781435678893614902423137027481236685178645946723332157340032133345036906619866644161514117655603774272652804373528109063170336101690423861023746229116923200819901382391050198613572236632966381442541727148929746898667047795929859563635149267489115864897282888272541452824795388136870573122788852514949367968438286524680840488593913969830060453538440608832713477710367093499186141601160248079092363557871692455751404770935575257582310199456919442474424547454976991850258426459194472923595660577772974319214870425561883947864315545110004537765918688872720224301206501647673535662770979122325167835147020792852103579472152725590652044990814733576594127864844891998868119169007042922282968118507092114757829538178024575064403334839189926184561628248952666932811136987165684050544330884780513570351037138540075810130903324250819058985302860207123443389813589417599228598055572194121454894661552775680057170223139791364474628188122568433781881426654215927496611247032832034315316081780508807637546114604244589239309022453791787647150396546902163009674660013426386505399158160016218786632972566313749131210962015596030542332346065446785490741948762693046259397192560228920136522170011234820953530941561566811265089708928873326857746240936430927834657984342910078089158397007063785311646665632294009979058515737098918735713725272444423936779107587091299057998870193890420292244678779808391380519129073862857958538600395757229413382453865822110659644268892222027028702373736789383871993797834894771709074900934977957684772181527689335931728960309023098565846325804810799949638953565525740298488829870039796751334893673272749547534905817717837806648881327631991697089053276221046871230960533064744150343033051476136073665114626267710323310256699867956836601731768439344987441354441811679357750521044014061371786803362593312143141289115311719359593899361395841306945953003713764067242637277661678497497242616803116621955835009267833190800406867182968855408791927532255986995510961024615397536472018334235916887729256231056933545796055686074399919426796089235754900312841625196986098011395879772199016813932652359551599144589219959369970933711037627469851326476206062687637927810312275682961106969681276200281212107213019189322660115511328783064806414490195788438363104149842397038952908638228123841050706205525765982463208448789283774475056057996590249695388565818040782727759024601030772398615818414687636839460079630516107147561779502732564147478284232552657748939522645453616918935175265815223301285355206224630436042022234375727954160832862325054127110533097899849386155486725131538450922835296599096959273441684200156800868234933482601569098577797918172285107138256779330173832710369629935673268015400625524707071458978689516970699115519122330715092916140845511188932144416883506145353567130237607582032888763268529527867161184576257839890645932751016231619339564387040608285934116809212060693964427046074782440665044078219502137450709519502557541253113753342170556717811978174990121756266346282465573188345489234947863435971502050843087478469130297514493981743839126931943661640209432661011826080430986746113550642093708916579624001951701773304722905594952859420961907251860956159524939881100482102758105150119058068617886597784467001562035195532183925755865599855276604074744693334155018306674439620111690880672499551604761486602313826043563144305945082446998078151722516262098160632420041130805541624633337969797392337726273736728501509513157134185950967408737065743781073610471869906068282492944634052457365313753339747000688984761525450593461665323528462822784916288061271440561496620037748292259427642380170826155274850161409394687897191461583742522985522808755779517624677502196414949965785844632227887814430495735735242679166881397298098390522759704364221169301990249204099914009267848126878716690808893827265788709302755098609666438701733817786104488856839230692960032335556772391219460620471285708783631644399058435174358833564894489738278402687153034316011650682595890629227908330248892626344791722310123452065301874524233010566540011741870586298430469074651440459378015335467544506954959485054073662002103196982167383593447306003985865898444623138890358867114194201316876781253210476622977352562668519997052004437807887056633523520259962528892627517827718199332060551436832344788613436852817015650246482463629031334876068389215439535039711905522743996039328229592910439161165536768024387860657077596169254003312631134084271393829028756321536642186541964148308981814996027655281958905433734570755370815432096991577223093777272372206551645152798825873625523269268127166461244485988041433556231750242893412188610865258205500026943364818320776166002857740070579890562970242954413894722700906130662878458866216160017757212504037457424137868128159055112454507736975769111010981811908093910004471168554134616214087778210995259368468059454979151174699533812970087170639834411692737710836104361781235155697569535514460730373202596630205593641832622195324306096775633486593626339908622910468794162441586934153922659562945410106752136860710008169541976411296779870199240506839709445314866184193966179046531094661819126740704838514387850850264313263866122875432211799562584392689683722990970502028906326817192612974661474079710966067542497997942545221740733024177481635956127841344572496662631695728033506586039229401214864695442764203924446169040355071258996313834073043954194397776078785766203366480150723590852408903169230770640070609268850315962101054017502471043418682777628149879960878557268898756755396855608063352426516147440094370453800544352846185587363801001997784694351688618376070690618901407018874444914384111778189933166776980311204261844755670694478287501165384006706792093830500740982365883908637140362754482460623889180432308995900236822386077302134383500371299358321539732710657678139106249678826533608825023884024178710728919584615786812983021346289821141488407200650916644871577059144790470541831877123236520740900308352708380195027838322546608037412705582850289026985171125858823871471863601075277016432087718613662391134949518381759505857116656409683636460292369895115025364771740836635284541912002455378419338223681381258488694159582457052493874747806828236935725141073928143687627119994071383584837543297667761728692826733778367822979838612908187145174580915742704421556953317765324104687128368998221966888301064587029126999124436724018019652767655839883082956393498787843748127927924180035745060265563989258478016270193493810024713930141893010238613568881255761207716123302866789652693694934347837461556110490557192019062112453686376578421896217833176529093765612701559429423641710567207186929909867681419703840644811170506995135451116452756599572939214814367243413884098074980384720287234379976737372546489188271271539757489470452993539292222760854098193041404800434971222391453543325644248102652539426872489903274593930787867296768184522287161750417721872521880049918496460484040635858925921549085119541220899044030922255475377937740618485258345022974378102996135507387354584938247502754629015741720740623957721997364064935298595945187671063774305362151846049578861499474728481701994729441758248322288404921135658444189439774412799270403970915262446727160470540921260888145299529203915113721676629475868501358470933006943213226257644024990250895279700907918124695500622562577015893329823775005675195354255208530710167522506408402673919390073478460971733279968046800732168833059944725416474723574370372564488249899334500385161319185345481530279524142947711775096337495103520891970862944575116148509681084262777490402767640553659237698687190972490890642866187191719180421053367915012587914984326709663759614847617104743828012816347987783326984049552037222182763060433891743175105344565355119916413432621268169386306894027200698757155029397721918004070161644843580971781071792069183243463690201237853551444869727024868045605988340257076967711492741239884307272576455152732397459431188593038342176572550434256965185642583323752433395917629949994063218166574559377372022958768953339897049769359004567468298220819239023173800806085764237816816575013726914650613446636915570839119725783553449541041037227434586762186217182018817575509807264822739610572866926390100476916393247849980914194503670077085961803380708095306689729842456532330060757324325359595447794916199177249872307562397873414181439597800692728342532846409531571458519046527701618892403459508756986227371294591994470278334608202163295384867116711212855084166031262072336970278832828127439033443580454230086896290656751636565814176532539771567465828277762143765696957612596731177115867857640156591372237380255148880904566594873727299364238908613343269177901007220322964110478337945862282067578069964376678534018990811936373331056416026524267645344570370291709012494085384754190048891814690786000138345282075418659822948678964744349246240348759598985297807919743259380716806065407224618295535715659729274849763270337090566111258744426379115108054276703128276007938097262676151155871368378563717860897168182573516703504078394767575384232691879835549854501213807860771864014802863694139937006273818669542509017480555682970127947052061047110405702701075936720527672632888612569329692085823210279935437996051576914895496265226923480103736163093319080453474516897753262955146398744889118226749303538917565175666866589335501695111343740319921536661845523865714106879176894677903761230761386120574592999947466837714773354969178464347730356103811827126535236574687663236862284592242480179577486786020144535493646980109951887713908010171921897825061763389516474408977593842984828312459608385371738321894133494666554922535408581145995924787298731028318705428854270704763996750256619764420045381757837147927897263555808001266167923393140181034428806066011648928087628559691844419354398477136274938376439775619766022947184440465874580851905909889369442869798641850550471020930363554025894938501714974419814317741600653970181107004345953083180162512014045425550106660377795637341343205350723386064785998997956141760581510011359904906197200198386488615370676092080263550079872376549086064590063223182480583326302411625404648154778430468365623020202912045336009012413979106454160183534951192964172805553162204399034926868306791196124106859107210662055950123253961876767703874166202719357975845722892348410366012956724475246657223379618416640598740723448773926381248763341831860971982097820511153600540289967507012822679599925455994529668840157100271134515043298119675536026249001929801310817728105191859118691590265830333030973821203969699492181637783346190058322870695023344121190066434500482265796367783677516420473799872366216131673184641996465985818688580019916806609964335273378246311360762573201179998686408590142185793300768414499770329341173650641897820635447580027074115029082023254018289289942661647660042174367531441920669373763035020470296378592300291107238235057431855455319667337837197899771992911808615010013156636183631663205411615189015032387443881604538981440705673027540873289344596172020840657865198067568534422523988908455669518132657486427284448831215150621718907483340490309712364160688818710053784476355892999749116115515519808052812311228315736815504863566014654354823541050338725058738031872715688632369231438103092126099969963795629748059896010921093527069614263778339278280579974890161450296963457174535168273164072902452184090285603500254086493900523543405744651531930384641212266069472993304010160482814756068630069581198570710676846081468359294087672208801476915252303013366862273184044043187560648197919974716960617096166198549171606743760769954776755850135816549174544287076707636709779503828189080004165369713503745530446570822970421412483409426906411119460359016203030285797263905989201026859223160070553782289907830808142826447367752277936410508798393726387011912574971931129382518078735239400707287517346788912339185585472015033190815283504531843485969359438828856193878750792627521631369734280558878538803901280203042509239926521588167767620773611988092396599051681750767534921913835327346396325780736247008233687587379186156606611862725547930919915671110199761650119256056522841967093810999577855928538207526335062896011447141835558763079527921131152439576250820260074893421183518866734723310321582171496811660797018000540355033258019577754321591494199122537550361761348661219641908544972913366044932099968932470786106500933079842981971723230928024529654218191298170925305257580117720973647296237107144578113085894453408538634106446761994468940046742734400846165321702888092842041476939065166145577412613943096865459547900607504045447140631020207315934502816685819107486854240681198217771568941106865365608153155448181733066503668315982164685770896315609605357925514412663785913890086938918791727861715454079051014885143213650946579563195045735507180206452104372938925936392631112541352554866173325917931922586019792803561384734238166929435449422212153271809356299608550198064204498646055749486067207545001624872037857190170912124400269519188932840972802308377982678423864411191754212227954119125454749635531720162582882620286676749141839884421280749826175854277789919703764357082979881551923957236456224777569731024275950967396639224213304082656486013401213217954044790714409642192930572878083126575974615366906824276555839674753797251326990682142044442758432952142762983376557821025381756723287302243558105009099692861167918346898012542654511309924568525237254465913223580675553437104766860851653610167688006431768856205134732025256170877068202661153075084246927124774843529062895070417615225286964942664356893039095660080625105123035111776075818877122654580198256306475695597895127194898837465690665953783302123281084321168409235139300133903450317262040262403314613286297738116184145023670932253914541112245977030791440378938119292278720223867492645277724866185809330662025407504796385993373773162156802306871017778700404839759550873650393928893270488635167421909821687308838865670073541944951997668966736930080474240954372109802281941395178001010438955642760485521096668342571222440229612595994390377098187093065529440742393344515643039334129055372926055728758497918648319286414908583798694329405427308539387821404223710809129319571796822177788544030814077596005765211028182804390676649249191460976812943278054544361284454703773908097592423293648302522044965204025137340924714151227731919256324234213637855019980663791568101646694845899946805774189836764484314424158582626127066013679832589443593347068960797933636379817659641460228572595473981022116849415955017324342125190950996882199424419641910201753140707857130247625689718321861611371567883591640627851667849218974162248464520963747057915426870301996247334042813303006859944442461797931819142052384525167403597318062569444203192847899436320136654907831528529387266257564556324554333523402262429246532753665608483600238668366805595139477838299164446821709350853097667867215538262557486909806611505794723781674121366596185942038443653465648274848094842925937922744142171835724117414489064807018164649006162526838360392879125801270517740509568900011718675233940584902170771192548547086602431403820483987690504702610813367507881639280245603317890155046471203638340672241326457311430161066512824010593654419270112340448727669265444831707520265296891700827520323834768079648031232635695511896171030584916143276457060947488552963507070825747432665353131126612306765181454585861039596774462528416942042226362470895182907547052788603748252572062457294106017710268597852555155755951938885546042252745272301129370090617479892214053905902332332439301822860501872653622815327664417861575873089257230172550408350605611160057049525654199187166289028741095253067720551676494015271689759347763111886424945731986189963516432396300218383827910131318247969522329161098858227646798263356162594005214207129337212963300062559684433406003267013479279768924704335899599112544038767460933613941220354078188189290601412623806758751796922524159509007264846719568170193422360044552249314129068853326243155764873369623850664349724252050921090227589902247498745590190390399432646167558750947366055939796676365073156918939620138054293514175412115030307911787492971283462050266700380340499377124794270886419715940232519137279663992043706565824329340100269648176096991744324635619156005737998791780696198574731133015527367314325702502384824877543316267769872799190348630567112171687170572175931854661967304529351352511604580071782396272874707169733697806687682661433605503675567866048469323927840123887016146574466921917598839366432607554843201318034599168927729430822981229307972632655967267268997485409842416024843873628805277949158331431700962770939662693661537834765204160861706366147420620779885467331072849171139831769137273202815132185761250044253840089422127539405756664358718060104535173971754698149999776854731383213816095441433860766488739257357265113098570302105739811202253418761069995888259216948873747491276453000932004813120523987937328656294732234779841296523233477120864483480235861486519676482709617927805441110003020647315539667414616858082427810079936267245504284586759392214652613296638908883158576931994707259592829985052020150332000478935627173070792201453198747091657164388535735960735684237409884392758509429030935542560508980494353598806006361006162304370038794618379904957036186287004573708519146629827698967933982293821418129039650761592627814549136175880812456525761939041541473372398759712698832434863678982800327456958714195579952853564365491082506428775095059848811651222414787824951860505089863612999124544439797914711870547646505240550112369154211613602620518856672900570412936511082985246532976314450795768868615252460730752020248229484790129783164255532960674124526518535255621189770510504056251059920165002290629288315892442842947411622141286020077458377605051812853979524925700951476421259839772888104304677027534604034097047142483452645480755420425699750876105967673421317562267639115102784898887152650393812592705479784285694790015864260437872411177474149108366945816769925006227899527110104988011082491236979488807696399090915158191741340574932956531576135151257179667684037803115022689993946178085021320343757848620166566191507008530405249230777426479251433593732638378829604520930460979772639541348972149754405156509142393004419305267491049247616562168687605102834732078564947445444539866963146669774797087836544102045956665154695174122342183750112809067123856943567389634526127858964153595847418363449738299156748637069650871496013146969155911858766879795179260560669790760491453109933259133734717937111329000066965896483024821793600931889630743431588411788038888303843014222731361842125021998188210462345463248072271458775468686448690457851693509256054086766437636465833148848390500557514176315159835003959627429291872993703783536931674324835921320957576204117441200193730400237494129776573482070625989336677633671355118310678382627927036566157705505414150459200439801299245956903955846734465272884290549291450549795820040206290747348239274159504633788497263699843196485186664433690371524941298185289186629886142513800526020759717456216468087414602331583922475959058306471184203070364145723175246301479347525203401115938306162797541593883787093731650963716550886441137611843032308069601800558177696891741096283408928240454029476205580012218267380674723944039599089452514504258799121277136539001297528670266668201759468038074806853519844997221430898860906526493705064558304134768767259825574406920136758710926747282710584300427487496429486790817749913635913695871203783772350566921970076858415875023545597970201076984315997817263628652454593104092448796139490756242732456565227615278905460487379115399858265478643416224700824807140968365514159711520100458877545052820814394995575062399443141194906610212946559936808493059954930695428804999072785555769484399340342544718310724726003722797904147126094010962416002273230327566996534300496998649537158211014708790715618247951440178938439188472462727678735221515755751932660713137459978829088120853686296120803549989826242030143612894075513944110327337232795860781147302622667784019753813916423316186431407674701964517351678250940314921086829330774148813940959307467201713583086193640278702342008198348230160758884155218853575273807939253847633982131836554133072998463988764279079465128283241992689080341589045527517049763754822890798030182810673146218176625429519727447805152779277534222060717542624256158266841683422752145941009544214980270589299046124024231300066600548103482252953914708753156702101889548908700416180896331006907356546255443376500104768967941441787580334511841427601507124775889757011306947607562459972802834240593771491645325074844754796389262685763695619365468765676411465385230913758950084780717714263468337049146949973913885980973292507623865948901367119865061302230102311404950176152504931634459685326722312394588128914047583519947261508943072369918814580757073777311419767721932467484670817298208887256051062224043553722159212488983317630339355140360633703471639376081281227204617296311717489136078649648422404546903503221879679631269200071910304939126705115075810612636154115923002069634551016923139919034664329044360120587060632514819917041962142417438069729104166888671792779615206387046440539378866088624682959990733825347679732853983026658394329431416548888869460344020917968197748471729081311930780806390319809280871332370426831797299346315116570411629846778833593831001348471615675009973263546954613808384637538305341133162627876222935528935217537838098818700247701849095004032156559259018278258002641224915867777054714665910582086063303237138444675294339614297489540923284484911939734300603410969477183910286138211130825001425087599292671077172533445909581071708228871295307347906561730241754545370420471933837431567130349104088474440309016663395258180845683118857664884723596676782775891509292014940914033250365856497674003607547409225210814966433445850808897789787066903270477929295466905549022043713558647377358124845132841169532809656624088206359335428479230660606233326674544956731262932479203966951780479466532055992186535260119398616119901413039656730060874292956263957540684233402078384317364711852646098605610950844399271526036180299768645046815477163636019926726968428341467072086312770009116081861649856451236544195784588579137366539961269668266166330383682752459064618315601034954951147477242137082499972481487879487207251626022993577055516059634910551848212075581449813165347981194109786961860525813544344179778660918930969162112469792860413004026697479557512435656602836713453075232371307526874224019297853139444058040099157266802244999040962543706546340896817205930894628996593845987935130075440576666624611227174622933606705644308670059369209979352184935514237265346907629923565081797805840654078822471933670735992242824997421325517518137111406189142183549469214327511213709985368348746004822063094824023687879593190681118061644973370147618588002744153839394224776989701856821908421722493639659188113213624689419158239164889382989189743073347811785915762562494325982073961295879315368838182485183445102898769979346748525707903207808159519483350975703505600928107270314671844931973423198372031056239054506048622782606145760111362755923271540064700033375071835587639907233523753734439253542558628185827865589406769503458826268170681678162799619579395830121928613746468771009983352061043969541914795802333043680336285352728751781128680159910381321506118840053601951339957242728146694125161243576764013849730488968571790888116210189785118261394920855117650136304841163975969727288258834532931801252480730525996388769970999753525249802630832132619353659522498832311623929149016024319849078734029036596045730772153592540631948959493535411256599521736796776593772139119136427023341873152641433878480758100764885480843419680486296097205189168482236313304882240025398555017917957204856452601406380175494102650884978247332960802479218451201509931590847686201959441716079212166245831550845269147235525597664437170572949849969631401570607872055615143340532152936106229458546332164508473453632670941911642150953632045861408283441305442697497082770847806145655676604756369021517002538332254968357207530577681440339629457058400774776342995055211576644572775856646745096308437839518878619189361365286004944750342631491983227909567441671319938828573824429569259948216609898244476492665706048005414416238879977464224747628877837809969305009507673892075514899273347632069620259944498537447516535734626661509400837005317397726664923918756700592132831367860802269948337628345613585621693661823320069823062831168547449400027992291660384356464515280743073124731402594921578288084743914953336165308407216893675467699798799397989908529183982270912597316609632747389045132625218822383995500583726195471016800190532117006953081131538675655984222087608672882936925786871454929293744395022577066715725581833445212178905610553949057043678868201740314109084973178781606307523853477658051492358925384442328267769827851873618039363212743581864834570300223086920938178469428315704237687783180350749775333728762377878533774589521164599044785865877397353433512546999933051656813695177168420667052184386024982025531307296352752345167502836477509024387699058196776522076553796053564258622178802630137829034144593397835293327491205553668290013733276662361279160777240269551384410783289059364381158655716258527423406002843759291360984383508420057336462671273489830442883698171437956436313062366748502529409023330081027297959313762996896414847348211454632999149335089232427308348828579041573665173325720544917391385409709082900786560328649342001552205140898392706321567552911592527730997153385466126952563684840693831190907792467765545366494406461890706940777017011110176955433078538483478157866699188459645273947232223233307124022243386647052934429168957566306260127811251019899387617493668872016511573630651808587458056239960104936194900200532016852882134075960141171040930256928645136522631290250724957614452467568011280961920796685326398768653797762671369948962781036450967654255823893223102443960666904225758159029597778780610770772666850612796428858512362511886867294971389384207230922852467837684907132775333595596804070704655455509992298586040197599312139456333779043053631947065814692239232470234645675372377770516948004386624432518462974011067567489301721571583451536946985520710812941517700472496775930015765633071784914484318530304554001684077732911531833112346638264269752697991612850582652243880861673946783081220526465891891211135005368419350007163858183077903752960257594297959692336213145358828156594884377126647936451206446502952359085696278396510608024015413955561175644218173365064486948067968081946313832532207541193749979521309564614383266861120607567566292251560555059382648339384285431330803874573434874404717108153392132585601060359602099330971282158106241063954360976170588787789814130563780494556267325606303426150586829790277959010969390954960279503284242461320742978902554686549562099960245204016717567276963236778145612912055406119860573951695194843152017195248432535599770509167172195728955070713347739112211634104252216698793780447774748410824011470816508261132341366269572762025029800122067010458020949624954649447410037066267501133682102123116856474428528512415762435058728212741883602523796137459818881433028660715679986928889733310679444440810195949970068464076755710024780939417896696042221444722211177238418662165139795661106505218265361597095447478004536963858753639691438665888581800863906189348802397524880724743077451244578244583653831417943870068690883492520027977140147064721914042379317608937119867409853840067324157672928362746255390148197930694948117941152600791152636565696819484309603133309734250738779753077687954909610837140742201366680713946956744647164332766345160136983379335490747929900790098280423319467172301245527609252074582267448157210682760487345513039055443287847977239108499867447872496754898436898102066162855048608245364802489028817668296996526236920906796156597936045823423654585331544887298247666381363587766785145218939317716111778703209087775595750470972190904097059458673214944008313837753055315081329888191747338218978317360914100844289498687960117889258165755964937911926316778369722255285906161891748360199533644867810869234633858809513218360089126140813251084647987323761475551397405066321903995518856367469727616225787327394080773667725285490499466799015004459338603598533700039315713973752711122733867694252749110320916671653105591550933016980136501665450215527602053503796261923695829446335960030431050635753359585894345930856436414898884420627518582046336076703530349645785321569706950612479244913611407383974308760858657648212319466947546788158469372144388203649387598854501084443037322268128731671085902072514114110034151277064698592514123861117915275153020623299337045714937978033868096263032837670800359955804310624112104236395557974211177808944341902119667237497870201332762438497374647680440525049631485421459575208548400710271787349467568345522230792115587843933408817287638294698824727984260004515322738469426383632151416527916885719433042974651189387384193162208265198316778855828488229048404070710769599356911028869904821773101660927622539365364101478739768448764057771396819038267127895565576208384553385149139947076191795542335341544684650635913330076338145956489467832594757611339954357189810834003611258959314136847245527856365439064574419942097725091000577073562667767952036194684371897112199719660377608185317325217818416971976664632762486734497758625287735999214815284925610764984518708521368172567839994540241401037914910810311368161580616315882543298100082948881735130099373346142466087071373224450616385931560590557898683880637438117816645400449564765200392165731713827169593290391773781819474801210752779555480766327071386932968316468883822189708531401942059480259907653809897819725514818952633617010330739181484759723075011358216441975963924158245383109164862488105401324786349569640600869382800342344980470129966772532342115671853513422181768238845849243434007971624352782105684497588981138872834169576052638201816695668169928103697894286348263956350831616470424561677905952276272418059695405682096401374356902081884635442192372504189229825856140199256581791503811522656337712511622293383761897086805677134701279215101603458998766003352395922152076257158589842630481684970945631314010620540451765358987842080896894691009256736457154138236355623319063864450322837352911228214050952326363127935645983400528300915973830135994325774297507003341905652029076779828178529865929230457607181041816438746785125886979827130006705121650912610843552534094186409385340911500490076353152253534905226108251612692384878972630549572867016769672009688497717665956500964163896750549382172724951032166746480312309391193021049983533051608563498998114934028222701839769707998634228265713986378123597426970972580105793687390870654136306770348746382111113028351284372066020334124185406934313138636887786536846402382674440154466079034182883578958382593130054500261510766332789442858843039309360305634502735549320049079400114747849607369998061059733779714380963551230060170117027085906824198290198073527746584271850017369769189246578068305501438870933879997659850463838150820949326941482597948299807720027700339854169582781696193537138819908712280854736529097221766445172507330435120966269601111801360763752370618580379638394381937607653791153145189196320706025926868517798245991618057018984047574318116102460157677421140317225284307168574064114259913317126295826323494870155744495842737303059518254316868249531020212708229435182248109913689478609518999176962664688735559654048651936577106839233716450986050116935736809653363617887946541760783521392236136000974907794258871734037035494456878855441238047744878806247969836212372009944174122570078133846516442845310739895909672098462031851868357333127271809394857936869099383304793699643480287351469674679483597770224860095154681146157681167930641314442772640551037428420033480247087303090230989432223597145496316662384800077377723648993033240775353063534182291491701092322533141695808089226145995149480920849020942742340203653538314038657423733900176119052945611019644023231339675870448763259856351759942642653683551358753271521960239712006485288632798517861381437119403033302345977115837813719570191275831592476295599450355944521221856091793737716998104786450134654608905954410027673279315895310308982294555523246657884296065362200118324195118032606510336190320267494830014239507119894578193643882899935106880632458644047023075605583159731664825741867981744945078946161978673974514564485799329370796836136856981364958683935628909029714077572428614007943914062957448608677151036694988848984898574918181728798587246199265709339460141723009559302972606010216909677787411335954176150416184696906576071013791017718510310958511731619905111559870229990097394657292481944341792151675195693284428483256783021770205520408896656069816503915693150629965199392138380476675259831956739657098740978194768718263828534101710472101050641901548364586388809972240824489156976563771964113175797707491175680013025915980837823638331935646730212792065701612527149657687008418242627947791647222750869367965563977203223460671002351862930800355894463288759527589025009303357237321554871288727622936618520744433736019185909294556107468173835426817011403605972837561291547098621121583911363185298733549283455257753397487014749653228551675902878355151264223706092043933759650642224666966433321357514948323311709503787694460714359996598524098421480746542352240877388081165294183581511171583258567903457647138925453514885488148597727815880291809143937994819066301862525179908694114171279886820918459578679217997364302600689219792629535233394444842224286052004479011288187498168973697181598768170946786294098591970296886155837385065792144152694810293079415676528287278916132766343026507739758179677771131058474000202445085768124958066913569210739389758835871063659417360513390863876737933433950220216307106406464168335384363974959229023866456217974365762096878982123425378843141097333104748810222091864132473555507131957844128731368922349957141271593146326074437484255266994876351105996841509392271640620435937623152845802541784028692558830252936298777922436138090534799662451026161534188006777179989343380828593244190772073791288217749710597892837662691956900569155319296742519337805587838705822805852232654748284285710015001207307041334160090392420004640498727869929559179696035608528255070602855415714725484085140988163421295753347344686231609280045999792263959843246080000745683623457276952746283754296518936917677902998726456728410417126869035052510149183103521077750083330609246969820812185984233925899281078652559075850952753458131775318064416855024997571442750591318663579653593192063362666666495961974050148213992156722366673690144744358076859339407964103168984147936381731079141321269255706186702119580550595544565693501001590971537155289940260235629075399310955001879689005548248807353186015536835685238710222454130988111410912839534730547221453101354329373717198158221264692000711861829131027665931941926408889303300787297967590157152022019915012040688307946790011221920844705478243769835854862717855700415841116998654207457089058751314236950527441746515836034336855605452903738114565850345103657983016485619956247303735406299700965477780467401635199876568853307322441314667824165253154496398398862153181553845593387537931463054532788464177677553340766965351479438228033832589777798911403214711667525175322528968452356203488398711161248127604820523190307338480788684460318843970986322587704689948081437311170627863956335936249585217300762409126455028880131154098317307306118570983357078323104183877212972637515046811368794607523490210396433069696387639075784261861463040761403640851509259718599228835632481689248033053247814349247977581743391961064895304363704175472787397170875341364153266943093710607417057054458786555557525646213342494113149518485695927902349471412750873366162120076701863961912646986269552426858047123818395113719408432984607960148471351455573109449053793422558033846935177190782968161446685668691931061491960370257411293051895286397649828065486625026146411685832235007592997475171495884999233191639462329453252729838269009854754676122001301422419875834595627363109361446642186343702511678345858775667434924621594224027463971846145146526224807853992444427376843315956875809333229368886380819075355008874546714893806301608088661715616411439489020948870355015285554980323507219115438138300028182753078291083030823341634869713662175989865463940955406352733392908566163301374248708382786338213844475635276824206084365738331018103309029185572509813622921062267831128517812062273578061992811099068745009704146923220929390131898594656779851068552961205893728175721429804581098581562812602110996006706157311356807281041916087650859702795145230065437027881777410382372138468506528238278307133140657544601244439317091645805243616950099635897101568553263203806704160721799285293800413149283234187477661539703062469608411649137211162638696887365309762105922305851827804817568992978351771189828860000890348673472085240880320939951385760418919429846290222007114040683490720973951516095989032623668943571859593294745634616700453880226295042719945026076067079709606419045013487461220028678880644630191443417704101466029697148157749882284654447672814375786109016390937712328963081116880072513757793106697126627501861743674413772882015156254302033247015981173611460641181911298651051505788473870976797816730502692814754886987614067857064500591423543777655814216487445070448598430410230671551816360865805835471887896151196140605095289771408319889167489101204138073259446882635308176166964447483132814850867856474620471992427565379249062096787114809169104562045969354759603223087553191798685512306943303273077708441502189788108298544259775949019612144582717699643017354801270501872111827873364838673381774803729088763770634291837707204837820511704800240379770360141615246359983895117439750230249057336409383886172299039228782794649405672136924376812836636283407545372472681593427800146395823545284741552215231788551210386583606553725490879226944088507046118902092899208037573894950815547909236596825456397608724589170464056853822771893592196582034021766710140930163458974071787120029249283744263292273108840657657256672626148505693820886048576280518768177289401672547985322131558897435624296439087529691124897168923079246321385530456149678485076950754152455889319884217700038427789146327003108204858016434139141441915564138371678387821687459857001571022439137664577785571223438956240277876924263173061803870389690424343261639142256658322938285754585539071003288735120669969305717245829821286945577507347067364962182762494558869278242320587452334739095803749658409270135448630544974022954948592430421514643058206057383504508434552369853695746983710364806550213354436381505758745527955974807781101143903887783323892112460893281708570608201286334876660299997544673566777262637403229222496239543185058147858694836263768282361105961164736698383223110403608656531387185206780492830906377792080641945646225194600036695863251877392202727654355167340276352972116443878678751997213034550802218904464962943558027325865000217191295165634635396748264835341452877405923626700821875723972531553362499616354557123956580573250026654319231449634838702129318027758786991749309335064286841174906735507980261956388228896823882036207145570972902561897389019399724073692523375109966030062080440493187864155122052722135714632653609931667293479933331173820671797758343148708857668440104788850304942390630127831281772723685823805443139369371981693413788138021468854864295800538103001632774941414413805416366365544608593166502848747881195225734146187141004331630244636724888728273874456362194200347410438836272700727312038900854535928491095266799175707499006044022925150600491473471963093625501106239205318387320326929462299230281963747057526532221254393255202615148296113926351070972523579842882078658015508186106652316293603961225907321357038838016730315574443815610113917141852191156644998602837988349384375930711841822212150840686323828236932815857316776142857028957776256751627164072956029894703330557582331892670274676956499470834946277746626833546629529737081072867682931191080313040989024461845344337784537315351253460849066291932069952908924429978698757938302672869105858754585417849798110351273035414073998742972955535671644057958526963056691965338669653027518798688680605529110010814881108075966127224415751937140186919555137916258709016945865746221150231139182425359785731239256145985259582054496537535847699511901115939220007302824172003252045004808576941157417907139220104965705990763910637050207280718924456476045167893108768620168798160463039530942995614890935003478608736920199485561981321305830879950755872847088507593940545878839211398675917133391153477482573462672094921610880864858420867997228704344069674270663095423345013085739682662817694803063785961143227967907430683610834202776516902714916740489294262158844177422717163792574852404892147005434862790437921582178698012381899325564527405042453854624575907612670489456009968314996548618676428276105137386561071494106416367247910129799790448817699081767901532184663194077148340481556813882547869520624274355362137659880347071855443286994295460248461297380818016115015294624885144476783475457996979764388279279961682595008959995410098891858215336415878196854026429158081508445898660461355970833529485146501088839943182787381669452971003982110204639943330650778102210757784657413080287463234927404530025419830709371258420404017167863617688630622746199130265221867695339614223243269332810509787350115964901685712660343639166226554440652532104373327711913573170932173513757179387125648839238775076652753995264561370040533226966014941893428767137891636477491809689920993846139749597282805058649027803117311125136004006977807000248650697344928257334482749396079618175348418117131551606234657948709553466620158195111976368589601639431715779677902622764866886686028063286876681132586514082985711170638971055854910198703638701011571645440803855294744942431504990536906094284811805540528529889477814843183285146984134052641462551612792191197957023949926527065764300909660918521490263170814745232289738276899673955002458530401013617733563562780302346185921050077709863638760656013346039884022896170371048628728166240680221105886990161201254319627393031499450269295337616002898068558481618733502890865983315812520451864439076241747244398559875039254211278676015096716956682463451440799946233039342036319222328752668210868687400238309147688039391415922054327696773819684454828157261024933634889764683745700312965014881280854694993115444971449441136624685785628958705569203535545148820204395401845579886998738446158710066071140251887672033971131512847550195407639288263413792733933386530432722730074905029509189283918563863809841372379806182774189040351403631291869840027185757872254253718564669524739941514611604479060723324775161117934321942240586324915192998961497618094752004056605949837302522498208360905036852277629787389124596692633079567191487502902036615517935254790174159335048228134165452582806076107540808576668827625068154444048521529859488310368045075338391294637218579043126322467547030385682295022089275284736887813213895886287542110587806866481678846798995221399227764685557639101718541791906481393819844101050982040459516231900544760944755960276238939510717307643989511818862099728229613919124190916721249258019013707795185711103245868712985728765318123161828246364160400561758667821549549630456710986772967778721945900173544473877154401154498322486952357046778622506827891150175589615099009787098097118634416135253492939762599145167615411033319707008310011749342691673980415555005616988354595803378076051590157958248603179082182684174757645807018781499883661597554784858656179972078318442203398532497634214146817323172189252555096330885756109699701357748786955715325449902512439959811022252400937209528624889063999942758517163565889180196893688286566628949523900925307094968966928811118721574721431057321845295842694984606601098553997077524077346704924717981508264066738716582618162633997933431750248457096332611584837887287953584803144733737984598086437360815938866114327635662037541304006767273295132482198727896779658333496493951692551953478595890361529358931684158748167436693221192590847998639650835224213784350666552581394156227593536623419829989080097829848762594831742900827057337500985920078532176651506804671394976455401518294678867313581544379700941095733654428914485571185954378997124065296502864634127578003722460760119227378120095378387374572617317302778885499269055736863944912142981818861207322420626405125809574288916891780765673281572307296249973909772549323826171710938888711852448990114552643485865584920905809802949531065346391210024341594274417984560432475385958124490833878464024826589748540700833133752249396637550615086121130739855239427153089135765747807018031451669315835553012536282279239831853528100803880613078435462334885785669400905352837190146230872738578304239408101468048444905957450910196231670395756608453593465249449174389819957210092129131381534474169639448047466518724474379368007934067696692040966122470360779947440661178862323248767643056010941497097036774205169156597171766187182053637340046794214604467838831340617648138706881408213269168606890791210525103849025948738631377868886640192122196667259215167298065086601060576703043099053590460313660059358468602885500340610221899851602561128039256079862523009940024257901275206633830861059639748664672825428997138867103248697337583440137135376323103112048200060528180968395316084736002041389858061552404458766285153150300517385725471996322910207495427958881966154742921717831603441441233714030583597295137756935622058606060820323048825867796098365679324726425287541421096039972248876726926172618467513194273020944671374704175061716355979357497758568160724538120300817904470015856466471350383679471605421284153889127000547757450549323435483223224819767681059942998519024804968699788155830038030140437108041056367574652763611187422974630409344444276684027728524201090074603420701568413506876504920104884364929970736798406378738307252262024042894415507977574326545691895698219382924507943142018067884078306299972224484366161009842317808294520838845697793509631794493357315342588842826422916645799359271422506919613381278293906260884200539236368668687294102655460876380553846954229701613590801047584755085262820537073317666517496279890018973489841476266491534037448399518282924513019838789264775452096460682898516112527681700013829105411865114859705161898268066941508010956949798988801493866726896668212037317544060459579145156162879859250097073689380531156617502414585448073962616565839746092921570868409288818515332678652503981346157926683596447084833739891055008078987006681023863746611290925210485017730798405823333167754816579398853369124157394539498634524683302176032376550976740984687160009416665752521868757850333359897287960424002966801665994263094906630810807529839870278899803908378466259335319946463165682483554016972389519199524396191979554727341334345126901127492783296515689917738083889171347425765665389581356412135170774279974362802316509368393557277978987520723457546041079061232478649707488863784711825021525967157135116580184973559914768241913568541597966729149714792990717440493797551134554868521850246815906538020436795868621568608828769447865045341697499068236539785219151962993793782664524292226988411418912932333285797474087593175983122980529605415471787345126910104769055027204062981053403240252397183547674098488511953773352103643868451380382797527059944860473289562226812387937920755456219448347227922558237603970006445492933159763178945827848927710239519036275117367409624536776645259535795275711897617452107663137824015193881994093652716781990673662364134517359828813105558296792307507747511773226781675272095142944908303516398793253436783783933980109950215588309635162279077344787758389792318589689717738012312645473274284857437790474556365966472839691224698950421128411517383071096396201321682542909038508174573933532144279586091349994280720783401975071446012151689960708128771640864609792212302701396160052975717177597547418130299200178664100822351202050024332423877674480465613233659950842170907782543512728799797568169252446437921805144280778812371786484510928097407207460439213680571477111871619348541740712459094397658751813739657428851209916967034682127852476658629083268576864981274336059807005139331170309437972747526699123238514307605776441314853815199908532402265562575690213814494375621423597254458639875035394744456766154023111909926385624740074196207748416753760218149333955834919089433446989689250854296335118761051629448994250881492359455353192299221593126030417315702693341031873974718782987443269332562184223185157535242366777894253655123694065378992038201138887098695299859097588135339105228275382900510959599922631054182662624213932211221938714902468520585490004199977748285376265109196424399525314659518642718550808632273881814714103571801119252928827677812683875062197864480763210883897149640970689205199612726706742142725680151118078257304281662658672185890972410000377968392213210199197736532006442254680444219233699937653089844768715302025958800868946771917879253196868963794887690335644813052457121856579972913444656540147545797277119547521564899316433470291867329134997327308813385948392741527754858071017839301890926928785873586689059772344083964260807765511082319889351681868471499129797334735274567782879416888259402882016284554955169694249881481405364556992857416887415276444131950910756463223594306546614315767565739170108993651821393038942921839093687711871855174786315746350845891505671555666282184267159945491067215676836719183983216298864126703083783251553517556484424032506138453935313173199457618449280036338656790523123801148486395423941928576841500954503426987008416725138525557586560235458961651233800707795358973293348786195616777138517373965359466012905053580492884893366286333507478719202312402540734228416171742854458922636238189302228251826159253472134483999640727575456868894492351934757430302093964084587821401514016784874750975819561116429376008725682541434745577420075829688301034411793787267658809309584922065865574656520992303957979013487129054400936745741579121796570240197913887769857767675785815116902269862870644169560430731384854272454092769990786589991971443560618301910482212632659641944425254469174361526820134801593187176323936771852553882305928531508230712223200319462037244557456565846926622416898188875680746702781860250923201275391920522597651981022429737053712237809597426731631256805977970403115660828916153078938751460050486109802539283471682934468673209437493419248094670978646101904971219629615607467060482535224733110044663447832929781063698496143290749403251135877181594892901249601348379674052793078974893737960072950960383809919057349993044657657957247901043851347800596943884674852538825230478104705386476603678356769696729293900815280492792528157885571741428276400368570644738670177329218627795247208302675197784424456457391586565328504058964811645720034890838292723167324854617155324510714038684931590662420765143879256385287453501214994119780243565793430762344594634749062576826200145420620594318419404182813450797232351279311043037488154984005907793132102164058317753906697359340255614882034602430564536622806014339667445552091581703945566064582562294927300796081579306588556608895103987706007328293459203754948745837302084040187179858951860481490341465176418889555602515394701787536989129491842991858526980313418050394457753065197287932863901197270468267858367851684232944582865487862918648967186021000487450087816148117728641716684059818372843683281297355838481200549732885687703990757858119304605373348054571200389847848862199126920305993519930613549325728053742135291008742713208575716956553083645283846370889211401975017408233941043545685327580423650020778980041847052089208771363162586029195649856369432089992353328248536960567493897585524737655497819550983366831967293583310052059709439913135318224384606917907902860185861364540996004697759851615781921171550088311727776344169471235519951262543549428363049440539958434091375023170457499916946745023212770817090586690078309486322072144695723813400294174471106523215001480891745604857154381559304219585606270031818553778365826793382024602964624584405223968002314169213452631618259791951402634025378055786126886739660605184933486841142791353976582105870986708243452694738906293858582709355565473545078264249389051550387836756262751160271573798536668324710976127964914566336387540414293886611491814608122484226589034532788548776900041814721915090495246474566564956233807515483486222109143600427882145873383444417892593048233905217987102144660000478251702666140875514508155883279215749960363986667119536327151844560672028181165728087329904854957275875303256848308407951864733416136821451432759034062079972083151451733313432034352954706214575691990528760812622714456609858593572773123789883893824659012349054169760109342082760305466603406070108297860967638006879761034005061333568967706868174234667688519650183983721371786097475929563534945541503852332289887708491109943047477505790703544113484024992516344372957519093213715428033229855433617632045147457500526888508550882983505085591984192097833719861714071850106987313530141848392735412403237241641211273636858616299806022966481117942923234387161277247877193716886405827789396128995679378190193185438947239797607618165026321878891740816617655264777033102740692606020635582819438334497186321717487246281282795256717098422483527992811692923275820176365494675544469807887536310821936910734311383305426010072418686858856463612646365284431609369383670423002755318798513947458283431673503917654156887178145333914670950228901355235275337472568686554052739149010181532374232704854832338667596646904225884823369008864243920401158575152505780682087857726271767783255420829851052307355800367088861418193510547232316554466436794993624718067387588692650976106105684686295280173320225872042325788426214113169951391388371091218953370934799202976257746082992073193106402420757356048682292498120540604866177577188904043628250070513977861244598420971556245709833889783589513171550286829728263297651634695353960006262486917661613470820349435775122355621843249484397903963782669510435483094543492604334144269808818156751892486034657037572121728402405108949562692462144684526644726331827664571422981565403981910325427984168143453403865124148939134531418180455159740093470222343516336355361567133829842629897289699337990682264727995883039817194251594895517459078805904560035197088870080987249114708326134754608506590668450088720661469827782671949446678967496854787715841467851348675350875979153784764480659337515900780202380908555911562348355409369093322265294947113675025996914732221216727858895679626632222399009726596204372101210898000442412180807137739719497565435465260148281563572100112579122335855740530643541547329876587650337120751646669235071527524330783990690363250890961420616657409797782714771147851147484034069466082992443897767884218923672904068984202130158536091709308105327091318462283821708041728349246474043179405054006638525721902638428127829427028474113164288425661294127202819078023203505999931517314989782872311263704576887981422373943443239145820474283993523020538910391068905343390637521593133476171177788033327975813316428564570862318238110725088169355554767377317649261651460671604986796431231251657930059573508147312717542332973673849948312614312673010287212463394325331575493272364259865463869918072103033983115984988149307950004995336442844334257912855718589987307817554888975680629499212840493170011879384617095465952390871144973562707362344816205453967174338054877125549245354552877032782825605623245825086250213304265534753196674757555685309918275188352543828414882416608776197132188743368732727891833750373366014529821426053151499392207617432328332285820465231705953859901932472977780500125783001610267907672600144035018714318514180104321492133771133684975519407213893073861710044957235586817185483747824776338287429664859190947188193030234845116627670097753793129044242950401831351969786990112831871062652128714705526384241146318322449047732935165744339470971163986818575131016926640292923744022862566432224333602001185309328941526416255463988836012292001901066706754788601396458231921837501462228333298627709884371162762822338689111309420983243869886139487498967030316888647678186460998705708135315384653928913192551694843130422058256309871703513001059590138577704222402284324134906497324182992865654612537717058605399734814160827037359708807899573639334650658538638075690165845410290419073164457720884991641118189748044919667175326502535554055850514498584324418265561924964641143824497212970673154474504184353589571074354904448354110476523914442678316133052915025361384325638432150115039772925007733015568833158514069131804312326976832185496397880219238473318402008528518285608657713788051598228012191022405801961790505134640574810962902293141533920645164470079041817826515550940581257282526475473158675417378684187288490201862022466091844968319372460460245201494048233555780820907063553502664760189274258773272062488250750347462877015641361996311631498912619139528205944752540828501851838167099244643473734179778490601750861732505285887214131793093218584257304156166392716978404754661020859014739284230900913904016646890447074482284078352951121575111360779086084495339624171143726124973701138778018094895853778671237238351225365382890071532192919140566566744785314378536770210577535812832275927570104189122717791179924460116436123724186294982765715723802837511512452332587269141519045903522504990175109191432331764473033110815297105658642482066434584256708164672503956496537811747350290269620751017197978894005278289108596743181654903324390141214962633468186436723100455697117625888656480566146979610576418177773191763640488476789988886682330826143065242056694432452234100430137564431867524880088218270338774852050114237356447113747149531315689922460308393808309446119077376415331962635929229904229586597773697129726703123051176825058005878831638728278442439997022775290390686810102395754531905623794484009428322538586003986438241320996613400151416378478558651245893688703431869126133376509952374076981973657098323583261153176208395269080094523908641565625439338340395488139937713165001023551129860602845755904974887139879676047946215882688674920698422385195567237257633363737082794296982259271578121706384676345642528695382890464556910197241225463497602292680448621131701088257754928949693508945276241031552996099262768738364647491469509004942254609376024887463913201506758702554980073984171780955882408996745908465276625990503628899333709010072856495895494972943070553559207840000098512915890181706533323310310661006214641274779212277083999379083343537437097382874878419062606903325350358513581403237062336419151904385156829245991047809665411859277293081153485870353599414792449055174048109371653341979776345015147349194401220554484224877117881398818021234395366484559578807163472388146679656897406863905700717377247987339724416880908584383112710917800621195602952435374512314205378639421560132381417479952593624566589445869585220097558475495195000687701343338115956979655946526858468698070037916317045365661727097116126109706470382597624639247373955274049432104860832723036456030239203076427778385697991157042876489150172988512205540932593095346312369532383312890864302552335163144192183951769715929971053336146763455071326904095950779726775953241597135569717525172737229882248346461505759796417351061202259539441751302792877859800738875917329765971469132566188400650560095814216923997703325409879901265081457792280523963198829413130024950441280849904438016093825544684936408215253192426226164862718570627786485314911592830122054923106937838813519125208404920636175073246221362728515741732033212661869457985045256031484673961904944561113799741687708962474012408389272178343886996150867224793450683588453848938241362463866387600305975412968185510426399900966736437754662225913133598267772082383926322756644523959564892245985797056487301585258084608786739958038821330792060353703100397881278191392216682009260737676431247340434717453801280339947406392919146881079816291532079337407417569002422018133935281218870800874942878772696550142633167822023624767116327952912308526580288136969075725545822339242765593112341568661475622150513176786095867888793467500644647876083895651006343569068043211672395114301392170745592127035762941497237982446234896313691156906960305754489458447932853416050184334063645556519691789586571161520499676030841221516831898146036675157593443127547946164639536513581211436143331737056805765484041395888837412357847998490500168852074322370232793686030846916543783114968017931012773900956502860379571621075940016481807467727043124010298477912462419992594980956895760411008131408830058157843281367666483625844251777804694173157704032926123354779382543091385912206688631865289508709711432835158599301295308188260483325844530223662529000689897743439492134027975783920317792357481031334300218598622095330841657954617685223996358249943815569453559527939480747885814250475017358429114034060737901075811254853307501256492458753092705194073815369526496254755094979570849050269550273229215411911540518890022402882798129991076134467716265218123045792810552149636505157957655436632672148936543847283360364572771711318356607120992993536708974400614997970746572209995773589412799867017406414410804389299426510526647106995222658582069533225018209322122121366786770444478440500782542222909077184372077342643213449412818354623045178795691572840404145734884151598213515769808783907864077218167847121700277201564412089912041063519950223657043735643069684564805040272563035306269262649160450275063663816820162510919185385445317385413550309809442684739444978709008515771206342173281501668070002482957106782811877310995356146088786720014299504138642588938659985300308156179133566496841941540754706027715916960886285629236630085153549700866020323526195380913882530123805834549497541787910838154503490073919247431780062550138978648605152842507755965046006537495972616288198668491312288479490510010234552503846440233241764574862718355548073485150560282523611597913969971514588490091475196778703818905146558494747589166484942076924250629188306768961208594665797896401070565680888093303570986949459556511045133826893939984232048754363151999853913620473357606795812609836314533962229605738817510923703528810539037875694661548621267755204052455967107513417008886366249745945177016710300944592371786108949092699968183011172955633802018346729504152783978036468307097872938707517291956146826082121769291040513567242742849624435236961916883341010372239537029451909354300706122762727442845963483314422933466102133595414947394610653752240117219347999512228658498005866686918864541799372967398539002620422217839007462292573443306155319983904447453347510094860354932602465973670858395850473280282503310275081434581294727556828008658355872420514652185987943992941476468294310998511483312816287337994103944776251385072404482950742044052059507757161572063404701334751078355800784083803052416554298903085822478006482475676074522506001627219025003773619632335736518454635872103087792118633929718315131988710137879442947463137025341682937470656313581781530069630582083720364158722921365139053880428448794532316863560440736281761485179019929055259826220688781258934738625427064547522177881090874197193736726426747469856467265700065910226738837384589541910175807809683974698197520341395738239303119561579095186602070156379332810923190378033333807632008711950945330820535985385961072732497182034807709566452265369612562004418828012584370480383351920007076273578208526602345310119298414832075878758069022809356257266650685877493473621832502690064071269239787495851269594540527372375219679347291160567296808615675879328729397849262228438387706106421039112217123923758814630703585617190526829634830548900211910401395066876115423153073450916515627437291169657543619030570237287426932501255182227579568766487019654632071616125591896756806978810410445586099345245548148446426831280725686576083261583157858756892500095545738452368102775647136048848583513990353564511142220531950236643433932954702079277365220599070942334904731923342462483628587718592182540143545436562990505190203865715281700899902479688841477802910767121160249746908416122863560105192124783600528861584227351738822787108624061507489577390520821409551611376445573327073274751043617701082980368050180666205719870408091155301299785809473454621124839727018725600453006081290660449386053003242906320634503783742942005879861931394747120345949169300137438933551864258062093933212190587039053157591957027143609618627272409053913297820016804494873215832655683863201366942598043823032401069475282984991114658806675651295303089031822922319392448877649510295025115940412482239488266956261841148501491522353428080302005606231788391672733942772604756265326585709714022512177477957391028899684984436293403973099978281954674740542553718301953124192718703410366219391051254255365386626034809013306388210691640188023351142452580846932841586373302703319541729886192440628919869118375307775210473959165046375782054803040883599973235168978598099928321012994081495900618157867094675420411701817776720091849271451032241942592332441849853962984234481689137092573189013747930864819130270118977369922792637140614387320207251868598406119833759099010704519568408123259571400196419701749042684512258248493204117781730401937876589705478903521469028812582258957649854056553858407205758070736098094730066597525250507083278401655561771682774892329464311345071911524901606334329299230159034747662415107355388240963744841308614281210262604325506531056592735665190693016128872873660883519655977545586991025249362490975689311413771157661633073458165334327908739197914964805640546206223774987853120040130316854060040186579410117820452046620887676652379197231215375049635774060210665614112539382471693968312229091632826987468319862026264050641544297820155313627871285612170272614153711719674527376025797843513316834139854155910375467396578567219350330494476779535415654051822329741781548656141170540739582584811977357340829148711157386146043159638656282938603815228198438255431860316607599747992902618234790504610900838764613955283546372519847488303486638221068258195143907454544611812684970579517288481524799509553319317253822700996744215339901091549303042694119092702282854588388582673358509851143144535250416099051064905325452994091224114491335385143249194917704733466924109328907934647436868017063201095369881049316041371498910685769648870100234841430513933457619216570501214384750875471776095865994327254397391676898170355443831447171815265471402805550635861485117557738157238052197774463734751773275381761212929249482482020890508620485069438976649468253035688607664607956244644992066452253254660492899258936582853695358301724979891194907167099426060539508954583149969319243069093575172114626374479489152955973314031810087499378644647552677793695963096634121263526606044726416172296821252312347184349886833230058308611665407682251383951689933509251269067190438160817882789833113484566096367740581740899893002832040384413282384007523720054019815291638373264052844851803434791117952762614561036709361999337975788922306664164515299886382064496937745491982489351161054485542105153951339553240968565768935582782060580334684161305782402896044995233433827101787816071983118868488816075403842472043173497117313426408930589223359123483537089123394576429403210105696810597938418599852693350412974060589968930815725378360776299861215158513520561607099282472579980038999846522455241207709706647594328772007954678799942907403583849991608337347990994668651207461984339988746594418413894390245651959335405148983565687565365560394582568114539647518357448179617547304057113970323297751674014052049842152146997171435159748840951223344359381280060736646377247580600687490854761120194299947070370352439929933449198923163510679471812907036298222482059042084750952675898617792417377704926285223546722734194490818467709891651262072368979108527833242456540169557111528352051146561607049615527059335587814095039261627543496013093460467109320479739479547783587992125889426284269012327265451519041049740922348043379372200901233588946688894096330085064336478639018055725152383110351664980517193663468602396775733618802614195799592051465849814055468521630550373210858407728817674030403000863362868643385827981181036599972985874138217140998534434230631728990461463756598671262547343481487991261323502360025860492090796625681908839177099656584139409877324933162903366198076221969323900987520567263642522715587405206362422854764901302410719613062971916533791481552035211320032671683910661173854923506717032682195174541376539023617565109487957094086082314138776717463836552172169787879409328651265645059099481428083430400668615102820191880353781248441433468626587235326477130541314856441889496987962753051616499425807578062946415382301023101019408179001879343750696605505946833721382298690813804729299914455656914175588209881190726463753826263190422654170242226001004444005274126862813506785766463255805222341684590778283854726836000295235321675529521827538468770810153237144916386451828871530821500678665938782626411409077764354792176066900646760823440497493087249632789565789000568695383238738448850233207422687967589560638149033668634759695398218911381578188914733799466220502336875081187027813252514179037129588638256429102317539539073726413129608725021768073368894003390756916731925707045233286938818436851851082853741888766845252942260833651845935744539336714293804522650944705341844100896014896158476878005262530939223634071799346994960234857600400196214219437390212287891751047353658258487333652572214273426202691054077818193392555609442383494050095645923490260620378666520834696089741307090313382781334518722373884968779791632611260190467731980569606420974408727243266263567711539496866511987647055228848180988787633703528476237482729080732542348357634758473109313072344002106751099196961598554018705717651224995449406064752400386327638652083597422410255909386684303298444988272116353921541722578482785992209913393641517874451092077387723001056934036696807037325214475261763982235621311153406362084771707394293937861414835210220111824744945032801505307626876008937640229599788714035606243184811989018050050829538363675623680313419734602088556551598731530144490702008515502729536733404010620299584321168674128445675604952661569437879059906109909889594590785444700740933033393896160826120145516364910985736240239573039938733636960710139990041466916444185784946245398296508888669530732500081074887595198939021726647825100140149409167158760427094654009548038438031149201304645527686568009673967208079018371204798093574779599457773967337826188356315701034711999156230212734251220701636617335124660401182392351197251838394407207086861836967864930583451035368996322393717442280669700869128423361041692636936264921351563053791335486648311559802114492527781922801544025735787738309769416955428412096273787677708893234149160311205521136427236479142507238087263214332460852334849165815694687620236960936069674802409267999723019381802427753507982373544943441989527490149291385155447812262993244051086234951051493108106476771034895316216504905616595938021252122224613594437428931173700168397768080351415679796581510926793215447029912646944889271259706421680864002439484539917598896660715957339408964053222512572726812419353313709755867084796127400834351964078601610806664245939127075025299144975981786306813653030788039749067828125892986947552232782759419549019745300005271962558287519618509478083892249207277880864164836938952088674423257013137357602288659656598819265932983063998040502529304172692532557265595824572543684628685946133361117390621718371722706995228378220531060566681501050189130756139908622841235660786345002251207882040520557504606775911356630513248349711321399269978068991391614987996693732953276587203481877285195312495091209937596366965210749810849626166889414862508186836318193740942797235767581637549728282707928814215478001350062356108934026325962192086376095738242754470472019242035267055699778739391516824063205147639904049504083914476791907076985428011843738761821165789814769570921706920474563508428369828331255132708613050770125333182715707100150942471110430857848941292216040162738457123560355666364066748700803239216768610076749753231519487336270627704045085922193156407908440198719651491547607459190077052199257401904969708471769075251775244764672238723400624821384946057883343541822037467197692794493598128423098047393462849678826547520980682205908627601162088377432953400421295380095618265720374789037289745731309046894425161045992843508153029510195581337195263753840146475021426961465780342552566740124456978776769870907752651122025812619586769414020456185779900787919197706794442403045152933448091227519938868736019173912510209246266130975619953473156496218526865248238507577922303599519158225987401834910294071584425696045858517357971341679226946540342057208346112752258261203958137156775014549839665692383430417433165333880748421891688527243283498390386464192722517984792994658271940680903504161144839572857655097392998125690744580137470816265428814889694838523973042129123686194802667453575091420532854652196372161309801855140630105417779654796653631384537980514463254143105965929160216782275965393258259818728974517063032790263240183137267897959676839034560381796282140949301672970212597979762125900403133801829576467163442800313864371864784532458148401193719874110622808189559852976472562418781110371033928058204827977895417545973195024210585273722039223562606836820429862066194450580369799016606348216967084681875569041820429035791687045799722232414056597459619481825930899359663176792975424812310615731795191468428896816463692211287882993014610523730733179665619674524898561730974249788544670560903852472681300744282534745811362586049050979587104533244228326274898474724950762129694637076920356669859003240607605855794149571576735076576592817225842278113845302181979130951867270035137980520061654016111683658562225285798750425149333478345403815121788134430051097044045024426140171559391707326969146258336399648014739375155619927639295073188530751638800797786443627705473483286065075734973527414575581928383015081257556795884572448640229270833376222590841749002563353759019236461827622601848267927443728677607334109347363191117889825231970402763468419164541966620370750368158332949355278641514338116642872774144167581897113238487141194194381540578687514612921366880053801475133728526626908825678721342167472672744936955964293222587648288127121092045418561960263414716653382279643881989394546571746131707022657875764542750716265649407374045151148939198690548988397717370308717588847847194706952856117009629698014462567839249011007066668968357809313469322828133220206642832176619379964600669010110879460740321919010146836524879926523850957281389696498371469073982294677636162961949739253931128296077126479537721578406938872009440714626733625562476189623208504725349828985841830034614839322437062567969749753816030267610421604937147859755927116829793936120496754468046334705281975748358929447919164236946916887577716625896804994770533531070066093263061943253274250266382536310937024583441158664612156807415339337879055158381420583495571439180903391348663758939927559851211522014917462968132158051493486142549616855644908911198923532313720976782665224057103206548582212196519878645455371192317735419912422112366141676026882687631308311109404984318552883906865952238584461182720272482971864956458783148725383712462028377727961333462639273187508072621381205137020451689486885500767383433296307151604935439934042374066283248429535663648286017179358764911644755771530961949485912740958430007868708266953151146316213410924894821601757624044685544937720142250587237126134146490907343016471386183129873038934835800994336594554204820471053832514861982451384972797349519732310007835566184758591543408686905515745315028143418847386919735106165332238622549601690028522637826327262468854763984400846362238766475292348962837438679771281838338275737599406019578525927741727506315652699860350909229427376075632403084105380820370838349570693219185534265143336443752688692018105950286230177451251106118419313465217240056759561479670487845428208684647996743586487593899566554383134164330224971414958480373594881168877037317733893793292050136121935419992927891266372737632752693736522876893691524938770166527971295470683173654614877772703290531588800018203070361689574114789880044602192840809188407521431585079774160257873075184409632976276280517606219009608160910482427178934709623236755975596899854269353257676009020054543841364047489985922897021624875357808676240830524828131779751605669601160853812278526847211174681628524892097583414783538472332077852701235643824887779724896423840680199657024669002892713716886433733807300575787984083584045901550018181408750559614497845630074945226417708768228273188887284647844235021395570252774162338596610701674217483668231116547432239391740585618423838371983326457044394136286869283181993766254543348477779630670287881535232832070404674212377690286371848047394876975540816187844773988117156592436514030374170250504639201403771675057915126341300464520363483301438845079984131482031758341720045699453229462463503451915254998666597278954946555659106473956245722864791867257443626934821845092920014889848407143540331127596465034600061971431983017433249331315275102200170905692913066529986195990797179451798245061126005796162276220122020051345405148158830220072800674062152769885277408526414065712309947321060846877220840431751982676035624457367713258296988386109867830019640153852180603240998267131115616898141878471312819182687164218912639507703183665867126346995264711360363396268230367406138970570541042131886554969501695074292188647022104993208873114208555250531820760347827789456867165779359319193759741440893478439035744126617189502799436513760024516759184611138814663816461273623070137139452376412373882541087540850452194116785326877811571587287351057254354093066379472241414977425992153267727349242774726276045829308832396676662903063079938829318779045203517476498620501634376052736299736088833971992386358451880477332340770143203613518490990483785858726950451448346379849421122968133646523870490579938287031226061048059446564105976405823320445632008002521863273863224450022134869312520905711930029009443671391966836595392271330380327910137249993254413775767660069237936195325830921866677572432844103912641620786236524250465091349707164747045368450431099354926612402533155522516520147644160753776259191352316316270435184143623466068865175325193029463446424085595022211646823917072586936142652487149137918481982641833485576233441969313021047194241539252423809743357890402404878341829759002155733619252985751909268657398017249394989090471684819564639220159659623420182117634779747235358409155343964320723433215689940935289412700485142901698296027517331264674999543472976257186048657515428413950644062741009613191606207343604264954985495798582374113618441266317829021382027286853419399992862058573891169031370974508782371057373117112997431567145998872266750491298846398324413209808716407662195583655274096026422112397410180622498325255361402438850493985166873286581697655425792263899407290119423332268874206154509751668507089742116126675740763694307316627218597263079765664725071297807742128090693394649593521384505248786545998044095288429791066352136393368197323975837936556351154828216145444589654854357516441961190365266076101743994878019696175061525530360406280444276731000850626079987126966738376491502695861119182035610529063520708218117438988186751507490990104775202396698298210856885652251670092978560082626688437979386681195036221136781984361651930375214391199025163685963266342201480798313256212906765736914322081531722721377964599283406649670146569310961277213731482334774000502505304625588429682254624582697068516891251151660253052775701713543039528778457860644407957837128268511924975947201423493163202214564366444500344447007620289770351732827747805388485108183416099042879734571700275784267208626146406682083617942332997888703268373437226967337259408308879214733422513848683865148608965844514883241017446658550534828733652390562354772289221701358125955545892602949325631870255851351199170102080725983594660386344847374985615657420295140761250051502722713136247770633549546915912749749863403146798825324841598370719330270444298550882631634875894888117859507040086552118307944784675791202486384517985768938589803587381159591028795791744230126308965854872388561552166227116479090092988328072301031335288492189359456839707137877079529308544656383113756199522097310551088223854092820882309110030990077745236996473928736755911085226170273498073535211301167440073343209148482491348480273531177450112885083457888869901082584540905171849391904743878260304186025040915281846118302469286516548450630260581278185027921657224243818489078040650775475757955736529398383122349898901529425823645287704186671013949101125468349652067726946830918022009547080626357623665101175487111520248307382928692668906295541983746303654424834054443811567727653528961728721356416868640150042884749914248651034955814995906896741990274950730152993667770820597758429115025636043624770760964811250674096244259420514709757862268540163614423048033798310818581304860562697236576725552138457235956745860131011576550082485791526594246175611707324519368547621220801168946494296915216238136822915815715196930452972885531252198423120144253125297146123143771811310459701110095373143135740100451771257521176149955393332563137966688672109225122612965723282994780999828943375853965046885283251265854984591641494782922280509979945543757367798851435373452043508818518339116773920203530097416819602108021913021290080460051016931614759424611407573208158625655709122491028359216950665301693827893357729611708673194028877205413299024410693636410829913787127977955999436244104468226979895994132810571510543890867486296997346168887281184407996192133883599364728389792527675307953963338666517848820751004738050816882939596867433352302673711282743599568647110145994230752201617035257101395666804676169815917587844196839828970672842374513537849376504742611725380022711692775669919959775319006148214270216728257941957589781611278415581404048288602136824161247632681972534014316621191861798262294453243044638635575546507571256146774008751896334256159078026154624885765996181859405919922298173835626184884706489524861048238131306632864300862633963429343879056222720361556550338700516686141988288192755883756320222058739965585717863165937141951199995285293500454541385060300757635086879551186040349674792017089016764020358570353729531862330549526862506178534516303667925856945406138150521710684249972617757212879269214189791465940130203247937068331414323512985264760383939774684225857930713562282745957501313120912793742464095449367834187348364971291030983795470208562921429326476510212789805895849378818987355528046577799287514361829465627694321653600621708215963321507901141589391759974836017980551005377595511911241444283448151656606917561176317313333845000371191306273919319608001669855885456483273176639577613144341387377912442712486995483288304308047531552689341380010032390065140165718430895315798668402129709285588978489842712078360936002471669919595375123755559730589016820068192095468890495073071723518293979681602989492203903597128195180582807514868633342186264452825368287361466297357637504095784231250220667527871507682065985966331051298653331513555680531916870789075842612129270197030605634425144009568566100330750974020116484634074128069049390497702180315735616121191361537746150121311637800926637010815854130743576493640305936454364541976719957574323992933940674533784747925494957280140308176993707490088434792570421105028578763945809534686507674370966919656601619633590821027179966380216794017524422994563178260674959936751543833436239785111255618735511192614948455223400414487330430927067760662577321120738474733565894544595916078733833669217394820445776881480498009936674710147234438502702304836395680310742908794390679170594311764745829034610617700484405558823923433031376737487543837974738860022348055973217699941136304123449343842475272786562211070321056294448251942780885965309241731387658941179358352442238717598779677618870131737323788611469790951941180461445528477239049805691852386506592464246138783416265358570891786957059988622246928003152173441659300887168744864042195421095029683234847845366743441062532176880864725572453679284514988991425052658554229214553640666169556303597004820849104867782277151259250107355084403957933178869654119426924036126665314455969023590507090208826221591247688727555488557278722234790603551519426009562123740488760743133115865022448960772428487283254859395218541864023487152015656035785009674479973504459102407709072850294031097717503080145978167841955158376870568321816891091180387922361932932546017226890507137501566015992519216109311260265428724835545493710789297380677904280512953972255908149874849456583848475181824969479585172097007396475040796138847272885093810751014285391960495826216984322477247212951954298722199103229530171836944883204403647833740161978255845920547750413943145116250732251633881491827812174549900658389267856628829949103008256109438501377983457250038320810195546859978001157914570388139101035500028988982753183710203352039246223209639954120297975825072756250029766489035149643005771662423884204371441961241006115077719295858649360659372811890690115567887114037354460696726874757402884831049417690369260826009465335618830613049060260801218692665899170495233118909080671460850520238400407150529923465191495747725892790874967401216450187630049658267103927971964321065141061836537642909174769511271922063374882374030112583559287429978187011488539557526116104053626831018130546970103747519355658345800999709824056718227331615109920304517995144280924067812260443428581166287393663676896989162478634517104953480233352561226277604229458151413860322124728767255890433578256631555536584169909004056939069361304157212065897195779257951446196366790178484335132542346205379044771005162706369381001649015042617303547588810824753280472055562109832627578713824051198081873260429502481680612102332425628002270332259989328024551900005924612904683364437814580346548989597769723579039694195916840307445682715079856184806509521665463508404173493030923399700089111289377935815418794161931241517478718470339418318135029874844776477256889305197382140585823125247039694472319139975443032704580486939950507279945288100909871709736825464034616422615474139391634208631761700825707442751529244575706844695987966603994388815819889977773848281113564207973230878858998559299171500173611798730619185959539417260980253902308955240916782111657617081092352334619350466068400183217713601319076834938976434136661276175630868668613924681838714600472636491310279411102311997758639871516036685675061841953645078674889523630857747658910679483499446764662706244478809601354334349472842738198223591663894679354240324017881311403595231092641518864210414495842285722390446509686369146196618300105407953163161129435968997066294324671633740587620240303111068428657684064280175032246791322163801568771960967903460548550148304878351040987573745920477176053268578465288687578727177118991777902503146087795751555747207460122311509439881074164114818105791048466371562667650234133706634115223141823069099719244895828384385885640844891913456611536682058062288746519708558528623355081881291762017053098288542968375763501053556395110314784773910090197860691240479076177414876605153968547106891245036948075048745421687198420824346734500074973001116346613118749187369876445374846579889020992312155061383696365195180114696998296270156875514880612603431066352397568834369326735530752894425264769518634156782144267575967728462810015523675580638954841208682782341955372489959993963646576839198517380207643912405455793081853748099245252316634080165372359334735530007079924056841010634148249787511787482249726564566609300367287500662805008937527013043924324771481173424576937768046847453129374176259842196821521156899983953564251570917613022525418139612950780510446033048982384730255046331904876832163496334827225828566714207997303358645356810782184963187923044778784020268345399239031155986505907968364327892473557379898533800080527367191173628869277501173191227774212322198960970355900885267478234864422802433310240803533999431807941786814172702385681910060090761755075621508274466713606693728117890978230037420770297397325814358848987099320890662118782175381136046935780043169742414569037293012202159905696719404530059367374039843643497940529177812576383970526743788617524869969102266016703471981434480240280328905058040611351140629254333645499723536034563566354567310630208523893940198843549835829636056271565913341209087236150942679358109507452656640457293259394597379643578767820820478710997889819949307706934859147609036168010547222694558860576433966230178931924117466577979853087893230683778902569647219123558976696683481410778982631670150987226567213566454889551277649889768978924590614515089924348923116910985301610921036209110734437067782893994800601233336940690846133818519739543359563690714799807480622171985294921505988240937588499310041540940584758906467742642575980684156285872126734878952845931773952737040561570088508678637841295544805978933137307845861319508141065243205374901813581207797635802358094302779462752021356023551266063764863224818965573063457245553422525782560955655996203049197778243228618406691165446299678986449760405663651776671476623451353555775681572715099898440420343297452713097762401077207474822901101033444339458106468875156515651425063232968502207921619971766425219570018726658097448459376419265062894749578656656408399109053724697445507646057419754279550144220598467513011084396379408141508855887995870193531597695314262034339783896211786255564040868761184084433079530298923372022515545686456184402588691476718122726755522804085575217852811990497720531582931638335254410290146734758091279845020035603834683097819303066839211061729648002216430499717430284202782884799854386935202760820337588134723116449418572453494050323468142707992367919486070397015645327068048281882784349454651234883662257066377684957645135514215989406110655463234939208716298762630148353482427820467261819735152852602548502288373762484560165494445037489155365267136230492610722135654244009982872973329403510330182099764700321908086137526144946055469765331081113894636307927249345959984224046950880169277388788403103891935283999317877703370062950562967755263856180978398639705600254444589068516398056577187171278915489912128489139474212144942093667544064008386253442127796980215266488271532392527420585660164193458953165591200472803964305521730784705476601069170451203191235689559444926327217804617874779002319497410331996743537342478907027922716027771923413702507182171677406464435151740687007624292563073220688257714674654930782344783661250036197643283649195596248432745217520487237257885419311382618594483978039110816443959970199453311387526010410811452692264134227414421588876803540107238508159759190327875051265615160011319149333776588458069435806254470285105864210063396595088445933163371819286244992411370831533618907069333415237225236435271386828247668493782291307081295639523668958496530923439943992395949291033228820701695490727044224296294678651908144997052807016365379690481204761020490440488295188459716737421259801677242536262620998563071569520699491522341939417910308956533645996958098458776639978966027176612957312873265493718040411528731774815136752568818448009708140186205704210598663956584076558228969394703768145487093095294422065441186641671692601857212165915287968959504910069312817121884470486797395069581364887611284127994201645235307093227541573324916978605828649884372488774209794808044441892935344066066128237734134143287437227685758101497632648733895057486264709675221145466206249543235682841885148649794226069674666967189365691477703352771390556512519097389805691469556686734923009332716308214124478286155354748196156884256202222296209911817628818140922443693240767648028306002352660594970374727312377952453710577392019879295059653605037529034845817212412904533620239738616151679853764669254382031904555743423204039943506058608333957230525864713349658840162518946304048886846791599242129126468903865048621202911722697837236447550677425747386175893378596453257528661551799121708789244684990685798257724926532277171178559395333567846599409902314467303882539500620718181971840389348872560031011702607060450258757289913316352778068699792235380613280023565402234286210145709784116542740748088680824746798872306791687643351007476227401043878417395887381683335096974845730889628116195686808240866475230728957197681183485463443704325676018816412567686733725429035060671084392160115769938274541056900455979756497128852596806230008888214084417076926826082688728573097228382352380567989048988524468971448420092596667804559599497016909004830425382211885165884642033763351635678256507920959611889335346753820283494819323430916879649492144610853650983916772990823315389943261337189612803700416022383422825498976476849507576836039441053783139145741551192089072790194644920210385574782548395795917537906545821132506268738603431100440669769805334903947246160385587429942528074217242974327622946143595964543923405406490960789316302463064058359515974651485328885667828641888948975848561461687708973508125038278506069093876661259619862310443926549744456320413178774486224003764152287320841883687728247404368168848990904537446441125961977258902755420849684143657281040815050737277132044959946426566326488805805999201944829784050672327698842295408012091914248755325400970560397300850770419635568495020118730690243530102946644189187270028744191945210289780403552409996596410891731789606311921019396948873099851353324804276952526885429481314433293194381554288230912236192323649982502214151249025084668565383199134034456779207436388857500582915451750919745764363120582996750838027526047260621954442138196854240955162603557353436120343267083282221662484801377514532356121076949417645803382226871071007069232987503031391197844935745632259901382825314998633037437732903423651717180378003364479264377563753126780979810543369124745066298284071370310801765921811644702339193283662918773637984882749517747299833606873107742495994734901341482150669072299640864035347180661917381364623566453258783187239058950073914795856420962511069699885200318894904423688460134156067550995729344338403542388217354179557666596239278964267236137035652047836523559112029874225416648497101616736958820662227136293172363606741884644465107322563875547874695336587188037360371951076889309466658262081262230031813533944741279442367554299797440545828618743914314481072124975199209508409510581345304213845090815514506275840526625103219086037639436760378694437417678262755376763287102322591447457845897199840939378909133091684939745211223283153760516501988987521312567746823493277273909536554743060232145288031245611654193649052361275816453988141814285898089350472295615682880415750214061464801437071241866729690647736925986831890774370042606534230513320045185988706380208945545121526153423539253869191454272792538835062237155368273149585454996526386214816141918273858816825581278607830815057802224191400489496038861966066959326690854040344335256467872124938375457359829757601779006341281579414500155881120859100697376909061765884988010723094477806122392681769166292947171016102706639320592864338933890035212909906687412446143729269185007797078274064008084812468830044643715435127311375399587985899204340916926142230981351755288332352706163360793236153465732067276819059934244968673046904581260371922184837315148280478382867824487796649463386539396448372479804162953338866610417486395490457496440958450090128684966730844060568364032547026336662691454887532298163344211949685907850633323264396938918372894503170750936012034869836518858540625201112446856587812931238768996609872184326029856833691459650941049762304767622723201270629183511613984785966116014109308739369941964486467364714838406401532077073055134419603784954635683938095391407363412857833467807544564984790777164591656052223126231514523582683611923104945117865554969042732245253994675427873659572475473205971608948540032900968079310905463378417252414171933187331779347863405635078457026660929163303895300633275091139559350171389195774569098876976217861152802488169957276263671341653658073373340674289433423894431318488889174748929144014574788509737627042134819416418617271527272234876895782408912602353617815355950443660294695077401068403861430574116144055208723905894810456333337140070910017943594566229833712620521862087977187990551244275330576379124379152457176494735058166169478409233072390401237767039053412652382364900655725247650398669851839012125169355680151359517637549339253576536664512563538144717950650222891268464904878599798570293741351781598260391986952302030222184463133598079490694968363396476772762293978819685728580079724761620122444792081598234170874834343416164910294180685809127214899345396874201166090523999544390593603567935734273867169830320670568485860169280040096329334883461790455093652198195936027297081660394891086684199505335726220227330248924128526332983683104223253276887301242346815750603918583418209949848463809375205758043270735245817222213369797901796473938825770259084627758271730166764906401881810943432411889478847791850295141508471213866367576063785611801618607076904831679920269167868749405886828817431865906984733376057781708076127060934836074500659964642410736271729387697543441568809618855617715314771332014346848323524108941147838462055957165295949140429411129331813507253547250682313363460051313319365770978627657868522788997271349023200983025214952126745775067703226023132014909211913505180859663092513483398481023328670506936840233122136149103250216560470346513692329355146984650489418220841171745712158826838255436849070693250337065739257106972726214896181595564274671801661678925985517956225908416944016597408582143471757611998096837070542428405882287165297975492789173093631218081817162618065559266578711939255257101989929225935732979942746373615705696298368425933445566674131207542227366452146117884024485510946040843964536902205727852889152378509219486210999742059588986743918549057758939248744999017420163542105834230233943450000943846806082609808132744623939852047585667801089017850565697030777650905927962329615474057146564308260311624282303249597689486917785794785237597501405414206830227764688740552746129036933529470028865320908277773464815512932728790490358068349958333918128674504465372365885090247606633895937947803103588090539524678523725638555335462850432398884345875694588903974354229944924954522578766575586108296135122889296627436292157982022819225854150130101340093779329927275668635201110042820952142036247529861846881251014572112098626815711598062955407656925141078327778011933845891861135093422944386762864355904430737983115260388179323085832768808633318798111206046743039628857595153295966221293217039690780343880010401617111381059768091529112335141009684258056844826692021873720747822338690286411401940540050698027755562695978700611943317355097570110472379973166116406888684817851127122929873452316525019971014588446292788214323367187672167234350615581525342712146300607387134660870489386889152244644874232699440355916657102277995036632841602693929798971685713131976686318810048493988333768615037596371897471995820012142418565765659635782544464978818858043313638001544174768107045683777127747597905052689211159936829922775833819928809203602918604043540803098039676199543724422103240566085666299082014590983540284647992226640892507818958230183565216823846054466029762704212817947441257369457242004808774969750725430130190750728923745656620176613275214218117186287384466468515464718732276315121885229002170045374341863602525409017707672620374532976246935525586156781449965345959181447679947783211881929172160280636596439761877437285128237418183501089371852171196331736192178364098831058493658054298221840169406528710144943033941644542638104302813927190502587961400364086779445531055845216933909935638404236496435812096717929954714361136257265934626268385212144673971393476565209641227079233295789202787646475838346561420424029246482927988592101254192305882013407854932765347632793008153550909673657259289900201997756453154278272802803009584090422010596036764931875096330512823034904794915593213719447651840148299767599736057523862081156875438338676033199946830466014666104004684010047387902208982187844322572838932937738055763494707550549503915669062373468413733126260167470683166331353003704551428680133247643884939701626902598588766609015936703328121109403655490597179535569180416735266503809913872494563188604374247628891103759076373814782932562822446193377842823309609002524175065545282275303720151286128774843617330926826219571888912607905135594286067840768544389221203988117875620169424433148417933064272002226777613085184997963926238083464850700974821057826643126015653684627378184697186889276062166207704769365584645798725377272739930697182191512746873622986780424713036812518199616518447343686619198873694462637462338365203700677993250996019882667372419175247250660690636797000704687701547197633575685524197481139733793590941481049736595428562575233933159324839134869898817223145426302633258309743789165571367455289398798176592439002522782145289124879672626540020254988543115721970722142322204039893637922059241974337917812583635187269500289563328748048523388082275291343517444816543024619939227773220183877956083765258106569483179594493908009073941938900324611399339242017078872512468431928213678631977780272971538375673424626956575394539620414016643888960023188750181304835619157070111521134458296346006250341994932501228074518719474504039760797840056836997009809441104825961721501971790787208708509855089263419686840110412991819278171673198403577132604044767722747418461458777719081951697172740790182795267128560368533545288559831818344167104169789202774234950241927594487939649699510931928059062923595007353105418693858369241913032578091671451803500210797111749260483707392854473027860098092601583235386938126298539859202962468584667459369626640844475653095107313148169914118990510825519265335576275339388899818208243345828799903740613211956234170811711522053429052603475570850465886698396002418568246168063168680074150812728816247095343321408221731414866082955000876215557751793064190885892147392386172689509597551193446990209968518978413264580482951652307737396353657856034315765208991947086615776606084709448061097839627966582999053185041123951209865229882253549695156977315814337318405860759445293637328857290643064251175362634689737721962150294586758434235511538241888242309611588430762570399361205225089367971035853210684958859734022121393220415389400579227789620893992719859258337742554863383436045859404921026084427539869099600325254680242757843116989552869794888337476555352162788457686150618759962639836073241336128996769031865642802466193635564510432335405768674760104463835231834409516729964802071875366755054286809940758359587020457888463227088131720621080614873630723483319210999670277861710697196402827921934764920894302031164687664281881941803373331655974058457624118837696647745053362583308768915776919081325181397384995007450813462685612515859454824806896682494446870201920982856465027879521682119523541795286934671421425022589825277100940126122217150540592917189882712787279216400802200894791902057774212517547843853131806621101194053018592128351534679912356248995137838141752339258356941561142058003945278284714849163739456394125224730376844419798773156065795488944402827485025560807315087408296160448289085921748536488372929992352205444510183380776734361252007928296038082117843856664478059252947919307535837169127043068494029056481466354650167884255747902424936133029830037065962556037311912973620803734279187201673052285401643667606077810798136132431050150557669483458737058741081489028679034445957284425172874285662904197052333716203085370341789422571774009111149166550312891282319199514269745588434228132982352057650188112952576539903601104055988020109298557858671700545942397279104243948850156319078777218678550597176777426111657228353639657195099548328698452202053178820487697959687915952779638118658655329757810729137399977203559508316434033721559393481783198224552546012083129828803436133658211888295496922061240499700617044674608380261235601711391877548455816705552948026808005432801694593341103335400518003933480453582794367810681025786515028404219638268549542436884700385099166558706578012212196202249027258220550237945090444987185158378584321358623072581863131928555032510010540684171495609718195521465005501242765033698377094175877354661728283442032919876269567940890063155022423670340310317745357255775283646193386529494944586616737600311298870506276506629429025500348912551370575544828662769049254933481624390890191096782802784734280912932697781725402950496754168338020955910195913626180907201128592808073232644805883196376964579685667777872733746988514240618062541553024288138420844842518040486325969302259552937452389835194496505520522583397514087239866326429650890993988864348820999776725550681363215214146477720553229876342154181532974929039417439374500806006494558679115803441781156879084689537800341634256487034714301814318767406220000081017419746887513424348449177630750160566368528107162344783463762659988917084042310286172286450373526460594010505640167019508280156744136504029108060221440491480690370273193022009462149890687745908999250404307760978081341707812327158005726333913522873417325982400524749811109074239084280434509185011071210028756096104586293775964759676427943896259628790305799982294982377690394457220406570107302542241974662389977847445300873994002931790791051351182495938495137441158727708308302163317711860045725819475332749909555612252059657813867804780780517349842088367817113409045937096059840044732495292668917621812336304191008772272794615735190266195049153897659703749988360174895159632140145779542067689642979791233410826548116669219764327157813654825424253003670287486978417744765053340301060572644735983907571984324181070160715777990187846192063281358924862416363797882997657516958631585295446824528154780395998062590504060223124727155498015190952841570099563036237662150755076890821129501370341948702044483335461988098221168735866370418818499312117017800343041551242211840294972983893299798078436868601048037262532356067977141789685075528498533036468661160580808986195051882991164387505363473595857449215809212898901046437003263284724837760357499654865863612295991867294565030548192673271378499460135744247810000804100250732664325308741017358983888323636087949660677043954395467634988646056366756667865406268061683215390951223425786657958374130550084425149069710652698457072562062815654415280006082536381366078818113730646644146691827377407826248136383342654702563340945208335005315385211366226635819940004376735601850394947663750768751129111249999036440183144891714579061020486158662704822089583970081590150841899202861604284626162355802318425124121913479465782182027038000775044571005425947932924017959863157198064405033337615106156058628287447783283000199240060823457253702200030114369655979179692707469063511367370902528923279785787589853968563684800542073204510713559652967180211408437133301173846124662848841493189826982350186998559200914917759320671568224519694231534264633550900113624407019988455182022246860274270423207944859322773242394927044672061471133148456883398322026591184039770770719960675366490952080688036032574432850279036775156766082168620565352356987979825515127884986596379645715733178856766782624816774248147555510279550315901902184903523566433246243180120022865972346071603519638178760495668015752298398170140949395678722325614723962971475946521641219721819953220858980624946232617549525814028669239453845216534767586879026258923806921571517686834912192114127770732627467401980061754470982806977558147193129762202866580956176643236687341664089848031018065104607363362171961044984754040861145528306256087432417296805850664914319516666524281706716444317027993616910887148222383676427262965921655562318092132321252341789074157936407484895820642158890381243522924958772580356153140693315733067533086023925482990372998503730845380861556069447834883813677481196784495413357568418781056722708744494441041311753507566319348770105652251813498737848618530335373766203767831509008721250481166141940877320953428631751974548939524921929419188744821471241735037900663000551607066486169718360855344126106052719578409103718159441205631265797682796315362431990882110810274934956532497217032811067482690158335377396447867900185206304837927957994434807859803983716187025036627132940616593554567842584756495181001914449120205152606252065720402431077493567492041043695494721771237045319308617151306250322865729671716877200417778827328555179082941776719207788853621956654451913455270728371098825416123196522382075327606141613037439713968978830880010815958317280413163411942396421809904780185194760382674306158040644718054867749678482891834380215313136546077767503416312986979159168283752528693410994047377949915763454363177018887644217746902849896916712454558349312705621110085176955227938876207331569710416673603437245320762306769952675025724661132651586006058409610101314631484987533972119582942088381344879595167806209428766648390429694994848341696791688281740538331475355915427989261208787677516671757987326157992072664841433434425282785458873996258055277216954233109921457212623054559010921967980249461732607509494558345397347048238764510481326670687102487706560086196927776380097102221926377001646929804874024388058132421062521523413980685015916880043173698245001493648893005982063416882554010475710355878252364378209035588277812984164579833959671230328532651737298003182220181669915239245836925026927708612582615643979338111908943534097619658057770150998227926091757857420210482420902164289980546043090782108492569296976536540936430517196201992917242463011100688274366227851306921078816459709225987708178987657822196723664615851257056197956529895057954181454522521136653772874532117061904013096648599581935133321659181806042977423800609857745103563624090634739843897863356761724401000027741805904726917072932643348817205529642917819101199678309887604533886820028987401742367268627858879760769367132043641640925944019742717188518231914886980231335118322094185053269003357071507549256080545982285142726676670303059907011680070494935960992966605795267786935859067813796041360822703786742379925060503280808759557207483232065895699412866123965314028674071587588954594914442121925857200972047910808630048485824282646112064860622389764080915745958864601715682741664199603343078920749098037135175801799107733404215458927182075587503769316423865425093576150763407688314560000045255054541841908316632759526115423970991937463808293269602562685532677347224147285140643248173718711857074033949258699236379552646519313671201755102055633867252539687816007574558755535673691120398720684920996686886370324943672186451925362464324404036046237612413248359419793050762230142402826465614611142394577217721359987469126621848493369834674173827190025908282633630257622198912881998850210821767964755486739530558205317719421628660486102002414037233016716060471372670025272964299981426979084879988856041130441264090536832535498823767320437556382709221983408256122433021012815512692657227835055489393320810585593689461593483687946773486388150664969379933701180117875574713439289264369195507523932910155286646379354169914387792875418586688452462998380883265022569020808048827141589934400496764538286412756189524969822177553417679902133677930424685139448445636144022394062750268279855947726090419265481016757926859378735638414010479347569745302051067778864519693255594301907257607094660284391910906062070696961998358950318181608192688774875789295880463761323202564243914763079329532511202024444616280184222101858623418956526265468092336242849443556246571813373848535290621020815784712288025239406265229531113792344554364099017554491936300649949052060862049063436163110261299484538494233407114957364596759678700468332968069071219503791907519374387554327619548649602058925642059547756340875496863566920483589903145427523681032155214424058752557457308241967933694790271126953944161699302210218339651267034144813681474163710709643520692707234027441010106663848549625223290357008368312808421256890506059626890974994611666623030009350540347727479942881415759928940383631377856435155521840418034365778763493665130859398714681764774951120609378726395052503701618012183479666526384617497594420274561504434908985562273665155221153698482312488837196068080766326023351359116053564231563235808678607093203945577538176033253740617369655280403559069596939440613509726730861548051276727516421790273770408015070786435600894299817458390962138412691490231108166196694927294251012940936869893635607645395269239706368859159489948415562774298829393167456044110827275409374068687597392389198466545580015479783535263438790082719660504164218288093623194623760220021411794992848951905425280645487237860870891303636645173955971168648176837048291783463246360327463182964265621468934745804766893079778237899271141524746859244142302954536746674318334767001667991558368370899208388970546153899087365508675708639759843306588114721567723472380628971539085361139375336401855335128604771517473273649325829330326668221653617757427255276111453010500092501817159695189786524933432905290943760248127325601549306704536038198428973886250644866646725034774778870250691510569778013809702580826045801265897875835081454712371607103975049596265552462325729463425195895694300859145797046150714324086896760827232286361870345554350446249210603867280823413918082678361838347966942828045165045670373421184838540156623703410650744163765173217434404881143610916288334365646063208813423505893325750155024404674000465235395707057865386762040054404609348861514881478095027860590852110810051976784779504811156826560396424693726944262586563139913582907122769074735765774202821273255133299962172303775039194193822039852574630950386124513819268046961174743246770762773831349256956812876994652928232857764396957872222856130266120656778244252857832180395567516293962031033206582990849595652585632382178801026218079305531348475638321266921067068293844880494183552778837935637851731849672563696939080501487823036452539026014994357846758293744882133261431018877310812223638743704679453963149321905205891946373439630105140783886496111036208447795869115449979828207331101850620304453221635730028610383124868540527090911464241234422298657038743217864521694765329768329036180237416980655719074791203937746209798713902911947253281128757884447362095527981943989092561198237896620789178545119206858982431251999919409967170833083344602767295749083450039196198184711161785259481790346116540396852345817250713727808066172546730364064655114597108254019724353671360818619401640367244204347538620613487921951844318701118655818837832780089421406854431805417765260419791159541632090998664343848141565883831326373613322188114587694390064856877224548771763759547180409225565360001140781003130766678358805586201992573793442457429670324272080959629969884252086851402398906890116479248903833055259735156816171081518118752999070577578378492439490920106506817409393440213648666929597849701438757591250357196283380536488867698638416978748051275030624447506083843640298833619122713962290538930601241514974439239659485789923241288998784401722351591128910692707312733598078631087205384394374341254443489205343037616850498173462148419854466026512455087079732676986818958245981774681062528263353584676677664220757695811313570747970144600236807405286903139118432637305107843444209338187852933423045645733998576098724775605736665680322518969606655900823583097474251568433202454348520111260773758448550792857278041903593255843535442502744508886270880578422300282935380128877190021946708874159723222081620724720438689926753662364067143001842016469644432135228343539211730370738894231534175523032552503701521125176560474173064680388229254422019147851511917138371209197208702439796457743176417222737228649475288506079630824486575439493480062204913378686578281415334437575114012087765503286304430765760675354944189663858220549604321303769887760657356806446184992386608601181028596409690674541063572446037591732042069391257617579794744522300339162525466365576196329568653664597159463652247312914156639849992945188437123170868243305365532996452368078311160195518663376171004531333421923325071282601563984767226833405291065429791747163658373695062120388505301894528389665819801599020572433950789389804381884881357534558067035731277135596051535068511861793910563698672089748210834325429227768597424077533681819530553078532925810537812453347691024771259757675055500613395716598689532544993106058010696609876539429626629698420539977309914454225609174421342620684249540642949008257090374707348962530268915253712596766594892030410254548834739091508786796686258935778962835846499578018552884293479760168649128490524142882098361117589601179219908784536951427573791500607236360702076509044446966997839021578061788635645133637745676745519467891925626907287613770063922506151785698789875851084209726826454755800684378202723515101710353924076809401830043383617895512848700540619485417743829133882047933034982733356749120127573713043739336192521999786214321183211304397041900967488341976401295010013663300225431800455857064214092671261032503988232320416254360703985327552224040845738197447984329911003498499369542336005575793566667234841900836925963915117746478576515656458596063825974430993982878314614117554217591944744427803899498682023522585527870777300618562736484610023027322730097265594584403619433199049411591300213585741763389631854045562463622717255121004453825848855845539608612662861893541725489089031653343733776008688408805646426709806869871600446358362955441596780753457026292923119303599490045256874263064138355865582190116259936886887345303220500815928927051184096945333970551037141544628543769625916089531285575514457180539912624624764154141747439707877306209833063349568604380527859011422834581708675313840819292626558977857988278373713352227774749581913339886671229518574364220191813989493206954637556119291627107213807135603855816536582752291623433556171076863046263497821529642483588117862271660637425052302201463752834280636732954974098306905942401969667731986051762181308017275180010859472854447101947493627230064863561612331542885820650885866017536021638254714539561533952120128660848975049847913158285405512245702442048591201564248825400144727661220229036318121313029534478498390799313560249249493702128081296949337711965880367130469065343886551155369001172995720277591010933671253019537573603192429043187979633795494376047252063363728932065704747895697816303632661655095224855977282657656025518133963957079052377824548295605586383763469122916722046622117112928779466313953157481866046988687461204447926807363196657525596908317359894654203801795095788651153583692623510212099694618730874090524531930730256320835414458027618313485378035557360190987714643652880545079827077620504963113396409567325035551379756925694229258494608219203632131659672883043873265433734257097190444023570238118958678749201312419089540303345068807502327565965651015217864696972074057170774380136299948915164910180893081805084111992673014558558713713268349843998583015412802792401707983922291335208270656609205436735403150546429024983357713032033331679686965512060818535599854482513387343584369297309759553349191164490419065704254466518564965788460251448922564510891098468697695343359446327743971050070656999755835713865945139630547764009814363790702338443868484538335353342446362479621516867914829413178933312419008173125310930368934906170925303318848670299230189681233724261664651612968596386305565907643876977974070523497715214110897349903299984008627100629198778724258555429528940296895362263839387119982993243227214021503910829870864682982478543448524485874085613624595202760249813287659492825999756267448388104907672971183357046593682539818322196731369886602578304544437516508386738066697066855524609268900476791720277108977855630434645757277779567778385050952696813448235346402792036408556186028661170909095489681492589091140793464449217107259498128953421870602888081204168414385787482454203262402287092660614465862779320667612230251447583065016454094906069336380606072785560411997268365281941238671833306964907303118123315036453042087764082513024443210014755710515483705890316544864403163068118226233130699845914168399269041608419332185991598365274391099205622410522597879077053816424839574881643471684801638666069763257932258527989925764783973145871973570948995373086968549368285229634169285149959757144252837308240520559104493964317874749684120567730622113150583663014892027814686522414656403969802604627811775124437748911256574611685190206663693408827911794989352644911014507925648858198226536397668413106786936477253775467219692978252273941850860937711832217608176949567110091503866907781999097149882028740212748892446800466743209583379287624793770998195872475909242909375349424599397148082770106522977148771107135003977822880091277407601675566225340841545260133059901205922721465130227011855494916004469980718646298850026183443786359483801905420246030890431959884345932810201221033413342964883533261783236491128717508115035420036310800293718444770298425149851841303163626244928869176081209366983044341615843983293059098767975575805933501846112879093740959144103008912967968720895937362464609151971354596538064773539786895022878906382962197680616006941216219321468443577639175093453961855506901202447815747609892505890879632741730884990093641419376768821546522380052963124377157719362382740013004938023669208129031041600762512865175738991577418756586707939319176738407023786801702992890515159429523642087770622741518901785510732870175390595609411882659024879439233738043037974819170062435101531861825134938220317229863337703022508257793620316171703227638365904757172486957260149772320835083820000657450126010989765942145111251609035233229424806225931735874161273981333114938901503301274256293973224689518234115766408559634675006480860494138518481201239754482948082773898299693262356976475210191572475616151305334484267784518800637694974469252489097441529718042916333077945129591348258615550525188859615779793615128435645436684645556543108451730586955850726642319135840482387579296364017206899216389238311860761670129333123161393081659846486457942720482602469854863022202503068847375394495783747699212363680024170965567412276149257180225473769806927701187958332866507181607566569054698817494237553712717935123734902466568785980707945919229493861004272385620311937431477377394959252215451487204203454916642368569493785298809094188639701604447753702485651735956636460302624289281209303006805999759357473088196884084425291961278708090238190235366785907846899007679526246136751321063248976606828273606297138807181518523578397749607529980556577490737124739129617590760573228628983733496512803885982317817844302831243994128325752442559893500468440583689378179098550760980004703778603484932923337715312743780958968573117772439361022389386725905175969945647682185524814338596057600279988056764265656563095368119468356923357561381918823265034419700601932884044911614733351110944129621238532358211255206554754708288095020896158740435942499300282950218064523387431618422315180132232012770075635508568408444765651230958623732376250414960667119246670212533478284851354369242225038076269838453329287388206762635059870606907662837601176662649011265805754608813300408437331187356578261205967163838882461238021512406881379904864482176342133974805088978359183995178092578720395193312506287287820933843217945577958616455704121880470024061338078623627350214623446057692174316552943649084089473689855301685393050662281376651835970711757016590097349451651642334654211243768004867373653818940337878147566337981843737207834488123383166795400999581257717368794926061498256124169015372896017870203854350602057004116376998318552350148101073220247290788475127890926099155670405028029541418297876430122898288150780729039082277537660859692367332998892070035508813307422134867854953803857067469978547356248559348370793160907450388948746673587749927691059593912673587915777182552723507389875266559463037189489935318184878051480967763883350145258375553360001739866430406531018394506695564939655656653676290484235955904927677050961878098973836300159534930261838296217226766836745999553455884383592172552922581063014906833759062621289734184586122512941545425472301852969212900082972606760031246251545798505555287316797624491955504821206590981716427933643533261824743343216541742184126317780670886744648049617598039288262340115545141519011275367358960136810970569631988727138410356564729394318837927462411925105965510170788234319353375370805327876153858041108583501692572430743579287413287774453192992492731920507668973685819706474189456303993220226980082237992351013350221127036839166918921360483881295028325699993638260224767257643819627131980651568903265040517393412731353671954557276280000850055722755701077788835911470339798808367297794725052745480462175353117839724705129800351434789768128402140057484907586834347947213432840698736380766132368628744761760975817149380556917393154177472219155226117913977163140026644101120631052027892313943520427178397171636932695013076066795522986076821269620794423043215706746893854441564103466514035427493892688372135723880288264381343730165181347153525229994252377032050505501772392230943909691134815880341721555343768552704655997368014707531888658514430125517983283855793906253340531715823298273929087002102004628373585997662334234307302562757873886071596577867879541034405745649332480553726306749703242066182134436628818679614849156686580194983483386358662062549018114038088186010441100412233513202907145473934326241524544444029710338385502975635136624975953332946629040258758815503503305909103721943652098372348426207515412855020381980462797877263899549249546806466039037662420191081882536648460602149781690672689319120556719069449075521087585331070150635677493703138038708340921009664916390970444369214558234554517898769182010054837762501916134624992917311096756729858280201296456084162734569392810309347408971045285328912562421195310635063600993862434797478178091047485488135007324634380128188041355468867501750508018804716735197885632289105330868684329669056483193962260387270541511474961644779675077748708870895153459105188907432519811976586954506186417112028989045691422826001705615252138496313762672118479942136324644135625202705309269500324413280499787269913015486742391412673819810503304581359452403879916020006750810607000332379105164104948350982155185394361449660701335769936620693285468627624913257127979782473015864058344009460552337835710341928888316444503020650768049674243125211532011077848378002512152500197789719659520499851838174072717037684621545086422376170098138655761238706612995980401215489596402484794083960021593090047740884295489713622207869102310930681544693901903755658807016201669137823074118536261987891804033424791291932537618079428524068553691084189926824489458768368945178427698804026457192814232503760354981542450951642889225617888589040569270426149755951262449120835459844750750515735050181448381030814234985663559770750882162433246693654247680300060250676749907383222739731058874342228246627855145641610566932647614231258766153093350207783647353003126275249054530313898732677314312213701922033345009320800000251734622932499814319308246422145024987874806386553526146125850002668820800835644728559237058969121034978545670242946415261690451852710461385170813756375614056909464393645954519319278023152776097810436541222237952340725143643546887904471247653832480057287605425701348304039243379318473166311258268484859477049793754270651852135535577432410144460284130372466399932074277066293850318484698413309774643037804904019207048874612669995612762952242068642942344160273739022169841502523277540722265043893598735194219790572468590324445670274661985754414687816743928185109931047639272709303643835256971431766285539625119316661594712062433061357568895937747137314921307135206983487187961798654966503149598883836785133768857819869402460322534850781840133071759727024929933414534924117575894194629395430817096369043221721417854480220026044465523460298557443950221328207315157186733013834005164318624319599952806246799290703922322159987906375897635544585892256383222055551434324221764712159117527042188801701082478684883648501718054731810670847377350593452592976692669832644314597288963185597145868112782795893330212737709457289229990682769947586128097732832722764542942748657272968862538586991704047831345819181036926728272468939202762829911713325847232012179300919633520199960713588619916975588758827446046056270461163313838856756367606268487132686183431452496661705665686343218519951006540472806620039674022595597893163479627539677304781376693183879876315519635823697423184051844411446589983641451475209849160067009966371165886718354842781120662018242078261687805254867750138290496283551809778173851462201433713836916520361997711661005828734092765707870169573535913658021780219356599984068572442356657992766903140981133562747643246673961395692868206320790555387510027519319213022488984263786437809481745107994490331073616724870303137482563504259940724197902067967268640239497091673495963642642013926096415691191907310910718832355768645006770587757892978062682440196519485515508047676876689934376849550654203373847625390412431694466602157468251790032712585818501272202583155783812234205890102277151746037573312528819808687686116222631516620276325641072995301131033548731770788442537378372763501010412657851927723694829269004636599135964281410486283440069850565480729187428904976502253113527118949675610056587650228048442313716317004877465124326040287709090305294861872992131651308094186333283954030945224858027813548289702061235280167937556411395772010468042266099989745403305856753809700481213085554444626055719312760132376257766328763412040627768567887595378485092357768025533335826802457084604900204096376436297551606639595553504506102645151289882031233771705725479910292985278171242649481897935299768440704679390257638016144636153918942267502607603379204750751062726689432669637672844079230145582474071153416178672072228170347609242164634726046128707366821167224951609158285426580236584020993850645176123897050657622349082405251017864917133710437757705338469854868788308247684780400100836868810875098165255946746919481092790228286018768292190482511526214184858694273798441503761244286170200736533650195659074880154424965851643396877742388568727806616454124395878227565464028947695629075993290480925939522947284580083773558485326122647093308455880180394347049779443054535630848695112632293949535686738495506295822188542014109908427091192545772141689733778158929403227845483530737049276740382923244858110865042471042244172469200420021497275858716833524808455700744878110426922647921915221336509255093320399788043157581936965287350075910354428928457737958258163171408252628296757316487233434947315780949802600609937361022998350667373236626516572567142028200171918894789969019088893274959840289252482737778153161370051190435418600923889931130397627269179813519168631619385486245453998792331332631206788578027924267932403816571189087021989135286614896769782506562935924760019357553280009285222197732182640579140786175490448154747748643814568723912036250958080851745920887969844495426099430672717051440982070584316606831759251729366539540167918871973105895242235638831694812883804938353544278132379411447821753213670074899732020149455630476914189965757737163693861889957532183250515853211397895858097684591974902613428140025176879288603069341036791362180080327896065163067671472225348572924072418164944129988597951007348875963361981660962636737519078767812030345912581482171115751147980283691378557575126142265476702083930443792572014264412589197138464240845080436620583639042215917747714441760436284323235502885379042341057923606740646239324453163380438813720787553490819873243983923377886917866125714485099280073795822197202279821241176534473495024011919908286746244222495216499614678219887163310819489080451894441501902465776844018869375213767083041333326951156519411333067756020884259382586112412622882901084466028007907341660235499371839291565604422356029189990112980589347409743816605274858278535302271362434791242235316265489780910304757278195202028987408746478645834122336406206343182433926572539813013635009052463507974619356333005147035486819828925885727130094210144594092858352875031728927634959115678837558773406963800412751310147349446694383990742022822087311415844631401138201587487204592131289804645221209535947488371720423882211013029706499834081522766888779671896740458223815355859294372047816451991070517376074628140246273240629589005139576160562148158785049834621679464024293487784198792996092514113336827930672578722895659564874823239448134630685066371129465916283699248902123416841407330049064482491685715450791959468543727371224659951545854063607877051088833914485585235749840101316408226205871400621325441121277312194149615668275952082955486801326084785193417734458382380882010091864916427341554604395844288616533903419482961469154440136155000875617825448076922523713023195392215982735435454320114232387828280757725069632311678857976211953385484165121049903414828208587509190380741875799310299330312851094481080227387543521122094190259870559621366266768031068780551367910334889886926740849768322070343137121791525086899888593522706130394512748001081091058516643913197184024475845648145057500012552630677206523399349874401786776087915778034722214951318401958891609770668868211955472325598536532897799400430646587315700907550143372440772167347612639116487369482290843471225949507578520522613644014658324272247319386731406866501973902182218970555081904149219705808763247699716999702593118268989921567301174703393486599008366375010022215524832307490415866382160039245631445086541701836172269793545566831568123784855909868715017479878265085820835210889498801719535141149617549414153915005009643024167768248429612716539273828250797908020964199351876661172339760435594427684937597491959302878039602142460111048973071296145723354904531529722824810069635189945836749925946780553759842646325797273594385447393450346236497513416454383029190690553362550374933302639573290351955427190567387116664785282126104850049375206482108076546139793257166597444681479199278738227844862216040338734166908208229544155617938531729201469636326501338828261794526887694081052509434794772534539433391344377858582595134766864412283454549942033176639500977952292269970170376784998736339019803564633080105350197740291419836449365386793311273913658795711738167923362637178768997343511090159305700799543328452509340727684150156227049385819994908740912692054188145035727528782561130235576487111643171403932982441957859121564471826776229983333713129314198076347729463952609653834035661227225542979806190495401446557124797772511486039869752200807919922827448593764910506358917011651295859357639589950726376440570625844833505378557282354285936721113265726348270832999619660276178025011267674372141339242825804850924462179888427689051059954410253004343960976012624993512309973008476140661791132309649902203609034638922971825906957805742810724324057730079124250233140192606780071837891543487450073634119149271833869411780847564610129472312245762453005962463602739005432690797120169956954135388487145747254225949445231909425459175568657241866389860027075324164715252596064699440607565586996404090539831650943747049773846624514674991889845285764438817692898552544959767976527225745564464342442388981692585200436724479317285220958385945980884332870904612073041359838634768080758409786896558250020051964852915030106529029106867471649059720806825190498953418312441448506548079182788465314238400919828095931986631773957629318722848467348548437942959224619773758556485954147511847979749559190323184969123306757600553527340903314882695910650924419171070188392258652666466554736075067529590269793415598490323724847189454405835640982954802924910582205105511073520694507215033641769456888529851375618260463538033965377241243233270998074980870482631742552658213916312010474142121615839898632154519350728559773253273746176862643380928816298596516569094702604470323880281038150601569623463942438451756932846899894842294356870725824214432988143593449521977509995488329545278122131323685932861366692754856938102785089900246291071236744325569518410090633872675945384934181401195670883359788578718375404956865294381817087008412765925752928946255863254708577731449696819361613137670660816034798635727924470280647450734276089303099189849538204526953492379477869505447787749016530400086359502918022327621139703348463524374328564293818563129652797519475481737113042956073088448450873691413282793277978413635239159521259107190934687490440472570048646648302204177432680223019331093047855238130038372474757849285046740577113728989959576877863479244817311295840209783678378461196055769863829242404372377985628582363484876641865994241148813467580756520163930928054835818154253008525196426581801609976161234384253375706384236144036045575384295166443188016586781780888068729421949256084825115848771075327741495122000990090427853704996404734180303499242418566595331273547788995115741442657346867471117644913560771902905685029220350273900742154884915052393169783366442367036248622556313699657938263729572422230726998211703272624566991980686279125864672629245804482772857196434735177619694094012442520541962376309428602515141834683263812430417851100844684695188349973518352104390295679507692795794113707352658006329147770286593163899269273177766645087635230398028699615975595559239472786926838295807036527094298782728832439950715058587789019088690729070216155947910831374087253873072040329297032684396974258499068022460250231781311078912637429909198869315301892577081548986014083860308308384097805498285152420170854929086790973929241918303219268282562126454033410672340706105608858667262253049676926430640028961338596928106446568675118917062574689025740049028196926676690771653962551913035871559570068128911277605838022474191024590148502486184406714308896556564965429506666221888975263709497459115330416816888690732638481645325623114252478028776183312668847070884599058680520649559048643390086161878276098133162446069577821988672985510222854399031986790417251131642554115713477612050571063402744109203793542884942526397656464128717268187221416496112933578959102212875317584173326341639787655676968580926059297456484614107672073354911848416972508955898154400104280993044713148265436867918287880479324278903895605269253632944334307642264019869401179975049148032953566962861312660466707805444216415890924561949292382827363831814688668256465114437658809798192054518612171053067310804150955570286805292693987454180056296063792131233031641803230522663091762070604971931354238959845883857949690437137735863292878890349431471994261117169245354125189331619329821912602687106832171244700567719924414244661837440133066475263838172849016007281658888566717590839583625397117284184244291040491112227364294493712491901995838240805636733669038280552765517218022342409268160134608625676631733359706828508623010114882525073855193140157070967511979208132648102878694210091455814914820168962939794305454263804199029994765117790564472666440549987426319487872930843859949654370740166614551979192069092717003564182402838753904883481213789017226063837023022224868106986250805748907266837277333222113034046001415228832279068722038336509733668866902263574626386456151119154192343612435551709072083297684768395259396500933433901561440124704303150971964057681788353749849113885399978434098645287419199908103080887703930442201630562981180981494641712279580616285468377642518929137839150541438682000066852019032882966566174208890712943153470442267028597678690523176603565672035225508081614610249642485156847690031069700948206690959730002054492387282297881457857603089077172609788062168589186431852470206628534742013783210401160965022376735335341902097862796009856516349155613416051227778518411181815085442632232012448701390751298825427018039625443992310006586702087762777145615533639035687834756603436963662049268713741841106068401310872771831407331189933005584066747313365204587924666910418864429137546351949856865603633925569284512602971981235506793040419050780325911291799498195314328902471541415165789339682538607048137532331024944438881202614610804582220113147655674444051796693125755337832007419469693594881483421118009433540130762941711884668069114469190407589993697681085299410824938283911705218876231851593452039126686664712948763507426240291049892159111195150062232277614347423667978591452775542079902356242382551400960154436174497682468829969735738688874085210174897423887870889936618662481966577605409075691518696865306118767319440177769312317066681907715748638979536014451795659990920076028466735903734057427569211346468086539450840624176527084989923021321352932210707130176030072367761823602623758876951651926630799006435753317368527056735474466703657338394739064237993844220731237210255437231628330485364151436777337080700076189262532405610823551795631127087536864197960767847602752032817785117653685764889211912357395636797977996065281306435273228611417561266654482880043591962798471761112984164308859107357867655116596833590977766250573813945384137710932059700040031669291049641010865063437922048694998026106595814913432420378240217065487800905244984263545417932187568210320996579204359601415024116244044485501964391293596100924508903685094083918484725213883512729805530500795865561708677895556470419896552002349536171487415916949846296535642631739870995842642806649452002388084199113350805797431937045102915747397096273475073589777349739124673556718546199939535232670040051822317782378407731373863377141874017745067700628731466793950020450247556856079367744713857123136882759421938446157607684371477814737078283297779716404385828260675066663671928264851980561250176408891322517948551166765799179450528988986095026891615558067649649338740544082087926779356554626442961635523297186617465236116963148458015510934981220386654774337334673670676129356005201434043429067616228508638749700442255390277928949793899815355381631550114991074680243905967276050933536207682842701219817275717128045540886698676368519298268205711417959843731227869506784345035497469281125296958179114323412649289953657192506105716836377628882184477730902295688887832499050661055138779477042233181342837176072398724854071505687095397279163700114910424286774971012113818645289292392310661605752846462014164824591113302200372412238108742607699468087071749928916159098794014289282842223889409076652665520446825734521346430648089221507458423898761181814219645337598609397030149433060552367023130755321455499061201231440976724553016057492293284376409863772213765581998927856167695933892260494175937312528267799487476305864182197503062028014632649517679823185261325317351914918468538802209966959675162949993141080730261789111392502905708401340729604435358636096616802437631528634748409739471308989008024399523490764002974983991668053837192562032243428133066770990772132573092443240296135430616074268562963105536435451337592138579931196325951042410646397644861080337421869645858671608306217784528995818898380649457839146620433687171431934384456953275578137920794434821025261349973270380630384384786188710033095297319016537427025195956765819362374004821830344417542754790169677524177997953980684127627341779403528790330053999947353471712533865670325775296997030266801454953581337800265064785927859607853013330042371788776469141780623199026570201890263917638360993701173742486605867275184437852801090433104358491353202623902801492102441953186992263718024072467338516300488959249496012604916268593903344166390474997103707658276642670520316416016820048758407349167746923039505428639486743065244227813496212772122893592449964815518830056406800257028253996915605171918587831926281086194512987147202500065566461416938130629108466319751083099652593983826399604361497978583700921206708895795213054729593001638955219149688769224453940508624574752262046559600557811881186399596099211525943541136357454596841962955043214965290876808524552599185094217382882273517199848423936040141992772210725356906350532581937569068400822061702069171421185808435376175044076951754935838936681289011662627780666167604861031755072250169679704265351125437553721572835148188646487283045862965179314502970349988850764779430246195136056231427228741051676831811605492400243874967653605316830066376551933542398945246940822303387208341736624522400632677132335758728853452987965758529986587371058794723239315596947454909278963787591990237418041751328564262379226281787780929865683997973295426964167891660762294519307818879159122254146695921053719837481191039775291732191182561151487138514109783010175094415070983845738092805277588631531288263909972405902102577153077902261927130036962836704252064678616448483403497931299038493916524257116942174464691722979813914187778206355117305832523231083201092715258999617683079676581888302836569511556247344887096882785813989258013621806780035449536791910045843205769153294561439401155434158956595829703004446614441735593577756887426297746751210941195961884713554626277482120815063840395010489029059781852434259197613828388799286827348740046013891537847696889694860293258178271618337020756355621080147485355170467937614167958746071973447372248736712317054183224101012247248801607278355323140402518142684119541654319398779855513142211517199946226653746641312264468523431069067057687251174359072663475048980359312994182341976350781758434336892194429261426624647142706228951245192527844108165466864251773775751528047758961718773208436781802155396231553337156420450288754699466602140018435645431501356349695936734571524684287114413474029383112470075752751480985600524126693473266966770791624595513847356949075351837974562028333122223244843900954003410830825318030276636415815544953424367215289874617385512005462546748851177987084026033861568299129159242123881980433290881306983072420699619273207345021500903561374094331067257503025606997599894557332290343017931801550625954697128720366114977533752216737957940606368523204903399505403660359917855901180204659053691632278684814085951302491727126702285755068453287055332722200413503083368052975172208256582032539575679543643519748379715996971698676259842844736366552211441525995207406910276600669898803979175065010684790733889865736063062849618116720491360951130890971360478147760330013621302763266435680924005459586921242953390512618502278144227465663429809636659316497371932956976587270124414413388563995557415006864222751682362508462181866601837651050859350234930438552072046107890180575637060793658711499207897451868502245510513995439646597618334285348052798186661299371237369903702760565416542480277253702388012143521886818324819779349668357390111959730185778702724009904620683119190886763868684745255407164283455211788123830058530304393443637264893522716544989143503622946959761976319181537283594268885137131447791046918205788906569597133946747165440099177731317281883355890052049372731617746410416494645882244523511066871431087935615777220931134554263849929356213656466613811045084038235598849039053511096214600805331126440703876165651709955777833934248898611551561944965983041995398064855767949486073521917223573134423660801053951763138942430057756762666833070720666472213627038846348938117867689244478244388309884501045467951730660722344925935531045089490048993227108241618926098000855037050484232883641341384793611630326277576297563050652788420072826955396715714588392610667495433754444619137079918430891747726258150305108923925696301911491237685211918414663699922972222435359585814382136586751811768965231720814328154053551307690169355300232982079844001835500396949585028283060886310898123940283513701474095686898036665804875476578692968165601987879717403271856149905475305440413425837023306484962134390137667004186025374669424436413538721630569445296079190238078752124826854780730144929131633431046798176882790140363827875274762099329863048062923562701897402381724654002878530067868733145623189144936941348003033916918844238434137909228122687691281151599258146224585443016155253024056491622522281677186200985704010411048332966065924359751353538615174095004338690319380400199107752588624788103960217490209146105841401634736910278537991956084944862910186728846157462898111446568434049551480425172298815655755934837376637338704095032626752640453531813097793669031071749784208403723826842478558728531759506577955055452747530352524742939614208071000528523065979948669795329188850331250968625242249514324541630404545397627326128060502705602987006789423474220790577186225627486102012080789977482735052073785719444087659947543920990127361935556143981267294001555573767407423441102008939164159796593411870588729379383406824516287382206253504297512869859947834422560689303061793177194125648903108012450912085949605611726796065813200803478865147971364846943182413823388162749585700395645067035973139532020934605481643228675367004358631195639277441733121208743832672698014891612734775178452011339539066279970300143663917552680498923316818448839260873454884268774973569843833238730467050898173640379149468397612886723582278947587206608020245082403744120957448562073926911703955748020998653560792636829769051805728442419153916466652060221606343575838972264032057262217106340628041148172821016065137860148947147901942260652407085224891708222423676365590454062614669916401260057126664830296146337592969240501218767656755517447948254690947954646938247863916804905123736450054094903431636057623444694245369591411700895264375668207995687778903780029074467053902322652682569872729052233236024222391059937857875841317279687961655714793202020059633114457310734686027815215393838116002598492869642901845570646009008413173071138041850610256808809869728969982730588494983519807634688748874468410171722860619842206402900035695513242592198632634204487392523766024864061084429074089260538702687435966643482065973302458685777449296845221012700591377417085010834431730320278175962878936595052495694692731522081444801076634619371846452743854637763718666016631825986605935837391294718377770503786515247663112027259222087228589024249084008285242869118797784299015600228044192559818252634030221100388923309060236801465142565715401632518051196068605863071475062419994857988459762572286339549108010710332875106121403915050604790664623908230260473635169455462187659556215990098688669144152653980232152418967284880042446493748342524363987602613651374593624254850280473545686999196399286997715970296667510613001705492282208997239726115355087452742181178544201613779391424059736227294159730699714949892889637635943628006852333585620765167962781835492219741842332953395443455567622273121398425905261353659927082474751999678981034824494311594596674701886783313840543853688671978064333938505450673158542389637072539210797253717655798734961192489441024893751887627211094977619371836495110751904501706073353920273814110216283019990911318366919278007489303465689549027305747138157282860533786964654206730114909159842056262845839114326389105782083760681537945742168975496132091381823534143802889627263279772541629764078659149119908047997387896222137942335440132537020201901285713927076556827527842452542905614200324895017960810700869717338813611984556805444847633185849484599395415921306775803222628749693335974879541792299350559778617952541867578646557932145048671658296133715400775601766059300141952155886094994118250141263055713649881807304717226180705204075075976246329717666170409486238952334600167879828020586070366750709652756307412493330456937493595942443227660117019718124027125670191974759518368872949779126617942372478559044564345227021215528331478905008674584519929208271364525505270532203786254908036566472950225404864092841959672513313095909859576409630190220877092551232355388277759358989113054358347460887832390233869446361013823392748863905329309298566490079891761714157260822062767093254583607593978751401127913011613174868453136570260279551453655024026752179483828125177739373900097970809120023703107493072764926538966923012425043300270447133785768820853294608512272939451181803064195432379832388620097920788273681234444907628638431733643563982641382243588294491880243525104755498883821153690721971373300742126411281247457022088029819594092983510761125195549257817125983950870326985340489834204302141404730646500326767577048900145234150430468094527337157263150144061439006837689009832008364039628606766585493256095894846159480627455576848562528460285767129063194677050235882455997415897861117550988270008671320996724592792645835058176910490821710529736028214309041469306149361417758056434743657528521936862919590345522638151446873578382829878508201096184735214196195717597526429441706325091506391571363162414054450525460021860011869734431688933777444712988067240806690114135309765667742399376994328177133846525487474407311083338932252722001135180935298242122230112075931584380288434684069622158441200952448173833197736238866089369327014702921096554254865114808875784027161906647354275850816327062546594831750625678003913461243863904773831790787182686257398995409747364737474566822522093127235657888002624676362419994423637740184651958408582666408124037273179120047117987899424577541795430588635310486942417978832170255714602992166088289679235515210895562185277649257164361573923914957658942818751476358327283983783903230188869737012733436151032872102425904996313125587883692789352245977281566978142905923626585717198088992489949895581961308806303084797247183020203227266235387695538950834282767648987514881247184932120268560208639892740543144438565624785112462365735000447922495038714403891158540058600654504296457271499663034839940433011177501131940866794500748441739246380851773676100865124259625241389516946727371179392968697479046391610826190041296165884384815334038159939159560000313409663600190682215215117277318034590185566301982813519099623680683695337239283873340507465990404850597478991763205001532956138085190813076462630672522685742843293923243072828588242098571893731209768406073710601304672896091637250136027879550540181028714057261845607107937322784014705929079751925017325517480077052117732229865400389990410447206903155537409062100886138886733176159187205418602559226703233724766776646688476188943752830920652028434994788996876669017985689261219854422033362435695546123545127578541325642853058635524061245518441405935467637994624552914318563385418192858867532495504680327762074965548985078221146868547436491447431384124572447758499675467909391837208763284312771215690646564952246437459851934418626995013971871710916533294528587098690824988769432038867120761625108561480280687052967447050025508280291113810902852806133565035962700544733429109075903158006899398443226409564276839811694564633341254775125143190657215285277742460953173501661997239227983427730177402759387746165675560513394123857575963541599212693246353289663186076299389662122612081359807366201509445910211712272215162655537477823583758979687939866626604911604116371136036241938840487094316619267702831518865025060958466830739044577825060661721566038302262401427381446189473652733905936066066559693164972738794356273359516390845343376829150050318302748056407706457991364272036101603287951930708546330172366238353664205721990809822166790297600760529477036512518764440435381291037710631553689691580480882163912667198056495315044787468484132660857728069237162271671557031889477213071766107336260019707818426774833032581696842615866657459691246453603457150089287646628069564847784037635804773064998183345397259913535786336725440301325172626894143266625957394199407662980475555082748891817016256249339900969045154412828141761111205006303704256017434553928866797634332551690829935311778729394374210359716041096997063085555666471727356819184659624494937367853411242259136139174631817313765848064610451874184744729495717842502660429320160551075102249214309297218877751848123374038149587058391715751061579566218221415983154743501295063320169485715331466038244743782796963252978396311654366876315139910901381825255589596983561477431178948417163670871382621498503874398291508142074819538649899580689550569600226829664028222892157589635130599736400838552525430977663822000338853546979998085206669033182727510770709470822757695998703333688294504419128141076074210408951110979121314128942752765680405684849493258310643915067227137313135986774476579609382553636182573316576054683712522014553924002711987124583372770904165270860958662140061216088618961884866562403235878463510814266679128299924534664505036201111272114611158063515033786828102520534538689141575069158315291581692757966999421656980955674340589734798647016416831208809160490789951005761773312088932180561095139208717705120233988304628768537225640050529636098231125297183806935228988961083882033523856086121984859770508154256587560553835594771712158821381333292298603658224950535904290292139556817855640983364539946576875064721139373247636772469411291140099871161143605319503230177074114658283044763800304923950186745910120352586074684306624543453355042481565340073004654559244074786689926194618973206753829534384646373959437629719953444667889699210791578507191304545674157299099603505790774181302587237078541551331947690437254230669414523893595122258047065885002015417016099705448432861679622141565505155537529069243361076848810033450315050528453700200636214951171020203479690595215861548992371148068528232722684868813532324539867117389689756413203523304668323473698015594566565427906335876463235015742104011264022515211242062057091975741121156903097016246474103931601803390608930346819707262109388003558486446811662327871879072701464407482819108144931610806039110681606928494890526196786925795720822780770481650088407511570321624909387990297876170893856946584564580889073161138593846728181059637281037240697332667313039164954596287091091734581619033167042376237749363448055112628213342697503076706226851045180322729588083620579442606770620658557470223595644915934910018009810436275686881826763951977781250122966932567077070912868182988384575629500201132493163593469583716992847102979368508329132430436217994896661785267790002727884026188203729963848053340318566935257610363431653887841744276567672430511054686128662839820726799942994410321819097671839596155112124899233414111447832511760912169937339928329350179135547910370351330299152641986302594852622648124434820967545274220003383262033747316757709836756295856873417089568910384309660191527728958830128540311496177368569728596501848008051035523513210143253868405204315793169233494752631521312240514493254010582818085992705437895193379294036541943127232003092078659285889418858082586803789843321216486804905708231052606156444526176641618708664112050053111477158345802556864169234834908943550168091189135729552740001241276148491183268160380867446595476532532606780412313521960379368278935296820110490361178775756072913423153902834910841807780529940023302579932536235932074470947154033481946017382308814138391036839157976902520110163238935563564391243489840889245025564913210500876525658634634826468929411605227345196885698286785238445924617740066671022075097611774858822441341387890538785352715344158553695373823281478748313631808986039804596943187856130750818339266891053602520375172495428720075156687107216192796518871421726233437106344856399616257002977623501536405965000357836467390861544698067894052288071016385229012992165373499901025739774216070655064839364459918952722788166513087882030552615646752263697000021213048837379987899608511456303643051069795095570934727672201003196156886285704817226919860621519797375530236343824562000934328204990367660430794178345434109111608474585772616867518200054583194782171706939775859766683438387047979608333047664350688750748800956688595796259319975728154672453973993122599364031213633224456401864945498860767465536986416644190060163587687691733577507462232871800053924281898794998861981965076617996583172056451070817148911038224137102801937644610583254124399098183669420956000883286173894230916851143249237772106809638741068187518452831746625234425829396464867493720134138143563222459653640098125629329857620319308645295594004858951931265375650667250348363811179095708870236973045478462128688651708631039812600436981588705701657671801271898076499277999616171753596943103708163973303434852165653779421813807301318049876218117469689015196996793701462509456711888999463019919391003154815481536733141261584975066682132253560207462679848471050095803949117718945165509488053641992041473856286054186041444615612313308754981810614658377423120375154666014503232646253226299661309083835926948366748339678458561583732923839560912595654941047206248358875675272850516641489269920793132646528421050728658269166709454214504724861754176697471631013354006112058642602221856546267429586070148338025360274226118463286832189060364706326085358869167711606086519525193578074438615162264824931106981735132265451172816731762818142698644745109907513570343223513303356200399554575861622510799014576618885545782541682742475776617596345299705620865291548071017434615036124218926993486822557835058873528858044946680807724671678481077015196728470679063969648760984898217140398972597544397175389793644549212095084565737827441503645413517682130357765100637994135270483776437082699598026552124292721477346543098134752938565868722624832476207269786902977988894734041329418393409002473788382447616149170634306079891313803929805164067497726441920332702378181656811019395970212750619093387058161201595826518672473489066929476271986841033623221454465330855327827656799907936000047301616351685665406382075810973252726967594266114748311050527364979485921468166346318134989688600416058776440422144023479953898038921815790804120242436756015681493105599767287636867563380388333676704060049057333956647251034567103932787918926904583288890843452877886393650649347546538313251251775300479537403005999558366434034862844515390301295644462378807141491591900542626098782522091565875475575893087705582811521065552005190680525700953496828321293255571050677418905739883900563216452589204109903167778533993041389116783626976241727765829922109158304191615481004980422754892322931108036732628032534355550949414104319742406940224931072809516897199061466951357572787331064338035251924862995946848955491561385249408201243983301297421008320201480033890831954130377917802077798086045444338604882689718190820590510684415996168383061875257517834645508577044011672401745914037876417603551971147076843369044281404561436225059732151194781679317229154194586821744898064058691348765145178286107834205383973546083377598124740947047385043493565625327882199811322575035533655140136318779186505838201744245421244151391117570089963982089884955136560820204681516370629196618079609114227587849498021279067408197907741689348654039955136452570394255548531181374760860832060726944248964476743667247052504062967976504903471804854897407209477104659322252579893353080325958510868744725349458374771975621577853450793312619688941036903293529251348466007689667817347407937552577310620863166172409473084321042998674574099469735216395455641587556894980708718291076132289757624627339093983867990355015381661408402048474262918518822033265370145281669985635726116751366026170793976619963817171577904094059913030795091435330536413269501178688135079692344639528100093821127722302851408797401779756110358096717842725928468065785562014710112388381058878831551544459380181541364466052386029787183282585614575183750132431408346612729131265219601982010517933803319542497449721457132047163506502506007727201608774685823915287188026474216303766950664260918621764347403842861250327625493839537607202561235496057792156818407148426499536533285056347155018743430989161075447477428909860452997113909284227407026064112507353538864374194566680085154350764084623096107056279714642370978009283944464340151787631882844229965167596435633873717444904203999547332282846846413271979609758816392551260142006977283231023302203358120674246896274755035697170710620064699915254448126645426187315836713419623399472576077015546465957599139641479347689473074759760533789443298497750605459169908437953452308198318017997204882220401639969299189144558390842766210151609015358262960563643470602525568006216776304686566669506560886131330975949102834608348536082855369776514452020744632614757850994518349046373433185603431754533698394631972607000094405455841090434713097593097101450933204251461977796021644639949931185463345575615159796611409633513820206751228354503087291324471433715028501600856997668221578431125006916904028868501312232619636768156175994670867750628388751993714344877159089559047901106023593088114859990025926555316067796892584376710816670875803218664838161697308137624704307375154381409895640577307453717591133169732130044559126777073123654029266898794485387653846454269831275654068531401617295508522931279779357572128807688098503090035495188044455364488489560235853535469391552268125643741430781853709011626807316914568081190290920149834982263577403155602170859463475747862424670829172782155718822547529486384247832744736103274766932978645489650718156090297447728554082605952137922568879961971952715909221826733608601580358670186378347221994393855037197729903681510105626293926717793737573249109359287564595268339878116057653118038664029949702323982924179017979823892261230682681095121793414986519201909429519020675307534473706439316348093788811706691836792254959276284970242291239910312116663633647342338296304756975026837120128518505533993568228598829170514952946939927178297852977420665278959957595927819109950111058738242317226079704037521378435421657800118401080613612496835481189418612424990385230719475644864302219790684848939589934130469453662502317117881124394396390698703360779371973448766243163109150610253068251991962926040327005030058628971084528974513586346275779500414740636131733121161776466111990367040416576596122132481527139927306077397033950584485077696906670448419185697147378832671999619679530565113562222744786185977891389755243622921791422287433470227782010172995241187679289359569193020262507432287350167116601436466784518241120635749437964974706675994232126326016179796486459912869649777485459334500917253642068515480581645381992544595269180728963898909903570168847084018897083162157547444756249823988744557711873834148683899728415196314397162096115919932658428209983428494490050554582041503337877429901444465386764388675093506534199538709075710547794256696392462822305432745090243094163575999874943586090190514785775887409259821243865215238114982948294352069030559743619698353716185124649314544344477484440029849238367939634707563090865862817396384066765982600936604515967754294285222017873388306182478945303425695431961372216764626898968507678533216637867469525838258326565778695231549033738680993771829404847184834368929706826973559669426394407074495462613836216393024894111764779448924013504879124032991826573208461208914827692799642243478791354755530912783345297221528076651850421107042305238646361482370191797935242607497269305509372981951969396980682019466889384148531210659045706157346388457285031051228906624529831923984100453403850834620630543571404055895446794060134438849443428529552079189851748976211663820577239271125661414178008647789723889473381307977663019188693547970191763575997698075679321481672184722415394881508301660814605226135931314104462329668232715993963494927881404414814251153633340061572008521983338756923166631339567380172268321866668292380704921422708207222629239671584205218820264242668010062923946261147638623443732908388566433394856871174657865866316526381038931122269399289335161392914588605948534609221497809971258689911293383065615805906743571619721262704352495582794172497014558305512280401982174165065662012453698450372164127961527588587160564464279754175827207239630378794635850060813413889394068427533911009008657122574940214541621379748265697446780707928656396264584167193082647273009723721457588413718041747062559044364195180321335784006336201174469422742869388897501120066045310899675595388495931422873159782645485817102451599782432705261253646692631286943449434745287390518943751370201075913031729498534491554987030755354154707043807157292111701254769168000981120981746384334855542491803037816717202486238501123298115532495925678319537259325217532304389145614502241966311375967286710094513579104318387351769239421350547475461162947563294981547221047443828215344113667975893365520153352550651429278572369313114379116096733990293093755412472344421724643783182502825938492454994142070984174688018990988016648761338715186447770502996701536969895204922368349088799224264996983459353681825966549723046607360934020309508321997815142379200017253155967852170185098247825561400182614620943240552660027516903456943686511675192155820486824422878927590688879789763700812793016496746492113883538531018605912824937371745028337247588615618951648978533480845414965729852522431835858073265902636467883897448372198903501304592148582396778755280658801749080825477568221172371475210054417511004661875283595169197103487464274613511039068361096789918242541639959213792172660552178526593597448023077586840573766033202775461767477786740739567459541355769853393549030441619016065567554989567193997617431768522011476822846243271663843474883084814803910022193409574599403176512827878346210570272386475898909343963670553939614736830828975903882150269683124061005351119257327778976131478535499398202717952749234662889084015342331402466636016969925099302039041465599059981929956947129449435999148868497434940133825699941963170546522633579687643094892029308904670727474721600902306080132985587995033973389309511752681139740528963149839309488020566937080752671132213411357278212194484529998307808967454109556589403061741530180156270664633519596719545950883222781318292025597947810156707158030480427660387597138225751727346789821938251005017940119584758655984049512224006573762811934528583152265327819792033705803230911851577979987670861624381213774792291958555001074967169489152721348791768392453836675991036848152816772146296099967954921222140388487968984263252097465799712743226848946531836166051241080156191293292470770680707576038188876282865512377409023799467894827382408137316871904017868171652731358491744358930125533333992152146816056624408174939377668671443213702433425985167319746102472818188648970568904573963666946288597992589714824178564186164095771998906660577104022021056552349690255364561616047230240043032867803556480078941076980856476065800846092354539592579689300632500582835864774475539242318197518723750030705222760972178990856181717760817378715325864113037595024551070102736173502458116099740783540452250826391269517032984066854438910218931482478611785670506452400270092101589214577217275033937225902324734447745058026582001605097405424461470135613882676738620359453379324971238300384383116580692011046738398364768098452476923401932141034865278765086572353670840263526280607582756122250656232719831904486570154066260748803094927110075237702882741903613637170274536379443975643264917698249035331645541860260855912399606781517035847267416005951261134419028552096416105493502145675923108133957699184819449288317387661926398044043082255251032458899421053529567395406045621077140179707019043195557048185229680596765205986910635772200882379959791873053446876000622373396736232135471511260567393220867910159049486213627790960117297363523114996431137290382532659091754942503278999180442560190547131786027563048987953727698477080296470351390919805022970165694865510685846338012260927145436596515517867901043079440252906929228247475166256838717183179843154024544614794304931722724007057250590539732891232108597908337701288913450651887551631289185849367968679838633876997892766207683064574485413772244097257701803831000364665611946560800930102995018481206249091176600622580749907194177286575229396817239597392795776077445940397135521664043485233909658891746448690681298349663159324636997236044461172178568595103220916357270689722996151579364249716123949388293614846065171531677908128403999639383632736220911750448406486702873270804984174055375986260766353600161322172517207016490487540735449567707949233225457219531068494022847042074921167130804379251014164066470475311679580607601504603921248559949074018318808107697147459323953578725549104861342975402230156710187919003327112355876261558801841068053518926682822274392270788285443947798386075559065748009073526940774594389070550243989398716743272751722899407117581660727624997496652250390842940892091242246017191425756437191290727793601975649824126687169261485069132572761141300991684165088754867336405817292203819062546964023362326841126752577696860040742449377635691004484181052056516565842755629047191346801120054617030888286326908288621975640981479974625850884187038401849725972680613138666791931177707462244925016488593345595869350584372380650993466905788310203451561076986320855031424360752749890542185415861490175337006072235067071120009905314440694125313959242341466133054145421199630634945714727811639635301666476069764991166692456756113847840126878169732761792495837369714092546808524760974780237374875638244652822257724461922583170902848026629827056959775173445997995233597942405955344678525213027003939887849566833801220201575935943712090492364901470289096497197214628590752827253449212400628230905582963128480223737963618458724729521609484253276225779604857215318717958192981995996600136492320830498714427772350173948586331240843491910086274493160834653199575695351402063793855276064109591515903057912346653088640069793675950952485491173926727981351515485882802219748778729126466540499822355874157492559584062515266928724347105632045836788199433083336867000606236244456293752962193705980336256564177819538871959169985075079186871713116851623311472378443448253770694126657452427492571919359647173610764972001764539327782024763690060756928619176066681171388546738299241924057163018764895638292585416273243348997077507445856243077021765680100485719285619406302625879676660008113118163597676194521753570796929220154738866224695743401364274761771155009182047105330071844726685326748678192271083377174146177841945382727567677173094546505298693855855246937250782543442338743767928088388605284705336788978030603779552138935500689501865195567290164008466261028933353886168716316912677648094943277950575561495174899730008351585182521234585986028220051561535351054442658009209399180270483746818392657888891856540101857882460700721481818571871859824885420920283072998799873507713277615513612938353396477026239685096537594368078040572175634053623400527036265083993230743990252675085258306898204589340444600594326893637333874086974830161859684469603368669452829521759668774491573151479225319051790981622642237802976069986869616566442258912160127922058011347543600274975460995637147636683396876680115044605113406295356156112064390136291847968355652496867775689114845432960987160822537137543923641559072169339707271736162021393797912620354246519378656437460917488687494914192733733382116192829560521889964430426587877657364518247523294469419551603030134395197383875774097506019441533673936460147263500635205283781650884134792380972205593466700629722468439087078325149523278443400707701612409689419913735588570284975912497079157138057691411229430453965460443036537181526145160486066762772244252256870491790601353789322487256145796177090234513619098159015233847488406722882752472696464861938530624927333619464772383184086334387964054451302658636055890574093115997319062269825192041445400610744967693135796738963354981877730770906323736566004167036268103041617829171400845505674651496167821380697895640463674463529552665491632396860295358511404089841645611819215341934005396442851594525740246627659668752930764084355075199554780672614404400107273360589232636587723426470229834291271344566789295118857980391355390081031282961122824815456920721616791638697577213789297913165983499286548258575548723244278339638977776640675345650700072877917639559936031404531035792415040669514957974283023520900674039285437507506028568139805483494950272869255972044089021556205690737411244926474160945962541306353790800707964581573717754684515101331309109638514950587132732818607466213523897697801899530076618000152348854539509587553022059101063959940820588106982622856139393339650417466165989033110519472483042448342381264783354192702820495370153788636464943359887747894814764295667989308639255782009933995107706006435825383072387242120193652016889692197117029723868419101581218744272320417819900668635801361412568459439606735980903897266269301863924362487464501106349714959230404492884114361865157625165223439007788723959320140872276436621595475062631750142078439395419748163396448121749534307511444052544042531135627715353043026269223942595826862372272414084737148754520187917542980777854522313408393210696792731479498457542020019528273163275963212751026750709650267996077439040423703633421374715760147963065121310156680984816067193543850170528504262202790465526714207476865344760670985807487326256159753463476597377156040168242127890385558660686298355515469668245603734436642533581706359511067148278643134741816721227483954287080647660334676773610534847072789937427238336659459721929792601737961213285910274521929595810019459194114801407785177621458717963451153889242023113652647750164710824897152795988283312515539807387382782156414852126354935702309255420636613522220761704628246099757656302702332991399396483121516693746852813128319448729367938473054389583415911334127866999426604945646124495189971571017160921863800498403829165548098886009201217761460166706781493172896283250218687075732443897501216059058414182443159335864601544262237744216746067049817082602531647531600644912146368023316842899660806126565214426543454742266412389621589918512463166403576822085181832667078976175507880907305561133339385557506317150376683720202324206924614623689958656715236517161946638092898149823497976036708023591763745729690648843002655376856776292798170587200630832365161932907608989975945208734088361232701565768350252947575360697386408545373805724946710219107067628111589694848696225756899539082839442029156150544227681295941513329697776547731515337105793575209911525731803702772725939480818598537937290414803752121755637029289262591927011791594981320368277970598299313525310655320915882184860718566831474288576703725665394819349822044718945663753160833567326907729041948167708145302316158811007580207509175983815153740572992497424992608899585374938908569535552047179681393057855411746262485125121075522893939201898674066826060365951343265971228149798936677304608296344780213384618451377647561711219821449586387761056008770319712787218307410329267010668134639606954906306211778971914748115493733369977600709727811944771601487239464432551044983299989065580458535628385503087926126564984641330394036451091685329504152305739080117772758030900825631284166733575343846428915333994807201718579072448277867128783080222935728141151609268663976987334210807292735819485397984699724208675860428162148561040350599137542280068558043475145948320795031809900856991671411448411334640627748290443222149165842866660761170929837603652575195285445457148556592519987150580676332027425571388144776772943506544511158934525248052469978152857262344409222785309896599056650312602908861245767163992311605462540048998353916749968099730246403533932383114885706022847459576548000484530928716333142544854005989366924927726510879268054507118040480484667825147285204031163028081413945799246985558093081082883643808138664372087150734488998766488851782694327816668796883350337453557317289678028608256521591139140087760882198316158905292655103117379660995617287173324231068407852725449743441882017921234918132026546683042413732432522594866928782162524493782890283939357482911971458416981219940062460570153338352289093002905100662643746546864785052535534825996261736306787350918033986102388021277556296231666094454871436605970957812616983244358868317034470055091446416359230893856568973352234182774098126678982806606830235696994289687470313774149234952762456499237786804649901010401170541116009061576441325601098913449544844718128677914109502421080048913929439145179271321039257615666648180898558989913030265349232211675101502643627100361525687818779385260194462658970715652851428767535259789454254145004656906890321451606468932981670799373835231060955810600359801911263819792830004759778551877785056174303389960427274421107928125634603271898495476813223905415407912078532382589996894304246800496713145833713396862217610669144003855093239711811465920575708096503433144048881149351649247035695553489224332955792614262712138624171419780370253443713902126769767734957069731131578746004244001768245725398184848351652433243463085880939858489653698001723842094652929050924692195971476071207022254190826136824775330394965609804632697380697797596389778855904511884553348884286705582897595746113658706028517211802216306751471199624825918735338888341744819550535163972600782652978682980297883865070784283209188199677449892888044083025675511326101673726985910622703348429154881980123793178680338347009356272788226045618150155920933537247999893684905581007748984457100787320870402894744836667460573940195352148542389162896036259816165531451163278026179627005424543128225730306830006214417787406002168444612327616070079874973041880474624512386980984851048333832220740853839754021690470109911412569490417566741374246964777968666115048184034067143409601420397321854310826749146906556811251522839044993744510608337994484675311678579633879404221035401664432126411024159026799967702719480496703612057345606361900895177187135268920400707601055953038422118565836927218875608244448551110933593691247489353306612881684023729193929941017900100492021875276586217489833824346527291037439825948638044435712627820413905567787879809387748578219434569720630014300515498861756225403466692533995645700139814870959203471425206489344204128328068535864951025249545568024485167631324083395812664442779327233918848832575825077603070138717543487594307888963191154443384896288414099902922860486178827028824187621101637303199458306103700670035321312982660017139437770480513182168429709828960479759331287834398340424112256570292348367079870888150069751489310862845203684653488814425010280099006530748789864139428794923968850873017505996113757108113896465571989316144531260918392996781867836460443077938212383690462618435698502029792433087240064305555590982007493010568240666008800294942959792390623803539274012005373815266771494104657974403241568890830321394665277275547012716176010656168591870094017082489250634505566267102244442777031231542117593588780095211101033541093060020591184777247017337316257265263080500371566480696572224844677847938927790398503941648691924710401083389831918700381225595065358597274214480108694774074938470814857043096500957371173761741567745303826887538207328756816982726103158004379521939613159682414097248594715508902244479856201121418689844102838176499985246879895794589447084805369685855267281926207947879427442690710550395819392794724512986107394427792317493423373665903287824616699582241259326085052126228238940736206466356125042440008341395876809058545844279590161268664937592225466720689016615750211258677511868786522171121992436702363518084787511829957398818092438000468317671741784726576767095293785047609103119412431728230145003428818885258472501230608130934447733982294684737913046777906482743150427807517630241452518827272601199377644386291813962682741804686490608048773506268222953220610046011610491706085715805504765038839712193936614916045329112725607077746209172086034391739468287547490438263531160842904286724998516200796794632571831196640018810984783146900942278284016939162089798229361447177408150824232902899378942006486254451339783383335004463359724174489854908739371418044762852597175713372602985902426678672694060570532526935538244145140466078564789611430078652618188783183118365578147659953605535514098762312185048686435144924026654623024860617610359813337627105429928649652505628696761505455597559103006903504814767005022450233832241731565715640010513375046700773832622877093505844432633254091790417299218165005454438907755021789745591275459287821020538000747100516569259340144836265039873001039920262144786165522560371998628041445581579984373938168770619809444974786196554539954167561554266034210001017122783512433650983540080690996374719162902432964064003422284240165559717090501315655975879361748459181733378158766367824949656759617256895299996628620416682549198107228651924020705367783886577760855600424066904844945535192325531397444904013582150827635695144605226110502867944388399912505345304770358705409405414506352245725174580281101433572294145836416321724868901618132707842530949128334077106158017643995093765924611258393808097539039794344148487212995036762686752058079593119218888364881715139190495756581994423486845732659321628773536638817022869702479951459935639786226160627816393011671484617845571069909099447948248403536987468996996877854491487271328925608380204315244985947721389071655483944989588673842279863255997498160762615790047660034928042559655982078723282315262501383923414273901171816988750940098303285706234177371182108857423957278266106038299235855933177476117016405466058462372412426526182075796034854789276694645321066028010756696785925354772295321134498465171189110790569282220623915012071074070033506520367894450477569598879459457029172397372657428659170314638292833222730538749692014382432874706631482696981477067103165570176242176769149568212737850779280563354879297671682517195298764838339648570592007112634352159213635878218231779771848629778819078365460923232892333600450011003032762786108792391419454421239311954298587433832631361064631179604549851399464381329657836439361923186219891082462127166149591580494703555056920515111653254191203925962953499478249637922586336511167523690593207295075990811976473194502433148842649826570717165493656959044374198879268645796592297733502205219093318266608120237880923568361450051949435605963120826681336253988779096124364896936499009415852889722601570425562478177905245731712616341353405185743918919366164545466624994817551953780160763215863230644251911652299707092966782768446713932203650465302049797556927670415107979454459878882146779073520639894600049041994147438959727038421742208337119866177835131310458843857341602627772228095860257473328882155594380399129724943242545992230663074193042749233607709764133892879222722183167370304325753729104123952280387307031993698144212633705841798734503351952221891214745423173390886505422500035751098768118566891735241464942947340584008197459397015242269930332149854602353025756816327043867927514097595977146776524688505586189483641938321857513800998842930970064161988164433899590205899037200114977953586263840222856000977309333356546802156059422622326429973942147362039598715398896356144343999596643172667321582716006014055013434222901538109131668581823505509471577215171142604486653311019901046510942604988320536716578902187558576616983065289870609127689091599031558463522140053754142033740184105634818432210465563779513606486012126950892863815073757760983905527596727197691732254315555544460722487848480611371401452259149551892297811031197688444186127351741708913306174113830644069870469888744855574849176813185929156996015593696325280424682030802870328920791268577358676659170483440511457638070410495405861108241161836374131959763317356907484428973898681007651185810098479833456729270723852688886829372483281574116543854366132120863095341446090088337513237921668629554560164877749442756163680386803022686110591187034957551173055266877059687932070128994309236153903657756481868818040320331597831316369127235863688795842512891696590215894860927667027877000867888057884985877760873425157758486964959865801983793197118346506418068275445180561934536320742540380216672738003547501306405705997449913743239481473443661444281763571687188040034863583129977837246615292107381072346309923029357894095406072797140448881236008947075532582767277226030549494314264106311234731338782116716853380288877443514807449039781076376644734638604995163142089711449108118222367516353113797708470454473289251667878122755830830758919808948491046373483349934891109976607031525142796328676567696985246744446244252737682155229569848891293161784208299203290664234452386984506611166793679448762093386137575178712083140411297591207995419328985074916761927899337087351588537340959246786024843358911381701579967617741530996136103797509883027267666846542702068173235354594174433785617692145534859909012121175747900100935045412252287109829817078620515346536641629359643357666541814162367347330268985529859024824292838970390552540026875853561189448480888883785166529342270924329836847723453179036920734073177607339331347361904611681933603512216555052164574676818107575651278558987345493006578515543148531118695911889121427593307503406151962379690768008538859676076025213166556541493131746387614148681343532599090652746818863909994908665926346900934501081953905334448381633420882239232396238889552718856655506293528658308991682080746885585785634220181007098962384913501649073659023103775408142418209184129756965358687184286007474807692771168812958922249513741760318514253651679532024600584718671319735155123091195665380694524146307183528305668966178858496613750695818781727729162070732580929354374086535543493870509120009100829273522142795932769223767202216281983573641430202266115633092010420153306370702313265697537723237727716942681269334209510362370436089894441648281194195563527905899786635578914464521986119543288813060856132109842253677906874066800290134953086142474198095877327746976795414304668279957932322022156258387843251560192974939697107262172241713202386398295176035368486869289761204349993740281333598871796406573447926269709264341481263592330546851261741785959810046568274155488660136111228581621399636391173359057703115869307287360387514537064873495078856981674321405668658217308068264640241223205478892789485914835560460551411559419073460909170021813251579603833575718534664569267980462909499604825723186603211798286269626956820439210686872126583396924605490761028410851412545746934494804006234267046650743089722695789612341498692792626928710511056600680075831386443430170753312268386045641132225479913692136492226532875265077804127044412540816744299932648200408629261357623694940764266234366027376151083385263866762946523619989421380411658312786812305488036244195088625614816275848025067475479141928730219170274394806622317434928596630067360136706428799610126616033597042395189558611963491159797942839959715985910489341013003713968533027260468232789330372503973022692298117761948460447480291634977253006749757557924225702907912780904165018209971716780206863045118788370595886591502208267989834341793032681013034373388256029868964353191901002228286009028119476260295363292827490466561609804190134662481705022286179504020236902898469556408995113375855228003729084716585193119481273392442623895897905093487426336529767393184876737396653133590894999589303939859321283954659786176989300165365643242845839946842937777389205578078819736122811915187313674401191062105312603615586574353011878843879513760289816971451199740384137439477501594794475737693049356677789305335797509030836941841082091403175343344681466962981870266781216781628298039595962393454777915690097329575113706362265524904862684153796642832958665625483149209548800737243185166861631316370039164841200231959878403548750637066205052027802111755735711422856094334482365538516784184266701581214265790645612563134042511568389907921835541083290394681873525239644615912354065030542845360788118297917391181346268571193383179695421698653981133613497164261080912639034725317275132018376113139551456315559108811447863167911408992239642516248407818166528823931669123458506369545790961962329247635804908815745332609264158702904727856219293646671478275870597894917918146056959335150222494870939872688971998111296187035696006200631300167931699121730160439984203401668598832529033390042106133395519750020282547669290193252434013669424293284082500975355913345283812361846708787506778798496415338020954522137120816070702250372016077956298347817092601770515780175945070645453061822673322414141390694917583989104102844441027613885083112784161444789457858789323965560832708341390344793819456944373534080079983879177242402992286384254625084164337064499778864240031375955582413595318962675554069046383643536282719038610771390186127228190747562918677027147153218959854509967279686970767495840801966711752201276386312720997056015665224388974376810222409812462943539723788356921786915199810785144782185674383009829189005035532204269813375429694034033277976209143282972677950765686806618013847780344736313808079456958597906142161652448855904977456225221044292647843382913039800621552773253874359690266682401521738077651217380486000214922044959996195586071513289808032391643715868791975042217009353743700887108247121430549446385375870173481341401652932785652724683894193219605396702030224674601904014793760733716388989103515891455783761002309677716188713488680516036123174214705134695902265110505373980553365985924782553395526115916173306986890220198465185521848999931327449376904962895682853257057745396451132865005118638424584095704439422779136484940322409958827199560057481583242056149788064154294202949914988749374900367760383784655716675299898840969812937498233837202412565270684534113366508336515352096586373334149515760364342363389620337764540246577681985471687873099155726824319284511801491098709329222475694748431294418447188094049997514771956761661114992216233946789963499854885518279910742199850274942888205775739573907913778486969320775124984876481005654145515353013534721562108078312685110507965306524107630903805046549834883414481906882037364386990472403318303831831813857782492420118798682096224354184673520260432631743614188792113647244234957822350721439707509955820783805738115639263108591986457237377094583528321184787237736948667010326094506561706751948475356485805911445242274864019368041942810098297303138402125954686248060319765747431471687156369793237940620824875097534262322882266720994854663717041368779271294936608472726146486130057069514288817879352248421007266734484726807043472471016511697263496010223293473482144265967352822701008566191693556378920041366373732214593817774864178479594763995004205634184462404319419934035609721035949805854707380931553209960667836364644939489312878177543638611255074545449351281482507339105569446942826512933429964822431981083273102770539344080138747226359942629820380436940621487646267147239606256502190527012703816232516202798935467099396796466012755842668264417470500536097747397617139133074472013166106291768641691099683482435971846335918338129572948828041555817430405582461147592786653814206826396366725034494690489092118953691302159158479066840230986441975862469115321716340603541857538107372986710050746773770374866867519086537138472891810656183759450057670206012665123704115002493504665779767913112088464148249594907387589569746239923769471233799310896479191798033688228972489825501187643849758916802443186517033596070523009422475526774744932810365776678916157677160699467327485383281041993250352921158185836312571911470737853811944022315246807094888951997741451116976071327423863434290344083748498292968428298148559403851197191256471155234797389777143454740915464350142930568607844571537951708974518809017695184713094814640392409091653326740715314434539061846087328010323870991853497641154981246891799536315229563579773585629849173775018450604535762017271447184429260864774519511047872266733581307474065752130612423832068397445797957062335521312628715786780886789003509392792485742391314967464589560127439373158139157451258344409816472686311791653333396630468640152845894095331450934977646526890173920237234173563434160778678422718642109766066200839834216775885619020588378722168990009360443453507366617639710825610135739375772744631114475529362530619847179018276928802756409275795080027822029685179431075343036488637417993545064213038379122717751980298741355981522908126831506445805880568894453077183960518756272350210774974959343068368802752189305279791673660932509502883177063234865713348979134851440383032094681293058849479048377051390422532811245433101812612669616957627649431356413375906637416877686372614711602348474152269433930253545384824391758016149232451814771653878532460282380379225799778313564245204606433362352588096900012763914419347406446661796629821018830376311813185124301232110372072014659210941842768505288459038926537284968640228291567191466278660201212838170119497923336296331658907188385436419653620684942600232646158802446457769321082044346171710965535972280024955971982517674773744912361159846288968856482702482898080837904607290587065679570470110311384418960300821784116464749329038518864310243769776040458953972232429951452306592920959156916180766450345583169852646335244989529798755569518980225201979835875076723828567216904244457492620972281396143407505647795860205533998986900931908307677137918786347781572433715613578458028542505821331006655746756618775700145098304954657317844000850513036970352743538528063996202050847744744712381784663489267621016351747168295859286330376205150651407564206746197863519068525350151588567730518351904786541618214135979883169247166300648560995680210174845077503489295456877318732288708904502696751293467232513054328032558844699250314197788203250170428682588590063006526331712439912307746430299656266180453521356679961684241724008287882914377989754216997620587082554815901591981244616059979182188881598486059116014876184964797193170766475455715202196420591773270724325136498621719635848965648842182463417610704440511095526259437883735603252585691574244352553255657427647084744856415878606723027167392941330100206777759164727942000982611037102737924565531526419264196384314537908899626933229960039903191586296785068931301748191837953665103402207451483332846997352198866597330416059895920538522319367507812191150717589258996091345594196442594908573694732811011491126583362322225388126916718736087735875198568147164076018634683251349085225991601537561173000595806942155850827087521998903689209186016101189516758343252368662195420848556866380267866073874708461579512094281679673203299474249382507573945114960619143368205705697669885593924707110593676693766892575730669844317515253436257313296563748830859734927023200405574118655716728427303889276735583094902692302302249034278562274605378276309974322675964221462539414020070779930646311612657777870977725403485329154444085543104712262488703239575841478502849771887935622755322204973431823019100501261208416832244476077728664022541957171624084074205927941962242374637619700429269195297881997916335526899254454731977412681687127722229857260036914255545779977303172258424900105317903063025148665458518305453422145610937634615772653049394674122444095042939552693815398499460887626739625160185481259371610036875031024248264541028958602668559049410343862172796243037508198257327041721042575393250786635019815732759319543813506977599856392059049433751105515058347465387572401456363356930412998517393562414541212278615063798816956799187246075133868348212162585952657556693746607518040143922247483287731960990406028590973396719040862496487628148911077361696810217562563586588761660485970655772212048190313430481200191933502231857699849419084993621922187509153604783409752543164685845186305205231228288372830759822070759432120100062579379610518459671043892919017599655628270282264635425997660185139492634149961047666833363438930219706409458931531437377134915741835838547632807418873161598984969918299765158019578703380007757780102454268512901970456711847445018113292343160460977793109109268898741804696179146788887301130165758299507564909887992148483320200741824261619057014217106290204146697344877982778636724123235004461904814901923600755646421094683157512631176835581441445275265384635549578493021078269937101271053127274266921442919305542162230529529017440872530292447736203675781097560322906844597900427260682136491070460757171206175890376369548984072873594862744599679277099357015023416954851076896196770868970234356169690898709162644528749723912181259385539617598266227962562819467893481772786519350608709292389471466021539949065268191912703699235130113849812640553553493040179410706975794980797450198669412499134267346287149655639284484708470629022337465379799895094241728005964514057413225882143107905338407707750154851235226318170244100498781166280838768306227110732730614633861145703988825560542495632017226929663786704352973334759014236551085125067691940755756429906641656248414288855351714575139551287832893680734771594730253377790346810916695905947555264070349937682520979044509417237291266507771526435146560469174528457348059131161665050845626428050622499723652041945984694911437795593446994536430724321535170462204366315130441290673267438936905428759524938686441029495502742680692889970916516692533842018020423976633699762156951483983817663153123051826416040250433192423983810663603919836183866964495057962636815056422371343368510145907729386599595349614895340807243394041064472342084090902034748694261379870338989321565975725745252473239473883710323382768168906436556108144916577309306378086543327453605794210097634962303551417187992678957790333568687089843317890767738792439478470060166177697945515769389659723181457057835120572322933228883986307624991590509468520694114732662773843044063195932178202489828316700526492882930762124360544604106906366341107497391891603285424033968154295073531343460414735728705170004138400541705719030279264376364443616285834735146310240854223771328084885619487893924024884694371447299519887979147976550699523451882124902696492355258792373275833514064767211555841292199622714060414542790638114129816871663016630296210850095342001450539046251627549651214115210726593253560422286335983509579849378712119615189072813165302546222043799411998641674476133784803146822068460768166176851829619725954665855473408416623691701276749902622655020169875998776375168019795527205130657020638569842933766084384047682540065931756072008211814115194111227025452210074832600477613243922172980746550693341526811357285417978399628142111206269075319689202675266417363627776237204151275462188221600896375331624835604354285241129615205655149965431584005471376129911063293604829542009720900460366465865268195472111067879420798887820684789149661781837829201502526291400226045231171528158869082660163551763905960204809767279053252326544720033555525916861874702292788787843214388965233369149539847294771123501304522194754771504811417959228926222878160427622882185881842769591789603611328324565963847423674655543522223044816403409473733446093738587794663479844447364572436902641756940964164445617727882861350916966969831372114937256790797253523882083273449643006159882042992347035404645393646773387550680553558950772294919472273871222724540792641189159705011506059967325212057674508107921432885175527484902399205850954777184491636859204011784050929430774304407048956495494661626759765420244365316885128782593122052847407936489005098876872199502343024240802394604379525780293195799313679629864337897233121030147257719368687016420774057825652946831902919387181420833880857152935551611384733946470736344353980164936587276418436070283743912950770460918519980115779083288776619653445525954861335760554597267913533544146888545524157472829774057861204798337529249222633159551877473790443684046578065741290905232731091468357412419143918653324234279667958071059148964765263639634070933675971811730404290252856855647336445687920156096339801535003020082960030703226558637792405313806679009055893306591190625327637126109374948490501825813757762921297197075141582280773652381729490296263785897141645603851608139555236524952576468449989268763691210145726969654973437426948367419816069555697355624734456532513544478789712951185175073467979903449908476755410971715136094149077135473673796976301825403453460813716960019297000971574967045311319327303759872169395995094542600361275926868968585479977914873908808636300204280184991111696746004690387525344682960044798432103288194316233961785882130626313676817801949801815548032283605309223111823171640337697512823641368881582393500710152180949699963458234146442577022265970055256389487603798414042979345221874087090129173788638307323622889135459226568545625062035059316314777949890132758612706083270041997039752314586412170646993280645372676563047905445341176231435179019720327922193026766186807748245291377472591921495365185092315403957190148028592454005100597165208355402457298920279044995798014424410378075323252275674915460336022900396925521081602598056398722734589174764304173950742109037803317196275998552003689176714619132339211446272523368649532918373959492372862322779392764863825167032638415406372133422145338199869019692275696253709205090124748333950392591632897914813400334978549527546157540861889544191270332910557254621314589304506813907188710773146621937369446987864226425655220723629134968418854755256337713354424120208919451320750509180548176277390844320246835599214062480207207765668487335173850601941632117717238725754685507228438372273341290847476220613021245175308203178266920335243564115070205634751857782907565293869828851268663047361899220934541776074021341550639066174146988785273519260504767457246695710473192951491421667535368054393742006375943091653343858379103853336602428949364842520703181616101870702859281583737164079977481021933609430332771665513558897954400461555680008855354645584004899322309485222584869781635189107271940813072001076041631172124085499843710521700392023120099328072318160265332120203801350464817842910093297765723798499328565490191008022845612061635211810877913155861237692329333149520846670540106335942277891465775608717861242170544239615732830639678608458133158450365112046084118290972208519744435858420589933310707803595137512834786706500209275483582487307497759493174644793114095125674467745817380327343757841793107629528431369532205322879078648379439435381997833191565738882645569507935643756618015808724316298390806829131814332683317836364095888904653784540639034579730636507529926279153042993466177042557992115489143221461857295607454786319155060096116528198937449015482716852129805607605519312460161610905421208061461424387639214703970534080021119795351949972512107218223878595300289970147864300541520087119236237743144614614963942041288113484836757561307169293159030970136547014573913556367874305208161743418470234722646937414693717593742170502278483742116154357943840783148134712533350981978954529517745718115205899342275260484863860411221885770811554572035189752835151416356419819002284977650123171718599063912839262555955216785332968762850877254677353784332557790549933123184622986501644662608012966360690480616299958405601059057186113265001157306367441022419438297775663016784681247851896714158768629424828190892986426205877096467439994238675233686742354878768143003705031923641752002159257919478154242662945670081591364873898589451852109828108421324962065064702563940900328425287950987474698511003656975709920424041374268733096802636805361996117008694199324858610810833360623450786256498466495957560254995476093201777120063404666837729666530172963663100508052806341811343560211506967915544179655820366712244979598187822846114749161332454787812692008511543066882120946219379711056002165510627560542068023311317320948048045737416803129231716080925666755909205695040129615318908917493160477241309402159433072584746063514912441678649916936912941801602741290062955937865010316685683764414381442968920935352174442141725559361274276145839110583165336418846470973978252902349466718929868095743968554715313685950003030072627270409212812168055390999562570095117317563974826196288276777879860757029307132598374783556077541210470060427192025577022484887424683242024004791105390469226589841683563632549037076998792063466497761352167108328549952120866715610866338374919011206787848113380348100150630157112119730882116894018653999177082886533787196840977370247438736101955591079421989991920799027359283103706933324655287048054735251932105157261836765224230833487676108521164913387870433103681983200185914802721415851319839082222843798427342656486214570564022819220676365745963085985964415382701589546906333215508451189854195160424120469867524873722647075184815826039875630867667673959553242748113494391631680760285531813797744426877488756176275517516203396098774978473934382057185938924671681927812820230615942744312854353214465628238923887973647458904125164164721593895263193611759721356274918582521689656313985823262820358400307347831961680333969568197322683447728009902926786097702649706797518638693352269978432133504287713423995220654129289180554342720264848428516448286036318960822274960288850176818664535487667930408360306553891586860842402266686598200974924515427655151818254240364654640925617087432426528489163609546712070145893358366402648277389892191314541172694614740413664928381382761171855474663521961891504580968777796789231431813462129029567667036058737773830533061828790216047571590368511151676310253519650733099686209061686425221630293019452001726693464080619096467021770055300128126530850822625564138159827480627454942920626403301999958146538550555321943530923538158467484458593844335176108713050583801786746165968608530872728577478104184835939605058544391492907295281024565407373556682812421634067785110565291030198824549705887365952680659329383108461424962527190516761125214169776564690821539835691766715021824580102104415233036578648100804206352502522116520941733887640145692308120553265007922970142376338210114173110052325744813396771661677437652113080126183500770027599841249216160441038867567152386284845036648573356718356973840216427186891404468444589331653601577229624132617368824566417195318970438432146298418062097690538279305436269641684695761364980632797591252976518156907804999405508640511857002707759127606828092192572827548277836938608574148204228051826817897532125734260552186877824592789163257656534524706217761267195475701158863246667792848005362879245758022555555514210508028716049432926327099041863594517915306324480002398571877427045988673764272068029913420092552788728176160412632632311516987042838659795232849296783639158532467642535062972916826454703903400343382969454304322400538138664766309030211012458887683260967860280144569722092364615496203030069251877376599983914358995778100131809242526374066429266365650555243131326994191247784635979425407769055474974820227446759320768011034437304473148287710989298782452667586383495659537332938478322545861503391720364697385449422900075130850227479468463583433113524765223878181556206607648187507016525780571138156577095708356990939524808774360099250461586293578492755677247158719519842751607931492440834078615757971929749522136395300309033760758014416147033046542712368141529082051194046956512947402949118969701541069384354364745382977342888378446261669614484423842664524797962487173832091480569325863429349017579973839416344416741681501256563915952408075019030110268701420060266863554083549946267465594128197028333778796268590267222198211049543013289006589347439352801728347116142166363470507642523229343457067684464075407816163700628884150424531950935516701730155093091122969574246959625351922058687202217100288814293911169904305499669555745282051498213228136998231709683783711062486263153720950856865336235373420226407191729610086703086975470946431972454001815130491283263226293180523563253534274521825484802505238068874867874169406113013073902958000249839861723687765137181270269073338022711843064402159073916403452513202300494044365505236635337092477113271068537737973106132745311285512213681088981933981825784085045572840329546275845492502324364604021354638900418488814396735692239421368127765321794451353839976091327489199610945320045291145956467253263970139942322669370802934086288243361999904650862980179751113428937027324713769000859709983789724935942642287723707132655448218107385312979332121771833401003038897082450894751299504931945927329004638125796575002073617582123676143634133874514036658958004770081347843938856393418226074557241310111881195269189009577639849854351976908036509904539820332085703199927178553309075494853976444182694851927007955776100346768969005633571962185971105212480980353637945983048059926571059495174670383630560826435709629849348379904750051913386033376387123001104668740265407975264207499510955150577463482977868144077894148323413106020693521426292997708069952804676484648431742907281823661096568692435550591906458351806618975080496059843271259631626977589700115341250189313018048707023119520704543175780944873947873133443491413518792425176916805650996205011085945249442554644283372033062557980014028243309238711001544239299931276704043671151239024520695247334506763223997494013251160415263271823791873131192633085586842812063397211372750848574968685071498959856070032900018409262339983153633087369262501324364393981685101799618431390522205956491405688202412674399869880123500932712788333300631922450037014157058940235870589000771851579039861146746227870849686774319072041586627496419637807940919262073642855998013304176063918479267177379545580663316764131304418334136112786073895231684141512200026590333877468460600564142051090120333617536615969864053864896997363497439983335836280070020533572810858777560656338606251123819541066396454884263228244010182723699205687534493612782785972140504937756658922592501541481446040154814593379955720768162348223220617912239411518590337787668001331651985353102954805921390344321512818664251466477419036445562971162603761542316060658484783828581895037074310625126068607426932706285091304450335689350239745526512193886278280514138894430204190173770484635706761695478079410687095881485477399343298596329674068668768354225949805610454895599280115593954371555752853137657935938183716313147088197528130078962169461534283935282283451175205430157021366769282780808176197376058394618767214086531425087646484738158394990160732708226748187060887438561805293043696198830659278184950897196272702307739465803649342377500864922543622189203185281930549262464735638418643153393651961330154879461461898813072539212233370113125700219634975553272178117245078565335660063578444936333181344361442886302002539069523451928947192829877706791055542133954316827482865236701903953325331494691653402914411980327442750524424743899810588422384671796381728486835099994182416423350362708310896448259567990673711352640839238253748326541468285463320615457868975389668343655783163304133191881462212747199619165560809578526411532715680093397228070893339964188483369577222234201551312532938883681320682071058493337888864793581093471034196287454088585271784888869368196336181291782820403106042102870778623695800859234749320334112498625798347317634588968269996110947797824587189913168113502195930971207343393684872591701403709968297682377348573833082163853228910839608972829542511059110452189343304163831131774988940651221361930362376225439156453731296220447153899859187738429592944463571626620946035982152854925662030939623090949423491308206164637630071287930145104250010978118973508312221896921578205733505590778791074041243875809890659773427953441857519614151076067432376261412974717041606866879881425431527966276540071233471625288266194795948680303432475092837698152589121792626276133575698962841265066631467202341376405699579283612275954664000011717368588677707945953722618449766751261435979597563664154269772491335561319993791469269879234664793412443033095755629338188222963288857896733443311553385552853227441512411301317165156903708372820513721364252964960493411972555212055091576495432387495661774436697822271622413432850047354067336205729928847626278942333393151931628158054632869525422388004313485460760387824545819128631720196579559253467826205264321270518981245588604744182889644643855411093857300896616794734393667605968397052153807697843922990769619721133075524333828845385817642782926839222543020338634012099197332500601730258758971852646380366374632966240838322740464351495220585497373943551157832008191278377121805995689368797008253863861568281639617412545719613366221657955827743707918600561292391897974292672989523841142465503950748179578163315405693426898444679943756555083008601991998300963521674709175034805139032191659073350472923482129078375241599195295732670447713323891497370922115589157064934657774628026210518751705238357403479215016730511536660018313908944473637484654939708465156355058391634219408061591854103990449317557028799779634521933403044065736586171595583894337498394803074613187635219208661600385037578449838717658530458328319070668416730239228857118042555496818282747489649171727033588643290384181342556349061601729222345977325592123867309981812005031558967539698648416430273322336716487009991592474038519685086814359892182299588176973322502250195405947278952543524625571877746474051284139789813681119344685618397626776737282978642514216586211334191403337482257977936426087797899826058852798637221302172793164770681352501064634392585781250357946728049185231716956297608262071179675643680266216981336553428054129203968259338193913527135636719644857487427559385388216068988028214672461781392295296873458074402592713707418463689385262941175750013744373220734582901873872802605779425816567256552101347009623717287021446504411818005427221052303005606821709094142672357273024690298364674664116788827991958003474581948841131623348612317810140186092077215274546566064797975714907181856903335632406963405528787644561720707882854019414565014739700526496538650462137279550968535252717306020917500406016710407704135791236055449286001506446459250443613976174770632661775985513906186121736221479362991069539359261715480668798152781982521672148445704315315534702016778522267021558286226323605149806295041490101741902150373027388058932437742556888338883007749535003903493972532736597237988788975183502599072708090732963458778423000827420916283032372904577124052422380946082493915272115153982958000530602728464754988263625556234651611561567582974380418476913799847229869011206889827609522948027662477211637776373007591663154538548484856566615648765498172526760031605629248487905934660135634976485263513268406778011092209681929227850595511594192301291678858646497992564645808394110736966160908516070869109924766025348268752975918015303364131689196751268406742661912014801783245217884518988018948022997067819259276161297250148902843339083850930258624990019539336260845392757959373881275379125613472545764815697473138149460751697042385931729125529679003167534341883147710394492481583804962664495291947966876656011895875758719450529512277756275360230124804055443881287548364541644176221260213188790441858952394900081142779924754008386315784506597342447986092247269629614164796023375404757624846303569484054296685762418399421773400944577899817277079996231943863973583668246854163772908839295062819382061291378540520940147187081723801643435949136780905514334794956010467633890430339291752093543870278146842039670851409489617814288994125814294583018318640137064543822473133702358019649771045948454726139537868824604381028677627347754863876786562771081814148815657193426209671445739105689505175788152685896384255268115507594394563973898781348545740940180576393241447950547493403004147396208385624961212725102108723827266626274523649650108437417561588323269806981158310447107491978536989557802313124853547653448959622662506883336074718444825882877942251683226143212522204185863993972484867930666909886842011070646575591053926977638014582794088901136013048028183484582329387264553851643255024438829519025330235393622872706086342328660292212459490769769921892737593890828749070457458997581558248524984839675873302114694920346127903645163196799914539494580513795412798844282180300137872288595831519968105434856458801876587114564277153481740985262736191000294604593518602606724564628357482493847117465904808363997347776109655350916618015931198141774233936933429884957097384797974203690413658411137676792398489038680152328544574916514293433254849847826957295987343170910644210355435032971462650491075082386867396763163221464032179898670890467018880311528381127868233313956332990140581358631920309198359140981043167775537593158332920233194519490466706823627900540150219272193534583043508649826645647053924357338543445787023854188769796047087503287419236180515189213913891849807974718804972971336507241315352266612665199855223264315298069106754565239139698424396537620517843340914781423722608242053522288750753883540269893862161046427800593991913392086292683983035956259974537848844221811425369153009045949331634432422086762357017899110648467990535609546071754996551058158276591932286116961844744027992827201825910944273495023388455255296802603404341242898768998508755819356742366827481104094295463794903977509428926564949661265554519852641408362136812446454624724963166186583138583507136347423198025803513087781919968362835522012194360189631490822400653519512366236781901977142307018517483588907104484192900798608655206812625151883125356584560609978170315635295581785803330724693448264228347976205363855714914754558284536991079459693383602488586205601376220852493776059585291456999983720319333677854152605534444244781757919998699340779019310778678287332194077026981658169375674356075805023982315414776162801335697618043083953770954443635012780118004976534656928416512033357637027225263654551589420879213995868706967637454225102102501477756727824391312430390964270697988594355833742825933614813729752545342881590204487261313221247385412172838280755168276699246936839058288838406520458665269380051181662205535942012568870945382786528056245650261387046828150461244565072336889572305190693688680319088625254981233063693108236704591286814196670099448869218017557934298018685644708015158732304958935478990672790422901698879203630268946018252952531405835670387340248388470923059966349515348186202166409769762478962787379392221866303192374800233026271021415805213241071151393284670685486414704900088484197965172020023205477870064168921369484996485294205298527337632936014273820304209631740950714164571660928281886377821968134777707131616236588598911547921710289113304039043206843015719743624999554834053028275073657186948178712788855206564107405157462441935114208091514626881011438044037050624408057125745042385155418835746088521173202508830366962834892699814000724917583144432671566442105455381438650930271658420758909000872312220227379848326451757937733832967272528507431352365840196486571317630441258461646946528753232541695223074234381906983715968304363931872245883212673401663796764993038657973980411263236807125866670307201715570807627094853863151249232431826070104934686415792904877567128302996857185631532382883364874401884470718081625068071739512230332054485963062019936185731020915596813672249657776609770725351618538699023659716072652261052517168202053989279372450104952799443101483237013967902077885811800873353959618312759228334346142349412806098195513682207625525808408292252265193362317845919959440766479048890152974161924462850079726713722079637174810060176979987898897486549241265826191402617123677897384496415575749876600557596036151720814210056885384657790729435947707641132592767326155855680986425039782927659421626854816269399227498985193891340851550539765925413183188767561667412897635820225208386024150150245503528892393207112348669020205625782847878631272220187899009544078525268713893763707688937959450402666903490609144200864384856698731017801520692138719000461811945342391234593158011296816625339110287004423760255940271795870309575527843842137090124196304960344498471393253510007998255806994455706544401384971728722368894813119384714969002620732764457922196107560058713809603668595170112962935005375463996417764502959500518050075970594613741453099642134568787458782837195129155203754977145550596228771830642505108334442448263636618522337761890265945480903371031314655212052676547322754000464948430051877054862615221746245697447002975583894537893541255482762832628885863886344327236845216407961915548849956872830870017234274450211932024577854654354400423293250925010386561144488811102174891044707160693654986752222227122240451395615983073193321075321562356175111629036503179939256341159471620472363921618424692144697746398607765345903978526791240835560850754335940576597712277365053713448609879549953572371960481806344569938037375297857160229307974652878878172861738621629463056137052083754065651149589509254746367466778832084408689571912797788884888842177402290784096061421169990779114017514492198562523027156740478909474757488711525951815459256094655813476337705803783107704753201832228150591842281452722114093445209818771953423889100370366352227513186776364352714300426242620271025530011761005821135574279802871963205901929595810042329678102383560835649907290699000689332077480428563822625499514471295885849286907683589419906445286428661808057845993205374866105429207759192849042185754955599307294010316982534698853790276783101288621429205645135248784489339947111705756216490358986727547212372623376738012024217648577906528718654633249907200898919532326233507119184989105518320146342249072150730960904817444973866107982305006322273530923351215527625537763040962962782207006988600137454119693329552209737663695928499343368712896638663256693035590126380242333911742547117490823939714079530423641760769677531684642195126929354712058568882417991934849143421717728101868749377432342502905129044750594764844789878883615686820419562488141767813865803309322713340605347825618889283328852418583909417686209324918727016838553380066091018679700927648657795542134130266676961416612165585277541893026453266359386468541044152931342808117480761224549256123151844882314129530040144683598990832540971530533540300318605451359739098216304677938327077615101452169979869178875098920416488348443888347008713591186087578171689937967565869758850803435067638928002477883425461637976392441110784709221862909622282793021103280234647661798950131027089197123070078951293898677645287846642460424530893920093656162254430220177667429599130523426217957332398219614486870818820203563795114805678272620281208520374480503339757329109075262909316107306046864164892791767331705553396742787285178662336940236211908503964837136721559187318639931669560644748353060470157577869894563777419214877711914123968369185148797529598215801878605952866219157602996426744854385693077740019520737919295096472304832889476653534854110165695490455560031113353872278756413716779627707929349941885051906102348607760388939465365432366248204836034044383870794923879643902501398224611307363150857560391212470095063650982550377230024336396176664601248272430345074095895914924582699719703659068996701878883660077782331502769164522033258400014704645082220664670789234967734396927389852556929718800112069319719978666995709890748568725525586209774248738335266649135489496656041752638900882470719463129297184782939543852667560523753361934132357403455557336562149380319309094772749915884507158580725127933711268257328990560832724267121765560244914965290833937036203810308259511220292697254399826062036610712455023716797387462265418276347905597145696534228065600012450444663932143986928626023235971004379004570411503675851318431761523017637020629121508589046576945859260380473915257704592293534389665428962309538998272913990435730463492948349409741537386217394093535980063448683331267018316805527323504847292404978474472451660103631895684549360584785048750848750795560305959160896140039862182375181928272563629007287819983543632383177133343182949738039236453819982836792742079669273447781542046535177921186076110753675633999669018677469476306620729757882461480681035876354637613168926781814483943484708180860757507136844610948690706889866536992472719048000841234787219237883329361719731131170718568432523733233799888897847098283297540759428760420281294881025493484540694371346110807236670470885637455097853411064195235779211599223695050012042119706005977699913402956002358223569033113729253779602610511020800136321244716058354082428457448704265149203380257870955698567976327407775591072957187713841136214993014729778744275093163881195060992651132465649284471441659565789578834209585500036337290864072084645475377166062437205609989244329563049219858423168708106403755899614617948104897688792631531701603858773626917410384953342418666071971647834860086421465384544955901007835000195690489908776728203985098743937638811873173020861702616122296806130178846724926730067189366436778806134671076834712208412754735085107139268374030736584952044928423941976574325029336319160594571142043863098045274750409060936620296240129298742039619288177928267023104288186464800198152055976736908400587416603857680166813423344621137206333915155929033427446817965915986290993168792299878237620472757040435140325407099779668142438552355727931786064775858434932065276086475720107769672880386016814989045728868159371078623745265084008781221589154347307296232219996550267019024427531678346819197431603163737621844700021311662641118930499955536822350548947056982104391122885261946157396568134432550151480767971006964537235911810627591393644416445840833678492204995537996934886200791216158374632957199982178505985213883861716895569004626219319927133538150041377910958433375732374990797302867098696295504517509924879443393851639746807772013796395268938488920056980842182222071163583618724750917264119050970888746250289230706836485494316038721775480994728028949207827303981368970591094741048033475944823897710918324706208997603402424856809347553014615842641785539694220066764297526086994788836593078901919535033669460212749369918063770888144578998532640537945112530969679675623731312919344478741994411731230380268529232330770403811142130683785843932816901289432754994924973592951816029277705181371154685873325988810048215922833541281663271130178963193097476532030660722085148465573450119498550291378294561369156774212570420174239648926568440132535717461605436099343284400220626972172605240360190371218071062512394770489486949545799827998780380612710103280737608059952834671399751433512901355882701093123823712147118381777829885181262301304458714279116229421861803783652647611827251565483423110675811170305308483434717891313563695738475841070369177448872553210571692818546835592604525782834180547690415849131376679570076655512010155606286964957880352784152359942723310154582655289486863483035046126503351279006865962214400056348430002900825935221545229472107448869216865398121613065211827206776738469244321404899945289413751465663068370399827260857136026438250453442804362866529664188437231019368725829721956673878343397904873753976145114469241698630575666963614304664595793376865631030906784855128234396119744323610626356235641765596747332570891003588997567525012012539726789011803944783274101092509277785511251945456341560066536789373903402167439873364545455946433343003654381263106752977688080840990934598859747551299662940254826042797171734536537566218725064025935710370490066525486430387422223974653023348960135511667911149454782241775603292518726796724197691577932353877797868371965451454462475256600745431485468506729276227693590147268077215545958978165569926698440978477631869420668320925590010316564407399566169574004936079183505265302903166908975704197679592937050639677071494188284449023274684827990722832631827913517108890265773090965927673321018738580471565852885687233244588351001855183168205495933737574117489008890675628975477617277508286821855201710876985002418854957307769477879033152513298283003326989372567400290711465562078837394850415725712474275497236920203003351708141752416770843977867760865342761219722885251528898597765333236971657756331393731754356305206425956391549231323475077409389089919163260689314096357664751942130452511863409068811156379146924227165191312260080281574441391096791458449200828951892190472726701805230984042019646242396558402194647135452847927653261985434205797541650390425798247957871178255217370092367551111561269806920134487103428233460275699079865437496941907089901599730334543473374633668563412788880112379709264070671243645879011163924007036957999478373299187272196405052961168149895271826433106786652548029929179728211450755099809806372853865596413044688449546969945329712624148763887947578968698898523561962836839563554223445437278865967235143001669495143995233260010333151832871733902920943522635358017088407491658143331898218206978590263382778909041044131665063119171322917767421453168579238364490384011568247816956441069020182549941045019166811228745561671391499282706085411328132570567413197467013042867414990833858187537529976687074600616121826599362573422036598937733953395923000567750621813357555290658340326030393456627234627591172880763494930377828734018706514837152198019720070384944848869533804873327162421866019763559038943490049460210931133211895670900994262351231601232715505684916007706473180650702300959966983849717671101857896444840679655641341077443861257593666509174736697671311478269386905826671118925698614477679485472262767170379296179334194890163243280601564202775420022997457201238174872779401048277349765264472463309813598509252058677295178838854997742325044535720587633626358022651119311493611700532363360720242050663980560627301097791640266782407645368212950289140135271733625658812291367873910908288386038952240919821957078215557248490430288617042784398365318340974366373335924587705542302291043631108443127871043811319220801494549042383553012742942233271839306473188025167587971817250731307073065031772077231375040837502404968162839002470314221011960792060501673345777233926545952495708367414963144070752831305677537474215831834112334536430879725121880852431105189672681498641279640406941729989084615549325173565012906855075483725469180558193376695287726733751994289140084102998395310878280472284372385497890520377285776749954049732835995812913204557149576621342880925313135929839483200363066653082262488659501587913436145536886116747077184931659120084806553621048343155240017371913929283697720079421530455929357975647361623955308240597591494721186844511236408582280810467360222158480074210885120001044967209955886688093634898576806892584144918500183474880976485775020641993467921344691249393339035914531350774735410739240548653996267835417907710729339551791447016391246066803631939812695533111062002181655219505187130310641703364433304111156448116433686224395638939395096316347807524456517761157061045044194053108086781446840939402326091899200018291941022023899432934769123570620814651760815398757018359032057456624293370972815461778459329056876520814230039178583254888138429930925163539441263633516085525868458441546148342106943310136754273548745366381732353000039939174228966679339763050342735717618915860930969556596642339763455240702331350622064302578811326207047190998523330745192625871983517844712148891253902014522599360092432144388590430805980551604058434150362235041733732148980628370985704665501809816942672615847751042756828107381278355264768680761479254914575832587584001235465675391070657708813544337919258882740188900100486564542206598554047800479756521768947516141059495857577186017322782669723104881307219368010930426322359627454458408948450353151842635389425200671897594835165486445631442166671760316206207209456793887418099548331868700583492263812543310810631925811282184259575440096787484158053168802730576067719574606532477521356323206529034150645234622519584984578800912735984079391717354736663640247144723079784199526179940808086421457484245549518005356476266919290336516562374737789122579351707271671905888720038084863515534369055507009405011900014067978521097765433046317374586746210147973162800136708273530890460607259233532786433046480535814736000899136142733127322392658528198352707008801738429555389005210195711029483564034115129878174749395321270121182454042129588794950677154747082033411040012778816706862574358884502148056162884348559316644655226182470795287804832404940831881756747915916129926913059479562816995541251055196090342629463905814706212841150292060955089415961911335104959105717060580814755917324161133761014681892606270328523751821801530188490287859601107971108672477992325006264080437668186953007742990382051903966463026179205269016192167947650051837141815682898288101915268173749899260860412809082631487208144272161206295709402098269369838518653967835240022734768755918998261380911860251997522770768142738316698498174350463372543928507158421359206031531293811142260927894642803880530394231256623149113246561718067860280047598792747608885352453040597740172292612767960091094157061016445021584304032595390682377931417594175921603758792007707542533156700601428257075751725741305518475287794373846443799054928673568325076937071300090424948163007422995526726992333242150281450505972796242684522788327504861678499517345055477760268459976095858581644171137625613517799039748513055922440720799742496045852979596572321004992367207168117862676436008818142567208737877354159167881647514150366215804541113435633229893193140715756269724168779942093417579712512971110471705218180330113148522377344657796795223713798771240913521283518086962959014568142694981190258044935767644062309230133614454619238341587774159120998824132364790516457938261064791920555627971759604901168683538216897233187945548727957282150476869006613053790282649893943947454019774853027842026204424821628586877840703750915524803954141626321195571570491379256012315595086619648768248374591892027975556916628651590144025188188710473726117437368072791701314946673645674618675953787654370459542241427400371669569624361135313325294045247658031634696964617226278800729579898351896052301730930105011277074258054803562267155701541145439452241055937358070893815609785297493965565368924123340276514070869132195530719170582191226379640828789566005555910749617712065956274823439300952109241864667642371834759799834289909973932147752796433977657158412929050392191412179101260472604948221451778133834838468221359593223570666543697068849453627328502292268947436173954509218496474905204570149531590226310029073922373258336900499029553890779664100783040307196162804846197525967246437802540940642605483715847972683625621125329897451032422933336750358715779183646591149491605288241588491436961978171244660643856935980570771988949732490385163837342349661344292093176728041522661867872480661980297539736812728045792258095192617676348647993641394647378539221514933796336907829850013104386694286162784164899546651515244121284229447412058690338234837298398493430502967759910037807624219110074495010180459896554034735482653585347199496590992200617889698730079604879794986093989315799192669925131610521844388741401479346467696958836955197278139824708948216080028992642987655974771561793924896925061733197687067378190065971141885778375940241815392253141141179033276279037419558314484572121341719767621898651801877942105150865463031171497324638249817873438951735952140061755071605144326843044498578277311715888783930926151346632787141291975405322064394460207289379743424615777919268031063778741808939356381531685402274643937009394532886092910129740656755880299152148201895126970597384732048525798074499953835316935680819076521074058432377920399902011214961379092783653874292703346359948767280570959922495078011591049836220673928869208294335094808523934399498281028683066010161683872730233504105355161118227780587773777551201211677712019659732771290836705981864627958715015886708090842804368586139131729937321131302838923701776932280816544181051289225570854760353583657834392923428478312002747290727501414265030017436339179374891277811565433305378969236355757748265172764139369387212605666067254356057146550458066546365666254457961188510400830144118803820636489377621592690746726884543335274756318719151523684397666788487035424990839420295102464480401619512672779312953590851449459779512083976648607876628218033804926843028779187746567601326081371114797407809129023544611303735112218171728815971155974599123881018775567983826607837586065779432462336109462752878556208033241790918182706916084801400189171274001312406003980252832152606130350868932652178094131251096202558964193030703578416663735984443277665427415319097465838424875637094009927244375236080531548373889326483019784666606582359293748121850920407394191827215678463418636731277875690841243415094606810514784585389211006597938315234247269696108393047221666927097018082956739552805117162914044142929304479028325709088142636131250267986277567282973634136797646066604765326004620944083205059514504910831146311865155604099701249302685945192116237632735606698013126340799900112033364067437222815316575961403461008558165286761098368951947891932659961262596750711000626524333267265027221797612686793948977261968745598156933043509915628612575871598138353129756876490708688627560087090191270532972839943131134057763622230719915173236937723450062816866708492752876291333452484250107440930620882782297639253841746351203271472705115978201132104899968927555732220677623146756782444796308288213784840161345989586613004801980674110919209319765955013233750708217054995736296746344907309258214432660057322799503716637490457775102515693324682364855323351368140951093392627664631203406240840092731460095075173169227700819631850135414775482213466936648926838798083845557853246472009709262401976142349487212749427528653792377799675315959699115241919515686609762983474994924167391864665946374707855521616813865840037052141886315925144918991000853843795004135717310674862015440223638900183054956654367742903924971903387614388218336458669348128803161238847941532531406604805412618364278482115583279884071760902027629136774472464055236205890976519531617218367980819874174651405946405451812100492156475614965448871721992503951745443853611591522378801593775103504010943213157210578806401008506769379723067473109178177279866190234376530938531259622882176100721667455641632942921896302811075667856135666284665673660300296096240355598703166346094652352114169187565066735229284297939708435387408945222854867927203894823362417487608189135496558626450089080386670070080898179673975343733124745169390813579096173053564005881235631307381945992600843802231090643360226922806964570485095680457915161229400386016019388919532351283536045417145317531642682433821746531953441555760362906253286669836541110609668189204714958481966834086009332218273559504607394908588471822806041297547032111957292005168223951862381587212402786753474280106645427826258658617392390064677257260570425417438809743190523515809392434042113421113805448864958602660084786973947105281148966051264165498169031085652795510697497607243648356496992780441081441467579307461395764087427164482824311731146769429659879022782191735133953965005350079020881814775318809368494280044405681379698096015182876957792662472350576521630512827448242115675927266068499664114519964012996727415676504710884781760835843678465430305648826791070428963555259976106220251342360267868062991965764517220533148334822700354889455846075929683412204844900911866300319630423499939645212722226301687013686216369207255617883045190770713276028053450425529751164580021651556967848136916525689277402127422162373575547414923244428285812887115332076415814862590352173925614479486822285090877302719682913594143294092032399076606887885885172989955692758567594874750154559013221683304991368613832535110092120715019967407870031727622246496473848938050761921151932733875224650451344084067245002050518251396652037108605399211185068047813243809451388341934428037805710094625855944485367091579545232626275169142837913180943536641911418964113937116162348836673441862060636555231648988727572860275908277582108188843437025260406629590758542906620205636469031324476572910597635180232708224303959664966064371513661120597834326873643964842560080961895391735825769046532757005896173776844861735853730678552791508685874120038590958432575797005581313226510166308404425790678916092957572498734440247907143796712998726610123157048898845955864782478394554369400996453270073854851804979905709522850485566135257831841289484476152137207935183715762199646939960859380498299696941151515803795448788579283390444188510005142549897642534401789858223642022599005644252748517407820977694413826699888026126496151659245810990122993277271604508572084051047560702480057186924756064686537979190034568479007284820283437903955630291433330822969253794424402003619332792401921990156307886881428772414918678484943094708127852352322746725132229647338081485558255103954454760032829450375983765371146724422009432761377721611885195652711329185267851186942238531987789655447734454083854253346945808589813393348628298083846703694424837980608155666407862031962339499766051253197261729764956350121861268636943307006369209960062731106796906671164355136526597377215132381503712909880990824292428739411668105821608665387168012710033156992081455603975403764071072017799340703361620663763487934488629047685402847048683855387576272356581406156448429560731580246822731466057222296574075628241321409030806816800437436841358499200061300009122894374974844584915670596335045544628726009805387376822946909070553731640550842090670198117740487147246040772431231405131551276720175695420117051405239696168429894038621685000087730296746167092304301720863614390303423828033210656326408325593940540571020724241834699445587164891868683739563020650951383469780358219704843971079855312440883038102144222127103885177118324074847433404259408319524872751278781650134773475012497107682015226552396707057002018891240728227367657100620777498708321678418513151338609089502811908545765022483631231674069011898301561423955276442119331554386611330148267147714380911850636520307178301648879898771839297858929174413081483764646277819772666475967504281747780639336870056667164093921910876959151561914548751247866937328628021469952486391496371812326833921145467879275646342846827108486104596793612184717278567072675605106395115388537874164697001088387284256375757324578889368220896229395423028575842437159629108062108221224993004456366394394638016030691652327504489364985116324987971497299973305980629016597312179320502922183799168098940723512631576549076822207360838009848977055654371120654633365007841884325823223960245379641197420708731212702563308551913357958170343460142879120624112353284445916424424564542632829574609124263755360497371894363999210822537103890405449954499911611923127971618659886098940908619634958487693815868201138793187361510802921864264732873953178085981358826701602058771283737704531575173430745653778551563592447419176041095103483152604796544741009293591027762594102625787971812422932237631323363688161651235499850554106568579420813449016479337042472616253685008466635453449169295874079120109668465307754338680913997844223735011857912159400234185725358270352775524582349970412255697400550170403144998734095048266533261676302088968189374805511557174833278943271428577870192933615793449577035069629807253143255362346548317516773327676499818709410511692856945780733286458999045632806309358494359400682755659352473215115649637378066858130936844337433010816422500902741385847608686628197370836026627289423910041843534300970000921476712829712433091774741409703422742977570160950320741002253597754079066462684908125932138233761466933572708655766817820883949922484792249250472311038444110632582492235170083302330788858525596112270244848582090517750273956230320905446907927745471267288050200994942204658638132643003628659427441099872988540414160829158318469892082965685849705233937049524450058747854068518125524080630255470050978566196768913629814733249571902805637347984959112810934235080210419063774717337034233162671919224980249107852803329078229237194346774614732607846522223360199059335233730497463540765173701427083036262249527339437441374411123670351105846927485994331760767038789051699480454031411621175363930416143069891168072741996289758245784329231351608769138689628502770895090050989370684859338670099619236737607018434602247443261825892262981085916602936592280127742081682315893928116744349008007262894651634157385951016953871511265448202473191616710734932752016059973682711797990632881540750509064013755970039461764553849856112731264461970579468602067062539704394154918405916750019318756235903533391589554379718056815437427490365920292065142264215100832175364704094806509044286012383125713480191070665755870353856228056726660739305782043145493406804931158841243888314122843479399969939389251517628799889752002108904676240733554146504706839195193368295792832597263506425716995299943181542471027897263052641802012099367385817028617196766410665450960147994608683200958003889260126710806630612998822466634235175246110168833063063279502582657444159531924435948675713973046026306047972410920786174050529444033823011632540585984771264425236601960369050960979950543543320246261162489664230254832313571192410558020651993860029477119885543964261279230453130057697791763167880153743891304804878107866846440338736782346353650783946134969886468643340499766504097168448658095126513625975338971858978444393389933630770543439676880278937358185973842854693223307563788181009287176164071851060800730716079660348808991132035709638044936840645676210494795149534357545906431384498952015332669543719437456337668498264114031504535251919369299814061835513696848322012774635234239143959913331693938966849486781553795094354121034347250819480409386803999962862653876923436879132815192539632301246548266043517061310427182361019471358261649428716241646877491669992529584956626139685977171886254342704025775067089075469457734067137724994175634942161756677362695982862667111347364667189643048366475501516141993177728802460792179835954978101607754097195162355436163946996956169424317098866607832189286538084456487484642508972447856754494846298980154832482236654658736949625928312645308678264883855921126885729872270935250391893375411719813250585660997807169299699680243765739715306527356762305901149028856495055094102781111809223790380230561480810568487969378282576165122506496879273862941301865014258211248735846356014483188904012817126915722280600383799577648209813769783840944629175922939180680512932686797544377528143499539825161146743768845060814333908138029612905519055719992907094124606934457706470765991331368800610884974997291443547809261264845094407306707222463625210273373798417792485390725086081984437369694634268446239712777352720341125206885073311787078895056979210847272139096453792954679268553438598388237350899683285708440408490594521858664005961992009808716571188065960214464227565201187526090463158442266597313198430625761496774866142059395721896540239720851064107064753188592044094550933180867191695791761806392625904302765909245072363660945285901616248949601668131785224334763443201769718097325626782790495111858508519324880254532287922025309501328283204716115626997259736104341167141319962204811576048343613050938031471690123720854310695781632200630806070280895856908735826045776643117529599575797937564789538407466458807252505445348597854093524073846516166693098161788687662265993839022160308698486557730059938985564618177279800959488086291893103195677192405393757063229483358630455195375882964151133683488456627515707633756228988175408019720817675175600241369519592872755881076103817419007435135925698519769323886588215718031169943278749473641018597650276518514155544323454977842501375686740298220395173810276976806293007139393398688854227572448499563554008089934520023667052060835630945360029949574623157672955301208779571199734929953630085803236843755747260238576672953908178994280578456877856425755680081487040772364663897193047809340373942833594116640471489535561376252835571008594969221019132750285133719086094416557202098292479589924754663078273234300348395526658551104562424328221799397444285622283917490718392624661557912190087739499601413225235462142977595924494594174839071507591608869996508224945158682215962551113998804692490843754428296227630095412946892205034757503643374775864393533904085881445833799752582472177306488197256812988714297030942077189956882984502364819240447952722276864435704680047477358305771382921898017355748891317804115118287787287086182953167658052318925264712666505149747297338830236217048921031646679414447812323317552604266219466363209615885416254734845969880317454121095608679691678847163344953544051166149042573120457582051809223259249547897733064850413906403086599864106073483122719712746740307574180247103160275512856065054954120967335097495523706989136961879527589801563009624561157842376700003100420495279057708781363029918917205648382989010287770772326150969754971268489462669579737271758113547300625213587712917204193187294717143122038086576163260040211973398180989883376073244929440610643981106720819971331917317590818993514763699250935812260035387845332184930406218771771608539313540516539690263035175740753035724478915517623115934901767811179036544261685499534263862830670885167257350282260516254241868105317346776792525853295953611465895452912814282390988663540570259371277369507988844945384463134148530752111146900566306821452780761237422520556830887214458646162333861377892126846968979045043341718347164919897810378973832448702051838804765964970251282476964722233295562474998279736972110848811841551616284597671123929574104179767357627800727654780078984115933453982616067360501959178064761994371643467207724367633991436933798180404478954379394078523842585266644492498323557538522893059709108621990615984096950972318228767405690828633224064583554278566405378225155845481804600968185763059758800473647303870483435702403742192121720317795692590959288688857000268844262617504999574084584943861589887323799160616000303589274378141267679496090342795167162028758640833918247576092415437911782293807606299435704622458631281126009530407149312373462925478631072586828054695020291057015604341973368288711575537371618779614421996688073257512175659013994341880648285709464255242083689216975495209909588339279347934033678209326169542374445968684314626704174958477278520915173922144917715154992817963624975011761861954153673827562554622408263919919947422410708029210063579336352239662366300402138902913790867131465525356449489263151900032132597461138079957530980639697165572639448406954910776189132463311261057599305315665264763963352665311944960107848082717402661647203678714886909036542974140331690435945501428951681159966284049456448645377714646287333469669500844766170887383331145612580088652859994500233701278306236406786791964376739504923230342750821079636940492663890048644483494251436077311817796660618031315159147747613877028340571189646657473454332891239239458113284199741174511354680625163965422118534964597715797434129790489745504591092441595234170827855129416938858868091159155410729854069935042350063917043370395763508036162560237882005577499854762530841096457435614048998021210563887646608537685424997374922870435550547104924269894498808969003462611792846400284092802467268143660224041194141815108984554919014138551202011250741156304617810954374554201350741556142480038203958976321394037927416047433778427552403938778315648021629197694406899477603442069756497890737312236031459472807693889791945402914295418942371609710453406965903988348269139055814885958631399756641831363497394065617852113368148087833015357984927008518875256117856972068103139766153904909572858690958337909588412064610997947436344035805713082185869675038337953181245184369430833785024724017348315420252384742665770190713188262148299347259026568956459787072224903656341803139966205726863698685005442934902970785776623506866991078727355426503902450350292521332235750234009458778952871937663098157354949279363008081689413546545465156322245229922937044641066968002753709060401207253965731843448291779085329716995687837659152376546005806294011559745563428898034834945393687307766899492547567928180428726018550124493838235249702175980808772035693943879280693947776560596333261002364347370156416554206599131772354014643842436732823338151739540051245630948045844577972878359164070599863162408971941984902303443625825557350515829549485079610322479935299193681250015422355863391492853200119451038142832723342543861573385916563649905672327605720379461528831660746080058756684289341486102231098629892721056794752099937153164975196194990501987840276784050767364577491419343253520471658153905724828357331167364534909353518882050908558873672665446873707137346702702797313412013506157795497795279346658371260350397204287983110461548832589829687448959855202182518949361773150981929756588039034936201495346133305628860388663366246675052569588494372586442240988635205001272399398043940906676711921610508102054985233065135696831958548711955437750854006753365427171307632155548800785973663856200659588398635185227660327109120395048014953000497638895053711329251809017511482047698910765012844904159574439269355505913955688212895599558573050344889131851952522096972056135332800309687046556702283030938178470134657357725690164209560689581320645857243205068094289035717740643958416423649368315835595490682539432364356323620103944339404496471048301759749634219331608199932639071165254883181331862836683038477722236489312172491145452180065442391033001919021464728473710773139626966084471014798095287285415753267105817669205791007138961491387031263305221518279233734668162517403114449290275262267091798162862438913179773271059748795404382106031292135917800380125886330661759795860210723572946162258393591732224998795657454963351084433450022430955282635604562373753830522088531557000751586253828318029304395506579492392236198294043762520656822422662341573707313943804994002801375411645011175244644191929886760921404003419325846719440633619559427267082988327193457092484238085228236546053381447800780576735915151187195689117097566044525388387807516140890661829689936684412757349044989512650555103128429365235629917496013410041078414244276164172902576762234719948501844999396657756881885416159440547084391405948280724600368891845730289061071572102203753150722210344058480951570649228077080789303758367000010329042946689845409417138221602295793410258993136999225797391703547352980527703242079189535234196763531206068537306474258074328231336881622204367381024308932729803140928112587469535050635793359038741568578941154071724028711983922918954234790503931204980984823925231390049602747627220682534914925647105487738923785460561449801857482743615752265935695213093705235937207888312985153743125433917040650063109778713420949622850638753768476425767976285516547397147594212268741601585202012622751126566952657149363954752370781073065761585744185245182047897787288091690176700153245366949931858043073127638374647711129634199441747553262975444520845431178479210566364688972610685513296620267463011793199512036922093686869748721115027417644513946950649957832340921182219754731879206873029585020285245171426803715541682204907766571659365787068478259486137524210477743012881197487456537741792727382622634114177600290550502255106862008576616353448838094239604953357915941967270053087730853380159423008682342176944429798698791533564464801369292462780107571145806544525016389528493566692556841827272325130203444950765954055429688600072545116865614800596937295989981053154644256172954555194690868137636511421000954243081884530222716997737060829947271808215100567080720176233332006987424510189762811442849424858938155290371107999595370249420730535904269445278332812491389361804595967160314814830547639602855530906124118065628358552696440458559511348359115094947576485181074691609369684518855381390848694231063492257463541984559858332630926528245611534851388563759058926594350465508303305360050128605550440065259157349549103188496022710739850909675024426215908113913070738761385410309134933280785877902252802171104488036514762063145192302592199497020664786808923887932813294495862990255571517472471020710555173876050072899675891863801886756006195774177203622774051930726052120515474590940116912159902909084922296217245800112288772165830779555009881297754401537937202918089878745925058792558949663929545589201253929364051804964335358610246841611031599979290202936476935020092276428489821403600992502042582691882260260179472587840769569288947327925812847876849462859451496173002908086857303160701783499959435615888702823135838189400546613322699590589903703668449384106013115566671010137574798651605647315527422021169059780253758451506010291571456359927250126107621351398372568465890469585948260152068276779934368327211271359722462118177616124836805222525790246979218377274669106638589412412065016878983135755920561725421501607969103669606002657056829402231403955164992776019713036488906785370439119751578571715013547314238231822829159659415229409192181530056920078096340949863623801239878217854722263184686781195080638512729759139101668082781891065804572791397934826037420483881274600901325313546845606294421127228807196352783304077841162866686634040492427865102601227744101440934745012896592022073923339949838458809758935395822711836662033757577631932322289155652349847420732481387029554162958781924627941222556028498994953660718397701265676287851725805798756470749438695730304440226693303871318179761011189037033590931784376000994927050331359841713917472393098392009049599234099390778320734208026641573775704426856143641061045610537016832727674807594544723385815331752999800295119274994862686085289124068883630087843677508634601660452312341388947144842636101236627936930234296594261025239317964016290947212756596266255549787159556295144502893018851535630448842198476159172005159878143221062708409237025215778894387672428121148674335376010394972593311744872625657439190588422603804271958554897445769003147776911872016378764238923560841591916464923262223984187939096599467561036991847436422893095414867096997337453283751432657674853857904777298030640906973671354791679852763951160527092226431139053775890567942809019216109647555365867013560063307299928771650205063548035774507974237765799748374878663222720737588435157061123902344754183693652448311630952028728019382377074729589274390709603413092189427535411862968612022881988119019597968536941917404850084819433257428262968538107192809064885987001919240496573139961922438110431763388767860583683080255543381229149435725512448330966611701074959261649703891673446431133476034705888901585225693473658286138206751877715084791732522552976616503554378208961495264487959816926198971506862344818606248624275679842069929584821946356705273720840299740314614996361031508832818188907312157107846377549775051933450708706758144360042135787052669913030526913245919333619706734114187736825899460431272114771818100283015994000115108071008340893388342430469069500829191892817933144692892404617705204989821705517982148382932851996141483901942874850768402713276148969455335997940133096569998754261755372274209298203304448356533551721606523572964551982277471914303351645235178050851204559856500794993340728710021295049787363397471485218800674947709645929162281625539196722261469219250520501160208523078704539249701003961892021873730490018435929786596299694374083212539388468063968812176145327870499596253384336518333379777662846849129726945173715613908557671720335703698731627452700001505172636388570656694312330376767340691010952070271385167051942290842160840046952288719143583288926302377185921261804382846571892428222915350657164935075063988482656805870912243227016337306032568723330736513745299648002837612229331511115566509544433899027344619413255338811795274726360881888731720737999590198721230023816192571428233807303429063322855049529486739544146250840570581409121319958615785832304825966499065476481638964279909529665791438435777700196273475681424830288187407800749547314967975680921314722029730885310400771262572741775888600144437719683784012381662164965472558087061510881897396603553289861895386036508614368247094977052115837961630093578699450753193082990208900392408168434027763894567053061555903126042710068970062504004351098480325716350643190057187094961272684692314906544196551780041060058967484868423462444943755264208844473366595601935191416469699131072566291539061820033100133302304670620338839759774426439118094312883523360281598205686848409480246120646993266025373295772457674554473431521929936040333462374787160566849259751194878855629914402544774021089627668791007824317672517376146959305668820065005132249904172886176288898745484830184393008641698487623027162217134133143571897172806495451661679417058519620777358165142431118933523203841666551637382921853616517893371495052797545881968691143259749186239118509257799231406504395748822941932979787031855196029642055101975528988169310707747907456960294633252417334398517889566586091067674855711848926596248865508296805491506111477129249737815323683614809976185493766659973337085379461490255219964621262314282331900283612787351985588606832669477759955300002888838808107237503589199786810102655356130432896152264418992785303322538585588286585561474079508947460648738875825317632236631802196487139632450984506588896348618670600415480435028636194723421083975428505238202396523281149534627614336795898772871212596456148668332442628543734313175443408249925324288652018390172156696678921243377279843518063275252577652323441730674830122572016492172114159629623272336559091357422798642404021065545317981381327194329120064610517170500893274749998965982716124729780711999904943148290725780542707723341961719754060929042194003475423558410754551627665197384159955969289931235277038704474970739783780323178090924036992680771787257508056187399165751107581590638119005804693570685431631146421177175354151772385945562165382556183511932712191501941397338959517859788167685985168987310316800479473396825881555641061453585416127771806293132397556665055458753372271582832088752901775900771856758623390297048718285344740207903871867548886975982216308020885705831556729335970345151319714097522309142678331548679695149228411176881498159840854506409866803888312107570534534031720442920439737717540780429269735082747424070669535224267306769830918175048084666426198618299418451727914984772230788422465877971523640074824258099501558972559179230737848999087635341046180034159683458706552467840589082209179483112443140886180731717844854991308477945490883699758087164734791795073021636942763024129463604027810733166434001388692823544292068091144368568568674502968837962674539540544928630141524585042582121979237304249112924626593637820504869794129559148405596753824512187189787397352237171969482007325391531182246696432500984988246655603156884753735507017228027824623756901681049771855863778998043607964173527122068513213102626772412624983814736265007743752270806373560227865782230264286897375669247651535691481068117083030592040170948082440206073119379204670290572559779558057602664077600231825380525896579079321161325275499191769735079969988420550789732958810967987525817514665491494577178416997184522149929513030974365793362540963351658708649620133772295221209009503378504204619541503587308477713555809441668452215124088749391490943420537929486733256178441394372674919781545126306218304937432252875077692589077481595163646821075437154453470698225492609385582518618413273674960662625658739207793084761248140239234251394849688147306944453409041529204365996453230877608555970306285398395726090896093967115870868445764847156697134999294046859479682618180892116832551430130927873920614536089005262515254638814082073406475636199202363715481704919999413737981205476077709753447353405303253754037193582073675661378047429771640337991501837906666533786845731421659064461597366271130303699008150803496893169755784419889404409597770374096777262665953530195987520472217842349082463550467559630980967298520669063319255735404121805683717733930348171042070711336532786267652812447909747923448261212560089279544032227716978353784563976493257633889827099128617070355293703273059315515611377660660268936729932667570708654957563469365313415645600808203413847082658569406898704022015839001737811657554913170781926290451432791651733252930582604916358756944369205315768259069065375661987010414444802063623259192657112804964881745906880382930547861106204593386318283563614397729809909717192406646224041190204149967986063531630804156637999588796531790572026674749558689377098128366516727178216067374143922038733163676591429228365124362372349423128958631693240790105351038980472360917778378417564238155357352113451823901953101786625061197196144264824966720009791021015441905965062411547935611665276663994012054556536720672764644937635404080919781607268540062447983736429908773213650466599320142197070893059586488870464336584943154842249623442057066917798402687667466962512699193856016551576209045065842444503926412474441309855967539644487790295376791289838945958450291486585336373487609667235049408046041133037066824017563778294225372004273973478705656049776291785919454821824756071215790589957846604338298615541158055811428955981419340846455191027354676438990871815357287507063750260695279533131517537035340374568150161961648759852929547377668602028016876035764219092904170565385195420740861270152674308398703056922673242832964438401945175112667198369947850649111392152107435774268374491533971937550929528383006706848094337192772348446825044985012949645502975206215294790023635259401460785951896679281462555513409854678832910055943986547698324792366135325960801148808897543307805242007785672271651221316098362670412420793095180020725183317093108587374330780404899305865698589009361552892089350109900834125709067824468932041661351330631486033907795344663414411553871305610254290068820190552391680234917511617530916042669011658896697577678826544860915026775163479784458378587664120704040648190307352892030883045126375525523177433675074274084395144541155469848326628233455126558044713769651536528343010925291645805675475478557029995083301130984479087602901602739257022694361422357810732594294228879839648068459374845624052363102901117797721810632835616833790335344799157834785044148429068305893660134585761422972035051646373390403079692272400893245764698708151346521212946556222453032094185711914235803396531823219776536607711100700418470711682106085390033557894843550259371460743809863575781296487463897103885693403474352897861974782147648253267316645676792149356127762828817019861065131311203648606921045144818090589192081012690150583303594183632407761517458961315667128827677045806837438570434326621167153559924414601639016027766059850076420338704764371191210402622810012750760568589749570219242707600205448664272178362013488280652849394550968618887226242717606523717293057154972233900906447812141907986403560387044069770938794283977029845549665588682114675085507070309868289697695689792080219717058971941028186929432434532397489549512484834552845774690229399828427149056223797553648400672481628861859957804439046839331807148914629695114311578667218482036370961815875180474899523111239907252924646981109351918937979041474079482127245103266475597301863751519707512892051727312251668980433847574116842542915787302319582277582384269050705131206250438486219330822817163096852408283859480693709538204791587346562209485052045095361908425933753751366003806741651539971812971859075883101472507202760309997203781942076065129269695210948580503012129070263039273677026983015294574472663347851275314351357434859619118081735927989897299337479032824463312586732434831853822996898310761349209093482371767782498768707043280703825762772799330415493535952213289727510159680509110084938608776384059090182691842552995953191067979772816094987971741445396868376895352989667672068773211998773576218255058998530700442567367935657501812418794051615402137962793944997246818509075943484751182926861470984984813150542267404882194347741770260545455762526032923731398407869477246945996924111140237908803426355706502107222150973959599838411080867065183747516309573207085289718005086947766927739153213982785832065145303736902417179884303952229999248259466460190770143868851030193647646279973718821274577524447633034172248503027445780085922224976554580672851254797016522517317277293511056869785415551922722558722817218171564664297157638661133146384537215123395385013185890028579373928209780222839619396231028989399829224450488827825299287327647511318718907753395414119486817180146081917896352426351331561055022697664301191287285691504862446023132762321949171017285047287226360333925123556473434303193549962116549738189564301253814588963643739780642597534150546755564629232250921210181014401176938736943568403013012313976268026872493070609745176874390722661818823812733252122468042266573429641907072013824943031419373104723057480739280981663024882980558309593682481146531473834967144852570029912347450777061013297454018458685051561569114119700471891782191925228249584746329917189493698848792107444311168916849758023114101567096035823187525573809070360429692942738111387861056790120714428215375537793077641052591667292187980925518353471926175684594788637507109656362115935824932128055901846637200438272167942155486334356785189687002706369882996964679245718084639047697490369114923821152965474973001148554874069469869053362814515292859145221980929609317951911808696742126971709395246509289588211146221017535976747518691969374962334426991112430190800871806655588644059999682747104097910140850936428046407779884971195632660566015692933487497239526949070723863870995354047820046923443054277643333130879674431384718699374239701286041944303240383043958680987291916907079703687718785151539130798732565724786285027884202165427522864375450946130929777235979253953381338248943501164509079468417611729659770135875729259489802683708538929826548153034879832093454591246459934073844386896063961769291872919600683933646343527094257717320120144274981102722582614549180778411294606067388670105117401007911437813689140242617891935676261169040953391815488504969727394875201136558293716896485646684104464713293868583226414050989975022871250247556157227303756263954882049207725565785992340507937064935069245145769882788927247110224816398002491996451014127169279157484970727886500853824577389828718082067751668765352987653202666186028481617321666387855873696797189802594436294786912630111115521075104334647562089629095458644606690998310496805944310507090661212608948132595115765250519267368595947397952486371095379028529511564075113362458499599713893654244741134441642284966179988371223228271570031698732337373532766117421921807572727311547475929691467223256292151648781053917039229372151024381495904247287578189826835689991148305455271513221993119011985514003008787412897003721435388559709508409648234038716225618707232450919370519383644006146882229858688903211014483289780572946140392873301445422109856071397554281041810830899435375192509154174773356886482070156268161060774274667580236371978878262634290558508029886331190058101943123907912683544565365645368172669517713241945614807944567259442641102348113048880108155443742749997784699460188187851157921529679324296544130506459888725933381803014913613073404286092207979498222236026281099226984625645354771044954441874843488487418566963424034429027471922065186374429522685568767011452402078134387303409553607925290803415087958465777868216883416102646804261210412219735548356469446473085865565846568681080430650050780266245739651857041298079693889884783828914798927334385292369737080951356041568680169773276524964465001432234696633991751884538501030161566647043393555857108268521373388417017024870270319996742598691460390800076428594759262480259007187486683512782870494047366839186999638497160308886044712282812620636640396514337853086244028015591094409707307087265028806384297093699875835020979483272161325704282872147431389923279075012650851410413283036616144160569053943094693020745811430342707010274048272794872300752729338521454612375624236721574367656671256560516431466830364706622498950354296032766902503665940665248455199943542799458490371991282549308953607485475337984061171306219522081899748406901525789075400285194946082278950598912166687933436898919656474442275573913615926257884417259860064025101846004386183027374817134148977222324032341476607220433603656171877425750080732105366670631600806800414057270403573430390873093064655180452604555044926678534055125689606221560739724228916575473086387710842996225535170666542690044993988205141053559659108008755155558955390790942036844906240903094784426497120580563045105401280337273605359085297354525333230670337395101998304475916200816994805424991062840268017670301133518111920015376912580706487676875851096771906791561437139316940749988851434679352301506035962398046234523306008284438302892054608535002849482726078093449013505477908721733805129736949500638169273152633652490416892456524349267449351063899969377616923064258805200990500978784303755258418444772607215988472922483822436483166211717132983105463364355123472308530145618616079601669742158942687677329237636901059344159353743906284288893613867770957498281911020451156015804087442493740697293995255364287899607533342582460346295422328120143673874387834426980903381160909010789045354320856703563122097203402960983221241906011030640468849395828323664960049611477404276006518892788534458620617907275454073075375426606951112323123481386531434304559934226753976728280038216880641619266309935862368036957818111759855397288195832134077357941732067243498757149021538878567242473522349275246732512945317833187837736779619312768559678991571863561739252774193909613058092844490522579873008951975536442553473072902304107586700774354013881238696131672148271894170290415815992854726736233933192480679231029259420334960576035733563972937384413948204822128767320021744770575562148503015667010622680897863626381054827143378589428991044885977613271434463232231368277859104201652972220462793415700442394696966868460009076191297964337653904084027138011862410094254539192225849836643628317255398864839139876911705260574841972899217261130362777191925147480668935650578050193788112683958224460590309928484276398325512632786659464137905515466371680008935723020404956778477748153218190619576014428339709401183613184746182944813739065216389513731445421120053518166430875759089895036096675561820568220445718197879624317432026859066883293484572838709133743302969108220619626277344616488163460685183628806737576421334884212290495266818931091025138960329986337608308525220270716477391102320623310920585367704490497958191857458528542166637124513184458077184306985129137044147114985166124506178732924191545406192077798883777799944549363366434086995392047883453159948104999854422073708961905572122793186984472560932026163600131945938983795077716194684919409677758688935267798521120436709495914514283893385835423559845652871204060542598229126335544940476720557303075505136195363108994347879955279821184663165696304204403852557095780583309772129348126667871055828905324843981483516981681877339345312958530119645328444337647332771120414419854479470217417121190128130658478315925716607606360550166526159731517579992569829489267959886017092236581277820241364839572975180189562336543218609972364739229590171020486063116869018501843000224377741855331971723047710884856960333573480941293561529554002667138867718565765134937388927260047466351903940347978269544157537326916448196401065469571704505260505234935084210190708302925084293923485195157453058098580886391679738859978616144833661972747113694406963196332229552409577561180609180544052118333576544358137900919144566686411874470017180098173943455985005920182794913537575991351510827982098971445615817460698173968294957803394364494458957126017768485601178310130416202625592822925255231975898589012668305394819059553905696110939842984232263870949301167076245094480397949623586853380453744702291430056785258648615524942087306537406235843950062166654740507740455153092227558503474623611478185291370870922245191993997228784011335332776978771559719639801097902263555600642015022544647632217655352822524253240769677906155569552499445994114005506992066074475214435339403808248281579486730337309527071232463536964294475397581999113270683902954246017500503717862209373838515138081832156050962197567557022057586092748971222305314587368173163942649511469853428206835724518911576233968658019802878325732261539099686696121654060072861715552921877997779146325194651574551657722414256775581415598128876259049340773209557061519988227210881878239541013021460798793762276258150085856147507083333882923936992335583073362020389845570306614521754779162328406110234148988283077695452767080512083833274299139270162060859813297170442308230475839635079567162918446906205833437864435876597583095448715045686869071519890826971322725691949224716337028083573400524982908366446205693058705023980791482572817762008156070638238082881567961190444888280573208285325698950614751029267428201750309546649036901703854488714596582734368726169843861484766883192536889575438989948625182954753510979798727805420204944452040810531471824204159682793444757063825252976261386576095266194627620294442648106088552033903013649405423712789277994300337447412899732074760489024796952603184438524346675659280221663492151667377962887536560740631817504098783513194840265426465647796696745734627906832453569843309714713057627312783588324435339864539689270680729806640417048063883033605406024062744673370947369766168110811840551476157371048610495607175584470530256729384958535820437886071516380125531099738332391529428293736212403033060319043593116170150591704390239382489409030872643582341599734930096600024785628041967657015952495456855969959700205870066126103050573461203162474818180985285625117320292223331674693841992481261071136322489699938723195713155971617796174551518990813894771712691287475958056551338902199613894168056107363537502363105030365968888801499967018187901748179089505881751948275001720602615015989818078869973034042088036522470237652040447102255738798893680921605351234580253052066306435333124437517948404190541346713324413544388377801993032884226637504218157920919388325626810538783153618355774210279940026378843034545268775815904521136639216936314555885660234981467391649409023648625726777738810764301454149033057256861593465030455345153184546138383159408267823466212408400586199734834909066045371571666018708053370310675112113488961211153633917288394002828556149978069434140674776098407625648758900457220430476182200273529533179975855772345124048179653309346149314362314857850183319318248066448572554275842495818974520471554802835492338489757752652102059605190685355235378631736661570420189472605149961882461356609317532422364096004048540466574662633167825450229831701893938208233998561919555770665511216193134778566212809860407334720291004972762878901744401638315118878206508334620239813890635193051512996014849928498442346842932162470741847338766600512998198783464862064467550284292231249633212699415371306032984187550452289748346971102000969411392921635825086117517716395243646518712128575537056348803809294908507141445561632364452050468539170918107697211453500285310802292210561832773604573601213417613933910452895927239750519681297887465721375517135832346908441486260382568451469813582657403389286821036588890838681419977012112714128234444653162482895916278647859995844165526803227058783647282932383488919650133524752352783071739427803926127122504632450903393524990179237264094442414510503192015945303915199427039151183658980352264259217239236508337551030627970622605636456718359544195269574836498815311034752422543196810984677418941890529957464099560465179391899155354842349269488560794269335513751002135433139481439115035102964728866161928258288965327437509476703210923689154405143609000221509997553866958973820665082877407544503131499856380637150502728462736004484865792764248621549321532082276358621247190324382893694946202584657315504646443075682293486680997243572586813725876838810498380960737175879530857963888429347401963142276879156732703808378923688913211188195649464768147283640996393928897517503789905440251110883111402962166943225238077883542903193622234025481821511197745900636708050438836141699983748325210361328972718288822152188907537308295003367621576647298463000513257734863938293728601729848230551455069083841748518227388252352554635577306733051120273318516392282019076243202663973333425493757424977050622468839255642278372645943765313797718874343782220390007802727338820072015793301876627216908329299870312904981363894327833859805518719644419343224050974683199905960814748595087000255087284767827929019120642582040653285850928252934796632566465453594385909653112773866305470643908695441776928789936478970250639032991519703915111403587649570003839677732592365990000953860803647071995324280211741977015333242780208958524758153107882682340030924789944343015486459839153210347758856056219644380732607083518663873443807070503384041140732187265439919980377341670982598625917844355027577171656046194825078944836391560064095436128972874977495952306772345112902023806306005314073631960080080803533753486419606668656004699828323580378532658539481909999976356191939272541968542925415714903072639363097384258105787941281187345600864710348421336819868724547955760846129096872508131445251423211933168662382028577796068787364537520405951626610602974561168344432877338902180274942020535775686347318169235780299189927111541731544665644522261323688162662193893432389832574993617652036989396773332241159179185732332522907976415813041625259785587848761146321500484473028051996154198133391563513787226379506991752898297806564653263433771636184011994767363782800586416981020675176679959032396297209328030003461161976729112717096402157932483315760218410542654557281736179220025989149464532375560689752612962749418108798981504694909890070061806323715965490103920240116766526410862922543901449715476075538134515595894987162669090769865602137830403600826391714229940041340471848080505955485213209568746404471155249981701640040445380469119691706488383162817000877782582248366009689956537147887257132823316134804184467201538671819953117490684180911833567490411652934841099959361469323095297621602732228411025342428774482321162667757060410690967529846126820280085213639909300167763267669949148481462765052720473089917489147046258683293473373615371717624268381611226386581963539839508203124014994792115568589728431334657461820648434557348167707440580676294021144627393602902532741709067406908544597181841758106320852405724995081278344870633619280315013565435604359371027450735928622888947886100309053364846508919579681619630004578536429582171848202372149567583297774645349014078697510043827936878386278468049458038431147109948159155551001322513021533980611842566646385647572733014054921993134294470981535518578236003647708495972471510788440207376350409672922657879778698506332662857218893301310227273912435483260458558648734548336300357101355717073234970712332096239170085624275270841447862930772962891110848202907717818214323445247270299527648927404084769329915252253572097647990702802061795616723486620218451024841325048782031248031139632041514987036741344418237211662994555260159403710682280828299700505452861795716388535180529432661883655578864667148915414423642228284944566402790237932008519980746092592823393894313664707169201682304711603760671361926865445412157425931748226762874527764308733436441469189444086067027635016734830881269161039051845707414926365428779837246748642352774934321321483142306952065709502530560756258062893970000565251597903735561815098507303498655628818789078120257531031068159999014640314976529496381847289461883610350717034172874106642437916722897845421376700182286925338529063929317439461253450123130163154845944373620435778753226337742292626566724426486329624178114076325201395874720278977080266278054245398905956804696268092385682811097155391572453569375422400547125839690121455989360803710298924098954505444632348049259429868651807460276482393366629283595991384417372789087397753226781984138877097174501359955287374959558847989373654197410409138489278338837562850707081505246784251721028679108804845277454648182186654353740791600426927749086431211202593110803563983624340497483364589136112825993983458309373965127006422889555583246763465258856515392709092129168045157273237848597775384820760619063990297648463911792231021891694107335981226865018126028460013415161135702756141864227584777925735476767961310680900954874587401036447781763280559071077959863118731258419571605678489090872293940436607576516927775380101994140889408031450542962520165728393408703790898172123234912680366291947952267539630265879300890298580077707010272215423832860781803537322147951800071917011802332161679789732314729635625554129521701434651290689163159618438629098665144939037016776516770958464070601750946660000337631275002546421486054755602234566552562587513099586194082824646864540111177061674640948146814705739835743134079237088397932016458408215891748693675378606556865307332357270120147696545626286938298605850078324944038043149053893060200289528174468220597455539837665036655539605804114984323123952720866838945312051711305931118833219051685152897828661349316726718595601562729576999221320195213287323356973055909701373444916587507633400289426817861236577993006294681763439509371506851180127700117377275897977164806558129352138294651428334810786475116247028288256891706106497002068778527113141906433770647206584763007652735880238612270484485728989977967726548101445715249355715958948982557394663686148867714985225979235406200395508585464973357004562824746701851204274487406962130947011047496424256660356674515781794838864911178443232657488913324570747959643184628394569514478861472222820060161107336682080812767270783257708712729153094656649483247064090551793690642790862970403317008165873320944914359643599427250104720697228643545446823229921804427204642951249321890426565396718162658981562510444665473451606872252264002994063713610297742562742589209648843062521174938727945186814454094112208304884463859400771153786695511169271276400503708729965262795020561787390158403052346400876886406668775241406504310019490922550825731712776194701563734913897810098390788538595790518481883566295992798203198515335077309888263949107984952356931922507700694841588716978662940511283102985342597601272771581419157011562097890194820747493494571294005444804991314110134778587986086822046415410069329798166428121138308537808839179074668716604860514866659630896889666197499478228406200681657547627041255428875791135254383957765807034502653652710846193138568847440107123084369933246641376265097920827089617500414808954480203418637835185569876685122219985882908600125414541805728857129036948467313834261021112927358038606097932509707895070694373987675075534256861460261636454822712015838743553557187421263162863587245434964639511273840600926549476265435136591497820081536935252942113669615651971522034659203394025043858865739781847437281259272237922688288568113238279927063741719897576703981990296524660943019669281505652776829794777255799439044397888640788972958355855911415690635389130025288780489344307564239725823691208938878813449504420588949098185535494794520646355998564904930566052600875466950471973953400573984587349406638216653125130676767520526999308431925916177103623003464929576433834649259887342533460176800121860116292918014298524527183235619733365264557604767670316204070705423213258810443091012276358081600012603022638154712137324343022542887101247592043743452363386981340664139661069745087230132883147718785209582898513344004122009823450639917122673507341691503771383760617723994636311991379761616825977922309151754920296021461509065894927413813597580660446939517294014657763313919093761766626466374698187702790394208474818944587578541252467777523051537275292287038953440912991266888608023180096400003133126885394327444139670707384046068961055346230685629799997260566603911298092411519785844876647680702414888056778825646927110053437776919876284110804409430455587505486607711266715283209015928511580778748340384161069657303393227908666140591245304060396234327224857950803052878961662530254451111067314562373023194187969746278846487543814843517909768110402909396244060758942559920807584639386260003941071276203961396877440262929478641922152057865150772859275129658283762473055676114624113565076897516092004047784042466600631899434363557852514581107733145519265869902389655627992809342983257713971970797508053398709551614783792790863207711626622621748729275959680236036846110811822053174830592158737147724302550590927733346671209421228746336040991335939596356740580382091224296911163517967496552350836987013072448977936812803688938522334367165060213284583831626526973466689393934949174387703967127188781958418380751530434601930440747120238303338996390892736735200016923679364886444179470338317711128778472183591518677189984480137045363432990154018941965065572834423728353436841627648324677797468571442079514115173116673368951890107920545340961248723627872997453002837671010577971897192355288103244816003571678909418431221669438575055602472465909163372623472158819637431301851690069254252437776001336706425523163766404752141335842605197279908140619024252720504198926252698478542623968412701274975309768666787061463339740876388916338942084485238899543235668672617788425743072530699794703725807055889524002404691726993692284129305466301100954518942489598453450872547289845807622731603916941199188795832726540388954935846512452397546032792635563729068392341493197381272090255509906514252510145905016758850009342641026535217983230459953722822986294246901329835389578230981975524469234412328615419251730055985915954563763847658972579393417078682398435792796218716783816329588568422565843514833501777291093424714924425909125787623390399303625534555973968548973722855359799735881178901536167539872609002222452574899888531670882049539867371615769680186022452860105660618312868310044199317677919271798786886199659936463435582153498503941482304247142950369932126718230328995090660112928356143508322470393406846595949919653293255919413970959893701011631038482323817240861533522489582609784944129141032477327930213917442288396331992530705109201530049011117248889236792050739602439865903995062022369209302269640852424176837101913102348785086003479843915526742590796749149093189302997860053177454227577534115618034669714942544857365444565892811328424340369923439792107108940670743617265736812684400495733960848517812763669379539398633904721525297868424400666195232841182738727556800253368704317063321222871510070817811347152831548289996211743150766850500395148935997527849794554862136948658117478047338597747931895099401846160233333928217127222428698005455130836033050341358831128929783513069430512728143106010084649645814802270136261471807587305828776435680854935135005691558195706840921483924256281542450045648588013447408939367719051884950498420826936849754661620337933152023642629912433783988141602579222381662051066742844620395394957556190645498161484828016597529188916126600153701405585044630730242968329371396308437311253215196426391954593390610968585384311728197646001073557287072307070411857550832764850013970815306176928861134134973042002558761932084339860162201670406933200842680692392092628808980807305065984531640929482656255651778074305597770278409213098989736515401508274147561836939639001290062866503978932854113879706328094874599226599527551433232570489734436151265830429634244666311487804319205158171344445789198820968294497824060214482496500807481908200159684978433824389203497555356783950681394463046810755347077365182548658464764355013796574765331865194569462708105514129918970958973000683322873435162726743024834920941690657422536340087191949658473782001887481697133033174851734168578343133321116756575889909000064281271924374962635343553547188123739169382385430794004867495377686378052386426840365552860683254905655797585048812689983965612610217314653939929142482968395337187949810788446792463832693471156670544114839773651604246257818921428676611401953515037324472588035994003064369033176551994709173658122489566055589484313219637243517240925369167244257777101294189466797646884766587567235307578368407356034361299286368123128688536108191207476172130326635366150145057798804385810368386383792910826470699276276489936959047907220561064599721157251149464081499098065835923897336218148619916650454061524174050223239759178760050670190380660370642840868003779051940762974418014916817923343919515125085464244155485594168772565339818518456837386860920588409269438222446052066700966687235634669525759043942850943435595011916535451523662350882596949572503937417179289838039506835775813603795475613295104400895431311286765346465892583233318703217598697595249813189735982067162316907106005251525909381484767769852941494993551900412731855338313597080365812842721272196592674988244882682148585126922335892463550984131144637489400378329491322284878692370868475189966355970019473556488075092246789085763205585742760067285637268958806859686214600328220350377853114434511556765929952231605473559213375855441745237336039169805740214073215283594370931859907086822528328093565890549608439119417065697798258919764213190143232181286944587025976360275426850864748512548112074238402773628710136179337776282072241644028216974666142928380764356028053506221999260093783995490814931638640619611597867870431467624408641737649448786724344842252652548800182309540847220306761550513669226006194837854290363641853281602680011067469977292028611868465064376541631670252242544316718526435918109144270819177851799465008706924148415257007573692893383166600916878202039368318487065932345720201290022339168293960906272253376547120353926410871928127788255873639780037734289923044403909366329709318627677390372187366675318761216532284018825246431275414326176320438339126476361456664623916533627880060676971713061863492906911583795897305879356621572965995818475811689477016277465653217288589004202425290999190207705391562141397792483967990801559787655886231131914228216893036914152463022793965941803613634587050001577213018191654502114479611218804152692751514287768299192565156563382462244566280582191088025699970117985429037274043684858117712166762921084714987905067898339284625874115771283297353547458399916525770141452080840801136687374730517599609756816809582831747842742995432356597638325739472676443107061108820600958319089894873139508030559205835381200904247116813097530769904441801335071424102315463208470478638350937837291304311182520829849352186298801106690262774145750691080081076550691692908853732780864079502506276528653340925937457865224332224226177395678719205257747387172211363557729153893188247984598576812786200205817522281759622322164706102447848739618717927460536536266332841804264906583972157447518176339204717125984693201634837428940685947253777020789705186558937516727551109568471668896511352070254518629086234409206599592095188355715488593842966085330341947511008583233512636185474031802548109716751576709646868710616440668357976342174456891412076815864183268883239979200700281798008498267846739301082681849953788894403206600304038608192610322738474676595556978835903308146927869444349031892571356004903583176930101398602115181970439586893891121019965955564796353603974397004872576868892188447203985803316441162255391075220288248226122928857852362763046989883579569950523760520006487961640308935868811822766682973570735197358690037128149163985550677273562002407890563433978777886124353579626421378258327844760327249526922350074574103738598531751814055337802449894547306765500983935588575432036304157252573793383400153057063994178613988405757511213306519687453085954344077417530424909737625858985848270835804479899442140919021155719995965164325539005472010658423816974480251200124781774508905085238877365129826692394049994132037185856617085470114278229565961129895955261233145311645423114309666639902572395387396053576807587792707479738339835142728347869621486087575641868547101425454692230894960509519609108248173850650199395458280143676095191415504131579626376683476898248247794626956929732624580858962344034412742761622515594694762870829652631174064591720669346412020674369125482894909089230225730631840567274025736881083649379302310321339246635921486522732125116981051244778424610102012618431618699027978889069232387346264134610502077378008792999304711551734103235057473784372566044916172131955837299166236246021475205794687858471147329743830035333383570440772282454521591523298869210395888090500500773525600674548806711025003303379815046093772620199202019084782902170219135500511083926344864022132487711515144906070512717327608160219931242773750956758063685853201599565745437507340049392129776711378665606579178402313770078443469278089282020562659681333861273325669604708736784873500923350252490834250077325464375308082419575972102758376660964649389794343551724615857910192711680798444657477856286823329750996144459529382210509911472810874128083403203896082543169294671454276103833037656048634064992664360389133367052542221597756124737877421095521107395076858787287640670394603976104206469435689218431891136344295971890556109558724739877223252290259747750864891519870314729814277970926242546266775632222271531381953643619298666104305206402265312687024670926561542915339102885618718849875679722569977212751118111736988505442964053216381832600536482979169200186605527633907577667015421215026621628390337480831414894600019894449018500169993131975652301942255449556990947827780155024595740842640156936658463150843094358837541204494721187180446479633021847177463530684903950296035695351461298676004664493510154581577634167805297077424916662995617000942130639236572414871196636466321300576577982721220152751372499582179976598951929260883120506695961186480338952327506460232512138067267169232457210924021634620631076327917509533237107209437576892115878538173858479732354305044159511581051693061826346276979503146809156611396257283890659006562464038022738215497143543783224668406683522797789948567835480492794860617663233916028331306208134334356451057297448240790103913331593791833931378694065701830975538075841945327295040765174472911807245313572681276223939204536747033259062627413396628541470058249000802031693251347327233207625912866112356099231555107737721100051451182922042527218922881993731000607860849275512514099768407608074629213217847120251636285467536539606738920771404187793460673452655439422595574125303094899839461855516236793415721157858470136379902878074065418868532555706732945751841920904178309172291585564282863515175987485163108081219370253979670738600502440540329625105636892082305310212504607876928687174386486142084100513134980697403302246186318577698427037757623226068999779584088750288711684986283171950340780224559399501513982200747737003667633540245512551706490684821723923517089132217630030390927648904255058332297507756002634720487213954712564844743397517005926197898007297127797571527902923388719265573960611583442701390099934578455006727548068258218108828068729578604663286769352219499438650800825740218155603144068970532290470970055383069319762920540708050539427225256450679841571975344712581489564884732201369435111006158957576122623291243550549336558507277482003328273518916269163887983502813769619038576120449538707742768347090766916994589942431260561372499194757376063547001874466670029094346330568695285076308407961585542870548343802333986179980774387773574088621772159116741434730016733052007538819142987532260664417845205873033017809489369216439140573906400103834354411443029256379779275619342205405199863332588058853165990315921998877946878445962664771404746267495757569865894016629053830018161465172454757943144628913341104102613781135725743869644724389957077659257210946400932563216100005796805402316650549434153193312538116133885208202903115496007211350756320635080750389647177696520988681995640666746785733809462173253192011744025023652995082736312303776316639630223704805535038721256728746102726979445842993486649527431796706210350574327920601398110785153517630530110350966239652928155393151160259927396997759489240406294674687402035924920643788514826687863849766093782040592780983361932507103547245208731437574072529596189306094367474652889214870410411053724425907251107568065698482384502162946311043918003187435757073823198229957227720840682619284825684889461411718575391189217678466091319564989840920929660868289617388206675090600218837401538592242356456209449668553253375655685786072225835212213141882140153536701567023819914764572914223226690257791039943903945488338695014072403612993118072952433373410751642769618981319839721258040863950006232476605544438238941949951585933760764284873284736159646938512995804714229371818244147544450499872524586693024012094289888324225882640991239104460837629919815952517806823439345213238081262868493582101866796263948986499397574070766443919554495099232428698785574972984467521731493465694867534195737974424588047501472020292038878952773909750215739109462789977211263959041731158318098738730603077375142121924339022150196421324554025889505181732914240671533589611664808883742747435651141194881344671483773565382519744772433453262462455686534280319045440424311930922306011423310923427871628429775317859861749596152240921955943824042197194824528107377956171421704047986555621374709482669058103714298896166160893385649962375294003600859153682538771402486951897824020659810568278980943450179727359209413633933159474680620937478030957528112390391597071495379161755684609525981783402440232382573700211887696145899852424644986099202095254039559609683044101490281932703850040688804288305487748272185701340403452224769041676691837083698313518131420008018597667037335946041419894149724779606314549343193687663340867260668967537852228314555026554035450771252652973927950398050264836393042800536729891727261560113852903015064282709973251483780005747315187755003441063319496692298650813500758317824685332175145471799192929137970794498286517344347351506250269495296148644527486656260187912024786162916097169000472725764539308485440859226053865124770212036154501269519541472590976302441188913053544602196485895939783052517705919400415953076738483254470737214386373658439331846379490114982187305514815181317016154922830208264611561864463806853499815245574196534940499005704013384022200379856800103636827107421940432571020879027434755930587521228579891483468035087544087524011929529137781042708426827248283243037848427981536189916712887130924446618073307735686149194735173763597268711229621637885709135966455173140695343622464642755056488880988768416059086470088377189465556037385861413785124046773810790147996489647739286660849451305356457962585236929911938453978794751685563477411599039886892023973224734795066764869098528089139078186658538538405176830702908714838427146751614435322568145608130631210912823933256950522872574774488373386316949058100239905635959200668975344388191523972289636807803542500470052959353212298905759958549559968824969657448418903514901130708625913213045031100505813150360721428445922925430588255461720775708177379580635859698193720629415619001903061018102598035669427956286903400241995850573737213659957827584162174710286556655941160310020033310568372320662417377361589508752785221005157727935463544663343453469611312009557932401524980705479632825812078922706166703549527915029342033898142178843849298011651903867184523763832086690826536389036067182286349428182381514209870085598191456956136251834064608191900055924941335851358020917007029150384998613229462189665178328562358523646426214305328941012283432416385215665534327564619939922093818481124091915402998922951569690327771061714797365730529396307477043353753111235915238061213475481657061196889134667351796122234488289009771024315393277370717557304844631462444569906365493924543390035610308093263681258011475361681267158417660611107903449992910006552911033936954481972273814259232172489672700506470697345133741110571539592472768536608735628516955096431311027629028343789128352901830572093810479308271386987913300494022133264538363083576318649441478649312899070307239449750429024909281846454820824208658549421694567967148967359256097394667724254647868236741194592023099500345038619425506581096868902590930542035444319652799667108797596054970945674870933961147487621588524016827991719781818117190780089680360528991041070081798892790242553836882113608249169815456768929295962842824968522417378139785509109239130801019899834301350250707925060681240990804703872717651552905664376948985498412317316819489700065598086321565320387324680026598825554459121745372547612675216562184185254350534169376442018117583385774769014153199916565864680614613053122985095136249071981255745323576594560111483826707961307110677956740930469788982204588235859644997531341088936300108268319979382927271199672105674671212476727454951996327937082101465237168550047489029723938912659394949267630002155655429253047941871567890271194713510974764320275861093811091027365043545612906394501816817003359733046117211402064614596285468048331367012850193617690553375211819750060263934543839523064751310990806735687718239894826266431700809357070840623953694703822205461229078449274219214213171494260636432641470000713244214924642297838288799737333906534988809638518585320944657583962679965038957818857244140981996608476138018391609997680889306675178184464155238848425049588183651484544793690037019338374125467991278594361978345298704488038871879428630194872353498175098583541316395593496249325087329336990060817260534285455968403188026848681246636542024315832916844258826745522246569855320527923606399511314346850551875948591879561168416009383859417901446185185076664070765077998460319543756983860142611114378265651233651658459503604707120422114196932500174457550321686750246008556962818017593382426113501190081461183592381134033405778471051296832802448265213196532186794326023010129755990151218815513641460922537095392434038645658917215807056001913914080567217494682545644681912462155854469721019892919436708309048449173560403356005544145555596768721182109366786474734748424365214239172829140534198253752186186901519196987156120637958512069775798566787390344023787863626943005653422069563612998381323376544009344910419371998326428373929997315789454462848296708145075670454221732896389400648747290335244863448918013752234108630177969528163062384739251077239424566393567511513686331929463619489348646418957311933796440681991335071460532312830030076859313097041566784390095771064617968214443841342181280255701374902119319198593987302908785541466615217088029162553530699270737948686887000877042574715601848070731416343485705108087628106322573556347289218480743467687224675437781709924042411013163237133506198912081903393175443151893027703997231759050439746890660206460224831955686595918224045756743754830175411293658132497945355133446336399709713639557479691779003984768101939796791652790706250077550753335772289529734336201270523731795637130947564329518901267455799213700586089722003603443313539001150206422187966512027919689718672998758828254223420890017648336246348695097007839281229575797033004158824307502698109812468462457204718236686674784813477661998694327182311164584800108654574681764261830344805916039047947309437377932053344879503604398382836042791283471651585117986074040849512868239601394277625845375909358037649231271818941411556822477453516085609129181840365247012661805877589742997784352479508775976885847109809281123354277766370111886257711922170583994921553356315269962544167067921836314931746946705824314700448057933617561644342447490664148067832572503536301829548620304378691686126138183408316128687765290095945395654570691273858344844938256867883353673626647921106970572751264085288799053755583441580327458616549658684547359886745046906361545280834552121527451832030011920856147806788540751307873160750629093683798331605688820170353947775302671135936585719041346250558435269640155737783137311495047735877265545866453946557751919953827553502226610899857122516807852374699241581989431614072998412294112717043530732758110237513130644918741563938931613535834530926458760264374498763374255976219508242323338343095051552437463567819552605787611660965753744120091511075791509346190426300914872016318359825956044375888848585141397611216369634886258613558325303519817283444727915647134239464250515154574219726996914076136414874483428673662700406294081662882004848972431615107687461401761920541671661881999544624490799430658738287923282011707355349512753582317867080912078056141478127807357936661269077598435334611501627508385481420014440378209630604920110039988331174096618773545772031057761382011017619298578883690367061459300818410092429745867492996607476856401615168492015658393016206856988749037336981252597049963607952035896365319247261074019622856356941355015651890576239701765852928809465073215088792622696862571221121189345604421985526384072500671000321007226113018699669905955402048951157684359068160278856946601353768796233029281233102317024663240501575490372078109364579901721170525012647199698444162377422149518137346543596791034731938335471502665944261335234521643347111166822670115205713872332366237224618593925718832078584760192305805109883542467074683030090987072898459187906013163167809125693880970787956005888353197609455478433726295149816332640167956685014594249171819639273724642825987301379972753801102573192436751176888051579685724250424267759330715165591404620889314059916543887512810998388683149024037306770753409457802975853323152569881630188029379263633697730695701854639899928635740574955583048045101626117532677685834542642406495287045453416729663102356715246412967550659467205892358805314744222798348141993143008652114961969471626856716444174008479109974459005256751592552356089683654093305356580653191030804991767296439918586341893166650070287195094398495608954513445566356809517707537697253752198203305123304913861520038626471097716873883422550748377359570021617876627041145116434442104754227243197572635591387435734702417263609406684821992000523151197974910466995494362891122715532135771684913793127297687403062619857474521910867956422599936084607150617971099916127546493525964016578684119683808352855377959477203136108659518096886898644657895653818397542027856809958909971875755389899506343193689553641980398408472616386827732635349252573944540560520708923187955694086189361129871542570014885259468803519547382375192340281047467572217406739359611294309447506933440044947854854821260385442037768376241668728662014049413598038190014289727014206599570192213185855486172919837065720912400167214811668715899669920509159474444927201995814169932868749004182063901758272262469201317582827574200426086642676547724902426032177615548360104825901417177467108025838891320427814208817994036767280458669706023718303681207159640452818224570724303046393571164108507482528686670236136653161736817157506615896194870352640493769370938421988097510692847621978808707685345613463009256559717430185736768016057662236393187613068819007236243134473938613402073935754337212945265893303353967852638307629596299302831134632933673178588839813237558224365136374293678198141304350667490925621213904717986369037790879995065387635394999018215392867164270661841466600724820279622315197729833359332278163022437044067408292183743907510658509751667061259919940196384555537781138734517695635466890513210303298006129761907344864364880792070015110382062237576722893194032791785085041115527630563008371069031046973820677837175524870420596008615148367634632182855530883490013000323936560949231990041238804950092603563204347155196259473333982443566566825572906183010196568643958692577002318212612697224493689136845038252465662149020736723402759003556725696990727449729026236022299068028490260113247377071540726015899479111449111547765537860674240266260958613480925858293065559587073268084691919955594450962297096023880175971888802168821116684675971058594528273945832793404738181906720697187933995110004525788622701613927153615500534264026200243624023048735820717709193374620665211021706831857465891408169818841682925370990467025487346595776718217919216762372394383745504272999125931524261696930734815733769371311283952544561113778246701203371351676184471488861036941230822382205488075071180962243244423034113353278390765428036046837117331450120882993021784666473175065362808883104495854049984843759740672183018932085014486628177768872916927618699659832543976663321190139625297653609102744367553926187731203159396117503325387374673717359032948908007484900398561678170669782076848913231143444350982348614663433273775005050018056612695140373099320681039970104193918490811552538494623369786013442071916387418809945608570162782364293691335681016008351425834398945272269797711666720658914166783625625143398438279967536563428294574026723878159752617857539100261083120600384903549781439097753926523516770645261627845802281098303355205500850616809562045091659843262852553416914606155876527495691200367953534207286654977383592779783601380427085168802419480365915302059930949256546224705076112145204770472742447423895226433059251235102978430864397817969042080230656568497928690429167479524893474585853816610938867785253444251592626482419906461430591313605299464294177961850729810827678874281491639984620425495002325290702313916504662199705253593634338106113628686933087571219341634793637929098611020765111550384075828490629536040069137782898260069596015213627492603320590620729985006140401943768191643573835078069093919052194982003130661988501643087940631085987880694752222828995363468599157628666220149830676100394349579505512916406215798727211890362437847535539771664728498574599336328596080431465312422992123559010983560994565275726487090760125289280982647493111846827536381424287297267964609597125636767739793912372189808560984501388275601019581638701977230002818132120363369685750095910171554437223238119893734409555833945515436385034071439404144862203328494890485899950120087115025249543112941554626974590096686882025342379385777597595498105555919707259731165834258276288787101862771965814423340425727188830665765538907913084434371171792981338947792328204543912957757146761656166814926526229831020819832056704645538806370276883374292978947646821214085794480336614954395467806199005427544293501379165121552999337829824820529841506617795520068928786842806238477508626978802116503071715407355970203607722476121983871320419463709025575734311107061153622224319507894741256258880525761065520019185615242903278356549147975022604825313538634310031028234122652715521984724640521721358633220233798219417854010684458442441313612555395886200795956551835279322056551342228071176778422815854447556066560531721895243025931246478109666874711245765359264474859783657155638188604312618881938760698964655728628143761307484821612507950214502285288767045041249645644248773866399749192332273099557689749354435724019546886951963130980900149374141224211926279848052264103729589807999011752164756474058969136590431032407177379328924723097215633549737278681522186858858770440688818483276259596853065099268444479648926448998414416497522808232447467043128697499263377270283358483142976472238234374309231600751911214108210306305503290016398454094742520050676698418890061110361554560706486209524869342457208722275004447296437043771517767028461046461920875892698329589659442154136586285672151185451670916663181927982795705255510712032904507921447641709864414808167593537484286387703847755983172697273958692172128874121362876315760097327712332536231196682939508272244437486115950636953702148165345787659670697890751163209846157065475140630971965086604649345699978548506504689706016048391639536429690802240186427053458172824549915402581413354896613937222874799129701357145843306420387275722782559138634418372579648080320747024103585387417302013304409970874786419917932754345308909300935599782566934308260095202134190926537214946201678845143378154866961508419716300245391131635654808586334983784802057060138020768510884392443581489088947762787749124066675548734353874260005558748266351678403353083123907715838908738573164186875319952877739923761125598845657189935397873161550853864909665693035993520360097995363064425244505234125868515116059450478158275503303419890558105731342311676847442634555748825860358262098827828796468841731598784608025425872787433428045930466465659596150817012444132917694208060297333809884137405420535198160529599367388246529841227479319043973487092911768922371094979477194749450673382307304318124142537175861496632960740741918221542250997153139980563756063906303173241801645149142523566241360800326052518927870268049004153484258488946929511246703335592219338314976482778260441008112744460208957738139100494607091935273502485712819016955658776883767770285638615925407152979625279197025686261392729949194482022370780553422816263188548182709928597153836179954048700089243487141129354236589717636302747550915643888500996998348680718454420999588423921473733511846656154200744902619193474764541490617497291344319074514213032928797984009485497525037626054434829176491105247422624956231552636442145459872464026126260148898270824471248892749405634216528437540994415708397502214300986788631547427120244123405061379641489863431261099892356258982187366775690270745117951598892108902778189883977068622265420778454126082450275828125189234616534325181828349298036472937100816398352915917339941763921106019008481209020761358265827824317585531533759870980824064900993449609506510917285860225489440455345916238933018788873664946512950767265728815810264861952572451679688669531389543434625523995325136926377528875013175676021398310181433897520098461487565590222355927643839746412362379226850453812975546527764275465016401262382989113585636590191198890744493841629567425021770015251937125840903156334680506605368504557157314498391529864343480429028832835867936958591514519077019011793745373880978103024012116884569154586519123979291444251490506548967146095754992122394306861964396278651298857920030373783877302740244001303158893889188145540089502026730440812939068124167472815603339727142881313321807590527603155839387864255269494828540955269498957948257498464081649790064921314735885103829364500385768137066180185870094389688709459009193492228490645219806323787836676524228122555349165762437811216897718700282719229609561598665419028279517041739573447975215069300944403328532428706130479718465070917349043593550473434332871542077256212820789107915344289610812305796554176152228610263607145288597502065372146533456871464106156197472423240800508416383729628485498278431367466958521607665563630090310687602390518310426957944882942305524050064113375159505631191024187116068799950061119433386652796387021523489947787371703703253126092186356790813375962391870751344234788545897262746578268361034043875997770344504243051501623872088301816559816019124129474740141592470317430285970766146420929205228879151039254361075673793303101527203314054075158110760928376192833789753265693448400480168215975838043808495645012196980405013408522453788021023911731453340794353592573418729774078605564996624903704475622992408586292224706899151984170229033072842157382059848734546902441793535834590053055111861658895367691476929263281080573198490528945513339680691326771023556332342271095669434986294731722682245617266189708155733238464632685441406997251378235945480599426642218552995251331857490689826661821219935088994238917713712921090981280304754741502217745663378322089231686090971741577704764092347973281776148754422383617322465030446747167704404873115840987068496627818280720888499134213306854892096607456188632130853790372356472792264343212880982472989714081706251676967887706985352012261604280441825903603858448383404894715125976463901938797741916861621529519895413765951022391429189151109107935871291545741661123071176339608556408383016828362126083030146127479504904891471058903189261445627521145537359004350791633292414040462845967731609365576431161712407978876411612732253161121697461889985804800897759106593434742568766077737217311935678983036043043513164670779369620317732653331694542409646678375686042903467802585861535403255843221325591227081535348814885594462637694901926790905200938290633827014001269426627932318171924406376947518525266947925846828651959851758840604165557336379193772357423192423261382672465284395794613982088721683068608340909775329342304671919951961373227921963597468837470297422673869389473351403998247715680789162944119735106943906600360109859247654394307785621547241353771245476984999432049005603346046306342046269035497285634937274745781826750141498509095109557117964118151834823544726943294643785626746628152937082718798734953350810065933190338058234031449125136769646131717917199616917337249482827667882223848476299387495946058643063187309032474909671578396595889766377026375067274955186955018588374785327250667524116702386419151603085966925625516721191153711537616579427130820908151327457767044619037573183394774275597260666685253599436108967491038791716525366649227359906996974044661906517185871683144255618879197620676844741424960861185543903004243035073618792283862717311772766752387732021034953604949910420505982335699017005008552425020421685324322861480752479631568456501870247111986619546150976232647788843098689048557163293902344788655124756204267794574424995764771654640357456687899161393390689127411795739824174768344838800864764923108559171917906632357584044464109508627741742265940502194774965596793733181832836446288562721312256842648960676615908717277271689619393114482034401088388166682651045722164061209966100224841440077383836111496901445478216281892736875633387752001981475565294616255931780591677028968642610207022076616244163280753516275267021689615780446421352205881662282939631861786192032880261059607001209304256531843291926595415050061733979688492327444221244354451468030156656385037558439324591925661548657535334105111964403086834438889799445564147291018758060412829356084324965894924890918915390714170840275089582140431777266094591758356921956420524383207836034578443827694510197532900780322106695705697514179442019258745978432399790554785506363778204090798111637871785060597762919098043996522766508178033688810752373187036124032191229236753699516799110365474663633601743818385470665022072648673624342914097751273146258312802900440446004865907171172517588477599458440403699113177017526948619483720951230611669223539917505786038963088688221862891870282888676378041758036194906381805643054961310771677865714399123002552944465014600970334783424838873462707051608877720423460489851220336618470040523133707160916957552078937751727936058127191828084115224799406663685213753853918187702985131381400697658590422370215001251127236567195355595618027491532038571605259190811094188198308406433278599607966210259735028282686529548559404458850201216126002328061715075046559915481697375958241698040435807161209215479699970794118272748724538003218341940296292655387660464807583953669624831805954941617170146290046227768045733330608899990656102191836987790569102085712092037086831137366425646253848183376264158267662994255761519564062013895576205497202197492239610709209392143446519112503706100117044890397856493940466543365682767441024732014224285523252076608453514143718699762017484265549027329923796059828643860219513730812642481914458229902505853364461542944116655562301271444675626718989109463807109906673884840873425554176140210968685205442208362611777855102811980275815711827433525754483455656299284574781340152725819928360819415032253009645217576145884366013256386904360409721306284048089434882433699527867508051211368224365509154663296402413289949747898244231168551134329674379161537719596513447127023478309429669788453272296420070164896629505044521254295612517655429231717454066060379221157378381808323237463023651220964754699527977830575778821107408629992404281805448572959716500538303364396853919063558407877309626726755797346165071979146004168793718921792461454020575827431102149204373641078090199253598230023597670300648459772612365389440006125992506076617154049136480654197496808746184572732726329881703421207768801979841793238326160535664203955444987042236172997839508009314226811725047674264094589814386978141221065732449416822753576327482467195883433522358193262912787712953536541363157050984973575757447312935044595758206228464796105651721035951082463691616249347740556254316742845922034823454015215250811119724944177533470977313356170230071003571024059715178528741375551273691071369091345707930928526108986026986181543562826202349756391664044853836190459947267157959414088208912394918126336836042329270832662255535064665735266175456143929166518947450166197691507566511713794788041557921234869503475162399829534932496921280420701052231867956579333847520489750982212820372946621016450812821557827257510661672858472694431485398766687522774513889794003522962826476666764265874214546777259294100634455150366017249639257910514088267081518348867351227008955027387851949518781835376050784708112003921995110597588253351878858989688644578963774991175069956576176139111373522463433062031584260033956674906744820239046985414506071665235153230700977625525408280014842944590918667470291617055170496382270121102044759643100753295375083626397864698969137201434460431657561616110495434183104363610176082753833023953357502832501701650423486174167267565461968083372463322250308714688179287379207958034446763198989294600993491901036178222603107087335762969126225012684407830224971404508452877377665098403703413931847628525453997381677010163500495084890168940547702095085094961361960451785210033306878282538091375187264852873644632381190114757632907403510384062591578922623014432388129065420482905442891842582498344879826104628295482972488919559060595413057150607879430387012857513722581584493148376426482462184871917343602624475402037459346580104126662441091775692516061456379179125259310912460273784967566336670669468621752004200486477280098346876247097366292270471322461226597461128933939113061765675120425552223442669442783115709059302629205247815802524126512959546388234646459845645898223152262458048306482795741307201298790906474033118685372407961521099858506877047022467394471842416277735205582925698974820952453017467383107899626427103497302434370685266990530571994889754118202053289618238561471851829611856258790273793759610448451580661683042576106119307871039475938651865875847585192298070726724344280754766024974498614100714036864682841173783538914861997254490272342142490416825426489955044314735883190436295773956334626699644995455400319521102544565359037533387318636929531915220007105241463547882401970380376754399214778551674109323313774611893433774395299256865739228868170454456224251237326049610802870848644582646296207728420129378452564316928329976250834989263747555381812058361395242007137949095362760249354517929758118099176565606584778442853238862689374587036006457473052165404009700237103831510410365417311564456555434959159973262329806839348620328314590999792739782291591850539236002182192156661691704031025704947553656380478529989036585711676389650817812475014965316666718107511229168554864792938544978965356567597536018203218732171539533883760140488002737123976884939521705567183823300805940084669259967675280459342511497677379711528613143523937500738158441594091056983251788526909621794666969709452502106084559422821437571283362546716059176866841010102202041771364613431657591229723319050175795672456351857445575109541275279652459624941894499108406722465247294881371343392467078574777982665738922805379336636920806047420192313087123099486789247366575066941621434517515797788011407741432972712850689612117383507963218349056834005831931095804203523393581930655320503878756304303786408624894251894665438768497676089162997843010113155752742516448808409748251592677789258618824993829134886050929641769678875635496777924855152316342832021101464972551508584022049068664339771071478530551474174725119565837056299239979956964516013600829777153465824818430518316948516280951235716968173442646895243522118039851031484074123539326995627329809257921632071931362336275921966888024873592609350912850144284539295404054207443949855756241049249100381124779117498142693099178903975445145996438509517886449507467794859441412604718481840867601017219199281660786296236518217677289462338903216840814608702098536343905896987530013868877884729662210917922339768449236807520375765530264154550611759680574639976484596885029709346448034082899295014687443004335227983221501697022989318160267896310986212122054133854246084704653698644582892043337219644005577854387993342261366101148091729789910994468771391071914086246215788328838614034513604277066324467577835778580541443966659440742697554139409270110886529895362271011711016371239583603521476706309145296961200463121419003278145346158584350191759389872756697017957187750645983551866524491860442329390552491302219564162049201654675823340372382821880405551532752055692064946721281015359700301452467190026131350119326335486191397832173748425733710447773992676643390618636795991733671760214146977847956273410590192002884516024970217998587352263995247392546108138467395492744365774878426141487241243407285028831403570217039364417085926797043909967664438637224983659561730249844718681010974730055394405315731599365872415385233529806021352262456028820392099525908752876565666162098610176127279437885367929701732325787463517122708700596579436221478423981517899723112411338679781295669065423215344237258051146304639262309752404697865695762747136384181024321097194505054764120145933815356131147063476896316706394428711570785969823409884237202211386920983865156226268960713351087206105097693158853857088663426382101187964058669579296432691615832433186543497327176688143784017674803451724422385028062756904477305994980338832634580609241059781214554990356728363770828199612065169274548718332237874182847560440762805993410410738632650319263998217225769764483412048901152842944408700319578971753133914050716659838412080679139655044759447026425873050208277628463350279663873553247582071351445376133405473498135117621287641349155864344740166050345491037815153599477814554422561636362061933502521338127435209365720631003432471105232046071248264643584874020444285291626631586246579642283835369125915141057430930979062008045951419886232932176669995976358394097127656196408219672223164629687224027682023357182308489343080854642283006212247954988696391792939909331122563638749657378382764418517557351767307929463939589408140201519317527428159127662567691189864532912978213446187240151842091654912233649880574902808334477370034541612714761581460703024732384048320819132986782062207813347928821305748516570783648820333657944305096060813041466630786444860329784122803315462821423391953238483134990331077709425026225678149877508097084069129889088494094775274658864564843669889876181331063992374179485282808471818727978758829551010408350071693798897052509566959495731258220584090160224305185324661592639007269332382825082517855144480228934425207479927846040450580306682840384767145181940655911821268212766391695228218652651808906039989067034814104782251311336111579615612475631692314024843653753621676760396594992980156807031095543060609399193229650519619718323384035426750929566659783288208848993655928593989985849263954822329704200867181668858645890688754232614792126827855503935843733785607092174354320825106491795875848324904831190482113581951803007844544493097156573819235316414690880894879562678884861165575283180810544085911406253074671940552137394539165720585178182694401394895683913921343946840823074328050451779165972334047655252973374224977248064651366517357923281105528597650751947455177948946492173918319265507041821878433481175675101707290558918054242477747259368107349330003553823968260486966712514128254209667570941495677255056022583998242772946491925680322006674984824563257010136805534711093608145512350991615741513941716596438984379119815023649188722611043166453280902464698517112115450692556978181475901857749055600788618092616418369686179119633331972023091587553707861010040369575048209509460816716383393206040219152489533919872126721267639654352196341002672522797051628212360387267357299962868601397498245914882884194512125487258213221027977085222196360303878120441707464476031065036220267995261688955789670985803634530294973569541631748200013396698263218251261203031808754096950676856841846249391037193930272871281054147944432044384365206292002635274339671513106434445269506130232360711593381422073867545290170153890447906955934675298076246190891879127940976985134132126468354884592673406317489419333196314420760693970167131289089242728286270772172896027336445895872705527625454905869317709551737842671818651282577768033363430825332707238751651227529409069969581933176190414972710791376580960867687229285842982531834236840210802977926720208609279202993298129046945708231822982954421866767182421945088500020376330657526046447897205970817299096561404850214952151356133279472099295100210291012174376336957315861267680178965769275367540566072960100502722632671433465041623386035119955119907279346251722163741541637401628372527842433701942758147208624476124135727839633455127554515492373453402489918876153736045137109389469375882474328218537354799013128698933180873495927560456991157347448340578307063604754882741739551586631776408321618880174771259859638695396903603787572735584451218627047835668591424447708078863998081021981345447387724976027911539565973184310565682599584432516950157006064493436913816921466156552308363867292026273002212050812449494244101668145531484063001669533549931933481221184171536231826778357895559700549311075456923001786323552391908586951724647436395151830236733302811004482843501086562392666823507609235495197566766811096876232612962909522571242191455727925213098677601092511672433339343811691037019877414795642686144136179532856644635138613190188592974810225217036826795064189343689277664654358664973893703224869034172017852916825158328851906949995966559900461369338212541437725251457421122202791811709849935553516685989993161000926008923731287237330650516757648482321554816026709879056596325387108319889629533532046981212617531934845906129241787717444016366434368745213204311715973578237817960266092017861851019556537902976967134986434694626547170497251130438928304457125516278043398645410367770974849449994762906066537314898198753719742660632505430879990425673075704190544793316888415158015885977078575664454351471304062486628798867806579161315263258463241557798855425515145817381602236343702709936914761722354681813213725792394838917557176112954268213158398766019288239829290608507974823561454822845378355210691137918786211994441239228974276576389704082682071965012941905958358890775435178392620632024268315390479336740574788909178327614226062669193148226562484820804648890887949083838054553937542893560811514388082901309923804225750414489690677641310227832357441538874727728030450448670350635316502164689454226325699081647596531682616149773989818205203369464557262233500294413688322884227591877317159970609839317548765327296405117533102291533611035680680206268824133789009672797341491211856504429722452318512891570030188253718023344575449333409804578993086944232404193079921621181401528373079827944714830047882811074528895858286496511229914225541518754038064621367159083817557430081903916760630344922135864449554757574482993317993421264559383272113680972226917326674178033467278173874493839492011930934761952495962165773633982614047683404410324257117506394078863241442239205880123450918474991405296157747822760828184984983201028273372367014066936561528047476399366158565357078362488564430956994533786742732068835267771117414722844605385671239875341104918156824725716305018048812057650721933634548527184264638618297537666551386650202673350492184419284620121232374638679990572027494222290078395547608289019759012185274233441149506544816158598604476388357990010622391690769708942811459078672582235666870571069851059999989880863466811177295753025576560078227619908027509092689144824779897789252258201351477246482557190277985896330695205578830805223340957068990115966208055259345972987940884754244198226492041132955004307611471666730919408344029433677120949696148569117863920054230126208056739734307474458866327449456694539180601781453160262065652752183716579320484798102452217706918311919425034482307915348843569932583206068682906860988671428061562923224897319714555400554324292326990895129860448594812784479778308173577110087389243436168468863950080251808834285377411437211120094435453040270115002049980311241732936662779684545673210126842976558291058807684750234155160290982645836896107105307313550423733050444958384228511128971990777833455401419158725614031457914700790898781610398747428150748139910918541247408515655069325112060893861363375452146964924483398760554767182437621041427913888749438514658699861342416311478919962172447270526442309209568113021870961738250764036200321172105599539106422514954492689210596914022193658136973577646513239774517553654231616257838710189597433326501844009860988756198503727294252035417466419991019093117958005168916367320655094914452909681709643920793804103352342309400881503642701759086550187346980764599642464439486223300122026438435056712044420368222792530017708943170863116111267064539527599500530264391519534502212393966267452175553077199803830511690113132879505508628499419666786902180815157472927117043400314554172986510953748703969894355105674223433561791391483793286972021337747588854099424634669074800089631396528252491597484603933029110768856865306567684900543510695610457348337062891637215214789235717377593106949011809911695232184202955835042437459085558070151395242790094808230801593114151168463308444311163270103977193178167397244442836111998661789925283088422460047720433749354266489639044636714640610488089010224923630687390847948026848132003116363215369309090396002995963168245735044932130651731620783267208036623087408910608553358444743859937953173731228312655822495753120866749577510688008622674808197988045365273285977771177403198127742843470534081253975292222204591570472967922747576815998928654223851035257270375671700051678150429652742550957820208666200745722600487778120902606752436536433565741740949619874053570898174020241363737711853022834573889609401500777140009788481714791255286660297234332624194632724671335425819593883677381029254386466861089340273571293670089941256830619520551184317578179045500940659603121926790600343756396984164282152604925315356481923893631150785388545277816460513751525070909173701056170257720814583968779118859791133476634820198855312303063420517290327601621266764663237618046454470030719779871871199540085267521304974236990602454497376826551595500482179922081773529717742962290282018884768223736158253872576961641239117250810468647787855292028973047724992589814192801655513167539229719701029755530779517248807363556490628827370798305674434787481568464629567183455734011840786196075514887023967988350795865688485494453032982674689332407253482036917520681305094338099922360182215318616497963583588123520160483365478695663562814952843907949757722715474832878480682244551172660470734954080137114528501616768042481244400379927950254706410787685014390669109149645268370695403997812278594362104801335051440080327590966852709240917076752991319720685206033203035555690080234623686809495146244191958865018197924837760765005781119834055500484027832001733950805469215128529157158865867772748044644156552282789136050447336698013800081780763189322068105348708436886632075718677796364046162742551411299694202544264036036877766394290594060392026110166024432530795596972159389245161521573546248860006126915662643282648126655377287134847216813362751840987041186631027900660758985244259652057729358289386468816995295291155623685501434772750318936458863987297983913498026490661816326784398046054077902214480957865144540393393884646535156661857314177296213885880806361806343736294899435965869160589569359396215122919152580869675961572461290202401302788124708735655499115681799631820300326424312858857231209754262142670198863974788196807840297416653888178876421154073898948050868205759409742626856929448808703510681011154128841935220693069163308804568972026078515471141599793655854893263513102423816457388122955239960979030290938519494623475925248487822718127233326205182660604397096712131472776233992498283570928353167116794374610362776092296675246933539424535834503110272772397718059761902590020544180801193260900219656705598424585903640078090661693427020914400602891742522667372305183672134657370829404579143364843132137525901624541768568611695415805444310043065944031670292236125641974951235892497834979078741708467742535527532721982728841306238565656708165185025195432817101473968146210208828489147267251144074880607318717649953947310576498023653688399868761604009399257826941379811535858417449121734997067921874320999783360512183009371910058070012731105321018875383057167101656968206003304012398275232300595464207764253960091683153957444750381173834841785847682825841878010313142565387704938047157811879699302338038329255846042384664754801647499242771848651304851964850331718425306598552448834998446509503805229383084216547751010123443452730861546478251125280151751898303023711218622645118130528274488793107918593586804645703997148434471783383829866825585794920977311223822084851437598948235166363277273386174840783791448136335758525970339388236227864194853604363322624004636301558712141517641598621460163453492098518056879605749561076307003422801859721078141818035345296000409494163366896478081697972317643727972289347082607031619367541164996570698810982235326663726657754199022410505751050717294037539094118598605794839000529395044853796896000624716407631091597087152906492173090422851891291816952513065837771158208612955018233316018925222673228723736221159050548302945988202624534945125749944474580237447184008831077601362796158204213032913552996276136294940814939235190484996511027534696797115314114962956835366037251496174493173809731263398600599829662075575245656065875073438130960691332763420138954891545537709286169516482527244928710136758308843626743501189772013650437096700149557483644464265330599223607837818451556324660737823039523380320197633187918721888546976550473316292448988805790819722116752434895980070793384163708309488408424384519414679022241558670992772081177527304833412508891627555452232881775331169852325784881536671479079516478769653329178260980051660166983802997015270355478745657689422305734407776966874439553563935716670536420003856110269898957351696779427155798030691768331098967233077492683889378594713366665628661785849530031710643103717409856560027975687597729928440224937141923369029162918465748657809355146327053798884366697234081380116566601690571080948052202669442181192501717292117420155522127684875166681926682484026653168262196672437235426781388805514806951510235781095874795014966671620674572582098090788572893710556236093075141783308608739580845592912367919592744980247240582108418879696019377363906596226404338350695578848223046207373812442267020239855467692155684066229356399331640952650585761573391154938374923810063580971738740021766247695021641144773950412451320896280700091030376127734359272889650211317287298399495741836507172463076411920157565427687108752107012938695981435977765651584240198382031843927895809049435626797527279027817278635351230835787274125645986857874885716045534896656307487431418632762282353205074577545036793518485681822208790938680667514203928406319236726645719646511745128764602381804835904239437541993751201052686999751569064753794954792240901004259099444187869429144500037150663636279956052002610787311301389980990395925257961210498922787288101671158603474842887036748062632774961106470074760798409401314994410462845649570216828370679542218642918966914031080731762167275822402257273952029426757897685630665605191229406788530324882752088978584977794793010133457808772348659003370071294131229238424211268246326347923225367281620363798149390939697102295197174325270650612544922671612524317825208219006411039042992852008425875824378719958272105236458744098711164419655461656117183223421418922428399121057666041671908881530922104044679533293033665714520417612013722569719615537837363149491787563569843344499146089689935781468616319770626160019514031925314906606026883546677900458571284352337122452437889199779929128243995694467371365047111571404337800004670971523122696564080882147940646413531367931909933454818692637463518251666877089846463558447354252839930999768780963598912538758524352783651072489043481105111917699721482233243642181593382015057730837075974496397463024500528806821800775171704916269059752584810355441467746531914793885806845491699508881955919603763206870754690312862252998022026485313721067131897319313550430605567810296957573845859047615844298345154051377087730184619839454817353260968158562558303965618110196050767398642454828140075345541189595386150374519658919109190557013770355565109680327455368698234777786327120533395158229261909784970710434037456360970991200592928088182907209639351917523849707384592231313751559899342926279071183710132060707125066502922410837325173848465869522145567416574319486242813500802109028590343301503796355413878401856251111786705536304530255407996473833603881243350716687784176961051150829446170806381438247024013783772310057808957175474801246345767317099596140412672827304639192832392425044314116792948161926690122997761294488020773118575746308196283731990913392930807849755396734317305042115586330975747978338960048728310346255363794059099322026048199380161899246745168810162664096280624053455406681305679085776280248242689044536809196142659353527606787955452590430542998893998851001225358090405945644061611875514971841091979279252780629190430361694484513244267172001230092036386757084369876964799610982335625711461543378374002090153604073911446731153087575555407599847797320804302912591889950356319811264148144065187269600327276151457424343163335990713114252133690465951869434592674377115241511521297574326553485466640220413432299346072869209005793243277284970472014448471810046947456656083608395661887581592923764489196225242229528005674554391854713283560760162449452906339718544791764435770759343581916708888008774828720032961188255669022934496671236780007867567700337825122987375111435669068014795407282913947700947048644774385254970929382199706649738887543213222888813347661899352676854340804746176257997744416125202111085755169124038355670015493651711084171612441266147331515964486954889410447989041168267087904462066533660986504391857762067132330938537628648336606735467356183215108051107012605339036784711060002773448283189035165566902922576823094049260382406059710301649192050848502355842390375813597658143380918341289588019826349041263185791801946637344742504259619381906898810242684704444644188791464632315403133360357026894856852841486944195845593567939363858115035436175902713054178034195391116688161336740173579977425111613081068345264918237432980764691661519219605311878460923598289265611246937631123101250666667914165980438714580106941966159574488932019698666385780898814670013617134373235137893114765133666890517508248070136682278943176025386268276654863345777699305678158034420288567721870564493071659407495435070973766403375014558206956519848402786145735744221829164348202830247798066579005765016092982873156821345455840144691090313116418840355432765888184307508145000638944192343815318675403707264410568001992550033083728314055106982657357010485893612081373682399402205140140985922313114435546810234199012106584912600719435234135083616015681687270996085148292108996703727312986273647006698636584219530836048747838634005630956824753057001732944321309590335894381107358410035729090271806218152526265727938147187650993052027332996024069163851416279317139362753984020454333175056412088586032737975740916956054794368706082254309162761316590105687750750440507378244283014638635876133939233992200454344165993364047505070864984570225471935794383158272336376562962875924407948627211038962997035701430591780479911466185363385562746471230635139431132825332651343641608291622307079755208866860326537570532057911297037269804287372009772102639739537582792532212889898376866140687886062733816991102263160826059618699724416550895777584381113916749838625248702503022414633888351630194627148987039164132653557622968119939975105850409779623649834685302995588448414254847980139230904682689010400800119106915295946467584683309410904064588947267485340033005391115012620484836552257354900558065301863828845630977795740268795891158746731661502013282111672451040985010916488461660047198059945072144278947906193737903260700735621051402182250106726044724457434628603435409919170946088338403480766811464612330018521946447792548337730876064503689603204051279808392119941633944029776412556815934494594458211541556253472673322354988426364329572089804083649234707305431629068439362900632098839481913845569405826919707195115502094207306389382549890459612111362885170739312383751316099011065040637174195919732904070956263770189677659578605117532006496160852662477715332140090104289049675859515120874984927102544962091733259691666812000957106481316860551673784353333836906224115540899858500107171525864565308018213169046364075023289406206247706112848575426676834261393141539363154962773288861981012650117704162486592828766489186672680034183263832582852087009432139498927110012826833379342821839899860517502229305628406876005887642911883273417872862161698096912526114923951143223205542940321242020032274881735816350845375704421230900947119950915538505463544456206781225894418122046667684086227997084590280213498336627654900968804027070346257292204934956281007769025382990532375123800568796544780048368664436925339919017606148350707952391330351752950400932212282352651944849239846699082710240755518719477378878159346115854287875902068222747449530212900578601170621599888301578280037489204515580884844083241716496423374559682220477590234573297264567709816054778742315210201142483511306030318553722404921525859065252963482768864719371503056851599651626889607945833105720829783286977352847503131524243926508773914303980336211185555198939058361420906484888952719469222481991946276345859963675407872316633260507208979142351169914451583279910295205582849429642399677690026615027236281349642106340916199886430156181285576022062460906187630213898828887178683374497268716900235640545224061678097878392338320289068585859283042027495741942874613665608157940690755690582319600277163173095805541881076978529988774736611823225286196410008075986415335653407164224272644348738230299618247872843062691470651082125885974757391917016463887883616670508278260551997654815128660163826544390255320916666355151410057555875508335939090680963072045905118916358965492056719988309527389338755571936591130900707509729994509512451965501146005507786515028848924407215031955617713356151597428619123067672808992676726853377505431654476259200776115608861077938373677575592076434967501749801307191961178352924788474326860234034609285094242973238512431157717657922752213577338587233593625497655096596665891025035535197236750161948644276091808085808928576359186937678658497482157841398134108956767464618384257337516520234077051044041417797594887186460671687365536681906669497676666481469581407436241313546595554093223874936567115286249739899258412410572096968472243856930804887029077624822507523172707393364753390796533677111956637763772167286737346296226825010101759620795753913009906844731620314174591297576209467235328169515195230600978509753360371652466383861947203933844936194540187252010770044024057195951243077617406970080059033246064524435050912989595451109382101072250762005128729920511365081819159978842346163079995280688675783876421603601402562716365025767730733201901786587442658923358796767414499096385266655281064479891024164627366609311164032724227626501152944907561218346864318458547182155208098446400012835518715280130799295239527850967133836856682840109379039340429382843691042088166473086873419385074380981655913810016251150019056840556669016391754889483034563334243141510743140713653319254838614515665270055152017050376448967522239578613018051702316738644016279539960688141611094772077163412064554613244952288546241788686812992131083363554689405581806293903010871990627400375068816632766632635807282072013921285678958875767364364489350959981293066205799069165048058085844727549999579221278234706179062379925132819618239547312864866398570441764621126608876044078444558329835821681576608534578596331363073686364907745288124172423830721460581173300976356692288034245416155078587369491260307097546648567495759954295419246949255143516888295993453731799145623900997222507016641819204376160353300587508994198282162925634387456737764758410046743090887367790456201209528435994258053267265943479551865586615807872246149821006541603908282294410489615569810112348997892645811380071651691267940772634248636653023831360880397534062306979918312224465289877832143268876613176402079512167616249279493914133123140493323722369001224579997507405886618631750344831582549100046422290921431637010120276577327684359479328075859154077878343106891138879662830919494970356007480131789137518859869229708440223407241411714890923150374838307781608508135378951003213654624396376635582861346523074035306299950515063445489322452877024219576838076581468670427262943455999189884950304284201850745673601214213487187181840271227766978060209479161865319630082339413633625797782457082058402952430191740105284014601563037253900723078557725215363530478620877809864933269894214699347941426126927432415889778915480766482395843257897419322674428247431708691227167191977470578610000637707807266462009354971020515615694775411515514113454917807591099639441753697321930415293373486273367673035710592883689793358440821426072390145059357564350447465418244385345230443636450357267498445584285848034378327352412978680809422214986492073466166117457038293329970086869635299705294727055216402799208243726825421014614267515964787842027263904385379001092888558207582290401630961672285679923954901206872594143690936242876897274704765491053794759467088357317455721568234537935513552944786187215701030247941643338606602646820528455218609477076381441503056535836572082518935071145433308450610167552011439410638412439758809188912438938247107046693598491708920706612357413629434274554894185585769617077147827675644890638834643736895547601718319540042798896795586434046869633255955340654431910372993777743874477357533464823711549729208716340466864538187887360761051466064981324865761514393572625365113849848577747055380444806787247216977138221955797752100136736267502232971436254694039171307905471170278888832918572479736501825762354197272892869911072609512391914433137420043597797251878412276248430011215850872329407008387930988420087625607900176225532632037632745422598607286499892356231602190788315294559826242549920274205040080501481957493136694009558609453676452951032133511159084228677539473660617501143684689337715633068460252400492651021926612056714796118900474379112307705902247394141631562280783118311216323188240137753397012849324274390445272512300642577654885579174142462630496532963681033675685421744941422822131122808791186951947374490287923532627624333760893250349592608788182896763991211071772345471731445630292871995472569375177889511288087009059156379620558294971123882530524285337524475205547847269871507098733242435535928260041968633156804692560048590709112873962628963883995478459061346715636565086012371592945205816706375573046059836182353042647324620160299510169811492576253900608403059049656924770902240320126427764380386453717869178238160475277854431976863249260618127474426118271822097409328737033443459526945946330054309563766755116084248222227671023033670555179311380638565527419603714696023841685103912266943461207102712699397536020243198142593237483423034924271961763323144239528177118510126412075547714893618676547262294743671056034211947098352597263478580097744478093579987880026487438885384577630403458016735454619913806888853522630935663076932820614568966042270162372073106919954371280608761623631328423414637908944115811085753572601162190791476286979875916417816466193378496749319811647773112933471222843953821798068846298577166703748484406685207520473207308022430012636459543311305789155277780190513277532177937877208172635454743343044071293087960614425040626082042971653964971602067155715411312632494442650882333347250614438193635212293422288569645486843525985611904597141150058700644082394620297062288041242297111781488485255912371436313221534681609953860183063946772397643163231162155545821944588334288490415693435488628856086248442330466844124888066193168694071116799149886963971556094908407820998712193362509272370999468676483966745452399553938372428178023868511804095944510085189626771924991977871183201399199050796779740033167532010235154309085764373871634261806540947835624804587171874014991986867108503214788905069637445876704959075867896868411187873709037635602084956040678343280973269707091369794941923257222947453636666647511131548753459348416245331493764794650946938114684486981596749700235777305040443388453930737366698096928612424249466509129471129518828565039645201284672480606126616169183959410791842038592036702364324312824232955346314589441269371768030221506003493909725950554919974482735153211280433254742274212619785505936878918107766874719598930034770947363368022387256674833422665248994452755398177325635896844197189093275174420575305072216284278775836082455452354875386881868424895606142143294268869077461536845181119860784531938499244061975382426863854947646378880605017287912471506169748636578404543971298522763724045103421000672297408682862900849528214946476907230615783223188889674275857521608792264424151908113227436831402829962054194978434808843273851388866488033940944315753018701461236890874994641276805959476763287863524492591591257863267274663831606109582835315131540030467464410539093757831391615355301372146134639314487455738961725177813138162387498114840243742566182349949038679538194231151453402011494764056725434547968576106091406214607739919992586167730917443733080082150934287767918059892889405471449177156070010487601797686401111811334369207775443404009512410314375661579806293147857422275152447579139311844068863903382591359638937578904356725518996701119379603414754316884929417270415551169101326213337432454265796860232436431161415902757536939617335199560960464193998056705563024954358790450814639705987324222076290472466420982853366097085405871959495422066458725848140106979665087624746195741785753237758603271162993983492339728972447034141051720210327964012752006188651901664084807836536065654453332144756453203004679017814996626740886808274540289163644744289098790713912262416628880201854903456964737850216817813429105464072982999748944387519755337042583435600430179029717099438009600164085471343832502884785181350015583649299381538986591615988323924498175558266683068170506266472241696397088119060558683471195139013805677878955872982757000247721346978652870501341084319928789502305771326412030112428550042147351053496053270699225958713249146553198820305921000141720711819092609909355482370073252297415828960637367444794512437702139639887514101491055754423673738000255971781355126316391685829103130085307852225157840763801176215424324023472277034423657874340979741977969510832981327736795374613067447314217788171337755184531799969832516428920917266149573015849391773105284882573542468631665438523355192413052933004188072967285041412986742230225392569796815397733674036641552687870514129358485096433408190502900103643325576212671758884072727750260300856739076635774527520701319008340930574060861733767911535748060591737088292144618910935959426043457588007480222414090372981084549880713457317292146290145972900424941420625433321669354836679226550995187132193540375899801556005775541935774980467389219444078982248005348452140249829334753207152263230697249442608334163085055339582485626262004802992767800044753662538664512486138673353036045114707580917944060751322161892937414509279734446434528681503043661075659476176880397902158336050637807658297496544293289246891230934270440455667097664851593379830276765452593057265451663943586994712964280314227433365183836748557792860998966341926210085658841029725181128402137872827633120832466129072202541843305200625673635588772296905180625884986374292055012829583852195994883261546377751317333366080643323151978154754504026109496255495918346331519849100502925200421211527583136940977601038220637666656795699091773938321722066381177127029422904369679553210019680862511216167485714667175454620460927595068965708526228260000461514986106102635813718244342711801760516552574865254183005705957552827788285557455693597700438525353164190804836626842013364522939497219255878092160480404838615104719189703885511096948906414563068202711023903468362510314319816858837944051176676186029220852865490286791436643647407209446991070273686091015055590722928073172241625740633022446464734958357083131162382261291324103495183625827136486187839412408881262572207062924535147221470885785469643546723851720292527654181907289025044320282473578699982270720978646205098786368705277045425359011751673611609959319799699850549995696407513430607056094751998152252924709146109466840148878524242298832060664598809063417625840265594482637142379031489037368960296039045015048644231034858573177332268951297502530877164976163901297407336716394044464492705962821600003633027601044476469665502761072810389776582597779180890200671668802006724263795491458454570273663879202712536328200314707438390982204091969939521288709672764668199104618927719932866560774827092846190023756168031422829245652009438490766995279596277252801854182112943453670951194594619115269550693293922854041776472088249980332416710432364394810411960123207829567417725063760415834821183440413926398261551573485952857265441724114932314003847828757905848960961227393305680341707120038106987724669708443455336565308992658307758969263189946723226981533737409295621892119587196762354519557753413706939992836134433821879463204457344564731466796744689419321533825438774278833510860830629636154090185945656046054873726588136773125414555965760968299118665801044032154142381526669404019707896859842377338290996052634382139387451072371429442712870277969578044694070349667471569070838472886054452963270120937798960864310100643435147875780894243173845872361967193037752900467761468889534085899388140241987408540130491600545758975639959528849489461144005790618230891229421519930045779249235527675892019698958837961012894689969440633254756841601622708097425095461843675551535045822009163657836768349422088498972587751331667445422408265491076767090134921471174591384297424499301697504257151858139625233692808715896901596287719587359646854773570246517964878292253686254795946273158776718285619555313420694874647434168728924192983016092780285681388421180413397195504117704400319193129965131450684509857011515690163927333073351427603822611047838380078185904157954753173690170807225464829552809174123321421786993118814370181766878226092238862119926612836783546905980138831741513385648299820861624123046992706988449335349805844244383764296160977037597956806545649281533395782060486790355406583089643196130158850294350616794463456845290049615261601881611204149516773303505768420219221174817564812975776741131417829652918449641095293976665166663843888970701968102128533758806079812051383616482134286803658400493593543412027281302226158766599229165743696986534225546156956318830183630773258308479732486836684423742757685173066719188026288505962567435432078461755048148723945740352790603548326053420621963076011476962086449538851940196743007160774695912447357653049280862613260867648115015444849352475913329480852024081288913874291568219336102771709049381391250156547311428058973016844343881351082467620919436704216198700560288727851079782065196921046824953784035155553673700332315766600035248716675880616724607200468954262034935368252250070871488084655699212778541423737167037512604929830448243445834318815295408006356909298549094556010083931717036658768194880298130371325567462496978083792917416403380524957512412224950879364589762907268413469377557771628379482246307415603669555081185675608607638835020236787980095824645847123685818950445611003196983548705066931013867873793948392684930555760163836342238094336655954330912236153184164143294035140833653564124986942060815124486983625155526072192144735479360080200420224598016604479003720996153408933446179073382507813790299383926306467032505159888797826847622660532157082104318313070496962429764176263122332368549899387772410394426039241350701982358773450687270188686518580882807415093554468193791049381930036243209278816254286995575104273888213930587911871636822825856938110139770368858824338398126764489993813355313178921816790346755348797930170298540817176652765371530150789592167918902341110494978685905519590592527576593067923256980171969856299878472379554291037555724670072625607627114587367203461993633681198378126703321265482516075523784606526781081630126166412916450702248415056483323591963058216533729514358095092436931609089706936851692242779355609682021975863237626528381476989468647151372751257367789134008415883435395205048654737432680855528205153814454620793814027871791414053953374459155953660865734364275523754023007662363232658910620460561423147552323520841299277576720192543499570083703195675390371416445287766393325972513776447562353407934226482491353927012510407635676502688087186489408694172446578531217799212979556707062880589079136873208660246169888377712574480848627778112952652171485087277776270214894861505417792728033575887902295374837060263952182148051361524935885343400164338775261082101692167745731814408472024037560841397896300322901861937503991801683202832723724135129925267656040373310748132677481562985268712098850919058858179377211425487743659381698838228874546806070520376796109906396206037148925788248507133538322263819028074469909748729119722027008909751805914308152423290397382271732670589692217208423677618018341058848786521960414010904374820075691073496572443852488390678043499394872672139968869786911364750279505497005589825742192303129159557676130688825130267050422482276091971527536725347448194874618026101811522414024218109180061206314757079405516806485471609973174520103027050476156460043866783838313781368414979733991145864634799873676151273048695081606993612819643891760153599464352367017697204491626382575560970641386181544264200230061467945707235037246280540035685070390709925225891145319043910405796245088576610058983607812010228754057847157379662903408892260810102926563351245795019290960664026158259669615985379450343320741970340617223439378417444249425016476140318006405981470932121098914456676898302641105244372625904971758170450185477070340121113687569492947724166187140331507702336701786130764703043107583202778645643043077850464085467889027928742557720641365953228603815232387951650750012923425665654771366505514724884453254530158224385554705654364254915317827852430399348726886990522365049984476585384192516749341016975929748262771742934610617301052815410891834579908950777416663572103699260831243976481480127492532620359040302712081805097317776429207111513786681824872538096308367568340121201096448802686257282352841696367859536011333297238038475805789777399804909407981192349108888488002743986910112507405585108566109879277425400596987657574979398510321076891795441080262073484858686499925946392652920112011432932659293686165466993264336104295539632180469143779959821185483138551953673636812991211204364752173336691460787922037757723206005174793088202069821552602403508047921539700937098211221253813258515314824507436974942226347270609875925440725332990325304386451990587486599759733791870424655346774762497272430422315777322380809397371592273827053966013892546004855169668418154161583605812613764740878990114384491419823549908558772104138655437651264162802242162885048413395410745238889506173310119790937894046248474627935484479898349050617717580202385177283571038366668371007364320137281366106393830675833097219158387074732826118809098934567741785937809710185861441959028503251812229450006274026919763687385505107400205315650658248862120076329841966888770643710829432723288757459085971497505608850555031451551768742979398819490146061514985050739123387476723821165400334464380338707852789262335544239465557836333868823256446061572045741906863944752718238743559729309734050731498147085314649919972114096394619465567679932339396874745215236008128265906148615260197659912659251170593311743759228826855202467818777768816604192135773765988113019872055306126843675915051790300433476066491809467827944674868506913500936839490220036859143639048183002500274728191141281382933332738547082231997790994898167192334367257863761836878099296393250698814857048962782648471247967601113174064710377657035046672323450598830335952095140290835399356056418707764181806533245996394246778329754496801937189035860040631856923865502545978256132379213474957344629340145853526021251694008413925751229941697804515505249334486458899770922193147175402177026137865076840023222755156070818466111885881838695447012326768107703139593375861296333933927119483463843500403236416593622091899594231970873195587070017094597517436333940910653543986557065725652738628468301200685505054200882888284865356962172954340922897113753006825822100283932882247565488502732046428782316498850135488510049975715740219964205417112609281541307349980801771749318310540165083297008498810521022330636760245955041079413810469274576250857143270969388053534222485906061385385262353014805889010470263177420371672741085462268964072461892695595270976905506197703127810832554572947738705817548764238726708411277879124821854559879375006112585323511884259179965998813266430741285934414355555486933971491778565741045695192607981940970097417040387433637253091012978544440010404668384839243240647501269267760441298025717640408778278384502718994157993429286328005577633890787794684026386458766178891469642258419840438909823672524579373508167017841818283048007452690529133905789894657952180206770984042602653158643506180846041786523766338916898293919354082406390248277278289909016714473090085023689112353574419572385766210609349033824420105764337634382511743116930896589025373643455694746359418309402167759688483294542269969188164358561569106705827560318567096994622367554127050262761827951221307258742426936056295627435504187755647480756838573086068739921470037155526467615510105183331683847953528687331442403461404868858996395247897253651363399249205604571852518139579896156907594445812292322408819211174558851422591339024524668919392688120144657641671998877647497050842751760575998612626323379349812569588498932469609444068066142062734644581939335230345091114438858546305029589038530662117345681698479256298328865752607631209411464266733482861403257066187995883246677910538720894395947168088549811786612174106587559209515819291034259316996987362422283462970401215824535018011902332822513657145020156850547717719904195855474127016370914717153963044228452835976532726502195153504449547982990695272313690642302312731830533117823027089437807473911127332628075066320699524173004664188020144416664813262975565303945709098458764025237217987354602995268179046143207566525391013769240217255369721988291100525557499267617007541650225562206184102570524120463728047711431033537817283001696643729129101959074770026329621221991321525039232969664109196440925131599996035489815000506476874286245915925311779491817664975635101027659391426363488497002773308960166508276227296516809941450744213606823286039053317206508096831954503640895198507458285102104086820511854234753194117191181333301461585961106817676921217474034622638737442930176650546551510249511833826139426947446331363412786206114107909232349804741084940705223251293996099608132893119090655263716241093683502066008711779065627456128898804926428118551490375527730023587326164708944847966020399208731488801007625721683650798942891264659244476573048420889484622307137313565900108127578720665047016542605197942927328489885682242454428446824188093863504743043561456749798983871960970450970285921733302823072783706984538264973540749813985970494778870351492064627910214491560492570039973306245435900143932480139403159006864051215596050278745095384670326297388082574333527456810352672616716006560803122289882251010154710956971934433468695489870584680310465148019712399952549472745769890224317801047217578339950202375810103561389952371835174859758441751553586023911042629663982164112092340688101026240651408411037137677415378416537616109172732913218552445070369406092355471198725425038010389053053642234257259324247395269985336076880510942318411099870221759524862429619736625256418634460542739008610104330316972418563695644669605005984163027956082889286851033757759298890486391021728718994320570479962029278055557340286313884265330343773178662088401772755409496987680327323465092371030479107633362014619827788483595971409054301543179323621837932412324133773527657895685398848823598104143392604835336524513446047339305139655267940937329402477029427973797845659717229726736486708835785599336444564470547049653460882468031100448138534232091421603269206256561669856780092532131574914992390582083088030891434960019602158454749093458184100104672939997839383837198054797515756534422053644734041598645457032349604078715908533265587705195310483107253541392341200928194955297181895198408019335385253119749439934582110959955662940783120005286902985569770941241869971857135325765336767351764968337708150164761731204364709840679592273626075031652534195956812431438063808344680196236409791580440014046138854273407402688828511216446544580868652063160960026902566031546511968043136935074612011500820814483957449794221542850640841892441012708126274771868666979173782024617185758702034530191288314276266516344370095129045590140184326299334767636031435404317851517145380583257699566498149305151020476433517467088380349656754025406141434857050918896985817011788980479401273236209594824570774219386301030052963857327760687297353089568167008349384724287361231566195058886432574832574737301480960497164785552696894214044238465043311915738624408463839063509066356844386664866739668050945687596615543466123776708106664827368561969311716417827552972388726006476958656743414641359463102787079365948283671452303857100954902048884906375506326502337628420057545757568449579965176512459480470188017281455582905044739795882552293668620251833402320405752243513306123505052144150424104680846917035997752156270850012363490343690901373820209137273006768537961245160078458299359538333468873154653846181023890605076787094370165179643664511730528956740055492959479020125779276627942074917973222521239004017443209169281420576341450662004598977451351110280672392040407837538555724438708235654776714016341020961840280617493520879466307574150794729839021183354463697126861813318262110583722434259141784550338025402232116307733505015230064528277154209181990128812648084089975986181736214960771564646571660602904159308317691762574778333368071445723607077831824415955340197962377608046416008282385085707945696753485707112845079518060062235976502167172027880405324059979413100683752167822746019284164299469425992112438435140228864800764204727103087849098080327377103114322846554509331704419000414348666890349642101008855585674784890704511397804867644632356575595222880111732976124338362921186316509783301829012350628378391112118436076247092156949655777393764304871715167291994634031969163549737364142585383760680610848210522936334887033730494646579482604678828287130042354568794428206873821247060197593605640704784648316835351382708821699627184023255633791280753410244318303405760044806822499233748904965031668910544965087360567290222971563702726148904346590326342889884066892507458589216261387463955874381083365702713475007186581492779637218257608897930069138252617771436947787280949974992586056868639888818694877524305030598428547708587348144751488002518577824164017910016802528462984449336422625501972998467259140203990659450191350063538382682132611596843862049066237961013405160429569468076375649449707537917746855719734877993063996775980059171159398221613773057057050531900190731178142761040906004969936518380511108334875537485284137158682495978968974376950234612304974250415153057764801118195281617773451005139709728600323674058890575351869623789052855469096376183297107983908435411554151962321410141429931049608521950148783297965093125059822251571176738177941094897497418947062186738724814251865445690027772183087441850335963832571015698399443535671963153302217431873716307661050154793521961555161219217936611280087657598462801708542974397747248177543273373654530028821432807361490948208862692308089083742771557131834716337384582809601294737021513209992972142620241981260315119297866902919607940812669184417238281590322024744287957261805129612967517455025079105053249624453799952663003633154334209429189245125003200732726778626733577415121152106358804493287660000935603995367216471003542516480462889104332415337540264258709710712093139197150998963328348331250688707014683640725943920304165218903641384231762808876625326877026965040989555212136456401687357000609411787437120066083105078962421412460536754724760888944294474190361008416116738808886420960266722825540709487875271263294292123659106944887263618298666423330534397970210977612310819137187802123753158712051433967993153203432087038675209108298462910642661701217595284151202854188806373298473134407036931308081038662664237978486114308776461859444162563601031628167002729325815041478811542234466500279892395914388673471377370175256230054284593800593736372650357561352771065811992219440122987297151739959016921971527494557763255017315833889497703486319725471659885304522739288710410894572226428770969595731349714149911525241553443895059080769454540978149765138634654354470958000064158888949190755336574378148455463093314596195834255291068877397503415920436700123877960672166064775398881815960253205438426868520604158039236648962796016593741528707253467019489157054163002316559785620503803280939659709978149314362096737198977705850134149434381499213767092705712671074647152177655323030251463782338661897839648303389179557954806027668940924510080809325710706256011308450499305094777628848135319343235425338960359840835913718597843871013216818843467008942222959606152509145124587483877243319404708227038391280076712750997572924898271959678466546857944398998801009877148370532185945720364918271285560246222450073702967336618976265345698844385716764478182262705283651645054475435322747736616216679721502772733809836155013875953030524562009357826295738841382730141856395845907736881213374180773585041400188344580119842256785544164592638598237062209704585112122367241708227465176156758055091301079487642160686892678051022869952986164640473943983856888087399591827596599697012885692311195817677606880580532606254680969580125313903735557351761257558431424904613148237788421223697459345603579210018630678851612736789439794107554403378897688300214190284246027484281511680902604937151496641601299277946678738680175182440815175042328098543032925450543858497484096432357656505589920754847340296175478738242666766245299064863237549652088176066350656607030836752968137192176437232514479720847069336562741716795235742766272171589727267136697024672130449666445463359916056071584848484394800598444163251644399683329546467357072761651319970536416802926473738074745429229124951935661609571078058872915457728617101737899396278830124046470316682025507014554303872368716493915574656874462500697220356146713939274198323284616415655681970257110432483398249742685450006727309823062670017985160813163738917307126221443066599793103593319697774753503360008818868458735197562239010678687610984046035145671718870560041034935195740836071860405594242632852015069763554654003957835448878928815300853747836640023786203157772043196906073792606614225479394639589917899720150111986485115377726118861357510507497205665851555565975627273402992458383151222481329617229208531340349103956748003608214259298675996111441101242414191624637052383100092841711512059240813667906702858311114829049397956705581688100569091170996666904459958407237130389302883681039575388892838481827839611122196315694458518244315283390185539884281422288914522093506100994111716410197474441655817121584307914018367412679154820259810060573284038526637058795322868201979024236026018769857787913042728971595882301701548510085770540141777029930347881587723757006926874142895721219565800166887770318377493183875447301106116899987165723574255794288430996384911352356742238747723790278879766953226564193238691855624062865733141420978733071713114314042978661721809629457016046158003036361181179245247165322857016557625576086979999356451372235003348684330560539987902839723816162465923410288338904011617451928769982188410020425831170705308102823449922052045680550945526811584009282564746444859885741779856780123250579848521595507063130859843661097044463258264806866131846907558027780114988653818491511705642935725517764048706129068003579401004091842444970217085524130708323658756773350586272273506778421289094367391441585024146074746287268157862198274403256605947517593911637722160672556663007351610685394136617230075159615970698158274963512145837341440738044983789094106320832687960066363107610731359652655531752411919503787868692208578111997928764690704179174042016980809191891061689015126379686774100172229122410941944153039002658512877916452800667042030215828018485868942524968002706420761857159795358918705151288510821391816598446640677487165253480738854263210834299511550697401727370563680960302532485542121714960312665947063701877842793740592797924917921404174002574215215937399431774296342556809457085958384476256425761954015779813333402493404583837282874468127565557587762059727117913744118089692894572045829085609538547453530563213972300025784357047725263583219183814192010696916256892891472219882736058784871413789009154243936461841730939966723229113542411938528036846098440727041814246060786705932508685624951180264553023727375531667950683799577220442024586566566429181115890906092082573241266819862104856211087930365790968158891182566347980259901542700013433873981094476585616618973419091135835430734312383604943580124314713975773072463802610903930454985453542195786577573294353757547051805131255482992872213680157175378030431021943352081458468537611704137670470510666717216741233946751751726726184599569201986303032417169308392887716246166815914785603544371068277888022421393694892598090217312657095115791055024914924625559605068256841895587268339226818963196071202406823805780223123651272358604908206698220231667091770818811528375557735957072222319600655544721729202890356190074068409688285368351773071461747722608917739001435825785085065679824582419248195762518721124978720884581152470194517213815453002912615223602692622842056279426792724156911631311486573239672812476681290938748212024048328467865024877547347022064254795105054542730359505797148616726628557388452851150811651083891177413491526667692734965289928291709427236696875662623625429934189437565919988878864268845210743430574324940739868353399997762800111394213376485543664268861743434331879000190567924504430693752414955761022495388767549205194884110711724606232518217917676618155848964230402326803531535862080791938050990654228019352097090192472334839693806853052566015735650726514175824653643624586433424792939692347186126532985377615768637172377254903651790263063590942304154414239712729158350611376206812247663894458062389253181304001482388981575372720720707988299959733563844254998715060004114923421881265371436270920860785171879945827771663807003095607709315020674380837523483592019008866943550034893222480192479894781961196699983638696452174776787078940311403779378111588132230674133330303921194859539810299220431437959937605016599200810382952214278493487242088340782175225536677659457295490853018740810615189530491745946909885200012802496947120022088997352437574305720707951869922740340080471399457780050125346908220860061315607240829821898435305396884210043773306058124702173495241723716221847184694372998542497805307981342743782534745681909407013804612377245892768060541036445955230474241283519648896403316574772255095351552771305872602070515236103104810158876042134323204356806804766168971707368992031817244582487563742979602315229462405375038207919138778130436416020984963916564945041104234991943372926216591043063248936346503805892885804915482429195171716639241771527148130430875381091101612016032390576168212455783121839682019465500389379106385997578276833007330601956287687889854691156979075112561793691021218120601243282205308077287433812155617476462153962295876719339231690074459391068830508880307613433748436532950715926842054529738203441145976550720481745672231680629240380767174664981680266575449734674116496286436982114978519612618500456321993199350017236820709980374809525572824348622178337258285806690073195500220213481260443684546736080742299058657933892940426613718167789163586326021671271736067990074796223037680251826700491405104036526415558008384678406883463487254339769100658664051438345170807485846911065529815640440052426383813202037715331097388734337507944239549063446844825424508823221375464437844110231217274994093135113220937223165644707016301978500066644617247877887052170785347574861775739769953590227348918863810937287611570764036747397511127313831028325569068189901614954248584606127008817108505785283803973334872945032164127127787967572855291635816600122658838818399459577956711666084637005241990909876588779797853683371294338467859051682703620545674487056590020914501154528535953851021468732152236508961960229494239010512344533840590982701952209003785569804693505576853612911274194662467748522996641682176241199965064701730045373832640657650970502692058567989083554230230898700374349089185011168405597533374569409746558546913695428842558989915284090443891779000870729079733591015913774345929644672702513305044386505455943803710824567207150658748436126043947470358001670107134149425855978600441329242728598406224163107224979133668322063618398698228190454697650832310943070247379527898486890123252109022577844853375616344619241503777873039804500906703370987997896960278551065982491740670784798020344241669594264652158874151206155448702871974678252646282619707783943524754777057948414299722224064712235198224876046889333230092252305478502018289276272994355233363647766435042386696172073448095417580806129469912741638763203384473797967432385547277852552601392140778026470851426682935122321554138479288598099322430651158207213419949858802001391900124507629388171822678681581564333379960650540099638745159093512072915104131272814014843111942546748349635600028354840845224344830610054657503952739039258951377380026957269373244005582209437455403404777567371915893856417419006905077668883996379789845111870952613512546359645286717903152386906836800418842329520246216078827616809810931262668960130407689886479440914635837140180589364876465553791279589458644535837235960804787627015778219933684525127590467283155108618968000690583958609047312312575864849087850312847623923465041490170268569744833559876915252612377220426789302215242877776048639421719763881051287732556771759984254677695217706489910674135580479977466822945586672921030456434484234368751730796266048223681503031834415990878656072313547748930684273123018912881665040007855082821046168613498777481622792207630553934162358879314065470957901764517047895763937438117012411004154895091720740063317964098653098434881505694023734691110614508403148747094598126956352642746514274510062714520661527288810233120438856740392025289326003065999120938697886083956132351361412890078214657818107135254041738319749812557279521628113597292098195198720137879961768337511262055625003131403083250725700007369032601989922867372501287331705548055611420793832622834386434338052227956889995759734708763914917036304121343447545289261293000625219469344210324108353818294047780609713685475769395267622013260230090566636014720389264437504624676348768243056355606358173543255057780993167488139229432140542653549985179071524220770722470430070712617942393041909079830931450272048238400756462770284571347295680518463787153091949016462970054358920690901892734306261322922256031543403438792919446128376326584442519560408917655267098590200299980891672907106138179147629843598124436586821853066174262747814549095633747623117392692994296073761810375118397310675001874929728006810621429560449279782674301495188993235521061476145362380806961553620030365579883331445958695440525950226226862489921110645030480242644800378820632753795850791091510724088309922712668075479091806730538806528509408952231664374339417529792697363709908742179122668612173397855744477089461134111914291770525851032599340656569111917388811703318804228694372144444625816062748703590233316646350170275369577417366808055497725822360060700842567779014979220767719835264594069774099932690414562713850532806306251541829038058917343600725941472146481859377036852356183932693520896375640630045489644752996891845086008496271032629702083169139833713469830271102656488098049573567956580862207641095469208994462797804069880180141410038612173073356249104540764968026897218735778892313848824189261076619501608716016183109830257013404799381262783855068166252073683436027782939245747918579154862636545005137474553888075464791575543604557661372797959727242211103986769517245084974202051196841418493311749518119663204753995626759149631887852606249118228485405403247201869226604137284342664476633029954494986364985511569378648694441202261795370794796647726880409896613627876465661243080043314023861031955547457176529015486164857369250852048976050709598373369625627630968124434495651415862562440440087057814151866335329982994210576406931193292104463214364568837828853307139715780893622935316344671649405030321213906367574155112793466288936421764206933278606183950102222000786785923798950086482653384367998221952008761483641304420095760561117235486148668112057850676191435028861142587260103336543705380404684154005434872697706996472389657477039013135236628776260229588426086739216094500204092474510574311859812642846475408209852522268226722676542361386015649608165368677941832242264040500424127205993112491013807987092929525694783100104369496093463871141423342386390877875984059253880593616332948227389096507171055842115463555720734643833189745368870644876235067266575447413911974002268829569054103790643766766304805121330303427248188476849384726216581699942703775464915588370691187993478806924186112097875434069386028696576460788680305161286417788191058409771376222316049577905262313640203067080644443700653558152678155307923307156908210957416536547036579348860349988562957759523714901776562686560499735273992132696265276547054466373514199743841294195425792941495901535031807183010369408560221887450466804965322243945166495885081132485631387512392381601512093369162439620249219192668659005603218809844062063037986089234050652224514501481300210808106277106961945634032816749960543732605436705173126187437739069743395938326147015796601818148057532978650831667466238582474597212217473247470945579288097931192722434995020189323083498497904487664411848746953935010999325972175878456849905517239788361854268787490398377506739492654616630125561415940675047655168436483569483044168733762850953938468331565932461693288977081603933667696947336197311370670211665161515901607492629797831676231087730462515846723477227784547283879909778585099894483797858972149812105578664263442278639314786233944041311698806313683996331074095306272510825855087779443283832156842150120993063034800238605138940835887076987765579934455796153654207304791177340083391522373726990486043824555853496425510918043211291816669621262475504559800782550083498032895067582399720724551019577184446306000480223426499651323933346721774725049013960759367552571058641318780766364600478327569336228853134186625659443584984337251233551091030151509582614106649406269193828214782712180093502814363594705681907912039912993959732750940031383738901418552379892067854470794067701765234572109725571888177015025417098753892129652369337175494714281220873284584836622241486756520364956074446324898188990693299196696467416199761846532101704373133130044239650159743785911853295522175893002916668784697559489192870705508948105240282879898870741082819206979106993974708062094049124176290212556260283701699101008657503946148043266139971019373744866222892348696204813593313350615981869226197737689256686641525798254481684090080568989944059019424235300826257415027365532073692906170622403198548995365243656013469348190477195792496481243519773304223267620061743629827589189350661965990203628536763623295069641283026155211621284955587252076382344795087008851036563173669106909831936112168274051608309303678555991386448659289194478567008926777748924912716195392692381434718213267999167035421378659800921531085253658300656300461826619859210425604640895934886907054624206754663082755916394521782901802408344228569692934997866779689561600974798102943350835852612293019402801442569733162307801711306711492818051215355148637489040028218826558057376803818665615080300263321018417431673141698536904429644266362083283516833585705051402686426978082364466725021568806715346138497918703267140468805530422733520466738304214774243921645418876249502018113829519049192595394347045634787498390041630845892896507022165095340639367871233519759034585053749981362230236233703294340214790098633831952507370861725272617820866223818117625702429934568896233963602913318586793080371892932888722719639888825941442311580719175008431955860949955362743055756221032727227563033524254148580935947414097222575021543521920143714147909320571300193593374303105599331711071867106149354032096363099356149335959525659177601433361610637326571298743354008508768796662137288156541089280440971292715554360022349423451224473676713659352050375044150045650969471171497823761899544040087701854886225421264962230406439145700562224370474945654536695841111501981983965580039872701341036609659759908269830964788636623007137989441406928908648791487455530339597373782923326439568420948852395914215120461748541306448657547693990419664491472251028420476205452945652318676018584631468070091599607810056469142932792398192600779859452016434598822334589210684433777634799525557660181594375307608924316884843143537709158944899242481868419729542266696878592403021646494868383039078343729220476213844309754087964707690459304793573678947444631713599550926213884433914337701505697992892540873167004024981862724366477392815055440687944812472517205285792085044535046329496013916526229016896038444486589081359769905014159713941233269677380516569371640419111639299445260828399827525640215836707463881558534367480771335487012795092848905765965378737887550192276275861591777665940280055680083063248510007793061566456254867685838264390823313659470847951011918364425580862590942788594255044264271897467382987425983517845223350959222512718265705123328457888544176090908837728535935304192900954422150980675382838756281036575281959782672844087248257415570203624074546929107563357624711175527341329309000191055183819631338151953811156673007077194390769294711513442858126674450065946255225773742582384166354922401476751727762986264177320966156617138022979492935039083424929820181690030545200271930811103261110124436525148339452052421270746854462503789391868332393833946012998652746014802101288510236063491932469279322431563207890913715114036182097003204434282276409439987536915723198917488084899333397338756018354398942708617334170348339451373573657363068285451793796695131098638384229940035451950250665741534176669561320031724582492359664486879528325686906490715441446664083882894255509607502158123415399429264776972816645446922712575218965411569898362852610688173634921397805286343067212680671972077646334145209413377562829699778181839448086988778649669116828518354952214415012928794623299596999347453478704626516492247436096850736711214992152407775720689559943752478114713960467389803951535620828277435719758602064027616806502769138704472188765126860304224845106569869312713148978138569777645008432284391284599513677250884235473863800031318911819262622982538599639823165873748023387968492096141991867613879836049801407326939196318090617268056251613903433819686146208657918951648152037710440102960044156221849258457002489938465870123395725272168707469155886105339458301719877146422303222517855831303480741189602350465061662195178531354952420605335406541248386171212632616502576652411899827982991773968288562683679513781653088122616667262434200312136364786270698264540608857613516235965418926795612336543566073502026265962608525840479583050477010912368202296257752669738016499322290826585145868214220159409152016430629219037492707724615372358098759545212579973171810675959888325684019007090401642390105546911996115725024148603211751762988556141878158287157879614839791780189703238563789370180778570881460474158169192749096587908811587686569670736378410117905427604305664945791061169036656939916200593900567671410093095229232482910211378555983097621922332301462187629752984082178140971879999184098569276257264828231720381032458507180092468969843978351753407246272397673957914334711061240694981315712304320417989114815770292507504279968271213337517736538022237064572721004995229435825448202256438425699789696660936620302738070992910714803076146289884010087477850602664864696599518228184450325681822893817931677575176597632967016951370394477957952425343202327717878462423529651600488611573592903584088712997853312517600603096985828347296204465116478756435244805993874283832746598106006269361076051425304044111694403337283271136064526453833433438927051621070268317975968675566513936024519363294917873033775874786043222353692697225616435954353383742970816245834767076067286730141538018002219698054628794359075235932006660296237794892500593296868216380013034539223662809498553640697157911099411871140998336521114103063720567393827917243616369275731659290492496675553435228313191394471333919946570361292926683297323716960400045981354700748157083805160951837515771805989507016040317594652518275067542354740880262309319448314730680070520810012446207445582946577110968982470598253651775509152474451774832950129650411383167004268996197033652744807614234298480085337197815004409967649421211858196478252440523335120068218009756610018338855710026281077333365438240412420510708431768387995327405767069139990258533976221406175704527883774449707081858440397328719670644488925838915554234416181710607202884856773836271111513969780871617845518345508647912546922710846408475163986022940716798191241683090785257639785259963564111897072110636292284577362690094140284836436740567275155186573653722072641861766312887560995109708900898687686153482348004016131393557383417568387598210031673252349204711987432713459296140817906279049404880228524517455780884687639813047075757702707377727533204370166716255253929088189074677170848972146252958289289547395987954724375520996441469876006171008782996490994452834650365817179139411704621062316936523590059645533880968421471758334177334639799012041374863038685648987711159984171449921488116064679439097246636896007606653293216427304482531434829582394441725683048183674451764130399058942842088744875665140487219582372205465701247587953868470687535863313063109325147860882121988509803489593048516740502023894859172050068351886023079951578295783553589467415716577457706022630746999704941513662265236092717539151667855863644471226498677720459415832634052793741446633620267993064318423995133508773684812784271972816367597133964620648202954291663142954589506219329017597964695955347940505244227296421887241079763490401927448867775763915728624117950523495896459678845890895095834124324115738437406168054392142736235639038443873309632078947239462364632995800050356207189303208546388787749152354459530296175219414088671055170984830209240634547232869336389070215717449593977594051240613866140968367650605354770367042213777627836744011605553610249734721278347478406930679173357401457437747185860179430504545493721624144321494980746719099651316153875457920626350476307296246822003191775044730921254028848686037981051219257020420894156275506628975180037088651710207647280554934431987924418488802074828614289795865315764399214380741884512125795649667179460861898939519630816038105176704330658878803423386172709120379872213913670141782119291395395955197923634383064324910329142686095106370629146931280492020684105752936481308588784486032177610497138742688686174334644471937580240043930381280645057691730900686272687444205298223568517225550015618924256187801429736664765271859744904349053713712479705903405787747848267538428340353534218815614761798898833268574612304918942806335962559794207540944669092059927511954731480186781536398164755066966872285977034323500268765282823881769515331986896294934660317606313074510730019745946562860951841944504736992107189473810329003569659171971422861832014261343257163737955541807363803611808078891200400010518467752349037523517038860338980007186974369733551173300536203402353808551613341471565263971638232397754862868125192983260791791830116773790450208127573465905338542090606252355782756622472729285307495969403143445645442590643386031389526435764921805130340529672577911225028000056011639750414759662705176233232671222410258978612432486816603626938456532183596980170246015088444910459777276552691805785525121106316562913951683703250771666562350847855240695564013940528387974282366364350582372865524659514906563922536789479235562500921563399859192186241038250572490397754044489681588766917916812730392178110328509067283646438382505002085124452102240889656405075438985832267168489819961694518519251410581934070824196214668005398352156082001329339263736984097700489428620509319665742032183785085216034827760762111405566173764730110326754530286413793783317009984061399332587155729506412004724250150944814330804150252625183981771781798209150274396684392461653420723986024700321157140251907966327718710131578594362730821617625886842253662575467313093850876224304287237214655218872002365029761814600960042610775131185174793588226123072139912637035827833834015885178915597994321487462597452128399959564264512875745197511419572582185745377037265554937193828340202402950279016097214827529120507681855635963903484624829051637465657330822655874751375261783549579105517078779700264993213017060355722221143100925111518220477481588157507323087962929829506189191507198550384513567552899609075574178941683420478704962076105372740982073815333728748722776997911199722455859085579637913310819905946978714777982014954708128518427778345020130346933823987491557408454351849750952407695345906571784372172805743101259407424686167037570765743418274314377709691465380127677547221392802702812747123168048357815327623547146711382657629691757768659541299058747506488512790701160212400486260530704875596945036724109953629208541538683607144593619333882572167364817384415022136408650737106054358809380009173941039413540787307637021472308151603380215339661509747622734343741290601277307517281581928636347333409900833867443155015335074066960208527942611583087792125428862309242606285184677547197810055460497546627452402248040056312915722905993608464807682269293301958040354178861276457083340105001472599266183801420786517077748711489830881609847077387603115772411041890444944262890007218953395098723870684520151458767098989892468247422522766677757616968110175073507575168407264475947331497525464344885827512348340483308979105170766484072437227016251238363340584306306292782356694937891234386418146878835473251528131966102066821896850269474844601696379236404883223936279750737589956423360067583574065370351548407063178133325734414608208164660270143844840196520678987497701425027559547520237565400627151292199194204314123183039825998874537393233059216600083840413781097739917083694242775607026715723819035452271201240579062002933965299417495275784051986034842738077043848561148593356226339624875276784676988403133078845924414467575402223618478053086452596063602187364197383292865087891347447370147006818262551431078088409563050661213577058303938499668430999083730297344621429218813737189302073268937203431746763779297732002789258122510452606071653949982308140651190466915324217213522656757450067352064202014691330864774611837294163705549626979281279895149026238772798474615095746211182790259342120533716710018363892623091631072181178520003553836740399845657227242129932665503571727699489276311599079872751855772977308376897297130762981347575076666797596322469672782447202531052563856781424899891647962921368014640019026176316650804668171662903663318498746108126095855148926245199822581886686798928114627251730647942096238041930984494905753022563576647356143446548348059957175410776779725794656636284031657326942655425567346691894776331882182877610840883773524173968485405297872287868214015410031663727179207336216615163625669185259554533484069651166700835711829765443626482037863186571283120031018123732111208195409891069736315926437438100589751573926543881497503566135568821129246606609446228520718326969573597027688645472376650724399066845391649721322431944092025481003475708010520973513436754907544409285742107462085062165988831516082270640848609493812300299479712292729219634964267174958746822197027274824028100076125419344005709279819046192149375548127200936581040936046724294052576681851549669182044155301824577598228638127914327192581896698068071834722038955727319357543617971694961483631013002288596714848094103116977092866730566530457003612589423102531768173053515647466137391693006726847278817598472145002632912644885176014526490033820840936412040257545255355823603954792191221067289401180773326402841920546180296726954512160320438469760572322259275191674658087533093950016652004547641352590031616754258789188547189574057032234433305888886049341818767358507847123922857746163948079392729231826753653175605631753788149242378978760191699735451428410392233901773313921762223950815610602323418358305026782562350587711480857754922624517994371069093390288411175403355293169681174811093194790404729650322071573633455099764899139633136788804537213921404545344829094257284418542901397817000161795186447675143558891680196283401918459519805216268998048166212691401345328979942043053013882772911618691606925115530217276917329600403430357178369992379755230525746806950929999468096988355367291612983364561315563359765047099109370088551655404575792160894123329755294904684103439278202840698138848755878114256792939856258582023987249585012553404781670294825893130781205468380189871358282076451802596109701491436474848195632629038822862600458650542058371923690465261477303811967768418422019067448102245989231698214324909144398895025357884319744940869288176599879233163843151122167918224221457417853119762920686476969318372755390549128959083812331209345522202981508841037807261093121710817610825641091963228106208485221577331361084753401134078883196885464398450757129225819288143042241158784433207497126874605619554193900758396857088482577149686425420191081823216519906063307268219309942237566418453659888100816519805677206119884836799220314519381943987758580548693507110842388829894197733255272466118238594025719703109878359274414798026609382663475285368300597986414174114790342301817633613217754146527929034630876278939675070496353691262155470403490266399345888006534570480937560741035357981846940077243669484856375954642182553028071831632855409710103163161733749358829315281597422812325552546718233981174037885282227813558285855286206243966773661817403843121281904971237483713124537994752490564325323073503281930114996304519875836890971461744214919747840006490872132173144948907964365497238297855039523449907955805684987465054690831231279384194775250999667737543494254754420688511783437766204419738653952023786131736744819490652302158466431409763351327835051369399703904213218744393957652224192923507278398338046363214861931192047401250078766040833776088628945045079217704662612319075660302573625497220146911899200978222625069854131405592883787584329029938555191305928242412818488038591438410446440074924091692612450941627987338977513401626101966090512524710668183625365643479266734777349216860702472104840415758023773465019245913066471679795413032754747828921720011096246951625736932503264455758949220069786735642895394182480707957645610292928488982907433888856422592868389304519113513362167619744751201563912404733251373539479903265091236452848990973110231674726473774826676944153753133056772332535787084646230473223461169189628243040018189697111086569258388442804312670455720529099690369184654690695706903608239768872759333605891270270455034016298400714256175985465262021854802206906110374756074253534609319438515748014607170395012678924163734728055944067980972962370958323435802795550407441018258514604302620891651543008285926352690031455722802611832910988068075717023877210894581418493481363909378214868499264810115096432556066827814088406765173553294376025204119825329174070988867619241944382022202460305255275161198042139999927353933038314947830248176417148672722328595822054309711605517717585387117676162800621788787777629031238970840615937279839671754697762544528390791818179635752671642156328975932559208702276880252805064128269415516781334875372112838264521518846903974116335052695331462868018855680723402551923092360054795573300898950302342679105645106067049445562728600023111474216734495019338627805693288309105192942550675882665216039465750330171404021382823623772962679905605662848617642122778549113235496493176350755777907508664042597614655574940877961181755114090480176506962587228582459409449819145116168299887664494415569576119706516881505512131888115682146016021863033178230043754492298868827721821575271657985839081551181432524006541398840211910628346018909688273142246965977224491700894487247555400627772884424437436853992790202567130846854073936674356106130974957728439890257950318617258822523232689290960142295370889301261394637703138130526499773224708873319250061807315311962288336400736551964399800129946743359359000232393364909798099771078755589792542103458707339394659555748844883837459324739568266476400343933477454860867465489913112588390555801285963567585574987143087196542043263739272185087349965892124934249058222088958556399630333268676304084340723494410147480743570817620226615935717975685056559045915441347971057413649109439569562862869714445583655170731565814269339517925861584105659929277452606020194738520509105162582259884170114688850269132426973494741382111862794750112184196864348918385839838087937372558040301247279576107395085563932197873204370675042331037510001896813166085622717604676894513945346888292107751925665751942227810248733666209221723067277343623646188383105533397212527074129427818135273035318442106212949550852729008299526399373251398157843905767267160888452733312722530199497634700111328524621395684771682753280098954247193940851658892455611616723341064898554069360219490131096713738056872211222708704852022297865381534372656711731325267937994019745545480397702674351231448908775053706937280805914306457342663734914501874731557899760706942964914188465164125255478629925319759819511590229955025325137289284510970512552807945513054121484080669368956339515290170483229988466931854830084673812690067869158581043750878148870171069257369427344545000620111954042073287344891240780897606040993036158308951457059295509226813916682225752702882136544739532412730776539404394603589378532717848900941356879158837344965090209961856622488419691937763137759931400276360598224823467633320046550626492005699328561547039295200178846937035053148636017620828493826440863103134704075584290779274571267595941797901767666257000037361627682868101275202896653792550272615795516271904845073501514564889142908514039714416885010434883430146954394600552360292419486879438352002258092576716840035503186648401643879688394669131906123011506723597764370906646944064702581512969030365503302835837561730484901227466563740426243763293325175092640075858708894852353318852227536096521197093749381642611666583344669289208879347235216732375101235196482580268288771549533997164955512146393222243632463686543094951511888093292681388112065118734348911029098537626432437991206762825400256434287507977402104072909528257367547187125293756285536752380192788369879641398078051559356179923474419861493740192123953924772726046191085066117051607825001683132580255477003916625162542106867940914046293745885782530756088228127617363497075147466739788324302477892378994172427664124294535718746124499278268421686688185274774567659826130801961513376033657820971307356387874199134628632685938469480240374777565003659157353334488485071323077985131821234023368435381802770343952484774446299211963827138108923273816242319566097150513605072093657343694786634221846936229172528757248196364281089472333629957074547902838744739365265765950166526310962395925185097900677297425785741728255427348335362263464272299354076522474974211333734991381921598896700540208373280063423195416994181947474449558395030303348075497276440061296450279344848080009558893733910975982760946598284029308395715956783136332903916848838544641633100190850473926180134577037919284728271018877502239625364636973363772592833332848518943254002913702143145605048999835000645566041121385349032087556273008912742666833615760430401240982796890995644234902113343203665322014776249902685698123315625091861187533849934998719833381529694753682516017475331978244678992260482684404665691351388616536366539961849680479973333165699073161996453761433734021229699206554108129530345249243696570066534253968657733419281183174618300824743801391581127461050992004835138758126642406235163371610786715642822043921698375925993487614463089079064433749124922586956913489310127914955567076537214183220862635105882483386253742664294879292823127692967354200020305321181549213939220403630107890241866421773751800276717990944338037658818226664855489888245229198626165223070585011333552010970705338976084182645672224110794905735804652608565647001656907830535805973457766730066750649942925909495987060048076617522244576474087942085673920592966125193902981547235526814998635687588546397282163595521994147306317584959039846310845697058975334987837848561928684690894787337662292264112661905266082371884762399816567213216116959810196340726534165787690001071894037454253123945750179213423508335619019693961283939827232371166381480357460075067829333332376604169439529730675321893914297329479444103271424347607354985268833316475545111996752285978224690327694285280401228881868445680780031795370319601584568954922586835989840569798261912542314354606713007071957151076479544173783458927610918149602301027439080773373789497465623227766984094259046729514366858649682102202642695913644245735647329474128064663558341344701118473339623036127941368871806820968379378086826748410524394798663252312151439609966789089543544920520688402763689834774344718150233171688335221571048338101633919570338457206429168143393058903727414903879519518135669097682358533233557710066901253786645998268180130261205947042997135926412257524321420071441391096848475247989602040780571134840400724796699311387718884159908555811118955103859354364414865057127123333040986616191056273331546355947170650629968875268610588731955949270287975938941691017605457256472125280237070779918533543561704276073126020393315414313733831233583901848093374061279262949398415273563461853461051267255881539922144325418563789915940123116613218832489493208915439564000433911226500428112355916687517318086427746566688642983481684856384450114630621611522026488198093585639238071056189941239026823256488654447189571302151167985291302103242505306300379578884775729763700590193005775304266082764054068985630626387688506412361422020368133494695432404107915904129937559122319922697148139121947676900604070972804308045720317251256382707511352277087443592858558983482444220090837901122905816753290267614690764136285619113127834382923983368779840700073456197556288344816419830990942700510280971552833612986101791719814728628276849773967395848151533188821581522773866854156037395270679031368404886422906537984287785116177429183485189928795599821487429501508934743571971437575089955617238991298465837139304899272538177465434768359329735361159803389362944774301984328730757325648816553116010826981311645974176374593121024085609439445770762183889779080712016514997083593134393816164102982120906595265565523868040230086107071921383627926179830740271220079011555418926160709810303724321960941908506310664867408078613434280988313418455645866831354524860944131299874663148454831026375735864904249342736439066693476893877607304864684181024411938123248267534327726711917339074857259950803539115495524085330662337403438906147278923173100808131479806271408798117932390060274588565285771073041344455616517503644351584291991495201802869156689261381714033748809758207829290050987396080255810525491556057074937719024591209935056486323243531452171640080652102045559371461594213871537456269895606148440251995273280283313824169126678687136764832395289997537367496035695796998719612917282948430079062043530898453135979157620601955898969144043281238490617103502083373736358560748149880486840436412084809549914415484954961241908393926315048602972761670441780426080337474425522043980436417709637471024012204891636118639587594372347932383194004533543892942220140946034806140298380388330038762846946115064624056583693337860274573239290657780750982806934882395440378000628443254488841453924210869289657970575895806135444259468137678244620837722575418118646183623693755087913674529291575879598343349573473901112538695769157780633915795791288163157020211227654952769926831109819446564037928707183716980924306344728840450654082904675576006372168549219877008498462104724514566738019255955262863752936333506020324168433425059533242151588525174487163295457588125084872294637103016710916594101042438774687744853266565730603377121505725952336952400227400886282847219734160013906733037737623606025032457174192987734028315704662123113663542032115360577518391404196470332412551389281674261184480812201638685746039544568844644845734036922053469097223667334086480579521500104930144784630056102442650147192019175750724615997685232152252923616182053336527802675386270769951204167674715006795136975922754473692841071693112397597539753418139438032501417795679909317007370201655069153953400191092438146119596393677007603080842018282791651997220309540882193848728620689501461279737988783126042527657180270084446894386647855434979210433442441999089328754534575004923390391914082186772295483648565789347868281469559542387292481201688437395280340724979036879797533383079150737474752824030656366493533462706421423666603064083420366494644365359451334930547145949972482851657066715277175258831264473811847826981049956413339420549672171600404107769243848351793332471227201038455972887882552817967919482242331148180751113243909403640061428691073576121704341161494199201484763432538709289156268941343417981356258349308619004666726776045469701937445969890601550230047916529332337706625699618321711151155980266895599554719098530359241288716823267216658644966898855335937087222455738877143757501265375097946947821322697853411572332905967440039576214989169982688129000045529279097688526504146408515841248040979007345117585986746742415742179476666258123545123153150208233781009254278365421266345707766929660304276869416613391466547852743648241086046142541606977539746200569707110205333361393837301616774381004960810927963719860942123403984596091853808458923466198640336853960825381669655583628458841586286316127387133048262161522429277603405006590611225003287517966650756720215727604819501337448907636236761501623519024835460142496807897880839018515082927569333120960277045796942437660026388922961129702859277796104821480661578751861367524603816118522628585207142926672971778431895561897128786974924001376591952057134397970134292047740797853812330086559347433291516767308913828996728623994244971055045233690328221422547976156116855637527409565850897264697428772923663962628266208043706631146026181737077872110518056419116990077576224041509916972736430059825379511809286979530418343036303629353503800517771532975135606563046728008746032448677896196624810941046986378342043859398654415601188644904859205393641129150695567201017104750647464041579179921556349108986607496185907458069261696836404261639657522936491807623555059782685339371471956644316742914742563832989449660479663272001732573294702529229182935705523919170794583024993527155579228454565174666641974142527882345756468467417683261116861129587899218449735536903469623865038752063829332538224205580583673445614785962268171753881333083265842847798955923515137588054794990862161142440754587810543505530318957473951563123629288639690788013460058216993077106853558477815112914018546738687892085722174360786815178972621902184672004887086087875296998383508771641267711162870888125581847801897592819848355900075064756211644436727406215658883050627901765444121693039455573662000267918114064879563918585417975346513025259763761391839761468607720759334797650313896134615373515581011374352680354460715404322435117122510459144885982604321360990635659246574808003994861871892762628705188966081018114372519387086836900444167525013210600988433555638163331254977021556984755350371281672549574890188359095014228161001664715260780126658819486000321657594876584806878154923376500631812814385505464159801684432941933486788537477576526849108051957481236635996333470139958737753568003829101554297803576328447279074777982995715820430594846913137840300256680695827331437685082703897377374294489708193213630426430986692440978216530947979538495017835394505635520126729572126294190793553126781589203042406748106403832404635702815930020306817432071018724350000942724157326393287495415247702063186438354247420880613060963344838948967185736897777861133235055316543490003504170408067454033559132727360125708146010958180515078861891968621355474563065560957658471746091419601923896287580809375039272141410922528530082990736209901711260595657231485478419768533242266245790140748622265343868617694257260234173574707331569614077617623759935669618042893501850756787679055171058319513405862997509401635958806657927609616545192959527493912162335649144620781009198866731977957855953753304199979903284137157048881675575852943423718092727503653746807200288258747515171442247716374654986515678234514995454625191581866982872575071608143970041544827586854404099467542470972769751369331346247986720089843833632038336309926230754826808654255411513220268140129973858030194082327491335381235594842237068921702382780656709516309577995743094555441620950535413385271043262735173732981209212157393346795381048777979210151246029380979200643809790470593366890264629838370838878085909912483321007917161654469573721584115832153266159215819472636503061394118859829809209264355801061412161748294674133487529780317539651120946334051269804986038518647396927867377284132777283416331286281673847706022041218092534057217224187310200711518535039669717725673663412637948320004365315130857323379728790134644107277194381405826887128093866076012176092342779348133907958763165176384369730617680717107690938095762413429947737684815213710741016205604523481750622703175691691078266084612499433992149822128215640674033313037621697256499990024234039710915853990162245219615058635192031096009342608252807472820983204030540557694496176262845620872816254762547415136375411566743732244067893543696321387378993145708710380419517128632876167702627157741483073638325567411649693376014877099093565743378153207867575100265743372458960924780873064170230726039943420110034179336040605835524933224367380602923087681450098715223022299802433323011729829316410693535669450724736648797088133054788506842244909981980998523807456760478684651301122157406251252881105704734460626659363309583116837964586584025443450036566087996903832098275301565037135430318251692248402329605113584750260712891133210381971707268050822304362227706647616073933469225151026965146464542020615581314997854598151229900576388349212684885934211345998470284680716175506068017062393064634581740104971990083013945390960513477612905574569408493863387707372608487328741561893079845721432154863764765051065897663258689598250044610345305932727276460643290998539661355119601932316066748433155185710594566502247836938254360257820074410399270750610873418408263834450663699616554619355348721844778158451353092479611615267773547388724630058819120640936060733105271705128539111585075263276743619700022675440173718597754139623267123102015787656556574927408924491142872967495633296480959724788296921753214165942541123238163054559494551730014721647597345464553535940075114150618495045795490415499215881312024624009384277092349429268350282415500942758239006134756468961066215366111250604241305327674429507127031928184387243530885859672750859854811023325309455872901875133035361408654171507667143296102008654042073885005738985994316497636032874961419060486092148788310987443001015408511979569736397243279250825158012430673297103362696365055088912872118380422858013666522224847443990179354940078357681303995348619936297050700360805161899454742176429928276715671430105804094393184331101286382220408157143355042653243783114004354882167877907293061608222977897457609662001538190714521599554802108474368983855459475307937913056405289269776537285069665507815580991127423783321310833855711766294730125286540418603137898443488442439618866633402564748285329893916361309463336330366097090751063016882988905669549319456276702539101517706308489976688432250932040907937077050850028035107947941950051981180476884624250520679368023632852035122602364323006115349639936279730108054152144867773040106809514566359241718902470532573612060535114364118689274557620433096960871530894936603237436075357618659368637660155034471371295650066150347165287348482520017692274460611117100135531248281274361279430307378889961905624863116815111145352481549976484936205416515150713944773637795201465636868297360130123094591201432698936077461639687068941811413747283653624242003948863026413519328227637354058331416764108908878834576023934573085670610722807174005588123722003795346590920244032356436379194502725100912074566882893029190159640270048113405676795581478243574547341396537724841525859825371162074676169050866738560993395887171368003411542311163411772366975647722999065663671139640789352853801118411147635149768929363178903094987440153185393379919769772825091522498985297207856945622570102478049361043246001288987487400155057112422518660943369361997452600127746033691825386476548318711828864424276241838629608581964648644748328910033700073062675443112775915952445608527913490090282776395879806358118903208314703334929746977224867073155055387880802123149972056306417343846455480012491792679756580245797086861243483844263192797665569087720424847239830928102925246716473646218028308743741976163440393892040013360043691197097445175100077318852301885937828308273619595517632199739093290491734323728711646491819305481294172456685960330383430455736738728576256011758415881519368049458789909042871423615723176526137573341134656725393467513191910682931864055071833535932478405692276063565650268228654258039539685070535547570631301177635148754498692911121923332623421222315570451375710999946276977811299147911355496806153310555844234641360483053307525435487188273890825784012178899876675691984230686090948698090353012828186450829548854326176738167363826238671952545951596333721388887741051676059566783273571394733442407472439563498437548235343980713166173903320785506395252493004759756060689421932405964631281417764511021928184263594828867817555006452241406991782130215294490227405567407827381590208708359584723608032632236057536665292052940881659479872186277863460189671897051466525914869995992857485381848613988568959591780812278520169264438908641998894372052892390552305697949218282561265053257739295339315829103601549250772983124470024186021871673262115262607592272967881087478363402284061442420177686024486022757153373365612854722458867984689002885805469210441267873526153051588851358214695241352194750788276405360176679978982838578681858826547838275772681673910983489466143393474520104919053666946640608122664056467832630588172668880047283096044034597552154565843206776745658388660156235038321960160289258467254199155891297119660283461237265695665955760271297264068010886342580687725120805618435428757734207803574776535168871158024417200681758588284271102537101761490686007666884395605415574076569353865698237852522862822119113980458281144126374597314382597194661163466380416736354814786116255195564885431722491293316774222206767302115869127496681021034079413361918289222421596713831597811696983082458000013580821029025070368412893135722261982338731786374074220990230267540296175237256197957279205010456954543138379467330567498556374289009803699616212130812357290590136703199506035104515507298582760848695195652012832810742278552393697873744871063854824757548810768287097687764510425577467468637665896625135131215165235867703542434321386516127720588314946467843753502100117903279599223485414918176739613250663822594058778753922465009431397362296347880022174471642763048258392663171610140485193058718471821769711621828183358102994209325655459411010224051099584002100517378883481128268709680614558807236478240161034195185120305412527806757295473675873381008676829512989842512459861426725510126372496568293337018841962407970456946414333198726678062722923570077743612281111873247155484016410217628703352825034777506889983870643906211109994135875645935620205433064173103491820225773149003291352306125458085694869720355260797635250476823679383340897453544324635040182243134606588124051517473024479823425973641613994087907953523910024929927176652744460539312552645345159495870313358835342673260034001913290394186464474780175017563706207694112665967299094980256072108060613839833532196475432505769761586134892432019796096747471084430048165134068293645086290182821207801048227317772026259275545941670648103550224903259171387162870230212399336335142293262062083852881186677626873014334491688021107628088333439458132992899200205164940241206373211718707916402863116162290152953140167628277302291145862884963941676470280522927876406395487851578506401449601775577537472551719382398625770644399430315185546118436474390542487294070509288422026603729560100713682377596557218143129151097621578849901405747497447521629611521661940290406939721932287541585965692735054604651003107041195154665987020535524954690040557247965487429872770503814217312651388853471104557634062100991038945767840136182834159625207724443275670065019662238533591719332224825329000723088368335461927046469375642060706063949955689961355148584642137381199695264141123055059901529056534933101783037904370515986257991806073017552514450326079330332980511412289026188186230672445709751397140759349806563473639002001545788638454454700337351431001275623593126430894417082675792947494125240402534327470421773130970833806839137559067782490646695031662529469720036124378373353032684343872387416273303301687838486482515404642285603443389995836454153221437168072042312062918896002024703774468621277361894989122619983977795862423028697312093429191209841870805439710965629634120842506598981035000271712294413125806361839881887390398692217478417109201136679611636476334060218405168267730687496703816439955947609072604628842453861912527243812889293568745412780209012683576856133213587294874366736857805761201603322882464126576338481904140900392455486020384356844191333611869137845461899054938821203034636119233753442422764303160335688945270998117797582709183142947682020708240992367949664324374122395380090724562879272115552607590809154643404517136750153459780213680330220470863883560342451666384578895768182026440439870264840774090594987710578602813836898517172210412298133583867414961258007922261920752885004292517511178631578657973003094012371231279346821285221544345484811398173597791735028571949528410063412326141607894293399699361329949843295591228269678696276260307592050041052606399463019793727191091952421170177567747293090787640411844499019534744747482740453304023621685504572222639394090285806993647651397945118462693554056844818099399369512694565903296821439425884110603496419580378962589704801432947907105033382752727920990222995255950902408056518120348461161044012037885071590468269581798491268688495753804665120855272897410498374851213134544627179466435494833392905441207522602337918630611889830540486994134385892912667569873253351547518885424717909893963676701749278281869431998689293509897413881275965925810449426650249886657642989068791868540065371023583878571125528521943729246672481300636618191361258127265601318985574233457282275008323841592529823888175745889307952182373697048047657106766570245230862253879162602799226197485316719965314584715786131497190350212888394719175346587696579358424070806661245202266364847980011289810792977874947200033061882968735646105971044281764857798813481395397241011666987622829366172985768115038645328991095115545081572544664960175579794384028211227539288086069493646077155411991151088591885264289953860252003871836884713903342153192252078458172311285758476440077906307585218401258167556403651459273806035874506054730171467135859063301075989856076937176470851932127935446753364189078370634302466238917232438568079810812675670052435120324809132421831730837369258671843193815299336117140961185472780197547271270497059177723543533099781121076000921326183539360220175270359495937293619405712583606032890022424455939976455979594706517789020327327274098701476005250712744038033740296643577700197192563152392230584410414634603069122117122764960495544799980200599092491787739994667333262602919352147439527902629284671096091285976228673467186745328884132100325634626809754061513012141205494146380722885779856094060622434326086892886387516055722501330739191264653827413274346648021382944772128843526529372210376595575710951016332203455253495240641823211623594039112059721920953411188585510370297821534918600344318949829110879097886451178879770259584218329239745997911370054606617191715887565411453441328041162667466373371043106016874432822659180138466183117846296259880284442799761750350786557371151042716796869771381369334445047505888944123071499360871134129671113215784025765270302750868596426767115997216429772321944861065289236026241645934790449233556486329499305121401793240738420258017503605961868142680731205530101365642654754698472363369019252501214335309660437704939271682926208878512276090174548314678801819511648960241783334520320712054374906158649625313838793877254874996165487615307116420818470007856335308840643474044976565048729178214956705204316105188707153591053272355579494294549364836029619848413647655809500244426371581947936074679021337489004067608079895362234721121047604410866339986014623373068931457545984747878772384697904904969826716435398976178159202562442260118051057843862052618857933611304600411659787223282366123161963887047356265116831395596931256862770762220061000869438722393480820580945314344136868137028219731970316259193333895887403940120224682291761267027368213511486443408492191798730529270676938834641673527769495786972171452804183545243849460581182776119586887445463271371383654685397614433688292061825276569257196870984716985354449432601388721995192652275827034922080966845380635986922494450846709338114025411572284465122738159782488065311603572002567471783032102892401858977867750892331809388205356015851586655944999500781878156425087034663159731667271139467329242359854196458853182020724594886480605418960359610859473816741453819221901312651859369081422761603568344505098885609359191249536953172345091800235052639746954762709609167913650963313907422016475355364731128424369113966419253930840493439049999547046897901747364790019652783064912042339956712898579205488080031279608901041672316536360365780486768631051602671927934138771132755546255517513244622087463811400075844795951959973945808773005045886238916687766782579996123673421448263630914981431076126084945332472320190496385414963480972949213312707519503070921188135676666447160311788368127658024612945667222023574481578454928430435578667091489810533364014068536453841547481484598890959194364235414728466110690139320297188881730705784156173817774995638730084174770066360192608814492894526807467499486155108092286767645651919582476353188554240790779014012143330209549704545734575761321178556551675166742407468332871699136666776804957058661077701540820120873091597753637916895190024350453599978847546516874016630026529041792927379896229705144918746726614497738322032875101555345747210823896838480426340703105478784420161161750299935277082343947803755955438084747756453059417059006947664405759157157012278460669949673080334731108048947803333978077827371778062242704449671853307857171924565732831254567767251173108930439077265846596818595017459257154113234825786663252916354492367477299184011374886922567251680256110074032517057243021780088063301601550818768423951830457751297323416646237133309500815330315710658503412015580225746514317417222315947593902302330085268125621311537173037451750539756550203639947246853996127222731374783815771067377238495078208411434768414943228778719932280943231659359776913614532997404343981730897101171330935061071987907767176254845072185247061781832764829303219028403435013355569452947161773802501433411735414179269029928861928330565541154808389772767812651118843290046480883285715191178236358741420446734985418323268906608799839195554446998904020239284055108260620668899900415034944065446614462353099155807719812111391402379057062873058288806496998660548425538320650928894985547288160883601906182874603768369053202352489609653415669652697482072145786868342271742784047212930168176684281710883625658799116324214941651170458537133628537023807661808374102287332362164769857916786947986315791635394064758370651753961072760499984190163496646252121907675658555737322751729588681082133515648468415325051501592048411957431991385210180154194099278216149404135659777175084740242778287712429323307880449820186618082250791022310677196597552514156190094407541005420484152775426359622787493741723655262202733464860834953483452996951599371387113883978914254870784711701324292341489035212082268470371226544816632027990839795820489687842082240337806912743154169272817506343436529830565128154502629846232414650274721163951218218307888354049532655468124856004126764167188063964525422479677502029225700738367020361791528506579082130043383021944523912953137471211099500634740894024343189347767869028504924221211082371357400004397593362308258103122817285416026582666034444579662416888835691432909815222499779305465537809019019232297855130957519647749079072847193175694161407146764785277741289515422626758950591928928667550230590359200585826598350643689282121337705300681181742879957999848563202694069809746700357873158690117938854215586636403004486953702914226419587672265057807836653990479683104454158551123557759900112429437415065626269350271402084473263221066748938631910834419643452181920212687832339983217924325407612272171097391214664300054378693635487281577234605725324765551285014612088455370430320606209420086902225073299100980520950938172163132948778968429322916797965885835592932236870997361608709198089093009704681030089490449584375201333632615625334249514826440035112203308070719157784589076357431506355820994479695917504791556083916762098396354502717611126965949843153013397451423008983173102992502854935794715346502209366773932546336580619312964354804255232774401631651181529697438617457374079517332000686862929396952699410823342342446907371804004362138612972282148299053779785537963447012401965393548242945047049915485380375467828003773099615580052917409949364476538568157033182695006211027312303902742554579393295320110737470637795338390252442784219960301135879136953899813865216770424737339234819849397068138603614657055713657956508834068437461997968867903388203675419025757014510485525938871774514155137533339900508845570526727702950036427016302263557467810221448277932028688158481480853145267163647797244602819194624575971120526392701032007809317972293483641696941312252842864427862027268570505513880291441879787449754331302990081129677595410662677582050115079743899110590383535993710840009915855377892828591546065651453301903075591878233566018650074088256102320418163625483452059945302244394511219044166718958421967063311626961152269142170156433198922056274275292897632636957656171116633349554164000469630692342905870946693222896717618880177755415385652154367763042471489147980846418152836070535102731766315213765836606532358457575070898289626413969873280544278469036302855892737332928961391498005489456444915570177377484584505717285129088394661236534919736349462644087212347214474095265275298118699535186679774100480870096907561345722581876486601582003493443287855156777337274027936211503686318181949336172449246252848743287600259050951972846488548349732558445677970149231241457074327753451464754132794163367618335379935762983392464693353117360140506759826075922640344295608122612958054063633124012635487490643975868938226006742651729132435164476519693716027283520108955298741779121328629587944611529016927599092076071170651502264206343845374244453929440217288431665640555145033684320249023711391034617949786305275807303958089952152087047121301659746903178740919011731988002244631372750398532290148246552154059174675316145186596665918911422791763014513513922975080841370407295471910039111639012075995904429503869011901804345501090175894397044562443660174680265735964115655277120152568423291418590968351060451967088848215185029991320079083860933653761559599201920028083793949707963215668621612111600352994733398826327049784400682190015348899711116398698679291492029063114970421560736965120470224966411697001404148427681339361455231997129885399105972175795022329170213205024942886208411036110083904230316422954108285035113138752446071960836965269268891094749848583671746344953501090190735896703366884254094430535784550543761494068602589917805260572615511247113173202399989609196924635070900348906356193887029750674195081629180124727420655341271122362744062206783808411689448062129047220733539983884931864023383185823392964502900974486064134364863503366241638724621882838209716603218537766219956081240525202794117579295054446267923920994974251570246250031295121198963477965389707680935207678059454509640807053626263029424796513445659941736870361527049287515953732342685067100374585728157980696296236622160232071791061540832428491141012379266709587813265999101075475162525039239048397404299816365838048355809654980396183096702888961460001287748876727271683121570668723881168254121316659664500998489076331200362539205555578218125701337014509920403305296066451300609721721106828480997985460739163100283755456811208560374613696358575916432637821626432741396502279057140793185839042768295557788216172903995278061432405241244906426026405989213932754782971401649103144269476462896427491072072582468938792795708726083259136703208811893235929605096325546813196785180071187995824148677639692860338155910942080850233399918972650391541340594679384177322263729253698056109811503826558026637544212661695070265337174500470667194273145925215945152919875381563787622683656845936485974547500136693414871415152319170272401614316511762287510814889535355134011086548575780770121185121113797566938182349529176026689140553777745474787234794220967891457042448399963532752747214083850146553935946583202438836734066251483316724062747312007274722491565702312622281708562359308077270813265286337000841440797653527986569240678782497158283790523029576463780141231085891947386121476861313776047628808405968798478471498829440805439058513626178612376320761231383144421879508756389716948668684949928174248525915398772753748782348324873371339708895235643514580194565934168535845911758968463523221866391395166585970135951832877825714069189164850443746080251305254049132870454047595345344721310211257609112854929251368345090208550735470104432222800566538604375740893521434741221937611485096988496504415270103273644056206661211464602683595456937252978445052568604747766284394277797878181074597975987693229656469370401757185335138945329547536302957811192466520063388234246341219938262252184789157347362649277005670702367543580019852935332757916289922936832439605024381306345831263105600355248453039002018663618575756702206794767392341930806765840255179509143834631580271611973493297176691064502813464522349270249966498767154003500022121400957328929497104397094016451183956185978102496116102369616400757419662610257420354586557247207319110554187158902064119270958124952482958018531326862512638280522359716478736358989391844566696488500198634002581981521679265614721887092619216607472962245228901864345187808244127960718664101025614631165770800786334973334989859291625876917896972238875204776716547920164536505518740155620446527469349468318380539437363081904760444507625162693059198391270041133084646132578436502203423967606418888097476003654319268448685995864348114733512314610934503615540289189368970650866675687301077830299189236466098922732026384687976993715550785688035829738129461121780065407616528616941442880197189279857648130761067942057916204933857550537505709699922345956719096532488631313672598779323645070409136507782513321472858883707057213511968498989230873495653975022888614089290480050396513667513548915239870024073804572377964835714461956636177573497252596773194627275717178316387418474517238681415519879553630391883710710394610590500629398969924091088724161897438163698841820354325537331025270642700516589930297581906007671923831700810476537778053573664342994980638594324461321530498666270649607044300201217743927273617426990132661923026682046248797803217555094733609821381275562922643891918255413917436884527538733228898752844178784691025017737579475149227609257012608987580601098470167360599619157081279878931077409374792532653390667402586336061857588435279922894518887210975526706757400021030351134094627852441753299941301900996650139743868697366135561000605099532078132677845941739299934526752308781300082416596132685053874605973951664581570645119579212554055503844319376418129880702828805768149294918973238696519752984944229437293331251848542918977281660396688385490313897399358712043303596751250982839977034745045458203985577992449172525886750145742669145013183579264008672992542716087388640695221663960060103222443892410714792542321656348444127495655232884316038721261525219546148070195127558978600398293036278424656829611306397818858066983620096227921013976891221540914960896303292704076557053128655285732266345311406564977450005500361972093709976152160653807284846281515592868742949386891489876430080117982653611748333911144419595459276981040287871450938957776499528621229300020822538320227045930229286773757702446476827464028596730936394089742202335814141301588986451249006380092590502859268455770890841170568209923727618359708511644280088945709811750447515304891146738395593024062596082557690438967957672351574767480875930581483649080004400782173994802121722265836879762590090372983243195853171656183633559640554747811775052717298831824550601225177836617292623762189311825117881931337723648581924635334147069165847311732972051291763692213935562007764153439249989099118258504600537113351994333630618961317083420590367839248237195426123169867145955199997526990668231853641969312993806508290583334136839845542985234832838945444988163571829987404309023726692411200252678509187266768150397302936330197795034217707691994965848884859605183250106285020010012979845399997863728344659706979392516599763848491231384551871548600009573822273238200003819327033411819575476280217622667882087261213765090494896502442757472062958317321618787343286539218915895597182528386169291686417319890607862702717895769207694856754811297502032727275311597162418329062136411309888468631305705879339139061748671473383971652131471838089292801774091481616875063807604571751759433483146625177898926986383583002876688845167918889345709207931387973490164461298595714765779012479666346092205954398492502269617690918353884711450025259284291078841230430526686334188235874835519852900553860848214810871893860571680140815076742148013693304648465934407061928562232129472749056095008238991371850647647498774305429900450154228087724678189836147112547397120416059635487156795220113230841109868302715144166503876230915662494010166181570812469256687063189400120466926991733964364450439701058387926588591070504261154573443215859253739852306296387700359908175438489216513043939615408560002247140082793642447648835508348253388152334527661555840820549459320609188840451392989021119228365314650408542527869338990626515559523844464252158435127691611573957830722695441600749856100270795671426162110149868760734718023876291217596173907549480845640349350019771043899291331830741308342669197714267554669862496260093688506595106286351182905928942306589749075249236314303742822780837334955959560778530619718072269430544861825926464191804503801575448458264334806571528393794068823201508526034101715771451610327067862172274081752722707653811516359828544232126740121457938003749395677110508163320625629440109719140088898204346075248436375417372614493290550775219355188553916833809890898591933278313880926054958912298751068083432814731613334016705605343380958842902152808556666127795585924154294098166922895811896846947509703114694922706985035650198671293742439532085054077703820882088860593306860108615005995090723665115631662973756988475758236504001842761730842800947767746131306438625385479196188877036850553721363669869105088979453907646574671270559402640276012141125693693044473745763251060693500578893219808828568798520684125168104120736549069518358987000870870602913697988384545594562035150605666986842530843867204724013916396205436850902057743694655802020460028594737270150665383280161383322558448144846379569898114159357729282600015620697536908688822687502197126602169854281081721215313281114416322252935538296501467664251010113182811872784066922336759680311031010878156692243241857321033328832371324040656870234895953547479729458036383804064063251925040459576108705369187937939844212453430546742208039366781720889189828896770298328556899005540225688252836407831136361209704644197591828602900561874665627255102294776633755563176961608231542216356578866968923885739390659105224763673746757390946007476056144904291046021904657934793326613929429280727169449574704494883426222525771839070830100543148618075238423042126412369052382574781169756776040287125802263566493400093072753165341326462986717299440953009331907668802960772950825383585775036897263467314060386917759315833586417898270698494183507355677077462681053731318205735527587578273505220244249821919006709372110082298395469945729381764376722163503481643095968052870072119745662873488309124429549397557978250222463583584935398197272365909658124547377366756524010592980580266808630909246044484593487440894157920707850141914017581101480393885724825160037797181639675282444379485891834565970705153478297419575442556147393260610779407784227477888046378519665917674589613225325656626578273179654119126326721974515068279814984203811953986732775812308586381133693163417139979442892306417815185207158695299737550791649299654240598441297283171431415797385612971430285323339381348609294755908039908497746931895709190001405933766084449258735454996577367777150530291287411710362876933574984954192797856407113269093523588579099082085197044115374994944750049955192847069419849182808226384938678683179460463239477308390942836246090598948570121891724799096532665875359651865106631430502661925818232722365675897561205023335366496085391254199624656666137095015233804925166715836097951496296675731162307845925589281282343243272397624279766589667351596810326443428969906940328387037341879031015517456787844803231877578299948883351173862176211814492239018065514282359971760215837606808630070219896639777439908067461500750759774031698985745072668091145831094375092456492641512240097227964557248346247561272692437943067280906692697517655857522713496200216032809840281021334556517463158934980615142126475525220721330998041454142915292402612352201710012464994589240795243492823518776959302916916359078757555028896043930694463424258522906507775328325087966543092490150688650703539485451474764505946627436283128380543122355594758110083907756992132788294407751171671054041967332165819465153551884549455036493870891065919802212429357752435189862493062836809524972436818407933726441019966781565061216049754456326225893835418191463330816693445952871455827686792860197140253115659647321430895118763836393087681497062491830323743264760506739399485296531484518298933357598533379555468575252444467965428338578940666131369827259572727658210357059241979513384072389326434999758618774932328114118304812444874924214921194131103663684306354211613878411624288525707519086384615289976690992919376614432848083306152121734082693680588150227468905831313937355508450353220108416750018149978353166411315706641005759272997249566366208845762682695330661161786733471962488561391751515768596657874154516440240044943247147979115090103003437087813663709229039227205600817124963349545454474902510031606621079680396953486944489108033066933528610778240924229190620340808703259821006142145051312516595594997361077830028847434619411541450025736275768354298717489036030359640086367884106543373879578542584015427403681916015977946868748946226310721809848045265433960403794117564874164691853901321170351614022790433830770331126652307560525670438295118265991372945740290698785720645903922023951384424641703437107215496345715515434395363436253046313635248083546142031248105943739216988725653505543847823901831367445446631072980063666573537220662162419744815665516101338079444268067877927633709327482184031023970967215622632440807536730202562603072854655196084075685508818399145887373767186787272092488608539858818985282798704821070239302551955334609453694239125766720954633999324554245018034503407829754609647838126579982225231826128442619358396866806258428267778360250230968586246720151083741908305682566423581127991787095519530972070053159883775487549473280177138132930754766449600715286875076009893714307499803151163812335959972468035772743919459020492150378556881662029167407004227552452843189931054865523039530179110831008023327306144794702449498708829306948841395311387190367237126891355447266342516013228778602344861246808262873808746019355938325759192827011711352948808111450709117472032180242241348086415078079210476189690149006962019086526008890440847625953659649506557422913291879522261276359901236489401940979407729454483214968765812398142706245227558449676321340212089153960658962205846448086850564656705192972800353313992109727443758803451301985339318479837936322997829851113201036914783679344422454175367162533461995767084922197014109727721885371494506948859224070491558213076975562795538022350716351466516575865956734437041746421442502384144796417967974886442176617889804340455634321454306416339643332564091370176089160223426616054546035949206739081174107040834398573762289304755594014205638367915335856970534225451397228434599890254985703822269728220684692938892534520777138488134359172145115498595934347595760788816572191739023209258196842139605023582021119393726045457031570722618528315177464026541791135411644484292746828831889337109830865106177913766567862816781914272799907826061795495709873042234092399465432474564746978846418844808369483649374798735389676729753551725356977460130548750912939729663112827586307410166511715949846154966673265417987386266175501202556859239267401836991630582698436168585919218773679091014393099044772383173775432803509405337485747161974207405812395043491241625685758285558123565772801491172803829788614815192400442362974951035558951405820614092721701458382740557224825318020777377210965767518583337592879986710325110555060413015877686979658144492644250723616434539622926274828936935496836129312410308325518469842141743178401736262356527558709150518142255042261478005711431643613529541762066396519311656324514201274874137389945468060987001995379168321177909327441858028880465380302258625236230165147528190871920381380383185258486421880599705947524217332344773628721193365948292779943638085106037106797726952440306060350947774537886253866618337736632217278372935992882213146621481311933357732819373284939588500111940720217245290074447115679588278679983957002821825704740506137742499567589879898953803914167803772499963880018687309476319743802233791795690824644631884138478886082723563169405570300519936884211055777505578453525532995654057065713796442512145230633115248793084546081068863748361414863156070866510821023275528818530150836737191629909232703875824637043057620827959915094503999289976442939010303057190386823022979526856432117171042631660872148204205624400731338025948320658415199471981357106102751001524317058457815356133327448352312515227372815222924028069457011133051121771422587526733965642945930099583275899495162775220259746865685583047157651907207833093686027260675891779172961834956095275699532270922279251324328708718997698225529939874839917881890152111492590631732683831930247491533593313299561209679395355715888857450877830762457689064368416631710142237942763124161890387403696703710551179864308111027280790134904640602404434704316531471517675703824529493775672566164220897507221881463799849360224593133075736625457694748444115069387062077981226428106921032750435079496764882212483254098580089425679345710394916946369504226264742610857175326490961207717512242428114037954789944800942004130154161850090308678478705019599067093514135561673362390438102268868851408549215828248706613752471699308666277130953550556460077418593801190108000950529574004038680143140448700756700454390427394755606812526528541608218781855087133718830174361752250749904122583622776022850542321759331572515766413038443078348442781212853408238238285933635505998222127015257901954098596846211790489028779116396296915019750506793820826897973228143226590133435483473044292747994288339269472418465608625409272515696326176907616839721108551122452739619069221604119005944387356846722053077656636614245881119606237908667703573622662502830737237185985262553898275276558928576375685926150783885568647994596945168220449206358918492601386711342685804795579768391988474208143398418020928564446683820616766983590904450250685970183456867339086873355035838157547867961470580390390777426194010122074311238032426889468920620719410183613164889936035842375396618858262615009810648025602652994214109811828313624368040997756529420057172575529162724556147852294445396231303031360191228297193563147748993481467960958910188835522943520185339783565270157901821315209068715852878179162815031768719384479353212629183478443720688411295517781668522921915168302963974350096204115450931723977460283853518818891723738860950710729990775618695635013509799949029392349363285478607295551323492012620743477345230554414077326853355257992987703818290501976713055884877464377062691293378020061125519677475463058333410732345484121030438018963493657760909296537961320026243093467483772239107761766483301330221348589388109836002381518359575714230803182720002596978599771935157205911548171396034067406354946305236826696556570998071797916290862394844589077697035707473824417411958626213885754519094670855239016705162447654942354839434665410605538620139367172947899089857841948336762339088683057572216650728866890961346492047406623424282920400218717002596285278857875570083849443656698454518440517520849746603909389022227876203303861406237313397692570282767986314296219516607249526165638639333578849984198189948389772830572752597458189951838639963249150885873622610280745574205694018431427152217736910820824771259407321699263602426882112953108198082127435225443808678471459739735024813862408488153013622351215076361412398227565797322506389314268267120576707617080922677189673310777038977597664988789838849318507336553397584207055670863416671944733416511648058246917452092908751289428233250620792425100577771466186315300322984030001571736621029348413959813344732739560119390403685615775603734212881502946136385698515744445790631140748785767444470582525087977692557413590687312375500091445226431944957021211387637376315268507819573864554551487149260690043071128940768928894982885214471888081343218918804908110434804960262201874279814554021200352518432687309497458877660956433348955619713630930536928260561122757328124135085285069578569560825271198488009437118599086753576418118385909923846624797239071747428822115760199892692783763560249751488969384792346783003408252648938188659781696448483039131998411659611065393121452804629321328201885522735378896329006536080914326208455448596647020945312013125541856268228060663075544628137692533578019722868620050651074924049547960397305042240296454340842650356211279719227120160322138532646580473072115646606798608751940804399662174826018277744280499721818098581387592261697548322937738692263455468399746329035597208999161115835259108823487124448412553905986665499348910483300643547632401077105487084651960656173944660072338970957855590068448585723799465035893193352398159719578484938405028190641985541591823360082472119465008905453550310955172934132349854838730042016905259241308621276289816854318746794735487270651916606221792606511780975376992821397753362617850886723575807490944208123783400402213499235555755264295412050850715114665555642914249688864404446176769580436946104472150380472876492785952359585226121649240109534309572155715953711495398031480029271461994164100846837550673214381952257253248167154222585687898368159922405263493403595673739053362301954370416826760233485755617487536348492024320620923953441875614955925201039800815414545466150861848396825379091989588277262693547176965033271838968803388013784397717777528853374150725607529550892395030653399165081769311817466230601086780471579311963733831683469382977609229597630765128484545299766687346053501853324442476797332902835300493406412673527540203793678939865266585694314108910772250836926839878692185922784205164771403587084862753572115244129133269194080185693665252424203972822642538317606194678617876746886612475790742715959667480471260799649012435253168376411186764453791415783087654065098520801442188938850053411624238224987247212727656726206777047572170754847210002089475278706477241899060803361097035550563760909540822178472357704850090972239772735561116592219408305348098828036234131463473920438888906643792857123629690876904767004593018907856705438760027857867679027281787586100846500222593534158506126819179568868142154281607892438294085115781269957140805454156030954012783249902413141920672369976579328345321023880015413474686212247571198839007710777349519433763674980442107907541745948256955079290094180956938361314227613697146699197753495563240054189256419506392719136045364525034370989799354898869622395630052463651954409559337557638007453583425954072903032882539222065783631806616696552913302798135462320078796902592779871032648496753258179483605480486481465565656403765263251987452806178765408268452015011230784046499371361074485696629664548652989798692471605461153683164461980335513012168674064467024510764988473789380719028366297105096096928987120802892169071217545341284691865478238960823118679172553528765582008932832459169636207217311326430224080284360142713577046349605871275609652932923188539709270803306287081433693885127168226900720484126228671585928159405738426277027151719174321223528971499348585871365785837067095023578732352656899606082032949831252452989597647745093750976930109399596743423740078228022241403302568898795413964044184122724191198991560197998916249520967357820151357370840861667724801774029327461169239620577833665292542377719640470324817703369227954212921277792892931467512057655431133234239695618436828073878226763323204013570677067721604167353147171279349674805097288313335580433216390669940789497522731544102207032606555434376115186835336981571023480071137870667629922782768815746841445525842945400258627685367916938132332196082772729867363873062589559059869776736075258752887328711565208076743735520983087962131726239355098688387736114048214616196085059606681017941563540894420063636028977894826578840406532938166653730042541104670833897811805515238704904723868302432383030006200154213987854879343357813733546208407528355009430098247127820218178195614202179778461590057624235847313396047398518553827347036779380231517868562131751821265561005735709617488072270687282896416418219081663855569675384310801193606428508617947252306073017729827170529418574384522629154852022469765565369757994464680030502970818367151613045410655179754781911844904504219405417624227171831136004638951921843504027047864812444918349095364239910432410436816069547260552550821996146974713594389240458700972564430671828292386492007439445407644153498568058096498854046209407400074909875217831904643584231985804881487305569252967743612870886423409061263159713100378428941800644344532236821651031621227446706298627207337242066085174619157388264554320218451424143117339437200937582309525204952161065631440719610114356038876458195799880883214991157636153974362387907180086980832480181785666905489359752850207434796992098420671917213921133086440792585297968320108808311174961339587749460821918919276677439979504157473201786903504820540052765713373182900199775764602015637513451087396860533636308056938747692805025152678561186563225074039855420813105411247346239411602987419427493089314081944723129247136173840013769868613623394095401196624143678883529320244353595405367513096462035783519055335248521273270293723744950656944548950616421307281449597394205024187725723448455199091120189360781907483580185037499953954371992048244419222564530128595005471546715134012352293812708297661255089982139238179207691845739232237465795603398144947401462260885183700260978486910893209917484363737738434507456597976403315043288869178995597146154927968737271591550706732312390495590263975396307458357567571071569199477694102721463888967116792736959995098634810237177008292851832682463419998899888361264128905039164365941610506871048986862066576162833176357318353527544495743626072571216355528583984347501265876200975942996729931808858227132901750178853669384025291974960102680606866532312974195841892414009215117606306292137421790141839025418951359376496017908828406200352975443133614675947487902204293409157087721988979236950549916419881510673294862211076990605347759797568077851201563770457850327724511291903364346900244361067281415878686418450224194439995343138182713660274157101012223424904100527569487488184495387297628734027894740604151569765315394135872605685274783446128880394941000281097138755271928283303135739688099323113829531913188518420068510949577855254407459632898325067784246607564514023927263320868382589005306192453246706378594983968113102717104965635444898607787403564962775107250935449727452756319499699492800619693490191766533733900589858355946010148371171203231855266953733297316821309946032504809908289227649629264270557854500118950815118367243367001316646816438561725056202902127207967184327860816117657199641353095571778968274688482634739478417678708655981359503230213507023162567589578107723833693065153438764155983118442433536405076111184502529239648966092134509463963143949977959435779910291399344092664081545956435055576903739849858458569809750214152115021425119581743822063627967349556073262983984206844638900073827945962996286267833189298803648433734333285976008886642478419122958857864799801155853764472208458393916745981802138450312709020204760873331650190924705951372751451399977771295582346384053292609354025659057837938347366725291481091431797839320491852024698223032480321171657829013076017317933358542172349799226175519006356320729922101112840124485301405226509372257197981640276817075831395362570088676605350317824153834980339137462817094653651899689921539757301069146353494430859536926348653347697100030251563064397808296786443478349882632929728864720372806052520478550214247480968696068129727683747941836591596221012063421488339840465015511229679109438298661593668499857211102822996797854009536597095385198814905908485513023648551868242857558861300719365726776768735173613581453085207809522747450983577712440083005554386726876461511457201658539918330542177727577343362345825535679971034053323950638003431735834261750347509406079624409460230774716470259321723499489747113152441089468015200527233398365649440050286678670046749255688312294888804962427510861746409062556841428420418296109124876666934682181299206411349350157426806173324250046278695744638414507552580606672528116534945752139004077856102350895186098524893230913643573608139366666957715269557887449113518841248684526171445955970553104804900574904369749222565031777686994269918326970554882825168916962800191369286006856484968232436375986643480163416303869191691523618201653453554278336704670803825973164795134930933299333083630704054069177401254070964338211128469477146690847966842701901205491123110661258098109681761578350159073575098461264218483553983619459303775847070535708429216324820119209952293664755661348796413430958046104110459880257469603116204197452579150725132448255204154468490577728781864613890074848768428838459607300080314300398106138361896888984663738559962952357520663254552694271113708251433596958930801077724479093986935630593073505854591263830310305541480963445789315683906228741369517031731616632484070649325952488425809090355632868027250742350618972795884453578416084478123513845155728276717213760481570816432221318286507693192159228426052075080288625362993284376956759938652198084071880639994842387597275203926812387150757658557072229216612017553086312517597640526951964213990403121265649507509422263499012402331575188437147899408505597358765857793067448063941221073970687336198963337062235514761839335366024491146242492416758876001084882252263837965183684904896872214829590740099246554300609884176125488470330437545780919123657286871993854942684197941013842230939565399201871945779164036675179588621980482315747306995461505069775679018276237499678982638301771616801590809899271115082461975531217840169394147571733804478951556613803671961948834645641532967186100626841315587118352319868183146025735823173235069867931046645987334971704958243070688070465558686774306999370752379318954235221074020081028081597497258826831817968845554018787082912399512555686136926712660203147460045763974915574096928820145118482461725230668025026975793516425105139118355934140408111505615574818207209801519782759681529997916965602441399992061277437816511962237688203813530503035672656378084996196982528781966840750654674557599730358446887796205884842899884125295108475946947968573953706797645177229918623026275217368214758235774442329691101363805085414879728219295131520643009368821827968371756270420119678929275986835873500077817477568880981133254212148232891553735451830369707658391112413118605969680395947170523050568860883639756430467174628950263441971412506165976865437879407301097483331771947857814455468140775629617559936677756930230859416254785321159206865629048222136797164866962496687825778986937895071155380714004508556052918762891609156414588693716863566387326532160781946822091303925893570667249868771400239085967203618864856563708294927513151774772474642953317403190138782772191608148120684648394390341101210534347204703332305725782570928099706940768091658210806516204992982146527549609298175940346846956356017536882005272392264295489508401612155296123368509750680796641981637942678832904740121997858091600050292910460491342636218956369757326404611151628230346987985035058234204051577953188989277988144461285100726340696539978984459822731991449415847844526101640385697018486418823126141853821579038867791539768575158192957710803736205421491014618343797329058472695068049718520910811895748652411378121961383977304582309281980819703049412303212116750547385684603699375794575638663235675772512158741437617232081024317579314152441072427221388791971209203724786272496656414416850219764922470633582827220924329990495339749823519147170866314468948919526601655649082628721099700802907421900544551509695192571194698394163289614387324229935762606037264129868730852178767849931614490662043416500382879769067242201533631398001314697372099119441103719847585102021986319822363740295145539722861812295721860953068424197002340183086152513281860482923734887067842426241535840394487482584114843008519561176397201509434986928319471982617723888511151000636904819475267456358688077390055418645366580206716896428429946889341967672824276581623886551969096706982044632643990663168313370707010991159013038439894184824911293957791482548318194531217140135896878953164358262806234605613667208837460036947165867788710086990435812819226940168941214068823571400296940496955382842444091440689358532449576942403254932087415433043569652615686019209198377853716302581445828102346720877280984504361369778558087113418224997075915776201021680821426107189550203745138756241675704727081576218328429727056659209071958769492975942295051985279641538290091579698751336418162733058394656288025604662270159489355282035974762883394725615009385714405477102550276374215678833122908109403116247522413392165977241889381964267799859858249051516074223740901637526604374195914233794965596095575872495934148950963277471898754773707940601833985251123832175823775833354065069885513987310069916273873969694825635125044513674795813172340732748398145565385542514086086100172521474179194632804629505852105659344273001060263649803478749297768657020635658958279158325225348189931684238353667684496312447262091143374911374332941799536549463000499402130699007918781577549103860154904888648952678292910455688359083590104663469429400240651850656602014224518201264983471079609358377456113798637431550257334412982313260990728118540202106848624974530521779329362001636437492475673248911754401964077225975726370111386081398215661987749522425544381305484415323536583300206985752843689046833458947861133265305287279914629553830520969286777390395633611927201641603463872887475780974583998564729495857381407831407140592990607748621688460481883286239331913512717737831792845139131071056734749634500527933191016159581416515680206172275317549400174366479940070651184349980211943185921625857889813808402140269552124866149957999808145485121124185272646305405005655554154401444547004214144157828285137338332866453714293777763827436075190943447519549065588313322933677263871309136107583092625138151631047899665469914013205077740172385717653688148707135412111991072747255018086549904496350259298408948153173053156209138208904379523469806271342978887248913990916454104911850552913964179971001149738966012100004723096859570538638058251014169997763528215836461249940097132332628642004857751228773773831556413839950658395963535365350142583908678970965583478951406385683764668180858915223410058542125437896710703888217140505706729856218214567559205046812748585585465277618833029937383996177385601526913653811316531736844849468517674614884354185070459292240692907887575731664622456749554462450251963328818285299948178888147249845526736095596966587219906305541920860905420202547171576039126025631776540530413614985516951470845243281816973264735737197946558485555307777192636820533433741812780783442753709624442228502852547590352143189535185655725405488987657405513277178655679908196717760222238987305716405636736266367778897886640463885514239247491472001776413694577137527956578387560603379833636479808826624812856978244030379425331955022401786207651038005364618369703045068478437035482391053101002158961708440894407820028877587740473815398349493848341037166019768036520106378951377820252647773525430240556771063491920833929214934265873060850780491194961601933390353803572677446290645758336661609821305750530575404652390346360857790741040077987471775415534433198378386295247113787887128703600939062639824569987664178013875608761774428336097115980443606240200915491903477495019063916018694636284207614320884454364455260478442937393438395101978467619646453998140616496254226877170323036686712154568131280397519845520658745418502082089019904421505803265406700169719150655177716316114844514718273888545202562474836894675328422945335743438035722516269996821669478990219111010591737729379869302026210509200115245729016970086226379825317348875798579140222815375003164976253901648610521956909320079833227653479181311196291628561406319072820892746837521517296144774064676917726888659482864151679626019491752525106329025466271391656863838472931304387831910114296671101169936750248660489584095998194884517125687811267110177918895559508243981858686821428400492348607513058012296181420303927211790455673636878579307704828344408170926712587400849317664248142456507543116401827646396387190852066072183594529618038613398305078395885308265097982938395376559137414361439945902870674774690677273153934379173116850120329685655847343932425165655664540150833577437689645220555569846258911735790318257209176169012262185727130795735075333641393458535124306779569027410254870921923965904086799261462643782410306231468651273704653919181180550311184381082441651742391831649460090365530655526927109417630824104699033721865053165382184743209642253997882616054976576536066958249401921387602927647155874587265141820517205753042741466163398491275732300300464812256916116634039248895270151553146361294706820707791749142173552918578697920520224690591335991883800713343328220149964948329501350284345291567422552385787803745799976390860491955655599303468203944524353344053281748627447870438166504759025288004897686339570531223631470677933111149768827248399104036243989316527615535022421389871609771750730356259166438860128199633499795535667610506228255017942104323182792758934420518232547916090825606489666877692766894827099224577844062042040806173619206769260706053575740377407687272542457685890055719383267058319160149829050281420890693840773310953833351517457045961811584726250316346104610215638953342214971745250786728927073922918805951867458780417183586213682839111772453889649483250661497970428239987843203580896798262065973853556495537057405445568681445886469340463957394688199561942453650469411806181564074698239281847599678927077996087501173414562008594881661700855999030012829507947223271570691977009499280878119684409885712527024821013366326587873341674577171522707659230852045536267682586887326579897123904274500825641527504918909934685881913846741150063945886465222388402027635627771698562648869308232934624607147159816237422834772535480839095518650744662904065712921250500440944986188501900823610393243464389941320875471963621372322669953160153175757960913581552358135222582662734515259672131326030229177206646304564788448714027821848230372750329865272479567250331978488111506669703450036408375978152871398885031223601515805013621364868165070960387868454647294361051624280748611923253683010169687094803180799555191470559383181076615916168595154348176686363605476183993464412162481165124549917408287358074761807539678904561459707066565943561482741591422233675923071027150198448886053416947230494738738100993572057952587181969513737271935588262824757346858347444807647645510990964380153685229338472055206912989757880041743483141361782924362558526118916781893508746261792284424312846653940619129971738301334905031604384735409976967647852492059913946816265556825020261638328823268538702950809313366391047698431527556841699334475012982522003148855716274164343482595547581816309776733247144961655898904653812976997398472398303712680495126204875245708114356536364246504991248493515733920847159405429222145058281848680207737076742416872696456035574715514331563511700132725975920634186423323152534344170993319807027423277348403810077658536927209653519226783032879185272589906416157609236426613569960076117645156831068240372309261465359873032286868486598084520506372999221928917171133947279553488982900235757509730642592737568651606320544033440477087751334799318429521284404507691498837507343664570471035189484825162058693243292508976218546647674508463417169396093994774815629100269808679894583950557587051199626668061917907597081517974841019072147319971341111451093599227906298020349947879747032093630250602895349857194400236042334937820749991305365561184929831969762290145947918388419805580093728673847073152099731859894524091308089946407870458127284556660200412896110399383443295734699234866139728549472531476630732544875211591202960863030354023901183896030635402392755307134811555676433848048746705217257034316867193586373824208272511789200587919070730514427353801405658115818467049166588393546348492522501306695951753816371587399893242884964679877785277519555541794628801332926579788509194383602626840972871111545360079151294145746062973549849139579449358558327346646135453157437622026826240648764232573725233476223258692730834145860081940559324303116978087674239750495259679522791791185662997420332206822333826751498372778842775552042912575438163952955046511975604710913925956734879916406400697125085363129034351290560713240458134973080987654555149024752481133480506999457230532002469298358101627605640972820232052930813836720610088314339695601973081394789635461752906826404995292999117174422539189730337498530490822354872830915245697071506563862598479088762620865913011632720940667635204640609899396924594687070242574541535100510743494936706861692862638475410896360868102715548060234837930744235867138251811414336491921476994958210072619425065829986941390796202187990161393873834988804775747035490164162820236097303192718073686932752300693953664075421465903348900852717969276427550112400328668185837747346839376281622528718743268816377868745794805333486889276381266406988999684992709991511181498636256498924119994005240791643097321997689976291898060413373841954653675072474478230297074757035246690417854833030168548156741409340887171866017586661849032711387136111456420588638611762491045115158606421784775672420783318145063203722989283324037590615603931844656312536871512884028364253694236338279374964577184494716524185510392745531423778157562607585398427977548708474689957711911331656062393268034076844075475492039822839854311331319109872321575876418075650037816250010773859239121688771883138208773374224644339002596780449333752442067707695599509873605585682060218100415780492739833886058022719694708473227629160658932663286423874103974866709276115543907739702558833714179044350909671903169022232065155320666614175094621831941344778768428207969512099281351774093213042688846750410736591686684852786056077845947535164176183512068765455897743155098635784322111413552417022291645222369087009908735409236504323207255348681621076047987599315981120998060811415421689271592181120187076052051511409870310487663314920664876433356702090545725607810699913524275312008932009375242846243459880662189691852901198461890888849700407905862378055283221891638454075388945407286975493930655906284631512736373685148356554367461450857446445719596129657545702451397029327883078979303377442961222737737264883901322230357326630984199500915965461699392187638826073856879852441448674609695604831566438426854788699861996852411102648831965857431025178863933434173127947158666107811365593507423939206957337075414977084087525218603890816433287867363321840030510491652132741200110282481162382611301007226972656796128060940398335341695144188704675616808507000364821749464930789649727931162755266710971976671465260434397901315865302762967922408698011777394304697698826192635880430429433154922450519175662937020154861290270770969743760118134064833958245918461117162456282554919991953360247092270952373178424669942324645115229592001658550828044484417557148457029034016495932977203460336934485785254973179426054100278345676376369950815213957826826665819631346679194761860352481169409250717055326564295455977216588291181748506057503690742078268490248982066325878758301570791745122524915897973832443880703327703509710807255650269736006276911962666887969984698992456260545912689147663702483603141964248082110693908859329029196235933368067428868833658845065829466746445432701831997725691339396964396319883545651370927114178479164025872324560662671766050487601293295091617135615049665290437199284837359150650492478176249614765464750883516444133991845395910594950301830172880440316702647187670938257347216521692189537296576908852728726151093623613087065197950231098766235787626254880223671651439528833842562674561504072570324871511419535601384142697186748895288387240277244866228151287171756030072687399553988936111547120278946263642147979562477976271752695565739983039036283707140773890320781078059722914171867440515407321446233876568770783480147458687818015917530861870815271013382857439577311523698592921332874689784603749576916368608983732462885519162923133608098182710596878234799713526211007094069306087971757667053539266475417577698490316701468575660605285585600005137720267599119081228564491805397025935399423356119198477699886495924075427630825787161728174088056717019165184165998500926983809355793674747117902257162241409268285354345286201607054613479438532574318651038834709493865669486955732584807742833146811713377613430016954567609395992910082554126587246846561805740455865856225761354791947694506898534536063276365203303060429120633031817521906191594712336739826487046790623536301105048390220612471986530721494980620820040637715699312388077221499448852025709442650846070019694838417533859016237961836261843585775322068918403822550359309442809791512621487756415338859469003232140215159644462070989705564317232531869598335256394402699833779621432405181575884999884527971437414703981351599371938452231116412963028345578319034829827343214738356860283774047303655238450955105086255535774962861312456423162964236004876835332038422627456306115962408660154532294704194683976039507068940760520628153826699139594220506762408582723679400223561970649438359513555843684843678929725320889495876354478939731221192767925329028820761660280598798530773605288658486941414130583940699400307117543886432795300548026948961759887603669826275613230544456195870225244463976002982007416201534407932215983257342981998983734800127814953553467987216343262025954261485440253260165816218103696441591071088186459528245141038408650622839475981202696651449784625399567143642635028391120681816940287451556783396761142188334691300236944018732366566576959825906618740329437747699638297500266516340523998100865394658813716800008919091901813224630071448468088087105283860489260883925472475812625855807504875496690372450376199018432612355767409368782806449192066198501635286266320218395592872781002164404027861441271428547786929012042102230863792756907924130761793168334037111499023718742409542386967795393716886220267974372396269174379645106510198730109696195566579098905322944130722533692779574877588645788815220952043812859578347040318565860239250272687500691900623342335551152555105293154638210901623779035742765331421171512353122947542243822212197086696841499409966983474640491956659633567829881856107909529747219407627273103843381816383080647729604741844158546733158002965356548801777493378211674148626356649513628724036713244713562608287485150109744380812906908749390201265118023549780596369413002756452806386049767361263626534797646016403088120544543175752702067802998643060841369165429430580509417610322467885522127135661006365948157132178660625730781332565161248064547397004003381488797845662186988464461405504959176180736347274067704314926534334352463297089176667347830875393505740245816582741585685584023630721079313752195517587839823786955127311340726090686954598563595699016326268036568053721785368993827571131222326027703806127893981451429848741115771183020458765845217424065004216451117160375573111551284973258923426837394653697710803550714588096843986385310196375576676492075427033006241676996812586056498524319305435840086788576924604927105313602117974477691737760855888618227872417913157257654129883151575064030487257683080599827763854668963935741674237894605176871007109934421484340973806803093584898789601642678016240097385126708781628398843083266801565531379547372264267867378343737937321509555603646039870795197344495026177142112538361459084553886557274412716790988392838256192715815707354249430683893707294790465713164613607558997925618711919610675518848228614380400537074600102674150356131172393411242369411829306882564349511270726470584378074429471989259689550851940605567393016713892537307865690075983668336460160093931635098935402348453072852218423249593521493390966983781727462548136834898714245095267945733883073777670561717259711890760997369805267533593574572463972334518325442649063555401098192468962299912228852637252721502512978583161666783920478184082452764875270188307877941126883607015745529279934402010508770778995749549606690555536963423782834040892510304807536025044139667055155405227922521541944836903123771525062707977526214653252059557988604561009954654633479216340491055387289543757835083756863494136463318051474705343516272423123182875931149892844012295526303533533206410875573508157115363821388936418213319939426721854577059721001182935600910478926324236528399438190959799944837878563148201094639360476466812681692985046781462539385931509514127047097609030325995051882221568905719641916645308243769327261864999115089509462704501422901967335384174968155657120317292804440823156977151084647431518212057702621843602185207206549931227647218337267089126970096700019596060877538080171624221525932551339073318154688059685593119443851594460964808967857999228134110539520221372223259039856384661099504141431734563456852852573805972096396653333601774270114575009306244318685895035798308716575504866327983558110456346958170020199681779445969866371273965647090583886799270284283552564729909847442658767220846664156034977623106238647207394995220951853879331687598435575893944408931052744238991112601654106002477733978173478552918901593697241782848961788756044124781983385021245823047525697800350496277795106404194193705069023652525410919156440011821207442348016253426107899168725548541360933145685865641778010313825528129736126878551635240636303295782515238275464780094565993959367122501179401174242450412438189963637975244796079315936767909044694378567446256239341196201033323227699623399678492187681540837673833235370212673017914554786331839909184839024432876413324092340534511128083243819495857128165657903575286563414345787836938179381996010170027678773923863291105433199819989692730360029396957044094608294953660703966109036904279612992151219647228535792280209236418319637056656237326359863561673063379767440360328922975362097187476837378148146263679181146000389710717818861793752938440629071537622131768651088784296826169860795747300119052290658629245603373420710039082659350577345569753024913916464057709896991349568031541913622378529522254716457201451581169547424045946894616940473868538778243198933048179718452206602891550436975947193700758803788427999719659529735279707514825003907310968785303124632685157010970633593702662335048356665549748872829096229794680532249174526602616256312986539465569257887739854361267757109323909180889856301436937172043804292457825259143884216996826979845698999800931299324855615571524637095983583686350365217470718984487235346773982324301492469963506203754272312861572348315341664000377649496091116894441998192046176237789953215032012864104841132960728664811093688451997498652233251462089422883824001015959466999881969925806398727363051452909783786141287849342114182697226978347817636664432513315606714346543925331089730385900790023283913644955033119082952589152135633736046191781244973476049088787712744259831305680775573680588045885507195646651081657734743696762801461216053600892071568978067528106139012031675720491255107878781309954507792298067807561536586117080131353314098690669556804872900514936667173622783345092681637744342414442026759808020491289576273669690933790860495512924671964844755314359691336134297293880333220750074117403525912404572229848557724027452797003967579946984941004798371552816723714025878545760838358235290165130908107814992968156002844379356849655730903711723947521892915492197571791980146762112561228176903356571549410585118388643592793022624899126958464417020057481325459866863801617292027657255869526131068550635233972393548548938367958862621198364941196235107783273581919769940663335842388437161231059830011956267082159860781554347503451512371094116982030843193915305238633893597273675170365530793127350226624864592041814813335990164534959587993124991989197155846002025660331341214417731588417486585912891403655160651816964797887101214720921074288448534262629803462522974311339878506403422525984122486060053400133975247605509854311340651012010859029738481452427337929621493522999762607378312944195718628724499347694925350806921826917214181799001651515561082207359373692581874869670385126338457432075974814282692698806706186656777029075192741304054658078980694000580468728918081262228837846766252491802235760931379767337360991985942931892672087879272070324122871616569103845290422437343650730536273303208973255702122199550383512179584874332593958046936197268739842967643882965439382368358510118433496088193346739095488179067542868199923060922078366318798491272025602905093905434750594697208118488403760573877948820689258087323398923876952456453914500367906558227973191108744911420207662867886582052421879407260703997825386610072894168583120065045916756909746391403835175531799722166721584562661996050967872467593461698337345750885129119689874633336366396775486501903719487367750508576109938980837573376865309720201295644254935981453710378451018258537449919021223513348765717081585884381400255088672592707903451204829419347168561032474908507300914693088104872980862634095253940640746698613672143952680594655838755411114050054359253256170935696993565495273946584961775891477952750602072474417601060589543962093276852377054846539846086518025975234370352988458760512210306715204677662738997786473783986624440665001992698049661526623014111553847900755773866450283805046411504475255722184440914020519437418794945305728202611818870930961894923955315482706297407130221899427224504510915102845717587288265848336074292355495120402942271942729806616601638264765098482003877532631572121691349069959444137680511968875848841631616927408508536404479365532284337251460466972198844077231191507756312044846223061948750041185651185749273112833417521380416461127787200189774999455157190403599698790428524686218857347439646087523021919081156604272794351190653057138733931836552816429048488910802735933113703910469969597047903846995611102608194970148340857876421397076805318334172735991746709979351281524867901307839391406831040418455376011369772096286146146168014568982512226270307765299490279122834749789074589806074751673801489758030673686996294233084758625553890230291877647863790229895979922322883377093567157053821302355792950709503477902478019120369366122758050080090447199466680660216709803724180688367062668632825964221245852659870775934384077863200104394018497763103571351588860943773194018417964136115247449084796852530573544505283107799330075777003660122247955625936035471979479582888587024053036501014326946251386176585632742766548658989817048115666964762491910393229249575514965264234729844920389692241702850410394289180461371523621742744089794463768091557273884142344250856935056764029121907388768584955085731681389293109954236127215577298630682578208051454957942396827980981850550285551313815342605782271320800847063209376207969547954384254000531344896314704100796444497889409447753623052898571193509349193282409351885752991083483473964820889456521969414097179585975504814633382662373574904518956485320694341430704076112320812796698817651059725231159238362963884546298622563827339103024200875365117846469275036184175212700794926706257073304532037648260405897672378653308359398057116669182064236429203362613883233446457909722597558754813665997481491600468312310514725536622259517556838427573201977067719470931130763964604794678669135825563248388807023770699971829919758796433765416909943823959345044617361633257361388571987144067447910129027365534740371266046809323083341362984419543297220729305072898826824185219088740015471845914244641433738857025341459668049221608107454073959252015956007146701539839182643033361798564653528895727115023800061503832704275020685788219714056500202775050166354929982603837810841409044555488134237727441415353349896922679138736847933715861609356747476213116491060044257143045446121899715568679377555660859230096390961231054502807579012540801908568629744706758641714474792334865632987182672737330391389987034787955432856778377308449559568776895894511018296713169735274728915529282696339483526306751341693107721477942715139888640905869501792629483408231070923240283567185514424341773189662781411712244908171268807719092918515866977908823608707068500195960379643887473171752748036612603997630483027974934659750264236803418332531235019821895840316249170907526550711514095807451736624150413528411977087486319954753131024696476435760229882918546976639083608145642642348342754115846451582914513795820680912051163663082626841100550610064088478710176891068386091461329509347541983179027517045487229914008294976171467160468258379016893601020717030220699585009926728242306763300004899949076351948978768404273507254799079915166559572949890850361062157188605843891096410413666934587823869142650367335523488350782611972425469614641310042750644510286026642705838908274742499950300298967747420115144091767056705356039707195671983545849149913735241662650025677836114954107040865151107017923033403632566501994902745816031001689569389656378601991123402742411430367791536841845034375373542236356892423345130566182055248514963653249271055083558712299372446492341491829009988978688810080460930884888742998768037722442544629079484801767723866847580983087611629599784280209207963056045118779605753454635590024985523426240766888126762414381959327635630447699906310287355638506773233031265480410847644305360294113125044303634020964798436056163365936208027130469169170836466481729131124094005312583287089027024953037691401224443275906998279985310540346937181816948128010530003445707861452576099521375674354083564513086903700684252220270692277925495079830137552197310742104451302418155135142098568675935951734778038590718489158878823800925957759523379088189089256528896535516976106357219292636738292649158155207612572734301581894674811359265464266017686335507863973912106555482453102562878631262663987900654780283172100789934484109268530850514694587261940073902427623852176962768516210378465846143616786563223621565419401705076463160861852510464756524276584549642139657550732248728450805658769707938329651397104031260978109205808457620549574477869246507457089915786150465476547575186463523897213454293180873024160709845585016342926040173202499784650917289888038189792222001384905433607882339626718336670165235365168080522019379576845200345310867587686480760493159034197749130434896400524440688706189189544097817212942328015915039398791676806432962474565312977842086872938946460298306624065391821927676814397361340438030040453805388043813741309019079077510221267210466027222869848420382879992969522995993861337951093605097829486767610417589040651552683128980179329767346617296823841359457033528222147051668616966335112657713002701250569341213683632897699954657310140444889627047818979664458883003252876275716585821828774910309673942734598130276934308180767579033978180480938277269445689679026478873535310542998264528961805053622329294215514405556410212863975383684528091599107009585388048077211681380270317356861801911663445748052673921833950883810721601898278326809314081470687534070786870264825142369530394899237818037901244867161958518456750412055980336203267467449377340432548653292180080696744444666464187954771677386459109263998075440434105263901960253059194046407774780920066005303978129128152101725407715722052622702761470755455891764494972157645374994005295088900211065715218548492057854521340559217545901911678358915408674079179043122922458404320714821807691307646924273866242051434786614681886755601268094224858711667753342212494013488121944661830864877442585332622170372278968625876585895496650998225759789622437340704083780212909478917064652346034085861224254751302143416400476486280866700652396544210769763297198546956465232218792894131322889107089473513342850172533395600802615991763803837456779070900692518391685344529253226247226622252977206708148459388503908814193024033683945637110423319444418505030993874959763973469479321666741091005597187333738073149026927011864071817482835112630504669921056245442470887638778831964204041765370095803227654384463695131217368486188501121383695037392880096282960983093721445113719915470755831049448373128643429229503460447894231633136550148312198420660007650114269997423808944322021529143262129478439414171133952670947553132990073578961513631271808825021207659146724620503081734049726272311240806563137906693544039202447048809638471897617661504946107842802745000719644945551880166563560860650653323900553923978895672752971615533297164841955912630133949180301667840314055220594905900963160444423937911045757600454802683440685292104586050796032460280247969659906346444015576264269172597184117934460474770225476584007570359044450453025016330051952296202769178761168215554608796321016940531855064266123159110092464338919025284094040989601584103761276981761738250514808805454801949045662445509152235676261089590423106438597590784851408029679392574610304616399729830146152342696504157257454443742785617623734166103276022275897284664906291167426500834401737072258409471575907238518693761506078483921950362681238890788942117118935038912065948664744145775944126957844322914329509019142007762290440409853267127349583853595460631496838642856369179500462705398485490289742558897419525305184025770089997431127000753051195572159556821774415351824797567222644168905078912003078577286979093099356872036907645053635943413305593254895833994650137147509059214834722466107661627557673679785040911812480858906248279451394592650546968458818100622585476242827056978666021419772995339209212864359104293461259895414985214919233369095211420676153507796211559043324974059619833107638090025795271841477391967852975437920511093980045643567913056130287528470127045694420306918082980154799931366532929807717271887886474848228816756271109496393148916667373657440262022854114769773232842289769574989216918267997467571670304630546096578594039872498121661431438775792725262514917989999817908097379026975390280215024026733288149522818814808657367904233615509965534433883649399338348422369168015623316740283476000317191873478016084894139616030630492377112434307055552104770538587047185561533098838887661423152789809890844967432334749812885580913232312671452593684819829085488970608872287470036881080751819752919422206772679268495768130361932729050963194327773086945554800516130851875836669188392091984094383690631785132205253838982636329841513810154604609840175144242970923696386887414269163355672547386382308680405806512730825104132814285438603162421203322152697460823638835270078892537971370367885563948121941629778197493934593493727465962312980518212752910466666078730689346893255997157001469256377368848048039913390459117005239823888626865412731101316292879764708106644709450579797077228582567294923096697691401690120926603759771072140427519391573543835213775779055577630448796902856960852893617773618408346497916691438669830950732801326559838187722710554320020813426636128260107263896845251310582546170884213791606958166496160781017569190020590899021806726475707885674362079823549451936777712626797094809345254382436459588435556533275656941543342804125789865625229030189482260151832871608848096789484800705527737480714868983652435498305822584344240007587859384513653040211247512731104974164213384254987315623131981506949391815898786771347596721912822371824450323776308475300688434752438081739989665486151238261478018577297891640371968250166964117739067985914611162607988099254966100851554019876372373374677464932534436530256619953420697134375813514825453215308171832217983690974800317274874761277602989569473588451107668145334701627153248667380743321930706889365064588951070325678455854415412111816865182811589192690120180397242411788071865392444197626684106286719504267174090869171200251697856324180662040783817898334297010586040968476972720964079524939873123308761541261906621075356183922086941511989662458208879620601416148868190364938593512315002108576247300740729716250659574541257534027585532796940744281068589355760479384771834812802335817363015599849731893925580357921462385543918178496659380757952782598022686639630140472235717770797082090031971228232652631748937478848954702583915411220048987070751479411004410328553878381165937142042781981901670143083739362252238753751667322004536649717880395376425472244470389963358450470475416157794923496775335263146595227048830227136018545272216811056433291707425935616704809226598039424834914676030329014006151053715642643520208863368261186973837031682747160729479469245498729971504246703222251533993435934929846269768407029778450690486845713300427965745288326349681643732139152295073442124734175759357668842114270403433181177080144628969765245358667451415456997220434220567690471292935128030832500880514547761294874376190365634556816846186545484988075297921208647668881907153723102654946629331708577256457936102363010167456298137366955899277966517615618864203023198752784880889298683394142538613253044212714152090171547698242353095338318286657628199684577508211211376452695027198346943087414827486688747988355709226573476151605901692366893825527866350985255815476215843990580856871026061130874512148242710958964434895875596473370844656595947692730432919855651836057494586199128133909508806938277814229584231918309468301448115595244797025701667458637587632795147261982429225796007341626129413569256019097236203092084042317280392107429449533005049963212848566854332709188200728381399309289385427043398771902055848260864687307516450454511468520990177109468127697944078060043818568821973594742571190244888494980822921021646477052212325041993822576083637196931480446034249306773189451328819624772637938109139679095188992058575956548364358658236977258386029701122907137029337245539137539127015364584199304245413020924153475029092125475486950325394042925880705445997171823691098153224703236194926675194410890123078098887530462872113588933284675836893140174653708700048664804500873668662426729972024108207953337748505439263830602415593679028582733849788747551409988419836339550609855325953670233734727748132165012360733956686237605564321918818493890049490854260419695304320779158848952707087209081137852517682510521560778736237591563472770838100837971968733813797934722441960690844182810835461455297392610614367112306428816959016906835763856755685275554450286162005981714554446716953404718317601042074820075857693838713556774597955036453310616015408445819744748226438527229660848002171953493739966563539149236088679757464503497989562653002051233592359966985081780428440999318477614439084141721548960161827612269481122388268693987451418161484873465259721848325723617186669027528967743276870799513998918438524095960241074427062776770426232485424362447656995999842123027098605028846538455375985553996859849262256571594449196601654722626849567373408500772457674523738811509221143780937644056098131733246707557909739033146096758511145847245811614332523696790527112033932187985029227085847124740849127027743935679687607209564089402279825429515389485149526675109517253788618555013349256235581322776445499616106729884051030492687058614563792389916276716964235517299080549699045871308717665289196530503869656666794095491661561366528251293019829881211025566287213031813349829038458838370885602460992946446921546790615383845442644787911133185785911283465482475634065816995070162026940990129613099243770435517687691356015314936699912613824476632543401432813190280986597065193772140292541383193219968716421404359494222911246494278892890620471197632804693856499396967545447357907904491268013359160910097999125848229808296604524167772815644341503626099405928810635279487097241563596530180463318538803678727728670602939487702289632568745995052761245147586835749576445717303903238758852797685624141528694963076517068825450987177521607871532094377731535048158055509384812572814096520603113674917231722368301978073387426085028144260360267074838020029521892809862557644862446396648312505994090324247241172211601792157516289322891058818415311504144936707727526986830995346318500870589487129255495240792243982355589222402352484515523091486939690940099339218947193126551424758050302656488784525490395834429308264936433979219683321417524875543237738830314966862215668717053642517226609515681933676725186608048146908725709788830144991950290455675668385610693084405458984654759999842716378165132798742041332701694058109721429252077589564525082054499969647243135082579513424085160983204520266465943904703208809254474738733845592461281932900940443398205239445123314420745536501245436015504754060768664867659460377490070328678203258203413857912999253704455481757942521920552914908027642441301615932435467173400761263272066998546850263389647259624986923075920876644389001999402662177290147869739749733148204117994662812421505958615512154918591849570959903047625902150579954121454473208830968820068651631412754164282930189740602387661537093154423574018531296976741560797704873869957545260935038005586784415351646685678518386232576970067258865465829474119106608044138824453122847576932898735943299604063926105071162012892588552451057718232557409130678818326718013434475374580943271364308552189830671629976597430620389894477206367571149520887359834067200388182713000410606686067020261261354139136580501102799571061722946655656538060908378831918882926759184104558727162029321509446176669639547526782090698621308833725913390449065918867062182353172748467084923400994021765155901316283464892746967995784527705615365654489395590930076845764211773580233427992658787535671676973902373890816507894499021548320710202990704553838361341386951732954833649602998315247824298104228099407335405019968692872036614443797214897628107388616840618993820987166333656613915132366277243638032698901328032266406369455921337367642969392753772097590425744440923962064765949047596419090192411293373961635451993688424963647047073239413557775170637762197255431019656064844106838053050872779951229878952465479157226775754741334949647040810997241181917017995334718818427171964133186602469868744900231471865078918454850833362261345139370536141658265637354352601830596199347816603029527730793029535672495498457640679457028564872430131580532865277977300872745206514009689456932652172071976340945027127263120702584838925170217005135744784360726863542298471842890371150703557439164870864737471644604437765611975198643302944297397029292658477152412266062162002285350174442275104235358437800141061615377388686172134366269748478447457429340152215433392530191164446580418883483417215762879415180687414884319644844432055458574776153681067174743188722261945737739134858273044014555418486940707945070388373944513797656105282497511478499752737499755109718615180144655839088977778059294563392294384804293266160054572718182017488570216472373602607429669723920494104664780435618623299106404964103480484250312886516851182709505727408474962611495923217966624054941348167339266456778429960584857256962928525457949398230851258806330022135355914441700296962543066416837827037591299728194284909357507487513512848959550672972781185633869327040673897310143122487694798068459678277617523473037002614667507554758220407789750504535292533270163777300505309132213051860398939935806578531526939608815538367192497478523481200332646261744008987154673794271469853426023683677185090244692180625386666003440633301335706751277050637239478861168138057915129834838016309923150684174153672449621426854869961208429886431335128291864050214918705742613670615770205907989862527668782581841563084506562996267443895741211845837966163803811642364196250485177906994849051535312008097847580691536308180696397155278493503558392515634574617952481125889714862518710787263028131345508066313083729921689124098253941227416585844614680309651118674483159925473136508263777100518241658158274157178024601696212695571582876297182361107533407615592148946731579484583654414953189191618953554472689694214703070504604280264942978646428269546752647118425401795260399779045228563331179850924255517382321321613985931715594736355449171088479449149574503346786311058272415720706089730907572214079124204294922386086462559598408411343034519818973524762298892027758391512589966143074401616865210811387360283457641901538334168809374053333743911923516983966639613647327289352645911756059029213016719135577340483530334314629488301719658919643132904917068413875822051297101787671198552272492590208640575816395386347978608122669324869629967929354688017159591584647551237067202439326333922415047859207726571012685547003074500681045231100937173563330339384522609640087851310468591889094824180186367342092999968468403374360394029656483252516930433884945874748282544844234337316111417216553210353141250836595707000705921995093981990708581306708471342434017174152007917357358177735635141808677179248914959744470261784130813881408080792315118469825419029585683578507296478776169467633016353984629319254402574139695823566917631228107291742208011833425510792296399438558891225347111375231482250436875255355763757508450136559201528829223131352627146624558396400172008906968940736527169551833177443352121587086426850542055554899797690355432917862579736749188374403878065554397787324751191821954783286848920572657484681731503031726024919174828843113437486031902144974858027168674654931876968292465449940422343189198641653567650899848577513836066837078286889670350588803181309202066024754801615592741551645386405712013966228127434541834116606368372318144027736770348643213605512244718615814718269920529996294182873673428781664013389613309333342673423658394128263063961374472316683909397355869056786924115730659865848038091689749219823829732733532052658794158557768194677781863626407386258644027223020704332239726748953061268932770472493629788022176920926174955974946150855471169818441573292625582936992511466447351026775066885357756782634088907933898473044567516162118719521670162512242912865384629577537005844736658236984840865961936491773772882890276191893588581955024077104505683857053884207008052557414411092987792905067401231692100574556450139153816529997680819102381134828038907909966859972858939667489980003928947241695863476524814974512155425434665832623345099552601908726793866231996080118235805354943512537480319738649504225752100646901944976334524869094674707623942415280294957796519230769839888324076010108186045221766401757169649008480822030660291293206231591272853719781145239113692127947617862902137416677724783384457087397829303471242575907307234634290360350854129700336713778328354939352870314145717173012379900200446207551936821196240744659206008964245058519206337356816834902618212248642467232280376261967033906913290042554247808104719904645574470032368071515387223304548503077607452266365479502869981618310657385197699623742108489044746794592447552550478761405811779288534198510503636678953423722930849703759358133579635430632703360056101992045546537948513378841258233346741427857777745241325939718283059535105079474226266772605265135538651634053783240081248855631642506780580136542228183402197131524533975432095399106460591189021858506112384592541368128719692255692198632870688111838964983425962834642971606772026577688999548740382717967082773200442847623995541488758979121921500990552141095970213103669500046978652387373168416445602604830925493735424138689833821208170108415003570243149314237735404416225900699073002365634198422074506280404091657282312495831965066383393902374850821433971249476337732014107766683626794067253443321317152611719076931267269156905651552870665068895425651821011345289371267730878852076133702591301948159952317087716947335986223070747224577166824705061391768514394190878745887550743559878128014644473784624686112817608487352155762929738496617183539466701014749880266762642804280211996266832209840331174639351212713937698485612130416613432160578139603239141774783494351633128907202215169796548802901842229946213010773300131702184606647368126093996164727358852087539147846940943879637266679625026294234096701964641754530283105509329523453281793674718553803125455750411170871452072951213904933560294951502474870278494204876304497126724280515152873773152013314674040121784816081277484080771862737252619644858812876631823360438401625343442603909633449194309253175726791133268496450480836609151238508208828308014453732002803062975644284558085744797884929819354771717840416848233483463133573984639789609081203449482529726763923848124602105927025702016416816933722841039473071284410673766477181833136459894925387043077869596383790300838299396576737280288960831483763605085632868197151903124783529582302530942676280481467957702439107657154535072047089971178137869339832628779227255038870537207510763962763567817988366160905290166518258178474119105517580486493887062046055578372065942833885496889385426508669972364622187500293265031512041063781455429168109473271382015317248839795060908283049204422224979185733794972260883251014051091403310676516697621407002901151965202919933728836746746627635981023711813654111640553588554411189365907164869509404434782362941174537275687133327467477698590109710999406567139882884640274059237318478947875292818297254641964002805619424940080709080801905734133255664675291869051051646945484994317339846743162546143789797089131744545498477744623079135311704092577014792479882569594149459258802586705274414503579430607646836444732837024990922547314962155359635119902329713351003822493445484719701308833295622102831420308110079073926192374576775988349940599605848890974534255825509316617913872996061864737290157281877609552963129886172089778631597616179741108708622221210325793987551106874001949376342004489052758752684421584940017406798549423657746460002505585555413377934795350375998267703639306954696186641738837398439467538176085239179801406716280087134318236807593747437653952050771634809395756032941065860349240875076452153212672223046547774513946341183720503618669724759599488380147870485817491561629557642937826804957484200980250367736040610618938675113114160496944494899031322829790259354396586680055274615106374009242388884410719055073506755134455908201283522174160660927671332484235324230681032435376775762185868384482297478898657089329256365644729979188125142126170279266073866226201045420606521290870549434825286996077285988590054188291453502380506714441581819805011862307711496687078841736182593117813153230965115276148376833384646032749437475176595506181982456044406529620649132102058969108189757599838979058551904355827845401620641296714596552072104127910008335710819716036641428663651342236532500098007624580906072913749981165258083291133332049398830307838507099232660791444701570293395049821811351743000563608903545199459508467279423201933521151356885738273645761695377870421632719521003215523757525803661911755572748856299414598590067319856719824131830928281310353707934189335114326964390078386395801567885810144225502742635046878105685730176400365897246959085786195277837282587365091994771755335483954256639535872892529401692843094488298863668812805346819146284821450300173265241168946660344976550226829737686848273327968545025442725497724099350228449627026739318350208709717083515884353956479575305734868012491232142958718982914371372017607331126954191365375651792787684923221483432489182654111402341694146297398043151333690052606629363449188891551062569662675087321786549667067597153331142963951923112686019892214328703071293531600533676369210629508255857077685847646757954403869700224986854109260883998032030042142771080789450317974276462492312089249088810881227958942906002643062223307800710558262088627598754105100406412186885444027357814287491355721656391650723063141817796945685064151377843977123237803236933265455700487451194461751462317624502740331082586451326710207712238451818134294971694050746257961677242858984155862871649797379119223112475634505259207413178193411196317445129803853320885646375410664547291392316038313966723693904310074030562465654177893147788638535255484869613327882748601095267790344037069345744989900103192869343663889292707567071420707283065797459661030333259900853180255592109390234011143598286508828783162877588985469344880488699551006585077207411274529985688862107184307268653981464967729989344875662425126856643823395807137087784372607297926165219207246337179108643587510846002750595269072906875888351401917607541736064457067175334736705893115423287004085250196800916484366952732769598021330798499800776341686391665224375811041138335477172809518999691636762809301785469165366211430977930325120128916397766954119758862604737349749772647200612783411861036528564263547076586024063014404033462142292170380458944473827959200083883542700507046491393225119719357009281645435490694674258088373477907818794908924816655777344810346220262417101829419693737950198119352871277023103962980403693075255455839281718468435700342137583369443025132723464502677682981116801392566915844315095892040446205778525446079394862207832842175866428176108840163722551317238700366416611916879656838785706791038577322096078269716693693448022753555767272088985129696177873724159219015782770679732368848417504429304996376125992913698883292795111534547880982006316429607151030204165086083771856836189610071831887098141781074839053345725845473698345973449298032111095428397990141846802765226080840869764784189306715452239996674788331180890142584063856511275941832106191712841917220232258465665019344198196311694703847858656539565441292249559735586728024431121105652552468326082575016102838586349687982223693104568662375197966531122196703956573610496323262759555549690624839271284065487020041039713450873512123408275391355875184597529739271389877917941172379082403462717837068398957700127776264670431130192034359926187590031329193631670483838671842185753877245954795903737985493437206359466473131574767624176397254351878500948313726977577011007077696365927841295869201599025489870332108815615061256454640869214956808817611533987619642363907087685315493017400767218627016867967738383638989745029087560104860552497443174205383088015002110675641708735210552121728981501536981118821235089657081776357365997173733469458861505254732446071274642679398003747967993012228234006305690753804965108596087895172302901678251263299925452104202041419798231595575688424055879519878820668803976963381514366117942250116587763036688235816941146550556480488063304741510196989306102609239504477305403971417676164966704233380474815195999872185240629040369045238796411763921938249297643904203637036068883452636367123993148371918072625476305435131716950207932706807027530700262171777331226287570145155775089252910388050452294786789225592806384084908444938896090512411738848640383057906085198763066388278618432071683532513955064875821273919105870720035637095989828175162759783302817603127655595248793788637649949882178872228796871264169674673481177505500717513091819574529309896074216294948158476075133932089140540459124804880380251816505822289626612266146936489506833720683027519620321993645128058095383909528506162384284924030591521849041807543615472001466058254485712014885673389196672376815502965415560114080214621037375760411968387206103365709203905171167022050110458978869733099850570124358938418583931205762786037557447512952075524063424756297307516188160843074723435048648875403400491881362902425089455383699024921239749169658646615545763378526646847335016829276149049546603702199062411178966376549207528257103545408410461391312524032874832378684491141233029993968745561690230001905336187540216873818127258247953809418802422450196252586816516711793206209403842612529319544831265703527719831775038621657001854198873702564127439949078471672288616351075880919683133946734586292295981123827439352109588317578889861108598155516548739722066045280413312713019489357329200782879375410962686539842906040428325042334451465251740599930498275288173552802510757084377302737296859727083724390925033700188174911908537314593799114605297697468647908804707145188131317857953436608313926562269549237348713137861281367564547225714136330801617822903823547659267943840612610052005031342147865579534996508789442305860447613841899963763522733198751477362147901061324994161098073583795477658673639672362735912164016667567869123200702000548455014704530071776911320084167317693485995971270164298731631574188846582682153933582541826866461429075351040964307230427128708938038540308487347348029881594971118737120454024144554178771124237516118061716727819156348170956071759245056489212725301658722479265666205373422085331162646564878414359603287250748223454836819054352536238433670611639520023299902870038739048087544572723506873922612364780377154594694042251162508330987033523394301564903373799862831444090383334780500681557304525782231430337438184362150972389740951803124508876475943011461437786812548724736963123371442751738776296818211956759097027551817267969916266363101144342600847105273521935156483479259671340360623065422170881166234601269188015547334169561714441432200117375344007893674581753405618515372334493619020008735122749952194002767332551348794771065733792360867396646478100818042609716985814089555549020554176694337572407120872394076287351682856186791395414383463681610431441073881600681019685002832415333095564966091075441018694381220612089942303725620839801915804519206548021408658156416612939949364588477374409136149829010948995767441104963851790024704422596235150042026439228775805802627803100644811876119841336729704337416746594568372732595106970497699287596622204057696030300100907357766014669242652331116415233958147407967269587300719557750361943861676683147391962645289451853104641512049015067105629578088374366007320751633386032392619570020377756979780698057436784463343087784159177565139842390911684876828037259163473830409638140808806404605888479089904668861999326260242531666486955745265642909366789402502412554200816407879041501388760950225567027440202052925443446686455186295404867792553630492568955355152381939788360305179090785873020631241698054117243050359267970959958928025919759904575785688446503717743271174533864636106899294195592279741556665647556147040725909602174048409671337121401480445029052756797313479987263962982088948988691729198739388302964297660335939606299630455453147946713756093121190919432406190217531623497999688169626555249934138619607833819029120232408059585668317798604679387144744811734901640735704470649153268393858920188999627726939428478571602632308552894601401614594018303614236890772364044700810784156320370083747157328393472055724251737823858472646334314275813404273533883365196237474869025081006999017664197267015340989191944460399778366537100005982346051977863251973268583267749651483681307249732476843022058011980925748543377060559801531599579349805554242238653079935630621904348857804886492161140965670795790354559626324452401578200327073997688940419526839902648477153140832319607304948509994410684853577509729685119438102826665899793784821160910824361733509518725697932733866216093649916129526607549452149986176538814652435654825379814972018816514953118556748467329121371038819568353085537516103109270659583107750009112123020724590227672555173792562841302793091891133536278472869958203551717280347814436189413957792556118531478856710892057837830219112099485581660316020657741658459678751874480913481070624226642248396363011954994277083113984709530093127165880012825151848517387987913345964075048693131867537502299758495183458211686867157747800007428996285740147964426871510800229155766813033579982793298911253319523630695392988056025405560882569684579734249406132668191468221247267174862038656804289491195484068741559720415950291219219835435091060286992988365098523699704999856622361291787920570148323280188016276038036124252672912538917214762936534815729218360682994062596232729012592775783218613201649553934216655515517407984686163143852681895916530228800517254622406579152318798463790072559186924777710196859160097384779417079437545693078626841119651973593556965131408107176257384800196263543422266347736774750529372835300298310015572276610111881670984080745183740694419318898014919944403640843531097429022023988994709811174619957971807419798010809159537112811182325141664370181506534817237724328066825123192798544563288660410830621534365569815091666827471188112209847343459543921256171796893247472467759110052610591282773012400009127455646456515568523599570594438661824391108018862940822754462986257202299140368973807812156137424968507731297217893520621978112208445751602728408471850358096256215383216261381502330018473601904316150736264273323728134400793423669788416592320798397643704145267960567161095529014815118446536837960358998568568876086699459630650252197427216648253871145722131698551964263091771298557150730600368093918941623504822986824236230238773567055546802145089088792990317454884502887452978386207963848762145477455876041088592606723780355691451197261188827036818706634447906702183043638705241734173017799849846831703285648644548446975231396217753927245710119562810420786912007744698981054694686965881880115285043391610459074003901002467593227882587679077224637954437708408100657354767185050229484515381415382978577826314034004374775473034495546696631150513653472784482554105922165498741222301205604458889453286929402182795869410483302889743650713718831684180138179868023450305411703238212360151108182682661987049893570076831596218805928064846966249584558586476909237886483244886979498741194169604561270318516948466898414145240911308776391861707014886916250091347362241901778888406574576953683910833997304613020415326946361041610879296552738254690521779557754900914584959445776308752408516746823031539347346730245187539292809197550051090733076010961802538846966422054181958296701372255514094003052269096761265698059194604531208064793971382567621449871238914851833367021330245299661694312037869166047130251314556109977871985758186132708587700905311678398401109135773174623707811989756512723183022202392183918365010937840831811074220027652399051462277506647996666470427717846096169636147933304211819276323631738037428060689666518780206557530681661259052940481606305244506426995248046494660427055528549227314792487002938206128245933744870268796487575150206399522173414930726998091063751452638683538076013045812790310203675862022314759615002162131201481280027618532025406762487147587869811791034222412589922434931880582433096120584457645278978416248278037683901722585132934428434953721190971411861189937990034341222347118847989045010607189270171114194747888706200213882898538077315168394323603093081572472505624017635887871417696960787258363083057993068256248034218753863827885235326604381265841913364204288864230059609327383734074411984326356595335782758632461805946947061907135998110735495047434331175576647341152371792585471950618533621674110407867845347073789561627629711996479658543148888313132740779449051906807195970919104748001408069779195070028503428203214790447088294749473043030104872691447159060848546130607071628304628204010337271724356364075735394301533684137779294387942896144122969279166256045090479391535819439610882323772797642182126534478710795457051384489080249203401175881107269828250296738298982636653830168526728760689387279448895231655353960567434762705114028017165224361634644540720043395399481344988958639589276249610888849348465704767226233186434996927435859900511034795609219440787956605016792332667306673252121926501987050050256419513550455770779833926462978660682899831175654207545509246464999365304211535719180986884397369229320739476084786764277532506956773506024262408534925658337511398922957664025737598947816007651312109547369746620986440805592667179503386057879687454171274296782985606843817309885660040026691327013319471103676894480527573974735923250618811406405890189180854407388556014038270816320733954370826882127660906622513465768214121778085431425894865803550039490860715056399395986639814060472114286174755844590394512820084869176165974590460724555461053639773889593631197744552863785628956768392161333335064472656898387989434202575942430408036572281655332272722597582089872626282602830009356157149652562561075805972741951731545678603845996563127873343447989513534675244245988000477937554417540066751022174663081170580184760084160929388466985755856762562972278496515785921660695835565321487995376991205923303988736002337885294419802130491503803483737744242568934822296424811924425774437061649508400784405143367615160937964225420340851379034364991637079197434953945339942181920367369124036646516098608525523845823790791699719562780333773218021699548650983499996896261661527629782895909700384843807317518118214044683215151908962689663287323240698878407713310144651688361174241411479820664014908335416705402866804728407231670465566673895854707566334431129181272858705160573887823051160565248521718081424041886108242437166229854424149595819129657004058716567198124263065424288191952589120238477200428451949451260101356355112408423886636918384363325760800629471693199513567410893775739588696529694383340122291689119498156419416366852418942636369274378966535557367576462576645327593278964149231097480407811867720188448935261135628635906525157560922601372749066902503753288950912905746305405858467739791313007037731381328070536196616895380589235751451201266991515473904240048354316963009806314203580101326551353637263858373777560267849988592638580334426240720255058233592418458399569079143512575626827716914366002047927790392249607525196537977325305247148288822851799190431699145966607996805813625449857908348594115170976710560897882801201454116937519663714248605686397004597743008514203250624358247649258172277944685776948423633188705538067925859337068708320473166864447860306569241148016700622991813058139516843520999772690787483403226356335443310699387838132464437947440862056642747824364411741604841285516792825251684070716730312516489515878426730943525094247145222800624009100740775839183740283693356960496767946267000812334247208161570172169160393216349440262820345582497961257001252502326501256953357242988387952438298163164775225074244938659289187057241719785679744896774693512904397151594790593994429228449895167810030426086377882036759893734662099701794846755349689100627130326830535182730308910168362411229917919009460942247090542546207783072118026485591374898166721555122105903755396385492409169618929492306177811227458119107908204488494400637136884149428968146875084725419349022651489685480158807525542046184299885154813905300067347216674157832231212497797112733600655273776682753514069910158907019492648921304068224759315932868242878742638035798902960399016818322743869647057550898165709038367401951408623810782059785153669095579856391296304527196812929399222726560303809645145095023558728896260967089259191098763566073793300342593678030017104028252954096374938380645232748167554323877526637174786587927541265810504776101566230534413056178801155400343437856005062999762160661582390318403271799695879092531315586968523829437671927547735947110081482163431932941823462811529642137603475475704741826072145792055795385429081005200554321329375310244372423909751260067560041232430547794373345992314400110123464777151584239652203724040452483990534448821331777242872376587632874257607569164956345851261997179726833704745219395528946491922965356920365593271161880381948838488076445374145492777249851010803555417678903689863518904212121907494468340385589366860776846153221061639044053951371131767149163883575070818247226032118000929437187398693034445788001085750587868230303426898553417886187907416463151360464783303651722616263086900561845105049859747464577852405756431609668706448080605503597898900858344437319599043305433135093379636891067241210732756021254251556584431568031701026670672783182198574407536330339732478203894558220541162028634710070146092497428621595394953363843861149598048587630157084443805035726580344182063995038388755106725183181503997803183938924485671004027836924273941008599282598501429089556024993602173448144881969568781616396883183039648205741041491586189788596932223116836028052349269494085159222580441789868951213121765856886142810924356577099607169662911468481332733873224183747560207731210651900574145588341954219667684735731209756538415790979394043938692523713381005832118718360286449699723548818817828898881970151381176172954829181767556495879973665924099898033746007635325644699336378650347401097766489402509939691921002168551693106062437357088802740383460408303806251107914638580296849853888418570720755197304531764626472991399650005754595302931871871524167530345113759599630726389770623474918917831428157299622655458504174502328899562298224139696035078004612704138500371605337956170650162781664936990607933540282560634285936322273086922465710666939154233848682863318864007511037465474723744391705371597587655090386840718554730585237976610293977324190047290197239576341846095281950633036364921543913422017982524691668900622649547325630271560169278025856461940408292251416467101800941473405249787450205282661236063535528323330444019230091918503424252297562892495803431739325580400308902341525828741428716570922262776536475498545251300825692767754958673650762634675135629741730952644144417349857915620186978362871488136967274863023237226619987748429093118447347806014633753892015871749440960145008296309684223907590151678795776978731596150746543178678805513933898168658332072655854481106995998348804926191393372739074325827592986186341039305854121653505592166264861095437654666958311360059301448514480944642185382743707838481441402997248901762710399814073149981931909077483350522192299636886273199407925895566118682019725687986945998612142237294557996838395363848727501634932530203389794977667479902390322254577730942186876596628928247426499433790178318746239845825061225009548695510351887161001934829644881439599907849244501920242865878967970834962308635795665789684934645926748631049381500650671850166661808270527047205291053055045501448573775459952625464168497009754235274317008263058226823874714711970390642458017332927924404363600805541811746039095664484796041592283757876380930014647665076853956072788592267797831946914353420770829923104474641163530570403912893855269455009346689102435881848535493970961578589986059870983533703435957271133357634289686182781648557447691703128390191937735425849890898648697680396781367207395042340804349399996161886895537945812993779631260298290690504326846209273109131355941215030532917795638693161008914664761088187860470835577289139296131592115959302981872760069692543781770178404495771536762597108160031320956223384747689922394784263869721457116666429872865182671229563778871225981583408184893562856147172972090475900689484555520509218347465968748813429026616684947777014529831328422137242273904997724239469051924848036082340134332174394796983065267338811546258325308050992611116345397979873245109910163509657860754661680671124360516463831356508084860615632341067401686753719537188251881222975907785262118150048251242606253566338268852319415123693253531975108495124256942973871991435354278326662874336268444466067913993961751596854413067280318325551706823413037258583005031352698954622958635420713301138320336372872807500969798878179413875927932260905534704996214717632987947708532491959902402999777970334503379396306587685095048255526698597613489793955931226586070807345435506779532090933240108883515168068175290834316595678997923790472810378836273054020722903344537116132766912644264959417131988754849577301800322291309057647644645144287469652758826714063440718088733014302650269702709429212046514191793573109953766744978950484762552107851173730785309755466872672593987863755588918023352236350572503822317178515816440557682698805477299127527296699868552500490332855156724286477750791364723657533197846597037383343983449627793154425366460570457608368042896413490409139145590359480395421107227268561568430957079622874303937466690809762229437223441898969769691873706209572996009664944090065759253544108248313890659959429021984672365308537167110297878582954507466067832270266927009870293375208152837747575620248195300280516012607536151537382379206277496038696326010181900271136816352348369097877172022800238294353422313751767712023243085144576203799918315524001777273513130657335953385177179208800451783271277809351647571123896323243362749680502737213418821241669703098681478373223021845319540130828829497595913420171330425995535918848844351546482261971143907150857402152032295759269650335624903109077760111393352090528621018679442922579053026603173468039941747068781390157749929261336162400952864347997067218852033998781932385234921865837547092016944226430779525225160861688671824233549341152410011572994063511703295597051732811961948864307962258231236179878237042829573643706120810807215969298020177527820158299269370866890075096798003436547463907360453676691517868483729429830211167590773472369756244587416674351733223099828608604607968988522085740298131252652738713432639963526885135674752156996746574890354848474443488530200550718160823128909234329282899394321724319840241129934517778139002509804243301738781154249889952515860079899964179276054697725137931611526320910575273935616254027575945396910254077728327934927501043135223147115613576705732063569972952755560287283774370299676942006508700293389806674957457643055353211010374240477674932673632403334387047988153491467865570414067777995257668440645499778577138222695373542970202346366455084365073062944110836928666818121756499229895230642151047302387787063479848507522129805858032892313732987079706622737921204786197029019937208637993481330205529936333988042850234428467181117790389876320194175732694400695457714337987909654811217390009925192039891292270567221086635087484739194140066494713405811278806645347089032723815703652113234895903034253828437233871745440228619862626782046352600518789634080464147540551057514503782045736759721143771076967689464665465860368455228351506087271417863089170881580577898960806389991223649870435493244771735501178713136554599591060880571709406481322806178304559966289221075456618949925427457743297313972248115278342210067679148718461628094033937666394624124896515613939451924660582189972105266038542751278817649269738493468721387761799560690251067339257171191765918973182873286769403040679026393358569062586272856524250938625629725585841470654554269569512617069579016558305578155431342345817872987920706969173855671833323747681022038296284578964148779154869326287171173553968457668068939254471929804138758140518023685673070729632533904980736888041455384758371122312132190542147861249639241826187869750671339711584386254415825347125505557807062297614981962048795197010328304057209976542760720842998521330204713384965643070140363585683023950793407750187480920387933030535080214885094940188016513844835739038516312791171311903272010803382800071800047631086674629137806766968509024249125283103388058221559108673447654466065034988592710554747422820522442764417545696364223165690429078500370599543138529422941387573204006407143520770720237066887437439759031343318494361000711607341944788766887792697253749603884862760437924363401649952413663232723950790645746538596865190591112475125657744681664134840520179190474217593710909439802290977055364198932196643426722411284442562682698146881294641695831532757568137355964858771715094085351755832009087656805200285362997679225932084223343953943424747828183512469510571595537999705734546631363329913444960355140089822533162015859271595370490497785085054242049115981030832401881370295715881970049999788090175365232476280115604027863569618456053967748004347005400111198152413053191781637843163164005702831218245709329094980405109203401603929764138749069992461049700494146501192682609374104226538290390590973698822359240483696608642469866664288529587032871925685705597599285839161488919598162407868035449565931291776885306065766128962546246414292140389809446170815011059863650623958745122297220333454570087659748781416299558784767033810257546583546848914966058891788834095376082235889921011533739066222883941265074344158666729644721302363573565943658132096295956828709815277452450939916395437692123653660091278773632721014801943670524488228002395920463031787696473133652683001292612466003441756112777345325674688059320997884814675969843242304423125793952557095994569049322078869433679044882569078502784292851228560355990454603292268518962897417380499314629206976363618840411982673765311825520685478604717483183675295227758522588080967506961708911192166347173142675150214305258756447523925064183728989584536312110413780370623264549510986294026910649870169169793270433003045965712524681463279109830641168864492318905707476941160215330235616455401439008353810643788713981070713519045699335042071516304597207677329405593072637513647125734684849008500612460231200164801146615425934711073274309314891253123065375659515936155803149363644785051895433402060353818877526251719022849994688725506082608068010828553916812833503568165663024343839105303170859611688949039014830839543791192247087095576971863482136306810496005171322865954946886680261006700343117277867913133150205091823607371638654250066799364275052484958236431665725308692869031374759676588580950919253013847545395639626608600024788922606520566569703075623380719487785448197981500935112165678712480844145456396933373752939040271873149195709743326200531635413870148709805967174662666184673752231991871172169935489069472177949141832955061260258408462412679590059472747599071115108601910032947216442882399697579379378718359341178241861923780324647459556762787549207713810704487125293159024348347959953486120688315924296494268961479632055913812960448716323427497100228205555047555031260085890565876042841250881390868915160955635700734557097329014390490114499776959942001521361127497469764196651097861177366624435634707988808753960785349685353447332898919618640510253315931829349346166853868736461377073672425498897778418808619513413246871048448032884692513015836936457595098665047926431779269191443518153869356011462799811006067263949722181228457622378332257415637446379625544809517851573584475005356446282522433422104775253830589657257050289779393384434129877575003972300477003901085338769821393957204764800985424507214563119179755440791945589303884195667301708227368106661974979983875347471290565680553987756658258343694062311495838235329314375157291284571627590533943301800903472656063874086488089860733457164519357571558741600998314558079525554798787866726531001285688364759211962020414894301967278349998543587139972746534009305797689231618542816734878925163069770466173249271481577332149582280999321817747194828377311571185090675808531986980707507623415208177798923963770896984600704766000419512051299273519871593294437196162361297113241335727185493015353059435958507427047457473057286851463920732732283298613877683369752308642421153552592156673814705446483966262028268400783923207169308308304345862442996736728109118610070047522226602197592585186210956743666981994913264860012661549544426300714052242311087914040653385786679622219996412624587843771554459977019829205739969046848393327888180185480729531876655100192674243850978422264399106032018524174398212536630278914296337559299737248768042055958581009917713303307455543152918302395558482489026810754142134810159778418148401811908696357351250967341914142388115195388340620898230655277385927816009604976939729952306102056273027667789932022444491536901770030383404711888267040956495692046233661922672955769701803495856645904141169919269823240943195884792050615676291389683965731061254194376353869493025248175062803139481128375682689698467412757705411799288931132528596837428276943190078252953382594664614175042355717098931833048050571190908940680592331104094023582300468347807065358764490399094164619525438408615232762539304416842730847153404422480738762753200695007817237658945340466241939554374461664065584459048541489779049984683001209022581534418622203820086936799931002142647393316967904462681344008806882652507012949327497471275212987614915688870089647008271432521163399067966832440625022707090277531562462000711679553301458904826059927947569140917980856564712527856471464046488258174397040032055475287500672440890858779476049729692149601186195933897926250359327199410794243029355390271955859076949441865357921058435354657663401217044494096808902330334668593905713401172324961836061526300705407140399330839526550181697706180300561000177379184944979054222632540186995761931828945707570011564849465041279544918002827427838918739842978249547252649868443776222694401246724456509572488879833950464837957585893084569656908415506063916288432676310265203372274971830829147288367077912008429874072521549475911190249938867662517902255518333684460303307295567863298423226459580208397168015781008145328728804909418901842528757929803751917081317631604668040677285671118799185507578412675707342777565896904028674770668256088655562006785880305783762589063675576652848441875736336983685556247773163205513681670665789112857867047075826828727749347470486074160129094555593511813978701164499652277005832983019348830613743544609814117547624704361995116554630196251303066043373540232614798113080701526752006880416864053052809411489240101311084504610706998951057206869351091575791570894892126585403794714366716904577993829174929553945380290060123121165264564630648229773875545399419662058439512772395273690959218592703382082462750659593775593922041898885957009679431497340889382177842357378414234459507574597697864483393340603750326904266574318039048967169979328138233034065246028843492022337889753197800021357709081407112647636118938266500553609719322168711671262645727656896037436439769817285887857379563243273856774232596234347730571022581692384202056986086499931092258484579638909549401628955486106929074772927816384948462726352570713993158745134846495835643990199035714263164334848431801014504655724525542572228163655412376485689786981323847642853803442071458182257129086951808227793517524299527005417523229470804486917417456802344071434113633691415264427747849779307325080001178963162275583203979824561941175691254955524051304928686338651811857879010277420948445057474515433973312268661553222357108386025109200814319798519718181246343139732969321006065810316347293083800664775702708621694389876481587352597514820898294428941577816830080664519397029700713543374686058337643121557997802817050384714093353454698085828055127793132276524360737264257052013390833834560769627321931664417346330339031475423080703427671446961571801525651163845624726453783895217899670512472439500811968878112445643580759462969708400484909104982035756606125430439301107146482875005483125488450162929167853305495566479969479435680814873170934198449404500094090764726109191353788085681849936351421834364995251730972065913387631362860731121913214225558521134397149819493696079435462447615039607267372311569124174681186301697859305193723344990434209560767797918821321380818420663097310973185738898379324110422908137941222888256416244713164650592307501566444847125086649884004623369402672130478976226847668928192316562284703010676660112499054659198508354995836363519780013740182907971009194007230362831158631416408315442691522411681332354395732086345820331013063952044156780381592246678413549500206296633768000489157810254641943098037246011766875887395473387347997785087669260636495320596033447789026750785871325942906308666646776223159976137120549755488944993956227715653067416409594875353998394644140932171464324424339017226274089999325000287032230064252758491759411227491821265487354609356598081616284794164152878208871433445548340486178688514621110536668375553913603049610762761951073580160589104928394821715600722270923575583866775001870133483241565596232043410556790659458155484500454093059508580824507531412184845894737654288999774985400695629481584149999792400598779899452025432153325237625757621011441465954225524696988730541098881117493671660326132411012972015782143927200505704716548104022963344499827088239690588198614636943301379430686390734414951176253784454408899314500999372070860864502100700877403532143885069265149565339812562087046663011415637015816155589434482016104841274682072650214414589478951086254876123042270325408495376470232990861730944902506954103430615695933651680788208510850771278747462707708820806577853223936715089664197351904720791627469515079116008807741990764578018601809605835408988567622659375034006002698281333873697338253902872010106452201617453325242662970927559268956117057429878946406110205772904875367345950342635223165559784565013877074910615334003547241392178528155813268773488419363243972637666821797186127689310728681011046522827591881995387415972639437076200426631158201257650166714484587161732727134859856974665592600266409778806097568534461414974781508457860323112097380426929249359584642076082494984073373605139236685388219062560261580496061292607325482523435524614955387938722285130995701253643139361720200868574467522408610971995772989343351628444315922084770714728028267788292376025944957330991581631308148401188808728381137567916525024145025524013822673427980178234051532906551201622377357492611622233807549584633895483052668685715570315273443945605377109196098563063531911084605083214533964443356699615185810868954803178731883046523948441348502630201389384205915159086380736440055660851691762584842910508485007689883381649401174125015412336390552104433049040713045220500512431942894273799256523166448390018448733659559943333494556249866556424894120900793322589350692121658769600253231962268752670366994373843661893442140954662630409257083879477418680196315280390132626213745145894026942692345274475904869657022713196594048215510917296054583412445907621121874954851996657849401509342419294251730731448471664295490587878442117884950071503331469871302321541716905918834140741309359589480554659829389772598100900506846417718762808438470822697700303373769301994754891205258674452672423577339673174724583923563167024700016946042756051147474799794656029372158923643049617958966790310085820178568868982519636116980929029773149322528102266462828062145341018454425898317348337992924734098428126672179963758537160482888400242084010405987995304837145306936200636627976218749643110827124468295375176123647428752016675067207974968167401503391153299176235313311820493426164247625357327688824740884829202614851206363108676729775771556473894125617499338320715374094784181893899444840464209718238551375740233891605822621321770409057904639447640603825979894150993838721983720066325060144829162167972861456743965201601749885202412790144260296656029734832820446606011898577717582671711729958287991597811537636123117981300792152697701579190566118985517402858440557495334481563631476218159939703967085421729615120873340919791317995060146823243261763713838322463368309175022086814388747998933664627646903524581873569059455918022152175225921974937402661033567878135196999774956771760224255264725729996516720851997864433476805527275567471691477127744685901460348841123648341489541751325624340053244472770222699145979088319985190544209567937852935382633849407230416897447459396133959524686837772007148635193376536455968164193376311196109761822528134320617149606163833483820421133247109307160374531650055435499784579622708370405873860160476074041455032927924614777718145117538129409391368545531070384617748613101598857559457386322509927774389023508415764376706588350156402899136273076409735523238380837370458395501919413316599883955227862548135591726218100125690199457204527853267345551277015984709370550020056926838574088447775782210844301255283399960125439429153122153954162883056640603414994558886906167356897049514800800045990800691529594557792690318093577821187978228580615881546427400461273973416867311374628972486950316285001863859245351139481912724301074205029924056086491996147382078335640254207575484183939933687175748404767652913941787716086044977226971517734314981872665647717683070322159932443361984614844065036005559673193610951768497927806894371932071120394032910326546458848399913210753867912578583416063819522163959133222663223171415135515796610371585638702952126523287056557329553752846837322279315198923894922387822301180287036467792703070447848633099514280158816775001986725981824346584260471726260359165480131453953904452424928143353534440261397193725420444304187534200218695809153383134527071815737245593042009043120218232475986996690460486573358460388732044932682200717163248172899743847638046659318481573940276770343689401049396867442417831432122061895076278331543946603190903989718008992258270163463072550413636126676663911763919616360892883472680561987889218892737603759276050131543207781196898766108233160540207655623125689653895174585706120495014495610769229387492063570439201599882394794422567937051945673589185508298316380151043467165624319986777125847908212102485015167475170699562348818982977917188824022604211594473117334311972793865645739239480538568675703514392518453956144006803387403976946207595160811021203994061317569189905912609865758310136792174967942555510591143475612512002162757189336750215980384094981524099997514510926190647145874215444183669367326885881833604527307727702938141704330064634967349768478282206028139201149804940204052746529265203223330216967502694672525579485878674160574999906714397080804322153759397847123665570218565578004459490269920867000010465794105271213320237045540490662421203188547587681996081352497141783178987788645482445339084389504252864100551037398246373882171420702226499783166652184920042691320695952628938358846661015600864258281295643943919563439518988287670940439596930929562549044849171079567635618006836774626785843262309260039599517672108493059909293315042759101108751553909326159952713023498946890312821390520758184645522239245854425477289971385498180366260337389756368223951168205300782116684592813903455754246853255587976344651622193566846598049482737003552073879988089600133606607876387087455717766165328147949895263866734267371209242660826316812162486468513314957287922697076223552574321685631358636888785603806703603752141458033306117078957741486366460226591373815997145235571606191491521367027176639339934996001685202712032654782701903593267557068602028914780703367689134892325489021450446117809474740184980323947815812774453144871389219787563028143797865029679705795850866649220283129770008517437777549772300657150296937405522920576705411006571318489623139079855033745730517273820667599791667032658123070708317510632821969672244803366844676115689592390152521562620308968912355682776614896371855268701789503501179417874518969164005066816994448121983727473875102069456807831158638168630608655795664958417381651116819312218912294957587007957987120738376673609956507659338183430323449975219031398600939754427554560911758216747844414357169984675634378494856354856798754105936953448891440856138312727953261982310281255077733984163974345996428559184884848427349408961790999497411025309843555319108702770406093728033469432987410858277357113292458302743925874756630629918991468026384224625808563250012476681704461033776363850051129628591027252701766334297355988151774303868256806782528048730921211843828423792136307317732087916897834870752064243948842380022835316631448293305579131426484631725053016183160699943680474726875529396521413224355165822298299844674773947635402174352540439826802030986737168219967703011456716506258843599706025765978131029142929094901388269379343543697790218702388329895309063584255290118645202984806862295826356704584772501377928131230121958509691864926667046512549308906650256918411773056367003714846970537464261683847087894345735239486461715441474929741793834980837080880083717034350411599544516567464889477548229044158662038486547968190697768560320573896887549846177396905019596689684285735054641340239032373691773115098520734124684972589310546865120158300544258978555814909950056844196696783044248240949268034991471850942010424731810943309524227183828388838288866322916412331799911610653351441172432557432348685972514565168930503142540712631659672876469163582688941763785622004339699066477122084959482795545985358794474443883230048940981814187194594522150688516783490014688978668009999401955852866875384554170262973569797676004084968476747444202053185387859180909022142663628353870527788375025801873150215487189979689622777752183705379274854922596997627357912640319355578261233356609555378656398739167531010813577027330362330925163268462482932537137979852751957732459414608446768889361301301186041936874164428049325010863700212105193592699133178486081597760305843096941864150654548143304955012237844820251291101866301290917363716720951277859676906966180948013070758954598188380798849523940410552913993062853070760077635853007818441121053051910306328610516302390335805588954116283443596833386632577215906827719400679793864204474694554280952329333146107074907018003400630809250743449756077364360485278476742574849977956012146739093470466764582121760017248056224068652157240074316759095016894153641290486961417679703434360806490565212535608113311090256605525440179058443540705595360412516273257039351114342494705595748596377304946097983850484440816838990755784577573965924599735589418863711829482966058268347502083650706741726532375030303437200564716910199678913642151765848456281266536915416822636294066619955330458009542472708022142676709034121871607822191366477850978895720892543955336982471483069242805478034070602418099133540660815036807598476364294407264073014086094915784087474696193313144683886487097104944419745332435038860087548603760456228192411751848644802849457136790384745148629843025680320552560292553134463604166277960904015990715276954614222843106385624725969888042426284801100769581621846880900631304706679900788651605958175460626860396067258542148137394941276981326875187170959335073871692822975083363776621475490764422610218322663407509499554283376887044011717310479988772051910534995071177698797271501751968708142358895081027987747459119574532258102826813888472470702889955429467205857973485145021958663616215421794950305103451251469921785481327390078948626350924279563299322525961489469352731927906650082554787209288860734956766831770778696893488823164486896089788032740955585289290487500520315164840701008515666855703281962299380207386829114874071751772254027076036924358953031183886103507810571661666810847724600677965776400913748284459761249531438398064792280584444082338356745158296813384158099683548768005563885755204022325361681415519129740035432318372240692473150258475801477510859324891542872107363966697485190328894085063287950242387028967608332611714145704657445584835207776655664380878325488015212550915742392135309602497677934235002283277572484756281177603483341822142090959244017720068947374702987663427012403464911535267433324686280486569955120463273341795671652960601230890655695852483880906514364536034259109975806148034340671995194515775333908676130012671483603033382662817582554485546286808118883276146713726048667714381654400486547592755091954661952900245474362299233511018245363036758957701843060828378697881156793283776993298836646124510685232513065881270685509587958940187526485752184504345653855401154919182134832136775919751207097759343862800984472557318755849797500286189804131199101555364035347196501646235028371402520947359041324009341691692393154508149059432566784357053405248613699678232333912008308007610953873870979479654040169168609356564856550401281400077908134449149394442994178104085361954055869675898293172874732017200770145761591770829492134605983237455698760469785379226129722297196767389352635034124896159781009588878958918251170555226616592973156787167730008948083472711991182454933518179052449916114487787728496595870671827265653358129806750526169315209636582974376060542324325303566882671950752388566539611218099265967265588498630694355152225803067375763228717814249889064971261915575135904529912053524645305377563625970557471237160123025281275824910957484109981698500773985713626535348170266423457571114020651518475683854520000531733140005363054829791091115378722343390435918289323870480819786200273953579657369115714358161748363771653694147908201121529937351373975519749744245433910739049791231975424865125218845915890889491468401638132648721132159663602346494703755944484442049724652650779925450863113040251140980553574854288172772702056548369787659584321436308320453177404454726138029226115308763188674291782216198457533587724343127126021505292049762815588745469984855672570243488591192449606532069324522642495963243105160016635725568853050433083987016778958126046852744371954595027613699088062057588863651449161464687112260759110656933422258282819613773102003256804192317139092622270373205285197645753101118188304945061455561735999201007927815502387322520937484118607631644483656072634678046594370295365290052159324361357617504358029260336050672737684043387032593421106562473666841836978213677421682801130701037936203104851550112638401847762527477995606304424252275414943886061041989023728317174143244683034189623049985526274961696838378685482207071062537039369116608949930600495716037035179301674805932144884943436744069756598148246133500597807545850745360473848995172172861003805061892347531062060211269456795570449503006663276983315888010368493503490099426091676908518630216068181284315018404516947302156446272966421919327874129955488362104707351707249091870489209700255859840106994957337926630294367445660155055220608870110688113573671432658742359144988615545967179959202773190180513715244925398762496540372642957921426159892102275023461198109539337380574033143604344311182270843933883526247057114316109293590035987670950948365080012867673837899042770509993912745137799673991614256607455481977587042157408862980434601580153297820367341677056729031271965779088157743250204153470008053110606128647153857188248097762322392269895834952852545901091355378725109354722998873386402140219165182801624112559280653733625565065048130734456451206086672072935995580364891653886976044595191942946530139959104288174288834477005755057716578702617167106396297323036457050371582311259412538405929123683928955432608534466424898757882985645602197316801494036233406684894614178800967965339373719699859999002016763204284230935382161736993753530738536764943318447088474703145811480024556563118431771714890930909808372222991406374370070916416967184363619574192647198435980640188905752359239056249377904567207237678031407436713443850364040337953782786640623409741050371294531763675604247182566681042893462017341603226198588051580064062398864215268273839229138329161620455538686172581347679549630448683278179654868735000520082219449654149351040074024628728856799956104161492005428238978041365904195377738666967630511130536094225088471670683151110794859230233100860089655616555386062757975998994435067398536914889436355716963632196274341427352249218247545757709610226920802940564606945135513852119677843229594994958720098049682656164034503768731018003648900396927223032870110023863045600181990152899864987454028175706490282940736308493368443849315528096528608297476096707022911328178543842661089889030292536076355508513746659805986696273311811037315777521972865074008224144695670780483166226312568865125986114367272972759482555615838990132145862611460883298825512861052834491331036556222482371123163665541639282736312790123388151239787845289363557679610933731640059233449797384395285930766517910455345722668687723039638342538364743396391142104787844217051637039052432971870874633723672898310903674514746336534374177547610737264346496723980579237929466464904275545724603964354017536712349528651933582012998947898805049143478877991604979428996566487346242641505540545280298541624630290900236734801118956631211895507716550713104322782350106291369924258697059265838897004110292327165741479934959669057062488873927534365645306260660993972743642846553990531834351429214189001376731295236080799810250345205778230832806321334306696229076788490027841090584710263133385828613251141576959183589923021546007983459807347126844578668888932674379758357070327480857774886884450180478593444895870118768130633617617066142094803749725322369102384719824026158768347752815846347068423193450889835120850568386229399986400676522942143716453730477099171457983042807754645483197455115954767254931820890996797585569384718909451822551042316911859003243143447942107187553672819323559325614270150555187316094010456701003721315097699280579627703121898726021026461817956073133805235858527339455036460559005530710447268370444225421120541701929654455446290585961011285838226369115733405503026995625532136643532137082319826881978043215626385636806460971106314532458495242268944290341657910762281673667242611341871654772172115646963312372966195189550913993629766906644354181047019616319865810847702121730357132439922719210778588707618172071101284098769669281264446318222025823427781923497189940569903313795112774353343527621558661236373237806850266189141428745243241779455863581045165975610085957887565135246304796809172942673851569980687086861167989537861695340129665247346369069534620687534765061415380585768095585577391845097306177230055991534439046600406511503055333757228915931691459224901233350958159520421056348092509608851946343999006809315110241368062841045592032451344651322191717158149881988816983637222449222147561253731921741256857752073373640615670197567551853204337812794272784885468971774753967140807862775352855936621888192189504558040084288642855948064031034591180100391890470662242865883437744308636920038738376754752592303086767983146151241035759703886056002056012461522512979990109400349734897541464687063765073466816219297425120987290655674474144828287403912016262331543594903826125525414643116391627943274169985844195368943694431265367657785023297999225883162299128592519278664591255250627834032510923405685620319966667146978975695551209452339801715707195236640771323998065224848243094541683523351054194153953242013502151790505359597278342190786526847558648494082014270061458533918103931345209499748856482877490105286770795247599597546646017147105445976670907712913805504538462794724011065947765843717753796561906925317523680797476984316283243570290204071492515636624325506115607038577861825570503519093249320893109635018205194017777452905006456733570175989562622533181829388451882622831525326665689025289002249224427819671656918301670258294331636048113396818359224337361642895549004410373280949498084073965446874339963430552772930381800825068197351797883817729713961008502070362889461131750950089982588872639178236530518889054512426238414727820454853630650419961442749065013522502068028628294981395685581425986009722416718637805351613641045332244450760625679591890963062058752733530313782749131833770807945881628225624931261566179827475645750336674290884351745299551745057739297306011406671723041314621079020967816270351329011969101698868922967855576717422223081743313462922181799526073356456871784147296744390170723799120994832904268041967344969480959097596059300464165963136644985548210716316020304978106556704061475510153423017146145291694061683854942850358047531240582842665551219543609961827762273446768755221457762139199244803414261515177922272905567654760932266236447887799383251644657811907595756192963086133180426695222218808586325866033609474701983326683415476735484212941438960020808987423678377555931575417276403918914227473173881057797962562940222706503436296772614573602709092637406146564478899069103040695602113884494032455642348859722000307089739308219502709411225271177253052927846367248310693506333878569933184100965283320934758598001947525200490362802989866840097602144752018065329180179280743700223181466074210008965018086443860308700102891391952619136138739399308223695575464344481618661845965712961215625909293928233803111797517519088277086493942862912435824191410266573733425950775566102306001642551609922918230607031043201371831244638451083381689553888934676389073409148985174130347317573584897235095722606606735324196569652676831143158758440267949278751668455229092767949571550556373048665347234299871528084127514305008827238312338067936073700696184672597128520743917569140596980863635682385581194855654306096289554122852727475705628111878030419580083478560366209905858015482938807616080873829476587276727812058514559375586369579141255482312180477207970505861773549455793728570231390046044722149085930294065214360446049989927066573838372593197765237409660861607921173866910804165102111599449815468466543137404017096496926475934095816739266880758518191844989560160578329769955226402240966339677945352975063216713019857724939428320410340093541930543929115424596204264854375545054111556805240217522662399327043028559374874076210719623070856582581282559836651677029871206018164135050482573620248825447326190000452890255522147780916781912294280491385848377196047395094268162408034693413008122863245999948725406526228603827405893886793267092117292500052021001841474717523280492063098165475424334792411328256426681609815453908247693535123198467173492883822603888848751699026652335925711179313753320673080935895706697555006827949912653527577434255970203113447828506256706189222386468839485932579188965735602231761523864061570319559816703586317652161822899337487066905842512200806238527874477481774176475729096562061673458456159474832853410573006720296712811286479809701961612216092384897782310226682653564532113937779144774930718574173667181631007739944762281695000454957863040791232727674165320931578342758414626647742323261740912173143014036309675765457520772092448245101392970539201826154090070777438889624718177772998258598486899907590731891813962923455554041912138840476029902912326795143979702551079900848771142020796220618638554778920169300373501326122613311179964674150413872998415311919776738656698746921550093783822092268712073694380402649913969754723663083021192010421176485735790342334281630913463752804849044768318537431572010241547687164688103756695617336489424628989371561486044867259972792281032779976025951310968728037499077218978442374213322845536789415674027842647895581224144542846290899455164618313030943633595015145018147358389791303867933076685290150448568220041527769875642881814291231062187897837701910946684098580576835022455601495812555480721240655005683985247185998522151150616687028317217750775947176060184950339889675488344825586745338535489138878949878558941602072606980360999798617809976274625769977291808280592449952507306246476263902272768182374949249067122042294513369739823194121599887646648968638673833954518585999725708494915487318275717320503424551133683173802831453627841924618554918322444746320853183321849816788126725215260564907828174200703883761305140699750174057369063913064484089299057861800536355646681313092702251512712708003880117432053884802361701868681327362034985344475591748734496857459729976773731452753985075212819009879441999762912089165552576137734852919345527550101560267308960406906644443682665708823722026053585527256321711112326307062663230213414044503943098472188943251935450672809458720466763254134965244500994357493125040136026708091739593014064686463986036339881784380243528115988260303589082310223026696770256584404729822678567116124872807270851508699247984432234621020331771935174946534535900199010897530777257967575611127328493201239774243883605441530408106155433187104562522194884678850951814145364790418257340609111733662186679828934444954777537443031869664252909778004520425478714237178890308132215266699209848183313183279989642151194915450267408770460619852289548209715177020593781469820847163193718563893718567598456403977856329236746011331868788808508319919417332472266385010706245334938112520080194061468190321076577994537578908466417355761640474812831104376430670451465633526307837363037753986576339586490925155581798046142148073318289632211729981476324133358729513995586653600129582061663070231911946733818071856972980214633679663754380255004416913195027375043606446675360747328997326494461346794893444564879370031178048105481616851992852203902860955663225855335325356794443491375928406020612613844571560244746017939100691513098245967703479827805429069487411312592735307264326221601324228480893731568208072553921576733807538796369175054486884258854967190515162377131410063093724643942366209560586982835040421975019703408431889228999787398320844333247485380311446337415601786389997847103437797824799126770821177153905147447856318805967721434305315067178103034698878265089478264369571566917740209997558573608888133226320438514030834100261883370032915268491194366221908199223316461020693595056900816459873586645814481226147505695855007387843736555133168944180759139609114465133499425833311304590023947502726310101416967403554396360984944271950700713982438762283511804125156808503619134280241827557700985723453912377428580416646986874999594549219796034065172922669068842859138410258894011839494101526139911518846962456521101139645867029432539296699477799403228885473000704415678690054325087689187928030838819534168526722115071272376880801921598211955339387127901293126033421115380253510283858356122606903772911024710349971539329909694209865471040445132765404143258002202458114679611983788144028645180319606605905822373151816203160660915628848591298842902837437957671505342910629017603798082312517646817348446213019556973968995745963901816570123463932229896581880389580751653124949682468907352303237748420093735038765433237048727558233530324686478319853582701871968422504564120037715563301098239776059826688752279415293421545341223186838217142735904441352013354185869119156896405512645388339108191621640793811096873694267290041279718066911872066915069052495861310595378995754269278469297142443488193227599754897297208539303724446012371634518007856819855507884422700408461292562136774309625415939176580047404301529079645955060236026624867942353984104098145985466287124246288598213924811962606006684246304520919787911554125695994519763136312185169957875566421228205712122548682269161144263924378650752043152886256105966030979837059243789837754137126905101435943149115757738989865951994065210043137146004344431357780180486334953823565967688084170826340740099271257287381651016707458097322935000373690333558557054438723846519813236975503924976371122826301042232817656237282649327381412875811644278481750316225414764541188058455499088334300113752223417504307746366443384463438059134507703644109389124347044741826583370279992922060540379719056488080622653876048664524733939983818635463924304251921502552259635154554700059409132674355507579381717349177280866817412272162134043523699347782558507412186886981718437197305448208318784210550615730487093141559617637709955630775186051716244581228587581175857865040706976190248266036973779838916516772351899968291528920206719109726362337371983957303224877365520571142690416440719782517623685635007735836564249657759462882531229734440524208127779694122361956330557659771725947312428314631763349745054958569256247093708656446732157763015656802758932226564933012406025884960920360923301331638823056256260034758863134318733641497590680106121639848351786371646120902752687984583928334319226565627512333696848435777590249426796236323047918904995827543876947963741122118796296196785527944171572769860290233357492669647292845463076885280663955612738494209670962541293351966542409497971182653256699876096208907806015904587065616591106925159372304499257074573870600132166080896107268296457742665032878234409806181604284842517409534925361764349811030750388350582164723939876670763856781227465844490363757687257571341545851331036721871387713011213089507365595688748284172276947334676137848035483957931370174021034302189388063647955775274348171309110732739265489811520652422692718948627059360172832823970863501797288666759430245074330055002307277032085518979407425751502308411838968041414156706780297538701141358297240592187111023767917525854671885704534332240975452128114352295752446308412662271556397736999515983632197250960560903044879505690884287417250864411073667258243125527138231181618874817293410427041019624392462451219974942744981433414935779012371983085297997641582494008173155196219929729575336800901229910689354436433240673410472821527187422923591444298755081751064420122471883158851903614289717064387288089096050298041917720923717520108083473325649123905454041699144673750172768358645752950504926855574052230136433845498418582586617232402529200263758415183456748482091548058029472979929440027729582148457947092795761584031248759688527933605487659537745151963654570026575483472969622159547187253855890828561403545823919885330869409850234188880926634944646019127511403971909959241091428967642928885554029488565863776464962372555991270545374549569288144083049062279808972996472906799546097494514441020297845817585520358654808718446853497319371147010074280714091077645352917137577224264304376914950971465328588039330287851854874463487947994076516194480394199974928586479082463541866793746280462962031574263776517439149687097649065814365870374860754833548042078968573119438468521992043575419594330525502398463962006212466973842077432029975453917872423807410644217418023710037434600384804734265702166633220986055831806236338387974137421740280047097388893361464691605611326612262175218557784639712403602305831825613450950570776060217378176295646231729382936337253113397149809217385429733702585821057323373600320465222364615955138225002131259689058511090613588496412493352695166821014531120559528733933211476704007200458708970604507352912816537288725804515374721179160071637986155923714493396256458755673524678273443473255735895483102468233043880154640858681443583211230276481865059737628477788719948340486008046105642579797358615210181885529006706516661398997706468395012523045088599024873256709651267756517409192580417932976689585624037529898226436918891137980771782812504290933334686330893698394389242058991406823792357891967683976217595477819080574143969853475015761898058711974175305043097518671513193674148655212586791119337471423179218095841471579506079393850863506535931769542672439336332900683237212886666756235095515833744038659871970990866792808530385477437376359471562384938132612643998959360358574942723167168578270511111186280404679821244464957492149257286470171582073320797208977885262304950381056986332109215167795873969335445968757978846064615550710970075010060902671170106433184668215961676160621769639628051682953879080973129621700216952860993509295574876670686823028864712790810519848762743900541731077898971064377558397979160902221643903473240758414323974931368334639464354599450270515418351560417062167388179669950633386297760286460387149326761436210300697389113303030421497111848520644434171197182579195048607665666285192025115602895454231315640405629735243611032882936960646067956140144829046135317079080616265795353092130765854547969446208198445782145082434710769606175640755269738974492330982872083848083034527334618047324078029345848822100226163623391935845352289502256692485383625968960326379446015204305408240553235728499636118887305612928226965053227235008356713016566561611143013429527810852567418199097254181867535674472957283838831918513243106768916548167111566999169257346044784666556091408439010296239316872212619831323820145339000657400154646980185718989736373533612400643317217828239404233850038543511100186998947158649052612976890866236667387022727091560153357090842410320439119180451887290266261178768794396642086856233204967487952796656709297107253603619003843816122009989486873192793967420650304955704222461226085733705606345824041253997735650521918162132827727851153679499277371971810687721491776725370433473515022976442660947838631501824055962286678902820278034280569561658654345216439638112922963558695735099865599629632265011928536239395490363685761983447061291387100143675531846437752165734849111151210935211311275380093987741418270514057214033011261527914539984029060920803424851750303210516389268910491506600633787608953959531285080279149479802155371922486344340532537831443614375863345860359109568312159567576744618066196081290195542199607797674247109074351183896378116778221028198726559034807833580729647257344394130069852522378752474028127228990293844739029826616132250642897093456058972593902824927756361700931072824637382912511314074572918457669843312508020667329171864192092908907277551758289391646463764239851219596017740746502155578229232368048818152853458593973057164732045195205027676705814245602338349775076108168569594859549148093166272702707401721985613560707175709496456200731800021684435158778657774832841114447427479861101774946704603059990261710965244929061364238792879651945881624022422950427013477901498535127933463695166920056853554024922561634465917558697391568936446061180193842286430093119823855566677084342969793664825603573830988025237947286427098803360569178616377049293736199259511731925406582007614676281653165425123229471850770228345431770222912887854659701321232522473521952138535238588416038576444378403436772601891945104695761162795255203482033904018245770223639107792587974591196785913392997525607549970491564947216615247605070073161906542858778763364983740670649294190347723948368579743930634585143611984120731515866674241229030065191566253941438326705706133759882830487614306519255785842958753404861342070034201793747256848403714940769884567815630097406060109211984400516595828141782624905275896110811243897951494166181022009644507901739620905092036998442562317459870848120561765167337503635070605296801396506225073734921515672339344267828885979454148875202004953210642349377874646838425971740670116739131732412441433397853186860758273937059133362154578140713019852586930281162763267640554241306588840588411160361054546874871931686411591118832956739871249871070024745468484141963693505352438616795037102648208847815539940439341978743063747706748147926801549284172409140467661334591094231839450662151324474291818396568204696332166653058771670509819343892149130110591357963109993327544163376584357305096275610700149744306117127315822066006424855124852969496653926388702869911914026338858366535722790157511129623273143944297078167128536617655692774136099383533782616517229670201977803679832085471062158816721154537332510361437874241141162594984962187428417333710933739749740756753010722433411764066877051752499059355005797118018543795320520465395074817574192224297439478093730450012801390905671880714703720638527412834158355212844161745706191343705455933488483815240966646224885239991532079821285158462898621847761853488216628849005006591526581942736700015652016050386874863800213426399646266557489104301493499335247122125905619597484219313871541646458580902377076974888602557681118223638913155892902952055336929287055850547158436200356419825713178455660738334768588402234694804606127909286162415157618324870707527022422499543895956865366584180881429727519787245513042801965520638437160154382616338752016456214687847104521950566975351909571687663187335160611184075380219180886821487909755941109558822826248347972762445233925613652246121619810487375737170403150369815110797581803847325911754496531468076351285357722161095544337826574314578600239955686335859392086540498853280201383445811611414733022024261168493702571457721490037778178637521032323599990949608095300531362114051600782944020591459975863549473974992785306118386577010994764637437734602557794062399709588993417706553954213916907061451443984852866893165687084223858213125096665446979374408950347545091226115867263742762143882926243139521388252919209958154765921812986421396526168117555724150844116243774242142653530921819136920948235675787345471543909538948223750113054660011613653783600657561463276995667085921810121785498407872653291479832548724726451197696251968591257718069386222785408699966497576609144673356183644950427979464885920856871269569421914629618296658818350033351995324614150787204026488491178686979866903796295534472044800496698328497604479189139916717396622877744420922074921726693374582303663292892169594774634809119443919544431262222189598118888173239135660169859334458797139896427212546082410204103785681178370128723828349423394273134924140072498688253165289907001790608421988148008745875130807638349275308239451538311025840854648834132370376862254310386189411751974431183571635458373586033795273633961638326566846713114683466278863313232153038152394980843305863592249430543383671697480091562005364959296726093464277683980735555420852944807725486191040426972759375035281974279373701251614543318417530096967341192288537775849495915711846826463017250281364445597318150943183070643175636586987576381221485195013536230821363544772729140405122388240890813801325923591542694044221889948640951219490029199545737280806986610419978956772297395344991045838851523546423307527947232542135586529981735857016130774543040754707361113611973637292445118131564171550108906716176849665835574293717545651425751354633000902163762864429751464218454480436203030591103637173496291906673825983800111372910421579262865987804169945387629847142824280429946342345986910103104099456693922841108946487193655598807066565751568634809534608641705757329191329437755506129556847087009608784439392083963929642524675592378265301926951051560188592578770845590777934602183068687094486933003344740283029554167050944792971238635696517106956291300312096634693714284562282838536777528872847201464073031733160674178502642286885465868447882746369811363043712667612696822167545659821003860158843334477172574203616313926534248319744405878749418158521355401529059190538709676329771129440260789049324512529843032778891578201019162371988002880891794075737723715557430387641470354574092394899809419169622146525382948669157273193557092330963732582138149229239922506664670718881111681162069376170221121522865961092710227137730205151754283889261999910049402515855893347055853667329983156742799940560917754582010547316255674478901466557256854339481233431168855196923461765189596973108314205360622218791088654302058486782100278930619802605775789738442190775018727222494355518226751512980183190151606607855236862469455167635683920342827004499629936324513219004346086295940313751066281909916070880300038714678419433264304243048394644273563598260549874328380795752647851364404608957903208754800235015490620053111004371476091200770075624470596537898802421000169194878105359685188563035943395116117010499240057077758889396085551798769874845860760169173186131820236987231364496042364135330776016682406912431484699911213626158655264562725555137102701652746061409774418996007623550289745179020384078385030514702947760465444124442323317379993230791204916088523788405923252911496473231552814361640556135856757966598290614717841534672204519299767920417684674250218649893239513333104365353599176854283383163936978119441748284208246587611129836660686293183187574230119260177981434691161253276975950338060059094149453451600529199391305211080992397617614918258284133117979719891230877275526363074591269151563132283867874611621204778584322174613581165833038324511627143040103139483560662646831761427118236447453435236152757811506899470250942826289148416792882007352171106236689300520341910913390886009587209347290134027442301980353973648526889640807151330494813698800357629650410584814497915797561665267757996938297437377930643779851704493194993662005996001479255489109588547919565023923974589056896829869151975704889351946125980681396248735729370364367424374288128875558812935753629337447879332318855855456944734137509260081202657524180899891911137100274910073419773370538214949639865220854545368331985123217894293424414571832480775420604015715408808704448959713234034405207395126567758106925362228157410275433559201087804048834368931601751082218198609276074464895263627845156988192439037836317065565764624479538182761482716374999849898303231537685038997819141615564973847041169284935197479399546131560778153700412678584838717199483532615178312869580860472352371021390468221856371662314079148760467645693591168812598764937810914785578847934685902683119885782423638911092170030848540262894151224894756779678147995733775006563758281139423109567848153670386942754160131551124969862066039613391429151774744887522674227390106271019250043391160765581653913151296978152189503314710461003038688406038865793368656188213870925543393207015733324585948896019025104963176017175310604664809113676937045179245376562664547550516016120968490531449154579718097665404100581118368665501985268931559693635620194050174325380789399469391395128031332405047646746948378104415003728729952169986897595753902433897194622795035961490003832061316710091339981851279798007688675463591164371834878939995703152794301438192667240822938486125837989083666257587372268637811909334181172642673450571634634247041166460330094492080371924710529433943521378037881034524177744289061903080257105071856639589953076401009114850275760040927610868128700067837464157770707962417513334877273085285831637252016130592828848694133373232182633809343385994338548306463569787388276706384478712613553880187586123767373351802354382900958631868716459365103645395267309674156686886162475685672861968872402988199448649024056120819491973957693049223127534520879240938688742600954156002732998226924722097851433439432450535518267427241899892955270216415401735807634597909311253908512406752140766360087618244767051371880999531957318443271977946112788339085700560550160138943374688817679349539682230594758615241504536815009544112261230815688669896652289095462957013515898487602707960748972148956585139740627081755315259798904070582741747795198471972729821017239299499113476800855150344804143903889134415776462474808123870715006097150544440403330957228170743697686771640032277098691127515923134132326823888268278168687828020825561957093485787160260421936730568101656164286252098125396905025003865660329346283256359416169190576681055182165055210640780691418746448218540599982373541387965937393638478751957173913929076682539103683887319877798313614133766927758973004288293231992378658919740344969955294420758627969928412060738786919571255260264492945804806076287740579607022721255714482636726546586291242488030408725963478985169263993144561958184551464455070340752569310082393065495128151140199861875265626391802275122466987346778103208305408007182032599485488465226345212272974869207972493195204387118649991744288759612641903967555979500367968210181452027613285384358619490937842936923533844025935170540598770202975772840484627070273317648966722826907969861700180831621885746030623657223668608897329332479286992820347481403855054632969507125410872735044608499554647837507203446008041988444977667172446608245983227923581734515321229184982271868023200196756143887753089921944754912534376351384105466197670450771067930326966913669986603195959731939748719579334213447566049282107090246648552444471558379648170993696211206689150527289168454492246110532020220527461968170423137814717922335812599636747344434775028138272766185724459740319409920311639784987371621861563612819143872936462597048586521007934100135587250637853018165062483805690296322708979162907564067415017384334646504585114571029256925413261415427131274249177676542204271986751849992697109977756120545384695744073563995380386218780032519476953412130937524686860810546985430640524748782452883859250455964095591887791951926337688451002320468281829866564714329740658693700316398348502565623000933545605719257491722618019344375005974315774906027686949207676082711297453684027576803919387999765268374820292116515405558446984470045166706835876393166270550221156810492109083487620888404926749937317622374086511842695198888304385491754570607136842305938225790385356924436969448760652823121896209449164286970692364064288071043778893674406939995673775271723829745309826343541264426773323120692767850863589221897297340225165308734086217556778948239664735721474151161984066254427354506686161064178865922695838493617374030686036406278075128626116274392096018737579628654205892126671760407066214346302076346627486598115406013824629284011003345590635257366847489305251812067069440909341391423078312528138875729691288361304894571457765515528976686116259387121672340214415816988677028406902444302781768173324117570532419429460708421641222912426940625878019099389872521356847456492896616196970287072769180562933731695310385862616826721022467306064176517234591866690191662893879182039772787757826065461141765767721108274274531524355655273322440198720803252617349967348343875727038407216338629513516293443154516093945708439260207021852171359403834154113210555844494975296449842935562182617516362889685578769181229063796724214644734845471548494792703445235728727313841018475334518021551437801308949706585698210941749837243921084423999584157051370053078189344399227247482472666658943091255658580362915274998756694904194091694640977584025520483224778275988865644891893657318223381653011875728264446473489366340173877302992245114622996307949188022163156087300541939364265904560873479044606180100457073330159119292849042327721231024868424457545990248169674166692090827802774119557660122158133764731448585251377757170616164430803298860781650681811204835278968419576326763296549632236715769018172862985602372706929885255048981343031434751096559176517303087230977150877195244726235723977938642492077640026983299247437539637534735308227892963968174905248080883135483985800015090724264729968726500033414378543917765539018479066324756724462365359977351508915154675423120332013160504494498383490519018455349278559845705592810781933554971488439586001391277711216999196304668829869952374974959156592439325562967072809921552314541563912592392513864217817674982589133980451581618665766225420770173737441503911915175318834955869333630355155930080231021294167961496595293404940803506369322604596386096057188575795539238182870735490917305763536231147595997173568631376059451616713239781003443597408418206481102497519132331118057941350152509578092819484857677676107207714835727230205173204542941748920317115196252738749883163555669410744434656501224766123048001925971185663743023330619027193121519649772667374046094756409340289805287944943581949618579160145145366355524968819290956794286462586814330959963254300074738096638965821627674917117676030749741007299939984746597952912319651604181600320823952857217749129532735610448359094711243467245800621675366478457711785261001558328261059923535822950695028089217173079969957652316177381730781605165501098325271812106624383635175389889363427094307629870330551478783526646943447803658234652484278099287258142721518033437185089000178091824934280460017776583253860957712452978233937366026535671283605996549450012048229965258348986085510277852064712184750442031148446845222151713409844459313445108024283747717239820248817855582420322657385487139018385026513990013430764658302010767466403856228589991762212763936974366949100666150158595551029015933311049930167857871649781087922286057522413921566012844643420427851230920725001602112536591256429014101709056149312512127509799407736809759941540714673343506775903432960676643681082009286371310011514236673153654677841884002536046718408447049047242151292927365691979801285298238611516652861372280438015733325555257811229996632552072651967128035199135557947701168638679643621335267984995591094425473991557255990342251523990000078676552558984066894980983423942608355533286466617162466482414906440779224815829427448838802931481884952091546868661458164386173611592730765459421985571967088916366513252647903105279309865705511952025701053313702757332630082606611036452341529240676941124360688309155332262678895321972116602658871002744727803233779617099093882866389395637565313780620180134313486058469171973957799710286171832814205142076343975914985708981055507124625072546210417739608390279369774690597948436479063528984322551762783894401294429605779558692601389012341174595017801566927192819219221914821586056676924266723941194290763629508791351189176068644229144949670831915698934732892735004808502650419316169363764544011055268406874057983989009174291041410467938136255031125596702405766829837994073994213875485299434614833542201208336967374850205871753067730588239564939460636911551124437866247546930577829263228694779473751336573718914790136948361352280771665226511268901150872899501311978227122892520253213524090117192156711899132117112898499063801950748590762058536409781440999197420838198228020878568918497178847593446979196457910164205147091989840039825403088667909023281756609607183395293826727816357554679674020403012192427269854462477468593258629506840258081317682674637844848294274470686571818496049516160436508092507431137515040788220000850072276869281764156906324720703146833898436755323392086053559596076612580564821364907817936326865258149971267918262933505106227518731428952857030018276726965242828365642440078100181508241361150072780997009439615866953606514812281913009296575674484550725769748401524178075397232676106127145176707547115868392761876437390790371720202696653139244389236105093744542566791881000103669930724689720697702665839832653784646064713461002502427646737258328350403049635531155542165626286119977603441046718204760250495383622418753535212193754078236688193570382011258600262088009066590432841374679844507787837906929814941012908435814363252347667658014188574198505787492227818894203835087242514764066515309754976193276934051774317053733989388872516301064541681436162356033107178858990521626381715550948707237171571331231824053172409992964419462460778110906235435142470408601422146594243541771220001936755053901978714049221333629376532767134619694323812296504567104757411274579234740646584451726259783336150119225713682769815420943246586161671071942423228051888084528523616250604294062834238311834731198496531923314316264918121265617432510587572124381318674984251229325555713765955513720059775064305652694411717808512908601509939115426254961191900602077873509978966866837185800739146875461331377111905161218055339841256476413488579262322012612646235654782471820368369398045889255668215000365947605663824668418132430478344396042992722622460583813585269886030445084163209574255725020866926547148350392907487115148503203643730002783144468897699765381477434233585551840088322368851239263005260011130732407482269315736895198476006477754401247412345340088567088996520373542449587653518913133844189320893424215174964668152529449295515004741520087984830143525615142191054864197192009202352718298502840450189549999512215289715971812142888319775748278925456004477468451418229032177157850793401216426879431048458526400162902413890133011259801106931304298285937398244089090836615046924738926539958838054398454802968181172641612470865542715005091811041372239090816097127082368780871869910874950700286242541459930804068386210699602480319748134400192840529767800625864310810744896643258197456928528848131467058960087484019989257159248277896365583763247920802020566476292409104425577268827179265008474863289375191277709041443057567253408182114021614168865399630007428898100756300207487494821808871776626406417165740394608879021038433521121541931851290515103835362852475157514949418970220875026778538893518222362031578704194608992508869219070723017854385629484754755246682937466607220460052041151979142304702688667591762060607489828408256702963732332553575759357465868212751674135584221252015267117646669078769104701185469513157808751136338290232145758820777291747308184008697809363862351275171782017980045776610081855938549066668325247249441032186877332157733999924144795532548887704092482029312806102644308647708932203794853619484196907354198262334622049979740575856930414822971155356258533580100721867621598119648082122727999346826470086080810532131016931446842167268324677894949490800832760527273003258558330325524983235412440671678267420056414531498957604095189831355119209261241413970017750160804839578755765293031057316724693805086197143327701133649659167246057363658411480346800235675326625890619419316232179436466200197862011308003771456562854915231409290612662990395331641747397461081713346365198723605153411530690919741553191679313505540133067737136409469871822984522565464462691573215486508598237135442039546663453144982200406964506487853110239593905466018013631889573646157388079620267742924801505404381317506150804591218923956356656506248772527501357605959498887130163569106283433006437018199276186055159141579262597635725053665571486484226256840458038837907732668922757414356091627778515205053535911713307796258607343370312465331336220592952279134854114924635487780042730735204379828517836114132927951022142253443934312103837928853210927110234682447739270530358052714604345067423747216252598610586656020945225631094853234936608535672968183451036887650360454104986269335162894483424509832938445946330364070478985527826392358843389824582370130760072770245345286021695591483246464693612101284464262299420088431041545627018726766878009981136693394279075079135450036072392272296502631475491014510783452229892153429412263841408879259013513929332358500786138021623813334080599944546872108557060080417920190782123396510822728446266246890132104561855607554514249261833651730754270759792898228264577167987990525898305078203076457746185588616466710534604237379010910448492004043921706570561906237716810857610979231564606339436986479850339255434365855126004086447553340519774517088995600761464756007605409267094263699207923378765248299592597443390002928570051776782214460638773866243172365888080938567800937928373607791469662776236591824841566820119668126821961709280687984526068271079126042638950037621270486779005719605718787746647909522672676513214437124389000748142268689236197883902393514105347633081474207321274345630495202863835138491896202799080256352965154254447035509007344593988210538517085551688171059717101511619177529882522007022134128286804114196255363622710573979107323791093543165378207517992889814732119461102611517261783783508107578124686657804348922695716889379332218213501306275315031567804043015151556777801372343027072976955663303771132753546943819700484838570370553818557611120759255162435941998292980495896257234318056771497181831178366608700760001385728477402633512954026929113290408829353044968634205083025881449162946058031585984465637558172493667065527978499977495642282818122750185541258555125889190100285490618779528796997454069501571378566069359958617217619322711862585396457636836731173423645493447609933115047017396985600512231479566562922804040424783570927709536467899854794145693869659734215237804468016228086998453027308362609149406146189101857653895267351298554005504005893757645760250950009739581564079025625971635045812579846373196624714011370150970603219930663399595512644736223837805980256276432131681607817690644952474406487325866811992541537086698249569841236220163491997369307127394298708797533254159943498212325583219940731574844456841185761432319513833925298116768776223306590159929431077216421981031148208566733510513575138955645054070136634148226761325281152148008906788728191355757545167667505174020869466331678474413214470136146986455438872781273981267091198575297052113183576479773029389380840028838903719519131717342218877844386371642614477671526128518012527676311685041161076879894381609195385611961617903296589385381403867372711062511552829360871237590830143100677773738498110314804519101547158834844860236292470395503777291361963421425555134488468315612851949375067409991615651843121595497303572291046788122555106542521955042362493746244978807675761183438362076602382453680330908946514871035065429378990430981976315741832438956710816851952106979768247066503265156921783522915425133671111024835168523275444400950512362190606383880109808724125100585639232430997024060367629932916343617646916353232062791556360573828466728280820131901711286907105075185534484244917398955996087683134235008749907953729785265436009096587379095362917405563906925478977380708657172438720806836385908351920248212226714336364386176898294972549470057857263043356173475630556772014383227635969147286198232249059771849111571730583607502208305584545038312027645002630215248834232489751063529318964925915541720168664978074884145884003550221141899303219715925774160751618850199129212091034795183710971857493546194739740403713907133870634693147909263581910859651286442551127517852267639702376782709175897785612965296964436310683563126542701629776279154026941635768488941944932493433342930826743167270671926580788288595805528868702399250007465280380766121081030910624064503805645066658028990001455787633939600812548054101394939467871948150936694721252813089876491390831735125183447927339396994476985050569031018602098242818438669500257624282472389411087571607171290014884247916809927514013042658827857328277933950031424241829378012659328663095942574337013973694433770284744924347752359964217764027946492411090888592546019290006930628990615316411418403075709357074155240701144755683974981203899338118582057474766905482211643378308906355551171641506033872128894268749745728593917871995431225289457938455431327188915771816502468777683719904094028373476841797117313888712335633829685655672159929887325854647980028214606139362644838639960836167378839278723085191218206208478837424312061906873363682584926340937203737182098627894993182302517915977747111482937832000259904450653276023938648144776098363654922586082383309893309630896550909297820933957930905995480241577212893295182696260081238382719212820689904049206859348872860391972548587484473971163462024446116320081689956599338862807623464028754134309203529630174753930460710413597724071665122009590818870686072142047535343425655442409392935664613056548424684123614615385326171963165918368917291183624901244776420691518333736903261224682463164657491389304049328499491317316526027515455307475219999309453130685468194916911024949390573639091233026020562659352958460956030905389250086046923905375882696830478455284042104447432090382875362394158740788299176862521110302770448365250883680574291925963254897814585303798084937992100408309182030407201812020986134640671731164629439727081976839684108676623403521075358272736569668339973504278072891456996037945811143696860046767880257933508615944585823184975875244734179562128929943238652790363448868056696825952877729911091664712677754949747118505407657327712255780284554037715814563177726137121677133203387637388121883413343254808925396024651825588886753882372236126430155578008626964046069964187907810703352089378926371771209205664658160278279750685910262172612996920687564741987940190296435393401189112988263604915764271647329794094992416471685971199853197328606370952870489454857548325807078805615316221342820265949034757739911962872002314682178618898483241742172479037887368642093508108956084795303102407337740074357603734223197561140952739742637786112627068510707841286661854804736851776310553578725260099175201588760688277480953813051744622228030701254697328083158242602375433893929229035667189574050623740405247040351746232301048470241176710861100170807300834520939442308253042417748557805338453697517842147920848046583332694599013877488628952668292368414912525448033586122896225935890716137001061742723004604761064689515888655237105433884723387517283516574402217653598528986447206278186423584829262145789001820266174218789317357847240691161843647996805124817887775988977031524522998084791495275260503441118310323293897312521466964300215693237520321854896397501164521019447041652471102963185677395829432642186594001539937505968483100264029081754575632385516032014061713498396707157763361711593567409494246945213875340049470051794361060160206858149337303166530715798635276056367342169200784826440911670602155316727922491839445671143989085507549866652123087824558812012614489283454164724335558081896103849653729845192880995386873621029102878638365240234763157547563842585783592458328536695049531953238172464056648441167417194906051272478020980584708025597821267448648426438909207184054110058316563525560170815667003462435617873520025198524617483305580237304157093757990345164291285433499732151042108637567498372677454960486795354297614347938554550835156118784532432641167159277468286907683532247324073437758144850461504983549586225282769126852513611233114422734404078697364330030156569262774149077954410907852569945446065761419252666017305522808964345557838593764437823946181132997549189480677460330710877540571216828553431125098380790046569585895610298449250415420203422511157870297236317828748241667710649093174043157515261897163036810692791207257395789580394950838420613633588139289937154501098389347914620368003536806845524190143103827486190572326315663207931000706750755891931564668281265996845562718786189417746945841910506130780376336208090733019717960811237550263653597033339721223035584939486217366890808960538355203913527960175243741574418757462913660269773183999891549494674028830431844757775637286131228390712574220176843911470682392392305309512358458535146034756519903460319226515377400030989133048977166465587264420310123381341264867615078354881727494652454298498297818520124655704132675514132662097821906617080756341424950642020275572364710354808728034786497228135219565232728033944137513916973194999394071355020546277060444637617814724243702788388515080266144688112669518033657716897485338255847971820650772859694779004075171155833512575027582876707598463663428271867694812603384048033699814126175426998051929484082043067863215234160720402153343983967242604122623258957088464239402186892903400037056089727524659729762927141663387433031738494003262885921137207587805003027910885340099797566990091872890411755988022038734338319769276342788129498937583592135565850018806287287507703815260381883326356919138594210851369061958109372223613522590643511229268625984038409852700834021507318839210178377725262800316148151346653415133388925668980754007958758518566580674780916983749285573781255779376310426114624549809255254854332810720513421779615723477785191173377788305663447822207656496750187381286166673175820592553411036586534469074977568549042304540780961728267508802302357851744766826071040676731306598550237707895996413714898751034955993303910643927600115064636434313169283662352655100705347513763639467779019922012244419362428370435303041305062944639154765763787350123523055831817868272873499437850690709938891659167849631289298072607773347981714257061142621444276977094892675284636196248810590343005986129495201690610727686968987337234307132350304497442277469789116315685826841938818267760807449078534410253555060601081600601740752983799592391722445771580470436922868595719051982936801038490736353187627549075758272459390430579015062794908398426338394804507249816272640545932844606197295571763232000338225641053279226566508028152355833572888972398220856025920794371994182456122767285904060460024362961814470593943380441081785839090354039526518055307919134701411443370720672490371929286339092061073262166761058676235635039616438774796264285316454692932473015227116046302873872894566414252070186342595482031963051920474464800462277589351312802339911749306483679095296765529564156933759575737246717314418455994628095503331655389607105768531923023143978001757872619971822622533648695804834229229677804552062760500289632024367013002972222747125038765588375815402203752777728342036129130946140923710736317762199112858982240096418797572820994087227046141218777657797574957762441051051972962419474050533253613127332403419530547874259208867462277722584994119599998613566747589403275147377492942689160544261577835111481253394025963081432268325390581792538250968535745096973603341061675596949864812185599314374865809662298866622629072055360733049329534865274508049285712182583043190008115583980011994192671307810661121634809411553729010277256342339972017254760134082859233442034717386653136686208106533196098562004021528673824878479192897711756990135769915087898766009829947727223632115504060310653758239683038253884371396071554313445830113510027610032516172369387440620324452416724912292410628564730332099330515361671978083339499706423187214201028198518448155314435216267877520225087060642296527245409664208460979185912849523255324238538906613812217667719955772455421818507512769226492801062056380936421482857267254898946491476218243170789798565653135381139019549620900341367172522207712980545949805793186277495823082008743516370667008022828170999895101415174835704533545891536434203488818620020514679017326802606953557657440552785802513788090885074298898353350827069982848065553436557837681190027998836630098587764995123176512859277167196581817777226640808073699078914105197950250657170375460522221093682090991478437795811648928046727106237471947688367668319876312910047236964199726023164664974868746878891736794183695380102031367910035117358963875879899356455809658805786619752798199262681100685185402522954251004020108692222780670138797471355653474660105978556725584360416470685178806717398951914333948308686552079891874883219016471316906668263462016209471684170329765511746570317584684098413221464507347199232256899886898454030829975894667324826532786079045872997119949560406321924378478249950664984138122040727932154944894828991226991596472005298565004614583702082051913615162780681952947955606228137836804695556228444605756889632422384039628607466969858243099235245584340552368986358188872921918217926440273492386148110881841700860530333584847248385834655719264288183278776888725370219194585619517374320560848351831339919578958177325815080485152338919144653270462692214401166868783276401362483874728934890430700634330615643153541593170411105680861174832694667938489546083567967600659219138556492544608705584509915794657126520581302331364965080127041312918398679849580001354879640660361058370752275018319430920286922479663542725110950764110636510237680205816576812027506132955118780261072507852296162856783064211802599362457886891226122388670648945750653469705411005609861176314861142388625450765826451391337968413635943014938191027961391068558485559406481673556897658721207940365132843823700685617975533134129905715412232053567741383287763275845476511499434731124091630659716364836721633808195152787418489311327714968250705918017459134842030625097441745230894888438847392999555166016479591288961638559555191712070689150097638932143576981594345059686600808558688933150037076202390825141600284776328862123863050528853872855472031551458601882441769131082929986632973453767559449469682781010549336188256080385198951002622991265775700408799168016038700768548310666384660759425519694273988990615533746963793237394787891523223992275841834131642682711384123443453159504681455966766969345531931669247025584544872897363056384360565492761228326878153457808392509180718001639168710484154190072862369484282978145403109586430695957570348507810967968596561996780463969508148336505411791249671684214340114809032789280424102472695594431334820464590283405044372641503374364033072665917716571685807477053948182290159357954890491655216177722027546102675121725765738244249530107867158922338339607411354793135759393320989708910583650765035182819794282663350079488792043309412936081115172409877515687661991906470357296566314597289043942168041607124092238772405434661989713200126847713336846860802415351283185924913497287449716076202222376969475464259982233930252063933384408511271838479547339772394530858016896231741268919586454612414369109090177356649719015226381649229448184409820942623736990119799905740800817299314399377093845950935227511807585390956061723770054697247605176798132572439357654580438068683689461703089211347257973137743233824071057227228318149352683320169787681543214347382406606868477736764472676591624785263624824822461577231720784472575678354994844297358158337233257436184035786150040379832651042805972536740724115211963672405660438531756958791507812154287958135127741466409480401229839147284047977554681143449277757635987829367411049051249561664713759202364439342349160074642411730851027911969475596302428772785847615921860396814096156233288972165125719923217805260230206970319980585069063557867443468777128166756423159964757002894455362130487168482777845362902793727064838282564231700094550293365200158833593837894374237354973498030656778399125528410738061614529481890409612146993133656309258847866765172131967318859350180304395145226645621088082936665478962534046248090376106486604326879124360882723487399690507231726008150927731384932841937348354990768101641933435838761161581685590090651708333103702600356864702481937826660689508130894016730409289734912758704770198625360955798999678119326280319991015850827440423203108104343665545507878131781446803497150154272321650316487958331722978158064127377903461904733580231341165740253490018043032869810378298793334521551079596598072201235997936135523462215153933863656166065466910698907573434286737820197535352313376866266868868814575815054337091936351275146848844055166865390656217616594761446513167741071542680233043533760465547094227230685079611015612999927160687228877591060608273431406633037823906417994356987552592662288293417972153361222999300857777157209328181574433915979871663318782291625427568044391660487733285903308264683206088971708705033300348821215534972861919357470484006092116994761891377341400117623628980977579446693887426271094452214605215868692077324008574737291266752542392137026355251734228719069107166912794361417069438606168450224433631575514692886130762517831714768345759389711985965057573192036082141053668106733056440828859755071998900624708568926895097490731493784172067751429156019365971101970525917083716343084865197031575035526663313211506130709002355043551967003337553928311613436767457773394045749440912226197381308356218444210917340631884352573679283319148219412206775714852336907240518306428089694993971607933495342773536890166681496756665936671880598521675058304677024289515947060256424843214324585888899974910323618946892816442681860869281810890491704434073315650099446252205267180179632000905009326425759543514852249862582658748969311556719121592071350129932192363432627413917274091897453399997730264239829944580075241843608231180320384667257387991880530384788804949409073677858321641114451284819258757371539126068658251721602285724875960506252339593897599946440449026748719751774934209606309160008669337465609642638707751945371593561826071964837253270215630204786708005912966893730921007877125296417222793027051303350566888968498289144082052422115882866956304129369228755320313460505779312539174898599961215044436466630624107697160926675280483946928963952190917679384839073788152497958873956621649024392568252106615787122684388996673909389353147856253469147520903337070083548763978048981319019879151490677822438417601608377981400502159367437714603127198952189499829352390628151925319567644036929458492818320502598035659615542470048184597358852443959738106146930072467560381297017933373667556761428920056139865846805221709074204430531287225459958151636508327655621120774198419143458692013373617684369924935339387924251048124453162586813291037030213482311493063394768671007492589493783495166611509539222446712301041463465605371697153829380203707187137948864902665429534622401859580099834579455709834975832495066317662063017829998278800628176386841201202853764745492422686290657232489607832795273211778944747603112750481024099648678014761757765256589614820992416851521592029379791370129765137181388388987785145927277971025639358037102930106676436928499296671104462579092775271257079831472666934179064730859537068608313410075953914165910292512628755283112889684222974083506143165631354852282013891115892579297755216269205168855558331787882671730565307426238280061394372016102622878910885124822906112470548796664196907821598237191691472457826663786167945501816229258480527646742510560279122648805518248311834393350783842886554958773473613661228468542324690736478693901336621528741993197027281064824798473490267931544584699428360836504164557469594736591261638646270125832391636905167678632901019937594995051584170138834410368959246882084679232474950569243661529033017828559374628727682245632612890099866685000541358464876549535302166176567655815138093611199368731828245959250577064132217107928210067043733747879626960817777265892043838609695847907510905329630765599848881037225664795669241431559824040779936895521301733769894357282810595632223623004847919004933483122350828161192804156147711704708505806817563170168607345665038457519084929469249329975886672547636381801655791549739838293507610663008398670408609276750026329290844593231902410833943562945654327725593502704493975263309971283700341547571635653726489866042469977250033529020274828632515446038117783021207679136169103163154055745877783275080716038344722629931870131490169939249955710754821377818374202085965958823303133412199769183614100323279687309210371735590134843262257722824373966073556463789886693784987071005309107767376672730596262298649628796318264556029924131133128639165655987344458786936110591949017621600191057015083372763747776968176452798672722253327221124753638338319690673615275080668305348421159495756738670935334187700289652003161041432829311755904925855913616820838001890443676991103409910509518650084617288735228967418772310091503226922913090143183677399935965476359418201141029393028446443399569994019905836325714581715378944760646679675562312017563737212542362354214081989145751734181344401620764720496403300667272713057985910948801145589128437176314459386576317173583107819654246216040395660740157969055220555554792356147990974353421522557692245584230394593739735777551955921387273793632252886714804241186052824251370247052967826829418530011886005113860267557654863216011096181952346896082866756329922316120142805199640994575283392769387099379562001094058921801807234109237396497170556358257075171081910116086783705025109488912508134324695409077611165281190856636396885157971053006223393007140054528688383509772442036360738977511256249262624666236252437900687551015470485385995475052316067033233529350498610163529132312907880488842524003627602884403040934981000750196851255595137835162136783083996952534417043788474597052586933104315066087952848277813267122241476786154154120912256351098997384919008761144467518684248024067487396007243242845680284214909740214140715589732273525083659896364855385174135175435679170401245269358781821962246528917085235009082958416720636999764018398680767284357986927382241475741348849923771423078307134984874371788814605248393964997543099055145897477783878656142035066277991210481584073696522056086351725736248002872463150679240261515243409713403732810572571844355292704616465354450661665105070932774599356553489344904577843062075250187519348419079782280905158996890856792682567869402515744806614407429943038995407414359471297342965608408362366088531988807176821853740447451939599527158412895854016717953200561536349151521943809811540861119329332280913142240007188543198756778962769198223616067608354683777535195841001106440474797167634270893653563976614966851328084707515281511901202118759930092477999106483694754165205261354047369652171157237194054546205511126292637903410316996458373150420083899349096842124620880923146301091456871297366276605712934918233914710735579557171522694931948653293094222734930944447805643641803834415637856052498471148416343488346211996672666369299991406275677341965119034358405868650132716389731379615163120514173888206650719402247193061602719888822969937132603186349801301948155302123302395931123978533666038395699692412398790179385594425127077527559047938859556984838835007420031068741925045352324800539450765428949585483361591808882043149198214716413473822733767284143808901656156586133432165558160824177633448835166387963696046568313460295245741185439256005161441803930440767949929069446022450006239526742864307033822413585571981783565756940092451735944312174494839339013418625226597988945077283974953180823784284286292324493416089553428094656559911839182168449989828942141612207325852256564497120397549151293329797442727059601293591946691326921898916538612771808180559464191018763096665619795293855068141417074212481015673620984432859297073875515153637914820228953898527372627470192200836520821548041273992726306995165445839565771202675523883119459204856534461511579992201373736758436944328750553175080315577314011361498007761051051064623618601586335049887053599359036557380221578987939738591617359518309282299290852744462811225719333448394344544986170602963213091331215189923497781186489353903973226976355915277232018007334518664700444222580614596258499543124390637604201487666999778265259846319136990884177124776537456929120684140306010944828516371289334435995081847340037369074815948986238898990870137556373035472563363610795886242341332497548925018958965902921858344665080661489171079605758906002643119464081276349595667601185393950941218965002633848389284058173630860410930285068303423652750976337460893340735415688822026597767374950513110328320258842434382142453858258015559380556299551531363552480883442949440084622387312108782954811751391055263760757081797770515740852916203534151373218165970309912996102773217900025129677474389101467526286088575768832822744522634390844882952462361290423678518214329273828374237109094224543977192101411026277786223634279260327653565658135329352815218767402799673933377725346439203135408511051142911610813254629455037768985689815071309171677244414880133565324981260512000188281778691670006051676308058032660336129603530208642479876836634072100282387391786559914240191399410004503026555727229332227487926033440972956912697186538688886256247051443518350490670448635998401691765909482622960867181447139876231183517644333232152823579120032885939697136946552938600383695108507062961985917140437106339158246105192175864804443661362984557681180505510239649994914833286597989807175907418758110514201592900709446692786967078593071382448592319597511488050347366464445741661859481140173240777132568545399751573148057898406727254940663865024795702695165549932994863713250523200321614152160111221357149430003580932792308754110410492386224370768505458117485729621606636055549248099094124358076595755920773040482014629808300782724936047788419249761667542709500739310216967722116197113699955052262390075811761897306915955959395222233211098901545785627963534445551072518354519409855053637210062673436815145123392751206410045125579882608646127861958490331375662294332574699153890021340724332586058756965600780830188532705303257307735046310593541762916950237316135669633385594069239929400577469409596087570385734108944562947610103271512060572671840776471693745368632653405050539972461983694140266103894656407748737793526744867365424707816357248959001198804422682004711015124665843293941746713331053643134290052486661909774381330952523882429393754428146776367171349290934094883526278508320718147264821802701028734791495239879315399875877279570449580448929754951965498653795897257868186479507889182920460684946494148542315573274099838050300612462226837797463747979652839241740890471940191137816890101782510229029145029871680741525071495799430316752976811504149425717046122350078559596706289683523533588402355620591291847102430334276518788399825686606429003951792595456557353247045841180039385887431078646416498542555286584465763641924419377908540554828337363312819729451840989551878545076177269407581750066928742177912150921422326132882454916059857177869423810270292426772459261226378691548364033468593280313562711784379331322885697157436736403728608593264975895271467149711659427142939052773664475939617395819626793353789957474735103429291188202758955707839963803843540977430989312498376488104665138584197677404103632854748639186967808562551461784936126089311675102797229104206291863063136242720471969377801070971930426235015269445796041774687671473230582133860276855883566669219940875502180717703369443510587954159398098710950907703277841946099615222750408897227368908435238507995615545173808690568410819707714004410051099149732920181058291320796025914174318404150319116793167283912547005432578145774427848521488775281102087388790675979273518622851203638857010954290606643718867827804679997858167950941037567997095482803554841570174954219277568419620902139408185667758773708208365091551873080143052687810585791212644522627286564491674044817031507675854733824592453202260877724542698388587582975014964655611903334976950314023376145952370289348701918853700059366977892158740856946853638069116892774041060581860808392469534802079466524427855617990251747236637091545195805982928280053014163297326412852958942596533027655095356838826066501097508572711315115970552153259232704370213368744657863802303367653407519988232462821374063475133329486656471940235840207319194508473679879688479485325034331117446083195085278946974715251031836693277879730696690671056554859219948598463079148267892014352518521480073649977757569503556315272350258028045061115527421743315653249942791440226306285085457614161514422911712562699052600096589993961979462650552558826325289575369728714511604056933156126447934809098004993556473534822431831372195100146531209186542527106931483797907995856821803113057973513787318811246532627986358600462454949311889603305972863150773106359556312430869957677823360189652822461077731559338082711087162857524519474990368651971112137713818545229871587863404546989359588722784292008755197747283041724098376257796459424639643072228460235638227262896991764114765385013827803086494133652335428818854432003523755316853532074596822558521634765503424437458801638806712135862434078957853910745805685787003391336299854581999402019101307223579522433228746547046017454335363796695720163577142945473673435170180814645757808837486840163018919065623800377009695398287269260178755722423076601194016534591804657446478201878305872370451876191693421278037109806248516296408238796573465277305009660960677182026655977885210425682081079776863957527419566783671128531771473088933071632621169618132110875476710438178147331118491406942584179275782222656445598635109939590029238631809050785654692591540294494102184730769415988105085611682490051560203080467987495575087559686633235181222609015473050030041322081861147346753307782811439633514576196693365061539378851699954412908218532678626091757090172515040870172304096961606508940714413136135838596015023334064074165469263029472143188508890239926174169996506235006385245570608425751114660450599272540719856220049146655172971562225137211908481805439030982431726485253029156823331059165380858801865108021743707164156672304450955754634522833667962589736906236229489869475810331919070448190757897352114238497033420610956108054823825914749658242681720349842247080876560628106004357384730889797924715613205193803429685549940309284449172181519661818773479934878185460381209549818936599990780497182385465722450800348213092130797090754874252806041830964776055162064611763181771287050482849409977890970951038671089181662920066918481707396742872893947211746376307270210679854300041884380326464552620352368471793349730805020687664500216351802972817008110104774486242433237438102392749960963919856620710042040719418313590413302274290996460744818871308212921124871795699102176787381895231530021269280903995030900131561265216487850086018153211580192578608228775365984264256070020970296244175367879474751297327897761230546473881542412449270912787197491661825906050108346446519479210990904454700758571258035506587689705929788956524213774871228882216044179612567309501009715187936405159482215212230837937040356683828621559465577680666483661273223051904122570647584976169913864494316208578722044173005606519073720438369644277542054447261233691821497138792458950141105777140844779516953380833329058751059573754493821654107046314339465739239781034873533833202558544451337252267777406398143968399827560730000540713821639042163823686603271143817460886336934197598705889249469876416009760958233000337207495762485494926900102689086529618673592565636777955033642672429618014717411447550127259865606392149301335142570595355758922478759563501492049266140959147782606452975494299484237505164153237387255992605318460258498705689866133513563480971835893500510690347273993719232761412095728177911135889034889738654190115481891391959769398272184003185303414709989200046155010462028375444986520476853247263596916542947657969867485513573243196324069670719341886119783143611678067031175856548248940851391359642003545437215031728731731932828732521497233003931284580575272416005927425317353917663774304338027872705352891451081998676015127530641693264644422942071193453739070081116916374735311664549360886899914052618897869439163038659407001118379370454493712422499042299786509614103832234612699463746478778734184529290176063854375770509751790438054782315657072132573355312544146744719185194164050207496692937483759443605825470898486577208608920025289744327174062112659388684980599466664084319374807410899217823577509991456331329592121204537620821524033713920126554592822403355682406567376296944945031118895428032519098978936241919044380178331038989093264927007782741803325678654201323483834212234760804258298335435180925635128241324937880124797674774151152882430963912515794274430561928358574409176045929854811779631365997047747650217221660053244685134627921310355179579172591798259966315346389372509028658072157359078535470529263930039201885059508204217547848721694861486717125594644643569078523313141423509429670850697722001954567245342275819438077185810141216391474053722594929123715345932165281562777653971397611919654755059666872212979309500329055155803555225823582901850851293603995837701355236559018370058547906897046354637681672761534686575523820132007039969626630239321537778979984857962894012540270308695443468838617640213784754312825090894788616336809325291992390958740071976756925688644510107083975022074556340215096749549620513627895485490501767246156736178660888143159090785964474921121594275374066539824716772188523519851619289074988248015241732682877970441057081279763183826287602311851367554359812934708570535744099132880203582829773462237874787782658573197142324007423324991010387787698584100875162200393754255107910271987386288771255977988878492696215017795690746798146125976913351253108413951926635005535229383124334269425972248133636724133470162245127084307580272521926019102772395027440602327128267268836720433299058675893671511763783897128010371447897628158108374274831934371762362801164617261921201268177765136996259780793893442049220934741894956577813867554811410841107702600795377617603765454149677690441971934656485772175289223405849981649424601626032157611560500242757007984265314128564263137832724866191747285896488807105017634008560426235512103686477398717324334819109923346835447394490394197317995491647479145916270757459166987302702246309929707502378707794452418295310098239167596788191276055640862604069441094947266217570099912814508390248627906710016537977654924721273431615242939281362192501249022599605199064718655911691791820617696271006904496664692758132645850795670967097367374932296696123729948264306716234826484711730128607844432063471709769446121065935050496015938749938802576591042954826115466361337898109119599794639937533334704495521055746731835013633890331572459441863212295433880677294251359425111834867737511577908942050198084191327415069685076571343120977736017523375022947706758051588148227829201068766722423511571136929074132942828176576068047264434887492813745967571135511705721709763533361991416767337776315571734111416816927704934114564791924722132915643315312841935454971692052835029986790257615671128875702669605335471868375553511851583326816038203966824480550710001881601564905666413891458548477906149747518564921837335743964470874436659200223714465360847492702510808292360679962892757576587852231217830831193031641845694982327498283360150266137243596405602570097593689888604547575688284962264121181460544229460967009383893216030628184077910823881318029777500783290669105424515302755032402426762250933873644773324032451388050011965425119008727249874926376071677220520083456324201420322287767231414143553105622260582289067845239677382449140904386475748556193103738076933711161313797460000210918171312415368824793377757116259161545441433646769264062655261287265489042419145191365454629307705787775374188175045880180992370908595898234230595277117992638228198196113265693483196709321968021000138044455955266170891670829017797549625148475672533100657208597519556336241330814054453672088738337148534905145829620559966400317757171795571961363587809841284029776934185182280371804136483069064911034171862801011463372254039643973432465252264479735118604633747797133035120251123211140535548094413352906951432194624517365114870118131698958708597607109046134652588568822570436246506710402673516816169866926670406989252156415880689227117403369259903020209581758531880199030830148072820107467213341422337681951124915297639294004344641307600295062797154416189919530716831772479107244307613659500422865787278421754161256667019083648699540098060078333375998237656613742421204710613006947444526113901678268712937562092765528258462063664576415555146612091963822134107407265911019703771113189624362545838792920618736705808387360051158282801869059460936831360933889247001759863744484122846246205394153560795889026154858161404783560763439083451959453398223321424548586986719929821443167701460016509773532713855673203781596919472527122058549181626479183005493036589967823423422698328922045794881389765391327529708256430760658130384667613861213591196964270542826900021908676961057933480751927349964161018069168907467601679169588329966294407607726291554105529907282082209775657471240395838715272524688409493568039348991575753962558007080921880860778129984156800880779806362665100835579562583287094723834446935818884369219949519961495891771917189661755378125696212976317356726477873053567326057575792547312795069350886579644820058549004327875340518204826412590022212744495239967512808666624000753722998951183325380953532897753351139255191501163106864698167754946733296782185202558021070022149359272941231180335986816985086226357565843541204486232663237251250861774689186545654327136297875699676634843735661121990260817662664519449766231756544790640135763372727216959252099147106714413925819812948040985206913267935947112267145165161075212343970470694787679787968634520821741118140154435638360799844187552468263576224861204884146021056906749042837176672306252795697135625785086289080375014734785548607648658798107775554661230816991573157103036824893567557625824376192911176848514041196068866339880047866904649631782251435576478436038199527820060533071303624623304966447906519914823375612222681755292611749204536809807242091995753510545717399744525208064905963420168908023549150724894687519761211297498048654044920426154156976484712113481471058492918222607266425361488391881790210706218525192888138565384357469068733380391032670408755664564043868590293306986808147120919544914879853287087793086113138060858634594515048945184349784093128152209689867098835264769242775242333926682593749442317616198079889213480849516482146721292541685632038598489569381423208113047292462698380021082534269336135685296956815179504052535080492603346719470714732987947171028501269552428520574148866243793213952850100503765449712566078592498870612264787980611256670327795790179494017865238847696141779905365779148330270691580752993597972907818875759079309128999626729498139101851634441997067316481281175329129646975036157221902696372385811953076220321280853580790648881183541578649604453794081849801374551037620019707195152590824577545724711030140634249916123451725426762141181409833213028612713518193856837275310062973134701085141723351793543857404280303309787685538886800311730222785621256112210566055371511714013729762339955777233211171491990789748813008207371272307120530317945066684584671342762883944100069051272832965139993000563865171325505890183584935670741518006724789427490650295460166488399168973266735197484583960005333877301857205959647263768057145020761295696910062690024810239399951240959926737860770121209340904522002528776054617700426069276580359792588004092975759467320793303463234371725620117933255939601819655837352411813225191735957013914310309655110592888076955492340422654894782200347815174442027570905732736961048524955750781574419716032067403011827867438559268200295345904561907506417719294697643173792133551306014710857018951811917984345592762851967649127123788881914006905744494140439313972866653326272869329795610693074623967751001957662731274613798233105585627474336617714040460771693706137703702488220008004872603793466121251530310800918825950885581940485226026772426181746965694453311375498569120438110468017160301950115421600281095392939170339093430146672286539881745836926537318463613078073900097362255368753173745554227363325958907045770637652284890724700349660703510300317495892524351386177075782111756453419733187067722286144150739271011833554560765040970888262134196987194853478418396685028390875781368146897346152653597186665861727320449252171502790360573495831823336097384178882930368822508673073758080482457341210590941099809608354624569296727997451592003175495997637885177676375020365412814599141231042051597573736503356132534370081841490096071501680748822299853914101188572974729882872378271781824163736140800336019967739806197029252188790135524104572507224444450983405942502385203591752482453327764474544648529651445151689196367407685643360081285692851669656375788953799831670174911989803323161956530278435814775645057618023915821437057457386402489238407765449890429147799597976446900770539512256605707651774734158056850663067259510459333119602818587771774004391774631033813073803683370481112411743923754884230874666056167004222226601371461576355090868401403030996081918614666824689639064154790388244630885699524536720353708124275394342709779553741292075807129509562283932866047685876326457977489332686137145736016162698527389607408542442259118964372782229779722158284197084882201052405509501639789983423751824241985192664755850931342780768290928090498596037154774262115505337494723264309541189381174497718600799800745566279915177676533835435912278831554565866072621146482953931851679239219638503105681119831354486493676232546477111846289948818551522036628448776801769076177723472171442300069980266986549470369676602868118973986755646213660955654555148928287767954084571684543425815076719612083289149103871236095178829304558714723111863112884788354391564102858194608443070938423677775470697957257091846398409493669493123938764814585918942595024976409314331411620393746923755514087567508440642278888001218451589005556388986142588897629737964967108562969273727002527248493745549481918846420821251066198379888532766863048549662626066280881462696483582055189301616206491770251549643172577639698740258558838246368389953456756422071752107454693666688420089587070490145692888345084471644064634052070695469863180014169418823691031922228509899656916331945568421644311642247378196906431706952130819101350260674722071862737268501354355892027336254877443349562941522682028743348828789701845471117439715750130247336382533346874978694718374715786418800887109976059578181067576444193015306445438817365449441783849459522823996028395338835091679181278378520275534710021242040097969461329730684433159670858929808560675205603880378470495262245488180248447010242951770916771211008966024505350067840981706284814961798425001409943056792368477388699417595801480445024612485603728871002040573206200594637176127008979424527745779975862228389281590363480149763578111927005401153910333445316234949387594728183051026752238927641423631172497539907159853606316522129052211606720183122977982751530131188306328209853359335813113743759398628748056725952172410747247965247944568628490590114747371468484661304747966666754560297232491493058498526579697564860998118916109358560992574682703266909131543544739501788118320825050454988444228176203311143580075411843404204304875262449018126528187517087572301919368158239986480720349627336981824254070314769851493434361772026525715370399261067953549840208923744664365051761799481923546838191586407050562883152058839152082131511116267912086175934985766915398371595591603189295386136867391034240466184662758050564750556995368048930502857711177459151334340296907402711668588589096557174161647189994868321177001525423408414648520635407114584919683530910875154127243114952731048128941334008608015487412343417045225491110192788953275819985806009259205708437758537391872855818320750135534140978630445573876754597830740815813594540727873139828137914448873633955815342243923915321170552121877341891730299803434332714235268669693158191598763700625223862988476776223576865154946751362017786037298515153425845332540908253430820436625876063682818457503320702206337605855431085898067397593467453239600655971375713772517187126512319175698994684260270131442032619032285758506923325564347386819803183164665823953206131266104830051656195391585310509418890821544477705421766281495912627077932305090279594549930450549585825464682547961293242831436328172308549003924810287620637075957925584696028011422650788598193040986124544233819583906709069678004081438057620166912340811820556985297750693219064372912421948124931351156127123362078916774132996764634787670524916643658502267941125762698355880082681900787245852114585405842767048811256214678492677041479672277353140351863027344821136963317829609644182886834589460601553781439715059418656766845472883083361815149158709024254668738567925265933421255902449794672485231712429882831186124829976977462141312501683180605376206063109471270112557152884431681302982893734733404003200065284421210133121428128081522364029091649953634981677345253174930353051475025067618727076242050209196308915746099391356261167304995570972821025592743103780586840358878415963260065559562236822663485362009979008717016229250709369925736741200974297304212697648244028460530042008494755764528277968281345967740034434220012140754054874082042145099303509978987774068786529395313840942223823392987403403324993418244163101564306897728206652117632293247026400578957624872248395239169720548459750034331076372039591254425375002668976605054730774154371122571044642197093199900055727623733953976839810394133115602938677997503518778276995555241206258377157988862772149245322313289452214835424075309504253887951664114475225255563656584615238071702001741037612456742194332230517810330080010391460382367976610519372439436661393277124385678767661725399615836165066774099162281593510447417093177101642132136544818179221666708812450477266024637930041992073316639106052130982989845469156444639335815854409319672885429035728005936091942243003820564924657938411060538875776955469510431269819399109198324901068765709853459845491437651771770560800910561614990618476587979179685869536044518551081341834824248663116408514392343561651919257917592822262223835340813578406840095916707071262812331103323855960729034825199258934498004265598747048004914137267096629083219864180164647254567056638793844176255347693461159152303327975466871199646166482051896511774693059447421075409312171044979089634102184254184685789375491539778893784297038781528844409382760205198409758806806587862128943868053356260594768203972359531740975787565600385593360950752740355806513420279830064531439847551869737958246321138799847888355263864835661480954104703801458913243367024723883963100732041422615552592803349263407821767632916158330762818679130369241305369980652851007250776840477147221304625462642416211606791274621570103532679810903394186216514763278098645302911274684710503992104714648091891701321957880156743114541883897172504228578744157974989274243647965670109162118401211827565528714134808126753965281898170859718743399065208252281537145219963694152771382913806763580092856666918259800555743992654127195342283497168647571103576362826770947237631052593743500122338776260391939072854138994324487919203160051152443376242531848832961927608227488757012584114608896523535309649647420349582403801902174989109966801001279046704469841268262575341105180247030433681436524381423142711647721062627556167497099546765608973462804342185586955727754331310409890341133483197003735650491552771670020192063548717386185328245942853160046790940147629113693189618544402748600462637070210621178019129514114058986945663820782593502696880910441944190591871895617554651490678716580367182765750627108725251984747791218494576525731122571044578237809701587281593612569595749241382106912211271610769960582505185327828457519442696346255526906929993942455677662041695040035535384263014178192499657582797822536942047289089667060757597875150568318114717197759248146267408496617934033434188590737760656365660757767680210471592088679362477692462980044409428778309953673073641761510088981208436663018562615530368920136469108594645313417808893104974835114452482911374861513443935357234356716020683731764394281798838256498518559095348327670360985117448898779319451481159631541155233023588820577364405366005045766498378587092869752875187517898912070763333887809417377332666108550555346280974576889825296440583158738222495609227399085791013402494079764853662319174321140047549164441795545983408021170333674075916577017538100947393131796983687721706723786583484435825301491765591992711462875527265314065674452387931319482938066658496132021811101322230754813591360705525613776857805184408694963690919218858193700876430682629495750382688409705616175925923945322987922337033294695169365553153383285710217043496565327657631959695946689030071276814373827941322422360714257445146399613300492059270646502155545843536869859251649943946360891127656629166843222369332564217569408497827943839522618075450995055404808347186337298617475914531543458541068898450324878616834795105770658311973096133615228666725390564948375167962942672294541547696465706324660918374985761878834317143594651737578069339510998027574040685758902849129112739671927306559990655520482090769137092756418821383911204390601279925789963798178534552017362246145367516927941110594364134185282635129077421320655996417373662432807692403793279260986545627385050281377745912000666330784274200137140883742548679263682124024363223612358736553262448616202881740660072848227572859512280965807085855504770076372131242356933982819994997555708557620395342314044405422339413723667401883942529465516461352341131974743810824412485103269904004825388075942223638378209142979293460773117078121840127467972352958990186633165033010170703973702275082908713265231689867359637405525614253888224122837209433067363444295361068818829139656354253037440851214615833782945786149640293441778883961415311819528611362906900505208365038530522914865388321032054185438252785309191001060606438173625031844310738726235913172748723397217304881031163824459937724199052693888224151338986339073057574845351625185622067160689651762414779753362207022879462153939924346658366955005044955327218460123549726747963546142716022889990690756169277167504940484028711991914466147701489896342524700737388013822230681743372519563847583657545655541381551207463195725343988016638571188208067329137313942200442321686874279615367699704299321214486197312812574326939174779320839193186460265004557778136537057596682823015811294319474599472441914847025125026645975647459405915051406725944964392261228144087901544473618515572394562638683658851271671036137512324565538511823451978716837322765877098246871705648877469803693618601356021363908832237495074840395728651919258801742965731113798947065657429499086725194197028318369047330243786302301576695631213273365639530009972493246578944536508777480142830393117706427608339559204720661394523784245789326549168049801926281771489019433870849303473198190157780012105168556909496682711789963223037412938073392636266980072204124518511880486279546623949099062984999499268327905431403719696923895303878442069576905187249816532466630836057984251588600937385710117461578316612627614515305681127221391617353788282587934180672360704238231752853230612437226540434841461134113035857558149971405484928389448185783637369275590557696919437757409788958495382932457352238831917257858225651391131341611722652915359063040750049168914872696502294359334355851014457019309681764245842225962410522046445038241829838788182533988417309046647021565522408722339055183769447418661892023551553264484369128269326842333814075041302323913913511363029969795185295002771404735359714565433644022390045488994591969119741328787114004427644007248507921738431979182230334006127697030773389155084643117395021566089446021336421989569378951321468408340617591657622095281337565503965770329301089749054556619248492435943252329464580577917968704762670562813175118934207682158047197439798485423379265209723221767683242688141380412659636313832778573636719919082545696720406218304334056153681636360933934199162207510587929430284737629786114431601880008566239988137846273833734361009306010599849695189990390495984309288533201767117267176043657119348382850252049706727925044390122478961514737343155021818707381380031943392131842296309108551500030712875054597371830076472427708096145623955983989505634589440086391785268167162068189111026450372519893945756756752509674432441100594402665009779560719833905561901827246178117424303365601860509291836469028145455390240321687106254916402032884995274561104912732399935655158480427278784467204623609435476367258753120187580834637875005221447155160208086748290585038211867776515539336913519568876756311174471816844641583752760118672056276873667837974855475706017027591313583822929758574937611549784651543999127653041072978680631013441227519655157340558261755734141741218248916291243124303359420277479002947413062368938287833991114117645072345831913210094496714816470806367647882556425434504614439367892051726607835057192885151762142628776634023782128195974122459506523386738625087084392615803631904705155633010606698559609227432980164681687871623156537754110371265568087181258544291864395437784393452770751284982092474729410682318833530909862577828976567904931560062499559841300202547553534265214532525980186256704584390828289677735770447112169875450875174970698843869830217040747295905788404006279620764058711908570402256913508823114911555342239186008017220713847867298786983359646110205588515213914619856029423314947703338995648790234087286588239144608817651862342490015026431495443758566956949534420483557721919398862288376804134923523439149732310564718371550221954469730987824083129947510824005042387489767670631335371553062514034034628763522397690112424254034948894678121105427099366727680067501430616407350471736571283515360948026454729247680646852339507798449223613711630764741021535436498302227945796889193151273632722305922303944386139228527774193570920396341525189479754487730330710753920375849879596185073948906194742034858281599896802250056999164344584754958142067326938984659229072447648192507515639451541572149444747800471860392179973929235484027754084920622292875021074798510254627532810261288729169397101978572129884426640043784721741143984515766025294316413783903245146915736543743174016351901409310324683081847580191317294423721446545576976981667122958460851215588683939086682530571667543953710749489874225202036153604594628669641757008886703523544426310459571439734750666424584466643038366082840586490425130983303570161943687107919193649996101807675758843403003700716473486584872853770219315413303798466099600026548281751494605737808989222558743021575336244143537487269981616395487440451966111088999851216660341912627470557836756387352652877595739156138563242459273111104078955466821477465507729020519328104900975867066523482346249607387496622680114903881376847194767123483892917407573216554028910449153194868093514174386775522469793460436390924172316285631148257935725730071457472861463038958164126016131660942520231377190564314324900277590368050517920613519468260919539739671866689956699676845559569022585700113807052055057157169682300879174290714851138273704643678983073539764489993094623043761722027649722450568375518728905111996151659710021178064483479694978177985798925204359158477992948997778557246013976261709455554045967622752460698226097226649336977276763038709996950350316462716140636451504935898580433336687637685229880855729520817901104509839332868321924014577414146743762970750053961332414338461954551228197328102629921730161436418445409254682843598091634748956381533822995086444815642811406485668246985828368576978880326220322695382952459217702384714804319795576592299295815678935203359820552925044273092901093647844814920032036810889679539385372887062806457895312292800363550956679225590977447114450785691222024889720002771048747247725732114189795415645060213264809020242178586056218634840296809192537301371137107052851207236744458396655559942900383329575383984196051569907982764170861916714180125855038778490973054081075399538644922401176324869879259956938799112631899684502101942729496723730613606201825976629581602584198731144215392662068525539158480402650480486203682600497926715367066232375410306029233858864363502554048628104870735908506074476438330023939011654459611986711083202052433711209387924724933907469591805320922913741848111418301574653828222858704722552967534192779316283606400795025200248781979738406678010361921987858990328106405644072082890191380357505151732753200949161729230936154310271271460321717537037246423137430697661072843045150926530045026328082602576819004775076851308968864351550465289513668048800557072140482197641480509872655693557028782478598826858764813252666448864214007076314281859718897906473420505128250295363563420878581842275471026032774380676998492277895750894985254146445589942763204763209240052948959453066854209464349213008137194310554319858703788605314863848121652980412393614764951578615610806301853707337115856115693101691196537865449978618349089907208942078753179131320069507074853390596680896063340293568285870552489962570864925715590826122405163984923419470441193049501885412816636635669431160847578248811692879841985203174362781718370955991721359384775814308491001486154008090270787198216769145161002452573591282573444453482813048193938415445727338427033861842740682648444221903017936193095753415975604495877496595064265966597396943266723391689766692213673957320814685346639961670203662695476967535799953655047739672035244391208846160850977311919968506374045940804438547885495137040633378388479355563007887051694738677436991159868532496566772136444924189418948666125160012555228927360163422107717781378959214498940611428893283234797327308697076452555307990488580598425047879836999303396128094831678017805991054449532824978828922649061375673359186520023616496965428995187604722537071847092888224740315859848018012437840518077575490608998241747688121392186616351947573609580902385841007548034049382117636311738212783235506487280652307189506501044801585253854261953631158717318746261631699670057325912083226288973051739395624720889585554316725344132429307629656494535018714515503846660927430538616849263239935434915006994042045059652932060084800264176892178972209732189808862895683743386739007046170606524411421660835544530877394012752756662490320154178179023200165270065573962422102824523616287880065105411262267426090073063593271256284273380887236996459803365295631399030092696479419666408845004055395676215097154081504062537081443005399727820036465691290912652527661161352735119905564621082711543767747179033522354431402528099518883935172532025140201639070321262167441988368568826968930310236437282642389603377209269046690847868503803275428319683138903144186987924691848602871766996136177377206926580319034401911756083948997882583708751385023076429090094378966796039048688612003816682408099616200176696062337269356684388653535511110246959486092062017226423544215995373943256813802525836726500529323010895100291890969287727422446263217991986795592588959049635996173888587595344340168340247153943715555460133036053366365483370015798592168691209223225350795846809271367420597668266465211430480709440006684955865648594029599468326728069768521865640727394727623781230775903308814593799242440330315230518838312288275211820343354639715841668184276100799028692235793263060452755362998511697610588866527151186201104351723443128727541046239328114986169146501681647479502371793247163166240988387399621180444270315637460885333404358715649417906279974693847102869379588897856416312436126615747703642933115975778218300767378278886587941838395423882509278808631210854042339771849076239609449532932706102690376080694412420662774735845308261581061677223782083732451082670716440052629243046181335506429782132097455066880466866524463628275382483730845411411330079804605812368984211817541617356640309705449857640692227820778400559604269685129897278894583553567813571808346389220623169396807999268003988676390539932416158986894216886942064110129958135171155731933858576007356071095916464360139280356144210900829142135856735071918847048898278710284984565803185283278264432934862749417357638937411679455992422984768777771611864417954267468762709464964382743764924359863434897029613034324846158750263228358266670315160859354762895423647775803822818377960690576405267140226886656021396945758540645340329143773566608604779009427179452490129974668274052639576813144564819683672393899735262166607210854809104486331111993954293078216589185378311974015126037297153007155449303570403761891132920187228487733660925645908571354453220599688182134243869200863446518441391672116653235924260656643103248186172944695748003983220518025077523724714565413357237272900600178030624278813014837378854819405251994874124404805970104549063868115048420189660704409323472412046735345205157248594565934618716532034540703018553427604563537082721705583058497259573830825125083863309278474744480150150936473534498712931606538754057413449667179399278785275054550552636089472563688533202094080157453787406848808246314976210326467539338765205256776485672684550434598232458368675519149940404041322186380306955443998470373598962385073488965351493931004654765395138080536428510332556980382230116977110995073434809054341640003684635306737920997752709567078924515062419062917916577055690342441553069918638813508201383593876518436015942329489535211879845144726825632743873024360916553236896943927014836825760039068220791949192242033667869539312055251873883844529388398016026500232687418044484091768889819578061900064213622317523027941206773485947820609756881190175883693945768492353734271830292457099070985485336530341888764601071700991830556989253791772307214316633900159605163053907961073748302099591323479998707153395556323547336527953227507056293866656134960839562399783335846797212197995048537724239741962330953169124305690659591737595623759706817280530313957044794204491777178954873726569520196009471459280554851711857853556464886986599544997557814584766663433999890812959109924912478213557929652604333274814449054895757745592209056643936716922547801476879200080134521603271937721134543145616117977802220628143695017445510257847860860945345702119414608876704102620792124534920642182766661447467431771706275090180984155972986498451904340390269088775761625408672540887110333271822877672065488292519419166064604637000755961054516318832599072214669247706308066681797406648416107996225285695242369239466688771419775118904270703985355368802987281817373594492211371905957032423461367953232489172031543625323355797983093399462251554958839814080923733789951573943325711887028669378495364686553845054625436914911997171096239897917934628304119589337681808953836487751095785728017851378986067692014930514345462013338141100739573398570292789351503332923015338887091449431774833989320674182646148051471773685052658935490211992599819579460776762298391775852384303357499715216701537589193264597947659106327641994918339541681337352665542643748607324909633270879079279602687008211390633387064148335101624241252919572241007127384817739132344910843911573486704455648350014670804687281805918755237160913534570598157123206301454343702439082439777005529856218069417114026000478145330813420429886791122544657576967643025852430346358503516153465275648760876875778155003610250773508251756808543706472768016631062320795788166919904805457922175366213199146951979486407091578060405069723475729808853687320855327961839241129895619588555255485720806330149997199182143269379676558286041781544398981750909168315657957776985747803575591477616860374790525968784223223752261711473193684253889667731372665551170847386384217104211194546492836033824662643049385564914889737728905598217616865408724373624569381558559151968099955967355760717396476425651273854873978317024944491897675534582196739455018886437890758765720864824308218304086033288312976953553417749101493759353033678002698968045700027311278396405394702748764049416957590179623639621428009044447150092848542811999228075591694083038427077905918356138493732590451207755851530730453687409116078386712063612675477579161849343649618892285040403609193591503154576467735427304254623401494656791796366873167400448822482735627175150983747131997242508677097290037539434272339416313523531498373190573904606908847109298960343999955876390306955891943057612561983898747890208396882407899525866556448649470721488282287662612271979159860885251800428553492848939418259458413255682627971529469813808766905341925635390879078356271025936831648437107740356001877550118797050507561695771994399719348481157196086870466765603424896890214648296691220882855879977714207790362228191721978599517053030998276855904319419879202942416470596389409493646342716774259515889841627466239151140552438051677003706410784296815735918190688610584106759534033586429572118853058368536047551327397124106127344795729479105895650137651610950320763999184900409047827992139700153762606305756475448324092516434021271257138881249277955322832422736284692234819913063293834658261186092186258427460773275902501800953852486602737263456837128344378006827773481869855679262205801127124934953818714050331339757475879720017372452384256020140966213620969609474840531602412411633100238265358307580706064043951128499293596052605255499151236563032857086329089822538576684045963372758987493118738446679669935730488698718020692544704224523387104900980917753503546621085837924828381978762574173210865409224350239449028898007393016932852502487192927983704884005356740798696231299013796580420974288766996293546005191903301256318030487991976643589042727219833824443242609822377786601963610414323410273850331896244901147974211714975405608146122789548051230428402998197835122348959246324637824912647068702133109447670858944312813191018869542800280908492642918579830989073019311925637935457366856937644302054377510101614334656682671694872572957051465030783569415833304198397739081231539407825988020720749528999802702859913738865517356539401349927940529205548855833083736680374151378814428580025549636604483033239602195977619381064629723945482635443477730128477465189992228400537890186341253768700466394630240916803555459663543271691551003575166601800784434359973952953196212734915677449969603434129242699309385317494919888762439325195209001810881600529354787217420751506772063786111803550129635609956974334077301048054059707365769399939126153544232571318402275454877037978720403057943235020117229133163793021464963132622359388946824809138017481157037185484640185084752902772229346863672573011463172652924001909045474352499900702198896436424965779426351482061868975180542869675659622860587619213004933049904071651195470564685249675307062463229543641103150058183130407912205208580576845416636729348852630019769388592071916217136421246698672071002530144631650928516777272969933361345532698738331492031014166685675878708984325079114511962855435172107832717163836776982145388190956460398922176034516657426125276677791477890836754456993830822522941635038741429447105922842734247322212026319679646141408031644548640418100315197526163934224504941337923715707684577687731841933173899814850123387450469881953581922639963374381397540459502887645964433239487970810236014477216358645300555281880821909758479707632238141358615877768538616395281688392358109029727168507644262052911445599684545655915141045710584793865010834818829650211346758277954586302814268801188369206083823566799181995076839509242958178406399150518406054464520857608439646741701552752019729120590212094894135278930403107655585968191798298071592736370382273838255386085296997144683579809522407434075601535499869470515527601226236293527814561106994243777835183621621837441835792800549402559939531534174965815903982969550256322517342276942755660289024260560946933671348601066239609927495900561564475312347257052725724307525245812330111742808736937206008308967781921793980269063932911153062243358843261234018450248170171536095369037586916085968258080992531487904327523932275398420872386590136270359255447687115109185159042467942111010874542542548409620269445676764545171128480653069686590298568137205838127445737475961356770485726126809480183970145646593752621387269500510437246993502266301853347387662797364968828076548973487114389515220349306933313568763126015726089635422689283928572255213720378387894491580904512400936892993547732402808532577253870948884870946802118155634431584216514184543403800941314291521991816339143631497838618682458451489285751414564238968081144553811322677531503092769646780868927334186146453962578277206148150372780408181709509787872707084470446769838408337915998285239568688531407688755599611675632261366147687245279042208423874489182898430060675665826765141055738826578833077064810030317809765737403862037040053500658887058785672831148784512691109995953571640986361940417632469131127710916112586744829053458181724995339791420569155452329092340898645830681707402047178149428365368526409503752785938687809495681721525241568154676663200682640448219857642015561264518180196760413719952450210246010429688298404703263548478533790801574155400038470943832790052130793178118656994506712261221343826769575524040604260913029398630598683746517896024340872075334818224096633889727720407236344293208583730553232707191737857514546118368459591406692208839948145375672488826041765930174042478232140687926376812716789449663713909104245408308960094181755873590673504189432962602458864466110508822812758208265558955154147364068519665965414758173051381114166140524724389626667554004121282497526293790510267672016663652683110039055697793233601634295735111963017651145624286563541034195746333386973574002611867674054006897379020075693828178378950301114404194529005612715003999624372444468826373923879325586330514532425889345739006162475234554957344702002302121209893237615040493196433652981746224693399215376276747193491633902586891324548253772705770442367669017171986445157778294030838833527291069120183633521061811411378039797804115620540969939986921664158464077689288617482033516381321946497316586528061564655801139920555053363024006596982009383698445927250323041071991390649087598814501960927952305632982710193544475795882879824629295207031188679457496078896942863485072635576635414437796860636692233495231752626587333940174169719991458472852229770375733329077450760686659496358628394654093876067166984484885717928749396708890657452973044817593439875840106376427477828259723649486069594672316255169917015093952057735697607556036238314826386553335856354347140693769448718922787196359906900659865055972047470174594206203580198868703225767721115462957970958871718284875112388046567131639759561899658804897928835193490452788392669552940666822830576283443917536432858013418831584496379291991767432817987618200103590062228131652550299665791666819834982393327366976926249096847081096878412617637472265677819968761608890610128894412448040975472713481332682128852130237530211742889637669599914686156584448959750687086379843828125049935467170339940725408633742012405121691946740023358634533901922916453254382572793837766412539113510173937187856567097004236783488208718623704382164878472806017830012844510003020477502426306803548134003111782080418567977251556269581744238887688931999278327617027652722241987853027633405113757485232352990530223875388666114969851773552247910502445652574044561764900130140880258809045060486967552720470907624771889040911820289590752141077240764695022766277724406150182499472632955691333901939231376003309433970845462221155180445545392685551762308333502966212004936373421340677496046618746042745768089354425017982185806104497633580059407350635243517598875487453223219591625814880488440067089689149797399758641023408468305267855339392324242975821443187609847312185000194012390316626941129931209917851849303675855615622565724483994344492490951609719111217917580005428260981678965895204792878373567259298514483426488272796888271970215118889118973888230360200534374328396817953855321903571889824220691401235374588389119524585945285419015963352472647719931212953481856978468444398100206734059800290323125476434405931056722361067214565606737737113979619322081660753824276596340048496716985725263286999810096542036658339127895621600370547125959579624237128100249371167196385924734789036249196325567126936764497384912686055814479974033143960197709878279752629375069676908379167425335090847355386249218806020210250615543852295161856269212186118273465234989645021080959773412429931042371184044869498304001475015080845966766913358400977547628775294271830447976489598717433467151016792724591311942831966872495226640788603983707746891175512425449612605847897145965643206571821655296638698265014021688185010627446206434051690452050055818814387953407696379091922120503259262751586349107344985673999985547788064038163102281168833988542338628146249133087664167512951679344284698737548666192237544869045559660162017812898657076010598438689814523016939120546502572842859814387627936731845823580829001896289036056504020789097043830796142699414083412089824047018242727219310013211352488479778838058965328460547733137553246695464731395957054506892416242136330153592324816629193969903504231802387812689203584823081906967584267830486863211453410069009145699338664313816972853345311073801380912982902405362768601081069685967771015024833543168983094857106716170502849085077947954462699147604494717505060669446131212427764745402144616712102961676181886859389719521780044086980325975397504998522149572697467480839833242247726853481618143856079050210189359652070949405247495846425500307099151358099311189065879068561839421951174828265719889800888505130178940784219515186855993401891723139231882832083286169939560935228465369596998134650139280970061261946718718710579293134589154890905893095008534864848332039929584932489027593560934330386257790720579181785195294245329295964979971903196987913956934276183861976257996045857598251386413778413664056985270650151924518010816327917497840166744851983479660714368310792430436707292503199337095559289517660330844229458014353984658417228175785143167007354362075418911647155754126493653429360129516470550926052033088097427287637465073398556480689131386520201667136446125265771775400505809860619139877009862611416599932530266872865146608380313359057398764373308819735742114426707978051678404846232439375641547546571804214090564565385812820111866041420772223098953989306592778983762220246189240699081034765019851832705552674303764996446652450963523734650595004619594599209344692396270498274412945331611592349527812970244621780118810372053394391461054425391893600680998311707108759225284444839048810635346460237480767517956219440179577687813486920861391996878477238802347517931296055844082138540724372433956651302152501879610499623993556971193846384453467237581490092434552285298485712374053292857538478226753401933817975634522690468187301424340748470233562689445501610942867517553327140272788509323468842319161339277196238002898443399100483310816972327545634665431011433464753193825720488498949471103969703514244901712709617702411554302621185800037541093748284299210630273738370702013383072568668782787948753733526365826776604141302133699027678163797829030630552765350094863050023869083180943726049479696926403155974166671264293234064828447495113152804169977856057563870962033368297587120657448924850959485541099768210630045432183480709901374266923430251831288207099552927225678287768175433222625680715744933619655451377573713053926638945578620174785106625875121688265384803953163851113759076682581553852856501180587957553427947056192611894068442547692881803895259683027685476255789308662758526655222339955797812006714125002536193774938580064446514199504083439423811861612256857972138810553524841478837654551881693880432133105147137289788551217633838582171534842044330692151144574017217279861423220432894335427087139167221225789772326398343881043851998105806463521279586664919583291263613491569751666263659955366137945135517629829425246490113707610088763024235151844902018865720039520765399063967979681627237905659070664738358122747344018626632211843803246221629051883870809576700886287596508103105801221343362970771622163352445064682508404908389516664105318469482571157715088867876945639606652241541779234146056277705526449951312383893403529334208841477126053184002863410315325655449318605962159250092296469919037764755013877874962324266487948801490362566418543534551504464420260536915450836300410156754830045851725680350617469395231989088546160772465179382299594596491221636769891501583226789672279619832917002441572768017930451546287921657063750150022697620582321148651994909846215781295317584791776288999900309408661448940805908654354647288645874161530241306218060954503646663325170668528263684139526973096197806982938088111055556246340084345604307321555539793473261475277786465278546603110915713330902766677637907975681775691929649944702485401639401948504060841352436203000136864414677533920554626372487483366382280448389629004456554429966544774917702273031412640982937986752189783919771642174749541728697392501361951044067273829168931743564082915069530530747480406839466287934688304521517348586207584228506377281862252929117818549372964614552844321321237765893387727532053294631449178411406824638206064877760523440104292819951316739287871886386769912479014216881427420076152646095696996639514651100281909203603028793064400719407285255041698934219558244366561233642066290975421698943403429847956213192728970972151639720861135400904613780481925518339562256458912067110047141016105470423721505078467608811381911314060260356398081257451620180752522335531070994024627762229826877259399655774964667326530854100665645437973727859160451007425008559827232536711467328663365655152502722283566943039223419368394247846265425685418443952226632696302385037542825810990822081024344376432181022285315043516599478304106815247402049959933053694522041676498838436371238078333545757182662349619899406669808323900179711473717154166558168991303330628752011434165897746282527491755437049804683445255863726074041042748632552076825022167136207853612424899508246553976974098076252147045698340706395336375736763039335063629862671231181390477310509109865364329202626063160547700388475762561214352200031271244357747421344132450178350163379035219848933584637370832809622639382200896255245177439418954867755245660010638167599349890290372612479229940136662146578520117691371591060753904688504449323627466118223790117046782558832912352858170511353624519714671168901547795134383822715342689837566007811727850691425592138312016482347962179263913466909022791316060546085531414288235915524523986502164410824087014478626842618448639228396583745285463621795261475767960551946700673951611756612151272135132343294985548986043380844384223885866651855028773465850447127107909238749236146697561049423980144431366306268297156093333703666640809487563416765762303239219013174207936182848171938724142572608920539085195689748457246277980573017651586518471264951442690648337751630500207718836593377548917446306449296198711131836617851122879057927116788053361122523410990945766241320209770977466704662567064189214096364239589629029664972981063412795848797949441689451434209276688983869399964529150010487933757659813863435058105759590443268066659017610594552811468663577691222753418176651667795796762644175008642756948845553016088864547903584168537557800457896560060733636462466190768143861240382229838957947440125650072239570315804887718462629373218829494183806920426722398631426020987691314224929823341689065716209877818960261812744367771350308177088307924323845037027961000975710477055820271291209746851651462611726553150809046796084700272561963982415388318919821433625996042744192276956612312143862959501588505422578694775866239762546323907232866197994198222907224622663896555826103593330889309256577686512497344844129053110046366263535154610040034911076810173742141646884257506451717402005783621634215272271064359380744244411151182663902408760732432592983804596759991787281108942812334324739142319159200362373114572952826844934557730972106719875475911743361686637331045800941724773501107964233977286934576965361201673296434417929620163723414690285290340695174605408306298535255858415643225253146119702738210304312461526085480210222538373157030093980152809271279574090955901936089596697021208379559498547675895832770166258945932637525332165233167605504706397550628200285493265742265336771949354458423243671864741322268802726971156557346609557404904083808762028380122987625437413108914543439836435603207205094943727312532203263727622667191879193910568340076613969300263787831511108480506101863103877402480356714023400479111243589734266191852020867199558573704053482558692358107886631704740318753426642176686361329197213813978232780614179621171515172054710843027721397295425945404307303667836613791317096311557619278109806346428927407797800083992570318289172360302761033266453782566208605881353993687556052545233539036343750311426188758943409388154245506073503577574849063330266564421507163371753201427933504306871234790111724172281116421659657503362281888740796659683533597639103608172782420599025940418474484035807480842189194765167935051007565983758117138880850880079168840207427677216652825198845866463476801348543167554205726361784777890581632188780204059897777309779203535688014439571119581965421901334055134871221836737785235948236029266647254217217630573210080967008895947328795046662631578732495085072894029388117535559578014634704430286706380119651605732681023374218120331914819580232887060482856867738124012731532270582186567446903324144079868593142462464853967037189606356765928838297352484713754128541916029673468694970566254525978745527581878453356494558877012526782888214997932772587673937703483601606283010738511308287408963991065967262840006365034986676949184034154901361185808212618449366088751119467028586888410501896935143436066522519037257509433516271893831749739579118749553670117214588840678519576539656697388635578136163410963749466214756849983557764672826153252317795087282626303169535122697823267255059367961107031267082339789260562103473760600019947560332511993200931229942341093640282256785737899364152756577909393820453879060827756687755958678448935250705431188114176481678131116471882947076166819047385086950621511880480886653066022616848758309864921312296860272810766801654416390247350316259048214268976743469741884079555814102181986999422830402591256266689257097954854164106763567731163417144297830601635365504797718713824018147778743193511004464073733447818828594906665713272806435479950492519387440420069233877312072188948090723410441075532338444210818508208507055047892379084715556353978194080872424256143992987217558951695429919716469158396086498203770445102531549237267686625414949118075370762073749936439157796390523762885568067653350460814487041148944810283137785712829817206233853686068223105479845429249488434388068829341470796942640566118610843808384642629923232636999721061689506419981554641351882337024002575530587056245581260682802408037137158385229590201928269709737567914323515110936039553772108918682314370627417982407306763445085380958842714569228971863046768656471228091182118366173740118480888984532419193858521174874311626030949354710104538066065913853844025322269724441938585618666655169266962010725328199373491416081212085351538874817602097166404878767171696118342117184205362423223382385505053870290512281145405821499280951017949121153697207807202981546021240006781856857827960832169480677707400587028763054592534990098283365421666594320800713082842426035884687641109971443326182654297091050902128340638066275998331583868135907656403205965713339268444329996601931851172989324090923103695334011699735621234395538669504412668248072589175462363381538147426637310550105481054202275140826159877785871152679323438328374147183263020272438846767973907545429555432066439908376081697120721263091894107278158014863868522256246972207056012023126405992930543657798346829357321081289320063354653786270418957377617806614405880528503393803556198144301467034646733943241619846977631455724464550844121870662069105966795930530755737940506635529397311140199423986660474599163410876159699375743271723400919237748641864538353181133310834646322757081218138797361675571180749580270796050131920965546439473910787337368763308463584104551333608401323518047090912514189637139127683087294722404176513576010403783325493840995527307447969340866583229560556588891228602002590752659535530538967265699120814459748348501723913512650812303116530367112149854243665324624016535253361422187946822450860163507383040427470448515019149008968770824518774725414589332518955177056807080430161470087555523764497566289643563903412915087068302977778217677956944621133152143097058693579176721164910981337668393488565307737418372605286511764131022532501200025838546968797585366365320996847910716163522216911509971353735454365285449977286321589933156890457283792377256527745092752160931157820578424592523395188323934122195236275319086575441608274249221725920243295581883616806664296656271603461604133743689683676082373411627212553696997015664419615832760670249159714048652719683061220760801554154363968200557482516924655294793392829966067150231203436571599718545624051725928410984914795172913415832115430899069743189130433960163456305637841475356739154736226323476986084024307509515010883846189596526835792465419348444746157913001069717317548559841327881243022831801865658050847422005122287080400343106134869066884369481422136749654110438719387228416469054880126811737373129657815306602270872671274520298771035502303008931819552603177163307221870711841976425232957478100010012140422400590221633783645122201148736584300875716804044555958023360994057149928600824627225789537564956474419942857986467283221017038183481319274060564303794295884302681178383190106717560817352562497733461996423482002281812576977358383907697700499138754496736696200615262825191630011454124665218575179091049347039012113962872871793264660395351354704645418754919830945332048729419754725047634080365948815127678542840619530695679994299478898116210480909226931633274451248899489991625969133580398508450197936506378434976337862972411656600472585124096464854821800114554073269840808319077508334868771008488930816075998318363266296689720003807852529412944299407269177598894306572487121821437919291534615455604890550945386379315466184110421997470939108712652538007945926471964708721693081162340238900322848733659968027770937566479935571295898496320560675073408105872063860469845505048695078275007319776724786504367982114868037737964162930796141230114227777772986657682390372661851539314537806112637235162502586535472078269400044483927079259322734017609150050527313168786519876328119018293222930975444574096236236613146582563978867696366280820262536314451936179991738015856429330960534863463174322653833417642833803036604364732866907643920208073444772349936508885916941339434093528096097442731422473563891593684202169518686203770123633245702226170394672943482587872162934210729903519205218632963493163123435316853993574910833452646626539844631082330830708827973527599740907434405117103986345256367233904427344566161797368048806558516374536732721225750295862332775557249261314557783681276933752225647049298609559786328584586659401156489967928309341471916084648853956939014707430184225137974428910321057649233642443784073430329999612358879623282215206368099831051884345298975148629254153667907970957135354942227974537416551980377749713616159129011813552843717834811041627115749105230462910646051712894149686959145866991319892871991937094496276374431991040352029076675146096209862358826134688466692268999637697954289929363297682749700822796030697548973634753885679716530656559564322835435612702354695458337745978266588773894053995576581524193455788234035619506047717798721643135014086509658269766332900681757907865092760305344924612805650828402786307337422003029806421621480705719675270806850430160841651804547410474619752816447675839457229409024552280423468765729401734378602692826060067913252716976339003566649321492424146368205937042090932687894926919020705369987702278009195237732988252694987984634184304854156015003527851532752299389318273578683372172387235497094086264276173238796796384832585148217569621557425484260481642104062759914434967079227926856723495108577820505970422876561558440069864304266799985378821411261771991353711993484732651298128355182822177277493015233003675103112529433525005660975344305814134916319290973515368578419049018959228176702281146807423339004392686779312968384472901604116880835261328212186573002706618663874627040297649760999649178892378908468153562018676370506850859520412842204759021376142288260170314821767502129808123290564413489520990759430763101283234168619217012732615103999639194612157661043609985174108884667202001919797894862177301063310422417851127737727921135047279179802369241273013400426288154207218080152576842670997704850591850774199875424121695427999171044171373029587918585827122240343241918671592128940613719330552997137272606358899620448296246789277240502320809297328873706576514909290056950968806715238833074706109415202745678488321079130317475648403836073219179257563758063742879076868007190202990094840244614327712617763591142554736325680128850936333018030813101080618793034479108084186472744807326429023066197511265805692973316083675788465747113972801830962407965323323474179198659364221585157051236678774123627512401725293629603381334168616637065313794119232137516079587789664700329070416666373105568176971935520063987413086253917335364272349410162261862144706904571408946091555340061828797945450018430346430842437655764063368785616545721714366332453404311910826028193382144730362969495449217014095865134556625398053470972567692027884122234235298907195563122635719455637740400335185100709449535660166579344718434526010974131008696410440473940193492531780810102659057874889184931362445220298352317519359124559194015697957720258665681073012362111696048782642541667577422224346610660391566818975188927409376079127888274717072575709874625729148957734370600460876135613725115631480829130193094852211266616721454822660434425003976863377351678342546783397013763420904742171776590189522723273692397107890696477540790096721000601030153438154703515796581553174222306646188806584113903411062114034427824182650460951350922321736574163463329752014828155552162819154101849200889187286946571356179948886005403009550239696173763825199872485506010091288072392141270095735134721091222743244804284149266465497177412101971539804004433398095661297247758455851492901477976804685929974476275333574658000218935758506056313329818332154373263082895299036192170837240272101966807438387417924102293897681307794847018515886250112038707034826711567186831360373416083862866256332057780111657262664857570825713173733992936349969047060062237672860077737090693987653793959360791603390546013117328663732651540969285330856766893579246783495617631809700001876117268077909573524184945390216338986450060218229514499545021174244672012548377081945890569503017590532642334095071917431212271621261163970585239092512065117579013070503690151040747832419447981821787509191468452638578972974796931855708151239443242894936337868989675608920144298064052490917926720929183445841030093484812537729929281240236363614134725729234944313336010049359603609405986948654914006972041521682178367328960418111598702608960920646240302680478153469316971078181643545133674002687801287842975294316426518005665193768785744295124425861085895508325450539659800474928279970028776171459393576374439357884190099570604953585258721789917138384687145732953253494086923861353902452524503837476037702761692335329266862502497092171230454104419523400761308861567902311462997942435398835331246945343629734961677210910200454757100083114547986233772162652216196939546930837595635113707065642115716104065680360704709684841774091597991491529670153689863880904858941013964334147750303546703213782793104168999732593439819963904282543754780184340038841748563798863947537480366332486628222026829516193647120846175233360701013787414548132543970210506014762045036863086916934556739554373119190973183544338144385132049750635717632159291093711351451133409934137725167663053705180755650199928521561607686493199490522574349021739363499049916788197251826456977572342202610574432474736293024769368221212133175170518599390829866211252267827432797535952162330192879269744921322982028140819646090031814488987998959200352434732851894934628472060687630097577170622969069891976631078162142603734748675006287451726197794849842420188912275221255222852023346297651338464343261045632754341495687219790501792325866277978374605153615624175784695592214781903979625656565990876670611779127932112452947318440359521317454533180882067669581562741894682763831879980963656906891818637559563287387198715515681837675447129811960575316472125902853450662056447825135047875822842118190090885099186787081967971008825095869061494408788639740878396657265446883603557013354692821662324679369792863920433797583802174829111713713672064837681628890340739811500897651119040242360757358354706520007726385014360531689693883108096650068102131006444395645101478006937127638728490671264682873647854521947498621499180265228053677216239215695652354704856955593498918267125473198212655770838415287440331920806129696478535965422383869421100257657676586574188587189608696274244413937728133951094306125221291377249597818026075900535789330460269410830953315341653970935623334118567430202225988154266969940563229341483332066146252967264173618693852636124967206487624340008101367501284064891445439996231731705641021278055294866956994006441742540104285687331812485373225414981568592169222847993196718734467949386212092746665693398521254087436429133151487182379467578257720475957991575025283467713119035335100974039137628928946123570053189354341489294440497352224940986109574218211820531832561994777780223379029427034874072711182977803809116426631309426931716322013879344115827493569767372364753923633763391117732417084114689384764509554259794475629818819636608057626157866598721395729505316454247338533327969158851186932042943775456090575254686700635558054524864605238808092451491605757055342944688759322439314757147502828058641585475288301961266836928737205364068613870018279881636462436052055259335345636514004043677038805759475207789887549538227820852369772879889419179953930925227000603968487020167327018911520033423646828869814008983058814955908004760145959116316730709613517280059674140664172023444433811417396143984003082466104708451719117734648022901830734607289824205892899862226779478934767404599365522493206282494893523838418692524386288263742516660761284383547405933794067789713464466223478752817343091601661163691399083184939673035313614758307289041920322719838144834727345277860557160567004333420544256813481869800067912361168843697523634543854851264728754626626856554948738951301436006922435522545857621455047824348522576568575520462087543975226401765692918510607292829728841067875565853874278665770772513670694151748225229495112510752594734390941868772728255028045630621660986481138626931007468803805528944682079176166558396306194127038949218015661087222091303428272707220093265978084245000124749070651656685441461617453945902491411925827731269445334036051829328407230851149233602466308663706281999534680757983331448292981802813890124738596189642815361064917016260140111447253947927908901088689382544199762699891177734827604901285138801438278506227787356243438298431365497621810122041553160476681532921475973599812990300269461528665333776160739201300917713055974635087539233563026962041576230987923718976085645641584344962933569778934323522792564831653735249157211973106575886453125590474558698803742487833558021147403950556238424512359479883104697217852004136964386803342785590229321154100774141350466931769314946741108089411905392289889546975760892883018830595434675501102188819675175655542765581798774788318973258173274965512020565011870222282972322930390342010786169987027776193601511182909138152989822435213356591237171214426262428935816209952140669594031540286181203721204148084206835153892629467521529502662066784446093582427244792430869119528730667426532199625943725646702553692751795551067138959696174464701487696870108849191655325539082118609236220298934597542198485628959116824283432666182235623227675020449486648432053123703216479549033968034905129023008199915673690791756311978824864007349659506961641423668444667048503459660946936461278981282321825929184076025755730952471417308937373943301225540881458665556727025362106275786482556004660120496443949759673104882689087509059948272724955866091706454197228159604519540652777682604194556553931636814320212192867011318564092536598410927754874561723438948774154362248445720311195430806859274448145010049279493236244533783363638727971656487660382816602582110434658263844318548669311456501829448995736108037356452122600025354816435809799835894869528298442009513358420346461916860021903274246313226378701847786730186353381669625778103686652987880683106677748015186254778977852596029909191495527204530665230994916176288658606139311922207513258082787882697764773792517383807888144592168091699260789742442493821508672104675563147773271564360999300267823838591603343931541538375195191782959169657936942573753236073193705816136198518361631357088044322633240462353899310497300199060396631361465481564344434356828420722464429689652361113044681803524746212028072594122160413001604518876582957904266542311549520376930328054932102789732438511790889529935960810207171573746408187525223647699585188644605822005230876492520438378349515940710248950194035231581605032793638888756380984887928025055372477558290106169522877167226912059561469434069296945431781376940803261177885593700640398865911970308976778816670789586467329015932229697267852870143205988776398065004719184312162609197473692382621156163952490966212098979332478982735861644636009480316105231675022475776450054565188242183344215956960128423054656644513014817824292995799325428709882323493942316305606980842711399668086767991078302850075122079788532672799841570910616050276632693407532908707983344369312730899295481455045901407334628181237246008743386952220619264289302869321870742463249396057813616074767549660080794924279043590594044347184303462181260503273935212319107234553927477298860688062547762983500242550590339163514708219227055161426337431455833040473659792853146544739157143066066811617982240559697940315228200520607598632937721576505422108717368977937581845354569480068815381056477573335817266058520226675843029857695381176876487608379168366271350321542326663318504943279682587016995356362795083200241298932703562385553185611079552682453285575935658759970049778556859131677559994409525626411860774662977000585975764456206927231023129449113587608850594530132444797498221264642968801938841678443169465964242646416411035623174836683477878363840725154765058969644517665873706305099216809437384297694986549900245225425883689907372471155670881474129550282099696134803906731870876598532077734618647538372516490027122013937652788552141720792748835158192763602395734817790967648358585648504506278826452267638451865624862558956489465523509171372654627982591026035366814327768788939120579144028414617074101305366223927475026677345668096303947092650518561815040002471278119398425868275224183858326003764517198350141896749443123330458088797628121061114697420737566269323910028034613796948503113923597012018429436094590979004526080629448073764999475872238182129116470360308573952837612278617176335069444556172582870036365671621889057208733587287345150315649363601532690486616519154785551650035954700573876044124052262998010183757509881689288170096323862716074562863292081599052263897794548244325193761297699342826027197204871437224803166904707161778858082393488091181765881577335664255861759583446945037049450385224010840786514254188758200288013132277131007865915688571171617862661736818999966638807296076935209635951881722626664329403282187022993863309203692370382623246506245841054186470786860226943695532140759347891554460732633420429624631224510535753381030736252296619236759906355953281865075719315486906812053296280314776861382941658307862265499152165722058866474727581349294905737310821624470425279682440732350649514373249166314692460521331592271808145277858645873413456819043873544412654466715913984195215867275866654050963425786683811852127282829793387903201184557643329029147192311102824344344670576630324150222872540631992674545752445522554597648747247880907345638228360760240989844689099987413453672964248949095129258465483560104786893683545796538990516409640339138870154387814268652799896325974731654416639036186354457138999309867821067110211919623967952863843040969719671171952432015001850186309481036914737221169355226648254040985886960645277117582086432429322731318380892919744593277730851140896414941328347106843863616340897666910884716264685276782286390652037864966732496689293178254663269784142595062799121379157138363150524306831463264246538256290719494992751698092140965259292772033699766828306185315311038951213195856006885499335348094728459334854265240329396388720145502923508803643609267593101579441140344424527102079928171172501733103248450136727510893210970420507125775222513140855227780751628528299100408370022345258066663365805304183685591507953399604596698979573416098516918483577650372173385243126537143294757003771074905723941910596707672390557412765369920310775816506844952654863113993097329716109859758262263596048581442459526424791999857178916861001296204902844799745206691015072946877096529483444893225463292142381248418992318477807080926253707779583315636261983216699445138426613111508623243684821409537970605024274159929543640993988325931805558303281307782062708718006047549246073562372711656242702137451717678268186602521503663515142502254364581794184991394264939033792435618176604646515713115318519288055747556691223660116915082236397591253834524787434488492928854425516207054115287355433879069229873907932657932396312970427907178551077347171386182886744142058112220571928179025407587488844406679808821964884449448076032412043523960178964518470054686038740864529440010394418786774470280467903236706465739532974766708379277279762765179510731215287262638833988034351804731624869287129920915067445405131697506187613512687465187659922376946557725434780256050030536578007692777823239146951516698564351673478385273230644220707031322207726124725228752405846779065846173842592166615696408541697436759994806099710918183561966873336597117534381571725958250573771263814551860072455431673170032543577940673406452822760628670002415793717097080840753455092683795383633547169064753443245729602471626084155572961777915616841878672293372428029871065092984151131174599555391500471590264343239238940259657822881087964877476170140150949993358822263880611920047284267605439328572117431901844429661037809120977187308335169196526454213006018631293853623182307721529699053275632438097250414844758517626704571547811382121509644138767709193577709396929312380450524713383105401681705410482372282319965365014543501508716613328257598066042934678452802187063704893911604197120055762924858139777004719796541510860681373450152152435808307091151315570937555864121429488300011512808566789898756235573076775050722612899904014014352774985976240941358314960286672150922043890442941149887739433772222227704182006807584351292705224336379996554600581462336866626864296903819537999766939874147039569822752120727662535306002584699845849659632484270351934074873144156846499439091714884490686319353342036239839368525143909404079811485297012896374475348036314485408911245207564832687464768365584300459174342921912750754359219084122835949432215751632953167339123900822947178642739629196888813115448990671078895252287435178931540663824114100222551696416058407291145890987895809699213407989446837646432166762587697938283533371574950012518919864378835266663378331422794475838032022595138087741013210145253715938222791605952179100247095221298118666813935959421803489337544498519739834655842194154613923132709201627132297391623600048753044004707828033803677719982623219254822208098319695877744062620192108673742420475499709100854826565896244185624006152744858378686379962153720027608420797733940089461563537892877227841409547008779327070636947149749425802034620387343740493997210124823497525405080799162353017628650706512665459528432041774104286405563819696123413236759087319976860731537955883826569134830135771202081205980950091719588045194943034719271162351122321129534563703982864352138941520360792755297108348918509089612432163756741156373163807714377707855400216829547717684205319615777426629736403568100675403342654498036054715328278394683619547531421444118807236302901375508429446000330573261255820978121912985206454849423519944190843008320555512727559359654221109109843981657976193637870226149262896379564435414521101085430985199584296614648747565936417577277834452375976584028336023006087869800346575434599297855644284064402579578839322096888755840763929299672547233482865451230825300900250164337219069348615570350494043992658902433035179600863358001020067351987649693858085324391577107109968767952621752036084807128992358444504996473025187986109608716916853404832680688700815563595102758590329943939648213939185400016392856595465984768737883751294739344391481798304226279334436791060107148078965728327129105842775249216824546872977034613459135765102243611282267949819041229400276982288338274454967815989121889912207428330721673779142408832834714438222229865663610280520037237276347175013980353672819862582173799695544962894155198165007705075322517814946154392025149222381503754411645731169539334686887767149246510962293677821086398168113342071399196619962499651177269301404328003216505642808352284604095652546525887034023437925793530511651278637127408160075594336616837755270333546165461440744356327043746224875877634942430220234187503583596448903505920571142708160391514077308989835520531764054539694281037699147202711544030461638106170762125891552626143306589303619900347183593608618610096909262250692938067728260610679043495525875978324392984522999585706193038104108445850374585073858708073131373987931354244554633277113383735354362993720777085526276836654410096081583560694817624600836687668967598295177704965232715950372374231136629325695404751498518480293017160278355307812470123463935517001342646357131382949952639011412657569876181203660032708406605823045634154398485807490848850409212935400148370044248255584550885589527717108578656376244636246170405366369347081553816495228108702201146584829657801912098954553609230465060320969411278515739785448160863184731252380942647973647297908768854052267917129954665095015914568811702896483750959489214325816282173033767230511362896001404163981906203842653802797741129085905659185340467489639438381093074430777700378082265808887087190517150130218085353536965200338527491795700998725878381817871761213754845650756260953363564692765980558178727330898215666923387592103795096354511079617127754039960943071712192666480460777816676349269135025436522064310641442751283630054899157720103448821249279935523689346978962091855056116674089621181549861844502918573506064148861355944074287504064525138286491947520174154517157368841123856679720873020305023370942653905289870504521816022142182396950552861559024746782300765576532062942311205306751356880926463422781742577968242380833855005688083856573031797750809347079479465548006782655425249829232622896596021234018610237979715455253877386560738138119401863351214959318101143666954949534565709995225933675963991445992092526568412037355942587775492645057575449262661918475165391223368342599893285360470125314851801006617183861446129937589542949396636570632648379666101580498901844200796419271083374320667777488813655136584168415566008188851258737343560499583104381799648274151589875338804727771501992531271292942959585524648955122516517837155942290321402713086089881267100826889899461324320167805495636366321082280476262259894821521257520254542452361903553748242847860202417715038994305757671485137030880603112109852527472832171863856516602248096242849341283850161187646296592000564117763227106059470239600068284555949971661167298339124635235267116100977773208139844712371204414330833552031540804519913102939235910525570991791272707366631209866071483898078210496842935336860095669186744181121683898759245275995169724954853586949721624844743951358233535818947528970686410223452067379482463895528749139936775733453134748895763493483599487266193882841341779537157279421467544149310248220818997342313968484745186949919835675652274684706542941602178962096262734052461511983458858280883245909834407248567945967378518355184868241977628607714981917382620946818908970517140792872409166920050584463762319828879541146072227360048594495974441967412071390321421256911266906502085369118325134254093266947962972866604462886516341373787798641269372813048036024053544274603708342147150423947974861530669770195340261030155295363452411392272860239503865260021135335480320429946858393088498323998687310847900688757573934228103161955227097327963333981081168389148919412990963364995896576765564022049892834770478189763094035153547068309589607944785518863749534124611424232651567504814033768054763301911611666071880996585327950939258096175976696312808541494437134467575721143477700687544742646413192675742569477154722820339883933558166314514842854042371550555835646562099242742295840536673103956566409862750724454850777673959764456404430906463348922193197104977808770200217518512756229260350329267971447507615805018153830097996715663488143006588130348363431257845586922286820033628208249724642209025376869357337464386745452035658020815326500081703057087335476420081165212951707939445930309146840165577420779820805497420783012983471278368250967685043365085910062095608495499536394763939392250258274774777204795456518136082666323071500601223613420289462497582409264092429998337946606835725478222742560414728243047248902116171777824383468741612269873230301635093312630695049719745664817484974564492908196970758585837665490858163162258844971350368841569322991409314133393498068731840798177337380650841096616505515621631866551964008584480953771369267729295573370974327371659507777879047892723188196252682072301806491363414644105654043227264336336546449864533249396157771602854997418157040466898266369887803434917870900992894766171450864555603757836248277775444254620044664208653729775598290585057489288179253060777812226028462691603009817492433156632283951705387016819107026586547083093943882087086406896332419018139914761644303654681986418143530119867689650034706614517310206723733050442939427424974596949792547106303273053629669330899615204455026772555390562078980154179029270167164344989627037110499119136842657521851724736156029791112954758670729414781012274241266846224046015391479723643334916476586866300954402534779059082797012872541619039977429769226257080096368480006067863366422726269000489247404548214558401489071788893528803229383437414118862021473670907066679997546189190997642364406514235398761476766573336745094588965052074412633854250445210241506769975023369118113789315860674597737529585471033708463628202929639410683699017089919563092157548527508197291782630858539593592494542957270466125661355299243500576198362192771475635651686894767931912214582472698627549120135621275537249757411243019533790836708770279614198994694888625594216207311982054285460030573563749359165982194705593962664626807227728586475318624178647921734018775713503826934630086656094994669802184694643027365061393740574726068388531111144131952922782243769034570409204643659347569398157841152971442025301390672685386613040230213400863907740824207394442195716363559822197252654051510266321538674298663924619760497014804312679453137558247573648418820867485431990248828426258241520312742635486965065457385359491742539400928582440307662839938623002686694294453228287402521152258688074954508968629448460300404742535866645716636865431087667039330369093475906718654933148551771650579449717046704700752765841829789496225509432021334970800504156653692651295576004985981807017384050207018772660198213117794438605917166433717564199348467742863359226295755321523575126938992809944859379875483713415860766676826284670118746007990517670547578726656762230228878898707283738055181918574251295438801666406208896080663966654584825114630825111214550457252384786022344196874421580207571595125407685808766915041656137330294031530740325952910592685677592728638420722401859847533524562263284025141055304967000857141257491389662709438856177398576157374561583243038150798517872570484887961260068403516395701970100065344184214557235837553989772355933440415597063134896769277222005547158724579429651028630850390532638118416700945593537121976465939885569499990159578644001855982883535354495909596020742790258328856739127886955242509176062685270068721250984373627566855868720207683901474176810574712829861847846523389886498581395024883448103617260013945022259204738711412673452408829509638642628398643367928523939973913479295594142986007649482631852539196690993164888021603549337494531731373767584491564479956867823338952032655446560744539822042004328149703615261375752222733764602235202592208780281296540932272439043261629155686303149413539076304301297047720291504058596136602775680479440262059325967886107064583481983166854758370767528828026770824716076501201933262062340799267890045387500471754093093890978381319184663664219466949644533554460986067062020266268744857623057763621983205745227334863380975380342327687623405427320251643605721118254759890392844641798206520368987212906897394781282546839619211513775998581936217158220422223474464883542571995554749395182335682665266715429419065263825198967405310070863388463537927278741427701712505126082694583425483918253969967528698156264374828705502679637706806584809729912839418931244768991725664530676051071731626307851819227857645310839212402013632244190134021343350968876150384512734135691240992250669324185860991521066708526942618322635965849648011916071392134300079252087221729628053881264160946235802144708089922107022328344105845361335899522638924891875542526327206948165850213492395293913632848422339512296411123503761206955755106218493645072396031596714651055216099336812677715917545757219068577240542451743322853654315360456503633276359507368522318614784871205763661051208435909513518686712749970489547718511420703338792901664603040248100322953600396625891284818676335713265420628094202463647914090515934250521712613298282912563256320966834132754977693613275365867072195735796170770263397992262891229874581189372752321580895813838114697339641603663827578723931922249975678622059374087963596367623716996207457755891334145885577546985086027044695014366617166660104445418179190138766856991690991777148256775194637999251661937914945138317300020226848355721917998330163394353390693887882372063825960769101453595669930052244001574359195397405070216744496287536354628817823178735242502245280772588003261408454464929449179205641294329340214605674548815072582663006995838734433518446160805288114474969259594355718758416608027649384532196687095088363746648340557893888509011543902412709550964155168306408874585375229146369039665462244578236929053011388699192309830328616520940221039409559436686314023895110790935553709860004407760058804479872349344766742902349592306890261492843765851241509835271748020182691100766987840433110804223084921178296534019501086964339344249296989612728859031525862522204459802876777604622187930902776995087970497338604483210179999385371118968595718707334034008303897112949248999942019123394681249006472388220552377981717141576384675504214450109647503737905612679756780462279324605569828582729127046259173418541448413803109660622151676228288447553622974533648180183242248344322002292333513029116061677453461871879117806961368250009343596570393216333968949907660566603508528213954952434534680555493722003681793614293025113676131119356508256802176550524168575408856140405764764458165095257330106545564413816404307280486330143259618719518271025543419239580435785203065585571416837718523013374799648400219905842303541497268960975035595064477084024636298595157702262816174471268654567751279131700235122678351030871401455541077198159194243913682681761400466099893322597683389916619907250556240837811702434743024724477451969812756928580444954260228273933203718641051402171734008226396381491200745137304471385197437224602553830212964539896152197740242931116268650206775404238076687800380070936297809092298497662629677514647515234297576951951295120765344067830823265463770147421241612715579257192679176819916582920939877849691574319422032983979449983650237968416436206044307407451602684379941646199769275301190524730204426577255959942205626299431074494006125734728932240829696942198952352232559324086558533915313909566489375140883925879116068398006623784261081019916851798847382525535586471123451784526266831855959781948768696181183075573974543756631695247584903205027579940144614105380758699088682807918021949333177443007766624754821187821703001506844215765244495865983446804181013039780954935204943494009659339046382965753613345888133039748644106208302627208823400647646385935087292055527428904388191574379246428383180377828997050827703259876964971930198490428597471757822234010830306453054733193948558749817525525055354254635399121237713431696860699890634237757291216530144298400826952506469066421443273020807061875709687880765195783545229152604134240647862593311576670738674480784432952150056207935624938554037086913241543850652296279694050159104065561155414899411679003147395792626524273048269829437095501447158681631108629612928561826164627879795008097695764719939508717622874619354276031514986736548427794474773901672508594319885413682347313890373411872498947274922085269634249276702706724382872628935226021980775825012908422249675351749902160957936222702038729772119232198589640405447163651415025063969499276103207053925667716559543219804494226359057362497757203566478656779884477082053855999223412276116684045155060974321301804547613572434605082300905545049253421254143080645279195598423602559665728899759986604066802357664728083913737690149657755675298868324256130533898240576076257643133914687552385590656344595850789421737845946081526673178979000760925585906252157118387508074344743252032852792785753381340452699471126212681258892818441218285584342448187692734359223538480717272667994028724681638899986436365248951707542448503879181683519232625301763720148716925962500237078400748633470920221759842019246730990931417901819345266503369971814575942097176680506416370332640066752506502657717995502344334099303388938465041252349220058448996802905148755109510483094348364966344960640986977358897946723401437652233708134545418682315169352319238590349748234535221771734811342901583130143204913753270887783502977351533598141064105121627764411548149959349378828227347228880381745469883020459594817129866997072529701912541720614878017947217985554213917933655130348882944793181487792816564010056196973964065492796444054173454257113391941062389447108638063717197989831827819983366000281536700687709168101122579095516530590159749701156139893963770376278353833529149721225559517929363032118550391869998473061638943815364650738316958655688345908586333998813805500640907104306177930290186863624011047638366673484829904668860664962439888533693290085686231698149867461219306426702736096537498639485172905633567428932887178499329765337764316691168987661235736569338377896599139626806390805374754330417314252237162960968507952273190441275560184759701749148268402594793281242284109041736084215383772829343594218641556400561080069617982762673810570539461102250723062080610755682705962274857866914593231599034028938582440156842372150388449938922884500086979953300585722877110538806841945469816666984235758337392096979894768744947945195498886988495345013252965620558217063274933313819226931943724919424191526317149331060567261142436982746795191961021340869275311860133382509371735786357011476446912949621639384651615753762107598790735512856268884566981775840787987625782545381428044176563315578927813007353351599726655360861919320493131281069582027277685749465801612149221543340232632642431854604686510010658253008185940407585312561296221977040075770849567277700458087684545058499247979119062138760276645308446054620013765758416183832748833512825927891886672476887803531265611326012351553933489848759835410358055240348943735917274211939199130435185074064274566884523814143290667123190755455299923556067794566902808669265476101455599199793108535537632399639115529978937993958093607275499347995405601773347657672933881256732307031936694589005280091056731561063094091904208289374320589200702517595554183980247934213257654472923131505819100529528833930946973684863987652690627362248458983509454860628630126803488021863219479671519281723768054772435907410360712973179198605745280143955080526540805333094534451382887928582884887938711709708787383230943741315093189940304935820899793541313286627452981350086069178623781000480627086276687187951021743561451796713608443118685696052257041404117337941922101336342382552790484102492510694490895782772457081628956886744376494969972375633581263433666970811734167017186085836932362713322026827310024895948140708964019086900120709681250382195898448073579610611888344911732470900368513161027269059795648286914261743698213760764434298550315275865033965677222098892688139977679875425004870300165551889439598489600270219476789268354502585852082689569441963951715783882363415843746665264427344482322102004707882219933719364117353862440995933889549577518217647317093113201717729357935014276003460270330529272589812098152982835753927518486496140256426263738873011605513445596367839326889244531611533550632796770048053642819372199134699590820340231406999577583551865722183797980265348190591404822202515807201875116478526177261762838615796704600053713535980810700022222175265944602005490095138564933753527480809112079732144797688900938411927847069649776216663126729508667706856611045833177977467809011880238045110848494368837604025656668731011186669882304806436121891760906950416241729808774785240727000177662514988242477779233492278796669760188676163194842263286928282170178383640239608959892977274684379827725731604138837707445761095999840366421879594277616207898103417206647223775402779155720709383399984027286099185970453323794562811803270719732904568287812110707651815235107796121763875085734619076423306087082382652872748422678758731937394280979077792176196692119473677637887488233822112127836618188039739566035665512126780013755619197387226474288569477539863544584977981298512405209015946717001649110140594695831306520588679158310660202978685088968958588492214427810522135950672382474879412004731920832780410450913306632419980602028354844559225800395279189001771380153110223468361302567216651750678939786562884118691634579015170475907915225917832429321715236464429578025063427568581511602315711195491745401599222681056073506796412578495616232129886963164271547303637959280051733119877797639726969375236451927107650722509908807633493639967596898327628582027601945105909847476102812568443101634282898116185710535149066779014499825630254041843198632950875055516151052678172967761769944656027135703703540986866959783762332645029176143403957514058602432431043896900197252339964552594483444491300279980237191547123823857675993136730427210665461410998070245736182203297893809242141758830036683054174182842395547873022740357460197308140781435612702115490526833452551035672123967540271928835439612027714147841673484226567585841600232583724196345156481135441140905428860697418743519050119526153062886583596346948136300055883568926429685354260813073550070164700088784728119074537053553819628352393169616619640116845919532695369905506197151456472371788311592976256778207413204143037227645840816922224424471511789005074197900157776495074369169579611642764782034994515257147042617513817032693781789526903892886177942877977009665778699177599225955322712787593599269486266605500367080345895549770227718557025512989530858103909269119922320914119160564857561795502264565828592141570862310949845931362056102818771328016074147668870588712152799860305291316929467547088865417713833764266553871940242344516775785707321781191186034400481308505792899481409476796732479014235049057113008645774956628820458061227931635962734091016222752800114898656477892801852464319808188983530321317275926743344791996777827228649411655764031429658700271850477742041569188303707701240119238116591106277581732726230700296351885613924559068023426489260613429947412716102742892946969965802972699319107652431816530565993573543965740855370610635588492514591292646343941578683717019921731705625922955698081527271073603398374394398376064034623832201925653145725411138331932572505594000845235017721383395974934342552650513676888347575450378304815504646013435772957341618863558574306185631938262584747706093200190828663257314478205833705068861949412411375700872879617341944581307950590412338526130969006419597181860713117063129285337733284074013930934971880158917845713560503212260019197269655869832721931849758069803029526519819047624598866001443965687668904865180121038218748859949656746864469252962025808231966422565073375297684131513214859032580080544208953472634907574570078999823929781524894579488592178533234796151727815294216243612339655629517569623532743847774958942798118759711154541444837693351542629438151420912327311033684338568696899788468742070158628242606761561983208081954294469155956353501799510636736709713157592887663350818839361007325244851239141503970936515771351604439965459198985063778464286262511105789843187582301928767900598544231332439015718421687170420505474276384996589063726711926532608654045295441006959739228469090946623011289083621576749121485098173306228365905255410970036081468036349623620526915132827335115499914303543792582016806338817968122534848518355215328598365681753529291568974781053386656254934433066510778294732623996446972699977067287298349887546336581269352761027015190728587025772401498267348670907110151851514635432293906258989940196533529003930295526897334129087417128528085558948283623164539214092951547892625818999102845735321579749710667848612455097091121048044583342226177229393536840350124283928506376992767468392416090557797841344333179126071153818452338830550635178851099561750797353769614924111755417986400372850410384982512972577359075643644064954868973527144378609625618598576955911685690777898127640721510816990716177257054487991749922364790891042545296473824492175683280088999726742214214021466163927329959223697574941468652662248137275985016093159282592298799574914399604271568504762262178315917724745502590898991102621071404329528221212372057713847767420683012308518820080124465113589379022265858991183360164987905106954381942295110726387588474719033826494945800040314399622854450211578100239775883760730219093531655328126909762398310244309974209537230002501615152183901576251481583615985563861884872680065576546597256207006824240042919414467108730623471588737356010711788039919335134814566315628102111990605751904393581694457552799547889624561782892213277821350933015796195024312169616986684693315464852807279817569419475286171966679682904178650249440443174385226759053026965979602127458047425421938868031188669164542004022314126196546933515943275383306098997104875511960091756500824150052187194215664531692657239828756220367636319537913053696282437483912221497076268125574276076120522656501011974566251783391013007058722309211622366320471815161400515916923835966536526671706243524491849268953869868747023131093513195715396502719878829028564769884657931080475935834152491334388643418615054771792430542517497158470524755287711321209789855966787468580091216953982580107264480321604942223794674231682843554868642949813307976811963467870894523935275708427043934221552494199982757604911215921192160108352454071264732602238776253647967500720151662406721906461332364474031570701791806962804403628803780254216419071427639651948862361940861900577134635738093807294207322967164430602806704298952388310632918918365320249656897175183993084775294744843756340043364950330732106313845827411106599505891587867483215311031727538462262399126773223957275817052268025252090476565094424244999421350520821551895010228283883970743966348917675181103697180876008694394519841058165504490335800534626517804895942666955573419092154539814442410559498160865019325399143452137878724377094432720833149146937876991724056114502750578444011871529964493153327871527498162359563966088737828818363466412685032082136625490484768478920544306790159693023542146876411318837792736690784023144360557778638451542913749270588769854795823566964663976088862395054989604504355839444720367276428714592832445637200397204479842317902595727927480642825924637018624356581501938110860982223432422608327692939527844010600257123377070038090890636362248561283881328953375557870448391480211066646151929781943587346421605220233012179241083314184521281700196048997314362937834822914140128141544274702799441311551202504847601881989460038715868348954236043995644209016023258207152693201450608290967609269929820292723785619569756199037838074670911545182369966930842388743556351545305901798982445738125742971525661260481497915250434102980392967671129617000827768168641693313376087023089996553844086688595873194769021888093222774249594425671059795608982822557059167488785936133541559552562001993852590260539956267185868518924643778253379932078620883054666527693359255672552124429775873680247270773892410947416219447295961319708144365687630544810067915447353351139772945908086604271992325868150436302293458820644627899536522520940568189673412823753568215331364638566938689789061339883456803978468442803138458346407137617935727639874011678618432179691085475348998640421710693838307739530031627830258607970443111636712610622085123815691444250227552308056483536391138509584980849287114564724880383869165938662796499214323782947971768903427391485859329106448258728070168724126093539165567446281563678535274245034248382966909474427643277526344160865110366668691533697864903708252592377098035776073757027478840966006157342385413014173280282437665925748910508935028550052542786079498906104858084466835264697030264778237031234115514339678012212139133263179277826191359869216772624695320679076741468166048540449215950133684266895247452427310638567076904885746609758100405113518267711723540162463240182925311447221424164307305913916077377312183871271746739116019120162282574835233241910299312502967177403428908629719772647618929183902007051206385309922574515420816630129613264020368839140935354798769023135719300497301341161239002974722304552657182199381745116795264808708509748767947466626101015457871816434545833747753694538074626513864214801308527480126629498210418368680963844533912892244439817564346519087915305958003873406536624742227323407962697865025133091610588225976227505990467808252270720596032979246076434185873508779505028381813247420236975080178846219924625707036174148568745461516622144523863219651458545630332070526323684693211314184166742515844807568134332971602344935878308686174700315783949527861448490345759725329796855951464557790872148418506373510334867692129050119882101590237595737394502790310001968250765949016314767014915583529772111090487037436985528154813897566412172849029275697507828310798790922031635091534439999339880894371748119460397890306922534226470997974521263728998633433753678740202114318975362361403490616229402923435037448588876140250353731746864694545755029782437468077156812410564760411418086036742969479029322281753094309657703788618624114225665060970300362018923166758425764844807289256095989811265272882725827977679683071586819310289925754992151103261718994897468491632678915730769343803009230686664831957101374826778174812372374748411102660137948948744966869476091443517764720817343306331241438143344272299373602222692776274566687536703637902552465181945867554732220086257270339516151249575076980522679972578694025970416268194828545824053935795293530408253142995225329698077625970918913374495960739721141148161166377713972962330283742816979539499743709360612462943237186604749150745965139251123224243646599351346862519299997189749930559431859352377960512525837236170030215665314458241682087820417563843676457486193188104476394183351404677133819920124331134345148221992500488071802029098164089271482360478130542154518775140006922710757687797364501248496868397976195660177955382922193669247112758471076892511896013406044264165854316426532985565968700054064258805359092798342576562930133292215864313682208858947472120334987106618929721794095399088868073116840548558089377046840593255483131743963027725796047697656096744655605027922445739656768377456564044285140760897132982394385521879584412492656027499316635473263248184254723980298276818627258515181450195632579187367679422346484946092862975081845169913782152169845874873139797869640996929017494018089141028195463168660634025950391581291857574490784472025762339104443282726934725765493861345809366313233623686943413058259730967675075627164973354625043420391836001790293764497680624529145913227030182280433960558479084232220697017248273098967553895485403946085875689521366132991949406102251038614109175335554393948780655387039382749450072551306500136442134240397678560735681536303501488085864888118517016426776981209940324054098260298318954792745853626594333575754527929474426055305246921384312635293007180723695695329603322361981045333287542306016591815455407619989074976301855093998311065234183170038376001655616020010347234922357490276738626926341044820967128932651050769818142650532481264329536527140329105745549630805124942870661499719629675427665019699935843337730787512569853635232738969856703002616302089921239996694593549321419598518539533825749981525937015699723387327400798175657590065981298702862486958508102042234973733277124481486225296759568394618832010680653665677812391491379732119002718001963633036979698428498528489141559953522287899249196378182240634799254272424558748820434957436084051207513744221848894688848697797274947562623289724039795426973956568641112387753414022781257302003702327608845555591963583418870680908481601548444056791412441466641790476956483567942611578223045153839496007018166708318554440331295132138630170011562553624393900342412599061775986116325879269217394390902040851094693683865399603379856498061771173689612822539884950895009529226799164971897275648821253377540622780472888859945261938122562063888005869366305197473236620555600796505876762064358172996052316526592393726665281854709648729876756613953762164368567223852478809550272224176459353000441119956528294484863460910944940922611943645919194545846585895425712589575235825404160306726428132755265216359879129075483281040745283722125958563035153197203670106773922859739731590964029616199020011033398515294578680239206859683165162381442050173667194365966232794510613539536101791489094926714832118188550740370847490025107603473718647759114624086231874178534604146587321689630644701270695309251704185584984448971572033591557807201612486311984333248318472992209560728162346057253139306208586400320105495827820019964096321053115770056566289010406362283600892548649659915047163438775784940888632663615561969993964669473376322972093950733585152099406265864493139375868656404715922486596489871245366573168357203699804360164279541462969313427278708623050072908020943414707325196800444260569905596936747910614907161759603662315987192169339110393016854377105699232678435778476117967155224428896459751561180124812211653733131422406671022475547158205945884905622263655052232952544761019098568190013086954578089784026679498675628053956923938359455736684335764387816994311087338760867208837963844437796762123782571379892170125322527819711874885370425273101390361454017186218738370445997510059389733731056037160281357720287365070863218308959685974262190511246974640775556518585126274726719187668140436272243822049251345624843991743204352707458192891827775356110924325076280447163172895983280822852283837005585529506797123542426999574634995825691463137303858546799642994007480410985177423817886607394913740984407690814340258643541490444168924379366949165734545748303630912133575978463390555547999997520538876052215821632351414760417534006191742397438176845324194117402910775589507134391774870820035261766284481308227490208360414944155763810976533685949719429899867594582181676382606548817333477452118249444721918564089266180778668551673107414789613040735441561978499478793874006530726418209555510781285155686019425960366793695234707109936250137500712992835555679804386030014389020522550858582810383189019541023885403348766599162714061178014467570928388455901043781842277281714381518559925104712016627653579686388687155809847588300053200496488780064538691647114912168852478121770032727956670294910507341714305536272543278815878331787812251779674189609834644618136672412753750737967089258864556078149194934003955469298141936750957025538944479438315575106072016046894786539928243409255875359184623205483840042068886082234470777535337783905164000294629785367046015967658686193453972979500084774005007358060039949005853699183662284022391940270754728898521324349355674743333544078296726415665438460170573059643558638902761961593639694762019622115801350909910539406771490570709191926881253637603196919627563584306158658735002805242084560807505903789547728300738361606520708794803725035404785935782467325054365897150570554966840294213438681697988984866131256684336044344785282280890215430421124328436940393752467672271861558626930081217525690594965384977841595706432481620003240765542222748234179755493683632645474819055478186081336656803148864126701993557889363198086977059157210577294279925567636585596349168439096587238613125179646774857294051685667353003600873843051638596129392478598165846574988353894412428588483900538769636384776345360520133817528490966019398647921049240043455886163041608512730562826832509220267363649691586269874374309269905646074240230308399318687414024877520450693176309203627794930449673542194645196566622095382119899702342567796448419437238738359995954014867054885797075876577667346368713269299751457950976706830951137551293851871293733770841000244378123589826977415426899765655535347095171715018605507721290464296504814475907961071714352915788003659577129841217439920668225316176121756056071628374333289812336922584895176113302364759383335478771598903833848655411777418390244990614125646382124029480848985338638554064114638262068105083826771213063333015758073916152068715176690900961467171696706922139584883281761106314492262904559160980137612116978555947442967360540720975534236235679330046927088103317156540153471097821237984084176090518897352377413672945433953537080687867202270577049194447170613333531094887883022995082845315983497618811160765506381621520428717812998952576845052380431465181872787557784708968953593394380287610428875038266426371003130542911995004327815703281699217532412475162541831073181214577498546685482068145575565083248221750742394038067218953933314025635112269132710874950252708790319225098003799606465890939097308826171880878263312129049121879347231862705709234028861152790932454241272402507540183843212410958301819154804457843146826132469285868263528081120228248719700619793969255720191148907925617034691637170060157396345413720403979674435982971621100431784097294372546034714453634862951318315386663558411878603056583564423204346824730028427686559023117074611998472213762912695774720350151068014712637038044110189482127310002918512607765891363810661125187534645069460704358475996053296588478733921440607822767416087981565468892418780879918363896110730448180190381957990910410870426543965734947419905904086616539157525747061555727752321774703833658819160632966773665432907330621955479033739154670027410561321049429832498255461841499949955487326707671531440600579025546596378185221179638234883829115047413358286242912674540677714202713513759593408011283801225834618392701460886425848739872375765127819210060517703584768592683268947146188950372887732686795978199839809948295556567963914236938388356478712628547424909987758053892790076301146958515925201555598063922584201590921424507535222843183605446228143535346933780199325802209135421534121830348737941195136271744049443891356247207634938871993854240202645363280662588919359342515191731190979848991655242156756357779547339736150586745882810234321710535206405116343511708909453486131414817795599002631606327973514331399635312627598131090004925182057804566464101064931685620057793215830649243914398116565875900484343952434375311397663067841296180246798847848726788876615466854894994940031604573642376967697459860512474449911628064661559076927566151981912708798153117489706325239015417659073181708245810953490332417479546696100615984085940431848986997147221939195941519431818411131939266344575935165852922354753931910140238544139539614188778706139671018762343768385098073222080833206189170540215467354035640523350131077618593815753639637941329311055900342729185142224582428603190461668436744428993859537569592073992814194335158933627640547767297358616371057198765734391853533244858051351296678307912076634459397946824193320604217198510790774201186953290223248366436654361319147197556262874376617661679064393021106601674201736908133005612794923298203506400161714112993526615007030570491619453148549789254837733847750661747964590270235625090646379943804880286387622178905827108769465521871816483653268446798401772349716852655569639472241743595312039959178198519610923991458165874033893013852458106875011994678610890283820812834024033351965464882530493015508561916400797546367221396576177304019652584573692860991347135146149089937324594515083351438578193280672143831676463937353465380994843536812614291098434410167247627878566946958902242009534880107627250243914051085309539249724441155148677365903109907974122341235107404423949052325346716282214345596958013099632304590136213013380954508079617513251307664895863628041260122395145428918495713590405001562168295535706906710535509711246695188895950534114553495919792123785554339695034319627630235793187658196073452561572331117232649297246921351452201894815810646165572541482676973047760906611104678817712844556108622169671242217298705115992044042992839742417662465534050693259509601735155666540638271628244381564162236781771470073858197739325622445538064952265232814230559828864552444791816032405050706316700308871553396842353247196742011098433712608043080740873293195635571083444394619326570822144750365337240545825630036980358777267113454076697309359879199956669608119213641923988246698471841602235241143805922028182228142322511609329521766934017425381148923996131672942749306278890248830415575539262037283955132473987198337763062212019029904496818619751313709085628219013026128255846032607940058894901593710032197086884692652439783650762082145289703949120055135758954255385212461590122554968165641295663925292540335332622808080556619326097071906473738544804416211667491766216782879813557872240996685765619200141227785693354118544287862855989908507692181511994482970142947314798224107714118844699688744923910907992887093249348465531224678792920102931253252300460820497630094887671482844053386566157366378031005387460316453686123698418561561762337229830658132627370849896883931976061500598828438147509261899212128302833382082875174975437956009915699628786432364220800459914711796199585325954741136181174196389187334917345900744944527624315420057169247086480235928567222648764613984624731553479260000570529120911388933576946658568368098666330276023154849361762990761429886557537829852854808167857643776328198137491713277756095672431379097105980575077099508748259506635969223586626965857456824265407145794269935200082606079047507389343283212569721708728269988094058479347226016658344724896831571321709799534035665940656489001724493294152178387551988685336208336682447041517039157467278782365664227909717920740326611511110898282159997161341842781933536788613141173088130852462227079820184955309526783321127689421067548310573664575733601263097699104239232376256775069785128331426884926985808027939681805421380327265591375440481034970626568768394055551219267288796841105019365853900045648454577047633628299508903943617851521535151804642482437731554269139804244255896149120814246984019777894447703694302000548966357610196366774486612215215937127311520386723638367440962292209567632937751226217243458258828795044902484054036384081149358228303242671034727044055937474219267120607540887748497074411631389746382253616310530415099541966227187654208351613507709320049993246312662327787108021048699056151097810472461672106707440206571970806064466066702414701578326811255986940774841749000738863518604006237652357326044341299677521542221559606865012998380949923177094374148804669479206104008439493790643182586937712384525552229874553881473299234182650388273675488564925661617282762747841537808150283204877468788563220493368955938736717733169655998551027881948106627669273726969745189333428900414424312253481140728245176292578177540193284298095820690719896442160679757865075879507788875368880200658391560839645061294621225590658508178522591563402350797926134364028198896861318733931114949716421132986472992997033368021217611454786136534405895500254955517627650386182780406423188419240544086611023034885140386015926322329378135539719772138064233799030781390258976871142499268470447139939681495606288400855962010163288422539038431987892012960962325810177402678387118909379515725961005278088117928929256563074379322805653564389101132491730625209685802182538839671177029299203939725003869697030225557868897382933343378133965818045452234172231130680717728717067572429635117273723205920849793372048236647815825044482907043615469077641730460791458125596587827047254525036488775688160666808956151843600209110825186951955790902116635719102982066243326779051476560594450350954564469922036044317900206444679975282178967564416524692002300980213799792309579490902095770458793535091649974288735473115983190150956358083899694640300224649618261466600647242946895045221304528437304361301959004080837882972063897512705905713706264423905246924370585589261872696178242497343564646351230121653945031633801454060298228595624908688513470788590446039059262422788652747555932039458759254425546029117523941924872315844167401148704044377064017249043515566595715274968483256747696129313458984635743105290863765584100047431553803949006321510765886777035376128120679841260479107143761255763871692387099911023309126255154495009648954461969492390892688251422720367347727546007230102084849005485867319175618768340683384305356578440974997278273779097602634126390450809685642156574600087947358684786684292216714323891112463413659723073734995341143827169980713781594357183956481053948385561638289123288436070447388666077516413976167235237420174298619344143550595593747529931662132629130170698731445004978050024916732465568117785225105599222465916609583570699431541978830856733193616561289438094958187387964751519839072573762827655039589432080230571317880632966802438478428365612383784551501210151554627503446109564486504760188456242701719455286106795429749767949016823834379236572704711102371574727789634488397661734029815155236745039451564625940546379758686455133194337962873119230507543115963376698063002913370808498397861552488272218934545199392477155127304385126248407293854109361921214307061792072352212976590448159673762422145749977255102604202082393347161798501651608751123200875756170561472180154105498672256864450212670914445081426365089443989790941908552600034199632976921434623164055016184726567480939820397853418494140796651750215059665066733618513214397163882217371421787083482947131777104525762071372509653976760719682990670818445354365499583341139193068826928920572828579181793826754410918027231507957940553761427008718693727013841405336480211920803841608321000980186654144652163835402149798346296479408204253921938398413995669988018265515716060273889096766709191774004549672088678043845815840753757689004273125536388674972232792864248262936951634270491013967120873886891576413247473602586018407681992618664091235462878874157208537070684301949092608020027199052558792226648733616047561509177873690036106460417237660626762105041540504164949509092695143862847154713008057911575415910368372066597667768118421362514274356854866360351843877455306629173399984411481013656213190527658648869955643209296365620636649826085310617248943619872218876258417120449478439963586968856525973761369677846294841684802504147114563218164239761982422203120070285189624116547639928936902204537683168568055138520240476592217296655610524163888747402668644605740824882793790070034724393906352302094792637376207532182826670888034295767361466349782150702320267057619215848808035007476739055504891894340708713128069041135172514684302161522338267058420648442029823911637069178777300148732228247071294628722557433175371811295173576367968892907906273965195084170539040656826707187482786598804335523600616713493220725048538389872886462416436286727549588334909372186185800656654939949469154771743351897145609131588528359370035725192510697808827204949217372590183570860902162236495440167768536823845182381926535414788868292053453239273974813599928518830266840197795201171818675494111775365249864791298826090565530583460470692003573180276773124357389491721103839062770756571324415974822220472640563143716663379486983905721610039301824888909972356381026844565739796177155457038110425043151319212238834475913250099795800475860464192893139325705064852313333577983562537464924563375734874001384393115619072874245234865600901147234069514515224429802796845014471567083837749487276253307885252249466601406074275792308720547694535461237510309287442757407373142962078042434868166338828513243005720304166424892637454564543070311862669325515629823531433425082887830286551035764412112588956596226266366413578903855363964141138213173074164177697964339502028188556354025103309657505684464496656410138052550342222502279075160149985787158111104343091139677004609395300958153885523481422325972981551844359907361674068784591527133669916521580573194196215745393314650155019546644159422596411396378510262448412444879689920183895895333273430774734353199063021812046758937837892352015572891773495028346378346673088759949853290857371671911345283275538471385474148256722789487828861216828942913952647650920734409579762682899335202310598653372737264057042761488174293621171868359829639166589952804494392519447670282042293317478850548035105010880564961867053897294427210160567211395293562869024269628744855825238838299828956498865202973675574237775072804822157856416819042162034584006105037995931622879896100165251696506641358831752640239813585965216999883174629642452431875837651667681493916891691179021130528284880929933298990792312120883974198366236434642672055312027452563364271082810385193767641594023340970897500312940951884439983578539841420632089615108001044595634594970138920165008664169718124680663681099417129307626911477976957503595235016045060014728127055908268087452066805017422355571485437579148801120701435576238665941150076358845142789753141803872722095378361143248887346221125823739954106399689928913129976203660273843442591804250914927043584740009723513758497369834385257558412368012340850955152372134747596970680387981522333548786057306321528106449216426769600959659639049096935917475312536777278522464272482806290598243207751409392870536471802019571318984674431212983846664173939159596786948430709282499383318863633163738409198614207671740398965388596352119135392833967594477912875526227645509525159530677126638848084483422527749532697410314223488957218855532123854073055824729364679851095669650417049598792529921866820823572801077498324754269207523800880829486174742490798050096631554504124426622872145024130921110004668620861049642603012435454517163770419552434031033024799514182581906999095060479755651677169269358011119127109584436050980187554047257770801958293908118141612905098323569573428524847335166999557511481917797059531102715062368745872955243475246918504496335839931306046216120993158372801077156364153768765201268667975376792329193478449594645765274473995523000141105278471763137239967528206531604130957171737755286546904600747697340267042509265862956640137406468477918489167328816194984776080575747447342422396703308500066814898055204903086270993695812137965454849392571252092139479712986009213807967913124008463325485344487419630342772340346423214340955387618607895734457776436180183251456019789946216806142311548156296571665668158957410302136734615539329005887609604442906661785943935351715737498438891845634935129620855652498094585981320678252907297138539849149922010687430047628688504034890351148077970550503327958940053343613037614768444238287977394717215965438210268259809342261549216502251599269903369675473113241997823607775768405201363107715454724580637599779050533428241845522980713560846184931998007677640428030409354264255559201443990178261710095843359309518154879758037858563876262809086321029851678349728756985383943827626450893536174543735027454278574702780687318066388176547657520477841983066591491861177191953935825496606058745218131563818360413416515704059879201379041748164979690794201826916246701715617774361770012769984198122516413925399821621434704820464143566653217288660804748035676467936570508661400202235356063908883331865704723759223414363729397926578562968313740129161694703214892208968748450132588465299372640111750492953370291535555874994209637121176784337407360765746910602080498048670125653540305190356993761386054377522785069775469789562017065885471026448033176218025200844358627814180906216634602287772507910228420702297531958757051914985242244947252993880712900108279825965551708113386359704183354275596633478764390669429443047169090491341450467455596883154636894435762142864697088542205659767135339153965453785274866914205391561115033778484029016286643565435118244047157144299076351721140985773814338424614577508186517016762926647228760929943943417282616593803692236922079534668187067657599942214984388655507241532156725247149532965844852828344669196673180026670872585764280908051321349764676756536590118240573366411928076269689047680716263825287319063397779147151616084564644413907585698516593012749226645776304097523191064645657098266566042854490084356411988040338449017107923751035030972129270441352433238294160222138714668526319377472363437456134580214224425102334405827079647127734992140857948785625490544774964471618560673822223481969871878604381116695809566590032441681968122840402331123982043150865296213870454998348659373258428642670540280218029192752354799568222391557795270685507743601251375830559370466431938052040043795338159694605134441757899783201313048900033763413892617947623093977259677427242223129769460332248401771371811615875188357568977337624675926476073525163512586651629985342482347993909212446113258149727384002767327826106641207101527274928397135914840134759259963863768184528908563282008146865844634307529609877164821070054420744729082034203312835420203911098678157739099968437815773334293781486563709000563391847337567145343817897988272300028148774293401931637323459890008986471905038308246361371474531039393001992360888294909883630270307210860266686774708522696101098394602728187443242274327286554835287582540157131206057194029043622378332322237925057948242175830061785369560122471278963355626976339814727105742242000727633945722066241640065451083354912377219046690474843755516960540774462461276612440532294738569361205500022752406183528189468973788499328070302535827374921972765335251581147257356352363940184297527836886031905308515146148723742232508614711020441506773690198247123855483465140897027620722482252070524131045203284849521888306091060930940759853109051477940301119409195520889114158728659044937123480291378713079682673234660937022416757027416098196674609232939644497314012527566360750877321633869982542016356718205747417868277507646213767556478161498920657949973995795084694288447276806090805731644931874684169324449564998706518545495683647891103227610664042058749299871149588164129071290191279568454863424820723906626190892806166834782162200943176988238914208145203030461051099206692644253577523582139060067522556527026231796022187952351439667775041290361334995132138803451578909699320898243090855976770320440970512325524873593429781022948413330886674344109161594502281078194924082289415705860016330200374599364885556089162730259735145923213922764050730545721707699425650105447127196051886299255313688687968828795746512640973555094320121350984541191481289528721975263937524852623796673658042138604603334545368103734794542697383551511427020824021085517792009174379744643750448665866073930770435449372395148467081539998002032462953419786232929157449547902644212905125197116097368176836751336555269487662736546776998415480647698409198768725644780564934856524106083095802264846677711402881615456195450023399982318546366575837187589518794986260544345917919647342329185028029412383413473412931902459376501178666377712544071111609542875388096401191968953631376830680384334347446647159969363654305433709646918190482913695331664689183890692996517166561805637318263244649869923995014167043267479807679388234154945019866861302194702311039906664247374929040446294236189428422878685102369649687812270922304958471047631392450481481434324872534421877435441698551790468217088269949471336892999395032404055534592034077482963757711988959412349672214131973401487042353514584848704988686866616951917749330110379863881712135859567164966857694467361866186122028050836021153260949918055253685936498063098953989867123016738938550076822034019204051846875382172529033944815057110132019412601225053785613995156036766652797703327371761660740230529359276528714756193947733169743360246832189996343792420500883274422361415090332556506368363174825043703788641975623511861262791681874058290415003049013290375931910032236871666165030193637081666834346550956133003624994540367861849165861667047116635150886082965255038851481913005713338064708679484516493875520995847748932866780293338685926086261902289195119628177514863403677222118156387323927134237635727868500941737781837243277428891377826417943317015298728790876004846889676911715097713516497157459943365638762229442100952503953256671154532976312550676169897665562317311065719109568254763680341100672454377469227459039887249390352665510070560991668916097266460264831691952271789758035273446010017341391746642877819021695665279886256049922070113262757883615964469800071552324150836800919308554129031881280133375924299174144997494518615261308326883255396511625360300639109124809114523234133028075778537105346979897459105374948845258048597040896863055801664025372037343178462332770125883974868773207682779416282111469993750212658831515487159441558630514208559903850956478176650429401004903015971879401006247221088658262355183465054321286476551522909080210665036889883043010619892225633141542635127955801310412938989880188460862690187383153076379660500350428028240345773610150755835824510660487224782320531354133799293109358176639835032948240227113747414128634011573438037081629532389873118712255274576080696372910654707531808904766234632575265110961147732683917398915002546065786716514631949029622817185650885220359972621055090505483016145724720458105512863588066257515562986876208019309954008208844386851603179365907818854647346148702202655105503600997390080256103020116252853927526464093156132857587500165171796042947498882116930824005656206819779378886285057378405021788038245907257911897662207426029682920736427530702701462580005393067498591679221848979412549520698231186484731966541821703812735195748099217748147343543685775968707655623037507413869112797398072225225942082068203796507912968827442782178747196050246741060244110912576884366511008048037283517956745123008097788262603818794580837788559818243224892986991360845926033040581708869999993268372032167745325958292906209152159944504219151891525558925685107280276490485185084609383745615479709937458115737695654655611194772418870812520042633066870700032183817729635593794570613952708305573812935856075761268904625022235061257125972112659015593972039777284375461011299479958381104739575431531385220576986119746654502064906509104742719692486272990781994970697615073940912262308716568254509923128806597882293116225256831241481807906900066998021206109378215658114936898854565688338937070152989048025325836613347612755663535913468463271241335822706280653418467476899798606240359378582363816210468846690416068577847575264277743291287815296350370248070936754719038951310125983784294249466043622502066907464275589187517077034362404366975777219841275943748795203106803091935088891272628141063253189044700266500033622894272410237035301461502700389361532992055162944982793746829385599989649393978295186113711132738465958738260901421686722529938554971581997989923117531343390612411742695919093224231907539390203869990848616582522934322838934419995973503830008765350889306598851677424865214195140569593475172103786478254532302368263382558959647035741779754451702476823996542520808934871977626078524461444286872127665133769814144619621010909324774265381308866138794846333481530448335407702194277486300100207216489719721673220159586547734042680105425857718660549611075387121254147868118608377165493470095779848863920054284129861416008696752277804291883013895298734820992383800146849628237523174131022452800967177132903390784856279408185874790677171857805923368265329538396287020375927702533503252781988830441273136713193380713514237245393830431963002082093316511712311554247634504754014723163991421662952453645291024260741642542601603256290282950531479864560287301420758415876301677192790040422412631270257876789128190476501743226006204962622887460203109719478539175498054282086757789714289730572569888534369918558370335652857663053118917908167702709029857935085299135069008852428887061292392836424612856808288986074498730419258590349319473668005181338028215473146304477313657151313955015683454694725791213744037204008111530703791139842098335956298046969230831821458191181429233147187250743625864821736785853613141016972263392324620005151678740815786734912238656668758142985122138132691921879770716939563239580836980655493618761037648328426118031364166608999497507219581763610812533449626808670516337094089520968670438543381875524263446278747052984223367061100308512744832799023788888496360623229167355449501014547330469382746930958933409980125228209088483158823751780224259626307690730416242006009950047392618152115233822677617822810734671325172051948735100287205230306715879665570136962564396807451233503262504748353424946917406464164779421614994425979421133871242921486354045173116402273244641031360318894803792962829774694704868031002923720959906415014488851736440715640071193916710277939233648706108695958303199696267860155389021929918530060965884848292513171839945119699118645389545536101240254989915190826889158819672741378656020670593068132311422790262156780155373885365181007049377912276266237515247732074331837295042305274267239786237511161756733933315684881484669809170476806326379896299432784559847928005987210726046170229655397019787099898287992086608790499114392738993778748304957216685052183234071692456221852981791959616801683773578691079251721344400173536364023703094193555615291624513748637446582838584257365359185342660172815213133684962862450036078257336931290038533717582445339998343741900700883300750696888279438955327095310132540462652721368227832765115962968888754898658121665128579782386697096863966776067892128016723233789235714581872611525638646718147742641016044619132491338476196751956821448388215143888221160469993115837596246402023367848131643034355839338009658209897490228663012425712614717641722338779256390437688183651430329554058385184445725141608445346205622874895359210543241474388071231048089138690050257910231030328086981906332192038137182987795519368105023324043994374189674491298953851633139552669076143565911324077923557481519078327533245757070323228651465085385862010454363961012891438515012640785083273290444216775132649505513305941103777833949050911069020084602915795970792925134913130855081522981842518274475903175588841540162387499975074028094119795064973799039434037617604385102259887694225387576580961648778438126497210242736701390468756042594156277160865587183081674792951537401318436327732031151947760909042361827932095143043151183239669021009432233165906449096943991078708455850926546753402898984215654571255463869804191545927772793970117187487479636208096071953945422265566964998795802881393604299230429805217589291340044536090008302693601213925323373625391385088836518549693445365317496516854005128077880181868277140466783207324937471979728252184852291693857933867711797559576879568842300820201360552021157369879864278389164160478080874945534522764007711618333208860445841607852203178423976593832973756359416557501818282814957419234858984048039968243534421680963754821339600438321354882067212392610444649300073435564546912559614491282689690180901325666177473111000027438353209096783512940769241395164918830315685870739679346010838411475405881344641981607740083887450818960278094231023580362798746702811832539673437826217581736229993414700507350624560730066848202535156223890088184698402232059665292971959757952287020609564034733288789113371821483494365596362658347282258877411507551197585049701579956144286149101753638009810139210432012189718458625121051237116338992749750207728214609643690195019114257554659226021584735194413431027670117225559360718362975981393854898182476372735243803580120444123653924136078467022383375194892243139915452703975859681472982090674940139182216502473150693182478738728883284293773899709197622264360881761676637728360186423740187218516113678135076786528844155153129264587759811629016670250788910707286885339327673028593303020016485237476014197567699111866798569160298828609170953952976183178055508552939381528907809619213303600129651307455417388600703553955152737113474491873430919715221586335153614852761056039641725942056512769333834637797790863408289746677458857631402133198429838156415501624246180773899528835287122733046086292397799761655582288741234286006633450564438859061027804981904533120035475132712434874360368444489599545834532181651186393277440660705529258753501250831311429324369706963958656251986002854936338290002006761156269844377502117343422521818360111470096796559490467224524723592250194073952330312151427609023900094404617739988772566265715261376397830309377552676165737031937350571265463358848427025823246546878713062901946820903666471566252134850568892958391570923774015102860786777406905115491807946429877521217346331641962187444954310463938264528395258077756731227895199746692547789227655747361149396254466304101540405133057750458659529348827645813294955557421514551820083123747267336499842355618035954632435999249924443424912524065197841204375067939919759688187049899374295764980749080055101268733862349275928307600313020958302622173881916964015392116268402361153178513454276837754041154053555573721736016093043648536710538222230711085896172412087040591151087753934568637414200509309353145007071922060655650535341338009755418332475738586588947239133644674539533383669241859396148291349878011473989880154836113620727573274713364356554178529094005555146841366211205790171052480719291173949585207814795859108821345360860104002223320621004958723344930212681290126817160085089157386284916622487391436510171875261995227598672616972158985248995649937125985991884728380393938987646137145238932711496018909286966385572590007456875248389631816390482321991965959269570917330073360358526683843764408352678813107980168813055163532091077095458394616259441955108298166792486857896861251433601915454436298314018607364935678361607797998492851922148315044942844360378882113850150459913464311233991065083372576975200543768190413108853931625666742752870953350978302737103176129979350183756259453102841668828486138342648885626260094330633925650981751059038738172490213096184749759846250539829797843107965251266841875253028881399116705944998382131659914996350196610765865601854540245690642511405431386690797539827966884832366954643571440773521341364950765091470887743838178486525548447995325276074920681081912507697885205233019689501266953911531829238568186107328536859749979499051568464813496256406802748067333371046979487794397471527535703718284752850720489437476258294041994676437574837853054096176783987253495459079541572459857013529829406634047052127829898465627440975129484215274080072251922950252311360501694324056917708795181791023037095319373151699028266645147212997334660257591082415391137244686063591723148437525978508168905683740707277329415093337897197981217533295246917952781559200565160875628431479817159390909456957208459171737984054060173186562745505444555285063792041236213206599361304242681753664060235680849143357548403645211783553085509648329421006882045238053511761047406333545637388745328605560520020842235067712636587435089505212271843814954662798814772419291215039651023162829976843669612975257350081107067093293021625981144348615819850523029272561030823132047962514081483966681568881001896959047852556434201959896968323391544639173408575817765430524041782910902974007014878663073594888073217604600163715957532540397134267296146517890537279172187709985695117660269361126011945907760628649508408301880154502224235725129640644826311989778460276768056389077811316335806506149233892230088726390815676488534625989563986120899875410610670102034336964956174953522109558783365591591558897579015977348931908764820428331047899116394252349953915121341928825502969854797333626628077884854889182955566900657105838111625179624120067179460501089642386918937655890544211748521097650525427213587906137746996856361588799578400977150632037347086811591167100271534726845768636551249230218706716795209194184635849402082743506343331948118461420818581079695920121114241539154270293230912755267096535783067949935166252886606754523416134827366361545008634725977979106765276724677314617349942359377093907438785778168521288066808898340067148501423584482582398514232838230655178487047981342541623551423192318374337194373718554670083518162852418670896261245828370144106718723299322044702940920123241046443946275924669763265645316758047464857987512971359713371468762315347349453567707000080269763156849711043120028364818632316703503552459604812069866229846366004109939698785670988560220739568717522891481793118264154459807333315322341706432756010433939430008177484217340496131450554905607002040294287739904860705617733117551280380651687644382968395487624245751947786217897584563935150377253062313405173091581881428820578539675172751857241556770935862838428454016787305690083190968565621142945341501443756645442027010062835009467328152424328805085299675042415706197407766687838115908715979435602622702841896667822086153033109651256964212445529946346812557322165302358471698692339344250962228304451227875179593063518048675818587661949806994098790742145848016106318917390809921678830336707436950650681014799509094945690585073964908152136880655048400247939820402226082929119066150822532696995555642050535006969568992627445368958767708192097981059152492410136521277003130948119288433906267440924347596978276714457979353440622693511248915863916752642902907151115974651772068520450153812555729005627871657817816512809744943991281526875436255391687266977099436458412584123695622790603534489229128043111870595036471801337185540450580529993249967961168880755577564992691387347772215230281846872087487197152512570782872991381152392527319298559383092159222151748503006612196453600218163115837806035929407352816072728376442362285737794677635241799573397640065365501925686327566105141490912978307552813459954818237850071049827987911347780566348609212134243229180881749121777916707422421254099854541182530481098130853851857211523880948292092912592956173523096037422069754512847914312066827744368424988712355621569995135291518312330060456234937744321942334163149285536710633243338731872883110423360487781733630963236404041097788629040684796631975897285992254165133121587907171074284951083119826646347260009020197179963624274332782108242100950031920747190252270919276224507745817711912342756052454543093279210635499166528797524681541501682687237049581457967703920860082998871996396890110109791542955395423937139239308247318940723404923685774759448696359484028114384637649317272507132638478769705454824525503580487918489557313821478599362333268039246266434167035736730786501468210888717484419809600463528666821562782103610181193771783734771902577933278295219773942290996873692285389457569409337708371608548863320291272620595238143763921234392808663677757978715078285627961326801955714788024839150071106858077321659405026785896325991135495377341923090798651816370414038414046940531040256532104233490192503715992297495826910418003569624754625660932107648634594125530450836809689985587158113653996868072595569515227009611911789051722039102842709260994087059567471040124605343411680034333433785343356438749008952404681503330280232333198156377162820310721718677161800969077298516527468894417593473382226111892502626184280663931535605151340347140003993420302613210937608657521421276571967444200022605973201415785969109679832264496229983814569931518349865263132444920736950236445040023868286468992665888370186807064802580466293836698458082693741994642135188079975761843737786593918855620027564243541800107681938234356522177948305142797853234177027667535181012367507944772477452577656705333251100806039463510219168835416783599406841389349242631805581801489678775664896885021432376449805625613651518399188241799172419167032479450846362742645029689063465593486310429904982272265376080169012165989431671037891840407941064254424870316486438066248702776166839424169878735181807048641915452325380935779066085226680263561324964383165742829518063944924979132555758435596906486280431862889556430714173763296771056191246885707366350911803483540114305388086916035773128151385330265407311488696479050585522022569090529110877212951663598244492905945767887094481045439258755312715549805104317358420750241601223261630222445377528388489228089022704342351148460559397373229365095722595008412670860249570480927214998697606004975371722263079734041531940584511515035760792417707175056725988553239695269752069830373288167560098553921225199276489268129269551327019089033808799368806075179318243646949030552574707063336002484085147696230617218891119519589186228707500101880063831426024503930111702510031599305674318352724817728169483995854528797107566625449673391673153858697567055411177349420641638189897162858821428226440942669758233355508020955867240968872863378849519859295517986523231967869357369155455156490615303780610721543179482049651880393403086117055189619184577231611292047313702272145950053459059944496673251460024555896957674342515315024145673770192644624913311068156190626606691066471370741242134799625537765190551658317915420630044873775502396583157241774213629554250970546126979444238071756905904535915438973946614425220266251231050438181478134266588869361909233490223556098605296089902021964987049946036770683290445804133829948307346235471922115934683219058950817295153874559650057690693659330908811822353890112240588588564745209817689090655296843908159711241476074157418527669626847061858740015105363927057761377712758578194321074064003974958501691575695684923038713971597561736340343936686949221197427836999168371341374246335857853822410186033931636667792178410289025951241689281564246772677187020524093611462158930160003274459961994747155709369847208512929169854510900172587913843099536252728316478558157327438483372413885940107343261062452401856647292099620145006510498114414758221730390541195067588025860357165885399235246494684116023750482007990187204086321965451755005965713412024096392024252384470397671492289360942084240421779583230549136726348099696723985544363021198176566304953501054405021921854920432509247643404144083881539614287417991744093359128690098536730144552475964273697635370403164090760882874547944694914919403226315934545261154687617813497086934061349485124702674073977797139891502826936228131935314175860459595453424603400507416232623187943305039844749592815773649301728165532406605155726469582328425282674180835224309896862043693101548813568290770212222704011721446337597883033833325065191623369691351723791096639664007381664833569602750904827039639338152573297142130749696792357112777190622667632631791898847870517051389804009074828975531548920178080124911360529894205267671492013607952678787520173096876312818823829472255084786285160811712043643908067758340235762724730330292083892347976187318194834753335604892271464356892839277705156942181329923924360705813776599353341031100909530110337815603098022876190393345839481045369241902200528837100013219244758402437194487203529500486937466715599210018688558761169315413293069073517841314774963749439498676954046931382449290058710026294141375427474469544539743411025224972805449740305833376641014643728589481113993362731032610690312075292892367138733934409781641828899618792441860192724100986048720525590894369675370617048572712343222868016691002143099459288233339263498951286136533868378731447538214045298854839724381555305436874779600382271540763407065243112856008877449836273286565278052131087055129114389314130798939093771292683895532490017794419379123188908596513964264392150193043601146278401678163865009305204466944596752683957180007050886662348862009450256780982316359687172908981540159375400512484473134723174233297165291473334064076069699599088869641622389754274502335678636615649933015136122945001193322828095448908321052900289330799683257763321675035272354281260565346237307436082017392537039377002395748246305576468156717988102340323011674772395628644686521197828775297190939889777693483200040386075016489854029981715632597228367125283852880194738894371278291515410429633620849698125906322051847516355517970478189651198925161213604830208139480400619559393335998265502999806068370794980303861214551958415746483562631130227631088155666981069684822955699206037007480939203989731388185363267491540055743973560185190053605648845740656335499390888605871228539779769849841859514015419815074696879701375092783965784852112663931680627947165539607682267612267059760876468380574318108308639997641072900264591572331916077758418903774607720294654162975405434433032103287989232996802807775258550038533625851208726092746932558203776257396871253446142420632451965325876060390853432974042601252307150647158191124835020695575808828601801866331833802445720407885030196183764172938407974589178914122509044460024570642943740690382220529980780685675760489737245079089478994259252512738500847724185812943741794452411404404438306050808315993585945492327253521386124921328815130163863278017775749783190930496538846588519922965670661060664979536726820373948385885323662553119876760066188582733786463659012011888788691739582624624415725043850759246619730986868512735640586198430199563380567627717091514858319058682912854657149818041534168344322035333321937205657765422622433190518564841693424180586688780087878431823444803660551706296179646596465298375087682976042623116404513851665566574514524751917205643691645143315661340552594140408616551721664040455765964166818335755226107413970997381604087680929334708448802612228759327610228176296429098987103756638975475265736274913405462004298226367535294273949767526467308479412566942789237347744507129572405553202974054767781057878679070398602691961398270174353893591623067624073081262420894305759122134996855246913323831338015590805684649131684382886863320558629650300221744230004282006059422477161045882194455296390653470765160407769906669664000121519075539591675127378554198006968339342129507882667525031446627970921704437042107509531031993893371365982016702491579160385308856983975859807702814857051773150274522239889600150230547318491584887502452325787119828313273564940033476599262240712375907663234585350467269697479456087154756801600106132728528606041990613145957387220483333876679306433914090839065836644542774256706688424596175875877152373441099442456320122075531531667860076852146630997570935179961884472978988328658387742774509595902536309144279920999581686268021757452290594571519419770090482425857665726717837149782632546202157196670912220776564473374452826105373393594087427168411472125671453505567294792859012501982123589230149673378742191309004168979314700196467007873112267858893401295225350450734199484688095600453213355266484296905794780097356858268997105382484541448298717156544634645439270049964401184135169523521536313915157888768761851468472264405464463328749915124027486081395536387394168366177046858391652526259184179659820579265013018034401963960739365555635395831137351293774905207206566612724263361780568919592553476843184691098493348830669920836106115729063332680108775103251281071693766788014290822111585261720524043823470037082060126838009802362218919206694576850025398573770404898629598557563111096596799983335133558250336217713397995341932318399372249734082553358084787925654749769696568955918144607781359660003749828980218938094211978264613613573415140862186186665842952313210735851613968242864169851742716386604238340532492180701530763279927424743629888423013559789208240388373027171099074362074046136096071710504570788706191612306872062924519712841098231350059079441116823063366129979512571869708492187760818204931326411993788450694166982654137958520050333925653860467035099523268095832619564993120807258656810478697077192532784818259695787642242661220030605235251384658772671263365009986662331923362659848098189993245543810643744493204897715742492548395338534338607240495061130666524342549414453100325244963730289643232021209646669468994279706802742369800363392681174153117096422672706416811906925456756599253471006481264092183258187765186129607617182524226598434749653899665976191143562680280220357248507340782800002286938945491576099039464656321239030331019621880666558629954650470939633548402638500957063621925099749748044070346417749453625640324801523438742454682401267891879509653878599245014231273223339640517266574634515322949003809739865176253922462190102368463987214024205352094403361087116220518951667487844672342165022374189476421943995292925971757574739825925425454655146823369749204818065109524183852223498702638485781538869202953614635151704637986768810374418207879072443945925483486300534110734734414038837712652078938473807937321140917361468913157809251959743026462361925724509788367993877937048542772451710174525300497417037591955379413632075711753846866386222503003192943700481141816814258014092082926153296147832919869250091563029753153726736710650036746651219871744864443990847568053627052071284488846089496179568119706182556011124542915731522316828766395721050446737128664125740395761669658676079433405542137405161944344131221305531890228100729628735009808649994119259591254491820155217897744054707220527479749209492346518460197351899195961729331431264571433874468183903521152643694996075183238899734427947300079635327795693464450223631021608766773062957059482390746926215116169255099385939439833568295146741469233632835970245360608855709453634174665675067152416747610349738061194369247078175129920088296512840453369978518063722527771451254718630339972977319326909166721082549263722360200038944827631304596061022033680458606443933188104416887694087763606602720519140436358652559728674095521129640236191673736729215724576953121635848427824353875883589875353316265585912878033187937343054530557265600836897846341719702724266560804806994384383025949641199508017460529250051990575689245096776803168344885767780615635382268556189614625514746193096210549851611005528513821321315773805731526220277766687225813204292548498615432712206563979043300084606640149457354085234733756746579507607963155567370476351213286231820288882330958496392166728016397661053916865445104182414843440367457686072274520592759692479859845817316207599797061936908673922821179437351628187444476889523090962843268630081603920383205141963139555473762421123607294069614214353759945290774337665742620409855597392105102003951855565293430905252753655011754350630613812687433649272758642834411908874996582228457409978342923125475049325498378349368783072195230479663756581661870478008271481845066548498531083761964095104724632520066983634150628665892514541909275137133695667299685804765708812002818153707364601776612663017385418114546924633670376515520620529972039956261396385409940617264746259964417720396988458916136614521800421924441249147750517155544816347803775634923311487762800416190719413940790357923835137042526933168899340636780328246592194172150954281881256475712416458111192541285960649588734708738815885192641227802562097962301070541455614716262551609452032026266593434892156623654696085429281407595669409633798172066942204300453674407862423250379085225182358437476083274353274850131844128398929370793815479843256183038986312690757094793120882135783485985897053816371827375537512385300456456181116932830299007302687754722302440255265347670863652286380832906576275568984186165132078309367476109081730933193961621508070252616640568827425235700559953429140628067893727358170609228511304485079779762436794244004040451468560855570546278109741756754975058217207180176358072422145118175491655525370276655030363426562643917065801526927838783037047415514200979964848743486902417528908586381071130500711839483496605515453117693665086269851678128707759747152539490555401092010845907314563222060948897621171945635344962131626175998692769168774920235208355747268779435014392029272569348973710079483819523707466048749613510311650514067456378245979239297365917781861783962564565085260777713069768543668311227878418265332654751802682044885355981101296693426156863751554343162950104398646583125371367754955875189738771291982085176090385691015055804086382597223823638185907998148797059410944401121621778502249405763196229072829690383585543337398689867750099874909137838859577810899210663346254530164231272497360080371438844882672971416247661179685283866172752188298596603310627406096571763123946886506423068040146018596238221102997255638977520077890163570900472057589074739156809024937229442484699259241756915536162305710117714979676270956119723324545891274453551370495688496609192863059058762133434605059988935029936956164568915909357484883517331490913187869882068856296292568942860907899451444333578249776103779814042141249667197828122003050439137892252771011523032580914758065410751267885020802806675473738098708647036298612901079204258707185491196413670199391522497498533100715203834721460534744147710418032826296370402973548986542348352565389128866583074627840103165870966094758031006855328966963557526270997727792253036812216932044926363412821993734133853113760371403392891629836064341344594974508356938377108209998068702701945285671089551849498295656027878885036839245410156059094004545153528674766637369099438861717566077373789674021765559663350071227875712490404190934622085892883812111837704460732229452642859490821335322352915226470636842996586414850338678897539416829871106370221551792798453810037452542744317021999513644908765736391205891449116385961328471930157291970893650244720058259847966002986220757747346789617388369818346819369111146966023723787427027830699985906953307591505463005450054944630303717670222709704259416234296054019331392046561750443870593442016887935695367531933954616673939232383060783501433802652557037587561224162279221957950542352148925992116293515016003001895218345820568886871150036767745076235203345650216705284849909752517827112830696453191551433710876744722207960205167211433948305151764922924343347272364675116756756834943474626018547967849365330239825190429747628991041378141993022199470612709888370280460611742344251371736944938588561589685107550839660601311461005135725655406408773098823037136620619044389597661032189751382830802073731884479984062498995161142308867998831211057633831479141649115240941123286776117261843046949827326316598202462994628830073731409679339637245843141991479510401344020916506763165780983963750040328507136385967993640063066823258567761651017263376554483331515986696264840351517811831795603716015871807460380579832934906886328564657222766523032928622554064710511807386791785686958839417661183738187005722079344951317079558000814952995246941753250303020003247003029227430648657037286334324756477093779485640202087605190192227783000350971522164625375259197253083766421487908433439347961406524538010821088629106815762090097528893269580493349396273639294773747789311697975929516680429133418743338631175570110678290158680689126720462701411306481401496621851475118642817220141403904884369070460093786053513994494332275743236414128848388320858196284932599418935229011998356238268561394836524006032015717404210959367042142424427117283230018764772167734066181831043404421687442732730736035037934430992351893634235512017152476205728227814809744114266599029542398686748086330318130061123420415451240311381822141728883856496281193679641248250337520298379376169118650947074153130477363975744880173645309497904501550234975579017164952133000068636652724924716548284336446184552871710990814140279018011052882297233927990856851851781374156737965784504297147364216501253707085794866545320621871203690098219076216005025924512224213693577446978357289927981407767894635633235852081860255830871073214700347771453240691185919840253239324821923687022269206006378100324829173255545008453826950502446856032636939871985418612732197850901069359170534647845757040943041076515856001268434690606242681454910268416335528635113592699693822905379119936720648642884709341986227464947651291232237680040589971606435386716708362330129835099072201162911547560940770547208816219325486931243729028613194440609223654688671169049171533398476431715378123100802246075424066303643730516557471632587715379248495981079271749012300334838223903322590661709262408564554737097861228757824296526747699307889581998850245289916866575221340625141092578922048181456743750645065523658008897160774390769094900329878375324100982192806238002538534231151608536857981070766730985340168102010894096339962557914465333088209921913801826827481683073667801893025105038247970864710895169652702694270011069575895867372765559452521800170666815780224399204373397915756975485920033483504352717789081351282357206899188369922031393020014568440545577739944691602583122861367779437739630334924213185062473932079813615898527622555561023881340329160932729396479296739875462821460313267577385513541836703149304164325126214953590753968781974377040672552947011951404986042286572770177945824644519003458249640871955215194896708761099583022902523791570050465258761165611566985095923753411690462113125049539690836516680077944523901934862774711520516713302034778219436583567999599525461913842182488739014730743133375876624466209721951676335468005188805625050808458920112927913689637073188320894196396572695921577708640947217270444177424770909021690550474923893274063084553873674244889769522966388888120230212080255229888883489106098284627060041955714816907086973939336491714206687497488697411832760260751784649744318476646113145160242537438691105441343290146927198744749785337956746438580137687507464528461744255696087936151570608576992116093666780483556033884672797121308539950145484288739948215583010167702500149259701800581705475642896264843261460638993364140751109854314907370133789496823663945013423772375191898263965285768624628473594463260585140633553648266391015832513996659972473939215189932315153891029664090429539067184773574032877374457943092696538337081376025617503518346659126926564663124868457439060474993938471131425885234478605551884728555037502090106089777683409046921446426588088272219150708228830188934651562992904792221581145210698465091638490422938593955557259942308309006164034417139924150657440595699550505268743622094536126682484568710303086233964650078055593473838018188155263653365254806559978980132086345942580626830903873193242773547126005822264604707488335048808621382572340314267115539603043994901846298927460050375458537077047847972784766648166074671379515532237378609746041061324961847530770364454066450269122925546979437452925481816582812172106880144119025189457266996908719950513827702783244607925893222078917737101569716992189950207728329946956274710516841717423594456205694760051379365822718728580128067424172562032082459678031864445220272135921322112516746411220336119071616670191375576127549476284349113601263422568072387195819139514401198810165123857217293177322090653661431089857318129675691746856085752749687118178580935166502629930090530479328965281492632827615879934387782006646689155021902967440192806915448737262175791069596276081024316100892698316009181982806229858397860838608118645162620769558127688805366817383158646540285093139882655334240709351459449183329243199306316561070901368408253153785104794653784807908897914406415926935949727757071519807887685317104408531875473077457191109441110197594995553871690916392671596610764100567281341396858636467372464856461676144572300408104251106336624400589609424351342820398883027291534050602489827042122098685755308334885138654519874683492957657745442950111261341333379279131278221801926985381132621373887193015320621417336996587444146610579809348060424528078660901290284237283561432616388948244407982401882061630587482502225347808530023716437264800173001228730569916053339773404622356895235792200272986859012157234974645252269352120154277419240137692459849538781208370088285949343380605053190659477387545002873937958946411678090828867279119177909526737706139885568069484687918344271992729687829961729644324524805535149370875395254117542441817500240746403739928651132117693776430497910088924483055841106455675335088345995668105970478038676410833415000760064304294533049524821549456366086988015998988678050574764684783611987492088173974238034434070725347761543223806506811408652764985592633366303986407731704037754365039362026029434584874723727208355578680369263603266337136580363967330683099325215783738056421214114024168031536602107905615339010569191766375128308372088165799030974650205553728894044524545855153710038392748651417880217954494023769963341806729225541755464202526834462716568465212690269034709613263525828365341180393533948681479645281034704170641801330853017872319038209504070453223028333387001686683683414299447438663305753506941256360862785609326847286277179386031805184514468857403242901875280482575230059985061472415352214376664087172633087942827526365280822655319692389622648496778369516418678178276308964358304980693474020985824514007015444744742279015932255349103525173734057469838589521697586212976345529378355419305517609376360128070501608851545650319013969228274630644214581843328033270066256912955348385800125666506487820028532844954830780123090345117550728725614243198268848471477073217335494436668701504524146200939172179672727569508212508618372845877377567176707484777667957608486207852194420338632078578468874118421784085549285135845135191523046221446996305650726084743110194224383053401102483557506362500067834752323546264972821318900261289276503704879413028293158431044304655196711870203505521252683422113722053233195127861000503308359435365699151050603729165683264228263007308521685197627599679950830071445044834267404522437205995469919286950176666285512805145579106088893690817246057810039742343249195331404184705223765599784398089639285912795592014817794111058712839549398178034718570107161714841057564521537887830251766591352085515780132474373330786190916148851787386650391385409929092872295806796678600531622827586853884661932602299413672564426895347060363210855930599159955437680936641997340734295857029094623850631093947584351081993723548352527986112976170950172372971738205176058389745360710405240869359366217182317174285790621455598855875249045943331985886568499422409653408775630357271794500910893874706954574162588907454835985560154930389908864319595508363310951641150422446397154359559623287316136048259712927498569982484637449811803987130556553094465638034158308900268617706811389009985237056428794886635569065970414008105312318797685290686949429324071046692925786513601731735574087493929401978038813869345258419525357902838767767230920973998482880764571534266163033292328597779581951969499717129391422366839507025724009035821977033302692532147420910863650568142114369221390079131171177741056742128486139110094266402349125193277516189700546231338018994118704223963504100205957456662810199746911690695616923879693736829610868693940542900830769350936917220983079224158384121506257483915328198396051058485133802116407426471679738404853400130195527992382858804541494494499376151436414761507792133867365328490489158139118097332738266185344749060131103237749024270231852601577210431765075408887590112916659737861765370564164551204691438435085493130807711566961930182420844142368051791648182557639249698240700098595388853361452808397312366403813826991502227432482351510917947611242432038213642021388619792486932338584670424418366122954677876068743540071707609862558669045818404544127235075750361466872494354170727236855360635045862884897520634513706157247079046954660746702210116439804400649175463403357975489806397076996610003471856842033294656966324534802354232761994878660697913953941190785645087357831637986412392542859675500728538173370299290016532043106361140843121212688836533567041130800242387932191966306508752555735832296252964278194579096336569743779767767297590002382722402917849769969110636983859934245657096273900493276335845620526520954437332200312446529615666278631362958814269739601657731157125440562049501998976269458620145552722513505618165070900097428642795060670655948983195523148968531870659515196237244524021817551191416839316981664051754141065490941448616393239349871116043970766907863430245639842686015344730231010261235551339277958956465040292272585979578319346787478274605435642761448823029100215279759278943294002567740198708794092266877319157674562986095893230038118560642368455454208035765082959091744624213799090556183096292623010388476828658940717012284399997345468880018021304060453399030462103638208798525927234840060459446056112734379027362658863800819866179435360757365834686011455808841423400838380822436078077983196100473163433401914398848515955552528252558492371427498442589147980518814898862696595851501672655629582048566672500195730050765322900312399549448192025272726284394490926421397418509631094729877475962499784031218827476168038396637255256657439302526911214709112035928771881093155064505612728082399420110169353997151822672796526341712384739495752372341155857183118637192268049641244581963509032212849271169190178780570067028099040704047947155616314752227553866885648582403315156117920434779333735945422977847550189595197995113564284457009833119617839917314620904701349723818534468103969638943670391042498269904850972873481600055639211064938049302319292168368126879103616322357455241549997944844035407281877118981694855608714089142555059342464402071249721782760920832657669789571238927047434378711140761119607831134086970586104120213337113173604429559704593625718220903181848607914924962182229425343665685098409815134632671166718467356152913708310025898911842083712152459073716652739821008268096497202694561008894070467950274990374311699360360900257452578104602817147230091516981995479147523239011188773729266447512671921434444612274170687919238387155581806719963416930998248817746892197533028642676383741941930066555364471115107636440957582245991023635171598608051582156742777693523913500257376895942593847538159924512216198203133798534996270483064982361368200544204667119529687818473481022001255408424801997536929813748165421694897296421094905181639233157725835196512110647032426452968982310221736139740196668345863760299335529276290453518616342424798242348768063544678974382421919103157733872805452604340039378375624962020395753142322317563300314712523682016359125237622913134484332545701402642341604021768982175347210120851788429674837861254084150514857453409336692890889919535115817717203966917037408554187221309721156697386358233093283967703232065309771521975575776164821850430497116018372093717940107810156771865212132832031065355069163957665983071768688581922057428725914165741599306953032262071595730717537940940301614017301004961192567543569421512667053941897383153050082096854984151949627525009906079274984331271670860832150872452978279283129865580321593839712598442537023456909894361316520833581890480999541002104638931337046041312696236320773382564675297915183589241131971936598989909421668970874943034233738829744115138298272625282615661750753741825531909245258050343945897846211655064587216375405230937410916498427209058966509242634233199364147316026219059802359166101617606628195718386298892132021235062055695207318979731742907067895564107203542499371939454929503099802586179409821675064510220081837684277444888631500099354827692893131898318488898722547427325935226345687872026778429096730162800524704261458054292510810749964653777549291353610468113510663951113708465200811139219649476202433388222290942884866922601667864670032048905770809259833196328624521152847333177385989879824072957516283241179923025508375958350009556023325335514787568399852300890579351906377516312134268736040264123482772696164827877697656229781998186145934581458943637801872720455328543392801289078304383311472082321455274480557184424265381387821629802738823191942646422399414065271218718352195168407164682388518768197264435612520931683431263447661589538402144221204122929556019689279652527431000455628358401894859776387686935473528678660127529394466063869918188030781419784118191178949369655135517179029955227894949889819635941270585020621756306758039761307548899846103700898451915344420598637588462517878059367742811968757844406206281181424126084964647953581716255468716295924377510502979347133367270160561168791525050007182884108502300470199816630669787561761128160515990250997589519415667661880605000164136355494607365778051966559243323051283155750115432002206312067861313110920433535257732200000158722740523314781804080250390070999741315484753308310679151272530282576926562469585792191001098034446746697829176613458678949139791526630965100826869262433913300361738631769499047055008272494811103595878074411959980210948357709307120479465693084573011089086188803093792012554149173279132257772398676928943509018176131453065075307723803620906243909445352264329443148844234630934957607411839300518323090786913722599434692676577834426740039629516976718758665530520685177306406940996002698405613517542842675648751557132389951529219302287472022674278202822491943353083683051251308421565791066999591165563103750120610881356070315602913894594520377787982441406708370887645935300026197143010046546676326851694192088694689990650248804062935893417337122355445684262341911836700154168662056022428909624986771814284519433241205657070292580106116282013424489933404007697676384884923044556529257577778159604744475764581933617737939067969038136565433361230768743340838969722809220537677383580695363891031511674555080112730904754635995277579971841950850189434051880539346704816033552166862500107474982772017253959091894320856556004343750158074517697791823657248669655627741235930181261969834942753669983674925337555836833990165012818020141455357964157448767583289509428435253455254431086923562363439224858964306677051531697319486030676692736259771609103038789817201598907026568867886405689359132767476199306931460382035992102951242644429439958104795734130077734196509501917867265168006208066628087924182643869209908942419661799088433273542867854104550525013735667947485019552354192805194555184492563663992587285063357329518935974331342058185451357510584238653518088508418379543995453074719489845087876516051238766692134503716475066456477559492262407313234019623088375197133502446247554861187044356373263487695629870317968261293124054939318822824907524148988808559626254747222415551854337824920815215867128888301253070090749026364650999574041898982109470707993463371826332896204516911580105325779898668863309917586583055860055436176780652054189354067706594025436963579078980459051824395199425251568896246597483572540185289641069403177982218297800872041246428653523619512837141320765679331193191466591613423932643569551645082005116605148287664084474083082058620765343027446584187589341043646848538089510999829438490933143694162514394801249703640988428909826661191824064820055461044887313005998342173941538873810127266735785643898361983346459261275407250873385734802660738273786326134701941867951241251127721951218490268841767351522365418419931837685383198558305979313041876756172053857122662880115506131982533891089234125936655829629694198590712190904583910862463764225456014588290281136089755501563184917138355171035762092206689746976497470001512304418739037269310158144546223941011996592497076685680743477423560013843613899248749812864381716594510402401129560059146029519465203966049002811363954912265165131202560652311331219038106511740667915959973556777638493829380053574548495581359547336314633650795115148884382272731020075898954270838556517231875515088395131551498147430405419760309374909805850025896536683851092450864882954140567254135665537324385880489144510288569662344395609245542385680411301567410925516558695068953786638929279116975933932526471440065581532188751125518091912555638272273842931668790585179813511174966020654931098006277883500031531998129854632396825070044987085894967732750621358617274283360287313338836704294086562365360337450706305724729145485757642628660043762694861465212523383198208688249905358642015433039010377580507563967440978241848374601450249608893411912695491898565430141818727121065161503202241406412739490607024391541968853431737397869041343662436077627004800793055585843976548402450494932153750082126673617721717261879205652343279702044631141137424568221202772814753389381240179175355015063382006762966512010575384914226952363230895161981680398870051260133036079547504889468609817626007284283719462155850981331997583845775513001196208483409978335487336814985177196003063210928584523754201424119408259312661407088033087626066673215821702338974246039067385292827085545059353749612014440515577518462156706754283713842309548375787243581325981471870789502886096557516107648179075707271888740632633449545997415321874280033719257156096131954873296274202511825036828654719000322836018589624301960224475184438235540859284903786851689842923778505612549125744947552311238959203768397463383178007215073569242445446580751878149625114390006068191875740600521012084862008695594278801019333051943903963960725517992148713770081034529541068696564315707412579114901154966867948622635147124015380827823530543502329813160951691361575666868698925406095542442126642188019852727970878011874744389429548974067894337483197352178535028313192944746896095086379528231743487578724892334736508762638958751517362908464284653764635529200593144639585400663791199714369854837982439667692878146422191256767500676667412769864924240200706161670290639598289192265151148184144793075523446717733223174473867950252236034315332451359694982961770842895030551145018204095082285196655027022308989048578488844824529610548576647339127787017843082988756300411363803655778776197707188871154445455971167610880495114736999748126599340055353890770375857774144779860908613520089018602651178601841449576694865634223050241510759036899609740165558067398757894035964598931982917663626951124492584099719757399596866459900240104930996167896110786723091040536694220418213346767227791670068572920184079832378629803726250329070824446920471202728769404621532984115743964025043112455447742064398186616344690888364704723675904551479014191359058550177537767116318010865075031894015491075086767299994753092423069598913469403078192182326021559984323753769589582630367341347862345022565894760595794148750104898896785287229372254906165813717975261851929317625197486093607492742240934214618854503055231394975995155606305471480237915265038591589584221337666004352313065685463095843968790716873260310473547219111974661421860993366200956211192058320450886759072185385778799493525565766802850346766448260891738754317848227748891487501836692786073507011967768618788144616021053679002882042627801365315346900885368000131496340384479187568867496239182497232795102876130667711421814194992975127625205524397917400506874434913572839965700224246093700854304924874993375977671801107405609457149902440192170041013976815065710275856668721789224201657674412014495862033877050055619512058560753921152332832674680740943066094141362803719352135715472202196508521971973998568555677611862549477102035167909395548431297147120052312051014844741789543804841586190867899258628906912391877565879779552558465331024385052528013773739861762652156286921737655867719548851393908678319915903974754791303644066618647778702741140674281683498677094594883116848255745689019533418368501024334129462368481429374359474931231079172851037425241637673993254682066317459685994286264635191234480636220724558927994060084022294966136430646147332188856241384699174058509444088787075624489856584629389403218850158241538079320079821876871960372072921081283311847363198846512079976646597718474942340119620151150941795608875965418329023238787505103495010834005695959659732527179342658152694502751033332962765112142411885494897128188022864916806667306634351936130985346633503145171629683752059398906785469917225808154069820030202265845382465745528952230745555122483679245606570327000229445588998375925740757436903802836554997849925346708818408714927233886632050371529223926351701322089285974827511393253294164384713993378276426488067441138182894476941274628223744529075431979178587942590766087083763782097897274759672342054574482266666327724168286096104876077888807092390223206944188227690485934982598097654099018125587657996197345344552045067839429464964267771642175316823399043355093373327512044074420528753468918012454299072557063746131733048839046166630567520413854821591883490677717510656840143750250111210182249830958738224091918495983465507983245735221609720188938248376875210924908299579149961548553351260180987339364265798310598173697868257036533711367282163342134954981507509917696432428108068960793042518027434223860876702737043523681722319947121424024673215603771445901075612627700718026364307522623205313052611291655537541479515338741096155958178573986105356130349436555910489347644246097802648344211833780541904729859066618926459490834284552736833172273893182272896030440521909890662816551814701270718851551402419816455828522809378285830144080384150195934435537380360643209630954286265246520059347632060006568229594097267106265460789030068500639774762029628578419422688888592871252770302061155117565441868251433472083018774473154955884109206148127880275621149631443847200974972976364890846633116523417350808670747406149108932056906727393318172284189866169201224271332237503519103067028978634039406746068217982121303378041911866706690134063231350213015246119765146201883943647417183121838911464299621076090460795883017880120899048773013310402476720909469738265622959084987000974519433051332702485897953573316847176496453855511583465714663121024139622249103963215890099724454058241802050562895285488299120750086698446939857309688929578599889847003817333564452886642529335094406043052019465594037116882397549759486724363425522480302658336543522056769427865795860015909635998499453593217952817144774605074930370611679240018884539371620878357723798279370535197345245753685227977044908889260751830560708378540967809147189163777437435738851671883155924659753723146918350287690105995090482542843689190552772774689838295050145305827330753759995322894809813836962572925527188747397647797858112537280320547357948664551538088783281013550535807852108752255652097216690347815219651133601700775828988537677828786359837809995836941334163401411213655501322341545611041510611221946198816675446610471135002570468376615458612086292612567619519016392520882197808544736636319772958708170755673114658271600936369730249325997480379686079775340616737541105232170338626945046285541775081319830729314602430740031472131767924365941658908793301559614725365278349184594480957856241456067387022878212664589042050789449341781732246535043577252619784455841205885262084138916281176875367169914917981355261786391835632951941955778264476422897342910751325911087433537558499650003635144044357618999922762063606616675402260222371013014620393455659573292514026245723790330900346348516275044429065683716973664027793604595079818559364451196347873357648747694423080174801129547932239542595202863828828664844119882151313704037771138832767494044180603403514889848081725268841587177029630433795153360248824234296108857926206805099785839731570077434122485346154078308956198923088146919940842947682658932622549921750201452899545876625847195697469984629837743666019087556742899363138569609849706632573784719222249181346624548975128452528196300866892926295104210567614558236761873972506682436867157991774284317530526535244331693428409118627918257608443039295737977957509140605847821730985291631107153290836381350758616647506974117481446190590921609051864711444240811379418471294751118360322371707179098179388114591552798623343428457540771408502209481595586288298545900648678227701936101953979564535660342451032640552382374333391997564507755549566497078847763076290313863712949241525198576029671956042336661759456783533844891107232524791829330182324774250927359605647899721176875391461612505990571925821145187028086073694803255555099037094248052016000977683450005552076175681288323298435915149781619029713462264670716132578571101455902991300904365803132514327748306422305650168888878277581946145231542776063126716071533023953272803224293334681625139046894039372003930009321718299762178619708485056269521488261235799939303705288094977554237294521702300269049228399368377608167366790276640315973914823977452010430650718163430548670660045360469441782813253608249861722292263204507728720663656748477713521238291422280879169852638149521690002548721554362708384065757853829828207736977344015275180156856335542248027345973753180702272312055287782403603216258983413245883561029100369881608453282465458326451748894306722378863530406629038073954960792983589799256109474452645176294017751700247493373950561307186985200636534567319567516168787287061145594886228811229476327375113854276996939580427065771254143788905857307437561005438370469142407883533954932066765892202975424452422456783445674869155669121010404504023005576647531351161713543378011321057117510933338885225765049503987379471133820185512132630321588415165169933094511804611475268526484817392201116696018885775951658749299037627357855675916535773078150106757927120485249410159877928371685346237270334387544456803364948757634896738233328808060079230666950767109259475653042672655820412118391457415900024905919881640931270589024082415473012461421778412169001923644222664578358732790145971665670828501074489131494194694555793452782697154552188343475105080697192057986325636501928970151336712200225492425180448369979908092985069309523234096152405781306389356349708826536087495604195556760250940237971813138544502458994108675071754792020517245929525370947714940347318753335151139892291424303641914484892221013167144532249406470226743230811719500617712852814348861663872757303500878939247791636335913284402725947841035388715604309364685775197786484973226993387268208615245691243505062541204539175483801459446051960613426925510725987945140093779364540448789503770721608099430111148497993660746673034602469756120563613127253902720785508558288422512247512264493028631914348571179295114039473358708140541965449684475925948002981304990355867680968345969925879823239557620110150685237337322246011612612698157092365270269662572922674337218074317572711772923821867252819451298366579121170160622985952414585594074539053444690922312401392301282413186320638248375516278842493065652128447555496161518239328326280282499334601869228249717926291568090056899460594055837872769388018531231885467789100362162296374042580474799721077189689919178222277529508671686056145961457461795316745683501176575176454640025937603860517867355088095507931653805006448336204585400372915873635020795177608821419093431321919995938139603379875171847422400771934385893597593176581684670416362005217787138859373216974825599908973908626843248499482580994079503762487988888283837903801093488494580642673192303535005706264096590230247838156905198079736562908883864219896193607531493147445951249319774236006612598889588576311911931876666287612364331674513199781203486927990531853776504864424048461350865799037494756962050291535267589557820407416308271702479624260890128215555357601210692748720211513727134710849403816623981354410260815153513003883193733244000934695021898363885357647466344866225977004169946624384068357953723456326042316359418001796180831638687754052392991135904668336860161848659004207693342504894350342262552355473236593134507286274235290230371872055917754869205424748165743255388277636013491727543065596718830613185568952788978170869326115787750874169976636608808317540996538226180586548218601188544792395953551272902826501467754074207795871168980842357328777398806523779613622927654623724932133362125300622101525752803994119233067755098899483659743112693482792081377579843173596811625128223798642210606098371175005371256710347947860961294847892899923213291208652777561343419773229108395609420468712931813775846534338475959620868290906332884022640994223325879518110617258318486213493183940173000374626298890132046422096679234510130774235681445663082376933599810348476141728503778547385515136378189039936816116659077597719077318763483202138759224699887266793688294029729761801550583224550707550716121280790288795993604365000351222580160367260617636765664131624545824457523492641503074696142117664214005921851366614464912620142520082975191678620348922795237551592323237324113085510551725168782269031223179083325651442924421264383288241750338541979166376935935203911150515207921214879166597815174087562441208595566592776739640880763227822051902580312227633197174579345981062124437794129940866840432120419793508096287625986296618217046241248387047605289989724143606873186574591487233909512443686038315192565309376567644652611499910953610784742903442841991168315268639450853990057023719179256536766761773327381460861610716928840946137200006344399364674555420302340443272086392068193519320506594924659018283341098611944879066970038975258956840084184751236916870986435095925715015000690619263140355225153712370115634359594672320220382917871166009798917990466589295132792040277599282042753622751353836267586688528293781264418347325964520603922146048199945753338557180595252680819011333202914303493144501353673720815400295456738037020588288388989109369094784394271462599970468089429112180750521972068828712698009946102374917132976269681806235615675856573392332475513255068588709042387469394911819025785053169997239348465576031908299045676520986726061138213471949444787154480388849159584674996717390293974022908385591951285754780117265811474865892883901474327791096848033478616526711184849939390009081722179481903103023650380391738890440183131402768603357936091611542464436764342636199527270247639827136284570173441884514997537246645392110753932204949552421205498873708055110549803956175300880528406414388252139960412187838343614214791645559480764988402868433541312099325308400698383744872778986719908083159125005888598600321277016489863366260930277371452845284266913425129807681687011762091015892121556160691133295186400701546081004749194508458061086915295854999860631572414074504407624411088638471488887857898100541326688075830182155217939030734499584951156751267996092976304324193129604949708220518252870415297214205615165959109160709519468468398277976187811284781645848354393404010950263061325547785195220562623688352773977057672468695789861562023987832480859118329070882555568939932192849935238492663675250529809738707217441293183577089844847118872616491771583006830616462971774555530873286874175492611078452335058776515439198730812198786122224259331527326089579124663909742444088916376225063838355950022786398817814026768007774341817058819397808011811387833955639860307321043511403559256463914036071107461759111707920839263659432679313888180022977441001967808443352531844910452521686937533776790362581543995238645958224125340951999553090373285113355401848485547349858937550889967662543100425447986531582253348711024483851773470049166337165305366043357610508908192964328850078429583182537826609796365208873958049308490745486155549779610948251948093454782319358528330557400538300745596442490255129384139040256840423948957593445778282007930198074279567800237675798369186711904224518348685057350011148061662218849737446416529733948009669835007451365582262233354220645340423870258615487754325241582288006781418774809517556384213825080692139741319444017522789929742491951535410976467792235222913244577558754616427232066368314425020644598490987273061184767078624469291345150564330659578331242758067672251172378510909506257658272832349334393217988068748527327085828240660294798595990962268489715005501775802133337147191510642896068863964026129360981393676763080559053453672172936277257851010706974765176185378848560421692720538417578814053632201671888745624676256571680995000566963810424814996076589760648852008150934057905483170882921271067389402774873297598764656025032027636501387954746182367557065044748720036285619793658023287936166809883372672015143132768379450101243677756019662573969149251689572645849889403832483219876230952828815000828578140867482987929454526164529464234375893796948797585551447196987917582265145306463123882091581596565719004089589995008947645626587015569304213946462897934969712458640488795984385715981886733824985244422951604606134359298648868590899011591894665077171845923681875506691094862027243741371714537426193334050502649728987481324460878364166880865934378581755223594535751725589209313416428928477130575399671471248070842174832559186730412551929243362890241986381206853572097304496294484846162691939464453044191132250890639490290905786405591018255002276222119622243420302790099671374260971334423848604453761414714543718968662451735071229548380469326971288085909709068002207841538232156413378828105013350310599536649446348073284565575749487450842295786358148786532017780954927414340095114218748475725062749038881895864725292339462375410654361593680079901108339695650806957687942195032156649205720836514291238667673551068343700454507736204100569909701210331097701212451336122295771760654677757473509335106946791156347422199852596803754168909975179168135962991296383761721661818736406813530658392457027881804333650160400982869518283451746461859629333621806278973102262206715425840063088212481392474413500735251277821963672045901997579420829523717869237783161720554494112430256465758966572670075309476939011885983365028195566868808983029684670264360773467763358113833804169971101303523308536456390582889147861603634114934135538499672000382674244989291746696056294317743738147468486499434008355821122799425850280780075603977173828117843062792516780566965277495630203406858512042921222069295303898297696050755754944772329322379450233065147075704941641410381690539200792246119746883866729263415918856004953368158161378154328357735720337515019442894731336918405282919162713815240226864173670937942114412514593506784208758734698833165977280526808640267894752772259874485833855763410714678133541405865265430604501435686947259010820637468885014446084667186544574141948086740606405366478197241800427709469976559261220619977847030357851494153032832330536512272051187339527493565060727053243465570164162316803157100597971200983201931629700701869393450537765720392019906957796945375715841697855717126834943822405455477346070332915654446619696936198485381637514564464265226026899295270627669996139128846085340906009554412160776857090950998137424712734054157509510976592277977001815288337641807322900382901895521994716521960283161937075122784475883550704284316607624211842399530438931878637923413602442260307687613519779806427184255118942300584348836855099192194677107279019400088169952811455211333581177150886189227650007739696409520173727513091211601441649974309714385936702373394054243088134116046527476783174871789174468894213898088948338530632982881004443596295742958158026565992518227752836641515042333577770223438935719327200554562068627602751636853962211712660003070389425397915831054611495836569692794597288918427945371049690148690758162390393742268786085387059257462333718932261526356852135034199439412712405454076255062051686652609747092057287608148234792526469176568591944407150980658430202674750928880134099018725859931958447139236527902431915844179224280958782763038064025446231424626001515131483638545604607214267873402989952973021659057645891305935458303206284060779605343101246698035097680388868951730819103619250787401931255180323029460159157413406851809839609101108377760032640103033254169882194198150112903046289392353784705664399210441403746974024283363019272751645299269637139122056672742826967994674707668131594563102189362864383308707240652431840165773019021015364525176916783415793533410621280127065430116862323825786108373053693790747352607626062088769469879452127939692080652505530767459397116713813878996561375713416171598727623427609581012538221352726888847608133245978005252647390350480133158875668077460053147643972679001817214009203409669579360312121612165256176069898882296149919860076615385118987709624986036301499862448487032450260073065741941566165926866278346995262867950049601837292621607393228926453937742668160553327295828193607605201524976026154406544824331363811560348534549490058671668731072433942253656591513970981760456144420321123064612468407423325830906037088785414141761153638260938567506321151382142765913065893573359455465879746741466021576871925808000605965966014821774871378326998086123726106581491489291068902561338538477559762301156076591722557416143061432975297561140580716659576980060975284487992699769702734004646831382508319237410324680120036018894033819182565162561422022743297284505864524170630281297222852039859232090383146998408193700511902232188045898449871079748794655703376253437287721100131431202609408480923331932617155453470093904649587150773386779786103208805070740540814078971612808770553147625291022922414293903592039454933134404973667203619586586022120012659388629984662300090146137619112921253483039082990818935865092443062827752849819318641036295589728754079143227495530888595485023749305671176941761903757942929469863210370817151386692225046856493516426355530973409949072386596149793962207599842596182805486490751911818797755213164959114537507454986618369484146461142870134377273935122186398726069532423648240703250314423461374690841329323024650309434920857005544670486744788575500558509681038289429475245030456741282005544649120803431805396820361147467271826824075496444105534855041976159682894070286513356560609462703863583047810838674508296856451492830206117665263621417297379620929378493004074230190801489367341275159272160191710073845818080657607996164400814488403973800138832165913417513674217046932635649993554555942547970249409152616480066557715482502267106652699588801085232906907180496591139299412025447557291934934631836212681976112021767847806770673603338561036437059185270120965020241848904706367693257510076358835800287666157476093298796968919113505095591328961143634892041038748725035370765759024281549295336059409585352794335746822785644071311103196322231941433517304672654219817250933917649825263401366016948244110351997279265081599618215902219226793796070791859094595258148218733624092044714092545696447261578905787489112942493865574839021591857767209399544983907050306971666741223356270930353958851746756055588362446413217709605337250539145600695036592250186810116149852328570984419308951755525891375613558299436723560637040120081582084806841188125298330723624390225313680800904833030727927075388906624916299800595927792678354383759251090862346252789239867946093180835188285215759763114974056503204569701417089988670548706109506701170658771051302537533373248873580686192397169146281503155249919661864408792136246378994673812298502792581258524385258851733634494814584722126209473011058535329430418632496174841209188802203510262051297565784098745975705385409852970286712127074993952540154299040643870112556298352483454245594080201285675006251246117150436181262301137478645254482310472745276713746995815057390166384086017631298879330712710511753822638399637664935568754552298326983814522212721258278338926959894778911112577818805582649028094322136111901955459844449138198119287981863234790262102743628724052086106228384639797143117917028549258280623905612037668108124164253748745076355686147296075566278323776815467896908740309720958183475687631703988089463374375592968023256751662272246762512671485375080486888196684888475859833748651406817529857286339799016848525173901044870806158144554731407471250716349578830362082232432524246133403250044902311424588096049843258580067408469625285491708304774719352965455144531149666644120160228017595293864414673727715223495155699364307739476667518093012193839182387567799069902027711573846243452708187604316051625694953135244007168159529005299526379354441443579945887168885197722140232960124718416059243307976959977916031026996212529364167725541602945095177736875103055775600356119485123893509170950142618787066051535939470221769863495504548433568824186270857173019774197246581441531280716865512842236539483541766525351680296727777751137100989087264483252148692243871950271053279777379357331871709462542214573926264166413654522546789305091525244605764674538065630184117276622038467397178672527236703771303225914117163528459806469924396589884441508268900195986998539745424938545878720197791512208685602399581515528622093456670358413621215594725581192380518776292080765835136770187096646357800258570074516788398973695915560628138229648864135582031964574329379506053508296576703855148641366932132551205411885627634234225752462963600251021379995170438575854554295978592658587259199667290328132537689196525212996696185208203087753969156654829284937385144879333040721949643590702644626905766742217002084659817876172661982015145953407627128944178645333787583522394828823104963345401214869157151288313573338509567868928537447625851512056959365162219019893964992040302101564453237299850852032794341149657382625771825917572924573966208966934514918797742910551077682446722679108833023025507301547166011566736238374615463083670858425876660545765387202635731316170868317887237447190846252683601646800498210259484380410067152968110456156127034347573006782405202016895937416648688315142751282006983743079303354099586674878004490235317759033998934339253452789387224164956253727698023643098461927382823414726467188541494540701998472593550280301118302203672198671777049550654045263298390010117311167930603524145299285316572981945528957070805168368533810107403115037911358703084905490265168160349376436172669888494322535437494908374399465667421998304052190363933791870076347082115896197914753187284365857479973512419120598860583449425815959718545266590733405579687030669743463251713820987205798618057439938226398236047911592590462173850225302889408334274108267975982498954241335474150771973220235156767575454436568989030619472876777702390230376779716620852147854446109440697966063917193128096318181863765933016709192897730869444556555927489095733966609407201715370147635755587903563792197179398502332682540564512427339157113377447296632353762929549989850510085494475925085148516541423666057417167500463651354502906576478688704593579022658024584811572763872422740967000047501869752111908083787510622554679918984381943937361756858122959451044616099977436916639217969157362578720838397202379855306464426088659194444444571683572786590427947027002082260201655869214630659620105825881087533586342735768262795872328978718331080142705794051045905517540073957132074164070121335713821004432911379795453193099250259642821459630753894097101122625009822397449615457920076293277742776454227617726253366396165642340990319687082636401530379561887354206624779363881331152730104809972761523308568430104498653533920307484159117434590157635320314190195653696224477939489324729452333878576729363732015461402582583001700965492539955038714730685152445488665344467565250988867644933758211699688572724151381769718937241668916694053883135706059540599207773082294876359676191331585721217812230379087808160305531723004027017496289717528017844378878758108578243545228240141015344687621999535264585251283570889287472299749388779619552382027803060287947086082103772438508579426261812154100090646040467162491957998642018579888977972810306534145201305208833431803226170926445968861139959838392681840683841472066086801096117813270774512947334759118062623392214129786554356268438001890933059993685593002049595092242599397854785748157473306859442953102034979658905588917116183169328404223479498046741622334975551567794613460817821443404848652230985283467070348999326170107892201134857347589128924392999591108038264379692830965902461149205036767833855814462567379462036201554526344385507250837859415163431014631534541971948635489150948967736149419330470779091814203874857230513229333837774405424038485633933277433611000058806435157940168067968679072491905645610920982697726875957550655615478265980409161210347156170717645786791163295554491651851931232116920556731502824040522886100051939625000166066495503985718209514598575579250157923831953427787406055977550869026797094667157588610763782294019992942311867402580102413491530914410186175169927708087128379291110615965878128114980500523668112268545261912111062436886271664199695437006925574460463310887044092868712499282509072269937989953910412037767379614119168045159868944401482838809006453273790655628093758954833309127950129677415671883966103844115226546875441481919048702300936787204276004621551112470444649943755216057294950595013561610036908532412007803813683922188555253598004308186244543480254591834929303890318944224595053641818023260223512889989979650533332571402457914938079088479832889506933805359697079935663530143879109856291201809443680789869267693201251591048167672905675735130776636211830733430204118882775299536602455683933732660141982662375419804410078914210232295626001431708646137043709673517369585754597601866242256011273740970941090543062990804970655760954094417128588065938240604762553024155941234487840055864447496077658795711813985376199597206222419341755957298693646576547550019515358262363597989470520878443848967185781988925633948274304007633961974282545052309400676819830181199526777253654592372574305194056514057567334209300146854069433202562475862609169100803809520149883191186340487280609445309589663820826271362835335689879087236241093460643558340587522662109886140592022870659548904451938717285140211770452374370026261497968781669245924241138894955165667665017315582350369708297415026150268488710854459305733670369937734883505947710279901221891557554738565412899664513977402555726283929337928533571121796270039658512154359763103371876069074767184484549590290631599364495025492477915204279953291987012538565395843823581380447015879997811774304390174370322573338961269609445175746241430040477936309879255728442623783462961306782388120318263216469059326682338360394242318904569500822159090533519259747123361379922431659277246007105772287300780393752530608339670082491781823893218413164863498337533274356969143031519878230609908374497599997908682053688741317859588296466204555693882084976935807370392616040984743779652622865059775607706392702674109098262069931870364619598060373847334557755899164475330951983022735207111898990105995463999208672804774325401367920444172011289538187554468103545459999488292477117198471769786708264517539588602804293364624531671982942582451164563183505350744773155494592439001614565580358601928368441040021597849227821573857663433911396727778389680513709783899318901599216715956449108555989612280965661680795948953159455300562202947100271191900747547841456891329346406749247081472526363763635833379783178901599376141347371276711211762218316423757775750025275257134673157208812649800316727130950796564323465856205957119593824919719132178869572064574368383703363510163937096538754459410266958824940046205141830317469595034960970318192337447738008859207704083991801319058512454105738069505143019288483513265255531633662930061097109949521429912892464704924575436814133983608590033579353701005239744724786255991821581224196998817384638028587631345558932652246258082715670977820202709126253338069613074372852708513571055888355512926820326872959586065087338912154320956459070960076146273275075832559814624848757890452495631214908202677329716811284442728159419830307287798498277310705310209468152794637796055258950468129100761158069697722929421377699141485375321371130874001276438939146755500553078762812023496469587755115181505355444748421794505551232939651143878424644952079439918698077565599103465035181563988910768349968378490030605502142863985819186061063375992278600888871370272934634135669602394649843536991350289070480470990635529168078246652225636984814198193312579776058788821100858026332424509419339887528197431360189684218248965561713850303116487784003700812724832982957025293751089018351764372051359393224907020556075218008286099534043539154868424691762787123028240517468305661438722821887815722949057628513335822012172748503375796361404149506860570318592390744073478745001329353735161709369919430893655775713344897479515199444214415929397450541194543209640898634245225852510113936548274602208726448105017897467075779075695767922841346815834460412776496891287121437656366269030950513957812198694376556110304030477535642347150667694994686651255981448815348665460833930253106867476587058249124931173406734816996336653128475773997583427055554459160771861354479526838694933890755048300811491962179988214511382353790132529646154384807324516177506896699726045778287215082640376166260093920437278736792018671175587714691122258265943108677489068469666288123151378793581284205459390764089428961618359843167769597306325707454606518755247594731462344182032307279708711846261974846122032576158449110318639920578440487134953877034603515820902367056267285637526662260636807991173879677274878199451565346343457852197856717811999742961696883422256328613144677343240363295220936659019630152367261000658868811420548967483829256047670965430400723166797202609277057166105169345071134419882221748238383994464546637080051025839410443260623859665039190467537207328602785964501877070392676979757518840050398187168925234011272921429920001835547916531682885996429122874266740058081018978473261816584575918269724488369843735244557498020201680057889824657110197416936152442969440653232959641137263812036538411297635613600132156868240176734617024219250173776292182444678904429302723778361040177538526312765772948544587508572181225561631566829774010695915482662046467703301044358539308437869134932888226744041467607017628113390584962424437987737402410244890305762078095757733235103517222961665128068253617638127337043113930844742814650822484588839300657349177528292323777309063560904224634774832334688155058144883287650762338053597101760547403899825031799568936906646662937500290636899538916853020379097506802180264613484703994120345457126092276348723364103598714622575659970096704702674219076514830165368563733083249871571968959808594845626169300298807774680660239226507761176208812899847335789389423894585670588077012350371676776307499597438818026169779981386616087944982720816331250956849093572262362001307603500520665458433128150084238277663415114472423642167758280376545349947378960335146900719940940304786549783351894618229562505541626075679948019827104098157957154617550540913432184497704157676298960426634709514947132464392835648161269757022658712768640985673895325895788326801888467761868103764443536584767020835905650108478159731071908153270952061643821905175544496841164159290501632958422118525148293834390905036967443162716190382914996235563729828544946397146184741048150733780602837882799836378658310652411031895748234001036322485175481524995788679685739002752146107078409099069997975498041217948916098961368220982407098058227126562172662137438244761423091993774063033832668232833400688873870571004716605012224484873551812374658821232621996393158999011001478370818454676036826525775049548556421315864195148655651563057843922718507367682663626636839901504651878802129718210111654949911264864458894412247926090429456330551201833313958332005994988826138504968613191111357524554610975895783689067224877039607421846121680866954643122219384936710914384414723474876450374514856223213829533570237640844221917455664221205287894199669212919659723121475352061607269069563877215786225849242575234716517624147684158580219559236175247933167086571299481619888625755560513594709690139675906625692364334939390682553698800456387963930060141930444964134919730880928881897334152957937982627417725475010029319764845802733481890153590244472463023266122505973624246474602802356075213515169793145007245125623849838327064998536276831888951301381679522083959656162128663516979122246621737549551579694632529039519404731373960532063938868016933276085371162151370977163279680388795452253765804339613684553953007939668553911546540089329262942828273704079237955504997869381941729947269976885654164557111730446935463664536009374860837459184027250701794556696771035480467658428881385878044848493210186462148996734985163540562370029410970554643908717406446630498653375152550650674356340016391202981767441195769922590311440403890321854969181176052890626374460855427496570235859855687448419336415585091950666904766352216313064507880673871548932766700882956423853155108754085372740973899320392987481600601484026691090453868024155615123814188731700901853243826416280339545878973955618266743713556191755423278525897487943077954760918960488749227612772480534277622584863635462056836920257996901719966587878616290181146552013291570879325483088719091881866816157147728401549009346650702105344335094650190134072646166606878012770597206541682411677075949690887126743496635640520847011238685670409647598915958612191384014878296583600650623849481119248049494337855807648867225470442301335619131363710359735025576278374369279939539683696204910597805469806279202570630376403364165859492146055333331234701972673827420805945591727469089379163532987694643594435442835506231667535120106574559114111064099424942721830727622618790323494057847360193779054110156234173469436473926257598386396966780670878776392463407214486697218533801118252626470476131509948987981706825995691736159499393517325416640603942299423485049261557362760943732235246897662241881745517752772117809577545756291143098932321074091512906556620300063752207508393751228169202746048911711995514774314609080032190217874131203100695437834351046429107354225624566101501458077045038875431279160051735162664657071266373639171627369278331123107340338852170501698280073713264942213796945391767510673449653397001814392896652379608827095435672961635883856422602861392328091156147031665389438348927188389376469973759812126076335882536059959538661755796329147437490890020396003666319127983533203738574986483982210935218837838905448967500337972155716417350659341137386172947998194570183205301861592109747836902920876973468869271112056314134349031464396182005541680380205947271838719816165253369675606593701484411042179325157978492146141441961955156910269069415495548007725009941286597700226818144861965366135890836675681681034313486034666444856962466566358407403695821223182524932570739002702640261741254499339191920023848290598510883296240795549930683610930346889204529897589953163039443997760188545273831242142096356490974281793943257326346937725583860124593343194542440117682881420592469347357545587894792796685762553886295625168887446077898775802923005741956941629702993892690901112032683076331886308579791858804032399660761731560442816701398141600656924441429377032082281378177647998014536927441132005370309023019122044179851396977015210831129409112892648257530971660778916644178593132888782610170464037799012578605623711920411860811467367851881684016947276742631236714599173751482379198023626140879415823866806421856822116474742791917577650931127019580374041726786358770616330755468050184708642882075616733034921081079882673107734951322620051066545383393035380057925455747198813914707369962196409911183991397370679409481622650497709772490263871280735975845553434942763303167965462978875301766699568374642869075575391426942663573894442806296709239141627142009506393224871007843369400710178901103740227065088904767189339686735580473237789268439608133366208167064786108151855614964968472626627474077054820416555217924178479342222297910422737668961203767774136038690492867319956839829335413289833717648200960261825858978274705236622350696492407788360739101520966268765157883089027631366652380590170652878715786353781772139353111315786334559319839414534703143317132680443633745529144694381064603393308088787783942189712598835147040392499224491379048618919475771637161265089932215417957128570887943270110211444380156065434358066058372446983620016184244047695459178015700028831845802467154998435951727843853995742319105603840057842630942094953822115775102625517346814216810946817499400518345404403390038416472395444628285845430474887119609937216303306058831432785635878510841799169540013046165722043077289770738403489084656510730870642819929534788421451330175894458950354924876113511271659090602594930540797823992276128714831991272911946801021130814447812096247433258072039268685591042816056645062401085274499225813768467129328976446071640653666300221380601653892586347474010381012447986824114967493570618143736659795749721124564341095805461479183307295228294822197303117935177931718472820784826522631562652633851495748984672347093383577186205417710819841046661168769613967548859470192605662042289185932642448340807115813463737082004045816765281010014121538005773070320508805917977196518956377403314204234300691495272675457799236600284895503949149586101070820775452168750943248374305672985615090523382698765035303093126949538832619082369975162657921145510315959332067990598962143535821768648226688424828329205100806154436156019436048378534820036285231247270084891432401209241768790514432975176593398611928916685130905549206328805227492954649356447337790750658556137617688126315385595995190214099048726110889549133645248728454368100099485514516668053129438151878688139878391970779714865503091140456357384701423814135808412393545167053065890004332536915550357709200859468484409104323202021376041741219167218150841695833809130224143358975497631644076047384333873391684645109770979363296296867724084460674918696162033408798153433862907596430247488445439345331213236524289054522164516652035638155709939165150520847194198082029446017728780381770758989428766077004573813059315881440570748850830541567495418258123884780261827434018649431949638115135695572158281846121023603837131043913130319277291929417461431590961141041337930678023933590059359019245353993873515244989196859841614185842521684829744681677709892723837148719926400139611593781493832135519557460012886243974508892730134903626390312234487222101092602686156241904284103246390463449137010511497077593373881433287777049976926671343188865542800742955929516306780000354239443405236311440055698012532136508694911297331329654315692288805726532594924270891841831623264313518307175018556769810475195542293067077503398109528460612695685798180698733363408350233926469996603491117664550102827266354970673603145984050778814493317500589861487082869907778894092600961553410725277790477259128798232997257760488059431844469384228264638570041970278559173575728383197011546625980353824458142585732769441440229220511075536460041850338203739498799396833693237613984386059966179693385667269671295191957493863646880868084216190656176015475636632563319173948353165958869587470516325212360348603268775463223238944753072043951327650733913839460110699701829303453810672670636908762847595943804428406165787596094374133059087106781792315814232214315268980789244429939844484252119979054674478708724449364739149145110994447746010975004441500528790037488707062601342075210779904385546229751778819205631960658325096349402941652325100176836365261464746243214335350423246951744596828951954535079734576974083793551263383107375712700116949035329996612537843578531931116634010705601652858711897647840458082962161542078433338740595082504396893142995407748941732400355806082624989883644214210650844300741548289555861967058358495301616020169573986124883670246695426854112468958608895743966580952030426575698032349752508793878907233801818524223952608648850190439231098125563131543145499419180571431158363889002087656391387385662547059348207121155790380017062127019991112652054156855962998099066655728338318459036323818373747769830762828907524989222091485960340729280205240495245559984015930282340164239177195257157830770421348064077645956210772783586348757235271044853666658373988345762423268415094534822922349512843267931349374677284405980269584355717014935470705730824561666424188676705320854664593801278025742170552288975349154622144911549265936019927906514509874368592736355838928569906024261208389858884351461069719769562665698669376702586043234550845023578884910407741812492491894702657020717300949916734808580656520570497815893156021636192521758252717733739933733011986742678729821364778607080261360289858454623035380191938092005184806468252604769208020348655347148372790996965820086717772807579193537179973210053803328897196585976853549160451375114306146558905779195746459353410289681539968384832431011849283350662252109944054531479227106153679513798792237041899231039802482074185498683468757569592814075654057133645371428309582710659580073748720380879034343417716804470044300712960249788441062327078549369635664431171265091073608462644805566595770466863072531896663848482240298116619523021256376796633096142459826544865639895042391002773085480993760147115747421744287628830813777923564157939183915965611659736951644515313582435814411006505138378346810325347788451815930220984885436426662494917649346401836746804230861118640605206459303671929371189856004412417631197270470163338219503637597990828213231172478728518847420171992055216579088887831436095408221787815783935324951810476932933727934886332261885207171116760608183700562251056112305067815405909453908029148102997484837840399162452133417536665036349393435631826725509342031945779588863971957713227810551644470546402510573538566706837293891472202795705667642716026248942798522749584376301720049258537832675894921464223567289274137028357219091973566707512126204696305766975791576977890765867538762211695924234786689218313472616043672538213220865184612232231789611573445712419713512654914543865583713550881898014969966500205544764017150921033110123555606291414205504474172724091921056916045931610286626664875621211356210227376982396478540522496484767179948473958358891305395987274500700843820400207634582183574148633683129168330978049835342251516365170742932919923574753780533847027736995311241669918754443251890951979811421737924313720131009024328748587365098549222945877948231830222781799137005404180531192088998995871282744237457279480714618653312624340280724701023719705609458690560569104893450279980515011933270581941175106357129967885185319587094331957867134227018887023980541633053597192797666980869474661777777907524615317522551124791744827829227390157682592122905641353467717177813522287276322254520313142582008052373170106264630478552575152456574444313134508845586396441248258165293506126217541721329615072455339378898157494418185685272139430351329278178984879290509784170065905239361910389114555832127201074460272553547204033008071474522895426407388973249655213404193082891401617218492737174254186464322275266697725276495553120651736624036651195935457068198453195369235640062395181710302168477131712988540293852051966317829909488020147960489693312217007147419296158622575390327650385254285728590687135432400823320578117174980106682315457274866958851132368648396803669372294313377043502230319454614253809584901859921392982608908818907104738015594616807600124733197832550995513285429743372798741167803517768057846524846686746539726355739638433216347091269023746997667368802268054882553365369498297041835895445128245359340904793216349641564793507683716903778652655002027071061070357224072657107320823052986839250305107675980671178172665516928622595126879016471153052075315790727211921616777002217490567065757374089878053362237423987839161280399679157586669062762252848674417616909495103267202309664803339865854032291226477029873231857606137016689555966915647080561479537168676132370508761160518300702454927722486396142780040345194365959157078626829302803956223646367702032045547638298113201170413518972882632941580160874435964234737986396513431305630263870080580879677499781264715662139424902205713344426573145786519393091941487914506463679991671384259004025248637003318768101484438463772296996707564091701078727396938618011388891624685529242513473763275673915233882729580246384774782129980056604930300958956798709102024657821117395750036415220440722837113072618528749022914487317592456229208026520898096549428169241966474311122075251281250411275379247282092822498173654395123497805745818515955317178381994570854619860092328407667609087457796053824535807857456436458513994933573639053385773667808750026530875518431350816094893299210673621907833949327956923694607369430710666731597811161340263502934580709853453505668210358570941700236373650831435107500518325921701821066448794684369968914946567929194086026064487036394137909078499671585509465000490665443502882462489886493420968191827456531949344671961539950263358711555277325101062805381199743049443291708359535345567341950252625861183483879896059005932884420546554844566375015499129830239228836204319401439011803677696041117247624090837430475681122470699686064532867099199557887700495591199390818718267099493413742720690410575183913793000680989873894475218476170243362072079169851756695173310274946600902459301559840501449442472615784886974792607423306675287769916967799257118333302913462094123250907270972403280510173289987998143870509274610430331564630668431221893040348300380968895164027706720572725522819105235694480185605877753448422856863257707493671137907978925281564464249367870908687629322796610176718135990542879037734040249114890156559233185081447623620591682062959470810386061664408799817511733485153491724867092093259863616226609908409108693388592865460733018867589851604684404359612612576493622194410823198436786176919452507820227949914471305731364234101240489028485246843652477666405252384860612464820025117867014071373168065237826990573303242688534649031387758160951113429519685563028397496556923324394739959302636126006229769984516944118152728973728559279623242568187151458703242501127242573698338703298676675108642304614634628680979598726345648625932763450004339368256963079328025931402572538172603462132932159372040481390822235688949554673834748294765246312257175257519143849013458268295239112898683927895998876720906253188535281529620228415299883304897945415777903843201857446056111659351399173020625880438212308308643683930762423406064367491816973293699529725749604826314338155202690262970182394585914392009990533638625458349570430201518679323446063256403669393584542611000598796461293786829176805079658109859690627249135048042933661604589452971515934227792276406439356221134762348509044967448030039133820151642249239130389690751092228102387270898231037169308579085199293443503192006370723836638842538334237437340411507636438306117608717036109607187266156363116370904461980027915103125474814065135672353411418180494979617541597199882491980207727760757651055331775651660689347482865013449864002309812713744557023406062556475119153198528420527942597946963038447596447084068488750475522791390077070723295270306671535452831894626408133791353569260162313776873834355649193228922646274827980162112866154231784336866087956754252796830488428774500816498087342266545447355534713448642497415355893851983221155440710661434811685230007616954476057020050891002533532362287517289347252053137929475494110752637942215518304544155037208863485539458565561279108981418213964135434114966477270909609043414439672066006935149473020373032480034911429017573222126870259029452784207114880239492386355770075682445198044439530013240853656039358095700166260498274423971548762440954995663467406766629717460673584245954884328776380505659805737420951302820333021018152249115934018562791500022653790722557089473786315945770182777963498958036048487578579572944835343474964637974854967617638465935385214905180793820703814643900467717619798461904536837219907972907355552824760645175579840030147576416558483980930023929555395709247946276062100429265103289919604785798146266868788880509528861978417559417473853324103041853340645840538204959491417945590090388832742769858573956488170193040351812609987742589115867221328878389132775652596758684965565319094220577133153804328803546442811470156984065322880278540658162681796703990305822415538215471600338899776778724651280610193710191790561383295152804484575466962703298022917428217373811984033408196173347941537710756586311448242273482777959313102441531973883936936335145446274711961344137871720902149667075036028899268759586113572061239394138743212221530232729619567192762239315144118702630961996091125308641753080832844520692491846111215604876844104154276228447415513358741077837751608516504895717614935732955066014516140947660321848518224327040077330155609650628337937722266098198538439239751267638901531212394113298166542326767242734714149244301774236722693993490528875395864669653458252883765558912539463849869029948166176394391978749487231523658591822148931737727676375746495633022339042193302329943723204538608639442270197113024751196056300989125297755227799839314119924332197280927305790805837399390738209213621242253089457185643647184011952622641165246188744999825017422856192537177708550970212527882355173901709009878877347144049663985643586402480513940194589853848036892169992118258879196002606171650732297031839456638403895913024475550507576765451466522606564487115003430062615808445337089619898955523373712203285699729528017901729837826684182566310941205580577700868060725185111641818258091903018936216890318466593900826088891122100042112613114049305999291047297575991332608696926836606107190417453379762252329962390695731102243332728320289253215990171346943719168811707504083545308177025459192760988386212593730229430311817057192367841757035453042644203974949588377938848439905627616387235004596103649075463652915159902418623208186841752207733612815277380647216683003501400299857715857412235945629855662441790623978773860055693178530443795982553319025729285101698083949116810980086889021352096771171769495812363609029274284788426314024904632886648600461884661330803894411165546069495263872060532922229607743803765635599233720845764235127209659150947081445727158109222133695763280743401690640850788551411071280161689425084711695139912448143106208177020644053033936789266314596822634695887776757674328915817483304038976777465702840575975295488659331191162321272228523604707597597522506602638381502054066868982713674891998318386843003638710886837822107288895931885572249647516387157505790469225868420248854168129371391294575379936639754155800978554527053135502398631428536357342725260706416052331433892459088250832997999605304064804995828767003199612828447475588927089236797790512073527662550663598277734668876825072509335289392115655571187541273735321175858926749176180470734627491324344029665350805577086972405318373767202347152579900908654302331847871226483295305790601839445702932502245749226177890190450254108261671280678973049542292986603357483997410907186989243582563530195950101922965843954115257464502889140376088441158249932480965320210872272697843529089555472381449788074137247609261621594442461471038550869803099724187595757908385774435048384625812457788418325586944523285518912695304653367198183499690392655504424283104073789212738819552128517673385227444906743276322552033898716812229100192596501664343058485004997263580906466637459344489658123676530141105831496211362066377627317693544496861144751606725154457938177541289469688009832549589767735802269985456318757590311401782273492627812599418604942408462347293194747014929251038552967171001003179693486168646275020753397171309104916118102353480142367327118498844043762005698821284032571313492738117219445112927955033736956867864194430622926990304795794390634559973229683584070263937445326083863317729059455944585850416790586235275263752858953871624216357480784536565955444946205334656151130570206043054330013408642882338849167709820354149012179157299166612256603819881698518349183372277209324471217050725701994571560015021605507966438256061593836325210330352652190407455915166827148479855035223226824538491588425329963270002055459260775589960356707656295013990936075629315516124353746444110185677943675516632723831671695704989900888307880990521336051979937263814448160915620041783224182132051537511859688830895168767071986077430262525237697295888799392134253126932260694572158467379084187468415601256622953929085359443648137397321375677675338418109154091552756706593226654077337028812153412544326715136484429511191299902558705276827051708939465174777489036795008440883752444869914992057732977719315960972722576702894426977259588929307020859325372390897825145326750051431742615580663129136695514244336096237229740491304570062629428962901686750326711731442603281096404213453353280886843841653564027818127630860824385657357753651145001526447826655619702586710613379980948624159432302520017391928328879421065643333445126547902076248240138206719141780501297656838218700567251869272264162875106434678030579102585463392970792814133275287876825175740558143098212783185222105390005498636010113364657143970252703672787094194890382674495213052686561377103162521450081654510173369466678647318086548768722412398836470111153275168243927921744300546904016257571033286771174990809945761846675129227951747101271554184136194446417391225859006386965551489543757333956853002090373547818862261173611760762116445228778762051503892946633768256337367400115114591960421604813511123067069872299272032675191818599040263975840263446910375454692695766150292583869927728985488135082396357569187048274184120219869313478921476702733470562394424700620530870842303163038732240863713199087666414029643666553246888169993078096629123274373999629434626280445041518221834323192815292619165852471551554669556315583577399856106328705782294433732324108659059436158837450624097490205584506282122644305299613845997110284562047036626427349421433578741703220189932543983132446724391821572139251468708073722230934604420061575208882032349790382762475656456244586241268417618821249752315811363461327099281056622364123543827292466137519613445668355067796946907063804406230383261947498474630073640970160146078349843262082893934992593707540259981791509384323346448539681116065992255345773056358460716825080895644324919954792943506663884822906365432670631200195065521516661133050207951218034769077884028476458460348427693436576505919597360908601896111060212588927926544477101403567200354189301027750471362093174871604794415680177176971071869107042099350315287934832419583674921705803781241701555442833164968191230755573187076551522285216113525982924979078370716845413925826459941024230402653790292207413116138616295969359986843030506621986208499763712674751072283092525463800388562450283489539437975902068315061853830024506098846744466145097012651681466551497027133541599923218158014986291741916155104571717577436450864355739420471220515214839668521901215031180808195019969001348547922178457503799766081731637481680837195038024180204856949892896378610903802230039912841643015729825266495873465169639812377064710718088637733637367603392449758107639355592943220250560857331466304186397194918584640264853602907422878245486164699903291209020019131516993457911450584289068008588683723278370315201941611002718799448816700307346233969663393553742598414061010806268048592132293847322446226922497999481625908158921694555123699887154416438154222151163959412414406608799422000340061710856654014095407276925174478807729663923309854903636971756793102898762785059656544176682678714188421622555254678662927237021253239644198133553237990994879525431538175621296538249017172576540985831056517558789707345120822659790530482538471882155688480787094098787410536478690858727777344070212407674229282990156458801943532401079325887262894857406598381124673088338688810582770372408560403936419467897543877035926702799390392535319538276936405043311421907128700535343942436708764732054886302381702031389137764893858814913436949338627987645209146709473840969598835105726568099139189431494384211969310761767076793738437236145940064127573625954570537236660057072384217773762182871045329574678564742968167109682639618130797802760201970456793714560526858973397384696922071849794181731865640083213049963207129213437932831313855601819862767399791992420561814785293716185358117760541342565581347869947674987044051970224507302267341406660008940157542206261465644353284631862825842285788147113227436540387327064520270541320899466022666773626639035281467584751876443883592752595319313168124490152565517167295655655799286612772427836750676386893756851470266948758803653302681326546392401901679763246462300686492468670639197709399385015585064814002991578100274606456544216455113833645940591145563019789758744969495465912918741233661998216768151782036674660757216723841358698063722362804296448527815837715386629480117854799858850670418685479704330527073804730597238659887961975786491114110236478046175789267221847856475834230102621841431267328213223858109124109780945568213905572185907463581935706528171125059514110802380110041911436527825505490288427441695595114714643945704632499906111959651132671860365535494302542553699520460349645090320671838072104683488541050514810035184042364804325675041362462369589055892483533215163778843280572900193962773269558314513175671307631229262845429375646276832285793795655112022381493820948098635223642629234111441830826491138185277531400895410707534064222655974426341226559095968208411928326846289764506453935537285563628459079650240844725015251241556552144914708488619542574641519505819817489647719382398635320790123249141324884398689661395528956591290325772978898193873833896989843896980994879774389876649338546944379037683823959173592672402272976278053023107651348634688902480283637544215284236285348358347160299191637013135644404946316259161209975839218886795675922055834660282288471874253711213078943277654118535505155476854029293150504000302246802385999336646869162544923745638528463908552250269532586950436648525373245132030758400662991603332686480898317417450383525778642030510543673120065364309317201304794415745956335345439940061046482021143848833710981000590465902425626982995432713344857131456686927024535380560193261950536694101533784948174327865124218261597193636158181373494485192565820093008488395774209163192936868856564639784928031927392123200388036820103703882101194685808731980115697119705329215110895783386008050079177672285195977937460161201428258688547856606312942082761734293836085709111288034028009653056238792464242648867675014965792726933488554095273212559612801014619634877615432427401461458451478727423484819878906490283145869462127165071064921788260431740712107910976091255097331195546050133003120729165917998680946474704186978407482451723409673903186187012522909335373731593442177731977109579070807470499116483171562169071043831308845321054782627964392082413829245623626014001039969817474504906925569052944959773999278303437817156680753584382606123689091882986257689870794280534175769081624090802529123715797288732615454343210097200047286348463789536715552276837415119873562164350193945274010680998310770043606641742553411361111971258187413656222844342047294931774484448771254999244655290768987255001892163860222444148501763984322488177036822281067519284556178929443062854166444485159688894997126829877181669748446245091299032355592065996324294675385040585114601578871427240079333633605205484252094509434229476239076995611692147373547804013949801135460310716405798913633866828447564646187615905559544275894233699034537358452983696747155608382909361424760694249731802199942957814625057407416874232017152201273773131814788056717670569874574338558877471392031836344119047098989907428767496225849708753670655282411471829049845946697378434028901269075734511677228847473203001985699131294593633427768606550095661516614471535982728117730056126702784509201499112639737503348145161748437273477658031371020406997705219279797931435853633027767281332759333118480862605575424629172185415576051360183680951446587844362133611042339947192245655742273514173666654666762139910259423372847589792098275322184698102617074985035720124341686253717235907617949705839364405108783325992067738472761538223479113164689846390633657504943298236657178415648701166045874267640619404453330515792897035793525061881633436194145272390208106346409684466266326667399793818711189981999021899551361833292390356492500059790619977209456920053136048013905365822254028768569547021801091163201612468647269999988092925451089644375851400170091296207337874190080437044722843347152038039074335327822020382513725124341817643735828632176637942133788053482483185905074466661022569390366793203177149805027613510296664311306893388633641904291499397725249548490029349606365384058492848814574295053102067296872599844409507247293335162427155363848565562862194939265876864701298661579777589169083144223673237610577318621409467423688130526238028557161356581593756555854162248825654279851059555160081746524028739049918759517829672527512633781195052448667684499546676996252688814252131640306358652720442859542211489390832609328816956658843439352768615593343171964391632730385731716297770285946069976103721069399878468659206179781853900069949448759952968063028217952238318487861100890267124045042639670082575933371258436442668152919619105085404285105666760234662700808230624654542298074385272093638662428040566019950690436421810670045723647435100990421008903882392684204461743168334769596439208904977301636701639321037790213046881713670213193075975724611741016145877508169457464067370469713253545556019823278112876515562692130447190002215668405013212728581702517611710218717454424948263934993879491783288313674751757963280798089853959632061666482240987141188508578914639032800040761535618493687001322120042029651138409603099178470605121489891403864132450634672527754912974538052852656765315295087301451807140921117771865189391835274002901572405352454961407037534669084389472892309477548645059992636891804795792204845695059983969465551890373455638935547743859581505885152290854776274815825524735088397861578216372852101852467673458957786609243738779689018010455528555182575516934205636191171953401672959484863268713596624278105677572319141262558297432405263834311460807868600730752347332371210745196944368476026285896438059412807161809315656312234102641758914434498413989966559633982329892937056974905497213007474556097214135340503563962077365612713639907510135299551237428920238208311920892874022505748484141679104174781807792217175019090954197261737129201585590335158576692567071709891689175969518114830643581452669514111882570154586720496532234463626638188792770177685926321563062884291650734360913294424170672825679186412488717758858405666057925996036827465952421414233014678272400980057161238055480780948215709868926613523907123764899138432527304782790136800844920183030664614471667703775030433045461249386193571934736527431106016842792878584944189741151308204557496211063410560963509671959317729602819913630359305558328702871693877691296666871268909426625044212195937660066262325257821617089540707592099484242832766614958471684960000796603270015167910937330668879436228973542474746189639753949097264013798363442650639091262558798431796871841301839981161543637069892955360081747611448837874549935252797991395093007347505240918254987004487445314106669185349225965826283928894086410743740529731084990126585930201693783067796206554032361010273594479950507953010307198023726801501226772021923791648890215565845230148760277204843676783513040782554485074996462855444814198149639338596339132156204548638268805806547114022463315507954012763207207443090008417440482468532392709282914808063583054458041624992174059230313595866579695946345468921222148029414747532713477529234403915609149508402200805572613136903097312643711088747396177829062254450725948672122376017112632062884082023898159839335459011778000475460241420301122619397789088139191537772520015454041433705015433197303237240670748121773591742385040575617292041788446074460076226299472431954448238939559382038525471742077292529528593273482101652461948113398641723838779258490627175253282656414641194708423397506222058356880821058211900459031038488756366143460876605882474622452031160489490233671526394740036685141467599673144783050848070807887306928955151200119655574752432385299952797671436954092419053363717898447169580371205394781923103835637344748537287833071774824263693785491698317183738582367253129971631178616677745584515133233938429808548313255915414625457058449107468720035574329224039466978120373601590177735003640502799302019494799736933252718103941377799198641504030839294245950012717578362310039622692726634673307330899950167635196997625871363408783449369752936913021023059453652825725973370980291962379246198286110243233019678397034152400122456960721000469052134893871419741148574980805595366622956362743191326191648726513060525369698749913926285665752760412220469526160496247698295159366278657490566548495308490443319851261843702864905321864098850705152367348882762949871709724696003713888651921732333139529361736083851656487972686372589327096821185606483044920352521313001052826092412427362225656117812647436530415305077190225877460707671493455256850784094952961280500741873900476309692760345180801385180527486562039653576098028826755327097314421533947741912503453362940242262805049794622645470589175683457542034500965428216348362714219629092683921388728565122935397993222602629907722125295711647481831061194454579472441839650259092356683526505297721140835464006597469349114559576672530170660471630059731680584552932605997170305696045226622053847754242119796583320552523494072839527650522787858727674341881655961206453931440009580358598264001244321072251862578071021743815981330553090676698821718533416636454927029221255369665567920162106362261079424488952761968239866015002566598824000544421838261628245301525764975480625066863828276141784212113967400901768363703346177406134034063581760115294537170957330084265834769934305888462647709104878667817317149902244578399717479471231758329700778716272749535238125834521553984616748727753159007472790435584338581286997693218422767197114754730819341418396328021030912384863214606350724597319887703173906761704971022477328551126817161629816258356406448001660464128371292945499092526668544948722072009732471606894951903694300986157425270497186235155198029260711607868687313135753065903236879571918271679938847031503562821157834462118582817258352066860881092688234015671259913525821992992941188074136329726387547733034797357840047103541117682074092691155143318729178422427751971816364102927934620060924564728758765738785551079796858818592737253954681219860544052375472902471352912529246494693727368473890573192854711262883135576949287403331767842949056354899262709146904789844378811609038310907313937542611408155976538242621359415048451271777258006727997038166697836358566458258474859925590474066360143310055668138122389255791975092683224087487084542096755911113855520603175967592667812949264487116640954539756506582038189900357629523836672467047170755051048205878918354444034344970582961701096638239924431666527609303745722959619347978919353059066019703036285584063394576593352186382969624182429452557400869992590419499170786742503112585616848107587825956379886141833804748101471248000332342674939603020132395870354278340651786634381197384949634209064940407175658900227193367171740288844282804850737411077774537755296183268194321908249105961546888884186982830141732132300849557224743288625871352085776280654904732730420363585902907610610737913765101682299077594258103412248142791375150124678165576732455946937199800520405894900673422840499677855428023766076588579010351602464688551845549598937727580306427557816448014648611878036049450499199116008953665878646942592712325497621516030164370115973352112788457403828991060934795141089035713746927281593334071270593815877474682120622023236437500468371629000194248928359771813458013231620476620893727712839411231478695109147095991784775384266524029379251070508816066597123244399129074566891966367924658655017125238245659290891051947547789050279642753054574982766483496466193809851641129580336835614265793155214907183640792115227161440120809301585459660213205637835025222828396261493637789968002040130357984400331727458229902942106153565794715617062085081402374252875908576710812536724898121798228236824139012997306158189816405291729070769608970962234307521869505906444341829162274020814560327412129690524975397241842346301703710841673944756555514559476690238465036999783390425333583918843210827340944367194239853067433849448683947325722911178155978804425734778328557860745699661542212677168596804379743630646523102966405356250240910305389329380884056969096822940325710982496785278760511700667723710819024683992174830614367681132553320062435173617447074282914556227884316532519187257352747772655577291066176351398412037469144533704647988804996192550898869633763519766799348904455036669469120332558288044784744963166056475393449749961521993820401575894196889147571461198262041949476557555514273784471007072339609705979054915392552787744559261843495664765371735596444336352354905904496766484345238293061743237736075623645987425256026111764958170843170838799941887291469394768411269133603589742376789475443200536816967820488630097334110876266710826735180064863018330728015118472329579261038902651030420023763522752829461707125726300591078268765797596190150084638294711083017580570768201168951790068587120521029135836369158720353571948384274438491140339683848966203906760762136649161068784671211860796914448103184699333945942874133485206960704116172191006324515883968907701446105381292402753126046124697548518878560443281733690585526021539240765241570996753018593789414617534719973080098891415427296730579902175676313019912902201127620296222750105331381665550877925013949111797896603811242839330790495406388509768645223802263532048847670928296199788818932196579133760386936618532176805212519291380093357821809469811270394237013470477391683464132067591918275593189231260993799679985738993708482255209604865831106049693166573546216986715780884829363600605544967530575267158593316496901922865324620171204775494379080076069219835755970688643681592223345518308394418175146489255194253456739423938037958202923616227105874896609274461004492099783279240237636044321994207685748970726948230182606953656832156629244010349839336269209621518814790448691025738621768201912939533203473701366754495264543890152831423503506625680973769694146044917316996634103287778260715310738024963542711635731228131803777167353395156230562661031441066810246256323641394985388092352453784741367748711188332140823041008924472927209260158167420951357450696213991239424230936963812934185090534779609796952618574794676454591780507944424507822563788276826546256679902231428027124626345862770297750172061840302662113487478676113407582912960304583283484353185277399731450065988964910369236782386638651006577592132129806734807158862395282045329457563289885059108684658176721907176827798861860667766179560931332149205971643054693877307974767411041559636394304395131016023714009815608056918435412691480799470462375449172061793811781192852924014524445899624181579919706136501210758682424973182103921940686600902931072748289682018089452558689089120310528211911030852177509967430413124678280637039519207884832901491650089482115751475014659321218718878261982363903831983645353767079900053896010251966229070759428392690213603050853417781218696358808181747703880451250557293373964790657856902270352432307826031939982636757974496927371639844817750859545599142211199924015554890110777199724540337734883619458594467657003275827412741828221754464666562436949895801668869693585257331499895699485337606738586153884665274926112384102338632257799374289069899526246164522821764105620685761136539551694282361237317412018425395598526461419542257204228096651663198469665844491643032428089762351945632975031413128794772253154797180799175943850253302573625770649044446289542491758182817801553487461590730817744701980867816983703659985212040018112620264206530709363137205831891959824309245715060523594195190655333289908432856390294053295646320420171536169854585899314114997265061783962769349346994076827779279492027752577626884933346784625956781726709487254010392935651105187073312454695595875911427045927445179377706033190773742434544597748286666653037197525918799413120217302772753572214982227942499838882486303471953489308951029820481288903833053482956300604830371874339302997268011814213374891559878506160974266506409563431004486499721376591285989336275711625850500521378339939913954698140370069704446273847631747116093001391232171445616833083465203159073202048704188441814916547538310912798213743266865984737057239445111142467470537154932723178718795024339874841876117822201075659598205992678763873956727665386409337115005971204565649204382706915731077119242865838774399176291404580882325519008184090468382734078078548095599855072010333077579816610517876670085887410795222138416214868259280606383557360555765575629018475816539337074524218239622129899367875683655686069673355569424451952742692873993006446126542008228044554027546950264484673244172562850510917862846444145670464760106951712604712626537033364552263440213724218447703658962839847474480722776377066282770691240512735350216591602452248170388684527118156766280495522338840531301095623694714518069357666062485962889329695010534746547816828054142906013898585407681005471159922647277740893431055836210410948808566524806890751907039871903285354936429335555894630471064440021646348371380177651779379718827182106886866315538206480248259804065167523249301626287074516400467529950934213442785382257058055611848761624984783607325534039658735520031587107962635442762906115750526263069718155361575630473512843057123830150191263562225659804482303254576827296145927938404696528376124986729443414632959221017076614557424282205071721819666592661764054538468548615071074444508723710619682770474611232828288515953254661325106132400316957647921100930279693464599527509708154472755960862502577808905338514974257616073380747083259524816155576500281084132114859552712955192839605202991412644001336322479653582293897720557732043161061140185989668709103592069792387697490258623103147610991006627210903534445993080971270052882928066730283268110960309954658005979485374433030708974905437968790184287933701081447384872202517629787875440366313759680820622534850301995616706516721224582023947804809414779617780292147725365807177086271844966350434287188930795360268028396805429725701281434531146403647047719964636281274489559543219925876212509175307088555554038347024745737553014710359514482492078403584847441408643467574407703093732790903863649077302873751747241442996018183692197094863364264155664732761532338435247022031792607062250495587279955001284691052714212441150636347619971433007081005520110766761308783548998411164123938582478975525055023986066958537276554322271225807020694568813824020499216021795514324458735704945614249165824355597748613082575603166551072443965312746356193923858642991253103146630109980270286170428053983542254594170150054287879270055523013893385134757859919015562559576881834263376801554933996864389206226944201014572077149515694567154621777893797112832780277791305988744566468030274670201150083659293576940845338393045099934742777871455457883446476087203763319085764818323106110796168493194810195036686446340458399063110436056781817396438731199239211703874707484261173593699760575866305329804839805554903629177818310640818257539004393639745390630040324526974573195449394037791754464456258046939052057048510787133972970547111974885692291814068969839481381082429337154254307494685478384723643374143266494888547471362159859131086278672161439893795988414496929292856508165094005292227469118225159676792200915266918328600353349734156517336499542201546200409398423352423012831527483478627241550072532049256760583099210105541601065038559951910697864353884667557295622309307080666908243922405028604768665909990148341038549915309002771584621712968272496973897580660249515618066289476445887871827348786539741004305585407260033176150478024323698304361737196485171354278036460079001435041182266961665631020950646121345397290439774213826666318597621021950810925232868309884585922119006953715090832730062778739280513877189517383777477811603239686760739786884953084395274145632985453947469143969665319409536235396682505611629215395372247933558035559653307944027817077169751073213790566644539226161140781498238000740453964773710085826306333894000921910220841432084209772882179015695727402148150281759353769350853957647590514960689198654724408393449888363823980041083988877917779094768682862856986062783199864317117077730284951422447925386327690558883694773208623744304434629343251238698731512305416330676166304979827280644175698785994315695562663860870983820127396940957994723085457149121767266409073056776942159500748193741245955166647314626070012475115723924981670019816953083806418765672674332390718918232771843922924709503954850625131420315469997850085669482458931816236452823470666262586070579216076657378875760703776558434687460574304196674285101230225087404999836554564110804998743896385740918554416220607469292676820124181269623751700720767390686626808180936508708568156527186694643533577824189905289194000044190719222630582820622479265169445429975236091603042050731713708065756832929750475780100698742418198984257338163769851667956154180250394716887977838937761285173629246250042787839556377679220885312093030056364356722708332525633753780175776330220369488345169019671219991191783544366555175739003948916898819228322673998617657734442992143726589824045155342606746931927693663163992846516423767437983011699044933682956410733312695272733982863759724073843048676698482690247462127262019509637257847114781736951866514224647427390234602589622776223591381596661768819705963800173565928316716745609537099305922894263943508998149382184641482869802046800985716576661189901453249700796965378447408410811503161262377335953796286769935455864821421471666188220061955181401493232501916233011683470208068333239388394259698688896083402471600591853241101205749855923610484434106458135858946236962406983847228902315950942787265806730191638090665983484691833065536311057598424161365183534775422976082356343344662366349294751259322807587371735913173266570229091673175611328293412123601945173000249420537353576543170785656734594029861086396661693765185795191193793310913119062286109504590338064835479925935300918978995392283231642953765038287878194513027324991777548811595282892296850318635231815517742376474517482223143206116004459464323062627784766220200611830682516789914526137622528670653349022983392331176296065884542362369351691728806719789074879212296084760252663393441759053366032963470351656757091875869858310109138176885337081037077250963048599629541394694679375797937213751727943392645725496146010467671475723677228681080754926487880923853876053563493605586275332569329724215960592551390844085559361618080392500514957455502688204662953248247219611850446880779069356457845958583619522008575134201611571127945009654591015596904356403166160632656339241550129338855273737841702930576982809811052811470087461034463099460892841959876836405045691695353434006609738900987396940297608318821132332506379968389531167836268019818405545540507855959756343021906219372798071639473911409697802279251185613438165613585275752146405742358993717031176302129955684098687174937984685989622567810272337588491233434612489228208994980806029575122277163457549050922083353316035594857410714984320759633935687766912126845740722343202820627985163795198482205513875397351267219103226324129198041165306858120822010058003805615946688021122270023641116643844668164867348399642154000573217674573298515121917701895847528500674094514369920101533184458469069673365870670296601790361338849626984700971414176386758118666720041811488713583039897059450034768161695581936087529895819341322124214443430019431281896104455555494644888508318323933910517913391885934946967860005217012054376854456314717049595305499587409867094195566878902237461640839596114926705887449980133727464611177698179510682648510979334531136578666236403942295959699912033712729691430607437890299837665622180918976969788495617745718416633539870213865555278634314256038994648631189975244240874694472263265999139258405850389110884532511313660972442142225384167376931794728377298261599820749232223613130322064849314645355711708015184374931027750899508528553279511584443166409198445764202889427594589865081703164096107595411251956266663458221433128025148064267510479469776115776981572857786604060093673447505560337596095200764458193708015957640744541957720690709367244753649042508830572757793242166076238180183163685616249854839692915939873746279864206337341480562219357909055590770621293665722541502905243941493186432966208678739931814103150755773896612603807307498194225311276744804630614061242333294837897992941550483613174193493611927282301975921277384660605060255281344294435362244201747739797087771621897509433887789557815875388376857653493057867434739671698147680850196969800324144500035331407463759095206179851814070115585080730954156725173855085406942703825386418092350428425998925128239342257191461400877725234835549861756474034477999068146899851525169791526945023508117723167351796518544875886342128365464025882162970509406957563147725967127668843071983239541494469545527163626250565050150003836552298222389278255649120669751151795609923694430011116281837211691285700979483478825978940882272416708256756434130710960740987611695703569762175156636967492141414053617628717814827440312930723502140618868169037614308955083638604073234906462054220890104942553544117199374714357963747295624107344256954388319148474371761313054392802473075349204580910935140739910380782683419343922420457560006422827667430565555423049097127174660741786885923856066418872878211642177080468076787529656159687738711785691729694776956289837109588019711856991425858156643958122286860157454600713222415955935506705395260018933872624665350550592874351458429815828604997466419261252805267648169434713749347332430132604597660685952937245543614308901182238500473036261480281591266359433065047788772899127205407954561403454354367268812464722573166113209652605753375337191239499901587528016353036910551266435667381664921384909280447911739316570579008317066245079104063969937857594690447750586432511233919184088962925819730125633134352392799481366416759147000455983210483717618246802415832917572773189451793462441008556330604569510768722730319681865725626792399559430053903276144509586390691009221356486202695991452904599286631437233209094871512541261900321249926186506644845049010502365381669504961097082617507715247883664981006538919663292616586590801448241099434252803123511942280714264061917766554804661149697186182386284755919689874940189804177980424508445307514531375660244742157812200200907519062363546507344516268836152341443256519950821474180011429992643981096689654091235272850470603558176571313883134571597899935624008386277568145930095049017602831140831079013875097804609747876019101568245462169872172524116456487146182485809039439834676550645524463725349257750538283062854905759543379075343086275426533188680452087064052392592668819419556660973009292310476627423390251295539334650846903903504448999215189387027466146435836187210173946191579288297938209312361966928282312559468052668653730178661095594905059884710067503334563668382141220313244679730134187731717540612282219601178404206564734195511593066666191982059996362996145414756179141131660169448267501414077510457897946582276905970936709334412296997731412010451257032005060605108279614278674012539316845953595225636567995320573851558474684964511506040458980137024115102991268394148933621991417538231329650634705060715359977286359772360152257785060069321089998756532553520072042124304343677726522629082991899937864701502232135437731655489693641226117012017423122235815666285413183284976649211250560757375952064887460623116073306009553306920879798487184306742465812368908892569253277835398171003558787812503534420264234167605773575681479290087832614349084011849310748893166671313758132946967489536912144326992157555850678558024076576192601716148201414335549896285484275505704258987811473681237996794401739837328660235754607277651968251710845430926102249394027724682849718338232093131018069647882842811960914407575019462592464240970891145062049256000484419103857152943634781937410295545923361749178407271263480219994334970688447372775849192795742714213243352408320568119218400273209009114767379514140880054581390745857553321045463591927349777681343857853889187100426854308473533713018122795425239396976747090434616384035338229254769471508710163592988774929118686788172701014633745504732979603816550974583308673331002547855668616634310711140538858535727212160766687865904662695755261476264321112779763765311432131894628413221856408186887570109685691057341559499651775748949117210760801080787243127581586215053781476502887010167922008090908142463941915781649027931244640903734080637406648559224991918364183092755986696932408645863679710896677664016218678242906331156132025176055718783946170558807163687860296341537363273596271021012641782317251292938035258906349984193966386048119516416879295800909804562704421424262721828006792790551125342074485434555564200725678979334527998151446759427069480945709614203116050724045743907419154264551577292446171466452657832416559847588910999975095286335750411327201098547414307466778875030719943464735020023716443713179190805151642677006759336079225098753025789185495169677866556020668032936749158496661844620099341045460763420142648078115348496236758497014023523725946463925600296144065325618151717139461162530246610416531755210717558459421186019355738190087670526901699800947989043486405640486845192424064877913337643001430522185511127977975774678942196134910986870320837809796320036026469033577934552938984026604103291176969990130770492534471830557939205570513716206005674125063898809522770783741960393110424147158398058575255783949662786883172275773317663527549521323548163679257002640639331957072661238004345453436351302580785801996839142685736930485314092851733334105413812192262130893097946072045796384685483478516916838307322307231398458838588076721924175644091216654123723856126567496499342298156030250458075286153540103140832501309761910867619034983498128053509661376769338237701044802491455798390053114063058960830567187403346926365390896593005640865515773412794666526185571254183069596992615128113758287387347036043617244256664644890545307673834232829721457563145742322829336865359866815838107667687586649665608312241933532556514447621472182600358409422973322076116992185047840263120345897324832985433396547420956803763076249260005759689189026560595620197759343471995015689175890717417385038083197041641705734526572709952127022506069983236136007552069196614014714427038775768639242788812397888709118811425869164593752355358802144891570346807553436971477424072803617798695893723871603615970025802030127757721524054780363380918917331832417589240363862465354822802276878079287665869120860291625831553776642612988061532788127149931663720634968011090549848075502414371466797199321949160965944867851820750926719552986123494207189730864872823179502980181931858697309146873078423868058922663463172802859995839048954336649485558951661954483331775587760645052761702643413638866525214889121062423467701643210121599318475976927093273045178422126564409283384845514550143145148216262298645840304206332936085296305629276777530728091726758213505642925894257792390080423631560955038736858937147638060651760298286219079841346207539535267803864996691607867118072595790392865804771524919199751465874865736445131066834309349904256772034123157727518455481084658628023042817089187772163647554624677944468658832216284313170755801360041341700724800280232700851390010397145604040074596542121025029271950977015655528352982097071026044447571272640581495838868148143360156652593792722981931997748322618532972638880359022399352822960684912194378255033721225003792327493703911313134766127619338901762336276521889990996513340994613079477886712133152510974226202334107719373941839918564813116954422425496487745027427605987415814015907814791240148415790910759996165029209103255491053255096000325335561385556342573629767152630728998069258162708194181796799226233195016668334311873548136868200504454230056122102924069640156362629374972520520233982498577224046507350614880635265484530622532153015977685558303824534867903432107090721914002274378685197512747173957240830503032385994315380185129257026079701992226250731799200208561988823952902674400121407064040518053606633972904649810134878704543933154911587148281906096815248246012265463107240995665571200478088140315758776887132871152288824519392542074912739734781903733524429467903415015660046157073794130794743468469088880438091515366583018233937924697842878820251142192258270920248948091622865732951996375048583882139134012264451840787943739958351068701301110983704904681960051778067945522760034654328697605084487829513672821763438770419147748050319353715218270896569557705702753767863606240071506882334778841609933374762499375009671181870902026641803432305655213349438843148990134322775263164883385748390463345556525701229884449447379363974243262639652623683642853538350143604912718480472622836434088757678348982674204583660923806863572425423069620359694946590692238138538186580849291223212022215321359525474216739586776332303334085295549492768938649747033447449159763326512312516889614129038283924656021515055392605041265423798827806506461312007456105110944401154123836171389417787625381547466135871918062225490028271738057859881924768014515415069319593165953169713686148620510512213522598454590911869721364662620935407508288944521992895737420228208904623178341770393164087724823431469930849436467031139373230927386094417436676926624681657335850621708098154846901787515579931798051683363236951159625901347830588028291780010766495540930930117476536114080147903229479077509396482406322425130335353076252884535245224098076606152741092841759826667182216409781428519622492764582644491487385509178922783626011784294036444665216720766205749858937571792608630257583400121680038544518205576183880281907829247719445095216789303274015368110830522168541843972927105657393812322395427490842557019965151866929193025696665231190511162543584721155003048115566648983328042880199994449106081847059796006412330838909392227668436818962897522635883269417860665832287704552013846140209142717687557435768984118366222264558336081256595323414265216283556179236446823138867637791571042705644117547404388956307414116850290847880727661417859229846524486791653137153731152401642330780172511407311160318653929100904791629315164444275749088991820550867363995605179488745031645143056775777377571651021518436987150021203222212039271584952472754418577820192370933167740114592185143464177333838351006824487701497521505511522915072807029989471640575480409581653702529798124028970386127516689676913513400828300482679721929328869305958891001986714084471175981355605725077281820623369069482085144843004057761041887735886730375392712121494764508176167267270166672897036811844584572527979969573652751869347556038395251500652088960086838658405141797428744707022120008069016375799849999990274354114692633589402280939972863660758431603711391428824329110629888469786358418889638305464053224207390632483995927697777503606425024687791702801621533481239247125945148904278931985753642873350022713737539552302245070701970486191457658886774195342080488136936855352540854369262195764809296718951187219551139086573521227269990651391560178615771358827231102576935184407495244263922101777186758933662322502363296787216247367364339164988968544067057908475631360083497254091285640700017625353538648185879091398158724595136436912044705601816023629572103904622865747387551933301410788505689343578394042146741782630441288579947507114586445029516387886129311029897049858256837842651485822261879153583134556678728929376450220865889438328218028093315730127888473633429367403403368770831019331389159144255370989293677044582106557619525141778026254001409109761795331238361551080348535422759609783129764519311617259662695274733516014716602787839658355581302844300458864915285529914710213672482125564022159600302577845157571450112680271329932944994417210127329307908490311365126005686713140153356109196262151545187465610153854846608302447162892997715668859743076090295704148911533614392482087746367064729495993993250696551473063715472080563591263615353669654839479032220109890342505350356014147780377621659911124135424917847587353784762989500767708616947584172417046443346650669338543085977838379625385776065350078835081781622102963344912715859731382115748023272039863991413440555467559298041769988901889600781079823248574494561022586986129581382474968198448601327236898204175667357370848652656310434791892643973573880407713345990099619177795446018220521887962821064082305490241266660151408680877887036685452476846168315398943734081148701833899183693272307823503817474562201607910739131831976015363583051562573524131304573413847599754559176559424075668301815589205241873928114885113047410375633982748713846576534198691276735282407477240375857106486180152960258671807637329407638527314599588968061182815055673436092713502001438391934106220400047741452766824352789883306841716727113078532458139156042141979088899258316877679335628599055206329574482355026132700511204413560399743574904027414749926554038387819264256730598584366489827315712281893762890964887761182502265482646891075426231685272821135907843615325695298841973028534426439059633037636180937463488888873579935806576846581448417496550951699284460452115274794958938466872360284793810470025406189362264344963718486601770199193414408371846020496948730123879400258948302173432063643490036681957930176062991888823620300584355156921928566741812072877098437456842769593505818372358270026920222503396049475432882573661161717289723399416832132205099394555816413020828134639828368156958959822827667836673362550004723971967500386520228235321660338098449167676396159455538975618186790176629616653441606580980962208988358595142524174186814247824869750817116977213747882910452838173940938248664366966760418965313756787930159310516651783195457329023024063170883675966393131595095733046605368943942412437189494724243558518893090308771625811482174334297336616501744729883915889211029896985653875336276635542361499236334204287474489966194119803949819174512450891953818750110551138907512162677476291340076671186275322241753117635063855933524374517031237978976073621011384561098315636445108229141718714167279310200756743338703085259158249277536167936731109222636448759878616874278157527064777083216530878532083181281548935363318815190612599797632459674139621262679394699233592731578177731494701065953948263749569884791523684130423733200996408366373329791230889006132597619249162954255999463076641518906740142939380528189662805215239666045767022064190884726823813862993421023149276020189771687399021392230236727114120884141299763666263325466322733214483484303850129390364643959227450946134051099487812627021939299339560156387432169412414662802930570314114247106800277300554495375590085117259792446345436835497244935964440303985056698937096919329713357020022473068559845156522771427034704879061490716941769907205000794762024814810587398306979374980710663140630278642645088788195651137408060467798869176033087747708096284803477552168603209164491847264306120406998165676071928373284633945168097803112553954981933888784263543918979025480951249985040414717132984115132202634115658642463680407077687326037086951571325572720324110852328068969631273710003820987195534528827042709180381401627697915627781396490489627477539162166988136321212392185172012351241965897549760502879519902984900370721273776912976486040268666143675137034411278680534717957213212188224720368637844254642652613416909039214152672121508267503185443956599737520525510019323697955121452077786425417006984623416860641081692420054812645704668389942858942643618635067861289083224693446658253969006862921699055402101833456573609041937831582510417515600363635671439384254220936910435150505156220344825609820270265320875486636472121524639415746572760154031515341539919368370938850390211405571070679662059685386375635233518761266369900952931125081057811801740553418695814546577889179133897603859236582609406760838473971390857660732111595178077963818299327622341172848043656813848602670398285703131714529440991080922996531024075552354615036671741768898040782415250096855288384559362994267160230570621015227977959800216804165573493034964204844438097390525830627410675232465818434338152913362124427051113814843156164269003008231257594927844430418847202804307694349601361856180186479589390086597084834460027292872521910504697908793008643735368873026022506297688646746409734097752077874802371088608658090739222785833703265487684376021039923667353458796977776859590997201818871362653521411039034510643808882932859450461803093095070440543680536827190761705032294117155916750499486981912136830144470678356478778940958986385449240774819644006490229570221424522257110455368467379366313148353637864488415268733359277898904756940407570423305349725888055590977132528695499568958432901177583589117844836641018506323676146943589167052134154339697766382230053137015901974505255264545606201451795572266491150209783110348980466734789159774192110030543203821230355785660481822972529354679970780337358784258340715432966409049017207268502376142810920789674787532100337912566726449679488444578024788767328289835341745130644468628506519836114878519209393362120737959623597730512704892659522144049123804158825153659608957048871369522182760853165518650093253117847187248877189178608614175782666370162506883548843084399849470226176772661390605466448158838575050737446618196942521346076409488728627632469069031982524348381571843230176958552388902757911544789836736277303914917099540971594171140053321694537427784233167431040720563789388810069619170190203327191534809461927654174722258854312760728825226448634814439331988713213129702025555203697707888741892290241155619519492163267034724187964167211780693445219028242537618480529948419877763346241433246146554338717929031559747535213832795616406648892946290514537247973393014140890005916853651252669486655396243729841671152203035954520281300943772699969814677408514613974082388257085614784488077914514995524232418216937342574406608374543311715099698793924456258815801420704566509264350549939604315079009924843021923524087189835254481205405201253265729833555979232790365722038805722729271020389865437118923580974917184477477872397833985487650820935066127462849879348701711933753668005047024557926151423098707619356841974929301351279176144313900664423519134027890720711806196188775936371486972154536434735241360268380608926817913121777020362810602031769534759856400619493097724233317352901333019137735064173007374645115878378218781130743805209704619454563949689420436292928430689982561115433425921855010849842718084159863094442179460208852183799147709217889208824869492933757698524358012115275502474196679423879989192086174478582734786205280191418305064080664619698031421436201960812695181965372735635901010644624264249079532632916962445218806901885909240338366675704395330492049832777741503280735177904799490745022946464587475741196848822098119072892684481024875243323715128134027293418776713068984267418962066458927346515252298862621149223013883427815563782932577660061056653458023845199198028339409930940853993924418342819192533031238051086686431029897584894384040179855488572017664264551437765435825697397949492219816442456142750624557928556558284324181932505062963163313302257162590602431702862841023213374976019653547248057823790420504444038034000596179156633105891218072519724208626774803383568159644965857333135640458315200513105082822344675597237072007077401583011944309172450066595539770780647141622377855806329560013753730509670745766586852084359809594970798052106357217116018643689522423075004249337487141555848606789748326171745572260941014112219140771114869577646463786952374768564945935171418295432854099584895176832510627168663220419464971796645873574397602055483538457551041519401099692598538194934954221290826545664619177956497246942538652914465387470514371444926628444032532984942933375233121601326115307238058972475259295677472305941432438094029153856118223027626182302386073163759533011566196261665282665761549458859329687228383708791437137727352324338492264366428106237854833431711409031496036819331572340200521410209856778742332193473541717152234527031178880263268043077647533961845527710308636778619629289438591448877862984223325376669487656953782965632021339751712687021881561363693384459737300772432649406784302248654264203596689252365127313241068005855884685917648468745020348999351311019512525004463909722655110831642976470801585269590122859446392857209000273560179004968947739798126832340517977226135174515037178954548601090065218025062721476241102368526360240518934807940749468348365486223210056343712464341291479785733272570379482615785759180731372751340997720047294751732743666281172185363874154574363311867527847251892328717207631778963033556437510555960004743456147081439411769055801868303799457314647525603247508720601259245475557884617700600471919870471303043458236375720288967933275307443446296726374333253715872137154384545953668715934599623001187255260392291656980646986227342641061542481253799388201299222560547177547228266971194595678166211360334034212661958648155454924561757720578991606419389585689786797856753617490806140517064419721564023742054915545124432393699695950711802465395391730220385334810217055978901272661106819488698365290558750218803611848748876594846432041436060204278244749528680211838931904330892332315567490431807610185016909736438720029101958653742286119742025951810879617660783916194769549766407548830260403096743301799559274487761122430789579640289186173585939368133080081811749877530077160066871814897127572297102710030590115868932836489853374304319882951469398763195502046112829574649275564892933968270123232039491582995383721865620711298066447459247011309192446580946203771658478501753460922096481041581659729618383740567283550455745837822401347754254875196132902511792853217986898861290655689511465462454085078756652902056527836740155359645673532199554880416143676442146964902650265868209913008887623761623916360136165314204263151423742066990785547725944167527130760527322734474892170878953713830875287649858048922219360163589529079030756654528467005903915940224783241647284309208778178660107450538583884073452960857251956082724846171529957058119230340993668463492501533638299791502838275800408040742047865828318568635086459381172131220256535042253276554135634988876653252168395833130858037167340500937885437514382095960714260830725879439264611305255099849659424113882153100313164374529720721163034848729119321515917315959644542310447271484513464684145356136653368099388569476448127773290046406804552892998047694122574010764927023537133695367760669382275872654439796286779104939088715638373105960699937727203468423549568072094408602463600342245808837375481469819445393541449386623834570574480245186821454163929339716287901918602160893120147526923837859757481556911022387588077474903399851302307088288414932851084418807720047435043797222836056562910356951331055600266930873976835981647756889414769786160465441482631584467149859488180917708324550573694252461522082606431912141275581215099565652401966744134390795697248069640282071148638806669671279975498783697770768085188035745488693815208787649297212906975585108943353981774902516966374569958756415908749471218361327026930259273232960405834865056647853212296478709235066562420712372050203270500586752239091700025333685312127987492381154093224687256884090899898505129109639345871000867831907945333658537128911674417188448396801027380227815336070093343531933934485099030678043139080596555567392344225570064863775994711684049431330080818030283384845464127444227701540850972303588662097203228032640282132973599140449418387013147704675784997740275887452517735657415175029636460867521537489388667134660617016951620233294886037423642509167954266828680634784556437672825889597133227930684181867709476624948739515089299365732065388861282463683095979024479298238433925725036836297028621445900492547989569146764876136672035645306730310392977913882040992361483594914557742063120663371187770381323198924954011248354723941731308267413913757793833948949127002317138757130018897084078830836972105087756708809587548029899782059721285886144903735643113350612011639791016289542159842295595596594155237595733865744185416387426121334027649387788081250309558818645188167018628397500604030872820675493869833416789918310754984835087472859653696112086283064811383055038998849885893687508930882397592371473967451849261945519384327795855014080150519799209822886519926014686803626757886445823037193331647033518933010856515497521344956585270512236500807511228792587233046601643923997016508569346617844009635348801748268743082474688169418907419924072596289848464801188474459629999492963582521817596306607111115722555503396766075650096364060686288669827555289791116120150973209788988931999014890751380075556879732761052076286112390623577937289540048731872574991873131913285210588246741436279852322582766059305658621892996829548904198171077879599953957172424145015929361218552076996306532996858447962465688703990741039713196113630540712646919221276567988992237601642830870668963524913474647388063655492254228018351531746329209697381029823401824587350824578533914499518766276255785880071610855047239521628309588819994358316882380384436918086366437426834950630816590633738505133307452368525849172344308450921649632214672314371142459046824955779561926189817482144482140438817823425446925926948141810133598672988988908648781331361747708168399461077617094365612763131306532248636795666816616126496453125529973954341609753111309649505457230367267717877874592480327405307609453648772496545208165388589424747325278541366201722894979069844903818851268802087627706787679029848964720311771317281569633982510460178688653808633236903122872031597860602082106904201085082619912849987597489567495144019974181141486799189885095202051991776340830032842916019092977376584790141675611067226348842651099870555859049896864992844007663478449515348900513907057882500894110340574464889566018508825685744634087418041135043354699439353146228847209327220942723145621860704615259688559603713628676196137778471799178841270544962117866681400551282425616685455274482689251743147399649285834012002354733428589378322995105581752933549003279782144658367044758759861359299480164710865457385599783742204974233567607330181628537106720263541121829924148736072322964953957375922310617883041833633905158219800174567674473708264830467700787912506758954376344396025694848735318710432975670694641114286962165455992346388220043414018642540779026642125740852320805463801743059772236761482584933694532317359397860708834224049417412925130333150041129134162018703631364969610869005565858574426032880946867634706331075632632321265107964803574265704893359428284888199783235094485827712888481530313344295215442146108651569963997504910041256596765877442484824120149679969368938757754364157852180134056605246880497666566929634200343958961653309250432220992442387298482232680463509167139249510316879697336095533038541504383075349267678883159663621071238722058056622534632384911607912828638950823163434854386025715257731554603393778113816153521784334170124246607776593135561918950716510252176546933299613995329284511356682602161057070640143695216993885543344123902849546210601687959179979891208141398363358745999253423108029543685364933906152069400273225548957744903626017563563720029112611126318133341002915757182314226470782856865980401201209797181799440910973672986646508126315854954328118844406864148367539987799123058001127524024804472134391194104623608559177548561825204005999121939462412363676322964663429269284865106495023054374647863825322639619805200236306081612911700665108180381104739145203196111177508959108244998099709770898207068894585863433429610911794356200720470586614411080983703614622123532140753443893362541842588088554803163976322176485373203431879084811283524515148864753100227150770418245593912075918116347999363437484309008436179546416114773258179873228844927669842123765295764282366271743238756173537862233551684414178437819866139897136016681602858014742000772752388022105850233224079955162972473726760889241031251780399062753528596355992870795609914238074671239620756686391529210583433228829236499630833460028762493785967066206877782933476260558856358946464403187948361987229853795914681293161729577581530638173191208580835703476284855755050713246306227604416215875275548415334733926099865137494526885494489993885366046066786711537464127508654178244448982583490324717017069295635935344709033470157302823281179801052997478579396898809326069087489112954452563666211255776335170005774463469793446781123066361544817620680851955092367948316645518387929275292902105057593740590521815733683364006655960240076340031349357604679649506277914537580245143021140826516625424237704998702792334468674942476177490810383189017200100257875851035246609789407961775161942575943498827419197204419179612605228775426474039586256333173839978068355866843133651710068498369616576364938541814841358868687766831145914742967117694854968916566979899667820370778404170449940163980179134840404799136458652348519461152380802106691919520479296779367437804555216239272697858543518630294607931269776236290832556162745203365740959706990598924182996485508129807637225616804833142126173272129331440958325909768464424068437562886760968817659560674399358054379251038970042320236098486374994454856530307182224394166538006028734999659688366023495378579806013357091553990982094975669476612496300924747254808169343588068735579553125715744763685428432974913554978894798735869796072543526444926139189928398845959356804286368236822028329609052502702183632550332387777930580206424949107784167397355984738828199917905685417568856829668666908457115754077127843829011301967409490476730158265085709575396282479460276152942882461232247973477641882336351914525625111073585762391477251088627665645653327724424811702736324226869983906980019166075049421712968796814874422252145597391365711610882499012990262801105661715478305295924286827183007328422080005878761389962797541730511700724860512694613887629685892308119725811347596917547618226608139608147219400208220825227828658682355136596163000832168688266427266284206765154435036188561800741181337149324091360435575225187418198033939340760647752707505214337271485608225627367273796454907385556972022970579065609443807823831123795357843002380060576797452857184996580692470038800952531486892310640134746225222766655886552926212257211873242072664115878565735870809703716947623323656956704458352334634910187253351806628674695237811068762574967027193443137250718297652584596385122810446362489651213127869082513685359994923469806545559971299785990821321698681509459584680784298979415352257880492198174854646042226841635567187345746976703404895142676616243989608417785179249176589653967340522837102442337992505375414759212704705493172315293250589097840021570232718218498016583997316746747022175133038277258893394202788050381043663043960659510242534598611973472464463697966811422692044309908315920776505678733294697722199847221361752307820179492646978464521698928190460243755350173543496856735171055369448337772427217703872960397727453972441053386516477952656910228001387847463090909111162593098604497110013837365703912954256982363417732189952989800107412544395130519145827609733605818220170217844026080534547477560917355848245174663230259522985592860689697463634378643213295764165979067269066833383624006674921876349910795291823607751128663239355482181156675372846054516042205236173582109960102626549635357889175253345619299149538506810199959052621680856471074238373733822146678222452171810188044483314098894309540189630124302508036398831406002600030500833130916320342701133298581824900183667331905205381294105611795930893467081757573760502939743542483240502187246392083955498509196747778650857236043868625529761139468616884499154523775239394256494521639931788523938074133680083523139127907461279303669414487316340936373759606983226749671948296041168332462451601079960741449735479037376461703529068561281994764980007486275248619942752701988357246434799020802059401056203347317787934170370840022755991149956757573646549344600436184144351243405457972463939317166770229254041799454155766996341156560140539778844755701004147064310924294018218219973156046230748420966029363290516892826743812985849461575891935140102460389585055963638878335513891578615686879966146075687992917318929069054782387123761106766097359493420549799642383512801402267465691583435284437157295813204668087435642819509978372650468089676536333908833742775783701863824863752383455343177794350338246706266209255215350157037849478367656184384362033244964495597515695725558180144000883804940338085124671314717924371157120805259499257338980712823232664367389905978414953945684007946694337447389457714790278398213993632354442652336670389326830583688475850244018994297407152961337072587889263922221757304814607834711310037220549366755585920833418152004382005402754838410700027334057697039677476354451407076797952824602405829513889329923161500054961463999216162007596358908686316536395533003946655307700198879230665319229320547572189799072928075447818893615726656294233430453879014456025143073879995011345657482869321541493824605755818068482079099908513961179450259490684290192587897004628664692516962988685021324886176143953617119314054352823387225880189595436651833908363821003035578549636089794901035070160156093391914156024761335773478221712377013158339172778747208317832394289427791596672616640334011351121788775840346118284326435575516536395402802271847593345039451036865560990611557654859297812120843660728685215263379630263843647587668802323082789431564797199037903649576715363826933708544212977196045988911063895672655701190256128199169907083908052600335142497801881790525179972889542799037900276402405386878369192570416605376400546701380012818663156199878223869448215482175750054075113534025743922932526079483184240156378632500704357799278594799283524563509546132087924171934853872467469969497581232255912693801465466422350787751734541353140620678939141006927501803227045258090098997738700909269821692585236528756754202391071777243279420091347160117758438990117226002088732640422190845757107854957758348570915177202501088936024052051945066733381898380877895259827794994647310833758187771019575363306715048702641059666915926435750656676849198064958320892072693717485738495248266533392153090690613892800968404231862986184330208454691142216573194911992885489844922747654061943303769183616292444508424742783185895176181411939110907538495938941796394815301025511913873447428015569651636849466135400301146248663909285967015438949976351613969157132247916616662007148692984310038080793980349564351659556932216639827862419323882175853414666403819934052123521190947386618941247804832885685276712053020951688513723521707204240977474770561336578523692286575857239536497805213141426370776636510364856321374838477685882848624990445224179303082576935025954700340637822470045858268974848478070879592662179640138968982373948028934542947874158689262368344571532932937914312275544289742584707877894050477715730507100415382097682782680680191324397050794760681856671859557799720329196914666512358057902503099439365430810328965891734165530717700177170401527380931988010710775346017374674476326831122235187173741643720546640013191116855044492606687875620095758761995224514754842803765823377079565229315075672183906460778588326489209074585049531207067125242223025717290133463180427727408407635824252650718879321474794491633556795892059701180409045272468778350519935668210142629757851553915694010903511032913299862300394317927938327680913241723429540426779004786757453965848478276758551410718774867949944810316307135162279149219640832094398270079439055414195719242483040071815886238844684585806333402789952507554665653747259321384631577988014423276282748017731711713534102456256430524233076996637702735689396601481947471859487415905595367845955640661625416145070215504501688847549773537021539388286375819461992292795600666816502284440131793515057809969355475383111474552280208491865440376233686104592661405459792408126885506502417793352888966641991339053582648419817345441114110518509340234762692565474158286845043529493047693660646968885805354944662592909694161030351123757625945618869857988464212662168505008509617734738523271957068311683952468908941351528073488263406404474256103172582581196086637790487996348734385422394584204513577477394619287362268963829619561333737489028963907797251955186394091163024972199652557647499250592832974803503777554603672196207826820102823925685578820827613066786846782461612578065845800635535453622247625671789627032507463414197815332840723883377659147086781115886693525383781308523442016739090002603611912768672331233496303528941389798767049813142630159143778526365145778282608469091889306310458735970403008820544275600837387284111197277694069445940600899236031318551700404465844395024919576211859752338248486391013948036620907069983074102692704405977327865947998407101339625243698826046072993859222971434582847655259572739572142716558284929872948399448604003521699906499977320670460376561613318036475092478327343493934742538526550000389305957106621169311280626596683097371032022712999299425572229818302607437339394539379477199185504666152888719556085825074764298739452762315121898955002978987041374542174484015161160953765014305753982906091362802916341319027435323477971339967176044575270117383538499520329033070984488155896945698267376393096040514910343561894256078284170486053555450033157021942165382264489239492576158708164455630872275286120943350585795479800019410711951326794887637952167466491496058955393748311269228877340601675483481252626186172106832079085311203007091692930616352533638726108811644208785024317683108996777535091719698120863006258147027356291830005075923115188719404742768912751365882155462520296893832019923835713016344849398799415200410793435869942717746238430120891631250206830472456403939769026376454116409611468544708726153069766403061394452834481724637639951405128675695040297716590049363943658451517317255428136869815724298828488028753950342584335173662666014744919053850341954720420077358316661659699717975284973723444378527625742463679354997741238681103298649948459196037206045601139203479295404455746282147052772355096444772637532488647361686301578867249830212470482818359971049165206842095241085182495184139087783037594051100921525162620080416388924071379704156732008023035502079424221649233972545892363029894416596228340097705361150027604811314446395309712672890848857767366787718703307707882861922785400113574090370602644099225413332034678390990479626637952308174695685098402734583932871127772497095233176116257132934529426322309046451467348682096270284170326381810717195205404024336202248079112212990209411203225137037984521219920887877714478999023573740520508256858362673778894740803736636157242697861291969028360106827972331389628032587862936502387531171819513919255805477545224128515652091634638698211990606138817807535250142274205562132698280384411496905076860761001623567831388258684122417571847562243888981533010171849375381466002903037173615744984527386453491182641224780087255468233006401718098793889502630553238437673872702113538013201662854037704372545266112927309345396554910272354681111381669459496972892253163674231287861816122763931783025633115114414976698361897806173090777505078514468295295659900152930383881505627035170369917670453184650892226838024070785867130589470041274311853608401957541020062599018716117330095720099518498760053476136470535399604199796153314715502421086767335157622006018307445995214967025828960803428051463753255706536448323284473710220374088877817169333254444800649307392202913993550698396480884183686835626403155265348873830304056006534295847234746655844980354254263958293524687576995060212876577924368985556231617355053487717115054632898133216081125037178286034965182660611401037185046688224096971517562999199497526082041867386638802738051176585187483164617413566861544916011051302383550047592059653682139202961474339832787281198324138678014024201262686656721226622169651397459953805445503526401632897352102378731394378364797955603392308838604987050215767565914261883146906184108708209378953538308574157008119856194507140159842189275787925157405970640201549821967551054111329559576712895074083290547432629799733093196441457997847238472386933957766876932702118081733841384091475124735535477941764930305430195532214931433834417186483779476529042641679708649646884814498967376242165791112270596430358436778343053530527484301579076546346865267368762974549207076932786216314861164298258325002251753746862766005655417369815301046684171897885798750860577989945995554919603070548343002583323658239802080613562446574920418814203847118838763240203969217907584274898250210968347054525563844629331949944954606107226225858755502264636251646195548592268800162860685745036281336047803223370748297587134617525940906534493399908404163515349841186031879456449993957787407412207585390072943742238453635775647280501454052886793775168330367726235095397117291842253724785618876491564479945424719342663750982237500459273141035603485518770265922368376006964563348992874059692841519840698570718496129361435750449652666579410159886149050938088805330978217969646551606255019280743264335878619592694204856004241770407267684322488480833926698032040027175460582162507040313910919449789541383874107134977084025106493736422370151395959391907657421991016547189194140215313705757670815246285181180656479042993270768623166953309515715584542977662723612633335511710486027724209645943050661862236636292159327337476162299318214549928564051494486960216678207352422488804332955124626559400429725684445659204717025677140508137414318517329756016610761209300175070154733273702995369410087682932669645387159907262501838710379533143022849917021661733878903989318449690121337272638484250088877749835600387798184076908214949693009493260464248410080615441464694951634729352090368858072493434239527075298128759698396133743318868579672678434041826506144307178293625203930434930780659012681186431314706942045857453603076589933881011101578484522760061664130069166501576166186710620785620782594232831277744916509058013725977000609449408560970297317210522390753760537541072231601081436226634796776007892859252964449771676721346170865885164035116483592159514673978256178841203451194858987102282085515478715706142417056474822400312178820025705217010484144086415869012899778204222627960158662931618439502896923584636388643458082973285621373782578407341980664263257434843303289607827683680126569239336876099565479350917293718705147018918323510132082533987980014799051100199225132324176570500908924004294849302264584293802269289769328602563864361496013565105587002939124503559707355964851107342620385914952479100251187589592377295883501471514284468994291364252352066710897565897960539040329943982622698433337790091236388411349321488795404248746014473178315737695169791598597710251455048801990891877599811231683369249194680534652727050536964301681707768772047466179702699244014986089276342274467091979512718997392091392218876848238842046965994042327663663843346125904370265941701947167114756236832612324091535497292218873503308291446966980750616748470550895630958745009288991232434271510789246727331091679674042867108555330947071990652457567067088225459490419937853368409875985170956679311954298877765542636614849524934908636519129825118152503496769177622916411776833856495056956327809485178689354957684811683548227107655162199330536866477935113279888306933653946627868870426040859690345143701938449480728968627362805909033681039317293444935995270125679935406101322760645429599007285176468276137163038569211983584184011006100350096581645974499678480764685887008050627690708899853024505080201770754476044044518654785923917304522229341434112595919922555385304033611512994083449811184439743323562937023831403773289272115576195027605632696651964553397638793770456672905920185845577418608674319843890967391254136764345028692384647223299678722938742500792854648028022643683670674292470567141287073636067944171283805969323223647498128130016131644761134352335966337144068887657779426914138336987764858073887520105616532920099984048253780745556611501768351361691630961580168460845516745720154707929525070948794053486409530259194353406760933816302950406953472553715132184107069671842961288436338992959620899565783477877747852078832463921082329799287792340421690815247354158029063483297746773089579176593458782188834720087648743034632842958027441631866469887387682578146578199146294015848821784117685708714525108485202110536574734588410009874491577913704787690052941941721656013680215788712500907631865631840861111167327294452901202990557280098857428640153727041063515293638356036223067380518957810582824928370291166195740292199997046468489166974176663610452052134771676671662838259318055728315453776699376110402513899174262856873844638984917924724690543396168219899121008266249428414763492203343318046114652258280680996669793488868552868207649095799043752474376146548924484673453864423466157806081861517068887243585749098096821938174396589056032541239439547293026063136789801770559208185947763082331739689332254805951167158541636937994060636862606784793928994575153872650646855629856587751769022743038556386771349221062141634544295239503656246143398121672169527541912020035526135522448236881114852104921999364981999126185756471118718401397606958462407544431699464756766596088197041537208390298861592422921986141746708904079812227828920900759666265735724043685131262877341079156370959730497075256152672241212077474154606191667882925999347237746588278852018026973617720674824164714292880718336585106729626291288890106121926263734138307693766217974314717064082858359939018777695982556831822319298696955518209551736173940506603528530279750363442739871832544873316769695225132485303406824141951182268843679157045150935315885407337147896087127258449365346801801791228051357135954540982403356120217212381498072019164386533804893549900217160715672139924763539103831757965774199526239630116448245589222004509459986742497511356441472960325743758167933127153499567167160682654189627418174179014236991993152907367513348330358922162887670144619416536592604373744092446851697682339563201028192092463198088943919350301550714431658767393617732033741625719383068091620202024707356221551323301513767996341420550794378006451103808949504438552853983984694021835822834712066322594831358685788967331217964361756071133316447476415534530651220964834839700797911108206125095412053661379777401731747484088527319878081641264804025492361976015852328762817863484278860865114477497377235462870635928978067807134900048541427358691848743452717354522046219158106866167013744093014990519279676713732057554519440012292653106459044811472515567608475998642222990634934986355423804868296225511015895665607253628379352368630718140294458511767884987291000453850495663967151303790692098954872938157785466917362678352801182556231390931416159470530381320635491500706639092611404500730484535556576401164316067085565749031623762353452105859351425631027535442089649340708784093482605960392425353974502883069973838950293133773364590253784717790535932537171218693899892551530448849163226203108748307714212689779488154860277457509184377943554620659773403020033470137159397509329952042427573717831268397706436848594626525517914667774731699936313864520991165703984072085658115433932620732265139617408857882615122616835769518115278145669550474350057508856207477728448792437566390806147030266328552845314147989174831427550075746606682450889110789712170879730934826143655943918162492092241083085403872911766128160617741829408482089984364348335043321683055440843541247795235087080880533295232273992914786396897356620794589218925689433737574093465987492977593601728776908654465146723352112732146777361775097591140019549109209039621399903541032522100353043471752738659457595918256050900037784113653160945081574138600466050045350907097915696434755758830749925813689628650288344572857931672722486452734234659009941729105006093874337393598165111975107876427801901560366604755385982748895941631680720351951545984297456529940803762007021017926027016831975323449601593620400880046529553706453836331121098188245088405570551892715839634291325968013495791086098163409971786221451141665637441846829355194407015702586159481425760978324149838079974157126417592971154798777568235127668015593854230729756679899497290465941859335573095885733079882967490427623688480680861241133527781322118912155459173717195256354657783022635319645832202311488606807446247100993103830076225434192784169911008070339002591068639791860425240064556699554253703981715520826610892422475918702661044212618216440872743941680423986201648235592419878807448049385743107513461261520246813081514565192523767437301475545385219853415732099905767065745120554027647402028762940962802723002104210578172122468933678679815123495194753591951293767082254083430265442642180972700025740914386732977612077456137949814830324824281529443785341023035400614365010000280150232081635495611784423278873053509559459257840937476754023195617301993491587875482622199949382726329202782310204655015155610322935427192500185953782665300274159228193470568359342697485485238207872533017486759601048956467051064207791203303232891387963479645142684259750641096921710139885417823825408344401818666797307258128893578700968369242222330062970618534096953103586893782227887403616363492405034732438820781508466068790810100474458914652779847474394163915454246533287493144104619796700007788786843190876657006332441136001192621911854997653710414250223600236471745377133513809578283973623515354680994270328987602250010597461861438999942222166926181652193126340645694045306291422476582362829896046654148405445915669512572908688195625546055828618397854190837326542599489726356087041099529592432244169656019711868696395986908288759089241559983631461630921525046033582479744234473167256108293468819315684936682742022899421987563156082484599537776946393759239212551967391932558594299012633252165751575741279650928456402707739093148443953932447760592497839784641073234595724241280620515225388522239656008416316627837556049653683090500547191400006989352959089521795389331707222180988577338046350729645814775917874160841312357055904841600292110856095439778938938945844904924218261413263419078392575792446778164780274864015812379920580705079357022215467387359819871218818954641089065429873280809494618196043715610108548033178948391075966451561758748892999862127787778909926434839980016162769897567074606237363555973668223515421952986234593918968334771523812213796016789884881336146358627232053256186233167916978037700648387914522779555639852799433342519632552421145502406701210396372164082248392480002840292053071601786208373352444449723600197517878979611187249384765205960853273876511681066771259690669281461055226487019948966229991324274214072760998615274381253000045216870179222758833016637530553640470948016814315250409966495768333437953098041052396213919476986478052999211783497486710906854372732519701936935775229248437351112967894636388035434591735512174513691087558755847941739527196211103163129567110301039167389818065820785147089198926841310100947128189936693405048152061814325650670114671689588816344477484588165931171841193756572993748731384567306360910871792970668269141240398986745307767279642281444954588253394804644600610459911951556254153481113269194971351948261112150709333546223219840014431661126314384980315817872532216748134116770952561957090605673034588497261460597759632885021211520613837047749411777415954002979131252253481703905189874027500896612827123943159091175870933602049105327546544505423506356524551375236077460703452983075027416629915735134525681898257246078424308777130707940649169552251300611474656284127050547241101419640160429547815115176228170379034070610910380467617058218746494931443514436994253542767805672966945980222331313696852458606688491814960052450235809235136334185879994330496523038583794136227255153782419840576245221675878112346845284912740378828936847881670616131110428570081570881072759147482793261202762414841715118814921183979444157367298140789884606221742369512265882464121064278618689679257764454432238717454865993489622081197412533679749533517020670290494366295302496153033261876352026286597750275013743580537737976547828488827304515910794864949131440251084988906080505048146564219876215837814437747519864943428187488741243121597236127981053989857722468825864579793741803550669389319263807962926672868409666980728608702369449607413529870853947216581082876263792215956267619413182827188022820598874253414560424581457835131998121218810878860793293975819870399828407387366388970592446738103798899135123574440773120985564256207212150147763081389331137653220112252550173662101551601182949274024610870945340700834303194633516614850616204921001042348367654689442095545262112940701616148587399141657395689296517561943743270794037787849110115528408480278317456957396379388611809040814046663805150063012776163749215445593457056928123967054745503633257756526511055432682320292382189527266324050240574415786792733877558931113299632295288554295320553526412983199182288799219065940848549830997971388236367211519554120157910188733947390427230981796871530105822375795322866585806692205461964550770162739407210246326812370598886004867017280926070960786317835686498539407480083002632504549388927724692787224252729156976590349981209991342231985959254515885375538104495067599211793173878165115224499970654307713161601553512075972710466555265170197118567361473677136656085607636194449725310399670775562891404409508316235892270996770762653757608711107952975380072925820979816966404170571789759938656629990377508985018432992094387983294556221317432936778061630872327928348645665272812516365034268256332341172848696743986196064602080517907328752980703678338432034336466866517862780592525879861844843079748869706290173168550400335743042648350679101060045273149107698758257975823623092963176748326799477417499096574573721859971183348270354035413878830126416215996715596639218941812567647192664407128443027190878967426116839135153080278862488892098586378941921613412256918153573587918661071200453658971267583100903665693442694041155861678353122725202609132395671424578210662022292905618936705745816582730295436363141597077020775631866809096549587710752663703391262066258513259574309459441122285582079009482943487446192381435174955211640861810899903669101227091583633691911202721042308302261241657531626452635813996202474926428034254331174618723541603679705480207572467814267252127854391711453810955354557434477823201033911238471262781999161007275267866490316608741651987570004944866363291064485030823057571525893550868254941824629607623503572939901478030132374552982310903466653161724290349611598580881646108895707867843272989588287401495965667135726018436870130433721408212851818488039419102543770362540728608607861353676707903420495141531249544910939895604519073703080188012121474598854066582097003780491156981126924216884449385555411838004158836947456090665353928380937130732185258496531925984528851329102443487071392815193852004881491139662977970041886582354256286868503405514947353534049768132771278034067043373570243510774101880730528279149434760836921072285341148493686436463023630324069444206891050757180264337649509066435912929118153955945127266191878864212400569968736001785598079085198043728782262370299178949398345062343061872688427570428096990935297658208395579194956567331931753304790140456351110739997714481400749349164148588937463063578758113867575004742789525255880140288660624129319798843264650614470000611380570249570223796624137346408305196024081819947933122797632749461215884730988895047900487737796430950024267703355813409928022882469452112343047637684770801553463678975116203221660241039551983861970519697297752885448914378809060328091526717123096733886147728867772527657211617308546760930572187126737495191239261486440019816136740077269516892337713878481261467362469209682422989991164011063023388029965970908858145505781337746339911155988592871722641467964852876150275123656862311130563048240333139685033561884450975834159658067919350053999613991932712217667984091201495154454711893890850774488812246022234396965493422750570358396868151423682396302002657162737556092090603883554222305274864175218260280141368071835833052442410764936661222619126364511459545925290300937040494062020343997967369027989784794217492718918539259992524139519369540951323443313021641460566684739411670055837804079625209460870393458089722762863213616080798564723317049678997805428895441114841558789771421712476362784709486302175145562675194721690989513820175403675525206390850754168508739699315861117745926534102086419194515578331997530382870811776825480216393201116825099770231463170144005411002666007668509227114457136484335436730364629677153008157204146187826086770101989409722523216316134921552340711469050662693058944810000626128150556385756057890131281883637572530942143943161801861844990175583143575413023450493300162551471884392495539067702135648058435202486028344977641194385374978456965112743596772041957449290453209151218883172159287623180649100712903864410511472746145187226615128104028179248037141206953451612873900374670570688448706083570809397815753852481981793710967172405919358420975211392401056129121647452321041063357284868278428711250881705782908003426570459502691678085499571275332168464648302411620736146642323518451690453314509545712201453945215799865718729730362772005876994100634779256373415271838623007146881662261092875650321975721869112967754832864981308607663075799019874912029928326010070978438224467940095655891001411134674121734901888244742571532821177205786732530024895944260726257144263816971532277471304957203559481295396993056937660841991596943355767947200470432444673630308753307127227534999074347856741236955755025209041078397119383006727464636487933817728401162334593318662602411921788647603748308966619171908673141571315201564231669418005678934182832821989117531520923001568587297083542683278527142363303468754124561128545660149891242568313413991309998620019836045079041606977255154223041446387031114668702638439213585358749407723556128354910597526281088246830615036665343159233328493292023869977396403299966004258092002788975739549394791685988262264953351425805268724557661743903014968084064624979382954998480034458139064967143448635737268994269526968210016072409909719275882269617598062373365971477708654042143763934311915787158732090624763370446388362353387235057809348867083777088410741457038204963613664334456633078529921714305250058203022898969280341291999074670389814196169566895666826260623543216732776484249578469394393127820418936776042964582368488145773362510190329047841402427157248976906391149594545617981430748677814044328977988970868781649576100853415977465655021864432626942805614029953457606905282483458610946348110373790545481487604823378392108853690692178512021863390095322326306059570459045859225358679085222665851393431406256092400552482062289531471609478884310345547610187784346768281353446594518892549433539300086118486433175844879157053172901433957436153603201920963230822592260402175886125653225590946343341171613264581923478394649739498685161391456865413904220019574760562050711015514113079735068324726668878702814706977394436900267000078681659335981570879389402242089927067268865497382485946257853155004521151490086955037201384941391050335245342823839356097141110159821571779064950744575119931721346901830536660654282760648770481854393213037960131516832690650686815723852070883292009075271363893736332861017598116005897029402847710828311059044963527430808576196417222786395124534455703198598353040095142879017677236441531216868808953932851465692727655584878061508593946922702732303333779448885894165716834460089707090973407111372385716889981629810647154570333882728030692874844585893670214866071150402388518477794016637555046982986157805138925136450187175032741556489718619935923289338373768368063196026927814888893079113463129888352449683279453277336274581968434961825073501047118016140923938813691120418094242923865468052808575905149500596553032513608733861074660054449283098431305006631302435161969595675398927348724247804394016381887304765300839162953579786112136129067967111219889305471796723735790754618386439381117510473992367320672740867823455751245178700420875213635056313903094801459539573748871663407284442486751679992259169213843681059729891142352809724359711710740770817336744444974789362153120307941090794299834398659859753608875417934189382090202227628693369454596401665287151522015237984739966954572527806003680270620449996355185311259868666815623200784266456805955752852084045151988646624098775965926036991024913240421741710450337486166399632926204105556173273075186741806519402268293018923011378231549955785250036144510456954626072839706234611185416246246415718010804043551396794848372728438111262539629572022471008369838523129343753875840029931101378628588559915170360481443638159801890093611663190857384076281552048492532708067887589623173639991092452724956645475351256069843522051357322636924229034473000762355658544414431797541953942975738739979732401028866253615252906665407518946388756521531370550320438364169067126907485192474573328553702197710038808497169869692889230023956905182853735889257837729472061442746765816570443974312762708787180377730424842730614685376526181347694480106784573533810843103526789376889921851312763361979223148342792656036387979180519741905297552556972102900752649545397326194977542278666882279653328718658208602963001631863711298524958564790157999664696170661332202431931584887864707253017246574876731951627063647492078421082723004716786167585047701698430842883574173589125940495802654655014649402767547099760328284618431793013555342685935634429408377516427184492444627622061412909904161219283699410208787422182851267255957829931703579058253339131778582272263730603642826204134574501727764186016864567302855116607452361758620164693277476278010935953201571278051795085736948238542357063638818632583348634544351826544844868172364663018728268311423909292413794300499833830364309025405280144764244858528198930756555091554192449707363405429763435062641884056389972830536693089767707146011785339163433961838514940602572793924920591692569987948865488191820308850535398417617870090476582139246661251654249942877587336314922030792108449283877347612199277776995330422303617931276372445878621988272095488543110078188916320770023860753131796306757138271845329110796136942514808527848167534445582052881708844433333137938811704098994532685395198754201099417440414155032693288267175294302617187191029736960207570571989282124284407363990646967528258572887615016494465414189085403028028657783813835231513460702721260880139351647576325863360412411671577884583799784481018041554511524613612574829617896726688804146565975157041124843937115841874622362366129390832998747332931131753889194231353292717573665804466513489469006068090805459219502776725934635577124235290203186884867123042591578247946959629433410770740059401473731119225106536146240561820606298569323261737819993452340384811536437728706018932415679036846749572825439652993837824748870237233424636410350083872117032895821510512589584268259102477319847777687120984737673717308280135097832116078309878852050368022290345168133068145103584491183160115180419120227494772746404063565011261001980936168523340172989514211868941924033598472742728559862170258325719186512984231745329974519626692972619008304990644635757653499436202205010354242747628998370013912016605556327385763992559947414920608280065851975200260903084700180270921512983836238135927396228810462535047950599515827409590035228722752525061855686372707523197471681178959276723131045444121541062897801506092866827933981495316950673685550660169426741664651118204961008494325332434399560645242705658948262288516106250031940354644762735038386264799482372031967481910046551766983653674612265121856606206502890757845567107113504414123444606132120057203928139383391071823559732549532510640421872809811326833282613637844243278937628850948962754189867541924567999327201314891179050580124489238171469643879856700639900299151907991854645176203293271213708137518137082682126294563659261592472534830669063821378463413058809208992108039414399868387765332789710728247077815125887289495110629651409954507890198207525272057056291130483404222182807032422749669768605654297808724720492714355410801494237574183447189553211857056564355618556970902658267945434297017523836811745835651764555854052752998513948391522049543050998164180225403054204795983084927518435357251595478547233327341575315302342253406375185114544158394473427841995861014557993238487111115277823891567628188417787446262456613191995431816690889872092128216987382205360081559765690733602998554530758253165131093488475005333763164742960473736224016819714862436636553034566716039083498093737981364416117821069709572759344244714687234758238027873166976417414825962908799167193286306999293059604366418566369913515530320631074398663490184131566085238451304947858473909433193855053547324443435793521027901061194336349346162479192474353965312940419344866129124410307477629717630987381415717129654735933067793486448418888784611147695333118022770440063121178230626403122584438969244373175552746542451672188443120620400894624978270742230672196205619741633839295207275736755182400917743770726659908268791234150248884236435335294382958616253796172359219576032664987211366225052811384813394224074222678539683571296846717950621185979947147097345358189373214713178349653929372522622956882288875229529344465537682462935929729855857816897376743137231665483670702146525328515637317258297316291949396570028997577908246739348018862418963270607327842853461010353232269676523782794940735762652908668734191518451316377371629240686281700950533346422304996630883339315069087082242517532917931950066881378402754057617590263937596063968487813876880110535038079878791879595915587316470025370662219437185459852905873974030165418021052629035220455180274666649046326426377472010646199390631503173960579792314657774624641897914987344502086645134446994994104731884757278222844340049885733331020262363380450785575347150759053107430803873145732044916367710638367411979649619904607420077757207303455008138424421800408004383740785367013399186877890333244641814564953067715137609668855273183272718878562160296761565980092837014670760010096660642795296835649044821024575254699590427165241450504250076681775754577587775795923397988427767169571985393685744065643957403373697400717903731287950879911568464853780365725309831471898127635535034675828899382558648414106803282117856177587351998962565192848955012052834993146985284478683032139771722205824940629529447032793915790805117509632023574397003622241355344019342149432001777058700142867340008707682406328813180150765357956772726688809899655502808169299653283940176202631066602752357755282059873321969223746421454665630713496974118701390324954381679639131711436573599937002630027320627261454855308456986521433046129936410572815836040228696990177650537450570731706349532188661844783063894635015431208691012230795608066662566855658893781113406294536722241696288852826112970140717739322874899047455884532928023771014275883447053018228986412313136863170394214844955607376101912515907421094911657501084038697374019887076233985858575535424403594366456853856039698722201447194398606762443089559846670330992923975630537282479271327577991166551820207072468700528811235931624384583772018602808978581622040911651306933179912877150175280898055073134243773506702828798844292997151713985892614232757254298220673055734460646228833699201858321854129664913517635069003309511810047157633464595928992508277596496872339294208735304866015795786683273335651373782453072745884544559301742020251805030822648544800689247084947875055179030941506946165654345526631072779052093701530441077503386131074519524850047329831735980707644100468272364303487045109567514501665125225767814244002162967549794455006266124947949492002327576415379677162605590034840120883178951854640204483204274555539997701899559805697332034019741892213224690233350323502062945486038923184132917257578992606470630432597793306467247322847735638240818294598945332780996884505767642040229813005104539756803125769267641623704557387403557847368536763617838425569811042583886358300445312488310890135291546704958899223063027897302631357953358430271577019477265854684680103319794877149518925043136866716246287046396263778092734565765731478943180365940844895339315333723864108548026493000623837122372513034148203749632758092905324350780168782814863398024656633761172046271005771965622951752716835079928025432885952482067688143333268248022845364260030885913624010971494360848557603429314097314364376735651994461880856167120720989733149921986617401490848191596915733075940097604194727060872065388447969614290687418008332756790334911369742323958020876359640279851864794411211836627452107859026818672180278678422214153257523188306984674086907025761405450818532435609665107308791855845472226603266688046301096347220842174943313350015953226174583497879933621349095321678958884990402750972644922526703774253085235188286851570293753170994126580001280397195036056951504411258810334584927918271453769055355364730024923579903199893844154043223031542418415751311353766586052811639701712360418842337465847662179264956724353445849649328868656560670382384650792955376899027282374070261830873322339327303347274182806152069295045021693651831694335889478427344305370120803588743062964093410697093985975816180292596080178750089456234600561886070447608350638484529137922326852606681178109148791394236609299027839754626883513841292271354353564548793374871328561789151268718545645413431345276922232165430383866063138333489161272358516018700081693567541435074044315242164039429438354852550215780174955744085064792713265947016698692788367771323813137120271405852190455035405778288421506445049859706118963552589018915105757466342737930696625121643043190744051205810916519141683794878748170419818444954977164038620156414325254799587916085803450519667515018957238792424371610997775120265101599593428241401712384599777459692478057196230110512333615505662667332153751308417657218450230681203961484473588839403262735200818788162740320001341245785861201318398085825678748101221299637422032794455539087496527967521234022064582485072563690302428104389350458594684999036437099934435613780676514993803627621735897159826276577095129593745400592598376844786124565106389763067106640322215420724789362493564230843716354638853696788210807776961315955576423009484591082940170415424440539852855948947004451312910411982260820184416405049409219901870625311126842555580453318897594346163404143362616057910269017585356043468879141187783601233906794393483451951016391108356051179629411093772062311376543145960467695118803497054224751775897599468686851325691793758214749720300553732073104944071732968056852997442386504804023658543942079795308006170864535348189147868205839127085276673892546967604631891192607978740064323975266026921979465979741493844735976755825142807029050236537558530328767746864704334104918781812687837742239669670602405558104602995673779480168498961356874033355569422117102992425938600093814470798223647054217117709301894104001879684712019680672548371292582073384628208591065467726664802104007132735854592901537279703642547398625398240564638456746705955843502551036832371377278548640972658512616540499005450776766150446166561954104762183943875298151170688078978282996194964695563410588072167032498274025943078530417354375706684239662217248167590008006932913941221180958455318759776223106339070533913926214555556679886572005522544577574775922067398458751420548355143076242568755103513444886909269019925960211940736354568169707721726944023042018072319438425873336479195230990501600025777544681780338848559269427209271661715080164912047206471140890414848251394876484049730015082649793525012946180443442731245668289069123678269031568759853104867597250538696000256653825410643183091951013920733463993676455254730284964863935033862705690498367495468090449622440235722092216591567872650689120923461669899815250736172053678544342917088680842111184410833199871322692418925466303113566173742958870853486062661619231733695633514072023129538929606171348819405757193956092186385117604026714348488408721114150768257574199958971255954577038637173546827180953765265403941026522752097403853021419416047978212380809556451658072031346216617659305804032456642625423913520695776296490286954302139475535116763026221556957145436247109597154932570701935384759360162490353505156205785918377648587877151975517729799981358391443627485088856141425708716250768830669801013646145162611069669011386711760050944027584851385477998441203987563171166927502716348409934383147099651944803060687708823973122613639554496049426462952298717143185792834696485659889192759118623252164394617186642477625573325584033681028670744472063254971889179852641207457776713025535757990075956573469609081335116175112109033616746970137955171301684882031808893658561135057373377915130676896694020571691344042975385534947443681975420403758474718280094780460542061532325167793706302520992798095872928811821125110746207619184258220194821642706558622762583695926650778952017628630211992235010996943258608528766124732505389365819005166164402560298009684387399910485839979663847385724262860488227517888294218766918736554104558231585153170665165958418368964957871975404275364318036926026881141435093417144331747323087535101606361323470571040483672247602471318028290141040129239777015034238515413187088924062975686082191509937035194405637558896137434458681993046291233860947331045024344121935558572542363255887109261114521559444147416990045280425185820137504037712308524406053914384480632932779039906322428579622774980513423678404890278091083698219935315307484184742476478327241120785530997562649348914285195086692867551320377956786876948372214681850806987342031833425574156397363585249759734439178552906591682109975018618457223546453964765897544518759519050225661964737363389298919455377066481082481955058896667614481095074221029232134795141929753337531255905973424920841635789524929756080908251355224924701378950855744100376211466054948622596798657531377551225818477039772231072173786729900957149538442776759958277088446061715167527525762147642973701995754829598233358875740564651322582598882361036108864567941056775030904986647298150414745252705246322998645415334609564151016662671874118145543495138123498839598743973625306839219323938308128942221893712772781732827416230883837430780346057768056601119059958853120501783287889234352820452836993521970092166841908968194579942714640630895391440573001233043420684535890031736496062919204624316857129950457238097590593581232622769766336184797204311812147138816113179688354637196002900256772217783056028192210396674937152516931560095488365106443246874003824350126653128843579241741163414075282801139125555115502368238285879742506742540839203596781031797754204338378694811135266603068346723400420771155293711633096032416923935458658806853107902441705138722584919203992988715429237547251154521451450043595435170797511871685630974751722862379786335177736832738033420917448888315109924525460534822899199829532248396200651549649419931102030763013233807426855225280883890835958242904146608892252904746831508705549157188693894185484382373355338540135553379103335602771290938573232206114055229288536490332925985862978983713864193126838346806806444788982388070931895624016389123529691141456478552558192263158107014094717837338382234638747092814864905351277222220294042053784055740817903457508706115379792129954045175922922023520652184207638520857011729848830474646174223626126667523145978639587147088293803821189433169686685811604515571219630874724274639937369975031418915399233417208975258830269903777379053830763195580156653337760873544672955507124768765034493773162495144906157438875934115414111508628815338853440182737900780954658519124316614452137394094969595645244382719678453478809462401627402274102463008842179795063779979667008789139130608501259405746207922384457467781264061480162568405409860635547090756986768295628622316480763003314887735898592794494828632402510160932817327379990473573171751261321552708510537396916974716488477477483737849905003232829607885401509112026236202189601466109094786148079474671408135376786048715035824758638798091792044391170845812081795218335261499342359680696419765896500688157514306528873863552308148113633279985106474090614645400656082762639024439794188550463878497551737956376915840555792122914245678661814282913360123247292844474094948650721773672984677135828007704846026064794403929463492820047968286904775331656096269250380460157870471708720369304040829216797524460965171081237570611553560133945520602189000132595135282141166873266625856431769026437734587357178573869394438684935230482088214266504227512573742555882763557567682610094711409879202981186831953093011250361273409275640364661694692466564376554579014526152461940828298125717164861165222110832428571461322741382476971312078374801409343226662661293887781061418595480042186236645069635765685380198397299042279783560390956051161581584544624645636290778639810197619867195664961807041945879746463952914284268821010123492438897062996444922828733971190943771131638537408662214764519018822040377454664692843857789737184561363784263603987594104674916822373806980514916110176196961464137384684560824961717443449544773208980485595417677573403217589692744224890635453073823193623798952270042403754216331507239018292330144173833260610499782277679923325201978604755526431094242480119547471770477623538269776808774864180817607331946798205023666516280880985432271040059796821725150709955761789225953559299525358761521019970884693188321502758242189818365101480551537299758615046927560742354386421553858905031395167930814891926475794662030633711520530194449352457552650448000793430371563840758542879524016838068422983254673504956104904155300547230676513094287885357771128954545970293338730822502406798155715845482109291347547600644244980503121341650745501953464651070472982627143288681755526841204944594952006347149983742652975223991936595967167705184288611870188329197207592852370970356579506180703755497190678443491837854827492428871123997493441627247405048719168794553860689698793571907941383425559881867697574212657263624083088085508545801343311436172385560787621605103532932534568370361038845949140834415056176434629752115749716008911443979363119421624457432100877583912654576248458074692684612737339713610387847470427066611450860932224973347269485020085367946425346431867379215463370095368224017609155252587485512026421933555891667300157718150178937666706115413169867754572028094753445339900155826554904427312185652300350247404410480395229500164944769783301656807778460040918546110207490589249288904565990606671413881140984635954015986281303798494722157271802125568664967027623016151977937166372291813632899246661512937109763658927157815341126436934396371694918201315512403592598841062873571357655827873206003766830325144953169601187219153495563065217688386204345820921745272863424230327635742603669308970253889033888573990718487817272331201714988481841896726825261672843518752469718914360469732967176092192358014354001590461593960951120883762627895922030610225931968350316778544598930932112693245481023733444901463147743245954336978352388833236493248951476254250084117067391741330387656363109410742399843148191661110672325635116117629985576621440517794596077923059973505718922020862043313587106875536355691862952850993541895560729799044148428725946264591064951250879226168991029441192915387960660274225205061934617147705223626667616975906781281399662753471798128473496231420600629417961452819182173864175790216557103352331359453514815653663800161863966715036407188752287316869235617279884550772351470135226528954870538894048101677895595900986145063418971642220855117430737952559770294506041613829695569413103374848389062123787157952445458839367513573518156444170254214743314364819581416172370133228109453665617319057487079228261905466960712261931618267718030538361274628944017380916087337276103983057177968084758748436375397989372439736183011488525415026848548593438612915566279372643414303908029297658889624694976673668103896953575036780263811715605998923938616087287255325199602470302444598754429280478040953402349227751978485302846558769644448484045952892145958011722462206734370036200303714076200114989465654036620078200168348631577693218836615729622337455422241238861208892884298344980634986959173630730359190615891941559531144803403400267899773848795284118912142640168271331902267855976801703794821704517640599715022844962433271247999035351771387774761371444812981688532430689200588087468320570038427546009580700310433786284373916235067311754963222839955767380617784119313196043514548556129219926416747671319864698043165123198897601775134494184084734140448928373832975128046786763165746908894582974481933496724542511518700961215617001015531556169655321021017026627643738413745195834077684700010818307321658741207750211989314119116786049319164453187186827157554233944835594838163806768668821881001870244868537165466838243010826496982806771624028931892410010996217056547585482294820379401847183387358865670549468082865125471610437238156608565790097464543135743876829688413402377168863045645335549668408913236281885501128570663203362979552364814247513806645126724950780852021898508041045387745695533738120572585770916583029563385741329003646229054211267875988314671132998080609967777834429784746043799525434598832619476769362958437324566099743333589681320505078853990930515131693549691011163353684732177885920062320015432288746144871433599552986972254093659060099068294762707858334755737887946149410507454672484171161179388457761072627585065080250747896673356069560411011598400242043504520322303837939232227822522969843655550460978295063965239741026055381245726354915783169750550295191590067718372508181524444882091067854429104700295999751482742002478049515636892431634579121186632794364755424132011460703050652641853961859909845644928319675192858300671893072035216484681449434417942213217662981032999799821627923865534053801017340035771463648268008724291947074933445275907049662418740305623338591972060923755069413013994302132159433486821824495804163177620830530008063972202716863212132336286494438696520783574506000155060085905982019528558617524484968476672440556534108691868821357363966037272689596022199097142396816676776782320789710985002854301135600536645524300503376090900858158974809699152199647298840766307363747416014655744614071023906520333730310871328731963307030212700432537761946948858788330949118023386511826082346266423611470196108732691102471314260439724124968752358756633272494957836813251488612352434485842231681209717889096314748434345662428779028193642755951813947250501532485263010295228614937789702643709987782823455862540384877728744745411780153123146625243431812693264611704622721547169000117671585184668093103813815051107705473007411806940798629804995058049238094157444874535584773663046941864300360693536621754661586025582376306238101992513224159030913342083746210816261952955690406483930806466587261803578464246142079361579177180960656962460408398953886736439277485847005134739239182540061617280025059225688790810236636661164457638835534281916703194833941244817691882117850750978917238044737894033219885724393867681181215966485644129630297789983673323237305257695936906962845535945441112680421077102366897016983779984478997548663714978784678976493977647086947725769600842083393206201604586580407850156619138063552071008611741137273379195338072804963956076766280040557811851304115159202855949387573645116213816007581555462240201582274258288920720522471990665657049056257591779364136222254843054240200660540292096801723561551705493092852634724999687800618373352509269538073634781463131069299466485696512049642399958121357935437518838171012720088340721577613732260277787201610687121013771432743650812803236245736283783768491292158054785512315787808261655326356219009027043157989054557210959522057764035050592935812710537414931703999957942731715379179794663930961434993932679095711228921578146957387402962926260892143664374170174561871258554875282120894577726466905232028428634580174415971032428963956786001971501390887308020255443502893434121136498481152489584674835959207283203125503455176063665814341012985119101473404571343869450671386234063928916336485024943262307522296824830176798116849527035437524375288789540029535992546110017084022835064588825941665436432747975105084484384599221655621303242466502541115375795916021002806920120355994840714676649504543044497187456023801645728413425362516354562366942331358646932722358144276040021710260815700875374878429053266478294750348732166285243962551757489689965856014683883864025021514681831829683090868017954779366672331861311081955616601060758572171304245826829474147264256806329895629145388075225271619452736854927227994629495262733604711674622000346750632683056212336611587941609497358486894172965391545935808049822756150590982018606049824279619640330899755897471562872255372805094997655015672077135574918971707573888065482043725140649031767419365485831860727568264493616795565474133471039725461625235728249112029190154448871958163958656522557815162230365345544711881616495701777462922333324144401910637925607954561062031301515766298159467535331621580984316399313613970851291149296759342425647203880495537743105833612829701412639777225920773860811374450055527253115887564543398303457102421516657078507101965852763164449967251950909128188862433857625461778552022314742384451522353345837016834880761720110783350779081061605637875985562003905428851232989752831786811264904732463153735783739729418387963562556731721849686070738132338801516760943167183707405820976672221436742214497787345723412457275685880511347302117740729449988597510480547450362928150390114559508446600723691788595591005308131554507459419098448667363249805842007437656855868511988452204034328200641825702350988936640981411732696786672405215163474034684445071454862964500404689173259250238660508272130550563757498774032632011541272947352890116065933779339247790578755284955655317355882739122665183460200712067211845355637822617412355025172460473140187396400248373889657981490337181117853341762616019038947845636855037221260341674003366205628842155579549435337625893985731500027506440667571559071263479988831076534306202334531795470531124277172323072077624332547873171087999983478542101544867196621578484989934725215210358906329248799740589198501026572441360851901384403179745873872442392333487514494282950765538512455842219777218140158632176430718040626817477550335725052518553651696846713543382804081185564911803012731362085475229344005671731679886588635813657484488194746431499660665651146199848388728574138946932148064664646150114750680866216341632640848897664992321888656329539410977730109979516681816289728396265861352390324005738434850223466104284220667304343611807108877202901493252695677391023583595157855818120222813754669308644674620823140293719513671850298511523032703961862214755339575943257358760022956704266177415104078847264224268570546256227672259330615390425922308000619158796363566073916406486503835510381579486697783830360610088562798023343223171397067715475427620559029212505253423584602857765761610572662374950894222463053879088625896828574465771548474985542843064277155320526582323871912893138647112797968378201098891356726003833060826518821540674375648965788863123716866961588849714650491251167885162135677737540985985499527978569466388410247606342628959441654149025244503562046767340929912359274480028368168818477019013114311516666723922637038006523208754890677719829474087346580058564715713054465030413599676829399089989949062634371565083785303359595770819991372172186243445589653253898031161902220707172808756093635374296085741738970252400697721871179917739014393016352254648168495588020220923402737843361516726989141120780280921398333159745541922819361707799079657755762411172030062172955414369496760481513804216788908566419818579901888899916140632645186603546306362715299932143489053126069037151089204497760018430855998695163418085619870094972244860576686008922802128624192337534249058811070861094629818008556636243465271328804852289198388520417646565169883981233447026107503229369611718432443048821071567145110414432722145663563016001460948941551733918473434875583377849528042862970496262340697996548738776124118902786080526750172726337522501548259309285281705508201872995202586929966011969938681808116332069613103794924628543748324956854347152322724673992928900307306409871290370782705268461647695376448140069657081869776709087187794365735743694933834486609324635105514290391746420836776008849872204941609485546720090894635274421784066795801362886882577250054111728782878731399065344706520479957780136860083427942818204333206534425307505429087635689400046809252035097064527181713665915508455256911094738017167685916916209325258731979737910656688926717530164289186360691221742179838562703487896167396874653481734229752404435594286264061686983625846327723653251957527786256661758489154825145699585300851221060718508987189179261307514788334979792580321434602245014493006015027181720533539422898031820729190191432277762192826450878413037448133884922874665243742424634097142913428127511030074918749681504222617615785210589188452556707439016477921589216946140721113050875244066728966190167879473458559263134862619895401467985450166425012167062498352379302417102868645229119977697041276622328536358879764544502216473544332934714434542102385100737573880099628355031143081897403789893012464998501090911697833337989229012767818852356771948631067363412287135924948166086637383672180998553504073710277779529268845999462560670843330897498822945476495026582983369913505953254486322981461197384253940313204338171783942587133838148735516003331754380127840404039166482816995804169649609126005927893214590888156631585802542252360739015506256611641708370695286438605497236459244045192112250515403039687480543722926618454476455865688700672106241699562082771915091095303499565441797570798125750039476427390440867693503495878773082377484770852360599349642204404452396643530384407900611211104566850706323414913146008445059577296776710616702037578923622427661662821264371116865006218099199053110022106457810941521181099437236444086501203708536414338095447397481649245675472344731456251284357017587699555018287973020269037469918272812544717605230771824229569622379184738115375284916451473337000074593534120045793555905169094122162168136726813692405182373900575716607039963353458577474632916879964284861870736465482801569982565395282546981774146135404742883984527598278691784085239835514763891572718500100198538209604340844576400952135034547599321544106542026302130111551282202185815039998283494618111588792409425497961576003615531148566558622094491462909027233883497246120990069934798927404434924037125684873308246812026996682427290539110986735797464533452816918240796981048450101298360017238876388025207336987633451327892838179554652909824004480018514624496562699762981117160287582859767143308938259748164746205077734506812219766572206708113415803170506611387151456702092558229788046752687232931027902370184348477114382041150556142193307690001856030929316785895714544656824104447571798576213944386869354368359056976653748757721982788419161894375150684668316544943319397009367833684130867002585842983122910853573535407245823774578928433054650252896061850866900487556408055002818587154628656619501184138976722296408455015051426592666811126594858275787430145153907143566532376382133993709215101362960544545572531553155483507582235907372169607353344168758939915662561446638099306479761960662691032287776267747019260820594999279895574864889097994534664537555619078915627159970143873213125650565662171523244144325987586974622699075999486691254958907124239229631962298791898561131647409166178212285814136122684249488925113385586329201743085310199853707245590208715497830091201888052864515854599489000348343388885747631550957932050785986603889634223219615843266892353121104717196768092847421368443492568591294375406260271176714979859485376409487513096084357249959836563325204255459075748178157408358577819139327142666089264907274266895856939054867073935863961089662000740991368679970011823422116920842958037190204269069967121909576135936449830780688937706049338287208146102539226580135124950273086767501163862624731981331984543013688118883060329337691042288105870795161925041043250461915457720748762219845488560214629562650565643457044343903353074840025313677461798609362634619985668108568601972274637011332884988520129690327181532415904600186155084212512176712498882621473292877463191295825152632394327212871537985464580572496703524503079250975120129961953264882932838600988386294818135950716564438570506820073178137718423866288729317853031510067273443381064666816640181774835951148649260414732736779155947139213224141267468331578955592227702391483714780483766863002590023522968158759846013346225309171191290789463662392064893727550570525225246304603356113748062679842193179278905177300343402703864615059858273569700659241299459176591988337191652135232139117869757876696910784318741361442641871504533179753605194249700487071708047370213733820616388780768895567635355171073537379072846570336366080337379527112470496267901407752248329524280629904865710716411488497494767943598575465709071069733166005285651229724198718973311730548730838753136587208736303603640130794854807233203635838369786554786845650557114708597109067030262968042835183808646126270939044358578680538109102591932071781474697178307435106731192293476128528715814204828876911308528253235010500975061413311532346725979780360075488995425996298012408141372602314698361370858007925117935426598710805817909851469295477276188584213330906962891770491068890525193080557705271606634774949045135356226296182528936122988629993619212270561450160429838201935539761960935688298682938358213123857640689455705210388107549131867778757297766516573730994823124340411653755120250905757870113178107021986935182575863299769944690465820224282690948222373077871175020305349024270373217841748976805271876426017234407572976836795031021558554303536912578886484324053039475335918164774515745592384536774891854798376041436253776291860646902152000265511860143439204141669307340104056730929572346780918858332867798053007096388590799205607913686306023630701163625322687085269498118036463037365406019951070722803939470609154128798765382819410459598981368104471028890388801044931160822810133499580594774166229635636502074117641112540859480023453987867710313167620722534118103904478370006742175016752697084681680540152430788758514520161294854312115788305532029574874059500208396839213749798646341976942248002147505639124395262296987560381834356674942188413176229277440867239855339176449773273445825604403383122868810097496972220736973384925770089561661933715019707380157065357464459690502286049027750163414710960711625150705311998177937539813771270767600631269591362435273078500304090062346267554737514534919778414474672541111638645674730029131446410841652793078488779092600952576100341328496667127166022910870784183965805295212587353993887827396491835209376924969862987394501058692341163461413143215889267342870457150281552764149211368749505781433222444949392033559158309216873107445691281396502434276739147610126276090331600724049607235197599743059136564665135684470618033526421920898113239150961467050123502539834565591397254820984174375051905843342616174221946258646417198640540791436924473550180943579901141614671162220765473994782347014992554452326937140416439907990881859003286523706065620337973803482947436615379147986007861392730116316469463234940745552832742216971634802132851578454598860583608238922642111803980052844556264998166933472011424369879635626693109008816532834034148483155428275395961388982103436287440112661348525738492286412405514230736223205500273548400508018127549696672170151539654245193427747688223584678374897351022333982504917175048186418785892005535474959546783000453209709948547114710056133502945566978023588312073305159029701247726254326872432965646789995757711016484086936469751752371913493730774176242475887990488828978279220847274938053119504314044200575186886747653507939201701713644677830438104720405785295569570670028127401023769615891626312489679935910701201978281761141725460737184846776626665976509511712054851892107717344025002992215727758812736968275161918267174472365669703767173853302132447454583102263840250981177401414138626948811815202486019959654522084847414228373751357241352575976574396521377171944253704565658585710234965421322552517913074498736994368674481145941570986904836302844151855563235122781088862536575238850671221299066952516810387887477736080781238495159631642293280837924559347900356368659963042966681563058206241983213922273162888577428507887051495024707680518580758976095164473121988391386677752990281247386575876677137049705080085314618281931515711889653013556489509860379262270159232447859769932961465903233537288518063667223789534066049309061383026731499872021563989209802812425635497078905450382000228038609294609375835810405982962699001765445963116039234978211972779370094936279406045906404710140614776197306747760489611758773624120135100981368889293330915782176696910933643407018508479211808047726684469464434157749941706338994181922674538906365684468083142732524159540115367335190349307065729906294340213037671982759269059813890169806875819775499774950407072158890170008893385571735214143137446553605853410690522721068051990887219635562673158419870703619794725523806943015188738123327523378089908422610783802847191054496011983876517488697960651419783345445810632831937113960116140562402411796749915695612470726669300362899272427382581898422761546811552229838927044571292417717248743010007815208207852388644372053792926367512898301492025004581669786383411001568592120629702633490049265382327332342170151739903917972266877968805270747453012478971454713189505914673331297992857750848382982531254483102792805466220867087043237224396656875877680878892381260739919880864434713699383564075041139777897387172738616382633659270450774382078653840846350130952304272199951883895461893306306006929423218869904081943149874591237630941641303994290807677705955942949484061883770307482327796029916894509175040920900450627132247458368188635769903630694427666154916608663333713576224418944628809306702241843924523545468901249142283450649691130993400164870888476572627657264230720891937481142109337962601712542816144026209742222554143543261578508771803242294736194649068803121442299275199005708920277648532035850688060712037215041503578092535319233008947369944544521081685552904263444017659734010443717663329729608377607547287938812895075897047630611566635491035977646991126657559058593199203070304495445565026494812355944319430565565620764775969015981717940510201310120157637112913050808180877999405542869190411847313115650040774322680578620636606387964922203369814096647495776570590930328972857828683325712960570695774188945483019273067149286588465499685788675949703964904307297882967435836507987694876874026335787391064567578033426403864959504142625952991689705379013822219620004915267157183977919830431204276193558904655399516231011146320537517012909678061599672503097049902062581240330126950411483616557118309515109058691569586467507446864119082791597992745893098118020406195863835741966447812675587620298442418638797509285799523773536049388466422072548823480068974350357489117339076574330645413889395620676746715239615642382668045686633862227909353683360843815902538759489080653700742960390310770759627125837932097183956501900184133114328954981818258587974694829654752071415589452932647504353357430792799398679355468067940561012550216355549067324354414915720000435853898498553121593684998850724109198216851373302035643982523541038795366921874763364565887169113081536670338928309356207202604900396320813904018246479095602000950829668639161917958049474648402036840295373349881530940921727166456962631730705216090039706947959071651586311566521100387843103347471049731946569948603610794354042328872579252133537126521814168725197802347895811936730534686264366186102735699301763802006721139902909997728359102829665344386076407682261751110711618492984741172042544702728391084611981588666944806128715758958278981318603783696063117691152180803751238308882466915536061902770629102977835691818599096128317151038621656043876427440265847749581323324628966564048528842841923372592146292422794514237103420630435541280391766168547390837489211778770422474687992917635926073006705393581935122396465146973651091663876629336040877751894143853046513420932311566730269565870430543553471082984018399871511827705928639860961539276208278538096005879471161238421125511173873686484479275663228101311044561678747180995518295974613049098971397584290975682106299661639573799940534105564666943331326582699528087706304014974602093142937089663631216947653556860489598952246272496493675009100202043715169282910397757969958503147003495305075729624848618514961923139319634818917849827449695939717108471734849563616082614381866832485841850829424036425426437249076007973119838628042528862386039733263381708505229746049711354375553968147756382949302312107113197717281330688706376055745757033405915544406492443961264060310549130021392414472232482425186619564881496751295076397446780245311848959854490271620778190613439790088591624470197787113962273591900506535033305915573887612081767664301761471674531787441545696672284682144692265266551769481674989589732100987024860572551950448050024882713343586045084709651976434320734243638084502497602787041437046842818201293532360127614382852052197016870917738591956928502188412966853253534275805494482237327874206854213102303829138695648089913179967093903946728241274652201176358039914720164312878220459027000012841215845723352647135165209296646283054023881323617512452877587644453311663134697926133941991960010993842849517270225933997202721364991869693640728676679809647256694554495883427396035609180607243218014215242708825506648275729908287247568857675891229249329411352387830822535384985212127411176099675013067108519583280702845096127411097470406605210238031412906567403869454867223637721941422043458933189537689709397817360601155120213463967365518784329533847099451016011922819641630482549745269108782870112201563251223399741595362831242459040663202679039758258623482227232137121310620472396552140447674759090466222468212269079700759132741220352803633437042984597319090757885468560612854153332306816348289218826264433863677605026453602249634193222068717393400746786336992369938961123170541931004445206721029902086605468564707832988890309905758442816333414645171291171083065449527719029269364980040662729689325619603308601065752205854781478239052101304311689086394384411253819550147544302377870935819042225776695012706028139981697384502024082332037433148007980579149736173765002923159220308645790964354679951834703443464853277167522692527816656333905651151845507532036434914310705921051262822064023661585685892428607519925109285557880781738055337820400690417174225079042316709226791631921191621121642259292039516323603503889801824351712858908487992077940529544559149341584088338678903711142799749884831759244601954828870762752180105801760730791592635809997992982418521110648882798437036011795873837447278144655860530603701713392358136193330425763895507652775878584940140441935173844179914303349582006028006001055056955400457666978219739129423626019375718448929910094611306654285914023989741079843093804519675579391803878564193145697143961374067759128898811923226756359637209082201670404276435132865536135935809283960319712563076079549490100487072748177939422158106238950977607598527500296016417751127859058126167125278123606907435174355842175026893433073863886184093733619659277930593223390720827424071235610780114889768843607277146357704512235651627263101469535412256785198007339785046643889223287751441337725283622772465600352769645338386226033466527608893132854050947382992391703431442672682758439974498408997538720175681039015481626847717747486276745662215408898744103886022307675546090621220888738095636825431376642253195488333794114492615665069017890407684476735351053808184860492137845453622419068726721153683632214170973132696153692176623458001098569068961202579376455973475612838916748794349047935746177586695670087858416635462940341437962007052270881010400072295071457541593225304526756361503632726031384683807228537820232150353507698442296418679534266723157216991993053308219053515378478965215563579398958348685922449367037834331093571246061651154929505068842086292267517163950730416610134773330031873385896985510689310536897260324826719218013407970548715588179482511632602580775840223952562355340199361434089306609010242304264187252238649556993125102095059324143771854292754645221656205890997610689353676451572321089991295498446985154419939180895673824659537198464925479831951292701138699452135529188066853761417188128349283028447160657186366877042685243006185874545305157124326530963699834424903247266640726699894124509920852025115754703846277617661798329975051430193181095543595896401648916143694956038536107884979548066142381802165839747420783978659722561908872083254645243798813853535530449565124585353640763336343502362829496503337287587111455418524841494828909988245237391396511150868812733995658066723597268128116793372377850258439985582975846305680724346133180410499257455422787049621344663273216488154614282285665070514725251217054759629821539470052886356387570425362659021603073119097748990294999621928356701407567490807767011329536908557127454925618317595654210230733370725704944033055807082930186142587194402327771980484146194735558359438904511610048713420660289523629638492697357621168826925027993815363544495391203758586925812082219582780116876209375608356769107849298753993087347131721749284083122044298399858855520780688573265359429372455955149982509685917017784147157709562903585891595032626453262151704832874871105461951100439584618385063234915836680147381490358509521183993486250354939543036204099258303405168245290170124577814296808848519728865435271620099021585447576524695696826380564132536462927725402247760379779581597753543126079058869773985259719671114913648580318849088802023083146297064271225865821566442527313683416164434561962677745098491741404621453490877391696546870527090890493534008137797855948413632509757602434152703936940443872470622230277224166928116368078452141940534443405594198772172245249293294088872173864468932653464685504354053197953801606517151435202230219037410742934509414587424046383264953791950913926102654287938420599185757453919541681409022809596834992666176697865338748586602401371159239278956427945654690161488591838995293329993065181777441060623514745830731732349009624104450080446492020954248124628457643277335978084501166737857671942984033611324786710464243829075047618301842419510699771698717488249480928928705933488820629204941638739214243058812444150941992581329748400463199765168796506099755361694281601336241714743003197072383657485370364404864527073324886656292992905030106921638836872358665455306309687873226011693770073183715278834339702039416507026759991396946080958826097344894645578425921707783915958404306965753074413041250125808387453102865218727045987393824071621970101274507342998167207280375832224077415891881262629610677097778045166294124632749622949649457731770199237367013091426321395543577847996090085583562506974268023056038770065558795187014017021148328829318942784476629170760226864121232497936599309911645628081710896367381412712991850152144382473583560880925734269814398791481254476632986793606098562117332883330244332633712629212068362242945741904790093336467904936439683846837047468034827692471845370741230097817738157883549722030711836315898263500128297615198233094213029260253484449624079778775693997880487966903823951305658385268864700538055804424200921287731604452189834730081383678391774667064616936619072313058286637277699529321705240527040752908878291939172937935474123145923444672613974231886975111657278906496245220205946623408755304447189043825660964205943365727504470580008339375018982104822946056104827668234976974184040371494099940302641277102095396786945558615447465740854091687618736674090477358636579562398406891642927495484355418127644458391262860696121718167589740133995505818522997061534505193856888991766604689367715607063172073173437800165990284440774730094725402830272706171930362678162494886601341213357634469192825460196175462768704430409105978663954524421830041353708207366480986447400219887727469249520253870459378011484013856062428659985275673871867070015179846836493847719822666768962363420077401203127818762811123188521019812120995690764654620573837037628920957233205766399606291979700745750083937021355951669471529346238894077800046478649435795932449272621861000346919798844708561080977523312934979913198254436570202082490122232061786456958871487689584781272542958453059329002375624039937987088655464430423892342676251938402629730486594837389752163089795805430925559453192935857541771024561515720958206009799485686066631162013418505157769557405327305066753687841759797778550988897192700486732376457516887460659671358603432665223656260164941089300491608102816628256901887810995631173876626978275817489146270062259311770089022096854774197208258253670893821675440911892095428455025470163916476722124978657474100909736000046982907062312196829034270946519960730565080547196570366547327333710385280756521448458945304859075646706607618976643762437315620071800132418763623679159089945690453803266222328104992712143714566083565009337977856939853951035532677447455578791232056153331495349581409099155494845160435792522017197872333973184526552101661822197603648167362491572991808494735181381892385252828507013420039229036323282871431036354425853833167497591454959233892618517013111252602979172880113679416782042464032756866214536664576442798810143553553407635187416427997959240860476498750004856881311065962703154378447116190850306440165648564364091267985328974771412923824771973303267985377978972969821350055065970869062730594525780551713279747827770525351521122033316950178032974726288712075794411193042129245935188158875746882519550414313910329653098965567944843976561286986756872252947303505189410101757208546299372516406963023545245181195850248039702720967743425382116499392504949175110827440079220371484997375655591443067384291350480378482474406956317528287112280965310577332982972082082203139300648725488696302424228633051679084214789504325899174761103679497297828161415565095574172687295197541945477615799916517084406634545311874110079585747284665485678398146590009040199532034860446319971352108199797045604729881713229405397457963329938817871988309010350527016663413157773660196223588058635082315210052532800849208826604006007781559337061865305791154557426914221036257584144903587441016143361500006411258584536590517552966351466458853038085072617331263444098789110285678101577112594526600783474695577974744547457648858494450314056818122760144047558586791304006853862964225538045089456040784984705125438735231609006577712851091338223424802480097125076393219445555885775363022284358628145886850647093533049720443859809187046227623279770022014543036086108054969138079912164955773276892653387586218860856988344283638324580508079047040747216836143168874490023500254891441729913138978584184598471771169371279553113189280941767660745297854717371138899899363800919031754222866419220664346474467332930308576849426151461769126276513695717422960681599602661583019306286241605099932643262135951471691004706626108742629177779774542714019408951884008819047385970211751747380649947183660922729980852248004921952909691026723040489823965462441650263425152316775097996133967514635823034581879604139928730852427407648996546709865160324020091959350401138430666091260275557864941816258193111341730706642883227718281292197653812785711138049632813893738226317017285608909992903956258451928291458231548995951314438205199648257575188516847381162829559178637684144137071161226924988616001397150163838284764109343596258371803901340823561681868818351211169076730903013771250542530455267590311525554976144992032487168580000972830086691440225678955660751169570778122077737769922020193423192714424763808248806630514997640550037280158988673875972173452296107767192372089410585960690763662568835563174739101004081542947675100244200412320617321953527915450419170600775346889462247660015622818180918162638297081099553785180958944590542663336225149603100145726157323427050861178828925383583209152080549758513845627235262246428408043893838013977481172072121788135492840663577503791735543731218218917638395394158854117244791449480282191530038993693672427421337407634371604051029105078938110692778453290951694072118405756775300010849688485141797185680312386366983366326539317654605903942850093193267212293358662250813640852738582157799926714661525192005604189365816599814709738579570475083960360794297390136963266417721173572170204899762824669497176168894927543228227024570435347463506920000096888890601475825561958984473750001638904733170471763043941873484041787377042568041639777580906419157086673332370284704400358036190890771608806170085307040294409942444902736082959872174911255764126597254660489055156226135445705100209449176985084858038664413473083369444497001264584486503873227113655108554284858046245904002944453159202879787505278913407063020561010903661838885124040164412068559248398599393426603874229951881183647703177643582628142328689595919543046195025160928906506675461465193948431555625472359728870105738093005726668666068082194778503828696487714173893440271758751062725706476914904948559645297737542506249870524073708587823563688568181201385939836939712477140187513290965861249016487899341633905193189202104205229342771570600889499460163241246903138582662901308981354295597400184765660619655245319309152427383913384040416000393799415523240890534114546178243834055849251080375910675911991545748898877579765453496197969185567502675257830789272050616867657994581397000839383580165383607104013920124522507308829659721574854282030664759335020888874689501446415921662514562199502363122216318065261270768269355140393226567709189588045957804506996577013884663428403597824071879053987692272869217386160928743144752879182139865366206049115156975927565833265307454344621311705686936942896430835271008673874545201459432904781946541918916105297911957009776699231229349022376895837413788096741682944642207614516673159921377029210401589681588657731711551431190694551495711967140215213061614803637591096101510087477810900793943256703496807575662311604635520386829620336068763086897749334347889327931282838070320383201746191851697007591234511145503822827677255747829527290022205902601350282351716268806351731863027893306918418963919846751759533365262181396872136674251810644943844599566564608798206911542441577736934461095789483059114989763313193511617351259741847340057326112975455626606920095836025396937610732981834813060280115380122957458120274658892837255868000552181091515872398254538487751720428883984407013039694951878106358861137417676729275611123337991623247290278915230306316796383909524951162828971166878747473939528320924320057708054380905209612333003359250178402674859374677117083390472322229962632852755267861366739800013253153731164486459839858774242564671816905348544103892911530621457755317795840239591345774700127804117161957222836689690591512735749923354561699887469151876604013041588435208572253461869094670594886043063379644862552596842642811560906373355817427259367279190490103342295239982854350586963811862382692436761234297952123529802254105676742191621185511514594223471410374076687766927725562325494676236241718697008528508052050760874539532769911381107735039352515067563135856075322127966048809508713217444275019920027248881711456954072691424659598887463133421386328472160450827586017229287731235257149784461438326894846605334392324310977617761255575035517595348568365698393286362181958454122112623194724023352396769718167721572118792097814262512097802946593821384949236236474460186486720546703271547685157393055396760979857271824553918817961907982896083598840261993278732883370497749549094291464105649787097077326112575931223869614647245201773968554456261831032094813304707908297868134538004305138221475571704940840623770628904114890620961240742009901167810869147236526797773691705756573518961067927113358516410645606098171032943193211567952140175097951734636051218850001736499426067379152999658616585248362298225574170150879535660072473327071285305983453893354722824061072822621462471991017009636305379461712464107256494398192958332465884357602962108557547311175626766969733388805560611632953256249830813694710213955206603867657203725907661989172057465536387856362746295641956845465229567323254510326456858362582380916415827141413448363501490143398940130479756281388615511672809880567355841657835404151099234620186965364394801019082008232451924854375411204242986928181051220466375096591500387394117391573102684804917571568722306297060034891945514607839904233461072871881450273903295991405579535896454097752472005295258142508697587535156701404549709623732488333576957283755004428556048995119774691756924412966300745899945190685946119388763351921530257561257184845977315257645320082745489510484158267839534801086692487772321135378312659332460300351697870861498487955232024003653457818918149319711871694681413937984781071040851649384992725482762977017765383627735792977842025173307013700512905739842829445136662987780019471585592296516552961303062835056529153384549678035574390151124079120864362434117593621441924132999595928349365591373350407321734639731521008570543293950955035317660966791212693954632554193779805211562720673659695320244308463877052211366936425986144592205988221764195828279106006664664867794783356849218311589928796454240521657364139938558226655481507061137691037419059462735305362343125762523337150998530540809127905715798323622078326581429828416582743923628112994133167103406177518558398236260915413591956749610751623488468784303289159710142596821701929075630430285471281669025712104482358074264440968176215767555133340203723534757106569369663922806292523554729722326200639960151697950158640429648753577149672087445411756556056921205509817639796362519262066343829457285208218055207525902360191901565178130464025422711350840791866501581840489820128084741262518519743023032788865169234561351232237819219182415948184018873490805144243897212460713666589940460965954105238043260869970426028822517793992862455862588039548360456208968622577351876874813109536044812777068552377009080429587646046014541397779249732056353142913588579147754949016523943614583749132619806232547745247389778844763405607023570644025893567140096474847589211760306993269584646577838026819140882475308929626566106544425235324534427454497491861864506433912986407111522420470206218629074474521909783593924533378044748417623107143619466618328928540043464176050918995215075633385175398246527870243333504697805580133942497787249416931654843308309162206558092327581460113060110216502635146795321360411508529573971698716615330042268365323488730203888616317868744063678033561837035040234236893927189672440046127763009997901451860363879474829229733001262242602609080017260490131276033334557688031162906917004159446206285008385202036440790850103206968219531320689611365783904202117203789540512885015646135277618940398056485903604038100422748502323073432803324828431002276132606299762016167488185710582051817534912936342538197869006015445425717436788068134406203433805162330006126608843844030344897022112925729757083013979834480160423340170069453789993331632452653799158798233743392068716357080598509018701537161079181614587777146387753322040738494196949330190825151905461226924934759210323518246588296398174388073982722742906405676060458389118213452555997950149274317757764130997043270293365755612125675378469044921686807696379170003151500965427687492974854125243543679386528558589560449412147756835682757831502446771392988558721565560653109630076629040058839705770350622567182142202434404338197823470091127544708844823083116922697190810481008660485851210683007597842873520877451458262583009888870449429478002380257206352910352590526228632580655523899890563416248766555369126258640540124841694031620786819101240490262039514794794792900192431257614618082343781642244740163364136631510540025522521181385010078172346664880043450327961282040884665819963708766263345304114692908501732072964012168358690830922613355923860637715991573284421713225855701031996816203514261104064942125718048810028580920322317090822413915479434565574434024614911736220917130904482285876543583621937856280807271035533857058118032333009795859845763893578147503216335931123019226995523450944197876446550163512633830446472578197112177667247801778522086258721012822452255793989525354104190503153407014302342897581806095333465848534229194582623016467510108035567110874965972684432290676912825043470141443519303454501096151903639114949688376405817685272765843011777008926870562638273105522939059453597860114487571802443632404989243868874225965849057766405851681853759482283878883549051267528599799843141298053541788215795616091074144246356205841437851766225637061737528629107811167862724151830505924924515196442162095889804995349938591760901930057223035815661535157148167930251156015144342471924552852806664577670520909598438476366828530477770827520300121039291198206007285890676914725917557110102157011689244967810466192396081583971325656011503413150909274010627312997922596012850050327698405927522233075544792833243270385125841299127589812850713975705746338894092764448415171692346202981627768280445219254980960630287157684144953755610634522647368735366306200095741624669823209925757707837622777446555393856771012099168268002086113934048294686280681977324724343986339372617717090258085083581237397590863199779353594560079341380280310310807386926403276419286305943388791953860133370920901443974412723986619776905135314237203680699011623930457292475927330272150576426773274128501645001863440415159682335877249397650152121640003955392413467255018581166055490331132253953027746275615876041648712025335770843398826562672346517820570732625689407562375618735579172830470048763187417070827355040522404389779155733653752537513214954751530333576679966393710202126304777520502022611668868274083032426950695362178619650323201007999227498981234735078897795551063207218720904618982411451741932544246793350239003592914127188554347737569813763586805394792721267851990765702677411021163768494655145104563037586561813116208085813755248807463346255591175903032072740035122477954962241765508698561506568690786238925204829029823277462162279625037197752576525777369330048278955993869451128734873762528401897650405865245305180719077182934958254070488938761534584258614727756420844115761902655081089788741627436116013303936391714062845935099659020723823933500348836970208921531064451139150893346073093505827481765746829607932205369492274380742831484464172224523121311287716676564922524108280101819357632796744774487104625598474274990742707016283145276238010578459395465925190945300541309815260021930084598141772628018793756441425345667723392885277296837412403926563521060890192887526796357783048294506171977610493652881476416698990427836851150470454005785199621080222150792420925297488044154744211804214314192030814514266089236038256219954360982091450572359416051717256559014690750303339977337324428494273305122892004917656368174088487493670619589785341669868544591930338464729530729265587894097718531827774111129313940040322794629826062118260793028033997311210553411715181269758146876164622126154943618473769543840830077343399465029614190533762610206083732361774553434327400814198221221559612136127801097056506008262425700878403387186273192144226232853838394597458276995482951140097215243829822617496365702799353052977483131368530292463935856400543211907289495491698426016581225311522903154930587890988392641342926209236012687429846147107204855245132277368610713987426483703936197433505344010275112048253785504836366871560496961120359728127517127156425253032379313096639429265323379460325574557435367037139367974892660230684926302213864846417132740024496069383747594924980394364979477089529519849581609808357708383307605667048558709326081880974059063769297157668704469530624366338730461383258562251832840227991662431238551891880540978633431663666443404419599451902848180195895010113843940752018124650845751859936848460470723036275992737978038073825394817834926766654256651941298342806196393673467821944540949780752277384696567930194757881435433964576814379566796360803890281947905684573698957818296628647332797672238786820556428346964384431757262380410462883532393671910440666647661886334048568586264509155776825579306784478165428350508851190536153115939309828066733928783462724960046074058463357603053103498351291911663661854428564327955091956040780202488970529120133208360664037845405624422134102073636957259998730220468033268890705716829185331878028066594912582672071778148377614544929605116193527476983598260195005509604379269578740965807019408004212394241370587763522072416095250101152398211364137897609637670770441815004939011796859253195906406375242801346202097197150716832859514291155572014976028798240331866888430141136001386352460875910683973291722311671259512461483632059366682691269663417642826316918300353539538300482862300883985635368901324937338984667820391578231462006069598509708104371702660253721883437148444135497412840887503064988835431636243673144908581405219412009443731552432976755738917431877501314240222739974665863418041801346276931740992261247826297785613269970966271266641503639942954652570149088735911312168585306114208526135188565577785076111095602843049365053642301376518371782225027485162336164712781543034186021276048125330792600541018131907885844589411906205672638864829546883632317288530096048881331105257643094707870830865533623980224253469803987598050311290370611073200095670753237115449083917090897283729358268592857517442573781625252381855805426729288228949049059889840474617126816447372405694471055996312576273929152087152876581781008838191590424074065125565838678196712914983354188664704279413532623867819249160869368743059777606954199946927778541089875518353795628037616439500039018034781051935120751492529528947439411935583797879118518536215701676156124638845445153721163792758842759843681262720774274354960064278477026279574702626029686302917878961681993723336520546336832789847704960425896098617732427069742415862089701826068981489853604647126516348553254360779046961496251537951174519179431407926137167878245235838183498308325950649735277245461767273024465285223588185858594327406591356844896266466273154823495948923126847622778319280373916734078333596912957518869081009502425346481567066680206454921626845512423580369921353093061414670874358211030532526830577592569856161978411610186853666432195754138789515893480329169601085699141361147882327001635391114967209348804227992143126768622216954606831844670903696479120582897330865611806367627859419886897518039345576589224566983930564177736917736616311840811313819311196865142035205592590085489025293495906774263096918669452223266040430555882373228913179316842218633027612564927540706693789314397878414460067427914536284349461620324216550876125383898714210651831029387738808133890514526928833415413932848571940676176000149603454216846798886133847624769712405873445814734923721204608046803058334005766885032768509100294294223870511427121782082778001372655565389351800012898151678665560189338785122533287993350478243102570162083393299630011846009010987601301145660059539382568453089134420375705951182332960218636570692947344323906327330847781761900632554226358877535480106533974400178402756343726491697696638397674507986146626815927570396460973931961607364523276614291073297475429558350280189225242937636220865945346751330507309060241480783599359002437058713110682912042880106714204294962401909137217358836550440788874280478684967999753137729302056246612170580362607418210948513317647984120442860825973244879812670612079846779875957197230277099998161770990942300827227419082665273404510711455106084152168105018121899180161859710722045722706352029037460538462748307497677899211201342835826963123823392710409787736498339864792060138733319485942985834919918948305424452891421012261664287659399389776608092544190039458347200247523197659893376620546920524907856969246036850449272516997185593946270334185072108538488661461140884661497567406934394207425659788942244260980744842905124778317956885167231132454289161891629583471006385104869124967082062461467832494239876319820907518982994410638970946463031536998908086056754174037251960896760596752946355009059295581772778626486228095417087704279121027658844435155567605720472988956045161908348412556637608415641410484412968616153755793013728195791378452334526167953642538267948833636902913943655822477540440766470545872509530867249803325433923114541791475504704294695833110636310977730107788480614860111421418453415308189385695472664022663958872266304243613139019017208771683255242357389348575232144267141080999101589079233382672090235246278636000833524917696687292313525126415258814079316672769209117550554238080123515914393985743686592174686160731758286119815349634570309728309459367781061188441924542360471284748055198998077725305633827765664361277412254933899418292797003240705380012481797915340328487254779914247621097887551392422545749784103102198230386968440262913615122855342321448637475627379014110911061660543945458482849249362985067894083238183548734744124859372452075446095648455981863652563728213922449341653327567169466571582125085314230750955382558248758809644557773951186757495947468675163561226291574534404603376706614998253451932725605219906061463131842458187805101725216976948296507993383942393375533111361123043642824600743491270255325506720867171228704857531908321295523464228014183915241900054018951352930913632670033419382676265485574723704919279509248750397292689028407095070590323775721827604710657884700822344132522482452345419383836234776043960995245382272729517998001087044805385980271529608560176807703172930335664349315800470230998783095936372162862137607240116896014405810144220542593470881972566447961798328315200224433976521445635500999883927219153306538523492641622970168872499715824542972000680460766467220503249789278463469379423616828323498136895047049760169135505010541144172977950220027193223836860778783699903484839290755015473824873388867784398091423293330014963670270374544653236283775185127879409966019342129066537589438301310369167656329723354421999203575467411580748589628321651985423032011652846231826882324250966103957847617777844857381992214848976110625339732143292334152914277302163030907860513957099181520615675263953713618539780252336583596677349592463348762535833621975180473215357963841375528027358145180169654819203515568743131559186930991128397398500012981944305207886802794043850553833664483472271659082206660283620754416884504011448300083650349358776664221326487183641616517799411794945588870425995058333600663813383181735949560027847423819569575888683264180389118737037307344366937122306677368236947849571370663729213414737243428059989394208872273328002946204386832586312198810949356687701918806587451604920975739754136480592474915579040297710946083679005795419101980978191083836179115445974230617380987549619814384233973689342554433298678855395274914294410614728206922269606835407412428427042190598042370663000065651219880577071831135953535324925447707320739419869231957990872005769937303254123449455214497969134302383868444967488703364701458284641361209826546895183431945650706447635872913146158000530841518034289338869926165288308040207678822926769028336831413541973666864886960563845950922775507213864420344887245257307608133831977940010676442323738598123789991131793922655666841504471216339511406699571495818360361310339589854391239884845370005594349035668258381703047890981233747386298995949040582166901044864794599930204050603981590506193482596548363605371060556965088749554165283740275043730089329824482150965297705139576912566914786052570524419766618702241299329100375895549758030404891346910864422292779324270780263534745119851136595451008778397322429409538436171022401287469665882086822349313442781806789968679053169004475544440422067165927816194420427156341627505853369262527649132055653024720672921072488710631913939560696467998826341516542645356461399345982327101615990671432783048855298586680957062712562728699449895866537858490808883246503921750603015998965571413780576800214341182347504821279887011566465834181135330183039395225468914947315877838664999860941784699766036123814705630324346891218682249869014576469712785322343172645742360438852199172453319508556339407634873802911324814863422833974576187829961768967219916542271156974873764648254748399162415204456168633430780916079270910309816846915736371481087858189440599263256182924370553988371445628976121037344279871089164404326325504015939706744445526368603949491529521636416883998113134505457180110633486280629803790696360904622519325494601391512716093912311459755277137307919374193902788467116712889564708294010489856547083131057581630301485089338917240318642771339897663326308924835366929630374735576469842598214634462824496637386206986569932115478837717874806253772360658110302377694748400870922151175816247760652434066109645668412848715260873985612881982584225532532506022940808633132029087396291448879647733354102125313556671809873742812153831135319281469537840277807464507836104220382615252867561502078048647402126040681438810520951620233151477162339562209217085087205696981188387535725621341968125234231093464559071476694871404322176758043487006069798995944014273180027784936897268869421533990877471177879816042813167076877775957294512940212916043863768993824395504111955867046782043645012169979508127490395019098234314271015780109328526234031312889691870046369098735745619673830027500347653271478673849091833442783457160653855919077383026689468550734491808530162642939797943462735858658115767283502160977612637106008323065101174610010340216454040483966707162664189221816435559839743160626325893516232896823361444458035258036411177887900796987559321188029740956597204308737787190006671429654563632327054026773761826277090139080911464819804121794092316477081061141026004833561806827071897793635178078676834875997649877783424445683532243618862329938407370074465373338968792390535187745809198432812274929570923061676217700053389467532670461870999207003528302014724108904159176044153175752085441440982622939279965422499650667508160312886566126376050816192680961711499399070648276209208457599144820145476381803434293740008657126614012644886982243322291037677748201839503024369063641052340126128548020820561641298787742526877194012105085801949149939965344481480012529057430930598015411810673820328921163900985873749530883928683913873799772716574321184161890102864219516972216549117920102864140088414005548748176465366647451236310624405342104195241308154238449293294740202436242471965661504419801374826815790544105015180996939853610053381027228589518090789443020424758531267722267291126625861772168042223641209379298426043895839941868600931001439127010640857056169298670633613907115886974936923398233962246843573169575244178504225496641945360009101235998203633141158902266946239657144280934245449099023379916303999435143123573221854872859257382118077061917466474751432192344388473970212177431947287759937255843507999111898805496761371566473063269486569244356963326288921583142596412049503781982013963979904613613301484400164065199684215546666026381505399999210968956913375744204397484491129386536910380068127607522131952001143744013494568559558085156051490036862793814485915034559017923723192680195855535163757492933812335354226570020786152307904182016112602883260080772964289613907740334064953892077673670662786708683679138723083823423096901107203005677465623181309792951745113323616346665473226381051712710703731566006193241348429929497423453699283463994033109803020612869210288580184734660232166631158431386638658986348404973914990855020053512982527207921467536306278596655106253831861723056277786807862085326254813918739612574838850687832346102783615768613485628214177614457097090931682293543254120254897362803596092936138391126481213753392322886978899533865555853280289066683033759498380476979216266101998212060111416620558685055689494746843455255705688603734905889852399140756295001277780177122627403653238175761830344053832509584474823514022226011063695953318300951667119251310903586063276690801540744128210670745631621178677894867598174538470903895904686275709279312241635467262755005374763351303403904304236939689645718752000100792437244194782254891900438717535090863633787491348591910711891453672796069471085151603333672501174577279858102517652169116857706619308305185279350888458966407705229150519024842897046261256334401704654204072178900195084032849472483158141606475972988487603446647701500925007613768297985155846062114284040373909938739747835854551850688190048096268814529228818817258618788742703309832043200040121054562530524563658121706518062046143434571857367892569708004026772345097273616223113000245945998685551552229925227089698254152637050659105509885356593533378899941978295523147828963016489069527002706393920108460879455031300903085890848024828953820188158091341723486845456561723588609230207198126266277378344908973578591910722399320955489614263638283328753681040354602822346764981096074582837330454797636301329646100489282399419558080263137451006824230648813691758620240904917656200448825009423907767979146607025797576599459522929092041058166237974798483446109387120641329439266965904208945840323867660575255708169360410609711931310207547814768885778481864954238703811156954446535875200499657888636403416851736492929349706959519620632279477987021756161535772850314104405624125448060520879183693952111233619981357686491379721306490876792185749690167389288850569854666901127648256244703727874905300829113173474838592681338918088900055915445910774086379340919387083740984756472787427480644383860309700560461733657694623181001645402015474985092913747589151203910362473306957899964227394952710065112903045395132117037002102664858074757686395406620635527277875776925109023062278860752245511525963955234478122136822375051794448440857039682343793495450363422177773635389757471414198783136916830602123334511412184519459210911248795593446999194197586920719360127820414961095042708131833733151092429887757900883114553193632042939242802457721082041875191106191029711735156988381776086867999508288363284174881642535455326295973481049776894394742304514840304960631027588332865296083571914383493785324850880607370180346677614070473161478263918318812634329052145003380466778434698799742983452553348728105051743069785370257758286596466363060446013200581363716831157364874955270447163996686195027415423356909387501828169257720962245317230421514485884915646871675154542051377053638019071728743619338842784201722123622053460587504354010985227204831310054743529000906974532739627038044029102079772096011531019921440111018171168701262815977309358117465378198918630965407104859866867674646911255601023035092133772864525541812331298279456159576826690066042422572404476963689213456078433773068672951889276470059475117590746538781657297798859761617476612476358217851151556934785652855029826745442766591068369823602508601787347586832281826873355242719582597419543974474072105618371699616096284694930842995307721987318195655988748706811122173568880626985756633235251851910577470119431456359476074610888418165551541655549543459328853776856380939479215400197159982699566023955143154412140868352809093992558076909860395327294006536956818272926854009337042217911551128755514759261153262506323127993522410276674387176256643149823448616497355506425101423590766273444316258701576222436459805173290692701168343458055327346027547683090777156354059979116348292952887641988413198161987260459638457987735137082296879483503746701130800842314547781995103432577960576290496630743564791712331215282842484996732121414104034287133243367069352095682701775393731231568904742175032952948908256505317303826789857475417255025867069917195219836458385876187278213552645964344020020624550678717456962521119979399100349663619782569508820866810495298258695630545228899028421172955526267930317490685673547685219694684526939321992984065648550741539521767572690097505892119427878336954982815065618840109997036897646782121303882584536228696300330994403795848861005783291442524393878889516461411646128079032649303065408143387216660808672988251857034920764748012980871266017475205212825157671887491007722244564636429561370383687848937071437710639712062867372756794369402016474588172414089251576073332806917388744717998731324718918779249733145753615330067942865226059957118357161484445420555092519868209917778915682122187188246032896243555198290583458671940247259938253567720434663511593473894446611301606240151097670640506655061844024936611527342540514045723895181313112643414587745778852742767873240900432502598447757584272539254479956485948168269161480012434795126358561274506445684227585089293120273039393318343579652468012458756970376220430446614600943256475928780349732130758555680095838665526108211675773888983480214276411004629123646891457961579368810015494839599431517016579158503273575672698607022239539132766528121398196717571694029728695371226414366230847454185258761012022300212382368860899186031017936374558979387335071151147613706555473863531885859294868177561956955290263533414798570219103021947809153893389503500992845109190040288519128375525960410356995128582739802988169229302288175164962647671320819073890611075169417881658822585840612952945790350373858352232155260356070869790617635155137923804728525951703750192647312131736384086149644021153660810576526152798449889175857483788765582259284073300611632638987765322202058150623534270937301532182026990666502756743777785905129685649916976264007410316696604857752699374531834633463126502240810789488499771595017615264099910573546764971332452581347751103238754842125366313290976787301495891929962220340573728740841636727523976611284024434804290056810793461522805375558814089274133668945609679688355483896883797209941156192485275124338342132488199130773854832273234175703156502926062670539682317649060614344852540692144767342575062467118497925360827747289387467211932355649052979361094742466737772613570459520593059114919849516520900389029870680855624821658950229023198611375045580417517931206599979645772813416763513970676120265124592995360234047771231392600580082348854680255724891716220149662938983586024135736966021760759350945478986085423846462733701037915622073500785224563949075728510502667082815772511583144922205278621896330205307331716422677551041073403381511087247855651186293970091561531155161322436278535704991972706382891973308558498559446537772354785844329906955771117062146063706844224954608846795041445947187445030206642977956820890700738237574327885113995954231193470588701046142977146061369852886403288964559823663838518649269162482391241850045700319350871127261797167896450323348647054579099990572657393875796255481400495509072338882706527479566808864805865473695842111011154415426056895205431181168994321459075557397606207340582995874856386014452456527245264380894045260242070448663705934216963077484334138295696172632597552935891799152951202421529627019169720525730711237322114091943553464143880561689562867856844262190398382938553859541716397861816699107002728618869160150350238535725286066647581507877216960136354840332997831234622784512901766498947321248015066789122956889129714241062626404303031317953465806071352734556315830706766409849268831130633823469794648650102934745365210574480374144133363539230832764871704031220328590755225379599988458839985459714391508512322099764455467988264996000229000381152202754282699725968216567300193230210953328708135620832153642928355915580444139136596029572853816924498936349837016248901384632127068040802104727747911678267208760976233976543567065096183854195442586876392410567628952158320295811252457982004392333914721666344139221966774551261102147007640474013583939114589228848911864220437299783308433132343435988882696196881110946281675803689386184377617484323530707110297917810515014028429318313914406891747985235612226848063967137046873567643817404693616913160963001321358993532871028097858548826217883122080805660147349334177144645403221506914020824638646561060487897917034249744869341933641248801089922914872356744422557917636248515034675903637534503726330947453342557221419332554204463532923824082704473434769551369223624133018176867358399088409193173442710215802854444545137639489151700112477685120208822043618739573995937305867566712552184872138709462063930668866256756474226106371910636964118424413871869731371329870106242313297147686331791022355229332390437651515032502759085071573113459815489463075173495216412146109091699846187290676527553400558217672017589801746923556365219438471940959666038430498569345865615871401208516247603546909742883692877383275225668843000008277769116131797692136158294204614940036230876975797836567995899739058832583169797263455199632759518647863297557033377203579290939333355171971962590448254440896185538612300413958358613464538778205611959830492710405423095899549913719496889612068923651250785729663162575589937665292121990386420802672723385599063989870139978231825048372357423735621332221289061137925441667458907656115052327276941497145908291995417658080086235977462110691054410716447836957001883274978215164478801869296105537330512385519737137951897713575311458786617885408577928679589793920960123013662089996929566295561763803587378528507802369191376901773336339530436792931864586103455164056295552693078864819443545666772744738102724476590965278503848059257538336158330067594215806851352062807421280407969534679925662053187329899099463548314043643997863341719172936129343538521921445343220710890479145439896864437971488888019529963948281223311375619397387196161296870359177496338373860429690391558041600634606696095007369881545012514148901580227014011106126258036780331492058261970559380471148105711524986545021978047459102704916741676088358815020877185147067064003036075834310365307074351574836280932951692337388317651901940016745667221044482842189659322585636046361985805613116020233354853702253676929833719689058113340649065901184542348479604034856578168906382189719282466780352517734849470648242889734778429680426560436020548954827069127867022276621730669775358154551205237695591836429326994510424269796352103368994138097223174043790651042818807074683752686341072171244745464575457432485303167259321535621179605230945591695855331592613849794932297899937298697861738319186768916667270183235650475371658545194643741698268670109521970416950983777402301093673988633587421919477921902718367896599351279239834223229250063964341009079611035816081608314457082335249203284757528611391246798721644562718018150825848193109080859158351039227153812173391363821657883130476087871713389464859084952778447567909149813103444241534009731792702191432943045426397934396698714627268516201564704328213471760852152939005672483798092926818585995145446163181480382559051840281332261625868735889027999349623342616041754778052835162426702207557447038150763864076820589029251173976791382328744794895481138822857449133406435536835150534814987621024885886641517099700630315159525746623022095132373968965181090627219223634214205205720900382506066672538058713536965065409116502448696298497198103175218036144378273523637124427877418741290818889636624839596181667294855689591182823861582801166340575423089784416880367242025534339941168803734967871853125904066971464302420067883035869250209097381343673042937421092747122759999020686970696824678490309655391028063930549839570306820143120242215017665222925354278326140364348307420725120143722786854259268867803655805125522179084000456490195682670455652634556711770402925336393426661680076928317601198436398714237783798212450796568913660559075474996035863180635303362179943042217399189749892554687090969171123713756665433064884158262333834764120893429901114200345416026083068563707735653105278742386252098581310218769408261386191198785844714967173738529222769194004030833831569886967378985025587472562219393865911250856022979083434879275264135718652482950748354788469315276046890626576810307979505402887780672648266432052051120455219125498135991842716133560651209488025840279026628831469782244389321089031744289015195076871550534342587308749205521582232384524035732631669704255237781068563530020762746175333856844619786996571052991666794388793679595568248910342467122159785511234015787777692638834967888495501887301245181239790656284899560480458894651646537705109247918992414584874021825220130005595922844145802855467943355802193381432555860997220146432751351099950960351821603972041352925936085194564351099846214222229581451663921427314083348747687200399617320236785010064296498127446367880434227725919160848076274313690164786431566071511844620419394264540026575296723121512153906058424718361748891819557660997744954439457135156387618358675463141873094362538655041592022464783192282387590752946896574135271048483434219444515105963865993379206811694871218014371027048308209646233466068322313572532382147302416560059972427099016404513866815777198405948874252575085799855769344807229418675573746261559952108987635320320212618608898176331680734666274307901245409359930192373460930694484089672315451308276972412300264862567005339459979716973194955476910952675717404697839095915702341573065707447772133116030684926919376442464568032391614280570803686943700089929630612800976533039988252869529687135759358281437660900868981762454069093223704901937628469132647956066983590753549466668631397264400582328729954232843839106060688959879469326635038188199334351321246328211803552110148678216829939013201059745607359412249291674577569684839355496922190537570516351936415338622159499485651248529637741153388534526620276284782957621195814871507135142322356431474714417134031975686180407295956996648239320506211763482776072483866023626506830670508100676828794209806497187626155834253387817345288285442076441505557756919845199936010130113779628528697865468161233152559097571054926887156214265148687622150324687880682182665015847971395974839137619333898384375179857413268865943721536412376368734250135522924017631490080410981870768637691974883469712045589814140240842866819780092644908770224125493417736748874672400764665251380898316081799990622501687727917707556765857057050804243113163799366112033825306230304099487199195800064164474825194966735124806352203412384830353939379467109516430287665105264493783916815956038030818329858998611315405473180382731429398221720791202435354574762471257846491275461330051777213380829408577570676794341430111476682543627672413189029400990508916435822722419492398976948755164841159207928995596585558465341799847836390820277604319388437370773036801012982534761292643894017633130409290759378589088144118206999608152636196145578923188952736463878911043427782816124161498326600442127697760852516589044977457647666879502598053411171229086753741655190042987688274965656968868584843726891250396610339305143689557117811369469842367430690120478922796896629076035959609916823861258651714349619972126224480597467951381185968890463550012946205188788274408203711276679979167817561199708696163155404501656888936545974583782493826085961305232003462219692395374822337165299660206671883403042492455140284702184657705410777557677450315407335056404568031473776951344642343631715853316669382515546669375261603085334762752803830075112744588860478835301318900295565563068461359349387506067067677948177506111164070394295510311992063806713415170097033357221687262654428584008571703047846909075117831441735076363434969501024036766127213965463712621359652103699207534029709894853159059775237518302747773208303210006155126535936023011415776334255290931612854576475069979769549221836918245932001738349900135415797328057742747800907009540362977102019706376167603432133054379632188654409722647904832952889937101934149293263828701149506743482887816274450434635962801634353119859569082619406582334493332513308486637277906509688703819489245244196800620475075313563496616995662685399290267950700198425473451407977498336787165937852638069482194488377384317042105269278569916058609761696690032554884580973807920053330964950541879683766095717691093147527282521943955883142785097291268823086824262649679750943108373561328942896395507692664915846054435403090509658748163872066332485941152009577283592447589523832657012757641659575368149656281091119299505093119581138950523745291003551595675825081136712521355651849249434433710738423883186872995819970173194510405891852467890691110726868113442396769828662877543640728004939839007424902868623609501335275574630659446600248639416113639417807447029420250606020734552079668333600147749838465310058178268667432198276194906438948906186327343929112876914552849171043846412465570222742265558864236637355053453900146380259800040087316062025755466403665726322399747785378234933207345701365541547723952982106870767280585567914943610619685759973802377655572539945959360063027764254017636499796899420861097271679279634229109412000951185728849538360199422251944652929687931796551693311196449981510328327582661468791481868498412057269020593310226826483468417991658576220112844018239654930435509302427517119711342676073050631358892096923160290684673880199376332644604024665781519200513716553925766344252655250746460324193692180053567921730294483972894976795610742782244125472195775659333554039124693814841946877467918202803781910718141404957559499915894929962902505045663403289740317307521602003121858809884167531132636651848236087279937978774148413114788077421985790765431898710050347644581550357127490178778602895795314709719664005458431116831172515005024459581389237838437864014601583383977721269830968037287574974196882758100119466832129331013131399478270614533382484253987562376317715619601106326879744370797526052352090471940076200349407223715910154566462691887699448945253846146882496439019099737772034945672961021338938215804554213095242088010969929041444907451585850897724459085834550299059660519465231331262449138727272966990690733694462378967567847432466089174516174662015516512501850921194474233240083158703693527352111568726613108401349430882778603438770993114822028100579021285586083806925837910946967613098277782640992635774844080768486953662426152802314258958785716201810526309260351302419851337453500238730758158941055211342159360849798426558781950379375879828400508317805249085952327544315541039616310598998369258263172831382934456919355948534432505141247566238386485237994958612152825057702563755243256242073550879363308205836483908384643834273352159481385413283430856539970836367141208402082441966006053274637396950125608552725276901986827039092482201482316834512877247611603573802916028086005722286153123376706098536519492793000760070280523060347960952102092730000280672459251456036377611652273828595708580073449546870474278499753343441685748093897457277191876288997643964957377563308107806392846553112326006021067590608607483206682029520741737341375022165877944333337778456840552583332353461838227832336845865293057003029946226061240688371416654895188380725276465954462417720094248931335596404769702809465102466395900950451431019430821947424385230629767157392211471088016507891183615720823989373180210224169780603510542015486133084475303422708747007672174449377703028721610965293834360118636249166259241611869962866595753736291640792731466501313023886373774201820781068938226027467499187807268312615374517750348350692932782221073780897135351811317021211543528316809768931505198984571025216671647199427723906604978088491971317512166855668158148517167591818306542107894394291320741619584249113628620360766853103686555743497081761922187954645445313914232711119871265926870002846327852305794625976059315366419065594619258678147143108782625611336568171020035638114518800427065788734711408006095678242303030748586413851219329244527323004324604987807807321111187312981066766687503579881398491705172160732521580201859489283622314560181132098646674111762083030204417218262358207929111944316306424810088996995753025609191373648830457864327389737358642523761140972845294529166197449619083404126542064586412158737564933149703200818358439485882249939917734928679421516618507541302332616353847572345180359351639750152514776850390216846597378871735097524903894622555164583001943885618029081751956094504951344131927717270269537067265790162266843608460859549133687387928664457815482738058989619195292536260228327055719271706283540040227742639027952128682300989354946434201509143603594227473180183074644062549495732040130167114381800847253748679309148387586617418128725440382194753069376431261663800937832584355794822685786529410877243386522346298495405678550883648069600614318368984267761649321568716504489082842099895016510646260706614426100616767442761160869186119851965617904760654586629484330286214226086679389508702467944706789907190482669768461173904236562712721134302740342683435987141649996775226126906859167840345703267659191897326203357425503708236392192390897925036067151805929064750208545064698292345396364518192981879100139176560298778152408516334333696222574738471776868532936162414125771634279390936978786599186018752499969474898999997149352425805124720365801015876658128819289264463284537188642698715756352323001662319263885969873499196455159795379739425244564279215890073497650825351551110504309298784118239570709253142194866685276450042798972154389953941484085211338603308172072507605463230123483932835317571807783984283566836665776914207259364805744624707815749659382201436290480524240748231841027966880210754281385516654768928240264760738647933380808016631305448406131021855671409233815272961929243572177524499028117723727096674241188241882703405332206870370070979572229956877894338832945847891890856861262332518684389582150780535298130511704216873042374558798130511392200718443098270675874989163125526659216772674471751448857223705388505199498834989361135117183876772646561836068195446039102750415467835504331092036679442758003245138229591816167507898008883856092541045802330378015720362491467419539220905003137466294053525909331117761739238311518341974081531843652495317223963613019793582189409005514268289010652573140001702524932730456661973926210989430605888541124045845717942203081780871402532380010806479041310119927995534588735052017586423237891607688626146122679349917226962529079978616543452211350306166193415397230892086837710066904273539647637266783316774308592145368420014948938891899717243583187983084873447555788753289606284383598075009289596123247116137656247857901974623452290556730350873509395057527844798690775706691620957817644778016531878329894517472497073110874387019654634286273373036718960824400084260696908354829231889412847046891206860588542417385967093950130736045682196218149969526209599884009984926662642643142501117661612407558239937927281043750556789341277949382731608140432344162227739241229845062492833110458469719204106938077808641006068594719458482015348174629943064207503871841812777380036460512983552619270452708095181216123925529914737586378633217027593684736676248921907201346556735062334730863114224958037707632431779487231784438306248960787501405146134381865188874449643087423484927738719775899797555208422138585440338990444780137981638055948276637764623199379278190898702253466503351270028429896835176498865665912007867021520271803940410699971776612357856999716578329405655136761363419427759850116684043704590945831012586396859075812603383187463047619161763525178710456402506911509027270411506309299469058080278434522566700298603707910468202873998609440765810149302473956240332994027787993401549376118917320952523920221496291308725099178733714555132851376528989180558338196571364055096822703227444867201282866565557705207535516379118010584559559594805827348902739627603577002068473768953878516947431885921150880133052290050365374978331907954410315978184275308593632641324698975834594391807842371802096987992174438233576493350972427982392027221512564533075515686711320928780635155798404949390167893170009203231905863963706023857082754214279975100752112434059406874874733296294362328962733247252485843175254706419192064771437049755796263676743111989780146081030918640937748619197861768428610245856126349604764017992493574572939631204614782894493338675211581591862758329532607482902434692013060485916084057158398405810368482304071353483344172098722345180858569158663111329247286283925430558631796990997255532342035703932316197065860848243414240694473027129457454956443420129789573937789175977234235425693647305650856554679706862077990847303809526698791246676254293968990242820429782310516292772014928112488423850704465445404028103180445774525027353449657376852517563425841580376240990839280649183760877662789113434649020629861996240736503857573910231693968626941028918240935613773818327330590604820820003636667154441052052832402723064161735800351589060003032940802406201913998454091447297032993000967956736382419378235211334506124890769336619714176141595227152962959165555838616914356846789073643237886776227270456229434158752656389020209217343712160299246613750193426093352756705887465053205362821080367059015448094631015199395324695361573853304821042295899161977855423594558639103812987483831533729178968879109211656435589303932492879556398685920883541950264426240461262472016866325339353661350359020283522439486466634733218309344483055726004329966817429612181902868087166645702727046507122488557823259846632794711868537988187674226812139579909321367609076564341106646068278581719474570932225423181873539153799389162648810903758614690312983717078797455562441598096310055863594336088605946202911251227917602052000853969855412695766733315837078996128407776694415998305726809197273521668934344823979897171858009495320655461936885557145158561723149491487916436623773354424872785593571502826536568788169738764832687982802979608324981156155862752879205459540234715159658181671288740918263239597786176932843245509259054236460230556944573295910770595685208307525139707423943077830428061063572353118939851189005730765893525465062002530309776953431947586824183252857116266271883496346693314800258139460194181990010089050379680565223335906293675371126366469894125686096856785660164188619257819661859548748461439788994079264794037332360277232187371597978110165526521739080913636927035404491153347044961943963384310092292446275026877152923882924569759003671229886650432091202879305940802543370594764225640750631132642945217502353964670414520903118603302605212143635135925113002345409214770221349441342525951785358915355883837509361213840915434841818264584971151653691915831610230095428684796478729105972269304327432147505956011404617076413418044523582889697722216287598629787783148201005183936924614558663610921523880771793917062741589572802324876832304827005966118590902095588008840656891968981881428547532878785864975195312273985099207015905680592061159737244762459405697151991801219755342557747717272630642255648223540921763189443432600969365385996477977552630245217759787704800604227834976779510885116205526523441517304979570568166340237232950318194663193800656891931926510065224672447059759572541941084589625057477659307866292245601503192789614774863780367340885519922961315502527664942737607756157029986890280516213196212495411619371460518914583161192887687845636070203297979730606994135750939132026522036277950601508213849710645441183258582035923870482887709261855955844656468933210329403847903443537046567916369876004884036842272940167729249462054372603597167535927070648430117076396261916970863154288998981478463027182712648008508673815903543060574383427227950780195921665500353190275180309675458691442400814130461510437558444114049481536171395771363887387142371872032266533869659957726306893465771106946314205399458474248677107031629655359091019586678828399206975112978341098166056233109138965993537592961218035363135805468477329849279428568653128631565987866497618004162761345480518594148831373614769626758196076135758503365897075553851233547220576127885404154926400883617278581393760864278429875060522580332153101533145431600622567783101163335657539943988453403659503735201232803208495775970303810020982726085687752870862750680478406016517104126372109700319251151061912231073769747606729420791407343828002257564496318593432141925975581880971784577727929646873633471867365272004996303948837499536199054056424263620481546506645425147166738390882424567506220815210600994954395617593279596184605872072574543879879247395986693035056186890185455275265112985887556301867567963664399355898474384595342510150858799676492515027693854348148175810445990567081721416594293234833123880893332536601411315544609065212271133202082121983174131500855644149305548144766532506326104995340508151309494830794006424968203678172478273587084244098389375788030034910060132837267154417486463014000572164802522443752455844068175244882133986628988095690962467155882787466142717137421462433764602438321850549165677237285223877199173876146800084335752993996193004362589783618715541031523567956796064706206681508843241183635793082736136472246798527519735505247825976342919631306411413331163002635083534673165293534812056640976052801336824387131590978524970252664197219611261728008094371144622165871499321015335297416159971004756654789021340655561203883395205037473710769976568124646505165686743690994166313972580211676826316063114687539010199755976380710563768423112581826297695320772661307249981756239934071487964024677749850462483864320692779268245179492685932135757126861880035891704489664964922643529858260302402904046621589166904544175995277502963400715707712324585607309358943449510853769629808611303204438866217779953190326256837028791915195019355034525088820534433390964803410839734504196647164046751999213352201636049465365436546710147974800856339241925814163984703903679467965149980920817047598610370970535384191111381290125562534342837318468336092341979268798515018159712599982895725276965735101033178657437375243486879860272663336159534191225980479136612852730246829138742076858051425094820064557651989234341044364109121997050831819630541637435228218039971865146945655932067661318948699786215413523124968142185015476233304310742039255063314284226832709347719548335086099885480252908094849942516973487499281104537157133898990149616189573511505246437015658297388911322067397117622095010276759557213509818670167047238163113225370919733696370878397959256548279499578450512541469135457132664650045346575145050327506806066050356680116967599816398542116816237602081229397104145577876251486134521410516982783211617106643264346642112448579668535569663423532202464205200820263735840256583168649486834299798622834666633822705284542617069618554273037340297959901116621290281825257102823355850585121549289493878945532814677053477022390553869954763220624419976899660863248580380786330898415670746548369847043606851818660700180419579370190436347015710043464840143334905316389276743565490912438304644259682035831433637774565589685155757367520370543128207347520818330761389815609411823515102165175883943029776446722718380895848942339558208129404427877386872359735162265023975363449016317375696346685427414633458746203980142286053749134611714405063007837408576707704550886730798271100234348047888532474638073958197993965582606778200078292624322086804146756087209592900227674782399307296226944787285056153721801537694076363448908240524093411202034772068406246601446741714437770465779995288262840437499466126902937391491668719928760548372314776496709884054285338978586833980117919586886533679633825697472278371986226840361408164950696489750199887431120495250328603134278248914317964948741949244388104696154664004082016804411095781985980956234673181288423137143607859845750407201757810480405877434875251285086488423814629518495669539263441904000747701161572633350792121317574393435605892243498554087557631157324140896611026063408771900452630257180921032498470036854441421750318017147287573912783738387092762605088082530345779316387071415940149169816149183855813777476792273801978702386085682805955860407895245405935365223769470095050132290196552178033403875271590694721854046313516529265781456369045502013698561151128045467264668865899739109366216620968999995113362699945587261407667751172169719616399142337212486642033525464274702121144680594918949957797123390868769131902576623728022952087907139174764183799991094740925104813375423167608707349487606532211153741727454656212273066195295415754483994814427500182701335854947465373300524526783642303605581945797343845345777927269840275108016132414928505721781193595541349841116618865728545091985126552804192983793147152488622604266154648286907896715692811578876955594579210373549338134310134887615927473505772295679505623910630785091701581411621888226366968741309965670494455905185099720687204338130716623087173132455444628466488408781391334882117705051930283473673423934721542682150287489228350357679926516986169427627168035580560838159926065537665328953661826342387249855821450549675264804691393085629200289896708833061759881770188731861999332470704354570574545134493417271026867773326807874027456076678271832809300621838693577282048410109713521365676986639904360120624897440432758331242438289511510645868882550992191526524507508499228531522978483129150144135655609437606041410395425311528985670965361681882825928703835738638921695352096093629660177433122741916586981131978338806741438010422584610103735685999392748726243884630839391933071771318954716237754838868739200088421447723208506038167549815346508642130799548265196063486850545142580637502931820288817937976442113962452656383661200534025319830032671614682159015852941454580267267501398008199363363387368659685994446123765087266443569749486949980219778535218868590517388318158030087532979178544201980033473958822777729180241143908569499814226389535768484318112433761505645141788282178418223991214988729218114194036522381031739333883402081414753079182032237288177953599557674934856815946945683388715650113489880375823717957992562846802521401100371003869007981817093103850238081785662538171858008468779886650770647770027094239319002214331427152789853466182363358958131727418687884679505121011775719023913098588536270230036297871383931985162350448191517298363281140135750015962160420372191551647557750300009872272472764047860092107139184188148716179806190485561486701340891925315671150867000677986926555596002822611192136850240849707841181877732281323934927055572282112624712809372444449641860514270836931262946707115228298561291881672884625435184400080476432756998208030256027931009390783715478126418477028985223816371489063308370511680307479047442596697670054552007858384905876461788012182647366601493517599039201393049629671028424145480325763763944286273761828918980112983275728125515279302225286693712109370616994570012430368148925374136492284164714077533282324418615149595516647742110863067737051245557194341038112458621262862638403667938933757795803395372104537969510801555103444199169148020958383753203091437730672855258626748566429469340299162326243595785215238514012301749774871287182603831055251656742312266279272743451259082654711495319070188101268123760356581923561621402360704858300009011621922218604559554440320617631384626164536825085812644693801603296217318339078697143298159592580402833487069294423806251527442703419318143513015275832005771581133589627811912902432773736999356324803787085503725178495923587456401181061501700768062613036445195422834281451843719641467681176678418675599769529482590641483399551289371986406814125385644969502919501577894243336751111997097882684288705233597761510210099897887170947551936145002285557366514239773683559092412423120579137790836284462787937884083869646161027329574146767587505295560747612941082505632713925906243756239652929840627457399151976107921876487795981208675784082444581608223402218357464307005606661010988068082226091740012901211139471952098609695497085554562924997018404690948148657249546095418959990180050180389865023148340554378923315111975852465196916009018425488835735218166918736504903652162434543098020955219661412545059553474771043744696174361533938393801718650549314923867568698898216452100609374315017164766461784888335950631523878030011368875116217342327735262200886630172067646023022206082391192918142316921313978974206855551580816935240960346082479034995130671118919555980121832021795130191614672090439470671791813090427432940656499846110893381960642201728879029664792534866128342542996414857373627033054691109678326855767105670991257765161318012534590885809546917527261136740999180252632937900420226315283280281314374287701649854402890493919815941206833680293670801547659341367095915266182961201969481534292025445504149694678406436401487874364336609541726332540256942288120457903778713691923278041548485631839564327968816003507644041885956042843766493732555119606295293403674684478082769104763119330047289107792013169625303531291465526636477740880069730616742301367618500813362528436141197818285548555865944494624765345482990607776512144274268137331147131378608684288769666934256012446332135294430619753415583530942612578406810635321401064392142055697166632677401692619979906949974815345429233101742219669103104111228223318786801193410949489636066855083845799156688333272043601561320887690088056613225017875257741731173221346875136891770977243407732399332904893135084071879980999651781771471418831949602490081050862986810548465548229767106844871144521136880634520366576081383861801553218500134841799929712200132394908997197733182619272920156685145276431080118992309730008362115527775483296149750114148035583079181770147909438921998054907553101755827671477381556531689484926062832738634084596406656756360921663823260512904116035750407397101923812870290098241265435718377603269617893823122482593466471020029714847848023425223663441919805927862071853113079840359604643147047616024691548294468303732295780968884307518753749181902960897603049329920021459512227337973390697401773669308816825352681281962075977789173015964043539680738326788803278137093861815375702622988614332170250597605696631852542667253527291094966768217559804262218110579987268768793624268845114623465907236178263274507269886271201774560692672443370400826076284703927505932125096646894080340753523240721984681341325020544001895704460891043461584484548274940577454025025577269793903167275869339576243345368784773320787811703527028412387316664700407946655607302590616489375712482687793743835871474356680619638345802527597215156854223719184457997851649432726446921321055391105062576908173288071652505696658136224152512805856781607027497057042886744601463264437983060038600742451210080184525297875839273436641926182489203005271737856993097401633270949346092973176344827064201674838346548629046528857229810159054170982218460838175701033894803867919827894603186595111038417260597320173304197650759903811451435953756813226543878097588023380929669100517084949528587086085896584618343575385747841953228290829424514461342738448909784901314821530469285727600942165479325492925372866998406421586566888204494136247455214479328412175071793047493865152009533689093629437063846434656000833256853033687949506428724453896363511059516170341405420279673998264080057753950127628604432016587453150530020438665031458603345100443210361852518452761000509867814941233224897119544198746628796231440140119109809585766604454258441626474759304070137808263764434455413821891472835039287956046507419546055116686376051831129299764699702633124899285545707611710750250211573331409304504026405831894428546767013625672268579875655682209957799436456920326546096402257451677922488316952757315694456407980031265441997360863293139976673996735934473054473464270622828899445423947951960544498806359752167235391305135107935383698298943134079310402325912551171179395097653882585098716337281019988532005692229248758983967950964565550854309677181886814433428253104966583315169825186867142345865311392835748239791548280507583800413838713843618531744819815614473077093749114100400296670605498077620485259541493319604479910523802596496209165997842548292773871872864830169840250449908594432866921045757629998861490793375856722307486240106754253611583247212017218321187809108881439844051511490830278802675852422942475253136837673309448938180570587184593871827886399974632480088698933866765909481739954403302052572956135374314909530144981744198232759532098098506907397122350398883751006141980885736161852531046692047213164042093201876802132446988307109119807972226868889932893748237856020373000309592776203674545134610408740642028704937733376508858247927297491133541899777564746544764475909912245144669025074682503365898057030922935138045865578010836842133135459976634127510996508836226574615379725074616079818037008225892013826297128238278711719127878505009085607959673226840002909065682687198030257385717957239474850773841548220243760978874812683573738253859759599542640598069472004076050995091258000737608398952016029736065132960814073769486845477595281826179813874574820176708711808179477135920092781498472427639710289077867230871996301720952039183747533957950890367382456914592733539970867637310355918768689972307611004404078772119647187698673730397952264239585622911460963805461020577929416293975719365566532053713610901145806544256595305754530995990227971123550165759732502412236353644659250326258015381993966354488334703265725267889660124173934766643486440605574271707787246182991478793053370810464440202054847426994411924883984289727743797255868929203957721521188595280045167774866946853274053128310268158640214973010877340465582529847415665739487693998339894893595648911014362305434152656429309449786364822163580342152423396216192326430466489657500451484562243633051697889061438130203693019914478879026413738015151499497497969127295635536693317871743825168085666559303562248226085692360834278524245778434719101971052734745255654847654035802471217458908603255737885526335879921502709158517051760358188999350914199147836495429162760955585486199143890193313781370839295143948349309044570640739418224559823997462682384375799857072788247373709601930005969578820206849459267176234654158084977074384449888292510374228326810892324652255047247044006140959734167064604479581648964473939356917554125727360094182080657162393478598215720314019412021846415634871009209541086651709992429848047020825898254132441732041449558408955780000122390761346930131151385141220833889765791561247283724892893889876320193206582017937112597913588117265454806404865780174157959299647862493808473248087170175127016327309286890794431991729487308199703607359857902414227096726232896999168791245062457300482935538410765614489365550687228158670621343733058252558018336159906388906798861053058699123840120592958215007185244035062730138144310508177865811364546020585269985524133208855944374957166350443692152054707707760731914489952001074858327141180169023691305976738064011659372594626425876840809998908017345340055356321492067701278069956734290701349454963644846106442519653805983222120887594031743079405606413348277257045032087453373574385774451545130756803663757657957734453967568329662197730531864202286896544943161062096531406322126346139541657986164524666529654530032728084171953015394713510748954626845582356186304242601420191845725218965508488220245177625151542044517908604041442106134662225388430135949393016966518941364318826774621598581955331911409446658605000421344729611499627870038853470997957894361421365360451334109224156113428291338486078826999776375444173452712100419456701267257073420435033889644143435850141577397284435535611903790760102198449579312506605212431751274753406656217085702785646481615351813766125063999003213063565958667806774097100192343530538181821440358989906959736992581270676571464722691879880188725940544385335293784995468537996770801884247870434132737547425337036926426768951565974193329371114526609221525612663648668604711407238869018270260787274910406303022675896699932455351413122878076052009169167267353138804761062114973520684636480618245049654597209349404814318181627778751748786431788875274573536310893900540649144554508622207984698774983639805678816449401882236280215782873669414186678082937231463687063838988496268474848000779158014752852074201641467414933151026745794733586966028926266585364036980881011020297763687509104436039153999713748959302062330627490997551392880539341892403377617266199954579140972380699323929663594182462553792988962077850035781141411125503172008311254411843025508451449155041523331217629056752313370354206222845124763281561591282714384010241251734618402003035181630564791835928436588345729994874936382242217373747527973935071995639357389974593130606421033172029603311407101426591688985991545294103916609058901985800860285430656195458038824336307692486783478140487819632575376124510617512148472606362712586245859840465567087602393340568377189762595413288298819552999447898663127468629665068245426491517810126375499912036034038884761440024694365483848922321822056659515361265489193136740706139337537092016419902568011823259384472291975315829627174615254215562277117958208971721671511575174776366760500711392243414164719539361266658441093099595416880707453214729295250621616152836161537783677042891433988350192175990912167859077750839740723045985896214984254188283893891005238507876738381204614346728470335422059038191447636243556931218152521236865491346168523844489269830692072825294960694937820852549120904996633782125193119530485627430833472566656507872709566877113301592074906017261669425763292880183086921072543933181065244392219016068980079608446483346679511148033655675065735835526695639696343278825427428830490766159594879308338587845134065085897537527550942599333295648720094460117543907662385647025698734814021386796506692088314948320819182143253416352801914651108077779169678039841227968057444201714570040811195871189405482247731806036019934177400292049277682621225562413967386083738332280870793970428050872337418084643626732407706827248463146074995892777187082118768863563006701573667253483329035166715159937492073216270623551231666947395898312112563070857463985077390331771649014246000955638473198362729399572359212112198492864055424401323920984012326090311165258020178401341781787694263300773467762155246968679419994153724345889498138356702882172651859986706074957975996609720778269385674532477460255797464636939113628768282271522659489867903299240032456189748923228248580567533790626776400227723236455586239001548067138145296047726943944337237788809584084305476455473251730901493297427923905630389865348197408953656179268190062816429438047272312945908672505683460720276101060248682795490522679131872737216798211433784384448302892206481473572130620862976391339692583190384575975555228631410892913350721924581654509968239906505548098390639051368416205798801518145761610659822174102988881455515074443158542434816001800793443238383394503843993279393122165473508642528319132279236581185937916586360468600290160018158056034344127758679266153522402389577553749562671256820148424823709531606043787267320062758509867615137228495979557663196814328557688738796787932213330114618762528557507816287527137541026211722844750613484361772518189796678492842182201594902688125645792493356022442206189499664446309970070626733658285474542717937380779999756319151651409465733993872888436212066258248268983016120076792244846069405236660782098646457020114135126934261255623220705933001900208041317033359242051142166494522184746788942348525451879130898265575926305139789882836957449275437652308454787332221626256601741289596701110772695729271383692156437437647730041167881070336408774280120476956242635225875995607681594587339964302466947646990194901226503020939288569887692063071390657137732027077374342927643017600747906253337533909037487770889188574083055478559862731198081612726473707484343380601176465400103209111485568204434563585995804892078918145982115762534540578879548964452952151481186302171389219569651826858389202282958141785172774583394223795670520663857177513059335292881169841227086844309191510043028440117761152443053506546953956944425947959056876801226934533612994634026987595523949954188584204733073743369012280175352152203914176901948970312335337004705408119278417461788913328898342669639839981590436288132378694825401172381071270396059462669764816288574881636068115381163513086742393218013391270911771566268818214283209186593033687345741083728422446597817478646626774668226979820305006715991121243262082590197672516398351922585438630497604901947192063682766099948858251362204989184628159896330945430333688796078455801842966081787692494392654109024355426568724287173402797620480883766573331018471411475391866105055836092027849238466472152533373137981892857372621093859148381063304071747733946461409688385518755906509811752965004272799878856811610502003947446509747453706916837577768621550964134221119933586596398616524927870798017019610367685311864182311611253206613745365548793781623743228763582327306866156340524824807729237709222511436380149687699079264186752201063962315355904023678711546470938220543953357584835036690261414125470179046484697482939635567544460870834318955969883053215486039957789596345193655412975894485192831812789524860107889268864496622436098545283858549924893711844077583531117754320711694511601758850889612108732586638076991889896040228395833916632444773295129327400020532967276484574217138284333539174237500679874986772391487925588922456430590941437509708582752946356950031493494872619943382315982309527728196094109092810022873956461038149444896790569906951877611484337910043395227653021884559134425331370158091400701449981658264695641427332690528954569484521290055798696870143600679419093774002258164051718868639891641811413365618288673660516044580000154915275644841084774126649731106869673116111276404913505147272377600401231612584080558950019939548982472868234188799871762921413598052706319306529489768932933007025452746616622491736058127816012537651740473556311593724650858920030232808997072791257934860703497690270995545054196688881392401668180253422151178516005524379822263939194118959214159045497085410757005692936718089364991043432659583302924602952681440901209871297951471261669932949684976835283629144440721028377152987734140432793281612688203870506469846570276153015968430146676209047664139609717869793877719154946434806947020304440639568868035247117024738009332083178587974646227776088106348282052625759317977540129944474426567016965607811582929091179365594659538371112892042942814456117575901239915806595385233629145727407925911216632142273016200629756144319685193837148609472724581718592096646799209635197777370922808922750182656907000472365183139101923706018587039050451990269782587673186413642806943746063753810731428054596947607312636680762672059841139414001394782899315223774943289041709008926125601723855993972952735622992946713030250308684325876397964482346274403763127087390506392749875337340311618759083838658164347081199637119698445615152496484758064934522210841241758688017345641317985704371162082441889895102996289888782656147135299072180178370267852767017514760420673119849623854861959018969694632472125248765557280724930670770493209662088875710130797021978048603913876450405357504200125127859110810680227176243524766728272281514618762385049914205985700205433887113649316531687815136393783599975166569262909733112679958481527501926883385386372027402388723470058418450283544696036194880241611498867492778999320799000950443430391335799970128431035681517400310687193456472326480211989885310776907038155330614849443427442642027421312726509267753665290162270826154885860906168040669924108184461119367266853394612096514542652867886413016089420636050424762489571349922680379545009561130383183858518774892114798829718433795015748980386420835893764139734742349518723098610952776701682800393800366360190115252166560591300147165323447078080917541702912553726701114969281446779094679634280154558678608038568288708709762685637136434422552652803185733919182553606237309311343531394336277393467005407825725478073829399904401798512850659179871064624531747913236905239390049516995013516712538460085657522913470319040254921415421538907193932994371677430548013420507722942582697752682083064242868151715821377131401486592629657043417871465804275331419963218673273082503292377050723108252303047627036012683706313861240246826076314783525747503066278398870449834545888355250901734466222610639120412300210792075023530280486288552390510354269593983306932021645608863429673643257534537068628627461194078664128291983903683530667090452395565485656022179201020964394069203525455222103016646376519375605672887613156804685581858369560561096125506922992497204348696840371498805607478080852934919928118362410481793705775026529173861819093242004303432430147046015778953325989978843935363654625823769357794101291893358988006628265346408985541978523841665866748480087964508163699663779897861677235752567210572916564872618268923881280861330723172823726152588176939464168023278437900624371658107016510599988956697897550782544578837891035333156392610696366765942144592044191748645955816235501895289189654684350512448136753938111172352128250495121050999131495061530746712120495240372052571880649731735128922376600358899873735518444001456343801394667694754516964706209222764618005305944926145723074981131047186569938243852715908026284843358295787825804444600210260858920853798831985159652214266248138922179501686390463243175334946869082472412728451201092604374887259631686435178933866495167459828851043321544385262043606279560603461924975192244820750977462368203611458124268103266821467392124233244624802634177355693980826180609961500367565474381360319803325973036663383593561577066672654842180922096728653374580953487867412592777528814388408193006097010380719261986439971340419082570665360477182397193801239720567717488484978647439443777058694570157894546685089023174817777403909444563959608228352981826029240491423735939607857251321325629849338754876948939730608646252870440449173928582380199430974012700724337543479640606567416016673075664459882606333884205409957794295144272433736375256591676793158697158476872001169672125762994987781349305471221894591425963491905032191372192414662625506327386043874554985077280784203836255699459643097944817301392122473434336416341741796834701521510129090704882382701639404339237606290678150669089082848109034577831324890843776881759906116530839222634419926293054291045249407358500180241645116454259293825534193321133501277472017328841492476136662338476085230416785559636336222468966918067024897111668337668554920602351759446850538698039372578579887574110922846751533338824100577207166295693538361214786619874367117528747804751947820058179031076594662682085320952020015071630014989506734940167764517794007912220683217832900946547940022930784249562184459655492939879433628942385260604806551464813207535539178747611322509981841140253429637657023916480656150154020737429222099005942832433122706092750794755628319777764935220009286108034463111352378675470254410499757251409962785328684492388166648312307072551844196962856473816416634094912556874115357837229820956379284536056447445226680187267388126617047763143124974211650895858108836306532234134254198665263282318669586153726171943647995800593592001228865466374427432097880409463013306205574664494527907722889563125648770760295779753090975055552801675684952474942659564039014678869198285502933454389045997359726988589718278625748867941672948979356932714518467448125460525639318163868941022895819576817843775437485993724500952731105929485010551575496603191769965455533201008393164884264331261874197761466536029495868316301017066837090068233272348510604543249053107977157393114000811652792885915265733799912482287507697338657792330132402813497358219627187482401081933154818026774397555393689507484455376243120686525495186068755217561301260686096939281108912508809359373242421925864796439766890707912946158992128336008621076986440534953024998005126298960026289690877304549172228895660799173781443472239626595355457250093354968296269989498766030664773926694246814686237863618559499071904043867068063071468881778485558466964029646697143628949366558349602646140539827170100108034922821808412098254271308335439591539763385079760245184176627654073260871156572861239788848221047092727193628487794537094786673767478024530167921545464074348613744559727108135363398528473784318021316023367618233681283076817887383388400815271830535378593945708013060845311069758427121455863990569743929545269768880497672031475136299907020511450639680077512411803178907552682577917133203346878598587605998600641170270707971987637922252200917130348516066720048684661702554939758897982286868633292902863731296607497466678769899652042055264223005468481353571031193339854091092863798164082564623586741261918537775695746307987893149606898849304058700232445361182533536606615257419920674114383250012724120754685957356854875808634237206058962385138498080274999035042099487257558717039759267249996390417090440275196148758142623695151339761582612951770684251650663905664377579034628148797578018154482540880513886042694012747405658519977987736220291001683655018648617586083144916037711651681092910079186925102472461360455124377095123024293184722417870453208213528801350844507829608807919545618185250600131446033923966411165069451490479207640506749139814213057391778076361504858370223742085064401901345307212819140710057961046469302306954840110866083524168312983170967837342714936140369630349899085421019316351616289275036041181261471582482634984202522932117581357704980575800933164041159194993454349325357026018364808374153150266073514898847026935923573337713875724652241048552317569121689991567181518714347926283728235548850713341716012769165396004317112129923726430289611607787845310166282834452960813378840865788359111972848162291538559494768385395841641198578174316032372106497676614482498411669394186586457765943564145599970967798425397372951205584577680937712107120830532174173668744079475090439208232695445277986255135586413511790147288388567286698213020301446410661163679058422551187997243283517576126046030689100670599263300333550456531877643997711891462984039225279287866498920514823127449060495111788741965858986545816554333629349907550995528342436688540795964729453048439303110404103662680855576367843108261695318580277876584569796374575339001819967949552480636437973337698956648616845706667156837032170010759113987007476489949532976294580239477220712581678301733177439808560963379894220724877833875017175697550574359746434271434138388483989031945593823200189119142015929448708032494565264193966113801576503401920791918895885130758875580951537069299629818725811381718208131672526912064748454605732902245074812457232063723384039679192068470482511961314981563785133852626742768288763088069336332772668535925397957168690894182189190444066689661412656990845639166353818756929475757480322080508937401350228980220396165356011953644799629977381204931358304384910384486009184330990189215943695709871063385208836344579205507507818247878160896294023409760915545631418788589245789655467849004951420056878158309956466072213024450825951054567654664094064164936678724029793791504212320739920574005283490526792921403161038152475020396291619877134755686069453486821516509276751134028440410373182750243314163264572607928994614512421991349803364551634969633071558238579927500590336033674314212279573098667283243749393941901957453329646231966826451904031794903708564858958415848756402059185703910161543678385188139048483325538721516851100152899466049828921818188191086230080680252654579311533869120283858454611575741817627403741713764966550512847968230140224384319232354476661564803242555102050472902672616453757799839117129180961106633666893885918353554529059608312868165923410165787952080988133505394328974770549380890118129276828945875833653649898792499589664295027808286013654578932870080845436634403911932090087215655816922915880686276823412263778119199136615282933452892681108927161394012872746083454584165173192146582053131804133797032628521336845863298871440226975970120736842002410208152885842410133399626187196843281428647033783599917427372212103448757855602027430834867744741998574751648785927193355266917920142446596148690093801356365961827172578101915321761880728807905449945721855032071200939522112440019000412607669283497792501301382287464756829874460503284212930789780761522980493704830077712432417432625561572334674637780330182166407715000700323382417835903997299010784693384681188776567616237995671534972434716055510895171023940952813394863077777501740148412130417403268674672177111409209624293677002661872114943205488218292412969224859756397434931715048360020872199215913082871522662339198354727914903114722153749297278935732474394735181615746795788147585203729291287426173606405189876420861039508030047663516720227061861860792185570119186715331726840380989940654288670458164180096883830563507022104163216878915919577380799573195597270639256120518013401456940061285952362878816754666273529274491039228677363142848103396939300934030180969070699085165020534019053902850151943402882465741003041598229366422312625935520370648845422494260870441031268040247243288363065998176907252227848252184773584751190742005451581474747679610195480039070802834774643259493776233720164361562433851863021839339078885387100292122966034848791583088152381783966843343623827548702643782263111909541390552189034917108726123274946735570220631924110515880209530237428810665156667808020131883781849035838405665011852282403635664429789137945010787243791184360179431063115555539802004145928395944900705456268683199073303601759528931333447538415544766473545108241175563125623958013598728159188542602974383328848446402563400330437216293491992397693436591696349870755302476184853146614522747337723984868167561681143350504830131701959766118213910686373612094626660875655839425148157610576593010276848137506029688262073783615657704317415073340136173910011637246167383946890145683617036752608836434218450453099019722622145540132495564550699105710143278415563284901262052837906148599183294921743370426005203677611856188592687123077075215281402483084369744784447168506443316983007864588103511113005289664729065874173194269289434998234421333809118071973530454860190029662623891205850294038081200841034938643239039459137640946176246714873898519823922865040711879230029715456784448196356555516008261700413107450511567912627291580458707714079251440767406747517055382242163975542381797780030646262649672996469245080942967762501563261788132320861095267789659588165617735384438991571726457786388296987608177778837600367898583933376651654800524548085756318760717713607517727177406337669782246406415253721415638317913310733305884253434307358540208242369011071205610958740262202229974389239714729464684592755696462557215927925764526332383651051702707434794990213976869962730259787956725147220831208500543512647943655550145467671613425551764272561862281465432875305875796231656727638606885686014773303833585688254488077238046184059851533315267991072803592879674965852104626015960051155572032984558557569032900803269354935755150835022647505852503138798556054575176710942233086229469664340590034352233867556446303646834654468767481970992046109086062775790648839869038334682963172584859847020941248118670264711998952058620895545422132272700535027358931983653867274100972417107901058634595380729393831142664982146611568260738785628184741883142796231882964537072166577867451455534540268690404927723326534206400467977061079245813023118850236580857794908796962403383595184853157993130500351421181692272180444179287731304429996807368152158785825678809814150252095318914135894175095556454265365514236983356177758498552913196036195138428235800205213604409748708573678783016284698469479069640467780333958366682937409790019452218968221102244728415424526354591271362936464425630741331685721230524027474341185308753059307234468774577061202895142757691362231553098965372273378749206543056162339388082046579261095303864329059271890032972988538083568609244578440538744792379280571627016680949249924139590192492503352596370797046795828003039949247992954091516187610162641033356411902232664853176801796282442607290609653665379381609285946467388488850247009352232686585116980045430284257257675959751080190460186601213240784522476170665180508363152157863309422510063828446397992235326333155520114053715286171080748406904150755628362224883702051183681338344953202219455934754765834343976414332251044278853764931007574403004007524316855463631069845636495915707383945879231076886550228698877642308045589885677682407467161805827576685106920582780177066617674059474254370140407676568448778348322717090853682412607552082905193194554997107540627336065076851081347643478553188348280501360608151813834443097009007841972972178523351683433829603898877108465617845709297376814264784323187396368426790144793922563725184373931040299477510258299597028265966194065021229101022393545442679169565487773723936395961551366355410241672579182859056879155517118682362387682867746171553350000894808129618892565984567703444281516048418656025078899436769386079634304533373631275654791823867760995162953485414980999600498360819470009635277598268075465591997807627605071212182852860533291731582429459484039294697721673080428681093019123930510128471643788550765709769135364152289576191353284760245760809562925635738401209765845652410716588597890844872961482778094444541917119042077965173716011518153351132665316630167948121688729685199396642449345675316708671243377808482450127288889340386232441585860516869215575640311247968979591638601252857016994952366416501690175499480542587593728739745404003531362666746872135952412504431595244467461299129553695669688800735129277203623447036450922784341167209212959795735453351969821648647248879467571631977808560885182962578031090520363751804082449301237969319006414448370934022154367332080164236076756420041589573970431659695628467157954931702684577345456187351410537533195064719409213887540868994825086834154837684907753124072343339116868351729770781350720094588800574601274421406502324136658881957643883088001516721976729413633236731042782495890188789145897774629956556750527362538358022523514188832874576926634817041104593960462757272534521618766346041214722749224009739305416827026881897009688368894013829102767035768208550787868194448794242907264702787332907791640699383629320114341257556249283050567915409188713327572574192534648282549790258188530896767809718043770695697714951732793240220847634393053655664153127931679177609660169327351568522582757641829797855791711985260960689780666707724566405359995408973043147006546826870570310523557186000173793107791154532810544032888604960605203394014269055418379403095985830394839634094884482803012902113508269370111648830733873713507145187957099709300850506850485023448707209778036625450954325015572128476354469557104220262121666588588253772884841568498148641958502666061290072017421381063654102095395408030763176157913332674492207662116731008810858128092878190607078950506209864196555077766937000286466644147870985727405857836089688261565835694547613891476556817960984601884447328179507075375491862816196323995756506350253175575212165104611063851354373933400239713727913088790691957066026357040498156426748285057829684749322596825401917519640878710532337612852057478006511797497942557252520021675119466772100429119048141273475193501206751431274883119730803531300408430186977337527689145713662263745995472436369665157124398782105243678904911917114150114845614825192063644268199605676515799234470944566430201973593148081038517492846681665994913282668193560026477055893822243427269870661838790893014226629469389887891220765846712020437321666540415552038096256553161076875531275771683215837934061758090951041210742319638194307030804760073279777377313398443027189420792123450034303994620491553502514638325232559484320273098403673433027353807482110604767611116897310088993420033599842898888202278152372234216472642409515354106648431123280726666250115389208286027867395233970896269056572004322905094794360023676705795484629791678004524301772686804283615145443354020374068507282647296538987577000190713153014569211256749004470043109259790385802781174214695515038466659768656462851056822212508828813937732294590109292905050975151364237795428606115460375491930916568377840509202178850578560575844170035983671627709730369068318175636637098004673955838892899264369889631538801591679550861810600719953644680937590175063077888912735338496128046925900121652015254058742360043195328832984226311244087500458393864044991390902058034691580940384370220727851493953751064706693546742766654472696778115308785823351504903584951945237586076525727957141168858249524281737374188478385468270419584730713587649364325267775875905364064904740268814787135753633945771078833109924018165596160749840558131580172232038178915489540344204537699025501466817007928342653109421641210042117872206173775317624677477967315223333752930427280143435397354459646249298679768574549877183154884875262499746331655501279340773311666871165647910067773505174447313423599999653856076166299330592536577006297017140610414827450794547121134311343528279187295987101145936362046614125178090464157283531386896353734191094586550739658926512732642655878430457771161580727492299906820963942866315745312454649046598174578424097686121947010895323751610293554730336927228508736199215761727124340298012537173571907012356268254156691785249774250126294792361507622108198486817289139830013191050384693512440816448553058859474133694390751608404740517899875650298526123741613388649845341150672121880100888483142301666408161262215806386777150139106807246223654875877098484831791764831128883488765955904510784653948646768187655649710787694291540041255191550589901551795967022778793119763195692405131239901686711143898920679351969286805389367243950361032730140645422831302742772124384750747787826547784999113374218964433026036291189102289828349483930883861031310541360843271970114893697305328521529725416824746756716363779200493412748014512468747362178903699465235550349362875729264002514695505053118060750435159878855664113765604545048811624812422682767570982695365424794750084323571403300941155680505215614687902795396553110982539591263837086135698483137741269986472290692935458081808877438894570977982291381088059422400247070482455248788606649707743816587100909823346132455452663207899542958487281605026240705754744471156233929772577159366698196941545150847057038696792549900596898714492805135987594267283887525418843427106785276074534887382147105173561536372655958995343129733442420030380297720860779682933084930447477799860059719088375167574471051647042044594138700892276906668108288387283167977403480858471826850554215426942166679906282254902332625007290804870400197200402478631544331721013638151456579596469873884599907893224838678072456330824987196858726106224019303564048708440675965842656175928204300550656384613964806441678847627946017007380346071948602141827061302613515433846074501627555288992665165746613765842794145700749056561792212650801783871067375863302615701484361938676249417416131156448196504032783611516399493885920089687723286324360491546119979503455713253362476706409442979312446967506889781540239022412163613333558471909597343160484950578010974924281103940949243216147752884479304683231069134066536728521417826533288380392714205974828493124019427441137704336439805101031716861906873442267629081694611227448871548295550571728589280026012796170555378223719339102575109330913126884021591431687994931223082526534670039790078755294913182928502173873401018997213094803601387271295174160551892933897569996589471801316538286527856804351736454573832723887027155364792573535687213949668731886759274633982825303809924632071167667859565071795620723324940854617189457476084872288517481360102029905378306112671052399836699602379022369926442977995088276051474817018869061220724861400917159502440517422163313630468229066981213828347187908857252307947423316848637255015926550165959061320837674115202834413200155467057792703671116136397112172140934245338389772276840515699715790626944965783582476517388465444060635379790316590690662528113750765394405406894872492427058942374369877461220705872364710427183880680419929033836355270342182646429533885893317591998429985796373719235178485133169410698441649851134689300494541794999690768189399127903584804705769734946158400066958443797980255091885712917015416436788340744629752609553541170771222294935949116433705937773561669172938956665296956913581058616378002992382428975541117388740535291088484315756979471801907581087722957715521697689724931503464996514886816740572168386071202364022573338420347993407281564577459446374636814958073810211395986837579293899361034046709471198459450756819587320405580761693348899441050600758354810713380332594531263259228780912284763131163297613718540032871533822077019948620894218226300899615201238361065587449717815530092236721687538315817829824981652497046464597211355344723759343883189131752656142215763522652413129673224731596401494199247688630206549613014712122835294694708073706478569448408492187389274815546493831485981633584736750892380773374011607980185082799947576281460980614073489027331471949953147808863673493334177494007868856086798525255294362791493109561848726078181690722897121087389666064717036767482402401666674791196711004963417985232304098826498776578605155669394882442111671043075874434941990681967839004251985912813384505460473902631872462852087637264722556217320257539585533139824775629697001367133486298100885226540374820230206797461004792818628135700558245180052308896955618739447050079469309604802258782203654450781421539362594518632732493793258985984555711689882142304057224556511360256060175195366641717615732317518830086423878411589374848932016466508958627665848543169956706506972954216757822738651170373135238977054514046442281651727692977406049085077836519488789000370237336417844296654910782903668819151800937731722214813388208149680252067251943661531924107371585895063964747336718804518876875945302289410709760887148174175747661493096749196550551659149027537511964323303030256716105104679598904255979874085761710873359435574238335873941332022535585625686748786231689305497771742155999221667828368922020607302429720877005931555307415550807311179640688805844903365455389241803645735267300401133198143868817054547011556421996467169027373074602720699807648081501332853311135705818882127264650555464001477390537345698852225507326379718490446711691917927565035563456783909539519912276360145724450894086540002083550102983983923482068320210489857772124947640902712052152015428137657082994920040511386919644234845885142758483885305116707701766639261837752701204814959958338386098373435783053347628486067062962930177516899838933779771022177570520638259486452021846130251270938741673644121899605099526879324988598580868590821749438391466537239197998427677106763394237938259775756804863029495259557751027474995270736731929642265596969510387426435560573483581441691991440162102812910370252263394498009523509755025921825885705511778720998436783761594031227569185152433250997805914078115629231712386461709506286340548441097089382733437819826816978254934922027453947300781075408884104107857756954696173537589636932977671437084289004524116374688997552771750327041537099639582923658144095547692440014569982079521643474207220206643033595349135530555463833930962131721149715051411646292465596312734656263309768959885306209274687865680959397068704312954476940508114755365722481799692645582019837576607694442462920155271521535934190586567429985022194400517546870227697253689463023990403973108411406224980429511969527886017547067143460614632911234854996509827283587013360319854309922845249711724769301471579266663068114963392898668562704920222248497243212307375687306886959947200391132345978713182857423015149469431105184615112755322617283437821114506602228067357063876848477356838124993827366997169488670376817794290912156626801950382370947239664632805492503812108151053537738855047788524316172240816221717547268679283303857773299549849163555913470066960237441935376020053374217695857002381501619051921516206279106362990950247899929570430280246510320848891557186576735640544536409807423046578199113908973253382342514668388215606723917730533502983300098695401266712020666924461350223575056317781082686058605507341080903298821262414657904922793644233093916205876493343862425249376094997783086860151437438027910436640284605677586096714643515668053270039644274886089093490398661659357831278771851243901576226967698026555023317215336894787043898564638148056461682326038105052464696241220771496577650733362558055277709025574341523193905554675099988223299684544143358529779123584498317273019876922304086488274020019997841323962314269851553177382027864724425878455641713017104647009381710142234466895456750202284507070682899161100543913389367802511205523435047648942471010425566251508011596654103564855188834726902628171587399250118084809681706906864045154767449513306430456111692893939820957755886448792660243334907539982756869366394453135892677339408624089398637768318549665343743182248433752473716148124762039155382856326075483635415335598309340368199719586161563222251437810591867217163698306549320667356518395389562129524733877768353027907704400737859167814827818208215444098149122810997795424070047113964323828333780302342351956182695904520995167552883866685321210524008013567445436033467090638840649453954221986667629069302906375286446292305643512385505983106775791902889324266461831304428534575916589290794146621020882900422112850287206464330621140074904942950465849288024324156180126756973449556259151103996028383030732454562606464453822549200538239795777752326548961668389131285585518060938962576082598951483967396533920233488415559809821708528120953782636155259748332398220872800944897895895947513071510738072693829810432361483366193858739978571985550936163697292075167263991369725130921400264391895880733627370887411488835728426825784724791772417505236005079696300363920234903471384759682131070224821951983800933874873707820905213930923632119053821647077259831847861229733614470156675356388745061344086949077771672370482078925609652831662861191267055865515999643159346164878585563353261431023512365583017487228670320727700384609766398344152346492987483169664311740715751478853383258190714027119193607303576171683040735924192787965682866928226196451975942463415453159798854749094975360311730489392853713624555756493924007082458100009404655149134220991242487149696284906464714202677847468792607508511388593299921448496165820714134618668071911018857811328971059518238954832427651208861182611202026687777012941625040826211780049857836952354653344618383713861524893348637896066880461103841005495331365300075993443026839847337481172260747494177313548644874735409380150523956022093539986637278299690208034541791413796501240167738413159719445506296263672107324243982940739401364924050612949325309347545983956260094934721263029747452067397189965686869685384139355535173237070166899651038398745964321361441284111374173143936371907562487187884220055289758877630934216754143139436305093532213302775862312456046334264458616172975964144109551481439892643235834695491611968078021857567398213728227673509425061657162679319935709617590528124724575077229349151512035857825842930675918107957526605288988351715760440117577379616628555880252249982107779785759146216120739345586978527575889481291598403244687860615455926962328839887915942797164458917738388051785620755931353875445212273430749759357068727193820461417069364298521888878413027524195572675903567195994172955033349872394139077134859868443078125475846123141635811683005516217715782233883346782475606654359606948780219526183898468890293106230819813315323310347622848771231485902951506517146804800448869949595995348072269793164083530558723203764072094745152570013865321123567525277447821073935797348755190090162137820086083233824751359871670468670837100343518666918647941290313912410722797492709447396770699565048646792182618354303604011185629835138531831917798404849397657761908167577100910126006558167466706837052090575081894989965698485984098318956262000058296016761965192081173734507065887944934511328791078592574906262821303556537282275385779308556895375323461729744369522625157779600097739468956819991134880918042893806278701420958635045146440672639198182614626683123877141851341296142266439861726523768152357820306186592902751989029805724436576149985179122518041268429434521582167198079836786856252961160015199477360990346398085368516979627416015112246784484899365440897586804816827542744750384787523402811998791059423778710682947825886702537188159069294323381662390313874469778784257222397021321425248004242477114782034354214108467008178247046342923301505306022934404553041186913960445055217951881883445420354639839836304790531840414664027393143097326940472316291622243436524511768925917264873997716995863885029866379504290564675316826812299425861552505549678385425887047789994905635571205445363650750346916750567975281739333673876478519857227347868650569954432173509293329498251716122326980566453334033876320860121872571770996973547317163744152939204663759183836096801820774597674337380959713876478915442484021020414383392565821574910513196871201957041595975808116885496163987014117635975053372298717764116922170753226866802978801383755361604544561444170463248971276781669306045627120789447555190510749921720841931951088732502853109006998764368001334965573883249050694272166888361579450412389197781778897158122638802977145331979012600392608475942725847794090306925886157038699785988869781030669752355887470898572387726008439907555119127234133226159007129240450635211167614932739807872695795500337702701748084052492968530850148326328553187454142500565534554333510414994882835594365078258639771871497623340983387257061688093903513135002870530505474983008794782784869860564760449404564895909061064431296231685950617111595827868678081012977436908265870080398304615710609770441476103797533270948996313788864339236529250357771621340269276255913675151245863528862535785512285237845584279922009922715569205849075212232795987854911398533305616704901476590333517054729816681809145200184713578022101677211131843662228100832185373831500601870026683664176752791627917183501247416933984001038302571674781573351856814601494871632507765312160909947174808210046296135360569280817961565510536401349990471964362070478317953237963959919029391648417561963875317243552342353871907469437386154077072394524459028955985643920240328872691952705073653374366155418842781401560084658482420906574784243066626287713984454491651548666116407920411461554656282288013307597163402134811392022925645533503876047016672321101844439632890494016820491338991035793693442381006101925802054812275539757080333265919837154823022062906349095304416749580375989590123621750524457824928913569911555120596682103674694893419125561488658400271661330170097838595382168957797584581343664019855282275624296739963338349553533753594798492928878507992234774911695794035989687528000112437360180982442244341648309396016742803880706034822396679675506260207071901770835450479846857338407234317801150366784206743107971397129202103774625117989274169222609991940059939729076653073046928740134016640351587904031820391247660246374454834310070775621933056579976979221429556089536799426365300923677403644358594123653408570791264182884632693717990562208086923768973035924756643654520093685660117364851412576958210362443865647608535112810476995423913100289473019605558283368980419332574996658945186372023133352828616847842871778506447565614403205791556877970931454357606525579923057845141619467501066885041665003485512381312804962842709031670721919289193516926622039430175324790649388389066378858817291090159067716392846568665132634014492926750167432654452469095546120754196643906290483396925815570325741669180949191936587975478810155816476859143323162466673504337345669319975657503868133674182840816186541016612400373932442100431459545664407005425217698857664733838257373687839519833238066379815851535051008784788538056785835233009090825760950841270467257005372396961300277580201601369663131466643167575767954118555215636925493728497483482873678332546089256743499920153287748996869155929684680322011240720957547812831260479643795902851915642665499123940137921290937339816676434917554811416995429245134014756045089942546768375114320540937788706389753804895392546635653934319782536402072619073806165520562194875236732172687530220056313067054159191847746290360761868517271082308458193301806138019505862499056449139005131712196011746636649424852910484813720894460415496666637955080566701446322636141914078501884236921895108312319848847081030395130737459750968442361212159401619200340814746855577590694698347757599360707196593099267477542847542457432947331928763515763033524988703599929609407439522345324127006568393445024994587185526532382572951444988499718244209432629279835607004320297411456489674507098159589327124142687398466614116335349026531023492071444037438588067520325700573191289967661438963413163884200297187397580680273045563103408152379413830712112624738277211495060835815226569984746275676429462730269846249404388506527530905250365250588264214388554854530456824077100962405917270527917716483102453814498543660551654812773380131076988093956464781748145263566876461421967806712599755791825449257361473846465919444919649904608657059888620771601003656422169333722985025736197652247954582412543689226329031366190679496834156035134445862086770813408556053679684876708062843558643281687636869739369426435327900646543080499871451886486694739406457840489066099205483189652188324817702547536964045129681428373962665230096116615169459944320011013044907631793734445691207563614925714874113388793484150445163438970441685339326195694618278908285249819947511829839718041511543993382739546114939088998258895802135084065771915000335311151463208121751750730713354008376591162202723274408826824133238581302595828776567840935482030727443504874189119186337488860949511220641080277765936559111669444135432057484195639899460957968372768710345830448326466470143163011162667381042866435281788454220675571799335866233138659266472688290798771884745684105844699732584398212883681607605652506942160018930826213800467622855798231854245770868591914887172514133644000890687475393951374109438617655446656051155773881238005846760657386665255451226283354322523426792007686465672158975731004292911762934993752246412139361341877413370747937434211110652296304564522893696425232162200275198830135574641463481940288861734446953244638016081071319194782758548054628483842141932356478777136481947377120437302556907653365027980761365498947646327752365185287219981671384059931372955937274558829652000292157655061717028825230225812341601613534159507367994486148619088431715425102122506804015932501455329191875913875566324481724839306384912283252721810851568757181808307014814154298484191379792074341696602288485096925633857050486601793421508562101430966311749619361553299521156825719952026909906495401113724633762925093957428813496031747887338345256514662712778542322377972130484530475800093042086593990658477327413914832841602920618244772796029475977722439497156311858373626126465722042944129639826782718506990570699949703075323862202118578428260879520768551330055649745562214063427296512057688925733201937957017035753748761037577355329230625678982536222856471560955550102922303568670503248555685342881759996828130878927392033394066573701760578393986016686601008643930699301932831094386063975439934198892029000248190356795346025957262007066728600157888458689572470042058381761850443950536150486458030366251900009145524427044076040819006575416280226186680034723675581416198576496701588640387253048961393024195367718598774260490048505087657878873483050579812209329389958294106626884065383066836440816297438232743007828914046706562695582308237239495618645950472181764412498797763117206297452879995136142749839789525565704439960289841543588352761872057738905527744602637592474582753507750959736929428715378633717887595268487939290692062271233654291163096580580977610818312109824510467947177575937400960310557264482139869181972714078793230866244086152848233075071179498882164435443963918871420583079837546961811004081157761087360259386660951321695608786006476429120493470212284587122350960361215230654267717843978793189902638811149684577959580908958013820221475135483571106401254910129433889783442751852897270231109104355678176125958126823155284187851339558445970235276526795341119074501017564283589310066212550476357033769317968967041664872874249663234423440592404581133075455969174290780614505746855783309797243873567771197606894732359501675449014672031285437050037699716445525202865637745432996523638370183115579190333656646335336353222981747511612212446994123725173504813152617597232664863954155624651902765990018735491166408545449995437207159895842262879378622520157013297093852205129990284478273788378225775379604208855717800868223636052114172543780665938872907510236017331344414844466449954595857581518260199529063082681873489776080841672560850134966885360909730424084916208317347851420193517556153282746687622064090634328120889596531711198239747479076105183171914262613712299529068035280862006610688178078503560690741890044777570729604374188461146399053007539608918221480766568760634480670067481957377066692839927546006165627615009177076544348699537346187515347014903913214238937443729868003888680721163490251413619803369524343405747045894353087968652263028277903871238649260185494666965550980828792942982052739041719063925728359345566188644320099874836831615235154957837624036085424124391680991816002008557023688024861723305302446752342216944778604971640821499682144791583153277797885177765112529420921792681508983821840850015495742593799668580052611788663125186002922567136263730567480481272094223515582877427796549715712333005226325352447229358059288390778406690931380103429371793444045747207871151397755878765119259243201101613320058799473752199957036780922379088505705833359929692896129972984824070645485120476684747599357415708139089876914858204601598861185378949638113231971869935053744002971932150541569324676860730797439609863844882095540195166256340041953413468615762238214187483655143092897602697979978344581557253258778960011995949697091301423628459948037363317283123780505123217089983171066866048509880539725147136181602194911381284163189107355133082941485138346451676403499159801361921280268226855393846649548285090251133591378582032587965021874271292299071261379083242197780244109046219576433009878728354103806813522746561539759670692018531539521962534359162095044873646308666111671557341810041254106717900863002667406875159743638557229213708338175249507915845247755943280325077630918314949608206375823193779687031470824521803128645815280715676846895273060847770841212611627713939168658529326904833182516671088486278728543087371511322337700658761491561268633872430013748558210889777660633961836233428240583317414858004246787561037323630195438424411842758850559392403588800997656640618311650625004520881672343606315018630795313916576504502017382213792409405731668897992226967107664250876787470954050853816515314432501851210844142231934757982435940223137844321988729835880762800286427052062083719175252359270409811741396436605876327133764391922312668486380442671532138782919451047027255330074475521153403373471128438700434812110992989600829342637210091898602236259651009416995302853044838198230126411536667578358804988077611034792995474290194571851392788270057823694603494081381480801245875634488008981054006591208003783382378857683299487009653953041651335272174505901702609339466899414168132013982031089031632565113314126616541660566779637028669478891568235180160744243405877179515291838487267889400659064733486839708383388080985511364731429638394606292291345227945579357374588536412104523272315055166677026280050856370274323830003020255517091219006901806952167541128606664488673864672194561111380397966297020399227064216742949268614042384490011965661638123693120737146572465057115323520432512869754477954039300525398363520712754666101026908391374565977919891600077886563902244086106990706904736986509913960594403190522642784486029705489764063110277518759451915080777700298530942427434605057266245807322475804467655615799566078744273396807671333979679348430125997682780253342012288350729291936028856747980786784391560671336449122914760574815752695714168129418140345737473160443263697780154053807172219281451167551286588132638445300625061937981306559170200530249813760528799756648565054772202887088462187448923513705821602168397253773325511354629139877429038777999502508229919571258709007038321182493546106705373860979094276951807947648235942766036524345538484058832706080353701095375072929444427385139285350819608093442474677329798528463306590871396328428678917190484474926766821898427032281780842625402527857043800993187438320875681336353097969406998752972545010968093835175265215884582788940978150985914815948929453187613525936234230342151029531789464017508761492496602468890775022669812835544859697343250020360022148206329743262455955001149774840816010210337584330960946960690147008771140645367326842536478549115777232727788002852933931034137283646352855406072787385881508425918166684635957947532053916500915490774785895813013243776656087838446931256902887812134365787315687533531673110739643923153108474662721164390428061831290627952756332517773861125048232717029027013316806010099030157599359121875951686354500948047035963411601372117396259674518084927457490524821150369192350881216019891280156745113575906404721085649451042402914617486830889892915653173712482772406138619499945514968782138065170062283161918029676897624968345088475967937543417035746105222497518902402966813105106672144525803896031307619833514617426738810952306337442958948623566525626747704066299789840312603566279485128579812653556048825799133419198916622617907723243555296452004850145389602836823641884434472118509567002949208125118314305169336866619149429831503223376239559208222398132207114110998923836301684337720930808679556513779891297549847057943287749471593964469961316781826750436778492162804185916174807310317619600617168246306950090497784844910607870839953593081347163977567450152638278314504278197825114634041655598061176368551169490639860627673995821946223420244127211079848466611200491619331293087203652471380550162363807925585237838320705913403739465023279928449180943250129329278656993842472492347995871990791842075979571989728292248743050547670300519904488255820763038465135650941178720933444976617542589403104388859201134460299027865748314728738043984517468802433439912128504574340948520047529084067525169712796432889296496775709867012118491147246712961157056743433631376097350301523994353217594216047759442155616159182738025838748390623723463716660274280313266409880198405728870863345743459640619685965986090682398447397065784047625396019643838609980002756930629269432641880129659461367199203951921208060405780071792231324920489669298317289984393508495072488520236818526443168762595992795137926719029720025850820757127590012918797790489432959379282660282184643965381505542256007826111537477725991800365235501958547403597063318567489040800144468383749871295082995614154555485323796597261528017461446934403296499709367279987383122824911750279001562165187851414359268296157452395622803055067258238198324718503847272799492124268540700574489609511856566455951063523702143884004076315067852238077286799583490152140761743453513533697783453024228139204308861270407854005712966128272959172687041521146802723438883420362181682797413872392624490020960292601985338333632345105092148578031826542826643323865316387844817070345647590679959138347024889732563246044660825075118137546507226497232361036408963744759721325824243449872937867487401108916784585216076013530555330907812857119278381118703583155146971558205793923789010477842364913735289216909278880668896359201466587595328943782942701197334846178969042397998621069936690496833576360651267929278917843535161108651114578716296877555492889376102375847866008994656779682225367497625439083705328474586561207115198145809886572271652644021895408470773236696732520937130635043173636670152188079174549700264866154756505507339746918338527457267423254229136495951333688997601542651030725361133886053732376851713120606871796973832806985443436567780026982721607641501437419402966656860707907762510760014226668637560943427934532226029779040454194425916716424563244135102709204923144382233242690736991442199803581878465709892809706795013880851624957375110064109723327350790345300786485990397137486141507127588135316419447423622880718655742094062745859643885439064907757303851252461803662265818514283462628173057725513590122707871535016805648272601777684548303103530449251307852750925273715694960232790994593560521410636369409368345173722811023727046271626511405570264465936527566296065680683526983857331013419959730661363677884421364036672935495896044407926287945807015717699439745179209225893075594404998481928268344835825919342684334527392002131126057491801773507073227097373184664584295780348633768740511037068513586115556921866636036583071506902942616011304191073351462076121430365414701267802924302639482114058337184235291424457459663051380611188210474359276814971463412146044215176237658661373819805660307556636995845983234213112872288816274511224636826721534177167795563866448335036732412932928290711739162497202234636184303637469032019962795461374012755280189929823580955186421662056832368925515153791592165019631689396948149789821871734865300925406822854070622287922056334859282962630915392889457446361323792273301238554626833783691457870549498230497675338548220352329185740058016245255260187745266749810437635762059900511838494800529800476651717394817157168561010383126524534167918401915818858087256658086256659005348209695797526646495885711253733077491738064599833800109815971291038733687015296799299205917825254800272420586483648922652102682874427365314588365448662300937755451139354388994325902855825591006644884624574588141414233438420862255336739309957173457616871685340309263916513587721156125780260056376030742340423092495379569551228759986509136875299361826879651115556142694262058892081481628250808835012776037327045180353251948819261832508068201615388042769757706255937179811857690933006866550123645786073408953691933682310126137210554755457308332316735931810125097978074034831372082617573223370543094183972719102342432843662138190875113225638975924412686968788012177265013265019730920919770758087930598275047139198838080336414912038654234819195283811034737100969628619439374053815503362312374822111201295659145407868594750269022695831435943280818917643446536865097819247310723353950233115141481394288221704076057331262930638949285052178658378755873190095685680923454481758328992643664196388984735048766076842984325306217412352443909299876849599765832288646576372241859189407152724568333115937703246929704680092124906924316250253334010240103112486742586500121028393488128168788287711079635702389568452672523808648688380772299526531104621758673888331645558978276083684596711934025664906562181766909505901056254178826807010973982802374433885364270571452899274118561123159851890186200410500698123564211255129113255031487244182341668110158222807699486099303786882583443347519045271584721391854373696438330997527706298191063253404751265083462661656608929215100348102323773511315744579855599975577719074399750627115587359721358133147022294112873525926669627487400919401590438427583004452366907069816115464060771999177773350195592419272491198571743134294466995243832498277815727727296530048749419591640358112575089255349823947833121280729991765685932296248526151341770094967918898761843347501088081958791531656692225939094778105091402184031306123405510871780301524554448588397040599787307030105076222047292760617097786998313005393557925341237830336323185996261575803526916407504613857185591785082503283396511359808119838209135642525006600998482952157094846014587196568580413430428269641761897182708742409393972465606433277506548901731199122238817853345443793638430970661369227428070430989863881472243270448724130467433037087587369574032465007421436757468403761928359987549294354344096561671580886421746907677680131094333916196754910264489070385660025138615513347244933122561581188052166550545203584889169212028577823215903487264680468577673850955065889297911604125259330639079950744982973771996937829317391423971011041965803542561244411361868447219725206141501434869030491870607698532578314222173858579571954897005429216944480611824596293951094651271882232958616586104219525444570791267282492678617935951979385248559960772537553543569788190611777670611892195872749146101040431140042100038728449383103131659966709347595914841056606113231089898666943997362987701978448988763402185657844190733856504981933203734269371733624484094492483949098750123448636098619920917151352878826389528789210384440877728824662042238562153839586867829966905582020448837227163749110327543106929657819140280079572641845431059973258042212514900103538717588711714664848220572256515363542332964545945573631988913645484733380401189114923738555960831757815505854784146052063350787537979542125873466488468984118311435097444165375593407609033987743370865341443712508927139004204359254970927306974352263170410864177390079746963489529703459546462425321287743646812017475840041612912464723993505631816781172504882308632887205834070646303943237372988268121966748534080400969493676343409415888304437334411963336132271386330724006239492519389810443906910970320950894695548522026386428077714636673593304807858965506124569468017443646735029405791267278687588085899235502353459221661741007188874149694519748457047705490441661977352612132084444125684829368264774843534343000799210721081684950495904818205154905121125159169433232540028219743768385174183588393972482405826042898845441248435674348403061478645793299965085548037562550415154164772461831851934902965753660690892118959361614922781305995233457331538468862727145697029405941728570459824411803769494455269752339095561054703230927836748094020507107281021886733718159282581985659170599104779842131929573591717481372848667967653245456183251884182897976826683264374551556229010191890976738539503313820845500875555705249926407759969630772814814794976943286323988443555324679182365828574917243118907000114173012109188626195320060173505600273336776913010972802708545491759521597611449787026248155810421926107984665437412069372633166202093902267164714504831662839201542058877357008272723666792509356922175271587702577673985640442597640726672418092304577012709004088006164873588933955356566234139187287724533429742168385300189188195711849712572458517638573992438421846463806582081887258264056770461612896140154978579774053432360678477761700950461322083610236985849934535725853659234932511199220554477769427103184946139979531776977385341412874975219469003737196385272750982458183498624514114567162225446021380694088240091196102673272658107133852004246719558203783626449398818634639209057650752554712975551491465455784824989172876503937076160593854128533104531051479986314611982531605981594126924608066607129617193014648349050596202557079148498600354182099128222939211771283068280928317618561981391399360063281619756234848292338735753759913350663056405074657119037503697472817901205817171441430930135460807899845701658678676141167464667675875408927025446206281668067181502494354340464184115373232805045667707393024027531112696393569473512407451423433293284100446167729250037296354568056911903542559036492630988058729100252391926062629272718406340576118385697216006142792347132134444189497980969446025527205848958031938123246927501360244364977906116000494166718224518904923778652831325660089029773006407251767798274348012091375145000860883528145987137771427528892143382191242992535214304313665073047378053038916199342144379019297253508558508747472409385853539841246012103659114833798459973670576702912124460888002499721376379020456072845680526915798455549491445851319087927603337252871497736511674279831257271516932579610004914692903510474489723320086044871217270084020448691797646140631748930714513326484344881981415639314633142570799773545356566312223507393362377428862026696424612786720687643048648181457174563566885963271002563528142671897614533738550320297592969550979178853462173656085770621665481912939261413362784114521845575206961567007926096732829487346191746903357152197769456178993831870670070572428824790850993902188707658211984514532212875843441067540677552420631779500829746282423381649657218266773845500849086898738783831795608764920352497655719410723383216447285650746250130598685461974198756466156380764020585152402919274212356574320753255342213261693989960441398465637687391668511549092377504231542056126389376352227628121240075138423521584539941912422958632532639034297383082945875975139666119314210424483907529731287329129801337663330358447742333974494936696105706967705382114224939735706048811091476580611225596476271478277888715593982458517093896040192255498664733739927712921351804355535703327461627095419135128169360947861348878663518542370160611538782662473873195829519826683486978993349291454328583973830122641146885468778755034559729008317766735649204081430354254977433581941495369643518510431020582498270247756096516522715880278868977413868788031041749996681920537609622421327316748617384645070643866697842865863984757249464890558881691325736707855603607069922758885187324610653821923169311457375019120869332585021137788776017391232789960458477623802108801776589868562546130157424297371032089008624721816552340765607037572582738550916941383573096609105824918938884535893191269458437640576925202797137504915713344188281334917835833253363268507423638122373522931640468846530622914227958867242093081714785269119239088702287233194255284148822035622395639400339834930290119558589513050045748824119091599462719100096441202702093599188801767803219787857361883759876937402715992546290616122694661011343446400617714338754344191229526791517577845952415329626466760408944973631901404111997663542866606423272508712256055354452703027317503592163583290581514878928277697123016892823958746457677041122295103017117735330460995509456769707323952041179096119979942179122086572394983795087713988115018787494855464130819990823204021624334673776362069012685753716135563545135234633875931442129394276450158540659918747032530222286551080733589997943914863792621580022703420447110074810060888902911338285733978540065207620561551240065062653819920827021560454438329379330649056683061817228474739048584109360485236292904661835251754388984396905531808196614737656158118935008080850244242472260071193321230278740505378689609541322742175310930932966450480924341366908323862142303816241988994011534055569751896683122948315820232470886322839956101348397605580401344806445230302248879805668912601198528136751763141630212304742781938119192077862312363587291815256201292040024306022764840931814737999959600367868237635548813214741723637567197182205114463023214276186363539780263105635426215369886077370290119802681103145878684179699869293850542095629160828265388072848269474073988213822123319100826898024519624828120460799075807350523865617957330346132592132504636555305707830256533283256267504308895841659724907064702806506138877014061308157000498911004311260217836928121777825590350461165603572746654864039808430623987962669975907918634293678749782068249148366525008167558821034087201808987459475259043235011735819288290204246348154894685783053709634182361183309966531330532438684195083016402696479207796947117055518126453482347259122332050877743758582738156309448444689805733388039748958957644924628034372799498443404931245774800525620945901936688262513169440854137741795019553958999479562842905312821822260284931410775665073059964020396578603778841306283950708354838466525344655727171864590694135596767342162329897593172392093403288594293841250688432836014663309886743897248248296687668160169741393686013003552703378936970240021762175069319344648734515220460093216396455122143665910932399266972474765215580367116764080975398599157994867019600975288331155838851319147154942751599751677572975855659343117482962422586707258330842702969029566348707138770828144594109056299545709650731866957615399852641813469756028360575401555513888784824894276275413319556273954160686529905112078978306115141150448847118700221641508569853673820608876612190544713848332620445726446260937596601657633977433826642743479858321367917874727185771670723950420845647706895083101594402994709345744039473434088031629595951755729020954417092987094079244813645288443583374467858840251428432732903838589727783574627810910574859325883134806958191868036448997100571197440848649825898758462408497882245693038639475955878749423493745812808630147055184710970075831218738624197109667473254213794942088165416526201616164542334826180762968346550791343007069814562427952706573575178126715247243499939486689187204684481856820616365036153505674533913003253912790912794633953455462481718444767767838306480133700464623092402412426560566770250439575718427768938038438246989689872760123500429408870176580260975377103570848838838298544215006182046785070500828928826519339199538530464371813764891757884703918925756060402873130507651606637286054812271727516971082270860266131578115283542243917063881340228298172859479118817897944961076689497480682512902211487035709691851700661751930911991421247172451243866556733760860125047635081896552126092174226829360515040439882758919423311229108215108470251771872021372353536695407196506668388936635786983409485217735487352254605225287227876106302085428170905507242624855902555477680837558999850853258954686252261980526828900665971396526544456955585539798796036721074209264186405350640565533910821129665468639838984844600517506738781374353168973275314653930929475371898273141203068019296762473174441242175676046526110468387626209315677115361379963629648095016287306891022656732215164129331588748586416514150507770315059552493472489339099697335231484924639126856204703321329712698625267697858043178823938555862239752564374449922057831897668142223767601665013941200568769491083320160423929282806392160996571985016533723506835175298304815420223987887247300260194108649652757150904824547988665620903024694977843669286435584169235147817468981456283204445377115613907130263180969286686961728436774697516036231203440401754042799627051879970290453471093366953777299531515763430841654593498070864741332692152101181457815133474031759821394737115128557433096850878787526251202733450051877114125475391260814066252217575816809548144970953939536832241234866236057183038713247193585556670408998889744246796372623410806974144819985224685844326136876617483208174019282279263796495526297241421559098700748845870438380760618409314773781880134190583225362455816059598839778615288548273111505015746248565543246316225321452665535674247195157322999767129146553367682234828487093440992917309596485081530162435629068975176021753644520856177877849894783026127179411447845481448465911245062918997359905430531957008973789092523261579102589247795700166695358765277862525371400123117469128545084333972753441585589858934116469742637604160199971340626002618534563368815538946140054863089912883544966109697800408851312604858903414062100300452746726570752087875071395574088147727379673401136280999993068367437039831404583269275092310339924594780681979001167375113761268428672237753886510905730360957235616846964450793183452439645551988053488769504454180770007975851920839244651706366467319121947142362831383702975027124249345126589986273928530304236992676468351913441866464735628234932961310116172241531226092566778859134720899354334260408913098356940457031477253942656223252481619899418007895825486382325936864448526044735417639993307576515610567161506693085874622823891391224907975221401515353550375355107768323905600118394258301487406685083270164206594557791411104999145592489949818304952851764325373042684519806356486343341203968991348745263142419508711917009346888875959614672644956154301760074898913933383465543976579211796924518398792155726503976094215634633019424181028124514060474565255337605356520595062728250611074459697729024503310715650931104236294041445213589116167954049268281981043701455699630494374955781649095760116791945355998140024758412365686307114841994686687736626813715687219214579017741197734591069481265200118795213609189347258259506998775487857869458566210567825329679624833832319786381097463574105324866052665766354579108252010002299011937255736366155482924010151441143441618142033296006699396763268137827120916311295844274678595951900684527157686210628886530388168317598426421347723111851152363246459681219835506551759865620867269128803315247530419428904347477801029450196400402532883769857018647072744998259968866883960329819437352422200851055552042469464020685731788725402650620981872229177110680610746522088527901196310526306274391552799724236626188318220920707163453754091628811539622622198637214420445911218312213811874236447936501207903079044675836954583556456153976568996475238829242311026799721860016773568206979718444871261280478436175479431066636398835034890506464443628505198570438497776145797854506863245587683778547348787046639797138785039581653048452918847897445210717805022442298078201283867609043689829088034632170098308327486911935633760643451294860767866091970926319037946754392781567994981745863230819443731310085666388097475253517416334632296966421703523931353974942473919739931621163046212987221111765890365151377889893736874544249844734331159118645475949242156236014880661562068332144540832616117682484181784605019338301883879123057702472917219189154361236321133642518245975079406231745732027187984831789513603878408012196511026464329098918886909530937497407614307243640597656006515210705465494523776350338742118658948763194674215911194648114016062777500217647008374831724106822711200482177630905893669430903819369405739364969475224212277867514756434067104371016689918361424755283840670781855687528724386916229383356145032349446044625402147030063081144212865994089763327668916446404412725144064042044117408763665736776991448172092377335751939001914409170263527868880430878409993255243534165153001430133033088186017346803834977304759840148850820507620580615454496086745643787357293566121612621522779507281808887456982406934263710284429792266778866267388513545904680686063101024741323632194483595753796083455515630328305578647900817462230643970655196703372655208528299976730734101305694206991499376229267016224163874747899778111589235672600690113458718459018601828342116049199516662506305259157854720104451238682783003181200610503063753444397889013241509410335497290925292954752089163992185521247372402087324538057781339957391288957101364704264189761049007567060681904387678373985068702495821947623125222783240109078626199150979689466082430950481825900511243691993043348468673304708720047292137561351555790674180493074036770805342116364698855570716044585165022351289958691533032877190296481263410858842659178571304079077271917976655761386411119283567966459248374142636606075777842942908634254566385842793709989000142365223926549014700921287206891015621755196361204639490187582241850536008477588332693036383420997132431092557516036873717212266320480860258192224390786001978716285707512020758825196695378016724716935546389072416678449341407342423391843044370549120382094855312863355330580539120027799736898505902371775221369117195384459328388472219972398023308260469420206652090005032058650178606986002515800386101882226007180132563923222919588904193822402646006104214416413322705499951450582486236398855393217815156984086427310328906804383081487299527293045008681333428897131565704817832301638782083885855029050779328400624403318524097924852481480415525783102913963091969412487139908127647797389418093074822862232811427671008604821604964393242660788826005594953289351460558670782913828230755502203227773018157877072472608237949824646743362764419203337141806133311421687749006964870561844842249192337321869562635933587026540123026046144085337053446172941574856005075624352215421530375164993146487732519123437421446361029551107630002887048661003672658651855967958296819872776991045059064852661008961016150072167096200129745768178823508252461381174214851072285198095438675869203100515636388854454571015183665095034433532095117792875354062217964824763633192715713430148470661758979487884492748574666372755970996279925980304119646594589085550103642654061112610322709101584911297111813939359034906967892348004597959852028583877299667189692351102541012156849134042803116459372204865302966735027703500483628686144820357286815558921332108558078031598738384754054074755178147501970699956337483572346233101019637888192923107322480327285860551534744206906893975114431004193648972582400330735063499189616663741950547018244084376171557376102940690396432449085267184013567138670561183628423576012809850494674776979275626664866027201994688894204260060733830254002880122700356016395724419302882582953005654694943788551799112126639985612101713605240976017307566543328197954061681069057185886512613719127017879208590965744793119873986990577933835791997147553432772680724127200012087240009353366832663426194365181348571294358963409661008208620804709362283841268926789935243705021949906601802358405305330558692058319773488966391953112540668024834294411914568745026278229719322355431321145903047177276992135058523369488568242041122876177698237636192133900370623773511789950435508221222212556518815216951431809006589371238439853252988164502440401123246445538149399628314336893036270511854048101872737294232083725222518099870282993899151706335825174798089485624292265682852676345997608483067687061670624921902358811358042347731888700333481394216525638898078495891381933033443666807048084350677794148775284008442644106258914861676395150380140407480886309073781443993405474199952732127193423151202830952934255814979602552443479698579176684448602724019200889565315134585242857314946722104618174721607769719717207913558523657916074268741088277338587397533948899520468258682311372502479497167833715867476468968926221675559168490098313341171096792215415350711279924191992327975018275532959227016377716310783222133343850136458415425561661529415777757319898552861774351893997217567353187246726731522593842431954632710742046913827275366569874879454637696986270095819521391585487638640422307500464792218684690606733911988243932124459600508321775225207961984963755282121480051025149830389625177177963654745758768199749864165382580123206812399466956145273479192918145615429793773459948029189702234773498601680257762934730609978207808255590376414853136619758359697774857080825160047488927652894327815881508462098164650267634983107761142112670600757660819123665657901749179270094373532336692373886839365913863491302077325465194554262359091311981792941228127326607199742652382167158846178200339154364274677061050040831542526955745683123317617577017944821497341987264789614710071845899488511851382740441881438064807049299089648630793725604747988995803220782496521490788747252753361295590438768242980165704653200143427274497159688676515565234566643237482752716566301680762047467064362705251338739353540320866582270171080100220869788473537527660082148459854657290877753265969426603657970128436756508279104715583816169520116204111774076993841043748297928311534472091237914432861204689601717348726675830991300266621609575112094141444355226190234504839423829340311481190559873609621936823533667605116752393902275047318568882728777975559205362215975538894346127409000320751762303178501821701525125817991027923731345370541479737570796269893517417404452242071604137614526413464994643968604771784613484360857470294193869704629226087550158965615428061504162219079764285960333103394540854646444736696214173516703570925584297525268055691488976663711767554708625526124785689988903722846616986378382280890532058288152095569759498904299811724529033343267976026998982236195214286351904929618051872722717010424882938802068315732994510358885357042388672941895690390757681760789986440394785968877851032573488822562818631642631601056351851437264711188129885898508513674220250778655729523108788070542315091627389099974836722615663729099837654656713931948403144540827306387432388258667447484951243891306774467679656940571847241114760469468535394502984796344808899697529769894071762381641470116818999525744792603799610497517902226920198261938704341936807929812404089087599851317641325533818399161583766580583057761027577081304417450753648834982310928093618395960295866406056450697454056726724287328347219454740324787750315078269566829448095883691108811305826048515708497874239437638132643670066206390915611513640652830062868546080691003544285104649050322736141849066178750381179672494373359420825459803051127386001054490757907782522099022073924967129754307938107753837511666707304252179373757031684254809910218343919790829406582775257437811290444437667133834863699755928466528914662302533002642139570676872976173973457119729803411529030744496617361766173109071096320291501590032726192172264679058652335134231231874566570412732107834006023130512208639398953621905616916197879158495055537085454528381166440916294388669526652523315237815839886651528087296228998204012241275820576463413713727735487019500038835254156342086701646027104358132075721708295293130856340513406081028550825524208749551349962159639538917095397255902696590844360323581603287434062218281079840040105745862015236537062545410370999074107119100302431295414430040313931472993859239442582450450536606068510553975251483119823621034677250499874656257210827032623430192383583666930461364086039226626829756614633159615865546917469740715428269581322034986146884665128298885701421196203714125815458174007610046224617113899000498752611469832681089675629050656368122606477057221921407585127801308933949076190983333825777513104645249724154005594635114141083696401333335654847033844493538570565963987557735902468289949208366547615236812442308154491536041532170447774204572251208912826182049362497099649817040681154317550715519376219159484078654637508798119275243367697675167750674409404419271139392791364672287195676500603848608925616868035484471385147239623547603486850746175372572665028226497007176604294825667622720577891128853767075687603601864865829061366510967638054435513630457341072886706588968571714736194940795495438177878061496426153351957010308254336035099052426415705579429683210172124803500522163277121885206843016602320228788381937658805510169811609749229470098539193656611838382423328832686965414064433072670205193659161504526178682555862256107371698187090806077998376262111149979941730438581044501326418100590967091936857084596000404699491551227146067179905034235640803732382776911035674839419988832641091416751679058547302462378620795842668005341597481217387256214481158379903965753002697037817181048822401799662676381013961230197099552582260809286710336632677204702610662708778484536334685132296983284713062930790258369167978499793313774743811326817385166265665594687092029128595523595525361106687097321313254911422648514199066028413336400458492292626373953460949393682018870578289119507673339904363103984517948154751266120111673785161305940631782816812396910509967009860804612621021293794784407166624874245588733110500414294545719314124793642439208806450273114403856731916621597515461112124871807059052623487019079912125686848191435683635015282219016085012268661726411137730174261925829321945063367446679234645778469845311634860316555556128989715098454343813482101300925034733820600032702566603304891036368070897706921328062552544950533648153577016087090001768067448666175070450782685472693427411055621575848942279017943787386519974404084143726368899140659511737893588552476603252289283139046291594732048307018563534977646795547242938050949911192910313457381019394944163035035783379274482224092088824177296135301684181564859271037561515760933123404894188905076701348876243838882142275730256413894314136350006805879731322802090214239152116308236055971599059143533078235163396459290183380545987281723639508059899294934713867620417859547714491627191402506424217250935281312434883603122585637723028642432451195292445632095858578616952518152252692412352452428924407997616427956368140516340007995070037732741965706638087058685915835951733512461713405542046245067069420750685975211915045118220912639363918602352292824352875179470760129225993507671880092136115198068860292874940444839836420443943728743727283632744219471562877849123562514957167493743866145662752185485847474672688249210594165859112079965921433973718457331329692122604158029334571521114819504606960790575654950764264700558744467744125394075719739447959461349425476108532102269005628588578228560902508186187642057262721723494130033791103485688344745750474156976509049324873884869352655752670312881514462444905112384995225728890771277647601295881602318778311340583731809110173685311585677429029081784256226763872561197270211841068391607365545239857248520578099676434244065209845038703317731031874322489575199413133107077355163900744219532437678754153574342622912426534064339614327423084829765768337741496274226073296766036546513410398883050060678110200202081680651599385432417110230896708654097496167498851904692151607546706792203262064962423135470308527780992073502575872564329597793121252419403909226658846724636976164310014099292201425390746388144135588489036444530683563413168484027681450632597990603510417097215404092548163466991168730266064527784335491469072527128365108701218828749138687796766077859661250357623066903532174221357986777089450812397018188896859961555189608321932798496515403457820077881388559666531330883170422327061767974746004807115843973550194733996034048604196916843058670094351715387402964995712577475254493201935706475321084205937905078758935448469119272589721773447647323756699319610658000360015106013959001695472379490388596089989857414855473961569607370087878239097137195473859171191371633571775010074277183717340568440110734494943140949753958563969917362876746939952941399771557117230910430799728296031989872263035786596314157074915888716477687943419705711848998496156976644545860582109710187311126415923818760510775595158618518067036613262271529714453153802517679398690194432535784759157069960306836949172316360109098047643635067599361885795768204334048726739184785479447908315219624896719237114339999756100330687501243373784591169127309120776462428618446173927654129668155358497333029241303835123213785385318920287141781195923398002962107540789069048365410955651425171814366959891322497378019750297741081354702757492977582535784144495929205730265137702772644527537710022713154501446954172305427195505747253012510130642097282041581591995657082641019006215219919081748719565479854813318669777636678280817603475957364864250273763892334787332431659627232814880880346785342212333331415438546100265135996118842130548906390210331268126093614437016027843371675867096256490828016300868927054083399869674071943479268457179192868755432178652873081209311453319806907316411608071472541700571365381816008411528748953416630280467667848304990450121752433340664497043995068522932816541358089618133549184242600914572456334288606982643171030967605681974210046406540908255313594774740731600326973157779910382906902858516223779760934647866069587519167735437014638365943483778567044664021276317994099171731670447173134510902447429025887192978283435289680440110742492233148163261904287395017274484987437518444113292852308760944978216077487555841021369900034921170593471050313955440342460376928512785730139267827325282217279746101894899925721257881087220005420151601812253627092350102288858817384657623377917405409130185439111508552688215172635427744441312537568804411304480120539972266377110963795998809657986472721456469861511673793200153356075919489637580760727353787523756120035585533209012782533707974076070387947598671637817699753875891591144623246152904871187089299095978893544152654989850999237991092875147252666919962570131392326395337972145200500208018053273322174885427397727962228708826321103667480895551805113816171792356665227089106235010915449636182711613964705159841695330453916567181364171225303436996935236000396297821896523041378813262235283489394106377206747878356610269726593845049558792060467129595531487058357375392600797287672571948072058140818767460942830360351146830218197658185987526653608433141141009690623171921571410333245424897991099019026718129266478492163261094164691712981642549657436337991031870429512772288796797743570673881477782897844712054065137274696594564665098449289384304297081004162236879730509369043560282313599888641395712150027665213859794208355778683788180212357984582440366997524484538407285488480912853825078952053889691070687958080882121263487719096565182247537486828853626077905317483632538136743099145683170988954032187519669237760324887498851242923127460355302179792275463341750593311464360696467053195516121856895825906639899136202469278769147143178982906289602701047214509293211561299732767059045660820025876095617280395830301141557979106174460950448534084457471469310185001575696841370886285346185818163773763207387088737318451772466195176510257312642811548650888245771688423766466725174612415646646796705786969283904482480755886187802851358907563920940045868513362740619579847837078170188082932279206306669333248287588927938406816345669906027989432776107880257048068370746417122243986831871162418224713639644672088140240903788731874153988476682079440292032843850520277776485209776716054502519051277192276203693800608182984559801144181714610630318614906553575533386170914242817974081805908767518813203935554387236642043219106846205237798231914756082017851249358786996428947440965352752369160397301698370210465702267207539639513951834720915078916088310295402830361541063774303985291555749553460448007564308663047918055864646260830039810927350405734845770757311609841878887074842282178122479276855609284021122993200900231748461926599716938081239912137098052809148560135655759853560652364362602090238469243393269857892428965784415965319138021187643182062585813975435407907273718450495929679819847641477734804283933078020403927252436245970899105150801097825208640130759292554582314162496086341727251623513652102666366928624079830048615635939502832588600236821211038384030713210347572188800677374267654221027151707141100003943183493285371629692885708241152542145752205463896409112244423497624978424043327633384351251524127742369877152172468956475951166754139514610243172508478100882238541664005966483871360551529619772272422897680660603906250533313936102806451553751928995117229665976557797873561713128246610866172975687835087093779630228464184115384207650790762571427642023289719424043245839775705827503561496752187899929373318623356031928220944023066153385204321432402634142826194274672136347359991112589935473168152848543622965967253135049300250441312419080704469389053481466596162199956202414542209099394651551295251365475662034406375134730989613058123191216040828099262152897587407420838486223340786911948768894785326860758722487269181679538658742883456144856639063538808763764734066796364819915051196365341167953741039652471487881857190138073898075051183665619082054324905941088049624730154919239571793839120423264288859983821787844110801224386329027637525577480938280949400122564447198973312139425578896266183946295847267888768424776358725636320083520970968662886826062022126140414061466693970530008766026985967498417208724739649151386328604987538994484331068920396919578954747177601564705716874017082058915788624646267770336963513679428251800100594664496383321582927646199013704564481757891968021008999176007599205572247699195535686899471937408273786571518471281404751481984429985645949785937454542951577654849515304956863805177234634234469265502036764910845089721963696603604480043956836653295294250978192269798539146381649305107585875709217289695560910166744651404720852119451326583607676055906175365726653142731824116517678350213892686413911870861645607812181018802802890199352694826861549892377206599676972678455538658654469311529981624546144385401675272463766188221915725266936212692324785885928571803778346312463835677042186760503889447697053276768551795051900860617684919783547137675779131393874783696453440745924097884486751716198763641859262447692191118276210411172253406561309645319275947354772737954347119610614044334750555336060427164636165620968382558855682400582238136578213759527305287738475674087878457819175836077425229295375333097672772776901579682620522737978488938901688490100999032273699933785883513224867817204986920588996737614894395549970436912336347025190300915081149501963468578234732245014514950303569304568066945866995213937326303863935716792015880383383292522754757091453366202345731297096125605557457134864009387205091713280318020208951019784812793566534729316488018506516182488881273562796817916309145549287486048175833681083511369691180935560733047455651243688249367607234153036774479807063287806887012967076466493853293722773760044867115799025262948477722228061818861845808733312945575542920082342607697101586182422238303235437169004396669723975657383510550751476610353718083500525493161578850363558201191223201188264353674237681662692342704447129333940162152098247202972493008960500629007705034039412029648577526462596579684143049158861956399491796291994509401196154248163921839217816076281646267166221306388252972324230025927514938439016747631847605384670937820437994568957715685851986873773068398635308942646906405122081599337428436921832025636465129707677068424972443677082552228637164825507125553787445997601172699977292519083161161081275989326744230655919966743058770052249002258994105893547850502652718589469920245826898593209208341012829581041229068895079479530942140849775788690462059957636603167656443234772819706913402622780425461794371275913806270156018820679801061547589099706400997577441001388533646438391652914184879287897964693523471639330312929115787340893456678505804957002447915101714407606610058931484084265033819776538305578023885986420533040091747950742984058773158682620541700534488931572723951565742728455712794321901840027304127677225148590838057880829644683926489810677872533062583238139237778734118135470279592487543282538271871186188454961983225486741122730878422724307094215949680706357273311260406333135565823768282572768426778653243975025681357109438522558461034875235831259064859160325150896987981886470212318381155710488826767460268995368956899447858087021961876220205435485891920532371413253026421304123717614674437204835974783647909647030120586826452968600077297382269953158483159193397986171598140724757332428777393628058942547216160907212571251800871831170328767836074388645305691281912886540055415344506083331050501640919168413960256333655542389034552344837108986370165723822073600364752337519731363187617082837331792040765799330502324230153190703856531567567050317812411445072019998455222960954747360898684651235670909937394415376575709704009596438614624157921142503672471809576794486664744818117960210543496148967855104976032602019334827067636564882330682387884313734160609439194549497929640477751725203218966322067039773962538415050600823811958715069468329939073630931740695654500071184596107233248297919254097723596610895930322097446387188113704717874732691893904033732546384892012295904541219338800796850258229606552856079472062024067580204361293662654946685874950676448761320813388432842555974572218226226254485455917429427070805299480450233634072159722257291436447573459414065369196093723730114637303173409380597675292892504366370522933060141516211173195190510982231248874593974239655955877762031720424599731119099526216236515920743584435378139462228876355541281089168570604440777134799844287961447281706636854957712632427551350405067030967120693143718425651215174143623349800606315383937232192676299676254359770382016085365936180704424737239115866762245607120450643836378603145572754955789120728147110537472279799295233556728164157197215362347634963886285888731006594412127015517696409672951163024477290054873200942619573221279898057271309081894546468914171850258452802646199966795824747379012985692956868807446895746060164265576716028667754627235902038446326731559102389543169181347765440646234229123815561849507974913082947073557201499135278534614537658637019300859367790602835263051749468564990819274602938711854307186638786613518382733067483481191929576029507022252248142799847945252611512113703220438651488215278237254115444238825827869920840629819613289997051637243056023363925266085235765033693515610940005945359941596236070843911344228993804584835887579500913909649330697735676444041871374755563798508730232374037580202052437195037525589574178231707187759863664271864501638150166886762584977011934409707618654652310047020664308239253339328576737631044478017715683577003668274879266574025249067790012491721735310795841452404245635451644152448031686507873219752331777427228668921381345433386509706620400128078215495536625566589562667787111115692324618753282993902826578054308907980209459476181184572187543835654539100194019323474908100985421676501250799345105573839930805196483188982915167271507842298313994833151560359290872098609544596044847411388746188153416372277452669896795800563406743952055392334988869195938133014870309718676023241071357034427662481753376981767900990555568599511481361319157197047012656072219875118358440674937207820946919849734646843135707388306417572734423171634889056587510095855397323876495372167008715200569684412662523770666494837074081899041842397123926856128422719209685040669097853540459266807643292854792500387243106357948361601233444107908230714735783096104116228339886027963540211933468274630015599042363692585007817382122572343376801249727676146640975606327436896913755736009173861052197309036013355126600157344901070232433287317890411532994192418557910299990270285311955165646302812349219388889159753901672508209366019296283308084908086346464242261316084013747044226499674670285354298233552939632110643266078464210056886512208392312021624892209423502390154512134470202562285653332134078399314062483051922961530600847678750301058967247434022030017505269933066370295245811961881746049315071219179224674555539949175531362404040994326703392489958782329432097464856066930754899293441377394682351636802995122000169205602197348268584408171094024881843797680755528045188321273976607728021192206235133870396231468549747901927299309789207172771209285087185997693400143495863980806438165978637292740207780682384085820420803103913300515736382848186379450602119244236771543150667056142473971706490281018538650668608203430709924624320796210050777746267095312833163858432172397851025578101295241635543280804247159869773295622254309581200632376746700914423719526831659499736371821475698902337298244914726212548734286916214484151921730245676756336432001093848345427114067181140608208313654325540075192336948512168313534087450807936704772962413941060900306935267747587784836792141598260876199002450206182843694684094122750114515576673250519035393042689801758465637763125872708628572506927910126712564663419128246923894361580500375187646104533238401086988100466304704967923197390858421112169884757649146431645605098964343474253439116456066832504317486585723983822828042554248199634651463030632665361641909932247669269593894762795136582630509009373383814325549029674672839739171072436874542738118095139787589939253678829836027460804759454041249697862191080212368278908173926543999093252856284215206804475749022115218394708659472640865838494202654367373472601505623165561162136715925237891760910876527810456790131115880239047721251693450772318180224928973771062173650495211080153466204808780038180402563760299650434945677861676490594716734176150782719146175005890418787038118598959909274710407532253200339383955490667880604253271353059410664950684036239546111424654100134188462367007573573674420131164604096614025275766768776290380139561589820215033567990889425518280430572946851222824046565895472862355394238146097727937030665073499211892443801597918597286418335812054076890238962508556003803159813022479021478250800455246464321368041436561144585764623840684965048280530989845282917343101613536558365707306031130216283950538459051688573319964058229040865279082877298268042964188473454504345428243958409869446470902584324584796903286274676144956875894030894776026286899355686416299891291791903700080263462347909894362467679629475704627150676095808596607636288550439531104498273351056546751577898893975040099584999250608504202764693289336556792174445790230323813204319473549599600768370023226832416880174479652933945974267934118949926040449295545194469247209611839068841114606234409824769940540795268301212955023796140164467643205899443093913027721853860332097090104445335418279667292593661792774862678251709774157416731665428960621835437352528512555037442107648161752378036926210634722402187728096969908146671610227095702604870814942352484571269206410891248583246718217788701997960343725733810686203512847820093874619064887530705407658630906069052155301155889974240306720788455927975052894295183022503288685928701496044323499201166736967706130186253919309304780934289054133026340251666518063394891047625744333186558772512074205678435340678799724668333398158780585022924490184105956373103274515813542575616996622494068831357246973275788530213864204817582449615589875126639369051239400452094179791837219003546295222854418734062348655041645772306295890160525193587085798901255373180308573086579815730974818941349141735492823335466837772049966910879063335647401668708241325885799447214904591960281734935639146006335528163891699427739059119896877917213148096288572255114235079960077350027894605548942459038967766252650932609153770726298184381928379367064675361479646565291869133049299749579878299495759460595303790229495186315274381567507102715381946010147394864182136421351296451966934476458254222310858487903131160782560894944869849878050377645556523244381867094536793536373773083202021039856791217759352870613191199670449258504740338888867915976095731735686683040848760654191543466691513787803733665809275433295922897770658682921510334291276030800377271676998082279340571881984821629923910522354067702227214506294310352206211973118793501412624969523392766816084991430629724254467749632521978646156777301219229191732911089256302481406745758082176778866697060587491174826481218525156148561535366578220909557666379770100279381665422983596948995218747277900706852700954608275639348998803390428369748408755864870312710798333165233189016690951648825665138558800790801209201256801897237470197897200526866391108826714906236231555469623864732336659712774047700705019855101868103843251339664271152860292314834381263761413061876574905071720774069612751203543270286686708623955999631777037711137745552329912864796177310167904461327993786678276666820405294211712527929889809651937378922034448795725210071974501633704238579642111492452747806690682978062445110005352377035294636523406049776816117977899011250974665524610399902856415893936937862649006342364393756772137819166740364335257364804200388670950426181676975958577469604419934970115377409845410377665569971640072376044431598555754854322880681679233046970692335626108130069812327340934439488087157336536825879610748307932346771022743478052186363882249444338664653897449280889074377031560772414188106507084980536626130062377150999952670881433230450102342847453906804522634862052209568003739570072796331931925874246042570750338544496966922178049535757097418323530797931746637866428910783496114400890988794223953528274604032511876845582712855714604353370893178061425332783693764021587200367728633186268180466960648919125140150114337429004342052188090953001644920741209827774241814127577080749182209564547459872627893516055118225702757381737372660645652624874078087052556152845675277599701794342441198052398988927714550409567855345798406329044005962068868369764853683114121926466050392832482895782095163053249344950746944198215575854895180890658459226239077800431621084082798401546308314845017906304683868957980849356859098023125247127129315826624733141762062929026366567369904940904867153159363881586624259959355233471098702530461150524992195802124127506477900180917486558219158728188750537346906904201687450298540375951941774895930177087153135058827566700095569544030610231581750513407610298016972726222300153151644822925104544952595587668881240345488769429723993165648965517676889072606463654651169265059905993124924653603795874945384504184434920251518732966170167330429307340295789284491332842218924724147919264922905292603787767774065751175541709498874812679957502668075213727658272416130608493165912380279938746605158180876352034273060263465843725441253193695432178603767103588687976662617908531963735640505391365326738315237306572418454544974927714612870457668654763848802739612006123546152814017649236767300813723692317837621720489646932211182715508063107864168125031872776216898007603973158305563604238690560633829069105196546735926281230702077657574963332210352375851538998013559836000435195224965745416396165555668530098656090565859607082760145795476041262706735642580644983314393449558772694983951714407544227624996825421858921895408512268041408857046367364106184950705456600350024689728334608034480674565939932772813043672451957003565933995671593050019169964065787748065715662429674506337877515322673869506409080646418114167037180843972045019284304385178164054486870400488740635413672981258770964254672283848679128513809273329979556666525366926210111777724188581027983709521895611537786779887313278337914797882702915761078135053802858538189588922107088632028820181271657009705406223493402056232089048958246413031256357741265702874734291868641784926967109930451393302030780183341259428958529028670370820640911648446018506938432199466286156354835187510403758159710417494628562799553306295912294925941288048907627601367508250743988646229564988821365462588335399113089488146276308194788811452831805798521561162107477338859803635876853147940446992128898379838672166637553616110827666227823977127472304122205560523426220412248334230212204905578781867851829384439156759995057230843956149248754690932112832064121968908832640420830812375080425788437347085032618568275644000926635707660278545606890928582669912630237493176420267788212523412621176863874663423894562700443556846258546557799510211648673507180766695506479821943466789288131502349553149670411162989213118176930926857462060721767123987603835360528638199923080216824554138976134522232211155044542615689400210874147116472797223067124846468677915976726932033004968824425685144638700338079893733539908678564547085911217857391727338657736383316795729363163731418319139340363898215788034212703726413110569564816648694680872309293662777253738100880071984687047255134195736013684941091758486126339928066810236200364362639787486783249213430760904941665687629643215428572402398420373691861562782797265775591551084100464622969211442767009222108820480880183615634660718172374452011853681370624620500363336623445681841122832837026766175407543322279591382483768113583001229735886605975705473249495794184712620682388688949892602121925476319174142399436807383317420575598478672998515201512465465638546008077288936527814539741377818026150567794872553477296775234295353002585546502695091216037558186544933237218382485315255397349056505543441443043326963673522617451753554759749414896400450462292364484872853479811407437638660989305021059933350467717320036526344195167139844917143044895104090643414082520426340363772592414481125497606525059316165111358797024558437076368157893319138654837267807834108618507542290556144056861478562104523785273055377722151619351587714682429720802239959778194716948122633593371061880785760525843900445226697323295034030202451429296766867533424739267827637948770328210846443746801663392604897587972449643064452250985976027450733208673203102021530219689677970649700047432332696275971639921600419204186717463677512769638566250470316290346610788002735859270317423987807492892562494224393723794759590703811539695403825747659901646860956810850096053181011502786854365947639584838128558641158317156326585911354349190228175177930816154546910872113636640581155040795759603989774155174932725163433641426822960423633820349219562657201225278541230352026650019407617606769034090788091838507454831561602268149047852393270252303425204605217500667598457830092255299815138776293277915477298830942756679840824987540002194201395859507010595200393622125266593950929531100505809239579385492816808818952456738550757332483290753867679917560355656965915554551611796808065210286076172128977862527811692991071763281796724062441596027507490740593448166960330720819349238424550595142860222000882331240422535556364704525173015453030453959490405134197381722826821118299171695904062621629765141406813114065112686121660505749371904472280192700649865314993934560306318906054212837212288086505135505515965048824741143496811890311285345325713694441045706342439014614063043903004839630228551111919314106834243765539627814694418783138553622710204161352900606127915939775526507960599272498164426661446578760454107912554053100044174392694713575305578485871933614015552182376602939246873920208366036629891507127215665944215863007570778914789807057318957109457358300696121366663710468740751877624043992287195442696739536793760354678897967860488698811981192458576341317064952124890194446222441600136261104726596146497487361001952201129009097635998053408894256384411260720966067266086900218020817747227963885139856809427403842285230422963994194676543797785447760096681640038312588492905690941374060338319167282984346430638602850027197209458151364603739762515247490464878127435048009891811036048766907970619973923012116086985844412348896607353283005635947329075462552345027033668362435199141109646520752882574079905490866784697728674863195588247738488537479015105005714517386051214547526163887964548032790096239599329896435174123360081954267544142837085427803501456763458252630322259633750237257965897833731268409457422409478343747353005219360832297977808150157761736748820356388373440287516743158338214632821222650428239255313089454896467137368730801598281726166858134332723655157104185163913416007173106330259754099353505722326309421712056012642527910535523121385069926639786986680241271290584026555015856682472934715564131393634771233059612048022085629573782150218356855592745854929219859796845307585199466465546238120265065923062296609284651045261046652814519130508719860014506599128782154014300557497233488310868415681515988435686551409375571207753177415478691237483206223576942181481594560645943869134851112795291348275511933516092670322951238172404172439121711149804056921520091793234822154852777290559992899553978520853138403014406226079545746182206107097900365764354249680532801614833905166781142125717875105771350781836019872419976222465064024958384151256593145985957063750788710304767079170425395135785375508922724665270793749310590041148067034084098233564495654416146670026586340807542316968504688910621458220400471411117418226560120746751055244026348793267443261417875788655912344404899781128411352505878242458248042068474251306695308000863120536290107852368456554649663081632225903837742220934526268155205602176192105120201069086122948011172964072229188536580130468527211690853817701090872635307299207746911717951989788052678673800816897348163798327458299294147882690760648734732349749229336866591308344753248998355201859738257818711436703080683469257351131730136517151177013851364619890971449262723283326047918826354950229826901567057186030691819472081689674425958149803775777838980831352366040308473382674326281748578695388727475483398805425730476953198550512950004082988435840900561699155185211820086049921885590764712410947580413083304842762272011800002051693335901143093504447629992174315292158593370145943518433404053968003532510099084417848577223592651775187804578589642842353145552248910820687151872603989731257894320652100352533765777751208275113113991044755416256284997510759850104303170465764449979714105993940166237368130706188614239309938568341020561147041312195820255416156564740226661200186508122772495217316288196246539537623991983945648226579757590424207357509256534072109074348899019285845799580679899896902817710184303217567804876542836081691880057958499454960735044436722266409961481671858593832715960573630404680659298490950687005002580018655384781230903987455208925644177260824011902078943801789837405243501786979893890681276927599541090284015771796143291176211566994440358789171961353040914943563748191463498435976047067114408119106924761783849347802709140696038131477929243677971964262839071320233121710245153263772280856482381462728175880122315311081018779747962454101184705741771441075718731840693793228300596411948748948450128481570868294222897394078230961805396164012032285368589607759706705116741276469671687508595463972554547479310270829820805382262546210154844739064967457786542562193772639718648563416289577483294194520470455136800581945241774656616679825569820831073185529002329404816845207280204425614773425676991411850591611698863177804903577255544992239143387864677184037086443243060497931108686976397961132307861156338697810296720992481397215813690697660285346212008094392746602492309313668260955196550661186193290214240420095471973139770813087264105230380530324159345577768531386653230440307574976885266520899865999781149658978460101300408501739605886661818203117133289752053790750399434449668084412123987973752600385111870627606177787509654881220583319610206448167800765674666928419340137506568998456220813073147596940894432911620193793089642909577211655393403965879098124198351204417572164040081750838994424743005972361507734901657675826284225918331142721043946236906156883226597706357883720217079961075878412892668683717204434864921220339651745985928857463760518899003169215142304702873168706050341891035166391141196913139191052236651803133069777838941421049705860239454180760762244477276163234472300706303049309782755315340852682962201416983971028073066418337778637711364266476776165248966867673995930930511829521057221361022960247568401429368962526548446382203603369280499434916822179801762424449217459224982283462657812730408081079217832780865813226021612253645147975587440165535687863405257944445989019909001485660473588707750361635310539048590391224383932981240484977575811474523282614114899045734535297319469666617498206794665093066146758956710025721271234571159258271504029910399718401362712395403152084365812876113137855085083360012284348212059362281186424954700901804822835257463320694254732723331727263250647039898932865784951202935854309625605201942188071829709314377565715819166671599403085379411281572254144290011919298641859712242874318634936576398424444154534270540042617701160352395425333402367485194932589570445714416547739324417370438050090636379117258639723576681006033815445681935692665322624876707148864923524709476216869541765716747152590357524451767754004016259568595839523794340157555026155895919324875697644786498636620575667133092512860905780402343169443236034758352838759048485916950513590140098561005565935567799032924269207449678129476697448000529184595057307805185179941326182000619254577246234100653084895812099492367701279588701323004488719799629442129258662010589597556328835793607021663214147802385606672185996374407992644915348947926549749514961304869978931891809705333843390361645531440932755751232121933390438927167781629904566133092522441348299821035762548385951664578499677407022965827988317348717002978251762543119363938365968960852946226871588302935586428588812998247803295508185021586218561381628482741417742460949947478013475688169894249201286829983616388895361063462581509942302341877251336340997405000502936299875028602791779520490849878103449306802433997713798264657979541930773722146534884586411118158731732944685603028816241727830038315252808633624477852145149333667432025168068958520028494714286947354325434760370974494120566060947486231726124643738589443800298823310899611883707210405954782908093047972655358996431366737753768591673164101530389621080455983957393883532055449058997272839499677725072719135347796133050532602698749261980775784641472384335567973825231203311519239385341670563942628840235298097127012472744636698447363284084983505093980229644545048872718955340243270217785799717903420613953611461276307355946043745824667466275236585733489881604124790865639953393115430991733853332866235713985230711882083841355919078486691992225577084780419997217538873360889360535249004328333013418761308028524884470474953720968385657064303242288384395105852603601538143652656734314322874878365361794809460011919825038108265082992102209868317911136370360873487276367585472761331605989454801878227804574358627023584631564670976138162483259056228570834141414555985110317509275893622593257166282756569618812038081122362554754928368131932796375414179222747580575068938968441763473820634176430771266221670034136228125065461103451300595131230425858808384225328991503222140026808367645317991185719972019490525450291258172668345729189941453235581785095562021877649487869836303939831924447218493517458611916927793300981322457836342037268107957720819540720742993902846424241994975611082229844559445316718978576501639222248226020779577342314877777151220283434115623080804133344924243509547485113797904146470293098643616201562098001543050572034013632232861360102923628777964104025258481433883589377944134330917709278237671751348801307386407150181326661692553039988365242467356903387518683286964636131757442788851586317098288740256813441835458882994849216538021610431464360402305090099265188923362839619292492571186049972780829711429309573772023674086180935601794763746570059816264344094530526485898451653048880307636954981170962958203681125089971328097147178723309256510276551749175362536722863975149494535672736152932787982098814460047497150085580165821990373490276550356251251834637664420672954551326989240542336641044803528786560161107720793325689976404244313227852672211538415723502278123274317586072455907174729940034940995115177113140430170189673246064384568910067244084285832060672742941922616324328042779618159681067509787092389197070125229163825586997989382873988949172588366696892147114302216307048916376195647666782217141765341026360984209343505230795299508921489724285970105105254844960035772639626910838547848311657071423085727524162641838891963492675481312227929238929467391869777641796179492528724179438247844190913594396295119249533535664041024408921421254846842879749219124020862647690669490699722906773845123667487031511707169323455482057494703703633828208025080612157952576957470511718668663892179481059747975818004094574429932403179898995930693856939506272048850699463585532486164539135274517646886194920577520862698538615706891994155183417860833565882396380123725186512872307390066170810421175957761382593267155558195142618567903466991135887001353003055159697957393389657168905550373171747817546253370968911013129487883425394300545625971864232302317032114253640142084542157623775823455119347668986741882594649041753614980300281793927355296113747433709571140310672516982117791290245153909816154419412144712791160233911974073270107381923664800583135128468868283102644340370622373297141367050312145539895281084703787495689304247481316621692986960591791592137795123556059439288220060539960763951501857114333636666812509784557237792260911021193586027043556115377023463289053169044173438648637955120454678216752633569708460580721316462296719884977367815773806032377921847302066452453476840518117238395508868158222292643440556128390520841667879790331262767818072475355160022054700016103097553884967586639358891945733088263391325329528592236089071613505417223515467276121159119487127819543996214494374409038600375245574625398251691399706515633717576631128084978770423242518712022785478846466988111166141796334895399245508944921945734041172803190632466345699648526412405600091733794466879889364633986669863249147224348779943242554823200645840710122536003156779713174862060122439804859656123081280014687830106137172674828529151470700833330547663074093551239199580305494700957261766233135331694498722775568747019275754506491329883934553193922849664694854878871409395881822045765553491212645057423758701360777283170490217179095452115171341679519400125488127137721262264226866650752637371854339178467309471756936507718102461801770751230203721374510938967536117400981146064120174631170529968560114818593656185420658441735230009246767584623157143235758101020092352628576053072364196536079518928931490933878358798831258825609110905997037530914233054977420499550135321851520807347192326982039815532646857080216194199884656502345485059926681803966384162108165170204086819706023109402949714913122278194377812012205031027010556305224172227713499467787663799923429725637606678811245276774607951549919801130032677897988584624466887948996106820691317828654900871224222476219196849102282006574657857357600671155855147777656294347113874283633398913668452704978729210145148737860051190911824847771707835033850094800216330088323433875790320626175499638740760061420971117656100307283970690334513779892256768444536981170153751408603639053239202944888609824511514860260244080660543515516267036256706530489648711524863356694380540839012459363279655255402365241748514577763150167611011896467483419864446647139294019295105028603270910045759799367459398681328034452528113154181464391581199267365033834635725357547493705266689586978248461493890338032499736973995263023211058872702190109439830460484988819553455925015002008304952185512474494659479427252925246468332256105886279374989938775493774442225805457853613958826128692115854544849448442039965264827766068295654806215572586667525571573265967813639393371519724216227311569754132687139390947799322444684501388760456201237821467112711247695632955557403504950940272666214415721214771818445091371299493395222631004780672952210077782992200780658872113802406885410766231174676624824946760525293963542894807428577354739844317189681071565913210576809480477192734928016432102981057108960561966948816739530316531221748358434391298266401603989337344967039507430163582534625412817337296077199783199617923606284458385612191323728597048905944933718095731165957273321776181490633030572960274104103065621932438696981231948656060560956601620124089062256000086690029889257785579548114121564028651643270002205016168916524922260802529190040880188481376348862345601334012855412003390342900387718664576040064764217304994831482759347516659157225136907468389425898591680941396625907185427653515844763396441982957706308791146473521712204699842400242581283120613372270797619217894739698567425814775208643212452647847213755672425692927168823560176619689249088701315243099229780147918211023037071391784189861257492446272722456856697372238610819444699262177471205930590468686810359613299571410983101629458544086105963308792687778378656192805641335870130006260812705805130410524392668556628911716718982884575943907054543027938228586862908038275648220212624279432422958121558340595447422485261205908209883679789136599602785511440830173287727143344521776782234086647260384995993850609959758747921429569594815586537825234948639217497962807259634342588253632285153929806928205411892224798336326445060929426752247854547595399669124480622274209731679995748532395915080648433840268663670526623999887971269529075502259417788838116333122856191630667618901365629565432952227375980581438405487295316317624603926996153979350228406771072871833547038285769184572583427278716489875947599841596322694256237959772876710429570796316275742500043884219364049256289397264905366577416562905879697333319392611489945168160679117575014816814812856550914529027636219219630459463015209466824447020254780938733236294016511585361480817071042377088966872343713803776821597139782379619503316254861210616391813254473188529905275713173821990923646342754072395298754641610416372396273260169837697010707717168225720224257785545526257651203856784479128812655531253819917548033230126662360130684318941993972083141452186508631958603065489693437019120150217509183123081580306724023121187812670124399657807971745887744084318363082342123480461449575914794635736175002960827964012364550990074142396416624592246593602654594493847661629632946570613386623243076467169215682744016444717858849581373622592261169598397323990767016553770710776029197618719566601070598412007479354188445218255894037059594454326027628741207016964298278432977481510642090099380378208531081083342016139233747417768902601835094633658734637828014825695282377725895474966548350271247238680412848084846978238933547672079352948135055777277509541505587952318933354668093806188104943805347581645908476930042066088531276558087618448330768270228595426364874992882966952687995201790260549039957679720278297034113664048259894584293987006636138818227663417489839419276593199762848150151097893902673614977380515974432266676220920444448607919481876609616852327402239300987485194973321966827418467904021163299604363622875989711776483838314205650509699541007932519376266022362620206205573802091181779539308876916027693156762896899117358764849655763457908252314635572734863087532500784689695540233798280916223825278821093782295297121070274844556917353631200402048782307601909726836806690069856714989866400023456390750487408693289091718508388702485334304658497062531033350192679403232601636777615312034586947810158594599117847400351320573669807584332445448872157562966351171822915007179696532130059507121428250689233091901695264862044570595562886662292476750550652772694592658512891464572636420241619283602334091300926455145792242493587597875292719962496666884651286992923258673055051717594077104554569234749771571877643533763485979420690076728814244899560179776670011323473628233416579470862249480237747764144912522958236720689372698673974344485125983498909469266939547961437634663400288267103628863152036553688142742748656661744480306583064834070701871669419621341452213902639678250319664893273940995539552799922601586927642816614395478083852543182078538837898156795148464933554031893951202081432510420744127246557877479118359581401987279695238826466587517088968810009422114560703575052290928601580104639961948440816975431973344506507959114991170764004584889876855710955373887923462514711112773297199508400183499635188952097226099816311103792268705803189520276613631445798536311408214604879158173512858310405966958986275056160031164152457142139587019006186095546810535155382483960943454881275562289238256024619106406029342397646504172350118701460998155112058523056708745626612023127570225505813419975974923864380383482265034479023281427481325793455373903902783310274620956907988730597667252587861959396641431099831017467743434519082202331504499995076704953956984535113047830696796358025427433233099337705805723398366106274717289121962293345619140801312174969785221506553654175609410833404397300260061929720533267090288999322271762607777501995244102032633625066398791534465142456610223632051463176568197529034423150565284579159402821356553027679600992735361474619726812445540813419904091802123335403400523062947676231475772362482725886365308996924861020624109565111355956631686342088509518524873801537338551387308760868128864465584279236054498812125271373433255173880815485074851454539537531870176398165499706960783218666701243185201677170926040955369431132549423664529724520733781652915155619450587589273260552318934164881923466802594981080602013961359522969196398404322076393096501746335771306239140469277023189427014250564941869789360323514413475792250762251806519254778780709401575006301587843601072264975828299969943127118920381333710453716995132502970599876655605107726183038762639455902646069928681042007595779388492691313453592743957536934211272543764437787026413082219753758674160930316497438010121953155261089349472013583891477496914074008096045296277974781073800584155927471558834329340532896364221749768151396321144865357039392713403032686122192540367570713910084208649374047534784337185941241536197958614346138414406667019468326539087123651255159570212109095008837830814234776251521368344664948958436211200085059776068502836853355710237732189112581958787141804403483136473022184400364254938202070155583943993738502125500533284702969918751628917172059075124815520386158075246581545293439885925902915686215465084960452034049989438230746467387511209018054974647904648877434357776351383524992572052712407956361293398583782692659707756220508816608240661167368727037301594530650702809770968792460594761736622705442168346382739151440541047106112830785277283923774271521086315294347488924125348109974465662122556885625155971403627375026465217018715333995839882982332494135536133862540670518981385202356888016460272285906155706117552587630911141784739172463282008565140057160150704741589009954811900805721452578566106916035469148517792293818791498896774192651290562705893653382578141338384139123417020236114424084784554266611217658442876744941441872559994555767816754866592292904328948393318754266378866021421528099677338467444624909689717335750469880263259440701067016973845779045390353629938775788922302229762807839301537663446959796412601981773054936488828902150385860648889318666320774056438078564497645020902981340161855909833447106036650361241288445246945432975568517788329360766299415664494104073952506895173339060478962085080084499523433554585311122637700990668817551641068935367371491839676585616961447730954482639143988639540085306344291230989713030686601684044685995782810659523670483862295099527324363490626501063647910180190925065838078845177384956816908640911109862249095482621854357994024759199298536988892904337718888065548307932206233047389686158987455876384772713849316276516111961230433019075048032149363778703811152224558842243915676168796592824989387720193993578839286756382310604347079205771014767616969362143849914185362811960337966369776695559125945973356156906314853859173894896020863750377518945332063669806829883987202560991921057367514906636011228836546910670964198981535800244782677784068549002687202911987926026817738667752121900244395474973915778800663529614731602356778685375233624369929008906264276294371067802483032861461485527978666119459579014425774723851322599148061537604632072786952636506591492007539880958726316822814105539333462264861973895755455098004558759855941912372567294708907860247696053980614946610699391563660540213366090185331849942410928623214691051451422924729537294127513641370684445681039062638409623424027817165491277116773226246849097734524256972080288545617642245896917560781856662178799785923974813935802595579775553689175895937149869864461826409348784991522631233423624552371829505808073728312639757899382649138139266525395378909777863256289184489892778431408552233787444777927602149701125396415565606053892406839660471140590947468182425429572581193185227516219370682017563437357479188614784338208524333851391222354845055992621355249021363318909450634933546975447601761837500494605668642200311587312093562302035922971222698740892817352387048126075157282449756936575135442534652507318192182686923653511959009492797788093029035826233120647128001502716901273151633429610428183517162031351004533842936113181959320370844720074393944675360140675468020693282733245878471541834093946895999801146681924984681600436061223385722785903056696353017860881884334119321164681948780881693125885930767043734846811896294181933313685106274894838137151565895631032386999423541337355008209211973826656495042291525685936508503467846545161251923455040871903681705893688777392425974995897558409511044175666080551459303798417348438427296051719591512615590783289884947550299451816215669752109494123853700076614501042807757758855908163555229094423135045426793906253302412013535379498553483550027584036646686048414462023954513898294344244374614259015882062863461631764534401337208293234657335616404814456974727920361270180515356999632211902961421244608812562093453481185134694132186899575871088903787660193290563139486941145826107928296369122107061308708834223472104674123197886208493022110595747543984722273212330543021021753126601971246176718042815701692318472142312201346597216620218561971816690510569536334508001083360850172541774191422916509794554660737599351592925442066299880742701994691100383104760861283932959757878928310337412532751491788189605372995925232043569386402139401815281806362315998692410947262615566965425314822749810604308574597625238898577608610021126231047868365349000637172967943312725588230758143304445950871170788501462908407914565705472458725571800694106680625038690218760406414797773383032889883388652601825524004567092278730262202936456750700762305945546987106088295783506750695292607375894503910861171028931476598342596589167548825363836223236992074948695555858933489522725765229193588649596606050743494203741538297722008582994801888737226335301632041688612962819159935526279670359335225019136822035414096521852491712642708590447739582936099760285258100698283340417931632374246459628345700647984030438820276200865514901344189146592346738010533909832494873964073912814922464514049673477851567666195693809958399491933538739284849782579700595638795340247939401639130869766252812904408499793538574510462818349272610141470548124462494749733288183152417073611843095108866767261532512047316400195772041279495172013774241816775727001418341946869351327963412466074604502786864398928007944497411575283182336562420996245174913479477328787470450671487593892464566343258381983586787522870950556428701958270670200766676659687890304375287929695686930009947449916575263890329299615140355664417189893290166518694421981797691347232213761008949861391949304108088601766551946680187257544000414358499315647493009393916235544144055396961317753360602607502533254332177189045398018897181110021785305504586091194040030579144039748271635154512149040296400675087225388368322527488757613512056186508642464922003875826943868710964623431754054658665770432490782491095138169812779644131057094278288289658733143462442383351578985835754975419019482400391134242264736677009773937320484735026449768776436310695983042468377430000116643834362236231068975734097051316895382591592936498599547669186709993135457775659816526653188290127552495769890364537845620487488309075757472950857584294537334127799178400913553344964244258608271917283150557009375262345516042961740103836198171359806174890402933720642748125517777846660799928944973112300887203801667046885003332645682089730257233456800252293704065972232328244641701770066342290001779046905417473911315911096619889817068939565118880105617745297456911337963538434788256402180880821178410577378357882561229474275843574291487850475649879540459730029700466156299245597657749268141744250723569716208849217365427732604600065556066518666724033592888772876692260050294631010695160833048282286329283470131749958586639412628541815208768416710930123818745927379422659645094583890567319983198289630745733333188086881348117102458779257356984375105699229554110462240428683794420667493117278176996195968993265791274709153507849423787728298630981846617362563467175936711475883393789249306807041226248357200062507816874981077000586530817797183727923997502828260796055465005983078091894654384211949202336177528194809652602917613858255456503453621703646477052892292548236503830460923415449125370744811939973121475280807210186517850716445406741319994659498963271837163467868489550200176452641236862550334715374958089647997296967480627682074333571597785678312050842031481701126418106278235776572478514891707801379850945321794497286304239797583970955603601409039485937325429686212318739376364681553924358604869244387731591553927752352045227949691637714252962148925144523952760707129378663714275203384210738048805881434902751513262333498478338601752128293577203543561836460366449971473554990412918003756971325252463954895186133343690535321945123658396639063368876601874810205173059208481739586241630141469925301450502011182215854427970951008384131831846634130051552660063261667829946843210564960625788927131931995507349513858035631724487687886565720869938501181267672086015093139293625477401609475870014121965243191418953403949436481087828868408167518959548463416092625433466737108164815830644653404798469861267827121006251898413803126366766697332040301906834205129816851456964184497939811171038401721758646940988337689504706521894394376739020169088060015171289490773323499217959010707227233296927924569194789546589272780183185161699262336044371245970599213584535727712949536041300337448247673311394986933900651572572899768317381154036706506607637857745259977301820455780017607119672681529303819702566613067490737462074113750495489249641492850391854364939720873089752151217805861797489405350138867523646546621567803904198055946265060592773304830657250622564754073869154174777310597431314287021740588317986447052086982765622802343281767537099638749302276913651004983396115054100107920306590335503499711029546383759397279500938230464479626600775722210031705609177098430166811202645569703762747446613262074048977267268640486707541025977331784316605542751515998012463609580833612716093841666199635118344293461736606754717669013881615979418201285527044499544190914908943392207154372394601399767707326051238518413358004322640152499701907722254589806555357552214792284219819337025238856455549898448068979878817202544989594614505514281886354109609557286560260436600282888605965302408262267443974294671738564001062054883011144616919781677083510306919913296006107137254043500919139873542493591317556448677947286041213200670646243701062643775719480020668850417988582754186400392680267912324305478007979450096780894634388692877038166964083362691784330872957169284651413599650249510697179884890155104672117015972560847271272840261762572646256950776433059729390123797712031853781954408950020962708123462949235230493455422950105866611580373635952609439555829026946477231601244366224921938518120112088678989343206668448828208149928773008938410162477061746161600627656792542396517935660341089305906589677953265554944373785297090371768029140292041093753712473709352009983704901349145620282851833820504102833207108254765434140800015933142273830694249719267572016171392607291360721958437329814217244090147543878198949894623962995930674165053044680279376355552075856918419647181801076067112321879599619340560365486371297287738770025670742102646353887007659076407110469895943423307289627040423915358531626742313082785546175963989598547101772730253830221226157461411500807029533831569843958624944548184867502491143872691598401733076454808976673984637723712562389771269359950313195127744611074283621769787140375709394217896342760529418603945560124271675328614429828308481138391231870189804558160037851756809125354432562820460396148703826181078652656216798399387408530359548112454201449414251199261093310673315467249127270229907076091235996913370385967724580727261253688349783171387914053882899380497343077881702991638929322084040954612050708408569646401468474691119636447497085687165363810009870912023293675092406020686661884884163869910059908037304542508660235340429282159477262795338929273303568064979779643686286336632178172496228368318804466926543669373049563621077238253364889215745509593493472607959669041635263328128374388340571739788488604230573260439068274848907791928157091602397181524371120409149457760524788783360126337793779419642573017342453094223038050968371297089323265473938153627895927893084785409956270494327543304278450570134149358361778085355589424145400491925209864964940513521882220542609592147197072308724362455215387378162087387295148086601925317813101045921997586378220618665803064027865010366334436384210722562284544536576180202116317537621488968044249197110503252693525208906624263391318180294845345816470871629654570855661200923094074646790771794802631259672532020380865676372856008821574468392020144735171856088355679296307527237816959324983504702513747285069491208648740618040283870511379706568259387339208681345863058282154900699633860580802338195381854551296853265476689498120329997563415085243222845432252240686390509161038506088689833798808723795411968916180013164107577603866458743522213304421488746872400591221582406239058074034525268287726548131766188255073922079198174825826319668036858186370669023492429863208352182919413227193466083034240839030317272047125326614456940387407051915610177004277822554863275027674191414867453018747538775433972466645505322695933526377515177334584201305151922753732139788613332715288081519331779684062290895726543748140601507973715844889430634032935312865161966412862063132487395302233640743100469766098409747471840717474199208787869872715619628788116411311301938414124908911564231980293402659321836909335160411275453542780067320600708290003649853460888248408367452828025858305611531315271440032858542661623259896235745970993914183714363575494346046926859198378215774572080145566064744622246386006557800923071537867363749590513243677445757317921356303693662964203099776804066162692162737695577630545125304144358657772462435310149287449212706878059570997001808432103710686092098374347007254014339524903980897241364321721368213965661796783478987319025087708749846393702394138902071421961677277380921632350485642387484583598434313862128164756588398455991338247301186328471044207127596117940823620127011951427063146873422675141426543454194293289960218183024438752586648346458681362709980522379377005333486118816040836337999076911251885659718826370240682078159093915122890330666019994610618300382744152548688617810944886556760894280851441457666994169934832525445841234644501140484282538727771886490285227292653178456431821688401487154349958340912917660613896858426794317225180477763961946960406601730911275829663642166462495445513039899580730901212170066785598141215451663283962716325677083732682224031134942719025945846541613298185697002930676163832441043600804498678862556162018085730896768869466642025465382744880218870463521887176324032509380231429742722801385908783808868434896753768768176856431448152770083565333942611000845774449589607811535874919107576704284512317220225924797601296667001047336531305185679085512525582336317115276174833512969680592284391423477868882478102373482231412103469594305126019302941745674596927001663162728994545285774028198296405006907438549972705065064899544365472764109394132079841369936280400787983525319970255655621693499050378890925317371266313311441796045086715612604642692344064843958235437298596058448124814342980376758661781615062991000764567884889726250215571320412948885295048077058015297377236422562717310043940068586921914121016498272900005307239571187383486574291191993264594746175779058860417179610248147017887180335879444149755033537293129320033015990391979987831336622655152145927299815824076551607807876675369321507299698729484559417625687603743075350034638205714326301366591788587437249456566094065947214457400931878877202518154842003874934023839433693099546589642677463158793557409423514649282314231401793215911564597433912896755280916203562841341307210475919127877974278179012602178122165063762134656690043169951125229271179479982431610935473461348770500499163739394270639744238847655981414942234854247180375249635573820933602235787872623607909520294444185420445031884632192441098945797220206108204452817944529736384290796825695713876989133861132816162873146871287607704824936342865854419140572715879887306568176333507906048690763988068192337544003319075651751419082058482920537820787442812762169853346511189527700650118338748069590799228341513619357306543841519790779316919899373594308760305245593739027024864300766968077862045173724534931155400173517160840022701007693151599294937892188803457067113943684084079367473222475396221663320472044634872430090052410394486401778488374309654945211957226831100790523227600877947959395990017116616888752898676530084833495741224221801369491613985980287353984849837350735181727877588481689069045331762867408660472390736624472009760028122079235356115085665538145965614762164445720904856779871933434442432770298230628691435987519310577077567183395895860111665911986330177331725863138910355002591126329282542840850603849882656853802287271637355772435446269666878110332042434825080652264234131985151970999016372412846093114592582096485309778359804901617501939944638216087166365208010831326855180747791585511324103106804414075104743325891727172572240930812024497743658304684437390449711656786027321520581126302948443197490145178030956419403106433934052257760092643716889466772249172293958035989147904957337938311838048106364161837884419912004778988808860129040465941216117792136345792117104296902093800372749433441494828302408097856897228347278164750404314533928782450342222797562036791249941358389188751311861757073959740717370457059881925114872315162588263988787619750171190026576907432761750350537727029026995118597551972705884110531306951434711276404468829001232936545676445541971947343941071483108698612268966733204800871235946528415672586513973801691750849938230582684183279776464264581232497594565869099681481838714962333729594546186645045480940150816013021854050378961955535750404250444862905377906125673005097925348934652781741935375546904793287183847219728907179443068732187606577760437042942803165619683950596944102012712513328207714041718882504328563243891009665229245143368471368334121428980282518815780456846404206147266864222646496772546813798232674596970963113073743175526821444193204492196252779878428512640361307774866134491488230812381362977738078567174955731297495062576331059070973554771599190542740320219823859465844449043074414930770380700701857628625241146198673091816357006835669358191239822563689351865875610603452154527460883035218208138929862325753720970078945489531226808276931947566553819749098537344301717964259265207489174863877837808855938413253665125352665423435955720262642907788800151218878080544903086370874634483940605285199415277380633058169873699767921008098582585835278771477342653227002207021787978330505761344064921902742367310746196906004218577992676774070339880265960882063329409438516387931333356429011809771681505148422476132602695322561573258999038690282738377406556213250121154092351037254590259521936971237130876451940582665327090676200425535426349811901481550422942010044348912703706864071322787326578322281313268540873629437296977194430974550203863146387564768172823733904115698940997123205742492740309276518767822765629473526341540272291578335896407298832504532824731459886480087735293793973190962720149880288935715269109292757544288545152290376376538256352063461688168421450195579074079734112243900050260494849346167067640098123610424816320291793723516593243900665225139642774155539286953791025329031838758986856153244336539404485707840825232361048470625687912297394268547123326352874168764941142735326170442916292149506288551374576647308164972337806180267966946323357987741997240678442309712209151735519779656874373719163933768466808462852052356179155653993627642230339962243790038341048287509911354051842226639305091677797668356715819499078730128572168879508659261146724295672571345270949924110456788558966473167669233459422380917417752956232982987812317982520446991599029232384191162786071006953315812692519356763243406110525603714424804223422908900892031946863674130762837060531832931292736456018707459633122515660920963241082181320308094255139993929538172829325968678691146179574190407917133080347046291819646409958463902564211453132986196602640478941401221270688984164651271048708430388238203316682572393771028002820429355517938738766747456138272326447457905301213732987295629479640968119404785114008330079862071165816247142532019293279996498887100205011031594069149133251257342127856348960151395721850524425865747989136761890685669670931203552575662333741308700647322374483972262946445155209571770132952285276433103433257276350170481793030014757705283269604891399506461206557761920333072014249199871260682078500273581435017006848666407368218275291062794631176503150785071952905787547884586533491602946546813434204410986299368118162901688961184140580217148622319480578854062306253752458832555120596680113631767222793813989524615937610698184476759346096562617110645466983146005076710193113372220361899972335015962468233876466743145323746222702791102493763258332437800504379124525279192358440274612459249333342708440927625564950996836013791506741966500661399839383655140308511435214412612387168369810451118264932799965760529096677290385408445636957661406476562747020601123929451691486305917617646476919724853146322932182404218023591226416648044448759190573740412117290355333435377452074084308105449279419618526486486431956581909516793403454871865110900772056992254953242346597779996794701900739473799980136495634686865134783397651623920494947179581304795066336950177751347100545839045132121935338504698716784016249329126536957099347165445153911422209834194025592225569073221877185679238598332957201180982593329477889835631156690928928688780494123001707068940043911714773950443045555225596878222658547549997232980859197822519269073642457155290175974898026476948180053023107220892271518739042768013895771606787214215161077733205902454823852675755092463227819255943810243744627535994188002655348002287558194784745228374437503900419997474038597837497155008331272867628726784119143164730675486464745595810055872581644281441712685080634357631393683623328366993897054169500611976023351288994346335255190443714335797369829152488464992232759324764196010137904024138894747873096943437816855837596805845037301465422672437611433483986033359001783284442374336199092022436025736731973828504415385485869780448489957748891459400342186636023460339278671824782187706644794020386898337047148290422276365895544479247882440618265024316785787307527427881794160238235294787724728111292899913500922277578150030519430383641339080168924088309785229064367264663555335911460621036610366611388887545853472278276774414180444861439150955371301094046114995419185317405770020492633671109129769474439998546448203363357595821975486818547963995301427803166119210644612798701325216828651133353678079591589998255393063339021519125861601789416261923888317962838782393041532557884705801789186150328292448373757151826886523491003355518939163530956345573189495157117535756145274168653691333749612531107550709308958535091966883987843963895044870591888387627065102935669018139778502333418523617724809960389696350056639528413315874879191949127599371182410525652241015435238247203287604772106261929462844342107500065113270968207149553437648365769091810058299916849089583663667300705458491950356565425832395342998224943375864105725963292224560764791902630716824088144444523645740617217150628708710273764288601155086534523729241052986107743273823371511895899670634747328126596121547364211525000678216847638289146196795062946926422552482254963101002904245284422409031861245909245350083736969838513741882614878260526545140521662881369825969663413287592812544122687323522068046025088988051910592755326837869721801524383904556404760638807321174359527021152865618814237505015003002962995464306097707687230832070281651356722014915091935831436981816994419416375688415610887718969766446501648895920611814350487462028439438961566409019318021409783500146425401699443630610828251569440270345806889954868551126189836475447753156763025934139291042568443857757365876042334671537521656184208296238504019306136343476862252628088494180633530054468759054900258552450513091716240469332183942529018349758354941331070836217160114749209931403929089103641550109266000685215281233158524897249747051802594847271021819876629372585863618116074755633954071976817652071128167310125175214535139124768357791023488623786738958427543113637699101790037040119631812820033705243273504504592223434093058817681478058115411564329677269717404359395408219304195542737481717327552742009777899684417855672691049176340418224471697578966959912494368755146781111095259324239118168474924995000342311233195665923856213310853542467346221095998323791868682040822507570349681102384910916475107652722790302708335521927361297811927808455839796252145189521414377932094595672361702608481688054760605631393010322801421615863296374216043952198170897077354430318018677585357029100198265911299524461511650416064666271543945893221517102735771452826001097691013630016866018325550585581172905621252198359772551985854977059101045610690207426723623039443381128571918305457856025803482701470126542774048617774101642863193227740601184699610123754183747539839376252003585728353294943607698201801747627476371760937125197925164066636920652297585489258939980112877350397832667822862996555022018341247885220789660876607465437625938299191880879502649881380004876031892354762284087329847087858659092266847724865251572839649481486535326884158726646639437895220207440520955804848679175781291073133850645284886563768588496943830933429121835066165403104709460066550842908671807458136091095263481032027095056098114673203470573549192848893237822415783402749430840987793188623614287273167403980546101116159294151447002287035373071338039967036097313732974455315599943470242611291940092311256742067872436441747125470219755500232605890441800698632186925665006747664784625608945715504858309978369473956913689562458339739987758986991160721224231096536786812163708570186773319922346641880955407795784371288759519421642051877623064827807898295287913001997133868684287172153839855253546620337855259249116608622824290253375597897413960393189252783390136971286028360306203931927340791360181381703063455412577953377023235654295653142346383118894009699239598001207159714124759535348392164855159459546164976242814324402412439071740617963120827945402956294618866515962649304435285918636536703737060206485280211075460440867867530985937097051501347954164122612225100182470000299200424465277452096279865548414521724130016237721488708707466707630227131835844706316046939100955439257794805197499827873320453218533600321478526243683728457215837612264746356139370129523692064099959753762730961003428424136399172589373536835479990369762609768623125349890011426121568398320690097279151973861704496228157955915682533256921360978067881846864926489454123815219909494874128308267276504568094728912405013264736914851418492004511248695083997205674489615584526982082864290442549989460495952642572626464507872944922342040574474262396903367534505545029423320895567818709237620577075582018943532823525597054928386833241489284866965684091937707719337822274118658278586577462450279888469839081296668144489610260324982218323369029281996185322608723207238862281604790392688337075375636975522259253338765487247367887497550561689679773686914767624743098193266008988447543988506314016664141983185177623812635762888468546579130813303434563783515103411398943132249455764602566950745052498105323277922816035676164317388204805413865615609547984126378039120670659462946221314384046328787640421737372101939711651943690665914725141704611678403867302960763782126716964101903939212690045035492988975472801052525158651452058301096732350854904534625885164305368019835031568574253603280911765378463371989639030879446149987611650137046001794821067152782493944447659853835787081034009549298379675229175965684648057087162437084629416072677862797904139265960738749267334432973866452851965847565499749762594977331573748587081791802214264719575655851025842973532165574911540509678406621016543132927395609046772235685762188512310017785796096090939987611504414203293807370910372491254364701985540307275742463061819254122724728346814371486834231554636131061897443311527236914983571100136160032857970022765956581070154671959598177991998071841967600951374748365246337925363481420149682428752043584529038419711802290181113135789040101609706905151756570707259097521031300875152355871618735227520010469970502862050867104292047719676581684432107088758627254871683386759070801312908132799217529786187235571924606094098011106532331898092555927400415024884284546121451920667380633468526327448566585443953122907439122979250393802172625240725243376288705081072406060800542851858900058239876824621019565252083443215568056554284810176240122113150816651622333727834223458638552878987296207630332480934659286824737880286963164834906376173124485063521075535917379613495600840281060850179723144828702458479807552937087875844394437080006649952547510665826853177515231641017591283329373383419748416915288185635572019293788568592756846891729211744273376895758964556659924917674372951817464713931028874232794164967896716349016444234335206977313209397401046562486029061037526175672315385553280234258022952934337141117570971901327517306789738903037503685162024313811499178907368206509330023259740687717457684987592538186869766763274430673351871404993867999911402186688539819358743091457434145733734318468392945910019274224029659889970586140343617502481141683021132968822816757499159930198291913859631644539340730095870836450822138810085835186333913496810350599074127586190704961577489988613981160695053486954404803536913649204340417480901071303581412875801428766925145154361086188315491219722937558088994354730659102544886927862508520681786267340558555416333372087898542731570741840623996033965073380235252923041838506308092802129650250451175354141018251219614611221497103783401275937735135697812306170489778313731894168748243104743926104859890084704779836459155500247682231535207699859099254849728862159806556761177664513647153167583147669014235957732204124504140811650953936068665229647569214930918987704272458592322676890239077431584931844304653177311891417136647635668657657958405956738117418471209483482825717531783325799915966277862529155391711806717559984994091441994350898856212289670084581005509387484614323345229919143578686786159978088451264572545042853245858575418769817979026920987267638483569649285830175315665259020874217556617525287915632153936525771363181996088166889392381607272872104241786537035456034231776742152083479760373517293250406181445592751912816861200609050971185850020239278325119450031409639553931095471609877639476590705528364322466340757855043994839048934081890573657888760773229108896975038159999052581355041504888499610101997204036601744200131232355301359050562404379409925723353702486708049903336179405978382077859187230229955044966586025653280281494952239489053319342367820234181651802460639450722105329345317665107200298809589213647409773694854721118402611002095157925014494359301653668062551262046183372798418420356624021734987166456712964091219197107025394147790941277348725915021509650249320400844312249584239347381894363482455388041025121429237949307689975861466547118638630672241315241084192690838084862794393160210327517726948219018088825257631233405514792826508079081170383697583298626456462320149250156469044699056678713072581458623938055855363409700897862989835923914241911035731571260934255649875090447998898135578684388686071739503337991593543712311280103359462307798929819828010608718445448551732273289250424694684911482521480277942308248294896117556815680092579562483628776272837695298116506587514082538870455507867892675301681916789464042009756513246154845616747795926816541165761181991896048511077833392096612866970287606474615806967687129251407435572706255831901254232359506930783090678069327743856527570853166032502803926687779081628931771402186368912680354722379281418989223047131687753655561003023403323504968035983430050392554098393606944755278883210429103475834874496132670461227455955871394192982176637639187566182792004183826607285145126079640400626021576852690247044575909131727401595121101109367752533847044815747029144066236085124856613361226822345221654428895438432212417027242634043306680769210477786685118631167164428386342625418918462019786051263911743749117638539706513668875403772036066940156081796457226416207935376755573515280064680005077738510691393655802488872624744162404063600527448097000634093832082639646875035038303286602811561091996773542031990190719201068164812985166320763839470591233802562273929938582641670667758781276781538802287678603487783299882485177503758190336763302098708460845591985925880429069407198487623752423969098019015351202335113004498608884766867886777109875945756284769424308947225315065848492702134560061576016791575753269792137705393643841347453306654114149672141733061027901101362930274517398926990436037102235953674176807545533692781570018256603054309675136683888110278243468924070849762434645901663913509178313472609078770196097267648368733370450634220538252114833893719696929476858776794709424720164272834970030711462656109426161968543987349826036874904092537796259136997439688250039721889483476801736276399782766929636337229048628643073550279962451268946676900798697655596226934332415692205571995140782990434023440597549268101860622264353479242315453342956106401645089900799690964259389020175682428508598483129948947021261857386850753257647385487738350163474551517755473564714974629688889957179972894819224917631612578060718348032032233331292135922311489216317497498112832560061475019834305564102114324855626644280706907918130842040666349732549196729231437518363792413759305825118187291539609601850275147454591977959519279092223907660282104095097842485790725256458871840123910125642206699097108921966126512368798080434032034629829377968771289954434028181152573172119062630842235638655876335301704600717434625230929244566294677652450675674225641433872866916225561315997151984775857010937590226687042132013909040646697652113422521530055462055946247191194755950512943496689865820884893118341085599491328945841718511786930500830754541016729230108878430849523736567963061282503136749892513721997671774438698459044437994707664503070140906207952628206188067561826842485354049234057905110547832322074283630555678737327006414115491140080693444425011702335062116486283814753576914009813789009035319905654740604924396280996472085570856150361882132898840055998110386696531207413779754270264631928978161588872646603895376879310452866315602333904280408591529239882854174374213764564398083830707013990628717414509307292119377017272001355971868105348603876202382997118868676178609585598836083436873816262518837665412831219163323092682572157948058658936713225453175519265968603367024881646121166559244538170683029852632265117038582994608703821926933205507733526794128692686556223304327621268797853821306939995022998338231501035602340292610512251368364500076887378741909255406540657496864850148720581382384013197727368055042090362994438439876630858928915215121981629219269401747524945766291789337878091440249914773215060867435218476848722181836547037449227585887134258029312138746825601640445935407884797886553535596397075644994434805424038645827271392994895094249209713587778129611173898981209682227727208257070292371776377967049955292486030914773550742228368040217629219876106941492386516590744226562158330054461906924929513515701494955541308085720461592426133541236919125243451319351535546653579254267263910858400682725470140773879449905747180971098362176380404563063530418135888162464107629934181931047458749083782130388458433348126695803160966821776471956725194366308966298056925921377052844817551595900546976976331423492494257798907535216816943623647471073636453040476515085985838653651784007722545214947282126519400689639713697097164642447716795722479617075482064854761778822511687090281359851133582759359905360883163269252743181430014258618322571788455249189421934037382791068638878092262384726597908760251211471583916102181916430582768227077539779965068190639039622177840053748689436256305660892662073717568237769867236882256209839307861585880415170844311918408879546752671413083614043414055093230513177684952375926275699797647887274137141555230531276706378696220802578051694754003256313533468129376035689008096525186639791547082575789418368277710762217150109375546809151787161952951541388502724487047065488984435574283099307726928884722684450240386391267537612647396095574365135834577846610343592890907698766915581523154881721929936281813766075679280745582560475933598297016457645825884731781594967510857644385724438026479698105154292059120251865344098123245742957866078695855167091767067078777693416773048989260407013117816602647510352824642654350372657987340251074086345399913225284837919913831237164526148115120435175817098835764186801401709854130597709686440154205839256991591066227255725782221193478976922580041782043754771136800423425902972469458296223948049104602905110007242836788545933820316819755507862348849995236571746835116651354447955121605490391888787787414266501010781310425591141219092848179166934402611528753633799295188273339473424466217164410561307066075458490132782632894109933434320745312166697569709884651971908126373677607429077878498838376381916349328183466063352668406654744046033145309065368594848201804962374551217020735617636893909970924082635669268885937624371240910185847040197783042038167967722018783407038397106951779061601477234307822481178850227968063076220960205699670316965934552383206827604353108805456393822104844269150107674566088394132837350852729393694076171753228728982802714849009864815635088116852357028371137553356006841876548641912788817834542066830509708843710554421836448096316430913449165506756005710384063944603431632093617236476620002305317408883838703571763114539621758020780514545157443379731987079782183184710205463972385585344672012859691920094539329338893260397962744410631709561060483692346257621281979708854703220156392545435401095257065610007770645990613535942988994270353868421930177798307650197908079555119357170756079962354534252538703110750129824321809646828148024491373257019042190780843230418082260094527983363676772990942523766919307554003256451352471353287660877918850054206426121522583289672783089542946472619164429045315914768727130783171280081183037817657368286797437143969709362110122601004225320687326027852752418697690241245205846829355891758458809485473859257117507885698517858143833091276433927507057519065860017134627794438511596616201327417825907067643708989893289613249382449813097030213657504719795281406239557588693420625310412673785979223735375710024795852141555895690489961370943313008932876619584723938151931164321085745856364681819603521535924801909149335867291390587342501357454858232966138634122233795365814663027819333752593166796376339236844418151210297610475987421335842898698836839345129851418055173647364185882373724184697779742364076869886747027207090833522864854782570823851381143479600002882862484735304427263514270328183676133359236371507547205702814802007843054996629477214566036338245298161170925438870918212612982547853014953516964561415056623967339268590352264870222400642415601906901430945028986775483187425258148817461594512317823937567817343958473257495833738418701567594274997586783711841533858904118227787334862596076624685469193814533587260043068506961944560870059131797680185760628126540191527793260925134864177684309102464115518322246516332248063369957390875606044824882528385433332236319508098233634944561125148543530746697786871470905002315941792085831880446967742323691866774651825648733938284928265209260890963851438290245710711855659701026688192928216526102998836760969684575094600129884679314087565034405078737599856171082862823845024237282791947465923404237443018390348254434372095062701847306381657953647260043105587661559056430928088444791201259174853367515065068759016496897730805963035451188454558606282195971194572594303586436519099793153862671624231814582196040262438592530726432767393921738809397464206717504365492726444352344516504262766486372141101057333739893887321189813716211693473942880231855742013114551584303302298046369277613673112955820739139410855163030364859722539677973352389172568084090228503574481311211065825993867519581093597641761158350677945510948049770195552988113215741111036298744143958612046166554722090332223075067620903091898985246284986389502049102001385483276664035655815500444795567691234324068032402718123327294142407368541796133257050582871062021591701853424612496778938066255654521063843890458645844118098997763595157890280898315585329261369581414093881324405252467990279694514287839223643639226863411910693643033226993807059587539384790305102666596289457270268808923042236557586422532182715173431733342752345147592801400123462155795028466645226666225436806731341219094537744514007515674414483953048183502344921163890856202531233962236520349812935915962495051900358583335784798395204032586823737231848706232241685881621554635663519893414212988531830528008678673815505151694820033284110006338195768482051951301360152957252527026452359199312162794095567096909394059558439259175336844061264838758119287236406969041319848658870781956246069645507313843490931518884456697730305260120402175814947857253002835977337920400203761906960259008371490472658765838553940830425691381991532062182339659792685179433809027500395649056927990497125161284982837131826512796632628658325374392996393942836992226155358830799568424734362303991309623103083194211597098048535617441610661827656902773241887268670968074306756821483024338288188854449619544010151902876409772615493456580571672548419423962753693142421955135452632441108521796240017253350345399079249290300819996370201650250337073201340877263992811974537430054999978606540808508236461306868335671657384745333387947254156447260397774629331860525426113776835617693558190535106931178624302253816968896709439365884406989444084784396559540181236596492839293788664092547118143690148497531430817632674607346869523070587752529707968819834444407899422082586057488526929424592444791648050217014916297722276432400886119932444840515800151813694250568183177201388233627500117493686484280174052006573704614363836608978185625545466753598806494832519310866147347978005969394349934089677705697543580383668928081154743539944982702692473986141483516329275745331640111717122255694227186405865440563169214670513004861157034632038581611583957003594312426671369845885285707513849611274873119022738324099691546241996815996151431366546816608004217976617763025927418353883358388764856558245314652967920760834457157491506283181762861074052514044572413077114713393393550435544964521091627556944640058342114123728360015516310805511822665462972255224870890130638925158629681733096066332256844569524637597626136592355221175698904813354412161541673250554544470629642825265662820705753590101455391152198703818659693378485768074177472335664994329635184040422955897131424503318395894120591594307316155857106435736738329736468264134200775051637424986512464228214870256623567056095899909552447215873696434758963590106990407708463859906134225731792988421802339122400410123907910508676086025983695223324381390107334823511402021524871754639421734002553443305763350410762252142981392243226193536353914354047344006573025255981989094116091323546965318307732839702406982838590679372601562202728208708885023341411552169919501202110620801894837181579437467384480114393956208841841241284901686320707101322334912256755276212413109094366680137455420658501393442652960638212021998193770509194738729107232682380040594856402138115679046796603325219682876803323913468825487541815071480452227196522382255028296785196078752017285472800412514227436443375386744405245408382415131723565652573467639613191565981048443434707489018721665236533610459133096936028589644990364192078013411588790874004714955583640239242345030426135709489127227058833810104957037799882925377730778691361737087133124780820003978482876557993340889147059092259885076270662301932832537415581063681243432760328195410400184455691690824601065400848381093267335219598251738626319198664775307110568315618526794849274244925566618337682619457996489550339045887225888975948276664639589005436530731350716678638318903699573201203604153193003385214283480981239375408557785541175640896407550447540712487421739117666124081635046543633800716092800716778804405105316716524062421762680693746163549328281058854501109460534524566201720631596675603361815720178367767652076837906105984064100549044817777242963675477977252792804697227067083999608202416794210281101489396336420399919979590066519620649252387867166756598057249458108591306635138856649413258510820291696379469611391140498180130043499777146443227538808187013527099569158814267530637821270215186177932379746273279844226812288866700296957263841972033873476460335440029403091057343167795370175280704845760803718243513929765694748743093702855129145743915638223496814704703865869242514704524354791467655550044394354687795001264479909069590516679849472162448481042830871406765077655219753176219437710160493396822986229647502354699617535232181315903152013952961964137782711852411093756003390283816437455555935007404642195213762378340065751315092998490780020869760495511098786844050135933433665420119796209225762169986387845561093290573929729848714266104714776136044869245578457487502447212937585973706590339497037309184883113952623300640229486889302423232629323550175030704217059665894493910207360022262368869913974930818874086182914782962107275006352204428386462955857088082707164740536461663548173208277683415404413671500040271882463259898879961645999378312239248027692862713117886954060049434239950094465062564909947596689348106473698761580790269728727305527386080758033550405548424604666692204610000232177774616942521566253375876189944124089985245974269426507912700676384315883722108261909336595050344167303319240280689189679192913640064650476184406935643140162572537538482838490341948527363596351633608458070908222045189161520698589774495871253475738577484720599684632720325554155542624925100745132662707625727859765279412159211663069991991820996899094261473730503792251963525289540708911796375815144264153649419824527754800733829278961934964571366276201185990090544909934302810368339027463112140897780095927847121928752496659938363384550827140083740443111648758255954709597547480866434561569429198634292760183724911370573052627975203871242158886068096978090485070881250471479597493964838270910669513020137121253220907145540883867656468825351930209610113653241485301798197356489145600484633342454060488089510890270150568990518770906126268232887896860919848828088960081550135984740871124908972914647858234608922074171117045188835790242330554273149618459153734724744018818703746402207616438565269340236720138820685787602227733148524253566456875383247785930371664440779579672454307785167282102394636041460189130350794114161965025966646020835630591234695807583945730024711109467876421073675982529201432569095553818997229164405862824619385767461870589737780691793032540900291782290463327320530073600795738952625004741862940634600874859111823701401773952894906096120480898427703314219535537885940108685132172416566942852813822188001633126696042179295337948832505211228569690561277599737050518222490640595471193687344257997657041747443290886210388780768578985328839060573909643764973618333001091044800321906710272471275474353629444424924037898599686091141525972744547061094725727603425865815823286942012430281129271843935635381869337961765951647972074798321139965246428256149641947001457511114157633013085638252429404618789369537346110429679894877280568789635093167630234517184608916473122262033041877935292282245399046290608839117527681477271669786130052907140928825174851005916785873642328200567276554587072005006595015035242899971916793469822762767995901914275010707644004544056017786816663174007233193897886312243976452749796443051585692640657507318591172266811084905716605644678886096926448012068394500941975704155646038187978919771415633480000965418251235514018681649125375966160350648754167260896957780514814906988562526898019843126676066239760371090743747758435577879372893251762203104146781460582196959374114519354847174823255940950884330338420340191244772792947641421612936805445810599189692328447596452448792795021503660287471038650326969442491728035859352804703926922232513035254066518240380432882906819409500505812846602714833614853969045363152401706224818141916687924088057868531024461048557089112545602767271946343046463346872032534738173053546902249687899000952801324227297630990374433730078414628448154850673316421295701231936245272584320313459522637212072576698511246169812906298933619141280102166855239552287868941262216115734439813271985955517106369979878441690101063687111845575477756301330148344123215303751979121910030031296112177835047087928349491729990552520891285925696890911749274853645683418982513414153148088867644734175721814443924756653664859227378482079609359775136420820879744652892519201393626454173153205360032568589339991679233172583671269720075642813857440680608282150928922631855753789248508116781132808906510465368967253600511358532803367823271334732131970752003745055280360969302003796135203593584804760698016363521770037129131498740587784796840201943804424980137084750625362973909953226821583235832803809415535679210217837699128834891530682444522116658991495747343649635289262192547037054094759133650953551397696979692489383505814076756259862991999383635580435774921126846171262819957946646787113586772976629959306314688301059224675142497722126140964840416098890359889963228132914273259950867295243519545001958827991798391416554972348139315516404208704589534355914899049940972818404792101621445708656546881148151600740016908168617588677608593823090742305662306264390765605405742950905238259081431459155378225203445712509294154648728442967318339682860472328128573830231583359378428351967456722810789403662239988805332290588646155368451385363297665516901588386736175133875113247957005731536970965606049011284761351592288510060044628290283643661385331669662514828586199625667097111348047428192832693340316895958163074691181809969050964681549353840522310476349399135305547076767164557183301661952267202913137994410506561529717700660011093699825588996188782200914584095452553089811222761359268104591976821429988084718392248739181933221917301996802135086398101200813024845897376498726375679318393200904202180703054860032384692099404172716892893659403991027333161714995525234579441649280709760041138376455139809393323329282358096138595864834306737911867480201337466460009945342370793699687214803301994332061037161445214341043021728503778304119639592172266148163709974496941123681805601594661216264979936782352802496124143493071569401843669076829092806679389366440240018638773555331390721927594795294280879126454763891807855412598055351325909170640813276036524086248511687380179980094495319226086144298546465469725826922071633301760618159902079571349893889878555813656274630181463292674518321795741592371076582164761192913455701865620361896835539128488185160607996010271469938321085835400857467233403010754791195825632759840822625697885099096605921404565949039305347500784948228704113440389896538616516999039122892587295968811053934554040127931058794024086766086116386085802544079770768102065289568837044085334067001977480468815271668520572194850167958088411412954630205948178027500277984993027043854032934510114473628847794391084648559703655037473395216232613974642147665193850809843104762964846879944614527038432433892521159853046630973616509752044324452105828042621832570666301792791018680999160680224548902317089988181203872133232113211986610894375033793960192417367989751719100566830375999017336523067084668062773585640262834132946187171078351682200481035225066481696331286475019944909751421769799873609981292884878192006108630961093649001075820806113837092417715864601752427281387299882710566354255975688774955974683205823113896647578242824926668823890110481994069293210458142984810013513482631503042778187974147754041630670605566671763054120946619029295710952533944466718588802419482945722048009638700495071104026131348654192248067899760408878557807674970910853219768553663290413772536902078564748235665758005986787243263973037599464452305332766360720272098868975990338017050608973227662744909968467633771705346281219676318569947560339204744100375714794680275529406620527764340928875876112733343286387554207204681900640151547467240169389836329207818591257270493829110270111706881878864543733106603699966425946710862788782413995243791972555444657404401987281741094999812756285288933163536926090249860484690261040001348555448219794744523549185413279550857131248131311078770388835784977724169882551677061261893972310477824425352749077252610515959179179864921960032214322625869164730741541065269980143264678183749905169707727621006454670570946322311746974643451081115373779507290429143168492026357288360202418067169691393359550484230533993710625517983860620307698847303329125145772006219817290677430427495747714004446944205486539417796816442350283298627271033227682213349881413616030556676355627751407344443063869552425724409883552287678483394897462122026027741937692826973237849654726328199083421876053775350339941048020413237924495275974253135388827093982627549258806601139440257989351036832959851574176470322971169944913706662866071609930248023663469587543965013033557984269297125365717174546721372116186931657625040358975839711881006986277374547917282523565842007089506611152375422588988647555010883025395630622857636520533039905419201527234128765958098175629292568889976166069666992110487471190368543657923810206445112475020401339290549375209804453727191224321662649203312615210504546240738930636742411298628613971698558205234273560477322301986946667483877047436073512570146497988344803069214664307333600103895738143796902155161963386133692485224831352937135456684381085306963426347555245154137680577421649165055105081170733946547224195705832408143629419563537208421351337745027496245888027347040883342936058795809767273829304593670656006654927225629541144533854048911742692903493238143696880308247565262217499061243360753551892186996595302547651988730344409196978160722985128211952389577384296520605065347590510137152773527002577462769714698821221173389691785095930152009337307992994573188828329539255866315037670423732918317317896058032996843904878235524166752511349564710098289510121961767202957590056945417298291442414543853719002243729949413386074834226966334999452449772775581428265945175534549719561231070611467663862544323505379845585984383800391314736440134378575994715623125317965003718536192117799492480568218315875497049429757393699141903819183346909670898131385083895190152955037093448752586904824368713283554559501819376294460354766808688604893579076307232790802372316011901259312647110949618107129455100413632819970385368177932478924593032419662829093377490719233798054247534514497507575674782748503957975693450548198659952916606274533220993737679429677528938922220400340584875643479868243316968677687376898493333904283112575355055488723393537709582244979640947323898506018698150261654493238884005355621764484220847627278777195946153289594448268588342138915392189720696232374653509211618618002329820995704971173872403847698768159955012970092530855930676874244285242230848760825642425664352799771093449510377212495520538893385169387696363801332247035570437272735878051517505933999908868458093339716290530285777982133865855835421644466280055810559915987365726625738828042281948130718967223619660506862049775476403649991776038091984031613289029356000872786601117126092430234528793220257068328682086362442927065161036799341136467739139362320503377618347463724563793876468396947372872901589403230155231456536111849695295520597136679783567981589424662867428048551319071214242944293606833354102781841457225038077169317560582947815899948976044831609496656412147835214111083658063774821056549315393788449912436730667252354817279655395195822941868278735224974117840124290256636521496377357371338778257962603646767466753716204090909697708853655374356694213308717071073967683382144684496329642254296589940225087876681856397098187482429717094664800646710804042912973090245563694491473552598238056973148672727382634583859803944678086144488938385425519383951925338543372112781196091044276600218996833845246040569741606791857633660602003937372033525508165123591954059720502649928647536983485186766157761686008016189472913986282469263461693519289680282032730572743552417394550893784485154940232032514564839917052274761681770775379670374440964764948591016596281423631337329673069602348918923280279986464113557025733000556968680188532879074128711549051089556824411763438536765459389248723396895638922903561841037014347534467785378588224675308018374908445464693134391411835971352835607501739297938479512674656489181331192280515098201647600347702624063105039048807631353977269955289633353536003741737861311578051806086810494890710069391936816538814036246324198401525473908351189608226799196090042835432043552721859741774413960018412765915677516829856821737037907700515199531807526184351765847522907780841195714890377284647356283758801463584454996816265897066841956701900575077198297507405240276121849302770172038730100970165373621970739021977764451193542459919306300772847407415214071547374011660630795137197321480998609236305994246880194650384617395800890712150850976319639907735812845423438529060746303702804533403282277499381281786077067041746376521844956349482199472881467239704564163162120021333660105745549055609458521685320873676157069125303931679599655282040083803112045022576612984293192071026109067920082375411186103482683657546218753677915342728320247761495557230738366065101836552280643866786989703698951191860467623159641181217069441406297945674389343953243348502055857419557200114445078724558751818932731055434278357429263623565715164157079681551231102869872653601006331729655429781592633762738292096959398841611246094520377812928114211457737911078607339161119337841473007031300605783255813080110161245517025558848836863286938618889529882314257457947974918127723672397126035420728367945360401745280882531253768199466013903556657558954510135036082896362980479162671266671345728061298020161321762033366214069559349973552856282358643681333077715834777033249617093454708124882588033462305842366023017779503208656192331755831073462456764706081377728493906202490134579606019273150711872694382018784028490708706317321404346271118098787674173901338928582247069967960036164766581544194760934324293023069578769522155089857097651432704411540980713293340873270484086028423858793664809495179296102709894496751892205501080657030256914910971634556984655852960837549140598167422908454756458875844254345743064235706642362052587281799495981828641548971005079236652747308643362379242930038488747193711100650106018174370084319243299008159588961602705401543684869229213696720631047823362503957406470649065705297617401500945985504371955665989306533254116286950556304409837544158245769094485222539396205610557911304728176227712240765084721666097834742065453788049358338297232599447363023909749906603871858279641060851281798703502558293899578910329841261746014038009865435274529216009713054568681395984391708347899119109956179776376181888555440405219151206863543218205394472962086287023219020679740852150704506159151792225401721437862693350215047845483659740236178241512455968542497203448402555837737212531431139853563177977232075679260943525004339139609606141794660318617165086886040746602886989909295344867828252716576211914459431063032266129319202079548599902763390315544471027371569088072048009048589242285143939685291755401904779356007651837172869820423938143856366385342481980833260593685659711137239249164080302472150152356790429966373172311002358785166848000606478236697144546816265400186996072267639975052506368306400664144857842298725921094200639918123132168816624007165836475137224250905717451626376574018950586798578190709460931896673068925520768883422847147703563293047701931231227274960165504060719000630836743840014675601321212567360906312372244124141050177564754164711112888578651421219652717321295960148800737863484703044772188063775042872272855344685306213583465513400667185253542052483912942920601723450145929464572680655922630840865938101057819989748481789959448459589973093201510566828259731809019318337457677979810674202291826358506563859692291064576587087377500763378827539725335646100807927162856573114364818545363330800318809234582992715382075944443962518676023361964050227436087211015867913745299120645705436608920127496329306004148624356610245143051278933056685330227241199224476306291587907447318019578118306381894454508369523416969601587995891957600943422373179646411251581421237196200872896156917401011228121177240222440122801959586188564548060008766339015541062132956080396796416434537867791614703379962443511551938776562768611291930588678725417758060623844081917152368966604256251817554551048669656222036453754808022220029205775806544680737946736177102916444808755786334897448479323088586672478164914616329674270947340758572678244710964996286970647159419242031386093156676490706364131077293286831014657714728498954644016433448998168591906470609688619608411349648460419687128257832356173163765533186371202707972012779861118711841417019043195518202852634315486611311056431166826878052338334372941903028190896667506420872976599423073531967546730826110327887255518469094619893561210584092032143185238689422712270447466934510286492454842267983601880286415548820135929332909166676899529546153545461993529408267085639612591093386188634093827841239139409125745653697699138399610141772928135631526599952628231638084716568263253226574738789704733955101628801554543406932869204882975042559278385231580892462521873859008122631893913807438736545985827463239815758543870491202105735945760231554767648307152575814459010887186370630177820112012151655988981092417526342346108515523523866260458392954866519543610283501004808873785949509594498274762296593405739173952235194894638780401051512071716480711835083705823181413649438837883215772622807732750639773638152030012987360730058188692936909427317185869910135312582987982621217558791148811839025365885521687271021645853967495120404749901928596245188633598158883979356294761766905262027300832637616282723831511710212815378173616026388517569504736520176904329162339139841285763268517090379001496308971601449409863128817862549912694517183959004678153000784781883753832601767397550796464379893448648494146295701092094378867584822908881520876725525151772364191174375402621718321909049238554389248105420442545715128261045809407633990279027714434449581610526926320578356357890409891564825796439293783918034179400319508470745058451697433644081447350928370214201595449745635207590717425115731259940460917011465287798609149524779292454314679069445118367108396958751388970087703531659784355371338462297287722055896144165760445467934583113460060883896776342141163023941213456290097493379709275574488855902262471710503921882341944940951820629392758572520090661623618982879014375711462518216314613581733580608063945058871633298849584654005609171173179160514750953172394738137577826130780456129177603947491342806085546853036189254687075427846095794002149610214583518184239625612253159716936255299914638565817460415115987282201611057023234470523492510892355363793039310571898292758120093131196031537801093902931076772315238539455183035085984636352486829648586877754396008513343741118010863570947706359239014813229464222452744890475649566184487468976605957265646123102158173585513123638796448527228153712704736650400263566763166008044131638696588648302873268273841887302973889185052758080528560660879592565316200174466063738998757703688369117296497346941262305008056781206207492764688007530984272556471776500420534053760063968108335095704595727275162781334263152558910419009523541188420770663337622402204734364370462175638154034678735289283865092465868959252155947798279147379454437881637874903824227993745923359441030081550661310319895300698009725588075592740492483107834293327270489799411816913253591813419756343557523411535999558331508168144884720302821909786858024912345542777935687814621427410019121487084855990814936306231691153628652011750474545960939500034967680694900834785797170115888414432738946553678475114364707968391207521120496957696008483498838956943199109704821487114872639927617252017222617342514158139175365169216062385052106424608240529676351708589118151684636337377477115346552226301313649570582575929826694087012641591568421775408051137842998366762356838275912863231467332335665163805744839967475392278722447614884005143638423195884467424280677526849562251206818663257933599391761008114171078068956177748972513132137672623095214252577741629856360467699730933418678613073683810361634329728124228994257018759183949738440674253830675822913172400126130041162599120696951097345727106911953430660166919655973721978831149846774446944950572997531031424049289129553696429540926479624533576734454168372165237407363497979758404848342721805147034697374409519411423657088148314825813865692829418054992529036547092775453855631074047693399059724020411804798542766960710020658508109674922888882681711361358655551175097539500426540096243498256883556082062791337179040630843137674333169601339105018678893010275622189145399198031178693507859565702605583222001533647400007359395642219664502242945331176710883162316566693340384655595445617102606223800928549685884908215382019113439590842145025978629647020657584287102413928827447390166283879187906714530696290125542775620272707410660881239608310364945586045500570654379475244065747631309558825975636149754969761566683496107284306859591210740831700213974607456834046452462109488802359446766360222429132101029254175470952019401153563416017223761839848093878834235747524165014119466886593878501073046900301211393239252537081923123866494431016045429198624268976593348546731622752114557701089973520271644578219582232445725661897772134092003665709547978219953315530047865473245143413377747312098492660877629357198338560370318967603469171794689024951072345799291482596589484104847503913215336444908115980287741095128840921358658336765800870503969127829066753665757599733293933958118143323521017683310525594429635322954032534723122406411620137859317777714338659240143881019615093319077318681679167710960095085012174886091229458841295192634262378869190092027971159631519533378935377296420617866161268431075393914997479745761138169020592003478184122462110253632774887570098967371089754796652209079118756104975153026690325165326731697158534591077781884097050763239667816613657248297128823033909688346132565102210569383006750515809112854179594131404278760700735196827714788143798449181157534259490700764204842310781987032791023709855409876551283485748727787338563363556338360493936777779291073489551748859748045564742254581239009953125375966793506456885885941954016337423315540419791292169729454633792527766790967186038493633267674251665381921024751495916666425061566526832789484013710647961654195688113772124330162039164566607549150931232093573639607236027208955263196481905986245173591114780077911099572655140958688866108590631288908847235461969822357808487883201430602281416663414815062616928688939226709150936620525128467869239739417180764424814381132557639948209161473380617345526045394766651575127183662624690456046215193925430181814244332837289119070778518783582475140649993702968713883208326496849656329673091877699314600698034164468466323611023744293424814336649497146305156131740276657345202767659582426785203424206822710983185245887321047340012731523342461443731673096943718300913426728094730784293032502885883270487778352833372654802555321587153250308549634249575784867336313051697269183253731702135016346008315972226820323966277670032389614750816664144626506801177666996759040561207186669488099475755148869666524336705651963227345611179906838320353539712543189607000765205490518787388038228770583898621629860398237435157201030071158444905783025748816935535799307821678170637747992113544550000126210891014861602969534680218268801899494340775409248499149432831545187842746321437867619295751768837219298718057932042016162991183164565958669148476026076121835680834658556240324135560941974997173792980346655717157433240635633997435891533525844665734583484337606758360770160000518416092068364806970360377360323338987422198689419424237664366954385080068468591087774954082232356353629118152515359471567527282000968416008073234431878152623250044257791483135133454030373717451009643655103245950064200854876795347257825151532908441493525927872156518466515018198224496015179201554814124316268478676890807818239486180184696703665685907577862009983591298567006575704262317165156116677047827984346998820086318480408990930691288592252954878361661317854881422633200770755207964278030812188552008846746868435402291756917933821671590059722520774820952642942180405930115800731675339970315767973890420189947202729861641469266261434497027216298354235671578771424929238801682448163750048262101500264199053675685028241298174032461257323853666928660760501972129207801705944816746891343367500728034780727289136933418712806268920999896644955118552001593376084767722419758385195374883630034682584990425808518985134222768177011106460425989636272047938255509300777030214055272614528300959889424433299587087434649304374450887840343135275019733140582803947592371145953057207125328032400712928739344592162921073179899725141825649984478695713695183420067257000606832738846454855210948127624558841498701296788110186753004180137261156313517304920373650521779650835953504939808385725313325104513752258653678524570879337101192167820116051410937605531789638928264785156882670862907984368919622644352236220223467191831864492863924160698659241995501475610044300137578758883045763028931313971022139405612658850621783894421666173400370715774587325129988346001171482829260911372720922322149863218215260534794134147191843965075598026963969624714962666119463198328122770830738085794514430325954056336935049423635656450224525783097904182966218625117062204443870747029517553568288332602375004977455115603373566636475561801579458742225121119745082045485695345653729460797711845606620047286909217833387630108846078619510871564443087931485063873141208862965049067769407321028807410702410148251935036307407362598214522944269103358452971321840963159789994639685452070684100437262637502780988221260749425035644360464500349542872838940916002518900471540393942771878123229765313848879075899845457118340414474923423005187057335879678797531497929250644156815227811189351295285094669363075655746902601125783237549386807252575521448554416921238523901541085558446482921153714485025073881220605600149693143604272046105010570105767045975350502155875923546778698197404189794859774842427719374112176983464858038772738836985672240525118038655856384852058624741289420765514720222051107980651715872826796672436990011439569072303920650475302176722175475359434796834574018331333321051583099789017321010067724230112905640837647194889376483055070885733213891486951434744678215971063278406604370552471369834610045775686231130282799143509509584070678349941788238509704716426490242781314426121877281622248315974429064210065338114009594783841856724674011913207060427783151042116831509519132641095452102553468978921881416189858373656380171361280400986059266425980326095975386727349345280321214518833893899519858477058821683564619097008765618882846212995216869893077399086106057945736295601803988476448967593270067579644738096436251852632254074293880835388055083745320716789531725678884536212078353921221565396366120820502945103548645274761470647489412960616853251270440046104478033733150265243977128588823287090656232687300537836806275124799559738093945882555918684347581729686617227106342188361457339935079109937707950863967271225312438484147549017939205089716325092155087542094478865675857937957093853174067016387099232736111333847181968074552315582107557015844875157176870379943857062267135651232246646459984799281822425460679740122495965178113098116401692196109569108400572573577552826538433829913199874646275574870717583288333350435754329228987250543710453329126729742879645141166196117624821465632060733899291141159122829654187264910104326051936086484418962962258301528174557852809950561657960423963291204539842012137855834138829322430244652673865441611432883691111272866041978547970480151520393408403090201208702851139429282286218910298116921820386980844723758101515587231099806889537377920126630006474112367680779197630636520712653013800769147955740320601284922138096138893004362197216112197318407195787590326997716508873627704189902656892161222393542829031396385477732570755928061479550956775378780531811634745590060580071911891357644970895499662647021585119832481728782051099813845993092043836502473385787909048562261998411742477573622026736592512508762091190835148249588819267851048356582308106904565529307421400333633222880626357757580428454494839607603952879651266089512250137926862852147216918292005176385687602129895828857154907700380696788747518807220632938035787754457205140996825153058129464831458390607573397811359988957040650471132300741857391304483269262022654009416884033882806438580801783837478668664916920891245805374992883424046168476539245379009445066415866927868248806495064004334333329401461306775832248830478594863944064850500535354463572079228753656252105330189393852372597022015597371338340541722989664110101064769880367422328668752008663302516212537518062395648349738040193023043297885562421852370779512983867850788088334359452713844778441980526042642148292874600872595801673773651063850506063889959444012769725915461601496086339842389335416095827347405713785197097356727691386034415336236858661792782069323977110521844395014105947925374596512969934182654691326545991405104666844804645528921027305667815125944563065778134125556893475129402751308034663513451394491108352674882533205163204435949662841003741841032001948883492569163823411841589561588467435863727804340423741535730527527756591351770298632289312552151634454101519704476597410430614131824691096852815212749083766973046810657377974120270239183840399608118059952295813596002506887280475035998333896919711702526714399899013368242192161923350720774975200961291600184579190287524839017701531198214873324049468731652759152734030474523349005292068499673648464877269200844910121362624643082716964275579776681376918276378380605006081726577799776153274699274586403872176397232144875619613417848098119928432155225335612101506763977604277667924860939686836324011942372571058075006677302639863772371510797281077758515091789814665653405136518521839507785830409681212225633369721774746670188977944384535331392839705752739788611599336968843258691013098597823745797116438417003262768319140829161235841350402572386547118587656839790707424992248770085927410444514766682564449275648337120457183265640595497208488272712580254419833182720060579233839809826768336374042569267962151903713496385232257294933638512973682557388682160458951460377783724269292832984136798596330470895491305657012468029320686597791996877883174793819479292263628830220073088262282222039641371877331568711814824700190215538184586624187090223149325254296901136648705669904561150354795755366863111650281399236635591038083109179441515624846385585555908971800301405812837515421201200998047681198804200783087516073876044827418849097989664131547597954845986515230610388205520639865746824812074555638992876211223919220679266339165605015761497294295946338443493651114021283947489712200558245689945725793466426930149602668714596087717063051369346438254724810391331117599542333367874608185724197484203691222136801223388907547801694622554625186336116472489263330136135069332445499203730036038769003766802500576668307597426539711537938778835952299473546937982821863697574985846835430033335810103997588541448352815213304798789569132874340277663069949039429895991998045360086621540506459554602263491145871776274091831214120483046468763478016480716519920735380678062077844064964360937888057891239889050256888781359970359022247344719610583082980544831979862794553079574025144327622842905259563366768252480632166854514154552222044384194517579882354515428144729620167526651647877655578818941723599910188711665839933966842112271020568618693970609768033414065493452440992755297358968797184915061007413104790588244967200443062472664519536915718073424981042731861890571295847516629678485045950233607767752158331089121146055823589188228659995352620037355040803116234196661126558645328960189390039264064908940898383157279626273165676731116734346248888600437213339142457824793272513407297528685675518352213808830298871194269523503426111014704979036084780788992383405117383310748695682413707653042139977291450226356008579330784087985389710262354522301650808964050081638124309061816238473339089629423827194848845521190966848152948684983767095417967139702701142603392067021647829407860914960755618530648004980914912110643489612812426025399752941542230935332278792251747862637573638688311719164549424440407324410984148752539532841572705674245430283430958308531950310390271104595271299313032356750239756159797642069993624687715308023874791179446478583403245934511354957736553990779694837976932013448961351519587625880184223067886755821314071026106125665828831915226634304354722481014418216737388237849949108740330723743935974399433816166586035068834353274305710032903423368593024671290866254150169193280634723849802952787016443765833087279996549994480966976926566548656002099033132527650877285612706637786925578314545032327086114242317061275513520318869160917256914021867057442939982952559883345557367738921287141924638790990176206698418628242283001176655921116499685589980202382942722359353069761162987905364357766752192597036440060104310342285107089722328779947804331386799818066097021843549110037763816125487841198757802170096364944184860391290956012971238099932223231769152880306401915274415061181543079964692653299264099105588933811236969908713854565519986917023883291761857264995361021278012432230819166119485561497547689261302819380167146595310664118157774180148619594056657562924419242628233971334326037133500081180255442531717298862710462367229197291705510187797049043108106635500338905936601974313759471704088659519768924592135339591227364776166584562506675141636881901444819084284783431643761872841929975812115496911526698727232000203806168200167661835881706352540402318804158773989019043649719044551085871491919197699075335763166948868677502721105911909264345609591301138949718771284072809610379739971066023396583652318400891071420684141116337058823348382812517085807193253787176467061296929905263014210170131840981584115702913062533931958942951039864201994332624281205680040004153901847685577733960129732818347207447251932490825058560079578581984834981509708852695296653282906598812497770663057433155522096070173749855359345683599069665364202262207389761160927335713459461453460993195147581694961751824212786886805120480552419085808317942831216542687001322380592655234178940902822228732448025385899513146846185415025466707922636948277470414372753269171203118564921730092628112981122388927919609598369395382864046830093479440039930904082916357504830513595039328565851419453061362991964923621419557114456464389154215516064445977836411274385235137127230537555693399251458930969753693554212460233780579423378677246231324083660567013535980597878966457795452543981225209128053977350704269196508687912521864833640864878086411977340429619453893039791467220224282982408914534555693538218794749208989808539362121508023092743698395531350350312584191032103226547948442775818223471514070558995217803506370219686969519745794540684465145700399980619442252471974917435304106028836691772118064523218188026574323894571135307625864588161175956222996329994104949451982919331455966663874401562712905783120345001198135256421319560281808770495406578930457197909214733029891270003649517490277239830936802294667538365007437788130466920519459659637761279182512560552778108809581134596619694191510518832909592357348537751946057599598016382483040952818074969783298046056038783712128800480507777266468151607447161368736374789817456256133233744242457769313012860679892852661262577264581208240027909220456885183574072234246825141326320791344668220004326465354825389661021750380554152685126237123071487072837725876465648126351365791448255993745986780206961591580365373421213578780327170596073790100573293960549403184116098989768744202224726626675750144858553707269966538397584324577437009860946361303727891449585846250817700352319217145283953409340312487832483294566171952111526009881415225752325592572562747234329245575932369605887485836067529270880931993250702026087203207537691166522248769706821006792158456341258509466300759262746665227496049347344521937355726358852867896708490506890182360097673899917373528725242063819228882161189537079729849488477137354331056725078311961599751333069873506583663457545712855335957787409894504278259825483777038910966319258716091503224027872077440944018120834242196111970059562288974969073577739464699388550451308103559656928605079253862581525757784066275314573604005164228008969838390749556294045040725833160269609115428580196266352289450248058280227848332477365700792151169650381268192168382378774161863294937350753384477639357800877010442421871895145841314340147033999239967220032664494360621048036813983347678725723652245227605969172697088817771747671190821709302408008672290854098798892495934995812012639365124711995104966309529030870823646497236696385184191517699708620495341608337128841492453594066001716499731809193796937268190581250177677911807483498702889458957077120643713249390487824046880245448348999376662124929220903848159662519435619586650389605078689231966395027722869774024797357996454406433251598931437579841395812271492310477771721275904059452457834437765022208809006727392212171770609751931979510395679718226426671053855493710760182999740746798531062791228396161505698393790756327699934580786261773926955799445547673045769388181053845223584801618699428753217095761527495139967790571661855166305217917899421837720447191145339639626377621055392301198991859400343593332460545704563541614240783694026866952422531586566941808185111839405915460118940644749831278357285126454772126433968960318837095307490592343355588371325351440301010547915781879529513370932128101273930733795794633083523994862269788252457609515062604562654269281290300420201143143566452749456991159384435047652616101691678488082433149744656167308683973899249839919570799212488264869400276868936113225410746836434408750784809616697426276240175000551125779979243139512821177172447851375809078251819818911738659127256656010206628178959938995838453767360866511605468370568611868682120551430380574773638744344263117065079762064150256266765840979595755185560827797138354785306059963031889417187417569973071209102692955214812697561935368417852770773956720662185337847244319296063805499463247470423729883599674856757657510024409745684431303731053415204772720055973894233420492038409521544115806214253768521062441905227383300154915855275826729707650115636206019781127339786602196268890177956837576844717698061946426361714137887195509552382993528981398015992402557296798548435122848274624294369446416145360211115969044714481336882429116962194203414399599557032914453793678374749577785136619465929576847931815356186554197236197271912507799524454089703663286741180661435668263711010497678680782070893840430759135705872611712320897035558452069052624372122930741127144803668122877295735465818355565621958142108260135932187902256003400915655070059310575250487303861000571991112902006346357767162539674086309027379726465796084743300663050385522975194261853208962475038916868253119004843670307997329104817376434511119800652569860914687653716825258455058739872271812835556081485081446389926318049989063125328368853042603492745214330194439560666618276563782678616412899825345367137746253778149942135417234173764082669999337183742180037278489267725264017469502026034928334595722746636828358084928650836498437521010880310801781086685740467454172603638854626862590647487720772566435844905795727635997530247632082017427139355651083438749367207229603223022829930235905169957465871252009458404404564719797493134861808245148773970676077921568571927317623591780601514270694787124893486334256485432405598190395006380130720530020412099427306734683058397173128650657739555900245482669325684120477284201959831668047532421058545439072166793898908131550616230909173781997398946135685456129588573660237183320217337218153997512816485906774618248506931390982598613093027511166873832490092549923581122280260509144926870588725172417596958401208209354222122257901578628331947009977311831997788906732460475079869102006613724275605055869073234173142589717424199452366883003824199616912504532838615179411727483247239288219080060571086025528257299792635917969427305003161611966173637003927432412103395609801644587316775124108119662000148223691046550814461582290846900608173742840951779426348420937031888122752631555946032656040573438591962127194366609937832352826779794128729634294919636271474443635862631457691945081560786769976943729221934964876148958327302428198755897073207565535144372321081936071535038852724350438178013184794942859278384491705861567417632512601102346333769863820069099352408121267247802345881548484789091063667607255956185721105177381065103578839130277413494654192568562286124067618098319761567158542992518468050978602717255276031028012715763748456476167813015021681356276201465444581087092230015926763072694201514639581520500132753648060303192709417898932423233914866500077397462663366682630997118290765063342190605129071339000741318918940476727082432437420116531794722634713222374180847053022260552936596387090677462904560462420286239262573412642003738712069704465005752038848676597254495991398947943117026292338452054743596232251857693760523273517276923283699137833148699089300593450479711405637750192109775752445165616586556763674274620468117832890558642189166918953761235160015082071539170404328708899226657878000651781405361357511104711232955648493491237353024423443200037518286098831510706420381740979877327134519033168554403238277635539017879512061096997726963479727895958835323473009702234288761085933536966599168446728213311123223191650456910645574573883729500678414528253267759887760112553934869694570623482883187279112511352147542159493061075780889790929801033587947998191925488808999671178122283325667313965240243848120184238691489697488334497085024038993863709213927207452914696084851889652640549341603980347777006879077556328007519421957367930081825610565952269867337470683675320243728892713565083786427359203017482689445958141968358492096583284610640357785113615471731004194264083660442696131709157119862296263747905167317389234539008774852852687215832684492667658872885900212940744909985574966066629083945637923396453005195445160174027441734344900003881784465088886050681718130994990032095463179436526184582739707275239811361442385746869064701367894961244540140861537541623013101022255109625480799817583774322962027706392945874073698239561707079454822974866157188536211406447187815609268021904233194371187255932564564087194376963518303472870592489918032904775120389330273633984009561670420127515620222445589734166984706271077156862858204894707098056114329263674290040968014820116211384092493218697712979053567418965246764072835698075763253036909991154422030734581166904922926300779339085192342221660583527455872624695809216012758495607011647366382550601583709016497378335329683376898760788424960984107370969923991090227690385307366181126646186441002525463220828920417623311767078338830997585470372652098287559189155152022640874477373095106209670618631051229600884262477991895780788034153600386310676611185279621779497102069703239384302578339793882286718211912371521839699038325835896336697555411681605942091236461172407369756191680032751469916390750453614017097043360304944006274472776639979057582027790984196736887526925713343553657418882281298954516531608232389262324801746022791385485954731076284167420323723654432446602114837119972593825862826181027073697899587524479838435570699913765542409826905529205525123847062253998308438728967829090846211526047441473915642322910615252907710840988213604864780294654296412363333456334404878289817916682331001326401853369975228795564879601051708019547649154555135157008313148988155567438925326092758650364812426151630458819945324079621350106824257106045639111103284013512432458111617845596741632139624801241248967253510906666579362445196024033356834301604231362530243708753714747853422236585329961560198764905140393896258907901816500498957159633263128179849212322991311323602905958608511404577083525550250773884380537780604916285326471061314413467193225084784064023506261507648442516247093931764100492456946192510939880214624399116023956141646709116219245851123546130997865905250572802041737586014130052769702287175103335712670579381443568164612736529825678428518508802585635021283647692302376925202445319787439100478163608853393836629527194846246245014170034358606648349679327538274174781382710152376253727350373501177340861597495247044002672149826418012852984684541672500561657579445877580023687639742060405937865535774041422128832092585113144803730523669819412615914780229765989037023232596194964665452223835819283959756541445378479778347923913341734568349010342788162639570832972317146716637474472814841086180397839619963240663965858842728610904022344804238503589087099649432294047439871405246578188538526709643931261136669650616248743778942507838179798795485785071881852818754535054681561515282943790534817980567904594617895588546770329352165764007943413713511007086018809244259088648602421891058841798689506741918066457096241866269328948224883968856250356213776571689313047549975223239364644988111988032009185146382923151586084655467100305164611133882480252621111395186933338243783694248255441174776898873909530131732478819047201496643335176218440136799046353721290215065281660588766870972627961270065444934568621587037464174692948463954322358326042598930161206642925389459227301930663979631070693443888723559857907121025459936479957446356313501859863382482536606532771853274835392921334037682225295417430120082133211591781086901002540345227425725036169118819928267340434926303104340591740144103880485575832557271823939836328786309148959900145758249739256822213154713520287545064996078947293145241877005998829920738364694466776667486119632245260188619599120359322099451193342198856166414540388034068540003914640044182667318691509164518230432690260777461980951726454553234866402443706396190597730674473895411212701652196717621671911502886462567021823948797574536588286144017082736064218430757048302881242934299207050578486862356138345138081559516896756102249228546185946544235049738447922244380530821036566173001737361190660215898416581113631851340891885148177235596438341897597944597072637558157477706898679880546998728259492485660951342837423192080448291680686492626483319686751816622504563322272629599240708206770319437438590539958109497498368313447753492139091672843695690581762916133808734775337482856172668195775986380760231853989888032418326817324108634692479795650238870315856777863592558220522846844106243923428721216242891071172219383054282385329209190122616700170952355253945483456328705861952609460106823827731216069944667697414755599229842829420866981223803676810704776699830166641046642978671374402806532359747829267489166075427650711391564152752444819956813096338743948474300379524439716301147554221889461964280384166684314525418884655525485190166706062080725760350695988314834899452469326378207083916123436875112692187603278273174186163320480086843995701102857411938902653406355061086700053230419747786226465042935933107826224468255440642250248431582392552623549559289147334585484307451121127085117228454031619899465028289760441539374419932160904798436124429778534667150432561481416708913320485380184190535352637912606787158660902257612097540749444795980127625624312272515363904798179197267857230038052737827490729636822940739827339615772290844879243361897816129470546486298560234525903191443795064618901583466439051450333376908972738592560479578641423429877224132622212233001793707135558094543575358402042206652039655435641819383439474983547868427207383296805684113898482537875269674266704349690921443206300975969356384139133181185177205978462066883751687903925873239885690354192168195196040639649524750624610421929815518202588558167844483124462085479977605768997949000239366554560499250260407349784856040410541732328472467448385482785452899752664138267902695462984813655232319244616171511036771848849854544945149542033956562549378148724204711012800774489594823876720506536468897139489273041126914083398349640927346989782071929644943809258206670715646477390368041273892537924736344789118614798763731013883237068366396121648416510006768147675879638191714501138023635257700927317341750750825537070775568729987114578381568560422050053325632726778493446160976000458513899311072450733336485807574907556362634633187326519946132393560817439134204184917483150814020696069261229675347538864683380138643121572794399612535726460395806487574456381983124170178062835630294040773472346124309625596183295116258182207237844645613918471339192218258760901848424726299940941339960869511820303968427867695187573137429436327497472768365751671797013232228774390719119343306816615322284966550636578306074747251441064059254860219561628668955036955610639685020805857265525828786403347844095445439233788775813883378840419172402807087760575108249217355950461605419153614452095383167753292358861356625379376466543109937309610733663849391513821914908595348127850800956318879061516999412053365810112876836331052046563594557755080633285976832319790469136866283178829243180745244472728014628606297205444814603630384313967308326670041202346521811579202485563895400296724355697771161825145901437619261887184034583512039939215164604676974512028397241998056541908292111152984779103225007287961176677579220937442348556425132804266439381183981258159075050078374912282983313633504004400920980213551263770035939602814277194327391188977308628754871999943332698767092879001066420607581984745156530735625129767603972115943415117214554026510555672105230245878546080190066197371125157148728180334358635843694250732522705055581224546573198949760491865241362733973659247240531987762961904546121543168189978821860824197737701458116924127809927618863424632665705327730522065958147452117264176254258124224744405716877237137447171056002468629977937011793469153479595344781603495861849198994295705316152784739855348880796783330711256456730176849215351704125580270653483194036933765326548140798744816988936532357626433627820257346621861096010930640904966033604543907222014755665849233266943621323196052026597196898432696963471603395335347547821461642679555096636730151633602190949441612320626413382781908205033890193778781772123622438226405218277858574633060185311679312190524269258147531866079170144805360939539856033417790927919948940467278254393194697985162603880890098796084738709032593867109396023186920525871509891791185308506021259496009863792660571688661495672898148258633582996053292682091710770540263999108789487246083363616795905148487282992396049014702090884375296003844189484573043833416768567323520133442980100861811720815488680399861037046291324009212206915397447504352825861865719747817897976620892459811828914916515244741718797763412923141719678830325482426088124888853641480730731315136214572253260982394893357965427965024595002268427763846237152807442666315589047679708286081117625343801964622146554608243543213076084944672187354970500855170287351776518134309184344010253001229066512068490142682144439022364269773242895622459709880899946873643059002034406907526062842704930085698645344442715520645917955367443306451944197682197464292438759533273802276723430698160478847231571326402051887624981039943658278888108809812829726366778867063101911599277233286878948686411016315200816244233497087873282585654418845151872636100488686498925401091012406490446189982885258670679372199488064847544059752020865833723296851110870011741294812405746594877891555210405305498592298704375253541906537019588953634383020417324538574181255828842423990539524339156686960015184551698396286087941474550968601330745396632351915771937874958896906465137646342320835634773162115963114475173346531622556310558189929171782941755802967373895279105193308634790420879043428111327990578568870155396635447192905864654660129316692019091499455317175028360312887664338415177361090612647204356019489434556346739575405884388036489605663620925200860427690428756495080544258191442334622851835801463081731366180477668488021072108843828985161416863804732715501119529168278693210514968274085181048306657020651511426537663067781019561839574744349198839721533839997183281430218603579864665480622281703986460633340113480798341911525049834271614364103781372362672954935167984799076319484563769497954226568966131877716468931542431247570161004606099576732639178732210642884699952653168022526369028777648551641003832070257396296391573424926842363974229963494432396872363053953130548152058128250376136466626694655982420371442914432262270532681295983136054903049530135310979886602642483587039762201128040338611076637028727476100620162537761838297420120523847154826875898010439828123844159207041619950243871822088686227293779123616756654615308856717158040881981805086302504296350647794184680812182520592906544095083446258980139967083668789618473047962855381611478454160751082493575209416192041907256474546591815338667102915595666555700592491637166547015221314572240754325247129469180275233854321996624057996241011995533322731135584412641649354575730489509025013339625197997729692381362766718181265117925586953916850726227444395083007363903123840807211513495175700780970095530677290199935940653456945185519018548228055853058578347947345256351243878736344859783469958525209589465754013074844219765162728166654836369008854606329781357932155121947779284151692855121091262355267202472093080495214715791477545086815125214664111972931511607320147796591373575275621236596558205401373047384822392844567449666997650797816327109487086071938151724646039686349161233886593634785234640298330981792698598738108917796399195224080063364439533825936129867127813507993545336423081265280320631650871333412110130444623753486024029684281321052435222902617612790240251522415128352564097184280627379682991603017913884356322349508878341774288424612555634632970652241176925695014197392535648178062653027959944440480732063472421117665490371367069704889239503301843276497114261787347958386044050761034755142903168277465855208620612076010562389342148538881864700703129719989015376660758262078146092456775303870259901130632078077938286263408048438154591686252683499475708791005544126861684865522607724680764096444525936751558025101279061274948334236557059942265082731857482105587939981972514827846346755410074180485039847233369905687792479771990435271677632556590374578481490551986500322658162830011441373806732055494290817252628749700480266520005825959879494721138772232154541416848687582229833231205070646872088114160791913024211846041411424816387311505150526886801500873510996605479436828874716755162824951477840485073401895938234052748103658427959853969509429916894652021746649400007366268653937948496346444667514799640269221546007407145781940606530595994197841752644959456327767319765371209006373431889064771020722905532328848443527654895246857338207975686648788741766121757441266138211609167131328174499900152601368186180157545740094048592312728454663645666807595156315055714567362751000179291560930860459106667888316913326752894452225151952163456590424248374179830778916827616347942582399898183062676533205153029985998882274307570029857093669283771214141052401872901977959989374580133688383098650543137703669631431508098522504836075150814531483673630301924226612170686180814803541594451009418586179701972598721257474460197489669173815591672852062057743380103042530607936923610374618690858912813430409396425923562450310705901269331077001441017718016023280760039020953740820051170009425791293727494984753645296909003736013849918016300179952953283695799729922968626505002078467167086293551050423772344339141364231059674885610980158298306142831632089890799639714681117629612427521472314965706805754984131295262104950932406445204764971571093614668640956053340499698286198629511548592287204127608884555911338114770322394724149841936801989940861434323491001939853670110537543158585175020200864241766063278483312710379906045175832819615894487448159372127094819882967692722322703493993417415611149195360977183211025638926500027563267720287805322688745773796588547531792111316852660118580288674410530691119839452701196987852521055616999254905014059772806974194866194453556018694102111844040210899949659203546522552855335745133226289981047747389223718859727519046547842520128826863021618933542349845272890089325377158359910743878355547058106396949005510805583599805187408509856636046963997138728184762453293606178855831025996447259610940740890947129045727385383698569509952850956106609720106605918550454988845395066880383483481127697734145629112241423744281418392742281480377128098911425263659669041371725010409992188503154798219534438907669084799081613658611056808740242173070377140758136476509695568992372183307473929015077137939048521622203212948544910578124880248328825317425780950020350722177524992754268243300921556544164787186897608014729971883271456776785492326619069255465767770214301156935602298334546398747841808281295711201320987217462938359068570804536434935838637278365671386952977581764880855129560784156626809617344087743018536586794229675898244782406611593901421460675375875359278754276123541904870224399904422097021812709519933471675134667723981816921897475780285105191406560091622909435854965364837757139198390409480344370687120921557938156261024022931819408087386974290473612235375881541005214395420666164214148007860544771292641813471433625479058122141627644480350757998080398423260846398914138759817722714432982679078752246059771315546414713818141207570542369233270397236762361736654409220706957247590512678415226876538500976302802846556436830928848021149689949286533540801924722403149015414960162612764348548920153199305127874753763371956532378202671204517820419665984924409514160974103937345762588858441454960488525017390651180033731839748262021300616254704793634434846949448596576781513013429206777624580549887057104150564537240476824877986568468954377464541995672060987341891953351186818538558092866334006470032556451052295767883864908883988287669185228498201907379177089598071264004240874265701366336523706564319770516125506020919834456126607386062951044303054931323542598370802923783803644562360286714420219140376225417672851625360578024678184335638461112285838868495272345431938388110706816154833368245581130480018925891513780567192547905287205657493569127580133914095409025531400685267825658772654364814995734855536818389546699410517578371465409577584855875144100193572217593159733846222889155022658694523786188338322149023377535132280539074957930976492009407108706033124160825625599601658644370429297913121377794801295158360559383934366065448593617754101950247552745007212503256911745250703615595426104260154761550748318911059825530875914297365530489974282882141302437635205960177287256723481939451846243953344556953508955713387890398658781801290398164608552560994874890024502963363218382606076528619452483948422414531962401759123480004022369097538405161346699822349399722952750017699799055414757432649835453043130738702811613387993620872360311092350131080999629334898124544641044003994008585307874280829350721853739328271725218716056518227445849950245783189034865918261703738767497242413349826763814922384907060059675608205436513743970285834926620638940618915570577723787879485446935169189155388260603233247247525804617604475929133069971907611358918600956260449544290420073640033271669642546488189941474421816625753547148888620031125475158795458619187549240413375777000519578814009846229337419249222569487260071039445608133900915189266092380527535168466042106485883961333132167287952620572720743955006683771035597431587114992559674178124072196518000089323857398022359061603649496319796796238043081003522571091581095964442907981411362387392240067581712240281269829522975670301966010075179291771266005633482104422501813832395578232217054083113685967130417119296699617390459794470500199547652116588120996214205082763274322950707423947590122400560611532580076401615957212573899803819219565359489373577618763618496902793843035434510430917746400638965486914255221039157715545469102401430171879442834043666604015881777132707301062379930257208190752045897013259979682737730977078897770342688469327910570130017672942128419172186961921643601724640061578864372642217964307184487941203158881238272152896027228522093949107712401802437904050297203610900424847902503070777694632715405785460572947980064282255085272046742779933516059196884856332698032517131728455998033418063043486411370847789805969702285280904862837806978213445975289901327523647768479484820826318429755386668639511251525710874999722379436761544707956546822146222680289001791913232818750030228995639566682459923707225053750336994211911300771000498550163890233245544055852465449639013362672785502906525882933103402691885751247962936528983670744269507692773222925353947241806553365085784438587783855506000881355710302449262361969247071029937916466987206064006599400466874272690035800524606239552396441970913042718323004157165504368945285406653876877400395513666573195840342843257778478837132536859470120002832693986931770462874437617491199255806081953832133585214170670756459167005139450350115637195413379986944047889074431017688297839903318445282545340780397153693666404588688536296257146144810220153183139021066305025538893436121675162160672584757380223655019306010614786260483436359225970618481605695467965837030776661882459634331927342310103437945889015569523475934496364108619521021658423202672612868442341858124217050132420177201383586894893782947563293799977680886780853507422080678387823928520526825111627274822983104848375017681379079995382332053015341611743486902501962374796090084531853126592376186159921514113889789186170391871075221183071537231761882195579542755842948098700775817404153216355545741709571168548238008355759112819647877320965976361258130214431710824918717099463180085631815056334917818683832439627092496316275587035917466100008519182557769808265439426760849195997538383099553247730281012742968930319493024593701645791693627388701693708673692412753609440975354570891107254667818597206378791870098968238604642978968920737100823459932419528971398270586779018574889772700490905289194145698743006299669671224332009372644753238591484471038141673276266440191509619968534921035156803436547243742802037125683823779906128752570215421326119522973341530649533144520244597302860797818823349540198868072644048790978195178860595017358028502678970425515624652617296063320696734713680135496114758434778884928876386879645672393125582614159978289787118012574801709670530470898951984410731375259788948608004226723482561871164150824462338147406070095738404375705467169799269449990186820666147497400312058193394965882938436058576069356649397778865910282186899709301777441392720864202235084318993711350337757332993344198778214400354146258515073159980894505555716746478552361020883021852565799021411368942901094090190286185897459720867108102429309721137827107524370415683441269303612982711154060003823714901375656897795118201452205562658887712276503146717177010988374886476540271862831260583628876527594501456317035561219862856433735217967665872396335037437711135927199324005991045959170307442566019760952904731971552717437291605803636166572100580329111864949997599926326821836736255789730908883206650610089273272961202245817364605359165578244611284909256406937011713551222785029913666660233164269619295090416120749236230633167097653890084445872398564580481432387888729584583125491878995522505446748127143329317673627054957032281114134955542888818039910579065868614753590622813460024171077121188917571000019153253248473536156451677084777757468970360829524759644050826415752864330021491310009424986020203928056367048405120754595371747881794865228913696261054455677807984796581242182770723668379359433000085633677709171940876921370736687154346016266654555979470801339906632686063213287351727467662233968967453767219782086653471529728936670128777133831091529055968956837345630438607373475697042726165598281675410089838753521247158063464932646169829422483218972866346808161643071493073637181628120165688960585128124106569477192243223790772211682384111545791145275309387330542095428078526476456020156294282822785836755599445806134763829879063543377145600545169323191017945590627797065280185098694364809446089567398297401589674209487338385211893646569313774178204151549573436870823683584511800592502097471818245384682483042654501473099535234185440161452219357958229658413022676008075943300386486280094517987537410488340613668436375700019520079319069370093696752299762526482727767093816070512150461716025756478647761917817482618158779165966660763758516269439573908176193699177415216875759787850248315525133046414484886312228527963766828795662353729545593103840701490189404118013517895839502025162031448594144090752266861231161933230733613425902778556551808516685178845308262795296201103519019519688620949263213730156070502152093287518191706927976912678067596677886304748716853988754362787146682697833596629273654977418378845262351110282534537796827850927825806709930070145038676292714121840354815786920097185190707205994544769898292173803495674730207358068814960231883742033208601233440024136982286085890168093623149697750769760963622820945888496283191905667724537886020393234172161832235592895796860214714372816040719537099613651937755980565332583443648316596043962692340348642298172006814597599929195386504432639229858326506398463451648223557204872213617711212300979084342935661800161267458991919888210959420343430269067532641300156886849834069596698807563350263689786114488844800788795797343278424457814349900131715613522917140671890239285373952469751536113857070969639799137983038260260401423176633158022477320167849058542305852379703766102046795204018553785060567628132584006811477804133392979802492574727645263098537958770930228712573638643464431021627515266720880404157311289298431093132991358695715823886666059948524740881925581012916790340470477631478106343137852967118795986452718911000482898355425018131702777386911746664544160336097278222343961270612479086895999446944614038461664938492560543532253401293948764877727350205128871715356214806306101941432270809499644929514507274196283147248950597364049707056890993421807469216432498354127363370106524205114444921718206994357120338403010215998371365776749562826943503534063591962389447877433205993142926356169416044269427294169354078584543766969652938623815167761853862576602001468867785998964254109024473851104489042414241818490665671484313474592137892661702965084195269407084251921862112351015787801254677708596647121660350281456092617475593498738572074204404127087765779443767619834636328552658070281405799401287104186313061014499002291846381279524171377250570098481102510475848024625057517731111110419438133642484228232822868032357787386534586399718943717479513511207613892040875623856790351841098098497427386920884381673690584718754471438424475231450148536747545283215818708166996756488113586735994583609247083789604255161071144935214089021103303987472551873350401353070603829030213249663186686795141586644501163322370327163614534542172942291083585431782244143787851167187503794131361024088028249378198918422671054201391171134573603703434316920233257582557711344905246360278820162108740414152221631059551761116970639256650320540131242456508633195251871234048565640014515553854619126893854843174445228863651866017953817370664850877425008921442953038284871981504500703213860380465040671747249840601358770218577387594944742142635628654716139202975214665124477964614829531560348635353530986052373755317773067441926390890197789219583431471940083083310548606109122883447078919490389785715154395034525551488204826021975415641944630472062525388612926349992108282162456475111640229489082524190368525867068128221098001054039884274441855807268276994357871098132115851892792817359527449291697570499597941405257515917139106608610674189445327086633342071315556657843331810099898297795330578369884761805279596149430195568842656402205383218213136205420352320132062444600999809354392640202082261145562026678264703418206105199493415777429782981083513755483114752884854226510681748181289150893946414778397283029462180695452412283328571757584383745999798933735321450290347687368040537148739346559429997762022911248073629355981795434003699402104353495494531409900798832537469502606613635289757353884029669184838955695235164308845026372153288368443488460393524599849990487991527076483290276372112694824581068074734003202532608227068389437725421817977496110632651680248991256193323592052590669552396416798122646739274576997199765041427553054492672761444727179421873668214654284664345887940546203322875707281311175209166242505290754851959993176128698648687542492740426371188934561451837828848567084774687221742545689922871761107006711196373176092844816611525459125355318639549496614468539249197109152314573701338745654498780395087915614430802760393880705328674718103665112177056812549094431033375734762665027829042456861581158137715107669645849834414700895426596679929645660079852666632513247930302880891432372721319550657978827421670823234041886399871762487442356504479724396074635425855313876477090866598517559477722462932983250998184109157391942952525046505279327421819215260981849496002924937838272104129089729982433190657699079264571236595161144250371600749837829988532559739778462444928546623653109684920928978917388229369843013602066254854654724246935850379067600573407462426683016219263581420669599214508909474856960283909176143645964757068660760372378239748400577740471740582382575221525905496206200795296344538721654050747589097613579605581752423695468985165438957996516628427771565801497621836073188482192946079260087322941769466943227479486930627525699366942406459765553736672684717083453204010328567392137173227645941125086460811125993926189160944082759099569994067644484053347395678213395857244213647712123862041579784274025905672680808594255170373729384668365808636097929458142275963706346490745156823572299043410894591361031240717111872520764897475003858254331761444566887315432145883709288760841409352846705454584690257113274388471762003311433933733658677736922969490780524918710976027373376456211530913841164573042664348831008554286599178444115630688806866164699143673591585342353304851239922329956444069258755240419170184043373155267274766087581773885967674544037769546722554855152524953535283894358932213406038740955301953662301128687069897662063476959624514027313357036992457464053027592146080158067664448907623958573688714096085906465312056271715967344029148655859328044504379580757742413375642660521192702824026486098533051543849938787713483749778341214662415400030029750302169715256140209570836152708337824761330059200273900769221246377257097269074911982441500939840131178648917303336180692817702357482443418695683662335676768767761101943104589677595687932050957161949030245257213868808900448856877133054032179799691399757860291195462536121324582146872163671298543251547641458037139687748947697020033385834391400004171474513762555988655213134769140584070689897948022431445961358818430928303857981981857146379221481965586236318270665431513537571180753863543785550833557894649522755238499960136994845000147134591343561446948180272168202507604312479234725552501924640084127122708008071168672379420911185623574413694258675611289920457031223653568657688445637463986679983712846047692395218667763744302217797698467449513367169252828283776209759347693891734182122207631905526230498740823532936162911221086181491945707942491504874171894966299030702497774368927753822276194856563229510609876246658108993042779199855501774046065981480659758045631233428612436117059202499923588965831704573675576586513859235326190266161182820466386736438979909281366074995150377977886231212189742094783119467752245053174131390198936226406119976446882006280008558724372172749675019423973164908723590682245626093011563480822588905226642260393852063111583476299397373802153642927730213464195833366648399840508958437983808817363656927667888873580560587032292711290214719715353145312304249401411244078147584597173831407465288112252755186580072637297390468297621568959079517520856128931795900235325242557451468691373572313473694629552444693616311471870409320813501894334502787875347617234918460035894779396687789733382561112571084061399079965600407836230011598990755075683083227677554231397243736608614019215517545799421984033238943626010395041607630640198590739467094486987617480784890756911758942005087779471360071965318631110485144647224434866926021313787260687502813171499547257346004230010657092683722421381530432161436122412721363278646119554887464481433830364845411158147722222380511812056996509249605846076968469105473117974352459697065094844784798751330903594725724564006671023629634000950057866027949017537714108810078084465818169989708544557273347006074549110865075904339970173135330594027150966419787419315553073353129081416040386130127880058903010025701598939073975602411789793021033678050505176050016792883454259247279769728476618484767378488409581418073371965988900624260899722250562430572348856086955071713417818322603956466350774640715329387766081887383258843967718412529955064712916317979097846034554251803718794389247963230998285916642832462979911111273799251814686308653776624989723307473840214350279034125991574607430772904135598451007703738278519491526413182629545258538745703012211699732800854425322410723833061171454975940871420904929525146937506655678373361638523937091863910869530086947980025974329542388124618915882815589965623827870895039854508771727233222619005530982188143886871029073334148405824744406830113575770589182399094577623177583322439048363861447406594291050365382948684283136378594249187398037625796461147585310456155877403912984018874934917329888188299238285367740103295181871213299128134473417989184857558742502006474811583197537901362616209544276436222722738376236259083065147148746139209132663618823721598190001728256430832627451787039638988164922948670421730132070458018985069093296404930442434564550400393824101116890585554001967801823206298973950595518712035193974019782623238661631489799571866863544722393446827552669070258045901195769125133259350827447448130794130815725379420745318889676098928025690893290134996327237916347368117803260883901215127858966568372235580317013654027015194899726809261016114647227368174250272454773784409684354446458000249105708182595150757038781680384807523832322378889358079524961730043330786228993888202724285348314936219729130793281421331352237934747288782817266086739076495893453336323566671810174729983761207687602253436784820738249645048278988623157632414950673128670809881536176610509857573937189352559443932278444845163715975395955218291071887084620870339370017545051015220256000041156479287914258399322475796669988512216154413239855520036874095917129167797422381765824708895279583982276652230379518397485576537373129942026074265140044279318400354341770566084969365989547277815287322187833689924549272993468105603096852972757701271540726156360515575106454327467445593007246807522189764208331093547702351819626005256841518807337990725689084656920619161972284780878059931814159666433809118480958770040749103918716497071831696078333558775974647817075868183888065608722057474991909290972113463328960388539752212390482735730043349565884428419829848606412904260170882536576995232754055697728861866157938117860277570897732687064700721262092143061669886915817671278001649733241934622493901630191088523859629303280455392921665351615170536636392213602728134832079939547136789117082562744655875815595731287182106227407601255345003266202987680907216958664466788253722159061760707566929274557379589265064898798598521635971241848785049259267893877730943782515528999898237145446956859002083973563512020998973789178937639048231847156664124346125976189135005053319771908575652166192408183097822285237014236251901123449927540469829557045122181827867829800178689222807271591190583719648047522438863085312177239024048274912795418431654893666936458502929813827813862644265058724958712562572977561341469685032331881388530988983834102823522466368357733013351002867982639795131490816402859650390423651271108186452464076786830667921438521510173557612483312432782195232323545612040353811612242962623349495513146898614496696764385047192337377820428185028493755040170220523921413989072824647792101651018551112680866455636427314183217433968800928143128987903489973532179815421291617922876286939521808321068136663057890820926112977327700139140356763593647698680539401946239498550183959062908696109751568946055135208928433213336573832628258643226941398929815772616603750841975852329351774401361843275040477479248542946933653538805139068673341452824659319303607691906333933346314786721992693715484729811547173906678540619434874529478174741764908179662784993786982727705912430283838852874360607993457651442242304776902416385252048174807505227255897411597660041567392641599355998596602785314409731403228641049744654793577501025557411795541466024011420596416363346367257770036625710235485546288096386150864277695668890015705492377156650038520600628167430112250612898728235368089952761669412332657004334104317312709026325536773605169131969495730611080451460621574288450555917486192324663804319499630946770283835861807642342653889988020880705518804814545835216206737813491800681871573215331610406815371496843670878660395890400235198621585047283882062516120203841914922065822043265545621153767277009640239940400799758763669018998598299166488577625118961117610069438606068900750316317859635155718372918313621185498239630807333581685483965159409666993647087390704330255560940299908857209350044567639788163786443740754049671474305411423069142965646892736974397870602498039980297295864411270792994739140394523172365351595915263189006656738871939551091889865801499886376553608318148902884616795262354514633310998389253464792704888610084311798208414662702162491228816623555730372547273070650466443371394903637250772438005515479100414598755711722956724972968522807598329180360466710125775263411972725536971848692306899153431089909689296723033933381098185256322744498671914282387321442022920958094723961578031275536772167980680570819412176214769210542282183293010928742823365007250648995557187022216261170576440347994723131404665070200823689606283016122725334039199183516937689494977483173935164129936151336003418048357923424183827401096626042415016870158686952188035448676082216615558523974568095870682504839086736809771426246623562364537448784624406826160932987963674530589900289890703542596660419115968493013721312000925201284570247620170203101958261379424134339405139302404825095208328182660472544085141874436284084515852137732431808418404919346672129945724902877480589356343252248875878496815817344710108764521987439394057196859441146991872766183807785578021105703723730705073276969656695316623049211876765670041916376991789929276441421270324522904304466751341941113204105790677018094305544801416354825900481971665687764601688409801285171121842095787272882124585800509059287705288085794835228117347240872430832254397972969907461483768234433458562567020218516597839683285514052678982739913270348851523665660537170902814753849429161291143905067538120498662408350217489910135804611277877610986071098376669250854192884650532967185831162265314292652036344064622459857307851742862130378778044975111883489490037340694243858321372774049639531311825590437742529831390627903825124075462184271720458860728465271611127958595822014338549774232702904061880094309778393657601707937566061167007603410363116306287505418506753113306920260303310584848651942101295556755291142438927478542347240851811103716624015732393848169006971399213722999441927302266760220543706806514294470727146542970045860393793354337662130573012735187592601944965199139646591809721016391753491120840374572052421468670792215947186763195923592618688362548684980532732478278037268009928030979450751694652273195075349606914609050480105146234002989687397770465967300286677283626645545670033570844091471896103424716779263850174669904683884342231526519872506596965434905158462348244781696032510010037017800457049228501879299818495740985689787370983082057151512287876940125631780351970017713940313054559506034524994979469128311840684473355004121670268278685748123700920997849554842394017598206114717681993879966582783485377469050033573706058469438252190246438118819847289087752680131431835074967102468159801584495553785280169026983225306249189206678535731348492748701065985443052505612856120769198233391739809783125904169261310196811724451526730540624364948487426905167162170376724387704624981821612867890283327728272223594626664057845832963687685583246911925212875374833322690677312775406041136667624746048006035250140691095048541704664478834961229996533771838773955276573400901808988671157939554999793415494407093756663507274690652246157564833486860324932056315328667653435510202077305545529398355891370077255740993492151091279329770899038964103066601145150630042185209613938632747501006299407480907839548495984077956953789029542146195068198954498895869472576809506983103732791302281437833697539050921871892853542495303210427783330308337596209040781266304716623588883501077321217371939683022455274475186680442462474853927775608782085473500471538392181518234999200962365758204196549762781828691149430022642403459349943990723423640911076983031297997955814562589104139220020571396070037711205836161827174432848170502912930462585815002634077137396069625740688734455261387036681356381455835919880704316827437457129406531488972463157078202894149713640310922525798462101144382762427438977585553564574546210266856928402001663732083566132902070476538035250177994095634584108799270510480379504806530647400293836772590553899935458513881144942097668047206871578705473364166813581008174658186798207242046246220281689597588392344240695584864218833210900575475938653832366475098942208707673769214352353451220603555301973492570063336824635971092333085566099478421563268115170296858213123378173314689799029968693425850628215087949838587801689498387623513925676312398077056012241376904989769116153069999524102073261569408206210272905338626696856332234324677402282385302008060523798387206660693429606642016238448928005616453718047791643726005217386159278424416964186503526357940305423399974231299316475014368183132801989894031513129701406240076277266933176118769205355889012909121848336821988956066793729870148112289711304430636359945072150425732570750185736100348173625588956232532925285253799071329209541212930564862021629676717519503255901952967285322248262680808743347082844916593572543098407708987542650538929270569721236101885113940383639321599014822388127295346481749424498226223843701878625552676298672667665321296019674440823127723421689510993110661553227030595778447781706738777128262960254095059791543957605980152241348989341900449988571917846785607834790529527336450821495859623154713595931210655022225601810077670237779347504480966012225095518246035341872031087298886432204757872040228840479646470017840078269252932219105795893610240007592468153854885243609869731455641419700606247779727095411958499619814688221415112583331342838516238528237209090453341862846781173441405303994524552091517617836606277535843351246661479814545038543326982680541102384162898994307085308481658360044644431711542674254593377544341506948652112115461072524515647284078208549760421981114068675853450933069445245010743101878167267819686643832825185528591649881938161695474773088929232446269558083797498708648552930576123550374897784239721282458191482324131200733204891577881419209957977433995800650447668290115529244020443391242476044745620353655832640089981912168952114654404570927218069488573087342778982546901156574494102401927867994092249914922347422033075376387912994699415414058113837946991622316563504216010364537758207600802509641733497599503603696183783323239112541276632820967533993499261512739159851717452399820273414302168526685292631155310672035127540747821891737083960065562839749528761646411183755926691843523965161099233476246167179741198587483881822268487076498356419982905095976785425657599193970095392571039690746012726084399785699315052086638037207317688127994340337210997662347267744433353571091108762647967743231489937066627982008641579204834365322170169749552153912565957881405623970883155283450270334075670285718320080280323185326588113959399139411091978824316741744652201096980679992338420722662688011122955285052200249699014406441085783594362064582569978172063370841664411667398086164324275306438847390136461632323861758327472624956698702453444012258341269045139288126964767299058893171485708284547201710662855066429591594840215597969139228231103862699051867596223418011282068704131188725388785639574220771213252149690236997513449989350482622264741179687723696318342757336409141590162560608279226712924511513396641620455338107228366126690963657232979132356167782379442183255368970391007943971548523230020382826054038688089578213859295208113430607777472012245786963689326453493193599390289988884812398722077915919174114248534074014756175729430698801473733559710547627741238760528804361249274288632679343528306407635815619010564410102125937090342030290637150953040761260732286110996514383849486100684577852798967167032503389594910605342678960767400415804802732306060981215003723889667663758385318024944931222946197332320032536665848143768735347325748916795303399688491657708069618707634984364366494741701020096159214372606914806844727444149449297264075845221455333779523528897492851271686630738654136245218854303690099577278162232951665774900789033761201613853980401761487639509445789732060603900365363123900803272949941537653817353945814450340547411295123950038727129455338754101096178320970540953232529196485144228355430942091908888403209022207125315276440236966124236016670757809980788616606863925523165575909527026577230822468451552504634912234028563639165292134169993473367278767949047312571231200046551546843414612208954050248642360739519467125816234293584756907331068184713115060479287586110732302027205654961015311027349785589759242529689769972142464613167763873376983896155881662081039550522705952041471865928964458510242693546528830617793357067840193603801850901940553532241780424962967881830435223699024988855643749346553311768141458432743531718927846311786472975840393801249842542634015145997225050446896666749845402655065198692244967888966812507661182554670580449409822822690253776663566332656123877482869279110158687078095930522075384290818565510188381237183916120112607476502091073039101492907476725665981371371015384863920843936200481935781910649752151294095630719747770491828261946106223101405064237585909571613217201628182753558209696261634728042945171806542615110671053356419162209772180873551920478202002165638515727257913851125091817815911905006776822494262942733251492348310598765596465660648810431630894373548821499457971941205183566313010506390381466375762968221660015065920964701966854523662270217298884309069586019178047640284230237715831307749043278681878138129601812858054457654115734495848415688018123411086326446064715967537085591301672229598101294854869418215765375058607554051917059426130972769993259024061000843638404944366061291881828285863272083011531929221383296392024838769757800102177481789178324654848643008892356005645050537684817252232855876776290254580509890861196021538423288737313166733063637146751404530285846309457086957168840261823288844627835304950414589982178672720478488481819250804155954287367675419247961864444830256038740899355803371997483645388034717514304221188326593768716841574230883203823902462918225132938692596847163213204607641145421189127572293556589094029182041071029163064490404049354664192952021940830147233530809831027458342689015088925906166837343983948007966921342259814877309580289620161452826936722141538668965147888484349371382069034299936543698317432286665161007707094991291535689155788651392396062332344056551404415512717194882374144582033909516080240512144236910003375966822133421987561747455705652315983230208198387722531447197564896792820059368346287151300359988737109389690929984670104669130434673775579050785148902891158526688793039708933377434309905525542589923903988381580131488984860022046464999408352908443090288688345971059398269524551867914703759662533626626174879377157336439502732704300375407887736480677341537878096772478369057290142457175904327679492781835207717404222346517459549319910826226447011126310261343849284716301093890896869575608185131906544494909905425344085407360134390270922338785215996327175450809361708720794461288152037796694534286846602602189654951314263804391006860251147728757713922506879707402463874173315441757766716340647590265889764702329344464279220097674250292625088416285583515438124955328011397040486807700491283948010500652011924072587043639218589847183260222400356915742246901293554998430196417578100709029400924596613921815855538866043674888675379323496258208735580037657679607234821245493699956078175126990215439703532100155949868295919517768035893704165840968510688877462387218052599599887683805176792318457861719439851771667680214292196211523797142279822936164717063801840491306437469101091983101493727981332985655696819806512116846586949502738346209778882865578850754176569805099997668080612217970403369141107373804376887992959467379365544525705153268617106266233686188684331994857137443900230150788405638662120972911626957740452558342298086126219094136778323112863506468242616537357447415995910824695985180639824701329661098847885616390024313332088843259127741410862433574965862207857614368474018677962313876166343694634098279657718884034107749223969679134838245532374291890097425594289884963868272770021119353819842261618150429557210619523721037409338773898834441426473535453019623753634132988838072039099247529399863648606564861157404766804690897369798243755364958032898847563993239655664547580621699314824335571631572862355196378122167266286515622945646103268211238669355055431946365345696733642418269067647291069521802204501240338639270634500429431638363730997059605178215676427562674121357268398692533355324382774392010116795905648691646378248823201362417018908438789320228055689998933456626451039897602515897803209454482185605130971213002150566528332119181517385806505050387751926043866604092798395882532769395821995887134458024763579437878912755766029589518661427507437542920996160807626330849502410132719707514217112874321690986465910045955682977064628889287831142179212531310748324701530965303610622256940412878153444249877025529838817895184893332483611116149787767389315995452546557662544825692298933173488512866961782534999181901710978295865980346972773449949885173310901635285042581102250325786915930255433827355497805440474634101133124619458003961334382513582049381983866751329336567286192256174364661185818324327681629859617196465347671691037094885693801770965785752605634054572937170410574083808719701893353063608459447597329527983833365241203493199471556095509008559488876515251325169235278650862856397280823941210704859631231743785977641592845394313466340111290227036266553088744596027915564557783014493992301801173107800377956033121495114146433637813207550418475221931513530555859504831179917120133365069107315718814847311222887179885094590371421883443886559286173471239129103448281669419846791793430348207740155415480219548817677360243587374802980115420851042450019974202868466404599555947921596473965848451215845093878611024438865602273062224883532813807181042184139232976745487568375079118303909440045760429303635820872961536105544477956559070836139175200761074290261046917199609849578237271661453061894439598796521684150483916291141007564323035283686923925828375132027271283385406620576710469579441933994142998256175667432456960461191632543176051441383341439762032676063520246007496109232700787121316111186750123382942745556249167376200080367772756857488966114568909121008113470914604433149489182438715308169911764799077325873532422854096113011677614891381887582174857221087509490482776244266319459239477030116554032648098281713815743002360857209037243398794320802977038721419732021837257297446633413587687954547565177157836061501011997499175819897997841314530581080337646799073379450701017248257267310141894604314743915110950808162673041292723360206587237829407390925572829786377495670862685017961879943086084036426453634935324876203387546130979912048051535030950172587392891334049363998768931686257195345096259881367010264904977653829426235400550833182088164751188307279660877372961594106192841998154913251450331789976518618611293488571834123061181513359128622547175413811470490818799331453013435893510990892282619911688205696004972815235881117013941696106079242765845985534240083300157398163134668207475742201553325120718664716420792726992490484207822071154503164657971503978327265213859924457852258759380288077475986461350207158194253086027848577345821541105952909336054047647561917990780216218267211126758189302400618897165528137472647430788697742984988492909504839708108323581047512264067809216180016053729777681963975088168833230739685236142245769589253476662482582128304639274689253334684873142691743728976214863007618269864028779503186084566322002925099643785590691133211892713840713637645274902788673797331206319258737970724184158705185598039691994899951088865048514689937646390848905475082162375827003082318933351472297006265452419182874948558111022444372546497661093707143550073703672797864541972449812694222348586038136988417173892572576345539764722319162707684919238165671945831467784623280077815125924796718056152758096877163864696889773095920959535075093843838806839226618809500281250449939173396705893192948967582744658376303749779516769225850796240240110304822690386093561190564896772143449505573215140749518454986615315689552471260774563612762540424337142269663054932353713376074081456858549403796610094444950759447045548185047218414775309132028779611094387952048583050289340756573621647491621829949532622897020557992570677595547641550124183767583606286034032055899463587080082416551800794059348959022715493290565393753100330077005927246477159984612682733026877088044187560965997035852355831432367816664223904886320817021593531686479477288397272594183441667704939884248769361107084327235964477421539568542617061391808157941204952346646727539136249587164243440758583380591830481558768979438270054420748738263906280058399676536610987166066655553839585401853348907481445263183175167709587704268989309569841690643306870245439649966761552756438509936430009298779717326049324188537599451904007677546586552746031714117506926338868980194353903538879027869006263600135029371145004699829814524323154622609231622804794535525693105878633953895088471745639179477591636678923256048558554282875518740086582036169873884654152442275768700284702171643952371953783227222134652397507961144966805372367781315666886424067675617821019780341246727264183218288817886914449201500071291882153621927450196986849690236776225498378816207889615295928277732374193931737603094529344062316966597398025930263028455583037083679828801258212908658129972079386757746673709278858147383037441727179982511030132212130685631229641468576526537706203457811912634712905010683313956399959792385782227837085589654129178048510126034279470815563875291688153376333982146247587768649811474651978413149866280662289201184569310309138801999734445340343837773421954405536639860337907351271561922883630184616796562482411481658203208154100413882641847654361115624089492108307564818116083736932636498804626652285862429240047583316842010427694676214996626167849529033362440749995383870221486172648590548638688050267448298690578576215119921400116990308686393563142515264246408908954959521558568208344252313970765756775121735146936965764829538123641410934816503341901980506019852493892943580890581092181346921773276825908808832144606655231600067669363292240755956151746140553620400312593402295351614261814734582944477061417045592703160682003675233821303958686739834073065263910131845741257383067295031804128119384341489498851974482977428237867457003438431791128990861486718121580388041649882166433801251776373025029443556862991339160167390067359085256036618278962916047371787346805097714999864530046718705666119331450284748081226084919755723413461014505553319353420941404693114491504988270082935110091967367180623375073653135993236895286076662293639850582765484088122893095937806893458970861305048395476529164219038429776636942238200270400956053165660956250466087235060841401541781845207966756722333225815069490258596918128284293824176346068693635492039087135790599185275220306111077910312012555670583507895859889465459546486651842634714046832407701413103184868751190905918932900101845052101723462706967695254228104965551361808918862425280235795327354890502942515588213598229898561880780683107659511640124677355325825330804676205642978773084312727557674092215237780794708836286501041863509498764870350969329789994822804930313923514149990150384586238986391037655133716662270102587564840343696783171892185325868644502843339694435714031362225985533993926280633072118177661306886927932028987144054482629121957244096960977186946303144215082034477195236903199427932974205031512418465452182044042345287936289332579799708603013126061972948694142577764958311958731673134435777664506406117989710038349821753539612594216843687135570982270634268343346572706920001727896875337815993053618441600605740271620406629323559853855430884968588283122234787249366223134071130981921572719656812354436218400669708843197806391036255267001475635908153582328039882326895706243479050520380428424969710607531041249627560849252274014243497962464728706977352790795579843010671024623733846910245514524946414082694545832737994199438624348812528760326918740405922389310134811994478666120286864668939108962194979259739259663647569806071759878919809133244153019676863038190450626601853160287713411463621196342998191779675471705937336800532936979104894800494443229619185632319622659160098603449611894731235425343608595388039007575721654690862149546907809166764565722228829006126239556146480825151206486398953838570048091612879757948629345441280556356071457800656807797028852814247421429379187421023116949319002324875698439535829225944492929962619777181804087399535123446034227848815069845062739552115928465122566492771828052346113363535999385271683991091960875100758325138123563678104443379336555336348319542944619080552752694553264134098452567518319258880311791456061085840384406509883057834020656165935922938547231546116670664626139536108034526192941841001069076558732645987711106739796370415662706544349155614639010149916894652528490990592185195907232290293185892924621160226630347647197391255573538858368422805285797303414488721420533556127630936364690835700558627824380920884723784184969019398612557885516601408132290412288687312035887938975033053576914679265947507958010838657397704587270020149026779209306016583198256280772877960232109858698963937968380609812981987525084532263915085696998007788002979122252857471059489053120803467308298122692166397073329739990143273569484958022962328799634196426359465459516047514827287254962315475274045672378348912633876872416004786955583380030377938884784330711126351724742733178769234581101727071208206641489489582937835701094618631884551213891734362645024589753948570301811022021955240459523371939727860478842725929682043821294060242577041538557967939630285851493646146512310252609970871142829373540301442348224918799908893000035426423562092247116134061483882649501685565608390708690982134987195864480695673182644123289698472470968828350645728029976351494997910446532171593596550185596325767233421933205202925996835326772877396524310408372760590897118138803793697102623114093614158890179484860688088895416354844336891992105182732825112718858748212118682888530893961233647563707598100832126793230691687008356643131579437100399617030211580833527852104385398284928026775141799500052431849135553153191900916413896430595156506807609572565565839556719266444570652455583552881948115150212195418892280492737508192221193819220523790891545280448666946206919957783534366984688939234252897198057678303921526527766235875637358543442832023749506623427501518445271431793407562813201349579606083094781521556309703485125862100419192885648537752122068698621658024400048840959576897404158135246530274500681367255359867762828234807487862229392737910568516177257774834130369420641612868387740087134181898435453730394383080365806489605176306182078577103877670688655069211773108937855637014294587157003766421248034250561290783779670911967375058530683524420146094792024133577448832663977082495262676949700883286217325239362358164590110806696151244308947739684427080636013814585541816682052345029126403067929333786196774719787081413185987362747532538105193624448577094134005688339847942148330441042029765886702804481871637508168442148624192471813678500601879721246155967323078212171190592144384168428215140442853746228235544101771920614259540065378229943625892001044413442416472598087181320716038774039157757128586999910451793282248777091695090021799689124951618719833593701722056721418492812169761312707560759406409557935508652981222057308818666031542305816312834954030861335491436568104859961326901001289601201795323774828709698555504617528461808230297375950455919060937276699161019860095568840499940491117297627448284370330771416037891018501908568686250509942803513513685586733227842921460581841361246476852903376930037245302360783020028744699202727349614724839556667926663992969553196613499328407993305776484781969200066872148200769182446463884387865544001128415473786206869812558299705698768009979441530274016125492312682635550515235864125939832330740933595513171931191093101181034028722538848394399190007488163644141439736208098533114164994013747483253176305426961690412479422998636790256727458588738372034658323817031624217109330519751540214604420130572598786424349215620825222188759570429741218257974453059404366265858325191618747436545570686749148813663638211178369846345643941230360892368977119422176114367341719432534519635308490104317239142771119692234045986523704321304783244748303134285923923258947890734672841708979040397490912946177224797565190530025553299068600765673028775610522046621609869304656212326868579453415381846063556088396811535184233258665632831439808379139225976058873129704932874359474390421257431649604021620868752651671556906314025972954722609853307037516408942759850691379700345409141249842642816313353417633748070246659931755608189305751712552238461430317282079908308974818191703003769448543431062823409548550763204188512408042664736594352150750776040417968496253806922496800072779862617963412832945477887002382094087444205686572370463876179971152360494636912238348013560390655271734078848234132219635390623957379817046867673337814670052990764654320535574064288761354289483925965456737998954359570409437767021777751906923643469021095503925162838016199076979539901606813022570660922372481371385251598181746867953284026040617088002171265061295303072601232536707746467414103934245319553377811925925700346042524486539490115638731208362683438930187849534728692627146502998043805640076270047752759470064575216744818527606798793874312605179754039361131578999476158433768915336454362386319628632565669568609401347614231822543439748280839218873549642789175320075029443308952051769420240860603464527846661351950278025218583456015584637706411279895108836167015988121066917598035659776566732543608985298552462700871864163617733995994557889418617270960884304584757313933784000294141436069442643130273240195375981284976413984316187600356995934407655142520898270372942349642889968332057080460425447551438995888289024190582896756123958967831423523158458371560101000192786572800571071085837840580671904128925090957276491761391789975389449208970032443942272094596984794658861697409389058532447935181720603105974136545731788883743379851604156204470410386902255401080844236558008831877979036957443374363257727428867670781463489500575058773800168897332394454174328189301158957134942613016248597364195463026549185316118864836076174079372328949287823195242583087974119933582247568193172080573303020263349680763765485506431047904762556787534319934466613494634011012483170005743465972421098917504495826634080569678122757940688867233234206853413791048777529454198401537698573518594447251098548990106653938570360473810994369271549197572891933302525475930873164631006866208484805762500164440510209131770673904890603076020577820833641331469988833611686630362467978298631266154384522669748548168105111986164150856346853072563963895493041009919182765886362556040193085509285626150293602009926358333782388202883551297962395808484351095160000710235215796295857737478419237945096142732859913132435555126712947333845429485792525788332107423338494310822340530606917953411794996921526151692004434922045820867580951926493305618654021663752689388796651443954860319886786548428907738330787318863175296224743751463460792016314358059112224295866912149312865629159241276577279132585504398063994483369677879766848376111357517514027927888237327595454627565611264501682017990155066195390348566446420310100777523362228538663454072715442753660514177060252236841251195603072365820486384647909370830634202221499968958110977528472642888855919064949313845010811457473069771206640912838622629374858833231926731857507988683427343444250350266171453075297622379616659226958380979142277233730713699145027839913047434343771457629663125181594230760719149167875713208585513400015007678639974590126288625554123154429130586537531187114814188205671393685042219689571106078405989238617603769358227001681020416011457179798445503741135025879539302208718812427341420622105559874010477737308299624613782967167094259225479425351685317414285151364884090440010962473595983785610341086803412451258779602205920044587388486388930930931868635502823244316138769432413720526651730786120822856596133823675392843193512927096566165822818898486897229217346833923811831746044943730546650735537483849745055558281577823560625825053450139436867354373678275680515509152535094563576884604846184510027990046707631497334561895697454186587476895867922270921335761900062380748608533500751083704682470068239718994770101539738822982014795011079665830041680121674498026114990067020596443116637347949156611155027789237782519746644327767927406871751565065348425732031043939615676149082282664832873006412020203083618884976801128805553890564486877018653232650649095197256169544358429988376380467331306400078248149205511462007890847149388852022226430466200865674372692619606151733413933942038259070330361948762270721992028075893323145973457103136993973123831055612384160158539055927880887885034534528411977229994088045333007710124304151931201681641166395948655315639245917332757692145107764271538059192288233355190869175518432759396369958147926740979950244473286552512554397389418419711352297628784924814595804360379935805376306317249777316633038871402896187369380341352332380367580571696572924419174131764629622616635505510661332949633227521937516643083818792154250729317490747907365592112291950871285900622640970291049110286030377057023699498340997981254865819361939882823416466803518434492720311856914847132866113434582715983418342479740443378388691027884818442500443799252704440847548825751761488426035622206509879263728219437668973127345474737474386329408516990213161721322285467719587596028076831794887682177707007663924427657261517065934004233222637396478856799117859088795937018558409693103100105472811951849062409997791021129442473316715507478747442361671208626450213796889794991995036848834939363109758540283909460445437675922206708787337670964678763640378995896672172779294752628357334449424427982864639639572454782251090691937859510379408222947078867747474658315239333912198475505021083088568014074592595811299459765026221208760273365032342354085225069915255329204175808299750039057976457387959578481267844579162281574089840484919276335571029046915023815404960735873729073933471021829545829575030429722000167704456256941270443809134966136287443816047483862487298107605354584921514072032703874421298005882515120369787039684685042763002070510214543832571791948016190033603796159955116305699817627630757631561926620081946651552612258832599566764586631184613475744149847237235565372167651797911108810410504216654361882887195356295071839248045833102487119780418726499346010842271972867176615609806369407635410870943231748133212932659142199964909981651490381285462319371996565904024599830107254077471344310472807946518988437018736599175182906962264431190801737378499002742274350811119577058456170349366801443084465851943786083493700255129715794713357763821741844680057262360672494383841430245592426183602825575115029652985670773138003607690455757232303898469830970444003051911016974827963150549619835098364623824960439409933512577824476970598963825348386589682821606072717729549292359311286266795549665661194168091349525962749557423255600759701443093902539369354534140137810582936904164111975963474438159193249157451044659447452939573062877280575985922651553673499312618588491527590719922767760887119247543226903994944745961332389659115516123707256892386577066124558893288526467449026040357228846456902668144378069648636513272708824481515188627426895099843555317769993343407249385484746266873570733698850821807228000185498147561188303547981744927847973758195386506713784770478521941092961995385844364577659743192256581083931787443504333432370908929278731368224786513251207368098612182153273101699812336780591562172475016719195335367900298204533748171114178567844094986588103266756028621533796891315125222593521023530974048138719869969761860631765465474568429329193355285221184290235435818874924441766979707284131674186374427217342937152585992166568300934739009528463561845140641693149252014000532209909924281065153936378659490334364745537624947730392784111225468496516691594363938200971354932536214352989643541936462575570585671096777417466277653052948450126932313767891694417360838882305968774846060154012979076227309483120083933229891080674843504222843333763340778607752007839593795660663768451168103665976113454751590017796761543540134125944903474652077435701729196316009161371667135042773512723658781286425356565560908513421985978037019096392874818088983001521178964976421635867831829087247372696045096659260322843283313438781998545264827814050190036982073571578506227550036996940409413326207276751825301931887305160725695646262295309799740567321412886519331585939818918530327198007830230564273233784952328871145616918962012334836177449400373698271786574575036222482248275220802950643565243545878435219066337471004481871817699013349659020175494405312130875040416765327491764744292750947385780851980621341338495498992832866064564268994439249895108380293681759939122629020068115061716689981559075502702689480862231518686642922010638306439909216725928046550216004961300337789633056058440793071341685373390563232251760877003669169353091898847421249314581662296084119028579624075322324973784753343429061429113922427482409157855892814708538051234815887573704051952032740154895963207105374514794653218793990105744924155698516637942900981867735304449229285297676948013636734101249987266631046238210628946369203805007648436223797301906122048925474932163241394612446063792764553064620938389673307890101065240222195298165414677520223449137032328518297823900803600244295429532654507077986118146322833715529098774842433792979822501565895742918522820843088623460591395474877501229325141600483139565807578211848059352243590050066053056964783029918329212049251526937915096756055663592869414453218937320609308623462256026884511422316784559722403008673732874676513234505821738182136781945096838275754721701214691513190170509828888237132924385158006904542138001636833492851106210734065920094767492613626611442793082352612372036577670412794340345890259575050879446733770725393204172422919217314093966628682062539671504418834077414496544949550771607475603508432185728285479002887585325770099698042388427564909385742171711573730049410363362205862451710973688597424493238477699512484271662311989029021265424977102121989823848950394348542250245345264931827249334040583352634107435615803500675466336158101939822945100935158919132746143843731931229039548703517761924830379981086046797289998979002237255900002405628185435058400382896871108571032239318978059516393923071591822437832184975226421193878506675054041721926331714701902408983244920538186927364715642567414814195881090959513090091345866029412934752340965346071047564105321865940936194892664815348122984161582116961831036389210693261874853126901133373002359117309090211591043541096998572642939962132081970170736739668027204873214643124720224010355227347780473893355879665367362128160110471805047999542065993263919535479282197258289689375771528410570852058409974695086380372072278582572784665552363994291674280937033906198280667478341349981485608133486662325525508464609904748371361009427883445669164717624042054550928378155053515751477606429061094755939819225591404995444605038028972494297721840088176825682822549045268403616856064201860733314964682935378033087092975497117732378038361685486234686016428217207040902855824243840750824931656590975503507965230404530816268626479918118176416239170901541329219124399407422956207172090273642021539176725461760832368300745302492450000207192032409381426852542207408648289667804077823748088835176710584722993465823584493292950330518715629083484362036897081830679664182910672542582852671190106788016792111859784050326452851711550415222082078536469936723785519588046471682306179429583113189152390856407627981595796025993287733138490963489060765758184399823522783908611018374623695105500568291982178498064986279147585150946134741508126602462401752012710568004741248938289602088175941641132382607348062753675971602601383675550616385377982932098479070672429922594686778773593718579248237595805719296296770098617735591348017949346627487555238849471242684572712731117578888776297550824129605801883701550603096058549174009501427764849200172103068773225853754025083228966391615559052749770131370261731979937045560012888859716632569908758583023435778557028325021469991532775254153921823710049219048435817888423749842074259279081346180356503479174210889485449699823531144436818661344094617425733729764233204429944369656918539195814895333807322717131244157913260116146617152322726122975651406885991761022786395589148484407724254270124310433098902877648945500391787440937736434039307171271565849567523470503136294639807318316634476280285555855248949046472009193142264377817795986267055778583785521878819978885146573564453056771351781001578991820637954013872665111765476693427619907890589599918500989932044760490428367161495773059543796785311783246313682566469303650720956349063904806282208203380972642344168837606108355415862318228837498346533326278597841793391515922809667446377270851562432441776182988066173811152042860053757316366528588807299256430817468091015048446697584154117536649495289695028526525440626100348898323261833882534066285647784893687950666697951296821395656766735517248838740866757135940700964959985766919881088896848438130083797605147063554841382840824781643422686503824434327515852442276742352887301562717101153187720760233333701965790882558940947389795314042103534777132159849176903013466683663748335546618684562667748676807031600928153041441116999138492079612524914271462768885732086712578612016084087613891841019958264592719339583762911069727684610070059361344134913115927044108862736098842565511248720358553098349465977192212613157542750048415773095304892004163884763110914386412165670957128150389652119864693682684883898356487833796779515111806290476859743497770245231102965089006342994369972490672458337038544263018212407974101958575038005412704149399942565402328003064437584401710699248412763221240943212941456653461281021252084595137836622115356318469104557398782852776891266647803483933090790131821384801600224436357150566077475351098031863980656254372861442360207921607772806526999310794977939123197066467613350765682802883613147752181973446171780487642468247123293304423378883002911531278010301205405459421789234699182089964161919695618962962968683720687999936407944326047148483977635435371400359289498685303994315016515365658272609065207637105378055474695057573877323353904005710311932679206367976684071312998847217059258947037631343508408336262800857574917896696986701791660605209185516222343640363184916123553066517592979374525729144873257834156710012169606039431293312396961253689942646937719195934037187241061906055918156038216500531361353567094089574111590319694443382511478580911889164770996494802083525570589699625226214243336666855451280635712549533678652175017001098139855820198261182204820819434823084804376454213126575088249660630495979160754565199015302000877583295397963953059976107381746814661507034907777486961016515245408953915122089621652249721284096643933737095984944096474736148713062171219804269965858642624690546061675189039383921300661189990906456613702566375790128079270394626263308120020892187557963831193227172734714226328866980208267435986428790427931531559281465452738051870543992500719581513496155680485434058817609370953368693105845346024699592542324847423688970276347892746185433317570576207295958705991275427257525222241395957171002000550077786077418898578320560042951415967472628547386160144556626175927648943362670582821074817718314801381357576582275288333548591167440939094003107638410544926057408478245584035795796308307398975383741845723493072111961327578205871794707012823103110783988362929417719503741215768460404018632475089075633172509082796154745483291423597747093895803124182713766766370900759231769785593949790305727698870150633590975002162767202755097111920755929345386749012539001961144774804601302269834333551919394634545641848217298715115999203234079499097167763927372275065550722633761186326528853296081383366745585326680579164436997200628982415902740311909039225584845913119035083381004036052781256867547762616352561267791972654155203226168814697609976186131326596083689189839122128761890795284087544646742156953741764803899059287811875383385437543582752010347504065051776212850984048709784975720225632683835272200826410796351165906495038566677480680329266651673734151585696090556464025740478536962419501248371860045698772422381179806248099706374850295816084486622248849212084733315376062358987870712380734272650887782710779050189442484415098581360703632814822199376986517356443221231808867453015409334168921282836083647941565809739788817862092627456436166670206633036497484456067108836005052953965731414807981992970820645209747345708360607730480851309233742352186152915196839950876477520366180949630693495369195105239219178270908708844905521119362181375597962907845170086803016173997138216461625425760130250286325032006251373187693267797319024263735950386044382313966946598971011892009869382258539703195048032597654997366173459648576540602029269665331101910008432333403476236372440333633313987823606866820919225333321364012572901005034572098107405265454873734790988349729083349213043862469493508858936257988310852412011349881162771049245843155316829218208964768463802850615884468712284154939384682841512319008880307425316518848503414520992276736644557866674469672303246156043231118134053596139962923828337250104703446060083287751404825324960982360356913891432584662306538251003888600222454882551909155314332932892840054248305885120545213392451938936316017917279982414947590073133337935355546241689835485248823192203693184693872296216990439409958855382814936440214610765283911879252412976316824571829486965691472396977667167816621080982659082176368325097907214364541947723884631500358750143285334750560715599538473034323207691355971572708839719547571436715637221592485687332562020104681285029020184720477521103250379696078467671325966533804180305568827172097385037482200286217442223131493842824399229686716163783679684993778721169708614419861136286385261582231998442296452355985376426959063772238982688028023217875443205410983884946906985247779073313004745151393503433633953467897550396885251737344120607746503525925074185291273695935184532326393714025353660162557109232344813823439642832966248447080887294052524150622616578439383348087466281626473311945046119424306927488500167659074459498525903146063040803470814106274201518894263567499895345869605381213863036256529719981122650973496595725368311581427470305438098835260658863055003818418326057237903639581048853209495011603137356852924475498507877385654822417045411940756845486226068945417816712484834638345416459354669304145985081561748917315928120757628747229917472876403896016222494112285019497898880667888984761712472029283077181262270319532577085119285493972964673469638227873916826155558640231434030538682153520056401992303917800741028266125110719766032721438211924082586054375434627102482429169062029998823802215326860289630988010575930671186649700049048710727991278840355105769929694311507959625902767195590132429235444593199974458101727368789292946190062240712523700590638549766227201775058101519251662157864975101377319219214124035521540677619760795484844419617912347314689217329534356520379549435356451686305257680484696952225681165801323104993572873627511347736969798739023246685187631402873426103822896902181422508295053917990391537531827920988765316948067768793409358527859041263958628847705863439771198832481087668021684528413968284719869503594238280869343166560950393196147679162152835665923643589219169455351150885236585629305249420025761824082821912304566693503371759832370670507128623837583481395478226578192460022836611288028252304536360578346491999463118776089817764710684906326516590940863058400930283848707301643149951525212324632065288994996649957008183976227308505325060270608881927017071390815566181423880789935175099357040639440646429328593647076707999978559003872086442091157131657913330426172132983088538543883569864076950041198588515259648576986731048796106495484950240169471097715438500548309957392641939013103784218055602661634515230244850491967605746990647362202399557408257311851837004987642721781579009061041554643577992810431619279909422031462205657118431620260232435861719775598154329228291621402022172631734331644573684904986055016053298590394494739734046414048025099288651859922087831490631787926426396729901889042744242133188729532537529721813925865911278763325442425136603879200719212969481495979234658530590128011270815372121892398917599247631450266774900158613813995120646483813025184466706337322973958316768316233420756552498736645349419104603825049892897079260772059918785728436111910910704504914964260526509091091832752751610826922034910926882610795280890955022803728457720548857482860670439745553786941782167381613303867686310797513352487239682433588207513226791204766226464180150865650469580313381853421341717387759601253307625551312060333338812542738772599972305796062453414965314711462193958162463692622006347260004889651384205172531081703531047002072558962429792836979080344150087119901384880759377017821764405519848548344416251158714220657554167025941066335507947320479682136967136257199060393799929426240462226352409840901635962147258519991645725342863635302306235964840282245145055600026758481219639929543010736804447228484885625009669705498399636803124739098945571045610994466280329235925754533750690294679482784454735742829692462783379212273096471061296867315891519648128597022131491935840807434131309632556389633145450445311984724127909004985680717855641141079318928001441522456061791026198798259002706542952363071753419910991588462455409948592403099950849093843594597925860664395396773191208226470738582361472009858217816645525991254730473331498905257662525732662633334342300727564065640907742939000932469972004590095749931382849828721980031585878783684640530333556940215134872970910353726812495076244931026229243297971905331312338897957610508637324113891674491889771468527156282406894307169300698718547343696618900555518625762158116291783193976138938438658429798674217570027598838371064267281996038799226534078416765404402004690042909127026988510803656906912843026346247564047971753694138321548151313212301623196410961252327918675843483923893466858544994194357974741882487206573093469276059333742716315978559108503328946288309450034059798365131236016231379574069840358003817502514780744566853056189216152810806189418028914818022788597211971517109362672986482939480200797388233886498046961872476925644431995557934250545689913874529248132116493512633310508852153316536266422627268606173051970348349071976506767603848634570349408749353486604168444773018583661248208994436650880031499794464597099041244513546464404184448513613309543711591063477247997349563785655262602844150561467854884340881615839684499544720778792418830294099415038286501247110902477968554868362662273720464509610957871982495649321206476824229375427553699142415784209770943045015671986990726424528426021166450516551397393052396090642072578888174914267243851823955688121851360202112393058112172552161660152001803219156060986609166360817324353827258956369642287656875244800154707389692097020192060695914425756005272611874157771004636940484189840430802693849703341164226289571198096762333202863355405817235768064814454904091596413582725410501730594833897284409280714521393018669942903202167240302762964208504969510199337473969513492919248304666261150432304636934703335960783118018413687473300495612535167748053411213891805173112780143268288582939758955433919570792469634481495623601226887871274503587298368711516618907314889588988480583213856043176383100316912917584478530167311278386797451697244796662501362165991614130099929647783166803214367787262103747330193432024114338899228887626027098615251098639031782769241215626381175569320182160200354311614795590338607896556653723485523198577824966904292624491649576380009957578216756233440423535389580549418436197210756461212810427710770646989696970020407743840297817975375644072634351806242852157990998791355194810945982853696034367036623516302734450691450512838499746778254072179191530537504291153341871291520922385374019391883038952220063186569286158138864740309363082576523996523978883019356181923762259093538894916996644342537741347472132990061015329546728388620493926108855509472984973392915526364898668668735303331162433919787532567085762602205729680472156479852448527259504220856782178320392517425013125700093499892050385766609306986253907263963287051280028517628941004213864070376916047612518363591103957905143333317964135633276638290653332932010149424130234304084763073052931735882434482708645847081135979254571971049129669756408199755808475144273385067821946889656090653698010499692231437783005386676292088518417823320679690426359476675633063229224453380608594073824890034700283204069344263337280750691511224611825246809939200699753763273731988311966558803494255313093917116478665106246436224704338513600587639663736137844141899299712983303615686389151487795955983406035785142766838790669189727163815201707292856101527423859768460716067090161415890039037754636714471810550326308423418529754738909738162430814916995743923964312711311570513224323153641728940135181920620118654254704888459324087640282354694564167800853938579361318751133219354592644248449074871854318126839241675344037209968339549226000800890478646467690044667738922391091804535273214167791484011459703268817139124011790163145172975354186980229609465946596963097329291686583266220817168756954966064709111303448420988614119815818027833303027706407695820804476749220377531003745143724373968607802559827144831096413345243787118420997141962374917507759750941480865289803595426183284898866411468300399817271951483868505824332527217350918514229699084415199335892917076858024652801749982797680237947824930262302120890846105474701333693133090131829927759517178522899497856370192657727330222024243736322546955167449933478374121587862390619703966946043645677805525455348632292443810410802440728426157049841705523569283580127853168864357586849789840067580964717495893155433185764991615927972024845024432542780039084943574174630444007042130589096258696737290079369980513891417756095574448135639746253264249583366149566934572339515282490957978847214665751991587282290948523191263463167687187417800833195477752411747097484729905212527534489405111587417695781665145492506205773956186704155200474074860842629732945259885882358033702616125515227817454937450347116017168208369557252499017707893449048614437849231906150050997500180472329705421309605940734180718467849525263216086248237245729662801165293838014267646530039284832073823896560885334662101340265170627476366523320807974270697829928974871105425512289281685764850731990474963832573649690782406416002125118806923183669651464555906610964631166461207095395187320216660104130068861529376678967497998201195493011388672487175768258190696587689343012445016277554023226687847541636040468050322701561228970843605889662298494737186873407047157818254038610592095510993053227334000494040775085589417561793448454738828839907947088602916055537914646856935845265164656120677065080437278349187321928864495981105156327980020231684494050893512235142321937870872886097726141194479067395361804104145052394886497240794544464663246519231505909986341704864634649174605812444104217076714708070393014188893079587838483049887499473312072011834200304944309887028271475953715519055623011676745341887560184742657177811260630633761314872780542398649349041645821358739525234561930423300582872933707450420481360705949824532648956470119694368007504973142605792803461004966897606994935796384047861434769391339444901232118910717458482490141554980223917825778455440510037546115656889166674105119903706673917237844628002609752131836240955267094915863282283030401367608913373840568199770583146044725657021046559873552566773177166480800082380627017793198184828986592182429799558230927013986364659301223803662358265999789529497330830474406844283054854293790967276112676547888501725185055458623731805244816188491216457071971068371164795649315486936645666601169797615281294006898665913485876516584400892488489674535948040497929373239545088942094342080429456980129437607042200359858527486104136975260840475974055507676536115559393242615525681206863123428103788761716210428456915735950248552229042085777744555735483413259884374150568890402660858888892456822842538800529499404188647117864973454879401490293767875043094944336706912094736717020402760487531313013180258428604556157198765606466061454425357534819804094998609579847886279590042954277981581563909916344850228013759850871463385065107854334950186121324244602745841067142670513832878604900551254932998029671476314979552389107031706034913693072811069622615077845401497368910036709245574532143306711596774386726342165761905318498329156839597178041394209557207692635233090587752192738420122654199255210184179724504307273201943921056762148893901884131414712818392979968822794138239895597225204085091005176212925431650128906927283490293759877405607173846910562242489816645665701729712496791074078147770305683333589388330561584205560577357458885705678395789243011311302194317971987193718598433146464887690495796951110516841407943839467466867616270790908943915777181793230881031207302443455186819661239211887032454754939670750884440131522766058848655870512213740030876784416132077816299959461188190195637962618598225234757831808475807870600135514699216704073834501333755526714270234583793463940287646518088342819828820279505886511345583135324289690408620107767032923406139480701064257259188735455431123240153185145150981705694618112136059594271543437786616751233355450456779469708892833253491048499567736150235250398626768086751749784728880224987789154282932997083669377527938609879426169916977537869022163119169550372065821235769321043615004422903445309355823181807970841502782413958352312327278718896126819459962481439340434113934697907128247325523057515283443659402357563158884361869684860682549044634420744778318487397310391370153962967851195025210350016802283306829929632769144767298490013428319347648157089636514398380055349902870519929402506024608188979093274059351659716447666110948599520841920182720462711086112579351986300747534482988571594966047671130799252619534170408152434764000414944662896347945849831237648591608989442873194127328489487608948143772532674370918109861712534628563550222809056301833642406305994335977301164556634855435675984829079939849488068327597897276216750056900124647079064110520771634541785303252231897380240176443187329779893864429491132106229405178591396952885729549851775762997258140100232768122334548888209898920312667131226976994765958974904415006846171635040403183078326147153835755038060928697736133148353751967529170424521735962639559261261574670264761890154844310625252125302979560817026343241023133386802642410116232210762022659408783960807055682915542733897401560152345592633767832388652002932372401428722437382064697164818518527881169536522435125973769804592696936716420713545349590244467095068941724384632634257129511045574871138719020228684713566330407486555515956281673780124196642736935036606657149170030501134779157586051825940521316559858473380419938382732332066335672026975371702333217740129934108057636337591030345383366476056820589584108765127701990420086141895446833116902334438085520316972362859996319792514072939165575994677606741308205913344539204322148315431556467336161962970588460590123052029518720219560839099282945908145037316053754378776809333884860595692322516774168070296708380647536416211349299583091436649253630334464880097963054082247778951729650363495172088630833649664094664799027065846555461434210098437810648460849651663917771937149511105127329573619956583828760533273837091108965426644277582698460644522827428372177983261897596920405919307960738961373115824183098736325759215398188347664739511621862080347170579298056462578641065893629267349607221555884753380919973139482530694945987692490985424866577789188101465990539039014330534447350971914916981450747927497655519520140626486175838883986359944514927493213746933001017204135635114330051393274008233987574982880339657275867246598435469497300025297945618705117002133898149933901417934142263609680247954337791525871326177138146099915178559904385463178921813821404871737165024772225992943663969281808980471923070829655512581848012045569402111006081257200279645722082476446392411178299681663284125457388417264505732317079482315458126486213662612665241738049346249767951593857603078753423500176582788641361892411734143895363474666518145749695817722010950713679552778801396922867376962471982780699951884122274855572122816354009781234908891906183416463911795969461344862272708880781152375256887439797238034149134399390371590516378209022212410140913846050233715768447752055714050790053520447898582160637750399502337543588230650926038663938459170028786822923006823576496199152019268439101721879632853388387456929041698954528211160340647452773433663722878776990237787321952968397930258925090709254782752869307567690942313696409841919027417239031992802210154961536971938024144923545609364637027053038199756688793557921646100134449002165072812186439359147057419610894088042769101732933351718976194885565601568998771995339138535732576442376421905216918037416120945058620772584437099498920967697399823098289174566168129127118186577777736691466303431556135680401709807521242992771882881189010990789938045720956834475657400614799146360961977073123682957409865876856565317482460010585346592143752601802107222853465688703382433310154591112104514920146927992237978490851746683710591300864966956769923621869768383218945530543792538017796450445395820138006010166874384542693537988892840783294120694800290702864390492788303409225019000162259623981483347887547903582545377112194881405146773685234265586636790211066501745688134030030299281531121649319640966351708024031397859758927846811279117949200979785818784211558979451315308131594854823863380387954949442585189756393744047253684191286150584696332863404204361597515174151478413341432035996837161110808509201121610490612458440311118937658562965846119231487615650635506780849391537419410786300218846208609991376527364565552500302725640930320076829248066861763956416352345544638481141054472512930673298657055105858822669175688555612295760642463454825411327371892709230935301168636637398211813688683762486418913349918659905654343238949360237582518977888115978906552287439662624088220293575782936029590809824343759893502463615748450140682592812442719630177036809496934106346134677836423460583466571660734162809916675049098557506958214695199576483773434865036852438331033081396822020217210405838921016257784070256109997761451249676743698237190230867198674790684978286937229994887771935385102925321420109173662917267261396335432753757321779631014312109767621783501821673713052858201587441655487196946354216609935363072798525588967105726245213981239360747366038084877074812247082777536279802159290884269486739615702443397604712079047767611653412569420579307497686810525374266316657438995670735731456586644610302369702045053993078794545283486211311752088183223874446734741911684194015987029687426436903030914876058134957254259078143502427091874517713046362705061334824462891746688704891733345241438754159330828164111041860946125728238732569697526867198850716290705404071944334941036330572328682525802573426929096626385439821734358190469456148876802487052253901878842612255251620444687888442699769655124585537984211053209261277924796499615182532887074489400411874327662778834211734512315722745281350317416558043335508891980434352972138386319453136892512501082977123853390820648419161018666340835508919297071760670776584861452851533319364693786578328095142688838508603821361016572014700088526254137492773192785934047428275682505062698255107230446083310094615712540559589678883698282709475569243625759277116184333934470187062563342038487385223978130054980372164546387150321680061276190209625646609166997059353428526161764187102923762148906726756267735661842609239312107867166755321336267710145913553242711921096912953302067298843547357715809056129088257192734666640823622254161393364132577150451185911718277931861680174364362618797240154652488267591464963569068893080498702443640753584837485647639281548235072236130917605105941188665602325539782119899120533601361539982131848922254355476196289856118101126542094072934593190231384645177170575222791925596226461116965330706249314162275853968197002411428111621315409721945365132304207488505098929679237536670350389148634021348978165530032872062017523004241759743299639183428813992741198539348191401262985991442396223044470717988813177933332174507614826630300670170999668331313824353316699977473344973079923223953262203664854928532198745882381746131811916624423070468843438742832307192529557749359780000514549548917778375286458083479499097995437370577632529242321665649626168468499732093120177186480650255194186281597550771070735774087402777997456513698869758405834989345612842355651161915101390630928846651407162640937229974423534256662671409449686258197393069884669619590063868860128448688499753292565848509705099682050587502426380948943744266913168000508092384301977677248125838577916290067333703629245745363947171144260177522973305852137329875675482573500161591164027185697036726787556182343789498649632558769268342922221979763240422139155995777147486606979221644724718374706756878246660645689963016782519774457480060008180408939666222714989686974239918285252505299552658322689197713080822171899419444237396389939965019143054826051275444314924482647681071527117927017184382453770557443906626873775877629948473331623380705380853209802864738758736493313196280729308361907543066230231239055220640429657065765695315649227188251939404491533227502177281606281058179207535678537196780868377266733802608394798118758250851060306515629437967628807129372592252096205583676409883553847737513755190926301821325660417600586061058437140312979244660209614111937421866268495716448932622172126888498246376526035981229816486337102189245270537141594690522129214078098155939863424812790097244874931920581977566135862057289418480098367150473002031899523547976203353598922901174977280411343719442512826728494199352522950518013135813683919974040039400079977365115186650240360142061992280131498095023336417723397630197887702406018537467489688646105107330588158300574062724189256252066776853691217931986833330514069296808500946593354106980289762184311200470471208002439395450572564230702709666433042488373061797848317058330343934545804971763184625522134912693490124674516669449849836172086315531844944811300037968256780949931597963945674911187468008017721514402391563297206382062429380468093178432556729520680724468133231674638295378208038713765584716593469019843258609406855625799576547909590997119012000733912780128936266512131890772828101699571080584905871961407918995141228063145819724834439559323149077693055091179932024512570203892329684742634733080999909799617230166392959336630137936204749152507532892530594701445117264866821263713544610306436093865301693983585746461879844964232709182754398466043526460585642192627744462775571927114627101024204497683949379081210867560915374167815587310197907450022401371242955434892022328180644691902410284740358555022519624882195629840254493824684491592592434108777684416784970342093232364582473837629916432956779004717430918468849336350917074730967662347515634081409265489545098124968488561154896165436092726737216426863723535904471658691424743769531527921280763494954962247608554573390555343201849176128144633464002902285122303623628419133100606732570297379607750994909330513043521760355575229410068734042813378667390774554135454838106940568029660769510882858848800615641524879182731850387608074697680798414271938445364543257621903785239874904868217744864439358308020377943045375183348330129160854913259408871727294829732085859214518034315263922800377630384023680299889381062593824562229264338546168945089506166371535474200790871766571514368026604166531009282934187274383774625341394285270797858758466900004825426763448880319937753341395383004472860936533882992634100295796514597349553004624731708451076873409614163471474950306061997787036329806768318112568949888268469786847459061904350097471362982092921659010856862622564341201806785991121095287362864414118508351353553502261120420815895932629242183519752272342884985723537439769460158310294872878516879082942756880251999421508584348341257243074431873410006826285924397918220589065539468279577945591110935215657603558101845043896906878099630654193007669214481384901312208426015621620131636167957370026545479409673044799266044605872698198539403919291471028640568844012758170831354460503395836514369107931134802228699451746789189764504012795762630892899243790953211126266949464829068526882359377543339552046747074604181766026286182479565096079861835850658889773060141100933655326748908624815492429963517159527932708548322039830899866339842999843526037851564867036267091098146076070526830972393092882042576641088155664325577213318701883836510197588302314699407334527382553018559606653606653315062202830674003110435366173697087017901803563598674704816407200556934390209877273044769776525298520433489630618899335464882281226684671328801800957159223511370643934567698219570764496572463254171412861324074812675980033199586589250936644150175544829843751541325351310900860761070787458070105549079284210742505709384429474313960424759911127868189424353435998718385858164610376010111105801437316083609258633476395357618150188562057407744808672814588382563817182015864465374734811558889977271716969282720902995633265560079553683826963990242517107168382500088136257327018297787878333902885760337881208211333226013431567037199775087284682155662753791474776252035468929697368826658023560177794511151432625924841140922900721056581221888921785106687626605204885077745595079997777421628670945465988736054524587796024261441759391891653752471808967506222275366897727002786032094658285038695231002423449231589096752566238273781868969651271808319751630540756195526219140424508476140487844224966043643951189837696474574194366362132395825011788911643186535161901181806161565890683779409621104652942748701844461183151399860637424598673972377022414222793023858307016803354794775327566179371171430617839160314592906634421365166689688660544775709129377638318988640908879911916524755467495200678968628530923142378322553358613459669477440910438740539587439942704261801060733314537610407626180208237745926541439887961804486720388224602663668076939364646941084386638848789012154645684199943770341066935622937571983188247779488468532363101763345035561531551946686817557348137071024127263104635459993823186744518176125484663648057508309437933825612185851825232905373753995189411930185543626708057430808883303467037468384227167142644715533560206147296851705693233181478296418305928761556345165882802063424048496267265632506532904093300197593663021260233337501952691871872537267410373630740701871719548771044562587846067740203865950348193482091915503891290677125678959203519212535429184084922317781276909040149631767109944889750571125111615480682363048227161995933320212958740672749236004121670566437076680429115760178859840517396475557583440919255745660093696704817818532740183886551101559201639915188892758667589999588022962186063425848809807568724259704658007284883157287533731890806079203389288058637519147334389692281128941050069634691343420956938151789320267595283320941382846931360233677942077350101037243413500160997232704320288023245622233702648546483990932026213771903895547166110980692525714899321070706289660216889763032565949345540074797971705566766051310197246544655121413680877028827888167333938644692830614551153554475147458127148944085446683933547189731742689856638077953161171024193892816873473967215348552359694799078075381546157963271617827109953360107823440244581170534731462816944181758075246385484641787570289027572391495751256223256219419406394469020399753596162746843356554396339282610840756123459198071142566175642977652150011692797128132921835558728816799756120393013785866112375414675061965558474221047949663150285690801992456609338338775042308422672918993129589682037864418440783514946830968578438879905968498531343730030069114447515219807025622495430699232942326080775552932848743699814199832103693175791564232807836650188564111031028176503415765781180087923074325494164184057078403418267823874022329490143450259999492949891655740827830628865196988765254607503097325523752893444365132942357268935365263162889964051295585857683419312554438921311619707076879390064651511172577537706005919150778698508959940677730976750725491785784310555542904005035093120141547805105475017196265407801745413708762221788476240760394463298759894167577857242985471794646320291665932378976565167744591574136736082801363374020455423660391862253557942016179421587131844659275643757051567891166028990768701539184247956940834731502951763418427072469084693700590541079946792026002954077904866580513473972425599311835874248045132204527023540802696730711321509659177830427496687983362474078305549722835542694430741535709502550138133148706564798775666456495768303408754684218419140206214304861425228335219036498353257456572350936436049574191376986393554872790771653513235771423917686818538766276762656704514336461936248782230257620943951859086034149095851546274148931017112755874233325674040732956630897091709135183565757159367608037487678419236548540707644832602934713350360428329410625476619935987773238103235543296649257093734809889126116495561772712271557696434645640889761097826310820719160009473710336805054449595733512028165629984334960220584867553673344478897963187327880714494960464090650936725099894944280189989708958984564894365411155730912512772012109999698318175990880948312868677618539931689066011352604686722384468378711189084280113859114163386067311230002138601064875209703698266645838195150685534749814175706178414720692958221012430270417326417327117861106415029515133998574511934458830894686242960189078855825670833000287810197794794655398207286686739764327295328714212303313299845129996712010123716447234860169288469675280030617201114077232712299854379400614986624429252693202005704498307792127384704796053568145529644837874476924565831499670411612426606435427614109409852145613543851890359220688777631322562296492078194863855572531305707223102064087217551030682086424615896906742678197202266054805295422396324767282552198786189397190860677730043297286400404777207186566046755173559755314933057042252878478112679940037994983690437235285893870507216421976141875061775276800596174232550248264528461132634836661740837661101930364286911047709961805047554280964265531654778801322983619797981772674749384846840744279690052151427495607871732212852416808516760581182738720721012311294822305179976825380300524163769047397703941971738995130306146915786029237574987286450690602885150540351639977242387802746339705863715165213623137617392367981718143640372320992445494621564729848523222222239408805779696666148142693704195539672991031956504350166155257410771558195161860367797125047329537543057141668521821887461078212447797743171134556299671170509905798929324859590273470827125024639659935390709639065689734473377425822402737783036205877339422068099759020497885372099663542300726333897440768800129982956159659765904396053264981329737416795865832582142780893572877173555521616301577535365593261001173636893596092667377795732735840465058145625166640280505109218918828920964713175902500366442945607108433022794557630236673538723430670324717418412521963885992987663166147107734107298332754385408383676539554985433483945598742885654162418213885039900573427658380937410907298458858408133757405144523774107400770791850778493398478991264463780912349888202932977404840763327575147400328784961495540743063375804666544660934446831237768881951975431070669312342602664082458767142613760972274399528102761820721502849691932814262967991738611269374837922095970059670374228590044675264387519675819652728772939559711256022004340688416188461745087077405246521849798397782250406157305213139043059263688560945432193910772465075781754780112709164948419462464127858466221255221530164914929425462296178561361592631518128112058003579050085692494797393680703882592684978871851390208565224072489608490233541440446138218486578189942517350856063031154868583062998500482507434900782804228851415235122217904578647785477811173479731192512600959439652229002021832359255864382854256832105236669183058428305076378646116216778242289539684947876342669386871552163608880326806790588943602873001573531214927822974186429621917795139101593662342157115865436056454602406661254314372627906361964787487064468639896257950880578196731422665288693236430140127385413749433867355132628605677712254900685775533497762806656521004125631542540485036067712393023348099201887457856419825604916224360055633389588570826433285661834892626597729264801285438227633287387747579598269551446856596907917163118668701144175421074103972241296948568844527172737369607712885349502381151476264678132311927268059332748922572922714619484013472837290167000629013896000989223347751820520273087866319339626588513640104664636786951704460004189742367575287957119051701660524141236221439983370361330191974173773092961222989632564842167150443516717160338907614411941059813914195291657243190006654633154864918240345457781896941337811926876273578005834422578749291742355757614369108757150435009851034363439231649028676841714716015539233073446982627503341809654071460422251340594359933179077530051751686322559002031683997005067708130082989626354182111762399942124376771032669524840357993354827141329224020890129775227044759122619768678181190934231047560520118742979994509618430315429858166592441884701267792315918336730557510686095915192068914983408305482288128968054329728503127193690734811275071727247329011760497332752361299584195232598736174328739817771838478173036097469833287264929153470508115785117302852204216185044963737558398973521925858236485568679139009215998207410237853473153157004071655322528513834576474328041912793406832441147622245853575830857647326221626773172307306524268948573590033624272600085929806982898206000639013754613353161754238671798136155949653745757995110136691428640678062151326871324703317792918653747893845878035708069397397044349441995429460796507740200073842013867966131739147151969436047697698327776437942952424132514689659271580832903239095211433300903199878498222972418401728031288507033643485051738189770252882085569502051679558378051441418606295770842561593744914152884625793630212964766158198039670060352137857559766375699370439723618561706038423037843801060263806149269112879132268749489025586282263495359158554216474914554722788035696477590489581780664293697527584556873012911800275583067637182628603856126298716835293839463808996423823476051375567200359631852835426959701771849557956185120486466714750105328369155729384512706820823270542508480694926044087689050926777934726213585661923488322060762168281879013547124874669232171902899199452988151396834743433162833077315600185390650720719649404597940151248768873503440472950556313293307491860247172763571045335289977362844575243787958372050912577027711006952819006399228002671578910605676326792006598078312358339831209330979460791817187434061901733427867456084359023944511470401177327584043206381791441088352942504797440998120014213586477999731787341929618201812980822885162072020182140821158999572186354104155667324104569964631837730483260717977458132663295714036811554730624798049731325660670654628775377783190485467153103413483324773546098355095761839991975582543240986144605586490793625753648447190417874604079007828636916060369294353568934228588242800703874420721917998436578720759595314071188998053664532746159294587887136822560036831003383803560776299932441098728200232132471987391484390990992994393600354212711460264661976969745910033345611206840257013390424684610825815080130794246987539819175602603502873424330841493601855887404598641275255031593305493757796299883205074277291441979295396767050226451277821294918390911727983643967684544467255418346820906003971248449708218899444475276598351298637319834078046864819367297705362375208091094964534986431141492385851550552706325532584329585566773213723291345088851862605492829884926804317608083593038768166742599922420210539628392298504075728960973224269874674908184396156444206959014546038575953774472715016085373275544573292340256691037544141255095164400640400254947516357106119933127898284087743086185583553967753312912870093299795151846183664598200222309447118451260642230732400866779439447907652730554446530954303917306758006247016080960426692019872332387986614356004619587237994653768636321926057811435573595800666809140154992364072751984887969135453006117308689980380490048691682714893240696652703511921051080000816753883897429513328904042399962188577596023877168138484415234821278174181295616442068959756265151596651018166963472772337105303809687802489494729895788066835690295041182601647774617899181639071510405555969936837711607681125433798785296006280017038724079193305593308089950493033679439035851172637780870827727291108980220294040203588022396556789839852299548572264583571754006418335758714034108917274856205485140665962856894377623770993972198691844490205127672268221720599381916903140751950732621143946533142782400792830239787827757916770666639312049242731666156665941035552875095642543627921289080311676520427499018102343650856952761028725320022764232785449188361800853484513027626303780804479477517432237548348619662585989235989715223480896931630342070011378823839624331104737725897773564269206210578661929299699656173479471162487487787916092261964281340753470113374321667002579906646347226664567848930226496273414274813308575760129172950389804373387891492994436191054219995233357623559134479041474058082186270757615228876959941964737276221735769275509062174697682199846156441031235200320600910108274761138454533817695797126566048829080020833873545466433877413931149702503423805712390167547158978041231304346803745139455466785713508370653031371954292928230578949182482556885296835093999953563672757026143080783648662033101739891531712469862352044349898798135508560865076612223658410774270858644615753028746630346750775447214016934011964854747329201500097862711141713786144910295679661158410785633639398484003920552324956247737430326178504640822218001729345710503783573701655850555890304755567486648183107381674441349392214340300758563968278311736820328033287745603225336965376191399580031847463662600871337189195927365509802439742245427259634596558148795928346568053958354750751176161588395534028723166488385269246491648769578630482742688486480538580853333171816428436908433815257782531160819242595993448510979476186568283001181054829699400126873616898404080897975862493403733680290489363424828315660475814947716088704481280053295618220539253033878707114943433902279464652809963093533473108406994977465221902234782502126074320147981631413520292393699480598150419830123686063559161460910104939428550898823289244141589032658005530388161230640447709549855769811450104908965273269622783010981823573803956538048213392054202963677101093659384539472066121559938318860224930707698804504339665621500197966626244252388546837415380793928604611734253927841758599310091267398127063576417861692393297563092172607645497725661133122550660412098620148841743411486564947488919141994565264807889131273470073422741134274133458937356455680587679675936309994519796473605622770900636506191731504449962798296827470040388181029751570687038960924793358266864742477329607924006063725460439017419262572079176189800942960629266258310776874549673290080515829395398257395886934046991235383070494495116667187948786631162279688382412035049862800757337592661012524959779057311452629903542011992888836474612731925998924271561685341201459948232150642098250989376524952162652205318799312476399917287512016324345632174938093680696424434583279489257360462114008514518015111791063004550053936344215198646114945128321599816300852237217314571616346630299910569825826256488123476231301136390510359119958202134099637108003705199138124524712807559507630567492718198475001317706055422110244657293618622377430855907221421685381097379540226722457719113135792764434746332424726503416027862182331536073593140556081462917344448896141469580470302939783825985362265816538452811836871670417899513615152488977354467555506612453059158128426415884575412690671837296401476397505854579310857477992301063230419767355580860746877119538395200857695314524562446666564524782478700043339477681131333573090936117407083905058279548576383792797984601421877276647533957812792827249297842893854824294979343749153142027214952011634117539200959516274946224237534897052439344508227080273944528633387340917089808669165990753818173240661468747819539010365357922972019954170440997259172866893101177084331653486197741922370632656621735447154798697444628471371635136135584009724043358585032949287919766147113265583691437061700812212922492902015243359614778561619428373297697278999800229374427904496828852728418863160350023977197607680260446490740074246402907743322407232064716915035922001368038707989888203312206857632230356177663553167599487163857996390165698737889396389716718514942387400576188182740918278148257236614368194627572180365938715958150579871099507472921859407188569122833356818892885979087349572204260947867705681307505852831742137283442121116561557029374084309023562188261421964110723673420244092463442720860286601962453605838879116135468043653622121598839353053764540009096842043278151866788355872598350526138375829062626376164669955563748444802228148825033728839647500088811846542693725178205932038709886419739191492754793659938521222791442571535426061751731291331269742142920862768822699199397443001670303163539141689921380679844858361956389570338349951012039982111494271012795510454569242107090669047040237061420136718117143202175938453821732273802733392694757889315512549217579874892682020447803712594716006718889932127861975248166322427425296351915021646566396133334105734632607245103495375606554129304432679354354385791846694691585131545371358576772419068264675420156322054921058878420738818590124259502771145952824413348834789865562495499289438899242936122831326447986117404780693485185622472048906664798853445962511368727688157533551407471275461247144762212334560840224727840097931561839740643588675430990961814588172559043318076948588777504369737989890379316134038484004979502902903101339808996642432608241531764579244360276910407172978252321303418493629375680112219826115200447523345859984610201700953520882828408753702839377759087566579787293719441367569147639951992739948940311105896963305249733222289486627204928467952529332212196075589958598285960286593941707795469337699334237555752872445535700067446983933749893565683487798266152757255600837172929542399282997379883412027701577582508989270281608920850137703551256574647931525737527087897062111156916175218531612973584965798163449408732976563488429245242197569386663662896171991949617377879560883922387553492785035829449731105209425835964357564796432654914213172987402007016672124393322581221534447666563411497145099875016712631175874720960489182532901854184695034406712155021374711688567161510435205672213365352240521946544327199861202753747295385278452556068937489211947521230147985765779680747391861213920821030307999126283220111460514206487366212093746073754866620961023858298821757187395069149484955816787835112727158113350045025961086211002534319514580565662453794051748679205196186776320476197686980728354006075279637528260893835231831178963623899688160828755524764148750298373182891686330863214657912500378711379727095322851159181537243925812124242187657161527327198877239761073568300348210239837045559800303673418524771202823781212372895081017310929215293730953732584518060784993283500672762045953803017159899663822202290232732735931649202820657233069147116176214508478529433178630128556545839861010163333505408410928735728816741646463879493321815562263583476218750920238601553985392621325140026240648218502756864519273161402443374570589927981240956206007555447618239136334401021431746978293395443291128006047564307726188890022541957055995160627896181455093432357633018638900359485920061320611759155891269385485209200853569404669001356366214636474053980154346716946980208708480771603204285763861644767135492758190770884616599599340105351993804554458536551306578614031241158301318729377586152432302875586444085657055591041788631789322411829950587019386338968270059237000914816546961906073068170996563914473058101880845541080781279194299789670645527987871860149014016690819322525121128343851805714000166450971688933080902659425182823504983791340777279142663691065590391983300854977153904247393613789006260241218961051482530718695189692206045769063370677351954282933468605202923799488091731194797020067565217188474744130454665680732777394473554687031703977573069363260812348651532589217225826942012357962375641637080902000498982687993709147978215287932551099235470671954172481848418405827288609478666416916940340103642368263443105303146478462752041232982262983187202171793975098678410448529109917709910908684552274677000035738062875228157663445489163018277475484508440302006532350222267778957211910498311434520265631315544014406802166451552617955788318758968978886452190329732897451876857508454387418002478161504691563341972744339790916202509516968034727616052552412612050433579557325449662533619893699918613239805481852163915538243926495951380211912683442132333555533167218243456622257219911714782299991568717865705656996005056691651549743978756262917076705362883169166937746647706719082977359825966654857728995097776333902493793713220716001339993198933158632006084533873593990201855166441547216048832755546656673626888280617960551100872522854029295337585944747525101484027749637564170019785255517437851923917843136320669782298702778424952058647136229380483757877684750298137148720096607087439663151252178487004231867549832023612601938457610152397313292827131782338463398837153113083980757181976282086538381156620268988930300605273086735834478101808655311960613809730054716428962808429202706073225072135206734101449460541860176290355410015967071240297399797057861658223127269013347948435324818363711512548658210689904033496241915718545099238775355005413367039321333730848386587406213455168213483822306692727458689411593472983469958087811135142461651275973538349290673911959962347599782041499234190201611853653192933599148556121308543993533327930556288642254312609355877725400080691825676601736863859901070930807445235871765575225795214419439402100141364869773887962272199022623193549367004302719987559931240697812255579366203268489159005359838643082148237533850637070465093916356990373232105087014531706517483050398357753883877296120168064423348179179096191684374007849287243905911503581145210208444824163913184588342102704922058152870834493116698931987512957629201280127517620271625466985574196556653990657009333197017176869590124721869769555114326516736414750066773194998535122010336976048457712531202248888148225371657735916919287421570904051137515278264100318092586784683408737376272994060936211367578447920511637901245944951599816339927193933939494265820249493103403963355025659330880415545659882468211269059096017794111701511325443041067623520064774203136474696233422680720018439096079431454759025561363766593983090909125669950586832416897288453468952610270830145754971921997573930450725257870974292510655619220212039633391244871717976777590103415587609234229706578019353420002614451917504205429837933137133687243800231097530082441561796465401530349460275893682643805599790438059284774216428983840145606088174804174018354835395551702743064469103814079453485901920972671324289738569303267128188354999649333557137800150805201698688518247401819021137028957489629791968691161590588085681946434582112568552064232155841840176147779844756571803552079241005707590928031342959725935485694287517599669108075740977585686858351623489125088822730319329652685211868698563022544603749721787150895928940894032979727493558347467978599594139283040183134374414773039269254473577363143128184069083163053003731492242942552423022597048691196347167456931790457555652210697076582332803525538419945592748696199379655105134749683694087808762868846889505593082115697356595226501206510685656724873601790560270860045545135076918833433522022676144742987864447995258279180779281463352250596035531094260113609715676802510753641338308497437338888479501169324895699147968843355764006297074203761845152381368428804284797218967528632238715976939613763513549257829280007701763794403994615206610706286095648783232551031070309324350848912368445256064381553609113857371204612201887501563846042536058514570276003962221088762875573015626199911394813043164167225829596422227474446529944792318266587223432076381326760517149765944165804034978223435453738938905552171253429459425440470963244602573724197351240948525972727202501541504208497409917188306580417979953816295865287587145980909422398156209115337007044245014486401419918064364365472778649763922974148766299239884545025059033521129160948258735294346407053302738745412095676269428200774431258530287043316692993297565059526131077623526481169665415037673255599571250631723709291438403666181651686966765012370634200330943477985460660250414831326615908840847436268561934253643148399041208846544083800478190316549364863109935082884274170611750918472246246330925455160761394342584143027974260033849860680936579691141629433415682225489841725530157410507673660420906455147530540837195614252748082566078534769514544199918871704230037839441631359648938917180302527001864652377479209559672374743075941067198162337586630456206942510066125464918628081455854425796990979791090152737335419417082695893273112790119413900955944296343185731556553038728159778962833246977100875242136148615140492145815419437831417011948433991231217548896155304073453551930829172954112362763086504061770615977032266190922063021500199970030736726740139684954988437161505742303418576818007678436612826820807889001291884419006972822009467957178040858597494235461197935554078030040194880032661517607070962140543691202729892387571865847033901012700424587979047394750716640419924724553020569852376330135152209227337725908781330800328008617963619684821291847090930150156449312000164841710603157700403132674124880178943428226741962096331545205216566443174812036312741831848767245099534564538124236486410930825717836286251206388222221843492546558840189132579791034925942318179255296046823213972927820143751658850798071252528928157443446476194792307395979722492180702981571206621361175745705325386505172227576760349043351437513282824906508631894779594942983031793063482239232876285806181270045048694565386688968229388995621841412973175577185330857084291828480725862024774454986692280792388165881905498591809201114827399309746848563280259275639965574767616136667370082541814655654176753401263987607682201532870925500125838512286830251729225885085706817179540752736724304689011001633511397349232166457497714915419961416801895995364666704634712066336448971830831041555740687330789069412746760316449487041782493288871616819978803189974602131150486233089371748000768842587218844465601192407343883460572889355265562451017284689700529345437948277306526996588724807087160026939732312767560165188935633516699480926692259338782047587720260050402702071071457077201650041005407606340375518455255253465329793585083312158108747188042343123123524104021752404432825827724558292995974845695365764831596619778073774517049745173962274608689264177399079613014842780291549360991631659239916873294171160195900890893583459565655786031787072102701178027799881341929445971905341767202201618101188979854165425157437015779690649692939365352852976155356459466717851026919158107500977414848641015091516701010763052089388545848596605893778928385849042439167838158292015041150923706067911134950243653707037851077756151132827923023339974322915864610443040676670725554934086458383322678160450669013944341392436170470685448313577290960702968066563565798307369219942415230708901670348297153434951896326522862186527452088573317287728090699227517497093473042596409891590213935368704605434790614746572662175185990978457034300934751578378631149767381844474433057668454695044643015748825685849204351226883023756078044911228131505375346161846107983312022375203225263513603293208161142271082614748676133075808903165906742398059618021518782069347822321596805492160201311097183050767151188480491261802286666981873089126886895869560629729981462546371920882400366732912472197357723382712369825005864167638067110157109972577509042033723244865243560866265598332518235582952676307503347594413320453324615038347002411836613712779253574637210146922329534055764556007890345089676262901186745591406996593420366784102383777402364437142660047297968649857494589747163080054453917289450724850783148284190391670905405790493374377828497014321050512428833212771932383889737315757718232839471881017540372417709235886723169938686636020145677781128541526639628608616762527230878797861736402443159167016054630758864645968669822350132376981486697849038197406486279121636796550289413298192311815664685137670000910363751906098036961243790410446234591736967998171512206024766573980826276454861247488011674953457943928385422209349008356999047415175090474109648589021756524791027493602908439096882107445632602404397306557462781669030345882364287479045615746639975451151557240540990267638592729288345213362427615015161450202873511580219599311337505130287897748804244109723859239822731671647780176407879698759092818483310505824527682326401355951180871487848531799094608772083300714511007666996895596874518482739554087000256376206485509284973375911728331745712030926503200463720360211003595062239803945040380777742418371486640804533832297698648451099349779051952517466003344522961653070744211067687761828808027358473352028583173054715772219921276678504946759763565586927335373469468814489121402580186749839139654028715224994572773041213147877565595817273569978004876012990397052667917945094791858958069870983734768022836654465911898100016597372198367835822858831321746772044014674348068793734837985883158013795661534517727563008646643334335943397100374412301890063103199003428172343431975769814310981590180923334496574676021995211781091221529465007254823419686221162331584106234121122933818196571708115725232244797701488058233653558932714707269735779483549849001541841971513681917579216217845976080259155039244375987112730395857837020019399608298340514383853720291250811841632334703939783689650542062770721667852912016323123568539482211931168230158445051911460799471359684139357992009248114112403053977595346482625014546289616794744004755197457133541105834628914422283192772549409664132491882218418494524074691863749339483942920704475285900282997989260686099558595976066136118260693052190875455925188396216168020691306384372240132470515831781138748243835261038375008489745442060689348154935017699666359724087493842799557196967509426169515418159781780452942018103545872825021619050225219042382107692945522073723009507155465590759812682830146218122655027169802677672492321982705474862322561011189453368974800053614169928902686401350625554498127701006847900821805502308823630395936243900230638594612022004830019998292727597336304147167526536432349808565673364749850591094943785135340225439931606230917590955312003246743446615286224963614980380772691763855268502750185617032263821882181309770252507858345212993356046667437841398775971318282152378152158503067884027113360994160076358421111666295481036170930228960863993017180394855775889987316057680552006770400552488696549533463780700379159929548267175831165121485547447878018824364891007587038655678746411932582324098887284937653461190684542450024872141052677713038202303050303935932356972959510443510720912796918871086477812070761956016384437770059263931581379858870058378886465661980605427820127824462003592576231138940710289073254121588863040557322501679511722288756303886307128338927553863082448782913518714530264833147844754254060080215544351961135843032296105271719793360128805395396947479168674704340231761546374952337062558798620438842743546994219929326219813752655949124146742954961929512397481605569374190273582692033441123946898914138370191035303260354982757809298614842767972237777568627869434441417612647629329834214685196942367126795405521975640951864100074450057413506164063205219716534823557690064370270378986381591023280322322496609418438207960020848541451330464982576817457406888652371912594718428851085201590309200520464722620993417671218583591115291069837152745639668344668294602910266096347775611704581475683315387465115056042266535312273514592762970481377475949332047928489651286679667949677239374041339290481240862125095548405902826789354213520634923523994665243708241319501917461703683629784060757284659413513331467830342494141326020280845897156942218390144357351108011026332908267149592045692053882074708586480845667708058645809143718750980252610813147461357327851331281501906885847158280470273426459292624304169701634100422361152745674339979722582027394632671173840485719920902377200577049808894470473160066774148316124319476629531184389529542524403073632923956218587405411643222064479794365699031886582533270929544707398308656582527491881336909027751451671479513291492351628348292336354928723642175879215486520387933325797796728753995009938061467172658869358706671915508814301949942909834380463692517646558608453147036488710389420503677211205194221852299330164758539186870297510567100809498362458787534920193139181207273133177389931928886330421948459225460921677160529417537070334590742541147172675238710351936746399667592328253978382832071498295410360040477113886347349290839528937090845110583371162610595847048384122097621425762457702087216065879484028301094419052980954945864056862758560923983402748782964567437216569296632512883021844746527204488461528393568701266198021176984812440839942499015164968379434960366146980216829911964659102566782184273370599871149542419041624100492000339380922487847246126711622296399747276871416214248798211294597214757827185457808586303298850361413088924223055940498613774020541188394011656326736541371100015404055955592960101549703640913357110792626900048659399350756775333877101867069910195435752230700297938354898424489900094440278951999241148744730766044633226695193703978143177710496104334150781603793046856967419542687322501264684970828428403873615022099253610433885946509253501886405020269198428778479324246133370468567870615348117564806416056691194434126215083196205260464481247575631157545531075936407926934004316359453552174406294778945309225710795649994775275341467419661514967721869215716842421716000765046557326322233742169959827904879285202403590211694780316350250815349954727389361938603127181152215071714896002037136745941978422060631068767751021166226480227586306813798225613244134566694620432905033429991299735788152251308840919818948984090849591022958670722782890231094176614371619874267251462647112176671452917251636307604611063216473415766219798118280683563801716399817722950871694436615940183374393725346331296288026040816400584882748678592422324639554440722388058459833339831219606188702719450742925358927379131806393298554316403402764209706556203523746038222474701460525803166817452364511859645111198876561602363698946663716404336357561300951962889467879947466380885064934706633691281186789154059060053921398516455973587743360274549598460669888234633525239416294992883831844011071361901521873532116568451256537115508977801876771923219050222519691466704372005746170056922665264375463863924255409844566106325935910722252865911668500807115519813064161321737371348200021915775685712367019979177794464290711223035371273812661824605463599352889981041032789982720112124015403781746711563133948794200637499332798187119981317067498032116893348487591636358515715506840008352028863703453576888404407750279228417300101397898232614746277918032355356216787079282047056519215575982284720146566928133793642142121859700460553197721377612784350424946749433749571138715717787714545761605716160525594988765123915806310113487059125506716250070508059079317487959263454681818236052800358111027888854993936358623502601708890315565562718195822300808480609101946745770001622231343900935636436397165525417403630684644251912510254831958641112750855629305510163039686587380390068120304668983712674167722438534062315309923203811739426349437490732514149410222256087259944434884525065957356833547573186124798753055299106419336311032250579213622406259883225416850236649126488420256009179025929216341022319426481790470157573405020202596433147985983436667249229525608496241991749009887469869856381078151538706868672741527202411280663889474673615587270378629716532504791367107401837354942809226713548364971579489001245378878971556698446662486197765693719877760565182906674619053940306684027782065964061366124929265813675063872179580136312914043444686085496021062765754348271338149649006428430457173160040225548693880087815128196578603218490736857196285691365285317504174970671490721688335424114106801376703486997526359425372894056704962339012312329149040884751529895997606140223402830258124435805565251380548360646446549292043126654640098708754938643335870931846971861868537884479212291164135588628493338014691696000616440496720850758132076409133190797113546663206836923849750549234566548106225615200211545369966251012211680563424350262793368587808232532278335001668632399175877913415722351678098978043515389692287738046339951620783455103822709308996193018474195040876957368777763473047379269404239518373382768144646013688573460427885846091898197404169414641348793064771299230375673945395045897829254357756609757241827016426975022189924027118402028536009926303032504986326148359930584710429192481816029791954439360730238717377952284746015768273555138023096175349933230559319022180443563937207400801446997304925408018348147278214245389811879725589444583601535041322110540564462645646405777419172169832855594301436224269724277981109305229231643100380438074805521199567435195151417441971999687091154796860828849520097172872910978087084949214773382117791888568828592230111675121517996567754506454450233663720967746728979952456803450504391351465414908816432187928544471110753728844923164693972095499882826508052550541446441201830314021293278655252120096052292079499582802035187030474676565105868935236275524428162864515552510358097329468295025691865325134119007609587864207561415848838742441985055421125998003844873752459145589407435783678223453642853454383333662292976317485562695794720626608027362448670236912596969917368255889801693070440715089839569795770632698825664986515919650772618483370529515679382279724521136080010522601791687890402140073398289499261460414501660858231589461218837033580310402312350864221563202047173864765654766993228354220376785286489137350093675772617899049836129759113046409296686427803079838600672462883794238599457268577027466828366084282790575807065647974556572087317494334745037551609336252722001858766981020882800352023836891789700110085704164899929590032679899226453531150412622739451013621746313955795048660884026453145615407461639967745295680929282681440963042622671331432867433678031619720556080185034424382179636998877570615542703666356902656845476550081434254870029554409166099354578164268033315917354303630004634203676198079308270385144511806648014780402355160288375836245107397059898216854899153577634844128453573060949126175396186759012702876656513673191901142817195284747183531728485344700767922369229906689932039195124711086321542295540072235227008958983535474572447227319085943911717345107125151025720928186358236610637692107586212392716348642840602298643511319832914695450304941725336420856273742749820561567103553591961988599162692576226901123648105707547825007186529750513224193289042917755529011359048621822877706235785654753284466492729811150235530957776860498866373408889993303073984838999025801742595264663563003089606747258161209394051125135547531191283942338519257499116267506177531051603093309474887113749384476095493376867752783512587878801567569304765705745278893912214472897021424188982882145870861523332092926034920500988138030578461141020828658437651517721419997032806565102819887802239628392262848361275995013453796755539941804454162597481586610334759309296946501436461122789187281681670117184861679700088500786870003048899246279996732618197236818254860288073078417106181485482908070281005734207321412425623949939175513783871848243230070442855331674303577243287601969438543134074620121667258664137859486863629345815913090228279445951461974763232452121680526793785692406782025217786242763358211731722529869338107271119642934311541310028350138705331483251066908431897702915050734834780049916203006523468301266497973528107394128294120744883898556229643231871219081316179958320861694216548760635087049668262785453195814207770818532695945541404004493208774002939816900028679087427497291855159827991536873829260820744501027279256435230705693584488529329549829215851926133974363514667201472692229326285886722484011964683873863241431032990555636549668028314104290142766342304039455110403729052189312220363157772996623406914736520259631702723443338353285426801822462440470754651871977886011413957104853695136228703068225146585644161481158386954690619088156225100811384895656380987356550388860520014181601776560164988434684392815690946582101441003220893009156188713487743930941536433653008791079069046805275761509830955092136845812721691746808805104175503881497337845682686150699309481621060248208640733232725906097548340142898809630915598195674572656828789693370287872077541521815878850693514594905479539718465651525236294095115075300172954349662282886024393832026798019075621495338628954250394002511244089633979619418189370910546648200203381736593351180110359035948718153854961116438203937777932645150123884103241343354270663618551734960523803228730591920884089709643886984924603774601835545143722807984831286299865876472288648407043446629220585810454061319194630057491454234509630373259379981713012292553541882072168585847596119137983007953746861764848143410976030432199533514894438975100765412866259226903889427804027589415836218634008530423938901299501398146429647536109122331588585229161165268372536683723209134831477324865744383536516343310665029661354965853949601446795975936943072670489311516899800740257962286996792332855547560296510961877433837045683391496945197478241865214482573909926104904097947186152951508545558093853850578536538967226603444099900951668922463359442871381429601639494357677339537660951195399478589226391314769032311194182696854070709473162539278906450129328729493462975993275810861973359495213985549873688606908856114695536447698300539355068931575639872423061848816485588203894374604039509409067647526035036094584267189832051769361216833951758634896307408717519579864644320037771321988406648565963695756804870176330329166805627950801250458008942458225648769217643259236701116833587005790259489861591597121660072316971921152563107017705575890367347032101131208473697871720079506050714456780779437884375833050339518615941057755380179002295617205398203667036292633880452074171679575379031834658606571811200554935878986580776157277776857286449245521395960417526672100148227312624359427526112222391164393003421696537556013249671969189431935046783318647581052902314535943337092762550078845397661955923501571650279730492287954503550059498326982134281228465307086979761629414196216460766372404861279026422480996056713899783192482436375933803842702972974555341752983490662195524842378493009004563039347388197901245404074874801199437526839720668722293665221552267885149100718266189017431741883907479993677536835665652840635182042629491563273590462612876557871163294789890158474611520969757853845399588079110071655543931493791540010129085083743314380349634680003812719998791512114964615826236144823745304668275074442389023872063071602828357497522841800323826048308310444344700988257121688336711401572569375836695108472971881012971795530755052372102626991952921352680158529627645765510693099826882100278732766050048818617572716112914650629011584113736367486767827447820131902598583607255862691914858528048143623575021322546278409478340143585109146261151938734549165986244400168855971464566675742293434061850035437492455207544528412015889130353653277769518423391042768887099902748448650983156865487342377162401208432487805766757543877179745693735793541257136143438710983181506702610986161819149410369611310691558697605531519363712966168394675914880190161554219683303493311955592784534809359809851798668098456655866393428848493229316374170203169389672125799203277190423537571997405170843750786578150148624316160662329533321353560076226108303892547205808952254842283730005202597371408098977885742329320467399481703734448634989921150314156445424706781121489338519438305582874283042029660750561031357822164348498247080733458442649966454706623497790684322732617783806149719431443894290574852441193184428609667251266603765103944355588579306423228293124596516156085987291624559650608678566737411327787808447713017631633336999183609502815097477148226047482910976156713623668312534473163043495811594050449176946980903516113535141656812009146002208633247274093894462367423716472293490401512457425332795799454660293056287400928037151303620951342174283630227628257844555214937926119335253746446580866958964432637646943352360926725986508242841968606691095761412536111764582866968019567442029157749857602941049226053075408889867868930324545980197064229192435583999977674737917226401967915945981095232504988774845499446899647821746731142456546942915627521705646485761005898610838317276601089305332976341038830621103707500874278150790462854350855712042246737065537610131172553802237116690550545457583543966135599091359789423136869033654291085640474857776567775822864062361205325293293283887619198269849444807494783247752296683455579538231083795147696853410740551130219549357713059257165392772564560210119474142727392190796806181401982925407261952393742924274566312013757258316494808287305995642149984622193395764357591423457305651742359405761363212312546084003657124945982472393187165213269880958218795984897536604907711386631548050402653952430995885193765940556158279203818092309772664906722307259928743345095142151450391053675282143417570395416215050539993525167589158138454847833648176315917146716237093773366386079929854512534788282921168125660078609072027026172899801594914147954357074384586512116516263110003503894579353514555406160781792366064766573434892368294696248958286142409059939935520284464274412543538380114542320843758915598210883509742496217874424488903641550307882342299378433068578312367232509551499580513601788453738678392470053829340120678761793873869251927173399029385280494304662556071723828685621534999903643262206059281125893325263716804646358867074497028664749304246527130898675289204494563651495105438667597561357397855639316758822233349373040164409543991303836784300337509393745910776670706464699845804914881926669992310067243108938482927282894610834538212700580440464101623911925313244452542455596870415776106607170676869070214074024775707839611340036299939966396598562326799601407376531133748909107716457138042381615329664715141493781289852065468866660944577454356575090378549143073272201867377819307925206070737380308195383678074734080055747088384716212961656594174848861729638313964976885227641592038369117786760783076226492022903488560011104711252090764909738048799431991213776140056681090677535798315550573091847627780143731089101261814024486064334435895253254876473433452313426525766750694708937816636662842784885415627698004210712205096767423388914746055866342328032781490306426313845155539284122530681074301555612010334909801993851300894176178547519179896447638271572385626733046600373267648541765351458884562916804035394528031888414015796474040601225112351532132763110770520601547858078177681064676019951496229831621083070842987124615899080289921961983107189620979968617251914056425239333040481944403220447051278194017908839574370116696686284606011460703056056412900856982895532120581192150441349320488457675374969040900425763502309134338422715622656173034396607040182974908679399049760959702787771564530206105091189145778638784542008905873646473237641133453429452848965789112442073210070367442943627500347061295165148684414832982426754002930559561152569733897210426059570948081223126646627766479521447005948354471609428882747755356057462262000814996240540835564062025630407516001671448412701510622743663087168651066411271219999401465585013115456727408862517793288351594156604107518375641986039517815467921192704120491773322950168618284550558009856698176484815237772616731572951223835975777790430854697751236756823721730865919139748760437289376408305498105423920865603930679539997537381566043925396216157104719952065726989006167829356128064217585479217971861211380919240248762782953577495579775557258314062136271222019123046580027547050803492650670564011936516976860750473561252641941575585625575543867835675339372211134738756317292213456643832915094646043738620640940067445012079218972348764412679504451201219662763091516420421186742062764519239043753833310389238307107179609822891830438739310362822677138366247594152811209481166126563470179712069239705622833979452163344403342851823597435433078625222653337300107679547004218351939322713787411072407873042580474869571065394477630010185058187978169378136482592417258131961018921285922606400096875127550031416671144823883351225571238213229408156038214682379476894274045484476744047830327462254175965445627984246692062708860922516586656393919532457102783788743851884919010460660386194988682259279541960346466006138146755750097087679761775829878948525776750194996007971408451211983068616151440765120793621679032030780527179339503269100629755332186462474866272891217935162586699990980070211404981764199190239994020071441557551017744039397631180195000087935326523649978618618895666455227526152214794712183782530744742933367321977581111551339758530324183268580098538539198833918024491265815877497393121585050488223993576036764498244273512573986895887393720604733882797746396226996820886419166620348589453132002537344251107688772544631763035726545743540018889875443090257235829197114526172182833343502867722507375118211631954287642859030989132574064797536117591296854609405667229131135948007717275898885722003945012201508990475877138553451719166659017852323677296333148731183262027560250507642980313381073406660884055181027560428515194839686184039251094502503302977537536507503640088356711656506097744980398795955354234178419240398580269037870187668015016807723456912341873344639216123529062288900849264620126247648756622461791591693171372327178548719438842416707255187134182506191501222349127619341658100035690534809588779501381985488127686402158742499710851852326218270677188501306977550429474145967644559835573545691129098763759499890942655407766135595739788116045995410300528856746031964090473843596145204189245345647176426969522610866113988570800955543299248270314602499751624194320081296872730380701514836700355975710157284477936180682404607874301834446644437589302137460324725190154536474102563079404009364033917487398160023025305722412130362180575162568728487752850437051072197644963575420682023007278805272650267244441168143391408185478050288143693995465904577775713062611495669889315554013194867595462708050228760203687604318227399907905448196489218476059840568470052647948141698883422470747447670214955943276951778528407392093970595925066051838103941627824354511908157447109953786694529557599065262810222160796483289337180662959323162040829958133181609590929809300971795023853307805272933286132513471326823932776432432825860265542964891173631701915609673521450637390064335866799699600386298859236020279568938554812761862016220212911053421095912141356163913289690916777591052726715796298497653075418991251837666259344878837756520253541361624423936251078412856455660999030792952527047838755073112469097411721543099122490705946305032234799909185210861904021171277129417654136134775009373851907973495359192072677732740480897532626526942641623705452005177897939940876556171457186176381183078014253255229425248054732500509507265119745245346076039371775216211750073074274288525316439350797548040722012778074904020256359764346458643032272305391974180181748797720610655294132254433130346172969631233051180708640739745720477883370243471067132125891131689322791520002086977625726292400935070114286169106525510355218915799999090020105932279143061569058961568716569008443572991458068003545951488298378925562106821908110238321972756577852478883733448470731262106318000142658136877336996051134495576352243961677902369561227714078406929324643628894987904282958486630102614043819430521298160946578578404784531222836448270573880593925211812927016393736142409771772503500242536366545215825976561835344041185158074402629369563267950988223527946113881548469736830909521248020113142791844948121192548830093036676295878023877339347843927348677381726584459431277933822152664961784854704357161647958929851966344353787478089369839263210948817085364541555366076890690934584955981053170519490016765995148802073704691269617023485998878067340676607572980268636991852071505180035632177210992346993404288052457538521729435753076728389672314037376869990889419353148126534665462366404790214783592178915666902790421308726062102819635700594021925710461947261349068025531442860595049829076270298120166200615733959154647877525620498584654242526025246051222161317662807755745751984864262889627191194699588748574622708068088278534172375630795949262305744085498995303791321402398066159464526700449927343644238418976662408509146190580017117971831841648402369541733184747123124690009495270221011348691685570970999582194862483313731132271128468962929011930867885156241222046609472409656162126408962433261366882407963604303730015107447493073646801094030019665519367573043880478178702727659325363595860966078785657918165276514629054482285183419981964793030889768416108560820971601260927204790082571650354156141640279032522802350999287812617433014584453652403891453661921139632325088398147553778581461434192442526068579151707526519544209003614096103627487646295733241586411009809486893703584350564147142657875015415200627819217887620368851601298047171623423984433028787893904124725877158407697956962102553542053139815360030473117823062992368870770789472224084320426034620482610281173163065389924002737272265952263982814342668813838307067948009392272782782781776857451655641357116963252473317759983662518040344703639073354108060681514158348528932993442811080144812603126266604740696825206491269308621719501817246753636819020678338361185815673644187954834363257835602423266703604813797555992820894049869180199674084368540750136933748486337133610325463992280103317636309327175246225575761319531820416082116659532987802859634225282440027620783800142213086892277896456357502847552043153535499651850858187390857757966382702830942591050546307803847071575173245758173419519308823650011196804156299994878632374738310875821470487159379991377044302870971765130286334701896999448435991481361246094578481015280829920382312466553781676673544748645434338647913080264626563718718729010737919227678984023766844836397149497532488997887830047966097209848726859901993398312480713890869161004603336699408454160317075060472545370825427520679354905891353613774786512541041028825332087683513331902573764698596621414428560820661234258098626499311813011535795069726432583968990654635912863438271560263595880418147321513608938766332312562642701775655884125433347588758473435398086064334863556041090351697777060003758904294913458588533643823092926280951408783852526480126103786340005681391786689765443861060192421840056737468213488408697193568483028079552192302655539689131202846121850807794044999088792661474953915776824552892914941886514834506578845759163180905599547001405559907829355904955282742771208665708897258119889500618986353296224980714126832838605507031916949544884282289410948522441026929656506377769751294827346048484175437326482172476805687989508851353583903544307476070075922694365853118383668912754166643425969548708707344765723606447422995362443290728187315870071477347645198019838293137783165584869597873578410406849157189449505338744292160078807764411671751188402802897601827787986683349134764424373515348430295282317437004113787059153981510925182865313223111916961099503408784497913300318676998462381130359467762687775496283820347255834513390773206936236930630567407592448095085071996126699169209687589364517806282095159121193831568707245581510925318630802251022389921960211735903474962047742349177293612941116727736119046822823149676290704927057488846604433563164433606387407457017441046870650448714928237973554233096169606729548598736065397680512271846177683700792553758002626868578939634606793543025606560662612170426869170786715629118494073973795551518198390147893818254107985099399911793872325441893820535133943143288738516387269987934897577972049892322483045895921623385353847863082975074496280821450682539882872440737118333618278478040100045039507510908749985894763003217221370032749437638668829985529360128816385431451353034327111044396784001978131970795212882910330391448642994168345117524636137574298694318620054814196758272877336151893907493568577613201633827538211852123644226350323394630117429620665215056881110864112712327631538230122065298661364053399993219224038399498579115955932715619492138736047106238073603846444968496768503644407032550035174832534351209533857889033023881434179057697403429179739904419044541644647126789491713901247376418164669038711797013408425737019232059201339709653202586392741094126499101709441484203529292462044221584493844740712421333850847472929450574897279534228031178946890097397126689343681054533801664542780968260680934690302325175230716047479128182175817090491252929086204995948085105306792353684831126118122716534437648531034591970833791049761133499498960835087898571245657267812402677739410191718563587405083706342996457576089802536026959087167027591256127689353214255399174161431613660498492912076006476538791918369391807821590630999865135519254090453405250374588390782941932987633142309548728873479810393812640916777916499609558913918231113090732504552618030745923166082535050478964593050101511843791619697715398645553922637121994351357236012107623512192523160739079587366048690815209627049220540135358609745185064180613962007487024687352162705425248526084484202102728786560216198439209948695056340632383827139784583193280890697844326105242200999862810262534011408145457310036369140206025737399465509553895561643052126226609098545518428023160818015917772377973201209503230138963796438562977797581159073453317086923395849649197032858795406134309738253151016102978950947101091562202797580066120881889701547692213222694741569263048830809673469838791966221896485108098810826099373118928583988724563108161724382027759412023063461484514336884792055468158729974220602593735678596967390476817189285556133340107446140370697254376448891787076156361166776485940378850196243712279921114038122185499906630402906841418265107294214164831585324900879456123606102306354411916497161306075718123292803115729677967177760246984344422643623142405695100534489626605174409666508254952479922290357394475778761050687162816030174062413320611746666005177011627420326528258432445564453572257613400810586760255275180986140941334587273727650505037370130500263129870214236841034847018593951355661401020865217265455818347751497631939337962668145094964949556728214451386901157831086607585101396780861092738010933143404493761239318733978010238057042625816784683600245248187606305172909771574886089189187522262526479734780870202911819172106399283232720765009029095967651171106979264724869275578902169294776820467472864979537723311345016365299518247795893714277828186457379131494202470242720723822107530337071876889534864124738148438354580432785400245510257274859846689942184843334221337073098309742179228060015936719760307337286884109984928805941185024344827487889270792228738589787883037543190231071107996475532457477296777354933743098462341591253197702090533697228597006715569822523060611229136304864312651237593243827155762379028591114542255363932770029372493797736196640439862064939851896750532873083603082313062490576587354667603592814719171607893080411764893942077412707286307647425579380938428405206049853444349638823142281413895653610766929615607983676658040939218523927616893592434675479948842920958962802044609436649959741213724097306221550479669496007898657639430096292943407112769378835007920565000177525204701199428563546701307422217883305206151723216296793549758313864832861555048761440462467422390711286078366623139443450889708410078607863984215498892632048716416627001677654326646200709964125076601094496619266838939093581439001734082115119778180612231452098488543320655476231408983695281906817589160925399497345279399141907645943592835295682430617932999666310674916318761889825899824646079257534895927358969499222903432356090677042844247015132561754651847475926851502627903976534342632557504755414710563585388837806956644766381070413552399048903800276057397887338206603200517110046514937828142122732678319543141712007635451460714197091883867582873439407097646345071783226028696685899890804329375496214345949123775544465911037974702346389508435128502180471387399544561019295056490239436487624076273422587397205069066477074422336911091218017312174365844806598336789340703297028666887184209597666548953598110921494196274786606062255026347967383480281620089940056531062969136407694904552718151443139771480659716496704275812291939267312602928370667877410254773769276571890863074865724527284290222189001227852003377380581372963352647391856559851189249463978321608051774258178038374463629842214334894181284141374212464006976231133313966872889465982756994485460634700382826957153921801082572090084871285897607751529980974060188041948413891971309112988649771186277234638797588669917981534585352224006575102601400814802555946228308665571956387814880236374248819631434281209254347447587043881758991681452113224047766759888193335514945396454658191246020055409213446431930189516160573526499936301000399074798822279531471617111325488861913220564997206581426294953741145862060280194993175655729575367893304885343628015524237489068914678950355070523839430526190066253338955735484493149401255085023786068671143662336125769735821478407617406818236698646550220986302932956263369266092076200653784315945280414481597876483489819487873083185173527429475336298971736774214483158869769977159483206879651955736968427288418275105229799888700099635080446193056278687897830173495360858970197601889112700745557521334542141860346477242281155793501490548516122049890695355707488393858357373205572541803077635743910370707163615644084512904845493124327789084347236049219842998152054584140352716193218286350828252132678622991169618934813289586244371807469300767106356416310793992101313263132288877439392622707749023697542079336225313519276912072156911056277258538709752756974404614274408435657069475078890346053206395626453356003054826051556393182159039623367324789926626544755622136351178718273912605355086829123645025554407071696122240932485199542941394251605758248331524358471797844861661625353961497925405920482953568638394424486977879462601308942991097083602900261491181881666161752256470869137579279281051361097167542390561526995965638638236058592898698861546836594270449025027691811619057932143845106850177330731002041327539332669657422232881449136338597936085255642938522488036997809031992714182921720460574702863682262975093552217462112242501057354811564298831041930953166658313518834185183300711140661361235969259562188280134918080187844223173974385525607205110426239814931053431172079059569808161752276123899620894983754322851429379613008002360030105216452498742566185021614772097242223694378991383139254386884044056782783949925273137611750954701941945397506166892042742765787319855004153348926691654126642216043155846557183899216994301773248754900038924545845296676766331573068149760557745294994043415295217878331079833056223943959056541625440479800802176937640382842928852174320130127051639632281662444882260411342755197524838665704639777602194628160328439618980452166552377168499482315255583743431505963190903269022667411720461597199525576830109989095254361837923864311337108405195502836766680759288496476215060574933699960535162994581897226669225353398574117534176050653483343423259733933620730446639438224389414905919057916836740245016316237842578944514881779875664042269142515252818512925100376945881883579778768626700952881517078780059095516526237323320523402884127510656670716036463038782878449453643746200236510113955244375482060083049915323233182783014597800591920473425442450571917419614200587761113207877454823890493709675504016159980320691145805693412074029093341275059873297322041041800382038851253618369747554626443639529787083026841782296575492722624002261981438688985211147952590249214993130993719512889389484081158887031774290574763741343382024928802879061421222815837763274954100660419117968716956066410695678134317584008740752877715992333134592456495550236737780741116924064680969531789974431833884696592230491592144359238205215814236364387226668893172765837448439780238240426869895157325011795658344001149215738808245716845026221978562452678439857099810355119673909117454986518530612180055171615254888810598860929273209363284681238789215059949191203984382971999148067781072320827116207935945920231661572826587758496296648611783793603956367822223878885760493779302920241146322624405217836192242431888245795951072411232216034680538690741435562734635187641611381580469297207053290253593355322105478629097742846792780160325989668726314270597597976857094955034002500185983849684558107459710872265592989425534818560885693590409184413641341580387826569294311073890148485662517679189979033200779404879405041980881164320252770738297169286403194686057269845121060237101480047656962181427606783999556739332749464342866953631299552070996705677602826848747377214906488724152373101874026534326625006310694421547277842707985931017471716218075791107910138463172335445778455713677979966846438817035749711003395698854814543453888380692498446223667123977268956891216701682991490022767688307679085187900123274265591380409403420252352608165341087824126531249164906685287287683649788422464273937465070703476457511044308746627167994456703411805647291922841477315541782430901419636999720248582472547961252932836046498953786186337168754012018800489344343070460933063811904356309177790579756233378595411621457185524299441173546801072436676259605267963268029166490001590364837569123325760431894454537923853173688690659733577863124040615258986886000014036956373761775758162906094073171444411465190600073870876358239100770104966076917677146310608040097497063955587967371758728027045505300989905315835605700646564975238455742104121300320703991576460700927610047394318238109286885566014048453067079098222234086790973651656097862990513765146315164461169427296773725419921148358261794409860561274107085166969087494037764901953510623173892277354896804440617523497355160758046450012097999977489916748341430784504435810418708976004298758703595400069009843747234052107580556607332667562041128866628401808469933787624693272757453350579410605538045941733843055137431786287762365608958436037168459129511977071459157441910560166158986791645843338810565609243058469661368766793381527824731025185767323945856967008473156504012364622595691393890660586527988830337292500021874777937354974959753956707317154838548868246220799021587977979074661525589295944220343638223969392044845192972405931461874933914945194087188843641414189818085095981449334561640810849333350692883149913864262516770357921027519916978433306564530805100156370204200367459049765361096581744617651003159935850414293877315850462063952301027116625457694973792260820315344817783907160144138073296347619164237899489649059303777446461064741430334045205236614426507028800101268984145859643252270743520492613983854983042394674238238039184313642269925413467376155147046685737586880189055879864596021731278095168672964512735877061969999921644986165136764032099551719052948518987979143665757968622871409298830938569081030069690022601400552341512192781337448246651408876387205960885450421862933512795351330472326273446551502626326545517479937343200073138647675368274274950395733308471123049645540428086059973098444895808462515360956743768511922797495912225084719224998692606658784699185215388679126345842583182856138399183431578050481640108594652653429150920508292495731049828929420693322796605201215815013261841247334724346731465685153760489234039115806757720023761225152185138464423425240677403623185902577278085250031751326117130232534413242327305648007403355379513969280510936347346547690722419255194833213427533908133809837298379657871083615142210704175192040973732110360589123198149063619789245215833901472087047524502756635658343349326310609621316810203267256760429904306340720900237977060389775409905811881528691698270246551394249340582788681597919606820578071518384087087180243684316054943302574153693063377737775937095850837892340359838056467340670480461660326198244470586556674534651374151239653027713560416851068685111767334330515774767260843794927970725490367549465791720454813118909990824374284814582996523991588928875789597034335642980409860017498404768578917090781056946764531276132555763566620056726694132493128277820719592936586996687763770353909875210161780100909419170743862364991813901217826188204797385103815146500209515206079291524136621221451175043018170757609329757910375031902623457879227549792671808462228983071703983309995387604385847153477807611829947890252468229211685093071352546397414291903495387955519424878043736506510181453795860091627052779717146207370928352650689661837304647245426908192572195068413891122351724240702632797235452921723273672746021166803054133803581863761031016962280076388199446121474415955396078394936566508811151400230101072825441255854010251151872362497049835075485432934401666532081850939369449494010223108023624085340313048302039641833086418892305944215278669508962480938262336063760166110882205725137294239964719451404231174874174111449592179332629260022019699792246760132548427899989526126087821684870716505711296597587311304060583521537540760209729440064088053702016715812984947675252963872345938779588336537366993723991833862837907540544386987715338350447280534638364239407592147253500294727911706464014743262285337455526219380806404698304015928465317346497616648015771434143330422050940135626310100412387725365648279652745095289956746262915019913940092789181414354711008949086210058142916790181271146463375081920046410025298587461974350647336467646182388847704385587488411665515721089764565418953334963375343134119304418662561243952763007951677133602353459011711761532820824594730925023303163094249627654421672464563251890485981450277618768866371009250651012416407038889899040233545901687055972112707281910382306702615802554232060486434228706323660089079135711981276904516696155921760250990253162499455829937453357078443795850577898874979696143662826364027149723018072548362776311112661185827738624761826655976215692697205569654218994738267735262823188502357866899775596250781928047538623535153970427203335211250677463980534648846621322137703863923035069430293422518035349373112349557578040031546889290471593389570151882339258838279494867209372608147349613784489253932630356463711374893265567269876016260802519366130091220390825067315755763355080692979358671670131521080845124090501558302768444855881310671090329336181207490091676718632084358254650775046793877614119487894070597996570116150818367015086518484917263801342377237694603061763876864957805993328211289506794092355063461666828784974827867417787318438384778563882901727533337145693004494325718190489164002603905956967821143656982283744424031792724868170236124828862303011110830120181473954912202252249646375910088113813199046885730080495035474068203584966719222976122680952959960431155018364323418650109385044931568246614581714900858726805515646803639599397486241601972504413358151609785034496170032727503260372516567074599401189813210768018018196295251024044072317937976075827815842824931810628537087889214965446942325698856231933367060427228152092472607450644149329818021838547399662918104295601708217118483763116968741286903152351218327100828291499443603974369558327421180490299906090280322179270435009299578118265667775368336963440649565086758410758651721055958631340659471609637063066997437211521493105903605626642555312947033004988633286827719199092299340707617702352857508415206983910142061881696569209020912218412976858667505230743435583542752377055777873699081446339186635972972668395544582378009283583417427333790827017521316738232114927340368681791363589966299431895865026763585505375933195421325612011150075366515585605851455573390986178810485390460960244136977814921745636422217469512288267083336177637849478919041777853831597742496121767596410629323226384328464243168257313822320568092191816850250555323611238237471646099875330428108215065866872901510848059452226920020744626211928675979285930873560281443569719709910145173799886501454326054971210554864921014171083385304918071444879093404226791029686249546685367158093139673753552665542788135582755716360432167249527113694335747992799265604589776034852197012140709583591649933447868914985409587724922499601149497765845201306474302052986491052051763827047558383208379795872631526853741958400406285457616090069793952185616813123379748549602885657459661035242526808442010987662414393099128298962080237595337977925414409566254518063634089733756312318752920866628303205787085740487009326774866443479453814715182889816907172433610501067396576738340023636228679155878446087026764132851672923849161343318490588009593979479854194285683046236331039429272863736993808067315530265897588500424057234737206121051928338076852591051869229807823395295388536882996824553783283714832744035056543956078416552440860481745094395059062792175565684656553007758626908817462688682222947006791916310443341819184529717679374732161732391139368262056679296825573637329900079486308681125807785018107717313919657698090833335400206920467683230409790445410658889025390122278006014681202129907234695344200008941397012737441569950986419961380514944508124216470691056314705567061464048702600094028099431202519433753476646180487299085163501435657758701586903425316980002332552257854589359317590465062111206052321799828892366162999300666528448177069156697056492136158451855150439738536201786312199432189163377917076018760284415353924986051932958140925409753467042139894770442988107476043680565829157944806353920845786701274452836598014738572710003328239222297176779933591581818765620575245400727519141041435910590196658024387323444302872338749535476622484964667002001484167317943618487873714816413327529474555261415279179439192530612951852666511088116284056152943622621143687407128825091006553890295091728598538417837902575542805546990206243031080262990852397132490077862490533033822780857765666156260063414948606246449129040978350795787984114023909900510767289296507451478769708616393999341591332665141665763404241710464897018707887596038117066939102427962582405374824080045907200758915175721063947778310846908958130449172634687281495989342306074340065852993153571103443730261538195362859630956611026009250915336452467071884960107006479683593738634830329006657421130967238825684495534463814367336237554198635091733717522940170672516094808204200847773808969497663608912926610099301499645306268240965097198544973700870583327510555160901475734818329431948200053697294664192181843849965635931192585227452157276327777307096766762899571281842322448680368614548721233695344410649084813427068678949709732186905681021007986694721664674365206925330923302812404728260469540498375001172611731336868549934349538485103668928294734404457923809250866856029592983869151296553202323096721950227817277904978519874018804628757231384597187842090637590791664038377894270111352908324671039382148312442641644147279416825401303854550866828562556669577793938534313871014282123906971757240970057703560770536230034763865958302090385903637762340620969064235575353597940787998863978832090697665022530544328466571898904680872415748824639617811944134042599739628076379900725830757749425765814314373180552478981088365950121127729827959585406156444530014268536480116443490766245766491278103129341238757817654941690426187239425602521585988595423407575249686325472932641038402040596143328986580189176157689402485969915936626017083108385740533214512505346331517215903757886920645980448782128981275445577058621949028528445051817212406464157556691479508171384361944693055125430646572292181346890229749764560715724018680082231769868017818691854046452886271389013406561549414178436305100556660059886416731057330313800878874121389748064261869526125444795709661705545552503526828352720284572342660860058249959973963946810956103023816586825864798080181503728245344489658582313936641387739475762308461151473596948363795887270382118818551239643371265424809979844874158388225081210091772791218067333449535519529379168685821910751407776511124080726481123849048541762955019761624259822784366084910518887099322698066122623855986164303860578187313990936856557898952750301338400767998237748065467097718304614219717692314841738915018336430000563586719307380198885588200197804371569755337514372008958050985830284153953498229186111125998613201855503007279463851649764193431388896311774793224702976644806048133679659818830352316100346065906392077948321841281550065719258800513202442611909067529857932053609873438062529869328562553441756503923444399202720183829800861563028029537003893069445995179112499340038704480188570703385240891294462201738690418872847295907130562125455437479940427678718048899645264772700213669423355425717175047051119620579520459742275364740281986697324112462650219624578754486048255243695099713310147687832603986845114065359347853791632759291797572792146200049128696907291784925065730411889121177965438641630042894698304274090743100191335900733492452105463274845339197416396127934679821420842175832840137702318076005603204661794152718616677373526642591707045257481587565835178687515175787983362974721336817407919404636017458939098709205153920426586396978515958147657376917719815243931392204132958177357564763051899552087192308614633939845665203658311675568746767749051930623044149971262904478008013649781175832249139822456753414421655892224281156768740204517849768827676593795497411827315676651791541603082892707642351260161695656192466044397374469367654873829558338430111862851284589962537204658028177552688943350442332493474740557560621477637352152678403529031155469466434172205235580286809905730959962320464902322554175896503987582192343195109177026441707943406485049891554207281292034590844679687845782100618029539517523905021650284838294696007683391818531412464713460279002557713141360913486328291739289519068800523985194413509970923467340113521387009975878775949499616103286457109080257920744273660264538679818050735945833732577416294581275412765819943547558525411689894222421275288136206606553662474812578428408459538132997715412107219745481166583317506742099448367421712939530180285076583925008706885348628625336066197934159033302920985440798069064162146139033422543927984279638357511528000122795866480722481268346106726636246849040202403017334741466182263246205705468993687828031368491835259534373726041335825908206654408756353214698956410670687309969064204316222467216782033197069898919453510238980172017111271642033985989846184163024494428731717469828099372903362320270407735138611307799149954667166577056790426406312942365329619820216414806184375774609223240290117406440409888034427789194124639203134461155484423425918563675120287872471548318050107528375028299921818595000637912986023089712929333062388785700916049873937092262079048046724388456273868297367152923346906968009530514316589824358822132344937524090631629802682971129354219076166109219431229915990597022514870876120708544981889376003664109675941865652340424133145576231268542765505538366357004517190707586736124185182197044567061505840380813568932949015795175937475655250263778450438118224737800446038628222827170207636276167214524763353596397790948120118216109205861906796160981313658671078689454150149718295311151420681768497972535183377093819460067188762555931442218003689500476471849515538654859510742657106717201518527874791118839532770450202864910507930151221952887082901866083707226831029653391232669813722029308409229994684871566832536601160153220995822986951767627218431783806281475105236458149426463742709433642822707387954944914384425543657711288260846817528572079169943736379850150126202162810228787273370776922881150693369467150335250440848212876038507816652714733228032800388540278156564998887479578338753935411902097942786449286571722614796813791350325367083837252290014126912397265105760433635094299555928046964098034898428129990712617008264153640028909709001305187080961102756283209512922469095284942782791473054579574014583646559643716365612071343727901556541482735531306179079788307325557396550983902668573857120679029578627130272874436559581933103251886083611472817686571593182143891513422896163811178867954331170468250829075667066063690944049063540685363009005671216452148593101778740718411074939285126265848327498228266553082577448403222237324757388403928340989505939286061663939146928442851790447444366612776496110739522226818140668541716786415078328534467162871242238295740288917153324472037742939213101940907992508447411209035304480638023310541179154251243613612186564330303385160526863180652994260740301325509258364072008288603523127813667994371982183352465532851640262236101460903051096843285396212894234157032224444522425300438268475647537820345046781567572909293497645147772928894631243310294455185209906346033540207323371081922542565144845429425281452991809810065169661415462073679646923824951988459903054119661197278195481066693265142713928303760109081327884838493448203015931514820688651780330478697162757117094436760430631040997964672716229403733793901051660253272966861533925158451639093539509322664851789013971657312752447021959222182126225250114855258673607254318254072049014008731942452693328778391196412330650323464686819993917269239873354551711552620447562441412389233950490541189248926403513406558800756267570147974817272629013303208234589382231501351350505625894636269692307380617327349727413639094410396403501560932664901882692883299975575756856407043463471062483063456690437873343064542432835809244328932682593661891488801922627323864179508537121447546625238805174816983010845192064927945371513173087282776667599696472161863337493707989126901177713342665318132701139926094525410944315051641433703311517464050302697962475544454883759441074282432296903035912951449028866965334910169395491403298169034550048033925606850591555835965524785285495514497442162514694920183237271751696363298306063631225337044751782699988420156253244674957612218730749949829258715534311478311793868397039283576674753984440225997866807535163775400787919396434224481600615463720524633700358142415555610875206196162314022328306730733550697433739837948814822069962309325628688013734714811065718609531917614272202974173165010618778563929356511579533394504306235322357482681012998627553048983972098064960058990035671187960307637368845235175508113701827819790370058497077622901150742473734557512322694821790743413685417793607392927545439747340179302880621165544504377323216509163158309215156026856874504335300490988763848920974153408250650361751425952294031736321358991761216804872477168139229546670218094250003478264789543682836876947626424285741826524904036691043820430245577006260506228139064671130699102395191978636231688789485286739270621946823584402589891280483205535054912789541549773944720409098826157741366339854880927775537615482326343669394607543716949003665107896153165436791097281088277002376820336942203712397125543634294803624727516984682953653762385380874944076042309968822681353778495270622763859773792100634354178041192927343103320512173677663303929815922687509554233407136461071813803575770962586553622341156577095278454350033507714538293157800759196512299134747219801403652357923226305976148830328517754226463137865923621133046821060332234953923176670576646114381040817427863889072750899199961722571567978127944142865671196860802006441685102405197615717178141378344554429723294484695297888737517928127006013390190026373081522418597401084201102604633423855912845371347144741741168061948343800112973990622538336130829529124171346133661681810003637646781298372700180748394324725656569293696853249010842099754100704799415683877085359912422979385039157077069875387556500764520475383296470000253113802244616575034546512420687831311456829948360289312025858145334259666914791002086071571517093559982011351011300841001314031488055591225913115202479418221412283101825554098309266123567075712647390241253433988872376685337444093231864977514245913266397209264897047371955910710717199816595127594095105542672265514756125200427726039323504994694999924218004689081351783805450504740102804448042957848810128073672089891080943612782004666607077920578271898981977482090884197016175945776889571400472465397994730592056649408495375421750769444487718345423287171728963063585893067859197170241984630326182168113613803122101125437864087081965800562555371604738921471420536018970576034455220875144817768132741324484320251469963057043793279076885265362402446321386900516057067960887562764144726237203122113714494037394704056727756365454635954903825595217477426065850531635021869551104935476132073894589936535096659722708953176021592941792272854771221517621697550848157523316431164177051908798504037232944587777545199317092084156678823049635898205676851833300062528738761489878447852050224247414427345900982440451142685563587361473328107175202773826529198734344803131095186544713595855891987453673999672190880540853644865050798778014774222341131173420680753936812664262171576971182627793219342912105769593126569769324134472600886287564465441291600853491991311444973295080185650650650293671524647435781103857615609092598381227190131441911600676459449287128253432335126613672407632706733443716178836785634431694105535461026324205877648767994471527927318656697896131526176533922110706752121106670632159921746696137145418067084146124020349901274262038755528258533785501185633531118957676818922493042747605649576901448030413063351555763925453701056863920075400866923812585378760452910300742143888317988398152206551493212417342441235816558060194696838608090848656935678850561530072119802098974035013913490870104661859484443279970978957559659341264260064450053035596423422349808789948873411600185815078989947605713251040000457999114540938249059021446258969296867612339926699257648972812785561915024966827038168853875236756082262178584926658031555373451309243863110834981177770587265164580863039615646183255467448392573700273128968800708961428831240331880715824958319716196599251092880662410730181899630611645142540466458600292649168400968430270366534076121299775873558739882039722488251514517475202466837631603418072156951804024319815183934959045119720572636696189959044238292720198792965281285401941506900123717750361778415574243042139961774862119618757114571999418709689465774753847386483685272364700139973466205777586572015846646335234335154020375771165708755921605539776735510075768739686778674496976388012069744589155696970244546030419691539544991328515598039887617569932832144413931803694325271964491407819151813882546881317257202657085642809333226635918778737734423414193299703326751045321562955324429819001795063251346080537297013275345866069495626924871170838786170392937427075036579452122997695096537826503269011946821783075844179135463642724101211862252182954197831772106989141766410077054912485023812611671884026109610386619348812284034522551773803525198237451682855707453157913762498526544309465869500429077932428919462817094775823227991693150832405385652940954495720319872685801940966739794880502748528981293651152339146194917032716248843066714701309923334061726466259049722810152196096108370947659288963958487569366652628856999590946392401996280018775311284937590784140394940494079030948984455465962549903795093502872578083414930953231152401910268590749432340621508540190268431298600789690399175111012909034055565939846009533233399097872693506952899506879379887280867914569253521023797221930923156488855775566867465438081031088799131424260616705209330134740202702698562052423813320986972863321398280890644067319402273086666648130400729397947296575746951311618406990270394691746558601416802391863141952469100750560628220808330502930090093419165295809040764780517573506586796286713555777234837054604641037422711410868118230063434611017289438787680777696427033020756628676938721482384949281207007350152510397150171576053468713272286281062352061254759706333883904903489013837260343550253252818541344244955480640076757281575098143485206916199580465675298924268936415574328859147573523372724775178824414460284332827116396155879744028613949127575614387858419631374410455218558074428883112302806593145521003304883278659527459091101707277652730954703742701335164209794815282868881395034727511636416884670708297230228926216807388340429135443984642959362263145238638709043860062934158019043414628778178406497212014972257559463598147283169008621278277912104483266414966993239564764414164382385883458902350430396692465384952679381764545369321977912417785723210363392803915910199117232899463767632311556012500635740961127269906524633777917309922526058424334337617654683856443364030928414972951699652979278210243953423826414556956848892064367486075185317993080015018143297297044024005459737643813414446998080723012881356061263306356129539733211720580682264422973877639158186056483867834908989779438812590684300638547223257970348126053125079180649580935595850386115514730143489579738357813401661060620179225568022961908996273778562436929933590319217329740596393785267067369182417595044192965448703496543969189056642242967230283620228785752028856221275173751156213635701510612542764948920376525219414294593498209421513468195142374318593440688633055465927573890328714837712834749518030714560625463900156051750507081088998408091176340927338020511560937926453005086981127774372286100963825265707003456201843255079064194788774382112642130502397887385423313767619468893473273817956523714469282013083773791448465678458809304746982544199636890461147692418645175825486492398391790108577460573676794744135680161024536382417150451733579078717618862470222346477851262501295101608835608082845441282542763972885552479978811413628729504779571216150639199435737227449446428397246534574550158094551960459315635051134030928656776420262712002868692992366623306466633814823043724050710924199258678328592072164858391388747362560241474886058400810453205549047047254171869568916872254665585952805626813818966823378105377660766134400775968172825115812331265369286649905731589820939617907449481913327512200979728392544597964738029907155975036545170177807073768084989952319625556639053863399766907804101396383721960592195194380171708496141082777395129926965283824206580521319413049492525799911521543586212976029926720091736675051376070886079899746086408052435170962083005815340571614352881120672963270483387268540571621094602596518503711521182364811622758396710910963115487665094416032287851290742679902457276324368456623218691865021280258028342900909589277678562786699924912616412176591917779363815441553659187435337841770790028951443628391134799953821926457596934455270603581003714174231962625590808445611150047637944059855405275891315437679246302076212933411355533767333219509699425381256239935012516995099864402392932060019761926354063002824820772709934704444456334818256160960507276271148502617755076003437419014533091205395057501191104891586762170050357384945693279210209441028745309323294528899795245079934544401775298392261470750388808824253209970509423973589277190880669314948287856929590397231291989187972755448136783245431953979456369430857766707884333172527419933501442885162655626007043389537199867229228987823166118663245380240074279530720257762229079504503917074715601020754193150441722658439974944197336761446740914487631459584692675466743616250361451531380078162923461941001861235304514816301550130803394707511637153565718485993906950512298063704659499914091714069670484996395830106105567638134500209952533490405506887413426725726295178163584032748571654534747315180502057873506996038756779621182944872652099803944797746087305907424770056425715499195471082099391916929134220922293123895930777662823699456302226764708983506173036628780626413768407107548038360598990006262825897730455372365936964517883618397271887812949782640685017675742103413012602956130206752226872626252021331805099018936273085336265255123521628277049075498700106173936682094192268649279873246245653673792218746898934935196375673693312066955158756108437771680666757653967301621768458108313787640880731885016922582290656106735681351218105217922643229330544104430621830850242171372714917359863964163901781080683514493088616325707268876438270708817198367206974902580873076285616925352865156012524887567110499728848653260519212539080583883662876925389500781735667443306652627405028803872444674016026136114561543188921533004081780843451612077097212808386511788301411466503901424508210085742604984457053112685475183684284348162943329740468289007797881644176246015232088949450491283683362384843438647507902788883845471506876803008265248819138119926972571964735982528829760388520669014569960889001278638681390647432268310958903491056808418334688958780182688287376176461881703896827449921532198174466478910533989791263507848630854353733558052324597302078903346684730652097647213804496794810857025376976889361412504846162898250240704876598037080763662064584661645424281957530497345655878128007958713570677328081536169145579011567068783118824208005007187093661314423202549542596452980400977717235458132698695998032037558627187976850129357921339564665319836504833054569403227343030261647177759932412967673482757936037487038389099497719839102387758318478575126029988234670431112033847199743453811126533532238530799608792846781537005756967237688744997325856758066621110981655545932436694978875573241256721028814624663597401920410835679887767170434783687230652121541756271031451945351183117107838776886530737024030854325165040109253506574601343310304592308945907694726581770631382847410805156996002390144099252692612305859702272750485246757042774724862476292089757551707509928695425008899003998738517175979582754301104121380104821523391288250757230578501109940491089666960727903776800982782359827692340919753915029001157293393566522054271216478593089462558881838359280732932492375249615532072653816807693027704425820116360315627282284528399471551770485144790338850997003444952118150232744596294163278212135389284190219153920220033869891520312046563778671613179752119369530363958881318601791261579089727698826298667307847524156813218341762519620319919833353186645955082878832334113843071008716633148235270411003488224208272553821233276113283539420728919476132901486903468822623497475084195675181444611808436486053747448699752449143773131466162260839078846583774430503174293677339922526140026484347812962390986126421251551138389439256954282622197888412762669730927699111505248946007087152362128359885867155698534281850022936572756319823058935187271966439836635853515149484553986099553876672900471060769217254221948791276073171949830439614932833538650700543929819411212747481927931018888472326664480224346785508608835572678217191001031819168448324367524448429548396215427238839214292422437223626371861339207440741699097612854689345494208162690192949639084006128122375468680876276306711485315201626667358068646221695165923183512704248473671927847958483561717641509026028415202043342333498879519678160320096507648363432511732921319757073516174545293870999886467782590529584870655196331562158639259211075076731086008271362061750985096503751616989060014770299348409613247146199897894939007459099069518419433733836736966656122471484212358402770032424005150046081720872737930822204135814745999615278846557077834825263494580867976066625482495718599849276674690159367839231954166753727233337862944106643609214147277556211736669313907360210536960274391572863342824725623612555796882519788631102675604745429675877391436122094697931132449623853381206436666803807923391352137808992611531783583353252449911676984419224786693134364615174154311133900069991353756313839892312302196895890229036183439306809169264194831374517518313769538910653374518041033331356026684244359872267571586175682297160031944679914993084453138839491967103216428045869187451024966532614723293912488732282378566634454146689310933330486277283034402502425294417082686800581461237259419897476584648023029299808081145317602244289716931726265389002801954453222210858720241548533596589632220582655498164552564124685259130385217654481253457485944395090910779176417991536229509780721258641689443705703241673127221457506630070678932599519969962185665240076175888196340926157976037564516794487524556104734816310707417116279566729213327322530670506923723630386391206175403083063481298657949290658911034058992736180255166284702539026053097042611012456442449777571621018729159896316691228348053474981607535350074510815032580193259439059774234161661776796017650474696287498329642386871483754934893325839444095131286818070783124565051780238348479878600542129295710737542237481352506058891287463683754693272894129172796267205751153539719289206356087594166392170265734250476335583146824022692909229721904986599563812997799790610443797545960181421869234187350453265029419482135175186943606562002248819745992611531579751273977855437104026898736530071090715638961980091866272353839060696348951842032671556487150144866318900269087763987354803096690751523577006012207650781857889926405705332212081112997603964389607133360573126392959030551408993764748104286208121463386635584500444174581800300927975419524658945679998922741334026771423699396319431793772310933687915214905629962960015879299401148590415780366259150274831858402524915750412240549653413031372533114437631403939470285301607520116961983689380308105693209752779860982640390975926302769146917961458647145129931760608520900828679729822852274926870587665228337816698890844290395808487140980914288008815069005276056102169779663172805699221603324719149943797410423254761155222433588929304432801185110049471996609940648290322121512460686568490821157650233566956214083102020712704774694623476039575375710739194450490049885092604904855511531393552122000385958985603173929584493378091770301362276880859044717467339272226693490289553895461114335572619378771055629644316974392390894176440482329191610551091994602485628493163346355727342177313378747498086011096147847262321794870887304152502379398504791135718178192427337911228841498699182031126640548065628071540612560489206128346787040236543770985224813239524353701437923301860594800170081737929470250359334356809071639453792811268714764454080842854911464010027784069671467488247873575971351139436448637511574332887984171792997332301034203936988981730661492508197211027163244328183208186267508383319760365148552894754995902070797924200953316768601685288536857180612236079667428786334619319378746155614569549528825601853445952803628652266987552580245636073757583737705854117352245623810863237221165506052214485959087186776442982172541427218626845261649688424283990277059921736490120809663794661422921938445048683224761902325728032904700966268406420900867755230465472862609745879508690884535905458566020753861326586478151227679020171617630700649751964876135870256568954658525799626763483761115988816352640763823971711152568306474737998285276357307818003204322528449889612344406817242211965459689017277946380326641209025266605720989281113711680966565933718722361741210248333018902871297464899358010872500424742061680669901454033398973155309048661551831230196885704064150329243838472408246373459501263006668067756416794059034205445875769176554813341251744639485127294514026313016260747055815746272987008127521790637930231377064713371524327026482694601416694635166032175779309233707447917001383438527459678345065728376058270336518649424274497442524057449045596952992530327151058267533234455436230535716335522779345058638076534095827054322743344146254254095276140029362068137453322645036509906019589238703526563160292618368161159340183968943064529005113317609541730394625126638424354767534915893451899746940551799069993217904418299105274322856080051262576002636006571353515595593748375279570198716636681581271667007530215652743941160705182864742533696494430077247788303196408617681933299505299680488012646126593047375139771019493169140811625330459195543579137231151830605407838682276481048271106225458124581663253499469899825509592663501048495824527930256108066397800638962110104189888661312062473658655225166048430285767943312638313510448314891050952266040342878797024196641247549919749069467618266369927568127262179667943671046426463192029947994434789053491356785104720741573267769480073808995276189441634819750411026994597679846596681648489574662365481457370722264167915138021283807159718347921908570056573684871240117530361325495241470891719742340427911643823549288296783609630088830207597909610462207877220154378843325597571679348759839846038784980948106317233477559276450643481006422654718872701511690801286476167663249739156081021187411206495009746268176319242118468337534891692077974402447445776498032690795682396480503711595524833185935497554573182858228958716209225841324718211207501671126629534825426248050578368459631779774636210668319641434719332610380384755050442616292679979801877092998829419861389528704161553270867654061107904561956663684511945264172300796963006103057134203192330825926227195517478595547192943600645134932297215410103767828445562426828750181557435100483546062109008311236889323505337479001435458426930946375899969224896538843690633094524861066919554108859573909755959288663033338423533705502778185010659804665702437748668007778982126660253641110628515314811840856782014337044931924272508414162091181533095327057639476643986006839868688901789144273912318170237349105288182625823213227377792075183858385337885515532798103781807438130012316963251123808998996238665203638656557065595202231504798561202345568489844584790557887945152695300848692461302526414463338174848307477966667789197556508652293499853620245700923631614760796248111203429451853116675618282805874858170339283413355080116843602075745283128153965800479901059103739802858850752990337938813472701196693884908208519058145508219957294004455119029021784695406950223234323401366290433018636523202125417666007521023139202479033851747641284585205843180245267460336241970491327512305236690167398548376056054581406333594739501538622218359481518530483316412459404295874214476470541617640193783808607074170206166721883141978227276753275924447561218302887556970070866123425425697760278126802101089078619156032071399838428003147316123065388741163318092597327798368569331798107810725826111673373861172411281962081451783103858480748927558387753055742792411939422968653218072202849083546626270431461006961464649896900623877513000762876316057779336468762626113521014532601678034680577302523180195855264243011208224074480813488074688488055049940270773814424712298019520148148432865227035523784277988429180349354162485957918118461852120759739925384819706808247660123322458532510958753293282987320988419172206757457206511399364745532973942747540847395479084478446698941885212207298868129139839359913179461810819037432667232739123112905159384453513142218767876915457046163198592824700083569654690921453172300926929622266007672733644343772592782235798228329194298541768687385636155406973097081398674153615845921517254574793316051380527158077997580723176737874494320996026905562927411061784845934771526404449658775425607317468358607513198115944404181875055598315464629178251423318856494326591630754575484425852556908564837714917876620154815490594811382727387580421213285908488308355437522347518370734364795830198063577723517702891341675256770178957593162866657533983997936014542001665815286635295523915704361201041149747620301671259864570891297310088078780096903646605955552617584941118013350383860522540884514073424429044595907547036179827773655861214156235538790426889276400999307968020935300239383073004574482943078501784368274604956013359887105794113115612998331953151524658367694139903478509249288704423825752231993050941834663821056105045413506380153281183697853450889575302538020188637935576691442097136761066828865123331815958609388690657386828679972610801932576983577777992162712531771590448563343876033319311125608597281233128048282820036604900072541070673666124577441554743712632751898679477618894520755817089976778828296155210568085744095250834243257692669113222200235443217588459012675400204346191068814147932817337917853905596423073872013138081165518332539750979929603635775461979683838190446204411233900745716903405051281387375640248560802706622238711418367757354778736798254800303981213640669215771192353754745093676745396768995886836201173937411942703383179923706751778547955631397722033306936944707967292172813189941358343279844915296055198300631031144133437519035688666651179179691576233814263062516390682746193081347279255849556665856974715655535309184291434068653676457301153792430502096713652675667510126937747896916405500734918885027436841760275840979554426680369864778640515998630358771512233804661971909094078006033906361346144402859199928888410236986192562964658330767544877511546439326201855919371485359629882455600129195258410121454707113704232651833560322892068805211461282385423494204765858402450421513484148578019028231150885892403261413204717727690082830117616843865160622032235901506108345066511424952757973922465204415919059847435985821943466198226156561997030108293657479279318206517161489649582499639329555787009539808449396499012384993297949372561689194511204731464907892974553050659086052120784520026842476552963391207347643988458092362526135265555620641001496878039469480046750745851727512794598743988633194054173096934242187983514754917907693842016105734413864415732369124237008054678720785723659687811742943476525421727514988639474550629957404810892788156204388363466019835922438673777746426681855830593791033576466079440242826541991096729250753734900789071463159427875645366357483921805254433219254978008169977051282660125075576760799516019419594957749368882429358623896499548048145510920524513458245606414728920767068979337773752253941238648145499497538080516383565491005871557977559008381127533526251667818205115405511447924419689748847267616784527401430712252749511604097537447289600841685603615070447753569852081140294649526623545746217216672719523619457216021523735041073022674095877042338205225493392833213839439974103514990477023449194650207224876509582591942288621138450114669485206197345643895232052559784652587311246458532985860135370598852554750742353602203589061488691804896500772772963131675180809104202227050694186308917278538260634956196907891492026413445940913889118836504845678893168650838248415112668863731676882333413190966365642397147379158745731399672478691949806851467417584517406749337087182488845169666994952957250498598174937125027552099186989602927507209711991695381584971047323345255317224232599731209018080241113745916277002866234065157340237544876856796831016291157309544336713876552252138879434397226329172018521516186921586437086066900828675007840889332388065213748027144713436925120182131289410401693081640014165726635923600927997298587182820971540136773606592624967872979679136460243765251789026363716531731636007149209455759164660503666770273371064368823133865115614714709197639654063489469942844272333068001541313377364016823916540881483191710837857353285346973190752767191499720316440950459930333143344715987642307905871079293850227220254756469020843242778110271994482714992613518234592557315737523529091298026375869781974397549558882903150799427990079195862033225557100907475348952320603177540698965821706826024079159394088246179670080850975927994072231693892610289975240946993844897220845704524476135597546258245046239215869083578000722413892103966568762838981068975232108136543469072362467678768543104557682328247186685896570476975629000823166475784593981610483528253837173746518057382182701722424618229202267314947586102547711633235309785647336244486056243201091790967730578288970048659399971283845152897817555725051420283934327150785968768066943182937622486104400629760974387140099826643341816667645890842494624056672483496960558081899486515635140465429137062036147944425104478214190499820220254283054604597780944266073933294240938198295635713864319608896160280087461932915586193015836186039133560734119579006198793649313211172725769219624035540807515433780622187122769871813658538543030353025085341919812975320167862526855460332929937665655652702493208405173249929084218987555766332737079379349331361989701391309397984769226020857222885869716561788646160892935749324996491251204712977783614006150477630283463113624536282334681875430948263974214971450210248413704990681121023602973128056861758315438922628306018936919498501253985159272004128954870486281035498427148631179735970107098938128731136343237738849108016313643942100561576845999806917337276625446000040327897453404856505844690341446259995335231615535752106485984616525246035639448050463427285595661710248439139044485638160069686166139283585224678943629560863961984378052410660792389288178460694061504329348518789058848625363029294767995718866594731568609371067016262625444271814361469440523002088303286091660544154510631904345834163968670411613923158623821264932042026006938535911358645943211412461737743924006400772908521211259225832540746104363999534583232310015407102648339495968826100255172661506016651060677477289014620331775799018731373875093940610842403123206887008103054181764602097766261340624022954678973577992831540206944785642990158658617810453130554971650143903367153941825217273527586464008419400658268988673748143597234587383818392875704584577787414852394566680701718042744042974462304272807308926397344655220805737432376200157618769971600574758476834528130615676146416785714626122798500221267932689541526344033659470242332048374556668111975215282564560799792832339701284137128957718531454732588297641204544228982261078820235349493151090326570679326091079531510061965282711134458804430132422936910989815835459951602730176259943217263214853198884754310988294367909939691857524612515280510264033976969139790095787613513919168938025899082538961584900029738831326324668783980296824708241574302177143091715628613124483565877123425297043258036092942311269709414984020449232600331014054443421428035684664692685391781911153514877504091277567805820941805815154736997049829625756201249822065631028690644216956677993056604257471310239442846908893543678470519649927103823585184687483387459615665922466168986685615559377074055612511386126418970394572142302680479518631107889679694712479084045422262392061176776648215797148001844837920950495388834802779305350381333563195995772603677157444477835070704393034311948361927954268101020121550978121803433752410605828692463888469458671058976785067910875514324068899062245029668409290105236063048838651803865957160751840522088477864211805196304297302861203253883074434761321666692386194609753042163020046983117989034990983475084435226680391542293394009540741124212523196312945464291717434980327774089028420447220435680477081005030304856486045979728939512118696985104122143309386936970581915038659968629374821099211987972703131119627303701145503104967415115964316014876983579096382989130500038068493410556674282602058892159148004436955021351853076696105885073203870287653426698902703550082590491534726825936292545548221925739175083557862767246146636039272966905841584420470687579931010155116932169104463743171120274942423337952585860389056707530610457218467880846568065237359727771930841302080993916753974694662244156225405074510784046560808696168631287654673247289619321252844975835505244545764204758721265015665225353117921266772304265158971209415616161362311461117231361614618232272203044636120491040697674224852278703361682622800515878177071491819587758162997006732270560745537666363386713923898789508479656802002145937190668154299221638745748503982898606971004162701750222621495105221164279284026696162335701375898747807220107484879233863235327547958582575136703085155229850342653041602785413913877591342279120834843137567602534746636782138354912173712378548318298119593206701254643457603356255480563203863000627032597540208570637946999410758463442812545618375873895021149636454254364140718291704991234495752004617328855065342865703954654289380305617677992876014806513059486686690313257829888833795123422861161011707163004228474484364343208196521321558622419895137750037241521187516209110254397107291448993662363140714372533353378685459448973797233535721249165589940076455035037658739866009969469893108442638168519194149447577776289910257898652678161927852281813806706014255312812729094014662240934506541578303538792454784379444513760361528014692843815235087719222229663386017700018747329260850816516340708892030836353228066755311703064893343980689937270622671973211595107404718981243354479559088614466850398743874112902025946798608639558946695411956577057370360284325314921325338562151110236554202006260649093997059354982977533784085429657897037276452181077055288136535435893459175589166504832849670922137097310662749717817988018612201334462218423256134620316405324133561540235896594601711726405559849187957704528515256479350784971520867363670369469345761455823340671843000790641754071299448199338920769448237986612093986310888701108119594335387051090860567870712894951816362468336837642619750741848606467391077554649404843601226056809135887158861042612016930642099821695456418583190809957903279881821899140058905214303567201670556251790224607316014162813669523608914509895143201612651114262153778857155785191561045511294159345534855169988995178099556945413588794703951737736730428704947885880368827238119111372227599761170537222711709928120283042848013179013446029566704563598059064697927301743347213668866542343236228768716878932549026035293803115154198787201849333810517973226496385687350187996694708232070551869197976120053701329392472380964879577669672984951372793297940172676642732692523638059316340257135881864571832937007082908980918875606670792558860668656562468799782675871747489273491633947215830886978322791997672146127292500529662364753645844297661194694619300476202137743818950646873316348575159358763104056751800840035224468856779558059859651557339083622046415602179187494820891307684083822330998423324967233914923610539757457123229738801397131480326285980977470977778831354852061988170457549720194732507159310747763816173234787548635872137824575674711741373424637911740768486535280763349555709410980125420454557654115905536222231455168904513814448346673618525352373953550413775858780105878715019155146456399887754948344526781183390663786230658806392850133043880933223190656463219824798675075174765158517232306122673503569436474911639341020545238208234205903819626881115081897057578548135339463032108120352989617256301486251992868915180608445287040755127785065299139904656213899181667526136971316615736299938361787344004888189847183598079193736290729155411915373508809312925882273573089039287405509797755468026086582243437481179948040202939179245352378838946400610716621906847651857985226055062838634945276365109886035350130811731377007020488721623374905743607210388738414600935164389614483745996755240190257332348460211077823590394999455631952043359228528717595350357693971101922887425321022990405923853515813263884757894276208610823436901750766407227068840506810799849010916345114434180519852617390748394926187290215982506261371912439261538558164550110457145370151178397156068087570996670891647750379431873352122637002752221392082076684694760776691117730026846388150084608019077210740831493004996096831272192166072988101852935451155134188259180837560582367952951322236820521613226048994658355135672535065375702074523170584572552094111239417935649616015151447784069034153828908659820841130542534620988188613839587753219661966376136007478749433082644814547899622388344332670377676425525919199874183924648247273862244600990075393815880823967181546500952999602571703171919676715945961445718508093150180270470849161087015950466653738207268641140155198792021223586146519996521379949707513756153431227018636790458232758068906095400629355831683150040528864477756183214069798085580511640010272683055370434638927430661031674518680040138943488031522638666556889352268704050194673953110291724154549102563488131812121764142082352303538387474160600061878932829210309350975227118691256152411420422899157706225584830955098246948481111551772340512380727407043097664340946482770894379784080516220373363377613570461868275314821185727555523863783486077064946816437901368767903847200745724742971142663459412639709592894565754054761429924536159931824370859829808041373097568124914380387099804983811067983156561541035820790710014261928123566478373323233325166285632938243626383181211408544349567040359938786263056494131527587703196686161045500592384641628146962088246238272907924762773596303102631071511746041158789290336271652512977678073650053008306122680227369778030065935157854873446621068424416293919777466967563929069363249846153356939124954074293523165893923783903077024897028932099253637057649155131185930466555727923995577914797155502338596671449711094993715906184397910865318667108881478037936260347524346397706556981423140917851145295212558776176505580162350339221695366826063161325503370258736177822991476427533139292024672873751533405177802977272822329991728668228625825190013534271538931110974623414897012871629307002255443247139034430514977898889273468611739154706679894185887332850566049475248251864733976508446617706703142735034454400842678071413186850828775462962926415008473225764320811830947952545833141074030755567347284399969685621782962842338138933568437646856206320688286791922936744838887293169076309692480029996595700104553048931197461655833597001374444982599593049017116585453528450522807745022981924566432907948218179607654709713117090830969014488157565011631858687460567113492548880589974047792518642171088602385002137388113901916490508203094975023080234652804191876487872390828523463400429810132149674942511314470783163680051195614147188378875651848569134320071161005843453364339070235338458486881223625464522086379916509303207626294720545057522682304180226358182525809848777122224685304720717737211487619498815132488497325210163073014649350865002548886622452084260421341580475142265250844138889121532096332887733623993240590746537101704405056326896781549402619702706359453388773589521341817099499614443356115250554311635885530339139492222902070534281085365341575404318471651893053045366202923640740427668290099733378119042323399500848931321936124126966137228819147725056406653394456284618740789560832024568046632631828956481537283324518702358504575065820963750283614796489646830394745308259409844460793571470617194147549277644761766989295668625216241312426751651512478485737406453355951671294422633015822709002415327341676613864475395522788103608096940919292210475767749336963068734139162303606504318166153314372752259008688569046826513744041088532546857925842180161781687468191874154112491466094584256417786916688216511291471730387241054667428031038606430309160900568407518326158866183504283606723283703108769750191567566160301785915437037425217235123219539203142802212236291081315067718930469458065861816562868252328042416961902211227047799656478587624834707958927610933353638792384717930499323390413184148211382985199159038151193791908792723002981044140895634376610075169127199731053122178857767658246947159096402020838305948213859778574671811568986404764355429262024848154202920487563225324330254242903786328201503391974890345022486042814109257828759580936080084781120890428413145486184318763215154458511748153223148398276238305156698538732302602204002003328474303881585830117968778902818348424083787539958348314609322676726375777336199127796981304270370056412842252603703843215225198114712400121686819654690850197322008327803479887257650520120496638575460767507680711223136400846957653987386688497010031610173089595780969845218318327590310305984461531492468642202151503550905276838624537930965506726326311412450847384225352956520509588399291424794670421227003371287831524710386416239223982300184239740090867225928011439488855473144248343002125548591451166211632072979693455069847051496836248798419237906321213086653033923284754776650024423126211266591337486874755816715981195988137649880668594322525403373958237811940412202491070073953470488181778432212170076605333546206348190274258835905991489713021153762844621578550971443248887823575111240615863313417951797170477389215400585618896280479271803583433557824135831307109559744740498901975548280590124991335217191029029646955173346616618225073929804136741538052810059088581566749463009195307323808131309686836063077356459828907449162542241908329491152493250802029890493850957467808611363002615468859633795023941770099959860387133952665960329405301163328146603667964386013705353528284176386485983420778771362425735235162932274039553258317272477924140705160134343058421560367892540714495291763669519438744167387066862361389389472706240197514008842402221161472034674766479095009362199019155543238605109660536634817979652604344709231606461612472454730602716007077151839184168578926811857453534422803423950677178346741383355738420567526562139587783258678759439740946830633829389552627095933033378571976290362038479760647395568804935119062983744926547161257160253006351430542937204674961177855012028175877551144927124133735196913882643670083123008034832870949394654489695159367195278007789218678301517316496184491985585462829129582054216541916633911714995037987618352213836892314191230741845958852742797250666520927078743452453172630221006014884340300438724181639166407902916078917248338508355621889803149412207732517583322871624793429820307307042900572374814336984451272630796962336518770842014788876589059463753544587122742735496499818709983793958835248030842705541260695750357841207835514782719899015582653623644110217226706590509671336313338281629176030151100278555697817704556447800600127565288564014955764442145057395813658017749690828862616332095536737947212255161984341742395388035033450568520928707729208643317388953086079671359767028387705602518199859284867449907572614974480881044553742790766177109654003714215479849471170436408906863694355660779748206802350180400596032216425037380254813468601806124188558708652780560569574122721691841549367381615198062688918024484314277489910662864300916704425910766682875420519887020455223675417870670555561583695781566422228160819691977483277603469735255321901639089471250813419927602992386761883610624394652495543763278393123503137621309998857319282763385052091801245004070673251695266133513184248220306038328761403735601307630699416940724013808621246811969162288943928088702472914420859118077942994404510119507335984636009227034541835863234700228239878289442010662305481479923832994554427738033326751888539545098601034183990699136731422790979666072520934830227064594515099234874259235692028464074582721890543824299855819084927770572548304207347212615226743957398164902677541569703753681605228509055925703777238210206765394384900426413884776807862659519227451141819986461288927012350677226918240312938498576345617313650967418037240523952465296926448945277153518090591873711464088881219324946080309363774279426660775636958396188756134429221859929578465056236365427806759704766577416266400874888097712068521209483485232374632794730260728015645429296766798531638526744509930948536114922688565911980326680540179673275630262569268099824485947032162538055827096930574852169712552105332077805690506899212780963890738803246552652115963187707496859438309734121894513860975467916953351800981560206284317023516895510271638028616192764610029285962069634809089305695329008789706802414619786530659226546997627049336072510721057119394529517347394758039344475993369103050224391039278782239460234577141733818913957387901235749557658241860030878205557526212460255287530302944678404899339666603416888776335612534478362334421067553798312442271431462258732047280581261442178940094312255672264069355771683247231240801355158831961152336514382584138307187361710037700498330794599830959239104241803160831681510027085672304249090256119056643874513636201310017596732408130553310084813249758221341746543801342302378448871712880028737435112258870387055778868586601971167254292066030694071693423066582249287197107013211071017536135688838444259190742971364962076615505117827344418743456884070512521498499201100075796955731603789208602823341806651423966563924798405157574770736214531247270082881082019112450711507104978662248503571341697243322339016806604866436054005750236258877302128601994554705935914198519426199323060701387136872064595458969225379123322188451981471697480181394635769478743978709835817214122603547643864628020145396521444837847385911581810929540825333324047754120573459041459970562367511079648118013523830627920904254856096779588334621231054602374374959581386112768415090213245694164892144216850721454272251165466628089007294385520344218870125076303657277821044502683913860011943444867431670691119311062737637928947722090350980635869874071770067808954657668165714635092609778764101128206823819378264439375537863717018754379865020380164278201865443052576230925060690033960909761114458945082701727203444943183515650428069844308658984371770975220803142811442519459067293848837271122093621276491448204043108152762606416182828913178518493812209169305215285501116779983150893812527999622560696763807209330916346189982896153441166860079541773216356928961650669730827444178860294472726133995181922931906028323173735355726002814913289390056592724559968942268747229839905584725642193825897383938352928061057015893887473909160687029088164769091261961923108480834073964219756481406969178910635887484584566784941011544751289468323773741186097902461049422083286452338664879942036437679573962410851063212299141845048864936817160570265476040513714117124858781467627423933511792904661669360780856850617037111038085533593882953817671523554038664066172655203357576489978797463218518764261316759480565075387198128262513891526048014078670780346807279063184168483332458230974677462143341784530168991036816235092477451335920526099769770274297343990311736795210285812216571471217649278310257698108211124836775542235387312344716597197239739831653414779099763264470598198307763836475025419509362905830652329133269347288033770607547390339425645751296351479785532401207897725897138814918063812759152059660061046386216280767791186039872775229979678809528128006845475157440667728435582504970192969938579628810345181945353240385366940208765126464045555443913988494021961988240833916894834252495853578047798065815089767941776695884971585343854842747827961084593149109956395175771598956815152833477265366530229877764919080362443686605721938582156663372644214371059390080862274709184603236207598760163639339925725189180908530441458720906603318176534457559502575741471115168756759316863858646645495468730526877564035003439152161463614110470372833342637779562343472381207533852765250769606479569669292492857476884077770936754574226967338181045349078974875449500839228448150723519316748150187825307207450992366817710371479328214197790387194702243873941723441974502046267722843320542649612023286022239048602416187637906222527490659327764234155554805528437141248097050125094649210032149589446141484023831812882871278112791551164864585909591416973785433877720718026731397855412230251677434869514905261045591397588325236454794811494485395828767068478607839089632797443900684469001942755361152581369609012955427136157439708685576916246629673776728644090482690590238592832836885859788516924692513236144398456663337013126863854714484685725718414984404980639156798281635948245036541432305080725763229339010247072791042509574395996492964895938493063259298998597771072374371634803345553137711067607317283123524871651514066016974966217485636365526844366991374544204347159297416531298776719849745341015009400553930604584799434259693167791860837305631031343596497623132109908146082782154449352712564595332730925221292142162576217642168598606555628236768996200338746799666951374875106584805313468168220751729118587661392773643527221353218723288169119342720350807842631346311988260819054794421385502536226358410107338387227727192627712547147102202333917775732112129152533424970497855546761050580392931545517429724249725664802456054534150509726827822878180810967892629760240008620203115628137348251888341817336207380277254015093389940980035568540602120057398204279025441908421102428686209050779767030667191603521438205146936556063521360955007861214711558894539285635269084487671682268810276093517137185732527590505698489363569923839731242416079042392838845890835334577432927240429665653630725068226314916544655571869195455261389619915075560489007996495507364021729300098917308137105268878994550359444631746030799329382212710793976028797964637686004203423001803883739345559321808995683559129025350033289657048900975503353586569923810116804390008093803992016533935843351800948184851479915566828677531553215664035761414965093551270336582419516718310924988513640502261787055407671028230006898826098557376195250867740108389696194332623410002911697742822263068211118630705406050021149000576389223275381152069068205049335720210305992810865938177445741474323111548651852645193177451318290347958854341779768359467772597291269654389812239788330057358731364597644473662847988711543176514427548333436230418745912519757931991531675349926925838250234047913939276302882217486579410783536034276183004358022556945830405639913338796182094554377421949770680367843837428600162325812727650956593578781135018826339710158639243420869574316070056495803003334430455428483670872542765790313636632875151111843587931752538087420086483904782013552190597256199912047133861810421338091248674215836299021389282775666181862864426269707445295867312974910572250582120844277821987195117186908747902085288412309795123560583960081446874566914638024103668157332920802846712584569903598073476205340685150551041745721263284255236336672874555107756484229453198109516587628538917246298825095366271629524265516680573112912122163730116156029023717237971012926215087232672769365462371003138181541027461561689362856071898388123838972863199040791293327115586390777582668691234833625754292110712947409297510649496918091714065187735622261181600157563990620253393013142179569488248536890136614337453093062748975541459100395466994271888230344550471927777427667069818521753517399233157599401669894129711352164030533981370577267070755601755817244814105884995305384395475058439647469209651340565823959357632733921623524921381582311265234209585291998910665302870475856735455844457513223528469767647367978463333290894160457980904612783163308117583225067306960655100802706746536147782825034904568021865835296050643846568375001927858280167887582922173421787030854923493494576089281373444936156925473716336095308632544693635541356103377101012749377613922717504637015119631695210388496320801551051233060332686893237916976079890681810252070129428053313746737299953089511227489047173098669857979828528361501127260641111462273225378572577187284107799570553783886838274512933979874145779025968972258058091904011721745794183126677465634385473086639677664590575845632448896722999004932606919024083918389101503509028067445556100804283480928272263935913375813736658232967793952945574346304454224836169116039498153656984607868672485123330706228571878615988635262278041666318890015598157775290200595337586650967320740292428276486623322687316467530116063727658952033185815113507471309477742488641683857588038959367295300697881113896785785751972711940598274817947910166742386132523906825492673420873744975838975795350409092386648565534006209650123544831719761591788695937420683105581027238685674324732112916258681008866325375275912091488476603730490059997273465037285246558818352200909149174573915228371978256938445316106684853733993465974743050801720954495058369673929337571443106105276568455428640272934452110854633326081562112641359014403849492787050842979796225161129821096583347672672713052064574671732471093954128688316454035619729602493596327611488794584002136053719235673082612455191002105085614110897797346615621382586366370664745748094723971363008889971026450442159369104057821400645348954405294802060297578107535693666161271560215197514358603360949779479319168836161962165937758931160019452837560397537317219222190732423628262367993787258313586596861476178209263725658627030815151075305972349784555295154377540962326080431846308075893332765490279701145968653400698724072925044233005868635659471521590103594193437759748334289410816400993589710941305355077168528660946765626688721907059550058009331359860036135602660030019258041798867875824564167361291380559788492810390693942475580261557369036748568324830168777918778313399606214891558575910239535382372771567614001210759838412707220977597425605052096395354347617802429100994512619741201680401472304568679015417042882093761928671644531834892195702626022721554289524961087650718336962976978992135927590876345656050776678186742546126732876328201973465687633824010806190608636281667236027411267067137066807962153112542600262356068804123706021536303674016016019329384019116099040013920690337444525695262727721303215811325225156419599170574522940781479973776215603573258978299756063989352045517520477201115460427665758769312411226453550219224812784698455639210654957118758448346592578409814072171896243971228835334130200210645897879617103372097019659012446359932911670056101683716211128613236499373305748726412147177618448530780143976910087022778051147557918227247091434352905626719370456750498113814852756267611441239427074772147574265557164403949740208631281407340809386846881875105858689521198353778508790040084143362741022158638664658024849674604673136789885754629415598478595140471776884155748068755344472314254161401325290323674099638345391131781427640820029116954909370726887173386665514406530325261137817583703189428085779808429195996639253929483435602751211097406118818557491939835117815998336409965684978994506870580160810915928865102318439054026002983680261435405456013063368103450080675783060066265572470910270717539438318875785171568177743331293022819403276737821195573116258480309303352442432359380002625413026538845115263702060970025831590328422869188709980934435048456279765406515372783944082954491291261898733223888725981252691067002070254823250282939609182526436244099164840009118567286302093380519760567191692662218988882354518206560553406622913472919671745412160102625495715366502179243292662621173344898734492888778848615534927384496752745732603887607076038640486425059490237139438217419849925287344797016038404722816064885369142080616041026299391069866830745605975056494616448349691770085408717689238247620983069146134560544581743906191860355374875142185477591627511912802523982296824368159582963797335961507274805679803438627512685938823159907894670385495785609715558805129407026354659214014388551457407663107820219109650723668055862152175766857533143119264194639247167131877728623361855311411626343990312741959407763767881610329767147280043462276979622778710709774948913292992191723914332929527743743361217666399845333882832135711316873850730682061281357347818466514877470020332070176621541330953822707168967708239378037149823097046582394945347344957795056317958969657738554470270042178990343779142640408987696940187905866385890780729967822497046609902699713983254938721220650876741826630090153166153284815617218587301534786359155092228430714680424001115975202235473119777193448248022726519815508701192694421082274383509769272538803484227205059793420071086795762685445630370974372411940551491634417509969872864851554516903738280020326816026618488083071375130386072946230882114200420164535600147084014603071556782601719454771180766745920755557710337075038862666766033710126408456826413780852097057531965617973319532067286902422767246354245355866745181222636326930743529040151783875062723745907216728907283297817157070124402191568565940682674845638201038851979372777743436574093852139718589728812664558456628681831579860889328221222988206265519828669523613018448124954940815931100730937608153026307705539775411934920895457648769087099036781504226223382678950369155220152509552062853101453897717322575014852627292477153261618570445206700466738542106743921493693312215358355536659126674384412646932921493238897814910419326104136862799699434165391656064647219429244164526727134137009451284107136751297936171735579412130486359595127380666530211342920065697036819309586164900017086795359587009976107228513052907370013731946545636734547334295700495963012523173167919593705513405232564227054801353918702010971784892272675742953080872550591742037130459053086355163885280594853551958150488503265490527654410443187663765358939017928254821564592849582056571059572626642658003512701561868128160833088352030076853603270171629628937074350795296488869161000869573349005791678059134583957842766612807481772211134837231832531242928601375710565963589938303949751933885951181201168126073109323093601064564825572252865388485388167972418610644523115693820434463260949068063227997445230803096669196687597688443066975653476681040389675903932290785535419496913443293935426841031840490762093508367724580865103553693134563448618383886397071935089625539078363095965466056263915993696969606164833022948842742093062682865628481955330288219168017441418654181801429822840458607482775838845223593578392507552480842600419228026835997266296268694162065914992343716074785359883869021514761189286950260721797683603520574547405053926574646881807021977660867118283842518927164448866430063973670993865484685962673244100885805105284478534122306236813169019112833815553117291813653981386855875003533103405405910609472440520912110599013645529124080432740713425819706708464660688869676774490979796158150412693578615316286216698807124422127020749050567000202035440691531482037422259775041076448813802871858231566827815610358640795376469708546192191036365010879320274198641414049659807886623829256575349805729380978161644222482723828108243072366386666892884167580757754077329469302968706000480688698235206579769729108339805300604223637498035248257291293815198184626356155886158305446923970293328403356967841852426921574278095200365100894593467853687926659742193182879269456011900087678862831924789574209564088141242951413267334264632865918511628930937959849275511669537060291134515861441133564049244906406883803751745376694319025493622372578046329618892201199143127799149542887838443157455982384608324220689806039514806500730422509180897427916512620953658081461605157301379283176290353871361333861291735429790216139929831767835949405486614957140559895836710094376240351064079926100013624706385645378449223617966935366086838119620064120402407116105942120144592241636148683899906317974573787675124619888137090872261268827300676732336717357357944999438906064718585353864010780332337968311184639882500901422371453553703241617372856301287456441040339330206312054323791270050256699055276658716762363270386899168896012433595915263873558915516125942916013364997711373343103754798614018462645687534652289497033832252088344844534875324891789753311142177595233131353963252197266693736600016166731252072958192952560514436762898307007066962459255857781586340857823084523317852942745098244855236932364876693416286255377053783558612711994976264306520594009629158867916646068869688766179606871785665150797076576795271781087361058257916840984659136239513734377959976168351376041263801431965517913807855631059421431254464643911615566733194116835126744113308322818849775030437156217276157362932433746507937562596257654847314205659082479022060662819177773932358883234298304108407990377982812458057640256852979297412835585613188845653576140515024887659322601188228652626649457173959858107239058375050141312839169955634964995399937524689341921977371192589666639706456421385880255213769723396194301290345522847050726485576883304016357704957334044154197310265384298643859359491279634236942096773192490950135546149556265841392204971421309127397307077201353453162620056811415888156260690612368121302080887685692408789949426363244066738399432722741711969623360703409806091178295265843166739196292498080339175269872909380964467707788978005374143626734832046593752982374339568338617342663555280524816302444522590456069663795186831185845516246260465061709366868946399896469021441351712162995465872536829327814843254108508027514075562776350676469909850772909780090969827880046740490046939897655141989762937204746363125180547914116529446635393680718407555609838380307834272089174201197509315065520061828177518324319834453782997149580174884521803619190230085973987292160293853643759887061459160795575305372907771201412453749647541197720837994458266747223374894664550270677078626486449507846633115925589422978753270122034338980019255983898493323571786622613344562637016566235421740807960436103704017045810600497287177034730249297640698615517605247863447291694677725673816061401525737223393000200018858419216146428307912711617164416777127668912865462471999610245842496799238094127018555515953087795447835882894285169590139742108644429452534727221555260165663886295196642158062583587538618712374586469299019926735636690465520160696847509555852096755951066018586797078700954092055292322659876394175368376228326595609396136687329088200813961216855347973500556351788226195178480673964941839538927630311048111219706981774688504521241488199410530526804986456414287224476472827570430578057021243730123822004480948713932309659455567495353875760656087622356648719259820862150227055033698459092689473232857229735098044114761839952481182400996878886194986863618789647438229088631110052930898097222742317896811577540699506862251394355028027434326118136745792661423861863034497069822619673842579942470094647420608558350210103687207701480374574513908666324791135302660543313315454832692813889772064495284989373311793234728711752245855961906163149653135512826310776203801403480941850171794112744643807657469881280568115450256480919586222582104842994459889480671899810133685517238878027732912606116777831122303110507259396825633488018699867092747902068231938852915696522987081482585255086261344821547171580026910904556750337090982003853000580221527049799465096816884548859097473868394140485113710967220185205963707610825918064759186561629456984542695430588005141552942538154499733095470372477750013840248973189773345929249788936755459199393125121224613648352401781188673517432276660963879917234745663923300933364086793479044903200449134256035860795964675253762604827381357382490574523775564403194955629396390086589157500907237882105820150785181715553533656530970475830759944936212983622352886777287282670713830315070494135090535934140830192440902786931770009239434539070913217018764636491812255832153724530535734296361708713429283026012008603543577703395625239655901256543634960197075699385318783122089381038902153807309084547019032342066357883693049824484967520189490871474385011938929154476893060576628675229645455505694201887121020297594615238820819257669449146138563599750300560612995565504659697310388001608040615006482778333566265765860563225054543121504976954860747303490662488422310428788337415776264313920171502583697914692252376027805511724958466883390985502097370078804155902797562656282969662003016458577544691084256395440721882190416017819258930663172073667913555598764887780544859043587172175327449806113770849425323883699396088616110317093582834179234004346819069999229201815329033949966441881033586117650169777635931045706190213923900847225352340480677684436443819600885499347387080578799736760407065389728518316254703500428104167105260107809102275734846010203684724672106301373089271500066879426365412166708541113439190769824616879040314892454819446021434091023005441449159712495077474218755684995500582766373774160327890687337784281528545867218894312062701175747290478163466777579674038848415605210967321999674329672961609624591424755581284986627526060891896210787340922578217611789885482647838372776423117394415902426032039723299049836969903333649489219536247889302324276512010641572513960699401951529273430367660374641587036919477632441875680188181588092772367678282554205038105665224979146449803479539338748229567627155969737371239575841752049862084951587315006119894333406052465605578981391712661876839420099141555905181383104472419018076381090056559579273202756542942101295472771380562580948479821514831529660969469839599662956833018853423063755524059615782622283738761038075042164318170501507673683854715798901739228932079685968516281884906957657912165343684323053308283442429768397740723142420060563235931918167362785664161334162802065676855317838286634914639399392464638543183318347045697616947726731588343432747839594826941457964829398669322065767899549435871153335462696403193238132479252799549078265226426727640551386035440934229398364408132338373162463583139822908676950425244086190603337486623940128070349558693160748774027082342016241609781992433531878264527278962318720317434932969708651833967764406452761732618696697839995887763127805562077456161021361556553996964439664855933342144703578505851218553640926601308394351578320864902860939968498982065767382658089928904839547324059110767630372290000191999290689889724433316780342916280197408490516365659209469106339390635335488806164065323209371003105613034150571265711481628891845161016053876647720927714727383163536259441085022350286833772522833966701619236525767073907464180829451944273359320022453413134043274752530846878206118360383889044079539880942539677731409495305752729599951022332516751977563959758413136700544916050454447224030811543825448831572121775336020713284869696651540933695562663099181236245051075531259123074144577872493750791746937708881651076020173142776116915634662025803351077799994563573968630766294519583583045330007247221605721116074377401025663237767836101525676422554838556757648094908341763365576497199211242819630482417695291537982572287461770237915159720521444288494845512404398023269878643078635961250678364353773759617629248619814878858637434627827424953953520108119809128422547120981387927490903766669547788320519430007872117868038196848121382756734918014987680228877530708260005462915552352518817861991989672492784921467946410447824893650690462199748044452652793180137915786351453834958697995570836309284820621320415513973009049004019430362297529725007039669868576341870415231327072844076501536546393747587616277484729843091331163925252224025831725813481324055249994150643206286720900199228286856595416419868318182188024224011454301145356166234096266427998034619952013166765653281837902080229604859140746442888192225728230434352471952823697559263884364266255402606176988440192273544596068183736802498005767508133114870940629074648545341136365728895426497834034828403960749757619081389973652218834598810319233654426542505428269133397126259323143404999105152058652221467135858919358715960862804032659937986609281570225004137943067836626221421541062284349351662977353065390624861600324352736698149543955038622448943266601845387160354398802474251207715238607201169634165772551314792554182835532356759387560777433728211580246432851033276990724081559858124652292483560473448251472459137376816981780318710679824091206038767519547639801573278191826632449739377196094243961613287516313019052664540191073235576677784162733764195624651736952150806094880068045698550975194837220862251906191610683705444944182371242738397274470121352008789853550316876378671901725854460330816399401861800740731527362196132073002808325550886561362343161942058918408290562278320962352625266789081995470560282578804216850943752421076672668908943633993678194183248618406731901203870241587127151079421454424465213693087156023025869924824201398778234966495811862475807854498280037222979126285188215458265719954276434654437080493720349690720431554351119941667520516849737209597016729880545894047968088340082287423758417590973197248091560647093078291481894006722503253710475756446588982319599996771402950820223812141461615329343795184566509325050117911215328156220538597806593715463715172341224289335581436745715970498690474194496636435699358832098136110596186843972025045978447235556982293660106149347767712707015122504278004911340424647438868754854249049745387669368674627305206254728257425606885429393257436565498128189366068115515292496055752418283367605603033319710895932070560427874743430876421349718129794815420593698709905688229835732974942349532762625457022374833009015517850951289047289822740857586087484948917772592100591320816891775492936176965241748436619675367617118251314989553100558294706385486148679206348191255397775813349264134157176188081878267364012873301725400913001604456314554551329406765534193072444484771292681496757537114724682761195737934246262216108781619114721261857018282614128812142725907431509438365934539391195492969540906952460034379149389736572591774860600240523996367508655740936128816905336560881040223694866162162351713594986314499700786418429949318795253568728751441668654025454956380006058025706024383005002117556242447117120415466349525470289785831047515024787752250347195087826619403894408885707289655338865734526663900219258402562738409709533997216221766369468324009772218630405626119508688087544235645300500693774817365855292443515909510291887624884008391449608386092814900742732641081775730199135324825699556061756445718579797930982467392392873576153001842080121405306084080255748327468461201179506562077758703516649269972043988148943817424268358924366444575867582774591704356198596109618773980375049787484973780886677287549383530258746895509506675348122665241982912281327914666610733560130451845488854384462408314379555623387169411070828107296127883399524791934938069467927810015064014304174295814668864165413261371198449296276149468484466161460484852308750068759900044535869739318723752828942640620561136701927997050985365664359899271017246915908072682578759323537388047223514831230346023871236696160650662176531737912812530085060336047886034506579864829524033388129694890308649068593128444580430369996673427588511730452272428301561317028747507078894544632894091376242097324090070333166672140802057243372854896571008362422259117875059063545393382798241475191751459860182723584579755287627107875063653592211401938358435762033878870900464208976192779158048054427725511256167270171670554682680916681802388776040129876175445420126190134296736283670464982671722858904550459553270825687793262880637643193046233854028382120663501932356807527948896345443616184372222158642688746707579213599346511937706715477897120051604126767073178762550997686667301145547451830955896310240414626889910353492399934974849177049683568784606949324331156541951318398872144710167636517978092892006648950265509019778857745748217726662249410001725893815303322630492829412130413470366605022276268590766371312893752883263461914751944017440508753667059531829606844475739973701517520880759821288135881275973803980845375257307897399307872696215676966854095120183889157017573675232799467519773758434231377086682243181849915729359480399019661365717625103731786383894742152469823437712359688688950910565885738565261142169126331764839318989176666138822080395640236929041259986826907450895370883474611766445931034934912534742999644180404366742940993531879597928444421194048185154198433876117477764294482630202241114957033715784365856647293815264407783042997091625843967497375246158131560203080608001357080167668649766345563777571764104405362247946600413181441124026431507220363099386022723863615320122695047358719282599463947722031872308401325789651402004274196348357550030154359587667953035542916258589543307029379261638925552580742135265598802433572938231416298418133718933516125415378284383506075506408696611011115389897681967618750210291855592971456995785814788303079425124846233422015157811409301714200107970159221643577224305787122966229134135333191535696078604852476316552724485661137086012820377937975339723099485211250783639829365876362592275399816747594880860257736064888438530821636613722082509423069016640689211818646140366173357679314989445398883204370456737046047074307982458737121902042180835543593946203007175606061524746240070388384098796849727662059848005230043504915789402529779269787529534302760555414049919955167489980893992015154201022392111843781556061514578584906291209089814246490901940182959553703344335719735842631885168061230416767874744099636437939052759250504447586416044461751323690639229131541620665423248177077196365306153935957633166534325510595077055946444200184260943020390364621927144397476952872486744246600229017398634505860928616542967212715635104374367297457652715070732359315836820773896495809002682619611029600273017105038245859370534582180151677417430249965231360944306797607154613613441585749377792191847125377792247796003854663351788667823861257910906317685540189880279006200737458963918459083166867755728207264771317787827793235615653705542570297704406644098781163143627349725980963957545526925039626055018366508856322730331752023599353404838648966376659416854972626055919189391324598430510474892180005398986673485402074195356496376140249985539397500914402141537202216742647971217659254578233727232434057026371335577577982789803400869967724967105712092644325966902407029842534741301984353737566510925037938987062268938136012140138954885619155107428143894053906442707550948881920531746780628509024419095532149035787400922476545467302305081154521093826013466512040472837408941736242440680367528143031604173899781585055188273989297248823171665802014523428070341121920362851915534303834522240055108879844588324070576411483584826116636950547663225941629647916949395538029214401147643537211370974452317571288430530592087797798916266103443297828658690519650302591578462449792391619002926893061129909288868389287035735143151841406615952325194664399417598827823510142568712756783701749746621312543980497422594823972655424880063524010451578481824491086710020673162649714777042372191628615510286939589685170980049309515783747907996475502693965066621158000250750376032555697132963390531150517133226178445618519724834753737710116920760063129345514644067246012760136872028516994762045476051500939215764757488009651088706787493214440945138697108658601115871608357643335434470187346692136269010623809127914980664230669700718286126587747194922837332832624859123241803996237961301364711348334635936757874577186293643265798458167882257505259187326808037217216489857190552658129203175952208104353729985756665695137377068305763458315154875612392835455374743374313682834431489279158249488791705272808428453868605063686076869755623847293437625397107540165665670621906154504932759266801677810600308695468384664275494779208535611081435586460615465906511940821763873308051969104582909267944663541483685447608756829383521987139137936000781835487173562393841971417028169411351432315998939246580357556494743490958851831739108093425686332577306447086775514939669336534695703634924278241431994458502311482140822003109451444163116489630590390870971533010869543975957952458299280542892041439983883792162509422304051026817969077191373305193097668066335237670617198979822414876147816691752414056367115736458863261355994107055052653436948641584533796449140525566183740618301582494485078524002662744877492767374017139940124461157019571788573115473335757974858447289825277874066952151189482237784707824689750110956491661779540990080304166429435441709154959908809606463635080352944424349955291450467837223636896164303845290835033120137749974523645450698253480122585201549538597514803300967073822753134518953463919195248363943286297116083132943068973315991520215070723663960550815965227119714412697371070596077573469555913239277998721487134391303196416872289584535986381001743805758007857893996627300859623251020109342146190430071520813693034092339456296674739554089205390695581064371950981387275799477330171717792212179839598108614771737042806131153108154888316535044474905556878461037523053661737484988739871626318727401490935711477395751709288728704592973012589250844203904321574746370698022879098038244394660873583985503041223069975371838579614834681159472961255520282803996502372699275736885819218855566663807823897677843813167553157607012549836210773034328304592874549297549376502369145635786076184315252819217564387433228782284051879212589614794100937633043287976986206582244323536811776050876485714177235172260020971528930096322240175468410272123161141207184450067373568908429941485889642925444820100585228443555610093586453551022796737327089644683387200452765027547046621135769453079812426294974667094967010974778770101514241999438442701587139539630728440612898517602070656619552100354081028397250135477843766172160559945145367072878680059801836920046352692264975660200574055602581502951988101327827604676676389852106929783145555100660644999154800931887622363740438954471276694896935220780753131045246051858529435980487736568702617458932595015435494097761175075473151865738508860847053927416124313888338625559221057757515511925887369572987845425309991866881977033318860233132264625467080953563557377108392914361638393765623016706264363546969493859702228293658452997057256825803439872491206952334033773644856447158835603724688389466254709247271687068436712278414203932453057992323766362393308506830636748094544747427786811954982934037241861485588364825483756489813034746171479753278830663417040320346696830877544277017207476947812890495845574335129866525846854801952951905893119201336724615171354896421091200199940233062879455186372145592578775071215766884775875087205865916823901796258506216282605662619104355011741710706278992662004811329722393251211221828100666891283928388292374950503751517097131887221995728868409362182438861976850481275275671988488933773115507135711433895299647765041462412347490582989076083675549994632031336849184643311556070982894144226706305597103191510725326489711235156791012310524976695770702243465959413590349509177040890188537841161752277805402514170353033594597128870544334726970877364217575512409341766541456847744180092233594339173853740397544499920201151679473765673739703656010599983439592134766028801219634286185624422797678321041814301374269639793616214381821424497596625175352247829583736199679769260804474574566909495637142474416456910061553742672460150734971364890825797881746219390217036307529077279372902106292622929675306715113978364001172659048548946115673282126603833770566642205829109418614035976397607851156528884571923213295720871896105392369898656176532385881433593554005378627210046400082280546986861543309812389045094732965400564445765261636224095383815696135561267960557883227589119594006119799176476471502093991039743909591430685649643890098449303275690288428571117725782217088911901797652952247768755945181873457664565633296173615571054041546828851686367415768078226760015228595382780713943813653022263447259675225242033499853614733337377908740953319110523904420978155424232404697792091230249603486214680271326200659081821356746348151560396666107352666286796213130116569426841047317808840583093002615448671497955097725078799903579300882464789989641670711395047423456267515617249605178900686582262652131728053549286515636858540586581951789347101091533145210257790725124668397326535605227058542326515254665258663579631135616596049755741064496431886727592110681123649412470823538719728971027660570326314850980207046042068479713453967081668578173055746276210853591004093013491978601010270880344742498223925067958097122660930350367847886483588342131461717430082138660313112726351194288387522874037160500018675318078450420046661466537607275509959138552408112475052233606494910846148761512140441852711478650838552164158226735642268279560546937751234188986785368410494853365435608949460778591222519912300554854368870035065576739851035245083246969201335113389683299289861853846087610383432531381269711381730519415139893837711060700310477129300962912287943257389746490491585900404072720405384530649988648438672190316534327217585929713802134192764767985777062794252491073007371124867734167742693944173431197333817808620143589454514918895839447713436690126298752497504523042254297311632534641524919036873881456728955714221799402779688214194523178941758927954732397658881002331146883779099921085008699881510542219623310785718959461351831823379693859798102008990541731958961056794000251562250830506183841431582890397633808223899509467697785301222418963448794378694015625717385676596572847469000617328605069762181108422759593262838923120160743191115850200112460016974863782415725129734322296747404825216846548511084678062005775786101914220458817174402151046097494480665674245888188289763412589710581113679021022918650293884772210775868858862473639028668820306906850864762326328980222180349082809000661429851814005284118345284135809540574978843954588012486788023014256085894483590260581051058547700482486848692512821350863330987051746481357335603333557426000609717314578638731541904505378514753651029137187370398787095251522409834577775437681698950865713749566581277243338602707902077586421207666132016748927577600633142403192597555378207585067198660631679047842071191970662277310509741048441087441215231075370433751594622566997760358225884930879169119435199491902122679475731596355248525037950617093943398161746701907991422616368817697357695638570172112222340674488577864159021366517200462904670829117218538632728261225988016229375143544937567961152212233191343270824589283036660248604731114740318401034932371255206909818803457657233547385519974032213566041466630928782561558187663786305180410010643709983704385456623846647828654701587759732077782917009541966988833192467719310321927610546008538557945644656727733886457704052994675816223452024776875656395664461637225284653658188747707768391272382640647806562696252412077076717948475709975652131283208938894682900182003189651561175468466716593669096418350688573865633584771303906819337229851113930116440737125965904252133026056003186034618763532553011878395058073604825368802253639404172650906346121343677112434105788951702063250858938131794145592666648909101257698405166606824459278282482088124390492941544086995475291492229458902103874459313042263284692313332548173383785030595837996811421616686308331139678215455736541064260149351768823445909463329266889131339072838029594004184053563498076020831944790984570082837440101979244049085777737122175044897708645550295707120263265984048843023501101081454093279596099715200032730811379221669050324767463698056549543279505127763638728598258058655273213218511657112881129892216014438730684621623744135644922439008261011382755449711925452623342596914830949670176750230076338321480841730578123125156813948037271846081198248960869536108644920717014505224261527403267025356337720812996818808238513098179054485104813762270070878940296324823929530460253330788978213004202743589795912840944624162200347790988537476305396903180503987191669800250739117667735741621562468265888007151430055350441607912536001005070333303448039684670838558941583160773918787355307083303190294773323847570717408947999296651610330483776420939104108508200587989410005600911626678149218773965245453627790341923046510211584451576493027079521147300216555385445028724662326108976082505801009529812634810033146843730663650745485638168240056144075997521166662010778674533623752659109626569212367598741433448182988407335086351526116023213573099750354451649116960047939270096540432257039475278039361719659265293115032721456929155215512080793204003631391089637046258556118813301752117334767538549019129620583522036077803225220061751697972984764860894460323215296156022965190206482746136356716022178332449664044355269532596952450665271366202736270874436885001407975106590639664343093927613034794699901738967600452727826219945832097769841790776975754550202169628008864650834899247532807677334606571655904836511467729603918672253735263705779190351030042509266622046318652977905350791178985677347819184215102073873106551730774897029075125590772388056380534559366969175493376250270096134188562382426015043596246993365197439568873143168348287947689075744282838008912571054459054118198905091781745136942532168279791022370312165130691774795776241254442390798947653649892366187081545913047749747098684784376746813854285512394933995096424420531924070950970269850865511850730233681853143714450133848048874434372082624376154005766947482631449492254869709867550403755738188198563490327298623645721085660273434687244213919759191594486678642981745294105658542221341912569232856786488237172873514508385289061703772443798900440350529649280536381761839083984108907628238385401767185749387927722454289844210971982645872359966651367696889619233624982247161879817386683481769915173690956596394472353677659832582972485809008591690648994929773132814790027089657517554758880211589671015496474165842465449551201626660873217994877742006441457377498056388061819493667623142771581894966057290236553014119694136721174199452616613825176786595535775184959923875968226737738435165745587147661140647041799022146948888300499446171137915113823102216871572985337830140867462540683316150655878388090919980925546999422314722149314565195609526148635638003657496962168243952713492552948408224567636388091296275565073542837015225540576278348528751177602495547423026859145398969537379379188759390531882675248887470247535602833300461665912845342503081958751450821732106741942097850763514837623883255198288401122965906469539649029769466670649231880624401809729456789110917018453859001918755375223564768898287465294120784118409134519890327045452892821952519203898116261395756846805815321969272537211635860344589669863841229213117705772751930837593536360009700754651681320625961494371065732136910479921058310298188619749959110776767929328646295124941288432201205394917862460975748607667025044255451657536271323736846927484525429827133261119067717445857766804129717227550237253636734657101847205594436628433010495638807176193409816719336853734085269111030896471119542955543681460507576333791183846217707032897774893869338911330795052004062396369250602228613399221941433406411443798892722422383054532366756950581301891297104967577884081920411466692666046190499709129721749703370072426244505305899386096163428498957250604190586158723436484370097687848941894355055676137380831564503178533379213874421306050056820729781701383325373013506711422518663388574550030417070933882692233571892516129488492463537557347361880208732508963890781016793196763803387518841833120476975161486544932924826973905530819554121278529869890255241613275903103036847266340355212415341701770956504463692197504814696929086281288827120307378615900905229583424897666323165509855538332190436627943929566996586480873901748603670930049702906487268574904430329902801160631472146096284595386038811456214456331467045602028847564052970699681648674705922297026326688822459409374692627139468494136323989063923989398522668406194242110352327428567187954021073349669028021999001925747474033756833588360611262161371330148167398869858061322949720373784589645896151815835842011167326740692998327563319382927273519749224091558028241216654096597201042719043366352289248315599965695422585584540696639430745128183600709773093566354480774355576491151406682587655439685971359159564268421608157808094427274757713490652503054191409297588394868486550297654389260308426698419508338436409367399638982908248584489974096275852539110402727704102285113977579542263304453265265555976455491762616426447898811355742314424594799960255761623246411079830976458457285690526234652218314022502072519321630365759237939233440051096425751901622218475567613281865382950468229246002345012833491454270080363773724612804117498917039122153779896087250287980967254839064361870813567547421985823756980905744777753520751395414910535211277761343497534803011639025439218642425471726412313139892083597329008942603497958332006775540226042383270161531476083713086092161376757799254289826122791495241828502286830665523432431921186332212747634498227332373187298353782598167995922640175110150624697265140295802996109441150405712884566565888431034710584236150088213040762015863215681741599489557560141810073762928490689247149627598500374798626828103161220199107320032549278447836529622592589354243104790888097895411396377723155336898247476695206491685011415749608149457496473658620124430628561769680451089590401779339551186667562346305502570153746298358349601496877237157499026491318034156357187060754298091742087429827168506518152191521117147886273681288460626923194731836286177092016554861059125917426623694865675472047495299138753105164585070710387476697083170529140842591238228602955840420853157552372460538848581032238858349941881488196620547742603587722525994338184021705566793604761940625473495439373968336960582862013162995649672245475367089648126673544812390980461977537542453192295020710233946421655316427944186196177065486236848995184841976523567181186370248852552922110687094897030992289391098834966313383307588374028010895753001342984911541626122156660310127928441410618319456450589370027739530825005462851815622719622920639137348925690676602242688494593222811163768511911322265928046343380266305613618277504399578528848666797751929140403180872330150707940036867543626166920174807491802053346613015545194234575921326874498232875356598498703223789261112247732380937634097656929314879826897909540049727833517836340581454621170695988546403878585711528719108321871237433853989591590987230502567015717877083965062454675308236527253513478273029937081658630837524460023815993498609781913906951040771941244929525002899108552213038044283518415109717675562047325409974318141781179164556526684106066383578370916897511657802220674254993938660204836159140782321666590514401344213488499776118949126470679909633298064651812003260057805168812334612184166474622573467315579328580421206550858928902042772233221711986453351619168137368753495912731563069489942112371644523533495015153927327871043285442853334908912520401615549869532487693583529159205060545211047496522317103830181375751726570068596956513314863006623939737175413705910701145219924722331368668429240436873172189281477878731823203810519808531861317051560371501459478049679943723759438007110306358767157106896438869576666085390968258838839160484220665404495946354685616930189365671943062971051859375359443982150473268838977245397855508425758042997489789694936686219727983593636274269331552461257281327588063551213074658704023942831232939003733110767384632850551234863269926128111187174738250855674957208028065866214211089042367091718513584846127432651789955665139576812058285607297967855548129833132435235779081239882968681027093056553641144890949790854145991619238566711536541704903552167586733561065241980785120773004025419159418544291910534329235203477739639329814514517877597089971071335236700435306009505403655702795056651745951837975223913397037062469963784450903169750251494936885725921131914791696517624773660981059727602409296830803416298853335727280611818159742411201814541313743717039590379430077290365608052559854068618834779563679357605478393938828377663419756163683740327208109461123408688331469593769296891146481583765729398929105688893179584565927011734024672441287480111056479910784885580307405230582449936473597992835417553184454557587477705269008785406105468319859256414229381492651198465204377231857053085786873235839164216071394472469459385680986676435899688397245132127639913832978000964902891687840435137179490184584460437394721609107092831762424749591567483988006042544280318883590227777677005181735762734000344961907004970371104305502911994761341689513433952394217534617803685751732980132064907052202179630135517350640566627685159787844757846742243864091570580040302698965349436776140792547682108255258581499328400931983416778380146607108754799382455091449858859196861738695950380751428502323132573561700566681995592337979341247169974381853021377434107749475271960547188041402269007220370126271230853628527439557759598113168642640332893934995908939627998821741238883788918231765203330840025701901972148022951557368265798436898815030412913598145301922372976404930930007385417158062665900914792613634494877240206350199542170781390580990358749766825092401792385839957686875686858209983696863153239638521620940317029607751925318379176749371783420914933114366863491728369535858708882120712085065174718153925331151342872523409308903091841422395428095104926883379390107618005191872444193702774180530176927766568214487165749955125739544782910764078057305045109766117740323003427946921655563701497596071974746740332637879977893842527023286939082244814182188749854337572824514904660763456028104195455661251324304187624607414510551524661389269488198126708500162171207637902857971546188290989659054294230996857544727492943246033522682685561672934010937382819184302319119544638901495248153381609100869721178868019772937168512271427827310369417646413917289385808219448502048517063926315093804786591024380797361200315199844702575287629622887435228964383024220164333606067050259541851760837386298313727311723516426202415698591937439449414553672666645218647961523947586440765313956890506503184964597027432853269350303839962270072005119455816969347258788307814744734873086348115774526731979643399825664738225183394662263298381178213179558758398622155068004692936909417266675538407422709356181387325402193836756393796995784106630385135557933365283589763230739378756531453372760944903348982239271853708346609841259282056405043826045090909124038174791699195934654110059887315410754933905466720815962916127976226082109290768608883014389843981722083711790994835335991079667375465969520244696201289731149027368733306370776987364902535101933337027860764865274461484714229228772160936134636053701529310776489240202675810428287856154190246119568008882448618383499381937992341822088111083225729597003750355750600691713822273162902051506262907140786218810319569428161710284336608933321835607494233184287123939276101915212607159090909755974345035228294718328421704622247699617516401513644161919262210470730851179600369981730945589426253804012030478711147626251132830841878180180870888027151943736703948299189161671960879232496218482719654759412375247297053430014568338306142464675361222183219181353494837038545961734395374837410125528697184822083194638260920956456441485523009788832555793731535040949139841290132567830344838253476058549776459422691317621094654294636614101674188815036275018350200482038815668347677372211404699429180872484797736848026329280030046948590375906826533004048104112814592941959045480291133793865576259603280791443887094091209076889157388285539831679021438590195645578426589651933021651147782504775214138450215232942129681498251387737474306614657868125156225280130529672945415045087234674643188207379900328600081513437892595660647981121651094732084265346044599006752360247417815564696048330358620620939589583450786905314661887626467980851607302944517036641675330719582373726863050559220526998761731295480065450659201070324267534980981141332038937936486311045456905805300069194037250061559052735861261819059785541717939465745997271080407394470559749210816297416074809538502630455328939854086516326914319310639617106353741440054621085975802926036027501163158931764398071874397611750844763100310957896208791785529732668442931878685589752426914479319926440129976111754957546091326713392059009432019459602450603487390463467732839370724498938795995392622353048498927880343001287762620656175329926341266997028249067399446599553048908783246135693915921289912381926479560594286124505376713250191194378920274131109165933378903255057277845987264665369080173284578117380925696924706010878185344420982957118207992948461984833416117491685080484817923814016886193575295812618901767005831452790354135962864888664279755920092474695338481421865356318894847537580945182008928517751645354677276200077882523499643919434414312391476140667343692138945699150433393402514779864944813028940683129189614902623903216042002298708211489950752714863564649780478577872629114029204029690920063247857281688712631180158183767080845120450200835196688968286456513844459534941133281803702205156351898047640045581545098970395093582590784895090602790821804689050673626889129143571090909373801883285179565533149637612229449626035714106069579671503353907423265179605807064850954703575439048886972418166941406437354840043634578188220063994129660126551417014836610916316237029255682163482449890574193307932751156911013284576858922494136937671144946734472853778719753639866765336919752607305672277972225182533915829068936905719894218416932186902232447043696224757117324836419990641582736665118308395930880465703503691457162121975271439368334660812211142652720001704210976797372770843498935057161093543877284999611992334907818185237341972127709188485536310995949956026451833279628090259163968099307544352485464585307447999697540028361854903916225179488114957372584696707183795423249167197653754073829437397325794960274728912145706727652490198727677749265726352520088175622621851513018241969801270363521079200265809723100234662886172481775337875157431021552416895271213868708388769723447632486334699144984701437713108941939058440458135771550664789520418541782878439460784448969003506505741468626632563007363102993463450613280074630205093012339942337024412523293964936230647309622640187288554248387099372083146599395181795186689146766137361273313367642459300292195590279678240225859063833155686732645707033166590457697953450676597775859339413818922484757373761161346861118479566425376668057157987732992331421818141024665203267257436808802551206239166358619062648760917662777791808958299666362239386687575408418962247680326180876759340006465014399868927499170930122417893921177914357537254639200514086430803376876478762366699435223893367400608291895766897270883227319548056333865343386505075461328355382635212729405093522160970691253912290172038967849259782890287674895746798540530237539152376778346457399431652618934642562487289805357155660590680998147552857796530994354913697788053271833493643442831639914307217491721313726182814867004986071112583521564856034235333198912072303460136550048488263640029466542889970647497925853430529268199265790968627341088325890028775020489302090496433374680345825192134251835107376607110689327542613027772685445340723963547585282706913597348542353709044981697092023546879446704641278544942376650383106584945729654355159230883793735233457946848626149349771515612437986165299099536419577730349957916375276841483079445662665577115583786056230925452565723181803124483667799865890153010548026998100127728704636014315233801323158896255332086299949094253071736221789152457639526929169789575685430056403299617633901594013188140371118492795529302343284120259743722352187942177609270203871566180639258303867473302290427969957315227918359495973147807903025306595119215189924213470512001892501969389198347583639042875884799167280636965319566374542389048331244490296960207523128637344341563203359559225240065202113264512096282947932330377413027038035241687025074487707221201327700714950433886845063327357993251468162310973939861425892081970151461912304280782916289771490479569589226216283694991047476816911223410584745382382786122871568989443798040621431606681244597225779714517836418536428165199260616540939145012129141365489195252625301683543053862252674345312706170706414488763646446759281453531916502949966063322041518045924557231277041013830408509186458745825475028506237192760211412034589636635498929508461106473806154347100192084061682203052512106936516539457115052412566673894661819115265277096189555928580701668150513968349803865146215390288270192773235637994022437910760493832557433213011150460165676453389532419325636153361122266071642525308948152853208574530818933750468250421102156372520313860519888075125654314291167025018797346657943675467604173152069887496730998604007759333651392723129894080295164616289418487206794466640922166684733873958723350543358149847295126221987623448401707693357839190609299290871867032834642827694984651441059410235062010024566739859656324632196873780042059961142509629964154063433294820898884859680771708833941725716908131213411704522532708129879186818678966491526883209144706343393489899691330715823762703180328550963726852022467713403089414807376856809824155197904718204895618094422600966457462422565739320974286792010573414279276340778120395914076743976455100047202340466860823358784988405055033149919558862138138493158281933689050590887880381541544713093651319032092277556418210288031475345750219974996196984552573220082318043764067739683881825590584644299802267656959774109585726866000349773325424197744630063937546589315701073468219935537483007612323731474786546437946627930617173805279242547913286278633940462158734258989626036721099525656105811261228684725972115750114000184793037411063112124866621885938186918796632054161162312678880402287044578866815495179428667660839851354818154526360750589972223136780054893288731763326791588855244980568131243166918135830063053364130322475668270461961535401075755410544084579997808174483803124678421876994995341946326567952224518866168786363561761575391420572912342218016767755234418921361598352910334360922588166300529578711847709361138371945650439416757244530571364827376127786926660261798971816720030703301403261431890340499316657839769470592776506161565249920853096379186977513417962672374112108190995148063439660370779242040360882557616673456903323062960387695718052639845359769741015772594002980856135545107721245579211778959779604859570562901376496437859456162721602750002499769334839931945491867478093641550856530763978832520297797708708481690842781588730797583674883249081593144392278415203636997558817422558479403957024386639615032277131525033364910137962676059799256068829894425053621087057941030404276278296395785233409784143725577966288938295709278921305263187414367408448079236025687283516283591651677547506991132963114385414546891462350638203916499901028482196516979911340087545344835342451249736211031923275552996966621657545207999452221487035191468639239208738661590454797671571729811232802624788220944436898237043695758988192244535523995042667351487406261280628407334871106444210744188294156261891503173097410620284509820625234293349098184445865738379652943435822816380049511347398859526498643777511080591765202315329897093204460900413791056194353324891281630353305759860237470131093295790323550760691364255148791692213671143582891417381388031550514557948844874174750883631307932365214875137933623381339643191211667224152005878953178384446128781201314908033638188781209636711951571164221895337924747152354110865813053517633105432136442028279314959268555846720270163615606808190907708441367787710863339499713291598184154486598631958633386866625791619955191913888877416949709359766972329575594597856847188495621905383661237047076444044727368249728800212637710026939848543508900232477442996846509994204000554028435431643159370248580013962656256956614846085809357345978008522493616693868276396540631782036088035797611075728837460673429795428046662004547610890273981488735042481361861092592813343517299389243349828795281663802048083800775598561955624640808231558179021912351953586601347088470781229280275303639715254881406267111205489320060782572880789330947793280450846241342357399292588819309836963714578870758935139404147064220462204571217379312366803823423039009559813110252067975824979595078388400251706874984769491020414132984412484973421574173367964618615642645000449650089781645679012795835185077306807515161135393541336932155358670604701161426131372583454888805688593370240765849616715720123007399233627965615527153963453667654609883707889147937756976243317569137000275971625140519981181758623137015458577870850035015847347321057994991896976725836051044685440068179685212337006852383244559668298389300155050356687614193119030267898209140921883240053383079099668469074548253160718606552536448351473918654051819888208052818509671997993110900947849802729231259117420577328455769169880202117029651337233971844632799324289397694462891398312355935748248967246038672595182161688780515488689558764356277983410307258745402406306650562677160317861376936825730967175511557184511977127575863762357948549211234555169844263885451473824411771141070740702796485407599616166452775697332166390311597399831588364233989042373154384461430594865958587823262838290986144748982088727684871888336003130243591428810321128550214366363314455285825157861968210354466333295976656921598272013889284931731444055337137932664387845957746635610116793431140392039268373357499474829922662068784969435554742854190725012077361054866240114200432772197983693801190468559796760108880696263859887881039411247897047507226733982575412378049281841082188776343603103582409335358756777210485404114086953465365873955760641908112360107260990532400550053730296798417487357212557712969441181854939579161969198420518332872502092130569879901007053923387808804305136947853460732251901168240194098059136510337083289918510793150829509494358044296081648424311843358571461255186605220516940399769367516820711766420727736248839472216278719338436872945609565489955081629364625559715101389573338472101841050841487611106121645129757388960361812774321896132519206727397441742482845667557432856217168548380527097743015866302655580237053320972343825232592362204528409617026355721542949410741277069477784605222472712787912459287354699134767034423797398047782470536680552209103502480084668412957183985591241898135430457502272123375433695090296902928968555691188903449811984117215763149335353345828320695935903223053289471977954492404694907181130951056295822495454883028870168512392301281951929498818747263378330028361684054827285593544392412724220075437172252555673343989274912740075555264979163306767191887038964042491669809149493559148048330971888686318127407879131837990027252193668511720598619738265005240882831983020416673386167757883157893699771122821716196133302718425787003465637252225818782952258602482443391636163455594830113797354842587090068652640807534058325485333559295727620528474039609156590962097629602708128885846464864395581983794728752422020660227893996234797341598680964122128337978399852486923189952564203318094994435358818597492667992957081552886045135461671757118531110237268374693827963574060337230342418627841104034466931020059287065576734720405376902511902113600410845216717371212333425461468561779345940247935586584142610937116067812841115309735673248488351396749992252564014077755980929662410919321741466327182798630935648931454541316732271901793298000244542171585697535237465590412934286385928107993528064318815757520994997780407840288348393207033377048288520938536261128375655267774710894184179101920309175510726323146353511323878012644824498881753544308650687011282424655030075471836686783945654602039459324325113474608945779400630652549402377465064545319433674247029090803943082389766131594664365041785706396251303749581201274288216601717248778451078918109280488830471791662080140294312676468818479180428501243082567496703530926892770499624019769643786234527098703412435040852410199844666325854775253353534759201728483137694860717144766804703010311297340557580140523528149021517776132261159394292194043792950040531807556530520558077208682484560873437538575213682328683912421510760710376280954190582127909766526502534620079685276493694169602276102293747457086429216995198187780961549015708601402600436319707110368097397768670792099862143842380150142744718240066597404281076401688811235394458559973430777999588296170237505289248573288932635269352548147073309579997810075314924800079907637349583509768065082613131686518191011006851022011152297096252981192401606039812686461827222885281281938814463405839278741810672602166647736347850210658247035688658640732912276560476867703913948817224187450755647559292376975955647232019288443544077325203666026587270097509862272823169053665831383580585372757434925883480641684136670689983305264686688344972465445762840765519696280192540088933503620896002730278505041092165740775348940272396698592984651811493166503742988798811561697228337397936464914012632413710357831117681924335350296481723529757698307518461385042960584848543744801947963339732259996990474732523575487536860206088908498797809676377329526945727008835337550905414621513067448226656964825624425640555509210262020090670879484002215285384759915046654493505928162823687016546585209765260406985375556410881877789064847352150765942898817469511737557122711536356900296765899591649529933104147069527540587982175214146043456577504632151590891661134750751905796934987337423580249289843716818493844747009649536889822116760411128986780657209745317350137938047033567495632393963355494820189147314213997128600153372533684679335518750452715287310997422766317687642155788332906147227383455093253299615212510815030061905707542417710911558675166092574455204103578043109563328601481538980125420444940002069021995869637306208993180868313372895647198029495022506210660885936217985593279642857229638920926970249187134150726133646918322566436542194315275973138200000735571439583317129792597392412884458841490755013796571724496440646700382279608580301273606686440802645461213071244447167732838459684372265720053392816781575933195643074812541648549269405824924234133550068501139427762534762810720489384360221421462647063835822606993127610633294050302013128015192590659686744366200484024727688302594079721179940784123323561243748118425684822834810029700035541661347257569813963807796667939292836625990037201670309988769525101812979690892286223565642339911644106441226204879024325884760225309715507940545156019629190323443390921221911930754162428906310623988461078811787667043214383645362184095382187105047906279210847859806568639341291299582100297600459484821351280880302974243884234142743759791497619453115319351769092026901540269050032614151941461746705039719648701035593153331987863095220534415840325598455341943551574494250344203826398224954071608112804859284888800708506302288991927596574860316399286398999358187248040218790789599254110899682685758564902692771478881457234388925526602780795973272968774821576240279531729527322697906664447347049016409848604256858684397148255688284008736448859815014192815976570394720634970291043352847598652439611752093022740783625682950318734291411605956692476350065207328377074958955636392617906775362254616416259884474338626906784804616549354587221259335297757619110386329927120614640143168879058002085831455978347284098251271299416943694761585342601431622609083444308204814020843025119257709723510839633942513004638955346768851138999789549655869136437412886224967438824572989069850375707963991794291250544799785381779873163562986733822210460199489217731353589089816929595727666515736700126480167310820259585955898740293677096186941507350877812189409584472507555397478707864311669329919716665293917494306927054837070550873949211383929580120607593921895456989097272699147636371878265199528845560674656819578863918577758370052696982274413329687214044174495578009952833164595998386810623102417014680459791290116688641373952940553096215209208949853198015208430600338661929947228688548140382078355996898178891553017832470344237051801383951845287102118090533316324774306854705822302729190046697487673437896510117870536117618252163659437900432792168102695258178135992456555948788477150947648854367481719318070106186511410445239400216632649936984368465451589553020256528085203513039809598271830984940873778457125892839391422014503063213207758125899184772700005395447734757224780901783480008204308780233129974119743697965396932305169243094714672289888589365792577980223793116338109151345854710441368876116030046765004761520666235134287961235585836184571720702328240455887937380385405987702109409405725627470042270114298084671967993099241964242743288501215063575635201820793217528211706006845127743522125649572610309469131332240494514095350350811157083418054694627420375601019491019819671654143495362887942213499233174982218500623166427994918350209861859834224435882363279133549324383192102422130388986253608396855715652736927719458520177005642497731265946361170860616093781130923669296526887206306467319811315539127698512909183924239496988935921177671042121340756998997926771239499768826627629269954649084729833967342234327854392483576540143478734465471601193754806882435948792227875471141199534620107387985056892746847991629736457311664241256519439517451147874808270904943346626705056206234496186591374452733792381281992679562264954187842638397454312523728198108510308607001269425467596738822686196196169378348434082361965250509851242085697605156787136984909077079671395196705152629584543702128937799172180732546309110710306079072036244901165655356227452582367760050988041618630298192921238603439092024168640454696570140045356084890652297353014107046872757103720455605388521381800234552792372459328547513571895894712892982675935590709344530775026417377710581399543870768554740204703337181702483483455399365801317629284994445065379244112619141676597470259830166207902592772521732046195392219477513037245595378550400908888112315708110639264749297790341374229317201751850695182744662173059488977722416793741339290380461334403754184578963465628600248245361480893719802628947239712258159016705859443430089493068176141778028044451907544059814996652433785273702599901469989508050480628196770323033170685926922814069714784719210773045349403055199024737502094738861517989023801539348214615636114556530961310412190762583698678601388118491011044543032912981144614038222538446587686600277275571784256321177435892544445421595434870140263274077379207069158932311516098675992593673775613689082085734840777856526068095163716677236746697553515575191635954977484270740215321684654396084923810617442518303210768511721831096080348745326521898364865516202914039337400844317887397623096853555530980300127245700321503729598270284505311684470673436300426676138800612498354785120241760924010257810180000624833148773204022658199170285785913712553007979455744795902423287780804197653100794336949229183499969483044002693457688010771736043345089478511816360311548423024138832718549882841270292506055576428298704926650145982254965806254331241550257843930520559762849589301192419917723245665335719195602562990710492882153010120683406293882659772806883715553731402057496101389854401883407762754389871002090491045609278665325367607504962186146024767620409986921138220347002090533322567489502781280072921823825564641515630147825327378914998934782613081384630914888092530209991212000076537573214706656688679755480149126808199158679160610663350204261130647129930175051838247997268309756022525377311282659584026635220065970276782356598635626774583326352174459627751369311508323692428499000919636204771549279250788500108113593131820298513355650602306975401895357808790504115026682423836331574635435679444889231949309361465516462439926716070256484245754213215974743167263181499095359219436522972534433383542861891141867361779323068812549799264642167131169213762738184061397684360444849596122454606205293209280100047414271418845344305489578176407740176195766919223009019255970095990469919128165926755351299301931549434751657650614148895334481609054193186704130359056409711435524565803929220976021937288717574391355480101496231562872824160578077070062518401648816702942542226593145864100591999390031336682348905036389462740345856567587131033829775144129023540354563509151857432459835406565121419315568349111876505784686259420390719057411591059369754417923113735857258175183896389503511634285080118422545733349373499569829786179525483392551432311238685856156893212941994306899535009119147876668671449478803205670282958480158987299260941872603008956302183301459399801321864841011269123167614633475582460256603197877701963045538011167079195848658088109092236544721890709726565250606191284807903110379950330006319139684174759716450031885684614219783016343826424849253595943754125896342727751851857365540089798324344014194433180376218926059217270503505961882105766595991266708661197196886839129122366736419402228046230880649695667152040889829672255021069339977977295018509115170524241053586468954161882616833324075683973144868965899254036284725700163932863568170614097426931976109945300069888202710503416347425639535830634454947761235236155778677407203721111878371406441945818369339160412435711054114412035165112412012162177429590176740961020340289879227818092326291470542735455805036905826627320671714996532438339814276551137363900031670104390698609672040049541796677230886377826543237326889428865534878441709553308210308638833743715784303186130083238189054975553805531800417581981433820440756074065621569705325930987771189801799460101404687208993424985282726376646817915802712392965323366925370217024346549946165763902701685971589047470369775908492967097549307321647112793356923791324937776727528639004810619988763465374561660308927108234799543317455451738016475039255265121209070545199267631175167652570187314732920097199852299154217303187879297968617416383756697703335833259786719727993114527194537935120129276563755196781490419572321439937206088149758176027076597968592739746822648966395678710282885528124688334654755327543234007239861760876087192149798607464552919621269992036772205295938424879426887259790392577966448579207466259672362501657895376019743953693842623392125106610454863049953792858715268535180483179582436910792589257131705635647756593674196581471874772083742175828653023658962915509532516031815210087809991199942219981867803134637528444350864211276770774949903150753347496359696260629275607262142045726381442795099612636774014582292962441273393231395262954860924631640247674564503225867156003252765772502193388654523211213484596203073285053510840127753773439822124562095725632637008056877468751730363813756170216765199776498631991505453870255626847721518575919147307953729100821149403963722968798069328895135973233777388709413440376628558199576460108869977964873264734125374744647124565385330862621957294667007645567878216929327104319796247532749996208535516425265886548107124172736820568527291205780241723250616726619574372574748162407318799558744104795919546785669198549296114105147535452851176116003928475249018117029831494326744702684031034592757023794183610766784186533236050748081250077634220150990063099909764722642226758260684010487682764938245881162334222552789911954134800012591424481561089740368927830155238333396896972686065878025826073338951011463292189431107053512842031179690306769590163483089124494651105664242955099217308033153089669658964598215728957616928623593149134148019169851748719001691726191141210536437709285651658672902592924950068892612113923092022520122721167378261003160346604304195961549164421859913690831904896518450634304635747142023792565368869341087368860633510125268846456114850969318098531794192965764261392340952314483340745138992870301876070046018214160640739308364258312432210986297115093758310539654158058266114265697367558848529556679255902404052202893935366204467592628602063767381045211679079630163829125970585566987599362502920888348581670822302962211980399558892613690106582826800267176397945414565375863484334979622292416436732857457405590284741714990073404642865929110206654366011393242738167230008893424875434273068163670872569914634831254899273142965913526619103474326848970206391896546443051605532912962182845624181574485311798087124050976631220655757195661353952690998309387892735684593330767066037974678498973989545957595518615808973126785140333873990610528205386205802450238894603442925960443991506513915851246861227346345400998245406846539807194473597685267170002743375404853941356535173201897017492726097961764630130060908794260581900180604444912488406456574664203571857899954677580865467951092176480809637818309652430850520915188946297925662299837789329184589568417381819523732451280752376651940895297074739877253367730005931703938982736687946743037313338095984429244795342326283900953534869262719489284952907562901959488612991257434073246609292397769322314074448382939816935113827464911313107777120676081090582004022942392919189715358752233168767989709082484687376403992750862918865791749554164558892367198689120710158620287492146282516302973618551039830123282146271779545449754532317503787292352081815255892871870866124486541322671825835299869819823545850137167712016292015761288457622116737153776916541519586791164376413690195161884567279205421249850392640934573169781474918624921678339879586412524541552001862382952891399210959858693747612781577625413109874246952164646540675649207354316739691119324447352618983380506354431495846704242914098439650632797528450897747466465010600464865638841123669069094482153804368504829432273096557347135982199275452199346153298949542097281190905854738903704071322650436299737777160924976222118506709017115821077549621952457486045502224058750815887664212284162670168240066693402136602753646517123396163776496769094730424228202406966034842207168059285785395699675862053556511486941127571914848252225214348963032260909137403231942080864596322893154007773839558426284247872154888644477119240754621240280797107162579391169032238177930333665745073866052268120564060748374986892563799487306593852988635227721068969850977453244287545267639877831176433927700479498413203534213114425247822160977627461073519917685174337077794242833080610302778432062888319589479873486501722075893492705027377494579116113485995222316677373796718380891612394015081320807201900694234740113978556781338737034259420881941494343151366980806284482937078594133543284121918923799937357193067554629034476239904476829073529608397828041197903727270532985587186372682248656766106725422941801694244865242366632668454995101856617708721611308294841881744384770202138089192458533764227212357306924660900121017991640064826800261580402389207783146204922376277565414121159531320725394467463555052756457242500035787793864551750618182331013461395524116621175732378179582951623944696772757203407440759910384123912762681844519810169969018894931060078465618247330554318871666660256879118282759029759507516597278996520699484728874577102737063991768187449562508076599809140058120871981115044046876892220573039153654020282639852914338936703885507876650641764342631856272374019607115800821804133007296014696439055746487342737097507484851904384847403576229768315996601130434576718520125864492268341744364185787835253179013084965882602809847114478105823796720482805829480245285215685108696704559102874084232086606353044761694173794835694450008559668085690725138720012001426444375901092653197242028245219340159229745148274930260756088446588321968575627093484143899939248595979242781694950804252814054841182404246107641158509556742160490137548954473899753632542854182265316094166861620254266795359444295060577197921348740587502867166541438100786272746453661415321132222277203047837887228610495646086843714200724299774391746268860197380025541050220681757402883563662835913978145858289333430746945004271618005857603588100299916946537929427717760026421805620056071948598993932371947760804863060475936515682172040500438327269927533927726525761861955508474943378019726506605122100062767700345576621687228223764280354030172794477828655227460566881821640243244099841207473709060949515878908643070223456188946174216396737817695648327141978593571615428052142068113810162621955746122952995816936790143314150143344995825410615601106639184063961735201326140230903869904329228703045112608597195673458425398417211517085751657531397521335488811431379700088979991191965118463014953737796436685861127857324619500324528174682339651380563351476414030327618234960577126114912442148465527947559841715616180300841635090380983685344026326515732168999808622221538262129410106667735523851395351200074808557676526367030012446361948416947128182260853065331766295495634090651161068728503442110131972284733218321147968291377709456892423267529283930995258917783128379530487027334756224886404887396863842121893421964472025956503376058094187722237865455633059438899387013527016541805374049438106304707220116530508971348760001977146817750824691462859706442692896747490251295099162156974299598892617611745499115099170611026208208637755419589337479466766206215741250190098501397817501297121852576998009519528536253699684944597839034603839657529972451492142535729591228753353523080132746528983075682186148974048488261821299884934758266195356564162223585249274580783017053508906866558084899348009098826679659432558894397775236320814188997057178491311055583687998379745006255371833210266156691061559322401329013448866920261983402944688080815190234060710904918647687526264577082146883968064601249062674079342843884530490426456719737024721595609617355482071808208402345796089909355014530470622823787951583939782064683052705192704725410355007325188704666205636665017830207066114384169294583127574375648379447241773790430013643671821325052039514293707987105025249443442183713259198989225364944677921264879917063350236717213077842545391123025735917913674395996211919577110327350334574707475667823161887020464827479361128045978012446592891710646992824846984385462194952521103468422873040539475673040427338662118663492290769078393073794801329195548417031113488333302324323395454463750681733254156987003992136117512841155879103819026476724566479366536885270175869937667105026478423494781154437341331027024131351229224120306644159168374866619110804363172798810261407409585478194092844657512991501222760679248159445832075480336149778763104164012272433787479327584850298907467134972214144573884509182245179165433248385645246250380965648340062805165301373535441785105805701666331050865957440414969643265060934166316087699741809408160176857681604159159074432017935497019514763131409279958973300892314031759522604594483205646918625780366251571608239333337159430176600309634637038369346941380017338576828722413352405799148312513646394065761321066651814247016441268807060081578120276549377320954748633931528407813303982313111955957915820860202779465142807277087300212704000653626143186045079923991134589290501767593516310439190205618552305013659597022859709752277384752084429066703749133512591863896993392805108562239318233512251911313802396193218133208013383270121764930068539416359381907763549351349388930287363622420693856321088937793223034256185954822090929664254173319137807359915202327959744629657710984120041438584556078036263275573547893227773330898052434203236173812736564192813851172751227449854820063902336211859689492721265518280448466164613090749077720778308213372277970738804960595764772093791644756323650782981504686801339682165034710347036550060556814553667482114162790680006422301557751794684202572559276692099344017232349156942615245622652182194334045779198088829735676528613268692414882576554278015260882942017518270066886450329600514618063561936041767840905365334748645413984890460358029058651975611184559547287809902852949639270475271645762419897461003592833597665075693395063601078630126989827335960516280921591781095384972462849131329282078772523395271382207927007348554478005046248428434874576033705441855628019462740693364158644795138035838919044374082598663525613344995817022967843630869501831955060266751534139191493623105817796333895654016730672213837912231034996148286343203229573717874251926926508703381667858718100141176080377642211020028292138054160419810642541262853410980304758005979300669058082912066982667251372743282277225838873868871483119951740624452980947236077437442707880963503233329973792182827050933471277725832606142875373533397241065887526237762892548533947175925715041278477260280417851400499399516875125595767572314199610265668461004913793715742883529507505366359082214899186591237236477184608104744114967403745730237454149808159959086805037482899666229088236246436332924209147358186736501872026231381970977249963390412775418745045080735091224172942225513277160449320075459788464562419420096292650212862502973998003873376273104114600187960203385677869071331456468474670410221416827802148343769419765196058408640861380646155190676605750198218754056061633910187005580667757916691353136332258647505307887407149005875646543744769179019916595729720000852040380465213513292702348160169701182447885607101113328966557067511625105506332503084310932189254583392805449077112696014903175450013141899381725526742753843652957503908646010953225930811837497337549330038608036842320041482508956804854467801947740341620978888514783631965960902088519265886266264757657849813392861360389913670246765944306864925565196833223277249735929803048754040834197864321506380665792470581204986141744593249911372789134678335868817416071375179588793230264191060053105076719020694574355378680105862360786027718527924018464500383475657811621492367396806871676013413249456289158594162469926217038266272926012279381067729307045599921102568990027963370728083360893893771775093663020744906951149340382358193629657212204188934901039909478196245177094511071526979525222231781584531472939503812976912580707341483924737145802586120754223761495341172471243253221976813823283993565223074358563252808314991191260739075976901245797852490167126732372451216428934019509302513610071341512962971270753893337243229712146719061125256153519062016487135683217273565616144360768413951901154671867319137856094641178026979782963667496306005546771374730578935012053832600311180620773815893302353304731624017747652239707485403669856903022914933721680807851011737728842735647758512283900644500608295515134719122411983767758912389717625922749392450022266002170759323884774519850643944067592735845189932073081891885624862419944772743695902629106044119988653714284799214655879389208571004398105254625618439040401367562196195464695479668993129519002638266777030123588664601220984152734127648388963391906326687167936562724918764120970021973104826825203792924894574937502412851595925778043566102836499754237229183414850470931565353251309690963435519412239933174295375897272490589339007143531680109632427351411299124777757487491849023945953317754079178860762217310293245740321190945374912834933236593322270827395987818906941412487359586939876299866916091287575463154291793323264049597744430305362496101228014313881676412397119673042893988383711295630537072126978254884256606565883329730498121057776421443882679040779500998122061668498595143342752579590596847954447454063160008552669351221124905957837331312751193677511169043424253365433877457741224446392534575575144923091269820679268410005969669904718918957372052036654147664089400385096208283104389010143061224808481204078481376792258024398065389202045782420870728744488391037530194833322966349318490891868978581610774771700309536364716807810529706669776389965748045313023627332149384587151839190955380358661957979849072204791981478384689028885100955298743299997252284883521735514089166131560111576164999547243897029232900711927325674705069228643598232403573048326407868685556362450095525865837044951896511471802862666008609153599276950323713953775497705285452352791247796442873700324694887661602522957189531671181694776741536150485714838627885729519064780621118218651707055327064796282890099809642603389463080429095673134377674126742880049898140872469524996715169782551479249267236805245028113870714025078930599672403780481541104568914647972087037491233696184429571405245759922391800918993788128234764474328318691764316119233734558889850739383163385227915349458086024484435182075164677179278969600946898811639671096985784765089463165922991839641170188834853479200814553434365678426155151036648148724896378324375544636139850742689615668293490996075166674501805831162829807684245828445479187806909708542175963184087563747251581145274721627228507672319433433584725350849629214205719162249290709983726939412500720147335571633877621552834326749194998641003163402423476555225556945632281798548620846124355582202686974024914946371612192067708511664000973832746135670784065944714711994714204530737714186221579866164406980636695300226449338017451848126578702437148122862617165956038683066669644452239544377402843448306335321234708808156353107338040055375647574514097614376285166256937980486984806720431315060610924315350008810647752582847209036965278704548911433483149948069627746716173217889731128828389197592841834108279923462720463952683593317789672967347733339427678989022721762344550530772529142669561957200022927869895800943336894848772332873655443279851297776369552195982248075587296806754234671350638058486083395139878138798600066680675292480048579531333083946183737777637937339494519718448338574741535153436920875611343337555711749096560058755825397358238804634241057187606643657622214388859027641329863573773695441011760722711853604687232358060401558000084772252627020340511853235124318523657258788011036104732622951165762849565330725550669454921655128954647536583410067661642768536941606172873245596522022950888095567826118824962915222007481270971211010768698289404762315895474299321421697255000712120303698220257181661433582418786010006207347593778624877885170942502365600705736400383179886652069204603570249623070604528427290407265209968358471702325025497971504504896578549098955761471550684829131205359055881033039219749171445485707234088825880730258785001436126065467620756238633393710546024637681818219724050253743197115091717734403617652417634456751016762030888830469551463930344683093915991550870686946610540070161203457814946082337039804591546699553727696224257614213380274965688611424520086973994689595184052687112906285367386362991159335928135866169076248829047178080720212688998262520583781410202628918201026516698210969201004276038230025865308158545640665462039252262444200217790102904796962327141339394727791504583072057448615622649556542182030270877092817957937563160784278926135128968000830408385315627037898273337035193916922665632067880395290009297728666973642862869456370295468990551419384649304484670103267874554373081327024371824036294470987237855014765601354530417514935219243262813968124498730255317129437681480171077706364479634067103403522840779794729171206175700437275656408486927896929160093366246543826841163949161159205402133272820113345467901649354754446416085514323568330824287975447446129828456776703862793190727676407316068027525816792900759747020147124895254623815778741040138204762026545421838602450057883987900573701674050742397301633714603866131250457292126071133247031296782404884018963963208290424729660910163955399124088344905412459416878217314758400273983865184757570459566545552389842960837419131271315730793183582299487193843162925300866445341862975049595796996923785954089672010570199109865886303458653800294252910708141810821007794210283407166765351670083778037181552239176974240888849227497101704021218145333865693401410760736252780581092028063732595917386344440275473507963722370786809482416384815442967550200202748229463284998639588845379352839329874261638022646508283738377019931705714811590325570635503861894257855448740547644451289217906977753082293727252233723063172440161534584999885339868369382509756808816838893321489308458606497924396287056008136497905837575965154928349985353714053973851992242832826963695634588707687038698598155962425765279005251610599495776099930311928961783697333084810108617043876444024302661225128211967171733338132987602822772212526308805268337620960523550708651992635689138164836369328793736388485966572020409597840220410999280450535899957351643903338070107462750932502525905068024842400087332066745927955305236369313053891199346977850959070704316833902251278818973567602453872698174770019373986736372117091993671134942785022513329910856816851348280804388435515955163306605356416994039366330401832871565553361927653845040267807719273315722420900068696524877803856911962754881466863619130965387643721792971238604110824188224113118683581765152738028044372881413133106423599789341415471951887525782019709738700477709854802428959264857225702009708601579382821179968093369174404654117218998736445362306940423408635081744412776802326877333579358651078184063039569346244339947272853605905929270104962242729120628167467527057251327806596174705136485680722116798718567480438192661567112207395240808299151059894070489727177687755889551723547172009063283244953973071158570748082709762903144835188862667685305138711607221907908270710661643485688822981447864106487919932931838414971093523505382958208942466169414339749896099200223446808094846483529713107457856547025769615317247388140135192710937888660017045509664246607750889839077490018657907297492702990728240402311098961032382049126467008481882176919716325517988562618481359559006816872696225573007649363131343811407910311527356927794450878707851875921179581766238759358766362585917697850767880172843050393709793512672912928272291692997553774241836360121314051855508356029948520675331321819904104367647887699616181119185933718779060730946857173022851305624205887348644342446031255995998030609097217218116157449760832028130880234240117313913162990536389633024021998992941394465512704700840491100128490597793717664560570889894950207119640756526628019991822649951922642947087320339505703704870304859594517509173125270360768943532843519433114025276998771258900538579288739890481041849780045513309772993229167095358751345968308120430920925319966325309298126230937211275483206529274483116090669411464381429557075152191425088772393313685185504225817273119066796729771908750463729541897086282169666890389227136179500317360877574267095964224363984523102801072156196516966851333241024936469869345832006604778459126464181727900585429008267554282663833365440082975951680848573229898274195539187677316959446021758688157202889573570640245092341494662078986571725295170728780171417442037705857354802892494827828146369120659412295797462170087856935310849937407080633840176793216429168475394235313341646383490283693761818754297158865672324692066611558759609747825592605104927231392697068306791878327207324283762207773353047577330467016555993427155749352271033241762606465371059510488522862052651725973213703639794028735470281198246059826281183948522700930244248856487476912958223392056537724006423767299422316929936911994967953182129978143351421089983746622266262011422028240122044322807304139318862779613999219520900584107772393086668671344648783844668404483143100973311152246002432736877797112359352563513171072203413504301144469298943767569533938913519773378312450432041141975193908683574200509858197113922453618855840333206551270151611527341241512982441009394452770370550695526102634532470762873236924749019264601796705377853732454051365914312904628131934302115637821278888327107769107588095406937494531619687161363975739649336936592856975105094637080953625484382728066172933630472304439436499252724725555125756655753334367889590236395801699041026646827421803926081870668091769683506147505014615872931279465523018347456081729024462059617056440665994110100929713974273424448271903868296315210993070899703982033807959298620653280603869756006385150919554088438951028193291555406289529084565148453498172966274154316737198435266191380566088323430977325879539336413113960907905347987922732720958824242950469961859985653414649424302695676635570088041132524601529358517183684024811372902161595550886928528856142965120604579831193518318203939219554480227502287144693918328571269790942495613894674335780790281510533145704114412969669916530881937496730284620178516307134352227686480545271847849240266266742061085902104496071537456874754528204035196403845666275992003235107442164133120029920497525847759725382339405826678217488829603739289604191099838938809929661490313461699246151120376536092901070099580894728004734232338748197651110157149189978619413235409159415502245895175903557244351113371527874046640413031612808738094265323924158220329520859222458218233503412311518535990710979303117097622989223180580931787419723071657967401428966680340635527945056912865445448439770692676524175566066784268925760920101318263905766967201397134377669939567286440979922482866152991724948875734197295062153403495300414692212928971957880932139607414327171942497497280057283962080157830953959267862560335655691594447715961658801065479792825345113861256164977892899149405864922749253032945955048775112479826440923650517922798748963923495244970341094539188977118114133252000039447036505578952508799443825351325986630539085673043461186297937749161990000367835560427382861896323895031037490117744009826095660974702479463734828213707509837434341398522404214231631570546423737135371149545718590639329651447625188417918872902401715091243514974356827328648216706207674556951355552751712855648297179247087273693150261321205392412382995446482276711922675142071936965613840138968181707241375253167171773836646425353867832763289322659591491250542194791181512840179516628243050095711763843317145948380919227173686881502607331965525549570326166515023393054772349516894296635454926023564284071704829618126638288088921107699868294705888566690707486244903586183447163243704007339715895786637719863826325709176594909868733299822368583327486397855435593890438735486328691014093683273951403120909220728935046904096186111609733052920142977885444935218080955619512244086946659700602155767352066280751471406640334629549123543582952887254209633007939207037409767277362019170675090311539781378603404285106112275526248356142257557158098585361926961363840537074939035538038024073654042018520883446420704633084576762415975852646646639109690436316150541079689163912945578467824110175725268411067252467054340829756458646356347864964204620886023983314623846866583215341444105681491352087780839446208144837425833525335608273949089921978449495639076424610550095382913835641628519051446068603682551921144026533692160125944981075767831187902311965677391249851679612704825649694606282829294003801548857040739423881420654406987221773652441489013455844205785959746662670848732944582154722725027514113931195768917456570618052022079848456425663007972187638784040324229420413589690672980643612716582915654341973663235510903445692361814687141130610287220026323400755500061887480392700725697223339817402623939876373834965973032944233541682629253366820516310062791102608183636260869845810190537038936034346480211332177734327465229220745699596846871492104352105563777877476975378493198597512851088526567569293920548128118410767558648300205196927466527731137185532713488974589252847018414584624677808555926042924121628341405433432190231542788445068631446208388954999675450367346674466347403002984254451164470859327360154631607680471040605269265213379563111732418423155951389076160010263651070909417810346411024060233804922264033999338860473955460738078474703125051750915485631937155395774855737580229704209748054815185104298930424802304830462115166329736910541302753514366942903194466376810180990523855721606175659054338463134416150640174622811902985456233934767327910852914761075331254280930838724989632983263317419146928943442218104569539950814191181458607059970251741849763367537879891756328880930187146576833339584786002566006976403699835938179301466516365655947547059662738952797700328534042974831851954234934001087099073031429563344677380760707479425359120745279622137837687835329342837724361363348545956734479266783585400354731092808091017337331923499847548179498548947974298277096056438616337105889659047386410500847895189321560072446053535178368049952410254487786542639933165222632104946310372017954426855611407269868722288526405635760769457418011443283217646858288369562121058719105658012742687261989996175632157315753619366785140103192622073772553665085415954868609343616275663854494063666943056014649169286783215242108635312061328842697722914971599521734964805618871147635724674591408354801641263135377412884143707219284688330408936135647935876121061161696456245414433135420927254480126504519238547496038020462890678522818692173863964299897427431546806005733731190967892488457035149965240852073108049537477072634107473844607905445765248352204745855600669736868193348927657672843109118796183445300921022629815907903818556788995188783428213057994068195740506136742669055575082962034666866791319449353361031153106886096750503823306330959777474761215663447579647994678687738146442310244960874467240266842937078822356377746908068093629319182164840427631940220168848751431506484346426413775776919904195515711427980072185049633778531053899142681433070323188918456517011504335076022516123839377090957741368297952539017961913555449656762371140454554749178308374097207806016090752461692378788585404176013462842615688431063966993547247017333771219256595549310208850390579084256198699021730448424662734291374429926266473884345731273815788824258373906237340229148967857548772007001567103328153133928707744372367310838936911706487619427607387114046375533498056650080053999246430542408229599158031318141025636344226512515635229858305986359189745845086774170203762306339731384568433126446309177631346369208679008646682266553429568177803920352461787307667872094819708779759617367539529464088315848803489673794091255080906766031882188595547329414285052928663042317673937190156717053462893570170162321189631682977227266912596103415471636081773399055439174419325082765330843008534590276466488132658252784098255443545919772327885170916822237714723381543417183714015437756843371179222833294799185665104394714218097960424122519248229658430129487672599050845207448039337590003450554830073241743143204091628399978585939048617588374547123413472901702901987811977647554705644751999668227360399948038135614697166838701753916491848421784454077685351148052753923162350552640765811252127388507429642740735175755249575351666576365657684901578750053903255184895153252327870819404546945287159362643876499496737345275998872812057571626218980363487724343840684670632326010160089998841372082988227445423804564672879600383966986967107868457678378228900890655552206738560288380091712065638171749845460303010351151659540923456886526203616328781004515910184083371858307705109663900913550030287837651965955519727582082494813559481388544687129246035820095071475584013776448325130042028667559279689458436881300528916255025777701324269045536546878769727739056726595882257124635519212631410187304348419511894766796462015830119861230667106189587167558900837235636360589589822445729755623507953977769882817553831609093216586727185801276053674374553824966606366172143430200653788125097253544382307336943875830075136269674672859866286228964471273813479782059443100190019481580350308461824712735811473439078186256882406802040462729757752276649375071191929232120107804063564402632858919528971571449511466577384936398227757786383588687248680202736082760887666465918434597319326943843029966604689594581773009319193131051132213504103951560435840465455004518582003843501355862637636750289911967929260165776822129869912772565302513094180165173818668069298207738053579352185475687425289449417729639405686950523460619641381220346532217274236957047931300882204779245458900542232926876347450023095003913641647752658602315573535641858878515303809273208236589921311278374500379137486379767823880921800738802760412435439897838670749939272796943537564014297227157512895847419377625815039243185238308544731354190405033908380499962560908571356457746242316087431284062826564041066540949954856186615470955214222789734332755737270794350013789672492712434606928475803654369791491582428547161911740817782236870900772527971791931197546842275593856841453717489795953864041430829904128639393017637135855141535982055878791058015103645505139150119193770165514425036256780293558538502042891202917048899886703179629744809246049943778977103147231406543981461450192510114680228838045439084268064373121520136657420436276271393359400448957126460936029657066238129265302126060161277049128843843259528273783509119074441215657823926200430159348897656047759259052869951506698177896804330143792657248013217946806607967648616506639980384751301440236998428428621156264766554314497001609951551380446021488562294869122491960478679127483826217017460235181306525703836838396567942000506813919686999714148531786352760818898028685234582161811628466407669498250460056198775930928821994924528757596689787178095353171338725778299968564093988493114513765780780745326351898998354498049377587073554826496122851743727302499456245649413034771271761281584944991708635733524983325441178694536794052562066016132706818130220369554772369933580868824071197920611183756411224305490997890588618059030510190240753658043910186797864453886385753192421681401845037879419671037594123922553478020391937546968374218214643108464175006339684462707520464317377229334132732344766298170462631342212889804242003131024725723963517347351414677016600206643977532710827254732153249339943554243309819154957986543961483505394179591645392166939131010891574333215447938898985153595222665603161335601847881550284503454715127300937185380951450067683635383212854804671652029652434277467223694384576752771671550356372245406088779114511635224685003150146979401120951960516728156367102156999532625823099386030926960843724153326706497978609363468394623207185103455329724021136220644794573065415306848872231995083742521452895786825351668902890365411670195722700731337087022444264816625542283738645868841074694484278356839057187773163540517088813547893407243143099126190491084363763598399965165791434901081969690502065387917131510586436127670105150116745419665525818915288860358143518684682893942880131759850745754209012145717597461557433704481165166903471074999292488039135659714896259462621929771455587393309287568420507243667331298659764018833898777997424632248061264011355378070125966645242781125604516151839331891268778707099531742799302182215203969022683579728971957827892662488706354545907871812215809191048655524375444652719715198624508213817335208887713553033480239215683734744685877894375273344359266538785782726368949809008923907978273028883502742882795884515478604477957316382522945277863019249500980930988708188877201664443752672830442464876537306163591723882739983997315972124389328752513766693264730829329509233173165362135612046420158868714484168374198170472330740909572676167914808297863820209933141693177551009011917978302476081342495846758988424232923714920832760409851147904998682074338576232122683937522378739804458576835150108474318267100209435119751253924459959640678147880500694026034235592743612072906377134117113807930303639770995638482261476986378011643565984499372937799834160945238532607250675481256920203984427508597274485753567700361545552509697409787855932592257599356393088575616374371306580591630093189701379005822571412798769963966050970942300055086800326275376918336063653217117449817298866172845822865640800664471156178999062452527831689107580560180328041571181358103845535336542542122404995913060183725678716328636098729693185447047432555739962341387449368754436822564887995176684845516497117072813332868661345087759181311243220579412171342931652665331289856575272482651803649418734375289814413414957986237392758161760364146849061725494985863645827020340760724627586892987150740071475430687050152074232073872359135324796761220320069636484187992336663005268640315099269288264136916218102550143600957938803135410666076713151976138729407811983537872432988935553961606143451013446681411469653568486150468394140249837917393370637540340315393686350153546590054268632498065205730608444302276172182764549977502081809084314021441982248332203659252771853857236530059222032551202487688597986156132397883047173845697184964786206301136766797577153691717407154065646930972548687541211430231576488412326751694384704622184780801012065793310522881539810612393898389313871234311918313010977316520371082769322190665780160514587639515111132983890967746203042888655951971797128879404489024320416182063928690728498141903023243271860538180767967045812441353316458354589405093363916044809149733639279247885478364964854225210468038808039403243840087974817944267654083377395096686150902281021787781325351873494036767379811225173554774270068434476728247496459364514075639313475786102676837079102552544204969639832052988615240506022029295174452865027842098260785581331766395167015712035681998109372845285114603634436579547263722160438415729320853240479689746391847420147858465046829064365256492559596001947915317706557452070775822410592752493287590878157648759746143062505179073214282508835084624806114863129755824911354734203179218823692800866048779655297925130092531686357971401336602392640095821249244301588376421612361551180044127139631335808542483252154300248331525398525412700137199965018242940357040928283551097001754079908093020734485072392950317641529629602781998750482301531844986670741413319028195332022120115210705028475762363497336290180592297038161866284131298743566331056829256647963544817195710047715442953283595659932070010187957720775640661625099661882521231714285149617437806055288211483026604855123001365316152329492112842775516115735594663220274007738022767038109990413398803958259249026705654948555476729021466035058699724808975100297769340524070284568544652590226144733027479900632552821223187526626574317829882974785975820405066935739060292470630822684797771071274950412918321272324582828070072620852486939287632081997878833430426839324078574596827611553764419218015215320106122652502620494987928085243725740486352783626866757168856766588093752207580965156794411175103525906191531120751215120170706502090009661382209572150296291166739500419089471020289555069430446810624089953945144408543927846578186200645690853084835297641253590097538220609030950825431857058513770432272200451654579823687753407180669821791384057100173352481410457364837041389138777115504080216266580884160085236751223840259398857143332758360408651750299895931706053544015963973098019084963566136508436318703419561100477423778834074769549208816669129270937322415702892051391968012911117699744699476348343345145974322129175399029739821996993635224946808216250108224397242308424152614367667265523493006632783640454319927192782713887825044895877043027342369145318988108850499579806991987079169846375529873750921490624924139572958986923658863567575223772152751725426433147096244100036431593005713472801605324180956695835840885376076562238969501993913350947646810312506666469151983284532231978889044437275268098492954856427304459113512344349867127806938986389245023939129982296403748875505747825441490138751614697094605302388418201956778578804636908763380365845154127704735202807487401777998518825217427358199447348328774473465705048939169371713884961638188888575940621817287854702542799583627244178393926416009150058913514891149095846455520678195810225477845349696220438665686217833975062332511892926239827540770856352667988353381768541190558004305352985664011367237025574375825462261159905210210949850401293653618376564348284479929177926486980779582901381172114800005981142441877979070062060652241924031325484236834932053593036179206133343345398392777508042746614487424912452787229306873506990917208787502128724302802812707472621833144059194931883150352196224386176887362892317462845945177974293660783798801786640916474544710117210200567277442174375409674093190341462209956533260016786049830331298351339880463948524743788241679840863405749479516066886914937062048478841759367717736045758022504446896691293838407740163218108582496039306428226358174723375763945982225610150397872720410208052808839822549298174490338840648123903045579843996460400665485494934985941680184665310652775080607439329638072966501879263024857601984326104655163710057372656778118774466774175684853265198322042494319345426892967029064762372923918956568893614596857843032013893095084812984190523810550037382315348058362610473244434283066774506992009517534444920058683197373820557216221693879938369513587732192324594444617778350952936702592544994793616150137873553030995100598652039807095775437466248418057210859638760135882552940783145435570533321546104446390773189128114945020364930820893359943851211058396109526666363574983661651713724489440904972800650063478806645543936829463171766178837494931895620215631592460469420310898524876049259775390034635280318234106529750318624863383716038680615896686083924300056266172645146886149124845909750865695606317527167284523689048623705318160946510977690361955685436164712580181544455211891840855810420023351368291688941768528870379878938855954729924590434611627453120314034499329803118369266458660275311073864671293228860312711963311093568128627273729437360826129613526115610292808013344734515146646428641484065593053828320912017979159442893677616924230116437604347879487265322710939034721306811079317574359610437334364697867636821247372593132913036045592331730987385020169010176386892224833742397781657172041393442995403815453743021159710166161712279829888989967552173145353935294893004879019904742577087958082832029227853190682951453399599783980478860795671111668519200904576281071928784713376184272215026392414460619644454586953912912616656377520595509612191970753430727543444229788559440925231915446542197551659710124543625714203629324731704670346887601121165608998968197577466219103822603725297501338862551881814546669510232390257725583546136671476600143950697398257995663408586227794781517797177235227835119435296336091633485441124445137143468007254898898920174488313040602299661606947929859243402899500652833550628313304678974112144921034873258875937544295120162654712060100256759889969353162066909446408190839897533642798766037472985537590370495096190404199177696198551200506507616419738339074112271844283932911403003313285775431490491938513621474340882447136403435341874802214568767767469120212481096925045869464969141512063061693876518946896141154275906937992817022974515431352421786585586114003715285344860779825108351883932605060795891488138582373904777218883115381710587070247099110703117484132802214787235814753340095407375148390626058792046331571670584519576330163961713030880396211985611851470747732173861540697695999495513690695636015623884802879320453051506816187823554750956739512097127046158132973931863778650159332084896893962503025459409833310525610467404707795116306587442115438411492862006578985357623784059802262285289494994472839440122037447655415077861317790944656139092907942353153152254088250173037647090234393773473437123359436928549878943342980193927664782593235114280415795497678885788843011900868171725543504346257140894032793201543217032453619238126635513832237365129464596240739843285370023047764455739322192692858962760319065955841749918626066999091470475172502711402111837996017015370485112462851131913506860103808967650714288084500229238299466039733207518659838318038132442548822844990784062091807695535599558185256113650466833221057893789223937804385794038617580332512573473857475271582470923596395750412985943540517968697412837830446608678536386933414301541452808906091824572970523691184335740761579079864875198638221824521686050441033914183092427916779992066101628547789104541220773818692750453484096161501252116032400825174642731963335137426296035029970415947111147492508870686143378941594405366797802314549646180690998527400240908983851559109444565245867759716598786449517935322862137293907163646577994543366272612150742919998746246871003982904445964776645971786503784826655011431296988835752175828291950531969951068893902326042948293487186554468606169359259142698465725799387199822898710494720703785402524156027828672588473474031720282994397046472414321432409985518668539882420268635693643396382885775117695100369781365794300284388563815083982014373432936303228103185553245998025885772267973444788854991964978690518623248661736893358598997099016476701289507808614173394648502178373755886649912070505314457097161402528473220578218182696349483166507191714847757235691056780674246877839498613324844365576471100289767001872527104422883350485905198750754207064972517660362107072844021315855066847738479517682053656768087852757685676161384609903116355327983687992286992547848748463187735093580384003082877182147787839279100492415731133394255287522720104808989607125496982359944201002636353190850307390104279517691949451129922719513023423131631072810984023784457536008408806399378029596202813063108245528650322309913511486780627829773810400548119516997963739409300196190243585652970575062566734393298858208140444780468949874492768249842895115338434253989667937624576824137906205815320181362680124152263972333390816274994659078399785964963682270890137938693278307187689259632910619339729871046099399363442208660185139548780213235456501173991654834055953281290376146999567686472182539016013281454863559533205164592449100260309804768176588321750990392157261482113646790050043622338512633148825820837661446634859418269169794490953668313656982086702841428067336297856062638474494107002310021839617887156227524388346265221105441393128249494801219309772084052355068888531358934878880481247643588459590234533509006602466090790233305019814092944532492098332487578533781148758659620935469659104963953743090166782626018838816796727662068406551433580176598279025223818965140904409052616496301323493444548359922252301306535039135773858854784417494809334564041804828338213151203937982178909673626386883148481946698990159763283331806896753168560759415640454979888905062643683474334142215228654192233300493943835951265174196476949977110834020922905191237627703652838091288107058194668364730340313649160249265171660208829230700198275859334239589002491939089245433118093623310471470866821225304742044106978439204825026971084944810052244505397994015974111702535155626849838676297601416483172290150739191213232952921979774460162449715034478447158615465903662119667146774904853918205038689462532613206458370468278707548478374936518908466920424469311600750222308917590716375141232881748635219198357238961894693645933224789686213377503379470240616328273515553395937216206841587066806824166653144497319606016299776030379316824913290507921785592183431723109819215226018683888944334432785892975473742540131177798336093687420752897373573293145240638833660874216258273514025144724865164899309089556979173321609797847028829029014486158520711428295731407234626103295977704556509694623430030967793978334987346227347709698420971167725263113045026673037129808660003985644112659951666926579314492807514059318474996270262633652478691537449171942842132050587362513965962084616478304205246429154472655992181612050485305094969626743340470346756890244348955167775286885566334003438633982957690826623697124749140248310240795051138028535988472348887052141468062350290973674467488882426819632278795004711867689287546532522353395126729279308349363072195587300233222276474564577809305036601346215058060950641063328970339950008910214384784092755398631740403395097578452688585006178191956680916224305463642498228587001632040421756417612231089135719665008135907911306644574344254091768462214987201768512118784537725489410983253457613898157561867350656074282775187243233651784111275328113464046645085640191060444844865049004224476686730056426940720727843005120100403256233947733824736900897492175782720500010113074255280648004113607978592437020315113928599113801250064668467703571049350440972364211252055705443321613204362159501315413595531278942763992300072219598783741869041357297995572468515049012729703814553897944827254153235550572117334536532633212357443528508226766704307606963543546553219790447334594675491482002138436677669221775209456545970876880752871825477805149202938527373583080362065185363141971797834466182554017331646840232295785173482664537944361089749687257826819020868447227177223994869004674755200405114158384135194639142425967059246077977952311192352580936332494053917608179878795894715839125047422480661192104301424089821046691687637044130567384236365648620159127107185258765510808971059268722766084372108145475255996155395481961766262321956487665491027955734196388800406147757366306048988594043533244123339437846391371203998500105087665568239907439363043179311269657248109559139591787451166076804973498250639828785889447784878356597499489223703218486765849048606216774456395450793486821143155228912781431035935879865798906673316122376296849452218479611546329720502292039199122370572812463313025278156333939612400915164517426437626875645266969325927351073474047382604844883111747336858923816662965101626502276702509458507418479545581209710897956567022275489767341869784017187074576412953173050858609457455654632857069427549115521095820945936607556612652087686687541071387391897428545673100450806213883148897968083052549614015513960383746487404135696150428125082008178494641311490232997422647511432176119238907038009283029420686515372337975952862552022940762470933771603287094127078152402833507788629498302389466800114867126300620767356725185851699237586754700620529988288921794956620262904368937924776220597179630624404835713874283728255243975814295966839789525160819713084929833226695145644884205400026727261707154069861622852193963157664127579171133241626792286426330492005352245102678887885753876142524177678450361743785255122718150356554043943289113061303578237148848344660461962778418500503936991815887089248122735089010865457100648487824471266939417498437953282176818821871043898792297937045419592580537878032090021897824333539098805850359866778025126932155872407817691172897722527535916214075227753951499394297612978978245442013508759093805044979313509188378164506391693278287027045265596276662013505061645559833052996820168575884697186402365391675724138367014028376261346514392367907608648595319092207597537658656481908179235146005828356819316510469716939869512550279133173163314903696320900315361622579548884682888354135930477708254896822433531888275853944614058938489516452406525021028969401602187779820026450601909498382574356032010384438762694726937310455076274820480829224820003051452423242873529228670947846631311566505554126937160407524648604170210784172109380498224772411617034648905759015949726827835072739139741994369798806537954063302050702673853905608540531207787956005281837407768518294080373625291055073408757721226481923619264231165576636551614489903386390246126747979054716582103248813702401148335192929500803524386404891219783864736838839419232200305036504711271808407155058114875179715670834506471052409289992442187367922082133827298337476308744230002287940515044350320746757391595796258855593614257552379661429963713090671070495694672255979969296714512331613621625351340551701921075991284644088619155883986635886042735399362226270422590732121345626219516376389991900000393214264726708467173066786446230189070173819037946228238387740959861688868253786298611802694151743351914560596341365878032398795028281486945105516231056878325682269864612074346337492852160522868069813470265691238533918933170905073891813607380439254930724081949754584064700686654419809883326064065874150790779761347427018807543007241695872378774016246947915340332855566642589321618102329670753497835211539713386952851704575656853660069855852461447702019441077595079596952745525954697843165987166104913887681241569354911742207243045617658941621272259747578405580147724956941722065210490312460842197032557058755665238646625587731387301545694153385036364489007835356483026680311449089201671669878577092546436277897726577055043550052219195815413620406933655117113630912723077252390438856121905850156065637205047739245970887159779444799391696774531035839919050857409790966353202026550649347941824347046394280746452685457700440936063729489806591274891058484736380897413529389042326486291408480911753722807916070099093238225875372610054883248903600083579642729203543633896490475529441349884241516406803592846547890120222732456276782691064123630819123100046560803235214159676534599968207646799429216907728922063539817671757855181698077962075082867324485623254265113004343443316416742377543959026815745606178410493115385256335388175859255682513925437739363629156273555287980359893665699887411195028971116476703404769239389043556562152621735661820704542423279775006111502118242390527015422723133250041231098443872302378206781706275923969587010963492703601195981769406452681778846514213645795728144453381175397853496306616646148697008841471738899142410583296141618355575368689148459112063049912612946812392108352201550370399256421247700322084746604899783856021376950856214474268129244941056820433049878768099286337666306633093395239905248503909763735602380304600704778674466062971359577393426812504857259877969268015239718830463060516557014351442264259235705032691781149602942974267887148070066592283254392101926486063954099344039165041268492591749406559891926286496571857583112104216125031805383195602915248353602660441557224120572063768542743905146852862865131203881839578378523852378151987964742994106167514920843655387388089003490795251771219655961791208138478673131433703042068290293742968309537088692269676142365259177444620630075288651039935566303516274981632600622011065663654944184792579566416654652266395180801281837021460962050072868249541282137846465356616130033948899982516610623476592176112885661567045394779687525316332297103348387098426403226827097596764428149310826312083673855132700528052561618570640803400487185908151697143663504764323736467135043541029011175680128779885307557924073207342818113389976708071480001018166349903088410872109605570146923121902284807227418310064732358631815468723383771326550313039962508194989656460952146174248864830338885580060981000951707192602597078696220434746764623286566762258917062891077882348066671352919214736606986010957910726418914047491005886446172991789119607985903292573683881204638425448603439598231180171142294191066376128355900422089925577971517170268951112701162368801161937619905051886445567561950559966976514826876644924174969893323240844666294380956546593118058879871422205220208303031503990142131744919719584569427922950289854133416637715018928489218718610334754088401333139648770570072904139945963216917155121166731256430900421006875706296113921526988143411221039112066358907465738578072848179415862763550783278923764266188421498453932632930422418183228780638595192338359197436050647394300537457464488715716952986936663534192820568164627403903357070274728605737334533755518895748957771190753878365759719280408644485168192843896505164722166616173260477471076450921989630179813759540743781553044556776492500533798033349998859075572848365267353113247925010084189804726027524947565982752812508340096029627742265781010681838854394703090225246737351925107227308457023074611742245101769902331079993175829397388630012935524598646051374966219309202406784842955668935267189224183568743966257635557610809050355236991395942214539161527393374494109667137206346412169358971164393153439433943486701655877237961393118266711515934609967424526732189818196299416965023966111898281749614201414559356812595384882476527821145280554281578014805639441107200921922337408389116302538026932035515789868526410675960629241243005367511301949331523797198203207012903746621390285704799430543032605186831396523048483587807036794425672095217124703941120840707691288064847703988588463030473963414565941194169627065861142834406073348697802467329785275706756811435427930859653437062220986264312194551632957983098594839457707710763372280274990054003901322030880828572418156929645799918336970017728415774796009263809024088695311241112502482951313913233258900320219768962287644328585375452924129512233674450462152081495653015695939229939626657947212555808490770150898317630074541832954158631116912524919677172182060583191385011046062145175758316652179489595868056423087415610009172916027796127007565723632148173255597012919489485914387538685998027679343974560785671444301836802443596829698871615059129810937339822181248712598851359360619608058492421960452491815753404652268143356941555526847671999041181491362779961222108304687406889093020237892082121744004720455607099721814972769058901099738814713630485287183030932492136157202260802797415113685354234571048668396816715614253839606118776252586216801792772910332690592109563372225620758555264441518419329600360689059357045092857299300546186149145304495092404676994720650324925129016029509192011151059980744096591534737375600650218057796756701908207383457468435112352427844523370507141171568788017694787186286624374532894481233847913286709603282016910642540388685516941601431416064899751732519062974300074548711759400981911582305183255287906634969124238747782190825808554932240596727993683797577686805167875950508742162740387127217867037967596193537358859502102630342189776543547365301997278848318739891558994208181596163662640705182995728196623606120030571528098872754800658112086927964340916351481205967534393617200709226585275415054049106916454190095741500677043693305332306812057517192848236118652669738464805583832192652346103851541417102638834396938429688753792589393329472522697883293532300443774127411558957792942106602771126141870850094969495739580246197284609945524050905539466322069954768722239473121445261500035808600077010774232176722358481263418539403887284368819330595406776467528870624273969498295626966568267765193108428769425389999051591890446652495322179847550669197485792852811931239001772379985662417876827289052492308085567767458463364257794973959064346748220797104868848194257681366959820035925481886032453567825185225330726390485530009430364214317101119848700057517692878237360906591754861263007692566322431373340596252363725449419473038997941908900547516764481713415151008330090366018335904223540064242605524486812496835261777840710061362274858838058006852605968056243071524968336241768444900369720125511085893950649600601875436204207777377186863591951567465807044711698313530184734894172834952468480254777379061527929933207193109671851426205907268109609437733411454473031757984622160661685722121809331882470711014879403248574928318000810402659129201358020510826534223081697041871576592596319285150224788892713946802744127562151396817741105518899182848090886426036637692704252384243889592602403886003055263467404459538468794882514533075984663567322696665034304591229878265248835184548682864038491877499269505228957120597517950061514502608388263553754753103994821876839384097405045762379231865786977323898678722436645620756773013326068355390653990179500646453576629650176653339307737205973822824951171816748156816902176442844661627084502750247174968089202787207601253162522420098632831938295190854588623265630172730833936502032565497354912870983147484530978117484375731780767134165952719569160842500954361167114474189470892282937895040364922605496161299194571444678197899616183921578046402626169317738822615063268356393441492158547681731148347880689095243693537027425534750173802387809874686800760929408590142958533133960044877411050624306272145923604976355587234678091370621042019179892598105045747439976497434398795478574575168050785514678880177718830149328792872654141065610572507800959435080736898658695966907573656990418862310171527471625402440205857196608057872043001202710916332841468045378153982982548343496524492935606366039107194191118017043752993497914405730851382189484581502454847659002289453899511368667742943033316152183157747739630278217972029023679267481955541022507651994361181803940075453078981639315479683847355471406527363118776025238603344532159836567545919423281372459070215716807744626205323381921144139662701130798885812753088059214904970456607927051995351619185739449488607278762337213944545070193946927798873337093070806773796284749303747470132390169572742041171119444495008837391702130214620312603853272898003361868222879818829506758024969098780584056238062109256729284442949832110681017262954234930676737073817520827757802674685071588759586962674763821546838310199943641043532055730842904218299526747491254527046742170167534551686985430391437466601810436456256145694721408236551385173858176923549104589261815166922719680596950777032711023176650552600139652945458642342271451902008971187217223385000434159342954140164494608604950867128528033457323553833129315230589093634626116901886487494987899622405276579367766485776434319786375999205799686094827766844474120312376450766790585317453054287955007385660718142233273237591372012276616834177593554729485073783256507453102140585519815154063524467822814507970166103376723634162465753698078752441039314952712991104612079887352708378453027028616098423050680656434735976663657029794032464924647072920235910352977161394573822543985254691069012837623649180734146850353226287225532731377617307075276931556807879615663076116113258273602933396304442438618036895747655193249794248115214763995822949876523383603071146698561513693944225483159334422229517849365671797952142247073239283310232914757370723143502254282546085475717805714186724311339574040418446625591113069201118773594971680458893689090233717931013112893518954283789395894189625125316801220670725525133931696317618355685198629696085910291878769180122627331046576829558949750473252849636815628543584010731172550542329987376058505083228829644759586537933851812830544274678084376629534545709599846921732050332240532900448015973241709926646524090930077018869762529799799582193007865678886707460804495574350463082020915995250232498423180021157849396765535772008663530039762878850604944237737185108084989956541204566642810302408988778998912044038746823617354787484069491549546134226372674185572257924774488885717063106594985883533192107153417584963155054367562687811018440619580014449266632435498942016450747212189997575230789099012903647301500783035757205882535502361317311937153263794787878035158754175105812599575340940378456145921932986715540471829364483934233003146897373017037281209318407505274967786638222373874445631407667214770836389761189951392252476446928812286610814964275751357147654777354870789217396729425101275649595610437838463678722346673235576833591132224651687022195431428857999929419989851753634319570062217838544150652207694092645708583960114520397309010503775157254923790019293773705574572247491508838551397853826741047626378370293614077183351898487530080542666959872423164597968057436288871703906476876470930624159293403198010804652759269647117667710315694033518371433719740767247605198383276874878801731137737873337500614972434181858839900229306791542752647172642637587182633436486740112703039697086792219540637270202652040403648932735122272459180670930517957885648105190171552642953546059694431672498231332626603017404671381099355240311709645241651307466272290412262644725815223859636585013480956953538207526945294183577974861014733605079817816865508324721652308367811656909144629313612195765911912961447836986175574505892716484449189603829213647847212463802430637102686658574012806983097039913267482881717324596746094884883754398546100724223553727581909939551666731031880045291023749890927383259239066454148402248065947885918126037401809029160418818020462428309170630390912497204328061579617640428530211106327032815000726131727800463552419552707816317424984901202656745594795571845020318560965329826756246914023241332574303274901389797352017622320761133014022319602441559646994096778170250414772607098720100304500549860985224963452993957215316865034645344579682573701438042580797259441872785026785744710321957921640554479469835192191296319235041261545346476337656398823101054217235967261594199602825912012356916026706845809296396050112918362414728129586241113954411796173236510114004982497849006936555658203200796830442443019520602403108924530949066205199799982345252623190649120222995464303630583615651387008863746029019795863243245363969316982660210071547055955081990687733311091132631708094980715436284836915165068251229891407815595833599612901922388585637109751956445606213444901274195363498528881766660365524422117700889349053343840374211012192320985412721656888076583125718584549825907470492549062418346753731017245450627938990485073557630569157139489295471276059718463303538352458166411418773591238851917228293459767262496667623337219129438313754074124488758949975228705569157078425958816448650754126846455979865870137853819649572369292066864839518516745574828962169466947154324904182936967669830302230906037286698259690417569127910460570346111952899299505636852565605087101714639245236739562324125374104777077332216963832436330294842221549153303995708187829366433531042081166187484952064294799316261001978186012000974703909028147610512149691464809695599305017690390286879329253053120874877307771566428894539853397576998794650667689517530198155634154572718697490161857811022978256016443255798930819182572193906582735214857931511987807165604450113766129451538429511937345844373647496054422958209413986280300747174227130793981904615685205365268916046173040389162221360953163378868953863062874947945837600218697447439250554183289917974796222402629211271029645199381205429689693551547645680030622365323229832408583350996696563689276135365671959782061533555548722282073118733184508941163936510836301704770369970679177709894115243513514074888293044314346952916151914348151878440705188126767059302319818937115930004569025489163584630341501570429861515111848043763526015092986337901731150256098084605269177221475191841255701694121023277053619646939532825859187785788162302397643230223563330250518021745575074467825768502382760574435878704238041526853301757779309613064812670115234547820880718742339804171739195014721503449253468847990803629614543709738495199706655418861667537731393730007952074793957241460543137858650525345246458146923445763468727418486578441105318040189530109922324045491080503854221799351533857569289840216913770141699654403297736188195805276859421683184266909685162964071993227628702766117630296335196860583456634088650983940266546222652953237571808516798216317918359198281982156992591823750854277770726233690431102412456909422764240617780456094680367655496895932302377482822430419714176572563386624521517780443057248938724468690191888344007841681486447584647866123912929358916558539244221140784777411516883963648313118282777166123174795924461764079937172380335454907334332616082630638261991418275576368470259319740384308202182591441820901888383868162400990240388844550797427784404728123459419669197367600232237253679166201017582174644886880217641293207935782571486353095083312790592594220057915721053510724694935342010488149830475762239428062585314334934151289314454444288150136572738093278674797805200616112854894366099627156086237096882216876268219504255730469738968824822601169475151341881486341872527445003998893811607760847713793092548304820675747934020792769182307050805023591877175626832442409821003452302642926300967996889865852181403341641960676052585243694084846413937462572755241812828338595452282664393529397182359223776543119142793183368540698837692793678572024334588933133721112842593325550569371413599763668984625943594968128353890173935325933867650302366307279606641040870381156587446997234608476972189132336110344734046045993043739980209211025479924843312996878425901052217121570345433375581770120314573010810443933764899634452503853592965305971594684149563195849221955388155915993589202500194817582619410032933550130607546098866585117126567922216358911733449829807924012948312640932611599419386373340306661506945088870004657352809146867180875116362738960305879302769443851642885459923470441447987831868479000001867075236891005607749978350677109282330294904558830362798440079873197629862900671329049393911276537968696830470619947635995762399420763974961031694387462723396736593200248461495822885584978208189632621282388047036458012843909322708270882904898141390120119973363914883017146655521628716487434880584521482804649985874962735337449684859863513619229873644040752613562525717803922277527322806922115825081356650399597442774508296760951456862849248864596206027357473170786767413376817015784110176384067527556849761160866816642796085418360830777804896721583100362086451302584110150001650916820154552722448034248700073948522774265782154457223598712862683239880002941555151233482834444769620868756515764296873695514477850147541394840227983969328092336068814327441783360149736436952277705739326240638364079266942230868903803920865834345143759602772540696893535220567590284270560159339869405734437312127418387947823763163264370613175305107576954230088379503053056965702486833493238977453388746899509196910987857246809099742129695926098480852585425865221021338286613987870990428152436224246828140479190695030461729483015385648321821028208982565774217232746953763969646687736580762124819683148539138637494981070269243627025543707489166052010061756499844170289088050203223614112489772637420759441667164205084759661006404583184836722335807953861407575592691082354984955954624991153037367522998346637032599856354749132316828987727600675029191698567911814909836313713072979295916616268542636719937847010563490622538494195165667813822031027368834215625421461813478336973511150727030696970661914175633858116118787740237967190688465154543397267938927487859158269645602543102983836403054513195289988149517407421186786537232396258124404219076477643116367051704213163037382437613009486308495897148238738958298467986431368159657894343124523718710171342188573920799229792473698131450636949848713760859998404204489499116104750363606907540052960257254837048107927600686526068686584731098817663736720089821422350578418973690618509030558469163141356787930564236678451037511846781611022189539418690633702056376471731955535476465281303671320968251559507007577592642387853211202606738965334804612872118747811659291347083467722248114000099631960203492540219561268642092931722038152062283431465251819601902380599658093882066633453971672376114651361256323566225144764020156038722107356536465841362777002841920175383146502818600946997664230776577083292558577337985527875693339255575106506485404795252360431315561227297696868372804239966413212048466665706431104206768000558312722378986614291313079225810586217210560245032566557165594721943533376391155273365131256678250335936098517047777384465984920793399459464555595985517747787659844556758129101039342607977584645875305684036490966483199261667105084357519190741861551449592248334605424510998162533894930977086176476224074353601871082278472313087317492739698067342066498597891499275295744282678644688815667250934558426605468618701100292919294708518889973375967878536773351311665069815012149784596902887078187392313151747526363838031835228269000910480615682858668112320027689830590130282179127920751031827759174781889594505578797679161431326763980245666840936731175688503176992995173527799672993325027887476594018980082188357909552412855027841161184597092950927017784169857290144743366367660005850928261258882739723317136778686369084437059205838050662697310614172828736134205666044255550609143850591410312772031726432081987754254455466921068211007141174553908979523558787342520664069982019495820726948316052480257372642221167525109051427486794683551369661526724398872991756352853249814514561994965025948813092611219929954421992389966734049492763241045074006576371329275826452837639590776019305732616454147761256878315564871066580976474192000410620366166194604456903071677550525564831712734782070174354067645941599078984315207095088153282943553688687432625516226876380018535020957769626766658578106523100820123197026992180289543281062686340772964232385163829865599125644077981545878244970934468904163796039752332368110224107093370522692564462382738515002642862375947245956077894361063760088462866629766524978856056133362661469388243259605394347349817721838870838465485403200782755889320946870344607396695603332574181782899387146608819109140570591336066291405641629530168729469542575256205442748712898936399875051248470275522764716705185164796867660753654620406044913814841710874671534208856669167390682900719748569194197017114001784272194866388796572367909258326397989734880228472269840904793529892474463888143461342565736645979051891913248931133256915364511119023692402371175496649055839986562155196120006750745059369484107878048746187218738938850308817018007863852077947145923337568317807530239192749413859596997341756485220946380427996854415619063327123699251354640903338009511948768949612464016136728277794210256729861448342381918317054933849880903287354563751005563119902326301250164845980428211694933292534632134433215510834083822449314343356876532120971930699234777475635646836347424025702298737314213670134560930939948346750927737546401263276566742350854458053700989508030712882408142565313447597206310439911977734456316868994990642462430498493324076531843109528241225116995952555527304921433688626955152791621914997682337879336192095488643162602598640972789886612175550272627380635775374183898393823931714813078616592234801940340139452431519853594095119517172807764516882251236900903399277078098763499270107758728277702356869619424442048050354046095433677003787109499566016261528587755241374683710807384203404300791436923766165136137123618661318506214447132180295760775923944980258930647848398479060520169429648907400884028626280361419616714835711974406876658152364360831003772598476978886199600415217070126854809964749339373629062187901713604290970325449522555729304649317468620383789958362949383891249777190670094854110420232186900955836472659096459174244862511617565240415635786458242910845006390574565773691713911889729939492578423212592681795215100171708657050028697605005899427701853540171030623687193900142601389017870969225134284812409611301354107704582249844196402265560693090163847288040456554872343881085423931696360329430517667617960924111609313197855786987630892700022545111511383621146915839210611190638561663048199695995625658225608723976923365638898929921429684240276690943295324413107232084913413271317370735498489079992832416441398135004269314783571526428325299437012564130639137817331009148816452452174876577667469838632146418655195850830920694179877275773033243269237303133173568757043604009240277292005365975331640160096114833953512598686628222324530341844913571626591064462162390855418799726035437768751499272087039759269863654162865107969076232859142098068355396511297766900400480021507889680637999623794641574967268796188675353824957846238893093491846271100198220833730810265825218913053365186292691442109603163761776819172493764808950631896280851083947018519613027624985903572687259493525785776919623457141575753510689197970195964828871971110769141454524903725711557632624224338701695820858367625608925710588574079024228885498136001747558127659215339235081106424555393170545931315682501286639010820318309485715456076632999543115576513786972527533571910729857652400318272211495444880299376608325596229518827722110694560956425719892183992178828633679590383830474177235761173839455575089664348917946827607091530152160557450109547693454382662068915150718216192282055759666871453907027946966926731429912661910368472725809499184396649417142441529846376060580129305687500867586201687123816176078789005919267182410038053391843055448947964459562125436019163458856427300625572402401582208656061353571976440116823373990944783491645951763906529726751641125148260953796296127218454587478749172924700990850299605671893556607734227351734717586971316495144202344431232819449750159570738489048528940812544578742470818518020927684545784084586758922984256948488222245236567455649852267566782722588201664350137295756198687975051505883857966886439813980156206711379260974218783590870641908043755202421601238177937576875247716615599490199684050825551667021594881318729273468930045657594146003709998737977249468365380466566753980947932565634690189837600194056912430702136279319428592563879462379485405303344926321524680600971029880126707216230122479893540693464581183688574368668779296319894736494496369421959160756513533335075226225484463356664985473680521321090547789667966174094672190746790490151668803579663862171922031338226266290832280464565303547724260627969180689690589093405236156586828909076370934245121648343252691920227335264969545129347868481000842318025791593357575169451757556827913815828168070678322699364972554149514199319793623092498915298260076747008858789752136391374652344507990456763811536332355250603142966247147132008875200981648340638105886603187156746790994130433421341841088948983593298764463425248492946583478538958628360511798641331587709716193147569042744900808782872347611996670499760235037324204963510595126716689538741637078779616673131855013347585499343584566260626038461468675877381093183151902636308808235342609494001524552346572891252306070078989209216373668057039552526143807176163135361474439474592166817204572496099269813885270393897751000890819167207885518481551275924337621049126679826609375922051344044709215907532380010788995752263083215137158408651386515995870050780160687821803306078712704039242736414093328250610168857742941907916020996442693604817008998699269619082764062926894554337202165133132324923090463362438933012305764724070523646148536154455764719103039753957194802967580931006310833887961635524401028186466928053233921471798049811409652297852369639843554044185724806520763654400059636990004333940835972167697954279616855838400802144019147726157079490235835691680286909860163882587887852276405509627462823367011406283718786349786106726495377455628312880394354383294362176178848235112650691166555369009844277339566246049090840322271578439900735485655401709748551624699973202623347354820092281608015315922977757321142607975930344458107471379684306493710594704386959618286725995991552609956711577784199523963787744437939471942273023810092575114301717682371497602283672487867477853221468432388096005113337220658468522963707909151881733235240505336312921123713289951311875902528761860981924597210782705566266430715101539740662839857224461135640315295592532487021196329524204031640835435678758976741585876603920220435123113171796531298834584713745029057350626461812800629184699029474747850425385174492008546822398518067148212037422113998258866142428899865473951950790619532403695862940123023372841400791425651804836080379627491284954727471885190750077284766425688442567056980872139451916447253791423096886657767266683506022620415643201503880239635369860895785536545599285415924742605494168716451325201557291454984382190155543072037971301086539250503696767989869208369705508752426641115530554675458227407534619810855851983102819328120409376390113726907786875500568355761705785839560332348010390887189048754348511973102160829408768616826713600863582549329391266129661481771272561008639254517129534749638814566107466432188274868006222233683444111286115161811654727069213610430249897698186368253438443963157605480984246366338705573521941004239294309594909835243840422111734185682416280512708732832728731090459959079616857703299785625011740599788271776317696354084725864497830133594343163274125638076871640898872661156001972318886524803496213874359674643256117482144354084038212788597154745813709962666271374466949961882878781856119064436376502829255125437474418546807972772949751066425528288386557040553698009100690258424548880553979168942155926691298513197979000861079937674350870557561196075284801576969148725615846018314621519702798118515369215053850726735031329447204274473635990979488556257081336968969302432340738548592909121867121091365735378421969943720958959779242404700320475881139671768528325223704413795020466066537475075154835494183085910291238096166165926255540542057261400800222691249275243352730656731789276049759132253042217625481099436650056910788572634306448909597903619810512528171229588726077349489377236673531217812808421142265222129173690324959927554191061560243261023798371772077619995606886533299873344387165202608470915145201608005519829730118484820781406687215912935429768008099300049694747655604789157789907514279772897696183950212832752795851324768357709836473637294150663090602927217873238500590280905954852440178977807641111513885070691583891936556332435544153256036147928269637787930310819994288050391442839156957307030554147089634790482099067169211340417524767697327582752784265772054096269005039245436491007698512350034568982753433572486931706277951990971845912224953156579267738212658281287154644056485750073332410196418956450761847418764213620848667110133665827939394115947488418316097204361498836964196842951877955391758175362587595670942644078753008906840382270838923052877080306664269705315354846248165633169187512272166473829036301471681793862529785803580580051442937889662831202310919824204335889841509583734035267965304981655087606946512677315102487470181261279336220847819163823614797591463223951062861829723473005602460820796721399941583409319578318265280655994636161207266688516573316644354245909393952713101817997603073351276095343883567376229745477116114962140023171271546339142418831577301687328118285125351801570333524887754053260460407440821243154570597708229505643043157312112249240842719995408773972177324522965291717915765781965944560634836553450901013162224690200680368749733958693194728295021419855204686055950695355964343785377632809397445233422685270241601476429402057525263947006331090914898372520480083609769283381943196772987228513175983631375950628982573758266234318736144842456843740543802277845390158685986881425065181703982628691538120411781423613951320804853705694825197657913337082971954478356728166537828107594575555057938237135554673497507198853789821178181484860719147966876222162789377449929480919554047168066462497274006431006930108377385549958242517185580526974086021720027773317521794530335930057167503027989669660169161094308568680892586212075356484422493112876503765392476405152891247948771901266623548614032760489475823116060600956644350957263391484275303765874024510179981159373598032033564368212035132408949981940766359097523281094922790129149866887466909258187799744181675705749085579239735871683817289335929507494681690180310116099994125867837067589782401862779266227516396663961757887005302503552145698377879806305390531959325167229560249516543561552255395066402980513939528580575017091097129972907257438304958390084899112262830350644971809474154039541297481283859633554209795051010884586939591122011366199860531246461328539427384046054065923614397845554907407660000348459888671990849758538650231021460408939121602190029362927286544117638887510809376280708897957550688317526732493320648380563759917138011989922241610013221460894023462915983369049242720574738377324022822001598546154109573743628734846054507100423034436767046072583613855401136371354987951266221349173346734357457001111468682111138303611181875990113227173128703100522743042735739896330213250377194514966188238396723091644302023075076757478943656171908468215863588955704747113112305729667951884292578896183643028803109826722008654454438655505419234403372579523558038282940233269465355694851752365422289350176412162221633276918215484342899915816746479756383553474640636453244926592993573638566445618827398673785625863056508360035027159937908451751512385029109822046374112877833691847519808111804040330791288285916753228122742500383399965750150536610008571094267031761788481154663560251158593998392388031024500802047241269139168537362336201443009804230006141424904882109912541528077542166867610894178555140866746229113401466141140974446763653243109144963499610324914348779188181866859996308912162504160590615020516387553778810348715434290136740412485733130344381253088991587947021221598896430189322392600897792677903852978711212102258544074590683704141953829908132394858175415482349393525928636299164803359956584161359918191249474639378911015706542847611511754971905552048946105446036887408457806193424652039244996341900135724733796802314656247545345368832173304723637688153184688540341176043783715084335894717931195887345016681418624157495266596344841790839222183871384617611202565342877566073669968587167310502553496830055123631490906659668404095629783953597869721314115050955667351478514328955864727820935139812692374225220689858588661298566211442843856558614882248319939638119445565615742651967635435290174779972939706703372805081219954376481305587670920913160389605625930830920017440855328014518475068666838507918299245208594122397218056822415767364887736844537805704810295001162416589825757937873860444949278753329441198750852020915001300381886741942378294905712546584359251788555860011998951853337298281274394046276014166118277084167086532414514361933945523769702246024632841073962520596890915953263451032647297788675751927583809523861632511703825923478156934797519191404338995591882662848931582486136045772930923359140091013147146851068612277283392342198778717185487354784699302475668336954333663956822376366836610565467877308067146686293623542279561327526540729011660107061587838184730258304334388198351416540494351703924767462681490928109148190221420719639993632720901907670506316895742501778431450114548407009185641622689783107831603259408493271457813063268808380095580646244949605863958022611329388228735368474950085338985686995176130813433709822357071364369702956997396371408953029664280702079387944053746899756431659480723853935582911259956385609174183419312909773442308600153402607054699383773408459734769915066592157777709989460009890377628301274688046420060132591668917554433999489392717050655274259473704825307061779843208753318927090065967285632437387399337281495484270903502167978876864943617018411744838841233218065486270125029406555264745400319439822115070564944687881412559979883040147231291579407210310664976637636358383255617314776889699560026068809186112469201634749190069824832351871548603009618860619569697682661784364999817719271629608703172442145734557495716067289777773672869671232023705639158455109056431760924928512419395817346824827418929937543711197518565525131342663956110100946305134625808809601150505535502234002226092967848260764432744784613191022075036029002230475828522859196472165547508938725861540837340277493849384569986981421893110917735452469768793746082838729451264522731122352361668157290693259459366417595553723972114606366216510563274126692401507771309717671455299910499594762083686706793167949491981094625646309664984002528177438795079519529415392816345055482008354339315832832119288084231033406645334448308936727207073224212844970328320893839475775029879237388489963430706207073367810722588777367036080022998272499162518007509512433312168214767704007023768552635158820768181571612435787292765345515410549613396968331275273477770037488195336987860188748216603960043817878431845733468332647349329739510904868854324015651400565940352801139914049058295368746388321960750396155675324911532353123243941220603662168306968145015304523021288120443556422906932280559866320599464905773289180141053888691981327430004379852210663440817235838888419515598707464649523274232930710219585934725022592874359084303111681581527724549912290540312461869114308303297193742699322179980247305324185147930439928298288822464934251686553145611803149318320640121453171439786375006354321795806990589110891002349119175842784399161057673259989002947925258263243064607891011361445613302712640292771545327386040793245167497780674402517322843584438897660356751814068418859128439509862751794107531951903242400236243301776719083666209899330054413283833140489893168410841629668718667882241019822162797809484392866841754283812434779728293448863152335025293893838207179550842244375119228855556123964086494676182725494480304656042384199402195824839245642434174003442792107601944672015940973043762470259784169424729848763241675909777882561490659171972699036344812831217544333382960009799179674046135668355669952488765733717222257444275517432337214228126966161816668315978003089732406766457930034075141878733636170135009596059233641448181997336949160458043347680976559286528193321880611814849075501972341318122746334480928548880146431556559485079406718232700203866816927731919183938938680433885267685250323861879556529410663472286212517341849515082035891166799176456928436346247380079861001304072837905400629538009686120429226894044249173575934884673385658870483408600856692807757869675836880614947166512529506704162957174576163376471986904806753668266910939430318164868773010658919742127090475645223260581904092319214898469035877813502272009926161418577337928040108364005115540539904993877696068568212503721869323269702507668365190738297618833834514827911119382288763716166063947536837552836084812747225325284639630692466728864442390776873461965501635486761072769017450894376496418526132404480249913361335732035569934744230267627088477432692766191112608166548274722266728240514690428651211727641708794325900882939208163041484852807708546358691122097676063919626975013181480183944107756528026751670723321245770579256711530538097072952771393434534938940868506159813425178664789159274271224057839252057699652425997369351815195551667747596160061251211284843652515083911089976899377213389519290566730659765455253119426240078250045011225192216130397476895513325711672241784214866977672315675734532023539703542097858691904226687586113669843723276568329124455327133479643996424956447352224480567606398179454841088539153339652426825749897241980715805671338180305633979859862451097955431504158708073754665989452675702286482816828314699299455624845327189555297777392280632965996210005496253919338264365400967618095100638553871619468352643355614762714176848789363500681306033799018941527671683703541469763071754439540472159250400467648150346739092821704881936305374019892697457367797159768992176593446214679314276869281425366742639835742685940167317465309839184527612782348119834637546130388740947521003954913699353875687955985026930810224180616401514246345772444006609180918165695692197131850688592977904144803752865591805484933669765811757542376355329262955220379959216716273638105863165396303854254680825783106244521539548207598693726021521334701754919916299428036883697419045718888106008713512746879533465521611410104928700240087817049298587502784761016746926130112741669260640409911636595487259672303031413948170409711538809976297371830632869865921029842168387282803808413547447093672467564316296147279206805883364091790470603980098310084494198700553323810124446870210309200642067790260130102683960553567631891439060393916526145095683425274476973634939473186648709110266128445619374405329398206614191502942459110314431164715451571705241169233724275539276558027570337973531503202742846924306237514652809278430196371879488328438087230079328971460660949038801460581695431926087198909042577169266417317334629031576667526585578645610569316244416170680273919565477078996724941661379433497921618001854642201853344980634542552812588198419392809355042614175714806025384216905180843560956456465533913522263645642305747459969915360347575695548336228971551888617251586228451210863964635198987685755090282838411945667495141881271644583994086587961326090230650556818094813874282418446712000262555782105931606660111704991579288313450497634728523933663724651290501642656028319455746791641950061122337542371432905548737877987976591936678051217734191509340156532932723495652162305595222463241968808876383243929052561824514467294601518429452925331696124614017839791658430108256116842688078615506858305618355274384630067466267449287176986291754213244428404118381410924562018548283037941866275273489640467492789879036269351797259620665755612852050057210438829961821082732675153680365866925344170060662390982095478867562997772697434759935123079168855767573961641871450799828354061895324739260169076244297413574734710529394415159167368280004518610122249489371531287791693960244108696180061075450758724050004637400285806579075348135334783243857099054468440417532733952678700756472434803131231418149525581248387921107007508882983957165479826201016012201465988632712867488232884905350249063780782948334761099005022436644116195227218827650073984093935008284138457956884555741084974778773616917561338632469044493421726984404521056962275504213166295007968850107518867537728141469279284469476359950117853616780035043773498574830931631777477743304254376869639541252220982552526394969369952630463467931629408831182119791300208291370418022288451140383044890330986728748630131038060662380555912956366043088042199157081422941585124540862408718111042269281537507682309549206988608325890366254627942245582128918713495021511549914066719040965646052993496846542018480433106231047178493779539940795997369428625984207224041827435585171957441824934201605343631485340036810476375648710000423467615293503717011800458040860915648307923254651450513428077122209684039502633520788260113065793701190241613322874534126629508492238210077382522481478870091675288395380793428061065950748522363114067910048305787560173317306500655891202646433033711351771065888344857686193192713491596318332571554980779110892267493151159391008298357540120545623451622353065872962065224531336666716702293410421197083766726572401823796447881187181504081536208440630023788385779679262960168514067672898435048176766822245066580752635032231638371063594856368349949106107612901379008998482756963168660019460617506123196431282894946504366097041602553060468547023665869774660123449727221333732310472561271180946033099284279926538678691529177857003840758296571835842341937428033615662586204769118405527331966998574769292128087076707659211105888861935421897798583915660852451093939878099912765639663304546399245309678459206711107246048633624191700123875269789879290395898745024957045854977091879886845286375145222393252649739029364398198216669182684353500391177758579511364208956603663019906366075623521812955657641363148941119978743845970380505270051629076604405056927103420782682120620067014673361947550113002116881742500031857824456288379668224283277775701966097507340169610897647804038646668899394955924410411235639449341121205239434187928668250421774360916862150794835025203484169136142787689780160045596764571331748936043776613944265622567758505709708515491387817745064513738290878675648191011004055826565953180241258317308793445221500995375084207490105542980253007903364682531141555802511523246007961412346448643862951288530111846373076313446221229123644939391631734922780948090876896953864957316804383483412827462336427418120510078865216532424380941367000986167846352074220568585975836695849460436718359585556760248474400202546671289561459077324509282723701958467877005904326147090781705515815393191560459542340055387705686175544337509525289994687939937846715600767852333377350328151253623720329609148144772212774417404738164922444380325231093204377170700519375781655356157648195792687087715671470109141298500955972723429631235376122899244930230566047405812334969249375002151645184539733193992256076039378795338252621998387419854213658401036273205058519563332104812345570507692099281727668295672434561107951895011906208715011327428962080250303568547814413336888431347900367653439534617087384074219187816600083241981049140908295936831427001703445017108728775962756558092112071750504207735577405729048114745755020611005692925781453915983616308631435458913161312653762088066792310950511394364691301869198895288107703598269913937132642120684979342294945140291508200676655994651560974274236902153109418803092153880615803329339270506471471282502123472868389848901000443245237876211312259044932023732809599649669312708058334299206338395424551344519684824903189075861846289755553353151481075352480021872687304215474120070541404385803763153657683087880214970676499802738333200198095894701655615144446417935786801035628189911279118949140857809255855750463064646538373323801045568032498628355269382466555175207084187414803466230229571662261368415646531331606686479087506503605018013965703026458420253457818920373491898831345717537510204604517821581202481827160771242531324309219411866545838251842811325594667273340599565304587092166355570095307293960006630314397643725468147439938529234601979911067114295968552514110004800445651040669990046752879262140864739609651478630067995183816923853480665553948125569265158622555480204438063555123641623203095238002488040997230055977607724404811301203982007982361263703683170431558444229687467516631651810910477338883989244843945252753044451495224311438463234271580573593636428248864045398836800867457659797415432959706949291342865696736083564544024270971622429182140529164915391405099367806538039260296461815512463023119051254792754654593914843020278185619453419313673710255898545166798901058202913214420161926040167198998899867864063851199518059024486390289975767607731652110405608326472427291463374753768621470457180886325463420472045732713603727527192667560335556815859410209919184417715243632847428092923600503375016825135453747144497426728213355652809741498440803486586116889905399194087316919618702569883788038685504814747905180566515254227447318090753140858498235530356569899800706901474852856125237092008917832851723341361065495985403413187748573772836601930059763402488332022223405632309217158889770441528368641067808215997317091018990094459698268248359793829610512289198196204465416833569618953403883809841202836264406993123316736093987607097553757836850869727647091308484845734691654895599423136225034316098290413173300158689005343765913581121101851027247810421670284301561766778143258649773670239198502775210751408566118945819385091827050719356422045459361217822700658179343018304065130500054728459986178931662354848634852452037503669077682187031769670018234951388111486330175511200323102688098495324551709621429789378152628543133897072847772794512958771553884300778462081562620242609687360619744001279147261333911773168430477447977502848275490799651336530853338459681343644714213820167812489312906190648823235491328808609619365445193012560093083278283110271926031705945001180304487720536949758993529361860028360301188901098684053610208960670979190413496566981911365880243669628153579427896157905425461748177184700715527977827628378743097721542576010660262811227333111552388257452431710001576334609697910461671923958708216472167453744052939360663028494234947655241611052709207022949690624604714375020598001026708104342891497996150134636357603127270243689285559461683870886951868718610545161639881803126377114185167083323070551057789992228713301542905208405519336404749866876998770278842328473569089260519292955825615017135100415373341533026521615493171956333717531438529130563504682426899298280809141734060129980872356707233224189826142588631950864189243942504264891751092931761520998559550249035694010011102562264583952202996090014413249388631930676900282157605998724315008083426635060394379319362666445674255609972590601169147528887934521633242143004317812677272929706824320334751725203027120256095587028429851109686545469881483984223494509809306427801846957889987077265321256259424302035140390836967105835732310059393019172103932233316372154430291041306008832847464871407877740219699498529454438717102533744082639307528249255585485392767531046248315268231606344512423704686176422967677626152848191813003634052157997810175430800587233198005667166251663256828857464512070856903028151401738567137631359324713296248772615953966412293262231237660842616806099691698970948152063620636553947983776926528394736712813724958194621379772485912709656964985727900403077224092702710040040861311345566647808264474165295627401610921479712533177774907223012803802517966535319029605344161971947582073886793939138076380321915913012633306971477751453289119648518067748987506525251695459774834995810381198198025481810226544030025674176746502832301141017657423274053189849989946565518463206902201588620063529628101222504013338735604132886916867815473325528402770493890873448084929574399943894212440944967672141371180196764607781683878939981240093924551984843250457864772106957752688631531629806569891562704306327389429156551489246638712952982854242567170205381041835983760263100047247895068027577450888943163124526615398339481287250933945904239894405403238845734832509736439102798586142200277891907317287541467398699319304476202839684575259046815313949418558769158184720300447441514796955510100076837997153765935426956581631213666092901834335333417969075048474490023389183271437661782254598508169909485397032995818096571361013624870219156859313825371117512955012784570177374655928235145258938368549564890461965448876228496404314818379737513774802825502594092654911832035404404095534277185105298194929537447997984198791292986239770399923755192116295809385000814038002021154809593751300604585794021458840160808961785146973499335325241387067223481725768792021037742818254748690714686081990786623641936743521294314575291012245625499915515905742077247108812572659125410888470334366684448989099690529952294168967142906959176350349690526528126559436279659643782931963048433672099302924837313730877098105944398138244360345593001160528867481085450987200750187712053779543999461459000479826960950311969670450566500187927677373785182917534125431917203370712031500899174158679099894286377378605372941437338299337650375615611204923663539398107019553055393659246879764811356714327084791730914680711119431973218893736517574498398140658895049564491998414285983761973257357748031738326579938638372104759305374369612678074614164785522683133945702716442655897536143751530287033477320554815904959324122918498378912000645019999193744289379125291355493665671530183778374053162841945108857775640385046809749706688523255425176062393800488904184665457168933788377180286786819863901316511384302455820071884212070297878065483501465540163429920965762075210050946148937280605296586188061300876048547864743128083043370148596956650308557827297676451113060472478010180248132172830184264872732657317160169277656618085191592698301094441577108578507453178973367691986006963265855708519837258276404292547225007394289777302710323203668573398256574545101577723925991807543975412565569600334652830631937047206988788471330135091000577506203303723856576108937550588685310083598355561846775666436422274933377753707050463952092188049431006124135630647633580519739637552423509601519244232937429041098608980849015126249402386193787194908006223682718786853855365399410546087100635578505011199924156350325307819679537649978047684732222373589309836323928203259077837770047701358862720577019087240188966469039720663925389368603293336574938141134133756197256549680592062250026570799945097058384521324856243683224375887506552785720384743121530024524992107305661280260614566451301939223210160738941234290251154949862126576288546844288037468934221547947566659148185671661696881991921181508957333684040550835706300692364695114901100618307703956258381340649417300231526757233978047414910180211395838529014172408065218979104348699783057210275072837302898304797417113721520534927808305944927072376995449466774489170885077148652224842772499237584264975270077215238114348167706220509331367303419062431661758555454472293989963284072794721366473799204810154600599125346244480574927119277490186026400519669315786140806487553006287816183560363262045364654965844230479122103580302222958478906343770734092925638191710918714142617352205441617924841423790903927806426753478771104330901751185629031156613817649380857352869963068752117057225559842489986526959105940268706199483484271461019875091941393254123238214914311473775591387120607138557588479294755825125567280105896502026475145056470690053204800256895980696934804532676657252504892516932761312286843793824294244765372241296286028796812312097644459526040084095885520132333084183392310039519103672055314257125749065846429282098453978313611276035808061156792358176458649732346735810927438029884467189619643667420580447362417514647096550584619788177257120222693242226873076097856479441827295099881589987617958902554067390603056126397512055096592386050297308150496944816440348439927751891931594377505210009264217577021785119238891356817135482141318092619076563216784073997960188522638459633926108642602338004436499076960686933133032353054913658405718520277940815168620715072503972979837084292665197060389353785702569712086096848614710010163452856336680664235932415032653162203032247074150849503012469679946386188543194842438865493448287726476669136647691871132720498512424897534097796878767150588026236237722137536312228475798381762161107376786907333976954302183318104182909059404281390478285044650796772619565429470361862615306395000820436014034233453407856426065714589486073359483551462488486417886089850652046021825824634326707493525457402125685575670047009663528757436355218984182294240363885158056784296152075499376156962510545186271787652063247713752222266121028541070537193127302685010373819038433645399200496157426749078328604211266509816294282200785801370161343990435727896924708533344655314216567268879511255868427070316102037489584124425802918048242332519091953110951620270609939321329691741136558112076953757101525379095886317879092065845867441212015730507825145414281968895867765217479006783599551112921125208934331838665389707386806391131803389054072133505005174005543616696733449529721761912251176132769907710359308316512198790620135203718750913840583317374039789032100075374473057831618830729868402905506740074836575080457817682428790529940500127379007652874151319274520212515771424290752712202673300591961371374810128824873412482587519202112006591757210882880240805853683135204126480446758057133521304070213685349458173793330636052232816594060117087941402400648643163297155655740071343832397478745326615086213884494651488644736421323095978175780588369685446279500593941414851168898464578520104765472623521834019035003075984531825626990959808725460506222117568277916689752826539650842058746109029793529458939441814209958450035762687758114416798977391538497507360629461539379170296708038226804001375657912352861465879368150525272957104009817066343074990304399203564850237324196948985286706419093844380274547910108281795022836356965773411923425655481616460698713161011089534771479645660707882831664426655393304141611002591872818368689407633931562329757821001846374156528054147585845248914753467770665278453866305618411285684633024934065655620047155906542601821337366630583221834142956520148531815871881096879655043398219013729962069762592082695755093474297151264427342662813844387892002887913134155867647103078450081492212855815409674138319180456767898360424842615568464153044450878460822195359804451424885411525162614135032507582824528319327084551715231329077451032053845775716633492698113234824575885520170299262052698883929955753103047670556284893752395403248418321229901669277875439482692816537270896626123565281523298096333951778744095604489054196291272473704483332426645711979544805890990860235646102655814661753843439401232371375203256132177365777876024922543469078525959638559465412395624530350868314667077031210930925417171168245115184815826448376209760988195424799535536459763795995546713285497416627597689157734906952976258631320806565977761774977957604562921363012742882823733568498862448747400415771962229149405808553027272111554852932534070220743135066479480436539809512259359235240085673118876335433522610933417766641632269615618556846712856335184205201587867396950702928496174443002113992239510717381601645384201295235173846317553032561081881605251559651461164872343439677243666467828590964130848979927928656313694826752789501523313314525202862730909101345745383574448460225038041818236928257007038840987726502928871540997476674734069005103335909069952847489364959151003253895782007336839779747852479515006497341249441175216155139451995038361364619813803170965181665847589985233486025218165347293843619246099007177627272524071292681899550364963341759358426204677050265320343937367031540956233844422424468893330678553915834229399923863275624765692901253059384760622828223205308706430358951996679799564605779648494888042033613233517009645922778063383989375736648545161825810281017830502150468526800470212713812727252255010211685349636407655969420855508853179166463596666356604165426060402465119958761323544156240299677805549261452931218795027805276678193478839549579552403305488482988009578857408640517802143286156587587811359386955888191686902931805117070187520641109206576385519974980703896506886530113140209655234465643879667210045986160106698628010488994788520470319874101795593842455605613286259065905052651234788633191504657217080013010886949957629554561969508207668133892919801390023495833551518285879067519018408700972597756183996267346068274641995630917401843913814068998854359415200476985709217040932032787754021125971752932737090467644924461502523176074669442180687075798882750085341841868999520392289906617801845343514726940897298888559691336975046624589883078146159522284662411047976112306988245078230652574208699892988165865271389585798930388759055116864775117722649121135980554006462607569859128199737987802092021950962213643776103546897146054883984162032650792042414274954551376873182108271956913659332771945976397307416921948856779693312103039003550303640172410284145218739108508333552130263058224509128926461136460829248520619108295963828801448600035016782219574529700420855964193849499110844982173505928844301067284951264101660881941192160757169537423791433904395614750231703487587975752938471385749754778761233017135879439218445839734485610318157958922179852520736067800504127404134600943788381700024264221019812045942915567270654844325443417930502162256119961118454227985584854231443412041046240907693884134833630541566509095017963515520188990024598225294194475968007272901568916328463715937088665613523456005203197024811689294990311383100275266078583932511721192284247428796276518135296306960031763920836169620260009807468724087634962639234621168211886944352873644697064208343107371690072217149842010095210676133765664828423280422133490368641405211339347818562231285591315616762525621587732004084268273568086325952543277673171107687035693733381580795534062619261104235359103101564586138923934584935998586871169179603438932283422969220204570163627076817749204463450638180632472031618676748977427710781077275970360562683132286704183904919461066747151475819031392727504225706864977794890420199151732346262451657238145931839516442686523941831514356929023873099085304140780666743824534572405878584058771990002146436501348288100080631545883316513391846715613620177094364714295813591972297276637794187439763639456296062859530893857403434617984296071734214847681883538139114260793843651781874860868021763464142690181914750320959262241907980261555660563694981659981930409017472082152048998214443313200086590717037435529077148187562647293394125735029630025021365647662108331042831181749996805095035052904682818045125009678802899299465192643058255644076463752742302185580448078162825393859222487986366321484942368692874605963223009787665058065400851520669917783738042357475426011164584040071785389106138575980477275839128243693754909327269877692476620262992409948459921934199307224966956464589261693697651200999866885273303185631881262687899516114215376862356120925947594840926856821901469156040800393353128300947967566002146987843046073180788927251911530122767811592557726427033395309555686968426185046338227315637889912712085137528710798087079317053317447136785492092341030032813495075347412964412972397740810453605689380724831602733767024882632211555008557106296162427778479983331542393329733612115373537306353347691523581437353019096817911477134035793411891346575768275999976901876999929103088130983995971710707465570343515296819131858848958914612663142738121230841316789023892836762183878439381786556103730744238999543188072388813677914657631493419065141925583764873135314145294819357260448098342429748702208849069310118826218648374699247923228497972242560808685947371247550543989199961856387037600474213253934499681887582130049011232711582828078451224730919506690071434781491785853744548773141306720766836059951884244749717212032855716779574418040439248413408340981982482566548547958058392188802114807404549024620432884317968008633222176771104792059722985246228637538873943625125971319923567737916527307719156476763239140742374283050653498867134656869529031562862676150522481208163205910455231758153450991584989469578428344866235527925628113182240826465553615288683798865433025607144238457052899528509275081528189601429299605132763716600629682987700703370065830196768170036664431696295486778877915387391449727389151475604160825356097257476487211627131326242516112599507563952761580062410003503980619849304630428084064861007646573195132043742484297432062170041063054290231258073048539430707929836610673566140873621710209423744020956943180979521875984958120865589585086564219489377326014198344055089164956476556341206511661452853534136082968121888787590447077978575308246001921382847318154793058919296774014697736400730378613354566744922523938033565240474243318527512489469157622612221339187062607254343067993628325419690245175734341462695147803404374565895674160726599525981186523740923048862273240982111004970088695900393482969498134842639216263116117016720809111924886872455978466992797595252231034425205872630950317182280022977069875899800577844612293192302799515631604689331815486950412014066215351838839272019924817650776277056970864477814292858639680171283093218839065814176047616412836279638223461657322504939792992350007890193517418421212132683940479138485938287501103808369269095401922991364224274621224629540065450104685304308222634151578849042325388861329795300882752818830017083001028810900859362463085872444785532768319948540730856160083748522713712247659003667492896791525176325914783511614704568767373912755670271745958436267333203552587276257181126389942182540935232336994499159650374790970883904889185465981781926410082902382564544747330975717232145564385720264071746292239276297684851872933391116338354443485422050885288592556699309159082030898449039618731378408947336731499914892866527405607192986041849775482264381096243508998935821388825469936862235640476291473641652768438942849896683290535800440562120009719238098007697285702013676872661674969116950719922710138260753218860021511637928977820423829063877964688620745310068809408229649333706686677925050797406033452640580407725419074392831615278315770634631503460127760405405242935677496569146487581163772532269127813073043596308002854613932343729765198796623587436706373877439619786540430953126471264586953155209635376875411050802552979628180000554365713459130011683200644154473130367116247800926180073499618272180941200571728950021525442144468124841777909252426518900862232252134883868763694128492181102367191050450303649150467209107980026694709584216750464598667524587345141708540569689705224589665846815067471554313241355075905448045132067966566436489203080203804663267879973948248962490830784225731067577257384671051707438946823180994841284722305224172093659912332375102164258606448323542779938870560756537659191023649032296198677041154543269519078468961668958324720183988098077635018505608163106203684207188338314742790541243473572730112648237096604580564765929277881174567311868759488905656032072249848906184688837044796343178402131739830273206619826617098532919291767003831695242035802953949300542747425623046658433827570944487889000135521479707199992861916619844154712305393704800835520502797383896715592753585065130510784808307910859262628503106512421972477927543996447532610183356265985385756423944936352075135949933122397704248968405104303900543290022742015291253202378930121840410807188459935227150336309734771188601013829398928292455753477174946417632735201171469088755340139477309772713672171501094050886442363465081053598696459626882943166746037068493727344834712548587004248217048057318966060338870453626980686692164485232623740108029996428420791147556133281202571200991679717389240562642272839337590729170375777888170886093690871267697568157962378407289610426197674613683222527742159822854784835064509390010866021522635326428436282000909348558837724794094661540608853769512125409265401166895081483047479931393719250561151778714978457979177704775057347919246507118100334663223238562790422722454368154987284619133518921493408663327783434434391572652097383706126162971209888263014034658048812770307173271459896117218601575731130122993102869508029903949005262011605936795287021944392523867678197245885970697201616152498844036295485173474329393748442752324955341259681318479248937060520485765029540756460207662023635535231755841142094756258804299607408931017155342064781204369098833435837033554859428851617641043116886722126659925992977614149267615113025948018054131990588147150617026075519434060764422805101698405037067455237363004274496409622996035019721508790610086987700434316648480487527331610891735932475894262464202301890248568461635721456185387260821369351446343619437419519561676541573659642629933909216492830937732199469725470423450186685153552377988417068066077695974272563316592100858453900258891639925035132621894947850056937578719399456557830746408805906756535045137833000872599457186870849471883445651770943523225498390491621481914210284163467084900963180566609699477417301028970225516796696335493196497152952543849294869422824325331226925463682227621344293809920977691925147987292461467867731793128967153330054062858795042440795537594398236786402826837269921940673359346526819117800431990309562016670783056055863223838349765203952540018078891161494467072367515175042855873049513631104276155156912090849518568799959088604632765700079356528706861419465184293226694751692109434633793230159147282793244155726883215902063532246986602991746453159277034435819408757544742809974469245147035398752713504202768352557455072404739885248130445675596144374345591663994805095067859008227862894859765258361174611238323480617769457554301864712038087063811823001346962840149571107986092059290140360527751167030546489747158378069301019094021807514952914347928922571462125276102038045120195285775267171933671860435611397959431256471922884542306478233815141584245084427069579847174689636191277393526168778644045159243774571300799843002735880591753263644949544127190427801063223960259769997053791369901761854668338818788038245061181520337086784894377716676681936594166713126283116452984033398588227278102372552142583295986210974531871204321799062509136253088026186819569380215917263085431644543605130641501219008836705003906475005308140468832390789791026611277704267689840831662456107923120893303861441214030876168429979568196685384318496880879432832215698008523634266650625215348320385392846133598739380351382607644202632335664035079826120488616945705649769410758401066148576067524597480959560335539331826574557642925326592323859513305487430706437796772278592066828369062064960105050494008032911462502407730708782305645173890275480293612841037492754999155025296120736896413164061000155190919887499907952245764686083314423949002931101682649536422445654372543233898186664440835295332419843334338436478816246950453088435683910726342342586196357842541610858608107845129290044707142037104475744965709068515612599523134506013867243656108556967642188375298558156867897881920059655310323017671785115248131797561424761661985232896206592768895138629519576590154933552369976069107520733514613201406120453736421647219747262733642417267923792709100687855323959861260490465868717248239664241306384354026684238215952220520384024954781729486916051548230221769496196865534997558962661449073762991474196781400170270678036783626222137332480128381892094694766323242538675114516411038861188785946227852440359523395859467529316975154211129390119169882227572643647337990958098752186073514866225806352083166085601872541993378380881330105028503112021251625129583607215801457019633442053170020314238241794673811023380163225158310210353788136148895733108801361507316987239378882594642927559582298634818151497241742671927699387274180096033276166871782600572248355076195308302715401772123802208301146608913705208523757886370807909755334755330060086074937657454321139369364236206629088255471923864495476009909125342639319640683229681788425595770248546863915307360175278778277321127885245970244681210242798508853940458505970524399279544808036820492304546413961097795739992073816781048285735857527580095504785521079199745539836395315431979306319095194598178091302836035423423248191467425670736131606326194096391477692306335132355725654278549331907417393021932213891229920247392203142445941597723739698647046866159258711315934930947811340036586977498813695355041553796414148002720159044556070396716586007062072593672374307089392257370030805786960667765628457937463232717797783207032763060879194525014821027923579733461399196300117181635698877056905038926037951716602406789464515456724218739853072145664182307722778898365284459692557458664588418164368683953726672872028853979555086195875952569090431972041766079654347791255750112246687231639845022410554479845031708196007557908937823480668672865995482942919213458944519192492945619183770083031893645680306480942737289841579624477347769289521128570706145413153388622263633278028189308170022693800086499170685322020695353931719613984671495167353293058083416228656047181191335937105445334772616023404357622288660288254318351338609709553554226699798364992216056274892378920528379497393157410387438105987870405930438856294907697770904728911877608269065205503302428634118125812144054766898916615081367865182098314285556171029401046961577797804655979058575961232961540837477584023766409681680126221320354580074283410343591677514177338169935977301237139995285862518139809688849233437604206339862161170559441423858526953248994020929469158467885715839111596218308233011327621945232645695405952232857415886673195486859944614282134296123362106511952971240373927606405320687287811149193919610444061515744295833276324513051991185062848225811275959935226170952956611698528409563895154802014317516627167044923058053234680037221151765884137933603248175310272005480821698170824835225949348790803922558016614105241503042448515734855046176747927283366572016154354640806119208564688346771301724812629056596941244151782661557814930066849527247930324644704890918010934201597838309833489699654226356430848290752706538880340782479173272659819053925918686628250061961555917626506340168882561799075340790222187832265024645093680508558788774454737212936766343336855355690242972771049799027331492356082098469899459533814347965589501417776315156755309013132203012102868563561946654373865919337694784800976285123348932136959994189580122012856794291549714227732439085842434056268027083167455161629357118393303391866201928569850120240113022891735296079324510963582061042386991648056736182836413980474296534928773855453462950106482373367793833995946957020986870812755237510524367006258759237943361575841211415497867888953689146490544753837439177231691808464074523895076133791144439735831130317138755177813221832111999076410678274268441566843745949267479639149440266520466141376571952195249355628237768127989834424166309486674377168039998703070655264667764925265816182360556562234960214813475242268677970111741323666944212080978837158379164066590773843746373646434358773363436708914273593095058792899452820006881120462261748800843734309054588033790737938883737134763140268309363176489645948355456818988586252784305992354274613122946156438258870167354362043891841021115221473971199104550930898275557411171619367143253556649004509236618857312300383256383846027973188467502299504211575227771632609588761379501923313101428794924506228906463540251710875178882795880865109312900545103857376939489303618704808426473638172322122160940544716376082827189565776393011835918141519461258876088858852953112564075827101284135218868134972108917761858321222543824318045528137716655246592921948729732340928210354209835688896101612448324721821325624042925681871301245774993584811247834802026569388736685781468247618841149350618410335905676420173088043352510171001742971084118675757038591218277141360631739981220156476827091407666916624505020378326712251547181534907074429170014591133746553363383013960914390336555853036037599825537622330781751229728442958874691469445650837503303321503580224264348106658926740888863394109026351666460064254405460051471328345534079150798954525797464970641424592968367271238366164296884192699203646923579881868278424548477196607652289373357179387046782854076513427517200763295706564944761333808764057284312649431900795648139723826101174690710504892857109385043477007981492243351150041698960907406136408121106714182498052040339978717333980210930323897580818171637488703302947273866051137331102861486849342391327908909833310522471672426960058718345752683269648403085285185717748815880884914958869194007150964406682781844477768817855377549082965621348206838125901671027020370949909529341090736885491600813199726369904178358338101851648280686358083771646525835384484047833687401937696873468910781128737310679241149291384593156931738835110045226219655895630356600411869502555611783935041918117122202007804111298803035345681055629496756568318037125334861163523561328398035648184281040927875760359660141277563868633079398156973026527719677684622598017036650391253153465372673036692715815209547439685029764818731317433029808210074149016149197622616582074090972380630269057333124255838985722415272552241830351133765691466198833620707304226254177738258981241558812756139815881930558103059435624501937726187358168748341012782895882469041588474907850017098504027956031176008806458710481752862195105337056763243379921312328290338241764853927755195628004357289326106875298001705046953055002236209170780590375609476707604377540618994262680742684095286258677153708662512168094557860706888067489379607366777088167724290155138698940677607787040597693755047902417719996404737509923106163452987815704580140890049755120080257718714640399550643686836134822011607877445846627471579357635636764914946514230847922862335805912070551424967295965044008620156521061471300173369372043860765846197339931728276047938225265610153559447541412384565478455419116442343876557152396445146916112232497778270191660002590559762766645943791062651870432199715794052059636627319519479731184176427246040346845060434349145810320390930757750128400737562732523069582663284592795759957264313376294816709731406808852862962177407816531004523740546933154463571423986099367639355380830790432200398486100118003278874215661830316641570670985217120591006030151810361727174941844851556484869678110037341696019308985326791426823783025100991348889154484046951954963657418426475055887083167138777329259707072833760247960205229747081023552660444241859256579300968350727476465024541384998549223646072843822112172581925328047057814888051173087477646118344628828957627552954355635662546483297710111394835064465630718195030514403032981589559945486683647056277815722231338847304941104029828059907971809730098911701056430665719211771924714545873655711241483509559259394632320797747085128425458335576658023469662575739394649724983741728662087032355017504943445735722006349556462183135832169583208264174577679719182285826708529127420962792778726458158181225742587962696527993247558178484512785154025132700499125672415080532124907126712222934669763858115106486975875991480365040356692783324016915304316567238792064793733838625328527201788938973440261312123404183236618921782027460065162377821445118625107639381747519283512984841377953556661615740442383378612645620101660960472353754146159966637135595122672664904913102257083386977221347385201014974854986680407152027536211381390409050390708764180316038701314762811934646643755323076540652761073467302185645988285264379913688775111050453338321193845935832391152427900052370676096981640196602251792972042757618765742503627433678160503746073430410340110931568022843930822314265693901370788281229805437952366579823967831702772453274479120267171149079773003137673363882719285904383092043911636517205145019492074811065442432337629755800060728873152453881342399572903591827365834225338312410034042560133174378082196911704616322739430612548602470452191526246966624421179950583595902335199597080619795756212068208715896466701560657083304706356917156438329278000141713676412779517456458308852063795906624687707983881023257292112290570762189359433806387709320482823618052897047137862817866961533109868053083150600097231211723348718945263064085560580690742776898724360924327348391144529203020785418280750794053568769497690207297907607327186237217297511657748247648448872234857338159175668306560790292825745105048134113734035223467528045304808600027290622875432526823666806606033511203655927079314941227873834771314230333905160957695899410877814180700964124142255985208124020725776518452260646866151461418889145919902913455591512829837606303796165722938738848103648435017121660794787524326596918806161586777365597736487598526090284663920212079430601164015648275900387563741252763531163931050573901959846912928420188445454542296569705480784080259941639335030892437112239376481837352198405572241100759678573982851795732364955347985789699149305145856649015105167868492778371723529518924374679407902253138279271260623145455920346800596609015209488564843380747601035346426843039886797946761422057442138092349195888007476039708250975221742213277199326390049107757602126373230493225823482234513486117092428644024771827202716928308203384328628992246722773279133261446386295427230930574047115960210285563390567455207860780068299058546134581465903882565650788876383624893204200002830303210859675035286315476329899330977147682102077888610235557069650002584995008133858948748954754969459889219608461910528206989759985328777422467640502078354151077090078087147601856863898097599119568530345639612560773412084681295257389086908434435026063069122183399788027830119187254479063857866704006319841857067218030132903540125154107844119910575343489939190858295329397673312009748257477882468663534429359897019475815799307248412158154549438927933163136420576199399500404313668824326743130445443722654954518513175010009941134540870207272464678354717943892856813664172891874868106856050065303308773838750882251952329929362944926864347333177074804719677958458065348199921422291299028911597457957750630958575179163141502690274065950943351700896908081613708454037085391605951432143265635286486472943511295379511635047645146964459826296245327471973224264242525697737071286770350646794699047817038799213894951172967708966734929026723466552581846743506080475388056579893066084685613444825982959720996645133947337191753853375492380056982758500893319099583615580462420967298505252882516161083143534477354930752741545464622952498869682177482860192075954407608650487936487155826091095121268240436218269604307599090696490823558285197047217311012343737667083533456505344570664763598901695744850469725458241664773521680901101853602309654669041786388236877606057019176778918382466677795869325517521803419973672184422965504722127090715367798646854054727190575813305664485528995757932142377141637597583609566275956313122462552622377255151177081151297650149394755736715678569431197953380744669417042196869692321030558808187067314403107694706632435141476382755435280207809266259108439237256185599226375378516850609691701939432887472396628421856862144617439589383952527831149197994216096419623775773300320848879178723575699846968309425863508211659181401199678620532962634933003743358766873655080872586045971894043002737099268441991214902381369797139408155680329843358749579936934974230797542354618879912599249263559415041295041256469120191513625432355270409746908563167222701271262847922571142813068677182083083660545745486406975807593038450915647630499398354104028518500690721878682377350172357914008609103455551611773850619388809778151838621671304922316254463713062866333157835564857109908493684263108217276053728317840220514773818901481030468162366994844359228481293286168190367341510754121277094117824543688950925369579056022450952180352550168215755667442057813165225732698970744622225961204038744223991165803143490408225026397787589781881756112677814557797751168939969138420617069473410523573164675584485683197557310750720526448633915615774751504940801781350698828341369855076059258641521530754712455922099286319401208663803544117416613257474560434198497350560822861416203938208039210427971790194612157864895890055984653428847245619830056647867848491185404336026290858732935071985590659152952538710601056802450576716677000625824930941024080497957465854860694460534279572525973269452263485198839551788479168151503216955437443187427791616142050045834278872207464640656202332251445231923901216053435918815710877437435646951638212667051920856745623762900476981490679764364619024616020325759642688243098311254328787090588621184876088250540384718825757471238232146821245197323788346622772675128303075980545679391756202711565616466264276411715703309531459099484466882846243968740013482441775512808859090665103101794668438671582305261039419572854158153278596576572686757593633246873630059941383788239989873297224341169432655147514480613349141904175278962762198086083036256292086596323337434074865400319503509675249575084458811089362386882193967834456182468550925126818377222246281544088018046880150303734204755410186685803697894874924368720253049383544265551969985347289452039831957642191985609930805527258702785886507467904190030666565034615298388221846753976927383800506655687162722616112984242271322360847909552518387453584170403240139025086276402178543010827019739090456891374291670798054237239771530632477466319870662472708653439456128509130790951583245005375727713710509423394404237771499229304669290797500365174943846819123392814179309475492963321972474789271959253214418697136455384263690752141864187995423466153039124838445825211952491809732970553316044809440292182117922132812243631557934623645632077617935645818890465552284233286043522300582461201451577467726891308561179927398594231882818176542338252576420387231424468824469023526976535309288312578716210607384282240326285958655010595093292810597384059487651446338790499663108345721813679216175766783474448420502570866479711563527660580157788111361311257528102054421149458836761376988548810814077257132189832426642054883528987347007740202735490162810240202298533611754234878432444632095822053772966044981808497998558895898005826142776475497289139172651512219820599589707576992995691425537436734697514317707295908295903589320505321164076012367622692379323457674872800103471868113436206029386515733782737819354082192353659313129072717579540892114626035957036049240204817454178686713512338127158538413943686634038119950685530634256631569684390724825686790237173163756256907932586814826459968287670840632796213504882128648588544804466263048550929548320547035943074161067182396798001148028583274593035689159852549930968687893308351855268714916959141303381698158700484919470167465957655099768863508427598448162978809416673600583098075379198835369340368317796895097612502611584599725799382779406193196080774426194022209915913878664276703687206344348351262785824137442619128500075919796426656948509741728447448725148690929488958261556699841859048114192072163599762378429071321396680825719228467034992959074351053144869527743256208225252332637656911198482193936780940606337179321240591413960584313732594395881632904138999958662227442479684277501991925365545004291829858267239190330203985389620731858785705514128405190157294999459226201972202071051384133939333042282210710038423817900273962687473184025673719817953356717981794247429152929087803343317059401281563107422955564116383059886098209268008068126441976421860314075177437535102378475354697611239191344821737797903866160438112292835848784253935935408579330293756078710571146145967634415458149474427280210892446362451460804628136422691748728518439792414414901897281250181343941188014925896215445433746508339623483424149880789221494012832509424780715881761674791645685838751646991813242052055482497010179861179465581680649325632894448933703249551128816827280282720504487219431392072610641355350674133682179542534623990069711125206453184985297191712849752164923914032269196375472494472182675309048076154833252590326609909401722536461065475904166004807348806343228026951537799289570967270654481546333469435382006067573355379411701517873981183490837362002304525045735958152257690450576967115269364383669678908384349135960552689870850912981096698286964466950163313745644479157528487333605836449113596392721241846960827722861411225390748719060179298618942854779552571008676012656790038420533834412565905512296937577052804033256725023432299808368209771001200262632318576786747837417562085502705842395565007296391022819303394179363643835629887879418862962148913116293261113602078118016082855697997277108330358915456889006218774537902085011092821217269037331009482862740222980851230559708552043254299391376959531783755869871547429034393922931550236251050168888667573416594755779433514959133271911956685687688982007289713428550013883786802497507831596705450259981442108281022709302008367592709710279002791698676122069741439326668929289581593875901259070977527255430390714102405054289782113185723050421605784714615219230943716460839182615498946270463783191279276711011405287122372833015975634205687561682826444389134310053182665558508397392186167287993408047577209947721613724220245501058317963594629868689912312693131951972418600214314286031168050078156941513502528838797531324716470837302813407682139778802415154481670889391677656735442910536518204290158250242149948544514459403902909889521442354801066880586855814941813093219860013308254546422705902669747839029548335576260319582189207647307801884269234599416262781891480054217013853420285800693408232546175209128368406514845909631354610731662520706826450465659730455570810014313604530458952832023831496678929022025708861891582431476038586167246594204354475727236508110456759811916255165733876004719270088491786804530476769915983092245455351216802063408090386452997879137562445222839934103403941659446682207586573315008820352421148198127892765135099082677123347318824353791875432231733181091539097672977311736298551069898471644579359539762954240085632259020127728650546210654055742260240367370585562014413839188163266167974538753401762529909742051662093907931582777768011147309664069223603412827282132664464262560719403019010485001514133536269072159950780683523862640680750556636351393016069634283816608425150682262170651085349505704830244111622115336066084241527014723928996477208363043870682130924040435500299023025385835340016365255910264825181234381786512637611785030143796994727110663428551538973198623721167787495910832498414303670389980026873087139356297005068120494192203991130672965757188633916648416484578976179389813649422757692256749250620479518325069194599506548046965934507539778247078729861070878085514853477902579099904176104350928385556351891373044939143842502404742253093953016065655488811977070025704594038745706974000798646746322489410545498807941310248939776154394818663447439739444829950731082574380849124481746065112461446193409950853164239179581739151054200523466994577831264419600998406997008219032874065851909873427560176934499132640260398375681425540350763116600001831057327489312327554091248320962656025175411348521581925483186783365551870340247822918089226582915463717271086053771402796631172073286811567001666235074850494349643992089378040476414922603231774408122745236052962964881232048485480388029802896157344716332509773295273832394508015421432234808710655095300175159574028053792252636971350829899332630084559840587503966291282530909486398636100557397779269869118601609635436819751435121773332616948868283525898616389117123295750191806531374739012402865859221556045274587181059517072119742909008370460498490442600888134979519255380649093834710185876831068850393412770459635121347007125315506972595581306661298605273535027942935390324446018112479404981443305541810400069453776067534519670344446987975652169162178759309891480327801719077993644406091356039547740334450989865187088768184284604180383190623231109824200160564386592636247319669149597187784997384003868964609493115259098106756203329475817632193157431136655928151596428090979930561582620559056827128988772479169883376253978641001815202304770806210106073212460245956806841204108284469002678605478882705116426508204829313615347931467477768990685919314473518605238277745378615594392767103068234358283229947256704313369450084517899583282631195420972816474185347149160390382298129106464381735745351989414334731712293717571655406376093384654301327063774866340914619597838236359495127406966965952488681481843540236698295774260319626855850471533680081758578874183532122467139748808232835423495805844933452761367671269104419766949787354355911428511675093640643569553013182444573534952996224688451989404984145509321315248284956449637135664584114559913689153307257248475701702298429532661909575212719897812722365230657275258460841457432316592193780618067414721382387616798183917168200756848856015647506539820393031242537808610327641543882445353386082794737617710966144397466796847498702711383803928869677530531169396913877003565811887425471218689226668027183786207547613720319449769431348537848931519847461431765786990052778150613633763054516930289287412386994828715198888286015533709158316741861513968652088381866985993513973104412088120407609367250114415178264078711010606541326075015538810742263487954804748860655811934296437834918219195101394897756258248583073965718642811289952563939904749554366551962096480397856863152718011286144617403177479837911268918595160678209114807494546914197914374583148601446546958542524652704728103091551657729761593342959745860667664407972500283783137716046881907438845382774641095875748557686062726172175393930044384833847301535717008064341317383839318502080293362495665450196859948732830982468064731009105997829331835230845612279235080640704551031732358856532759302312574827901578216437884202066130518408970832307381406930064457621337191516746595105248944567655972342052476882722452971331579220839963333114608240083185684476054022220891175105670204260631379001205849674388673133165304352442134854114052912711160260688174529154685975527909954687600358785797823367999999840856075010158176580197260044921554966647827101194756324629701839979718797510648328528676220452604123846330345383685125127104294420078806775659382828117390447877638327343670416384027720873401456156519165637214321902435159019510044177728192459343683425588502889876479265379110824552533737830982530082474015927857653883180285272245342821996293691909965458863055844207883970938864488378531526026985480439299212384371353491393460448718732573793670642252516152120381439458374144507800835566670852433248146426531871498125236286328815617052478911704928683324438007482856613230278746231548880680975591704907435323416793064333546817014577835615745080112551556390861384058625835533001593449644091208811608818909621633155448751582082411779665923373004564765765625835684232037931735138780951282713373137928525354776721836915176136714720076885183081057386329835884243934094400968294526924984241283207013956746556579555841703379413535132680101614637430757477986468824658859368350983631877750147376643967049888229735936018042100900013138602719880168886957040075176646719128029329329408141422555587637674580350695478596724737545125978416921839852989646531477873638449583884096420302985722345176544170721918593846633335467633583004436668851410887771841055842427390514392485389268845547451986576525666155202656703567771904918104788235720179431004156747374921466628023523850433991017653147189934260521179339819554291483970517206532017318440973927805391263805872927807701538432446100539176571772023672898108425978477150088746588704436900866247007167322892671839280248158504934221853102554027808336882978693054248597923337747830194256062118468725760265586367133949965867584829890664187753466566647121684944758295454747117933606225262994327991912049380344067113043633963349439446828840139363806297552304519685981338677161471750397381980187929535004704195979093139448918794331377292540611535679093951864856867186568603932291233830564644606533975039940837788608044898535210462264738231897474203781923134064959390179406710432914590215419361561302281777135573344830160097519759088524275085272643904112350161449844287119640990560033367335044416129443566433185647328470442804864660311462060632202398047413552389302372914816946854727717626529032767487028929717520452921504188136965814789580169016029588084580223033222608019026644885212449136168243352883150799035290676875835428504615603455559301114228479517427459615985285354629158021027326993818190484446581871841455440312764205347549841288410745744414560722892077117342595681696144629514163376271872782350822516882471885025934263445150664502871619743925331571093316515450875176781050709935468051771203843075107414804593830655387148514368627337113387102292887945672025813047132107576768302079334089542881197794453025843900440614196810111369463960617179253468125454209645083582343361108148795454092286791027923488128990308102210552675147901755513516555509828505877450694669792419701094615799744537124463433596546058997592724666887995073269502410397070580905598402745198476116669582044201954341293760963523206950986178991136618067690996114850106611889434827059408770358042032221421910069636358287832044992641573224333581678822114659576056336184785850833746427500957053458343816207522204171047205916034503531786813480730080957000182936281762047176306921086174004241101386244423022229502552428803052162262048828049157885967411426805433364231946746611040119141437462253580029497635466253207510207794143864428950331373994583757167481025849854136838714519431235082861223153391511167965450159413905830854932095865717428718738706962788477421284240003884323029488864181685630828672484668605184397819287175444187373514344508870370048013503783585704111009884541144334558980255381497523861140642378824060639819569806709583799491032265864204831533233997881576119837636140416955942774044608556800463596268962870371318280193858847598954448923798192679632092388346750015369478796590608141154840623718421547784640072393628687380550573899764776357283672836246508767607109698160523615439528390213024965963470602700619964657855356554050655454444870741856141396503934478593778628769422829300365046715355492362341374889456079999571679990717586952196817470082630578838452911529360135082067326527466695704130127956393276706216542520350907659687285145877534157916418756125559589301240616510118598210745983149548035745539954501736908959315192728563076061444165472232808671605505133169018714949484581216591377504895047241133563178428361563211362377917846407870306743243247263626990802342222306620237826068802598505831677539830282705268530638179952995311661235636682245588364329008856355040147809479591704087724428338359740068583297821729345740730960777705225130850139326143859741553841701402907444703030755183048143532680098918392680447082118033176544647374515135163336557572509399440166620834415235799259665523668805694972263209483298723563352113393050305416114014041755127757201453302574939877719448739482906729150922924411516116149006354921297607193379586686142498262211446139926494441946558449471465436999382520866878915367377452063236213722577943234668365684840356645540298982045377191899649086989738901696119923238076412666089190298119048495330816682583423230832065596161324667539606349949317841281945926211223168296699174283175056155038538341277206361274175789457624752614052474999013816464821928416168825848162712185578674431109879093545963132806227745692019439547520062150339375912503275273705734854909312885427622626746663454081189726113842469295627349646751786169657960763242540339412489001755176626870332495878690420828465317798964402543656396105585681740405271066835846119729553679979746103628573782955633184611816712237743039546227101514614529424727342289281811171377655857747696233644262745494675794188861085610521166557226827745798751890107742102926954059242504687719465726709412048257834932500318450888608975495281135455403633547619270596859465938094559335654778416897201457431755275860182258147786280447091726485842693220937359609459184617923780163375821699230883642210455426604781591599115316229364849929880890485201897417230459791250654701531335576321412672946221686326464663967154788187553506676682215556206326748164558107259689780425627737393534447854245189162634804296508339029781670237518802327211748962168026448389750573808323457924239634835649346972407316403980033853068307534034436366662702972395404399614166853602954393415850786115745322999449306504278119610392961883478865720214163480216742755813469705753000533248787263979738199539294322429616692084332856467498072307738666361655882487352973834496900071954376522912593287963421180668658087499279095995949233617702586689328776773236824786000486380687350948622648961246395353629170301944735156022404055173749722020126452804965974968265303058230308703422898550144473819477169504091637394499578431301513916420926469172270825207269047468666017393085567956137911358267275110994577560110269050128561520371455719799612414503221730080709975396075929274895948455261817100543647865799116015242033459079996157095889829983352613695589601378150617357385697802046796887751010746402953651277611322437498020148737460977053683147178012051957972475508597607818486594752079339171536700435939726675405563566281364166705028641419501715370821811499663563611726883171314873292115214400550218154526286618752118245389432175021589042469410642651783151228879101048522624596827587586140686391003236990377813420911978245686020832705849110837472860141702370166005586605172773242951435313725588233362251711385529820400010017903759189826616207016590240145302625832678753439908453328156189274563632141346263067971988754177206099878677641134003368809389791324115326844624476653314725722506158680051981625539287000376526695435262941689686458871262258543904429343223838480981251676403214469857974914492819760581796845095119341494959916599508189373040644990055935503101718929374623837147353453733409211360389351599955627867077169563056291728638550449980511330065256814472094729704389701688734808731646011922008960930115809951974023219935795974182817022281629386670601649655594257077747665806979311504640522714995644033638384935867308470011108404576071773501497541748760195879066446626225597985388413435964811569082969284655959235855779405591948759187160695403947900772495316012939191509580186062330466101684455555725313180154127075813652738941380379557015552008890548115508086893474370201569167510857630868732803600661263462201648152446953217419291112313603829993043904895949452553443242215818065043485700879737992309292902646006887847942660251154249124474884481876570763295954281508838542519425096982347705287634950784829307122142335550739159008302221006481961099311864068490595417608197993955848083079232608202950571657599035636685915774939650188456371061057953994120455656661749293276381473611588151885672832804690106950036703421133274446699416152481546783712934766951318532495422393492392535431602363254650275969632216943062585799853570826558908211448361102181389522767617199191116077122187634549645643257889212546692883216806110149530575300745935695172404636944793994632615325491382276629806421006211028723140966617019110933701125427409536760900575826089826211387581782207995231019298740887962663684562213251188195184863221648635691757248280245997758300749243113017243628579994933861825787183721353026720145057366969922097885615812987555411288843396680754475984451013528255002344946384309327179114785782319227461152053131213183531125538476707616455031496558077339049101740519833590313340741457242241487855201847176976884223889261465660433568848235222834262217955013526927027870411442290666750984028102227882841920441782930789628089502663738949465422077688626696271808409142495879682180463851534690980040389789365034401912280859095462684940024393936472546575237537919737103917639925257192820223209644179690261426621460883556906073736758583153270454396268814195736658697430147255461343094002653288235498741200607323769075917574687240514082754792896649142060529592256031672754849097775707120518166018235657091829056769649293937177759358070141743436990559675841606308041663647554897012725953584125641987837589004218626442242200807013984493741821942675222715640114297770454186205471364851271200076884412648619633450752949334137868468019674432446544498677305856105899577861030320095656443655928366428027092150517616943108712069752761892117358780844251378574778635440529178972427137007760208575269771278917051870545557031050364346639251989700422115431866718233829134033550090962273757622345467520160873454223722189101027567984508984713644517713111646455758927935067087981299708496421372679443827528686074372795393535503874680204183294707421175508798830659953134374524957181766952487238131311360366057530491423533513630692128754848681985070221663330539579752609590295928862509175428847220401242280839750211509978596759293898231500799624749224743098598006583095398636844318607369743335884992782046082399738061755277798941298658410695598693850056145400325335812118183504896269926270961102399315480980967898895090410913682399567469631395278369939023500480309535947854318959523529572762717924400188114378981966040893243163847923603700845080439622397771954252788033534344733700162952205737213814611925758378103945827467376501807304030403820015604832651971745906154556007900428691493773794926753453426739454733035225487525107820209816630745946380841418363333569315146172359809791141394287687878371547981741597244586132436209186751698725856024385130801103444159413732803023326041021683616564649556441374833213343095631564923873035712973541991228361834717613901522898306068032768016155786983411717536350224503008692449732357403665884440535137563674881688803897246818397300425494344064614210334334887922945727308504105443499566859059625960088886704827186313369696364124685265279397534277216367433530416229893114232508495182482937942563100834317842079181367012736843071816673604452711437319400559546680680243181532812139971013151014346386913767657920402692278851881593608395711399201678832968847324945305671921373087710227672687894899158022409910772495843224120503878827240728130169737232584034068733918644909143591985191993773276400016448744100141926946617475307776181665028402385133406418942661404383826018335679015176993173621205572823596773207420371396922794078744298382679295107449489342967849031233169029904802538850542376865899955168424173389046142070699173209306431205495828010659633833764298638583985086098810059465884995702400233313315592301449199496046722336062284828066056177720210773406063488271806806498744942031367013242912836326136823203763390431429520808054448121834905213200367528523899376592924172462650299490504876371825170014281399097588456521033202206726255534022593152349936380670176222541101543211737280062277033225547464031622892844576295835169077103502341009112949533875988562175472827341323518812572825320294387052443588600343563298114313161616320038493312006348317165369047122279462086632376588855813326347357769107137432991101906485042968869062226441676556934513391805298320150679045999143223871555496849761593116376778846034376284674405513310015309138585982973036039160315346969763116763800034696823470631878575523303137320888886513459266409313089304312190360512652843517871293130200656625685429400761481946053641072462543728777894661982208476415534954497904244829768178606363966326288441850220524447328979685724671396959711013046007108668750514362106563052796403343689577113452371623940482493513645951504948274836650821155067978829821252789089565009507684747759454197171800018497956785328487031637417974429487842051235327126311315147902270422196037469531866003364885377430709173360591240315305351696654259767914414057946306263849997149802215343950030943765104492345970732134312340999270924846058009385206281690008012743633025601310775867796014330487568474882653767744284144844570643222806516662746562132345805075375438689746943561213712027052204529037307503319760878037487503086527735668344202601274990395412746429557312395739222770938010527127477378982361376031941952883404652974858341044400813535085585873425207142030380948126525272521143445312257653886620355157237127146435929494193097541649600307667443751865009250112417818853496320159453875716186203599541800620724168890893715999771453082259661281814938321915046219392175610303178583783234755498896865340344061153852898441454893745013537672311311847808696759482410203164350209105387444216971399834177662812897405715408605475257566738808970081517288200761857373296456733132857052904265727471154114089359126405142328078630653908578544311466387106858188518653595121177344769896301585068378719009989015250913019397621491663271866381519793423585467201163793934894272729875281240014901952014568674299979570853904391742711273704298070396362104741707420255574604505946594537510776312912610809098855427127412014017422135968463520654972492235023930215915982241573491213312764623509495078753139028812499251374208056567415456848518554908744683777024973042358138570180396418073319749152443633860416320816262821982464154257184053525084815237030665749367789917310394127591092058829512197300031002216511243504015482674203745197192500112187146670317201329344609091390430827665955306304407341399521599020333975654713526726133775880700716567156798018243531352870210822902548609519610292144361551382073563300298481061541908521798097835165915190995460959573316242285892961579075428961828672161296538844799420562702796561096329634317096464507862179355548408357605969195609237675593687294007914808633319873699235280574792722920652554028580901128336062965157988419157152674139196863851454710373199499025803599146973432319044561745381976714284993579851421736862726849390166735931761237306173810184244096075756941392783810786504148104171710107501325275965787670167607343686739102982461216618110434981397719783749162396451785183595524849454016925551738323480425657064511778342910437720377060006387546349639112483866320080211242172120152722608502925828162372054636544486190101521662260029659081330378009375108309417675380662876045601077004058546563281552711789409531024783667371026666676822998767168532970298901214065496789300886173535241739913334345288003483615766698998979345889055799235385603497756389427393835792853783856829777142492019271935695947459230611570105493809620521532776062088921739059631548864775173507909453983344846529262378877336778493207678744867077057858408921080747732842646108515009249303274724133260597049007288455199061886866060828415106739087438996828905294276964042788023706921142718336851291780102743521808622020570502456450325390083660382661550448487274603900923906285680168753507079880105500183414295309531107368783397302764535698386282275862519651005065773737160176149700246920170706858486893360555898915419982515289371564291394292310091799205580798988362489025968589664600892735181761591788678781689363057572856120753722515731432202226376590810884314108217958128621423601973507214644004549503106250728346562618653804508338449224437288989556281163902776693552383340880591607398347949495145452916211719230879991931109217369138940213323884366256474659798202325336578590337130281810140742847058595255653512485705589514059553227745724601127125650102613946423060739109783781145996862503691174110927371033738928266900154070963028217493069148205406088549466046178206523945734576699166884750877083158859895705515461484635293026881743745374061840018511198034503277027080146081010808542775517243677934687638207033193911750318515240201471054078908060419359480750263159079382361892107260003136041384290867049740780648598018562069795895366932717096809501133711367033864939170800474245057694022855797863563708105148349321976986824690851680898648812905226162574104322268198978007219633984912499728519210900954959820957375078157252133562891053805554376597923838694552389076245743855440696883634869837690995759261116981023548229552003649696536120824978790983344143406527705982343068751862320498226024490919850031564492449199267742607276880393886200799916312765058882188247391224380474430745009772994192308457031822487770727701552963439030886380481224471735650136983698646625036184407813722590426808217840537574260706466391115719801933380351129179315867102785696278412199625952322616053459685430691077306644238872107247973181593526784490271491346642439798323078899026336022408322804619151871803313901430585050863461630347540782193095080834661269669566147519903917141272865202898724712911640553265305143838468985162435001769366668008208946916150544297565461399463531884568924072471987434946174679418688415112869717670370602856519554034962813888475223300916570868990552746660074067623964872529378472573287520312339758744558849796793344415805255797257044910247992096922621416686536002516732020740188491783467522493305875661862376560084419791037473577394276463345208129446947115547975037820957679702461996642232594345291995817947220591361821405717456645308946437885470706611659504215489532627399677955461082830303898576654331223147533001644003974051884922889963896022663511450664649500608215638930342588658675801883990271407564050895345809102817082395473519716358463339472506670762250489786131829766677849772005753769978368147017524868739263877057370339692701908124381368661701473691678927331545702526315307516100542577755831764355635997061088096384089505269478027747744928059985249227542453775792526181643327583529792658474447778850677533645962589375229818138596038854481399616356914338465502657452198038627863383461571910524044368152399797151226116247166451133922480141844141171035640024182036173733346563426720580771088071133820220768900600750315202461340303786356016731948828463055214274636785614088378636315662148282519967734214197293534497977444873982970774866755048276261904421740429670936910586484753699361971718378370142460589375227807459818889965649517306047240370394319041637806682301191279839772000735031458487669157189251672072140542741247257891364973556963329028471729556735035419393757875403976466583252630455987652184434890567478773093236817939423553489059920136465465821531283681963884656684704271093203078550732361111107923797065973173354017749532401572957899369763962482808069730748965915203658817774920247423010267063258848766231186281308170172576961081931841280192036096456438214574244886894886217949123794668857853237855788576239644578709610747126084825563477132743821089945634399068333301924650481572578149640186054588305772424648140673792771623004719566261353954274599153543793774609899767193378401866531146041425948658109059401774069060553466795040382438638882541070920728726425226814937665940119126985724271807187822432654669621471096159027602104843395007690142465272843890745119910386239473478343466179012194387868782798920950528114882705022719260985507312123011272181874532858024974933209242550249745921589476778632261632154975993258890633854237428485346397101182906829935370624941396503668747667631467030962543064145538287423062457555335361429009869651785603786229845021116566829401295595236700618591136547009656727748492532643059887856717335511500083277826213273870351097680072373577038691597696065956293617154185053058609807700362494131246911923481237588502221356049697527647077790542826299107104478096501335722160344640823906334847034636269363034837251769747623078623741168747120735275711127952630383848684622856586702468935028717503076082162224280628173761333701936515258531158185953115913437141304930193669054116947019043666031209755180819728232512708207400596138987403324702571386542689456737102553122358249069673127360351751593488063908073848337383473543463700242793890217963378805790415924475481434700648160335413099070748759110250047667351558860471293368554829526346378064317052517544078706168501053360746955854876711941668163023914808957479171239958240256563916634497318931574257277587765334552364597864904795655468891142355416698474012931961354357233580020784900803178452215515323483346564285317210901721515344400291304136769206174926676591775191407422441581342325461574581866942514187514930866135376787592509256425673931773039741173940940869653576516593327211202657000879490406735415761891628175261212992377374645313535712710366130072836475104197599954846459528954504537329051067756730925304055801857881519488495777738955448484708251052550218572098852870141623158045414863036864573690715139010570061206097007385379884206600107909596716083549631487833890696066365487384643216158487970400926598995592774034113201956999750399106947049718275707055256154775813134210502740822094131717461372881520575233916623711233094331792866060486112274482022427038891219330781921191874104905029552674023041844542759502495523200489649319065265550520783521254335971834643400747283696698806973075694735950972426710961968494573690849047494195225697590548426190880114420744722483773672138097802786374713834863234434564327476566456491494534776120567937282531569299071199461136221623186686248731062560088350997832640842736887994543283875474736958702048838550124195513004558447001749118806217815226671403714772408037848183150049660381855135293052071959256554724747186517329199440707536540117884377197490913381121298286055792960988469725739192952953100969032289468352488696066387880254283531729270775982171094766225365933609989969832139367323459827231909293799265736082926374490048723487213506455686190572505855129106952734956705721245519732538836067718364735361379536272044502112318501335606085668084254692969526080934944455484824781532708867008265920753095011534880032330163334006026313248718945360340361112278535920416184022943615344171295972184034708753449562717131038765671227537364010774166126275216749532195297982954006596092476410352459160297903563247654188087182060133276263572245784270243921197387948661551685830576075966875134586096255931389331674240676504057875209122858791665458344216648233804975136219895574750791771992147238308865159543441438293067812941127337742892030816035836234683879867925296161105549583912447786369110302759866251695002201453080905818268537070848668545037735951203859001969574440027972305141478694505922472508870372969230527716926872163725174465161152398941227472400481440550328876313144470961240466097150396741647228861734452920365496017704289097746117736068844113466739153578369190572555611729700492574654745495025727846179804998624951228446396364921022223336777114123465002064859223150605831298483224142703794109864656648687121893769356459960192505657585755242453856135179588490223376328239940850939586983456843727836815079675596564932307957580900807659540580851876802610023577703356086861520665617971262026436265417496552146918428002894658480032132865933531264339934480319846586272935963376368167832383951995503602865513345978190631136514154815761390561018758135653895829129098303787763388518530674250180556152421468793717233970046028829789077117497688056497187521475090822272985077731899124774960909599747722801282375421531930516640872969779414979277919175850975480074370460551729851647955682970297591270020833350363975991613509462124852733874185380778835062536884308723289647896727540187140248248767512869859043414984709978092825185124089714689059667392820229612514164558718214183297874405256161694464410776260115415523708919253441958352187391329025907729445883125090804165436899401992360906482026011151644041042360125929538605460655990456952091730817819419367387668291299084930058107413098663497067722175131911892616067013424087046152414064642208705288129855463034914094918752947256983947479628719298020837300942460748101442170439742919292396157868775514306985429716321569127251347143265387115694265608188679669827866589402327904410061913233269834429390998506274613450223970358549881075726300389840483225241220590919221148623196094617795820466819746143566882391749195573427000739068375943423859742889850720428662816797804430394050460956344362944111347676135722872541362204199224582306121761852366984154702508269998305752786973354100516396615904187322711945850584105609858537060878131393528302648250348895432526402417675194422932881636642554435167821023161901501112925027871835093872123167195443366590825040146097492418540471083602315945786125668398391762536237560918011578516374697050301334014051435848904033861459851035779765889174067536191096430745874977697657288399469173940698170559414685178555472425686206610059045817639977611302277016431159469261018054544247823705772367635039184822115871099689111007820404879940626535538140146568873068158700391131524219615574206054196376944076609349542861930228707668902633743901222189824259101406875499735048731826492824080375769391198600292133995860720132452816125315651695459447741746959281415055803990738425174306453811528525623860019143017563602876011494086405636068438186928487441115603958017890624837552153314614349544439160695600755058258157335582235257675722345760700191572325911420800371677167697406114358108829773478521723217036504792385228465236045962897974208433177834954632415705612501128155648821702723112095655271433738050540306796033263149550310822664703014071628509015077051256985557951529869393985329321444756791931948201565371399805631036302102812132169571516248811130955511513519975536251174716261152607412196337013671995150984122191651475605371599175746179748814130806062237370325637604788104650673461745997867921280747782987132436769513889276099044025349633233508183965474650301405506654036339119323657828418364744371483788019478114263941937685413808508290388162982865823958747118780558369542161472530110993015413571551643753684609626821563655629718935314705309387947397179341573565445907205179509720739999964323126324398871090586977652906073564890360611700777255318293075045418602733598686602480504536399433811455433700154409135227521955018739547448975651284132936025681012998356907613463319838082572552896455308703976547900062893487987940005346582528034586850825448226678337185986940202387555235633812928238194404151155954984400772937646881938461505940730757830727774283962003202670805563606688852064009974074494559680891678025613914803766003366081742489743625163701550546662852529290338292444996897022911176208307858972224532635038542862226923047954875372588101380693249003312405826887105113807227704502779803429779746756178814153283857819294640058586512511401623472186918597278703516478053802955480786663061272745337280628314340820460809470496836077577962884672011067427490445561371917025976156707173511196783423348969063899359789754136248738287775237217793293690752320299772351228158212256035829912947110687523401539455102245844189438544514074205863494119856003160067490575951019546032886239581162833561761996485577090553505542634981204356320901621184803225987361236895695455067090574520065816480137660260795425609345958411722876697147589914870031862758564790545625830518490368203887467521475216613562998837560797777738143707861565694551449210246095259937522729108048664833944632520493686197714992370794321933454328669925268216672642259529579774103586144543204134418676948189363340355755185648430762203562030754013234295268368893996835094910765541708034543338064861566923542449951837525106046375530113165363132942133594082123705206886946193411647217290388609633011862391937503466079393399724115018390536965593269046460785332993610400166722275083062693792252303646183694221230660136967241726754048159615698338422047432393780798733625660935825896283477341423538061939102680036224854722891597489494941849330994684436267068059207121698847382435414018519078131104481541463825921099796014563023439810198090674141614468044353330055152588295616681828971281851850047061092127544478158885290335363855351659583763379115297045598932111790406109815985474021232727989306850114638230972342580582220406480610224468995764173022020171703371408625432044599205602593152466646163806460454828833578695051879765444916659964128134774695810900355244708893142987882262936574998407508422739045507353229529598155257740622301269756512319248479493177321911956782353434084647651206393957199561381939833278353710313179665617780917707498880535083034712537937560111858769326300604446855789875538204165137681548202703387648289120559310703550266360124056415589063976280121201981440334884211579976969187740404656449311218554810431717657604148497901655912905662528173628356783245724748153116718153968071802692866819363313422429654600449292310386240727865891914312334216864364400596760475693719665778776556031393631516559014780178684395715985591329002871034496056211183592385266289200965980623783536060299901619532608452766654656743192746866610400464780969843728768893070481231366193380162552540551716758207847932224327077169614232317120415261289335844214955626955691156726832531407471166178827968314653698928294436475822772090321234842191674255654704141064274317526094932770797568220106602932839080446605096422012666867781584735287874726362770987843835839181620399870974486733139229705482198727305299766521745753626299713756571940352097736268890810100119994104059466957904568421213268005903055607512121998890553771209833532825562747168191599977029711138622871136555003870419696199035794585034843172929468089839727341958441150079594954449243115830391883763322632992590001054035847432239902793701600230003074521288170656615752404675331922182142792881865747621004164457611952303068032765485000610519543649172663227097735903205716944627656475914969913933352629179496113165662314100642640120547077649478346156190307649879602185338355875597156339584857679902115224104296928094081028961467968139781277418066832692540744775814476509886212617818384998348323462999465213370234456467618767769224245050815863486295122871827458791653689102544851510616690204409618670628026813974792366876829502187235923876981904187121673883950382710537868343921168726227305328193169414742337669896249594060492093865323378905400423739447547658092565934464157113135833053714047744278358656856508796795969607114109822310799795061082713450730700606643091927587462828355175898452588491173891073017948800713384843094192456509524783690903815217902852347305962612041854089987988199928974722463735531285533807616750489922605889572564536090578738661272499756891766451297636162828210365788809551481935047003845535902463950095305729995293475140799531985320557994629681356095711308893908096436581760700369408743084670682054871369685476863519166263904940578018743492223854546726190842788254803624136334488350248261765190663265339091297063964701551755298159039857126947825540813127065184482977145804905140861536212265693913833372398726605513603120220878706502269970321661052034368545090276769404631244353517030963211988068069294971165040005406947774251990947952321118383046174711757602375193679268886265090484399444107705218793869032416544348721362282072252885840432997553826338250629486588897425867593814036401120815662064214683260169881050393363711298853708039338789739154751555611880513505586600553718535083484913256952123094144453206108740308369552648096660573214262424317612595095223131171413149673287979721381741386384907023455093150861569076666897833062638818583701932797654901585382590196616113410227245737110436411763442040732272466040344676129135709503015030855675988107007141551399385178320545093334953470316991353781044279314143513459810706339692540856130406311883943610084534627897126551604579305824155226231126934310375817970847975661398872413350988095807287157235448762583723238417475244459252766346688270488643772524096015575616712124565404953952313932782911973457917384935210437182836227133543853464635147984619981259262553905702724310647934642961882526613287988032188149409441592953246137885489711535239902447315090685723346206109309358193531508910860989902070134919501442079834160693881777586668784689202744177389269514932765343318346342379134737004243532014411873171617636727988608800324326614680221686197525463826767599399774587418499274558610193926408846526374253424134363659642095492395347252216947933634743310197397191806156988941628930848659465367643810380159946379456047683853865663304905163007575936034982239744638674648960345806990182152385301362600918581734027795646490635878555891411473711246590511159278758555852346198204185049718736484612182097087320626768980043721416053374324279607265912162507974280878584708961675001963216553780662735796110566995111798420386048125728456835460650525520836129921751474286461641498843128564297805571529615999707618969678727189966079159512675455191474565203588171579266955618757791752661614358502180859252418098211131597789575702135867497526926906968298474200712731331226125674110106765195199465970849415390102924672409857797779623335171793588340689358073384272032356187555497961374735313965723825951943493279552167350600857795181482711051698311428045171391317111062677066643888406452411545853511475843601202296625730702523058862389641591651109721496353358486793503098434190695850204944040974195086447138000056763285691664608995491442641405788880097457379964884568561601795334995166993708546898592826925956578329305364969676528105114252535584425684024733590231310185354322462856184734054491671844750030112225404659829680127520430573721717686486694708356632785836768131882118437435769751102671834211443985055873860851991035405997765304990579871518645331630619913499640133448161444935102426517159177615976224873461217738600957761827242104596816176856213595007548569423505789386019260096242930527686402201578370899835756465146075273060394395481008924575808446741509287621007396807262390341138369427670002171566975573323078010522380583172137723639628238829778118489796977274325247085254794008151063908113859780829535115840362697732755483612699133460977137085982031134241496047289798475006842637437435015857631310516773698999423959865079317327726409840509956245373241043101403893865018799797669195800996663360835739496023582252449743494632912127020657830092729366658328364654574264772160541733699045375610024944824766717003698115974880039481894222577700102005744078812228991098545481950594421449870306660074105479471983655926873831400617107459683944694144373441040820397685575390559716489711125392762362766664622029669129742489845318724801392866824281534919556371070488417785458207164443264821794057027822823854965759310172568948167516423934875920763926996297272835262941221324418364711834779241305348419573254516699774164439706560849817415682989347745098971215145313951466162827742547022068683628227002077849745671483664205323746253617031618726262566531457633203846083344990914947481529964055758740533065022956957930760125523333797840679516167382955023520414317930220837386570487222843518340174280133940157952538622339424773988664937681662760725599142111995157457610385041518250251477873134358549849733176923392105883671022888219826532115520859813816865540738177946685043656995895588770072568493788700425339290187631559763098019097530733211345536475306997015657032766948771731909187170876992098627409568081364785313775105623975399622107780602467000900635741390884289552618113226765044399013437651547520603005762411336524967462251599116971211109612116103032882238154821071973475391061850670233175057798565102571757463066351103468244466694098660800906030431551943082599498747699373239461048836465886149521394487573900284028763071629379019905624077222654657895379888992727289818688953501779621072624897016922276197724373779356524988492249224271823299081280472167519656383635659027314207965130427720891693512275868037248647708993111668507767339703712538837612341857743329708017507231595677422434894891026092956522466123982274901476381159788046886006425913325565526111336137702445367236785582524885355273457725940302257694778752212040437385810860386307557767232184911852490917841822327860198229089508386940872314627185162059289069729543907361219056385425098120136509089834377615722713539538303261000313230514801464307799581610774781183902464135455893179997905085595856807044212098488006860175714215257173774703592785899525828884579849629190345820262243782168174084383132276407993256623648882437082553702865234135383624929153928138902505141800497928980674131410924219834126263213642944518367093956820313532042221793492693829575535778639646418060181227095225336936552520978031683784784887417265263208696277592810865616068005842993236166687827146380388789645084171856604090077852519246317861406271667877908764999560299480188791839105085096784993776841780741546032828001733164161545868876060752346257807391176560868263602323962014298824450371657036927433602414746821126715450768208624735310978832573027338634659922978612490995372311233659131454626790364051324417974301628112451384993529877385957447334287132473364877938067281163048094247531586951452901750702893099256280195238573019809651581186858041023734025442262688665356169089204575720780672474832710374055029398431755747489702309661892722069363994918340358689262274263989587419432059251172878910161370611785685238614366480735832335271397784798823679345628804260494505493708197227114524716716354841130003047060083639201679214575982512176522701234301813464594555924931172598334813753903661433269909630870822466034219972755540454590694111597542889826198324753618627117830895836284405726484176661744678049843312986612892870872860337430653922660675596672115460278662784772273213496568317221726900568395277627376539946035001619632284731157345387905586814497347093710211346438927108784797421916818115874863510164200019948521417324775023040078054507783750212850881898882772662797972471670822832214083476547769384866086469171693664743426745697174371234814047345606868855052858511108604025920403742039886028506091748893755416118100813142970831767104060628316196820724445973206712258678172674091969175453462206856208315019749014367779178745047725301767472168091526075192388666544260401564561878590464453430140642083567562548223555605463521642066702386221713306340947162533880881384028669493772185306694694605695403155218497811210827216476360164836982408497265004206486992536750882913478423398385814340990472835990430032318232193388653681485972750866987387239041743023816913678132849614571120528077191297173132140690048771095361425693192517284281483674252233995854326714430439799467651512433234320925880406516634893798105112869435988248259009231059543768872211151298928074427403526316284915335778826097901974372159950233417722007215040136811767293953819688033042432752318091020556476532726924443107344682561660438143580898844307270182479421509342830914999204732528961022332994979050723916668891162706136280206090594745404548936009540363214521838151175730848185481799955248490842637354061084848359195349015239425045851557865207776401712824921426216096030321099218701131609411872131049657294187257923305854626728055443957163139369673365061534228680766799995047765693647962353067549795504177081256207848337579088605599813180016637330740947126049671844906368182100536878321964267808057984243953602579811552527021738534137467925879269621153974436700966120127885039851969676910513417856204327797983244587435394372781305081204221787750833762889204016753692968247036934501931222219226314439645909416713127926345357676619814261364107695102181390905288057630586088971140297933736299210879485626779357692778245663494358861581270456770327160476046640397425823743152379835887688792093820539414818111611661218954015014014743116815109114010300969203242373398472938822912616833074250312981080823038562797933078476966263694649449852543793446840864109886419134764580677308843780948923834234857316668057779955999144223168545838649382341335863912478113801090324423191721061373413383308240951055961141904425513791837536023080702188353024739732036595340217436173201527984289449073973619855356830058847879512406164153717237187599663171009901348024849113468681667177737805674731655920720629212497206826781232387394612714761013761000477407602827134745688297503552336968397834236209216706129660558371186440995069849723709522081441161735318629847533156563989915282995061468108460131010060225833091443951369571571642377925639385156349165608439745088743884810577485963709315095433908144961335221821523182645243204314223278105010607976119721826188531017856200040205447000891574076479943378728765617298022568049985921214441797722596082407816272773754371470287307776404734036056857593314756440810272067533312775611587693385362843372682234483698978486127491656325714875597044720814386241121385122918281180600627426691117415191077407139148720248480511387484765091837153241242309044500537148058435345038626057142240965980037066567645625610813489324231694405549025848502858102051460525165251276879875586277844270805501322533682844158010083554863165034753778835219537215052162583366311512971853408115887167442177875452757287293467011717059364770668818999475040543108738680908028497314624434569450897716397737218388632414076530925409666951837555740523529567956340071918690511637088900380281940146202171410945960115018924536274513222450134208023771092385014947630180734295820296139368607068100515445070692547540107638585727042777956735386759990357612821592112688965496132539078796507454260108257380256890554082241121136711308762673432282607125553261151611516288053273313069925693195532949165654876120237078816460755369713527821928342026194840241984163428229196093516813064201803424488511373344955635457276657194071431961173348941404465547760298598743450143582537243133998186425285862448788322898295745094780192462146121044663720234641899520099996073136793090857101413687361326160442268781662963208250627034702800380256155846440415074551706535212619872824296270919716906651859415754963438113442507132701450757780397531892699134763484391970267292049951330457160773609740106992873509805287722651861609688771667020405575702355363494111132586153487522681542250481264635902127165057722299135304395482803905957698041247159553307932715051180093519916548384842006157433399137387893881404252773601052987884900582700407881228301764186372003268171608668569705627719087220421688000747865795660848857874028076333284138627231538875987267756405448940510761416457316151651046335786320285253307933841385926059017943112350772507730749281836331050599814570073069422045279865478323790647390781696313666837946964655690428395110317014902853836528576941175730644731460177650529626708582055108674901782445804075931453949747970035993843210218834628185720366279289294317300241578267650304598872939364654702643594837359765528958591166737480825949479797819797630903371011651294873899050280914560086916715202171735535921077367270663158613588040295639648872856516523888014415372441054385027518852989183096980756527496691008512535480242296955296344458419034832771944915556245544717519990734833715115464663074881213813111054621314878041934765110732292157390303354790937332015199456162975155637320631391118108260696036588631817592461893939617496011101401374202348086012185962204645648587381424125105395970715508747867804021500550782823339255972248314995494926324563219014897796157254132458031124990059506724641889624933596620465930309733976895835703928465814554397622965985928600948044514213707715711083208240846026726144799755291037753599375062400393111507184651481488764391470220534644855109904754102151906024492387634176361721027223925032813739693731436668743783582679967390079944412830692093880480110565823436634080553631052500273684009755684950496089902725885128722263714156498996883657709870753076154778057778278458369319257128492784461923432075312616549619855691535933087869592940685847833797340278195690368291462958181192343832266561388589913529203065765458330323903971571038883824451567357598502086441622007084618323948645310484187509941767108387560247987760286494131903919370562659151750851267867531842426035526714208210068726212724351208386769533199047059883307119663283743019932716168427397290412838033999642186997862145795018512500305564029913249171534792083739567389096961528844535853297767524694252755288187530925097460598734898312992687965674121270488530503641563559831737725579219979943782363984329328378668676559425264253531680857426123688868083907195399443902097480171903828501239160004578470421321522765669258071445221906679068070735999916767146801960313917285473098378982057631052177487531297062809457274691269624573154461912942369515364414824834383906376048119947869959388094793774902872528788829766156485514588855953448949577101785163537419042116405192662784248516166610628828723895876251524476059547857802883177644773198166140161520264451065230995894549422254529318489889674428534734295533557318555951775365085546990260483123373932396623636122893107552150483566269002429251596189897806216939075266949377365231017412394740247303888075586298960229728452688621608129172743257939025367791813166904890430430545280895279170786012372106431105803663425999432661652663394120047551810072215805681871203515518506621403179286310882629029377400811353666935042194858560641947780643218421769787960169475548049155300694832682468114174820917460408670181023462005224997595890743407001218790660680890461321458052027801853305203637348277426005857352736395264852011555349820830082675185846095190839985445559089331459807821732418166127706510752770817067439969308738397381647107630450486915189299673831196656340083374437454929730329283498954747528020410183482151781629855439251446821471012618720144034491849438274907110908161104391508502955222080426312141881545812486327217837476406109753145413358997711115472031757185296104507768549375391450071720401605874745432837835553681566199733394545727241821026939279328525523215675866401556160793151838598549845963938593768521887169264068153103335454082217335419207806587749532277643779317583924649499818815631742395898698802490301197886104836743475233069478994241264253202383580035969618655219754555541868293804983917016533205793285858894903797631364617589621371942889657535649601543586253653772537590369310504159536876579002213469283134320035568381193477340390147140267731800663684932654676235051898320424633936435769891629461992403037686614214306824253788158384585254908917048421045513126056254819376782234417611035626498580445396249587081447844527711368448053847559324617898461322875811831346438340657088465613065001590969487895296119651986602116962055983887399985608600381534908016430852975697851502242148750525138651750225978299045270515015372855890933100737717424545932948731072767427431314627641014596345238196361350291316860079676482874280423102469065687984156436089561196979395402845203267578235114711133648942215587904758620407798785626343706912587172663608406814050489472642390390260026794343643944914208990512976417924007597847676949655514472432092644953799125991131531846086140294986622061100765761073927760565408522154517921664081259388714673041657718618077825435969620817106869262825169133934986626307309448932240980425599501500629311982561336421419700376271388980612484722484924607669213823767239534240270958959903336408899676241629382966800972935325754204245322152939990772283890536299059407831181791691419132285866595201815142022065708332046600638399306809799008449855303648827751708037787320751465503516469651208927209586233886251770029034410388360978137521713240185923804125106825039999431872619652810452694494961741536219673628830761833390140865465340064109336602490918959315390278943913408605309711313119288268155312959338950225761022549983357638603494912133818990308890991381621193918463039317302272306751044424718563186683231396167201573977585366419726959494523714617313474904365893528615047719295274357670993734154291697348416147934431919425894972158599116189074235350302206833367252039996751276944388973131412312250436190939993722397366335631712667536761317987988272304224422563049837364837215694008880984832967991538137176655002738934843163770949704513897303785111899470140664959063880927636953964801581674512018984963931765037253975224059108093237954829109335593845478463085620356014148353811854142448441202226502201798874404998672907893094887893307153738808434531932010866257756628697393487165924868030736631948153883487469559814450089023588585476355782209275053381740670291815632595909713916770665827796620775871077593633276700389400174516119420847512611486950667717012378631291287122951455306330974884229659062657678974176827670176291380554174284135734642930918179914426071161028207796934004357720575205175078716671821528770680025171171796284533205477334318771790380309420013507905746394068907431212379154437510074412696732897472872141004202604848666580362279726490238989482631993924021619509200523441952746168708374576745588830981639853528676333344786006185826324920508133908126804129541749277127071244107758931548503670920987443295846591134162951104480020400580774614535559838539129979812899203581024852548063716197900114209598648287435339228776235554497671456964888015725135316721213481001886044475482211509686722189791746134026214928683646188687255554580206913573190117148612607558666727418071907262812324106174573952337561736016833009295138947418980059708723793013412732717865138194477646315737699925314096813055446074214548452642664759846610773008351539714975659262144951891103186204524278070731463416632875043401813810458050890005430043311806143751405178678784176256605086534593779011358578146309950987066536333662392942969224285768747147856413172058840552572533257909255046688623769718408874077535896319223463684600136312685047082571010874723239897234369627231823383897627676941925977410222896675450792110351505119965626290885980840049811672802495344194773995511485649245488778772596499962201604948776101394745766284570544298485400704311599458081248805450483802290829178010628682314832630509772283038980454565747334937787098572332925256912508914712681338990202898930449903517922541900706184027885423404290066002201634868095243271474892766735175659103865871541340195532387795764112629007582641668396412302113667513760047782600501319025037432353314020974690969350777731843694959231519005710374727298930823483783008140502681445184130561698038634320754412450909272007579061411686559119072805693237954867950107388727393855633523372828022616520501199271722281426004171339710329567446626953955193027900081193162370763771634399416112778791344638361038223980693000741096282514465822133155542005996268460862482258101025722688768647754034138305426652854315610536872712192560575696417210828718317777313679339709852184828326051233018605545330751593079843640319183515080370919767765110470698908617310508476371913844352158159574032409444902202628627127792056560454521237261659564920869886289055177417949978049423024191442786849822594689961827984335912511153684977357518962418841242443921121271910771119056025091893906421184748687826118929520646297683994608584870561175565739288260039589638463122631482772561990634484941787468678498527042219411103972770344331277772251526387243857014652207150013562095013302780599779418485314101821262414378315476173412860010970242372878588184907806696438613176374824340497567332260044919513581662935025677859139840958125768897689589337268650171140794932466423315539313555790587300722355937626957287441139026379676020200315159033335539295658385654508478967370652583373521550885017106794191958139176373453632054593015566039651336974019433840802806944954228677781487431721710666083841619893801042704925012266122520596754813025225243207429665133293890662392154672823140942387587492459659479046480877640517123605640087161212838407150377829973419471649359869400528085267899801072044739882861039107326570903344824585534041447757710113295083254498465674983162419049332389100260909497222658533076825696303788326149353775225468130585068842993830795741283020888015903458776073193699510971294788875137339059331736298112595995792484135573094394354611516158455443615591259384811426856538738152060689814731299129429774884003008324748116491843266629598509977661840852993567684248936224277677108439930293908504487143876516813331625497629072635511087374784046936559672526366649234635943657266688975851823742401961840275074918869102239525949521258416655931097572388034010214867570098147742011810991001460364863295492159206055630634497035352641145757885196769390319414148742117638391359806989089506643833720832679189464999977620053622509935142104279271779233721923089459659835752319223322776021719065950056742995636043537442045021386779850995528821107874684714893308815975771499360057376149007002165581146916176049792191987687683431191955190068797172398891590700312907424793046423511669850454517759563260211607195348011560872408591566944947423206898321138680672585962502276727526808870496609450197418843764916609802644375217733670489870461763875360665147897658725909850392463787476193110922760868933074739131730709629910588268745699235477884875634840906222097964660917746155799701697266269324632443282986061474778810392755735127656548879655740807642455548302425356287582190935842931090665583907313599422134097559213997241210220514942133142326028577603606447090184417866017423631208609858547286738352329030808259841852254559713104332618551105034323577978984457752489548393704580914177510504437024411660996647262976866539494980166716558740280627959554371335405707127999815673310125075923623397384682835965659916917663322889948393055005708530205733955900651444282491027053317510543056526299815789932851194797280210245469722232108690825975100581101887332361228394042199804423338524305306795219815388848058077157925460506199779938963179159960856720603595902962388179561134328670742481371400270116867276201277668777329549175431715219495411592195270811807076387905615739933840226440398249739533171145946751450376450927001449198488678914816804122423699301613399794147498251588821710632659672123108347333162166276760653105525703077851413952205916525404457194820964143251119114390257963788082307585313064973676624812576408638569624130241727379856805414277116638070510090990313339924270737103985317512519314457224621317454026580352655131384552633212359614744429614945165521398289699220830750075817914891502883164634555386399318127236950008360577492141889593498090253698170284286693718684289253149829105597713011002163560216292306480433378086410648253403062746522470880527781909412784073548413523311974624087024286227933717575588413100418203337379112781411270422806112289375376060125287047737649665927090204132629748366646769129102528188958556276641449314570699568609544585213656140216436070025112524674992553288723887396604710369407732260760144026287957988230848549683637934136292187703575046466540021305995774907448791631123001550658495710127237720295238905234103992398727821295164884159270503859764205593318270053480583830376442955419229585228104315478958525233527322891179518592680629516428569065680718889863376919994235569112997380341899168747661711490142051379036216849137189129936516680347364869026163316086202303735149257875909605090080398444779092225820144004004196183308991713443021530311312360058627114226628123965463574524246316302388457414971197874000763905421486499323927351839425067554107622473112659454934923856457261227283469880083880371362965984640825226275185299678616696478280699558322184522403051842491617275637224539893749036159971738042532964395178556674174358492055228496684392326673574124298531407556894330210998374825741916449989322120743510809804622504231609914019419212582156454740219622193109306643488415378127708824142555483782693530024474405760565194671605998501513932191034943189163716620797609282113729219952095350305806155289384305578459280351417734028863438154816749958971860511069496105774668217277619162870837222345574184805225564153822585533827491663247905342192103107418219654448820418594294744943406580467543615216076354226133333756395347837397743948903740386016010170002216086124758261224602245174943012904915749325345720118015052619375900465820928479612097457601245303251304614874546289414146733336232001183650242153740997728704609259142876178181105715151006416919377873630013724688505570914945919942402372507864177169442136392571466090364042843050639280180557325883108372889095123321796673874155348746183454138541329338020021617933658873382920815273116732964775145323683123688197064723959086813391920929964382114021060400737565172344953696159203999332263397054547140056577533898503744715183692771194863326345775522327902543175669117600782495368260118962687543899356544350204969360359194786745618945269082050505897074522918197979921411714058465571266376540572362359775676940322192619177182401743035838838858970656431395859915601021694522464070988908703527199512032871802976324719065905690387877727048050618310265837177960305836557741584264709691306995515031757504356256847152205354453924982401848208187971193656979245857080332139926598474795282328162982356438653571434692344004959438973635219834716320573665148408537925894127534266411312534340489720408031718603572891527895969630381496018620261913474905359978836602491219205469308824290737623713438603926843984442664410692770591437473764419935394695214119336146174870277889173711247159863091400645580861426185483572814827565883419667663554531520561619971520844445991076881775289140108086697408029195989206977117832415682429409799087702639271097467828362100181178103618126577127747732945572090688161344424067017689706738702009574196606235208535526419266268649092612145240719579224747570984224145374763897124029660626237388094835598747574783780691934452061643426208569060692495568385086895861913385904951749518651350507407529179516379946212780688225234724809110059867219745624985310568525987462547087437601790523493566539350961786878018625898069472311912463819775003864125981188051420031097017979506970355081962580421255124711579859608925364812441273424765870601846243059924304661322691141420820421016580340697383970995649757733105072430731033642102649926319594887617718795535381947287830709482709791691494488249789424999856201422173804566638125327072775729755591675084580561179229844294178768905721862625726118249725195818704233052596916771564056515357543670839153042874709409070735482590342978366140271382073305547239077382685049877569123308879734579388263540863018394420948424978820278704032684436998110743420799116213900079982133925630510796487416682336363559466228917238082291558947680697000124090267814170637523953503071248266097904996831047501637812370004635140713303152913660257244235296408363751036591263914009517560075333599967465051702744158867974310474930053510070980353433557408803679623673871170486335498329386261964305205953676018074871307837821979885983452672904881070775943182371960567337611070036654647251626114988565771527755657158704303251325256086101356483024432902070960092190237658334474281894406015987937705618677257027016700744576752944165440679855255844792636991468452186128887063399261400514867802466482662249465393625458045071965648432849690938155193759472280069243736844964828690226022782319887733590337281080169055739505088803066575035613024548609114972449926110010957329962982028422109110701995676350286169393308001692040796042647892870652429489716718934769134313690656752799688483455977689161271259640159012653372899562300510494921345097065713842765945083399410497939863673574433207994984294572921381012999029158134837703371718372915736137449596887982874182170886870384536805694671706549637758388628574169188956681817555756343589134849682921124369897524916445116041594761608177230057402812623975139443878848034554060407671389693647419710989826174151393283832486339764019068129338918917275891616426466395733435715899475610665028051979501137872026491864697262757801803924610364635622568720783669744439106309748921945482591942487649814606369738526359171654692154732341590332379826679782072209038488572859976084123676881309261148828604603889420976588789143499425061231560745421786848579768547178516622977361885328723755660547183059207389865758494155012768009839996357796915618439193683985583439928507628562941584402234985044000110608785007888283545025224898839377454195719457127032185954567288024451781092520032197908056727880789676214751066370339463461220834571212683785514254352969984755662834573722893338749055036444154899018884647837847043339649014169998987912790378680748914783949044143439772911226976821297866902402738185190825208745598644118517290011366300877798881651849965814441482705026956199745506691231681905318462722075992974968907373752617472194873342197904853430973729477752139625137902154434657903082110941777985969885256189255541060257839810445173650968231039988640821265086449426214159333117240902172230863319879872990683566314389119590217376860206841459313615174880750526159249427020947999288776501954729513493193774708276741463775371120249737422731402131646469089339556650576725057318759960065361734332494352430697763871721994980087455687999205151587325623983518415867923688993798124648221367743152729433619731974342741967251941376797551232216100986189039985922446354732153110802622044106682271078811453207869526398197539346095145370103540528227121962051118502845894503581227371424777493410687932293343442849715595228483205812545427560393743199632416296509852552988719712297913797498308931156627905290103639166482800459020110234578487383037265262041872812525813084457955808205127803254190470690019717195135071026130977282682436983178161444469686682992211178954049983497600932082066213760902475338107434379518299314026442749944815272510921144048092616174432050265902890262607909297572162494304066476715521988621053402189804157737279199891333420445402996649337957028738987653560480186623724442327517681696275655717552299542888982382214495973882504119466414637268334204173238012745800365418996918671766681960992102764047417747856377022758630830615582341006159276749752679034982474469960526012155110249975076539252543858302673763568044136075628370242500795697167654927933924835201084809894896520223306815347416511216989595894218505774186867874613004078414434084392046840925611982807168651389452049021793375924712749182608181797764274542077163474222908706383003095186020292196027635995681544107463374201004855076824678378876890368850415367225201031966471847850832774559672396489785148139453495801769747975081749558876109368981573225429834748314562176100346335808090258018702488308673198358076231620038404379624692453620910791868145490928418449459421950955741911008581963507682410152626129845504703167165634145437962384709438953665078925811971845849073889796221218107458649058536384729689158273552464261807654970398291684841932920566807043721357134755674164047297654840067904785300193716754962832470635928356653779699590499782314256430260081053735550836972389180307015100085010637590764583588754689348265775566983978198617414119311179084080523591951773814649283354166127817602929691936790070856896033782441705114503639962892654143043589214081127625220586374326124549604736080492901250455926168515093134254915150278268335410007192609377646194852414054738528935268486837361484184991845342344389053870670698015600374973375180898142510643626745442463370543258425623710805079447193859577844549177874252252713107786059320915538969522725905983298478674901910758065793730550444181861254215614271890611936131600926347385575654616321728852038231629037281254779373214772552269988173008941299694210093504530812402813238254653358548955295529568810507170680525589563549450879249980204682795275899799187359785289747294664310647554645597856583578229780901718476905837683728371010084445858057340810224344599519197716537569941971350372690223116961994477399186959738585059566871027157592138562142094086987109474285841924031277553221947756347473265695863324956272889221985052059920786913035581786272412066195033153384369959561786533223259765820441088184008844706518705483049339022459211106856086218045721770346138916728261872194302021041856225647672021749890713566048045170239808415047457529476029437036653142233555868150369124056007052615651721907728891662966323454223530620150445359858429547158260888821015880075388690775012095871768668565582860581569917557444999666345945170126380593535036937741666993352902042340902366601724779762265160561243279141210961660290202248770702161624960086105820372866182635791587149712529299423904330172492273791360405303191627662278238597407385018320043777120866009941329895787917334508881884978348403481102221067147645166493084592435126898111297502496246302253221732216133463772501155822391616088885991190819944495357829555731370624581681080956893497429927063753220616521636729468445802744106257879078042996171344958074591676034598386625659059649292144149166766768531829525391996918846026016396096960529334937079632942661002265936325022900618479586441722114990381101251063654107894722223485508033815785523739155744282992016357458669304221113889572778965596779568526462253498846442309775820934179182168781049427639509522992983760537166804965501260435876851911463975157768597349246712343812774642247150857941434447790479527379780603112594468467330083453968651202296488020783651083342476339881728811934466813865846531771101146702383270800538661456616585069579818434654814874709544132593194008573764918617444370763285640599247995555840692216239909573007981993497281809071872528827829789155670987329222757435926147846726684833991794571273382789721454780946029160445008389595135821840760563573049465693979075185415976704117464700375276487337211261621981606131527207311879548295831993591450108988830034320846810524319437699797851120867930352922866894061511803702800947638121839488002152045652362535340768403768296898239461393041333398162379891286099271093937518875469831140029117107235239179067323988242761740049520917467877108188838629598149011516793054911230539922188163133875911132245580515773804256855510476915171418776145430335296946269645130571393307574315559820344235484061822806577132285905489811213950551136752874551342092870011716317319169757647778905321274691791916813529419889603043195816556628362174006790037373477196686837227256470308896751932914912487587638963636398988195016325414947674158496758278486862374351778059404307838965898341198989172616547212811673837035651533824387199397629020019245541491818816936019800074882373167129028129514933364491189103019315269343954898331205970349251286232832567770906698242413751386615290708701581498495146153079257983565187128589257198893443524287806618632660539240028764536752966376751597978936698642912457532625487467134341911794379213400255601926590981301698241136596614377469526023942030943783141473245340953258470990141218369336369218450137840019575839144147636262667046765285840267583296384215050547084398280365936987551039159517128996442078749933680704874452413093915889641764783751763378699260373974910199940672209322422287596596918405061132675148829270552088915469237602711639598545373699186777654536609452395652339235301134796900256354266944577762710974800836658756497621084732694421340608731328446504991399759490973981185392310491919434669982348979225051659864454051078753817689269471746543190253074012247525770499427651936694295681232416991088498352530829868479240063811375956438411241987871506447642514024941356640221940484052477809318893988008561470145829387788685215076148633724743166417039003444308060731202077948038080481343252644902050835319292493048027514917849009816266138414604117920472180049775766324497550333979765976520445180897778553038532304804865104306722331697013765087802391699279057596839133960033098315884418380473527959430560367502637625136298939661272790936763200711184618763343773621413280789597403493510658098970093975976712416250444547557871456619483532078492519183618305300567713793650090069721741576760521702755499565158963513877349387821117633942496193582442807627692637739266595396672938315806417778325112159743368110547192756319350921948161653699278449241847937834308776028567540006703282474817483172811452914050292111329010213604661526443094895976705270829105714988411023654800853575908742337399251981227040192090211508174323658373466256945325948273301747224915836225593123000413736975362889722014806061225701025339801483897312707876024956994412154243964897975429647016816780891832332771896639048517513299257388410138633899647745248640178155155884641617915889580093022880688206109476148832112657553578115446466071308720906367185479770129112905159090951528059610363807677455038717340580634113768228468998315829361932987356186756072050019118024069996424622063869710187917024827856604502964691087107120414788619937870851680486700114618059161768674609869794638871984581652610323725954679720697991576447110164625544193217739130644570153632788087591320955123671681737874273792900164007743984418995162944202450141208997556763147240155038158244946867919442281576537446218752542473167747958524933866861417963271048474685634562098824068136014484634490615087290375896680948629282347623633065238166736134711283830468013261204636687069414872416806229963958830252562686337856524203049112105303835298830163316682301908127851056549715220959661845503520813126347055002187986355705317219286704349142869104883490458630999750060699024250992859357132234401749346736949261692598858894392367610629849091159507185181858082522739744856171739343140906581747468569769403511550463783470943910939638816876594277402550345132458732156376558058922307413623704582223942808261718189229074363270544683366942294650161380083027840559226335541849049963601118008960970245455180580556790063379794049202049740741317556891752203198716090816817830302446792794663003386587165594909847098737939121368470441746852283674200928903612380532491571571876283732252951253568516566559785631419157481860095335063145300033547943363948918909775587300646523141187883790876040485260694078844996110917731986190247127693767050006349644914573239198925578641770965001789262115650506369602082604426324898855295921883493334714426542572000452032777650531054286097517815154005299150070702572131382567698682218565255347944770109946763907961369203961644940942747286812161628977199745024548991972309917673752568081906149799058100255517831022622776212768442510374920703102088744504390230502227424121016218092845139192169378626381212072086462278673875605028306547728188990085305250223874051582457587185431115546619908535967504888750679642100938429356540260361220311137677585927664090210371251036124002725294889704565563959048855469022731783519992841826361856383298444946861933767646406065854213798737459273332847158024539619566613258654376273535055617847553286254400348761398290231731158490915503469007427771709319216961031125544774476834504389788858722118601160830581624029453992240812469707471601822893396024052597989239610151207061618248133038826824827840649020973972060500463653861722025236208264321975883339509636306919191878033431256018458200354576865984775201473977721798539070465699401696308996514693448407271004682876581620249238720959369087891549033227214427633369201964513269559187839026885731839948394199440024098780267897556786554774706276723071560572454509313210026079863881465460564527194195641140564534650177085836153651739613106797764768128173107842705856867348178411518556918228399226215117934356483636861224745208408939487131241030893476258394221941181722910778218331850190819474224040414559479116850748152759198621678426879629226552386945638764730350397053038874489134021508811154720838619818970089861720314943283308255312806553236199141695634354016503683781975272972720548732554839655792475762343634516574510798495920923694468706449378274852728868353047203390430765067025434507536175415463789532604468555490612295178781520649907925451493238852688782898408466590981295844832600199705582529522972008694368850759051401728238891737851703613543538338386597694273680374624434998538782415838852867230793941163744516939128529717038852420264628209419925860159174362006929637719038782100881875047627149292079278137063839450617426812604294854189123162367287521020628278834686043170148311607668845271227192610747470492126752120885211767645455076950311304190201808086827681971560516933714167675812679555524258596741685225652458565731513709536866109181624799045700015859274305826113856316549937985258947956905693428219157394549543156171566565788952771373084810491260287010213115322552393966971095732328023036401392678113480340825551924926154589455471946406705666554956679200557899897376656516052973547788141766702860617596749178174353762682461950067326513274000252800471736940204972326957721596740552046353999045458141588186764032188226892761723771145698704779762599060342770130731714171926934506088062256820278915069222955875903856575493925499330878844995566616009146536092021383525081548568093077862980619637546669782556587262235762902860333775932941104234522888566608181674998298369127842537720411917878751258584886308993150833613438781014052633266009571020914605317624278680890031626024131675575297080473726563203468164513732456010877910724232992225174155700438414858534695513770026052849763477405407211238568943181844169995031404970888377316108107341946250019506545809172552006081235000050068854508191305248578965556719156916282563377473008124064051494883513647438926008813472588555470598353923853072766115500907661906212057770503607478239052032082993532585475411679125384534806779863411651246917072840174137061976029510548012857628286390663898813282788836069845050396243542023357063108486743706743581341860402532599045647923167452055364442751981807509390579129022190444419601747001934398747712534358275935568701730141471401057990945778790011805665763029524862497581489052730493856119767038617281387255668612822540792438339327153272268914443386048351818537001698998721110470268401692600074574070928227767869389784004617716046075103419749751550920142330329481301411786448932076049775650250409926801418189167882010812648927472176415313580594593415905338854534558737450937825893990122656533480838671389872189187967673046251044258333086745569023265359015971600510766926245084825340189301426891899697773021873229295568600097086934871938844688352802992484088774973618410574780777508805888124205748108824730030231137582776540355672876431113564544215242194427203494390980791980254917887671682336110776603038376283946482198354091173110646512273090382071670880082681481126055037079516327623284854748236908244955899557865035955307055039483976742831544587128180877186441422938776610251951717352203190863437404664063611759200304344415838456712811413079698267993741006906541661560846935779171425836764929687500892015740896185390963747254378962963718069503563911079331225731431956987128723705839686180121273519411571692703078787298552600015262749234086988032314498091558547680353413106525088684629441317511329388097490347311166196016168727860556216131695956698514227495693005659732758271891030486258280498713570811922617010727007337927869252852492284721852432746127365140562955743226292505740120816680244993422867665407234476470428808356003056310583764443871325833738275455168872734353010264376062588821867963296151222324128684431421251720543754426236829831975885089639495842139381983985000849423440652543038725123059671143261067046578997900069466220187193379561983307184870447906985481432281960723627050294640228756381052532724512030226326470245666563370301252724398201949318893140985039859392210206664194903637811270723913810729894578001619131249179376459761851158617182608586823107763643268709206044020044162947801078542830971430117792899470108190257380045898887301364108698534839641171836792689159474668613419235848564823947208133735766183060302952873446006162140285013228261996472411785122458299433782700919971989259408497021394523132484839188700869744548443997211147742363521918183803940388354953692953696060777566479712708439649058871444422486796217187293371455658518541805537601184582186916464768438397697868141135597611032245486852996474533735205045049278661492073428790662908324313297676869407655988522258808464550484631460448374936960004374667605143480111805817006020426335359827593987890999495630202761612733781508482423535562435504509745113872017477117308974152637460610917539032936762650153595655513081859479573626948297950161727761135495816251848009334447322885287090581384729789613366054863875351094678951984277245448785667381491031121661355611460478611421293961062877849599769416802096542056931999988924712763463378933013137475366691625600103029780051136209612127568538307404320593519130681464590845196457548743776384308016736904132258714709919640552998917601405461634175136495409507251847121216477172510267234921604723905814710029490971853346794113281428365217483388543528925186882252427844706022431856081904922616362035230709772568144163923054126483665012280793717913120887372907224665409869635234179610417476450583198171375529359452333353844717268037091254613631513840050837226585337803973628534930516637781857581826737532854211099774702887865252659351119768946609169071105452875374245586391250177076186243714387880086906159050487538586973116411240294010630893008098485982010045584215069182514568072504943595406536630873213649437402238671213084811535456849884257736502504702376724761629448882590986033483663704207116242884476630448807683917618975111796933380338352929249477278672952945122423077422852851269191474575358555199588732387142787953424624967838567720271262088641779077087804224499728973821390862556024219141383235670914502815509914165182910216038823736148912722270210594730199691393214102103939921829961430910148588013579993049273663343145085637631258289238233752026875490688662514131549630108786726682346983963492477507428237685586215724491739987694196627497388444099615282313334358018111602863264968850724306221405061260714289545686571604687493681595656301741038922928086790136740950694098185793202409731043859753886403598389077549639480200209846111928519514190226839338172030234528189234787623065166430143924832492103399363034872536991429597262547222526100889278159429654758646177765953164052064709125362916661697199479006003192295464132690173505811501054198273994695468715015412304235311167203235671374977006838134240671399805846142964126876381391122303513441879596289953875652178362530942314037874787220846711177215275532095330280875049997134991160223933386686600702112818263724608388872495172047010341068041263564133255572981481667518302118947682393957170358727030693394311932120046919467154170691823928465435024784662690833812630401351314778103571483279187229615272000843485220909882323706052719154593313553772379708955067042330161355373041758324957562277110690759219825328065184365346339294889788731625442987847386389652813369956718144302206180839348947984820247645384879522960388174684586040943924810342973283814687314036279786641770327426296720358619709113392709656754647522294209676659201349926150986017409690741141399120327793366182972991201242385294265010004624419342040927454301230463879670244358363265073336675913395522230791330126735512874089102383112554262635323898369323553626202378518504520387566398718910221847834128458361752688299858903221456332013508148651981261990039852741864297069231518377628277209419541111951353873850154391906866183323911746470717113059990504285993497848815924527153967708398833257968487369054768221741370055613480995757187450426309182025294943974004549622194170365708837898689367238359689181924843594717846174985724981359456763601325015687964575799271551334066523821226455386794573248974003658496845198118036244252148307575117216003468716248908827423579540715891579156539132177550123578542772544137351774167593061884046383589942847311659500033242802753491178485317101900711648145410618529168467737631286651178035965433042574005630017221963416992813243709993173912569221186784765711522692324603128224199595100869217309806576241616237285034447293061617382337443844904980601154574249150990317013309951575103619481146155759808552815346256628444915623295984673218609087699673249932803112825519997396278831458081968657336895218845839415147436840916056655667458145519423248442580152068337248301170816904663439257852452052326814975022573901879056379156128580484462128882904876957733581935328623858409581080901726875766927004104011786950092647645551304737091212243881092337223337232159930584827220014282868295630648628553750742613894144173432285412021728631335177073607039782200162298385706295862329457089461996495506954575137144453987544669173381564000742602172644704432850166611399667645658906273186401888817422854750214287853882491897906114858119855552325364564548169334998074881861019723134399668057106118128220432829548571379326603732589842329440349014022633411919145398389125285249373777079678027242284572311315750346517064242251304145914089463218856582695806125250429131363766938749033625480889842064060760513033563369985473088773635182422800334537750320877764926901357410101122016316852372292844394685570365606104683113422648459204103537947395716351939075448369130585713606846157355360054944669813516172640965860635047641928165349963936678164698384020268446449783956937574431273293771921297894385867201113323054528948455678570228145692882712971821437152518136224918802221299362178217285385683899265606270386767191291089966289366991436011246293286864765929101533819278087114917670451260009219799363649587634999691774179334653275221336817208259170975205795897267847387704481206781385216006860354503851672909092340852867648130220528540134163733319518555545494083609136190546018386765503642554447210313366581219605127486320527640301996175331196013940224950431496439216302259153591360362629755593054415203756903012123128623443084781065229961592951247147545950325324178617248718771156356804262840569908807790566865249262525678465614682952518317784093676844726866070755461928931395377617846687742279125235950839165516576538768418224936396692258866295788894793026022624866892668107725204133996861911980803216501722602620189336425634130345186130438109602500475641687753829504431808167013366385539336486604516524915780411322301725438015236409674654094666986086303625630351791423672559413978005965261237400117482393630016844353229913206439012398387576420072734413451774847515245294638134161222843249750782616084282294726013738121411487806976264717290497484839666298374985563079493137313284122932043889919252793644530237224500422786471964303158861303777616210724898153385450174433113552411799839487280273377229254312558727157954324220939822133347210158470150072304264997056227171085276813829195219433742442268273668113611731362795084232764330903071087050040149934041250502107994996824006154060533154034480590058554397588569488042179739741917769279616284512476279209221897616650369185848681537345812581389346113340398032780530520212567622715743443908347113935287767168281290612923469177557532209693949828368621416602976538525496082899670603697298399277006592018103344432486583753845494999493858742239585891578343997884430164172703683324330088398858718962474649967784476306319734979972648013080102473629655870031064048259078706364676352738927096382226696603268592094682184246187473264814260159790538442342022604090528860700110954218821486718212974895269768629434560249115359821391201944269646165799758457930875850264356278869378615995343267072598184892622334133527205011504196579067956895431020662648508340924674112503959855712827334107747887217353313866920624180936621472043806396567922010620195875512539212992313197554399770433694977248325025464849730449315051285126855998165507316118460109556016367891502187352974390742202234496954328222744604893069376838627662460047099910625305541335826087057657888053485692232068660837701706050401063619673706998632071208366478208449846847316631081001894057019609515765302647071818110331685537799866443784927757484650218007212616815870640109196326042535634170997158412558636271871271051199084686612609415074681172728000767971733614730675730093368689760652856761628748640989125828083718999881986650196961947710221688038339919772150566791190879508224418062064633370189400624079001905431832921149012307519726649770583443942560857333947892016328707052702245461151735799399374708075438149067088909651194089178653556664921912162583094942612064452904007213149460483327067513376656817260594296329996749451846829116544886469058263081984374297998698476985337039395617716016195202910182585402829585207153151810421503861077419670199466838889713722037902173129652914696078565373969615525829471436397490531889976715397983618977948130123556109657759521438688715645891589634914866063520000501748684892874071692705677268257709601446174140652487939601964224867258370994373786200863562783211242438758534286993442265528468359465273555984448909558504652165947443656348194284628982485689067812305382363739553292557152374444324919140997355758327030469928324232544049253212453644775900934292051772088862998713578357183904541023566566031692005054746428157261875895604164854783308277819964986206112672249372976374450671777391909751247582058705641782049231859372790472353491586689207809282394554778371148445164382344441949359032450267290150503670609051209255350378705527976638285757666930236514388215415867804724205886638961780037157654061779473148681569742743514884953084887457681828865059068450999908162165209067390697370122059311868726958473954304398429623906302246029827681717043251086169935284730979380121892801006181722148859571711102656074567122474701177216458199145869626482283613671232770344657812833150040301279728935872740378196705113110787576556984404585921945166159993884485716093427128464596596525187040783645248814196658061651994173049640053453621328163266999129098655295075786407137604494193591624169187423092235121958254997932552749208693347969494369780521835749964013197629844854235104092376485166809867172025433171942348902075266231751019521345852446409338264723091831510664641672156291221981073608717140949580690458411419446283826877653934668195064589232623862534208131347947417859547710175300392793015720677409673475689340650566139261772656836117957442044547552215469442493391963954319474643028518273392677149335716096718181435572012143102224346952719753731985453405905610343695147461101148061319170890640488874606350368968566574338331380180820866148438771837187755806065208833784109995961590657402285366421963671903939875674850189854276217714995482742268160576125347799384245469009983325740829622603936901313506852549560354952775845328784328304268436881350803424293612368255687805324825086271800135231274103439271065846131723288465151371485049907895052213729214903645886016786658018597825941487055841585773524853237188777054182069264070984132306423984515367172621198899532302249040787238210002261914338411611279559197417080045465671860060494874810570355626191889602483196193183297870739423897086964445868583765181800415387642286574264719226553908070264852444478947221135263967247111527688705961833958952229150291992996357236070833446373247692949073565918046913286075758129941461703256252810542789273337956719866758432948653812807660381845470937436253032213461266789267339472554128737894253767434904276357012456584959447729192278782238678019925391240520905907307169756810953478840092209499551478882819786431793370867222061572627912136128547386176607785917165581990370380702621820673106460930810948229637802597190014413285228528101570965488848281492285214375020910999422951247405575514662039753293580806754506765437983985887231691059642891792340840187092973838445848399751300190903525687614357249153126136110336799212382036658251033541738531748024641784697587293751362044024082743915484276251408402747728523607541954938872647819153920421056618545167882948839819901607018584455289709735542416767276620284002873293594594832679994764678027765792163483421040940751133027992946602641405809974444908513836567598575196487097886479966301286932831239293798483561174753247015021671450562731385403203797557045502609872749370999633316882535594810565581816471871195752925380054044917479022181345662764597789272221857652133919272896585708332216145301437096975503149553185971538479485308872098934417615087794878815354092802627122073390696611876160566365345316624540249938197273776811929703511460043808904710109627133644174058691915873873021928401153803618179805393903672929114279187155076857883128057264877063015624116825899448168675255243966604127761151319585754959852230356340331409224530352009783283470322274883883847928521244865277728462037067327133338836346688800321653604481023221746504914689758844838201993040107597258060427150851640860045300537361888973643991033435818658047894640623985066075176416242180442281977121126661364698110203436700988571759308975912084236528317180988667672958200000597671458561703118343463904854668278583427303174292748709685119480190861592385977623852931296580510393813231524088890555872946268536321686895578461348074521015768140358495467184119801044174489485819275036985648329629610208614293556089192009556992383189318309963133346784223577285402277279884458094744208263276071921112758423047138527346875985627206208061102218725125390135791777449261215727439993676256593401548515976933613153743881162844150349065960705525939575045680806847025615622346582368028475725138804100696661459675204221289942671935574178650493131717987339168348428296968100270741470669935767786876981567372833196497851842215124067714478674700683450404201518560096091011896946558533872650594431770681704459642894667683201242829028677819462852206801572289701997498057801290146675935269814145020957343772265115725691572829138968204108058938719716731409526533527961565291865224087457814067254924467966583848860918659965339151130578522546778764296052037246321364314433711136917780553848314861684728680971138085688273673329064073292721764328008397657785729673779867561510530418515139953258930247441612069455970411009396062745393539432861318632696729263910104629821210393938535199280846640558827162256284126945375091444573044391731766103683217421099933144794880623170958494773003103788269928564027302166774652258615092314955163466661569372795081674977605426292347875546448656585397516035922533142017784087564513678843816250822111089147594588597609495806342500059119230636786866259350277248009107208490680371149694266103575505602318190196525576935734909805888032353036200169915634333993767119306621294794191752032890781856984582365750328096870650002409775065174002991211254704665789024147959256962156609735369726811876128722476231881980171449755365031220916759798939372409837626175959973399474366712611473300024555752672125747084393287288708534307311773640622176612270359953369443087852653411832342963509215678002853613023754608940334921035658668706806222698962171301715090735586053616291863439685657262248870410156177931577734884298559656961723006478107902605347750217151502600950945056013093279292480397273913579307284151204908460869488643971449809454049958809673823080750700346485208066214508204522540000312521405299910892576363716104290650781851745833995287210776667308490388009933566330563180076033462923116635194353835563338232805063229889385736356321592936238833134313683185738040113381963260802315408947166752525983254632420129209705440241667449421230300012246168829264951835681083285619137746394177413809122808754451117557376932794308551407366883396756381057714689356136516243732356391152033601763195925359858775273814691941429639715696742777768814318407243118801856411010636996077375007275195763782953502738687311293123234100370861101525530545111581303339929761970841808575578017628921652550989585230985475816261122088755967441986174016908139404558351326741574901530273071425576587532453386018580349374379033965196040418010463240906771939400437827676330585913719412940254798682050159140257550920427059119769737445773756462876454155253399909136884827575113413281119535458888413400546158597548484643843935855941807670588573076027130920197127528250824107247303013116080663148929012064201912930980404664061648239648939225382391498178060326753061854967493606536799695914494872479394536174716296169662775436734380014391196611728435160259328118775953734088897665526367342874593917212973186961955912120667804096470337855046656750716627049573523882052018468570678479911022774417481910593818705426353596659817530343745613265553026280563426971598189176070737383655829056250046128782683383292167657750278103022983855762229669958071644220762107109697209101520429223759140067290744651447040785679783261117918827324693829981648842674184770099863621450672436158258073705282449577816069821993012534837891309239442953814882928451047288863049044465620290434527118870868032848325368366150284111476164043885727901045003077686786602575632140729951231487210246888355620388759328750223260677463018472414660294936293935551193982994840459956679971432205458334091315538842588290505519464743586931476595798394533617554828222978554724800431642670170712247217051100875825837307180472629101550696035614876827312232236555801441454152300249819571851158402550790902611913460904814995188422598276451157724828454323360650748335028221226043702707619548502018196109108549566081487187374657566212595440809674753861169434378806205115049378141170858022456134227316133482568714682634044653419487105709435665521948677936501272154757705942598129072012545153390464505327218554466267059665600684920049898268873733125335471046770096524352471854325329045367733665918514456494275053777334010522830226538717314620005476420199296908400119319262195689826161861645018080150320235914636445212729797597059550621119299238220167699504828107638710638092074816742417845816981105718444061201434919601276998733543072720377381061248487579002259146363250551176009375763878005709123549941558579067991371867864546256209501986419418682996048414911872507651413481161417097528775797207084278907419696073302383115894277671329387524180691691492823781225165625353839644970400907446801429629961890931097823535529152143512819016849021716069752628629664661140225541423039937143094016992299835287643569204932118439882351982967313502654394700144857077714947271638031866780403775573761338785708622435113550705183902981605123931824400415288732609837074766454240671059853082559678624097840307031098490069634935434047394811179225616172868182470192526287716978679890082552064819125254443538807814508318174368390816608397470470442161084409601315352084357734985749335094229026304700508333819921025215065966217603234929730934830918846762310491620500664367009274173916937182711505014240060813077088804551395711235018019950624252847929368616876988214592640725856350343164796189899123664823258198493228179902536922238302007860761904043422426195914157406518398698385743180804446545148119410193059357563881565839306112936419620092528049669431693944737711205764437945193184526720191857467627579025339405215337693900498140880057337848586473256638003975730762116402330114600261638918484003645626473075707086924477854378054617575072947481976034836427284279598070583941785863937305388957876027025667483451140941571195394642579201105168621014523279809659563407414398549520397281073867838785877310383908435490644165556119842040682089798930308467026787765855587672220409679127401728310403462612717962064813315544271862813122563995036610993167155483230611756017570795325752955867127093637923947196405345390765100451088351611103129979438815987060694718833061016071346793208895763326149927895497474770501687290751226075243452577608438589667494753295112088362555638589011493749791107965777709121305643575755281920986812050676730298580348119856636913538298312793397677032725524830655211753007061467538877495890326542359050863857660274583735003994485621273560917538330694620966016818830501362208344635517104999967871730738795136798983757808775789921916555864446577380589989095457364976033447859676333065945411839598901624875136023243577348105462981228127600758970425071713551165133685541142911934424459431050190609982869030638062111465803426364110184015506456976156232824956480522283248785876114517158384946877622030705667038294433012779633834759527868205178737721689682904563724839888442287153419461637064463882634756656720396067616795613212938713039356155418532348012989819357980047848688177532990951204840282660778690164122359112868172595200886807355269275127732387724645962460196497454839409276916429969282852925280666437050894282235547190138524405124893128667598414803175942728967551438041934850774139375825732921461959256521435508151367483554845838003800949161178688386785656376681804877306897463301339094134821854532814901887674103503087776132643032360234967402489695860070919832263167296581448681481046497831418394944947916977778138096654788450084935911840680096330526109466499250563295410549925944945875799376676260669163857862960388032958780359603845359531757985507219933361082074735075958380678618233285709843826531443977342187801321432884071221807764703649601107084491112498679656616946661472406229598983579662251879499201126405556662588343186994343145017971349383611635178256386863226669711677395081454175456714331989711470356083398304342487531994421723439549602880101061047292531890254423405879421551701782279005474101828790217699915940457084718077197138426254098223707720670862801491141250866102604051642763191207690872740696828421143788051544518295993175890703812181780549595786180142961183393449972951356492685662958492491372590986969840425329650448202099459541910098229827461151677235165428273138698448706048881891090730070351690048702682207074613791761570200397030126825205577204369998296266112264736809848145054250924277934162192909556106743313205960008967189346887603632539486670393463076543807510501633205421804672472710352320574243263032999421792025680959892593638723532580769024310216348697597073522559929517163222784321167869830385452440878200598943825751336804359105581482573735463753126790315363883822536739180662465923479929862885434771040210344179954396952049066379468180652017566505973560070360193975017280335054640960716926401945502667800169525149009112054853066244555479239056754651800491755505186812558354208365633292062492204291137811234567430171398879597660965184221501084637880781433827504987102870878962501987898978186766314552140060356162510613912616336725628085147554057410019134056044932270991667140230052834410863511185976105920695404155394497120461619430682588393461387825050446471701550736968917133272888089008040128779955397835610833916057226982147858155053906184525648595488849045643466314386755218373479035572942849803218400227250113695037596602325153215943056400530549563282292408849015327554097390852213694821211247173778721748881744854957293604253490408978694741221974270117278404904926562366931128754172428080935527545479807155694162710218513921735360347397144850549559296856274733922423101963020311614406041569976419846831649839440781291957472879716697323874406160227493745939004097761771594087415646056911835518774995742105879512969239984272393147377637440505630614830573490624877607378228286933294871327229900908937098421556530686342102939020999318406628473287859359842797890832502101960736984040283160610075460381374202335021755040928355423326070555990122239808642296057242707024566388161366188600804664925293116768656563561392217693762008529454949199108780868681465045992761372365353069194959219213050421791704233256413758826239795341381804437822549676628986320258681668517341005271367162117095599982744873017557492013627358371572666139134168439702105890926534685247457514720900041238590549961984732923936321645878168467823869243833020460223680197754821821811295867398724730635829533545850351514627191509741846080481456855169276778721502280409286783289423760970132821885526250994632643537721707398536153278094168426589758157584362016614437894505074051784227904000447840153859919564989139294571310809098427684854387051979383648395082099101839444503148952201629957133807110939011702654127171137432641542536947068158715628147626900276374188663393270625259075990605883524673989908851490763400076305552596334059586168702325091805611088835857448514126385768199114735624930471210667104507136235080873531681085883524460705343833137698319828773803368876398201470455861931403017878018434446266264046537323739831435511958297380548079972785737617272704042131816413169313797648572907196670072246964553237039059259844572128759903819109945439697112991640456798940062597888401718068847796507028423161525389568196468469867288038438900346430963122822854018472163084081675080294544709283952696928806826177551005479573971312754098927651891279397771026058271595269856430748145835052761860414294314241597077710559576009705317256427018071228081153166388086107256275163456198160246064481842694153577740620800305961091698038585844498909020994580890648924570892155529305342333738599634770444644300598296114541178274019436727509823905574867980722000843438033176973197463970665886496162297955289869437046572082327423935940373502553049729303528684635556241276028491909639073058898951242772512221786066716600047832274623977961247469650336443271311596659489296502648281256879044097827575995001875066253171792386331256064041069109181216144258972197248990686346604775104010991763176746473364861882701025339481604988449067331386920625165063908474963418673112054387584717852253512868679240389288934820213791177572644735847163565189846407851864130897623557878146842484934162738109645285276421172772640804138164943828460046399291299633650324699917871181462054745939852173224610034942838183617819432773948906458276086575769893610179674153901859673033066683481283352344558872278801848634389176084472716183683054609596989352965557772332512552479400104862955510152693722562333634920773965461225746224024591853354096736267091084223765500273917649751983938845203186496616154662468935085508722781228515108704565671098442799884248259560415428164181390810906484903428270421212670642549248059645766649586378419951843969128534754497355172392352167529929172233646345447795014671758302419248636278840006282923688169702366649833088510804689581795668256524043064240287246038026999995894541206730674527292987982341954439998296019106041813471251823529332797081713667824992488627479892806701603164853210101156132140098633286919376897308933063275749557475108870409176782839404506891361100261718286030983568701552805344864559900732854435677029692806701298788825689744404317976934230913968871617730377959156998778951872914224108035772156205090057539336146419425553654695393201298200102377573332143233252096376788377539550105833852193204905759913889865410134351828898492967798203581044836377362863221768825801355347355314591868691988692886693696967722292381595700996253471123290040165679693411112388810588528720560505584364749933181043379500719301232146618593109308563238646194572120653655701676516835345911212775897964377155823097054911832497427567803787456909732551381350442878715038447909069282658764989284644190359516276759170231486785144697493239559436312285523815281424150326981587934009982232553210764699009356986641993829534831621664046074995004751053592293561802483315363409878685283963991183091588169687635155399094327161120515032731782841192645745756443926693283565073917674245888567564758827777139264845088850050425883991136871879790039376484892297253618781291325044672614068834635531368119632950691826817818558647447869926702166650638258185305932926181785385763189126380172830715174912084945127959260001580273441786470873249589041579487654978994637784377030162997452430754387274293870535247941052633880262213941374385087390004705780175906818431717947646918154114747105562777408639914299086689863077406870540536995177313486806472542377238584063138028728842394606175704335336243847570776172654114734121032168373747342088372408352301375021215844214005440877711366703777275562689668115354626900395618415081490179253161533232688064036272631953035921659242469099116295615375316715638620841471302599551541061182275208201073933738381901585647239627292120966434868482540524474050697712510030519337090073776535664848800840170692293494741326782303311745228736508762071000937184174847316461886848963277707012539085486352002733429604120277228753549384631286801144606871794340619744988225764402794025394626121972355279064340624001428511296888423412302608348446296295115118920548385020244991642079023919891042076980519763538340878840519252924272991872214176159210033327487953261869600497874113932227360797427277964560641770658459025766834064119876536270793986084892538697184872440176709339948352230394986557563814230407102680667436025493495256070123459611104574316914528512641654539434664235445075094562390299007665623116012494820113828882283783967853130710563266322427532638772358589831376343394824252862259877056574857239200651308822743024856222870329876057700963723854892321742720202300061645848643745328448775887869143595017675569163086737737430717575880087236244268603761284806930733638545068321255278401029526393132096500671080863935796910628181329329910031767642942306326763852015500680519162041465167825095771956371354621357674391812710647143461916973497928023659108977113707163097215907977935382820385766181277206813554025808368897799501326452302027239196833546669446455707086235196156369652991689882571871965952232587003868120068700414310314912132469156883242094344208418795051760574154197253629235289216151939635380657112969620125353801648137390231041278241433383637326802110580044857319989265439403171879595053016415218684775049283468178094121148295065836451438574284618480225387984951410786619995265767989850742363015821501832735251991081565386982436431482941173288139020004854928698937024544950764026631309414865076153466089326267038404876049510409723692644093374857771770315746464484190718352650457777376264516085376028682599248819310630939040305419946655759091666552046937308933330288499060752182919148285006388327956391192548058363522845594185541654878313520573059766615328709994065220525302043480923813249003708916045102298109572623581835963770122785983985120288155025660986719088952472527119797104430436388262275969172082394797443917141821758078374439839830377339715605980528075766158909248742725455123967274066612207670856605979912765394740197574590884963530339495419249697287093370329663784747961964570574079909188667824958534340073091017554743617591645777772832653750069095281528501860509647305308250302023243285515578020548978878321623025642373381370147076884368089392623045944644153236354364947106724434190484399559884825852631020194023617992697996820290107852407064753932678776294978017419440772003162872753483922638083381290503380486473939427284145738351977485508637381054833910777506269238228181974712612759249261935763996173521645266897653238125392209007530304943226661934370570300840611197236480814077120092730829732107930178942720953365953589036418838411430101733365094310006193154853847276259550287071888851286454381123036645744200013595067208205221374472773413926144141374248955355101662025101192141850120466633120951390906730715775136467047017212893395301594656816879171306899894800393335817141436367989537956697393076716067563756247938039411858220472536434838544845109852870555200803221134107774839169626361914648732080488749265180381111810267855376331189109252183958561291370120713597893505747667192155955804552645017140095676394179008364753783087483155735512416147536578228059397108392489381723031295753904146014518082079165482132869977142308572736347671705943080387334698212569073422907692872100904106871312145186693832763663359413491282953087545948805944040987162973769935849606182828062077055545529373262621532154834829007955760263380223105267517096194682754988292002126151665197894654789215664406597003846309481754495315861426064417246651866493112628455055613032130921052538835492888185279250419962991483786066218719026196252395358991806227143243430288477988286254235080016641372854373835851468892164022411019552107237964250456958957352811690194798175406860005610057303790042307550038120905009426449366051546144083620004526842282479176250501772589430927069080096385747462075242589528184015343015835565357655161468603484589485048203431711875222781318941092150448181170777238190811910296774455211558782713706683496620935161814163762723439952195303104486284528322509084474291161267650361535065527489566744299040610565434485018289439381560440537031611417327508016050434350762765900721107466194922891125977016506870782031400094360841090956232931919574809711891297745462763865225796917246709562518372870901938236855282973812968901342068151212479696341600215783243964105393993775027856488741686700024238531749537473703082767549496699914675625092805132418948836020006750894501702383448860651176220269951293546583068494027129968361535344390749663795066947817200475737964660057934157374879942194733793069650839313887200297302316850227030947984226794768747774571482529904569002100062562196195369284196145936883053392101812814395283837820950246325786589322806933303839503778516448923488960771076766414260402058329228439296362549839211563224435101329082915445050774259557383884361135871282621173053359908686616164439845851659605017002971990198090905882813581940254053313129846009179502873902845192325657981913795585941036473955141804554730969682628531856129740706603171356592677767277504454981031985209077006804528023025241002454166898064156594720421613271914942142924309869916526107961045405984940631355644317443671511664548647676469917584290218407391737040103819412005758764753859924934848096334191884197643278454084050838050611471728439528498604017417504943310695325439447699921527504608981278459989924389040044543101565452471455470131258560682566893866038750536988209664495656326330460872153659473966679554723010968379073990161743216800461098667129001719860223757431647213090752626216043902879747556921171468979878739485052833556426799945954480902199577798135823376188710102339061598308888379475070323227389632105630883487914933115363359058974202997677695941800849349956081805524046463100304752741268174483589126421321966269392010355512227653499666035782822343341282828056070126496059696173806794773906747319394504126773502030702016248075068884841246086067780484267655934556808862742926584825731769573183033817033967873176313527714193371860563098772309477035613739330364216803311003824477913047261525239692345860818735966333501590480779535778322689025526702082307926627354939068676382754898960707122570074417743783417309897273987141271570095773234409691669483623250545915798166161697909531065237222733258313569554209141086492384663134337802692467224402802654699465735276205719822982464408287876026927844112095342237190462990890016851802110768235660772008568212600216287821021984566774936356071714274865072964493638908004981208322631719504963125550884534063370318355694201262151372301627367515708633327283870076292208095223416656180577887791576778837353898058079643943330727099032876834163600980061378972879683684705474226457159379974963075509581953354149310829101525053158270565402956995186798810346595642748972329488491494581650384740473676540818864741728673587383080323260273470855210016948112736887331367657484482491718666729966279285378559389530308286507505155297062947868576290799973758888403561469963427397259369691248758546778889867150131588752747497214535413455795631456393836695628874031291832183829828342049875040262329830642143022038723081800645801507167800168547112349864063195505075526095165675549214202157992444686182763197434632224062194597785363555129277451524710250126590141090780645192015358192552658834852256740818688249424045027178548914594913926297508919274642731883013716311889575766775558520405948889043807299266863418662467786186915443947320083523781804612624072385067065551112634513678919419874328767668311137442791983238398592883151908988886583080585267098240755112488522031138839786722626411431035545048160139624604788077708959187782604557230204322909133302816673526571062565882884960778741071643967388327442049426706699944982650718606548699001828478628472810709385961802664361361095715359000809234534300973807338094299028947673636636753453363797876324682885172459363698888747062755996730469207032744949060254649463559109298726775992180801131177819273646395386543500410446178639627934423863743317643349530541318100001208970629702889859392749190343933303358885793584809075962085555678526266543029665428096648829174365717972726245239773913042146745749261498947850710459291248377988221289800729772586740341167053751815405398704418775638994642752927308874283169665220684055522996773873178203866843439197050544958573773352115710168684036645646283707804826367854630127880184377109438599050409453164143807645302339896931393847844288700501490143474342476973869132188087025339686526750228028568137213218160397233817514500013681196272108292538066144271921274035766633532198822001561116370217116367008018198953926237279671910587481741297485611345359805785260091175703646448961568230271090164976838577171643674211814693933395597459232395395281604973084328848845861604351269436666699283221452148684181352831472287803373534309331170113564615792419099818625588524487730894734582434218425988421220307573419549838378463441165987313868809945197027744050652122615431770126350993151642021204733956491115896642389047351174271062048263873286801954658573332484649154675207739379314876628488046248627988126389350303966469104040694598689625439666788664014882373025980439910726362444806612251334280198926349532397414701259794515945115922288041628940501955838543381062246604412736897182774826610703023061210558234169885642247922333789706520945972888249886622088748803409249366402371143120200913674323407387146960130981559668628894726153645606006136517140284589140813065992753693912217593037831598361074385813373770573300191126630382426804478521442556856326661076703138889755343954733102665302945651825683986170377339075723395189253094119991311500175543505558973213437710619312684478711386068018841457286499874586694532430782991575129092070541389955355581142217399301126297403735673162734781887767156057102733433984409053527088677278595513550035089521249455773741814625319355833658055555528782227097799231583217317615808818029699925861096814480793851111127441730808498974311765066703912030633420962975160172760636463101132301149324604678791993042781894550458502817681140233576696522475565243536218307118975065806046461728408309910883954456330884272036996982628095185642557364633659215664599391205210449110253696928666206600654585990948585270492026679230482907502348489150497385018023924278267641434941987858578479257056387559512002681698622511635423096845219547462191019154611300092159836193483635310699685329133517799170632737737405047194205685784902440684549415880961950571991465635094808815633382338377901030893803894932543311632738540477937162958110017029597563181718675273626206483645171606656059515422017867703574467378540219903601502649982892808453898622775872725165541535233577224420219017253212284804793715939164118140491103996056017347935259050080314882525869275565198569279819442699217229616792146899342946063224643984495306035995262525749114044951989197581100182496712205305589619517797939196435506907537979176107377960255001161735050616899162810857875515486384582657792151262097552862834777102910210654009855836783177580009019881320155951208009260712375028698138869192449760492970809521230293420376125923503881300701791457186854290498991066568138863128949766903421288011754191134565231545390269350402158366956290859250058872252760079164399598525880768022853116275156006015852699595574739373305446257301224752675208240928723727864275647547860258607996598910086466838875217770649608121378863580488033588540766332454806024764026256528679216261569570271062424773336342312155498167111190558395334151503891300284431707124892785760314127125640713123251635776548406910772847106766015553947140240652030684798747460694248879083132636946229878165956343703071068104711840574500634916377349701333924080530726781844508015302583282210187296774612569474038611860831902887327995247771407229453483246770619415255253234179976230286184071075991813569744180342703221175022520372536237659159564114414570887309651417232322650841414273067242747173639899658201547086220848146808511753574571521362557644650420280973478156375641414087564689984834962764970037301296444206354174847109921139049982253530459036651590500395319354534506804292769631963441170688346490400170057661416608914138808298058045784977182305950418336870604648558453738091106369407291507390107958965265913286513611883077926397426294509772256934341214368076422782651587930791521965980879584099826676771538997008420517442567295881427258272803852790264701176607446599748833647758987510947824479694445742517636150305449671547032746155323073790561945086582575733218843326697530592723966227215380936349422816406907331078027075044864587893795227347269469670217800160705564318437654511238844452332950577442333937971915820712335693703838396236333607634375592445137751888558641210840700674429080769547103124934754646133104240953489607893103812173333943870366999520601305039357792005982543721959790185223845937380379569271369580940421045159354251942302429376817613098150615294422423067004120105484227626503257976354498368880696321255310949814553369921317109728708517699516719185972325304077694949361283305121881566250385298372000201265356338910082553107973884028521236678397900468926988796411509161676729401913113838191560466109760088010116098973728064412418604371381395073298838228898444560071862152104469882404863805503617351072380921209473967165849194353016075385389888050313240168689077572693525933705315668918846409118720727003916199475323416755171999453806050345132810128303858322307539982149144197580900970788462108128812885631538487782905098358377021809808704586525689325412856137910644482674427690990119321200602014485048607237961854546933742552297466929801905556640628174599516214141088471095518180832171235044892678570848499178451396187536023001084323611456658746909091972519846886502620813843495277881643020751842781057556640094421763457612084847184216323654723739153122089013544829548998760265686480385500488537595074026424650400268485125158018708538576274814670581983696836127444688987472509204974725076878052353162646939444685185707610470517451431778307570772884839802470568857988839592196516232008050602059050783898226097914368280808258417224198149444194833800235711340918840129566585570439813899358094116074296240936398999094115875718094443943133780039241784335025655286057617173049997180464783425425027577255418215175388060813705500784860002844351302702486504424329745064836869599462393729115527309025524044113334234192691402908200870904579588012077150650465506552166367781766482247046860702800918433578383471492364100375319212734940827713390298212609542504726744435556654751635215160123774405571471798294672986267639861238428143957422860014613170752676355050448128058257434520799270090807625478919352810792183788163193413550213324197526812051171535844020533126434815165126087654430637099264873557706278903031840928572470016973239933584250557229543694014404777166253432145735994239091296489445755141018990291112038420238859520214542529878142438393139271706560847514623718789584764232975868735707681253144915814706476552536376571862180865372338349656450293952121146912748315156396878088574370642507961344763397988490381893747887473223938490615264364583777366485414810841431866505056063841704066899068158568822788981154815064280452003060232232396642344194286875328184959242334346875401812344821324121460719044409580092771732656357586089700342546974115854563188127275883218344958389704242517897402998975579457228346786714735366830513015707687744704058737743635772560008014064825505749101199689534278242181582108232247904443810024267177917422793302353149129548173778452005685591875077172061754455937416731771621063773491961420404269999080876964202031551762649725723970955252906141287187300308036030489736814901256700614622536226621616211132602855343794458541937935358569855715713249244744805419501341630212113799081062397066603322051855363173883718070492574577827308938768982276762232519638590318345615595353199742841757198290603496907216659123548419974510642722013011606846507880771830193061149682476460214417761427250508905774283441789890719688103278057931625982943341230473402257523620963275869151288761593323252731976850387519355582189239257504655759337803836670301518953668377872766488209079245676620259495510910956467633379947031249090665374901864011064106356255771582284726914928323986745218657153610488884357345948675219400465869332215725296186575570389214127241931346354280986041143831451504217007951793366851685134513113276764703414246103919079166825497574991365273652442685295740485042984209817344631130780698278504178996229166336954195816092851115818246959249315383657609477900986151755320145219795418226789810197389318283612101041079388446294709328972381311771007725156765154826596327270762532804937485472299328277475110872105740277835834588338927751590766018731153252381437916212672440583913662395071512809901870706908585548944483253117684432010326612645807332795355821027981554534302509148205269370301292514190560109864363834488702149241210607425630863426633627197618515598508038037693103921930994093583999934695154724390544712940057170257868988020530534995392992361144444931697984225979967741559811615878749132872558155006211068744390210704156615658457121222622169540090181543873502231802048678623258056672870167749110659419239996028968487959331516293701522155438111005021095393642938389819068946881421167302352067504040981194123813522331824073406451020125772238163517982439117316718901006401849725642274857162670475768393391568555852329491285624276580166331848074778281332467327489116445758958040215082351578180503743469691148675508728030117589459409407943156081356845598435388249260096582350873734769511421151559485064853347995920954955292852093623429308677633082227396960720666606074434982657695176421030022503513483506887177279622695580457042481190214074640118989630450134388443197374278758556415318006289121353657739442395447995775375976230618346611498370551598214643861134115397977510516238807684238534449045656961244313418366149422094526956041195291128133485370585313013794864128886442023733070682258951221108265909233029656575268344802041884085348959833138937127537560614229553631241488568716356104262377331571212023223123527982611023618164421018810405536458634389707449182339866263147326052240998971580948495257539076473846637625098861962692399387170426014805833580434377693455151302328642438912491835631215071168615148513985225860622451144878669310162279738440804300294087208114474622101373396833362190952052330903451896295014926976918443430233052120253723695439094624207262172616520850130020296621621315630432190978802444947920911089820554168142774657361790663006101985637705127997131054081401789091159612584311646763228337682827834411663098946683856774110731987663238144988581867492359776230740117227857530501888196383923127572277087603948433580769122288870262224129320503824498467543709307722086286760459916670741483505369048691639876625294656182503322563366143082895001667942261927590148113731862766090727771458280322385098593549412333219574540315982850061051531261879216439987377591500200243328056312587701633050192004281753352253614636076528377071343357041740260788009435248610649883673484784874211073908422820236266940465999194469500233846213825379676961537129526671545923049080760779077145081540906848468547521890017283727897545185561043162293500414226917575584085938056844987343052163543857306918901658389433539305806338398933632636931622001494443903774720759788596878712180518546646451433341693812244167554568090424452920481579928376032591006099543833742559087897345617377892278703920354540491047489618093242437082444494427653936345137233039673766326020220135299139392772826717063994540620051315368673580408939565805246589183238653678892321537947855324312235906643958099689649280016179459509497482436681815883169811405221414624586883908033346323646154011470804651891449912157703626688029342509593479464189674940875252451960486336748688457649578847938460726888898260079519177374707473465112324819783455121751705283547419320694254687447968698809532290295365740264655786998071992108930095190381925231414522685397669766007921253458650484582063796009866778739007083883619224990811972038761027238396434116828230445512262043683084486034655614287154200559165918028400781923951800345241200260794965884102759513050859087544906124565218823348174280130540009884147272053609655495796538151439584847421121317389699842703634914665778596973972354612858671759632064254057276974988359046656502899012215367528811466750462935652311920234969156952724423734338857093321658506477482373866744079509817707903407692259076270523474942577573685071083391752323021280118959477912670030510004749541221417897815732453880165168549909210590160199167556876820951621199894988498446101266802825780175252057315946067868481970115529089378475447893595132753815672852400832150672532667385221798438406974855599530841978657121066517756740158704833438442368126903496124419937122142723369327304937083748220651845833778742839732517826339811299859595701192126876786980468834269660943151991529943132297811752072859549132196711657414743227537784343985550820131161356422704659562611375693738079105152883911576292916400412380083989331181848641466013360974802691000494965554237772158010068623811972912469043311739176819156099965136441520870452767789652092071900286698475235013992813556096333472862981112143374933306242076630670812679851475735087615241335178097077266966704814325154793319598599097921862541994237276272299272077889260279207589148574631647871660915516416767175144994256273178417880538068737264152496256370210709289337757657514235239810334006843795175462077270214220872310309809493823553489795633443294046626749415675498547001530684645514115882131307298395415166789542596216315960585174376635978569944725639610653496453745628926455976164222132907834879844845690465475285734520907433623477530021909088666915534743418575964574065335927705185806087547199397135779350418286039949186227182571008528948264251373659431884261477117541660737850233143888780552086290911396078024114085183378791507465589977422623265354212466819502333492611169067358895182361694161671784272449023837421930508489543983206643118446743848677894660636368783521437370796377100907038311905946784899762080475117900323307832980108381294609717344073577064513412672967890589580690891283074464407662683873676808301541299099391210627963781242845328380801123804908204381186294219396470890704397612756329061043989223532793502620986751172921962943387300026030491591399914381855367087012226958659868118519930881288735284763588004074378959813962168588537709682580555087080589907195240919353599617552841095433266402620777715108579814890790116663667487168590402596836383427137984304468996045168705043899374864105716505262350012150331433523342026036838853008131151259962438245826331248813616689069677368450116871760168219683249013712479639413107684898197087430516864233674012864069720195656396732270145451358368589969589051619628164334363837294268340912626196981854794237677110936243986985539781793031277734065944126800631906215657955013756574496734212965159555157497055795075476495369491781663510587338712757863255755626894923953649292350687707394697563193268015348959260678870065787146891394359829327151927833214106431487601470460316161748169639397997818577667147876464110400654548010081018896417715175867084523369715034269101058375061740695248033750941695449554590274892371007328313109282041242555460528549027096102157051752316103603485592883478920846773448719119519330717815641512564468943295477255159816375177544515486444703729235704672949723123770417929368840208145271209037738991652316826600925251297388934698757952258592259331924263709752514834576713596792571279476850446899561452363033132922585137796197819849813404782069621887901256000426849949623622036278271691306532211957758723683705539252771497083749774557922094882806750537687522562436295019403193089613859243439723228808453328416183945509601360712098582912333573962155324972656504285762273248666694867946138116291289550164305064521227763662586684823442221152296199241239365915482181614063312531992994961494053049536280157474412217269897444288680426923423896286500937458269272261980144378088356689792660240604323403428379353211902105942181385013364730366476290741596506683854454831092244181905511307320697168001512123577725040178549435427701279414965750805458090417526183234937960225083652109194613910203234380723948856859807154723577425390359260146755316053616105126950989479589512103690206987958348194424601269326437778458375927362334276832802987209303658611718762106904463474510973616169558784940396092144335818512316527351856953058678514337333610460504804827328053434746392688499992426038726965711379140645103453123666777713825862427932283828700168356091752447138369311384952034161739038009478714827509270226329821779475554910766803925636567160599937050819901241037626238419422440621911562692479376960180416408647834856841021724712616283821366463467935901822318208147780429695007979629859264561541917228587525723885739129102956526110870677410053556009601911226831145909705738362727005683208467126838101964842366997371313816967539378036636214933996775460390876733231222686822755847135484190756160201281789890351551684857944053849899783775291649156201514369348096635269745392292537150519252249871882701543576937790308100991106250280419701249727990625658548803009785792114620569657811108089006836529961428240214421520983735672587735523161025907438825929053110676820939559625692275924868359666388879709051177024063925616076632153479215441799820772778301290073253404687272106519046638594015542942389073133650952886162209538026730278602771045448280092119327629505386532156337739861120108093736983001797546519041934904576431409601523881854756808616728988010753536521480977427008559447088726781652003939112639567538042224441446954490812187362290789229682328927916763472225288624042009442308269528101426087415763677311733539456008353494371657138855947075146787109745258448771257288729760864333413700583504737287946846644548304610391990905879726630108101702749043519382281978215117477466039840235328804244217288474017184276992845518995371455177173749397089195146885903201173276279758077256588959121065689676273880328947979581480683998946682415274506788077948949433226363087997025655939770441551006840695978641135769131464149830561520148922790497459943360722837170827893549931297229153542309924868226320263065980665472667908463148329371948021812823008610044989443241829986940596835875899604555932765037508329580237282345878446060611331199787940558506992881944447830689214537093014039104510015299837858282486487395571966752925426639826141766784564129321519502745892623205412806958223200417790985050330592867253638479721194945675273898626504698412868335674073610298090369786173886026946902060887075776640630386199603080095466649322436723336895689204657790546831593836616818107446392386325322885920741940456017903494424868466018269417410152852831498349947368271056509528447496878111034823105123446709481526027085322711234779922398967623379282793304292332939359958808048768005993828077959582286837242423569395872083569507963011370599952181468888677961328496268818203194203688951450922942086125532363514151572603041771004831944587997175999942169194477995542236092517494205377379559054593269829063763354866583055387758147466809023581561274796994355685380083215164045966094689610444770911412033137868199877455011241559383634124563534094382531813537681992387934611643942628443297933618161383724880015985582018477436216173795302693888556789072709856818042290390449415547268434295554528962050258322227704610359481599564158623796822469797788089945982710185656592788137511207774354599876556726842828270773685438690314185276903118057381528340248093349964237008805084796528891077045476141610735186567476955514088376699576924721224808976294277707495138406482565162130105476248934409337896152612680793859583214239409471133863244141765577070020575171232047219262185465629464348861978152773511825593596976312238374888877141508979636296805551583393624400842421967526952892521199002011010999680114619326560249493697993043994333900012533433848793834048409635273866685264200375912989469684303110971990975267366890678845505264647749019019848040889178854082437699240950375486895886570811618722879488709144160048142765166407561456677694967074742469772565735439639534103234927509395692289629827392338198641725391221928664562728605693668644707967237752351926210583817106683854192499231855481372223520265113402259197438986617429684369911564444299722521038183805960959359714194265593778439914636099550385400052955932626459093234736862126588081292241248980073232896017182431859087005726886823000128094066130748489403950984130182312463745906821918723023198130065033752770704539627089370988006167744880262163642412141362567042033639927930719858515798120945151436691919678815736480141937392376367970782976569690160703784646847044367426506883411774315728440390453580916390015428515144249453547750922248277481624724296585283825522153799931319743880907188741714783010153589236236232165841362734856755102730989588443671816607524575911776790894697786088878499491442365168703023806481504328944939506087218625142013159177010036307978183560568542797634542250589862989936206211717405764054165791737267951916218461092498578392288862618712424680508524260991822943579927373118595176289234062941693084071893649362386198881557472467090210283348590430991827444678199255834754717617184557116256219661615066468595843899309579962150434789173587312190121285526504792401214140775008423091524092394580744377736348641582852097038270413133411206828351777382078082412891034181108345195162116412940494832827163890114973833778739023187552881953837249949394584693299299094619314947787813122936241500869121164246544507594984450231084256052953496909010205706471041748913312307639031121914066137233094853230843909576723031576372054729855408719976381718608282348660465621042341740205093587346140959176875758180931729859148041269021587390963911639362943878341196992026141903289673288810985494231576750819426310056972563128839414884763541706039103083973434602792167374074118963451005045725275096411917618844686953567125941204448660819647983657234321291801392659693997698510906145152058766626718101166722644378268271518299643957947199460351389230781038542599556318056380728852092825478693358265530823986132219776064729818616229486153977999884036528511584395170540252442261080729662283982739747197585792162714638131655439414574515604317248666387211726265143469854794391836202854578658122807078973470425645228944100688951479171448145513140706594974121864329881622851311737462922301846425267276550929877863419025122477103253020500028826612072798567990780786384335245740566245368914871350169835160796369697628896634444514541878179754027825538549481862474002150698697965885559010241117033176934179054560628651684771449335403296478587662742590166222647542585703911772966535944816119164890030278510304438429004455874286437301122520278560795770978419631490516454336536371206257447798536903545158638190185888313140584457667078168829392439324902859270670125204563414767803953225892166066599173616613778505114087734613579482415991185233984668919839194880608336801751313021193115111507553937222883337809358646822006199075645612902835606127968031728984397776864937587157024296541609278120012274585272990537826059585681220203134956321070516148680524098516200045542768814532104395850347665669703115227288628794600710344140507179155833770414014071465002526045882842539426242530580093091987649909932828839537916278214407678442671754596425639492041102807532364620600134455790860150515197392908832980353563492582504473385130683449316742549516718777909802993500143315625404388945036982346358587369209110701687901660393615514599963546282555680900402480208120514593687123474244516351028647605593746640466144942246215451148780985412892107915952335492336369471704059845311614204126194650285454544336579646041311638678813529907257916137758992047536572475783966966253566310742990055796805449823305139146190999922291422992125555683902257731339793918362974807761195034396203881134733242250676537420277034770663318046986837900860281991068790353336452795747097115771908551745460370785359455584811446003721752966143890369099710179130085480846028580544758239078483466754944569813637070797242335402376850123064220372256082583886310470091021738129784946837017067811811656362794114908056708190201209636103914831594363754150122471319887950020547072850786252441212984529248608223711568153658693217075609021368302336624492482034523846398765833893832710043283718667628299503835864505374192779323756897175102950408574164189331850535864405488970374031390600586580887434078965896743460863031401178101200953761430857076073986447257732930121880028862228315685008685006197375933390038639054940657563238646435675816125032350587244075842609305363763562435716444601308389318039431329331095084441339057227020035463019647509026108605206912113191987138173358852435626751286304501837588543862044773358092101050217328581316377411822618920818176293213601595824988070319362699359106854303030250376154873238614535041944646819593790262408640222341186579360497950787494880022644559036107357282338688393857398488460726187596841412109550329445792218553630289028876950615360986552745033421535168678820638431672377389222499141503685435902171607291053144398862016753769008039010314150805890555665726859920292021957053771717387502762055852692151112731345198624813035846276820575926684623572778801025127761053315186096476986083038204596813943502213248471419534593927316368850731156624946922553901983709291272200783649526044675838827652015171151567889785952686192051290752278774188556897999030575301998370560635069524627054696141499028505109875907314159321902767272812460750972402705266648449467927169604802097449854201288451652731979277845593283108144901810069805674493573975528484925858376875680427134160149180145189432567319823690467818031253992105176108401919813216394164336031619475994231963928692235701495835483845524271159274820864293661567538570727320917876326271740775311190177317361975296510316450079790157451502470875782491012561051554398473682594068303707256069009174571857772659622337549078476518002873029605988699164435253816926227344518206764851220123775823773451826440092017166416771663198395832559491011301225240966259498239434160331823703359581309634097259512488339218399559248353505415837905475040552194784517004760220565107600294845699573191045208533758466700651608580026051138745441251150756402731100639303270201204480110761539446735535576156602735974710514854534464340976448666300680091902608173111422187723908665723454682170367741970238455500900324744560716248019967391506047629284882738306598365975157842712489254675587900330936557135460301822532177594261258019934174769531914228536773383517250195946512115778783078141480674328383616251490112238385212512468517921945826995001692122580843762330329971189934470537872563987380523497812897470851682158369392640236706740939172281481602651785308433492524949949724786493066547202110090634700920529151081933074517995522317719392503933190586243786890076586741226351740009994512142213813300366137299554011859192386135809476280383412430314908305898950241375425455174780609152519675333997633167103362408375936130596280172530384445105160801335967301383971683371334402007699509557065021274905981082662882494102065751281633484201614741900259341601613320732960409760894721949269814677239150054024668938513235828631042639056780945459422196437143509849421796700487545723269298968599897913274535337999572802056681069884020002670428716366367775132510618445729445277389271785334432802739935214335383606723036216689776613547438689211536166406072334116247129931068255458021106441240476542410011929231477846089667139803907750060140659479732966046900495103499066452383911889164439646718545008511482413499994123373359650858512953020861814620325753458584106329922315339910582431187703717425738066330111567433711814304346388416665461894118526448776802412614458167517852680812392245014827533239026322016331592681172708828624823744414684241395797467640995826274724609266907439949868662922628960796916348102822582510890060648732573191014265724390294022177788375210914195033893684608905107255763994628220212414643394828635099610780821156556004177314522077053185105350615310145768456227912346838541037037370435755464408442609997629019279911328403720400353361657539387886209762767403970554110389817566782699338500624865536596828249510627075898544493286587967219236075779237152501099338498690201370586846700189775525089017559880143846950244030450372508084978299365815137259865579527194073164184608225323668584124488838475328328100610625218596785628000781969931817158160802767029140063914243527136326060746864379319108985930995574221857376444650524812740089653413491583331630450216553688496776118798653881048260746187702511950732737915481288186213002779556147465984736487867331299979295673834437916970742281308448106048306973894332607137534526855679546974830763333674480686761871395600111897693277539624090727661588620225878511980138307611666350458877086408394585749758037209976316959017258406679383432396255696559470876811548663753980559620031936155914727530601231871001907911122592924633245468762416866614987463936763646817833168222774779840282592059242711696644675939597494704959068834775055031160812184360670669510554838727165248770214891084040836233330503308436739388307792095244473276436153181179663328462266543454832554942900149995196648384288188551094851568012586685922367302432264852383346245092579865951881419645017941121549035258933316575148951062279579057644475018486567998482170026007995915307638867013804302005634282158002819610927188146380696371951359907682608599030016785292194793682332844132839229681584201482617248799933744979394498006232221756231476679723375943925041744167597059825501743379820398263121024190377861193137347084315047703201700800699263386428320925927888869830325425828337442811527057787740962565996766469608407208898760077608049745886954126104275392647954403506532165293902631567682054729208659041675406239837146636876907070831226397709856564873188214319167059613655861775363994058385749846958166815559997223104739166112128847519775821232281883509979267883143710371205419342751320244631561941988632512350255508571152526071307193775660258682565725666802982086574370006795242864081679069039722512124650804901851775082726985953383246481298931447051787693594477237431007760265112294385284020742418676302308854624340526560496310596811651955234321179183081199077319827385719775742142103172660935750014469984161549667402211924545052633774530043818498096421217788383587541154757461340014654821537986687920326029330919738538040546599198791664787948079294778157742434678996819555183348098619245642704647368693596963347391308623414758294937038432492636108998406629372820888982119361209652336881551371786256277934803144889083225133490488034300608635206261082761438615208812217088144437876084780037683817813949764194917737038993022520295815745202468743963118103131304177716696325865857174528895018076445807837091434818288492216070591508702405943012523899302008359737995886495601285261161441597868852301515554704293052826797098814504846765714795941783041722745844438042680313385344840154428047874897041417654516664404675226403174908952556217989514135069136646315700103583748328658989655668629740001751702234965015237668078463420590659664565990915486306054643741930892363320362371078639540128716804149159200384010387326783454040459553382225240391216192051595734942199135707156140191357951135696063955040970945213388594154677507979507142701223153256922573136345358463426857777834457928662970301873324168638937500327631701896638992060154668969081259841952039707768933658530882475431281841783038226809433825009211046406396852328712141821080490308448345567316794894889202005335262061881042217461749710922243568048243192945368320605048688480109190410774453568781315551247375399409055516248866098598635101977167913166434972775808876840874867289380099776440310174117174751245578836211229924459048489523659387055105236707031626660034645852197586404063535723896650710957838227738956712215563273676882761867682814588949872607197769679154841969607599693392726180581340068415080101573166759722295681343861039727670719830518098035223889789590683345615343610650261808624962557187134417936286203624848032448632707965274630140002885747155923051238613312940072443815703225666239261190336840676809055444504181944910372548406874195844906279957847141251554144252726972196616545227177383756225316258685824732223494921087051545931576966511518244169813491142910673925022247728979935843019707794040792590049994387023955336077233727487249221701626303872156190297588628809903547166699476127524076663836702550542030246422956562382920381499840537013892035388944372742208868818322184233398628055188272211000203892576424420806367480382953645965296218590256756826800231440281729239206521604050077692445283177937358911950562555615979105805852305725501887121662038725571987739916276305090673828914925632900887511183208970226243531056768452236310200713953263767108328713693065628537954926129351697951966355030908156066723415895609001301900835829726527541628706572278652839303096069261045747743915921270353270385096847642711336193140025837805558714882124999364726755757818516163742555542553487221085012240207506308586651784308445241390129539268429250347519218728076566240701687570687801603178758517355211188593483328315121902843372858680200177884477390288198850720074928054746601313918137837757884633180487452870181742159279922957567240529126294873956166941923452096780619633642889450907289533461569443444906472880226202202916773575644325683255035559474099809322693769977959740474600048384306028701328359280566738611352560863394301676900682240561378110898656924714724298181581540486196822284136852923205830411525195363489013533888440018901751240498575324239258307045497252383858905624414516073254686807705736359965317901949494574731789487157866044178331786262675646294169829791626956254859192108998945829489219033382197020105491913669122145857056435520617330098176427839858975523026411398534018935818711228901414417767620810079561051504589477435884121616419963093831331618634836700201389760152565507263326205860069739694779547556553548648969651595661868706522364257411909505149769980853259643826797502941332133933148087120830849048547015410705087699131143795773646600125810500194563230928440953397613213531844012134020760556570186078595089931369313040699824512213343542320243049791878858677901577982085178775177148752613665849911744136754628012834480481178206688360849969292511441459984281142377679501973655184135820984738449212586327187241671156072129861908792704718701989754497941470775751889124862266548881297852628665440138745635228257265647015380870434816249176542660630241789953722830665348891624864158297670006804615354792371413510432262115357926664436210643989900142344369591983431631491231748331796314103071673548950432506454154512366651323738831810359668899923778233949981206269289896764073180587902267107808873087482712576806474875487940929584792120318501826369058274524247839890820389011408897515975960080829477947856263827392002119158489650929289838533399707660080988827031561650218327909340640006243359644843909279175752123882930468377933045614208342060093006204756188591625920066738982380271837649925437336471310385252898133150411695517021712630911169396456381272620546555684118061529752517792245724342877986680776251212096635162127600280288899169269354518032809623985860856040410339441018469820270908830311263029423617749434504331819168675864288715619379146603958413790400915906935131927921581503333116141398620839562240510386814800573099090925340286558522696280039466627627628688118630562815871848878216560826524426313396151868390507858210892810582177850584535963279994235743079354892249088645397642239640635076248839945527721048434181658471838554215747621209199047038603254402375711068571455200884356416257311822558062537005384448499334121515865284268624000600340310458607729458873784226432840372131187675106219859315103783309753914977856015875035140044211046410111223524554190236612088484801841095583711866202744395787238450806301901531266015964209930126250928174814558833692132897687568413332826775384840911112342162844897358843887166770425789143892468942263727961905860346529104518612035636161230067675661040235139450709079042235015153753535049397196340413163263803770061902514557581398998303730999187180623905398694331087258895058977644254697528008214827283507787368538326906834585099602506297806645081535696243922204550442842294877016740943918600538016173254016526651815811900868684429447203095713676005976222866213458824903180611315740375079306222613429728954638590997223042486041065537907713811128121843784154589594386651196623388232887436703709754579732233667853676295553875328951773735403819553996791211040942484968493036313356431540201442148924184491584961210678118983034400129769852168790974475599745363940881201407675212624267667764369083690199080807139917802668702937760350782580206166445506348270005361481125419975820423791234694668237972984715829833963760161235951112700241323202052166228886345336381481348607469787129157023929800631782472234125594919637599931800792973836681425420378671151919398321087584590052054768099713595834418911555760470023140287422552810877290980189871519654016369806097339703193628080619981665895194936035965193894727963269709380635895882965128316203393990013086245320200602602121992444136338992227709893269589739992845195278996247249508094825017743560813163791865917147677702213863308778596401572785525465653095738107756280906408966872634668795508475596603214607073032479856344416417683684895153807794235697681730690565425500569408864928106720500385630251160485198424349619540825496363793021565543552161079606525830805588408868647148176278555735226472036896260740426223003008866634339520718559894077000500684195794538477534879438913373865812849707024353758969445665016612489061125993690759463868871012230100649658098335348015381135954894758859150275224652212641955228326881998014032101703052755830027452967246326918607641218379912923166336677335248295214528291201108455010323365879442514428486873018366507174594188739252895820358665514747153843990744533003239445929352466326276442179921031539046507007016059470610994730467655526611287043318102478512199658446440297278507571487622999037222737370271055324422757373537863534900678662269899483885890051869904597032946970776081852626358979719691505281058636574499754172614067241673784936945010870582892714021014892772734710280598693886280598962284189120681408139338089645367783491122858693896980031593874848454742969352539756451252665037372889569055484069059528377263949590627273905184764598867737257802911825261511046842345405561251462849302179842484257714204463864165262050026056477389073562425866897027570865734757920925840348653350949813772389536586576801613110756221236306705680970619987204902204639891550502817163125381739906734693801930317890007565617155269206331529000886801137025827050793848654329359798626277809704991840275629407014823502282783087182567445143605774074224051075922955903375120119156015018598017558430558567754348971497368642544686290530609118582494880741950931493001180585464621502574065206477875804795494513290743369247068844257014646668308545044627329092993408132560758783276923352055524636278322190892161309915243172893458629506827936765267251374884211517611312813899602255392178216906563350539294717127452293602259631520080331269458980277889032642267452521973761127267901056522861194808038299236850668432181571634159680437607755429173608765546731195567147331002666877396583438063904026818369769711555455638009699432841631733794689199415867027548838847004487685639784344175192911482646460684339187425757102161803172721643373725801926574319533028265396414617328457364388583913999040168849855459648911853820417378547287706340684199206881816143480265042376401845364439173954489677942619732329646129824012126562847459669284795003868353523762308554581879042367615671456394468921468375182076981683710657056000978086354290922511508950083353721636404903666459134864054053050501029356892875884698975473607731345632125407023455182199483579599734244131571466650225143583597979308883057810767078102578673859891499843995710511778023180749196986345272244460432766379388734868456907873421210892205865261715916388788481500457247571454596335116433765543694952564236861774828721861025850675969539437088637359576706882338094341516824336059668467522845059378230061035939222250053210488208191407895632905599204820711564438934422225203620443682867225194931915617942549876353501101763112055103002640304890723761530690012709357822229672864025097820583151544205229822506760208828371162727447540319955935612004302265914727233537746441470697547116742021007280243851945371556841815351040700997557761174640788145337104529332449416695795011947618046771831385427802989931806776777450624326844119097929866909238967674009173226621472628573732527903006072015027642104603087888293186372825627593171658638690955275111529604241385243082073663795855077573918862834005801746565935412949456348343536360119016716165607456210062790465687763311906343623167621185651763287337668817896898340110293761854297726296336573739628755014875297414087125468807910015315857497984681372697059637508215426280799262473435313777592217234280435704367764278094813924142102246824784486376290445818026705668730669547052685194828255392097455457377843540923260721630289515514355348149002468572738690688245382663491677287022339484778622204383913188906607776807049181873725168619425137465305137929942439385303210927871142257515174142908747837895891158568802884718127295127710527498812767115854734097754963339806800958259736165751218990257261411051382335535230417288815017788397020976651925753067083066840186668612503158049987693766526493525536108243862150736712605686397236378579536422276385375958922578010592163892762975561493747649289226275935468478537217334769970830628828611360905836578137502385091038867897765838495758610565844243584545380890851109781369825288098688930101054373121850240221011882207945158828304343275282964475222851933210156953024277692130358896484275651893673426092130806244807165565789871486509969753187015734605375896829199650436411059243812045550155854608138448849350790671990251284404171678349223977401174927130696367360630810792849661187660063431301113513699565500470271951418275021067569294933784420681015267240867840020505747860227392203425147127141908660405910471275588310151258510614433345856490825800072218393571647282051853385205795893860045015497380202572025673686111110439003458427364249190614667115684120232179172153637509563373552462481310289148782296066196407626431165168262545132259443585047221142423566130348334516850868177417522247148653672112151410254940933842913812616902518495455031342642465227009574566069512498297425729557888478284900191060357729859555835407056167031007254978896030681818189435693445147243405479668892419677074828688267661929155445843688867571450400250690462843904065430155344879816429183024680535604007679486579482704002397462999689224699998639640303218046208353972678470792534311706863550398668899191675976160824135480987973324776755150484415304261181515867680591481418742250939779198141058480643146437614128912320323238015945503272251668349230059945640510431491906001209150049592554526509183020255011603650299893585748965818434661766933048764412824151496626067102244648621800143754880316989160636898629576178451781168662394552837422511578248029096377041865939016383258972082473973522623498492935702311098247970619445084900425964814456346048214991538913583085526947996238893565135459813291057437392827834591130935521221878613269043112073718782765463296660579775198117975123704240465442635871102474269267743992059758119286320343230255629905736330627169149325363482239624951071802097941489588294458819752552054227768990784922211468938762168049654120353420131053372515861014845619482405078890155704438929567426140741413373903238948803623056304515396793929003587471527176824837003492687479520725019232777956247582631617329049562832836549499989382416020087301107516464081661414013199883354554053480808307752310798020439683755357593186181884774458636121638799467241357772540278147985338127059926982031015453416214051986255359460219963227489933419435136749720725005492421243614622862367784541566150716116397065311143977606969152738618696248945702174960071682201363629759415647643405423859441125521048174439256543253969378213135522068952266365815006228417628797329677618315931447397521780855470658334915156203698501830551419149281922187682024395313034179198205581831454838206437682185227524479525399482937475914352751175842140170195298505973992793763334488341582539012231799974212999974708062066999459405739753082794882649659830017868435736271726794532573709173622661624392443902811486223047574189731942700164060526160897102046280232313548440075005718013354707172577112987207124767953022710464228328225163578975246353021076397066995703100175038403038719073690418890060054495583462213159674802140912243642276977173051690638280655348041680528300072816834235620399975355920886249208105343119487873146126792216422004166457429077134057293811172019763458292834151333230260388008494123631954081659058941710730599698247645664775404768118892689020982118282043220370750649147902544557336028396689750988437839986371603547556636053170152094195180594942968652870036312873678230735160833535687511952326527291608175564465394817434311447768754596308531342657096139475440867531150305708589774191567895357332637459704596923752705215282842034367220198588341835653690506021243534333860157483347897561327818815576545391857906014892284703651454936648729644679147415507593762630867422747023910680450057746031657730983702248161048807687334051254492844988546925598897124381891022030549147442118960225771998653937278540494552548400572445071379898219653109071561207203756097964885897718225065027328765527687844279952947552008275198013449210834862582057965534555892041731522642578127038856275368811100640011412965884219294960603958594815502135536229285527159852511237717366033439253568857270358401553743345675460414112460689256690339095331943462106576341650708695639862374620048854023942089104494465082437043434651016978660691626432925100558541744658118195611986337551494349375640136039347038534468594447314029182738024182844425413015232956601542083942517225248736419176479514570156849182615916692165588175071585425907577258127182021854331343342332095867880113947229730147704367043416541564368376486276070081776356280266807862484048235811791936863976644434744252472573497051729572383633264711778461646251660286543817371991014082895417624720869154760473233411356750306678058032535058938752782120352940611779010746547638204413595477822298179837987934537922848688301532944126192302910165603723433607533697963704762596425328013158013169378717785715579977136058651933266759677662276243228936169042203152917235021848572640714667927978657522365271890241210174510079859598140638516418046081899736040788275344713339635330626439471852737482190610528374256112388094916717237301719165209072149552245367421078741489070278710693001719512848161882279244228958918601685982870719975126229777161249560161770068310838896555498103416909444581778350244173840581645647015309421287106613708463547062234454087884222799281005471590511241386365245442290041177054960769908254331764162379562617198249588023704406283393838270979945673938428884229067127848793748585109546897427157212044432744428305283473402213325530290456485419371936475964404874046431631725897163288251410035166378628762124039542598792364236597882992567995912935773192338478528459172388429681522568282491042252260321407979518004427174613083765627694170376314915145395896399970164593375496955736120254094236741137015685897270735635774145046006067936825351817212650465979220905513589220556852521564251935299970070216400368760239144940313732160504037795541595113162520025463649055374341034757382771738129230053775979656908258902833926116709950151170122495566513876376610714523189537649606041484574754019537676482470740748701178047043768838471514688474838012126874632235112661133481921434420514505034947534406576049381003135724575024857867668133867107589877959942024774435538768263625708765256316330777077011199556973580341814065789638305478865601886852051436499517446294831619607255697043252219727249048915369571322206786230953772137640152149013409363274065513487687492307848777386312091544575998938984938706415480251894936275821906349868965777197698460656250994523598938309643281023305750830951086558474606491750236602418069623527228279841618333759359986950560843736804132848733310894571367455886359895996102672078124360599029107181573632142815987576766390292395323141789386863209486720407356801066219989971975701392898067527786155380859370213627750220134286631320364142171462126742395571029106732826156564935518650087456823675055867533531071117099895071332935273220835598559898519284647465916475771211569215935577868017722139806279470268154055091483923128878164753812119330826435421966475684023616197195743337744764343535571663010687950078747493967940550402891647377891357753997441348477869062400633629788151393308469209587795514388697915296001220007916731848092361090307035213725273804447558016305849386998913857154401117978293366084530094990841408137744801052812046769151252838029485904460181300751067963064263580233296382702177384271653587508875414517406243232675748339943632363674716201353122767668692420498249329129859014726026644364542308193422707350562004607998842877143028479910248684979627281526046858167110873997062213187825050014853596876865771282798641994331067155083079763552370859632764052582713586080454429019295450028597667410590691144188324330888335888297337384940977125094854326394904633512624211051403169998769843895751894069237612252021561307360914675791670837166911439526884023705881127620814526662916731104229291196680517632131929293997360629143348415421325863072021650276078397641684608622279548289240094666181971622744173883138928489251929386383968805609435164858337916710127541688561735425211984597689233123877066577013471686047423482151984743001737476325123744675332887364818528085626674276003565080006342800134967779930033202148171933181145220517702061183670607917497584462401939515578983097357610881491901733506768684116836820096082253880957080429835788799366710457023135196166893783984978386436553159183067968952518950703728703557179649152191626730655873246189525074698428354625286202733298045578086584973837445964717460248755317990644117009154944947835048773437070613462939537320691475970131936095772339871989464390914661086139175575196540010529442051063634955336986936260347875709672597691042478877116132885675783503864982451297822942902044477297066675623714215479817171771318305521986343345735500848974015895148474253495529170124538086911514797437662849629819595139841524307639470257166984117013454520648160047815923928560500850337312481793524242583282019911584892642111925337048266575793118038441596450300891449119516437588961351712004018899886627922460656604197737992046302283215402069546603514244201419197911495518649328344432061685041401292832759643864752410787121868943198910549868958826286285658920834106408396244826749863214080976745767552906713260221728619419909240991282139298250331426568047839716405834504103192940844710650158852343036541210196622168135158523240432421817399794465333677240753132439660419867154192858027272412843427089839935991904623103337672182954939877852644406878495735829009450105367532659268240247911684735014463237068022760478546951983429999846342464845802504910531809749828013391781714848720725360458213715337842646046861863965367150933211524878098427652074652631311484348233812912398232882147264221769284964456670316587576117146684139848289933788183358534743505303861448419022309762865895304414100892985444058069574517832871691784931759377270554483555936413532125133623684232148750226260828866423822916566698110965585657699885391529710167375359601409456991119344802066109521537868252843459392197988201738313922548124447308694020600731937195284939653418329901531620142513648799924909019648131525983298000478663529683909285740776626444566598019513889657847778999482652046848599704497634148709904461497472626844755169158139140733356943744609355069737030122566487092592111337662575222344451987283810712193396217975075089988065717994421955884277426881390237197694749656335386845667585679749367752737183360186191105899712083241449322189805250060086342471343513278027922114629599689612619939680477471677461837005291365030309574736435891120568716809227449352289075184523430840934542284970204614104798423958644088507293369034208234810505278356378274627200367134997878256097801932946852449120782161634430461136059253348123069775173930964953865026146936766078806324300514622506910092458239544649011019708584021116527819824009907261275806701905545263502473879142907807973243267080202942477772168496068568123654196924890095446948328932509401306634552848365813093634243866562087328434550883714645060018780098530376364432377062310545945389667891579290522183494759609359107376571076284348696610563866996644048518308664127308184684927135418568796591924939953835362243849982267779480980056940284151065044775889257991203859980483280783496013077930521419676196668094076117291837548799805173590495301015065831340041610331124756503586352620112411406669620480237018933507673647295830292300154509076281476287885135259338743274788369395601190824664955681964999818149204939385896091522481578033043982029075105424594953001084291329816708249990436539307096502604124839279297668342667625851430064704289096950450855941095144311123502585983987381801845477728021484981064916040341678770473162355206424739470371063973125185606628672775067009482506215762575262848260962180459806309217269773548882261185980824837685345734776147294259040327193931817212711180050771379279629565645327538772468813104267149701762337233559175686717240177845825155645270302567509468685535334745392546406703473130623094867894291721011036048795881556443772679244997747733691193957698040243450350249509173969596391254446384703278792274609116946229547064634920567272424692690952183396726837781607514925742400877351789611536615691050982518203389402143634803877513579625731055677808152614916951719294614292287088708965161527874389550398524175949014540149757063266330846138764328048960856009526822792947681311147784964054281741983847023214059126765535466789003701936617814602584159336927724861817993667572486933343975782497989671469716129912110990605644536346680260625764114854212724151026505395517040414142772136083763411824579533494961392609261796885906884157659356002611572756683742240091166105850071108014998433626348809555568235957450156638034733369381665790454976240197148376415467110509892243589835220661963077459756687696492863302116296023821843782186952114402542142769659458954156136823357954165734721581664120605700170079880597919576044574555009716784292978745819833281010151604114514294493142364059762746912969746067854996971802799966073919567035764709473285831602639570543403125615761850788934124828738034477322574394949855135129336177323232858489427442181320541676389410957548168012912368367216809747682694185912464172592856869069301158056431668995702873678954532423682227261697373980047667625616366607049980546096520680468545870235222648302430668780501713070697708367848393517719518224940582101815169639624785705044453210148341012002990329054920922909033590774471661402265124829289892790749573588872575928197350139579090255796150253100577642275771796487832691516071461211444181599629698048181967569462843587665660642802703263706621546014485164999267815558796268591763277609420962459591958004778899409207169664655376855993392686881886410538242430528706830106536576480638283163224565711320900780173281514690098664087049447491172130422329422053945506221568740709409486187017898708103349047260362963260041832537718389196761159655087999633921465785028106342858137672114136055694125367640214849698780304057771012131124354913185090944056309335859778979704489118500691442862441696791415398945578186095366970014296358242242737288191147656342326010171187809801638421468335277164047216567756601570393627883114561959567544067701384675454050970270085677621201770192541138896331099892820859099853266032674904490221282196925125434692045125547103731808607131212337159159064512175984724675666619642143918708492967087527960641062824575749712585593953578737251790132945845062792583700736067221834559985203104092655231174619638541148903137822326024208768006044072229942727662445503815714247400566484721666874616155138421817952843337191874972918101915334319029478850600319791997488187828445996159865457922969062853739021992417379473028570531609413938050337199490404310007107295609834376763839670931725792265719780500902555131556752768950793889606181866061652082589567297341633574566389026032486196263471329824835517793827074651276287237405682724815888732192209461906897996242214978707566584641208681345514481941993674870188152231788891090255139035923570089559600778870779124134637231963770608163606451723009627041774470990036284115660741062947953788085435270251299974333924774897763088374096712330862369831252393275669260878784971718039975191295226177815763540945279775282772855186988618675820998675677063604643510170689209060681118058744874841619454427637992080779183682526155405359147788184585222258038908691373759083047180686057482124921624346288102164297985210402772696373471456056337721200664139803449027145151852625266639600049601845073880427838668938105005363337619430687232802348173593586459528556101389191931863052756583445298510648328833486054312767038067167187585621592414051129745573531258856280476528021363409419843261676463499438513993026629223818666217194898729146482202154352377763004541176164832978685074421117139697528387771561659251699314520771870262581288280462230904248250375479584667714917435512970402551014262891672117751780075199356057729387033608804561571278389458998159754767559797123018122848528755235005447510923294473376879993957397058785123672477914484316814686969261068487623503156697051937459980953846711333134520925341703587075310214176385558475260742407168493721283317217190382044217164159967561307422546548180936575761953908821776973948267354239464934964679023718898616512027717412362598551203067349153451749077204847650521254892205307218131990321653291929111015567665240410733604618057421500403053247190190160468226318660744956950853285671549778297026497108978353806883083598639715252399956776089118331249538583840710777372750263955190846112119174912068417915087123257478378839303956804528834512318203425355222652932811695951147625345753178554642027651581832306572779400565127956823519453946247257042421245863039474093453106903739791499293513778934156590367214469018986896570176988140111830044052727648853630172913144626590703638425311415993019368473915203880314308255754437991756889640476199982174616012949364136501465385695045869628085489890854837687084285090122458083409636091862274047678847398759972388163521556684861167738795536396153359394823784691791888714191456321048784208306111470064602962742849380004164809228696572264777423837282682560556325188381571428173360476053542024159612056373055385600548772192129993407747823646707710038004041688593245048413709901482704063021671663711155336285007552553039972008341100364578709545178783263476937849037670128039452562486991144711165241596776424527016903335294338702861063665930244779136338333430778150090801265528023349521180894241710949189557977299636578542841943616906331586467920677213103617237519787662960305207416857178714169234431013251571991388327505181797167620182353126487796652254619197032518180354941267686786613677487379958511048808291860955762081918410659478634598016125417574195652552264110192054022355789274127841553145976516027140398616517329019264989691461230781229253089587613103378522956235855852360757486462980657973926671998555729008814101044443044268537506035435782373358427633584583446042548809705979384746893305583312370577725164441199299193621720489662833624667612057064510152833799259315682196610675383302317797916088234597783210703360781357833635005738753228180230000233350561004975580788744119505539259105648663560128174571998662206019377882308784103791432377652351252915810847566399915703750859635256192377410260296006049089127004195009865968032799185524156112837440840357236674728252983668748755922701382861732922482163921568733880507906542815672889047271819568232756628750524914019376184554530107009041896505826075006888506325690316847790123773986700036457613204019660915163434384041902052672396663045079400566894560969315531857858379323189318427239036296967178001226897302474242378155591170282495053838718967562032236491703823177276892309117415324477788630917038374434956877125038461078082744112950575421684844770198016768434845586930401990836665235330308192568580226107772310452276671537164017093523343088553429324568196956470296481396643611666838696143124032488186930638059384224117215881621278079723825749589703210352159030574478785307383894030380335047878302408741553968013928017198406424151770665921125623512688251189825828333191379934058491011295288571712957187120800002052960088124214691930768010124701714147357496547300663786241868167957052333469743673813429796361965050866330330213231946628950855479613952778893432441301783862155877571245045520458818940765522280676358563796250746046767959164977123259971455493694076367292714181950384719498638356891711695792739838495434483217354137539483238963613188837249783175694281865371583168834034917945777196474086824888050696942802243484439870777757287762682332732527210590678381371755916501274952745609841391331938446666052240216286824130390593352390150344494453438268448857570932723765867075111106625954250971166996579957462114123387658706999314869792300286170779616847557449721351416810506895869460398094712702544958248026423222898141872118852998335802897843134358175697772094719814722182887743902894940406565567250824877410222353426867565531117254935583931255111467559491675412678684984748061632703116455507707554474953604833821372018873267636868123303005338420298583141374536694095644359885186422741538028316613196485186219498735019178692241116254206304228797388463024485261775675260349577148373992388671798774845937714338553772120974980283424699166266869974184081125072426118583593073925015607035454640036321666416329085355313373409899710027357123745075505793322790067122572966085016626136838349723195525434751958714285424131820768688412816333437249025577417077432313554942209111145611093201686114182412375554965287425718049456313724625308945848124176077168843129214611369231954059406871438152983561444825200424219628771240545955507253558268013835626188289566398534782026049168860408447828677734058417902201319457824300398920704160927679566134379094122159574897133700707752013229989784524016267889784972453417700633010213037460744012362663094038203741837193921060795469925072728534489696585145694843898019691415838243895904400607295866935248709649701254226585540396932870990093679819086638789275185265685061672415818464791583032911743822058142737920216820509804715643671403491772326942539914810544737135288659720356870114200095181060423752708658590508510676488051450616947527553297136953826777182979831518137875808287733729167434558615703436304672694663380330403930462846601168066608635130506210024478549765519635790215419899474565624330183653796237472725847726201877978380610279282910800700894746390384905623214465718636026077468004432343745409540443275668633180681017796707424666049733439747876467656616217964282886186885573827418207672589122195058695125491857313463786249404020944231472022363071230572688028739154268213690108227862172984446539898758734369763412675444197886079696913829047338038195072921205361553874172065861310858098311624417127548924809473034004262695207614207585856900336499405705065919985439580589588385783713802949576667181438132783774415548035224011341277690841507352415241746331279103067756116395342735574502329790454017990606568025906765635661226686401238719610431948944268379480457276848073009893565540006682318749533783673838076674356295661610806129751616384815603404129556439166036494447335885119769447901319230125546948493786114844117746722606924898733634879434696757470215096606262940677793290278704012271237637032388840237711647896330493096933722405751404398616147846933333719789665255621167278576650427833580915897264185355449819842291343635201144838512231605058000965697730509367347961887221003716218032215213688861225401173809131661459188740015504708460412107394994650276314831939795163979584177584279800975848543874839058440851241728326947996015095612471704887891017459386946275710836857668440399879093769232536234558320818491447922187909359257803008053677474727955963785565104921515483945404650278711606904149022696226387492180162082460814948150000473286605490004874421321500520301336526385479282927201144458277108639250331064864725302926669899163265017899188100578651622453324494295306398466083546522737178167431799282123924792814307272273726666851679982954498711269810094308282629718092775595298728333153905362613022088021990204121403364344353209152548318972563429843589216737595035797904996747903372375420536500429506676466373581252926343698876642969095702970089622274684655539008255617612855985046003544463258740387695392887896346403894751267192419048122154545504550770384018032856092769965421540371819978155040976687686649988414677578729886992367651016811405305673456618947280268974834705726582914327373125771785928809824744692716368144109955060271868709372233795761357592770431055496956925840422912273225551722877639561454769353152204880874909465940566884357569106701226432624723623439145788301128325925700654877202603116255903316968836507380827849533613292666105358518253254897179902537633860161313210097957813319742163827665147016621576273366232207987119861392115000492545088867275430001269946388281205609005599992076951369096269408821504486903238277951842690483430155242934338550927023131557445051362903999043623900254850050778084411746703305265144206854110321638556827621852581869228839137799794936111363737423668498954895813132799640320125467599625866431375367709975991762175439672508660051480550887604537919624993344348748127095540000621608605116064322179795467617687141569633097605000972510783613058481176145374457157478187107065424470188203953633585774950456998884491565578738525142531858437166914566359438142660296689506753613331725443481418982715503169613487728918500081144615297498541640475169514621169356392503294227490511717468030820411809381973910240813125234535245300824370693323768968728290719469593934350916067072796676466452266611244467339742501019890816932082274368537943425403321972115924430738550625596463233871315797889791640543233966570029863696821413516755594719103129510140666504262199953899329510725582867964681865722816964612319741206605423373084797971335622203161047562001721024314678148163362971584463949248855284036607302992170367395528992612580110406755042696168385357867264648807367553199885402331712659687403656517073609042292802400363638378873383386280501567137785602028246922061149323635431315038650648506363668916751571292534275729742362671095318484390034424198824974494736334271865917562612722167995552193397902241913591569642128807846754325028725417876126122523741122191636394191396126670752275620276582441670662856387625404805636850166085378361582701057733381946232368933869031845289972376736961656595219727852417094805265421561137389776681165307798453903340014240543710505501506372091904945299916607924550347811950486948414324377224739929264583669214024966203963249018119821818181143847806394818793401580054377403200695316391543830042502883088109116285839843758762093157434363817088595208223885566538868502398121576308894931205357393158601594099823383774475204165567998409592781962195457483456905064878390198243434193135800397032026738167043071450579674578150082782590081724940641403629098204891547743319285351495971435307117943519653180054936709047706393891809869177352497640601759789433639288401393710653042126443181468761709312075225819810576844296170513957495350474204660480720204443436868743442455263145142528065900359607106420425371831876197562219650793060431745049080889914001534318990134848859242126941001985762178575991901495120161811917972681643109893601726932579347990538954157223321120457529512682449013938956418283892969727274389644142975274653975553789291965866589138248381579338979788193854359193980551731285452968060274246175360269198471446174809632556639894124389231402829326358265719253343089826573413656499857864146842251395410136629126387431721057773295355091132927517268727750289191609887056813868430852929340653503290690501964557706970817006414419755981664805594846278932400602230422428156698838085492858614932310801434900696134965903584783845956438224880665884647028961337958784470345553374637051607076538215196812802396059417673825684845693313848175017550049012869871313537559055152869992386013150404516807567451625844381421251424063785275808611996662444894227473142772420525923868205364582115564697447196722726001296502800395640555966801329741949017689681606424171451569267552815712361012689628507588701921268846032661245544956104204366649180885266385048030264381164912153616690116971983767756944273161676558289579670451024090362498583908555714128818707752300230941428613937954522369473226683205404888477067234903013409031623533511082611475653227007452494481794799921972554823306498548962185468611362170943103002198984369456626957071757615995578386136428707435345457904051685222251732167595292703853663518057545875582073634462753946970508881891242257759236124279505543528497476411394590230474972206182791110215732973412722782695134763827843538226702633074771456573772470901211272227886539240812975161331983796101252547922813154969931074680437752657510605838175770466223457276849373680702885956763671925669148131955222105068835434349459356728995452420280119893814254315995187695947857561062977409952186916180889068609783181925346416926187100267518351540479631420646852304203555315917620023713960676732637595758130020885227149055615987333640798980285760749359056254855954712319458336439384250223430804594098453504836563014792653867562588053246773847881584655218106684256450168314711177784358815257333493228694138893634584083763758423356800743069249896679102329525385000999564824207046933983484166170137631819974055081646608229629654985342089676990785098331926979356493430181960069007329739158114477694932346678463367858326698292702930786156243689142409914926115189874153520026486567668500296933950360300223877877427972243801202606659266173525855730169254955036611583356383905538229786997095639833867263989371163483473920159268345565436319011461217483372659979135061961744074384758831931453634491276548787087555278606096186958320679188940939140162991218710261784630570620277731000540921109008820900239183485782962886283096195681499942511354237755896141784477958094447285183061138891046590894436611256786378511950680739562632900750842737134201750192866580225333699418490602843960505449776974005318410680761384106177835365569075458174362400942770360696662399007177941034224944723663231192750864798150141880748050139486820080223984020095718823726728289459011770701805730657932513885012569702142985380799249144427250732852315031117827400685640223933224958812558494344620545943920338327508663755985450357307602083526875513816464483369237970732085756750713272165331919604192344458373805391424243373857217935854847491094860430388396256085088225889525864609282871005241697987502423544257758896673976645455464671744985114106979883709871582955694124103536298536041619416919944921556049860215810876869129731033757836748333663337468852958497310549443139484284917167617522781337893447468532210629096412831412416564034708474440542701396115648553769888595450977608160243273623967898959459425049993172830003426820859877172359028116160581776688145375355189069514443238417359314138447632528335105853144933154554823626167820636466624432631602273636089112549796642775166041994890550015305176706597901622344594997502786450754565482312364170248746788770140744893460214710772495204631425019552491602688005266114338118584680316693812502043412971601254959006030631336021591413641830522633547237817779800843074834701300848548339785600274727326773710126760337886368042364162248753819528345553982112151161269475598098460491201527828057028312338722474218536422298019249792144894252524242298294651463954728632369835379595531120489696768779555891161096278711309940187083631530751895134962916903743645473783460461769582637587455048451467717122692068217673702493964822536520575728844871923357590182906482371192167780335172213854783729131902257147195251625560776976370308160295778037740763439287870483884099210016731406543025907956861547771982291086305282410259727626601886595700386274126988116746019600103521472730238294761285188764484936064767659706052110197569179512583995994878934897347578680692379452674121804416450805344094335042229293239523136976735655934692530493903140586441649599327298354345972209156448719105897473530883907593900529760343014026725518567163029518529312279309023773425894449706998015206464247284671716075988386179569920977041064765114160529507919116332624070125801741898130008328647263497612936931706785603466718742422975216979845447015554323729667178572390745928265589578772182778528224636195617130637231540825201528075620987598937594497778005696540687047978105492533956338191803349176525041569186251902195688039432350645373103846311589368283851258425899665775764778662394410138465579531535397892993387262588332639392265020461972440306271740101658258179707151264739858369001707429211490342047684937238510627276078630625810112385953510120192948235066159335779242639967592071155449294543329359908588854635735099997947426102231201393618136195522930142499578869301148119990325785382516813734854381808886787417133507511669280194284503584241729297132137197608878924744958988356922847774989007244246445635812504282061288897028733963494332820059564763212908148045018065593545859957230505840473013013688683194493114606027996313421036962675177413167297797091726056172467699987417157786352708098292674219981449333355952642380021382072080170923735506149691806376327099618412507409340163526887634442317722329711781641860242176375507958527010727009849807048526897687327941852728829280238722768416642472162191812098454360356418853100200290191110011048701258954745231419735716556425319724127991768539848187356600092302339843804446514202943999184826206742096200763731585165569508611799757311882873846735435802725080727214673516657675741572595536485911325108386488297060175216766821052004303872126754969191660425280558722647348585783007043543045469767693805525627430244712901902629047474270319562756319113902738741717120619415230477859375944161431325981603453214990394544787769159220975722675727166815410130210487030060573707778609606169738542616726641258604720252645957407979603184027048957378488214806347749024993852392751152093589927814824205276746393710969843410917383776991351403094502430494708085210211041998553042166668658825761196603044693643639887810031588094198190015370616943636917565836688634421225397625115952904389936704709793421155304829999017753215940555417483929138697541332806223213276581225389876371552773640826297677604203961867608378731425985094357564974412064922741044014481119127409642889229916909371296225841743576903711986771349939620760623537800776362641834786214329977420184362182147894280313623647796518976160757890097350314882007259540407281664898867615898757065273826706642228454071627278837638656489045406988143384886714653781483492695141180349536665342588255754301583888021494519807017104128679981073078541111877551217312761472728799286179272807679922845448416097112974985864897803686397802675866438508416656401449285915303406308917962815196058196795630763946162170961280436439448993676396390999165995413034528257678615937841703567919025120874947005655533900058387691254408623154405696155466803900106806381367116717010757556687457619116256568040704120500161360668715883334359688342162772733687070918161984072047624200885968142146373191599272302486650556589917367166315889116471205428302014598890534874955401748600509779465489688587280151904321044529504325631782855549227714732383031393157129794708458831345654932503332631295730697985736731744727041801934103417845513410961438568880443144336301778469332273872285012708795531616858286415913133952514503941361012372920238025095890784566870984756891398353913652595154351411531584830714870774316631526021228736410908015794451261733830460531715375001265506722317368424746985455644762088154819919122927246577546406486821685394703819823692616694397613340122819154562237715291766999945271991178786623567095888564745530363838081423507254787285344291219599211193234424145682558042459019263466571591037311007237844937171886038862801861735505497563047764195852861603652241434309608051760468612290941232728747768018263924916852114970294922285704288559066539844890861949905240087069352697358246780065677490233437262783639051976775419593932941699093666637743193019543136871538760619078615674343382699717238547492740776807411279046622956480663393486996415420893295658855671284940767471796560440542940216517459578145071296176588519513316687752630549757166065065997169393213695965995516048631745549615771860624033062389646584040927597169041479325373562460409269102184553270867705267686156416478374852721698786871038385258608693098003831067802985153999557037208736690042535249752673415880619565034510385050454786150165333894697079519803912306229507276461167482133234293791392215952359475609574887648946779024759405995367163954950844216595884720076682280983725523004402200414543717564030316278459206818560894392763082082141908124076611488516288213154817434599951037406732896900965825939210622667255757364785394746009284627779385406495247997974401223003688205026898627145122065692230904564729377948281331839842684118025328905378964925941191104735506518545767752778824597259000696962078516820250012249777870417721976963278252099696984954617342766265324230286054956514966418625670593308329424394849223777013591782065847780344267877984277202370562213796315789772105840814738305628573726321026373310782720147272634666053734821418103877600392878007416016336255256107547607636055130220303338488527961795440863123326878001029884529991462821604096258837321900358203605311861327027015024882351047773064762461501076526521419325504865181335286875687498561055764485506602132914864611073118610775730421871356325912305988775256569352899030836634115943329672174969620584085303396753139710543612107801475708432493563947533393233810384546203950740629878463984070254549696571068748774588312831269705250807784147739161912820443801794533334307872313433311068297142594937608962861495594247168628442687902980604555667875390141655074014007378337126865034501744240139191528291896476342732975996011287670558893022526938599140304564070133826691362953958258247144826329573382673244210826550072954522424434123483863010056618913772031919152133612145773238283921566679313586486843702886406690077955867575616375192694058165124781088520343155218330832108358844239683811185125603989848302484235473993978029685242041093155851843059983880140068927606146367752478702389732914078810418243648516835395634429606146917141654007151257206898082504300315513724244755634231040299014138172292736374245117420334666725174726025837610467484605534774839186696024231578553022316202932582291764926549705704149211774277894988623924672742836449110239027636795639598076915919744811305195115893321864904629501488404238596020273999787263895903129605181752575814180833508683184837242264200652738742825678857202115282254899015618680977923136695920497456675957906597892564041164054714568036534597531992360140600548508199146576035033783515886024810661309602696336699040266590444366983373534477074538525618596211163347336714449462923297961004899597511502294699582878789864374993726137874475624567379006642254652189758619510309433341008006190637306434630137505683820507863653891956287839524080373373192165010367614470161705631352248722104873102975907306383548089740080521878034659360230350620812815183244180848479851671528403975463219751820466400158833991937277831028079998667292634020669745002537318389132936594259175635472215212588384414276361481619916237697427724016466627667908129071446469584334799119755386376737286387289012271777465090559137453643778233862987091852928152011528619264531278507804689919934865697544555417856821827871731853239670245581275418051974664000146155185430362161829706497248730866950203045932857712649385464743687519694270812150668013422165506614243195785528851031045807822121811484320233132993235765727621142868295130536868372626232143994067332853925710654315411173810786381430228854660656964443971866588455644790042702991868499728647105843542707417762957116070846974986921217489152583817142160362512707714919906914334961573749518817739547381763609131971014235317765238677072423033261201666776693133251102723158216477308865337766020671561382882562816008128559882458689707360894258860860936086457273902811829066229041346948376119417358394703518646839998454540975032585139250972895574621442502795498274567165953649810436581634288575095172839388357036199177665553712681746679845624119274944290277694399714792511527906302621672699509091344743788902440294660445093645850543132332168838338661307705038388052727460164791080619102730139495867297315297326413108290214341242535420045734316182928443445470201901452719990188278324422307868220680737312975107687183744464705112379678999697328820680263308937845588687858899350537790777730542676830657053311466892489746578465184102935087463492593579235946313691732275350850721952147963625503828840527005689401437071423347027832965973354505728520408726172962753793801478722348030638347015668960071508972867863017388851716136653583155230454201479420158215383129872588876267002543210544750249425243645663394315124408061420696466671922143273038406456520884056734359007990301588951036843804190475743101196665035097890655839399511568487941342774155064945561496865746636242222769337547071828458286647540449231965019878907640873724288320350033689907283438257574032730026564771515310239807144028911000476944863880689051248468559179019234538898333990399177954529771067176306566424500938128582554161323294543566996290574275660174088877532621481361560304792842841995191916960341734688167239712437572011914104964204352115035560498763756875772255369359844135148319334648137614808861195494429299616188249459335596670706826261250057073269874069568691292181764076669273292993291824660834363960286508991845507527709016235584372243557288396102762586249296809369356644248879210119113779855852416274109668542644115540370927234609322881446754555536136541399934691347070402729779716714867014543167623424634531302100867064376562071621990739986134901616295707754117125344175498227819459723591817862181923810231644991894413281009116961448637111789148050406427673190522007017687755707774013294244284427225697561339066132411727745001382862522929339811792637081659210593502868393562790914176585658234425064376605401574482929113787272541290101658930218115095926927623543168952679523445577287752266415765264927679217287395695808442225555499215831958583432861053181450579217874294179788907420029099848305273254996076004224419109022747552015884034538443336584701904728146530333034300154387512723118392754787674307697051552910987796039648599036191511624169852098758789924032716142709007178343468849603981895917670394825697750433395255929865853045735714687391114144723625693635435338482492329939227458834500447059213901161443914607092643606309836704919356842368911770517694360994279724096653893506022479948462649775524437755498293234002027955182717788662848956081814040741308478284805693954630397220129427856228656404071153609691955169181062591405655277252774095364323684126139465968167171943406042917395906418389389439337738102760415705993133188489568863178504540432748916407103878256882866060634683136225098552903266779296951677177136483280261664406388849718432704012024715073075290680341062977175505832126472760827837588820162789159824472348465003862964820762305364663432658353571857784976941461999709347615097447795731437231433826361247924202238501727079456806101055125199011752995602017609668420065291201951385819835095997886866627430423123137377266062038348993980238984768219518629555301230287483842245937273382344964887019499566397204275567331484607392309080581741652018705343902218762607683717017881976507362889455288920747525713150505605998157929720089229847210801563161486678942031198510836739132223287441079102621930979348700078178707243037991347415582268921416702520648365152914718700861087283810910156995838759496931256560776068235793173513499334889813726501973613083041691455185672253507073170628003943929774410531324874577115213821664721530214987579470286467710725072969891310837447000668065312394259731081815906041831567354827155566200407220477217269661459937548398565876074864431234559658872240927073488583390426825497800427966462637478330326729897979410729090231372801007810687811388271048260888128498394009612640671647152975720188172481584310703305979655500320635510554530236458521515860063156249439217283746651767404908667746988690556709590161176759984551549440109897119035603319468733473036614713381554960722934435579468276719556506455290025727842418869073580588053205241896814490553297923294242941120712798161637928741536347677610468310678449353292789707989836174425322792520631669597319589031449778057127426494034723132806665960437069315219990592634174316506865086308278674134725784722707363635659718603537919220313271620534119863575029928304508078031474465949531490831001045055863585685864462829206505977109268614985752465616279575989352662159154707149470954706864083097845408894456106532003441890678936689049825979866217620833913022716296426578607727293526378922848670161882645706145822600827762271712880246752818312319520497926086587567766101641134037130356712822085873262713468859149808690011897107605104089771919522161064493384480805340354648760077007270214619528423302123402175057205845720211168559104052181070246615746895995894133498234467284072188312582799318531740412813380703882627365696582820639013947504590656881199861687707814160482525650587524863250354563078069081973122827339209445489156541694529205747830286898167750020635516259859125501433859074615635728808185489813619435181033767452850735244919465641712216171205494025997281531516374928387519052016731385015530677514295563931810245102109051840062087619140405432029236124641190957677090243780930394495258479399543052673819928226890728515260546491631774833495788747546786512296476626687956768765586365310305552727678832860212938360574651290419372144476233998671789961311128881753084329430958135535516123601622462567533854965418987171258670219582951885198865000761524594375331357165923218577127018413245605507150670772391805059965790134724917395279774392691007881136737459021213153166137117251205508242689096679492062657513111810992295511894032383770354017484457289303546180183809256127292873334942773167515554803251876608271592477906214256115328141909838823622506075967101894940127488728092767408092933242174059922441575758280421396456312016207494946748518438837050918883107681437628915897918823066492611022546435666900600019350918239292763892056945406485782600549669630865122050182692454845999446984230456446975298729922368643764507534470682088555455187830423159178729199110065453836574217828428818539927820231783388236918930234307924429672469774378340311370102523710160855923612253344752740726239546483405877540195802043281910609730027657098271490223980142615510743281327818643834608369746394786425475157686960763482016802534180838674370977828408440593768333376238949452828531264660651620922257238872964386403695907984277932280110631048219206977003186940901518705337451464453871155084793692337442152848934802466963582107318360524685155923008010668471140634230468349518791024570412773794204404397892070651420135002270358692454659621679557462841685011630172471882024120704008938343117212942160394740355943204417951163265741100685283936935049708916961044861483047759772785255228456134767077467819603816646454162298930309598983430546132125543356806191008253190253432742966604673848495429364699030758757741636493147143761905121710992174063473735090379802809396263472855463647428341214008860483745786235919200325160276260009593304768381201729923585819301203358529966755572103694398617738806607948531920287062960277213975367230596589248579695207353726241263609745196104135213476814105973311185579728064087390557519810675015180886765576272293925634484812533481032969596683583616852996685448803164791429466201723773546393615567798340462907516783498403062201475321066930177900191331073124922955644012961437444555153673720176402790741714378790167893497502432542965511998461018446676049478045603468691070031798348485012825407627935048247641788933610243161076962077639040019049259593621451096682979171588366651436884252469584973802682966603353061956329172614494880119835141452425402354023262266018222888135708652475361900585816568552371658329381980093137009325298584339305849620597736278236186012423617624383511024870169411265754337210047439066490763693165475591958931998226029764222405712234331117152513303984830513157702682428294127201689406687084668379694983601200600962338088541246742228901246584266111853123962116878294974344668118682265004556090336453368731911533191296500393609570372382295745831077148669235323366504637109490208193203144101631392597093366641683818831216871591339743845247314117089756087494415396920364148759089219539401500654578376251340234067561387922341602673252791373172045848584237882782350406646714226589985640831438231101048116867973580474444474653765590461923579511624776514721555321323531486075307656236669217144076475474471586364216982173793317513785078122550122762627889451449849051260822654261963723351263536924218231528802667193889045355022768822275157254872640337386772899522069483735129083024782598703599195468004637191355418987706600466685657048387864016152261135152621240004068618491413677103959971613590144324314778843798821759861910457945617403379730451830598787170804245909516035199135870773414764032487911763953093295046760418768014543185499335402335233387189067206991695690440176647115915027334718304555323254224140131039838150654362547475025521585727112688027013002942260800324737982511439365028107391286141752655165608068531099852762931107109586257268100305821382909793342928754407412384191024373293675739391305898592491128285173782447760740406965818873898587559892732141397288923878516773630332393224536266035078747131614478225697364778595754109417150371074056833577012572646286138896205524593341303463935318101856757421898468269269010072427751644963304764193988514321347552570057405788894911127168034584023810127261888856094024764883845461730202016927810586318724381407115106632965459554645991586569310084665167465319801482935461434944918822779602107511058297166630874024511421825507966144929304880640694717061362999632755929646163033118804251066900862056374810994447495751856137167826534226049421440917026444905540621946981475891922763096897922261922809797543777791977501005925979726146673934164913833224042992890563518375193740263393495680268256793738413933812153766511836741658266563250866023692002944680132659695290882663062103164183979452428892204814885821571473992530649908214018526639946513482773497911978171056037178053327548719926638192713265235548232205336960764677297659420213369552534724423355989754671524780551540153223286350444597771101163405788546501231218156319934029113536279651214632817460728390733798927006507111721048485766631810174429184612159394645951440194863832185395537734551021435820455775837655642490475421963532761590486634862126090949257392916927779622737341287144997520165247285956712814662492443682863875892046993855407909395802585495476420259119315812809336601344677050793802321986311897200020042791323543216116019266347922077585110493562762763570544796939154761454865690373023853422563867649425654693751279964590079096622753396972330480841669942967745300937206431985898212011040218426303908294892150596082412731580391729259962072586110216377667708949917556284246238116890391460675171023285479100587092193443212864335903550560295910142696959744955734032008328123460578965234596609520142529317649015859272977359859985924475089052046546362660283850319947882810341594434898634397096799000511358949318151617407310397593578308789248500858086463490725804233352475310175989641277037972133344781359847403891494704053807456609486296084396584623194195417924195747884971007621041823948951589442606680986563494662777506390128083121631353684575230932975328910249325140279370101287240690398440541757037174521929541736222597092134821684452189730775514463984061208025076570372972846617053304778218264492511146076542549492437440303315785844264448455034698133965257402497591790434344024552588021834624923590506824880245525783335665176845917852643512183564411183276875799104569468906943189210762722621310795909610672711061186163944304009647804143422893742931658465610912022524225421589147391959776636711431308794873047424602492637625333797343974048423994744017079139634645060834015700461678675243606854034167906731854631975376767855768112194563307344577832999367973275631727367994120176838058724799600237753519458962217811725877590849703539874336232460965525098299027956576403001523123868972270750385561522955444820495781789771745103767018218175059950411464299327127234180691164101911249810794531243009971295228797720423214036013154895688180111340940195391730991835485606314002333020657382140382509012221737565989736104633609044344751490916225246992788943658479205440499664225974248739466387144601586797741056260807815441707322558094200393998892400360934092396624784700082518538240474173992373499745574904537361971368887659713588498761890455927525255901807108974653699509733286703728602824344235269161408431497249406586336770729844753944957432138697782470558244257441691532205226130571529357260525714619952787351015161595547460891120516419247762622488398958966885121737219239588936673501126306769064752808373025862138959182844323068427840873580615770328276535358608886986427040722034664868496874314035727520036106125068963334583813326105086028232893236614986151863973528181315803427288160369005176319466131777396685451911214380826968901558190747206049016261373676608630522052244033067021609271266763178544806784564990246544482025107416423992166383331639062403307525053333893983036716863648416935602031906337003450020418459220095092543228341217158416357213781686391378323323972839610835951937085904555269793420621027689677481835012115270324318043884418060091897848282566451581635075110888919670920112011431247146161779405226866194556115513454585122570687480457359999669261822707893490658117856191902691123865210539801539393690906454732136408417686313170595066859260371215988322354840546222852885847050630617468657884068193490695251447455995394657716938318798924760497845206470059493623948332303264593372355455990631627616995248647457009940022933041087563905943738569627880004030201902922517099305256908589483926852214929905835013770264553934638143598304112068533974103602915011860743434692273876851463153182453123591160382689322434326428401629302289355078100914821571142795495675488841076001503482893283555386327158593655093572074015198209890523226249618628304071720433759935462161638407881857436228627299014073139459206824577783300972118505776601561097441034516111864576305069376545071171059155933698556462065468946814280808232543210916560579850448503505475572812862327912851361123110468929159661628767916546948154881167502431664339757906161051643416225656613388167032639779033919616054199957741932926570587245803475215934789130021503741236402126174323578772404034146880391165179902451136847531859722292646560193957825356397789697477532614804102952221449676854970090231473002466737290943111080317500786465381121496571470479170639495179447127971361163187589860925111207957550918632566358142351337844718825013775394575845673060266132027776577663439674429479861810756036254871211872412449196554651671156746008175803876987705767144621636698856064004640974412738530122966614971865921475127051673205121943656684286067258111008908703038626697786202342451423970164765140730338534992179029307983309031486843538152678691634093252981178466228497129633292126016630733613098582531946130808178857632671308617372996508667951773489244264401188888379764626611811346143991857961009150272855442339790068805980119243054319828468557969099718004190543599726259675201460322366784841908743499980378313776343887272840821964033886641209924700586629152655124075029615349564883570042538916192836088002029985399436036226821457349840879837105340981031287170991906574949448302495736195495257404790586156133307905886989584935339216854230023671317111368751445712272565357730284013204520849122716277709126450160489061462624618183863958556522512891326959665901672883481098365510627200998949613719266304111163272526881671187328709869984021252903026555386212709278950610988706067181686699781828706523218135039354550350199914689579345003055617773232700555681784375498192246746831133626397895372688361619316780884524178436322241854559578750257966042640765531186980116313221460503977985426989874969213154852185204408718228664844185884806869781776336145406213421556586150109609529021425261400455500841936294282435218317023289727149042834234864633608470132050113125861721583176350932872800616054075187850232327649140736286998223740389296476556365970883469749229210900386297118007888501610989874463490261576294523574182366275271376625038946394809922159482096493443742904354826417681205021400710057136800440881193414172569857755729132138666733027925589125135476686707306454119261293707167597785249844568853005042890621375152156125328588851821202136436966349026076734493683758246659990727203813243123390142896923688046498941622301246285877729584892100396994301275518491430676695539887779814555021756304484469799853838704764598644864208852085640720771513006305110168973607830428876649411821326154874243370708054740672199367081951108979061131396605523762680072632453376332290849542575919273517310223622634661056897246414288875884259962084096347436734758466535591126646827417653231118316649259016568114843296780532002385469733742847989445259534719069492694368871404197112386945509609708017200089822367939724582641227139147971896267179943762989979194797681577583071092872517702321977045996871034978057771311974496334410207532258491173365664909399038770461293552130841900158509920590577918067453381512572663942441975747415711174387028057461754601373857212109706580833131218891130912541378933971331889835191422698600080513259106886276588844596420534381412002909711434612975469748375997539188959325997305229894932059289272315456071349297794976537359659551816455083596314539718716384540871619839138739394420756317607974416890734318647144643502068086537338169902224065068775758477350859247105977684350645954322984168073085297422192134207142602294090918191446870852697266081916888936784615724897711595962122869479359191715219102873978830975360634788018845631283763001602585543400612172157463012591239778971814033050282366960317612681303947141376329928118477110164399746359914227462221738105102543637889958567853996429521264125828072641058047274490897603648158039723718194003013482169631106333925248533187291156655328934702860294129281496429099657040084898319876745232153118559875525552803142091568245215570779747095205800726363934501086312396102610026104829176097634245016513491336129267402135610844941332195113570829856932063362416387783404967453542587571809493495957318745368218709566852735081981068110611926515933856562679705988181958566374292996424594399949546946683229679750952005566444139293932828367048188759949235732183745843992423541134522026865123436579410102593458262152581434720395233284547465209697998587511948897215223160899823368711573169348336766849049198548574272802524001854265899396308397103871212320457106668469003222539106464368326528586566731722927965306487935039193896791150811065835565646105121511450903709692498141727725275466958759434347254690222082547004151436500067205046745673887572476789655865591347222855413347418999507239324567557255705910151453173983431040382893735042443626538498575614987854203293548962889388409882530028303081396943234307359104364645270860707390786398221482723804591565114780039406915792965001519197605301071582463587562842475416720975798120786010152265359099608390593339905115450527110840789425983975011906474316822068133260216350331041005425709081488706277670473886574794696072642320888301488460078062602892532731831793959063851465542536115588448789384415030680215719405426136052514988719950255526883992599163754455899575118086193619016117415324365951593619950223321158071895618982745678665807821892757540791097593388544881957310262135733425355359083839541356456556996809780193574191192240454051459713789626115551305260246889221062858095621353442817557987392889163451638480872753470028032038207599685734480059963517591638277271471541101763865341423635885821490353511115161047011874244606549421026134551016310225211656014645163273898654637211958814105163629388196401043301665667457504049974286597930470239530728826919864393652170753085403973806453372566454307927977197543627290933192398741964811936768950435015559692775660812102531830980020852017397428855849155361458871939027876093164637077104098643943209621754319009713530138894128434085708068930884795510842835279269379991079251607308715746089098507544896838830786499979780873546206937069106765530491810860930818559219345492806799378687676751400145560863326103533461604242040360601263796063620957712881633652949051818389767128335687370119714547791263143022350934694988685162098683436038157193920209703070510483140104047632555151253515673231462281523718302690027459480499958368864806098575008856188874374237106200270673569484032613643198707792888396711533234106652790674978591739993636358780586038278680705364682092777829527707858553658213757468504586767097701600601317561871335463686925435111772125058354701172433378998220112972891705740269721299443237825576059665156032106646382145853147266490567321411086682024501551518304085759886562819888855451923545942577449029578198548303203693237493672641637864521567020039179821179110974982880109819075636340409977710854089940817542505271491335166541324676623222352808232351911381227396093348286869189605670252157141810665116908196078645505456915347353059646043212388060633024484416343693190664646180051271896662162194410722248286608274237393100340683252829998109725307433400734004891350945968079310056912591134860899212839814402303638166195141798810750635501730402989395851635550214873429147848866455888726162559091658891623749238145541596858516430214853308787179216328770006866020674659060840103689851439263856438641796486853742367526830850588326681197566268732317727934753958263568133967501733708206064163311278285945732867138695723752320573111958319296366553783145471529069435948417041562238682152686849147489650610182474540582919220183544473676571806749606122570644336914632199135785697273631873568224974318395194393683019965288166944457388400858865271269921361971262184252958679989330416644481368531368695535972742923430554106127033948564255106588872095968767769748917815500754310033189891217156112784832278726115852179705605866026534750294400230570222479779203691911939081114914956691436256937383214696358673910547110736105234198570352232996871295321861557747426929222664137817393911580029044213718876380719360219139990761328306143223069798314247622018117689256917923860212594493756020067389254315046374647498668996328933307881626222104033744649704029523749313656027106810297841469694960538640872488371084748199669560819356239828592211102206522752036464393869346124422289280642724208791681130839705903149166742086943674099024716053517325767169358638017372475223000890544111061573322248268570566999804400394922522958272125642083893019031471535870922018684409545125458151840901912571742764791603899647374962564759893736525288119672920881177246237289630233626772149379921784906982563379263642743077373341535163440487513536554178827077328129577339841165456635579606207380860687232443763589516702292019548291500062726758564097363197729882881244378121926629281034919669014658922907465016750010428290148072151216885925267538067082418441316874228287955641086944648113264137462897652712929547265340883469416163686205606701772222615916578594780877922150552775505340822964717176805179593202669178510183635442753207449279161102918945660605924559413098434298386140211578516902828627149003753263307330686779558013785722457338376595624397843792855912212235778452026592264601286263865241294161281356736443341701078611755307398115612416559907523618291552942050147656268372297174029024882564091549025432103726052556086351472918156940994588268895757268396308879929553458263213651017135043895221224255282489805582945206949217013810481115821192476445379043299617885554307319974751520711068602674062660421031763169637282157012574597451669611053274063278801871559541684921109639393736544330675250437394658976147613461561588347720224333229596604448739479480156446386438221975045874059382001120419299521693101084989983793330548811879456122118987848053268929633763129492328429822943381168124742786429453860386287823254665698342181777477728238435947240058819261869311014639209979485440058327465597063955028923963996623319492855089967292141016795360182489457772896515846955159450828857003345891454117590422196035691589080236133651460769636133170902028489665045432506665836446143888764303552706623928102440947882535132774123160709115483534833992560043704944766746273357444066203066765134315162387093904341352107018092126185070420248816867308772612653812536247616587448766948433537753493996909640428083695313196515032965929987711892825238623074363932948487646480302158588400000103721625396758970129162279453029506196139348340730011434721581596450873849608848589664049399640748683173869996464500120608958020401451250877627805085073234062001521449129441054408811227302620513547204987187120174974842062614283059285749091294852616354623316317752589372847996217224244550871266064878050255487880753160730918195308938314161192968187598572661676850179211396588298225177024736122541886336091610350470248694883402100998343464215222143818540072195442419296926834595896793524285535539672449706974596422457143986795450144642221712911742088351659484255890175460214669956252921523667404412465692188540937891581445672918112264539933653196777377714282014101978980694237947444234442225394977449827509777587650859728088115646722285797971811860371793275507326491952813861831074625245223592196277166348883928545868394625721561855406547652852501120645170796532373270103670013544428986147919242469379420098583336484099890036106944882205657685982523848316520267732101277746176302688607872867356852820538179220564746872000567914482213410688485646560950302309410893528938263890792941841646241042420594284830047840487219433291463759933529356833696052139759871233216649361684796234093434376915076340652597890130535789984098571994765182748695520075344532560202493204574327291918330195272444975428774189168475115613931939745174532277678269222010905749064829537744856549254677354955275741578402719737606446868315453079668107822668686734353361918405448014214630953907965661222108944642268286084745673218059012682874195770392063914715496984706638634005671241033526309649800056155148893796737185514534144955719506379058381266274515798932869131930758957338793813591456208162288627774721715288533968813186371034375162444555608170545491901438540909652294198192150035780703096178392550823287749126402277326572630194126729233790183561179961703308816298176324165934226299451246365433453880599032506084585937714151825878197782519904372213171675526416755472350270870277826030681530841620090984505499693810368340278003365453325709079841765496587719476406429742817061810275487678747021246842266197903946103729994795775280488238907453123844034912914188355626738350146529041089609429253936370206727555141750136835552382182846336373044321312171457982561949490591363987862058323749351825431203528569134104858307713826416758917875384075541921054959145266875432407842722213971305808356801048936736036871641169860179628343014123131954290707384204547903629408728262333106463089263255060824659828652624858691780458245859033975727510615611758022378716308955351977642796853383725372282342392018334254033259072255602645538534987364334468121112807389927992476847733125282673347468867874227520215060557332658630854405199099498777878078844261346396034673267475588700519967334091434414455724079769065806800484295637513301297936915920256499921277118724973304060038487684048050737093956893864654614684923748552247277884177041447939319179712350617674078378642009325894847739369753741034214576243515436576545472131645856961592034269888443771359811432168098065505510043235368779454558021470485890562075528983836454747698328611022411105684310177653073615178947114432155115589322250282530579847950949445500930347807624936366272700817318644666736390004486729116157815695673107166651190575402466429752977567898550976443472641026933540404274621875077382190603074048455298350996471645664185046403298000099035627414051365273978489342212525953635253917063239667937115247629988296256417032319364730382682127488974801838145447280676102520454626950755954675549718987828945820132750869596467739425472489099965426674443478513598288418907603623557515426802040313625291686130148504250269925891405675087754367667555595232135934430009453837092182964868972871074744042401921188972518863988904438573373890559280330627592835369133458280190512297886490534694465917373144737129156204111800149662912791579240247631800821097050209364675734902915921464365236282880865467912912356499123795715182795151289520561470948308408779939102758142766469838555753090467656835875970062130892437795983315980451352689588860455052241898011493637625889760947725788646954887946372053418228502171296660890861709139402664983272660609605432880845788479751190420937559618251865201468644241819222543743162969190327306073890834648296365305311062904487747804092501321537019337923924730294776173502862905962679361187927480854675867091844278352936000225932819146124167089448065392083404513136674778573006621560783888298344919658285119006093685954159341300347237501801587480976286978893084507581844631394062158609778003644686416300021260745024413167751166034409657886053777155782026093838928705562600862699907737918095806876943930373175062873375355798970960238522772416722559877656385361503392402054893601283152643960077446962612766428141456749486728082571183584797676180653901009690767740860184039732353761330013317487927215751886616779477920410403227167241204546718167514990333370770103944499442227750850663076032482961534704779427440015714773198920087943336109154633885522195962353094719453614677120846152880809616086829407975714371162804769563426361935510960058969107516459548573420936482498417701238693931076708260561326757952501253778982205570054168720511362399864848437695016506248777371967524903887666062115687648904765134791809792636681163068905365585547576116694231840647213018136745290290707180319497280031781237916993952307448189044399753386452827922212857515814279454759620355415374661332561137612582215707500669897773165870902668271481658759849713876123618000321784095760473482019744942083839956871615459873963544215271746576245014817146613941464273072049736571852864078453406385944310946533491161669095692895770787296028091720248933306430911444296200719140425094371342113756318500075432561084418977791577471110390819487833997783710736881136602179049611518378577450264395041495876002285171795123699700305715763135743110314797794083531165210829632138454164940716227048629557281117810492196909017494046319142129157063209681506682811958749368090030568084102127931851022535308629076387530069642457961900779391355812565921510499005293946632499202471858100073895531996731401847851930655161271954994352017915761129291783845094016734669580330796052677325284580390506465374925841284993854537737506975400827807250170640806459100629465949102918833096531154393238640628992736722626972642908079264696912022143466087767092516184804180286789711345651184297209202530543212994262748034541108589378457497627536124529144796576028809732237630416728308470586779618560374075292169046619337228244435827437424296401274256134771536084474956730757659563293947101424719226865976493600489025115684627669727303489312085357258807593184540511614668158574397442918917444734002992462366418204996777833699531549781875562893945809148095336177954026267864248773847192416387811761964234568724579473871937089136479557715590582035682050451448994132045093406282954607669320552273986017629604603341590679515996412716530213554601672296354991549015240109013627485468263706002329846243565381554982756741359025480800884565469091137819136516737427973746735041399454205240753212739105889319151022250290674461603144151183491512142288180482198907854659896223499810525618718979761106835011982981100834753100067159376128180159482113786082980327459818698911272528386701990493625569074260192384249992892719673375908470996253595301258698553235890382019679347102302481445375157657425474223756112637446512356394655270003200071898343133740936358960951467611516571435171063865457167267202161231450012843924579025166844596450115881292736299731670777878411680226325686646163785861517325850935371081039377558663212307173640561333404512265552272447550923261980742609213202147772228489602948266966868767188350579940244581134954250443776439885857335138941433520632278179307616960491875993428165182145499075062647031200474951899229339652223030224154961388406277591913236920941187459677152650123868361474881886015514239168625772701180555505452938519180145819848266932350302045209618548123568550094323371742296179462018041622524005274145601172607425958370316286978666370695205589212194085039697230297370142853799149948290777194608156978773831711445511907540733009714716731641967603567140237367518243545212518891849981048312019177502511500392320992286858370424769566744245999032274922971036200133124508567918459779405890324353286908708599319756574983394955555529101982186524224613823338016303070040586643436117327116104767624887661696432676922205651969602005295337127990669340639694737984062231728954640408554354322670341227769964014161192488524525581827353468075625903574536410393024409257976636625918770536141000097597144173403440353135126225562218344761399962829607453805900345048227405149489285768635408200857099736088958696945676061585514116588009125812416590796735375021824542110509551458747535165830074956807652239005418245519179078233266279737503668799855413492275198290072745907811227922180976447312646118869723393653514825279349438949930944441031874050846266004536650064324115045237925029857014634281181728141009721257948781630402348664906695873561412195418199842721437894644677550023995552568815553184591483537888322477505877958623922337271759758553123975580863680636190513559076964953160853558837854210455144598863015466231658899522867389837492628359600090045853209984497603774117554803642531379455732512691405351233517881347675931658549365500659872536503011169159891319295537352042465802981001151244407409920562521546194239130100445083907548686307294599970119175773503439244603645916708007937596679662974384404251168233865282873552670857352081084558140590193771485716820684983498275152382490790504453889529808043959723830070001845649805479402541334788574782731720897610934608290634890683735350759431085026920921008742232682605635353298398264712131263272300100960445237683834590202741089137415960835433453136159957229132368452248110361308296842431125684280695167859209214288013951636522923396309609702419283908054899607318447781074224366432609273625318134695436223553152249045250567117672210160890332796184128771739458198462644789387740135340276756928960889308019214290557106607298339235000662671105830872160035586574101635392762553744319998050154121574493753278961937182650462647302088406047885817827134822218124981597381749397257672515726250869803374613994001798407528997310415706678799009834864945030935567446144227615355927503270895442737370333221043750722930284127273853049697439790357393245951548628714989567078640037655943157298117688143939665332770305483144375362886524128333307396829042807495194845257325449151432542224923104885073216709640546898399402084905796640648429337049383025422309554243982863387699814620657555160206169438555976197176329046642696015121193014996073057523207838379688323887626471956195802080580039913311483862876771241281893956954534079596046147455442828795803900079466184012420998464459587388512254861916158303025895365992176560632826785825633008302227476164154506402788033183734969816286146197241907821799495315071817417884925392691502616682288722271955485073785526592100604810084517193250575370193110650400031641514051503154026386718354780562387742173686857266933788576081231436249963668414652299697621635495766613229354973414520759533580249055902650612040843158159322354549558872252278302236531294731809067469652532440361775143508753004689699570802203254756178573998777289107265607089189059186258106803675274230737909301458238594136076589987927073703881527549157980621782735507291781592882987566970589855010226623167822422975559527561518567784818321083704570085991807809459586764884728002773389418060778455824316192229532383755012450231347762305593336687938981147840101089821123849832362510783357755249204380424251121412733567043903617953260093602685380439454477405470258881317732970038136108274618996492330980600201114752371352931286819380232432512673086588053310891971604751008374395956055775465862631193094077742401190575963740367100255174591569785123719042364211396596909595925160805213322255094793888645623161397898625644381541262156311713698435499282369318110031926239944434152291365612058700569293117888869796779757213737804725518233972059160900650685292182941820140074471087929147645050025588724862969552389930775897638984224417328005235727552063185265784619187969425365988195169308317167652067799578606591769263937326456579728446728081175647596067845789833873206641626251767403950193757104280911360658615752781577279054860446396183752388300177865030052883282239805167968314031410110546357302087643919254109021114570800056363767368110890648111105158740108786706978748509271337043694516385301645589655978996883494953928743724923062753572405986436148067776393133744813685351389198793137823665774722547550177196210253488924521393583047192104145182071784897949747717978291846939078565133802142098509172309112103270447976702778289221163991304866574604610741288043263530202342652344427198320130605366205163581421864254493994271953671246968466464425585900895456042892726603836033159260171328031409958013536705759103713300884889628787997047546472186347095170076250372667833721889916150023253035427549456318919463836518191615501095885788747903257232617938162327246014762741523548611788823559812244850636385410996851404277500744884822327429358853280240649120733963072119445651193271500925505458716583779502085220806386686075147474740765790340364256224159838400510790751056239264240558620967207153717787870400143076384444715322363462362026305843087099483077715570145564027020759442129599185970811425660039526569026674420400347342208072141009254963961934070775210367671975080568274066541138665585974832634632166657287503207829815020607395459068194656094223795257571329569123245789531738637369127180969462852399162040401061671515158074195223424189079058393028053926263763713425655683764875604679611772661220227873222274375216995531746882178667327461289205620230607398392984519879930025701163231741823455520521900922212871837858047015868714904614921616541594688310582685000392903531942912585230534891770082739924607351248310784559401609906257086773192131076981531184130538730967573428687865312437511795516009776745543750613199463109439813213758595606929326951964637072506807815592899826404186806324315790265515205712979840988835839479514996556901362829942491351441361807839193126181149980640669096286600500889868026961018226530709965453363474920812956204079869661120187650001383335283068605630834328817787720603568037318186613854284410898394426187847375351267472690489473769401647260230037033658251263636151644930149631470293017006470173493833698877887259410712199723078144242645266744381723141548995167000548498880233903268829848445471221381903076191790142990169562483809128917462484771043530078009390995736197494176565560170560692162750584790336887251623899812764828210060326433574156318634182209583753641525175515586499218877668652750510978451906242772113440408417480499485155582871118948692320026141167171488222812327553443715255883792752108773289235279305924756181049845387065141331784555511720003854377019574698116055978793307244503929682038284479794387821662607244244546579003955808502102077265703905791738035385439994779533575165484821441871252381620110313064028520426069025959181451174937664981990546215266312885387588418818285281325222714605028532821485580881648574570136353065941025547372529839547616354074474947821573302249609560134143325812887044272422489127214171101156609534238950824133569579861836300684281443514368566056210423396670881273351648438038296319183635954696192067665308630190046254375697000359951585091210291877374301162568381206470511366534039980619718351370776431712056201923350896970951674500343919448972105508366526583434185507578497170281269714812854118850617583188063548517249726851837701725371527692417026801528857692091816125149906451766120873489069404944222821375466931184152189645695188993419333230267951096892210844108070418992716976060532493765458260222271709825198179073124015048287640940238352083274324833039215354665971971977721924464016765463705009027496156247185124373659568517326690310837341471462887133674667184304987235566024459811932521892604490994971206009344574556594409136566155612666357192945123962991518258641968436636001155139136063167884486465569300794613810585631001448215744360843144356811899389331591602526458979746206590568099297931778046236346688712390582075513287158246908994648859987588089291131838992216546578234620856606542135005215113235653807770070605731611871248938986883938571628904835016672275157430754148144075436251216885599309713670241427341786224536411325796644567318757302548055158111497752206124499980769836725453512491565620231671144421415915627444762700909405221504061542517115396000363102253703130004013637105689235791532748594384215389266133462815528493541356805912377349536321631545428144023503855239429754230312661177439274693635166388744473806695031641748004628265577803030919013124096632242469192936236364507707480821726966648555762324114147308355735320794210778331902128367656365601111839193519692646804827106867944472625163861890086465421873789687011404050390297175720070595648029692509904081394908736333600425883971388831838060929531234998014924103235246181186836103368164739236286027340741311541446132302679881776437322972656142613203989785715786887758031348921920196783028312015488218732063812811714280938110845721612211206311470543710431825939833583451938799784895228665749722154067970691345852629826001438251393237901781356123106692052081390526612421157129755388703045154737518317931894698302690613090893929969954352175004506541639191430819868061928121976186776342819386315377520819605461808250965583433996157363184020247531623327967376558109973160876637024330275527899291891442121782194350312981049614399826141680433771814667572081704546500630303929984659523496252554905518466783161889832641967008998384466562645279042525708497852836910964018476981666719577565713411541763997863807759398414601430556259630798739429220705232467381429881700198551972558280839075644041282445558271857203554042642130426405789070638311643989325051116333042194911906133435343974777336275893275027199674817135810194689272103633117987339915505331385789947315250134397701404962039877729107963650657407251974876019784418252726237750928760313973408059597716404896784781204422310091106044357146117922714419661701911264770313814178141930039076473885003859071996786012066781201554217336263581152270125914583481495779247603457334029848317747062045512079443799754124082183547027302540038192426984904892455716333103442268573167024708149504920291669933277001404804012608909288075291192374555479955588700877325537296825470353404169480524887657286921717181086021452587950057479200808823895538966214522686145712297157741443525611426210808572944459433826713913617349062480850095729194053575365866862775596408257697977002120210461902065736903649929030695289921228944119485913432014259564743937519478203547129112188838906045319151539131285133626733108559363767332013136976845738769082900994254599692987721900110600086974473380438800545004311501998623283947185012010493223654172788136293618635559326833512488206066510812161757878466838507763881848593686493867604933945549754609919326957552419640742867885367343278738072957076602094683420275079116534443742247539248447325831491108498300886785760717752466496798701555653557734128939718945243806919302542992701681353598389620125419383129418787670260596205190831976592940590519515873819541356484105855350546522661405709472672738035245109933842673594683719785257168968982848315316988550680711876554749494297913465073242041161753861042119398928340535302399830466940147005653479747302845099513993484229764374288853810515780296957577310435859719951023512989880596770081541651984280964778005216888579879873509569991304396017220426230180418763380011260757848113659411257584008205863505087695528895538550939956379089769621642518193955445629218668795919038625150275656993250921700137474180598036578636233386523750660493681232368948953194653417242414291088707733716455303214422429251083484549641727199982949219337323260832938219641265388907746445906431693642259380208496340027811618553192765745364010480299406807931751276371979848843109524007355823544201713695098634765537756494576271845318200014528091854496330206995669353198354402913463143528704992301678699475694109335074933421162513750119453274911223564686637533774393315926324892262541563611804565332690834738793494007011021651960934304316198994810863394294832874190529882039036509216431414506290697436301308083990621366338438298637950326037886108292347413530929292330903469968099336595695431334600722325789787485471438837253415609505050907098282559180100057629498416240524150328209279201066971526911379042401933703240869785637762008985645026367747094111238061315864283942511216870524345521745500883461822616808316447984166979034034224515622706558361195841143959777991748211951934103106174004028716302995886573895390221768076863432571345407605332118777866096496515335250237258607014297346898965673146435060416172171619744278182125137475092686564715489775088740177312802445131360901747890946865895084629497716929175439096006122807221428101678785523422674960533766777017374055740637054070335398625597350600893113999442572245597680299076167960765573821244849517672773388472873885578342411428453345768459720663281648741623447718005285879765928020821801096596548616330192551049273094492988466119789310660673664939227418304172218887891322269400962880394050009226596605845785334010050556729297268996419887045831268658434701522881373272599205474774453672236352806669296204884363149542197779814973789549426513424036538717500112437310064944223140944550991057067540979408574216289245141169212692038152954571073535944833379567816290333026589438190278127512713485071332227104574018044602694697522415924649591058232257941381039733362325069168497533115152732391619790853445018692636457882912682036254465909868216739289155868910981420840413011091800471861971820647839399355216095702033347890917889736668478982458116128496391107808029336922647894617539275535596310910727037598407132918032632114999648633057280062691098644202151688837033641034738846954006788864781329148673398314976180876158024264450996187208983628391605437632356446450382768688250607447509956748779726395676954136873908408168165389295539740225013854003025437591977004525907647596725483882074146772024490892573034136316177134661255579981933108133745442460823642295849439211107081399369357454924999978399743175162030405627105297985980220031624414534933609583486897906101938242563034558258432166156248325761321342427748020801278674588034330920327961336607243364161462104221510050676816911306414803287341836944938092102703881139262361838365234502203896236713119813782401738798647256383591702216610741594134032825113132311179307542451486433017537603312040964478650425010996727066328806936650141160552490602404386809372891662724736551729672722180430697313946899429816659353243597350468205557403115997325776412685933413656476457148202001225962641978031028007433291108322476244545048893669370869690222204331098563077412088040222406748943901674026105299090172749715754157900295758233474697530784335928119120676809094419448523526289147927198655456559743645324079855141586154439961079942016548658077956998192969397149173245605223608942041775326640324955159104965508955150289808838160537775374498879207937880080394064993468487886964913437726597710256330946383081359057821919862772274957585135809135328872670078480673730861714109836783482217451091671802955177636930332297021117576038182512327765360934507520427800448661486339014896394184547564850315344014542528422427162496752590688698790869070430730885268229503364841506390650262351314488612626904539019114695775763185152727488922594085971508923563231952137837696405823916087639835122682006545878981544155187423201645115462283646143156050641543053656297031333500759467405350722422061727506308813598837295105072095629713334561131451134642887775073939435762129822102115556832408791947884006909113924142399540814060599056249446076978905066617963113696822941772078344014453365566847751413012908522919652453189800869629085262053410528114807953814221349730041550047348579803835423030110650956853745149801470376541954294879252305671470614752265174726677831063783098093225508735309923175194620580170747270094510057364279449627600641717265198968224670947107510881802763352698001544271888857926050315243250073932043883335813436301364803233252878362841700430774545092988202998134506438886981423149820582892813406162660847625734519811914980650559545601157536546192583174241749567993844332557483105086807330344063600569189562861212527588916791132393787891827348952763611273289545688137836439829275580944013711630576264355120222015144521203368261452175160091856269604850634151606734843145043597725092978309331372151894110206005587983045437236502409127836482664401409236383516849735136003654920470424029868183700240557667681645216081465028411135205071615224935813217288119852688614478151454502930757899893622456232344815302640333820751272762114419476927392504373629191187887104525172223658100791909370639116614502640135435862764960105749910337604130773316676385259085754941435145698624503598276173604237478908950060609278366145351172607504167559833328192544378850558358849329658208468516728444553969934999736041418067560399209098822196125881104492513514205579542705819484823591217890527461235213294419312459636606289357171976882975707728570648601706597261840180086148404891127164803324140854323036504788446304723778046612068764411052096070421096547349457828635620543080142804868303693070210648188728542952517845540800828399774124313559571210740714973372677577170417325222778753258407098633480628788935180416843416250032195361761131028392693675139542696018639879553375434175483077276266793222036605845115945104240417666810302066678762163398329349812850999487007088457469757664079004946011000680198909587218583532945237840310333816291851606278247294235942373523662742527420264088622386917290252300768747239189521666842922125811322266946429182627917664789554235037019669234029987116133190057212471522791677105036748715708130187923607948174622783348376084670568736524991088002873249124363818290773778610056095286821804108453918636012204687648699183973688565932292308857324475302607713149281694619509167876845181735616000055952801323073929577987338062303370056773356510896294094352941837846589139888216864303438067064847029100928488881292201559800039385512378117185777900005551115487225422420483774775767183629768268604872952697263830981640134314502766535859810220383545663044038970379247856018071859868458205101532394729020063537235338908680316825435481708045145525492563707037371439559198516155152437986420200775510776960065318111666132976387928878426977274642003427289186059027224079009830726076686755963658582182014603253000806569167980024811061707204561843722323980453895048454205672191057237199922165232264264842088751235608724591299292805136684901725912052607068694226721895228827384695138051467845895960267978455951989026617258459578447943284293077410664823011830036776641746850119324701591138679050887386960602858007383569646735720772585734879991094852784025237198216267145370662415327683120471118934540515146571073870222853582030056117072132292571108010061427193488117111842050778086321876300445177246303384605015267878753443338089325692514831516761929564659800210489295318457022282989593324225260878356471987907101024347474988341241979566469181853583988862816300090423430599580168643298835962278603377376735023134831122284108014510099232135390572319257324399243076325540321316314453652116162953862825397710362633714885306222232075245690844461220591453252266017185157192099860031042669694260405025279307266023402167375413824311079157107998166191877553231589912419653406059067545803288395467612050635899793339038810188169825463836192501412381419963868774603402296056085166435248293628973181977578869123564967882961948755218066040583178480464064761207987510523358765889835260431118645155356466947736773814877162134898171478658445028754805576335504108026446847277618034443255893871200807545772306334723417731564312688854791802783203849942075420987121544098307703772289535901320080461349989916486735843167683637672221924034793224420180204935075340870809542654142132658997290596814487671820349829410849036841411619305019582616707463703270498282187011187951222206506319701815433536166763788566839741718429020645017871558868865184886813015661487450204037350803933015710379071671452141993113527011374385391643841905347137386464159981516169298880895630746456841966490366335452028237510801421422977860861718422910351100478172179951897067043742781434391237743461549066531937752165960534947299144069863353567424165023827968880552652223967654608000673848355435947803218356927361792316940701191806539178356940106453048587991366361325478289377572123604044618486691344621524106631665106607302009772959195607035543845396396602192168944818541089814323335508571059680676566003610662708581276984338221757456695371745351405465650743981318600070560631793248231226784533515118085202131578914979050517051567564645485888737524161115727907805550305577745213832545875570723813040352008277509516804904929830373362223042790388710941901172627017161496372288943873948270633698313437243260586578020291210724976022081969688130713190645012890212938891836425934907590837774820447098391759680463603673406035168365516308036711694686738119643407543767535667219936328821884210883899030971654212518560375771407862740797036150312833853675324237995053664545129575918275045444235805568303172330424639026382205571991576861621154771962687616264302901355620438288756734547298856798540863378396848075091477952968184571968789695868633363426430824023756923864924237259428253064961724550479543612483453121901607000856042124535897054967802379029493929460628858316850606093125852935867898822938942048424801540461235673699535574221884662368545871878528819925271172345324728371426905000437169295292113515789065811440039719035779225412482149115730377155982022887742518239214565987805841635606396586256264093854636695211958732262155323804884099729759011139905486392234568793849213324304456277045504712581536442487729404333467471164317440469332130565921488037638179114702856165265053884531562419635600715602020228569445688022717850687328321054035751306415221065464603252013909304443191864368269401968588317306121439676647318528288682415837470217427543642067510717015171909375475764056711015519759207532696822782636801079833617887050190058346402857616959856197783246577723369264428573209105540866458516429002013622809252023032332644446744292520161485088794409743961967107487681685376022806142153898055249449957743544798621110403949068812491752545274154953878278961182479594457584962738117058577357686989856118131441269744846980392053381810769695333953273943575065767710298845737971529586556723615122086756487968935808968044081641017848800413324587903831010438778402896580184056684721127215805407064401650578969194403778130139631055097854154296743389281636941057856979944304297616716045756597640096596271857926201561011217584724543789189845945860433603596426919450006179988527751526126654209583555783672028000818220528675881379498355491229532141964615498621448409322297989671104777021620709122580082053391621008066407705418447403546632378760548692089741218430738734416071203453611969607390725319609445925111340721375625203652885300122184013352859695229932153538410059594217476831180496604763804503086384538793534940361312869771924202158358274534549979325496716172330630031091127259100293691080483460164396749918443318874118314869606838809418773951509811133278264743153542540473562210472960858508373355353068185867337349453982606794032983812749564947357879618446833785243376663352894926371942316659758134378116156075399061769848525939032120958972117034756742149839648514918789537442106582568332908737400115050098816665913421697170237928011486037984988759693531726089246373063775976339388410627120360570562088076116588636386476772257941423758865895254031513467805307119346902866818499125097686672019476150973980185567151699540158468169643772883549479511421192048115422373203319083527725755666785674745001762882162238169768948415246766691171633920728300016084315762943327176206557253447158576815964962060601640304404442059863903781715350371847299254691267053239314722320859546967913428470078941159403990372885827859757936038283815226611787361378574719348540211048842295079289341744765211909553271141793233489542048437259853585149361182315050203681818255101354602777368254671794074484838078616825974773475584043296471931528853869650159029105246090423085939418915984226880977508780878133067826731009327248425351166501696563150860765016967433254477754464590247925302383164568640831499622790258179500395795817182235058884144177794463516763860321297282507481873150510629762447112875533047553173901457135092282673685310871112970363197293771914381339223392021128216071847805013477607585584823903145891424334999043005222217985128402473555311973784770894670160916727293159899868309629593497170413158734103323144687412186300928806239994415710818782627080640213918121936551519625644838582749355217280629122349468169453246129444439497451980781014842600943680425198282371666505104438475595398645794430635176130763071085601927272682619739298928484313342938226596232343617248604520686611507459932106030065226073187275004704180014012475814916798380188390058763675911660894221728281483816641081421189770239526303063538671546432428888471669068419073472539589871336096940147782585557239304163014954172193638323525157335030952351738550470166912084072521793456929527666735191302517170064730636393502510766542375344356556545269377586878088442690273398389410219549103965324572858100368882689567881371088912621487958818958437690464937202726315993643237011430937450642120932103816666978133570507365245247452315391782776136283132477637652177754623830761791197255216395753716882880350727553635603840985858852722266369479206328352596784141891407419702021616646897667558962836486400349081303830748760564061309692574123397094856558250283524368513545978438404076334359960616175671633044800593730305847846555820889470107892210891544196879375277185089528510371152555035855579851709757300958183298592534655378549837472014134016196083470275344233048214711834108299986789518400675697940090944447724173972950762603031630072871387769781584258271950234316939332009811775489544228390643592381242960834364662710614973248615680809038081659366906646911026445770595552991190484802829677690485141302706646908928442265856021759891996767274281042826184630590757055489859127675468115838928030210634972130093207825044987951289058077066026934460575862724013771073339837832583514868659767845887442601884357416456797314847404606879853875153429550937609196085963727706837184084334826470930367470455731066119528373991221965093073517107455176282721266780962478575921996110281551311121771292534998296416544974762248658932871270743128835901999489353102041739683562089621878511636778162754550791016736019634754822128304158108586048440065954873971830935373037164082346532939120169558945878702460536884025426382521181971416802493862802082337147605309124649878202383425582395655009800096807316235270905690566259206406696451660699144265300047609895302126143858711833784973618863830347574342443697859032923609565154790495770816287827533174347939534185355504389525018058791173694999630450127595753020873009683298746063413393556980304351434148354139406373474407416827070239722503412958229942647703320352765915327363801262037714356949176926027490285544320651655218875422349573485545881520326542484928255742555715614226052164011782782067709293263680168283447677085313579578892192360818975207207437583329073901448475356737935666401349598565800256597876795342577667591647129536712103496678808966989357594225522363793742807494826391201097054166855825256298566695940798040925438642123880660982896669582684551598738767312880461059161050722683356767156129804186376523403152105292548146871076470464522516675015918797432049579963507942119460971674014165887354551713991713902830482095666807768089856491354719078815715008948525094984300515782590181559916047304481273551266571511466866928378613911165590597748195776960187600180045678590565140499633604143172813734678672811563787004052913310455908307784896812680561398648866756838751804085086096092561252641764670492499454097283640398665584771400224627051355843089725259297543704101084443029286224462419475406076048996039648927104935762202944023009749930475878215816098665770421897382396740853103255274946147253018537624935666561666061393021216129363026944231782435262223736937843598292515452854453246986968934738156773248483313690000962917721877094879721831957015147239341088030910140142918347496766502554955237396367219030918512310824437939616733898028813365435944571728640645598923479649961930035922538495008056486051674892348000406044690041742380133204506171170682331277044581738303433879281845848991892331999952717902098053025626272009133638485866610601047767675483493442270018804400199121470739888883035671420653986609505773299664003478410136425680353370122240050198049607058264429427541164806213268727496858619694936707132332480597410889415818126049548156800118379726496760383716002205352612135034011757317902600799645954223137785259635091613544401824971034318604836310540959617372883780689855196023055091110761094066234307723865102978980341656055180801692324950546735670763777532148251425782999078715082671298045009576997341912147398155665297408300147945221255114458827937462073492659396542186265821580313219721686549665520212849764601542787109427708140736711332434780728356784042284581884007383849857416045401419317103475082402190294249783898909270276836769527299369503632203934633130987072723513855544190411791382516510155777613049307379946486214761400724216108709762748216447977588181857108728036495458052675309563074224432263683186028828465743718121206273620359201354246706562988138661749969609759700614500117303265875204994741787181616033946682647312204882757698184927269248996404919007785517250379902380400511015620658317809894914267022786996597064307399836381293532243598822574890183091433733299673775807693134602338818838410437954364173350537287012512923946883453074286784125408740057977804490596053849492665833522266612433978945046384106264489809568591166598779037898715921772592690509971429899225468980980582083639948016101327286198077283209990799775649059119890249342121748422942265655172876595089478072500922045066625220963626269386710567490945523280567795646212573170726443606974721514171166513222830171322876263664570299866284487206827333062217903964216176767639541827710507989111528857295670120696771820514537588903340882748216616109258193304901752152258582666161632621708340819288995676663741398746710479295546664325012085326074459309743637468037745001851661200194945802239989253861746049891795633080283801961033012619854429328881241653408202318958584947936134719038378653610009998082009248842525177506103768360213205984249913369473889652588307375367213065709240343535577058298292721462249364008552765765722111691108625835052145551669569250656461690728800827789844948011058455482261429495987574887460478956074810156109872597917811607621029348571602879713253716272161972393396500112016125253441004121197809750652192635533839479808553635088642519859750278847693384879299486092618370289597870022619257487346251229202278005305742990146047902445140881772605315152001702646406483417531938828350925622354905756992315892321840617730295533196902516454637693026826243902946053749173852548217456349740538368284201331008237786494458082963145157486636674104241507272883702487553013877200720834689259894713321906529050000339413577415381852349641825288830394201965731638637770099531903019636292415582392361096329391075538883419933113689817130317717759844478851278969230074942639747358096769023126322436022470277181132035142146821029451950373079284484380032557967363509203389106226489299588913158608477582992840729232405398014048040188811211939572525017782205766612377766335114667529553305401316569173288331019922517233293589771719361060627334614603597043228673727326054038606463582910900081873914152944157017451209082229576774913671669773560368219509407477305936894546889361039941755800822346759089207311592534203433129025912863146423355329220060267829406787076899762056803154507800692657581780634879148087601248054190156126729972541637956146746768571804159466029801277922052466130029292813261723451188381774641965784012792894743889086422915746390034252273599325306934416734503616887969458098973305470970799650165075233178603484211255685889324011549334202108064242940055564085731721202309927816892292755659199375581869384675065797641942722203975442263826780486592365231410733965161479153944138982828791764320617184114128856033175915327037029797247621619097686207442200469490579984480490946155028014060858459406539098080301374289292755434278735021279690678288046242130405373840480097051101196989325785730822265449030811968067847915771143904990009048368676287417955483666231991641554843387854702067749535620164476899108919545584461568650542770856109165907398035679099389384942843208186110649277841163783942218134133205549803500704092083724891219412290812127831033652930766840724724660020021044676394987451997620560051867625531367827901176932953357106690219764685487944307843255399839275597910039391173316396852819248837705842077331406863554299308715633658075358352477403168075650982656993340614585523401092286849090522353153777810228126994550653395378438062528670533350479044091215269273250890583214565314252115258560008595562985929801977401775724818481340478904752589027445430275174018245970035402112258764820178643977769771133193797029796483410943281039192161590001176369266034568910301060193380257372457151107026867229063466919543556691055866137239312027993313505280737700771972997799141162926684456732007583036392123454465108775322966044851075925318809464420255341287106637738301749191784669034481959037170026072496703938185432512719815548764301204518712421292269049000664960135820672601775438371343119975448197978287239037507465792716543599004648301619016862558731399208234369257820272960986089946278328777662029360755610170571020357337521770551488649111248812241288130132388154036063909604089205426921385470190572045197413586867342001641420078574788135710270854783715424007094089984213495478019843779521766715363627761062735912035218414331567482954807067037579058877842780171702821840130380149330350792771197395618218977620357451168809728956695757240543268113584274246991696790517267493182517825836187760598493422661515025191387507522917779988651073140580039566622570555427342722237979573305743446462490226305400832307588756517305824958091434744525667981864084540954968522527501165949097333150910922398807207683696486842076759479735266749124932962973112342824691239234672717120747124894216319993373478604138049942694673914266588169162750394893666610598735241120409310892678650023030291432284422624141402014867672226156933928916336954149751807014654297510423658265514861815781918377377280775056509057413342018013752834613831078727630460931615245068033852271525196156402212702902988484208396777226829155025483764714525194340964490566121852290469059685531990490560127672560588930746288253767190157557131181620043079804767157354570946626652371117106298690878687179005137225167208785855887954060062967403237547467536610616301222482914931658658362730131910292662659712444506888022532824986451294153882154186899023574750110673380018700012478265786182418455834927869034680346464323817727491164369847618500065347401550128616792019236134944995304045170946902809615061739127633309289219515796433114242290375252989724199490290378698918914347409058448881779213716702496287657773064904135573581494001432121034139997964785586724491777470649431198430166486539287104403176711130035214021431499308190005442802571888803557088640885844967568223475035389233988107314504190579878019795704337583770922461204228153083881017507344686399531218043424830345337813460131819290770364891839699960241246613096738413153372046349871212708989480567122903590212182890309699820022085442225491276701037035309337783765030860076152483527837352369363445939253226057564717921628896647875967494644407401873853849358670366262098053664012156546815547353689834420749086340845151047861734047190776847789358546042548939347710076490830309189949976734197660301327862136621184803178961892467989634819832428122612861240813874378441756376769244996714163525355871701399370396146875156277421044885088058433907401311749306521758830694749657446488290325687135270769548823078370386422101859252735926334282221127153616381113893439067919781206547023322304193382054245967576939399454874647922257376743807027037630036992426071272173986243075715783595717889229513965467343016128368879056490743308135987986461945931149957870677293472311035709968619354245282538133319756428059338841636351543580092915756061299295032056941968626059752167439154459890491365962128263324849346186010595962416865656918244723185794848692430531580328011164200614995232682271182441313666865164841080937009717731237219692949248039815383978986700854173281746239674544569905076096430562381144134847966398953563164369206255759154857888717930309640847574980098562032305602831527794852941089924366899708449113422249657559621590137085610035485604642671033781320235379408844173404825230509254540442982988569762029144965563927453202282033826111805618033638347734677290332234174710618840111688380800222507150942462770895592620759993823937513023601572564577006292352650439534601784751463152066292354738109403591466871417238501018592424159080808810289242779996082119859995537374338315510726885931888477847952590226034175141259871029484756312994071337096616124560857359565775392872308250103984822481874871409693955054291628529116792798797088092986952205337680660529425509350111805531559450031152085422259347879973751272155121269504410954244732501407618817923763728972073581655374053425371945893068883270350581886752844602126854225308275696328426877457954896383703143297093468069518865303478782077583041952432644342375409921057247481115435842428063343650666397468939333950396031612352680226261788125686982791814293326797262177687577236461621855109498311209051776081395333969958764731029251870208314756682266214638736742523267944810358628620544675609953708199553757165730965090594429968760777312291758689081827835129992152258610397459797880890881494164046843313219207072163880245133712871295254943701220330253068424507947887050594943880255510564678922820630259935608479848127749734227337046616590862809550269561931896427044796569120029757815593810326615566538382149231781955378380449135099813498174925167721969086039681109624935732633647341938163670506569820836259307227707695644226155039884720884900017667183104932295895359894502197685610291334087954410066895282484710590155134266534154904994397070897024097643349991845227488889479318926471367219717280726307584697914302747067498877423908447546715855639117440545882391383644452325175350902416957603684678557359546282471534821439922798502276755061973600162911601983306276479107042953058516907045362602654080168049560532701658983783719370400629337414435558137093642748683915491258992933829762271865697922764991246351587505656106980783806747780326701814247188339276376198486726136643459465449097470055837384955065101637488887733034444198737377678864987808169565273031551132933251345903959002861827859383957003101079983414974935963383751098457989748596861068090808144299925362241440500635214053582099622627154773051610147536736721449950030552796477945456578995183018625612564406610205670235132980072487988241944458851565793347060855944661392077661071310811322511957909858693109869019069085472670638998972926044587652756410369081551297820487958010204621242536486307690152965377073574005846289459301517022482179298297409877870229095042564561348829145971758408753798668639148077602813252358874918343897089429692742917619368369351982085753356221063116059387732488030102472151313493106108082527853598586008556146546632118318466404412867259582837453874302678086814502614284440894604974143284147729537151615030582722758340396917247788706118584708491681020486453562959400004604031026511993848616056677370042898484828943933940693703522358852796326364130820005894063574668501751663380727654742527776219435441805509988611902239629478057224068363040697338671620358233258031766430423073166370578483349734026255909236618389107771282948030618792800919494313642126415935929370645752962041695119051473798576087498462744720700995282150415444259070528364670352855730088793653285776639436731776194923819301161440763838478591595966521553655665111261799270673100102550168050020182437193760119792799801413570279492347312193300679098696267690931863162395012505946599599388547797908447365116014892713194849323750775670469344215257341594093966115939897318059298152048801734727482056958578971823030484009454475647785730954887450740998698446467272245823314285482122331779006914275042603611038733375916850677453220439947033657080164288604799629971944856226027910731800919451910773824663351195377726086666317757665382238708814352884129709858767586765704402612369470067984006225418260363283871287231509580733376235339491794631636692666592435289303774118603151155972254452813163635946631155838540293640541657257061655511767343481563238149863906598911955402887154401098989047656445137952445737865580092477783549534981478182451846798149240600326379457809321628351279291560515388132658475418757461028920013053183664708489511319102195016338505837850320021477720024989255062611664257505914378779549589022452325987142799110430722654131636512972637373241936276269280997033527359629740053107716650903519704680157405481520089309393016417867447835210328510781327878771776203767688673628730234323198141778061800761095381921716218782172309482612964893707908776254872273797896520780380130303814624184749477338573834076785501755984324131040251905038992184152553918904346922347108471686190387238109825592883024694586931803182476569775433916625581297161528569911322743245363992762188632325811907400985287478611275074799640080068397686178264322543029135701967964532249520165269995031217573738781439921419383462749073994327091541968103993655871875387460784066302737189765136244895378611023881953611939687891608742934239366364931902336455246608340205403109094593528992671546264432147111603672016562716922902128965469753045561846412876422154255954475515685902064628436741183556280858681204763427873282148272424306689066336224445255977355738610095316499571487276513106168568841474781589521041826933064191019829401401457690928668409885187783415291182414220543686920656786023626798383782671455186697323126714710897128855502234096338850267819558824438541989311114757267091511039678375180284142294113071494899317136308907416664995538775657344092923293217186687575742737928395821147635884469924167517921337852621319290525697049704979323175839283491809907843962213609075998113936033114265968398402948792203057240703393438498758914508415041844237644169249919903488425252870269105116803443392363877034200528835865026252335846043255298797393667244132261299370907064562782012838046554347401250186577896137598805275676964659313758442257621779374578966869840919196313422866442889191707616583607086039236783175293172102584908242072568635692422284016114729231996719599454600436165935211704644839746553708266942311450105078326385587247393105937556899426246230353964521476390303338209543432138041631141261541097086879728886323023615051640310679208307847641970231651999357451524578445967300675921409035401844259711594983984758689589627310049351057472376520164357926325990540546160844661217597313050146724838782478735816013189275668492270500264935235325159359173299313456630434470326328912299760091342323248191593035651554403767730465396487382494156641358865913305864662872951103378008986321980558408500713225673839968919843878857172934253701405999473551765786278890735585902503430715815683723549795233711540098483947143731135542526917047245734284053903894066122870635748383576259889238539328748440901653200204459198661771323352738246973103292994929658378929522369602301688969403670910293354387407029879023416787827456337621413960952925804266562278546766784443851771890965633888216847124063635079654964349851430508888704173495508600851896080227291083450405008439495897890574585513196229855993258668190918663505759414240400612541324005257605574230950218564272896428829024957723458295503697729229030808626130544096943095417794017935694094998963842882999008464458933925070825089303857903021288853615321661975379338980851662763474268814322847381998164160939123616773730043187212298465752931513299003767275806102191335657489387647860308507131300648809492199900720181140760229937176043136481044422473147058507330936050954187138829355018997894956281910758829249086799823885133792740294720806404004823578416614094317155182574376056337187103140681266543852159074193043650140610769908957759132815155514874713156870837822587965760693676481008987190728296415288061974339209925635350968477497250461966203570651297336638717717493909407337951168830464428641892340249519088865978318482149472161420936398316825625517176910527785988972706258462988797140329074814014696188390203521604758718972894557893108043213905650454376984274779601219598861323445209732463815337174161486980300693429593878858119410324241880393988177109739893458685257629514588833932762376279137003552053371379263187893310441015567028110500919189410623948468994277417977325295334842198048597675371496772574642500142137681206899814581308586992363995949236713009659746492275474650177404914458880835184176870499614515910689948847023011993100788331787925367699559128680787085696193155534335976355287479309684446390757964042412212150309449128308519986401992452786079019216324119186223833428900932602456690469685018079495795473833787412814590057238883268391148669338244207582851524888135111688215778578035386796580046220640591909486849420836718755220727512621761665776742088125939631980851222042519533531193737849313660480815850618046143145366044946012604645639842101510078148904543348241869166373511204897043380329755344020667816476616666517406111879126723046525599470205621399867599269039362214472517474582578451096350290919477017592259906387202810779958521689332057929699953487358141379347856379184892752614543570572077415761246099239201948710728524949463236757923382873088946260199483003733319458959479033650259923775970524312401889395739532831741755565220767370536092232125893951494090474264000011679391919451688086217248922667819952285439174578126207000089860767416351439039132094646671109520306562914352995512144000636117985469790882647580740032452897845571495925637051801468490777595271012682969034241134483743840992925562801678410737161571212046488544381866665947656194685126425170806122654493420818094421545292234281336473968605405568536831111700406303867710454224153692021394128115796543440840825567856175852950499782362019606838988246090606100709152838490606401285360089193571016742312603651551422139750257051697583240885194770548318425404338848154204731080574134810191698315698476782221421331192426282939744808686899438101275072694414726309875897365850968871121691947363532369149366057906087403268045550697142474960470600340914487617164953552599182070351758973830350651675479382538868187639338418046270427549264820546721904832003752023854783609977780225347403175678156033875290967048271776787417765979471680178641715608089404264866409638535469564596036962950350604048820944033215061983049805217384939697418606621976262916334069995522837169968685737005297521046266604192765339527529116397552321723145633086596449598746332125303471969312978474977611161487709816378412809075407340040444369974032907899031019568338526085745398777141253017994790904773735069413108009736923758666047527080461460777231449286403006483277768718523516436140410402367100178174382720068153704228875711071009279744485147542034745712400817960192574664684255383731391732657627512369666768422282888757060122916260925191232282805178689687567397008616565619316260877451557919177604592903551953635463845846995694888444527432879365504411451574798143064419443960057935166766250647269044578123853916269978597933276094597154091025292925011536379538680528647295556224355621700003546893123060382744344590293055220047029221380837497352857550735002652796859178555752134913730880999770860387887696000924242769351010903264052664183481699292795461720231897736266891843693119512487074757627493406091253196943500143013586268881438906536537717850815713440374495895002907186320394764082515500689674360303085024592129645631443963447263047959060439347921391736561159255149014766547026631555680599725658355503477465177446758020296885600576176108121788148309468441007654789084933739523519013368980807904663406896439718182980386195986808842613759470093091393620882301196885592303047561376040651989207632088905445444637451830880669167659690073294311307875995926129490701270749192380202466999247944231806963887511055597766898845484183157487141137931168742550582187904718108738898619885376988940083340955551539624361750330610495563836133400966938238661194689993513587097766253529908335584283187171493685144706277022669242382288299192039750598212355867315496957747125615384743339345597464331265256550653810730361505614751902577117342281201508963357216825423011285767826471516574965179801105652274044118079922864924806896712688176642838870761802462305158430409468206147047282693152099244962087625330691653481885547923785176204175344472447270592887612028595838408826626932324604036340622200436336059413188360244363678642598130352474657329365027366659665678187389450502430033295447137962798501823266127419408310595286240128168555120167303631565572401123957789334844112694240948240049123761722377483723243670092510837817879205366140698980508521012052097462626674471314714275003175606915899702165308324628341659033960029886101480740716449602828417867209622178440411451279312091687892315720203423263277730097430500308871150590482349695097202054188612161907789072663319138452803358674399880178168459623196122607804777134223782180950548247259854287635635243698253107483656910270211918364770621014646545648082728949430750044160339871808753267059332666447239638896763734351525112680419243051743513861571297765292567319093856900814817699096562297373911397608080299560042984521684743506232705759430325333089228810811381048667042613010266535379841659882390939708445526461726430803763746089036648396173210185071526984203525555945349183235789155381495787914151657902757113949954290091121984877897822716728807369449128990885353922719007001769633327913357451661736065021810519469553119554176989121351969262756318863622212017290715432894079414510741499980738682478576044616157137655332060526040595303084716059343211695459361711183475185667787237478883097392728185628420979069053032894984282921287052511832785086905302510662117966207461294417555129674167286883980905571532448392525305550383738041768456239310661346360399588077850432246129934076443002585148450401929930537213647760344182035297922678155689343407537433125616824242376511669028097115902742712606080789642374411559169995613979263608673878873073825529012504925996855815431103309345432437722804047933565420374514297297484501884821029081924679648667986528559086059572070061886224609754512607580185119965931908769046386103101337967327133295100155690514898300382460340140522670879291886315859238801219064958364759845471301994224073415081450430267039189238644668083407656958865898586559027053521238377877766992481215868852511260426489748399533487671213912213236986471382778991090310931658910295686129021520348529083485576567284963650434823822500079240003908015139552986347323833078137409347699034204957214833013573648314166081139664294113924632980261871558195824060566075031622870933303746642158585738860275880174150177598312327801891247067665747848396510773803642061768270217352332134391856344089558372645073145611044753070118269807996239818277351949977393873167783824400266861211525934229799838782694885504028584228545233313396785820487511089873043583591230934816787479587938843848435901213197978912909872937948539575544607537817170991224735577915248215305324975494026234976744740931985066772578877486098766383224975754349280472830721819342926614858742193882817393508957874148485496657032165332302061487927337926908685444602890726384635212185387804577588614697889633919691416418094771532207568925732347677677680748807999783079412045517690619433385728337161663315804543143658392389265986839239656827249430012365317814920028777850809800242183345100201373363646252634657661736824370952150748096909517008902848480395340755320032529344731049151417771543230761802662232741485440260685974624418969825759352055970169363388079250836777930276301753424316076865210993537068816056599615371803793925874793971816867765797441445754632790603662014047847381905810152325768965094682668167773160121942613931273279735084810105516914831182388223453234727465100878751673033288065529377425895150868001179645072019108486394545072029934669045698079141397983729202231015425947483635624482594490509494604856956863619974679591575960323790567611166959577168614021481634831065546990382299907210635429575980272280118135583428927959680342171807016644333103554716616254587897110356806606939272784709109470295774356066177761291079629552633825719066057769895866199582661661385622819544359977275786650733464876745039259393311214522808356634668927523955946656181492748770327147460491997479254969546681683598607606958947323811743844983640512567582674711511036145318913295784606883002811673960401070377557496788345745160095636716763174571671664178701843102936311984541880502594801971893540177312552390062973985909976345415877219960782345969111503168912818296459297688203276893980834304613480237925774940893552913539984890720341033059245342899026111390199196961577259368558246803279357487028163088508730031769262868293952427591812081951630957487917209409304269998472260820986345563772506157239229000705447446763199415870005514872451790426833911579746390613009548315139796661016471177874932543381596252076400862418493612717175792933233045534771994360147582945160376816638588539777912682661224538457813624203495449452644608362824972752729914890978909091737292015042685626743990923357743008841156852188287296417164008011058134346074078801954206954548665372531048934305146255616614908385639255138969866961268574673025496130055432371955645050644038453426679998322567437726749009744282813472613694070434340233468501431455166038406831616380653282795223976818779644913470056941521468109562103279027942412415504819191955418073048814347583907796062791897128346629611224168862259187767752101093852165019673096321669793015030090820605298617249087361851603091407048962988216420750523487354832751654273573484109087254053368453363804282910676920015048642574853892138578814754736153718396307840258561797001236962621144118584970653759932812244322058057558077896913629589053527258150091549338517477318391662152485805425463090379712910059856965351569020855971973598999210163345700154567888222032660655257729977634155886770064428917164327593545051726005873094750476899569665096898046738214837988111418444735264602856396922465169153877819775317430843740511626998125550298202819584747748839229086467997736821332423749238151630173011855625610123844046035988204310590273368242395415601697701834504652534049380782849945215229870218027238497638323027906348837149234695778783567647129622625358058108816621651137941616208146961625803731437407222547968995270687003800221193061839893478782979291710845269202189977794453253187408055934384672684313778065289917881029091254977273958784585786178966415830153505060252013866382184246186749718810813795539750426178141119250007982173652920724861136998499594256431252245788300939992009296884541285080082397421523781336305566795202657604977947501773743814241208757151619145537436516492757348865081115039707610729546473834815228590566861780781833808594294778774237405315884034102538703917930520926446571118457076599007178368278317363067517183580884800738784680123534218861770548838817513612631718854878615824664910316248556266147420987005381734912045204964411644482448325196469505330661159072129600468324877559682692901145386549422512274154309502109140202590640202486510562817299693609194613328356977655319852258066474566480828659866614274643043208887828185266016239642778935221109962061994849248182006862946603279855144344634612518666472009144897129047186048882767116935259677552463529058277223485130019545609076509151599819117619115379685494101539377210424313361292040733059336345658980428950295940191396551293954062101141865965853081714824644769172818624254146010872487291505071791792696901551939731489788259268406853131995322638849426923059415947495270711776651342809207852150831372253514072602134241876529205076165585532292501148086937989066585340174343220384622553258459408203999084298176782968154406381272427654009374648806957308101853622581370452636430855924946776605212046513297821616240188450927025969433204581792482793775600838470758694221867631991023007619133426477990828676287180565129251308214612482485884937290816470458830390283012927170795813051242078717473329972901440488850375477100265101182744520607870167994785038181869493707428957344473011437030941654421794237415435756451460981884081350661738476370622372589493524703116293547551131961266830903519225927652280837777640329323766047294454602305905522014725490760631927486159181828399624010398133243945421972776334016140224315653309856074452152260661154125397167062732952733117701416558363232026752109863921081335476853648150412792675963961334742206060297162534015767073937447770031901086114933127062430724150669810276558984059718096754337107678888583718656354248026715955520895720157956158863504669925337466227211133761218377120049309967032917221710361849152390005233887871876549832140073407820126206011454434458764146683895352883647676513456478816581501294935467073089744361994229377910697176108395869069356357712665331404166692617176272178443704675380652604771538710449673810066983694118944356218301576566278357319424771275018447730571722526169322944427740844846518970729639257720029634299292115621387827128153910945379481632766269354551907625269482906290741168223977961628854439773605023679009552838929110219436645432809508942330571518415206762254493342166784512082001052977843499236569400177567016821266488023836089075479084062342985328034860958587603155829568890021838952095448213411333207666089610996011469826680794803712367805606250893676425994740895412702583147759292170093011119003441284010594000390544973075504050384476914329334045908812169302712278369415193127592479553187418592119859988645932466149079782413414038932865115065699528113119415141783287404942797669957947477104697188868226129339610623355817991074329182845281780356481086373870409725191528882173171232800117834972279881907277583680135906582783720755741334194842968047512547699113410061915834389894569158379737942883717810516396837725647056648734550911548756530822616516355188485959360433545822287195792364764196050700822123256931781154919932644635563421148697778152821710325537806273917938612622532477945778032317893286476204460709962032675620229756557129899552968787281174359661102407952438990151767782111722085760619748372518295235626298147526355895021280198128521448255645064535382453863896458530671027654355848336768701062495530255702114703639542047613338980396450444129895603577304012301488676757144622497371847912578143687545992209091245326155357528751467783451813822465560422590853915261910679490725063915074586665067721248245622706464534126273567276386235791295538904837669641816110555764538730235436782843354827820958427678211428681256300377471459657746634804228272327405995836200723892528896232001870034901596487351890151428275618787413401354051787360818783787256893351050530018161980672089780557228850822539101517333482928997404798074444461010959663775626663319205810520398834807742445079679600270395829780682829161345155293592233330014292479360105514177745381213264779315143459155067348640327049557367318028566651035347143670547244448667949670212205251069879470785882361109554345160122336320035835773045930357569166089081282161641182436178972726822108221208290393756486381981092348813822225002479857376118250734440141102162991533393670489213883778618485756607016278770261503299215707719215408519180657108624139252061877752922387747645275455484114276130172351961824924931764640496585854337454132456980089083296965227883172639883932590535579558541286444847443068583225824817816304321231704363755385911074629750865235957749406138330540518714620969567539804209074920373160173407106439378027812724534212729521292359431981835728021754100712769659957462116350717949484783154027357464638305506669219246979122590123843963747394459591172062780959625037621141398642476242667702578520860458542889987833862754037815239869627669790780705577038110954247694491835756664927186928068240571859062019313586100735668473532676728406135925061400530239775142283713964839489963968299560487713070221368983828277199873167548748493020687384944928872301266986653609213176323198045923894815418704003902934854532597632359646802489894887742098931065739553691040608314598832170511565236352751437048565171210880676954235414708983792709962584020666437564331997796126118559400793380789241436412495703611882608299211166252145656466905509582153058683013352373565016187324510998689665092578731712900223095167733351151446378175402049508556217568365785425051253178748183743862586475143772113587677838070988464551593710326855928653563543202540905383118384295338580683470965430122882948926652369586215744720006973178465883097393487361228693406315245357440283482714958849983840153854976859023827438550610873512799565891093022236126891172158804242423504235968148282179101449003547394586487008034012076346414022012366324007399875766215428063107864228577986240199371377634631568579568899953730887676218048828504614175094726749432296301970524539818975692906458031042787380249332075638022753967922415857247410915349747632062832387394621950257481550910389628423743673176921257810376300613511929525875056586180660941902861351546484396410730928377155993950087167709119885144010984862235654221059352095780641498122215324887577488701723675336067704575028319528490087448281712009033875247351625705223919138536625828723361700839390605192545511136969119500131301911348717594919336470956780011551012433548266331393685594199689705244288326150535898664014495149668850574450095701463913838921316994040780300110886820523632592186266588387342001999069023913382772321893144637544073715607713860099994046416774510062825448949258735972547876119594990506977231606657277417879204634557518332515153522299913500361958498986990424211305168316552371815686013546591211303831881112659894778071985006539342018835192947344019722315561171279529377438811476110951876386959332544239569268241730838643091511751449942789342261031327135791937506351544773145865337824799707016079042472789317648621013007379327497009644160986325163804258516323927326218791004880419359115520417476875260085305081164504142665236297670013032086381587748993961892807474243924228509680625032777008982147521274383949637026310679110750219562918550015098249340822950634473076628553137562176154276226090861360668782222968877908352093991247084483973187474946558761725227191448240230342378259016379589826334609422006869620911691195028093234641094511900194817005841464262586004153687298748284740561133489620009585092132387566839620051541378558784964095927006564784794133972062863848903822901898878660281213671252784638084352615667458598104593155160826753854962391556326272394965035061869774573810788983680225216939350640492000166795326579974938954254738317294249600251936114142296228466694896251125685443196919204621890346639788163939488877736300718412459376871967811267977598165616388750170873481860214084616124145056910259018970943734408359499836750349560827114736577644260590466959781752468895142211874037632681943731059607662188646335630766779862637717119263725165126678269779109421867399329802111382638381923410616760561461806919850097200897655326953224221064431307379516508542424830836775078245967551437888485519752484736862662744960419784220743270139227507816416620886792949973932769140966975647864992109809330774405224052136497745049592581127889564111580814880282621481588797515765015988420784201530339819471989677939477931202342059631845559610525786246392666293226252484780467569133730629891707066617820685071771707252427022883977595997056015882759427783694405234806065405656191189103056452696165367062350525148144027281055399545014787499653295164216741918519226335596865646101198182298089868579799005072616882629320986039009671712850929584430148984501984433907241378392161480008332750485061354621715570121394477751683841929603574260885824435266591457523251705606555826319574806610987834410641054921270304933442847607041565063494247216179551690262118951003829320662750424618774074444360376630865474868433671576684549099643278178102969950485475550290933634867858137252233889133334797773808529377691942958394200261544393189811157742074182913297869820437383350945160970067258850346240147010844556864519749990751138031484426975618039613605304449979529385957640035506310598783322452699455046227951552443718162777417803719437415873391939230189963648064496617282990131603758630579721111001165576423922172228680278487546902697676352675979309521223587259607296207282518301576051316719206599833513809509380674205965801438836154950243610772493803853067373968575706670110791271838873634923690565733257560810795268253286926593216461151917378967916108162596766127153555411022969630028068040958552644727202619383113008821059985359179359167525038859924021353235584764119235180606657846051108526189683051281284324861029137984474291776267459017432892626127397973883158966729828454357967605183017791031365155567898071464887546756515744237594291462916488980501842337593192114779650310760191361072641864548413336022991269180790954718196686147171474084397367611143700916644615152067223211635270539449616444129269338150305829742068606961023878785092375732190168354618928934190051399444024250854334377075375396101829601038418255450106689209978358359143478748381806767457087610891429266906328974418650269152918477312235561737298102246303286572183425716256211363516587895705314423408404051269792517579216008542297612761645415688137664669350304294276750457834589105078622351563257630853736773995090403808513502147431421547784984363103792664018500902304256124123355051827211984803612895419906552382320713664456945600244950096027008318343485662320384103694890003513952292100413516113783118003872041995250329215939206844665908672190058572144558066743379917272964040654025819969750298544856626567548871292114283056905327381364171126808739276985778910331757943280107018226528298183021302305525869847559001200430574903376742774938158889443154178754516225947908591589234567488721504601348904285268229727244796330975881083578476194508376637383312122651890363084389769322230169076159708641963130568732116355785679700001068156146222778838465437494361295117838947176123685034509536282588903611790533149510559916543199549972048278564183336440765843296351209362862568728842605640675442792502291250125053808074359597221663991039895082088253590408434670809066126547952610251117780581894368401538650091409560315416520522290153086500957400062170941493998924759770434912632917027326581215500510439081071075243593455904854695473669523284331753345394551274673767814236265609072361612875481182264677270637369889498975131289512719593886096460108402906806025587807935071490052282792379488861178602859328753296078207904334400973963276921816832930396248119571648696055553830519104577052719875239965520181096273891289425583240518628811381097449694899738708593392581577640476008289631170601779034454175119644158568982141146978882620242121646790684168390866076182029760289476326931227771047599991120711965461445497742338906533090657549115265132984790858844467804837390423509145876468369338465400594648698252857686196727245081549546277926623900547733858806632497798431153768376685829752482966282014482946218931810671121563137944832247941131635962223328920829817542415649376265015698869089249783390985228436018672597260260333865011650009090291784315122185672050414252357126229718838017386662596212895552668712202303539065533102198679960358057500839178613502833355149060965015400140161386614336455624721196634422406897422668344727159845876583515329188608041930438758744186476252855926832977954705951128747542487338695847214444426765734290388334109746993255287237775130515460562386757781896637868108310965495018650073374932987896640290697150943396667440479000647583022826982570697445977476816260628687254704476323846523116223817348995535968676938823861548909695314003120984337872330320621599197036039472866553392612903815809510155455087331625352255577086279385392214181722487838011932217857270898364673878409902718190227276729399219853285748145854331209176845728231000562777373916929563591453523681606826503569247792387810511228020014265800573806642271220172515547431457983383121832220473548568790209295538428589754591645511505082680528707539446582643230479718455295112880475051332523605119997425209428322487677382756430726431600041239470503904939791905480527680815520389808497219803837544190390069242363701554510670210187980790320928458548611400279629672825744293741201463675965948163255194137541303558269712238361622583781501762833393346951542584948299794885251704766699338233476936116182352355309042668677997106895211575095621813739295537630109295859303542402390682671886030026996381267561355608752858378378168706548509904307887520680866667775368871103688954487198564444006699007636833955443958540215257281453288292457953335531873502757900502843491305259045729715713054850569761352191943216646886205277844348878080016031047181605787836921250157097591130464436236400393662431385171107454431029787863510359225440709989935214887325499365807515596931129559465544528314807631246203938852427721598447043195635662553702009034363464514012608600951177218136293699443845137044289412779643261722728370046307455406706352667250330741570759208461201647878280330916792082516958295164505431922999879555600959186721973200433791979027050352222501121897851396892791098767572262487096548970155624322503963292574137303002316206106447816752908457091496121262810252852744525625962566188811169586086326877813137461473631483468003604158830844144741180890091972161673894433224973520560458417239802051646293403973945961584124680194695971966458232189826463984314784677459813600959952863753792155131157494633247449189279820831414105103519648327512190311260261909851231370399216950287988618485137847359559689913545724747300103436591974568037017435774343981621942483150954358186159324592647658104932933699176542546447795565049856794875959326222137940683848539784796797980400743169546258251654153536579904012610352391580947958777340247696501196428464741365522211572705275410496593102055708114644312758016597652542613068730278164602936368131280529933886806719524781291867389068011774644859955511371689077910626231261929701029393369681091925888973943983569500494082596745816217880294780166413855329671903792092959085993192383129103703209163217947515988043765240521072602715226059337025193435374864319692823697908535707431240290320544397194585574480256051228684005225110628839553634455882567601023907483538583475964551802701354421937368626737458963712572406787378786284118981280595520906696453862167804077850313187861526583381309709853115071114440711071774115353844088482257904486030012131623626879157090339713599921733943598351066878768130804978846915807094520061883270350186034156969973066784515779077940947747771716710174364177202350988871228776851097007125359077697640169248796339306721302981679177524245172453154273571294552684474833821223298872130367338626934650285376097715678876539761871085028710741693280966068121507666144007898789194138747163899727906431969227703804618803471067410475561132812636116014074248832439909713924358716101550304192116140169513122062416340990272150609122981787076536086243264094943287185382727184315615171304435166706203947732274110721481669324435224703394345497586196166890320331505413908196560874687271526397683977423229934045250699341293841130384663042023966755277799015675587076758283948094016870267394083356561112783995178155085701998171508118621139891255425855883437041358516314190271064489527884276320824912657562050923314947537661921687037487044735678990555567463145240112960893837272314335673716082429763906812987744811438267019114192003539713938783231463310851221314139661184544321761248998264250565811182597233074127666208374410366801586438602983316224389614655335416312265006037678418724685877908162507318870326863900582855200860084017492413808908436332585436355832281587949885406957275637510783739971884785465367785274940917790012872235736527287677076733709141093945323041907736507983388073963184963554990476183785558001476587802169456507277767396155153744287191053171810140199285567881012282432327518252716509114643074167081776242633781618976183709621687415302456434931678224534269350380184735066551271121172844680342386254652108727717987350754719246005932207637346083281665370206991189882195792699385132436359392619027048033003108866360201229505937864380522419136736276232913213101022024619618004878860798751871439475802453435430805685949065227862258513435405365685558521926340941228560590742242426524352653125229467568235862558893154890933398430272457614531187850989621143450166800208963663775880352913764271964351721980052675446480894294233305373689269277471441445105530035753163782922620464282450563357548102592460648045940088474832274733812463691681788414797056712195392303398383895330592360856151926204384608596918062048517185211739919324808456003497620571232809213590075688767458033110282677775619249035500578303567441512495924650912782361483806955643564523485082769629872848013401892672818038378004179536694505809921657030756879637530628068292850140805947823201023084709596089317471246022133488373866382088740647204635607877956742151906725642979679949148286532016685301670971822854058332906908624900829967369003669200361166319119526230407796513529803223894754715417871578446607932927914474921239982885362979464184261306216679947399510450622612018256448761318742972978453436405416977227609452167112337426268073973843509199233597314468503469912549349990789141439306701084142827176634217937829199824523979902574850003506657238805911165131520410254662029745330207378179495893663834090428407153686074816760132708339582948376422711071843829980625822084564397801725922608702038726692228280297228850559150858715133020367548370726430801758134648278525619008672139754817739398455856352993507540134417984059496070683779680839214174968826300492998163054701247760771842193646580305435351809501482606513647666237242594779551332292590383610727805158911510412353334674437955327290412350897949395579997090257727631121072844359147833137199246206305302335623304496584890799115725992001318548888506780941784612392433606214203469478258889358594543406492342831747703856218594159491174887040815797460401638638172113174043641976567427686655689848526834276803268522496260676061171276941089619694586784823330891383787553169090348403283385968430200537363509034303085769170420931707494692428445350011637451468733474186936760403203924419403598318153311035421015754985442269648475654317628256426222283959557543772865328921486332204561580689154465034645526776344157226988281824082376855979230543111695552138088502441506583023019705369071373884701376818491725879919076648363963893399195021201699746507710094345901944739989800772857277534203615500839102260462503766237726966107354168380556090576847402901189844916633417876338239576296722318701175337223994097098712547384836248918199871708400183400361788528774375564075568802335903440869286851022256771791646374589731193291104334154715030366026226343032677445108164266534620129194143474732383954103629709805801793170944546884055863677337045997851177483208936400460186910855622595095066388084997881000085653895360227776722051604157835364201796263615227722059105950624102897623704935960195353554577823992563196918499198106822411409191513212280963794350615652667237284173733661082883380051943008593073398847130704897291560063758355475901443959877060908802115261700914117893291876022328870681060000798960261117740644882580146378084968487572112132549575797756257818631198806898899332611546008943069672504550969770192030037301354652271656367035785927747862371475933834793572904056011568135683629081096167403855435323053412493013877688001088822384713287216531318471487012335505218458802948838484558094710271040433199329827350726618243406437974643818609342245908039491433869926540491495254590573888881239116430040544885234888645460647714265690484294479764986870414011388043172929866020864368934672050943743460426414304750981014383687773671886866306677563000887990726721284509899687431999313858690379330977529166278854200110471945897802863407149694291017597321678341891809634026487731899647706903774267011148471344976768394607245403720907058974564658189916484217728382256538622002570282727793829374919192718023648208659820963921733792596465193435214602753454712033592529371916160259808113475083314677050528603496601048957759785781851926735101185061315104418906759127174551802771373412187603400095854528995480516720636862006617582436515818261266412635335600655069942536153994219921529438481758994358091194082300258084137936092321063443778152492285733993505689246759381210997682608616535695587302990156176746717305325953001440303751784615547855698510033315852725141701059978470049730577513486288178128429772071625009840804491699476727624423019202455701958181283518677521417805945670752199525549954805618350438560058553889643624519694503882928843686910570738218504299545355921325694752984967054303841258460360968458975270370067809157262056388539465479762868957695205041998392181791634564303866760245234992596650240755214183432478202420799149853143807766230966018711886275839565401513989777963695839368685400449570732075502823064946293784266373859091442716012137123238405958607279965035657305695322733769926388852921594732546901116776615874977776765245066089872164891558552166186699384051182399237721690404573157968378318852744692958359929149144670240699237536965156122733421962340354148309231985508399279577598137423759876844851294260873067672239157393353388467291646830196236810507707068359753425162125158202850014894677914298447211766808246515443094609359123025866984549613952021213360599527793607075232339447393139639136706878054498738879214267657180411367649794026863730151948960868538842113890003839285404035386487460494472994389060439045822064859682862787949160687653467564027511085845318947784051615073241764373949466780203822898823840343055952871863849088449236628461068101053305021269905112783447979044204293434089323255773652279130038846957699030561543065973888403830206453803356450774757550956421186413939419695977539974797569311862305177488513616875233396920415302611293391490946459737994983928116465169297663955838510685365586125471896149192061518361694042442441065575441889873689204043470982352415060252187633685828883986392944824025787442691287090553605436473885667922648751595263279938672765419342344871747127772143438216354687706991855570923215184832234309392698208839792174005255251485287147758886050434209763909692508359104324174309648115392315559075965219621718371093535353870673149122983687986688996875693675332725394884986966046528773448965269407298668952341106673504586819795858309823146660636756335080972954167178673153131466770715757012761460160695964242345213147708433174523677314047682304600773678638256346852382729822604043882366702091187845337326169611957757322583216389628244047771792217200538773035679790621101081483373100157253902621666745323037847786494930048484155268221066649976869071328552313532978985238771198463646461248390828518551474263152635277301017889796201008492427281969617437599103168041178899648129641706974880446658537743828990452200357335575873318354515481470462977162805353749750430017152260328642902972711951496801844441181356210776340244377686558489482954223741360426037660833282259922896485783336105547045847610780194975038933414636887388971773537291018225617737427233382921002068996515052377821171562768763760225322369110868087446037557167249216994139188456916550659371836374495794983111367040774892286145526447861628303656424063166692424254804816681867390613632428874741810551167663859984776490465034818576235966974872790720650184847489445525090313402583893850604850042238474035282053147990087308581898014731015569136399962453219760708775506425530211100731211009061289904817440712287833432414080143365020752946531067095537467924701591283684963659866379516920053835518436070538815128367412994374430112771040422749849373119782004098530659793927328270378906040532011660749437121311747964174449416251518466507091916286204196679463887036477687181944917966609888752507093336103888374886081759733210194697100593265034277922167421368696423317410835338177485833244856658743885716774243892434946734562604065959318346586178474274427339275963297291638707594923264155075161449683633543860023677829074198432830447778279395891403059839646781274029770006156189788090503945628510418266007078469999287287334261861340425887357116477723235566330172396721126384513969065912978781916444446920579357763649075637982671226375454344256471384068379199856288190302020282043775342252320084511038913873178807088830495474177620299917513125619569561818984105319039765996059946957866922704933864741546874787651667577602075679110118586695103958296333218450705902121889906326928529392759693028434019515898657589841169461495182804199960618173603104986740581249641759370298570874164624618044401288917198166859635766386104540497716335459535241566047375966376931285728416510488174446384520054971978671568670854200185826973705622367951383628468952676376718288359586117804656364260568225516472187441835585939026727251836269973925084035324694447053785736419463715088439814942270046746009571158109872978090916419800614636560317571402367713197882340207887291425902371231177768610925159376044397190610272989724702478122802515936841856538891185913718821584522229083465686374490067768272282453661421550693806850665165570999013772268970491418819720351628861492795049676928217452415993681469259758232977632089339309507947505302033885622989314028437411321191394342349596595794174728340650070614733877940878348248180429083705023084254083570264139625448900730964326528243941550422762285898953747976581369739525397802614254125526174549107438429674217796745157489677367286417092912118544337744875893344029552313207152296161405714032290635709390698937079048058372271243214312064980263426211808799329175895559332105124319219898615088722791433316781513441116980011843698074781770855927261462804612168903766648446427287635503907405513770150970119616230828958792109298940408910292271230204013142522730258442113382045452449368309769399204106771248386494353621374594871767800100382268033764717428108881366351682450747857802808233298040613430169363648888274897308843640215599481723867478327265615421322241031328084973091589526981061638970196790437477725570930089817637463357978742664848035547369019407899126387631442126019491106253992087954363207016992736341250025288809951311533577465517431563694823196615652455086994937933682967961364388798687389100178176310330860787761926327328027359093223481534461649350907979174859458867156797014489954715911678047088934327880924161357424546861201999186729898928265032723306327727278799257710821193782635437264777034471344334925351669386202859710363144809874292166264022461435189385932129606476668030678975500881864138619615565228893892176529289560005793415184087607839707233129171046519070150134230792458474554157854713083269744227113908023310079712627632636542682505406949647662583339552209641692494025440740435158867287458243058629928123134453307684845451439418306371608418786192036680476425112138836122885784120985101161215185729872751055050506207844927421630801571315648659096052425997762989238785909073236284524265538999080842003966647193835730098416088181345685430926926506335078192469390860966438312904849098043840169540609698271155857104530935524110568126159401959252131899166033868744049381670559806649385064888747687743936146703729324055790834219082904444948474597874670652449815292359127851450108884793260612533305856189718250456009534362790361723417592281268299849888497953083169766067513364660642966979813262370998436057088313426971318122202195739085117905670565727029113201326167918907465934746927348049235813294566443081144216866371780341372123077181562844684525535612759952310956679410660603946408626681360199312978872426996650838910634123132068857225466553953186652903557947541749877246063324745709184021723279554337384081393767481837428687326485512403282745594068508711317792420840543349101664008723465760406727100202549505590113868235261971461295995552775136098580372636377274822377596669378316614881505954982797484171447257630079610147884105808097153727503106350504949979499632445227801938976864225788444487967517745088802054445893873658733223670040455169895644992976003961097197685542737776385899426541691202795930505757089411746507310625859074895481246666294828412066450275027624954665703449387734294678360380672238318673632160732150743027463833666266012802944764485353320179346608095179697983353001219154840176298108807236452433446884551150269590995944361276139535377631196670137820217389531440723548277342443507062607092640869752000462439835402233318808420926825733613293686277003023546966906241307278886964897531498517061108574164018707086690736071976603768754313994560248609423270708890961365049146905677128928296365714588408258546090812796571019843208767081900207803094509713750109130660582012192842102515592089221386442334391219016636985352655551956921222150129604823148282256557605518028248497111873138438068129358913316124217355314858311030296600396734886422868750729297916316844659080984148911335653045780939222283894894221681045379805944079974812871895496704612228511247710451933067242372943684997509927685043106657000525321119333927643810763022299884698266205750711055534872197298388557439849756219981672921617141695975200122499415359170893802816384104579145605805590618096997562542467280207626563535733536003428464620314536937125536889105923948887417419510021787554344602400699164859446316649157244004536420792482318421033496656804598857290982770462132531842835699968022475213972704133246380707621461530895646096583807884423840786503885096869708370037107853891957995486670697350923526290570968429964080769473996754385694656862552380816373846378014432265601631416372841638363341311047568825932935420877173556308335922756142819407998045980048310405723781679366342435250262528244067755339163044308397321383560744393913393402240676301258498256388811701891671931379247650952272740783675130892445278634904041586175619810292545199416237584383218871846355624034067998018175747912382602686574515247440083288254996619946118740381850917998598443673657726819587425572936486941153539310343549624745335605779578081562719832828032505043035214536584821146308472760734996302686078553213357189263990119415275747289470876886953552306890084302250089116197141665135328258024540948744810544304930983502209219147315569540966938601701699170303751527744628911504049714437995485064430429230303621453149939693519413569497588333892278154837374827749038683192616096439222467165510210564387004791267245652350893610749803274663358449014657401339918431526121781845920965177805028789464180563900651509386836588537200957872810182517409957040802597435803378334303300511269279718468629733820763704180103102817763645229780963422267052598683914215495908700791404359623893010008177612021042354548139028355237121738287864287175610509192678988309644882923936177677035982173307518111349762300668655496917254788815396183478122619495110695690498169140005016977983229980579210420256983045739357494682409416676035961051000648396522613982642034577213944955466136818323986192099848096969295362726629702139385766094196986123098160674542036409541661335486980428904456386004661992962229183628121451900110427278895050017065807448413397770912743433414129586160605262589855111501599984927759843357346939104827753934515797909771335428007875238373448258091494946281263146100144861750024938989067277885659508984543270371211933623692070487040323444801965256625911717443629057410398065868055513027615829935412656415493519051491264565466371945561869536267218720213185345494751269324404528009676771691990400824224438424964312688466733108477366885539171938565463486993197281137693812084779116146779784049323456725569876862325086538875973169429863254589976363110924357088181527585903955370500736773840688564060828626388998332708194294649477617319957401432056961560772289996736458562645199670898289063765329068608918526398757534727291769969464443702378945864098551810681987727350623347813919057927146444368680933838071532739070019023639430242351829768321312984622209006712487872541731927186265957165922109396658825632585031931864130171756054131455854968451489018174239674741608123554854282627354586505059777712632002064744021974076178582734992837587252196432764951730754750116966615145142914485985631762946562013875388155885431342995301191425032992158284455608454882734626293346243429356618528461706370483836428775327316420141249806224052954492178362959955540646716812457424411647431460054033712590528720505323030954271832275972436937438477328335427259668554233454052698508546028255517328771259980304400384474656868042357219960552524843226610553131468569652108594717241441886176343486198708524970542740592818547417252059884809068947478460332336110836142055948206159914679951111211050510907539351069315353359110445883803504345258791842905482776286531482099173379195293517274198162175241599174211182087906089788200786261071538100675564460472621121317278553377738335750025644642897678861490627397323969482821860973562423704546627909074582113575756178646145784012129821702121692643356415593692519310934867528837554916277589556758457483106526442707492571907794927638674353343579577907508921259036069869925534787741126817061176735510846153081341943256080248761303308428612099876336819509405000496428910730575713671682768292451362272827099392265665031867253849821355152729935908545114847776791616685752169749225662291538073796899016324889288580040047424294569176486660923114204393116611395410983785791871676966295194866789862162544854768084696640195921393592078787375873016214520195239922054940482906501493175805324654442071967428702740051397086061773683020714428890622821278486330941693608425782476568238340580521644387951524725580891994176675707495919354629220944129999491685218870297428266626235774745628658513988882839997818975015733489548259435148820705763113554511196001885405411122072602370345778617217022377270092210081295159370542330893969008797980283553804805074843926424800237338701176479620216397848838947679383725670158352037045514311717506119595236886894177609401780102077923754680866472740560438377704219939319508620812119394487471431728439029921960181788095147390870548824895710191648025607959718896428674519915663168767465995234125936506668081758936458041265744280663082361500202874222001639377832161055724561765531300671410633463603781983532771686600349798840302749265155680978005662908856798847184024684372551667441812869597123501617969715001979474008322464068688147808571579052978049661815713952104948456413769735560671894557018965856630643485899864255625511915081961130625086554920332312708068878938983456801242062909643977442461172611397142497047572874968436858612776225483511815685823967868703673691570665108629864984544942585187638324637315293934367941767934478863331213922203910588632613538199824840662298461241258489458718737382256582966519872577751337560987526395246052964473232513027988306041347818144082378770102766672025903147500294558820028620315700281166406422264757432144326282216319377045592896110957563016374085396387424285009911584504600658610367762326314681702391581314238061362434336886687325217140777235916935382563749121900582302103501254745581037505389555207967093063982285803450735984760912195572268351048319623905229991941742911516778670680562599840255771161580128120552758877982335967654071350946092654839148329072624433282319560938743321154068208367077219594806887443975481765973808980789617839454093547788146001786400755608515041052555168011633093612392268779511492939082911489454090962712902132391608133330885674246658139543034218572496102076162490876788377556210662183197865415558450864065306442588803742861779576937516131818044918172400864659119732179887604390932130608556244208312615137709785390447654697692987342129667394301982574387632922737026607478379619656409868777180468220057266202193989129899198313236860632202886129159669526846939888240957770879498187671891478416992002383116808779340802779661471769024344020279773254285490299721761961077620080602887516200773748198504677547351471044555851446041301234957640810039445210061952390661453827976649505713467461083203997099712493631548648555726818262892705974191244253236597279550326270005657402127053998054756763746718314177292919488224393072812274736226571547214437496225275671125165011271025165229808864353872231807406062201395394076503479177111376378699406961985566949076245017070141770365344746114154173789518474395097049406775664760267066471863034598109994676517325683170964633824079278961020681197746713090871585790105344973423638287200086509857673614990681791623753189753903921810597476949751723319989841236405131374775802294360052556385209725455180056874242611748459765725704863156961514666556173257077757554154424756562613409966728846225249551237151284200204622702287507623069152243538157435599167223664408813173137213619416566651272998984877454750271784467548739578696677748516266590421094190498261199759396583365841531797919479994264765926681218748245790550217120871733257351782050697923906226600112004580592917426621082863816552530136247275935892327984455904546918994441664795417818002756954175366874375630512779988920320609566842188942302451018007906930454042406180753192079273910343729603778682709365121424340637478048894126704760218512205821000167803330873124187571645332815279523532013564453685580364139519002166063980156323171427455816219280845358378917108846902142476193666418499235456394916284981972887457138632337767508830413319681095025970603897916576909597359763517631655136942426538512774494191609168780759311920696862426667859985634391665975462698360635530282850340471556340962704055031368136205498579714331127535020834824220137367737690607777003248298107372446298714781567401248741610529681649321810279312155550786743555234193777559550177434620449522531989798397516658662127154380369958266516539517104417587250348143671166747813451995271885545064624191275377175117723410210499364652512305824593667306227325368726838605963418311690492621948054006558566126432038234517392731417919654657235482507815847057293080799550550723481821683992741893739459198017361919984767619420682156509134851034424863023815847154785302576681501620967178754211171285231176523240947965829499548844393184868580121325128737412524523208685180816619809468338205649596833080343239700886056727832858496018850991176871768475864190023034197600429726989075225160409761709399928658747062650244135178010864942017869144504010967510970755930279436570924333003264742815052996661742891302067740158541879107045749320698424436800489335281210997828901231960141007447221192472478919883454182224293617590802522690777911894311496336217125641047295569377682827395727432579335450884777020648801461372284394054732417359037453533829893317343680328560729411837639654630305928815918289914161645636142225885823596302553252279775940072156376712260655890980330827579288221847012036219381858191381636035483714754189190870555066255994326975140498824008057258056363110001036798315655051612277691508383433670981621127806948982881857901203719962957780627577941732502809295604389736560037693922047038910517630067560416875909046623044635713684988517764479514353789992497723479928993918622830912933210314592108570465914052776067704345427897177994713008807100463616151000876784470982936250753993727939506162900904189858673727021703887497863814285515979654737563080082892879960037768933840046373791710172402616219612125472758186232186454718745234689154094150165348104647274649274314116250663578669434629534526944915970860268008298831740766199135560985612822390798924366826815252836142963152692351367828512366876813898557961939761398439109761715415661346815988387340842737686204400352257465141097256940234164687821431494581219181843316122996523850198080620999903720995855480802122434193757858235405315594716164708076670429038216373935907940608264533271055645873536587179079879835674678134304009790666148730805962612690664809360662382179060366889959101446745762595260530317579595080159832742768092694510766432560239952540431416185436795563157565424301640751690115068331176888851897794149415910052331946720380003316575787833065338212692859848949104734633533771670584468170372434916125687193981755906053148586133675453495127135849827280876718881222659350516283399315818257199329473620876411615368637994641788825480003651083639268217026920474659873014087027439532169005225443439088625739878224605589882596401789425263906393648837075088154221829861231783639928187059033798581499991879729120747332762593153512550132447498422382723530915889686247497607783465129204571662151591023045035015290851896946749437696998221830182409856735293274682613155761786081814639083956140166104811247492996647135384956543161948839127743977634996927461493851022797901752155785694976279464927840055554332374753626164162686531449849532454832250397920708980381960124913974988301272401007715623076595132777542084978973437095065904553635307671064977486767375641932629921911552600593965930607917128373811167264271704980227159079644156158036084357837592395276388755273709908736736546072965622799813449160864735053655436352460983417427534693583516271274093719768420059813039278447413478598043540603376511071066892531109044040992210143005096743050612930314735945815161035653127527096539179175984697919980154026785678826617217169481156075225656830972033970027453514149069670464283813093563985275461092503695446547510628410535986672913029295171829239603938587336256092991281849900219297403690937874581038385136923351950426096400954899816958153602182397026965649316554402036365732023672979344647946188800594510822245500775237495492162908292616145051909417737830012822225556255485100581752716805023465778967763570856296114424908036147696961405413592173548486874852895441781184999287633077232724455158662845634634881846540253891087963071426107975934012284553969743669340209380525127518686220259309221652626077000000467055110059399415042121116702511970159612790038355672893466044900107275964979996806884120646380909024492781814411577354414927304352411303840779574403741084537023987312592044569059364666067055930586339641791633087873294552085499547102183361117561094164721225454293504876888943394738782517902004266897627279011067391674912774929654703165620994716753096007994256841977010236441973659199189915634732943047671556116414777643652668600483336672564058593773642270338948062815156008186748433693401731449484419632962405937502737005870598071822736001742214166258480192193231236792648526903785103792545513479619058788271541310085063264953508447886712538901289009278424469394320755896462603431549767370390277889676891879586858967722294803743407741427059108288307395142691307870555867716254244217416462939628329035373705587672949457730560407799206008445579181530798747785332548104019611553564751113791474576108826636551534992588222947675642507797244223836402237883549816381614248032388236294383498548363590026315078142631494860978994314432782216852266292701552390465856832134769975105351632438206854834434817497183164739910815638149509032167460320963309705027531270533729334619422692878642267907747983861106773117805945978023620869776470564583612189488797653594212165861790893701933268184039545321855088808904146737920775865250412293577316552442955672505339014410164504381329243562010509039953835824395236262107063591989065019502378543543543345154422537814834612183242481490894895376510926117737355369094207667543109949878315629915097961813098792193588993620274642965003854508329063511735190677818518678634073368121665720387753281289922126075322131323401981815068926491003650854607849497058034500502394459077832380826189258722552647864221990888224319962266756221089874602478468850601795850296244437108515447753510895787722676969560614228919006901360611510698673941674907565143788959854950484469260935921927389998702239786487525781924007376447087834437529655147995587351551887864507586599894000154695744254612019130378871620692523611928964883334877251408086947046905337637036601519457203839572409589815494790302187585362986258465020347277352233803410521364168766244569218607495944132584061912271263072909856435882815413698981446720891339718252784683185797079905594270712625368643767023022252256119237505254571208216801052727108587964510751948394117691454936389826517650867644511984384270741652390562415630182720598761248153480020662020441708068923450915715985310453230702934536422851144998142551459126590642565092761915480359183340020480393241921925424685528153367079543455922629693710544080424913325188952588153609141444212926238431831458207231655327041986308415966492759601687839690674641455446056273883564123120697723367172438767881211986146212915700943481316518741465838771318348271331284833480708026067247508883963034939527628836371155915780020974120623167498393490080968220587429038959972139060213488991964118934814140883182486466134417106380514044493687879756378202228827723875677633137353764463683180508774694879453944814756712572483382529357099494652826315174570721669980432566583668078139126389674274636615086865613188341860739483582957630673049413703080734904782077786245514750576372466735119617961033943520434000059012530330819579962953143235098385477951674561242182642963375350269462706410571595627906894747715995091523241028086822030923540773606702247907085716954088480581447925900144994979870956033889406795753472864622437811365819218716731535737026695768138203740042236567386698674615450066818941243554241356467036742208876357929975864593913819462646947723798461185028176237940156420945874981995669889494289439109874264984449242755806552065151834083392961624396521102394103932815180322891959397989312759659833085417022270899763148271777063002934898320752787831213439902716269916882883036387247745130440275778055381369081901707085785522415031478256278142481505664669101037836169879182443883406345057774118065111185296043136433473362672541773336066295027683255367218921230922830778179171413482213629350801342610943402578660294470135271211860173512559272430873176221338287228393054289117269213995391653872461191948194034653237385508114434703398786919598894091553929941872353465056973843868684894081680650773424582352869923196415707093684975827306628415053593079093190288136926295310054259227293303912612903482114714747012937784647207497493339717610768625518692968761353649388047609743999060666606634705296725571695704698734995351381322272231708794275844145920225213315340247750636476538754741816154296631773463468200152689839831148172831836543561193125375218780614251006747367676250281344051244562854277344972094719342549217863398837402064902641517684933691834968896395541101985946821646267933441853089966706599162422935682178455332839214951264762981189851014297499429794702500178524137781891924171391147165971430017650167258154876225221223388707718649648902999705089873061374673439618229090952413539276628320282676006964513118892281684383793583865341749195717148271209904623326565252826211075447977085005200903573745430084474090570619470652553041274483357971807746554887956773054610109279150908108684832017279541317592096292314131923671211697787942531990862247982621417248451413797117481168609153503556960094855972061904571986397370986723386267597064863287400102681999256182669558387495496895910998692097107996338167161631421195471848168302541470105849729022943696604870187561895966478528509823511138222544254341336196449394847366333214058516815514919646282567129797410747790468273790861906350803422860688764997987887572162205049894166743215260127563023595914516221452661332088301190231093974510819834740020837677238582649450438226622240934466354877025135234803885189177984191521211936064681063627464062417662181895466243731820980710701603910236516789540173789021006304504593277095208270871392609442421391640923575673528368874267168928695291152106391885795500623512559559126708724151097210566716106999666090371283360891807721658149295061951303606449292101904062465401424289523808140094405576856392571764145107861343667841561964308416927671110727452269475499303450920933117412521150468403090286123203170230788710582464886813180962764366813079815413753648736906144368538766558854902610203492146942821211062271590440579501492039315362775313464647309457923328072312488042634227308743273817502962193769183817982705789043417563127745144262793586996248376248571059154279307683783051748996326334723788615791301374568603553438410183063523086950825071301253134763318691991639416536184227634513803689267646916386386087482313489652047788839414150737143375075102990421383902670345485163902421393244965162762887555995122138199886511867837777659826783723229949960394648414569297231678119845145739018640802748644890067101858024678838022783227376097486152651951849479550014666470082256070344456437172866757805924100880288527173927753293952484837058956348497999581058200985858218980035949859274639394870120439644108978287624946069089014442170297815061416128072963155302646951691220983151266650570877307481160281935223043603021653590666466408249199248713297762022353460882638756826038012875776465834194673161495421402984462684521998338508691053948300163398124014607482409928399971462723653680589015172996880115381935913431901458048811368742728575092479199609854292568827878628055561685283267762313124422246045953186327799259244735510939531466501354934844467784226303366011415148609933971585425903714756888194919290310438431258231638254742501515002468110390888343887559293773744913613679336376459685312408733348913414659099270771051046323516946889956247723410735698964553689574428885532332706274366440178434344255118517505558752897904802158646403564282820537986021788598384916229076103801835640653761561985469436785664197644028116588196685979878891732181495676572190767681540064894641224361219452210909648079757950642647594964605289136527823003547025157354641694183913752898145721107818200194620242436670667608100941805360854182697151270412627903123309519271331215155598674592860308799451724549265621415796806992268120469450007941165583358552867937917876201733280169350392227672140341540801078661731727121481306629058212309855376479381860087723546917401614633181609800623042466896563397449623294275357587289430010415778851760127189432010448373560171704687325136419092465499157224069034673190581715624426522850620615091031330747587295090495643511668023362861589972134796616209673187051290121450903561803892808647915774139117821975618024150802651731578382249709383908610214072131355189693522915547079432458595277180999405020676068251294343789389195839949758878629722083009212999575963414478100677560872058064796297687500748684990697998977437104786396289641735787549972545639837057635644162437105874498532913859899302881348097881799674765070346769154310221265778887367011912145935896228766307457310320527512937979271862336879612832930484301495202603042280971855695857884678857767427184489724593584621301713876050454266001723077616090099361638703375059883016839452242544540861521509584740480259321386991022710590803347144595429085132273064711515745067263647413165294551116179477919723193712021281210458138705632115619268314093379652721668836174878305994619736356505252190955082726404475159229822771043468318384129758005123303421287210762950735322056460843327592061490081112840296249818068606630089468433956052013253537413355079016400657961950470776247331004989651948068951914504564104245181600802974131559424109064594542185447562416100523807712752458059769511480928360638335299838541237112823014427894664626947022613091144496945324896928514050144688451915714456545947200975040836969039907690909158234446115936750859573981513865062554307301946183259468040149622962311333026943048111697049402066681102737600707611992630362049770875447619600489025721783261770747798724987033834460603892467953652440487585490897052119290914647945876862182083842585277051578916187806700450919217706541000806656298590903303857588968302420111794535415239671259587651850409467307939435547151734408865202232698340385052821069958081938655862470157215070593174733438496848042180320347367541327948813327095572555931085013840195143911168965000276373856273284865788403837246445326082518589419740103271061263038494653823677195647235564082844865780595428760682492596924471497285071222447436946850110541895363569954507800387277809251690101470346666560650056595971036487867339248359431456518051473839594508202130696700356356677465113374290337635255307851889726056683398484416639335888672917152151067672679694527477041133549386757570167585596862905816320275184857271076356757867663539613928121241981458134090010902784775561890551162205589100356274867294065728648721640050136157780736459142836187562790910151966704823831667208606313055312725272390303268634140753780884896088301352504822820410413384998612691242203638032672525478805568388117529972884873259639237054577267895487239537098698286511111109040922660888332902166472081814922917039963670788829890970653066009819067550959886032512947750243416254470317388792468344759062093619301447781733030858290984463661840438256638492341111895546910388568599484837132382805759706095124528258130214175379103913760340068871799047798493797160357219827926329028403559429676370694073543052397039582602550581615999011614231975848116933514822279444860619666975417412465057665454350565448921789856384991070531513029224185745103470889644017993672063336410210050852197222634244804869658931454601919394786671491252291162888285661107636401563640946648863340986760698496706723527509085521857560144688408113235712849892924780302335391644922113395300993053313596277459060299665704979252305396912484379460068149047916613581273834945909768282601293690634189246601431402560272425186747599357103835814438825365611665969703242563541391275010475264041865352444759138272937304548587857107205781883970122332515972181260088706477292622367677105306450823688303466779284627327527806597384637638542627434455488491856158892722141222080483928300418531598731851568347782547110654818675529721579540259871449718035984736995645055041198832283599176295692111994568563991296925563456895203396661306961635429390593889718688070525088131594045860499908651195353524591206375507147470441993927442447063929322346712415414269775883716753301156466904937834155021787360290397586942574880545229909548333226495929263111028378309272827244230381029485294387250592104170995359465630955217092812491718231640825636767537424007097166053633057833706469196169134713853621379059845879629809802605683394951802526833069818946828564395999166555795757251008728638693825212732796791323793942980256125647929494483020395091090670923568843951052357227274664925700042527034255389288730951782830049145272202636263565174561124232834908689654995208737882891698359562084536700979022649079160498449034373510590624746265003147707397571598737527174909577342867573533540186670412758154246301686938967339535874496653662037018759825631576729807408912008709981960239387926828420437583019307692292734704970397816996283777647480019909228584278230389118161108337544944992483785491412212853364238271788209840596710964291904803257055050024876621341930869584018661695414459888698837330730946045333500407758707323528759908101807661020873934557792278814954765577511771086356299591724694378907505994885512564106710898988192767141610165868077839581515458262115738644643421024813169687370147263594255079066816802963786599304957185956890366885480623006484610459690690179275894631111789205523844403427898451183433114343221369410644653276327434731280656521499142337850907806034151166543646505469959587663037891243229470824527280223052174399597570180170205859005223574519389639718713930208692936332026593461880562798242898865592431951741739951801519879149098311993925245326307087208283614534170161626114228925772599579879571866282173782920432493896890915660113284518375482059374772079047479043504631089458021073010074338760274911820981186759337338360404589487009504918116677415478935146078263927541258580502816757108697182657046778658713182994340094290036459090944690630033012230118370137696464755802017628615687386356743890508987972520146566226016526732006696133665707944962272880840547587292755356613382371640354669204822927343330943360503205813050323839966472544661851544620039055412874877922923989451360843132847310205913005056047051394703783367531392104060571587377058963078702749661751350037399117257531916578879031849051655452523148688422769616891957686741117723544471035442828435550859423454738952508624092323408081869705531585361319726760398384623124669145732952184806847746962553984081049838587663724026743776661311245914254262339195249128158774385305080295229455790055025079742229281720874580121313939994047846911909794967344537859624140881175840891355151752749151621272450999517491847933192840669253973012576167291724775823352841722597960510033191867684536807305540766163357393258282292294940605665991140231332961136464114913404183161001405619966897011827611943997138138478830252388788768697569655403139519139937348633560547962436644244748708710639585731168006444206934172831306598793149563575540917348901305482927209695225125798914847698785664461446030456108363890488392130148057519161548122189522802621588481117490939853761985532945371907319401894863840677458691690747108717856736527699645633259904202148768312877272731042525473705015904372726205995756217354877267234526058294658501155084560549587059266157612235560971732103605137653954576651718136931211770177464693814787664890938222827560270234122717942261848415527771814979495023117835623097900437408972393356751614477653942304982055922520758460336748557959994246447767761730761910990597731367055280885268888491292189716557912207224961213987151670848992435361866871200314915951161929935875292816482142372996056432923124702802306956904998587588719240233477873572068623700391425672504369124223992848765595035767113939490539433700572462314834520275596647918029579778632821100184616734201993062870685532685953300842600769136516634901410250159577660884136462728036043126721096312264603219645660707243443499485573036939017110569922956163413292652555970907564301594873385075332471082738471722640757488772020779739061746317493900136779689320342615971133397979679746583904076998134559558676165306717104676640364546744759665128539246369483372839729190887716685195034637067822308986386747903166341486738589503746349472314615959314351991528240064704462612309089868674657130191690578073332709154591102896303428938421503697851338204075825206076905239932144124795276883238095222335689140538139308125596542091742427558375320385942414677328957622738093297888885702429437302009743258350920881137101776725903003062230414385573887948140366621793585686637808129720317748668923709840811933709258217368339913700750687367559579048328901164872770500373386486001488859856934837684292483475027401848653124154673858891829191725900101510047650335770919595677160664428396159630457853925847361810077172381220473464492629990279127207728086029042059040936399693448278545706230988888066727228629632857028594559171546641773290359774967383308946156200586631199709312487100871872096217946273567668869929452882205042874053558969932854916737834690431528635717258673027792695659098262077934053498974934959178987548377897659601661329926291220496597053206052139651108891847622208871182459485890559131103273261416671977425962059573618690349635063020184092046988448089998602576089917988894400459065614247635533506160177825678131573819125541669526886669023041403932593467873461269184905602801699447293361615533403098909468656760714791111280690804385019534216046842166799317855056545774462499226801898198456926243861518580613077090928180417487309172263446688366342303977605627617120598973091863917662467635094976556932420599837780081155972776454548289819107087749467671281836831913864869471383717431154401557453570595898666653932301666362600438811314390211591909119939235861577744519207261547035810419224545220636873704011441356745937233402322021799106385277755991713337819487114170819487080632434357054422214267181332477787256941171422559406268906250256399611522988434296414963515712698763408342668734146390436306903607908330814564456933678535111055521292387894487944875700956024833482169803988611360759278769027511843586542692032887987891906764214122018266650894033201152566802949116018096983165029901486878109620730409483222842665807914801388915944589489738127721191871193598039783365362556262123369190173604419996706310079142503583934581846356618637277187334793058414655059616935497719297624090317581684666859495528931125913548649282724736928919701656783737643297493047747141633736851428967991102502834824267893102871446766883884321515000298822646678826861896695061729948635315047283062839382756204236826793716710507688340061082587562292675368059048931298011871670995429430811820582328893994316032226255190607821837891352012685272742729644454141207300029334614882659662271400897309827799692894027909068425980140019490699273304923435017843331241688173424142247716471686437842784506188901545326156199221864924637554172127290155791207736363137274632819114198715474930977430267585192407548285742125595559555419222855807236511516612609461905358655661288322289378287045760161258247473645648015628553809462204187867735536463235982363040351932979729539652571124639510516649831975928912462320460806106983431723403094439411812737796289043449654293067674897952461406631346465262789146329646082361098934307061542071690594890274206928953867671433151308883651753928455693854540924781963606244013110599493360522187032522481981470904432098918537875025835062928666694104885404117373754923219713358371046411110172498880410830577851727235081713214085833445259764073566964521855939280287224497106358994036186146139205809920189060043188359007195476904314781059643718306519087247397335589737296031964477410752874527405192665975389849518274398435443889041220348820634359354062069341267495088756121341885838370107864417702322868499470229177305477811569078941936773924413684979377850513729931486016625174388955669824443845659342896320970826973692689667601305124560878546243423841253976091723149315402958045940994856573672772033881597292369986438888304574916700095387585416078446932012085738865825164970336788799478183633167428739064696216738124084259375827693222404937200710881745000986800076096959728680627515049552457717304879014920444224119688707421143929750011963578061952433545715471443326866964808078971323834067103517493047788693346441377274352090051195823122482776877498351069603291090276119300317267896206624531999351571809778740594697399352233842001370622397628338592777870404274935816447485953828890972200908959896713685994528828581290026936577239188508411593788988179468583649514811459323657465254886805466978817094842036408068980702575859479695312822960839051788269432083576330110467430208413321009800813961761775419967086101795849242454695969361870077770611657474468386357535071148326458752238315696013283857057384558367786209823937781955836806337505981811270702010828935432365401926313913778461613172731195826288034656530317341004005033024217333294989534050878178657982070789896603132459775507173021799899776685003055827908456663890478525151491264070686436178114038951771177952912036631058720865871578182241775392718268308720997564648948830172376942208169611141620490225405684387697696334076455423362390640764569731148176507790606055007172108262887966883372691934308849083037354230889578312610980390264751509624787794075325155858364636495008825591847211676523423270037535413138191380734306197182097475181432003767305321187532948695301208112957017420955730662907945539988173514042084063196632416235527460335363736032085652736441960617752705459706799241975364036438794819144458727733220033724988885430785229416024552203486755686797388680729817233020441823102284824780831905315458038631121694355578819780568003393042744287937365436027674737718918700658217672570142504297533454725573349129256764384975418578840312521727800041571145746752834036368510707053421050455481674348492258503798800499020584953976373656103884761493465353437336589930401111411384443374499198089515577843953575019784022838870834965007625666334845535749277347734316351600785762153593341602260062117773678190879768492629056234326614336417739370263178159783384868153618433290019082730482591429081606726005359224947242200308748685757503807350446219568150003283188093133151200116502959829909621783488348509024968411966237209283125472707342254377173361753884159327096138389344730044199831614097213083927795450346052979071763356895144787266285438420062777450136367592639579988902997482985906468751330749795344818628879371276362532474363722332783457232019794295818948208343116915761282742297361992204206383400880584207306349776187954157499137887549788745066591982521129375075239690042282600746319469442065963444253907914704344671833703767840943316833353859446628206986915407342203764830187240892543149239483020241767604122689314773197386642138446479577435699776262190822283124907197267927845416188555245768345486563810397247934152346353145733713784247407461613371977590008036817565636086658367461557464225608465436139163300314636537024134716434174264071182673926775460949399204661998558907600112533819724225201235915199194038926430330039093444043067040440807153996757152792746775749782493137335949772718883472421978887811227838008376792711601209072714838884613756993538269228569993627461586987713041112926217352356054636650869230713088065274413489934271418554570165174887723234581201531153171535315063826740898454753977295891999856226113811377750521688049262798496553487567358933400550531966092887295836738225894414554885420587061948419119622911331943927801877860371743130505139515577489305753440376816079282718971219138253619265636627492231359021366691650223977139210471211905839022959323651661727840438429092982765725220247287134664746388419773844323155722210814323858411425552653077202530280315152198648427914085413229871060011849238302759169586124055745455537741515849312692926694312816187028958820993971947408875990343598825216980990489623693556503492372347567918299597733813079039475101405382103470595192646624610435596693565168434741698297021390950979550430060618701405364424865777090295970011116810553332682485879576081982337104556732166842963818615530912754008275272056039825986115595067196130898703806267392005329345496786554914054580308628129828849431383200902376658600604125048535619881063921915624348706243229130742328518201768710195807313554372493616848447008524449291167596981945580748505965641160984005086941785353678426770525659845849908054710801140120779921763484040953310782304013913492349360134739387984309576452717235311100420977830762486711865974356124949483241788130433171958766777541135576758495021941015282371061981040520317537864395623541218367252520041982545095373287964081193096193479578991287474134162307270342200640859118513671713006409500555144245282782769290586446159278596801634046415577433751980458792025649533421602220849305402359817504693705606387521193741106266962647677526107807744291036675040683764369285848966290147447403785319170634885338188049018490334503958673595725274772677049948128640786918917640152525046356177159060434039322566070322154503617375074130013462330062374977386606478367122847633758559493117653526998254102278623634274794667187588350383622847529984775242568114555128537034983573100030335934222997668442400296402499145255055339040461827534860092637634790178601723035867038911327316112948936690203594478631996758774145864151195497987726060478377625502127930390348565153431810283529984750086647945750451376997227319503608848375114312238404670186661782878136596222853043431001222432508685777715440853334850776140192310020084327502937729252100352724561525892631421935757819077689281663436220063470803764938630769735061635278030009061283287343386624907253668294528187033186901859020694138236790167132383690353305145427688538554212088214468099934731597872783615602559003801280931642282116099372979395718953818183713263356431124145220474825346949816559317721118157692104627785584482439980094946099446406769839796235772752054826169159562654206814497898829583554311387942591395590175101947402846228966890647714581894918331851669189805942278658257013186012697579854002498594673386480685056958199648097869911236718267645889552362018983781227608915950693372164399755005422298631523122060190512084379115262988158259294920434478355359816996442050367206073078386007752213500757317841511631205196217413670583895969367647448107125094466762157086602049363042492371339018490105240114700961604334795982685614940167088424174005917644218379762384662277173293189176325127551554321146405926884404358771395462229267053104459132733763196413315303395886766721956795649123993977789168112050550498099171116074025693849808194758578464780391760047873780337541665408389551823034614591869577312543124862228178991300795151891259688275052889363498150135803039686055770841604345783358080701806702503148901387857300838195455739037825096977095221313011678416990681073640890983906347400811627550256613716824975322905995560755055622188102057941706682358136969443303544773261872043831516238609537972961290407647130917368737007079024485810209483514488777989719388914398078845035588177325540893644751383984644744352981285697576045275295625667050100786431364230952242738420763859853314117844596831060274870822849869949714556474321075847974448956274625223939389361802525930984014706445387964404010308655172258091567137467721272649431451521368553646787108996860831859735252521025208812649230752452830085445300718373377235596623020315143228431272834946760770102385502416085922732400601950623487688888692447026904799665292746597695954973605422151773314220635218721315629127782072937289157602618571954758932135855564790454636412177686471077189020244093949924535225565222741944181629141486006243577152198188854527257363650733921820578082332669475937573630084550908981910131569959556656466558215300412021443003982617276896625577332556680072390600129533429998926362863467252860381080498471009017113672588632109050676608137088105360218460699115228179165012535292822686304324854843340903120421764475882670068705132537256598033587056820206630356937084624302897730807277638280510959473608286331364359994776329987927954990629084809974301662499433028413100932202401448247895930601173396382625667386059189150874389463033731373588823048769119111637807776280347382251547112518868234031013606927307844808906397392268620260374919859429174503661155024850900999610329671588712067814629403775587582905859596283657581116376637444989340783512093333894457095197349362156687624657363421856227953045609090338900188463032382422457806233202754872700824199911918695849298556830637769966020356036331422283199815638728375440103958954274186056033536178562219754009297104887929843179996412963758261053972789191346671435908433081573247127483064635099806674537983408375473635872830562906147310339583139134419989568533669192050133277085539863784196834903336726401442504838096178998772227833174796425341919761324775610739560703833103056043868747535133215406311241193446501932245258630314666250373226299653128922358193573796392369931508889878755417212201466765050921221339607259806799936950962884018893573233083756965936379562953642477343356214959792833812047721449954891637070308778998805796991393989337888183177304487182345784767332117441667242341879875868661617943618419120085232491216081078797280831999659961374134460062100422342874161519754413274108211934433454441776795714829222502808594280554243827864210052331225509423157326416663696287081477986174932997190781430656123357073121650524370335977460293530315833601271350154064182937207573012848703392701721297337049772450012833652923854396939275115038847237518425276278771257828282019765075499927236843544524360128666702047210212207762632874596347241607365795653160790178246999739519561844808261856309081843094836048435848526934721295588893895747194868357658155025742791325444296344184643469385327972656072872415637951634692194172040093127817917711816031921490052582576572919246675270944060549414102990308614210754492978116223592032181563728017410064976044105588450326079979160548483350432801233983334316209854285060104972625402123062974175446097077567461611721713285911014118051022392951200078550240667109336818047972404621999363685351224719311465340451100377709697161409268611095811243902545025071882874589489915566152069874918833617291846300535449529247686844514431859642874487028689310550838194858719737803737856823179524281277547419827554383108994326674239708333612770797810234358123383649605244038714253579400114133937851650757001266499271268244555080843181548335024496639436367016541202723475567717786652655841459891822291137778017936456678601685300777146084244166740057730827969718293196600307381354632659354862054222100146316669423155381431490938821859003987566995148562856071777333259555065362670867876745990458935188819643133082393189039589583650681078261965175744850012230061987246845907044716884867675683483573083502322935277127010318807826572228032651508067253728676528435884442138103089010463330444013999954800399652087315169005320838442319064247791747912603697725777713424800912254326110016229519125809281644981189485035137592170139955702616456247197998309135548611057437816551930210549185394556457767831518230228506624479611902531403957931663300100561893267897860376399680974691184829470197543059806159928832958595962631921285736949258215843860473187274610044943822236933625163437705450796279438080163854240341051829529715334704128286414550124081832799862507627164499579818383363144334298486655393536493970063979245935485516998280690572418053929308673433531285774983105647735729603629182819980225555870189540608802466998593628461164513685966539534298809397784507718493865447621303331605205236507701165778372333747867499016817991826187601219987050514350277877987440796470388832254698347218825293671557241512922978849651161742177822636939344137991552794215041435144426180859034082568114625714952598384700913407283135345951035782220723287683050789862429143624489337418377509542664786347620476516350134705805993155304333657411886048376423405758707297970105320510793202232831823091249240608452411969541286669818697784477899364626213311363267747163229934349190494571256384447635076530224607611126973871270347107060488166937274800893240261348922551677631504299451864135249136501954864893378898432368566172796722724376139429015911811272358920345538138607349156200096701786604864868220871470222023812524298448119986704331095110988889191694945955249543445252929927007496960016126966778998663638806486543144201726537827735983940594471535932421106072386007615915620352847232844069057220748686360286790096085005237365416517286757345509062447647807630742434241439589126760240074734147772812397843022319455664849688452168926075351398541291805451496235794518568262222846127952582867738502811812359797828991797694364887987655837857423618794170562645942243133018390144367421925607449311166954158119041444821857688752548100869846994834296467690508384158525622081739174686424735157878887677093966826671268385796015025278267483643468766157611728657216451149935881834830446902540783710911711502662634036589065855036598726910555254491831590261480880734976688114589061772612009330390898630316950946303207699792988757095694628901877237886849298866147210252398307100249051295208144346458671197241609829461215482468400929943543029936330474794359364032940419889092859872324563635830210763712652791005938268238009895553683210127226545120245951672202211369641595704645778505883229304897432676968027108773712597622645482800806589613280575650443529791818894583240769089004701045631467283164916421552885216617883971802241340690025047603498821458490480024055067206673392494719569428956004416390836351701944253524347958200124877819375656512945367899713386440054305103975603421211685899117699955988384255621505032334301081701193913529652162236578901923616429862469853547175364764226832745000338125204629006908665312184725241430703048331847171052020136365799600077222840890762440499160617515471917695378824738775692914668389583750227345602062668961939156868980152290622101234168199168062253985594716693138094437856626348644627746893398839835445621162620345412706863844028155790878570462123133980124175375352986942154486085735865595249034130110594037821562363406298839609232027672084504364123770265278367157309263052810006736646658314402335041757533783997076039251106988334564889386606888635118425285202741995557397169349046034467840886464880268851026065358202014518555942533311997366506758573924952165553858185346909158563810484031754578887400134173637337018243306597745420631064543402524149276961222648119406112168213676764011221907787822997561231385725195896611775957538580309093053592462397348370875379814849425202148401173218210774690857888314228348652987455369589069595291217839811042095324832013389686705393521100155703130541926142555579852998846618918139312151302587040512614758606118744615060979198135669185720816741827268131966280124446174567191943057523929687234331514167848765465712343928748504782197910934625067185090997146789433431441663546592937163008384252047196842676445497241036841499654432046954463720774481553533745441778933209471922705292264178696085451178873813552815065671787178533169122406838894224349700892918827247636614802571159826119924842958320955659051231624341438475232767255027539095965421601932018475161145313205796999856987891486694503984408333373056407738115551765695232162352556012101211844589957461449176372228906629269482486026943345325697740441463738709422106288468554576747497840195430766569465276328214567040952427834113103410909426530343907314202472227715163097160637748634146037631619312622658778591694234063399999896342924474989944905738133750133821852834023416179211551845304372566452360157386913150877755976073464262230930879421228208173143634606066880544206578215365116759235693380878171607962384442909065418257520980163136212254859421153931126355439905778068974043760862910987861905196919602243573052328815299127374657778643301619032795634497120702162118913862058087021682782347477338700343814238545142671741906336279443024746902578646907902334819021262439402040181690848294041530515394507504682520826607823581855635731103366008587706300612523664838538045131716163535819645386505841853582967081980486357628333901827361314303108196906046217183182523106926253811085510412933855543246952922644607213868714398961915431767235932078824815221390240300342654878369663245198413511731603896906968489644302196186050580791116954883613139794921956808853089871071212783883844432793351099041944683328927980343423746993197804715389275542199099631074048450687790468236373808592189582848655925597287995690582607966086319877218166105095140858307256868406820807524532497688775337149630137068499691209798271144476872276261167813315735413022936660968364260031213087657672581340898258572039921818682658863862340688568062385876364286553602501323620502258548454995792585461941225051280264616496855698605042164815372402395673182711078729885554035471089483007511899358126303689156282034817500394814247322469431284881958573119386111141050682999216785508778552531732454736542535600770801902192714206298348336193991914996759117789106202141596196749677108027121731920885422266657128402070047357807415607597423519512599232656273794467959532370357412595776000801442572053818971595587543598147296765100919749384271787446456216480676949965617685077119218336847997131440448565711301142153989539521030164883187543921390600988082493940846767207552248353782718594530113997993802597470742158561391771185771880338512735873856969439855620501014169230374056799498466292125352644481383900498827151221069476586267206191805253633454047184958927169184338952562876337216960515092656567402894136796653803400127728937194900880824658517321082522227564594227381837753820842218042769520102244032934819843826303281961171923638087028045322842352002063492951570748114272157878631634084516001619115681928800673288263277538236172545739905591114971301688396370851890147266211197585004703847310210409177632094042669860235151697004956864386159675491021048797316946646735033976504623520125740223234495763848736249842864852595105503749895900396121041177180931465372455445240343623341859808265619402767407323021341539232152524176779634510889047700396177338791982126086688940766030567837061375639875074663476201469150383351864514824889614898139277964494582479354519947576281952277982851948899076601586112497130180437563974529577559066166139190087621830965023035253161916792076119444932707520453152043383263735556168336189646860547340989021620450700363660829855011593073387815028907743539098924320095818743838356345917287814539561208971938565114916253505754460478480665961771831657107209016943695419908691890867366405078965044823184722716398308469088506615648262118541407679129723983990549274915523778507455113360846968895947273384912020370169031272354215905708353699139507784573289307209348130600605243318273528628330392374652917261801783422424670152114546179402076087909558460881808489374911799165002940893470597913251096165687517659346540497565209323685314930548975473297251734137244992339371959351652850527617674870583963873925174849165817329862882027507351500392387288697298562264189612149873917928500338514097821922009250624969843585257474781897059960896110097813504307681361525448800882888502886291481081007432572233201526632563164186706499768480917123951350117734304863017911051772444977159100503360149680639348938502118397179934818979402768874244883395145393291082827667259727406416302265099970991220819820657571065815707253869427007861227819581061093019238376296269736306276162717491940625088396372354078046499293943785003647731457239241949263512384893964750532064105085752296819663117854612629744595850519286122735456582772414830891865708526593455783545029898444135626474873786890443871134615623693725320070998793600271147465134070838841766032827162436775897421256230017299798654287320532244378020675513630786914979919456697442131347891123197528039324390727510004872564285965241016388011557291896822117753864068948558370962422206692399092863905408134130719318226618274600991311956943218366001312807675814635015847829628754141476866543173037024380015476896066514596221135885574405459776914582022009311010497583241498097564761673723840414970608351979447394696585366930431199983176799924781097039320080577685461168805829377580887520452768418047419075108353525311678979443575081956603983166280052305137378242420772274184712887179450309795412941928021261862602028308773897827593750883817677235988946938982726189930191077733615064082609061232714120279734430855603237904704638269502310827098928066221834241785007297131522829287239812355427432004732181788256010789709334750971162769767408896373982639054840240936617350838820404175642540026809885248335707930472301592145002135495682905937388208130077389071954025967642256250220979564183931734587528057044058043629863411256430704482957523475153713594049782747949010957219476741859734992365217081903998897958092034677211155815824761423467517563524425243267057302784702600101760885181117465956925355371559205501803386188507994274144764781889151709694155894759239055265364808029326663513683417545218788845284899892828541656552131714288634645121947009261670716736496714007002184055168440250382989694177953333088128718464750058748577793241388260196287126203371019257712134104175986601333030987979933027078658726282051007315316440411320885221470251005081671214341829113491884691849998636060936019433549802773633961627615792079687824893621202534476538840117151030752329782070160150415294813510429849477872159084944627402277404536374319468402736045804985146998839879990528558231643462108318616798932293715226242243254070605788543801751269150222481851240082927881808618595586868901076858883885159311191252700100730497531919266107989584519638685016189997124544786574740356524365178150008362876825707519429610482316291668417370471044538239593096724571187172817558540749671729971993194465456493635409928533336853927242807336126947428966845360988752891602183820190218793652995988618907395270295009189765016288574750965053196625774581098397738551295240708467474690364078441443493926433544904365584600975625716562270965102832475721477444738122821502281889417698093692244224703241506106346417153392032375631466974498440618020293528974133126802066349309875448107375778714231579790768715543045817800004959199780908790890960483628066700776266467687605731783823242122271456944601987092668213704647411360774449437751228608171694352199303608306976125717217801446899709427400282572845761263183905635889972937806534754145651724975210260765495260593306461012237102642950289721632917228269628028373377919178812580149837735774185228584418616115520335128849006756180143135075995465422287880209935174140395933004913225071400314270364957593885190878142884096580488412192154209241577669309698397608739390470190660972483515221821104274969342569489048130850029294865082928202580215364367355173188082939545825861738369115612395448581872338498403226986587487315586628393827971953106534467775408836929955236947475728406992075525481665463296713276627036441518658023677398892791137210493662717417245759857463848959948505901502828755031146163546574894611983298601932221014102711558388063771613011902376581666210790491740522208051721411506522630627550171375570254458288017131471138149441422956481510973292922713237514656732188596644316707631056937114345945427833937216521667714329145694687236793549486109666169642774843391499168156299871505977063153985208491189554439945707866229698631873736281293067024064551798070967206004387691577580276327295866304869631609308776942434029073007767715919985416369735011700268704364429225227229544987605131757768306904149518589348267990321255754688824695461829985411547571984564705284857488405684114998323482831229501520142231742035000843173168941195382380611722025122665913224252725136962979801192931882030061694679139188064200338425940919228791210671152493552895733724756990098360917635954571927421913809547777049952242390002783079100895017760008533055654640594451290331911054983326882973522292954343391439440205317139474184607871154575003406754438193741126187491825740106465399239726763718014209496694322173900200303310891980114533444827368676352646993280433302935815173612915936141122031778170294939140563993033761426896654134960816154941454816411233785946851450445776720265421766845779662933813001568686521718534962008378539838263259490792899716638011065794113565906871383885950780907315056843729260135573747560415675166229825582408869630976706313062264296273787732377983418113344894916658595987466660237180078183511563807383201408011252435422041838832139195604464693561340171681898677933039744339259681435237661720480383842085504852885443943796332076515353896148155115049666783314568431250699413821253182321104860317810088183951073606927997919679114992235475664235150608430551159263520506967616225646287974770426139603860831632052449601755130681658662639910939929971588851369422126238396017677738541465411573394757982180247382631771437385636550530531724752477039756727555735297082520195281869810015679834898077400673848700063587242933615402535252639589309684488463017684191827969876501072990086327879807732408031439424524879249678377212572520253450723291730246849447127514144892449557741684227477301412019796300817152500455050946815085481032966519281074613347391587562588857176114242200112927829578304660368686674003815842675845112261686239943566090142402736941450612507446737647466410592962558384804850678117920305262967158087235044145477301717167515643467981261885514231082932606648976380883979068787309114639889918405578417086624219873484200315988236715109747518640141461557374680356300582554509627474908258859881581066711041582945555623718194083647275371584475038199287758961205801092699742643937544406458210254011738880948422290529314996015176296962685159312353738570569750641540063704065925376154382376947359318353345443553267458500595641657649115851690993589855430936959034615072905472413726066911586394501313471383816805263611773912909524503498103722195779233984725434950598651973433847596880419332195058298932636940605354250295219404481703308678350925116844024785674801627985122656939650401340332767977989549644736004862964752708625300986230803744346416266433615440312757087487982853780160666576773161077571898704516813190855914089676269137672390279657284105905463035203012060044872524159834367489769293421285972417816881557488437715900932514817819622692785590711486115540701315687169977881138230583277648347323220488498549708364499773886852222708296931076541124940718019681704157017799236184909783688438777170962332707737561880640859198563617492481178184922705875033615369255347888300208810860123118409426686377575472989181493052068251696118440086316293020595331174686641455476272821348370896098591072874456730540237540149092452459816355658386847718472644100307161739467803564625637232611929865896059028929802997139602187476119078763367041673877269591797062632007242859343064453038822531530995964020806890063961503574992324398548249212090297179338091990589110279675105917427516180267442344567812361553733682290850672793643092702915810245799308444009093637820594130540241984548285805769738610250927641393994272944827956487302237447224903847095303830353569426279694907001271829899451915427293347656904742373865003847352478344760038711481143305266384237266416525688930055858432728344629187112586475223345056187050186308535590662805263504257515198049353913643564982287657915071685231019468257168352897018624335962811858315150816807211728493565027275985643321393335175149826645618664216354147844083584079835853713223306421061925421820420077960829159142248334869838885782826084694635270192869573546793639509120874802026855607455168922432011038941153438079547662097926979606169150979994422453501331118821270743729844053908177291442534957014066000496799577715058965948434426915452328276520680226193446779905988548552845735637074845980766600296367235414461976930867155493338250639587438390942923797553997938424260572511433268283529498782415438467812803425061162175778000425418470638554293947063511463570844274809454348487292792634566552364453811760730977516818388899206100200172420414278851796072204829636631863879162897221877244822559266072506476763461586608328406065423366808851626723235776400233801228621035912122869714286715121746268661134826349002759386481937467836155045401075609956177639683324967336675707188843664983122421573417072401796080924839383159744587140288978111238639861444028033242851565956113264095177436140212289495295170455509864083314486088424798388252019886769191092233157700068995647798532329769830321094534228052068246315099918343694437315207309156963703720447541518604361561294817866499634743273491369697460725548656293195119815003083744611382014286009095194280333111671382460119725486647285647629995794478944353482032445505949059302398853569635732325111964819647122153462383751814449574510546612582904549121922957760189802815526089269879730687478467822339004933823531501362236636921217400184346474195629138318044071061054925191026350495832711637616498877417583075314774564636859870382953690296613526153167922385544392977612705033155529397169891524247497808242430130371313572334997803541947923360138448682668758302856436931397147295466356008146318241719397162467198320217557139318416326369397043208880396596641218331429590797583136896196562207979040834727215255347130840528975394652194851369112076457034827912795078913445095539585448255368093146237008208014027938326386604806171264915202654998542113023845563539639954060094048471539783244537456912366755097458949592388345098514377762699194988106106136434653487964369646641160969847552018094194565172839592414102487909779987991012789170901169702288916221026137619762635573458577515424954495479557682941997459192769364183305655093012797653707425349558406451576170609056055210940852468205062773267991049649005318345049631805363340677236701599388561656416137715964671139867305299485118982075340165592178070110410462731611083555709741228278535650521641107397021519758512272291168678036137619163241224180070156689081130582639217524749420570780004483755845678942329496635477834252288156850849707618153571651705854581161906480618744935925758602894723642439531903642258627587706578197749490797384606322684680575039560554747986628848484039093438934986835092085690806096579576387155863973999770202154664057352226174131524333528606361280257459968558275218113443042155343701994188895920389600831828563868416377373303255293106364124859602521102558685781357300025181256660769175131925375112671952266890701499810776098486258984409226922112655631155457587918447556361090858394145203319843439623509831967326871891503880252670013596412973432397765485540293337605684483694423872142607499149160902596379690885192269289640128382244203008166185966395880863755029210708376085441903741846065465485159525237538976602354584157447382537126990814347091479601799438560863292701219477784233667098768269307152234550999929382411881641548050232713515998283848931966689181449303752290562035368771968655065159951880238878649818151556626638110909627787660546775548074923935781220263858504085485750530270452420202575505461878011292516579763338597186235350872001366826154789537665980991234664429711151398436914717080437624682480977857789166956934775688487043074855065355870092672169300285724966704883977871767921409751340951244057095199782781322273354150567121267514656765204095127913733747517083897393210267052882311611192330099101172726924281240374498063093136561666559506638518870981978157108362233782389221217085193468772535694531213146911075040141659870029440691551808071755321141840499432030066081452001631273480985644426069564524177791954902886838215535155186075173722591681293549916118328239606452855465448109633264714022115500710741416959731699366544354482931519858068425982467131383274111806757984933884505508777748657149058572159543397096030957809785280461140932401231377499884340330388102930436443807519207387456760114038672952022798922199057832345547306678427627566926097290001668501282868176496279076834454331191962515856149003957009932064817411067869103606967214781913942885999999024380989942619404741364364059316936340077740097975034294920128870658275326099598680690536167978624307126446736837890012413625357494120240362495560059522727905610991770739610926493361102723354473263461538371454818280825936881001002035049749937259967734002066493986676046175745885796292289417969986662901621956232993565900061719606242616978499053448992394647365570244051713859479436195310144278547722278659199193073414718519320579247572022406530948561427668889609705629958808679515956714485904733996660436945601499412369057708437198915891696852741992053258663073663132959636499562566217813065662928565552995518476362225404640491620192413909951257638695791010258198648346751656675238783975402279474084556845520859879748819664131210274150192293850615327385762268558027295028001766868474736200440029367133587896330349602912856091730409597002910861127454997846013859730436399184414312510347066518051372331633557694708629704653085443728176997853523037345691848497402606600311601196525763209644507788795441678142400983727466809160045941643877553994241592550648084590862693217044257833030444238656818412096017272265415883230994093085759331548776561936615428688712259220212207487760789923346702243666245258786403870001399032776882590122146029795762833364195765159854225584205585291700910985575367370084724299993755526421742495752242629473472379218432577596956168725444742151850853275695712283549404619949011917930127122396184332193601697814999452957711994605954623802392831393524096822959122315653406299243051200525001409748730620767989903637821792070805684971328588969258018646879247411811376075256249846353998507857629926167536840167605576580242543449400685631655162592102324562529433723136448670666931131684790404051433414798685611750232114777954454364242448754641841232272011318427500922384133094176677073084910454342091617021951200919249435942496500253185297319594237900279026146692697816784048059296796932854409548859607267093404269007307233503209715800570966675452396917893126635540015806424527781139210123290185028141946989038973155508959677166816681676741871451471062170445939223702833672827136329906545602298423863421918922473827047799818601869288408118928933032166797286647603042218906584019247951663204085687251114663532526883146802540456472522418940134840668099091948638582606528156601158702770831575691139719666466344312667572120661960776286123737239481978622168451425852151591264823763928536830302473936745449593081758783843406356352770484658762457145399012518924035698925800615314801821740067842599006735181716134351603495899404236815431855061826176422064479260534502476419740931896867787348931104594965071895983522074284933790339340698735886730520409438456444599856917039345585257142602961754878584040962394944226411022664219769761393468546341780577531695922159643215403800064026012451046926417007973552878394705201728180780125232494703744622878235653906087684722965483835348946364072550376835428695168724401610380146112271467856347354662117702933325350434186148226886824765242735468390694639875731232199167544323040829850582567232710360398614603595692447508977021600421410480893534245538620407829025690883514789233393058255386485596078917057217054032279614555079755249239645063409676618700385580744095236983512812969806464463302985929646331936050264650169612921087429772103930507622734097862788071930157907936618052380817886732887983098222573201993532866291505521805296016309143297190621682229537082414727059488807823139313733140322635610562929391034818573357241281352441533857147929432116798383628439011992286642429438251492067924843936968571056020293818795163600660313172504395071123245628101543032693541235585248929104305484165214543657872966449398605982247938414332781392027632211306224556826820047468110192947061307120193454880298197407244739274428080321276897985134325770847497043187613543674979011527069714319806411049800790501825661932388597341604871846855431539954278070469683626634524838736490097907909297028539401140857294643106978303655049045465726899813513312415716909966460624873135184928269901064294586239742187698661746805682894128177568219716459685909749385793553097684526958508187802633797743808520888329957183001762555841345179446982537400317485993590767438781404561194842376739084997771726161482945660343010886242269228014408621270386864490519139983673261721213278233694190303178057335998049897953168980913398828840451345951474755623607467778656241996442996752243671091798887919668283334464727147453615571034274527530584265547005390367521040689455697549445352376789207430761884982691133415000077989948445032368204616895269972259726228060966015870487398725817078503387130796703571758399857145925823721072959954785293541225382507424260366092052167049381323057523107849250969177598729829729591702589254154198386995837092149091133688438545725612029202345795268164540448869058165888772273480598545867116553773400714900873917855001104239988774025200631255349009930818487632272700892139227065017755404107867721422338045201325971460608758687572388860590761094679120481625793856067052489777224007929485519384976677110412857143820391711206005346142264129998333952289513554971151079098503197729858931134487226243491644948147590566810246351200975382830150953654617106677202819136203952375356729062608041065253248392715233136202315175364321898285608585452674840009628210919234811287917690116540445896955843108358162430914873218041351258558004030485100903324204652117254328053073830298312819766177412479246735903964186397475483142343070465787977511934797570699376672961455624875712630390167360377040534210433884181053813620982658167719306295000465656403951056141228753612455458658419413477642911657576556020741883898851817575865180156564881754117555631529747752434017918384043426810621898887609111600252111660445797946976817127100384966853899584204127945781882688950638361012856028384621822690920530357528188455729179472937413603928029674125281287928036047934901721669382454211892997538529314890349870036163450856898507697868323733233848470289004340491837478129526385897357357526183899432732284942181712343778240532627763737905729519417994672018564710563265088301564604483022516722223687390376860710415493958764831500917874950141231294225790612057669243870740256690996671264640635988303610659555091136375854198686580938996657543305451944262118446069692242365360227449431435805299332934334155451948251309506023273230997908868311793527333582352828270741323952691718764719247774436096347209587388617301710476002852217590765842702492914963276636670149039634049357459129948613853386398491265389774702164638520919317226271544823362913137255773296206826205685967214329213271304239164174980171797226330409189657587040674909542907920662080244564465722987062210694887705629814773983245836835493455382493048582218222322127440969025015017563744155013013867802052525981712082955999878693612872585165737850396178907676469218199104420773728097044125891333847871494552256522065561986139818205053390174780409186552197425188551076100114352498105485710097250363198525288300640930211756686881746710855880123433725256600241349670682083112764245121093572228616815957453373396016970398520599827386443436595086025661247593307150377502650851387557155206270333084161584105366655030855539919686917964699104483843912196606739721664389868339390833467275202495199956009282762027249054509681233827645352086227743490018191735969206122579185829730608502337007296072584786624171520254564792304245707181130739728162586420266550250182260762237397360864978374488281165157918684117600725054609750892972830548443104422210112409966078305486370812076332460382451004786248667834482039039622064667346058547946076366835210376569239516058270166066456404405913383593765318413730848244056893461088925379113152914936101599665131168013891591167996695566211154299688644029459232113339892405036657848955866535114005069941792910586178469002240850523043821370067132869230891314279921158029677411022710877693519640095964236941324637191934509540642031804142808750552051555561451698022039553525717787625457296752829145750790804003596767508208759645759079247121675419431949301671417920945107895988618952545519332740106389805944307976064725672965018077892305622979718606089563114135655957017135520763066543781451044924287525074340438592146213459015187784665842037093822129000437425086691413210538544797908425620106090650234677524054996755476918235815801976173899949019145346395399652623553956276346418901537651827910671417370114165452509404127503739503963673748587625020890706710984576538123280970196653257197155402560764383793259496950077323358957908194582454052551018589653437605697923897604955866899902829138026006675692636089794404971531082579791030337847351791778465116388836089587524740135387523246483329664072719320575964146606481487843987995346610715296510059341914737117607436327792632502579508783052806563604399736884683495068867335322754020895578752609682993952338176765561605250282466282875750286009361167285658119676289085175651460482626042029647529871343350929651526135287962316776336156713835687241843466695229647607160343920607742772423207521038555855579822738780982602119471080546807749941510262233944439146068846378141905535495309138027327807397233610742814722707725083187688437504552761540082684632228679496219439847689453093376871625223515181997137117076872559730986984605623669359042776039253821682296711099484282019668651850235996501212752566969690665467256919520123479511494204093799731498840650723323846054408605722999388187136623077156399259089080730397589385519741537184324505475647023278303934364659637040856660812547524250597788448095539608034828297754899716622805033710723490523638135632001451963569474241007338229912079267408871435998450389500140911104239246214332553385743908286334533918347412591261250860373797652879758183176813692352854310944781722313012996693436716891572990101742229012398616742206913324602618574212995114733474948063042606168581856879980134109096301684713571141648633452230678646077073026471483197249637783170757560472370232235230900387001832476757851075419321937131477137928113656081263686372875964180690790527328207493925894342107015066890657386955169483625063077085247481530261426477995926372796885019043222550763904600050488488046830654167536311797413328630312465814790092449734468677385554912923992022547971464349999413764808357963194963048943786512428500686835958594002982047068391370577497525020420775569479136526865098429315516142255457031987329417796643767854931676732074822568279656684856035260950847243705399554179310363576942502808947978124541065819837636163390684379844359442411238642106497539245187209357624294742645622942334529780361571085566797419286441236900243821162987459000173567153229777004340142482561170269706819920209096268236168811559531173175057404594082841851624098740768843499678771026113371972068627862844469224634620226529336870546028981993317912395846376297174763068944660201160754238516782334267635917803602699903217523532360778234260672402373418814409972021719842293655083891447975299785512672761865707400264532773884987485957019399447487755923528454661887358193684544824584606155114174677805199074507373151414621439454385541695394065370338637825148189126492124710182474709033235880437239922491270815399902173555404724937760437795720917019754374823597857161222315349282078307404050157247437379176009697735577375949626367101239421393604359306204010437027775807933951447693698623284824979250525426961279812887107278730120689866595676213685794213128327799356225724635808219680119651831211498343735349695086082914807512120238793160035814808263859364018936546794951722098187987684558301337593720953462678235529779847843046038954675589274010987913432035072744393552570614879627506149686679757326596653593287648230050766858253104793097128774321981225899265077924574661065514695959062009627136934752598709036581106041169116699815518389762807143743691577472425241955958223036179640065417784719761850153128195957323224226887685501246417144092108654965676203505966135712396633948886672616920831668785644627414255081646591915924265238808628739269903778195570218894117032213309620393971985049793669230145822035028221292674778056861037767377411776455963891257059072620780978375460480748676267461970244339794250535013814497934319640032652326470399073867313038655254960427327333109921677473257043791349023455576433166921969787008560489157888543816492413998969274284842007005364747399000878297517299279669070111833226760808452569358034544594801076617848897593258009430597990320838741924427675148192616989984344122837924470692250591812960442293802629588202252546855024052229101225186451471408487728206723249280420624966543214545376769188389269892711019848635242462614535654896480381863431232685740858738088430051146165126585336804334103687783318076913341984817811860136012316937180382667958011678550845086951501713606909819488018802105505716860859997569850070764516064749934939184118434250034833410903335413674186001121474899562353062288987852434783051425626749461079783861336134602102153000298247693667606568012940760766859890258375754371901902937152741490036420786053126166278239960762360316590093484384972484227348475599203843087817019779810473573573667126661893146948999932699496264477882872233117616623908043823307605314302446277905172798653987996383761115083431211551335887791557019512251436559550196485208132555832964276658022490018850941106637056517014059114149032326932662168787936379941962833465588400288865851980947364018058259320124581667714558423604070909848182085407901973732386453708303292736211975918717645405345756125332820366061218555463497058097952104406901083182128632324695803270144350784898282103099736421446253766981105422960868875491352380242002295789696901026678067374985354467655922455971116234273338114737138141892824347499677184117168971727990210492202392647697928689296447042291059598046650086035196152016171594200842878904250043500746092541566172247473089071210108555576230514307336578759200183765307046686565811128578076495439499800712380557843617152536735723673873616196782283735635762548693163904560679780669105286542629641142704848345323113104763971880688343200672442784805780216840807099412962311906501064933086079481727339664282729860865076293118529028397316372390916662845958943390611746764453745957501629155654973209726389068293463918444257110208628251370791371192553010337622232127386585099404079424583969842718797135916320031334858151710770603000081281000121589225209736232469404759716153800180160166550571780492708883464651693638425573007654636056554333055966944104721827251278981695446135143173696753144265479767783018739722328711867804359069821222032754166079316012145457850318263357754945253636017119757168176415561164202817963482359583386418726729373283327084089954257454534049227425300749727000561894092477907326305265039126249333111652667693073014590577561877231655387500299038796043363133595098534564903680297621758350403775709303709530965306751099435428937765183624647686887760104294556185147777737362046153400774417198732342121340063574464414744991393339867040050159295239815255626752964400882734200815581216470612088705756108248295941132408549851755908052826415719227637080012644929354123676072462830744941722683146224857800540001135601458078031318745589458876494480831015006915210271659861130061809593695772578405696888629771119674782684249782707613339917823167599761452661034874517581086813726134061754272066457685328479751442253477606725370860285350642580298965281052368003328164020754561241669141650452429626823488634666287549070389951698922239247043546132646677975324702778022168550303733230245439900534235550858472504337161818760338334108897731412750494030445812407630025972794893360128388715325818719746474822513527590220850526478338881401825661702423238463527943449528454616534988067141272675717656767569994529765820737016095843998442539390026484276045755941606272411826107232941620131227687159541021161743804523752906268600576992940284150118335604954818271904067997976505922911161203228611170128059200901356063218338815162290012326163943229309360631424424973891853432649935198436220864630157969425225088376087581703831641055751877069002943387053917463197068968439199595758356513710599687284803660811866070077634741444951610103882322039118827758124053373767067888722409229365962172095763437121264241019087723623392740773940000985090840863347144024758375565083943844776720940334663282428822228419365972974459144156740970815074264258014240314917960916812939545382035441947733380733336515495946360610689953465308618628285961910864807496444092961203659523859707293216226184871161489064869524365257747798903124990465045631014400013066819749332307576628842418795365176528228348036854745381010293347893855580816044019292919428037442607501234283764910056306566273866316000402388423143184059836236761241604024535686981009662577266199227507818185194996762624551840110074788979411725871123352565876838924217049528815381489375091470895597680075282955782882189514069702761843420638342865320892115319937982790464106541264616983544670359640980566302688343552665214511876787342789773778373528612201461292906963619291347820916347121945285272017745096300390962518481407333587249031774125341333334373292408872536339085226377801658041266022089885180912959405084508313966581989586466167889940600380771332720796362375663111525190010786044224983714368733269256390756864669722330851697889734628247607301901858160994266497924147509112893036191947876277578821777862650604909410661363904917022036629978207016960754705630997478072350043359132020035106266610125887013557775470060081980527062922364403927556757313085969049436142962153489082979153992977367127921124454572656942776415811140660688482663305640743627596369769372266719868587474397283758862190586493391150771453873398737538769013796469575674869161443991077432230736758870216950265708062162597247354636253910392104492771397519414967907436367659680674735988319028065049364493074709654227605566351813382552138468775488374945298076047577088876466389107146932621177374701412397882091794326865598488057686252397717522485234191838063668167814015526489044971842921136548207472592318189901719972642977101728496267729777412644966091301410392864741530119522434311100891691415921953158132795521111586219974803203056612997296379718294201566703395803916083750305349277749863464070521374366354144521632391096201308487364361975730845029866224066236620279671713162844936898700917659052766554500914170537175961533743619314705971383536198674940399109972269741610419082664529768589976334188144502256743155561671534826877882771006747384876058144279365058273415432384970106465133155864168919813771361684766003869113814390671443224573254423384051764958696478896321914268872083132312259078018145023088917632765132687938848022732073944597208664030540099166756589484560764926136089001743061698356142330779697641021461544614995532605046552875359088989762023331782480728067558636348670887399319519988963161098238604392233826470702826731109680718032846236344890504928070051512880911210958351355331829029359713024724723990945801221813844747934883782903562374115284013806845779777533695138535683660086146881084210042977630323489183405577022144135590134375085783367604873841478985620520565821479462666712432121795358384662098178585380879245278522846917503780120657936385375102503727505375528062454931953136920212901573815346470924828960028962223589721372212071135736715338508345865591194023915682212805252250712830392447162002909240955842903484042653383886617395130165283790403039903787858541509182521845731439914354336724353508499218566857683609529870645711163396057961222181104168524186601917819861696445407818124363717077106968228483920722323586561711519545701030480538115022371554079663740263079748333356863740910123132797952365167896444900370384646009484947030836831254886137487467631713590084627976149256964541914196858925749368260390100729446143155007399810730245464430361337283554029569657000657802001484329166816324959198440114599499718479736253072702504403017235516501178873979838120227162875032158228273676093881929441975551300748577549779109342920805163409630065016833809617372845813100226443931796955844130430771240999116736577570354121423677408545598402598862888572952955255280236700567133546814815219464677845931858953005223302041298455330279296610718414714485217315063847812057818787435585050847672389512282868866392584854958054723865532366207306813491078688038629311981206501932168214178385208559095340905412039808470027103860062195121808570859869098547308890837325630958949491572116564232216647632748917392009145186450049004355294788162855212862109182382709254033991359091380482202780849507769064616427552858193367667536828866602019371138229900162427646045088826204122545500092467207158680835125119216633343629370923909937325073375715165014217341772329337655836210884154205564399751735967618700797222145432189712362749573012999503883680849207578450763361659108059042957608234156058436112977712426939204793165587247618819328359809110657528527259601993930412165775569176977961507913428180095150265630102266412970481931691448013229025623250338801729574445781726307965302270235460469594030168322707496522594143707082480740833880990588885041926944905545222268650548685591276165919750966765658478184334586124834225415559101851938395310355021379373834132430371531889881021374680823572543432234814359880181547501462094228174295209666558345292658606346805654324673667362029935163602029461574757689755871074389899188838432574372153684446021730440849502005691631232280287067556619837880566537533523778552369142283447731385429287003282658651324266187950144871094096451263867204340285091004728182369579553359531155432592396801560545458412464029260508145911034852964146512404020506250831271379568014184639832130448037702397808073302110631477968806004686555136718295848363487775424439167192899772091123225761414992603732830357134151653187884687764383149127553655240906803868803463165819970817573519667659651364407933730009207644472134839145122460382204602955123172521781330892804374731541987765025897992744668025693866193258911804497276866175408249917468661024262414300777482721846616880007514603299480034191470459761723726410876755768649783300544162751177890464279046265783342839117069913729328880434534019044680243131872002210847623582389932938142303351733580558276215963751657875738300235338585298484036958643716372095695087072857793088755070249066215715181431795497306966400027765991809568631110907249998923949257269311137844667966434360678084806184904770794700097136656311862065590651208294765084425894509709573040229454319888557600559322867430575411971293621786795266391740616173028609139472253505753672126666508516319705060267628496156376406358514645348361257857824290617247238154056150938753860094186841460256836958381409201243940117545070205939141667901634481986983805103831217547681009624690319884100355280499802607906063677182103123409909642991153118318725627149506141179715969816597225149072885354684863389777065506788120664303052397352186439291952703785581647327115682815199074054388838820758413659792199879510856954469375159504100477499630110611690281171014574742277443031378320519607295749994250272371782188405390162180275399236979271078644361805427107602589197073199640939656210210215060848177203430001601040267395590288770622026840349332734793146271092396149716346846800415566677659754499350160526406517465501526366768412266875428451546699412837094021558389342445295879716998581705721265743908163658881244290955411656851272338308877912362322356192188222099325275500986535574173715406512833539645533126124624557040277038598816764525689055343191409227056717126467001924853235714062894462956676096651687218460215602033260053299159488717562893130369262189314406211650347803603543293587320244651191862330667275042596872306161998410611163574972217255898782185392451564125811325800734648679033032059066544378647261319860786768937772516744377497844689368229119656913967184533694599384427749939126404051975683634854288769498212886617053041503641087640774652932184398816610052688921055627276014283032906522796993728104362094220326278268267354737432300106169709660833964055666545003584141563613505800664833726049642013863433597942254735346815073688130349457944263345000757887025086821808525593927764848785653151558055454628657425960292726292883924675035284498566236141032526692394007271903776643355397021962820077328714757743761716344062671778283613753163854151366399590300816141023773246311467835649756667215420524253695131359497244196022544749204156108102881270048688638327349029500841940564193386161745347275304561138585237971381918664451661053741011978980749544305846318188379330597159600458692098053790009699325788093150609367005118383151367777915544473778835958089907581255481221666665408509496232476062267241606453972640852550825070820703594767968151442836159118047457898544827177831283907208535863918294939525238878936806755224085305678177970197024707236092602866557745099364963396262045859418277524062129724616063133857985237743796672362801491370793840972483275580103730635571702124553782396502089095894502190241961261108199001153672669232758687409896421826437386618195264381385342806978883474797138088574168635070468359310547322108540357324275223631033747816106157726300740340379290900498722558359914795277587494362729537218612065474568312233994745141932905558933909038911205036395148362807208544220726822948353401387692518277011630420656687608698774038092450156746769860730012626908573647278935964330528102130723021620800908624565898670543974133148510944717046750595448317442723042809196821253362933423819897216395203766502361092803497718315706802944761111919569304494247970422105243695050097215744365746235893310888676894828954770296203908259036934436999128719132589335550721254699602450430642564734075214854563590623464673717044592073743452631179914620379504278726313354681525899366827369362543648865617919441152838342531827530926098398263219500306039069555342239525129080518058854376627846581613489750946795400434701314854977990692391425239269628873494413635829998809916864542320415855712391006238313218170276695144716892262101464097883731288504992900907914879195091014501618539239729669061884403279102696588604048857442901187082698505677003391388760039717038554831532207175021231503166034229101323755603352163976841096736207645201701428498216646626476953614048412497009482358478084936515739278112854165682199043474089953722791496830230897217355283291304863912384659811221838495073990738485592070031427831176238599325494651252023666077330307575551736858647158146720262864540704538185348879293546486042471308467219170040035169488121420152372180503194296337104254251055169204801278344877904230275261627309792082020817753949458054549879585614673742845985971119120114970687013116815629270036680555812956120391682820174239561627666133021548937206133712831053150774122395106541197787662554325362029031340602530374210124515736900809815820856656244112322376706063417704693403413551074036972459848822461661131084209075380374296551201964153256934017323173030882584535558323088105972978261840772724783841950805119330997936169215108481318156676021019406466885894694740843551980970093188858365317423044990220912892131817021756426062317868820653984322713136980142577317090696369892385919215333060016685338535300944299973884287851504044415404721914361502301994980981686419953731193790928687711270646364089381906166171313654047084800281151995256396243730451306316124710685858475616564468911886434761960984993401167558284617217407982657344661565910583631304748732034001554143689374978898872561253316933014106617863491007520462168031359377557420303027167748081493307755243175393112225298677315837753807146206832736839201237422203342311486786998188071047582326254298897599023233663648742949981799748388083132662998509587796552901801171647287469850851659057406284178746224136673421389683787996636667395965414196275384021160110405550062606590770169296097925111839711937885028147612542905994489278753555419337466168684996214575844804610624496214665232894330689649646561611035556225112518396020658254760126450741670441676711949881645523198793308381299124862220654482517418744440154479713541002350077299567196479631273706424852378252034304170603425634478391928028797786907873732579024372885042737684204434096579034084925535532081198825099775950743743518656359369895900212802404205164709177785435264690155830111385597155396670097688671967448791312319980843579908975093209922104543333362809038188812781339872660081161997288712543741398730733931050922064534795627501181351410685640607197134098747794917708066408357490878229884011955061014522980020941726779525357095587564469089411844573992280397952959934542466235898814603785694012941815794126562068131411230147474591386929139282528081990074778405731304239443734623212633893569373046529504776838660773014811548435629587492490104050927376173602392880164392495313525381934502446986596382577597043059935766483944058454956921997113734713806219187621658826886677550541829887754511356174401409387077490465157882050911306232358509688187983017416826088963883334064614769794809148593659378629969043125245593317687123877496692321368548295995147074978788656068410114464392822327699320569147003970500492960416389894224533841722810508160871198947649795046268861482089095711854927200969020612532933503599283531993538276638438991221107428141709217003689223947094274129065343147615471790363328415355018441314302656483279962294971983699891800599798688908546033009115296319712454243031532803981638639843912188588408491883022828825050547162567872914756422533684629418022602488704213435635772708576097785913898193216568560439276009443726165490342355113608583503923627921903017278264220136651794970950622124753844599952180476945456862108288000982344624439509029711339575183390352672135190424075691185450965282328013373350652415216401014897149143273396446240855594280293641547348940874144183089057951349422023392023820643471433012847973777592124280236936858232280327961120058078014672497103816739354337935112218927729490615927272695014131526032071918187218655432999515124534912325628985123034290252529926006056989088952952096560784936950671661841550409442156472561189211756331002488532322594490961696285150328700889704682546034271130576342048292297004407245563430232779694546592687457331029050772982272811994521648193637219313258863240651987955896819953385224538090320706817108482679514477863312331811752386358830629715741885339245873830079277682926844720249418145867978283449484179138157547476213516400136891744948416956854050359383953324295093427185565265376093116251218012242576942890047040041998845290831914538831918619488017391474964333335244879047217855143302817326579575429925177820145071221851634172563756993453264796952853948557635024584845171835344549175894176453554693870433900454660635436886889654503130609053595848742489011673670305768238280428980974815491626078258076619612639803232765603383055257048746286954080053310258171547346858196554946349949408019639400875270013493016235016164986571827568496140836051185987381259504924475476244641213969218783547146472027458434349660016007054509688545187703279294741933485326509547079137809309864702162807946678355455897606853216038810384958317399207645559411237216363560838488531016087238579381126905139010101688655970371353527993078745297401707863751807844486543272331840040447172018650563502911409000135102234139363062125213324432013260497643603246230700183734347268620221156474178328364452939716077623429185324818108829726849824185812427311528789343282688271188216944384890712546941680477686922272275651990178402342317665986243170937704647614653291586639334722913485741837345206744070542669969207519298611737031398132886551075900408231137880826087396362177079927885000559166095289165252817887571628147520638628463736928263486893400235576220682043660937095133815896136064122980870690415182770423750909840183592791550492572528587428001562103768560931326643494910613876007926642570371566465635409622287940629614815637503735147068998642088084901596542886167842641798080467216157218228156227277377652946301423037548709306555139471182763419442768076122814838199730924754614178431866872573378578086674038035984045079551576974927423188296723891294535932747157024597951504957225820289606028921276355444835245553197058755321026845114758693073719273845887802151259565383818756275203803987017771483054624319104126654913731161374367979573387236763227249245257077570117522679201978393091997183893284477757246582884109103143988017318388411253691920325139251770349172602253971693525847407209085605365475348767939077238961195232551657473260997371981840224707000400314030613808797104091933087515815577016358922667761964735861065306849567292050525273532709714643114698390351451880551126121022603918325754926868687740964078600699340310549280834661915122049965845087102748443579593094115160933628138730135777239976263804342508118136789251510793303234058582678093722580999649540820648121163828840181000796983805939485304811338624401855921119106668941394163460993606799663919367403843526779618365127018648986047783821848205699659889759568620811866451618714017721107405984615053685881167867001719774717255721627657078297707906690688775794659174270924598549746862407921759890546069252145220708755251154544347014169771580348304043889056430091434270439492615126379494770559024964501597910857303985684485775445167347639920663061405834088657547435780437883992035152098916429164995358921394936034105945271509874343739061265508306269047552615098169454366559056273867451451450699464512358385894484548968794214205824471226592511164044091848335209779758196857886459200419625654582237701170000326861867917165102706207222280510339221895179780668928163012084446402661186702676782908664254926798529718892575740689939409040657968938817257811616419161193728531118234115024168089495963374545939094490047891869269449837399790119517006471208708578818786170863754727885781231290359684838403334692004415418727819968945152469568871861297608368241336100199562002348644238428819771100640163918000573377518125030065453510491818444569203260133890562051908861777283897534010695301254799713588100261580889684236595612725866933478376943776778011561605961537484871092139697778222906563220427830594167187362363609821058292624686941866741472892144018815452743583218971134468027412440862938112108027787581163269207532875642496115623785191337349941117181589644300779311885819758480010634128412807321081840708191028972272455509527879937917207439920661353880643804780668034474319315246521920188615970050303575714695309301570223019371167298286911403811051636978388806547671507895071087277131791029099877436546336737287978623165133197101077085928263083560929408247234635023009683363578415225837977709300815876108343698333975624217311460844337667910470277559433986058663469809995451073605753388092426214829383325318196003104512513413976372855657009379178592445719267006791179830507047562564783361496270200091767385283892757218768202788450661778789513990728460663630326887728575168485635365081955341188274925791422184944072012662249279003428922800085531870483513375615805863597356005999663043843882854670231133628944077751760401304273172076129548697692392542907025573529098602237272924412693802002022999114987066058054290229832351853777141554116094807841920575963120415393413603918506014758568912076245386941981468864490498395922408713088512278419485831332332322935853849082299559392309595190155339671920200160320365396580832018046498862488633008175270954648531481654853725788842381459183819129020004681720930796784245774326838545835674259265948027884472418340605415785729801827055920419754208559127306650924581481323455726353300872873361046908762978574979142179933858904572062611847734148521088733122774737647387063250542387219705208489139925860989203065695260088740429880884166112728023778032012735833415046409619400710457926674938927363636957846823588342561910455956192901221127704688442359288199533878752116916444658779248986289474709806894700751237893827856253743552483293371161295646749173368584466129980736404058746411181074919028770741149059380179627336280897118703909062620549408115519230571649984259378600988093732358281336348701897596739706380376738197074822974200225918783684299781478721172243406946473324365758304082290745034034846384191068903686853484875499415254727441773253097962355937384116825818584347034953781974781807037625659018821544790527109513200788321187236140046387502809915140066438694606960821303555958271023434427874230986549568029959800231346062652110419121915022960817027661218728912828820908267326987511482102633840333410135025309865895475070266059303173627279544029896234878475015447633643237181612956824910467687335743665840056290444921087282152793545184549145011754901206600722667003922505628385680133637458148324690545920751861984679237767027688993873222909170907811755647591189609955236159176125234348091691387237213313564804750152859360222021947452974591886930816658564107212525077748575185397406471700892685868921487148760051862268812228286210072245185142866458902916596712467407911173574555216742461563222182447039770586016906168491798264015819840234297592177174127457177383163399939377621583820528683398444141641130866059275555574112348665451386751137947139781146054614397788460608048845077463075129633816913011732590692221803024777731702580729141403703363300295734494844598527124475752096163542367523211990128750139412516057837632204274605766211756523510479976721701436511226644191559059638890032114542903987062836285306639771682370897961365543178147752655273830284533620068307335400113516299019929798975392327894641649511791358529001400116825352789147667927044918308115518639269383102136929882503549056653221103883481421141434276063062804673383697910353657317290870561615610862593490695967332982199985311407252368646226248901059131563638369320972681101089600245819062817139791247336001774881521982140038042730632734112525662349051147665760433427766685467638635404054061815835395555124037956972464164976362008088463473826067205552547277720161269005744602185637737493536341389840368323175447472790963903412989911768427509908384028509602658142192968648394550836218364705157570834435783010800669975453435728326719987609066527021307358445761720308499230714417381987028301231297524620141625308805959263213951784708755766354167029744575389669799756813215903942055870703194847123298068761817860857553843989479678601901065718156549903798601917510423103879676764621332975257134677625786737546402209954819345470945079489001689594727407487904243268989416550170984091459369489812977890858288410181656286102049114376484345769418740152518296234343160766573768616729743171071972288689477281381736816584231883486693824941238666686182922142534167618102319559609437398783796899846962806149732900855135439105454842459971806765083609933516593153480594904104190993336937564717877039018588281304196893330059897909960561745855487740158513853269636091944935512659921575583287834705926539504431046191708207931703958400724006000981396182321879759619184723782150154940001098481536485802470305221263706462369950335286019381097947551753068035905344582491163182344388689166594807968643302564711767754320896160157670998828259474014532248629255733436957425304711381245959940685935920890360282454298642696931021550519487774188727835943889236538160770937212581443648344456634558638528704808097643088903465142783602850606868820592568840751285765503981376831752955562953174210218098137820936986199335600260767017828149136900158914779911789386097987297847231747447593091053071940143962352075990932461129669484091395970959887809960161571506971255064909090292325455337878149427177128728909115869774851091113620721309358253787172195322525179160571420328914348495073610727538607694198756783625448217324489128104406057844477135193586287471277467943109373968562613016615202219013320570739137069702064993151674033177502590316385676546535773080227460860657663904318166031519349557415042523511671238796920951605950280794953064475830848356883091640880637302178868689794260703142749993481686431688930252687317038362012914197003124941427931754448716930197418015671157608466519859903334279372566127617066892321453173869156859855267191535613822481182773424432026711884855958475274538436216759420854668587665784832456724050393714703683403408376149470740157421793849505588061493186921902841339269883820184760909479433160302553466842886081622501331155888050143014060041152833399443799674634708072868006579125633849598805400721710301936037389335988825781400165266077313047668443170602872226434034600757454579632390103724292946557354600822989961621085324417223722089429581750046939823307255134614261036888168463633767077292117792421183659232204290123695986408075575047494356538674694569660849187682998393546731414886072431822433937847952567516841367568817267922425291675219461404635827618858984812844986794150501381190831501313495672858207432314231880771610869216247986352872064181431751951991583708189759191671840137706803691833887841110161958355881986979198063416293970774185213497026637236435617041670104941460036247575799808107309496732843405647536745968853784932999745348210425307311817768303582529900135555646775471477457246724514918390297048382814408196510088735399067731661787359390170230110396525544648947966872328002851775010261806965384070188494649226197416604154506903783245182175108018323207498340955569276329816523532442779471753076153389207131595163779148124720645677915869054171268863175278453308143693032852062852470621983713774206463926616687363747128070577055070271237900140008666916070088960490368101741703312658851282073806458615933674804529881783581304169836596246303097318307948351219013617626167682385408069228117733410287012512005368155709227216995556142785721110576657798508170885121493969725562559999688573066075883793155853674337762354881985761833987898653232363402756834000908707170144923360328856845533444792405710930885262442523799153562885378402821838037822811253527961320061782344173607969536594636644802261573992636515243580307675761554226612892735929676011109917598917427398728803880639922848293969009213085103545314750743508954093037946755960154384245852627685997305661081124688739532975408204471762466021727807706131920553313323537236260188421690892515966665956356820347627117704858420885304524814210997616042460543706331519259544143710441335799832178869530889754790518487589919057146152272551921380260725708933436889820404158119326170652580136362831260472229895476197870612561917443286806926651468066055336511911434993910534234079712134020756266861638705773967842684624232066210291554380720692898083233486217925614732131178100176592325294823488642706964604573246389641954534881943483054524660119079612338829826711119710423201409172659044383297457704098899063052141053043150896733104145616200817700167299445771321769184783580060710556979905892103768826746702218419205198542955916511903511964181140710736608470825636963823680753182450564847362786806400826625372205082583668299739998383374612859637636303995894708470365372429677284266921890648710125290190896841023339981540575806480812176621226461856396962208713479771001337808514983313861377651305653265320043916637478021172796092814922575462782918816782310085448574498546120915875238332589692187094950562715438421237525568828687234914629340111176108310831442046408153671114596385202676111002999699360779523173820065805981000358763731340020227524073677817184299392726317078605642057681894588949904206415193882018100231172408310181552229745928519462354056451139178085824898032682153550130951207856506015234367281413921779877943861746865311688852533946080238506931297192197648318309712227932818694948710135491688763369881500020417517133339851551120904799246893242522018604451595949909481499154657783906961868116661219523595853452921413548785399957906203405708283161620784132441069207274958475560445277290905858008232892094219212791947139075526762513459669025342455531659529244479747552625268988759795515476557290722627235106753465234377711974219197226457103763291397833956636950119317722184590602904895935767890525993382720906649284082059186670271838076241823895946262347762158187295293057134970232888915375792322275503741367581621490482036040764814132729951309135077040388736821717749431164125293032879110330546637684396536573777826601992742627903222297719510738497597174218225914052933576997501754062386850775603430493575604499083187155195290518321796634502088203950807915569197965330508150425388269090113525302840395135885201190918482538383248190230132241711104940342056468614305001652035254583336053943866573478966598835628271061833712930913144985158609225481455258579459253789767378563716442710165095796866108648283725923504362194216633087154699059895225122429833696798896129058340776234652513692317139708951325780042954625501978103871018786454878323760235449886343589620436887500095178121985039667244789425272669682750820419335402106158264852404967126113552108309506954674600097690336751908455770811991054070393054302501989182993139437550070258826806657336174628316167466065584824767999177358055070612490568826277878164147931389518204344708757706205165386336998650995082201588966623918524539361384453666987106981273294945868971667456198684653608394148619234572768326036425719161583039287867036461555381357759830094488379158432721394128165563023831944020330350203150117653538990330555869495443431696980212810715608516682756141544129790514151293172079586314639012030932513258024361567790638113341778732652328738350526234679343882283692132807370108105246520935632822132102536840490061897571537049235536626732132530869222019030146301939731095520244113597639583535259116712165261397173333233024007020378963174076461396662121553732526143294821566067109052724821448172222007303349388011316415020500230883686154733611905851026141376742588648997325486447884208595283548440090081802375741017378391569112209369177727235277580072383928449507905499734879565715589415985543849261923912658399898519076104950112672050580260771579467272192744270088991763394214603767577850506507027928598987939727665546136482192369658360947562066981102181039487780487631525495481999134324080509377164706039545269817931359688968605438331226800921909704381893659998345579891976056845445731381366250363665433413585831054858349148438831965969716391967621504222020536763548035831030351652377147753396266980350414338265944789239543885829574980513738930668793888169392613164338469549563188105230653252378447101060653662700065495364259944514790078456263975355139660352767847076240413814976937478065718317958777832730150231561713526373024493641222959785046874000299604363210976097586951717042755784447965476387863104837630912818131888491271645121570952591210054710405010997728217325797539453246653642840214124281440912983407637931382617694626530294576472419859575214612016965074184833207010665300705565841590999643401027111765566531468812537599336237634680328558225553798659336734086265759883063269662515314754011341966013398202430027790784056776991199528959925998941718980740379468932179640067716655082016020350066761975602778405373631469732586823376703012665192558045031058381861316913482864300542137643411806715197224883511536535629419326724992454568726748129962806579513604419320732044569330476366586600040663744658515288663897740003151163550777140679487440641254901055750404982822825450661493031739051148144681463936932435176082984751543085218130944079645838895832254158054389681632313998364781324286204492592945884745456443000538763891293451990473140838626256843466859455279946520828106272264717525438489583270675132047377964602053049802640230798859893232549899831539845243872718702798278738164585112896395086684705312518276192358743247243403356306544052309639983945103044410864570582189219765357528743334896309783404731080072467009216702833869663627805054173844402517536966502227562484436739637108034270072457082347755990715765168981785972507556374962687702623219899117243391358479366584813300518132164045162368743808233942652528278528389115682291960461667144401263238201411723421761302641328796851934621155996745842409042308160850331386793351527891336044261387934695403700285610840059454823667132768016114829233424423976260383559725661491176415115957078046730381566476628924537781681943184664026649810855142974266889795767382724093768217553999579467617778278480267010206605090929611509545738042509934756628930160561435590202348253252674228072918984010639494825851162703977848565862148656497122633524729285249437796765106687714314476789175200800079015580095524420029806037376887668342910019856239746195157134330386766386450624363921758606726096259610542495485568692409191241252852839429799409471100520151443823951918592306883260426022135962190789348834697059769351173639142390103227923277921840104458306314381683272575776987456982051635922497570150545541242434092821929522729957578730256541882960580580569203080510403135941686097091981359462686228237904618923914881800146878306313536772739119928254068561266171545319400068694647505346426281463030648165925231254030208719778306009523058062710527467897424444017291255185339831867026971396375086268712661677646551439113841758901258903177861509015640674722664246319957851825261389952077257639154952184912863117153153241596458592080903610007562426200681820975904702177544553482191034080663346442986345662778720141998665948384396655866730097665291831123675287187513149419814751028972767476091229195999043565881870859855067287243436476104285237205466637675001388254188183198313562290486373009067047664390775748035261764488620331589972892349976554693931927687137579563100150786216923076394867022574640170887664340214219171918083645176097212161568202060449210249948077356619062676871582136011872545035347235921446209270943709076074024706875456746222188306992825118887494731304511870550289172222473413085912099493686936670843361069748933797471665549664057194777316194243552682795465790592152928124357991936588702192533574932252481603899183102474052494417599195357116605745015404939039585205293821762199303719133256855091833624215158032883403054987432968541135958097713158687545672794004164940895616284389387119489103270384338063312426593187091120358521059002900170955741792432521979828708708636150941409178850081127089989016797993406314068621987240439453346779604697508610743283530670045970733603794940254089221629847059175844927988149024376269985147216963924261419736479862925205808861965315128218918888564288194173360525435363577930289337338699873464335922003369884476820908855714504693365478462383983867856922412440036045677945266194214870870674515890729098525210804528627640291225476369503775613567205165074761068913110343598918278786195433940068680114571682265119867993818736633441938770346265605559216578650655951498928969332848947382091252807565896215748437051751764156459307839347380237141544540586413605294368432461601902820768814816829780132194576294475143523754642443342035589369441148877492951018125900713632735342580063698611804487938500385117640660288044671821803021806004347992409108429263952867383830626179692758278525120618787615186207244955932139145395292280900520215688315730668551133250462247230614601809310042505020161099605818903226865977827068547904612805588583086732325789533947587218585699367111172308109636312091111365523558754112150073947223697836132368245670980367964611602927765332380653808720264815869150581333572533633250453807722102512363218720673259907380018226433719319684982764575747922724944115959999788765822099562750113273859062330749320743171196371607532753789900930205863223894166121133309681952073181660871818874409173852464371542318891728709088024301790016850621569569914470319583894741408519921267095447413073272426648010437335576913314698295358300170807674008584419548644818620453923387758313676616569840083051542832334817491226188394533372661947789989073897664488851949789195344977225028144657544580449245531668325762930986343835546474455778177431863523237603948408508743796872579080709831986870698077024090208833531320502259017838134568857171712983537073811928733213465163648505054649324488491667823232774579443924517582535688795572411157420537958439455273455147406690810761305027329230042507976280529999413036577100875001863692383166875033529194217330353368829313201843854599188031926770072477927816067860688474510954267245526668234191670400423043521118580023667698974905392622173874736483666669596507216486118520103508042450556169051523698749153526467466785825821295503173733971047718976207209159073398714147958740449101740180178249031841434657269618114065667724296321200836329495786304643392546392980440803094991598040386186714258700478773908606663679550182220778395601126457331669857736169558565141581959297273186952442443762923614933274857635115716283663775018111980341222806886622034641417062822385265665391761939832014721175808641740479250297468267391590254978671557436205709838657517827328765291790107252362234177698524507080481777376441912063190292835624924540336865689409084250624921259820952413340401339178702215218786372871826727872988799819154953653673215099887146283169360941589770503558004359783044256123566453927174606835017553454883202067969069298537356449239601407734611157120347637385370195448404844845033515326401400563638768344595885044185061087602201677545932315211810890988299018956260781072930629432606263438445892455625361482600074098150798697850731638956290453237753327667729501580663575945585709314721845553473725741310169817283476091301387495842452901787082468694433476361962631479411814408345702953424564090875208349453680683662595887736119669883142331446401364710548892066087354101196001716928831695876783917685108064324777818039359699481340625298966095235651667188541613243646090786826529209473101452108096877275104902695614328187032420176911988436558974009482361029213833467631835505364996980315738818848023787758951833694899971974608633589492310802992946894858545376987870949181683231400733406938185867677596363678835938030611158231245336191250471346144915070566330389671191964635816405906008867182322830453254576581094334845641826560790297286930312611180608779279078637106658475021157247261355345473287125329330027238204566658886474559317509236111652922859917055623823152231094834613749917400078486690707345906502490695472400250556552165945059122658864187876367918643837397099857868547576939883283232871551010068717725318211276995674996531932806138081618966014643072361831380342175658424159342656312405870808416861881262762782851642604410236548367397741339265903382341708520568907355919878637150015015228177875312925800274036943273534194087997679906876657421341480771237260549426045763644495382562666889243901404205004755517109524260541843966872197418030729324804066217270491776291138716565335485420461869944338802736520697861682072296421321129190101391300812922962234718094517641365840481140415114126599026071026072541916723548346667527859460235556976997137344453028610682130878938303556931617581505671689871265437757894938049994812688246095727126912731739264626867905036125048730804915340525201393961189170030259188405496323360531525186188410595480660004714343587631406978564719889713173550038486185429570665125595320541691360480822061798988207082831064065600850134708393561584640208168086470768177368145204133080204036842878528582194970790554176754115717993067417374549981037291429019830646476127274592856161142038903122214068484081955785927012056968475520809527117277229267322351892869238132315086012217607134794157856249264358866329426400450285731522702528388159820512297469021706855659309264216086281207552727318852230108561286846539450508785617359481995746794471032515948558777301675101365672131476249148842010416672799797550467284027935290321717816587428259903571370576166461362081632845937551819337813918280589822338908343554473953797115325475335108346381863666988801901848887016637722549513585280547540189022605949122531234301980364900156727551185776988413528735503254777234054140953441316540693801326252403443591455983733083841013923606470206285290932279223142259271282318234942180121028751094410014351712308539046308235819053834867547588109650454807384942082819402374023409575840662422965778606506661358370992097950034262672133150525271205056762604314451884647900880596908102216039970799640718220570844963753664594574063686291268036932243387393326697041139883934635392910331222814077949988840421929741327177456124876086009152260462295545356308861481341928549861468974131716519745688648541550418509060902918879328718059314650841138210163490534885836551659253590288508991684785284576252943626867364967741848160870135261788173402578259114269998389110724974560543471830154822903707061347593306518632001376068924200119240536105069645451096012862814376491378113835330034713324311367168320844565921423525866981680774122590829732835164347019710306250653389481964916798361534525592063057164175769373368515610753034494621333728721221969128128859511321806413376502107146417819850987021467227024733938421972625525997265907329794391630771117758040398243855432384513989062916192955108268103618373289874740755212288745563450325905683324715923781327989397951614465816014742391212049006311418899189584261849233980192482293774501464249994023044882870877346559837970363875413019523235778610453411700122094033287101706569483071873592145925748508087641958552226740963057046827986390333234588974680436868228288120629126496151126527457061939483066641500740345025869134292704471406991332741697765775546104714334046250465611519483772539392142292610890686335714218404158191848448945619630603121616725652551034570162807612661874147062435490520043748003256721529164342762023192800712451004780940572642422142427212553945817160381048740631134162196397881823616712477230118988886323652107793942633299782131270607914422001951968757781206299394581170646930162581052370014145593829493468415132087904276303640017680029230891970570752535593632565161638316693736738703680750305280629346632601048625679695282453611950005606077481784774990835752298691519919518151786415090929469496074697543753772133376016352081454727232869302690047651733662528412899635211186629464788235965310981157497231300429005484504669115280631098921370330555872980380933607398867655078292848088572035444909539974680718899003779787435160809063899471003896882939486656026652702838568187062323810222354491002151288369552809169367676037607628440983629553681327433794736140381430194746093050344171695186748220612842312099035104531172032249205580400862346769661790637639460178094036098913314982745310730734379601700765024265340036894967603254302311802067263672562671464322279522946433853912718586235726732640266554673476149962580851481590340236265051586218820417730559140277414016885849098551019716023107553489974535246149964326318557804055397422663702946265272141373062932506773846097609170291335970466812730691146687327001621489299416748501534028894668679740560073209975031882994516471229657701871502120842147282809612187458382686886612910758465536957693653580122379622715763854461955821370906039301785485683542156594304735105957319271128636954507322474659284299733667749843710635995774033599532969038396175186930113021186917871948631441329401298064542752528722549844984720023961675808386027099388240620178396401313822516835936115401206058741374064513726949319098909803050551304537905801092570177828514829972116893899206626155376812083463967683774653743972795885874633445714747590246742423495789731860083446591687712359905787391027688565910834208525664616913306364431371058305963894720708865119075300097763684929364238728853676634091574434855686284843521889882702919266159369838275444462555460371983254150010079387269729591277555784716567057307038196939389581538736166478659612167074198562603680576647194703976957633891534492241323621961204843094062645048421439441526577836346360814246396402234789924517489144382463014114872480879243573080903901459828182074188460035861651007008486557036176074150547911757448055446612268128767529787399845234464996157327112633309861835619864070312414508915653898556847566121808769237279173135566309483752286068720582569134194233514348054192873786810813875549209586029013758834805344655314688659250680178741083174567743665156523272502153180691481327465153817006451309470100596622835794962492175872011296937873590389968056021303059605746992725606339915462782073984612937021724910550025697330669173115641341176571401529164816039781022740198676906577747226157363530523644461860938881392069496668215834916372966718693701638885536020450526922735812704747222145206044876413711193862073645258069697949603826926349274123155901521465790810656385727484763674440680926267465057156572672144650065060510325150803226061585635908990246158492313593765032701569148384455191358484498265714988489073647750025490234282506097137741198405221501423439528458915930030314651181811735051513915692775770313869656259929379957639236134978152075770021908828188299675611133035960245970933299664850914795274382575038170506387365093612508148587631831228808933754964706220663230167249330754031268279405684286477814190185280518879131735699865343064236179944487928029079047347422440272887206655435973494359897856915601548833632213662993267026089004634376139604024224887689182409420226669287513027586797728497309290565247819021132812283452024592602171012274627750012298664048271647436691362457870419589348961939715075702589674229776343203120262774560651352133342324549475337980585463491244214779945654344285155122029057070883076266145281162734152262213154951989631620035434425903439479170001725349304315506132250477990747985201301349735956552879220151134390216396842069764689109207871897470008064898569029921427419114151851776077372509809692913321815841743444600086062693254592878511065664487649550764230053893829729559047857378939436777219676035275748658873727453044222027820142650333896017993773391650082162327794037924953829645931019309163484456052184056713351398479762602047237943129006171985081023242985115930650857042039696897033309195488527537371015184599868074452157155383706420077509901839107888501955817630968689360062324027591620693479391332422129134657162439259587870085026677031619689123559905587874816927772042137793823978407959105495984068425472473829223861768811101521196832648234617436442054864805890058784162839468898774393904016069106168238047024364364808545677927982378570720302057715595983929930489960350028650478652420820064814916812521674107202438796345416560045976047430179212246895268504328327753502673873562829749021280259276877558559899351168692657732279865656238178446581142007832365340015740278292629232555047301321058584119189500719643419400500194990341548378811202843571286648977921807319760568046198084365810141549749352980122726573393642354231193733897161660076492143242421651939614213956813465200848857786004916056764789018183561807059863533064454202693356113276683977930686223579866271984390993986134976400317462497284106141891153025132907102147531700877041110579031469159872020919481614196397834253699189067849727433870249064370729891188003351286480241164236398646180664802970647993724023084342089589676405087289977916229601551512384695664079115881195055976791716588273149215621445069057178311517458718230644082192812822184935750262924391669544559264441524494747324049901095282562591499629856266282264717285821075635135016867470795087652765682553477085277603554031964279522309119582032627922539344399048938038787589852168665043871539462516065024202602316068466833406622287647037802420115484157009683537559901894527420971752489521422958683999272328839984556786550200863290226147584991697298558460142324430328259081642855135003521317586448043414171921900061711636210441973087226428465697135597522873232899011100238004156477206683424152379892798181739004179996887221072933469693701313102475204122786819029322536013171466518975941128908813436855554783415747781741157288061955422543838138354252803736237292304825964686055580859838367767806665207174528620495307747600515355417920812376388110338753353694166347993206771050640227902821958793002609362157562480477975464787277892322245330221185080825598581509574814623765633194050308344523219353367370467344884457347126945743360818610157405656832497719121564219273971638519602199753966776723562933301018030578524543515370333951033307852336087039143475157957885102163401626197643008126055063686192464547964298739398796362176372739563864757479940753997797785916920540504585520464064531824459279541168230672278287091292026884456413975809384738618484213009338008039807691603950853831675094896028029936255847678844930964931296476122882095556010309810229473011347063057756759670082262917175535014004861321253685977510651205113523195057564324396293594400471163968816905754250094570701579483942436662582807964467154744558617137434379581638648414686948060808746929203474039253379142012224380210205817602567793023062740763472811003759000147179437710487596773268622210880867638493604823636388849647312264983267539513519260608593679884986283642122327117488717765523719398625974656166586294176907732942510380756975437057566243844966992906674281067901229482002115678999529213475467488707640575625657154179662758339608004908708919561136849998012093682711072403921148596523632861810187143040612644567048496287919646245151172983723512816476068901052854198514190089572089781901046561675208603050350573531254101555161632788107517494954156682953690626449630826783582148069201823308944739466137670735170162826130143118612313421882732391590371677296538435342270701012935367932932379849747752493672413952519902074168132632657576965510692433319708411901692397092907261090232569124018319827461127091312087450582274866223754293608961288102107218577145921621096514514523826676220190163833681297956787675328172983931624236200047040665518296322750976555194431742595365879332158672592934006332304797316293548863401142159906715534826609999390368321415232552206609098624649004910940220438622595224048792348923813160658105424931948139359323893013723643225687251782172042646261761451942315861076982658272261115652383293105779867677013243240739834933362352788073053403435087192752162000697589243046905236210860219883538515398886134447767254085038534631197328034918454807459589810924499264932643297619562087222986747350239998061819678399542674969009758304902782449123914811458260094255037102103949363164138013890404221340135576006565353071657019974930623046175073484103021507778589033178058011942666984475732155248477534656303887242692471684012895136894567307880758351750883291321275135447152398299778764345032071521931419182806983336535519308450230261014862237265851665653450791702485109594397297727999842978277370841631912824825131198294419291727757389885722003523557433650902803118716495978926232713468212770059834332841465434169421745313026542808511464358728465172148634186796080897195014628584378763424552251280027613230300164224451910592497975089876804695916878445144195763137339418848781956139876060652605322626477159589720740057660180658011794850792538784949697510682269200989452353081427994783180697462960348574638605428510086148703321338823826353913779489529205769221791688566995515612788122316604160062032255421905772371587835102910052471688018782306036605677106901835720710565800293272075697099770428638672873243473967652811791698364134836417015757130944647605199160533951996183856845085880616446136135406680445887573082785623923368396352131971821481710956003195877718072307178451517190653150801558295149275152913446643714270399209901461452411556158682522078274415395560043650795464577716180769284599499800498248035167434421878977526394027141162567668332623501202458907453926768969480455278643750797986713424177097578987393577427494228239964479085001593842123389125238180127384619346724446687359197884551631397643832264506387211869214580661672228325901365919135546387304310965259176238272569689212867031040602384718668847448024325888884855719485476642773181394308177954481531304671351314587344121498499524017689781103378024198033007699029752397283054739026268889093842837242435509761709883819690989116879192644184342577642982102644085895768245249688481491415337446738580963905047349980788943316621132778702178328286217696404451856039003808503019277499651258148441284052103192334996566583712315080639142543228731143577799458781075532685413722455547107425017222123546717366143479663078844077031060625787813686508904802837205680148458057682266686707704331038685901907987924395763982361366985729800533124400085676026258847623883725621757901328662435740581554227620825438197543563465325216954564104565454650077327968020613902708447144698301609084280056064868443549953986844154694178309395427852114830048565119145241883164199648458649937656781887743961429865743842266967754099005367528640667258933501869255985359437523925011171601503172931007254753580061999112664828037891581135041440756804231365617393648871957300748435613672666815435875708885781183808531302058176798718854587295425667135517286255595223113669821686199315436016500494713568465383997253862901188557803722027178514080767800452980601020497295303254680139389080959311751762222398383844958792457000111568054961346356342006432159209796308786258556930808194621101821292128600514611578915132010093106645246450249649863294024577799848826161982861962510083456180745333785519097534645218662067625757892817381775840327062977687991351153460481592276288458653248526772869196206310512596356088078819053923422242943896703793705677573677777707880322848478406266764770326752758940004924573224339110918733760858379411873193649774049856829429070756351325949227737241575114824523929538683611193172203475280527775576278940065304907395614022384977645046062040272190065136181749439523214962300705517836472515153155851084418166540783358276884972654965398744602527211912503627527458485797338346473132947289338939595431469240079195666069896627426131333128803025484661809163262646042626720421325044832044869131528392130127491026726476029815478284017898116782431724023128283339010564665262329551431424860315152522067635947775317415918271875121502857519181707712386215636004104240702642564896931047657374185060607154044242170718581323314876962695201487186331119504198836191946975108848084521785081174296156860765106093305412914020064516599159478610985401715736577544808907518754293691377066726536271267945181780659950625136155668573215011131521439808201875782258356372649431928454338162571215671012568278195984542900618917412270319566002131117069047882033653440799266872297623146547123081808076589104155658293333412686959396872986070781203710555805885908887473234330745461213795535109888737617063455498835663223645672100738606640608742730495782191572916733157297597954144650107278207272348352616991557830187459185871934038304209906408541403653300800339723607512662789428506497119798830471894351126652145953147032875785893001253817763292041947111319170102933582450784257515221503999323549813648063730711680523014118348823936530083641089304055219518264992765479384889463413638220758387095571579249682228264560302415801460068337172754500984834727735746963632435523879304350157271068268419030951521965485628497104311931052397113289290852327798589775841788437974234735089604818757437877163157977014774261425931452761009675967383249561428052325094301310677312731983395507442534564925806692374415539102654988938769190415296850121645737713353602635209145876924934714619838155391177767600479469747075245962460663219762246027416915361881805359437843516387932221513117477211899721276417437880132836241953450828284046903780108891150116513996804529944046832003358042776287277271942654935544434020964259493363008606858265188461877731177186061032502493514440177747726324004136092754834109725875039049737321070397957129615570663181395102694228536733029033705633239138926926339568029818555452449652096295328363094913538029858219509752087350412427970099129368201037318042824545893424014827532655244164875206547192978082785930498493061262236879848492867344464841841866370560165551037078253068789140109180589386385101163835046711139876763372921342656117939215084959254400423856945968081904298407703114541116785518232025712202768096865467248741934820832746741736938285992618081362382471254298742825901481152899112637447225846563091057273287071668641830436863054863101709984041415959026642332309138039657575969060599683558813458752830348747087865095595184340275949012039994980969781081088837178787822522218021108618500200544677933573366209576754463723076278362338033047092579318505237152729126351699753495111746178285398604671459990949122655217804106259511072541954554536251188541141718988875186223193616927674303677938150909181768129242674034466089502530541812766416173899059652510750601640123100677065790734682875471338793196819896398354518049073327981218266334562852277118676903751251868035052254043682127336407382081250366518903012885279090392753880287397211487895938641908208903676285543617154580694832096477427497574893201131038431775403984409289725652839527937669307615868845616203082458757404904185494371350767320486034543019175875318229024567513868975199759116221651333571206526211810117088321769337427879515219442194325092211475229820522413293198616258055396247201440041019204899417816988827961265199857717095896130557945668963011235830300438238908088229190428754137276566846670370923936949769184717718979358789322131589928077965309222624948577697762032825553505471184265753377172151346153354959939876175661796377546903013664838288371089962978340909292788800501761156260327444593814375197295434772973195041704148328645994521083665133606625014498195161296403351341131737829217069165429907981460671576189721797825529065868378214534684570729522280385194377050388021601677188988403295919065682322752534636639595807392863538587972471692150473448641467717454205370400941176501357075993270977379027351368334788057249913406926381980395126210955308616268181462112213658327779440759147446887312880613873155220534743872062914186364731262395964764139900429107377175808244637455901395657674346428983182516390774482654275473122403271541769229334098406122321311563580874321971917625012216913363378833084428765327167012603097558583521275232674504354204333935025951932450823225887027106059176788801199253507927077770774079254231962201676928949688452490511734129230084424868803803088811098261340921160666284235347538110967915925247217763307369534967048221103071783377763950918462567742260645695842739748605193871899908775093725180152535206926345191483671046009706882081732365328077605395636571009372125365915214821813528526132299182091166059818259537062689282269503653015736179454400227275879875161475480479491394092575406586011225219993453992307895805753000774023589394073774524675726402457653049514821864319876652637236521945038289151580143084682753878292645257298285457339638282996183860240201506357176833291994580423370928145616104743760880639270731142696209922504322487435875474728294601941172244817183215955855343751854787485480726742806385708881767986201944668951613536235177675089631952252203086642919337721781584442857486615558080430646927265473438911735511554508711325741651227496259814699823608417284878089914526355113629139788736562100214863255536438940261200255251764491747941351232153950508877856874595291706761430428850099393084371860138296754494314262103442705019598942510783885595012765311962112468108087201736327374863628486214828068139000627537990318639688751183583629419502867578464048688803640394379404731052572683540322267316781888083198647042128052532750599757115928608842007401204330549845595396493508890461200287830448880717234914113822024051198461493863238443825694404235451342359330306370821559183362338666780207970109232649303317240161094351920616239759742614094783839254549299371121687154950138100249906420367663943452827934725312198947856629802771742633398147510033988029690259416079902069900425000249515998339372230699504121834211980332715275990098556040449116643652874741302592919578579604358392485493469811816636585649453834760418561414831585809753231420952013984370437329807150151271578375163745879798426967036625626106619558144786846211784516356090220508407151664760696906449117022523981417167295564983626151584290268598761064653903490860235328801523223746399784413846602733595714313628645976207332279538537119644573960264198659307793526583632312543130476703523994097946438363157601645856116800606398353496987143099601201306815916343621829597942623368531561843923306850781755763228117048110613456368804086925292801134489284916447568900301107323766465727717414673192799808293703042689775337809882012610241845686826121398258393739700594485508104626134900265160226096526782125376596957043289198894638788439330733072872807032971301983370452139678216107217372464148836601885877854824005442017968097344091275173575781470388637842165041707281077517125019276697609056273650128768864054263867298879237088570294202222063096851296141798156290701729679059644224231001938755044728956326157920125226873205330943395758686552723570227632184056554945218483092299959424548541788643844295045880671508412179116672413784046676641189830841595526957374777191512356584987030123482590747823478787143284816388442630645990998136623350443468433421879126403666939034043275157621177014111778268965661570321855723205496582721743778583956512227810313268739118155164425087821605454035259374627536028675246275935020806260350627812670572635569217969426607982302663229784821122738111987465949974479538498276176208443816926010186206302753573915293649571644640132331578127566592730540782829091733431536949830344848815320493694743462847824191430891204078087457019147416716402103164745260865546598248284152374226106212351044506812175947017559153591888628172376369604752345164992324384967399254540867700708318064617190322659815249962923074863902113103201745880569240841391134767285383346242336148512863116864619190872912630336006843753545694805786145494458379005807670357551452693434694741273414353787111365384340873999791842718657078361821814010022943409766897362844973649440241799239538287919829983709330784018835015310400889242320781769116544283915383602924550436757469060384539816031902220003140220295253210922606508416014195537259105396523184530615358087146226586002116704230837718287187532508021377838560743742392441878815889978146232823620565194983901808493595905026229046561876198732679979402084065360342662064395990255494916205984198575986999187836918727651834999232571611910265352162141241559760933560397105034839112353912639032971058556936809598862044437649838026940401594970994968536016173882199316028304069756105011854653766231578765107160168351263471833416652795792578953085556038942422058611808461994012591510154274904335842970211899676010101611239173511748187193801896900030573639431178736896442999505921667438469104645584813864563029275993282408110605482985875623775205285377363463490916656509955468441060508462310194680372815008143098591754059043923513387922326556155881852189980921615856466876958442537741500197359614195557795773928143733495511641991180697250827298937039279335946673467045134787831232990204587440873004591266658556700666421407389603879967232745696137578005491286739421269459194695670469295041657671746011065661690139416254528819789577707333785558459301567655294867939756574679828945959495588391211672762361230980953168142449554265568646576156453480136411506564939414317533047898852553804771180915212013899103167466318695056525380018691677701335530079799228081735646445342741759139761999374307187764035033064500709956001411444249184178674343435341780405062344723563767975665976729079256359774018781582375657146907137198587520676840003464669552275559502469837836136598176061992165685488602395611796593681314369974609069224522629147955824307854552801876010915469477533582063609735498785585756917361070410564482002145495982530234859597788899207956330383594222722876539675448520123054278967021866157281041231311218783931794365210759691216686183206547579639466882666091131132733038528165604610379863143169655819020781712638950487579590869496079168399567630994620582480018044509969093137222397683882938484877277250502005151162264184542086094554144131251899845010721126799872919988675843548648266311302857078600671668723529798158475879522328502424423230495962876030022805030318510713334812349164133343520149278574742802521880300416457100657288334477323654503296357964792304727967086258921639447245000778972521094803082428625935831308871016806032211473907559231921959870519125517704148580249513751141447545666379578344633481368838650717265654477535149150428375232864274037991889708351060175918627841964300586510687789685945699278404133436662434920112518539545241086479526079358488166880965875048154562607189850315146305743556759868259173364449497871104352076806120809291309743545880550603139581430882649220229727849460610180576464397514878129206438799352254332907252626476997811955552599915080935318952775347564781318357745856464602502921516943980960879235516987885229947576133366895787746499003700184095416275232040974920741882470809337112823463798431673334571954089458346808465442954537743659941177722176139046172580798176317156463632396400553088099602197550439335504097507384557988539747997652412616951482738512200794011089626830819439126023239373439225841235238022093804097587155852237115005705844548971643697627768635876458883576045102016558357805701587387248982327793960004664896831814322525750138663066182672597993846625029858882881403553869307546130172156628886513089487667700270285688419921448011186247661132227723302564982821169771194285673929687312525314770016781699022654000318484192345669152164006542683272732731161210966166578430650627774503455914120240524451618833754659225507911146337326942287740092143754183961242501176505718396864598206916837034144430676138290299088148668557654891578548257055155908819430565510017921608866649888526006399601824610222609713460284552825071702040056244341925118505783800820311817760619015162167004353571694957490565614702808560250828532732764465243201133202921365378677337573849812856072316718491707201288676201689502481888054891514424826190383996469038073614578956021474019137830482661457314594708765330919800457759823710269018191694324584607063474509969803075793859065231448700205888120846418252384321885586223482258925086036111412258796411885664766176167901337474232399164175703250161287145808897552251750101473696260550918945551819655175577717846134347393760448830551073987529428683810637537453217942370038238798406932645561938970224341669877207984155247282699706581634706804890726968444125800263915765717254663686295880482124848923219845880215930463775802276142916923650089011043530104573930818618582363538524680141286023510385090393810142248036206520181495176489609162677822747063119106481224079892514095370240772635716351500388461664509590460526146949368215492234667653594188285973261018340670887189743792689148840773176702602678901589390985876805944267679958474786640608477353867297997386602359541165698698161377986167505286241191503137778876172182797462783026427999486636534346999635196576023803735285841640058119748219781100038604776721177703466678399578842733426678477432772361139528944603166927241691082010827683796873505466729817197610453554263779552124070529789693285692723683324204898795184929056087784657125511190413727051533318166267426156591257490578263027032693224057866506694105914279808386008172907854254447025523004778542345427016456333875470392558652706180820676343979891230744914788977675427329506449729940096574567782541050566129273679633821647026459032095553670322636070474217345519927851799860678622702790978583959058819277326068207809756162191852549366291398960369336652535631463768025179629129999635178831041329785979658300726092231842717642537881312559428380280345002095099525052193533557337499095826874134841216975958315570403027965562328479888791663314485223889303215501492046628103719664558674471456559244417527842710257847343322633639975159169819875209030167825717965132473147358722095743186447967078499772568160833001524979382405928420706858390420590899992127653035979879958069070047557951768750874862872698152847029661864211410165317147850664927991813973350819741124583725715481319885570369314105327788829004333773741354892021878753408289119224134158969703764300672548510423241220697722004399943692247223463192641167959176164433396118051047885502799326655474221529843396726216608606691788854015549020536602299120426253171860415170730303096800710809678388723996056358557743877472998965895303697094181947825119005399781803589512825080808611100813075582790177242792957969776434457621848658353255342359734939552400274025900194677787375204454599765346033370002694535280889822864860775931331795255753800710726843692003395063243312435204694008128434341672215406584004307811635937327770826157989569929946098282986821039082455696837699194730830456614673453628120699230721761383839567840991357481898621696213757604337171536794336248905144980957471588430230561222627013921336286303337236885202721210040258383346348209527353117929288443628953079795796883801236629658676290322815316623602759198902483416553385947403195757076733278211962748562739985275234394040418055063005205241758375551479454362932214393011114901510300023584839350426558450609841305959061673181198337259440221786580884071224255525393835860593859280889300970218092246071294502266346096823635222295302598700941463201546352443124497817872912704159699961704277181163695488326931758130049561590145147510590218466893562277695668061655331053534995893139741534068405104907365668016998151376120660346470685672064094142715308937709651111292666097616834923790188185451010130570123058997997446584861968745692707386258854549874229374450095242371086545060058518037778930058950498457448995331455607039196526109232781968795129728513481089263099193258272241134296481401923353013312600143029389338103871761680002205965959093186741653390451139241918085387657271059902230273683376780947980399295290726490395864293859985409427339281614851035665972527687424193661166245537902701368068103116968415724127301919383522796331523841065860323307569430309697727648262907027456677619500651776343342348463134413860884514980683256618966317221637075861571963051633865428019523350455997881925685377691753978505409959066002083460809834870281541731341373123222897200993856317116204374516927557874166773971197191581030037670071832160741834631836333143608195070616446548343795504111484418882270468883346625266376720867064344542296652072132618312572591402656942000316450263824038184487190160098013353993667498067851376702283632894302416061106368620815198112296636437421679760286733709310841556271360243811218902167905915789614549385964617533751893991127695627182470003969532644646495076160468311591004765133612954286195731488839287847519680764841711492824829988462052547105456428730417300752785141983043624222788718049475527630855480521703592493119165209520098555992432252061123388916771395739194463413115557533713792706734751188957805053609089552681381173934794781333212260603034979288672092593767122918207398355234239899967076245577956272093257943623807579051484332750873201899216996202209634447263536665298602302840955554295724145721705486735451801579156215235358832386481142828344667326553090523544266068849332201743823821240742594263374884186089212438205887488878790136651335953255217559467078460777185539645609330523450597923911185022637438844543196675822808887443664137334426816095003152910811488504691500952353513202822224258921627376754895637584327016162565037388603796118369715040792208157931403070217670006369849205065620283215792003808481268924111249456174240988346901490072759183942695956527030800044040668335990848522326800557341732374674233235584414349682311172734546106434813409474126635298274484289279321900152463711588472387606930791353359456544235266469419603402075980402467425777949799081663740210825408204760849173700172645296558389669282610191585190674431054770702036684128678160923048638085992238722178425355113598487661938335158134459016179510826452549331850379326405636107677373828473633723282799936679098361317020947933690886202475402338291224724332068126311125795989793165978115642981053232760930200941026761466247314984825919963802117236143634722627507319647910477832381490928318082919281849706868292735372463501061942066405661885119702721595897722182844046999220490062160244807410998276148220967340988818714360736537082200620851850970719867935957684378742307052136383126730217689235258389466036808706000704364398255339300368533365212528487545239001621673145616326477191104299821776529900653943045487069956571771991451868522061683373889192991071115835556537163472652788041211083423806710523021303936192010594470181465791538834560147074847152215500961865377509053637806933449685305124219914413911226259680835046310667158059220597918194746421168470137613257450739574892224175775160253556091539440852817614043175485790748244646213449955277000411981858236172677636182767770254647297041662059467566692728124450611110440903057195204154873626037649811788262344871499179652675710158210055362661975210635295104414247909878862350342940044055127602680870998516043910346756514414457501859649776405014717202700933250361919302311439023068904510023281536086709543493428855178934724370945225785692042905312718948478651631785203753940638792299086761205996981728374442526579757558473751945497153943161417859492641044513748492381287775919123186699402317341425177370204996617285547504865534139877889787991302913241879709875633272259462181373396032455819632068675027514615879816864690429175391929077932907912586759483810249109209541908260498163422576867365115028108713348550013041865743617100587739570105770523327391564909498370879103525294281516964187689674393411526609940756837011193111367623650691230634980365413820293959069762778330018885317850740276249544573807932513367794499009788130563340414836336953467907084621676664351859071493343231904377860797638896029407621141120595536816923316583066203383133913088167539091410506890301606687964639052858323895219878520608566198999929227690506702656102827356384581929748233885100943789529861317524308355884785402429924761796044778421007378945130341180848506533465643418592934793076491225154872370650376044152782421726231144691507939002042200632676585091905100839236924231241555800309471732688744841039209021503201169964954931209802261500244674960938990214572837532396122697710458281349368049720108993154358906737888544682127973772603832161284107618160716219200649735839576965997668875209182126311025026906128223772985676000111505541744468557211914421216435544987501468845570183402561002565245182838348463160276856066244369611021071376441459838520420734362447072277896922883536892847586254163028837863678665281260002286660789843479226140170346773144126798415864349961804129894177936136830073291028227648450581036653976084652102825852984406492504281614503288104763600018005127274280398351462113792868580623778880749411587841775519772127573179369593468099089020743441871295395009275883231342735218686143562778622557589270337734832041294695889978740621893655946615791109502951795339503962516250225543479929012195408119910195769890601283575151753534221115051350409706853021808617873356704155711404642559091605390707714319164753195975016020887870446730875411587699210188662222775805157309842606800930781911775380191432831460985881753552037893077462236520776208539667051473803713800507546755009343096106690133134416642024983168417133066817874075921529604776883382113141886360037116484115275237066760288857746587529899664857043592251729516297248318253923301061368950416853739580342602616454450281685860832574186969536468126066229536962304500432291308626135229343858164739181812641853854495483743939821647294299297033723527076972217424406160944981909602216038354448725220610713413816456289489493486941074206865440580277720100465735596036372529604174908457500848698300636832487533309454243073549811385915969563783178012955873778384350352666781130474742529987826543127016301028742625772616970356696367858016043799889719583419447370533748737240662291797218300824504050565301473043570857236718292447081008935377061652989195115001182925611113628991737568913773019488815159267326546231246723201011055892547638151130917401612730942467126611815688141045359674415888718678059520948818242784891637238330739002565516482692580412623625023823848473716872380028105451709552519522297173825860102917166152396014738334411160122746554811119173466871313751174081280150828444569738794224470053684214381296615779120701475306617335619959632898031529989808976416063551217067212475632896452001055943521828301422297335618326548520329141246973303455297084005219948194869723888412197429460857662284557771819165347279832092300967283915731748892942487646683400646641401345730978473149836260583417900477911313691639295764552721979978804093245280455495515188500012760633462741605713880028333754962467536537852716603223687787562164681009787200291078160590978769583050339451230292886276104077417715289968394742139400135321521478150444005205825009404741716542944340431194049327330700085548720998610290000891844177031367565461245292151679759003926610585598181317201304720775140849930061225496898613409511201473130564635598301862486677689007365748893278364121804646593768386692895084314765118851991259055269586455990651733319906952085050951368086778431556257519278566153885425212011597366681620257588041473749077949212772139891689685637073454834705685746075461432428523196972298436616946183084497467872866295360999544412522194956864083723368624048169936889111637776120136973868133686030048389915182856372613299524300203088054696737911659067446454912604929200851677051746811033338203762558622261854911028416366049242731332318978338143561989467899871142002470565973514713543237462984193212649129672393761988770822762814590293545637467139170280457602625471417362518328206994078827639556414003609020417201899705338239682912661684673784811927368922025745298554477020261184989356014176299815935981158957726031396417659053504892930743471352981703682332431999475498597504121059820278556590816457057043619001784457087352726425826568374621558098366001035449394996174824040484656601006641185983677377034275120311088649479906078498148348976893990400711679444989333736610017848217544269513845967157158454957131598615590098539953130714207788727435067377226504947256724292211508593306989549942643425510213788922718157731057165511986508662872986524829982976938917003611285246211608970782885288272123936670591147694907591221613570390935480912107479125469634951592424548321834242540644115667251623016098100111483235976603077991384192815856798093221084858060029829017161835269192589947107312882984801448238238730152877847149865376783218122642573487851199390094263542032453770733764157645330428698885032599530122435098683591409686060758981504156704819753060154382826355397447705915316826954037534081572812112115739014120052922518570519949122270290299889225092641800504798292278779917175742998900021955797538508602573206307517906602989338967595967017895927083680141199364416596239741687220807210717042700055885720525107612080261057359485140271849242639229760646870499241031982532455753528887835151628503812209728126497583143801840054085640015416123615149467917551642434523443977368003734899289255521903082360061954681488122655034770560497737531185661889091061846271185335763914112894050701049209003290907776566283160468860057460352796031387602445609665152304591911986076721112063045756237740523219123715549360284535515360433863025782381403639217263892601253054239763281905811215540033417503487055047245194872693735849404367733351207477349716017032508998384279957670575631272666505158687268473836695516237256275345698431799377054278342291555503776011837111140426522540866385817533564319678289348436129164450999197435639070094666685909076744437940502431875548012870495057432488726992067974233624285109365707105226407837859776581477561476362722128001120290682221741534239013104371295192370514320558132559165833723463221124437711171813299102788193610286509185991646126986027655880548557408161603876722489445445493782847627438071280677010694940072792049086447085669858840938679677833812450921180357360248323846586479117916860635099188704339486648111758106575920664399248456956136268317276173032689654889169890653677066113030508208133536677337333582972486451671707574848616045880313137328401380176464743803941134586767587835406976682455149162728761071366925490235701669368998482899224185889557983070509795320620565577708355331829233478844469098204279383892724700484472268583720584573442463424031953146269227641453072026934724090615828114327756925144472850056954487352062424578784450373566959760084521861028455562577036220642223619060576261418774515694351813551014714287483602683164182132488715442034924121474929032327803480600145749079314676103479069957830291536793720943205010489665466218435555611907847111896293743527502556717537767993471016938124432766000087924445991669986474898526552488752418600480826208581375697914262334135555791099143288511920650703284758656358487437030902579178257463445657461151344698374946579801700449313488164894372457330838189898549296202155437271208400214942673897820952191013986698512628773070870571628163263834135551472019640145333077589936607544259081170275010331230681927665927484606916205867183705967195289300193587988933366215766270543403592274213356014688815681501685726841089315015606700595819367786399919472383331110385914438639570208479170143491586127727759802656786711873259207130377628719446447709829699144153850561927000587762377224775501670006255157638074937267339219364886411150338680861361401685985773897215442445555640085479220245515670828288119272847484585777192756005574669713666485527831000474203271764322755398253633329550880979645627858639660337442592379637647417306290382929771863467280136593406098115077221673502393736163956721425096692677432709942305468708232855051483365043511727801179812832192207502981636216690671017258474825920680859735175038291280111422286521223613610818533617177720927034063323220217434568647953751718690762507569098134391647971232541028016908345949722172627943446750927612537097667592871939570289111136384347135902166032629252035330349651495006836597759008393540201510248424479246000879780858466430141712067047686869730560801271077857202868986280337525033819866087445091361816083568127287012647176014622341891286150377627476355675040552588313455903034383067124019589688462495647663699525809167693143068819219798816915874499513234238854978735735689005623687821138324391726824884335075133596694552523078376098709497516639680956955346763933049358826416309998366426151196061653665459102781182040450610630206057428365750521249825916116036922526422558946934149319855711892457415545573184910300254171178615387356212276787980839044508143938628299029593202236611370922347100601664205148247657123459064768552285609479297299285688896591535679099444768766045736770273401335033207417409537897696957487269776246082585280389499982897264047682112606160841407305009855260436503301630897333584757866437810319907641211608524191863272318333446561945802512584336011701608953651610804751944515933440400733766367663529230129501091748580628550229779789581111352863838978202800123053023150334358435987851954237660801754213356789590999041562024986496950953392736300741008569148421732716119657251002102314455829284275106593050989764002753817952157826658673125538790992504175529939116230905999321109519800403137115097633159675136949821308483535330772284990696448295419742259907852158972993319236297581033959019740891578036311404721615072421798685010852453718540337861798474601577159475581413557493351877609039739123775888912278733162688018032725299661528453529558237210920805312266085551891448402143673024834452645463208448452439730193882664958496664029487405125460438370520210746896805004733070355955723317669344360604377813711622479761217115664913245019195256489618640778187364323648739624777879521025576032909220094041979477070262044289652195081314336166717568410277892966687521067344978876976951531433892392127677186444206093413968586155153828979576831604538871584804684367798267264099000870888070600003567229587195969845847573937042367009916022544743744993127538480900567876520432640509005407228940707189148948193429181476032876830413112756535063906201539332904883707593367665959142049991953590828117273255522980866721246561900005628926629062179373366053235068558914366161148578627988206426217773220723864030060471873261594295393589711045077840355564924630662180369705902816142313928677660900149120307985539314892714733936456535848715647771266678620710783143958484443596485471573100005142403396962628773880481721717683740675452700559399111387725417832772391317562476904709260775488831788059090789312077420068463338589594880733952166475984030813407690634415315299643363725071561280578573576388942130537414246184396637279905699947348211186744174785483958735896219658386844107449026976790468419189249121579333764617652768442742254919712756321937615280956406235655872744886694935625095292669791858452027684004750607985091196865286136175930810258120192507544304797069167853060746397094279540800771911541915458070441900488764437840522170670159270502932510287355048686128605790502442899495876650648242028320418100462954239178914941192222588363761987735039933674959170956629931378563515032519798526086104356034080109952267067346702999516360327822976166286933892918199206390741662994136206752149461717142448914980102838767467823175352219060183739805931233018600806315672104605376287467777694140477338904991046772765352968648637571876391836337327033316837196518073473387513295672673187202511966044519451602141891434932304697007683746160150695697066389215009895546632349388376420986136213818203429202352381495097659980391416037950618968909131202686301945914069267488139661576684028247628375654800317277709088908168542143903824362277615852772726717035747950157986199173542933875464751127008224752739213741469909801444591306198980049382025001946350772942930942304035334854194281192393921115415533361874748725586160211585262538165041185703705937912583951967617082509659975679828282229845508859847019252740318750629644251760930197116483419835014009066933582027777156023286924287951511648736453562389342600473215928845164507198162378131520928635113250726950409441378121566057670543739819676589175637845122250443300430979418773810902859517581937262463895492665973673992843258620307923381790161514837005602513768519338025150332685364955992041904113114685473604924611359990289187642969650379555617235973379268752466343981205784379356876553095409477763445999454059958671888636547001807982116231052706060559740192090820309281837064403850473514173586663009119884098407133127412845868138441600908933592319573120025467183398725519326476611479280334092795556044884756770135704685486838365625118247106042100406549200639657002154169706497863163916435632119961926376839072943936135935745088995799743541012342193203070748893755051382977278610210837138799561308211803316459719441431860332219934940284826990988714015288237303308340652851497780116656558504204324650483795085067306979074812404736169489299345448401507792831868312880513239116815681400719995672517702245820524923137309973552154356169078557389097837282193112739474733806430451352915598521798795270898617640727126684802601396220400765646499377026880792017064959197424699978575090802480169859237067390287096347092654139438411558147569086415739771949938468180300795453702651329728718227608115231575883298008897758476921759505396192238231128525309069889299660485592812629209864022108790441280516249082177330880746241726658986467429692060953958178663113179582876335622905459168396922449936389590231653669216593822600508131622835858828253690621855728795101959532179900881688506471901772270257441872550084943871897636131722021130438960103424869035248369898063403528228317747657872150682438467687907278177359516826659961922535534590021902673678479460490792802638243194946783596022661908978311496184161750431801108782841244726202472863667264855989137273967799927454171376143228109627613441036134610847336865868478032507306561216126231550477541091806058640198533403934841340127901341724589794105550181916998702512269451529683914009507415345849767161428515968542335612375486763952318828435838334767340356029751167081110881526055293417850977031756221585104614435056503897149388241812094646142568325585556021684175439088854423637286618647034983292930610567589983901488306633980884101535958521433808625033333993224008594919139010467041091651194649528899340924091348954591904843483160397606848614971489870350062484362941524308378246425328727474263949468496760820202937862373130263796918899422827105534926486775323480909966266960566480618745592285029211898465913755942572692960260150318915731445494486771921723672706989702572549574963551991559879703482624229965775662051834517788045688837301062645327696268229077426543468158143716802608016707817360370667816927250024075320584662161770166850816000760395524899803696400684360974170410423761494498977431353965064989949710280820635769386292134750474339478748933493132961126856317439535260453716864027290253186756306788356238672886840887157072445129949870538850903129958925288825123072724595711030137935050081999430453762262432314867677214024738468665193461072184996280172738308461464400034936547089080038333079619727954770367808688499182206904454728153443472883933024186912453061674330937598787617792828782566908663646706708046838310273866870665684264836289784894253903823062596905734413155559149661248825347617854320703041055822008479799865572165141337865119450933887075577235932071508397219377253200446659498026740323098346548920298291570048779768083483636768870036096943191011723771890423581876925775133637758247156360072278717883736647346282148482674197346872248144655515942173252938882642407377571589857147045154092637400087731690852251259020598727381187979828074640007512887693296468922996094539763751546751626874130645859094430182087121069523303565224450580783013559032051647073794620564130122974638545957572882582268779842861628823527440511411545390224940020309369099910595632445445614111196349595388237879439565050692296152892296278478658580063039712072334177143221913052643875359897573853388417729200219236114981333967047873834344035407408122202928636790798417155286601746805035045561431083823332163857810943415450763406840691172879978318588778765517108588080588381617181252908156738523934188812791652890689399948761056215301784694598595536303324117435716446502914218416414655415516482985280166072576381552706068803963110826312508082831431386839138832776029560755627255787564701062907235493345839166797137287035810250088181675725293034656576722712439474826827908162179868835043575089263780755994063506213208147819491348109370491036268616344082305543086044802505101275438869053731770498758709107619509809370587926753092019855120919185372954703198573550591116546254416466748267980447375101449774836806019447477515342942301162357074896208219305249008941164588860285791435991351224504908439981785391190655751607410753331771199278779023212539207371709134742273608353121129832549218873034999494990311541548308427156445594673917679440161752070795304998433780095114766860049915570520320869343356231356255439618726383636744210989461573760001469878030785763339596509525301481800972956349086301847303888873919928930621344853018197399917828080448119505936956449546954217208308881112469849158989094414419180668169768316831082058853634678214797236045254373841293851232451058198187074558570893324440381914416178747204785239005861316988751731936433429588183420525619814934710818116327888577329485836745123286302997933040106275123606738700110914960888475778114714499160810893645187434569439205203447786834672539530762299282910966004194242944832985818061361022133553775796380377537749281438245334307350857633857828272811648750807989147681150505995292937893356629058616380837760838024419986358160097022384760005213025103449186924639663719954177334806568488228391250595295001727971972769274232423963603537387995903280562115497846934859209318806309981358669591718066433187232202563694249653348284580924197205921694209439455717974137179147320637210670600923925922137440490955345999868593009169618799003221175028182032995312705722964768935831352314472740475194139649275825786952134964967944751055232108791368422461008917556059625619564646076926330750758420154286145619015518106312577231340504840878447312059803985757073094367052922927605055411618065055946386581051618666615191627473141014561512611017363879652538009245318515904098299985128422619193217924503844563921241180220363570268453360334549574102965051796945164209015739641962336998663809510773839558862367133482644895894715531951444061181500048774966127837940878854141904542766154990041223195518994805122151183831163184098555486368653673189551662296993728334358899153789455031825053188519481264538057261022348603092126908251017100789111160694536322715359983250063173526952361686946945921347442117504477700607625064472303677436384424116288702714520065749243622905500336361507186080476405803561607841370128228720379451472986921466260912228597347372886157555879460506026839187927512527576336761369821542494864465820186824314064488671313584912396990878402978177769921133958252478198463943385423305610947858787574229940742336980812652508916241835089009238249421437986074197798555785350074621345752789104230768844391154731197875564027391754173680043337687018764219889195584498040642268306142128260277776478183738899538935973964356749509121543708816547410871026096978894393859132548832233119779498744066217195294893491274216609288163910905443632052995237946038588613845034288350219423147556205621196758779881092291843696601879561777057933925828487058578661751673808385730556693001011025230302076612278508092806981882725915598480972812176374986983826253566350698078560736602704883362887810108825739602930780596461789536592028943217148333337881308365452496909817584472844632885049331750390150123959606423879995913732123873381615900454735950214626991220231379241865799185118022587839040272622484933838972619463066485011109675352282873994179041674547293559389608785443456777206209543407924765828836193783757288868185102540051961468996199632465460389733315383949015035789691162318580890844271564231029622138331796496247453367853508361354384186556519097266403805202356845147705266408781238652168919436774332051540538358401055374846828955783138664791356820036698258703247224909223178416396575594245004466918175332288359466366230344629334902128229573950262369975079418797572060668440573715603193204087598752794117552453955457882825672198208762928894129458350942188244254566262111120595221105455861286532545628799792274948198775513648877537269514207543862359143826889973292584980821323474935996868060215601567158201029626762643171602450618852766755602955874541249419834020335259029834074792814805374642936100607835854158304521867491518613681201308113244081230163076476642744866556700198659895520988800573937647423731137501259848829379062444268556261977934392469014620238431377497826139762479505214052474500589890496572456791963092686610002134106332894960782843619679255237359812756137633713722730299954039871465524790627618479333277629132936944401546807139825193922170615899672144981487087582630020811066273413791822065669884302591282151277923987525530396293480338165848627142977440461940931660907947997640885103410912709115508314322314337150363007144807944382283973177751187474553685961718039121806854142220592640302636250136094840093299378616242809687620789876227009954676940327954481184222602558309688245538543145961467549837819931043893992833920839742473761823396184481688971419604479218217061534079920807172502594140249404458255278974065282731147966569102422253277162757345664600181537965338656868958642497503384382583988010513870307499770097903450509822237221241212403609862466658726203702603932089175299016220866250866498344816131528851504895121125089470979906317276131473380538244800502841410056869864290576105931119456704854781617074833672635407022647519318082308329459277327665618474789615962006122069519667116680778595464784836440780577807839356878524358203021251010997842139851922211680560703125244735140618342619343269090085492885175792220710232438589496986413809109207946884984366435874181091383335771396847130504455823023768213605954422166504315598264132987970821304041037506201999906187653073117990454208662970291446298374350106208912270738644811200603072256941642744941054918023678651240060084354925775751438914720948475432958064740942118516357175641404121522782273392603474932741973290804110637157442989783988465380377149067296197150623034600745414836822097907600335433056720188580955404396384579531536158503686452880529629330210957772814439527084906622967947897799506067329272123124100156212210081730122097109999147055542195722644943057950576248845865492645673580192317210883084243731589080778127177288909017728901151315381488783194594019813291779606512467819989133613344751134373661767653474486990052793765593718519032454697381671127043867242212696159619804146255390599491068839808098245061749197730494273201658173114085384552053408231664339226758695184737529299371496347098166001197335210159435334193067918946102730995949422368188540467999273178735862416042357446679470992621424130882495614689462481586627278780957012797152165287462687874213076864123143416440227773813133643838706878476384185813078625625962544596589591422904771014961124881189324355335419721884505493093936847572415206735645923158479084971648873492930899137172960104650864981866278753312012553871608154488852940437613304378166491831086541341640502299721776081654640102359797621403081262323455426970720407697031233190087212882343065585221760961447536572411323033000443794518217654215379563111873946140454537418662557258180601118543092823748640871576936255064484567625544406126479885844658053772955437088524282071698885488624106621274507516111216599242887084799896232025092933509415980217802692583057704676892296804491395181476817938862131243389234879084865706401686445515144882589664233455059630326116493053056102905383425123688223970561778701187178431724316445259071379123564699040510886814010523463771693844266565918197457659151030097816090527877633194248826702963786500251546155951298699477658057961725447088928334478097033561639884840500197477221262365239238989290028884122279681770101654147682372895021107877123313607802517250883960655205980491755905105134919875186403794295261753441106229738920746704896564673585192518770765423470526686418151734020053193907460050608730607471157588062467934971270714793731948851990989389435924428336053827941122092641728458125055374283690923310315440068661133456501461599743620058171851220081463436123645280946960070746051295630144467620289457080030430151964131346863648987648429506337636536719998614641377969644541520803856519724615230910859672065349250050709793706129539312279228920945764385388325127161702570109151076109512772287235806103721896958047057759599644226776518198605577425733775584078533704986714779170512451417774595809234614404645236940045464295932186575170845778940882385216895829824260085978782438285585382112564156597006375005006064967223058902694672188457103544427076676544674754850683705500768636464097323517333201773345915485590540306033832427332064759601342678031592012383004061949758450362098002598179107822863550869266380050553905387922295083460928521430956892621352189288204227615507603911659805036385974521280409884547498175522457063504899056632747138442177008222461548048767726468408529350403155446567970944191023915004419172554018901358615618716772977963401576506812117429907132477806479327958444751383330940550167753239347740460243560990066652335956758283166428558434798642753079846291129221826338457645414266662406004429556950289261084513535972592616119039015870037277326882702087051471879086051265652764364746314143350401665374753117352521997953116584574482535050893686896191134607132987111971558714379217772809096846166004080150781229497034278813799155399063127607817100209946343664033115590848327193340083507386126102131637578730988458593554199891952737928230807382883029897494801206332077750459009414903760215546862181584542966759306846363038310055507104618828838520441459932600822485124898743108620862071568624808300131325942666094011341100044156109813963902192241813145678010590131760962822947127903904540277394985208753192385643564566676201281805019157515240351993939983867924719270523256319375726889370135522729207531840376384447758875126746372214247668485369089187769706494358550153533735176960522024579833227375964645549098572504454369192763309993727398235916607153787250307415653406546934413557599747015930001906930745278538193071655673649770502257330162434878944195103945508254507215000681722656702483443948986165265820282099487974264247698641066421785062325583283266089407823000313377293317079800209828194690351524614633642014033025687728385439204938314033138395211602074256625624201711698485873685740341971811691711982156364942874138919108565292249636341877205139926462137663624772126751208892958021223311684397093802588312614269475757836260657218589096182595937178430183729985116794653262065910656312220007160261604213479687317140464778740180078409699114371097636281016236162474683433653886673731856938747005065947242983114402479599265819957718245371891326661560043433764378327668676416889654949495506321493552335605632519235969670015168052641476090966522181119059854634377676813845833502618054509402373666197194799919210004538960352505589887612896184268927933038651936159348910307356132214238197497196515110549062969502271542958645671793721808538838436700467337861265971369582824702155299280609931164760418582372998762645431059699306358945588208236788384109387416620938247582240557401668103089434039615372524935085856779929828065772406169069516253621810657694640495829850821038347166104462117695534650073571544563628610597602908247794493903692810546329139246390961174003912330593970744941466056201161096492987055604104616734944752440920194033400482228456771869007581123023857505012813230842497357394702525543176113654579791952019338916222825713970228938964257608887084418732970876018807744909792644981647333734231077397805196144376854541188864140946685806730450729331196537733917670435101831927312861636457841647536601550344086252988082429597102449411461885834066156025325917802772115895837936991680462892289138360869516706532351791197106850990592547344025655883266493502736068331252291290000401097917052762676032440584691900589385262620201734056853361120000027096526456879207468624042169729096185556764448858227795331759174739441594423897305220717022767334863044491532153086540657492120340762896852708998856060071636217491399506847846260888894161295862724755426226574905892075847538190769711597419746940399196489375689806522989674885392056648388722679128266143594061638032287386844635011630585734975741048238012749741027988778948285026012029287488798179170871489695864094278912671404156794456311111166681755850097332927242390321852829515498898620625745423303724039316457482286389699313092173041088562771414616295630721586319499102503482155311094775030844666376001821601261695097316348825307608215710348701158826637388583711997645363102453875205301547735591209873863215529305937505010662530636433617493362678503014365791649943344162016554885109803780715214275329278007701887780003852356040642100620070017622562552141622589262665190373149709353814993343069117268386918122518929182150979852693765905733212017100121344448897557721044479751356113861878971873707293316107250536929629599125804011209522399168627387756506924735757612701727992977895286762490771493462416719052863822714006368458016173873913010309773402920431745839928565839409356415788656374228989695142193082369277565164822655000578418733441837732874897190268939091056205553095507816967292103810977695772313132530207411959067861459537179566041602413302782904768995699421878077646909158792890261294935911496968338222213650654047493237043505297059109195200094648393200388522469514952521706967969606405660838169505106767532507959425860239894045774733840298190162885385288088235141176762772596518072608977967091799314942713115359321238324733380435541489916525375651991371126023320538939443560588236687197934066819793187493707115230136613736890474320216350648014158375717555374024939324835263162659235955256610769900062205240376884455169976599068044887529213225146064755490205901275850104047961558778280598095125503883301137006272733499743683349932096359743093330008564016897685123855397212789023375781093008405769908965987057009871891017594841057324867676416186490189648087863722974027390397036080518335766968874385159774312975060126400147467443123909510763579588440891181871175982810833869490047482217322234405191239580396674223328881443991061976623696942327205918998444716316787229872879104268614618487342615455568806231506273486099056432949035745358599241723707392594056975897090339455293393696119481752557002537711999016540185465222605352620910182806701787014749336083273647045047475957714075321577984187816816571298927345791752466570337295139501020531904689847675829705865267631822687542061627427756395233835019195212160315293453811280828161723241968673837186851011608928253406997364798839151987018962075572420781438272059992742522431135214194429813776864107090174299779740183330452467410882269126827214465368539570447306662216005563900247759654814933485816926800531387931717739321264820641675176863497374982568290987545681784048759963182487894845627886213810591109376086737082339910067027045484390729318329514238806165404438874226862599382321444124913607241203916167547353461101942960535492729728559117495069844249942986896399973069307096755319946781614560516724603529681564541156358544507979479103264630434023015474905667635617231998417032346430879371193630756432607290164149006030519988258042961414583742291919306235216244404699016452073872402719957093485593271301741229868434071424121121488408421550203025231236959800150278531190010303896348585381143590563207536439207224748929523740565450659249220120258397712964485530772546280163738530048802948552273284599839474458234291548284592743702153073111005570695253763691800118255440686261781575482371933082011452602834758064424316145917051909131067193670657817397626408442132690860621627928907567593313435582898993795531037643310742646853423148871099873976950689551872827022470340143386292408638865179482506193307843425833900837078252336400335963584243273001786668003669785152114693945494522837697218064560197115286588534152068962277324717204858716296470814554555185451297315893368502762755933143462087788641679504921178522316825998848549684466374207674911836628646400565453344693139435041011520585567173563532418196059199564512518639225374501404175490257944572163292313707623355288437564043262068275121672378926746669146385500433120339263289362180443679821089878147733590739350737938297049027216904721437527752638510419954279243965685748254608727621480947881856395342675306663087028090805800991871778563709857826788998760132404394837532493239139245941453615587583965734106718080054956950408985501654263579496977955968229312423434930012451573830652152251329789089525677275280892945282481996546016622049949310171962449248916473301672938281373739306427916634314193986540882597367474972556913736582415195504002474801208443724656755818446728017552222439483496057480888709536397642751238430445624178960299676345977263156487292346672346720485582592719138527068553548434363291818662723325424753420894801805230360645883462425390768425222191907995689870394808448727068128571462882850288666340282970175200553778469761671467324884730221485246448569945910716894508671222708386010563122083545261170643889460360779232877043963425759514249976197920982008193120116767894153357314374666015992193817991257158587869594483709985949959629267318801967942697901092703108424145997045167250359368640532863890794391215732083583887549491289790183003257515088771590941526976789911522218050850212902339010135725139900898606374176938199195617789876164335878156580489475730551197463371743493443779978701525639249400772370788267669210797093556826522358831401991697285341619786045572317347381878873187118403193714425946611480909790952484754479030606040762822673009886170145140856700858811774653702133202950441328124819382870581005017205396618979527138974304537911093527049300158733678830707954577689100212825063783209733428820667966837423190530219692648455676949918376986689796910876847609941272373610277108195179775158952118921075688188760592638764852217799518653791986043877976848420554889695648002356311092935794171471772411769859239298651221008849310320165161957847658071607791299035788428536690092581953555406988565271109065081619268800992403369623064618598097559481897066817579251691237862217259787708276068388825153598494187616578124867568098223285799218668891764696657004921339071116991598767956069409122192882662872351873802694434150474375859525731486252537649754767990162326052332415164193950713296317347184114936221319523272312773145248517007609835332190318511463430823615523529441945427747426941162258176915004466625722775050639786475010281785904069037340741567233632907113248749472420284155730897440081007471094068039349731025788271989045422553472680849379445158065399478564282116345891415946136627908420085004402049764327310466706312536304389777535085196926877337168334723521455513592153786286569975070982571896905673251569238284730549329423535118862195634689859713227415624140964319260896125113516232523220215433293704464100352660545823048769874874815735440396298066118707965695850855352464292994813337523764730089278526264403192174926561754179310606250325849290803198681695433632996929870950697746305249213498874852583914504946297824076540657881389474854366199037175257635067469381497940646824755931763446016953453163384959922388693001871597658444506378892876015091949995018519013755004459430899409312279906375355907028857564942546925944565506189498484532729095977069047452215561555811558554073607915097420014607154286276388815065939474832766810238867986192504147585308219305759738763010394418363982266760332229302903289583776271969440088374040911536808067030313220279206740190800798475489262597619009967392704511076934739766361108114712869379670832532100533902527792729718169934742812213699877494232877052779221765916366247979353795109921908452142732742382084947514920356331331232620496107656357366384596376465023980822125263351639123905454367937175813028435240989996159450217519222534551531878617135369524282796102397262304093979959857798989853370643649242147309139393503403219223216752803432148680926902280615453342569230001047591143355033529079757265187180908171879824145613353903397064763646910600584061296784077625575420800338497847884815211347119042218131630766098796431084328288659714251452373353901654029734535834821886559216230436620577143365411711492600130594828739875006358749437370903407936980557400918379757474978670523736489633999743707472594593292409916558444732391516094476626587925724541177166044895269713443667867789049936330976078851718522288356856532945559200367812320968905967260440583349207152830819264692445452657157039205382219154490778674744237097731015089585193399030848869617944322678472893749258443642580307958262576196461712740556232064568909309863275578653630921135841265917879918607140811719470485639590396460316177354802677941886479266041003436704929349059174751165044081482011177450355495629319734046644409964568054616667496522325263316609735563326820952322846006118874222220881082032516709451324063712709520899181234885892318997792652861258745612702956460199488590301501366226711133721674492796698801315331713497557492769231165433780669476458790671874234901790148215918727758379683646145985839807863763188639133914949741585105342236254097081655409625417162601115159005842788734115286671783133141015560880427317266468021178316371512438753768926501657741990542303618388031733421944781803800539457349318141281134111295203135920575884577284265368630027061052055661684817863657325857830403180566864426110082892477290476963401250413147066131905040200071825600082796427725541451946541471657346639628325630140660538274091712042600724557596188764986615403414293077603726653399153019621094991237365881406100123127392396857077443023073200643771045010797903361484057797955845614425012842360035824334535494816002297411588919770871149616699719713000074173997380249033464086781280963882077060994632960140117287280919884596540440497902484835321110746260380632787390056847103702411975619444325482087097370841845473122536162163487782013838232675368095913234371067676190183737691406438975045063262504841820771238322956232956500500839421694724138778494113163384981814657303037375873049712290606049870591053830818031215567954702588011268309950043738820777525095793960179037889760599461021372732193309545236469987803654024707870549677159286555144884709291223387432146509519805532999546432498177154534777648140025653007696830499163317604110449932701171649810683003896588059705513835547894577715710375637017395130284609237689191081465381071357160875978845947678648259899016820888397030819702728977865270638489836517587167966085512604162418359475672605347586314052405732990601889639009651527317043548711208429767387969443181022632308737509366574787127575345715707362011786935026994083612067118584111000410589959787370876523028062071071183341023207244864322800963647172700004872231193240637138821319619447046309326948826428385929571975631769085225750538082974291570003278214082525162647650749999963040800814096799710832688869503679499987313199612909787499549756073875807707709937095120388505408367637633094956011351353742058116855278750997615651716875617125573162108078939283166106030494056690617328462570419045862807660323180179858215805447737962983936712879754034879303123898607545840967459938627755273165382034487123819350046028356964709628526205764346124757083978957049677647072156217882840271730010658628278968208313715780426148940796561171039224954422220077564521531983675763680715836523375258562271618708801794772214149637156193235979314708716252934256337892514728253033974666836611490851998180422700097687380665694552354316191204715266454985545860946879866434242687209792608015982616441119517941377054168835194906484651207132492892886498685742795022131334735416477098207696831618525394986453950461041255849915343102213183044919902435365497588686288152878504934366948050126820620728584247645131009289731176153626140785307827784940886550275394945370549759332079589562237426575494338048077925711438568057451941161759115321852657518796387894336184971326998400265469013060155675911577887396036386668233396343401504950826254745686531781959628240497007806746851483324263094398739028669831425795361567297297786913324856811969898645628652598207163095725622287634110806198040346044713678252445073405383406723936578009247665847379984945467447122059097748383064769176097392995496735106206064489428906648517083189640352157904138095450774811550306053911160825319225756050371469167951870463309984525045770443375206069048225999752519645405812191302857723283250862398864022941951078616517082432878750899168988419302456049165035933721963715805562901045258412923728771406833635017329781923736704570851304065506194663936968102259893015856071685176119285521935478051233549075336053237767778216437570267330933445013888171930364223093493944393806377156586652374251187686089419556998328458847657133376146491036510810477349881741751495420559401061217157613097178868298901307471516928752307956701513556111014546724170308041178798595584227272684696930028804623441679108683640139907983259254809413915649362320529907292334946518737901061830973192345537944772080988646429311980046334272183665369833644070054355878237905262519866681733499057835039114790128672778663331290853423554231122961398386396132722425886079776187281123063128518893556316444278058672762697997528890183204501516023585862145329822545845564708195174060177930849956705008128929310779935773382031126843331827239949482988925488296389114775990551817231018759025973278374779041430219282533229671439361978914702971332698898101841599061199901334135593469507245195136536193838893600756232317404955785835248312945191416526631948927595407812056986895022742209382187371126769606180313635115096457485720045319824542698243241888404453542360914819591957280551118962162363430484589455973587560848742133053826591094679148840104020549827729162684004329322068607542769380002167782505133203529372189644993982653495496301152830500067960241134331086148570511318562227846742299019830268006830344459154040592745830228388602886412853698998552253452822016822231845885033430798119917883499603627983213928656500786546789664426361422457570396806670443264024282160346322359924502130763047158845557451037411093572630373600844411040986995884504620602014976030928807388577619236118654188507194115067853369245907733502064817783689978343068774248189677819812753439831912614449058051793453638982053376816942189960117442014756466656437111450701906161099077871123189927492274110647558577835700716036712381650929408288773837964958100991506665326086946897906802847751307650960410584938641632533038256457678949016681418335131000299439686979707503182956633662687530250234047498729576175718407025393378706944347660982231894427018735971430798575589807723263491898298107951927112362578106821901239226236991544243325344847510526031040533414857065409845434888587249031787627462886489017060917637321604949923576513375989797126317702562154546538834879021524242005662340065975236908761001405344732074060785498674428962037514434179181734492107263766368603682185355255867089697192403664828582015144939584749821744135629269138176489103189111639079769516207623437971319597537897342311505291615241306225832018292613550435308497477194211971428219849387334636975246414666469833511532154908244902691996044548079005190441532009061956352341495440289572598344603887398477549732524961623986155723527389920063337435135129801134460385060530627077374346462456899211112966338283291066730152524450172295174103295158354862113898623166078567797163918546065218051243313843663584027353548282289691718530036703201726784680760579056061032954756761876865679274312144907032095377600852995624182042227808559096404687925637195281987820804510157563745573206503559735526085219853456990961583593589474465818300127234469564367604558759929235245333391241869691132244536794901573064746755269355900859440934606260638496904179909355292844176266579437469942145230880143756168045012661593148241344121737399167179147095606670488763103647969072262189538977662841957629632648157209289571139926925845292973400750587238126426834919170159446705519948482528260241763018191362481678398681324056713056346672687835082261224800771543299158921143302814168757354001092791212077856926442724649607107908565458439572988671557220462857752175654387785027031817574835039370612530084793792809238292572988842686347020286342661290689508479915343005229838031431611288144691070122845243624928229811149915921763935802823093535542329505905273418454793117238192083268295914066431610642672014186456291996659874112914444164076517294340238258924659410112537078600318504686105164401392327718207262724016905073745415115212884008023731955630450788070894695814586804915077410231939503569814569330115372209949409579508597277863741989654420697230109360154110342235894331556834714771064565231593405428013462716256469131492100682621116250197054475826944494403805439920407719740383063041213546878384291601314250217324385011091389913483623542883146927381523149120428436973527521448612915873363572050908793615824847143464129645884021455669091359322543158033915435761028486022081074004149880142072847414410522497494490373170995236974110437346395029030287692668450525496842074286772393906445380333085018223283138934950565038129680092405249550365084598536109786379640501770235027116592457189264404298659866144965097334917443242957495064651697837110584102541242792793910620176897004946604256434099980921675704786970003753263873549617795283546191266543346818579774262749910636402652669358378621883101338325884372087926466973352354363693190122507525446334171489250556385264283457143493856511700337789052255075819217961986320416853301295095207251059474148097662058830706424957798351535438662369862484314047953868351034291360019817447033963150428321054408735394380108575612947232609002498417204000713458690336060401182601466312676909772474016717098697629934877043756347344259959904291559009095605495720321209448908078012573184122530781825926491954953673699520123312517776098853163313863157683844464583684355765637258346370369811970370872715510763150808698260358116348172262298158789813973157890542144241296477382464901990141461286578920075471328782380930569695721205277517127190121239355073347290056558862849814352996137616816226968038628905762700973511689152812329049666375556913145155326637156074197489769604672840359937794674506014525319802119183302376452610306704727514777175409833186007737854713181205561114583474228778586129094876713203307229277552106166562145297451914442016637559588760950839897431522862315336334325715696003833486999661435719230509832571700655407128111878403533136114565861576683331794321956509953889218211225371869652517542620139435309831852709345424533104648336986987724464812965882077244100977586600410796477894849801142594535364776596457097182766082516464344990248401402383298823728942250524412874189845483057407345935276119272310734707984399816626100834278571462518545343387641552312741233707481260261187978551735277461548338997655416497062944604173215050719764673648998342162047571519209428453279655054488591193309234211903431089846249319977812615872665976338671881357985043396896804410386975974797058626859644753410202157185779280506288088426096421285061654412127170037417433134200829363108044399935966245346076254974437247595646369988808738259744948141475893520457212630506916861139222594386115207933474765868558360744508093444952243868403340618655382058629613538883720617258860072232012799038758148664293564147872323297651035143088779876711369457876239641653128180101147540773880232969319914125064798196047238828650755804758732597843232082653070117975340277110386570250050559195989980294558886483502617372877089144646341253095399549025849414119237579177490679884495414869350898985871278252940887738755941270416482343754992813701402419792144617606425215738552209556236777830092755845339245276876742405512606370173827109112076333490556369048460727275476552626522859723427090254812491108858379303258325763597486038842015621922182953868589114117116413015721758531922599209353540227134783960986747113857018671360080387024920148138771052918115882154885449332597438437517388429096167754905323155278457220410020601227443925071695844965081556219975109617345322463565739433647395850912305546763178341178167913935550990795253779182208792261779859925106937059355897578970484130756335991646913189017393750066806538318810992464800359134653262881861438072945082491078626663798050070950149406938220860566017056713173045225858811636719016381148885527337969382030920552562129011547793560677191600222844592324199204056950787210648545591760906492184595330322364939361845157155411633265356143654663548456537140837000985316787684028613938242707119966010760241865108678340291156613069043998915238368777222763829035057621234843795819176901493575349138852915514070047457325818902688592915755082330228099693747565250486192006088268338902110751247952444375789963554898824323714769071511204669920554083960257610524736648213025099369621177504132760606389209700248982429280751133895711172635242148222753606373938238524839655856733132251511254415996403458282643102874272539188804724679634083424383566424498649875373476662279888207950663618151016169357479805254600112921059199582744282622592561120547611507180913284642712352213799131369935677761566378475682328665536499694753988541124405003713891644601130890807712087689676169839979353511770486481611961860449007943209763405498007473269527714378689637023934904771501185077497807046252663284379098146746779413861216811381556714628479657371239791630246148299293904501427358671843406223879614483604747202749940844566417691474979702268349801736065031219828971536436126341372121646377475864128785779576291954644302931516573351932183908694436489375313791929075888687936446777676222070777573204912369863951788732561792159151493625069014482543794664596152755984115296617248875022016610470993978810251046036215573295616584427808011332769235898656014850055711634937198368125475509820393377698761893481337391862303685707297452206162612298130793323687084984285514178317919943915156567997407615701666919469304913214454271263751061182681800141210791734769093664548185467824710627404303964361212293589085596204233984831687381775355162463024198706063810604566635301955790733692420402909698936669758221545810260629686025230812045347064861198602657912015162880672673907469507071461613979499661567463461587875574998437850069537423232126365672556440953290656318179527043279186446651034271108648508993946614221522893592323300406206060437074329748514850776333832954965720529964619841796037707014587463467971845412586265432482562627456333760427417667500113250460444813349888897690247175335168791682782804055299280333722144013953471689803707681932950791765725439171329025499904906383180747232685797604661130273999796240421634850026042667776148951650996061509428150370002120085185101331032286250049629429630466828493962784133471425015801536234243565392522193408922051436808581235386415663330491187508047646049765185829792794242966015492643367440018141364890104981166102350077418531678602946945479604640579731205148577199085160549976124925583500224087917549235995386211087519662855687377815171353350438334601883373639016118602049057840464142492155010966367152871418124811251334180768941416142328626300704546961758153678055063917352800774759990385866995469968865014754731586854265017393644495133520025417601058907777678119500379292203749800183941793502008089635590150908507934994016443652908587194807257886706024216476812280634576130820737826230632002122285144264332514075992821430850530847003210225343491864248221008467623605777263720329010035833520847786373663484508318763580694038664066821822504252984146774121479976239207392454409767710445665291789424568417357826595229450376280147922647123024703938174441301497092394511164384510484308457706340672270849860556414601969525729735970757643724326367531888972776519378544928082605083294247178990592724144867559861309095062264898083348748942217561027915696234115109296260135702612102463770884132856618054630130299602690739351212572277947295892057859911941578689800295834539995259204840305070068030802134293676104522403843370812717626453512654220210161928138455114265232407155504336743994244289445971637206707884721361096830696976339525900214695151638486238328583664595658794816672558468513608248045163287470784889723882717448792254252204296433087206526080048762370067703800742843163907406279731495728833654737558991074749330718970831068479036700490454807059717941155021681715474297741351763502112969027973669774220239775093307860357846330826914939231929012091280781916565191890923889959399006163513388942381177087519600592799461040249821645711792878564094855711393180506211103197166623328957532758195406106337390933906332709012262588797908073469643873054071138799354750981679910269655930499079804490236486238174951585591377611465440793454600451496555990681336995660298535681652724346928337515586442276997248209383620738545439094665450363446489669699664777573849263300009618630413206404316569837778605319526937568601567394447046958539426935276358561437432094999875321001136291642830568872705974062137041590908036045008154952244063847508267953536798455451838307588398373531506224471777336529571153942039149750726667291102368887182408776128907639322779786335075001804132662716095756371789773684437124170438262503330420295340742437191516051762877872053525022538198158114481892555988768892611494297008961064359206018877496012507338791010871503228260961985164682857323611763817267576335842508678755494196390489078540075552072328370693688642266474026397200188527791613735975817500650807015843331761011877559852303194223010803408406365903342027817955980250178436864722063297673990727441609505471433526870057751974490383525516494244815834877683604408521032280986449515477528391740914121465454801938911903782945443511057062803828710403821039459922657796245548656780293586768742404371443707103268743506050983292176623671273612814172975489456406946564898902228376656783784191493726526573641639204349120172455233853300033554978734425494568222795654707474110648469831125042708535022136759199013659560643023628050138230137921138227490821185999523410415287935945683242788006744156008699352739818680149600000766410758504620797354675375117548721348481117320494938697459943213265470599645381888310999778710521776364907740786589797748333502863341973427281133886402058367999444606794238752273497548614596865411205569307361577492110600939860929544854831254887641247605198941466570248966437927411794779526540559462751799396718635723719498076728354007956311211120629370154151596688408914908067264333813757748086238224745778746035492634799250585699162727071918594412150689112996665103274270221821012007994769716663847570181146131431794124827003226970999042432983317895113704389870514279669853966944534850708988657787254159369183943014161184201509002919978838403467996486197081740058905200013968837367773424059988641256690651167430970363902531708565667035402984664929255871132331561099956867187612542042586929169659319787228117963652838365885213478314547579424914907934088474780169646538554194067430554957517004812138645808684037638721851608757344853226121627522775121802079622836437012655186050467302551962095414940492340659509354453555501057588812855794108284143869114624950306630861950920112031732376809645990856248111133082852844645061161848293570165487081076533671031318511796387535807568938599572679144757800981364603514182446249122690819412514265663125114795005183040679226844205525877589703131020587947206995122893731100126705469309553626944750241669942485066677009792922951981173618719314432991882065198712881270674045976958727006696142887382414813410045009873586351829463480177949483982130569103755216975242159211226040131108204677109560481565929543230089904577247329166942029179010913702465085285199934694060541223051112946671938122466200036075855068000535154184086036752739685575658437043848826328472767545950002287846723752724517768144910818561064198541943937658614122604139034661809790791224033018344735964994104242156087469855236927932630072608453350635261584939455545673109146839552368126567663223449924107872540361102025296249137318500850609083511836710214309884549742945508297027292866570727982897498057658821066647680576216376214861784599811790786811547838368733205499707007931543103945071846273526482644120606112195324190585508076442249053834071189789924161040865660016486271959192309467466278537531496569530378614072421653828330424617874741981264204757207162411335953619704987177587978785452359357396436726066742679367891522076366322111280842025694882783997880582462978388860524545135919560619743787267379370942189254418742952959770910264820372507913921678817407300412374108100368498988844750409686147068111766832131966400640098300646807648440435772726747282088468794433783060375157056715314021180113992727891752405989243126180434539472603710893917019683357337044611410952792971593046363468417700066403733768800278386134789967903085100866290803130390830901143695546912649022258208235206211997619721176242516004980912771148735263035819130699446867128944096163466174955143033880296944633301668213204182154029560210572487209597561267922090221794490141551618075352475084494600967323734988494480290888935018003438942073062637367059568074104589364012412426350679134707309519023006286312411292626526524036291185377648513328065247686922576612541645342143052325355418981519542771191756540231476211942476590918118811996983568284313560288282700782578055325262658111774773139499505207196466499341650105203288374492010562495896363655187786561946139950438777311012638880636760620092092499198786465365704789689839899375303034485392175023851720321300033529726370887792359521562573277487315250624202566357963584856426512866889847793380137272647113688673725230815577528756442982357010372341910742108523625818407719063182905885179941493737799244695262810468770489255780143471690897794886676945180308317697261439304322786638499680973944078403249553609277669589151277343574703318310199254524927963741424420170014671955532039054906612586342833364085080239234804644197306065977043402110241122261019046247226331899330028294661684343003263303240626139020482724679388230730713842464184165190347272365407373871171178729498227118293054477602836312808158427074820469964150703135050191269443627448783927994576985662235131430526779041367075511455527561842847920147543207124934342375474226603156622515123472171331405939685159110582152780917793285608948281317630933748455420029217723576260766155449710235519372753146247081959979420311344125565241218950965195286446837855830343583156458964609351890591097345307082076630595269892950773111210014744920550651346088515116922198150861574394623758180803397650479202269202647521865955576604555003720536522355364859654699066259320380552908642888146559099493354322175837968606330278424248792292676833590348608201946470747899858325229905496685939268984869799583940959808201341314480876155578417927675361340816201441107165959552696970281307052194143783226989916866717851553605341729457627431532509190715400573856632364693060704495470799566785511615433897559201227277838797383316955171843518678089967181039995776369171502529254380897978144890073368764776447738694516044020427667853121358568154574373772823272533012774782596220561420999749373715457225473937983195866309689682192819906207419292761654334339415698523772513347387381951383301796713735847247833806323145590111856665310127109536677015309985556338994257312538611989360430665754142953254978475652068675835596282195784062923100015865663192519628316884584944146501537012660470118364782004529250426719408520490150525456652804442550762952998500975142685200789575543362044126066094052883138523126279703898695253259988615669073884969236535831153607792689150366660795512552403106596958914129404450493125116966655677720413773479090383296623943571220734466572426964029438101154196665193919227158615696513423499031831131726544393258217623860856442449829028371839558128128720472674913724133754702444729407522842087554138232849996697590981949594204600949924300749937712075134280579720152371668624698134477446932181598448945813418679929122224292885057117368915583444848635680154204624681270459464053813425776489967934651718541343264270601662503670253171438420635896108710823373853425975222627710939007620324522958393967066317412162167700908355109247059515674509477137604226725211710995062293422593574500098234990279264401836805128113779687051091491895549686059946925318656787204776500171507000874335083891694025001405084096953025472470237544457032656523135030234034236565320034066271454350985792448983048684346637111319921505668532286929252014395130519724769325006174347769852254272556725885590747536596433765851308270820269764652572686338378081784855295926828938942371360441788499237031960501897085864817177378949340686799557039336618985962493569035527078658449268232120919841206730472776527939071587511109667002257047601107668899482921506081097419260706616000368276995286186410921790513132239742834677691102483907517013729890729655531970347449667462749633914128703049375644152241350255941683948416198329514322054846276775536034876446880310017575582463936593824307209525978008731546245598972253963890358189553696672551763432808205946585194152930504610300204660947637611469188745855186726245787016417327817166656227534228724518085896838687156963023393329595739908554347442323008726194814058031205774601121003167706689454231498219452804854151474799974529299249469938084867732736696566947717873843768975174556638749512667598974839113744566598355943831279423759144773825091409898778998753256207395420694977129838349957107254367780087932940804263121003250342188939891924009528471738738421868168990120232929374079081162688549103279513691388578099028440042219356282251722310157651180917882578250392084981809488882466713501367638621468622047226817303241884854000506531053155885010355881716369799794488550048691980824460749029083828262014842133111187533690620674662714350938567512247619861032332936153450174230536201770731299148930413810538185288190655686413316105599109931042563996600422687798352005427084303730289025432826288056553083844255242999347860321314987751676493634909031681186446185904397842646863604751506192411061760604507352872908075336042409542573761062517376288449172525457994111643303537392635286864883447931366839244517495487373439973022863965451527771610072506770249351584819883816177748530310926986617338268332854411044991347537672456995989640915377857781890957742213500071092546339554840539599362086015443933747742146303588627931573133015320952882406822920318189629466530740011662147256853920670367579948080734157783072055163872905760875631532254905574040437472967340349894308180621551733369557205031290245379960915328452343362243486897823509601590458328225229620478476471393196381251818001955506367701806865244881462899918078161275344091751880212819721973117062460260414777647070860538964452990866217463600243292763526047174503632349676895874735066148342502876755881770248640684524065217351574805256635276730134313024233243291674358039891303568224063898675706327607619472984486479796842155365293739797968761730116486613931864282648671620530906524359762061327249811646388481630232654256804627492685494486728807737966093195554124744737607565382583343159699519324221023174547560088124040112684556941367308607642618131768099835335533060234531263535902696882071612469135016297995051937173563054962962351218627329655909080980795654491322417923627110856814441048126554424850758973823113300776248673385837509037211047317999053650468094242370061137681002677080319555087257094196374899189941742585492528119477392902946725656480123231462582495573491994978160085963536725152656844481056271533920428200120084597662184732548645684185032196124613981562628491798998842901434366436462023896724046318939601211898602178540628316810250721533655912491354761954557746362459607435428723779199708965243804645319439343692001194422567533759781960260486231428657307288989934854341494897876653771085955784747896406836746492546213828043163607176312760044899556994842065294251287304009235738223693549995357192055669509131173636622055550811833164899563289589115038174374423860491483284964222061686061868703620903031981349579708077061708562015283460871124020864844824641298233469015264884729848091345922601562331655762241784259367318812876000802428562594473136326195753830716899672769491197979369279161440535223395128086083959414705959600670491046517063160993144166729266275016434329817190165188550642672315639204220835273981450576919204749605385799517514906124711253051249275653595607039616185033045034943077223594394129638651292071897918631718762704779937377322165553639278837535603675474251059590737959430202827643551007420873503783061359580364744308156531018805719520193370345702515251233552542491950434985450685573248007776784846049390879590332826781974686262060470171215893679700037354346848206940365261529680790895463890826194678071600044289953140035365754331731085926311257919900307133753735891398773505939914078042638121572540848961171058689870469987894390669135850718967622102912367575079172240136144914262888830341974978736777727360787384561906539810458988540929753513706248897037772870598162727987786075604299031576114570320053568061409730351665481391498330176320402648576854745731360783221881059147561496989929414960110479304069592734057605183424473792228138772933723073818884958494669089188522030341259991917162318958654566351080114801481888197454879165851625340664391596808677783137208560692738304797168250808842362026311816151044050951099028679484355304783215171746375023852493713710162057869664574504986040329264908126576690625400472278665882981071472966007513901188544141695930324325402318395078820447343459413471692432299901050646387617136093158768798151570532099394119875076435273260834700195608717092415278278668911330613636842575038442430577680693397485156047258852421794026293696092576191802724843106499221277222036533047124278818841638637421831157073851210349334745829646539813993600961856947016132378634706665519628433031577950600895774664237675685017303043812983862846877154517666835046388398014382409183694103283740069021230278651726824679648229585421569421102485946681623821816718341641563561632235332551327176989101258747451789492852996939507144274089887998407411801304397553765717198498833870345688830267007169855242183064234008547979099940038868624525927096371028297013156415190880223534291909286084614757083737739796306289748705595378286205023438018885094834144796683099545617101822461000544249223285903933394011071988125862898825657980129070712913409273853691150081620656596563114418175148832359388380397424897010661912795630525487988439425982289839508019064132365877304930442058751009796869045028287908323820319696954928096111066237198541076138777889229771066426116476281393658008277326563153881970318510678941341463288719162049898596298029665247772984533141083139656982197032898491470701856959295556479975286819570202412295829032212529592469385607726354240957297481675434029864320602485796927523270383125396529090806302118641748448300186022643890006749256866428617971082482702443231445229041657980062713275817290034804232335854218511185471738495459558316450654027455143450140447044208692738173676224750800574269834446323982605182375440958475594865427801613384284114173081685426072727467281737445331918529699481309503736868585677005266038577462106576989534681614400935912879764879834611742154466102570841467960414527819088972297096931587842552763769175522749530273911662315205354968366537737750521445799065471134403671260799996708615791162053971976298983481695860282424807970760689113574384371020026497204040780691614145506492135769765165382495940512550196391448043614646394804849097299332845204969723731035375415626994676643827876839715547254805641732575506383844356487077210159836155640776691400281211356525925073731064678845856616267157165852202944644185345709070853256632578032968460998108785928565268004788325509672165002903119252393119090388860437352724881200045055639294858704343858307345770469550964113352079307209051697195378659389525760968754335182168445463895160986261198852869856739703262073767973388320187321786830571037261973756885472475600006782489950968179540705443203251618128113469022803041428484342210554745634110465806750954012780637164164555913644649471511661291693724463769532191768188544988861584743839724241358472453046449187414052531221214260593708200357686877175803092319757818337435873935198358815752571009511830073420272666944221083925365749567408108821646884576765191830454316848083763369092598639176037559713963682376848320217447294925455558906922544188393094400108601251319062376649824648893935562712429821663700046624647701141999386510374872894695940483302536176460220541788009513453516847188801256644988002661292710487108324222060957250169093039191922453895780802566171320261453079011206666698533763902349039363134240234533951960526553295488869215649825803850507080190987596751360451996760077947676682169341554134749862787083520965115822977916981813795987399837757561784562817806613626906635559821829074871253634878655533666901542620820143859063067180632248099875153701776149988609876871850781536798995078987483740844403530510265078939928020589888030925015838340099681462179280631802784182751256074489831187484141382857954126886558484319333614907310324800049874311023600635873725683513692367644646080346885035753006374455789063365559525164599567071555404655172999302081066385232939618708693678774649889632595525200360169745993867067381229940484048928504192549705762101047006723972181706858103469135957312517118239072993778002652675331858101454900826744146524026472300004163192951035163039978818750296628173162824827310856047059651143398188996557617440162111485971581766973618389291380901856043358158711314102391112729176883651417994118825994622133901431713653315801812548195889062014599829134468339192027166852240241639235172673309250850547084225905204508711562396136699578169480396246125872795296142496351164450696954432177134252941269446181336187264567260998872231407216053730150966610546589019843638243247199102235468148687607296287387211545396466398983702203305174527714790880086295390343679158264215161620051042558937878959272210173847112107642557329538106110020133883821912141494384107540905960503877440517133485175202535236208007894905948358481483375974438696557020420928739886724188612043795067154016976074421181434633779297910701171086892448664588771084323091743160263040017266332742510993697963853179945308873640212874933311391545025995351231612221930915242999527344356495928295036490797259877242539962610723099042537901080524892499089090602793768518556643224829181145372973442045882130058647477282034532335799562661304017448646502582757293713690424887209890508438401678016004408758713294949346904848107038290997892588477010425559731209421955762060577821609568138735200181983872250176443578620003349754711805466056138363261766689333260566073328294250652461053902943590507737603196082297083153036470213844815562979584315869227368219138597345563658805179092358642968876194441986808325461388462021688088944127158315365857145780639785781825743574494873307585188050728775859881493436906817708964587645287404415537699913584483016465562277144252910334427762705928222653526055529811764939103499824885378365391053262911978627287218747559036878150780464805749143088126703064790785987409111667697194342698449942915337880515387113733365387320642130901678667981581530121071630437366107653423510542354837060385980088635780012850468352903341393577634364993782529388773874580661920224517694090400111336030866917494584787709710849608187749859215637707209053284079101564868243290657280094468892045237754117634324472769265283473254232126541325155127691540819048091757492064034309266909143329212824702318748283135831197812119784296999213187675537735111373987194383353974619089466966123356959037497789105062921257377048092012032703889497995893794009058122965622292544512323845744098517031951034703538364415017178187442466239797334302074649642165825825527157619151806000685888669456612581665664845482041665742158292091228313663592510116819230646367233277333688477951733694412029783607769105186262418158546880796413114507806194823611393271983400348861461976443440106383375821744953952014495182960970352355269955287768201601884162292551933131544789230073036775891067348935377848905984264577775658242178579495160254301514274042676336386996510445963457556295605088431205019301487725902860972415382541491963159098618550235660076177422262999355939278851640430952950973421070903005599678881520349311169929589930894432265650643293037382805503460847025993600667719899652598911614889465650597744991947908179434057500432932305133337065328570404354011348600596835441095815715561464240540524975339713398100385360207973012091074771043268589174945724353604835072914592640007608691991616718385923840357540988833281445148469437638459663303684501079755702027102153989687145367167972299281910681082300474114252683113605310994587654008877864378906293964327955230762657265058405303444778078511283998079629099366360999735922128910216173733252788902520756567100650957611896659653885896236569785017541141994627655309769282302804198174211369414544053313302632671573567386108230273471227354618720913052546602055741123558818734610595045945954393242081387467364952762716834107377780582803333032426653153287923487469506554209367418171712072784996114597628692490783731930529601813763598446581033174690172721807960547638347587143498669702942922027207066038775627283220097852820836168409952280611159087800690784022779726540982076472684900103986819864922188621175059198249085763291508948440159930458117423613080912714031064999324128674742385649252072419907924038526704306160852242037329256157197573846021347877155043613383952796052921580062832042696213976160169688115432661325685821519803981434635570160619063001545586203658312816685086636116484517362898601069384523267379529948540384446334515275686675468786266020972026800874707998738655837991662813458778778462901670215657763038319927620285276827471670501641992920181158275350183735073823082926863129527380803819234830517325210423971720972773565668015039153510396183685966096723986494087883495812543131746119666023492423204696821484317466316709682733837805603564081719562807383724589681291279397586488794447512288759036596411898789786960346815351567361543645465557878792500583091376347976077082167732466071147140984467575873218821400650436895614850494819471823338028765716320593935374106140517685955619263560806522371101512689901552585946603724973521534194673855415293191995684880747256787059468963634723753329701243071664505535114251294889939984679479215518788161915687113887204769865026103864591718902849937733595725690390530442112582985739218110078353713981643418198439176479946786029193951325359358910812946508297855405496491970369678671484282899513978569449314093846963245238694605201738676710848797584001469587177799942923871649170147248370651791347147959450096770037068420148570308822755249093907771273316646778898349901691416978536426233958447220547205070173305376613344203440610135906962469115446064623989699550967821521707801432555449289412578979278239265183161388621083848218587550289070938790716567156143641183884298900760049311631274617092345334859732509232953860035188734319673883909695117556104217363424084664899791640084499484181553164102325311748921904263343597228268674835167607010647313484173025945989323894476704701865439004442556331830160522699706782662200539778665414096085472130218871301308050774251106284087056148175478958664015684647313630063723591222975937925412883572853075671330499556644103795124368530888488694124063416477905121404835154711388619244986377121184251674425549970696648007500322972459249037322677938145788939536497343835276659855418348605725062986954227652558315081359554149537440907182677181716315547096160455769427089053796826769072434962918627727163259440804059835380187756032645535467208433845804907927367723584200508271034809180972309056769356339921635611933856253600351883921279351714677992947989234104841983910431045844135686669266709539803579825846203612407513476285075895904584016812791855714875605109832362450569838948480047260897574254165237597346055737760238650496144923164896306277416681653198928082521277689826870839927156782091624605214670186638053749972541587936656723792116158551673487299356596406841615341391646715081382302478110924418801491517624854322231776361366617766184859527801179125694958871152505231769013236233478410968578730004585484511502821571188308829717151677204648548373694377613382836093717316874025103742646899950174265311863020351606512257549418581950563559336012236443340723987707661953862013402349991352478365026520012272573981426004557751526514913110318914165433907236140821090228770923845268614030674071630045566999808053614542260543225308862839894842541128455938945594040140068616759852382249483974794698157604206056815853429213568773746520711811524509853818152742865983631994089340112232199205479682891122001726172204340591919419238284989658208258259280614261645326847624500285955894797030143748966089665736222149465428401037345180187900365926479180907016815228769160230014683940076230630937702863236979189549979775229805101441804835502889054272747139197748219845758688220061648325056721441532273001694953995927362838631595339388554452029926987566273888500615387035244688768258696056259909775491143859272245242357124579935757704203179045649269146480709545498061881566703628764002416500854882846067368212899659822990557680490156504060495702844919199480437480293425050119385678573389684792012561326557526823889153820614500310987994218415904841451625415306539725291178731655997099689489198135759246722045461921805022537649459956003253661538667441035885918435373012731016286016093610634092654715091831454509853587896483771146291627792024390277508095934481989787192678901986497203425631281993103867035455608527612793601159604312755999346738397015831017537146396528464840494421338470944003068280941737116323845543350764867029954359075691847534612732435451755777090742087648997304442569528325831844749874391088184759069966012881442130105218308961267325528287966194670865255438611150466857879238632393458698881586181441162043165780021601399956945577473252188236588921138875818343149525644232503541465015694766175162006419227153180225138577769315076486788568074469396650387989119626808149423663429930952215289530648360031233676344420882551656825932976991425147411178978770772199868588322664781642031579181865039675784495537287558460633914303993026254282282465314968620280922416143235760842143412017452876662564530822032122032656682103212068093790536844283225877176887988258919000783588182706351167345346500097005500382616881497753829290642813135922315801810731049801777170593141313479855153003389511602927596875709010613477325142272265523082902745287754533968586406072035132135799340249673368130640252855456400260372881072778060626485089347184823077386334375891883843026678239169666818327486082954139321343269414734403616520707725030049626975327434586004808610963139401544764856146867585921852184767538757661709808951694040283217689921102753940067142370181874892458891288733672454366285136832358859726571712678047525353274815142205469407823708052778994566711836281531419117163327040660964736786092373873008201459853040654069095987914782792780293851785959477429502990956478270573355193844216223441829747561907226300097862543948740376514013151412444098756004000522321636474294421060290528003505345431389474344593837157168877985660686007616576269328367207275014141798838032540869269724618669389068645594694585968342200113459373659260269040339932605602323012427097771439072032081363454058772005384942196906810014158596585284093112667827501748582070483895020283799057594966803372101653476351242360269897249367104195584443878943051558265292139863356759471665379981588016677243985000079579729639666425790092401350207736477283314708388800562831181623391802567363130808452424294638669849723403696758929268829465032276108976766350654631945916741290677877909068924269554251760747019607516077143731745683189868779305003442734761862588694455393111353237158961592873024316765802516327347263835054529225535983263825384345935723130264558038398583683053272243413176846229761722387459739358159928086202439990097210580456692070008394486748732987371591908615760360511321690279926422381308116777263841355561490285481032264470871435003973970402427105194047736498002543618409790494691922298691534735917751785949688348489976099868559374951674136090341323227809892729846224172248930265298129795325246715103601894654178205864712899408941944471779285214239098805322999378832453010979599420453098186664339039396760345739798475475777074731640462567412379401755763556042422244297516978740007836141114244235143568995852321408416365089853300213178984386832760068242088828304884773755199787301556641954590539437305179572937768547811151162760076378614157379087242763828903013086060712337784677355869561374835147736481511606666725332601912405644108871107836769639236296292949283435386011204002773658325699088686469070165699292558945741200059351915140568399918467168155076405821074104205882341764094067594338487859850429349371175915264812691395087675495972094834373102494190969184118439031180977042011346438104325483388766217182305508662116711496601600017151508113010005165361694970043509715166028696824125277386715735692518217831701977664608969055812112091803813357901559757156316965379531565474429280557720706124154254589403470045030092937961185433114551703723797202551365968715919642102902113723384486419587560500523082312067504040588522169957630512379882465250834168851035807805660282766778451249479277893898913389475612539849268947250947811974210760054436492673517927976037566091762306584087607811275998175581341481511520367810576577100687108612815148817306850215515270707242540443365864812679010669111759161392723520951278283580547618972378156269751911662312938608030754497028756391693913400824809962052485067101138555086935064597682520512049102485472144174406048529481458831120032975113713607695306503975167501186323085130258944773227561627197496749818237381286606026864208968908994919843483206201860716575282145538553805427042146097537077944408727006087904202000671366064340754669948773399928081060480406369497784230057573409934026579157602140582261433299744569266834613757786752337172313692851284693564347504396512084240285914931525296600203635327957010007554201024330117196012859238155784852924330423578287489843030707962203591986982706202932496369368589483729889160693858558801850206677144659210857860585629137514209596922751302062716500200220266221053717853721974879603823216965093751782490434440952530421972783179650412123115971263799967377595000973024076191272801697510959378628494080509061414950964489469188891863486956890124315582074043430148079179829533873444742164473697996927027998434481693351893336926527123517171630082725754548239079633125009203213242424444264267546713156337879924498946583013430554322062519074228791241767079622861540892420317180405213320484298025939523123199284256742297869585179151994992398882327368459422978186653423284839852443091793566486056440452499128344495958442957099089270154545867774928671355900268148008811714992490769154590252259234897434453013525269892646415613022747245989966485750807533834369683296303329254837212905095795614597996513455451737611765164426450383769309910113963489973162532539713750937203312963220063474577549893343018911237063197131130558333685954001001733508476618486677103296862607122119764808720303010403623986932925144396581854519812026336528414776602154444455049232975148638592005057376463883017049681395723407491758815335525812920890826447566586564581230039850432555508674603396936906239041839518245495748425001770801961914227708266418850617092630798583893720469010008889641877984572623941590548203123587749811305912196290995305148094789049726085259958766491386073547125805250276507841718876103180520170710125470298126829829749227854065376443543182405819593637063659664148166534566431702713036139946664228130761252698684728758725761479498489068281894931805262410552057000813312037544864267097782589539699902703243854702823064480491794935724529613985327166917967348339803896765873800878909208589132336864688193644540543346204239073115345465787323506154870758702570128162265578049318667042890526264944337947945049407982652375371795231469577525044705919456829374831429975824047155546695731113104244421212899566960969615965967962264627188414839694998017479739640880103730369270182353257753128796140052988081069325587650987730764030146672605414343465789777590366988554954267021702582420608003766944616971069183517391802989005850718853313725349667182584424030891125788456215283736228481810291827978102649724456869531011015902743962109050379774069677600780034659061488795370777074622023191578097751182427887403037970516197086219516893813867788447323689973927369263418221517299065770350652787849453903772095870727045314121387644057562761369377727999450916682809875242678524701565642279482830667438671734702272360451291805819615386968927598993321579348171917872489081800988397830813656877920432198514147025390013724903976896204119883196105744056939226966550946489458039786448892132931885297730628068760930508956540538626823834898373887235284884673645743547797915829568762250030188183177436233493907977487794544144553276894954490040406717018891863463475031781076561006909683393246833686357776754897199420630211784270347318508749091635868091595642159102080952063515890610811003869653862413623831431649254271393666235263092848772746216169827171575471308543074499072582003089221480218070330693266835843661039791400098296509101568840972743136529585861787883886842149220603481656954613347180496990443103468129942137169009546530217981462971307215887495469754907694285197654386863338994805170238512249109048079388837187709652199314841513871815474696080687148685198643412767947473653407439606957274400227734904714434744337324020735816302927151865651356570374104987634377965480977600610413698974568269065940593550763663058602914091532104661857721237307864470333826874229344111717646015686765415152260422131860667726051601959222555005515012859267787772249141469400773461578818206169601314333348077220874592450423488358490679216865180370678112047203787100472486725184960589789380134918195453077571613378678253957337425259423126353688083546157339833737309049133761788924192417252142162084877660150557959821455396151675551142036358088818530155058794323447823983936970475283062878675866145726557089216348197085114134625408074873323456790695311745504413334098494308438509135306087634430222313845754917093196809024793030069267574523673630307520038904397533755926555192199262328894349711286969086544931321999953048041227669007618540391612442872184431083120098382180670017346864399811114231143747565773695263825317438574848989119916074736727462304229238200982530252988094635934379775208350773249236256468844782413163669732944983961486824352924021697923866995340219023077662922446600258920672438482582189893462001616249340629747934249235803233464685269048587947918073028765228171817328011072176151451346870069542820796443866536088455478580003366897526131535798428930916504328084413622473704580939251031220443771208731876864044673389793874256803841064078119947672933938312453533467731280553910547878826121526643114685749520869771660722963492421390403459965542973912675519367651747971368871894374745719374168439080869538301897826824489609054105867378623473329604701025210677276133317162353452027516065570067881381731136326070714388591745723247809134454458588556817471862090883195643743248575266332063181222686481284726571015422917578743279549063152490896094896270036293572642519143071539368893969457824822703963511719969718053785056959781415000328916908798056669350123729505376357177620765499239172772233406910326467072432230745021143090758463279215665517109258677932829539116053588591692150714443590273477489376397057178132836546471676208304017936733470599479804149383217316607247112718736077731249033226754122646398961683814728264420886594502885868866377964885314466394216457844632734117898568567040561083890300574803600236544424652492860463262456290985749981081240454395818663463836579621105024578699097707495186076906731382775689767774713223845109041414028355338163731059761479258514886702328858125734293297801406531454726146286743435827832800305039797661244428969082119238424653778189339503355416651783383656924463795843644471299311450900429813523978179551912164313295073202724135061349172957404617074666275890471052234977719925974641737255620374614741275163741987414481287120655034617808959332400784404144236185593711984867290682262957061191821880611406383330602438812263078836982116174486815359718268111764218873552056283017248284734886167982094050606711320848432815266047775390456458662008770167997452688339957224830941930258307960449516366239588359984116869711963099094480214219775146052778480337571548306339805730042561843739232147754787157317687811142985443140253393444302701244267093154244140487099073968922930393480311180459315338809303580680969392808136193125578785820358800029262613423512447674277988223221183250660388930198725800755459940059351366088472958714097872607632119138778818197604923366731024343970574090730797148909158645158820411512591554637276767346485619621894027862783898873493214685666645624160373676615423562497788373619001807516619554673905575517200400495827759433655501497651288992145849041850662103479627630519896028806588868815836927705568481897939984795423408598921645454177066868448134165031120597407447746531116910991483002932839288718290134095352048946406057249241697343754419299888054988588637248710712760445831058667027739304425954644190177578808230303134865271639437381261936973292482286631109676187715806855179204124196755118888748312496541032803277616980803413469602781912005438604913882517961734446883366451036018391866589204340681402324108083808837705786565528523864490206700188202512476813402623080382058954540146715251642459119733746627845315649571650229807565309085035456029445884474295522167350607618922431477064831682477521292267575644017709157965438818863102705883831942209648283870504864151965300520375459119326811496623643226867204998742310937492364216503579116641731256573760496143703405660488028309155675355673374617379295772902437583455704924781194704258264478662526103589117383631527722864299704608433306780640828620988081608817151082986614528728993484267648623996596708897164486849467730651051934964287325558670725752094360874877039986855164748727346364820800545577603139154564140755685905737909450269101255098133626634437280806965697891848542705832847276594359474537432810631945031191811629038748380155966488680059967524823462695010302450723397931184838715349987997926033358240492657326926288649875794761278006608057817256874735594977696630046538164326095298642571725592525916061990529330326555858246844151997551497590313412401929485368356425568901220965745863276832976267887835312320571538434606854593049582763924014141387561254961742975259071264344067833555138991723599640565982826808174943428011231734781138135648577918382827090555517432077431694079058742774643672830157241363017092671033766768263041396810450376305553852583559586862496284815391407215125979364674545760924527821206343824717213251685345244158795523558439676556697507689546423645074547884810136669963505614539875925719733242514584374793730838577084086362233065885244988018080259807730810532695837835792902839326192728432526136304008503232358870639573669889548184255529935718466255413260802705414550960149485471879750738985470512784710038841545303875560534265833658189150013893641814647777516145835988974482636820213654102502754463433991236962726090853965620759434878793398281418664493593423188173715325523875038140357809636925889111551592198385288531704912693288224216136943712514284179066906525242414310520620084818513695980107479570023640234403454566615409139538420355773441242610229569904622594770195650731116951849430134323774974658189287342306343795786082661118974018075656960900190531560489470586450912007271124217980430211984342088677905208847339012441280897601415435012177981358265913633577552229758009014908458759134991722264891655596355653703411584349048110710548181579231151290781889260765096904925394686435906459851789977431528064958741245584329888930449530572331949188980081448610120013407374129062565955958826210176838039209274461200097462690526782437785589943396571283499754092281264458900495551349373985716663160824018738298559366181998163591180282673768527632556570616841607396903627356068047499990446526498020782978181208275319655152216784684893717861892106038476686308663376296960934726198239320979015214531975215947323530804918884814018374458132179663547868234889262303485853651801666595672396553740243527260216059100703969033690394304085268852491771606359381331249228567308149934238139987733777053300587540420613498109104019613179626616781096270515387464959063020619638334596191498135750645956698138264844581184862165827089811699614674650145679447306514172973675164921037631983904494784156138021451447175627434005134777480764586068766708026300136040054876769545241314876128862727452716933674983287484941152058469296172104180730675183977321965265892633649939828965518011935036009803951384341144700232194907208082749031111617160868540694423061901629604721787136549837255601486178273198274098229922741726779894251037593084728380299679283551889036543054256625424881571599420684725705810871112411118805271259654487207792952359297285743085485768700110414942300781525074348043795636277659062835599878822518814896812548353619248596552006183991646580388052890832350397053230065998010771660206909152142031736863888274161644620301043539497331365921549234910404462788019103794447598115817884766393998193735820444063192907563770423975922238551712948623620920633982858079597553013648692146739433673342081639863984566081057606050098587188008883720438177768883586285641173406882098469758081377205282772438469852287252425397876713792661123993331340698812934148998853228458305647592194675205783960451497759077365301652066294790962907954644829067169635370443914689947314746273054329227087215118034707405756717299992459550153600853610158307953502891284292918352035711742803880975466849380350200415257712421496783029595653695563109466590633003761808678746773823142671495416591849853836068614347198506952308449525386725078726424605985870316929043707322304553381816685903344000948882452889848494673162200021745553653351145214316624424184607117520955496087104674084597971594364825078890114566023653551928253078386925226609813569325572653579305549347066172689473883803369805076801690358430701619160970371663990053847067743033501248349235358379237188301323735827814613506254092834178777889885072416535574906115029512212963053597944109149979859892259112957149689821985292386538957399063046174548083181756321129452792519293901517510072789418159211455564921461148208715379888462431624098546369576495879108817476756267187640947346094075060662489685538505384800409539308180981792945602543617018670127630652881338800528052437853220376517992213300621761222865304021055685192049697031391807287797653967119153188543777851479284192132837507886173620115234943776156773704837624697464350112103138372309877224666303053713669851858857533172663045986916130438313493244891048358498976068307161185863649601546363925973427677422093870413594547115646045876015427185650108672551876590588618651379820209732085716552573253010968493144937941597605970845177528586469195555233560376610168141037315822368867643348632354980197785256530737595729458908651650930526590603495229151692336847220134014186229405202517845467969475020111014141237836959905832867217703273737119279017334756959875660356212251570057299285836148027811603961315208725037698939211566541085313198466499069826881539407466747513858021568735373441203037482239852823178178427088413014049252630992199096051122668159860044311895373292628240009452323894604778597384498140511592800811283404758190265760329161352929156651037165035506661666898539370199519157448947817385191163168397910615330062371119333781842138656110734783876479430106138577983459041523042227343712096519975577267876717420037922447409594507217829852277114602872407547339140901979919999104009949340042818192229578822522193978320839878626571057327791881092426162640701187416747220001988143492936522464148146399185093423721248183743137639854474291506264597608502699265824245214915707467327633224432974183059892247160524605205568865537113216944917031973746094611241013291605993774655929719918462855384944167707422658530437765229389454777602138220196443762607939251033388014420335200312794052009444173393255350932571662087750739948827446383971304707802332864928486838102526931778023439594593836529617836022322908682278997190780160300843112774507138547079972141565404756759720089857477588304182287733446236426901626706393978364548838650691090259969884880601404596670011874065444514176530079267816607548873173550329935565296053661759439619794787646620956116806114446446105446736479825767495046382456092496661015322890993906166928395935041766170829049634020656735411987628549947848236158036238740219681446008605783083725955197808427919358407900743838427623282022593126710309645831796045041751296771996282443193726489673296700237105155285587132736308157564043489522046089228221013686159178588347153348696659348267436201113355089264243879124638981393322118270787487278275757230464976503192331716714441512223868449350810831892396144725797367174819070774448948530641788001229981654978017904146854537382030858977136181196265933969856714194217155033623240343127507674061435480798589662171158126618836423388110324796155546824774355974819050580492726193283874217224088891979737249295220847839702653010672449564501106644255042033280993073877422064610066123604860840483624498955831674197424928418861482363238976663202569380966609308144670143168419824977163161216029530923475505572607622838696335830954618277284564915588763897569001089862437848064156147478794756854040529755726224053793719804735689177776559895822006351499637347886011312711303104187958789181185488024574997694248424436227040079645779551232076603683865235764884631697573991677358941840337527551580254705081182375135199683373897992262558912848858639710748340631310281393081194031452622468548590047256780506082163365969000598392939727149475932841233822146363437090368778207969174155748059471191172717569714745137979552515193589215208796984865743958859392473838465938726332718229351093916995027763880090052662832166259232042538391836646350278590556003960485656073881889826256300168775573844799229984250775456294500301395533479919925422117739766610325180472903863755981515716896646920620129891776877934379021346193057094960423420475116065949158026570705196239785067156449258932337761351880318071046325929607589032268751099476745794942036698526964925426698787557912184026930024163153578376015424988505044128915212972086615006456453785098142699304015519136514686975256439568392246695321425039959940880385665361402292956375231361931120399600605212700242749484184375055373550385372885346900770669774339898575561712742459603893624761385153551328853978940908581790439532874007332130250062827350854908982229804834906117748912296808324904501267272119574394605586873105267672675661948921904846172089661758603951244686416929988753092224917813181198620360650638267224913474361459694980907746598437586287364475849795308147350804674941743596290924021524001553218242671597556694132319862258455890669082858240384283530844959429145809736293248647771557876990173530892796953763506970020652201986210613620392161078516123816519364124025601954050189477901137659722677713352977871708522552179520986312443462456954800342638711088973893026420599745038330696370088702765297644505083299751514583779718018973000770371370479894532065074785992158947163948793292604302785025357918824638017746904886128042800403469660143781059356684952165723180578472480309061217692228524600495055871754460949633948812172823825934421311670342075801623916118556289149311719687031518995712534720932376209005219354750688385237755586735357538964492636924876672935771674024290655571303868752974464345675610387814127811769408281764049002109791488834801785497286926204023561929225804070373869799015068310428278239025139013835554021544294918789096165618876197022774830959684428244942593889233782926219068394718327134408591786239582070478051966040145940722788695981489778760118447020901829180858589649758930725850582758268809513681526517191444075237844415416109655746725900267783778282573302122281422999419471462128723445793808952494594201796217802858914102793102922009204753697295582041713955435042708078070322069249623663791953025629498706820047673928393914180960056137103955245065381616889112925635058993507980797524129728750615137467320202942896698763591773055405815657856676750836286544240908275179974200406439230125578982214003318323498641788341210934113353471419639764132757687383979517034541454305490220083856187834152869109613357061879414038115474217784704732035780927206199295531892082052106877150562524782904115763072332273660648939245981070877159820249173911320193426561510952039809301842418110912594495513867049544492517985750806679846920213416172297037981092385867861187264289753870364333782917963883618112468449497108065267223851108768144953781801648662218654315981003394237528091255545828024586493831111437607182920803222021889493019918306317670921885823127918572079152276368793368625270144584949537337860445411824045051109814549195500830122639539939247997584791954589561357640954623058140134125509518105909570568930835450367780982062590549054226553947889168892433858872062407217359900352602950892791159728645905886373380982229764306157443194187116896035941125704196167164175017980504852714397046167072260248816661464371933852241752540936111903554881550702347018239977679342878798394301745959897570491984060116632698538854500855911314493661376641038524205623290679623653149504880197437569266021537615932764941917706408878246065175397915413921483945691640739151544098860948368634292760784031182040544105004929133552475348086009187345270391094888906472467140597707604340331500697935487400714058342494061588479222168943091662587755170115560422469814989956083398392433515703641622510721835546527757845557438745483333726458932768080849815501699679031565350782826553827811661097457348192632461256684504925448625812796824174404619229864941994087282591073051725123944986157976335998509107603452228958882365933333999077512636225849532338489456731331057346034673681287550261791849340470286794961958404143020493222777851331518825091011009647718055593681085105225166477704604689737046996524283709637907112093331540596873044656886358082545328551510240732550341820306488873029561643819202084923932694368503801250239937145089033556952515412403576277674454059318134471677061270315032046421290012831619078519859043054460466856471374694298380260369842432571563215467905651465444752465770786604257329836361261967785977425882060266708162731629219366605186922188520818928831350316575286626453077386205524779213970430244718906994501464336209393893950123255490781719840550420620948797505972092150689118603682843103730106268558847426031551295782284210599889027646353906192735114120596014436071413118368702035567711771778061173524306639057431526580566315078774640167031466302584296440648691228256756890295631695436601379992740751010726949722942158976246058197234844710311420097257769718355580139548613006188414864951002997558458292579464433362983832981970147412679631718166578371993208198426727185282662127039396674430277220879464878100822155775471616640277096575447822434502926228812035293990958149684455820865844989445892616392204836592842798920878487704285254253051165020988764391911690579503202540970551901824563077702322023068958519048411718050896625332728341828299828821629854334991722795255487770419799865422736255586384704998493621469675408670065675831974681688592279121525947605292425152171651175306513303106126115399419669248970081589211234601052048819572273920964109747580741887462650436048187004186017368128197285700801814957252242863878201657975561431272207928159848357360861055544064012696683390251724696967855000795585191308207490890150632338931248076012581532844520798774150759074665602456907269007214333746033562746203105417251299722817694852831283139750768586733054168113473875748615546683062721518631367338074810930752475311371032272583989887624594877135922210460364239989515920111902686619993403681056302007057426521953736858780350666894534115736973233142459902461075147207373679640011435178055599250626772409754867029712437906840887184638044625352657981249877617178800725752731743746691148371051778874835222930957206996673893942772240188306737824992649420024200559741642080670916141038553223815241651741803446830787600381280148982832270347011964883853867674799561441092847278475780449393076673369036937172523343747295471413133857711597374398757661053518279302039327941362640096642649392987046555667695730537570740853477897972430444961276063627394160592571277246085207947032286638753161491698815408843919609137009573517473656059894681245232727351738250432251506075416840326136881253454913338642207208493120610061258392047226978982722123966170968571874296929522817385968637574150892782124555456141371680913340811526254641736978213453432424416573593249172925333036292810295777184216890072564772390863885959609906158753526891283137672621828659963152019221802744097076142397172301431257125039911260983307350010581233264979946097405219973823463929872736433633870130378154990176670226520867595591310276917960113340326864986107115270348978454108529851681092608958373321305610459736482010145122004955060333512129464964938840045609512088336666215218101621640058028824088454247941911161772791193656678958518199937457635264267097588900732268542045710576734087513928188925581946617255111695628068336142719749959041449565439981856806140536781612114634334232131643710280162282770494316324868550939050938600336763932625536235030055371674528413142323605329864068654539024281985735878561175483628925089628287438115968203130613055127229788779217828434705954185535108202511260675050693457411098567905487173645652295421990689957252550283301707127863545792762995432428689350041253580841970971289870818870059505119716590706310197595197449070972542178950716846386830372014745646644773842012327178516449789253842097668578091354514126724869204581637588804117188344287426457931754296703073159648091919156057515718173685485851508619405734412640382546861232308320880893736756298287969162396349027880352308858818394369680061925240478651798897370060879304923617385525789837989842497147597072400521461333538261724011554254275650317650291250498951292109871120690762210476371131915471929300111531526753035850796711797923618699195279008725659567721896411271440044289034075813596085203892990563279944905166231822371689783889840038353201731309481056201926341157639375614870626153510496189339032350004879159287876920180648378187864719638478295170217058137159844777403785806238191959723209379333260505690457152657581582951204932271928959462543502024803738295032814011090022757372942478701287585103597264524362449403102565366590344809156606469877077900249179449087578494442199748129306325170320450162099670077234198543237406954312541437027314935199719904168289950405441963281849593040781508120634517558019182419332626067371120148122607045542328334370472792313311552786650961921242268655111526705539601706835452051331323584051726628560610871603674753204722580875095589223256587132806489079643290671503864794834044708514506601947390362547750440403685933251879860009848336758892772845085173871971114307163071040164159061079133699497180160037254994546227116525116802450238383921570748698795840619808006931871902214409283478135503140645680356192262525465292865702412129482465712003599614733454087185660423430254922350885416662253331034391669566176274826889861851173329370443845419016505549478585924444671339032302849020289878181889783830244565530388748949079856337994382055158768095659005237819604839172343209075870677017904190694289161768863839467159579204120308368845277235634315309503524848155713573702296402223260354023310709701319385363374850889886968261391473648131974608120198589745650642808761865196281190438326721646963919496855839246046504554378129986033472489508882161500437578909733500319079387906654685317053839802056703062708640046492667122772158040867687470704792182171826736293823261550756517995529631751789134967788657276634250977078581391520708466512979973484713729130174121931404981652153445022845256833109611920797312379072866527439859121963355381304886085247236174855883523474906444985638113403870008723120455309140390828287578080468875877447746013209290215772650251177705489227036763403793111464993660698921241017156280824877058182814816035769954671223311599216104684967758614387834417667896911138891908673067218016193613354271918781759154974546562353217552873648405815657147781247225890258870957508647486945584767600137483806712924885406668759301484310274359892772561777759440662577348400017460673286666730415900069201876893925630489013839541793041461941555302522905696687998780069180082516851483054041652731540333739572407121342741054786305654828680313115335957594443103324527259528491193047527848264941274649992612746891267222206957723974405512231875448552785202071654434210107282336264278876734190712725151055591752019071427422858668969821411821940161818416248175612902548754367208075983255079626016350365205746699241486173544528846142439579682554317403260550546097034751709275130968756760489444796416587875422011599382137558729405406287462824083582157783195770110252080932794167405312480411487627259786813941394048242575052548473286166909305711174231644956566099144713231712534238867654890123894766125935184911745876439864390359436123927573795939877119766122568531762304734861276103176226488605094287989052701879744008756402803914756040774549751135739292356204551015653021860381065781426426662012017577125818061141167200260743454130866896279760724239193263846032669175701218551710049105732683649291993998918834539647907294480563799010405353074008709034378953183961745263541225223663439039610068672522781942979801962449821995366170642583150283991325262550638064759590715125078960902118958419336049453064868477935625210655171892407746064758562372536423317462995765720848885556591524394770300611773285528126893467336952627294683597518936474126432459638939316965485063299601300672699843444865246933445395073376867507858828214544713812755669047621111101316005737270482004395572799086892047576411207806530230374801754869205211814980462439432490880842664587651375414542948643544381300109397214667752254960894271273015675530738537669698904796441152775073282943863140352223396072871368173449325342726507823935703914826886975671047453888400407769533384063738675372500557654701577688508454747874241449328900899872597513146534076767230050089286494839701614751623695478065937561259514503391488061622849991723154786891242247302204155836990616969538498822812357273982360673894364449848545952814442575631666847369079461484390409849674669927619144096555963138967165029413587824715536191766496845894449077474784747586849586573074041407600404082351518062547311019313169848104719129120156629285957025856395481219589677541399915167518470577006150848149609486715329857672901293097046849504251194673870993927311760111252912927467454961803487188534124466133717438386004171693823704708545122509491055477987768535707372298555636192095482055898847108790877091512313646254249862367163268609921864217670044732138091451294291391232682734233431776944201846837911422670185183592164266898695000965690401120607591759695213818034088195943084899359422142786377643350493386354314283755672293348047653316669609351074800105773935709221381656287039006941805088930166325355536457949201880660973243497162104023375840310213895779846432625025443200599924540734833434989304095162220733456145541490788528088725676586677015898711608923811222811581379423505359363609943202584440293006011337304460525925983630982669427215439199502427497664871446493758169099332667310139954137252616714956900966441933812721927430673488804996447591909404291069188029381115861038798904960326472351339462887410670214172412184294324665133108775848869735851189381377449740653081449871693763986205020317862251002386143220275852158064931556818630786449552351333102821554538786929117491324527578070679613962698734336609659727673325548068043116698305060200058347660704717442102172231376274880205423939227198569765468994989202150915791889939525301388878613705175953730836971355520286420966558824404077043337892516368462060972328108771851796443285034835066539759071776009735063471086919336593067032492333918362233046626309301314040499336045022676244824299725128674341437651135667380762145126597788761339984007416319091168715361380501418785728434796900718150966206673202715028218261630487009881021579253711933392890850000543779980561626247357477674119810232603367464987679662005894394377511974352965843515157036413544375594671163542444948875688495761350761408903659762915891668554944077430573361577933866159356089885723360206709914797858057698133801013713906548175069208338951084192786090353097451463194456323024945391491368918792247931705652210551004502470004784161300082958394598770185206556423789341422128565413623520937730594640253980704025637564628613820634105298869428430816069503618455157263953222163721486139942488973376668959155424052149878656647534750657647208430725205907621816847768914514956493224544198089281746939692369220709935808304376382870209653713060609481353379317513191036281889188805478839216844894272317277858678692106893249103496922330864153975918907042986863732699120301425265965494263909643354522144115745298357087669740280306078874425168571200382961705550661134829965439484814422020722053215364101612947391523060138611691440071144629340462751339184285429196410944679690221082117871099641861272802993010398293930966728350164244759209880377004674310372378218255998572310150755982965666197153721056416578230364474855716610315235262124999343056016532853345344149040406669161957332021522802493357591104732609954327030202259717395823053039805037903572445535231823262287255610140618771534377609977030325084348665124557769020992496492330943695989421286243219649711984815928300104264516627118496655006953871904824688467859979730646043315837026895756701100659170835059410565834924650842697951650049571987131289581603485804585018421605632096915006483010308737757598332793853388480151851855997498221667700491745023192625259195460772914602400564360400057456450480626954595223717961805777232443090190898105787152779909458790147958092008016928952038614334019949550431764389936814786225897054997432613332959317080301669901978876413332394455635877299486963032354041439558645437081059732902300399706205497724449191903200965484966644442936305640045992343411987034349743318174948718035570668793361734232429332217601429398010599694873640205919042446157022681387021059153991344263098906985345572841581859597449083760646304254237892524742064826871354964318385377443144799737377356484949663615107030721103918757860311900461054962289248352014484796492171319837372786532934880737183922604064957921993507326984971790390760064829467689993261244859103999081657683353378898676799491964240699466818734937104266096950377767632535574826010765031265200200319575473127204948650541035807935625129319776156258465246068952970864108260504165460639467808434186453943684881108292352578482260729713148511811008075672390256918616620631791710933451360209798544586864163438607955375829622357683274128860568297995515352438485710604797623674471188130548352305168548214993571281758903003921954671917603398866564493684072568616464928165910567113791354485356817527485663992287459861338308411063469190388689949795737152746276999902052283829723296322952104909281782670974850480959223094108076479040063175026589160125434592354810559822886185943227338998158287381780152471895806653572259643452365011216916612041627924793694687505628455273580964033283199199775038678000674199539051241129577840603839887375290585312489489899650220683404045548727382746873852719949495679888612913749511822356929421093717897004469199892718259076412383064104095175702412208629438403544739592785040913492419183338481900052324385420760567940206853556629790026067506319222257899436662689927117245356259601569445562158883086234937510407571279662444504437794816274270869434015495873672869274891085080557873850174556707536392266123926282327578125526779374140354715543115630907646685005517612725385887021481862065611675506593258229956416253173732052012478728240335311630549529468266114937848682792358455678283070657329968498399483275958349170490417218011048677989993933773296287705578263581169568545161955082339583707898729281059319374396120969515359347860927774824656889739688510461463146990910878243842498271820748289671463530611531826614291599742689018431239946344591598881932845842291587267039702436191789327413841893222212585471168338886385169063118961505010895422571458924400606830996724841165474100488026943279954960298989784765747496953801947001515159752496339634587775518893127479726687324073818769431911236509310677000840573826550420085063181819266858330869226809721489194959429176628313527948321961166649435545238971955192646496657016596695593502269355055829267777466933462755233434509066411754452466464973838457266973868924141241764516744505666803877889657468026424367049310617066365215951827019940650773779761241810493531821872835489745716866637177149766538544535970546190909580030006608211145797349439021912625287366141283657322005905233871986767556235468939315509711536238059288828515824254569760836580733526902203335136206162497194516684094666116093665028158027554661002321541503201144249445389838638429048129147044344126694062944699504906783535946562072002694190631415171559886277165839989837026149727551149709211601836940245767187689740881266291106884691876630152947120373469650647404330391140752936178913069381040096502064838535839296711897349932678793773631503016789873325425640232389668155758606993758231904720191166292980110706629847669819720700958530775679180471438275946550339178387386816009403915590602289481589985626061747788658407951491981522404164511847729624357464417295368802772927841408281246706217503871948767814137596238593162740126926102813990724212863939848379537039402619140582078269561651697316050699982873917388596442458092474864306806881088112541782310897567297726783844325460521016671208224257455810925600608389854343700251852934623427117933218204018095434793855955802989998816110723679096382843229493586342238966031682680511864927971603166501105799026780026775567189715039632532808645083421355224080236448012045846390907395173150507589873959036766615269916865461104135462885794278217449502492177406228646350997609553877017521567253014367102901135800505734434979883820291214643555192329030692406316589481644070188238555117134906730749467738420331946470297416415545992458836444487940150924326287210951066004272937805827696058179339724864212532870431009367884845177060629249434209665696260425702042783053618056772573579694234269044493996313027116020893176529356748354781533755970557082351347131723862500071375560957711480094205256328533821260795028942945583746894716577752715916288683402855921817452964689374267808601928341442532393025693419826570721070951535924167113512890809573038542798734706783392023805351269409161380116621012253260505914546177955410327004016495725346836195138086463116203575373644011322974490839669179223725233375988253531876832624740166990117479013423250391322079813072366439969048737522377925890248307879452719178510543746121691579018604320016677687208206780122222680742937921425237909259353005262439299986430584235870692109418849037249129365349162654477303808666559102302379066426917272544429899108024321965335505626141059387203971815660169931051904007214503763821343859263169775779355470729181362062679089424387476660393463266894441703907920982159031002267130283840939642199165746436733827216200578372704779110763693600954469241686554826953176660698179769794335922317383142340641338033871741275274943399305482008783986117143645459335104903365696184289258380080190688000437544445958361901399961063701189705880362967441811489497705122121631631095380225309529586256445518278323461964425258455509687937614905661961889260219659349919694034353818277901000595573992037149148934695276953711362515569410571028195728722329850074508479330617299898719262735887693589293905308040402163077348066770560479657782038659247761858633187524287242115397065331064982828950280345363351996223640760202623786434804365559654074178900886752111336753635169606738221025966872415256980797206667173890153908674029120277746918367292328636648726006890264001221614347407034376076671355833571277189406889714658485462084187301858624078837364455247405508254315241164868817946942431937336069527664996083775121098706472442323174287439724119685402276400670780557705362984866704751727693118642330452332813836509216623271630622304869866770486434169108067252680356037306791416612765542576241492590966284154603595636838971142163969472409847171077972647996418305805004079797629606731965302416044069271944698583389851467209425480734198859413158508159759025882454917596805401884341267932124687011430041905523191556221789377392922716534325147531960019052375710151974211343485897754437831448092371382395870074517417352277490790740881605307503323204292947548937482167902482321708821307841763223734648116487473269719082381782412533397632797312770567637544161174006074059924576728476784486557862973990589173885877749635429683368049280758048586868542695614676798427459698405268185901000272727575173944490097816183355292839848207192902920988680304270299353851635799063325552083421931839982185666145884040227676288193542342929954450766653429466044433349185530691738301654176552931159104533377649272314835878357892312364827954920213913371488912224676103040931943743267344066462697580553582294192055550506206899841262312818103465872241580050182677881035825186121436504644923848885591314074726999429106946275902964850035243618629577093655897555706528013346281239310997670186116572646422592684570758931588340611473539488854050871279031879503006643219439215487460709608606222736206729008507927160241203209537166017492997980625379148011818453848058511844503691305036827637850204715878675920648977999336380866881445970283342502029907119046589993694327188068339702916550633802849329880604028645951287745906617195303390119113564625406824866322512815897682465659594438127314918559949837552794462017732541769020525089677827226494792689776035028411569386834407353980911411208826919583930118723353845026453567994464819847983117170460314591400119142979444467420699801756260197762860947456363904895306281297258652667400151362937338396821990671624374461974791867010798521529007081256316304337722281654898828981362156464033610522377702095476516067501890960416051053147395638596872687141430991770779996898599873685868916196288965932279931737729864095958115392540054292102853098848696325599653730205093727015659513816181632320398177611788537986891907730437634631395247521076978792914011759705251402719015954138622567682291600850366896596061008248029945024042144828601359670655472514202394820320526423569561030444717434524644849357964289311915466189383740158481850204666887046047241077616472612942671764598144284252819661595125292646781724724679630770551170901949574395051645604488208208522131362560830515904808206733908363733620391932111769695142538889509582567347429150887173822933831353397422027247976747258365602930053963792565473793156741075194351781467172347179182236212465281196176158372348693049194277194620226916249436789689696771817663767544781835036818406759024477762283669898677559634127981616163593847691058144981073910731752257896951287274768734036917708604918904567059894238032457597278377060587606057601432984683235770906533662026424218204072170744421009118339638713211464931187980747729141818445275189162555167334418961698007954947004322591666370907379269295856822823835660187459164224174358351918676589943672229949741400739138859247931673854735978010189395403473331867002340812535697625506102565178256452257978629226287901910966121267747957285929113201079560020668726156890316362033247927491067984350250613718219147819859469811377218730454486556005150917363948771618264248662373860875329717623323445507716715638486726615716910366718600135597815750911374692231187520301267310899227233002272268363879467595304014032735517446010182789121940675911294868292537281317600081678938947842656637436050157982861117824192541365867712429102041753684262843962260983610257602717716727422472478822513035365480567432328674546516586242567301451256435299748212604302570161293131198197593133612609270395456134005077011397942690034378542820438673859759248852905455794198129124693489650090643425896108978615392067149201969946817496862775970551781586527372182554846779462015612695790374097080052287485449897054034219364149591218464238516855593927583835681123191372354471407534277015210267206739083375708622304280119683061626766928565193863519578184153296221052297887898343579162140081611634514922469256383048600444587001471690393651397099636156198114942746362520651240622688340493289286459162061337265841779804268255712906348071428526397655384135840186077129293369854197560952009938029350477025833642750302935447914753571779154754963127249326956901064843914318439776393853354316070933031703650214668924501376808847577071140143273038233845991437643331777035074238330614157550098975129693871842528452737958794164557664128894267371499743652176590955585073682105928231634219041299976144419492541866342230493249911620249035255877997935634885092623382268549571657642585823851476277297563350942822611202287170126464700815552898916166590233074370249366947762559921408511297975631963756769883785518229598124059746925738394496554268752950047017836352893248633190294010639791281077136849284914436048083622269936560167343812671759910435204418536599115281449649835642296445785514322423584018342295361542444163730814674120346695043967521570664830815406680785633710546838821167443289275052410001107734856841972887114514897144255305846061058406356386154700222213243052135517089963830376928282015501648374970414764294195463085302896828758004642035097016884662854840924618617484244121687137727353704754109156662006459237075833449409854260277351160603780157482837583456748898338821737264050713878218203223154361985664909138101005909983463211127798362660146289660319303015176085444951373440681079220376235101201979589003646434365716532957447620613567751216100422297196832894827872366782984768982968018912658328637063666838019008619284918114074393840107700516777909707311696712877334766122768827221324571167459944697904725591816744805485516447313477125548875114192418962591138686368005346387573441801145768785885518072328332520997518716707641761976055683595314794772415395688364581804202720617395159108694983719190389349022083540414764284615528560022134717844314256499035336327424355150782550360971293497319067765283224745841858024133000938746402437613714639807283798258486968384737100134396997527192098667403393132808190509848191995300656550310503644391539321168745206188842046943160715683257833793634720936525090599267455117494695761620686432346668460693313173656780733475321997826531937218887100824100392628095070997418151599512340580328663906135816078648874449620761469083322641295409085548775374285449364386417054830985340175007918780102134988051154241037882445349236422269387756896249043466899413882656454225806566197012519777799963885097313216821856029817605107185697691437758743485554482749338065977385207176105504053002933898172994805028021466581783029296567427344972436320305251735010996890077261182085547470275540299757587315395325662644238520938778676158972679766005365506229835224761887948264584774837221606171187916776311337503673451291940285447550376610634600910763080663210976680713738146704691201000129652803634482012831744119188887980864211960095302493689100390955803253384774891055732967512464815923995043630333373351248943274171816732030647361381728899532806463466272444588671905332460277223955878736671979000693593596962455049200508184303512635433664210878435771418708864787401827763204424100897352344810144312169075526075187211343110449726172891379578339399908679137859361102778991885410580711770067646800138434637100673123153352794244320184667755964159060636810766039776156663214863218240221710251389080456917087036197773967930985845929496593613294542196258375640065332557753115468588610531021708501763860506971823652852806826392253216057382893844750155442755539217343357548223163368365957814276309370933283997615559992320808574974675809265739200600874156433317994729953539942940218416133373912050012097102050160761465455934744537836786171180670026268254540871696326040267704859878642678667602565435104953222263557700370563148481625020976636948236676251731401734395040475099207477410009521259583446844258602953825483104421467888663197696932825273104730370697107090729792825777090174098502008997788338997057928837337363909626539830149267539158533734078743783488976826645847865969375916436476178354797165751576865678635273060584175739711129742353050535994416027938753561971199230087855159600452934622076285617712687911546027493342532058359656488798290800788833300171400370445406290899203390029848046296952412869785538599278590424998469302859530538252652138549708782390981205303721860456454237117286989830410567171110146952743844289029796592891092805245334490986462536846266068978004278221202173877160090345815067088817379987544875994550079371602021639195302466145829551949431856490529164752347444141599899950546189121435231054319773403721801290315919326543546298077190133595738288525052715267017922749470314048896024295230733979237328548013854264079920236053980222307557601460580165578857723586632250497642941951023723763301903005978842550790633454266593887404632309449457344464593559949900971223071216904710953252388807374004242506135989396607518019845457865930336987876251497104250646415672455835134155941438685082988327109149608775040430939639860547774617817389811029864000815900019143648106564141646151395739548075140719241894393012863501839420835773563775394805453887305767881021853601835521047773322985509469164631196961048429445076080586722019367905695010294040771767547895648038110587724115636339222563242979000987551383097860550613709640126750358202579365525026221152935373535682612593540528475727698841541617448665056029343916245882863328345430005839964022917254343335819912075594799860430352096454699524452686303085537425391336718188352773789266531048925306521019712567831416787759633792330469935112534199354489309181446231214338439061506619534556058846140046366642195951582680314086564442833745653992560200833474346085033656686168672579417081654078215115782287542250725996144070389930102006325599617265632237565706303011527149453455631177497617842424935797151430092123096519223267342528862908620022871093363823821903881238647958103027215164683654156273124742202065156988222220022310117966673482948567844112991415654004698316336471225636750440381837221224655261343997050646106221877222520105216254022676133835342898522345910759813096587265049779694441718413553054646890685221785116278489369330439330528723720447944357705644502248010110723949074193956563630123440755937684106810593925387071490616938936947261963835760076780861422490591339444233324505263335551083298839803839337107623157005018998743979912334412827800114786976041520821635291515670657321527725367539526526135046569166958536824284366386865523698455018437765470045167897405271188956321597397472728929047709824586931843821765288645426111579872479173362789957413529556610312441123148789143818198049512882350383342457989750097552731934424153599672574153882700988039078803296870605418437155983088180604360375708602484138416526161648148308821995659492114765144269819940726870378751091747241969008623187279582245713816680767789771351870445174363746732418063971022493604520296944729232196993478778931531308324018761951482458529874343204814165999323238871448059184543461583057271393572131862435925520167622088255672765121016573351335817549471863414442130554378741554374416595960949701691012402777018436852226033643409351546824994255520337804386696703075871640366783149835950901846865597985272227507203048392754665352470000659198354647490317955131619447204149837972700271596037857512624500423678004321151898160511708477684641413865837668876497383863703760158576215542177365665568975688645038234930308839932565622563420300142327773035767242453765519512603682261761738894127418585082206319903971557588563711496566803686667321252684704317568270650422030847693593833234494033050218499352807953210219161361414036351189337805902829198199594851934167130485106701177070951575530491681869181176588617347943424592446513816875048174233981548560879248833336233304464349498605237070706035910912749576418450548862850185084214143040572249577395201139761397704100684182120705834334070555143121815080390782279020911856847495914295608206509515604267818963001971304073650842614129774998308020577833781509672849099624330765014839335813209787505663062136899702428705837005698043978718034370800470409336579178241706598980822730043474844303301804165147445245204457396469714629754274957489826273753797908328203627104124461038820310381278069262258780055381972798075939311487074626252731996826278530579817860277687567764675554797882684017048259145764034869994358649269708861153121981699557886318527885492692548905294001173302002987563611400951557590811536992340375174509895703514363333272898807054226827802360057469937271556271829795853045056031990742566780319230647699421279254396250503037568670614369636161154509237833908833264981191257049959906087927328139226208854366605410139178706378702321525031423792719598023535903951407044554718461766283192853218742225404267825272069831075060694965861956555540271929747876989403916595408570527944158967676842406398174733214028503883669216332523000605905212451292873396597529587465044865342031812740936611335482339054821585525831780366434273851340052675990175332771481765557606921025123209186548100787880122794819313757097777177776636800552067906858686084282526521538665707782796465251967347904905826105342639481319565361538867292649111906235430912767959454416701601337831832103273940813919776970472386264062867617080453821610069284691749773561893242213578686038857938961987400558576035309333288587686028601508396108309115295750643181252430058173112246016390112606248277925022910841416278913123744151530628601926067367826243765695574171475841469031153503793649345018762132129074435140222219633955066831046869018404962322865213825375957134337137604598474236466343612682207545671792760696403688079440298532792745686224505781633232949914110198225623422101042158828162668277271903141257504649601689582584926578239955823265728388237767839936930245109206704654119622083408279671990696538430110527739639382171622692907714167488152061023040474507433035710612678325597036652387457263179836462003924247459522771461478967892545109277900864271128768951732652044099518251692828604687983887274723145638187320487380829125214645075889333939823525851175860029314530878477323557072413831085965975515466273020066300018364112670518449333550832868013648233335158409481088707864603431172881138447376683352073103082647935094430322657902410929834216380580480644538318347999517451286557366933587845558789672883026932034257811372559203361624082690086465182204538733999356906950540227862538826761820251389194777428551364349529803439084260321274405073084673382972500298157071267581581298971216820536858235152652196646085242213584345059760456887306148632608516946285389493057951667907720974570199561934968995396613968876220751706916473385365359986863319576429017300938640699706748794846191060344809861590873496365070705133405440423276419180882884122417563974292820189631962020136140856577957439749894031593852410753931901172478041177353723257079593646160794001832405331568241058903968518587366855582652655285663696466645339219351994833072095158396005510144311219697765524623811324499826218918180394768731789146385276998176935705054589608551589885154757822243409187203373241493153402602592658762742296315450176885673946099373850087182752245645725936318746400515550827355584020414142087098800386496662782303398455643829782962667029936656171663485520182640562762240287991367627509899655599719083671591307531958453702301824696673759537604300752334435903571087200142513902895944301407868303711787778537730888928206513142438304130550578759297195416100574819941260808514343893035309246467896984181138062673113533280149699455852314842465862536291822373103631932516220350812001293686661675390513489967915253616918094529808525723009818177999675066334025613732089744371154790734144373547612962203341761540556162377180928609111552289519530852861471006218055299025854852626018537747326067823231817119000992300177699000432233800653820160476915426136660800912130928629968547356904807447035393875915699135227454435572599719879235445555387299324137682030812220083533069065510275593769130697745640024521957870260816645418406709836040452690438087370514750584260886924234087058207998449693989269619557131886068195364962067307125998893439173042416719447628115976453526595309060780595206296565508942648102324001854547030797466578098031968783829624318617719414397470130684576834654629194756796841800841674311692489346422983760820558538362055485671636699386805614291534023950514762133904823979281955730807506693736950416315649138731166620814468551877768234763316539593721618842259650110856857260732156400594097651204794780900917432915817648777074182699603157386800314714170124162132932596125644838412072312544061285291910601452702600950249490558254751443550068056028858523491548876039154582081943919634402596773176046217331941512986297721041188072108083649588752390002064912854417878888894763872489589878316577118089638667742738732516057572638225588452190118985929408256916019316752436156376553898386774253685925301202059119917153374791372710270473153845674798309990075663290527628918659705590601390340339697363684341369612891985248194020394518747813792263720615244419706721293636496449044212521084516547570442485726821784142249371673491460632883343829533050347676232111865940523423636932772425064906893324512988622017574777998069398414404387547080846384832537858132585581279537632147389738443145372403518409709664853871767293704443244099157878608013711801872980799842116786387663072975157323311639872525936358631824701957713345649380297106196538054396016587449517898310211345531073588327832308816536556484967408615528395354854275411502088938550030274907925548308776609600493622560120304836668416009306444155762070911553739471234179104640507749626690163504630379275564701631742032579036795517951692512085563638386009386178882357547403924081267195591486302439837685585638360775997179620928713143349668411084297785049825970889345807346431312846152255818363183425515784022962866667807340593756368687665238332467328545481375599364271688353189436067153115738660772741525767021547532269741758930921115973828658775484550593845968318830684889799750710176478967838502687281314838054138048083625976800246657995669328254141956887570878279133999787733610422490134881540472471898444488111310065332246641557493436200646638101993309140728268750242602134909670198182815941923040269893861578895126622474202658871628738024189576400289737278284844776756452018806820780886411896563436647775756796331528876810201321182649869563947578430856972880466234884079221530679203719456588961342105594932624873712289361711750957956588381570668760141852692951018715864325963789675208508445103449414445093755973243777246544563544831371512276564937213876743891522584809551519736250786330950097662523229437448915125510266151920347205356158382704743496034213564118623441689608787422434169211571640752956807879024185612210280229711978635944779246042145764147579525331634411010188219073116346678404118300919767303803588012308194849486381412667541216201669871349968453280371664585727758234604887077294649522092791739266381428535856001878078477133351610716850913245866116117963230242956362277433493184063074118790957709849490023225899678521766584442086910338189113435127424201823553513210762614239002189947453469381161328729716404336489363416048945102615094406597757006254879216932791873299378935958106320248005041161993672827742402536806343301858967133381957724617365857989939977249767003112533169424183079821716988727192726268298405800993868963770872846969236386429992352774707999336906545682659792110035114981088155363270185696900114470009853913223100492545784727678321796805801911532170276205056552333807720148021622171841005972324929927494340426639368780849502801295077044844162648587248383036861590692884042083930479243263379708789107915913357179602533699936272914155687520344304928111416293009942800559317550376830928229492382956951300480108658177145961210466376462255777218531006672397434668978326174437422235673211221845296017308477249179730664496907301882655350216905560168892243319673288776168074125592670309165051893132379541837608334199692026524207222995007043151824686400065539253460221772834958593282172528006803363291462644904111853597386302574831448649810871213011376751875679192530186557221845592948912027835962132089950801327893717930454935593458645664216231115027471472512342270679237978855029817035305417559721479694824145665738246521065821349633108956640036328253479847765504458047479348567189292480768035198513181465676760463560762463340555204817141608523756844779799043941625924196237473632301508684431764433959580745795429616911674874974593764017932985907385941359600932043379811845399938311452264401974403432510318998547804574945348670905785824050784637585202970041381364471569881392485426324751583748242415200005817585254794232648276495929573688650131686409245989857514649670686334803984270934325648415188317824108992824582256291329369662483436956048353077075532974776754562574620949474145524893341027688585247881342837342563627518706026193780004545979049560219291649323328125762335719682842956954931201209279696656848460329813166949033424310976221828026144089375970370856743351749949069462075404190828853299481085021231038005152654253441183604537371717136187391633121788222655383396047915525614739533699943929133595816988069146373176173644844851466120152913907107912395353086438599564564175048294965193430849871681828239415615601470380368782310434618941821050684251116502734929815474486203678704688371000152727111122093220296733034728445946588385724061435857931319749608312317265970542704076706122675870273167895707050392277410392505762395429226068922988582028457314575592021150008517931671712744305357112512974485344441276057299175952766761578173214734499822237005168706458839642158984787136538864382833515935607968720566923991586390519113397552261322488989103883622443117256047820814855669084348549842437077576271974639151149247900472481753019840059988867164159040630380245642426582135750171556757810620589337760487219665729363991033378411922639000844869576971644596569184765209473892794750377258525852640151973906799266605458178926287430977203455815559072826969976064124010697664657070650573634728541206939111871679373466181828613912631290659332071507769167047996656669887720244096578938452446162555719040625238946816255521182423377751590725006512086520573495762327987483896687222010222765154048747171717944569386662141649369079322224511455229252158509116361592494803074494909115831361194680223116091485094528014055847701935313014753593803911429541258266817124027984391151235770333320021523671120681936459031360695324196816604874583505543752358884933273041027262606203231142520444094845080893831785876590316589090004342479611224507268112576119288065543683756631995547748865781609807195715757269567584824969153398317992589179113822643980392745708136356856447706449251296067029966129693769955718743560205357609806463975379495515945535227412858873764811113421228032748064852610628912003538345344964001615445204775041749619732351842470062880420704771536097646597965935545346952766347299581665574465488610523100068823428215880885107766425702518324804931940836748734563796390386251961292257484500074603759034690266456188677835007880628319431961854827019635962418988479532837400993780010968348011755013093843742342217666152543274677187649115400657897680569615331544271823679452076680634576811449196280658724153799120114096067720105787958152079980721469066153898378289701202495650861775759549991571595389250953311866926866291116009322741154654180708581673449947023591249425488533053015982783213749199725727333739728886889558805522112299497550544391212547504963192524818567231627384459734266065844895537665717608056693481865137417303906888696087019910276717517007710826280140128681741475233449681863431480537016652194541855139428305447469338295041887337257695263877333198300480116939928416034455353463361596838465472709428043800777139367945548057671041549365755330985453618303628193958264457573272502993348500013290625845658428010283426193239833215117127914174650671493231484492611124714747012738753191548366853866959330162144599521664793900058882796402345039463975499250219204282144845475440187635351883985791017070855743807310825959234314181885694686701809708126052584197824340638764222782434717345532448010164030799389445245715032174634678257164082602350614940789708171040260810657636477753715169685698645070412456463622900530183390678926698014729578921014641220166646762915697671396745438706043088620678474815831778503747386634933767142429308301915023685766772577970696403221031092161041427075639151969541031742380587433810872724093153911472658725232851183404769014933180414605667220770992649508794666058349003243250306833416689932780400242350327964876061432141084078499271827583980990286650037836346407869015982640177341447290532992016407325364601847991143283869186194546427035757892823417804823735858267326446890905416385254961690675725009565189906423581086392098293937311518859993309677845043031598949417853911172523360377403673671043429818363804040322018582785818335931309796264117621340499830752699468711046449182439800023498133465829498431380867043690851441041850795530103985379300867235027132357035761788392698313367317294073319667730253379291737593471866904112027242576631662058021754333648648197695462140966934343816299842580261154070848124147468362673110385624883965073847879525845786177651284094831514026566149344828189430728901029351597421163322712861895067638600384718467308289799844178957514944475710780493552226995246081923416058623323474648892228875623663745950563147828539999725405452333293576927494455752034647821558214845376069907408009110361036471347321893865810369349567717441023772789058060550769352820384675917611643866346045833034449113315481763523742501593652852722193271445685641002879695575913855799067614076629490361459607215303916289990368706218818485825802689172797242194330618052264841598114282247341964400372188532485513984030944020682088685533505828757939366036416688982213244524075905133328437936573527352028549380290738550153240441202044564332600435231088572605022629596994628259691343566409907182746423433037451403233394797119563463064935292004763433550383292173627843749794260623229315130573936140902302560159208453138122796368792311174892663606515014396968528912656926170038764863239016738593791225865867775199595905583335154006045512416422483586680640462311464801106683446573864738391570237206765814129208332832610187487438463143825818576132796864865895216558678206975839932497958669738551074584963659007954702396183914204061948029001850855661689547411372724378870008172101026444379297710502110775907241398846355985478087744409620989667054482950595954471813505882489700757375394430674302554765561306932260040990520369614895871306915886946361462673959376683257182614544719612142181984762804718577741221422529285002680917192841075809680206906170845966780775460816572041185698170097105107478399590142088805124643018980388837522923246882469150365369473740710328263098189928918213969569269140597708637028806118092802705456551983966060318364243935780185088867254254216406083300708093563306327490491369685741752866108712316986011635582019547367830426828257596000821654940045523513997666634727335890912872520119320004847196490522821757401392177598135108218394153387454888972425645449321049753257614548226709986983835349579123651253632234858064485139184029086807305892837422321807260552400518738209762701607836004002098368933322876023735212798852498177195801423163549583492438760512299291031178737610235156149091274865259650902379439029208340116402958694317464366645021497837146790838701966598881433875739534312343856570995113591396543844764475368045910231920169594082703847493652747792662850452743109565028926790188262097843493408209540917887212145921197257577590694527696514587687277157631078919888480811109032131140356336902345231382683972507093297820680914326048106257349410095434227650570804723717722789452160331553995569149642925710144643962748271104819600576152429525073421730529983396970496945154745102260376732619122460444509855726500735608704946321556179701903412564316771702049455538935322719095155372002725689986375837766355319914129158727360271373799736647097436804119224339019006915544967048610250742560423256904518566906814964597624367115761509608362387040032922657020602633133155222792213161103485168477669892407663487999066754858292654875383884332013864023300331483368766070002860035449628763903065683799161701801559797835132229271173246229553130760054633156703697816136082214483896326718358627486978746165508014870498054943331484448689688756760291030910921902372007171877176168766701697662740592847365139597973810309758456930330307100930535328509397358645087468894390743175438584520311281764796412187255460449606661719641071162267696483847852888059625822062726843311572247864917987238407360414258057846857138606875011201655919742709124276470429230277889742052618932380418251307212853131920550387858323955009905491547285531497304997086569664742843782665660743222477493165960659565511374310022959049575601112334969058643338975436054539042732797833346653779017793204450501054017274519599088733673222093671025373157860276046120391298155221626517684012846028653545422850225449073690148296350904073338513948850662936900113586816774078469346906813463327878903293370294208269495271959724725207246370703585004608611271102773567847502516159592640728876862823945236707890970545818648937964557147011309354938215466760452297777438479580536175516588774843187221936420226796525332844795036962539606826034223465703483910357968983658873448949732376637522693949559361041657711689862301150087146050241661871789963049904187522894995712833566517502861479146289645160033392437304762234785037711089526415605583074839602041155287397254109770287640696531205723570206672390661888559524977666644225924484960283667880021849781616627627310041385480542105910994127254519496879794338983434719211624626932590508749702491471739889043648052793770531419309526278016987450913538160550922868527530452123759217616103541638752930974003542339523822075499743916821825468320231143333151091447907932398189159783202402762639893931263250026608682026811694602300407958479245055955129874379996583619871445825758673667547049740553730141715904476909011256886699105485114347043361593748117605763971134550896333755776829667862697325124518872656845007125433916998773418776714152928777229943834785812285851674753410190723188315828495323925999587082912281814696811070776385768373198043424501375160528620829036233550018547598434242255240438626849470153079435237536209885633811310677769055009391510542938432957658629868913576556607493874047180916381628343267725286616298305278231367014514934932879294439777223413757203941988952108234212803472853266989477639637319433347333836392168489203636605915474450207156869744680845466172310450513740170454656975471721357899390177905492441321787400890400020905259935602744526660113975771808536798974112711682149178715473675669781627581258457038192894561734261962506597288267758239463840804200073587853077492633952556315025213794269897911465906740927524528678244891307332774700585086631089798078956446060123457179093844176222722540577340610575295433452778596446530812121739029044981462526732475220923689539212180112741496633446744518396650927898880832113973694718593460219138864477829197607678332922264776294607227558168992391536722733326944669397624183544264446082727610030315770198826440278736597395906952567588835591110200246831189076050841169482121498007114657273722193772899867997123878148737949747235000674331336053501427402176921013971733333905090988986235036598774271164236374619311011119748067008324742133045896335373176967866020489765345043710910025256975088769569803865441278284394771990590550361738437207581952946367487100009366624872773731140035975276783459670077496095323229199296566162073851946227561128474639453137725764237367496053807257528266639303770125057335328128756816111926674597279452068863437309830418639219655935863670993720279444788142171681985960581599227739801821062433076894245754798873055064312141092911337088443090637555873148720874312036488500824204981624718156086515644232226495643665895359451391543764904516781426074597025192488072170513938869151821822605224605389944293878684145135860831071514662535058457624881682758516591958960726712811891782349020786115051846391792583298255939776052950077680174999985984690201534087480300520550309098961091036439132442395514663624357318070895559321525732979864451764681583023674873516914136689676244627035261219237361447377528747094744150038797709724940943335315957241386676486587942130850498219108421155385890476360710809333712606503038625098394182145453823173645791277230185820893987027235926606237636586872364593846453132350678774309200795907637313572830987721820095354485512726549343865963402567477177502694207927784883630051546266699517480360552798502782356587589021215093232073068732290817746428932284251787161746700177682770229001226921103611989963861984019696330231081733391985168342736765265514050078056095759335464115101858498740254442286434328887761335521729674330799976594312953251272365713387643269476584813379240267036720898254684714124961169578839292111792201294226199851389562450105734730296620962284276726393982558282975289677427865902622049578458681579356907448014370391670404579509975158324717608640190785467259624751842056822732602627248633225707300587871870628735618554472995167862575096675563936230630369658823608715839207015056729284598640058359862723250387241964791090662965985166773410059750824094323045595835592827781711557105908717557876189125362915054110435279629041810208415329796855846875932733381074992456840685840086051717247892059340400052319518203691175236883125554274299012363027605449477215614988843007485827209415125293209987430266243279630263810471127265417570754417839125601474029395915140955563364816238871576128454676715698036090194300829733138376612011538742067722913738792751589464783951580502107648867969824035412301809866977216812762460930655397392796547374758700978360152669865762515774765602114555507536716963818059740585770809442923563628013127927576780092095798475498844182047282518054934954417451456404827891803270055471617550349898754009396360874082138690250023832926507181512268198728546740640859366518461264456576931126439144034494114104303169981797145061648930846107588957101471216681355958038934675539868524126790138630087963846236951799254112876898988018177264148094417852188710331462892183675605187574083745201247890333848998699385848569856052213669693335531353539559170397069649611797485588507214281839816084831697956894172365919641609969284145514159390417420900480707637104254065051976857857453206850001280369649055999586837501769344221065380283249140601757823979592481846631002613639561720446495269826800026040725253523594407440489463244443030091625494919250798097145025667371965759185631284658628583943243697422727217466856982398104296483720197343624196423002561517988405427041601802962480101249794396689021411739621773781291321491879529057242265166015960055865764653879528242897480973048542448617150581531499219831978231232558087057349752203997366773719767450230875434773782726283534784218191405137895810797235738745436732980176069564312932875707266062889928918795711177517524511630251934240899322610678996649455064792184295177216113407809232921767154609965011234700355981480532075664380629385363071505126615820878838172946295923536197594407900882528292845468219168681005793078291636408676604251096362522564685995698539133133785097700946080805575223953118753944209588969066878906695399130777407982441894815908760756167315002624523198191000154918172856094801159774690814018361865308328195069292022823132985629660903688435316552568899278994507555558727136643359957353522516304814714119370188569403976716161464207543995943751213303758201754064000288190851780259100876000392185972925442471746849254937443784928194889555692282478494918686136482369895526356577573284379711060518194646704406874738342868766537461065645275013623414166512660716091666930425367396677378845011707368171147470396126230900964250883860827829057524857339706691584384664402879987833404124581724368387340907311337473163833562241169256970685641827651442833579786151216477446183865449367343073180100544949447655004655635356829533858876600182342534493765505011861726093077314697819761175585284316707632662920380484159441340363547839219698842586122904918632971624410316469833717054443207872232680579592500281703924416306018298636529342724462343862873369539729948644811662168450403193337849030855036875339469395372036241676563396991737753772097026646525483513272306711359280972734661873327252989034455707365880951699307049555375254287508671433241320851975910217641764959145945467191143659230056221851400472104203975330996140274076194527198074778142843996414843130161762030997639513212041247625604798577337661347872099976647532118966580373595425562103916307419769457096276678895333190947880453619209177487616499275444566235074719648010488640525130734041640112276635826618021909154319231452319459131459422656060294324673602250884277677123999008269892805708611690582733899112549204143506276095189809658237349741640479987633076314235960889107075958429287449996195513134195882367284835704267432429227977153183180405566820023172853185066054554733321517510574203510604322951698837236470449021441187795277772020703667998278547413394677441763335158264102622753821480235903802183269236490456124129725771941334150808813284860190963942657308220557043847969510857472767384496855772545397902102984868603519410954473967103614383097353760592148682772326908649142006408301644879872990165846209035855399686529157285409429178396408849430374054588542450725420791414898799567494346833046754721538199842391831830276619198863593854427584560928701659529865384800784874648172176730794722745875872392901929321555663714219288005687404312793420767202775452039578633762329559630180741101504032746137474330401495991767284579161552605761747335457478259870359049376357598777229585797532679211972915708006600099646053796997157711909784035209374721568012766725819167786558931186263870163033496670560109547401750125995808207724927881597115011082457570122368965677788642247733051571636489633580461694379753514233189326856193097416742822623750267120296887616404177466739678146846793380150823009189594250797088170151904714811111364645962563063721287326848175148157041973247815282008511741417188757929117655454002655174733207389831617101334578263560205783548240544612211716965240477765788995840027969861129485639910832952593779695607945250710362738314754634099355159044747456472010482369486497010801239394136864193209343528162248789034226772052812896866555343678083899206819149847319298482909306667573332942118748075509866494344927602123740112052562062752001298854275202790798564320205547562778799286016426641814042469871875003590829288853741029331448528378254452454108845356678654650216189925750958384278267198694129112748678695431223917170234154502248518123488778931087892235580068848604588857514439704313788238635693861497407711878773938810869226121476534683654145137478732566854592352619629214890965589436376454821627762211944878758374636592790215060508265038179158848231727125226111282570025675089212857341874124733416341816639491683458813764101516613855579404440227664659976465292543621118498412775417397128074656157893862804209677525918769225024546889976331433775884846153408191007019241045377204927996899247854877944101108786205087122716571029453346920389020842816129873789456528314467614419299753629294798589433662775973892407138276710731601253582745504140491739134192730080300854838004857292828964651755942082706004612453189962678362503972417368270415444944828046600879025117911954409987730724359978917951910460457298111332903148075302042678054990683688877487929345826569250473244196552203434408711656883441272240987827290049113740693601520977962858945742427846840109445687347886422851174635603038404702764436711757047093475856537716955986925194246905568656282083565651882166863066002515895382148080262201862715973209978611872714521185552472327295398793211960816203589908520254004763366007172022839873989102737908097227683968489674027322335068240242566808771054633724460390368734773578259068023195392799381584310901575943364243157197673533617373210158942437387073455445724299298636451487616017032980337261716659945074727396765856975786224841828739459073848593330494899973904021031797797029592923016793953500754742457351049071320894981497272970174259408102673705806954555157508189199738398886906782334948061829043128792501086389389551229834194641107903022118870017122861954676547240228754204815561207300521751758335293435346043105306625493670591420538533369143631176297677341089617807133794114017305379006830733553776323537230832371199822017282693710084795471529625801623020917746880195263465152111573106582192501059595027584937218010499985409070804742277716804144437627633845465179736433113793447073433696242273744606407197927668075626252905881547591099428440797119865904476089028693185028620021268531136790812162763305237778105615027432849519836504502053193601438092677371709787603991621436441477696381130294521984114589555114223616066210188942169789021474513470113173514836042933897845496017112956813417180194300715017896725271082559273402491224796432706509170812349996593322054086345196795417609743284573862092140608798889174264566998062607256807852635341476094159610312632266295622242968650281857270965926976085890687967663226029265282904929313478281513876857012179939671777278264498443551786587628633236419643875175157821753516975642105476134117760398487866972141586674217896324532426807387790125157841791834234877327086312864904534150150798241189167019154007778637383765080415066245327483142446258331725234509646676921559924928424962238609849597208535025937601488329515927458309702955954746234453199801181637466931289651502706777697620232777735803728719627181299841923181007157145609757784545775049911337768685672427795489665650928163524831133217405397290548209851425866104506864222052456527935767523019131076230816762599205072898808859198689569618136600991283510380062207985275487541261359719121555873779258188019699150176991828771898056849757650016396985465014632514514675368859060895868488295671975196060587402982646715521537551380894094622495840109446364783677010460444958132808709505040190439264358165003987287569525838220673631937890792622725530649481293249022506763304397260896056905045894983744133700058272634497144423667260532431849573471901622418436527890605826687922029742645938228862085217558581201092371930080927677150223645207716462163306632011294748830968381587285363042013188780175528672323965022192808423713132576525331190439749789122772977677830864980585334661640407158592592730087011482752381680100069294822901136104743085229832801399892429141809507667355846954899336017439095633135425131421422507119710221784656356850673231788725834043256640752596588555747602941498697475722330849373763585662428906221175581740912971131655062916459550204071919493833531658165361674421471942783098526540919444279608896920476334711476199307235873721006332742844147032054885938841788897187847817208402830267750781840919232989462441958669542068825977928229525250283044282470961665915475123807077110830069570984834710060993169269585761031004718361145776474462368945322573414470562514149141455329287594065620033367621553977527702496506819049836501377610662398332440557126449948879779329553074690355351457463179846019523498755792724925520747256900270114498985656029891866688359811995496943817564392399524752702715710068695388323501129310394880118726010067501616823921659314717600872414022154811902896543426806192417160616584732650357787436171047716242795138972995870467016510850370818869104373702208306501783323599814590416738651347341804838740684499025613005627025672978818484848279850272705272363475536394327121799818694237762806345137172899958972824664326174893423192498825732789157071570026703107440930819093335732549425096607595892520982449570047353941059434222126123699839985628570334458662662544346941515392519625361687422712935518322567222280011393860351129287703559274042379457489128338072172766048410881606091330699824416153865506558594751462793947092601832746139468665700749846730253686378920467761246895021084777893613339433345743884585559220482577771328822624922050131603028806054477989416954737353560511577466591691427703079464382772679735006430031383420485864209160693283469458601047652592880565013155126339736725867041412845348321506563119935366862405801885654495831954405234279139844543438180917147698684444047370941674088214671267563458309007062772904938324460572535164195491763926835948320022479491807873868557653399933271959995489850330989254014312810513817634685136970688212321229199540298559477683229750615249939645876860346374954534927959814644538634480357579201985588669054606136444502502314856313438659848361373819906870776722856143940715252248658211835115505653215273811858651547157310654463052157810519362753602098043088329309450179768459602542378475753619023557191653654475448592102370694577902688692791667961181635823755779350873274146034525139120656683685995269317233764837431361709400909133180672795975909573616876685815909360990001042687151252428462356439298174581521998887967643230327890663767568565338876309945498422795289567007708415418362278707733133448325550911263786069556055984493267831745387552574673924779470888180116953113967188417391111708265700549375990659508764043512571044076491261226225638302989686814096678465060617330193928825660656589327805079058524411119405352133238343304585353873266382968789363056085393949598956934514622683143858774624355104162348841651781828086519866660265305471358650641211824860130162399523059352990127510847509925343392091163170907361733117983309434857457904986307105595757655631278152882318626904068224629912885516851894976623813113576606730419728713004756808905672289660247079663086049560908744233995386710949710212206230677098856489703925256596267959227260966528258075464928019407633356761414045836955184229249134219549206684569505025992443413599994440301636521629711016640289920730591452382302201606588454207829450726089225501986849306329701272408457945497876995755758630779664043334524861001353635851761747406852096239949831567131484241584752558058417657051729692217807179281823474100607785697599540432071812456422172407906164501823311707103758427454025233103506168482391412433345240930213021295781762634090777525096984499708116603249494042611527621077162555233382114937275568205972481707650604783460615380403210964641083210900651939286089883662843527115315473323391172944650561270542150185502662936240934295061460663504998984711220443710642502289177206291105319513574659430683309753747998026194425519750553182697654278361952262084729297030432926746124702746011106410920938420588409637280405316140206940961261631569980532333989136298880901710232454627784090298539998059738071490500454243939541758298300500400221499407270808552358746821217335468840513810041940273810882597351149358868700651892921314976771663592920830446666860030011201563694575065761626049083481943199766964987311114303380102147050856668832152502398932130858457814199695373066383285603412245269872534599628705611779445978267588629602496136607637929931549311058119036811022903229418578988839287178951187042374305996472821565968082576001458088004904798028912797706477593353887563391151763736035080607156618509501553546511355415759465354932416193065826123045617095466559165377878594473695231150124150224796225662717074506050171678104272092759083324413039649406837319525038316146484109896985639429894028148826788420128364181216150160620838709990115919266338080151540197920852019955672294905272194007619391790708567616839644192045840420836652371466997035699936864473848169280890438576865847031724383610089014843790670786490045045868619333325105782107081104789533996939572959924979406197763148399359843662934354736282060364122000090102269013600615838344550590832330201621178513192451867239830027038001189810273450099999859207475181514645352470232449025901531790293188907248532116435762745058080935565714122874937982141356880647382069490834450088910232792881665022271384767413528183343420236278963863029845863167516027048458428060699409310770354505989828450129152883720615853042335823647584393246183808172880623226370468983615062222152785526035156838353332836315176088108964308296147400430054047504999870637819785715026283784996622507131944996270917735968835354256922696844376310737203777778904882896763097415508683322386518073353968359423556530827404949306044173459602268393130437528070134361102110458402062847547326683762076539408574352291500167327647042686833128602157185853868360823978972839242032940626134987712219384560071893048183354162753936740554151378176452494446247883158543207466217224981556486821435792132842991142963242524516891650368918891873817824310136237834786143428129976251053376788019546880429189059526288952234531811229615488402492893603539393907930528083116612489755877605659520598029289860124808624930839131135063448602238972096186562942590534189756453648868700625382031615156908607833833691831246494354813473222697192233832750272825834564752125473343525611460957460753727251933902893395920058630482652853881697878493461573234382303631792910484184063304084577771816057580538835831140661115935192411264298703011722756411382790124950724105125088855997961697169434051352475386458624454600346271715887657470601011752408219373904481154389748075048493223371005177177605350553722422621280582257277051537518921830938586981742288098816351399105556203461656788269807306563248200487108272903376632995147899308572227051620288837200288042250048983670248279725662762604032120098162047600608845458059647779347274334069850730412487413851048350299244384686897291191948980341070429306830202856043730839673944280242535627580501781629618883173843063024187286508680496179794847510265618356614083975293463173953750189899444641769055437242509266341785481212797552355458183584042462184148236117366566431569526495368559119321741093687073727562065906244504111904069366465949522596638744378897750657819165067275034738671354161485587596022945425106572345732866772457213978878317751088628863032539777052613379925176330603281527542322036428228496750502481685243152225195508554763160214112689908703052334072709459075133115242015989620169959679090876387575335593424935429713235310469633581457985696509603426863792091006218637295673316391407810931446397122818052805572398348969239195981317169256092700860845959024545658029996703593342921432412270793662968226350043471177462357403302127606232460029751813129358464626602084612141567242009977566166241037837065431051894342358510199450928824462978073587866871524699047791241525881799856360975531628519155437005447993932401422055012495455776725400282234086326256366518568576067415243104122758276303104879852663357406681125963228097733682388077150965985213112488317115414687182030680563358678272333249598881614668027583866330025798329640573783039694868208237240215222049111231097393410323273372621298042500359791610167689792478721292051304612842071994588369812620905456217939127326256074710302950637416449137395686606031469793707716415954091176882561609275239708686795662630200064761122331420643322541808823068347252955577762353833120727838242266063469730183404182005240043833651153591005653865639057598695055466858565221330829453837947888452840714828909903464604495348972267929707925549579884633304547158321379845502701819806000574219594009227799913848077152364703975354681851251554812626853344738107079204313674974238007013137652023743597518753226214323505850961569946181113148694192383297130433441057047183935811510777003325592495624447744320198675789157334623980864559327580320920816503140333736697077689919049953279518701202543527359700435327506232457128272185510613352414955382925545444536921562410302690130021167849238034564635146220738662572625459571090264168422416013846852376895389465415379585390388893468115489172144868833883131464753016047562763061985170796876752443223368824692847480906757972806529179540750724200524839964063939554320067597766160232567162166491604485339844081192560514644351054889517993261790426880751256898155200058060973953154983605162339070586218852106884746028761043882144499910105158163240536106059779239497639463412777928824916103998314047067601377308938681134206862711617694293539272483075584531392288033540536746085314156889547607170919484466335124816380842684189153975505167989174752504820393654033557981908523396564318911803774381155140791189631278232179899723838620482094834498347022618756717874901397515258649986953729539716878085669259100480248371337148061999738856185705401600159286658797280300177624801877428783250343916811355043081208090902467358531802978503555676194589929491005130617559843122341105562732228880697274693282146025598488007165572067642282679817451571590988074926141837715047069742418156272409207323614734693987491726292746615678490568481987166621316843408835125500542579128153562653158436234537719075669114033950651965878167165463231697256151846109552304148565236004628517214392017068991457706859928171332044082747955537027626682889197540249951809816255441908681425807494532244414699171449824278245674306677240920210819558995357476593789861639891061344219741631015671885502997603306856489815803510982794210929017596357024717763706183847814003761234650843832786223128007903037069303647432404245461511647254949948542119148146786258066938339144096634276573178116144189492218076347877489094871765675585442870152786426922993809078429416203332189885671580493353501375208960807900637130815229426775022781452689717076364984413337050870607311463259266246010282055236929729758437015568889821312282030554316782405303390599916838879104014644321047519965581186510585395534827667865262873895171302498441906540521950851167792414983102708411721059810776613298889382881443870617543609939046542811844315732502493613218446209854511909290055735615646857354715414199312963324008210792554560801726300914323484376226492888197232944487953122752078864914897509995705841197065417774034672210311034445271039281122478803729414611162491266655565399851819948185124507317077264262996936887689081545473034406182493189821065236861839336033931308115146967837735308861629298328515080640023950309138435074074267168124656285439970734404493170729876499969057497629966192583418231109815420607363195310356995728049054824538180250961320570907901280473881475108488318625673038145811334407575302485597512493035037849888855311140932424124214153603926343357893759209817063567341868585835658679125761187170727956790724095891312717533885461138239437763540353885581588658022665603097508125795485676134748270293134774601951189724599211208432741788146202506596890993051993113432111278202858991010206245986261794953887154569733468802251021753281939727129232489625257707646082231684284810062240275978480917125843313994214619388246316968410366925660280280808345542102168090167074291524780923427661543376306207063136711404272076680283306152626092157869478818324964139278671121290090276887475229095569351847314622137443064167263101395837057449077077757441231152746635885875900065793029560910206580395078801403425099781692525497810957230671452121896363870642849606736621208350653584592430857894238247278052410923393591913390067083114460158528351240643329396247243356609064873881281763065565111116606375945059046082575862112435458633427077787670373587818469288703782970381405371915671290235885769191870053417096261798632057418987913789899235219371463547044855187680355682778215212465882342755965731356305822079296613365353945151609553717953401592125226920742913873417377608469348730671013417037088534055867635798109248570603311446212889203160909279635402986898636496074856752489812385214252974597202796271778766071691438447604065470273245818010919713715750133852281495181007799167165864328395963955508748564115690010362834227669592538779320853929210942551838002185670427847090912179323233817792706692226491669387029271837312502792039737642670448802461604762105516727396939422531172498031540590508926716504547117802128036570622514463644638768309548789043624260164542590497346303818801016142429169881635667897880890365002541392087461620549228733841532215941250997314711547671350712022738446314394646179777474235553169291737111336577656377039499847965896951442353277562907414781527624942158330269690986830331226150504048689265150608099907314361984879952523751723453595372565240637214664696126353869868684339996121176654365210965886436433089578646343933844174090104674843126282058420114932702277531448217557134541188777060126336415468313129501576821391750168203679000060913529874181207801404972890286197256243535982989370305284489016262962316808768206798436777412755814446574095532981093534098516379640058284500895843771921603397917625592356392670405480012011167590380730593572126877277418957369872940583396861481812245954859628809314835078127962328265546217199916010609546843016904061471147720959573236395209965035653503640054937870891199057909921408191193580700829860592514539309195858537941428780241828857520419810697788815915658816035133330024390761086908033793562584458219123622250622223766953563899876819689823048111566886024419426882618300831982564448398083082695639614841159774429486106053310112629646004554317353525654147448020237637728679981162545860188644641282635596109397549637430571957291380057187415668708896587583411105238071490169272532582241124886663654302365538015227165083816705247453495734246650750522183336394700310952175563688276474151025172049995712337872577405354439215408777989517584319085765908423583312165984284341561671672251653978276255295569214797598582131556927340859815671237643146447283194621537766009311599332858634779251853436066296777436276595556633784658267838213203392316110438077621761678363950317674435747152962683557663473442060938180692032355262293987766587946228874723958673954149175270890615345619797920928699185223738569594789305344603781574193944819415174386405542748291910954796742241898702415831913683198362031314182453575002348921039691881236365165644847293691363368135570182424654543989312578256509797276247965704478943299949031427071126446465805876515836686978292189108764226513128602461614252851611115630670688835700663131134791104933329355097431239428149120889826434558420212632777929306574594487662887791244190246828825309478724244315681104781505319599869903331371892225348921899356764245459654254916241253742900899262609266618469675957590199367033998977172877312222090395461876709644914531857884835153341176724683262979185671242958839366534997737582050188058455933902772216975534219112064301855995260844588323352533592123416416521494414017794391888747403668243535591070878988581488643482460294861336249024481895613780257695753197779528706696077166899620076380614471720980843282890070940181230603621809629430018121095587336714541732230986849869173217036908409057679725958239499747921200182126744129407333478825200670252800485968074779861704373103436519930549082150383418883655193930748928246466450006378617014989271401166196091709506852701244386021645461559998668506638520049080478809427882798030165722687812266141430820117062824552488710119467042899759311634096024428951145254689419252684390385088874821100796626142396255688092273742627496818790253994278996739379962911736098031968103535556813820801774421885175182817029277860705191411783570453604438022083350429088522658380688701865854721588835980711430297060222115876151289087213540751525883272679081943340700017194816391850319127342004636243656282962724477175716733704176046619841229441864432558671551575385139922113640988051113430736766165143693060408693283383088166101723021618885208074510083706822402895247058184597714508827027733014397834172764122898470419771087710820941590699309833850989954391982000290026307199191304315472385254527097993585708224599906790141837279204843503132334958889862388891770750616353954250504265617890324735186699465783902580955062195715397311125013106686007405447909695650945979809566023541448186686985935619701331492799582301672989441351669032231966162567106829744942491707702865792518255860313157803917499458900274832961491859547504198104656940045272698460529144209151319204112906107979101208464890175093959686670819393307304581249182839968247836374747582026256119337630195697877115464124472560635431786520057049464848328910056632412085123183707492263358349818990245180247346547899867929443197530160418486196671381464764278626364995285127263231254924467919531244087120082255269219038922337800253724564188824328914164270861884725132440523929693210755758799710692079486166465461719793709386746515452247937442368396799562317738225629481032030979993090765813179556179227520133641079489613202549677269093365157000570184756983604431951295156690611149780312046626279642141423021469028618542475811630979534367215133149013377360150216867954787794320121416781124059174633442736952019426961009650210522612627259635190778953985522255979427592849211713034397998440922468619610606641712088840236879862441520172801796178868328851512200221190922828660774254780436501913143838859841975079219322771075478652750859600481246717876828788629458801148481439876626091873602569166672678819931284332443259787225288967128676971917850323310773097850297424675761532645868842841578867241053872648147643694767868345397650516189049876681290540398064414274584155036187745858043757047689275053707659218049742728655636421481119136732274468276434562041366157663881194939403319039271976663548977929051592364564814755008194781087125694758646148092246946869471446129912447756322529195698459877799804613638063894724303513941572125599923894396028497515792805961161504362445734989769312983792742692042948975951124235637797192189919295864516558295430770155941818824307192557615780936491772164196334606879403474279636078670058066801724918363071923204399364694875784296960275253232606816148838910797256009373836836923848738840628627506808526090665214581710758326866086897409533932950289560418828247152135142171149512322201799796739333636558569044118097643347659501369279471155425199593656025183497744069572659414515559642450593438666058556943559490859477431979898140399290616175299240627644332868456479928422416550570044831604294148687219047733198756266864084066052405253577484235459913071955091923319304821872285092422384870252185439569646832022155212892511922514634623950493750294977136938261024613925653874762679227330193236810264973867032491036919460258836223279410693789593451385118934580900244601732802273712442543154683871946136821718521730637697712458437820631032545155971574473359702726496988107410813816004038738566229925022722809596210707465129490602277343462739264366630525993865324096481862744083236493685757283499889257441981104376693432529179224731661398999251451427257233129139660068346341474151291121729580700559803652465449005361192990512139682137849619865097512039824826126696569661543296132104671500058411533476855931683972443257226334184708181591424755249604346079762589537746027958821311035652255318261362967264325409540574024069419934215850231350311743620303158413791305914897200740993810819598452011753119134156781955633491835573128824148454400779165791032343200032863480153731130503020632860313940287952092895747715326775411516080074577231660803950079298237281112139160101897582536702092228735721690383981733763462871288000770763791341790211039199744019363874012884062428035855512297646333053111259137837326939013563221748250818077824992219629765549466062868424446733121947247087176207312146693490039183575516910275232946468976275442919331669676022240225267830863149955137367769045939804901000500079118559457413546931542724407250391969655748362128950933286800585684625614250508020246106259818586818461233389857437121513073915288611399842816929260309433170644285105499814797982766427194110099397052903449912354369842555960194304269041264561064411558316103647819267946128924803524934276978345417901308566090155988203824976162985522745111049122841431400164962759194449392599457959712768491717121162732419059777159621298689129002655846672432250300904690667534632184011062054063688547109835657698346961917957178135471500482740574026626058274673236940178316980729859520544920311455094713677034553761569224241010066309574464757932194873932233580473009877538809882941576334744504921553707592485452564499287187381587386844863868532282971328611197299981128473959016852530171286081019283775608314261198598163867663689225615900526548682795540249448648260906182848816541735313402489967067640913027661893011838577396574987064533069801870290568309348323100226990622884690730968514886480120272886680776782487735252243250784166029928102531799964267194477369840291067646190785070249841896485150805870103903799346632338420231312229570150509115346582257671159860281599359133512732138006914187223452237400069745274649072502061026446432430147738915074447606404276174406631581910367519143830114948397926105704819244870788972971629479940921150374720090141687065063071494513173419778052442908609757445991644510779421763102741786537032029839035046630111468168894971376760557224468282354101836071154609397961143367323643118602388142292424775578471302377131351598322827190724988122387437670332399520466581724382919305101004575931193957034242741426483666867766474744032868135978230240814489142605720915451237643286269650879539993972201964404426160404606275204981765106602284751824067830121405944650639983452324829689217587666908511379016362073995499830216156147860938089151599309571992643259474204972594196698657891302116716653635367390363058172018998965350218343522146525957924561655484919027776612130400195668840180672615005598421163799233331112296188069267429872495948627181411640689851275319319220871885841821659920535745502998177849119846999943282541036965597828555695546927852083730216914646427711519709792902951125972577629316414929466484600744693163406301078123952244287686663224771524357133326650080751402190053928753621405266690438460468977035576091275917640785344654235185854818970206803848838154678755451480272886853145152354420300949486633275380156842535130599940405427336572464667028672142700400803685028024257619827460424413691291395868856764714200900451503363422921439079805717530419473118948038610262610477446681190158875563650226163708008112140124038809041248363860932732922781782892949834533716705832851177973264828795179412997155170810885265227633056821309785289238419152858356325081147156124733780502667898544527894438248946632325273544793402717992988508377667371842714790196241715192833254591404761134222684207834591415812627461020447126744852860870892994529027715558398522470216888842366904975145843619957727605852331025151313074528594855923436174641742394557994633865793849412836197494721725816183469117197571032509388799832524873986635000680653769435651156137648147457805654145725740350632816592275900642304838969385243660901891351419131585346125709061607605341416869004304712660513625164028714902907170254897234705875127986019927422435545655534639481032736076988619298288149986064964847184054664202979648484540094776537061096648636130477202108700250820143265673255847527232538709279132667823113696058743544531344092834854258186953405652793268129821502275261441044978579939990228052349590086199060977205770565364246294031602407175962795775131162621647793125042539297030596520466887709888998351516078151919965251627691257594282487991319167905155011371651334944216680582648820685278985869338312986452095722837724016773947595014203578868316226671483747855557652742741661554077948859366190203737123807807500095704285133615623083899343310275710469143459308080900079391652431301993246679620590192551169351968548147715915124914380165204537771062619359482456265880712458318337542044144685972498721560014189767098856939057873000127868938609155405468495482537309049890806632624541295991647619881346762187670872343165739703457894836448954093310317246663857088610639335912000314192057302629126379371847713990615904077236543981349404060176628428967205209834147029019408768757098079214780960204578211105673108698509346521916052173474039369521016098658124324818834157691888870744444669502196179492401000242979431577816067837848219381227924422502264735324681599803849683885151191274988316556388303610857926287440233930567697716616401040867882093787164111196640906598671771993040841654123815650646384274222484013157111017818681320572073548176756787598469031582049672252984783005133815406782610681693929070094649388271873071048355931916412832642292758969973207987164625220855251026316584273862377219603596389858065845463375873767107342534222824993835357226621040308707915513296608609199723268026110694745921253124665007958897050911841120898376829153229169192027632718650499870670516798427724777400222987769560828609162935681919265287856367712933826050038379435711897534013211347468779019474251003261678161637430135136280363212016522751110296177678267240714984195938761037933552560702358662504802851519026940186183971235775753668867093831169652758205193949526409258671392153453367852853590630216732402612659366220918910486482262475955396481105616002675698822796639774270581257355126745855884844330559962199077840068451822074206290297532758441006297554853599745870408745011889138878725767585035617987674175550825950198391090343461486177732793041176248896091349021132523909041370520304633762270112187821953585904112277127094772930415564140014925263981094499959167396250644704898079055849630664533567596474291634427558227370992820673712020639278265281599834876961219252205275045277927538037805159042029666904784995355997440357986228669488153582523793688793469469562615024929837472491353494094119298447242170980394797072880206081624521353009533147958965302833309215470575904734970102763314349666506788314860264356457503977928204554648902294226630842147884022993100481474904424222532460695489598789677527549045505740485940983153028273591485377671946506488950377265491114484198813874465325048968770803367367026807710537285330809867583906850422263219603139763050224224979248993805215116324666656568673021108373145274917542264678879353571670711965590701734578095010475437416109555884053793798834581401253737232442004376648418943341300868740332907128983568319856650615835862505308735069528814533097810645142299982453609632228313402300167026863070861429976364380370607390108974792465514385061262470320295527516564034816499063716378687423509732953905939074830177041678613701825085375825371932360674547374379805253916516078368492153749864996539487750300951206811870388543687808254291257408944696252136203543128078788335259461167996581013709671553129872803862363430336079299893096501231448794346953779339822060395270482831148548177642988958097105010041872494584791607105333993841235785542127449955044197754092695608815067300095301493130617392007093243375353154817406864749092395556004778532533662442292787716596772584119772297355083244999627819321203379487629579872088171334422689612813862249941279756022741924186374132219330837688776702623841516911802782342872212517293124836195164228638574877603111381470814021517336189158332641236800040966520044632479616654597734370214001067216820554483557591003463672972722269646893891545198234532898945197468523286178687484761655782065145557048593090838127387418031164774716967481028199025192569384819866908325090937850927389419137453574408669306833267311703601992824940776082883974394310245591745559227561758592696563848942024257867910602507537074714496528383062051563203063059569448300950195405406526527313848785905522422909083583563276995737907984027724675923990265101259703169371348188439146597368673662466534058505879694517937653110787114180741693417283004574959178787064089571776611718523903744286339342084104680316462699192119276424099758813315608299227720651197060362060295879246602676497240248261129684802880625251979802121084351964822006267520091908619684156101532120440843683803259294571809043587810152379410112888904461461560151249376659864440774955638905129725727114471299662353894197989879595230179538632522798119631048525625296506919124771931046708369532191538750236858354870159686343493728574526832556523244486471977642860639757503017878269595762054185875378805216516176151065139576683519541109245507776993873535073768845875103296973156393464059047181420436183570325318889798309193200794343679636719988159540025435170792836289029439195058259800442447400246478634871012869642574039759419175857061664471111110699609080873301310112195862824692491483246338922456473505910664219444099137536853117018373898109996562988633639912519921861407775668336449831454023833143355159302868858080144761397556948605274222998499052447289818469995405348529801834731873898595416993341298834639534844171103716151871296754718878820641782077413347500461475704799510664846006697514820070854541198978822235037477114509698343789099804942451585249790986402604742688376165719461425687303035731984159706700561525950802717461743207615512804365414547380502645125623275419018419781143466646240182117331776532926774504825448961001850602652892883089052330180191313387593925824327180621154885887246382996660213193014507341237490266520150535768556007861824697653878151783602260285896569242259300221981525174306300807086640435144357445335535338151795137000472246404867137301145671199103308041546025711691447847092924412200548407358396846064833063511354883599208931236116964499720056383092413693988772109002653217434539784866873313820849269381406400228550467119560527736150160680336770396644688227079358329491526083407772452429703733714349412011273911021566931009184087704250501673827816980525152873957701702325454974682926982666274371538647210877203021369540225950359103051108546638208675626419832143944247441457049019005261866164381217225478832423178956937327785851277412444632579049619273168873767608787582384872701622471819796145173755094807481723980481108843476811625036004526187540011052920595278971357012358747783919845706028138133245259604936375113042468608410669468366170397057743595887666510269830200725429490816319177821447762515203027986457460246004477601762623601105100854535799105170438862221083441922432727275349969609305765584623944983912251217360559760149710230853855578563604269256920687234023749094060224126032879733187464919650918880246740622335159572838140913341667417177540892163276952730860587594750473326474093521263512629490079446297515404329069419309890165951262523277876764578660228268022555095083876137696774604467700382732978314634308218732391587082735375375012575708011358430412972414380028366311796249611148727600020266229508166425195249938903957899649921464746444858741749087312101142392469339022067950566386076189642947213622267181716683990269978342603038109619089112736513785542479161297552230649971566724378301656161198892678904221965217115074798647711784230807151827596765447436964230479581066737073379885283042242967026194494745381712504445844636106608489486050985380625674615704169518220716403582314452594889387911454463605075282901799500252275799922422217128282699865855184185731573844998930345282018162183636502620955169430039220594984488912214260656306443763856104328935414939288175417414629559477856844908875437116470711633226947105569510418257184527926404453537140417647351060936362302557682625913207862608087425714051216326768143376766181048763847383088224224053634466601196792771947326319102956922424725759048218770709361134881135996930985100353278305077702864399991415169602866618191406733650793577971390492456787764654360695954563105159050904211265262010509086282355706435514084854479822306319663585129441223626410026359974551508754475281020228813592556118812195034404743429624603485905645036261597473944309285559612952195443136758426994705750571955178735538549210160265499591306775078297514410377569730782770434009396803550687354602977693646668199768603858875410166223339946658062220852113834387560200037151439707387387053656549516970639809761829486533694398071785007446754044018031197654683945328959569609478581853080970103082757695097594399542103982729332991207193994476097764806464372177987217074857821385277574871121311839948651719279092335315613963804538374447904898536267235961584379534475680873207348111466851228838093772332815803201177157979362305636044847525091790467715212598674898600819899641564727314117038560830701370985733077636592085287900091663587584533030197065225466044658520164493852144619015259695804228164443799910414496869963791335477426985502812428165841213215539770349058623031387178933295799818976238411023926990316922259048549548437701598899705107010579076601481634607954778416795337850403396951748082977503999618200856479715295124503367760822971889914535546651927356665477078218287367281462568967217753109478235309814880554529764552716221653594638906119520264508983247132493061562588958134663946508287863173135295422173760089016308327886763872410806006331579512496022490493672694054787911218129344760059786757867666465815414047439799527342519504460348569122343484754848160026903680708075419570832718961034965222934603596285697964976750043362961786147117488316714877774577316890432901751779796207708048296011594095799194390913418991303152575228170359601212677428574135483856665860100478201922865887919762640389979551198078839707786469821232239755031333183106942556816484208889672872273620241595446643417935233990535499793258208808107573099572849740283788406226103750479034947844064457779121019713199527121631201626738915967509900669302701863023313255798468405332925813686791419047152107640282657877734642475900720907673874646234118759833320000444453613653274552887993051025569258414141564217406734532950628722933007531290424614729122865795916339976289401141937004896126121469686566734545322591450248680923891849161501353333681575791456529456649801718800138437322736865559992611554396486256196306449237373650730644607689336269750138943917323682623524080236036198918860892912759870900411779633295662861142971600186984520894768440151431493041852985730110496852616780734434077985885096413107308320680985732535679956709934111424802887511970450709210914446361668175059075911642448554747796169425385335854560650569740355167354372834830550330796575877245447731132404894930450802783261921030672129932625362824246145622282795955896765280642168523287383815180674717343765747760704488089989947731065719859685789460274563309887226421632748409225461564435140466513450671044129162314366296084494915139571361567188639746543818182194618811836959425066429377052823700134391614576457972644693115600944615734633243994823390992757018523651152220808804188925521216381636812203146410332119451666149770551190488123739032151024433206819985245141280649098708891815994423780334681182773194376838383349936493175159894087040048115090171504898257389283244845054781577044314258391477356073098628942264550124575621068427885697297097657248191386266126158132148421999022869608941155290685299757552492940377867307940659498922263320768345662100483014178758109927888064682497148601190135042787622154399023283730270020400833863148329370656545668290343333176239390286629649049736866959583343210271960071047482110620637421082139981364632771378731010599142292850395025729784574604740813655452306789568075534172638290182978747610590212705986982061697828309311512800918655185702115057102628788358994183558224248820807064428357987001857084112279305224325895746601398544396626821854127758005500070148923544899118861428462952882776326265708457603642607563332690257899149683134241778530902095453616500357412002301328552189260786572551465778087823892788468104461674975788946448876797949926443162159662383690560675390081783746704703980559141437684893164485152997902030091196301768407192332288135483000868034014856638032181929940724629867792898691147298547878144942059876184117856757884965059932401098086926670520267325518163066150458825357063143505323310598884712845872495925875850446774020545590294292638091939791796653599237076473540692677477107488658288091034107935332192118667587555415529041251064372187543909153911519347294118798515939332876262023608927787574568663447764365218518806388750644761861544217760554583581071401577262206042878805397688454241545317122128989483867476921741574089605738144249526454237782825705931280540367588735441357130328148644375728132480267131730613080306508702535064244399590142865192530686136432594578860152274709905557455862879752121597796571099419661712516906258519524105872485310085579733786763096396177962146948787493220085350813886669247766822416726492703727000111460781447887069870194567834464086531442355373648065754095808444292651601833831913778986339304052453254459839092981966422437020580992733379270034140425006444599842740000259929608414979234920880716304616878532755926150328060979641687741074337095941125533244577421322065023906156783472321684263987103788285381610372358433857974011353266150585462535579470712033483792572285373107105939807232633884796519435060538042022660383003021574024178821800042634359118994464055394940079892252922591346916448823388783321668244817116611471598103887332499411953028646840839521304758020629641142652442879972262862063531802652149690949568549106157254423275507212026043672818955997021252849585178603531805125990365596814005571970642229450461094930782414296043823271758876487402756476169443107758005670517271859635819657526915386827451092435664969133217592027961034487563315614468865181164688539858843810381518927867257259769215479279484041927948969594716090344875718156188332193902736051862606029552892901793801009082005460471278149349368624083071700518406609955338887623872958592606454305779472558190592107945781506671864204073164239615118192605669939490698189480718827544705467225169246173715168270122611285868747429883570627427006376638870677163678976353467732523671212153596054649447620014601911884748617289986769708345352844283897001379740141261562357596238110684677394170429902918854383035704326384245565778245925462913487160142989504539637428710120057604881016671859424395383642883036608596982361127628730146223074547155067669705259395671401868965335793031249566725262154710167146717709603024290895046879230607726358508263781477419867241761579198233957874114869248049817349825784726553288748839062317773406040394033743044831424138589114471683439600829514468460249927381657502935116967954580038550608451676790636053043348510075176350249222718587050891232337764688390226064890799055995125765748415092389620902920538433318260559235501173932124654091213403076948760767516562086162233241253246487494351404490995888122415209481632320927247840873415125250872912650217721989439144925354130967047200351424879845971523571814451438330887712040328481917976683666839791359612001716844622813150684421767886763932192793557872206153035275013823640054689905551322010608993497253106142191155197418578409250158693356958482903083048174578654065272595004684155537197872427304047478110611418548728381296905595259870539800827957495962418217233563964530036807266293461748097680143102578949584609192290182536543080640416357851373191411198828297261951986439285274073162814551307367812550835019370275285244529964049919614693883070362076497195648942253035604354356318462030376550463341895293524869804528117626347814324181290903935230747334947356366442494180295285064603631938660964431302614167823599449231958179573121327858468361341321902396763696535572375915586862132547732623255329462301210402018792402423478752119270220239037793261381683303278323359180787066773154139508443138171446943687841219435122040409215209920018725093025405470256248566631730985887082881583428585247108489075511971125066544218404714006961853508111941854336380080816272626247583562135403675334410017200071037565826470966409491964179666667192043214906623139163638865720149675852309340977839751190800642047372945218522782022546279105381165663452067881220424505036648262363490752786520257943224029893210737418991501848153220487319956691865560931763635983805818858355038319176395589826906913925641795502738878780731284510780442286293808617560610772591892175440767873225499170993664155935278379786330658510308380946158624154353609352704788877780834975385723282118048130735960814556170020212895881718352742383836575763958849545051268329728926161611714559097451879274318982076499146328618913823107145873817756649552083308595047518730351043043663375905341611647977563370431863639722948172878312772983711147846813554741587403897622172642493132920002169218051021698423731331932097895547728501030477837759286042114099953534948618767568590627800029858038506569509075195981186873389372112826745764699818417720574746773840054905404651403608959261942679893074297975158645741019467360940072635573024569365442163525013966619239124104359102486293991783434335394047797192670895787053787797905537464251038922653261350761266550509769230745978526741246291488815846469182135981112762098671136938457707343845021944038102264380825232628730300543666032784063625536980678309845743608272936315336041311737132750107790359110099766968974973587487651916037566355077592763241527603606800953914974133853619496938314860251092910784263247739808444575194951262081963932242201074144910623491126320427199428807074892962369323162586561984450439340423846043156709125342535895468780311618210649722235955946496843114736273810846101565411316795304022304163735296173473009634383520212753731862847169491216692261408539105535863599812827617318947796813901343245854929595161055345957296565383651035710940786376690552528169845688356992718217702902915545171511656906606694567464415391215511123771652576506465130967627105414593738576894052593199116211440827663262177804713303480943047997550859487022203379764678082065270809702793755601948852765840477638347260668210616647385379164854494951705556813314054151690102243415453544100793694835254437354744188053579488644644533021881684971144252771539798912374990753290990248892399414515339602002685331584196353946385384478377424180562990340049228093171623549787052204524993461515243709647124624003994012533273868626633417922643236569545630694326424300673213501566688092424821569719625580049092913694246219220239558223635113598867170028260030327384835850787963237935810325235848624003766538719844717208421281600101318395234277005928828710366122714476303822088127895259351357771977926113068060914588349586951630512979915360366836364722255006531336479459510150487291030022573626427260746809044005757636288397414807529518779322377116734395686669165192518976554591014925070577561870732584720601965467471703271488528861228716736952261055813148105074057513881183397206614985037728855609077656136727997301064896770232705194494171403031381784918539204790087206654254117455438212986610554865535811590091304029036422689512933998331546693864598279166134224637845848916531989273239687332753673162976463270610278946738474138735836987283923826517558127124862095437236564373604528056102600108063667181949436485910004188503971343130414045428395390482705518192049896442889780436868186607185089348370880774688207761753290945059171013177011826345802027431384046508074534918279189193683591914059999803568048965435155919047376362949773123966623029734763066765919623301052639161558302866763127467186392108782469015208372671283347949802046140347457560814322619453400042403291024197755851746322515671573408416443947731036909168264254560399653052435721520929805537082378386279672276133220452090491165916848279562622492794647733401165005860482335925996071968113057328618778304310697227598709618983731522466021730513197005566631194040490575432194723362801269409137733017081662649582761058368144369367449746951497674244675034276366064721224527482157748498881458397186769485749822637338500542703807933698024184464177258500835708646376065413453822489075387130679538829889822460643432396348447601514792116922180949036978581699148147114210774797144119677344524076285843278895267733197209994632294718182314121898729894489225381015217943180699295869499581732950208801880043711594093956139383989027163152723618891269198490080136946037950054236219801674839377192964419943383423504362962806278461718760801344899689143192148597973980492404788454749435996927917398531056508660056727602255646229901488464905470341905740171751474000698899942491107058718886560609885755859998781580042383737724719242028065103972984572175123167479793666795409190887457909853309055129209516498679565323414725763471656748697555744099827028139022901538259429632858250311273592856238180949774298048564960706173388136496424520976733023851625983633921109459280819452931594171332360045986280298468139790877469680766095176308771254309818597109613892311014213919452324431246774626456424651287866911713106897210326127057502678704515529777245336844453175285367939546014509837269118963981448739350065957244109780259577624773378086474402209387239024980390741660845091108257496063796468845295115543359794762237713899665904890237230386531282280610037194494449535449192349380521821944287163539615802839355740839690063629389527746185955218101975712198360541658199606733467501755248477403063547099246077285487989712342665524378040711136752150529069826821186314266975122588234706502909289281022411295443870467452663616977067422346827510691036331986932782193060017592073778474392975178471070251575948470108803039454453528825939643498847106911344938367070977450643664816758512113250103140629426248359483396649764849617699724239151870280537464278166120090875722716038350406263487544353933963981664820079121806304171407932200972146979157743631084003344757378709829049498654392836314889056365774762336542093901596563958663386298064436214484593565432242824790535297402420171280857705894829631672176510217437920176773296917540654731399933555908489155179095466241468386518537962687321248669908835101436169452009576958366105263400952559983517222445094304491436542630643165513327834184233217439323003936686239436089569685423605120494009927247358062131690823802999537632623321984089212211714463796703498107347639300878805245511113162335567733986610823789662477668965045112801263477838350646781457351825858579021587290245223099230411738434613134544429051424679658113767641789253630169477404967124400431399391642579666856648139476531497180865634655930553327905606708860455359866871906207471939030854077348299039342622440662170742423155377745349038706585152676119054620585334326068636014358556232995254549165560909513246300195875197000751689931186829228758279149317297958820745171340787637275953237294855233892117996526227339363381323684279566161065922323364486451409004318377462176519186447652793869375919262676950742912642324335694703327101697834830449197824822274589731533057085152367528276836287372522871261245773537624613005055694733056471657596137178696689562787395077866741683018897185863477307771869427835663091977669086384427875111637610181503082428829030009267634405607119679508003392508118271030855454584704975472642916710982707967870424005645618943178008641035026130122134059627450205768734997413514482195318581342722850456264792607145460325914923368704351208780971888521517042416016517228914552632905820620933571032228047181427901559785497040996245409308318147558176059456338668694058035871697022141957680703228627387776627223006395110389823059174359881434038115831198874513611971352795807863743430210051680973510359111326069034511220125741767910188281050266578037442661390821829929717629223605832942972127586578121401361703398009914526405415573258412809384276288266486072861913199621037338275715824207678141626335909538971379395677030139747447649117787542101576655850147092015066943860627283516313788869287626560906261553030769988496866924685173171951558597165083256623725429917434182718782046072840020207516999000554851265683148580610382378205238823075866005967189962537285191595101935423521205576446824571570360898999633129084622644991686115347845137384315629352399626452509206012637116726693736138147663973727769581938856842534321867904560360742769869040910673059095642393053429290989462682164849397121496753557341581245315741256574112548444937804787367995653859575896351839062928872990259557562695488644079380235216414367193446952302149878935223089959014374153011332889537236999061666592644892447936078472986717992932866882718158823513776691246267640143912517349085976900237080243941407403646607329570228236086630378267713087718963040043705762284733731433111537903749876379466534681103281670736999906807118154363089855852906243837700261799463244265227393687161915015522163668988174648520156822058784139904582794143021755725007655402195146217137635398261670098039586032203242741346999376944119774772467360719548619137638019181113858976156368777928514908920972055281640853300996458195669537734731754336820127754591659026083060132782402436944425242643884903663741331665004256908519295459218711356692226013732102377138757377546255129980317277759169557488726263180648330881269675503639985861670007264650593668110651660251100306389686680909266038614321922743197312957985025332133715584545637333694658850772276288678317096403248570969522047568527082821047373851071379085560873002222210546049995413355150916642586504772310594536004422851121691376403314717891140840643685899751028153098848182260481162802772496526422841366519489835390917253279856878028344837628236149079935946648589685652652192289460597102763984288156926684149454559138509340754287017853890784072978494556237342684720579242913184781169923442884973574234851961557210457778258145389216884559964581426585113785808860914646372964009283777531323104849389817160436182711729716351122885405753782470193521776704260494418263284768593039557742435093255412735051963380123705166396067272658318599415889455362410267915551468686346137916665228075873381010846307860201826561542970286871386711125336033417670177543773209574620399784592195053331450239300129370802818317801911751673433795568968716594973753784741417652155386191370153653132306862013098192365059039947260320763668619675070083485218583558343337244323908465848266034616065743832460999351596075719656010052981746107138616153393553077966044097471024215756009635955315796691925143589773834762479469165534429058127860360266768314697002923922149891880280324659031995675274588065532224346485695543168535836977719474818036444986441270502870089733113948099400712816857502871124277950966824547687812269501913435061949922986541685666883767893792029217657644301663583218745523280168560950230307987259065776491075456286151684469508719194586617205153388203613991398759675686016628376905332297550160661570375854621488741274062237025598610997286044220538284928415820766056903490030757820905485525587010454180526221719537885234666053760901271018343847306436031889034078407282341176094272718898229643067980352701422531331832296134704498181464513537858301901448485967038390008336845077460179739761799551461411601336613558974983760759287644806765413530107086668278450526619074095229212336821178531390200773018304447614375963417368087703858647512370706913192227349439250938714374452082975311022802144424123773064070756618461756644606840482394633738046543485060970659020555824103705777220647230775162647403910294748124024153383555115222044122209112696615481176494664955861359377471540079307586235693730462182292577764901027288870958419103619420047922673549387784250483852205761745406626126507657742092876942194808433766968063423714397847500746824797242426418098033848950082426081073529046478794032582519539233750167460399325022815107670153802645488324513423189741664731949059770431134164154206344413254444399964122535392611605352028819167064823764794272051824915084929840899261251100568303991634753185078369825248340893369780916370706932724762708695077203134043799224870349732721422540659655519682848053861999839446274702182413679550397234311219866326478633271308330465518738178534620573638463434099046996837805245313477733313022573568708707577122796971803399001197824521639121341651915581759590859759336498951534720724805106559800773685829705425670271274988216194590932929802993656679893890459351264044724390741528606576122141690492566351458210363585155863689849731852343188791602445681224955617293872006408179439603979475791095475444241625827170101154171976100455770057370412557566705401618090904720807247215788464711556446469675496061412713728757325182547295145583164561408203601645649161532786199067706737585626722186943043961530002664505708675160828353820163858757716877752836063950982883444671537450776453863621962658213613614908656829412771875113015338642023255244615289477281772140041248249517040944234454111282563204663795511463377799255069151331137121931623173135676870535233585438146210647509444247849527717055145415124138027803182857181055011371042315353979503236022958118534585389738564294814127987759295039730288814325527749092259080381481362184668239152011977031291013083374772572294097618673189485391886774734134138162376210850752892001530178686442143405133118134758454289928140923117587109942043623012932685138272871309917247672829074528217103577784052772908775002701120944305483518814414035865131339436694104375223850797640992745809974951232907571112234490182678750534049227102152049857306670642585572616329452352274621158815622566560408804703086164840707781543376091295048729789273443337441290656957595371831916813292781058105474277922920027542971376159354778062261385622822085835964617987402543011879909847695667195071541755887704067884918156633632307416641038348968154740819777634512923281261685805264360577510111142561060350286951611066026678447774823627951259133775575160275218910745651795004527711462257720306269932693873818330840309940148816344213813082660914296548286383434011937442583640808822667678067539505707016784565171678616081923803787518974210262663038932361824971693609007906488778902347660110982001617570666463379712141681765732034358477904404741581355076845164752061790918511021326147834944623668419314637313891048034117648269011569479453045138465948404855868747950577319388904019117793352275369947501483204019810247150185778688458282960782859817023203607600170314230911193347503879054820588962994985095761450051877586863667758846683927871710115049682426096623278156755781050101030411848802452659182139617886370929549049410323468981001749392411625313486664621773408073712098285467668792115580195782599861101854106559833717769188928750876174668722399429581046104104173361043833716666270239207438573913795191312692581323633564986599105757555573146729603604117991939947831694074259782472970566229918689023998889939765065304068458338225668660179176623152995160813109864910522599199451798333992114676265398620293890030174458927646033362766366544579515814096765084946577998683711489587417861417171695681086786745697861849448205419731051620984850946673878173224262144817457137652051604637637977841241612941489593831422714062519943393225902522485927709806256336754522838372870526636535933866956336234921388779541348897617214011628218818574731165901482217098821331484283022763061711933480274951790568986117652342414262198734722827173219607826250310039158101312420376927422200679457659349171451115361278799923785294718382047887266135102933304383905691938717893132554878173827848095038531301666919818528704608238487199046649171097100776170749385270052190739834732253192911801332941879670844418657189710257273781260843555085118883499965432878395245073023085640377330790172134076376425667005669929725276153440850950891065857006553588207503608419490570920211934034292006736222592327758126628806580348300293492616747407805718705361878443256141240424379837386792131853399528015210437640224221046170521462881893231826087966591527590700986609919091196217819472898183301952468874603001352019039075234283354851879095315589578339135285244198497182626284920564695471201379835294845869749496792821714937719838339036412591528090160761111590088927945951150440771548600509214501501902756054040112884260737763544447616523897755491419605420815169690611946564971251054921323303602392108459975469003421806153618640277005669296502659180912062544551116996426996702744477971546770083532224098315973140300334966517178054526106574922141596981534826373921369357445409315274636196861246894023168551088673487158787630889002729739475415683225063008904789600134796674420572846758632045818218438638623590561929771535323069621815127593199023305898165568788720421590391095333924160423123138990989569217372486278772536798212961306087895245524684299006637248097877665092539045416714195293668971045907511020345255144487845967242669469804405409754594415969057211823514137404644885568209938162943570759511552664923372617578173684418855963988916924259688942820232312102641377642249842609584566124695199349252758951555862300816872075656141006369302491031284168247091879410431330495184688843185550810887060242981781383062069739961023243769764339479199717390455041234663106578836719633155371851766358919814776615266700807751455781798679783088234031924069737979563799636414913556383256091987499519854585361399686332548665945898298023348280903314898595243069239836363189541793990772511492229499362113023953795502406876054941978417750901612042257519957209964967136623895610679110583002123363374000140121713025082036457498217616039681794633658899906444811072248064202363786355542006131068073837324594493586172871223922262154073821157940447354002273911881718274115946193988273523655464058131364892142239728207509705646868324213991877057184801354642996492845446096437407834546221426172086874562703964228142076756209164758098697085846914669643090871866956225733372691758518458510094423939391303910146433823231627603967292343513900748463667565889515410621897793952461697119701359189537108881513827869105310798853767569115557123032044524153572019509839032218776297679820278527096333752964111710022369289947052061222393003678129337735434338208610471528206454010298120050849147059228825895608845317628713986610940555537904720492916369098152706011676198015980441679322931026948884694224881822252324303855531090608896066415039798154862099722430656849533857615766899044602790225289840912752003323919000078052928394343500034302014595086794175444544091439723141453945784400469790810742017494327136022887411609719481090343027675067440866383869375090519424152871772839195310453681774928826256370689138230527317366260166207453096813744982353492265796129909129842583299006794772789577220124578303594676380812558768954422582860946738850547560940576866875047908359036383839170522614911280047316544250672928904611999611623478500504337039532410964748830964683796299915723434266842872444423112487823976124782299715846700689350518845963240844134403783182159031614026721985706006191833055199977000386902666029044733494847579885822487251338641845095182597782379865755909973349454641590511665040362305831139884151796832883356605602567474134223184240097006505315107242790953415190796622739529413090827195478816407589089203100251274696213805842451306876558800487689440584140419598631089632892809471251215602284704840635792161695975327846827576094827353126091024543103880905459234992934965766504067648127187095391086717259962004733419550898520355570149494541113285081135239363517312847900830171113872831361394058496880463344782702253758600042756682683767522691661647052349087155473496017595521132327822889420097233156453532337559998970479290374317294147514377802624043082253346541064939689147965296972692084698450964072919758770793373934320028551285970014226508665881903813143911530878271873293980327218321404578665532207816881380164468195272597611784122988829533147737829266944544024339845807663609370863044689104556579881245307938646327049922697042286624172358150830176196173148945043672806394550914793441525407690703222542759136275482133247203940449768447870228710588397100100184196510929133949401715682468822566693013666384472215548548882871873087460992660349253710614625533304331039301901651134331167386328372519310969705160627578305822308922274682731976166341355659095947461536905755027069257738534035343209563293224524552097359089164954384044377940149213295355872001845341530354047568046630329543022987663537034167848565442010889254062177853789434075884072804507643471186030884587065552454139322028160077810015392895985850824898097704285013700199138659320187335473964156877000054073770237758675246154683309969947890870609187432062842686120086119804588520781110755961496138810981810805162409751810325949217393544614384368755573886667643552592802317510640710981068673575962325990812569608224397852209742483864191106642754476475223866782663519812382486953489177156666158684857296109418372856112999863383037923129051153505837972676042123529033118283191336768788061740532971057224290842389811228866452326630526511750982791656961659865774506552482567242564020580366519618648196126522283054989694854318126539048998728720037874062624511410244788604004469180705704501070530971624963764681940066139498987207402325793544564905627694080029854914445613388140003577181731495363406583108369427782135348232923639324167190213371399175162334162677073359904077806556708586733597694566456549173272499849445102714305403706794019208498710988252799136859327250479872500445260483653668589420297745727409667315969515451258279202787693663235825667794260388539406671156321619385632557717734485548537775268679061215940798904705121722466978277686551861414222947800062390649361364226794212191837341406438501797224624599956675953137862521897481872194901548756784712639043006734056657112524286073282593263349670341750196419052053166574515887271237691607563778638643730216010874928356084903779946497162230719391638158533551597261553053108453309185186708820962716068297200158478368384035046761495723104532486036807653597707086692671001422395808720519354564343439695865944970800785414113074654596628523931530798617995060678194442557888226137959696633611961972991300309051539940855307828810447195128549052493005183287208073554422772900064751804197686442179850537022159967214181388753494801221574420830253937606511802242930766100665428339155244314608352018388802390916058722281679692021327190753252658359754012255654640106436881044632979018811053863718308555860709118342436693090806906675393761416893639112671773515780019067677179095338548635443282215311592855306668800751368459498510868310559035471726838189523447414323670329337993918858089939372172307047284161517392458301134913130489853381732613840443266038081526443287996259329303576997797435118004124127121036654807342787137663167602104101049513143202586878530637302011569360900977575744260104657652077136334648546002250025381234293958682132868389385668674043077820597051381241530063821052941283447813774113360656725614831065845441814724288056096513219544686867749904344147732097237595982474554012723019635958863456730005774108348441393053195840786595694174494827024832333428151161862092990120207945878128779735174435121258843841926620771934865206241670547016407477462488884570509842466325105285836979440344594452057969683456173527612091646380448707165646961174543856016869747004238696039737695354566653718671744124881623628111390606926630733752710744858574784042802749693161717371908027105536081808010075875304137473822749426940095579671661877533915437164790939802432812723917730327543277254083954179453106056127310308910120690522529790591880297189593671942152180996938688876778006985730344044554276620989722922136756343316343518388968601198576561080303047104275329921626954479826333888868573007077497576386171636443741784461511444776178587346188315417103022737087504792068639062477113113856217988992320255396391249071043858578892388469967927384102843403489154011788414723303965056114482347718175730378155142998856721527737697144658658886486910215567004683873429501445580223633989100060371320150261182403524251903421375526352607127859801761394552676557561295294995847786432624963374057058589097624804346056060181258672755583167364908253500907846741710658005006651949154162191929988885120532590441438220483691921950611523486549464998761105029238561925685940259429106130945724804462405104909781590544444097336372262459404616862248269023719779670595109943630970762409606792658986748563858072071984818977213956325375206240187451767491073373112744579006932540620636996700021654793322691476373519972992857321413088837303116992720336159279072684677389777508458026796844708233098955453205206261672127966674080144547618809192332199322339220848337008095506073803983925230887304514064171421336067699414045357902276580983261179759755430402209930097585387541154799306152425533017911159809400903199276996493570041882518338777978961599492971537341202499437877667985342074308487688005554375874335668960871950807909159254920856118019162633619239591842971943383498254931602122778638254011355013897593333004534085317335550809662574991284690114811012968341039087339428103722930514148210491562864588939181218833045422719527350689540839244209044086559489427623914414626601123452694298479848113448259533905678378234188777122354548434286657937539306158950419370724851415650555836689562670530313335695280455082832818898512624724147268046307748014915414586834872047950459530311668727578612319293852988532800829029779928515257813558099958174826240893658696584619541489186150288508598059113325482223901336746481802269316154042683067828721161954682196820044303767567021478473356174490790865822770618340892733039799312579308292763637644955909094147188638494047880101456337873368523589490426980586750442040506036613056543473745495615859111984588879395935739770964945597750926103157567904943330125830615726715826354288683993389461119561759678685852934591236030213159749530226611337795713193753869212163286417546228838634076539977322772704686719620082888326733782753485063674828354134809192779310254816229711068156639755681955317731876475752438605287601719861458380295588810271421833884544379515108635167304570917713564372651403887445488828239887345467974665524969422286817385895778985388241349151142945509224520622472123171499385129755936567566623310606713352287113237483283388606021379169707783105500996755563570103863022329787373055911125112472691784371581643351000332044344451480162116247774406319633587395373957258018817636982925512523891037548231390368644319805296189568803389118890507086586852053548487004858220126666178398869969880266337898045406969050502705121314793273850526839831110062319879514461389212099047961686890349179547205308071709443158878085432735093805187557146925802484852608849328049578479212468397106579422110934455180298890886157630728497007266209540798518957810898590169694135434704994368343964981724932507155351677382067923910479517239837627347472848244087580527879470241208749945997201978409529657255092777845357847203894374608642606611183600930398910653486821423843832070330476969128815667402966223402805785299735764624977782007276061811431762031692038327027176688902919312408605389425714975296384074928055130697080852920276996642906800501608229493658276742772737691138984432046586471689369106441061145240264322806306611620940112779279076285399425380004219376732882963711369989910694104794955430281018671260823578530205289829487574943695959051018045522207332276987525777127970789595093443250242370898852284927285889427917296889956147538722289496700120713802441645421140828174229420516239490173832515604255989480273332366000569133916636133892755243269941569096201071310992978721186143735496978237021233245333142547796100536008697434092154091553247364676368245318332990947710439808511204115854587522184448868703530673785556297098396306755640908723065907079645894963127783892997633372231268492697270224087226657553226408466840294811348178309812804735737479445530283837803482416565261931806746708340001804249358773052997491980777441345050268314187671193206603371517839056756480610047473085473037886233677474547865437405089004805363762356995589424843381955273243003200470103637171818272582261384602585896733532503838816871585015425797403556466125361708272922367853276396491035736927325488769054151786490933271381889180435042076415259169004189257257179053306004452761330499886420161265266616712813693852128354889791587387013705738147712172508018543802224650075877316689909530929775991076151493517231844480752582301296046431928301017274315376489529705972573027151791946388161771837281389215070895887246887611393421370419010870633425555659972068799703236085707998434724591594730139382383078476169835556849016666063972470890848652574967165586761760323879405363052936702258287377053668697781827549644664294098071331553101097991336182868899799548725667447631854377654732380240870821096624039578040666094898614420283824903052810158971384733499216357335940985350993332148272088892113535271888769570905766874185026962580262136552933548748634891375889726208237639007421761776311705921896251804843602421497163927791184801544329702481642489449244670074104328187444542943202714075227330703987158023475169777850376484516531980506716011482169088804248693057361054130753684917367850287453989113806515732894912722951931740219566505380830642268265525741653745982791910259888647273719045037880139221329974197392733716715441781833674920909445396303234666637272207388048488449611232536628904697024362062274728520798382765031870246907056288313304501922925297209065996390984958699522947280642639092405110576978403309501923126849828644924761163932685765988335806283446312162637311589368884038985037449152927428094496824537042686859223694595477464306891502551525603517846747487870104954442277634596620920223753130730138879900239904807225922949254093587097002750582381303105353837748450483583546630578053415441344411168970160988084040864227698571431707127893161048814707530712630529911627902267382131397987123270042029707964458982756512693374262561367647732122226603068384220681457278182010469156350979866352005238925568185645743989434414933181087818434303448589646604314411494972827954345460467697578633250231423874970318985681354067915572095532369043937109692985474546294708102337237965728119337928059141214397392552445530022763841185600804848575187302615664108156436598425019706733413866983973760332183537421582852092471724712943275167139862336572635906554567838246598762668429347982705768178897161889916914502767667419882527395586684057500846505825732922271242051228154538243689435351832497849169723076242264990988258114895934890033664025733271161503731858992909395761204624856757436670052828725854019153248936771926076988356968706110182807839763408106659949227933201555080072402123040293833482974259457509545913857486221783413924737108198905237036664141470985844901189239924186486550380344591714973401416846422654847251938768161460364408747578207337026266833368472807595283052044419283522297564481476453742022951755813306828689764181102760278525666018650856695525715311563405636950883040597291050619551539965910375106736147332073425311144627290179088828955777448536469890682624821795547164168777560855267700648152370801035538811221722100739804905221173752901526101340372119084710437590189850702732500865018200032955586541228812089092608360758834329967963900797044010281356011610448280200723400048208438762899116883376392346857344839153007064240411215304193154650856271261177112345052811099744710902588953807051428888284409522228968120063774995749299107444963851232904828590677075072940795260875052609751185327544397517720526442621034756290227994718172954302352342981473855353800519207550644007343889553134382829066651731784275712475299984165112137085316322051448473946286630110300805430537636667345412639989354021516122895721848348033735018431871863998922483493003308559267447884636460525215227307634801812940854163270016685379839528974474685846641313133246111696818215420862774933299533561126379616418407747845614616332892728646719414342829746955648600405657722992468470663987043134733345979842358200247153508870603163314767045327598952945972374229962149672404122404049130102497621767758195893807779775842863580743195518558256570318943456561353873467565012213930351389222407083015461300176162791157823898378063312226351974779802520174406115618977079576738562886409591439161094378287764174957930931016148478060250171504198299750900091156796953002326271696988058934523851068814858467794628134272968046754571808175249410157856535194489704068830529370159482155772055870348708258898468275046580860040830718767597996827720599481677052856349237464959308863419557238944990775054484383550349385548044260098858207870526982002650846572431618884451595538696776804323635470470876669616824949261413357372956342142855983094180461613794886427560105339598531718567574575578345260824234624461286413929149300557581924130367377701423952263295886034114111080864244546666748334959395259482460232633492579317935817196528565614715952254225100483495946148188015681960822420619552458014728674346870221220463644945419327874262524784134567942806115359376294844635507288338158259050936335573682554311476770028640003271573623958594416693457604221769162062380087932851849712276227337159423507450663133420160773437604332013241098737782905499076838733925980205641140876952198586191379271281156120399253911470432645358315877238147711539823988219957011111845135224123747732059018822195183148724249045624656498493178266417860760006099127400392384824563286324192458443157600522818903807616110631128626749281916524979981309141213753352406969603973449966379326483449744569157103346697460759541170600241067022083555871054579739848669458383607678643344463466795367477645212147465689753498853080786982954960111204636451866766624163035559959067756687224806890890884662445813362991551822391247647785196740406376087513347838598088661062160854681833087402653361890235509371087147879360279131397037514785213670596532696351267649350614510722897412196084531541847349211878962050206527785695717332773256244806193220485638023723484506483743093100420059147737405142262056093953054463520225645594028863540429473515787738216041178046363558578279523052082856038210969953981098965571643542156107816922253221212609693183731936716021210618743645263278655815757279557241568827826073925855900624438437365545652886676450652305822709804818838394234535513128611347041852704193887378860357457465761005463902599608173435190258422679379261177542659953262693700365280424238279932385166522494069651317603151675500730608259233233707344971519593433280596947768835079171657646405427437583410535784531316171481237823704007549823765668418576915296725109204790509015589328563286241591982609259598972074216686243154847324636273439075427235783151282713934015903293301810255833062613623868037449781300346489793270270753354257296281924631404694061413680043447338031349438970140061594848386598474854711696356835045135540155745520779496282046905688542890447077548782612112595536178630663908368882140923281153780245804814234199220636351613005049944803968948446310036262645120088834299764535911140399821320507663091456507869445051318440287302209147233712199978846730298835004490548398974796438643026520327008865215307757003278816121354232286541924404279483682564110507615235995759971649135310591218888292205954666324534963611869918765114777296732394510184773527888029607090496496169914584410302040249273068851324917514507100876975175854423459377064852596652294425961572703744279624537549618107042177890605887596026479911796247429520451289190367414578490981580558511005643028780713699048799175236834266757451689880841000319427134100192921288246306854259650940008235236368964604758089775374822410898025728395525491196134391317376315068299740966191038661478598722585341742986513658844813514423359870749889421101295194021901456947250576543131177273423080784213494315579451646705034566144828001028591449685251346576697132744329641038133409036312651088257419682843472906341307181051417154988395193329237512410447852955093871354370636687507344432141448761872652706600676840066547747694284726310104559875070256484254625015189582779815375124016782225753421340870811404203281572171466824334893166481870855540200219280730277368074147218676835785161668701508285914511226071603173613386343917538673818259349285946213407878040220826294879941535679485825989660947791837030038800828776476318080820430658455430148149988644795284211206730410752289568031341629305227937693496979547299569606082118834917886574873789317540939406027104988060125264285147824716759452121889994311022822562304443517540784341099556884788214520132743434784918873048856011304045584993635503121178085138701650431610632418528578326781140277646291579091777955093102499363641019522073123697138593980979444770990558444960999280310267482445144660757086741907065447903171404757708961349961063792060629551831148808626352594037077152329011915383458581011610094525204480354701304262766538808588600070934733147353619538779523089511040456237892945937851990848304513785476238127234187147255267799860352096688642079417848494917186764983813285794198227017681005250187393288612738404706325235225786002363031309744076262163182518116245451145217085962037939239894247665107749504320445109992602266735657031887076299213254666923625236764883868421869329436526758635174787693787911036828238335305158712685218863012034872834736844854823941319302950976859851545711677225978975368184788289191605563666080632938224846738983657704891376681173478722718306088112270790614899304977039508317937986494490324842522221106867205241609909604493836390334078124836479770570449659788083017476310378693509250890329787651305263377417107957659390724383213478366474066706577135477483601023369924175031507531056079033424076063080984540949472390171380448532008444131437275376515550096069789706849001179597917170095982947642093626981381432641791214908500352643955668640086791467335685511465426075086429182839048365774205105819696823495430394400721013242694318084447709181978230071520493658515670627464354676265571053244018410089345262547559610849987988137347675955798621241044600560049023713439832028365357706726860205406368022300541562502813215146125850317191471386459750229699736636208428147622322233267942297540347455446638666067085253253613420424802334624398014716802438295708703713547498620122350819969580356654545950058634042245982469472053536613234664320871422134585137047552657086768233421991067533452922479323337522805137488534830516767439514001626146357894230518956766485884017137546127554858120205077550622928348302734520740094612519499761216911075576399395391280416631776816276195808507279921671086542760726782732208949251723628875656046120530494706608196672327038397709955376242056451285741322827552632914998054131767081118117375476979134659163551647887587767183501555913712978446844251350602179552749654349469959095388229042421182959603071141895031279288017512210316892236360424526926482103935613463720285574824394921832613753820089209286649196151789532684261526717760482115399322735367140481614961218066692172938744342119920091629339204318986696462746491249377195876427862559461077789976992586270932365866625395975415229917772752803623861799302659306761724296500055646317614246532213768847283476540340438288871306045832284004761995624583026330255045781855047467548822112027524086470465477992101057028794492499527842594487462132944060402247171686696582361467762501683696604143923917855028820449871374750558760527128442825588366171017743832118256503877518714161702239795648779408672154447178444903556010799711138313590141506887938922444181004025727256156557189241168068932902936524235610444540100528015004041917086214739853339711787398124459768748235043567632193623925997037643101052984728308979617265067263396819390957587767003825613041335239724593158240385897606303909082399588348868627268009861017995348371509471681906481977145230913080388921763102829393891115564011313670019804152866607524163954697213688544919766392241499411046755253895892800851521876490892289123135912466759304493091596199067559231087192081672847269170189886905736816905853327950432227289471278041867966812508447928205233309076201181030008275064187033305109158796210554532261827130739054769236174052194113306213513628220123516131445437358376235267625749000174470141555817998152810001680766029963199016366056043876888944519887440854057620150531350886984472728338754845173601693909136057956625934769108344533662152966332768559362230600402488343785206982451716263022616697675600635615422080333695353626986288103556681448082774968251745545501047087305536227684051928035526030812497151467550712240911690706699534427522480650518508375185701462210534979111162902863028866996638643546531551367203160170142834975416294829736612087818438766018196051338681924184999756479290872498364472022993293873580112685959098212566880007307932711292580946404285255203891385051578530228468825144178845820034902213022009497890162761572458980090911350998820309960349027383712874627926277215996029492328936493469032917507951569608305403165908440073173759099549225268095409412537340674526935310451552155877400722530908491374244973009871826007139938493213637950342035481934868231262209608568761422167956613521663360882495965582525539780754472903508198751987486379535400758651087392073454077349354777091447665327830129511631831598518668332482568125638505798735619909451062204312157445046356670180214187263996109893967978003917686443745838148297404352244580408487470837039572101968774209503595551585906098073366357959538125780129973349472608732651332598246875124804862622898340440077736075233186977228193801110479353958944085921410759803429231444294245913052073759669114365138381146192228911714896374210969411894210993847334353802378656768579592387901568220502007077962490173786001407133932772383341837790907005873019283077834330399236629156859893938285442821958665069337022509065859997516631009454232318620143776713173624920667002842188100579457205597105190562303764646432494033636117531770811574535629681100209742709279178722341444845317132975547278816342613557891766757551808973761701436022863966994060625686668227528784715366845929035304693659516994391494428948331791612851260095197301597885607544520028276927030760063700938340815636307684414743924333492252703395469365331302856646616186334015558357016704642851165313454902434726272362291808469670850099668455656573166841494998233560623122938421206213235952902392538363349166481727154423757055173069624951874769652755313251253258598064696628475812201813210168811425780366296995310519986072518306603719537633418571225982811097492591167975826596617271769067554811355160197157723473976136691987017141004266426540491819466990723051663209072089635433627939852138191981753185269403862770345201522976333267320338763400070084429254596318375380055505171676626151412144198574899387558824382867842073745731807377785130456242578087379457344272552493047191129273905342785347027916952128806409637948139283266421287412388751801766534557565822106266733740233887150948980540153885577825049835697324632907752941136382499896841105490379031160626871243596700029053951917389324803003537999457582454298011019669791709240128286210402998041985210288846413991590107100615655389495355579588782902257342785016770478882711922346551023463724146364479835898586424929297518246518226490513334403303880626923233471482465883847643984016903434921427394696074114822355767951795118353582615429079121811739471797846387091318094887313760031286824669668334442026702028467536912017929178184795297788912883379667660953929682893634684027288823462333633470993575201998520654614583443421966902138293777599139728164340966542080579875710166923443038434827645724162398209453213822295619518811375038067857235269441882650657422828605644568150312088016591211265354012591740499920591213572491073568309270060508002696016417029576105745247020736868474378447409099178375987500976930858614843104804286088795076680810049586902990060718688238548163336109757709379695889033943142136527812281951651587324364366536738849962549426169680783221182243915775344040687487902984262391386581474445597897587959791734250758976936160943938245516619847212935684754410944076455749533935086327967642365919938489241587286554310860264243321577220735578231831646520836773066399221843064991771279121080727559808796564775557785967117217245630861447888873417352131214804525255159506097553734289777145810435721724902434423534236695839216713614928733855743893587083568033430479137431734261038649407016125202081441004540520892547569134821601212830987394034486996895639757711321967395966886682504829673470227613850048680917174135407802650431002230923157024278291437554835350215166360425861446744835175341436900768571718414738553903051740320993885716709109993731023538903384548779983291816757346735981046845818218756393193720570508788941542699033630712369701376189614550586114092844233864845468595234794312160838720551205437807235576689721143449534942874974232958772699207588369914328287404312004480014923794765189201254066351526258052459084233629056848463870977231454654183178939879034381028689270693963630333956867965400423946748550290187336977826506966562907409159558600901526786289408121579409729312356639121968429163067562646208980157174059792861291156947821015258123668956236434319982786660542530609960467148413652528851459777311880227076425668749813513064573530807818066325794414029383317285861628646654480836483048440079922454825861115469337532024042138794501781958554262110886729737965305749973591928653788244198814955939678292970496711642587597467422091611079445506725494066000896149221454070999584858754054986276501160804497082853157784367391170318748791785186874240017320930285211996237534795542183777268685697105362218217847829367163724714620766446768428992746330128630335867076303350515272117333421442693888200802541958698413932340536594786908624166085981400634959085915064317141086669972222581957607647830527272517422057301817533579965018153244750631688954388920578246609189288873710824796825701035132069297092574459104035618710139243122950178963907346840046737546391884114453602094111745881862628885830968017973597406495168162949940176672291488726234905254151804680165255642992451352792226967300783078839707801805933746641824666708101879127436815786869284504624443808932050735215205802057248550853902271705040575913729157835351978055340085101070384493415991517577741235175685352634287536387360072431404209941730346999274558359869621750811548918790518836338406281288318124625430877754447427353003304588860890463167144596981178610884811934396823474066614849567386767149130042245673243835994859634301728854611322313308963220428022198194257217141750823373151464202719701593677469905172724863690302479657933318938844739254552436079914797510268842617420704773460525363818691651514706110635350984504672791254617986897679721068623746779012122121070311761682107265855883059522712213042281868507032160304485053613649615948210685643929172438333947628972056592721917380788374799486208123709006282453870615075562507921749885027473074635388065699782054248429169567715957478881457669360944172698319303044939452115472865964811259474423963086161006805702984386978018628031416588893055282079022621619998830475663646266110715631491631668049364562597754714512986183838603788066673763625491121431829308968165350416812962893678203964131530699058883071117380564293343491573696570976702697190533360098457026527715305177256178628486093260992286618590806840434042571600106351767339727032592594206884974144051225085923479868366209556498421622318956747902575576575124160292039620787646907786849850805094216804510908367654446367267634297538145297828616736975761002723076745058222348029808570879456299902170785031257820290071939665787703825219708991025728979211915655496045719876352253602949841841143452106738389738882168083117744953507024663178634792842659117028254305011780431879170865225866638362042159375040182353997446015081581157258868763926305816983399331341838156174846811975888880375320052312623687319728421253105840727894350485352464339111782462379194813644734615674121708466870079153488802257529576298473449215578129913743645618687888688816431072445198715145386326207215553706747494723662402953443148377300875829547218960822340324134565315134501419126500537137711695347238612666188293808648179984879420197907148382053755989171714112520968263253471721713134217465847501317618250868094849307511941110873100185862250750052163944256606202091238657794721859170840544910836672467177146507800405580148775701814523530166400419906006159754006368764441383707216858117124893292432196543926489083888288739311347951963035158748608562309933267935101689428036974427422789741396931448282579629268553996114124485456979168771308943708337868889650696451961939937446827808113976178627752973089200023586088086990069286511899979000090792453648806249605743179791166326601666535945540466197554812571736951508888461126679618737404306130080094997398549981187602078684424826526739071589001246848130752475469974562329405176745392645300403517615980474896998233739570023428785823349459076971892626094776621743475195373581759064362391279781298809380954145727447472198117326770776134562987664193192531468778132233364988940961368000273042103249962322962490024897602696694658891711482874399917148205693792388823284095947124617415164814893281480456944301462047591775060000422816163836633809831469295600081496642181241296198571545663180251464419584990040063619703767142206738687778384458086514019542357966530620987354384414875499591321280387466133388160264676657001571384930927259316833442690549068994281141769732536351148875746233095415139203154652514567633221393196091163003274511582386346200091687008601283481559262349739575173638567219480874419012077213555579410341418307065998259932763690758617716954383137875961807585823563392949520050646011736433465522579744524977585407300955635189399905884243105613080032962973715415954385734811344608675305066235596681114334262928947516226436122429494835266143010762989825274452947677073571268750238631383064086997974044617283300989999625176431011764245278539967413347217306211198357833689971006846375621222166795601334874640309808442164580366994587786218754243584198732756456112569006893214693333199393434318922933258585920286005001288695420410532952224305061222725754008814677950913355222695849337840292931917980144447719599963452028834910603161303355247391532594076072148058122364240268077513775497013967833715787542389386265341871261326892988464180910347208480406889360375105313977604428661706434644474683957862217888770157900583885132495530909478153577109842154476948344609457732447709643712950574470234014266338501461404760293019857913574364667384534031202635858135436576792137388573273638791148596379862884143340270199437326081100461121765851068278393681752106460844520476107923796204505398198039488019997404631773692083835631914727973690878977653564508809981875235155022659416322890132865106101623916572734870594869327604849059000457975071750356978347312835462282130286162851347714884889690973844645437386172543707644836357191834872378687554113206352230809404175216650497192925902262007145224732212508626695471749328488567693720575744393489448432321096691842643188678187263235204005157764682981396013536676355850987099721249143677991280055100581224034327262834161470110267392782096817976306924641339319119773392501111496302411621416658316268855809932558429626477838099605129172117326681385269174900582420520827238589217384553038989583767973368140048193516969330415173251612213517063692751161748303219388593832864934556176223814997911999378090536876795206458970760218133475888139415465016164964598260886544906699439390302065695767210663949474862766143436179572638953034991830673199786303097353129918568571323431960705335592128075230243005948773920663099701843157795283752346131694887040566370975835922550928574874635441794465884495973754582110827495790426609661538391188739611789895613578167940686292407028611714351018706845410985361897586595808724101266923639134036837003471341627935507409063124052076853769553710505242790382477828156647073800313317452993697674661976716039924972416240899970940881098905650726549215916529579100706977281338341927687862252454127676544443813501033068940318459540371615021194978429758059724009684421266029252563598054546253257734831888946052364288795780108365170639908999448837183857216733040347808595943776453402830369212129267621588836415303573631943820288907256453124044112188204757956104645210376315680514697783166682470891855511098293538366143552390327518810442790550758235862888435897795530700011591820850107669277848162657425732848304253175368728210913409361500192632791127080261250957471839093157392843601612648704730629955289035622565511679585565254343224789854598084848955056324404779712396123671630762780721021234961630145164775719570412750726242232435003708879253734755475306719372115399193621087339410990231781739223656379592603584015241419403599322046779992720878996851987921665062693906751096798324334147404658072685896902779427038090754203084799708489764409767805745355353538597328170907927510433887386901273141239999917850455094376393725669372347247243272568197193054778861331235201057772606832537363264420977972036479188924882304733908680181740215253889953028691405234701831147193779725050057600341255407735154764290815606559148868828631999424023855505408549437538007903167953981497280725172984200416445781112438679379712025597862181298555146530984737586482995286332141267824290592324674684389125814951972552187374423432689805345134863596736356796986158501242164767551913596558741450523921417991781602452636694998680726114284253664189586079896156715111046071630970011931947303560727240638732492662843299925606410715546333339648256218017597109759080651170958239408411039217667888804897518443099128169638864770222373434717108875097402326273701025186611894091802136887723163133998454556145499840402774807871421493980854289480531883352757899035731119852120332995390786537899368402238984797166149158719419921531072987813799904311663438348246054371805038580949145005506428469184980035459453886806073604134278694002015244561496249292394363260292314544103403156051323679457692603871338382842484255086289585220426625179763200331499359582715549578693018497861601878235566898212219103092580492442460204250851001946715289862375303403283014738596932334140417647141603950209203223522743256657230620191120158505163485238247568469017096483485124790815739051079167737710157005670740216255114214773095686654486638716650233834576844308552365077500089612986235340349519482616220434460469670342837266430368364798659690274862988787976341679202434246822051704133026530434325440363121610542097989549333063653599870521197090021359959649819683879035498121231993948190832381309719490235174746681036610174904290541206744348032221082010937483515571316264532777691547195324014577493323077367090354656077993082281355864079471517999128706153991275778544800332005191999234732231793252429983428638166563336660513308967592925625884767408893290986110405176126127254126713685740024993379032593985034160095402259887002266828031585053109876337640399871840386129396577398254816105029143125007843067363047121508313337585341650906996498248633808933046931187822730876272366069701992487755844278884737531185436025741267440773960714306775133785012298019351989919207523927121064526345835093934320036917662863837153566700081587927130808455985215987561894565929204040249834069932599924004827749629810131564181747018580363831278496300563549794410632658170870532113396273862219392367921131357271051899410844801985440574045900165193303365474415080254921578415881042843469236421970780523237428121859775204167502405264506714009778329659933101349270461080402180763310241586167090236912672134169686953871480624744802760896617554535464555869029503099120690193591761451014975608307497907881647666772484425430372952172790230702478162601500252902402169044128774512518918517138962814930376773293716913006024968674798492632674544087353470684718558696592185687940069522048145910625247018695015332161242723392615012665553277229230304318395264460023953566802038787037449499077119705957826053244402801513769209374460731598895996421748109726393406317035032378600519325909507235631753944205343119307733875002443804016749105613017986433476037113296318081542711943710205168836624287447979704098434266865744579353689426793906193844705470375453634264213384148695627479849405412983059010021392731550871928054033920372925340391677749481283606764474955132335830565636182272746593526742882593920585804223561194413109717735435218762650361838955115138487100001878657729051259411382724132657573963667483850191909616404599293501233836265384010274647185562310395989951437124641776331496604181312971082943455704488074893249775479946586133127241733652246125056626387511238872096470807233635190835493347399225525397170667383089043477405017864242059831798209387592030547825860683653492639544485712678455044642934798762812978463317908389747328065810308250521026638011475315607745637298756059629108009265182186137970722935315319116074886624023695322928907523655629618735504909680654721863937647884104181956559544646281365587364308423798133950196380528321363417569399951000491355767131973861276857454532391673947847939260370816816525890382400799342718667699085799107753445077741700944659217866871917945679844419425175994200514253893229608969366716566234137887110218168083444690127988858372130739068232894737554143760121425983843853509464564247688939259133778277618920084713088838049495303349429359160239824154295515335310354112557523495212459976745965727063975364507027854626219869340929635781554928560385910892986275630003868687323694787886820545294938416851072419536155804925845464193225488783845476666255852520013318506855007906387033262869416655404589114293099986830002405441967620180947015262505865929626985128560676925085143931264481690868691454846796041732767647024920954778356950666391069627884560701961205583369717111358699146664661608582197320650743576932915842274153724985174613130635850512601553394797068931474678414474190205764363449656698984070863907032731263609379034907521198441705433232843571305768927996351027879284612135072391324334367029710539231544153994176333329502539064925318392751096544622654724350617785636687076923619404944253138286415377335018204492787057977548591105069526450059179877631655051590694961538436064301237756200044801285073936013108696834669457537955816499001384505185819547074155993492869705522979531060271509618424409820265630266559356329700083210455850620247129536632106701508661474296276609006532897141415780483582897151320931064431085195677147442257664138947553011178431465141310582192779406775886324251342764189478297379110131151505654025853132120190348432594188471878512314437330838128665536614541700216211943766447473635473206554908018787740855995106953952579465861671050036324569367717350141530520337836983188230950689273939717021936055474596142923158193102379561475687931412419808866860716139112213309962937623179972266803439692755605947118067204737414435047127806463840198223987168767134195826504004893048163461168581983882248434114065231745567370935994146777754878801203609856216162907854772627877867269739311190041904528817181474784447400695262541065393954571564416484758740923199165605318441029991152329056418347635581121353886416229747241744125532167621234441921994735919410692117051565474919308713108091557164802417101560966444492534492336297659838280429537018453337407949949071596255099080597602451152188723677432434137818494649344097986528436238576188004809803927197836991455227677822761117754585652923373943942601559476792621862867611598382919168020711733397724457867573653020073442678299778287814241416936272956747262352382164569995684996941088993908190351359996079851623736498988914311763874190376442378638901502127198584102851839461305737013133913694281453307331979738475495777178431450816506711549928855239373232616423872455858924910567647905271269731530907066196710093652906208395008332776742738511679093547687243801609559369462159806081504490928303583886374785015425102159165168951311973377725535151547359331984842345364305943485311702361547718209056605096979484070787335904697854529290922493345906681506749793136319837416776567038389004919880319074078873075533086887251119288186516893435183090106204540421656397087307206963969400048160355573504135607697869864174974268798677164777379304206110139229140724520537477180558874320043108890034025325512810059081139355876805438994798498714769056696663600013400557052666608396085700822479345889863058861285749641879053682710741633807891501405865215200887685571911111706813783864507759265306618997814479522989973562806040508311306136510500044293771180247624153430549511870079912631914508734535959561510037033775123542644527024080043222860802061336229031528816512827397038492347208701847108718627359958810557887066870123611522174856141032447364128264653180042918246523079048671767256785297836993501827864001789848193738864456819389492899574538921342778723013408134650151795234280097107032919526619296495935958348224793174880137318763925012262750834665158881716731011600918979643908916310285175915765828286242519110141753513368687222898650999753235933682651954076061702044019651542828973664921077721263069692424814513538762307255200646202271746556082757917006249594932729270513411756579761350748430642335802499370344406938990917021445772108804962046396679521367056036548127938475852512788868193717297851120754238376982361095440883765435914208861903314378382248746188626249187233982155062338979653135736132261662603078723878389372321915659600914092415758606005506620145019035799474404126251277509565682788217664149979414602530675939473931462331652524822789620769748442983541815196073539741583960939265881092362585865319170120646574829371020465070068433111072500885971346969311206266076514278926800768668525488740291161490404889229981044868055786856807316177784220579938881871537009216620623420030086774693276732105296583072294771191147932288085464731866851722630674381178028620503824071549883915752646280932994143095253951529813399621162226625563318720758802565621955837262040219568898873252580928897457424229128192719674379321226183124465619725658891208699586938162107644780030832315981672637012048089969172841554959420316989435675831024557292050010616564311261480929348752031220889558716282033305831580892317056166123930515767935107078600969363694128680188054615427326430798982359553097720629065908685230751217430391542023580273930386851541066605127270043330228423762025025694245464307465438700629073050924355664463906714548856414066494825398927744184769065600306340746200622780283470865374661815092830481335989660519227431005223725927074130617471332963232961546315796286128292933961996122431996659967097570355558047640501899388790648475390874787432651860338534146357816351837359989786249219278016798934689976117469190011468735890533524543846093209846988033337975970931942541885554690368230848306618144327983940021181114998284239058689989200169915899698302331370772761890274651692287249210408068179914476856397135242079665526170333589253212594002194254722103247207517024555402985008426394394925991956707396828542668314915048274084117722892248068778219525288745911625558270127378749479338323766883854848694470240521789460919943549884665604476624060241846306932446672560483312684815873444628260907172524308595878218280811908604437237635807795929850131263419443411024074962163897770444954198462787970198596734603120142932945926387737785315361143137621902091067193184709626841721546632805781357878592861158021225419434056290532973141400720403356140477386736401724475310182642609823443365947594297254046972710816316950796400857780778791766235826705272423001385673770050204862354359160440221900920952730532093769614501115206217880841228735807572402669187068051681939703902215358535958142463781456689254459187264312040557914967843451456157388307612725785357774546741928361810497282460802174490953390992054086514184017256398606552582533029567673507242887293522034300507615808633688197450295378234280899967315439019195879660308138692671186043717706354871398636315606149414195237117600945896934420265451126831861595853269107327461754603070458721264172326365766759905984420665950524021644619589347577787654932172246965362306981513259102281420658186207008365742534707556681385938891331029590958798321752171846792532129442372923848514446860612173117005433637888852834989247037466250547441600104597618734442045633571929387613081376784793636127539581898212209267260461244315322501218453985232235186176553067318395403366538778799819992253370304683526003970908005384876028150687522315381145615098758720548104455061795063383024995956094433668548451746370621867550662073127682491710640036569937754605349892035635737401949683366148991772319866806765165116616543820327764952144942195014657422609717186472762775492342647642903026993158748819824810176219016104513386529098770720808357984219491220563960182999572405514501344838835161217560426548674359506046227750852802029657368081674213278744583556220131276320738713769469593905955584987299677847351674236933947616635796662092745543032333621588695730957660510175868976562375580833512132862523197213883034779667044068102593398297054271694586713084501041479179198244727710211946217556185618303324005310320320810548293111000512144398088392573798490831244408167290917358826071059640284298199675399729171124067594448164299800347352070941772583161068552001230362901787384207613261613792673244780721377287502452960775108791485998141186138382347501596165754761269005345920377030070760089100552172948955181492574761101597127074289440349794115200981552032860649224666243668984275317043632480412486706610526899966621491650904841529227194301977848508547973843055213712275841337602779597864329821206050211139784674852265369516065684863951115529277059902452966463165139077177192945633585339069133808819543892058124443111766341297983199608286471939562913941468335808310292000046574795216238779508693181383323878138246411569934370856564092233910062265148801636656857733460424431010839770943403836292862980454725502377941014011674851593747278503161639852430552841174440840829476163717764437953237237597523048102528011246416351441790522342812047280717156474971252287187182845133767207806644410231108166689306476708029575945925351204964498197998051137088010989975540330687311430988050649119762250894160491986816272199352390203897819632778476914843353976496050081518190476433978086516827494277842130502490509758403708874735129624943016104874915649041698811201754073804884523900048607577443775443559788724692881716654730497337672426615264064177605051395730922763372894590308790797109708771033811720666199432905653027412978900697739524692584810314290181170305770757905017722045052983182107344460014527663154057618912036145949402859982757750220755005015188563587855900505806234156761987097175220111681847271773453405734179108433343647564262774906967524735624327459058814918534902986949971717098878168392581553022435706976193700321504439678813669081710995875425477449826070817810943378141763293212445893832581902196264739302440273608681443257705423753585303836349086396777772868958553133167554358421326444868342023837947301303313758695076776741060174820203377881291101396344429599370217570852498992160257199305956005932816379621396746646977528551787455099832273787447092029338267290891106153661938999828123780545312214453080449856083053338373150089323738504419112757571980000086784213876386806234326962858759580250581096175642343581829419609254924775066178580922120299156215705193183058434475481991325096667506690776803369347245326297719233332004045767122089290650315760819057967340033670343230554073894647291629456267140265634746340985562170396798748328529250553022015241905261638835856732819374483252929547210871251526422503165351410401433709043677531167655989425107018495345474918791621818332313996120196977338725696231983825316421357563771019864199243684510865000772505044562385972602546510612796143330680863857301157213983347830935794723049395333007041413309761609229689581013718117525505754503769030322810079565483383714736134090978494956996703644872943798467832759866104800488729009688890346024799094319967732302087000972548224696079876005267699374639110355290691457020537272397630862784681632929864706514527873408270329899851039575293488207989895995096269801335438149050896905583753286186788294187267400492069137189856267678233383926440548956866597621897051704940294948534259690751256452848118880213002004846315262942472129563757795048385997572112726632022368681352587359242941281188572722581236422960889478076650622832620142272751765842067004617102249439112900651703164270047484144031738654688423321541540290108275840609897538762173015564001635669184149384137221382971474847221747414541901068708865776800104014356966717741041921322267949407823017068517896408883841645948584213845958789771035592420724207511400785569112840356615619358956070833651903731332138204859399655557873602142887870503725548059488884627509752295093673775248816165748229363275907074635520427577893512759967136130122724305590021213062662326171489859534727974457341550072694718153115998902199677717984582742960210227145949762707086920199692941445648970355777812179168738428221477776355932600494038072895567224060401740639504063574054183900915927678126121992019088706736568558242493525294765818274006122281897627302239286990336529002413110540981564888255508164289423466834400903609091188003495224099508284113491675725860677344554679663929337873773178275658229126679480413994194703968440310184487680934611347753234686423808736295286948939535637599931151163661998015799706466540108466527852312664355622599560719831475817180792682098825494205616106326907327170783554501154524047677425561769691958715383360347209824717786696427541221266940702172264877583960946670112224657228221712789706824514382265271257154071427537383300385250911224497534813948560967952370670441055287204941208334109874907404492773168473057622133042533207278583499349275706254975256969348548061944691585934581513828538240226257529825346038381190310139792008209028212608468456031385190528934516749587317221870900032247754310083211592985560464826838146089108462548710258122577837490508910221814961439206159945297926568188598933424558089697433217262479001690478789539159364749765814645654990930891762329175911395980467144732213373305208319067599021913378511936717087345892913604643794095804375867595081223002208225578519885814232269108781491984796293291625835386660377061476722893051107183471990737845689334396498897170590640413320543947164499306890877003184151189326212737753670500847405898780746783530597878915810704639656100175544025954352940082996581604713500204189602543307851164021286636417748833362270561725403285717865387132648065415352639757367328774124674463747582233192749785988420946074784005784349639569476310164206607978604275201413157575810074275299593750719426578855158548630079766597686499929546868664323956855907109147881518814141727088863412846097778077152432663204389890872781095287856411404766454425055773930280239949079787247660811614621305825681091814319796826139867409601094768207241357699005783952531332306781300158019684318677730064036265802621582008902904762219578611056309929801079317129369752931398623713694838998794066477672183130639840390393642432296439512178281864580306476243969623843948608142266615555897897357981278882166075137222159080117088840206316712145338294950926333451931154523351941556093630797897705204695705960868512843978028002069317448469865268650729784924789423149358631596536534348722158442445920079613443723663388475638978986039825472456238273964444427509824987404274043687800255435868052712651748539746669702672296936467937513551612707757494351633193057704032543257927533182542590736297466837383580284124537035343175053730419573487050761398296570308250400194868874945583873254122715018329235215096344733146859240711062754759241750393268880817623079512966145991112379689382941241442351777646893281403747820385526681246129828382515356865385429050508774000770021345511702354830470474601305600410953809396751786040571031252726180248015886815523497062758927798540177889908462442351045054853634189579538491986714654376825402268395557826217556313211721157418638471877860852210438639320483875066278235630339144448844246399706722679317383077360370668460846063713395666098030515114593597789565963898572113824326851307746062268588266977512007466945815535388944699461274670225943665504649545753727968722191074211843042587594168822904833958502824203628547413353054045405308494789121050104900201018376034264415703253399782647063568683077300856756422233038325148080322244110610962513784823146582736770396217620968451172009467163265473264207401623450274182801374461691601697598541650227345694727027300584168469397407413234899514461995346682130869723433393499488594471538391047027504910552546085650370421804388839293152615062636089482584933004543319985268293575550662662653442065621464576730330306898032273663911457940995409414889295001335431041242830719320085626309125074968535233197315362700816131001814468382543503549861549968437222183652220931869902811766470507780332595304539269788592915014594580980001332691975577566985753778979644111945954671715136074887302003031541323792001643744350724173190544561626662690760737110316616834127419112402735464525147621845723246201328660224351250014877849643483806798639661293995028585835706462527567125465691211370048892391996041118430645441247977987230555692803904045908253860774868004072587897634732219092109093390105176403279573914469077022945276883058922554677235856126160409976539016508766579818543085920406616799107888782115488050248501878358781302688565902295360301007577133237410680405672568045785344430669463500622363383954739751097030276532356051380334746317119961138460386690222661073313719810971216575872417032957237329584199185591960894274943618254836793550616188012188382301888571252699657234476487534281968062300595777223427620429274385062362861917415771104699304250361812859922512931747250579876116884087558964208226996717941996413674561746339212074486348248490643933096991647740736045131696395453260928871054877083721504730888450932818402834502218651528271495628678376343598016334123643550430663930076614622767402759416068434295650737604592755840579085400354011290585552597825723957200208196312067795047494309954241193095490912567153560531464391557960084850384490138282139445803158033735764956006210916338810732091256040357956527309907679584191685986623639104956360206536490892992718681481252036594444948031228173432182872955459395976125178506462017351458729508140534512835412434129665352219135088317128932956253296552719174938947335080561503652431686376476928021718038213852802889384176260871193942586815624480737156408209344652191718586192334215488595604983027152735279131404631513883109328682889835267497320789203849375724926512749302562399833623137517668378445367492383992207403734403638066654027049998982119981804486094648415382329128799237075537211345732248342127990398296057258903852116131972784537527529233533746920407517746947993710259662902219861767913295230834499405442446208530973840683466525207755643785547117399077844542439871381903553004352379664892793457417219608216265167704822497075030977607201296002834607847512487476585910819540802212773819199918000320383702051738357298361424582970612377324720898922888230552366392780384554105410076473555817718372436742347503368092209508997279373093840837654809991176200579888214023395275300627857308478038804285746938823956311822889393654017202686766014094742798464636848197723205889164166401686784072840183734080874287806189284188815035648975374816734907787123109522755055510050693679602866582305715202320999405973005171168591008686871925578251847239020857794352523117356122869218782773067371559482381662714817185317087506516479377275437069496912962128381406914649037395156713672745722008630508206256098994251615417262826581713870743266749028807634978293492917745940873326007229519203275957519382385823473210436881862279799544961531764499704473273951987101060991283365336248282772756019784817062304122899441973257481263162122349174890168503695929555384340688463697039888920358091183801019410439629905843826073025806719205355080963611324087840442841408523844147515525383675660561743946989670468080892981476403183870160543092928504218045003190316508496211173491283371859825627257261541104282166891371117666898621407197648197005310756787228252736260026212232385210199861824172765540258256471176879024229515430633403493980916440703368646810141450496582523637670597536676288719170019457193157564396945816078827750995308111578720133603282696124131647928498686974512042819976668402632604789828007518022828317982079525501522922113093741581511120916120099592348588546713983282932762216180489860665812196264753310964850452291677161052602672811569732094624369100502097129984601028995830555806663960334934871529021416446141967089978800274165572408128443366324804598744954963049564396715645759873501854883498149144296995558873968647517908672984757489793090774161113661859686545173827943732276803619003055050020431711833888317372253146411507224667114393883384439269411472052086426612710419388229598473376853167882641853031128782265759282400616942209873278247042665354708551716122849957368179398513954329923142691658041102415760243741604709050673442148932354367457589236607869891348735726746466965942791128451536929440297176097040302789563932185376314284572946340741142050242207282655098526872347127633563092502417376680576349474288594779999133074544048140510440024853142215106316570352111400442879612773230156437864279446242666041773681177179336791055873872263568096894771241742967429780560166940349386435435939397703312376349360377817895401209204918209225707962221440123912632165853009269895112801130415333658543246058854256965477107448488884938042839870503983232241435079553530474362273907643830900733991251864258528560110492023474258012107257761781529061342334855919167768790898792136474243173015470024848180913454269337458109360835110643108957121732811431913763977685808500570968837278401210032378028898639369019256845341597242722196604785787133035900094425349701635550230693213553167574693640071195515603574455646184165740088875255501037369720615148134764103633885419426145609229038271145327971491533511920425223025143165867844210295263895864641052513848299506212570261915753325765635497274257020896852406806904462748361177620560751162400491116622580100290865106812894700199096451918776135161806790827023009124083970750103091077057199760871792646096287015220531819017358357250650617181113389515509618600293163858789997794094670001759786845490453237169702396056797772103634237230792752328312236387626158142652438419098317777173516293300536563419689082512968120503289451781989446862041758492520743728327449769779458436830045205996229886043244808191853101623697796054874498614883769596254234185141124055803107618229430042213434496169004581538081353660661340299573768652876524437635339579298506786807409805322877677117298225785405487605003426267382991681812431168004042938798892215666903542316644100375708562992212298361415417306036045678273361853853976687428791354214813181439017371561525882635379118525900538523587785919900330700633091473020115627824462634838309524525063346583981773201910965305893115314730372455002486137353472114667606521010265224682493688127087019813424660952291053094861326513477135130048850893465332621093409375148806094815505273444192100152119542868506616995070728395138085162731290760877440671204134019049527785944973569028100067602759389268432730060773252690268426857522296156985067543222154549218060517852735836806345830633189169810609287009412987436184381146883815830968554789692220517984341032998795964546777686584347189306396267479149332955068549846490077084686753189614312858454321381772208004110406999633551897486092590757705217228507174963707586707141669973930480529640155428426803634773564690211135723381171486261043538336124809022046545316617565621518308990994262265593954960514286206942791062452298745171760184447491463811001120688731536786594015839863453226600794050569392253405945338830888820335275256724359581328911865146387978529941860076253078984148867617780515537436238380906160644687708693269286308328053662606378057046423650033698222122013279763024426929690828375269538078298291983298932581030452351287572667087435849447539628500265535737083508366140952800674275021329275999856235862794733918327463222841906518325426972950125740076490350678705520373603678277460566202861216170019097475276659680194641800414391874719258433273356428598392562894549326362945535545617695285964632488434194115447817487005625936505980569723209401926117947917314961776839751860924902968386236925024624759327860914789233697356472910144296545643213461158268569447721035472149522263054739096475901108397748779755037669649296729455875524865860775473564330075254957238854091285506618720930757618093723580556783885241328644394864056908819878758803650517189459678958875085087577665454352470767909515136022098648711010383025099376479788030860574325041107261692006239040994782967109499753183959273944661666498389507143243149762200101841847488626129361442504370596372995715390084843801720604098587053479708746213665246045483611885008633545036591332728658893685493724815103949456314819779049706078478743172907747635397131614982806400424183923039037436228451099631617899405304131171005857132944872558134973603893058056596940650517595927073289444157782650075905893589844749827603599314432239042990454099110136727264396879846412769398035282008373765490013826340271440277265617896871592307106149488039947620778256528155174688874493300014065129056001138755046643284879164039141870366951232220857262939946658338451583526575830756285150927642352778116279868795242114254416288773130920059995496122924732856220636173969874271099466396063985527448207961217749980756106489647888777026511148608752840526606613783997688259185426628817478122939565819942747980214671531406279872885893246122911537412833029672292923856586864098043494378513835889716157367079896954220626342483676811394369601919871722623894810739002347102806808530038047337014151561555062291844587694433730819735699957996151943029864841968901824197207019607536779935674401395272935201249873361729697660936714936133675237423921935873217712652079980586427533789561004500297725972410985812646238605655135696445031871142644205056214014395647747756403647604130614422115587643818363884849442026262445822276734608251135591439973889215381384256939838393065278956061578684129616679505669053524185494882587550045661959034156769119505997379375261721289640238049806843243141129293447550345368131460787643618983384105906176824404987999935752659659572953670835017646626926287368841148677500789456734531993821214415937018367713430603235816675100362793801162066318608717733524735848371582690478981678474785684635912397363309592182300151805685315625251950610256228219179653617001767399616476739942995068243137832374470066065896134601882230785066934136744376288008380059094371248397391868786867026579916746517007921408314489388201505728925092190207584100444901296716646117455198782476013091809461813278496560619991868197371579328420379093910332505936919000130734391862557566262680717172112593667754408917662138847255260405813294354110106637609948827868221696870118202043640513471525978895383869710151120871172822902569781277595043602089619342331088249499040366520564941569614232453983164397460162497796538240020034164139750766299061883511708154377383990029095032044011434872785562457567150339711158006745214871589986106183345953498615734448018929655922162494561963679782701230531188625649863476372172315587576879224834858556965267915406986771030944034227266330772799071986318757141280052963376649568564035090184786482803301933930945141012387216567429316175782186634401909266174091109473484205820635105590488963040357596023441304318400515321271908402911640930448917593360569282869608897161172075302001945511096585263030773483164396887121166722614398801989563337357341070542842256483612119456500442096379698433798335536805908301550050473245581084947821540774066958955960284226216862889269859542068761428204748769604521226684371167822972970067720633731959023795477812750876550652518045217624223407386483250568701513828534421009067070705856647152889608408140817786941128430627148584661100885369529053965179755963086097941113101131656008067405695612622546340276438789817640786364486652214061655021410907358701097249994062847118568891128465636161053198404136762172760209034386598659509108266368770282605611210071628830511821385791999222491082545956346479268945562336935163447467918229903686203948229731121302732271741758338358055095517778771862994164366653433672803088845767034307593042924085253320654987572644652232182741097530248507088218940631074327121056818892315784254278375059042989011261052401963077140586302209735427648946390472052622784113735100539475980391244385518732053655326326487337205921099529017809717235795116037778548351358606528347142734471275376833628481285653158367807995357095397777136301065377307962122434405174807571938460259000250958556730277185942167530811106888573496568541286108075941229026120896885527330487545360363579095999908234552980811841212745986571242234447027620770600334910454885619535399213733316715779469059977949509618841504190433599893949701161876636891693895187322448889864231567137563471204320073143058977947137279277414611672311085449661130564196014983980228570468721558349752731635990990938943871141440710563623182582735163597575881195750201169445275960108510129869702714515603336163847108680339131328211667609161302467929345581549059308271208973661637301762668988397823955630959565739414816032851581198797951342438332525681534506632091542427115073477351184863261766647336517417703948764977182990292414678185828275596049029099167847439153342669150405063722128811931917504771787907018948825189008139952153594552760468197344769626719837453004705040988937200267069888680202533828609085784381661736634642322846772399712011914084352105510333540217319066151118292112337705567787506612715692562412547284100131645249457695508025718952034627240111970469542603402001808948860325981925062300397892831547638773010957875681647811328232813673793746351367879866227947401476628940485026262201645916239814725470812647515344367999883113616354959400539424265431922707558276002992426979625224195735868163513394571267011966624021696389998348184373693664165293257597849418874072085422157491991021531307377955944012233396585923625925769102962182120352286424484158057094491412455455098323485678142052107127616943820329374340194638032211149646148384158352779649275735220645615061688275343809751743563987952675473435086467806355093565938636127062945058306481189951567689832728132986460238006384914328201750604524340473473387322301384395489447355019858825126733442150411672532953938648335090051249773547238309121346127326835807947653674824937965834376936809483515221141096187328768682238151586000352712336361164688893451104736842416316611550907281286884031778163091049886002962997568593724115150749479219005842955284770461703369509997146665555578836379110905187861353204246402248263159160107564703408790876893128820332664750370453492839017327926178846726390083365976511528848841208443774336262268953626642794973409572519910642837252833265414099304168617465065657727892710821422939924958999575692935415239151032663136682206291881744584920239936518561235877486533341194405739519505373213230918803740030812581147132953065897036748087830049371721238339749290049568779182440955729051345904415386496283119081990361244898322331947441614574909296239076077580625866322111281596310346087376099592151901705296099178120469076671211905841214197874512444373496198128256195077921002234966318496811545573130666252373610193587211001590561622334722859363023970866406028629819851558431789166176428458150014548721322550522080441412436478801904316489195983982575280476140873517688160465741442576715477722699257366363655430855146121453955177415354924946133150645910859312312824063589322077046373766612334975900983866173217593367435685357751479359934953068595034586439246398042791982743400564344753773259977570709793180535389253583851043717446797394182866632842705628516047134404844996309830440167571066141611019983375985250862427212770015110089261833000859815071784475310849107064019356206794752873185811349131591214708961075372814542892872950792000472930077193494999145687749312946782858999007285098787273031013787026508015405201392803994138957862694142654756308169911169708881659925722462607039253072396327691911489785295069662978650833085727868558180197128940331648287761796234948961339016548187614354714560033500823079935741353615994205336506724633592314979967732297388503273566769886003856210453218490912465427117862734405681360038812204929335193660521024405438977437510582745053768735704828635010563862385067259796150914579435741795525629715262726586044827852268362483846582461565920207298308423225593905812487749767964190953839052485486620323524387063314533517141257683024655710853286031982831566821284401281814988174585630352560624712172761491043143328599224609695973600834789239199350377779318976277255425135977944602459972611265623411925000690487700769625680500705128379254824056824720474475481188834692850714236660542936940152580033906588961121861999909458086429783818617510780624030361882353967542127588707995798279819212008905339011224242678725862965095325401730169675391237511113830791724740807165807084307629191512817293480989800633396346759326546135844260932151847831996368861872028418751886181788171520461774480949657858771756426439924903616792366539917092757569571076169807042018306799115567543154735408866733691598017581287319609002071381972336787744800304346610367330609815118133314174186723771691194655346206706871290456561028731850342042124712189361338586326420804693174545609702477716154984211153602539279421756645865297889956624358932100145863851956500137483249715646217818584126663020659298084008412357423976278950608390905008303911942304799562950206988214378882523351860403802690846560574499530623119576327939566229383096965833349849389538080441780462086233904846516441790219783102875671193477415797950494249647241326321065594544794267389841464349891909871209076979825278700229608219058296397246222903674269227926223978391370609956294713073477938958274149674769271920466019184421142225585968780860749433977560277797979488016734327752676299163119038473591585666595244996972925602522430835115154482031334114424999987188304283568012397884811386042277773037092414025264031051991209583895837103770538238126074272786257492132873822104072274801092730948178158919175276047302880875872722734432563431047366991639407371026889104509719742885360535519627545071109146749118437944071744118595436023193234428619522590016268049007554858751134562138484458638150814313595314022251906104148927332979504081821203957268352865549774616947382706885534843547832627927118986290012356840697218561155231998949947645192367653549272049776823969666273957576206931310430328593806671936380704685647098376997022887189385998474001473001534921781204260888743695537383217304361758698475667406145768226329126806843144345896233883190122146758445946749229920779262097830091634430448808547710553674905173451488665390852285182105894936898585783629782004943202163818655109208899108473531584260424379808901155204855294079696486847874767855387346740696146252005932891857138121439453035865302766149191787661667928893578202627145671914713117196038178302433032609706461824675129179514450911913675479949763579672806452421654869989630246348326329092496696896254503792421589353985140865776857155814399996816482410748437416844076924374641916936821439716785868943599820024842900344115133268197361945184259472910339610346153624693026371212890729383313205655115516059147664666106057884559588210988775233615012550291364790165961524015849985054801543087761769769042176905857303587900979506596646475253899558358548595196740240869339067877489511328373866655465975739424610118122547403663074378644386689687190537269483667500346209974015155965145733179473550183919530160269102988661261107955774761498649161993910948265709208518241035234387802933244127674957752817797649896549685632823633951399613205228645174320422492669401087817792709417297426411382112807673448344244467441673643326536467068885259041446607143440648847497031707693942210768636896524318358511493953516520019176135927501741219489807644433282044102911443255046976415390243711767881938730168388277506108561255914524311646345784399286843061520355306682820899187545215552981401892842011003672122564183716944953232873009180752842393390484649311137846656813315246155750250437567618246990388286938053984732139479773432147611919568379044971240259904834141868163120086500900596269686263987039239909129719588278371660458076991220137867630944244197119997372544320762916639286359990054718001951608796259672204915167115327980492391535957646189089342355949487926963203099553311749105354546608328055092168274812413880657236386561445361907378699040027876416016130941401270078667128161538729188061445050855585307369183579561814938930983254533699869232864486710021669536578536220724211509014318405044144456823505039653448249532230214844106233001661487005969017410586017730258467257267331781367160302363836957701933477323657577168769697087354226901579997902055158598820061180956884226973432400919133744708548759842945852360724812295254398357476641377602390925251216258677189612186131717676906786678747640284369851214513925133285230034254746775481900059226477054813006236580667025924653446202402890547015597129205241022545471667145692122620146656023659753706052319966386433227238980918285749253307439622724748871850760299743815040026991161227720666359689021702355115249748043705970914415498247135644036821730695315734221819606478542893300660078357027883723749766067088223441900971108953430495736736730743309080112560759092708887102081142315697990581380218088051298885653336547631155166475146890151883897661588003812517415713728559741864615373370222824638279765028577435247942448727781215817883730476303821621347661580369389202726123931849409044026246726761947445717676814894588234979584478981147916966814717505333040832952557238866946774870893418753524977447666550153552696314959025247524599269720160955990141518358983038093857979437998952599945455931821590307429742756307645570902309720336986067925893124762315638981232846108809402754307715788726396195346086046543840114367969654447523276855832421905834823560486863479335937592287022146164500394201008010277373359340470398982892605163063094001754972448905804012849164329895958866191565672592219286838286200099169427901832797870751023269466529894981380753391460991167305108154817127058693940073509385219560859800601442105463116775296214341269760663166455052420493448961978848465862927125681574825613125959055852320346121661124603394571218294184875334747237565237247065510039943490074003391081038344050773021540738881634121949202552611278362467689060082239780071815748038438070562058034312520443054599533319731338088647002275141320070711706751544654973153759064927532173634142321590727623579912382333522833909080351107607162009791133823108233498322793560399576117396233692599207877029530931811349956756361367320734327362002519327290215576422427948118272197872600135819210895144730823796423639164573778919161057330952963557342518950205276857506709717658613083303323387935737784184346130592779834567282977576971293772431303980422711131475249008599681650425769410119632169686056095481891586110797310664278798333569926602787666073531514521213573058460850904415997273013829037795055362321412708134112107213039727603224772457881092780952228286220225890697934289716441616656021826940088190499218883290503199601347453034998696087378675526998090900350462739131467815953072069246047627252106965927174916271493953634132624403878509140234756483182693676236576765504845891181874562554412735941527038493955694859139614258082743490595992735973000340366027833087835997920063945966120545019530062385271111798434647053608753619187269040169917245857618819891226248397855445962565322651900320169781762238196664384459926020123656990607633067632207492413963646588550351041193859323922072195625274880435002830115891470712074117697138706688762088835566151401081510564579190931900398385196466984152761320188571266474713780236769506259294632421561632948784431863864464005149593868178743373056799573944334380227447492018187996989049245896591967813424513398024630685980056579278141373306645420007126481245533330410449646546088658008708236754217349000724451747223698285983865113972723018196210811985178839302523413170929491916064476647980230394953136929226984598863941697071486477092409319272824122157145366791146142178157378138187280217061831546838377246108127388423078933790666947502053548816001599453152571993303791951598525040538818366277496491707739776224274434003210812282129086610363720313263567368487425500096469688542968783175745020818400198151710509991583030803426609354486317638712588455524960463238678841113225845281964644581642912833397698440944587199290663114747333296415296092464639079804325687639530702271414573916674979327663174404990992556365387361069723596407326097684215135501446741653129929919644774543879653132114032456727879970783811950583159698846923594560340561199087807155381504547886916416804778783026128668508169236621655152857496713749360159224899506708532914149044182045168881516355039888127604595671930449870671035601512460161648595795012999247573616577878267679457668140023577101176576324337297441910562820112554337319924840001451135047236114707468902768453362719665021294843027096760743040585392360588077689071631282374695979441279497884107032248750329581593219680350196484562573663677818892920226787082866096871966667486844872064337023374806793880779877055654000838810835342866410209186443050340150811163896120972271162275590968369563431353354788836257198303163321843203587750468731657522895249831055505654651190474058595229716181762643648074072943986965972544546526122836045338320736267928115086550263206187817456185229817010317403736476132421981597734655403059204229875755132848302549825199882594214256277166746332991424648471513603650860889267341199905584458964675746812586465416158312204247619425990941627286609316387507886267071300664924432377969911160387022198141865051155604229582029359629174101935295867017963367197605036766909939296574993204251188653757115374672095829768851033873242507612014452360823527735430511194230076830477094681550288661679315374184104883819305519820817834054494874422173700853583151207001678323002236632678280246462215393462070419924461198054041384742698940739697314132385807220018556048972251094854886261905190937521895681988887446900948573212185349949966236792381142920408259693307954798726767559831532351033628654355307579067198792094793653977506369947297045761627912757222273901958932022158120089982149262902771595507640347899225409635109020484467350855389706440834816785289136151254479549743839102842013215871218673713322273344927293171324810621293562267918100774723698675203356015097832952366428906460680388219054930319559329190051288855245122140722942958988826359284865297208776936066135880496100546290485926160394546360856774246254329680792944233472352124130073156940631287504004223247044039224847439994402988114487405327157523978042858958799154086145028896014660486033235546658045314806151676808868783805663411877486313074982371207728801445026531584798004800862690323577044139508325430990080124612678832677712329932029875377118874420996920269233017460108053928684038448707779190106981373543479429472209061087069716407902216989523601525629824288683330950152949049319377818987775732154062722100299117254823115544998219603312909772822265984612649029263228886725817308403810516046513465926599339891319693899399151481458723553696705124324967373101749927413076801531587539074120550916499554866489665827188637669379039921076780588905241607411684346829179279342294776933227243751978613876330364520890555547641988030589825808202551777008261046925904977980014084107547847195646256995822219216746714613159021651590383453499747988110621730058164819413101710560332198932860094769493179780842260130763037498993710473369912095886781566116117739904629470664077622691598235678661293497028842846030139610896307606554401084522076884011704658699680224818092567800276917485274507025955441237482595706397229331135990533408199763661388571178826015611834162309487288911648336365019494095219166931745868954959573790508126324309683842768041242190628419206800644169268498138627374134444545923445937369227778774472086092605693149446464386649496052290370746188025153006297321668667262885255583218646472388875497434357240702975687544931668325030239087789899074069752835128860599460871970039541767047407085135027685863778386312924120395948550315646881704452353143554820293624113446223526368427646543746448030722548905417233607834196102508869546507173895677163790530934197277499622248520735995094391008666589333043323552876036558373471037693639800464230144470766842025179905682870781212533204227941749220582728663034341091138915776356183917223285072190154874557390031459760835396431833354622145710610312266310090115216283345024356298726181362612061227833712626442378773440099395863608203075383383750184600390297545645394485396682115315774669921521391779148689525652262104863137702464846525945005255069201062794237327557429707137191583360209327023483293472598736565294547336114606960719614467980173578785758693802035464037676956451373701475201492543067128075511569757330920665921695279075863291014093295802822894218898339309614658828210316330044244567217276988270123318109783051408833785124644838145468252803280000151655494288218263742037931140158388968672747770382065482897043677040949526923726549129034540453795326917161084170497790069318735673705841519725160426701368876895775534613862491743439367105931281586058285848351417135262373740673667840369528579395438199147737580489235681169401643293457408616660982518212867896798367228501319531337053319163702937349475315653278385459058174989185868865333076583206626158175725474185355670587432824494367352710582998336879752056005957855690383004803829565676368169500152958214816524471420523673401201176891664943123896172479561677813853032582716385810031447036444958147254258226197074631167188324571694290002279462335035154076475914270520041843685463270072047410505247970840711559480460132389934488691187207537616919328744490975668217555880863147359293998459580834000913551915756300874265865799820815580522872698257725797200739339416648175839949855456801006802732113522430293634890960093015311395273182456277152751155249125426200164538485983698041604583420416223710141460606783780931177466089443180199109101436271654652189294348027470125564392287505572422523664073115893196825326170578505802061197598190215204729339277699443598074411739476984764387746592039708787702548521038960838730547888540537968544835494993843531429167508883500880995540979036167247024709233714223152136412221089455617087529106902202783389269160241404039433236546334196557393565374097747486679734450212498630953729950566208374904859279513690013217120730268266730549432732007496365132371797679106274675164896024919592118133315543364676839375866280453482665120670612695135600447279289777955094979842809438165837419353920705421367882781367470164279232022894894823895580732640614158356339100764695825466091112822433804471721657878181046014652109003353531909917547320651610144814665187186451954620964078653486233639451600305223242254954888387762037702017454018928615516299125135666068682463446189632972389229657129719089672427637364478757801059826723840331963269530200962479439882283598891254522810995289541241513959983886626574457485776947833368196206511033490785786079209459183535040906276723824214261609090057314847892012686258292470049564400624688455968266302685645611119618111964770212398899777099700881880630179762749636722206890585173229659639881178142406649290823745053082343185643394636776447743314081336914177573188754598498288195329038617602446401750178195286164182150316440701549474656513868179477827331900649123119209269399481420954896003311504043243235097397700337091899361444010030308602508274911750383219789863855764246769888643354040809787112382998804445634883608509831713294911399083043734252357230381876721341418356898310099297090754956412993217226053202428834575455567706581669531170729455606749950804957623436854597615326860079605934255789007990246217191680672719079063447906932375227251508609037149248791265253821790855114584251857170151712110237891776560812272844830196804434020027412644955274638163329514166139931143502834615698770362250215833061242492449120962985327364285274614699303007831709468032422846204279976962144768756340071052841099433483006124647725206481191986719068602795150514498635943548186269074320080330906974288046220421996182738519193600907533482845459442154234313734909960531415014549345269715208239698243333177272142510675057032912116304371642058997252699377755020607959243192768030140829138357895628318920295608357488888965539588046895778361320722509557417638516793660403675640994804936347616616654542033784293591151002229536767145058521889420799293480633221088329833274990665254338795552298693758509885569928934522468530974581473926889794240759958506082953373820892726860919616820432040345379959196790073324247237800287915960760790834709910638353885100775128944456669650892437147917482499527951777083002510535965253234025365230078998607784900344659173758171287078495174502253641707795439017659023218009774912860632634055944689786402780979791767726167501536509506062306812399424418111881790136968838622236049649103776162342934747579312554519404406113328130686208792445426153515211545751117160779163608458581436788228703808954390286191965582418321054735271689521885021589627528840991396822299915613412082961590942407980240033261167672011397887524516666925186949865237456958338765473691075243212167680407658914754367804667551132093205666640832098805374455697129865545369505448342090738070298083661836541776027956086783056245330880535759727905741772945569813375810374640160911240512217723334231013921357546982529657835374483162130565164670844173181353565362009859657879095364644714060041888037957025453502891633264226243004138255328873435082546148802600454475697761958846148216936657090389913488894025771817679924265517504876354121760828305618019112912674027209311039770629977185856255069172580682674464353673516386992183684923623685395188267919985669821734604561621321250880448245928433041473841345716385661061492731890580266870924594569672147474854869480178875953513312710278358504608950603135977021887047103327592413191721857890617308823631788920272421507507498231065031061737507644801880804189849197459496679646560591372318608968011592402816095566140774756278632045321107684172632263573350943024120477027029694590198969418999546275680151669773087926644329046357095006991199086780835935787435151316154909542473828350260761976490224149297846826729382247548493680915578216892722825272557730282502397036571303217039438277283775032851722855310900737622218881170796302370388436755535834011178373675467197402225367533664225640360583803393310322901974668196994385804543644565507380438919347860385196950780239752751697735502092230018069771630471629774398239753790402045390444170304978071494382846507312508620371090585776033548783473459002454004500299891782057633712686883873673365766168304934686943781310233051806044598445000507070435138815461475964315356927643665784669432564853098387305724201146699454255543501871424376605448326264069298489790839345842243605150805813513624396504007962533342928505774073370419431215422777432194496596224772067856302744717175956448813244816937522037623604943200820501050275202816084193578585726334356669544852756056541811795250812237664006007112977906889750157399053774922671876825173307806546861625888805816157167365427632819318585949667488032919008636836412712406626274404643784252507128380955201281667175495962098495844361354314866663833451911183909665810092088714865588960222613123580097178060725729985493143494677642187217347357516522833057910249851308439233176563326459167750185613701419964336531389859656885847912599148358297364982657798421690798664836250752798497414587458475882214875427353158085812613107214111182830077226253374796705785266112258606758249818805956246228490136311926541756880370433145412767425389348706431297796370325326439828509819126313846518333933462787935829273132395654835955093102434206999457382088442287323579509727258595484894360321331265836530576309747530355027890692916532102748323405641602077760146129467330367257320241739433124555068455420239797668014333295478892569436697668846914202325235673990448655236522448201804458504627346965274164259889332234453937206374228872440760676458809927361305618828648140081060971973851396032090858192002356409053910779125505449442340887563927685276047807854133243788277049094424499460293364802104061480973247100602406273812959199782215478998116938747153769842820475794626308449593704913314559917449720103869628348350636157532032948886799316169072748030342941930758488777551295811613146258813426078119975382093534566143209596492918494981905713210194155835565676799130272452795017399693897545867799137028556484281994864443225190332604859924396377050664840848422853748375593808301037912025518705225698609362291221758024036660129547943369556736678700775727561294611112300503643831780439078454867953288390443905129682630738795630748803946819502547116217271200490452432567224595440243351726165009925388610729068395249142267174124709414326065555985204525419774120835825628893557938667100243891180663648838075139344563750446526954077638235184652472294945836822085234118960768171512856036180480970368773625823019913692028411220682747517004927612648190224720815845371789128718261651704469519669190727118285448011777611249185347403861489823316704493898627102392771335486221389267701280797113558256549934097212555218522713538836936895306245186302797328412390682745757597091434088311502357395108112816315730544237519478735593874456560963277087030517584640985383924846313845611038078829049881707375268036271806187670778446016725659675063009548349081812374339015601155067897980061996515233516781859832458096535770556509117483667260455120103902747806736379366152535458473175633076573229397567283550034035109635714058397653997865719914320226648404406556887140984725589482962664982685657444968542403413744191569157434966691675779414818235436243923792542530510151289198277769412916594580476104642231747510312623405693624656824234061925016545693434305105285980892784789682107313854111374498456369523322894088252339066281638852722901309390636669247857987216081334126663915331572865887463976078890846033472992281684771693222728247834618480364867541093851430590731406450612857669669755762441352991504382567795841171282730231699326553407162256541216622412800905647012575502317887132959023962323992794707934993059630731843292504153676147952816517438478196285347450801367639641498258968452349656047627586750954946023102581379602757250885981257877993835219733459764859178150943240791628777555026356442758610159759798194281168103627009002594789311354906583103512970810905672087378132631927089260374488216518358289749233511755306505956225478325572252864602465649428865921237226900414071630033648269800264433559832085218787075833646319920717340739446301912605905110382250891833027281168544769324056801273358235921147448310550681800723489247102775368459736009893734136755320180262009707457958851269253559691352243266099576946431910487976711836243834297740256671824473367508448841147299228667031464141311896805203999189019580233506478841044553018231140758668203709043698109320601265992604767195450068906879826945470699007961170266569942321408625980964379812588579347546756003144961768237402032363471029937152332087565432673492400674854256924981101094398546929575289518898739582063314874226544870418422038284836487439640524732909266706470333393188598513168459498904683171555509274433735673349654741445027502902378565210193791182457468628547761790841560954976108558991494198551164077752018081557716137099398942197787643245807688448023335564545968587044093025010736120386305872554047286761550588825665483236609429045383691308245516979054104291422250984161955286603798653975881520742337013161607385620700076440421238496592880883836585261670933385046305211887093411551682533389377233326939472690266822959622975313461595220114402602365477464988311844407205269600806748155960179712790440627770180677738937006873652877137622903829752876780915415063183714669124737911242204823015592114940434461981610940293111514707575879572077790889551109378614243293082961971341987594233265958246686457843687788538243977284341204079930183468718618424361730215507031841291176353156659478158242469578299236290494318055318309911910120255860901167104038408530626896806768704838862959594826770901877273280199454920040283740014857878992504072631150192192585218157031874265235916630088612722689309376051713546731064922633632768423244661037230911314710691155895551874739233630121994763566260216222572002831741992346630714792867128869919800779900792298353520407710051899111881200766638913904775425758420966641227938945523769647695762829604592535715866752504315676642133587886307337358230182783614188659320535685797626959836943322252067489834447480675638321449836298408900819132632418466409742240744920078806005169988126797920265023012196778739250014289796593365185871878155661546679899728371253606525017351054595632637065882260990351411235563414011073153979721617734933671907946717534449912478056786363128759463613523595076356413931842476717198701699157041937690988374234695087089034046013122478860135116703673156630694689486381388757981437712883213837070009205620644126511586962292481920754424955232615599193585712415629036160589044268827300282795283126855122658543352987584250686444804222988226368453573680913953754304951545965917561276479088935384891762331593424227078165416752934581288724740381420145397644378538440220302314829415816806546477146985679132816153038166172649694708626639397075371521944104920834389183540390886178553330135685937275523686969678023636147378694074784328082958594331579569969739261794206103523818523265699419900618896729233367354932365248939484479507328261368503726412807350184977757704116963979151137217228720571469128752926779150259634948070986361418258261485386678400918317357035343832627302566482712397073853485680196045089552719686837230060421335058521216907212654497168304177651013611459058974263578308311544318356020125850759218391906981571064426678493695064859377104981497633575116256739373539728142640246303572859804544477556598792034572176060184703444376949095549475789995136114121883283924160123784889277942008451247050466428896820357049509821606692934184174661026950119394996126208058403764419714021066491335193869346934453339251924522427260802304849080386043567837205607923080150009028548936242452814296561776737187788203577010445567696348074452684411194616370892640045805771571872362230605594872942769609705986188705903358529036951833227249945420406685602907953307327998406517030565863427967293412378051354176922245138293119967545572745455571479102457314497985542504652872976414361378572060823998189679650048525472725055643130003123840559181352299441071405775095214336260493292536409440532206599020328453082208214969926732261733846459427587133672427417057922060468381934493818447245780610002841777834158398122854440810854250967760720066160384348868369097661833696168384128367443889966842658920073897627171590027995131791694970396362094092526258385978144856577520809095213453200022275446023949507497794644778213325913389145124241968707874636598791075624597337641134157489725429758881356532052160020756980989399577337180532161157746398411798175522178046808043508294801971499281367534795879486682517194943888091832548941314902717671471178899796796720556285800797467144875158294033418922934392832560537033607722786257223584633950266643076385021657296232955781428959927677117043999381993308109380747585824647078937763383153920260613813161325573915820614411447706513410254365066802463106940293290116745145135354934838161521046012820491423630420157991094836904803295491696630612650105432742839404809178238101633747474097491010571258840899868605100980696750020682550450053500376185781072888646104948338298895799368222919128543680274747521417679352080767715089247817571719349660019565719124022776359486387035376333989388456218357208331527913182587806176980926660657606363279793015731242124931274291869120265201218123421431292903573564224879679940046489238164824800800110156215981311034901564521439144098347009494628263735287568468055558470532688013905733470753179952595054935660833845048025287651888039364557351003694619498825871694530781464516362792699561797203737171609796443636381566472886890179799189564646734279095996541173096759480653778845834263390317127215011870127405338652568416792709428852615673546520597344053850355607835258104241627954978546918266972925740748013254645922511370245060127029428902085130263114284023017227944657227978251487594566343306726683322659076497216529195066268605441656020830661323545413702349436067304719765056552896618479786371700481168597371179666529217550357994248129019770808853307686891742883219988341999332943800318569205214101795289086612630040080290780799805477155534066455375305311557601630982512414877035901749130864128319446820533219804281047001059297610293482094952473164075545467328826671992578082870437824966010470736018851570495788667264791718546544584044030115361131505139544721518437025592537362451631017716389196584921903342424552043343642860830464639674082189735929653079379329639160706419165718729166719631694895460545085285901800911792178828909925418251661390476206465283938148972303764272537308494652802298280465383874655869697263712680847926327517240777628209408431079184631026320489847311948119468465420886665753010768558979525591155356275076755872791648384949599243188773309784708015256807215608601265735920845921979275064610346387700336758532472476246573425868959138952859680092077719557674997389129232464615181425148290147970126407138845966210812168818749056446025777762294902775269589688288130813644716797349538898201454472948474677323515525120713687976981592205652029130962538901555462405493858625388789473416006217490355367359812483720570810262875573445784298169538847376556279455350686124392747760739775427393072066318706552871371951096323168624802631670468548885147932542240712351703382435409392049316745158050473670364654418175302867725573916036017222214165704862428951477143356445150615542201805674942479117510095030793455887803075992054088525243012847388830138329321532755737975811452197397176061912606416582860588287023366354904602865845502858403111648730004892158435190500439489791713798496211896378416369487251489054945339450361956977394081846741126529273427273384828505988919797528951782588046042350158812621576761306908893361845243175036212874368918192804931824295018601657799292428657408797168880565817877830740044273459049852654598004223340718568249052214512447105212905111484877357416767813499484406567057493119311881045901503184852589242840765988146133584688398960053804412938945923759785041678499510829499770418255453227541597236963150177490323888266459258148768939568552431803208360389509269673776741045159404822739975592516165536354303910222500294661986613637293520362355147906077045119641831849434146058882822563133145607692831870343498292869370177256691447797094233492619793778277908024806103511598580658259226931657573475910349292908629625962964415695116478629415321791584481456673017850489563690836811894869778411382851154972532862358008042931185694816083978452280883667931431299605335981100334177166858776468321618679398829519501105054137661073281682549988975914731086608684922805861970922006112035705661539453088265313618662669684523795373388210006833894314353954049745188596571776383869655653354027925742901425123658612893292336687603964788864138506132209012530244018935806822861994853332866166045490500471118217970865336202115927453856053687840170139974172696504408564813866366756112552991053242184691633985928202047005862642887198717302761633395994215735120868730681467888855919955458599413121044358480310184342080955856775114096449774271023822291043935571509117010336704069282852754493118374462534955090883335654376954962485045699135783491509632303198274779224360924167116881352770190361519057843391032659788203359820737712765593907314079722705435833979784815317206708206871910041627258079029315784693127428704930522528939172930401127568326832380490814642447780376748101328183297013559346175412100375558847060893694414422890098511156336638633909376611511229235445286594127917401953465224129504677395441011630684377139649965344819444783652033399402454827587371179582713968076323392149302940589905055189920464864713697988490959447114359091759670516577873525045748069633491151784458900811631865750167129086147563459331907395894472205963733933021165052243206537660753408933560595039643931376114303445744390532847353389364086080456283819002417286359062598476143153173711034101995273713695735101498632237242808478578041659505017200876010126875167413173984238543159780531208940450004845790684863063881739917838417509566193247337256468803973483140501983678009660095388107134505634729440030247434301813500357753448113684054776559050723433373013672325421452544283629213361889734238726141495773976141172673535181296796426997829546819570373647208743150637076784424769306878100250420978652318698968054039600484666495544264065172996880545149950090896353934655184409007133887676680336848682037258156061521786707767554992383393399339766791278788085017915546591862232466616911182711105285208118093667961524671818308244475987031079755752525003876299636327764261983591449428847456945068352270092843528656397636948763964488691896932924319405414355621091443126925639316796467375483847379878230610123977531716842962151749946540194601136880677713441326102327263374294726141279287931221547207487257220232064651514149949034115477263919858831299280225615336241150749627958915768860401448185260897360909063831037350162968466172659776707183303438189631013562940379994923400920821506602281917096368367489622290900682402132340943293290836087260149214886100621896713070817223727590382659266229566300977276152580599809861086483191406452658338337158555662570242643833478979631701212106078119445720965651454069792918090568594750263263979475521346557134123110731125359098639113328899430752715168553611844631090441854109188744235390024482983342846591774720723967885007423348936864994053029767109464623041918600718840035752234588288990689290160224313776233900528204483948926876869869235096081449260149722721676671000392767086598670737079757091677765789460115559456857575691462129263113555812331682621757647767572713592150520394293421894350353713006237009905112806601096369287485511031326437139037752159137553168817909907515404163011705070021267220387254434038482543528665029227654914154575509769850083286920210965835083601198399806821938402029560204505485577328714909374738734545453630900236116597196119392631442818933945201167666424865925218172727580789413699367984098479101530047102940082962791264931808106264652769000036797640820134502830798167267027991274661698654498954384715358321994185044826224809068725933406807687881692698798640838333781018045277312081284965158398564849375101776233224355637129076358222559768362960212423585749918215272691551366185568652633377008135080429178622886093839869501672647554583896076143753377743394307685080452166622955024704269608706058366669686279248995051431386217022890327601686680735589275867714347267980638281974511546272306715531037382156011914005065633415789713696439416086064965842657967887250837090314898353265345604309237001542508548972674064620122014548677925104824022240733641040525986978048925316555875882665765164649734347479272389381190706515417086439417158886892835487190466214909607028263072145836363103723269941801624458238485319156408219771710659558480690171515166811323658812732554582966489750559228067850894220260810096352557578288718339528591712177467876609141728912053888994597460528444551616941295544501981530495947535065411453487681800122399573963944688433066147677110180347350466313776817939266684897379362012578240402596921029243954847863788190110062744957219187665588120346312679095268333239352254384074579938456400450912294160959929122165724165629313225246881941267998559735613280003742766562387053438744443285270231097638647400548452047572415942773341498546342325701790811839238110988333980671520320376348298980714229111889202546541313650650422282114383535378317432913193016890351652870184717159696724356241796373353136403316357217528367583905312000197871777928209353673913069572751653721398638494838475470241856576140859893936572062185401091935236700760099878533396963977001565111102609082403871552675619207805492497385898755433558298332305402772204776988208451226012258560141301137497277791798250931205217651538267612176468262407218737184608504769465439318167801737189635890409277345964518801325623344202126591718474028561522347382879402067725204804954224302021317495240169691958088731643735262977843542826986762138480166156903242933730060099176324634876328738245809254917989438269255627687402599574310751510745559979461292637961897068212213223325059589242210882794784380189285471635437255438325899507794016371820678350875995410018628509782279879050779184301151092017634937230025705153611743017139483168375871448087649574212569513728039482103594904415813745389511541636343583587932496344128188031796792987129119335240659482525645400899877440151929742547053728390852222047589205814315296748829120994972774676624678332794132919627448304024585422424576958469255073213599647832297015842554950549070415666511675581468337897258359168728372529004981706174497903121366134474894338416181794286853460997477633675307563816382370985611437113194768638621358667028918405294905721678031479155880183672770460251481189840542385260258930140746629573575372845869390284867071126673962818793418894717315136875712537108877235047617031021195911220021080005712447909134712608004478290459483684326745658782056525662331220599311593037808094640864630594709890491398487981746568084952886991064043060001897785808194144431781398194966757049743057499109486518038898190294651431875491078450368415691419380850445214729807708630558090508911249703345785745081367105272162947433538071402906331277692038549709331628212519865810180399689505799800186176965521876509476336532663516329326729833330234572683151444945886339937248559652047128187190896792507269637869459598544806877045141091220224147585019944480569645196258069439671092802687387814074718688882605331537858678267540411483103191408637386403037318912559127760451635559548624631272699114701153400907572489986982225181668250797403036212561562844532523121962640785698276760659167515853995252926565462148097102350342056537325652336762013045204589687279308083846995636147351865646332539982412963943316340645780996994393298398193069350902217444521705491688640803701036678814914649515568088031124684118977442224918704980739647548450526991979035474704058102178886789809485902110146227179721197402655586823225685885176201395694595533462358843708705597578479620618648326468155537081823580612966300432847639752449274850648613157517755300084034995525314247536246796914594888437668333897281275005234834749443678378602748801112138725224699709317661056865832876408000039510757959557697550543265148504185481016657387732859183302937360486306770066525247593501800248621755900519805489817570210136431503231210888443591639003302519819490498903914674733567418028574147121276171782736048286939979848114980990088445341171504364972284398362248635522962982138945564626018859549798431808481887113069088618559771472505969764500419214005727909689654960705066544845167275043641095944947956956074281760919438629362590154867354483558868823077669142568105986522556484515315242639902571949416005399200156559370271631478793523821629347319083057450303070555579130866459804480632743089495246515402771330167771114028139166506204313898202576499825426954675617759805688251709744945864135420269937817897726573542012226179944487766158663906194399381903296164892884510361394735006394584394603633220495736923933947252583874218915029633066567358253584054054093957922455462644332697874361398361782309198034191121486470472643074687684639037507429815170579254524315119577785180284903695950525915701711684772787117722770407271321911208607099120824443099623448380360818606693736138763223701570794749204053990982659769165017938082554454467650817558727500226822864644018910451548065143105925008399222416567636999088637489678614501231177421579129277682922747706059929963848422383446008732152738359836543786707985524945290063767887596659359859182880219541091700038495167176464416314750900090646794976867881459580502793633902060766222763234938921374934584778732622066696023310998691999933056790075071219658682495313200375300002273416978818899593003335383352741655668009141220653645666416050839488294015003649011284299378482267766066277849767156947983044458440317788183674993026796160249909744077976081955458631507014543536355923056979512874414522578908720192843519412519930836614497016364136821910778088244482375816859447360233878929167046035226830459446820851583496995624287925561525554327028509076885739055979585815648291218991231238033671864213363530562642479717005976011319859899958125709309285518459350273199308033131198988101076572965404765644705893522068044247686585181397411989889435647174602659347047410458422744432134178148709760273099556695951195930774980773555134069856809260256601552557504425375202746937796726989118570124792819733155876737507390250875759389445770605450867121817229066292439127214777748615590566037058111899116400452928347760276982543834355862939362201172612653443494098943960520054329173100703739784414922477470267851568794445686670429823786983096443812424749704482474593359407711298273901545346080934326218953311267910670890087210169592804745702401081534571394578819979323399585951830569975730215492032336007719690108295915609604984639577371775007102722092325216505983124213496388676898094746471821806186616260993744900309473919076172134118763847603978893272338602680316825711533069107853455807592266199142878329046690108407049852971545929191120728701093372351220224432713092628426526108063879160425750567754975726539617406135003965538407829168175969650589627762654691142717868270902224323441128598984692391253994636518529713869352819668168793681483208984865226538620159045052486170287807607522984223108384697448884660064340404298400041485705593714303497256013795002744566693393965100656009272575144201515545219278645996419216279393606831328837843600521824822863894699942210415621816390956821673057584037516015017640334353242993070474975130952304560251653698086270393320473008653785357189366386705620183280418443954992273909331328363882130899565947040094722783118116991954267779515458970812671740945298308562932744715047810884333320065213416161735835147217445851002712119001637529022611502250751170306964333476352986566699532584826537080807944714676349473602404433424128402563022481291390658997288805238798000649840643005410663298747661136449078191845845739647848147284746015723065552169456694468722582197399243538613910818804328488836054170979685840874592574297018701501162542039619909547280114460397843193222836702442308835031239110663427257169174605910410553683442144119556216185434296587435073185644382662748874562299247713596281021571445937089858722127087090744093059728728061893803601433963583100497070496320003920162794318053344286935458628197609774783695649066540563058289846340768073538241093571893045881256768196577391109050104836287807611435682917874144084941837833373627457394696913659734107897824247269068332905605215676139364529911899424875450037850030421053014325189709548856049974199689527208097096087341906976505693991164010762549821958454437285075174581397810198156769976055373908302349804390809220269789217059927271450320510588044829169333655369271284595442982228940577262088377277147705353364346544331163646199664951276228889579230399596471726790350412137038681697574623639660978609721433066044604905752258375757478304136373255154620856595158195990083298234225415136272898045863139243550963501251813250911571324921662762369217481666752146369514281623487817029975287890262705904848911976639014430012806839442923757317364229467940735340139681415482501795236954529127156454216482196338137806756342907403334008562472590720988082543093275588371211980415859701697404556610461892230792794876330266617645190621242203807979003023571048034345581488777143047291415977533911240875319192741147916571013757114499533231463814579907243640250571544118458380879027895046937099340051701469960878446456031409300353568483335847566314992442838139702158036758721287986163798913806104849032060088173718723252857135280778541097827665559391854745793368819676975313657657501514338660425651007198525240672048084203031061306814634878819123163287102680720889725988318533809438979469592764338586383294014987959947107204221298989916942481063447613272112396688011706087658208591167593549271029104268312111154599698543924493439412640715839288836834250815476524175352610741214707700766589344306698341239262635253635545133630410433886393701860689344789178162630290217115537589137913910561265800941858854789423744196587775011544078213237186468570105118276585025832502554906772426587634236237464716048262567291008661617818355952490337113978977461002919877044588108798765026972454922193794210622667974281867795117398211311816333052756285081109748203602151014985266996191959724969279691293480680607990211666834230362656617546902014043885434159448508134841423796293210170795344707229279795728559662648874913008319724220390250287728977151889900830572956367708171238740921781450834389350572971806551566887288775704372810288409605537789125074759451938954626808943466184183941547876818226074897437764797988146295036895841632896059213431440625846972366444367524531982385086818980628008446763463818132555956480394724301637430607042979198174752176276046396343190668137061351358053554714347774093545290749381064337585008648338428040645912696190379852648529810308890247686150232833531054656276288726113580495982811066213718527360192697579688888095554289262978121155803504353426861437172563955424958835734988772082598713138537174995619515288110028189665890948941919507231912003672013975799511759637242158428566447017052927447356374794379841854195194324478133328910332017973904915049424593942927579638969028726447054123956765557839325743215160249504403274123151189763362705585621246873498647919687667768930842970803525427129383510872626941750985159533813590268410461824235935679375733303872234112385135310291428086829138891923831985987564668656456669009325043134419950000043612461603621770539580338853613326422162035274755213436449872241435815672852958881147649262746115288571637708929948594568222782785801751038501279563931657218360563474454356085650684062037303980118302502316425405007204344660173924194007066216255424135781563842471933764565393812380896166594666606351078509544545436786713556657285854569605323815006057428434880510553078493587772518122405494305029304541301728066632890409917463427338644553962466925895865070841759812070410513746066467166837343650804351955804004708550185764882017804126566003545276549831452344327292043211984331229058959111146376534554655094143603255262231237847872825825665612178820526599024953247131342996027538733488288250953265636172901892030677398938551562498491524546948019863329090243509238877302647302628927839709088699143275614680038112621145119157527685525119708419422500458309279711421145847430625185638175762654746612753397505864012939913416847537292348985528748205332611668633971260561446029496438472603742178899799835730468051213381832694303571852260690105544298674657289336141004526482388180701281272806098673449071293983259410665227242530147918553461673592344973821495877734167475024977147634525758892987089143864242331770718460804127594246953977217175704919241876705281243027818066563491955040665523742641279792354305088985930117014686902727636183366850901433350589701285713887461576988151814715287209500372017366277689907100310345649017887576030917578389998994564923699531181932413113959322964244322487663936721479557497735965251788340916811456728977936367224609959789545746424538751971902730146127569828014357382734409940276423715566086792187975579066843289723856190463790398628508428383606253760453731888951579159347224511116426962862141773900580586747183985431012625350363982802907167782390176815054666337494926145717998707845851835670175357010538902587167314195289917189795475786155014617836471991190159718018503550325605548176059431210528665083267706730035710729264507216808937031047613015665598359326972843554673030692077623244061726236381888429949882560262617116145412375273536212932240214039642859560876575910001458001101409829406716709234361466000473392066025052622852621932566247150896367677897537988375287888142405440384223908578603410490666315105278427435815065071933635149091175957336228388572601806474948682013294113374297787408293636844915644283996668136195132762441383660085706215635366338971989404766010312967506806312926896071821966260547035413452544357657147327953198329065244559997983019256513072694138363442262053600820581805704991448491322312455833182474127846756147398205886920420031821071538787900975809268200852434316912639314823551526176478407771764814344520044043905183390323356837797622379028207273304680189885832287578653901192678887665483853421644249081634901186314021088292546545189119201501119230934824937010610065062937561081402928389435680408005851523645721818427657767239097253960117846302061896228527105035185735427906569462058520687109421920484416831055536474744784485119025865301478853053437724539916956562366516975964867359514359640675534194834761359582025753528819228145647004829162254257211431629523716474087431816576467883073554305215492390863999855685472347077620002188738128596960853225802895763468799843270172187142276597405861821313503851084717076978606657739699865688184998269668684735287560969574035442757474148526089225582517759988727996461531253959239493609091801924033352835051895867767131706541727303002835463610518115836409545702840800622825639742509897027457310222972195489367582428007264758550321882441793021107284445148842481552394033845204477582691744768906841916892208216574088010365840027891260052258909293240257860262197744904754201403412755265350913653136131632815479408814633044194887281213477430664362692128422947544400840831449507068997207707912591354205516061117041933874327599251655444115482127818477404406817051598349641988091482780211004127189915132959443562860277879002144561537925245847445234070420947693587987667130098279939266419768211813769936127116293383720159018448052662220965194723940180139616632099072514334502757430888665260240985424901828539820112957975144434949551861639574417729592423386940174596667702581666516096291596609898085874386137042390540527190455162629143708939916256145590388952819453291652019155096123046610397595345279214041268594877213562788606168945952491285856579576819206976842478114447626052277599153853670596467327769365723891952289581454072195344180636910353543405148662165899692503126546705473976707065424558502124744160781053698119139924885395423746681326349054989049874608918193277280010249376604484381168026331940385076629306538370940090796463014261237159479587924040231311724083494017584173038825151381772519096655340361419031831991409665382671422393704533214210899079412095798293418957958162574997953778038580684288360128963146470225168894665758464104521607826538553166327955142159609395918933645643427173168213428530902611792344391194923892730847153730792578657395526297559837565611276804006337769486260285996019329832911794786415126181293800132220227693886193171526122915854825323010352765224775352777908828586250438043311030888449665092380700403372680868310440682568879382397529191453969587207846100230381425998980078574661664172472897222150763869009253097839813146617242181107369873557065987953839995413907033583457348841484332037383266487713411194512037744296093974066297504383277475049502406167448017210173873250780185503863935412268990110180320355762479662359418803564561805863547880254587499743965408153172350415132121728282530679973537155591036988577255569263229906944400710459318936418935686243917162855042813470432179963075717315200909525712007791798169722116622863961990627431250634930411537922492464429596414797962798034964523552473364774838052799347622489222260188110733929195742534778657201661427002831766604141188047258552309918597603096818400418264916480463486507182787145458068043963771813922963225283308189255948726380046960527359984978458272790032593372534399971271173646614094260418848865319436359790031129366525995981533334814226071499566967067103124183579246656994731031815210739478657780052358323113477761826579565964286158747231334669398225439734004790212817471493079772623348540534791773265584782060870604352207292784166405492256798792199478383568074284970539464428431245688128089479455954679414064242989058408245657134772470013739828992928256204935334569630318215727583647854005616739550500442263575976306894343266323156805088758127285446962621260877287899674858503469324668954586613735380423751425413996509099349575865473118810616553271390636396505967072321076123941771454024002115694723892806427027197531352179793722763420270589511063656602639578510182693427234291000908943595346582439862710191468080074405086063408602624008802262320519560039555203643786751323177936966736439928491517352115700216527261706155732347715367622758484977002202675102579034983738952648579188596659651847175940509351593188070317981353523301594870022986051830404593955742224095012775011370928959357920185893351857050175708468417028696887821332895267741907019385437085098667115974593432211240403791186972742835909966991770203974784468178164228100874795999532022969451184976900422222210757939723049490060247343569725534221611771353864613156769006239266550617777330534352278475652857891682294715333277646365609390473721225367415938736584601681930185323286979870152636095780215428072352132329916620189998994262169655300363733264069135090765300911643619263910137215192926444565606911585176589521486788829589253165651440877447078522524496727581995196309807594831266776480770068681492798370573573661638695036717708088568715343366224397939727774110635223780519916288126010580063819311613270062256879450723868232980130065085520949109516142902715220084049293351861391757135067532989373681101156311164257142055137674415948029813454645731395042879372117996353198914640758772334277837309948265923692437062951689203847785623217930043528362755337613914315805866446440543200258469286378825814470718098450449180573532512395203328519014553755133445179569375003452434727282586214771716916702326098625853579271306023301350181733388967862881257494096344999879157954764645993713973264549715589659398970949755043924544436595003058570949890416509187527171469794771492739861578161713303178570949343079975582068277780636182549855151622060460300132078734823875928774895883717104259875916880150907379989017286316771289133832019941621164127441823523378725504965712557052152652831030227041684281341621137846441968059708744670470511715167172099468193212317122994294421918235454028096572651291121504706778001538401461723324450993829376364450935149712580973799950765748401421463819255221657288622792880284499427263287241735038510976110030838713567027826340847423500799337448072744401933692061856394472064286238549490896841726702532504999665517387917348223009812696304712354171737726063539035979115203128885199575273501599157321038188612640908088942114393527017483689567157090241372743788476446798991167657450011732147850896528659445412986004813774890752439454021333477374609017729070949745053912592249942109023047896919328823370278581152610510875516804913291909060675309123462510990755438727765760681654659398494951295927765408140078250243429953341457145628032885912308395329607871498975550946533172419374972190417214619796470127563173506436129643696658065873656258424231191114489131608326178172629442511331307351175026517101765939290745749458222886464874570850597094174098043668706916459797823601077127382368170678032005119345917461411859842294978229183522028719513654194468827858827983140636232216223324878859792893028913992206967278735380536698727890888012729099612707766180463371366524947335308149400080064660075488456328781436125536317079020363107853833412445400188205526941567967918211756768729388765737475287171215671859710997226558810822533245698937786438852084370362937331934523320728986133013270670525462516153627891557623036442570171615340992359937689009560817167030846021878908458577923903736903425651919951344892546448206134576230917996695772686328321721649106488687370437386721946735215306619586753706695299022809998769434625100873132067184353971509503131200910861751557871528674102330771629235527668857123299146887962023375051905996027558892284973284935199474861095044015734432260286020627026889955758306905879870585242632233634637651088857021409517132173475661624071744524354274929565277621953332830490439096803993168874028617692032016938267749343931436317925749663383369300130564320479774390721190791368090250363691593306714017378793152337497125409051364444067919835150679062154929768886374235237077629223141385581300780407764767171046671536591441419082174635757469473790430108728300435759563185215184316664528859351730895444810783129854322291460024582108550888292757714043319943083644010174795636933484741885689974688540184581800465531378315039105780600375672415097428276662877632800346148070680640312919093131096327255880184989996719135430222972233868093771994579408827183845884629613111648692574052084481906472042063676481057553705782141245269769072365868635386452497971723234901800845460076391813747968448028912847068198845970824609802666425106373039813918055724515778588150800528729117402372750396195280959578268196853576413936187958515777231047344091807693326826247227397629700557517247921352134934051543452022529435084277935741631065998331289007510178849255859641542138042461070977527964313202824599834422347765108633451619931832209409246105024394249927985733282788712259183805672294977375650938785244395598858700926304335070185808169989703545263574055395133725255952363671866435566746391508912116529856543183732216904168431116376444389300851600716528029913350149255609599925810765108340046584119722951861476439540898116570389453776347852279547710398506842700545255160258574280790768377548254278043983363691475172648178280028639076659873881555255873507221310480831048841227907234221912675415559941331212088703311723391943679301235739933643385284721253927817620589917332953321667504230611855359036723130248856494696515542952607520227520169304681792084864506863797163942989235257526145654276024237191743587189764298506846452862678262827689316780662067483549744578431394639933112183354909654957945487886452911846987257000622246966989013302446522346204230105972027958341762333807469372655368118929774792261256803234357795289055405295010740778155410384755145079059796515282992878432256975266741779821633569206108462978488842501219562702382602573420079708094581982359775713455755008174529867679583303668768000666289349114120314002171202114695276448188208395338806438194640004840478038120409330266835705116477180140088922081611614274284986442841099945722178532809985315717837854866450706984146138745032934719147380418036473504458092380463481765379563951263780209037614284317715884587996399971676333582694996458200172939197591496056683308220687545465301549263356380968378552457184864869377029457639622317465690975057728734304492722173030892598712611621225614119364593486136130137208755245500830067432777107637157492588350272668130395206043459267220985589609313427844004560824558395636618239871618062237376336456698639217779638010441838939830853202321816007109629385243932256475226622478863755173176823452128023796468580825216506534162240336331332514253217294744215337237858620929883676729789699479467465169277635387895586712096423185760016827211814407225831071314944436025477017401596242902186479609207825072442840717746726601954592453389566526965870318157987041599494755251699664757177946832164362014337039704143909490610786702212296768898262493533399168357747665005634414645092154796601203925004221355309378081968995431515355409604664730701960019576053774801566591010085936826827931736697661101397687256030616161987142872145591481336940050494555351634525801259050063594587695544858645156157692064476250777828597317233287234263708988527534851295060945090152084851221602593511423777370584319262665149537494955324848534956340742215108911209334145527401082636513883300080440233298236420081198647761700602500980463085392021311839518606241245104447443817410174944682551217286767546413885959377886126182195717705604962488456677269039510604549235706351059348981133745130191465946469563278914168631382381839980944379151340913918488293495922260868006751526067622243326284144846300939696246629588250159447801419021806112305681936667600619266415103287159478223788832404151500665974950499552744677385034825014150243208589741268094130372053125048581236718805968033854196232495502650939658695268301550187767979622000701899576014685817633893960005690020002419866493493621879703078391748591449908146086486093650555095093419613964912163471728445300143034396972435197639822805635106290649744559355883686611751775897213374211069522288218342845167035389117743662813602818493550526577663141434787200549438885980975922028685567739554793776238365486921975897920346423753544319089367426587130174037153635378540171640129490668247802464298000729929436649039962075294377566962937060794003452870813866278550439190799578793896818186295002674319229813509234502481006909670787697827522825207705904639011532109899488083586076947816793573880849505074116945383940712166828366077392837011717153299515426465497449913162710599787904352748955022429413050117720153235135916537187609488550084072711581771777356065493003857369690773519904030809625039785649231551728500059780345608859867798807223464453589535122275597389012940271974137759996798912549483709237378375922524940898106546353342039866043403283885351716283370047753448495049753470714582547438816929807243769526536603336091038611933206680934285849018007880116515090440457255013686335364383794661066769118132014890029641128515715831221943600926071659487194070903449506950912686718009255576925093794214097562456089467906688955557081950689902867988363954539656207610759385145335827029152330077574341380785027371827239115119132266120529486622213006906656669163863931118077254827094029923916343864753837272305358903829831949030602972970264202366076173235251767911529405878220730520434131489325106876210611049311607709755921936535758285705041530948953612293105418188776057753978697015557344528789263623688458468602506381145788019580913971050312991526654486579944536168453699531577613419465333397469977601081068974591289943269309201051038429545370452082113055674262406271032011587673254225591955273727580296272107426839783670508257400346556739774943900382758382337983655768847426622209717184917787969373476725500335195262650302562635951438511973389920391173172115752740491914061361028969767662155867683523171309353748380195386301598254932492801914490562828626742369368945555775956012609095030171538018222776331949230735534366509074087468782022047132974367948102743566857130542777681690756078674698673617442170181101481488914436334854004386319533935223549332977091591457510774031453287367743244229230656278525806131491216155898768121493954068506841242805339273729737357690895595095354905383589354863250949751623929407897353542560828800160310694357706741419966791862086165227166588479082084320163647470002578557553070234730673243404539699297543090904151759266433284152006346444415306349372339766242231095866611473235137499484125122869718844742778696438371196737470153865320826329215009678926135424957208549491046411009510838371180809403722017342220609435227152611168956642649267708654232994350387485920930599120522460188325545180793073475856866295358536889724725050746914989005877048467532068146071491766736689894618466874133996749702035563265652443922865042092023307538076245684984692459913676520696805786072861951584461364609925435103887045624298938068914116628339552630499111536794775377428917930801256363787994170110281513331198474672446418332928480403579092678818242021372577224525200967376477500258657932724463973122719568581797730726856004877884600021793682758232214416391404100963728910780476561090778449980445772031377430598109180655245810991793981382133718717934785923736389139397250853080163974576113911238151282179226030825768120173743897956257808291778895214072340273160795016951567975579491383902189238723387664320511525368654951636072734195285524027028632774408347758812418793174896514507335830480097316665977295898292851592862399708777660125716318258325707194628370351473316706487458313819714972135777603928150309112288887414493981930690297239605363398725764502120778589594946832683562169022775511422252071560912446178222538712925177779458766236649465389409814368682279814241715532366232244749125540427193621289001578132356190662810360150831546950353291722263934731659537195374055046950242502779869129311954817896815482245768508410956171133296297211535899880025743090931019201524533750305414807094889346880517213853582136009442057458124367983749329728653253729341518485104228354913582285301002499827206411835954370650860465909415935133906445521464118506894904152213415338793882606600172172229196853674836060425911233159661704039982156071541237461556749486917349862797274990288152349783774799326903488899877810842500121111632344883364363487099088158215568055465547331901141516321303926016460891135446677832573230856672095763847201177169066481361858020234466125149605515854175202680159588473518379664661488226513140217068084958345845630429226012060509144422193409643689641246617235712609658455633316682029825980335141842462673251838900469926140644108178275738188817672863633418578885752273308739389620743932583297175208240047723157571806349680041245920530401777285270976761739981197565344225000306942928812693711837741488973559054659452955596517839591148197699694058298635755356559548363021950145991518988377574465443251716198950435156181409231794940273772811376552619760247841689258337658982446025095371392612924459861466833484479961462111060607464251992521445331623609378954425731516288479277009396699546993797173659156773953528605811485399959711267403004919256723649228246638998259409719970223480299325327918959644152141221150148257350749705732704794670431889951474826230618134191588399442990946527352084938957338888105004060387662058718763485440411123416019924195488482401173546478456342685580351745248981319066799978454824759328188119104135475430402281762156429479343825885520198805989129802062360880264704679279906481176449675766580399409931630719362457341447849029843900108813069227159644639497269124230893456369199037632880973028231079110069953814734691629152274763399452027980054411202516907115841611797433919853763064866715953216708009938796386613439646904054889318535002313837111936200764597214920542321699678949716764568307600979929725628740977994994724617913192846064356256130322634186141787354010583421164554516488808983565342703794271648719873941552897620568574147447233663312994778187833260080199980321912423171886682565054187667743775803291305856128573849830498034684538487383790049912760819503207496068087310435464821551932481962462298541842179155678545494671774541263989916823604600721836881304574359403050688345499669035363454928492173971173883709971844959860745290385860468979536659039952415797039037466446149077194133801223805924216748334188283153571243995248853980613141109780083218604385436328074822426764675085571788853133255202505943136283166754119035244013200171261195100206319003094257323993822968921044897584897036467570780267681852719305784032556396493111172986633695495346027390081516209082664408934385262279320530511643452454890051048299653900524816817236553079948608583074724042672618598599626131956744429044311250071993119848988215081454892060554210110118211471689375399929939769188322966571669179200484055329859652832945735407445753793880027670979036402320082799970677197970547313955637939680098378625781703805847478143719165076097253017920470509409651327524355035709610057830926468798301914745751574579170595107724916526896201768357479183199033747895531861758473550674582133181042047148306578312643131635732556424848263292019178283236577029897549896779436400933702045513694466361940347110972232576494983702189403567884046290024775087150067302739705446045265509400058481590144707327170385530189046011568159810015243910067371663458630617023719582300067006306239282977390233846748573321691622212711398468255899988685019448871090248035019876633825920455233388688841182298665866332742159843958559243471399410627682271458950183348397580139543490157380119467987331027244561547485665360878148347791032152390280962991113822693975203910724338539688123207805381187658308804052195473528367354472893815497924284233113909388955857032105257221744344885136652277965690184881429523615586356317180722909794564117220347057009663750145476311419036776984593949021749153571350599027454404691639313973643867748211738027883644507057067998006669990690989160044905977296151910861525929239673445315655886597541746432979108702970551395598813192519431133997684368175295395947357962057745468958996755116825263688866393223641390589541565983726736546142173111469507750144754634552386056658511082710841043224770123650555306229364004898233204727247703170673716668973820795664893947979011120702819889841366780385922596403416491727715760830932782474070345587563326047231457286088516959313947334955072739856645807693935519432752923062122653194648421052222054299645832389448850140382675018978231416111557966736035443608331522983364792989466448414836804481572557469468034785536079921749276873754282089401486117658173762474699064026337077650535350866916590305446451616711818464997758258045122720432957311869482078538136614737760556032856138303615178658891574254206171781528251889396846090017973353310361543726313036077193909799308562770335964283206397958932562415052334559485727056006188451502503891895921354386124496287434737354821112811990838494505760579866525817510317629555720354266258329336891590427408517945215867351842790451030850285258518830487082775502984353862523751972883357028707249921313485996531970500698899749713477462361320017788668843682132967013411541440236889610422942606749623915073730021128550564180309926338475542524122488351663890649836881469308591386749728895525531668766512000173886532533105038056973817268538725875637058886029715490706672433945189627704984495897038373652668260482937100253334829456967447553389698356942176266045913821777228703370082086418789169113770164021797560748579168834677810797231307717223409397624911478089497242652199952208462861732542060271554516952724748311294974461755326327414684888267338439988506714927466438731738791156693648365538759299741457482827607741225340172296739747401674363439900389718281411837197740465350692158639452663944531954505604679827022950309239437366062416741091927988294648170906601558187349484452365639632098877176839518743320676532024326110932201990687148256739537372981025817229965089757105222795280083280613752176486788974606653520317068644033337915423013199730264167697500884741144476973250675812139414941065769310938243125281975957338002479336905833644188278903952180231454718819716779449411950438583545220128588814191768832615883207039097416611490677306920870123085033100931975450301496931987340243808298293262365137390803617474061907629830392777043030523188873348573385610115583890228601288157037493091797132335547818104791840720670930033089123257994728247802280008005852020281170018854470721687789037684559162856554830306001574007518871460424874350971338983464834971874905406492420161204577063280014045648783770189084176599464958505559817272754556718636359885200275024578960088558027247384508898775108181302707104664868178161631305123944673444709156981098791905344368274853375930826739912059333303240182501551099734547574855153491834949313952699262783654729779418841873799325467727000713429717642911631320222372575670317777117996502723531494196960983780599409795000549302796330720296517452339550249627380808900380390342839804918572530336518610022839175785726866149418985008984700175076622913436329131979096213503340253376425238592449329489436581958464351768320019487406254667371742236466062365720804341078372428298202353541716587658660536537542660328781273900855456888656923165561596557048662379242797890586066395781152404527042920136125722479968397354027750002588401571650719608572557122123371711317791961756660063463177906315284349856101220461420638052635229005205270998073586210184720413335684832596327357792823356243642432879479000822438171312965275614157977542140986593652248214673309720150228129891787021297818355230521569028332203363533163355320938731971534156729417421331870168530128389462682812655754191693314862134733850307707197635958656362791736719865063215519107949483028658120476462904747533071782441957327286951045732673251422737455181176674378868060478807816507231964762949807458349947933125065268808058118344453476661478184780259987687714937336164054029537793888762382889217885887314684390821320630215196955435672817172489132745011346560047205053735860029052910304121609648873913461047217301330805383458260366251910078671026768608711746519311396132222120683107583514499022409191225350127074626006292089139956910355154176840138436668639882282652386275220728265009564974130530413504518839866082898924244885057746793646983248371122820080576556687619044252859762220324232994357733342393502782289764911105150898800739655755577592828306654111381903406539124895177462538627070886172497328346392435000535113050076359353357785814226545868836334482880122524413670791706969870926267427411326153233264285741922464216030611477734994688491633693007565821868600127284662569985122898308237931539951082848042516061806174655289278833108848941103289051435650900997089731315951018079298822167845817443676720957262046607219583305365433815146879773971617308265946669692243409100037544046233724887895494296245564480114043928204535466365170778716401613496984079512336963200057453911813202620544468424900552978241193915540155769073392173671101110238302205491339446501352713768654234125955714625875355441806381740733027494457299167108576461957689272853501549914991359745934387198287166924342215285016306657102244167635414860380715195562437819628930389173560634792010716165436124395883782399357955280974755575378595093852234166638538619703323233413094104250784719662422335880026543509692117267537796708611100633114544930039762345477911970229989934258387210113893942468326381507420077171142670033567741982365725497714716541429305865998935241271317116007699415749390501635502698318382061460002072808284892862931536706779481906226291023290488429003440783858026672444182653004852450227538272904690702041365035488632478370157188020504929803366924699712984037577475494873647730739299695006490254145395719908202432906560943656589182807582510550430110678011883817403170275506925798163629203842087911937375970466675595910858638657114802364134871267047596532210276185640036944669524667473136287732390662599056804022565593749200575433047951550910407110121843996429280735429424401033210877393592293129384314527390296001613235767760957019682167576314207746740230999556938070562516125416783511731260672337365400146566858991273770816176660371636918361919508278452399716617916978530514808984625134270065993807670886785502372964768360629253995687183572051783870725875502654961373992754842105158723364719808136337321679965011516410167582951415040617947960719741242469525391518471674588373740149508024056858443322302092731349982011540482324715440882140540766918478399008802072912304361268991475749843588066165319476398002082210773580769562572346134099026608479940172120787620942750985686613726726682933724464666497358073582671338347468049928681001140141892720964601334973879419467605460167251988235693675605992146132236437938465990298110657099167739394388185801880366798828870829583352501632915746965703841880273278753611519182219388144185216290008730450928327852255312209791923110455547291161856722254304001693572221381008288134736568828102155790694241013734181475725250539978391509561232796166008605012177977966063847968803246832410478986488459968542101101900543187020410000948176822134788717996918325996270379204028489836359712641934198761187722230799083018082043943061228633776746295765155738627869720999976415310312599347715183794951372792973454430505827390867623697588077001470876242387412481999345822362614826311840859405357474488272768696685200299066129131567072625877891450221939844007306431429233949004571543589738244607431042747091267706149685160346395235715447432941577610051125768025162770229624055460657394246051656065649796655782342223386773181459809845960268992949754688569195820964949175463624698611714620426075616390298135871335006117024955216966181723489377858627075367278646524280186645311114998515606561525797075622689238760068643937025244087365499534847098034576431693009962561109926094869824552234436899800752943280600215500259474342315896897832322387951856406086475316884367482353535450202932501292671243374723851181562323492866783181871326956553238827366087111879873224064787495693726792324938260661638225816653735994322692373758700723336316323778666011853020806419434414299845175208373495142204146825150827135018480822768893989454294779166098957294666264954679979552881162777317648717844851280559724971884556565310662973223725896074625505830300166620911376183504850676301923291032007305485999922911642826853072586676368998801985335364802492192029676202475341810381756759041254621847778868778310344830354590151205404144403429403668865356866987111581230412064227961880382812592787856236109435187521900273132108771905873563441474111422252915492550896401561823025381114532109822771538838363612839992083247843397883959625171295044412867755606523740746494818563675291783777589383653037848170382720791503043415541032851893114998126604661185644793095589008358180678147541256101949342517525860703794307732704995902843924446784367685114145707062902057451474319204534782531555875401040854733747212910799082177317903047744619522742074337027179425605483593002459977143300737764986237054705516747030157484062247313413969789444810238734703011879644024391335709265015161720427156428614069256637141155618632048186669397661680334888173523741895814293043706774352216513761374480762673178660189128632077581836233315511621767713563300332653994644297156596367936358753065033125915231937076757439586678650570883064276218915583593094922684824037976411435184781550313598208784935827296681814411651371596868493119191022730030200208918392116323283369583581229110004360294817451556603601437017852885455847576063305826983561826177138077510460178999843363340491514230393421285058491185172000291389761041326342561840606604923270711209330415294010550771206455252858291512240347064915900142028248890667449315314853977434908591373712498178806517671492738550381096578485553910290550460477664207152160387313664422091671278023740110118498076544836569784028178511968662507845849753912361110900895539479768273806034553091968374530004764260118202155309961836732861172843910900724272740304381543147291901262217342610261346866805768377208869444115986549343327327772770654850873117895581422130424129516458487283140433978043862202606801271270408352327075254416403541352217426989667868083922729780927827161511483309704284630766868765473579267043528129852426534919509136120373585800095490728005978284787488154084336295501200055341732151090228887454050454914761348050001928555497278275039754352302751674146761784941563498425346326159150448574578323926491656030615971650282430679433438455157220439169598166293823016846151701668177893948779708959244018445597092339131502635420208659672752922088676711554177730561238288838724722741773438945892602359274585930038762106826514664347606086479950511007730739778905445589405742375226581025802431854706060183829882596442718446908871796671857865658979552736733796649903772461614139101459512827230975147244460884655509655292999794491269395876881629769889300161179025670871647812839180711429867391776894781849394952127636326343101525457901488807483596639571028770888780495904935217902720964379598769431386539676711375708285585275165727041297662195347086752313404226258670224838199347625468534305987898972410129057542661581766939981925219230577676974151015853205647698494805487117812995765420443265702026443223213789274084218006809559787741803239393778503479731802958741482432105530665220170058956381871041811528070024739855565702856768355448631274087314089591784503337425558852317065681591756775183660104167062726722244394970764818262290357519398778205151338982616099923726725139578814512661615783918781234698017272499419059622174169542497552978629749083510329763211060585410511735970627845659037014562781808527177851762692892753680290616417201728981233054486985535960898316037537877729940794393592875368069267499887031535824780588206027421063379467726322247043244009279416731710412543474495093733904477211181194911949948030944118280179941466189668153201156003984305279088612601931860176319450830864160107168043978895782838009384244530719280378630539682751132185324656588957881629816798275545634111856634985010303293127762448314391633371812216166702422160674731304573385906653550559094882555878886679166878358241425573981333213867403947258063101467589165293728582003769835344786514650484651379196715206479856565140589014009078777098050555303791559916729644834005271494429873319609196090539505719795948056810680469116404670322422831461492665305655520251720911947100458063689899836069833387554842165321576764112220427857513334585759165684848754530370598761827941798140324609338595485907169036264317662447859086942026378600839619533023563456378868468413289450103198105704168114995580514917008413001824002740340189895398532521527784579057582215117246233819015279886115479754667573688766375786817504483119003750200284971719379177685927913168631591796020051068187452419869975882083618428233315458162613669345477577452507192068454327068675742167473332731377745455642910965786896833142943613318982606139500628257718523749708593114070768963237520955510280020855212778900625766705078552260116358852663241645783966493517741891242912476197906746323422576944104073694437396857145043099425344977304246368992496882917990504615381564739127257071552892116669244904460705823568587330345941118376403797827890406712917397997957752978817310683185327436787501060406117086508062326902337096741502902327195192742451659835611216765582297409604697567054907342151914588259513043982288460210756389032257757957406985266642930029158932825198657230781665109646206746337767256353983039135189409374529988515298068611838705910890918478959297741193185387746090010842946910700833576547552772185177634136400583120231607996726362814691802176801927165263477512261864679822930335403861930503807081840923978743747362548455316418701712998419656724307857892453421730883667298243642628007508973996420333676454630787779236209828890142896514967499959500990763355360508357603644311684846038895332170948032146455794165731331526985959126595583666906683031404844550709690432866608644804672656050649928597814614931928473342777570583154157919608258521683985807628307078637744740777169334471515121267974358277254118951673367965811971695102491526422233069793933940674123134463641904874424737194775649207801968569252998355622790512105077882374499290566346008946373908714260866446694741520369558438502092646298392537801625457297383429826302449939790735502304076044889559186773958927487805406252826238472461982550705121175615486212906928396862339646768765798292756122861755386815474762385248044107505195420578723544745281178120852147250877927599900868374996942228530214709530444938123530007351361717255830640834541251571058656831959316874350816223303818822404405251692357560440802689940094114238192145129750583542693632285524198419640459874120127185982896187909183313108177270491538173318113103627260062902555075664603970257040554571204066333759780812956477574543648021390153624350085921695946976006073677404764680111576634571425071259664008907715442613688395142594203725635083413473655427985473806351452814398037910926289167178776975610284959756309291506466007090084779578503825055968313326589687958335827187548677073394033678522132336750903839177570680892838144249269856099309988949362074171695054304118041874003957084217279078827481424389251700357970879154064806869248102939190061267134301955765382753295287620930900808469698475837508150212281830583706542442240249141027543475164077669363169712542281208834732584394067238791561272701591157619491348862925527021872252849872156246865002918179140893384229851648269268231790852833432602425251352090613752057089838329014390940327928614327096961237183247791389013868942952504709219410105098250025523849969673961582434667354805213724319852003645692377961257126006859915729634095643677005969947635938648775121225728699607048608602088758000833126281015999406109963620318830693012820393972856929805651365415264685264570469800743638714162373772810104992543106775247152035290896763498829965493285354414716276094300153811096224400985115172965440636710165462718621754351027912530407059661293966490878889193877637286325602229422287553009573078658186347574673251469338398896085720270693881353306899059552508281818768768335850201041278231560065196213298678568538957664451374585904313688005246494072209550140945681883290508475018709129837201021780516413168285029572724419883379952726783409832947205160295079064681169997776384904171739420988205839781469275015930183302566257021516056563102424265427778099568760630228676539703714238677495633470915249990515409912798853705402924995095560851865516165327007680695324394473927545043921918452006588167854590035509204879462677347871048022416934373898528033732691122062125490658794988990360594242852810143685200631609146805810481242030007291856076120643744039926210789239622624695822703144365706674677014974422349749456520910113614770559965078221381341023960531499479874318639615125921163400544837370632619907623178449771257967901158747246402276108182587265780340993316462835893335304428689355354479227441259161869473454029920023377330782844238220550927873241580598282938393355412626171185223016229415778627966842398901112549176101918922679485960472948078765872809239995985101294302725113663119994529978101169891082494907016618478242683106831074501221856395564885508617302684451889764224030830376118444481530407050603147386164295886082642600890747246863910550975007252186363653903177052563919003676069160929185059459138601976192718165046629377931704822423105281802743632986859497885396117994539187785180769603306315299651944835450746754917506878921608310757290301554850940867498211846460147539551831099376155787090777913354423055293792394472005503795448491930989049762774492963234508182309685122898454406508615111715819399544625621387419687068633890399107012889221637436805697857768645033196724430194502783046287816879689915623808814867130838691287383870582293611107531914458628252869461140215391912602547228011988778102576921903190582105368615635145386174730331919812170211133448786928486840024938312342151418119928163939592346172299510069417495712745861194342586086256306186893294872960959971382426704862109059555011186374920913970726835207558406228936906651990667904497633384029305991314288878266323983708912246432857830372927675739467745139641894531214615169039333335035496896694965386533184175468554978721787059048923380626911919462080699426855709529519197638254065641436545160689808093226596607715726989711092870386804317256807522561488158182155658104640933188084071975018510802701600948661674026054334564925157565946067424289433197608446663506154227114804959871024215531111612750607057775746439610899683882225596760182214088207419211118563333715546792487021764611953364561256278434780567100514588151737823062910902936060839105696999460550465968051324724248392313769253037543804185188414213896802554140181192031431278090289023191234708148813209720561742796353016088475283912143263649513203139566481175812129979990472532781493107022282411642263419039385014373685368860969799366094395244127902376635282866559289977735943092176626867008200097513790020131752811139543529462676998015194463737782177320410301868105179067171193784257000116263436966295226890981587211310965314454773533676308483470951995977553667018443570212478287078560790299676493850808569658911022858959750412927302134392645026424309093604400833339005598357329175903073260658356086065940608503115340186602381750773718451279881351771502885401102292888155137885544854248332813569514684612302378346179810846147126660702757911176041056731406665942385317141588658418711460310459460930509526588118426627402238390814412367676180181621804501974341615915154127357803161566666463156458266913847494629814205237814478099741718250908241738277956170567350609310046390674682312535354294612807812656640328260375397440409074848616175899548746875734036801764930724557342095010426265201815203350193950503242758931743866035122857674389198487135162945228106530562634602265018702614535122952175352867929066383250651226132921582963623957410561546459440552356064395548299683564493822759549902170940497773911270963346255046799547495912578622108524518764662281353476283780332673114776690208004069170333569411916797620351987124065796554666591645235063389982858658107294142786346315475106569379764533166452329986949508195190071801723354407594646996221921181269792341689425418654514350501018642106406837639129247018134125991173330689432102986806034584131002805441463590977205742465492037460161398123618498750712974320721858165649221055116833400061746087611421619269647489061364284450193794953740211475004555006627051781295775730589372255966938792259487724251177666204613786287869247953487984288549887252234934289733674520914743068942028120497603121493020682565029944593994695173596887296417894245095990891537409492839885004175420431445008906005604518132155467521252001442497658010516257628034090684585685371870293193498530835659443271191858185903565103173681866155463585472442250228833887299590145577782408803457576519678188752591412822702713765236319611902890158641500222375698914822935772517246006708469583488820010383923374159226261535352707370734276636031863319987140193507035447117604223254920135956601867312462865291094864865635323479954376085833198166664072933736093628091030181622314379150353403263984373328777479360936707315103335891990870127631624826009540638277307425539192915371912030227419366393431085477782072828486309376844145049471704338694251556263662282372799421589386046578818670309968466935050886125564551022648318920474748506976624041874521381910814539333453284785174170586990022844068128139271168701940751858345777461846498059943139212567245079482120409082664915907934552084112917008297207375527196692896918453263053985001724265949456204678784386453733451564900944408504457743680467489361615138290737251006368014015738134412788141132948061228950930081183218866777732384719807395536343841029623505465868905997442618746176338419010223514505375951798498420043824124834259133949748190108309635554285602861212545126889002656168056365298769462231469817704893697427249774458244432630510215095478103426872297041541484685909107103940784765085105227338171855987018851092592774311579247889498494431707577824422665437339363289286255442004910945949680655776770425301041028905162190707211108507315852398955822705081657086577277993263952767575607724012593043981233633560604428839283898076494870079365338997504922797174549688246037656746652368732642299373630492355860427569921501236952051539797242666492870750542762743351084055173687228425460411210090116259280482454777759379360201906156274212743830783809143461508125245518259317144994109888163972871669642372149097072624787993488230549320518058603208361377117734954522046519613870893896059170887970383634849994801111365349022919204110667499471136603097678451626659936096547000412699498659554174696983521768365378636739084444321436786377022071250309629771112620282420956908623949394169786232317477327749933853059783875844254966304837818019563681702796750831591645685355104395219147746820662491215977575429239419939036998305926528048088589802378167800562314273254308864102112563004285786279829585097808707133221585367253683391887843204466173017761845210891559812588758440994610299931494580424500446353405541208759776590912979192766372298774937831922497206729807021030591564937312332412775093288976507661872487321942678095894981551495820498996636297264736964190849832449553633187638907872241402792159622616113716961916590421994280198471676975367383456502553661802189042711938175081325605712460868761864790752450443784394946338140703182004532238373028052519647043396381478443861629432889578714679600440589340494352826422006087765205956860436880054869557996433334754921170453041030866319534839641754544802295177023074733022131942331182247422609435084177677964488260651225651306966651997576365532963205159440007043992065430956743042805061718062721568572725604039856483728049280581671217435439474489637297134088986286072281126332086020136455116450144762545673495933638654305859077317931044769814787607313476953342954387399921213201687438551892743690842039044836520014773737899268831296573959251609914373433764176485269631799541948477502547389577888717023271857686109708426594431219649761665937126075808677275866165562780421092608894171400380328024979981486319351462104445396703748517938233730087784530072293080035553073566412217306405368205952658753545798077177367439107331728265166163092733659094006896044214063501832167986990306845056708295226055142005641808694136517676677086397265580455358326289474459854900031836747816353792463216877246317931526222595657741506100236799933059991703206461982646622979716383661612743979124506184826019455172496109346948394950048028345775478359285832720015209710288909373892810857353725733325347061882253086741630001703117540111455640802506731688868329014890638677755674984834826916833441238356680155424093659383825235161588579671621642981174285972612208811700327365687449206415234112510297674405102780028880158504924717956295407166954162215194978066015223808237256647669871446485974800849552627701374134342407096541243652469625415516876046780488436237521010240325155102725677728667672340239084486320981615003972570476104604850399101056888795876582290660487644051022507061929799497055345286890951449459158594924719544984141805378920073783859767981410813515441110656865554042535295587005282506190777829848293050844968785149043485009194086653995255672445511302587555359208814753730663819526871295535746663389523594689914310674287086270299108030782054327059322839522566834451965674232336475590606036631227945161082462006343404600604204392093244293777244379983766944044392446913465557566241244379594348495922335053326355244139657080854842143437067777254357838981203433225816928975079160553584806842458276808957009376649616993933101953035568028191408542637989350968942778690346692774508977595240409087546761234732851892760282054272091302314246513875316888494661878855168764476052925530728229008308000582062706621488568413919483923811596999747231864826072434457100289452750290082605047218133613612983288230354615522762228768937725730404366691902093114810629067683430930019508416531890408736982701917394708811909857317449508828449899050960019484335509245267604699653347892749359127519209378120944505147943628364859325829055087316940095459386707810106550511514990742626187574717102075740918990246260334933878826426831661079213921953116679684286287536157998413267109620732437277142561325057761081180666632526159962092400235063799472639868205712652231350824475071568711959388029914672123699484241447511020071478842433187858658783941438436891693318550086595653624548612432204737783032932815730845492161796911173512154045438786022127321420003419631373767914590921205461475450268575659817421228515967698423754923106601865915392596356290297530713717655441227108336104390445923823181286852464925905820945740085424763500723278500549816940104138381560607737935922831819285649357689479571060285944973357186613766256551372883054112046130448172166069549056469082152268154162353363531530725370421314556484575569353028108471851705061798260897998499265069729646744677874369592399089958022095786896244035959075193280359832673857778002662948620136663700292340624472687184635088714285775114418760061625798629088906986330634738661286341774476723167360025111556242721417448812348670997490956603998399600054979049404089696206297510297279384235270532456505608282875455825291802114549976121994250309501904145543650371844775092258025411223451705635467465735872828061335637022093499704615689580524800512905319889149018610311571005083760482771698150433370488429903791068252334477584668583620460802295724807175680263431031925937514722741459862748511180001846406040839326653770946623628229803863937792583631222399836876382696442142532326895295657026159919305025770348615706775562253341889587725497320444299665477283957980999134266839591037150477141360390750289049718799559524661473290702355246398373144931719998462760798140359808050023897444278846502313428200259957159648883939553633897271875960789723015990902113382357326073519905948841911762958814764915966528017475058469175788206147881762688515102609586280960306895162736763618959666268180538335215353304509122985373335689992903679654635370241511179128174358545354016177015790067617052030649080614981003107147007674665606547304105888548063867339049465516624951653522624386376838212779932099239622573438457742437669883229432763183348048215302823884180800913391260901807645358887503999398343640341805705084806256450525410466696453741415845533306905440359644155423707431008477631937030950038262162027352482526661825203648436322193597126717772475646405851932637408250190220868560012290379074905633153014184839159855558112179422174772182985672931407222684137740287214662275050816806084790609296370898037026646083966484120458109657585073961158680062817017595302250642011818217553474429414983969975829936963189497784919871408086182475919493564780120423943622530117729706060674794811507830260777061151518981830141929435914201607409128528046177947578437288313610568569763327610005051961498514471621650207015172072162706341324472248756751632930939401365550819799429523073592603591563411819578762865064330378327216929012662755019896782801416055715442480723808881806309608236457308348750003152239371981909231932497556875403887603886331409858808300227023556367494601977765312579967369790195340023865465174567370845084367026153075459419565419817296480109819272665733573041484606370183574117033587910659210834319744273085497474809891198027300590583177487062444908603952767589219305362018820840783947892970995371149995273871175840319109530154926353907344071076762679737030243580613001827386853180981419280348734246230813197922225683186750540502773003057689471349148815634686780431859011057648336703036803324519496672882284565472351786640216026864862032611045598447509767728315837111880667012427770019481485825695612905146652900606835493052662185442560690720885329526810256457954148281152874533006890363804201281118046117340572109089673567343668958646315869115392129813601006239800671309956123963575056215030225759596005105967462327968139601801651181830761061921198668197451689802711089516382256009686321603131530240197498285067930588532823659417145284644528625798977932611291010259984694434547654139286190860046193535915310861105038135583153967104389105292293581399533680210819385457231631707472216597840199450363504292782450691250175307474641763115075419977188552808487172014935257085994958047278019938833521096657508515135467998955288556241694192976383528253408228635826920679102134735149919682067750648493336989295203027940808502512277200056471104314243039661744541501530487192059604014320688496327004767061726457850637847295152061955183342383028584907766739805503544985042000531115638270403213714604781914951143031790756974015275518296691971190170017220431366331006507783855517888911087132901377145944175909600943838333113010662480276012679971356585189057962184711292066035229694329533688250176831889521746429495606129000355126996629771104559873745392541851635556285903708713117865669487242540994260905067206516745135351922103023010554277186142218771572410748584591363458436278243868912162975044787754819785241593938701974788902952606092359408720863353103436965410797218962591974567826602863651975545968487023463153944581404915772927951209717340177436517158212998065651225209237272319388180927607379159314625608195128241573268397603751456055022614696441216405194731901908460573164989436587854426444989449252062655928401803596298615986313587784435902563592180016472345493564033707424020570258348675917802426272924638542643067686740185178876612352712014397297973085561273465251339879341925655569228164846325360573195824356834842499609024152434815778913157069753042589880371159264478846421696252686179019728201637471888181634273285988276479168824651630812038493200578295893234987427085838492369995654504666454091809954435387804236335408132383704547773895692775072039381083104087185383965586051637437394772958967088077200636737562561258172722211630969127859449755157514022456933358057733843341565390954547539274370395452335561670521250544195540832831493919253646870030816222284196977688433176138703964054514176194463034555340199001135729313105760393810059660967452310151384027303274405185807380575294232253494565315729040679730588557381379145639629742438537006826700401725500508758648801785189112272854348352812436640344981939706705430683601074576347634540758929083422539962123394390332130463210673115785841049193207051534730165135345380472571813468704741052750277389701406490241859304277574183852905894049622688463489665346825063790830303689774803997137614348179370950370757525686073152152436067449590767390155465746189381517188073011633832560064170977121516698708840309381782742631811355865564239154678206303281196564725016966439782404031991873949603502532735845924506728860472736074978142548039084090562474092393642994067559017338689696561683358085062854260700976503106655555079928081177667885380263354273491984592407067730985839849669556062797883285763911432312448830355782574695119509697147526862087575443017857788387580919481142957846574026371148696674833479246209700715202635775166221239631182513988679501375497859673489247360454895969745468298985367567886008049409710716042119670956087564482303298008235991231099077895460997108122131770728213719029033868516013395506383969187819205409094483072130746687898467618056418793612935717889389193986117612476173103820100285900114010234504428396177793335069463227442475073777942299621555083065776988171658195663579663371954368772044945926376300686784776762749522989613161487451158293075007240364337877560601110715675562299535494261814725650177254606191788093091019029245797445454545467461138618053175266738699590875053672813631142981095566456660750538031895342888407425665538074483971356256553008845664154799533014686892029960528590928958186403247064282980227442140782108190709198530326824180879931758472898878675111907228336767691021092480312532022883439312858510320716703651137986784624148501732909989365397683909517309475690846298912952134591940050637725207781769224249590029725113721845643540839493628158922684636007913741702471233667865162307009089739385377754637707485956972468791773717400089071536752137622569267134117652219487619116468815617135379661642547885021919706291230563638385586692192420034703150792226815722266488468535464010242280379268063233262921424571530094537023772775796617863003276330307935709317703794472989443026598561848382261812036231714388681487197152038204420280656825160743769221217227873680332338940842959784697478443553884651171675009626246641368059124268482453668989852786494912221196009913666355130136091209366650607342023110234719313049123935692532958716589515798510256600059270109048499112510232127576655669350738975560886922058459172833940296411059309065113187596534937849559605300226200202280918389757301651012497778858772823391405699750283722258872329160915813227611054103623683936233120072822697255507970606063131345864699543552202537989085527455123583520197357549376609548718058333025400136703255664827674119557232394530775131322628003540883043349849121656417059249210699854271086184657465156994407536464841054742065308344256741364727023155620237805691032151907822504635541187037401504629538395336855974788717607323755466519078639443525613027393964063461956567686907846680602641516896745425741278807105447121246908417775654931153733869192344273572373179526533686551916751380522632667073920271988029611537826739287174517482433871442881156688257107851656129696542161696709335557327471304066915060942517647906975548027026690389073820969791891212490394112358365671104484759624399401578853518703651091972540965901653474695073058287221798158379578704403459540207285784709923787285899320013399649441788450238952919306223090877625014685754490308798605704435789861054405127199885326802960074362638620424517285064950248743654441509238668217074339527978995392498645250130376451238610547397079825778135559628156063521970765590996291705277628734656513512388702918595788692483442338940020171099813028819076442180743817163684602538442819175889200323984502661703131863772077657813733065032417223940052374632293280040913001414811406375122622883626391389788446930310364106123035868285689405227690040632886526227143790329613683317555797077427287753359489073715845849928191501466971001083599386338635385069851509326186594994749272249558756409765855809631009969465228055315726891767681314684081372288592634432786837706744433692015768337888867473103580533127305528720375818962871634598622421194075876966215362564664358715110247819398056044620278029039390499001105912676154091481443884507871658928964352028081292209124763138750728173155656219202632475817613862067126382254157616135279690114462709359963155762468156226282029118852753541820431689384412420175908178499337104250050307966268668545548651091178793742329402350878960285302107094089954489601244786940987542841589843972242941708314511381095202189049220716396177322995043166799093944758930215608302649793680851916457291857385636240236177062278934209373800843649975574104930292135909145967877572982672372437319863681418455192491323916371760417982412193920529101398578890047947427496772819532494477977812615784394181714604763860951224014270135929600232377969785903434815521052697119755053203628878562725940389693718528720724579461196321305464191329184565239408534962469473375901701289398921150786751235445022867343176687854714354967918270118453662803284249162785113316694868128723710588664184756531714279899256188385333101178517946374850328879395002950345774195376494091100142630693120328235811280548386155126481084248868252236648475411460798217531180336971288908952085751319371715316256079228023485162327941002443106654095380019885782266939390425135038976420815159537495209919253749329839812650686181522763977931291432573659794118852472403993119335029828705622317534322552704003949798244099753903106192064928793005038393252468246267356669181506305161475459068246474814399687325112352376522110731269129300581541345107123626175452582788328941361683414350193245795334375825865888607186318271066218050178497666664363671430257095626717396790603700530259443473645568574905590947975763522399843351835893320217477593604440553753587584909388867174995707376470110466682247842425469606150581042478237612380556573150150234280954833723608344382772416330308080660673571161733006558621446740070789984359629102529442937934443655582988799909455766767097090151788403945369491163918569419293999836457841307034950461992317888946156411286247664653955518511687917196980583375888422821899794772068851386232806066086891506143488328289492278535996195247299991011910530104083793396558906727228197832278185397712161200758680752927359626119476989901570589539996690238329095094021244889165314656258895729777781054141848065798095339881967736828812344619126237785012431660789080068797722605492415288131354908677447935411461047198978041086467417772681412829929566508036951619858213251207808198518284984086736651363997959355820791277865714545585739981444733612519313504862359807473886061023862560884325358836749257063950198100127470680061877975192830399324768130587513620424417030169751290779325892116231940034224412954009497771235512199074106753837173315959347363481425648819627470223724343633306800313682722932344681070464533805196912287551212646259697114122725306639873786420224579210639459087705917788638521612354094722363191263535727530366952156544779298849847741866570703627512812790623817593050190895735382634591330791263017778512452587942272244958337137893926167381413678391301017802105881678420011423096597644010415106944615174680021364057905045250458595412107405425774036890503188775560704458366854760203342789809034568016818592815973149816915349925283596760743431575548053210926680255820998263098153167393477832024637428198152571516150908379576779854918873588241013161422298077270725059227651936367589623840385473090396264703201781421051960901532440011713178029299868541621391220678277809770849541756350600069731439063352797595563289195690047320516200713036609344830641596537623075299138181903515004421058382614149259807951084241307307301551102744228061067692057872765111987996503451790653391759942311502759030619400752362692528868817304695510632314998863522661087005509181004311985935121834657338175713249140538232577433569565065710960861770943912927128344878410760481479244110416763447505479025728662112302055404723338194717309773011104139868231674204209459384179823536268246657775573093907103391248872436661483598224430804698030990284151363384494700051022107475351244404415157573528858465672511108864327202942786936313536742294784284802005514975266276893494322568411994134268271236586149568744832540296547159691172782291436888987019758812145186952635491274020974711781849486632500790788401669131487195840745954497844125198031036514941727895912203750870680924055719477590959336601929423013927384915830094640994904854785822760421589680250554713501779749087919522032263110676534831372663818068754262135236040423530446168215340098182550700420214221418937841220787209924399878509560874556481955155761118998775695857023032015896690125371737018388163132099584176051103837677805084175347158670421525648206493694157296396745766848057103883699287014430488751146872464422523488783743806676977736654051374414197061475134430427509934113869765680805445953053130359710446025549056650320385663553558364060687599232702996748651645506545429363897080935441997389538956706168118655985125225791939195074224725371853264010069436557618818734997741157474278827861433621739660847574646637563079172963235904332261604329056510168697143189546794663409697486780575598000394376188398016428548360254251478463988237454242170926221598059067355577555004848213970196468668558605973121999023719647370287311489009501325466650455703540479858083573688106113781357206720482999498290017898249356099782159193000250431704861571996138774222773975005339091156118868729751628886715971156398966637289082881178851561045687098991094674936190683836327373859601783048206100585879430280776703424404823517838215677975780391685068575018571552155780347826480228731347374443923672091054588585689133350027769479796544071686804561997719461416848977046216786440394064397429918295769981745029347642424401855575528653758610758932013000694701071404089817122680108137380480247717794292214542724771771105516958128885277615413276239463527827977370883335790513425165856476547773595117673518830731586163268086612698046678806699265159933114886094563277756874418004228383548049955489297531643378380527225866723717549511610148771208063042402797862149659083330813224756863331073335616410820068067653839948068885922034052977961116305951524610968997068004147746658800161754365526402638132453996729737403831874647087745550489636916424782215764819236120047114295919160125158438305651628941791327712701640506833738842069844570665926874207382670941079894664145010150096743534247147973796067144123540068015129195826704512315666486338331326725671451737540965421908324048867916462915492044016224054778129728410543709423422417639388644670088696854913057427520189861764122277282307418086024997957658320507841035634656996570211789112492596568151285887007545360037877396358565127203921251968817620849688915400151820146190769779164255680979427823585949961936447087294458847677775615410370947918117561727521907965859010749194796059326433034936164262640568099287261648101178466604017818496596104456598835200914686722528451350078482623432600232363787107846246458533415806287937366389639053310122174027994177943381286254328510982925393537381865540416545609304085924395779422353309184541154233906697310531021386465177949603668975268742841957132750245606477979585160614043606142529875239276965555573020845794294749836747365867754110145897348661474611828690754154210738031095810107310189579840722815714769764794064078886831693972785005057722751258703662301915697714463115258268726021007638087040070978187097318244501010795748119850172803863330281056291286613421045455427878577735218643842218728558046445192647057769511335695395903933330558022750509841653056355888259361765836235622110316629064738384457670460586276516863541871362951222369999960004953134212202335409273824523112884377672567428976136163789789308074180730079074147196327082303273647117064108911864210314810329908161076727494249162715332870297989467239059110008589261148291687661940142937104963632375460124769048484544359336369462178554003541103847830314091861498403456749706150162583406915608876633977825455120451626945503120511683622305703914513538840005397381442461772262663653099697112139022973699480040914498656673142763048728336313660967578757484354173787473486742271597265849905966882691467640560067843944905803992436710569894296049745728458581778963624204429581136161524514425086306736512316409759508921054085682116002234620592130594152717864139680949019783353211859091061435156597640567619883613308627073148061454660746744392185505272985305634501487566993711079150463724231852626098419892266234185735952757262879337305517304362604484224337045096932603291507334810909371835529997446916877783116378447841029519054415250828429285009697209432837795213144269742590886090264758523544130713014371876617641706525831112961985372986624611322779836868952363119028675155093407209832189754769937606375711073203210714195538653871562855269840427520477643678289952586469122960346857853898174544490575496190319696998823480621350423848349734846393390189812540925868645543828596391672031424544681712615361275071525082232045365686896466515229971295286657208292501865837591880022813349939430286011359590552613437404897819697914505646260597905554583313746286041196331350844525894298067253413450756703349655872904010046770014597346141646465027144726332733783166292615570664832438733377878541104601467043400612775389226817206222598351974893211689358936468827254777611628165525932645485724015131257882908386481895544695449897095795223938683164581725991800307199041365823266289204937126741199444531240507742859722601841887569131761769826153970598078535883919495182143771848074358824749966827852051730072173652998702426614694793478080928673500158663709946424496912389317140228978973736871354652431001723982031017946065018787541287860568926340624462827587403459341680370006703919543215497426119602520813626376603018628827464000600294682584409271424764557613700794333778344208076305278612984940770020054890080683572126260823900828564112271105995885408924608025080687567992982505102806118846858502859267505852243286470971025935850566435464525300973840374814526740009743098069486128549928347158717414445460984444703065820291787475955020313772106756786817856063255717856424922924061613654998692182470954802135136486959415357311398954745668592044995714710420934779749232863759241040138421376432123937956001158444021554566420146999714863117523294519192392282016744391134334123952817771256836595561090805546804372931342770985775441479449670540808070737876896411316236433530809466293468188367639134135386588773077749986101408551444109083670216797340295487177083446403218005366278743479407529439817272961103109389631258188536717266018527033959717933790176926168338170248160383889891609079564609018470509500048358107217591740583332257127201063753979342281059839144831731221007792431642122345876394966796854881602877473238933498310184057602175389443799428167924260893662160122109081239903349025421800237857315573366341745307695074724458792953165292593058196409164484768183870566907314051977918730349507455276952080592864501583731775962863358683037948216775663361054192220438805125943560150828093345077741497042947780084897394658657806947113387685160403512318574883260071833316266655769520700433749156072816416583454534367669015695856498924341478739869785850165426959970320751878542725147515262160130602764973491556946087797442331314075251191440041037814158302229526480138908688532941409655167294408808441074361810209128902981807298229198556165526770988002435155557807848988590342950428824348927265810449521377769408794827959781849988918812938401197191232706977720932250633826923645001255102308322753347019564918478997960183953699135929324403167633201024744114606700325786385203939804739434337324961276531910821396325589378467447841754578262397689032225044273476897014683403591270130856874695992201117624007725806068255854339501790415322688447695356019541618994896702775717354666719925739961054907239771884490026092889941229165362022339855805461993311298213944205820090605782457015735324731135765799108042281999771899591138038176688209548099862851657910483551181750854817198133175691443168925980517981464617824636783445330979038991255284731111229444905866563873056737432523735495175423946935196561795825792640123565429808963436168598310654311766843185300768400715161720956987922377452734288968073945777958459289494092049867206110209243385475848168392101157549372597760778726959731339147481012975995038567856389280929635167915864064445391071072366802150143433222860830094076729218942076939045074970606149049011890836192598264775395256473241469333823730753149440207125542216384165488302625159930132665085483742112254198629370715300227091533286560916147985546733540038459562955755846878961943055231024583060322750977627644529807005883259862130971600126170198525970739152434231791118039711750523615107972097417004791777736165920793167030774500436681227363110322857844931402024944354671442957111191516250783338229128482222523229330826877706533408956470184725477152206965545651543879152268249789930694376649393503646278322115298089093897853024108147175563244355993768871955399429135368956883052654107019585980194751181866956440938479401319480171368431943586769341936437572347041551312682135419629990734168153870673205576278114237038867301656120353605028885448146471043291418015123325072418018596678697686788140247283639850095781126871836098151402987626924306928351313108062744378275259010919261192090767775996974278189708120373527437755221652092550783553527305679441132621689063456241654961934597273687907057706832084261902901249891745677397000608420837540726079117496912242478851949612800488957495287438676887123771878582914909479229574560092551436123217987867530470957051837628216280714794940288233938992449368956368380693365004521670916562633458622609106898070714300294919935248620097747314329361375621120468770545499763435569245003323387000494115555648404969680098419841599907285049418386346920822153778911821720647388190050944171990288562841475369241508013219543906086991058815275066924430504944853830913931802171053625195323647152847843939835875487012613211091818704363141945954474482976094552922803386103840736396874439335584156693702600510462891087329851394997795333633393359701258277008468205269629385903520483291131013500211492657260779276874211338064315296794036780462262822340378740281959019539737427443113046948432548188901569696714511380058456147985986892177736548356606274847728490774088206490708565000760299371157919320132107191653499280888664799500731377671081922763254063524277889445270727109570463743977211553756902504806999205949243344900811052406423094408887724297154271176768434398253860444900039601493748265393413724510567460709924164024260944088905584485963690560465361426128027698916536180090147065339305867037741109742005910217038152593928743671396245452925751511797298378127620031138794480866908781296086524477786883245447667997709124070012213897405395318419513358803041980850356571530025326996821881489205342707950754241036727243899882504654501000554878836441162558001791968424120765930052345369760970869928072022187757092360632389253466137424588598663637340594460967587619475611357968124542968030302806480987554080741634528828407907348039958005390103063903914662862924442042658481912227930078962184640990036983167462363026552228669993977402929912402819132918003812550080470127204617061951469904533620871861599757516941694426439488311379892594395169946132569352699551293404535415194116559520773411975836634674206304740892139183015833190673483828304134732449223433013772319374735300220629589107285354183497089381508814614648510169502311745074956289994457151418315498604280695089346821888054338426840783244419499369333560715361925739648878177637536771140089163374509868388486049934057906072453245902793588320964365334043735009223515364952747424207490757691826569554180349805508342740957036486552704980138198590352297365748548620614204368557888136267539214277610402890402275356749473542678202308996428748269307217331151291523370577379389238722087227953826169319282009700261220935860693058031858201348235460518395627032225962112359054503015658365389677875814056743800009309859820647898819193412265107293016221239261193743265807547667449577469432207523954755805302819140644504936630329826620451123808228689467881405047771596336992437816066388055570903668192149433778395906458787241633474791871968125867173238726545166246235762029053641626543473265781089395381884109885641476903130675289054023667190395586276317023483155111784161940687588418168082718358633316344491346429729035410001765738116764300070248895292725408866067932524288863937594533563810353607271720276573422111557045437190802020667959546694943382505511741538275261655391185538270964295157703130193007747807894999551745125720530121709873253707538831899152825398027353663566197626792383517317546524690645562189787407607500253096653279487216432730567696509642427797368840166238910246768224930929472845587742170796027338122996030504683298818653401683197676698338632125612803603796027533526192382098966875269523071290438377843250582365612298208062651821493265214810847421981293505691669643724848987085481769233923600232542138726327038036418383649851451996220545536449739581336501297002631072301018457513771814574928829529188703303867912136879128102317400652029623410562307991739647474596892744918724680530420220801062214854063218218340747570121865781450221215411432727798821124260397898026546658533534684550101307879737562946204999848404615971688044758972655257176649419072611689871800565140419250640690566320895998599098257154091062301182817181238063377540047954463495112242550323247242709371523624944008880598947022151193017118019698055578130453847607459476219934588478820103344905670379804630163183980345189032000915327989292497831774458037687012381385067702615430921040972563627216748867528289769485080444571046730720653017745589877317608096859815100557737928542985927299366246819571139461002947561699621756616550112890322903824843092191107391224682614504511483883852699657270119296761401634234116509478082175567608504881223357343450152298715646919225448630257194666165881749853511814173986891099652370766996029294937317478222699758150293334775686466519789774078059523269053211972374691400387601509855184252639031361215560895669051234894475369753361779947918321103371884016343546768975612679089099998025834128504994835412885390089243509239601978030244698268415938106681884364709182933563424075541279323570824343021414499985783202553458845256688212470674463475990718687731310906788540829529914671009720552399756052153946490594447144144240681309134228986420100811653725527668114166217623155353345213989161062476086713054869713875316618164063089356442680094721258447542411153406518803504687314573785583764598235428035362769986840525925782140357517956065124498321115253670707060518765605565217772150663635060498837444104663924522271561222477165499745524912342555732175974602927891236402902307011940937081188695797858359026033704807567487863307122667390402476906306523900508474534846622778194113384918237457793830298429929517560687739692572316785465744284229597995919660793843363300317162709240705503492414578331345044737913351001916757808355458428240803616142876988604214959541691766732991010151437062125168792849965768000306597644533612647194846971348956165895819300698593414470309233793985953812662723129764562075522032572319633751859698522041417485496216063896847845706873596350277824647559089059101128039253480376747286974240385434630024431738175752527249205091030069493206808414519435325580702367008862683212856628875093650487570841751731750850593309293278967637755801896026094493464431909796012467660872065880016271728387596047538215689217471466289586339555283407519091056562432644005363105987016951972253793429325217509729887080848554764917252496410289554236133705018816143056106673956371605505577051605431677739105510089186686159276005755619214072543189262130937601062542855969914078265069008220708188775206863380945192854739119880847588140425417060175597455426340650316735094619848505841407964141030813620278006252139467516572537076426529705281990100285790123087051256193210767031925334790772492128149359145049302231605306032723536024249403175309386002585004285409503699976761874774138686933041788900353729861609162244877445119127983432559200665831133955903607116381322356567507888546533179051594502828371095102104098797674508600005529430894873026210981487902101146120937985693928391259632465674087664518418839161327536372609150743499421412933957082386683132657644980451168364927671138747981994712608225558909645075380310939916997828826587572829155817899331159063505277977212614403027258460270854437404010679491557044394521963859242267264562136907764439453626240785527524488283216555933982359752281262222196994201591262738362984956016913453340758859334215080785582630444649332567119650001042731413318001801040314739034068609889528817151514746679312988143447425350390861380333178150540989405328646309365661290997179958735762370673671961407074999132821327879705751913828345383408255179499989606076910502940907995911377002691699215307792237979533305820421974140072457172465099183574419471341927173996526860396375358284073451013417423882657918936220983085872434741625386901473492728427411700788543551838163423247336157557682188271096290891819902119709868337211962906963942151810737955709097841334744139037299057611033300196295869070573652262501845589938356683366240424058892856305887415743515507219676110989970779261528979642259944748605939181816658423079112959077623579758553921979511964821936130965479196868143941826918939493027243201663988958775788672876250121735272377687123756281694243253646103300209153467928751686428958306413332049203846886176814296062283103922106126611759871128636942837292820038342170329704883586482990955437716177204527756790863982101238813842543948039757772079257063710211796034717855870456447963706708179034920716592847732008744211963924962762892670014536268285806975594933086797379668295417875319195002779674986147427667888933307323808873921850549340304787243241476238838728767836038427673723490127039761264117351216438774744447911008325651819991040259390698148648572413251492957045040787088645719243362628299470788773360491475046323288656938775012393597239816591258249402479316457184937610917472576458180023223367782211834713381076390216942182492497509566438357513414683629001840180798412748478720271155057451499200272851844301867539897806952553283149528192648114782226012535191546802585903389871305794827574858977423275029776324108143825288902108023073375271384331571082300329602375926142811489538514305470610948314560297377399160755417761071508952565087497595690232730081628053087682724031377769103801717123316956471289922260759901580819759394792803619962882893118223078638509440543272173186733770946576626088878117035663742367160970870808712389150476816106764060744607861674834477177246300466231613218058283033635463866471263451749007711406933305442199788122076969277071752974815355394623229630820597100436911192004645536447932902904517241205571984910699864353138625491430295794087221970010916761894712556699527321679309184389667655137964451114434296785180913298539247537179288142075029579499595256941544479301231176437063388753164586092149365332419953477058415346505781816773754330791161160933393687918529783367480390097016682626122031812065696638774812955983710286580612902981152776918459836335355557994129023607182654194301526231950239349700481427012278435318548611459059611334574909306515343291290760513873522597348421640046282401184571364825614061138894156193666228000022523175430081426307296937787187023341066253148679502407823378422332969593721948217325405794803960035664331096753222484473941986471198583014027575857932909425680492830190672719881675098449035614716099603629591119074622609144384817331755582930637638332457353399603690613588003703938611242673434274341623750071192061874085061908900436731000081413457609361108494335732720829873841799641936551977730637239101677630234546495710913220830287502620571860013395723006328201842897968967039220828432717970873633605905765014164623845003451620031888756369133621000530568198052024980875563014462217391862374626802332321736858541755929386439941808908156215784438329316488114898478986845790032467561032245625350148502159731150847341133389146921878894564235510565461497285771882063649988282583941683141296803864353430025626123128643073009498065177518423024529888876895337028372346855183823835461466062676998508161427040488268967175819201304174288201368734945640592000496785446910808169073719088444609518780901386169174678549064842042798454065205104396469068690241214953182866785870027711223848666437527825485197314907374291589017887291025185117489693604104744243319180887515192954950359920103090203255818907848420337927561298469827788789203518269122611297000707297409014396408417396486162317543167091433813698003255162303456144315038782127584369765187933605759323558239685970199866119394683309864009213336903293432061065319698233260030943097846854465421304953802636373752965156025339748526284238153699664794974293329979536447087460971940294449656531676014437045454215187812413256299190085343622046196628268176816247895649016310442644160963538189047316511405714650164468151403660030988244994730065469888938776699394393512837238256120180611736463414508032945357199404720593584671423903809680724372588296450645581347206703995356183421276271094382742318801822718084569771992314221416852294136497328399249365560869534713203380376878481737982540473941807885623158218644090707024581187081963120570805640519167678098739242569225660051594623677519281837807514505510553180831218899982793426477088849485338349626735808580397160317007627522050297748322861915142794229336380871526446044293532175148224032532849387807234061764398705317513174662280821340462250196185647703080805504761134032451140719857834764597871448356689892951344218344023262191924468658725744389631255372756468644486527532599334247396529944188259946842470046992019485049020472517913821798515180056124990456647338403055851370504191800609108478780725274475707740828722940206271086778838572203401571450941770084879117736654901974543465055944697447888424601830904441613111673274718431062013102797361510035497548343129646649067574665953528992734915881710516951211740437122429929335838545990763562113214261881929747928491993875116646543746560996664959080103882465358172174187663892129942453279141189756378828335508078151233508771696723660674052889657484649410958775777966127953346647285725872412440994207680360628563026235781368806927882244621249092894958806729434636584017167502262211091260654457214353607349492488969746934209958604278661816665257885758677651761737054677311897858444006591764392018937796179674524197997621665909558214622357245755114123913070330745887865684026060367917886249592231591889914663240193115517178697309002589837331044202028650598946240370502845232857071209822238988311234814639998247779535576848354816069768353066030771336455062711454856539902688650782416014886468339208665721662790726936276975506733599694424695371574938254732671332469988096881788859176704448408921795316224188306213641900180073760408028549290096464402985927396263369134127453940051331230214985108019147784558480371125835888097099310022484291332787837878491519251880246839522749863983012571247001744671921175678269746370520182710778276613526358221602441418178722408449546620691136041109839170907041242353434045237239570149926997983430735764657927752447774635944609228913273859753525685844786073173978798511243394607331450375111005695200212690054283604474356124568314511380210740660749133979860272586599043909019254637447809108197457972695490944552128331335310326500549698678541807483293334058476223711794306841480769514421600292106764132913482651471923527129395577930885819425261905825141685475383269817048067945272375173930702977304138303253938695421857554907730723836787255195408888373904987099423646876430421656534951885242423642445910363857291881947070877812330640029378399024294474766396707601320237351727608963135928530973490053974957706541057579111443110131012635945514050751273749410104535197368991427285850688736727875194867439407765466170908059348246071641508097609835990740466962550787627572554596898390524524114267846765832551918139676062791836558248969490195557802202991479170256354004719022622662246941569099352604359533629588943503083434159820838986971945009796811582244657197904631762081646262482098931756095806207914051682990823637814197585865554164174767784932652850089570640950358187628127818146777066955126827477951697166630846301727168540692794117751271345942922692579895211725968313080317301145286957847757225539645927246492403517401324660039619038950373377848110704004793375672610606865723342758091062548407553975468139379251716272567662464605724378213925316380245343544226019484037571938718079897645714925679503763022723532607725725353443766756019323701989585283493339129506878965618726274534396182503852866879750433387609484316886871492305598383985433869179891610897074030544653999777844775820017089114470645354002589225133936855273354627965221325962942124440199526829088350803786109455091621234857598604583546590644772931140043191860746802050732774929048780931067894330953599483896827233973099981411887571945121798957465587563330680362816546788923932152947608046401383026239984750440081670924433081419229236989018131982858612850686724730143533535047193368956294720891074413490591420232854463864676760453016276907141502434399743669158904255224653835994576452532420311816422091956409909082906563349770917538717427519467675531297568714496034508754681040918038096077321372891792873941511456444253413174565021939375582580117253666600416596310555754056937061619781486993456609126451695906889799612693662006441448405958525488084014230527583991373233509822765928324870357653983885411525963314873353814225624891933609548300008800747790258205071233889730635366788242816846047128094197360671768250687001446926432507766315636339772580781631724358845808988991024917466106597107188228059177351828005719621842749843316133469498215689617724532309197079049050533169943495847201817710927575177084930221519599008258973939106460360974611863656647480863708789569574614233106944323808246748181604361749496505566769601284792440919447667982729489444461158300651144318943868816575103237570127638166717996069794632340466119316502884506646746919288627742113124914743157235972486013220325973585505054989423895602265163144443406461687265466524851512286712773658584991282621580090164370907194856480672194748684792006003810238189020104690561439389897382388264229368647932732576367309136274317748632930478390602554899028592006512793576847733259309031895529257890741145249242627630067280322746291681416302618051171604634122337408829271011898213197461490807039969088167654083528554911202652964531888023754976421158694979972414419680028070344094888819974536926612308396639292902332681003048498792117416318617992355255580460588012148449732906023203049973863312755881706710623036859940280983345077990353515732892263879004000671712711726014950666120199572107110203893499025485815012087873855305100395244618050831861931514520205988667127142412723400382567741088872559910416368696777824641730870521442004706672709396530957482447369428137630503382735296165475103003933850212606763846844670978703630037270913660272507257145170030773851235154510346687940985917370778595977432242265663910610327218185362680706026767327993257208007907361953635664584764481168688126894790897472239679541271245811280703384986620768123766734798275008680683172141979522123823556531266600625852105855008050020499485926466671415869155822216140771639573981921550594591904104471533908575014390117359622733020926523248279857466437540471877880453324864907629386339582435808898953706942782576365490048627214356701088211676649607615671465065293704879266886427756915010846277330888798362850109712600430041536339405774590612787268386495748406391281415046261059091194837043575455540240109013004544231206217866354308960476499915781020240636898981612879210567143719495138378964243852077853364252488029510200633134654536523785463037626034909394168948959704190802522215045873232987517030075740107143594603102531984690490193069620697643776723249619127097205374472757725595054450553303730736283441418818671892106507954997888750888729451890119237096000588862299612069159138520414240081990970216236838512857532060570577100952774758274570413617336398231410379932057440381239155483886975074215325019980461560252393317685272475535902827679596584566263267341986076201425647744990326336675886845563303421146722024526893022012334342421564894024727052341824755539215973060869416648669099815996762482132587548638159676797562409900936167295675093295551448434612512462748778480510731698323782077556905389979517157288540162491931934142081490321054158878237259882403665051650360104163236499828183000226919625321239083928694243423011821514206590024425547506941220316074054862297409156146703145902322432256303292162089421315592695175626545417412025923257937837616183489854115634343834549780708620999135774638873484534304042361373539877480851945958883161707807456850077356534083659439138664639332819552587063609389378655083892411772391157779505749209536408768792832475538133313754032975613612904280078693040058344262189931875007657436950736971201310335944563130216141217996675274302242312320712040401466675664220235213520095012595129605517975718336406775263890857455401115947015857378944656992752496260770770530600594857177688715210077785466946899007059056953555985973602285587079248874997210102381784091892333245349096652875307171577847137234953857919197505383335185869770412061213428033793491191573522422551074524992575881198677018823875462337852360758034875691893324950984063058953121729183625101615494611939961622900575897611834026303980804295099263173862266802826612088877984968597537009495316266308521663778529986799758855059501346916758331852811552142863010123395795661781341958969692818006832021025593267963635419332110475118790376419259421399906416278490212418833959165283521386629126960420242877560610815374151272011859136608186306797113015963569425868034177257450005028215315597958572687431296491219942163135945553600225177100076465436553562914021059706658286453245004321376143219846307971835346894363217283021204866874830471591940468291978864886724931576542000154878058164813313256448344734011999665176514568339857114619582967647836740047266152899997086834752547675141640128644147707193791564167879808451689598622377398746680718218058070759298960819819332937904684042708058294005393608030105125945520890100673108639476210850732691233247761214812704529351991320398388739384385493030252093542846793934495052206737921230638161285022674464487566640893889478647732477323052206343839679889977048982472354891751066536790375281611517762851673166379705230500944175016349868547905976799536712708533521976533460996951364257296902485908302384172508749589196709442771489549172376627292985868218046674632777302620298061073727804116067248864286577001849151109011180805313280970528816296878881412105557003517111416409772758081060798934722136740350261529732575513919578622519183400451788520417844697120561736454115642003614208931789145146109817035584706133968243196718874016964097164322707219383157340148048308661473390628949620033301506707487526912137709272123640857653717072475600783378486138899805582476715424712428535386988427819291164131830654732733599897251801854599770527932043737725059945545980030659638774692076758154492160653298138024592161066799642319338377257673409916619566689826842897796171009417538525643585638992897559058206423077262107240962674424926250179049357843041555263624660965867976833286919759260361443579843481661824045880212372239205766458756854148758641577849417959014926123496672356665266407726550755097341134996543309099839637605350058872713678789404792901891548764522204042351572724466529300174247812273827510596694048803150554011093217304158545859163423224377027828129777372993114043213368453030078475197928774576867840358103503677951515857053784100850151809589459361361676142304471459004853684258222880544230768515919552166334041642824679061716146658156977254731885829265861955508394107464017521613036760335799696264921250805947022512749553394199220928261147161500131564965046636500629466757888473273477248541232538067135593085383634258472895353595300323069293679990502972922836298837825297479811360918161896399953986691143244790267014473023466386696507442753972147961155393297864925322006230955895672381757846491298267678504621069622567131091842260819344282306885153690029882862246428228303011994806952165763480664461210335727618953323674792243941668381821024825198859129087675725630957260488362861436151966564356249046299281955124648521805810711116503079742925594175649929825419781722679518291078415187077127939654976370551645425726256908056597867394242042258621928642284675081970963834639792589317012443777656118979973338019485772319434888228875743671072774578170583027674505908043339681705092924871228775453207436505788455565613594927868973420683239633193444998867090702833390310000374453935474592439507603388315981356404700385928051597873565746589674905396195500572006142080756462543839074835609891000697278030083195178910173322080152158270192742758279862555774908458892735875375694765839687750445585578370055242672345921228828164996197220325175807628597649987793264617934125238401541256486267390636320359533926223614123426604303484238984500272704191200153427917981224844854563677885228220208348321630483829300456014273584676448069509204278740028218133909604103967436929959447961500406353686775885043225157424044608571275879909512958927438526976071624773350803676153183396441893823588798491626276196428741377714901434939701901902135591031407546733377276267825219083438427079604981015919524257678479078925952315181869404769402336702528739119705919025041694698101850026394110567936253504231735767623307703465338071883381544717285733475286701327725772630760314368255990661528317013452819271991847271400128304487140914659195021273881692544646995532491427220599250338995369260996868927809595174624018787138660931463639000475702445349267006430421053959120200586958650656793911713205790641543259766011833028218867914594003213073627015129394922861085840853687946323150191587455491055212515534219665638916743063233485598298131706475200449194519635428265586398256275968013275929674380832604040707154199683439065371610719178248911580572250972619005105714638024345005361475175916921260220495436090916304806236350343473813979175678857296608367173934530351491414682701580628441592150500823072000670093359684889108211890795870526004538340695795474772192185484732799889128811697497180491654758629285859244079784079005247660549838969209277099513141074705123060334683957377743684739913117676025580112829912431240200384540692490040063390811608371850615661980568579760553416803617771493651738092301029108392891426299366564744829046301737456000871488652850564777021539280279813848517965076405363893432582719802478118404276897534782428096631452053096350735455960169878627743484770253132326366555386539795464112413905457393559117046534887135507512522005724383121685189408265355947839852476616998116347062101193001740208294955920137386483393783265767457177904183995648354175897741682965080198754767903892447970442387979708165446493514802187105993164224099328347631999353764001905952372258577849930917988447786227520221456127206896785752797820344440094897131291914325770368201494283144997991790842879117992382786700557508250057590331223020409788749653558506350222680176476532006490766126639496592925081477249849998462005616157872658730711303869064136876283570484063506764654701286265414375155980824663884921820160617859603503754969190127798239032911934637873631141766075558105492257113665774061254718243531577545716753489427617232583017624186647346137986596521566878196326951104112496168873393168139706444537577514531265333567628226728166527426211858221094733926062667991458852881437933744207411619779427210600234145110011327425913574298647466306647717491717067996055752654499192148589375213471392784425429972324612290054894224039236770938371838636254212084163810387088203722627404837607240304503420793769733408114739708488497042494796438228674606803199752525785844853095198658685796316230850335486197258552468457744691912114227153709381285786162570556944059370934185857324164956309647723945399484072692235178648483670426823222850959853284771199949350261889880815927457572584716770977621742742332913358641445118642182346580578149501172953174021876325651935485769383483895428038852968040150766578331099556774734748720852822629515020103196554213395120891927587895070173476749791513123818599905037401751666976869698064584660612441404823673094129076582826813330925664661922220402045661157342185840735643611837886303371184386343025296430560601882331175491387758911797875964358044801758067937574003325502844685020400808283682185338997943585522981326400148868162735992928183418943921013304876857852188505684665936962378437424817722157863337278263303977430091664349370659424815987852088540257711953683514762069416337637454520097446944118261176308834940647582113196397922894352095044476277439383168635492061355533274779042642956779278711658615203415138474900122577423355093405628186937622395200976630238001523487427135660639539311638051634699600281625686728073603861680630733607871102362475563322785112790013332614819185902417671462545292215414761016466973349595812452322716737848074819463574175257389823530601468194990248626842905967373763211654665209607988865783487912614304574979501435131657731829154049538444913072551703379787235637786479743244767376953667427933151241622175687463149005437124792233253019976527063352598127216997834539596788741739174329934614073647256690174835496494660951659136724745376665355661248107821049071536451107664008664227970896417561969803703599939397311642159744162472665821014441784222934958029780620759501723184173512543192976004463329122115809096208629871215507823739379914924340279736909915051193553120656627988152013018908479603845503986094095010856892455534915966291298206791068862439771710120368954156248533418962586869616305080741403357693267780829928516599695736424774828578444234651512134578596905505992837482988948977461160531007349125131373853354870501893553321713715643542046826126386665969285651722386107609181792254983674246053410899719426419415911633170608133218092418715202652656384360481273781194672514336108354936782988201787593138186076687703760736057630749789884516321486306838317131397325936962757663325076566669325367862659441803420072183900159089604368296739351106689180062031435025586229852617466676749079530959898110149460633344609112835117766788166764561068740477340347038981585080917069021081191015952711813216899531857087443440558803951446981259730753125747051719124744144059647808608709242811988902892754564469915809587066787190922593609652316441535387332280129082214448408979947090321982952954418339808528544222284021834973661739555564437297817301321762796095582900255418171918010331022601995532585571497676136879958640528065984176574456665694308558945676321790145845206313988829560451263273996713632440365330139822372851025613129015756400374164201476980891178000298847057722208593939016621470219622171517984521144989950814697144350871976038726306473056983025344402806096182166886744605095951766881537172951413730310670605768662868516176111946443132938469298601486695406594596574045844393940214773903845591707530484197893218140318165043624439100891709063988955081360681295379461027132567316932244911212105043346328694360463498328212223399195390493130097439653811954780630478873121649283921925185095748931422343874813540682839988401308589428003480424684982708049148757234478298557423672108570089160879797104057154079586992966244034246417123895423860700306121661024906891973937581662292956689031953132684737826360359564082441840614118989949480240529341055675528164130868675782372220491434007888181046867746488027053318852715205922253817708459481982717569237154645633444582322347268292834409357064595217896726227766581557219994159864398433432646674204450227928119648387425866227785607330053162998173564934707572854942955930969940939665986468396240886459935392946530884712635111302868430916015934358384859783440995501076398677578303046939566935159103810271330924529515334146985283793411198485651431060106394975990391554284704695917337530530427310813027849064901222529789583782085857931601712066064227138128824219699081385030699252778174387171179459116517733477284879242689877656543831561681416888949583282242577890610073581932237269307863204236190265625980321349526316928874638205427164580247047703214771714806530162159552359866730240039805903971913414531944061054761097979428481535952213633236025886902061591214514453982126786068922899877806703976357875925067392167142171241664296495931614622083236984700816385658203944201074603293903304980997092519294877646618876095278375635261687187406630458865994571119019193120241571028091416251427496776669475503467084703523652123165576090876784959082813313124995815756213254150414671302843209457544445007669437191041404964625415101211838344983462842599496680280145155996533658212283792164962534636119063489700808049525148633803368868453826673760779111658168282685243976558447631790654470243790016425703981834880482754636171511596914022009992834953061071811122612632807308868625505698803614538954470070685641365546379265850977813570146522371269031747040745461212534089895221309560493361866140077784307875325246481418279764918528295292964326083876061758962768350892983822703479452176186110820817577798289789068832060807790411173665229114795738651605134317037935126150329812668360159941184932341138981014002495396143045139976285499926033988993960268891580583438215535119777513830388388250569554251301626909831188425093194381105443278126810462000264343089244873168918057007994703609448759733126586654692376734381847723913232383372314699145636154087069041472392865024097325522038358476851223052052753643325041247729260566237276469876013172955414005630549595957915116591460123622225860789664969587809543604346053993075755519435763315801432043403240672196562105326075828507363018466782390818743039797475762263538751914778494430947649561972837787336719008701247307165345385148336833205179937573916973903756869153265337045352817996481215412420328076225380800409302895477880404165086865333369924469554656602134230087922740585885747195954535262967408860412760150622460646097804926558543406388306356083564218453013332960971045074993717326390501818408356116506349180044895533226992750465497467669210656576752488785181745854419997567154565914551390391793245453863449923380267803452840545113292268372772544764912660074203666195278681721721373966078696893971111555992747165789207681171500064801232770185904229747351770489779985646184721577053084707581912164567931327187667175383503272140295064795816918289975783231850805306561156311851042193997759282641077482185044689872646253649905402103382790204837938930351230017198643173085667900033036725616205161814618913833308575734530007773287764500090619065667339854892925905059841144931642027364233127948047824312514860731670872049166955736658141901937696309487501308851504857767497099754619562632054292473738354047638756334211127194975413033574543445209707358715778489002113524221865819833639112763685674686576819337541901200815288879857642417237281897436199292850955586011497982254579298737783937947114503001940276145988391245119052073731169353617684821482125776526310127991069730055241755082718237627132539004754355335224976942160555873382937762459890610067596500874030728916818017436654737269699385660643553008156197283239212546706917827057094492622062606911636568687032641314664929848428932134325934247068131244352321654523748351374723041877865798637184009920829607118765620917523379424079366261372503352592310098519828235153777800800678574304280992157618356475335608897398058773245734536442689535457104832247886527428563107253358552984324961560095392723065198808248518677128927790088038675080377460944026363598269117327337462561345961927781646538669767118463702571459471690411567581003127117954659814281211527750364818738924005150981062125317425928421452977281336789525539529011488330471532392100766375927064484904254847973043747727886462800364580633694196632163650092212416945996292520345636059362303441884116401913736398247848082859896798525348100315731590335718811306664476114246858678562423611263771036468656388253992261769673767608855573669202169045051105728642201938654602570968438865622238259412069475769372154096429769334037793494537788321675490196854544001377372739758662476036549866717221341704468300571373856022036852386529524878640747120266857679572710183372640307287940301472482915626428054151931592448894442999314043339707054173881797719238184153409287997904725423751056493239574352815198127620785120081080395238863916859757476809211031742764225650601219972785028958043608728631212485769344740220713669600311966484555523878306382760862842673264939114811579280834151764346795040189625501317719237733744361601429545499892036917166413950865799460546011292863763761951418576720446293390259248091547137566114623744667444839549770585025704026070059839515861252871417876461845091947255653728465389973651107430981972981547082544084950606570223631927368645455940760136904800003725627260891448995104168101808941812292904992353018873872450745684567922238626746169407341117366443205061530486937105358391484531095783027607797676700247020600796247465763783459497940881541141328829342010582534508471042838126050994948489046411460064168212798874481196702535025332620667575844217914470380371980865075344254715050109730047484469862091762157882396305342671631711367034707533608860146481666988888749575066491516170087504569000893685951391922999212812711033462013124854538481885863201529227462726806469199397237865339561144414089029292520353146296449679817341194379660968738246196531950257327074508248398218147253526206040775192507181411909552548098463773374858046236391428125327562542296154896678437100697830424059599544905334708396364140276880054122458209376281528664871970918780197313570248816435099612217064534484637928754245972698420238990048889820559821829464453349671591041924517760483971059349469027801211561427408770297695003461477652406863462948362579216437290900491882244648422684664755644196868290128668288625032546533389534930909796122913529261598709418926566507906222996708882928140062976202220452336342903688885499332942802821519212044763791534103134675330562350057322793427823813527558388818427968250070376472512827385987363103474077437547213627068489035510803797303437734663156453485442871759870418789465669741225816424860126735545413371626895584265482344917376718334372421742714530482659021386633196045670863390760432688757529089167268222652864670120983230310631175582147204622427206156739742602391677562952308067486580305470552003225699792616624819628002801821454427307069215066602659515803912953548536358910961707865015608919023293035289065970036235582990694680123028155084869356534291642049362538916581082350279802842976325907994167186235180103637422742115597260488781130847698745489093507842639926817992847209292318244242049028037790259221311498493510512254403838959539492234044706357688999423220994964304183686121423486258481245462977641866605806579118315034667921003030196818591351948169121936882270166843304763470986297639217965020487208780137339547616763004253900911552342235899318929340438198883275342502930695774696810511239833469677335596814673288828948789907637644320946066891007106358196989936477091741787807455734446694657123005608924341993016507040381664531175852877080566407670598448214700746831801876745278618225501908792741556304959199318598266225967091597611172153355018418590071616044234041283572958048771564304953295961269724363298589300535102403204930041920435284575480205316322759612941223475894148204419200555421853992929739057345539265505580041166387938984896742883823304255794666471823992965799285621858034086521515332343821209174265828123404015337298765391050100656391572820262483245983047568806507176754061963384332887463190948614263482798759573970744822572125653939822249579697954780373345989820748164800343844479239574150771439919720554179721534521744291442987916052730009568182906534890097282198034062308237153981459697943908795472942138665828035453024748859855510907082070660048991945880256066479752053526845560186461570062623732513000430198088642539744995745799700340255271007509900013811267131775035185221975774669231861080905890442868913917317003644134612004808169113102303713566403718130200032200424018586405972629284741783037944491022962011804382450683526690874426973439526653364988336524511533983812238641508575596213373361666587059759369760737724710044625923386226918863737629508455124409857301732619110805956449868713176696301331465642713256073775442003873631777671650527325369333615899828555461491510785768857212959796481571701986584779533638953479318944654759873415206903449564483267976036917325290366256614679146367942901937698934733338047354592704113804110453133782658631605529874418827979255690668262753811815420779800603299603069376640535501822544122123426722883538445998234493247262154746836841131137189798589076889338825738197542333487889156754826554523297873285900819823153357127071737468662234823878304952944818670649876973939349321592277713922847410162069588735594786694925806117315304203265223348209092349688245581783300468517847859475891884810459262513300951299876279584434277681707950933051447569714719463557028679521371594353476036173894681569968855509280830615574186555310803322791534672409723591901821083014559009830551606762913740210093004152503181119514386073961303638013423887547002328348787973736292144208409149643387724253936265489776953617018823108313527479519563774730689556968239844688333943160703853399798820033465312532332932837335091333223042828694886727216173385762304227776459697896430012338242095885732534630817912137572042225972791690761699566480948851098738689728890802365953085940031217767815014015055512432535374538776466420079369854921582243568421966356359589551787639219965956614934699474694393265888632878174385666107769539676055781224431257857991071793163421045354473095708469695061875801948172055731928884096835885999429387447860124461471521431948433928732073196541863306901368737709906687066223031102347954186479394849257168702796975490244856687032284158636060567346937521992959823945482934814130022238318599179435554863392302562001170046368748681826478905416480713174939410872910636673152735415879535355577228674658290062955903025098068131439762256981016289899605984481055059722452145768772747557564388939110649702075877426679003620789402006181149473845654911536701235079581957232277608679248134242172608221276165526926554255699944590874976994431376358906025968735940204866340297407623973864632876920629878485221324574778793550279398660125575737993215399881597344394057701692638863847157396308238313808110561019285441862140261532778492652743789158624936533419624697699594570139775225488207446053472977586579686190028696088202650620002926408378304135762341213412676089789297755361178044195636125036564787948421596008458237577981330298674319160946759257154584446256157441761199543674778903081720567848325130229040399521692174155784092715815976189330244476415403900414799310611352209479658851331569511350506852937485037241461531203944394659082467639152853107071357224005915203216244225908597309956168838065258120337615899736412606798396852156215348053706576995203652243179452859426395411723965356666422963466114912589674959120217127289191723000883113537381389310544067852233758583072452070474705466222442456609344402486604643943037050185617475287715402345133141506068333603357414444665833598052199003982696914920875354141590572207872788890971533455965405840296149852470617810351072084626448962903876189164142669620438612294777491544400134397116614977805549259377309929923837974274309481691861610554734864834786319648509708382651175048124793088145706132461925281995414643855952699743589829598777832405903557537243775841308658042623084184327075560190962881318906529838897785112979664110623271455785783679513846369557219517700589889177568284866613617785849155679297160854632603856481273423708991250818963823657178314583764494476704322642751072363770827510724764057150142529776378558857397047242003897484054950769310830734463972123317491385640848292550671002258006434647174731622319134279001870425137076173002434882786591243611115295291204934062296588252469897767055357794553663205500907085602081685463312633930871686863484909901236495089428451222123524799628339607461202425664601403121349076139809173219794654556338017769269486007343960855183390872157665772016051756055693568154385185555030758745127316554983513495176958417634768383016143567032641690672651038920412709009976151438361866217548076533607239611928733183474138589838008917088333055847786612662100604423267217689592613815370517425156933390093382235076250657323747603153305250255241892419357099011713946089926489850034957753227945188907059076659457165502783131818614337456160837804327606477539058844096055529844993270825517751531209306222999893862248384306838413890101754449270983580080539253345104215830999024247978642204265723472977288155732292937738120762256715404492733410486391565298486335197026732275245030000327466755423389363275689450079811078041251123046524213629935991348840230083566587706609995833150678026697050763762180545978750497763932904580604561584419156240799853488733091622059848282308633965109785442379679514911125171830519870735504466144785042273925416678258119671761744956557859854140046221552123389925343814852604030938689237934965168128424302372773387394919151581903804254872731237345958362837052845331250780659904193306101865256569826567992850635304314799818700308596194299490454081175431285976368726248923529151454850288646094323827268313925299890540824713768504607017120769457025641474807448720807514756127521235797300360874868492535640703985333252142563738637922466547693772145081843365385427150975677904587405145005098452743482099797593099152858928835302678020295947576240226922574219447607301118823102053740034450032125323554819347611865802740693567945548836011061767982949281844941179014722537280189499671158513465565423517667768397466779986452770079634029072761112896172450133529411649891046166814002005870104616496921997830501650438801405424140709037157679006804356513747295922318980382136563619993665880311337302426141761747188218590916684008865146066835379200782041226692306091266181965252392013694657903868544340237761328632999454870899282779404560709366229138414408067482653286581863924434501735785802510541158436601608974607931219662104971969654593240715507664455035499298172856135236408326580247497596100144004534709707207742282042890448144486938102707927059602309772392103578483872824474444624226849303157940251130837320829567021197513431199174573555839818181342260775052230995309179802258736560973376145549896913279491188249012260018666852055235835569779964504055095980022911799230677260994255025661019926704089975679853386540536270681796248086582712817799599582965947837839286883734429827658103900512046438772560838421829753312791354121308767810095447204215039393595169947310186328805123502422407973196163539653965035272000638845048436994784777212713387857543608166237618372312295995032184012146660858686728876558789647104307760372314630581785094715793640412291260137753616916412774406080227534029778337435680260989074178954581050976293929459662304500793764510254624489415540116812117326347186441028259852584720954271434659531816863815140470864645244802279619791113397280715155074783333534490707372442251043657012918914608238965452633434806542054088243800538194073151816811987677979145523883551135412951499855866800047881901577731862313249099807405357588737382588632784274158055034025466976152198831248802778897704547570468647414747825965783230923979639929758034295178676395701508052715352867127140306181244779514789176973010743447621922659231443336650894767141843902550147295525775729294898348876821287271075284873915514979765087669237522878765048574296863077829215409731553152203013754473064581908739731064152028183910330793442018860831199374167895090278299124997422633984700043796327263747437577624581739848719296003308578783609723736038419915309952021348995788106696101005882777039823989561174254496069246996128673396295040024042947238502008654068828534452229679204374226918065083276792146754236435815497067849295224798880930861825190063866283413205356363644236513272595917191276982863937003067105724880897306637226853338029251605856778116270547843601288430452874957066682263560196052565737721976795273945772528598732926041135537528348312090148992371210607823278770298617569110770974358025713987560718452941341524976522571247386236384085760428520929288312384278755825610786999105405844067941130241262806469579436749970834761661387512225089499444760436612783534537766369705227840119681202924925831601694099443955455731466718205004073165102639839366602004281125044064844641730759033822669493701155678784974085165899234854249931750230951954218849332125496215770851388889955268011565288635019840530411002580719824900314302668935242790929511702890227972814844942817537981743665903814434353465596508717829260671836859919178333783119929214893146290545955341624596378490042151923656945873761746158758832678599105043279932585106566434874474226699990099378479956148140414259984307676463167475726293544452611149153416176635871802767770387985282312364776542442474367347751128561643730442196779948312291316489951085371323905870613213331181600559211954174863877442487232737667837895699228072112074597500645672447260426870555193079714329229350305802880694727384355940819017103771535744794851753903275198845341483756230929098222645130059949826454455826493603425447204421733043889476097304460138299197759695361919580230986397198127358947103675948817018957093876492879310599965657158225294178722025358448583746800316338892301395189135480115661656905094644254511922772101958188862735269382948282767460329907774444438425861727770530233981452705687369756746516775099048053839883147013601310240085500819933885456252993391762951698441345881469248389126183418561322213530716265943863470065700472242135563201307367007870547978186504425140412198707051071559164652822774474846678558728320660441879744216926897704149462297976781105558332488651945500676944577012091092662767560830188082434794745658802028327412858385710061921286497305429927794137176633986100563176778291875358468687891339275137376481233869544749259396462248377955042456274395705170225668895613613631664508310153274297095156094313741339847991760995941347269266226591626001775738696857231608918853498478230733227390807558819277304275031478992033760294807848499174052285700135827368926785167487130440923333283978475939775871852324081359871663194643331551225034736154211702962330787096064291248171824125164795159674681822347993566091590786606943261739676795199608444950620037928168640158892740926676282330217403133530776916332190919559764441296303411988995627466116370552377040764848972595888438791292144738563570310145378944176235507363861484274458705964024987931107503706695193580293162206095861530360908815206035564981548170784341359141958486436563520089883205354699462922358304056730157975575046944104070069502795135757430647780635865181936033369684517038240229348489957735518812927294641974764775790711161055109107747650661676116912074006911378603822364001437314737339778525573263066504313374193408023461591021663913550783253170823648012560262465503029357016040981014661562343945110773623241092064410218004304668910923494587242422763482528365878571048306392585347085168058467521620069047362407910846211969484532198972177495370057452202495369263809844172687778843514581071377998822273006075936904509579706007175081489454927232100961486016028390857504037307336058789404892883531952007349218458823962950526169616061667759786651486182521281549159406767787595658302643727295500872060492375778132190721867512551834343900911856004015634154838758827483938468774393187415668439980240081228358212404619800129984624481983958000866193354056946735831274779931810184085983215804470739383091876132367506519480694214403413839447293811125795398090257640758056667492962624071649260645344812827579860420705630924514118106208956793969133448153530375262537506044733493290366873103384184173127672585614968598457491997542977187821029024559529572255935770841843375764429164665358133633943438996059419124554892818129083367265377180604814240805895695629895209168411953119955290540689442683401692550947882956208179104426755879942890374702791693144981476585384051444306169066973956114776426919564448671522616954777037318208318283765430868057246621296805586887119850021382704829854651202820239737772751258540350500588919886044510828544966661602312671355317802864538076322100026671457840225258488497814091944539763988330264023027994422257717938926218321199991617700849437381388294204430876669796223191963265870287887295096184245075503437447537244223997407473996527637332958271116999455353868569950791010319650284401172047079721606686272710652215443680373880079090863432082752539655297139398652424184202114480383332371220157638083996550993911733676081071585690660292725497927584301404316452463017703481902675987378806805165310179758279739304690060026326456897742687229917007756365996618137264374386493672027114557059086027407871669825331365950345282453154722320304327479814830556127471002777599133565196424835213231415726144198356200576124125755903725101841692927152694772208104627961113584602075141166283208359356568885908793761754645480346968399636464349161942758753399197854759772894342062104762066894929692714089449680359978332974481502860346465973810759213835474822878895473458376137956708738126301523207789288462699610857100992458653039612307662527640857728137232493529592194922477290674259048698196522189726403997087695149925048029732668128677241363809149861944953404695692997502594044688829099661556059996242004325184838999808779441200754160909125671542986348078699416741475847090250110539773056256682123936865125628617210145324597904037709525538854998752439617901063330328852555928086855141680957803561202365366851974463442436780323520128944405559054980580078711918151722842642051259674798173308235020890044722678945957984997575780229156050027761234764372358440722084257219841473119332030845807595360498984518844468183782178314150265172850147271400450121311661827634524114022676483900463659696712744841328588743389655089192055955642510399948375532579918742981710333974536357758503572594993381486214787681140211849800548370887653449122610075316741423513691422151394901843597733533031713015844643813929356907976289493366017846571097800469284730316129946453891687245773576661031403053439174816202599353775043464729836109936508563037173018745509052092595697030698042990056765002288406096144003263521035038166725558369017507214512440940279183843931931432997764569981640679056691261811309887761935992200568457081551749687236652417208909243355101912918489406905838560102766607690053038163106588382409323832505093890137774765956806910796159171645812558618756181169437811933552077978885411211442813027063573359749800668488110674445146011286196695154895987962171957581278675156256958132556720933670213158368468019672434063155207973437117693154591740461930280342285247783758307240899748186667165584914936030516239200246699875560842804655775459184416613855807544128131946643367296744236721542465522515950272181173524723437666492206753368265397620807002231533352214838947968551069222303923442202239334431244505258782202678729345783699592201800027474335053061498066127916476302376192261001086678758669659440771850654382800126997877300905211397321121630727993028090788292514526210489460797148298233333763805197488759130322073893971767957228902255398144902879980681484702063108975627477584733585199241283610850318746390017860528053525467407208557850756622005194560403783326680650922098255753208416441758771674070627483715293686842718340717534825905602051988800333009742907335496154786526826776777279219968792118138937866819553375154163860292889817365234688616013275679533817008486852359925581146446414550712215895619748016438703272843006782992158274162851544929861241866522535741125466989436372030947508681599267631415761003983229503086986156439004421807074669472004674643334821813521015499091234009972864039543549597925638456833159303733578486314097607428719443962591206593667285320015384947972464076391106573183978736124851711939835127876740003351116558809652979701109692382392895001664430534257794555441916978080541172274539947593160482806089489482853041515798133456025377537173407182027452975948896224499222817944344583722995087752385821023741086682093425583620257141982429918364634336938823375611798424224976265840357475589752772288581295793757334301080997388528806476546419491298691563502112544027186560114619548872185453910774223577246016012092097697816084981176206048358898026613267963457524244528113456339896205252386536908574221576389472424410746832193027095202449448313882576132786540177375079923525711957075327400399547331620659709584769146607452725478407608864865443250821119748874658525703658416920041770776570023967774737701890030190745343280731453693329993542226493832469909729857922709169272874986219963045917946351071490316834047282524284082080015587491184273260595530152791391432947197669418259067448824682100826126579152286900562157579036857664934686249479446142547396125862306951377070115746248431767886379600571808633171714114825150638858087818923336134984104926050858068043078295839466406720275155781521058733783604362802577949522712206563744926056846617444299109282030582043513933789851880452228558717704781903247717836592975705186986703714038943883214287697689497380553124072813162946751333526020053527221868972939017616661808995818918323936464963945424920736443814532168435771613061825460305177301688670260495943451307764005632552251884019278659148700283091190995935071192958294093868792228797913268187352638658966037903314570662137556379424780906881236951688211263918424180958140982862742400022971255900594184791336834469014266651125060174477170794526141761102794925575674932846091499698312733769212519502196658991689294639775291444919147147220062064436659339083816969769358584274644707389396535632651760724223899269529366991891450079973393065058762571068407109661322330978331403418711086874453229179640426656742658310858481080773641461535760314973252278981372526739412271879643073053564090067680097730460575945268715984546778187472850570336035882417861126488036613555004671793887246140080621071667464680563108604607365401730846818838025892569187857696361119307630446311790757692495162962772938252808117063756928626999756203303254398452716494908259204596160532209292561854432192824436342294814758711336499355702327768056274922970723043166405909051792369199582029890446642430168056278926719510781728480472543936920767794845601407918912174489493370986397718936072015541102123844514965723088932062184486917063896596920937558353842869255397222732265136233135145690110420984085179507246086084483432574900885914071405784304447754968049072954112442379952931116742654217348379143716960138855126392279592468433515571005599328054463972317457781499503422682229984736172612253603439956516622154768846008705827126164685954310663978262578459615418039819296939389453228649362392150655811811159511033429610061414450598181236859523521118589601738236640980171508743085158326223475532598818903039900696472766747464984334622811359129084095082809829063147978709607036419566033097759268363209082090298484167967507216568157732927911034718933968096130752806561655277912662052705525306353551599122832909070301478634890638302039698833557470917305183191809022586611568308305886360770337728678514936288924203281731185211439986860148709378329841661505479173424670302025307240593727178387998984027441755577683394372841923072660600740301693576469327380757158790703894296057986624397735417104868934026310466816550061788342245076167653774797769621799744787105025489443605668946117717035298385024484173085736137543762015706248254950764730348352895037890983740816363143214531100180935339171957757024520181096316723011677230917547019850354721930292530808260633349673676136375588813323694815071369280986917054643789812000700730717971841021297654307608049424896958765045338192018358210538924332016456656155406835088360134016991025717731592097526081806876489467810685312169132917735532018520690396670488027273797740214891926833734944256822477739575672070713806839159409419095545481964239140246334629950586794631735469565188587237379133738586183215820630185056697610301446365217901429628393991218264589703684890407925436990119036774963486571658658045840580100275446270522768109655972270834846033912608398597640845139002732039029962626634747741487119870951459588158427248139346545975411773188433046643561490464434307719717329560122832217493661698958058601936907095447118507584708313091688310753587851113996448306797708962593223227178170178913287710953653349325391088549929098221469198996593388587520328528120973909416881776664725238868382194673159268773381811327690626193307088631640498019351169685018972608147815348739511791320083198894604400848955451871687839168444877279869120446272708394423079293517002673418928101857110061744450566112146881787259720672624328167973183844448053478412569040222567724142310482354584137739741875583258250286387015236494386188462666471366476831362094161746232260235117405444971224982113178965364208250517414484470156238511556871809835364883825660807729476566315988282475188388404182074658960130519444819658216609785759179959604218645196647437499034166494891762384290434901582361553903044998078606047985918763937072826676575660980522035172035258480101400904103842020872921962919523845620138959913983311252237508319356857066635823562458753538539987758027480297957837549365528522481989780011473135398993346224239147092045349449454092381508541038893580462709561159464940160170203896035685237623524382044105998385968683402618836369496602489217757902338573231378927808441328999891107547472649024235124956667868217977421302082701537589931741410133079774959483320708026937600336431798644036869651448408011402556582905015398773410573846945802999122445894995179042983120835892267424865596245882103416752407843916554818761567234823052261657645658546967257637427613840540331951277594075820964535649719664517911241181208784808329143085830617937536027729623481133686359763660218166523264826554274298958076308840858120357404599040511373946221435311496328362911534657092719143240967170770729044142311420052789114645488782458840116444371284726279767448758015897293300619141384935611256172483250867895270317754965848923172440782591857058092758245126777595725498028604444155083042536712672789543979272648405264079279775347670086300511241868011826893923944460805741140612414501348582522335522471469618127539819289496510751564554921489190437684109343425777128535521643877924881079848396935969865171725804746459401723436298519967045895107398534794915944032349844281815323461967221285755682033284336712046702132935549208325885498617219429693564517584194889315376398412691594700951840796694028176004946028033086383873161547258447630260247580966599526290558440984840800113431925414809896592557400536666660082736726680351634816349122723985310081211865227844074367241927806160134786084489913517605800854748078483577047316705102274312843995036510842584853924504549740302193308598307264676137366864308623542807340302190458777284041297775747984968013047485233251361008013735878966483431350561221891224059478439397545466026750132195414115600999480256400017534182913700157081267718864450574044554825611580512257037836337303193508138074692323675773210648746718725219166596738645819417494943367281620069919399629777750932609332206475718822978372648250323659615275169698406796484672180651459555257827716335104397869989150010284986448059512463736554476639950857598282998580961946704000799434870001704263585031830830927305067803168773106731288601533062108370042631667588044846873604487642873821184118965818790171429186066271646476133546787940038091574634946912343326381456210594779805756484123152722151216606878590843888525133859530832398668919250095539363124076210094753838355725393850077886997832242514660201855581691682440902624950902957593820241136313009251742887472481357404980851826898964054989777724476927502460202701405201920671889823548838505821493440546998762445974956927300717359975695809328820773325721762427982382561619956344093479620524976356739219737190347817476162480568271154203964258784488161365315779400812931899320703646506683525195237936762998210460822521416498730805039387091457548039836567639295761958666338643376712206135661246155461511843752162259544807499027359245960751191216354229481970914269533621912464303658274929506623519756847528187094308763179041854703846265016500908470881818821023467815807036596973994099948584903806793108612673440734960311889924182148380066636388345509555549891933541548535693269875760284699053000179333226283649804023042066488299794812113952874836067162120167492397949636736031760740756318337108814767123948564257326562247243785216227139657040735043329488287506842795440475918231792503095230931036376459599934831600644445568367745558029786809440085333942912799636027476777506131851965769822449476440039338007866071597919752312388165942213308576108386609571176587933626974114634745574394496937654701199736453468141740901041182363414033474766992753579065918911295491870660025354348270985893146233494058357247480332939075632150759030943344118114786435463145767851023004325884525563581985312548148947831866552238845276041473355076335760984508506004546166942718715287376831922807492264628677539875900315925187806444675028679532132600179126851192522794874520641063210460870038724319158491352429057844507646253171591303280540672372844560692564203773995581516773493485174781232666811736783425256882916399674299715965639225893222957504488629430301789078853658735457529986172402381357568348075577848733882688966813919162680867121308707277865488326794258760076639360209703898406271492206391728403841347018249799584693830737054156277656572095938100170342255537297351832658684901741213781815864146822638080241686148420918050486267187740326416256404630804813987240744088440020755505596248223035580523217390765183426067147280385072995161542718396748653763893433209591541560709454093097698444733842232992386654045006892642196680594322134241395141686740499085170189061333900059818017991808200117033769983962299982695500231227713580223501198849461547732138272101828010776442816818241855812781527185877603488997542695874530800651151709584988770201002688719773546046565645469251428324677514756610219154183667558781088714274357364094540634024879952747395291390113584675773200690827920620014089983476991237795417977333848306408636912217432498222081583625148180814003405726840440016570910004716016399585918453987784019901664973818884851817682801021449774610672730422360310912921546440234464688007579481467837234127677591966115187340518547554991229692779146565456596632998838421530772859550483848999234327799272841784835410521809295796791548029984230857405715263477170316186350547850341021403849475373548373627366773429925048770616140371193051292675045653708539885418843272772337125771229163926497528287493096985073720341285793620474857295899391419284980514449856400583197988321108924322051025020951401233566782266558004161877839399556186852755066039031741566089287352912480233982683398024701275181208862223796044705637253938047406879803516777649746477524365943823408262494629030404372676578485038280864636535539349600092909975215280095379848109136766902116379981900187148769301686983734777055471744091287010985595788980819462306807858723609666548962661940395672709972963012034240921879596659725735336253683408850814487295834050473502349444325053650884404412740355107795279917768670902394202698336759878347387764876337499535571119606681112132626640398458551157243714425042956418740872026261222601599694173540066783934600804665328706215400159359576148702305298471633320954275232064147852626890607294819617063485175528855074096888035277279982018705378066720379158961249290233941928495017337685044663216589216756628749076696471121313349298399417494849056502692177127012172028783745888000664330951673025631245502045032296245045939524282293467478552147153563638939963377496179246729331646878459797343291776457661869360573741157800735498169913599390677140660702344691745236683518155348401808067811499969877124246830977532990536663419322821170810336775437485598736995373684736222157460108872365137750311939797025657608655619721968156750421108577263380170082024283618489618297344702585944865450506675452822894618645247890448974179877992820051222760214033829936636278682775419636344990289162991528356761841153920688324443231835240457475253237634549136891342666452468607569503326159098450550139541825333931661486490191488870741273835828157327489979652363845079864367181359020295415950820486649941256773187024077380075679107148842625885410445760213392726583921615765040624459800289225507804168044358297438701233159982862376084849635908386433178611030399517383495882835959473583356664602471905545155937660367342956072836876077617540369670661455521666369192954810518455453786194644446850276859087392536815371237143209191051462355732091332941172182415666087029780114183791433296346592744936163592899940142984826797183464906322247022417646210905989338035737406256366603202186519139732729616011567875123120928575929081854694303679598511064456221415011826392253117106892009052754934120625958761201457799885495732867727774298641083794662052701973138571944747738494039937454065878614690010060485209652664374993437796043820680160330644134317560715362576092665680150727255711959310566557595718022808935609711148384511625448377661690923994075528342185223100878255784136061448350531215667935678693401951276377669434663796959059401342687508014759076924324510610397150899710633857813862639185869657944753612264933033095092068519756404213387064791972957177218945405977914085840650856794526832762847306021357740826919706167297224452062257005463653895723293711734382893014250463005185766526416684891323572172035257900120873802721433762335396939582988609891957025227310884073608624878139655531522302511555945017430293379155968751193216487512586398473215482722819313175857897439139051681789489105154936992105752588674065988188489182520378382568133750739583755695861557560229835367366676203210097523682963546558381358296678606960446712449891750968047422754695470424001340094206325398736567221710039147815972171107016797299790107965338231195086306700567409444258445993907091258553619333870891081081245585459110894535374739993749849999953868904610132114096200067090340123137706313618373002958456576510511655480502687327231955847384405488141239390238900787145703565090944301417425618473149511363959035226911574627171973649363184605305710282811608037611188397412426101809502813927406656645839141061591819104256691414285255678715019190082518892660146686024401410233125681993510974158709380759613731627204334930383078790924103006245048856106095562455041792269996689380501572483770462895427495178175079457393483502114331490580967046958129234724732070729069986648749943108641613385493533872408534056082947269373979189620700877078551391611865604052265490572911909871441317380435192475095235670120909848892182380111821191137167856864450606619581459343279779666960044530567504019406469869314603239914590580301553407379641469009338338882706514250166844726028330932360892304302927347539936950627039480182418647216544240363883763917051818635824947053763511619683712360753042500750742951145713120492755291864823475620798020523591483382733934351341605865819445154562610228078610171733013812941127400433685235590702359362047617785696196327458807614833440474573224199912486850889418039921477950296381715042903588808523259606431273767510586765469772447811430491397836698048199285714329570280149080246765177689931728142774077808031881681021987082879251367130863028224194958424237182546885548471157896812964288950979553595975973545586613583974525512485112298192727937948118821590592642784866809386715975275980841973086076608883516834239037158089209708731299578102644678287839253719272173145138968626802386973689763999629145478233918689500821800544055215107265816002207218989512494299058469367528913030952303710501275578709058774597323707628272957597312144538404025736415636469064306775341176197411912663631448637841629971585595895036969085217889098234854918523757109557932787032457406610668088930460800616055693190018356074948446105264547154896765514359501758567314376952211538259818512281338032378916400457708070651727373858339322662296490459955344528226826289229800308841148765486219524875485215041648961385038934750796515324315537918542379396340557569171711380674170033852133466067053803661741805797059184229002019017390273024632622860359351914554019560779591128259310825266452545555739487966722992005343667044458278368975167662983604938415635815979520280848627055360220291921262706772821206427789002528571798425716811025784361698318287723432482114389044354610551208084643059179517638206782129543247386056092366996489579180562901987435531222981339192485841170438943970888669762242046461731775781977204283818845780029314614241928570184329381421573860625080280756280805067989254716315391216286916759478822897710377405927694401671580182660797209255049334995276342665186874125804057031292398177366401928109211348415745541287889638356251358637560568926665727906735361732338747763103602083353610002994502163780775031401517183507700149254184007014479100072382666520865206498874270507781245637077568982121944592007065555122116428254058927681947505191327262175879781245534629471207464220945010372929888541840875336089755153753378553126888816927514188913492760833483805067635392538024178981486000373814037557022227407413791673649464738831662633329692905384873648616266323791528637504346720854893842708608734843750472019635948724966035870013316801212044960460110422375965475948354039161422000166242873821374987825390509291309591079487658457116903427450524331028283885005314383270027946152449327177199051052374545036372254913345576711578350623122810829287827549615073312303121707666708247447627957738252000809677822603977424724751815807557170346855983187113000239966679999016707716696213023674644711042902589051762536545522151256321387213415976256311062295284207725814338809259478960889237513764453810844677225503759517364108312449964070160392907393633838244450492937829807838211248969755916232790141024684719963859610262612801280715152930381868829887450848187761819486671537128963837381007711191865558565154930331416645162941108274206200687077841536117219541301326581361063204903880914090786370113158716123892816225680539633921205628897313591832361007199761895817762174697370788980976012551224324075230440125849671905803049761860210857491321585101331889824792728348821050233427467304688396529376573317076493217082119912263152176849905385759045683623413527473155905896680513035253931561575233692637147538065140164187831273969594655764384130203511598128850643145348056381731280855671622608694556618570341317546688792094600085480570755202532520855689983058239719888346251401262273097283671566291443684431257128324361059400220051783879762971312184823440205123702343363002737080549541533819890962980868951543123561883246093863882624914995140541162440552804473084736530227697090797395704956907781410606273209457979038738516898580380772381346360005075551663384719411986846118317302640394360445753847773286851915826190544094526077126588411071774304892761404024192171226238208149118744695865747793848705694283624593639975181884464728379152353865573909568424105907041701780151771382367441534379381374118825891968985177767653096207767061071220751562851273229482158419010814426141307203398826470803791242826239783844413954609868694752326311090597619921812597842249978470447421561271400885479411490420806872977771371608161089384606183653076475431599267547998957913065270369317804380665663870913520443864697478167339693553916635482551093286764667041959566486066128419566944707880094113669530021383256304569627269929764802100179300514729055846017860230657701896229795405148155176546710605573494421813169169917967041622267251992915690916565250946007110480781747474912444400651398483550235332775551297650319028377902064182240475526549469053794836841817123262474909508148217015863452926012095639123794876785987991425231121027320129175790088199098024254636956269806601661321916110415639712565244735466368078690519130789042390233803592962298619063746886296189059015542724734394385486642363504396539370294290988134221684067221704221402564397131295035574256342828283767512470067741028951286657947289193108128782393913279612958514321699004806352930195028559044386342153878067375290257131818078998446331791831647990653359904284149957549857728883246803289670064116282176807315107879106598176142429232764576093451789509753830283705521846088679461353135914491029053917460537995361208729626778475037628483290698934897841051152007435654234968289059688608825429166708035567304067597031992079352847939315521553423315637211846722443288133150603086003997472760491802030122712863238102932964143517664331767459040495984461565532576809640919279000471221687576721199197402378868355726581868566571314281874563156566136252849829094803756089222618544256316023393644966181510465140025537029838534476424952881101804491141733545009204987023996141867113672637866028941165811712185267290518896339682372546720922119436306721354064248764854840353834576686467094055915934344834476837178051851312841785167393667548671502402690956577520453356777097960298930809650153271436704202863710888648272099270457111335371787172728476390831759005586151238155642998793047105368347781491664200945324897652904304403724273122371776737727841228680770598568133524724195960703341146190083170593854710697061080592446505161689568442522657414710027291880986653987597926761996095069229188663883685339515737790221393407507675561401029226169587794246128432235632877764582178031166008554299994816221869466466434808420411548722365523253210946871098957516779999580683036774231940162067649375590585910224314841621470022920933243689013451272598712118456498677711423462547892629068557385208300843858194839654545789928623091450654200362762810630721099069010323385244952431306207868951096231219037094051150442528239104092316865688821582818994920057362437816729103888000175631964797951326704955467407253540177135403578865984923625965292225322796133113432567843521320686708752084263012111665798967982674494967127327746774764043420230309400021991057695719223737905848691137105091028081306460861824719274803318762672377351732577724097015979818357084976856194194596891294593159809270501639052033651628633115331910274743993745374958482437798938472018752709309107061151099591830788206651422403632363479127732077663382731686417409086955076271531618579962637561990537718799954817983555189560510979768638577765916186407084843037114578199739669405137145730971526743383450313639112058817929703981810124319271795298299374260284836935474341096646312290666135027459220780816154550185091430847331879545644697182162608077508208506628774746034299215945654317659413728352108903005950932457118833494459262574183588530621667278491599085224405057738328115048427990325603365133616310024355533191001812300065833923987923761604847154093533422724311390269642537008348391119825091923152505958472232978265531675951975490448863376018940247664586461899111712313334558404797894696596721893213952947811879664119346228015736167445956757803213767084154601692259114110424535671761814976091173831248030403130090732385015198088825158133395821464269528988304703543436927475212303024252377282655599102931454062328150946313353482316425907116682814714135384698927423447802563822090387628250374457191791953503875341084526034142729942657487102700215776719171901595448253548886861430479820859279085930850799039192327083489729281156915328298756954284623502462979193566236032392527696032822769284597829016169649872201966437862162863784331257317163429403892096608220560888700294921655271008322434898928696356229778896954917775225530852533144665499200865334366960877513857687658155765402468458399172591728458769598640870059227413708973190037478569815556359769641251456987295793778000504460440217969373056301975895169372261226585945795575714596659734204651225554975281728933324337880778587928467641520821736077815107097291039155678978654363577995899474791943620005920275415332656895232782666580888305744058019677421155012473973587724357580436076507297186522419143623061127289596258022273314940933319063460646513313226855244339227787158633354877937622047109260373021307696666025331330527605785369287486795273869703052701264330376845888333525061422482920270766779877861383256185285396877436874617503724648144634027841911695003550310956808099768361237322023765154611301713667106426583821630513493363786236804676907268020290069763862151635496579128421484648314290820816955378651334376881920116279968210801934365833183863132760569505253181016945753225294708037713292385424509614616448993019687924991163354292838263612509068136382757499618095510383178567843484597914435404779142878030155831868751916527945447584478422235574839772883703158669866546386088493681234971274243461150835394542206912074371160991975479496515368978626892606411007546956719522262183201927510664692094016415447507466580006838681647972935830972107300276734096689747017790274196758576607805052161035493980382727623433156808890626813464045291851733615503603160881924901207900490218202994976225805864864336034899596950993697433487368679372447128070777572994439510159608962920345895788252924528062047771203655326744801991698456452796034590465341833518005752953621421652977211349335455118016172114064035975711741690630870514981314449759438043585196433674142388475296819779269365331268276614147461355677356922738028405249566643907248147730771248404024842367141082859310935414065157980605444774565350334926599916528958378771287938855472325538866789279481961956892955839883797381253452873475396372607556643343760812054609919311585700557186298648171070284568734932942296997755079593162290385155906137611919561355759960634821441976193957666533104579915920861843304084980994260861008865677321766122922331401945848592039163908043317174569533425806084099533870584992845058395745907534209141918725470194857180951145595806304479638480386684758083865259938899292707000968142810713460906452931726437685107785814247759330754022248405222244536199441047499088873529917363062887832423252279864221089755163835314223332711372050036310034671395655198248115263275877763110879371377225011227814007878780100142184546927246858772844654315897938304323278797157624036275547481623829017966213974228696227589273365484489826173810830922526534947027099356523399697622391099880601812576004476189272633850322614243448963661188418911590263328525341625275293813515112695923419463813774679707508782609092522705592417805852817915389330556400904041862689215857892925542002161836389894468282989734562923291395191712977245891787841611095655477469486800437505912850032276519423242352115719070333940686242128508471718724784642301560853967139412411461132993039218374116224005830531481807946838500294661655926568629441298151354001613094091469190573710615205522330766002462564968680083361155114034975192086081855873680684946034036218284625341332346288324166665062625243954615475159413863085084065353009044634276387491897758212751789635917971487003419393077669663570225898349978137401052022972470807087685676216919913593384930434431084693928618574617832006169652892532047226836703760545943340288996527492264381345531623827587594095591883306991257173405908728217516216968829335258453167238858453258329094734262186654423913433794728880385169966714378357805595024604139626160897073817442561139317505692010460177293390081697413463357841239314721088597813241542389530661552264487399288958257036936348961603202911768574583392358882213750332476583386509102509236710268088504835186539086906107625392960070326091455577635640594857327473588599401884219158078832609811219346979429421527986737956983033937727045080850681747669658177955991991603358633920104802398062953920301611775976229426369054249229443543592225486469952057829707468920820846384361416271724778215510864793151865355646927250925044331526145337706227911306055881717354583824918932096915106693151719661558503474214650369386912455449627472353787119027911310944103484184454767982276026654452622159041586736615559181162159819108741890683122636570590934589737360201309362752191739990054899934217107548281156389514181901286948599271459062027192998381027971124684405037540683552750639440914469356573641060740089082715921932966365205429492365099757331919006030078085904664572082080836933877846693455369042605443390406020487176974924457321050669850157958499184216906893234153068873568184348078236099577439727463337863611385429709845792332439254860884628857850270028103140826873969782960697690247037685957017801536124270085928417536169003251393935318310427122430756581028878202831781008356000144692557214742341806551417685715408463706128591351214405475649192770948449619591456245873667491284980268952290660087338034205228778326526730074272053241241504928694838088437633501597169683223559188715292818563440848202576610283008900098560727280994874037271015725983897446750959195411625063187477460438821232623200420293633855707337491963047759613252832509554009274053874823504968403118300474321481551749364713022319090371397313017573666401820315155663054152909179999692974137897970440260682102977077126726955493527890429848210074201317107315575835501756998983935284157897765266308142585917901193713555320955122113287768035888305790632861859080847588045383305947111544305002491623459698856652359550090305677878047266503758845056512649934604312630894287574603837856627586128198844546540745815550110577079892613259117347299737530428906976595080787930701863407427409413333633842361659936490201465543479790066855570227967043457143721147987182531594828894345171732704935515723424136507618087780508846071973990851098567429432985385202334499859371236049843340334112105426548385479766267538355112088318886575327008343311188918345630159771522486023655194215653364214392859095267784800356810078394089640314589129976366937293207972522441254361989205386427993011767199440655999109740101705345243195352494847246975158774381838840638487808947085536598529499000504845744699767958104532694595997651395512690314496932238777275736518990439926200534995769092369796966752910117480015922384628124189508899234148797618569648806384239643321414873661721644592539740161285964730687687765866626643181911805999639072720342482675238655816492262181440217361971019947288472570266202894193872275182746590328720112143115162498619287225055444809075857639883338477295684744484755621821784494509509779295112745733477467332565184408070648959751836997390918329992057469078362709581547902332998376586220022961768768632400044966796247612755070002620487607008325516822070230446422189322880572482761214455339754359604655462837085282020971611172987477014654740399846665886342038437894953900117438558610607269693870250549080380244686434052744453987820818824375842191216718889144407873336232346618215483987179230540360737857065931304030333381599368324486297082762043310380286494894731755182035159930330623163862377537632671837418611481503240838791982855499494227999070586041413740168449034620726264842262782955396650583071795550627540330406141718828079969992909823568915447978135134765897751334635162094673090582530963817772365783520749459220370072040274683289397973182366834845592605779738723694844704664651292281279201169540329490391917127557916877015665358853054658275374582276980343223709868494713114308826295548430952471646991755835719617687693611878207784984860175210879960628314244821442488979106267311490149488358968899660898219868077116630197469291918565185511759312500190963071246359521063460018243747024711429894290893772000797478330723754026559499686077706783093549849891610242077217908040427469654437986749434564060793159353150460301591918641279329117059803111822280060054493283922105784807897193419487844896357320419794926351974532429812888661984331400702689976134243113450688750973221003975280005086298623091503888660522790625264940552874618032299947263693869172075696886455486760229287986444615674266925489390190376478413188296215553248919912937161181095440456192028127271787131383570081438221048816295757328374808842752386562239190469254454592260368948132949833949791573426087041333867515760108054434913433608572681035346383803280550492393209297518814182705213333317108862100513325223720859439794865003384089306345318986468740251480759841053701765016739196205352928046658012402059538099924552818471211328969847694106461261369991108672893108456076160572703552788806432104678289054200565000762268718358917666842241665824966938998838043236439563638837198811379060836724367602084419662352400723179010475439932686409260289610686013934592495999909702056939564586026621537898677149768728778375582207796090946492738327244097355317120269930188942945750474584971077759813385210199167737141739042679790259630241627708315478944286466548868480690140229167831168642405705842615084237238739740440890748046757014354035942383551046573635457810588658530293196766702616561420085147693749575189620395929634566909386677416377970082825828607388414329229295154907953950593048484284948184659610207115739664731240957523219205202249663696065610739977955586374906049208497782773665413404710967225860240238885402176145152020921340501819763597814834765037269978046335144719355694993506890245429148096336995267782324794253649663345560538451130392584301769821243741098915099611031772420447961168107974588962427475520968144762048597313334422382158511957550711320034579801720535338201792535894479803139124491905817066967933301604130565686155422412494139286429326326758550840754457749891143580016098670304754896719146943009489536202244694737810826754588414347606200903608395789338961971712048485748873399834098711976805271508198836283103494884831199340396485608621243060821789146502854300101312775038533702647365459239900471083320101022816892155611871835332681790954292387061487180631520841315327845590635413964332365047508041038683446562045131869683246156715136260591726002981056089335514990880210677144656570165363080156643338066999111257894385107757606342401407559200963605162238127205504367321106567708772692727723260933869973559352403413098903794306451488157667780352976180239118394549030838882184499601923232066373463745575592661632607116538346824806533146188085365772528592853633613436226115201964314720903747072148514243135295024017374478544932878207252403189189839626437855966593203087119560747557451875671163900732209736193974027796807827844017757137088242324337400780106296443825519528966320357521710792082731777537551655052969945706144537705882443980304527714290172265839114667074203128278001081650129405157373118217560942936021743324769378046627813364500926325535887673584811180533767659071177725686414988848593609587528842765165527192480458810451718327979016573169424384056879966742296978667116328022851636897668693876448297896637237711917205573607582742276830090940608057395365744450211360359746124398491013636313366942903323644871905298449840441505541452249642367076131445836965199598654867764230537447080729936353156869698080238612173823402398066191807319485799354553068340104966653586357026600921524330100957569926209730603285838275593746108465188603086142645326368809029422403919924103307792074443405869139248425785176289249917844212699855313976664820300277302277997730831766677859915337949458851432759987397338531321668478573896063172311182360075344179006416541974889267898024984046971334428599390907810971828985231912417325937950810332219010143203610174481715394819421100112826825717729568581893196256034539568642811238816553932883325928403848166911321421098352317503919062704394796153118408367380786932240670390238184808864836153100855651624050199550604773384197543212466882707405348519485503661039475115217910343790510482452076533476978498011301779036196924518645271659196898143521116599773757499727526976012925878231340210613383412461374745609250559175581336103567766843107094345585341970068451589299450094930255742133877390476955172163093421469008190262154522706366436279565478146060915676584825065894449665256122895092964383738853131991219081319030182787435286706943467863133780170232507246357818555665551763802203855789523521431566009025286945235965071875374072416545307722302170477498771989107639260944507127780806831990159588729844621520754280764701348133537023445640772704366972174592545294641832607032710629421703393421410644918780784102247775329847202814780470264404508371506889654101468003978169297054663844176787256490255560056624183809755224070574235130021568375526090272229789512250103385424618490302583033886173470704471988372406917392621484131681695245233077108600277974541203735104839222480142824382747860797576114124137205357668269211903476470809649223875744897598998258567780994631933061210622730575789459934010989369370791459073553119790974372330186862242847154923064453469705650430385751870384808060701270667920467470386630253756616938224444303158501403486235405803334368845864196008155194349217094153297953556583676961543245258133235630966073182619513707958753223876972729996438482117287116509604521004574280230851470239373589551652888732765759294422897989254704734620010742022562708632649249458287142675532545837020450928708720818604638968969044235872828277466092734302916031951373515083157697592719398458877287964150545599238161871173106320493912829341109289492724011775543759628865580664927451391614237991549217008639880808745033025957761529648424938071516246292532640511654306780373885794067259686980307308859122826688457614528668356493496138916619127052831645600824771109708140972091350212562205063900463299470155026247117509717342954659300520008528347013452953476519629966133015952150346583880713354992772425113397258084219400717250131911550886634761011366760607681503542599430282546688573455644619006016520946536140620041180950413135124750124174895179166652868165694524165036216157672833294876522080394457577735389680626395268541838414488635208789511219226024369501530661877479096108942794370866241609747948955077885171662243576611124773315915205078356679160093335361848760848359212372186952696869214244055588052333025780992029517616145401222213001684653357146565186653955925127853143872074584230719270721294917134680919841714963299620444555757493695016429766327054064028632293125118408232023098982570894614584184062789762801597440205300098563630577545501878821034678536181120113118957990924227428106011662145897995399029815852247495253910777065998756959498045823419373487418212161663811856904871944863740600781633465560007571786891154384331583472725893868521252108480226018209647225721516271133106267658198135392323022110954406589686997663978650485209085863883692828954211751480983170105195013828213211386631145549466191586160150876329459659866035458040760207487468041580886327489827190577587047168341208291397903241854630648999759375730884586427462290420854082514539713078905634314008357563249145669282254068458678393945224439677895014872755566262213745178810438401235862355103360422582965267291566975634728799474757428830118570566585265558638086711387493974789166096306322796294515815618764440410201644153385542458300598857793338850437868272667571142674156084036022473379482069219141719185216704191658857548672898025394899509930112219321300916453568657663924602919161089308752205805171669889448367314723784350098915745573352828844126315651708367285816158454981318409785327506196511331661086312528192050708988413407345302999166120941172180923282691809263796016797443014847695375555205002575879471864809075481829868884944813847239475552648317093707262827933717476516519329841158686603773694648940843639349684585869466435658632453349034783871192277347531114212570982509189061907543001080924338821019420271459141090849225169304096820312789579525727845601917553862844807830219873987915771612351675936520356377576063910564177546636066137820518640061867636184364502590097653903397921399175066867477086041860637943857538191847619451528501337326868787514075341563613279116653787255630398489222488426519784067601331970757480140634128724373669099017431309002440868631261836585820666863475928493958283160982121778291349084025957704380513139992067402621444159680636969251908773829165569277033313196184768930119109190642447114430607965031622176141476572090041839340803607655196069582565964451818462824812004330290268115662978520787794612969345217897131226973412427127938556738543518806998132751857210150440986514293236432528343842162628597848966800814599921971331718290416333269440806583991164237695846963766607613096415639318768724434071213824212002500491373756861147052373183601776615169541498078175813086509764809224849279957972551112973418628403708474099960784515534710683932041656571408033276655851476737338734215759067551959729923441670304471886010497941768275650553797778460896653943297986611150654137542218469849196894651646539949878604255330758415670338183416330740340824235293104933159283639959560364277249499917373197999418725615762223709989545052125399890486313952909514687857698099168863985591840505777749625781933714929528091124218024325727394057692059338264977271338989516025134298955351497798051508358246543079247570658842516288373255160273551597394192080623388037368839087667696738464685174661309675160642926411677490652035557231591014501889958313827213179888283972597817826652057682560530520060562550802998752224046195371654909446904411121609282148644978169793042513050941572108341139219932956144962721517973340936158309722070015102569238580659532803958454451239502249923301852152999272017698101959540861345012158568236889226344043411886458745161282932628429753680662156910039135670262949513734618866350165403533040542888473614970261950524988647900598980090337536606197278412836429249785562866036428118138840192310553033937322826173740329823292569972570728595063932703651562674718926831774112763185752917072520594541590614803184510668735632588694455551234619748100261035029435642852896980778427416269213702303545633326591284504395743618258738294719236433304946768486090119615728128491639302332191495049356311345526297290801178324093465376511301039558302649942647998495125866254812492946315467357348787115437639378183576226992818812670082819737033840694271247097475346965755914171658857299678738068322244613636241707916694003515606651385738957184377206821410101449748192060852274226355490048778260459233001992013194594114656979619843453066505124901117208527672170834774945537233536196458788472935463727261029857866610560822260323245188717366124695066300949263051400865904750446031820678917846479217071267988531870050562685949132575120330808538430422569639449482303002751420738531522619468394285259222689007878067185922073329903998644703658120593673671199037375978579995070833601987803247465869092661656842667508553683222668425429276339068965505166498655538895460708272431631856572098669100734294596171882648907564605190564589140120346593510338828706333344249414234805249139574313937113880713470787232368908567424418716355888484577301618059243713169242950441050537036660268294795006685379062739189643135733157573261142946677544232598555188847239538516302528503457827522458465208796711976667130496056704654164900837673074556076706658062885849122042039281858309221775184169817073185801849463130274200533455041621890430692175534289922980969362671469894602580478004117366220447154479888507450586223596414874197953366272616986535428474786143853773563255321975164509827408107916291375384141472928500450185695070443835854673675067168203803894800945336563718223026244630320239658143977419099625392012719869385546178055939994490475117585893521599672520497738803117483557956444760326493104439759854839008757715106885122767890069819148545014167741471100039729191015105732129921976048314126074170233606287918744595958354391552837826369672762354066211615703986177910042115326266314656642913280496373296821352549812047511814752529720718646439408823938036080881454116654703894650443318590487369361619736587104586322318009365972122685709408740348811880213363119945294764786952536767516803928851403608061943014394876322149490537917485598911259825264395180057254409415123558255794631429144543312046551810346371257722955820920186784802837173198271647463329115931429233396189397031599061591270320656448026510560620982553065461321095571929513687985931605829671136461088093228331658674109771610328950862724447722919786342129326790916634852179418179641035999070856766005221901176591167242372192842941130100747101330519768231282179659682666802013922193729955779561229344228372120295743986834023834938085613410681890264745991822174739863188424652751265959680692599597357922217926398535049959914195953394943098627086935921508658217310221137168430138412716625992337531825251373599787846539229652633691737288290561695104808089210269599321377325253520083979005132981233109041312779647111075722577907784798328961720230978804812078140462881299259867483516239392950516695302602386239325488947081627073853710375810380104404850287611799703262253088542978423736153634415055634818815202863953841330279802435550480746910319797017151813205644014180677782754965245004631752695296704803491152563982940202474418707822990857820238406691664669712755306786208598051996026507225810858342071314031247490130820347475428443759570513232288637911646408117888945121582944894603958808007111988486881346865418790512295366374429364817986894788331645374164094732304532770528677023187140790369566417532610264647217136210905192070453553928458608935265434201325944368469242235998600793447915976809389646882888079391172913109428880215604653756802618003815565144679273146652437933602974685564832082836193511720148528149998918744250812095582293137978404010396632923854449304554571661427455856787455107606346603770198351033600172127684966393036095199643377567234545030786891344026105620139552748394619381695010166654281486594507893328812908121840570122865629299731799834746101363780785356409278879091363182286976051519097471344812380602420179739783302845903333516454365627812825846605801775573960149913027303904635018964463503660377997262732131008104265249765716465601101631170858116281515600463544240580923063763144148140223419382645902410889982603531982892687833659093166023234872325632862469514501292135219406266784046350616847629000236609798210331683926364121537174678081646973201104889416400849891144612706653476631232299984467406908243403983988185011313213369210173987107911104641463621890279001124879237109891135821698827696793998103235690319226648518043251046039958810029188311037198296829244920364909094163960017543398248177992719997110065242653709646391505048908398563836795519904653621037144553757718033077635396881335961086850578958206919869652104343991998304098112814796570144262758834631619805679224139917272457346221356636222786049962082929246528180534373821262846920513687604205417195951340785483317772448283898238089834508593873868504458283508191425076337413898952441058908132594783473965848306248096600947027213834620494492732222457482468099697950649305244084863476110474965468544349578967283312568365259480892677006679636159394939397032597237361874662229865458289787083443770142622796616193818862811596846903335672384407390590435061320888008179850052222870185323461344898811708434991375121511303791720166710228119845514960614779344204508278217733990703678952977228782467035810952750068550339787064264214003984360801619367701193058314517133590914178541692618528854323321718832170039753332498977486777031554930484407848024055335536643321129437949239266806562710221820645568634543049280168228968074475563700113797258424681886936680021145658918930758688166253327785139936560129168394503285485473000350776632896359371352876502055944399979649687763120689599694850169291349979822880144436144544310285344049316159036836016961523351447715172836677619046954690401985693947560620703725105401462066408217727302637363583202953040932084868342974214472188403249122189052507549817754023760968566111675132330916150904856393087912149199474772475360329492948006167237850072709157779879217807568529194085910385973077306836110828467951178027533122173662578944511487941853953162365910132543530716415050874999040364286138836093630917771371864559532589381925953836538015949191729719300248463091218369829186544561922867754209574157617219242305299546749343954733166465870916067998709423634293002165620661054600333838624003605869068131818869011426578130825848863636770314845938775188459382055128394566734353167414130565231288621136419672630471738096495201685531768846809551152228678441672782206023851746160319662138733633833750506871272034798591943641861739803333456140471072493650484380823649863264169341386140288393723100481798183118907843917517436210857653007396397337962764222454232185955018920270930446111668429901055012040785480882926296368539619925771704444503766871315629651219484014330249704625102410502344507833411787988386006907681271786886829575457742313554469269959830246718032034204581812155617658185102848170214141031082405398860530953700843619630948938164192695035606649306062472871980873750581314495890431980410941217182086513161597107593194645829486173476792249341475542204316316010647560240140179013571529810267084443884279833044905568037486349678467208920231543968217375370940167729685752479228093467918311754395472657551096440062560761968299126425761723060821626258151076219130688322982008983718813545871762346987639750892739616197212399890917203951212162089393309530641719608570020262814272284622122484535357412061594450475769435890421375649041424056172673944976817780923061848408464729032394509695833460820747330910604371308003074813888563340188134838623862721957842426167924996512152200918151033920387319096741746224978026431438996682290257250764040922555560104405710506401612277124730637224760540769152817667561416136970965129482236612330477532274889719777935140596913861453509858510776252571849337067589927457849958058903653164545127740366150877236865128331135226588029459629668086433317028820426521345719536870304039438327066920510217114312195633182341865414415676372160444271966124455584852152021929393495925080253933619979183531391216920387737269368835019581909441484316795533227374551518582552460000064957151127017879813391121152557930319717491698531957307362679357065569551125888864232875547015231753754540735903327229616526097488501232402216509408212318395121772536089165370570370011852959337992142014323740524012393749084393059560954484786240603794166624441082854590581053080587033257608633613955088401863998611708680778015010819958677671744432804315855196919250268472482046516443948038531850094597503716984737125515320575181752035241878908666630990750771293160138703424302269090020900987612631427110534220868630275047728435223079501309744248715439755992839055454932335034128820814741399201567415443447316461512545878285246943366375210298699462674820962698494612404231650264745296183077631018065292867352425208188283260893133382501470595919348333166343445653237562203350153509280049102880752099052104121928627234658911975220533290681181280797477651782871449506541147130488583174975606261752493920935478308953999000643163637887636641530664772979089931884477955632192036137775283696939876964439174784970661994930758876872484480708519443115200547797086566972164960305429025650915221866320492996924958761906788483067843960235243726762710413556077281391824583904738563243826651818482371234361607200032711947624574979213575206159522535593649015353872925369201505789773982373398803077160439582650038219021470158611968442690130748448377448880579373693390231961322930241992138682724186900776373163079868865159769196158620096941957251564595373064376664080335308494659606002744246227419777929003279077059499589160073472374723051397678350538801049570879514682372941573823179544495648729773164100896087061972996917628748154142950251482432513958631698795934372290443820977415763564827827932805692819498617697588781321600399928820362644423422828010608832885891626012988048478296031413135169849878214698213078649737281979377245169708012925451397527841028096196049880953995866651376064457750113883153618768316685327153004209813969471270685833546449138273422933457727817177146826990499873382557342854033775834247198332407182769775203864859704532924790139379474692425777169314822573505649304994878222936377037613750422223412977470568895679106574352813589391619788362889772701854637820208084588575829130169589427742944926902621431461930396184265479411563621361952814778779518703889639942487114014240172816295056054139486035558655374066906018408643095445417345700377087261185824981542532108693636865670904843925607802448863906342258454764260712613310042278733999451947596193573189564077785086077421297425936607294440381557457667962406620226130193706506356209432600772865157956452869742560537367309995429798346532144230550524738948867407803433100219392358348877646005017777392874426987955867561903265206791714437319776243763199314840337310125434279108969044995523239653220700342504953595975678108458153520507719720083844278280296752730775579749076064625207607456152082980518487925253559771325510923150524224406238211337958023918560047465569028182439235716742798385920387676189986398393675761929671802281958880449925951347013316091791401437228517466399081958990387208014925539610173378476252360963218608753801981467987769870883458106427969728157373629321235850633138037732164898398208455496346217965116298493009152037838686221052318334706011467537521060674295474529144240584970048679075525248435384226428495289321273564815732099263929392160973764451958979327065462112315594131689516053215642010538282745100997203209154883198742552322027111862156571373882486005060475323628990677017647304757450465855880510682417330223699171948728106823882354067730507707450552655358275423942317493046860658661424751377267817799195708108549301163349983007300658062624731504681571491777241458043849226984335293881675924153119763095301764230813726220966690379899119296812459735271145522940607413588222026137838347252382907419100761213669525039291240971950918439572178919815001303146852203337806609442065987464555765374777924859198754797566345817272675890040967683291402474223764388008641825387266416812047243512386132867084870431529833473501282829378025724164031891212763515002223613837848441827567560053394344335163123537652801966874767323748744155230016034686129108385100261268466699399317645234796406620086178279613848556055840421278206440448720689601477976910983136763939685428946874207776442760572087457613369384627968374629051851393034238404428755055913468170151242675455590746725615809374713983321031842203410871288563900639681124731000576815698948298553319392983444707909636646165398806651238312274415990216695467622696099630591526890068523257599145683194981337047830767436625379272105409135255884834061037398345483395152590900246300459531751856849342030518747488779555692792825117510617183565707305115301723191826099706827376036900878892085102753788383698819360359886632424884568111817215198609180178897400524766428919998249143901052475508590464804002995948733318914643956800771328591017055856519366042460035982335142428198236559419725613504421329910054309236474125112318166037461810171789586358786328713050307170680232183918378805149223154612292482259325117671837498082566039164129027942503697959484474397229914545443713979302237147688103053183175735985860529715896344195969331149733335839420422264700684416848883842091976326143450523011579273435174725317070371101352387050842883382244460200879518012077247757066223201743756417829176507625163852153206743313579410480272177908510627922246918841508173778907424405665553749152078431915582802165306201358524127379600551834009244278365689144301409169503174000838410768436271411610526922663237140217382388773307893566522964273140053525241302746857575838166298686340235401571173151866401428542470172386879259257986501287835707945079272455002268998510589384764853017788303045263215291507897176522260689007908785309812135562300667631369623990669264770031917713893024976768656727110264387623971271709887746368811736198086507834082939060689802603577723723030868580001310802284854626211036133487217604548889719961728883014358114553625292378087829670977975488004217596256779199057029600402416873864705458716899590460729859094867662731481406699615624314484831071983129444199559600685805871287135185487352376309876236836205930026024425433468337314604163062869862451313080110895677370574482484070698844874644995945554460539889909117647734212695626606594481581288407020385858580750913042895855370974708588816162210742354194057386572196619477980607317312379549343353727201795219022332041227369658772858634803135543887084162207176384033996290074910882548560853849780943558958936035134165136352152900290793278069813816288629778972591961099217836910126130747026929740439795736938674618946140812182962888911398499474332092833212627907677756010045646815853688691219163731693907368455309305302184640582312779956512670356437958445570164601821001858980023353012566144302296603517348779877371358563683389112154645698751914906006726261282098806113052604526749446118945860564685241224327122570222793495921824052086197218714607774640848008979621174888917904137152380810558122542020374063317964961719604970653537244411009848334321514577314001049351895925317352277008781224130960278263420955283465525170853130593409366183474778454214328640039156325681443759065424259354413345193397665420573967782391882627503239236589495682326238614713054358146204203120436851925432481829261971555168156146434412154816274634094943555774561241387980940677604284627514788206153147270446725473152331323803069849602398569801709859166387322717387889060867796663615987163619286769497840440623701314630019587581153392991144846707395136487046475759196402278730271639872189775766049484768508761641644481794067103800160767250664455596648724705894123795775393229696361545263136158867803322887150630811614457051557270223923833507804707725185632940345778506502838337431874996284979702481823117006690755709505088041614268614718846374847526068921777665351062341930536069882103599068862727615961285160814633912980247142301172389917521468012911895159370281186073882416650423857642012133054013997072132578727505223406323391758966296361148682588788111720699217572019099169915327191078791300769105707204145325033004225790692737609152461106641196985996150615166969956981476183592782222445043729687583928683835250766541951887422256680523229508486808904037035465976995444124313231091921420378162404542286391058129520984483061252945627287975185604101108637624722001698984135979190366888561786427337481484433076585676897256432733508473076595077321190536997502788263384274496236062810800814109332696761683647967088634521693611598517955338987446470535423136261027297988441925949811362247476632127930119879718690277466855119263670298408819217814846561250823327025074924836224624822750982202474825777923070565847844469056748839696456731848151714808613601707791470330972058462972569948377133678487994617103641145904822208315276522452212359255467035441751980613854910144994353198371892656663344542176870938348637597930711966621166064665261763642368517577547639076382988107599586929305587618148999627100701405833363250475739869051613692798987996991670755922081122163228503485445287321051592312349217644738609791390435464809651974681308324408907946623168673211204603082695303997959843961938521984127432462605435024580773284828581415126300606298416512258964024226041351787610817298745486630913330373027094824315406669116376902491819783590293037690221964779585119934095943123519678419822293095615599776460251603955270303257937977555628481352699465914029671124959156087899097748634982520208875872010504288587136464537983298382651240507707934141909301466944703481306432464567314132817376511567468566428589371196119452185199802237751456453802775055925444726722124282819900841078567455426457570893123931338045519675351320948589360077309806902800655308301350081423461500718639517323045032899713413835647263689732478604391951740740431296133297970160266074626918328823192830495707151514989289224281410816054947380365048661797724485717819329200739232055102430683163073051403566910062128958680424357770095191244256935716920898651531048842543180558255570039786277167013939878130778988556797134871489606269328988534940684073142987891638014141169534266352560316701613347800347703008403764767111718622653101179821364180293280897240761426779648718479606230983294130655084047791039766331989090147704287111896852208152344474120497589895185442278819304893793825175902614690737685731673442787138836105505906339042146363538546686824324093947116405559089308610377193649266680235314206656966079071209942199134234246913006505038583479374983785216283649104747784513075994789991526422973375556734659214627672988980709397261194076897662939404677521172105269783185642236122962579698098391548625326653208903351669473458800300953864994918158598324908688308767113938039704853457601101981095631215654509599938015401739949166646502573103234386060064236809519016558587627768594480624336971991894069643172732979718084812415367801663717060134463690047554206896953562079436779612389079046395426163291846583178269820762057967039380612676196319618803327855870379099397109019620116229642779812582558450891191040867820847062894074573439603874378949349530230011068416811162439316364060911605756599321528399240751526221930446987954211043094021797140939871875036922388659536918833788684102571179892509180562997475954706489992328731580842089866223087055937488430900038151634841700967666317754974101905366767852777861893367813024213443421574700170459314361330672851080845996181366530657384123663743504117296675411185116314082131953295465007549723785482327347948481573390338190143175337618450806015802663618013259133380595830768510156331689812313586311547138140801961794401348126934754000035595366799497771415565646245900395604606699583010165675618702398043413490304480135473268856240806987747437959099394689117401707662660193177892968073292046228746327008358246527113484623224998408181517364280930277546969168151010160908996286696480028020110045584634440374590531747794829740912531807276849282818278848234557973672758071347743491000309795715844706201719335058143944120076762893353560501529137967338263873725425926498120843981191924222752281176433905264699795469887082998372354361422322953594991706132930208435433453392882809713577423893185330869443020220829888032562400483629354028247023578059848029459098582769888641657562605630490414290524176862189063087462561470087459134583154917970409611005793422456415117315030179906497773650706010377578094066037773106553318850629841483817324997394988346752814474181057629913471019649836635152277149649138490045088191623949257652534109438580687623582491536026985093491788570105739966588143620143438310103279354582942175793511510080118488033436870737245517798116237985860787107279753518654934238789857769583919731805646724648391942708138606262433867039803734671072058999396183572416435297246293594898615258936808390455527897948914284618463309992731962797193483676613178530385870014604596853645742794269498024340847372795474770721406513431376158552190641192956675577252438583161580090644628291252098292280931639649027426095702601079793713397185323341522605401492022995706418798355027271296775210800746379071658487034239643550208061874252644454036953125516098970100516109938053912591499200508762280544997253796161167925336481194916887969237555463734392418828775862566204949646041339877228962049587346153502673161795045331277887911242618237078248431670340637161596371754054218416396212221084047670111379881047837449880552713419263014503600626305523216381592106542754200876669384252433555404497814839790476639228605688668562340880115752244450959630391820996249097399422140984145368012959688873207911765244339700182241044917882377790121204274374180742832599900011606766527278019400780408527379785722265351387714405726729037787015411943342445742322137974032249277648723964952230950053187328669932335891889604283680413315548867780604156938054570089675644033413782959551595223029725453807002760767807979924597114226801369498923506838501915551550919732045388034738428987244993332188154493539952873430393552044621204454651866259188060620048957071792665533526713007922172237419512802070251562297962445461779943203614304356834937221299357248769966346316521807672816570318348326509252081334256077428249366387890973239404115646886381416342484915602017674854502205998350349198317342772404193017060747674831105519707168462833507720374988330194788014104179445360528618879477565819628626434067755161023305969335166982172659675586503423301691874742588649494890474602986925736683592279141593714387941738915516589728656983184707745821552287958640073568303858123740292008511278731227938403975984835188345156580483134807471910606534373374793514387285071823961924827879058082514075877350629102866989575882738464575956902646695436610465114632149295052769208326082964321196042387416921139273084545038486486252625563746301418654203136282735287237640554402868201919276487156530288986319564538155580985677359535412227354029612745564445645629664362633472004504840772960350230154706841906568915177223850118338348168561174936606757882720145327643860648367355940052515630157443241248849702078523407072624469775480800832464935812188781154087017109639682950901401097039008033338330650385975446549080960726972306530465356811546926095934965077362156784559012512702340372346827890126472017750451590239651718672103408568449299364652393193090186849266798301456353908729502480322668089663150058355134492445276031363115721039255147221587992965123615513322199476424131492423172644355832405095329422678003201443955886304871762595410196721074755804466795092695513824460636188457315440095575689372933534630988340595835992889937884325469798741215697635563228763305832342358672057019177992938069877503576957506421567396111310372255944330358101991563637020045981224580967036775419760226632388827997890877508278294454212256445559484374059984230524286154044282388756394095231570947460551544536439272862194563994618959025403310161514888660616977965937995891399744582745420179025906640164125821778516788736879597874335967471451048027887196503297774719778970623048603733805404791904009975086165764876972900233095746012969497322524011745335848109358990948268222150583211214884175200127053717171362319430159659514289262005334333239585021096618497787091334480929985073396536709564575837893137815751711670462798000365699353213305755852163191959449008523754861796224043956003032545303689818558498552814915443783062922063668217868483343933609992422221924859892528884066309704154569904657944191624190043146667136231858594367606327628177228612568072736259789208958559303292561716718111767182666544734435457307723875442806208174784745703136787469518402741451696531129224700626036220944825030425411565860862521465449168392271998462514439490453099559756130680660864901925630062178594103005987660645872060698559431261160541428427385087527566888829680398626670754402776391646495857818326975969590777648909410242591922868936669603011519639156419526505913252908468744311107185546332872796311128090208671359239479710796998912923504212388367319109259547034144616052943619582754227169996701505729629864917282452673904699163003957535316497018802490033671060301768317226587216230113406744666240867143508962378919021642250516424301343684323264055582928418922091738591846378579468900254678211576463461925314182981838220583605030188232799776763327840461407934663722419652207198136311296155550042577713198311622903454182812966779394958668706814699470751570143715717919865633528802655985253358462276992453620182533453217099395443438814393117691645202653338186610315026047654967028567322285984258796280527554207964021397822325814946756725161629241858395215160913239936431344276573870802701707510901235773949328523893607434597783691051211663821105226635354483298277213467524131725382000814351024823457661045532586402862794123988538934582448159082412773904027414101960481399859451871747217285889931139432768565802964619853860944967045494301622766668573280599752876500755737860207923963830431653277094905806329205690968844639221357407690094495083557124480492518922465810332485841126701314005655845332167383760399216160762676034036606205979832413232465456294451571785892909268920542779184561470188085793065406312908305487891392884536050163487405704033658122501227916057335890963413461390637965880192770336515634134012063149886180773439316372283981796490143655759431450863706757370702348390124324241799687741907338522850709202788476317051990705490004160494240075539731757465220581314582738604747687090421022019628560656699337561794833224360747285746363069017977410242442644363460126511282810860786622635715457005381125109182944745102394147446214705669373567516539196898678152177996867045213367367851759411398109276129861998680777929496933282272968852443628004554709630338165174836111668478266616706416017334114882708400116605819805185746693968398666706502188746142128243142375310033610702133509852896811315191798370726185087686359536558199728806427600936728016104093741680051861333490567330914548372317297043170320478295681958144778999902955169596934072949352241066567765559393351584093287938617511410398784281581772616165894286785293896707876021988745921792575842534117484698776927151982252881756278707359545705446003792439106523567631672905148096764215625312300200007868805729396547592602840110994473363595410686774818202054079924873890711654050720702426402006425532784615136059626627961504475942383758339226630775207408897243764125731698846164576761004466388895122366390123580990538968475574240153147696634903084445689019242946134301514192279969207082232387726754695212756192698032264124595804223296375717694138974221922646094863226959723100696799975446443603867546118045688293580410830863721359976611734468529331988364230315669078693809596439729652864975961564385300963563401254937024991389461757638899398855107875747029378373662596068334270148162788735170924758288450776112527010086970680022486950054330647639750313520765398842425935331929677009310314234143652023797590176918589219447971017533607159321749607080745693354802079088419763153405848504051637053795097593582456888658188588214498252531211323386189532395400273608711334884299562208316266323750820391975424967642180402279435727377176275090312126513478801559785474791952277162991710306560912732661073334325699484482939791461901868239108597581279485131546192452674326558084000042828450944313328676723323301273445874946300821639379373717641546475053843688603015075109006443287360380549453145937917177945327361168354234538301013991212658882033142669845465646180565603025625125393959897584110286628445562251948860428546624176711822604754443206273188029017756021244223877751856215209531904579028691885639204343305405029584490774813644765187596751211594378155434371224507697459409250809657533512297417475464901303409075382842342869598630832437204365297842385751167062545591899499599605504648550091267719828455965438367018862200773980841973420185819033673186882229346746093142998740149928967559893475159942893519677445780398806478438055113801156728227148216565888904087158437811366854941911789923466277115074103773645813435620166186512423087301359857965702703681521532476121413431583863011220357679312032802797838579913283377197372179799087332739168579053194036384828051562139433799073707765798627813389539689314133479374114140703467268350098060926795714848769499860076759946041696586741528277317629184742305932400018798082163314348672999966232425790438030159333238329135915840265233439671906780204183925575582911360258386686924648756985604075654734810878887138687290027273148188588916774836051429420650381436880978320421134072704116951274680703576265505945553695623876493610584765990580538820624004521751540614815663888500601361530063269136755720678450435781349994302842016370759032868907859412430467042028549243211977889389919561651609343430393951865575124580054058738476365766924524626337908443276026148522068924042584099368497296377153934510173431678739280985226731268160735390211897564548448905203226186015426480956045662209035733341690599687226717268979967024090105530661290926090934431499961808533230045974935814099705392916588175017361352354400462071533681671619657119048341900494439051739854472443468000162496692544276107003578973572996409127861378910286016393824407869463407189802703430114841695640151077692971201008274513265013667182494032798618632110416560973756310571897253063789960883017059635041985538387025794923465282099114636445262218872634764663028072093771664571117972174840824415769321704159565634122090722511279495345136059943390591896693501316886916719283262229889284966759140989675286334697763740315370952672004415106594742289861974752189458925446769125158875015137609582204774447277078565293091253174642628167224197794124884295633585829775197545872334906334340402595484366264269491842883381043975257643752323730322813579672233438609099576232711328447796877514521705624416913975645858605279445194042086686304656741983811102453659212945079110033136320043008973664978847856345755847200953828991703128074719889424164632238603151474935205084063552494050839729210910486401644817642389725286956640833744146869308207000227412802107793880919303583847363966633852855532285379201875587189690668772891417557777313908180980724288166580234823714901193274291869738364843560614696730259964565164272699867932240204341298320435264266370065705043626931179138959555917741643160785110931738520322274697455936015617568329820720729125605901688376636763887162820443585837131612524022121650662761499347406470452583295547330519105785015927295836807888716416276855932061926172611295423432839267064898261065600829443335916273980631642884935721033816963969256686465008320490532774893128435087404722033468084969900018712422714811683274900690031301710489779559515000693408869888617534618589861734350233853196298707564743236572707717252133162464064415750562790347158251761961284215491945362106670937302841115544830760860333516728608815234347908170753098271176248236727951601745812746049092758421409945139379957757067596541684245088251435277248601336831669332071157477483465570855030085057896665548219288508154314263594988269587574965178795433027100164232854708091396155574796165898396564789873144240467697961931320146051519189547538429315675334987391427290812677148423884909598143367801567323396466384096552024161974797500903063027739560830562825834311951106316901414231791011746186531373731476255661191112096476097863901316303523806339937461778650923238834046389390046932568277134733941404532042726414016406709052589160675432276356325974789917239197854368873283949344716464701753445863609815194477092156445052284801057541217632670632255206735072278965794667776847208905793687005213754110774425590784691926914825555143426483337261604840717466226129076105553268225754975922910485550059206016307411104153255043164734612861284052504902391430482466788493393095691346430753426017576846077304036247434489941156790560640840853042308514218827608645500435833789358979529334278145959669572565825205403250930851744258591967558232052900020304846616446470540401188082856055612166999693579232891853238152705827846215242138738776669611513739250427304137741174905645299426499880475599742609467521599087286549782965207464179685111460502939274673261540204992678238667063878267335673010706294072233347753799112559961498177084309224914297289671561935881031052371960475473281199696595598366473573386301687621484755700017555323827487782788050520025143621881401592553183255011073430966804220580064172311048601566696848710774155933747340303475813070194513414510522802182074850791435641397649647203484827276609020199282322504868324704216086231188905017781581951187816836701771799827555909877950290235755801924425718767839624850986369233483385854248497544438777535907836072633654725648223597783822738944548694968720565605000850423276391620213325565971194150069211973872010546401271667874034213324906472841937947405862754233211545534978413386941283493342214808002231794199393905147415144444060186078903666979605686902428233622975853694628583350480749481221982341463293186745074602413873486206033922813707228675387168855574636279523599304745365859507977040781673069355801218668776279491430705273095777459985753255148113846152623753784761720200414763067118052050675386426857614144257139710497042948743598198621964588069291653159305681093735448422927784821443005461471957341911356251612964875122486320526653197676065216070004333978511453224483267948401373583075862756801697688892280983019436685307884553243645551007045697019138990998249278431358845462378158900529463620533592140393392683904458083526143028043954235199308214338893796159601225874258691785573640288468468183790722619469840297687957627075543201710000187042728602188008297962977930083825669225461956300144791112987604771543064058698937076211485381126945959004705651480512489142327746682706163012872411706195450679376568492613109805959905035888911700443394711297484271671873371626323245772818938299090079163031892900343160150407460830047639338944727969463232734424221683277188003908717457257315175606387009551046397851059976791495391434085701282214711046121504155059553808932315027650753226599363872839865960854764344595167454301708482778353022994401596843880948172124990826349474955671582204083600630079956560386034543685825939089277736975732516996135727242697733880089079008929529470702075246032038088359832727765099580085985977161481316739676706593841304396576099293989597879489118900218037749650520977262371640104987174777832319822764121179910141803029769513878769654222177023292620257838292551005747443700040364200762842871772564853585635234548294158523633522682113758010136864036292778963398970427358259272431042047847157988561098232376659049286798672242827956618457943057177024902011984194723614570137440146794542777599943761503207499152537373306283167245337677084422834995421322546419996575801220181055229157197064189877721065360391925552377579138811309573863516270021250742920347789141970883861375597069819998618521171091008921631649934453113178834306073962118195585330187081953955993672733136196167617481595938291452555986458928021168056323580002751189054770422029878597784273159764933123199181357825054169076897145789763042038208484117781101719921443145408818363481208140480281310763636384909840404555862758492898581609042253261681558145193576428558007954455014170322151696450419043325079874627454956299295749006579656325727552041827575435669184151871437742311168437455527898480312910447698369145747661190870753455196745067638512002709137866778007742051792677441818360338065851926027636196467022671995126094313784903007555275299001432115634792184099210500618383271055072614795179763195600857458364849530791022843528777231959312016204808132514537742669567966753279440904040513933855872248480356321838559695235475658722971821435564608755110193006109510658253718950646387718895947104681622631949333712671530443320693300580599510362290615804618134545840658137699472695278665939120607947474256596482378201070664929825093192978656832390587220031965449165010776235794964218520704670063914867643299408006860134108199334559135411292607741382792230769078875919726718096697257405613296738537440397242324335634262109375681031259874815349146084051045360431579380510188215277353539017650660522142813651246265451295261420167209323408178289740206675023408647933699398235283299717761477233508566935319052783022518242913651324134361129117073913921520451951614531111046434697326494020250687014515411541965775551313455389249806189967139540175334457167284291110438232231189529643737454061248992296809537632986895861910256805492115232468807122752585065185495087060742148048908313527635909421379990550809727665450700844033426695551808291647618041519360776059794075724695280422860417653518608547080163131511168704198370121568660108615376678695904144497406741069063965807721981454950911435751612126362714518441804833821952938836417516034952140890639745921879395876867856035639242609376788124866792908866779405114981286518405695049607588609498180657053514334363019589428867557808080497264782972764219616808465430123184355838166441528342706337580602947972872267561133049195062013867490465648361301751621764425920556557127951970240105108486829252817544433928207118773936887944055301968777080236310605371528348996079214974688112528892394808697982795473706936001171501356801857944162397205482840578375604804702669210047854796815982227116627159141383697277057077787291032024178475836323406776247842920689979792725783135799283289662889615084635681908493974016792566487805328386384728985456783978556925187654176473840429579808803582993911791876431463206818567529723537414590691161651679555036073174417248620271775643762207978417264961497437028192085871795495714189661820756827202325851636898818852155976244314438601090545470193815052802201399179019452461618268077125262423664374790982374228043346490948372411524761330197202989677891645770779865859698894917787801063694674044738566471249110351009719727059726776902334381360878145607202976979792835094618142187500593647581767317333843229532228466677928996697278587353956832904191151100110429019370521753080745730497573766179129545157190457353250292727542306921167424855907287545038811928924530851715697430661515343243874479755882503647864562378310732247568397527235389742262194369074339769789713028578843677999546068296878205974814175138126186359754084414221219772344939543714747809375523283456116492882182938576911604314257738533073153660084497819710596431632202027614630476512395215869202533784424359738681758996691059720778528936479915426484502927616202719050214103714956448336679858548845767028566074226994372557444812998408240333423141687842454488884738057711714894532727809030963033558842881263811817282837835988805950902165173191917190942760818923411513980574704115726343375376095799368819392484812582965566091554026159795193819760642915348784724896425488746356304490617467117865215615783382187934090472214106767409791652526961042995579702547085968188271034048588279835021121136671955138004392619247164870706888755591039644143898339813087575626113772613337920779666318267722127657759945903386284102615119391255875753238664058100298485536594218824112207641246750128912325409654564859347267933776044018252595097572646663020042464210153551111046774085719188254309775150176914321408668773287993070962803162882917703385626095799114273711030497784278554588066815150234739583253162784684706837197577278697305357864007450851860826953676014424084972717978095110846292813887001346136265777384934644856763145176062067161989643729559049322173414261992815128165221683063622831351860838935102125204717474859007503009928096662630228394802582902548355422652336843230861844449210751988431875200610080077031097695145002770777418456746213520948180576908746172685847162319683937540605648609454548304325261318172566096859670070785862919322406750496195343928490216166245209273852955060773683728837771055731825908506716423190968665015172716307839293981858272957448791057532835680912268537399227681863968131912618713743182629657236154549053578747357107836823027306276543327931941784631340328850320989769151644971731346956182329088340830313292438604535524602743365703249909869663957597318453557884062122568326234310676456479537975535746841884955657538728735221532060387560659292150674926453819265177190776601459574217069940042444751362919604885228373295738176468716486669991929702979915370678228332747456013713954390179021706227224415646132505876495623445531708585020691070782901371341573854792376313559352791590623179426024083240121671685127712156135829013915174023042632380488101564899034516045371000692444360962825930472511536493857171313809435154664843954835882034099348896636368673814299114036933521030052325187383760018552853017228223529764325802311167830054808034894464771798128082097064901009117951695738994418648765208089582881170030898150479992031945137360528757811876536328281574234985179720495237069201743236403356302197791083327780187417022787942854872073029773895113644509505225644281201303084336433214088218492931305379317142561038778799822245176525054049152622720679413257317597824178187617497026843544517291596394918832547359268091114058157897352668121867112454918569852426539698382885590327973001502668063237292059590714696339783520581993737285561874326531490902901000300080179985235630173325547256029838825631789121712116413994445802601158200887449282579189382976308586916664038527119605940982723709849353678333444727295929508505826440795107044822232540716485962855876280632983333669346833774072337914199725806920069997976901161893218031980260830635122513875534405307593080866447408162172972599719916266562792484517680417206383058493918112725704857919132974877602378122664613485297121178435920505391241729639974103752447559967660246796145941539941042940698987010255027319299039717246784381560126852838368220905717768283035081600932137925293436858906911610197692075075401643357576801596202656301093436745446369716007350174261196491056217269629804578945339777345468620282780585431160426866130890340197578255565914739349699738336807805151662548187010606813805909028110836149714293763384234738534722264669935488327406511548261204338180529018180064062349522937756256988672101641011232938902310659932697984762695469856732313331951499851656731041082935818279396188053403313769730453657867972088900099125664788197641790449919883545540646970473765387818959767738547385143572657972198136612593081060657918896440327663334789239483957754982624565399219621034639611366426704710535014595840658218511668690209402405089080291479190575732989690946883532907812207816242440726087801483167038317635562173011079084578830031144490293348044067556279142246004952418260902472112925633725535776702127929371659927614903799978320352986486298012568770311316276849906718520965304920284631442854425553089799783155944958130003040016079963329876130985219398774575265611234557124012425627823828526856468860235004951407312658309595761608748989703113118486832958536687019449854179046241486253015822308581723867691095500837266917943331446764894485991669063993725015322109152448324642009835097668743194026261305681104599438194788448481198322470067487423443113690213160251363138308578802146743722572295469102407509138164177144637215897095953815558178712918256715381504263106496070283455738951032611016088397399026494403853780641119516930889569308196011219579564208334032010229784055057714400702922425690780225516958130835404671762538314884387048324910868061403452228960494133875370306863780504772856296073487925552147917690040363818561080437388384537842105879278341339694891488186461443755570635691983567875679599351275749089635036682865160783988441994848609160191621449726981878967405870513940020068505610752876067071804182078352460994504537373940050100445033304207785740505088603003702419937182650307449597101986095752988885138900673016897085654095202350818171765379460333043743572348752519851234715529298198608106596460587622511701519326827297240286121119921617961454539275296903031754949030305817799851833809894712928676423023779440866148843995070540931202981412183745891273000197905997303629147810489392318684621661572970510798621556280481902121666704162984553910882721650571481094053057513724366372308181539213438393496313390411297076728663617468482679345850850109872064827500719591008939562873606053985457261294657651118339126237047927768520586824223581054077852702622585624470914137771323104500705650033140075844416504452416791441465656217682427905116101609788627521571813792130912772485409770442791621839277272804625686520193606886395951802351354046613422239738175914748436585401287689798386344863170599603570800763527098246391651202568012245780883093589900471726138879090547923075182869257743069599607557959912953943405368184781805791656166384624638167626093728137756350990225267792780169666214140210221348247199568308644241593286864529193910126192638549153080208774468805714038211165128544560907475481971115300343610812265481865876904078292983878103472710860618456050882115745200367960335006799304764200244359206026244917863030086963720381063740013592573787023960339664954805708116224345032260323239484895742141647386212558441909593417404239534233004959677846864383136224831163327692950074248162878507035102563227472505763959184356782659555216497803760855361130199870924622211827278758371583777033363460128903634227820547810589995598864721305220390266030544798918098668712340891807228397433193090081173418763886268647434854580592352101845027153893311971166598510290826655171334594157158149902311224110937382651533135211171656810273369913941570525903584390797640505742065359432821240532818030196717950001041667011468465314594309889951091440765269888056729200850780599753132602780985177070069613283641882846160302141346067591556057941141106744251917020037106655786000533965607706733817075134410036807294938291457824591215647851909524137096358510713003612686466606323261177754770040116126325800820701700737347542071980599449901999454592336673202252927083881129100540852359148397930350711570233601546545451888785277522415523637587860504449387717469080214255196715508384949534598113670073513768511503634533520431791651836120187524541832898887279155494868625380373997374350935597231053506544284024615165007106829735302574025719501065252681861736400469979594376038270396866196741893162197840552022732504643603266682078390357331364559364764096338890881355509252351071160484679796497178972997457727796876443304534595224263621923195992624369762546063636353047918164466890293047225855477597126666848110851224790751958230704855077350110004755883583464367001776391373353255199984953632054737207597278377468195191663577823940993739833777878092977833980991718140903506419599431755956329197830378068805365840617234666824618212455377937282951401428401536546262054420597576857973057524942444854534263383613495688589576783521537924216721223236516954237496256323607119368853046582563376654066829041176978030273818510838191622520910846800551920276690273583539070802714667154299223936365231000265312501338671857662554109967837115993118641522300688817668485552373023865416322353869126987024649314048206189452825818574194445833231882766460324080685992382223779162430382152955699834089770353502253403047202034958606043731919406719720413980727260410221129972852345515529021842812399023127303510898180808516542872145149310296157768581899049602248529226687166930232463629423914892252438394282449465186730128064739930507180251811088697076095707431172957647629180851507126624291028298329630573475552315781874948808226016165761968684579284390764859798750057765190683688341092822222462164487969129263156977551989605082968738282988459378749786627104968196736128857319985215800734462022777369301658887099189202122327982524375654346918676156077983708097176495328406205217514734077414224440217451108475028253449891944543173982542152504330695107197574673677332095157834578126040816191867264394305553474750614884795615016199237933147334328918236591442716037555471856573281204359151484756741944008939096795356642296536324986501452572601382848458210192331832701792314594535105941425902813301643094375891420021716172398751693319477268664317609147759570705087852290380153005528259608876991557252890967522766861728611446797559776583877414740490818358780859636758407773574875930062406635985840419138569908975735882159945870620976265600152816916498587845668686346333804931692604537267894609526295478364690811874914347941830910493234390729635887488035279653963618541287039824242778694529382386896601556274858717478151591650324683780103287363449615046359331334445131854835944952187672441564126341436992788385190730593854424668407583911229114464375619258133575552721947256148964270581932220118733163177365216813927515073491237590400916416827017322498356219413903202248103138534397348370910572190357041507607509307075183519201965313780465833841989808935315770997958415807890433680084592786894148915985355486822968181718229501123804790378645047413734366603251864169305209233452384345112103868083551659063428974474552022609174425103113723265541823979077730478317467649347010765317429249750015448491247483985146773166800460173738706562185282204730380259235522990453425385668575323417876847303889725171390908779580861274246745693246764250599288166083974945573968844266539342792960477297900025682331744331222339838687754131603285733816168079535833792790257218133704800436854960690905364782992461785014866021096568369822987769780695116909264223134812050042907481590673331750077962189320656592998536877134124814309444946774963392787120474954208911651897543973199609334640658682186650522775185927445673920397193029816394393846290969589889192058243933753969676622171021650879218599970190546825931867063512590611616890640061775063550948463687240264821997179611915507904028630824721085169235660162798412868281876591051953156298422012138003740284532994425292187279904666723038285886023103220343015455055734643116401710253720332089040072081161666038347044196121746346241709708322941555005213791157557822459426842167976444877702395154481651807205338153191494025134663122535604563641205241544463389117473561188543289283483262765179880594237504408509467062529405183945656003523757781660367836133465084843979423674755013700620456458060668623665275340996175421269968968761493593186343149310297336679314856088816450890455554580018941781936199590369181378907103490740016191150938079166657613880697884380514644234135287356407149253406249412163440112657529626414025290876979184743072785208991629440393949423195285968806725349441431875637750936622161571582189044772804530056658444109105480778073877382740457742149138125290316562885901158122453506145639942910117941349261958723080086374926382411056862513803501566965586114333014290280400809399161831002741310110336170666501854939319464331754824015173406879154211871125926813345114286597817929519677042034990213092088737832457047476620820048138201180370694598479443342026431049907496924396254446076728671541012942861893716088812916183716896907253601194125396821111908733163504933517197477414346843557302366868300628244204852066109998663361583340912943554244483407878095773447595982147478328035257521224753305650351616763700315966344870184369914906823787162692936364023278287034807484772214118441163369199691189586228488189284159902577852827505160059189179272210111219374241534419016320166218661368447890816303504358270095282328447762404420481059603584611015277884553774571308802470193221963328061285904813489609735699173523300260080647589203766113888850868319226157693318440671625982930977975589435516556111726423280855016510672026708287884704089208163923076594071478717152330191372333141115524933720451969198965417373793012367473095111952321072446914370710373946506190981260800925859599934748232108453684557359017664792119325726824864157002060379837284315333646826771024915593906712400653773318783495774893538238120910477109885515299523648101203036627579655379814653837037180537713438639940265345511354967097070313888793487055107791666779192773883610453678417255155697417159689314324630742912603039017018475939847976002571995926130794927939556721135283948909511361697961912558439320037074891514382582116824238332966681923080390245173987816362922670727549819990738961870577739607440808602933188249120750355170466972861441022536436969661047733575562587652403692236721805644760994668251000407987386840928158485233470862705724321137009936416796681380813325654782643649322613076034025097401890205946438120833642532616914539989818191181397440220528799052224433602213155858001738531705830482387184870130060436020496514909670717647191814050715931656580283513996525039421769794242745953214329539485712157179681041616444206996133118732385095085209440946353132800745228559581164428250318729166002184320823263054669369437029972600322089539150709582434906895216097811135739320332569608325657638850230086392945987004515637706867354851314290182355928348523828829803242470248857950998702520753148604178121655302754132901131128219215815869478092428639233340589036219832462812553566617989969756270125990612650356391352149192668367277586593123563520811458160573682187869915373523800233956783462186245280188275290497302202914098947507793202174866709390356868947451032883147154428680097548480074964907734424347527406209380581670873932576348691307909453369199907124223304902984405241537443692438124108077702140957045117516012669073077271171248374952782916455000426588954556784135096942064757801703261799473108803357096122334426926940686472685997030033789014715945491496085820958230455751297082052476320624593663150405183195368438405658927309473044102950533980442448753530336719723417427240303470478228438258925853844520763596176714097413581375419516098536404716245387665198113264713747363415086544419119802750831557738661946966049295015344129899908773201865082436146626924541593386184289373001904596374495541021313027522197978825380368704868961979743634089461768359509979351532186493864285589812106837895965167404494977989590740323170195936501671249279351595804516001034272391842756407302129713019288294809938396416707370346274838557565382844592291473014227948331198466390194934739317546996065998024330301979022226947705606345814051557130345303510141682786554499587300694842036969914754194092734528613740208416880027938834563938699180360541998305857260998525280677094014020498167162713640986851409112979944594685798198248061968020038201062563650280198795926938500177605416636335842209954488899325266178745216732828828084084431551689299097567823476451183257465026001365811768004976226619588436015315216764172443417531692066097476109877068469149627449568971013007200074743419177933909064707412578694728145595181381010091116990382589739898066459155779779431841733714147682878992011562398569697833085186979851111392147478108513002306742046904558197067534607019707322848727649066996940563464799127545505117176252437312751273729534761036750794403547933583215685669843710749174571669556706454650639044218086301111500785371946776542834815109504025908621230327025967543123149695968498796542972357766074051732188906295860857845603283965702848701128301999486385512746037111103668473403246376005998707299362867471739733898900898831439332832989355234508294163278657006461245925397965138048734870180216649079231350640890646505616803988527936536072369684992564882603257725924059990646128765687615981156138615054228433944710715821477851206469538126517260157931744693253300858535306923848036652220342398861873348968802897444246784735060007990899523692897650355762744666892451330622092020826736181675251789340720231089725320304855469334985409515412504526516802843089550629209890689367332472197005949130419704645725312363545937908839198237143277633746120093764756923888520062499751975116100590507077238792576875611507786791805938210825296362357528659669089600509220827047783023649480301191630487580988564890220073297289507128655320396083177317367653908967388454390917563648918883241906716495092458442498926508166411731375769604368190715320542760516905810000503293091502640115168693678435404475777822780942124652978964367126445226787115160016403080277539430757998566759703395647984135461696714733799704725317122988859804783844098840254609869454728082872608814775859110233217274857351947969395773121709697462448573931860245645362553911563536890326281725666650213026648852255054006638872098744254518256135103799521807867120383213518147306317554611995206717097916968674878804771661485875448196874528948148126017275210478701198567080218480580314213303657768780780318587728448377830508768210501274091260983640613976728851780151998065352346010470092567885064836460563885351576218614033931911867703473103884998504707602324675269143809794300771732717337597615963483327038584884482029158659756426327623064992532249447771616101729047497110011388652775800534958364649098560951024027635118708524228191977238584586290471731619627264830265871938364047965082006747938689845128528511338445833179048067576943410172094610026218901997434616160398220073987566227710622638787247198729099367247538727742078355949994000336989456737161347005667697545176315171972238979602400501974836076076226232837488758232795313703241664186673083165617621721548660177547953840331261988925846908165813098553537841040286466289998524650481593320868780525207626130016971816852477558126387844632824566363295427537332107262914556584871785728185416124448843478414425349440454746354643571313428973502190690224192873815383488605530814251259173609031619339296366121645926191603702475021077837153162719119072957478993832284206412789738314781580050480727053315831967630405381873363006264839501681235132135125858451112412957637747544340925450855236922949342963429135687961177134274066895430739025061182390499415989709967346368811651504120063247705875794979681560431349501533579969787040573209325566345855660630074205211434409366984476620262611105075376504753799686814947352476606652172275606431679117704057787577925470395389528801173756153121284248289540403398294818749374080907281729167145764651142914964509772712861931713662617761154637977661458355095660548316879201712090044853741490727755067338384295556297176530647015060297122347198546263105301030778205642917794470107477682716466328933692371658149015776711903625723898705354796616540801522586615503139117727004463740006287919932473215314561914175936788135782164184869132365699718417861564427536860834966517635719659202942753717847432526140038975762715400834488783883564414062693807682559210747084318605199316792067011369352635319350812596462914445108901929946649286714971853615444869295371556105143865152493403839868327257636205997553837396428105073829116030324306627855103842679631185771122548305902385739999422606769085730718641800030436248975006052249344799611804678781153674196714432193435900210675400432028185045774714498539233876816840716115087168821923704877925801828734163658842278725423450983414257145536783131754200179128284123501593777797737702817497310966826555405797173108575309494521146299800315608585558144001730916347951766404256537082239282683250242500989976043066076375883860659768036196167774883217229736500164018470052639271138535314113556822711248141747118090077807183740170227053977991062791162374256169567869815490674652647617116335240332542805804995558040047101500432644360905609519379679763497743260309836999346701454000910097041728148195738599941421331111540987095408797641613648360344428932784056309541913061640728390917943721307574624930343260898214184583199138144044317912948536707595506645274126412380473613819115756925203112043537408145630647113489562613430297094328242029463278443489493939223455201539834417384421342338911325512045042123674248240708437645486961862751917546364322808414917918235590898235578542752325495436703777244496442930002107031101115548468664781302948007214443531665450339207111773464455378176421034618438890569565612891998793212597363379858646616904580705709333001774605624803853530872474593718415046914803724284439867758051413568041718777135898732220946473449499826264733584667040607043178226561271017438968746742536759787084467360278581079839545247388602839564536443888617125778031330175176493367640663380868750150789253422128728935359915823724386721333521127099189685612976361620880983318092371223199033603727383918544472413848622661630369976376908589994457025018805368702923575063353246598652094215281001264971478454059211363641372227243210188429452993247405039064761995720397145075465972938343529529995512662321161916167429174316237398363453941056017749105199436323223861459347645060754743521312265671314469798193014904975149021203623006083257168541268414816192568079955143367945973173117622346086946600978637570845346517384102747225840397854933564279907953661822944899637134852082525307255013280646636258433878216587976477743877070794128544042618812922054043078855998835237925043926872982416486737664234543294587898408386218484343280393151968096453732536892936311364174069325358947384380284517288019184684565355920079728088559141722077987736320528584007235364682296651859196897960554746896416167726876709385695087053224363861422998512665962619339404136663358404395671294397126591875552407148717568743359196733861969808744431860832537813118611392633268841283245430479802693165389339423343512801707714446666776120672260864533093792936041287263870855288123003208715426532915438513133848673512117707705853766071083628908185984378305733106520830981175408678061601606575432942832376916931379717428834889021233748415510974176249990711871649111478574788666881237460448267555223761174600217799972406401669932942779348931776044360567417380078328824395074247887551021528737896912669130762651468065687544607572087017726069321495209513830795688886643777143828640553459073742513463355563825016888877093408569473899040045441612571300901184308778473538262187662135267369678427288628385697955113884580433800336154674230335873117367432554492366686889965396079420523541417561492659030751587795695535612218897272349220610901120608673914373663034292434933084681628855163465103582039065748287182506492743071840169363947931748893761260497161353143169781600207493117367515527960666251328493670745682178211288392679640516969256597060556262004817333246396953807554288341722618812185744342733474638060626585948160185318644029991063684129300190037937963691009431319273960560586816156353809156171644664659898327132313722580661920955460913843073604372065522823649261252231163036116142718947789454091477269318915874243797127534707716965902365667720050628676845171182446921978666050336378705632280455604515985150336202611624703667912164617954626503250565000838903440421057632736128016842502489421144645884472116232511157462759077705158414984124350373976093445404619881539074194746826701990566601913105751334733445904498192923893372008866779473244677652830074782553800547134769162351803663939147973248457230954306773780279250619003112259178381344551779970307881486335917631032284525049264744503011864493966297703471038448007274873484654156838009704731287757981193795194691189429639681635492898584542712204846175592939734009006251520723115128739948467969975674442572999517455041957091087626696164812999748500716405548037352924184385045043308705372438338681240290645087664905000978543913621119240816898868493526226254804820347365282925284811460053301397294001601556188882038275385041582576073714885250236167623127523086168672581847937368564010533316028500185537588608937929403633472502103150052111798439026388944224721211701638425090069130059966560303811202748481344829752751159217044688856705756968818160451802114157161012202381869924536808132698240673681335110414507073392921933959008917282213489003707265439938570196123769789636243511875306016206869740802447942312935937811712924590419645146500523261764050938762154829248545582782106860813227389409260188175469763981855991953461335742114300721137991444534212612549541768102206744818803635208960831911636676230575687938908647317686468692068266478523147120148989792799011262391995562366976857508979235499303507216524011040354729319382644205544701966453418929942598816534746448153649585855846629735536837910066191453277229521132549427709779494179803007644008467903447340492198852499604231213997076027332431202843555600867211321361166155715843483643421532662248369677771295574072320127714039712447414796104382603570513766707306529166441242041152993816551036998590625307595005869406945789501983064500590395864776616376297284606110919601189243266975135724995817710673346856417873918321719740497384462239058045938068634697435576017534404915702413175298720457696076011502397069328028570143274506712652533783729859066001432899279837133211412878208114465718119733063994193249874552624632606112930150506516011832225530752777394248425405420217220659950011385339208219852812449030213239493682000640374547529300065546705958558007215582051246431343999243611107659797458269425027108026118572920879435795809274603107425088008421671935325848938447876718780365541894645870549637763451692734310535632418102376554261125650973615987866554920661281874422587928479668054430412174817924943512683347112193967904023433395307957473580733061557008536189504538754580836635903360236692444366879531774944678218317761964882561138500856054610194699336466809377837533864035722738943596520868022345651184519411280565938244054267394287362612709522101736763119133845324401228149035454474255333845124603226444684285526956462066513555507936954323037132891715491198118746041706982054407364520665999554523853031180311232929890128837326886258001985670119678530592980490370943009936033963636068978811867962672843947326030985588251691898292796753239079529558780154853834601775128773336044124250562900173327276114337880455160984059798805584796417830582592947784091342339511961787341178965703443663764704904835561279787897012824851614414640117370711855631622585231119492570928405099228989400513004840823577510323664986931995402360515214026542761509625135766392249868220064412444709211564107029007296047267002677231186686123934796808975442695532778571940438640665616723128775321897219654262911732729742503565363299845353206788169233464893473844419511985819881482822917815131455144290698998417558381295599454719630755375548560327429258246045067900628363963103237545217513399670481555634771956185621271348042839269738026118866765377197647514619886239589781822244551049717560059793947000118372108673423939076252565397843685616459134933396787701495001390531410816715491387684345802741044011471150790335641695028238084973034556870711543838614801158548736117012011519076366791722410574095106954089070780523879865890673760813886227499111907346197843956848548205531719743370776159944788790610594164372220190317812058018538853828411229621081636573583465213633277673505749396800216045869681280961375880769503922210173367848165991293929733176006239841977007126063328721833002380562482318634954459305126323064537592703575768097884359689308421637103717990810727230380099676231369299854968427463529339835483329622445314160907058293676249938978224746874348324226193006836929003110225915886107952263490794792054757012024818848797614201674111583466475988775934589300402052485163535011605402979003406971072651483381958547484690309783836747267930041621766210395253776715148613328809712877310080718356098880586086281691865561532011833256951533026912002642416848165530318645431985374008442851734358570035110121687085508618806737465409744194714174858750734018121592249777222524255796646287366660053457715088427080727708067761862771630303212590436830314406714784387481653966827577243134439282086638547515243103478359405634398457992196642964718290416192511883969551466197310410366410726184189087233853372810907463016796043400971581616604564158324143255728412899154705172842157474487380293266959304762207629993655694770785585377391422969716035693670124713280098198206952277818401356691345749125415354498854785749374735965322487252256251375529750208519611696236595016988188440076739628383480330036329119076283996364811619038575959576459110947028952103245209936669249643951744716108929823370130815256539491760773055276017702499896696466984380106470655201388938171590840835769888894710908645026960891809199336008603222664494594997386689188201581666029811369660843600904270206224594175301525119318197450789181911274876415140788116081217147467007680748996012040317852210095599081304564745558545061191926837085782000079667951980462421934906912872099629684172200909112613144044613816570432457654519988339314657940508396379834382797810466830729795913139706169171644775760941573713826937209044283031424986263754060145726813185992699742171341299796583312681799470534590225608841010588309799575494835262387253386384667470309828784571348807785639519721363181408036665704056208174683458189124140049379401330818994706306873491107482784754508480639624760865828892923220882072364214429972504882934338417553690592773765289778266816135936421998395826353838862793585564944322107577453355016282631325278383204779099475796627911718909801443392441833463303119628432184650087190606053967694029574424934194942058266679293356076945687481358950371102068076102817092241773967503869726903896257540257196519962100038433933501121828255647371912179666418397714767025435043180888679750773142314963040473132673624611158976120165842506310846732641983880173995634753629422708871076204103301675354286082380631940350992019621466597183859871983471560244101010752680935982787529887037209164007651880448657630536488687300720898470211545463943025800581917545081352348202682205584141046426101796368411991050884443051571893597014582076604105419532544059618756395661103840693702763905870594245654329466621903753723558431600245009933945467064897438625873538076682518777433840072395915674837842624017231982000877625813326812264343069342522792116795198844514663277993797619034650697840359099063351560386468989151702113855528053383962806275048909155661544025186850324855347418940710010975334307338922965718959704041102876082473049276943656691008622077122966259264471972436368336037349709763404365674624427725509184702036097126695071309898848182066771860003509704681041885271349006670331901433612279028344554796376050460492759569485015765268494191579151977944183547885701507233751606517582098031654241232525348249319483140908079789094126080341549646151913401680441505984383587811462418278829285061107411772568391444684203524361296679807377591538638171864330429794864705448995123693740228913045775040774107828505087882698862974777389044508657020500427556142646705223337263958278731714014680540245029473586374856432244473993194227361027177235243923700732407537043487142198791979554838987077440414558777262891591283151027843107339855682200656064107950174336377344531231329293548501952857666975086442838975575405112211935972753874779423698578418721984884938239793730929775755700832847562371682161290990586483228291987229503603646846798392690214435211183401168853185642167174115832634800340777322950745300577901046468891850118092606831262565609099441464213520054440476418154062173211677119120990514018605607574563023620966407643774276233796134437870917470921023864758059490210423669137263452757591362703745889152427393928695835579852933212441911261181933389203725112360733660409159653249858243487483535579889166925902570442531953419728204313005224093441336464736261017727985479502849639158791040721603942518992610428159020505315874560574120856126070505147132003109432731113614301614599309356772519568721125731591626273567682377627704217552767026362978957512974885767532640264572340209054362475736669722539595030158257858584598375723581111688262941974996097640488156047200100358476268457464764617167504420455279855022511307957725965800892611319124377090546780374096901153898834865869771495407245974911756691015057392796412781208618410290061426419235628120441229528222706052629906118305554458043002168602138768222266644269241817899649008328226933305935918851051777598336012836254030618964804536922655751853124176257063639273296088950032047447474724298699748370149574967673375177575651573718893079537913078155184434547063258538953667247604575193998322986001706975466167751382462872646557378817857172652423995950291191862474695803963376777116439200858188416568732708326436597121884100024534101042696964965893648780702471614549469641181030918047765405009431019263037964514377180534558437303245301052797698243741071167687833110283767993249699526252074746728935319332294480497861682349645453392997011716472392512784947329875265663111960924942183975042659623270081096874896483774954807706038411411234366082291403001901689977604474261922340636565273226856006843981689069621419896025425471164725053967013479716634787985904774487667033663271650373532963455670643296489009414208074576483702961487091139334519917638079229041464227104698028759643358527369909678664666599933106067515033815529288740670356971888568716263456669717089653009769633442986264792539339576573472009332356835546278081264982373651415397696014792318672867914946200307148374656808612532470514259273362790821910224462926311388259940261652014241468613701243421803159497538344077563695744209536965716847752983237486092400832762403955851466058360749705953037262196724735056743661142631572106967410024807745163989826772615842673348687934519174018329692478624928637562920868936102235659577131246746208121243819613547966516837039868599211648590988072331591191128612257580333840220690340908701590230033903803455645493793458266633523940485121180160243522910245973629216432907165039626949229020006970738476498936615891741088835508315492095017119843690109432474394772265622707953548132089996806224339908912628422222053817105312127776213897509153223273319453782381910160206279467077703127746139120315734710388668948144397232934836073451462547883140217667542749750089396609138288452166617154809825373006662591569531084901729771232178614198821079313686801613167286474555040037864194834982673490118252526012060642390994483351338246140004423047420441958799514562681517973440386440938987899405498844444833459131516594360424647463755165072970973711638399709800837023526934369595422985272569196864287187547854787432524747436084394350882647533062686858687965437534181322681990613632760401971677700829163339412314799165422036089298822746937922160922507438600108544044356734514957825281103278042997676670209350318525658328512777282968497124322275906094371101462285241022986577459852976216318297672083019439255538410973804132279657176296964845195373779591758001799046012322825109427654956245863147362445489521299744925556362790881460303082317346637200909876725128195948292125323831596593318494963495187089104852304504833934662448006934329043361743510280036083407236912022033662220315977469021187431698208601509849761021935592734238245460764163282626838622493590702901490545931232071698743623059082039994553365846855966849499586106753417714147386113701708430138173449312451988440299914927312109424797354514427244793024939865345839382368221847806309629634893509238583454070176077643212105952896841421330938547753463761779606131613358139095066676295551319810912362424585095239501548422841246122151093716610170980095780447498766938036159435826759533234716553177181739571787522032544415768466899501509124201546135396262353482389469418602222423870093025053866999957219008589771255426947021202372797892505790823461588741046601904265306728969262462753144192176411533491367377927414781607211192586043493921181957850373487483721433427017944478586188240682097736967375729778527715379883260894040760548667473012643552810701345026214489641771353373653147256885333058104124968968777886016360152312065183997106914620230068041009998340269229996188952640978996210663891838212447770033078814469922911500483479073979212569798191579794133892063227959674166360102656752199207674704697179980944407133797434769348091507226329249376564752584103227536988386975944789375525395191013240381974347738291808065529135463676603315577071869800039314053868272333962642763350981206075956869204942628704053119597439603353043449993602805440347048318724785699829208670476945411028104302097019112608166421878153346417350124572085270490228063385097040233030223067348009275848293281304866427543495691288101396393708219885897512645913732449262811032160041667579306714661487082286233088841408095079822222802024709753853917178662936085263395843501969623654057835296836757954151074554615431431042905146876462642085737570818876495566828325775865807434764193831865138836735159592385830252598541121314471527863158626226545386127387793478676071507976113032344866613152470283191149844383230961566973873078319094583519280394595738202731048528221888498790633521272844304507109888104199933538473019949204316861023045864084814008497889405517733295749077840719437417069680762718665707731121993871473056729320471600143144929562058289981741322018862955702400299094016057403330054707692939470523941224488438555607334822309515432147094008480869959847378176132770203067656506721381356154312124734617316447806988914759720261495236058393071606144283546198489640913184945521084344269716661463000461574814179025049037610112107560556325955291497936216915998092058472796431478871043948874895088364374895076991359650444785239966235655491023449308210567147673956508094942871346786368648139602338251626380729057082170427622426376653325502784257675376734220336803503417324927640757610003840420384814914012190029448667876340421807416222797748590844623465147481460613926798901732958469595772274453686084960735628165336093475934965409002154112143911300785441766825835391037331817593730997758184856244119348463370471418421631901561782327521135739628851272933613686957862780256408541571487945936363093905901217433108065469005228199832410431977008026966672799510512763541220001145116218487664727263818208313470539723661892885747365126899356332454874376700588682664069456896563467769582122440065230139502610403979626960652052675470993037950341107073952702956600683920790494490543702680634200384978384922302997762967180900726105634036333297216731449492672449155259883055382487640206490204951448648405204284115724794644478319684828403473364290044719397075075232355454057149582854681278185246401965101896245034844475559788738194451029783520607774792526922068836078215711661833659866805416942780490082269172298432735832482009597902704912294319175257055509839360628259772941840487508778095917724273614546442431328686673451813443775317897626102954341931533381100623891888414114982141949686348839461657304845066595568918533995297488299662420150354866603607849558564450788336641783839146715723463302554909130143936768528736173210735922120519715026750333147635345849332273943565348666452467368022459348002597170882268143669236775695376716258530162162681498285819486856207600739622680841213175700558706415301583915638300287756639621846527139652692392298242155376858558498509225834183752961581716121131541554952035718496461681321772182498537319330025011495696873703740683792442338408572107939516868992622493745721229168138996325912089121648972275806463935548998494773133012935485732163182023202347249247951968179621177229280686647666561939132452539478917503711293868375723705211895809061077452218365014430539496914097349289167454426827383229867293879021330008665773803522146411081069565571324669411008380037260204569362051385781912817550834182238272389755578745163724322169860260391340371145922508832349846547083999404243308210376100192407006185228106613055795923327426897663015046293333069735854460481627168595276949250369414195889142779397597965348149013386541602618219622587660281236502654161097116623601193645014813541030966821156219308432621598038904290632100618594278509817016309776401534357611858903449928362493342588278082444760120839830427797229366526548033574645624965137888277749989633757356713288519527885286057637391981658495715656434160168701813761084065971453329537264508157837953254650112009650427646560543356398746114398629777419395177347737426400508643970644108792569302222202546913227427657481683602672166036158250089311071632033826070810242566168065369195411137553910754604822348368397230080632519789001823217094292766543217410095623917526672412236693288844910421665366554945439999524756062007525702088489200438222301108891045154405685434668835198555203499802789058403230294871011110601626951393847593735108793767559137362671192210673790568026756164238029759385106503123201566694864748723581784921022762142217200845426710490587917165642808830454902211961000842277212474858721195040206689659163673192828728630391664871873142623540462797997972942493507162306110384587061358946021865273937017521106361950218518357106486667393493377769948873880688650802135332419444437439393045364206752257484494062803509102353053768439813678675132215112808357767791222687642880601561987356812542204265773263991833711014361639416739029351902921445314585431266329835449685095359961387872386993422827251493098529669085074593823091240468128139749044838137199487818959863710495746634062067764381320059304825357042514287917002479607582438692934750941677410703762619850987353732877543886595448293096400723257705088159059197162488350188248479549821825291437699135345841199038939635555205465854815876060882107407808045961637965168680299100935671185214522985422800861577169928513290297280566734764828818372802479676904720386108166667847647443385553000152040482150556692638983827192230090387751208107428209932368653298900188997936627465085647810425637994072321356628425238279145631440396707150604219778477879074009449545134248765431384454082793087440952231834881215813082239247129337099426350574724094047364923216997332188795694200457244245671735511262045939732167342329914408566077662860151435742962662379625001595118651518385941802388491007263617579267421431392077510363861742836914898297031661499852069213840583046772253947667069270815476724976514804116423008186856791158112936231293281342631773747450192300681624217962687037057621480038007432986347846981526236936971052289978797292866954051212148404001868441872540293584340684301174165378127412450866378219382252662187016917360008991240221080174841729501117987286611721910244201367615573036482653747632283984924301914747089355736141240892804493709192338978394794141330231922306769703149253239646990980738333003350398457632209777279316620510844030049944592777341869911436883359154967648238086117136335903598405935768525857450752069336278259173323523757550742110387585959374303920403227600504011601576365434164153803869754817702672864718827111479228407716037444475708711343256121271260227517310008278823694074674282017573431414636238303057461621734790624340671323479219876256017017298864490915287183516941176567350676477114324135596268712189128769399428740751634431218018148070352342350283138784391727943473102459681090136203634627324288320823888305868366942669473269884425878381080186624288281517762128964215215062180733693173380341964864187704579201960595357580118400166147774090008122997302225612684849427606508954281351708569010273878805664704751535778317685934256182399940076879597740024006056685169963944700197595363969305425691520005223341899487454419839750869268334738105981448584242830231800862107734559804215479464114247515456799282347821919268280915016200330039292379476854341907419429118382281473334543871613960684540396751627752691005985475602216382388976380119376601112484970916163239994175145830216378785924006026987189660162792862166022298636103916233246191336063590734060737474658501854868950428594870005273922040248599927706739271238736793700828782287238504746870075998821626028352138612381201905391454304290548035121102590168439326891053284409294829806890045657850368186537835224306558935556437693894676844138625322959687378298417643635529671038423698754156258355307953365178195519190137262355895635702778936815200637979712634829622737588309473099743369636388313406177220852225361779793178707760615543516886908429880882470401884690248307696223152216847946292615907519878531938328449033026210482624052939155757286877019406430354550579813321071083122610138591225516676552597990664541104773115870382500213857403229131194642990214653939574547159259185535075596685802907944585273764146941846695880632580124780629973133751849044066542603568102142560882645696744462067241667737747687703209452626199435563546091566879157985800636340194009213831836014221206533503820075127770454831925351173893066024260513413974388645284225635065084639076385000890039917089630788884238205991629061448175668793348906615738344277810542863908699454191119892480934303809685895776412511236551872420196374176593998532410366720344246830624110224681330438452521249507544928997496187791469057299285137592100395639224550879951874283818467147669510821060983659603984474532551858457059439756236401897333778716472500437484753309837970535371948405189239389310350632346618147190627483481474732363912417187562541404137587651664884761088889780895314856059940701928168187209789935133042493029426935137795843873087585410938760225859691886879507240981057539532496015396951249622923790550898092012020086155250203885780724745647810268133382885613186943828603141044882585289849066317814341402130993018349650515379114635333381234113944256398089461263774591783175880665742944440739468493784481858122214669540066722560987496520233381212846019858646554825581500788231305973002111681442316899622961275171707124575782308821587732311138331695826667811513393307492337780424125130915604238941102936804526744037155259165055240733900191260729707564865337959132976868249134530917161683074943020913567391731147239043644762241660803919830894001069221038255022709449500686678446586172260104488580941333583930061406251878788138157967660160756616290698549510904097857477104657392884381858692086492964920577047950224655612718307951110273176536923965136070901059619566457049930868947132986695940394962982345150713948142103573385874227562162286509313422565595462494824992690602832960256887987833997707079073931654241180458929202389233571385021482997909879634180469649026023756396896150550844909944215091285916685469674117579464845795514668185783818727798690033818166144656378030514680239704753468192033673079902560355533077699110749984424988595266294044534868316950832401412730100099920804618571477480213496365824948967101646037722644765703753759771556020259923216290938159287133354580481549167827050822678534386628803437819444097073361232089237699439159632776156976217906749844834980373235767126732966152496911662640141961102891552771114013981008637992207093999279714592636399709824632178458180558556579294061566296388854881704538995757576340829660251103399231016030055093489838337705124741879772614272202211539047522401257161038348474948781548820888451796198498617873736352258530431237938273299830317274109830048183856198061390365774335942926121059262208616955267075894938686075955957481398146501330631225963687118181514189670378887051964940384249905267854511411531595271728477269075361643569178513769690169454890945797401455460494914291844506621399043196749452233563751934003227483216589217923250906198302141817483434213209733585078061546940297703532728003354245855327071772090021409801028088537053936648913245068646249559538333073544182417954140135278237103482430176766487605738276061343300937704064847232076554678387122873589136816802895170308479375280466107347215141042830605711562421160978708694123622331902901381616667765628779393149133711595115852839644258177472871320552762168174657334556631189079034733156039392079117264127566759600967582155519075878450616051199139628087992058437915298514973185596846756227942597017561771383957530876267382752759121167703018843420914780972109298335434816960267090972709325384045644253366458232442951048062341139210220428241534321428963460992095554048668189044268831759355964041580247473225706806971850500709723083104761544624941458507041895016600640788888436738370790117325327089626301302717499914814392217928017453480706263458364347585687549979083032972504188548719998410824058541737215215819221579916552776449756883780947914947823428124817067238228326402651400824267593546871646810330024294789124327992723575408705814212535818720377124612036416638350289901124331098150312813861874950908153079101945001870216959970746946268275786625033467028503830910038603008566602301437778268134522140903845366434608232218769496107757499368556656447256419807743589520005642147334945019253012802728172715872943576194481178963698850927757533109812634387828461547940972560990409110362695948988490241894788754310600902935115103610232683220751088941841198361827594883521126832663115292093690445886314014995361272597343791456631830489622568533776015795445412770664789491285129390035341166165731191990684308691780922472013817656374155344821852076406131069154179268655151595820813086748101413128314028593443160213968025281991701955516641915788406572241789700137295492938543899842636526562787703608885364418047812018437819325438366186472727495330804708588559797392108964404619420556164007641963300292878182770106149451657833322272045461897576305976859069147731628951627286884112455116118082465728241030625134251368498367903233993024199623922674858660237859097571193338478942583541874403688451545052997715861604654460790706297648314948223025833922254401126931040279352333248716894466280297458931332805665593252806557610258680789739707691112741048182480829027083060158326830718209050422914141368795275576681493885746561391104787877237241917659524614853600261932758921189688637323912527453354135340142199877410468812077681239859038531931629667339245536057033424059664555288574397150669881925967243332814636234587482336581974202302523276957876921133646924560745247004525551282172986968637242236759351488351522537824951078992868856116549571511859781650150381199005218028833805856209832535994408758097549365259957551175994234501023031365114716075686444574750418128901953112919723864870872244000671871104635421334373533967672233803133633890149833396882193437105383501134533351588339059492978552944316039418626617857298610633633385318938019078836866128982337702957932304639287414190577520494233168518333460914036136993298018197233824705200533089206776967649592744652814601432539092313633701913293495502724411394432752300009230195241316212927713219985720886544730228777786414089032086127500058739723694223776247885570217571719214463801232155056880666604929418181917008636705329516911550164148278513800735432549920876318347596134474681213283985275996248522109939770854002918975732907901665638251788921392481430915163612389195920534876300062931988613349017892092062342588620625935017661230583071480558244903948343633742529587062511253069712803304775922054391737958811462148190479385908805627242613522727632901814175085174704283911748551389090709254527658637983931223746641201081021651691344203820627935680053029220705886662364351624231351047171283282672751264868698230046624352765536207025120636351452680806036680905908020402391118819440532954380767325766373649122267471190260223516315976212619102700061878283010023795078100994928624711337029231306689950548872594628155886542599719565244117759252408704562147496429648875187777597857038934361484931055771997077233904552346683965552430976578586581500529678666974034741436097512466350007654416512264497879172091837837588155474291962364477554075708024981887536004603711642607876405278195068649971670038980467700726774722074053288348979694704969986462415733412450108077076245998356911039407615612232372116244659650285930249822402995830468198601296469987422410816536100698867215203711950982598059372927017271338258045578919116326636586534610282320645495296127947821340920141583911996939236107227907031126731403894157058650220343554694056773611711886218280216872569186966254512506048275560295196247180468607102016839015450205884835581013282664723104360741633704767169610889410915009202909668759814749604064898797687789396000494253908972626413346472130530526784691743071865987321175228258134172218195826175268833181304952542491418344434499683430896081622110098327003778218894830989852413963560964495676413387668222595963586126608185826708650737319794973997420161519795616555481670816556747591708274241921568709934216504448854005804224076490949489318213568373458649978498473192152425676991874410190442693685170965616048247280772878429476555658616752780795535020152940897691192013208789844302102747959891902987340199887886875470790479006052665747800977088636647830686685218287900009980398968898967238468550501605633724700598557735060784654095535626854917893522713035543270722216137535734239216255700147709339549530276728511057234634361142924380813657115508656075137758282838854730069265685908040571121805568195103675752786449230773874581618807947883633202989274178521227920214336944398505343748982147022352484530940643104580713070907700721721771027878447079393373527140515081953672898168631785499224569311977621917588660719315315992434067638340969057393488817089111743289713745529821398233678993999157127882717186326740712466092861224179762042609134564208764771937284650385735320849256455029117655795677603010095452899379820860408016086348545083552381409804772188634882598696060326559802135212082755900456004978948982578442207556424715972180178494441919853788662663336653159010972524755785539915719371524502105234314366394847168762681348073548865708433204499880175093628094681367104016448568661891961539050460957063356263490368551137126002911871681281392530678237956782229743017948207760369278809231032286245498489096734568047944389057318534459593276718130246491999221439880094695124150431632624056250222375329409163102102017897296068616971174474571464316564585496615020827529308228850188681960227574047843229654531970166883994714403285932746924070978477244669566743765739517432487776866232091922989837528908447063049037169925759219180177210702419194412260477839902124798708133863933306892132509516353254575899558637359597765337688447381291193999668594364241686463478163425490755313997194131957840389773427184621944746832123898314447471143061933750301826799779680791326951732483966413421425937238504056552118286645655975215269653431523956115031203189322020447032460346544778747566466175428387679862494841405857426861424059834783986331717099698620389612852811518876967121069485418227613605303632554754210359567026218165728997894627088380649778405052130926103444509102307131465473613983052585566680649592638778826231180823138510323910167661535451690159438342451850779678964365469904130954038261349425594399770882504727251315408055404895159498107384936105874364100154831800954297040826542232979567339701523642006707269053256973916870397396505185998643433058715000917197202836497537133268191296323985175762127989785171246525736419648101472594895760228472232403637696498198934307329157181822528959332067082483297848560586784974367949536280487256596340585992949588279548180273008336559044588163450975051946121330626785379448768250650410252018792023966804156991684456341294523153391996138884490330681249075061931917307598589847622561323643869545942956594871714917928717958706118389433437270797035432983691334728651513115023985461192272104588851426173054152284223262046709189979634582696310299094096432774809377580491158688358088981685738762621849036821307308630884358849158535199307411807547293001634517780382294495222989767837701340509665213811405882894015419535740591289636690901397124161229659001945182947782491900151911211875296879283492443233833396490646237245131372251880522117021981907968022654679893974725023575150453330919110250417324777031316568130855542794676117480813671798194556131661793194526218668568853174278233207504410228102449280901288930257077940186774331174533005328071474647744813733845133092400826735381885614969045084654616497132076498799014054521185182559893854937268071519642524124464397359096566709553206914859368781345490770604660869912681436981784093480034174080422620928654950213259798490404254869057185055067703723386650307579298726256303743917142829094366788335900135975280099780612180892871966915250271333883040127981510325704634284241813582842865383745820483580681432980370412108638290262710789480055445872825467617716892643296038663372713003168456827747668469714812052755857906876031423244076601887826368683982744543499834042593699490669926291980996539339470633079980833006078859859368744676333407542504568773178138329589050909221621079230154739119675849890123592273648223310014438261204741353302552371382787494595859319455155651288373572417436445567877571357409125298315309994958820551107826668762156228889059644700740391257433370400710779871089031882151848389051874612867078511472746098918983441097307538670476775391390990546889925859960041940998340867920190032637563192140425910950083779918395831844178880835896731174815833871419234318693820405323647479781410662471909422329634613123664419478695115805537316921680771532475696401267400838733178211662516551903582148122912772289024349783701757484879880577201370530768549588291676794984257594019155013508254018734099933726567741695746715552603645028561173979668447154273155578471908808608335368672514016698678440063791896365016014690795473408676988245727112016521698959521090106309709804988478142171168704752210499898590941161204903004588638614163750464104096427851335178505934202775765595898275461956134306489360296921636839284614551945096415059800683045032441639827509972070810656801030401046558681214986506957140794869133157952489695033475450937351951062112071812868609143072491090983944267351603364621837234810999696543339840551933197374948552892874804790103336318882709133046741439065806404612419352021362560259885620093674217260820753464262188078605852193599396805981214077254498836116664999030895775971389838931710478996458261245367603777280589185070778168614573588873392807653341076913593146363903135221124184895529545018216433877205938634490128606840362993651990073325254220359016154242451134884149032663754737821422868525803104451427069497458365416430228780682217805552604400922148238147580652713997051973888428960198489979245835487543437305045146116953890334602287487133016438103019911759190834418947779137749004930880789400267010315981420141404955554576128392751258203605115612598140662716706651206432134080519604161770298278054237198229929861747318722106427261167472932364660451185307886592782284313664533058894082234741497890686948155046137031399319476250347477723610079293179875733602305075812115826876049510753959118546384252134905871135621586745099733838291521117738605658386483735161225609112870126093468771408038915855400858515551663177323801643315554847523645073525342280739416725446264734204953014648736429326147847803027137831888877454172044222535586459265801169128178158258028657284276947389201529871132746353259640779699347915462488182656357925813100881708624298280216710698660327716456028630421860085058872330039518636710233215316958948042400478657750043603166383878956966168367480868983326865683445379116053598021691476949521949979795757548266667160187678658344275740995482039491949460791492768166411419605701167175228792395181491887364791431554037286094531201567359592187507483568553461561697785531786047935238174159552254975930764000928179206958879227123298005573228777990821535067749132884180835500068151922200190312878085734617095799788098018365341205795031148956813089573145291747552972649017709616690076879115625275543753749776900779160139397239796141002442951933227950554952767545922211792817704147824613610560547882672439869570979083029327020634103935332400228015411346769707736445283855113424270699990818587408841854009180982668233845132960188018256294018744958206320709564072984675651837705395786694049917351218559161159877149793676983123967376502583880204312013423446671349130154306209119371204228320662903312512759381699526898154011594650848712801429857586890496581213524540961216288739262733678596049034903993348646963066679254648235526399128158146763222765578735665532019147417421538410871615818360665700913674138604222067412489548125350341736248835839748480823906595680053072455599797789828108492458771279031424391655472035982887430560898080074488814370854622594808047182498278178100769334247849610457649385162229905893296065513297357651270076197943083243789436258788885952639848985931856286610201308789444068904010077331278449418342969794064553032083666091679421926499782474549467300989479623114437719579881664205865176378525592949906049280634461125321981863124456403755538046041500592350270771084355474191653354428092694253157433513971663382797806297850989540208063784304383237125772734092446935832110038846585931256832271329362240955097753874277270823273587321613161569139821685403580620549454609990346535161970216327415372132602789206925420974122217604865519926755733714096610452497597910627344667208988781202788494611151983460710174943947894887428686559591884546957207018261631778141660150148197477094137838100580826657190127016408219163626375159542827563847424201987165932396624108492893646947728692394586328579892733776384743321401756977145291612198964467677900312542378177941851341192696654553420311163584153218877853003458801886914685647104012644159475988583528634507557200558747622414915508391125425829494498614431181032559380545753547542486299063590350136223778879876910785002767236125872916317579145237837457421978494189984766887520742636306593354301664049634868451705650215994631329836441882804383063393801159017859354433387623250733874426075006537414562188418806836052487010985590869013098277317961831181847611282104404290919546420331470000682261434618706263885011435166574082522055955386416641230993418826747928820709467621926145846976568952015083351940469282726835285572111453242793658421381213515266409379931463388169443349094087344320903229310837064803368206651709526448007138591735700274943258690365515333305528882663065958543247437715205013163000967627234176964998096147371628558284187551506501255725945086245984456149474506436780554470319696366215179043304211193563907935617438423074404857757047439604656219823280104721227538712476424398279597529751296754696764105797198673549971755721487560700571627741737748124483871075469780802049816723318413327295131627248508235218520169589779574061194383952473557262775293242666741364674823071727721641965944378546928379324645597269783828687504478964026309112061055653262799122119715870407828628852842723435328794119858845270014371247821268326718843050491807036380476912612912144432417535285574228304453986158592028298620676995925447923227579406098368751245486324571601313280283880983955243311107005865844979793059853623706388939408098902725240906528260242887064792767295110524848246117606181090780177143868315349396266669357093733818296030193829489629703060429398091323587435879000289028833341062859228237185070178183678696233097827822020215156130463940903227409091251898851884083481812266558194086748730044861483022232542218945443982056113348779548730783446268837245190371615940729729863072043340098379518010273305650552310302136121598690674519162906051300385820902533206910176149333734120689136893791090026581884047179936932837505890323377913458220621026113812286902596990088317971642202786221357445577808546903603880682968032190052232676032067863650220173244732879834722048214487934260707765054689588435839280539059482405241367469956851478223554248400004543903457719362931004030339015978945045354198390078988946277572834608876404230828180072927351501583347138565813882673731800888892006222094347248773215113129349220715094012548810225443905096126049736444446206969523354745738668922553428554207496896698273330273041861160879546546370895806115344149701285879954856693460154722470630266266556254505521887572972226760765931900576875815112799979331804303708092279451073550067006333347960333383041234207665737018240202219709277950193522286392413667996150771019178712877646043031715936646778570347278640809659715415236044110321418102076719842622862254033138008782788737018333045504347472815979172085122453522850995862526237227304389473846400816233553709215862071816676423576918500518120599607346154986430444027192441771509680868953977667782465880811194255421714097362005872558515547919468479670486557008304432258928132104163042579364453605365096998600560660571446130588218633135092005421621513968547446814068681900709060129346641782453982831190901934770643345189009513922781965258396453964783406602994163006056321998099358789840119485597008669033822389915271754131235062284389293461006558486739583039684613223777321101953628415168674947764487125596835556438357025100231758700321251547817968933854865569849355099803423807858325313005484378989598340009730048222709222987635854759265725245749007468593394487643255029126992539227792179802085204151990822117288521015502968323697021181329504910922144228600142741820250158647255251612613657849424277299329275442329029777753399925857005910538266217011138537130191255785138234047576598648163876813921795247512770738369108829373194427675486560095153160821338477479286161460159689187425353726771210642204923569194643678137028341065501524943290734500773007090804247791057935282448087029960592303604747239772495527925507393184829311108819721703420827842799264564777530418505557582593554461250473487955554687177157751016808697968070334776151575078487985660786684345153777520576155924554396727553326661693902329155819745006004903970901792485103361827466890564759247458092481221545904042595138332616525720670617742158142424097588133995610872830362320302287812441111563492700514162257215249089842301406706396650341477881872741537419353445673033698425598521725935255982507431600554752697477417825753279125186174780923109384519424099498827075977206066304889989880139858954929435497375504766194105537366853977773881652217138283454593673359847239462572272043643918960740877472886334972751226918419766051223798012810878529176025346056598640393453194998312816391973721461163546112136710795737890435205877752950220887014515455427285447992419034551879759751425856136602345924496028066300915959578157002453357847333179229887582285230706774292092105121612321016557380657265723481772777075182641336013360358814139947513993404811898585415136929448123654307395156363103322603768620524777801918372454231517517233153569838249242859436341583739613789443742338540679933176423334290494050181577320934630006701923898257371488520533785564337893821498521886973116372186571086182544444542405785980769860927537226598348223608730968971585910268110081520538221491613113089373443970905232601732594972752411008870129613992459558091066267931275058877738788242815551360007991137512092509388229623054919653218868901390319671974706938115958096224699577226866508438348875162104968937282645524477694315077707707374985490529450634201939587576691175423477458681731163028275986967170688293576801784562824834503156870522129551635105001222978255607840487101027652480966944559691021853986627127580338398454564637679640785430799353746058478735876154823109809881234188279600580170778896681841688679400389410300279450093570576042278663040074752378369969544608749807707440075501903359466093511065159681059537766221508930425100460781510930230179315142659805809366832165102983973550391091221696350484627526173221232687794335450854077949667773327577324502095098954028155155460480823478185151203182018289605929491000168530070071750601626979628635553217740444362113068540788623570614474248995497075794046952600342832636776741521102954008221824625650139194758919998858689372667015161466998928943002514875920043006692766041961566286626577038333985855155289169166280865815098453028908319753813362966404267323844999005939471844153960248449773281300929987826408259674376980008684692522814002237871017487639927160068151447817124636172383995237215292921820803223279536913138644734347123361075451893263691143699122409733977046370662511334440968349858605468033657222119884267622125588488726642406726164467679199112741113484064461497191417609862443534402826912161732409524869329065326181442740404208052927572678151408115815745485809993099404886153808305998380189984970324959475389333001636408872662683884053524247662878870898575045446591632350050236136600284069901379533037504596230244701572622393509680312782439813775111705035629621116831609080382378079475916132487157085632250373096927098761500662588718686725228136568795661501234211794964989252695138235898343857485591772282073737335705762530473394001644690236721526266021650261913417651632397374602009058456885043900482246888616906572088027784296747083799592042200320668227438592662014548840518641661407846723984541436720722661913531045438394795649544511033411902725805186289716860791561052786552842840232962963453622565863699149871968666912430474119873804920242046743976753010881993172022852936466823882275434222412256227071586046318623654275048623422890020311272303155372195729612402242647012140300817314255083880428553517399959767187656710943603383401218690338340220175350131731746393579798857693461747294393640299584251964546327813899010427242975206016037465567596734052933247451255855806802201276801156337938594930491100330160144823159701255936064953956726265903006023574073495738248148571371401815990175849889919137615543412545672678850512450168773796937949761509843545267964650134538497206262293675974969780764375339901411791904416039578844952423559670964518085764530020094783535087579128685085194605126367275764053058934738163601336086533679795288128877228683757935839991479033150556683092845790606450361644388009136261078167843951001800641211121298721504001273932426187504309015116971714839043221012213538091688040008443292813289309574292548542837907639931273129694420471521581983329766431898404895388264345646555000447947848946028443097363267388304762510684460624418798710366048661698956141935045103996490893753289281491415032365247371886635086632485894848795252423777822649726043743664347472227454277793325641038033729048623128666107531275945739419419037005290793932626751906380466104937943816011692118471221802537760197566457421044071520361169662789818460611174952468831916659556695743774181647963820042279484107072804094832042591713804674688455128656497315793508035173380752931952904565945272006948639776322180213980327827993589163154776386712386759135523135447162612684013980483268389500683335361868606966934627338405524155439940639354624017073127316012403260261323240887629869946578334314454111108577775105067885023317359104629560741512976942464492473326185918842107092242066057761834710082275586106672418157997313738350568767301076503793694068963494491548773183813661635531499568694620140153444041048359777361398270510378467585214167412538425021122772847111025649896130922885843871123436146346306340365519380975962807008694825218554066984358089103636856166328864426325993489541225317353868311118399696699842479882572977443721284050563387618916330256486516035997984006907771797570945162672602488132940521430716756670032859090893530827817053864538209306812518255940734807555884171023227349003156871394883702812471733499823629739036825893670719461745617143252537637086826109103975305197737347160729932457037452736429621386160137185513599268969456753023995669442524519636110191217213485959147011864258483400255747140961644106012826963843621447447213890177684985605001953945193658052224224060336904509739369611692025567247415524175134010081960177013668535338261387113588730138326045688751553427353866886502593258023162471045534443541265853435426097712000044585111226232977673134892129203836714651124423749473363180621406651767320693077950877270787884957753536875703703449399055844140655543519281251942698991251833425214930306504065292648188329147872918967640130253238012332289650323815662351902765566533037475900297317709710624532495640063464988170826532976408873784160151482254151611522689748814057231433203221210997337503379372409028084691732017752810381230732665340677898990333168795542300654711521706831517205529398446032640733125206091769714653075726119096593202484640886526397343884834392838226697818180313466776906830868409837454532980194150462185135324412233935660180954849653256174959835465264945159235025611352533689520009945145714365561879636694107723479945250249273674448298931066339375870724198916393133415819733052984515793770032017507788799744876608172215454338206436576330962243564238996716378183665729067846149897796583944759281485404513017521528025367808808935290781922400507186230203353249227065292280370707948510921772331519427624141879264094018519405220354760382161270201610121949040601391353513878260605636063454814575173643207222697639247095794499950549656754360595847032359443969407481577576709138031664967954249797598713172792720218219707626579734537870818220975431966042815628646759328351731177297205120374401922079960627384041852246229294018101347773238014104935922402573021042495306029571784053227564731366441446385847009050484590670474503136633875509149188311120638520589256787490727647175445859094349572247558173321645068856671432668473116398607057198578824720786767589645352942262519651216396555798219941306771869232248356729157023646571929559051435852822263048758171289356387339432059283412897753545292953749092789364731709693789681908240889773202148280483632804285514824271404936848250040968652716356245876662527072728467171289616899140848926312768442262960808665722152594576902101715210782132200577829417237721187449772216014082406839580471427762547951480856781519959184923196846885781810614276543348439329594363310920247847658084794472338614690584986632977249501045208326753762964569126376964829088393025256348644580072573320214759103144739579068718780181113151410886574393682321039593957747136410416963541745713081322290405126267499095397130095665527313075070794772657203339475430105678228191013768530529217376304797358818159442480627271400422594692773998587059277946461256791241758281179046671299839047757483714045283294241827149413531070729863458315743711572270534144223960585545679485656559110957302475157409238364450844124829043974556261253409750441871496648434748335849030237595179360091727793169556559655583165521384221481788640900742135377100647611464494912713620106340305756463042889434221052767478498058542067215501247195828287818333570465456487229551316115990413777759011919620165940337173478790505641222800797173058571651704648569863217571193555046106709178507198483670975342915259399498668303973807428272291842584338677522470544762353164651153430266989994830077281405315898524623065069299809387067613349178385326684663586967765732819361109779588848409542017937912028114600359169549438854133984610708017804088023441797696271164944274461835587174305253557707903451369851917114863538490235148046403627925922393633786866747946448197793459075682435550315848488277214950254776878423934212665949298341631778686399996719674982970188831518618678444329594844032252651760862036288197049398279407441757774278708120473345495729777354225625663947745325118995722710622182239478412747784357056151772507989288180135550154305521691606769952289027533058374219786149323540959797197527344231776695256959499977412222508638329589470473660807676552348045908937037771119131310503409547874568516978620862598417619794559063859578069242158776868607379933306479438671442920979702145179553379211569521401458891808641278475534467805290451583523274987106158553265932111831564013856403778183294849166686182363727248082722383246322378886865412353717163500190853865881173830646389069695370082743720595520891828806020570401052039311592828590089724350297561016490727292298019775961644023474655293557222431063462762924538805168784256367447250435699851347884879535627014189974037327516218329265093554976541612926525166045611827726709242666505760093616398455220107214856803069400087366314195488186032407898721359838544055278712489187177020360554165167584911728853855240302721949706187843426102002665082771421920468201132025521705982684691635246768491361049092281081279351329378649221843499662174561484996643612647128470086674466338289197414247319911819485300126141322137996133632024972936730625418787357298378254660811241761583437559905514528305417596691482119958794309520946441867381426582039264412257011586900660907265647250566084313229566212162880540711565032668197435114411072005286873586322525364101254783040694183286614878370989288735441311695901472384609822301460224766314783059316160339220227487777932123894854370915206254274678935799058367652028057238531732789583640313409113323898902757039616732666629108148596464753746464391979309272796687601929238799134144800645907192180627294312167743608953560999796822858165077195324109471017400298909511243002479615827879359299317563808446918403146260877088951956685169290140424682008869009419500748210086166384958834734283965502144639605129857396667463173374422125843350309096369580783666178293387261922387581613191972890248470582918150550433060134741420110841163057772850492178902151786358832552195387324624109453598497115779485092401173976431903345761764646978601597506655568546374039445487804965942101444126704136525761708347171962703740955221793160764074635658977788165107589567508607527367418813623645643156327206406240980122303527158493480917109691242542636285837343799083573514033649485239081243027444018327049257480769974528282572721045511754492152049330461801039633214202204154492801435920743873249881193566263664601864908696098830123462341288950243147886450162511917131355947701485373556134179807651253676436142467184855756812349214545398115964224834204006942158805972529297682140403259127176198025255408812832221244239745016667606847843501618666768638399179499440841083396322129136850962057388353436667400365545191842926424131841295082744360074354363907947279837655192606954463629030328463588635959355629665639906652114150425469570609768870056767245601641270826140298757779049885532765102438704123006679040580324437176808372933348173891878861945759709421719175749785933922016940782525216636920790921840448046733196382963503208521055683516218957844115383813068660005002830192127256407132991752943030805857281038246816011461780119217319457660891509098558208830315825517795453362255807409381961112255730452117737379562453786628652366310585069094755181168834490066525339653468447663097088305538824586826845624450089819507890390786668073586842838291879296334674581998057735651263663495377325643203392613138354897658019841205963438824987880552913779652183929168983924543583134500467887295651754332605211624055728071918371133132054649197032825595980828549118518472945637365704277079680509046196937139507992857901601150544951637332355085308875630043469461293414894737659003566648598876551592115804060157311339932459854567460314281907923168713584768295180235869902840643194284714095326200647173958729094916936938729790489586489034525327361260300358549631424851692061053634469005405920559895675091178986828058343290692598817031625975603003506198160621877819363748484665562980389037758822114496135983397477130523790881484680202893515002497896068001276671039123034384322142047683991896885691121317453126436658669160741156262546338857509634733806624539058058386018676817826373835728699708930754906006381294909280472391585492319901888756353434995965577510315115329854532779148016086846939999664814391944496213849380600584875632963354663622335186104041177851137378761738276505331911851044259356957921659435766117016355164549339413886727001311037588353794760856700749300609654721864003105419171329352471332835295624769999449512245514978330952284318619511660936236847116178069370188957570947130265483828705846709789646862122496373869427074846426114470889266530236474284680940943018890921060017119928021943878292766336532337519315758333973942221030169787141245973164572686646788329070900576784335942452389390102763247279661136923909534614638362819414737640974825511072934210705267016721239818861189586627470789114876824339619023884639194894770149545182394884066937108706979483910253894471949428856892083878458243641292904230488309881036509152239738513035900636126246834347177878437287307056825383144527731227057863028133640593903052980953367166965568857413549144702370760148803120020002452521892950387323563319722157947586597376151463819680640790392622233715475736140818927304862453212095886472788013037496387553788264227806207629972374841376853320256304808740129192777348495351532720116012774165664689018019505819305677880274459847861734948095958247231562239848974037350403684085658578491413128060824523151229887399147452221353421726406353341268504005938550405001439342254390619949972473005448673161206103279171106518151134848878538016115863260312498211714387372241292325976451570767282256409944779691431417843182297779741102894511718481750644671467044675185964184856654322030870495811306350300449129071524611821872757557881541387365754256068732475901126760164100527451690942370826299952137313454328579492042334182236729466016659189453464458259079837293178181565414193593656535746555631468112017317369757129367934745411361881735786174891709845550418354099582823329817987988512168859724582443465365902050053890441534089270730077640573858236376703029831411700171070713491687183148421270979790997572757293552480707622628541056086370043573190708421932764521201972127506476699792173587857563082082393366412805667204002046418365973209159929424511098243863674217429655949015762408469927312525905390079306759142055825655209245571425767604580225906190986859045163307560421566530213631170537041272200752801615975377819347215854861893401364836481698251722127475643725243014766872978112014757434019585223869343924734355895867543067509103459016707731866443067421270500611793924504127547633986023526256234867822284069890394753829914267003411380470913949999501238542650238738420863648629286469651712702566600735421299475946348182430082466191976472357768714357163129022805819722676924919116125829699201924774460816242728489896033862500401761327068266918809062422058240078817253938574978041475906187998671627747295114800067928927956405251267317972904484511212639697718040651412289815016048886713930235299521564007753032452527541349240985821100557711596868512072291544522265401651520697702560065663694911368064858497470186359261115322781551444852909184958027666049930474725929867414730071861150167642870243405474544565594531170332881882215447649201797654916545306584912405864732769901529822963650855551891827301172977392807910905408262953634105540805903491909651961818275810988469524966179450858267646062834569503112267072529173683992351054344732879870635296022242942177381722681194423785036034721714173452447497461616892393588015619313929414961435368872968477202889323060574306048670136545596981843653990226128766357040654564529780900418499618210833990455682185680852139827523159044066030962848055809073708766334050122526380774420934125004071337730104850861505886824083215531439291970716479562719985520462120339990146244412064623114735223631290705068178222514612840832873427680932799296868589843171103223679429337377477220658216598713393349506418300970276653778126113793438704181301826971190505282848687905824728984546818415379702184929342912997259890218582970672698263990912869615533472723241367324387898030456696776999757701931252516226314771607850084740443280903013965715143715193833829145481397181067193392808999191434235700086398017062179045318828690308946625842976384296236962301549308096600331040645982216883532390858850073537937646825927166377720128028419753411810344281798445473066889698220492446960278526991151762602174651022167075224102650390636818398486771284298981221119262258775276840380418667178387990189833028611362497000701577085583220828088558784067983926175615869796378699015915566397298990195266401107981684553538422220474779934073290370756016686451178016211535579321908682405078859127095089128398278275217228203936432682799065448399516426335822001020269149213113130217984096779236026477153742421862572106624961891052647283302562898299401463098546895865563653722097196649362682867942252998431551358543309305058230535199826307824038533557416291999982831206036878546715442371818923151841619218241573621277572495938587318418769091008578763835211354193612877357551461271985332225416007263182852524170350479002216188319545234621864361129617319062418447047618924068801872530654776931589780005374037800153640579482393964909562697934196000129946710823082222584660229998615234065060979752417314382578936841086967591570409274172482077443009374482293056446843908534102684583306051933412909699810983984753901904426411684437980215778726097925862953074641435585133118467404159178501684802880132379515731545912925869295307935198529823142048902367082820379604542792279069463198471161260618110010911026860762847883712220551362347716612022707873421630925194493672070758473977351001785309848950739982155917187332706792081861545365619931942927888726267370721331171045338401808377492015854862148101042082177686713742232411988367321640711039072738142113279621429864093178695670081024548508732331258988225834921848800079040089725820629611549203996001778880567028159069414209046557859887706211037990306360203036328675159162947526966524258005873377882759923413999266998254121167706629876566420432926127177694012489528761970762271044164987500888682996747460435901579725988313103979548522661726178931491608569080277145140358504913564860599211801974033054315248342184341505119404211780213852327679884735284390972596632786216759036329641506599961337025696581996318617205747582170447548138937214474290000442363781415800573748497577602507969816625539237868686583185633516812704752615496907824116429296436699866042464168229037402654034015946753391195617725637253777229554893986822891776449310123922930510990206895744941920129261996114872316197937434303308467742246713500730133960245016687297176962598322393166828862517671176029673581769309712903977167632223904436134371517556616049609625746371675403514507045840317741186929819101312513241666478130218337949665716656765493304774577890027307587484494772946847020571007900601954183396916899713854910781455885110786158983466003890823030064340380698699375668397755246088073237635925559949839281010310898994192871381942595382987145914557450664853527484245115554278781399306007016053944770762630018354661257240208089412392046808993500997307865248853466073182977001055255022219348138485577554030253979065271946130656689582944315896372516014836594197045673680330536892914337492974920627255501170106654058230479616200829118022040697118130308943047731231115601245917130607833420357693973692493105933093371120222993082245023237850498989284800664866286759506613479330093183780773921118453247370440093824469701780047012760079478235597695686257793500095060319623443020231693535357941324951020310953887514967501972256726437306313466826345629721471833784433640275313453021725875298340791286435159627657274103156386686709424247497191267557705610666957782411991308240032944473965936607827733808854538029756720173074821951100621256037883281139850860234194490050412993883921207287513125787419093810857412085285878208104046421439730594103473598860586377485528852694151407879317272750693617720436194352944224462896387848957849863946575068554596682253895693191809306899842804498994400650328471532797775819553621696384836640399372480341547902825762347447948357182164306829916205935872539272878025509470167876466893625229941635406995317836695716515997937943595517443779983893372380464532146675415970107132487929483014441433791688029074960915856415256045354213345565142076954705472471530325998212550106225637325755572228795439449520291840450032856089797252607481257712942771110482369099361785460914387835942968949674935774441194812089357885762299448591705347152653814949317729392545799233511969597687703912539428345921627871413588979536693116588694337440325405628857837537886073351988604223685823813227229485897715928419699992923198481956620741462083825076130541494541463984278721126638737493314301493882444267179957800444405999975006248483409475043462948418203810568309034175947387450341522012082501454837152449840762592194602740156589324687741135034574605916758000462177169020822747908397572923583369485078333197299474182908168992423908846924214049319988963136261030767335955458467431006264737865741703682322693682697438804570061726798073830228400819322590766643163546834830666091397449371472268938563856735261632978234823058261202109801723932365022816397271460333506927847820586509385527986949308474966312521810905071777743446961022012495591853787481994316170125266780131005574734561820979172243342727964640499804779645090246330189003476554677282179701353903244101695420558311056132617661929465837173629040895237644229427810196907211678327617149642897125075648105308331084058119626352897847180823572735631620412360734369384485544614805814524230302007928190546407648846921115208867940902701931030630712956863962515258732418604470934400120195112848231446794668281756981299489344788397307206241905470143083786796137888538551114954379906239207452795265555061708340058735615088869789562996593408513209450143748357333713440740456056854894784231837771701544834181029277533266827030235789430480019148430131105358536148526570486799846902974620054654944288045754924575105952302818093632164816008890735899789268307195395812137274957159381828824400995866524222967910815374385220420542050614698063763320063621333359653445724119936122819135287259221905557413649419877093215500110650518048868948665325293851297623028662141084276894189388490371357302284293359256586278453977769406320420000063499300767499374748726786386720651385724047023991876529114257018305700396283017573441965981652139630089781267786761601284796908307619138498970610893381583869790454483803906536554534880669961864898938484123968649972751789035778845211896545057608581219710162575149104392666055970442089555729633288697021584156042836319470787373241628711759394184200292443489611976067535609876858705104461066855088675725657376699256235021290529782988162192132878183884951609308943601409253771079386579679619335235101703714298920333139573533949685710013287968336696288492640157931499015794242230509609029424697976540658010538903234302786580674140241159516959725711937470999212564803508942676990306982328882510290519973052174356253232773033170652050874554019224317131988945398533815008943505919692133843018305818914972273595091999050986784449494973411202371750619292064775158626551720754723803045188209897005973371937726790373822975506499693494511039084213028771729074833135446064686004113016853373825972011173030344726654513543104932407291129520017325396734096335393786897787964836052357262646154616421722791010971345794857881517048711050425724439379696845614686628649586544062737348135185542781998869108387277605024813103312676707875571633445471721944810564571357358342268802222143883102899697628944565618841747931712189791496431751552635093934407770340445755917833586975832058471143898595647824785120580967013282397463135450380233332177166994679878992724227245109037893019207588684284524520908588637694739603172687734220959071801817933579541864386821652807247921175945867057569394898900262404235610365646349866852273349435902492926290790398674120834591795784965411755066325842661182710391838257630974329606315207945046697873136541071032146986054642240416355496570997879911854260132299271861680410018073404864234507005293195162318208398629713732256231736798804763023546153700583126479077893249106002204176591875534687382515027495007905575209263411402788564777119577447158589358167472384477662662782633210280203488741935855990533445295572925328033691706295314184854353029375979066582489047597534745258413345014783354985699648629509874432382774465362496607952531129159407435599476908808315980547495138268092901644405182834332617806372729899774699050501561155755036901822651845401613319785679675127212850213537478953617578971139759645185000678240053289786187139890169294819924119227608646159308841936523356304995795132913947197249365409871666114874073853536238196129527837539504310733921076510381941998335444081966757754976289593008969366740000953956164384492344558035403705452543343647067417707969370390068817489658003160365059201694699441165337378189869547968827462357892010567411985524852760583381328581586609127969891255975221539582929386405592649171102492517379538348361078973556214002228391192180255544773341851277541653532001343997263646512381516410542136217314141830060351512995895245877211994532769542148932209085474870846977427250517376720132001894539529515257007173238940899665613500685438014436760061999258318376281441628167198541473701577743150626083638595154038709204158698508541336856190339472708257109682055654022667775218740226460999044045524248820349243221184949388800707588819331349448971090898603657356132323325206128648749097062731624607156498206856439567217546880910853115999092895224118654007153846835506184178774914791546083346079582095567120818704673925173839848285076316559756910517234792540974012254536952029641446882949436649065722603807542083721733400892334506905470502946752177561271836255085089557794422774015906673239521188446321171184029853569169999511545723883187195923216879823521919080163303204264063405228505239707579577412057028894428984872572478440590711301739627273604122141150132694153107658871779754051805927848573215458651193372923241704500959350291382403793720673476447325902720282622941544540311984448113137602259712141621421245531631450736398861073750232528663810523614071544205304168128446196280052224703102573086968227352442934303714016017563166012550116592257548436475386079244355595664311326861347614562798380630285894385440842866803865409120659957015030481762381415010795540940179125644649096598592419821950701755918529569001871659336578148787023764753254434531947556575353777827103048349925882840421057157764634763514681376583226489939330585185072128342468311055130678916464473047252067551709617346836362069571646582514959082730830835866098662978898589834343778876488964517069644198579113433508810571174275282076861267910518928183634136297748388675399435082120621849306745120699486458285364403428076299393281385978089878176474707152055720186643120560101499670291358614877430196830158775480661974960729252382826773360406923858503626865054831122945592624943736649505624974408169602724934974124745079668416428541394305332844818364690500916271352833983234106187987770637008152354235812510697160970423632740851552699903243813192740422401460868009034339259616052136471477202318039964454592245611956986857848246124628424050377085095175857804784585763036209891675917757026874028948764085462227277892289093534467553777556668765747417048478275566868612076957164163790146402445876189791031511473535847289854297506619376502965929477786091129709841047788062204245307175063299863235991846088673368824195465118421235157479131988331601662259177649745507162839858741569532653754396789122498338110321910076540339811915248914472598275717657073502437814507880682398220893441998421904879939013851356486341304997612497328212685121782877948614482926445902091988402039534323820931182468618858375210624104736542964644805614262673758984396357572411376484364658188400883883763171895785063888445586457679418218852162436814953173537021143965873521385596660983264053447573677212844300577582211755994479410433600220937395848789433884172494902272092172196590140334818253899294051412450678997662724569758617687417104195572236628800223052615891633616523175542035549932666605160751929039223139059808751276662600127355323325962510115963500646028199272234302837099913387768918929475770860110646156201553308801630586605769064533202724249869569757267385625106920558346061646445862307320539768500448209922531188446762673391303907323398566336869226848476261569398707864873036336427400175114122999281746312781305356955813729789202010824264529041089372723147076134393745725267904621831242174401441830523353908576740976718483436595463137318422670575883119256555853189739808106610094770530401685160918342153997720409854837535595742636782604239542890936811408324804859135299864230836872061320441835781627226994398065852026247972827989176052307590175563280255267142193195592840879431172411473651223499473549375911064477652759873374708944504389160583543272961527518969970534707406445444775171327043540107878713371637195594928089304994424479473526245437114674978645098092281439998243713835279877559746257298926937722023686417983526955004356415662109861925607288544009103087676715664643772020148641810938035476165278084025290815454170188372721711826022288215903333559838095923178366354725652025248501398788568409436888894413043072595361044865355024153064707970255381892865411297467895461378978509795335401062995299384974970091033142547344218156585653109980595622898367479685003126714305192616751311642005151665585557684650484012871669174343925898712055012403042461915581998113182760069271431071045055976850854150442523930556426932478685331356388573501168077113710591518960315817083238533208608454286312292259852597838427557042114331313401906672151859506564700284695353908403564084247547142419417042125728995925606246738127878809313330366237641769093451994207359823850385147470465025131993693929466938173671493053793763486276483726058381400734638335586828417663998555506781209728241488764472326273447513487171836510733514892077992740704496491504145677359564093373137612741292122815558740123746685897647839009446872996725272524741444822824595076661258095676729337835549043282804681996886795631175015659940445006312411102627943282536796882882719276618655476902284021313839294626347495520431233292283189541341615355763717048505156806471411301906910800614070065727456158269336843342449634937630871964625807750202710291554382869274436203730060805389809860908183963453206970167625916079004059450418840793553372295641783049401045658429638623352817126341334591019564602323517460147535718436618499081574993620087165396491167702914806155695821796574416155306617949364594593742206296591809066752245448326944770356947196363577554113093294043347990253131201849801395875812328591935179866047400908897206546427242194081104475512415946809365702824191059762889000024814702207973631687133433282212985160672092303900527178344674600704042940023390873061737044113194633118526953412010502436363759716539667781475755183248029665025985352866322743590844225071263098249750581092279791391926871840087554905200372139368446760469824221634719061736975297405176240177342777690502496224717746816442120063483850854372060477050888957929799069957452425212649651207536846483712134597546131730984558002634983395701224142357434156983343082195530027200097753486148945266743906081958613470536778903813778637440904225403657628248376635847800968806795375478116295400448041723232653829391159551841539760943479865577683444988312610298158035108832263812454033108349941601526066982214108826398167098177364751607088504336816596814494311448859370214649208176046414617764844193792404445824760351753536100440338388951754089609360501187985648429829195341107221254586915041045480070902796502808684836128395938121498420128266712346332768841157926291544177535955646332259711259446550125649862785776318357032754326630630404647876873636898720585340823593128087219791036794893965024665964511327756890988007515183727576318028700100270339562801506823811842375100738585826612010435097394959754008439268283444254200847366238674534782368534645255875855728004299866964174100512206005959506871718213525924471795091908975167584601104041566907693190959851450653673715361773941237063861173394537476608422859978996864936814153934998226095146553803886900378272898438767587112526103464164045225332253234662984498057060948331117644739124385397813221210837960075131161507434535665833161286888358058899932858080148268146194311308220490306833187065097689980364455331988365987186473273959052870496081248929730041773287660845233930442525984944227034855473423397378614097489208644312122936809361110817316587601512438113759273087805577506495196581899111867735809725514291117957519679601273946505723777006610680561611766924067499948038835066005830843657513896317629797137092835356714155958949003960373764699902228151687698790002454919767304992804850400106978449478178315635935310745157018105475286114190694455263806849554050889316822442886897028495226853507278632178961221141676550594528434274516554692268390182322347611921562600188722832708918746826188298541425152241619720256074689389688720463919037003785829826142769655037062805602042998541961951771249587255767484817332177119288264357257040836666479891414631795434920351758904295031702895069745121592713806841539136496991818151611654151543327929901460170353330791408106393755678736472443671217588371830509332416250987380785089020918084634616842274865722605467273204028150670780003480263352694092494185374640789076751046883404919271589211194763917366310966571309925427051039827727763313491605086153919437529716646981295800586632295771175423088227112831408640946563054195261945987220475308784256954395877813579311903866652208723942480536070568878118355661187071420912701708829041970856966600930122429366657206970242726738006303755290073879404555153441742440852760728762257272636254400360991882296289535557342690418274426945765378330118824270308536932505912829855241182749113113731069417848889422489728624362756827177707601629318494846360858608150194585618452116829497570084741855387278296244721490844205042833682092338148739931010753957483038341634269628561900361101327829292167905508814887250646591181172934790351204269622344932194928097962908422314978990592108639140657541122572546647506919413187413476333689571966830207555735653423691937662099548145735242299698801457555508155509648094946683847443984771300775012604470150079399116056453698037648853863261688648510044304723044639780019873146128777609750318546966942370101677916627702916397271838021172561409641208322535136285100559646348399693399044190196427772498762956430976097427667775682645242352605410581521058720293360822152483164429564496653875285065382123939100192537329127458522262179450702664650417703432363865531887438156795500031966034741943347836309250502277519121056053937224329781533400285486766918789043541670963197099439516744969642396277525042664391022932147561044265598769005889543863083051247407837392119605252799290932084297973285701579560339966881982556244781294942403548620838092059757310867096855170279125497601391408944451546266936607434285492399713888615931254836588772625778279890448752465727691935419966708655263588107897772210909340763901276308720161917826325261813074283898318294828550293105879243081187219806511160366226908258953389349274845132772307298373781270330345640428040062693363830308565243194528102743090873479232901879358563177559398440308055714202829293487962396704576006985466128527410779140274346037242089716064911734770904071142806288211577543358987612123309088284236711425855128784632189518317374898903150328933000534891795258785779915084470677673399731152277986874496940641515886681420119577233600824653834216746147521079372683695388164287678793009375949006780453591757125668138285288738215265153179279606440418142180101724471073885353463939447419751994863060348046480168418481482702428393263973224278288160349274632024736138994560134765347877291672150646209918492419114064510875516362989728505136287337314636156773465323340284530994342465339026943894283133527105820919178263304203414636948156242612333850238378237230931280221456378161619596345537284866207424253011000132863839054514780920480704690918237021597090722949977034776204257380687876213209929801861561273329546405434701673487603495765083788069681708038491559408877317992747950173325221009970871940011437038823116453505699297214452225831622793440684486001825341725146421255478855437728005577232354477997359586611733966102779009280512000016136739229466369121581564317762100116561769743507771957980143244647550651871215044918223621581750668190113110807682952656225403426528408539839323587732031295992781043124063619879965621590161177871740558507180684070751727369210313869243025120739879006132946417025546550290529473039485409683952244420067053029600220888521354236885388004700354219181123003169401330277406967206246190951598155069734559630966015521723899615345591085775507645143648072916761119438807311028372162576865490472893943350821916279092055726728518350154636963573627813556624236621231997275025572082584538197582505020142938817971203517841774380434414743067222068075779098415086191129813466633285651566359470840038247478124989141389807004983009810461410327174949295735617386030668687235616043762972603505808445301621992732867152456092086830516378777186650176706412521336569905683490361789185547988461281580973238386428011850332551812928827830143910375526916009049194010447124364166121019247159298005868060217311804406337126593700601072576743761919765692607186142041610747629285169939500297750298745754316856834078639211777443082572593038342514458855329237694969099276181436970830842012826981610591200603484086527860105674257179459698281184236271965546307054962715396899302884374682166445517048970638133179121482628401226696521773752177123451563058749959887796749430266847373027085916771572719497197528938610075019862045998549152030028318131522082991623637554132714849090654647701646446446756040789711496806499970794009304290259005051469674479520165441323698653574507992744761128481996544570250986397868832411117459589315374444218981423531970772262390707608577770179508178550719627881306358310266208481392731205032470002249679554776581827382633329546137713775263309444408748822905413292808348003872825842636387066917415003234632813662801066037172673662070546429095608686047432238823784612705469524594525267832576246652366405063989822113840763656269115250149770045852600661713492672955368188990021574486634749091645303530134477292565912144742837867240850498284549295296277520162652406176613258358788918801181054721468911644934246779283262770836204902752663683372401926104133196484165619026911299626632157085396552244858337244026423144961331813159594819940581685470148354877597488922606971635433371124715576203283176183372751677599090076525489391969443817947919405076645743266728881606925728010753570684008975618338242550959598037361958599939041110106802102755723770681902174668497882258708722944699080205061901291585232751348500996029800770122214881062033324486818116667868047978964551620921489442168581581791558537456379706933054578757255919762233170931822143511794070801626880307238739242710621411608399775578283358804177635202208379608532995176167655050760769586959151907836898735968526534524015588528835114192107390180762780022650082940470101918266586422286700659015307767552716038122588450675482399506680800287935079558745236170804758220079613363455060321426893876381377602717036784562681065420839313920925223324769022052059647374565966261887765236895553758935476688802961114983330505665287030710620036814299043944641164034487599107686858835468543587503879774183468858025002019046766799888816818873237478535449688539507596750825873692815682008640961098207211351111088168590793222747242173231884735589778108518275721350638413704193326713308281857309878298117315935017812636437698425182145536105259324571281415161487397637038997278344986277685188657682290464807924750253528197371977895962884157661769294338742488235270598444650548743118470433185061847097483694787995398638812326435149043545847806540269537318974067182764742739804206400662835667159080748005721124757557231846124721943502133630065302620831781369290921179508235602063840008779770987521487741538997881363104635730683454600865551310232242451749951331725778719261445744200518518857566693870080406277035635841945451089375715674209643512140301910188636778534363772930602473079241871918305887547488802042770161031505154080454978017468845762575767565417643904931893833217744836813527643299030960773995687027201706273417546680888257715608413718680784949102174818000334120426042261519192863331037225545907913624293050915634491527684656836165811715564376417450399644131393862451108997242000070993010549754144572371597619109286189376455926694850874750837098757158331947131586274638030797170737753690395831724145673754055370738695908495673979985188048314014690696143628741836087949250695290449256270777083460267354843217801193393850444582177739991629809786062634494254976840922354454291920835202778369095523958338219554456084933195090352862705394567128189450813862051858350964743255750532493801735212058411633144455927701954027389657601513685154223870369455528448616225697239486929511859885305596448492224789965225457519525567874156683423191899507713642616434496589921508659505436031349956381702112536343641555517792792322859060396716229264090041757639334931085215139608381753565871092511335526841456200552547783204877373200288893455139603911770225671111955401215078419447818854177676813697076646934727966245879821491211942728672187299684676948670550395343527950654250110110636641745767053491479445217148138523193344562076055832268080794470589417078780980444858923722482331755255977465275003703014372915174036947032533121111226505829794055457996502364952282306770546962005574139034843953701375395699428637383504632070842745757337983313365521203538394725828833224780346628675354049619017469580997941806029664653178524931250122228488087299135214940752984152168492953081073030440371607955467647346813549037944137138168107240289221909657106243787687441948781886217683540190563688347200578738597633547533179859595776976149634834513985586594887917453654375086133211267642606936720010903736706823166934623373981515701226552818039484324857990892028886999990795278879604061948186452911158099904623593460814818052375623324141447036354081155051266623520991636048891211777844167474307096621714738566787030312146681575077750018291729215937818776582343781106548554420542685637955603087414158525090685015415693138131823645702344313633060532181441982557831873171005281794807472185660090965914902657484731752834171172297525957323109839727010289773887225434657475536249735781302436425500369287451214585180400305261159490245555610185234026485174427500953568108013282553087500918489647227113088860581821765884250479714904868184616885637515607101722849212607024193473860206550892433038984961454385468569360570256083229495019076765062867799816581837422383054855295416133335315226635725107893490627510476621708566344131909835219263155568721638186246582264780720499836634718227420528192141106625359551658535300103721291080308693674677531671349325829236614709886055140978049308098914050871584352582043391692121684050348016132517364585536226685936159350384858483487738345745170140476619387227986995153093834146443899434921055754898121785818294342097065827312342566027341209426198425881028155295227026268332405160491020083802730391659391465287993506899292962991355414228527197347712218370383292239001916076325805705222728476296398275063507716087496527604199889358624523749533920903270043814524973092927080426900127403810490173293797087000361676492257906382982544886450025458984273007683124359991424748539494735199650137167273907370970449084909271679047638442088352203887330638565131020359264982778586763153188540896053738489568461261678061551111473681832812070734882266055777981503619395370476571477626513858175785420447324207754285797328555025439091615959690680126086080735379892257075636388215138911266300131955387551035643156243685792712578988584292213345999187414474813961873983857143812253948814628811014446472682020975527724432716822193256962193104742098481787034303650219458325137435135263900816845951777839004058000276688609964359343764019212195155851871874608619802975019862789583570139157968263706767282508720742517120789502321873352767701518117140905472332779017902571368952958539687450575787488549616773487410217269489658525497317921571956697989937301776641737171666843601149808343736511319419999310561681168452210598874671856020503455459941822306811325589544992837732470092490746350194841018137032251086460354607233857431491103692893732216150908094564591969747740207122953546727153674650856506611336405686597875348000993092799510350647441479950297435468435127637603038217514669235169307633947521007406079145485453474325531052946191157800501058945084857352792580624593038569172827595701580271699893764107063698555844534929526826465314731332702038097644435545477936495650145960875537369890851246701113117495221554932809545984358555610189315152939312789539777608993042366153308464436777612576351317301114741630630165826523200654301771457735080195603757824748230958276414474358692728001890282503496257231846690585312454023761616027338936850207911408997051508979682276397942501588648960981679082961490629952953021259303135296582520458730076373933144153548965791456215345546949537719222882471594085611186931447102744995849836089046251003423174915043937215104696242452365256836512374654417758401320484833371278535979248892206847763500800259214773459810776242871706044612941124096097210976251032838788106981615426716427012088237088847958902166978080570207414063720426826765126807806449896247270555848121676059783069116755404299065850880558293566618300936639078071589957520963282648211876497796296431769612537617333863375348403891436637736707355504539062578580008488925803650449894699325106310051730870502901810112303005248714551786116541352288678974439627939162532989248556869889667733125909969169505030942740247058249899028005066511473709503750224304956852631181835825336679295495562863937772782037456375432412099441726001394437893989241518088626657791264794338609396794777942274968802309166814512871008653967656986123467047095411056548069600557061133510480927747744813664128736381335637226760722634383884483493402488413984401218179282233384659655945837377601197357849581426174040770134661825625004232478937105149484526795249918617206373056829637937572082215200932393221483359471431806111357719034968745275438939601407018466767861514138016930833704431369733518773411467054601142292395975216928173371176488859390783108740022349901041033201691554131406317974263823337943902537647694948093896228192619565192801176657416241340054651740862773267007361142981075638420853861186520810457384357560078966383297069296552119546793509960015944279771259153394766993665374654582481341835027394279916953448964635801380415356880761116779461378262986202642794032177837268893004606595533135504409326369946245253682616917324658896998679984832893718820892940452696251296817848871120358876377646428276733971452189829243587634353149715837255362981835868151168919491754740677222505487116937214844397529744364667329969624751107770330524517405480699710443214021492599690745364767891268918733641633746174394334098083080122995493812501325195067590399119797291472255195986552733186576704376207997745141149895878272161266503644994879735859690242300554185624803558191446786659610317289626510341354495845323168532325094101653337467484819097074807670050826614424639580959323802150031084177456101518210301128693973431687780660677799650630206675517387061063177654258141199588910591884112886000996672238337704647804043373257632597278400019191515313317109615031617512627476377211255851449505323472243583668753145600793881327218214554993671502130593275678495187936095061753124275010967163575818453089238079197655831598307347300830989473774861305606921037199183328081372064482825655272040062666397159080439493323702274925493178802891227350532536385581840762716719335470555968396924374708059100704708401206839459027702023124376632861364569225176333657190555995303745327403200739743674094542329401676802253516984677840778931405505894244249225239660691772214746972910315498068067258142667770093980595723545989334180247815486596739680580444683472578955299004342202395090732834260063171490888205260427582828729306550863521908975765793083880514109751008592563019976123040141592244991364610062226578817944935889344637072523308795465771509922328836374830152165236461808269075089361176910747953811014424320604568167877104809836800949070206126828351077276134795412879910969560437793916028618971681855121825499854896951417236842451539191544272257980864049900396393832683794786720629791517473819941361494142783625537934268392701611810881036540243217377628343839528050795485485378944865283125557972514827004003810748433005332092186496486732121470207580269305415908574038722002267535802688582746583727148466272924529213189317686918391782912299242810962303754201429000775429157213355715229241981513369839064075424698048320334550204939916708904205028586727086035720800123092331150188994553752957358097234492544082720067462291688124540896932039146721437760567391328758066583796210614450247278951567968427535677318834320286721188560728653970735143925077164560739248385160224221340591850849175272745724868404642607813396146487104892277310311356463638386962562356076419107636084135630948778961567554713336149444601889367397263139797875897125239206752711191684111003115829582548451353431192473174587072417599893014247770693364002445324101290198992507664281251343970866498130004126003973872418523685244998346531943117359446375207993666322396702969503627433954282724213747231421934223281182450082509976939621097554020531344928788399843666506065875517221767833691237328566796335049655806636601262097875593861039825884173809264759983183334763074631631299329311558978759562551372704786303811645890266035927744207632434543353919654823426964042847184827654102031266189571091517739109050556213445353378077072025799592920942014799261672690785161439739540334636448599500280784385089071431626727259408526104504776613518047291873553360568212839801172228035839756481888147956882644678510996496745482073134904354299678666785439032921312519718780285884518244222505972222085709306835076247233871227697532329562305496471221672714135963271531149635449046958124816561784435831504984728047309867787002497721923453268998817909738124703977281883357877929730772657484393763035397573693634569863227133331266639568991758391636195425860522244701022138396247106736724759500480001356510433127508861748994209316746615208125872656363387115481142609499118530826073523710172225195748765060359722920119451697651577183149252333354373472947033243891540978040085749420633919451567842698242734507139662575211933541844619671643429496241184902345375574356357562239492072700923040579726310912636397998306085223316713390803360481331599032193836131064381629751536104169168944842373208844961349438407525124282322007874340208176331187771250287104516185394563504491545583368688477096557305142936034836426076011397465924889632230137272592566720075164661569309805908352968065803509558540197674014571268828486132319990565765189482319992266460236443147110724414532283107958731674333731965761530274133800817123841772237329564685764015088661813364703540835535272899664164053658927451388611703079304282513350102133374865855907133373638522279811132102295684555490611340311160022037664370438592390829745148131434558174813716124639354053083997210718610959459277962020731234316643463062745640097214453362838519801982374874673354109869225739798416431255441100757268667206225883138885395684089896260233408348498955785044627105232144291858469518526442036756269851367836091440091674010986838662968362556917725156534910157070291135655134794629621108104983389572053774596022802902820955323075491908332175395892260668185183554538925136837021710485467615291672610128279296015188603710239197866317670185743802998508298236347336404578656577374057250130711370395875147531552771614829194906493987998507539787083572353800415525663777337101234681747909701430937230950393466767674825966034072252238811961376930438176638880007693906063866436250183464811317873068278084517415110767737762462655247617346970698548083348138924035048125624682440834966605165708356747571680818306721119842505647850262100266112764275619038067389838120764992411892868824332422729454831115620455805280730523643824083472934860512748019760382265373306194634635609133210738109987518684210515467874625927408637342673866542354094320833929187602861439155066554062987943535734192740585358273012159390017594083260567429271219999709771085705519786983556400758319991946738427605362573434117992728978812078386047947342475138723729286876502289607952904714104470310417074087153516828600176482281339129550029341609572675501090060511455562469287776034688197485640289751966004175835558951806337291669608752523389855023700194222546376670893852599246547900043746982995841104541017590465935599783293074604851564113308173922100753736061515544428962511977244236980410415935025007790722511058834988427732786763557564009633347307217035678560957514132933901379082410527789994636355993493056389630894197075103128299137326291512066073110068842990324644787595616941280976939634828901347652318103037183517971140591851093554822915058284618601185994790947497553502838606353473369886702603319818854599233044072508397931019290054578119157055666298756483413457179424204930532618603725402031292976275007237592648577766072162615508703981385293560962567512489375573953034742247223861106371819606111293119173986305447350510498784420688509166568804162835180205103912282327419879911226536489404332521662162537558693729410557083008833166164564403932352060114590728820818308706768459171267645943002567691917350528189256574332906546617063291052642411075480532543928712664596454902074358030766317697859235995541436167262667949843035836545127310728026432682976921595745636513842417398461942359581328007375743079931613632891332035713290750784838042464603683854964221575323419037696282835799428285168793756484290010092990052833007478780710173708830486022356722169559063636878843987571413066449230099294977723774578126419864040845933450320931536223383875045810625569756906369612411561157958719047577236191931841616324364130297655241113885463938122464792924879227448332675065264023737134435727242388016939247126524568313479239432834446659491380169331356455838775456827500256211992840673365132100013716355310641196265115727064195101094800276201285123872180955457724712888742738611373379360459883938789726111569567630240660210287334319531144582054017748511274144273406209175018669746429768324193942712494806868143629303295328693638831849018968679572435851751962981260347984646936395693368113503488009892213056123685405434007764655532384440973668713600436094240892291171273479623582006961213254306874314262884250717588645395601544989086396632526818173088441666772365504938221255190363076221681138426239460043472524151536712535018616432395097957495274071472886020406811761952624294253991944045849775904428697455498010289970050029828865892356935675092980791542274019984636101087338039402392835214360032665333327997912632629318508660366164745171570157069931127156384592152687362688165264050753294151938465003139461091984118500783107664970657518594052844859518963845815700922818073522374560461636391243342146237350972613184533505141620904263046601363103687876942267857652873120456035935787780064709955011447349769238896320477152712806001542269507031763139766587359802259338761860947997222700816791851840571734998449951767663268594411706208375043810372131572137377230131949861578293580729397157465465805986261973818922596990092866469836365892615662751627692308718286445109868857085149493775889914056277502714718858767135373510022855537970171540607546075575699906636922706734736744192550008228644842093022638997367500678838149083819326031306856232442433003691351869389916325892884438456482442353489356609315370129031800690012052829501432604084366797421823238386935446691485568847877708391190748428320683572401440869223733093908753568916274792139054721267599718570661860209575494516108382386576552370632602387811570663276493432941970571946261198225674909205460804416104892622819445756576604860091686387747670766336153104790768221335315390511133385501656006242995918526846915446865640695448749731282854634364029536413528766798983228925995054717635752283672196408705809724453293935877427494391864376459747194865949000906771843594462632538292076894166207116245725988807897248156503280815479817417207642429713981055356510935789383051184841404424968640271455986426295727210368952985552024340456028613523412590703538212927240389736737312889932424571061918478217012321659959858471947944556819832810810634794859715607152444026470463708680249534900457055728889392567646857460533412603146346961846651163870631237297246691398166041596482928703874535419712594000742945220179433685428396698593262747121633956842069702110124942237758074393337813037022156466316135523479443224195585980872254019974391048188781357467903181301211737170261125380446999085137737861679981713541717111961985169696212144202882230007901784019269439007482111503824765188308176967734602840597826162671463213622878649452479481673193535316864367824734369519555713354454233814409875960873777444606573023576066782713204019036678814424266040842172918289175825499365729482385566490821532133023626600962293345315995312673761287173136590088042209806807074459986830420716061100711253674389250875135002113315534163894675425475034524828664085598437868747987798930286724084748972658927082859556051235915797213982812233255404600509294357174492715260776522950628782639739253330781798184728852342663133440616078647521136968143096716721278461850214033703653320726960710667810794012229644761892473920005510036679123652277089530776173915693136445186577348474855954310619580551575747916019377604342691959784083465247341748336413665686008607843754881344332077726976789835919931191358478274125018471182405543807689720103528245487664632994716050844634675939851112090019008574942171514170509697816570158993988273134936734350905614886249627400671133107310993772900382348329042926383202367872950392486023117656596948166569698347870463665014112812423144165240045621306003851931231991459944077184914158592485744449864050157835820970465525589419347622540723281507522981901838244930297485544985730252011818086484235644718330742033090068170389848293771084480140036775103123315960445994920003263995717876044483703088079672148342213797645953868106873407225189955850039516426900273147167179448186721462195671772365309516391116051640076873584380273189703453878503603120565060024855707651039997708296657735061517765277524337394131280823075017278972670631583258399531341691922966808967590949570990182302969114986372158428715984744028252782039434277246130576112352708540885256568794475819238019308005897004424572045330751349928805711679414533131020708979770806090364763136831602930711048101621869792288480930606919901773024770492481346161202622420442736028936710760925472261555127886911774861563047981816609702130931312009937829914198161001875481555160748724629575999886136730735394816457818131376389458949177636107348739731094352694437844795811835907124380245299241771612792044306844472660876959164942937522524190606873801978429335589479995186747974908167884948537135481129953955102811233379563475534632738784973848980112665410089338639305528393571583973185258195533041071360628279046081033597028283515464243252668179517167859073548890321607767756122275935478484976736399765113009303815705920918592224942123856078299815758813336395259872403730807177715266367514260714229571305495321237461113564348095715977428430940732451874967100620284018057189320475344307440067061905782804627846118596488250995415531463684090689037410420102549547499180938165688788728745395807864531333704801658377167598076359304395124705727351176471651654864572737817964462132194262657427411817712723655686098587778834558492785958073016808528509051288551235401398942185983977261431579535144467980043349173193259199497674707868712941443663547816893416785715058537782268991712002705350115657728444347237162174762832015912338705649725014988598719446995819593253770970144840257158285562933608920558719161874739025395308474174684677938926656900272995417108177249060494879849234890954848759817014900956551732500463136322218251157899170438182923504780297763852211255318208970355584022769017816711225933327054404898210727479562387230552218420227172890216063727235254258061034338843075129419879976797337566765919317009046792823622180796263781050813551179545949240592321702100670800641591880803906606310654516834209497160975626823329045629405475514983875095669701305202177341506443815846296389734109104390427937840639522714992032736265358914212058680502069034182570625870436415457854071982486784755933954230052473305526420136890083565598913077094892700719319005305596049753410407391355054400652713746767892509179690284761317820609828502891338456898272091404343669059669900824899751433987297453078282279259856258312290070968555379021207771538951891322975324676647117674937884431285924655538365261103133551126937710179056337531954858291325542207869191471035807267442411464402846436653801272386865860350224675777008471882285630499045488741190140231294770307433764284756780643287525060516234815094655002848263618214775777402671119171663243645262173502951117035420744667380606258083953009335710729934987709201854977564613020129176054593160128032017354477491013127420465343003576453686596572586067763565960238782297879380666427944546109148408121158321558030684734332592342034588634395652518481158927660876833463880523867071153729180626377569228492632218549769500325007968146072301552141260144861885596129002422836019883459921674493497309521094188242627486304387504518307399352271831621757287467013078452463124032920703999975011494371853813258573240532608943480921914663745480313801765447986994307164207524520214556041456508452314992632718312331755373375004114683431427265528984887895314644446085711163648029501772200363125619451341973372301375859722966964936272193858518208960970267070664944485852016644688541339558458647709099079328931831018326676165271516466733571322584960688630427313523636033470329346486426222958451284709432222892047291120738652848482822715893209249659142445786064888067017897427380583223078925858775309340781604924301148865901512268007402705071982036138619964852840575248498712186911391091250984571218275144700049640171295169277612735262596177094238226840779353599690933944620691045960633223371818832625456605656415441513623396885755156977386146440669086820756399787885561030039567391625739879927035468890257120135380208260033081619440230598608224892736136583801516738153997905209441554828265732880976822125109546452427809902294985367775798564014458916041763639622489768245515868642074764115036556500702618699568093901204589080747803595314441348818878294179769163123434876189692601152918108077081442539474938432725605963046632844908342886800513644641139592968279155080053085774304822785190068730828281397301461197439253791360046983948835949487661101950733873164641549694243445865752009506793807807870062718703256563253297860608447995028275160291405105555646819885267932142046723234135536660005629791078974274091446064371934426763319570294137951279103443809896815400906340654411662211007811048621921909509914371484928871204752568788979745981756010539296602143706243437110998962393918490881378228348662885981922314109766125602986137394276704041591291542839047887390762529648272579692363230929230945233198257777965040550071779554464773192710869567635690775168067463328012633271165042534830891692640445224068582322615187967313671790903861378606236819323687562611246489911978575594453149132896382090161822780958830027308611051165426948536629772474971757385756373585219219793096238356880694904103629086550438399351509377283580495985819388299726542091397348153879737483280845966200672001098230435918787000164867436929296951900192609662473142229978103940739059414410489873140063206621953092133229933457301607260128946529347110119345411995462598269791150639330021933310401182757960611898225190010536391735535307861573532654111240261933720215009950325681384378629960314364814498835495421228896144554281376105473386447455360935125685547912757825739272388330711345172667836716275762989673136568661370038413463347395751848690903167647166354683182704393700388532417415854876552295493802456234633455168716109532246217054739815912817452525660055119432046859967076619633103952205249821479579753930322987477288351229421910022991597859814950117363403737273821509865185943312687155738319244706004165268498947084732061894456396944475103565882044681044406302573485795244768715247272072443153175124161528886479045717094655356205560179055456805881512835362527802037983251712117916181190309829600538940006346721917655395918865502724188759552200253845065428960653221951271331161805352120203136630179446674237325139300893337154768147926862849847026886963902037753454240947455441856739835389283617091636717940271754577955733832804794914394633455269953590533516309780043305280952673037567483507519727008661233107850265178761469045594787282108050422226592276953359932240076794388966603585856497465315170173494471908265435047440091800602650068338138270944452569099755340334923773220337764672663264171740156040046417410054838926438960699634455417272815099857947591578855081465225000208671960440229603284644414308535273122365252664809493189089870958143549884294395257018736706214703815749877318683036543733905921796237120752337148633837210331598818245609251234661798572964402542413320188208614087136260367459823013331431312969111134752328701386965900713293235661402493487034535367774057695058123977043717971592104800402696370748393281060068538413511550318098500630742235254692734908315190770689444008948677859335729045764872554404818718229852139762205174784938066998934788431645904932657820166228930276395216411839490522625708572014039027021898305761129760107137863721354381312048225588438497447095426713706171358839572529620858763569035596429161093909170786683738633842800281562167188961481867143803392776897531872489107416562357423122116034288169510114115003687414820491419029229241389760166029863792365716798231631082847982896615420329020935753573616472119383028981015025246206248754405116737919487551888923020839184993043267413145994879868232231995017971924684682734693061680845023048454677028300329923188546091753711289460831371707842531816044502695023907585836911139961974042990398445175263056601375804275927507638901905068878771476288500021407972331805476221570243646400616050803471574660266058935676040442639839690056428556669695917701545541400674116068818207782025309671064714092459947123788302001350010377065999092993200912699510914851807367000328918355225600174290595517506118016355276310760304649723080299554202434251488271149360250052071594141204856344156023152435979471908913237089997214804036106525533001057896949058469920104554860599931322916928585183158477865823979153450963444308812846943034035067280681741013072540607860602192012001252102616445276439256556532608312530171405506530354149169074914901097856145987674646642418449186120041293336522931065396918390138120434549744594997543453092004950557041849466361360029262527397797697867243350140274544623213195315499602697515687114047161845601613796416368670273966093816726763665704819706881834516521995606553433829158041740393126062616580427137965843130846334708211151477839951099408332715203002234261075910925595423325173120430032050214329850047189072019790056497411509272238959460430710773684673052449968294929459348882859130560136877150053428637616147271653966721231800764746857097014962444178857806250694582707858275359255118507467851348624395045210930936148093898465975362062636120120150934296025900672775953328902698265092171519179770073882742826770007520059914889028794065485533816530469929259425651987308928633520966771047778317812246480909476062294633756913985958820011394398859366651811198766902562447516858481225752177893129401599560350757351775385249141826679308999061245547289495200825211903490725118499908044702547265179536954619184489893642943983101687661730117741796976550893581042358794197818480639968356419428248603680620846979193223976021067573777985426149252787436106456548053178554835009140886540333040563815064834446797765966174090391185891726993842002194582516555320278150008205799563935597635185031762997206087552500106882950511449151773050177144473277215663703742123214472663261813343215559829725317363411178208292307529330416746427620398627063127791217275480922893725280208620765440395509646384710786755931637410220120993742113412326416408312411936619859250261203958485717162231009290177479827607072905177639379849364390367531082830536711756649587015873431105783015746641213283679447032998686737680000578809668345373695064607415991197576850941482300884591050568358963591481699649592844487149685877250352457604134355231941695905160884443715972460349415065805593976053057461251173847102944266342058865612991724706380151349711027936187011661659779686721688585142645066487304600173089830561717491629407912434905567014015082100630969088250535044121753052947017430581157025530513804536029209679316937702893021621634588900199543215084746979431257384688352788522121902889328761581920029433742297336832104987947706399749770046077246616180807107671600656387143983856130965424794285209680716466067758297102780818493353847800482153626842599989720956218687209700423734076095235103547782164935559044948189997669274392285503984339104205340074767699152720339491824560195423127510812434316233786101820398614806607185863386596614237903811511215629750466253189750369342894017988389207205787409734711467980822305122840630632878181477799693367098175837521696933473551515923769376615602783970833007102319057263808591117474628078642797247875618437368647075490940774966025211313003262383972935594727390640588219626354436146709551984055883454828432851726865547871501635768532380175465956500950454331836730972460999966492544925133090621518693576568637281155311584987157934253197591596304384314679073804567672655771649617282817770665318207562649238971848624351925336840188234339299454638140189112330317931927605062922983326317866149869427324919643450606279129960194733978976136520226459156325480574048503958701004990401762051806373234358292224128790784739325089515966583894503423543567844988274707985148381208706646050303852374623492688146048491068808702664380671932925091430470002599242041567088834924726061885061393437429065124142015191513360420238777220464162993736704718090242466465162158621718438868203014181943926055088721108413739762008887342449557605575598813726460661759650494996766699395356865575951341544315338218259616479463980105606679881891776674991487079468906122579889465142444567371602847530962884227197329474211217717821403700671297942977831587846716621321561335126303325019496315492190972016743939504998988850889116736069475470164188999744173269051381678753921287629555249393763559164667036558648699380435732111623566269411056910420400951439233807465454847763912746720220614781146707324531376857998227585480585418725128187976209360719182031010129082579380918220341180196515369555134401631035070913360206887730872390422955139933881478934186845746450728878380561215048600777375095314706964909883810191936162732746209769251797209597590442749113273063112758596996131746566815711410175809426607430859869368127994444086241479709694559410809769833283721165011046592428128652096517564202389566486039767409548131052323176011878295354935141167380125397873764390081938807020876208819124892668056047320118223071339641946298405727356235885603321769816971916988916913309714597088131367122977142829458587461835590154108875484383559974114162661463772109291667735422851999704912323672619927839194441469055390811297597174333898726705476093668632389730979138457827889339465142301594426498673627998391890130822036454659927241155455322450875897841687776382029347865644595342808856874807860376912778419227656392998710460978195307826280965581187305457760141107963961363282604554152219233231475127821948034818186854463583223224554773730747613475971545644801867489139411874692192565545576199484246071004501990421501057442759196815316361937035437207358960382722163586898533925343256749314544103563136937840494146583487082408076175115808850857221826213630251137085900990720858159134766644799441054355131697248065428122062135290408253167487893529137282324241700631419164593822454897558692785391712703944279381142225274906254351852681774864141231993621828862868240794963006613491647149350263689536231381278012896587462104694034143993257355692036324699854276876081272019738912713810873062050931852881799476201930437063595970705328717807993022114977024693250364348526064668197786922189873603828333693976539916448975463074824011978803390351569392020993379493273756120070606824811298858202210164655629042336149936400476105272513371194483876738652853248899758867397955066606086297648657913053980294693820176567071964538612127594601188217065523106304661256924059824500382019392675457609011035464078534429542163902296985427930386623825143686217477268412977870259669522602049474970270708363439774426136813980330017496322491398274586434912872608144782891659563988243985526611884197661704201673556293001646184459775589400228652757982451417823501585047531308059087198573372643411354090832269456695376569382444462794467775596877301280442403984554465030657045306605134159472223599082206924307919189809369827787216486395823926290690289522524474872413364678679960055206333754654042455330761139240812048455488055836447708198224683120179781144667217105634321787477762875296267647721048240295398791864931670618463716159323797569792249618286202818210407628475006857643918173275756152067377384535202104475286956391400588841960448021993419452441262924758129907955105844499755185933296365999586590843881725409982330037451341465797047128965054628498415451331894754535931460168511637752100514101237157853776943588555305733878432205234318313008507539202205859321478903751113892686327383580780874200912764102816564038628041401218614674012907799305587627985421680801264530587762979652074097466568897460232048081686964517041121164286423017665834667084504034004720290147763022211806616820827858405668328624637656950869307482510531997559420385753013921247938146878854973047512355286667172678047458317593909083871574621230242341293670041489996381775739104895647106511095080848948264791395313023892833700389636628403412191771632813999983805328434677234698178464410365964514133177681657196307646959465838686685170301595882193375727598872886345873501661575940839306513749705635417303795166835026935336652820555407111250460460271622748149909883363953688248511107975770238783514759236317829500596653676631221470620333201422363519003533620311854326014701927666545360909031881755534540840914912990369925266338029445916618000336494349504674573796278981353653726673828677916459467430831643811054303846214248953478226033818700850789139104727239167505026957872201862059922756745903089001569842749735255541957558810134112535893274848964745678494213114354756614747651445514385694682803179867177309400513884450095217341525516328850609257251228900174867580799253663728076637138474942110876619610861514383994470976318087894376317917179416392060379457326649774056023226933017395913667471023755158094523065798312715606961561625058238206228958077720553692966566112432847123502221374949550566052606220044847826848141526428125581488591598308647367737246042674967642283177280476386706567256860547239595671574993856878315047390581970105342423022224181273628821077184055002290717693165959061133277434005144243799691019364051093719647348293906293405340252681138960431480648567900006395211341333003939610332919119793073113458366172001803731673093517351583727960291918381222421401449057275206485914778588282388252409431577976153034621696987108582466023243170105285675930046816407536633310843148017666298505410487510587229318806567639573159204422805868470225420637359593871037130266436174508246459917377077749886108579946617062308110958112872714892521971807743288274651746733766449893441199173406032030830337791161478981214795369709160671854884332657953322155621574293585183879508249354301124383611680201986910460689548871127733706055533723286179064874208925748651996883723099253514396522124934735106503832368993813563234638653439678985005478482863671673019099304140058396930936885663705150397137778992754032369610988977337638834536532140383977968301999127382300191292959607038685794873066268932241438758480986599550664427765688993684670164113404113896167062995030144658416715289753335751910761816008312153320344392473192964073255599256172773222215528726638128711049263747883287801647963346035578190493421121629647565464134481477777911002293351299771650582123833196346701687685880013700870659414138706903958826306378105071916636804097838228358600527337313976082438007964725792898312898549564585004103057260389992865116014546798133660923364611550308700747452406808741170869196342553964891183862116837808089370128201145982986008640365559633827323400753072308510708426901567892929979361859899633205491480848677541387977434214608101197986393506117540988464264163711093297382672259534342141698342507669907684508584905719100168948861947760426550946768698248902893253223855875910270304301290915683735343286542369593419512633327905806250727357647376454165414578093029617421835413260434086203854707755639902901629793524908211979163191617531192749146601107815170891064803641627288662076763507481236043080452760709968058314305761209003493363056504978174663229483603249902996261527384729762603361204289003203529543506578571723493841611232197454473194562120456447335060722760236839629237920044605676584621394640464981095539339706474205494536659989222408862025155493573804615521801022213243281479161801628569577757194799585896005860013280725721669668999912975974085797172100491680310112991491418391553635475417705660331295716241970790650399819085580630250250850560568914033129108964015549132993138507474016132611240101065900745052749557493362226126462962619020182967720002400181751774496247678507937282493997750122055434443987407448754763226859701791851811681212748739376328027821187903284195332957260467336850195304380063557828891070815052514876397512474807111723082777486653022400686388235645173134781504520884917216322294833574565901081894525070861451841807637759953644241378994344688958597906949161662154844444177598068595266059633067731862083739106810537074021477985201084280141081714578436061944614073845339073172765312224904493628074256521455100562511857179649318252876482993020306090258969850919837655357393889785164232928049382606053679958781245474708942002082082668913931577783871671039915084331779144542919291238783052609586156235366797309090601473800990860622505772250073008026282401764215461763126451357673881426158608924967625261469483991931502504505291356490980441317928421743479972524372665811387365499746146942264242920876552214699664008138803368914049453984577566154866424375394333151184050562548181642016480286090506043043271970018644239639040820691050164270366930375439379707435599312786447645575771232645980258686255669094176813306212500335787710713347759057886017199250310853484475154743438238175038663603696511624203169434283889716461874226993903813619641633111232466300672348510099086458842245097299274366343423283440965067254018348984107638150684068446780009553427659639228088669560780355816560267922368416480184508144071550544767296306859271047373196463525558907743967817253422811358937424039439405914264658635491083306778802292813276165064997438959795530585454532957416724581544058138548933501076037530624859218320042257643682904050096968701648764872070990641914188207583442927985436349293065491355186901856425927720919650511062893708877829779552129356844435992103201364522685761749298515748767976275531651743644825282402814555723364495084904565531109605153583665394619296212063723166898181199966570557494931941088049672499073026584522489956221714466008552557845511474624279761564628064948376368598461303012154575128563019316664091982973124458593807372381883509180979486172625507161986504994711400403638305004704257613222214170872585716261875749579580370905922423373069970411198526762515613860318267013688976409294354520093752507317312485607150421822778360790424120631804837733638631662458861679836385634313974362991139315418949550234839641200273449301242611216953773706480422992702289166389547182690332082777893302382603770213924449814438318950089596008488313012864603107219843359590935247848732972928050585131365469019987190049187906707070768326808928727778174997927723492952403603212900267323847885312760408806894443912868285013058960290357628933193700440379539510232812364231107148760291074833075041451298923437692273685052468546705484487272367777595483246762356203181138143086622437327060004467775202483491004373335548999852760184885040767500115245363867784208269951218456728944628046648529700729836834394813214168641740964346347554749595142767103290456353613670693707351733851214181599567105516241540074561990214039835893348671230177801972940905714397400402056904788959604923544120728545281211979104665338133871352597505367658300614326791573000317878709054564093949377656660938569909937984777023257143141882101676886645225037813706820145916071488742294718661630476994129271027037383824617476914636498849086971027039661239185086910432383803514408493431211254724985212421849533655583067296948171097832343396776558992960498801234370570688623402489462632556298834125910539661369552904084860349713604343735978011131758789998810753894746657493014797020578732907669054090449865306770817149589854314711455510794899871970390913151623247011254798441761932291929006974411983168594547840067913221562152490433719948109767943632936263615260537977566219364935460640020618326918233017637511318489019018067709779147741692966049575326993020649141236474879802176536642539246481935662205373017312486056962865296792716021248476533767822484845549783143260199556593581160243524497847071532621714010507197312977343104148159865341517825285264082165348242319863897800522877235719030954553940640618700325552748703155376230743699399334967231834621881028571681270398213108383680395679970244993481799880155120776526667727507963430201463336349484404317691807200698860001018373631642181179040664156804435664757675297543606437098353396094654403387075294474857600194437775428556903978991724609499330519732818646905833448289102996753144276469435702939376673750558311856747608156060327566427171697323286240970496784453858419701391792756089059366676101669836996305394907833322887437601637626038961474855777215805562773332524021541456305035866491769594238707022255438257503728833887740419830525557094442277953387833468804178801434719195238122337156148579042751880456742223355248813754869245453553920008826330669703284521805761441855196862157766645698238884408975173737348333086444794455141593217654124125727157340842260532867465362857351416757231521716757781498020374595329048256665986385993034844064298114512389515943559905115761056780590506535482949186096418052831339316916586928381541363888597963576291261759553254562519285762457646856307756591617432073359919822894702323318590187391662862494185970084623810129640940704626971703160237599116105754653472482714132996158391638870805966805285702564562491927846969688119256881747161688092808266002752849375040077206298235536457389743932555656434357163972357258948111091401099764342095838934706621327165964580193869298341663785864169533931625009846813490024450455054121375423477620201474038699491911194524449318012291378945072298778629843345864420965689827681911278528283197599782349246487040919687922130071010989259583474666981491970923109246727560960633988693638163016599594981781346664358567979248356131380937738277102081900345767814674004725070006330737666942201144283420968839972144524683221153305109670922164538094504975130635029525449496849794980494753043224799555247194167947498313454370054161896867924376471805516476239809393682018678441559684610396611956413070247543352319119518856981165599622354560570902845644914217148058060129881931826310842469417271369681026644550538725300386472483169675346646107930403083768030034990107447609451048735067813363436718556965468558318236964917723127969127853765926189973073794058792934453777417464013519528902741477214159514672201223598412133545600974567940486159648264494355915131943113137682716879639194519802309146237855876326536814031799059825414666897390627987781829174448299105362879208612961500239914853300455598354265770941229681625869086153152355386849128341905935624044099014228512869640947734524444950617541881346667644784839526757477538216406405187405012377365278525167837327469349624635309249625454749705581845121385293356151966073673369663877006204991052252219796793348816445489720369287776368785056316874567288000632699341988351292301914227660111496215500675936473452668061958569780142496432445981000949390474964667543004598563782880488910250460456857712986002480477628819766349127550283100497077532770499101612312182732719512990487256586573999650139117745068088065577924609367504350786981750049428309663156465727090435742450631600456530159406582652851771776289215624064732481398865757781214119316567475547063007035673522844708474099424689446583235315866346734030464184476243725907196311044917900151170812484221667096943192740921671431094097768919423566050768702670383348221604192753874991414818168562748727529866804774937723265349071958883230866720155185162036372674837313432394601233822669110211333685304493666471811013850994208068162921729804446197064379464333353922977379150150032489371414479961007653646297363283824484933124583417453674453219133954115795643093379969698084557078960724068348279732796118118514095305438441859741408234155560802945981758449898677118964527009325500479420436599471374554020358249986232140227883975220811086092908523648582411246605573365210643068584082078476117917530019070484679918594648837726616788309650858497840257651634555248169417173120481632673345887006253969829720323358654138262380265903769428786700383016711924825467892376397755460587378379495755640281768261640380502259390350291603586125032127874253466554005561701116409399233172618640020663252068291025862445219764755955864997105186308295777982398807136439163772380294661522322031131378488185769347899933630978638678260021279786194889062527582762506691529950106203726954639045917458515223770792761067794076051003184038821012575401901544532819288080964301606367027278075211069534097133823304115488563517099917619837433231236467015230101411579311675611720151196785515681029965586512814110617230591835046439687918162955729368601170588691927395519701888210570443070662583452189881132619171133442701716302034396039701229817717543499383902591655739468030227698162703636664295738759693809217768212040400381987232604865676847790810326244007098687326313217736699524481517287804012749844199169169189878417630993377248971938585891183398185664920852752318407885291617868344414743725373646922887075374392520578722879410582410778745894747794983523427838781579110984412850600852592695010864915563998575917760858918753661159869096461930503264595805931800136351507615941504451149339628681298746724687087210551549997359444221206959849789913645373980091898523681964827915519311994403689547717858431697499484149408531355021935849521050894360668673613444942190610155961687116015099966347199018877523331689320875850669774543181790557383891499824583564810360821495100013358806708619623748691364045498687479531399993613518766173038683336356510341735290849892165777760554518748578804535574103639027167652751709827135600796197584088832023416366800532561348647679517770107708031178847277824572016675110060698900278258406446107358054285459703405372130675430292808169494699410318237545746903801298259646274243492365413764314329159000071979057911930105544976484558736207366457430229747537012126047711920772496687608836670769529882367612486027648082488681220567589091380097075696558190002732041475282302299699493428886952688506315565347200248462451941012322700849797637632514161515243591698428823207064210608714080868317239353735942810701976429233896347713103588161927935970018905449982822807117511364812790618066183793271712214494472220553403981071284878419502930245428569755091766786798260187071429875771661852364219135713070222823130958732761883723375819623547963234101385342481810842606795904052231522126687226819590638331352802881876741931169721329902814350934569294348325371121475630373982621106329204753186976619781753805201675885141511668138679310233669643547330269578623620470070572304524321510787378913362802365277235060580603753739776080860688733138619292996729244199628920745002365949020814374318834992572469921052322833837456745100549758104257985394042127406922578373108918417090751783394989121575250616616816065131794541241658285707522617584151020362353841177976484759568984226256525725764099798324782998504089566044926429922096509075540685633960726717749791574994621812862112923413189472117188583909740082326600958850605296011053115112837001834152217123681680380910411994789507915675327877388559331147887248429425905923151438978591635412856197926055087691372049864098392516595029959051471649456471201357277349482932801585655507587283661590478343819688833749361818096894870216956205733924460981653838239954535966150234653527270297462552845796476797614512393876376172346974833221834307041179715477574531071963840717121828779625218439888855797116627155327790843809176555357609095104783188358188163924902981399860545999230670711709819486114390746221290174732250088674239483885802210552400032398524088652382563921799191953951349063009222353884921949702615400086826544451158093894762089709987890792628621371261679045615633846614814848726896503245310599593609597960300885787305687720020598379368808435007313801350343426847348021616784630988450697569941443861856730079850422418856670392019078882542636824750720563031402792770429473306602497706007285165146094347754510375063153522999658084301039725526345716195859397196100130565038982650436890856786998268264679211609808295000898432384336761960899576942022235870910231029847110465284384894833653695060132329950214751794691562272118782649824654490662156215864631430569687432927115215712828528363441922217267512469122942997699116486492477299266513642710186161365397741377933060849357951105951721620836861737899511355695909079120756818423922202631295827843651379006173238597060442120953850147593374399897046458287480050644174508696506046370537709164906503069784195794239875381192570951658524924871706609459628519274182018257615819241405316233131803854045916660892418607208061766098708738063564745773846702168347634426673567295815745479455304907103634103033988050567983721606631018035914277450809124500501475628914164707999720902554002824361971091850153446664231927016312571510651542151176050692827681079492969613678742538808929924635735826393336619080779091034129720033060635640766272268625570061351837787574560046470712795219895296226166154171918951109020673316272574245466000058959497630667616163095346715502894391924759513025759017749332194678448767672217151990244977543901061792210695384915943837263057553876502727476007189174161602809161157041753031639941560816365290002324539339822877179941479582881188834381545531539132676416147856442571269474556461273594027234862651158684821005647569593381169258445744084093384857758662246011851238027251314602536576163679329610719092510389354079588632953185230815468163807931586560655913859266742244313250223829642835007647772130669619229228872640290471628634945617683402884712351864759594036262822314088394845838631969351099380065227747408069072851372815491035007490190669696732793410550953177543089237344225737166446382780219232790023374419959706846324379632269697296268934254045242819052589748974555308767513892701711676805426213996541225714978304427275860588335024320910271766690147324479317091974282044511031957750710156407531942563524630389111597649272524977002724092778444591394433583745680721152803472583576775833510710338563801553801324704754314609134071975740583185533237377637052079560339189413997548113625546909795833746670567200085225066452034408579374997877693827544032291377769114735453517638317454934224168183279686655995554491047728200736507688884071409941448477752265686150341060683867028976673365184246818112860211196037261417003872362911029648086142866375387172420634570222706917284772014782220765185574699175219976855185755278223151367198353727751223282732096070760380773529607094049695481404598247562730224442643313193038403304032582776351951569893689589559223133936287088817774785909878954608248469045774896917999108487118012359194448924466766628632762046184651710595649521730709909341141695942004416354390300727252719376530237089440414148529398867513925778083336678435526671719560665717996948305700312245022923410062616841069828774666774312325304560467078332612892538970604789266384362263420801116420929196277149444080369749056826570685726231556307613416781035243135353532163572035009809209623325805727134237962398241846343227498042773299440063594176272244555944126560468428645159819550370073888702472055135002496115510377815217524030799664867054520816581007234262230697864029804973990401051719419007782109172588645098489773801416084197496622213996942996525106552647836463333245698161455238946486968235809793165395800172187083783245161290032128578154025019704810700606512751512962489218654056402497866761056172935286788517126764590509095306141728192569428429906862761504461184390240741880604073430202926993264116752918577451594546058581223675917649653683265249628845858565463128748194884331901096633323108869950421074039311415613773309533072273838705875085539325862461090063694817396642987211439156699220414425495507578178850429426165620431609828016906010650203734568141922710668407274951518225655459599179354019789844362172261401027493985130428171328783287518258350335591370730551842914877149762307029943956482130879591647532129480673963390497399092225476898394492987047979841838291334904702715793540542408040499528068731065136842622350754326229748851807652944144233583927377909543080533826349622439838241697275700814608426272784550302735872674147954545572288387728770714273666662522842787124081376501353680908948953202896978636299518460590384915127035116013293322255791010876869733219027926865116011006077533316544248831475528154970921515069656654488827654565360196791867051136892738428211077065107951907663142626971329578483815078885027062335973857578168194653003489558855996083346710535779777583043973536430010910797419182283918380418024601382330647563624191017853266638715510170051064770536322135396791181133085270051820315511768558330186818920269088143625447329942042407035714456958213997816233134133786309572803721640353761346629482788215304067760070129217108753217954689161471690680369302645418554784978407528296383500895903656354271738375265032248303063476289009422387067392675706560458597474321038709788906631409682422278772572405307270584762208514060161941864788299493612576321940860501436840184639537755324564644021543954589209632534206206363726002931242300172130526999435989005371588504692854452001929906936504211733398783222654269231750741097022746570603602001560980410132168717568847557893184621570746318031044744205765010032858159386687247648296956899519397999099689608133946794365649556392386456198448234787628478637573380688909649152599850848023439072657762644012257961341509364142481402803202004437216152029065915345904107104845853015283004646121859627989403832324308337307882297410433593526358245330937184631219706175151117104243148974418269349456434515120367057569954202894844049922870984511837277545115202224217195415432408393992230678113759840516048844002477355437262404202671319592073890483301298100941506686182206027103040294945570001954789347698767167291188084916155960479762715137381624968810797113356452806574225918296650457202388659977339932008181560937800612785959413482430639522301752145049846902487129715554628690866778978245746759034172925723129232627321147405886980531211105639171814915249246789656275635523201818709710348116836353731058760776219786128835151751536142090401589897350011792360178193823276426196270651658020562248665212089291696580069937601171458737650504999208021215737902722025978950642773832400519710104990488040390894163712752900517128644597855579545439747289658802813008119233876290145572108348290023942831336389941767041443160769076824401770654809467482344354696653545818430865389974169805986360995017285599810562169831703291990048054926928419038593853060948968328176808175750430218385140458466459253326468317772254743841696082813608527012001685062507981978929015076449648194170787087214907821875487730138959388989127465756114407578225539095110442655621435244592029644210448857103588260719481016258609040963883123837121363638377924347013846314170778980343689307612119566218643974497609215148309934793193429889922754768940993437167144824701698818761409292945636395802507263668019380422046942755021351690877091397934008099362113283079724197091849086093169858377669975764966962344119084483869500082515474360467327210440461927845384301755840294868446458255806096966353574338642112560904217876554809012613194141001619463082683037818783619923210217949696484997518321458013368945241675824174311362562543451538721550011246789235057436158729510284207466456634619169560797050331085480916959096516407256183903032073528591174328767490651469392906011052354796864478201812179148110233736536061151409247027473491302305240090433343944288022174980868432744440035714814411032288820030892292721679643391895528817022010960972323408719764322167269597638358438261771118962515114338351320387371994628730547159520737649771114441123830578165517209523801895038417086285375600035973553840839181748505595970024334879764681126334424374624715027665912571854971462431035365661402119636248470377551245301455258402332566766864131402877682523424895249519699976920651469476170713255124094630745961965176410174871464212109603247717152731517859222847918466910513125339417374625835580345810667565493043911056835596629102753847212842735292222793534259238402782202706948355393638517330446191954086078044999300251990706648490193706805869453142319706303138207580128542493970203383166066252262624125723003568828551924210850542556624790072116053050817835851625490725869948642686837193558319215387623903693659578881756457542199606655782478247294626954560237035142048194692872128077923353175916724343471712768378457634913786720596535165400412705273511445390881868381087100604976271052852108338297707394596924418022764703897853891515426676870265257301670381192138094187311922685578782833886575748580055129358125934871827238017721877335607148818368694255650479411355697177017944020616650381977505304189527582202362183595571554668168472995964628493208917393915910930614263820268358473032133976139346404981656527201228915539593609758595778222837808523327093816135454297561165137617582314390257480188188241680008986147268652483275212337732193729602838801207041024207403138962263347118980188128040705094713353649344694928859338532595457820622104930266290354351363771685001949772096841590793716134666732374148706310706348980358132286638140960034674200298908355589294459662527609551293754077751696335117395080733208716870125958427226781711069323497711182534943329626019765576158680564529671122101124573289052091202711439288657784050672446583319051351353717778151002027461108761215766970942451960433370982214049942746969741905779304563529744873681763519131436817934872015325134986755217810901558886136308177334485115143323194317678325132263833881937580149162972285557314032518074719441186014165567563948137072824886152363283200314962915590358909166473591634196671445051117711934359985029343740028300020000559581756723457464657533844086153365607833143285905498756643747502666491769065749836532168159691250851271991309465964421181449839068947915547104196918557551356978675731273889250124362430072571064907594059107543600850336799352718977075860541443284854930858344441955386513418968199073202864889704664774961784877242011313824924795013560558654912475499696370515322937096744945154155196744029154456221765399480997859950554631518811180065249181525366932352974482532758400658549806490226258407173942970000165563349626172879350378267720325577945930739866325054477403329733130117157251730646747120715793440284499374808649110629463446936567279341713217229953493635326510167248534003332578757630244038895739504127839892922433874134619219914768534945122117133747898483540280312379690566908068726959888971627454107420157899838155753935211408413627027031966711594469431535092889848721375308722466898925428520797761884676498311647003178076062224219342297431325798215008314354552278438921837192518725937314457473028906233392396195727203792906439626816076839139390873469451210000364831538979376472080868194607592966342606479272266950602526083893940678518674638668295672268173724831476812552395067146871357516300845657963800056474857567836832382628385845358114065529196852419844415792544042769646353416964066191367623918506917154788972097021657975380698315600837851621978096548573589120462092850588683504951540529692621672892628313925748386178311661735190273442560291598336066295920144780798485832721104121099192381420053407685754198740821545667463445749321034616192317613584108474615950862273336658560680800385851385026943487823276661924589749454912454134243830546793870977477020445235371162353995330457634098728789244806021479239354928671511287625322687273503883873850585586491669901244462460055817299147275839648637819759009559544544553340452846954278631662855970888022997654586943847358226908987743039124291523185096812417565717677913181131970878462286976159686119267024297688034747376191090417932860767598386876335441445283154509000646671291748205929220832779480538163470968406143961426396858219453910466737447243830772640669464025936925064414293903189135571976361074124301337113374415353455354559283460477221429208480325340121561558368540243276896706022469091689761456904734756351419178408705727189552926816750319891523535654922997867730451893201051484528414063781728468615644243644076806143792822817239003439815603509125088579489888040158249816694348116924735113131049041205970036918488373060009781489845249735302690741013719854495438204811650595843799811073251143434734548220427615390116596370029836550874275553918209333018806275660023766833825216811406545316787780740706765681614590530369064053053575695411007317994721947250954184206940725145036900239483532032018277722580065902270224567574989520047243227346401757308110289562258102576422914372386200511906628165984125295899997853310102153690296142988059023808948533176634930668201164019383811179940090491670062383075423567094288006545597843597208777680300807974713999368497194794679322523643062222228146662108143369725849735014333704978671437541139135941391465828320839470447365591930566850066117571133115609301057217940579762682833544091110466951051951641005945719512589749094157872997721748568619097907314637662824973034521594894139304254391059798229255211238061186534117339084437446737067444196743713839363509362613825396956697572764824397837779422258062293018666550327229930255226029414895994933814053475289241754908592183029915141948615833025963689129168710688177085820904095716930019915571373826751484780429412397854364806393044543572350633046495942795533207246119864612310174681418537410222162072247000332460463849219546963634825540197648548727837629186142420491487291431291627398114798821097516273849613040592826949564735347495271244634135271609597524596620659753649845514893023030902778139174339371491490579307247468680887369416209517230257054053626112040462643082181416446500849755280796029223479117170572814364540659318109715882213250041271459797524922590255490709887436857909094042611563443186983905497941801056326976266747380512785554237270919454980314113287339605942564366379584111852077036833724738688921069937249307771610723512794868272993338825108310882989500165024654972254403794688049055709307637619964444093735812849245785354014698835053451015945453707767332125133940985854650693824137349852172929926180326044553184052454762758374687951839903788855609681433695129087456126900384059440332292242766004320440926148228565808065858411918166007807950475880520443914815207910619969268757348269438996330516159089838400126466161868768241756318472789860045684084017253511176386415859866037486414721779567601277880351264256248891686754851773084692620611848655591569397101329605923951756450150205167612881470130947123047657441650449569772369451647374755553435609423999527744953576594239528166841544674612282280017193034057972377484632621524529457421820180422671362479946336821694199649046332874491388945208689296485828400340026606196628140785283016409321467816285642788730914304513497065400271479611044408020709727422185054207037304257870970092317653074352436747694942849756991795539019566013715087403530987436500996609250512283133807272142169096276060988527179706020177896105421457310099687308546216673853771484148583691847302381683247215791188287087263828547462100609409704988687300266610674447945734530448480693303321537813703352502558253924651835440075142470801160146096944131806979757021395238169563489145927719823877551003991882545550654625738279454574979502153559473540278559612900751637051410358909520398051223482275808685125889703702981217339044892752048297946189286617824891980591532553598205179190638838742160325602592074446459048867117785954280767064665966714803032317202922138820130354330024955380943317752970656018388867581061517949575203189172482224334398285462187693783694449219448637618957572598017597019623789761668170827456664658538538654135843148794664275810797859641640877681033724888881099176904509840942117771925515209328326380252639107426591320316141336748562510166146261973141046845766590145454046683203272244036286209506659663600696703343998572106876122221068367279782792415446403970774225333533993946688894141371830645417410359557878418318544598791831481647314165384138047674558634841564099737519116814290444617629372809032096913229867115024289710935491647676660772344041926747885957741432597456330041149086431778332431293701801065470345002815315194105160986701038170492403522684596049836979413581964026549791305206487733619581799567270278270293301458719397192385119441933401328397438038647251493428553611036369614365567975255327201524083526522677830976838958791206938671069611752743140307198570512338329711631700902358275945363162919624351164495053973321129454287561438229742173070594562268087027202836461828315571388301501985772687422427236796820353353642893368436442207152715181131103538178646224608928980347190034159661788141218065353484343015801313621439123985123623742158305185725433010353864249879114787202790871897023351578706172583480376577908266998234636798696442788177419023798124647150232468118663269038074714339750518772028720190588182676706274797351864486642543569677271160134172913537342990012836111174667251948754924606425688690536115673872528670768803245282730136626424379512296016788377305303889927761198500297934709168129879396410614602984364741282182626981032428990825356629299919784639930127650194027879342618839420595871567667972469470943855321873845872043908234337769076256844690333705280527135832900205170412923939583416753069128136664964483306371896816411345593488793366461081078662712310215397837253427036123792584727202924768095496709171597041677517609683755248634358692557808874054170739843613781410155877361093956628740962096696467028520737004958760980562671654646251539859658664087264819030831385636503985988549931742555991124847826988280278783659757847473520001403787332487101314494098945749375790412624835094843306482890966649855094725846516789579268785582825913737913037227036547933805031151613201548652225782145103622291394969212700958841747990435922830961501735533829135462522856755123853787255764445680305450145448155016151022469125865724731484461906190638814793412177407367262107402538883678950090445289910303092028006459926625900617718954231190164238835194557656946612089495011048732414666834443107612053243890416275096632993541070646338869904982713176404617907694679075218438089734557206046565621797393077620924777933980447597771468486411819203856046603366955763661582875883460374770808461709975558917128057461726355540647031405391317149416326881884506911919925144170160994427863552135038958753725984699901438529561035898799443175054145592916777978385640562565583974996485992141256795206161020926396439238189120163322561987481247550788546330987611796473744007503916359640472011055224921044248540325959029717924802015155142731439685942037150716633669403463145074096876110445698880646009606600573382378975529829947300840341576020805920166677018957169939839624030086358044849019005676449202511793212063948233910895767666581113155784843323243158019181913116146707762394956018854287414323493706517207374161957684730202385114762320677240647067545476983486961825078694004631158893726470711461125899508467748357756067654921712371684558111206033998675755221568230341955030421988099197093373397990398677003026586261308986961892925871809259371153121148668045493189581416559625518852785708928415875974789909442404407462375790507294799161943403545449250915862168147131028932096931597487616407096624292406701991326367210370952916653133352778863488692839051531263739614888676245425426747017033552569165275494185078793683063982467303025334775907504003101410762065980959318549966559320960456799492448741452911193507513628522776231032200421572265817711920370576356952686460207244716404635388582075505383348073935785010762834429334107843720366695604812576807349986903903502191337068521385177152845016898892148782921259026003148001963034894088478824905883152189584847167696348047724823597277972831178619209245032657455214752727735285900673687737420541990241471150132207672462176475240280850641561993746298743125430344028956047667134562407212546028456760002714173227754412260914739563309552461156680444163004833566169666688771360470644457290460965339893842733496600098693079151917685275040982718382819798306760820172491619382062371203620243786966465681018719951532156594684266030411490046894805297042732994385109118724162146817901999302642524605154733424283496475310027146736846194285075875674130350249882672675739760623790264076361523950486945252608365956287759013365975071927013655490220114002389222970209414640529442137920765157622303911820199591524633496381597426469857809263083146161565042348745080039195632614384061187800439610703505612609074265501390283759867031200960423220456991135924601376330932001007404317239302078786065447494565106849429187345140618079238436978193323396294471167692100239343351421136111253426347485076470518061565308859483336569148956768224242090311667542081354051308271862721566240737219456291656245336954213475834984692875537699952653979235479611440409894362481223276131434562014178702622505941504140872622014819623572505304544556371949416301876116730373086437346600804723305049737992856442185601543661913682908879670622175365870410643261583644106358483847555619176097521612705619614952362066799455661780037908094436623588284948787196837958537309998024228347925944641141230675418097543440263977139309764552380458459647000907400183852382923279965885103487299542711461056317366248855671333997090357093635323866245289156158340470432023393234556244576400647392367351103037120990978075381262943515990122619029102466569116314022352140605293052394257848464722842687352768138874753754909982799890766760972484293730601426466833014542649348307030310118759429592112606236535603793506449865652092112061881382982498608543640406348738798689755077239592238674451071030137709932971823948118042652795912657310020116808514141073662358119763571320332889945519397606243856614445809870852572698099874272835034186793835820295950911863826280605539260280725794356643794247396893775731710637988691027951479169377420005222526845608784717734650378353579994321950942662563474995585538160343793687644510208651676457946123897081441266072613211546462343344680219364890883314879543868743844448364352269704140405561330719143034488226665346866716372027780688922715402675126838801100157021319760615806107341120037215227491203206243900143793859627677710549855934493269367901767035186968970515238750206824244054814536840559364208790796283729932554529565208615432318512602362972518916684570475795636825518292123988350786004154579269008566229395515839920335888929621139375370221293978025298071455232722168843520744237000603437908537867970446906224601437876999266141369136922628264983333351610040901513531162387590590820540761443493035443348718302378040900351081563737732086877517562253743248908990752378230661389677719228659949025903730026542483151615851880031275599159421197015282021726826686225978380299116295626954881015890245803784607563338160537541489611812804484726760737227374307463494766834878877273377260756679693917668792514070686335283638875169480180328477531349435739453135622324858514159870581495015853123449248844679130579144230413298358082428866568510050006980014191133239237263696150615809493753742498968911335803705617620950278845903460519282241325243084683524619725266243468913498635870370903966767261044217016050082540021420926455613385744236062145862204394008129836539472100117485722307065931630243117733121516263450213700041972259990826063267358281154529406162256350964694675498855976238750856097377502922368316427146099176964815454751126795148985293484301219635434441022393538900836403238507904022435864099092178105118287310881047558365229988227909870247365338737149425848842672038912462671221662108680166776510826794985982777809822544213868799460530775261024635306578308401276308810256814748217920316135511332977441849336262422234600062107190446698646847543736615270886282553519542100786682269170525343905165786681159043498809142237940176138024322821738321972216105852775109784787342036355084425488849009572579620250162882808799515447866733700748318620757517369847123407167378650025638012819906778375772628225102083265114013679782295294268103624531137375084098008458455700697641947215753695397752280280613574974833291777417184742194782038587747917465406723564637407196552718566522189143419282212602045834702481273701574754697418364286083606369917114314105452885203055209080855178763924126628021976770284216269925803492503488885456723892852898869901949296320220992839554428826328602876278801064960052492847284913765208651979330847738914130796469644479907761705045840871997096825069007715738873883651345434631749855693227619614495065154171410031320871306833874726356088413066676666913221673256383772656174394579621053269408030626693770216822927312775861539697926148586758830393764769041231690383828108005875419494256563635328344254316461372628359273253984495148321440216715404597957802338171374788797866998960313458844004667969802768574317822201027168688589678141227625796714670457876174986551971525780877092606703933240469532992968119586618858676467132392813113751645648207438528611827637421037100171931917466905910619462287112381660759971362470110089894968555330664825996470122261040144234617708847677108618532983684641468514355165958521000003321793051531212951708539633784013349736376498334985544489684846976457042117411998730699579628720073927480030041805988784189050766874934446224132034524896341987062855630283491913035648576097450290282422490706093909433267340640953928367891234384380490739820468327772673011332927871184811157328945388861018199778717574657614600426515883555368258590299066961655056437068429434885063513287288763843721776887306789791706467439161126736676267308930763971163416352659297618825484672828617738480885448095657028936803119891386493979456128280289591269271361305768499613901894274888420856582765241690099769662562421229170824543598793808264252517045410423217979592247163428564978729539297945686079695519550588466788844756941712519787734603045792587248225466248068046578230032495506195910130130989770632118158523529297528782686025989601167808681552667878548675872423065740804063089465676739855665451675718801457503185714137459514908332598889844489501979964305837834791379832017283716874549628429779873328984204143162787246675290377097145352102190403804121374348392318767092499009210423193790158551158266956996934114778982736980609255316237689082131947724391074633956593854095819568500235173753770282498094136100718504408607180658755126541466679637096066920019463304802953543275774144854253053827625126615754200008191888802093923898097072433005555883992957036268806513056049477468154458771465994627647184961437705216176788619931211164363874177338599542658073703223319527780395637630785052675933232984099484910171323112449331359587476356095476566602780162457022811844570113175271030426154575910999764870701667185852688583619661392970461839802616805442214777647116402117177657819488938241410447425605157078118744569732589034415567019632106220740536233774371577395090586515263797745059309621471140370305768872454915311167805722347018329956546641192124093803059892171180962682809636217862632791345512684190376325113661910855490024582309176549943278458420416649658772406796084913336495131638456454772475177903290829464994738978059660365688955759570482199198107245291385439337722729705085224593347075731356095868550427229692863850923716923860572941718971588328121461615081599755104349482603546347549190801912220749088914198709804820862056948372223397564026329243716022694390606585830285973849225703993533150472389243920646173627587814370081078991933238738999680103205694934265471343154685034146301287634173074029623899990634591718893519205269664824907739298601056128841585822849285655111406246424409971260174095207813356805087228405401616562520570199933739084787191028523970745962004929199404641145454084379466938642376820826589230255036799724421812911098733613111382354244874386259846541660851375793243515353057377233339032821354731659948669017822153674001600856321782395225698225722707845285833785457309514171757959244029413735437032856085455567351730642182546710619754112109941095790113041238838374625344541565637879947638565722315430934187667278696007248332189203406817920432224493250945607248400700391989613788531204099281642370204571999072175262247585510974333217313576628275686535687334972296971039821085154603295573608375018041028919666229508106480132402726792683636164415434657740783178639789037445968411663332483134558383543129686536358851907197016076484162214283126899069201294396695320963480412221694497313057893212809977628126583093585339802817166037910713902757342468276847302956570545006187633389915830949862240758069669152700700568855861876963812645344192005355721585184388431484721656844635099464593987336646568712702472801071682703181443456560276990719322247981989318280003857592901302045299453868733322868272245502908529353806125442731149189759395752987647015223821545269571096651381805860786938238203877504617776996684457677597483312936045082676468466234782466410662171875826306730872322578409713543182185415513859629721950498159765175493620647869936575131178882455096029809233078703523195647690063665309212896074261672788568873143592803293890712698808121712312993601832157683494277336536690787701086554924881544591647761410800560929301685946084902627811820385210989301343548566259961657564101119437051210227009705540158169372726800541861861219698629036225505825974527731954988909465788217202971702851661956707332655511842965745512851824230805582188987782087347899573004191215407329655471112767134992801306972211313623324156793449615149410734502557110981779478142116317910595612322315980933410628558375812677406791172257222765613963870765279282102313990895303780629105121416123453677509861383298791042671394417974492272120721769700644495206598660954286256697243768819098522267920535806991338833211469187851248779012124749136535100046523550777281746468907992003632254005656513825831506157068629936452452193838670563466858306005403021387668053708376638083190835729639401193545928939622647987880095166054703315449155746272387493514101222892961088741344701220972749360751386854691579989185519211366052992064694009144906866677025104147697471322241207906638375727903288131669978093881924498733146490379211028601001416593973377972213581817275141577632917599861200789501570017822727400112120902488413831539081942078011988323132174375391585291493874044153320321175859545681790818752488538922912970730158283325424524975037357458167297592321305412789708568310270373046064906334386529265100867357562183896925157155161883225683244244997606178858266425824802100171295160767690524638239517217752420827556826691088664445260580568312851809909527976699032069819154532980672146433081867265944496223208378982325918116330881013315736051618610529050394274738927815222196550245116601134846900878964026825960273549162904835899446633085401013039903053373597331402859702566710719712306399621987723459891564604969316059711576911533113895680643038286541568033572531314377721346441418800316681804597660795036905502905741650302096085274037244973231240364627281956523668692564359544572353817599040333811817488860664508481824313000481518188704603747153668233444927685227148297067403050105356181743189445765205430575391901456088172056086948712334448108386358009258628520556356685297483877954959651347616560326831448524433612748300905681195270310238846756013246656524059149557658163537482278956781373397389375241687251764393498234860970357506018224996586445898821426200558720433953453701620127018746196077173845934770571042053135655383516073483223080448633042951414811065727524720032260444694317802454643589148043781735473843261374730299182119586275509472062791331868085914169808767364885107293700485640841919986645319338444436743611909618148877999440377888424761565256191209987836648650820875476529420176407155872008286939555324981784786753583388913077905773188356076596884469897253093019592414785138037409709673632927179970316992932309500951000740429642542295868982296277854709740789994597594782518062946186354856197822299845340093987577663620420766973801872666572985090171268786075428716657386518366444567127070935973651654673426913429313567512430700671290530584675683761055700304361624693632253126776554178586638732582798343554954260914267164634062172212600698749282156616236752303448062627878978007230910814474265266515508422230993704490905378545343564953813558194479816174699958683174841455586379952732611005821391436403187278798726249125136099015978922454329992650543798987850803045592171576349121349345133942189124380370527842179461706965793353450064159263405805635243409444014978924921790200852968807083779657892853644516676223171080050063342876512137635080199844644602968942640080098815655090298718036588247507860273790673248151668528128303653900411767958229252756860374569314094447901668769464075711257741442576859221428267611576762145194821297439028288668723685484241848037937163512908413941387129485538916738000004409893874378533238901109917353735759229608642876257276744880787008612148167104446440244339100555997975021731837566406223907648884716262648939323011940246630195174860646666564956541505191844941961422998096016212064931287567693032972209052601716678357599515246971576628787730636548153500882643519282027898668094928216458357243651477655996144955239766246185683332132300204824459224750463667586381822011326337501047077064801690309946702437536510709253431935202002725244909748025655701636332210301064495657999071573317225834042975041128280990404348314280015496234778133905233333234032282748385387692582317242614866551787020089010111541976360283345463491703373688721433199230571895686770319487180182526856617579575892488376040514105680429817716491148611872109968852041475777405460360974884571430281896224382844809295066364175720506009571637566660552735343718243285289612043439568480175212356192255212196266394824743839109576281000709038459287968572590270269358714499250830976369717074667188183091363940726155214143812507801194661679801305134762648176795421361101055613573419553411643962997004229816033553266336274997069396097521011813796556443521432475919053890445268006187885960717053659110495110714421377171581406703829056131355019290753720576378848830482571642345314495703955910139624623926920279555101122636676204055355897713544911864881128779618166224772443261900018102566465167420544441248830305148003441721210174393774650959293313827944196256166580480990845389320707548211042551659314686765083572021235445845128241542798110510089557253172065407757857929922301357545673734418271514211989803880515452300358719512145633341567308001511780068899708902706361202365758923485213069249498667711775985875877039639377542259744808378034423506298925728503077719302885480637196843484512464269791494838861536207017310250539520433643879868917571765778927779518617204867720485218698530182477098605488886654992941049236071343559130974899659877082614208504367904572107370847074611262520933432277242812066634288640184384846303513465101234165789785122414202239718066187856232581165881761352116399089578813111041008076132763971057367134761311815042044106246613538618747455343853890717122581257774305030575903409384498321709181996030682354246798825839736368727329068444886045973412298737805981768661650632879869377524461808364659015418155210523422922377920209836046033317492241155286325096088138883803185573935282556395058773312360871698843211908940426494738796890698614870615625355376413656856608701912745433757719072341282134135353089910026171016918700811516461547809915560376769621780926648902712898376970845587707533415679539099473452882833524161053415345079983865493646655978947370793594475081939813903162299792996955094632289051099516029774929077282264675633499830725269096224300858098451147721743992968101952830547091021613477857203569327616700923604841572014041224907707517411960557817736118965938004849728373205760467963942837903990892207346821340629105680535058208936499435921691349192829251571324819799596529331665978468769352482231816864840007132299350578015053512843438452535644999710449643844977417170088956625349798856499820980932476360075559610486758492149722981567088302946567206623313548249108273048206180688164562735663389524281855648316364023800053607164140243081662813424213651609695740928287832019253916118248805832018469246187668477292257454866213827870699523178943457789626184488870953363569948740221353117732643101226758286371882412765933343983478273661199740289014075089297847654327656781973966985369969149350989958336007139302935908751306833812030308609964073065804390177338053574131929237130852050568126812835830171354672713088207211742439494935398896477211059476877688130604424974751109979338204792931170733811760867952746551393441064344054838077351064723587656784286870920972605898710797010836663407123881717293098637858701344550991310383254882770751107305171937947583758729822825169031787661971859358033065251487080759233262684589735318187502188879643698970790382331323073112990950571017499775144315946001294271106790584239977052296152630530898231632969353039696983593330715656687954011043231460109454086637063307783353974586480360707291083779561680038267547104683254740448593682554670544564046883522208661594484410358041609598725321757179203528273495349035003421189422310110844801181382762264626403742142331366414697845184904748819975967301965644248297861797075858462127405823865252373630770288324659604498639079237453196114080053678149775887013424038581559474810044493521774312465604552682355596382385809156306086757253280509658675303312899805777076470788509539845921273267347597552420397117909147907801016654730856763206578191532532009762913238505020394584667187169779660679523266534375323983685085346624412390440708227526100500233821453520543999720530999641290901173289675527869750779468370496009898557034946233587358186868583951369338909809571151527098691889673723475953884455333973415158986187215245317968271722007753123702079960475851242307800150720907273636271381230879065140430599843685770560416364035693960726583262619482247990557746279747991652044376349716444098210659853151874996619354278449850955497071860117109496100548609351640223237714558642792575043637288550786039698234386290676619487347560741741023518914112342031973833440053574417140675443899647089377600092262160496721530780175784506356289615773062816443076518998930400897002894672238934112190032419993174925702864840801548478265389822774759339845733286416473636539471250758796457580998521538286641274828800364758310166390358782378953824677586061481670697063038077331332006399560236599992206612440762845880555755282258852985219744815174038146704646065437703213198704698267446277362977044742090507385266937825904679189440588686481343458352252976160390515751675055930391182757123289345668932829156325700977557238305629944439307473276311654623882675439838768795305955646153271839820601434676184712984139714597433604204186289852771376053485732856233397153205488171354759906256062176166521316166351962363398032715172730969590245719700094699792319419966949461437933827167587257875264944473004008504021818228308513538927507485074111495677846065932101943257044162286603404149361414902166616460605287328947971903568584423830223189472928305325214057994364175207804290060806760168095194371855778951990966559711272536230353068493382867710951330001833912750334920622109828850804814774966899396490760051378683523913135982376489442939404159023116742826207415949158042839781482020687855174571288581788655537977925620168141186144523123652577271642648650722823498477095465636645061982697322297941585791292704684985583207768537393176066942996098244404261369187554529659337091832519501211996575856363744688025374958269895235789111866862506847378596259368169013736358957270035459836497430650875522326331674631661215277050575961008576942253200230771896797708576978109223004508107294509970487337421822963976847077468471380080763151776633003312867296002911370670553888051139388389230481682742766216864215551156928155881681547096718921706916022512418461543364946582970858908204470728132536169557807409027590524868096211638391378127109996738637879545964588662312997882636206457130840229807172653660363774362601760045159692902097291067308932213257897621643461745232534668429220663988928098910895154877620514636452120329059114851646235942584117890960663887715193703284518279490319775207056752404367578659670073101991123165008140331929224430693462873651136743048289935896526159036670121187073279589592990184041893487486321120262363908958908295298129377881331554488093798844717845659583653140674936004328200104422441276401266617633242175480945755046929220311336326685453504406027642243146003455839743814920448162207705665545655323507255589025224550662414340818184302647284414315443932726242265467742929793138167904054892105338383858280001836659851464609074155772311219634131696880289195143019599676326818298048481771201182698897093126328115081207231923723978675634244450708826632762951164461080618568110969368240368876189403880578205715520985505673285152356657376300188113807943018666022433054425628491701492815800051773842902872913524061566527992262655617837070149614619677887681291529216044961998147272739652622949084061283283449533751092341793480690199765648371561111472265699375468641024509443831119875265709159404358646851930349103145551153292499132828270402293963563597676876576261697169542371854115002332410658003842618288350559903603849961982621898868041239085785001521622330561947766124179522630463669134919433036704601203992579081511736687288520785001051374872676952428359716715685115408430469856815235914733134605604549859190597429396130701843028869167427957812674639978747031712033718785825247883353974306774115189794917135379462836608893784931884022036134051355317747177975859544616745047182258900563136983702548258530153933366004566201329667158372796944698942986492789217581796819250042261118049089786820580067051567690138026176165075596764999334657444024512815017128306705559087715583766456151525971348203161228230733325481980676489991042716788878410202872741636414616366873887200038691473983378883688026723203520666420905522757095927806903328248740601284338420192271693504259564624022423183958086858287023673765727956373345095719663259995114990918843146578258412144731989973933160700658234102783056777751266352340275794594342956085404747393431920590100471043876837379013026348681129089077522917002534708953791568652290642781152189970341482988743468916576627957398657550044361655642458582778525074504135402961857134620901905387709429670391350272566150131726549902827955431598295165731975078093215208783001008052930018699789842926124434609296147817559568247341382426377982123249169521597742533649082159251067751557091907020131081655644283503416544714039375978744352889631965298570545473073699822950241254376974076412564717619020981374065655430549370557966948748825261655383133722991139622334361728727948619511949469986948799365204176463828906446534691398340211768434994080703971767983625577966959777042647454680119020962610620034961299000396939862116863287715512446744452607481281666339648741167387739702703318237528469402374427521060309757754222434891537670376611202071388413234916240363755418888537492915133570643489950977844912677698639450358193016870542659845373536322865235411382124630239100423913298376601520888289336220194115917342432805347296135968365476030127807691845315069832305762771671534183301340730469766130899345556868924599138440405450033757322350711131634204440830329379497576626091561290187344569806670220966695807859903037578342664838471179533921066127017630361982227050821128177473358862272925226341673335663046496693665763899415370995750603647578820865921840170077648629455711506727711838342924384614512355641480867603265653925838590876598957404121344504447070345507337362794726414966430908413237239476435865850750032947391343912213835661506824313306342198912933168715736321988437652144483814470448640575198447692248448546724062256646696160502268856218550778822353774143813963335244462867933776217294331071438231845683092843331175717529541713538176519005518631866755617984899452388923150027079844536620104724977075601943705983970191192285068247108069160096902788273525221142808658764649598800254422258661875764767461576652890086417347141262367285304080027613160574896538946445125382949751888496539008055575738544189834019491408309405792355005273294812960567044457613298788862327972286963920358721086813247351577442310507477895272851352819141738187941368589371688784841404849096247618177208931957758698557247758992653516400045765967140038546540427071544351421840344658084274543134273290813337882137203939407946929313852918554672435906509123523906341638841628064077358947754841588191186535244059894753525519587009065507445892996540897068179765991632713717701370177168066124897347686303891192332608376640208615895315276591862506458142085394340213974398268671418222447633553709194909939427321707087961587013874584419508648124217163439688352116405030209315624930210216394200308318428140517368865402972439041146368449216065282243512529620730908140516693890597869567361585427306918033735586841523293905394219607820100621627821512440400904141975819243710986767625375001938777998690775548840006328387886407755361539343238282543103877936010907562509428710529417729418647006090329584219534854624211472060921984333384464224782861329167793150389825122080602378212120713686351943930429759934565204188684343343703372589657793510445131828353139271757196986385185188385594218926781881250446771621702776086254203222971008082628443933815462972664972236420373494007190579515867403362451735418532724089441078925904266567112375046601796428621249297661177816604974715541022478674953690657193446024765597932674614711279451797169342988279572023434646808278743624136569200243976124774188329303237215603915530887892326643482506370644869316315446456570189194352235953855262128361082917207149531710653407628807601041171942368978502299824574186282819808265861353930894238483279599327326946378735514460556582864601863596838612987966520251905136246055816395793123092205877805728280699359606235776932155433606457923988812021375930798304890489841622226899901642461892313818923223128279648322395175839776942859347439193409002406482832400568428209739428235626293204430382789536129363908025296999229875401455590478271781650102097725171284181441521633725669437504128557995427396334496715336240521530673767069929614135653701455386051541826244481791672121360949778413516879609486105850701556643900893981918669557835923514040511411687035359880985367060955215569377078359028374226666582788213780220196918118020579190886664066416810882630901548476623291291435403786724076719764663714392620574381868753717307008365057509939575276838329331608567467779799529711497161454327045348801696834756020211034819873262249736374609417267587546802772868022876042829775617653683780724739735221832488098658253132614868858446977613935021604135046864085178870642245516074938320595980658266870103452858910581071465883968440420436796541134024898691048734094074155868560548856730165311333251664209604005856943506066840831650853529554409855408435734761900637119918453653624339683891061788857881802126406597236225401639131701724004716791788521004516017498783732000030243490312136869049091859812459624894621400590120530896556306835237068976843136077766379781949730846271015950675369349302127382459559140233845778377983855447192767636762008316544446950927666544942464648359750898616864515195887171771225871924091284180488834366095070559884104975621012141046177097248735665601093519039216565573495483037153357525571345942442425102288244273694092357150157487290541256895480176926255468284790324170271859285268335507141501499587880858361898190608961594509930932576297777147430405516865509635588931139782840999252242159460903750079405210983054748731078877706460387152887332195341763876812553514476525868452985715324420841912548998666204791012341509934785866592188596008484482188813867072965437785095888040166163945574321219491161729370523669650117354099384245454483301002746340076230509164332063595650321806585012189320384571093342162118131473650675579434971892668935534210476576137889258894666878709748685574218066027668104716627486507273657621045904501790982208785919496811572865263319789038032856551794111512132268660506333100039510740867577586327734771404618662561935784800851270395015790410159386499029748762843194220641640565556382063194270172951921334875079278335416969718196822995796906894748049658787926702280892959557294425730634975783898768748318892773187994490296796817235424295752046100300067986001033809524525598124328745138293184072385985847619774149557842605794663766637434153761730859123472075736950267801496090232479572678262248853419909096260618097616038357830172617564310158858874298427840340231133842421202159905610944761872027484677419475759380281479342773316493082753058418133715321143452200408197177196240836491534779801619275665651447380997737395834118364606465166160472842928759087257225687913173306287338219922529290525986706945790281825396821632910212856332572504830516079453934678537684102663808104880685343951292275057811409556436601958534131679638688301664680045958043228636321922021330902119641505602990088682098694036124401635727466763230342551124870386806137535628971890541515422516561976238265603093075481674333868650793869391097490650965528509238757687992936681452351372301111273515198644088702476124213115267411839608248837139337729313598893228755993430435780270371235901141912350720563086196629226636091396363960436705127480906305496466572221836628382362359341585868072611983691723718298160392987680412551523351396378786172125903523907566193073297233793906702037695612627943096457574238545153082108058443472833156253619343098170241420368273485836956709210431833569155210195495110353741967963520372081788216232194437425851160376822480761023172754996030367249585376836150694239114833313014803789047826715656596256719180899496564755980168597611130606332942178754157109255077248071939668199306788105437086702150047628241809722433398530606773978675252522121436279812209566540223473440272777209056163445585145078420892007991375313550714114229490205348948222856168028721694764297365793650017414213862622139006693931048671544689364855644037362256500469746080893766747691881946957285897437427869732651431415741119183623411798779208232424815174643468079909784187242937028487869948715569793619399046324257952062642546995305312476047579683727943831209776295763137311942907092361118019962208223006494888256598833207591444290925303225802251057019898154467473857008237328638895571627316234947321591485353430646395042550427751674446392106132888767586835237460335987643708139541895532271384013282650811019662172159484324863352794168070879391928137356153501914817307646844744862834469045637460043258776798199494142441710490719665564889157175106135875195468489309288810781954669932529092687309671480971854765092645677532968111305673907490755100367393843026087654148476376356847232567025022813859021453684040493909074647080858357498506342008625646806836186797599915325486523178112814594760046936105149818936161070129612115918443697380381906890576078144741754758563367808914468845029844675558750552509879321517214652797421991537178221185744411022230781322722843386049568744429824830897258990130240144985304992394361151667217892677733738018414435640828314302559237878224567131206973001993988337847527508659032271354366426110400763811044055500266192404381818566847343839916726817276091164858790042780745199980740953778480310876763883996356005860052031729709294818090465698237067619220667699598186690478846609418519028742860268380403897304889460924216771703645164621940942160015630937331298319745906185157725689430304163363958390422622789217747268465323169324474035532404885152777895152277664049604663213681655410371895684413846314880824061916543377163284417016740179215997886527274148173373399546662160025208666234591987152198052407328431261873793047128696169643489600309575999248382710688848662102968498856357540539974149666773651806271528033236606321595776045004621756935930113843938150448976857238280335284901932312968118082719404087316893309863929528597998124293598399469989715888776908840007117992586075155212777723019242335134132237872763944930349930103587085848850194044593758091398020769600719174732005236178096086627987270929329150283748634305002212518512420342794477249659936060807633836410775845007258871774461522744880654023529372554571926639758311971816657769891874429232218478798113581351096264647231596375233161167733723984531558967356772871882757047102674246586674435337589535826059679085121471025770292375827265643641294929586383221768500917510479002881243501545411059472599230853154813184687817925884862843222271182973815749984219897721434946357051788424531754430440059712446261062194641432961504246291461236495270754348521983178559263958831085953854152348566025562676289953157297585365934427656341911871821360597861190996133574001343018013987237960755046721805812147035647634330277129449018954454940135269249841853408184067892176484712231675906316272913414331328965443619193647915109036794386248819001564954899034622543061678446761540739365224098414232414158949463535962352717856018595209626121569958057060465989301258246490436569364138032161186921577639964693511467635028964647085146329142643143282888324572514592110013254093012569575153349831347646814826763590101861530081906118722400360347437337219000493374128227168425021526990046540345757840340586195917611996947808986118271699813384262209946556537464020693998949564616492658803925859384296507922775312081331566451503312091100977117092505612169715052265019482216171516221280351292471893874347569691806468883463919902441166441510310903322096222943159184500842563430906003347343497050188417609482159351465371186046573899850048298788205148107243680959359903591087489863257102039864787959799582164494766359237864459991588872846082674626900479609945439337047390427138504807846708173468426625648537563396643346951477447147064634904750001985694524214400315822307132146761232780260747157135323151419960166747182589555365745958958178193953669768520317228235213397887734022666193659988469553688912458660583386696424107492342493228978330235424727678598838747805421271466886772925741264775460543423247705578643496861172116469373703169146890124935304897694948235603877307089960101091401823742034457069400321827598554120490337099041196474109745434944792556097652223567167938694615979011388253648674978075712373401773144160634347028190094576519766942859926106031050330287737714919307723062374218856165854252132146586066661535143412049344491306101426739171781887577819932232183291950748115914616643759391587357805756593962471933062828860277689656805758755323877146779697794904948321178073815038435984570023626460391267641947357310205626146851489380442300550238585946719478048292709436474223560463743564760013423002819203529572493673978484647450968715043036180245709514982484225055400180762496545026662264604193726737557492465472398791852077350657700975515366537494601914805037663851289938926363035964864142490421057451204171435933376719786211110564320714160333884609402472620829784889816120642356819626911752836679012679732046911459660030021246572191385126812511515190104252154576937913911879667639621254509630053331785151994305169383514458359138077696206363015524780704732093088722278909274747949907700016305923897049086986004969794593059602818954678210904924840687229332042864550291219381911129578962989801473536535737271224038792049080326995150391493757266421311770188301937781429661504065186452804707226911391301028265410354556107347886284362960135931450311177278670080802370647284925212348956350321349893422632040380220103101083169571710426531978050333719924064362857986106001954763967828229781227855004628213531724417678042783583032081242568018926903188400703876213216704919346113093293216319249123666330766466057186411363139668830489278486142074093420984169851834992692979456193271529911292894280729306525636756659290712335837210646473431920271654257072545654735571498175164764406563709715961316058092288762424799584458883389568713955421708047610877563008308836036479553317598658954057912861228741314809689188596622244674448201389684236022822835365336206550372113524643565904250499625773802738976132053063803111740954424957966333179943214429862601870208837879187882087222607485711969857384955037824516551746038757089810458718302194762431301561598844768727902921761292267913720525878812340081519802586557088292498717456605955026130571606351436020859177268171678481176152991881687557915829590995964948910663613385908586976065369585722413559444989241541731266242277748500395107243190236555909078674635886016972943356154996930835948593768131860212920852043878605526442689189191436307448374494644426802005627215700315556548556333078811955040003984153151668370926067232224996558116801192504308572626517664045615239305459563906781769628927985168335510509628172803161387633473592742002763478344156343292236431216527327343578212209486947964245526871930687455564677609056467756556583071193013766474340767735723429913856793662605587494422900327653035794141130681602833778754962963668689241014040915158485483306936817600543224012506006450481754417256857218084972150265565811282449885543565772442115039050475819544539987188064287164322146306445691027102206707131643051852041666861150489810551963774501696170604260671311058447502773893617441500429539473019018102040293975046203602780316650433261399103171879116982232576721042480321276437198549394289142883314020796533410645198672453917326303527491581773155833472920859660773529943753173991037811418288181999666497475612890344524957960574025278744368728596618889044651516197730267463844685260742650817137621649938317512643833680203792303366474312811826398561313489559400649612784658264785763265907429909546589857231603308722464157764479446854470220376940987696091542393788419732657560965509607863484818927332830867508269810239683699360376567001690821819669832287568180284141302659233963068724616237763879456605908926882511875948708561821793746188208093350467740408373935807350934997968108561768642896818762384199534553149217856725074308478264293309561809746601238174937291143211054453694443682956093509934009370175408714117379271790799993462887024966447031120958457267333668946875272522976042740021171915487372317778745585979953689983216705606064582808223056506475223102649727351567706654540384616040364415019540490580303715973807453101608116600336522609675772802089283331997330306995403569517650928747260697050259523690105392651672998861744648872913513457147789793304750504891394896685048821047714202354807632281911466187325855333584869934675758775149941089950556065491452356436358425067196462317533345869276573109795735474989682292931438735917023033493635588312180316345437792995486582837940230256126224902193078156961968651693819071546313786351981505083434200434676211858753137518952712557427490820535022542887702742727900300372580324095602342846909223727583464929237600482359993022701839371823332308303436957334005998419946586903080027372415459436771516151876455481486337843172940934271380421104950960549090498113082452770464008508047754752406451661554261909931544017579311590664183237816876301570682804759114206976258339594293470586355204732253481476201715319324126017481775144810559163772783215722446552024165215874901031971247128829892196027223899265265697854926585417529339233460380293460768889162933178898032761674309890706439114459712133644888553835927225547054388480207225301358280361869273374513385655993636195505340416812719817175862276193681255625720693198509275897304520731379898353505873412701613873923459673572882657441836827264657978583297073860446335768307021791583308178482632825854353324411416912416853081323234039220645724366298403452819774855987237642656491244297652872591404200020462174964416337373130458639928746338509495897701629399834643364592559365041761807228019565969249131750264893485969854843646461584631402461703453498592849001946342312988909271870365327714377147636545077879823331721321366086098121878113667443487797290178876422546795104580380637042802803580752145249593006146495983153331131532572480017239438120179667094063422868263943581079137089942374567957375700736918913478677652438633022747643416153178011297963999502464185382123376329809502811110899732633831887633972136988077879728375177776585732779924086552610432274041215844122313363069491294604926013795315047570205797777018591476899163705274659693007930901491101190685936246780338286868098164554121741322838933981289047540583001207500375070809769735140693193483513754396881538067467871358510840840541220370404922734684771031266846936108246073031925154726485124264278325978828052075148115228546957297286082121879367783178568260548067247403857109217138201577560128069707791788493020736359360443371509027828191963485438227959478905653478212949177771975879419809443588910166115067699108774685821970118168561634741165388553564227144937607552224700478362447418153393911094458720581331317542102743240548561729421958958293391364393193796415986550770603657995764504570324207395025001528318102045538788245553067930314667025207041300853966599680376085250082539645140733045635906848235951074041670290101879742427624252294508222311626660895180396598553565268441262849277328191980952060699277825505006371720154232120113914214016811856175548694381410588966043133362527007076532379162805478981800548340657038935827000711632514876719572528774744068877501433912525101413709589275795110984564566441950998280314932833292820635069164743768292817612835713199999364934909052416356901921515287717877737676951703837747970434839941793334477361575256882828590635430736215436106859452832865209325157684059575183015402219918699331367411882142207906411976205328449497345276385950603438459851346564943791607515299038327743629640911238087913252801388174524725780927112121172522993556187898226939933636261433147789121406249483299523829697777748390757571358242113163133765460200962695358636787320112744347415051228863351324968405144557144641853169301327056756726030116080300791728938378406691073473510435541215312054216363553074549900440963322417775971813374034790098230326379033695447145010929522870315698218737017206096330156145697604585963586633868197645575442410411035550257178370835349447153949757116888221674439804314116532751767414469916574392418774727200635213768001991359467180869503630025007667435779257753700859476212759337673950830028882947879452630971155023624825757965200441918065467181625607378555220386245896383487162294976281778479099144339021495585727923967241213647996174921640499832641563197180347907818524455340186988534815176937273065806659846331060853440803115124054084289544279929334678756033089185035198724767599633067233509225273079033617104965737245901355016499802361242691815570659923036585997016194098974387010015496857138522398057551246938298052513822234190483185597217565591141019724084711614732786148658811742320239276767535146064057666978007804638694674046907389144714812807813428967839920628509349783229079638616376912356781882692851731736809606406098039751380314710417954869683390733332662013709327748032483225063607675023156120148728648456288173681926971356817466619159696232603756808201901922344174016381078660735424870229916166460505540367918557279135283203405036436391263324144633850307615527008317111376950434868203491206966857631960229585959721943054903133931669373817630560747036754690692930997563819560019531281504865299202043401501651771072672692431571209854927952594750423609081792611127633303614563711931836205267569784265602744778032958363332269911458420634265108165807201894839407128363960210870707599163572090204074699614960408388024357621789328182543486538536999574756887020076084620024325964999169737350329184751502527328115315336178932788076360787266204664245751778150639387552449619992143275023838340710412232835766249354067795742995877933432217638470442821649056045483001950286941546789055803454447357270207370017537250988959203165879452848161509862004618392067487214897738235143192309491368783931493221699829808885001002120452944599923400118637749813222188390386013920161381862729929176720971277415627129780883721311854119560608408397020113203052426316918681892615043273669594455449733964052604187151795129350639771967692420287594559267397134002505514095159239642104392087440835128221706488383113003537880207221882329214281000161400117976599198533532294280842338576962387464694972815788711378364882159039892059704623323438920299938770125213992684083878461230640856551712786158090146874596991681307654624920169135399824708105145263743070690343371788985778991257157546403440466287979133480422431976712795005014140680213462324974717272525006204114837613395045934276049178094361463416676495818252025243703837677807231760781963291414645399140431575844388536397593991098474784550582247006916729610168750139467959615337069775120178519542852147382403307279881303707360592024158965613188724147488471744687919237704381044281405338937511845154267380757839363711871943311014184973182760649668442160260028913235501873524433222808808109717904424109519374265316297125559001530913975580415557668779490983787925327465391986692416632845652281483451307347422734018637045985263040886780767379230056742306442220251585135843470189600983954939107894390821080076651908532779881217181298064820508826139441553484331486547547121417579460332370689930430449322002206997794130297053423916767972458257658478913017601274536854927370162780917273053383919109799739404137938065213068612742355007747533391002532811294575506262446123007680083836226167255770014473765013510628487566015067723280053054802125436746081258375893843869372371173467802632128438789774750532436604802940103414516648123783107423017209369845292629324047278466752839984606839728422603591744152166878137798817288866078898503528171942531227311043874747919816278115037155915477313982150188533231473711898013614385467333156448684165583629891098795626334049326952727678988489343581510810247215300522839390933848008733501478540671136757243135244541205394608073766575515770312713465973247281846401451954103161027695270429251908744402952988139622316882975114325698633543409204618299537222076642738209940106867503119691489588151905282373985982456107660284599620467801301849998811308858739799089649837597511871203805788714461233881839032975630098309900460816575744631641810259155635063546444136622910693753033779858707257284594098336575449523114817676798480641353949556912171667578107786648088218435488599101170537911527404964449218065869382652215606523647058304223703114493779093541264066957728464957162766302394502046623439063469545577654766721953879786131924318226907208775676120389546092386576921830756386993851655787994391902565968497229521902399653340165619198626815855245585061109823636530822875497691447325782551706583445369538886046486063572117811260163194038417528591081259529259350747375094433098165149779594592557675807565890076024421900321605635133108892797776956742058211790332403698365612421978996896227700799037595450656424698375983972835908861294315214157287179790524468514747662721851851624360444142182817059929419960793588531176357533032257122647895610510654857038608839617182091668495040171518189032389326253836234162394883677192791087275643741888791770042164509323391629408986318455989374442526820259916247587637198863920293927763033273641858447918379326366939645843849436411475439334799064639045544655338055887762423608148861886295575947153642095481064770889590678367689746147807153322600708818178834003660409559718702638253419149546827631768733104119144960018216656124508766762042890317968470057115788111638992203796891918561049805513764413241089091302099848977300691379764838833405730810475909399617104330949320732229778512803761290810669525100571529789379908082892048424163750798797759966359138066689226518875163202784595766486859608943620120169921863120995094257681363251606940188119804378509453464963905285319338551099240525064600683698832043589029443221747332356988785289126542987113070777864077260121785644472930820987782719773359066329061694485004938458463892736225510388377902627956962789049198213612282525843931567221188859487622153728825593935915164727683612879255497688296230855746372536185248591160694467454503086596236615814495800518491702977061732659595791176117732863985150788397540924433385531655100825983423052468277080533521774484921119862055850329643016583683577348402161654116703932382578324353778921198360336021767074733200987319851480724779635375600584587676140015205811966958357046182823343965658559804939502748991501015662203866698552746279313840469236092834822687576398586326936492251032581406727668203368205927193632512934671307025391713689488988442109377849069499739525352844557363027560143547962293449548610391087754241828111277124288363566847633354148668690906214831921735409681459985041446500182153064868504140617564734317452327190963212287296716614736053386039917587486153799285158834588328340137345581226028271342527302656743636020806361343981766709044014364115892028907196360139517943555922875157263145375762017935081019539667912249055392930799221543408080093182288649573408332669097668994328117182623301555059713859097653755365424045676283428126161679685229171701598040721896944932663574970112213518275613943101439662692959270552868336976738083049237927238116228526049739979518309462709106790350579924076230403035466128472375061147825343646729012320164848510554394747270003267457817247478973551600138053686883581405318603813657379229655180115261808989710879048159644688888103211151657245137200114372554774252996236081549244703389609664150969118590228171471962919648250617449484060036674000634764570787243879474397558187096924090259568898741152779955845958611530794700257161764226299859780945876239561437306384091222402574028846404640606816664758445138338804490637787023719625712943576121868921006518813826484882673481638758706682907815180717505641283986503549408600593043343779066150238800696755044842491940831555043567639405742433316141504678104038840823490296182668941905632149082247884798137939668677472631353733871693555485934132033178246520695948725418462542222463047288468008626909173227580145579980021651890033877225361554348092141194951423572054439125595085034431516245997030612000211309777253473761858967804470524642173511153267007264155620444622445142941874812789045553755415732295524652726313080384543426886421065056004944803667158956614060868177670633351056188270198302333104153497002355103056126771563610430488375073528990695759607671093793030882157971323557215972807800772408262546390453256619065148142189707057311226907308492455595106880927359979314783625608229426323662075087203397894477279049142506559747351223625568577610592552033968450423874229280772533652302954867690023274737429813522296274609136158402641200365463817472128980145827729019403181279506523302082358998614004115760833126431931216617285964683943783554901617637740506134272724308222314173306848221353737762688824132497780112762781710020961126024579585590544266770644397122073368112413220101259719732634865285840994891484270971451099795051290219336043976090478179441265473105891457008997331854061207421190391606706657595867662866921229987399665226799748821810309657763188212148338985454151167246124278486372276042542920409883007092411636503516687662641867468904310883271269792138625193560606853985553954013345149308798286481316788667864035630943729575810622581891366755918411930643820840509472176461874570363432369979254203052747790859586438013910651248411221080504980076025505378889029321248481714052022003157182083095123386332302557768871368823046790893312756979155686378614741688212535047836756896700517850698794797702276804254995322460652353036783087797280612872274387623779114657969587505169490668862648130132701850761797924309954998793069749103407254811167490204175738237936395561270515279148001102383335822767730992094455928955258731639062792937743943073465632637545397827048476815087684729393789646024457287506415356074599357380914210649601446339309912883820488497187872285096256760533756412126649017589506317039439805742008542995436398371332809750300557468107687509530456002116216515960594121459919298769250135834955801089280079860636558897503041682523922342617248627289593137646313776617378083603725659655926405315116446802013540943613429722051256714972957898145328153699402016854240766737185901921063813132757625684296150316733402411087785859564557451550881550097968075755025089407339915804239380204896353152385163442387088386126153786777095373488289903326020690316025281178375178761035000878250575524723314305296186910436568875636061747601514157140853838557459058373683433961412039755005032723801556712091327887497559180880078462319795325834486189672011152237120946834150749153862850185038461106223261122015572641764882717321280371688918019589179878014433766597253487003360542924406697809920063595396833161251707946918903188402690018574229080964321061099293058883121617312834228760183650144221001645308776434985515839673848683298121204878225214008283935893535062669940837427791102344460840035405057910536102429831069449937381182091354432460412674074524900773660616264782337931391518014444151575226178178319838878075047662264352744250434637757797198680785241231648083009001845859515643429564747440487596609766041802257418323224088923841068127764155895244629833175824062007909432852703140678768605247344964976813511269388570372801338630011482445784653141934536960369548884002813594353483224818061313740975261879987101999943743890833594836977513320089734952278428763619454318387911859154198489234746035740544868854831974240918621393426098673533695153892109597036721482792130102067262314815987061332189847748312433978901435414343582890096245521915206445428585812695464773137354124714420028115268183708963113766774989467740204005834534750895041171895981167261424431769768529431052921610072497744597135549152155270988764994125665946789586099706648050238589499715643781485747456188699382060499531960341416873558333751587334813958731005899352320253510439408982846541658921967772456013816221022146694607380578921457861128725869763634769236903303919210564718212249063646011346245861132882809775572174107317682438188276329425284900583689546884197203145956592279009041795920950858940351457043361131239372807572176504278046753490824999752620505161417088189097140894821574880050356468609795783345846544238651746191665583139216931731684312173012933625433302027088883382225121221981115954680574526125235736562476544289454273044938875225027095366166129801008363395938390970245541531831602348117964467937342548961031965488785639812683979238721310555390757479260622951389325265819396037269735837654947461931881774722627800819915747321628871654610543039953198504539047888566186761487372052238460166379625852878889331203434269867962690349809144717493961565072229989625576136030998311393087189021060779743373844042131571197636017758567591987847384534325217739641088042337917508659264088718158607871505684782052945898153086093361371357598845855360539224153853397020237793636648137591892191491494107418116870694705412280683502396882794480544230821243321399485046317127163694301590633273092997351736974584557505495416171853654545472712491663693566777923092672731388200189776162969808269743791603714607862028505971197463792889979809438852767748922667354506242210045413885334582301624098694975369534707386347848535694677640416178959235883742154476504398419014885661200152907701547709885207651818941356820848066135242995765569156085449317424571500296257152473647441293388769232435304304385692339019227989025755692061854477258056036814225708205538048761827998985172365484756156450699881436960862479498577767107805666375400307838015740428981177698051615550630913180499146525554277922650811793695210322634397099279640515319443107530729578694183341967098962868188498683823827550088706440033620445150533039983976147821290255240058569268968028324622290054412197067691510787277134664718142790864339066572770855806897635508245906278178078389641827481967276005583767907713521644448879880131764576073039728994494575400676535788136217652593435553195063990677844143844014750443795056629957268503402717332112474194023835049302763458579583402727251039605533043328258859937913399805499375236539741984184529370404420801080564675889228398069473635177596833770969434268061874838703480060433038603055649266092681074437132601593286445634871389762014464874667198874154927760609256157761018248632461169429547990130029359422967719565073921386039072773297657895572814270716809845306690561129365595787545906669310794916999121584257561419538037867896472978098799530404564073619966187371364854001075695529397133475576052606842435754221588216149138673501174230492711378369265741147691143805352717914594705777131212629688800791007489377707591687000246236214614991869159847315665152614101352509379588588220116747896833142496955665177552446273620333286223928999183814819408161204758649423739800109812801712864470818715398832083597579701256235435928832446393327455816105293468276127219094626557673308135805199423664074582886564202300435801533515920806772147499986038354535960512874210061352594430748417662117287652501907882713374530291087392639211641288283770539709570131094389225259421650396334808849331966115688101623748062448519662241720592025284485770538403697997106119023612602316814228098485355095209404010036921129409539935614057479977643846322710354740049960538778693534777387247723889157128847767254311748296624558574022614183640516146301054102953558869247804676444958590868984585774815179396213696592267860594950584971779137690342048707612495924178553732354656019874570003469866762188752604963084436666821972451504051264829220292310614552839881043626490743654854444546534089295719886671455915845884799383417091304502070429142598040647982403303967331777007288290076048533237929214562154795550267681089035618615410566271928249618030406819647135249312906201922818532206209983916224194598773382752951940835612130517834328875617868810375873942671757226343908460175804205259281490203938861374304967713996994185507467735524250693316402398066504720767233789824996347767433162683552521352082815030443244501972575412114798416992251858055296756960523048968970451338877325554113164596564189140393254970025811936068030038719458022865497559891083517590281186713469862080096601968832085619940765631655984441363886452137052288629566865804045234565079938147947648731802154513976851665143187365676495108329677292049435178630793041442245239361151290160062896602312213404340451599491774125080581957061620345617152297848025763904931194929040452703233679892619753841011881603121096764221711086478686475670520195926645189834505349904612943301262002344392951425444108026205992990094962940142394505239026820830513101921052207279865338998303566700258004381891767477672871946939969370333544701577019660744736284069631933549675908930887870967043635460872145092795548190421295900305476876560922533035942952459535553560540558704661865154841143872407033055180908315195748468197446230982133346080355744859391381743456848896646310311617146689908682760975865496396298090835289674947500289338819683084158579155912810136996649326559092685816921136386890867161072479289399351165314021994521080424113880801244721742878092202385206488328360660788230006364907716972749560627110703453872780426064056501548928770261578374105253073301251177026114355044776912568448780084270746261423037899051618101061257144929263678994598659494239324223300365136886572945903909712445824145241453216980113781381438625130870058427583814805867008640667158698987672880679567673716753188292669761659721536472811724485664916909006681045595480803146021839707808198791911625992734209548532027627392302330591047985559295743299381239335702529610276672153398284474540076903240967763070269919785540863261717031387006194972634759766814827992317791356819574406465424921911798669945130203023640936517518300838517580527957185302773711197742447622630210590122758592397825685390596326062393532579676616060511295787901734498803585011282196133880107727214129453350963845697192977682545744525813062488724495673839945667381274489567158802519199051539682703074362153626939635069342856080827347867094337448336922068368104387151034061924610619845385535897963891473077813809084059997243255739860834389120087642930458332798665738668872886746557690682601522398805204315365031297832429822369433987279356979901784157582344126875259898035419155564528488787475975244738339888815344281323117819862901125310709563326369193839710730155010295336392464623523343509010596053231553032285603336234641194903639392160910198061008270142362109340428175577964841076985443230103177218517327051388688283776626207672581785573299583883841115218033188113720768946865421819810410912537370337867130435112189725872756917102084146473819927333759653680803404989540343530189363288164407884588663207308880943002847132503940395835048695902235702778168161698116170954549600716196866301082007278771857890471391054679354470713950801523013841585297661196930284450994581896321375636689312793641367494156411529501735134197851616915159736294391126346357176776660934472452199152760780908503417809051721106290558511940664904674458183222398986855565845545519242593219632634790690348249283217824378503441960069803228265174040330033942791902755217366263612896529256584811636728510688078561855734069275408111125304227304963870864928083298032722086336291330795293399737644781109726204898696890736489843824882337513343004877462919447662093460741620683081377206608318156176412224152111427027316235339785653824390803003049461067342712171550084442408543029675104667517555387032877921736195882015917631583216341991729491520730360633749849936105013011431033286070863457189972401247103374912029302842847288837336246426536616435175799747341179002627275558711509792106966651204273638150500257800445160980249686820416368676513996169827666010784952194285045739116859177417132542812029693200670910686190629793342614387836801854374249661112740208480748959127507153523087835630333349753203305198779735837686901469027463255715956177753557218549114653773826001443004319326311259874068862035951210498930065125063090864052177618189132600426076290333014941167003590054403127807496078324511733493132978626485723702828057650617521667802530309072499789069521649359739320987015806383076319041132334360070370339544993202636567372629593153478364333630557165737716451869869684636181820235589875390201816865566562120962992246090890171010558421340656715639154483131418025305799349985267427906512853750475609738719118322545011739388516642124138421650044188584436161214167063852563716770536578474475751442110956226690880629144701528438590504950988304468736776520273358691227114811756273062151432724774035276845394698779286884102554330092906477152059364376054580874637934454918584793448139193391464496179179423043047480930659731729236377493787799016428766329090449506827310639355258914834662390421902639855457850535167449696831536445976543418413380923153707721389497560748239651933324881971217044429803882419007220587684234821521821114177191992293072503839828382849553759206183018984139898344377238718622378952706974740690313303913265052592633002343632673513163650106030985882460706992181536566650617382902293141986369756155635047732512053778701049037266517503584355693225487144996049245142616083880511585648899808153167219898915350474287946871192742613053154387895042863071675636972647565421783734767560320471057094702268858485725239457177319479154427480975954512198148476726616819917601418155745181966485999995014527959848084025982431825437990960863323236795949337172067511258457901662673170689423079122126407959603450460240828436364314655428466284649564935221826823433482011372246037295036906625145260400867561243070411441985449837749717573087994949257082292277590840581688107053108909364063951398877604412360328357074063286877806387061121385521760054770128795895267694984080517030826528609058007284751204743970954928299140217120814522823612973255281986054420592639335398851932426110276046732841124203170882203263687136697443099902872963708584737576015647692816177587966314789061301620757914613833152438829202572407733633167522545122268803891630459275337870882546633918816150223787644681951701615786886437141932954387623585474080708510296814728730582066299099514301788510198562507267732574557921148135849576758241978873315472743673733795559003243709458206429856418307650267245385332651287543834811918027767219089368334842457362422217961561183687568308227491305526933550085028345103326399877387377179113145099316426938121337123455266437197646567126823382513164830336939446895765759936440833444257562515159094127193328020949910437336360386440153937994510719873317661839943808253805619622717768331120837069015835362124455088953058623664019748028657456923447546328209637820005348304293476957159551169754820675746362285056639162182028760190258143047348749846752701422959496625093179400963185962889933426074680705448717169999416294909313352278531817737757862744634749555140869504850677416199837975668001184096665838034236543636014389472263083937737361860687172252982662914882449712070792187009297959971431671173433239179826413211236920239380365539439343498257961717139685839441001211781370253454384026442770339374656501812049545905870718033431272783701948002057195708097680415308463110173009968889780748447847146104109779685588316531626722535266758896532119156257940143146598643339478665150385522647017515240387487986427457009097181956670404848532194040857605068318952269520269282709535749476645047379253486516790641599974311892998307460421476731676758481549773599667479626978200108417351129145110783413221709778251185008456578185548532543866717984699427587222786686334675389556060647275567075986381229758998647336442921447992606414935796071303704011706798690373334972013323771804701300191283553784136115661633097599993627088384291297317316416694291045880433941650315457078784664033700698522451867702642347912572615464824259654947691175147349672353452536281239797862379641080345464844336339010312195890789883478996189474906560818901936891485562481290351363050642662002292809961145060279236707088402201479698528002889129122342969472710276207591105359443583308949810787520702157387311797947490024804353480779656391362737274405805205280449751267868742085021992001371038284078651154898281329675409114011743238428103978508885332362774397271339487255085183816078348857463307319857823562817873762977839683762485095168482815716940579087103877678187370913387302405494101409086742060476991061762315389654282114437222808087134294501332567750817729076797137665227358067252533010863524781512868681109438860721143126088394599176259016771112215445576049814686378750697574593089761305509932921441784951668897757163901780722900101969262528866444878827691897903965770584600805339927801208596445663736903961289657248925838064159300035770302371170817205771804366284202455823972467535083593883323451420274090060462689152808398186161384124992193410748598436232712371737623269370462000948593861173775570711165961116819333035401759369658271028335038305714124722108597662520792759236954578442180131672818380579753466078729526879955576907809915457731438633339897804135721024731101892148403904664336497997719333409813289878321255213869678669769765429311291776961987933015405768463313252403892097479544288229016093426897336793302226837402564335525330196334806257039255037859652636046164598505036373435496375572991316914663128386544743329635572292273980238900504427366305661221693104846647848499831996190890405550014665637191415108755250603493339818158803417460208108327878744370401309349346495176172638509626995129516078111655006218092770670551067358576638539172526686764626177088650945884317183892778393879952426031158950578894027554248107777417938564124531388227847701753085821774566240312085917918402215677572588519703643419617233569617828895499771048111749577001074616123845606024171366775418721696928982742690547165613018948272965139561115262944560516545064745907886925972165825024830563650893086956002151495254326389303080368948733532727786953377414438981093112093399284555388783328572316413990947115897896208389261626381539688816911874416315488782484781891714814972617710024284058525401755701725820474570515092865368274885363900032189037025871225019887277064609592279813072140289862929772207353545505449690440955054026021521203839723632972457151503632502987671643033963410191147279450421472456390879861634345104026255720502833968483172810680132802094923336110814095911605256955127562124124655440553759760452037202475598277217636220112599542797907008675969249034043294983290955589551772732986729098394948518283960863303703829123777260674458592934848937381992612778129107603299133196973022151168486185869287670485293449682501753190560591868388088650473758074614687223327349681931534176062823225699552909987177483913701127106088394652760154427904710982046311753280081192795852983438697390402009408865762993339637562605516927049918822952412801585836946194816945555943802171170873108153580381699018721379931342552238838674357419276731791222155749302196050485435471803202717519937827550532976611359709143122144518584788284174232991913785152385679603830535828975520989890893902164151586502481009594499660474026930101941731228280565830784795294824803665226025887675629529904798393287685080415316760189885793602390693451622707078809366928272605642870609968761983662111796939399392863369078376765880046070943962934572948305036824061295359141179823470349534569659316484274732971274387218568330026257959634860643603300337538598894614959309906305099562249255636967842610375869152890396332255212283131446169369308340916349553954948546342567225934422074476293181653612270243202510130235044489262884577542110099052856684890342464073611139104393206478450840143339956082695329722341917955313173148820538011464386666300741057432124356732362360587437552682953153556811744245619159650039213699311480728395576877551273370423347238255981865357999223172291936496763279509031009251702366163554054173718261272270885684361461317981503423938982284866882163218360120608913685151974197304563195949835474078549661567181403866585580226774240757087890702930046604743548661510767885298302802924413671564239880750376970074333428438412087577107016552364740214580054811354308507269617789185163918269303758308812312366980701697078275818376912215217858204004024137522564061297986928503244661410795856423664215727891986014980532078471385242283053728669993945456953675315745408035870112261249317499227331166088503978574887420819066470593012723995783584174449769016033261245336604056843722813083988852925243033226124511354995084998625067997788788632075623995687118830868840411486205559363897140939575745039297725026393554684755429566875694166597730278576531843706777800771645432920140468727207828687968256940048036375929179462393775087673963430597268913732113636029061736063294293437119380709357832657520736365382628583860402170832567554676869330584291591964806887540911917528542033954347224881893676001273839646640161451580096090148247319770275418702751257516547413473411066610164777702257320238852698423872809343033565478162226243626728502184058574450852354099589609764506700690871267533572226685080399744690948332004076108791557608695274997458855214325116848273114506906015732168895180724413021398137838291887960005430325186626183424086382386065031537168588682288461243339978384711779790878641025012022477266906489289004538521796964392491017118466121686597190064029900836834108347462242337640135229462065519725017386011580119069999972064854941072128167205905076541022939242218857303452823177917735529089599452831453981241331592392569875836799135886441261855768729634721111370833692161903487102444021560565405673590016574961071911220241821087149055571478538396051031046565314966858098266175688226814859932969200338878167261288233399885703256794745007172345425921222341481479184593292891578609314473865967056599516917992553214950083577975379899165469945091643521043105523544919500649865299105706258705576037843887638261452415664883035560839912938069535985074463465884026759423699133871228767410479430668418903286419555502880654811322915120314426928392827015832440839359284267762683708058956154988325668460708973277502467045534587958850757313695244000390790176118841123469316631387385347507720277938114574980994932183879577042444963621473744758696502373134148723641686292097207353066814718076415330708933681273558983356837782342020931442566511300612642906903844722462203149449640297864255873294721897638294696022688514162425665729837124398516587553413289855358460983502537666729764862522696100191826351317196694914449616732151319767957874769835549585165331373578309643067985894255608765832462121969203685531411291445254622649118606945768977203296682858249666960488290589681200079605154586760882669171777358393887882181584909494946149008075308141629842264785502248647621902491123784996177800432248451018141976309745754080198436560467610119194037545583696216684566132214129976188204806823579110939768902164390023769588240105001355971341359364946958715822142310200085615532545694860378698830236420971143869162682604089605977656604511019190938644413462623072992353079017224995022549118383847051614918506645454501086288677554153775101602954115792383832764822011566284747868238516562575580833967670404079208875144728782942238248115929849941264196717492573771697352732415188831445806438191120325774344042222819500845285374134134732429432089403334946830761952651542046650676016811600906615220069015636983145455987121643428604103137547411634351684203506151880520559523375529672805620759854974916369126958326058548318108512573334457068936619085243459170826711045350079914430905487533489689493449225646585749372182467545146908840131669929815688608768103483583337281333903460734644918455805849845274688518537148130375566770521070655096686986396214936858729675592423924423630460175533015793555901274628031844377735308542254833839249413486243266959846588510974607907196293413102504384830455241100226276483095525322036207476324244219345733294151856729117078597529188327899960881453658881894129919974373185235400417951638144166366277197567440595270429536091007067366149988591887616580436590088793595219279946654015271041000549859550905950383718421311573460261645205725667620672943647413945056122932964409381587743483371004696698522908487928620715997726033755833696375209965704451953937945549722969153982658188063641090825182697081644972717410512258326890251982796398268269621540308357788268936628465181864641661712872118782132810784798918184322202953862911715529288146816488336580604679664145291301472197532071589303042760041902965261159562393257943946907896152116445465493781270153875560910225291728745719150209566795217008620325048560115597604574022191977688704854563156860621673648899335835338382833396716127110102102774053350255227497699928832423641472659707297508784886599327204127214918035030284765657952115097933418452422002272354254885311044553035793531564357268683637181945071843421565765727736640270090026847984106389367505614679654883105924709539052846571875360923074751245959530351654301111683163916310180921291909743307497769611832208415262658299998695753766971310374848405517920042569513312455862436159653683236812294763521223619999321536593560172658235998400192449052149496235719410780357432895900081966424130051426142598013378776470273070870672306161008436593573092352763868320802647578589245921039776627693520104633641735207289803000448642742579378516150137502902166574671636408607027603011701583589290854881041950340571981264681654595135178698049346508020093254620083542158083145340685002021873126360885446484556437072288906426973459310502701619689498378470093698568498880384136343021876140482666185957496997364577699603246888924755685415739030959053950530504449553651930355367989387416446093680853669011203851258432638656375705820095736744311678766436453622353612353544580823466402420886142782861696065423391462042915871840505922200846530667272373693453222699239584272897203930481367181898392404731901963094694390018779234303624740406336003518552736116922847004042816775490497548545424028106116872742585399877716261246945540892225287388581829220598963752986831132347787600962058473151820441280428936167104641143284127201571880912703607302876043458771138045967658601723237340865394597637335267294085133523028324788588133920672051947236175851720698508284775793552418995997697927245610178641119864638740650461126667196743955715777554346165592123517672248335058710576567933339979494030225683261116277169892745510054237255786854091585481608908929027659621678443259607998005636130923865461543037400955675369908894354212200609416984504205843033661578852323680620302401424254193789017194766438490342611622159911433789948684654555983476732135960634477150725764364242288451038699086781531811870979892996599019537316530088839996090119875463922411238741726518264443269828543731738288891225039366188090058393565620311022336366910077372879972082155338211530450773367348373859026672923996715224589004856392530547397175279137168748183756654456287442578200467854370858676810485678017886782319642964505875326825103370638319396473030208792988119484366968588237562001987329131490228981728677732484349968647352320282685003217456743604989043134776823615773790077649924110618882781327984644917422472445423081801220195089909216516912698213338686763131977981246162204609335454118877743902587861798714502375770554335559098508786953730417265462304474659440906376331998429732925758773019731148607298442913954428500944271436138843574368861606070328557445073534446390373829116261097933453747445411632492696079134955070714472408602302019845690384357451620402656226965421279883623837248621562753137381118713349770247513534468872373959589598530475521986562389996399600268294839759017364778351737966052760282282083128414329091860059959265802048739100717904813041884951556575930022142518621395274646227746224800356813925104060601774274403290579398881012504576028153967486292337764137361299115229833030523753968804706148425816416893944975660444490951249601634269210571758045727864527899416829760456527342601897173334716300364375989730566468021764734485089352149234176217091920026101885384004013275253792557760766003656902172460091571257274677517863815882169844778480015050146493171468876437580406858878066762331088763413936558165789524243341936801797769092531020614105326946425392742385037037106658876287891474956953393630338621683244804375983675022859793811480571979523074285167318816129977779375120441207813615406935404061848760195749705543749231387372669480947815035863194377627282510263834435228005673731343085121179064452686454144895883754409877542728185458141766923460875360033381585218620109437933751755497494219682363124500597626979019106095563456613195569441206825083403039598514536832574858736392902103027141058284061184959705827811312941556473776625972331647712851756938717737153193486461003560185822177033648516512449487529306789929479754606344606768735921328603328243127212839600794194438895587229737331413903766205471731531893736526377192022312864761595802650368583652417877717474997929887584767674152118049722438309766455902954546534802067470574308781894092168965901103350833994284399812112394074327925667083784993458224768577710879731899047365093693262278431774860034457768430422696615592874567748714999733843413217875136176659498545235325893673378047815026429520825000840051978920408062326399208182015169761242001999213986217410543126197465520725436556559082828407060966457237419974446346065895305337857866994857277265979040377083971021433144019416242994876771606832545002211362771121654610922111821565178452044634596156960426705747559953006895013831073159314116164738229301436363685280371768291418176674084296690861657673249588772211205827032597906050554353799076546481002993933013599591658180284430742731783081287140429355625705884049647446043973016331041601929812061384043267409277282838727362968742675688308003807076567607147107789268875975056301847037421424431750107763581584201044871260725930092121227316217165846061133275312866497592693676867334123747810819369550185193653521436738862503048295601426279979523838376926314760963167522162828937523969940752916537467647682978526347197417784827017401306066196879267543715829282203368800927100119101681742272937668495203039470614646376492248710620402060875198338952147281629610935834222988378572244601877642160487412468987275995486587502632438043551372499075549740209558652291792373107707121642572584008813350048236496360164721596885619681951507674252269282984227878985706538722066980681281842161373182239556747739743251443583966969399715036657881701443918241212900476816190488032571450116204466101718253299262567889434589984442106275388852568557588288813121537362637919878954694160995475502872520459506746924179096138081089957733092437323129077116322585583725340515384750188595938904645430825026954082703900205359084276374328771021310360210660322927236891123030419839254212499760172284480716900722162208363291291606080442641577948292610453417582320416152637625721734358580616235765690191911634778435265733133791807852277777128902202695179500121570169110007085713190562008433186841039780609446555885766263159134471779238938388090378865852109709811607178662428288832522115476111103731199319714649656352889120184522734664650081363177007130907380823835312403982491296999357587320369410644378580139174864129325847997445765411603965368149857514215539416371598826940130413839923561905092507960608372858198897773339637271470125752877583236743895922021861236279746778419813565565223946419165942079768582677642836791373836232037884694945376857537366975559604035730017623433157398275458450379495722531419137053082986163326611192584560124528896772652805609023952448860070884509710685801405086373141513654632752778139855492802440009125142966878303850070697836591820281033093601009739045620371254484663863336780751083601318414265019723114144311852010598876920133937038373172838141438309304964618664707084216176934795826409145675735407856014820660568301566007928499183455500398343726898701133428820848546545452771074713734073603265518563527893869273928393979129224349923856616642165404565825915089338182660921422942153960659011516359731326534967124641734817694954387212186047686050849555647756645737096662826857694352334887505352355202199585296444430071085426986462788737782210057376808739491284099420841226286538593911237575302701276856354597501384733203188365210277415596333776025049360922201867452678163556552719351567095146110012613098563506850438691071836902493558324141815233713967523104818521260300980007969093996302985796869175839949798079141710385741119980243759231988160502579491725182732031401680045345934267222694802365270322553362295252643266011652298133437288324443643779747623414321059715912133472140491360691291105111004137672105775255713743424533029525855760255152300343218019728104927298277504425516801610326067444295000840914795488851322463473871441450597746398303844581715663986514519914382324068223192707879713524868599737058691626655293718578396883998448744395427450147205230220707970302719959633407907761431659606395597648004765902446587234186695708139953973275932718092655084839583729301670011717656435498133936946947251510374429466655853837391908731062999939642094907149996871112899653171499139144565201955964981919335358194035103496640828781836931176008717067150972853251284739205389466515106948743106659347052409997404051658868244795154046759394742218967066447682474913694797786978058140949310371359278002199645618586151985529893847335737534774902750274035892856161455781320654271894201080264845017416680663956503227962674099096520169067556276543284914458432774911026703554021956909717553566868606495621356576918067826789920894418554530441755335262089020033450047980047910455134803482681495335914500826366017187459677317709753017064531511710139404707998753126682444646227418893303601709562749178845405358373505899021994529948398104125783462288276684215579883491683222592784712518932056525881203911619002193787178542855280654524093947404956611891763184746410590349584077695065454100915085843433686471796592059820075608667232757181282231297488560794095660464785078864952022379057763638034152850846222129512013921728585137636895197756397031424205559844273177747859424387988341678191213538014929112695222584024569050434910183415833022375654540825035627392472346691301521499081547991994207790222724299257186091370812408936270783430942486808995400225367555668642285888624304980589232381945333046976190834020396469082635333555624664064841404159683110524624960064023342027663286557893439869267137882853175509155978541374471404288517748992054338169241445628883531369590388973836979584267710919054436239947722680581487503203279344101275749435779023506642712531778427551039223286265173542193893062351992185117838570489960262340821369454555783612283062738563826461449324239243675464704835628171934422621655827889718017482004747577086331363796954898891519527312372176340325440183265667626884539648577972178386324706651742262188837595608174976054078799618787117288998761555027976503970678479018403790719088329607030732344397382606793410327678585126274663308511604261882940859124049035948429467742363359844886056899153296787162913295928310324105958249107685470301423406205836120591896714061925277043161479399176213160732811097483449523132182713704340083646627538722502953604151056425580607201618755138327807007239749459350586185057186955676956468183464735023630322035941543102567134215654979273535988981781805603147859280334222456532465958626145960134729002914600688932141713065809005051834501285004796601094433107035007250372020419875608922639133411754601231082564475923979248615202098634542726894453897509752844612758770446174930375694614827848170770139307064971786400929184171860075920012476759800840682959826825721217535995661185496222004900555801733685461144966371595044512887897294743778971734810855384289960172370692446860119731333985748891877716875018057551761055095522300210370791744493898075281085049196795979455564984354580543328216946875870795540174698711842376951818590583744765031038854514539252902279620126888893144808999602971153203633156241204209756256143541891212480561362524085163122390592936075684978261363595784769143417523372334715975619616166569108430922937727764388253895486073281269857312841824431282059132079279305223135240057712903479934981513980273716289158720168731516842706177275707223006184981124879150489003933257387666830204807591851705765389616660883229743030038433332338673135341170286338385533234086422907843106668695521957196176011202487771694544978104837187027502571029797324293864898867982790097901111883144619074382599608559341963499006248809352083626131359617167694820793932257910330338951684493277916114658410899739147452884725690325734597629427118406611230534871049474477298271370283889053117347276256505522253246149113006307824924007279810942407424213099559819229956385147002944880559990306522973293999855686686083539394753899754070292555254713420981809006307437449267660122173145644757771864686721101509699919595525114797058225415380376194535655455603764626752041837204596611805316318090378480037194112955333149579022188237832094741662553050610640420759377150672005094424293858330950297881349461752900293476835619800329845045138329402631891487645962998099832262186806283966147444532558969632648280240992961378317937456727099957949400429842358061572004219277216521216931922458864496936736090382425277828744746878421230679230722098519281142258325448579683804415521547328148621645125303206382630291309001816863009449486377202310408003540736387634616580300763174646504911369552677894933254582696843111736545642870382071848889185020587906145337626505653326582392798641182563237592696592763642355548558737271320441700530795994137832984689693376136140831552874564929492455707829875831109319409328180963241061801347816902242098465495969964225880866076902924406768576046619756835488133606004398966479934174489427178449526669615209588281457887543733081553758270185352165328149783328777575471878594582570409503321941511810420968658869016537925548748150456798471252899268379373866175248171565675159822124388673102145252393256120389539044748200904913044534843262562843915387405946870114894902463968621537845607147490487596698374065959215450203593997737910736505314445898118858924187463463732048476383501885896208743044332752057128224654312059357956851469895206456763640691519429644361823834274287936468217785380288049352704139041626261061436270295662603872985240998335778124326975425019164683040616810748386251267655716401484832406045586120033961967344668086002467463866905322946443737129515570200514975168342483974337375963018819743113837600809150916041382780611339637926537102433803046894948101885540575658723569031584227344380465343078961962205174599120897519721376455135019844087947402806324173002174689238586418678652400586712297960011184934547497670683807013000425346059329934113153991391691290855086801561024377250367950504050162532469080020379256111900974175216553882553147726774465060340000661177540928243076316373330679740266693065841435894068462278656248074921085933732537607879673886665157789886141662228244938649358264463703419997665405750954713715018070945832936750799283753353812392588788143864618535153056375177095356845091985469110658475260956765614171326082187614639914935862202008664004576898331234265883999458547138859569563318755030602424344544910165576445833330320916195191355784869517055811051799281787862070056365540159711617361084049422805403560987592212031784061474164009228200385640674397018456199408222328434087391151467130886583966586909325459550263764140130586832146791926091944241382787881143414709988917587750672840531855060973440954721935294377559291997665338966112890539783199027849692977859971032584035716198017554742436458256214866692699171255110893452549979206539038305159153239825422186236964255770080769279199758484084068045596326435487269864467998874320275936582117483607538086697022679540727717521719414340341092348584224780626255295635908852556127945402812134263856559314173047093410216358138106893594715148645076962175577645470597010105737801674236811447269209159318524501712130473027737604497620872740960182096574479066378772364275927374962798872483183857376649699719263772023019158302140908064053280214169260855958867330410486023715501894349011103180769209020637999330572512583781978901591884051412946973868737303145354028796512042905283469769234693826856170847008238136870651943271098622410233224997175191026405338545397953070540282615017584211646536606153876395345671460374803051905694368868716154817082818964646149946674225765645582503255026902065596984822345898699317271453006146715649933390085656354574012526939001114564412884545753116781656993899916532980051432666433680912015585025111700196970644669963391073227555698045091448823582846142064771666935975145443868813901378835291172804859793950976177404346028889370242180676856919103891855157438360393340759047101798768224601790951971149319408966332671718334368607960051621127243572096709034428426954636473143255530939282199798738292541899247520385267571122944954546954817452265324644497114515330318829304257104329357542391099193390602392613744376092667584643604001736661461222661520849419710109178045984692825302197001411928862252075464270420719268628644922440534097746637432188483244769655932436464546607479689816507189319090189642473492119877842846294241664625133095313660800733830454610970289088058154970903993935714368988613321836324733401124041532681362034620933901590062726674325389454274321658133947753959263738189145742241514706868173535176000313141295023556946407925111922977439463862283885458317081335313278098282219632720289173923461179577875557946703148790837763849963827103706001549796152092229716819214063581749610200757931295661589737149401692546733399534797629474613133591796649836493414000804753693048047942685352248785049092909903723853991123624959113097304698888555137685566562606902799914628889575632059601881139649154221654931091876225431529223188920017881372350922619462245691808313310166250694889303119568030287222238326443196317990551005787742068307840699611404290630270527920897618585434435566163982070430762706562162167887219438018559137221332578147500539021112908470279946000634479023858651815222488208330895187217398637212876596065075036742110494734477554233777284782474624283941043645331464045444009422483538345549379661197371213771760437783181953620425095838636746091728570873640025089315130156662258312164431650464440586260347437641484823735960167180111551858542604161648683395317094921166873669828239051247828546315745024757989397243194707887582945831476185226121202077307407061680672466397497615597905769564532644205971844088493667432608203096566725512287868601836026862450882540904734294370779416789784911648247156973587874847532367390337004405784861228936950561350271577962625105714056422991743075301190007095665551048659309748803193303328386074429632664397949186769595048681245194626813429968758416372762053119860738067071559255299600865535261679001801350243819614058927721262472230660744467381943597086799369027342348098400005522272558469486167790550228270160015039659558798553846023182133989604377276857098213445363857863436287366292779282262921828186345261395496943383978000049797888882867395086589158138080219288699261753362317343248248574266354734666376802233166844041746804317763995591364145400895172582610458593743245085167008429409818065514573916790967932402903237805951089338367310577036421408770696637804633703508979717578413392486257829274935892791843862020968762882953877736476878865430778113148446310903335325438023148714886563675416012257335659094902794770958888459826405571160775949949388279880163188916898974387594695277546275826913915160160216421618881012324712345133385432885425968955577043994778996555552100642392985135950813836744855740932191708020376079431662381346361486859348012307446430855965483504055305423062613516141030747090963209300263853761949801694703413136605247627013456820612360355664449254625425861496448273881546086723229466965291371377194176365307585344957541133735483556048990666035995272838425109572026998440126705689977666741691198763730856932426290223253105647321737609437546760374674667032954514625785374215642190377468991452781394403532333723044865221822517481985351156856028165092758399190821167728773774248819754464173003429147143847157519109874338764350696733684197465210865102054369210593229809926305965954230384260199432123025947527536110314113368155783194396482753770002389554172947056514522237908745599377347230135334812947155326498920069242984130506281339783822126538916892742325751518909189322618906218160494491323223843003893013536783680526656965146650728492828031205232608033292432263918486477889602664399217856636206880986236256310125813522119455553843935660336917909285667127634453851317276670276669658882537572691865859708245339292381786255097463208010340767263844145831092168469305985186275904090115852345856213091024979994017549114280473633345124724641977929860320690620837121049990093053596875341934870905642994724788591734696480180850903489277597992168007734511177436834983472608427921165301253640014501205205904557168933078139616009232730207524733085824337699643201966729019523276842105381708973932558850302285924616282133101106893968658177524377919706258985300976934032626998261760887279050893289230781430579310889277059548459218393602475979193886238044810365697623436674993918155220496697147299141976639252657922551854172615571405082608576341101239785377474541396969265193105393700052739961823154173676403698830635092257016773024919615830301881602921455468256560301655118644236736671735363726806314452042375498896923982378181637788073990108253368842122142449182573393374570892041094533977452569090122640056878797104007391419084546988351931887005275137631118820254199540449955675114181857977128058495743564604013514013565181490229724208284978750635682299289951115414662185716592717904104590250069933605293455415880339511813494537520187485995158191469557773386068365734769398816517478158336757864313983029297910885493136268805734669219679765543211349246273175952762212228138345594035405187923402956220097611185600551817037177446211509314294952419229570356096278138917203765032313080615030830273924464721481094359671256894851703888598753608650154645768436885884125075981584187740500089192900838615447303483044586907661085796951138589883286302475520086150765245763967823610840710481432664021356150621908073226078981408327253633773422950480158010628372242443212272174170547183965003894654962265786280197739589697185157949998900529940529930080436692551126046929724866260473740766085421302258780871340312805437033883615031052462311282392238117281387159387241467323576456330235272381356540991270109838370863883165090597576363531538293650919796582997787002451851805406181800678868571009653665979708454111723581380768566079447403085694654354189068012276834357898686004138070112243918083147829780530292185132201195138387016504615015145749451016378094553306846324597036773991196961606591954919566731826339740098793999805278114328928723460448427450474350612372873035957763378635796542511045089608265504446446520057219085689770500365724660262656985090793125953799245581308281400445697263471637941259664194210788504302291935610422112221769073058675313973598844840298273321751055750962940455276230809511961881138799604219317116287916421538612192022678711308612913543111317903939285909948646031382678945891367491907353943241981424096311319653719594707194536389803735470715896689309120547047158805860538248624973475002866344280780456029712251167575979957604661635852881297966936006970558923241458925473702041341647778708495601646127484843190151829569155679133561924513458067567037573582139048395468327646139511005605236913180211692672720918989702278026868119086923783979777057310513718218190734936655225095428390870206112660649850008681080432258930328271986910591310967466926418092427913056938598430535131713481377979265150727247142518882058458998454724003723568115677983495184627397610588526674168091799006313673606345403247690114214563689508938735707788501750259775129157145065302847294390335112171218327961175663181370302479451586950040618278723615724776040636089177995694556611749993018516058415366309893716671824856453819785816118208427850945094397788193417880951043663729113437112353646595726406061048758174675645157858011456798605790032585332153945519305372305184131924104895236656035323326245918462899353317752530465880396232909147638413556265881422961291902355399771057859868130118177902628313627326356214295278964788302455726135155051323363942041874054600740386442416029192090573272186258766986873891159892482762092041009444531541577811165802319995143830399148484715262084478406844277940771575892451883533966765216813450824115424031334392246909058814560226532956079051432352141642978770475338944100218621804356697037660835146057802311268150116797113536438493129485486085744725151179180950631062786082124648687557659319501749942588651293814931573129693532910507369254344641282860327203059721812198735225093615172161782805191348123677470059000345458434857868320192514390452584351894121801378893849212616874102469693182677437182589281496329298976800441395885206195840987545497891873199760834340174461656897248695342705494517194989842633913147465292841831569618534329444757787823492656494667553562778791345625111317770140750139675582328810870317234998190143647832338081131928071762529366344416702423577718556003132593491215803582340988691508899794748403571701422101473033088282889179171649050813843987928418038452974535008178279234847375695531252891441686296715004290293137387822886092977851964992083940086310607802499981972140677430604714774433370759861740679764849205758908707966272528563108964307011738602647536184431232455804819905327492481805189122461767279037254635847367579870293919639968675120827755981748186489745521928748190899446288354738296522122638276353954999623909788586443579718978283868773968385218022883713089795153994150429957549665909142441096872581486516215098961527028896163765562643765773181390879515170586194275402827029939639775445255405005265118925944211866710214838585121743297390448717072764353272965327160416822268836875182863765790043968443081224533531176639066584715789090620798716463249473316638255095093225957992556355259157156377224792784204966944038911754361324640779213664450551947763385679636909118884624327048119608970341384812531452929539250598254480159360301690173011610207403337616965912664604829720253776355880340095284787277821301186187068746327554198975621636375819349879895303347484844157870766893019942158719810542065568367241760113179104217382891767375848307341749584794185311375558560473345140248718704144860065288063416589715454033131319368829291263494932809984935376855294730788093115721003365352571038327127885553387432129895285879805209484223228691117613308668068994361238492403542690652816371457340222467512678906928378308489773840465003594271282514460770348632012407226843770629497149824854198391446990527692463892542256071322618489074071197969627638623727970267261494797812379804801660729145609631377042844590086874154674173097153842718606756637060310163797901104444391833987561324514117427615351087066177445920384132708950423226981219249957604851122507428789225970141976486281177138420128650087463321650104964210487623416566711180164173220336799135283549876099653433240037380608032776581412223475323078526715876792388331509120942167922680126444611338078585118042867481411109556214442450159852545475972958395197797784573237215436096712807220653551889650097781816864204329512093793361866251002910908172509366381377083694744910942443366451078382218008562495129060729541974749092019823127539422249601553991793431219906687768907720390377217059895269157612388737525466813752491955759485960465868326308441387856254780476029793493873947923840632993188439157446564055689221344640405285603843205090206270119490229224144424468524560001696888668709404999009983000089309142126427123003039113355184587270873692561946284449512578092071014451298869300581373753294257510810372153988239753021071429743121761755359925794101858235811909761563225954165921601608187920732158687457341056348343445474497271779798386072998621772297663110093510981300440450802087494180053275156590154505698398437040559499550760868377165362503341286674409076200157297655092167630932259596813045094724784496307825970482556448502068111980303960146124658587658507743891120411065809041271936543923431513958254049681481870734120053777426167090420455494847493827241236317063653135619229486031023625483343088525047345142650157084265458222302403788827996573549453168114802265604998643233928064138408679956635979426929449198012641719299209165463884468052417647109653377322123893060482395261592164981995315243949229522067686662488042568448846009705592420414848385735675015830930095351611442700899508764576638039147149801099576611120422731938131131720342323495562009526741645757854243217775649777599612572001719547488850284615405214340637736159930608346390385196044739250753011882331766521197744235520665704908606567514887383905606828181288268475569627062495096753721563207139971246301874600111021601339208053897923805680399096269181880378465689129268814458877340881945782913880970330439494465487358944939640994699558362070785268711628392276858439069618450633290131569658866421451454975853281146145446186656418445933308867456138105786333505390143668586698444425545173962734810780313643225852336567499178964624526363385238935668282092629858543612227940633601949080291991965474283747547245429679372854221766199660603459454728168047226733552422800386539032441192699677286942527943965842793287425248440232298255037817277957444666289401364733294370485632166017239863753011769556286254798921312289115569237398242224693951083369289813701823594130040981550639961595275198945484382015477057914459474611828649513979204481626024715767765045072882812395743019813209865638484966403029861962862184935826522992417434237310017526166190163016278136587340411124945009127667276911446951190783822369608725727455651427322533349719365916479434656213200875263594384665056673841357167292301231586859222569101078020333265371456928078137550669779547931688853802407271103319744640856921003199173460732270625093401121310188308228896808847737028534216464350203928973632799158871814006358920372730090931025780064284956584271779780135415670447298825876581038321230288896420900589647450176387962671149614893997875023080805145560288026264575603456607191779579282132668172514323759763234888458995918847358726185188707565178959332388062241634710517739640785605188477687760817819666860289903360224714645589632096688288062871102788818626049597255432228167979308058445071228581868467956032226345521273929607382751312022225491447936557787385252751241652680145539754310691611700415593274415238812585193755464413121993231459371745817508367983801001972148670599023922107001864623449347333027122681234626327090240427917772419359778804601038212704734769049670497465040205811680135233320933474972915473285592690006577908682516252212658973307977324826309137674985133778384380829263115853845627984079953644357279837053324014778327201188635502535554574311074165215498504397293034245753306240125057198976861892677841986912688893946280653026096873658171038026974124760147898650235934792773224044727046593847724990486317844610764245069850039510919872616341476193113942121800778918004676343303985688311665749329805267703178579827022613623618348467835295410289749045636308230950857539936395359766508173601166234066103002735002157996199764472917420111998390608465128497857675829046583350129766271850468564509765849309778947057820944902402685801285041967669802010944229221001506781808200038253110910181882729515516253967200783670955948827290184904128790185008260738680037413538413903798595143303434826396130055170955055001404049771106154870082481433381333968302238880544521720386695342259677276903127397518729655223589997368264788660500736265941513777669893183954998566487928098466756825386031575436744108359566433977157515960421078788046443260859587504377537528039242463466302686103528252552695938864401638343080440037311288510016818343475642602452596256224962713915222777752791481534605902836649808953521121460237069756523832879521498852852597268489186714414748852452345116232284113741694756413060067933077199045875403582731107463766929469376143149645556622384182184021511609063932066896634607135790555855069516986928366759130066422600907330658062995152673764891581561882647756701030840755948532820318925618295132961275315959657921443992235957687087006712155777083070343560124734107928085782436004692710624260825954864057024284043982959800430938466083536273007331728163153085224981760614105159575528430544823293245125853511211245030736763868516407373015981093796549590193042575820100279500980481444247271546735113167364002525685479883938882200747204613270893777586525782097782217763245893914961762680028067608798475571357507043320650747895856169521812497288425886859392244199657760738842924358151410035958731352099627001678871495809965642376708171602679693221269451875174177201695337855435742019296722214920161227360336018756879567868574185481797714103364024892627367090956972366309001396853326255375480436735520432902522851205100089565528765627970612333020049184165555795366983270941238713776503249233405305951769906863905800296122706358531559733326900349801447085748641336541088796438098243197793877474836054652254286885640668218365936364703363979729677174505576679671791074671774557837658009271312457729419085402152445111396241101014237083673991197370655995550284239969259652085971388843081911999965763153974013193600585037102145017812473168151344713306514414291586280829598414536549053276400256057533621600386440984522015843835855678450275196594326706610015586824026950831441773751143339476173346768254461575299358123785548925913190969224223739842866385816961069998723977908971661179723907856669746248513201654246165941296461648531574950407144536855257369748940753034319026644493928281223522337898331982638583032230119723297580164177964766192489389755326106970254287817131156232153435330057457329728616570185856398827569446966318257733990832222300559008745175760695930661098468557664762683211156455211947288232716944607212580108729827192265157963577504091038065315400376990825674163486593060565293642193335845333746994846987823237117319960919052035798964230735836962619312746751757221918026790119341548552838334878601594631587263392069441164936561918958517448744599902422128798729229941407915698311361344440147983482746697526630857798814829388257589965850507633409103195360536248345073048238170443262475611643417271838512298164836394213953138484698669033040778599107102458511289640760482222018523236087313305228527279432417959790171980830527984340769901415961005629460640623829672076140442068061167249308815486530932347121950815251423048987671748431788320588645237406930033564932957070404784958235614808622674513538654286341477246679771622924344436375214217547968811351001049257704739864397638315684600189299887281103015966747332916322354960674666916957327869108494872739272015534921178484013400110993036449207016740399117143934613381003357500061245911827560626246360124581518662471062835778110511727426344829584826778618048640623288286986819039010740470885640993953158511113047031722145787995865301676868442826537711159988286988757194790016910340161108433749540507478317931657379978988196238536549282662560388586738449360958698007014581202761886199157652459168262581197935099918140148137822749331064893862902549768443643783502589177808749806945343932490603046142818778889133795709088479731302751706948533871216266748468300883549142923493151417427096736495800792250553222821164329795730741815677465925779011274506959011479527574726767990475930051954769512739904118167044833356340896477737333252253761131757015662959584369564396449893490959329666864876537299703978101426595655677943232479325393387621680104674118892232203666341697169413255378941550966577238271251390912376192738505356750768159886501754427928441973623896932012010916544748736883974403772201547262026520471750925179310799544036963530104691151443131699558997738985631936444283457929582116502960211344853557924492684648611977809556954124988109077858895763059623214406361138373313368084976800563110303870623312788344303943897524567740712180804336596838607232189454851245391664776033878674744279147698409955420227965184245247017189064840656751775796179799844090804103914994036226984400118981257355111663287095504435765550143333460918628581403531977945849317280419603450418927533371115238902877891019057483565798023148471517215137792314045092054637675666239472017407771134370372519383596844626033359348301733425558103073077820771440185886682593956441904025604380056319171087715302246790939058465283548980657833193081725767899772557944174456451733549381865935043283137863637186494882548792346272678812089274935993216455642717578153907167901988385264670867402186148666385559439408179220524806087119719157398402840459368475917454388285999564988403204734105370500147345810998950084176907945736702828127477618493177977115486320950919119418041887769894826047229516355294505098604257559081441267270904112828379955335808570849257222362006945667984279860245410822185554142424072106403201275107170504682593527319156824755948898118872088126047129039396426827961277271638377794410378060645508749862759341809369096443903715667666943345639309851278212290494646583788123287200372577659230350555049793055491676132056152348178328542314806643128715199011943372885047056746691764511889859021634235849602532921523413754179393495433671634180654264649750028351042751404453898464539028660666328857681271480520980245066780898969930799045618833811602334690965474369329699882130517576147357286178760475739563320367187487935833387221516891949501962253865317521588225597737411446173791677222809632672172223353653116550956704964667306030813012439010735191061629339849161296087325207750679700479990456818263500771287980677630961809999372759954519842706858705120075932143665255402464551798348208882215543420590562053873683488105780610538721149562533407337996628522743687880976064496954636612616906212089173836783091668647901572414869282182729386174600967175189731314666054196748511895595452458994466902401459012381399251206330344527011907717364141367480046743398519564471404485447074370181600196456998237573754591448925858553999735667332330928563008386119901461102705850448057362651631491300201759551181353245505956780484591907088200654375375622779556632163315318327680152150513121423351478463782682763256062961092852889195301983149302518862750311930453390683495838255766889711124777075159330027237344538128339092966102386822543434299906109566751165851759563601917317059489542140610351415058169474384357461330106813592831749050107927854956738771278690237657772465821589059376544560271349531743227448227398417310807450359520261372324870291999306530513469311480051387913895881406676797479174658584460056500546818836955233813553950792082846022657535901952936436725361120026632372550191849165219754688357773808335799579345156930891586083063525905114445443746320494891903942280601318214388437211672749147824957012618708720946755348276139294568784930600649436113304680841145726551132553278591084813639134767452344910380432999817796624593878404814918905747943599526426298697451765353746771732639583893595159920759308100886143062552553936015152591741391716813257304744622796505868495828838670343433876049966471614019242522956659984326404205892234222149282739491852863183940955926988017405539781731922946745352513705522851411263494413473760781100143468982337455192540711602939764277796806907874117078770133571692944811781169191317127696630586462236077332543452167893197023374431794697151721820165857478745833194263417745966050426489109548847271155618638750869073404182368146070999989086197365455012630030881143673674555333553741794606873426825283268882044955754280604592261699130009026061702315235383809191421572807871357083487665868447832764611471003572715244608081675724032542691312182133241833061395175966466113088259714681758339082293932457123870250690960616437775204840899675580168860836978112376083238570425069876273365525496461452148510788543664734556912402900091579199575164252870679115772233694987885974687409846535197884327905674472127781538070308428331132930046927864850749497181345152583456078510820299050014686261704857639865049644422052499419078546000797231316570614505426514743101293888433354574047713407245503786017062208168821584090026661933796297719976576735789199340782632040253068459053020444720951686529473326301364041790573597408861025835821773162578014614441186411977915574419556427251628387709819728563146807485703589898858980789882613867569894768339433132610991178232555479916575536581992018184386212753587096448662685322456512451227433825401739236225892661359011120281155521539436331429443919136704394894826689688546347614623079837098424234570176248268591627027826670721153189077106798248070657881898264164302618930312185856507031020248495040024763960547143122129285578145241432415023638387787645616334951246790093227458927183275004562492591833587355465600256845870730593169820704477103250730348929820721331092467718989124140475159276699458978486491976101369271064503851766309202697191953668578916738832369756299975172458361567705808527761321378564177475720663415109924347058021650887030016545961495757656724192241896015176868896255562283790258781507082154542436173371536296039295528742811693356847853274348623631275879010742699938418580549050156016520697150762598103993739116910505471808952920061801738022144262943018905977923410592528577996781040280616185421063771944679791417602329518766371345474293132360485711200616705610328997173715995501868737337550221839930459176014286291428436512968418092562066796434889995060793659118775618686705129500354987415159743818687604768107141234988661572025615530665313035779101846456780011257397717053000359467699954469559986139645429738413985893929695761638912794811396158974235038457096475824796175539348633138987147506528997931475390794736714700397721301210008277395971163347080014855056575044120313528980034263845407354005700598178096725492731684685353519984137031147118518293000945410652579842793234910160068228111101339571526192053565823236182230981998424819904992201211626288955296704202315136041032024638856402439584835467737330445024424654482999715812402070242509924255939900942839913545623936500847438564652612625003299292061208969617427961164340316096373136269873763221094597492010928587444144714653960458171013774104722880254533036373000174905359431042919248989434116489451991928641844130479782615990972067864826399077792821666472330717927833652583088101523222072453274511292724586102581714503905426671006211757846880183861521985076527095710217321696762155190608246949960914908838574544534546038475067974321350369552223855792003856981563224437915967539836533564988800266293154252363816689084869981169920465295167528347246919074231125519283503966963907798939219137333155535774708596512429763397883438650640957604271414022004997199099479772296422633269538378588353980540298914227507852631133653843558968620640020101057225940918563841177183568358304141862187513795864824185774816961145746582309512505125157673195185473249367713517869592753099231451855709322798831811083619630376439600462328219273677591993070227180080748942439004546270502160870541506773504040953296979518433204492092261048428081227330583623320676100862406555417183502399457933571099927713954983271686673228292891281236758918930725787886973423321304944275890506324352270130774387278348485910060998096488844162379280664144744858406595504401041449760715021185159456946387162852433883487407513693364869426954984734828833962029557493670413037277197755937393348543185667119243133228877893536291844582535470308412131382433356781733839921928875605768659055950748427511437918942380605767606152989407184289331710486757168869662396144317257842247809880039140944014301377293377616330311496603647592243592959144782313896260446625343509171604782601677805165273344141226423799572777009825578697457757023780441482293466703473277462454554152585507110526303482300352173352193903818293182414143361235047173486670875771934988007965760403772601130614300193530696325180656315837750817176771189498498459990942079581236306934635067314464227276422697913231378499719669055110160243173352014725986804078793999705509313878829490449080895102719652390730096590565841849540525954202876159876672626638554003237746101794000524935049668435581726294271245014287632951850745854440685924406513011051764773585812962704412814271469222010066132610453651613556668292572072428676383118669302471468526897550058561575677462563955483808788139304852493237153385778614412992860437333664038193652045265077383733927595251015497812647976544441222556686563695057578029880879392078535213368537838561975762379343921600540677407571397630351997403178389661727653041676446511190696333070376332526440891056653619390179652934912098980384758060360542186755496552994667040146204826631885781179444571616843642165818101234640602369959866387819929116957437068870544013893717388686130689404876306583511065462549297781724597499125682959269147051376863410852534381698425605876260229310937646738296922979310712956984106496174399233493504781356544911246967853511066075218294734907382141706084020417303911814276232877046811113550271368625748793168836109048527316535896444282915983145008995553900989009681071023247389524657141422360797871781121266247785634322538105676348123841373594855578055219607601005457145161708605268665246884165129444706013725748865148239240287813740732222711711875798274087203707616476431735400446706402178940363053977363349781574743638700592752235625915811492660923620917708277046956405958989905387409624198727688791948894253700625742358280213607153412539882916015835766427997107209380269354993683903440325478216575714574521229369127876087817655655178136067327995276756837477643535285158310014458234771849737748539092581034612440735256693268152403045343290766666520091015465470095779804254279481663077928464990509779915943093610637949575377875091351748455227760304448862209198965735417319336134686172826358926098095266462838942863483674254713262923066891587990181218738131887038574977915145410496253422258440590880790078661574699374078648219052346554504482433000741407219799402986731065282129282262776673174047098642848081810135688005757201154384369565184147673820993089578035723979167759029689362741826639534489478772834731151202052413095393664915263464371973440738429165539854756603542340207495000527888062837582483774601109564253375283584070596280807421680571014780469959133300383093818075876630005347575464620843432823538570823413580686291365186266988366525861923301422392537515148477844937010798527999594287552786238291295879640380459599680094689451496820901128870456151662956030894388564965313521831561993882010137777424741173444775490773097411332942298203782291672945326703880533899856203653277977842163687631759326754106504242092313921722779227933426844272655040490591389859006853007698100203854761714711581521421301162907866142551343719798986057661377642852185871970345077460243235870317960953861872930380021270146174411192897637286035110321932651988724644670477739372666763130110294578915781004821866829078322171672871707860062579078353364543724998180333927848015043027659057008517573467284885499980813801697953559686290404684590199739896924180284223711004740042740751207183650442610431991737362556062740805661986693731023019659887670408160113025852811681969594871112183766844387996163370986576086132899583432584673028134204090414343782032977803816968097595050003657070343500983319641589842408851122174251252425410615260261861764987986266631868152317808319473589532463460729376633710263053851296590849986365486017183182019589162553816728069952581713737683024635579107209104368375786631846933960179023793945144795592079630407255218574391580582382763283134650731963970850139708236944579340380292122935269733174122141655925785945580285056829341312182574436069066721340642752976211262170796024032617332159940973979915575710711747901131598562702251775137889571528078828589409725095224720436450097231702384314116743230687668218155271435339436395944338623768184402851805786518050952898268887496639490430970625847794201729673542440052547856471275767340921376196934372169484331625878209480930130711837821284048649454852017021803507124760827016890039000711780727596791512705659377823116213633046037881025318269548524073807522304809961638308524847021819255224900381157493056831104757876358401628513399506677407725251396304884243684189371371149484327028301377594358168856999249453738136050934442131737434733150277298473913856819922082322566264892627377603448911204548297382742476657390869800212672812208402499837736666280289411893314266715305436884358372017735534874597452213936604205329658061095620147302513862042690924506284525639577724717501748775703765896694610891790522986461396091505798722123491455894064426359905740239679784263662590872559297880302934403378598471525435528387675627744203043205071222196183766517202286637446351884045986922150066293783943275165676273999500783704816902931081079521257757581790703733442058225422033546157254249372848979078219736308949524072527431421389408026419278718064927619161970410776941907996409003482443123512952359708800602309692789942198279201811997714132155631512980406648611281845496532824277327393913879501418747736894481987986567872224132908266074597160323740897215296415909760995418106544427204166083896219096696382836884561175909466172560846687964028954995228690668693567388861268865166742308641778735704792650074407024354251932472985989896352934259551031545296680256031658233763497244679598023523430870444989791899837487830391053939214417122356440096751328228381295198887909786390338380803493179662402379469441651094230502714217417034122259747931530163321247250338656657947913409022502874849846570521800039008838975643565352960484683489218588056888237930397959312694503299992218197151128758886034885961853859730901478727586277251509593710626081127836915869334177852020609459714149363182518482977565381299871598566584690122846528697799224193323207460336968698767109896211514901124615304227952413323207996678979499832602917606944623002091416820847367706004568601678418013893800114246429127917908628675198392423331955117225991297556744596800535061463033046358932545195172372041712520746825995685740030661394124539027669400983472377832480527274759872207008012942135368427482740986727609451736463585246456243531006861354618298372110138593210961209675943295069905365481772576674103271032127922304324589865413553668589228529504022326809919566513636770203433266049407879259778663629392677909656119886057328895657098034471010833784810435609295913378490742806914073613727640692218516218890737603906368973293555135787696430668489356905418794412078474376506192253782122505394322955130308658169827562671382385489844404763698844760725343230486517186707424978137912522290021165577026613413068132150847054507058810682114808944448855253050999625817812096599342853647190362848425805614883797506587210958154674215456022313731501507242339574597721885218487646810783334512092987798415205725126872183634196667594286622101054033022675676233271287994546837861331167562488991643943596561751957314921987502798714647081067326364790477777076516739591611054504255668022003804874449951989504969057008193315715528521596433457515536711744109713673407096510786378429487903784652848889061261594041768490203284466141140168821250711509165195962802622823514097984185239109634750730400660002920392086152085052580214271670337409839035821549595088024091985907925042647881812888815548941862089265509281002788201769720596432131089515053319057704541503865991009680971327809934695339923666728726663446421422532224151967700666100472092348325235604711783503269092718379547810528108261947125671599488742441890956399791133142941113389075203514215951040123470914524600628863340464795709199506411460038349630063260401580816355756167265287225967359207403775400771013991401379837549118767095136109534875206820680496555880703767878911805583988429394039816640707971850197206026240546824631719089478848117217409193708900408145264368287250581352813198275712535216197584094009444246906769648159175441032039766249796277099458010769491653324726214087016076061695346444817403964073217716541987729117141208656285744271778778985934656156492436147382318874073953518935747371611276493949477183959880257716889960252849864700942744976397746000008035972078639256064661637609116948004259524516247670816657094391941680262065886936527174597276187942576328355163632950670430525333142004702099734449497620279758678770259796268550364070511399726043573256898585239369860244277135967127043720559420154275975221029279337171571025087710608552072425202593460671719810881959530079914257912242657248685819066050115859333044239328161345547954216090594948642831170355381265209080447509076701450758222234658216005306023231452124039898694093011258248916634619224675710313645841919104494271793686677583917886046680767963211902400744131487371262553688084047552717329508171496256922121407223072987938641730531102664516496152463704210119585863023017596607543597564187329738502128399731485910137564883178981841876950288029206089103468531171323145943378034010938385470800404926067415210809102037755810773806193204606107432447718938228842019325749407992983960263312027661696138793065450688394436170259269431268564642047767450921051446404924414131895290058822443118873897569870531289661207487185229483038517338510480662641415612589217711216695390253446304418881018849846449672577202493753436503011079553284910699578323619323394593847100674617581333285949393130179977286718096909862811901182696309224171789146039632663932497819649912032456134198939479341639963118027194065630342657473278816611818110678141619041140967962290390191664659816375684390983853278911690654198517086614077867851673043294885770665904113077107546493410500377826441754633020866641441792436129549687128139143724578867919422146287927053433258239340394041341272696146433788887607470499757700096961379706116919325530816715085081625231302863071842546603954293517437562624067425838083492596244748106439196932561759769654102710907255621170450581404275638050873027489444730956578355514499247505260707387558321552621605350931119673370824134803406362527608757922414784750472779673096814620833775412427115980242880833584332076781905488096855264364881053781583860115602178574487437012541309160554283826473563504276168470042004732279397135574223333322171514023029869548643837810842538972546655200392420500845055108101768290286198628957090873607504715637252413793071087481192149645270319568423008500122798121051987007994935282674986906846930974190005065124332802965533016187487470827237948317125193725884584721365942111430542823079414296826003488439161772262375665189936440010507741069753047412267909773527143103226180123646004662067856404947908800630719114835183334596067548756186573045475580100815169452941694469732250446950058924378853312405361030238704167140175042163052751728699235694964518472182032406684470515990872244152914509085405109222160498627377659632069487643987201541349319905494613205534877232059493916692065370128137060630563046513316711778346558907214126845349144526531998641147187183785830866073198351237810502921147175574733063869976527540246718807328082923213833743465288152406840443758347535197083688370710211519511934828883409690676654047190997496174442318489974719664715977456430527035158957391787470710653621023952620201407928656524640391567367657612941906433316357653660722272605338291480412476878958578814892651065925470817962515300150219711005034098670546800473049005625040822198923590481536837434981816659140207942106849348060271765179636422734728358803622406196349821119479507282193185651728457542766779926829296153878736592075496580213807855665576301984871902562047508309355549121320468596455240532283222419488315097258336183168826924413811647070547180959977663776397752076545035157062922089079765730899331101630613841328557880398507594175558739050401647491294295320764639185804457691402705720844203444863655949951740862590788323161529014543809139668195301172424876208248034809391754135905386749976873768520774646117596314817649333861532847645493598450652411140761165011186160830583905269382380415209315230922097083236060129195770004698899302426394942178443868373884599828093701211784294636179237825001193502147349017724982751188307457612166210460655347524938823275397326864637349869122889553264021235675172588529496771057172998377936312141732110879137948593186548927992019743986108253041246894703554033311812288461388601424833475061168810183216412686619208919858132350677257265730580622906445189473658385510460449455376274057666124327777225709527810940826423405947368295673140764515743026365858713833150990768667117443514087295280107189687981382977757898319946323445064196608558750766019238062198476160991979754581973244514552102527884533075570172045236887197552015112856514649439543799173285566327492363855218710145164338387206657665155072261845223943643350669830454558493352111713736685522546137442368705549238956690420414576383036580923628275841649592630770897200287623771802785815919665373455172069332399884977676526090557192440881558041758359491721882100184823737028885893136673447328228138026493435155120983633021074973610858231015486566345102541488924954618788734545782411528515718726456826807384557013631965560398928782771269427449946835968598674418660716900477782129945912624746947337506459881918800906699233699696974334880556285921626276345618214946831639211700422409344058493967521958629404902291608345358989062602114919642820246991684482237060513023874820261934348719254371840443145782542839412875179048132315033489088753644635658304782823874888172853773500510609219482649659895287930179353360129215072646299899673309601948106140765297185190077016169548986931350374272325974206107797773534751732722972130084560230476043794311966234375461000086572109824390658467442256712564315878018305127114054708981759163187103807187700773988755274955046472561107534903522589860437409109213494863059349299199366456881652706612282703442867089260707489481963281581452887273495505800047534971572341344779860131085760089244499478611936309134059250400296839891748734306719113929318734620205384093232121073409102459678111602939075793153629684060758096620799148162697135931680405969571643248696748401491513055012945892721421821924454432529279125927952539619719725197953128180273698375012873791249775147639037807868717327539920983217438289341671120823308572982210742327142740714323385476963388622884355660001023885491463620507912732151194895498870535691767918426935749463649055117697819160463551545954611349456225322288201363465030075031425924287053829420692916419598321284106950289179389514281621918291025136642763228888757165976492068303273160323546271304527791369792427207542276735878622866955570064431510775329016257917973966585213571880264617263054900981373628985367047066617451084524030486357298901916095879688819934308547643702964623254023516306577891022737200618819903478286046767870931716297498664955963681327751293469025611308613701770290090641781464333720172742377839522035620076935798906401351599487617734012776443610901975353657841444476814705824596263103667790521327631172929845969850403329388950900177264754040477838331377910722745660523468873934728705369345196180803261826113565486912358901036565459012360305251779766449591408867965716919034422399075509672766991078970051382791839709808454800854016879131739687402747768986905680007649778044795326877503160084285291746156382271827858036859392547842635299866611681465025444638228165260445563325964689766377406534056897262911535705342676253236768269125263860994967453782550364523425946367266468993273269372334348204314198069768113036953275773538999696500754023531569769791815553533281502602822729004676210587329264897007330451555684616660060658505199794689476060998921829356777393729806173947637524201696026800463212970558797540391685210807919972076651361473183912304543616442764422165651553594332761240541706381260038255703330967973727639647055748416343318993036844028370345283202314588773740999263448102987173927355943773892602139908151020109599755687002745854656486246533005497686773851783765541251660156399161792522712868004978460084572829538735463746038274659854078750226433113334378842365853075648898486922353707854230104138665498575805100095875129376775849381520352766124057019206907055783553616436665646153722821740732226716912066683145661943446517917540743902457611622746540922878379831261200297114695492776379292774840982020017836675765369904156061470802865505614572134508494629315926053125524610680145409581190490324335467716038351860062077183252834743115066240830144800662296632355774771712579114983338509352193602144737529863823544933442005104309066657185568959594091063903735779097593412581552665590149635658064293985622895952416396213378724561897538653873435697523527243183567805532354971169522989481173770217812855994795776308320380238035740559483688675397747477118118690671683086196260184606031131805696256656932752779801086423064055186163784417503028642621391874319576971696578043768399967121050408135544269145661335368922230928570139902565481340226350415010006477953362496615800048772167222349695140966939666862533345369398856222093465168497704199012116587917932977079613061779882610522275021013116138825142345506800742338265456854036053816720713314321346319893544365242338672947673063043653689170576211826564797090721323957553182129390472521273908004513292780218063041424004820056218666512428781548176099230297740495449985941896205534726461741884137855161539972697941462299106306323097299625319203771348704429249075122030156305005803894442107091078650481589704779186940703678657525009813806258698346855998178330285041923422426589845539120349250672157233578342429637966641152191725360930629986876588641785164857126635236678870654292748241025188549747855855004546396757914369482625595810029818989208099003547857777267600988602696751627107915381003456186055354305508102229483816374729334639196716652589256827987762459820634636470197418162489607962691345959764244917667781069558202530997793847934030707243715156290439614433326407831872433225703223596416094965857640002677703008949456903253935424589381009160000180464800503289603240636963770486426756213138398457492627782795641977417312318616831939604727986680614639773274830394746235182488634455346384638896164821962144896054178827163929288899689426990262245146668832764741844078828004045757605411883152619896475774243713258810520644093264756286979332596834897601533995698929900224018247097398311046864350301084806381106669493464634118046560233784363944109491673280859696035683784867198808515275715477770796724782013338181240424634653668013247947386156819348405204672102879298682376182314337450668781411251947894490010101380565942902352658484209072606515029065801247233702541238294847077279065763545354303964087205686678533888193397611538082742648089049512032969706205593739442161993555030141465189292713118741569530493213561250748666294060673078917672056181611881333317075324818533952110271460735129047412014496125209255115637143112197103082134232824361166353008278410445927115213564326418618798898253855795354585625838353865372889013678393316652389471157595812670022508704053446824876827773721160322148733559700441794050500171703517911735175140514213891395172391935698606547941127892196574946181069087356506946078690892632311451656190480897537068390389065398783987676947111339964360429524324838426934351374197007341946962161174543973237817079301351187993599693052830900485947526816058095559498092835273664390346552539070650500493799418694634557194401792357858258884190051566930567739889823238941130960381432082457088393950522816055393524633277294304321017425577785181645343056345286770530540265822277761183373124491016466710928237633407575750858986847642425815291015276717136512765731255650849480537732661774434927286245064912732115834271062905078223308937616099408355999750258123925370940426830024225846991011829238289387320156468496385542560344894516248309219529941411830038915066241253066159781550883522261308546371418769256146705408402683745158185669637235427232304449771005490066559774862819317501169197722386112000396096396287561919992981283151387858997392734232332035209091199015115723228085857402510461046551781889861001480317981922101919115366905710359851606926506677777691369695837598538047428548623941492989739045697364385351625550250098070210513939901649939813480541254440169857928085489004984848157193290509836938538320262085653845750221073745100749861005599683845960372895089061234069851682368937729183370188224886586286020231757105632340836578659451990158252521324289980552740518025663937875906371705980256975052193768703555296997647169980102199720144010185840438049676892501591201030048093856641784930026660917612893054957782008280099974590785975157881399396741061045608646064374020474589468676487390038648899180168424086190738157618321916522023444092761231714006391362251199649049583396693071031427219229708937530114534054479588710821782424500910983717307167710105913691110472726417849011957114598417477733427036418506228849775632125960059443049443600857210991130988391544114546885802164984903605508046545449618967648502230946188173918925037675187553609190366122256678401320563869816336075297984216168591973238961710703335656135576537000528500188053267418769490245274850888466848469037220819259358451391877270075339904953089238240349210888722844387824654580689181445424160773324205063602221303372750367268417056163833321770360326580787999105473833945703204388443071157899032076328800220739844538964830733999603812331491587536553060712372320294668844811915048896657705645736446449206814749903881675065098827156442353809093644727619824860849227701196773919597761570255707251204615804438748852672538859279313401897316412639964041201619625619332764375257346337377374858651424780124452489692766503574045732540077114382040977003359319012237441637113814040691593677548108316419665183117622339340920901519032198261350766228143615448125982150473132280879710150587078740808269099787470864606413479956282348826302224576843894908824886708562120701979316239571232496413494115804902412853181519125133687792407094219680642525208905922950399758998281692764088290984041773760847149467381763292564639480978409622361311764303431613553925539415754111536485684377249224522687520542307540525964282514401326982946013585655288773324609516893285189695352530732212813478212992642558921471764034901380884202418601612963277315831890784648994581719287267978392118382188200106555736173524242567445176261382010769371754982271498423628531903618022816949939927279640542271469687952344291356414351115583790851227662862383716902241912964522770707439678252570635728410290817156275461345623392227084659079167706765046565761167263469030780932557775942175726232797826173755157325542113831108053963760179827235552978922721980180113061488864198308969457697730504379551008825866239689770024564298760890731449844505656785029372793003132483809691739937179715883170650195695015956464624957005484813250512242125079040035740508853307205418446556636541403704380770396004650780232827049798535548015062259117054596598083011201413444318293583302743408185597462424804770730904734947666563858132512242209909558180448182439854630760111525256188678673432360626254434244089160228056595275869706307033972919839907438411352256564270843836237548096555259007815605781666878632617680733703279670976054330260471235918111115676943733174658344207804071195170898708484516400365231610604745961332697598331184710940372036579610499981021994827019078068357698401336448340195897015620529219619107195851380333862351502258769246104544814577738489783976818036675189672788182272720133573725904528459387786258750572683461842694152991995899837276922199114292159254428218013447772185361865797229751576488291741125195903378751989177576276107157891192352696488274876131492538842677706089101791942715536014121878564820591255158946938546418124062452557492962316347790516942892539884644923242077763310310693461839257198249497205136196554562688854306791370641787661370870250556320249433932413586578681890730993458651843399726220310510954673526604657310142419590989200906537461783380968044936160128680720715749761300350324781889418472661497052858189461237341814405087063971872478907442013503725862694699041740607988924790107271173699317459528588905083972004936416318645136200548327850897876734798966651504985207548842343895261147958049641090989342250157118789209259902863150418488628078775470565468804306805329727620670347632482459975847089958213533767346250462689190062942029121717393081739839278381133377036479459449411467167583009001594392682730840951966769258643006694721655273960232328153996028734311080450894674235881786820649219020489342705761749595863660370023487536747115353484335141483311074548427687821926684560910772481784043073400443270487600164806493094176584999116901822335914880332033605984252756436997371597596275675032760950668218557377082097863070766061829848935899873808965718370086551904137424037265640148837346436230037089898175901889441577182949585629461020199510595042647094490988053399860713774401687472410139102763782117703792288496006039454440405558693750756947701388708583570728434711541393020199497167379210823380315729898207974650942273740530259174431880202432044080945148013095951260160962668947861657432405044199336474037262797409535545988919169574101731004331629301910564832259444100906855284749856287908193830205113052402706022890420053996995900331606188370465262274544746457277012517875795701098226032584592348948061983284505505512054085928032098043384644233127242359972390478997722088339894932620518454679037704719246361304954853311259299645962287138426751616708264601887818495970156189147091694100558670929554715497772769902905267474461077144609437328388083599523464242342438650965125881634096834339047345784508990679243873824705992748164051518856939156627375512509884904297696571715801528478712833990188478862001939311769419733410731437371184089037084116528049337575054535304440413044094380853712619146789239878860985729458484599031163077225184470775878118008784342684796829665568757361415918744256620027451378073322273801238952223710059523384516552192869576043243378885287746652144301585466473969569160430691173115115984004294367892452907394887029558661066941926181111855831589636791238358635441026848368325651340626166329447913840947269559825287220862402419773892381065088472520875275268059738422830552188182049549139469838747910820612673541802695845277178253924802641693066535951981871814741055922779445787901675636888486482978974493047641506716668835464844141331990522419312755235856832792174382692605525206442181265833920615225346260218102227298170359461121486021578916555194744155763538554531478430207741699106264553790439751714686486597957985261342586081681575606106039631681286584213883371844772163945212007802404184551448351655652613317726519683933687456306467064151116032083371363176892266824914043323529264647562688382146261373869442873173967168670760206255246855376836747993228556060469213054012974573854291268571425866986674954543332620175831279828645038316653372996742923817064344629123522847646769769223179829917092428802297816974921395034325685448281216422644487686275305407799596159732707514974287088233030728257171152045617861449870721511984253846521007613208881042109104004889770664966729496474836585596046963002947885469865568282302584052962505575026463443761785464647571136421433361296662758954193712523069116810660831185872556847042494834989511990207598777649428186672042504246866744003726831860979019035079384728731209213706901662980284635420805150311578244027134982865422710971075938252717605764336763998968241637827513966255693638903429547460673593922971978148136720135727776929215869098586342426360246225801946788494934608783790835491916649084994413437043048546877778889597199221980788099348815038128086177769457371361457288113064861423485188913961530371797624903556490754518669306058525290366230283449730705153666961038792010306303308751632258980244328754618195395450330769342118217089503541721306789717750934976675095430777422670552107543449377621099489158848188205836794557006937044212994310373957459450155226125682375210625438592253061933609219214677059112117747735887412960014766270218050060906660553294143942639977062569549152859293005978346513918878647834166238031616799531010027604221688315062883019446028252132093071786312000830608196338464186271553064625215565059765838477403697705237587093635307952422953749519594467826126082709883412277520269126206496275397482623037631700224955145187529211628636147748216277513055855849846742671774061760121959222678746679248598566046623603369981119222276647798114939006580097718557099167458367757107690253656991256760017679252501178151544411556042790515243416085322971237291507571152795240757235329164307928231660549491089553295866509420800119276551575730909602638273561890291071741464995965123485434109712893404827402505679258587345776102384496212790770124014531711097653505879822382954628559948059160767960049516697498156034488041679225541576780291152024637729913098032037715052349345562371981688291690936303119248736480988752579089068628392847344832144392902700969801261037196124762108332228270617495563970486061134275104342164786956199268644916096007688456460776338256378322726061125260288016197454805495655684878443111758850629564935159666617774228404951779246530253190953087417606523405654275673494784466755117825839476627580016310709518488470056745185489891160192640883366636148129171817392955138674510856436208456342028966779101545391264092220504737634229345030300956270324445267529511391383052033769597552418271364965131221674197676704963441871072821191695185639592907492133529129942002705804373115815266343560288302054450701406225950334323779880763032344596005477329104172648328500551534672824946374515283405389348858815946994444556266056331972992473859877390081988393514485322409491731556045974302534726013550390821345705564236958126764367075696904724626394150949127166284796941130392561110515361067556518263559924943021142671902068765542967859891724135196538137652148046989334447400537951067497973345995111122137670925666427703652739636254023183141155436218901573783057676841205565510757214170314481761862312119667386514672888172852455002330616830774320115807984051877597914102952384772225767831083248628933178729901813130869910882659107415754694245384678324477646502510186418899969873540110632033877335359651816283531537592488635725309356993510672407601753005619105633231309638800225772489291331003860188209190486225666157675729082450752966086686195280255568783414540481543435592929585707314513051727331635122670672074035515600679415973691242716158240518752825701705775651114850512260890826374159042692477475219591990174127927426705171751624773429327456585835402683733419784317958654300371014604720445371028573558773945239353173898436496219798863885465325777047819165869956612983289409895360730776937057417526192767271023545846785616076502622345106247817385739368808084654151051358417164972067842277176914785758857002709739895675639980932414338187836818030258841688477825889185095741590612987676685433598445928729300445527491802909155916489169945058287371015888799896710546981716161627049481523079661959883353149925728267691827299231463342566152578235468568061812167522292404994728728352548681120986980550494751305848036851336368942594718775883347336619192246820247239648973810284535092079145547311171173210650483877046359692662712673679977380677980368283742995627974459372849411758998397863482644632485792253247011345959695152301298929071822985644803544728683259574460113862505655248864606081150071221055212317021737023042011762331276565277636207814234963391400437411641202998062711777372651958665694401305962911915151833929128433243733600098498590150821494033643756556991766765176630936811779162122252346984221406207115685855614631816226413173424288190034058632261073565688311194447142160820970830471406995863985187144629402320100809059282320670384199657696554763443155398680415275742220009685036711760751434599159182483614332324645699212627777688973979184037397060008522750760319012418127930956057117230281209224458465678739360949564915717126485573756859693570776772498021032278221106009926129421822084656446332690585314133881410252573639412260311793734534405083458420880541683070892127828364981233248266284946884111671732019740519701249443119048173015171216137118414780475415642786210887939624814457500711979480014402635972903623770028936959535136933344180558434889689685889258580849499155235412889625437531559622444875882680425844305273374364646379347727492392126663765315688989603761443896598691949070135121633244047247900772064670478816917656419070042010335295699631842900215591033947942757830481112078432552508083021995413404007280626717230605000521304183807557333203201583197316772391673905674654509270131244793788966383706023062913088245647896640079053341145462675163019129449958064020104494181791553647186898282869997092258603445335991402422140974022485374075887535496506990244004137604883830940152113668386962189618692591922717565811604572069218658358868496401475604979749849166168504989965124607985247587169061041561281089623343215019025843064005765527070888481904653524097435947378720851485779740233583288836274075049184670059822212587071138392856023589203202308070101983089269306295446178312154050612714443175538452112540556221843457799939994120391028474728782434053428850005312782179272121287930865843137781778008067782519058198672738126522595268584982190926277639991735163196343894055683240116136236819745073370936016106326302326807236022024188459636318365272206288412606237275236390578814138788749926707318465381534725284311680470172490455548643583584764617414254683242616306039497887357601258298296763264522938291398211793049814812964856428837358664277466953893520222220010502293222086273152206743656529423638729989911723168380056823109158024951407623502794060593747255434976355852682441242009811939693797009198380573637924024087813011128445345785095122108611193502393897467059094598308945357083896202505173024211530875255968841696699539041241631999002124157887662978893244753304579379775345391276155730863359767139805996021467240969982597958908445890373247929412277762784701650577683847128362461725801003426434359254173280489269930509713165155087872427455417244950408469144779721258383379047862695253200555394344184169861789911490397372925144587628861378128456023569651731120739759227616010850169440684660217659792836068245167982454591258856028914225736404941510659639655393355752456376944596963437601634056307773528345594252803854386727190328811683703470980842816292766319400364406184393999651063691674478156517410434329433309798605959744991752664173406294781151775982305105735526949783146131155204310303219926966312356832424207085249440762487666439063611903898560480786915296410609821312346595001974896646658742706663848524567681542633974660101472426351980983118345072657022460692832537127082557371055654813273808314859393721882439158268803940214245586034648016659114616554974554505298083566652060140554918233715708224718849081997955651944506186225379632756422932250270802614158114777595611021713488683442504247611862466150463861460021336592144855915941529259036910236690810021152593480498122736380510153234966607860282612440633450313387982478882157749598073173271299964596325601459018722144640915527525617168020152211610289986401166411874294221745249412082026741315069086450553316646719639678092366916414515840934472187111006445997633192900329586972680483000086017719217983327045874699570566532617426106793553668184309473638475240992164088651118626483835980685458684072126407905058850839890556074649800446736679719467124412915344164278981470112790361917572265341690343420150585022876182987149205771249371262484536496417145692707446828058338447615729462804393836449910458364118630831750018435895182869465810534776196387718652924163985549781945790245821187029123707062167654718271769318979227456075841575912455453531694178339305753915224244578740841780658248689813264066307067827150227674966729574739256682820474583548601737683278448744354575203004554524577336134641487716502792740079710093442006397006200987343396291245340317030629427528142322682257650270592779537367391880812082193882119951455979593751682296092781300455385191076707072234522837106911372927484815766697940920484944642512205252561458442199235678365209748322911492093877611873983075849644306000107361811072995197546418728964797150809077759191415950747156164135519270102180684402503568188687976688176027256550805902987378708712412219119318069118351466736199820792533277982484032054656977853344419956690369514667320091535048879782709363010946528624413739495951485053835314918890324933618985463637397923189636101446901126266600598861042963642153182458909526311640628938183241881253749586537703596462946940991070963330825424651781948519952206251935384510753750363079441639322551891929578912959806994228451363951039641077783367903480834066655109504002316153775274850309845301321176818111441561509552515575957171252548597329221914736150019959429196730104603303904078788211787093288711126716683605574633380316271717407571024063384857567786793171289187755782568614271433710398953583211534188292388672806834994600054181287747294727687712466984606995030845300594579348576336771913721768412436929709794671414674953990772870207428915212311878577831469730688284355335055591596562200190072526617640320292917574469967769922502570742082456677465933766967958181960587502636240306847266292283425621627637110609072769038888109118031318179234572952014403172688175107629090235643599589002952975763116025384725437607979129169890911351768396515934740851731356893411891758374042604280110060582191852566475568818230471748876704521063537174052357498751846351291314843954269587245988107002898787154087317564695138962651008097166757886347414487714590842730356937900744314674713124182210213511379183713501266973124100011817870977063652193314606223271946662910309529062550147386893662745534798021348141565501107838744460304837672238705993875513353100985431718254846931834178036019350314481996547822547564458838254740367824521872360699511444252242397798278148243598146864565774280967771447749203398354617441946751155864145258516695262451160554521919772913506042892661812842455353563012109475169560971392062984442129713720623387434917379012347094498584266573201941813949030237261878557322409377859595407698876838664302019078005194823033479978635477063435714755706821518962806291714356460149017538279508013681109667903725143765473476019413471577498841463209348536412856532341587459624717956665302212936927944168296010029913895333259279500796802302048539189183037165594182515144676929744886520916732694699421816640515104007975633008899568542756202044975487292969523116043311098264496976755267084920422629537187752526979135680064967981331900855483191946362029893756232297537354928537792062250307250253076759061955241382821455175156280379909795729818395070399138311619992517281834585329302859035976117911781971614613969992025268124281872715656041431543732436396617890003379386388963336210979002670779448459988083658284640015409838806334627473703367503341955605874807083026380730041114758942828215652268412319165655837580374206929727993379157720702578044756601090081196458027844956965662065843183647965108948085147646702421100902972760945870957811218294302163259777930803812368889447071822407580262775357793845301340820507174008163357489126861688275381874674705125131548117508779001262998172239360092118293959888864184798041875733668175016048158597571065184150854273300359609644205008723416402930022270999626100990848111238464899230003384558479361247977242644610618590646195420166868255839430547847976771814873222990913831174482766048211383053735929709429899324279540223617072959604679660421382600420593443864982896194601504669264187438032952149611440453925415548589663653427503793879682338502480572810896581552634467494222431522280995414022480070503249377833756966350608318085755818768588564613100367445985592373758788034720568550522756248576569227000775652851422169082914240648349851558179034485096209898809321087747520206955748202308416430365117569814224707788074418536910472720805307426394842761786493336024792667774541516615445833953035480141992169421146525586326553511418695424451819004532238249700248509790549002480779625972398278001543004897018727098766386661641908663992173601891539972844857793700598189652310584824087771940943681716635012681813894699465874670034570479675797593354261848439090684077459475006061773051969099367542741564386876399722036265837424549224669377145132018268166439044914740877201168694682998521273285096183826910050144301876343416350834828271840109865798952135387350813808386240223176137647540717952524632783185614056782536534979562376982436762200721965921871300486621921880609970096777428543165424326320587165055772428564509998999455428327503411361546868207904349096218867618298600452300016202924074288626518410494778465221857512910357182917231878320023008613831019495210968276778187027454348653322336384652326110909587178132707537235575582342557240871503060950155798811039182076477527554122328625185813442675017959740751236319487550201016560184039613941509076324722422345580066355969167446959925084253772291578105734282582981179519065913171147255991078809153062685127033645086894267601532860080189883665602520603664787245029361706984756175908682060287015669547793998711986396731470898012080598399670141156212570354524763013298682172971613640964624297071389997755608457574982451280138142565643399275414611026344343631052331692368314254615548641189479474559772821424433938631413479774097978380168712880918174629605549155471558751659408503717958009668390741823380005316630370333157626291354966697566437160509908991984856821888686250262121606888585148977239059395048135529471115298135486585684543665527143571008198509786405668915605314951007794064445506894109057586219116285552002776015409643469725042163561666983734686157866745292103580085722643748553260012937093419753639432212802661082981976788467924141490151755189737903114115337316940936504475492694830112826280406193907516506982222922115147754827004445586753427729772026026454546722946603806828680520982945341774985863861048484959887268696562325820679038268297186834983130146584938055721645479423291408461962655030270573036667249447254267161038654596010546954490020818585585884412049261490734475124917667012737164185735083813533698384217720771655925618154025354870164606395847618454679253483993368996099528456442791346458572000280799831559614331313000536537476598481961929149538409514569758257240495381637220511072739443388506689189135677247947346774301576791423864714692233212463019556715043821321213227618905264524642052647747343228768973927273425520072867356118615973477906817131415162007640462795803821025510700385803986931226794755912406249965071823225033564625250737022160777686137125108440198061529850563118724674609517738963692389423943695050595713115177751813531184392451885681737138674082904315049878741865489145902722422747112802527913075014222897809610366544848151436934973708048103205720560826502047515837986374834068687422381452269620325578548442310162310456577713706911897295704277753816623484450343413267433547405267676278101542406830322609069235210580569286377056859188624472444627092913400568659849474977587433274205100335613979209862612222603668110841887046896931571269330269279912835550374518915151065182770916261809396036674491829610414743995001299177220695176708831574038851154842595960324098470277748739171564627756011990143183267030255656778896873476268471994786080743445225684246329332097925654062887180465117074084252623995255605608962336916439173389250956435781858137957091240799079104120556481026879012311862819859673472940076152456192812723024619427587549560492311795886301311290164703774371141243698229660652454083072598970601784986848054738362157053755313903741570367836678401112464600653300425947758723085445062256192030495846536312360560667485566108466881834068497949732679644529193656782519792021857926030951889835722496035979475056828276320907591358327228364767801140125601828788655696708113049609041611127921708664941291183101491561688465789105122422659172282540972949214272006366672245307346146687637836030066692347009516774345375250807698332117690199366245022652468100718227773162173161854238384214315719693770366157579592377805259056227443221623478034752603097288160845403307230468322739938105635484905645644704315231741928476362543783999791534577587717448257708510362867398821949909296076829028752441975085873786780871758904051781078265520445653827565863908228300738283625837707826245953716999960519360196524327191372827000411352577457332629279673603238212513366751326509226203191522066417224433851276958709690925249808631129189429474857985935712847961495062199009718128360831886900517822468533021309034503454359915570911318237397789381395188890803786661483595622083787342700729535989005412494122289114049298775397156838117635953929923039826354641532910305357459719551111679099329141563209490229776167781246202247525310613767730215565439704259546416162795667211101117113027468123869261567364979855540304709663354687709080163671796428039428749176664510730471899028589695245069969518223018423346003129093999089042117757880592474318843837420034609806409474292530667497322335317153001840207727629361540688462423711830299166436251033102053917783856744438795436366946495186367073466321590343728989937228325879304179622751853298769002894982865488523835176361742743917600201855822161563349846580012206137739831341637700643761814848576099916220898285854384854179183275752324331499165671307663993207144454912742914218660564569055874017839480337332539325025353119697985094673152842924086046902817098951394688662211854988855164990810578650144471971459068581886737960734414756213224281645623334273717210804903335585952716118319503223732619058525219301814411092044512669395478918624090694889466225326470266048847707980239691868892067320503504165187060304625574875501689463609454410792508031454206157805430469667376364146579256249307290300281725031882277767269940099726579619016929140257996229662931001120086010694843241392446173524823331297381016552416122381187924342283266882566029254912527226338379314496849069723031470469162376954090604713820478421314960439983156904079382905763134637518233244618576873999986424265929438314476736246536470909059714765931485905723371043129289032025844943967488354043376529733944952360474051886507145142943485166936994119145039166948711636637150194919417922507776682249827866143604177730209824985311012681206574479325515782620075152907719760911115743164341172569041246920979103402515496129768988970511894925382538389901820679684481602749465143623503953540473961442299048209480292209383119133645264888863575604967905077772390313871348400852765631144807952769327405873338350006444059586645319877115561155063491204545945271499142448412675971492714213648651688471155235543390995414832855242246505078393041674401301959095182972428818067634753909651076730003631140060261388175687085450119375484620004696380912391618610189008830125947451142072103997262364046097278322920727992278686303763996404707591704454382521975651408620784272743860850683230378844903564231258512145201348928020088489185793665761503787738879434254650684959604043641102617502550443030996735908544931029944842430967608921880597049651794567567492189853204431931118200735405235415183601695279068975831222348174257547626860367111219228869083362786592005825664642968327187489205745393615089067546868564876154222640255474323854365000661402071008418108825474955550994130404844088832832334242422006727623006315641557505320625865379408356950625416819684322846572045306812506936961646360611004273272375758656512107129093020608781208916488931095945822723658298115763514807137537908672081619941883714472904998041770140111458401960363422506918164455896645165184608890443728587482722026815931361539704720417969383303006558187990102810063075652242702253681872500733875985073288437646196433689503990455811727025499398422343156600331688965717900133843729176165950375506731713322507646046502426320209203488780082646560545091677085747548994559674389670831859051510602917024884699697958803597567370603386882221385690381024950071625398457150720937224447950661058200395764793476147301765942910824223607356613687531500071766565039803155776200241356593404499561285339433295069723770277803158383985268577303677821613211859728428688301562340240844320313161788851857054878805371034478382099575774773292521265144809327291431080676586926622112993784638190720934476118826738613071565682671076013197958271187178455550194266173726781156830408676836865226020603163340681945493432393160419372463877225426856655305368496762756741098171995372585791487027408876550746427550542386064309986574987331170132841122184143786242798289921359258467068976658081337914772148256369297149562388039398836719474131521568733519300840781483405457327333782091664284100557158338029105091993011104792280898536490091703587053825065307995432334506794090119805963368263811557418764514630186297474710125305629023823272806431147032819793704351295542287727843211222610207355209416644211453106311554401128329997770690761112735788712031067832683958354895052021713700668266701239835180066843181030473819451113674035556561148528761081040966521882643192763305575486768953185482341847425597976521193101913854918491438514101945579527226811711316853490427678081505313640886494841406183755152968387753267512619709634600448268225569591046980860982542811936068396804769478196435851572536076625602643708746740826808058622671798290354772510616554206155979693878729397414444261787174220827282931170231017826626649246974663215533911113813151701426763557331626421371464428892652197415317986670731969611062683899600964456567470009782843648516695197859276420697903016084675765576118587377581161826315679980141045505156050736431043085903315145951327162982552155081926223791973570964311679328870399520404306447848880607137251977455928694460223713708950782882331656096467069323439541296132035673222018439024555344525563061529472105739044231522753345839782401988320791513204137629633805971744987349973228471881174013362119434597053839784895383396133519638525709914681485391495884512676512784606001797301300133446117352217929205659927176365825758096181433471638494490720083146180739897434776390959256732304463708807747589066985492011891936173108387190367230893171597968331192679423670836211761828584367517002759842627050155082385822608826048042414751154134563744533922058615170587693847971971489731642673481145813601754888342844334066078231327995945108166807032659568291970992591910918847128200956297049568494115444492525090044391321644411767956469154850226594239453979874043543960915794330278191228152659631898735335485296875295771700160356231016121346775068422718683239089408653579191407266532945783474062230364002645671169847009835354273906921632435241434523396422713136860681770650919635930894543112736631182188749214033673926890919808739174096340795688828563011747037399133523040053136170980242427551871118209604948824954528838905745808199806889983560971948558571506974943520225421681615673417975450941522764583622769098282682786004655313170177042230151298626654573247386233273985480728712501946199814102451090912388240385586036136251386320535455382939551164014927295800587002282827848849585739339726968723620613626799151969443656806712540459851005108405282678257208773821566530014890483108352929247860288658914662501860213385142433359661445827982611612474800002420109656869868518303171696428647468384350840152086872124339668300562151877716908027785268663693383826763818236741404117804264739949022134397829129226366896647178994876535094759544194301101640605054446611521531893423336967557644270326542562061551239090335967514556532207103276237777246612958877108979793508860183455514063944721991188340385071753360346722853562876196469613902406751310350157350079210699413141352914213546198626578388962259759925893569324944672365446248028518523435767963095510844139167237428448189587912263134042956261909229735983837026760956607131184943112486183630952326343411984396910454580653044430280404985697454601073179251582637998161135625136729530644626823416136112789908996600340040835015128526459992725375390978418593248764338688629458621555934419829398824291647696210466093157782534096637834233007829498160401729774538812564409055712224474782501962421677716148408403305516878662447046030218524576998463427140518938052460204735808770060158149701131141862103285781027355798452768751734255398818861238320624955971161936000528850269553685341312846719342806800643833690753399476184118457013801998587917386775066908375733447070316953785570817222601858039578878094789833609242280336779532110773567201633075717143764010753427694387094558972593948338291530841247748027937879022720919995517623355943382734808583901802946222760247511478631818650221873100697071422349626534686488193345126525746607195996570729778257343734952182622600691221369107157705011591744167470313086070869805097465647439476080011804084718739485647988429164422589572562555924469451660331299728835427416128354881535474938373282732406758633675204911662218732938313546104891372612781597300720720303733401099576973167821379090886511453487130809169060272202940404868096039967040967363836984225225288925882890315488513022545965499747789287401414235831482617553690626254501438492253696011073078344755694687333836940240957969837441601939190454128991373195857292174689104227841573289964633131079371137240554727473366089593719201282338698442413423297467319501124795491933441502016020440754543339599912991150031690523749126644701891434110082260341632725023602056752370163004976794112445713937138839581263975397884880757661741497804383103867605943746789085345139821051107032417664969184861370473542901316738611612867274121949684163318882256105504210863440840346205665460729361728159130035704231425190411436064009162270652045576755101838548139403093520894703251262377561225237618437333371789782385856755226431062002758213028604960717058907860360521575866189821779428216145880031557957696018214421696944758408177819800729073351768757026986014703730783405933802089798034413293858528600295465817612994840941081609636802451177938714639366576544047356331514424207953052306990397303593696604277132781647889830240304637660296770249136965629451201001054069142771861221849866666152300205661192010331034874730206026760761317481655372829624962379989075530465867839140608634782345555751694871324941083649273585943649044344506524360555765023302696094462883711379145145483191002609722442580098665656447035738919024588393241965520134986597760174841334067922017846006643174099662498005824147996296708833485450835789288444374809949711753486055905627852394660125495655792472280539702650924762529123916679989760929936656447818172924332157060056622512489876021407116460406582986277684764458988784232944902242056930677362239304949168125058625722648495750360258376356465975249026253885780595934014057417177004759988949354273945390333381107257995165464740734086237666591305633056965751611611456604521606104736528257587570747038422472118049321304170065624691265046758068247885627430090833425279478639856795500220559644704248807790031192420318698664134714012461259323562653227851724078531744054063508461685676320583471357015718695348450434725336216277409603012662323498549104908060798844490177605654091842772891870537201674935193560576233268599255808400142020982597990135736018765691514840568113394946630334531398131491691016567097112612785616010953629479942222101025978677984274028009835286213076252078782906695309788553755993421389127408343279376597507626708154103810188479849134414445291979391982922075704707682862083576505858125956021999527864420399884083466976829935915116952524239775446520066027105209907343694907910735322784783462292150941698034408251832860349980977183566996658375984231914075156917088547203369423065900481388209312233105267534339965434418477227420855325057502878777441349233724744274177039097113904525127749917505824126275311013293810577684547419462493746465563168414316509563897258744219415971111001303404649310641999932468961607261171511062110352627120433210065925280020393380195074064936127367433819250605586266563539182787858189890486748167401224375189397605431085050325361140895439566029589901391848742834635338446652311300525329132363412900471185930393978456235088180146627720910276326476712027472634878683048641475655937235061338685594767810449878657453878090945082124499572500072558366993945288103692896928921150248077711768526134215544283958570050137805862168172189102414317989096386905519571733272005839866602193015434740075219187387315646668311967924104206131062661963869723583995987361923775710160684663269052392796295093649519174331366669004349889731972484099216222179770052214283546595847628212227757801498860597420161076753590084564560758867259919756389283300630474830623676720920763572927451155064045423821201518053893609538390416921516706996842877191620546838652016677699853461796686078169828556255007912232083780191339181815994038479869939173427521389687450570445400796045282701500072718169345151666435623731311517710550813652615221519123995178318033220936334289383678752406130936893214867756924064876606521833358560769584328278391602012529055141541434653383016422422750334338019889434449789261679743031478394555683856885464658008335015192718204873943399632193458281164183455334966314244539190679092779373790327571300914768102366908844313627830748739116561326055580881738764111171817899604110638317402038724218917919789023853775876318317013132020060503976406040628837289893876612559368645330862001521018288172441091783574170724773727622720789868969494178726336814650725360263950269358337717003827473240434668763061503564541068614712597549442698210386598413278512042080841913367411056402780946938369788408690751752506547659438735254524285167321093670946347210656531298090364455891430028583106480367921615667680217526721936525787763188624939892141034347702452534515221129851146908925324400888067311534965452091688641098260119602885331519102070015417503714901048621386431040674225491691778115007743444723181380083832824107397047034595972444277455729682117771237534271025272220453800765321787163368910136108038785243153478008859273722745574019239024001665645404084485983856811497427336632512982428736591521646028591832207881791657953166170285747101932684528908782173605464027993295692274251467503357887136939529621891676923609030233683455392171863090913745239790351239967438082838620931103862191583406167751222424118766428309893017083513291368092113231748764756982714509664901799421793252092452229440374503960836268588833048403724014131743718069897688861802088728499196419341115928202130939173653603557560843139669417077960632442245054387059078106181113765264654859861360620384690081170560386226012263090806672172152639045110160307580916324158884306637772766365236468060721230503687757742800180742806242205376671249458602591428437333095173976802682956329467987566697257069033626160076580422544980334261296684022757549786331377810064836792758662999680431096022800724101406980988655302485604021190275061143794359898627058758426713933258870708681659154271770505024627106339470871343246143828462102976947543898694435421748865646818264655473494967776686333587924633355764767861057767980320477975193756696544898447009546770250421616596630644410805945069105868468075247407501847536153610390040838557817133833127153953658830918986885445634644029219160160718831732976149767676569319465616888949527458219722039681504382891560664157835032849298767598936805700280155224678682537503609599237949951012058446463857331792708714892951756317017097758711860619963419396076383079103635269278817068117359724131204060100982975795393823943719237971206747966235035195602087197822579388964232235793730735560297029312274744674122951669839175866853793005574877611125435721848606643390561993399809603326150920346230485438449957185882779715792633956000715277699543519436085976144174578964838782018189397047598129768742950254525629196642695068322349126498012204792044383735073616999225189934859186177737678776024838497058891100303297733171506472800661195430568783844269504508086346973138359944946938004972153481539633329429127045151158128865752355052897129344965833861840542884545836670946696021696654617840905773407355408838532420169951351066730447891654957191638035966542587709758967352992325791540025281082953919318951899124299701339596518517679274532025287324323830686738950973931854272819964063145562394666211703823133268554477782844110277382265348156719481461081577375204148968827608885297274496761689484007060106426226415669949123207706771851392273217006234399261960349881911642843423952923027652614113223236400611447345511217643446067959328895666336612451581089988950787649486490418023926484823417960443515191851585023905232696357326384239855747839092552660172856781549602900923591711900483994884164764249993263894614082444992020805709511505373576319394015573239999512594565271217079548115463552018963342235241689270512062297172225168963213860263215886481262418847075627450960884383732303713364378052656824701132139785985251494588575285497022928727500767558800625111185335715005124548857114645535690474290239471014632376985918751333715731366275961285526896405472145060401028767974033895825042465255710573107907694006544414484497795201787499625352904079955086035368820283103749067397812872649099145951801240380560708560942737007622123324016105111342899530136508500838824248102246324367943107749469452271334790644868797419340623734736001368639666621511044661121747637145927297394378289789457501713932922608953945337912431865928374105597544922349215877760114008871564747216052679655099231477586395953646524262401234243216240330246971460539473088224788432252890989424315892105499994785340906712338482231940607807187014321141722350354998507978040110753405641883192202560462662806527362261978952331395425523650671820980449548316141778107286479722266526073754014515263989364592845624063925626277252417116382780617182223100991375725054497867175241039447617513975894349059751848655467353556357527462495113638388449708501613242101661900359503974932313910480994650968725075627511138723867670444170311407976868459593922608583550784171062570636922125886803799840314789963278656360190911371104369345607615966082353773412589443778031236753811062955904714580839826218179788181239415650891341831975514717803524032704991087109034762985420682456990223332768505381237007003037157438425936936951814351667063711318247271495557214428881955215522982847293939869971420039533496657561391356595725138596437576159208852488593023611355843065230133884193095235138346101357216020778288309243723724926389201446154501083431438000764598111199110674777648114516294229427007456345717756092200932939514386172764480495320638090676110587084991676456211717954190441524418856707375532140776598220881125906230212582241236577138157183894001331071284686645779931050320744564032252024742784810377128074896950295623719491985677814681426248971436488292610216419969023170212580579638200184490408703348346195398428310043050245895268778509877970440235944810365039421895185092232218197989641282935250159171484660988059721623218484670784776248029459674469562635515574075181301222624393999568531617342065804642466133351097619049026257805791249748340286241474394872777898269168054170380081433828021856862091955300371749271667609255506417694000499171498870960033142079090976795890775728622351012349580723243682998954705674737705265551301324118047161250729736188955510483517783220331112809899676221903717061844969304956609889309538224018673158132131670373106290219115019623688567765603906438934465432645775192640904184588689969721244356707397106756735925857813234204261144439917590018608648324319769163065110253288560711338025751752501878043319421698564607333972971858359482268889787328245103302538117663627467141225579819874874982189366161901945379773905141154610687850078480279742292419539000815706751451724345574198156103942572353519657667484315797009695258024348213545569333906948924391985170387944043895054688673358424915768573251158049684742800431157824227600183158985246308903207085632132029972181397074285722235733077460286244475186853192535313680251322491091680184628918416299287894786065573493028549370762483634719846231926177140317744064406828591290893941647147476096998490243086636881489500787458187626477895470325746973289105776789346297130179197936068745596818986271325863257476787818907077795612044878124939214866225992335766023097627681725348078854448601837984017983105769964095660621391866805549175738647737098152078285667260822720988423988366824151736467622547892927326487862866536541832840154421021347270580446288632905273659891015649990466791967678106510081242388191133157910691933875319994795784773265704130698128812707931433087884704666169200386152192124523305912724118683053490074237083365462435498474255907419073358145141936007550818343727904797162146804485735507332658165577317786920838729823287602104980233280747358489839024285386285945817007375084560869618372271063057959516659149806865837317392667125930780089181743169250954579772258714511205417206360938450103450088658773539341108815790715710347259793149575942614599416955852858771206293926726294359336770278010154035783345676821588275866493675227250644798132294392329239049498628898890211489830201796919763325151490362323583765231925949947618588397121844751026065406473104398160831652201365928836375082534103007430898038001468840412654823963325518278821903441991384997901426164191326512582459000859618946392048138497704355792872260684131744695791963959667926553936611908612881766759952747248059244830508056209825447232132220349505488774790684877597043145654344764769855155316944174923749501686420754287828183627506018157435573330327419239536501763153940121625184696792287963656058037838783346037527622141752953776781432950965873264476337376664305645104837039274960289952600691724150834739490454476073718737477200495784480188396540881924220428911390074227615321771869511791989058178363272073707829107236101940516538515732139769194364253075354019154965978975765425800739356559857284963388843080809952151367815300937682446192009394228508828883398865776490189242518194160998389149230098322102216380815477672651988734412796370783250009635048624004610728880859834369538233012468282688766439771483101058061251838456390756175828473803515618181696991463754162146414725594496291559088990419375800906688681483874130750074106849443641707097092055892926857941666305856663893921231095786333859514889587196755842548503344200085612426040829970452765331068786623681697749633612593536198635271755835232094180063810374464899724717788981289740767460946255845457549409995106214782193125683566487986192249604501187909472139591174011398178895886088992227842534585248471603054376719729512329338309483721879667014666240456736290197369031154916630040361804533505676706834899233580663231728075645650368306978057276280315086279881531900290784564443105632099864238336126868183107462563976930278610602309746432395218832703025415352937994889075296626542956869470813589503461414266001049798490684180843470871717289015629186438747639045483430378297544637659624150948018003702549512720582164976591647645824157316931238292891163751880589750445075615624652873133828675476098783770083007230307081995270290319368938146943247805832868574569273877886754169958920827267029699205443731361592752848663571381841809919520726934508302911163646741511133718621584531721767742672932110849881237262719050212770094619161706955465042045159513229007091965120806699442268724382824802747002022141524675300299805059964031841329019337223076603746667626131708705173098019322301207811317268006199666515828259866229428691544786609986048677763830835526828151217874147189836393295561220089944782533858201328835451313120936581193538201977297751199198655194824738759029519765497842771163032424133794039271708028632265025064781956902454290305979895680676051897669911115355263374333801406252037277199349279018638185470193515170042639492144090938723866501968859836403020928029858272553237724725189907891377232238964471717374457291698774139893310086676400150805964025700304566727066084911759136883255922677392240910310523075662292050907504169520681087841905619991792253670191718110376845272995909580160375776153174860354233691714504555134140584593099040492136020595208511734930467374635485222264153449591288772521841410475476725351339385481914111632389770288109266810627172498076381277788765955137730751661468493468278919267828948512063031990369456343823830488402358506638058018129539960797125038236965998781765134283861511394609335429236599996409918316292425289432898863909457883578167151037200683872382350666158761893262973070231728385461327166259261556767072018161408987197412171962796961093295752497448291366137478042727373590825807746237404120542689007290089198960573724039766162444081816991339251408593039803813488316080215201157527412692159564629718685480209384246580166317237152962404639723810148215827990684546600852008101697258341977206620930731710340310014561031353478100818787842219038651762367768715509577290036631928366196465424566638850290914289778281211810143581576574599961215783591453969811380972061782496175584679721225536338077139472857142710521240904385803217208354788669930121422036010026238106587127633570358647805616666991542448397838707770630930326379441156636466400532137262445132401949981757222450196150764073819222647553968011646933110108370996286997492328593559346021016125334946817964032007686670144830857365692679209597383625604526415775033993392003853807346752660168858734548215047310303649970116152439075199208401987315332648826072373887129608355699398476341312983313450320633882404030578426383236982165066558142794364390045465288535261476352457065898535382006750762517969869130609760650101820143895572391176247884654932404541413352595146215050867976415517694646762729910905838291468734805232801092279634832226009700900275644210136266944259987126731331393450454428459378038062419005330746504729190084648557267761719407972770471264467795396577206387586415422896922943580627232449502230551097235410504608497833972000637001644635761830591187014110153429301502493291933457587789556858046789779266653695012655991581140904009890017303717558900919075291831568585007034985364899527586387264060215825940002861289880237646736744083087776490285407111698140506200202172477278636652685534832862224072314679644074343288002300116145019775701611826045779243781957592102360260587362267144369939501046615843695633423080423279186977784923519091959073936121267981944132955213885683782526341105709304504694156102741685466054385540674141659661742597947288239902926722435425146185498687141330469635826188324455740464473217909545851034580966370968327311577451266691409245613205906187208276716283696307215638516587173527512104983674306392439206043812450105772496083837349568269006853174340827243054810875065409528464969432537384059886302796091027962745030864064377504970146678673376619871644322241128183001351196907462549703240385180072021724061803367543104957073779170533839969379524928447460683582177729013334498432805176289198946618972481465225243164952851304876869647229356942102851026987024314299385513105140568850860146911253554760802425969585994755841800525535958775606795797285436728368674858863087947855792358957421469690403237838012747674754257599673826141977027961027312543542857383313880246531434321263952732713822894316573104832021455070725008557477575405378060594887329835413458173958259501687811778839515293841184772832500815908678193610773885663745870207820238277178790052198571649571142502665889369133547344756863214894288779075906872334875186655696304814314600481952124870269110378382715843232612063088197742591939453790825915015672099594129884218613185736403289934530349262162734225639980250417426715015105325135218221949477565228530603367343128911135568037995483546251764731435523565989095979882781893743300731073905625668686583250480530723973527056140609851061368216396830175116459313981515698067533771257832566957678710131368574107790453825580973199283547302378589880439009634180662855798416626933671552065240082242840614558663567216947724367222084080499633361365476389385655588093154660480808044374265394497566080641749020014117943771112868768856681498548777422677407181891311227540462542044154365130361877701942518550283943435874219707009143073149946604837805680672853552121627671082956654171396346394746470793194921584644304436366334637467878567177357786525262234737010649810805703907860889833023180138514636755953642122888422641033209600318790895690473999254551265689725932344317115812615641268554926697044097667116232854354774613422346842755524054716084851246054290310133483145374779359503688192759520711473426897475385067132902998531165247539558731087629290184590103020019670927838829886278092757813504230382537368227877061213127788585147804935477774729120799484750414023626524172919136236416051527971481898410687926427857726674766128677589958343218595363863161179337395822317701043636112321416522674979011018107019904596756729536689539278555506213404722129700487868030078085879688033475823804388546846800930336990982274394058474556553505483492645629089267623993676956385400731197830605297578187443099852902235232120072230820850748553562514351942892858194547467228145231550385557790110652541565015405324917076674127352896279711451878081133303026853866527767461168870314676792350721244667421587449968137846065473631289473702918413543752850333130168481906840443717285382280800911279264204641176092350016764434939501802363193477242017067629498592993070189613507271467996660916505712811187310135205737091955615764557832982603381028409285064057185102047079295486163321217473252552428340464265299121065560332485235861858876263968765411381294808655641864114707047763033893548929618575883146371495301190707076329701796906573820880294211340854449615451822226051004911147233027691436678148323100548524766299603310223306714943240357841625958158814904037807328579658638863203074584208452683279701462556615793651786487398654098610492193900942860025598169053141334305845634013142601951433329379088945554331372918406327674233040692529681450194357365006413067853182641360140129562306114983722109881991122812039781462266949174188746483545641945180566630470302173968015839000745770387764943627827460242204144047534198748657718543628365922092298246253949723739791177112515754589773044817715883065297660870146441550698941035642020888868916822135232064437748770674289941547387823280712429984903481254605336371233157763227898685614121615874926586570927156120588156318181183263695827848200789170500360576589688321670742160158287489123256268746543815793934228226885953007527842763437957847512113580918067849263162367990046702606534793693148940870293517551694322298976328399159131685925971727331851910657846050982052026288532727073437448194838649874322182757227009084214350778320741239426909039995475381927052508890258143548386430326645793610077626085960467678589206853826605133254107300166336341158792292791816048874801179318933389964152586515635823643363979526491085888624139044795611447796128740118150129777486567613256546243877518995457563727840884053585202113961890446513050631724116819894560969737053530846104333679963214544328235329391346422364879659226215084116655765261638984077618995836878489674365338440993984752218513600094366340239593778610761924652585098662882877277151420997651127691820698252422611491534240440141417129766594121054704960948214001689090646346052849914290109387495212537036618998250768656126660933091107211498032068353618228519535669198895140881960720514276392305638710472372554827295437414977230709656452549263967442571450604352488353103905124867479335285976737325005184709031256851778182706266412902954316051521555589362002848219824879448204244321233997606904858305222443550154073406926006984658034805541376186761981932281187730671117114439796079099700384538406748234684785410517545550662412001498189645271251444371410931766991946169709213356732967650851721830341896579000020476242156875132358379052152783227250503258016519837134545176661831239588701160502577911372501123055992149446276798516324779018682861365897914699695656934307655841912553241387574212576325826217667314011224872289962006709337151869584063809430199801813009852064710600371245057601351131525665174922457893593586105923531207923750431519327982603665099084453475992002770767733401171635605230047408864967965673056098324424862413369397392069698809082773202447774846510149866962609357765299406243377093369544312697093775026833522461616660836829166113772697421916263829963560975549085674764467431200283960147383718751894828249970681665943777358489926519827981684528561710793725043556145084906717997820883707815268752955967816736271392598811756538538084660735546313149969292589532679884970197319762916012792740240529080276900687713425192643237430606023123226607019808743203117359524118300278001217413117104151283300730471517133886667239282012824674602058833643043981355625578923293027185738691198818863141888930678476155668289001195821104359781350069079001566264179878752018867258392851480265465524624538307711486623363171945156762258149442362050388461057826792289979252808275868884542480418329914549092417183211163534486369863812108054637681286425765225856955994352812335505977177103090422793670326512970143607096789563392093190313878861824390410105777898041788631855476158390035756085112922310821444248384342402395354344350619652532745029277900240760010838388228962698440093603274139513684119850036757761923356486324775190042337407304193074755085990632997860571907968644360429271620315252223227407102294402301899366357759123743512989398290281667746437185142775045274315940742654766276397585476485769425032971403968422351306625947798822058129281017148699301489705174467584298438878630776024944933892042817965337941006025342927638667337592117868021133799443274296895026796840846406383046288213950766812217524173682762197791582792762211807017159009748994990290744233440181444351160200961048608261418531860661860933241070931152023568433590480045754610736789163623491959115914326297204461805724908365471091747732342395656048856337771221950746856266828373103911408692149006243973432771849980124306020351683664126250901623872185390731994300792876454172793827532426882184207107638394737914053065826353126346309254092891925759273462654641035160509916977256364722812930625846241879573155641755751837750390143940959280650461298855076309333581524735848793229340554548690493214824191087856260287189561124316446982797904894433396485753802863464183567536265029196018274379146127882327187765366384134459085604574008063338975504948549708369624971572641048954260919853330895385421928132622232590448181764170817263755689179082700743683263674034416319281234891829638470708438219158843078096126456194786620743571867278058951723982969131223915147497660988900654471044543243680172894028381200761801734875959176272799648094006970408440272361283752340206555147336555339652933423182954666121293083216838092985918841388705423575026263160017445130169452826299932777079494086660634209949463174074389594386302648761385151620656057560086328161236942940900075509231767027183197151379508700361199980236810905331828446440424059282295814636768580806179708148013671212372915527319211667207237038382012107100405679779869094868650606838050806952515102159540976372871185111475652707104993334571520971490460581657180578153733090434109689539111555226479871205339334474559504671550550421165222407274624638288844290514361965853850209560463974877016220504142156447563151398556474940254038897635786561780862005922585847815094374486683458778735248224228308921435648009023949074458290547473051169543471966944230686757593611385692988095402814430821584810002445222517394313183812206592249718673074406435139523091059562864618294472129701582625640815821215920721456312124796852049029326907331719586463335444073889178391092953075008120721598164063552609414285677564394449934993032976305715250944407617718846598778772877678371129644735488721490648038261194397023232805442544362023995213483343289268960164636324732746110912173849208654709950859348519716231591749638378891338835573763741231674230277637027456077116214609172152897794526736045259045087239486670666678247777355040153341529207395107319569170456625769093500459684135410330781784348991928445465532233887399418173818111110850042576551214810999966236039738076444228980255384153862173751305650016397144968916720748100959455869122973101064675589134889025613296193378993273789876963410948249657212192507201307787684231112673339031493889122681402923590866769402016132361136598960997126179466059449003591312699032258583548816548803856431097763243829425547230854588018532773786879719349705462027043758251537309723467177344022870240815047036585958166486120697769566988078821353498583501832632642960249568731060819957906970067801923408066656932037463293296617366253022779037404700597971979759154461797808024933355097266534222258856004244395998679002583136609539962945374805207505435210303073247414468111229614194903884647503791848580200155352683780168015057571090560667176168328444146068699188025059340495557357328068688209155871782877094071243637411664830668643717078576316388537970898806162984720169745407163009769385714547752995465504037479114665734646697193877977459962388565092103302040957827766173669007046777703449006076154130160447242219166182755769276599986673564603825436058294225589551859448612842666160019017305941560480641668171960811440934247028549970321567498385687127032904113924054817604495896824275380147062588505420551182484186926473334805802740970111333999928133071291440222900995014240348260119506455698939438901192623466653101972037446922258828833453289711218219707166197398243739642356590260333595390030823547238428381163171714499435640613584107876904075710153335662599862085306966253330656738247110374234051949313921531261117100104258578131013766536718536079663083938389913939183229289603167959478193438533026448020450796111272275780959040099343007850703222750227168120272140450517856572312741328969828653010334784831675468864213034115896300604643870697104791015012319307466988398946882303269965933863761541838962969601514110868786846358693033408995351423626239956095677851049594400223592681688760923559772448027629522716512336532093595608912401000591927986930877129009284401237541046290795086255475165599365793092792263403707065038150770054398076999939671543200356943430801175057738763620990911263440602895338116946270805923269457142485987765363142845181197345900508767296028313069953217639514477470306746709446077344766383037806211836762626538851087204724289798871298373712807883263125534304323194866392295629881331845715607958633783519111707703257043459690663500539596651455133156210222158061041276698775325075556896953091997400492026790414805946365777436965093332833453537968346072888247568243373951903871277386978041401721076413956683142249897212564363173879250729857516831870632990646553868615164522190087751331481039956559270835704002889087389079270810263695716122249609051735068602307042569141910285894133390158580245392651056177658320851341351156410647452704977896202306675126243297345309011093654694663392345134669322599746334479838779557716421273732520739439566216086511976806124261854013294131374092827709555217494969784892409282093641674736178908798584006474077911603361574515380382130240120016676613959794420804193602877252860069814782563680461715201166482078098404828845735399754060408705759244902323255772806548357057493056512659859338285091201616708999043972826820618034085690159009103661428612703979056746398314425765575564148836870237066443755418817272029931259962129445275466111886256790611239484447952740453560775621665903897862346881456742561546582855786706044854132752497306201376069883309937379183580525836627890643155433206897723772011576103799351888580419903921496091610593351889194273088911417798005175095709247224074791901651774162541016895225258242164080669421546147704182876944957285958483467894907653794159541728313256016389327762825490324818306553509006113022521930192420310921336860040940190600032186574647524739845116297670333318352001349401303498029560359187682365629251164972202758427009889114421950273674287401223048878538208375622436717154458079939340446824786950015566294957607777597758544797780053052757058579461982489793355871929059327914175408358480641618223123883664490641997250575792761740363110940310882218259482700478995483432418511866118174483823879776216741302351144433769658896531194831751303981675772489683550090595306269521591671490729211343477077601857456739956715122451685399588277108726352858193236092519245836862443058325912844972580077927591021379383644098389327057774373067511222043775436360676625019294147420073462793859279702067903673140652995161258619468124791625940497829570186553908522750894431071401441489344946469455749166473064875761465399571261935767654733408279854755658827028564155724379500772711225755896826351354287308385577836747714099358282470247107501196160925481550563220177878796122269497816592466102581216576729571426235213648538502993548403936260027211647910036925630496570829815591721452858305750638625580548980379349282688945356554878652566236140877454175698269743451514436699342327039839174582502697218925336532053532431860277952400302357698734445919674741592513650123846099011166043697211828785932080900654178943999736077412011517871988279366123714028735162211683478713946008201926010238508529939163497238275017826034128335882803596423105389078103188347803990470745336347864351138191533342875852525134129642928606079357846469581086779069399586292464054472790549712681657555769954574175904050814354487024014869630320966674565805275315375173629192390100239407780199435124528420583186927269875713797985668490462702177390576555507856216933495693807367347728545495078069381437586436462760769152169378854635512309721139670941986941301367306981114642382424748463032699082998145837003442309702358302372439952660548008834077386286251983315342960649903067539776129640620150079346055093110717802422255002240602203355153677962956096141059115124482788582457514954208711907624300497216928818161659779497212881667521977912022092237728936609086313763022210004262628608994520997029376085435999228334202354301755699836040007811226211861661686547233190214015144869730562622155572833542202987917270682377946831567646866071763990281495337157075441288967995772237909718093661244326426267477007268956422551184249676309932522982054887530905115489651537720262540715246419221462448555779297490463054888950559591130998300087496964199352163598534091639690428787358434132632364521565285992651630485259761458783742373525685589609371670425522482291286242390274913078264546349039304926290052804386404144283918702789475030699455727696193767694145589985884321335643965538738654516664771039079588847171620496900619883825375840845742490113473647750202640829735171860969931144530851810832155101864629405705763721851162545481787299148079508725771747429733459467500748824782597108651005776448871625450786250177416272101332719326565944042408128177062685985603716670834556250230250109753837083454167136831804272045517861750278609295209846771298347359353926364661581103043823228001030506182461299888172451040879691722272469742183150645313226687125692145135883197962877162389832135294005445389056175199100347947288044986789688248349774186718701713929708918142978314899769895255271529473199569764703297311182788605820285557870470367988476827631561951297302040707377456220239647178342956292473628671757393879610570505159096321482444063844479627665592961452448241189694847771340558383487971022864551443253372519802681999354743544266098015592655072061687647034901527108936435909740047357854505919879937940505668994145822441181014026859894242879204848311232484406532675457159535088482094316807753480927895093180219715863722119352975921211688118767570265369109657803587240278303327806406026845611639198511010129437431110822257315456733929207264988239877748408118830314985569203600444370679239482889684752599721076081561400956552259236103805006919868397679117949973588314151945468623791684826449285858537441539097696471352739774820234711794927878614801849557024201782011178280513466056335769157058410419147493645834846744956130889525510157087742364749554753326492478854722487610652521245095297633823653604449859611655386774556747275530896487634479858005196115540439734479522210728251242112679202230393568679515238452790825964074795090000800155828279379869745936308344863864483564989254248341731789669194323042972133089913642006544775187129711924631858981259123276825186087527002543834998469144922880007336772914842620497445573944563075402046382004320200373706426963360334677486189642780995122897805515062781758148248944122628234640377758959600646557856030645857363017542796202430170815738192474138144257084401455249999863766155081677473742367821865922821245926774111361144364911260079335368302340371907299524274350269968737829812736983082745573467643094384076060298813541842915491388853187030804212378572689505721094839065871598117736079122221693597696898218234660613673322766865703397929503051246520889540606627614173372018196499184436834070513282389124815150071567304750646514444685306369173224607417601363860219997497793081386093352255588963837977624732274243392914251428733221522049278264891222501340936590848800507181378101282462914536128806899712248392157306066647209268123039187982126430198942027369398667842930579912974940870505623616549029903815496505576078968621768542610767677620183019455571836290925736443799722411486613368541435635595271808813922337374504680991575648164932752829637658359248960009707839932412043054336977622398180436712052677459189486744944596835733968850623585493352041010343301035738689164307894796427161476148387189442403664182745389969297770531642378284294824268794076880463942328561816918324148242524985561150538152923283865644749503408243728978913344827276466694373217598199085890362139683040948322132911048809411065635475837680393717366634347604533365643998660083805366814396625768364934612387760022048454405853139994628475589349091361113823963950218121685805444253204893895636901421871994900118402404400704123901644557634030161842215499706475831715910890026001038422773680488722331532478766348415894929712953398532347346999325426567947016016337292777864275053190528974567917420189994572110078685500239963525998427279253012505054237155498912492065080748798006663819712759934783390373914559768668559406793077930035249565254685509822894165101504676104930031408141048780483360431771426016840282016147877659172996401675455457081179756491742908768981248641478595197277397554727162954910409013347754344452738516804572052499280492471217748120929519116796160819850132079024849285232122678237450919316106218078792886093347056016261865449983674703342028956328098675290201760998301498640731853942260746223714760929062573132172135417631264987043634070561163510870009392819654647457641299596948007725870731049164915948832231399495020926018689828522873064957130010941397556749558510585678407996836860941729896720617325221977513718346771235577288055719876171115274242301509221979606044796950331141552963289298448166430968458573193752787304507371916440289717050697263851508725425749684826551916156552766317630814022174682662389914871094697293392818909942974418656873276278922176406545532034418761458343913631289841744499132085072983516638816170934258306532682989248514920904111547613360151471555173449452986628892455840802699729065569536166229000695900094151945741419178833132928972746655228904855349632767884816684185728752743518730510697500457993206858702102983614329873704602578388608715701050116405671781085069848593869364728176699141875279462712516997392863417888081488986334312529503074082157310548197727656159373547371096669623561705043629031363466695074343979376612998845289281692979430710284807098325881261926345208504535809561391809599507193192086273543811457753819241651363727153594507829296455777108697035910167052977702267161332201379070276780003604540861098193516745243277373244306506273654336033589641228884814237461563733907641866909458288814951497987206109549559300285582176595166497317893036253989492685384871411649887352223713385151664879646012423825433248172919439004573640469714765582196991017618085359742200957035301256257572236534252130288210930268846903306071400949765789416969571523765188693652810845172871559521346875015918294463158189825925056428933179823230051555305213014891507881056908230031704448651051456445059432592916989347623155457282423143024736947740661830812897342361887222512054776934245612968946498838140447698756993968505526551513083684313163592295157303793392078349764963574491780383941751225860716165579458035893518284132239682885153699787045166340574577539721878283533537064605166834344197184104921016629934066553215345804536783657419608413446080880300712193833182158721111299973446866736701637069162098290831533608892865063578349508653568314972263575457978896121765820050793095475680232025229633828964357233506303459224330968550892509455807990916550966925116716656840586843305486764184507300645172915416645447234097925594795302383965491626906039970675368947259735851051484729093486831609995766910559146177159012566950426196752204631350846641837842728715651646330808109422457510018034567530430794405238622018179140335482576707992001790927610606225657302218239443334081079163097845093431391159548801953795449260349505011074377604436025207099871858967054339705665336855490899161393568110780813291868947342380578009124847703451129926017014963246241669139481382194559753082149012868038024792345629043262201680447690239499455130567462910270211504306601153335125624248512077190960397242961701879820832176552811304783343740534515717749338391207228293451418880002235653008694743276297083165637399855107730344890205913804030424164963542245758108003676779848798481102289400930646346105917136656304472420974633926128305475655854612814024657288822278990427393565043107507861087122684261063650279135604066378783112225938647422730873989261314041217391726608523822982334401583068115190178451640259748476123081315230013668191187950679480193947796605616261479845921970305848336285628587853976344110240401828934881957683021725422053986317693372202354873070677405172556198020713608432136363049610096768097777238311829897591966592322516763555610094430321034806627733189420546495557595744364804571606301562821876136295586172120617169466632437689836998541990693336096553233768900696705479669519011512417460718024757731963895292890312065734332958008140127914075433955370008594401833285510644720030695089387448506106800860344493601899030959119639340859169796775093744425182304638662486741450606458405796489385829306795401646332125258817413343467272178621915825200828320877524630072990289676329694669715108906652237400368553011707441602229520064386553589554163981317436410848256388354197933246816543549276273947398508655348269087320751898240603357651728712779373295095692166594008462938301741129498664336312448352796097678672048703879540576365779363626924469176318436888570532819629730618645318244762507565661349021072126114671231588125675630508990262246507889410876613877730696180631012531411450737514264857672759474295810198673874100417103772944775384907469622199081363161043320966015618352669089306799106780472707640532627146885047110221810970817518555490667854733844338149773043547277865622187119917294006350841749357809366163341476150425159322557515986017747653554931221641185774666304017486300246714832008481202629623437172894095398867765283434794311288301627558683558193074143299774028103689939600092493136748347536636515596731936477083911180794711481955376446534424204422038483230273934024652455797285641898869354617943759789714669648544027800550705221223020250442463650438305762966772113007917839519003463907989496753054744925812565250679941959397935990922131327580140891098280779897571992999666537806095703082272835148676852989064745513457263674075433004283713742754723850338219237885311415014526165448112359830463576415666876881023850437837313126868143114963775883959226968404007255569164838052795083384224846296577535813010421439219408504816889771336356891554634393322880377369329799422212528705217722530224497373147728384161358508227456316048758732804819643228399727383026847102728587429556337637593230598121236865308266911176724852262680615212516931963302846017731486128627314856330259311814114370048916516134153664678548081124387765504304980092087091960832753565176784011294365683324083277605119464653702822993372444386753830397511149850763057411383256861097819527794502444372002010412580883974540546609002084224644121335173518268292138702521183752911811830906637248761859398955510506158324013217417995300646577703371658491982836550604388184127035204984692601423812537083279654820869788094126067275477923397337166465385493637945601049599140893411257070091011787935792015027538790548987650142251626592802172425793396685764854652141108495053267995881696393830525043469109205854902916109360956030658058752177636478955088786966492727000928579940362624864848492510757359055122571209309286669033624111945893943582536037849490227849470708100586691366694080468373500095726307820696999738943010769913196736064305540462302754449100932840836074079757858787727465710174769765753305268286826872795286071031455599052524065627706722509892467576076291260733604438281339695513446957729700855569337698788269459199455383857206397738069447309017667094028424229619333543813268397428862016664716336001331240103181936506805644933564456287544257793251478708848173733323354577707396674431100971642627130828366576168213289261483872134401262074822831441479147109353102933207112954417060315322117644628067234716844996352809777922846474248882334947631285033585925100624056245365667637554121947407093185380586620291329474122488992475033149954132325873813309870160726708010581529158443863479712330503635756536071712173486293513201570687954131341107092159532414401613418887046451442900218925441329451012163682697116095755755866656751060564942915650765367183981484610179911856207223376247404769460604533551667203845166211209871643282444737111042979892138171887168641005082017003566926622511577069928186378468036265459810252813137904156576822598368210509852033094848032290218272849491480089067675172955954593499357148396813188031970732456382406730482182425542906666610457440633513829397492283538050987235006798766736944874905879055417529733061246216258894614897224529850591428494565324656548620365807735027485500822572831515468903745716724972512152303031483053977623719212478880436137418331288150416759918082101553849166931313421494811307911960876668618218524723556947778177967753250491443850067647499448668949210686673816850193854558293981342284860836761898591904903450308505233645140345554570605167116513292119222289981909704299203400191460624024475133910532585613184605996226993066476911772862813331075523555109653395981232857113058980359909001908517061173927406453169675437687446859077473263890014065234224269587085318524633680183875622644704388350221700712634123257501594410700536586014122208544887648046263415920287245071643167944261084616921075309826231226277898069051530556905666924167401255967598744581850887119377679067512073532060540640556944446411870863848530842186619979149074713694821211392224574755282088522179807144584155061898719839364786523831231876161423275456487585068450999802832726427358010259081188023451440046160972186545765758079857140372521547930504942444660153241174237219924557653917594874626031039880329133164346123815661704062182318875472125920624645611541592960982092993016296832774466943126055188344024512984716965667062734735276561267482736718051422353759158529926886723443278649474694336070014787377718655320907400181937139942315766454885681982071982237856299082859063591939682018133200598222858295881657372024974869181627402661840317313878768222431735273924795465965654090432961166621598422560959536233313498485348497259912641960655109086968711257958505783293109191200270663559978470794398106112711644365769570596393474396484170554327576271361707271261552361400671337895254454828876004071147074631404159438577792218480745828870079496937309646233715631891231648383857030261084952515908326829777572523615319366801226560495169070172074850584322664171173352069037209473692418151422033300101762803932101248492982029092629361744624339110018125322001696250691957055280650083908844238333144469627117042755449327329882839833609639087070487605492527025972367914118955717621699755445466214855754519457132452893732511694859343389987729297874355044822336912816970284163264729003313318425526063729333873190649554434033971705290988716908630272812550077373919703802280267744878460004753797954730372783136273331864696341082706025713194469175654961080764185012439235126985704233891511290266444161893300326246108493872490729148109972924421347253229238125245459181470858158607844014562606779884879464831285020570216075428871938164933904917464406882858793709730299577970134397767736190084187391100734156697716798940318600227980092155904565041969171117607124236640858311827160889727539605726860286854111680181030828481889480080631904046498062671369909997020719712957003217181246888746256569704607644570183655183595149533448411094720554087571579709746119817910544548803292408273208139977307761163354611443937025630435502461934686222028587858252648179967845580503293148919056601560246937505768258292606813934081562420890735656813606710500191730509648894919814121438289064825509188423201154581089274223811862692196277232931947917391616583417774462263380542858966080395469919156828590725696556806712954078258337253298990651842780830923417173189486349856625243998510191280860053875269643876380818814885178869421215089347310302670468163807674151301372973780061497281461190960889854503368314408401313003820661813209454881236813173011354841242042251214615907069745398116567798187389638803468758111776096512566739347354584097534774976877697507843106547202636148796442328450309132601002025295238470789271695571299585815707051452156360905968431936088223756478275995931878059619698404697357379936835160700178475683188011019441238497962526048413347808004141584239684186605939372767953558017306574688794681619840611523280145061719598568797719376648930891436066557318860095084965766825359318353585351341797873711448323840381528513643827238383342656595551411748432691818260622932599298130244552989400330720343684098428926392830813226798772366534192658506987723197168120052087783128337522006829310685641009736127810286460425356256416596931847419628250942864514588741374312992681653432136542047089079681541256799359084871129193128963736166350631287947920346747460948685081697916610558944536554903183828900706182944323717917676035593471454361998958041619701118546688944685397824298223479214184123238498126676220140812382796293962325743487059966306637995759221344079436929214469044912222745621285005118448831034907986627956427977695656356566962313652473854364759804061389666933551642611650603028355972596938037516036312675520469937513230513290397087542009795898157509285645631381074182633457940582508957505341842122360994591391571437620936399116656455330214020731531487236478708613239182912362892586035915945171454098849233314003608740103960533831905431817761561264956177007651631087363093206864087832700344775365331706164995504534610489345184039594423337092451469292010149866930283400624432427473705840422744543672913196920739322013053689041142704310598075909827265200082194790140832658432583368363114741115623841654288222260065665354641580692024335656701230535594575896284131118649803417794606422649851462970431071280125734981986110493438376212991173368692253055065810974101832320089488712496866246661356811866972976066309311879294555764899568745184995568369300341045024346686714505947132820954564451459089639607664939577993780796791485085885502410992632139487539990627090436817793001030728208486297480817598174779645669813952742171117223072456711236548325823197459905285513123963402961103421909045654449295497127128261318204722469225497495136488743372461715227938887727164186550324739571753641541176716942622249870790325401005942407938355087242286107739598069850401178828509553844731525530624688972356226468824482891200941472793968912706425789034558003896310443378062422797361087629764396263959584033663895835052471348826548620721558519356016841906189299226688997891381931330019233149003758746414271099402243267291391942987281514605774335794790532832806755718417170156583478697172172672114897001019971316234706579848224725420452029130622399249631221182920292539258965157506962559723174613665503425749867986130692774202425220052183468669390460551645985379403115109215584291914270062022866736985562869874456016154591499616005426835468533603487411907878062853448331488662144969073268909448368625526578143048183756098469707019089655831833199598307497311358489940589674067545004228479388781988124928699401624314843606062903049831923405250560505493265774050857506933944694482436890063173444283378835208817395916098669074137990410413734019052561850511015132799836621010421496985667328531779858404836897323590613451114577863995114486052874514053766564094109870929941616289607178574573559947031353779108575323843572024878015698189900656978254975035975487378401456925949532593313907135451613040585180260577135023897038299685684558591481531945964265281872745645071083985526132848807772744172143636193303178807585748975092160218451063078350323777072386211351256236262543177389947861094501454337215818869986217310948423017422059288075313399766454789783220068781418084285418785914854375782256630485185236409543236553824210592769088388574901565729063827640576077319311386768080950224976693883007834100585291843834668443790526816641652720294784975925645061558435680705221708855270651917876080072073672663255090940675107987552747075186109297547557160840517746846918216912207700439882010211149914922682137725385164440648974766041912660892904147049538742184850832287717614755655177396212073679819652169196912156742177915059570386282132632302182330141513370445010760711656489054254256689534631373396697561778145221557095754864808401555716546883118318975955354931927995547619928039291607058734036865397291886338382314532264467900504850835132354721465270537445623851990251174778737931493348442195569152836328363503015267740821823822654367036221486411455555303825403702189567590812365944321238766169602715096802624066685122163880522274486555493204895598644658002183285724957235261270966984757996648359819453292244491352659527980849158366615380658136315538072391348863386651321083779796153524630240630439252501197449997194055920365935367391936998663356835781568665031895903041833603268921490714569995840272630681781974206492601375834309785378370353476058760032842579282113308934137725391118448158755167319129071370893958657069465568237340436801209083308069331214780044762317702194292998423592107047611605194830932698731853611368798160199736005838270024064381186131479108939186182295187509739981878178284258365750930176301008238872849377269390546280268472828265826516784664565622534041609411796025232810606294983093787327735741155582498463507158580823835046059258915308355370543493814475936463630667534327673564165640875808297240985476462428117568380849559330029577946185563423107885438674281818327405985230089878770385298290297881453544835860820996521853073688015664997081245761570402217317061841051862002746656008572631251266575471988111507394169682713683620600814915806156700561354508408431356877025022006155987518300413336036555993010926743349560913281925375647047140386462497988557201592391079194796103896870616759244038673542702561111721692557006391870523894819754422922694694864834798166158215652606922293075886166636751669415946524961375665052738727938570406541090560681583494999229210089742264305815052612304940933968180164644851219723954016574349977014279435075019678772769601210762246037414634192354264628299846924323023247352588339004844367039111579677175462684069417298361138308498447461913243888069591825403681860432778490543407053455526117798104383778403266804769935487767030906148809237482440430525173950635204749135887828180646884060144641993511660527980683673321425838359784107130567510691686617308988972998300309014744645992032878415102158436485018295839392411472229779039047856987490359174025266235009285534843466913007825929098712345916792686960333672064749788828626048647046292765466244446086571722496325862604531446037595495218906828222238606813373006229737540342860780098322948242549534298172609433001276376393446342421695404292293982780281274275706057379300956410873834818019211178675655052850913492027591985735900908719864463663391831907212391171032368909015187306585840623875069218847910493400534150856942523143252987976777469399877188271706240003843135383585942303725337114918417947142450539826509556762821909077746345759275485426490358465901015595894986894949571379414069253943606590430039225529856004795245627433640002063049849876504044935421249791906611874615717805172376836954286831493050874165012930062104725221469066488892922720751772666397188677880503401010290591830252652490227577312875492026857901931441228337171145288858717532774269966686957405619322696471744073444475504891795960068615536175692150379733486834355500256428262694635026308609893609444769309897921890894458404698689769706117179802676478623081688551794181093116331872567904954729018033911410694260275005921572208672033457764069069307769199767547526855079531484544339047295634346424496195016086885018062215338278276223487861972692295638911685216913204059442079226787052011649234802688639652463626703265189587460648060980863369843484483654066770798728035806894369884137257483712839874582781441115259520532738370591041933568655487289892962041650014327155545724371662421808005874663828788003015131792153639557134088611357201296540480460498189516881701180654250543052163711988735896018507071790005441371605835549630020853192005251056859489580065886986770878192290223721334390921678097152298423884011423886401812315421419836220485155165886537798343795940078442645668247844764716960617003711599993366514301659140477011842133288900642269277667777642620467073338541622917445231194729439063247670490934932800699072806739799859818223722002724438878048158258160306208257922190482800509853712026621954491537007304035084798451757134458285938662454748533646467987964061103641758508409909430494468875917733175461725173013898609283917801388373544675157687930386543247753184036855015203260081770170916014602265393727605247323079613152247404802560725995084223260127383305665838717704730465023127889219747246036774427508951967479093371594205851953161719109563844148660713491592541525669636191942121944506927213661179275795033381649273113116208136612637040369743236499427655295085960355736602900064285750749622625459317672271815740710660138761814774172980738100252126652922041797862278362171854158194217493606505901439807840383753027118762379837529303923042017185008917209458144429475069514996561245839675291524130815140778130612312926912775271841907400173969522736432588889047899375321208193000889924051503024282142034866001487937687250545244876024471267747935571188216138237199064355875902175879511556833466971249432510211688618759815118648001486627889457579275773721842484112802355527754875751556147448045346028502029394909372466639493914179843188590054284678946411266743954898371035097323235618008357398968656569634440918008151764374458942723363865153537456979281536901390129970079583968973198120358343255237438437051479816569149957147272838618301111975152612870447132547126236468570476877725986933864207414992877232629792133386649101665276557648997176304937636209322887527784559815566916832575502635596659641096443053975889106700716842191892683484896621672007129879078019551063314491020761305481131813682704306945219681525731895158954871757228024815795144098353982391960251633874223994810068011954682183253447856504258885291924071261132556739541381204284423910780387398615650047439310374257845907712830303108701853375408712471488105361348873901648510081294278818910242630858578800541819600871211637025973142242424184964415734550714995849393108313409377046004040832994656035798203070632935750790288238716265131743776936985161253227529459857215014752976394651471267330931008381258262455585630946442269638137138337331866684195023695828127726549683400971965270942127144954978206624445008920761439915581519336032879210710693219092834681979938830117889274935616222815584051303609873640843726469959693415979485053053952838390385925786259976805304839131844327969252139815421960736854529574009147811160687274326983551331750196304208640832414876097500581972790139090693859087855094608633581589341239961642608223908056353879240197037639347124398092604664826617116460125819022988536754924664154081776187521224429391698386889473614439411496238367433327011525724297143883061545969897191556783337263570410375220480917142907386208773714333779055291935351101272501683244365297450186431249530693117425354799504360987251054141043655788247490630877797741522782611396361898909492510659025378547678004350409461357088840046435022397102827632385825329808825530102475308083320058392377879873706926870226319157944820943313435354343786795528834070158902837031786154330766693970858770764783290882096578113439589789872701792601119634293236163724923970574488665918697393994781949603228937625450024222265642410937751622320070024171025544289491746179934809722441725148769044576337592500465439161884161004996093687495291941845615116960069510335875732548055463793622517422062360926950576032659609979120422633027453823361592804390007655742585129066581974872544432019556021250009809461695433633535216335897607728474647781505902155172535404392192446705194622766209852899856559973491679324561674962242540761250849604212611260850122004284255947807301081582533897761221855008792746631882949514835842772626977281932819210983699717278822451254404465731203211554502929699565185176913768898412040193980572968876157091061205184569344100541494285824446468173774857027249951266805003095767248634559168555086848550696080730878349485365710393079248892789892107554907429668186649576093445045424839201609510735881627860983493760153544980110540898181176926968969634148687047072338521554991708782417712834341064621316763453609487385933388845047898086064332944390053347673506435059777033578808826308043388344050360110364728721890004480693412297044251006769437599718039028512783999028465528906559532324586161551004656302183748194155117190031009522306118321425083576641195260921750519187832010677384898690785797768601883066232883120561596788939804069500169134427383488116519481462681818551987091876026020202964977522426493676422495343326104502795213213585898264795615233285296860212703670497917658620465632696843085644642622110609047500320768409179852883431719209651550256296033411476927760071193354862343920998312167384196421116945781850704459630183146261139511509635187604937925349089182356575647955591879513007085880375481026060769397532501874895684928712792099172571017518740241496216664844624475646640496233459467347103693071742269705700455508881123748396055713815299683807352370724928893487766989913017953727242626987569682358379218370854482863243814255151554713283487366844922331775722140840887047702038027129651609846106206675143616150849318988340528237614599497247283153874096987517017199705598143720720868723173393612086927231337136521375914959273614597000884298980896418216808872393789458169784625117356248959249987150634470357091647901253610059620941315766799095987654277314957079505796761517257517870757957460673430514882268180040367171364027518285321413871827294085681342471590750673010378949355607132572864169544390812909290875751964283192019224628307387190235146588204527189999812228638495203897477230761884310135784239567514618256894214743217633853197395312183559797655275504854837931130312715416975594506300541368470543898486338034315339509605727327274071704401551572228883984917672962494805735886512859423808756967756382953664904834473159394258393562564026761592244183653095857193500756075512770651761643927634385928212058584528716244020217303561206837606102545973200147415817817438743883161846304169850805507309943662712468660694551497808960004938104885509689948847004558978570260083742069152199322556981331070865195785486010932427575156612864792263417000534742737657269356390240378073524751509438547668160789107550707153208465122784149731070945348180312458016666076683918208189004275513481164127128341109418337901380788375648324458228160282311619996650683049936135952187414763324119806403182084073292607016476427126240456356534439336149692059193210330283393906557227780232252695670051219000646304090445574110040274431367414200268120143283481025126413786750818740247400086228177840364278769029711397034207569054980297772638729686531907812469605192622007333070735495994076480200661080450675831880527262967662896577250272004083354897842994133887159899486113409517490890218279774168540425719380277219384135734749345924190746060691035625936770209720064266784532109841276813222686781132136330912542096859651504298257510449712401062262997423284542600494165762345635445534307656775811148058056619115594505005953626349353823191504159858252449881792898507345764965277085141181395355730571219319685794279382272452887951341848053105592276998171807487113044235859884530589776207532764793675522314967408304252890864061166057820010647626065081544398126258644856606125771303673860950787787261896046745249843733921312697546844919234569066860328696546602863855317297791871605639323250164615871075336474486967022601011291126117985893419871353491841724405849916284335481545225419314879197317096336496853891067630075473665247364924311099994495167467783649128600719946015709562404044017416825925255497118908733177653118466882080049895679649904472130251372494971501710632780198347021933979184051348012390623596532774804929287589071129065302740055301178461183221982295825680719606328360560980974983762389349299064309399159637479541798452863316744892955352494653673365791487636829357061752874404480395223379829368909052737195404982881884058098376539974952212851228712913921639847429037373244299871782014266766981244232454558602491662842977754446706012303763654852444673069476925242202636420240139759008913371020609413684569186519795325305918125622946564563872208299755052002268627364393373982906842489119031408260871391470163368476512535134657209240289149682995727396760580005065811462844786901339111569359344406438396478080100031517128631574023846342857879898054135249737964003585184656459294914332624113488160248675579892185318763070478977622083822031338728696449097926586020636758497396184848559729570574109218936844221691761055402423850066422511796958619786481564310190854222446974448635477190776672610493368417099730944375461961299219082926191256959836623190335395781662746389538302545371589623867339054037471385389576418336816407278580423308220881083813192209172664448065943775536298606456263045861317558701079615330211866347471822276289476217185740933623236231039375976332923795450079549414982223804630582181462635936402530768145870837704698681907383649278468051751009914583805806551443424536176730006817033458089207873851261096697791225980117959553918221946345472903661489007471517408665500389420265603619782197500633018451347188392075554343529549033274901033109461364690293253407303313824664592449506172526988230679937716128572344287365091572427893984761053724144976657290742068894224155804566212130789361370152532904579673715745619601314143277758352286218739047298349194224813454852416601159776176809484795266950795405477903863611987351825346566047932495525492013397937941172989364805517907463617348519360452725604135124591392781298810987782640784930088744528950222499899895445884381577230770769858112176800802604403178464251297299078800376323674035788140546280690446567649908312948253465124039371089019906090488474468224146128195464568917903762917891358189691277976977081571179176057414968820443975021228628146049836322028653987844910271631380187795652572355731641784086537995180364312716249066897353227390142606516584262056199697723699322219078958948368426142027745933887573303267971777808904712657900016676137923416065197493194436644718538618423686948012062315420676300565868267506819669188312363302482194098073322156068134421392010640843973748446836246395986493621321401475452987150243434078759765607145890593391813019132408830882185645828513453418931307438384041903706653487933802868459445007118160718716008215725093746853469965255057270305867146963581679528415027629883453484510972141173414469354687993735077660213830994685624037579413483719219708417895732343270088129872369120678211781773489518622742840530770993323325264866142569536658081404109959325374135794580207081737431607608355367681718352525824693960626993159743786367122622266332671945457339932035084537105441152255413508265204383670371758397036986715048676182392342303790115080604924969318049599838129160405476782005798483533817514948944140704480349832066941938295384809783095537946737207037207379576996962045610378571857343508011470435885270929442125032018922765919772246158597076728689987224215967955740378214483334225269214679140914989855642901350873726178345657645913401095648382243052923725695570800273160971558799421473811995763882704001181775118223129003394795516892108400293793810123559147183600289046960051008682860549538983866536450718128588121249842898434839044699047188606527225895655534103542025911627639263684611903607307798566337210962449263955751690429511693059774177171875601353287153658365311601011582546476040621025473526431153189205776982553183158347093945858218941695595491581679241466552464018713810955029281291302754285778948462618936426973346680751703493257691111347158725262811039757263084178094280543859284777384533424917126760569972988491294198368022322265026431007083827764846613772758086027042808412763826082309782360942713151878441555536990509299914049524055822346865769099689954935151633074936000505417255900982606717548844798132756059654762521103134084710649748478078987675999785638109558964919587823918115097227846797155321923169111756348066036926780416054485396221402377176743716494739798087022572080665394762024983747309553948800937716101527928318745943415053734729761302271009001554385919321201056384777387735848209599579279368767705482400978752385292725584435524171244268410719631701327431491269822096798402848894576954062430099980083294706572568669664109660781021030195174802949919378450260951871210010442491513794564824683323818054487354837133272278128054965251578360500438972419194437311173311505557794877805428650111156850141111142263986901573657605419840029039833852108180087335352172537053803257196931470094542539078849973323065799830877999752795851128229058087175540773272406924567502093913205921491627134524887534127377349545664636978633185945872240193508941002473719166854285692383163311700860712844746694285947077310417979560184686128854330023514083718282667599782118754044861661952406084889155631940289405122536295064299274625306650983089106900450651148456006287033059541991971529795604512119080325940783457613729093536804255583470998131532129245571391150957198369674496104600544360068728833403772123141069795318424612893964390869874046065753891950951567862680047338201604195260084475547979762209552484816434159746843858350641037790740914140812442983004456641437134319426730493830644135106944549970195191088946124921205227661847440325325074370244526165172710414411142507706636169090358931623253107493025929662669747055793084058604165457757038135971072567146964688211008676950966662158569843039952047197761211298560275036814144292480762008084400979747518742973204677168816760132667075763576219403185273063731755673648996113653383403682941568263703213687144193507656595773225207632587777271327631486122717250823240087024710359929653345799211443980057741218123596591934880936344680147358977287845546849583706110275230002848140217050317094704710379170202328102797820956081169923840293627042006907954360606019222926326403224536674727749349382608594803521236218482036748765823343587040805401949480216752979233443940307090651086985097765054807004678989683900627017890182389751578241560093622173290078107907132544348092894911211788357214790442474389502978768510656678973352696535800222904279984969355523928732641830442920861438225115418076886949437761349384534458545577273264154745499959242575011789336287224506918429148220529239230154926630445764067762195064959231568966854408417164279823026278266911463858739248079752523148445250404383487472640598197605721695560477241688421099413037093277119791488582054157625310857277621330623101173911984948186621866126062278844049395713866682401824318588564221073131515417677633507903589855680740160134932390657853322823641376132977182758188004144574869358456198953542062320629629220443968406394453002055283426022885595320473836307846686201547542922736757877292729002391450663477960214509585234812467288223327645857571868198033297520275776292773096122596692416716641228323904890293385887045262968836570790648820258938947878497246302113966665876943068217791684081413180945927479399874976203213337199787576131888548152061245359883315551030642965271622363542762361411771214326775660086166665678624583627916184217657178896814052051369637928531760046293717180611965307490197271375886467206604631455211884497509961664964161020002806468394345789289137944493126077796882495951488778146494540133820377083724542278314408821429209688705130949821154128576050452949450846768383454378238055485916928534212025523467267388973099932972215876796290377183929793555303433872213046241623746465632853716219911001977896514026369554977908292791381031425677627813280782830319729897525980455659005905556439331228444310420100022242707278176956487542907848739389529025938743171803642045937968797930107888523935657284142630943002551338817368065695406600534755438677499246533590621195784529943965354370876732187575045932475554175039954737653562344888176503533105558448608561867223095330820148658500013552480445791908694068166019285418060743647715991176391665091668294370499904370434522765495423367848153794485475697449362370937854208183426048932529661519134957875818626774894629029339614091027288198786947996924306156657123641968823212409162472646336827749022227507404949703740311150456253011497585783278938859931295754773870202509899619439437973256666842081369722896714689464465559313044361247396979150279677122605749234036762615821816162549914368142871333104106353663650819547501496968924702119413602876148839644197872432035590592130772232608106355121005718051530327765839242164065187595219677912505288822706561205332891404146392297200933797096001006496678170838106783826101273717804551953404400564695311528324544462994862829624164783981363502740868891883746583875752845312381619850087893452386133698052817963348377210583361446253940961823998409011829665656462762328210308004670514559054329883780218307110840599455585359276289927320244141299817285901576985968105785821505443521760427394522207317566043095948315788185557459072997691697974423893121842599976206822227531399004830931458682244360820213054367655231786073078669036263218112731931695483216308449831982596168622148743205133340201984607065571662024645509868884758971337855358309908852612009900097333901994580126208690337197628271848914854905385607513623421937751708366753568095968951630400634079005323457629617687625519926926408648095082073223816550085868796320532300461826561337649772678452183710686237233703785165750040396514841588528481572709474883152254243337208440926532907886042700087234793967275027295335850274052477346418259560784753723016819075121224817629382938024130981602439370502106097174098506147162971392926692759822963630042815528655094443699961303065857341955802654421431382308669786364125894936635772224172228060387131680632997582401632065387599159286771912821460034902807996950058383113351910264747602812988518398871312087673210029684272414992208468881165488298006600238319932133541563918574952644649122364417008261373143012238099046964149454629648549364832871501754262019157561875854422618353789265147578630161557908549217347376368100813026974345919795707726671719907886016887125868712026026154821534272070892040073128279753739842766128925912832810108646799659825680331157091365659903682380907217410049807647724756114391047952807870672280677441599293529828156839506326151783859249422992870122851306226247608269889389653936666474486379222233059485818112916089906200915599973888240107210892545121892466998689647305400125500938300969365754606354558554415908074298620755564550199527577964831693235403509148453922696538995942470132004012438887333334554552286866535908140234288192292537196842835442582042980337211450576321592773200659821169294114584431683775593333975415623321247572049496210361475352777944583637920471058975720390785087752573746488884705940889917214285716200027517259378577724442465316464017693862048816027471385078468426256076725716063701771998287385783032700609090276829237853478796249350880669902576223382188834119960495008003298411819908484528163659919927267855187223168482960336254917986206257693910343212535940021737848376073384877411835353419492871076384139100202440045426417638300997575261997216544518356712118488763964764134646079193526521351036783345868295305715778306667963126062924682197683246179649157234715630169949851798863495852193981719405720703210022985868259267036144349933510085619877175394948661802851330947915845246403384610706309835830264924781938110901014536492069191768457984168724872031516340391838104578218264891729066787483432981074294286341576010226679825179552028751369516588037807412133586148331661475304474671215938200285370082855413263350881018828092833065604891153742697267911741944637575314940593641882076006351660668893768708805783951854889796597441635628675841602654716732973873381563069725420080306551475784669235069440404338656843455935900950856558649104085049418144230985749740111191605991624150126503241656971998789317741286569477516301073190654219786190107909426936137604122407710431377312417022035925520868173386068594385458800427540089879398326146848346274496497099769865704128253813927052223298441696508240417782550094302979825754029792783619185377093233320492332884073127636106478068885238044982660315014638306296379551410633809452598715208422783975530517207085395323462955654525974147183695390836553860697763737974291888900596421162378070428406326102798402775326750415205541565689588403881883697098427275840296190706570891272759310050774507721914656862786246472723830430022396052200365169752792774659438313088238534098400187253702526334906748805409482071986863458658960147343089552605607806740290821844112812466640773156305895054214572982105557673438138748132369480268619231568402350705690941978414600931852769679359315320262740381673770327936357314608716062795251150231033774027663623907647532130199774019438644036142476393608127443934236126710152498919376760507132896034737137879604686377000082208430031289384358055162411668771359767757368110924069206559507141061499286750476825212395432117249388242792123769077387947399749011890995773440452005044464621138998761200929845903485469277336260873000191969239336164044301513409319930896398814935203907525918200816332805644790192864722919425899729786405676660709817628955738789833497412459222146091762949715369640047961745120751091678387725851957528344631252075777998782591126992530107039463837251368612605283995624223130420380468339870339945363450252367665021274141833135926792250124183509824239415328933855779587531129296221141853238365589199405176577368615328616648815108862774521609641282998916302962105160469116443841056437889233081491931930417528992591727802299157631144403939486279611516965125791874123522183112623031650351640618371437550918571677631329137365397293193089652251189914965992568396066540956916653291242032167084665289963706116893247155400853993154489391969689371484348467963356362667261660450376125707011992878203917551550626117763828487241253625272999960537052643401894772328763315864282627128708744527700076032008167010280446546957619513352494716524486201124938947587516990856166140912647328199991952130985019484689193686320390833028890182867936398529821832667391221452114004969151294893476279907826507487342022853518863642639831198012493105018222130440175491045492331947891241167055931984106909111184067027138197262799258364574526320881997161262106263507673890775381370854460432475988831940569395518475566748482865092716022437801349228854268206728328958322702894516323923968087738511751436407543490440401890186377709897177978324806423665595295258788271848375438529912787203339950575446373402973306482209880075402163161399622142192728201491957671074142869222717344321894226200480368911014615918068387375672392674671936037781646412752030379424542851200308983225492446422433619659089305287809270088208704294511945857488177088753255728624562236532131674404846498133207998168436224020113904313472061506841401629779559767968574522916921423686863082328056734973909552120323193554460845534859807388678186744697007367296466544206562332275782074843081862852967811713556085606050091513304742921624030941924438634468283683383258429685711866300677141313268094466401854589697912956156661948369795462332619442887639713054894843648284013357585520433031893944749431563674144739907080576431975816405607567513290155271606004052502590684870886082813643170239668809249907985052803179422033542092053998494443052547353853880731612683808067453907344718492503981047882871230717003491825819146840682371435582164056356866793193119987400831233697975107769703256996852986227771335441159506783979916803719926797339808984362707683980187926062139027284141888324543227677211203621192765559334111648178434559861687658157683111018908241053498933812366122954414308634763264078123709807654174155889557373587464172190397570066570922458796595273469790719465821106343515820746100392084150636784248840639509322557200845004002498123543824052451374556477273547628336137971267413585264731216425119747708189214531583368299443194083243992465644106418242131200307319751651742584373988089655392057266985642521000782232580372503231783951577433595730175712997312698503353281408816978959089353343187533750057215841657061701167017651919098203337286098150792151848724690461350271546658494336907575128906154641681859818383389220934486969156330698389318582171224114714738973708227053569385424394452120727453315779400480410484226471123018698896356389391172629165625318673138886842418168628856704412575186809176379884807563533858545857540864736950245286305258612793950677761875495233850063066147270112907519603473643825496345675710037346554256088112145174615919846874738707961599340239012886766699074028149689909081591450175765627009533320639160363097286881869042050164794158491883109544872841814405594743843052052360908870105926016752465720810418545944650182890270829016006685827482132146022933933888357319677713744246269103190576068790306388666118681726974445572858511038116555632566456920662072264513299105199419854379380709268118169752540638818979840910264176000719039139358365347672656831961096642580257451496563494596881581610422181184256094577997879608201285182298464045814310011914492107989614582990277803040932505447049025371371537134189414389755119146783370803860643719198104415244842657733381603418023966882764505189516606344847031688529869859447255765029403139901845882554735304368031699314397016096454249626060139565390626020247829883716615083508818413113648288847960792237111625839460767862422375647457134097105871128977077413888180156783971304230382340205598282730275290191314772250533544809302074008892564337982970905955061324971088314164798307574973674405683637729885196948495898294200805920784988696345504220195928295879010811932648351660959208138140281761073336876515618308271459327571381457842181182335501826474927449315722233595802074790630013117299722109971908581229751944849860533707140972837119779033602026411489781642429115468499923938494605189726488190585326288265568751258937914606557391809710739561218680006855697878074458588618956530109532131008140503508623277326473880682673118698135041367193575047734412986627399083226884617668791092915266542532023566469794353546978295694510971014268197739330620768595042665873120612928003380967743023503687506556039100072051175517253452075705202094725177827104011934963442093491538844966607664736302288503964494895553558285498428141025077212565939657781509892699163807164903726039766434326998406473907826154936937870131525749287347782866725652771549282545124135625345142620918830552363657892747604255549151535432436990044418767053607340673937131308780048656607262837266620800057945258015147325518430339638900100447608916311464501276147446069758342030177113271146314904642896176040079738045453532974339842772075544146221816605559188973170320237125578489971504993919339443172521899820708577120836260252452297353902855172198603593318194550021996114390576088970755194738990516187001882272880712126628603060395352977703589992716968746561631608851363925834219608839758038377572443746305425007047574182473177251295640039304551813875578796918338296930093087472495064770448085944265049649765663578302545787232775858183994884956824822777955441476676390672808433582043018447097353630245049794789222497836335971220861577743322531805113053841245286363367344468235587828460810807450005911592888069595741342594577348966596245955164470548917530420074804428808640306618750203829303221961295113729889464155541679746440004587609993557640409367547365344060843370726118588116722587463879317100293764450723982239005578417978490843703565409549019460799862254838945417105491625570727421220916185748350683851081518654335581799149234915844458084033550893748167632031991038066088605906794297826054541889451485727313980659882051241812009815098223755377419738260431514482520714873733984449177476592185587978265639513344440255615659198915826742271412003685027827656073119721626211033384218570195648495314769437794281334040006772067531985152748006499608172906547232976738002017060818485216835623352016808401893266942034744143916753740811952578147751516826157052374927502254284719822407201674252193710675819690990094705875181196296872883023531819637596300764092082577341342431263945625049021130150497385466431631952355176678489208468761775161041174312092271697341436152361277840561153268022747440187834735522125100357869749459528131665095630426494731647075890275937660536427511060646428953331142188490558112163309737497153318622942092875240163739246537026847399390478899561144169481240386091461286066206796248911165449549464784037346819041289708606266195850606027884686440402361175572768498595510951458032248803513006673972040597957505748384519634819437663192169709990348901090453164177249613903821116168577966600975913947489327074241457476460749302056148966793236319173907163751004073040497807271745989599437257336495724724969572555465448444057377035548789944319645072575676379701110276514926981437419509189729311250210444887726627498205433571814188278527572602396686282888909670740062504782805409113394278522879314903260096655212616792140892637482043867499843721478645968135205631074383482354924481728436118058921376667435123544772599072098580049388446536735591959737202445215227289580617685944780096616234129565380444353019401466825164016559878319068836817181400376299616044330787231580333507518459513666359758885446714400720932988021135889256508322551595330970387096351447373458468043485431573813092014578918109183779370913135523949551152229102258135560506451928874946061586214923432695032039272652590536823444761608464784308719691949340640422413007052643274775001826433692184377664233669122600800151713927469651049773830299366853937543563252623207479610962770547573431532935030567362095037491596282945841018138569836128518083766551444901750703705505247851801349435401149901095262366948997256199144829151456686080363138242996869692704869721198173998982704776447105651662869274130781293741243494650050561523033093316155942720537920371756554884272304469189241672270763171881444916536925140830923229850703616513162049679812561640939162302056902660142891956357803778316727068723857060956820196467845546761602536746418137875578902479336913675436011015622653248022033323294323846609046643305518246743850134873024686915326966181731731800280693232719680348187144976710805210136991124403194701193775984945207240601857683731672006383545420044149698339786217043811478918028156689209193340327001203373115965513000091949981829654862003474131740859493691812668689614890368306338250070204894406200126125920018003012628586928928854749663568286273005445477869531606815658716997921749900931217365354045484230715573548146773479189697248017491373505990768032356838266218063051863601557652115731100944759121545076568146334935959649537789625894687466603378841490758268156974717341752541197692122936577633477241370083568683475692676718650203107192194913117266096968800630941968753883367793789011234076360323311747031284373505657739640544049472077450582963013387331824204557312158702527758555292153530665095799224976110458947075053089943369500137135676234934455117327871213415584121435483993726127004219253523001214571937824025891235778948352911827294180584327243348429147380314828900289761394374305931468715943166341031878522644502754356504409550239233956160609413933647305862650842354687669946666088461939470937454279993222085345365146257125391390554515219935641858636117074903924279802005299841569747343843559893801821613464906730253993662712260501049982284019357420350385896686482658478789792540632570148465899968464480466146089011461418617984253601870232832917295908730934337176819825325308787149629261764624383023152058501216516312330982920171549574084264896037660163700125108295015419530821125752777033636817395388518629941879645576833405708173343755675674813241004113140072745916990318756297426692112826338832701215170133196614905809434614055590612041825318940506421457529123877951376906415444383492218350253359275944217756234979200629026666525622783742844913405909856313724978195372400793840981005478994163208519871345131845221151433529599067073575971613785606403659668244616106946235787091489241532823505872106998144841621965409598569220086306550386658497606063241285400540739525893932569721617063034431772022353921185982217820060080488255010629994862262078894644323756329414557557308680716375277529173067381145043911222695244795534632022109412468923394564165885109844596876295388069309080482837285033265442749702910487586540301162202467997350013931315165158303649030186598656227365062031437070624931569340009123414487562713413549985327445695393850004993598121224108158869612913921702076648987462637349880411868593454266669450312995082242872139501312499977755768473641028905789102311449181370618505126475730811745508992070672670097900283819491476552652912427656369043975638600785111714509423171265789477808968203605075835464299219617165344170292414830482395607693130222439023896131456848868567697499575086400439890103429840967020396492020899770999500124483843173489794591991328464169542902402350483588971897975535277595858176216463246127267647912178417576206421824080571275847589047729494016473697595017909721921840766492199910620231218697069553651267803953334361643043105897643811176083924214565042139406879773414797155900189328332503959705215376898757747591262580500506137212282635701810640170913765215857583837409517185982695802342943184771058800454282153355778536426755853202596093044190531231364935602325937245324828166221732317862216545073348072067983848672818547578619474589715662256433277978896383630578474756935390930194669019234321046158579503922078159130624827775253951999558634569704601697718187981339894746925404713872856198681260854734881530979747296578387466735406923788865118232649535400595853289257685257051279175744771495452233669061695614856572066830415675485474133039415592361411852280322321094833740496534656133325968683080385955121098932346964502222561076022649531941206544893719116005916937661353590569030205295969214616026612877970200380741153168667344121440446502465969550828308204893647485273492224385236373167013659533918044592846092989695320171637464339546445281052604810520409235319581909744242853863091317789643854775580770437608688206818390546424240204936361186373105041154392087445182939308575904127132898903690842970837760915363672921640038350471878852889627113480817595878836174749408660967143851514627184552960300639717140841495189508412587175466673816679517479663988651268890475704195300004927640068758333457240561727143389939958255685568159292028305159552768856489127671795235097116419864778546453564615155110266490689440539428090273849375523150339667583896571946846759502698373382707916578604148333086323701058009175958527752908220071001096471609655327325550900574854432093103290890818434107201165066976905249841270536036717142890847346863560268784904631464069319827107204907339695082998045691382829182533042651090791372573268457752839009408059193352117832990790953152768165380864804621452501396887203607116336324561408607971266100089139617465576692528392326264148982033846619960339954216979644184019779100516391067178245530575953562715143367460234313677450112711475079757015524952262250654592684880128045196503476458397365002984038598642912988537480912259222613081690918503674013933887325658815757000111682116650669552578692099044954362763622883398397927187834336730598028683053925943318673251243641989739168177516781229679284674443388443174002486799343951252448057850529057060027589049909989648952426333880280912133968813661252417952673060122702120422992018843745578393011484520409148168972264283811711796200128152104553551965732419471216536444420151057869070026111316581470829197972162435440455917218493912594482266194250083099737054811797697367834138898969364125776731901112646873907786132426195336403291687740468073051039964936420184805789007827237045275222491714666613139479415639725275789052306001277232661770009281447874851315924481631466821012267139194732415631046788735833691985416583021998742643937011058534126998281368596808102121232964272344195620353357957923054562663958406510075648573982124703483267528560098203792553246279327672499727379038054567445710693076062375592845206749816781035976584819764676081245189558533617799596102697082048022625397220150328240959773839686233755411842271168177806637642388200990692656870726655555236031974326987243204041470821403358934761877759093098136025044002064518709158241549056426501385598311050196520653986342882056647848723872287141367326950349423402665239985960448255957770293448030765472578345001674966717271803921813135318532380114374870492470937055071526095977676176205004620278072519821263720161118523259589573378552186647018733172001293975010074655506830352490049732010626880045292730777882929783303454152766204373562442465103833393308438284873607874312418737441830655554168081079324014215708609819238582123462630808327549944715803480444860992736715484321747317625528412157707419598650192784273372139674904753996976759917047590842879140534049995883124888043505232209696960270750420823548186684422837941975965350509292344845925342195935678396939443926842386748115126139046487638936138959460949180699916155431464474912320364789863588777192359087609996442643342730593953476841497186390677104702735126016720310399028207314129724807472215539598897904257077645836392813389300538653534894932310672531322468905367671623393756754719216064031785542215669075874835782871010870789154415899784403976714063771848407218628717360689968878068072698245454727969134014709250509825010104304663622901923939806335156769029869540053000010933986464765280527957587366315667706165068886704328935825266780361378703416290370900080816856071000008712301373947538257340729942688903472314100682045663485907818744261371973011599762161322807846708710084249803787637670723670620804329583905311486442175873846163167965637678515270666200673922509616750374452955027285538935699986231355240414079091271726534213228380024050483471157351925603470766044426266433244417283846140237217418124710276936353202186537383059041492698775646329426796453613749626718363047295966832392640973879472030002001382957551508457493918942326954514648714737182060606729136272274475447313545905935014723221399334142490620276231092162551970587689555695093692298147258673675129400296036259599866404848135798995356881874708760163137525580068501607998504504118781096654183338632396694955522112321481843273404930157766026468742119289242228545356188736288231318947259955581285268205008604921748608653217782657616279143912939533177917782728762751666380262431295545169387236830990574144188943442542438898548974929389170299201576288204864208176961145256174600806021888295547358345489265910155447395060727965186115946118262981726802203574563948447320514051884946768572282761049184415163554592421548883665188242033749835226428081169407093609066018826560399023559562605490972489914948795362514650590100580534692137209590934159976865346350523344443058377268304084651895736837706006362723399293707286966621976963529703903210402887121177480502720139172969941662854566912959897380105046861385008973876138682622261463753800176430349025461146985640299021793759844676496989522556155341012391273268147171679963944809723240800054829266708191741301068602161221724661196953162491647464971431003835900568091130044495695820188521803896567689463703156307701510539759012092505439241988690936119118338491082903033797539238435962136276555741062340115146577647782782208804253845161421650817233304727561954462089546844459411437574594594960809920325371119449663813005913831080171729606242048129556758616653921325414456701678814723706073637292471024494356671250689340181418066585722177822501621945620353802535425121355306223565352156180363958859331867907810842272652498229954414526062490326868934885921543658555102672224646568722470053346650413551412372187012930496613853145057517072978695273702471493197940855834133830591841065745545874665602337209226300130648555422089699013416925953035257453949817437371579639026015651849753050094174924873900656143643350779841741973781934561512181707923645986876285693368546882554396566960710314994919946978033770589611451880010304604147363474193583686607037231370880198959588489011606353282484651187306352343483824939140159754902259216906795939136646995963159981045170541241778605401027778326027201117267228015847191034163349282164823555189371858920726691810130346800291960390287665898859269427987920906203404496148791895677881920989927208159529077721384556476570410765141588558879994974926977193059017558242855543441807504067803976386205943115675633824829107357842669460399080353251870033299441288334566139929764268477065803361280783456886613695392672157510417235301771743747764743382357296266987773488372580058479488443844787941805169158070187238591488489750919253649225406921195207109272691031688698538759443897025541054389635085239587451575407611045769320231221848539744455954084222292436548861855782006268143536217098955324295416722521424240092820889235725724258311888306149296433961157794744015005827551903848914268305272017189035227551547655643509939710939531761571521852252825239756521693888294043400859505304762364768729393373000902125106488656753329438799636565528041212612521947891424064255957364363171605542781888861885475124006975277330842055481884847182902698701425025639979968074097662711218977466158052355372636912321230412008254467203299161047456233182768933256299921144928685497330117819026780287922211015144083256772832472100011814900331380752515473693269063072959443994262110247234751314516383181403473034893543511694765026966271975971408107007103199226249782806320176868096300701238408169139560540952416298012324756479505896704852973814976683254367295091237773164629708662988699271435823761834609878268836517634820059681787952702682527839560002506680703824746765906257872264291766062763449603459823672546032960190076977634828156169979745205453831975383064888101746720979208100041212311707616093491365499949778192727058143292383479272526726698756091659264841468216591441620744410174911294603456304454070551833501808759624239677359477695974443780537421733710295915484845057722219249065789868963214329602184650932770782588128695242484690446640075118481779821752946948812427461866014375587924172373783434030097063793356475683797152989519447429053839799121612363600794621064092581182244484029110320331152915200534587072261270666738277554601573767095197943352920875366167340307939362990431694801967560716466020437009348356891991226868284572123081803778189365365924436042251898427842130863743974585708758729607199135161875091405685285970495142554309684296599096771575622782220267097568982051007874920285520535496897503004283022011582700775123041704802622308721196932942666877342392044189753711850618840163984502734928590058555214466042738382167313689479838392954482799217570613013439858305791580395563509553257281971849824285975310109734181446423439932247144296052366353095472511867832414576410337379590878693026382901036664433305418038107248552105764806263491577929607541327057356320006743014982763963912500028591631985840887546708975602709991909979512217111563220441823223205404709161777799168228168502994880734092247357590421704209376075070309898165932259715536417659796403533456522842685671479272212945722555952759163407070154548279687686364075468190656126111739714692975665671038693619516344516235189025428761233501665647510480876863277220485417409206137298307353556848891420597607563528324570339649159451982830893172777929511235240856218676878996760741272580615574444955829235876539108923417106017049753862780218536571861973401631712393380158858667769875968294269367551520418437536525188092669818500598264174833374256640531352781279284254453334063279421328650874967812168608502186335610194725055131178578829572316053035792044664678191434308866424724856212153037757736365770037083777686986185556498035246551994435567962336588779181343661429635758882142690287339303733266092800610615241452564656048946155396068432055791529337249772740705523606166840490314303386622913700548313042387606572092848950118587168078126560512926859028467308055605658132378777568920522108678847125542356396678469800039364159292309063157280621909009986436457930458756916576995754664492481922944089328249351395971522221302828293971793309902744743494014012813280884231028904233851286673522137961588154847923704264059223033372637083554020066662494913465364500238377684009473821797713083062171921242301184023875612732906148456317543966615374092882387354704194454576031235773644767935146946183322264032668447859008354290675334623509093550345101269194699376329286670519622814762291174397248489431148868599870227418171732377951298177427362932505553004227635323467229463746573409420630274218681091164890366572073353850658261325210396667257104228767244894016245855408113765857515542645413800484374069772995004080398675764920855115314077652560930205812840155006179399675728919163917580344888931148998317942562188980979947161374454682499617832392219692607335111622206228983996205507946264159582588915527760366732032053081936268905512825631793828783842695616274647190150470371342317525369755298176068120779544978990500523876070796284882064545658623557011311920558168645133666819061425966094319073800627221230581831742774170122628237933199995303832402842666033080141438881245191169594939223369225025260627840579066477911310780023793762327482229504865707832758236412020526300468972895651791021231594078736602228798860801648615316799307279322022885022781924381597744281733861160234012421564652378660889163516698344292997438204017366780475633984904350413023665863785610557220198401417266996630188052607255179584467695599683823480969918798904191484460573661643697062565688729891878991998677628286744728203114613356079448113511699535392061902803161594668643648786903472450709508894230637134569197277410421408893284671588187742455348728237811326336632290020981058889466199343083689041806489194082638809717430734226201852280885993471565561252190631169485294165792331596845392560317979990285522760631392400877360627824574096953726044235797935362537771334217393215608180471642253071547180005814770576261720240586745466234145923559000279951999659561305784649340340021431308506035579546604818943554438305517844164920193315064823053708723022909942382825573458483044599011578444266664616319105785085394455824624730993375340794581550912480204077123169238883673262894116195680224222356256428195560354546754930259558832326962882896764243201012254334147488034678714939426890646447994009901877524838573612414872831973342888739427985664347895146316634031696942543511310717212293200703079914527992026761983896631474017985070213448031260783026659602900899844631491408831991055323198082261481617247884683949576741185574238173356808920608686753192462722027166395340715089213368297352155169305827343624737375632995269952940812741932249556204163461790218918382157809731193814678674883200072065633583193197909021044374842883026662704534576507656256705805996769347262506888127697605685133002608451140610438178786098556387974830283183585333684365051191485726125363126104831828174391293428569660901274972137091659921084870669374095363628478627125200537219248621668981264924683580207959988948336348184570336807425437469140904521833326023768264893638416427101649739797414848488210607194042447139086733550055782140240739979883100390536257212722999654036243392593575091638089771025106945047456576331527515319841986847968583657614191981692968680609127551360329053854520707430863569773758188836357290393070303328992143029476230539551111718697067319840265676467621642768625935940585690561279564330699905322536460809761479904397332344366894496993779558934421393363128884356215405100627112593475508429560293106555990252829845614923724168608471495485863943923955408177703198470323744069073859616915399543639657490128859577743623603818519098459184250127743286117617169762038572938718967281547524360725462470465895863278808316887987227213221517141041599698694784058415772358566335017386637901167245394383928520259865282008027759568222435131161739780569130803571445847248952481020501658450297833878417145910097991148217404458992970050170460405992048648164987531960360872592394839632718791281871375232173400921127521191058555775854777899181361295825100771419937764476791572545229574600563745267037188585327429304613659177941104595917255271760345650789812003521127723972184624795583078147229109822285652062209951348036338106044145964848898813256278467386874745666798713833849139442137744579839523268413254897795474989427473221810815292145116995003955889410222012209901644175174847118906523094545996086260902829892540293748994304861297200842926718342922305078790223353656935717741397597958603902947305653477374864168164160391717522623079544331295366464231138050727461396795441845471787107343033634342399306059703872507783520809963729499179563196830503218150096338943914270190744929075853919911012553767757322831380669611744795769047468082505464171069358974083869758979357883129992423296902446131483952375742809116810728852495088554461786627370871697883616588180578882845430972146385059159093089309396327981195897026967555565453160649647799625521803530814809146440977632458727754522199313641438872315915744035167374215518332233521123047238701945227690609626397943481835645611975870219407637692655320664010207823326900772145232214736250006026629236767654561110801051454664643167340365495088840842962478472083809468029069916812325094798261844341603273787314615650581534245002712123312816852496447085518179005147831009418994886590278978802699100436249434619036622051246832302128233248520849232576072349680859406118660722236314476393574193637262194377808723001115384251368095588510257065877710537039420420972158207238789551080364168721073391183206860068122668319476352281161393607066944691446201980143323884993497857080337735764426779760164415301135959103842825333138935662218553211742594405041688728044036680425804367629382050401092798288216598404028476284812880349060413153524626807808535497616708883707496488132488423234319312659803179344305719847765508690279627148668983923797774172374253115012419374423593663281202538772844515675723412779285846861754462135184983377182704976341912907034301205773420171654107610136165271904869133421481942067473232221609939247858454455337203211431820782842742471784608587531216954182893287980012107132715192040617676724055110966518902392037035744638569874040392751881616112797806381084834092514717290642185225634744493468740236068705944832314224931318603589023813130413178876754111765920353892519741920062288868547809199960723494739138147538527748168181859178834737951898996181812301945648189247840263630390051471154806592293754274104604966048145828184267138547631116609141354818908365605387837179678229792263292539826899310715757117714446752880153231058463122054659762793018738599067742954869938055116342385357658660905505421711985816028161343658208406693258277830507216702221435705477970821011752773063256987344846185401903231411637972518952949751409865274643116912812717494852638761768193000455011020793383379490580058738317806773997440926255324872439618233368236832082955145585476891244972507053243750630334617456579010295143125898242258039415069925362554465858859758623824919883386431189293368109815657224740736269665155736677112916307100322232228342840231506715970530078527969122523466080772522490424807882263456552377555158910508334510655169591353206270081114143773162692898370278363198048416184440478280200375240861494754376551760842409914014320102342233798901479935800482516910222192983386417036878827166620847561578451496160964744279030926575264392548577271670397741853769086281047800191093689087072687495291846698521378508014899402796893155268250506681906444070991060356322730555697549088697038679857260017513272381678228003103865861733989470907226637865278911374506950444025463200583892419314518358525741118196929969731371934178137137338650216732051157282348350576807472561698052603004568790031027249110864244125385262635055955904777612207541123550640365908730321114405136147148097229031382130125118791183647427110423885460762775726768499191761507422043010478848568221874149857557564347099188241368648326029730062447821538574575290667848124976421172434554590511070905544174736047524274741319463878835981761173850796967254978590081039188346880097242541337877219464954972377668589175502144018109045080530873230954060216787494599023951818701772145533326973590149079838999099206656580474356941236152121789525084089094379281605693912299822465082914797159504319344574300103028832397512341331891778973813504432596925093129016040234587064713186778427683507362593897578068438039431032193681569016247892125825156132972073413024893655086492266822711823801864223058547457817775829523676933879254579995611434072364096564942470339244255796081364613492726367532716645649809768884234140860483719763590745843075551210114926810369728390350307088530574900121045075626970355947258640527164466182723561486779344479980610365123990341722607990787268094541782378318434027082180146033495013861410256075962433826285181719669207550097207314472846676607414461753156321244295581265995132709320666290904683947207124856736417995882047848948887892337695773258386458289602952264354005397119931769449728310880246590908189580667232117292716129336692453987426254407621537093625039082651504107532686763236409585450460032163877698294074850242919119418083633792025168801253282459788521355309446443035760562893049724673008501020849802701702991067879082740874399312504953753783514130231840850639661879073251452921872400066095952706275189662838056183446893773441635550819216647655351344054447352785119012255474803464342135997164419830823275653656372316873729444637243642624013372846375725912005032977547163798836566159564352619555556675875038627087526644168590520276586792160306227441394299013270547266041496905862904623895474933008647027031640964655072379882181245508977714190064345108453716646325400362627425714665549011974507080449139787242469966705866608842820308360512460811853789173455992402814050650656919757363268977044543219049224116297689751952541711090941918096288375411630840480382126077244065323681378731741195007292379745667451279772127651828764766195887728967577020283269777226261462943683821216014070028235273423895015963379350134742711665975727795090271867139944614140900367782420971362488248462565801883519577591673247340275910630846509396109548563495681441827016371720873319175023142465149726493198122526839314564793709707255753261361256996397284432277261160546930169359989941934389211856335605657021743579403530849056733022506634773386134226002524065437206632626781621941322752335660886141079422374712858501887797391053295241892917309660921971608993577146166508046695394141614233948025941983642735612362557161605828186032290767267939753640167828820266179786792089987880582154128669102342478812135162168291090589933883614251749875739281869466571619530836108654883717626808090995698275205561482639076209700810196387636035222987954525111248678509530911873567176465953192586297615818823448895904415930246702030131731796344413476437617817263165099878946602678963144815207639277558661601643725489884153924870265403776259059083836606181460964137131128497759186353788228263706676278443623345487971696917937974501911235421124783917671379376801156692365066591237414819008843245370274827101227498411985885649093423268396933641420058880945036505676374887075405995418889084304051601236157238982540953555515873314556215094413677049739269377028547915719870676413324332154897931622588903708914434122936983496485901393444490980597014645413739222383533993046311443456573882232683834630677049082056029336544763622090430865905346873571006896592389673244471207208762114143908027702395326326480228566060201367225485069563739210993903876447498078786980037619038205351884110840281858105436351986797518176875054563705147348728281345658948795144918513840058374326031334450786498654866211174643585005899610777072596137568960089816836956901381099444866243081266033717886498753713751896665987537983653510720078117868189714190005204768130523964676598402333146881265927023286891342543896254037384849626507604577553850015622199923024580767968353063303650258401798006282746788575913714251720005597271055026126033532549484597036863456191524959530239004307032598452617210673261450850674294572900714631753743181209132278181778680347730997941253051916545792974599387657468262861291613735857593615912011468776150109719401410978306420817715869702549961280912250029697252513645919895222537794717286106437897072521262140716850612724403486504005313239679942989601100092979369579324560394501064731580295474156827225307168239213626074214496062708543212951893049279110466469599963412594130237978845843170403333286080344368619619083937141214923098859333476718542422006072093992045783614234544016042069548315382653677905985660250727234899062653653899261929503997961022267947751541592254142842700488503958682730063459068824406350299524723783652102225874354373123365660662776550410148354112844103349046482226932234105353556120871014639800665590950883183491160222813742468990625063598906582604664110873091059994818189401518386991644642978565083893606008130941681488069539995749897199796376049150043694205280142595317443915398956502675998027367704223410547632092339985302224909401059812731162426285720689562843123904800004536452779100199377260637798101468467142902956772468610345927805259508986944817428559119050806849842981554785470952996113060818235571460453909281199608118935264255328997070051832084671983235512817420554771474380729553905349600032135903552070725682162810078043676154679346047152358680080789415498521773285090935439062174236312459925403096205042749923131081429146599796433443770441156249766376539934293025319784997093398246509784209230616766099729023183205653151671680445058474892266025517351080262719630436258313903115631963641893211656877417505936509922502779519608277993699083549130339895987535613698417570109812083834593951012438341666135160359675228503627700126292307802354831666255872628296239054735081187566322432680285731758659637199877061892594347609484989110924000242682267564470985828616272100719172405744744204759578804656724460866649238149452161495050065691382330604592997346608378319001467828031806652815192818860461051475339791981251742948313923097520667501448905557529529030644477156771262463645756795488578683614794484024625207280573000923778799962146059231731499850101332403466693825865762825920095456204699019003972382356306703744449028960528968726581162477349590785468006205689161420307062323097402669203491191758333369365586104328475308130336481126597594891599853373093776489865184339297645869629062385638381913068951262289606379371510937551997345607269403857247070924183334202291053345581925838947603581902800208638380231205955208567098172346229102990382246127313344073535185959894835842358839547840519348270101372475272845603632994875455337462349426360484117513584685354618934365286250697315141606989436536250834807085014753783845223710793273536835391327594287912977000549429782245067512191051018147183917882043807942303332856529884216718556481809946901371251137004641501096110601646795557215247628606358876408301598641264622154847528644527314483464237108068324743367032947393780302019356216342320986151029235978838243817443930309016063073381553359162625381809457114239734438411846012350807026615599176883621984757606851110080068380575169560092395474021957306520474755431462598539720157057293562154158829243366114821145096894702373518339666663552726637977141262728342418922171896673196297785233257431445531355337553692773634705893607012588072637042116521672416117291013838806009431664230114865325946877167041936619411519585054513736786375297964803081591522571183381857020336061638702401513264298979373609500059986006257704059451816920133318407310172804131858133159572768366198194831120950656171410847870261256814173864145754671742036226832537416281513927198272950785518153063880556947725571599659373351697649413048318577479889128859604996634735643681309073170436310558094518543425231562549039546477546505404387036258420309115211219509079770249391263225713876355310749391369541057010521679150945724916016839349677646509175940338165917097026746819584789573857722313526621942880684159685157419677536779104029898735193227130125693324358970327280722107494693647715700601728103825780840974925108826037402397325429893238300443519978737364913889195810893455062590070500556419443236407792578388250846410092686152932816031022971537201225713241834913443881753652287557625666657558042243595036151011263801989067362195034936382265600143454018882707884590794530426151603839840062372618692684360080170590745809572339161577535226695182820903670304879401297591741806315445023406336176628448028901565419953686120078168284490877414799854726967159039959345826307873107741750878023894167190019739917735713141142961729836035641267049446948906880609095489703860976477579317094813027481637684251998470029685286948879674974102339961596821425277807453490552119748597666549338676140184204487030986034443328466001885861758221809873175215385750267932086956007100572133302313547846733572352416187071045069556663489417096305254441330870389773982228720415305260675637575495375035619639770902373668029615357808451538314148423878322510693114612502227810226098206116546205317927076270510114248420065194681743632553518351870592236683663894685511633814757150017671640338191424200762845211339309445003596235678638576146714801710640451143301119819072711330770624482580327864892285131077213065976096212383835923134677556778581329043500920923272145576634338494687681939235252903283548044647485649839497017112876538607351801277216092163031738109260541747796120721976569242284489466140005503229525520073237735423082718857489644941436232023971637571641097318344735356382204593282598709312787965727403824676144964555159269632271239103084751486345661103201654516848539281385680672944083922238061494527355800788840621241693549416024474548228681408884849804973347434709159079249407157533817033126807123680916843985212227685883094354711448830696889295665970333482636563049741488888300352923487263955695483042923172035043320532705854966342794854355219385201052627849462170635193222236992133478408283487972008085740696644863874998979861070190811608586394596551585616729248548706489335611879086684200483131453397060715734529004583585919128947539874906979082800604267194905596792110894654424658917630618299464678782751863512204563720018944092417317272458839579772101065801247171941596133833319819774453285221289755053161171800326525168960121970901417300037990539730614584857363114288731510203238281590836287354459764093315460302066330804678197682799967210228124886331773079873714001792391381949604764141775931784431190108202254236461820491829029175827581067796281433595501856370761824450739572785163185441705422351117086495795305983610027276298911362238495509107108311126509906137976547649685547232670044405113279218722581649875462253583162801285120825075583903553492975601594015753550908512309633092504442704693256392457139342625638257983586213590956437084274888912166034009354106019981509306556794832925617982263207772441732351972803141692105832848846704520407761271555817853906491686634316622957329020729281495861124507942537062777299013165954349376252989606801965266662714771206924069177724072574386587779210535367350579389458204769898737953123664065038463344907512143434219172197739776523940641747780246825930835669926898580811266246978987328332022148300381480114511492522287725687196489530175519490160878880160804160544441204962900529316495386030256318793059815717699041766098279319154682684877738787824738820121842387647581814223806996216794327357616480417206335878842976721797217615416907877853400833662854001513200574707194049707928459637662270990701521691790270883069086070569306644945863294289240602304444650676447635539777710233319063569843379966915358547590727160708528144002925100272661425575488929705571395130691718856854688592822294457511224702791713914211261465013816620010643244014149002394561572134311584975979762774483985879272950957379132769707544812702113521414502400014663714288142702218711515609561386945897987866565886914918847067454255873340601552602610848103512185678512989143844409717037130823301302206395258469488451615016122794089980622060746204327179183382994118229479587052171232649456993001273081369531813224248624721081032384823026210607041854889615137140505976791035999879933004921646392586416915543047854496488868082334934784575635157085493718960935672620138112026437376222414963195271605534836464437206148105537391191620300493202007726394709525167246780191661740745420953761370238800534369350166459367296376573458257947892758008739264961365449370561655430373591180227990476521328544938589647149677699055418858968681638692573803532703374387248963749096439915187700576189328587390369347717911547460718691212934879490387242131166800180737838246800821068884844905255603990878708949516885185008442884786864343539107385730227008659959778478007873261359529933123020995749717937909345648202251962358939303157627634019199334947441963803994025931483546898155545852627931482074973900101022632440776130571824951521209988264681827160625849298548871096604418908672231702009056648652972618023739141711980615883687832316740139551768586581137664122157124798788335156467515838343661947663850534704293096923124790285288842699157969609543164921944359335463900318798102880256764600909543128722292148998562114768639541375151814982898603393610148005345683900533720022277699457989923643057312114991541140896018523984627375251330645879118127274787992896505983179005645934531811673547089994222480114056203312308295856668315457230105981234653837279953726170094899581328354860296506941239335325253858045242248971102481236610169017044813842483134657552937665603481579068550510775952241633829712222829644586584812182883807753731002721654590319871492402393401872354965065040468691821485053387773931851679765478236277194972091666933622827605034932658604902866869410297542874491920517542385785623043882665155409274758200820577523611567110121262338843864324557842659351115337567122514265531702772494941613795898447910453612682957054288299590900120153140229976268798395237658841730839419903632421707777005607109784577787463193058684744014421653150885730947445309219664053981233462294860752729078874832563681354480564164786643318170196729215779208945813551485512637289920631013223822428064136483952036163919992293300702811856075153458292316070068880530457679018854847125973456941474971162181188659928719423759147983439306493612200217525992485004425363166010151432369298351876179640051657757894547669145693506045340382219654849467718389775982333696984849810982157429913589816564879492693120972309052120866697695513352040112350852188574936554126524128085855871732703477453442119703781641599269757493604767761441299363334732866431618579058979540594037325202311685038697768458103104605250397785068214384618543509860215419894991902263674163669480777369546199688190013426661594121894487398536232426647531373795190847280606746145742978495561031179253471640426066379485544765829012472923711195504755263272092808229029658434462611007678905861550638765190293291237646114812701898257193801393165910485433013301917899573249192837254581966143475713251188711040709687915105275369187834170965439299446650020203745596787247895240339654303750301370538330208746597483979047255526682332904593320638465892574109885724132458476348891943668610308774712376276393581323192677095598053107628165151874025633131519155040578526721087253983690858661945700836670486016875700737523840960430361222565621638720041075660763239440114351336807350835845399476053740625407445602798255981136154745678459463379068685613837643768966482329006653328251723286014169277449829220229017148498909245308720837331205331592734268152387281794458103532544043729089184791937930255988652333150801803118479194117417121340433958142694579807351250414986523008640372828526101941574790353706402028589879518503533751362521547136615224747174341513156256032920914836028686711329258599263917386026793126762105363192168565464222699154706949481670064236130981334186258064932551144368157689338430685201025231766690228678739843187074950692768578617407358179584354310571843504047925482915329510828709362725702910170955417454064981630779910968944482422129021540894180674982175583856280575965472097824940144681810279978298361832364496464918849156514830626473596369220189517647489321657441038229482132398696066550526586259745035716945232678076407927346177466780561983819714696503560181093527715976760546660800026245343650364651766152397317050552495068844331035721013121998671010234890246562149497896856420322271469587310553733343272106673293237473504329631156082256558025875631247755205729947638915743564276259692335790304513305386417792386604624333405455874764176694363283971560398862465235516241635587852385534196714275101270092762402817985167331324620528555197442290949278067321836614356304438255972058969457632676180896946542632008332731789432734473603918445786736914680283759053476525233624244931289352476070028016717953147071205387514928999981076449809814009419136799262251916814032115906002080790977922419882092207075963598113880695423735233374097723721048252615601068277386525813607149482111618163331192056942266278407479797219506876784186209926965595528996706708049274082053460559157040662100633413349101304128406857447587142145653057384732828148986639539504173564614633136040866700919611161362964342769584556314922076589407852208762045484933808522122659046912660837909674211374309650033518617819251888327447005569339029461543120280467561592903827888188750132912669964012552643041887183824093070871041635279466732514312535124924270305680937415694918213913816283627316960780100482833459598503913567797305657139603869743893367275345377791978540399671484736263463406846256808336393596165179562730539378192099953859516391827500330540626845270175128786342518306818963256413634112862522565477519986745654912119562655292824478799200519696307974628401947737972114265605931191865482078604866858068910378046386181432581105104561065696818860221520792400452373945294144570746433679638607280251155594096317663953401769221908260226734211594159522731990378319282300338051961832121018697293100128010960353115249299410742217963566429028586579368532104479073015649549546857421540194207851453570549129670025260218623305357523537415793997073961063087879836960956587777661310374392880927831815155550353396497517097787822133173473964974238717791537775126549362161694446567477758575724593158077722896694609771882991593400991418206460332042260062292764106342989756024006183845547316399951096743008718120330708706149982112119630117021285736500867102063433369627783589973570768083208311002963849498927441004049008083808220466286693135143463299469304009929375486822620073823134621726484540624226368950795482611444753846760350162857165883606122441651421912238905011100339805887813552939957043619105380797235088364973586628909005435356272933879876830574697601291838332787970594390038211533354176566223615184611670419974461789135243123524320576570014547338243210199360494697215119652278502823344118183571388639557411993872406649457497007841783172455178803370968243033297492038303991231904170087799469297343042398773077695236270334474736393233193342434097265413790865806906566695014451643298180115636557669343403541640860970044670543050077506266151289639111331432749804027301719933596090452830097139527872451925468886238434799915969034632482153638748775300625704857765243305695073566690124065063851019763126507696760637558850089138199507449412041469274756384182975877738414312135337113536822943705612408888761587258365124667847141637966179455230494288385349259918670173908054721416043493629044947028659056215414023268296029403211376822676035560001806985925602600322616593780423100837850652862350258637531799019942157165351281214007197661745437550944378463501796161049394607643686248056841657646734921027044845077889351254625596672624928291237935245833142713452211982948260163805893591368699554570449935542632429919920744257675040752426115491662893501863194622466738690596055596863153796096292509634545244673349563375201708626209075057479594597211902105184009201874589352999895759385638611934168549734637592033127398846508983393766263509166881482095646365200420148529380928791880016217052613208698341020317699216394536740956986217465108626452979558094476586142049110797849468778440937120415879344928322507640139656110249967511758442114275141265000145212750794109089412550824392038137507645935046318829913188080296902303533992646671497086463269731785184394348515138490407883904419654005877485493542192145722947869935449557935099183956242054213465520142186715708464481583351508863812405320954832363475653357794043113619826869682636371395189962743379859499183537804571456405717554743308746630678898481114003334148518587531216292439448374911306285999862147052295199208808410274630982204626478094959418290929730424086106463610357327617618431904034755989169147504760341160826059428950846047583329334041796566144412260056482792986228495150642404608141615873880913787848660563596882955509837484633443103865433562486646852101940667361222945826483485368889161223064474123564814653565463870411674493063701558974497111862570396601737783364607094596789346237964893990534051174229567354222305039341361865491715023739174589861894432606911032113480217818266757257833011298638263034283436001873518376659447888705624917085493790428806809794390458182946850369621739202406191110539890634148860219739323432514615244741704606300792355070686911719517801859995435076867132842533877265755467358179897744352803211031110604892308206894247223425028428600837440268857758249017497732961112557964627851046576269121593145552207893338697128360351813199638304564347865681829902416925433550216524593499734423318889379184778644876195149126532741878128410701155513762137182679163204164632678605529272545511152980809200434123414692252249955712400873789557135937355481426260602324418015019986345926181444279110533631962190215428628763815913950636772147639530776772597345150458894727054497791348383225428152923540072072045131392487551104368352954436533500142191529426917871756563809983452634136336739994461592487560410272575763825384310228058548419211077180663910357832042619824477250759590104103874380240209251730188942767146256948767187369432562858579831170267029102506376965717582033557831377898330248653776406010916952139544862504690513491528666042573506794993610443562779162375526468248802602072423440436801027980579745686924564509091453225776690224341844972935607298154215908031781012378018695546406388362620626400232882757729799849638841448741278910211574087264816081443296089599045366037788192422477057874315790581090241113528298488794106709108816517849798118255488597058316469350939378119199961665745790222301735408201461172896677796907565642098021633366129161969601546280463310220857712876372548317282604949455737904924590697977990706195889677270172956933064881257522087318575517025322106520583758921377343436273949513309506152544105352433310505448525436958178894614376987001967418236720539145446676860218228733058318789068088575930808851072203082490997273690115137521334221223204210297103576632041040479413208638886565336734321107123804125933336365797321874575748642925287896896843828662330963282701623787377597763744542015405655236229129995026602969761505420900212737808493182953729182531389572366566318458943990454420681392076146743345114764040798615766371478693240130740765942603550363571582782056914741570075372013487112762204432136059580888396909711294119359979828729663702640218635797349307719833071935727277648436810459396546621707568960116877262875727815476239497143129262240744787187949906677039418648038654919081560744944190369244389972936922937833159105856462496768087699445899824251848891398603839489616581561850766817630775619031648696468909724763701882327222466980530654619385622525965580533321752070875503135021530181354100271713429522830235220002960462865258932249707877813350739045753227151029775971620169261563343072723891665540919361554089477169493878517067526032801098501883412578985883685682051623413453404477732567650139140698688032404780872779325197050333398580021365212400531075405009937808118120171967841492029600494997133063710338628995934369616111320864632943590457240123625665733219425534655873377356461903604360933829234457123615176054305096512608271620028862558369623080670945393009731604221206454854126852887078537742493529698287804649938211078161521292134055666127457540143544107926341667339483661274825790499225152623181472600297606009299790030719593887605702573297141092456064130648605130998689849755105607998077742873032174621703030236397368838651406964527516986804135075418505276535650791957530593750509675360102206119159663050803953426210568827587174807703024234980075874250725516198390320877607086636243947567457932859954757941776773293906575318974853929851106329684700523315645083786885003572693552613931177720991185125942967016781649497613057247647928769989213876444966858464644530082995065805862707887014980889174044741693687441174469287782937722799685784782925682907971172054406650028866918538546167445406421398902041979590501961025918242062195937969502429862433720878139675275391256099595579364986556015097777888371650598940681361887705324705767318713143694858602826051635981292018324084768641747756430521204309496413040339712580173444677996199987497502657095054997336300801862614581302111050039112843936241826619406127306269353687685364367063931858728929144177505012767808080593908038075356203984355704775156717948274693837852367940096147320427978925616250819332109375946367503732654474644541824142732226369667151256991823904325316696378852859552359591837638157568438813796209319752784843484468800017927824205889572622409473873819424257577497742686864753532798004050303895414924672431588655354726819707411224320407027770342491291104937243366159468551112317616099408136275052077876000412797378359688273395470867343014896810525244656118579071344716773159304979808535673586905252039043515881460856200875520039762962007375026453004614540638079503474182091370680177172592587977388654722051155549638060783197222121222905703471838777614098987204573606456597871325191835702078654660416843600552658833072027392566454485835912438994989052850831550309557434478451617247486929926931863908541186933559602511733931748311442748988760191260837853784365863881305442792333715470632990824336886256974389086516302842746669054861746651366561421375564832003172245702380984692347007857735873380082002516450284530979430219016475369962929555782874744291754321772444817654645790365940343326309767086284809716235657901025178898012531586710668732421794623202823353025933590666006683850671346805575356313459545949067043378193773986522505032723842080379875419661456561180637158881501738431668663132911415678131252143835870506574237230909796387508476246949954825934641230389988876760320325272648353252021565444930344152520008890121237104111544887233237446290457192583437957453760984192474310488408669113807239562069786585744091452112671264802223752078776809283025361723861827298772359384149133095923657274769163891885084410643609842233235730809496680407424322458842313102723150313951413233645739473993780161328084978778051229100524192035375934199649684637302840058086170736975729943797644772197943434949070692229084669874990770876421375512346414047014745905210531722715210834697771640301477207803572340026756892773846011307224714574052265324702613416385030881590655440304499340799505759891524895474362389322733705365433722163252265966109255297773478458791815996206953683381526669517285162910404929715511075904766204583922378832232650526616593991827402071687955412282629794564142908554724882997683627834582445832968656848123224200840729112631423982906049685510356447377372783703916335598210866912630419973274114584935527475337741802558383186689543554273206372241325642381176984202148620411859118756387050753432882117495615706420704604506433483677757977134817068418065381987358878293505028218312061706481481068964835020676779229665671031552369113747608003527682833500017567028467890832779194095453384199106183384257607239005620468236022886745257382131943012691897133311935805580727036563562229361709478456148306543251681951762069511382591246467013973520417795720470992088723177410173309221027518703032071728476319861757011548687523486835066546931738698972960701460227638676597464939847026028649578378338938351014875669823491192990649680579298553861685869175489303134985885045690387148679740225569661564710486860863359140719341470231556671246242719011424726149521819548896507235495798931318529012139028057796916073492513370459928267098759358279361018643524345909298941399790205154433550722237637184763169026169202254768619048797396753711299174372652576954870058759579154985330590677286958776686614967070767026068237098460593217703001941214659064100461427979094053658094720606296690907834279234007532668174832400537234177883763943978620030603412020368129018598913823312873358544506219468134104717281973610303443700336138873751915911497635907409508103676134744831887107198268692437735081151023298781182100265230252752289498746367194926206368471068829316423204900922073441366314523373031242680927898333558046213468466771053851541174880809197046239555074130553632536441050545949929495263869125468821461978456840259605806168520432420527568424237393592920856286804978221116212193753769761382261930252905246297477170897161960662584661403220094156445054128612203936900404385539945544719002942177709066471934667799958010410409878619303320729058905472671182585233046175415456788577781352802136394724280599684099904654899900267621905554461325614520633642384851138773999808163462939248310071738951041178679607785833325234269071445779091720433111815485705498213563508058229289946401719015759710713137299724514852309469211363886160609854297212273563163341693097234444762627916275157765630794760742594012663739923778420608970903481076690883621102705386478610003749670845164930503546628281012726779550043585786586894940047777510307355835309842958986714535557678104990791155234901886124582290840868642243894656645214444806846537021211515944555253143409870693929488319836751997077891270509352839567669129983210940161645007653911231098996193036837717233965493899725461848187324152028749402826748877396373455830130720322904200778744895988954230830305250047405271142673934165568923489128141632681750827147406438145322295507805679429673826554584803200386728921433831225225328099824762364818507350883781276139775325551740574877343907869390683306022642009255959937118476592410270180464377887900179555131426089185700923589924778460599007603765032666178993403061481583186464940330232883481390822090167994197043684779707372835766816320740019316922972910598952531022232362626932636973055406777558895956398280929080795492005904938735809692497684530650237457804975967529790049694858595938322512078175440050744474564230160207522311744615086162619450661766886270765800653117688196572252251182084264725623590382563943403246351285384483770847963953751398847805051517676159022287178529406884400118175027258147093070369104311103565750115858498511672068614668098971433706216395022312084912906007693408157393211192846102605572524881173443116269521575775571493813467621756127087939982033912310747576762500578924140621938354470358183138990445943682998692021453247608257937537444145184268487172773125516313463472229872639710307665852459382881768050596666957693871388007064023649719396229106086989603598662008807088673595460426258703914321812983606428226288241731977162144248390363626408506037020058329520347571701240115057216611749852982117954760345862062406477249944954313151889514978164955320749540593751283319333663642995300495813395174403018896961141091637412875838521381345013169988604943372124792902519656433917169395206973011262364845246899483664358722054562014650439683219666758731170600915588155381223571098141595218944893883541975594621985928438453848591452878362918684502803602563541909016110098335603788807915629442961744635130615131682497703526723788561788124517317305965997678457751409255943284576766805704439549953103576786933443734278075424329978828115000273120396261755378463112886532744110551678903450192555998939877059582948518810906087047604772818324012480394969266784171116667430302303141645238427890124445864243742963715817689385071341991964100586680202656661381732989846265452200735232166598033262278873868788093655320705039667559525363097747255701013451154363696743401335710517137562259466060585424119741298757331684612734392629721621286978307589300424299835736005038061599056223729730509477568052888061025660743229316118753120526628994568860824570921499994843509848738754936330254030099619344718968373464682367735508644931397433721583684765220292551465970764569226345709910229246408478541884271244938836685620294612027303884286418486311349328986607803415164635289353056518208508651484187290065170499065494685992804315813022111441901106042218791089288622766412130642132848298496660207243114762769648852191650901871597827031249300238625354077856216075241658932435080099461319312272419364339647775161359238919887671607645817992905356759593110207703379105596618441360107000713316226600552908938299762226419065500910109843370920091000602500156277987741874036557158758677706973475831918230959376815680114644402637793438397144373407880081442506595423152845432675575318280206501506955945448715787219640514872406090426493920289971128031551900050589371247952474553675308727092684204835005439983489238242002137362482103714286379645351438979676799668101854445820136842992736456894803191933285806226746817428547406404686373598558313010673027112021970072150491010515131549155186200746467912576586010008330049246101738945578958361380816054008675334413984571728590144712513313414804538688591880357305217000858138378662550964537934841294358111943850897168156806724810798931936727926931383222687592629098738037332785365036585677505032673788739815557583719737801502773411751907413089203518647412019148065636032361059991906491257694145810549515535403150184491813943335004593641282307323118436881687028725531599196014262487604717164180742666723684904281381010472687490278718335218872323047663529457126467510289836760173034579458659094525509906057538286367980150067874456775339175439132747935818505839780180847240885949565974310315369198021442030103997484576531573702814811475541261831697529272179937970422616371013836758439226398360406995622922853268256958050955894035493565135625776450977246194811831302403929374648813827889532035728984957630884135953099205695037956950733643999028350198983329653847851438465037137987385425303473052019059126443670554888575862492762719140488034779520710803358988478930658286014282241959146989023366709598158514537976003717763847365675183573781213597282242410611127148229599625815004462279380165958939397545214137663916503562925025508402187306861646080388148920261881177994846468043357685713156141183481446714685100363542465638278672148338206609309331671970645981527246481978531043428757993532246481542444489167191103001825533841466877974423095120947929147752220171191075040067926296141587309316204638660766751180521031037642199072039939477586512167161598168733324037433246568757763302615032955755033408281675966526417284537075256669342916941162486531879100467021867529903304566729313798895843283643079532496024754641750794601289226995973479660593743982843334472918486896336720052084744813907240204357204596972565927520739197762899212467779446546066997423225680665917086124460478586882323739808254455243504142718083396006554815133169114555155052132981686516419334551226000778819215588052073038193699092151771519836846305313259324680568649886342505673037215807414503439955236491747473475183583126836998465613168217636610737586627183472628653527539199695246315176141103451893195878959444447650401088864261520494444452645474348392731076170268275033692258788906154587640945458615041515071234752107939577029354913583895272784704569721399634047661026719914327394412423710157442615128335329664286894095617952669473656116116785246626301683473046705700352661883299668064719658948392974280528394813461822363495768382473136013724281567634489499288590555514374943394217337747424333992545481002198516579718754859974318914886836631744514457384138741986855856029600704722047562915350887530686811431656041556300021426416324038760457775200833914165744007622073555761850817283343937428715043462140122921352895971841277337987913194683536067766453884756605163851261955769481915337702527298918028826514029426969263193374033835860271854766845859923926560641041565813357343524172361835188140703412842905060381400146134987852071752671203312199968312622508320333639561047148866716825928626713020259842239397221096675144190881919180842465839697111945781634213758217209590480409217288163791500271753797810066550137857103110724410244685060924434707085440417555613254927455784581625094762655746720427655108100325629229195268655953617482773178696174141691891527286281833410329958873575757417820045648932947723498445818298733499763598074570565129436951584758434501704134847666955988595937547705096437076652248583324222169074179339911235071076001369667186914651177523696774887236300140542095381973165083729972717924588472051977367013292498751305819416595406301974240349829374628475060227648575692241791164456621957047338049731089539186899562651490556451166539267520505948491487895902778549999227144751464205163168769591595743206756635071897746788018376337286666920608063567904727889568824762770433708664926419267252383144021249103422567359414043755489902736710470425657211468282531013953192207568769146922942258698052249587581906392988721396689686823759667844255000002195181343968965854104344393537557603860195837623635288238822685736705763894997574262659479828312084341392906244538926448107053644907479359876662619365810959607748930017894442550887970066032118507536829130578473343317709645141195240741759298619236201119691571793925079461066251016873644408132090783822566604506841237448121197926275987140544006573561402413108064784355610274603690360140770602312656758371691708866199357471600860359939114689406635711699974630538983983708765748652133431965401225885411675839465587068347447449810052321987246910110665375977297086875852535680592970172060621883886986182931340719124098793569905487244093623884687584145417721320878745057181847013805081877071492379629148726524698191806973596594213916022285549700846302550693307314751771516119619117427926591668073880357930303685540059701576347071568747154403454114598606245809022845740961689756787326408375671213637253527029391741844346197676657665746017685783884821662685609037003969904471054358429192665238706854531121866561343734542931786193607490377314200826844981467641909167024303120789605397779164114614213024531313434072793818317453305667147142975584510758909842238856990346108203286635047639318568942601875239017806517227367596886025860156149110848617343415180125593961581443703161714711723969332914984881836755646968692302037903420627689572548526150779029995332626043392020711853709241815174234199719628312150017862885400692768148371195957777574243155573228240787487979369046888927422270799057508583833727188638060052224223252693967400219416976137505852354009241566157326503482580451237463353384093718235828664622299146810050921162831839249693114583333901315860302629889556238690530922742253818414505503895509521657183022737204628997484892364633356685192898199065480443214119472835168651967062219026303980537250485350008932930076936091437708250683088266562229315826704856148402325301573418114672828760317817764539905502475899567972655903503387728319195214134269380936144076876579869893940441411170795247509691006995219464826779424367669589036101987762485613928593744527934689773189921604799410768433486365264409664826909097051031040134579941998784954494898989532840382271713542465275097554600540463612972414280724372504816376533960502644404778034029375085361117499364639428367093059869794451678992798859482855970299808809562820901131629378532001817192121545889494303814071604641705038812438257709957276607561087890558604183700829452848963552249320184242260368785100898880659965420000059538153532725017039820147868053550976125675910809369023505347470756020716968709715203220452083481670574926607604669420910284673388909941662491699286905046761048833979125478071818033091411503948457312603046792810038561898649347980968765331207723456203085057935661109899173394451904893061980066746613238125734894245257181527893883244859935386457768798493698586982648654919373909334060641204242194925010658992911431076672801715464660915289702804919855512552865569805772827984385710291398692442375696479794599646750596972169784954102244371205613403084568888125273956099170679818847241451386144791419553231735335879965631886467225399749656882674293300907511747578642851664422775748506825993545115354202508982616124093103046323092275261566548053840754155099663231308700629503039070150655446817261539844877713019048554251199831778241320346570814146355973355429513110874979098549717231068157586245694401713478666975798628103824756799427736694083439909857072094771130822608823795732751858882600443138807976237101894626317352509554815936397198525543353265955539042978317218877760524781462449075075294636419079589701827356181852965328149155088350265144496952122117598687231274349919669450477491111321143373259543002388610712904244984309193255323811735633556796594769963300089779099885786755951884491863051209420224174727244058146651716086525215331983693147020719980713624281545624782771632524706320608719768595763267815800761750405480429746468274222964267035884820045662056008778829969375605166979652700111809539384958385564447424462764095729238118321578820719538735189930632619868282456557181310692869837439299369329755839183612768057893966143051293640402544065254523983635289307598020380896722294683137089886998132395875059683250021304603322518005472772285639739733285871695730079938970182040997361401989516507209313038642060102984850813206995622781550629482331514614781367250681730780262254409170169269385835847257548081872462295842688851974085052506876615396986914545016364894400913948871758570206991626494470782227576133308318370392608095128688530990840569765471369813393367488769404289724770562691717474938687206899200390148840821782585609183071861622769393621266129984499760077053178050977814430260731138726155022698764813774253521374484601089333457166091301515151094151730711355489081626401068226641531591827193304856696112150805886614719827196248443844177762056270824328875818467105146509100192212703439748370308674508253572532017811025898263648639467730489113199319063785689532719657100218173438015428007936466629639158896479433782847206090967324779999946189306827427362425430756062851032246100726613679331157900550093645908685226196174194693395457427996098019575783154738994622624839509468245975469618659620774061094287542046812144480416045492477842919484193679732864247775399369737497035382355851665174774972229688473053417557327292894117339121372811864930066899524909484475052466466215877974186675032690231725064448120700820313315376884035666469580990884530149812075707734739595768258503332743419214126557870159786934014977182605600246300436513014017990323237757558014299482615254023091363703938809329723888639438749923609031889666346317167244652570165774878816348803057173378735452912021843126795616806484167049244724722274458512463355558407701475367574816534804817981731839076902571996376433358237768392603085924877015524819673810393471407503785247252531764782997573154618815652325367282684861993630259130398665391844794564782201124355336527587378953775834971140326594887154530484921739565645996625936526295498310975559974505238263499807907014517435908855764718755559364960441196385118189689003881998661337249081370723518678596488097791246344569456188497068896087265396594540737054886478398034859083642020803082436609973975465459283408877295134632121121866356279410444564634709829806063529813586201560748492587003108690470729889007183491049872966042133740523302842691546117056835826097361283724883121835595639653209774024493811453518680671001868043053951014079069393700496782931633211436356799591203830849462403585551823335273909323168453461057023164821092890506359828163372601864517392127877042945214118158103000955120757432321539244310058604239793538361406633711537244191081161303196003190767531060114490309843393284171573873112228661699771639762588694231234241130356454415514574428856338263082599528834335471806620197986457309582956016504192249186904762457972995731016914209907725034986987633215782117262270075751348906694887442901122048134883672338057573288822607263474168669551756911775808024420631176087009881469170420687211855747490899458384197783894811064806372546226414683070302780432737922557127044078710601500073432891279682824441103880200120809273471864202489097979941074895822235358659479767852189952763231039917989620715447277263678624187623915156259906826380495379010000515643572549629799579420349973526003665521982181608007278671573888313894566205760918191575594298617044809548740393963621480650145092151409304271440747275650168347559678279470387044782912595225589937750171591094615391133844870592310917268476187629525148636744383588406563983698039338997822726098454913101212092258019634984592222095567867554143086656785513069063881338610602347154185703013196911089080791828047608875573678248804698440042551909911619992076475420938467983418562127834332947534734087224530259352714832045644201332739571872152170569921459431647682503864528051844241267690278411307400304259731218597234322290969613342677909070865846081792100948838937386253016056443611221757964215324983007284802342050210350970493556044109549176847835618331063218575049940360200018159401122932032045915933061132112190358254041360063369357866679974563213525771254014967943887088497614908964478329237738553587933176011366597248232885798175460509307026416737379340129887994676481176509945271099850462126984724304286021165587755529113828381272749958104398582495694651190188570022641159279437864687794292558858220232037061274791586886303108001020744468802394979183433406218173770756225307323214548191067460126140406312288555961255177607916390208673055509560556040383550553315305413567913734572774818056494966782837489094918060960870806372753139545465315085232815419841329570472292521248808568338526682950213807734769045761345262247369671447507861168366481530301548057158790868324114307270676943859418807376312558247372883092523613482714231902521348005726878216458440326941988957816776356903623470626550857579976880968487637067944231758008305681683425229868268199597540928447010989404775631612407657225478322042107827506381392649016933005697661594394989867606871072557625273622570314344090834618467872988826899420883954007970703598033285532117393242875106357382635613186336705288221074249900116113245630700742451606779154142461125891480512242773076749852716320349599085666256383216415870850989912772856773978605820102116385246607124684488865473944853514803586484648734690118706200159940527903784997588898766414771927265781704778836009438051151403560109657419503576625287723421050598770914121958196283047626847587077879492925200067603569783530445260589435518310658791087759425646685033914915391401344434994953406333124368620663541042309622030486127937928343075824527536674201880221871519047068038348002983344088124342980343622285864879050991879549598153630279884189143660147163442998325138323648468620885350264214128268385311491062674837970671823682735315018353122319755724737328997206674851337076766633003257937515733965785461948842033908776177052817821630811733787709485056770729897530404333943909888538622024974391795232552533425068009725463234795699538445479134298245427051450197362945099402244952360374066074680180377308336099660596922242093013987377160259660896145641929912799080725757846201697956263518314350652341452201337111864280458147237291338715720345562782312280665895912159430278434380283661115725759934289477755869645460030504237843176294201295185113656939926286071438409341139270840847827717274902729668745229474749516488887744874993571222845702607370500509784484038958989631371810442554175527572452699620851648958234883850478609798490895819211482277667563870782577829546968840564534502398657479636252850312904215634459317913309545181042953199098080853153769159222635946961807601015521534079080726509110098041940606166053857680196083052509436640003809504410038969772432369686397630448319176453675078345220754159869148674923962971002816067974999075214043899123765036765131476211528495021596180826365701331174398495613444732967210565150900527615887592683508154106197283843661981081550976715576888209773905022547924829874045889348594677144733131579364443205360639090556591667314472549395856925321906898181172233940512015969426730892104173954892232746687062312368334543563270163030806822989973276850641198779301278196506118262473870229832438638810071800655605006615367810557043463558333195029202143187233597819076051354925913310090836151166088284079276517097484700997525276061581765915938793667654695979758297676673618575111476423610517497838637882642446854402936754855932045860365596542027680962784632139960517923524795813344227903311647969103480212093680431986939016128073106893614654903646572199610673042970976862113608457765571855417168070243794653654140438391006778543343720897108986056799782851490040652234486039884265434814780437757360532658151822174563035711396750476455205412569403339255728576132839794006456969501875756708730684440212491616301606875667196302493275007134725166733363917645661122320117405398636597281937031534005762142270955836851773006911314530177195989449536569951572804702511094633630424767002774146976450182930447117435415879376334027694356725109063474344456923050079915225242789996122772066599478255431694165452049667289183548672813934681677401054515024324966709564384195603025933931550808049693139717291045589518260571338429787870213143458744438837649834757074347068137488209003594105196722164842739449607039662124584031319289479001479799853173303273015952354802686697978466903504486595166073932208893877703472634575426633411309855909847075428693644693759045816942684323699488033453965612335159753549350921662282267076140043484334117212778943200467662095708613221761820235281073423820348454672193978686889179801754552949654391536535847935153520065600866080882167257719177560814204326008011354618737576743625288067271570677969766550519073107328001257504356064540041683678605066260433509819651409484978206099286954999011076770330386568358538830555873188174983717140537972535342942422781551534567693846152937590088467952839766313460617367530859589222653593390627108531871213126485403389373168414461454396002918670493962281902268461490842789419105476515976470091044801874762340573576863789002158879322474366624609687984181333149261152947587380800869200820921497949184109586346546738513802438349589026508803945509198023328917816254639767796799068559869684447498481031946798977164866827627877066782510648357335376343878926597284626005503931190327423196441744909591888991603337273066220908111629414010653572061615694074120856846247161592676656827627681323683438683885535391255747814939356843643332047730266643751193631530676757576141096357835664055875058458974062554272682211756664500398445897176161072124968859258031777700096580127952371972140512945063129313123283870523121861229291967792570998802548023047983860893697976814977671915675378165549170489179787069481654596619296069811610538961977272884393788687605701363517350042458729085646211505476305991067401451123888783189135661678686334332261703917122310619957611839924606115318420028116160697143570863131288428902630093763867373158631838952754696672583856157643344047286532457464268536155630989646465665552957103015892943740464805273651904816616698050478828726699710323349539937125210813737249547371795201675665211133650944710917297599293092276571066918978586388493832894813514912031611726867590629048940136078758078269177408313801868555990211067907947774163021694414190001082719738636913704054238599655990324613744604561028567498958190926049736639520945188314416382261263725093636831732438932272428592332944160767949352550737398258839971689207542864318214457358812623557240857825180926428331360100600676461313297403683476526996343916924340829460672573713509402614619928186725617565791663689007889328749987368620462297160775150215495193557226138151082392507569395594174159740673984296069075916097344176122276852115453447289928014449202764846863324588155919276816929790655749073895045281655327386179329877254359731246680625614810796531384296064083671907762958446874966611169666830202905617733867928638977977037171617325082063445932633352029660590065407431773166267020065125451959337000003885378397066558352551120606510652060242157154093004597897461680053311229789667092320279092595164902151542606466033351667795670418877789007515726410227967749664639348740920960970546282882155575070815569732741799659629416304003889095648794297649612066682328530882518143626867433935073499937795805521006323239348346092184378363893197141099794207726419050898612926825195509787724004966848446700040713420040960132648218498008069638556745095635772463369284218321859897575317425440798027672702927585540186194446404207132697435737982036631908372924902962280715660364910547782138737853046127545305885896472768928354761327467081630435804645991666061757847801430464667073224109426677275290396970461292451567769138350413456675748420711369121909020194906924726345638462276539620463934821248542323108120607614151274275055381705489152504509414938692274296245814743425946558079135453552187111479664110079087869254219948935402787827310893062318016883073091304166915148196878493781864407725027048029140756225324263567855152308949831961070213228154484739250684405972934916442429742388817596668452502708323109640626549568269172329796323743123022388108745248849155658119564161931416360977965729249668607213320340086483740895146953720121100253544843353800640436125204826293985639899360913127969148553095708970319147189077956682328988328373892639611624772075324878447246028925579363018425715036380740707689544202842442195850867836123352908967284686409850835897642211041400969165260582852958307366414830849054179932499943521372744392531827467880517745822982103442292310170883428805805290763972226283770234690898886673357610183087767422857872318068665575483118953567842803329302326594519949669778348619359620428123708607274307688425966671925345923905089232056080495140219515060740720918884118868036700311030740571024890098302639540830840232270665367123401927278492048264751798662407850464024619639925810143900202809164714565072641241284712361119575940544418896624057083053967090996737878325582691500497411307338411454249292283113510309715899343926915225430829106502375583812088580710896762852526358059559904188312286632322132966115982382353546302399439443912178454143528034266615687887641802616001010476474341979801987488959115249571813131939080334948458996169547621516809243151994987650112219592064204766216350134428042070174809245957623569617348213033026727093025953412582063598745500423384768914900500202904172533297114899828298092256177265877291862531034764330786251842939751901176537425486070426180282962226955435650145469732919728298195409310472562303005377408437217294908601502175057666577728384209300335882774563571502675753998183411601301566480879475234673933648967264782872981362997194425976842040989834974313539679658730105316280035585669551404367467992363253153665094897392328231300976637062009121677127494595264147704358203546127750060523532773630421298723936583039692102183199529773159295876704089450351893644584725274295759371272561684078722168344030204672091853564438012652733645713997628410881661428920528923292658280345061999051477109257833361381360157733311606476020477932273383297168342972089053867612923256110273607966979204147360244975993028772497894672222641707832385534128376864811511284933130486510889878880686499315988275460342493809634626737014159012705814139854491638543253280265622353152970056558805117564028429155819190985828761016569763635185854382144779697917164222146093881303762772675170960207745860411181741782890235565284007499692964653673364719166252949192079250992444886922473504376380779050877825561993631682776812038529353313085031158250245025346745170938677528918933160676406450162190024491503185305014332034815786498943699892714601958741702192848835841365861547032715229855804555262382158229288220435840171185813180765253766624012131507646306473206541896775247918879665332915623224503400019107139639996354392796402694083634161397800236608937630362237188447774668640672376969799274889735007494928325688864866353638240299072946876386513365132662149699119949491376585977630233252279982600152269943879437710498193585657829171646809975170542819207177184031641768380435624238815859539912858967765134847874771578250349403978739885637147696469319783517727796117113631975907340283671295679987870088362139925610648025857172628234038306420844297047830232072613063251449731409688774295038165703976284751277148566946215362330077807162403063525085681027802580483221486060024566473774795525445832315498589837641849845686059377947524966081605274199806598624848556288626199540627612131787106766644472091101348610748902320754259680383857130590132543584308304086248591364035873213988084909246948326791540666215769850873449874841133373613612324529902031585847665713945523870962769269772050587947027664763639189778948507369342627800061779492473478810521377368525616192728279190014367220836562331376826117039158512265503225108915720549310485232430694612441429252845282339383291454890655045035098930762522906230545040230285973839080118884698470284058351500406800557489032026450873563660594697107486782475038904004825676404973304790683914122200759384500134387399555956001922324894075072073318636083043755491813990345559462579110264451443186027567483088515996659257785368155985418250086357171176922390819414280099031771811924690781515106715304845286154759247236758523177195059825819873013724515925675269054015189122908735563741583055996233497941320691848956890889949360953706015802590871307380730960258647263921751197854955482419362991228758094968638358180660218715208803347419478311965395058893583799067742632042223117093259137742025414517223805044220485814319589530875144789399501285838166126259301623792314565203588030386108817280668112588756126389778476601407257196282654988053564711698144447422653851936064157782731919631469364657103249963971138787036219793237255152579634947289735961993308087375692104643258145129434082429727100613741946279091651849098094735215796637295235173575524871785264723791236223308920407080595187265417643243161216532686922508307825856969431923814790602934839176920192675226043037630587585414111340987446507272039923551233336102777894691690593980353837122476215553897439837031923609568924210959730815216607588484888528363531604373177439077010278346962141463206624215831014305329630398785310394858155669017024971509341355824494822652735440604466796520000754294089653210858699424388225730145769091579910217887505391328516131644285161127718723418515555574874161121496219700781627023681422960260950362091957381327276923488410665406492304138374935047095038666427163058418853308178314368292928781629963014435771386275910152733374999358222081183290189365452697037907912494216618974505035366540833739301905845354332528009157663362478194463341864589325108936354657032687989297515091192069674651981698802453252017335716165517163185724051935425165449308319799975225975503931294306335867237119386959808508209712341738990417428963602123769319412660860077558715204840257380065221164290761939457104700651719530511584055210559282936091398199252983895471231278398000880176297229129568501181565446298516688663875145853859076378052831741909974125693745709381059125712345313537111031893013374764510262294627904176061027026722834124493376291924202246344903171729980049864099683553613022966786322284227983786722274329360941615778541007507681538514298575280034023096112348973326807379253050572492492471448581517752888568590517620604792687283160636808382645803327566270304482350718790744064027664157562777551827392710151073859903662310243772356172047048718855005061707814305430327681565842319784144017759904536169610738592654920121348018704855603728445562828876817810804641750852091853812616147548129517145355447881531516866897455408324181673723842720052195893425300991670575977654474064204075378128209250967244931454231592010780870144313236709163592786929930654269677189755425880898257801715130123881791766893608685571496521701680669963777181193357632179709910067042688457397100321089882802980174751648799230410636622491469046081400933272798598379164180458816982782512259511589601196286365111254696423771415645599324359658690252375184201727515062770265713977160788808580216960316878948252743150023871807712711714800088085030332453720474152166845125006426468787319246677334090138301511005172262538465814968305052422593761143982520377951919606917513651165762640463724127015360034429423566635490678973654196398370887848447602593332212128506747668093545217866548780666068199986341529732277551322902087072602994272632351324013757422051995203385784353453092608173201687451917772600795652608680101022105825448033289293273276827877908931828491581257393485912483818407942382891700270300132292047060962573027402506376460101931201429545197829236871396283274774679815019315224232931163281083686863598276320489634083406823800624339242770906633746887143670306885926838158713863815987820584942471221677221731824882472459898309502982632695058454180200739681805401681123754028283504766486603706759492467373716185272616936833247943394367829498047156624523935705617046803352839157496538316942555644925849080975567447131183951108110355978826736322755985453110128868890125466729569119001191109476542605191701622199687629378417300493238189977187240704460133589456465961382469537477603270969159913772556296831598551418527851845798253891218343492852133612353196112723655643365184747346814667021850420167945052003899486864077479411484304303451117845113624616312665652833993002084478346689528316947891677199458955678225562433817132221578327509216612234041932156356367931622559705580201639866674016303867532477874259060291935001154689929565137295633815263969054214175560032778815323277965417485586016141832650059895197214591229577212252721977747566777015281702025630899229916037061474356660705763530496213722081825140115534165096529026606261032300850241982691028907875038272621584482241169511050473775803218214372947059778618532815194567868017578611143993082106523995320414499111332803258003995384261509749484759275107937140634013200606718000449112928727598154877927643804644192725814476853400235235796440794123713564699103759233912958196234795481148652641869306080500853951616846992411301999166996246114189404228625102323741881196703419900965760696066814957038458648459091260709055668568180192770434069670870564097972823197896695230498003797897176195264367781549801337031955132524034644077288335107481045485926183042738973439550379561704455262523531820141094777968101546512583509480792473244929746258326758526918960346222598544418644750712859365050523341633340895430819529868317659516872808605203963209466891113158544936253075824391434207547634359599763841320694604157438531606064057116191809691269018623787390218140695861268568556291053133555240382221826676446465999530517368473789064322281185727230622006227752315557204749762836078309362578435321298463472471057858152267526062082753396118299019796903433111866176022874606825937002800527218379118282819434107958087068477249284294569687389020432207640877782473500042287290244553917329683517905388755050724371046651605037282197796771798451840186670800272581846755188709054160615378625968097981084960740225170393745889214523594303071105774673939630027110320464685582446440780603292463850839797244165863985071357787566386372118107139916029108841169691543628922319568078352801945988183294282934930550848045221379876685174046059092696818750317637785241665836285849195030070328323238818433144969476607558014490061978013959923177539618523695641404106802196415450144309566623645055313903830439846668588955846357601629878110043177879643031232928330244839553178146144684976622246620154333816953055771386765200495692490759470709933819484547381706487102569364694973359463547609033881343132863304143569519802124262170642349076488466066120161097495739866121191121088215611867943655970271696618162066755605813426884843571738288827090928611619059015837009120354711269141944204851448177204227423743629043856852837127615563178095950098463887785476724811635575521420832633087846381682985924721413230052236013426019412264761963749029752209477433805438386918792656603728249493816021323928557093294179946647679996782228908298972004869392199899942523206795586879013128636893090847704564467274936125777598844119459504658630456028687712970943580073406137074099019369065475529719017555676061784900899552667710093984959535773272789818451561004590131033764633892006534562975550482903411654922138261435860044706760519300816186148024901305236577511039615719357638262257698174863083900863724282777202659876941426579011839054993652315887220450396674132979633883853319002409464417134177698951730315252131968983130980136158718052452228751489879733953215370805958282936753811025191560412212628081577597023570508963616383352739683513362658186391951258629465224785137311213786966078672874991238987849940948235462868144129423038375810733226216947017396476624315981214769576299347527319382885560006946462755623471229667666567618363897441648606975872093120208956710223680390799200495153298665719274910104429799174928495611772563804497185453306508846260412738382323748185187237774365026802300280641163753161535103393333726734892118484898069932083378138605114325977955447240266030915074704465910399501525519772909824754199570990481307062053897155151317749639328244508026613921550995247353409572810781670651318873866281663560499832026134652022751678875713268524635361258021930906305852669883877104146203463554446632845971209894048400328335710984421585653555396241487514582334057342823307925029781573808936321438031671273586894813366026784574426432069521874077401570762474355423319340655013829538622112485850914437904238564940914971490347932220653063750345786118211955366042294393316098848394412241058558658428320831366035397961133206294459030497248544705735514010546707291562395099401189111862812969771224063941947166397294741332329697678590780984112648213179946861069582326468027675561494722160621189957217095908113307643931179455988176201655102610891682080584095036317567460533705222076904491276134202375374465056442978532493990993265284065837216555266894248126173744312715132714072355602713106262059817483502554546613793767499629534429682614177768502992025069455872368669453955321574744745158923338234838519240810705307418085751770181566671724200599460987759913484516036927524395348916548242677259061032431466783752087823125434096385889167542172404946564318881677161774541317416608487571670900212163822785953949210378759132550395091370055206453561642233724412501599760400584434446681497954411648907695387255529739140139551936641301394406689924522776003031454976417280518972061154598787150585254970501606012725754369076944562853755046180389881170892831471698473843929797769564062717622550104735455173470407097345680431333343171037071210975478489608762628601532949134088291260316218369322048549236252403103533271253800278378712713973083202188478457722750979370851246079700222554503783228035786200076127916996775352293033698602999305080330692512168582550445559124206408077627528667640982596970923467355974834455308024597405800823338941062322128252735133983362187193586953214010193957854559699342699440040127810460592553433619755313542602624901101028403372960158227010722673689827647192474884218242791907753177916621570861073229929542870424944177516159292428958947022425193050984080621355104362626817597054852727918029547586868874449429382780667188794309836138961945333815604279071484955963161062711620537628703373680250262093722319634405890822962148943892545528467518432515323502212428791425811166896360928465942625085122357174097804360962982263003618593497594244388284426851676383730605473260580007698468216964246049360064863831262570748302389253995650304981525787744428771191751568477326221336417042415624051391050282366096809988570303027888318277604788821105370460333791078598882735372282614184400850216714505626167400490017049748807787482105960147417873626182096725549955312490783361180923755064865682852622109562252767210727506290853336241630660991965475833113801371117503927647188653261215855531402043248719437408966419342087717769614674223019458362656032908770684525177712205666790858337311232693642032112339387272181264296445607376702248053327098134860726849444530576426009871901415530436238988404863140540694986450021290950686456085605481057838786903067607347603578205205017723877638766661037064069644277889583272051493756477939348253059704895378788335519363672754930187649357181780265027381412923829555163874112315153454460527995453238162982302813351140895362264056813356654376310050004596250452042642192895192886147791156913793118317026604825956478691286880423856432664196746372926058421096848476422133699316143477038227335604290837023487382444831004988648707760261616835107538671360084605445648533589220707810955215447060763347726174745665195211322500777258792339116562245474834790315357349410992523572568161672959673311959387117608578901883763813149351169615452126916287493838093605275666725254285708894280110808757243415392001066871951241198082201395953324015124330795577737592702809747948109449126395564842302036841231860500755843823304908711688856270437447489473617759010631823530589816191779525725725264653321236312801115442461653513408166421858711684545505565715499577017169449041307657673983087334937219744529688027229030130030672075397346755994498003720929258621905276776604204452970805450754681850530843948684159253518849170027475690128853343401020917071202076921657035666121865790240963606645666642015434964177326358780344202479258171620175968019446792036511990931154508891214146249992166608277703531861081500168996573982336776238637122115471415690107203308201502174715788587003826638253229291042355486896289770176381588778232643134911168248829398898260707151957184019911437862194533631028739522358630117098035929451993819382848258316814713347486842658144917969567104031200785801932939604096244658702191197520506334927848005457544276277122147593286902755343373478157048450111797530382306980952257762026511384116639606086012540806986738658657372292578682763348233322849650702787861842917025259224048937761631830569015604746860117653552124969153314012498313672689413516724726019962079996785592545925973402730602064959127839844371911612348912620587992230741910347459812550761479360966079014083425105754912899556148006145390396424353561072719618374638241532513827116517830703199525199977288095461820304089423924588059454623835911513418157786849010273182277946588576604593264530751703764355727690848610976670008020002532687438318798154093685288992697852154239139823539851757976541053516139700438633152663543534739621031639920277448421552153227613650678466149429142985531739030439760656970499081514055979412796007756261756804931990732959307910356156164047849682044648143824753317272825307767375671279128413224065188805866387136628338452954596200728919288325883494327556621909105941810527997424740281928266129453048540716606096938089941660506571116496013624138327182074465850860287706368797435792656022307633262994243595422665075188750480590779437061358107110491668939629805840960845352145891770801986419829757935766454528816594257832780083478819561057832214288096149821908087872414529098261835120645934949076625238231353872517778676025346899232644588388757404308189929292200025763931636978453342288211761032443769327559649939367976623610933784359892575138605391728203238432483297541666046186892369317169797268173486655083013761536520678023941434929421460003862209302459767855876816188324880036296000667126498578103488866690964932483786250018229204523147379994066849475141331976824451779780838919615438516192711255860678732786430271909653334764434790458401801245104237787311466318059011147711114784529916782626408824262667260605409663550391414516987495795053397391336626906761301857356115684892608468234823488859668616272894464799317145784032768222677820696513655356200760074035733647571815636855985772717381428541687184695114423569575577409590080344885310034740246353767056961572589210839601424360190689254075709707991973885138457787615163726763633127434253829533134715403016597359375575684703471291489373866116507291104928364524850269272812518290714676274577298610172486259669625567941006860975144585368397089756937665743968792606041098039317658099441575039869173457827228756620989596333818084411182735366292722712808088620783842792703686838187930619627400062669217127133192628698328091020622459052287801499014146348561494433592170741719460107578734984082282467627641882053722068228433824832311474787041061053077649807768214833165692136589224084347408466968074170321390014341683916667167683118981725827843154373994355680636074827418243435321894071119038582398359430512296371578932670161001814122247674652093039116299704970347374240001316495347103320241865708653095219159089590068519563393059422508042097056626306066383389606975728860438456081403814580193524027606005290619192914476557801240392374846647784086826955852974298298569998051310004923154122879945157639481949037990990675022632231387612863375073497151419394280238425421852019185140001064683218597703472484546344208961914805483619875121846659158212819506839098977753901522687151440600397445699690948057639483031653180306688950872216704365776666934908132476213689946196735823510218829359303373548001226464094936237833554256088390691022968655098131544532993938697755223363492285886301708108172324805241215629818411282939590324090206044755043206223665440002091271574448334614773615145507280638915458693233272963364796998985021654719109670546330801097614822752823847358207526707562592224955164556196341080946901182199353577382012928110754028838565433810881309203532648226386710972828684225518298811736506400301298755243380460346954887434857434977071500704425187055899780519802742372940243373698352054062398116230073901041551292178331371498660454939594854418900932771984231483406403226567720865811712568034036585615469613217610714635200500575264424191572622669401642245930420741930379321463417346511517675694049760457066491197509393193481517788701121321879347680212413459512928927368875547929193793459516836120438117578103392715791972425392577467898718392084822305668778642810339234475856967559712908615209626900204424201267328023551692083889634012979210314013087358913696426043416288024780391814154778311713175836817630716285170132030225884649299757981353666095202684304418619422119157079648856269873736118567831886184161125704488672048200411945448794280698754986980518979072719320630619015942690918122860181562825015402946962817182533769959709255448058833604555378053450636453580704161196089351694093014473264261298077609680687702147407531510112550699817137446329070308014289758688701955591689979723557796979583334118696425753363483615747863005246843847894905783302797732086600186208125983119767781081719476908855736020288296329122328756101698388546282588054750764967773508739065322028026074867324198033296727434365995055581261595874340837795708791252212144185626386343969969965595998264938179148597014975301215481839999337819644796096578181612086492965305834653839895689138486845857041623176999417117003616599673979707210157179494233897813053680327094642236921107504049782724403289904230309526829528259680779992401466938925660494478003166110015594526042219081660616131629820905866770952787669720515346481759599322382682645596054228079300226005896333708618413509800034412531509909545868344014104570844317950442915570226242507753717307961872464573503564795243469019102099766866280156609765369630890820136778256078333841996521509808220852450659985657915950977098021450053588058911968238272214967343867078009604415743556206520977521793421880567371622822359498001089093950076813049238713828391666710771950962672543674291357872838527441631480746759563239851562470563520973820522838074861850822878848870693700053309874303758157205740668279233099816606638750966116061839809278873777795565349177859287166361657437438037436017019952292561598183649045500354707788312943250050569524657830385857867691563207281721808255040610548068233911598691399517661060591489323531477889687428384761438004708963904150090555620829692466033194168463351136675733947027404905066282073275777759634356663167582212421260210437538390432613582968622327692878958756263680745418850186125210997005803041921702320901769105378393277930751021887053626435730829849284309937608784634739298922701301529924340922794231965820763713312869203902077323061680796060027869933423857428282486606372432969131262094342645265868233955098802353039184043108216784582491867208626089129641267068339816859891174286309177308226661090748129975882634630838021151458385209788548182819834625440646836595713487736911970953826250600098907798077784984073010723392899841444200588421294723312555558247030084910710942563073352412106557768466963566752215802692754756652624140111544368681048635217063667156981378689792929058549766202398313823156507956587199756681443292987244371049304046448161047426079052619009170039063049655750844194293717868982498037292631641226709191589581297135050985763505958588639493466748647158574225494868704491938262359599194543271487124835759945759931298904032858731531005797239919018437858725400459376994934644915656385624300772191974069969594960411226725830095502771267335777783309113631021958061389951296518831766873792043571898902817774757923411353388676970400378153876020810971848774206822348901441668620487822796249521310840143792624578251952948449301988428918418108252461303141466628380456570871457128985073850162043845826188989499026094811275965308136721172122113149420547000543982469383841559730574436652569828084264914414633155925303746242901462079191385236256060668719253994291760569359336671544634682913094164888415317446174671991515365518039279463648909069086055657364680926685265501217591536823089417837312018602194552848499276077063866089573004797880623216581036374134256524933954321771998300736846746737250054509433772906883387855324045306046083621579461078601653488914032260202526726394292011261551597541724467027187515587309135033693217996194498943117956413750730952225145458146573656535722187090993828790286523275981141028275242050156268459037660003877956444371408954207859365094401956382776458438298671592002551577365357588444356525288299730336086031061133495109406124172755029429049498777978670977691146151295521570325743207175786183356876600479872474849345685699779771797171527438220052329596213134133343965533186832047567539502898504839855173967509578164278569435747179421400545133394857599319269838401095776972232546879702607260789925782117625991840005817723297486795036741972825526067069024016621531845818996633385059389083952492417266097054479565907015357132143253536302083587501769517007685802475107829893320261202448325618741528993198819047548454016307444014879359577586543142287744136580139715801838602897244177624542478217442963327817226754534076142738304878119808823316305991227486299709137604976840032105802849736468247732511255836547847419095272415030980095145942022988237205105619579178001101088367756534785328745057048471832072560563542545947123064942508988552793667528608937817868467634799421636258419930952383872451967638010417416025221435478697495103693902545904225325850041440928767957682568047138961812501705243231831732180276922471440917539481874258997779678364984262020463397270887119080484259239877042496617721497243753515622274599300165758632334930031096601637987304939157614904316159454779960111074819454405176791203244630317256137109336897992489760686021622705910861352372188313991805940612661110185063259840634107369917614847530306664825475475204046103934913953904309966850218076761110657205677275000014995899430044042203412874986960155675090715705715551286480510468653604080674941202890886270351061599578002338138476890754792589405039186692715844279285862080772874878598014273589638859146768083352743232628081658550332974284157658352973911998214238429092675877813625084022589683785207225355663199093260480333239934771762998276948169104609849561750170218068810409748087466443862699911637716850608681230224080902072190637218427282251241560410776246933788926372767557971839261883009867135159186585965350372143594271246910697222947789997214790109938987987808255910379267190931897079985747442417201515656473556077352591994999458330539398965185032593779679372626322961121718014084248293192553741670373073783422589567590451226865256251762043527164129452759794609208090690539990211857572856887198115295441069536189350811280189672830278883241642148679721674000613442401234521606425585053445120640888275833483207937726441489875009192546057809856834976114903803760872530143116537673291756502955489493262504469903697121757888863133542367207705100441497183040550753878154410987554040660461154493221487090831547876952915324979519927423366413048495224489441874675209124785016677645395376747528798429099459553873274749378826427703619356235758113627144904041685845084991785413317571408930871011351434174380571627135945484486687062699219465639723833564200386273970706988587783513207722192617132638435465099083997372769575952849402705584715563389227822273961028890484987233999027100068475926136250321708826102798319862326968466369035587235371231383963162452643318705787760181364578358489694044642980461993374794341260399751302799311496055216667160737710618101812824912156492058436661491086640107959679828918295152543966322147650690905021509913383301939084932472375928834733164314964543726742421886116189169970295672873315318218706569908330393143378618911574535920065301600787318603681858120665973829391460116704046287405514875438334406231820673235632109494830604721100873897088539797579904557205514506814670291580447027333163816981838995747156618436789981889806581789607404600853529876814713535859485571451488408333851831253589164958318218281745793471037800055314835937717263846177662869626741305611012758030359522715604691846407551462549024324588800742281158979615676617538275401985523963772383479445621332688267871461592686837262261710448212464059977947946335973740755641081547994834173611680191873303507744416961827354695341551241991507431634946316462779887461010850772147550180244016690977500079909798761967273913058337500983512010146061185477125716831948847050131278838161165775517580233959616476960875904920380220005051448641779885298525203041941207593952407268452478612749681724099406909967104152912219154257111562481547486696800653812098650880621219088848627538671597784523904682042865042170547554034397556609921478073756713952612642774374673825768017429765540940076524234413694638357286759262750448554929835510838903502377495190922415159176421407918924216436444971180887269331940891803040003750890539137382774310480216839856836155819182174087578453767762184130156487077751787475558269441617865935379604902539792288017272547711543720111441391096767121534585890479249692486918405567466678992993634467435325123196840260105640484362977491281185116780167588315809407006303849976733429598374593679215995636417185143293255637416456394136203802964953899153196112910282205640483895713284369610366469983538455141910802167958486410307065273625123769848896792360047959717767706484535373613251380451650036357050034604470457998215393225151978572635250800144331973276529774826556386073251473145697703613821499269427469899081877698849499306206012709307910598798397695124095713982369185841624012290848135270173111453861209940026456040817518634611968463395614052938899040647609095776443619228236112156042252684655244041441750149720121171331845762293486801202529833192582527510959711090242236230022972814728392950222968754395812679332998482335479957286860072641211947029531039708969224438966116533154167605292536466059354022858061013384649057405642375668338935195565077837613367717402028731316485629497486688408451900276080669864348044408528506217123324261645010971763354741007111299648577202629831462298773513513217522721460750927972241086946991854360035236259584209751708397970669607144354490344701555589226688954053045327070150432353348742831578023486595249445462814104097435847531508877548680587024028621570343338239338310625800734767936196768927480572770225835903248701411862580781628759566197692190802464302689579611676384439321148316991087774583546548326880322796511704449268145882160223209732304591367953325367090025491067346381398529594378546040457735738880240389057828094284482944030064819326340383683494120422324015363874127029064285695229068315158491807996637559412797202182781811524830269113968453747169369913303205334527692948144536570072666870900718100136050884361274635135551755903097213524251634794142062747015215842421161134974748505678613034615483989320989856883760822157070535472001072707960037945223514102990868243150458008842803902745415214798228988836177654361404584643390691487076350451128316731312384138568910655134995993407282971478333196880894626831726848626134620980610414042946504379830047405594465836731781729732693342840472319501331010051582981306615739226529452482700532019380535175418036546053550523637792653414086259935859429472772009327361058338798365506508449507776879832508779534415711668291984756489828301545001009658535410121945030979398051053953946463238238449827094180934928553863081824935160620656385455599338069897049588947124581596325327123391015980014259632045455064520060196902742572019242486181730908313801064497509749165132981662815898079021232756342172872509955660328607681742733045626367176376885204082045160205208058736050804853483982037385496051167926445757994532558312479035186906082667257692932280495062339292130283233589386794248050251245174285426690536710559445043916291327864963950424229803625802113140401141993145816162305058242980905138560602622022221834959775241168694436874363179395204972390487871718511095158696951001164648434574538256985246595690599334211158241107608230487047480823800165595840274135999978796109996598536880394567625736448146837287095095098758448488816902384240639858607326640866174810266656523633649248771464322939169673718292444413541950540286048302628392561141320662859005374209039592565281845216165494664880073655032330073953966259477687353597804900660511744889340886077781554683833064010352295724724613956313136348987718644743787101993552103540115808391661546666587625528336884146346193216725947696401848888148839306228359058639911599375515886451152935086436828586669976809829594313036507939722559895376086105320914646554896200217491899756989085619459593020616594466151851699055046586603852280765533023005537138486718682195229430763942754545336025166997759071716629635788112677493737989335331609248207938301124308091846541852597412952588498937998559768351225194926280079453305801656894309017901030627016847373454308077615253952042229976694249899759617186665651726846480159057977083465030356635188570741313741679224781741878458220270146996617856699483385924725055908497802262811094138950220794209738074795468459944453904109511300810062431693435195769304997891311202934677830023377130879937797308865496410872410756623252395513851624277545419224408241268866395509255456006165036248281272430073777302801618250692525901609489522999299517916250083677672535140244581637359407725482374117185949476379733057464999906286166087028994211734694215999701431107715490541693906536885943198356537766694137024844055459996514282699679472035647607914889726722731559841715170089183391798455852884835968274767824031837586948625500058796891906753600872991690487624410168464597593511912390843203159515121263069666199464008910935851757068673231130345332614445002521951706123059956912190082453295817633415206081652780471924443294984522953856323116960579560771816723892079742337162786114083861865248330599695018498341005798486247666132662969696292087080502690599719631975954493184669108195639450971299187446390225832507146446670681882224315204866596768312442923769441009423903574441944036711578719793776530586222651398778932460208951126670907252536527270223584849361361041467733486179245181111399353622912618774155480584597303120348785057072547229920577258021512465209146964718930880386247562133946245653483268575057066873478234060081360362077930061707034568446572279682776418832411614358995195821435341735240171753594144528203883041408674447455054149130096088080862839825133541322884482266654495305813889395485343876507823148978570278634836717174638308488505995357107704235356237585390274051345438952704826002177466231406384009038659050311263799166909607689826547019932326354304322489911428329999738911328820262955103059182185740820537705313525880471404107998208864659804132127677123738212230127154861439411105021243984670589842451212647652643789950429347196746207834637089825471445860932553897809395068095632858995887044636610882355885816430858737490181056889654314834590686969565565271460359983565233119578516856991625787980546785624059400354006032670516695580434705600563346633099542778700144530633602830903854554001714735936933492980139245627219446856630081482902047556215326312793081869617342603561740926679245891078299167038966550829472784934823165734152237199144066593908047548874508784037142854966804170754456935003926512422498863684730690604689595017235194091355403434057956103302422816121773691748247417432319604749795070197750340418586538703902760493716580927315191165547279850009933084231610663267634430418379802640594444851645174065403584762191680591216321703340071321219821787267008420786028525588340623657347150730179364793548475129841108485580480051390161304644711766416320073582669727737665123634912758095577056778826741384400479073585307354904856061262012762586650869367319909842479209217481102831899919607050982403997276788671049492182786077965858958484053512924250631622641681525539017959024659761674184795933385390410306079215085389659456222762904165710378139713775328719526308253978878505470419134502023025418894540688405091634835049072681078414859453673499798213935864617561758803095777715860890613093306873004875074492621222503524273796692355808445026246477994899095353385822148244643256573251161871374375794731289750186740416001258278611854179502182479537879190677356507254934919432566583199801470046693769994386032607457413605149024654432642012846835715983952161805193018446254431035229142578350950424471250141019758137736724484632799082110245669514416576280271067712691257187577864541212536840296893547406052081729532210454237273511391774325109671791354239284110124658001727717172024107974290170367477536382757326236598878490791262783333809204856857522788364845531630535375259168802249544014377613475111435842047272673106423428442262725548080968785266821920778060416728056175161183293826092629237734880931896576694151840234108135520167151400608007726102626169294209774842358261531313898182362730458853216463600723330082291008453389243495655180090472949663522939861747691152347757022099052142479344765967375527760712498247247297530959328411788511731272361779930161891845225150238652571380018763133125210541660328730441347733440596765930020400492777300344927495409552923985679074364448147951386252801020560385827058174598224255483378288234092373309553517737064419835360137327323577037656927732684342753616486948862616595849256338157256822186404648413588251872111931542662084511637506263826202443335153673782330217034088832514443543668978616650690574381105908803215439859960917389462682761676560508792507308332050527447576473108367646518556946720614027579392805533326067890130051363237851803894357312558653557733133125101675871469799097239169989945106070496018345642522890931554859836868512225746326154703755533297380796135926684978030241186802012404347542018395993185441767924253257556337802134705333458921063535638238950533457763684438837833258621129182763567052673721831680241853346764520567916841475176129243328653366988319841886574930095185494962877909180925306136317380451799217073422127827568358135152341289634564950181383438179654103621533656941745077011928101600266159274781353473455975184644536027605326615064026238876081036054241032866887920591922588826260364407025412832524416782456056963344104586238421957298208674945732131410864837886661415676480715760217191737691910310326290814083742442764049150213675163523734370335353085539671989737729250318835679330204233054529361967960806948773833094387765681475175421311415721661057020336625506873035676093802754421481702545757325041816022777037121705833144898205998479679735728398910567219868531937728593511103810948569964466394018432191617617552562484442526215028644139070223643384001482720067573413033817579209176512652109821524028984254372108463725405214683930822693557593719276729438779371547250844684263140956902309655983837505811475916540437972143931172545954745030060652511360949821401611891795007100909109573761398399603261560922486760487755970302826890228020114521140351423364433625915711331977666115338173770419469669207578866503125905808583282346899218487846593869024216609343212090748449895958610394935284389113846358438681264937710504926114857638648088817188290285094731621956630811320109530153770403521958346932678747005063083488754678361072103478927034536444326960569159203984549425395741544640963174969913946554184417450789352763379392849642127935091744592211579991050011813865042642259133000880024350740948187826882057159566920872657488571043531378461714295503399560726917990560827076853912477093159637915592858819408142285549169205601911334367228535642799962089874456153472651015591256248953828745118209628788954385648341853353418306346383364808755563795272376977758863095048911103831964121232478961331650521716917226908630494328376051922471480626154944838096589914171682824864142993503509312907183550087844901268623050127035853706457915201709079292077090440766373062911166073092496027643052615884026315073621366768361131147286837554629220935526786221398508680586493961302650631603716535877037830830272745722054287217383664237139879993589997067374202735536813144081828352531410748712540531417179506953267687239459716973027417824913637988010339590230826414644293391241692043714788364973582903220399444058893113302053495845937974187864909963691173889552771619222921242728185592804790898587331310230303350776087247068866019569061468374812485110039195328968183933589897000078281351805200549900913808716820748602788534693089973104235199998934676985832557994869298365819536073363710938189796125523805184847199239464326965705049522373560864257958183421400432273860712249796858113420847333338273314565732315510465432320130040325364889616190836782246188496426908036799597745258829679346859903307281938376575356291828915826953553763573388328707661507031373873475884672630661198651932623102596003025078711254444280301091035096467938477173699878017298594882424832235389985343901983001841428283545540084330729189071914013325272494745265490957541359276022223153792900864250935532679574979684663936077198934619279626552545279458110307934948670046209625846223587994406589915747455460822044953006081275935074086219119282974151080108730491694909235498898425024563784205897992997339726936623657399761739418557920771093499995407420840587888535301310969063978304440724649585536822257017755880817466301734932705589948471332300896741571661162478819499028794856695651959492345956297343102217138575710061357213070471953248245004449777778630259539599912913863893461547954927413530441470745671476125537114564381665844271796887428990867547545637711767563025807218861381896289273098854169517505833000706018478086665632900966785377576437265897671998047209910221807901741639108690246965703265805945160273863733393084422002291551299241901506128750368926023916242528433300951205043979116403196230466968705012042473485740700434096314743156291000832560268505563860830979746753577498979307921104343745020146826038485319993770629792817498448173327251109551591700185961781935920901439273443129433614594831428226052427467828607656745987457086724380207661849935494495217791572268091172725609963996389230998226616397132072279090501744098066270800771222602584469423996268263886006598242090298463451743873562722256922172669259301045059518799290763573329413024635978406035359673646187569276436514175175668159286835742446491495459112197784960513620052636573238904481254090733844253549867654895391640638099134921837371449022065645520869578905151573222959031436676048052338371277176916822674120789612409407554964322149857462302457490433600161388269886903774023307195276312199161118168011736210736215360502130185523850642845141146320292955490473279335080328366660976734450560082038226501424718327596757683118646064353574083744201255532827560013386915176880379348336429441112428628104335610183478731987236364193571256961034031072296025830121970621406106965294116913044641193834343820362061311732346829028601602293171419145203875970407158569035320871697718116547965400402789047003549936751575429203419109526277301791525073866503819642202897493591439233195338616179940477458078241330178004873273278582037285262397211599784851391783098048220194613453083670699810584063324827720009850189970723068603090396191082040483396823501401864365753586905016242933466588291461792982908318424273232271022166656952939089766706517395737538999337199779707964784995201447888229609414460672155380859220201612916963564074942552276824737216895209660703677711332825041452555297205396918139864224971156465899928984426266934519157049821575422449116007900951263234322419825125702003489119820484578477825179171458361313729381734454078426245663780065970997260988126893163011476137238682149954716457952078125936037551966846702240129471394769302409609374409290832306985099522213265093125685589756790648658304887830112780057007251239549525607992253198569611839538550184740194584435461925754632318986078381950471407548732911162639311049793142579185959303187015894715146808197055868184005216203367863890166803242048543078223937552153660789236292775719310648068102977790640959563362093711877877239379351033123938634852030399077997509884799574082953028363081215458589987394816375914188627440442209265629973445720068581557390512897186129642400794612301631786871263170276686863833129929840974528019713032843701977299046103041586685776662493158184713896202654854226619102425933835311781487477229917378247161925367358827035423763693859181634636021323866336335013445092690483135909895882770065778425523017776465629726143422620776492940904364667401343209119754161984853030404268436050144253774720524931984094624284171778756475210522577956721639840861159109484337562148327064588699011537421558437298858269269135399039196805506898000828374639246951735491997140407991050817466877090340318032800234895523130050101511709704167018635787586313973046912110804899159824403918202165318520703226346522514715473744969067270200460368816550377487234189780057912534792575604079594944704876693727041559457238464988422137836910842636738253588758498982128536312702096334060135157858902750363327608737243262257036079781436733126405698449537791572922712415582413960477711991704458815594245074402526903381739592405201050002223022751049841123034621204334527474337834063216138019144720641449588265588543925116585678859102658313785015100030162472825462184838256400684982296051709914930345235281562390707878989271559169414265195272083938176558637724894770397809026878004177255771039275618606349196390583616351375408885482618213273969970080316533239883454920705918217272688450563704813322865767616133667361754956831248479656218335652501683453084618765012687566506718791374642425601843537089617029430985697123724060889704565102905070437376852397586059773669715632724127222903652085534184238601123883482650437485540554532006746493170764093616422125214583271120250399368325706128612266788543955058870760637908520102263957428141968900211816969816004870366610498531709271279994795122481120656185636474713346492178231423359260512062594124684444156378770124382964195365190930562054508643169630169707923871004979164763152555934425062989529880828550313068790911526463510845580558053118861987834641367182467256835855300849640504949017512724776968840507290966641050595727230323797694627052164838121416242467423750286201906871506081467925609327570368724363255530112805148473365086068246292841527877189321023863716452641802909138325685518823412879204339668521989485794796544326579572898107323156583026232417460924266146434515022827348831317833742555630483640119581482656887105963436589261602900066320843063184261167760303392098424511073432928692921735235286523785945736084466438521306275965422038878744260355096537204894337830302490990444591531364635897687775704759010944174133710200834161561817475504854885964174284379781187348713354389774337232514468111799615065811454331911348089486119572768742600906813693866115087224922402518920037844235905703932324585603674897753196909423311162186827086534345101271253543592359573145864772924596399099203983049888608853908068353656962634741366578756594080259748777711835997152652849179816196361618544282740253374471068832088856635496245625271024381592942775574842204021341286091832677294542151249256348481225467251251806844748381070108902112352682197395109392327946053156191503003515974570800522835430410126433323378550969963679785981386793548244762558214171231882716181591877408709459848020259510757282889124785541654449523920230668472200310056718621870637463233918262280789356758600110769852886497229517365034401055335274820085083095694147512542364026494347075843480160447356601147814130875589836370316824533438728399475642399722342358184343034617409643938650980434271628249399516494456980516864188926757755396017678555549730776037512225603561072482364704677633917776737713738534196285821930473809150825800315679709607350107013905088060055986410545406890145525739367220872035500747276022004570859794654585514891853414198492448997254708452183864165552801556176537052283426342512380250527794991111045565173257035996884409267171445274766785175970318668402214288709423766665974649710294766813075625468362722661691570247713714668014243380900826797663620084018494364675952302778115020397878732233866118919931238316554973969960155184884698419922884838416799298859984382290953207849639080524036780349791211955864726362744500271689024061353461501373326666810217611506208010052187483845895966672014799818192801980295006175149509438797359933815142012698770618274262250838413612796599696782820917216534849071581301506077227120817301610509594403369250136510800405300685719996232562023615424750483935183600569354832585686444395409913358729195214807168199241920984312767520925063646292742489136101946120918616327233202004748421721215746164947040266952202249458947527207398773312507359567167695502093228379764522635913601881949945557060364367550667894982262559875316149945167120639451835734106442684181653635460412483687995284263166597354417020018075375265862758797416255912936908006367058572222983796060672166516344727530936205364158812286622394832995377496370541184306808762748128348619427452574504715225320966375559164624231926633229428576723340067791600993210333041989845216187923657883773307148732900544300768945162356859799385801594447297199510735370293184327643160312404349322127098456054785026974975509723296620329680385048523379493612774697715222017989619967729895311783663107058546187367441649960341352055717005385493145578449588071096304644832847984945386104488077445945367393613053286790024803777877439195558123584872639726985252998348265628047904849818632593246272717229415275969103787744886329682197585088995835850562544836536812889011640481780902391030065778476892007445411031948427622445499888188303908374684669338441886552368048381515552153118854686157081409662019143371054230325695133071811728692948670507052493559665236978063289508905267160414523349378882435468932823822221271023031721729052393073679118220397888298249824205270202650805665259365455204107395194440027338093933763572114500560948809112292392843063050930530886499582899764872636273506196821121149966672479581798417048653393324491344461404757776153274633222796715985020573350598316308595013960825115954064941257893808538806577122595217888179941506860851024271778682483028760804688189642516289728490263082517412859367154086288405141944338074146204907594245089115181976128318389087441876161342651953108906935824206526710365342652082877863711482114075143341683129964540114364429448197168861501249079947135267100867445754907496603211320422319263358193156756029920748360184689851256432103145025491543473900955966257152688454380468044952459662190016860005141436044630135990516487324515424023342527817018173720127468070500104425941027909856140704836157565447929716798203724523058436809323148008246363164456431365884794123712595564777438224893344334712657626347345285460992946504108891298311235493274482006446250964778753154717933312573222541760531085434731009021269056556544307699539434079944535756844815189705682086416309287817230798947200461285875238127239893771058290470011972904486969247057860514148851399819972130042866029445750175322509843477331392728091120527609541329579276056336361067025274925041079682986180635482697487126358461344985261555102036998253817474361511108109354246671349141545706690541996392480945397502302675628269903724324574903270583017317017991600624931047149666312551882370243399064652968620358876492265322901278466755805275000302972963774263110900721886328825860093161075260106496416442087409152286571485226457484654808000291646626548262115965238611464506181579601105905349946713304361571575854426763995045779492651316314875358889685406422906911103182932825965083773780819042187731712352867628344121652420044927542224822572641973295820270105505656868277341309670947556042930123956763750346245437641887153639435358590401076001594405485680813390296399186978012872530801274325925353047095701650183048203797696207586909911706149342885108675565946671703519753868432348583635434859451249097120488333197749130595069414445247075303719447674721348889071377542537981362472550271195589313603479787807553303975475903197739736572839475688125741214394546898404806052571285249263757332782673773728365941480948746483522528814671248724789980447989223685484168561779279851113410562736903397698607208550346493101744784028482282031297367332798586168821890766208967048100995258413236755101471743078311393107686453152623500643795467806189378735277592883318448458001994719958523973748634397304886117760349743061470003191022454879788510004794097377370525782157556962339920631283720453953329585025036641892957133173125066327387642625881752177334332832638183957852493451159462843011583635773654239541457654541836812071670175157493984880292137784450075123686283112772831433390322882763705125222730039955297843804052204280512947535162634273342564634229490236005151293521569574158913509739551890320865113637362408547878638986881629321406146623492090430930805797432754929363845075865969139234595771816827932710231147815446909485486047453812789266616914595452212663238831104433034512891181621911193163686751867647378446642438407392751396700172352990219962929376876924916041669849054149624510357827475472336181994853810929706117043432613772251013719936108184557521084632907660265712144328549090332362947529782534714676590443425066195353544204218741031035232235989168387905353845942098905921327972395862807650266000793883949638719917540588217754380683092961532539665961088628306748454361698678270522124739100570951162816610175517233958252029067089278983118541907261707134445732052919178029158802128876226280831364217195766883286318179987003984919005911193394354279126255724984359130799932491214564062651247859498842050636246958277413741655028063349660353692998151953024184353467511334287496903411654028693060207541804062148172643332449774474944473843016237312482846903348220800968408674450579226918828134575475294855215275824417840730474731785489345081057263332436164001633056771824739706089652645711979773744030504794683533949316736873907861967493044854303913525027423784360647776368803007124396880383628759848938992522467237598750163195685778414990333186570616600820120651128832004043732542084211438287550867842785847457379089822518692711885952612644857663475099137917344981759089402663877662596874639554876338839487848701451730188106155375335480901932297868666259226500806447838458035113407014767868674827208789373972266188072161882559364193431573100435025067684974371404774401789615142375221217914818357332423611888181959282912707254137113935969370323616787423205019631092424186083586453292062098820983282973566230023917785805610391652664391903888628999371516667770851429887606387483847529549036144463443738931717631533883495963739241125417057007024931304013890633654225367275392407582493442954024514222457593269934634857534327287698922085932029137076640380762238957252883797382716767095160468615568974989514504114642639101295741089093776867135899979785321387956223624094383244508529734108689434561069060261185454911201809107713152319173085652274948152645496371330587814408865760430669242930774295591303979149919899099983394561147101748075489823856385037739283796182577329909284386741316582323724874535493058344890448901646487708976384641355346252611950840942603102948674751542736339779145993047059302891472063512187299775783186913395508181239607420642949126264496599754820799859409820777768649584053815726798461079452496383504621001634643213586265925997721383765797001646247390095027210471376266444284740144002508846444087100572624225509616501577182133638450946170436585266797778132171166391957936322056263645154866460707975184681633776662605342534330543086466967849614411866216638968105428559932462203836584521469778943839520658883362611466304745674349111352392878393171936797245086226005448474772286414502902050196186059832580084665022967126624077821537990397397493099208657291592021670005691157852016866461431802414542814154747120760953610297725042145431048127156043917490758458214312229142430234565620342059743441708996408927884850576474930185544451381903254655486474963520079306593376898203549149047503934808441888653867382616443507941214206110966602650720936725622127700758678843686275015466908459806240646822764722886118403232494386138135780900145184356144140782762784665455291787318700883317969876397713314708952829667442636321486494864108055160045469817367838083113620025518299271394613432208017636428577549854568941216936790029514128420533578906493915312215421211425164697910588669599430822907949367964924026463250941185973961057407368745991236612995571530920803306216584553128977127727367083804933237394121897049138000894106830925770283490827632820399886902953151891445784068702431876151979002108387826124488691710360756867773812870486374938297381908041880285403921556836032625521322071620133664328214036273148261951308154023649761664213742387516817156995482648988334812340091362348762680297769523921215616252043242450347080639734701325813920282300578931560045009558119249981169412481829970320939903259185167008448639833533309887957730749968261821389258538004100213844995431330951636729024220336863382751298971430027793598578598925360886561759014752599044664448607834711468944039265115444887347656355439430201975358275147254241538388224545343470539283100540141409256404624855671409837989179889014732526340313374677361053431651689969713380398871650553665672211286458194002271041238260724972739483820572794411275357531196022288185629030811720441977273168190822435894747065799691315023679127152659928158935528606844353896073451890712522605593854208711162713427320756360803416269152603300210229705804696793165300347852460320740134940389612562487691883334402935192747292963427042679007670724226040068393439716452303425527877790738481264200857340504372719864631543468908999669265953425191487248782415606065084623337702069177182834603909037287508637814822085392656830584501949617272976186057985663466383550497000232144055212387621487668772172254385939502925651607471709600458979883085131967151697581490970118265109446160148229984834396684912238357908853713272654213949569379313332876577782648176705709216999954270805837008205346317178440319559739645131458264232980795356037902596935127529363514748412024457996775505943316771172988320087537643825559453347116597880161374385095708359903829318785261796998097265772675857821531181308126408676619010222040135935047104609301410787052733902409961496020779081502049974208235995078798752520347950333574662600258310351948774899107706887889289283627266508966658564099951151159085431236083917588979743929337315927148434977849005053927482144876694775140624994454563304670423887660254037484278972931563343302939174885883217459835087054695266453907947334685792521385367306429187540548562011176801753497276194794314872624886351359494314392629712394735365050986598325872725375356657160476308278074528557078482949092541353769746348122441703834362222195132703189031200510072271588766851197071086322991944589839919577063241671843197227382881994488185699619891688275239768055494222940771029361208915415456471125599738197469332369757332510714397072051259954553846888718022603798104622647872759673937766909422100849642433740299347741501140434860573448672071353976984381364590766406867696296661205744753148460357865731830211500210546233334153359607993555022956656420662173235721767688551956511619046725787747398030764076724217973868097147838999778649507909579350067939223980496570862211700705418096316886621374873192338661796054293303695603542183557916239388492716599355796145166861303103370101652076042975067524514086693159099212436599995425905619461409916248421856467509966419120974929002990039136848157946186136165588623497542082009060280307644407934160479914291648283344469057426114530968563785394430551718029889662021453894990763247017276633122326667770663031423846918246003470054784173453460571488999090363920636899408784167036775843705676354635466528277594402276886468027676078421195112836606825806886458853869310379710446667650124925595280003207503961801369442325921651957748960931193671479231665504378539025030067939997695033413083763017381382759011979908285572423525302794855535901088635152065771663185314650414859303443640234159710330265205611286250049368281968684898748687473535454715602705528148605165459815649607500111463748638255355821254458837305505289589625193737642756413258726341341371523504487457458457147714106669558758873817789944906296996007761089844519824463769238109984873907935612854882558784697443011931176637577080020730195406685211725869093431455501527123493146093894610319050508784812936350641520411841766368176597830099000487176554683228743642782655288807735740138787122998120445342836801494547675097141161873973561089802916706663070550479979117291063284956766834781177970842234796000616028228646163765973500529480085668290521775286786397212796148627874211211554706669024216927939123213347691616114349410758150850677514206033965862131012594297461593036726415295753505164195538910784869629567671402864886665544346157662888889091763729361829534627856510396163531641948781018042062510251645157468202470619774059566135886006238308538851296381148049878292966089560777105282057108761064721295831220981706935050426039322859335552203800932232558254827986845610517369963044459626591468336381367990609965706273680700174146033082050556010067053536138004343287361882048368100078440803757591199929624673181013131279974057987914162382008671349227524798909006866073103342848043634716278370217745267688382541878374556625332021227860196464722573218498384931382729912928259700973916824054114297110328489775519381610520881013818106707959278549035649899097813601769006224578467205067724445867501378952764166382145695923601454536786877898776906724554270136084093930990507598725174351522713099114538225903235920069609175991590305841464005553825329689791392125316553492294857359017524969544538229473438816886587267796842003937583951068225921068316978016792771259188482157084852711941586397942301326873413464925634875833261985566337119658007517200353909181797782107637208514131216322778188554341445896616867805067793553427733272667466552567617288059788203768149638676857414393709664444075235910775607949227294963326552126903271134838324874928168180969897360115870603220569607748095862763845353338938265536621652819644197406293624102758660449287068935992817000169390146970356975994910288378489370407295289573297132331358803196237232918572045687512625075472006732740768881242758267935158894037468088586798407417536481999282728338954438287631952174885110858850678899272481687023120997242234140430625153916733536952712156321602717660401333328764203429096548710648330013459545769645501674270947912642536259435683505340978161490132915329944423688135209210775923194662879573328627049047316717514669059426826599975991906878022451260165136974493289031994513476261335818395436263729611101599686492810214254132292663225734754937347711662697331429764110645083679173512365046232944922795207439425208706990863206579388665490039726415393300837840927657076909441513726601215665746601042475777595519641036128192157765101757550700961029674504318400024277738734766530188064631579421004222065138000041554745278399465880773512235407496980806315253050958658419994820656976270945479842626668613948806444702030262078921736263954869044523132947252194563797236304519645665028558388513711765401385279232911732406914420614104916080613022456429762590469676596926458884555948812081685809269694290314136627160877564445063542415335622407188464267980254943273560258524765731883548414485510113592839708716731763091262289194507236023436259310566304453178442939140105527543174344596746466938543509761386917360265155988347768005281536604041298745799339088610876133277943433014546034814169670885756355316308973730454671566851495335002024755933055649861055441240859846256213349381558594140402308057669231956807827305460914708540680482431020434969357951251960723086072461920123109188892432038590964329772288093393839803490479998391337669660706655469777841828680697644115794427023293767747116292366192456266594529367086283652177139099580281828792455934328981740055841038370114636453233685141661937067252178965632739931775193468026075476619951817887604577035939606134633121081805918714322544010664140848098142946599562092947437497191705248364270245924479164534921789027564646969742515544450036646379757321263491889195231122245296961044692848714649048487930485849376751158354939205958884753734846316055986479676440435012281119841398678748396103464497217037399512034996558473512720919235919544487647568122941769903619128492334320055625738254920754157429615589808153482353371355302974180310701239198619027390065102028553949954041792335963908256082138488614325260571877793125905777785581194463421979913840254572237352158505145377384936775479124200356448383583270831169301867058361190568386869929482245385356333681846423327564198241239331034173556787331898085799893642229642186808768043520968826970765377925826418828488545406846957964665805119229629027170088110806604855391197860672627230451860418956598544402837895086725250972726456610812725171501540438085578866854333476479864331458645704950175089768894637408800061974789149814344485041879243169664122280674245218518083226258675204454934111803219133859309199655107452556900326321060198063047003462762138241465242394813843330871073428559819947243797369401467492036518163404694530375285431233915433152614523180872750877923911837286150260282346228782302451365643299914012777312238809926343966136463899357204186767887293968510002393540339888181718093950384870404884484871770419736737417180423422895136295719659251427331274315694594588549867384170152952787484850597909524912987176035658996077371221562729475654445678463233400118089726642390553654960098824176979429676274743276243545368987447250967284573521592097280945244174573447960308705963673613533390926549188861736240590007977070606016805169045824438189359024401074617064523628455737673943093939183853357558820988053187359205037580537578059464047421413692797119201284629523906543376562140122177319994558375742676954718091946810522073419152941837332590202623698997609115293447054291465009461834001983268091131318953211030675567158511781018355210499094419594798101099452548621977415302630616145533469270908987464192124868961202661447473030060297051507841400115776516407758742787751947704650406685303341937460083503955608129804649784420018301138752790964820216953562849067954556169572747586478473419902345182591007110948263932695023614634675350538986171956562747866008613275246857788655211909629829769178397353059665397911045127247235795459256025342480473428258838173460701131195503367146589766372416162723514074343607865773095889154922121333174475035954745546767743534281168794227484118774015772408705323702744043671051963372582973943476582255104770689573080833044437668874608740235392351712774130127777711130821556931775489582841883255318932145916583427412342935341867638668181572324623087590672389648624904471336851475481895190158397137711746547700868844468909998813423972199350231850772665091069386411680815563900651472230224147766206171272602678682031784703200780098952510011658958466227155772650134330728739269904192598895185485217499589293982853427319257266856983125288460482541820129828263118397719721890597453885928016384476072540338360641754804820000828305317652829534587786081570096056497093757036381442719565465520573201356269484999644415496233308438033535527382814972240734792344898879042191433777502230078651531727756605318141902497276700081068256830857155035281579827735547835320481494105819864418702941403852125091302792151069175721178063426900005533021680855282923421839552714624693991583815989917074869890055856650114028251846833058994502808936135836380126282977571665885162418552256794458886457486927362001742223143435666624627355901765245055386898956013436142277742812591886218178733499257972112165512487799878970817417394537624645661825860323998560792976313562645209088809710812883866194820931994300550553388336756975397076791876775960119534810226041526918838632020863596480935283813223260613677619773627731149869122535099441049463987129582776951307226195533755163106689140326636911486607673353671484036496680101933086936324939277619245032374990689699155231787423949536779459513918773955716874043351590441797648865662824764447439750279960165767543787048558883450540216852171033131508925727739636845208530565359310881411646552044605569469003625847786999116177415851580823273200794335073908573280558463232522394310928506938551262151624620913453773089746621026191635451559228572034580694433372755131734457311301763301032384710916960402656778612700458300614733076131977917163191821860104010838841843202078828972601967697741658940233829264012349174982132889006057526160451518051570272172362917738589612149960522581928188591111375970784966998241323601230906095915089267844559923723510752795796698107933394158459711489270301862687911910980655854998003910435728113633470009275685418426602969963541326097195563002015368366617779362599597014316684718893602925200438012494577401361241218353298838705425684121287451066529949138379747697857657487675046456169955637083331388362929202642712240119898368277571540122854981518159280538332468800917446252958616226129288790898068741585755275190072692610520214752980019242099665499868442031170942637687462653300161461971507904265965677391243356366970364124346550647911891436934812050162862013846059721392077920806731228724025499099245458023143612975540424396813269018940455239906194626249936778782168272973833393659773825795539561350635121279862377627590119513844243695388675064206727484159965784083864477908983756183434941148058064847723171412159836724982874266185359501680435710112575240014218281237769568879321114028652328875888148591332521175484930768845270493634490825586839467079957386749417391183003337918241524621672332849637829732906640913657866978762479463732426035369092397999202776495834064639548034373730144357031165408249698148400114203820025888970244006257819508465318677492743375773555994858260806762455860852058997090848211040453876993119080477515190377488538071568593325317193005735610370668218258211259399341145518939346274677408713644349649677215785914481601317882368296267504755806122917773431423833460751366792369601225421532408583235402801523006905233986451469514327800348438251598741993990388645452593754509570867722916692856647478835984855304118109682467780190493145741271903503612759191939040229646814425522428451157193432638157575737058192366886923259367615312568933865235230218183038979571167142511963398122448581077568896303045036657595438023229184140848307249151557842891056487361280274082643355055364111866479836964406833432615805848327145097035746466701574623992533737585784600951204162782102588601847851009323479856669444312504923383658390102319974695435663471752793661328196434895109334962245548136361357352975091032917624711724658443154866118116465362433801261797827559856682579531716966650871396607741350136575199266021914558712478450181745831794928555905407836125938325063320661201382668424609620587432550476133118275332505531940745181404209523743021925040285292203305725593439453108107652533624126091520986650141907755186083690511587465312830898267871652758108981566071428881867677140437477874549931646751961680025519010702021118422525828569422344884265352434251309492176695864513952156485163033880136989931094941827373236060052777403120241798193647605162123158865505613605308133937725131649702414869204429770696767274414761415801467375416418604933824013088293292220187437517872494694089241732915590760498007797921236319628220419810642343724094179271915213672690458887611433789927535770614509659102266424990243527806566445355978723093043216426155851019146613182120963168573012436409625047464793793395163094080788957885010794340144686732644395940976463910358926030535049680316176146316774375665802478283583370260481754515260792144582719285088198047001212471710146953187111915559167084185722355613596575592679909473410342078415161045765408202270260560390144829158662608222188624069849428429848712118604025336804049654500369184507294398659753936261888561205345271308745359069064457704467475789852723306582340832660106826822473358510402185998555822723233586886886015789035141045586073152510795102791609087088570935394755254162674789669903009957669902541668087537527383356790549703348163950170896658979597564980061007919305633837175127527100190121344591783584331495872309955186963493616394848094441511500611714551907311590359110729079874972441479780009236928694520476193229998676604813597051511561776034825268861697188519396232121552294702487595094610198050908757699160110363439213157889571929699160517493787312347919174883227851170202666025960438653941743884708428246234044955221338294856631341429059999057257108658044388340020427187134061168296702880093196410077244727935188587209035487406990970235463113250680471995887400766338786069842463459726381162398482094987713925136532586519220679527403235868154172379099930756245767161300903370404643353416148137803217237469998782722257935435280923758928073338792064461664018750231646567293586839674340355077043405733686659670943057266079701856358880609891594250083021998897941131228444827501021060623266644649826818865908335081198065205791257025164546206635471837194756847047915467448489215687999500699912479639158325057202700280110426739080634442026049282245507621310408241599930295968227256293836753017010444399160031035981700450929770081419017784578440115366554327326470498061150647727954398446726708578422193211104964557076078824290113726988478709079725702261349246842929400105740589154119571500182800871288714422258857915108930347508130359678481365451787154661687447336562110280285882136587689298129444646136255468778124147611790932509094841168352528680550786074168762345069870241146901531427898602591943959508029981524790256338093848380502210793220784039593726637739046461074802912204820159910063361039040682814937084149798913330557872452388881299799492522029400974584600004124087440387190799161074614313175122882374395708657716639981998730073525873038530935980360554041875327654171448060908129467418424413424773120829826068542685008766214007963902301222426018579368172516822268099092596334780056878651115161394440535022818107157230518599086343540336079327089597292931970101039883442134635918519480771277540109548270218179794868561419618222814536550296403324736483633851391812665136809322169842699532702419261822436764274289024231613132693330147824590877136798028914350774023071590340089774334331615774561038044441824490449966781146609367523424938214116789453241555358667011653427217633257300221580809315631098107677768815521556268867710323402294157106115789796101491310080120476856465194112415701022650092690055574372086154122450459918874979250409451190428793474848700753228804297797502475898521600009707516274065943510213573360169205165066645223248089809920312152584319486614437185168323801693499690026869080261708402338082252153283240680137648237645735478032704716049463190955602851607825435702236619822087550835447739789844489812787984712144879745353267583742273040756998076762782503559766132783531934998529611959362450040647075151074591261873912548197681421560914802935985909934454018626126051180177114328814477628637580913456080631988163337614668493373292560888845164002286814085152582487972922606434707228286162103815294520135853951793955394361219131928516479464575846994058747711852025785493413322832055217401706830819133848749272884147544499673731020995557796336654090281446875890481565193909524111438693029816559405547904686022007727810765542991689363812390535814413830108409445402933806392504350163219118919452468019988699622570769836144524972739244488808500938230590018431277105296192763418417941979385028417642720905539438882759448942562940515900298335183891083532269932458555167972387632851552733776803819798430948841312539082674088014241806801248865595294160564088658766284530340629934363960760931792815190637023858622303562305976845799872520827242635512504893914717784999312282475027345530774480176048038124816519547537290139827851364447286455598646583400932719477682367896093827957705606377603144427098796363246757388848700853374425299285102491844450920433797111211114197863865312957047429244238246766188003531489797529879266608068924784363439380696903528501582234027489770611373012894654753037642845047645422263703832828004458266883788836053660709146081136725156595272064708609063752056926210449506427207953721780108773087167583776646848249800585402938017057128802417742448321065408449832234356996466103539564244855502256472666106638033346340884653619059437635881401493787917447968662736611579501446532821160208754887141535264922867888190855639837318821324857541333769361515165999061873095684340208511619605876829214911074677212140710225203639425306509182327908404653941942760473834280327335485601184993311492424274294185527184415804223797265216120323366599455563072903856486786103017383067623010110210274589124537167343688564505871097650261825617146975547582391708149002153267160531086953255353649835538691141301562423857991888462238018293065351674329536130668882675082454664904316203326013629883349222546136667168735196948897804671224837742443313818880070889359957863801568154454984279032520174390863985240772348397741007976153244862202578347534141166349419520264577434559412103987623474823000389463404927509063908623410978099719019395949518967081731551658776932749916752890237159909852931079955795163980692220258327765146906652246210321210596995017747729497274692313649627036193957271933114804734248991446373140987476996981174579108459093982563477160751753450269759512882245612766773288868265093768706961733562823480640617078342536512881833536337872458661065458198657254435605316335083241174261568293631925426931710219766244965117735516880386293241166376350341164886448666719164018094570102424250323136251332458360109153255297431520163783352239066038967546568421371144348289126797284941636212706254436422188884594361155836307336728579813766438134145493349323809774641307439945670986817460049894030779409358369351304991796251526118296440537063201906491254564933838533216420982990525941202813325278686492600315329849471576233022291562984613857769758039185435735321686921759804359859677212065309466604787453442928843597942727698573194133104241601422374055176010046029933830297037798803784639398261327552610233576425071431972344136780922444638132748846650087611942467518360821547806928345118104339221178829205783870076323048669474689536378694163362668688045952009682039240931308067551447925432842431393482079159002353624768276976203034270443335381895992020613320405148853624245815791676600719535772436067165985762684589563281434150621087458419548235675336516611609154807405895008566428126020554449946762348779183538219952979751060260899002380461164698301477644019252006636848729251727903713261035469434459572463650441430053318496408957555614785519284903634342904810950506721479667056949969274323307238047273719451199822577220165149096587306601693361658694924890195957894250196688478724357397519987287738332477394508651907322091625547659627590996417639045663740049374225198753903913732265350427896579954267052665395094661352455917256887850689100059577931117362393288020200981722892945160715841940860089113170312140102800179332302451600980947914826512734771431972291324134790223333780729751747439355589987339399315347805004771202754100655449768425248066492602868161110501333132064082568691719618789156229022375520851358793135577822375120946496660518593417576333141480495329333612292440049906769038006557027791677716986185214996136858080928817150671527842874638886757935512220356747980668869500972916642968286760208481911535324497821268955644963341342450443320034477008383444562565707565949116897794988468114962672221006846197893975000824262441267943628489955852816452192800663759711163398284017708832349466080813842345862153097866102164604332419795496421141396641003003838770307040147997931298357751798726973925320857241176694353551854859295747555374662436182670872080582745653204025460804916032294149101411366539338607494352239731020997296933538116245623148565698515144826611635300244980673877296527657515473790517489181889670446395699383743864956565916547505239292625597810624118515480650160883448635879258376526798696103187827855684472711636228891865048082480236495733844299505661586338685054975612567256232364220654051512906542809138083137666903037745445662655567681255860324326857638536544574439718009380614831033219578033407644543496450742361726774405444301798098369675539584160113548688728648355465994270209079058570293534667320125307409184436323356700752872798629703214631668083492575448425369474228575178428131491626631833023405912416656172601871216472456648643717188376305238697480111835863518205436351065057279217345566237918735741475875611081218513177732670836990820130068136171097660882863413470306935017210532677925527311957787737385024947219357412002927391291453636970853187424189508233188944580918728493891323975011865535653061391251529751610441530204206056380491172549863096375985596434849124778085484964407160650464746289895179754257343117661553096865287366797286745203992665328472114566124832894294514220581723102961470852135175638830876814539631361858109310396754432675881483293078346727986549513377603435345479484678880375438474486052341104730912207289255792577375746623482131094988529931880078758519612255421622406890722127845424061635965545285295913102032068347867025279102060769713090728078303558217309907916312441921298593005975247687367825316330049310950900989861560404639451182445226141273443355787077619126037695087033187857964040102856075040284922043900379035992460988479454327751864247129108441274580714468176047117468137145149385505413495400293431540602952126309986545964262365445326997207330784583052777924835161697087111315622400829104821961978801040203538254701074837706402405986518202337269136687959069185942120435235362312869645182086186732068306183621654713521574772421370178831209667259406967100587344185833683997108876702614292483128932506220446930021338400211886833240646762522780058857423128462669777482530456084415423633955738968826006018079965252014394231238088850573408375292181841073367819482271239316299417408319279810351300425850083085012699444844859534310101391212702615086001429155314829935966059156447295619099776282990177544233421590714378963302571456395691209986647451917477756010751537043486573622930992009731244582252555473809071105388585415490928360235594623319492157098223713557039663394298304288703967148118377798991152753324496685686362288414946097314438002980383076626543225757315146174094276807170161793164770714759451533617307270780615719065392390570162626997043212293921850405840342532514698523863014917928428516176321570489817255217441269648739406175909549213623707127478085945129517210310815715487850936393094809806329187009547531748336344295445679499482040602216100586949455330389329018349521813086025336470449054300037942617806610306713995667363920314958270502275483964349638791797035627211764459571474699498620863996687774117005065405289476421941847441661202842423322159059808744383891705412400455678008990968243682656225767399140722575487602311690092908552383494686099130048427514315288539776264196612632363737299406145209719758662118463175532261771373717801972283482117538897196192670691562978898844360067826683295860182898581917868931180303774996142216664925613989449893500682759716994801109230443741628045623510127393040811780148866978059417193814445147807984821377510345050304069821362076852922941166462042779943541787146147633242645432900356111015619217657131976036837004328538946688480471204307760180445535106383814739776684532054251408704091389867497476144566174278685420120171398328004860072273823986330129810493819639036090742985513797740150061291037404521372410118947745846024231233948634958281231455970185452029971879833355443815948935280462959234605208468413853041914758947880706049902012993659572922999345110747123430967232115939751818814175847499031307146721027218487984080044227800409470940704602624365052916319874724761232809712376666441255206374362488774602831983623859009064032125671164677980664308909498643102720762945959992508745122218431012447283365354838791636538690626422734567889015585175299103366046686531412382999154125703684745570828422034607625642832749255787056772594542146405356351222072359120886982965047925502007295331972941273531053717166579629293965265240549468547781473863854680743046285678469403150039171940682332462499755523275579596266191038968564950647539638250836588067958438213459297676776969310732932372563066196337452799829318978157413289349049690229190334258428146979927963916353559198887133019535664086865488331548781228572674358644280562046389874126448026299980244767238944594761718004039328055668232092184681530825695882429759751364239780754828945498387976013113924890777162650413334667200204063521585698961608978097636409457781905748023506410809801153255035841284379468308147979210745296026512143826128772344002332923864847082753781618257960175200883680829390995256365414906331614773072223784925275906616155914322050877419139277387790968774823823953641081250548038834050026175671207218503453784401172015471591056390920956907719876138477395949781876356244101899227050059376112840550832436958166941883500271565091717713738726400839586711979872678039257901227546912180632979221475035094821743035202004577584547083507264959024936331614249497522662456025909737975573506332455573800969898877929132696584489548528519366751232131672479831549825014793152865669030792243541955920503154495472583242197414308702664841385411827703635794374154882007935046442904125370916654821856325243800051296922878535273967241527354353644898787859251220508827552838368355858882080238336984142090149538918522251567816158021120497240393552131347637830527423529794405060619077480401849450420518188492451104238352089211275264309742177154119776765200369128832684931711007378287528448994105134815540563825942201171709955088684487554661265180290799788971525075949850436170634757165089464531009820665630879426476096547348094096406785167355437599046880869981842207509409824457132383510481813467097100795415806584233713031299210493994509746399736756009772296419202333089791642368127243451718610462024498765712637309748095069156729756835583112567692560775649336041964720618657037547687473306312014814256799715618883813380994866439868526315758175257274978354543846232906525773700004092938071719294531850434012591499920466981208809504001521730949180087685090529023634490934330233475643953872633194198545037336306960623300410280586856066944480812704112484273460116612158046044740868139220711865514374962938270373183832536708721400833098103091684305482114270482710376921202527932591522632119477123093726924513801772803651332424579973129534132641973025607136336264020224134176168713010666803690100391657676690134332253702355279667213444228307596117694432756784665696012381444908173131812891704744743086252089003216866437820806368100227380055310081296965442333353203144885568688793881862935183100766745627956779148492558814169807371480008098509694125230085240041183777299062991958252237612107693199773699823535671868277000434141972406246957198089929796975587954710312377689204704276543976850931451752952850337431084029901731964189560477411688753364304260690398469933506062304181378697681213280333983603749902476541243586713117477939987651744293733671608551586349603898095697619456865622363310188645841773989543989955457505214039252806118854427852724839940554306022337210883677945083929811382382739095206418791964486017330550978813022948061803979015243831685575783209295154458582080138258066983506013303220352306986605705032024769006893213976065927165810574068370338076100098516099628934624126061715688894861981245167899261751234930016909808571890160668206526995733347621179311609803585886489828419778184498896227634542144724107670836624071785700010503652906736374918064193424218897697182535338008268273785554359035227433002559693105011097943690355531938868679835384600994731569303429728696304454139060871541201892142291626417906979799831767945768095786945856498594996293983691936168662649724799442011747030449935191842825580653014382227332930636904894870010746407755416231865114975746454030216729580380278175873172564556556056928663268070829016764578214942550800325955703736834734801201990874778218103892162311059889536382788947626079592288279492555793906599348118947768114884607561823477217425628357733411634200886699439236476286510195223184806043103966216969726386018070447888517092816389072823331322635479522861564850802825001565794636846738955684698800615754149459270754468045394061524278546170384296622889593549810564324654858673186450889982803228206742999069548150081423375785453306305198817286058514623291774522504937756389270118201162068539262321636893082735677377568214847262249700601458984844932276094593688025396804556412763570887568821708946850505381490408526697357256592372555492866160143332381188271597822613085213799380413901030922815863013657734883867185654699274418993371466957642703480722537965302479456681704550046447563309966511190521430557753429582133646579969737192824553091658071219156937279455784139732277917162711852582102179633960346433109332974904572830989683542774939836934043441184690829514868955625351854786251737837130405122403379083855608869749100022995204051129940665472110933358885076272023500890367203797008067360152510975714312022512968076048632133921118342755658054499789426993677861895415690899215080763116885415290004923652947814274292535290571464745947692608735605426668081539535898075040667058235722262995501765551398708505488206021662188212382630919984744681543715911113874649841850958599708452194065213982395408644933135946209925909764335547485095275875284227349081360674315331563213113008509664993619723309914228955701766599845928800949275788051835640584175269179455457660805662313205185342140477815351358095817885018048619965853949830154612282844498912479562451399303909057834568978349728749975431096920678630091083659030898777563013732084006085881323782223892249272460813671521131378929788636527034813256496595123301531584735249668558376625267736666920715394690489516095244810476154352384718723083770116396482914366883649513252060647784564978570896001326429567246666766733482195106173818493758470970004186991571430338087207847814338722577771787821783684676442323032644048765007729008623042072974534932670512558182040328670242415932191744388782480884530666890305294470751532296679517395648537314200321353466547926437904743780567870995020976895405432945846420604055369998437106587553006713919237608856241191604803058734134079787445666939529220790268051036052583781207607116113357883611514038042216309865837421653793362315339761883412371471462373073549679345317835333852386292570785977380979745952531635724875390369227034339211995617546595879760656562151097592109605862451812467080646839317797254371279644972274767720224341834275790250115443008613413709017342172974379941947967706155166181473149464512184509309656987383551867630427335881795128929475765680020010517138113372540150634642751976401733945649080629895001108001158789763406116891433831526356071764692815628437785845206028273414281023821545825842488231413710120533410835062697684138505318915409286001141075755673823255437036075449734923072782555092904132262370723081006216853279039186735721550111271643379608759300170966219213865239353046828821381878177168568686605366289820759170197814661976368672839724484577329578014206682020704038467720900897025849944879430640238747329309618896665929996664989473334543557039535853309345376422622096849701763561282878463741522596303240486350913083853318213294060985962503346704666074163881877541209202043544422158890211420386032752442047067212843977882764015912666386486316980104107739697658498588253753823698690071306474889167086961929004948424739669934629170255964038942187242032954043254365879279188240739099742353370594284150172143283500312524880330324200262157578897310149837188012123823659332029406953217919919219970874728251402225559113454315573305478033326468757562317033531984904048756433929627456663192895731550270054874232640173175890777901525491844566912277643491940955911940812846176888042012958842668204629382702183160728074585287550207019591331992258580885723599428403322504665577541492041423307348874302911404025155739507528564462343643013381742859365865634539296720458955410386864616268633543635754768422309883347222306462791414617285483901091674355079603632562348694203308440378630830545930086098262964941996270903235129332063970244782681321474546730601760553665314501014179502235239598008445446876200329041914060017783124122550992236607785068425233447594326614650964838077897329898295728225703546325888173614280442368977613321409455487357335260783060616752284914333750084243039613436877706683964941488700716934844584211577826924395264572501153467875824962977061564015368554268453506551141145607670177401334989685820342147141891268521921850517525559976634565159489050721441815734239895294531028182600331530597045344912683253605547727100343484740949822967456417644299844009161177196142273051912778716326025813030152296071157680032611218668780872629780516957176374196540487239999621719725923189875610535418059672360978979163769802070001322629037443001109087868821485190638117270979354056205080099342445386669138960497218469576879948051720570221885995298273532920740568750037333359459446298347497283952103527573783716136132732231015510012135849545832219026835669695761805692328998531363604945691482097463573507124713248638100590679045722727478484948389973816063151300958906951613220514496955387599494320549084414551414947494921106466805336511499700582942083893566063396103093739388125894025571909855679531712915731622556446124239949554321133620955729845372616237300673609114345208555922642423865743783447755025677024651078533660385917590343454622009555140733799484495892890214293642986827518550042182083471351985431376041899647986814487418364093074831851766460368305898285433724465088741036496359648808253462842334366731907573352880963744300172460688487031217839858002925435853958332804758339436694881955003399605377073274660445551368617701470235998040560364717557580275133370450167021655511911188211223639812801317964572083050680018346034162748917124642662495714355084078105451982424029129944371607083504894455817761107141784604806050600337322098657804197673950928858970680088757379142112575007307262733091198802672650512706885055284745295197926930934673962164630361976086647849200013449248093878194433013065738902521762583940788783914992772037288510332242560054807552781527979175284247802260385101363629880868435290416525779814887339677710030794027322495129257490627425827910243942309026500259540770226891680720221679512956518986332257789553957386000161338054116179177322288216039611106923402261968642009939064612046595147249609377005115946210318406902493057091403158022430565380395119363445370141720227990180209846200292432502482262196768860217128446551787481738908865736215484570649746484754188804951711926472622477329502073118724359492308008881184323221955098664441008852382588338916481087649414446640832067615406557385467995075910170337810645654441651125316677406686008831166976523970370440607594685507260552636722287983339783241161999022141426775553416637828691350685732902643416284505986761307318814108663200297277570986281732964698680846839072470990069598852681397208404573896673654747817961250819361214927291713339967730284572783706583958399062444126217963345232996459783632653239019390405509878113335423967134143847100918958456479565156598171986841868825598141332724083335231066692630462911418057560169255263862322472185461340394741682756792656202819815355854311286497725555559210297015116700875131782833890915886182333887450973843813939348197473454011336137399754645884999855074314769783262519847573983978598689397673130553001617166461829030385258564697059099147668874098776089895289022262351888093368908352374268825185486958020560067491823495997893331425595077321072860817348183661206490456592076433225941302725893719023998672475332830533853891743608957966317443780371010891859371237759355999931985433269531321826595023110723827382975605723081637788434414634323148065484352875134719950724234456704879364652308191825013495670758180109713056418653560370458536272316525335109210665246547423793369398217600742244232577123579466986966000100453553290405281794001025015858105527790099431002090966151045742859167494683728001471528628890853154218345912571008806318619261805967725148761258581639325423355307039290798238650053939220827641278765125578933510019558487447886047122811959678075057216045224217247007205465337868710943521943660256116130707426190607305748267097019787633869837894981156989930634566539748925363403988227848660801207448412342793814951404568403272103719478065612018266455796170798379668081535150186427855658666293001746052588979694575636526209361128177102204703287895591911883171375536157338872876341837913202776370567168543837410823155456079691819907785972721437740968843182060125388135436644678413919842129185751133017248442029239343300587067215032358257058586729449769814065375628210204651774220648976660295123636292706978205064662494768499389870914726540565796603315480497797133454235022543916231700312613457269281482912067604441633144328841874082579927467108859091606967798064861778482290584394609718995621038413502024054983983020241693845930457484079454670699990768363898691019021746638141454980886702284065702689361413100995315794440802667078070966823719256636811536596137707444861982376840218250516199157747219011272192711634397350302442182831481153205936131543065189754334242601310074666553165478084480463691829086343225107382384516148049391087071810867374556581855224052001092826695304399048762996939975334960120924818727998188354947666899227782200849505996771990273664617137584546545295121759832704639924204414656998602780312855265010654702353898772111878579546269778896205636766572178513167061189400009861749672223747221191109181283068294342742884200565647062139913552622531318566250556593777469684321748895434480838076654832717068507027957920123271028304209181832462922316457468887523720880326818599285348994789683911922689512434117896021367858037149278643330523080276267951132540755821546719642646750307034880993600460787105931130639299821659324419660614332376907557509838659669627203244755575519435528661959078144973492075031327264129334526995320613767736581371269120151283540021756214500741537503288053060705563693720388383717151157605701136486360888278060359281587797979624237072599510674600890548706011659753270134091478934089884023125482852409400398692886540486151837951608971677772736239945772337341181559649229763998575275329162213500380641543152747736998641815133135427271081254351922156975950129740894398096049436570474630635430102266529062974631166470852387157511103595429837473539934222271334330756929149392368073729102752476728591639907109577292852964175688721752770479546326156666205990857997752596440396796836359340558752964145523252626404008182480325709766949271841822809362261254766829826995857436827364980571303847705897767834381257806819139083742590983177330121294842813574295064703222322063102662864759820589742538099516816354272620831904059352569188034444382947110200844463682459866856155403774647029863146903032420140758098738362270442945745995136256461975050548147289013461703091618411979393922064124049585675602646211605967865777800775508539157432712335558650618498773339858795812841784469843511063677565009976964426533608472472053419639499653956034927133825408264582479021760994360517295396044789496428074108670020738440429939897463638033466195358721047991867033928729643714672740774068279124326868508783831706897351374283421311543987493800204436176492794648886622696080760755706260191921249843412631556261623224778432758134715462033150901988417188622013314004143395394164732287420853684117941614222981023129816012792322727965108064842350234518513494315360491931544371001507134392827355689688670004120733759698412027151183340777214200275976734990998558487049239565988023567725491186502698920386362029747045925624710213864086986336331651474333477484145922895419833505525915414730302953743337780222478812120997402070115900687157293577667184542421489888134928942920790227199201792416534714907325237462592461479578811013725169701982170225814319321740678943233171629142883182091856844070002273066537447945996006525108556849440217007475903101687841490603880946707640948063204439036917181465673069819515682992322680506295703976933724476434903681616125662875835393995202150202137899044324312462845526925064448848089413021036583173008848008948666940009044359580710004093874323096267036850816365505871191021264685288791167504222014309570320863831113181164847664768169971356759385965928495319879282059503076864850293929101445607616777775367606923744137879827644628135222802434080901795691794976476959472534993821926069579697052571076156455648505835321677294584217223678151889391668550891715131560492034282718347894643412182082871750474132975917099992074362916945440597242037896854221915254216538937725308917125443458641928765865437867798500657849652109589889580192437733409721236322361959834820338488786942899819290543687885483725353405432338980267596331068241524799764909178143138274550099248115242614335913091731298262522949378414347686358932115816398920056154290242410975246682490270628184752482736889877915386295015465073785979730165878016151593772701406357782951619756638310852229644218086302222490897421653153540064927545884685421689731116786163124480725972875327871197530679813088167840912834335046627054466550885276051054667871499422342325931694218214363494598266514806899524395992407616260885238712475933635974903080225258121164908934134672989655588316434316071242933547533237575717747263349951055242517094614110466451794727509730557779139241802232797743081401072913485954917075417500110224405913971432832949095781720934238621946492265335109086080023312611735480304371448622692926174751370130048226751238586500266646899893811415302772781882681492106006045312414528363267425140404781768013826478125899788684984860559215158888436747181856426763516531477508162173005574109320626106204859811141386869305165515465449329355458196351818818372735094375677986171676009287718616724571549596239221749776695496898488970376148568288162004905426943570296289551313823896600098299260221488770578064223561369427909008667890638499818162066760167515864936383363098630012575757307736780952437674431702667061043144063536779046001341823414469532096698957743024504543182952894854936831575044066927964898305944992330934732710826993814287828387571002893296612239799963839283267167954650341924437941902803978332977246018123012638934761455389411459495864232496549372715992916978092216473328151787656216515976246184423726697090726368155997727424415585550300254827197344763086828344457390996448463137285006970853887133111277289342991260218331741029058389700881783354472688306583629976462675297996239181181889549949540719199465357367950687095866249642525809813407138819670717122363124863963884389779295768344073202859115206777714950661892953708505667447027681716867399409130138542899802281670707041785993192974870382219754764682358224131647492263859437709119405253619698961222798746625828272248848196553771003785325809771368665645416208083202860292371190402413592343556986170370047230282414855614031380239216612085205024164935844643387179467185121431776436975656316005022753330442027889653556286911587578125773189805544643344295096196337844581490331246045610305757625540601841810944629129300662002895227786048361379310001781142442720403010358175002610206035094352695862337009264990507282303750424129145174774953710466144887701425030421535442164951693967661647003855789786395148830222593543334977563805311879740242659104911250534023791924214032056128274720928157290646461743088091281546623123860240971649303163008909285943262775242762816443753697381628647911493473730671534390349744326106895413931296157785099181844768285817361672725656300490111866742676856855229534633480803805837927787199077587684764316157262322297054723683417671224212024779873586673647053020603671690881029687021191873787084518955434936598293586627501557286141672210641736913338203336275868390347052968148487505492797720090629164171363362248721195989509959381401546776689914616057728979977232491066269881471986123875606543758412697780286727826913705341967407900965919871613326438042039027338943076548549871153268482702817503061282592079448668758469645245781327952097204364548340374489517158998717575570145773828954641391555314712576931876819731891612389774024774383923517459813362252384913037675382103247742932024364589636234691397416607327752374139741123869631713296216760690482265428649591241953600146738100289822713518000312243597877038831260879671811171315916766649546875340371720682722171756056332786616151804811908855955930594504376761635033716100631352513619318267531030552506725441679798533188981964813659551092881395556803428009758952505661505444906193945411868119498063083988480611257049693187767183116260570154758294628135624373584370714822133294042091369748024936072637973335168293659441721952311256356845245115355511533706280459877358768211061145499648907553583605693839621300706088157468408033611820860513504286806229487878647946084135489335447099021393214552861355095905653446203939610976851551761791999900484084313912016149911990509123587786721370216173551852251115901751260568794220072753693355927658858090205137154047688096944809108769381630682198924209758701134557977729512066625890567869348849804378778266573719342263217728886881457894623618019513796551760540483211224628086313921567280952652875423435603482667827015592754832898537395659582987779173132508406133463753201107575655949918878510816084108140641684801044753524364072827726328968476795946604581002779576497828117593608937291824331449986464695381287496322979529539987800009657190966331895360921417758581397394090907504207680400217279741934382964295820118741542368872309088333345404065432736494881700275353302178234289357782424510085819362077874061172184722886206964531984443690358847210639422967845415307513544743163904073828286173216427622712540842768593784056374948826560275451900956404192569934567672986661397796936990380318104137140359785243500810822505198125241493643066314098842851124805696182230670516429185794500825723462505312228113334217700613528665233912268736862603592270904495582954083810467488417844223980951974735858950021207675252869187070804030888913093458339731635414174170485004665157805224393909799711689457523779614218482588804161026586396623131262762208854357949817318500534909671320942080304993497163404488957023670861235164569837280866570878769812505139101777468883068419221008623911559932034970253032660398005487749845022097384127945723664621623281291682465933160912256182094736618170034381181955819640797766662506991669810292053303219185372795026822887625987603511165736152767914978670800191535968990997453286194974370147323623154124607974390890559909806948867162938229071172139127888695480149188994624932012304420699339138528882063216570402963276890245244436783455133544642995628628741510582167771866867874086553937580837561666022223152247036276535929855819701822787005036942906041685334123862683883240738382481881671554014641843532396825965988908619922430136859603817761008837359450370347933597085914878983060269024388661342760489673251119981802348954211041220836770504753483212081588096066075291086778207093262646311640738058390435570166675264855290489819069755573088299045062805217869113363025642437696230898794330569473693657173889500566581489180554451501034164219055164783212488548936884210797616216143018798784862151849263417140170798787065127678554067392744329328974195674328906078000341248094041124603142224973991759372796881552075350400011251780197654122988330541576039260646633122456261260557593210929586241354110318516495591137120113374480744026585543953138818731870657270628693105686641445872778586861885556979958828465865141568678336842243469661646646961300896653647803383830859703928816661774945062594765668666543681154305672038824674098724834882825048958227069256545344350102116216971148502828012840158699404599370055000819790349815297201625013667639860076787102369366071080201466142367167233324536584884371940143422646823375648765425988424970141120654703339669698960836222212536826778365624701003193673196291939623373463810698234007485832614181715106060636078552575165431286844890646860350368302740661935570467647995672727757344062793866092689204903615627454713353850116927630734315366344486375952613873458337876801831239979681183993173915989662804120434238875905070128073647242772946533837789948961142029563073223882230691921791980315070743297072937477847314800822380750088200234114860616605655141683682915863631487767653876983861009420408600827612849556599400006153590982868705318734661403245614954497293979123398158030571371923736610600460282164444925076271628379963717096664943752329676310801146665088278367938234412120469836603000526819062633297594518258409232021282341507853387438979434442226496754483641500382321491093410582218548136402868182523839951766664057096653881706657853288816442120417941599429599238177136714235324697494091321308512901705470785139897353147715873591630894429319213559451162188690517906188368408898514020969944589330998618610838432857487979112211479671140087871509638876520107489854119745869559732927996076837366707799666953015293869459122199972434527525328448353273749683529198695495561715625842035668376597760123024842653655805389147559795984274932883997500632045004303059278990211940328925306515325181884002376995820500961325372263330833042937795788552690890154163596670471430944898187625397296633048075389464790054634516046414226783300179453783250528095870698674169279073572722618130230047240342044752184035647407464044709282979446812439841403390179301521010025864039763044405069255098207939713700241907738153528940181307238476461265194152903154063840045052909437128450214546490667914015865370186379526737302792604982440021881453251409793880510895808527392999921011735824269318221150909212759336150549030577352957934407335186154906171235069121146586348056459929191447940250135824864510313321635754766803400759402748887675494184462051157557767023642770026723371274429970122108734589868652782571891536219082274328302726547015786603560148801835508133252107066948301113003043823782373899955154644209074956687969661977832597608964508187504401230975971201890982025291478093986421765110242514745764611130966571623200277413136420222260872447672483276136517798295848134536207811069013268275713275960955858395786903196142737207105478284622463153471295074939211735276397840432318653766784106567901988191553636626040812615280980659233139471879501663381960846485181156170126866119142866691724772029388728970191348677972850004540461761744559404328522195223539196556601102945325019923401995387915385333716413276377457952284977069116029824696300933604018349195931307452395853961157050986224191849306750624143813655327757767566527961792395855257563267905849449194545560393484986758421744439178220240474009898200145935791223985076368540660413551678465063107473080756053280897649991995979676523901759574659666457583975009701409659043925179752893385858565582112911772378989075809021334605977943979320459053441771729572005753383695819577067691383980302282854390129198660557395471915968179969440033161665717566544915306757976072731777511548341510346243377032012708235113939797494422865212906989558552514226788629854867322605391513224964130620531431641541679578589553369073663054074987496518191549665656968808694670220030678569965881445364509671021792423994949070967138810643628056660315156757318533139852466670310771173388844305096441657362018515192291698523682927837268607994596236747489806925977253823841887235561942962253197802300275406243444059239835163696609446604521673267624790890469607958550019315255437593616711565223618721671051625855383625954767397846703235003894926599811468800080902439394253006445514856732631965991827445227394284709879450281675460707140549253326031426316395998995845241534338492327037221019192739048030780600665197673810603045162939935062719279245251576573578561406014838740315629597625135575463624092156784028114142989209471334421325655326537120596048966807898809683676703017545645117471913740757561160569161527663805124409696274266545097370380922112021391785845358297717799921706159711328540924425655613858509991132421525723779853537924381808263388623082325527954581463524768807111148492836157694243322919861318319826342468178341731541946190869877128028313811227767391499932820017750520664243844555616847677692996525688956899506341542535833921450173679231533399878154886824755204201554360201106121809894639715570646337897961576015501464692683888489709887285609756501320089903966863588415435080361611816215313690572465854180915937210109456979230617615553392521933717691887844737459133881591727147110441326164615721096368130943568561258702264347171549183257823342168977502203251989842862840786512312461347600389829291444258983159753682202845550749569091712723995897890131860679350804821899937160769274967131343892615075389700144727619485514447748854138294822423480414324504041749278055457047319401252171053947234824224114788872296356605848894844200357168202486862996816141897806686794672120440807735119177102054544114905048545574954466269848625576888754154893593381330778743703601314486833626405004341515936143322581300634588275060179351066738362744808384805614344878899835070232743616357930374031324791083358989414972013861390317335976982393413560809425375788675458364437003649426986793512868782136646877590201136791306434613036759782562871531740278971985585779974008867268715095555018916698583791648224818477156807430152306194903195792293370768344207442742948312124690479728115526029448941101137512917139125134357976420529287428277562517423636765463383956479807746869173499936350773105547278148086457872639798921630391967336949429101495718209299094877022151513243019374197781615508566054306500940348833251657584378458211868865217575857729422526150970277879319360881461398513666703209701063633139723713955586799706034439946014785787850167833846090311761969634398550063985679946502053373152312219821201687258709018876122798520540092399248982930052400782317302768914839172964290093356421930635396586415677596024405079237366943989676819055377155478173140830505680289782884572390095049363935047287354416661665459859288192018507610559070352013008623780818434138723060323555578594525197894154732176692175463112335903469493864031320234393149408015278762776056705570730956929599937724894303688926479883550452445186719880804061369723457109757045454288004695207467905042501946843523855231314686102931021878243173505718469286766600914057414621134289672813100577043954314310316920832902391865544608744487780717050541976984124540546017324741302803518851648424420870559990999126087938829617889468249525075868954885930148873712409902607376447230480429325645728525736348417270789345233560643903572378304873846516371400919905059549960691394295297647179621325164474835804692401750974499202162638813335247134130077154410990045479492581695540732407885046134027116300237967721746328577015995206258378152761802549881645376805866352219285215279192999645044594304079061566640510058508809736791341015052973648638472595407012288242531141460983054179210692026131365829303487326501259204094999969706388953960302159122189066955176541027495452800564582938118733175893862617100140578705740438001436534808203965373741039747608703805861595866548228615336130800786267660433858609049695013778470062317931581594818367866253962247182373383947227443559447029934825687399320345044438427036243034071209238874489569959649518856014122604073677975090704594360068198492704109719148716931375370456033256413054629067008666036040264935180767434191268107444050169479851759558190146252388915601925519541195930751583074862993848243151692899547821375145127899285079969879227023261905638781831086031853121264244799391684397704619884850861965414371030979583743353536375840210237094842983295810656829579769196832497695236952918844398383170914769068270419802926246507333348389881020073155747562029006203146654499974337840659607644163140329041262388750810706559539471680191676918328835359745294985189922656574745904939966070916303649092496554026416566222680290603456493421007954879462123022402360347474924926798588294267237692605409631935435747678947218150682815989474799574848188469960507270811741796563915068057106845973749958695525861264924858548789975396617620639610530422973699633789467090657124182330887549843161901604157488256745637446675374207570293783427632865341458431837930301044317361366957099443400336150791163847643574228780260134521862252740682534857051276970504733246332803864403663680720248284414353617692310683665908197650592208672535014494383590568448614836431186206314807751734087818316368904315957199336575996001790294486931611095546098739490059994944421254307733891795097407095386791043556298173648905374395579823966212875697745820823555616280330774413183610965028735913169216232851655768557221865714717478270936722679842289820286415987251530694726032374723283950472894303062021236021730146634018263593947759820409587255615269838199353941570954316412018505058993085481571151598081637480323273848957524056842581249680408212554915040363300591293237465993854520700766628883911630759653012242046329240072716798463867398884903678622150699104734708434906843078485180555506828780448315906110801999280542630289771528940129514831013267661124215415320971657379375708847305249230491862067060075576010700295956611612969667694126989491272171655671390471039988018734951533903028486614565662423073335967166377566876836918375568192014213321007240340149558417201028349930152351415324212899433278284903730445214531736509998807200782416358417325051769550581539249820284946361746083050480113634371113845163961137053850163624374145536618471049135558495358058589429097117172979783149132681946987543714933766701574559910767880736023066011249009113522094004170134782068430289169391607365809440728759686403600198768321949000009663031465434451641257571783247733825294083294305466378839830780752581514997323639837379971876374122924866645517703206071295519272971304819774025919496140098825596900128782454316006860262877359875837079669899444277260645083472758590407308153234609910291742517472534547135443071877715473371572879315234637365583360049495440638647219461523189922732377718981886028622656625616405441924437480987247174809116203366588702626140436981453153648477828320684406484818692229911393850780117864698687780815632367884822924238664545033756558779382038259355960361648217320620176361575333297496598854843053812473991953016642162849001096812599557978687135415026624403994496739586667993831668230830533809894620126440693857648668798292241896624657409747774294337163695320247536198626448267115994758006579646600646267257415524522069496972162134826652473196324430577161904393407263239008370236410007423239404566461490538010789444008816679287384600198076213907296062601053652552787632239448188409612829260474801112182621114275693559972322769593598268281734498930019836128646046114788901412968805738116153285719394653677014057718368867399432521217871263739193804118349105932325051551815258279870831572790062693152910057680070594348201084459233059833242391378874159402521304086422488593021482860666086003486231775069825916013281594617461750768907977391746701278400534065421720334341047816417481892062244693319991415236835197864795673583896713312556862179952272260381748638017278464802745649066921850512739095081048738710783335827054254252538681520722361314763692601933833795617783302821205335495549424975053943007081860019129575743463349795110558089095656452399367850455169773779768240705947815034801283252182879257146585389892096112563389103581009664880940833552005640353945957795597141413045213318879884059703067458551887097566835916147710672821164387916878057721432924921776532857357925830404848808270892542724308031493224537262747403526967046860372507448063066292456399431392820145710427750078442565176987415175106360101819423086088565342888183827268788499578329768367873652938978281963919564493965864650125306572641785435972519610677929809437728181865461599748773404320262839567609618963282518932700538939308815530971063844634590372369491891101624439555005376638182274858132863481448894972161056940396810177300824306604417327678194655856699191369768265279882949769988647890626080624819431903297880994903863414686280444700830357105970673266792210912500472996092898980245031797483683378309917620792987024803344266386323916795017442117339405259799986351661323518254825408242771985774678093194863543080645184930221810883433910759496762483462712420559784630514804647702395312837826210663159903420919765107181515185960125066919460857081847008777506838282152078768142166973578519322735577369586893639124815854613330434299408562609834835365639070705082784064279667862680181607283600128979230615178592124912142388151272123038514813892002070514868842868932325206689126167104733957315597321303835780276400703009048322824612182528469334463708493168199746492147342635578368330895454972400539397192315889831967416736416561352819648360694082249790655907227417219597507259212920440363343796195462702291676397999382070529807887857679289707771587226371435730984094673965143826833532196325695204008743553586165569596961007597891281555080212939705745090283930663956728972336211689130424234584645957813449226720938550369630394425859436182397733643401662538006837150922869907055582771459921026994382978814933246330273952153909398977667136018816353066770523286583229895428411044687929387600640709523938760758995027144098401896167240388728046907026014464503553707136364101372381960045239320647024943103100316337644504087910304626497408685342267957273776292727892722450233345641013336610172462172252950022945368034487584668024928230165687346401451378671201400258048041792414946140843042511974882448331743694285218466789951511251806813827081514234026852222480909028582500809743343117627899178992672110868058020347895172077879088098681588020560801561434379091235426012721905634726699480094943701212708433299081436346047830316612576353345331533902671388165627742947077749443878738812165872437573476650307408876293271577204052294880607683382382371220792273472254545691640302160038242842680059512404230447722410778096504855326483265019470833242642375037698353854351420198385103255069185433049628688976815121212069024009745425260793690679696971335745454643033905956420266443340668400214578221484805309414098555403152695670600401827535832447807402033376322165847574824948439441700933895029721017278431334453476897501799499387679832235223508611800930879429842459085951633516210019220113270720847548971219862035663052747341638371490069857047603121539537563176137750866862561372077650578212541163116169604697640786833585865432526778634846238654596632167347631358246806799219276523925158050446694896929431164465670799883653942954613106553886696076847035334475065709204205812269223394920308738878316541378666207783060261684475034067717380032055025950517765807271718972237043499727223832366207405416810997145937460485303215194794084614610715677145410023215573087122359512742955136765174894992402783392458929886924342840990859458609895137371842767712394247372027447387438515805265031358273914107861579140998828080729243286832554194637158038552524206466184651912102210478456031638272067803589710905301665943712168349290362872011716151861328344450347833775569398394431614115098431053752783232753047684370127911383152666719883281349210955202414746912095195326964631762253312481013842669157659648228328833279773744213775513938294379254267890382243614218004214373740901128954419427615590679367840699426803963306443119454636627696314473880426679700233951626788844226205248849389005345123894676424080147099630274667216624735046654088957047906985257422395795414993704276632958252961770944759274308333550242100930914355647608232685711434438824825190084980465469297353535275818153828049871806242328587231261252620917620537481606370220167776075048507432022038633451373274052843416770762977370232778699645977277878629343281373650142229475548676213756307974138906048464180544388171456341654180930945681076920061531573440445892618318869010753532081377495018489383318508262539187031111106218148017866752316993899880368160695513915316908483987600735884510810579272011174898896197413362021330093599738293596682251297793408084071379548818441591312901145307449920775549660333761943473475700019637685951783690572080140585181224586248242316924874812563428284904777364507015658914017636423708722816523955028893632016285196775581995441579947554679370823900316203386447173471933752360241009789582498734071247941599789322061501528678095712321038011440197805669484724315469255024305683251331870078957176111137888901857998945021370956420439289055970076946754565679045764203885275328105189447093368438199523972199430575472108336153582488240072782728794850966199629104536741885450891836954491582814831353883397188593667064141958077205420782839509706280141009846099973768412131808879324351952113085048652137878114267305229636917057127727879966547397776607642500762739893396672000615658558217631450656371368550586838905012226417448595661903455621797374317458613626140894003254348523605946681144803314220347625289305124266835635767346565795008909142393890795719253106497849920809842354232765521313526241494779368955542849143064580652333141667562848976467319108745671155688996015510407958835844928580709528905209838516151751048866217518478681361241505000033459360376892559025131624193590677508821165263336435030332311173227757950102536163484268057406142134083645129434718210442463520564531880119468164753829175962692522241691381291466891521441237279295362094720916656224960816407887731383322520151655897852010040005457244311081114880570627253428990451819074868506211785365614365883022613624823661303971082855948792929472916001180602828501978467611557117349936277941018953860010300787835443671000165144277189012922800179332960313420365572674137254705516997778483184494814971867977042841348487643644764292410281679096016976257950770690219715026889988523591162348671706726520993318896613775599212556759779142430933444906811994978558647317285283091174765973667457446316095729797421467476573630994407465181114478217729326274682743908653870805981641046614892776022692156749264492052606059275053283853064217439640580489392655131404697529218233963006206956688717616994398900893046647866368117287653830891664334525469820185630025628471645748252850107100435589159124587110070646563356814927001411096814856909852675696790542300816590209312817307723782088541073072878759435874288051759227164460194502323339751719108681517488152147317829570534058988118167613321080759734552405518968106808307619149572026078150458132937398677426839892019555376564353094852612211289609798429051835870033256821993887844347357044794342351017093749947833357473200814546040960102578045473146001494739257021570181414804026609407596040206587293505822911960628941852825085053560125857388099152652068340437514845524902018260794131928460032468665418379790388245304959623957025969570989296824229090178307517540918354160505825400519141689626353772450293267886796499565620634541791266194645453190633429784006427693697688659937414376850853469845834873371902496112052177634169495812650309571772959524720677198274941318841393937536218784404730465790445864391323479108910223320246790433789597304215532161152594490105434576172610072495809595507016882940762808294312597611813734174283321421292162141213381364780699447186469390641162994392317032147983928155151204179102188753398448718505872524772482349699043380780418398618733956474368896905710452545667192963801704643708630291075550505562268271355939284806506621767643486987296844275580452075916427225319573702069507010257901848970614594473125926374501885328812356316122398556784555155698142947208636593258809015880737097105728520906923858852399927140771368918205857056430286666415573857550083737016299655850928727786341054614757120860368858913334391172767898875804038548973528250641546448299062061174592270163931972176438136390076183456311064963813915812512323883895143084734805716115780461443727834396163186072811952223696478153259523608575302289742338040679026772778963740796243465426821733031940895348188543419080962861597584383541434693717148916335108418920516220362377632608627221588985844985163702239088725005507631266136983186101481479436487741815017907970693099193472029867239572974539268420402250244342619348541004144732973786005135886386368007058826781019042223668071116757610468346517278703358507094684887824667267880539581128287312155840702343275027180958955340953368901901241274642502701750859627624470085022159136496283681094311911099780686744562088764099722620275971880878113765602337451619509690375200848262719896480738568614940491894883838716274953448067259833291640010129021634139065540860818271508231654639915043860218666186485286820689663506038126239763083707266356715126498271850821190675470331524571454367635875464783802914826992491577607422536309431872667928273759700454121295132340748066070413609031494465598637638428194337189124070183788946218350839699342918473623176948364955719526279433041543547685966655245115018388747766751058200091844916833790343651892373361044917164108021303932681885305753932557060060775648232564081446152425305709694803812951871172788753096817944600607472036845612809188040244741420009412789121220421572876036213954056161976763855380216570222619790240609461383364688333209078853002254748365452538813042483592288807607108638102765958698182505648760951929875428989711086049702475620143307039691911463784648679804092617509000937457876940922710988235016305528329860114280888489790512181564726786469111648016711105932701496987741698950394224200241543173904402511983092422238587077839788122752808228275481853768446823077591491297029932411297389172791955366481214522473394181943036961569239359952964292956359167100011561777218243582423730822038460915155627314911810345863831744109756848038122119145244616552013636994495111761135156671062710678640041962400612960484361969587989049057743845568681146673532161952852657272959219370232099147513724910383000793314140067509833808663229172549159498208541876038689169446361580808493636423940909517634165547799638952879354029403124208789857234255162028961575664012949491233945244078219734887973538004375939652767951151244622352199630273032756331564872389355076551659330940604009517330492756706066083098102742818572901595458679899053750957854897828679489386775689423389301382184639270814275541064645114433516626158208389372296854834032972714777167741274107213570660863461570753858471716364796675003766563143178627017825991329917189403753373404562059408034519522129381920525874182465713513678352098967361459997235347641638014705779913404005125728375462140443086048065948507071823696730235141559439816965500986082794789960404243624301961872148198447348277985477791280589681485659119240032983188115585151171684924472638966431999840996261357698281983302249195541396664632000340599891882775581357402214903592826727616600532534391029436781623746164154577711468164559273666036155806918872674752797228906406672928989086189473655585477475767283736386065109510709830981790761406520090669343040541523350957511247274069870037464888937698731135761038785316223496584341078778755667416498224985071512941090934922492646753793834019270422996695340908083234491828591071965278337207184217351929071960418816652451377647814646421519351472189252168867481947684039147421676510569436654931050484484231240936577870020785348022816642876478819535776893684740403766368485436236531118970326125431671332147142368161089194240692040815343388912739640569588023285744644641269884771434256687660354050891912013450141526879347200089317368544769229667843045173664422825876093571048837227340279374676229076408061104291745217962056204259422306098313237805205876510069731062468718878619785562605716540947837951399982607088489705039251766699321294975953489489000991827504323614968467135948429026110205020669566329321084536327503162111479258889994008778460786406605200128695998582640380596420923992497120957141512109658204685018572207418348457644474485815746758214889205259650223938736233312776488179117033677617022159340740844352546471397601469183463963579868210660691332591482787973505829436833683245839377514467446795210147035464029558569037593007492218363498833713535802613971402967864098205614837188072545659150429077962029663406300427650765169469414627565219484678171672360463077180263264457407496544960430987027193833318731308298734575586206978771422530566658268292084864009713216505182976421018645987615042932316625072834693774288960275275936408348802126930058312506268376307413220346769251784842965416973089391011445085738049064508849123320759323523313688557843685886239978362080803052870652969498771341210384875601018038616982329289784166975309884634103091801111066353611044999879285293481205036387511135691183345133887966672877835831350426401712731229076084720207977577251275806580881199448993060069864123453467228629416286434491467346003959688758345206484921223122477769346984232805329661756452242671036457072448023678027075082337627205642093292628818858305846068252758109264291454537133520482295746571485550384382765546188310472396799141157947622796575808551541253189306219451478725850006003425828082729458311290271765691151142258941813498092272181356106025938333400947157226688471418100186435433233318458295388398110273304021881732962965657371559342419987414823831308501544932128474014592041531744516955098161894386637389241226315256513617036114246545940848847724106453670864356258344578275862540193007734088292576294447747556798010868212252485340576218813846114000962533049327335459140192940578285741613692678886279730710139267495577194940305105025229453703958456407601190784815611430303287996820724140801972265381100110868338695292963546392805806402662939337232431695274408707573723215158867152050676812124282638119943413816391447218390847650881987232126382805763861230333169431680904950560885520992439836916377095008792849754570514179412098222084247692082334416352707114236743264161592037837413730792415624888133198674864559008969415964288779819339005575967496105836489211315377467942868538996329914303874616664748039941884129748914127584396385589718022548334261038564742570639541744288954269605137749170373724807532705654549700238794175251961805732237141375658494887892092886799512204247520404871582851475462951892919117712340785987692202964472253752865679593431803460006286259739240299944605627385970935643496632176701826068175798005718195250084748757595701029724532711155674884372886063087535340668460646938943611506479033074815654559401243528734077517206692873754777164974416164190916589037031470819698875045279517788315926466385640290931569028589007314680111751462812701921399728270419537477244626285769285244221418513011540101459169875622110474278119733079859277001897835903938730110510954816893111601999858702227897488985237018677004815189610819012679159222507487056031301081753274337257910071340277916271513911641438985836412297563008249928881678770712216248707909594621723271512617563701571188318988565561253218787847286714885344884963564801602166780548508952523371579515044623839242446113462725779492585976541146843922679959825283623935139859322017453844566464277215832601569515518104507341655185749760311172383820813648753504565704530012685300775841108220125720903502666121680921555167598995303382845224425375982587638611965576675158780842154307549622937864243162930562326486190633465666213506060877302615768845441147956097725217139109580346469201876689438781284878393110525415457661229195168862486527062334881211065450024054856332582218369101701298119375036094108932368466850989662811566552069208722222155015645400329656045654947091227567564673428988760216219177700010887559440556640912160027585377456226155280929293884421303760727138420566018984288676445490657305146125904641801123426896903427153388293446935900792076195364748020618728550718061313053142729057083380338523986936509758514551794481323615607175271192619734477471654390768832240329429575019860107126527859492774023454256282230951398210436049389009236109163386013199553624105031417363870704889849684439230508582668386701302900485126475654349742803617688072647001554243668313532024007138090670069383537541143374655184223779447187545645956929299770729066065754947656257054049412669578251903464105950842540889158763221323782373364535173626474347842007573881238513005942110104007962381472355598019010954528587841511559210581943351685809342161929019059052760698631261076385041199883450013726842129032291814030586353361132733196793033231601250057511677023051963306112529157230743395908282702462475042473625659866025087544317767780986820321919454384345739735779742769474282912211341856649861577856672898694847972077835951052816359087227318455717459249081169737474360466824172812135979018537518225848113389311831644123243473202505988139970749050989948721377365135294904835594884762382928012942276767576399240873839012864658960619583167497105781960795472500828745357082001521876582718117915922836114852173733412568307024550433502318954827231394047536130195795989219289888773933754973035759113320258335018446978106483596425151428790971106949961668838083197696033710835536838948776544859217576578085334051411645404066558916815639206278443722302828281236746703868941378298061294967644054339921487355800163598436653781565315990153447645315750418732862183412858755150543319021164296666037762321759314627993238688885680089370944632006958430583076469363502531878440496161209605102316896932507697374608820380996504221318532420470287459450200154104190463038674144360212172899796136622895020552084937066651257111541385831468297614375487605605177086979076630747931699132828775914121247433627743792409400780925642333511679644289733826950203152275235429949638695803630439651863132476855874228183637532399770268543747947887764034570724362064010345732807640199016138021369965925904330574552310007689978368201399823385912252034582824332320220668475942925159489224001841211332239411930738486604372101397961235424059041961752767003408722373684040485270050348407677116244516430536449757961521687008591394968366580621580748186324054003714774860761765616051195522214302737416936136211981548388897231037112449981595927560736955922253970045666016038066853763098369559934632258896180419975459729417086157414536065479952672269133039617075268922670903188021298471878821087846647240515079677166910196196093007872751548821340748600137742403425100125290494000490145085695839661783045581993686433392204671132923852380298258636324372182888538928348952984681382336441930772084277631663712388622457165269326478606826522244735454150140339863989923220088382932954275335255001733555389206298138422363034644342398793335010688230410023289013906205357550947928629880387407510156566618501088278073445773821556856833017681893798920243040619247056832870367520332112124677892976238733038745331771372028275522235664552526539890665806424426129653200820328568840570107199865938730843076773650031312991167007145491017594695782995316597129973455782476572439520169107259142465467073810009569277512831346837140208886535597373239804029392315916390895888917037225353592244487408352319387235955808078833514399294721234332972690119434714928676683470474201475535361484033092651734871478923239705191207819999878797503005185408945504890344659407623881890311267165967058021265925983595292045683985154170160279793153872397697955539209647686707479336621428787915861499323903352909767861863910259081449747411316892232153807595518180885079733818864261366266301769167907489397157813111777298046778734544616286980909587244585198806552023190961652844246911893358423692328307873882401128272693957577473057847958153335144351159042169521309275069647266362893046802345319578028504306589536781807952709048888733205433145231001205348951703890588582835124699750810940398365342622347726073399777160850047411063671044934085579079678367458469259576149660942928550206910523042895714875172638430637553926298753434472694407185070107000482578766049102324705190871569033167829635152927889407641685109874477725353529726425511862721603393841572940715925974150383119016352175157273291498090755324751998268492317620185669348475101977702774274961253077313078781867461300966027161800680956473688297524867532135741759736007639560814745549806564147198275369317811801155207562344579594711242341235849094528856168456904313865395601080149608204986970234215039678390833605728707687776098722185716565590268624673558794191445126846506200908667638579268193268207491894614324663381794813804890508460646343436988914666902107371186895929248682316348939674631030518610044844992915572700381463100673673343909820786066937560945612060809222541204921798394824017558734401760715972544420842003059169609454351312941715387784695927193100600882645220981620364048709964309988963007067083387726921979080056886037839534387718626836876945853994444274041867737491993227539690217474527517867197808943401665064010888758628585316045276454741458932894164313200946933269910452742774502002143220650604203985820230933305768439852982256037304344466513857248986916754401500977593445492029618695939963381379045361436055908130973538343452533976507131967883237261977830520130502201963019900235258475519544711690646902549365362458750033934675845327701656590082366979234467033506543118654551767109687578315772547872548772132356166667663773397366626051213308802668616059102138927813703625089061714929427338880649192619852074860331201993859983581046032700138084533920486870494135121927928225470629181113465741969482566010453894765162210927276121506603270414390174386870356768830649990396028943471160612813674750322344437881863792309903538417389457548234097778146866439949403537197108860613183336856572691448138877970324139696669970491923613870299972685510131311155231923424111234329241523151260251370680288997471306865299018052435737224300107387195510085718999132081453745833768393831473369466165501304949977837439671460924194545482621685498368250739856196203981947037974576945459058060845239831900372883595362927049085691610557300419296653915749385440179326207973929176606672771456741930784417284969854389136045191251453596526684496193296051694206461494768919443616634161712960902577266254776552309298412633501911127426613137446404700484322822626418871610159908725333234852255797207753076708877769102776795090812200981798523653398107724851501362639312981506460110547299754172318042030297088283122085245548660596794576789896497046628649442924251522416153540984149124571280215036341554129512614001753095730515812130421574906703868659297978716248591794433602368662974791638408955915207878333263660171887697394299684537341801220571042455618858338060563458489321497851743925636955929256065034623213470592410103116308657235295492702430677602277112383547774241516533000578232817793611843256261463454533709072506814658394350707654408596650922630633864609479013485369868721006339198781209675760477477150885665398494625778928774523498795111049892335816277735363995524828574748652153382120649932112762336392182604068931008138620721619348994143788478604481361824069806179226334816096940066580381706346756880667168130029053202103815566361250213724716733299146243661644334781794830428242527053437628130849429627287769632403439268767475944627577947624046989846692906069644407891106867804305942130629782594921292184766581974443421944411471166014037984557171149849461480725180810347843268128014862605444437066453799873748918545567713156651837145412566873599242077026132519910612512024711942800887287933072234228863854839518968187183252849188841201101828720238971142805189833748131033027916348173974912028194280110022238002126055767700637504145885595259791783129365725125303916318194337197140649202977197025408029885882044402430270880091859917941000090605123432628490487429772119701477854059497821641422442085810709934310121657655813919931022775291029752649486127149786831988850321642479359168811939907440866157195580390674437791548206767950200658196654090511216431866218242553803525115024435708041003963412415020378261632298406377468220961192352619705937227426978063565084306139303770030619038017982773020595739702879477274725179266071960243490196052999404376774294011781397069969005022716032300836634750569105568171758360464936297049859774508563658235175895206500729775351915305368843029328286043740627257340346289476912309315961434668027716115564947230398652370321021332195402870025195514589030226562568986496660356794350017217461260864218236801222821735223970210818879631399379521784613109652931014601912407797881877335419995189617458400508752784715924388443900796325136809844922724665336981896830166022841285281039069353143438298553270413882305427102830030934062868654718574039332678640813197974487065063143637271158298105462159547937672377502463308619586675917496357749546639021341661679806401901300206467547023321238290318000578257320952181922326198847984943644875596909994455985308111513314705668860645180842239174594165557332425483101974207879397184042254117860733807795127339474932848427880067741355827847676745914759834592702150229871872019449560310232216595414501233928163078222579938051508331154813766629632305916109101351751398506773131925321524139226842321066354080208195111874926825229753675500404295792807234024616870187018603655144751418191888163245050226591896429922974732905556904748796786437039186776538662876605401089733106649017442282774669017401804719318195160855390925008628015512874459511631785939957368073454998610080077964900252296714035610223708461474160316976050436043554310779043468471480944262652997410201587729048464144910286008734950945906408193655381309505853925573837667725056580683062343496852744391337453755987192161644295549837886222259722830784813005811347105198154699723528829567356876332547506923293902333708476716738091233344779047357192591760218487665966448795095036283817579338851673815020740156673447322540365410347462473211033247625710850893296557335939097420928438974831028591709926557513752623660574266066770947524896780754844107775619959982073531522892709494860173707453290316718491486532761767090701159529388886526314564478423865398440285623004361371941206266115376484412920672618513667976397667415791774227880168790729493992827562295297420653088119593320938744070654356618058366652374151770741339101649318073579221806909748046591728824703838911437792044350074082283424238021681279182834960259909199908634203087956845411967713168207759229123535343957370151042842573282135380085387187577150415866778592809452247897221518754274742388488225872272399010547617786995373105556079076825825459414654972761943781573282541349798184809396909002221420410319753098467455947787432198753222347957987461552003920741316374597635849597398888039065563345043978318747418371359610612624998280287055005582490484276927558100580561553849191581298298242275732231988154029517132367786982092081587345923324731864301112201492903412236401174454222339019786401854292707086538740305573701656932096935752272157546339245068761480143124645159495911938958514505962880177855930436389940977145027199915232757709234711633165913790707198433334996013950742883360733126111239362966390515409245728000453182000514523707218716209495759890750624563124013216701887083663577242436260337562005498333930716359457377953285689254107223266003446070976534228551172878567255587643329200353437770190920128788648450083200954011564035211751297735519885659256706687834471281254248305976050122879514783478986368078117625768750585790434574303162456504931001212616075607070555830063044412782778737506674200515126708451178305442869247598415415971277569476643689937296869050752393536270473145939574645311885397324160597725401417623725474567353037771915627629831514060311341655357642728256957146960528285518836278514413428164688941422148605988231195045102773639808083449058404277621582427895237635110335762705312407999025602243506805158268891961093465299257846096774529112324168334789273910829387829004654073576213115113370721251276942092265573284264276861289683562605726227567228250618303417325927558591234039236118424600663148706229138389059728269294905149640387922746576456391490932433443066792072266069495508758014774589160418300276235532076656661476083218058245186934585811141872746451013980922395390092915231882331891276417113847410305246435765926134907185992131217818475085170208138377454714511562136420093041949515857343352457311086300642478514014606199553768207177801631390229464866853834736184589951242692838472250580998847823467918638651826793840532147031453119474860345198462299913641030684594489310894906493652858219220542313609206712555958178928346276811481445118517815671799163279351686795514717840253402793829046325114563740283391999098451401130301870204016281070344196420441800693864606313655784891815019154409088149041635635874319618995350003980212286559234112891079374527699650291717321275954852259055796437324380817624647850120453992319323915084449638587620186534653089619607752852368213794695729268978433425462410249441218384830004128554439908712705517312221901878058966541976746129654242639591882135339505939418751154230061326690218181030214382000461756599263224337562207387697886623627283226303386399417115543314567353617649205549316713166304489747794045027682422183001609027255925009069707899192116810738332832762233247005990958824251028027617834691766823289305952617890127463135515561843560473585730987941476404220540121208742186482284689689152902284653299783706066031959324232065953521138762306479040981636975784051695647271565130704455962545405426305165637523486791388027599887967150077412357971274656447812493754564517770488207887466388802683295076077890979162715012545384132270690227977950877517183334758182389979995361057599755401507675353230093832147306096471618893265132747086957243304493241917195663254029170280944128152434879332782501974425290473057413837185335939482095803838259970321938168138121124548074693870970494119183394753246542478982193095536497078062328317331648485761325267549200479657426071356991410972773965076168593811760500139632074075568149738056296923479051246109631158991865920457726692333479686105710304336048573728949654008106176130039553334195263840736370228724867558452207354205407346980261530645533019218745749339684747632400593729245648398005802247955074636201739260105554325432911377015433676727423046176462618710841816024912897511709879284271836678469809633279182536779385210261958690313543748034425869403745788336894675262081981146707231775749245259560007707245961442461793521188309779233335803288609468732562099493316211825883189596141338128086936214970499547722896380892867527091235748933091485896534009987095677248922300090792701432847445470196603067709581189568663567543980613671294766663923726542811415046306003649239432627203925954410060665441560759103090600297126735209559035884289004705868129010708117889242780368289928079756692762641370649541293277727102211958249247746031035580709197040369661058379404867995006027458378689327290029962537721264390738562411633292967214670837083587245381516765281839612098431611334862745808550635668228794746706595327733308856008750413089768094026497551085580593130989548255013471494144284868368300957481400759050824724724580934210486581458566468666418160015001006968422986533749140054914483590045794601868434367447652196603281204603131212650291894467921165811137742286203183999052742547499537719802427978148973762915215840123963881249594320540595748789005044627527885284088335059846172531496902578657983940317232027955496510603204383850199625899359470745759284236400014076260398469697846048912274887811725801247686549536264157643396936671641185854970551895118149312311018064177483318768154332712287460948656220280101376497210636788536282497188216390775729097902422933296120847041062106195870096012801628163935095608722614665269504966631278842328697627753833488740689147566742505717033840515490281975443871048247822051609695707013962362052753076479955208875592172008340221511711852140642102415750976732315063628325874723226897928728691613094240158042276351960501876520019790473328609220964132056513906730905570383489770102396557199219917125508739282048337520212685812311062001892266893575419731584773980516574299299904822541047552240813164920346447374009513590385248777263047919064472286408376869215956786999471163180866374211824319168966078453803782090457412767635020549484539086645166350655117057997677017671581106546678281027640007135679116953813071943861547923643148448535776175299398154663552623274673708843413685316490765714181063168448198073169441723720830972994293293478122962709349511849704951739026796724655348049829736253106030986824222214019366826828927148476177218755427780172091287039440916248396998532844528834934755443109318954819190086211529471512320036297648013454100457862103657186713184716619223192291432360603459763330059002457542677898150523969642650374128766577893127664089862660567368357749848831078319094888803254371128889857388547726554572018918110956023435040547098993130781371179356766086364685079325154608100353590648403544781435771125168519947778902153397815049436393625577177512061277073208364898016939295230355192923185346221701997424561002674467499574564444119434703446255080790606247623958367956154696617910068888431652675861877512809241625224241264606286039990285086844833496591256099541117838264590247832714764669400154874544932720144301002505529855162666029028844213145292180527519323324805045425387387347778540279500802974583647066429244260640243456046329743261372132521064176007987303482830010937034642149339940487169533117995499266386890918221985795807800082325033730807053237270624606169192170913327689966875801087491576275325024536745418786374927125305463447192920438840521942989405146218264598674432629406489257228090909356337721472713604938090764109005607589819934197020456049199870459168161672745400855633729991079224623831003277343680765545924805544123363789535311128406208556556916948007369271262516561257790618759206602241276944925849685289341652219296438678009547329740252781490481887175771283177254195587575168938982735541267025319538544623101302924995769120537627831244267104490666060224834400126114267523499136188917640937136345804971300297649485412324530930829953681767446462480363674000741563458232213810428159388668149940923113452601041441449972255342312605132812079820094136509773433453427778113969462851175890472723662000010942048684211421642676852086726229314646008533204104238846161869637704257544129349949892947708883398033603995579458493384121431169945445360891195011575861330379080495183395754617252824448109452395326899406044747481241873831725267542531099716079261411322616198083733011418551837432384898722450130726681646110386329955202622420997598670025105933940384155561327946617926338355525451771747753668677168957151257185132613284671845267311393370281860994563730011099983486735905580165601982497838746147295805474256699246352346506235433554849086874202584064619670630404438724835009708462387912359758756252814670434185158049016831809523190674041154642477997828040595115945124894155885136406329231232427346077771634806453722126610532419718776775049506619009663466353781600915867614637073590903896523756237289629121399689543905153426730252433516791582249761870808622319975216440722991583603321397527070843843970451584918659030051291473285752538816699767105530582166499112791403739812936085250448096660878628428396213291884174246836046935909101691253739823536432205732669733370947001964530359107649278533294687693447322606914612908541227000516734263390260833113867302259590830714221235454331755008778740482964121671799172744118781040379399943302436455640983261029963899792567803725400781869819762835600603718170667499008545351937636327835106741879996920981221856312198970704754623182788422962011589342428899390942584461183433305529112508281722424131012118763839486927816446585651583840765004514806851627470539989024872655438330409258035613229727373045646743840070688909057397533033262956475829131553398273303428519972103606875935856299065747050568419273955714645697590702959621840224563535720238689880929259346317429845460830530940898186434909794452284611142613314515597132144229920457211054507241613335862970251150469476056738556942358388874965729354549908039881103938767568470961045272344542813844166445609815517459887583182134533210808791557650442762402892527319008885642235563051402842151347785025925039167598641579076086156304072914844392226573970355120167771041120910418080882622637035739934854076426667862729350077997503853258614031074567137027982994348928228087453477946760261877791244652521749136420074172671280740194497205349799240347083179428889850920317921837048391301293114311073795932728102083796469092420823061225192815939099870669839279118276081660451032110897777277793030138862992061602101755426853531295425018324456866944971721141201131439673725794561067647723586873185077011813293348396923092099074262600571564601096851000367723157760317037951958883041181601109549077063363111896261538685007463865851047721902868163495607162472249664789812443383217845931190594852707185919394376746551603105001789728673174003491672969850137858905883307829289598225000608301564350297782854069601985285429809165241831126149480351555525967782256141347187699239904234982803278901773504244555757732147883249449415691399446797294035674333768683270765375761830602720549828038961508795963508658348778745715439325955281347256799201924466154490388414641349038539575456902361714077933829985491593947611098056842981054085466825195003691944481562348559805639881322939914196507655886989366129872384188621404338745934776485785214903708461911117714512784658332492017793636090086163209563252637578465674654754399727988682344165620351995825243263031970418051276848267772832000149296570801793093475835699023874525593727260933766315026138928628364850626046484127563396057249590851527080590075251831083086429936372643356306578671808150129821950217080757569335095994675765471211619740163834758160375640760458885059218873672246002884366999553627362783620572346745334016082590097819627932600734664378414662634967266099341797649927519373454035654979641173375027926337915952288034372474221258971733754416929054767708308328720060878021703489311049581710451568717819889766527297613135706718828558214069589095038309404651379689912649638663424740389790694646114256151532591623155601238017023875781306175304202654083268600669182370397935202365281830217639099402992055226011108681545080512284804804157425573481575565557087313874218293444263709701265720316842555480284481273791983358172785504867134331486188575029154269291039254729933161659117652749944578762174326237849557730472563839836294606107963010790049261107945254164405257230257529876682219328614468703747960953235566366771138723956788156467619626520214647012841394502889447992162734418871603653523498900750993085366776547274649369914153762237456606762017983582490976221918104305236678087317611180001676745202644704230176836802770870334394319171324590384666548027153042940471621819743593857618026864605118339882313746226439545042337011258634349483686494827366056614654200283211928912019809557701961972746065383692764317570778573125875767013750383331935559197845141184424857183280591792857744302212150585717246412887024778982079573419650322605516097009964591757171978558514234783752056769173746877846924372385872212293247841629870528869022455682029657560701188065109009343122753634597710792136253271725996580780462499942101016619475054269469673811783513031685110586548203634638046856618368116123082102974627331321321272365441740828926091563611672499517082429279333975411385968977678131967588140639839734100133516260805285243650123841040691872542110358439743793430386141022455073688830760175149675870761183496749422053574023739737386476931484855584480497990752764713688834296144813561521567978014304872626329768573396761917886083296695628273278590618141003006340049621812526799679655516880045335844209016724666769562160176282483349214819905977025848699483055203245265999835273506619476632418698016541510178703159761973278726342885988500006692578008321388835972090263104446136203493596605328663830210373621837777811588573436080314097887858477803649809944883924245908416121144520276415974317836719222023256259436049512240496594481779991607772189161478446009625796530529833928707719192981991116882698848519696148199365071735275382758269616831117367968236223835399362355310664596152130022275250553350981230573199068007689546421227746464204419421188436691560450698377703964852296999633364309974647905187294373784231552947844734664543982895260573400478966552104432864983373738698282135935318316795063977867200507422484792467698845396800143089429707165442197102549992349567430884740653429146304336462333342369328608844519378540560373488022731327023475647536314795682091924457850388138571815401150880054345535796940545410320595057447030953370874420905439312405855755955848740480897696092984334629748109938634306337197466969459062175176683476078039304894155905523760393990746735784849330970123713680199061172193948731931912640265102768574263938991126068380683386958318036967065546180231534338336568349641452061320363811670342057376151885185465341255917384873962581935611750462068817071236895572995539575602523951647839217165229609451615782364100816738422732665456654137578527879340067142767708786598088658876537300038125959166598201048135598171167565565912690254618915914149328437562710483921294002399015513680157678102407763122384224339755018021453776989668423671416443906656057357394794386281836924465222093152975823199299636502116222175631913431040946663553260913635097878527847077113990150106685093175816619721349780347857902555490316993857315321887091467643888586738890943412486898625890658337803119033633700629411628909387419762923370512071911250044565273240636964827511214148193816963906622250682749724262165047841896569518794513564521960707061151802840043889278251778045652077683064157314067562951885009026090353794015730116440833004277950446538404725840008482796517717864926733178957913696592432210927536734787275169321569733502488451461625065668314153961574845657352201654966244452401044259998079472438987175956803402371843407619921276425688474593126972051630430359972764420561170706861701870839884678228757758919726824369762335394870389003932066747261859276201470936435487629101314741074534552153784391174725352683447687995177430461115131100607688627656288703136576376376558059189958991930919201824841913076635612832559448771024021168413827756935667827740878247384130695239657924603515041899078566247095311990073208111128523894887152896403057980267342093049460385440785114782592941471456009457357984184986183284989319222730299801072763474968659452837523417837118603852665820256611002598750969667325329686495955401689447646603008787541295430838951419139346956490208449085662125185639462907793134201676082419729104859820053842084021015408693492823681989462804290302368780896196530644368700611533488988191762783446255579953588818330397514630727809650251865827418938321582994319866393357646370654566031610067142668132220594222288065831325719199990852092516326259694970340626072724779968223845935945390507254899690280883421037852752939776093248679096255591071199562195040625095460414987610093474874533367598115846117517566402320211509014210083182231956268681392866342177130020304731025024047799747258023224151776838856581977688335450126288278281929206478378306262487721678062218563596552090122919201455059949791037100585567853164472013778908506222106390904653882721577165930006275587852717880445952348598165876587077486785615406449400797866203976948333215684935256675843437358717501406875341799086966823471099310784901050957641635822960632625192906423356634228683876596902497614867265566620790664751550536576364626021999451969002182727046086202375036809782140902070446921998682826555744582449303450905096518552381904044135709960482073063155469307664983915990916303445809707799274098225310215583390186185489421357040111852109477306590256736911653490809695318161694968200788124688017282728896057167621227042530951510312953993948451985262058285172659673608184887065260118686580550948825222381019892648311357873756478991614755059632733735243813262927212738674741543497313728909004524515104256442702009681717472155203331445101026759395594589225840637435816736238312548838188070749728291010751772902439435638576614636056562208246622197077368278241307870965724715744963227159164669092295033305131466025940561858935612486551801811024401100853164179521618879519537644330069379796506939424941933421888259539851898707993776081207213606351667561305770048172148085444611507058732817168743447128467003680333505456959198149456247501848097153153018091612466444252729971394970955286146036312555271586060781492921539852326957528038912264192904798366235736510018750606002175289217189510796179648196357252509068724818543346048607143201089867335361894870036712456333488237285514655360486477655953479214902896974325922672420663569699592037645998184671765481362304172125438232958335738026539089290518551736626325582777821409144062068533884494853566814810561696009481868688230908995411320251450521514916802811237311845102952041513393141767429231363213261168017884542865508368432004361641690628118831719659924274029414147868776452194515775855605221219598827223709378265549979141666179852153825170552033413371302072636546949503615776982802510534573377572606552122169302338787309602738634739697790106693343248918772150138990011699193967236368042849584692516688419637935087104843863709588660037647959226140691381856328077067215281581320962550444294409229761048633610748610549863690218827136309737949572102916089087358126936820244499645868900096266989650635459930476982543462428383477514452781317521794211382684132439207380492590387519796717569987417585467758740829116836872940067003548923033568131169739869815718447043534879054089205827019485572115786425200688158684767480508291857838788471114403994702643719383403763174862328875004541583485393159577159200096521455087358017398603648816279612070227743195924397282160292795988762204248969729574044592353236517890442595632125502435122040936494355977594536129710546895935027188694536364685588477673698613413341641938678987072043511537603857220057980431221071838268842655234349528107498384966968754266311828848927617793365605946447552313500152576520125174681871432720169537670127304044676207407571453513529473443442107646704417468362456711991295977040252830065181696880804532457493079160900607019570302415371116097798399401833755924280632150074637991976852226921377455997804444869145500701167261943106241865336760629293979010444646783085041730541673976713128573738115103037686134425044101883563982578283411956643146111368039363080336448020479238040970794104071681091600546888508364886382617480295750173708140570494193008429786933114285112297469516319604222492571135062919568005274086485241645916618981172120430182198309102767009034242560919123851955409101038306982602047896728323820886199897286047420287685626253477475891268352877510077807866617297014698323136230135585396420946746677926577767412085551340628866605723893953837406830766164171865237135884357018328945757481024326711349247096987822100294914992687046621937313448831920365339810074366613007678296356575617138698042315795464349848041464128984662448158993892762470970500396227478623199098842468343220717003164418387701901557505434393125511955862949211467575393945925891534968405104269085469733693701144265226180766848938712382605529345128423865834210885934170619241952286671892011291216478052612944531012779113368747751803728778222562108758144490113182022119127552714016638266996242938171798095845569172479843391796768772760316829644902914490945614661578515335083811366712678864444757931563397087904791035984665260496472138227767917918469962863682890259265506827031482652214208741633012607947391609060171589542850229126573467074627171633065165663709140793220514128325961033375698907194591795419743344671586723177506510599918744477978684778522432138206373188290304654311207975495643981190248646764351367311232722034437276989137997797046024381018063209914875121262241651864838204735888431377595333564283558741140898098229945449371720149705615690183938308176963746914607232328130576090416023697508408663951145051464323966214671074786429390743541746160527935996655059643233990624080752772534169834106193036923274325091850706319536821509415642353995487359513121516202013101273052498822549986476953360467293374809430218611707996846778320777369701777324069563399376865782713802630546564411842892128979594820671962063483276796445474171847851642373887014813460835021236541976792183191037221769501331310873024591991804703778966309334565498860437849614254727269687377889490759294620551787033365140742663647783312543095286370549968299634415325830617044989409756142094899775587502805600604930027862121463142946876628669171165949211449855651759708699158599345398298677488665051987852240166354472876112738217802957777735836778143188974057315581299842292402470386582067125095692797635250517300616594784089852216738678149936182169451373963403657851020568236962748360385266929487627273450878775950216301495299499979099215378252069762299536529755758490472338117544778136321733574787440929789261533206424737521008785235711799448115061373267552270300473220343056003239154813857583469018480848882856787849188612442174451368387588402091101884753585525379921392450596027641776022345672586492807373688815754332284984903636312408404222827294899770627352183251820209122124087174074634636691140038610471108622654611983324868081066733020610316054532726463200858949653199933858631514010800355071396757048957104813119329279530064233176947630155761844567649113469278764277708674466283468191640191185236886318642068293391714877700589061736067181944739742815600578907688550287036683665700929364966252713865716985481208903061390556623244438968164198113722543713573038488322525023562895068438024464613097941795189426926547251705474219978658423917556470162268348625541456300526988052043622630734402333618854347157259886888176538589781392132561306890841014168588481125543349768068902433900023824309716771241736764879525797474494814733295033432997780571536438633071873836277642771654632245396795950073712104758020623217667386275029797451571264708278945910164604446213095884269965182967668435711174002700884787771346753836728350099685597418124912292197150013782994367988848647775096346032582979644466298103682722058306792779430732316915958586221453407460613709499318274463588962708654036271792898758547025245131879501919826179033538078488530379818323910526376602646121851665469154652919039117964001268702986963634261239984878818551637734809969382516715562469450408164907881666087854588548315145456846928000745220909638614375175392002601200966957287239503944840328599907340030760058404791250680678915786343979896282361733453059005649673342796048248085689011258432138961339710780697943967177213402864226176441962252551308819961672519510550555459888392512869304579706237015708776946734642214486974284552424689267844071339607716191660089971618400330845589412262274977515623629628741890651341081333660624338029246809251387989524328863071522467893876566806698891095435015329310939480543262750138738957188178716176602530965374798399311610308917874034961614051407241379379418681911189293571354967547637739612711337666493758412002651530487601655459359712619897623571217046407319140375364698878786132291858619807571843116982032460783318791576425626961393584623817617135387720555724529080614608145498759026991623751348804872366246203475186818799638877425684570867070480561294513854615049649309265633002867760678709223955943387500346332695005213575063333478070040652009003374405952073648691556016062326273995308084281546923044449505247891007462820758415152338984504769325212925392372105400549474676491622763195867796873251019258865633775696693788416350302457537292348177706034909408640619147316783534442910715763741956216445339421743880755875707638800555934131958707942304361041000805109984984988491948220891645320179326708466340355882372800138900614730402867895377298631509077683273623982936362359829716068006825054235292794516846556653222399865152532081110930948364945599906427059675530927620804792212466968891511043274753057692661491544734400623208541135738681487639848491596045729927957908501152369608505674613902694906351275877815323087837926393113498039402393944476052834833490418956078174983612252479406676798273895560418465402017754601333332725294004675608655288442310206849445981620320319052557113891380421018601442263571663538980203769083179741356850555321626795910519840333820392576387601590477146959693781264201921097019417187366336706671502375097820059831252026831134677689044511488106444924207160284616145474765507337756335059923505286685046934295848791982688192267813732391608789549128492680514184572434638795587657490430591130454983664540463480688421749708188668249007877522032973699110600725002390688318560471634576517521551160404043619231171155153969545345251446014307463357889726294391544295279403402977885607382689661212573786806845960367137619349813316965422748625012773970762731486656552164340592070351391545956749339313165406364254042175786830333113546490950865507928838535397789994337481852177429629611079457152286601365237570825277159645486597570644196655444915239841259769423584782804620176281021664340262091997970700547756684043587042849777850109044126329354459705584118368329783237832126572069282524517814232827345820321133970715273871854976340110015590730425934257414808564523968590479190734184297899042248052301931197195406870499779232320664877451272279398039955641961547392003287832933580029102302855457231684188168593626356072890424047953104272891809763415683036787583345136797067476826358202215088811184012112718696778119703273798056053425858205243471052330408198335094164766110850871744420260284802176127343959196614607030150335862473471421116354424503332941907408744282087801684398996697320949288926049344601840663898047883715528701841225789472025814756436190366273871447489602277335268255724961813234989245821547296920391814543794611134862112325595594380340846768648645962481025239986839976610709768284848968924056640202620279468540685626624218756324319337361882932268296653022438863368942964914370560734806302313022930640425784869032249634385817525364076253521369489769658214070035156920041392149154885365854893359064024338450403470756952949380409578740364481119611378752427978667888298456929887305811794410536216185232904667337817072685183053348828623537960705887510456543056979906645049387421606098650280824993187776532002605799953553825323790966692193901847889101150497027341415037648263049138025561377877143196982175267517411272045974113894220420836540882932100003884645971225108841601704177884538312198941660749534798854230689037189983579449323611374618508099687377735531483978631499328922432927694230484326090977275060420280605310715844624111736550949135042498254621488469032105445733298012552854299697476729911956304878732863993199061392939947873501999862594326364653045186128042670919177004314979884059192429390738054719492218542078182265637457206181767999808758004549327886226326674942584010814601308808251692217557375322887048184517230585688862407637090858525062892293543205054482228661587370777226548887833694353271546334775419028825854604308915607997312301916070206792636698299514110582291268357821719834473577889723696897735825626718550402099465414581583489042698611021085807854508981377016314370462610506876485857428861530077475804858330005547054405736432278711236468404857584196950003519232278734226152566248176228501553164914671462050720953868782211377356361907349832985986107475624309907591054878647375157199256771257094755152095051329855929808907463328095424574401664261141560316674834150046980352100313711352417809216643535295054846135593957438976365769163919585196461649185484818651622010233150925947262232252134077787549274859684018298774393400851589572354639774311281251402844106922207602650623448972583077009791480046043404463429451949530695139722505105760659204279390559240819149161860872968828404440891467099940194987863131428492063077638371069879970663073232999621973968685514965683424224949674765064700709455714188009966995394706589379690031532741446028652206498272185785053844821629707878729784568691828504153526673090256863146484050799862400927311643703785540157512873634932562308877278314247068387293051496171177318793850759349778149924256669458033568395201021049580551069133753272451228218601339072631441981823277045739637747830892078251193459808214688871586903964186573452520613032418289659242102583012958339890056986805059560101511447550505277816327783813777745358872333186399977269401486592230747398709290926987610444249785166436560710217498496128690719894441686486591851253525393904054757400563086267352848381295006214617935637079000524440474329016587881759104668396753059145605304471832716044138931242895364912382504521207772644996670720602446407146387754994945921863175059302216901914703762121145042706441065020595622615544005105530822311454907120318913236905840020377053338458860771515860734156460833128733394432506406319479459834796926865263479122983357103887048632882891913276638106389408500509845513552616929101114958705819778076820138188516854429932340069479733178765918162814183800355684610877199210656512958555460808417343126031559391727039302557349932453072490598196975073599661525950946623119271870732962981359152354824012828665489063845558218296786076009104995774380867612502408713728531194072154413822946265723577154441479164602703878473943127050255307834908979821836055485250829736495473553882680779867254202196566500911339955471142410462364157575336168529107064374721826791694094270633417618527941940311772440645170753533074342761563383654650373477216352002494037813069605303928753716066796172936176595337769263161767779032233420175612706866646501329609017336029330944915195679352698666672686276172828524922798968980663932287490034492317915973292851670898694621486382222267166077446051512071897302183600299944835792905288816715980134164971298018623648865915894976619264497549271698799577534883665058150382623143929727035514108247779754445232171839876123451614505791545868180600311663716136168537948307850070995588650135155738906671380733563841859920715683784652204773656019182370087380223653007851452834881122979974239819697890075937211606442274034534697096590090762072822673681867523608745014467799650233431770554423044646189984315013789395863994086435102896313591176348135887142194994649805508575660224094454105284686928977006201430482919527465604362454106693085093342790997516451630359001442154763827614515328765271417233850174757581136134838824561199244268187068707451050689662922105132640163904071270476952292127935323079704351538225517129696517373035798334216789590380625027152597077736689467513825345648966048315848666024218241477831185326032489662801924209704966507766655941032106717522812835814321194026092727403344784820749867072265597687866979565360244985844183677983576604773609268060767029007846256390652984338131905196794338904502094483270569185021187067876964387720816650134678222836751209013110138160091668309328599383720294494787521914777629832651669245337942167615329689810998614919654457250498193019718397727250838552175579285670585943780611592586569177940189924830024765181258036810105652269158044888782695497397817249161416818188705386776877883253874223158073130487562524463859766513455890456985113847977236314774790467893229639820461021818305987315733354897675730826481599596444521295928370373364272047785625159375756718683784836934127234458812764710998120314094480403096699628184508988783253522753874043604576199413106267151080003812961289462129288545816192146895992885337162533128780262391444966063046682036515565519997472050617962863290984238291837337915696814452663548222167078617660816207463106032248592138897330642522905104519696671879266253052649591865217534249269951867607180963250853248469164491266212846847279155469530244632795652319203994657703085473048693274647116243916942170556258955810199140943437664165897984111340414348069851321831614170966337806462355015713558817726591695823290330123595620552739623282724724235894710148727777521704007982884913396421862948358065812755437638169430341344897897294072075988831480520660933944867648082786202942671150798032692620489747143841756360406469726992310808869557489017576333613588760655463615053542585032966818917587193336662032010094410286033464854793018362499174027157768689653339355628832817890253429455038357670489922236582083270061938160221826834123334638290792122166013491125050826989785480147079923352147845189859718441445512231686382287808709550773221140857003737642678723862684703770602621218244349279279921267909229112674325122698007575442610060940774063995781021820577677705958361930053832139405136507038571428064555580386807289091603453994608538985382671393486116451468455258949919173034439601308512960232783877011721377606419201615777651037295588719017196230474343189967677851210623213865894600683271759621886998692719437700729418524130164468544018451760754939338122897912966403859635606707128665998809303279945773842427493981710748314760963733741070977222482611123310574298041076903444527310441055807641689461283015811506208805591489557009893654566915109570463402430718058837905541855442122584582214019928949961318348579395178379109639533983746047712554286202362353976360015269671491772520763104616047821543352400856920100053214550888685985352262590079212485805441899854257397873120400591545856446234068250371166282922088910661395678252691526184987103547966017304500253889014200485218116816202976656306286107205249934575463697469958546961824637103390770879637026155843624283279735674634907487261898187478155487652622600749739043783848054923796468806687566124888208149751192742163641442771790524733027019890333031642931463267884786374111858959393368007416965381949135273483124342817992374440776752587446411581004510973595227163643225345924515833376190715907540081895175589911283626298301045850532809419515271981374817351875627682589497632371989695331620060427822750577539649678602073656250921443762229191711301506179295220417005371310237223484739630886733914237792603103946086941892809786213555573974585474012548414318316484614756878930604693793314862400895095010896773928197977088207244982517969172115086220326655366917297776047005426070442624414640943899966844967941531944924577539252496645545723788700868436890880600436203689003585005175591288010294657731223518833141813754011360699076629750167302088987070900574307288428351810135541849085174844716584537938686134838041811529562183145026475803537216600888896147081304148993018627248829675483399270763817868222061716773566270707057611459990772240183538742641430238518999411911877442553599017399879052905872211365730058705070771924948677221295992480347640124149657075327093237444568089214618660373353430953155209871766787016729728394226617291174665683114490830302656840124668379942468822474173534732932256434457117232564398141508216116739337380164966668916515316628587110483895059102364169565530830122412634480627844370081958001333616736146119503085042893990155059960824512009855917384467482459041122629262037036788621640373645867801749237322277318622298447893170614842884200129578634947269101289536005117201641240525417005496680968039012376087404593146763006445845828245760529126563004503132500732276083058291953224740472478209102911197065874583274900295972975176223690738870220022474181967146560954818087484446927717930276953862950979359492996083812921882407184567529054981104843943982978671088560843894863591669824960605558155425267474122917695475088505328466020653074869261344097940260608365529990683412390856143602406865380477653909039975785573193334131548386756052827735540203525667241581983302201964258764914905866383582055945970057046979005147640166307862366309737205897291847109827954507968889159215716421332338450248490443606247150874475034562888275968666596754074081766778473606561336013606693803251568166885225009092538515938905209288355623059741201900146610526992178579605979579778758659430300422769185337947829313404656448542816939676764384079401885588443154887212718719828401996590486120182815841005951333580517703417559672356249978215096644166964371676111139251643406764286904050007850298149764794865833828899594606008587766380130276457510096802726354104212682574651243110808933857404850054074178347343446985346480735145524376620661447384521997065426840661297467608813088060701499644409441906498065333266604163824932033383584762275989133980346347992560460815016081899303405065949640969175169239054357668301958087686649232309002981018385629106261213697736005719323074948229663678088694085281818544759282046376907080874571959319544369185578567081121999847092468888018944093258803182247100526881398443286287675444680463472617588398173138540222820762074056450836634551232223978876190688511992072118689651321011517270846797655373873118507531173605055990901506136669700693122691694227409794713367467343238163542970243030912792075180968959752233521807882561250122055212406715818117107392184877410628105922807693813829240068316681204676474361103701832580683897067977681109926657555602026194374412653293359822493971923048174144749303642773179184768420763835296507339988020786561810429410923304119307274141993255900816016805599848227170389150932652825802799788785622221532844153647177160674192684214167500712455566447973631494016393384298018776981279838502385886984966062747438591280323027452992520848874345902212216294984642699387365201443502948400783551122407870935076371778677089866650724896469095245894571349687860457935131260291872130934251509414757297033678441786261702733107152735218978293802699539812224325921984886920526987892768109262461135450884983627254735589858344338865985062347013926619021493561228322745177431307810862579636062365699383679107393978884687528069620763793466848251065854232962419386501361893536512615824204469183745479084684510184689086095177769790379980570140435580641195580555479467371200158957134626956689710827280721158359750775099402331161068936981177400400023376880041830146859457555435497570689314445131980420445942461437100491768123718383037407920285583496701887602805924270087402765326871135226890370386596123186221079448932401943503184547958149262830782497120079246405573950980856358792260784356287557291728125144815333377856069475748541428633751569138325157930832076859883819179937461411891399638403342304875502995073908082438962055099183209524504110110127061338023259908979062429235786838084934475768884006498854667820551916875023281565830582036398079220247287831006017371552793216967528888360294550913635515727960778426265208171971202366328030074067160957623545920750128090077353187790084093997573940610297276805185455556771043063359312055881907727439408453319423637913162338542339920178706752227744046030859603786409704259163339183534391342307303356473120882978677197482400186886082654246841800756995559555664813730095646121899808781304062947377036001682734058447329755192011127233996131263061000177341752024698435578300180826630120631611083532152278648557964481652971699042603368529885893450649429542753582652087930607197346546727563056376466874623101197257166320597758914023450602153429692282086467726226349677779371100579418505410072709754806857994257887635936275754223079262461496010604174930665849824142728761475145805905483139830205218717152745422903059607858378488108554512532239700648180770672383463254762809599523212236567119072179128689206949612079085553529192557830193104506870859365059883835432895824436783236836137973635591521243350939181769359535270610005521370675375472182755281904945973928874702858833725422353206972659531291563482235998526016565780476071350743464288187706931484942770557865801987111771111714104988742750229459130507493446420027219913467872987996171445816674171089636064737965269315420526335869732815855463879469144313957995580992986470477668781319913877392192371517205086395905171785225597098867982067541227212428278880868394146483674268883961411379695827664192446532091854957066758796330234293121589929865676861001472981882678469933882031476875068780492227897818802264053538746734359279805280605247255823606367143224285360984158519635586332311156993266193954113521048896421337781948552196126016509047139321096569837186461134711348644264377043995691491695829395441638917672737972886598910341243889998887387927066960292709800356810856698167731687407881520212379480794264706081680154642466085035289451516121191685031459188973962791636069588184717712717693448423965411419767440690658557393489382560689022297148918553222251421409296130896245326701384484956853808149454646596274037705665441427119331870890966492611388771085714147921004757005176002697463441464839557845547265150541925213585626965453303586571299111787512233455941259827601775325591322352403729841747633799872813186381813286540765037325911086966643530565568689945258547457397910546292223388896142274974535016144042616977981205243288564367542741280492464794054303574984158960874591969077403025382140822144117858790747416308092804082829160129744098839513043304889381887346833137900664903691529533924977771000570753994386290289892110941780771267996877151294643296537341173658102252544730391882705848163090398279863473355700449500075311656800701912661416084400496611430365427351535467672791928745724988993087252089103729447691237325964390253910123591873722311557645615606791506993276882225705208679200034609818960752573428249027829728565907546763844699142050472465449116654372704680969749685715255193250973938522817318823428728259526413125379624432847358964458118752570486908236786536199781399452292645103272928535485357456798821525917534995857445035526892241195993333503198174673766177829815335995795600974563091527477099356270804948743331714689047538696333022572983496491691819563656971111798215642728812660828361641299070353998192003379656366361587944348105798608686816718893486066433627982902456013134690882728189876828904902143477897375422686832089295528646687784466608672356065149443780821138949719628577043481369099472078712109707865478527149715363585518576974036644728510457384559762098339361745613120290045617734022138614044579063229057839636245814466076801727690050618409495726452003608284987261257573249091605243702257023376893178964875484801908098171715321093738662995699321052494326467069828542112404656050048555891456253326640259516855028973493439448493596657407859592415701110746968480788230384192263256964744187730735231821131003456176049160483517313569844850654328851660246850149291522531330418858393557751901585022171364288673983740441205831089414180813933112460883376868908403035852725479646070102258469743479202677521176910781930372563996397891614319404062003159395416659061417372175049759705720569837207667203607176204618141806783384520795297124769407003661515982127153265279360616485910954403699800470827241984007933258468079340262846794702877534443226019906022857378282439122613722935718806802935478750928253790559921396879767330428491960616811985664736598908615426167298590895102768406659424718749912585174896820177144849847066815290547789090561626980201974609774968576069443389599553899655103679086066573320014893202231834195727169983459186212313630060103651687697908639276023120625905615783311504803752234281225074510910342499374359618056080958891937180054448718831064796781927680782064411560636836013493835894589431889661110753505827594497979195146818234862405768059851793627793422048588639843109929315658448537434921383712849649579421641948810099424417681056225689421394606416157306937818068704768089000778922295547717544750893421888654905035243731693967522669144146406734946481548724319087604743923234794381328936457101606728951302873647553082316028069589806736849588621175811322391119846013366825703940378839389591268460963386431506989890292708537191173502685622950357420533977243255997495640640700599517591259618020094545341281072367419282391310098800485322026579632209194317019711579441568172932810216505778990249160808402736462918989648708789871048878989208963025682290899558357520847579291769651662093731917920592192078587427802508502051335188403547882466481516685969740039846276335749840501221583301520521972042601477158909770556675048149882533850259394130849250647565479860252534161493174169492273139034999375802008352486964617951225797427459101164450984291009269202705627353662487585239350488001474330286877155176541331496531643873821886121916816466489624158142719826612752220963287936844874080095676043157998670515289675837605563344566383802369392595405524407849739537499765326412793928162397497602336578545151376583830891398137186190377194502603257637876980015000434701533461387797352883226486482866693840303351778132861914389224239679866800715483950360297571498293787283228376244407439015745818804064943657403023135149919358543209730867840620859540998471071785821922003695977453522112294587629186677128077687773400626243187001974376260258617005160082516734944829719114568114408505094692157463927513334453633894900128289768423440112733788660903114390183283063035835924388844579483261602890689632563560203350129073622618317617980247390813955335620667432789702972157127771887345710930075737583866171354667896640094984738138003652615558797510033830986725877392775553377421466090151993483036880072908279391563716590084563509034107848526299083553777446699738166318681811389527025848829359131478491405578915398186134522716566910782808628489470376212884222654437296130899063451987990930510626366847743712886688949307858750613184466932595526786312567941124298214721494814527108239557787970325011492729177130520293535637425060048969116090158759775883762201841497972110596467374927064078663494023809995047842099654919103990399049132682743381182118525418140098233537958222294441016919001607295986998677333593707086615399766950058504404115362113391471365193539075187044240169628889216499844615169379921293207610276687868215629597820269799801450108100151556976421258141715893247616630494137347776101571641110380544735558259653754070504934911189462656588718206388092363072813516139792896151880065174460144153233085299490704585501971771560280254187361635354542925761239548847590013939038195513666785991026863441538196786107254249426008141035482070212440179818159478309460201379564456185914280192970587500783018787270961369049333847745545877041372006678663849496219913353299919335229287566478068458714343358336891748761067984367331120573311451372201177262931762625687277232752211897166477631674154267919908956053437653242509869175630539145852080172815166999888399102829778219401425880894332390816702958248299553828345908769548871865347370685645411006719710666449996553177605429125406737114987848083029888173008461563270061938101023869849286614284650859151416721615955672616988042095047242009060962902272236118437464072187569589631490895816397632768352242809663939334762001037485814476860103083282731889939107031138038646172902664358406821372624123716785836928570998618731885496135343667871094266515715102739264842549586709617740001201923856421045869851238017205624598798423126030629352072572434429247417078732220789656593216911250181425407018488827260567908160339871088657665091110247289440252563034746122214497951640156870194737150209444077554166933806650246748859206712567549844258093586843616945521308256929476027630343141886093505936441396798225498754540900308331926356951997140944245224528969727490014540045316686870427431744092086469465658063818711450205654803933607736123663819830742193888165592804791063996855757745971182880203167016682607246666561694106823098067155497898854606852903803696080257949829082503975752136978858147563851303834770609932004672643082640605260413346588155372590577881552683303291328510761952515031442407941643640303008812788552604780305997365679684951335411073500540228464932516036740579603061615514564420980558848174245881729461737969146326584780478318664636364072895669852355696152151888180688254333819711662285537464566595134254548996690251504736171772413157449951443090916115376238720729130594233183550461882418435769128792073920750150745828625535710233162141761744220719496544692300020238727698721356379176636078248091370567067612226777693869547994545129165796885699190867233912266129601405390306354301851224325720300557477959323528024282463849593493729917780652767807484249418110002175267647711066613223752391014634933715162400385850031547638304888535044079847013708605337456381628014815763112384452601382294714829356554279452953232967800117581096582998641386304717202251040953532679045922507433370197051171839725769841879378433475846354609702113401269426445895490754933245566759991271949759830607345283981764695717053997320781556216027507067327127080205668532857207292510991613730867940142553927373093317155774832726820284761082483023887026913500695778396927423819151170203566069415795707655948419916659154849631104270149977511594451137128977404468033258345534636799815586436799025108470476587904130586379480173267230330339303785916516983946855161321084826989781277927899813918431864545138747108765499450998647406263306657675294604348694370861440706972973296413936671779199504411840459321016067096390801552496993894605348530590196759438075715491527407934705129752760404705584732374973887127624703060306833629042208835764126625333922910169767722561179718419721684543068031596087390801209362192089416930632946296396398767706306683882745757753533729985943740684813585287035362707748557417399334301298419092693209282603090372030886985717648457885119459814312575793700355281628792311646646794176441165250433849970384583952156267663973758850281361110799662179079040898381107066891955446835181076582404429213766540823865352582089200239841891214684864197335044946289570955733519513605300185210448023890899628278198744526190003693183768067078975223105420771121274537585132716721669032875133847824400707490526739643125685742587893041925008007061721987679199496963229288606212726911590240364179788606253341852262713593599672569234977625444693839667623680074587117315183334456684445421718853960516687104091754422956713370123941011281194506882961854707299956778322085454826607535862987142080966220180956869327588230866216346374031702463282086858754206872744698804913901138354040588838287006712523984759695431012850524162585837698600842493928228503892648317197370840924081454887824239637378854308515154765003187478683698277667241912312213155227472727632435651381330197221364135820168019453616246134348402168377932407814000819076363146742750900525924089095710131305314472541022956583620403390341188230423578241885120529679822541173203417434513127984705153315718524453538965852579053909772257725099489883308131815160925009882002133844782140527257558172049054188371992932835157111897742419505956337436520378383577250702422348437683442254692848258623745052250182174339764931514484278043486103668893839277419188945241207394786146418718456594974784010173064501231774805445734619884074458636310808325751346505027685057301789585255560602845312094629068606059150897608437021659372493503391167769564416382013980397896048717412151600392033380780227726440954603430212349404740184966315911913080279259579230876949513858608984757723998049623446218903831914508972340421923451857743210954680683116558152864419098390543551436300780070686112566657466892580665503410142591871145328180941801911158376874275874066237844170792443366813444516248714754537776468226285427050527212480580448619754960810412519775273363365981395299714913216834129962378661604161105526836375757700185828653732508231923240723326676660147325926597293514650438454508234058469689061936301928224672043534080343750743316836808428915971449927099632773724323387086893210313997857357020013123923121038521214535527803919424843078909141900765446801121038263570183831436735603962787091509246223216235795350382491533781566709269236862954351892867746405068160323514187085003822073199389303845754409259521059383608439789634928092782225616854162149056121452584295737864112779690772516192377576218638884514241240764167531863771892636924256784542138854112231255913889043203078646293035617203353388124070907521091515214857323301091585516156734536950140008073431579902719352106989994583388207241950917368414878660985546475145851381253281582046622836847107258189647972245772927058194220609066570418570600856382345369349436796698585016825645981326073762434926356379530580245882219221231489508885576164219775672887153251006769282073377899418679895255113347686154051760483981278292396331713339442248207337702584769872123976422224239677240965043431669731978574476388969539711995193486260381041257405293324461936644381103427961005190594367635264161729795228559288361397987750394252329509125497591687427070103278948046970450049373573158605711891502498013490016063524845198476767723496657434567413616916536803514102135498638689468954625819588694020916686363267637527229987006873795942240132321843366737124210898891424086856211223004230907014179641395063310136129537813873396842878128503455655120117080672725845641668617420207127170889219656362443676324880871334384671929003275225066505989326586866228193657093728231250044806172351452420549455434517331688629151201181154659842721695302327506937719085428019592607619934382819303774324146488715391390830735872717627708759603009701511758162151738883749100592617673036213167183514087935822122096473025480457185689839441702836442068334069246569163548256447990342686580651008600690202468861138029389577650081628777484310177686879044420164059586614404885368803539279587256824402615484802114872776449015995896883506983156441169807146489899066971669237360055851736094326367717713789909096492943306544108601988518025042926133305344562829948320132209065464254882089846967927694667960985878989482177247488970354215775372229305143377244107178453388182862370649079426093049035788510190419610016768384532495380733205074976852658729671252697069852329349526607347834809665141626445966158177810178017688834924166394125088994351092949183979050773849616618012395833057290934110907288126591873654270710188575302215934915177679686597732700719755374305251303915228007984135324044011218209310629120687838756942722598233250508160260586287971480699950642917278202395237064355931435151924209063617083416348348834728939188472376990034088229730761196984753084740200802500898821645167376522017333009714302164331713682153530576932366661033598375252873300461552330290235650716959428268977996482625849923425412550231691924362692535147408643668228261986475415296169742045073783746117949451258344996475294437823085552106377708665486409599702166448578630989843569463273689672731755346537804172937086856476461681891450027739941667988923759754852060238500521500811765054323648162179358953432828875404937618474120796675049660148344433010809045892508193437951839304836599176498282436212094864202126013659532175845798176399729867967532123642262905737446727149742527148242859085160908792117332941929826940736880731101371025578335538649746908014957490793173367023390699752174258678907635195658077211463207994802693759881084953446286389172280744638854562166032786671441337761175017621106032601456559712683770884964102012077266996641904809397390057772122866033492299190091069483675942143464152995930293916732906057484279183706629141323779313516356116039314765585027722786361998626145509903286593775880062602737317589553177141109799935039399689795312699529662065197239394598342467044155243702487416025221502144795566104317011131204178213275053584795076887518610094667618998368906709692684467712324178572769875205580133687799050675904218475149103826496001650097610984820072016598201962043007900244331948910714967470223091305951399207119111835632862442360664393428530322461896435305822278893929312694443082605661681812909126000041880554486889233574163674374056114392831905153966787328245483842470564789278193220727737976324425570295059961227189395453398990451683242555462380730465575810416223126465222319712454085068879444408440572169148032047178147676392893968487465936603153705524011665549159187785657878941086011792663616285961125964801283323752381098950332419600713259967231765295921660262046384151458301891237472447756605120310140770332778486927829250900032491647341282891960206202054931744644029400685294858927624074057160080845280761543478376354652337315844556388287383445662502977746797493952554652057267387426845119142088907623388091073923859968192536626362135401671578942418333844283107812270790445789850172794835559683802615880620625436382267245095886609154515217037968648091468407169011283025218738087976450626492234536818414749532996747320099481279981507686707809505219869977801190354536182927899742479522932654932782628580581549649468250314143706962638937683577526038217859269636355048307085203131050383642192175685749123083922143686708684258955024782224962324997791565847925613319556535091812308906770104042419873306451056227323750318787371217215474581005565224185947963121866703646018202083174450114633356431261333489755775587433734758172528565475878685367029225912702953822505566642456372640550297460080137601748688560044043437261543584576824327379093166163393252841068395723883627720803031418260679358029519428703808853065676331295738478021278687138754995330126415103062759738807553462735037589937745622166418877041686670509884481880186497281239950766111172304982026232515917091903816036368688138359776164901259190209108281378905204554223112539106918374830230010499269819253790750661961027033393043873032016369595045483080992700917183544314992823622967291117059256353321053643968168723080749682897086608876076204957654186358175402630235790052974013519158631358444989234897572588341061503563992656768049913275792363109826839494065243170670665258092547729450801100610424668097608768444025316707385446453962691723561023489313086047873908043391885861022439070456411513801810804949487161622839626552200626402377079559493653332231528196717344195698783623872921436309862220681386359670054986040665630975795043270777981032225628103862867394916157154613281116515942069707191001270997722267376941162025751071723907020100554791622938704472421520144300925912312372441454308560217388017817474159163057057940994772854966290706236924261787002449367751808322446485718558671406416255723348938470181869921594018091850172545842104166881877727635446232383208819767810763557526481598663943428456231100757366343877311865781556972583536028522905173942892988676702118468114505150409422671528961818591222664470706389657629329720986215346289799379202771461859460228135746417674349610699328840056783071108600973048866135927385158912704299706022107705866126741914221977071969319080461948159982849842578032626902612063974843297958494901739116326793283152680512701039624007675451595125881869539693794523289493195119383618851759317408514117330023755868105388368566640485152745600623675134926417018660090841875917044061376656625868401835849042640104003112571269306014117319184918895347348036780393850426097735685695724218639442587960312604607293003083702439044653158644601888898036417927709014125651329321000969314336322903739060463866364961275351597045157931252674810109772906313502136476689317617686649583072998853676112877181261637279219958613591997821647873444734542012996122089662425578779420789265145041097514531771439100127504041323687501374190340506279335318750005881948355847698096669055392584813309136449248024417816529134187327210894137902409159539044919621779319484993196050548740283571204233032050554154091885314328079614874435600624164430835737154387145331607574864894338868289785476336624915128512848978858109795696084514950334138591222973129485645534441205870055394564645604142649854372961457702322350334741398633312789499950874107450745422107081975736491509605244461895568114075837269728740655919618014533847120121522474023196957552003782948376267120357204281431110834320117787375815361543823140704477578287679907604281179868770811640527827156227620143621843552566956709266339420448470084137353517514677374590476771438349302098698662395392452237866832819066390696078047643716245023214455355511450587879757649475291447708082701644265665359831245065519505425784973150094660163456326649281912099571512986956828712794556868478089199626761198418513812120031611336427977334907671000145669034484815643680732778465280898092468328410328738679611555051517125241911307762608637340729678693207299817985866997323019207537189367898758650483847395433895729340978086093406055978239134314790249144953458186488642034128971512561965361334418930882376146142407327619218614431308126732094559244252398828829402889785125400214948878649414887692764400214667048818130779792651131651507854911127565305739880063688804413406786884194000726135963277792045760275939728663738245944618393628568528919389549328764116570723028446754239220873069949239556158971898140596818584448348811173880691136542065294464051972223288454794464529395941279501236434469768961840181329149901718974709486743752971861806024145897616664013333618865318726321104350190638718128440726056141651406332960353098927510463832716220634127144872610462602605861251873368885884978830942542556842518414638790252658396274442193486368875964936429879129521110460905249414542482654892374225713521623754675744547389438700657739352958954022221852479394046235208807655911958364884257526542827918599904643320060795879723024817780834780323793890900530398371769979167642494642903720767116522490831870695300069198638818532687477053455276738407405518153122480561666696867283516279971762074453497406110266879268451883856485913154541779009995735526547266444392237041916818365618341209780973198929440769670676240934288416897782405995932319121392321860703454366439242334799234458174420121029987968861896553294742025796546377241721967841500026615159737878198942984997402046360283245397710363328556578582408061073598537419197355266035688623403322778146086448981473378673882455903291973681149171760540015792213097433419790117658971321757528697555150834511268078190191841368430740285001152973878287773275513882801714381215764148714992298894042715419770571547714111561223865752958543566921490250725741077905409637297304519037897587913861363468464409028886325147894021207336621144582849923163728404837201458895201645759881145381526823749302311183833055006402451155646872894103875718911842378001692895483141247083177785746519780381487239151938231094557707356580032002155335206773068176318907245171863857019167612938372188144097893240968668033013504433149638693873768882683184915723064633789466016434998897003398664560705431319093958188109223066463208039862052351278299110043445282999188833998540005151197454965107574100959925036702481847346526710344547809332887964649656373921354962480780857352081451800296772425044091480812376294004218118793700029281512367951031785573256368031660655095137243735641938653763370011094158029430568582461935455702322103913153817189901178827600357126984785302455566654415188103221281555984563217426172043207621886080033626643019452717842323298981402186267400771987995030719224872908730768860889059835284597089800900970880745294309801827537603966846271391976230380704320192546230362664122623406930563626583589717124556171665442325559407364262776521714065974363579033339827157051067656408341940091759520617538576837213551908807184147075203054658942368931471266931592515233639678289220355187272484671633809825345165915418853154559580627434450713379460119930805086488511710846068929842926297753091420735043939765061910547941459210711783388388907758668201622164256786918621452913735594194107536240260797179806008463219366744226541809270991744529119993213004501805715274772761708433991788472933761024915108521794232324309446169256119678323338203642896510250059951966754912431025830915019201404756070627823121271739744736059795541476370653498468297087902186013514496089775937157320068729025865760592669086956321659908781370176406797489964406350702643736373453210084542438513787132417673646534033811881924463950044119203460681321687622919090997436956680582016793217719213543383366842469689907067772953004007305553258495065131681520769898275291870302662314656355082855215978978712685382818773045032552604027542313831839019762513137416628890797646082394352815326116223226795621407382796856934031088118695539264627840181737092607948699978128594983475248975884245573551051819914997149322695669095873181083277418816928117963631010392153837200210406812814232794098063583962139182471348589755260874831257686669323951007563747347594060124157427635368733627586095652233756883809370110293761473511895656060907356738278372285115010407380852319867976053143609979952026659676276855849928184100084975956731363845569751853397995368688422638979186936553555298069224761087583952642511260642197140656177996948072697480321790106317405901415071052647413917884276759367039959023306214125693498431869324056018954107238059172343861134865762625357752512406364402290143302387459805081490641018253305426266147768270532248234653398083738700896858912047192958907198677507036129794721626045539265091897886340099779725227397393729616495606816585225438186915682702024290317184669849121970239240954306613438959599826894236769621591934654961153407131799739958219321903142170360153148391807265118323668961406693925415021331262791217225085510094854355424818007141495244891281939223397458171122460812509765941540925282986224931919063035535310551392141310404167430115665001526525076872806966956023139630368873072531689953944294561067709726933633131397452222181863792431580014493108740300656051998952510064454826560949254071015391259337873886742456480865174039254674562203256070651821316949821031117203794390523505696158968370382989489973815221222039376582873437559080517945301419876929854067436907961362558058141774774665449178545140330775300586933751175439044081235994765632200307336165611728771194616228099028250133288929191381409735338211483616338902002769804386555053178569751519608315540931607575568130083383674682666243876944276251410488351592075305555394103496565971173998032456927112177916021109939270924178948870439420485622007064621591431183953904064590013236995757149260122170052210380780380694202424532166024037053981573594510730734752653369031792709507008314815380354873138651969711356376665764488656996099373898056503042807402785260697151057353184530466583258805261225939760367792366456902820078985557537764450448369480400620418647802470590620183447941335662221002368887005369269628934130597691306467813413304661374986135731997025599638792822757630556995229186939568156009979588392885674210023271213455262236662365589666139351357804367262188865935775633362187593196244941161814886356259662872461367847114788352869642264931574480981916032911220890882747052942035213544784457120500308197486114657999904121864367875820461977304844170467151808997605183930833490783604059601327756151771450916278731275462565684715655048438171190209001229981454418924849445900419406060058140043762211996407282521870041336531992404557179319790204060883568713147838567792614898394862904661115854516768480191939940546084596773935933190171759011951698851777885530695777356454707653057232742029515108509814316798037883603983941012124981895734471589859017895615579002807421866522790970068036729380177437450066416124525854435698247192517886857944077323852097894391483172963841038871239801886059430162707531088600731386762131838513270792996150607213864946091392354909018690933458732209836545367557687195674473963427170719222373719271095249196392584934529896176520159302133500963257668010293641012185653026825871383554597408135671243958075614540657757683896717999935533924369809488242767542520072105205270846178225678421595687172429895612253324122450874111205267320960450648188132136355942385435566928097916769896598553360340695669180964371442467105252265585322913077352521600252467841522077773579321135177219711963287262667605380418095808571256032039317772534985245215436784859769119144565035267136222315610807332198282445397008439207823732078017883535693865894757701435256253495485079446735725835622024556454268619979814993176705484174852868859015778326558348665134160109174066717214155818940704718683699941900469573584663352616428220106564406297869468154995006602611197761831538929201588671341609786508841141422033401751374519824829001470346533935264149214251913555680509177240704851793969035337008911720087163570084047880147803213988133812694606868358529445981898257827481997556670572665055564000596216756496814173716174624173254536453356421722374101698940308348114939097608026393048301428591785020000893358262987502341442074826215643155051876954141353033771592351315129475050845987908857415473636345571707965855072078771647253355787219496159358510129985483984091191116072596241663308592774309879241788928223867911680195343733520889860893393441993511453988194363063217465408630761154688512998499690418569179157206319525812680517273545384791941833106917188930201322269175455884519279542605414563849859061068798666323916798873317137230015439056539158339172417936950661453307396173313977695124675914764344626856896639271098529906203720260292814310658224440450164298753248647013062511489359028975039908234076778574336931427329829402383240657033104931690225770616031887195084710210694484155499483677634352533142183049864652515301905913189275904473131131562173029991088867029344555335928880480757915512154318235172764550943585738180668422323615479336840175557558694403971226872396768511321760174821494757031160559931060746098076994246531397770072869085084821387201030509798701940809279343505824310161346921461166968846362692623734276762915770802613370386001508399368859187372548802624912039925348742226474185319440571018268979479798671172303428941786496620726188494237145306738674641906766199937728328409170173377515983904349120910733787198675728743105560186893211132078642164419998541005954753750175833985912231980608246215904968400357432418604084161516543526699715945715636387219496972936863777393222492631297264258653259792352583311074822963803762745141611612141118464290013523045422083060306878383028980966305821436434532260012551779581058778036264919779050436844199313665324150697369118436167804963597463699814556411324242450357891309489629200011693229359671114478749197669293435885056016143832884218869596026451956798855918248029691618514259107922907947087464687968179798031260820280210857323575197843819209542618412403460015241224977278340121268872148208286887704317583120561974766875769403298860094975712614694069292266740830250134957590530586020697263711428922886323451861339729318164335579809331158856521173938310954965053715153130003653497165766683930783029554520071630848386846177477052895910913435042851214830476187540893302167773374273217128399681897465640501858484056863333968204756627488921937666764922439578043452406639269481183035244070530398082935309366883907734857507387806363549762105816921491748553911027682133522563804877742539626922001830549734134892801830046976398743839788702293358541014618794213866598612817378561148116184556765871572919612569091200150713047327095612140569834781447985109005068864798509240128747308940312469479837861823780485936604582739287005575048595065836536906235326341212314635972699931791147427378580831427498716152647639485019778079832157160880550633823578330767386475939378619577730173048229534106562924949674471670991579731987964400341157398340241189775023205094185543765451485650622712273922603147991472030468286251075190682082558362050810479636455325780528901480056830997576280858821559481432253427449505173216936293804296582597014936678717708353818406665959535009339071678951258198925094934057596197455531122388407645467749760845393063515849934687540725815731652672409897454559732598245108223926568662018384217202730916715694889867784840816945758002847936321434729191799757551325096074416908974605745231189475507944107245002245786347321324780835807801257937167525242672315706731185334250046112703502273240303380885657255328424893933742352628709639669994627406810901574073169199634787527686781968343380876183188998976692249395816379627412225818508853729851095712583156763740146080499506632879913117068324272278973335376281534787843186230413692774204983707901999014150480732225908953293362587058527330467623465276330994996769104532500677963772230768334861668385339089736235866082415776325338798815717246882802883657494472370305082459649436894677678056577811762855231809330645019448166636477122324043202910613279897159781479245104141067006026908737651357104526675041100207013793843027405345375081243584865194189510767920874672921886831319534597855334896037641100494910938438175146955506053150223966929358089686478092435473030081730091571049744395005855256443782602444253895130889093331955762132953476326220355110025236925379753567318746163651930681362901397490945980276386576256203573698772479882265536573989318225589452994511017019822606924498816974068926454367458596951580220014660994134794019318925480859461177168817140779935100141521496256926848083867048671709675373700856589292360743767552103178895812074916977646609168904431900783771790769250183683590582817650335583337644132903119679326778228608771564735176666094304749492463686278677270775222967665774225438452257708636230338896189380499903372494437158748452144901530208212120019029715905010656946193120713081225954697601911386572151491627276666201747338125886344327187132196448349102212095102867267897700038536991593463202760543708314959403007987541948381177784968771750229895321140223481923393684388701465802493338473348566196837220590328654810659804246538096528700614157702878831772430762838608743797428388017451646442050982840614464070793567239410520264326483113696470639215470977367271086461121407368793388891517285037479999746056916354554419065804518284974216102400140502207649979630211507787487582170038407503965353878927183695230517487098257523215803038267219232739373388798774653924424561822505309050912928087115622182393515603199243550472856350817509035827142404666719676351041901900239461464355133007508828680798781838850608225414539314143330412510881065793378655534423753789372499867214482414797751611148005109978384906796079775988652047261838321473609660913351008235144040814657412852415232847820984977203111474353622402653910145795873134435829985942518683540640252138760330080985971201069561173377524872692764170696229032898357915921484185234491582492389583189418568293615151210325979221205028848423220583646973061176613371873398653469946729912129250056266876540948315592458377631572087005876262078907953008527850565959048570344733076601783409709200085413944906773656064357705390310868148800407172348122900753025301967682650082722719222823308023587390752881812038310820010907709576058276548730324940748036502208601192220142852958702068631979784779694214432884800616072609377396657915180417709036928353901939596862270425385346505599553366204045060876815112008142382104119996270355093682483234917185520403191118062744347202227644972540181926029987300266858669866635024587375273645589715266065961808739209407393990849138509013672851604325005404241554684647338106107395723732390178625936471712407290702943044459579370433474708806527780931216595397341084785555391163412376472246977060801201879501373236437744941916981678387316158293572809956620451875927759026105896406667581494817719053691335711634143076382737555621478652579455167093818773059083426059566239485033262472310841132007545339557901616886548267860730289505121088549278671212864142405137223790628784225405426787416956749258379430384211136692164178331460557884644515247065726734058230121213899555886458838266376110123461776730886327243149001561824633025825568564645374911444265243943512798981634187431769228507522683502283001897042212302691466726702016117486616170712587644150091538785556579611747062691171807694553183952545100208900232371153105741589372163933669060896657425143246664946889579540061688451867282581989582166878038409412187600159910534324626417634174724578745395752029834616772757168236174150478978091512774933512368489981803884976967239050775862654638579498536698139452238390036167467995842239995149535404770789347972375177243382302776368305769486154403621773816070990902288247509984501387886950289688908558290329820753189860397562718781422208751710052438125216502906968344877326873342475928931819554792327590180627662011068826495372153763974784560768663184200385125888636914861095633908108602092155912778740081700099311271631404249607549129279017706099658767179382051778704785964058149447555825527519021817831607652439755741326124763629010487328298324854469691234219330662026929338531975718842359807092104493392777403456061184766144151190076968405053305490506332500234249196299091904904635106303887030793830519226406601631449789480265471131580390552613207792481373724244414773209913965728507947774781854978868941903472376192459683601532286262196699706708122337089625888966961460791948559490256406697620650705708959507375694994782929197141452444898221068864814026493162921419722616772890623147470420541231797357817820967478193451694884162836233550474521779635863499713344586516793375137344599739914978887946910750802953771364778095630120397382656645678658976725719698042656131049066620005965610367611857460997291484321449680120373444859846676965270879776053372806887812905365219608190792622280914266511099181722426677083380763275026088768761022151958849993993603371098589251211542440230488257925282438917323627101444983860811306605471006679967013883556374596946470066848666123613411624117822293212047001264404814635095342542574653621778542106188908602495162970499339603618329109099971806865636090588019580293694262263010143496396414595262421532215404266304943982649228425501434704286757074956057649518955802535457204807016980204481347751678808956608916463402527938903148267831559703331916807179895868350093399044064536163618237141522211007916227428548784227163899058837703740616232529308051826994652665691995200817489700643286078169730719403915061735238873424204157137301887578032672851588318134054307127973274771941503605619445526492434545225500770162406353384333501293696298937636152629000323699126875568933833905146225772005834190325895785609093781814605311454995439864065681332951268868151104620917962796899091962750719467499823631351942279756416966272018045370678991765021307246870143961888857219109324301080262953805546443160767669288440434901892409252523269792041377372704659852404499767684857680503289037211805130958005705759216488299568798517512601108446413528558898973862580632120659115922014113648690432913853314975077355494543586738831748610355491170715984846184462945348295409621076467516724527712889062885868382291776459829181822967259657556009123091886222742204628780544648058469728036826455208818969046699135258468956908411434066331432530131354240518177648829972911523149678284360914075213747474120788645969345101740115416145346748942238404016532241479810512261175070545980743928922805714365174026013182396540942912409741196347736810988015314799216097104444141885726888810401724097798600682709618734938260801865132689989545395598525287775120862682061622349357560512023646565733212949994894249063333066952900976511464789233280150292191232527816358810115901249735107035109441447565525182279658312277015424527186742373114836408838547326017879592489741848264928598601061331000792775495176854234046366148616522596101447173934842080979926580020140403693998067812382915607358981910464835534307056986304330787915494910475149410878630001702946321151497668474195012517991926720286205455645717363017778480662837879388358955366866991400615079068163865308512280154819041821516270537472916478628772161996880724310392535835674670045993229957668111887005522755078323661886048752535432143120270570047728384868852761043489687994060661660761489891211392605885129002857013921220425034406493371489042025878977351009554875253752327065274303317164767599482383032137953281773266459090153298643872527361095010188043360193303805701949350012561668981071861789208018443813111510380364341062895267279412725348379731323844713738510740297295489684500828297050253138554855041729561085664525731261180147957223990276095704409509983275994547341762559184368257113096048552351462198308353928348617860818879379174170254893868645532048241523409464568992059402340205050735062752300678872437286754249109739268482377749035050826355960591410134476557993027101670657332495007471508726644822907474715518447842120651710529467640573073702526343732825414642967145403610556846494847649455297286792428620353941474963313517314827413054405599901759663732183942438463376143622250689083225154388296038410128530838586033435510415586468991212013293852078984685741920090703839717745756972616783699406585485873826680256287883317799959802647631819365718470296551571645578297466345303332906300154975070479109565421736306070520159864229204391159554301348709826485728718895969963008019563930112194568131887734155087827297887375501016839880114519246723335485275459754854756539279802357713384910097562397225365716605066853924189760868649315516047984230306803585241243874228003854667628319029077688308640484620199230275256947870802807293200686098009512688529333499117690361990256006511955654341757886340707417198069460398743535944930900384739350364019163785686624515629920207295864814409562239826842492998403096736648914185541870054585879420385724474560400131128881897407214742391179477304489992082989401448633006370279722695926924369564234409340792315184384686990353644690596612241052039315744460835502487398330948609805935456394866692602298268576963277713846356704499914690081028626836980431990422715694671190290815836599890167223616758568751349531200564803049224467211664274727965546366326504053659465729346618739808928017514247813002863600503597935730805919393176926202935414039712940442249921676284534890836131807984054255961928712666927624664007241598288042900970905303592953706206777585137878975761258108978864909215494116193443761461540531262613694821461563988982836298163385225848006518519558843128185927095814606973963330641309365093721293114325275817260533121653017833114774238342693389611714311170076783577847550100255906278344181898976292858950731808548454935969724182043012535489983352645419419608535214977504666057196872098515518543011461325780661236882139311814588633025736797627412487929159846165279443626968150277599382450793729463876976002036378362683237026430060017745197508712052587247991871097941923204015608663672858428366351419901674701160653968526999974574317237214694414928627141579923009516158383361297167896738061962813567106542965147373213480026965669649905157425478740225843102700321884636932338651169476086517212955116057992120126217665794284672853661627003707479302078729510133151130506182800842753591554024688076230345202793698040351295968206866244161038029012123278577471422478052372004608918769109165019476041080849232574359679219833028172564104742322283373662830896749354155048493933124286881747679293743955429161223418362769300624247066212081789402705903494510374514485923058480483088402654515937187407834562069169417049724226118417355753270657914195410227763141553178400080392559930015413042351986969933000506408320284821579173935489799099184577856542434213020255031036711471689535040080006726515624159208107349771955976635271126649989762425427552692057811002810238301199531643721376022902888597235969592747493308113260027117578290484440873786239403940264227890371156476843569412944321721681681733861710796908812319612158860010063935715527763800768885897136082476158975265127308949591475960048865161336785201663786787908099586125609707779163195779619383936110966118643118469159296250641324086849627705708103048588305253088493027574009357319897052045407897688090407517505765016576116237098897463758043799005531018968466087455142519935831760163815493484041053247458184818024356008824711475172915578019019158166333982325845580067017564989834797473441631625516937050757810849058992967878618808397865130181069496906462551977003277119417758772961795340685104525384909937139100735771571270931066899363589384198897964182620071798215741939313162991368551399976797616721438897378105356025076661338572936261640017381224420119649231487478531110818459743077012807651048459442103523105977196804328136223716144684791637237988431096560237507312539909101857419781664670521912591207930048221102144744286911151820940941453754116722147939414175182481431920041166208461223935002341827180990057787893833094611381632443040226181497763979316138545064882426349074964126654840059291762082878729868340880919006626059083270006107701100372269435540533107724372466445682724493667420456445235275122201657870446153691314194689151643107674256619971277832422011179858302452560672074247994854121489527715508519111506588743811761019570288844131405467673775527907710793370474499054338074744391835557440460500688200908119993245866612108162182103794025721606385232121873167130112257453572482273258057672883261153449341129727029085128667602462928196424695990363035110104956626604781583124022502919027395894478077785774609019223497361700837418228462374940604183961621946755665199915619456430192953217961867207422152813306131796111797956301972749477403293417756667235406510427900263352813015973671769453335918762029665699101047280931505875618811716153409767563257645114927005076798310016724100248282747307288859086761735148852029453085306576010743614215296703559514641221780526238014922391171767387393516325959918814448225532215680914039165859995869882171286892056983429435629184837682906842127198878852117727031287242573450627520947235635108827260078870760346604998405708307769357943935416403706626865049574226411435376934838621941471083020997558847899567775154843835809876858561606936364423115694330232706299098200072233487374016657956339436661394136084832161386118653360785976421392050716178447264638936503201049731500614179196194939407528617294801439477472989398440561513414819122452709970467134607254109260798400074447866720746501020336811079020865245652276734049981298357040563624709873557604426338819178585526756045373210808964009108604229694939553774051094853004431171075682197935920807715445475458067261752567880359384182311801833567620639602343688638468021715345431904047777784147140937740084751241055793710450226838463854862879958661158679753293389692706822752002979776071976929422289752853730715840864311424769942496961664086949089735075535841957190720148151040992575897621662360784570164298784711184817041991857837248056582291700964685837828524632237035069497390010577163657899271107705365212873248152216418132633225728932412375174963478426392232865216841916602257211134718713276836066604608865483562287496019178795077332574004556497086539774458048311549803048703755516067146235080745508322633542509653672592642340177270393223263235815455733504717450290276943093153567085870001575294287745139146682362221227873103109897065833135101118484736784465563924378703278639291186241762949956447562549871426981337275167923563869279575394042060807101951361848033454057148851468042798435632881195837029067103358322574180382587709584212384991881288632852372892431344541266271779517658704361713418064629348393192039149106418230786447978061957187235494399057174294960628103449633819350390245286568069208291457355376561179523491517063925804974374109405716697875291557300502607050706097238200940300060049519505327665445956146863135412555802926814813241719160040715757059025233156970842593690426359353063702960638168974369072459346684360181667931945260026693109348717762004500801260678816577010778994926813471093516263618516186963884974637419817752715802215750138440873484705597905610313355559184027851876969450812508830342827135148406052853310435382458712382699372568186937319606243188109511944110276913385868991590802267878907668358797851035306293827559695183915546235920656336924649959089624157461070848253741919296986449407150345492526837816409931790007118188162902063830225839213020560638914062216364617745017907172336859790083734354894380092780131645711078068430224645514603135398653619661175454166276073579948812048443009864032739815588947484583465955734859253333703689120958703625244093937061814722552840121228182458692966426732424048925878215570703154661532931640935501031986240566009332921896532586952458939628159572767212218155012977052054670217330706939387235846915971378017907076505728865271203164462816777985368071199612304676628273706494471483713466403302191550125883938177192224389504464395329306142917430313966978460545336752625428464322677822432561784659696760848921531964895753580582555646763420969372454077392297399039996416673949897110994991692604911104400043628882862519946512592135062123833329097685012364548885092973178799013872947623377620047660042164685171056918418671843079202126637974818564664610807458993559882882170004241957762877846847910105387315119267523367170068855558656742338541882179411972300462286643662311906864243059949295119622384182220287560750838936465568323869985191704127545029524993817334259923111574363199355911776443902936892355966388025639601533518509365871736226821650772428572878922641067182816588335354425309837075055389882133716882208654952072740736430123893709631106937380011928298239112786314587103171380765324795862902727467255296871003674586544666552225156694877698848015482991995754995414291988405911412073373361121179586953497786556781707546609585573793609093578344849427452476491069622946580906251557589978217237284736739584205534134560274040568353426806910530087853411705179464521118833015298141024469600160903281323825644033252112679832262868738235139207078795256571638030066871917754719783548235207317243847596980529304354274678327540979347402826929926722261803820390550626589624024917704722141176547732475190151516402740728034064439092763727345374259919708814079973147072363560877015414440538365067635571531000859235525830675780000800741397118884192051150169390168319202647219078754203737261018584274577540344849604035928530873143866726895225770087635434227055646120074081216257417505847454101895867548979798536912148511004387956620027117742061303840150323367186210094848356977517267686872807279220252450236474212196471999271580968256772143557049152330794370653835145823285299014782354005268913211085301395917464842919273375693962642557794586995031447204875163405830708450839885788205379116497144152706984654769572755742427390449446953294848303605086277741971035726448102216976915040806958366889019482294612228088735890137039680267639202442649664902967623414082618607967302547265118690493269682290194693124238408632656521353442589733806592919000536962093312786701985166478331742908633570517479066907811306870461663164046578623314488130396985092432098361848493443204989994678874120770383460280726626626737535991926895775451775309835076197742016438747550207453299716601673001733273872145761067734045900840935775934034189906935204250144069945354028582551185217859911016853519684815644686342063786686548944562991215213293702264043848906232039013019136173201193350837256351351483542866231573187613207217631214307823851088506083393815841720113861170256390579402717382283768692038620848947171300900850376626390567748879064463483105510364853524862032889007780971779508623068281552387492717570832548979199920500409713646203720932918392839349048340708723164219565198111671319753728083437622625741240318174055648842194869301839817056636182555794889280404374036917446113459457620845533873327588368896791760335345008352239756934143891346760938064826468833400744982188339884789927634915818227579401842314897753718999834370330474314953866193298880409325868373479226279432045803473554161781732502957168235437435589629154574618502462325256818688322902242139763786595952885549840539713430025629701991643345719868108943432049525996222238079079154957584398203762958440525996500494997792431671052070612371807060025606810273546324494157812129684265110782672270468228762490241421259697189816581791875919506055067359889162574965628937826551621164157861103017420969619490766242013525913923289304291635046663425422688942935975851339616591638768310489172593094072331465799153071978490774170868011866154092306327215812545804217136472852195010114630674015458237250006856516350690006750939751510361062477022365341865929306235619775144400988386046640616531437161031501166952945620644968196949480114230905322399435085744995711107112974642764414790265767561187773331066474637263777743354732770811295168802349145964328273323062763623386595489760460189866891210931220241728202870060816647898028936634885381246907025579902901418667979196002910095597036940573352559790387275086180626798850798202143914194287933077404828220896095260890531222986527392948985237317838746475861740764406365336497228988746365386747590643845507817268190253128600173781925268672938929705974884863805056273571261997051192698729128398016012562380987217810856144934610762567419270052355595716925148615916601467308345530406649964649017628549326069130716523463524469987010610477679068703788870772902170489382637263168576648853907031643390283149431969303529890164068919880867522120470787086634200375790640317065799853470791529061263101984824791330703164409185193605921182067578905289072841694334946405109767665950367669199148723124731311924318257913995549021474548126011405063926595459038064726635902249354898115190836077500621653205602673346313934280440970280228095169979592127110624215898344295607633782117693096433995219059435221283093958254934490281761701864771227866898268387751142606135123806816176688951897361896087085105857835860102091607239852095729493441544980892979306002698709293145295824651289119778582555193238354967234464623595530815082855686634186386608151593546748063564234805506070189733727236397250739248948990039489973461179184230680013716777318401490508992713636744967836764422745233398554842045652388759003233227328719865606907527387630266580903896629915630440387448497547997184153314083804849283246413541124985449497468093354309838844253080822933289916800706087369066347769094500736343904351691961602798957643076550553254806345019754259013965943874930523041573659240335513394021444219173715183921681334195841876416149206221039776706006966052525598327032128335029220334013078761817287957266907512416815335841279161139258701088276945602937675077835723316232682306111844825929338560030871231921851518793272329475517890411543310092486690722036051389853853187543310481919285862746315071101351778586602093724219780240930412212187109801479534204357599853862294837497230992448006569169278437978745306855226944108747222135871623425625332810524473615303550243615765438703152425409413712408886035633644868525096918879275789919165409180132948005716884778748107899721536427033673607084114397137566938485540542000344140593245704667000251734307375462763840179784423094084997989119446229730539564776214640794231307889714480378887366137365958406180228435820012820565315786481015616517585284770382015018426298885372420020191211488355690232203619371066150423308675072212707650291668319729669638942016340626556719631639533726639204918678085247182341408815546725654129891150489228824376463134882648452228914895368173553282058289657004283806894364922050979258423797572827319977656087709920364676111232038765572467720002220704746789697160275073041859332679570865684649314380658062676513344339536590318252670233161648131781179836298623004063883219707690271150087310723154725185575421432147314259379531060220793883215530461000381030121828619857560995436997577398481737241707880895909708012922007519976173696275114627443614506241755838636540210606610358359212418811871873832925077024756841212298703006223852396844329524264020648187722239114839132894115298127318019547019497672889498267693583992292173499376493034318359599006698107395167571395548796056179666223250113492528500942090419127220616756943077105326127234097659803363032694923232244737802132776319201552888965479452048771277641187679567974039754737424415456701671678057303611109658260704876604237246849076232246336603208602497079648348667141497607217812308953563512656408490942894426182250044896303147320225166844729360696641518462812322806232109643109785294975684980079145490092676132962206943696902675233184564352949679675489976421374403328446334293170409124680890093326294729708438606041540660306652621836412682696995238205346799665125392379074300196800796181882906417869092004047428460673374022232100158559239745876821285284369775854005380025402075378615348445354450927988428633543053127301783840728320036996645124128226745521225339145700595435211889652042142790111139526102217682059145948573087904458693655578364427414938455377883995343856599172953721263338050222107649542028595676076274869789682323808968429060818031429231521847650646739732711015068409941445815436752810065021342936528170475040522620784776713755219415186974043203359358010034663292890449060957300857541499094713483260082089313053705621373412140351762086318432776894516546495574471621214774801217522235121838004519056191219146347689436894570011134126961320288306838661545315645643839242847317483493631963608391670838334749079174358279929287628742595912782723315517149338494435980975045707686379601980748060010596560300391072303344549039489453091628691081822567605024516070387059919089670348234533301494963555113778052533183719886619237375211079627174886579453554440355175205689253952201265527155371036615353277929931600378861299038723470597356094036170354043300429598380490098131116172856699835127627470107598265695190939422479701389758649500736970006686661254303523719054093969564779929556480860824416105522958053302714658911830271402737142806873709570794402832548971262394314913537582143800077103082044220472905867186980780040972339804656970230474413666268334455392246677650262971634120788328841712790968703929767824272698857385506399512721839227575493356979876742127806506917297049405300882173750886497724753773337860973443663437721061725680477895158820468675063816300740154783046158549519443212915485901626027837540529481225972987876298652311738639963924337465391667882107508071016320655609285880461633517999634026680888594205555090839076844194109975154956400762586781953699859133407774552010038395571469991674308589960551175035598852735009830756891598451593794807481521429478157241425431083283239539008011509921303964753181654348332058675238073879280511868877522320169699125275152595195749900808425382990243367087377028496303953152616878647226077919407854584890683571788216840922043808311825689966972482592734645772514950976698397317712489236098343461035045290497109202642865137268439237518401452221188111509256263277847974420895247756811401935488302213310429307524190193726038396236182004707730084411561218685711766096912520048307953311433327685972439496392170975062392716269450590322319138016776836481065445493601150886133442971387015860587040368585828082680876498088742458867294233181767450058787974815728275955109405643941053171116452908446491629281701608236112489008976113990363303306678802955652898766826147704380668998171018367639520834066398068516575595816131751953538346851319363471394513805165548121741435397612166688479729221278209179535598202562169401862406712923748615392661969866051826246689403855716302729878135157883209129937820432357830714999263079370319299669908360115811028941334767371093190691008383021916650050794272398230357298643888105558007822525768393341500175813319840574705264756844186453885060683086608876582154301546619938486758393348898327425860007470136161778940232884809190051862925970642126253208102484901642077314668687670525066290838039945340267749407003400461832570455237459624566350215871900785091163013198955927660483928617231879479555280458065628504352012940318546955152723773757866896310060075034693089788108117900384537457727205937657502245993225038225559555287201057505304813478990142074250802250732693884012039642492287296002649212640751904715792413360665989680987647812464310352708365642767667432280668536201836269701636049773037710974406584024509616023242876503065878631736196315501150641461613075056728466929896387012174820503055956445572672461549054070582951268290073317625856861658629786736459000321684182185495854575261251188882061715094469974980034639261548191708145038236514010105152020881729031934612046529956486195528839882152401675994955448142294897834525778488071662213127737950816853554692997291986004554360958581203133263173678979378591628488401443573217864636387666875620011390441188610894937392944000849654653879620628442232551769335391433531631935024828078665423577672513012394914135892219946270544468938561270510902548760374304870285964374383169032230687310301524345997458937338169908371831721598684483832328645588964144877957481080433636334595143507644138075048978783160827426894695431800493477933328470593412327838268339445482409704736026744608921699278350130628587386704285475046705858534839090018252544177286250488115836497681658419264319523944749219659712418040988672836880949477638862231785142593297619840219176624960025906082761109060722327840579165038120215973198722972653329171698751991685592863607690514291404591764554459590231488317313287603974330357744350401777902525597961138411563537797729807620348667929841762914863061081634893836341625024832692300657250808628452768450572107004983817479676507403008863141668887153896721079036307215868865535499692532133570940187226162392213131600733719509247803453974215689232682000923682851492645136606803539503387613358987182288133113521603687672389249443375873527336411106443413377686406558946510616936182013901410963690712477771196979961740114206510023473967726326866057235787369601774977643919549499369034976168915710628811768209286413041147691106665581972727542165085137674918786447612933717439700826912331667474676391192542517600597250993928054887438637716772868171460560951728837633070206709830029128735843212644749902475146329968956529780834336882466084540938564454499220807000835916196529275240391899870433422102305339685793510195164916791353312176570332258451006954012057035533522135161971123631818583392247575099801367153104879830281999261407489505222390494254145396668202699107953465636079807190621519760084883491171773466847994003143299377858010900028204858182022451669854820614781106625339512847969626083335816546249238764858017290021856459383243796878255596868584393979168063734644028809345677361689597615081388917877584730550117356638014930929352918446515575314362390756296051804238691295761006262397918289241774238284062030355126425177682458147950370078870465526278238327930010879174258645280424555661148474580752841033734296965794952158227859418487520632946021781229671590762488777578980338119356339080436944852256051145984340277559636835684084654991999251624561849678710009220816164022358737275908891118483427015914466635976154761308433543055734591781152127692201887813919919464522116531030979366674970777671940028136918298706434305221344645321156478063978301043306325407964589577595153982093788297008412458962755316464586891028246516975651243747831561742271868442815339815538298687825647756982281257589082400536100959257602376844855656309920624447451790118776369628228336787638698467303669464604287558241643212569661206112639416864528444080853910996309745743439603173587419961563879245560698617135325711198443489262530994171310493077883437451695479923597879219286172375337081677104208745357863110083423544314137253261272294748366086964984645368715335417666599636165459749479002556845354611406554145040021907412212739666636859186439369334553928417211086730529558349404797498292263412196185605708864226839296853247387427032183988063170846227595366347159628748021932951078802828134172348902485683914600142836704160411064125662962624921765800943700991272690545669689500436032648312847751099670124334546425273119026729825672136481799068961667714833950251200798350590922231408830398550536715769962848324634431202936445636588123989865652954729613452718980149650296530993412507773900751573104853662020202632831192470514371234843104131829936909568814530858948358044447872032698100266640632368111744550785410103763252189064518025507650030663902842968881408409189531740766026918054752469960159602931390963702064146988406360536411216797017475716829601745449112930013813128368655019284421114154611676695393264969433314899244125443784269225216925158223617936452237772438837281633154567484469806737462188919399693899467958866355834385148647207779144639446729514412653433822854188474206243632516287214822890341762818840489993064590894920684328331989180008352034252245839978585856178967097102640695476131139881714625049764207490472017310672054030344462419540363137742717730129902050326412150743250090431235513262303945725170443056701461190744172173850733056715040925707878118494488692811712023402647098047304323839188538222507258407979716076317780646323791077095762031807699883985246847049153381745909152915874102538849521229880902318523474659910215617852956353081555865720811045148079241832343054108347622093498732680970431858878108915878376909617877613836220929235110345816529915663668842896019120078546861222850188676884396925966433210468151998748403106745793966096077115914844938628153486511154272531802101965095793011054062268594941969577875703464545220754387924637765873453942517567039012356966565890124563768474980916209419590541797047916345621831318135924502332646271684685057435345346531188359366467323013569296722548246755897377314928440141079314301255753366071061981958147208801532716073693585148461845077794374550935055526932749227446437527193452311238837717574941376855814253042657527830755845060567593783647917404447354427042944355970719016431956373666323866113237802457124464642285517834494324358952000396769121205593601188821499033393691733546655487850975124433276771532310526540408164949235909140426638319132920782208645855107478460466541670648788761514775267813293720262290255067140618552984880881567764509250500484560024942969388617016441461351292560633905350429406151999497492767155783533599720261602564754443016390480731184912187362729758913475361353886248719160302247253560711690494522007482782208154511095879285136318771600522765027066860302194361901263883888981920103730663679741686690468792376715942736221552132042073072584800262300898109470657807685524662325506490649902975816695117027474149839565981500389282108504000937892023053408606482886704359485689055749109640527205610537928787715078631377946920685819495721158625292407010331127229958573125777312519360088878314875903025205277897359525901556881093218154198101993488036203799087081641314060464326122575135331167545108605242402299890714764891466086106516956183032287837904775687850438820636591439287978903080082483760988338465178899253718796599862373700749401780378574265761755776986507484071626722331117669815167492233280047056518014876832601305439115758004598555084983273631490316841403687479979469140064458062208770714627580209685868561145346458254866472800404728736690748571300675373290909912798390819861400020661056211279029395356705867378742130020208210862735742378831844563127532692497165096000564549836830757335014349713464052380143386589117591194427741502085013775868901178902796086610789052634519907621740311371231308843030684508406303048922264478005323407242318527764976629523394328577644507210061727500993499994501200352475320470102403230938790166862223661980228678344969168268307764824405420729730761929107504661043280502967610848659090633260252305246201673025980145838058452522427332068778470042076439874048209235299021676168939661518224751814444582981153925875545958738288386169143120255642079044323322436607967695528781453533042885771021947694233770137601447378054930792199329050710863988541758813262500037091117542727057408346159657576344099902184598613210946601297962063826781722404468649023419556303448023374247744133024577144411436653805324669568384486812835458802149616503814485231678782349261799241678985154410308095488228300773218734810448601502161388222704096612210716405482747783643417815386498907903372583389131779548578787083238223930266044149802166723078823914638322189338679594567807142876167807224521394309437730330991925880777127036066763374326499529700609370055302779603094009550641912203961154227421337899763245140062604303699597662700427708004626796505971270799781851404262846429378952969620794399590676396688533238542021503686705597037361261894872341972335937893622695425071996093251739280183964935041190823852822969193407584325553765950794885025997757549661596314109355532840948504268231222390083511612140628866833981173701591909462371305923196455156035338603064030156707624948289974328932691980106842645345916036449635180642427845121158450716223531966371767556737695065591849358807740831901347026329418001689120449467291446584547180321277129341624127152883223717753407789069739430102362443120966479443782583082306704006394233819756330314250270987527847253143827775023484449816068607956448832007440615693059764297824073138460888460461183550195626061917950728631514037986090579333696685835262064750982784072027957835175266115736275020981239617572874143619439741787875484114289270339635930937623931553820938331079344555847606603582695094276920244038191584009236230078903446615863615244870047559978319662507925461113947117659567943568755696109655733479929501084945974942333524923199177098629652033675410787023749136949974406974267671154853340968984687242291978176898849012199492745936103472643247994523080217571359482533971399754222871400994846587696954771105275766836346512176321484463819598166433621432573007123509174927651909002164085261492987575292289352522191719934525931651131997892198867173789821588205761663285636230733559931463640730542507568373007501514180167909153435267408144330279464555904324951614502521607207873056094085802381614096908168164998865692389636122677981208444661048962835936536235064109451776669230897155335819693903263660175151517039308506393452396890284893797392826332757508474470413520725878447698181317891237485669648462874468579022166369802982370977006554069659117320019038947578316446413778988792014398810912180236338458012137490322755911041741856963238961225097546123336821137168644357581456307476685300371895853980770371130873801261933988790805434318419780373963481397313493016622478091562013438111851762333760222976532117860463952130214436078612607155319441551623130967703275197865617442590333704510784168955804842729794806742910645076015202899872234042799530882725569553058650953300130279796823066332717314937753209510308451395600284978523779601760215695346700568154673085210149970061290543810298998801094059526098094681690245761713889959562992663625101791002741921798953079718641909059434214448564285454102204027931503019293010649781988890392392344398415011578102912223917023543109390672260994931919023180341603843049441379010814344898922219958387709350374123159423661934921036149196252677513340460007920216130379728357824432348619820810608789200054522390575767279167785307124732896532241878350425421822850824741589719092746102460216860435556355809614818238696862324725828738401023270345421747517902819206507424857423763047577813049590533002982834470112937825215145018354535248285932337234909145897687226361849965181641510870764756573239479658333236274965331644333792401670430252427350492182819676904562139036788060652668741115460801748008891304341682224963457984663618317334122948032134484242094784121880892444756608171598932211927718254514382297144792154375664362406254275932493017262096655231629449786577340308252678651065181449736501236490071391988384248545117037702929369641674964970778730550855781553166240744977799342834128272363056202127589983919371962066319420280852179871412821636183608345567748422759728080298336445566375189468089895955161089877704307946378167818438009753755965296846672177377473391905199747019241861618078030702677757782829664982479989383576417836349063116501302351095431892252899449640507352919888027770260588404549123060489110213332493087591203563987016184211058428604373924043024477939784356202600383323232407451161769693632188934426876922915038559456891817334672271847377008333194095972755519790707749376215275293863273321035034560438920408566586313214450862369350566705962367406486507189506085997661107061469376015898813905239018804577932934016963782893646481046743164205785391679791788843385373168911522093149479574275522478758128818256356938837808146945285471453640205433330160131636729425648651048736789482660407517607422123868825199712942289006679991207877549502006026386938489952098630271252418858806138863990113990884239571972651486255623330622695627985607993154158017418495920856245230415787611210667672788251478181914119085075712797423986651374821640169898298459435090106347851962567225314113789818533884585798436913585545515135308651187222482779108768544154469189197545204953529137009788115594569235398206553855703261572778253479052081891393072323497763694126920303898368934274525674265463828075220954960952522322033971907298641982048896846891712174680479551034064417415718861083874198072417159587459540377753659128008425414713663618436773291084192821846140634161414039809221695309542766800131819713477436908722277446390457070902215227049440746447775318810606643886756551312603047726499752650966612782619744795335022464756519549137723866485719662690168464749935601018774506648087768914923099604042099312994355332397070860825575969579213877196586158835310344551466484560928910366339470077431101646720368680960203405739738093918142486780965266355949845997044543376645817304993880753856319045169956303824233549475473736552611441300656053084822500962016966463641463057449886350088118034468802893298336233684457762368992588764145678971131386444005633699580366297820492529728426082749191753082299126753227801534418511132405331979701749491176212648032614197539600423942880865430599071170093348531939225224174899249027913094787624015698938631758150731667124656834680258529632218695059519521460899215348124458374245352614647858569107258060483618560292622320721959746795936747133968616481814109192176394200404833381506806383426559054244435876452792812735056887742504464495692935220318336894389577293810007447121590058138527587518930261383942292953395212623476735107625087634971136953004293850657222048185876704379134058181019180264192166955274806545745508885932804914815299026174099102113258818544515923075426041417849890790522523880969990971954249000235296694637523439274475910341993380069522583989792722236181268998394240041932707322063692631361214552197144745565548839107875162281051114547600188376246445746067461076944973823976008490787501514950771554083273677972620265671744065085902800382801879574436933798881099397393352141303790481556070057912009024121717421369806130790969682604615092007073417772549203543208937429922680532318083479336411079764057157794412962177999187219074881096185385339427557153690985102727632383377003217880262004681690014556602002818328515462488475490771605452444398072749003495445923457376932859046192555169224322292261148743337845928820791866270708163680069017482730972461437437159083626961234499333589235484107425224495182771023982318630133435201108714832416327132456356211372902479425745929441147179642693151983779551244810692438734941364243289617080129131673549433725264130794251394527344072770899111430879241202426213090719239247735635506898493461246748081623757383323372376260744292914774680819156461410489951573164457083860140377675426457418690213116604882632652722490454801136506047412070749472785495099091098096601715162590353512733236612910048654567298524381719133177301353117077022232000606627612804469729806089177174861133855871759232373607381004828932721618558258471763382386957993424691242805231352684682288781821593457007310932931724153295020122173855118833818795707446175608207998324893492649753636158450007590572392595350820403638311011439378158633365934235326890433766830279392818216013208849304172944964316409734540670477986017814040746177927469437051223071355377879919694776987672934209554886916144508698022866207125344880134416760553371137751152972756502826243358959544257777411397694969873871621496765505817710158712899685682917338892640936225439757568945246474646097706388376143319751978300877200609764675754348260863227469987671935975801812128483099193274872234345496720926520303112484666057984332105566506127761969933111728793876960670547208959513357108702336394620330789678906264218898413422896140078544963304739264708060965198705449379421695406099187504188740077614818426355093511961465694411184857035964607217327727769145700086480741235852959640952597678284030182335665061720243617056945525457690047133756370342137814051574308908571566197689572534069741188210049895835437833843968074993127487200912074684072587655819025009749725606655584267028242159471371429556320199862277225781816397835363331604021183972811495497923105281358483346739140638123977209210373225632296945044713321612091200905700308882191306457007441005238952999687498821873829315473190291469643536470859749061211196682774768666188164159277201897822833015855634814623892885018356594915121112798067589615141189619566769686678205428555216110356181581299041677980267428223066690200764353268067713885945573449037760450180628279493511270851398023340658164891009850843630566217903585776290326626030609488512636274855800899913470275439252705520297779875392027968479088725245750889155072685403182267446982418974461441750945636388080507771332520842985950205028534058329520698934490719563600176370064122233874815939163929069228790432343036156864075107957069548375327883020672234188410812862878367258043676564456881410022178207602770250094710261707282032086137974865266658702357105638662606386517972492126128769242555470559752748251001053949884855300675536965718977321972489149145465211101682774528647747589162947564956932430936756976775556578188154233535179513777024512453527234675992667797582073893004033311753189390820515246880305216784513873700986132820382111929997952376921249392123484493249193865981187896210847898111666552192347906899786495476197444107853368223082431757473014563026821832971469993980828961864548013075237289408624012219336573645847390899899997966131100297953357667876314784361309841824444215784133735898585969075011123099377893450823134133701156746217340306756396786814389647874520333590032626328535616017878044154214922284992337404347186196699770743934959289281309058857641735840565336778122771030020750866072529517863187351014117407394666606228153521678423659244499233430686675317946452544084392682083152594457715855628769936673001051885012960918638391821538955826519340224901134259078371311184007690799933338765876873294731655842221599307493431863058352808478307496877649426952764865553551071951933069103038862343425458778137755163293932004497853123943341415632001466318135926555396368545454026103309493194577033325175777284241232380882316778255523771374629468491363570940193273018768117486611938651001374116133274079667640427329127449615031373974943947682136817782954035863476004155930399531468850672592882001148753881752056074559686295774592449766481661041341298680006025067505897943672533793332421404161705027657458035442452813847953190456897851385282714908251156474247284134962908331064838084752625970966450740227722435447409610632125786697657083941648857591206405598328642118943054966038646943965488165641806551853288352985689273171887222711184992817458344417852053380849393862006087998964597107029499425766174282188556120073169140504996180724088191737591312939233809549660745032020171991838400936857973485822683598292659087750757932510521125026811958869892544577288279028423794070025637269869803126186492703142829055400812438444104892772017210544954298715824194454467700731759864953399971248389593724864214317416037099391072267832508738292147680441100172765764125169206965197342905955847217979316672573898008826529296675210369206689211628203758165391268031462641755419850959626036560213959813019534091350681964504329489631257452253473713754002988990946059261210817207622174178388894813311449750724219480573801285253007823929181805165264559355307865771013977737112125961004326252355399585579517884125204306133115608986068572532972415925373394458665233907519728222331813487250766067214953711967772240684516879079389945022334043869201306035996299493936620035252685282483880641531278073084424309729781590570029656092316611216165054761947746988486584363747397836211832981378029628635216244565097315049873294397735713537187399398085492198796471509119224248947972044643114750172546497758483852349824404267636409206953254557901897758895074820199849429991864172169894536764257270178052112323844829559351888545973068070969797894039430922030162292367596266725937651876327565001809760344344732778392420249877399329290450633259960928935280633164356313173359857111182874443518110896887264324935575287612151620302022607135647192743199629951968571066358910717170223837007450335740009086465471893546494667007073080159743196667215658782902242878820728532430475747899157058375787840002087554961991702415708648178687214486897022000308781309821204223040249497643485405365162101727348662617450503285502288143344530792020176990273866129217365303941114778262308443969550278417779748909143018505162187952622375112588695659448289866898287310951427912074031939117558613763834455988269562762345504487440751257066537184313258439525849257231327233265380934316796372940932357010878344780801051082252880702648476797696149179193384162445042869688357270851783072721836556928097252185985926030809028325682891761110065265482335410146204223477914331449155061495514086840008513057278539829400874129735478138957107526649063234275740419164355617488325737675026130471105107333895381977246676532290854864945957533179780107595314580292121787494068061650363864196016966691347602959178730447292760188360069755858318627864169597976942423709063307632576932243776161558047000868803399585895223136442381643320924559776662063460607839937332972293212482391542134825193962432419615546281362848556048928043697726170640867726601420677694308505297019230697938333796424748895492515069804111243731516306151556799123364383466926246800786314948567463397936956736815108997690845643456848020137842227108951111023124876020413810006686718216639061656826680356036198987441472203596036202428279225138933835035085076173574066588680538545471795488929549799049175692399661952284891733966082981542854782007302013476550680521507436340222195750165126368661232967352597795605070666672613926848046580996441559526434969485377369938095209319852943543725588066923385839539706945984287785381700824244010207032486989427802039966103719718602117357396816845107480182559052555455965568721572849650206619444296865988115695767314625049331227625157068246270581085445917409602689702750626195856651371277759739466034213015619063094743766703450913379755519448177904658470725561548262116571851074638066810341473026671519202487867415022110847458767023821674954294220304110327288908540185994117277753160592314670860518322880796758463707069641182957040163675040623842727495783631029092582490667894614966082339608783301127702251358647208891435809622168167877751058256350936758330823899165096605245383463299574112246760644978687414951282408210871098783720995869258682396345216468701219766320215777810848939724418425534294687512894100894392855802738729662712611850631647621977449490990766720903006377812530403148341306060434529626996933197267211469077378170136739111757178003382707697766158482961866912288553353721757354988512494784451046131939914862594264203414351974018256043440832178941924099871677206055008776172147207995228484416926406959162806033427776321370691119799567054366617495707379416912353146248721901556269463750109199509114741175286544772658481781286384894547341781256747241851087701064229358785840355665478474153425785388360295279795909031661993065994870671451418880430680465566683622474453238978481242748387258153663688607029340002393430210371717921224152092948466916637538963773688144621145797299924488791463977193760732500764564124016778177731099450399324917954334251915026893289739832583568773364195553893105213474910754416962465734483243520007575360080618065859141732439814351366203587094480637378228062374856271346142111966483972948098842506569844504213015801842330796015286995468436492226665403443227677544481843425015304675353888498838181962831805231801680275093445294747467339493595022513527774312859155466822850862848885051302518831837587065025109029332158385276836134963025322078869147167196693201845978287718130699274460115689947216674718289168002411786336952060749298160343111589764140125116046347482633866264728686937549272075848868848874882837367435413355149794185834694538909102291011841392334161058274830983248405740670545510884819733374335003288229225836975700971671729393130676263849880669917915044963893119676123812245029440242918742337423347682199182484259288297296370410322533612052578852885480517264905277578796465418541263688991506380882646989553995647047728763508627027075626875314864910150426845300267369380834820001203375624508306020811589114587695025889056475076916626238757842545756815268520350928826396071977754055420991764373283144317215292677861338987463403562175184147934836816928481579356932032326300120589880551388369247042604776940765230851725976691202402691640601660611766515266381193314581695891378113011806382187584577169592532190028465580968570305587807299887948966664985428411392796061224627510700452595141936592836950660788738141007132128392838271565772199093350692836902093246332099494297225997558632011423570428412678068748646212406102645710254902578745925940873177406105561008266079394059573422401931898553890849894886783966121027955470131655640153737126022286304957928334068022235590065761030292124494646328834667333743010426420317043606055389077159617829163828554887467675583263514647227653359046314296593635142865367504115780018095975135107047890219875231154969855921665012972156195659775430850835383630640930542115018173816236734997903532224816954662175857809657827686479229555440510627272936499874864798913222457627631314702252325250797454772154033980326383309692627598716001337973510718422730828865451289959126601087283018448815311635950540051374925054155797785610210847482994867656296077485908675292934011998041423961120033641945920982404995285447633047521105266175457220416961923670978271600297754606407047403898230239182737516512649186806464788514419071286549283042221146217248997546363128192889287527361248713653523956637878309336526335615178631315098819841465364398763046482862831067210265925957739064379583908553112516194737086961978902643779555440931085490955356390722957824076844472889727439157253049707991655948184178778104015646973327662636863883319902391396563871317438125221491928055710369568753747727904336093389180796410813878426534936463594071624330086141232900141492482523239611770285406889066721344083993709204224812056294076157673473588393166842778704278665465489467672235877723481706675597695294797050946870178451168147800344438604085097642837498438484409024386330299667888461089422673181764551349126082865455604943743102060921345347778048991642992135297364443377837689072386636089264472712080779426910420937137644090600440016107112222992843082175155875158819078509551693781282002090597261680348733013747769918443254069135186937987892597629932465235186768729548865729508370289584702326608476319785548778099156183196263169550387767326278870679101738883964732056550606614648536981328506669636447523467993148172697367089761983598903746836452420584413451128885089813272090570487238519844889197108325651812762025780936842270455781044070133857984470687825445012791241903135727469832511248178248260303283039283915975127648137728965239889669952183987596581989756943406020836803631188590888434161344493438619431363241785123808686528404692745298944172573034474770600202765878137146211884911796475714624135801559026510110254546276937759446591234186882650335888560431594231997055881474368245397629235663042827040813990457678360942308443784006232616046922563400270928826061406428013869907325018323450477801867579782968527240377392601545884353786532217680591590958092481216508776657472059453376513060457918841911567514022454927843225117000441923062878197752302543364200396423410098857567332254811681512278955031949718945548161181405287273491688481173560378439238970429803992530786925462672127337772361518976635849983983365972672397784825222502839109476306490863248599597511123838812536738973750021322382927730132535304121719258498452773091392528733461232977900082246157405813317206668051611161207226610738928699146752475042558632120003258343746905758722836304259002782336795548473119463018166506299243980156061842700202959529711950488990116609393672753599094513029332043326327121370494557131523037674456655032869605801133552605721156731053291319747729885765936810289234884445584684741308397323314426770401183644671719255146169739076078131721974641216088421190726035867709129196470894806142554011428395733710501134601535894072815777066713731127230904316491989585608923416310505037268416630863015217306363182961891861167659241104703922304924167503944776335620493771684481261131389474924060039751960459928000198464850412230760318245437669835104909984877766857202853003774630337486741690245295382165576246418294671133300607945339842347005584767769790850067771355887917333302818773332708424013329569372624673743708879393285274078377229207059534943824708811527820346449118348891018292369682833028193670796250823836712017930971227426044942686262817289135440096940787061277182756026105556457570005778525563124563127172021579403863476441753455379171759669254664241919263871011104025071255569886126409604150500049512113215470179778650911399061861526942064843540003824425802689468630076423187628721801812150344175492849403651076247402143931545012000513925669390844055308240754506821998997106729511220803507430977104887584571709225931917437590913190637726642094371503017645252516464885360319724692778441208919885569151573081395869215249206865907050795087182538871023518491995181782553156591730263604500024427472936002220676202753448447805321764499346942494613711586042565030894767523194987677243472519366725355792417419187347878110421001278610470575538451525927903493899557217842274983565749261479701162015819133069946308414721006321241841144763017519300440322949713314656629607738640214956681422925086319525318534955481737487956225927520176031006992586488696858865590140951429768341282839601259212423976810885388576486389998002653399144017423462275703903035534470322044633810262935857218331350183523738062976491544127518613443298025619222580515674876420833621837653775147591613397330964478156606768860232763380960224197467396783390733909118263225688505052651216918343890888984816339235046753469877498305362831893316431146331504935290019761840224140658219431961410068920674313566137389361084658473466739201700148773416522141386446676671069838578145964806971881981257017345703209803332673673155853805109629271553044943984458685483172965896700414804888254206814390353682553306435247790883495589084288679823795807503804816165524322719935579963713291870508083598915296692271027903384705642772576592451682626037880534010888474059734690732235595629826582217529872686914642450022538032315676979914013008823749052966237390337397627222514467872605404294906294388829739858884978713254549055164236281020063469515628223247322343546323154818653683863737941894667191577136101074474083309641211219543534348377139416454378970346590942124719039523460521984230029140365610524464611760420372486019420533133531370165957392577653233733795108450806506356467547936398639965653980741002053968383043416327279457522470956374258905528472973235823429924459870535410746093092060033325539234104161649090953673732898394270436851009256128136490389794574109634595954085054853998178671043626388176631722768850021156834796598015947109705857103630002443566114610796472363251450808966757888343211426057524209624391216019225692163820502544445869604349127779153965156271451963854898886220361422476687909856182447737240440484385181547559439077590635173873499097072389641818056693603556061559128043875259273332984988458225431275979444675616721913739965765272219639978395694629861556444255447811454465747225620342340429279125163084822110559738837327074008481748581643781680228557143261612093201504947991500951339798629683583267614540930079759072950896465949996239352197282711542533841410500809711498572285069858538014644119810623876356188069733108490070498248334799966335060018302956124925018705665657368754500523707400133820229506992166670875115559347713520791795627570144332884351154284499535895421519900409446717738976058139157681424684197358709902368865535516232955360810088771963253606421556136717949509464719928531394355805763991137666147724254788680707772447609991117147123291578629841544307759039463000450540726799302801847874895148455216048658240027051520738627425549670100876512095075425865429969821105424224126382058626614087338886868789768659445222779057904772059330211959377063717488511592554895637750437482062182993485458355813772997231015429269040047243994119252686202412675837829329721111812642074558105832462611401794062232032724931149377720849645423883047804362285241299178328478262366127365896948626914230965897012380265481791718215275313441508394888536591989501329710267490189053474769439327036025353331917371119464404785557730909710764278816913230497517808908882985204193497869327770715761517889613919317654022651462418323443719190570441752903679466947335659941878708458850180036670156457516377248380058374766924594645165019381007321490494464311783134494641216019265857257771684678223474314523185837521987079655897940861249576322932795141608222995416910345725213220745351069403283911490374529575597121141925542749133976486515265300964149822234521524534514761073151642490019240110316609584472449751398482296551093909401341544595689791629216892223424020621634216137884138043910672185300569097667948468379056423751672937698930340846621241189212177910690599739058735045648837221392602130244174968264683394431947270049516685137962049349702592403724199161674666756567630960330810279204915081678322248647092295091339476734333493076447832949834170628246152249003305459287733513323318914921466572257409011455232352758952739664741774674382412813011562462914810006800166802732395376910107604225276853744827804709412604291927401206008551094291898270879466726583532580115255825062281189586442785506146769311067454549234149158496484987724513753052332625245337425820998718729399546881513431239147820001942337097375848910870317783957489136729016815706375540522857943180794979238957800906713839337226084900738029628543432047535535349885302679210684369906278605405072127823809567927542825159696631160265891910468567452583310461212900015508729404900200897215082140915476304141173646560621875085485917051509192798329402564809434045279377398842437372619582971616217953772630746338341320782838828952913576046839790307239907019307514767552243489167150874354092091305453525080130311692340382923136526866843130986249994902016920744785598687699773402052756153289294421797281738417736520944969549554559131964453608701427737815891229937777494284456969353867051494208585781542613888460983325397499921293830441617133461496144195676442341609986361932993384270253944952589644489987828159655744400008480960319825082222852471405989407260660735655431573980050913908167946961749715567103279092850067459829226202088212431397045526501645747470766737742583940849998978989272388457604921552395080191959247057558774032274709736659677407159214011391639577236497720118253022209102398579440332919171916073456659781775555343921713270978991616286765298223599833938665632918660751114168274967406096423663098350525988289302624646245436662412985487113210916908358887005555962620392078238524468149672722002284776829833966467577265752005503707500882852072494255857410197588452343214932581823150798606656944662058643440522743404357314685457414111326187671743286928630238668479027647869123553448019046777083728278821840411138384323809073264275444111326135134179745005646659908212982239260863677462583885673641463162886679275296852104418536613374720380674577318346338372676134896873683068915296806296685955472178535089215826263784130556011026982100029502316535755281235789796662113367037319182499578119072768389385044364887086100196034202156687231361350979556609019870027953453747125533199087190817279331215983159618677665949974992962618007866793603157280420883492023576426967442462922494634721591076586849549586758561885180941837514355718326741074096635166529536124022162503438706719624192805577056985579367396930702357269712525509451510693502724237624575926767471653770865509954047907930866431182690661718607180082740717564117829943192401633875687952420601156817405139496829608882552102476884918354461578783800461614899344336049071775706741644725921203422790559000735335987972702853935743760265062653209616398608471239541472553373908229324142789170028896537383813606391600594434856125465816622209629994935312293108879476988830489578933915222805831403908008308657807328045237862095893477663433955471424314435591858212765880721948246829248570662021292339760541918293356884283084364327322478095101797486467120075438894485382839303511970201160299020965834766894988726628260893258002279584955371397993321982457834595754209841766510665280457362651661504009159666025256231509899748966155878011257040803399750994018354238909438585904336211330240454304620652919260382380497667723344281058435286132147672054456654273962432364031193471442181458182623867146567190239799479873101533181393004222182950519207693120036787881358897659077728105560226662475899208861624516272028592391429833007772716645643337303058679390362226555044095059053466584054010746179107565523486569611490564717171197163643938375871232689644980784782108600882570559885907043327319930906345301894092958316875714870865929721818371387602792119132859790346538866859768232030124419400058047252549742089897116989640671708190085117000773076376839047489294729508125470694553125914893629569026046597547565438975342650638867810559451826589699230994361880833446564081368470761963324665792045416352123159114148866777839244072219791838138104555391832450378491045227257286983173929620246260947116226183595966690675497798467241140554004211200796994463895093540000757227907774472097745486905481083183956788361889476399385025198560045313695842297972233784904167756280474784511862406378259190077946988807136659346040429425411050009217941487368419728580542512333915483206089900225315825335934969553664159841974823728408707092927214584558116754520452004120970197695207532859474771585675736497540361930407738107051653696279944486343093222862524299178597113178492738275531900751869896496695996944505932986561869151883431686977334046334323507512571917923746098513304868077785955813806831444795026389188349410863498669855716057863398131735473564014974959236296935565456719073552557027445749126869921190385661526776921849116155400264386485999364601138438853203188945522318331335113215833733586058239290452932889508165357891257633409802885886677691199136290874931509569876197774780879650905123908591242890848231931519623736305543181992517353771487014883391369757064623046781252258751657781816514318338409301860667484910818141653195030964681179565546884830979718660026952062684294502853521454324444399040911241551015248856843542982098123487000380397536837088669068760320155828244319261839369582173636434751138972290218316047208544092924583752558877496585440424061545859346330281257816689498069313453714266560918283961648828263030414097954343752068017619391708888199431743424114973822158949816522443678588152250046840342507305286708909546272682458739554748999615921816166986253869032558168209619730137988674844511051398217248086407993074478250377695697529400953435063330028006148298769527366362742421491551076006103722874532397172163171503410027164769601120354795292307070534659318794857693328417694517743428291520813739105900297486701687981111654342412044579364308229894812479008328893802012056795818021485784454328632263186327674657295770155446391539230943613205040579572281005331049954926488214477404384979114214413584325997162022461550113882061064470756441205582275237520728317513434700746365953182620779176275997094365153121850975840454193979389191092060581748793486755342367587228609691026803117144266622007283333805947718644559491508647293473521770928068016188706995591733469437225338039011880993903989573708438852765193773902970519514330835425936600430834555637534210213218756865900158714704882158507338454546537801719301764488135729055863658455241882932084354386320090650274533071907563555992042381236071643882341286192510070367178362634843836118367618817085505485692284495918603177492606788793004065668001771712250593140413497370678626212643950346958337502644273476920493044849908550601759454709891964719335193627077353536381908963608604565308819207844464159166726889065717038813768161204873768303889740121656483055986767961976209176115151490847434644838348249746305619527037744487471914523534462889609358387967064006943032947116958886789532321335121273358191559488935394012147182852061128242103401118669825986766285314218594559864434468329425141190490101702767629814590947576541258408580518619815689739092434413349085903302892169007744469713666289073114049197181454821662588493415300157401229490837796617191265087679266830779205681826346039015995833208549561309660938088282584796372133086910045950193214514370951826515375795525992828029385926679631991992616465189832031385261476803591724042152053730305702906822950498811604184987500096294992678917503227212063752731326210742739883476273559546001817926158043755171987051429589783063029922184279064666280641427069678648899499007118821390346248085362673972680625616181620485430390454960140582968986720761533075613510511274528379389734801142427875446918903623115678523257891839721572646105655871426449253625754952624082906001764913637070299855481739547110516226545931455618899908394891561764668916933198889754546972814576664399237927271059264494369036128110114717687966336321458917515497718396687015928145768887328284662100371606886766260317038899386271547682694425140957442709114961717204975678013875582101904274676251479398589170109268625910214770194572370108556085024320168063926355940826464347654273841687675938761731330275604106030791474613659481711360294037297784229825945412598879952849582652884312108578270182969412211935223215869182064226911936327993711847157300579234077976239697534352670786335304282619973774825344028859536012466865132064114185004165058736265728391367634788900407638110736817489839638174686867395207199979772553778596654736271952024030070786372266151907941895601181076650560133890569186847081823201814804244961123421553008861895236202685345381596588904262358508506465980981029121875823638218607687697666608059815369700383874483744441588781768540592905204021206803061578441997563221523020266091923601499425631335039783215645964174078587171618227620380144758947076939383636561078206644011620554861679427647971132019907292858686365701748648745347512327798341257963032975111689488922834149073955348289237879237180894673610187626349125668881841594572851185152494241623293937907051221598180829185595528572472921943120482933689615790535255340183413707440419432204997381545945169912878235091375688524280649802793497874442912057975042147213014260261876903130114584333433512482163449247590280318249930265867933990016626734857713932160870207862805109336529607299017762706933407400120704188927960532236919015963737916168112326990204235273966885700011730542895991533545942764477040325775250543604655145857638570432377288466486122786319340722378410270649592052008274859598993263414025322175113772003886689269374635095201008650124249544918055664999339861310804499336666817286943882137221864164693459778081600870043918135148680915517240365003492055090703731370674416225481214245935877703659483888627271347039961954388978758773194443335570686294946512368404198423306333486949284035401019754330181421352677599022285135719362424367838337067590601013007426059202225205053139625692135208023234461616440457222305663050379250766354256638030144521247217103387696493173002914679349437875029285402011340658533213576295290451545338507849651931364886595595464776098440557873323703659701404285498963630585745357294178923644903119612767106731146571747669478769312607541922686781425979820171221464778730053076372032669538528016692253778988358737880145071319419908973844330442202816364488225678844179861037726826674175040029665073369946647141722960462538191629237458791190140852922908315840280283727795560685810737506699668662920252180853416259388444791735314952603921795465070838664617802407913223330295800449391575530481276628238817707503741378884769521091395235929726659497382792039357354368272769444110122394540122711219798171317682921095794373566824066384157445857187536226652474759402384595068475704500975506445511521641271962219000002667936136569904476767431662783739364400292003609918422916368476809351516791621649844665418129636890006060487234365832880909413385601130188618878354080393628856130976972523679131630833996269227788453130913375057985241571588744169701508824503216124162338344611076309265046026819993195420817784540364090647149657357917846356746692910277770430122757290586904136935403217577231613181606282142464700589028613500536980219191823431420021437409917736213175465622585919665567489478014735080300856500585462451290647742187812208890356852415787778478527291544692843118487877174368610160647834044081310429219529761951446236623259065552217834130674701414996023395043096582490658245260523520475050992530633616123729555269799283530447984829294883412149638158492757340690189791574399647056951685537473389178691522550691242448248643023762832833787891618142926981995575053398060327664832501693323865732574107644274540789054944021060330495592971700989492272194592006706704144943859807206022799088874744885049002886519855179498009723655939634591846439722970025201481869310044894399148881503806828870901286491710785137700472075440120607325715149985564825459216270883067062834737907505880337085106853121237267747804486552883349007959382247543946156643374900649503588346004271675541774241292926275447055350976466124107347688776348079549735007387745461389821536098432929625018310763031811111285837818403758894441639469723904763352444879881149223975356529776021444961573723069044402765235063760477475187574126116456304362705395953526734614188987655658984290168689958689822879689329361201334650593702110207683249944735771691614788986911175312151093317911086317908764315627083982402565668165483273495554067152929795004000640429949606473571622040843444257666187032455956600476932798823905747886590050016782390707839037358677654973350361832830562333941234087608998132805631650741986773310984712639535194181433759555015185492180914547265548219389807520491840311975397141690046656031960580330555492914882893044140278804504052719130164315752113314005121992384530600178483662486496261918810038432251921820385430062429179228507408385694501841431784865366771238297397512220095466496884370233453664431198153487155234050178090432242447118131447799638248716146235703040151117015921595247423182407900554858976823810871894777520659491918510317296774681176915406489099366381337066514563877123130844206745103393701204745458644842666010654112901632499922947274096656989563378638470109650743622653747872475647683885773117275699807031739901680430240988886450478295789191206042030929468088264789844044229119120225209481606795867380844236497768576997714239814857368188076921847348792740673550668151665297799430274106579389298709618280038309426102987621092802061805792304046211833982064016399140522530831851651852204385286224693382503944007375979150114564395174366542091487052677624811066307222915867004880244124304214430804274501936244711328454577800725561124559149443459499442132557937424751212994356501723306517171761114381411806691665387781322776340779507919755051856557145673787236936741770003929854978110123874408702115461146026734031536778424693806435450601059523615294981493497149939413896833028360316990313133955845419587211075354347471270923241114893587076170566624120924530944443968259010809217819379741234423523420150702352753580204200600743432652059481934584380198372503542848115082373692721376086349792004392649790602688014326278107240734190215405638981297071501735856006409188470118047091988184779438392634679009258633457669165271649704525719093199660631286713494501687784977368868621743693843773368948371305075293041698946113814549691043859899315805515679909810141058509392776120335321445639634835716986405917040640875244319487593699069085224681133823468445488064261221788465778189990989969824331127454341164596241549666996788119500306020580445469386868493902421743269827667687960027375955619746197807303053154304935225486204982060393720713427514983868465123574696866092350452766827434136433264052502906022884669369074144937117280219452791375781827022401643514558908762629305375747014865880905734940361668850499661591032700267414909864139079108228939459256082935813528301359749328323158435726257185500500536924630391910384921225799254785689623476495120078548829770355575980176482458574210719126581416969551698581052467791161111961985613258617942467527306847710557260097419028934354247484304164445418879207182549610637372255534633842485269535659944573497558905068466493602335550252915765277240717577132175946052609686598977030929032850198695955935080956542753840552742620481103457172340739972519564936287085586963899345429548348574909671995481647800005446598787012739953428424601881517899245744376745275813107262641666153915552749142219762541960925747722984811427176341366183902953512340082070528902884764961335385464586528407656238519623425373842990279696897377163543163206542905299777867763488179687535078851082292684410007213694537727635066373097314441230056627657522265671983547897844916699074652059727050129417776117934878270439686704468429452410477654103650225414670361126040016107487876769195081096486832449307279378027551108689838515364925223128572227223252654856324645963832063540123030451431772050751188867490267003081305936459552761124627986538526193145327716328324410994965354317204578088716206591886827829624057093172806755134991181987201960588722816505908548158710317007612533258760011216965550501096521076628684905458881719772835949170436745938265217790762431226335313606003899892744436492743351909319374036353091645346009548732889787144613095753159586647558678512134263584525449746634365963740797812528680921341931093264762362915321526273001870217823282177235015617719575570120262253225902363252314810719931415773028602692638326306079140363387259479389061381774640810961827634744079142625078000091612973941075340450616144377181505932474663647711064321426607607686452133098555788589360037966810778534630606095477118626957635193345886815572841928467825838856951872809623343409574061908021535050193163219957020466227015174483820164613564346857651005381453015597932484896912794845544914055798519912815875370548324289533043366888025617985091750267172635084953014558919509858480756775333375434443576157459909865556547225905780769951703172796280013396010038521950577938282919929436601178998572169744640798400226096271810806490162517422941209223644504211782241911588525301116766278883867184532414671453077384562419528624864979657767037286646180362194210923747388698423296335828921737975994404883594460919717535167557252830128573492835723990002811366650861708575627983800670342397498538925104170966901758411113051958880686547772483545120377116296352415732462657501534974007022118040876552431356896355206884613618710805902784315617968829252981780308622645732317555370813435856282849239989661271392374984380530910149235830174925399045037298477968167300769174909908605932133594667671060788899615349796130370090877812047832209931307507273472689766418631234484302576057831259129765630806927362915679446429317988677223268289335859552081711805368146123336222572709037109425238585340801642148198795897184184234648077343600093793014130499003497505284351960147358485597404810530494696985939875983820296391873142175013537727614783784603490148592236457602000029369409350903670942625012085229653653817858226203271051638515287950224382434254425432873804426969564532558438771477248043168002463063766899829515210026241150544702773078723968395285355991743330695443456220602784078151330476183212747227379602258802820942719979234449251777516473517773786326604082753797772192602799512438893124121639582460554170817548514784703470288404382998682082745354461423054779155613014539478764580616838879285487728964016699839087997192507986139898614154626048494602139304696954315213471252479490584019553353068319221744533374783522758934968942965035524585009593897913585051568333949363099456824835398943461734648724895971064282786850289512254090964323380139308470395751181391164455777637207527215963411996680342677107883837237149793392845680050395381688445801222190121000087116667966359124132386821406757823427765027019812088690808492322082894852493068614497182341492686255474713902388616850676517902853709568348377715721100278748315069034909553860057007918611253000913309195764000226901908525266588313236061961874249354107836514302531793360480444431649537191989332117638431990385756355299033264390374170755429162946359718625036303725904769032962635818299803450945954457844308357857081395951602722186244647569625533470292065236547283701313720730646105269217736181750913721478137696237285029373460565337959633088227009969785186503902523803764517795558482113480312134004005469829280375504273526041596957587370450591986016011078987013198945250403076253295167880400261092067010912160054463868420602281618864778834668733375304928262217520121528572409386494370566321686698357538219563264106972229310640222632082536655142599066934722955464170458380910847089539507001211818224987024628760323875201862259312118141221628023017933239938133659547691222872734187287816962533501069483433598789237647457521364959254622458152499943789349077202071987811948062925270271928386033708447232112230625822606976986105097089547555898953472011051032877231227188925471135248144663751204497780744162887915547437567213014846788560346262429590505690142105867364057960369106888106273499698911049643922381024292300231093092002282697726274722185916935863548857892541575767308286029510046745513417677021143978067958026166422375628108383417036236638091816400557794210720897302425942389893372414288411271620590283467351984004333409872674331191946105686747565587522989210870566036868010384684426935613364307495829235067304188468732059377795878333628382521898538241552559577842898311311952628176133913961352847542215675602573799710221437266930365945154895171311551611401645971415978090601130071938524217029991865781102863410883700475035626187558113658769704519695004612733393011108934271562862607031701156002235563012647113146857823682892167912498756205496735843572846590787984543216303214651234847152114055628574469770664675112553333876750176899498522826185577469758074669739918068362047631449102796603014147189477194871311444601226640609207481229749718023839085131930756405424233055712799138221420478126788912448890267006913396111604974923077046224397536579248639734948940065206658835675617594064926907408017740186568218568557715099102459986252498171716956050583234367812985275390274039642163836762649002538537925712713464580786204261312307816265174634139076857052371149264602997253301595474140887143479229140730254659506850339584289345004716815069405283328532683681206223681849544713644019267207276346475700442177174070597971006712863305383328041368776886005811524176974998245147073502573586870990539443566138205698218595427440789594684509731498892124348123843613263170505748987486462987299413621660272961077537637859561262078144925806177567486587419906500965336970567806003974367819220757807942163602655695164966612016876934043433270877990739724510016184107483877240205336578579240938346469123559612571007807812299268715300929575447643176104239679044018714291654289076604542077243585637623674050677120355822249138627555229705925125176004676238854565315676749176732359041030786257260173792040239116770231723787760488516334183114000703530351567520673502743216577106797930774932554415590526045889064239220761335717205943464242184905259451696000814503748590078584050667180373604237697829836216629312737802130474850500809676114725306973264162344073034684361157367355273675977777267750765952521837075347621804318433096159067321389500830600682386435892801254158731695778045213208169521748876719005197305954563672023044708708062413833828946835180908076272460061459781105612175263574456435628350385634574366652853801535520820038744081241268903517769842743681159622744333841361096298554738643719255830726760649578272134513421977253933984852828056579399020823711899179327091435635160007664194847647067582936114213644118507506980887987744749620841003349407469663591470432115201391208417813697715513852723887074890910378234470387636107443783988795453557783429770915943346558674628129353481945313491255728435662146561912342384394500324590034971947965595926399964981094732719802387912446848587260045189225028348651436028226436640715299891284774588923282543310377597053704261625987017864075115117909179459609465890397994084841249864658697952671023339120300688909645766431648411623388930870212226578560253707537440025981384828525124316809467868013567901441510951183031374855403894663705657605530465439052608879861609170153155191340616913234110419282960291998021295101515392106202776520169343803815462434408114113414872117868583041743185193156524669266747160687602254213386577164501703347119128288814050493861391127163869399623319327924733753053239224170835911419880455109025165688049671629071290929666529044011372205060456797196702144671511568567979967712250601010707114011524418139338991501512346709589084519915183150857652340676104146231528526020127407987907766081002308066523695795614781224897490374621208790892964163795628889057212135611696170015871196096776294115895347607507457874010861043591152790522128405420873471159466344377014930174949991782871232704315539960402529882719674514654864132330049002304258354340559730090890668185415070578317500781924903516768739434702493923968968547224383217570028035540565319981702910430773044717321887770592298071206642548929434241931881646174714410159487664920836345328764184137794101804143745605829072636009242601587364278458348722399657899001335433127748509504369552108103206999180888070430786351047243694946121538706314829542088624752616613129342878510251568128442678554388291100624259228156871548373253901875152921229374867290939076115970646786452952661674663026179369328825099593915046176030799877597522850568273876560743927590437763634496555973478300935591700396902725266490129973794354706781494046065701747050206919340505932109615640122329822048829183977651217805242956464534153245246022099323439676440499353146743127947977739120365686490346554682554389251699520775684243958615661128302227551637508322198985877229040682047558664643405638421624277956586112237437029076277071623241295752227039710176118449565795530541830220525102620401305925784830423211565617829249306897732565159562716180375924955897466710170565263477740164601009479785625736309711537569212439995244972557308494952127788714675220672500042655235618144656256902485608864399442261747369606616076742605341541056760460364696438374872712657015186820374720970198475749185645383296190862197253310645719639337070050700116373468584334543857555509413419190471877028566734961037872063103707253167730835243505714295959481238783681878844004223840922540308493148319039948298329600950587396514704458410435181610693281973948914872491541471199122769737857766186551736535731443250239989313469525694744948458567261816731052920024971723294785470851533083893344113478610780926310591814823830475228188878345315814837639889634676383628995484874696046406581128119740194567986377395350103393833439083147365433049956144564172205863614170951687961136654644475872231271698998941227126823215323583090881715491128593329535911111159124713352327284550590405058203754309791822740925596363713721793447744001885327295672659955164351661401220118539226866286811778500222180433058711873295634732541400977280187824797782349621958264011810806142269611923560529226634424830244054937619194521527093259274516751467625785288489599129969592711910308875050176627433219078191310903155213277962680561085582764252740130387242562141878950988577034869048102278223265970740643462476992066189532355094754446161870560571033826785309349458754808240527915009451327500022580234985040373155282383097616130131246076867470354113592092005498604491519533017230419336579342496176881612329353351856285226456473849174030994785202072015411111752071412154334242943843585804972321405265697109934997911703729538590689192957625965410395753466919870435646765952173342279462147198857275780532558225876895331840123798772112709235580718773649918445389447242136821650362753747912738146476363271496176716964965020924584568177532916299662851298965858124190385171810055706376641933351486390295636300050929462249882934326824906282304283738748676149630320334961337311060121041277325600993786369729465249133249605676945867907571307528736258013152461146838548842777238980500351321832659677733986224800236451769942061979653961040933767812985394357659260451346552415282330243165490592990924315650833159288651733212974037599348728887604937988456809062098970103993511622011422898723667459445461364182605614828621995080747451648216640856770670773959527724084497421217516876243743131901078915285217634853258826115927160301897688095786473640838387801260969709727595242674696858720538020090348013434050897558085743389349872877522254981089017048120658317589254944694952732278625009513413667539302715554482113434879230019551363743938865838471587002469780999485146762027638740420548353838494805724231823473296557592173729283112926856104419340875317104035589903260371751629526161100295504595070520479283741758999592940039144037042969427153225840791178978378947959142052225620967723065177451262530339751352094465036658854897356312936200982117348325625798240989900195124202086882673376080898369038687306266382161555784551780298824714800442991172188863476622607250241369073569705494293731446153960979736338205022081798094130149476486728071593390610025977342364938345588623615265398120709487343034599581444299205788359622159404083987046725974607942123040205201569725610156274341639899534436758952160855121761066028422135796895493209446843962001529422228034076918020403809410761243347182613091506540255039877007141156386412811988801926639116217667724558936416346198782528535567951956824909058625057900250651610868417345953570441710503352902474131858565992799607644759863401937664940458572474300189997744229623007426796130625162906573994015849453278373777980596570348283338369342762727502438826741007626337442528759735208661645538893818001810221530831611570249062858241133043553301351701803770389554143903614767916426360658501387493750424008504368448708247614259635441596422614008540126880312502202644557292422105827294363324276840308331353914834325789780897772588067578139972474701571680319195045362045563805738016039115108863850584788614598816077408177451405235086603804269902996072614922126617928929215486649706668886821733473820587597171361124158265348966385039918069847276593518249850890668300418548617776288875706722791576006974016230853498889128548194156094395759198768380502644122266896886543600488037447445818477297378364165450663665920062724535023717772865080874433862802608702220154444014304019128575495837029807591762110233107032716038748299455759345038489525801837026038408575846359998359273972605438536405386652560281456612351939782155728017479696775676881080769030054024179143442434550389344754453254695133220488428973660328800167178365395089111651292158345013165863027744354319563008876140978481225437763749105515388772846399930849462311041212711500691471761030981531021340324057156743350850667046933061676431149708201834651321592089739764168719631919807059628628971996689197211105187903753144256579870503165597364038618011903986482779129861301982482766123854089490186730020621662924599055311892569302511767148986808518037100659561220155541237032267650581006965710408569642695582864175700775506958879386769071049491367605147983962910611342739673855828277850099112480083739287133751047560817590089820967607398918061681365423999501537244911951445815125685133818120033134427748131276161690513493507337050710201117329834985743091635089119649739400717993247884279896396171361344206191413247594175762883684361558848537729321172070156856326431195466022842404664814734364898378904733291379401364884397199250406451463734031774144745921389349328824694177305192063746811427257824435735785692859403001367758412172853488684905458722815479124884406796055724282878565585628596657817806462697142962595578486328676936458458009961935186392285382172250286752654052134856089450177639732870259907045706519307741281156290907315416046656643631085134441422225952111049740959804234497346373974024226462070900039157714259654501480973811252151918550413162390476199292026632486199487353683457560115822240958511266397171854804825322732523602405505343420800788252189885092377655761138149697529249621437265023904074364178261055468687147276530299332452951981927235660167982697227739518255108709017539839167337829771897688594052855459991726430991243718316086600250232326906501234709254090240643914787830364795201023698107786694994096980823252241965034068691740410554010331707777232551155597680884169560933459553860946083689578968754210006357732912977134079558181422043041803610496989000154530421978949424918500439707351172223517290546770351974020188925830134812051747532727016101040400147850201634591516676789206829527457592617295660691291334093502650942945433381464982826916753285226190090228790743519037129216807422144667048410061465699087735106415143899161467957776904417840629682105121541397554747099804775079514482119358453712856378951742395799795784104337629383400117540710862909384896404086011183787737264776488515219002023566798704064297139945265600979317964547459739355048451543211773135673183020173583915660980359826207428826134190782739702175699700891907903704351342722207509584337611991052830440211894010486454875266916593205916271612139947977100823729636792694973623747424852652679935594041340159537721435889766891799934333401169347515392078712471476160839102364017170895649242659436525270570171757015496547317002922401932540114770832974669747719505409168094660861345991002429882243158307007576315979938673944772604943534921028221814221197180572597560827224209606399708149794942851982579254319805575801066082299348761164686862621635396175157419868622333779657862268410342370491470252787522499368206621428535105109766417793520574651234903456726907979955445464515139651767357431542648423434334038400137666136955845354725439746083412908783923030164313358127330103777952973980454178192165341911182268623177686391774162120304444702529613600588538735173190788711547771671224866175436817694029653899153490662240062873320392268657850966099652084031719736216211903253004711796249542128732315194624959623761830601010467343098536881217413832238960782924610273741951124976834651420838247896678667541514230382293244480683983630469716949964926660716508603871200357107611569300305148605159654457842700145894676791231076463545730320682362925216084235398210416402090471266925147198177050549048889012819680183284089930438339176543720191155520565777464711711547034147558661562789396176368172446647441770758986521313330439255507146861614271820151010781652451182200836722919124026823115181094789592811757189776634130536091530008244065877262507250912714324211129812664721948735463289619323060206492487689099335556191956752804551473446009663929036307646487035978943921413709585600268579829412680850839818868038657960534058767117741395386981182626469385368675512475305597627112134445737387387407251079019548537714842007906962730081164513033642347012558163423163038148512417300370166611858123158939807541767225272732187517451927773313718288234080026217652174386290874837661445764163715092986173752069639623722416619917821005724167236849812525412700697781288364697160165988051441028441569263494871522799409351800677026615172397551863689136973716640615267653038941190718874002352382926787413823240599922034104950520932311219399548958672448822938357502104062800024107137363487898563707368116530531066022877860098377037363313465691159259390108902434036805223173106976592624777069537991192648641117314772441260371701563480069329097643730789074590037053483227008457589354534775405297960166814262699426394303508031818193548149905372989956487906210957039827904966680912884928639580048098461226584760264075963278830095231656508693456108993774371208872132772474829768995669335110120062183312773983917742325505184655788185607890958955301350840420064177311835090241835415914948494912270659129849525790667453892994882451358671518618711275922798923057466642835355134116522960485957413789530015179719445062365744687120536224708277031300618930761322696881420671044546906760460707663523868933231112081886498869899365693474046143469754424946596151112534330138772142667914704960288961185669921105706883367930924857435772338197641788441000142659644280921324751010345073510834139183523487354769297764934078113839611072266832254498864602099368424189450771324195194373231547035595264727099573513271122426677516043730440646475087032939933826309041968836767428936537202164200989020298810427636081657952500831389905556475791937243403107409100350994188810991960230056155820645308280655943989599237591089132342308300960401182705079889796309844315338251904624411517250625334176859762189131173973579157778053940213693172560117756749743654462672881008611730921783465953805273047459838069045213890439121013921556026018732510779055519832626285654019444805288821509377519036482304813274596632848549602702343511609410606755930727145797931266147177353894919924847988124906345022496808586307978787143881468196419035346718180339872555547690460150441442804291759180329031585778081641423421217527032936012831410376105310061294547757073884828276034177455579481395851414783402582415375270270023821477368485783324291087599799907080432628514914597273492366696505622696129200263022695200190396357407764814286208897365939483891606188678231137579165409091483359323675336855919699990920072029499666932986527693298236992677926120739090982959954398605442134315416789786346994256630727433149973782641981724151575804981870239923907295332168072552156960426460502452720922141695403175403759561817126595323215591212190154673469897644426490008383622287876951955382143960124623366606985029867438693255623208414472644183374321323101755596632999256704088689991033733181444994610299274997371009630890875851361189268388491462528555555993687908135194021226934282133865340002399882876368034831873677566525994363403161421563327563534815486081894851571068773778257986211809486587270632243833091874612485767519825254406020885638280884290618347572706528686819221987139114848543185492307171442238723683989195445812281466401066756667679063849373915354364257645567400416537288839944928362295046322344319134720829003912536456825997151878810838433904301309582126524142664466269744402489612503898307530985448334465063238043702376092444545506237961551248442095421063824979384215112972208368950691737421967268526932926257679439102998559568322958280984088892637429873983299968226486919106536960271804591908844569449697158206501034951656632650470727566925060906901665016389551361401363997216511559290242800239051152847403614201308511822545724890174176167515938790713363308383953042593589709841662091698851948703154897770439618638652547000980953088984425639773870060270503437806552523773506413464013604570394021809254633460036481189592200411920326525453803738030833037511267599273749356026951585336662765097983815292267028063404657074288108073334123433596305792699214473602580053415975794011826395925241192404975964578416689920239911027908789938243340826388204976849995801660397661583228965142627675012660711111501842812177525391683801082935400685760035878667148148936916500833119767766899446362586701241322005912388716021744217037821990839506823414665739367581548143815537747896684141723684692469466671729314691135656049722946007666475234758641628900059012644130060044347219534758242545113102149186643811414874209654784619015790884695090991698393436812564118755823695034959102744060662954807447327882285686937393738618971950406927972294152075454460731814447507419417265746139045325688186835509567444203850641136818564087737169411892174676334270840812871796730605159692812624406576532019605034002399575288568782953424476838037974783602003218794194431680674345591602681079110360231567895592139000559220940959086380271189897789115509572403751313444169414756174130943228734259475087898517948718206905161789625915234422656208330288019489680639706026465269863693482611521349991215930085530869716845741173226953147760535660323697306126819256255636374181098775014307607889763464025087467233928659621930205126850940922988693064483186216284491394339528549635739080670860281031659082132519145579175030946570990073840686995464310408573760713910044790451983638621461005739197371748670792576424098476045410070393270507455228998316580878087877946405542633636323102860784306798012804789286553573242341451194838823816300645486004636788040018671493901848335909768050162477642890409440335898903404507520063974007406187371197107375390068600456795900377810834037747844918987977258890272146728016593932268030850117660050649447385758664045830590461181377526243454344126694984147451907383562151653353487166326117565586221509184797024221816614317339094268629256668335326030477842951727636085879854457566989164890742195909858727829828572845503120696861051630102668259664664279185353768188320135095023138280983851529034220239985423933325316675854388030278490655037629740636055972293005884766875433558688111105463387480366107795555009712499347574439304353784162923488217515037661936142303929268390498942141363407036837847951055678873780892513952622188085952200587711423398176393430745358993808324088975779919664041175418614829947505998002339621754275527029817137924550873581105141487017308946932653467063028437511521035065838847668495627047443727031647860516896849237042707479857704899775073081149070680550330472757197637697896436694504196473419829733741083262578382053986602480414077853860112235768411001691238804112548056563532519170345937450837520749442155043882345992446596261424625200488768030762362140698542094735689334373682016170959504719989007391894785728944396916421622131400353430859675239315905114355526937566306194842227472895109570424947381117502949763968700526458504709659256012568737517697642019166506620102140759866991830055376727739636230936903565367542203005490236390663782728009491984033911478987375217342219402230186418807908665981447795989341533551955298292973933996985535239892975169497419061993209275132255629595724996635307451431961136323178355430767909809692508898696291282929295800398022951598057123380544733134004581748323014967986195578408856607304386278180506780994127151774136390253835434288120469577986528685379828764086709737970369448610464112119198925010828042158489635587089192733303140668879545903231929558972383797841163849226660225614411676409514895659599107331543757784630955791791974348358998442796699402964310406005258954522214484109708237452452119690919044689866948103482078648989436963025937210883524664594468572211295243603870118359111388764142031565457836765206968258303797014079878855008372164663023117016436290083385603000742700500744474003922268702057544951388407111228788242979712010348960024953919225949121632175177705281495274294319567979636089600318657907300535848115483574573826855584695213042841386431392027422008881689963636679328759085979105407166464074068811931060520163284411805723699646236556036795656809350570815898902408748740187643971529069036618675963825576671622615891542558992856384396079758549844933796921138069696133396397767986751266636575837321770840006751996481343156393632537888053345950027109854185559397596346202553226669688580071413146430589265184906025503441465916940254811091128200822669267810018412740656579100285323469277085407499237134940148622439342305951719170672507494435206153738045773072414781422102348248804228031116985429443359306535890904323974752202242727050237216513916350193020224184540057803447039147486811794287827719970380451928975091786104910072849953120107084134796725286375973169836803553057666490333103253133226589388348443326035631943023195545893834551199302107319530768564869935901168833484132185423553138324478814744764171609484239928954773523457782859409003701774013908838823727224695972699758833968398779583699494320885426664509414788338420718117338605479030169357524281849614758181462182783467242410169114553635580372514682349255646246679501027033820613998897104912456018785564260355277498612172717517873919955503704326325672679410913665440981894656168504061579218238452250919168215551566021236092669165551582570950279957760958667738247155318855264621303148554031994693808214512684389831039816117005390813304179607114226148831999974144105410018511946863874877160060004054832130640111420690798709093387832505805546824853999077578158459716987480467899170394413535529575398846776218104338929155014010639328964809315696493809326007533889432749307634128849546611634564933494125651678911570172629038127574002716749726934214046003978754761056287839678166210391989663831011582605385672433389384564121047225125465741719758751383116639606765345793063166056737056145133867768008337271503260786789719526858260432491124804276641265882052896252989447194822197089217845197112079032084865386757763785209256105193546892235699625161343318005027391474816703324638231600731939029746770534444548196813990926910794434846851336331772265547583032142551879382936231885338442740091551691458638867801903037499359676389241369117634229080347354678673178601534222518490737448768427790916236699300398045853509887409001625215225810234130828419996147657288380477130342868349510520512347169983782247198092184892633066278739859446979270231183365095899909499023128708874971841250175325840656376330356058934837840666788922025028667522921762380959541828389823255027662618336749301359798232678559727507602024932517731312535859627485350777837782041518315633508160951996693986877690336266380068589710823886651849938704844992869913449169615983894698898199706579921390902663980075394964022594785838255698420346513689531560062450223467096174172343518629161097651129140284619343094748807613080831211872606929010974644696986401627364386344173509039546436828985162940242532819898826246336270873431690595603196824187237656191768301921944328828592532148639500531717593614373060443329461321845348397606533272143788559207185555589363570384252932735937439800648063349966979026790112680277938372304828457919894497690630361401638455118715475603184786862769890175874131566337003832857815006919187874983749880535479489901112806957456156655291431936645980856266074980855549650501018895219316193751514460952254174874872262189181679683942938873961489171086316935827703206175073191011785434786053458975372507328716951612582016095837212313472157750965797917106871186118800986774764307095551423653148003704159044336520213211485933909682993145249682909847458541860318105576019670172248377323086982685940040951636566797479961575471665388843418439899395882362377027081227067201417523504526288483676913444660111521817106159616529520671985697036500382291947586356115251668096479960825297365446537358008933594912499887858437345421062023851917274658510868407029559696665528941412790794355066814170531621265259140910080889111269953443634530507310586635961576813070542985080062226224812431596749831251343763706282892435067394792953584203432561603046630634591274543005945606091678327510705064130740735128439047146153030880102803190453544406654783572793954650117629972145331628652408906064963935469774789017293511280622008137494164368511992180957777809817212816473168836912148071859259965070549293599870998085108766267157218127820722110974160014493430553808761390034689690267568422173653594089286241854948928342458130702466396856245812012942362748583487372864598335957313338128215551002812065455973639304708840013843551595403153278270481231134878397569547145687268928521363983914510249772912170749492284672919154423927675313573941331253566971311077593621992638583120334812714960759243137695615272696973552552748005867215537388164453830831235032693017187155210159943361718598960300911127534444490826471988814459716632620628401632813631686906258478959787265563267928094771904515584091984434044984159213224029334103094307089402191286072062280709621377663499683310732012186005126994048089539080226106801498929793725055501764782302937902705983268254039151343662565392081954116302481595109472373580830384647687125381945934581517926196398344456965402152838310065074311601017782015412823656287751357501152185680234816499551006281779310212566630007730730818513298283389347685810699935536653582891444220918120015694849640290708396034412243946439272624379454591233245332248035566993277790878499740182915814124089340869890050915620772618093534325091929609230946981881784918065532036686262597545225000245174375340208571533409081681870996314448376695733724859976275007078351054161167190397993798869009884694514374533140634156384077464889460609638336378713034638179059911861984212988329429384141827016571991630021308883934714682363427619398182385716650673821520722359088015396034860210891772531931799955716399330708540198396383204969750189397226451149322514126312497054368583129211170468822280522384920598721999592736462845963395120698317067541318541333953391618000067053133316051000092945282979486466482502929736222984116074299111169153595955931381203382781214346799809797982361416722916050268838995425344972249002168505862266307435894942315326580718364596345256371082532232414790315865849063633606919971311509491636756025703954313477468678275561749278434883542170167350809293690718730112571794705920758200382159682272403735917668571542401928468955944616750212049459424945988381823057409375032739799848258079442059880499480547106313411591070027199218915734745461459584425116175543234643559522058161772634332462580829147147402615317509408580540645038689628463895142268103536656303344395042252762239084202292580943601297293027324531970796394176791055273455731946170812348127929393063030712606731298766769405728097647653010879413134332322745430566399693777160543125569278765597514286493981482644639790009810449203954490576456658406179234156296752906364586673044307988655218745746238809029666287580146492013413360629134752090946226244095512483584332302538399831326934640742725873094242332695744842577061570712718414249568560547913961023624925260002271772630293476650082072146218347174977215817328989337838502677411149902442823527811366935933576765344009924680155654815925170143346121270080943269851270257370627975082085329963003707775302257520884423291829926343696643143463344276205078552699524141081260348398356827271036066625657566203515479037810306307888345956572322171615617075738792909683007701138727675127885212744858557356348206007210517084337388575221861184632413784519241139926263771377345619221081124697850632138373369705748909301796437701468843000408096639307193369876617319957287275189797525274392716425822674087315930447658559163738138234509119164542897638772038789983115203441419469639660472971116428559918986503685437314095114752939420565404641555795352752868899007948499001092667766698391782141201641344243373049170239262552737045429279662332279982625484259547523571762155218376136650960852542049589842114205227987482328944269913291273959226697096771729250192199478573853146029134213128656796979476400357189341194202241351867252183536549811024605844112801964237050340068415137326863728340689933581071193321696468476322565157520004435646076669403789157475908411168615921372591877501027743243661993982274700168295822960131893197872809151331462026803462068365221348186351354860895279735917023293486975842458425849398989818893312326857830596575052005807713435855050691558007885482621138839158512160337815630714093026724238624808760496256093925248995166525928003365419091372369064105720491364462038233475069308450168127892423936034488786359676400204488605885749502485285648584206699110372174279082696202649011238357938513634840159251993896097066242074812658685953637278353302730318105212755462975276681767863256654922364337699973686148568753365795216363699555755406008426888076613332843497690837608839607581898217719412177491933006593016258208986356081454238234524831061809628121140757347633574518301672289002057327579866426707054417641977438224368424319738957145992891498248085264554275179527140984393662586616907766542198192119908694045663456183855487693669834557454539487044617112104030670502493677473254170963566698798304945082095001124533436107659723180069067299574243023913231730369776438885505405086517499036919833167253946243638738234044691899247795957409771611468909088791739894115573554730681008499513593578952033837242200452992277948805589583864221565091934703678106737740886055787100819826013440362391213508006085007562192053810122591594100083786545334761213449153793277706248956162044977154537366596817831272444551271573767317142961176958020439347473496874035944654764676969427154009508025522511537753677739637437952651453761746270111853012770622574557340399231449675133208048617694104058629383978644566438845199708442189823694993420023553585111055867504094677480893317261472282359851406148292914783466115166485752182786687581032405079518533151327459662865836392170350277559451584115015122385155380892569997684037834899032729503054372097934654874240670296735357981637409807009556722766271452298873058080142753343279444914608439372740985882958410218977691094735889353256173103253202559427704377040731556308346777094335544127088028269498514204212012703560064567971713490615056820267297988816008318118832285148300246513225618825379234172674510733443237122323085383166441113951075167368754548356380119658927094004605960047117882191511113215666730743577365628190282514268050836799354926468368737510217922933923454914602506451728438103369422011610123701306961527612591536916119423529255226925488737450753602164805211453505018533566779924230066585368082569016272479071611065275137154995563999804011526619177561331664645188637895906888425987350103756662239843281792071490317417845282493814489869945675171194618991678672202688712336394771921576031337547416675712141276831805665760391912721389967872872049300518595130875021745504568002253344598973344354957611335400185105076178381750878424601019877239218223565757348709907763369736051089340249851153015580346716216506981003766412314338601761590127615589875290030541589653627954071784980554497856114367341072915565754429198306553627151644523286062142395379621330002317078393979970827014941041801313404890638930720868685575410465745054121517644650408766485442681880579315703885031321652684771183017084861536718989134219456668753535613035172739825043863134570025544178633347454068892274002935768343397869966693774715028229518662063369334087209247025393356692083189325345828789749315004009627553301030418130350718127853908145455809404973038030935221321384174208896080038465803527165323836534221549797448287111989617953291412777648625316456162212716022285133582866759438531965720402427868538322782729852803001439711817306871873875359219079588570435878583736981407925670214065104713590086972258248694951166803687676365398731025203321188529655638481646867016950092524886451243785936867982202030046454667410921024902816283267028813470251156824522820412840921484876612831799569677520290095056456837562649726487093125846297595516017804093251177648718871401001224896817990132244876012081794824156695695549215394547347754561441746708650581852590596208951661535405059611133150117321139846395646524035077879827320674339267834372144273125436060783584890539600640359825851930977073125809394484605152234064674914470439185695745441589822500959153790538359119925582787837497330502427028540436049620257516532737889001909326625201872153282001025636623456260458928227225186464042853924492394254772787020604025202653607826569176569786785593438202542329049390033061284733743977899664736989736033505465245886135477447641836349978827988509961866341987858662680152026004597749069047513149485602576464191676979085181964182077057242561575731210746105647562848855857832634509939508005883250222432187897780620939910828105734023729437313365491003369889304378409173014343335538621062369499420817026563979134614132987684229135505472503017089474050145450380363943810958702871308007736709788800058623899029253313149272006905263397715630162866957684253670396010053209903380618184302144586146248586141825682411686269504731884207521296119607077929853222721526112753715704466182101938047893169469523076063709478620505688734670319122605842167766197723670340225490822397440968246075498175921424017855105989222935428030197901456835107414073702197422646130711558392678362325865043743137997902529249327833943810625627777837436558013668108801473115322651335227519974972385532328822107176566477766692901996780734049685082217878973779428598956285403519285843179288322107002590453545794708777457873649917145292962392644599277535266761042664773900130903572770920114718231497981925959160894249338613102877396096017505633696786014678937895355155511547286152320763490069537552711311187314179429394880130248920043462747602069516780456021114329160346690506197704860868423880600192856254520634745699515313277065062438225799050696279661879488598117902889660649130645384286441132908491053651999281921130695982090756660150808984307863767172486337572375223405915821935794858080501398753379928653170615433804726219634934781880513315420658268211391292768317046639519005272307277491544685612858350889719520326007942476639136774998460944183336662085226100492017463021231271535964391588910639600275123634724173246497478152969578677032646398652552758304432915880400862584711907601839704008154821684391981493781676564266010118415747477625083934813598019384375217028332647832257719987311286157741723919677975348594185664015810727145839677990874844973823449937019855206276096033503864026578398936833922894888762070668988757730374036769742218886348603601137558991287296763980900120409027307415842129758671998292135538313684154766540537900304791772048194580288189235556720734918175566123600103355513781810184130600883687572967603554052094345006110931395764335159831182634112687155633105939699881736495404276000202188153295805006369942457919513721568754674670021556834887585787356973336102187544892859639146695254963701648333885717542737220343915324510280760146177387619276261940613533495072276545226336634198550046582841249667180504017507245098610604443094614532703103183407100223177323234771733724349214718040327039311333647189918192862482149974168431828658770145386719303121966271090214941519307545264596016576585584792097682615113387848686622517784538959791642203688951595190077278661566835900534627050340213235276758137822005601770233822311921488749915097041601817870721774575427374321382033246987569010637312541793944128721887331315808572758796552509872167491485650830440933980470544790591487277249761440676669515758563293369388265988007286594845582800218711334971866173358917693068887721930127497718516920783110472513070619106395000563970425947454389953023126578851225488284921673045544803825849747771015407547873727866575929222059673235693609997705482341619261993302603446191093670504499557207047047128311536532590720881336654606405921464195179173325525150001631756552918896256270799418677688570270647081260381428486193907725951807141809344064015456365388584939214877556636815508897695791495681978203509312765996494080562463029971114736405697764580205558937734869386339451084100948556285677811261472063666051496879084415505986262209617153109875225691496126871136531933014623641218952804399724732054388911202362900319725509597607116042799410812305358276036212656253683921691491196564230253230495378297097631835298705621374572682260887094935050696870134116773857992459504627265938582699232735987556400840223643647582103111730363132953359942469793365015342277469998275675209090218918185504813197085494165817452723775947529963479900582255587744644407432835054037635012236286427953252259913214573587002216159969049617498085987116450143568527094502069704930930455468919121629492857170727058131567908735194719178004203928903395906626412517475074790685478356549494290890611166214047699507731260294763051742041591876476659335165761530536149065981826769079916777983205263573792282325156723275361973001134255749314693423756625385281403655580668499297127182673569139303374139538889451479861098922995700721877378705220925911711966758295666944050344651675686767487321344564638875462384289197026364267888204616957708528838493807462418553068167413494172287081464848128800806562601264162023926081596123639819136618616149826727653424000957048188862533833361301887634515600174112723124354058988172588443922607234391460889950316464136357207981869836321790309399862882458285457265118815682479859497575950812696540016773683114699930317559396181382115795002116545733348650561210792995711096276479380076517307651119785104201364959990602240127963604973801190298308510872549049604459684928009453088425874630912917948447656820084920111220456282794768223030081899615801192628959155775561296437928081619166680871061001838915478669923635922032278644773518471913358280307890976734161567149659720708864961090924929808646763763163403909910000219217276344138738159060366570854891194705028457564563162096872898459080388888050676582323763133871529211215061322511431179005059938918055010385495184518444751248317549354582250361624042427599572078295861571627491614199438939737541599611580645243075219174423580496614220737550616956590097989740583056626875160137653900706923690232239386742403019604297167397353346843513449174363345961217725041406403711730121407277528644401232890075969310572781353708806624603492004426370543584872068823586498119490442530091044653560788601291919810821893855955839939724548156975162916693500128187146868524490643598983804354447780034464430772604226862773172414354442681883878110751684540946613575325721852452445383341110219709504650654533599227541382865386237600824158877545500187007674208632055628638090517721660881768557902187460445737761012769821009190868573945514102594452661068905381052934763738002415589307679422044005764253465005597744897115536010867441717885695264056822748893522634058697859306111217748394267973216336998786652191263716950958613292609395388792935486472150864128073931516434088466419293472178011366246728286579533094248532616521375791590311085390564345930621210019549385062052466965163794792223988681111802390142303488273092144693663024272707937560606317549512465122694646973741724382667512387734328017342065826685196336675462159088279871986217448574638632161829808154549268877262613937435622996403898316552832644630151621106463437886061473229781272823313655047204040620674550255369608633557578940556624362148216571598776925863158951512214459493339195551276267257803534602534805013191242788326216015343965918693628339774014474630626351234627400511877613115215947636129496802526584765642773174396566355447350654493174245336325365908047524752615576403908205746187281096091112784303470025328955398274502314382211165894699336224718874432528861276233862734454941285065033607776759102864244037056816871770707867090049396182127162692805244269261031226947355479957713388056147221177161220825656876282302506436972717896612285187533762435423877834839238616343150300824132892697928364012505968739075452990006515424907310288518392940175689023119812042712106201092151214979512584815620545191558717767330053114222173125461097342489498541519206180522647153692887415960800233320273226999521587863463313643850549315484764098301570523495220066937521959991959021393183737732555879166950558900196815080805452938444667305542683264338440447430077035290197552480713002907993780469364819741566704306597045680577525228723231267400375008184360854195631070481561269683733846182059573641060898743308699189213209847185181053280569958304484945369421341288579556120774489839542956913417785223659667530285912216825834202573852349615938013277635956168766440952473055549684827412049789222575127678155822438490493531592672714962027130526252149329294830347834604651757382307749712751101376107675558810693150075669192187254116361829138868235940146033304315823545138947470099249544710041423499015381842094900003822277534241927914810836267681608411151275514154607837373784129938032809790989889297333479947298741320175757783671150879510600996498855085512727346552644067996951246910417072118079182734915990208251381180561056368443447977544169832300013332808310278487285098790922104084005304922462908452088295116545082459001506568904346068490467816640998033908070084957396786694142691826159705050022661624465527629245092129034287615328987589744971975569395175827835615464688134624594422104598680712111265059442892571006821681762587138939954780829641372943663433371077180003218623953669073202793335690440732692205365659135183300338967500764695292124828712051845201385297526117129117659126112647739078908420279128532390386780938265708391425740004460843593798473038958730716844361505487234743277105061482139774664592418042842974653516775963640343486735312339290167392066224081813311273852537535779259795357257868508187204334375852549387790914177942503352686376781853083058235080617240178155061166186963810401975300856839653554858035530179780578483440113976319507840019304758579967423600255134967330241658906539664774237449766668681123986208293981034289464046500685645265289691920956486828259639348363963266140089810718619971817056444812779841224865283448662648118467890058755962910980476783709894981308845651792693941729978449084137825172659867270413418616448213741823572956762962221185803977547807297554632140031007133024404566538259435007177271594392549852478901125182051056338096546286769290603410895391269735710208847000057435513639894769709933902000700066138929384057816037794521793863308066175181742100782459859972315557275684581752379237622107950369408131610910973816238602460490995402353497218463310066403781605680883291059600071746702407745216034670658387812914535367196633711210520042036840927433890171828254877228699265635727733040210978728143289937930210752210750122913736031301565453230533787929157803727158734291080918884727191611366323575478372567190572886223405805314284139796990308245151897533848997414769855169507109787804284535942287752637511470005416414361362281749794499898934646459435730551302732641715507069205354426471904796975422156301564692446771864384996976429635345802333529584992493154265387240385196040393313229759430707651814431705652208873322546823333962342881265345754701476121178247017504911885468686362741621462689725980731030435943237659401006994352027268450460561194862486424203357212510843813099796753956584756672635831081073245025160343587224556901867125919518351074826691902565514826749703570386526999551370549755442409197136415388991858397203357536672402334403621831546451556338544042083349326475319045235798321138124274290448368008714079422698563772847587549459493200741061629488541218642452259216428611846289455760623534641772091436897707706709257072953673088992949779117722895328051957280234925877557913205837648114986478202477388121539964719133155383760443970701410440642559116539210572588165475556596591399615928041534422360195611219537659553814063731384061795521849501305923425587734230420955894302868884518608126987471908369638384723894076663035550321702654887257375830250279097302153206400611422996118224086385440233511889011175817423144168459182419009410829220603545071332356469174851026015274321741231334397077530326229801525020560472986389397281174827498284563244978237004924933315852610660680257497014013573652055690523189321919532741045964643063403590478557383335905136490255959696571273880827570769471267598925658945563653194612210974986009307901855604662240069866582925975029018056369101097677288057005424775122682828236902437766008319727440308198397984269131158023559765427414077109898421227437145030778092639913468585209256470488838688638388874504630489079641091304204787099230130835799175829912016134371055636885461777855973496235948092271211406134762563319315602411274602878556084491427603902512143846611738878144799833713192185856823027375049286920614500246893060827901951174855172198545128972176400582013114240763831979626377559289528139235261058946292113971566257221906938652624243273178512940516575430990743410835074411888492062411048623865990482005891780959651606346761198839032903810850167205967387459046537431136545918228660085041792891941600350931749772547978845280002819914286285759514523286522231065732529534705162354205739602883090878228434487727294841253287848525621048492570442335420942037899801833921956443087990753081340653343442759672446432399174890844902403648311883259288951470630140484867085987301121653495099194501076336002668777439882432058565835255073534521212362773181142372089324092222457530733386092027175194205302895286640134490505736940706443605377534950278174403897316702395897645511901702727010340926537003983109256007022673526180819997222930457843624539543662194016853244500045451870294409051557310150586172173318596951385863387742360846670810699492337123994548003360181062269927852272855473367818586257778017094039944397784669214976406120603885494398617291674434727740368965565658095041742230280124617103822654655314193624705391015681111530234767349523230166733457901195406513477867495066626106255987592417629388491578806678594205168851700912681980373881604962204816523159230896766500642550174257822244632369824295721219187828600333279347971815889234805383702042928032577483404638435403895785016210108688160607227174210929987053117475406548253207253212043907196331623229789025218340254522290443879520239846657947930686829396694227932685993809263131431942233131506992850047951255802205898211218777115109328680003200199675596873521489506346460806297112225971021237230188803217871958411439448184972445623136893077784925257314162562987009543179205152321273188335881698751118000119553633146694020040984236226375663582021791343785166559598865891260824081469600179744079662714625095116708523125663828476992082642920598257653143620012593872852821736865049311913105637694022132976821250823018856906422712599565988383826758630274315366514864439004826885595721575843866313785948989041724861229586016429657978986511614608553737726774014308222790121992480565208659940831702447531976004936968962368869579184554186537040172034987819997634845089037965031113797454785448816212658938993741326383916897647960667390777315351265679875263254314071570589078010256910650592549038684184097232143504592980558157313385849835097370700208217256554572540371861932050998657805267322074668168285228349524951078193505754951604909825621813146221007880463401942072531701483356977521895424469197335786475360024340739535583902832501939958872174560143193265190680131350057442268474657525239595032336751801151776570765056708099952286528744544137572229928370074164186957855173848057873576724254017107542320351504760208885259468691188939582154638679942640704221911277756172430287458337036072515020579502362889487898141365836128807474283993643600886987498973082339699893738968230390767313586996669200962896654737946240652348345024989150649953624497745695450706879912089286677154438744567428722907623499210343327252503978687412040262897016820924250673770439099816563734588160441440155925635825950204112198221543412243281185811359956045647975675673165792309143040466788899824633872418606813838224414993159497251161912027149106902262214143734718128658742921969655985396944928668979849096683004346393197752820526504946980901071285163106637253346436827877770172542696862190720355918705130509749072158491819601655578799397917212456430795880277529323277722604300767603208236024793473251198710991917313165608670681654582060855681981670402406857348872135897611593270584934714148974135920691656560543734039538255850227449739251672540315530267000321710904372086361281090929142961229587977098036189347917814434937484247017042416899757605612734850335475241073617571717437345766276666257787226457911260975057138259613232098342332204694403586864009906255347941014544537964225054017341044029497905076361444702535787396350574658382965336508331914793586368294429608939708740664435871038468967004435541892457976153059879093625853179165144716789665183835351115301551357396188531854467138958299385019233482117182666680816536482577692259205623343637076020969708271383909583027871424889328588593206795848578567700361684350953237608789761011780939333595054963244633775714597726021409090100273105451744320206676301172631521127151818997034736139267751077579648201096616991249733798228172446669182846689763519351169827869614031688814980942412918048612932173574361512338162641893054178296991382232746334990009495030798697099930512674639171544757619112915809514686511819892493622476003628840164717963984255862789910671938127205079374068427824119382428173387147026587274891656471455699820337753518784550985235744486337902403959989483146889414338089915682076434772970365363930699992084367798180541908469402837021153763742818259495057723213197759649057505620675875113536082343908098756984099217359255412051990397158287189006033673054777278404042445766858188313580214827067679257937098167318863472316472005781606234935561974307409759257887490835520869069818175170530391593690911045590994197171332017453200069992270057810057272181748651761701617873186364535540140687533058294402398135449062916277550352674440635305850675448718859057161216916634313957815650979877768573261254764738654268196612356656169814941444275195433111403613909694693778744920575706903272835300587348482616122274957755084489552392577166390761553695861895086398071843849593187438656647775668428468059670953036059137407352987480094397476769111833169971555746009185270011401377558421777772686230714812836653200294460506616045660232213703706805739290674868066935032149447907307390934025147331209122837922471835513294973667240106847799998692318851616494089646900648259675459208061580676853590959224675251934037664920208371925512814378437296861253004953447648483975268295328568703396624187452792877030196011357246834406553428270244718379938478571332436213216698989585148384358583342227638421333290040499284823643483613354938353220667784414932702732001419176295837992413585742852562277745404136665410576799841097180094360279075991128408955749252052229465503040267156943857376709210872626139054611863093105324696777403980684028639695479977076830198831495363144877765240870098591637017991759630543792891677395056470297934144952664657573035114592924854453113204778031673118215339222524916313348360441322658798897357900818571088358851990607093373932183744426303744003301261275605101117439817768720295612647141600182738889501245828226479127196216181620130361564736234254749588514771466595286327201324253480221050140384438924479681406064629077816805109828587468066536156663823812320868882702588364166489919423211302003369827374121155734801244004833368174414901217863426476302981288828350897667766388283875047349727930248507309950256991823747080495274282279374741531816254662986875464726274496469632994482051611614413033959334243016185387313368424784705908651674121898856865009785466524465956999219228547221051812742980578726782229827551231313546006235411344763145638243354698884842977561976565240414230253931968210184612596984848926715048228232247976082543331962445971859560334872390782976442468200373593251730876391800698352226075096609468484851411973963381872885118234892632178421192447426777682935595292167963653449927674443009390247957209771088590666763950800302198661259362393834952652647890169930885915827541251188197172082606513562516059769480003014427223988615024922300623036030753940841804184100795066238467011003950995519010960358566400900895358191625175817946137571065259173940638795215092474383225426653880156050976933621749788992657003670323925916914773496343813337746392396324176668263244683350589185828143812130846792507712078770101980063872104512143841829370643506333589660258871932452847982222375207279580676678744543636906767410667620939667797098435691836373052291848319216304895588013455328205275885373711439221118559375273648478467319802600043482210657275771760883001893888034251715401785434168877539392263815336529088741582118414249778120408082169792263825547642538155888313388905776381326716055801663469662022570259989816770288952156143975399678535900867023165622363374189818498209852627904958156623327781448239455130039599762105941970290914054819089772607164920048585614828720721280185772123041082636163978904742155981958019936905858151101074338156765779772217043075072492442368674564024216159132265885306065205915435951611446047222360034439764814569310240723551795731019109245936488865739166363550026062015339082641802166891389344746070721702755970652641994711509512593311739308824925360884626324255451691161730985267842074153012591712023032857210474863626723942829361505491371310556895776805234605473254341138533512453512528577826733665469162734774901237909235638456196137699626217420786350500840619505742244528922029383255195798475222192894862015064222023206255492200224492719490670833251124285242093379931697651968229189408488732526004949070250893186657872564624935691932891978585163391893434343143466395497158769000543405052625369422319127356320570920334766589587365646671891142534442380959431760966367911349452342539305503034036415385096116842223763921506415929893179275584518174134043558648257893976395173183453905496965558505632245794760822846813750604526040203735498680103973863918543983037677881202399014523075514989130279220936612374674526599362820329587643828826892443423651605191676380214869188336900677632283009488191851025681303381158214365835064299942691861223514748528262933450208023778217030295091953561940637847067192439820772301584858842751558746978872361002261350050779177739667583443154746739953073305164387503092948708422492058393189084257321801859394752126954008809928413165467366194409866554711123848970060837980932819178371351886256414055031072887514565676473751965332738814344909382319980512664703596278564292367051979328758813485508892647206055584936970329877270041047328418535792351596364810380217137490735938456097307310531179237209163135989421793236383951206746074569552160920056701404724210777909832448063221486040220600055715179767650879591748632824356519344869299140921339354214008155871881914767707474413931688766655029549324850991484600365013194455727250538318559025875142198116587609410246238086646667516798092992435619167760738536432016296439821365471164810461329094489453543607426918141596248269984666747821229179066026970745008315885698793312249802561780560631097643976312277079772179168234277547137816032534654942897585505754734879894494416107959418329223813474639307731095625761273524513332994724629039906776397042152916250131836241606846532117597622719649750310365467190369042350532773330262778299871165407099937703742572956077439788762304573102272846749252007906938355483008999710503217391810372158406834876020815638843017208931169855137695553539150633532460657391497736565429011788885391796513555313647783497909579802084864876177873218021790486600021026323038874359422378010177563842954583912599114641990498343003466856856958115572032056305013295830588679435430300284896040667727827889795683226955635921942313098368169675948998228190003936312165866664658635713597713157138673587958173360276619008810329851355802870968695507483860755932152962280451066399621024142298358319541955138544466358664133167549879843346309208532694037231259486715213259344233682191245344837144687403652884595118984640940420040141506433073411379901519530151278270696433198836989780204484085925633815553424477465493887371056627215852370015610887861791198300621524057633451936808613649627550729929588042926346282675668161251210904864434903203496324297995821598497059107882650588004496129586105562415971877014455432270291976870049200201129986177145789955048688255885699716549748372469160031588557370252508055971674469519523004268175392537839231552913260076853187480108461421833101590980007805179707905729309528096491212462988812997007736101912458632035966918426160101792812786099923053726980648963318098082389898524214023085707201931913845873634499340141669649026934019407734783602036674845179816322520412802154812767466956352438383681646858548036881801430084563970562133309567830859150152456445586311522691409626772826210867863492224973520451863398584856146464753494415348997781349356701254280622573448429331802085332583322360194813811986449257608683865225074166687944144662176696448740276246179532493888894702430918114161130585160880755719091783801922142199095567259903210272791648837884489105391134559071573550597624959409447225026357393814420275910845656079627029929637252160329027376768944418116459630337557816482973738906200080068522538440836322935390462424219509514797088039997157480587398184029194821770593262890090993480207899266709302356727962985119143925600165737153984068546786217345199073954426443525003980860832316914389229997882650113685250190164435986149986611346467675891066118155404323818839727333160747789359252770693817765340633385891958788659893231628880196456731106088460932197011497950894203777243688300765531107494952407837237494952693638553228494808360069285395870423326451759245514953091755960008626594509968290829671062618286358884238878839278100485987855864201007305921242762396290474111276724911768262326409235873280814571777605735384522783778580246568035327098056937354616875437584777409375553078756520509695552231110806156256531125702627239442778159547562198896746847034284257504072712167115446186605526230672379117969653042639223622596446091517573556524701812695632701651289401677443436357395051202539570054143003692733932900912094034687654219853993544357463497575323989563341305508326263506857728117408639954111765045217802723004421071961713366704231084861605223614361898071230086717434304564268852632861552157958746821814577935031678068931318867990278612155867618109123046502048855315583984958905935149191027517160961757670388335676855179274100055084268475076530169797628986459959496664449063514047222543434335567007763119583540212675465803179924799723773160993745175702148697603252206869393394687392229819269509649359354240810643880982358686857239850441840060501972956129791273867795443219675057340091810543032616715960885766537273552543530546805756215996531409500953966750349298765618927194371771363447488691143792906700551068139772162521508399666760532388966942897180758315786397414636559907406097211271971529747426429597831139701597564041709396595119893754074167461862749230396675541483824911978982841179627379140650809673739642910616761484485082720132387366411809257573754350904137556520496771744846858388818809100369547516077786951518825192287421419765251185141274355945329186416554322426268697160890574379201177859778400917178850714020638334980944805049146326625972149879373032381948976100522303282759190547263324567833052203357879954107563197156123983878655032219513662663095247103188346062170926955094930253205478439677255969971717241109237174869453154447334955320823586543163631366670510743147998970358016204145317115134900074861393868569017920090987500900299889312109142327342087638312410135693514501678646491186025402114232135797861586787792279384089684753859630390836657347867865270493522155103888394986912048896434861811211939013372831995914451560694166269719627828843966538641143930999339197980340565393120960291314338865128443132838142675464274160091015453698889578752426587458327340143572450456227753331057842051416230356887887823211485981071384663767708506685880612089276612619684777930542942514226757733521162834490002282833263241031321795316282526584859318023699347273914814635791166037238090515838876249080459824890880060665332197295410643046254693647839258228154975868742863882339442206930786365814973175597121096650882876455599556897413164447953418915205347144180134201658770521995489857732381097499372256588856472098305171890036832475296912874370216773370689667196598213929599341745619225026536339228951754396690474667265770619356696297104943384662493271216533203751078898091152402766462611875945066896119710320611548627707641829223434856953820128945059713433975850356232111390643396304858665622591020951431879653856009957906134488250869914036812232993930226396558550881488171793409148717132226227254129562416874333347235932957231990899128213062595432201167304426982279089873482261345221465838165313191974502564981066016951610791845780266443638202479645662114618459416793000332904207878632144517415026660659841770860647005875306575404949104794499783758626147809771454379025585717613195845643780402290800269284873617536132057884117414372091692180034092534203392692514499758508159391012023065725343656991570400627409788352590357636670503934437244786951409696459305930593001627546369356820268912319267144723281718826337499727972126816702203995215511975886735566775090274584479867980092976118032475771963800299069327049287116814052949523124538912266621032206060121752286627238271774628739661868572851964423485840083731358149017089538453631783932498648972327494696330541719241838419610802263262305549499834528290811510697303419444027757453247578195714902873978608644464768300012015732327777902309664268774311432180184328607658103930852781598106574977398550426813404902139192836011294641329288379325322779896432556107947174648123728257277251707239851126928447838867929507063994678664879181674755947108396763328013549578537818907183910780501528713290542754241377043170362628076593850327858377337240255948135904322151594404496535043884900870386282763079441976397581987117051397661991350225790147015782194383976875555815200147522122776350996876700411327129228632069688081321242780824787149029752879453861487612361262207968570690796575547978215729574442854408545148062707248371924035188660876874008849144340883984342236961798923689998658200813199048504764040421185566532485027884430007502621031378791456660970668014133921947555035634512777829893808267951227973061894497096549242392717976778586468330570152636209506676305189356604111421496285755958018752688429019849187362323991568986775440325911476574309344588974227276261946927999801912486350311210672346981327906337519801714181065933633275888529361781671419497540085875833950866487794645829221866584585275933113169541746722362054767362236213103861582906011310363473681061363038187452094540685542060485351466949463464819234111005472165855419339590773469632459891656637054938690808150568623055075991806082962385305766799628240260091528001291731158343322189757554854577961752185063318283125633619973396355652839557443197711338231233495694523477826456444411012796725591397286100832660987023300660483083497187657432516512366792995377438372853076499464670777940904640127998380566157067295008404418890436187671981755835736370745427501069535112430796920306330886921947734074083119959372879608284117175352118707068346598135562996693845662482838678657683393863897277041358329441841084032230722473680954914879045825399529121602699500376076739398614317669391953815266823141029972214069082337989235080810174776347473027422287874090302602046945591849031875515540266457008130771898490911371162413583400107860107068012441544767714812028009071293778472130894295662094965764527299830412965480132053455437679189726239934111301952791919320577970701875345754298279588801247723704123682994033338570274394573158634017752061836662678332542898770157726427302155778744510738002138119108918911892372446634819591563931281517239740011499630116955857777601311866284060868439708889388566115513377556341172713892519944184107606124737561043368782017189006853194506860751767187662172321731520886672059972712164630429235180574907542560387943205463039692100615170459729097533695328924833621332655048267977992219477627533186091420847376777656826491209917910220533949913044338369168576878646747908662505719062937460181927654220528884756274289021680473568589920767435092751758046420493116710997426370451829597633244429422901518036103069162049300805938804041732311205234090026359918298970550615439333029214518872157555194763972098987431965075876618809538565656654894239451905796986149582318705445062711834702403287730376625901920850754410460062648610950501916250524939388170889657396859720738437600341238782183976324272850090531426870952054668494638690588121708644075693117118865882725516663430330445600534940901478535991082857328730430417691672612342071168465796293251330365454091725482104671340378183953394831854000613098987676336757309890155594892231936146872557503711207423816021790583213508055580630021839815207192814723882286230283881434287634314032760987948025073191268175598978871352383056593173333848314210422645873605922807088439734657325639785999511963268546976428549570194768720708443711949759539710625698799255748531191346972062431708305920989060171300435169215730579773080581933878611543698612152323635914416575628092868858140463401556086867081283221850469331164382152238485930814160480649880986389721542915789507310104856182932630973120905278408149565880045492667733620186056162333799744968015757055515174153194125245313043541363004859435388566336991718774628202821515311816801053716108547787079429665594083089906512237512450485624840124864956821734408342994852684927580368500010997025945317562455364881298126597606464264411023244995862593782260334304458541945319671056414319204367811120663979867773883530253617107337791147399514145251714092711002316065936475590056408083154428754961201748040555806544133690094858766899759857138290823936908594274810606323190952865863516253922267822659534784759551704354118613854076957001707862129913782218630082269903226820127959404988881541637549677104016044320340133034654434609160335874815132843598589944394962022233949514903872895727686240509108738419976994659463669255740716683875203522406001670114034015876665057673764178642890328744515797906308827871847796695224726781934674750849077652147688840539408063266982491903710531597286673544246574612484172997209205485926140728108643419652269865243374283252044807587332119843533130805416063292341449965714209879701180673579263723643950428229346594266085359614651495305891896019444730037512272174491977425102947877777964945985889877808654132676039290695923919341187250577824333317424868491465924737317378880102282371597670294440256046235280463250781445384732029976709780162248392933512255652638035176238693314341061963933609670437001233941034427098645367313938686504043638318499657782755283355925468394985741943684882408018595508436866324635513614734313356281220947669565238587489019590150262502391658192940174484431830281733492255260230533857175729086144132171907858667532738286813291600543748320058776944334403261912827077945495983061550681933365403020717329617419305403955774084433362241553101709833098287750734604420670600551784031848525445595554208129388221431655304370425911138316035822113743898566230424857760867904170902754699270988319173982722979581261019216384911275626736867220231989039873289785700414525176198002170215092989480691412394219247272153427434952500278218859526031020000277940091381902781635279896666302483113978406311036537540717796186568446945573449313963466323693084966775718918933648558337184479801596252701902326241803578496672023282452047828253140450050931366374715072281785660864798556438605531948839432515647263259288572606544270719150702670298174671378958049011943014189169326639853257627865879929336306117818008533916739823630475480788969781087914625321560925980097104269418124422992254843201900812220445030821523490232216094531349659946501509499779680974446040455404108423519174921356625285370257815870328559400043799311377544684730089287794276871668944616078365416166192139135615828885224622676659357549598616717987383473112702975305906112537687877771104720395999564699003550263116360799855795780348046191317462733767108785313385532609384022222251004423747276641842658752704888492185040878718454379419215697693214207725443271500483302066061971339345873741066900299535958754666257932564204068195814958454470016930553100692029558175921221068814375049900247455272661612020488591996245722985326597537661252682676812549382406544551014631185980007584866894376190696880133953659524166284785871867044521313659477341645862114421853517372607696926301386576853833087945094428357869230274574569739665063256620863018071728001591442440367659956274480221375647451977073778857425962177641659644823384146090876642195202390314695568122587828849354601359806777217264795044782588483123729955605394424336433563218287444124642822159458915823616386010865750140413152543696515402192983818318458170734788554549170809407341831906072218198432594843810847742919231876068516187341345302726286581196413779391894066972694094337432196744131736265595982587788311934752269899272576167292292025151604118420251119940312087545328208407745514091467373692649476001025760380040576020787976524018357543107273125588663014607845986574954089944962553546201996734645647307566917467948920887301027244404850593771322193651252073605432999396727402612056433542564421540969614421931619449145844085669334897580902915710931169344592099340691902118362703809089741759429102172191837796257666947623034516552841547737543191423457203627403124600402830818450892398505499337839505002020628581270185966767926537021711389236635324138245462182259928771552510335142155252041587384950332540857467542568226884377836154182710916211545963585386331162864440630156688046486899538228779481838873940373451297032121879476198544367295789002799470762302693355282654046727363880274348149609239782363842770329548173643177781927132760674067829181273111902057189166845655583134710873889976511484953286640621774426031844059075170167958697951938412855261950144604030756107955288191502511616467673890399704775339306749604540812983534576537110029350667297304780369403593983439564680360067500251094328124590755919603855297484785453044092808831939180088536484288378781741271212421252595759825772110066637162020124183883308568368037446595328464583068791448907852294259396470580522355772889196059880897556639280051794015743881940731348351252244270055243375223362145002078310972126010426072417229528442605776715894048578788623658074046215854108261240151088751859704968529224182190921347175537309873881825176504520986182273486005536652732366228548394526281060491086123078190897339927143736927932974185079046506586161600611132922394880752283133550122214843551528130696181640949382303196988530475737414020076633621146176451159770577243146018793394992889608718433201161134075141897065270163028028936269469466106364748886097157817341448718574588273065069794788594804259673395893850845865989600350298591212808665892743108032566165000372489901839939257353717929807775533879698706468946763474335826628932784561750421416246693567057864497727838814759562530093580054312732621596108954278053498831644928583176077328584049806549968383553393421402092090509954679484092809262127908175928547529772782221949572616623152520986396583139164850658035839088509387858356316545019096035818276643225204663927622380955756172761245286288565605627781099156520614774203599053112218449288003274845464837355457122061242781974480059783970041017542314968761854432282228466380626573577006847948269187822954220647733180761578213733164276696597098038482038886858318491883702186487947958771236086545377171013639559650186597303111006624010417944000251349023591324895086240941780340402659596219532383432046111252135466503725140714740186312215635926932117236915588544911399636862129038306063619339929867556695955169039205716788986273086335011965002934409811879131431319916167372754289488233448834383583117583178969856007980048675811981152836795107083866579655845753225467684855105623215313447319552642414255906274329428629329669614845430374193245147919882544526725429069995420961793110942823914578203111987991201254778263342100362838573771864140535233060166437528365909459796577747536303605616233813384270269607853356167049774724684104438665949783290637942649495671458587348554876618808377561142908291695673452229248046004804814010706970539374376981262928962358518451441241888754111216733857369746885645790109102476663833144678802663225105444737694175528187914423169686415659664990377880648801982461031051878660811288995575112485812256688772314334496044393171203173944163563108577114795977147095525410171221932453172437128019668970888213529401584738699629772351567128066073847431547664476580422564151480460891574628180227322348558153096095020996327504197167958318027412618802951090212180438387881970739315236444492903697604139788815722411231792668442169505035404814945720352626359955019083213683891644325086827197826642861705713147983850651273901758358857892276872078584498984265337048080337525455676435911919214229956957935942779474956634370809386610366068162269804443664854439673699921435397045814859364985458229412895989846195450593004261676966132046844660908558538614037396364239041601822127346924654747262060472509012369295620347951519135594605214555294925761906357168070994021884789343931541262168844356100996732104656426661487930006043054941053506108276233481485128217549309726865101882130791151774085686906932383405609447486889726732050636395340289451388681667498048935051571423296683853525190147522496814808606135376009603751472386390755263736430080019631870727954996238449214321031241296254654523614750097787723053266865097953786591798848577955699861492357315784839948973994893520737622291609899401692161888611818569562853217669986559464680978764638979042696859429320166140686613625124822939874294149499366458743720036536988203140137939706883879422045365040907148177719805397762999995539567408371422239377917372760153786092883889192004783675227771349081163908616554130281797123912914512035948074044531319676866816521044484882556276829997724501720803500553877772572366786807241618364296544925891182084891860352034279280802324627069669464200739442772889302807407444723222709193400450260755536290174309035854792889726416134330904632189030994956762708405774708968106960296038497304884017197854793768852203899997540048975987789989377224482754377859665561591893270090592727485572671044000211240810775185884878303566123366640524854121142232049090978259463865379377004718278846478607541326290270848115273047998504340414630933666810136549273417787779331002806196499557044003997090222773942938850678843568407537221902860960482078612648520517515444852143287636404334831266440517443685959702020534439510742392284070891919768292629120804915741166550666366015830196664336043218624710991663497342465448856590863070628983509109851214270970357552033647866474861075360549300588294408566242904387986471596082403079482631263831490444984249000004782275467476971234727434186393370812329432238776433648699051749541522342974857537309643212749311756474580124423570390467028197918241019455863704775696679204008768899719384576510492790740387588266374580474478861960285064306761594740833472993566682096396220703386234207841814751205697037501026986210571108315984306196768556931035326664295147892692112870751484733810726299043121390774398277769850826760203052148895367947072939140871850567395913971880053829970785418067720139417663028914169393032545465869974551472172764446512509237247560389460384780013104455288827046598239612088317287027534903449674794586392229262395137380700495687799068189740604527249302218423531624098774463837383866328033335502439723068917826210500284080398403942131561797944292218796383695546565232873106371598247050249349015917663544942922126833167849410207173178838768360074818476010701447412355189931178403578180715366345679735895242617667506868800054542140474296868982237462527201730389289452403306134440568443235084293434953880812090709227928819426492519317119574214788187666153563950802323227629247720234363422973008773900827163515223466673102289557686435565346715224361441207226866133116057246433591591199043946763258255754393963043424389284033250462121446983286712524471756561982696106634923020209729759234951601288692485755433412564343783157053714222933289639379316994117744099448315332254467416997934315300247136719385910102480422322278675284362684324030469416464442959857295520968187759426779873280944767023819143108934012945778047612270058962576556079907440009000092464001197745617816194235885221547827583670851382327551397377651952218317443839677034039419750008312281394033308637167519206754194550764387970880715069906627791509323273441743252705696685638590031135530033352594704143971846666552852272605573299765152566838871784285418371903076357116442981653408635376336575280884269368562265811883992556120373685474366217363891412932334410457134852512510444298196558563223671815821610823508426523106220571998019869151114133074899479559576595105417037002818374528126686366830876437050207097495936085609492525585700437975343438880324957520590876423847050004815075954548669912969667934964351114702024755611781207089566019347685901031570775231823171062849230656069894285032692175922136724354005022007273790502538495597377889577500327978430058075177008718454558303625155090042781062288243425293864614831713964908308256313475770168769980452783933406773099101466166830482879410611734328354267002531743591847487251824715966504543622846117809086379188983196866162598795342224704451597108171048370212107871136291398388603125654173303724933957199234709166882250679429832991144019305624945059285997617668192819934772518081740918367370431705972851426742602751100984304075261291331602733371236114933027390057895719594317136909997006443819478506934960216990371433037813530307127959707551376839648385405813340065904042015273840438547357031069398299833930359107614178620271628747702259338982723117730079339198273512220413388417648829388937696783030532193164728523442572850672686598328851492840714970706343471235649566383234191269484774180396231448138904798707919028812068406374065072560240462254773172068238882716401454897087442573833685586534994103472623659158511749946015274733964111442597616519999134500441205269529878497964004102624743013186322230351534243831025378813842462533633813301679252495171591779269170474719640241841003780484213560945131167752976587052748524075801130719651352639030714729522832794781254983747794761523543616535617925252223105392388483673248777016170801356971640708282374648088870458726811075850778823656395499752228268259515823249109700561055264598761989700373138446409565764426847013007997242627695715838032591061758547793639099574249933950798924667299738188038660304116148195433930369718150224462507425633308632741814568006506773073025310149430063820484613642962566160782294696416350586436547843973114606187113424707511628073161786401347401284361195025666476812406830336354021438413106580599517864673536011839930532789932961403864186127036498392469511730409965251237555022366479310127558777460700439193395670241463531248485710260367992677277454492063754319485147955077833181637477724273990441679350444230789760220643090389868464146318039956242685083706532938821371992043280579074824616558610913409191435370600909990583955256165848206208859152773620112020793963031447314412136249736598179508160378752467807229954753302824189436530817158772789089081047623002081845420720884121954992834044738256468312503935205670125534246508680105155743451179661867998439838155709306152272356479364975034007370181618216469255507238645934884780057067355005791126745823329899936834876266516670476333889607333391271643105554420190934757906077321812206600699703564815166471012328078898133633516971992172184052143443423683141458452249381357744005465648622389768484691179723619115404496416057808554392281371535536811733696236635701969597197713726930353232566833133417964640843326304004982823874426408197509941724575889399787016579038173620934787421200427968078672421501175945248893492027352065000171332868689843034590886739541842705492650072364188868018846954683815532542441623367885574217342726965436236504105442464093976947997934454901511407895116749688691785755576814075327397432031510798067680120813047003327478874691971737462255427384155391858445483937070727322726642986863453015600521320903308060068542239295912807704673310581184697606554070423060028988210458393145115864072479099259392394027259518204950439612542371416738590528149191928815866401900147202100974461535724841447952027575501411248191711626887300483839825256038071269904336201560369182269221620033449122125704995709020994172150221928625331676749205780601243337994685718905178186538842989480063421559472386519791637257943820731813233763914831127111213404065991304660550397187364142662854203852170518213844916293851308919075972186729389166028562901175302590853386800509443031880666814216023540500098331079237633688852038214993127956430236511794723556113502899554220034604189092746695886879456216793119841546949858977703995686709790485022320487874540216429795232706648068299889434553241610973291034668475603139980234405205786079069818826317010029877561816856714797771113978087596021320986494587445969600011330786616586438955663139593511183878410301923104054918540357802544008282043760531468883205969146147886473686828428382113588825657772178866384616262996167113962749902417726986153140189239153385373598892509447378586454924413527992617979077805681913626568117175220108970193948745613653943038443079968435282305423835805398341888761669087837763400719243577878748181344269651573101096569317269836426939618071090218469068792090955711921436082986121598965471627766836851975612830622527358664663601743427990499185116733162716118134276383293331515837770056910668523738832116172194727071767600476453816588972568465258583734501200751640969848738541391592103289061373467337324909995660275128624979306003500976241645010431362539704143953983397471410897429326050309229153793438079193135303030363637837616144309113371374222218080492178764458767169977150817058478832699528981898722961216374041107504020675051170651027630884353839125280198375313707667862663528532640663052781301079144876718251430212770145287281660270143419386338898533893078489230328060394441302908044950527871351191607098433367587126197677959450571001689065237411795089394916359964143316754982275370538011921572497288352084106330866429689530843631605100602298790216101671440664358079484900646485497594633186342653363529470569609693405680492279614537673064918242323571368812670150555953511501178965348068733479989909057611826717888155640447149464329563242308206611035769397242391689642292604766782122294303289773627326505445852542079622146392974704221175463794633510755037053440155471603045614569968398160687341341591640496653818028507695007574618343862382332988630774061564160412517074553009736440188653603374696829259591246487075421383117206070998922945424936234603323491615811517808447734387291389614717377738346181023881606235538296413530528840693440770670460393438858295322983992536853627775541361509671015357045414539878432382774346449044923237470048152181953834517812776018409664375595963362755215143572728479029665927858169309343672937530868810803622937613736994151782068952338557680602238343787737827002693854898679103164743401398328933088110813339566283139259535856427027329117669404063311407211662777672231338783707568177116799910450196036912278359845406028959504549430280923117312129326375249819216186171718536382272975082472988378621928634900262843394944177164066825446595536966215918677456833640047277920610894118071085781272404971998139899143192237952010652062495263457113038984805048070185054174006632298951219319051271006071616856630279593775470876594910430617910401438838152249637197446066557766952272330469978423811773254582836066337152994694827104786004235089057129272697429776951103422937393731094817971396991119722136623680140008223945574483823211295602678396590456915359950168521520571704342100152640675958090477043797112306151282850113316333770320906073605550278442539262048866931509490628132680773314647571595912897758475217320135724929671250777834433914441445566537447425837665986399881295317476904493091540298093300015726440379369538882945319427973908888791766569125509974088907729623183467245782992737697389357177532842134747849912577309128475981562945342423804431973911898903925280506692200796294491005233226172615350978713752105382563896752752581449747851206315044972484767614877780072858446227212311646694687572274787275475284766229480801423886051860672753863116353866528696702131674870072258264294823719134819878779360521523756629667570703695358625773458811315201135356910455758166773063576525438450342504796922058641328343275741818330107854325749121029779856749458094269606145714367682038812860829012519366343306020920886142369674746700709182616035484928456994380276402613345872934825419030244724797302161819472281037832720140234260552264119502958463273844004236738631485257764022725594833373951041227305826248421427164144482477672988126712533290096489589522526694988271259536393810024316180381167635775103501287690779754339017703829377365628890440178566545249348622669850334263332181930241676971759902052866595017592411305027508269166443523115233754368582866395900639472025053269950214342471345562037791360852868503211032270632847436442725291228509845832588224696480199414117783370836261420719666971500236971732694149273782074708571359531663983175556288713717771593871534262739583586955105120618605063803903018513761323633426866146564450722229622115369049832072525505065158136531949215552269957772318211452222759871988103103209330557264088923527338868437942310324004106415599695351499895115488324345797081811956371096696231064493288378059146306452080848763159949126240407733740558473586708538782557431530490709829913424814043685748343591704220084952092695894791984704750934481507530124307015338220118512917829101467439914092170778423428103960093678217079578512806667870660795635040127994035886761166241226654451683527088958896723135821760524371404010380477507241766902982379018906786522003931682024223400054659821745485919965290552494064060341320448206225363169144266162511793847279106195350591216195500843471171470249585008780478273621786993232324947482869086205869472328642331463704890247682797928623324549190439787434807551679936828065313702325322811894448168093318565093851042685183113341372175992424693475095228039155287257745908201908835532225175735413768539487859892883697890570883918986236538546014834974326032590611753839532656287491974954657167017831045388759077665501594800378662874854641581090466724390061898101782194573015364212705175660219143439672693515240409110581327563198518720135400117913219106656467690846428418424158219445825153480707155006940429404067424937927834755420943865495513931461185668161271978378309525889545048959343592171550610841509164224210690747836292516998122418250392953899247989220999839164423496323188956106203948640338651285598799532904549103263923559914156014653119853372018873685776427995786950656052564934625086870868572159696896350253477334462874977086382697428397759175407700314225887529047626678271206906514680808212851205086023919704554189785945902399132343331841101568581042516076796793475407527997302805161696868951893147222192269058472984270212095077858350742336323065642050648305945954037347099553444330756147449178302266488913940491422273653797299708690223815547948459921087122804163364628120081880230949180353516942764860073592069359682847052578035576648135812260876112065599362999381026048814032538577696532180799869619797809464530012606844776483123801042939458058735246219453689685896859685176790601999917423636725138754335686394668459171020496647343141806293119075552481833689896905223368326025002765034959786922781433630327904583020232072273424083064150840072861343640166725744137115635869988408720154685423792591676456935406093796910248767464047932771472848881049722368557410057301296219728507577104676388489154892705840112501938236432591286367420233719364048362597814646522740520467468743603726144341641603086197439539566803859364149399513338004160304326771512330559875508560790960810871340256993736124643540967759215265116237801069894287593912267385497148782669412756624627089075385899799320123119850540758618517189196755589159745530891677584217022967247484721741950614843604164741457141379842091912344284672031044087264372470001176375660141985797005629563752020701741196239373828208125229637336570684401980423004311014931334983165310057266017423678547081018979892806163969697653328721335584878259435475314896004327170458136021872234462121745610673395503226385355298427609126517855246008526654259714915547576956042679823047068649055038575633719869533093747188855115722010952565665267019803479504843508841039957325917211262743749522319716054436754133876457300556725929148182319245252024172067612184081166429939927922593071587119721434959842586221106083712741267147611712725948380726079326487948877711897336358690993705663664911598874306085556438714867949189243412367810176423851961587427001918492125007585516479753739729539200736948118665567687496328694686587004744252367063355532391494182320141809753916258848380698036105331497323298894221645623364146479596331070037693585793975775524660777469085615728668201589825331550395507591600680112159363223885886458254068873241755521455650132103459900326578977886859244693206542661671689784218153468120116962111533686932736612175057125979469107582090584770693374795915893373349659727691218158037767242134316826036136776770574077302480186619643239988365033939480462020851355898268581378995959009796025271096777981627021067887644858876056893698618527662454267965334155765621235302770951562539379140864336130069117911140206776508366582969457796176169603917800829524841109393443647004121931798472534861692169560425154466235646523789248010859504476920748870006223275808809945179892719218136103913546635304318158823155399182047950813475462372936437819887979706676523312286937448392478441731259357360482008758943800748180965260259702152459061114375610090613444851053828904040923244625717273028063895127119379404877758281171104351741484814281591702992900876476799270978022375752228946936570223309545281224379812661599315317632722145383029376349344732174877604986255481806261496260012887290353057490982926264742555117467280418391650870775499014310062881530063170323193482938593601844385420745981424865049256856000120634949441233683016354287031808254475563027585162315387128853986132976985310484463026777234099679989805100904843164489232678738205847503799070868859660620047233913589514407983727213468190579995361614241230290001128917542876502333952032484259546896476715579893304660070761457956262055690087785474818391272941656806581588154489946283742786028784446963144491561799645928429421399123765676746351072489025021250667409681505952077668673134772567098139524370880812085507341794320299652694222812770954114475957390096805084319379308702977949321535065892240778082820352590745534465880023349358973603514492070384167145440238597238660232881984343550480758483361815603714778322136368042535020894987456032002838138298410446053431026499557160919063664589771123912561842873136844958317476245210289850267939907567448475169668912501971304363173370231481855362276818422947891218567508452640233193486838160760523178116366754200864023817892030724550780283932806533136246880613817488358426515289944535469779290853805475293168339971707168104565326485571384549642600344611302372432147222663129230653937460420559524177001386854859141045998993533705722594386453680079942245031438472199659973452452103772361260877740385388477899808851910330882555198182966622303157732348848069907313982418577933950132923404386825677181092479759543421013407238610808791741198596442175641741314010084387346674525629599700409572356634844847735897253235379829998351712429591667574006569797352737429472455299587774541825583467288258950425296523958451053519286285201869205386226459813262763634540429562611982618232817533775006040356563023602523652627768965870144105322384758196417703257465706592098704032485190716835621541350323501878082895527948501674582274370756530948434135073244528524012274360268832147913245030899537474006386457232594192265182164502278825974298731535900163303036884863706439785096499073438668003238152053438063454706893303778777146357672604563642926903407508599416615919145099231039531789587187142219907453568165003838688079172039985866343602114118408104609887428516557186985146708547240938545177614479371498845277567116139171263182080702443677000471164732957349558040298461793511264765973037779015455737992578114453919926092300189867081327535176884047427874923675415221503047720532427721519446807734878679054618091266907740450786422822158961472992373544103079592080270882023584367657438010327830917415656233200366273262536500028885665125674029911905616949391898876020114422808305467426900887474878311173008327428869151706009219884277385839363741378669144433399297177748388346431706711418073388497165993282638636072115283562024705964071744448036688169167578805417174784507200271373384363505904373380440552313256458668627977291702066712920659474436014609493489848843736645108432548850714468575557955399612481679219125156051130779999545998024740468539018353595764807985201504437128460555230354976261881989259249911089620679613849128807733119179084974776641871484454781409432953053732068620539517788338281933234332207500590499431729511846143380509415533886721132140694650008827213805033953228145104374853379878292302155342002230748098628037642071613274215099341735258517366771483169315765409841955084080060508834795503315540547403075711436674989838347863881351281597558600770001903277634325634115659531192059785612534432906839682919788244142702606306417722371746300341133441462823042101543855605639961923227573493077083806047655113792559720918588814381195357813764812407156421903645634328024272762967598726031321739125317735951207601255929839997079066111932085142065781893397302439840921406672500816343085565143645766583940316508359985465017703975803487336355033629156529204566027749775197928152070244841151862614098961531644068652245389156272735075247733858609619023155163575598046809623259943068405330755990062284500568437645413404001766316997780516837709574979926879684912847269557311015932491667251307930425962089152173243396069858336502553552651618909800869615451368170071070257608089533661873623224932333297723310296224960280167759022205276479009586933273345985690156780707317645225363718971924912307541165434950522961177125887853689463860121877006154335771519060769457488566951283914643803046469862249040052509416805256084353217071199464058621010575079091301274475781860186611272598243865686177117864621669136296743262595176504268115908454075740305248801343180771007884278279307515043923481125457939953857048712276424060000649233199790921531734449856533100317476814149425222844521784148618198553187292472449307184051449983283047345529625569595937374408095477252985964317680619103540732441870709331351425676616657661094776968559308477591055455765532149422606987133401247781337157237830615938389139195393306461737467198256807106856332837738802032983506582876530415391226738306701200221168769063532306099394179433358226932832846136120917528290274562877747043367380035908218152411108382249759392156852400976964855059564773091178020755181161290092615007126886063499743052750513733384395591285642471863549410733414822999436718132847289343682531287475973934479501779639600889904724045012127290186517199718048996813086907282437497921826603761329266411995324291766059427326730522695520695777027542980684659538597987932877589318494241903023235685454345741118449958014434602988394232841566196281034756308941950006055813501687654779885544069010795809911342735117135153444802316638245876922221471724876390333825945845565251732159661690782548786264110202759352572623578665730964335808001357315240567368207793537538774575454057349100488842365227201428986786834215527528785202591142654026333971276846197641351853567919141608534438465687980773732288312473646551844492210444297531784162665130492140138066040647993417622666802294020459581045723044987523900095677553879472590128173011923208456295833225857312026353251769964417025312383009043061749194205743205065849123879307506379949468527327557919951821233442523952905047252506278365695233330550202686866239450668475164318625306557707967669627785063214289250084972907417825244956642662764010104299179427457472686874729258377354934557727656771765795044519229563519996109033327393178556188356918237762900414926582662940404981749718369663204452890650594809824080304090637031385029624899613229252901459287753236230234476361748533057249064757130796813774674452316297281946779709502930235093559550850959422177424674438170522988932931145683018798040670804630635290209706203187336801391355862260438211511300148474592062608402502772046717957281701624768128029782596703311209618575135596126125012916930779376178248186892858523550485534791446036291239808369529013856073698575461233254969192034591303591529414791982719381555566382590313436722021212261032831811098112434607353618067773826256053664568178940148917872801697544775656000535647084869622293722259998398423225268274260608810306958022242842109913356686840206192497727240877797287605925301791204465702282255512862955341216629280694500180704552474189899516718144011967048553171094923111103028179406865446057626322725865898707621674330751402345397607999138879841165680263813545932302729612980360042340986889726502777495151847475192214729183700336015163453039166152237746823573084937531285705207265355588864600663760393350679004579223888293848081294324941681784936889669318694621227291721592647260050876346407197578090171073250187370965619534857143873947960987939795851323190106797886810262884963123849252509254760235049570211371965412839579804894046669757375038333074959416116327258777816751117727225357263972100849840195649546478227886009853080693087801110347359079101819374471653894444370322089848774623109734713904305890714373355562285934496193419086615467020950830843093761002392328747976097022266199976081209375437663993352641140206258052128076402643442068929948533588243716813518695611877796588140826955068478978964198493670925181590374752594901025911947853392703708042034932131632956027567870159284213516417268758675478274827332822196098038059654757200814367914440540047928949334782768332989092655487117646415791419662853701299575677301636057914479619538773865135805486533095533534321774844702982392062087038456870900881550724290908299632791492523786122323269362749370797329614602737314592963123517721047512154636827573849701341569519896181616405888567895449726414237675504656363237373092119844641531788454066053742268723619828112734985792588172807759842911627030979384441155631055758457182166296456705772317908551407848648685285320280061818057543446427363330680772869510000574817166228479844741914404256435232268238963883587415287604364926232166869817435747330931380468792258664495326188289001153873233753048419244465021190163967098385610388275635034264967783667015414610923072011374746348545580384213018806816187365771697422701568509548663650865837047042855832296413331433925244756045627557815845885930267456060016842216207214485115925464327960892426421926693613971059603390860549377558316201241935215649519921885012664053854753423425783358871726031209611311670468519368118779980372975064983560385827085008274465225964005281037843548431364973147798798933567941088349378333953577239955905004974977139794202310234387944082315060839202197879378710768887584989497640204011992458224591742515450890359704623222501635683980290683025384653841499137145740490039391495069710696572261863955160521066910552855337617129667729110106757893769285955669846419544367878354837174668344873009022821940208794375038650453305397249309711803127216329890790702804679981654878716260065652162258952446422097193987788404220703692603655756313973877366171190516328803924352761047640877368217060751824682040050312731432872019404773123420935589516594089719524946938429351612986409324583235022162270504734772107414800942307937060574519054863028459755725288243041300374483309446893384592354123292826150870461255804560923572477147502612838049872855379454996579921677712382676213368275142981690041570788099451062268628017841811930965148021381523901975780748986831343617519855621450047592709482410229376708084970445387735520253654296758254028555177509527952995176518480584366614491938629743082372146585167521646401762566533156542737134678262943461822832335757262694505134254445784055339291077638276276495585281008244804407342276154435214393516385786720609077447826638167933075173767038069419214027814878742666870594277389244038462289590908739440629278117110591903027602037504541815047235960256573977554141821319006938771121871594707853916630124603037146001950615463099022726697006806805233893157867843792058927903450043847841994992793005276878083374696066867072106689062946597235482289184861852954752796807288713422702770392211907056331429186733714271337164772145952045874739844132162420413760724305878228247984783104793226496450070059386982579189787399650998124419519919138752332508719743388242999287348966731752877669386094279680224851459075588195834398555036925141331133093591366661484087630114039077481733716527957839700048964953363950627474956617737028098484392133272301263522562793804059243681873545096835345335356500872860951485241683653221951475360093619328810274505649551149454651080639667003978454135020351058236622396809386753443099924810152896080920392780668014694657049462331303153186396993001860675198682993074401847506189876022112952350615999922033562924666328050221240363685082732807479149602672177684360901104275913438259247692344853787321359778497420834013133589956374969966256396876977408538449622388872349094010856475559596897433937315478455947986798339375350432455401891521572423619710027328608354046779950903942928068145355445650428295418381575821514356033508140171470268164234750859748187088335714134232497510351947762731457486512255199886802258150693924618364083950811723655425570443709603888628422022417985864871437979199112073809107737420429659707147651317365757028456868302655626941945639320605388791929538139437077629079960740911735774828331303042825492369128410848760815781318378437523025115628533940772739775094524244695726781806368319748222128805740649252826503382878424088897564167825703061729541292285327086021413895108742941749289323425814482790766631074698890599656514280124919024539516310504474700503327034337113370204450843046788286999839127126938193511963203442598522717517793316061969297593264747892449679377398812040590307685050959185512887384281308271417761436465184452859928651628085380415478223137990548977283417422254622396563922315073089660559102066526351144372851562163689945196225895453772643418250063496699211604841240778926225894636053508885655024094304887429975115322354498620891425458023386568784762815227913584336960522066429751021644363593823813436891475997163614677918618099625042145723033071122879991523434301074628983384796523964166866649342807410176076777455158243939991704349113109666162132337143215462550765887509070188028820196501135201089243313512267400774589476933613727689454642719288911067255990379332808539366357494950818811962987673880837538508374896546171494603578652349352884636609972745079666047840005890589852665779636322012549385812055144239938044616558839074604657734280095917631422517214602640981118613983006220013898970192321411516167786732265160990711221414247771970817777147123593933208166045670204166686544696372778778358981444459642465676802296143840586989642260564565440155340277248074515851602639389629264133813299384385888149486997764478719361229761949726765896199508876165544516937601944956003175611951805227431905048022519509783130986149583541743111769707285800338455342670061974501487009803008375818247258962460308036934936633081355145182174982540753480655544475380093813568957330834033229084156496989333112981089505685838516244440988079576618685959015707565126410058477301854325303494158268724417481451781175556917684615006343053690656792607881739044700604467272426638997642395161668937968950395451648955123767260093539293953437010869513266408865022649274792966878466069601428153789116863643701713713355579757825062733895478598164809361865234991402693126347357249367544911947510979461046887313789169916768158175495339089968139021656643491643023061140759609108929327644609225261996015704986717065078184265711586781001666619176662787626832922606818453969401493466459204051174422024883588316116132158525905641937882212650546594509158672643807826338116935080359475833083359466113919628038353804338606540376544775398423339087734807795672742039995077119075007237569715808506122795539971277141463919501789712074952608975040264934009001601197078505826646564690268178308468980151649240130222465247954761431369180318279926971925193683072248374328239246626604811012273890596765223642356087033817691462770357929728405072296609008131979504733104854117817422658496012297437547908543795377560857810600987494734587960785930201312671770701119141657523579040586795504452671637660025226229234791128678888673953799369961970726661783096455425922932484743070274813239390397551107291138661612980923249523114648769264376217836523107077247016054987115828897312694757266944000293495336835496166281723640636655251513700640002988242780493498324477498941780822475215633430411761371463703908801100589381756141132478326728681107297835394398431345735023871874047873668661682194147213450203292321186430285253131212854657364587298635371973917259509529300488878141957235571511630142701795493863914881544259221376569450147418520885014084652802992951319305590860460400023270963687404095933409783617608486037532291130713995320093432093929256610001363502485275331157890062807448198078796924817994923284502111233546547019624966860217988592831525431828931447750661328499901893446185509865899296806410172691770542298219805475675038035259838039438651125643480735408766135972370712604849494454693876732944551611918366561691099588121696927409444692822693256371783729894371779982520443189755034681865336751099137004205801185353479470086696071917283718606301398106424653788317066548943108473804294027528112358721413791812700573716022472188678946598402976252842010304401728492606066961432957283738678936770382252767941612184648138600222001982156042996269070851071219521003202445794401694929494998381109285191792944474992928236636087498647295788547423076190689562734300823193126366768499977157497811438719455532881655642389934924060474038435079130695152762320257465946926728219513994976524124543072675488528471876433524174674170018693171112374752461390800957459616959663332927480240435578025278515853475085190121650121714282072368525607580675659690882414949227500145953359863052143065466291095724103634084750384326468897809051829989100483837265457353522539933300987980645067285241568396417605790082924970090673447995537764965245526697254390828041475160265847073840642718248674375936391477991655577168906311731767466330711479387916860410103928053649246007414574629815341032965216099053094099140489182431792014146785500098823161988655242699712411065650793784985688240812295568014519840269885712762641220036654287385264923018359606306262453225352215894702342290798951797146752680691092312872720492316099876144687852225869128890207135328970861871416476420606778039791984724442968341432219827702709059330911471825967034585983543578713569460689459899522537983084656781947713350764243589380017832396018353786736500461192121607603874412967676822388303793831216408970458149343847608799793081220901683223537143452259009400191777349948120451858571005997803528384701977504744719389706320552135785561790373532476970275097750955944735919386088219230098648514813544693177665698701797664171569757948324401888887086692551512647299299556770055415290852430082532665089134466269646988472281587294455200525903954305759730641956697176953075464293419579799239631640317838647738198676649974013894024161119675118321441109838775500640857847450456229469660562209035174309749110580796526713594291000260879303930570789501418057175246423658681528889863742378671210096925831129617815532838417248570416014350281106535277204759161968284210172641376950942899527398883045321617040388450540299454182496335917846271069965274121937855436965712980967810567245714778935238591470090441618075206567344982479398951076852551708354349644394964637572127579482047398299266020805920124447102431879111456369520046252313792495693600609886704592489977506206776759914439896985396637397988533692614229607421610285995021192431596480218040822602984124717351880841991131717090710011497263463295917142541400521242644500993384617472371488805839299813962131480052480655519616580614186360645478518526012893697974546736538194472564098437935883168398558681261961387338192379487202279772202391547978849686567299810666383946984135701425744386555455747583539349701896174038474697113882704141108959837356530229392112166890990997863911947878327360188124322795625660319516980154737734540075098048595035450816778363453481156116224419348031657331451564306071235482410937939155271033208001238249154580494137365719502905815523970397310405915791679954403688075121122224197807943259747372710880295835609892481794032123539999358138450570905952890242507726837093284779152064585179796385449029096003616132813875325786316276064202801520218922587451610502905675534175008133864739436205420159397263476855657422211000656185720870282796445621093031837524942113067242155680793534977889224845613860630334474272805070631789500563246031961522482913448494548148371130204131485942742602954585702933862860826983803984810476016970470036806220360412377667165344420063284043776901552644865693637120052745581873752572256586234788035701422546841524349176417946886729058157480493966914244960371996304106539028655053269122602720122885623612100741357781282009287978783776040465502736406553164600981854391983843705975016328498481048257274264550456854734991542634833588770840569445691942108042479452463147752141253540982350666970400624767674705734389159521386241091742762986768880619592169908637976860094321860398676419189470846767103415715276929268420344625645353733450672703738955457566206483849486910952992178790808969763406261066829709415733302252976160359662967285747800835995108173810001240449786412920101731744724072797848236235729234057198743857485608080741610925398775965748837800844773084124943754273954087148342545397497679191803034536927072341209747256957978241468291957958703942611717916091814018776978868304814041227231508081689355524866557566402190545624522184572078394830680316007783979265440166559918100749636895328741134018187179631806539842865736858664266283997967000121370164623179263738586107721138473066357452117285851626553975180233622565096563918094124054730741831679372128358725931972747059553497358098820151738778906890913003776901592982971390298355590351100203599535857186915297436181205499755930773326549476004664370820907023651216573679722819068874394904718747273329600913303603086050429140031423010316826466692927961293961929646803572907936401381883484764991928451236892038064906825469581419664886128078228042232812202447749646464587659472939766541078056018500878078288604526616024668366644904411441502665450110619414166945561127766072922009645672241154803130016738673065355663517916585251685187958350801272147023640224623559175841059164724539825677174523443483993372490709205441608915026163388092181048778543208323046476278318216100602438956115367142658841227808150177027018517498756418230098720024165177429360939969970558292430259366509900468268404743821308967240583652380617773243481844081507535723038108802111952449359614486689471955485688931055036171368963166426497113856213219442993650260388494143984193805203483302163905821213209874418081775034915914058768557365230633118958291044747649944878943183529642761340746445966255871620862008027093528702794344393599409662066030832486458481716035409369461595822823747376716522039499198719109435089932502689948373825070910474325811655139729914401317177521760868817420820336487311296720047757939354647597692595083850891002220604630420390089805991018446822746540140206988531917343022062428794179133143984533919889800750453100199997033837257847336275850814241145685021722807784131508866584409770462495855019302988327021024674110794895474777403197332130899207845473683836913254080437099429836453261129423895610659247337526477130602713721827154508192794012477156873115129279346220485503629495057639591212512589970360517129744491255092223569482921843794109134250949632845596636941497858996636315135268895967626135803851160763327417511712256092860915834841593916539722496522815379184891925608075726281342167529265904095550081102947286310602592184138041998757934198854502604535776391485153903275429933132103370376955473883975085752874444548549907431221815252220483376614387170127259646042633475806353400378656274597827589716367793477171340904143809543027330771679321354550592282170719443159499334387329655944880890866619831877823327957109470350268929234033683075748086932836108533375993308565138763712397633565295519865274372760818630380474790082891427615264801459171526235961992233522704564265810683599690724275587269390609697721607641120274905825883598056444690568836658275281328370257718004484831861411781938466455125418422890762816288276111510622060639923015817597822994233838067404294475232005749840868876347852002982818218217693446266207130679728862411773961434605632500094893293393394733582725897794234164297552182865565419013735794489809799386282797122360109603200803341813996860227886305556651244232274240142278941862285758310016284642426928839958951532390177433845138962533958055843654442138190128761037011839235408436481021072777861100970115309937516179562594599297490780367706876945890609926818005355436710006421737534029324614975282377426722957582084033193129446890841706974448604949578069113647159043183891805931531703337095098985084154554756752922326332929160138776937214757436820989532510752080394195482614798300786820694890114443990494009708285680678565340394674601384371377461031219975944888564803291642163193836452622651078927927803428119583491543478331978020093702749280334685762653027307665153883126726244077104484030186421947442922502895625638786660733224983130613727721132146985088818627346015730451101529610478006508501787002563169920842709354908133027237413356265631754611987382281995756560649786320975842578273765404195254825041788121967560953991268008228567647878662388487745796834367477598654029152362782589775762881875747242852952369304237788568924702259303676647925606135812435495012443627249938444789916019266822306722183377766143609524428098521049998386559102748722246342769560225849187597041665298735955853582421747232698768778772055356776678109900410644752205010390282312966169415280339326714364981420366114475907156915744905160333790331791665182652094335794723782859444605028785569792263999721339885408599558959141506041760333238382272439797676814176393965493249162691598805054683873136481698174143770308680624768134785492535829830753990777996831301136402260291004353961112972864411868968986702770129019482184866799099249901759018632761549731326925653329352837348570407029325065592766667655562072742699701254366075129191267324042121259539862207298233579411409858960463863522091728338409963671340929121699815948629527036290893139915432142876146813793656260740292696031703739307880812892607303178221194297941063024592185314613025536234244192912885406949378029506806780960603441989500799673004522191545579570060864908118788282971763919855239524834197096529206182536678398289720489216497164785233592330437822152158314165214099281076661660601662976044186341498697586557099054838512538821365661295295130978989984612991169282767905811269879441702661362927965415832306790095739084098914940437152591531413697574553986086300111529760671777036901935951463816908420803692250299599864269443848182801347285503932354575159224999082812853976088852881510807793443929050403297370758320591439299237665880921947245911206516989272355071597851058113835154670079628402548020148501717913988485313000601531006090962095220392639969558871034710880913674572872521311131768725793480524405655578796874075635869618457244056394045421421582154478814907943539203707489512666107019968487284452242892383060847393993332131627632045612146598982224568152172181370216326911573471799177534273308375603233172448568936126148346361111661830943180660073006314805418101199165197022079293194276796790054887515372413278437081173558064141498576109722590935684780788553065681771048275946163193901405705307092669007186329696446403943526353422036050268119822080384428194392957892512400096660702371859429705244196679715687060808857207577958729488281053979322220461402814153190627861566246219940634811540932921893442915703703376584375947167350489398786788046986319403793284711109529976983607745749200602298248106308234532245545881552403073290671815149527229529784243570441890716537105407877694896386974752965312223908403701849965457695785390204179690137530912585789439750597557826655652748879065586558336675097712316137661487564145593201818757095092854770015840579633644118740506695672869458154441869257394377050569441221145299085414413241354739865686160035062675192020321652489182788120586613674523297548391941326258479241997470992218022916541324118222196666606174307423591387321855983292737955075771711656794955499408049804534510481165112792200067026416244656640866165164261218039445767205303657941990308142457707398300985145876059442791566666854822488500425987982333555002825367456806396997611205743659095537502000215085044840790284346327301942212969538314177324610321444814244796749461196138167583549744233179566937652224512563410762427628962676149003920442917088753232403084599527070976215897383147581976157301010039384358278402561253419072183992041602457789977232805443189600437474283527532382640914761369513669311553767827781151288878238701865717204575581639846261221685887703892552413745885791489677444373531159294107734620629596064758254851709126015945082824020244621743968740406274915510613033998017961917822816471514081792171346944667478634249202027592024852955359670446773026935655987357575996677684897539163657911948393453036604324370205188990776861254553243729615458999465068724354112667312316338974144938268363151538742476884831901443913900320075451257802350661439758842951184393396668146347294122717202187105723269096915499676416974334190202860432888698205918597796193329482175798150110504430484119294807372584697491353648411857755237614440305707435888721504676075582985796637716636447025741447621481758813899007339068367324683042380345494824208057344597222110143887037241689454439889009404902542343902800335483049881717946038665081279992959480508875293038425329289369575454486210324402535704073479312973348236079118187033256689935182154236505245705365726192697355810124715915013500344593626125237225941148199302959914213497871232987725695561090484671362072981578184616747605312163657837622681046588582576551459761092847903695355562962887546130452669269368903251065341039311897011982772928284172525918140101004855658491820751130328750979517239569465520092857234236649310663818372889819200598835416731976148128696046119827915109311400848017317612073620207253592508783495715277632744502366911681597175367076901385960573031564624628719524486178141568132634183010040459905517738017753841598377876263065795660236328615418440578331298368325153699938208598605095851315069728276963513592607214381424746795155093029596524151236301528910736445412364012766782255200505928911258044425998760799232437905646309250213965682153227386913221419338060746335778999462981334586860398589287097807430240345492469190617232931573731123295061113457176390013553898312420327705834301343424531313538712980800127248585052469025431250543080745703877092769815653916407587525199601777941967576503660087523706931978413982246105201774889683540786923201774147878141235698766204957832349096820738100908765164593565441879850356775285818859617567424417272786557414856481136048985948374443979225736182931749049652613093288066883165764961336075431805715891384714019905812338810414757737497916871513966600381044911088640808411470031196402877888130813678813113697369905801917849601166152496824240924441803417734609136985677047406007851584791484846125764056159337259920057521101085236146686259311617528960420783827493395441295073225537618692300251448293720213867865379110148357212479749263990865893916080767688647482559680869160951664851803840517864436743407068245437043640962675609863166577408176156568944807967655398475678504649697669715394461908574752282331881909622630347811394743708018346697067977704739587173726308519375809437984283799430248673957634979273747528579359873457672053673103916189291357826210965703926776969109931138428044166697291590299277773980609112494530002255035691422143601035551265215752188162324126272939411422867095825410136667241329476124251962627997137688480375201280545835508086514756071100348607913204081806172606934867818988695991733595714678857313051635941747775703337986957633607041959321135767453310257837495426981839302942757009769976886064185550990464712816783164240371544090203035933426863838807564930405292856482706130218347721223688549884914472625246985886251906357090290492599411819141562794118412014500024616721758371033215797397322048677151813830312478302422890184765958826258383266247171051892355948725649814738864185107828727250531370902232819770809631591110323696858752052882421315995989742040315554591891130008659025461691277517460305706102650968436322750058184655854422242779630089735494268992647522807310774781899908403089099777147376421542544546107388235652378215356672070907856306360595813162457674973292815804121564235183921004978664966198104499859407582184985919452839861746783937028302745921584897009189662900773227069864056677730220579186315957187530223614689822508755109107016350483164031512690473929277545550953817448255638982865595128632617848017103141728288507792658923817523428741349460830929995627534260266281331853757879209936893389257315914868085757710789637504281373882911124224897698108820555236445021619050740241718946741503444123889449492506771372294182905388846097200372551994049182560265679897431847526490669809687064055772831085373748415065521943965753887344813129240523665920062431152344120282160407877554578421415466912037114044670157053410645240152024523719037107814265070650776195377378404809527826223957934345485022601031078244271928297914406159497239339112940779195646220672306383657925896214774377742205542365495959722290710652639695428089658578294901216696036378616716090071299693554458346945099744514915994860637319593186743461896673736205293481124230922461693971877444796219588500879124170243542469191032667705558909227031047118710295389593950987295734161411316374479734972367011122026120931780129702228240064414248803251194018194570623717208966882972365418976294563467643650295588759214208530761107602248683191267588249072181619126868311489315682119118600190145377988303618829725615753871737136450314735982049984053049047194230069232673076112032476128205016539622891662974539788716194497210160163613728040607700101291525731224417205044342866908242420500019094932779755304627389212908553738850955287605748629281528113230016723812383083894245953280106191396139390344077944372528550072287638177454069256783659870057612053648293521050396102851127243017863416953691874061262171626697009308386541853695865258653918663357777790339242314347501269483666858200001393890842399251121100194159874921794608286300277641065549651993088099238565065771515234612650079309915971368874828068635986032114648060795632968342035884033734517108674863864087719398512527580825046473421349284121967167554032450803670327354555581536357349428519692792815468972908586167154293293223581467620848496782738667686386548038900715294255436553720742887114737376876913689674503599084905803066536436049993764587395183857428622865060551352195370461766705088729376755959803118533298022141779810253526123399488285230162141119879181457254245806364164086333477476044328597257351760221530688532510461504616963580242795817758776860365090260473275901161723164261956486227232043476094296996394228137651349543457757580739291613561102822929810600341905467464026771599590596439635373100766623136890888160716626493724348196317532413086850274978945731034226276232659450451335910935735904535052835182789142592273286650894418053711877128856169589268196174017529565427103106043106324360245131380332546619054574908310007027850318931800478688902838243589183227836706329729100268725331268438294463692933814475569781334413373310319748375766861547138553418852812256999266939135042941395102488227017344772112430310685548116634926561070876064502871355760334418141766347105412884110887229832903199478650454121851085899116330918372107997777008088767169014053945411819612332097100643778878082407570107962516390796474133188959075788478377484626274603543155841928674208889933584739678361491651955993089080549745383825670141338268085085439072225289001642106668930491356738086021952912221084887900343370006897988234762225797776708928727333761612525607130573389391407571512558248221798575113333066021551938163656682183382836380361219589286810443210110871730045969412600842641212937976623636249079424159839299880297555912446562715295086426220972513863678817298718536335523519142918726070640801501146277228130162383092273692267145424882392974754822743262907817308495727822857286103221979505479568914656054680490567281257234273406541801554798521974745969663166990053041100170727066546013610489488727767840499200582990109391600967361543613692228797936994382435993966457495187916815748174447439328096591607783792028015757472770526139202939381754787999566046913092995311031990590315370747167154956357165409584471957902755416645112656040971357719468870540593630238981662395395179546245314556313044723531101291962212100545824073769613958327080985946066306505703078932999882286348767165380148888730700808692371617862011061804374288813290548276077558198780192717380127478527943144292717688969642818127820191191120220161207116355150315117736657572498871404877289644382644398246525834070134224173198806851747444909009489683123858984204420341387631504901272917771880403786343600338054755824444761600162664133186522956730001993555647423681693049557227837024051231744337994233288403245852644578622486190122182480063960881823675729592373798936465947131821223988691992196505478998070220758463663271789273579119843167367214994406507874769663494260149555534578754162715155228449105361632853631420042946618502438453820304581892920296335170889796966936428794721050709963737093584065407994967938663505874924251149108348185591322429803491023420491524908594149973531258242897975852201707286214850360423778013726793808609031712039687766337832617216575196378568342868300148592410705436003637714679698717294861847325105524669954047748447607607353202907076310475112064191585178325055154332443383512363542213286798749603447269003807658070136081343946294975971159258481071701194538773710987199019474980421424903888159969754995783504369526652899709658509885080638533869266967474276060107875684556915909994436112642924821397515423896357001227576716863909031573201356497363400177001063401964085274665987693945790462320780411310263135349335666691380751926173574109150927115928781072341950335534007385966263974452192817377450726205547509953453775562844279326195158606443589655671877438371425594219537821308383655794287667955873680115719550692817472351073301424346606734716313321059745025450551077214647114727333258532575792001515896764437957619108152140779347244043112024082025800121287897301775053289932370907107913977873807625222826157433180621353705239806549950845798863422998773982332683293583695647171810419127098820181490750957894607581285378704772937681209751128445087627113900582578553916208283017557913591347797675222392780425581412649164422487400648077458293666212263540035378455667890629975538497254668990470552933462975341667998596640133702790438710094986120843045878498794820481137487704723554890067793543002515462006132785676075320030276555405588333433008465921935796988714332404003986568734109436676612935341478963842859944264049525004615842209933208228502983956420438423515782153758789002345830766689050195934148812364744783042372324511130544082000437540387128825188195629851779916362643140962257542798764192650647601820840875871416242554831980339843782240574817469206727060336632998878851234184845756239196636925807329674235697462250429203654480975792889202717226218240424387816019922164192503068583367222695987330427604471000714993580418069025544290804002809571618655963539735757830788506960234218568353268388943896851242065543317365679614430929998603886865442568036688738667967907822325034582241866222963245370157643626100880439761648062224137866718423669623115208699350444956436074311604135839079880182154224230130733958673935713248555160135212428671997412368255524834702172035244209644304316977493695552093775490470741015224448658458396030151116753163428500372555229569923629616871862660500495335239379319251909501978320569009208942825582672008580574678877676747602879421675317011930583869199292314215413893125459287664183416353204230716716852874560609837457492529403781801658717616907562851586032032083434714458266215578220634775042297925218201200518538501256328294756001382137025302759544284356740597087553304922324933152059292341150843609936197990471520380021690720987279058208946851051316518376601302872513996312433834442358216898068554017638775936450374357262056127715296910492135274880125720812278651635867686623769751451747071685139913176163747891775608224601479236571229848931866348196808205794110421375699933930539341615327246808509187539327273228870310042878248748778637091187831693102888094287672847640406582369292044276690154442880632270787973491013865361373988306693924907522033331902659706413559743865011708594757281235238664570887143694166450463414755909820175760477138278291257526654932300905948595347326704502751434207766230530359775545659664718757746475724593804967777443101014858618428642077950282205299168281772664573542753750621383371369512347036413281084706688612325058683831152533281600112326433197958375010498444538968204132883537587525346353994818628673943033918555037729443291265379457525322552671361969955026618189347951966893174395981371047795916099673481038425770543876594993231639135556886317021572028247062913286417518587355977303046275253019861582552935816695749309047812772254236851476397263466425056710815419398169801974432725645863539193784758125165053667514265959126223545626535224098507133616147549938917148510205024367022140381197343127605409006506745314135351035581102363384449487450056766265159607650040475880826935629508060191519978617249754925165279672092720253608206997503793502607285887994086368555860172467407990920206914927256340605480582449161703283677971324166694705095648397397586372897707822452044129477537488985525018229758909215895826761512709879068557257641714295020483271302927922709260975594136942882058284853489717842446880880098030389657590306319396485266494142339626278969565403461918914227078233586487668775277857935300432688915585910056431806957967887496952081903591178127967144008205987245130356925631483107630279590394878148208179919171892862162040901151077578472211909234607201692008374719399742357231354276456820070736536282469354551794957051110771999433684707508696505209533819826347489243833947107593286604190484993143865908350608242981949093288824992142055771910248549903971550585549933182894763366552891119389885141598008801767983579159519510539695851620141903857510776057110691075093309168110974289314540616775367279980678893347295833969578011022916021990438054650433636065879005352891479787746969690908552959216949642098855726373823413245447173660401853815587010510597634099710798943016762805630443778829522179040672826457811089100248832457655244665563621994813487529984499183335559271941842317096502105694455748487302807215659682984730320463657332377110820898440631837506947252313031215795362786871396712275573686933193100463651660351306721953155912045209370923012094934628409671619468880363983175570423608241315303066757202340314159631212598136062548674612325453435304670337573642639785039410685415695371413733853684630782801063815919738626853027072211028315259765658594612539665312054236033604538266091317933319455978875301409221824009733414426572648747001043476945202639644527475287031071565163783949872114530353304729273930790655697136059389800556491070115081440268477160465693174997466989207019107309104398439614598224712825058383001553497708019433822220724264666291276224464238016098132140485613063390915167836443440109831372050945020508327966215384757370711735080304275699957669990246078994864767506236163453653024528394559967665843522358027968918941839823343240645813631134399598538534752349291289748063598232555612295959602195413916777997918598292470228771933267222517773228840557887215446250822563036188416054760835054843070732230354208317049336683848613743848037307730175176108965816220470331805825661784600717936898030053465874060776842850439907209125152244831616166740276872071364982440790543291858626644785746618819054138394367352541639973410697809224700324775665774700198059570006062840299402759124795580645718047446847901217441769653526014323923882902322166465097819946409574742965837326204879131461349976459931193090576785173557405366672697088577462764289759234938611069296690490472552322690488400127509882254771770675274073894896221926690860889840125497196178748093511574111838517810663795750781185838244049061502217930384884159838278923588029680716191477076790691228459364729592519168858933858276612863535044287472184522686452139397256914768784156444745079625738791949289617503670487745178427033476914412714506487607492989605389617814836624656210506572101712034936571431084381218667170249612270986351715454551478878593802173214412724460601892884214665939592854818131359352562423218807097833864380083109633205284892745410950923632880889200318440868157692593929623281068448058353100706587100527145556022262014884180810737136466027505219371417424125859185140678889384465619881164057396076443654137815632625519854513270753436298959424289802142763077794535358778067491490213005663426790852204136970967625435574395909607893098833513408958497167288110835741663945363458494618455713206047459160169689879234862667599079591524662595064074692135235245670468961314628292362912367696027066824341579917859611524207409204919030144654176888118972621447839388755445201107922121230783097672933045505540371966289471352278969583818928610536095070522828713899012616499214733129531020730761532405379623467594026351990742212946248083234413175070253248202690188248830171448225194338339549369451365868801023747344780417010883034502589566721396023644911920228237053168740722160776820718832269469564938331058722171590587897249516653294981011528147531461547048364956596240163645535708973915480462766450628026120601181718201848136105352647468074654120883950797059052337875648646064763645131593220922530112383078170694241834219259455037611831328340721106441830684849456696178152172256997974270112122029926692523953083075081472889943404737334695559415976176053279956196171680200973090555265470365507865722973994366718500594952249234526989606830422563588699076813469182499183588112886490071386720359479107733315966253523457615021165447976632599026241615737705810830538602238069209632654702249383768889099818377192550052100585625861331881435303852700999774942891953268008149246690375260070774485237771817154118219831536320700224130739189426080666605802344793087414064168061056676700774887919428617390147088749725551905921985910615041262876232891674299291156447729583965168430496019265679325498986686589838058626112937395918400408041468319004984769157506845157885395834013869723099662754139202177567612973071133896526351459096777089915347121610808080708029719461189455075982017274132741651628607259002907021066853503847030957204752827472022315979640098057180987825953544912370049693595625807371489181764940837541526744647822888451380055544797725212941089616535081000943162651254815379932903226838746432886602024613113531769379971670912551384565968632085381659569879534260960569188118594547626006335724338886269062154583022665983358469058998118340294509414456854805039971116593952440359013096012526528870816783854157034885872979072631057704966139517717289740441281998777421282594367209851969781594721465851486429150032916618160437141714429245028848116250628575158553093861489291953859603738050065834876227729560998028431721529016239288189700333919003849626873895569449665057182420230747682153447715155704726874363649458571725413411299609449913154648477887077966850032726921916057506706881610465111326815560736068349429347089080279893341904031872535462201515064229758357301735441471379938003968368060642068612611975976028773847329107861725054758480376499067052874199708760436220677959195008327334184400598264633900290216423212835426061647763120837727791103971373051820591528198909282339332740550280468994806308447320454374638746406249847144139137891315318772117465821174968166161550126130660795452817055878778478428376725369148817014417213124551211361890195886424018548972780753482425899258997829372576201031628755874127484224040006062684361348724530894523146077019017194393626290176230988050644516994240604901260713035595930801453941079456395893107536389750781675452918529783792613776201163666615184559826732902756935167444936095181448238971716218443811604005276861177694939135580596569330278333650872569118212872014878427661885938090837336278127983369429041221875061842008722126524035808128881601194710730555977906717412096791594457401207333894687020147996138632371718000832248015243321646816128659229061242992386839343395267024679377787839430293411100556446002920547820524154215643326572590849923239326650343084996240066368079905601751307405063526476403363545165258347671829400620874993492808992371035445184157458755160172201336815567213265674677920187405934282443449178071290682824348531752625811309977317880356151663076994259536881424799222134774722318165566920060544449207338475066920220727439718536170699098195218293009860015032798135979880911812988175427402401742515968556773498093888724567198793098378286347107607621206597186703159610337478209764518692512929394953533174234393757620021865200530695082418885342014168897000445301911228344558288722385169442511886667344477815852176592330970612031626603084937271427565699310086783188456891510800438961462650271496806728242181496091255076025908646077664034833345573397079469719204347572250641556444489200993726170341270602703159342276910581666729832399800664395825932657954293842885703552025449859543754750488345708040433371563333208881985401656441731989315747862486106896127904948706746959772770016956483182552647273457667369958242984873196560362689907345435746539729983739354798153500720789242337203839931823690851479985002089476128150978908710117591910290083383649209852993829995442015017924979464225624922103342893915627523353164131003478048607438400388864707065209740472944923022702957299638203228922219221680454301762480591209622148080195662434600655569804936304035122773085463117133845913372869167790423120812272868180421954246744681708423610351030777807356756266693733838116679753032317265266380383648690342530231150910054093374725661523566342764649958885718549000784967427090952905203241073010633579137164901864407576860161250202184162308911852663536535257629041262048059810839615346093360837516041535261540247173405471300592224863340842367505430409137322848656654895974196955378699842927424798896432056193456195381773796821301890813495073883025963607537388858266137855538620526617256182278712642086662484718962900454765212558270121756494091933733498205775645698224953749167983295745165270428969551968858427112162062593635000858937029962643487370626035185439369810824611972648606097712118508256737130834861691354635005183587021279220368516417003090552606496138930747866770067864838852968780094637362283173724416555060418566925699143263702189562610847551584242780833531990313107876052291641909372200589375416038707567853039869023253945336022655494088529431755200973059698204250098801245661805062057548139800292706617240271985629978163361359144841868607379775914088800355402627754286706764182991911445785705010728934801211318258070380880075920553181485219039575965773323215058551219245526299566342580774165143803101578450460691344899877067070857307674763462574803583230140791160929791537177961904726789569904334662206802744352106660408702324302185911838683087016763697495601934686193561946254509995021896066801419996114260024614542717589999714730793294107851183879734836959464303758368919121445440905837124495462196640543739440420348792032868591472536267643195116791078148328683330573846414250175739266770934524036240720517530749632958530541534176239461074508620996126767400439684182202767665481843164298054463932979552524068045811969994318606664309517577561578765256468479942656084096122442154161486249253726761137679429431883469508590463613419062235885094269165333169446433972313190570006972070669420185343033556195159799942978867142143316746012016577492762475831223816211590579107603428532201062425060022159932593475752395454003114536082165057132016925775762633658724503755504996861920634823802965000026351769429402038448068587946934989005181921548274046187199822303910423330625672038414980482074009251127843360503462359355363847867865270767096594750134142988411141786850574711031092644137999544703063439701855263563802230955007362161728217697845646327927417409866901762511911492132890471098504882341662510220339973155236094923394312781830064568141097052719382872279068423749604874838049561493268801235524120673639289790290608419331912964558234495166443647926046612249561481748490693948194907905411930991628462814483253983475601817017509532442331234447091162254526498710126306849212140220170276282604068006379501815144143050893490816734369484917948470326402087231440776428089845825023345785403663571081723751761723794273210150266835156890341375886213037574206121940503571401151486865899879948373207397990158497439954467982078889461417120922351939213386333522268894652847772452399676698038313485522261165454556589723768985318795929357736844416872131191208526324996249164746550016914530034114993393519409627170530629398141381142655527177692190730398137738000003693226437217549150086304134070653732312957243187126253237847372365015639006877814290836837086151661347209046557943930530104897354692146959191804286031017684600478294491132780640958147917307869657285307193430073593757068983875584221361215002935327818296108954573596328370269519289278384958258528927898601484570997564326540955272160852455311662990878056362310460690219374760300543280526728454261358537132856587189727729496140851085121969126722054328301788712457132206452590837320728292356193552348493640949651037419302128063918378357266737617506769932141890037605549641432396603301989270742129021712915384998047262418836797382675468867681229632483691687845262308595351245247798063294084312621427616077793688155802721116823010389666153627663509329414745983839434562132131167307130667437356061557475349804380349032034182283207606295341305269775104518333614394917475100235914371055641987558877773746491718132342532906745775780945248491540621743755878306332569927178324821019313516350073941792223385112796852764561867296600639860640251373279241610618221352135006468937165278904088373954179566861758160023530705273077526021108394513947776025240895858254371852830606824867596133104966961676308549508621135231864248144694980400204386752569302843796634662497339185724071774676786539543031375033957978458524605889292130351278159241199702921104241218988955987871835944015892545215467699597771891619227530806916993401328159581593767840614358122137240429507072040336799268298964073068355068244684403985210112227568060458354594064241882430095528271434334997371559517846836949329804950102995353931563341490422253535372994393891145096905596510376425165892758719362290724235228366175378064343747744587069108972080510605505460179690421569654536031929589598578995196906664424088870729572132104141021122499448882688922082679425124158537203132909861140178827731539548183832734943495490853692519110095452437325008460445677992034990537234786344450427535501310056862531754961238368409875444080002530764893204170383556277765208346952387749945879654604788672634110641408845360838559712906313014925225112681446873610234261817396135364691247248567756401573064756129438771911896518826998179102607320249307340151192439334787218683275172806676187437136606800292494828759676833192855835921958751614146906208771852247944766006200397866266870939235607423348882165289226221994132237382279387861319495944565408725113472203227913914966383917772838838536150202494799585162908902356071791988398572331242031245252234349134031281131571693010830927047729642465275879332426133206076805264356957892054252008935658548878499499650735699168957390098734155497893936185611076716502374791074438900420243426243924980946473214549730502424276615752828459218419307040099781799008711810491576912030310899340763297080295393050491945289034850053600351728666676994002148870251158526772380134051397737603814097095450990967446055447441788137819275877282290465508627371051251159927532606484764768598112642685184191933647287589100351682215252750386042255878371075367877562077309365354355392673804859741141022812027270214527568576309673831489154355384498076539399230729097198438398921247225523864240829752978583678456208918623385971058444959538687588241580678016387014140626941085746696278935113686340075520161650574021480502491448650458679658579636271320053783563495582234970882556106702703203794344793270978199541371442519420667329926868946563492840173362885509733785512265260012252614309318974591406259937430018775894162244268541499995196714877672395635766497619551326404780583455862025288471494700452852555722144859385852713557763932652886335146469664805228552799785443205120033869447492360096940365396440041176546835515217196018636601011419366880467353860698045600289037339486461663705973020084249101833128611355805397580874101091337688081304566213095484939264847763064343280845684163655499956516154690067629502716396059478596610851764154428977630754103897670061107274399344162492723759746318079584416573225931226108256318322002931200644185633658936347372534378048044211600398895201807992983549926961940192696959565081788933701769321859827654602684288619485639492297490249494863921364095844961767063691724262543068091695807294713773049689297584204844934521032180741011147284282439476123214279102295919193883047919332082932655399409611060016521829078420590142739844547309046830606709758812435534303309525412991587772586513728228898211246597119967811808573763887589145601783078421458889656811026618740329133723193966283950039052671828507779516624824913989086228064722608411508768438244763478619458218442722967049172494858903632786091126831530917154677806918360499107381877806731012411728217141635930001712165588381632320112540999958129793229849244930752637831709585490799705720156566321715984640150232855243307100282512072869178963961880503909842571462208432811606144697938269272417542409662055783078432770593801725030672645613462387936115938842271126215980407934809347352597360286515399774078503067662962916678847327080434487873656844947056562223692499498413105819878526157442679072023949097968425916020127126209116882359869935546622013996477021317648838922576628147544660494959530286071034899087143432772673075480124848034727743582474617341441218267061559165691587561511934074885476437347790702138583259259051598137886150642491253113872835982192910027546206932801002810045464419596107185042818213479662468748681961006001106805076593930206927834812684183713716135199509625746430794231646750143052244161489934183929575335193716947929427688864410769068382989859250313621436996358620792642437966049846717545230609841987858222914649415727180621810238660510546300119747807465013295608800263401186495027558227328739707687417405064756953024490761492082945351473723278176513579470126980518709534816103897842969081361977416775831104271441321636890456458870356549450539071612276391255828426890590113155704281892944704381345264922578790726443111182618847371021808835857241339779056209054422875410345342668347105256571586171645502661985517395120170495707008646136677153786998027470772586253757051644919850750996849453119709422839707116937501050895321410414487971682487991169870804156321580514315483634143679328257835157299543434296066088627267282700176414378081033150970642519818556076476577387273410099228928765276305814734683389704949998788454634658044858389317265148221481360838327343973946563504104621463637505202013724310256044203859005467163224780533963964431195338799860687539867498451677565444591441997354568612489665390482927897305974924610716164567361080204232215847688121348648300988761027032961488960135176065395352684920966545198920035814228799127309865534441978367380670545350992274193205696844820512962740522333298159388269061726863203774654481625533529413825527450397316472958506662280297921473689684327357661835179995485000287343450320343808150052709891987133385120767271690824551566848287557718502174520480659681880121679243690689206191243259203542450644245020262375185665653373639416325286397785134969188528878630086573286237340992184406956830035056939648062755696520886148977123092750543440401177285039120917246030507224334796390346412619002615348873706848512444843185894098776267427003258548904757099790136037958511083118267042420262841043879358183604746634651482085483132472842494710471228781848097794755773755040344321878338371604816359357847523055462954995332969844331189924014579872224947586504769313501494226392053346520904954121638044289910060849608524157697053557591236935142015786519559143016098436493392260267603100994287011965508088213316211030047427700851448702345686430664258362559347186515154509283364184315286945522496536513894751531305496660911748390822504704142394880125498160012756384228180840227286033087541621658339025986668759294430844952259555927258047949554006872496379488643276839757153235039558382286877942934839611760269619711182950314659376780136620096470326453048326280406407603205038066770080397716306023622312515330153857976378530607442256685841747851273876419447387318916395694539290464890347743793331132440041657375375056480828540490369456877680636918123459385962122339404028245034438024106163853953947445390266129201632819730043304343842469151742851388687237765291880236868933794384618929087181770135782404949810324765458765041977880683308042969413265277830781431927883965097694354725713454898959034949978680834744796358355058763589993286830217863992241058551252822796897870423373124271599750220980911359226136202015810811755740107015891988656314911555822428860493815442749995555865271719700321017185146738508505811036162755752296488462799960036992348632937167593038918707525013727823432302345928013266230223148595354439175279710235524660168344671768133779595091712631822605386076692346603705646349765462786741296248199986520157918281523689190428897217887077783048640228718531034913049884609811174090250030619101357959640843628291079388701658238936377729217110286728022314138568640157170291185098058600313431444501790450321864683975127218828986802280900702953995952433006721533164461379692511062885955243257372448479723989241916570647708380381395815808131000984433629113674942176701428694344138487120079940484224117991424010353609340970590306577320682127070045165962205549436559116306949212561176527917046098978728124891601625838329559136823210769649302498904044138198069223761849367394474020658210690086129424034374909797262625416914303922837900327793754259217120773926856857011747192293271767310323598061217642017307724695813301028388956373162353349404723431264148571940170704625498442074199666047731172662186710368643521388951924706636774260537729298181427121152160816195732561281193211829329235884742204642059982596273350784248080085406214852056347545122975185051164383529529201360640992793363787520644720775813021665034324971146806669594927187752947683771813228586608541853462436300740808993922324271702733196992616153403474679213110906282083160877777979580876074628758547139188572538967053856511646752811970568335463919208650774391481402653589418228996423751053955188531396021936953954564202592103432392592616241604702276100623574116260276807387618384617586642063119678821541973972929695713569495260694845618973384299067352228225211827826878436151974608471197668940983977989420293352999396694208027588462070324003000529220465872596861003565757330388823737581793269903631788278413980521983466508311297300312615912049749998597950299196992369550630493114420874211863588101761430839976536538106975657563494465783580592045203989715625496832139438242672835309030982351623280807075257523662727823828897676248603575584122026423954963809084996785942364002141485479750286374920742949140014786576755410016315481278400356969057791948118406182706865433896794680252096976980141773371427174176384179304112763490355055857350302895588140052191552709284843307105118366312850292405446933731482055647312152214321750306833001661038372208376412159726561830733602641965616565995007904750442727168395516615115819609844160652807337349542808234029413520550747141506911835400675063644387325486862582449954701182449507363051479297219145005365210849572447575426204732779908102593571018878918963263078114931198006155951087227136639764647163361844233596418455678620623401318716226778364342366936315649187836201797506102497293883067786277523323710834055041186106347773237099501159344567200486514679121398548274406267967723989993762503266142782687287809349960452245878693276706381965463218623540145700680824703952651049651375185460981871057800478809057698407535517400778926051823038502833110722613624663982347380864795998783527791019981170890615657281247349319613678415472334043055894799211653001580866155577609001069342806257920580937818581098249144051730474454447426277567871352671160818578241018136189523619062507774492423665407584190493242432254305378605731643748156947957929449161406723967839374543151985747320232007303975462508476793887818503603233017667316289036358854479320525143484880415632826293106936527689727769224892789451289970291328898528697250006563600269183685125158494620847900029781750272715981727445855654894299055386856751769088685588235796045999054248402978816270386753748157063602556681446400866266238007656445689257691053280483581349692499001946456528558497958037968692393053498887485071707729386837530795053032967450874790211627553344192598323397488771682867009021820626832708898594361624021545547098956339903860504267367841100479209233262492657021907334100211579833812375525902405470605159745128453243106099936357929054295539636266062457254679935330769308185463630299223021221433353937713923493259379573835651808303190448368723826263735009081642300876263515979119017060426835023106799199007169995475854629333206645284380460327975987362982334125754039229482557996659410471125175720858959081094139463861189718508502366900073171245068510763170253111210685608084687797695478319507894309553310511439498077072052145177876762404119244549275745621124638644589103997753006161331692766863325674490060923926947314728995792449642684559808659200713033683400206986475532383772147252999687024174842915444001324795814483913635514788628922385586741863917003928212163589808023009489767550768334341995371813573605498460940275540557559854676457613728370651540712218543023978703977293671682083548707291380119148420888458710157520760749863509411287685097436882125401046562909132806599560167449739007757946960245677280215874437996707202178721238352525154409839011598818844863754107333910210381567445766617452849173549253625636353354186278910204428285788042193033025281004000531024739017735208446918242300767997010375175476297013720145821915159600587151571584004697750298432086437526460913960502852763230424229966680946124130468890189280968281900910487877040363978168200342637364996009803001699968431240248145027141956665273729906685512970285669581102953073943055716722514980479215136060899065088181593255437992389441388198583108384634408184572150020740278264127242562178101354967940158702059659830865639149034238199369729915898163852357481891544097687579138595030675246134683060602895733076958685371089474229780016839831579861438495499565388422631358069438677684344763062576409257922927745406383906822691973987705094533387704323545143413339404018728366212234643698127718337017636613277575870418316902772055960699851972256033387245438932702339670423223218820516371189711352285718884141357523408231494356071675506682299508140568447901449200014865554962951495585662198510205473881068258211501932770576666515028804705326729985253893065542451209393725700484354720893669288966430392299645386850856714428213725167564898213572843136706592176965503803960348701987653584227798026237266855313854549362641777443380784355064145184007472553077575889898064950129708773205396534479211661531171387396876970943263544952547155311671262251718652416966559480760092334742581097206893295676829990704532674272329985103921772474008135709525549200637451630074450929785406148051402039124827883821799514728707479130413491355724929439644431827211301428658542726778250534842233761596208521276182484933813310188724260995887911986692575689719005681115545331474367137662692939628431600487731211275994078120478618525355958373784629147421473783067539541450204283146043034044915518312137325969908776318618601386427487435798900143342101429211636000950566996571553513840260762472229173327323887379811565448079900141482900430155363433244902457793469055924676598698315768595309793352244342909972486240810791985972851019128125631161821778537874500887615347017590521460202695904883418389110972691761593738723164633458591450913145025654307843354471664018676651387401921911303936957893791101927513984093459177535659000664931052408205695033600643511321427563747180029090254178203354651944130140086064724631345141006693785041000305407913737647203339479106646550502852912745594585086996185933816750281591204862610024959973421172564192500178631132033533812226786620670099116480615722951203289856331050854204542460687478548020160948703326654163105227547791924268088827500859069953588946487094430602684997239378708632201177177663285392549800880637526577039451606395232899731131233847094067864029529668776562321583535646852295041523235260592174407597755831074085690633402896129946250884318162242315672623135804715558863671618952273789492548962187151248665085150584736732561671792872825466892619598976160470115775053053689282490294259002696862740369757613456459257645465159838061890909160689215605775628978156735081988172899454018057109059038666272534691101752896175101428557560149911544639551670116697889666167731993617279193358646260083543893626016110143879946069161571862642637809824383839724890870110180712071013060781194682773113975092744566525189948347755268261220143577329362908870474190011033478640488257204657658349285486014754234781640615538709839922373169833141897308498936714112148740383291371445988440615606479835475474860474714495978000544552398241740621630678012223706872156392152951270269658559253849183261568422428868082769224378354458751566357644783195813092206917441511512001387414352457698393266200578142797430886914915371135808854897463330742451150495731638469888765728696660701766228997789185478997219033588605160789501585940737515400465589968569575449480974978212543727239201184722739910630727288056866694582344243017748346072403304825352155889984269866617357007152150535440678206590649947202336645859655544882285805213160843257124494952679731276776437331809574699865717882226835013709996624038630071885283191645276146412482641761130598981137513727841664478103961298181689278807719842083222270816131203215784847809160185064389781392971406287014670497071279950264398020317804095295872229728102061680403701745449546176052796214507934914234440692332714735558651593434162833937688856104969361278339350454804190323901276451751744354769515457103267543080972934597642784119530971622853060580192519460978870764309517093808215633930031062564764423550823808511445237157377625698258937879800609815281057060845683045432179807054650490948879444661227112016470619618812156004143764652973037607196893366639740632781859513533762763000203879525821362432953922350296149100034967244801493490393850750153063182115611509925197763777208822503169762617881320269279161572987398614328414872619418398049525050706849246503071827036783539354287948069425060478067915866528502628774425648197688868218172364955343461538369565648828419999985355759372845699944485345943055522643943971410036985257994942413619844057905472129545029519792874863286441611991516111731314814776818817111692540136037545710897431574199036381883113840920862223507733840938852258629977990978486236027592898887135733542676631660186398686072001431592297081864902670435079587957756373590302523470196891239021618492739617853908042150229960901435216473310136189143222707635191739729563273679767240001488104512715656217936906151762312129462457897237391976486306239778158737275054376183776447752169858494383908011174318981846219796637334869234563595592048274868091783617283477170772043385468184033163847090281383466813769970558713727314587273480401281930836822620404560866592607248841216648798093522400102951691707709106577446144166742599659127952993942547424360154624556981343112027476894241657995346158099170625061804024891345796436648924822908314281574375242389723290042733991203867498758146273485299568094979620062914624146691076314743499324717925678512118573718269511676681776520770555366945949599431589235673520468887091564034338519815598982200066893196510339168980657952384130635570416420416523824417259023583810328813401120904187699652727463661459394067178940742958464323584350191968962212612966419729758773260572237707969941768260772139384405848900366805800921832796903821773600336996211641755937008266021910916003748410446673952617003922884000919635412322212936993375240246958481675887064612656474653579500721457830185978313146712296034304773077467778450129888003898254004797033535647467985307687527236512536536551517631855473214043241202316479758176373075626939176526620746587464263907722494147488790908186396453518034876198613466971767768477218221027772483452976624726750042721388233118891110321382165040486015357475669074833518186606706538174382263670000194374237756105772238846456831934859400706879527012431862891503883405173038313711395191377162238570402617563597825625017391477600499202597558474137185190931598110640980246809916741413923568906120223504533363409454520537344622212403040358512092966698742408266849448522429278514642231028920348270857444472096096173060701071058519354977304604083760067710782848332558099807734174829069099286935570107827493130596978813972804402107255432964361871746652083911842907020177699215967407780920335733809642724349270852211491496973872741743909212453966773896964973964956682036900984941129391894231344350546730218196824914860969838536757216894001886687435156926467254187710028598093279544496835946951260836371242347419153838183269211597613310343417495613273597512281610930474087780365740843451978238813984475894990558765726283366483934248915275591969839553777202273832664896523599897024616803674409318498181358051359380570562067322567290700890557126718070796278894956779118654742038495579242492460093496830312590108886976420786995881862059006236352506192498494420253268359472129308332478469646582997826098150813240271298916454408436553373870946569625060467531625121733300265210811661227871310808817866554018189377138939827759760021770775597635935117906722219161755557548171096462455007384597621154335103721346812778182445231049534925268852467647867119326241183552319085142934712374926116833018152985228310818184254521281093358288861411997480404867191017044163460620901708538106917207413120240740891253826964106901388598474367955886237009771323152561518044302759554906381432018649251493431897283654047450508182549109072062433634304717221228287490157991514358195841080135961650133230118214291441376975071198689914102761065157681408577880897861287109005749983194703930696742309811540487198476929661688338493355877826990066173000118157345580472967262021170543601363451956910807037299795489364281782136367290913841736958786631354682384625513743201673754359241956702200680125248817496462411802983786705845613150340926107822475578154381846806613280807590013219551788074038051717491533276188222984631900908880739142855081205268761802847258211985191005544706051678233736480427563888141856590072771029569396337480957341090482361692333963299259824380126907988789903626797457521193279511302103260748820634452265574475903753065616143874483741955868742143579186423949219940463023411364236262474354513031179665114603908586672706434018746571752118010186062484622493059227940407447855394390080809414381741062229531042271297716241650988326239783277642121206441903524148869418912269674306951682569419933395900977344201740124257887440017238877093716338489764297105526285136769700266068468063247053096884843829637940368680385022404628263776611849164804230541769828091620615605535872358743527004442418348138918381161425796476679083177457158839367499014399197010933261300809287780051530575196716065728803992614047364248413014400725932910686835552441655599540537024476989914048859792430173039354502766196641464602857211559389892307494249128504018134542419343327637213406363516802065522950955329602791458659385914203485406595754344098454221583085209924343014747971879316603506094744301767004474350517733598940298734157345154725524434941791131935979491790462748420264411472108838737391925431176876276679880710999515625174571936888094557450707839812721640797964732096918035508910958958195556793612212164302126050600546984445718189448104473328795958243748979005358831002760082226748505382778213151463302449337769790363418195860472472446166192807714083519344354912906651314139108777478063993393085125509880105446269024212049399387347443782932285344621998304878229207930973077236344092894650910793655029364095723941450509111556172058909132899551431650237013225017497564185333805901036245032988953501910932051566860466212154488162657290904020625849129795298011385648241783568082812579861466940271134941975555782291920527869932987728726420144552131041501706191037657251316022092529399723794819900919064503652650160793678925089382825681255165685879045502636859433492799096951189272284139956065107736893089840031474761321408822316958323477984650949956267036952479702642696019396446581645500515116950354024084745829658506006825764092121710279706814980572724013161677167776129942709919593089655810636372958945535525877276141144803669133206458687955183833444752114097158790614355851245301954663697595485111487287638411182074251864264203806596448108355047612090795490938912030967705684734878779216129459487161889324534809580221656077492754560504027100367998741939803540117033465319153296002264504511909052335250155303177425939829086154605864348083993606584122365132254344248484692009569683259754297125314730466159087019455482723181560310987553737329210711031610926168500326205093276587417806542446343376517279563225911603813505423924570987813119877697091639838077751281210319328452385412478084585156319339963962410024056392592517068742325673476368910872192092827561347581880434547959144531735185217810484001767504466671009931965038579000736537282283300172684763559735946104357880373011515529536819596332320302683919454283144426456456767104345612470610013312495091957488076515420236603562167405185008115995114629422601336890850826385783889101999907803083411408137426880348206725253864383953572207464055271059143787287668246858157574988621736700264346493310140417281248948333794839684052534747083858447548193838303261979646373988512580382481379339997950309998508365532137780031114919216768185268638165735225752224330413892041315993910351617111534265918226673421619686988596935608003529741019801749665225255877316987537128704461021757362977205272777625759140558490177757109261644736381026988645642981707688191002778124027063474042327438579616407699382107943769559618171832004071500873038593694013617435952751738557469647396865615235395547027044187473303659221615431684882357853720838755361456634785770272095583741203595923800954732313114879789102427686393340738522236098794595168243459344246243958935654235002028801493452042388622554858410080791991181516910194841940483859944345435287769945009661734159454030130815619946597870612482072581179142537156678323561732010458104539863759676797039912951366501382997145875543354868205127213092658622516801971948824808178010495226220471451542697581482473552763559853420134482071900311942566126465857489459516102153852339771798152204311219954655761159124827886009575723630395708044542240816068785508350170434245689484005839285119372568359457653832384401752834093653917730690666002797315767071953774158459296460140452210886963655094984247186971677690341826296978346757276140472663963814935570733192944986457498407253882490126010559576017299400620618319382249021953884573798017391396194546485509422415170231488766329154330867788336954019341568684790442350647599285615381613896862301701237515464770179187507656560083542846630061037078246167083601986196849298974023375750035361106186549234934448044689078604696552801731983998986645833388071324177705211109827436190531592001760520825442364850246745642330480462480362523667306491544632195279411809685353050674568172248367640417694703287794952109788884769737086059273784054280153832512297108623470016389488483454195077141602923577839578150771801734162822536738685581469349599791077919093201964058986591366043429467320566952519044159247721241967843219754525197437211899715839164104474743311416354985842592595430482455327060496127432762652177007047796425255579861728480421762013413985228030772670799217440825471852404113038569781880172434290235953962369056772866818849507095306417063994564576415175690448150436160484577726046773949592927198874638634445960909426586814182882385156635687690798948259116818476092079744399741301993461267850063451695336893070141778926463835104736845849110492179927332432288070599466678105169846751926768632183028167200370679044853691138622017100275157700894616578130096683842245349907262113433828631707671559520618615863982809063996175433437571107614252496889611829499265407751079626646972625728150726388676195285392794666267189015955893399672535026029782336294788575312463390583883355377619616445565323107246616607009305181110277076091788335531691597985071514898372879506520241019505464253703286065397523194695317758115531872345540791737025953020535895375880470257880862478946836198473714057055980671194980856244222263868751589774369809341417219512057971775616371781241965778140027605149090932982132685884917815539739873714817453134160961345457770180565405781913234931616013702582887812224170678883942437315148534893664673764665448577609756908563838517182481554144590926811714422155899618777280854413041134369885312836805942578655226960189470302528868237117886338783852809045495141256978512719088870093237109660298636410299013862642452323894810930531678279310177881736471493992354656433949760134978874911773680911290015501426969976366584315091090138308470235425095557493114698193678583879119921784072741395142501747537542507712252306449959110937965072962633122288141322755460222071444806306804788334414896179452999636429063183413762874524380567383216391784330209630768595258499173829066586145615589189951644501364288778216868697884974991704536340778174555809910207613235825785401699610044920475307528477668663638369024062260063461862296423288517875633063328650058625768863893570624186485710693864067098581622961881360818887038749418495590848975407171751602895417794330051782304994973252465162152441661457187975253844880831400622960049934077305470785112670205139201351057453063071402147214408300899577899758988209683575712713847231693897901587206335862130224878244977058101016101865590798579540392233551296916789040562445105912616054691168746888760077884235168766845408017440210925038990327893815458785608905261477969357101174624938941971622992451077000875940601694731562871733281855403038146651240757837088246206240614584621672145136004489726224929323471614136538084866331161335211046820534832495577406654502044659995383566276566144252919085583820889011103184043282514453335431135901213637185176567614483317813862950867563308083119719328994607895425741628994324939200895718523377898260269109307072519489041639970936320127984263355033236141940378683209788154410305443143303686284824907352252149480868921212110905430340471979749946073237322579772340340225601559854474556480375183207199753713462988602677621823629476450824258161048119838804785801045301404043129494368505315082015281944660786632380446653710768836142116481711210921524753784786965831665678019063238587781404440434106973095553947621898003660895598091521705632800055659458036310731892599427303273088508019543673435415878541782929739612901610374546522134138521603422710011019415512621248889759543783706793816980700166339115417470512237503830289458616164767250684604198401547563792194144041805026562212887312990110757897225390065726941214617712613218388837592359661345388415209580011508050840865369623832463213900038612694094931125777053912094205999386015994285154834722818806583046866417961759871951381626425863340352676952225008590527258850694496715527967051764304009539889421562126423115836187409513079993723560915408010916690087194454736354811473231631027839722769215115359948104635725098439371250824526639522869978122137234979062508031390279463537036221266101056157611108763469423431702846577803702466218459564564440054937229220329963682120658058299087630578192167270394635790493593257904445733403401387163927435907593900229031770856093887510934786876729931318067866567698421349733606240350963713027985381794434638830743037280754971232947087803229946599302787181440392239469850502234138068180188256060796343648391094692555468918302503872217316442658445039292018594808268216574649411059614114190535665112196274499111050059499778687400051619955446934543343350524811990103664135500979408861211637309997616792218766410916347704242853481021142153285234407260442314886635999314732754336155264837824541367252254799492871319991796773129229736203644382000448220176285144795735561795819194150646136045539617958294022385278985131748059215357963039708221019966542129028643259567750873841878542750254839632456498544647733740242927940901111591927891970668875367796402638287873754061670737946267267046266867234533906471195660479785219909329217664896763845173704144852388772876306262212209241004119314916118452042553429962653596322705626998494439596975297025913433862955490908989573467653636949764705207257251167483827373642159438157856315212701366630382656521328957548288912127937551767078193323901043697519955312998072440716137799831351388397558419139248453274069740166986537581579427026750007430825017109213770797821066830621233965069381799099141783180536867826119459127150222989528064467474491947706196091158510238862641440404321686983986561399607882797669928481737319355394930268997791225041823658210522514862367506745028024394247024148699092258235707808921732145881090826582142527651423270459163250017228730384101385231210918211241529702383071771352643389372167050893204819309668385821759589919533491813607910000366667473210591305239283997518307639598965966680898484143461761210851275643409865319060297607052424173128865654509391677733985523581290712673373851426627150442379466444109656814991149332318162991143672001985909806435557113530332216634887744317061148473296166745708610115573576064150087584306920450071681385145761333240104522397721711302179716431429690096585136552007798358925741328092106570441508157886548186483713045509979428467556931907852230934260670842727830222394941840739329287549111312976223954477016064026674538936321373364948052074784002009764903385746688689890320301162415869824597952229230431358562854209180903960195381224912001787790791237480882766526523519010614728300978501847228980610360279839828471536758647667289970278632410835942109830694544688207964290799969112426629066691968932781913325578605697469862512990546389436428912514983626464342408752446186338550329671178553862408591882592744899427843754517824389380016382690527862355104891244072731904017074016092142823148029996235054466167261013681955933713380230421154935527090677469393507312376984283639542555230427088674234514850053228939120171933838642023015270235607371790330331642431732574807532414095263172864296437685354647882818409424861896291333571803333348740454122663646384251951483673124152505184859487410561252509006883983439031395629439912629894422075486833919232090874930581117562678647857688722542403555292214312503038238712890249072523201001805686140368567958907987238313162083517333242165835414532264519984587997047953919131801699446439232549234224763690936448151201367287989918353174511353288422919199888085401110283758493050219944903251631726843647786915342726684185681695478981411870998382369277458891687926452864459051936610127618252014724354778970387175333997931752601867547088950340753018476308326023786859772717065414330353096046863630032854002901982770683507205618837976214723920227813649549149950316261434618313339572220573457460664666427503068545676167946189817217795991033999347723760728766900397981602183513737102663913282885268826064442808452136704145308283054158246648191632966765909375944017626981382293323445203312231715592715113634366614271663966789233699354868486490285503698820813684496034555414577888466822382479881351425573549502270283078702661720913833416677281956682188342553524887029667057761644945286886784113454722095638793300778231876577623503127335878697893071649969071849777818595543233448042472968758320642013628058253042625293534763736786463222473795463657764731840268218199434334184405194791263033886598060425787208399366780325479212960862634799689937594372380688181936323931568290940380235199707345671661637367163944120590157383621937347988576711463562485926815252184974334995377579890122684370276151917418433553184878579552071826079866104431707798964369328109977158249742229565194142739867114486216779660367776046069336456711808084880808131587411723725234854328692483563625643664497811775926377180931613371353895601536323367170381286777648845903719312813001521495315225546023058114103891243849719052883124980990519805444714691513672149790240170873714731251318824667454203671532710947912652798738431663390277431759266824570861067197151739671521337485578261947186916454257000997936910082735102268541704524445533590031570952976571924939009197386966427570213875568671657029912081419422401955409413030217644237208901265518440442039893003934450648731397105200761986569536636934916470868945234970399240623851787122034100190246426554713857881101364688029671402436687755700335243646447612458152015689474546520155497724250897105490545258134232484275364992917500363041153965154878463191233070315413276040569883846317191118627060305762998123965022968933958042992007440865665121950697061449663545121443543821373497900645531137275550804622753470888587221614121856846961747192929104154931119534354328858302666804754096276732051235002158671077118226558428063729819594553989873009464546473832399431475433346928867928765916837129717944260106491008629995831068816834087165291529075622192032234894709810814829755361079723655458804484346818054448001662914149628727281041385898793259615408657931305654611724043019729226579544504124781662545688042972129536735629157395151284637768144219840109484406424613521641269197851788604899072922931060186389917092612956418260578705024643722499651536523965811838100620013447633816460809627572090734398018275476359519912806317905942243378000307424210487806812565956863233957626183940591073518502460966719755091347556723864700426131741668099454102455349390067875049550057218176572024163187643870424610121708199816199635963831517106541827649761690354333122713856870654408604555996701326142027821533857388703174609393607916177970944027263041228593494418232350361719865953868561738819223958420455220123470336790000903664714906390672485207335296778446206349445798803825854261314200195069137747047292209336388537547725057172682281711380982632584243776817726486532146758625221160928428796668559320920438971997370638629248227575933760373235014528285502265963623681361983344933309733767598931609048657056958667344847720980370134068887795558984481077589431122990720094720736614818140974497581373820987459804870675197967554681398489592425444071192877167477489815020661892789915111586735204420694246381384695394386927172766966574320005585250468136445120835155908158373075431073829311729770646906201392640389055132047282489911140273368803010146190586603157867241004828120739106687903848171649979249697143916535742722920510025509721562590093686946405911370867424361503907847170451100434480687712460788669580513430006678668877025490904537688106980553718838995463092914660977691512466026172339085721931592654673941988043377844031148658491576982972342715209870468998454534945576336950144294287148642555741691399659143106293035421862989084538331046933617352767555938435618495936429538921695742611077098343766076060415698204641263565523469485367281247592965470274263590587972191465923301387401987508359294628818506184182248448771435994448454924206977743781640040510402548588153953706435511977486079608084879009549749427799997708931252734100444390535711845814601551880825701606480589821649508617476947544374499352166137761447714475608233394720527150889607541018341764399206601343607600365343937284026918391477313751499391555857982769467524620548307073175536134759649164537634507056270051192165909902306491916669775880783127734853562609209746847960147264453372441748422180595515339226884313873895237317005047660949424713815519430036170819396711553028663238813193758215374726362756500358531732438609017980906335759952134707502094732655912091338754575736942861373493439889010917978938216189360325840198915717591465931707419168064639679337451068856750733376338314930530552820162019327041970000040663642697720861173639053776014145963995913544255014018509266264009911718514703429165505555738106637260021676724919196786692387091237635768060482774903170963748038162049227644305965298755608616063829644275308570841174002210607012573409404349000643506943231294655462007752564124485207755222110900022090758842377182128249114959704671109363802232594518383651482624338575001569751136070035452715218509316967148772986240241776572437240794202805507993105516146731061387801205600486847217790002966107221274137076082144327461504895466528804867944189704649379794162296320947785661122484658653478425184012894249444653465588284292895238969453959637135101815592418528600165275260623164462464207590786186901364817828341705208893192354458287755935327561648942449697534139045219202468654204228864158880318987063424944368192965829840098549944601051101514729709110985227769258232889614107959195648530949213839521021821755598314150603769654467422950880809975351084092581591159597720134770182880945172124197941149176589694384404883263013131057751462376249372966051269291229034639843009927665943651365954105615335310973765709526109349553667366198155926625747982654703673909516478988621279464901395494876752285880575006657047665248921109687902752916201724920891757315298526287403661055576402677004956219521181950506731606451935258805009862445867004193704610564421372496850352062116605019730404588862102435793885476791287406893863692034442514155733956518550612663677247625826453217048667834577544498104766877105132546146015358975708502938709445610646141928187377628826758316111217546036544325271240693372204227822650727843819205682375327493903017053669781337854699195621552991162836812851151985279657602086929160187238421379147676065799622789660647288525772346738622993486894669833010421291261821542948978825383464953804551830090699840083039143308782443789933084906763992392299852591020179032883895990941058607493771570062501397452556245574880583482098725165698821938468875854221077744827899011609237680763209639083585543369744546304831699787900743439229285229171731522761594234800162402887908081747020075726514313097378149423566673565114206604640284543324023446357907907071128591827283203594303286022852202664576668889309292307666304211852955786665819607506113043333583866757733340979134847662692749644083606906228076152567623623671387993585790184509073232615662626671513741076573963721107015080444155067560647239561526693591896277169958868019488020012663404696200002116574389985814211386478703361985238248442633266123344908083147776807203508692868156545908458016998976431326024685427105116548592858906448217236940370689335819086043397454489465149167926040974075942305331641605557711613943647476247814764606304451672197892862682254884455397016923044042010415291830105896635546224776054623053539060919613809010529623439613076594828625250200566693168086418765798308516130399364770376866537631417258910017237056051301734297337326438549338684737457007555650543252793712596721698950445530037410099000883987363968186078478569199759434954983147971150109889083090172401484504654656032339547632037656667982919388546846741231000962398517331976014794511978536848153671599224698493372028536879328499076094036436450891096047695953867380121963842907549484166573077743885715493809179580340191973426676012391177259782579047378898608337176637550793873057082854939022751311165564955341079202012460915072311882823473048321037486187039707872024756155246904017159268865060344796405685066434921513646801902778659841119270644743630655841933774207416233187483189195755227090380164300138576507587796595099013598413321094068925071429700579640720943341683084300028418210145840951396184490058760191091390628314973478921935910604140969624706793364370605735301350515924967785032508747552458655640687635306871844070330422924203093130468347242024617330949106993159648573039789556587403808819980392602108178041641305598127728399382447052593153323832953861668659869165951667716377371768744646651554589906035322138912440125100638148501393989795314712185704359405761390661854985765301623822751621044861772805139352803339487101863491283896328165202288520984294602075058523138340178687770974907316265458744657211952164474415833523684026027712586919413722585473582748229023968744627545194835916780685470569016649029503058021741136022421893929862922124530470494537727926404699251848843989335270550936155507499555730745559829633104290096920110177353901958022020103408028147889645624114522733817763257827799126626366497648392347152244884327585883980466163027005216196007896199218261028276500945497652578813097737141277401424919570199002152142652406602003167256471612021051048526052833407542105372935202933886809797795509856210111087545353388376124977933868080998658356368536821685407120080600939366115686315302226728099606412200846919551263908776753608555479035349014125256532056098025197081377767799717343383978781508200456837853113421651433247539101355413376714812039121464341517043326354939732584932984753183098241387316357804991427241911792388365523924306041863819030236433017066769299828814779428832888670146014967503918952859651850279513687784100287869612395968882484490462941916034746311356104066817367151815386823857486274713840795683549467245540082026599448865515359040921422806973550813051948672511865592848596934848273721157425321663167580914004429117115870543095660828453224969471202591236783729713642568577788884267279413737282091631858965577085364039301817528858653267489597061546552314851266154227655570566409316381074312852192527049445989229491708202844653037295850949379086442278202414350898217095223102312745319716410831165173705180719472444895478150109087054500375414744577175876238302432127630908539299714687370798449676043542606113502249458032338644319564555989163996961128419722405886974986279286691388671325055622721338525596976460448118194705723141872354873138900074872261273787378008199569321723668453948848655694107788460425261091515370097335866738801139412274771192873099103951089790932680170288063992110893494274272020188589814055777455857242255917185954416003044723423933585482303252092727829431763174904366734491598249248729388934210256921145555837442921465222443415043405559770468206355786291835359258695917865545517169401894157380391464742220968476703150117383964242959975968152153374528559535488196429240025479962437612156030820988344353248827332298202131328934747049273531503134089969254662037746098216563414887910336671551236897796437339400240295078901083753878084737803419894791396945258307036960241366665613054143100971957973055160891804963606850210740645591671996274037729094944112204076729079551480817668137744541664592725801282144020325704505330147866024060119915136116845134663875027823623842836772905540757698382784776460354917646306877534532116464856008860313952513123512951831662026413975227469308431049794609130355720742626575414870186734390811999946135334369927924816233003662592155705569053965275210439917296102265987188221919870759913270084397482259778338805116036283174687274648633802033905342037529861426725653734709856536129935413439986479892575330507908655975856540479618276962288089618718334651811692800679454169805372838090365337615991243873617839396464439589877640394659349828470622916487623681211689942943247395328906127449320908934205014018205595480858554669882610560849401033343377923331982865747272593347021224214940732517631327211150066443757434402181144472796927095020307733152789388762618997477484772871078142302562250785769158081266870068694037017911760103426055530677782935917217043932797582980644811454351447616111279168728979986685617592359621692736002910037326186905588981887006144700627968180459060978715463966986043513372793763347217945561388052377472343637189445949417257078282812777785653234002266441592275852913848922543926474827979198791340448353408250282944915124207945468902096737467667689473042363555628094076741452928641297553059909255348203587208427747784022610091627683379316536982121935463685689007153315775446565344204225772550206851258583614499067146422303426828636585505845449570553428110700245802490451238545713918009202102322187766579443715603022448732641797510051472155165074376872891084049513520213656986927882095959067533277740637417318557878797009373918256200895610276223671100514936911628101350964699026121829013544188082116737223022514676786824433532030939708003269457065402456532654847004889991041440977359362520620276141428780834766837593340813704634268900385410763499404914977747302091305089076415015659385147247760521831834578795623857331281729001879179888831812691577003217291301144712244488775914643746153701843926402546500734153733986242767334550418683083838393779465507842136704321440856825221818090955990953820138487084380429373954807163580605045003213991019420564795476216758396082753630444955777099674570154582665818172592662090478352645957033004115905654479318200580032338151553605648140192787292726003857676327126775848575285215936120876610899162436962352904809457878415009390394476677122713310743210173734580120188114457341658627567428143307228377657401923139448449491709365573201394779666710809289726950697010240193030374488271592917463567375076555186761009519962363543899382175385610698508611006236063942407985114172638513149819602584949851344621503810015164046821449049038511261620497216646725632481219441121323861681247457555934354581324174594108832857748043958215287328343984264360768380873744794498056777985034748066712242435881106734338876650947473228924449124470535170782282048618608534356798337958141947247132527249414226369784330407646559231737649456987590370053825060191483774423617156786721355224215277223020656028056408525700636158724492177370887755147328780997087708604469392475230137988990037463077607316122047391563273999358620482413921254234862782808931015873503049659265092613620467175994916007696540726037066001083580867239978434234870439167697778019297142591516981503640745347523416137854100548164906011429655112400756916976926728355958915038071965322531383391310759570868164686255215956312438597336615969906724817292487625093142356622129849846204730399480085011756707324323780689407471131910172412178843295090556704639752402394142921505283456093295908204797399624774966908477347881883549356083174921203611818781902575016286728791336425924674899350601007878050927357558285301777618488169199729700113495903330970920250892860862940527619228823555460065405512944930991309627943193978743706936468021616726796880296269551730538805974658234142649316116264779308542031147385507592741648717451702911295541465544091975315655383730152031841829409077325537831592617598408043300411678343392643284746706084531653585178338900962635169770017907806471573781214639257990985695926921409699343561662439694874187415362105966752868346381250734352184783243737630539722573046101391571066082380390583204463914687628125357622189723745963543285462398534009776272322895908578398234470451772145062771733210772776199497720468349818553288424520318604290018037726370069280804833136442368443581120979999503843224859555423355302459065217625902433089667116341654814494978099245580004907250084987732759722076329705982960262392303907708919369655866161011186098107843976049463685659921694890629666814894967832723565350907849719143900340687370963613958570886957789856360234963035912674569511399479889659271719883378290606508059712434866810383539156289997249219033086257651017018857768328190380477323938029888449913200772497561101798224723509071035507140097704983818559684118407437501332905036893201225800716003877542728627005334057037650181979007374204841286775261702691526833199338280248631611827606064372477087337626402693344954922271772967543496118519400262868715340617790386526485367429456368925922653860820449988913486862619304490600628073471724145232728308329990194680811219324166590568694921889382163131942346207078169107085621543576699728964546350723664903920592573630729215588207297926553604785328094137773621329479392123637300182532732360442471968728375510793751539886803202017495320772917432771970825209142604647512896471920698915522538233343248658095810787807769974679941146560918270715170968943697223077749922775784852052631408166569592852025657130836770925167682579728670970884391725193704153199821511451834198483234570399174535164072042119544216604518133086360152824006318414958500034310382100804370202094983689037658453054406179103028196213257079941555616420911923632673045374614063544915467351463722934744829199428460689547276105048164473872103428791521662434158932315246116471919050115842552683110324248780513743608408022068683957331865926418899591644399964437693872767229062692013999130286793511300989849712382706457280341899166313182857695373804402566386314462811572532781498957876292220651714911943414552780544395277332849476246195939619334693374135886573556171747620732120681690911611310675781957157638293687932743187341345892399553424939533138927050582441340967609476129966097957162705217369580066495059463332081970910420499612422897191600741421278053170785625159857890128477283733195607819697043034690222041320449607836204928770724147568589223151329872741034361239311864027735601813689491824172784101337647518694253398062427457810121681910151311236833197639219826264252607449234100681698428807853434449823967476302423979275290430415536514867417294745193736671493798107315632306154201727418145111417462382619760564249162364018863834826163210858314484819519683350304064926611190502800289449758804233245692153521754111695941122035179278597895834574700612333046322612786647244134056724663756717724472907714311245740390806263273560201935154042414016622374187031378331789790743830905740124515493280706350845232242526825297424347460349255600032094753902333592951525373017160453004831008387626308315248301795356063235545609602460639934099391167343118328351980754002383904459562063849595668828000774348825860172188086289210666486321118243368117159015355459765781822467760490623084938345440102643668474234096730399724899858919791927033024068241218091999241352563597922730286506665111148144784217290638006264601751012125776958776578360311954222993049272666049401378116266726261700126753601900016937121619198136086449121630636242481697526788626369160859091210385194508146216675541033515601041503775692992022456329313958244896497654537186498481651777559090125850377204036772102949944903367491086754761139060244832338262898861215111917137698076158392423029017559163051856664340875150600266906036782507002467342938644852863256501520427983025130893286316216173145362956117344783811643748746888074981918155548047314911921114702339231421840191474387779801165430630927050082765668872011000420939283012243267643324925134653440062742834073614316154965415966244536159785888148947997102684681017764062992422857310791739038211218496868035444791353272409410448607637971412443104753673353579779045959085464558584920395172320660749537637445133103840904473588848520217368823574599652858807394824232330857571125903761394955597962461000065321967844797772883408329577405600222209209556952279745517935200451180089596444488364186747702387587932213911519427838787982516812860340359877324325671779430774383127591767242739867950105054050679643197958175034118630202818967214013399244843551379485773635122028309480945568516678806729504444055550648846600496356290861772982687827218026598451710562787973211799218142791485267105390772565184500129680865781022895531115387289240321377452766183510398745758254865284483069036446595314468250650952783764292169062415854433679356204562625545688121493132019114584805906430719970047686681089820826009433500573078352461502497230009328868315462786465873966178637258022658326166298680089538941681646807506286214839969474798190967922732839690815456779255683889873611979216485066094247208392835557182890872954061404320449560249880070960911534114917099423680356097057516803843218522634291544486184856778307034334925472143578912654418846772221664662753127596544047316169270283979069616158341096435458132334379161790264565213402648531719519980137042778706891646945497805024145227751441092905055272550214053469715996475021589949246380963194905826649593770504777014505855410388234094274455651190531900986615923538805846029879396356417496403908314467954886991527369600035144477144210613034877020123644487760134144028555732960035012922830582925265181517096276021472610588475226206798742382033963652104202646574751692374137382947940365982232083107033819802873871853520763333547750912040939975753100695708319810034773719108815962738831655098698135596702187113977208510803423215687571519807529017250933572757959712023375248586698342469062156070107736170577710224242705139967698317139120593581479225937040575396558971621136344603259769731132397889278243383561417336950890830785268133184725780839203746783786878279998743729062023280383162066548632799969895624457337855574891084369825489014474493059038951883077706021658660579053606724645119313642708251800763518512636222909884433214537198820602902884732462159781356558219508440142988445249824428018434069727814664694364545802439842614662863451329327558661167481816994859233939410053334129932387114029402319919171211019383488246406033536620658917679452268466170251742350832020196546966311822297203377161624372189670835278957446870990447008919559722485284577397959494305005440383589228484872542588988440928157675602089987788506317094971315423914502765422651682234739139618697710587522680384856445006438751132005168986607774936610435339865055597791075099608205984037643147232575302952161589560172274464112235598513419482424557652198771248557696906590647620672981393469876835541311801814111739278312341886979077353255020377807734335624990388091773117711291651742806886511770071156730949000184546296505895735063092323403851094149817320529566149396681153678399357273479469222001131613691874502703587674139948103014660839026318304308474582742752726971735574607469753507139650560647341398665920879825084928201220376522191562602909850446184359920759414367769375713926650821204695243025204286913767541298085680563398445419871131560995832272031018196031753379980019129005547633203699170350373929863443382921803015368699469253254269862270567386609859234008427757770533815323330383614745450199570386943719426616021141565319421179447389431443211344343869475533437120362519385267821085053896535819873885885723678067983421240656453884928400237509997463058629857218766762530007850491822681172132978163279170493109032430317488834327071088445357913572893510259585948530004247233662354125996427992782164193667718147942564984040182044191218170644814369109886648931997966548776389479532112152910575156077849268026049416728341039784354680107955422634642830125796761626205921840018619268379976371154293796742287765281054385573452681011994797849132180992028527173006656440039250669240376378315440262140600277067697161820025846856362505446524086883749183770774821678264456941916783603240446975932077793766566925804558510189908996242237852331531730258711082253234075846158458583006785005649931409572177653949530497154748404004959059440677243007454868183630656152449413469984366740226552885100191611459505115100091644458015936530448100750781951056116978605663435233597583750693774514116314575199901007570557180426808860325694565519642165366987484906566367905360153583802750919215107562553282670779969559121615401304689886831983404689423776651490351640740672403755109361861523632375868650056672372561172109229103926574644493054121971312615020428529039552094073576798693354993192405668254787042350665266796114134208049978877691939900808783900491461008415388885094382396427020395052439854234916707951597406874348565049038475439621407829784854546385071915181971381172533602268425842723098418991753674824922990723197313116780425230990512760369448640975392268827565122621595471106027605366717035945786310428853775519904540228108199837904094927399859706874168014503652765072565257051610730940114663412555457025059037369391076428038774480797537024385790973576570819036047628300806108703333847496497531487651195569212265383016231438905980194503200315558240203494596454658356068971924073839935513708354379431914745279667689752928036322028321234875356606869559637308131832828426888655382819528959215488308143838682686459113774630244273647607126762522251660291690583977545534160472233682621135149577847570026915252251118244193283064897136761657445427122582512790512249031352712546614115222595558774757610396321452319944417876181769476732199698537153628462840276901275047571217952063315297728600849736320659524169932183323720349570540237812952960016165830284843082463461219886580864810688828566577180545935144812329747747366166366800390538617733739811018975583874190578854576023753707204345543430370374640212826902525127455158146142456273879752727302278106314085154217311402170551126207538163513615947475495443958090709991335626439867140862564613881347383996056479204103931197783751292386396494382683480127595434783083593776794425028986371722894637741583895976270012333051259004111664767736404335432214694333807803597325815491567702633204891777198873550897276198373435106413506708145427846433620355529459880848822019348174233303865858391042524949274785181675135150353673630023848370068282275254764811668869449495335031593701142631668792890348655604643220492652965316857198346661348029878890341047533746370946850427834638878231008065000738642183356267302700558581438126403532474031662695726583758993220703981516254497394207784754532172757288988155126765504471947997486307115960388645582784872361901085642937859522012705635269857890167102761177661229586836141928864405834170586535747738385752706162163770239224332795681973371650659044391582853753701464576530906784135845477701515544592730483446528799018754712214963656792337401078653388980448943076537548087722629639281740797738942914140441669975475795956428199638688614842882602300588909868087637136421745006474391317936085788646166710935381489829883896101813978712871187553700610046048920011708640590430945155351984972825381002423332729854485233616149466493727932130989759883134082032984755653143250111008346731145963554356081218250762871082871928858826964837383504752758322001784177370317192906585480504157822187187674072276314867151555847895347432310242223160759117040577260357240261841916835950842615790460122044823413124954697934963421864095546877310902630638759949483580265828382776472663346414572623786097121448013804952559096730919544556880010363257498801743531754976411485475269635861864434355955480019127084623025907501125784274704337388553124972457800064721413807454351918989987844172775979975891225275041056115494988434613541905480148058602324414299046860591547773011778259563014461634485422448115533852251666313542892864479351811820857972682865710390098153798478603619790039836668270806227639649924395615734579823434107050380930386344132254620408919439912355516318983782905038714778515199341214412769652391549225615278432568771173778929980624003967423021317708502446440757956197197861624201471403355463339121138914682455608110197344076248460536228704302572954068646978336587704155633255360271563703449681978955943872680164575927100887536374436953388549467207483120314448723526962436776942751998656577078678798065236536171744364918178929989021394447057369917787464392319988135137730151423899511372153735235098356493070454530360602989311915904678340807999860697086252674254813429282497624610027433377306945390039060578952890548471231220139554903708510090731353378895008555517340056821826837490525348234982146365563286016696998229047975765796277956154305437378315068811414952084625002545597237030203102418462662415399055339367272760038658460964830536720871113949461395296967728954197663697798424470275415874604551422795329471106831736724707521008970229781018886364954326861471641578608820810025589891797777230521743684855750873123692841219492816198708385956544339956958335777096722569572250987213012820726358640740424844826365820395270201029582765885961186547106816724249372128031386039194833674198347569255313308557398336269442652731255178504243993387019062915132842099832842094954775215480663745635642723781976960659260004482457105634431738896250152553577673408361594570904875102212872934705578592358307280760242170005773092333226433477196715427578220076737163153929042568301374722895128065659460092026987856354548875524755087659473250223328276625941744623728884898802410947361608961330202594223828880799915704732296515604117209966359150846558188063935905703598720742261669898898128544028568725160100905793493175389456897409225710048194618946528337014682417067344703656576579379713982646872174221554786831212374746970189953207491852480385112174086472834897152661312275138583564436023199063857404363443175439593256941111000737094317606521113227964116663957211278943684026715177207010597009669651977227583435986627712262003974025217152751149332081230667421467892996741106414972899353705743089898783263405298762561139235393281773520001184006954849630879471986489845247034021348406135163066964402964616605178288640673903871461270555473301979943287199767745162077523451236657710124647352476098331361458801557923360331555756563056605961734961701828824712630924583398878050796165242688557451084053812411705399225589382188491021295282509294375924282372984273071520870032024227660529690100734465461926577990380178263365088453858440127029904004254221663690777804461538681350645965489636029040272579204944626457311862479079292627540147088452210997302736552953767755338112213882375260182063012734845131781570831903192926657962448714351442450996174190847049532054210173532684147049888480207115514968676288679786761859343574791282675266655840967254431888443318165006246385092936057538517762437777581667333640150730957414111604758016375274572790335326622275466079688928657869839092706721190309632021318270934908318843540266208889159218745257878863148935216092531244319635770503771956375644284222139408261186866965625020581638298279964464640413176070207347770817752316072594203763672904753721216390321171896229893652489714520003884695972299738744110161134312142888456714458653872790102204307621161668814617711773807750803235827577589685232643427916592837235138406657860441359014992711939713840517334408340256534761485536223219076676638936151960089988885178076047687655315714694908697763004634029495029347507240075422544679757880094258926468776227601636075827455463146108374025476184175212317008409726905870997862489533444941008985612177293070392414017536007259840416476595891677838483547097313214790290914140897400148727931404784205145423504530168730050908104988179920083715739921918321236339365094720166641581822750240237956108002387105947528343738491007488536896755389658203924882013434417512591881090621638818552818484674488259420395108802076669355431598250238982206700425731576324170233584550178877328662411141678685200191912407167017172722394242588539379990301714185131465712768020899772784041341799337304595099261521087978623056715447705787803220488186358275410573162543968803747084136835272137325502403880954528941033220195737670578734269003338338731945410484554337213680045709762482181170646967686263732305421553239376533004235146952569984803406013751990765698280867193513430175103537293385742964768853873926331807261236456342711397369406534245939914286336391999268470701932248253090674998950997730075016426582392224914058759185805693220249429883329726212194080814287969037449149485858378757433783038861784443731005802112349121117331200373664794957659827007322615224108303056392642292992494218009459865139146807202974993366216984701913814782038922110973259833625409335878760814697937798844630804161611913639917298821811835281685091432648778666109589030624425713773157252248257119775209343033532969578668303117264475108419570534782433740247754648435030163261218702993088321084413264502910683103434817810992534053036136441820990755984660977937820881770437136373747522624707669075104239537240655523423301804160845968249227566817243403345435571121217441316820891164517076057510830071135216850817436272779961949170664004576076830593209608515435639258752355719991113795869167728319643743872847864246320780113901292592467131740725771374990524042722263946702591269827444604395565740007362157629209622206522800446297029988822246295859469341494957938204969557353412082725879094576907321954058254164282826234703026324574134316058084585661159856874471072215455639562338398863333236915563436355641598173183672461342481265728148382844371410172438970098654126162488176941204051770572122672061776529338936702300409596786773424660117484175365540040164368581313904546845207370332424662880436123874115933430585609129732774674004203818051884730077588159520578841877305566652239273064465346780958800136807110441370819374961915573518836229483794742383523996206789977402391876375642810145884706527298669396763726437366404347338480133817901540251964882969517218033270305824819007996154794521711918355058942251836826013866721972235716782124836750568339173432862234800426362693477586853365524087451400972778116053705043368969596498605477930098032884112503603077047137165986286295746781017024000161975182358229578777265086824911173507166218592762020445202590926403105935521507130737464387466063922223446528684629331548001763295665127690836309284792277627209415709950300863318282407555761849174390688844446686903728128716403849238991195237672812838724948602019477825659222827260224855148067385939427216111958507206917106053807894957769554169473968965809947772885607456944604386696409486431494274867565576574708360848002964284666342391371610155212657740165878040419508485052512826470408250743814636907515117030064899133219684315811671715527176931520817558783288177771206132585351293052334521458632856911630398517475279248468484088472834316194415247579422249290135067022555608392421378991336942951017823999900555591895451492866058069540918725456545861366194612774613955877476704186118171453783142065325217237686039699450916949454359195307600818547565709126694068409800584890626157519884620988117456781563321029110060565846946757823702812264316795598076962597898405594218827304872439974080771105568945003695252457995561471825449113449729277205699473547069483489408756822971971024290245725234510174504892567686820481522644071681827099825437639194390479767389881330510828935197180016076043362360596332315639366882380475784871532488101310249077777857050726406544190798912454364444176298696117419634464067728569943133627399529173073604515773516709457195718762106749873636077865222912363593862165708784858468965756474122461306213478487773784657922505943786977655202410912528232902008311398422308377306616528963675686123565355354322056193341089289270831771335354866564464676877692025099136919033131262084175440399330320993870182697751966601519657705842356085966504678050326193801774061830001810891703309691946849289578170651523842321482431790644704418193474610689122500292302865291814276954387271358235458624264239902563799134019802789970206268847423572945998956264555837053441670938591228393088898524859112436997382075371534295642840800240602376494276585301171953295694642614765442276569445027703667108221144344828288445523213177232502130540884868836537373792015835588620245215491375435210785831760424367562208011546261708716469076095117111213178179766116475828162659045611848607562766629916484070185690925837755940740028180960140989066999941439369205305155146099267130006071489120045840300384395562660142055466535684947295416442930888406571072955602091696408370377623823486497968246048077434156288479622371641159509268446831500353580230694514118078971584375664088098774348359711225597773615685563445241012153601278349019352190704556364576438199101101184827717073977491600377502469183641875262211860380707489345179367577299459028398430124251150097343987410304770439486446689731885048943836508601171733729285935972006570201834403787263217867444437352545242415941366219261472886289702943223209784402740871055127094044611697267102104971624373661071295282823497804796230685556232721976941289239773154402685641447902244268898393941924101073049251329981609795692737249581747107592308499378149807950816445653598930344268759311284037856181862458164384982972289559044856427871646837929092543903037852485939229267735808086446109297758551187945157787975972806992793132788787709492056067747432900626043324475713357744633871270136008066346610801454716788006858048676044925117714606018659301044221834007495246308754182241847608252657181806868990234826394767841330474926618874877745647300195165558284002515027218362839773251498284605291943398486668432569078073603720814087303166243665233121707394655787880312172531804922199943958222631821583304748809001339675263095644269877484097845168754784031687831191175306679918228566061636370917124206639252358283624651406563607869555988313171409222364811270538045530443752608403668371474389597148728386840582073586017242754692290694420247839761240270984590465800828547849417588550278187663125537465126089487181448146224707210415137899700810436283442568957947745739597477907159876930088823181373914212789405447124726030105113704451803477449780543335409611405358716694375006765276826576068057494254053416084190982202533136887811591872212535253259793144540501972959218263555369077782942042136493513494199216446452063055653220517307149126014758704819113994137342088228620944431813399014158939403333924272800509306558957983975561531918355489722869176182497146521029505859990220134713400597653506399766312083004929944293197725817209273230050666517173642718174415621770869426007046846386523945198396721587298313363723642681023925949710521637420663376072826996910453252273283486622680163308106806206072981696608852363772637056674520851013309985823408657511466447630376027197932118157964935236215390481258878729022976450492256097733232693223865975863483388603024392733849136919746945067695831438501780433707477077741298412245655818754574202899552704240319397928560741959754076588947550597884133391235827026221470549618881555337662364381723031684574244438513091040599597124797080422491250547045913472891902316675307710453792737355761529722962357598487526255423918253015314719284936108810135985656001859437992949462178383062669392446759056700227038906027295600173310714583306245932567491208390974636542238029229858082818872313567796979833402274539559097503435851075594923039312046282420406634031332754148524612328672551653164698336398898552995092629763136628466859579023482747306045575439166686633682643589258019199411822754901240653327097458015770201577109801150766420978751358072518675493704314331472692079457109580603920756822005756197302832747980737608441155126257426690962629643201302709609945544272746020220078894700758959928888101252447786613933388507980807291565860473545075912961054919024119305695659883823988453981095531459019128912556583117794587736972499125233469898324309698735390069762236665234615250840867356012548255611702455357810744940457093944927638956423859933035748664245038370143991652129653988878535724493376073035320763327421679975032661234840917938558758686345069346735271997351231307729583759584823719573557281846736875945122793872431357818951584093097713645653917949019872995769246807010560368947498379374354557625003736077724709624058293605974964885286878627252964011676852329317654801578608895830989511297748755468758842659467120438674726864141035290726037252486467104147424562525512285821288334983224923216112211563069487443308365810350830135318405349038718494405430666095955418330433040372265756694958828011827695226225364504956904988877769587880913110156590157443973650058931137977684030337556838452915516033132024199090951639506975123807964205092521258958825276163815053097690897958360229533794196154909161981638014760709472874088938151866306782419685124936895220364299008105515588806114319795537432766254578184790486252793043240412893503630139020221784491489351622388515245533455811079506874281772052962071316747971997072825419759094812697981090064933841298881556021010818424792421245697326746116824337126133385351776095667174403125281660196052551235518653343339475212618055209570592423688945165217269202934717621516139805058801936802426400522514613115861596835219362175541254505646883227669974221724297800437321917488478498771802332800358024651341883991780485548587016259431033953023788425371871895314103082671429477280098466146450566540408829402776528177213945948704233329339822262781193210347901447295299567451893787218716889631179009983913575809178093623455098679675577598972740319119093670821007829058274641277853822119989927218911561112733518018418114986601025765071128136074202677992363817955108443978422616595308662341308962894641502835445065753299822131948672099275596501062263581581480712650389688408353738834990414671162254492007308641929382263495168760779548212269539110604967140149479912445137107338657262490773572596963706380958793059667244939551389787516442251506985627607236009265079127245826973232518970240277038149530208893024045302993390449682795895131321623287637434744486196799592072406890506621932664316251542894591962042465560562579008709746113397379457098502068190668720929139922059007871144262441542825145523168376520932338111699411019458034909316165717479706207035637381808259340522638187479587979323237565061430503983000773160879302443700436907601780513865275031528226523564545195271126698278142964544442637890933705367413133657278883145071413685735178520557508534784796409047644697946190072435569929828165847741924753792537411126737347727205244228207486011158088047220135371354084786090494823226316031407862182229812322767808508786298579357028480096396943573577882506085930350769712195243972204824070489917970633622327732410783369091230133786798286673103983940757883661899778935610864111922313547026013100634443304586731716646682687188375372199875225333307773727171258046405063349477953815758088897405724922450987038824481272737015963519672308571156902316342867443610457798244553391229854874080067436246787162628977404179687388125984335949233087589611030285400900553360351493981633992820427333454323371526584174275835242461825526795196689869007592349596296002969075899387144680798924766586442030148749742359419773946214596846563973438736945344005213705363724417729565160219663487117405096886872394022253580833804132805455111843964390974057980602568411750075905290713654666301009985749885500798928784756568125039964366432251332969881877644733661257317226885684408921310513603658818197152507675033539346328358114693426906547777382297469117622602152825164674067585816735827897928595395394653973986510386532567644353410814170538930135221269144794758964432786751148274897539226640188663153579297922358830321856196758702228188416073780125816214269893253403039705329507443200270701359242637738648243079506626007186669862726167452194808407345008446039469384529772005467604505071953622370145386415131723363906696414105249711984339221884576921176202282082865307741763110641869004039541811384318037451639164991033892724436213721281166727114260686143782506517836470689657452945295222518197803187269130154409969591269622265327415185725860332036321647121231113954432765686351566845887437901988577179768635493317038102078860854561538211479176030742752424386621794324634876692169144790754141186900465505586001537783559866463717300859209156234438303951628666769166082955159051073846046920902629633918629404791522214211089979967084619578050273573824300618089691811934299675752398072607801729571749864841824144415841547546245488806418134368868437069886801896859432991366427607531827290858573753155679123370556799355162688391360845440725849046566656718653757080679012521823596844261170290345199558684686227571245267618472306006967134163054366439324216789613135937493447322270721480289872921038410378404166009995232713272082923004979551527337983058073212126145876989536069828570108777977199151103208936289190861932939729810012014635507602141530692620352953796821498716067464490268926713297841198949169967910712765066949742891438598777210086036043197333858359205759674363172582785424741271643297496991655206781277300484509295265275417645341813996990861510567551922418647418417533077662007501006311736232604949046871227282894447895842189500258153254594553987482163852832248414031485254344474670887801361120225747447058437636450176781354711687606834491069586547480496562988258151374046346024114825991565998088530564560589633916081022683799584097237608975147212701425673149022335234690801754150722333640248438995938290018592146417913463800516055315170460659015676414597416546007725192903952630792178721008222439119346106742781566725644616497732545437247471061496495717679328870282859198846392827683077985298137467388233105675694466693230959898980904397231749364310094825348185212279666547805606356677911059678829336492553468977132295986717101031293901839345104544232549250666090623644146380617437579831682262179008670373714564374910269667083025713318759955029136249559389232715299245203759818214063774495748354029699267676147790096660900496534852051877295765040718046521062764305526670015152302962396952155889987416060570407996146494071402404523907780100801324495836689919823921701507026965763734247695990670851749190803693371713042721553223321942032044862530357429642743561342543309581858557908227904013307974808365876204937586032535755370505852720868099417651753835497829526323252737090269776043300022306756425633430370536646554519554524373825958700101290533881984228756216010189230753647231377791544518038547295441228941811675739031028180741495641465580658773688918490522059054264837558861796813673683102275604791433444106288478106698824226763438208089720652114550922292795678177183844889273800511594499860393272331600334421757087160046724752294395076280587582208292311284554811720968860973168093242753533362269428657550439484019296037836718240609428006738442349500847408489269179157645342859819343533121782124632074555218132056176624030852044971938462402791063063716399357603872562697577316102946317622169391159987296345222760233368217624220067358386629853522809965577544764563733212627954557017250182436554057392732701726772673152127271424615669777695373404122150136872575299599886352520538556424843671309385683718710523983944583108550782791079306097192384216856515476126348892182301097750868748902381972006490598939020363357877837416371291127385859551048531774716236151362189690051584493791090897811789565148780271735185850219962193500727225413472004151672358491694731124839531197308148445321592165441751682307395214187263425002405394805415268104614703496266684547850066600290865922494430467504459959076528356653126319763158880223295000689338275799557507392925237467264749027076225506376666987196760772287996584592447937929611239707762822540256687767859314931162350122242309618321045372177858587951267185655854661704598285500523627997842295866489742756580355580544920374748063656249068563497319255635413200786986993554996223461761569048405551037961838902800173792429811253143872867759794433453949365142795161921035398375981843629403355453551528192258210591488353235553354827406337630465384252185804805529028288927415918804727518806753376587354389608623140285466753912189936748986216756046402895734660511165251363127388955086205103832371934794309806194049517541432303553230709948037283053167402990427867746176542308889637975396656274402132850803456318652396546923983807560900480067873030764940120319903961200434058745166163374408120424960574181138553660513401208778859000458648910746889784459228534943094719470118076249023802665373254236512221530780113354158538640870920502895597958031957382118851231147727538995392482552971483414244181698336504715943018589265357195830741620329848843332949212886461923746257036287871307692096479534199287776503367020857775544795602830872324407295302607269988209891762576100500596537794317441488385000126497504401873616729489130297161733373265617713322060526578131479419973568082272253883493076340242071288687365206091673295572966680826309793463362697632445271785533693104725623704364520499836252598089867719586459314285138556611843964134697070013285914728392503712007926266638798721206676267852050080722019451913286827859107765454695131616582394582953447923985582059808037413285259021164547260672271629850989218550752136783204014389740578824909250933444337657039877936919297543375003710868246661985908800540544295149005646384379891484174579416432693379803511526709202963249335765250753856606199812482277703924613541176730168417897120712078500972541380814428995552745941339221205455396793590787671509090860523284119434217830695305949512297575370826665558294312378131204119714438510508226727566453576002026313838679502256681076578703991902294698784713842340003051446230017410427622769122675689697509811184442377659491086445843268934696860450763810175422512474363494249737663308453713978353671339482036175402603427440994116310211725725972187741499444480082732481464065330954614722097812611073711267457945365274881952610196175999794353965411968547143289320219336409951975467894712585319026441856838153487123560482607016801048894247383496508085847340486888879653157835237295165829546857866836912038187688294454884859257942419034423851922630047760866777006952203241593995221400763630513347587340965740350307896801869474564809837145058955325232386485310110342227944160640028037914290101309883704184585232726335956079267359829350397050025646748976200361573369657408847600360898421525570306521098931663172450712527571223917317097198757564599415169012599035644732336310471890663376185239526876723036224378262183109863647122360704846064650308490775518118251307293953392621246510929406959779148375796292410664784303749441598471255503043830404592559050211782445306870306577895490247735126720413682692645837432722988938307161221137202788317808841476686666747140959833962192177168276441083291823796228644911456540474093067843771894607623797768259012001092731412360545467514922833632125974363564334543342363690402181189086350837787251344568629061152115256375661745763076875835669253444622958593300260026521278612409375185945269860260086655116972518482284683302456503915911823360270204759889426168663990855264029720347283346470604185856169740935183561804347007807199122215888202289242624648896838653279341847460736943111313921320827497593510269580938515245547667626004503089201239820953724825158400543630335607590381285185020162555790112483198048345991052913764915421322448265072607493740818748574536114956477911263620412721536064553082751017287716394381746044569138379522616001717255818950780631065379467067383596551777235379083394343789048879191423788520009125933213141444670594869402355336859332425840321833252456479521415218605368247358332851082787086174593615550960154184514481742926568891517770444185339436869027520436030916950325831328442248330444359420460177352561383485303551859275045137504864715949927078122588930740806487940178485332431957202379930493641647985985077736323248381027925978008206952212712232289395072561437236534348195084719570427317155940674846003967322005616254593591361847615521082011555391532143844238937043691071846213790815610486348310315831458641588384627761211303432797269270073751020375990086141301054758954320631810317688212528301720807714079546766794840436530228415447070510189971369238397141341064158492362366422592272054818484115203784268578675599484148685954004557568731124170891702299566185094423595906492302536202241588196844082451542777938357453149633877935803510403240972965145739860623668980524477018066658475808590547220500757649533166330005402674103723832830361120928265313775791335815414527833171804076729161043825526905738829567457281726471267458927188987950420762924541076981642388212588476403439180111737190297162310608305073209879001448388624410322842310149918054654606876687217241954029853634764206095081341922137768924913692708048081105680481494817909010822342849322910459142759592601848870390174820946722656216376432683606107002530510378520750497329363414438860069401797262288316377826683435600438061650429591301078825765675548073481831809909328638426121118102506144078500033574600023583710709950666190307167720166672657412704219608169680221269537556188744940466881433487562238108855491115285747018669386093128544059949534861105432642155715550911226817596564765076826971568670770748691613803098211473853676894695434411825505409407138510234563813673316841807208728926761004045010519364012742130861922381945807673247511936566233934062585604447650930045594807638835689571918479249130948553514336897825340828853264861792940936030613827868992929259303714193678313461798191757069385242660904045746968941184153102611389805907998553846019292789965958090264772876486280786418946561092815366071993228940020907512495072231955384501446938306044568366598509790022361478534635429056422628797815685910218849547697713906628704009834551858827691308199450096073811776471138834429906071043787018263255150835229933361323148435490529489299621693070093169790915316617679869092360646166603980625906123173091938509288708581693161993286923825280332824507498767102274052973200126247676175897126341924786448285540010952522913926715452109975068847512372039435280853505016196296513028385632489446336902523493748557006224133666852760031300568976812358534524729934310263191148256069748328611552900033405672649613037205200679241218973975812465114313820783213282400332854172947913086724466480180062730677765707249790334324849338561746347404546583188362196849975980463314355601568157834022709955303699108724714821722670829486289602546317425756016351434877058295126334570079955665123667304604529647401561393432743846035460338230595984785939688876372371716193031622369670163084863909269587055372434547196940828914536445872692114420248063079472521190604937950884140285551518263430792863101836819850789336113139829511076289277850098869638689670318164870277945889052828119069531321366081618306015408011314225452791241623235772073131460703966492746555978169602168434656565215530012618128243301577695696917860599782299982372701593660688454032835936280320781460538442975218817959640343994605618773573075383694230916619479925917876043713986958011984647317468002499743425876683455604183301733215898670629364980940940360865404169900679103047867126748173516779794976092872007505145363677789785925804334744069654789661574188158626742618582683521148085551638160549751382414159010826155866981171615043729111687377096284391276347117472392141979556932825753991693982923997111116310241623707574458607443867058964735124378563670042624761485885698897358791813848649059280195309802551107987652516630791720760206458137799658880146174128148175686614587431913372082286845036529170700274351636132418580445220935162359755241222401114229193035461717461797781977620436946058288399456788470281988108186297744691360538687035462258313090071353887439948458211033295388577757396211223530666246266126547912838372113902184363040989522678909183165536312648692240340930869540415826197062911978829797243640865191861117114544236306198948879720706507816790784123063246438426105643064416734476927974457729099413894425892793211035254826295659582979851924824939711584023530591556730889234873550647511706870804289464389229796910641716773650995729308368729402271514155077144212381010708840044972799160764451582367599603064230564035011127369343661926557934101082527462532388793769350039460901396808788771267102384604820497223279099866809815296116000566619963119302234577545597438419430540265924300963797815520733858105078114121079515050832437609289437321384669857085440200152003383813789312017409060863421857214143515055766230322656056355714425704126010813255800061524040575555536364829147623463053138869335092372965920138781144111306776609311297699652329341505929279268824718781261647705738118831784926172098403559108095979927285200368974820624055015433520688318332684206086126194250625173522043440413913792315715325891685880777725977943970410278495567212455240340577268642801266069290949143147495503531378367998580020067953567551996163378865489864072051615320578881359987060524777659603994999917013071380809169752267136109409588976233442664355279065452781472746953439807407946544751719343456046262347221644968022245427097350783673238084122117434535846250565454540564158540856613196088361837085089982583063956817018539294184478345922736409549623489956983868240307545107423609352209651966488266906092046075282825771611054511672597872749880431408085531848638896406180728837830517986874678287437194459214765912053330355039956718645717196748030511614279217102830332262406347135254950993330599626384793669588781392094135569466873690687512517089932273461806010352186281069142800664767954287939995739548369700868015398096829097869636010914938596810919711093185069576942184849745721198603304936776404872228545145641749551065230120466195277306481705031571935947103945687883863354313496344782600280965307704442435533426589436969329202193258442819971714579487578115559387875722712961147349913729168247076380846996083476322020041083147065010596498934666877679164186827739876827172395944578871521307704108282756454559992737952706742504828629916670396359076643855944732493142782575903460785850035079559508797512078747592476898243335549110612340429302674956847115285269074566513082491778787777147813431202494756066476064130328552103623908379226617957737192757050053764768596953326296854939858755688323298564713593836827170609456111728075635964479944323639470955665655500160196317359638333053246055399062212498158740166526258720603283126091506103021956107003375800436994791650916874009988002355113769099292926478298644666120603835351770538064650565050972037699110993022324224511610875029446359759773241712223441318350483018769689990122306501658529410296905263474851593454677624681967524913786609632540927333044659376469428547503350770274161788561986153320099333387773846656914432553534335439685276809217811845827421544727147878740832311184961534062315021753012253286185913904377173214383501976127752733912849320157735969411956999229181303986302426457720464212666626990949600918116277379178360680034245689641627672737845792576893583860851562337878190991520257199809881889856063554695917344228403915331874228342202704967250207663449635185809168151948620255417726684781051109006259284114203770450121150097272234613722434373711933876395082787306844804421602359341362474938679092634112103778492045871534077387749449591696774922286201457381259534048621063348520856115789467119437145843917718665746353823270298581189866470060452995395725480766214882873103694877781243353225513039068352975355320551160575815529234341080696151379491068432352764064228646319386250423098376415388209022598348284798923702774289755524573071604422602885622799695355853949931902537954246351348802887528542058924943415005986226389256390252345157396308835139719226508447032482830995609797971326312684688606146289930572086599448984997510003872699449304192882443899961080283167678185437048943109343746287198130424997173199350276785633650724370061307244955063660474202341758010841328348696982324090080949424512494792069230656243781840005864052025425016032227310264544611422707756745057204545246693653139864630832051908122919739585708166396928211440241124437626079680626429165060095890338042101539724407637144845842059657168814051068158895395997370551188998129834358066916003486634051774547928406741348699354065236825363197396488051208104269151375557263802327532623484231357402110529867244967291428965005870825662495746796628365449676833646192073490603894868224436251672090880454607705352740012886478629630765643803862640918752914245421865993591915552620109452935154329226979656563850820760333340833750604682480191308702457501603106616520994936273809529738263420240195494052381006129499081769893205200790341563335046426622645954133165792760063840859456649140864001742553019282300001060705802441121889570412475851225009552959316429316837431767038011652774557649371677593398269699634903064655672238666619663052582846272198113410489812110335652777999627602531774226737149741678293671709774003687225157662685670507730557240496634927142887250262450677072442534039183301222687912929711729256955737096931559525115521427442307850232126292469029738231953025483985052046671964606630680362705557014295393557224950870738846940724767049258834578271622014014203392204117065432478825605065012792173709254906813934124822263003415460726602721792783758642399828647381917906205900532090989272274880114464732318066942330103199157812615367173411928575491648941847270125539314567663128673002744758309725938900555945757438760776604131785326196709229825489018169750562755563965529821964631438427159290782534510393904297460746789359231944973419078069061253222483686846135846882798230132852253553420505476413372202882165021331290630159765637588164490259328196525539330154872568466344025637381549408695246997827568021041548477219930218140157956931792300517179106772506597419551540202928036498486451142538267526785916699604816963524165288414007340571124341585814703617359212202098087615704229112781619581500133944263285778850369480105394194493434429850717649851725646576997915729621190510682820494682693333810955084768784410639210561138337417169621589347564523187603777106674057729611884583345087709551388315675080634465747136261008557193993681289948277919513693764232658038860297729049515871960721280757570915071445716531466226420047854587339764547344992086001045520516848453173192913831891236029261238328513313752133664387242316545834622910821470197026096187432272648766928110475458967096159003283887220430673175415498569545375699736132988248613551195607979075532460803679262636235826011888915646396151420862610402953024130663129519763661693393104670767007454031777456378819586250119999846858116807664199580746043550767441065183690262981385144908075690972976915568816822651050071333445938093894589616669954072617624490076194676249051661536734973482251736924172214699878468024274042768055737425540514233288438332412640373162080473056870772206801721229552022529477744575541311990547351655448506546207298670376120449126568278258997478768592560089391573715134913528064092096068572338712834849872056964486031884478221227027355773762717108375240006298875700361127550888752327841085818158231642422459551421323348586883370230132670568141908289851031289118756635265206398919208568217328481491349338321187096799772463485657835803385614529774786841632783145783868304606378164534353285631479603918439342440171885426824365056294811687131229702116928726410414580618982223624721018487882062835290741952582374451628814617430896853315432997748013816571467667652321808316266370506094455431155519441218381878247460027660231769540942112601719608194137626697385760575303944997772977602095658044395556329308401548394360395786042135487083814029790411496551847042340326042198363951228549160779009818476764601766991376660273104198346145575444268119874745611928929429717086138834633020174044705251919792292682130314759984403826707096790296594362575234597640582924028368211406069803970425234256024293322542688337039372519667730550139022370676233412117321677803500395867088541563789163064507858564801846255898868318645956813946704218266887413129735210872274778323354662499331017888978805114673547108110563671394492857729438653260341190242685139372667212367950273276025890906511800470144879465763585419832954450347435261186197825929524709855076669927103997182494770041897651216676721361776021760451435508167384566744043357140608792348192545585193995875783972521337682116651962181897758361980349746202163611421850772453494363062211561491583964897847214691200815300762310551652338974841677484706056602829881475346070486611188530274513301130755197337993564636993150193814303647007868227078749988797334065935014318504117220467074022989408598720400708589632911396768666593350933253033613974979869799984199645984968200412396933185332732303600215908050286585121722089028211293369965777824657650176906065912424064173264612722425915283881608636445689539838338837771318684319247874588441050434207536533877454515553914700995097208552800734945911392819599694034366084460471317277684540555551819309161987904667257476907887855855604621811430272516824490014628584672858738192828703603210366583390046387299321125677653088509349632877932624380669554553985290120619314745769134778036350041290723703728672565602723084646638521155075901779795022290705057735278031440329363754692803500445532685882601999323336055771535740525721667563787724877534967325283885626368697751538196721462330449733873161557155510054966355391975691069381023459719699035146576038875408318739636225242917054417783882295861991932904073209088745104052532687111708874029751084872049258215397610153221114788432448213812718624050787616120313526327198886718724409817548144291572006220363081756366011628295102279029189007577312281328553352640146987997870857308776911072350543338123287357490101291963933570377685968535598882720459412686908767565759059026733086443453996133515656305108605494938602737495318653258540447065859542557024889250889970266622148010476274050314987349105427559168034998791211615924587549102955809715581095596337608669839386997930327491348548608896670486955604302552710289719108648531677546058368498213160920498452836462720812740077803216410932864753263358083045506468739769442609854711304846215159694490365729951762911578232200088624249607543421411116464310417055001346135779534622386806971437370828149461486797753576511419624723386725113717506737458303502463337095248719893979509107883091242647308036147350913830111111993321065209297189751724358644536411131003123733644907669913125277109135022983697746587151212827690369014573934348199305350210122056503377798126488373507604143014099565856646177179653613457435606958810177261078814508369719679043876413364267708327273477358224817797259929162657877403148147358875371215028895903727930348126717754879748131263891396640900218414186425496837074180120439753303907949245615109394946363148418032076613650062207848810797337465136231586175685930464865587308269572427379178103995137108472547330109941946789960758515129178618837548575866026552847150711673135832883714289503403263367932769540316154215968181408167163434806285690403699159844500686620384939088609449213790055325936422960670024582702776962672159567925372221490354881995965819659169630481537908335797697146569731787103347480826046583788864461990399039143985426178125665953234199208522441669443537636302975839845714719036042983230536342162443879593522562359436422001958437363839760317536462298697310968714784204512553469656267155379327546306577148873114715252988791880439968646629845455756470448428898750675975225100672805250652782461568028737324764699493219160309893674417274247584137750767985888032686007078975271247184776262714171499890695032121344188515651901594800765109695278846589009199285071539319250408648642930250891404244576805637870258562890120430409340934919071996119267854016711784132914679459329289797613433771562652612068784943464453972331731481330132365657543129729589910701100583737278110608916228515373035792597791749691647647942682278112682300527997439223501304561827837944491163337891153665303985211679983528813700714120365366599186380146360881438952156656617249886306010319693723782151442168539003771340598742394491241389509165303029506785525461221807791258165625684924350617911988670470813258365923968261543440063553214426691350587117113855629199180225159170745163541524439914147845766410827709841619149783924663534537549157697548363727596981794021475398036325628870984149561875847637688362690670487404817824591063325199189416852757461275892190597122178546699430527112282238958233811571825330163244670072024941233730334901986871067213694659569160887306056498721575852232867272965241903991437952437776425573576161316417497544781733588398055451077167955947159462436336358474945180313078371538734221552123076056285497557031601035648742275301021258335552996886976072550584788340725154733984583406141538069149649654289280848337531686417982611209133020294234649744212018886888790555286362091850299576496554114420798913889484566363783074303304104810004884273681086933007934365494675638538550766355182859660503131396124925434715895029901286448534911363001194546519214268609120431315738685195297990167642216017859956712744367594713438813504177104382188194875914753540723314198831770958714384459959181951185697835123410683575553390151883294070364154251840202756284779125663633097886085637306315159942011734813572240993130963850862498627245812227454038842415895911614248190862079925238785182199399789107058901446049123393506605219784508954727090923720653392710580958045525913164634084896549982564091817360123125956041534412531665424075053741278728761954472384395604459230381784392551240069653921437350151276460675339804451275329949301639023953883742807978766072452851948552377982619070373864655630793597898325794346827137893903590695676308026389733914496214962118661355095611113228927044726552841575584575444701993013887086735219278940594507638353775130047357010707553508728357714930969953727240042340100420044329964348938818371033493962326052408965575627745828073263064859118176952994663223879287651434075978868871598930369353104175724962857123124608000552685899042009586209930592512002075550372100581047966235561573703104697426131621058797366980958461443232143517768954125449972978601120627769078636077960453187971792236281264573708458359445651209177185564406149958610736712284247177224262434304101694425892090384356510761624136636958092701784496096945747850691245475840291383818211769006381609399888007867603827783567210677493629544315743084836843919870038107476945909321554511754782745432585251967378427437280665695290985294689838286860178974159436614111871129591472320567110218057150374253475946891943740596936790561653276118916681896039157355661596557814437877849090384309478563564250852449747433483108663720037853915932213081223619283143740735991244447955524941993356369682465222073387281157844523707193859081736949214213102569057130763215759259590745400746944748013739205143018329397367880122132300034866304511533077566367797957386356601277573120127744527351402359826128485339986864394042714948187086993138254124861567896311904573000972318118108822979366298441415350924770566970492336365544688715676986165001795791418505390365022762045873443437212712897069102417110705093793728956454699659467899077966636933597734027150590629440633676965078110768052033388499584610658506232812311273429087516441715903562884611971521003755740433713380434544004325593913744638741501701219642226677873982355586115014770995135394902133831672570921347808842969643134253518934395211324676376089380336966453228064821071580826304065995394699208894063075667752552765482565562217291427882932010677049055628769803913984696302808768886433956634694423223305472406200794827920697855254252375550556322377369208038190255870545400429777896454280004736625495735298595849531795702535462550187845834898395385651619051330583098550346571327870324694633744708766998681727043643581530444928359252358849295852037856469948900735034433852970186320383347443330641871402781067993809709881690440101916799718050339723634377832039489767175317987231655127140735103883463708328553801865499583759861403731899586051454521971880284709230790962634146265916762695616317103012582020750203483107735479382158816572135057074878260818066832573918734957997390265150702066059696556592272624010442943860189004172728145794640199388958042293155099470527713001702807844833017587816378823708964373689023220770129569237333224491353622760416511670578950618430092626467631863396022570958700924589368127158661907206001536778889634056274478292296900738746609937142111666254131976350727714442677905911824128138217855198882482581341100610932768603271646256298166343293960661769814485129745062476794681818456639596515805410472143534217907151152695330111818728593467282525763615011259950986523907729080121500305594207458369421708811466115536246812309864100544230480449446558849971658881543698910515104750571030701948109207023244600567886956626922810838450637440959030416142279602171771280709240582520475968894908531357610046627908324064617104820807116977714492379814580731920887193429498941209606530258900430424525105463782754967917765285386127361317735479082852065381716666059306755432423064845472823191505434201811171678025198113162965722573713960222096935446223191069785322029715148376372098741689109022227748243401831363365761891888920092084661231342682480771971543268542769535271277642584951952199261816341927603196260220196840582900319849551495598050314499622442800960813829106887915790518141238497336921828029833644765103483321956732104923763356696796675184085175011699653960792395936065641045048995493439695510725196012860825748139211379584266082375064703850622605676871568182974100891791263985060214223110935350799016901364463657666011649606231445008074544220823095989653026273655524999802383126576615481829313532151800577789877466772777258447910412049206364795968182364378945403865795009226021716545520897258330652571688015268445639524692293677815329978416539930646412675465903589354542192887524932516757218018622596230403640442037760971966541504569180795202659332830449042655930517013529641074027646719460764251115204037045898510950104345474866115536469100007687052439447211176138372476346974693535619905397272852555131545179510224977340848573364184250394470976687982472490459499925676224664677414433050802807140751996618876726744473062982512088230668893116106489722167145121667060050160686076523676984329961305033105554837351503202913043030226527929335985470667136748913477128243856195106920637436956589247968444760766711301039712682780835223971197108118900980666774603913869661488902552400275073392453531275981615385403776767674975139829962314461697254918333579562930028022077958402988258068627215964120505260339155588242515465908023572283966674585061744831856743402126293428279818836828570655025665703083037747065131123922363789415978757664611217942754370433018959635058547000272701105326993977649903824281669701516676797782598135300705888809373018650280743507753843269232196483744035196457101341460421037317850395339628107005288161593240733054532822014720299296765683713522649275014700746063562885423064071385690798431464375677361142045325875059959011906209020487627205385093244601237359268238458566757991160578218495841314840149454321445992386095138365326479034825915172153305168309553431520785153332686034618741693273652236286266204554428199099152637085968417249715529513054120139190549280465922267092793104979963272010965102636813305084814263479389850451241502020632943848936356314363772086047385066973837996195367665998826925930497330166532461541344309756942278243813622135270669252353810111427327800671398421881677239116214520575871044616944008113446289046918052182985764453054463612905384734184818838288257019421854651302247510584812479545620863523260434217906426849542252529449362873213866849577416262669165780372575916432983269773951363273071086293577826266635896294409406006871803254401617585072207160495878704373626863717218835092284099222758654320817680090059872224603810808034446354788121985072066545757220943720344374249531259764127884978042890071033180710869801676575234745630023769793563294813026684304617058134846341672647546034751171071035052072567440197741997181058814097779671557232036184862485075470340904069325121573371905596316185984873458552640520433497055724670552804866012727036917967136594627635601609188820544128236652225910845143310274636792259966965424730865319474555246504418700502976867272581433627948065919643821709127653237104910829086834104841559120950149670285575438956555771941820564546123762223707998023326774803884269850794934523081902635448822985216736307102211872810098228104656822045466777885213622100564241758300085397364322566615755725663056403769947728234698479102488434668836355925699320856011604677848629820653585977454061756029881519677102905937262024696591371274471849521675718290690848273057325194138220639763892224037830260471308290972412828959161726740245572920802578087912684863541978394011564435128626666357148134339989869927626661965194612039695395449813666389145437845515634954156199445195807045415334632834416539094481320665429365577385156277917268128209780715493945456971897082183992267149286877733590363725432719738564677861418029385535042439381649069023766680301371544272153563504847750138496407564703645020622768217443384609619923179336327965949411581709860920198876547669790153289182911148882665222454147813270439568540072095917333622595451645100584073392410112846079905610024779075977121181806348060176191779895351707580354460093107133387107943221450934031888977107459405834894576362729829945985183335571174098009563032640778516494233790346932255096142395921162786282929212751673345413780720012926035839737354099062591254763849636911463360628095797443312301926642124458641600091295453636282511547393923154426182525431091604058723403644827822168782977236614349493390085392268160650300976658505251284294467000496546550336357847259187844680131448156573178156933143758678318660611160564290001059851030592845792420448514649039571278154840199699435988318182673547102130770297407158952091405358598092183176866630968676345063579812433036662706564311921096192387131435812915875384149510429597263641826415180865246774133338668340111619389022404207852664787183972966711763960396062481526421253244666253320906584815404552478346779545074098580815710989440491866055584553616781040588209846649885717597254073900191256642598953333599794857275875411987608750825811892604726918735703931355778822380990515523079832600172478004142498303842289713764750565336701177625744933018742206555566437282005502281832131087263868084198989751062083336316072189184169644097080390557685543055405687357213511874598219358640256625226997827031532169006076612194535482739402452084103629572152138937305872881481707206179387438052666430480526488468218497751416217218695448864688416442429424125609434540543661447862480885975323051009456824193024020664409075403499138471258822077335809404918906930997155367574461690569627410070678734095993774494908065971593737629549361522445373443685279391948943672236804937778290922298651878934574318000531259715645501648600140722971538889154444451184039709943621460964393108006549045702354923503133026738901301254679785131072807934262581378764318121547211540594709451631941496415168067955492215942802963174725394527901538761150016582239063662792354725580244302696527734993161103750362721022706258445238944321354377126865012312793853468635120274179085165047239270252927000656127907695245182752959635836536323790605493583601918671704208088128561137696966476921341457704129874453420633347166424883048360130708966719299540923600930419314911855340539624707250282546046939669121419145879852946266623175840771536207899334845936115774568728765115059760890628303685162573014851192429365650537412005103906599365454786940498987938925451520870685451065978008322967801114508455127616902040856910160275673593805497970762960642654543277924993813599849903332432491358162470697391919157738907050688916500510641918398847866577328865655291066407720376952147584455136499637935304902994750894908361124992347430189766927877065242538605470620885884397639568226867145869870523363391155338936639295352615872943206092086672275954312290327450340016859219118677541714053235442928867863710425890960623795190311455441337547642924549909984599528850756425282752943289955561472860357619949722390648344911139943090089501971116963030889723032297540033388668362834624633878556823799070026156901860384221778405867701744670701317355657444891560557054831632747551275201935611284555496617463988347289658523579599063007869195019747862344910172995383073607899768444201848334810578031874916407847650251583518409871073128519998861297893249352399155231747157399663054533900432781539790644626350112879199536186831472112372396051571124324519684791470532458878052418003951850356554630068883560004221654100929823614296847146081546035691589402566950197596317073951290069578356758352201745825202329667899141449068822722669234898222941470742879818508134272553544290503219508744153593503489787954491756654567111182938493290866871006779895654184242156968878472759204607777535461977135633940314025552902960557658384772757209846412472150562816768055098975442182431905378908232901970387195597510007268657093184635379918756029482499173632699884889629777633008058616132902381862973243564597852202048831651566265074298238084519429468750883717305898339250442638151782879196449862048178248000675491881206614331067805941268192749430746245408713621190730653355865930520810251966787346125542113311863584502685253143419274358719482165120115100152067307174289500198395185077501617059040805689075926612240289772417557247115369133815177605756009683689421816893831737545878038953539176799652916670063705085575757889319104459184413886788127977571509452059137881255467657429772698918619559259189189830193135928180274505105840033480519863490401275791798921070042750061023222210184233515341155238740508178104405743001139546141141839022710807521840039753406599352236029256277214316031866167617856096057491878358052615977536564848895206462482033330960568092875681057523592512776905930504849475221959091772471511993203653290975218442973809247465906828003683637991580105615849752096395530576213421096353978974950626049527793438760697953314646300507339849268361868699481302918663434269644752858743408705486985262203094339521243476919221012993646860017393285088078899974892996250438279771674748727866961427479259667642897878579262440071412433882735810254167961264813337348389976889331467836081712894603178744481419589331325536296569754616938459809510413084237887016011181310673460155035382822727521963248853014044824136473991104421260659181796939165518972889838662221807844714324605324066176291820162522529125298346546813418326802034832024437204572306748486456151045449648794576374855878917799327325787221497225247766379897971919572679347466154354591443644559969709415096139212494865433185040287391515643787481739346215472616174261714961602755501584322250232422617675660002429508894069518201631833524529734855397636944412016847834828786416971506349746790921730728072596243298450272880889361928851235596979861731729067202199455495318755908347683939499594205857486270004089036332719264708560194968649156993928081995477852592512357664724748838786619583928055667328761165345849257505757277907684909612576955394403583360998460676586580589932600632663080898803406973737132091359654728844906459063102491389443115410818340118887599023492817678760801882038202905827004229343116255293114012875122238712877492236903564902724685372475480882482486885118273745138003410180650827145374216171274675336086964828058250749455015503478601113669648353632906559978866495213524068090978690969382750389716541694874239336401326620073917119513590283407050776658303524290389976758177014951915809860806594472346121597457292896544199949413362067940882393773313846533319559337293648263306115366835086458857383881950492204760047533989648404216659030750313651381340238067655922400962892159350192393612990095653707354250831753196059608382105493622980785477336149654256153764750013923730461977934393587218318415737969164435053750431480535116368798358936168030815007079800946399590809910077986236977520293696066157071639833808205082689373619952931005044955796064738091887217664656039176514208031740510386379838525067532451324455001111537761190153126306099679741690390259005230205863335981864172123819193459398120017975376999814432821635672225425069660675374804573989638261808568150030880934304590267306307619720245580310688406333794000879114900919284468583753858579162551446599573008343082834762430482613376393525154016820791370062787297235487279289303320403911313274886012417608625303617454370916850255283285580725011481356152124449887362346866741807789208239564381222087618250452023899959368478778967745642093723678376026829522266250381084991301641960321363585253802703200276504941165279693756409918848202752386693942633821797621405323593675215517336882295068848376793909176807739106506230974563240917811793193140662072600351115746632159557395389572944407858994089668330911297782760264043911415771600631162500403626834586218333299972608583217554166152881914675031059555924677158282832734773399146280481834277031434889147548197517708059599391088447818214370439604459872458137598088941113585630957893909396576109854118000916019656595489737022802952314845186843157582609394796573209843985197183178595587924571516522272936442477405710931723299821853172524459900509929590393219524056630410512466356417870849601148681377161636027074710718788712634241991976103141433970232860546023429381029562325194537218421127292390249458505862133914895386254047778977520725296344423847360991287329257237668223353349967153718058234542905674962960591050518280009023324814347313659101033867343910361421760112859979883475062804718512362060011355708240993710487642523704850990229181884842894064121480731556131969278205113057033495522513323984915672512997333014812768468083446967265105182198553909456889732197346638649818546601797205975979738958196593756212774617686688126630586323999913206324256888391604228791840237456909585233149478084375583505906333432919216368166638738617481102746120410402393372986700282891216248621426335753923682369498868712104864119997016387246514877337123035760504590596291046076122835329734143137274705737542066806567002472279634342253043106527414050921861547532258799076648194620543624871705129905360554134967678264741302278388750483051164117685037268048326026082703488587440900086479260433999558030007385051956438319358071741177380571537972954240474776104733596357386860958168172444493459551740905556468981644752111109559937393412621353953075396438112431122332474616021188281048139159832584435792668986752819746401245349679203190061329552182737983112206209149041627878871347029604070188857930884640025183968236530714033684680754156228370320358214749703901062056903829739079070270075985133541264543768577309505962368259031771866105990905046647110847464469168526242111248369555933710172009831423989967856896760085472819454575453176637601702974473993111261326528512883119467018384443453473988395094174577076071026937789614727903698578120168951315144081307091238323537244983660634044650567627389619421056059295534137656790540466382313381863955281057650151002302349544177015917024400565750797351794220501288124350241213551732736606342709304641614886097823978125644053186494682658150853099464412328445777171112316298559407578316003898157864713545558549956506927759904958229320160018143788711053105772506325291367991309162717599400240013299369213315022441335430022663602601177909552901976950256923287194132561155212259666923850923815148388494114455385285356079394912761715744225483942551316108076785259102896657644335608166740460425614882360360948122097093835551988179516490775701932423071016923536318441835823784321199385838329874135947246085015709807823165366579610932008677788495489209585847076358314891232943160023993840620189507263642859479834400384325111023218561732442838370113912346181725989121366611781753842084777251891383738809276841064898884818823959238990631321654133185842302151754742528808366649579177940401007791461738005518368673420157601494447869978834782583015258523106851569940870557108828876003025177776862124364991938874144324463554483690457621167735770213574767770399522469223469210064786335510484384800547543883329014377112433752915265775186091577640502986532637541776885613372415164458956918884323613375515372572070331861316613815135079031338281956555720015411303744861591285115794785939946605978226847499527852113599312586845164095213819200091967266732628036424403838407164964222203961769864278617013534153954551754395110877617866178977155675533211924664489030205527406754353606811591855619766174295319907992571076195123374054036847735772095000565060229004532651302479784053880160815605370927096774435773468232069040642643931706631220907636051757359185865863875628244927564135583142786182244312224170511759382467096102879361877936993442090368400955105422494952818935300761077231949436438895652053901911581933632755778075642458196534193951724838971800411948132970161653286835735006594132474186848412906707925852677399145531727259837803343893494870643296709375571319863351532396948481848960382957679849356775857922516013004515068268451874559404809641625323438869717424359793068180718438044019287639635964913693289726310329292374740439451475180020689362607174437952824266957822330100681887950203749145695903131942709485881641294297997103067477001623103827583835972616977333895841058614869442191738593883861112134478842934668571336439264462352303184088625742985418998586637550239444565355557298673054344064482217806688416268568992188696557186380472189650957580988882090993839089038122935408089341988721263590618340508409477132683645732901904971144177757248990977697969322509555994198389876137148796981885648855225068440574205774911185521064286321114810000990750106501913937141643604126597784826864928093406666626334237987083774571631227948130603159012624611948372559588969721874068849416974670581633930905977729554249589641295596344452242056909886476957405334921184419977546831321344158163820125683931754512122600048902253184379675264486244346578785057817745498541448611170765673355253932457745607369856548849929737630559605399465620186774622621982371206798456283081388670628553623936744658622669291417627697670853218006673906697481063416173129942090797173675042998018701906363257470305459483677321320261587655802196389292282303602569022233870196411445253282479967174423123392190106888210645658103657299727985943658073125834072316969387601881909064269431261368460442203248104881080701479827170069967730674543680784667045792329789748256441378695670656339986006727165820573714346212416995693437460177200148661680994947742698247919920758346153859597062733550477582920794899193920263758357650495144596903755959345082808068163718024430651779157778856758570675338974684154868219531231139331822456912052885739022349764285828265090112290290845874681448606704895520034104677878430986328079040253738140497996231556845472076281322730169142165249907452162613819139073750313339657085992806733805070736167694124829851680816761294248418438677743538835996948704528789865574850623043737278546668712503266901623023840408838934129488935734985922438567152919055969884906044728356071864420109254857716852487698515227678544953049971364164818871292611199150707313139216453815413569766571422332788883670658563712564715731110094616062826814322117235190465582855396988227387885522547258823702632976725875469242756920674209024518275861724291446781658572618349864373683229939378758763993595697664031216828554236350812618610245203009587142703212995920106702385123262480593957010012616101578637757057639873121414918025581920640866594104898324929485336229401704080686627020258635865704136213797097910800698496209131281995398976564876170845939985513610779751633900738014243114084748019543079916456891699992000184942338570321960097805860043913351829399065360893361437690047678679557171269443414626397938533884021497680175683693015795595999336632768839857188769432314394379403434883720540023803762705823677994694717001716183633686850955949465194216624709707498139817422629318717852725408010659518227871296235444676490214876104535166657223744383674862756207447087532939640677208816268431848704963928465927608786823887579399194414033225542344890176000671252288479751508939079819390631133802339855906790138859883625359285227208194166837174277374153138818006027003826256585821450237220902321718499956046987774658154676497427251065996628383266357215619765814896861094385208326693524019789403842898655202355338644858990327298127578313697575431591725225853308567621230694870251329122673293660445734493981910972213367803797012025308265739587011697730091098826265171266028935067474337266941816548476964895355890004172461872258908192011813854030960968935046312044604933165701078293860928044300578373198709001982224673705510390014049723043435632904440871744136769631078784603947767014409983254677492501522432490183349085526455753074836519636384733244443520482931833912561791280017094445796957083731472145998329656126902298144265447803108269974187367197625549084675566753758250120407089303079801495296376308816661086355455498619579019995073096782604186428117647069298360736080504887390480217706276488873603221401909614531592781317065852642560321585833063364058405925094015254959042940114734016706815268755178543644087032704535280719528029937128546771984517213619550492555328883492545997456274123104667216832684861018442872679466483847767715934576329983222663390525867567518764646557213472783216111867897132493636800115923151518601433115586033316574034110257107696752135399979879190307402350903949946584635745114249595351429334834164069338835737261733137052162737057142598272619534594097161990612512762330901054805512137898463295674956660045043769438593991151068790264866898063633571307989537625243285110080403915684646286164698994528216077543221292864863260627351104422292988771906801533986282218482974916666046005015043486254338597774946127181029729696488509114979848458211209086726463585742618864674786917532952744330530060955281745992595012584439141334018469771282100012965781730370379189523224242476561079725558920927401509708175723092723315938830292670689347828279885374959526804974998321823614774593439680962607115573443423547623114537561489309796815363588328146219321271789347689385398003005129692663933326390356864612583247539428710757454143363654857459906812849646265112326911369340614136528922713042324150067882872333131685014445895960539313788066216635080448577272614790345755848268990248912631349419967844980193617584731663222360062981803226161685080869652822503961993491808319339042872628560482647538713429756808401745179566947801020553094921258178476481757421268445963339774525509014737428001909944226433918070934172777366282591886490124624053728955636322495238867041274116672600115326649316679022076830956839152599887092542560576372049226128562078782756541892662391001348543210547317931569330718754281211403394202153876646591427700461798679027596194897463483953293906708967730340932910533813104266284817139816267623414492371569201046882231761766266825423580342897280623454973370656444707266813150309651172025409148664428906157242902460616646862175183807964889918786897943560311572049538042054182843114490518216808074696364111689012763954416313419081881523320538552855987158553306303852371010514353139786185149697853358552283197066936135881715905917662547369839786457258207425724695600545519220693692048940632086363483869744521661184249559068285740403184268871936892427497537749382382252109508845556684522144057322012508150220658476692813586421568771893619450965376017271319811596092155700258018073077854898334418282866234116835128780835724667964358299561326919148802829349096906489697393282810502469391034198283310551088981271068059255501719037740091512464317328904252703063167942439894234033465872203930349386898923778618794402325412477958195404436352559056159704265510370692624875037974914773454083913742208561132750241743810121428359659855450492411822250538952257533366796446170429080325007222882101788104552822308039165173143314359959361682351553025520101702073303139939735796198582611419115324927164673733784146622013993301689390089822029641270107306616889196420815005678905470046837916671859831886289214016773841948412662650353175747190695830645491024301173450773183626190138281518131783676597892337041788753063981028537898928177693977215037993530832791382113516421081053452216291334013907920848465003812416517327593751825049703859436838411113442423345469328770993127434615716857004381778367888045421289301570530353985847743358594888990432742669684505926082419916736264476015980293553324419356058945310869821512975705815853512547613856778894465142610520064489470749691137358004437267894127583922002993284438341721072312817939814086914316804571246271005553067812122385642201171912511500659105478373957058949776978205373763202028297102966799000588510813190518785339774407426339289570590581001946296805441970911552328565616528301636676593553896334734227863162802128500560172345981859901865480244672895398647292087400151679791273349327176329265152875803849496091749615791848474081192209308193976581344393102927613213208517199899746935175134656925845986093584518548881053222766085178289143363206409920576932847718731053324042910418241721296975858221200341594204269789900998931880041808590754411460120192472498921594027307239858152184368545257736226780736121001873612839580809948401751353297825332682997148996686795771410810174518706711957299988881113256830784120385039852380796177046918511824718130553999957895448474918374100759291307346878016509966798601937009006090576116807222944794813932710272455850864173102405519726414376868726390132019611380730904514301731062536992958354582904956836424226516744134161687554652462191585467976515744256159463418251859531476745991782216849382277256644426511867631166535166619620954867089435237335975488715781983846624754657486604615842511739084062440225977781356667335826613241229870185128930260516250128716648037551330892307496359752618576341059502216298373222923821784607860181112036775357913789223836890477129865382801885938574397392956834389272127253256422842604634612053299913960773460118977890200903402263405460437334968857030889766976608598435045086339261918921394644295002597441603429087107558100204632537930894215796112145167271600363513091063451926534070212326061488192849920572036788685259863227147014285652643391371899708312483397004021721933336699411197277171316342836188947494614587571256072793073792702614887932195487836919666507912437229994743139535048854221455881728886229198162768149992395262630462479853279011355468784676913022847780701720270800482801613952376118938635653829945162454435181079638434499723563701200389020139732780658295973037769476696671531155060444233400110102561051362802611108384000864100148302784796864979031942343037285648136969777397808075863113417666440154780703247813698107343041065177562103480598301127463840889876114786085364619377372350280315123135658123565732039196670302279203749952717388651837413753153356607548469842309292370812740556753525504340080572353616417164500320908979493242842918818315866583515349810525316667045972909093001326225402561967156710926180027454941793038802849361669869782043620591809191929466278042511421159533945160332887567501086157683709489292823870291235046454492665272910841758740429649042277990082062487458714048257712878780391674511865923744081482242506337069755693745555386796441051818249758541160739846475178172474212459225182546716557370096479031013149948448341801727877613902549948676848420705507043865152977956349619543471648643655692849692977281702522042780022736754805179278352278028148980475880080421385095130370120808130380228896735278322050680804227853643369596299628504348560027655720997602724768017039847408498378991357148334891161965494897811225867773281085359439482569395227813343149681988593575930842654789106434914604218699323486969831845418698899174946930634111613731474117126020628694117127237742868415565080670071361699183469806321530675537327493539450445627703217010064467735545119691566287097000964798312333480874398106544441557222705911921744837456843825686428308686746993780309420997584213606781479746670066593230979974504635736449891829086603265238054717996490741734979072636932709800519180934370843616787466067334850088696218816283169108228707686391652970866089638452011066972569138015823394359562599716500513753932369677398077982781116584335451377831836735550081580478663690320133366971931359000285657151158991899544919849239199093289255650425302776592162183012286799168597320841515445657442412045685815033392425946148288989505790799151655186726483145364300814091854455087489754478881571752739098407746288304754141305288721584094213501337189322896483110388394122731954051141095603249308336842725929415748456636488681796653995649250899787514006461306945055529848871079405148288319466698370542653755982668516491044861097289599160080958069567366953809278425642345668086450525421883806369597775314719883721739851055290517535040018169061609879609269573794059562083536167046494835804859700223226608534544342196680106001008919340848690746688122407388988160328201287658238496600443467412860352039245870720976175888146213100950018662579718347631397780906126944223310569257943451205186507038889341809869542154559104430865840485421239353757400471287138307771896815433616474240155112542839337213385584435360302843964264132941441648757038396061254831666597889969105497752653838758154193009337311574835437504091094139573833021881509226710595289084952171547891812035437960605335103189038905749588947482307071045244900344195337873128297285829660028297473829075400304404062832076321815873673979567791529599121235147589007833496978359805350331072084310177106690960660335533104399482196896747212916142974857737532315072376068347319106124553652639867130840788297151054014843994998222581843223062281115168808350019817846021463284894610533926603560210486259703162972938258964216597724894656073942048144113105151616012550727320447979521790787370644761668893791932737289338885582711306955340737693141947659625677307067628384254899602766208820219484324979924037718386861682180537361190193187553375910950425820955603577694711737567020083540132152184957615217878566559278772789128507392652250688449868721229298703336405519361253751395038431498702524542268975574729198261434395075283404411502682494255489879852265688137736664661157328255250134034097767179844424279075339715945787125877472260472622865302693410538998955529201202458480860327267395987871259427252505253419433162640303408739158137403390837336647305470103773477699528312900830125777548654221765139659940999801306051335422549199667011091948871265505742290959359956553482105769721007491844386658391176330231161410504929922294394867726855333141763149513273569902944532185523094375870319355719415351109191540592368556043274858675586780050251480642556277158715739180396783746983978168509467866539563810791239859366956856125069036225769572306463407397249973190028491838692163127639642258091735253429300292591155431878853858823461233076275567397782991380752482366929786506150867861134679118647575749865629369886067390250561220630796251008631525857805532543895514524223874668725533438895678815602285943283934278251333262641464315783085396776734879658902587452931514902060339826078345274458587318038956587854548128363597964622233381651105179358227594324173900570597692036824666636032071075505960280118881693388415293256562798033534982675447586860757884814105026806365163470118917520514274485070258895043816561694634743292641845051686058490058898064112846730119329901557969890188507290296439424822504789591559522610633097342520494686187125462920716436488688081147385416877237687021508360793344046023413076128564767320008706646657106031640715967285728030619638125839461414744983464909889630232578251068694973054986342358945849085263215674787172171383150125432984663926585447399046045698558914256374654101851330138948135607552388639610766510211865365110970100718180664288488587329044791585890566650657949291286671645198370817385887497796598993464809385711437066695894666912817736020639955595895689055009424961354337113606835449090778626285061794151947003623944077338172693941879726210768352820608110473814912207745729998572224714502156978531426397314673991116342482155296701089835956080835585318314816636402719429591942598853370195395286518683173231033744421299205449691590013679341910812208384151178014763569037387177482064320835534325540989515280216065216604180484006926601496770646093337395053807362085581663300507348642042718305491106800609703112568518868879870632877836992238006517331857912623682915585174262505660304961077387291193395521559934670736250288894476590748021839943938427908043505042659213945599003193933101861130003254124860759011351508451936973915587573551195574748827977136329328472869192642757678351742756870877132177022253864476937712407862998248878846429101095152749701474567958869709648203228084899312577311551815325952783257484325713929891238684671926269516814665651440143460390858315079745731200292635515972049143596467405579359903948272744426814966520865789981471718562049319313865596414286637054317507220255325862993552757600467882633678543333564462901030711903291128252932185056505258641194630351660342071662986143043767416013026809630176631264383796789718616126911561586354778261222176975253589991836286542736318300025830658773708905305805178027133923623384126034057515978032165000870645186524115408565615431929963215087966705337243648095288219282315936163942486676805805855826045880094627088033241960534329419160572324095657070668556476391798953777658633172949674934390006424024668495321460321195030000884855824034976564297866412857035251285405325319233038706217732684794262376533158351414111926563464074596857676997033656113318757380374160705543830844885431152666315459713811503060210106499579877942754267114661942417171160662940340244046927070282868312644719514391132433565508377625606599592940739757938584055679148421951887361910924882180290710815794133086711155777375275954615111973829065046521573275662092292610745295077054557338519161721127643385790489564187758618488286666906386155719739310045408093648823574330767678105490804065797178337496273839435453220387102032354895415238656345170650335837129323128536856883924853092241082825853070141944611107553258156566623367726516913264616635119394306289573565317645327912131053633353647583907396430276402880490310948731032037627955833895072005419470894787863181623246238576347595227995581495446692393236826845360318630137264181324363743393080994326080196812195969693564301075557684731556762468685475847734324300981009422776556887230436290317238630412791275617412355930544910669259215852650336352494624947927753793767491017438582717344488048249649816017589754538564770960528218147189171976921106998368405078255255637902368762146206920871636007677380669562995788768696717552924957593161038204824738999269736278409196305881418980798397405799053671158885421577812492390476239007832496293046054435018805417977310082090344116811488858250680273289746549569737199808747182316344716616102657782281229977897130658496738050374552524450891127544194556495382269407567125063564758859600565550677433428017868307364475633622233734501351940394700593055080375977459743793345519029822481155267860689257591948516767299139839248808633581259149252581086773512022378678446688964592342269503954935621661125665842273231566145649424924130249053274539993652429146856013401602939820972737442771500203735379337475613201869198045616748221428349471745492637362169773554725771944529539007376722963578236396802703619556774264504462245184490538791805498793345538746533275238486486723130140194746110884430280936740493787460053605132158958606767195582657016129585568789219241426549455892707807624601484949832033469172942772618194680531227072145523223173305485558588309235605496940002028824939825199010251881100278797078034260797386587912348694578236270538948975763951698567197888280669846727443074355274150344232311829867410567040309393950528702662745300259541429879869585194819889395631111549033551680037399411885033775091263669785062079298158006400243736454103795010528567738417559151204982543436423755354244095461872288904470165221677338759245790508301090611698124035167926950195289954595975801656407235483418735387614244216966369245246076737075913672972053369054197729567218333997129919195432740549774144908881312829111434281029335707482520715908958559995071400854355204096226600045373215995533925948697182219359029502101238453239645157373786030386006277915959958186756071032426071853128660737009547511199780899213875231303061951135796221824620269945098230472619186718651835256634808897451127265587756138486265963174683277831824041433564894093586920212673492020105301880722421012878392246265965904702592749984226096422626046446847193477834026021455433998982066329075372646097842899414388561557317025364474831099180742454363081752945521554077381618471250348709535278260764742793799013188758263698114350309803546512967436506008347157895605626865085711056717496212940656148173180369690248264586198337687071135798198956747716397931590141160650190537901404581594380104494358811310979320516167567786920405526363332457160217557161033603233143630655578683311872555170034783236824787446234506200217363952017354086978390882916262288029445671583426631312394053893875358872892569655480408721422958964027058493446629768503435889925399171117932244298157530271896591825529051489778206168252627411724491105161173128391439877022362418930394094432549808015253876839989748865865230261605395327817584178758636531573518565786264263262706087484520276611472804068054953475967276634309726670163894251661709895469602731469228245690224535844128033742973630534261655711246177257056717090346107447037767952203302806468930926136723300060248365776168216916807187440786573563486303651089155964646951029198409309511069301455370440410450190828770445693007675620068836022594221984956890767607223859693096504645120191853950219586334592389128797515621134665005908065527126425056998142247189954210167984317101562083677992364353242745680888508595800652704042548248947734600934808322889970352993502177960339166491138555414649728673460422058357404138799906559786448299105188240226277258847926473185985249096958833758917997927342231951844353910769945739061255242624921799974832697853429368979588984770168139380477550694864297558564047209144498064931165903920833834794520195719518988857509629741316542402588581626969273528649210848978016775399638225247303075768290765285561997215840877363319428818673533665700495241533851192784450765461165384133798206957004823583711748874743175059033210274452390496146520435959434205221682465123593820308559717769807417067645309196937419787323990222274344809359670977667056060609686846917986282866540155396347480057491373727676764632353807871303777604420196003762752760148786771004593364223775159688053346330267284418591693709455800816019371805561389086134892377641546393068125988166904478479888350687074022867639993787793944768038105680189697363807146006816711810729381782275674055137877805132972369493933049789583293391943209803286603949408059493710493967673633576636311472011134219912825456963353357679872550973135116789634032908332009631166639758515128275545506467865319015861290669856161720927390999028797789368715593314002548147712730707082725868670841429002226786397896329143656978608386206036271370031802495994865766771070812178358656119936982631507212360651110518897679042126172946435946362923223719557114101856180131057858505723278041124689185092054732608205052090028057850323338727439750973718489522965933538623887524308063699474807722483042803312919574223549148848185926268726808339290427258177330416747217175464609505654917755222400591048258636651574085170703588719405568392306864379148844628273633961435855547512214564823716185572081774727294299580327769116569100348711607090656780177996429103054921398223821127729768987993620468432461799442298937599110045278212457507968226805757236929286246933610981976022438509631267795717845698219023907030999060034269701147625135733994942736899676686574743505954371102576177963514780355110043586166656550453659754124319762228682089688620615021948597991489052361483193037965881444036599250530266296109027827047289530423907065486388094494551930073272737866057440565325399890432041514670853325046799393407349251897955017022898582684927784778904388673653210847665111302521003575561213452626522458985062464814482681624026096678809663709065571967284360593819463495043338907214732236112290143539037340872636239973532405789059256137334921810203150386163142229171543594864767708182064419997381961120112230738570113381042423155440756403214179155044462467322626367657257338327734146314809263505750156212775311586647515280449350665829376807161543049932800598759852598471576712917339840739957006319915113833153486512706047985446222712580580259301168359503855385024164269692134416064809872231905216136693392201817768877481366418445235817747022155439476824640448028537648862448636058272168984423503648316906512275228982180979495795791060711015276448727101636939306537589784246289227808579313765950983998757711017268942054784105211428655369171383949674298561455153917243579044877766871417255468844453823571700302179736346355771731770638965108836317183079280209629648012923138473351534668147287405666813835570115909407607885767684949453677428455583957458408448456428940695044631127199933733336548734740754799915488197625555444672835282128503545590429183462768648034844230810916947849308193897579182717697707013793858862652526742812374751996066382132550186547745936124548214555458177005179186406864017819724017877126783161740637174825156294459650104022764586162655129555561035500670125621454429036981747598162157582209691558594595313537829556875473271009468075310996057600513676759737700337718400379471081135246589335540289170855486432913333143460391920054386688648974360007620116676790718518020727419264677788519041228139626593480167898667341969931998786315650134694810381740558915929140938009831416389751292599737564524194932554200751730260005208390798280103978504662271544084454160470644091465706459881333022870183716925795668370587823320980528433990789559784008209948555029983784911851004052177344553091249618593615482286559781148018342655768608914246533270512472108148029094384596484082715884787827165126836908366736785210740937468417572959951245883313175030351508217188732243140894459338181087224499795626272182870600491489383711668234528288755796763098772522618237640665696820289630136680038911350895924471173903413312834035582813943892083281354441307013788735819000527976991378076330113326783614038554283019606582177188800801201438701223864847352820856318292642622592045281076238172268224230876349971369470616125912121856616179445485630332440916370349205275414563047920073315749762267170808739942117536069716317028871724777486167973454508642893183401606922424422417646372401139910623931871555436330115977718948081490637132561883695642254065084012670543997475761934876563568431438738323916212778326444570000343218897920380271385857852934337094978591551727835993488102666231233852926993994567074530819654516312677692734710941355414278331416180656308993089589564002092949904786325620572595663767220567500757555205783791272657926493682744118648127257391578357239603275667434175754861410783335955828383410836029367864022170747289574934262728114460265511946219460346090905532982745708589951771357789650768645393626506750036486370291840678453996035546944926757228158096316016543579411650724029849811087682016988331057920907460319898149554112473295621860375135150753847524739994518117482259794564494004435244391596755938171412556905824903784314109978005630632445133941068666103448783785721574982129175237480753271765472494785911305509720653010863556390725983030618624418738645051700357300726318175987247525789266718807023826448827592755937121331946284001235027346528424561784206352467010793430555559545335807640681768519133549418718413093233541975627876150783154965726036964122546365707475676773752800823311969438797742534759150069211432684519135707438630123364003623811586175653692917570731072584744148521126150509836493945865557034762129089631254179470269301953371108296981932941297748253219407297828888208446408276602394694728958097474452735410070000688798292203797476850636351995791907803922079826924068489270081495902373589824089708497031552735575499190143555886339844767867094776066729924816916477226686261514143162891238586972741013026029297607253654650881767213017243764713449555391878079848013706638810413957238517917436039261445612439414578729853126735086125328454347729581160299213118541707171950379219720666986231431509678879723685828425638196998418760707603500452401180255076469412525006031135385181048702035606460664770822491868074505334942545025749696156091846161425230022164135242918401756809252507683240054449777097027955941511892503189100107167843960748246035444452808629045583647220938056107691943531057605206008088683510705616046980175184793436530469019342916524124000405966311158640814468397086344592151487159454439805755010846539976160163276775366400399184968602450916530495205286991302014716670412542065154457920059563765650862362519856970631111011739307483719225414723023485392335191513021255985580699412982864533867085313754376269609163768371578563511231829666678050230208682841808021054125154029306307394517223972924197535728836747578179904812972510230186913340903941679484831737332186609053767331331161371311596680181964920746270426823550903861554590412179189376187327518647296364996163224786052793625979136409524333260481759575961150814483733839405035542894583258630948095318851268129861452439300907936635616583040066251187373987407523461061270911664320293740695063974653045149481876902500209025806378507334452204400496561515618290343003536565902546952700538862291069389693866127521393782383915667173238924003774451159031791079640850302785645381091956336587021772633833470138526413309849800945020842949668285233139134533414305340482461491833200816504314317535366876210140862780655127375554277794176711952581515148095988734693528121085527608358481536862076617729465270774666315332709283710468646323082268220099772077455722254634654666576555335364112885414663316346236745291418233791774994239835416046544682159871324366205449617315615533208975280670842648416865261633055945253698009148229353217796235774458516276887980426318840258919692615020756905813533650522753194472390365880814762722479727200163407924506763064036312654515120854655004560287929163940115635975662262709763485833329579365456556011054552888811203317051439541316392899602292293178214163588313428180461122659398844928535011984599843911714413900565116120425209332717567684494547369140725203003806139164513077843067710118623549448376588106160142706241110968237282459162441293049486555962009954489916429132268409187564051759014853229447624497402185091799940376614635092329551672630888299889467045440590580399807523969259179745894979153518282339763899261308807856554381350820297879860449722810195503379431986129645752669617377489751952235191365938116270180834238917634202057853590855355480241428491610747256125360737672555631190531006434068489036805736221857851285118558169276021054150396457881398888897794460384505807742522533773738936571533723566335704547256342986606039462769465030664299485015354580697112166495329114429065859068796583905739737895158923966276277026950317340527416102812480391886597636727211709407779435794960156149232836522389934681327928841003216309977261818305300887838432530936048415790417194140708225144194339121959762370686631023013754584458236328125146931158135969200791202324008058496435729447566204363207386941946108936572136774589217125199636945878246068539828720647059839410882391605284071680202433340866206581062981679119811150134944778251523984703879104378611927317827182315314906109613513248016111459230254007122637391835312374009254360192266861794590953309310494530349392996463426138569965768848668866895124226924369327991214459203543475845118104207889700374186001142042663856658514060124781444724627932518225721178527037714690996905259183638179935594459640715153000347867396076663800192163271285776100923432976319129389592779008587525056059499400503299476767944402960541102658497444016638550157997622807474741200986418404501892618244021054168841379999682495886111864421364504297505192281708638279129848135489172352830393101115847261839810945975135982737880508373293012327837530520251111775467114893821165847426092423407921299648515896349789268043371450755417591147776118598814298650523397530165052523963732085771648958169008682192429987833368517486147465954801732593796751023237053638201736920742783443086359423368353599481180187805234032917776251902375507280785375576528987305508072748252769399650507006652352938004671827589697407034233694469629110800050701362863262869940064909479681864345131261577462352681541140490254656083771990451928880720566758230509682009522081736070298262222543588030521294017962654268779449940703873287219117389312237624595628586414691788283886098222146989312500368209215594690928476890253875736150743405848550353629036725236276547530781943922001412966148425788031267845574975453412400959142188244721775908289667573262679937118439195090143800979263979314476271952799634929974884984329914316748511339993378888560586159706122784577182458375901005276883096407541215634953830014784351177028497292703339422982198316002377978755898579792815561632496491779022328940752535859129767427784678680553041816192654681677050503272550752506292725795037823896583710742603607408552383037591848563479829205478952615444729222441407821348750184474084018736588902814045189110189003606508230354330580703283063840639935141586478134196851800622643844008977982851692498934801677153942127497554093924053167431415062530324345503631151837288615265802159096220634973042331899162383489279974779427944886176031379087841015351996848598214077324340928098264649389774940886072421668180799366722468235728878833767284874648504167484450387818315151248676676593674899508527034445535190007524966655549795333722080165889992080926765328268310954531347920789007112197289939881334754737825015906716610145173171875139162651822482624133769600325895936042360471833321942918908345624354610937560421851474494747477034299797031528075794397041384040425905097898611592060979605505341162494409073558910837863505714480069145356135728826358525825448120837962318799659777659369048908872577466273342266389160686347760685316559253861495572806461006174813014358950747968677952380496469828975385131788073723215478149427650702650842178499068464636313508407837181666998772840124402386370099632516890361065184446073329988645573216962575095902152627118680164133513567599127990342062637735667312814957361813915592192902040751891687694201054549320959191052348514379632194470711236557872235233865270288649785057320220955106799511857154171581125826945866072953707005874495660979989649990888997802856403180822979479367151088702375824872854502271435080581003799719147935171541219166251004614332279958680882283384838318669988536579356725386981934382559228977946806926543389741338157101411199015251436800112523662761826010968941290800049517341235400888731544503603457406886232157640691345773550206867125298169885202095836802522056260929971261521582432333370714709048599728990677481143118348743780194328832769812071268385032019962468115912890966235997570716420786218005678927461390872185407451820687646502593431740511135100480383840517110055716344400861604542759129884317471529607201468824945791604569058298345298510841276695702145964102569943943058007534510749557672721036929290660028853689291710211018381756123990401533441785140410009566957364741864934397862570325937932222461196900864282730791625100008811814299423650675381211385136967164266073532785604856802863147140235183386063349186780573659386403120206618213014651915021084012416136062671593283402663845962186065868148397414143542503259208328317212443297875488572679103596048171077538188827454835387487974262131952681441402989714013554314211411239843500508425601427842026054792748670337113261612660373818696437296126382303018162786454220346703597557105418830073194714549980450374947840377364604828808904825129849694001532471189561273542659302263016808093577591800419451553363870080541919851341896194988385861836647706087106253757038805523073132399180222269788620692389131831031249842736545328877239638272795756914729967662852199860053494735664369451258036036244064893926876128888207218942082859279186967093829497599197345989525745741389860069988678724102411865821487952560810858510769408740435096106520787485851325214442439088217553404499246328218816272298024755555336989981275326632355064859458413677906116661325387249788208232935763113270566767696752260655638889190330595981729506629075506712716119811580456828536935359641647155729805220050355267063248648378374911929238963600244196921121016168481763400791708671940275613679849893436780974406383781645290678125108685816754432272695755125977190905921506082415477928860128261899807625076338839790463493004551851429052282566768158256974667984168557933582509578418784783645885143811770915602926790362615340902233373330617968610503529598418750170147196909739339411560308542334015945001107055747387032129557893223493361507485807001508898624500976027095566144809803809106919705098525229569621969001201859073168626900102858057885949822257342744965512539771031996649759187075998788724789987680169905121151709007058930134483114297247226769609598287216789366920529001557945357956088718650918348552535753152295220276331607790315909988256197106164277676530747669620535882018461149200277465918019071709400908961020934671686445651291818725667420920609437706013715956134194435412669742568571663629702202351324797008749811988493393188443969001060750013337799659492796654838598587580340729325031394203072490596947298235086275353028784115644342492114637843772361695377938127314271900359341349468339804787546223423383977949241358309426335166987180663729169145520296592770706534500402087367569658337098138906099567499086770445695160149761741340287216255280631033079715829405555337283755451915230464076521397319708186818370517613757276031927864522821324943033912407051308034869759041407843313378430091324310963353294246315021652226366183207411211968605867847600557333522831567326382476070510893237455269111707830190933537996391889298760558364701532922890381522660054632319311166563262704995029299800715030622849388285168552179230126865746665438786057761236029169045799769016506095426714855863800440127189685664334307428344630695051082654392146712686738932974906206840067840505926356295432442313371612984239900831282054458580279631104158891349495723585146468026012468016731455307147410427997050491194846515302243096032786575958419441268861106487319890637812241579612714755446577688004048347411754690567647995783605817633943972067176703227345184941312294639806326704557151099207185596925387436549784325413739367746033885910647965017680522198612368675919041793432786266333811103754486366524377390083457399211961756063779557452152379020097948177393739603534756517810101069469523438334247069491710153114511246720714490139744831284226380619946500421897126518351064752978366890506010880063633247579951881221703276477212970140001461903682097721207385619845660999047140725517715450477986560044495548146860901174391170511869320714144274102236340598686346722109707001586272553461610253128655929666837910924811956545869322820881977177230714715637825521829364716070597525971205469968592128739465457478104035610023050375283045727599841786819943897263014321213968739135403284290807374681026748281564168057070850857202019777949365174086252645172691674994663422518400084241401225026233461700924191915736275103467709473319275488277147224042766467571714250001968399804408880702629519810204723991370132538290724125989609324914161254372041705455770472065386353912511639674419224255711981854518307334213255470007536966541384253567425492554430287390290796701276099803190181226942006071026654402788071557559875751790593090889660462768469672161839386014736227579622629687753671892330547689926717565687849928520077313833792811522515224631434949310533618866017175747879275730408686944456893538406143857207218694707112976268485227112101668665270898717169486954499862173896074815274429162916822083338881162261635578813435030213191058329854582925257237401119624234400598227001736050127633043149189359202394733919157149202496708035677940438629430035270952156738384175682171271801142723090694085599869452930332608068689321429085272358545078849268659510175109576804948868130054861347343017790510893808808993365191426196054658748882953001934574928714080933564124706375875768685062393442773557826813222237759108963673822072443571207273627569868238196621694253107325946946130270850391129741526287767575649692533236128591934475380138089918029133568592857410941045461783389984729635652692973029433711565493095515902160718805239742494621153925171848955678129293316685718744457433788490204970988695561474794088691709341808850101657892683243914443359920784736263104403342819242252305645730057146980797649159723477618207324244239627160888484469194475993565786577986612175848356704393956290885331153057266683033840736636526957381873758767156446629896124490548738515227738972669644850011470046797701187866944680995939858200397129486591050556937353259728416443453010578944180618828016395360769481570738630920165535846277136195812511640895187113250880762226058294438646714275538028165697720698390506915958376181826326070515289506682835966386205318966441031353611024475524269663511552604679964629913433974033359789063578316320211299291682404714463033983176767723056556146471269781777296546092120651418404633808586192488141117819230774908014711538769200975617196923661309663619267487478669190507359291227155047543007337366601218724562839723974732100214302208329662421294513455342950498997331840302101983612675941893736707964860888315063422100903791817305137633908414873912261389006413463406464142853775157155271942694091189026309770744986690367575188773797927221490455868042004384436954782639125206243335143136904749556820634150937477632301368168090291212112208913122487304701856748895275846469221852986445496458286915678020625310535250143200082756937593134920623326458349680018863240571511602996688855089281423629074695596425909102274005408427352094675676437262839244810288612051897029972055261441231955930629677983430749353445712988571959172990083483149363323808575130103421102057058216346276682837617842564034121643860063786576773551543211165096775321482306651207881805861020108324670035775634553240694358868406748840132149527255247104855994578434324664815833265506874213193897601487743956261900446699032577358041983795580952754508298557391099420452657152330743772223202782575940335653931977271060831973376645795075752558405632276782233338355948317789096857477628277907129612846513618477192824253100598006997175214143936810505794362077948358912386333102914692825962257026221843090461965148117940602762137093844050438125730340865493749415451618765131739036762646197349578429158059598435207828460991231348762490594826905668221570455507872310432518292229625668819890117434915700232493729383887020154912416716297090981167422421973555302453884971314066782534749962525933195082622318999430876275482104544869912559794750020160618238830978375655260871602398231970615139456804859336968346202666754799355906131216889570100728618584337718531764584719890332785250029691948963192944350954217676539806344345825422157640352035215067749932785452976828740605926551560862155611101712419099855003230195714000613583638154262101566182222656511366160314517784810151872345515035259638143716522774950256840856232391508930248888494683722113713597173010171566604259588613770501925140258616960196241737830774959862782118905817333338275216462447260603942814050205548627411486783642847504070851326450604375372030110980677830116747702651534373810709713980618430908003262025180028760564531607958470283650126211415399950030232525114803921439934861859454653138506225882738071329025945940812842838544662663818730243691671098268372730994708367479091199697765088946808870444398923474421611538608311485103104842925357839258835829609001401366919139949256692932188540302768664227568369414369098166239116606245859295769403880368513731582711944938350175432618204190574186737286978422709291533939281016109316763583303967434016692808280506431863551019819304166326830023666948934959534373228578224031038733187245592643704661139907824792585845786096939653041767275159488227260845597134877409325443702813447961852562822882104678506419133711630409164337544429835683621670119920925474985015561975281633729291245601951271654605422708186615579095424005850429993990753827725457598347220872338009671671460265400732498685237770733174355088557629115882640966184925628720414035594643837417780081022244240722495129851556739904058988557089417620055369272349031493840398149982556583910373630305104153327780731103748651665953845987753638061959432504112867710850288250692637769687396631321734761977806999769411759371069532273516284385373714598374326822687518326051441510226146832997481025847504800694823550256549121969580062666698753981427344346487246389825814649070946126709844400711234095203605226024444728363053965229003325528747544016506899028205841825765696069031085411713328272886550209452488460440212823701460433444793646309770415143951152056783122772490221726578061631925828669362077182162932949417251451150469484646313093398649034295641915893467229737989265872680113035574418423848615525914022799897998696308221828969730422185681684667369298083604461132626904843494412527586291526120045739116302034235969174989234440839121881522124968493405358057267071466910839924302747208470591430938398018383815147433754266135116340608186771138535769423588999303951902919150687458060724993509391856673389121049193632336551414301905019364941925723244097148415578375259308610386118229272036048365932567946785514667848234299349529512410850780402449523491779194440711611611068977044051595324207680464644319409377328883518238876098847717488686366730901787640228337789723240351201564246628398059766669343982490321352235888311927129459724452473550986308569534288725491571357659549256538508698974236271820594211254667343977597166652206387177337332466498928441224991028171333437685294318007655007367597822477092364946500606964630833860379140932641207712626710656171470974312640638985316701428181552816782307284161971839639155509543037491206908656928442147110498997484987299249439062636532361071351251356139632822488931810804937421657174150195557740140692801720635281686058634642862493696774241768221982669015168982379941706450951760821292225095442553767935140607336372287927012409327498119624065965847654699009917608103366517170184010310737283733501385042218881523958342034085791496348307516168505991096587129542704991115737613236127425673729508338773774337382943542453682212613404487302762955649650214561605643155653164152453076095959275261549350460527379342441203667192616317659817648145194700813032633544905231903781846749475964682077343863195464158941698050861097763536362572139714051490027304139423018211710342525397435287122346331377489978092177683654148349518797228349995056720908296387518208402929020017775117033863489681646510428703647358070744315396227189939714902102642562399564356074614524205502241930310690192540286106447308814821279440016403806710235430402595202168999238421042348243827320298489931257140183023027770995576870834501996855378084911655220673078057021994559747104872581921278003152011008432491713192981283710814533446107133182993288003509616177736798657191774770592112669196883547337551504496766758930391663031255983016452781290328550960745342321456651354826270386323003874268376236095645941240915368493118141058605354434504840735968846587761496340909471149777370624696582846282836553399711203093238938153802899742734634416315365225362761623785698029986274125403437449184716286764806799038729014246068019990473894948694767857985833301791499364775782324325640964912643001942703039327209974541577462524430802070416957715135058981104509084546466864589275432927164956291450289291820906915949163323658860654734102524205575564665705114125510688019720049987345532988748490619298078805728542695479225229732408408100076197534233555241848621468602834237694814046963120902048168687646004869131007711264833894945013355166830322056495087493382447172634244384614484600245788937666135080250834559734534184179687381620632029809784595156422085889033386170796275400372169391193348151974784618469840932180876693029695270131296769762232077859878549018952083741097621120501774931538605245052824355330617796316946753183580251784617365957892141548446830617286627768812559995736631818354019558292576101008582371957508659037800403371979331385856465699400291164230380249837292619848209776222074797007163400197759610799709708490368529784328754507298179963425901100705581103460216465716856384050472241377170494133674522707608439850748306966636373829051212488542160049356251808941682928728165328249378027709758668481112176708018944707903000626368297271766390475914930602448242544519621646446255868028058586890792300728480940036378014376471133510021877052295371009234665358327366434014877412898183566128135299898502496098804004665456359694963807829386302769631173583254939111959051996024498012512867533339134833127355971460218353022250758604223357548608237999532861470426089927244077731872354508462875099256553800355207456241540956647433827049993028848731902967220068855205850361294678779399871068312173591784174611048681946583451057076180344421294999454374188290097901108303902772828059497643521053841895850193093489110322500050187258599317793017871952975441817230015063876673708489504448092803447644146315455291650414680137308304193456659410025337731049247842068492722692003069508240906084657057240708489243406251842321575848237660190895979734494979784888960343916450272884731846299717799394206899807223446963404150492788128809527346940849031987585151519105703539649492477190891982392299593609079209527130124274583155660639760614403436165162387719094177392843643743445507073623101870072180153010574807682738523375284976059472325865039874750590411468279229238920738204421501393202997422723414757054807456094967504584950327334970607371998034409725989236141233957036723404602393127589469470629952066113139436827687847763207460524464260236629596498302587839004069759777091564352187855363566325264216505249084949696422464746080461548991752644315983737698549302715213679039476006332097963900896090562125014297177914852765355702678178514636449731974510429389683685001092869295929312993938396623782392434160918249822167619723416238384594113651752037725113983820525940353572044001241977005242781178621187954821670515248105497357980683056442825778505690334037259741936646459459638190629367757780619660351447824672053393041394309065812666425934804549301712814267538611277333346340161821486015939208169572732698328462661422293218941692676470268215864201858383186924036873807088074133162365214867480204814805719257373400933804316889077944297530307255016726029358769148170105949746640555627543004402519160127804627207028208005984471074843444057968313599753981998223827658779098743354675902600063011568285597174873742109391989264806753379792799714887944515101222213279300353492374391702753688460312272461028671616438124054259809469546218199300101803222677144211139449789755489781600339310410697149153308859618530269763332268961578984331574064573198234307813700194027954687341483662734171695919182847213075683311037449493439170792532175698789016292789056966194259353237902577671192856969545136322230808557784137214767710768449021406351260903084354599866984590838501443136469742294187970190268947662525512493289015326083415166576737068783186621653297366604918454570638447479937704765804091197817469129966429582097142985883309948098866052026916362859520187632253856655490544645625549215188104179940560418492250004307458762063818986679595247876572661923140034599495151955014348174282501869342377339504994399186861981537453466385810320032036038560383444723215958374443172774554508514709661131632107454915392057731506108408150191879589101803301699077673468479525999554229984943185803910575063081946435820466521964209556124522032440517797700219178125253460448929494791965439514641872111670324107334479667860534646903508596317053281575869026393605825925723318145787865007875413800417564084948221358649371477118391890395491684403264923826731382589184649451298461844784101503370963582492997208654257431764085154988007965743516359497477442568069483825554283949723068719228880649722784087882496322937775714766500689031834377351302113850893195086502084875853247171325648033975621489847096716717824240253628561592575143963894744641984945106845603831268128496218485966499270577988314469663146784012708668824074132926176212171652522777053844293805317940610296987351747481226678541971461775539796278996483015271901359542930693256127157127200374593129202027729309605800255818863753954785790956073907652919623448921009627011207664043362865375277021322420933936156883861783905399729737065463553578720851792863811259902395948950331384477441094524354423794512387049261211704556654014799486589300948243778595351881440821770267937099877464045190929924480980497271590266542563235636573403144795744782869624187342109798605533256772734995081793004833881716878172633949851592142518815049649416689869862862603172501686452503210063435194348244347900074640737523148124823907356894637362034016627099169826800807766452294626766295339711664752166206939272446175377435608398121602941757051367673836187692238831031945230670879036348449812639323477379518907063616107178392589110757028298712374900817406673152393073702281489516089303092898442772840978615907533215970017474661765573030243298715674234228188027939001220315510303482921228351645903652916623192478991243747160972882710166305610281206416720907426440040449638008979430368353386877741814804521076997562279525877375662025288123091231632742949175441344794590948419153936945886257767724746480391657127080141860386353388155746921824442535366097287964953716360556167645817022662456383794930405782560574036758216195032441454605227057925625813565754074538615476553046633049551843656327780668644454110594382790765999714730079369839942321207292501894665263426243494835990026171803504780116723391461854000655920471612735341983617984721294096657209830375568905976931327185120192162787009692162941867911689679330700548203285049947964282266321362827472911314755594126706303606226397963670854494282165834097471734101942719152599108631092967601331191488670794978282608875143270953718249951963256231898533936561936669626090868445147564828261958174207139229432565106319556056539038551682634460869274950904832493721512637312893743159525433500174243019813564070224258284866909728924449926531706054283888896915309559103623477526360433020859094199069617690066152718916363162602639504377200874907739929817106674343579853718419553687090286121739959013331164786722186774050266861154442441341800198306893683014667940515917976654106651335280402429418344331181604815264788906453676903595139766756818049312407825379179493608271180406494292934350283429863505627507035704021158070398589378134220877700680505081497621574087979068805072183137426429144427693780721459319434872446586452348655306451603193711243910705206123886420438742093356597896358128763439144676185307065694125002599238403826952558148769195734842772858843038071803886477971256096997143715237007202280714562929908457337173343843640483781476909003301489614860089285983359912393407787322559109178313832002829464453291718720704775593339852237039263850384067914162974885012495452322247866494812779091521901341347343419759442619278263232085078445573041687801484357057957082637116596841675622861320422580705445431985809407066800138914925813499728259611219427050000822660985433638952188631484028262397320483193176740997878113730868439318242766476219826144835674372323572110799972620854157890852855012108070379317386060577978509892602995495243783240368023525327263856036721491364749470303774762930761813045778604568987363155139420209944862421555706510913979674966062025252408979016535401114926355382603796523757244976414777775004306735530660688688247156427846147825018289220499336039427762369057981919294912655075607831536803615375229008458106537769266613829320638384790045459542825035153816197264949440226028851738517397088419621290474250024459882574220088277724153373132983763102665057399234808288539949669956004988484619881007493311634068566102490346547648193980405132408582750546953429356029232905491504799950929384810886243663569406825368415097573849354745399643953840331405373021569182150315090977214847404030472106362738774968184608628796023424628081663434164774566667164636074091888557750540330002528465740423087390368882548775324995967061063291996752855704817046588672859662712266675339643331542085058747152495956050086489691898624463996667841892668031742982726971068013235205471577335665000031481445919368382155070317765871062847130256354546488604597495229055431301381615645712769142268990394095931575447637004948129957236006294660629436895995452161983796453289550258354916115824181034339726880394420557854135568665544682409830020025046636091433528666855576702298225865769023658291622861710019316413991429294589479734790860564751122821905041938381835444515538030727003232467428880590924688941444452149399834446386733482149617719892590992258404006434825117716709495065643622465012942457616577899683007899918469513834648994337994137898903000703197588581908846138891887211692160804311652281009060226607284352878426253663987717716642217147424003204388086439454295374895193850468300967033997611315527830226526935295946621795337963414688614544133949212382826683632458678240754062459763391035604873364607547404974510309591585962814464473679532357460414539638940934297428250765901530876765602375479456881996607433588136092651676924024174184534464908218138844849787798513203465579678656320803374801230548045961171657337735832281354320266470279760398903741532018616000965526734993280185304763408589437224000489193241902324150080221018690329903313197498901656838187218932150275123087994146976197573917839855214476017164290511315589277691577849678369541726631709869393582177739536853924694268921924397316551899195932777974181298040503948130329078387450523723736589161228726788784997220938411804783822360265679057075381327774954362697099214787069604518926722139213305535687565187644900218774884484179841735044266899489600113050294324806367893994752073299116986640647163952285530036027584201411285626306583128171448299894076300719576775970130676346172647310778506906236479213579310028621982698110203288065021875480879000149575627536408759839466194647512063634187891056849250294784776112831320919174323710849290769924627825420446359440566098949140708905639846837981315814789258981337864643193611046269684299679662826686322661179283598302286125242538312297174122719843658848807767743781889397088877644318557662079630049126526652957600599240278421283223534927638418351389274345129938496328661428535610711925017898091587096821979541915591264936015864513660379653295429922134745731801014653675010406127061883189828894751142048297619794679988916968729484907884432716646056307144131145415098829952483744140982187916481403394937132611387937884139954696487915368718581377693787835450152526918154477256232809712940557815796598235732236320867366622200282889584674470879274874215532772512320308026616707740418860414297916085241796912411302251543413894082058801667602957712761923141773715545489547141933064888064437076626817163258237026040096599713770126546998835089478938044581946152225483046085062466518787902720113911392168583403428425847492594067213694676808191246984836912028320082508629390202764552198498325481513929214565808435251951138258748286325180813960340129044947941884362962111101219632782446093712888327583353509491954075514491932353777953040340592826084239750416249225266724228679561222507115448523448088850744568721880731945965309514162500899138912405418664362861699946189427865086634896233617738268929427933361129802334936921361957745949642409769076244689770868117941104115069649470435376926759251066270015798621684050881770357601743395597271969086224395068870209426609105082549724981109788663415340001629337973874137386441297058998878795847478510482427212541814168703014902921323605945663739741614684217297705439095074917099996634242008179667821982215718357653608589803884669859198420400716861790036356329999149800919970197477633356912294064572226214335868750724587318082118766821104908069921770874986990092120122186915683977155336219140878290942347259254495049868520531364553260502721989024588905289872369749440190130707146373793501597896747281368750631606758762130347087199721442623377796843218442211915654692714724732995874660809215588122249173019013079765386937997680942333348432241269496639319114769512953510802092700754751645361647251291506620427221488041832237843160533626853809930234580693160603056570516853528855406847156011216725718379951840527422496062569889779477250730525313713961708476834039083601425845501203340186954154311527354718060506998445239785995107737606876047259385351029043386289462658976921428319643874986222790066339279410793061458351103304100411339773761086325363003042810755705300902231013299551575751026638771901598310733753805290085845512805379517456571731957481855195685287083876977775963999835503534433118972340956682140148525688770741251515685957080240908125232278409844816629064734603806460392943520093631210066745015707365186610827107365780015156028822859003844368717930119750357668748496301180085007319233777885378785593271426916369548511536750726352747117506744824815022670712883204796194193203385317104499695835082645118888645124707094285449990767266507252064884594047501641501400278903443341994227474706916472952818125645295956425984293650421778826814160932366303073593713682924684741752389767970233192777547128785702636550636847863293936816320297220894683950390232060360538970053879833455853846609588125890215646158690093920584641419307925968235430482813202010467364712710737841846404029573259219875300060326573562676360384752246363025442985407976791869537447228427384228693084948467957249211034398821642424155246328417482526062068410049920842032441828849720281413604059155664301314026522823449137107430184113104896084395585902771131747938026901799320745533463402196559824002393622358436874342292526637462710320096743199632520060703036320876007397299813255949751006020311640953007571729276412147317908721330479946905145887715090826201698163341729419623436600596502786684228516659634346513504492961436704379442519670484834148257281503801963411200912112024570409282807963799338538033534661539537679624307057151780803843970987401071771356974717953127262363276854693448068291438821579680434374634836962950839695520875496672870178643241739481609581906482789112755634664689733216050699139633846376637278629785463900981834671212793149186549216208257409108593165503694163647691386910537852632258817596927088544784605956083661044661673530683449480316264886591022594477307874355210184558902209420897194387541242630434786671968585935026347447536044278964191073953230144125326600625975663379347735833105213390589689846931067712458156680431425053449110656585714296061908186048578599924618768226696647692010678565047181903946740026762204301746069865621203593354366725773585214476206943805885710058970505090201624674178958969705010764852779703853123854968661720575292948974499085606850144096260266130176090315649489161248270043696192432659896737164422293226087815930494741837934850064376614876258790417154816220386460085124878109380583351154828960149904817811669817407411888053480870176948205077548903118251816352250550184914418640131599948748592073860010108525427083276088878024936679594945630022914456610163229967770794149442025068582417021642745095028338901373966739645233132830516749767638709518258483180492482705670879662061275810469875654025863810056089275300725179397795619827659528616274950490948310802875817144591528263138209584432064034799174837698645197545368484209436595947396470182897017143369706905575945513146548466239825290302922834947757088402415761707105890718474305145222472217611525358435209369087018486798732108451601839484852730748018173334580301961248103883584049198729504672365662555363397005328095389605297312063298152275809900672384368941715678497148618822948661387899689572484643585567792644936736751877393853127330209854485036323708974693490357156069209833907695227519775514738133021960538644290819841735534395539937232759180432201471162711865706647021723570851223344601870897218862778654892376250145736178215667441783613074313623074228215097170008010239878754727954900857860149019971519641205716767417076399563745636960288102560550341397422117524179188287828647518267868816445088134276061990754740860687855961943104264726135972087263671808134150540124823967338058298987489140378860596507120278880943022999208632178231521064263964287171464886315459702850940019136238525681539270620790383991449072597087012907779707468180190188048001098562827701386463945794258275157751466944114423361077560248896801476887133027603065409252088409416228553502800249359880796705939169397789426975051403542472588354670485299376920798276299653361483101386128573690830487826757949819737208944018529370045211401554343142120333144289390612602024847742650649128029358970097754401669881769009782125730188864575953535778406741877732458758483986333782052560851357921740410888349909690384558238563322685982665904351022424105255761876137218396200917351948815676949983375734184093373683701644653813194096181386571328360505843869277344874104024909410623007368471348222544313978391123388497208928368862328038479090017846464323433746461575743604078366353891951419191626937969444160957513934723000949780602457316022632229124978615088279709580536446691935674504778380345323896139633003373114178626814696740705170373282437605565762363970320602851363170828407371894822257310483717154065225413440542097041447553712197840751361388994748822501106432438882913763559266932642531148373863288305273055309065302371943047341513741097958039150147465108045993410795971929479758387480732065853933096251677911976234162749938017577475731354440907151231717965791514096907741024452293093577928254741530993412293403594110578650951883096802250405250246119788587644524301568191381758745384372564132630926434557384204266667257725053471467015501822426884116751347790354948203700627408981736075685518463635044817606350451474695163878633203387179908684376865076817997826631102906474996109063229667614688660744752314341793932808592245097011973894846984283255268649520747888992180634679640875059144209291145365310103650936927071555872997612838534082064995156633455752924847452217356334899237363810194099512326209818670645518140926430380847782138064812156030133033021483608707720249716527266963595643429461324689536319113638440050791339997314951438245416881679298615847526640068521652477527905745999041868188894414797832409634927776072980126890237923851218151170098193386457256724032631827160868754211770080443856353046821275393855674124666928903054757092607471180887594892248086066869413152323815513777114913187442736376953032069276133194994850780516450899232321051705185076809481671602846129075653795825819381890431282912935798915846239354324508824922314210336534027377849221576378908530350734584639558998235788525244139806973754331722159882692464924501463013380253333574021222506988861798087612583596753974797741719278797683417345037330389393591713341911543045173108734358103609797908632772980811437871496737554606076206452670940353543070998267714211673146046987525776984401993510328804880391051625236309855876598271613266046916285733260592167726338575612118308400368159864992663615742954211231805531689888993551498837758546037266363617936415557460130734334191304794034500719645654068133669405688940269882894994516568595038708296341312390462721160756466305992084831316160674286896830824364173579595022807455303998768248965301479117133608758524045984438629347421853239754728806408615627312818235806414634116782626048307992149622041726657765375463486590341395289047245600802207777548084150979781788945533013729175645904504620963546471294526621029088258730537690729522187776307145353039551938619799836118813816218658857050974857572109265457576127701427191552652764440949888764005748869384481910177939336078938351724174363704426126387271834557650470598272729176610109397511744022858344597070682466969929876966027292557296883329054566176680777993211915229836824672399714752334385142346582051789802931467577246885057164394890086564586798895543206450933240128423439813338161932774487410067927685025645903324224067121196367544024716087641881545821833283513040517605807487291420475145992231738791812029774573821036444436645131989431208315088909028352244610303985875857128977361751737722579487765662919557228805349684033233108783704708282888634410731236928735255147754627414863397455006920657570125711820916111394530421912242145636097137657695413020521833226811811323090625310649425703330372292507433199925543391962972943688260918116055971647819360468849411577840252475097557112914517676342694790060580647725414219152855715593737894230099720059019392785761945423655983812342381141045536900909529197067708165300597826823452705795373131337857478579559536049258006781145233055639456349521304453992669344443068740409787765916509139794761710954582468747691070404306540096313986035526325349342302686455779986635028247811431606656581083791423192895396607171725957780820382536912954464182929661098804193540669017410365148947532937566829915832778074626648576050906585792403090904664861501935969408008153281616777320140217704089912920561945398899807557592387257235021176221207143123990235292880283592407220180805072067995688533143303061317300303900936822186715637851016491533488935325875039193906956070672327467135635158666459821399778712479615183363944988835792648266258540385415908545858515422304900669854768314540050908518777768173279713993976034819307015968044853728728108788090567569157585810103584383154534985527352186765940837399140709128141510219097861255868465248282325259468597447849559310733628936896562959290631337994637333456606751270112912066839606525957625097927273349976521903530065043582676017513451758130181428176861233856133943872629025927545874026793023126316527440285752556691616369668385700944082158076262837030317997256082862406457666935651728712716607173820061826954536882181338190089455156965429907522036246889769862387161156104757754311606804974309005207660043355954428234578057127830681892178765333721314402692032095498436615557187509752778494610917482589867333252957689883039324689209597652580382169611141369631301408008373921563092898520086100641788032404655294200014188676017037607528019849605598589430690335277305400027868463274497920421731801805059935603421372427965483361374805120995240166751155410321624348543455508329105544070677394930835476120406580214257844030439819403471780930519597941082553840090570010362360346839946681425351433814752250135820966833117187351002034191850207606468718022031904409477792030036119321921454060969850502964572649823139778771220948477383363534268919076608481316511218562815800957801100545689521381954724610620840475205955810227031204587128790944452517522123000047301926965246765683582396107742770882773332822568169460670882366869185715962004206381210505270945895161548922789329720332430200809037649447250058360192179364421772557072181627867602495895959482659031902802340510166030607211995895491974504101066969538254919399018577502009934942604310713836303036843108807900790132219020935758854904328371055731478204633817920547021404448139216964862187389750964942681992729420793336567322301572639875292325070248721343393424357021645900735641030841481525029536764655822469160560721957467187339901586510413971450621029421863818691555225165722065029588643543378455017506559397313279264794936384681893131585299161416482457359392299149703379254003834024110160326283507175971575516055146642259953532972977487656116542292203400656467405141797788395202046945150841515178432228856517465715037871684715986271730963365842397981354069246234183444239732977055081378734277622112555833153328641482149320521692791697077340744554997372781923238984035298050091734511310776310978144542607649022116258627508902409915835434774848742819213391359754451603905530111885842695042766780725429450564813144910068014115156545989523784377610750554129650826480009884253340361833002370632857274577026274957359359393827195303399203969170058781934795271395167017769114017490476794163718850224134528345653759558547084378603005524132779855784520038232482275554238772823986062976353919143095009238506005628875362269478116961237460169168851561968524887816436144806139341924905000898053920277892033714172715765691599914750642481521538105196579534939991457543386947047678344752088813085971459123690034015262501585900523519368681359806974233641856420479450337269530245315607745471237610550716707027295958820494057028497596328324553712746361519343035425384734022522535354080899396217398872987398996741234455162846971864068015639454380180726215077642754567774253445728155841935856182832852101796702002349454071645303176511822234295323977297986511868102684616753398545986254066932651925927845629415448959039555765038357078390778835520313898588498547230600385992981619285000323581022766964397901980918306717868874672681591407990015675674175334709710644932907443054672406334917878272440517070554205438798864251209753971667935882584449349440183972244075397283582628106657620896736800034151425236766238017815147929632315130331602882197078241137257013102850725845032085291443842566472647259285557898480343985816369733431974865007395294175983041008430420023258993681932373691801687072153368666841980601624498107942750377902736980578498188310959225601200099635546063288804491962549624167578172798571145818445130351353868979001772831189092057332131240653781799783070735537545741210393799734263463147595465223934412333119636014063769159588683583998048281088133567334409165074400838843055069793204170408119525160553129581843254254786885227153909199510577017869181753349579941051956434926037502541959445960453216876076378651377640749817432147293809021415369964804096579568768384536388222683573432464551574690147813132970945147332654963269493891510579069385625709398782997711755722944616677969050383625620544073385345157057444542595666257250578334235613776108790706610201420104848658110799065310310961146060853836246403739067990959046169403616220124454714976741307324600773706307255942283625153474896097941526690648046746213833504934108935800855715451078302234626672242260629674740617296013371095594799784693565703225774267722637619284610923460210802963248194898690519522341634531283986377378276672118196399573865883465079661636903894724031378717453617983242188702548781604878348168098271426376905959875567319095772487588928450129371305506828373438121879456275937299921665354690847319778495771799139218679977987877722162464197859144042820963593843092756814510443685067170669417639448727759848714639339532254444333592540585815565880832007049760629020420881478983346992569489755693056173724115021641694361303393861516614275985692808650108348951342877273484003253573098692837768275451753259546813485853157578275257609773407086753918827458568591720349906127317021903772165006365517105658848011546736186514884276367972965918290444907464748515240650296538358601918516918152873262668945050483675370351120242288433526218254310530931530966912446865116616766867426712505252549053008401741020046587529601071907876015873361306836554735193062074720345236481323453944696647866327919506686284420020727190093677966057376231735495925943446527034923204547481080690953921475800519684801387286587917850097879564535691928871554508569084562134090995403852339090403903847094675994441137215612143101901199939854197601864444344382261800279646187496669693874721164509048737410155309827871926813634174223437548395584402850608442564700047335611479360118699704278489983308460251719350598045119389913333819979729171860598320807913070794750471176574452114429613197932655203217288114376178899360192802718358599673504180764067412853006174541784777316439358989803999039087082043528396668641186186804771463467578740655690398613189064560357004080907390941390215033423506109311684721646124376677931296511170128962720352929666960576123637780104461858019184301554411678180537425483980228611153365892282219219427967292341863014345544624600008998747063342193958972389064251863936943799519322440654540494681223658602607077843681417168288697720661094753359769830819494100349297695377402291994088990866385323147834928390344771166904873333592403874330358239823289826163072655076649594096486005323144546153318799198331372757708362398488219274894323860121732986408244663396895034268102403680889973656622711610247810816602466387179323238989989774722761729778381975671752378410831811407588591688237235143949846992632358474139064377733908675390648125413246273043880998730859150419227421110760213864267827110120467967516043895338960115254709365472261784428329180306685102210901699982022335752459423296822082336263050127949346571156037091323266100045593313309317403594910229232295148831708740831525622176581397580516181760807890317219799417514289491775099970887260193283875344431701883389254685901237083531953606561152024720849270487169263191348175517963806185088989120912894935351205718943877707321839886371753293305903785577080447205020080497041769340139089230829995963715416139938475981663380089089901039186677723534503454795463987562446759467368979142787621587312805568944702835228073457086857921302240355778152298087067282877645337997196703321424989419076857039589064987133803909010975090224119238300792678261012588428147887113263169103998023251129958429276908949461583631079691757597587193027364160949042214128329822197078340611240533431075535320515447310938637888762475237559741748192522267894958552999161120442185992938444232593684744323851805131225011568206680287144962619982389946418863164133424918353092822476342108042597611741506779934317555571301082136022684827854814561785411897752061347018819820718785654466879228968275845541786598042841864086098948189950332212781811587513869443776580539917537706303586035845983369315454562105690858962783635373259182512117867580028469587827408897015350078661104628317514806145041041641612632332720997871351677802216792885457002639895274616867290985288142646595090686569885097941232496728198084539727863476769640264740581079315594185544742745210693481794836838861652262331019607299152333813450428807439998739684315638269604213567110508066134069860385181381752158600140833919120833676753584025785427653590110834144844819401389633861137254183530391737800551655076135366412287686472286071040793371945773338898139283834839173041398508196851648167159657642498969642680956670549189571818535236692550577182080552812823916614324079060337211075611786309678517127978266166857920618263455549944246908133021983444424426440082105713685349725415275769706466006015342598425287606783817262116603241868461577145171101917462131338012143929241287626866540261013369827999550769625901677353325689794267799473572616604475209276349925206104759780651098804528155445302154665438506295999853592244348665674697934431387134214047452333005812795566471374327178220616771064155454188828020486323453268529372831201084610541348911663041390301047737724680962774962088406840036368977272646312335206801591179787445682430442659994803918339454418579535999044721659028148759068526039279196966202569939038150696644961942852877160042972020158662622310816838903481537521493058292817427107904106795951547810159723108422234883321770197448036279244477835262414430140957680140692142349748195216159109044881357620314991728831966449947009962499831908306484578879942945962009431289785400395232628699418548451881816089543082181383617916506868374106415051971310128728964502798117375484946954613921430677902316453532694384578114394757544577733885029881391265767241376456814115126303360241583556033688063216684384041861005269429398204677659492903455104563217723325526209924530423709012683706883711448130829050179114795893786825431963769149323875010167575592801925107020029635049809023893779228214747062418741928567325872943579612889965027847762248845046015822626276993731141849688054031271602978836965917278050252552084905615941009742767250791996232638185731901763724363276440324429094944589487611804697038725095868050143059841539138496573533724643029873433940109821684147170311916731692482089626265604333351716219064173120535871091861518954161588547746164058555696376236529013337576924160110296119954754722648724618823645851383028632252711084466811299217443284913968645295826872160149964115950935317218159697135747520472072962002041489425517311609516006194153844452795358635500497428250453694813390122783184182298686161767947623323427981860134457978516138413335123471195787318766576052530244420329331878173693083686607742987349255949415855947466194645594516122242715346732497763453962016067749066213683926944113933277595501487708664143786537636366580039321765232488754420792344855442990936091503863488863546879979766480998313047116230704221250027829688660732503844693828090266734068515374108271622415927429919670425544144154356301898130623789775445436341694345744532987949832593934554355374418966122344337732987978211999024107534379592798024325684969048120951714556838717657079096382597723422767018880509160761576651486445811451996003358009115438023403636360559780225027240063017207280439303593027329780937546856759008143879832907549868562095443019596638184322103570999361399683468489678787656187635607969677996461282568079937518382767009718390191459770859044936488014746682749621711187464124418213311286837902688119858460448456246320482984157686763724681988164052445212991500900233185637687947661496627690058722067532390389109885721505714934584851731497930091229432330722168539542813795000520591539328497710650445916689892192838864179060070537047175048163106753740909023686056574476136862416843639626783575087867079319647458883238446239380906495369070255230441934567214462189044025442180695747765664878624763656591797768900683088313640448013384381777162001447714443697919067160611211049812811414985518462474876200993828022108307758492838611340622830815711607720264391717198250820909245636250073104769798256248095983708195411909439204766751649858237953981944891176090462289110881706538588411892362990321131941191995941676659810671395651928261069657805155420329727775556271559074138890429257860999030915645422060743738025026712008918263458026201956640000129104458119501024656205331594581647949161759941164071726427397797771227360793571806876193020745284913470482070566989794565894080852692001979395368048311758151145416430824469537459303338930831924201410205494855267369741546534871943832483526448197772803933329165328493069010962623676218617334529032891849866347768581218917743634683627874953803038338239892755036692267278330835474956485914935398155708668215039474803552032901804587371747204809807866734478739225345928057125498096732712099747865076080273987549052709940691093658419207563467496005494820996113113657699293900473409444367712904069827584131207812509268983191687040409566126598816699155102920525481761599062830123256613522575447288619614895349570188032204721603385631761699647694623973039292895741394474259052958724584496467427880622238232894484700031600547599717973620521178059474472364251025804956555341047466648086115922422207022035372990824401219969692800623093375608290681403839766875094892839949788361178302362830211964428224579314812112141082545306671841409020137158021429938286307664457981044753696731591999936490194215745185758616714442188341368603654084126266718401082495879636630578980174472716751599754256372770515206497676214071432319331638627727859759452333069131033986276522057528889970152175731610140873722711441563927332907272428302024095826979571614328640184207431009573854407946058781275983254843225026849647386602321513176580834696452070003063660218339629222826140155959358172814659052172791698583284424100369962849982445243452402857927917799653951691537398039398065584260969161151244548648940166765548256020846702341724728879124449621190343393011724730642048425787153257150563329032125740980210035885723117730669772977978796124903755718013029963011379863185170138793155064126235914692871142413883798090892126699911163333415566629214962451201074598024377610177702673673260024560392386575659064642248698269082752548244674930931255895028133574186656209430997044601393598096146011915848841288074786494478283645288421932343367129747904135306259385590380364160911887161213340540864901744245263737863046557970958684953947224736893642736799331039842228870878344945494782192700462722218337023989271411309353253615427113713036361073092426769258176701538608828110679281257410697577165631392832332920065182211335837485966589415412869111830807293589531809422841259310259680277700812113723493148760526751886248980740475774607108008276061446373461374914021848391005342605331774401594004800528224936641894287692703457068647093936877014393480155030493208182728734320873644992526206907370153750302679698055110052090913175772974230163176218512799462958816715897155794163576686447878057234176263867700162282969886892829281125309794526362913240626378115658139482195177176844723322590321774059392920124813342296579858915580969673901011351912860275866971425017317871799984668968771974239745640509846272344361233084078160565098150724783578362528327768195402402076068168154289426658840336169165538489366992638159122599130533231376354750819731055438016134996460229679308098652726461518318505813936079656661807271733605511998905033876339211541405438207722632773834396112925618892673200393538516196795047086584064526157026532426262988891125087488562699100416205666760954064830896982061790114854112952184077211024389339945406171692380473301785053393984715279599800936023750223144114463446115495022539796526458017985995912218185542782919395063168368290283986640533647940865067823766999428617935907369022699021447387300593980483741630287986968878703985400928907127984873887899771631072349177157312994983009210385088100883581752194931273322092614975142552893667746719895591688305166931304822149414253248652229455546316466052519202063234643319733425643174352745347295376595379040863921926853487910816176801333268772470539785851952333446088334447337144677207412456582774268433259040408719354758176493399816468364806476741509964149255857833570844916402517025480317633425697429390289618052572122976757893409702933169500354881543678515201987360282843242000493529024339362887308588773123309469357832724910551126348227728686248792810579736866936037016748775954118351412469724031068374640535305903435501374153813389878274018290140131715019076659317917299279895829546110628312211286083739900693851481371953250067654574840924339295502375740644025997804893730803561772067359549190945939891995403071156535447128436409029245178892709895817612470258594000803605563269624380669138582156159746689894798061541121667303319633381917082029582752892742931581166363767016092026125837128532059609115174301354587497728663307704038744534515385829457147742604938682753736715971736396400760217571359988251961095101240551309791961406215967139219199979954832639676629578543134868236684124655423810531876072026303420880181503750617263355589535178375685923965778102945644617182849508655714748504677402782768938882268645971122171075804964861248631733107624216755601053337405030786240589173398175905999655350070932794855247011992153076405013477397381114739068007298160947540912997450889361816528217021837684824742231092822803811205165393316256745186044718878692844952413288042291884322823215262500890455636664754928523716108390225885708209285412464091671094857549016868868025443769603798838272986665053140550143525465073243417567355049298294489356745157561078657293751061046211696826703623275109517379492257702314811901544624920835198072271207121832779404268369314080439564895875258487496422405296922913610366671248349825114407401616898898188319111387905551489185700205317969163114116853751822883586823557709765990314728831318566992793751378615810219974090516855946939865160363781147590116363966407974961377406400189866877130954276391367984260092658458643272673505188075442293945056487252365979253441069141713038664554679268446947594539990091858666613049945439519220933684118510263905985062946514302289869828700649389695768101624137241927886732038206166889268288372299517282602953450461476395011542144015863773974641959556111364137505568726762831593753535555150267278972052375957767701671761860004251314906104049996822710592439701116662185449697193412294585245493436261172449841825545380470801345681771355919645132333553762691911031485831193851265911560819575158526465635266010547241844267690942269204517844333702674350239514704718396851944881334813874438298561426886181494065579017879712644151590834354683741923346115066475131829590118958560834031997134892233093132302706918098706624725333496135014180936652342095608595419945918625119878377753178544646306531873504766272849022294520680138319548183568220617738567378916378204270873623687325746288305613508749391892139983753776802712268389469806193949909085095273074179880293231819312279533568825984906680568079691964829117010343842753411904203207765935355194984084899739247830301535006026245195936579204065809607661416687067893319283887761919192361145324567387670429175446000374267669215444978068318467363927141833420849269262017349529420294136285227949355133600754410388801422555008017779247870737825939561912929152463449840736700433111632879480954234941115707808425327627351929652500269801486331196265611728237384985709838194619487895784754918167458264353269555316789741387525009776121294906096152574865553554412484978875736510899060657748160452260958628337852951772612035335530635850817981150033524884058641538172053930216021748778654124803086721534530472297254449798364622886192551372014231390106859876642950924037822415257514503079389187647915220684146515310516153055306205853878773079847217977200660032465864447817944366213857872062873727941682241780855532700642890058084080633832583026390148817907060702566983002486145578872461591918402967377110280826674995274008473645348080027506157494857816800086989633393254213326396998613989084102865628766476507619113912448581386476845206660589714907303924324218197280268652266510548955674143317598608114750069177099471579414278192776869359358585847939768646818752917825611795615635241447838230925238978832472094461258850987791129001727940146158140487509134135808832935209118396010070003273767691974286400377800660543541427205693816381348188851728670395959555682569327045701079625482005087185717038925317668815215846408798493529798350916729377236199711087972085644974997931823383392100210735230255311289843114664280838048624355522090618221352378737030620736134409080011914567542985730546760362703367802694834329105821319605099946562422892172466312501686783463103806040358771409500512253181398702593475140205631750644702980317269646420482235788919422626360199708858225211701198115241848754592727801114064006266188139798935173002752753671032969980611518089939302450058550855320725355496222159926056529278346533698975352504649037230610434834361771404251501672218286843187436556354896165255300551947234130492196840625578395935444047135077342950071737335065295174295596077036855954164073013299467156550473850092136305142862479399429281163288787199838590479929861566288290438391287042241593839944956495694733528801209132528046261390659396324091153289201009096013943838372816438970692321265829150267408990966697159005491548236749767474956759473217534749684452763192040945411626318174414202453133109725665422445198339752470760624471483340324474723092503963792123819744606736379582096673190606663249942210933157315748194509430701649351777106421554970907619589760188305196487502306820663856434382712619883074579447530454963750065511719475393276489240809533701494563406747908753799930317415576956861775931956540165938801695107446985538752902439325523656020931019171238444126517769528012672312675242357912293394161229045122897597306185787518628522617685234949263768999035228803254969402898118485002854754940902664970690039216784771282992059488715565579226417282928314604011594057586764034139885994704852178622138044164141934432814579717944316916090730865446660836177734190118762206089509195431466600439936030206621596600246185942934687284450337468022380542724972245268142298576930234624967933581604860728886329507933906705966829912902818846821023796231033260404786845382388408530295164136377702329552171503129899737616344294441381814491921471763385469486877955784638836609130732365935990360468218142024500207354352763659862316605904652208006442238586563182740600095560909166879545968178827977995156191076879326023867745627645505840713346081608514155035487627416312636316005207023487799850885871674848485322013496448414508105884394223320093417297232594695343422877027253457406630985214452501394824266315503696755237547396122266844415877960190682710536356162871593572261877214571492090777429466872117232678287017650026341743391968633946785698340134420794441571186247067721521208168214205659286006592275370813113472429522825252327190785342827347705796088090195989690356626120285362910632665018941261760458247671222334514165446332216894522904150044426408500249121521302732551303479424798865905710569408661808185720450320944318275988798661586384280623552084529580438752301337393533065632793284773360628159253786018808876997595000840207725101688097606610266883327914992504890212317221289258405725954177692141765755292976926430808109393414319807814489127621992252526765305458315730563631387202519687452269130203421944259579998054753987793398912719744734569564234095939353957539921500281099722312981339131447070884522903081651191763272726650309262915167016646586077313830245282817022084913628969534500136947513425068685641960823544755838410911616485222163699154725879757581646392083459407223464506512046793437649111965508004553297232688015661491416022641191264816686483502085707702864652744624760425754763268584090435261470194725687762813593580551724174418078492074491746461292945382302301983649016344121100692157647659189767075717010500040493289211994722472028752113744257346357209086060695574234589319332920847300518557012167029763870887131026176883314834909695131599014684559414919626943601259530620132604452409450136603019232347255828805275093681798307425575778240177518925563948943512938996470750126532635150672630035129006559102257623921589073403084179640546739675906619278529253544653035109230626433901028500454760659228578001184662612159303139127140031369135918429824122570101870599200997589512864077971666791670726771009262781846576835139716569317519655580160143096467739505898658332475775124434988173737274323798756355717102502476435022822480763908387269260985956640821456211993057522027936689179056415855190302224447995664694290062886125056362712801178330132756640027222076230018725825859761144830379987040573665706233900624654593071819851337705696007596137730477011199405622804468598605908329036851957676266327112306909137502010523058010426510710933589556671064977953937113604908420379787789640319582195779130665731116733826522597471226807856559168694101338089360414984958322744039958976040347638057024769187708695910462840409228873192124574031121231130554850957473909448379160959191058871569049456367503952539371729448531010148318889928909024180074114924928659922827914896533822804112045391731548026730045967482032615634075378295135865854479790987997210449694980252488136634105941702733534535306549527983586639775205165659838991536700722640321806353107265433908702709530250693208835282649302597418744021799901512256321119734481339679446176754572633093297771789301790147621317514636859060966957665818453854592471704029370572508372075991765803127721500173512922297627798700306775304611332450545615616809476865910215106771763547387674900760856572607469193522237834825920622793648853071364579668810247417014697435703116451478458572583334971174159619337246710290151892292932108173205038766609260989120712937477010231839603949391977708592592015696983293988276217098601608179963650698385943665028870997847313832121583299881587754848345820682968424205629812155419168751511243629968934442316477474572154399849228892126379200520459373334079969671317948114504427350503161788356311028777242397986610363746319853061691358784105193293145938440759521339679994040932002151165010729377416479303626572610253775946870701101316099948632778530027553997559825799808318962078419267035421373896639330963277339946958140360507586600767857020821824432661987402218720506015697014439097955306299310663161359172854911428396461132852092694821986190859153170563982653384298532299439382996431794286929384268804123701993575160232679439924259415393011323429529028916697620259171356831208908727359129993880078613818860218616127745810158007954586592003573123341016470854960317714837264315975004575056086221338811612795884857872551720242491680047944616990550591479718827492191496503443113918924696770469861644814214132804900450789733114375835972531932097918430451318369185919479299962786476516650900888271182993049602692725615293737797401236870824094823638662661660898622949750294984019978396392090771258897357507217691419034188787894152431962074410526755387163967940763076846452668786717352628709840564721586288162133595882940592716414430903712307438344387382219133296503906397696022526757864695808498555620824149229024774097390459563636984139991517325583002391655505000889634967079627627069595227249138628866991568242618960113175505589177865943775810941257652588810595447564845608567342367201311138850107278630167279428423330528530603329257378473191127989756632156937670346705725727795381566061451971824186352546324579314073362108974935254315378895073307377898546706601062650492585166838358587847438752068123963630899881504519618520056843005563814036384827151538422184516709946081016770333025248587843263678767508756466802822349622565152127697536270674107437058757724104985899657533764311587150878521988963633610482487651824944310668400049274462100346740099708740691292577020762866050102552052503172791016157003520640175845987040045805841547056845508438659666522442464044651370212944187683016147139774195948983424120273899186947025229010846583258927263279116582762954463010277835430315425192578869979516706472780201886513839344511505624180252658150012802239864228996297264310464050518103875925368383691890805087620061341187449640680522299296643698988795280331220421766333960641630677390872437457016981971443293488275859605252675303520213552991808638583760206615689629550419195416594328470315359275872782290432299594293136391757484584004817693909607685117307353104644787628194963559659153934336634374263523327051146875621391126892702509810255641495074247083017518005225555862319379660256847523748633422900761912016551956663624765937656812691153149417674726977651264317484105557502115613424231143446574270009977968756451015548380382522277200082685255078716321693427229751990431828334938810424419411846329329610532396317039139896581183236182764697921411302782982509440944343862062720860428143591464576021640980843318340886921090434977837774991532022799365001558254075902389330841789995573281595629200470180983542219668592934412748068521382321767699733137680547420146457432541612620902048781099471834832909989194801211796040102564333112863643095914914724776677893660293827627768892495217539075278808647960990402160390802666442799292268508717273503385698018413666856357764231895487776423175994737742944641102795165208161809628378426955557906321640243323538547474122105760861725990371651211389782665316659355006437797716809795422050243141013514485901762659287268080872447944781787877366859312497068342579388761354140178817261674120771693767599363678504783102062366029286256894654179021181067517369849336756179381939753126690948044027180726602981128560791194874793257355310977606912421060019681141762764538434566729620583953820195146577566903924717076703861259788801848715785697532624658888771480001472470081636841791428356110180365694267074207439322590733516507890599287033726512739041960937654398941332912075886386283213651856396758957860872260843868898229903555149762094833750112205877226280044287278300351947594667874728259623378885083785732328757501065745755123767695601505708619654303333472253362240390014068226141755117441770573098610501338317619553430558386647016765528731744446856086689411291918308455303839316056743973942590452454414665774257573645525597315027907686329863417625142357863857711387808703965047719208346553093462745617282956924743246459876586957120133049899399799173088308670519372745579394761043976386729316792745617384809085875160813925596121347352917726805668806695047395567623125640126819948476894576191579149708808858217704808863764685215526839717956927705423081972998332304745904492312235248983172347520967809167244031957609267513239694286422917994513953624639608157054784454722601725701658330523730332738188983205772059576387245163109256218853037819357486322648457084907346673768701373281375970249435426345905878667691363947834404850072984756709263225081661443370877247995564418156954403080492106212082306710340103733310293590490836080512400348719178098853955681228412952600873695376134050045868019215887564212705232204757877220816720614722084241527260920072572131541832021147130965290452265296540815009271998002369125005997482622197005841126926459920487861275142963959014181863483768079581838611630893045559152047759825951964867108335620939247553184882561685755340271673255922883835386603849829136410492601705944473653013582669357102159044172341661118266464643694943179324709242259159712941167063374836056255372691104017897326173904625374150978118644052433353378347677783141403071428746197446026345593746524383862856038706656605688591581587508832370317550393914165513697237390424891346507175283179982148126873754881899429431633176161945368866875171731144533813393487138710731276392975504786836527774904266232248310312443686206148508781507811823151604291528094871466707129186008363086512071347432072705779535502758231573376992620761710459128202279164729108264235073612368118158350836986196991861281075898835158334188924789348692487975476797608282883006050237849891133499647353664933366632877392731551184945207248334415487032629563236468179481658676776984448523530951509952409051744281895518559386598154896741952622306375303940338797003582870176287342894446528890992361579294079513836324024948614657201105855188475131478781871072949872476254010882566518840183171010549804786313237156362535970549671523915314781034897959247330521184819628283308341619788500176822413242317608498623844308805256793830813605285941257960752010297813136831187163051629742784524809866570232704185774422312911458629247111460564517404495441204374430548891958876771301983891170563677023146974245370759967013176775751837900282135894828034292460943369224682317315806137274093009826663837309089744819145356586659085582730075535164773004663219586984935283305832634425822484975121442555802028662444005142715469704784679920306258969852337246069437626539285384783325022209685796034210770625771405665205809903849020523424051623175536008704398513723491364842481462091971722669990921133169401801117413255652870546039201105502474911513043682105602944974168070202704094809438451186262855605254207167237661264189310052265705119179406724321797965193732162133313733194773667565386935112639688166756475154760146507124451996988326125660838739069103284832067763555261809621319880391737836484481926249335099215938507834454140775489647064279643341840362346872059075651049733678274291022144712630751523434091285863665929771491387616576237028451509524355769016334372120416518289958469060848810692599190727146362602859218736766169537059030791725161332554505241973281011691405007008094687266791406472955226495671025065983978975989519849058822199691110971183557876896390788472713608421992142254192215737236063048185427655647758895014322850664861227919825543061380446192149380594129297721734547474802314849192152436520067291091829062968944214601012715179287635216801198503936646994408833025716977020795519071976334169088151652880677678858705374595491910300413613605358794427215355040230819541386263636276930654441825993937409114635675043466322512171822968605954376908257957886803392581052177684303267376596105198806952826830740709351895863763595963844428822927730393149325159811558182935457451903987896597848004112467148058391175347850896286118301197473414260042997341855408830119925600217837005327038244601685369445676810451013441517459544684418179094616873391095847060858288772480775680778096744419303604378865885265895018776842288670015550644890124309185351319871874611295915980029164293154146957274384360629141093889477119126274686603469320802558584090694129569796357794440783384096106201370119514285805017994134863918911562547165605180881532310148355283873169631924088576668685403059021402092153700211309357357661707407571011528620719524360371010333167892940674775961622373105324302448648654800826116955381435154324922747928313305433652379796019781113753381185220832492739141504334536426973287370164751948962065145506603651738684047888993869653154786417594683639607926080113403378835077525979199493192995598469450774550470753316632956504035811696068217752247731551514448161303269163932540225283144182813460015793280917090389838766610244548516786324756794663411451141909081379918201679233899114739704226885680612768200608730017819286784872539795347980796667275366973332641540031535411472476532520356115045434519419405187101571440995569938408823493049984097567734017530397192418915039072349676499491874851884119904464900199618720152643660558059988863228606975687897471951096345392066156632466134961453300344183045757416864845055921030392535110916617907052440085242716382020702871951523595455983274172023599920979563090955563880847222021643372066616161567786319088106805792183281388426317533029506666684113669881895577338715120714825549474861190380345625183706845543986717281057695103658998053756457609674933036781276264745010173490887749451505911244974828637975836018078769565797016574576867078504680117770708749133162403057805284454631625029839051695301036158789270131058138502618971575774574326129706375186751908159107958126147693444594358164914479889110507223432822139960453103500166718503830677857308290964741015299130726516262989568526799362407131377165884233715036006563045866316335457199282177206331253080600552739680631391509453498253029302041288057783521341925211884891376105616335281575959654376526617344028810887806024279145082079813293395007303259289909265541315775422226408409497921414120554976414729893604977316676844285815328671917551945237096181663878590367712188357418620026532482343130160167132205967682265086818961609493260841141701831718346000400966448332526307419130339274310430873171965926994331895450170274353074467270082314919717306950673212764228820813332749844908518666878868230947648736501954459994390145328050034770480711310307910957109440126163961256250427696223957652855685365791422743476406963916064759704584565749916900553055629976080934274182163989209329554190236682028783365950575408104257270609902777830779284402240290948586415067039773051182837626199772337945038824117768549333357643361424636972366736436660890031408249331319930717723498920421626284625894200528025998743087075113956476616279542318781623707175285935116817346501473825401407974964527284049364730639034031242643918680515626420982225551454748520232650336747688418470361507178959611547940741027612332670386311492633800751495922868543595602772560352409286044252126381070775987261061249160340726466150682362498865554144839507685852697568085705539362904632817202861627242694424387881512060615282605396628205371160680599696880424530901408697271919553831194615335562371648940378873400303818715370186960450350716257931544581751816583499098422884119408048497370398835156639384492068320554583281452011119563125811335033985134981871732804238163928265419392209030194466147303924227350315297114809057157165293923349221107993304646736410983050959959513992307724767484794154107372526044107775375773118716696835560752637143879179110472325219576272830795461498703743771094927522279515542291736103081562589362590302623492401011027327724644155707300359303312202101797214049749892381619517701604183352016406353634866336645966061453892172932680471963695819620331468037880912674024427907882937001558124948002073194091065924122869987734093853034016030035706623826031090448432904453768691466658030007194820849512994890683154957815286985763085959463829799399423507250509959573171532917972487595830272516703318438199757783004259369731785354787801538379848795209446532217646222653048159129656942616845694040729751625667886248171954193375957278064662716847053845806140923474510466472819668163221026198099261623705337445014082811056851119904461184553206104108040411656760720655036119521805607580189774219298128186655050337398072762933688006942152027516551587595001034602239528879176916543659328649253164896410848198853033216133281741557690572897433308223027237862141274854512429879702291300545803353673655597554125820356315022951280075470655327842773920858562512223069212050058511350778488448416023779213106674598862369364422855897139486537991271444479889156609063062914726185216189284562664550512958472358144329261597247356245618525320493133860280337460190143017699224906518132890643419633836690728117875441795418061977626716942506837447994114317195940977096943274051210076697953227599861170026297153498778464203019528906152238478469564813270841111581418897865632721786574292008093673819075677388681222523939554953826373086548135242142301026795503384532275954874522911515970085602178529372617869450230666357354160343044481556692973219812743228139740204076296508268367644808908802180701526626113385214418572919904512994313364994267903029489697091015314885270795187372659388474104046810538956511936289118912303626683123672862874575238557227373581336890993038682340111204721307678240334670270010429241421278018773168432125735970882710474535200640370059637200965108048276577431827545985084167142202919603551801892636084962598396471914099540970846421257336907609082507631503807612185127057461726821675138287982519420072014620769265695835721712394347639174946704312585210165874147950348361284408648515814940037347041413088880966361472635489355833125188074520714419081923799647181850511246184977157334014839059473532882864535400024031916848579644282565093699003377858421823512053308863329863086622534980285230148119987256620719070990695737741333964454915759807881826425521462600448974991199687424116580760079807646401292398775430049216400957301792482464497465596686959156385276175628647346242156936744964021273153665663837026207223016947571970092195869871866013194352861691908727821801061398932688777752634956032302650166063327970087065959625194886113697578431281117841870907006992032920366875836723349250190441568983328636614546734608896973899187999989760040657251202673734528426196035431112537416909952570408018730479235565942727666195389406252695839473177421238523662091077232375352667617779165073959989374414615940365101285159081122632903556953635626004548295098744291706486427597523338777278900516307701350989714150969411311927513926736800953837606452763227706466084552777389848839223045146605084373350595621930291499531150235559558498757331540716242261078029025559358516483182738952641046023853634675713932715861280723204195530951522849491562541531218307585017233010323522653522720837862837677403841265895406663061888645618829211090650943006078561397665817485136555015223711537898074583369198753315456280798946735370736562142421486732098627077795506831931524092653827975734024343181572589603503774265444419214886798959909707538958507682567462012666233431651490038313397729332349790975734947614902247581995548728365897688351675595415967609790349395883233872828820167683148894285112794573810236016143192858204397370764101796002235581560416721580396578432985413998455187574008212331583663273425520982932533257826441287956476242235771831658440707383625842499962667709072562484364946505571467622589748598899959783049658067308641939054961135655955672439346990044981989402639728916294285788859151084807234121179770858207620096675814484298946978808302416493333767594809312760989922498230549599074892393187844639218750895291614554813968614066260530996345589158471116189509823721604858573680104654897615289460907841884941024271777712952801928229169063538916542395783709215367074947875730180758124574114605026429236724696561687771942543319667300020695448036541257722313669841978383872413716055108927670084878749464364191952774405257245511422499507136265784091811579302057883089840137734507798324145557456365433093771264540359125427139821834269085264536598796374444283869959040002657728196370668637563865619153617951497068501223911369631467249727480402341632976386732971198740535213219841780346275013348758414969761068796169312453732510986343546886940035229615379437117582033442038638853094562456762588833059018698849402749362966957587878019336382964024133223317612006781140179854530281655938881846670049343872986471405297158507941718548517632652530604642189024608504072887352131857952134588195631788482789065845297144971680254627894321596899989147834376701101376115739938346159083996970304624904856102216223608931623811775081756789583891213308265110136832471632897151686478880940351402772858734428708648761491891708455477363069570744385338387723488725572105276202717759013967595851481130758930500066656481476794627777087220318862226668069605969404571618006352722409783413227836851388833687692583967973849842436020210596951428809470784427440668656840625143553777475657820642044121664119318378474702577501474623193762549621143023458319488221725875760294082282260743255213703284597017433466556616937232249542611241203393351427405835514185989595293093797646623970405797945318101513368357997732968148265624782691639352791823466084461910366098804907723472001239384312594517039360926819757870571656616286782635654931378250707005310243826896436958026087356901526699909200468963669596404027579174502319352199056440679135535361973910909351003097126668558766732684074792395764533949271874747162156228311066362618707210762828137450055125796504029443799980859291379692139126119911652630758389132134313949228319560094828648165580593571458406308152455954976753576592839033637333786399188043704815905931945142050656659303692657372021413467791797444754200668266467935612074881265569710735103930563520876594058231269427555116137137257987547299503830391471421797480171659230666075149750072053076092752797354529352097609021529392371434885727439687201447438158440088125402268580688886382234629158948215878984116828401588799560685536643826360809624918928773169828582036752128454191546756719762464961261953383434938296780271522827631675845682296982212262141662080991887260976580405235144206813959272949167284923064063160281463521761943139877459963681046857289667697542121463245943917493531747214826586696643508094716652512733718022028850421789928036708174809039612942396724798622529245544573480135880150165976092741510731468880808155347442401806268989338996704615584781992763828524958522508895359986630314550206099009297245697646951225672342876079017673864907150055892585358825956845957205158883852317436914391096036809793793246487131821475530766307408707946506058405152190575668695741118630665379289842333713543476530616809042559069361986181047366237593778315484274622416872602658058127800816214302873243977431939597266908510851335424557759171881625807904671657301328125092868892876963582282351030362389393962903284017851535479313872574656295456595401741417564411334850768831820299092786771316551777445194371387975586879570005741649370651974841593429313282772959510143332572963472770781283998693135888683190391119236962578138472379815846780277153135854834376955468524547952557429380647838629841804434658625928303273279452929942400095014363385849311173804201971527250341713450629531909350896569226245457339581938491708806009649045031479353705518252898267498727818266785002026916287680701647042885378027205738522357470810617360198824620325472963886989811810637892389759666205062643856957808063123650714755730026085866370227406849058621805247611432146110399132553698621416945007666713389206631073928433713058147794338032389709126167905848115329478695952529932921336269433803419561041472393538887222689131463273971403055089181720999466486663081998819962706478926632383210693465174079755190715994730631245499370748322472321307455318789421321300636482691768844787757940328098767917674423106766139846852411144155027428348598904733755226323356669669808170974445395984923049834752983141094804815897773142057506664307858752554919895895292870307601603835298720294564415172566048490751463327277305827662342422397074934913920622884249606260962755532377155221286049935678416543709214111042880754249531022266284918347591272593353354852803691847430354168620705444080426862316331476157454273448530836483689869798265218532119099626896922618083577170755975661429596484618912799821482934363099107060329417803749541862599044827544417208063175847790668702687342185157189852037297945980611899036098427600822603964202662417410098492421499151649128745582818631373499390377777921439161164028332790291732104915530422883550366293416677584981399383499860257886646501959527206915382891636779779069316702069358804138902959115856146753929759364986174782861838203814467311022137725310774423162754613264330430043297150442634760201739663733980920011105210035075648584369284247349092469906039117737975934616117984102988983833102080005416411625869064597615955100061363666561018806880694490418068151695159571798679799143154183610890654433451664872639275807671659748535771238662313596630573487169774477987612953999806398028992239250328307535782509492757096844415555304836304503455767941249819049587057044850912025123228354036569008790440764356083055177987944131926389268605749183872047257248701163686928478924237773902533170338136090227490275250348441380432023256061528914127270737223582877957391569625571916016464723285379112648962614951232998773194828957939132933778373858420165910577168389502065161505772319565919672458774603811069420663243547734151914882735864935421968305513721847467199975042224717265415340418012831952202378405486263967823774349043842099131202840607808234699881040768977134196509807676064913217089522842986051318571263664234977801393773650960241457781892830364465905345280060877619890393401817233492893575949802868547046676112789082650297035378192284796025698960573783099431139039811187227914320267039621744198632827030211774711000960489090539170799365212521436045842521940997349124408111230362375753072350155995018385529954781661636569458848767784046681067232954228731501399496629144478945324229442316720481190225986878702663249965682613317185217189876176268013806764699845714256313217119377956977152235034749443112812473512875433903306894785352089173000054572600564253371982399580272244292667182803464952938343127416034749784941252106381382488821689359717905723903873017988718685522860426819768905848451830925435074838041286934634468834653411485901616051263249883601623991112501254667559993110595328613110986142088136609452193941447342294309329110116154001955697563007674243005808269884931306119084512747651579794895336136716818967461310425470355424747523597540617940268933354364283556582801213387566739236939389621584043905235635261857030419411304722308521972574417601971428073308851201507868275133715129770802295631854066361802554532273683224250269528406900376463985536498621497955450675130438490794956417044749321061140118243610401331412481540851233657491013420691366181781333471960587088908784887317207401350804686116205958376391773554939530980931938072521238961503279660516479495451490504085742460550547726228864942194228752603035933235529320000214365962742634658435616765653773555122053884981474288294571990367782534838464324285295847201611230423352810784422903888934816129872826291850139611903354007734395130794893901698713303352304295183255572979193521210068052537143086309751125525055389984149202123569846985755251964703881695962904088006807661594202503878769256759230649291057997170356533270814325436504818247405405184119098774706766267619435460973407933329151290806847759459842394674984384383660583405650965867100968011088496681475268163850358189490894491058982834706882305390077713025856802231100882873116583013317866849293672204648814252905004234391969291866293558640841364257043433661755648844808298862814343911835069416785485960185910012905708689031922510147389356176226193556362680972853097658511928951127139471081924909036155489963854271295891961461651297472447632069194277299550024394910559547572558661804197299403201574654249172559773206449911862984738457131160749879450860279543857171787173224128946956861559537329470310309967405971743738591682337791177475858998815607487948040508961725645472201172771700406925711971289314809861893823443230874437344849795408257400306903090180953475513494725564921651683066508874322660836316991422097032081154986646017218902993461076587552087599161610548704337337745265460623636829463148317376107697397754404867396347280403232906015240027855687340722134868106026163063273683546724092712035223695010071113041125777209849907087838376675392391347637040461808164562152907215308688637215649311496446028591601172748086293131587698789015122809090324581663471224788004359417273215906658158597756321942709395308852637180000627635221839548235130617004934188629720860271317790912726295529262479246809261836513553044907104370099725061165911068133143865856771843265896126552711978427463066783918580784727173260981570480436236568119912097681579649455613086332684481063187578478473640335324501434387328430475950654573820114807090751479944940810354226353609135869811020723486662352083630514692712560229713078195599649840934588674109190559311635407115126642339145951235452761766009468120808637317507425073771246863124162960056990112354301225082254588943511264595082525178750142553018707799033765230312457550751344287396845103808778069902428248567400668546111091054667227963725915612669126110342447460211763528553994590885404213510889241923005694793800251500624655091471512732427420967011585238709718922815359911633838752752649278607593009873846067510645764070077447047361616978253209144332649612496997400105531206505914749572762832812206002064840963569557109336439533278967601696529613769979009891591178962535807936006873018934653324101686550163121805341071161094433633489951369307799481810218811952936765056123277128044396204000532035123258569728686369086336721177486433092731973516744874276497163389642507148899365813366219122366333550729794270073630553918157437307485490176279855491719641146630037586468659797385937274312322088031057176160246806420559984527651310009655644445380422384681350629881169493019320481937456042193766577976157598333200462695870616979215463182345807107624722091458162855161160127422668037783565254286130321034386677168166402148107478654711193972774835493420115537141325296511560092749401613738191710845913328563645744712497604462582285156455934535507271237757316932485904309080646763671134321529351783364706385241475000538080528834565430395865983199642356306530281646629189242477316888170169784778144472826702666910983086149332690350393093466169516138743702982830789261377349510831770879163895749617216951827893984383539076759518073873257800640718767441705449788125940924660005161446546137421880834284793253498461488104991521009728630061758833702781913514662085912019190453924738209623683262932165846166636188341063716258768000086961051703468535364405673703888348083517366331974327563942340259249985056702939327783319019964606375339892114162582490522322228778185450321851701092187806074755294809047427555065084212831497274061147040401490177764027353962720642137846892256445334821100762669925980523717271998740270506678238146263016497717120247476855857086515168679671293178521020788092117909506690107626642713481751503327253658443770910506073876392818746669343646039459965912909044192863553762291756401384865552772900926658380612765379908994915830656261509953635357307054352541920751998689795868522170450279298005099427589985790272893378822179291090458606615263178747190312439936839465409135815547601908961846075152107033351636943860981270613825176768103970751366535464581265378133908683435356700793466196409832317440482859443223872006143607928112325265670573745213766474560183572023574372026708904322973065183786579399255577011694745769360859060110561989650607791923250248056860903370672885283264571103582728359329249186115542466765560354785872084901258635403921521422242341362626047003741334899481490603760403066434546036802366468965001638680636987162029852265600535965041871172614351426321894644507109080183043368923482063416091460153084944567250806178282212490102588397552107838083917896733303839132127191514521644951101135223403247146738216449324201335534561685889769270532702331056493813056611259769721567144206209073812902791988861081889076856551107734312489719253427835308371443048661875399763794333737290066568253759600753417160355515647504823197176815455174231983780368680770832947563416437987995975260153043900725984737617554306632032565598894140570524829049279723536525741859506237039411989095456973363385818738639077122248143209215438483102547919896493226684935848331171010132170879037667294624179227272722533687216312498613097022128660502647279348470465913426008422773317766709652730200767547954025576359439083891424426893766884383990271170496437368595602095995116466989504500438482535615169908691422417328817355649801718374101071915006437498483364310696411279126618331598640326657881060183768118540886881097397272879422741729140443101989373813305686617891646027683589074364944597050473738478014375390086710363725074814013022158493850829018654859721489985568680246764355692809206068649844019169636032586447756186478690351587297215662077609119707190874986254586503633704214688825513153788351955196347887948283900626071770725253999129121755159562165227435713413379023147863481609599611293964776598175715819422425490257987189463176211695554879726766044287586539578683219803466557130761259524819022293223252836753282549335340686287259322743325567294437282934877983670168639490779290023701533272399457113088386774121808659778078631702898752058422058278237829751841814470727302207735902733794093753778322927838683465072009403845516079353267695413869606329370916494638889855434759125345194793803303287734594373529685660500095636537307798146215198548973221605616961841041577991836756393377577984003844469179199825965201300902980982934760427764016904018813866131483018493860143435541772316957636496825802196653921173194505891280636488469565295122847394472767850110304399874627502542820233710574221887113407381210015768850317436181046511017119155029956722533022986285035500051597946190946106301089670040055084734724822746137733706367540213135887843899068878605088847761151648064994563434781091820615380618010818099724806704335664071925059186029625696785862802860348333546005766051157175603062229953059915433851735351863903467627944760837235446357702117766097672750006960391249055613937891399276535710245846689104821141741788440717267440996281129604611736382589277635381610136673427108379966307438030154194787570105597026030113926690234550078262398167430607298644174560141100552133088268946888002448519090937813118576285354896421173777256769089758390593220190933417878035025870510388811405896386353732180396353718893814807546480319718069221048759028550558902981251454582347445961935612213086474927251104797846535087649329618498636079548859106106356600197319088626916012933535667740393109540599749985168316198448696128222936993348317684257293171608935728650669222693069064941349620233869119301106617376006682709906617171907629748221802468999746942052305009331635768854783211696543324745470247919209880802429638010850806356175974772467871788987383258369591578755192980920020199719036730014120474935747835077515531979792142225974005078413645452166201200053433020276456432670948070146470653849131001744053095492451221487033846843678658539284149413220162573389859363170327117675780357795065283858233549454373279092241400892677924037397218279863838688812071314007371254491640980006650799709908185693084059627361275668639068216082929826968159873696364138281067226215488751988399708220267962803011844918759842683138246879435843897623218644751471743643668515873406201906861155530564606566520719336578261792587203919335937342763973526200862814571869292647529775643982260834645699921684138331119737277399758252627037304599011001724568834787228257491098722838377954945417179174745387718299838308549465398315809581152851728743579852532946075828070894268307831289124388005946694082731641602426381179548112501005661896833460791756183621233651076921822345699699561614298181923041456568348654805639385337615645268464479713478953204831351583401364060757816946104866612394199574731371399408013889309011953310011028498045753783819112496907617366733617402339272763620275732591226965770024543802701970688377198009983026232920373778910511212483713084294964168117750364438923935403206967083851248984553514477453168938569556967595368684574092429603720879573609943002401650309747313963243256651148005969082612775945386030328688283518820284470328643333781490453771736208151762261110678796563195368461061378265378536042778801237815745713090214949162335409006676639841873826798041164031615941047199751164184994427027137135890837151940865195803413580998686207391179461961750382153348956190324155041001434511074372736827185591225112876840126070426601144300966804053247385021461010021582023599516159585735721232905739628160872309114055122822669755409384632609926046460597739650001269862604046440630623249030377542602374140935602457101000625519430090775193558856604266193494422722568088645227298526680834396011159132692537245943544772089629183628820574856879116250914378273139115396541479511428124458736916308322276675741024055052206630593128899888388173232823018880131190949222891131196057842745927499544862652648528799290345511261692816884891971292635277335600178910112004969073096197069136867944974954633518408207664523580800250333136447099269846385484057990849698566790039815869532949387438950451429050883628240671273744567918804611304730099572990296122176544806958859379691246582486161557896101276090896943597681580793228630680730311482674267712118943723796689234359400687701786098282711448945730618657610879634219420530024384612171980046354708159975745375314042526079210549483109699057417997509599720355529915765091185244061499902968375759239321504318383243781134048607310374595844908824545612364932008523324445181995797902981359515682148429209127102547408920338689935916082408140585148775856616819449268949431420954245644023028591759587399080649005331819050893823081479173612930860283247626017730025254140870002094847882958392518912683259427464693656202313112506118566451297220037082038165428488393430440394660179958338093719902821453754869672095743853818629033660625531251489288782684594362175514115046194421561056933041445167680587005965880705442951229975477499252918172344015239944454571290439933872305912755527826908138914153091798110703767929816719077065673047839327649893704802872003485760703352167224164941986298942342318695677296086260521301176479947529113483802519494128325425982193736076875931856411183009361173853221940983308591311613167409130981926954081976983787450249356403082154378710996184324850250113615547190601052160720364332595479820846715193260930684292447693865284625508792639159859257093290314685467877959649909588914180445295625895710982341247083092474117692971504094947681638270296111572357601637997918638577900007473177429099072259204292468153156921961922946155364894536706052297477916814922616365128746985224619931405084011252421077716955663721486727159470775366976458545433945491663616374502878581743494522728611112960388468038919331944527452911135219403202993966815102837647232088216305522447737685642144032322081562414412584171566734582524331877172793614942568375635572772198225919214991991325512046406544530187549728207651284378690186732357549329582310063402492309658176535418247045640734609177259499967085316808542102550319029132261974658573670944038989454697783502228580415212297267648413261605191866949104364263604140570208814479546061653813115272409074713800223603918706288350658303051489235847587380990216031015864003536469415614024197149753001508552372116794564566814531129414481037632885399600316183662322011865619746437724362057915071254443272618410559361955854294980071989204525062879141038476860751744681982669318524295645091418227717336220601536886658493036668227298374481066812004121825209043224609413782903340603501573969341996530943959755307617155142678808108965344189697834530552956050388242741917479370103095189519092948804986784189061467264929771948573547102976967995383342896658013604913058955384785972134162977435163313186890804030566231114491509243785640241169186477355931956366931247612083873762790587920459618828720553006417755282072994673784491174003371446570656461978719360202770971888051188521782625104517107360704955860205463255584936872160290764208266574808465513883163893361002211307700424507888744270337022029948806848924489753109260360131675713398086343574174579076118028139065586286499012419692863521673161974276689884585371164838502191097424477976587647512821356042355052992369277274663795940367955139017973005552090982401934155270642952068913174610380344912685597105891103262845434023343352668618308983066919476528820396348170237209737249907521868814745704277195979556715853928921875127740476788505601959886589689473755397134130765926861524794858039140470035882601652249928237869265020419285073296218006495666221674053995120174254011630077961209720144522684903224995592068375358604114449176335631257029647193732336966778080376494173189335333532596407436808220633460574859211785429810005637044702162046082593868336794732140561059196809379787869209160936195702311996487442964378677524135221444440781187812163585942054465012904310114691133527626216295656577919046232775400251858503984890567933393177967915494186428490250519678598194064031386570549494552108228510018626591747832298266527091058408643868163010174639127735192818553222050292024913277674970942652708141999576360950345976406648308597964735040923245544758713218549108243763663663689982002189532621585957980058051763062029335028555911571090079928185464341987729428739860731256078031827858713828099092291524335884120798034200371780952416693381960767912193736336667843381909778927817748344733640261092900171197747224911473032166755895057270716878619302814191906630789006711086317096178454560040528254084834205048746459438662689329759107443625474713148298874436192047223204971186475869297037176607935297002655631110652066494050722784858954477091567962919825685504666193867339771172980008863015231346069040838643426524571783637581960608631239924805833120798635858939888816601520305450807948728094192357861703737675354340739550805917291836317346537837227945380454683356056835065961728064768737357145439585126191178602839051096466733765121418619732544500545064138605952363217165314465214873739376221244347403465789162176693011638891544300934705213535053047398152354547154654822230905235817828792410592929814221011676625730709194894950888019531963929933356007181610460946776748859591471420811546756859631364925856356788336534653017329797097048730603304501805053162771619533454484200694492023853931961418069092433212963874427442377481620958243279967764319409310377441239390702775981671438009205493918749078650531002766091920816791574778598010131028181035066206234953656636742845202844820622397828222729958556929448569752987620136711198774193504438116772605262076657301414867470143324517087535426426552147398859373537946342675363926064904795578929745561746130439106791234177893282829891011771890714486204232691671837887302399557443801424969788281852600097900792803603630473441718818917355726537363038726891629458269468373925941786758705924634089483475598110220383952808066840796539641094311860835404341577394674942538435825254046407445868682007022348584771513314185925288295475734433605536668731565233493538105522574877941217969225338056831083312575388840033134633888101622235720491269977967080929997158918284487296284480714699132447009791354678678404859837570816934088841346570864722410657585465118386847305716957643481807367855687932143068331412556720444676573879497860678391619761678222373257865658800701006880062558969892574964099020286416122505561062826630492606996828976282667435582188493108208347534954308507925030983594306634068284270760276187918698657671390056110968363170387874174131353208142328258842685339979956971507814378521191476040263600884957581834695714969474596709170572083405292830749447662411477154297950854660349307241908338827380469721335322613631432697547252274953478966426025382983454280246122494246916630504451621668916413730654539197090602770796826013869196821850436424431174388515572537893029911725806969269395605342939130363497910512292830897913149729021349360720030029841391694352116216443550639827333844841877765694551032319249765694550335097296708157437333162156027946883580890744913301605950565558882942628110240424439159193324107379722412549864709335333302779998821572550391907216861984114444794558506940298472940397132926886467599577742929872891598239629011233486604519828276474527738134753192120473814186023222125491711473282432029443980821135909483333952526072364101712987931334023922980752971611642473932756732214784315317477484377668493185138655283328077730926357641568366560464554562311017933694199293076017036255875333553534136850531757009467519163073163802948967934531833060888261060015240291237392730910605007421024883842729789896988887112168921603855888362480609482691885868241439637574966703668429502928904122315335536465881667573380503267022103417238312068366745319770086995164206377252397643078552563051995617846556254185933056230810936324078918514886379800680608039186635635555695957604875379804443206645699451525976778471330927004341972185413145816972734734832897006347696805770785007038442058119552712479692550716456892711138610283027658732751445538634751690188298656282888268205784306231629751972285757865911067232632485093586252754557911350627318261625589632302358195722621826565241928303963272886874656623017839267096890487786406538299831148809649471569499065723296156389700923782229573390922352468414002966155089206303746608748518871751364811745540837893627004928288502565852809098189414886225928869985589339701742866507454872848684553658136667814303146397667089344724796819906814460430841173730664370644982726005356593705890576275486427035737245705378153984086316118270576096280394113125183282914980151065003332266844461993260880393319065645128604595122997643090396596953064416153046496461789583787804493807080153060035636264073822244750163918902093019391937988686667307821612626099564838356300548235919992799016400112623637836771432343148645355143375572359772265825688938009331322496614861143329834248970037530353502314439224609641895430386032358938224182112510953521399873706170653949752408599375701757345769134116499473182483667546090595828901993758988370184668746101345992665397352187553200729770391188977665722205777630434598627275437374638745099793995479489152517281131213858028985041713037242487590674610988354668151369520413059715310962857669910507252834279235734644776663933670741047361053428183478035351601107154865943631174921912733206234725662456538338417958878579948946517627966901059740793182666979700514136196261923189468940706737441981452578916459641417787490562525361959874358005169668008012852290557946411840446965923492476147734474366376319917090310418519588709434549862236230034594265368509305678919479478553743388776052380584721286938847320095337738989303221975982761761755973851372237295849115779487077448346925242501003092979970298404713877201989478957642537973894467151896454124797664007903615257416148011978624412180817016031996968137166402423519411857909370845751224863026992506914158635626529049272196781154355505533084754844287486134990582856026747385344275162395843088480776072464390889999484532885423146111856471027073448369914718485097625325045104340919550758698170908870177137481659640905703106798330184805513122897374508063465536581616284658614653143844837026284729459088347380711391048175123280822714960959756895205748900917376204021594928367562706510201165341015325469604010050116581815603853884022968961572588335484127638120761253171889292015193212865637534423420611355195558980450661073715383895000465836595463735718877709870825325909672827184632709643977428794985760423478385400501787941461928106653552276509501213984270927520044445694770038854369460254801969976126553184385356990701424320110668596389005882772325147981679521722625896698999531335078759529802761430921198346205745441465804498832022278808740041790022269329843147970910873452242265142618597284335639598417797790566271145121393780681099619865147583444615272721074079345788599142616990782572850158466192842735886903051363577059199096302406962377379662206766525927995829792704026701206405815907400092897743376854148680371415676437850242854211017130752810874232320256979776603260881057981099834662240855285978275871237290221242540168915661736710243779453411519040204804857490229571271801549281865996503492774500616415296959717971359966159436693928683231609434577814250827440043019604381159082868038319362519944863349945648168220336383746718356055497148864541635459627520856725115722242604239805427249661211328882953149837446968657818238221190483584855493511086995181351518100063194362887109730542763926136735552686307159900106261713133760247272011481050304613499195892286789317814674230930615504448130265079138370156976925169360639978547024905764904113523419808950213392979800686923667512438692537830361576645197158304420524838233675133990087326554527730571188377752007576832046606874365281982107356523798448967132515546798286941128037191683965087647456344660893971712778019499470090401029945464046102025863698797978113412049885586556553107938481348040876793253095207670812168633824309003255164178068116162538906086910480415132123759552133344653785803166228485087005576523257806792165111717635111654557781217664249564040133911137214621079341601230983623126823641536098608357396978270593195170399943659991790138447228866172566294299469098026687888600148962210899574064051056743644296482745613785765082029032495417767348169533294377645226132965713193882684395963160247942069883426956503667018236426778352097863347422786951742250501468827800227436300819335109363886067118250366766887823861796091931325999589325986432359730026777557160106559808940666227268819062620852574927285199306947340650255499835049199113332975162567725108269917647228786144365103220165243791809746781075509938919867548699114803150721009124823884093083515403138593524514216047398453846844431632022682430103053654267861900421041583842137183746915361686898746916917065190857629616222968693164248281178309294000733554776449916438771935576762781581294034102511960218384504176484842702966355348957420351317127592140610083626886498375412025091465416976025728005467044721697399664804537405739815670991865953884809172489888060173686338656863330128871155308836394477143803362412285549039984187850941166981596637823749165131925707606256888427663815587515104337427075078102467171622721500240380221329710471676111142965250698180459324688825979376129750322721868666860661565211075450564157342613523859339704365730300046581519585068429585569705327483651949001240035138163923639027893814655730206490505832427235002874491280504064421864430510820741255864379029820422454132996497615445500923283543212831211461066109007473592345411049977501276199585768122838342210786286959611721204613761729205923009782026814779923093245976074372175130301695461594727990509073988721089322726880303376282245328548868005972639419274649628488090286379197459412745988929653528041106626674761119302617169749589049501199658705787494532827355063462220306105249009514148248374916985946707090046004988335966313630863805859270647103459651605849236028986672234892003274181180751226281602682520081690559220000437734169839575611641999306693637102788192164763919735962278282897825005274896656673728546214189279173701143137594492756885488649778076182504002318921801813245242085065541164856181773583775434075901463583747957610355299793466154365753892688298955437908026630765002144297625567232539520277279604417339293964073712786379242801835874751361727811341355936532444819114169703155606499468968735516402719233105367595988578049327494458269343274490312347056028300698370874987201461921317731909125194298166121961016966062840995166978127632518361599708928862578152166905684756443961105179153889797001712150658036047082299314145608943523983360146022602222689870857935597427803136095092579501482091863955893687612656711917413136625051038852916922018513198465064833365403305788930891200006427542795228258475387860249765691353904206692232925950586375356916445328075004427743115142589294952099960460403456071366276933788774014675880134648590945813619504140844446027364135010493766260088125596312391430468775722028952775807289485445232446150945101764652914974943105577135030382500225237220142168648687822165614884621231905404599765246084334526716182163059326666912715254861802049908124972660335273129221310692456266631266052535103026171042312105372127056093070338474592900364168309854766139565232313589138074053292196059493156533597760020079593643241582293195689100526020722397057404465811133391423829272911541826634035349692020114629046692141674904539955872104800421318621800521482837840309324254404901954589487431905292065231949473578807573437923591960200368629148246977162904928167900531184018369817961855557920979204265139377090245339609929841921551894429645285115311681125037964149745260616371918467639324070863746520942134585894600191724884237353432845850045134005022643014850203958533902519158776844054708663820219410093448650324382330197006150183945078309752200764103548340499173794936107647299702989024924952251842009856068823366282203759354148514522299671696623550575387303354982082415339627150963403331054268358411849328836189492868234018298730333311975961934446982520636116484528515318390695319178971561986912123041980182585476798703155140056955913494365744230423542852636514415584780118743915861095693037239224826263466480109023160037538243860031591228690620033079107508223683085460190744159444427474994281622377155874523713648829209664890101273436330457476779545379813926522950608798104387659224661914018167327031499155517595344858435600985910983146232135417177285644073320777548539370748158224996646895242156945850485743524884068395559514112936199112958225975039120843483336472298762740483061598537179400722379068266212608339948349311316779006427882040313920164654513554544362503534056473253530917581372611915837149058793444560445010281087415057814407591233566109242279591063087329103720644024643625108821316533306195966617451018878080330563427747865098776745302741891860388151809061740139569813130921129048345120797939601374656578409811829106467131293277081059858756037073526754652820026332199460168062841469575478984159667886628653115551595827551278475529943501811020368193183489380661016466863908511619002363868373048697409081769727354672188855120409677138319543547354767291139943419402680688864254620763964354550325148700237774167450500395508424458901743540966394381621872272997080246475768526601292404342168792033107323287301649304964669830906456456843636557882812009368455761805509527909592211898011992358899174980316752473312471787659893669193102385408744408876367816253804922609737300613923478310941862718770631756783010510137172379632425396063995139549682743997610797004459121044938679587579344338621393959734283274223381622524075700874951833428576953714131723441526228633322096369759253794945274794556968742164499352050055521327019434221439380682385884653360198339630186793066844844138577199457845321291732817418963392659321713953833656605761654026392332413870328585569548038822430364803037565990314389692436784462975132510161790733897576341529353138581366508674014999656631013921073534272642192306723226370960581753884938262838348627543561484284602303367152463883669754783390417946492542746548736379359360938985246581775058123007777056724914704818610136746811895686590603370949753291779311257238448721649212246776196831376218435076734258497905844526935580338887888555638445626631257555806194384925294196341538950207437016131360738030232333322090386852193146102236652856706998918668467688156310594566930064464931692251650213611890116025907826885773567086345763824703350985049265062310741072750632415333964547547464955973838263224934188749439023842285068598808662846711128388759003778684594138279113896807196599647698256361056516054541363297542756347665676267754971163653844084796446875110834110844988289507501911985695754728176632249604433193416154578668974108821898851471712040437113041104337800450301299956404009299979976085839519826252206319634100177647280905023515083155808698098084733899693523232734445923526799106193775750251013221874813449464080977162110754308273773189105800038892775224392149267999152821699640225699537837360198637403309904256762188717206448318959366420010207120511884686681214784542779390211831136831075953353068627852969350347556258791825218441777404095305901248645664867479823060176983028902095161809876694018555281939102734943433348674772622198164591171663616790324594782532014788312657705553806868793159284710085346997816898291627368998902277412663679347478772605329962802400433426869847313650368569003669769044641357504370297483589750840993526639227392891503826174846780752553875532222455330242913515528194360265582925984667197735654811945634908504977842432835777821454348176274704947418621907322583917113220371233347255805074741673462539602497144497047124447777738209430243615816793133660705522239600808747162546617516258695978303735094213130963955655907996318573791460275303927224642572335024784248030002296123904677975411556363221074657029274457866238791860954051794204818601319926589436190848184117508677197127096513299225430962697910463575154455863582637027513283502670938818195739636402946726885474056836250677888356132393365418322763325479882889056281726317760457292758787213267485865388232411546446679926867429515238424669328982039602321727876759523435032413438858615603987624211504428618108617313968438677589398922990181155556621639645682197018847863040618626941561757724650916342304948024251412230206428444560468527525337275900336372061026053414015272339760178640109783066740401900075165539642931331424680337597121512266996311176041914264070016167488713527774252742256587973592785709671535268462246041710061817523740505268713230561894885377265155942553365860990841933222382684616239552836215777018629841813624450521171387025993019479983005558545061530802809900862238625346144719527257774615780504317677016913036046932137517582265044382471468583367248550070795608135024738339293029321183637092771694162736420585535359521079929868276953468757631274154202012124212320866349759387410010527210094734495185937518391732662061491377948874730415754056150416940777324922400757256512534147934788581885402060334262697490776518479646240607638976671881755625280611173796412872984732182047240430283487602365527882966069571454799356646584280609873454203550937480432550388032956581098277615025725357431753859690238820503314687499658940822810874269548303175095637855447270662554370678507247722812411971172475922847824188750401303247631637013174980269273324464885677758352034902956422152191376544934944156064359659502263439599601824832565416977393025379234088232908848303287906795782610754318037707812724903857945804149605570124961167878193826895115727693365597359879086427998480998137613802862558099797861162657710914033390483372458153458550934768171746258259943916582564774545072219674861267611401473056674862698808489910463001915187288342784119554207692489580649631928756029721265545107725431569191731508838700421735134137747545019566920914410501637602929233269320739026170874727170130081025498863394038261998384746768399655390969500341269628203781356573951865665355795239813584286354652085870949896582384725361731330366955007754636694753393747509132967919477061882147961369458853149976930631750370249877992886452522136889516982900248266427049310310145136816273094759405979541946303525687429208711798677813651513797586022839574025343863227670576000623991115351847221090970186069228739081019311389258728379319777950912552721503897064559357375487481349263530245946356986753266828294935270751839578279947295793508943821845375264104003217451006699746335979335571948832108770845012497391996363793259633105713121893607429325161437359574147260044702036869040445175998410158529750060167892888505747691296595431282047434584814508029776370930274348011715479193608160995132376208603955781341385769341991087736865914577184736380322769370226377902028144753784874259715792114093594845591673738078992088521039845401628999468749721315032762991600974145728858794681751957775943395325597402870218607176276263364407513917191757473777063124069547535150351477840913635323742197158203077213854050358472723819289562902927409320527155633857126516678928247556554714252287188935964851809191886926657416308093389234145528151992546966860253724522204980140991068511360781732786763694658002345626989982717743209679820502977929789750305143825565565783210815154153153027160717451059364392234887110049331771693912598286454728084550365504766630716880524751946369841152007133689464100389218253702471908708721096984873685132173885398070328029561418098562698944581960121199355078675270574198346126092217402360317622743364336529858335222162120317117053595978673921905047733194303694030701959432261979508735545333815274541912254267904809758728001435774574226136114663605230511639557378864836362589822454463357368294430300188730921511223526252744547722629539825597728864637855897935181370345311020972718384688458337291429041773265730173446429084484665780628818515933892620277323359272198400784077051327261293038095516360588894129087351574091348591377949475258701792847125613088181064156232954002462319675944823982861576596867397181040975205155219682502798549009510333989719000448728939019596747137238241329123250245384700921097471981388350699052705072172232688770313755151168167109076585050249388635237386251127354628525979351030731257762154520345835426424445030457825888953351759771872055237357612743261536743918369902326356410476018425447515260855634941895626572716778228895064593057438473874702551345516235641234158097468987186560252516718168040074477370378005001057917759272308624239725300214051870367972941188564414423181450521927925803626623899344485967065838250306332176007456618610011230051442704857474501370833817046830684031955611300267921333279770541553914166367453116330514133166753616717517872761739828242011484299084447561761631325012158564137649706860330397654221994283932893123356048961593473531115883506966518746257805255073645878778139693793383227664034414463788266767852212648394197775986691042511928687037029165150770884835830182687316111101331844322840372236611883816572252797329533038059022021973492807073938842350568340721580425305189968936083049340725081134992023756188725072381415487940721572446088133593576701574405121374738955404855290001349372950541244923842962301720927281722826655262796592900137366028750063970718515306143126842057717369621577017354253401707626720411562967407990533217485138471338308329691519428491977886489247266417885382490712371939517456624453286954519812584406507329960393806375318299153424958973227847805840682370619938256762403920806379656760864093573581263985126190366178034583807686359668552355468845989504672151702578803022176346804949815955197900486172920738976633695012754414337189151323932416279965596065181366822086009963135813794636618508819466600337932376463380802284043982804466342645635296827484674480081047840447674318304986866195128532115256669621439926457269525929945736933771146098061141377437720303553738971250486745639615779818684992600737648893522136893111192547976807175361718330324714683176707011107178317448205576428045586564330484933759291083012457512593757071444706433065722901495740422968063817825081698874036284612400473233145451383599348681960299710925918770006714043484658441697161043043976639804684351186341674297439719635600939844535108595716141844388154679966139996918607959456294808894178690727054566675309744785373140186002953508308510646919114186486395682710217002583928199897342177814348059349075157197831174923373094014027598313215075137234483352536843946462321546385458382799549005250828557554708296451683837004526605667314267877889464138895717863296303491173841088107562342350499510385464147176600145368389622632229260006714387169543984501386981867177610669530862695253965017038152060155411609399369854103073249895138866535342641266399662091621025295976013430752705722314320768488488728481946118606780435393133234123533803395361531052031690652406667148097819370583076691596832608642762150722328447822822934692976808804860080012714985970904378081527677165077511348844310097236828157093031728084279837167613304638882860878655519093533925169225115457878187056225089128758595793406124436400605211501458484932378489813272586657988490431431901254331239468881063092516727202734879440261888753047136180497030450574266905547809391737163832035070095254660961794016349669321655267575986391393104807264860199015371248637273676429932091018355477770615251885234475405125773494518277453664101086560422705413141722540595817763869693608752907413800893323593979174932117026895019276365070252528630014746654030251504041662711670012808559554972049799113977214040453568061695207366320313064075279221090066525930584266859968018984765662255185176936658918475097343542406398803182206950442260232468481937981512641734106430089959275007416155111770030950950924785191174461966592703613258831067512657903771104570860991672809197311668448944973925394517065747786254806140104743676556131382377977448196069604416307753349620968185066899451424507249821325883235715614430591366306946288638814556815051147646880408662552505613115750729455079775874875049349238156484943386137476336302727100642352865590465028188964966323397397943339650999028516399634969161032498745520217764590289489179396881517283799137312720667257127390295535518525206773797626471262611379753620539569030753911483798026914986448535797688721685983954040205312126867990203214888387375506193069747679981922134738666032737007015032049829187697478816229981893676554928577819415122129120002603300193630227053031015765210747336077047021331732455864569578654148979056714445443517676320709487132720567863902320964549891225077410946961590546039075701144905634464624533674113080257629146566762539452759186381719544617226683526132525773915127307562767634912507650964223323931419727542672414760548705887615935939417974352439104873540096130229691322138853625125305064977141939583175651233225705189427744586334793823184399139802649777776601396359533968153465505818159163089090383523722970533682375660107108008090792483357446745212619042559753650593127620448253526109277262064952605133230248571605962453999263812328487388124505654525151441756472964558592831663668381383909002146935420756621828725997455868725934886952417974667918664580614030749176406627944046980140073955274453608152209175194899493489143699618105555111911317686009704135574717844751395945059000225470140645065887896777074048882046710858328006839596916299900246031829297461556166442256291754459693843262903607850450613775127798956136691903095223150531686039113137490109327978221029550570207355212574194372080063257916295843036393426969834071974017362887543741977221211348720012407955680148786592094380109655898317793214138865330035578476600875752934113030283183205397061477213339198476399414745394602887421722166965493419352935240297823189981003011691961998190274515196263018468124698518512758539143919748263020647498202921990690983262795947044321693698855755660136318613383012188280663911399254850633173834415333534377831511478680136253512187540101143545029840930576388646870195260837920721597163631462728523971522340721106195776692828087502182539529106533408269813171600157971035279735175154330262312454059854720284710754759060404866452770151841331029711998916432631843941011215992467670754089205714083036641564060899394258398982458191848336310521528272869256649544431702319652096964068075748036050081512903757917278479748995057094707400985211594539194190783430642076502109103850312367781818036726175462246224075938849198466746357548778471156417976717581356939060979600890827177486827101298258265775805266717662749838618840568241250566240119486611496591821090859269022684914250817295782118301329298347884708102525208175487850032955399024545736337039409366665785532377603602265267702245038175723789440219150738648911154852346726518692848999874384932520879589338441511729656751818802237663115706172632596492380108303809915122728963827787870897971060441630550880924908483659239343080146028084709041879466256569166119019565273707893295610327742471850423763030891032396298367081940604520078896913476329355553139533510041726577517825053001964134996422667897244819565899055204799564634400657287886797339335922072205695709764716542641127698925624493622930556882969716276230963684429906803367916897506745122920602618775759965717961505306220036121765081315886395779324750592739106108453807130664547887862354136819955707720484566563510281689560091919515266382330819289369911228191660051644030005049708402933501802302542671897757315754232992240485476950890959778577361726419592495469341306364512455602902277784139830448082111298859509414307789284720590669906963358704857399420596303324047391384723348129161437556344925292093723804180789591974891214531150982058547263666670609281106166587246115237907588065828804316784177755048637599695983017318869813472022616233944179759778457007460019247407396643129429944701409652787535327347883368110345615164778882667169811493435067181976261908196440036041313128913576583771690734195375788411400587494488844802561414650171434212332524262452342590883678527947154195696582159381654894871693582401195515588281968583921049062247779920756856619698395004108634120507784910848398599396508857964782330064494728180955156754390316038158438239368447909488204552645424660196262543888459697949334295164506643901369848158029840723428713196704556394385569849206419929289906161968071227116700453745106117704667698013929277904101672685774804891237497736699062934627382574383274913682234198826221853842951173289027665580397246518016787560573158051806304375450118609752935769823818066006743373869517054654657545663766666466224283643684044723792668849386243739201175928013617138709099955608174045649557633610958525148524314372325626211265683911749569017985541872411556830849005520111563735736994499756208281674112595988535947917147074607859488423367588261004391385095841618625738766743206237233451982973437138859413105718188068111955035887237122248015665278413741470800584930472853215284078205006334435927531222847305311790631067168045854642242579957405233798394398064122037740632061796432084010028410881563231171366141444840617386043379274874821181596186566451300122906324779410699207062456450774502065537133977676626940052699085149856249005003273195513755121471667584593113673936663593312112729042057027625256494141131763853697501395384812158491809450266846824843362700394490212645913714191522087842292819834911286069518734088587604705444100000909658754262704165065876563918058604836304236034096827886552506236192503405744506141186383102631176690898577315894551724607047305418713773446879850930628139320932499543363990112794302574317029940148213043602925737226486669617169168858695360965201587438064744274040039666155921732061238282289905749221710209666130431437879223683533788732046630595129410744243282233497933589411455400963989953025956790395207566769984395478826145330376696091973430889386178068433835241660099588928620701804203277025301217881979185628999993666853178302066529718082426629007264087266189819846055554173769745356048155222006386233183233957335787972725860482569896708650346398346035266719463084330508663036211078046339709143660279337771075943034907982194323670411809979054753209512370286135799902702984021070888011526291104974096097871662935918013373608439544813346699640536099312039680354130173843241370237002215024841661101737505119866976408033068286998134801822252138809720203861752128365943399164398775483073249446061976595380442198861966457814045169335192304973032323027635633711483853567452589825149615065761174388215609185658941781169813047491172303743813887302871701443572495081376734943284431590695693894853050397357281606772186006070683997800053996229697957735201091005369326766883705456329232026257392983547039510150895396001433070380263495620098924128992931077486890326316606384634157687553994282279814594744029484509660594365750746288667309466742352851308602811667169465862588255599317273138242746350687795628758124168187256049189085769474344340567531100329499691956474210417633028682379460931370292653421194120345839399909794709615473141165422856162128549369361098877462525515438210237843140152250508200272307924452719634492473554213076979604749135123399542556603571924643142792725618622601443141705258415416597667092115296772396323844637126098031928307263011614230555735514056559997528933553644001156864245605095466496739299327631184787098750591550678500220810657907828767361486391731676415847618610439797992766832898244064459326740331881014018705370817940009707238462544919986813279632768242270008293461998258549808212404815183497185580018459383806399036151487771222734846119403761023103278720993980979880182876671661546155055580994211035993757871210119029454473632671559504277661835553287725428232230919169949472385691571658962319776471003845932370849068668891687985057579745057322694619041909426403329320230269775418727117028878404995686311964995827209442718630667065416899081167725844792569755234644318455807236592439746242159314917319887765291715438681624433502343159535790068759505473099154169412024286891966708664959087010187872205848649557029119162879486095655769692980013559979911196195082871563400403447307026327852724149487815673590944516669592134583653925049916489610092030436352407724511820526680105069079889801919062119088166203300539428367640930358445943200883416503283852911014037342034197913221856827602724404719048828282518195899142801165471142773702385107317082806059436786185203883875048098093025231509774146595298020211481565274822159631079859864410181441401541878868002225678317376056961968871953583019701171380492531577575707487345804908268780521269454785233875685162908393706169273695996858231159619560072430096610648099303139534336002407784753134140259014463664497785314698177308893171021945672862358982909507631632905661456081997730292342822647219815111034951078675948113967763918691011066250002863958126812189986798503702175362071853929343010838206774200522807102808377085908643463724119574281898335609001520446856653437125973795242199432452032920198309885841191329771707036950448492792226253083353311717487356101866923502365817432910216520408992607313299832242197969886900440875121922268705261552229488681282489915275836572488254965154521295835297756382972736205717856262767126974828005605504852219512199834342366732680347873390786413356845773171446196606398101792320784636683308616260810110581997597006089368584796179341379225458977900990047605522028121762331253817093439157579565122963316139748972826485068380698050872203523909704230259159927178990188072269911452465846832042747631754316716883429551170343839343159018332666083214431889879354024776357186835410936459238941122588058091559074220571893571341446854161192433801438501422286726587458527625842043434253747397356324086954110297035436299973734463509525853428860007219432652283045562834965744352215658583314241958533057762950970840881866358882148799494290013940312666806640458891747304188997740671302628453173726485090260739302603351229117429671069063220107591979178150586263218189000922449226040198567485954512652977553191343360978449027255161306685952227639669153321472903185912527617760347628247444913162200106978043783423024076597945713214983355692097287277039456596163409204583420094864512962375632036600768625492504529265773022420896527384497394895527863083465914073434900086080756137168369540236647993676701488352940728398903000279450742913179839038646053930629886197937556252065110650523812305615617458509533189213446965244290455317398065266198574897940923544906245615158286284777533673597783261195109312156496886636687696806020526931882319739468570189302469014166485766595205856887095019250934722051044899030583572919846329744815428936179594211520906883752410874545422021972629139718127078927269697639112116169984457190026965628723868307584329137698740890824374361613919840299661134178521992889149881441706945339932876337529322717084455230746053190833893286327441373746922126139911926858971101249278704777502775229942817559046140556764612078644909011432435076914116251313022718083487887182776488808293400043486277542030553680117903525114912840370504692928363795212086635014019725497894108354163792341682347747564567233498642959944489952892929434804577278350599351572449804076350963269901670048797805901934922754692472121514143792533134450061912287453040690454741130777317246645893658488181039070702461580020526776241250310024855813768728179660785852244675931861052141863168377182340222045682402976003461706094850130745892296024141272200494759626055508340913511752427065655119011960490619952577027396555002110409315918967403631860119684034379203046919271781281261337013315918467033024383330454778216734451838933994478506865646407296842338513296542640262074424173232846108426559989354098901306190803525907544385996131697339450036228900661659941432345261755594971005373266634134348430595856546563639827021127822151882190795986828137052210516821820488682392063769916927843367213001555073859596247401693173403367288842091620363148604183758709028817890827878777461784237682368360028320653597806891567958919676094053436195170368325294862148484123059214362222020762275084176408444432966040113699380504587960468007427934480417578865678759815864836073305666820490124708738204503108823274794490084042587323474421059667576655146016397891385383111334416768402553900705078785353668599031023173014460795594781276377171460594642464894871147713597028736050122999469588646515828570199553883323286670460466989790932296042154347772639364714674567566963275882386817404772562562652763097652895037815607142765597737075839554467007209872654538908336922602332448994597210419087247686934947714848064934005397337196844220363350372200070620195745430746363412431373707048787207873029983959881817607149953720735032271413585649620215977565792070356226749659091970012119340049690155531539016213518844292106704683114902507444259174265791079337998755485056251827206225077991592724004831255492165452787878558719060812742946112465305656583366097301800367243075339630359682807679373733205150720223111850199139342914932743449488793537804305071425704507729906918384162132436726785082465772355483959977811819563739627330939527356143965545336768216839558966957937746901204739776696619945524861469931278801772073116918910470007299024816175315930611634280298667174643374657557716696366657437124508341547076241332342083303311766443346957995592292611732485967699597132970587969482680850045396468547179432286640399534752189305907952485092065944430547913841200187974737596456779206576494242615326886354574454674874929348944333760209248889499567496964999888680677549379261001721805374355247564156877679085102485303306956032544880392442833279937325724474246153266052541040963049325341718778468348502752272436001303222351915364139409010839732816364977542230064667073542056999183881689191263498392450181472019712649617434664633951191735681051416194127926580441744842399290381874315099077103576739937061948441536127268554516005282075967769605884826083726508881331807190945320945624576581693456259833587589546909894765777920769142774809295532143770283660966014186502359765721303504235109348051546988498875036700886676515520926404666802436608899199888241398850784930515740560317502175202356908371631411930259565429877436516379820502454916213256499176700490449730385719450246410908017147940791949595099205053766186507342325107211250195991939456979742193332512789169879751269232938658290547621650921091572620400184074047686965151581979189802586127588880278342759483818157621714413875528038593532236218219970159702391098800651703020505676285907211844980096596545015207661191463450028059453070989108022390749857810309101264739050255838329941582522567669127312360089958490553940845919041981541291102197147367051488749499434966508402784425840536272440848267633124724717239565793124863360845553452704379901083737778211737861678556208748573233149777832306611193570976872717285687474309499617852037134866523023931739370597620879030296919880851012560046231291911385820834682063744027687386180328912159535835535205630315778462397909914290190241112122203516056633450561686529093723146552048946915614776469969335064530344873219255236239664306091569487018060747229478140095934662535178777258863319516002518428754070311872024039898044771447937969392682873261956569760974340780719436993018712865821113408338292375540752158118257730702979133571345537867246095573315914297428228214774165451476461865813889870706633825324455654425798634517541676679247417659744013220434800993041262474157275070858263811065376575911784880162222006903153802114492877683787692913790451517730794226795058126929599147118384896456828169252396923815165140463561712595902445848006528444227257769298079216388307703169110687376495879405530398228682862557685174832571628885592739340518252794549678106709290950541500145974508997761684400359775937711963605836104620631111176791320409118115904536068190873092325837386949891610264367919216027883772101434440180648414810335604593321853772875849620820654130062046534680029134087996984413054512790315030790485481165422018541502374239075940420234788674230703708111384249255919997269516289118983710305318946019998709117069218265900737695667716525135327351473245066253107676979239055834909480625018175561408882595086702899266937491054917112336776808958902833230627955040514004074170522842954602414022542374846932448808919491592973656163347279651060370037924038626969495722860400287358035428026375257377828105702538021377522385565910826842100042200435382757103699871974700581063612722423516395968783631388046744563893664881396181595629283435261734098619269512101031093478424274472087033301942338716206680537797183577497523364853250989650859056447696716503402997462025486247101901116576318967040863417262928298745335679620058108458787550816525909632511057408006589808762916337980218718430589838939305149354302867409801068361511323732325883294990198407051870169843607225313816668223512734963126965645687837213947970025260481360386900546151591487973013138597963429618644527672068962561015851501724398079208662146732155228055766480698918753642035346880065891258737800858860652347428060757071569795447829577102815248935341147570161188955295422407422319822500604296411387885147063634062869100942334203243540240094058299607284391918687958307758563931098758539288680691313525153721270684928229841557859781070204783569526591422563886639017038006339035306962475534086836450355521511046805833241031562304676791686252368604173282682164076608227299517789741444625002637228491968367550218601166449948106382070665221427194859575242961507179858511842707631607391737491364296592747861402092324920541586056917414348048368332624688655192106576565206158681903308311054789409378979240149979426678071006600078946636318203868734106981648881415773121662277562304971883816414775522367450146345377189658880725921440052489578128742020787935197278493042676872487371661588577329482540007818339669446318079311726835820092050018376288271512508969998267221490074843568226174625442019656921237104378034976506515423997557994006416491275771917178347253109281340513082724255800091075429306251839203345440341140195042587392628221494113912797236344751930410635571577483652948498978499571940042714459645819097373910601259825187834067681072637728603316137686889503138100818429944636110551912078016992103001605499726205765193995105998332162789659953838668158986414280081658064365887100158893024161724972358973971660670221945491520723082752703505557471516720325442385966714789093260092760856083973694815580612937651504082763187630856383236253262592185292011819653451985036417883601109029746523585343486612841419082302871646118834256379594571742155792728991095195901452891712199209835521247448855966723649213556997093967035095668481309978558417453170780125919012116458886526065610813530161230740390780639546921317997997112227875053973594234597521360641748970934454161010625528778343547865358496911511933610775306368116799237650308676594033451234423520939950388882430626610484108512769110304756284769027804579350214922101745390686933040506834488379734424679459128318202055097129417704577298571869986668786194224421708926443416961924874508372511407262060109072579668325662945412742278529930761174350933967386205404219999684591410136453637890209286565703352078495840716696395165498061527673468879209665123398009869633330850823382355868208836750201789429526209068713243215400665275936357004219779401937424057444321909611666360648902522705221561370310531149927083109568196056247219543262345092649458701439943942452727361617273117741237839240993821141174704712617416005486259336800698286295203628160208016203725338003607371580327280110077520714753348667842308105155849599821653087680393356212181957458122628447984303376181583866261873011074282496487147707327239460264970011318951039425463459773928758198395608913972660759332551791423918058570033890458973239267490363523953588922786036329770906822609311914648458748175876575358483953398093642281857635178842158056786340954864644731312821404463190463901449032686017087214317348729785548181751473965366358794942815404929351776456340406731066373659990133251962467601919864053489521571555406739088012252660910377132532867778557828165404015342162341984326915988927559405692356249515429777347632501200714051796442961476081436780472413741715156778980663850672426715987872040715894699238499332757400666712081150654615300179477663297127578973189138606316066451775804603163404296658442534851056598426909988373656524652259154476039348902342518577936051695032976440640595496980358185878103001385543722794354589997901467856853018208984121055653509304506703779446491452149982150754716476455683410747136910502024383590626657931361643963535023053424250385294655805909804430694951944529213508394990117582221192775105953993683316676487988792018817764123314947200415022182390598421717449246727388851665165740372885214180567191258137822517059119697651515977774662729241347756777609488702005581160874907986256857775531558051051642143363774555792615401099209000532017212786910826646796730614440469579136307751938634748094482604493708089132213634793471448287654137314537590415260843911160948687418749086545268360504423421415744843401338009834775901946591120795938723434188290966790703985237592749466589133235910820476013101862069235577737118682595780875524821989934196539638432147730164141188561621169597560104817560977342267572773403900966991876622299672023642637758578382586304064623826611701160617783743824670372881757349353570557367788772625855074642882524062378860995939654985919270267336703386325172627386600386191928920573994291571467096053952636991177478364876291455566096599037151170602700103848883851362327774197247831463668814064691450339252201311044669884303938748419270688475233582282671562223965490938735634066815024479679411850632392728177799374215300948895382446194988877276480063998876313350052934946237732312227888659079267497860988649978960429103760227558488259897496280694141593346660188625619817978892539744557323951259888083088573176038809763148928468416247835244115214739249423825734066626952464907487417969128859045312079677401892368576157433205152418027197633220613969414313198098441234034012752713487478813543595023541835218925396710605251509431091813692666677993083496620566553975897911044962178251724013371405603668961087057167185966235301356522942833441409710245647438749578539110776590430577678033757374693196911332975417875620735666121112119179310716970228323341337817349243203965016228842306439031140116375823581119768528981526305890304362073819201587381703494548905922776216043395558517180094109182768435362034361101612269811847270686107054652405910069951305770290395699141060680670971016848294523944570188812047073499755215830820619264494591753938115111546052866545600044931923482203495976262609491073997513045583011342425439483539820898858751971639959925436944421963733227805567661539901308047847103438513720034163572436612583252701636123813321879443570492362735947385645234728116883902634389498686721584447063728869811692700573508733988619064557500414040937461119804985637940704633021835182169379722009820180166248036597964705806225259845324908016112458318224156940172307935135264160416474977779006438527892530383125673149104908877344178034513630750700741735638850020952469232036275105754784811884740408480221661631480340908495517024081977197101246701629871576245854257318532971058480638451420758257443657414316970866067456845743578422212896290621283324280840109560538342793265716142956040317588418561070792282802127471905592053151962926155188958599967800296441471143573528250853492774306961892007799801906455051250683373008731787650379034193797218766289212484532715875335710300275870532712001754070032217133742706986107380276294152332148964195653202184684620672135160353623126328109324459087987619039764324837282216759250250714739978154248774375650287534693659162509935326069681636676359406080405113925511152680040138789015954097082154110288833710966248787512768998238195378100482653805989708371104824857607332303903619125882787977967731631251153827538887712144117202135427922617373668032349769532746612168435710011002830720069294077899137354367823990600576699426603358130903513318721525490350098544139731684943894574824926338995618629331487817489476070778393603593119866354663571823652444443715078891012811809076070923867650618203315309333534070332966473174761156914788458126015782990736852519285629297958534429139631166704675472675283112753179689109148033243137911030741181676575460012348672306432138758373597306489794831890684761406420820500937437884480789797600294525058958318062604642244776929597266402175906500696127876689493629291325592166268215809948239117422744983039059628432687122839924745703913146316047954548440479691486977532089392582387632205813046764243027920310653997770612784763810991281859694068364015999375334996860539983612990240471062467844752753323857327443671204636847465021597964761911291021891418113522822755543589795753270159649787408887997497618982343014847964833284791053942511037547436963539009394395322440743499885860534452439491906974022955122438491754355777714066820570777394033109564575595427574610805113547405390108696202337435329251474791810056733535326358569128443897624768280286453203222911660195050269406533616647195386748420422123438780254927534140783403833365961934785201602372340070761824746732432361428141967744812222450337881520370686038416280425695830987484878502792891702861483250177075815832088809485592734815233911871168244871827242295843744409585952914925253973159579621417486465248391814473388800090000609617279525327322295346821947109297069198465617396381150810257208362908800622365501990373007330301766120497365489198012367692979280693722340532785900013718969226444707162288966122514753983846239483635495676692478309439828784901784987824872527416022539677929788515863147871973833684407610913131572249551627033957111844392637416431359627468796255195753869847136603052688158015346513074501598246635633254425084099715080261490553897494881126832145772258393234871720309282678200541012458663615845035995963901768970990297366400738923228763007957049728968190303864270298997467558750225884059316838176583464212920115114715730242825623575004999441032653306726529999621816734072094394482109504489146618595482576091079682740500837323384399391615285332367884197240229687399200490760521986677014984257068284837812947715495616896237397618637730534367890538302336870643104424440359162485140510781619441060087826670366388903710213299446344604470454740353748325583149203031872391715896370441592211236254098101646905914176459861942545106060596628648613847582754833674686917529953593216477481027355297875844886121895096236659119616706794706210143816333883061970711841430965832317404568652421388009984949299054103385964538813892430558768972784059159227476209034176559224157040476001450218137855716527620194171105086018944230403775377002731368916023912814140894467039554284825333765229254502901072383227628980440413320965012259638915989560151400581700197839695099119874707547147006747128325739311646369701931131413755066444343887055180512133111631839725621689917930564424846507333085838150401078475573544257238625551182208417884048536530890492579906617124076044858348359708158427272840446082927996418308896985959827090945733630233193092108113199895722904672128795364183061533813744198403251506749283462297191503128465667991868436369898022496354418387896836776900565858904404333309331320711882202633803340077478889966671570259621896010478665444815795733072419352790388865892053615443343931957233260084678222306761890105424847330756906634192981469632863776966510202172978407783265982425524204874244774283068989214091504549461991261888983547827807746893292257719315522408670322411944816782520580021817033921674178018449515701018395166744182534997472896932826144674702682698065870322938343486071089079546498620286440201784483648616006262951605404250819609781531543844872729313948980571125189756580826113497755052793155477869412852444780965805620364307493612553218296608815136553106996954676323327694175608304932402008835839421240134127402951988175502407819244389270706441808849894494197585167100820517174539810646853375023929958591183274697778852172222079197309218564106984163555614000644146729981381480240933919836096797015473512905995915359958680646076440313598272016545046994785854745979543255164273714206523516612788547908284282972936857151957125321425184390225669419764456161271693315725981074315440319609779722458787156865187808548824639103231193090367404947886604652534015942511205677149181657660171437073997809534479739448362836689398158928036218230705122238872307114682988252298407474408743551036106702765139087534321680633672453655670140307454751090052068434855420270958455228054232765412175937302643635741424063891595516048360843094533776251951351356836538265831547435626222572103627084186471733103197310271526053122620371273644441054640080185054385852802887066458821860116194693002111007500702880084140832076287211686834105486725134385017994122400929506630565641218035236146381393843944522736623883399035524798559202544375312051910312612278917408184624529716407980545183741668961703430520810669656447027184471871116872494737401032127400484077257098259146282534550972780241021185195833855801582146761617373751565595786352782823133037716430986243809565592929166273346560830268928498211783988306810735920520107226461708448764555097361727848700785293671435901870174088243939195631291785147877553238235626327684081072780489845441865308384780046345498203712692622512383692010784014769372762596022856540908878506534693421583448940463076340671022535983258839362317046591699174941553505523170795524299448382275499812872378111259268413437677678256828765497514493390921766398299342387267151395481691916897911439297523296695581494430311539031559107026127307004991486714888428981769682189034127660121277874341782388908336281654582603700852062215278045272446844517497644851195172843940162478568068829275587909552487807825436294360413631719726726864549421261546183510479659676074019903063094621510355964085491599620335569954113246945813570011746378568739291634855928816109595862887129066660866863517068783328346514639350934234973318614508932787103824827973501364223505947802935538419197869087306894986927515291775578342638265857718064858576462404505833663716893815983989414425549654869092153064039977982486051608471026380273700653660701810478375220225648359040737184136876748801651742418483180918732251522329216424171624273299188686708090166285108584321857847131477384231380338357031638042608354112374081712953611308049042325727026208806294907408975387568322642516315679404686824655715219236283934935433511201499961207425973101671995095025934410164010399424832090700298652841544310415440244481687650990145342784967931454681445111903089103287530596957211600951569646631961464204312830014653925182957821096638089170998296801035220046374000424151125519106442588153886771363405256792125466038579807491954180014582984340879010873800298821012587842165184822513086796197929733095665076537301875624301835276439298729659513703496512639610291288635899798145455719371199984186216758372099212927187954346286342816790495158765297142178255246287260489902117886853401068252181053352144644180563639547028509177119701784740008757190726646670556061540272627045249517440222367432373533727149947735017948288169636099303329048486095425764635808106311156125752821197862087457222664645152257840553746793043740439459463928643680327811016410396204507803700388930211550187744558284143389045907495316635762077336287443718872654318105430452712493228690898049204230126635715814787514759438012872126455751846287072395253377435800338756825679668854663445329587660142655389974094455132920694827808343883198298426922588413917798253663785853821692349221277574063048089946979006330418274605858377303534516729523318811366654042714728514306594091075198325413645390076453422121609684195958389881551121698561774985914149559328199609441593161203965096529492174012777550879649674103507150299757615864265943894568583043970354752580888268213602171790567765822049119732714559625246772265933206275796731107316653839238012871862271337735779201104936576501460455925650015087983149838030229663016294937665340289558020037324223812137537366214830632099175001825317697583782541053359402331795720719165410135624653535062733429755124076533915410070690013172191827884684675076645172929442164617930510166479397436749105284785637413274245506627576535209921336988749487111877310531514316981472552403482907794121779726960812516939601723979837875287609178355852011429411202956415228781835954887339308352067132755812609291766694570882374130713078844815648946000295673472225166858871908763209423350010010443456013448110492476356111489831876861244223525020462757769795695271228422688382252028676623569746252968696594328178260578407493982224663850704506108530967797192681149008241416811443947180827627637380772711335221019251425215225209789052082991123350349344098300492707610364063489236390254621604127692521604159953636614433812761616521593168619923206127981202315129916855373453822316754579950233411475597645079257654366743061276343270400010850007807688654826220766169942950447850488750347216439118287671547274321924508337309788082754301230391229651622712140360028827435663972987280002114125685655496459339855401125872700494835651631875464570298133677168420403431337413804599518606776678048260967595277938543519994020493539305046110735488428241549978612667840103210280573443500236371104268932483169374019167697767469492406309987013078856049829363424695319944496351127219359945977960821252119825799575065210478577651102249858193757363851762477453396515966763453335138462952418584951720834243222337529173824930083294720728027896139881960262219279049439997254839459062999843332191157236130227030877981194968266242610719731797391456092684032396052461454949677914953495208826864631651349266842867460355575299212162115158123201210633258975916220544046575818005617326961067317019308796489862841249411124518456703025996910798541349147010410381313117861536036347489105073766995951310258920334466232787982376172845957864353113654798676937171777629409356096950316662462448488151912439259147787128357390643786801943311582456426825008878471486948113772904546566017967436866953303328301362988407523659149028594033583251493581733027760724139971742234331151212709008533343952455709100949021635239510110416644400527433905504814688944271384250136315478850270745245258460769678312291735584934606384056192158806056727158187620678158121940017250540706573215118337472672827737480116249962860238467351637391779831068473670595310983912220903280937744143820974059684807264003135087412376878651862383570430887356601848188265532995561024594165209257693093277906944433521580330817290689175201198817545025019008154620241684845342710368157819553530417669484514945963972598317123141409035309019330133043848004965499979780779651271850052286193927883415944582031133314541397489860526200975715057859970205009497879192205981159412642375942861784193535683726509338849012591875807430086689977659697342912235878567125889239908652513193998478563417975976748004265001326049796750586739680830797513108418157027694457961728974830568935563737089018130486019756591500096283327074091162774604210836164741809668518555139764463288449796067939459247615759183212224635431610580348188673860974842635988762355137306532834147646354363955060066439078508380099848194691752366965627687725407127869565038607778640484549549845104524301602867066746042073709993474177799260976204586544574251106536651161490197708848530425223857309517062056024940282589774609211012249026938980490292289436464659142166750064899727673232021145246273353623038016279130045540136445910804294010492564986155333685400793995189763254287771060090003322692369064012467095715540251045598205052394373260367320534833238503433993621496039494587560219204997176244445341875587298294820909649805758634237218620537488618990890727948006392829898377557931934433648849974253030441101235766062412953681416090210249790506971318463368761174767432643203436453677282097734258085895883346555483969919551461356933012006062649968965117287300631046330941700276684484139242923355359354048308310060535432533379019457766267839292071285622351196413981351529430734694105916198192630665921408504310502558540073438173080564249874164081689399864658994534008576105217280546499146823528231047796217550149624954528540191520866427958992478980622040544891433560043157599035137214742395532044038406455092326043780947478938270749805696092172631216484436509579953110709621555855601242801716765705141298354831695804978531991461708884933413882906754103899628551703205489545115027265107658742310292513075926020584612799020589403636826049011825842803497738696263001070555756613408919225595741003502275428047866270654035579189129108395930972504795611473788458788153159096159344999845991497183552853846797006014301724378937301004445449136755684593804242815730451692125358655784654000743234150532637846609814944312947611416867723817630046737027375170685586066593385963500521259856823592007297093363081757343656697555917398240877845094641245431393862661293965632301421343088849228784087514900443776918340336382860142969802449848823890150368720961368898450852591797086521746221070968725975339325089557323245148402132418569194456416272446300913975807916865742345063995071988765506397169159681023630608787382446020586368478344593927268086753431964545343561261774400795798790643958263186135802526122857999969045106149188292977729474705222860592634093942709992120795000859888311124502418501599644467702817380460681926746688125570378632769107871414188799282360148550032382208063062976943858093183364708425312712785672379156240043368543781087982146010628058236146611816225168157637214012362490434143158828097746398349001094008091763243338612771577972824705139013635961572391626920917910469030327688658339489701563752377295766584253709530345577439611019377305001242711637281632321551471313748654364857117513051963754153816287798361062310949661732427530007326324337548507437967974738857971409096672904906593484933197740097776245684836145846441280580051914022757820199776551154435227380562502496236662348683285681024609363335415130425645867859255764268009173690932091987911727775064748261925431845436056163111381294412934205125571890312204134324044234845083352636610777029203963218356895671906253093458391353038766944647190946082754341875837152681577715667544900055031448270957040126801067682901883858723943587569424994092653232822071241158494628456315579814071978154447538454342284063886633781296758578865978490632601251618582448720865561209939748633906808538523022427903721205355167668919804953553653511041824558492504552941281393502478524815940644834139442449052891133169960639057504635072119702403382609659501108137207682510771980747758721689230953624748961544758593292429539213847171504326411430207775554703175522812924760797434399954052724274811980257209857516010510958176910693742412665924232605153224687677549125673371329589951027746188880219569066780574072879928967978774374175353532770580512598861266503538794803896138145304642968440370067859870426737802340770500772094136046613165921974325076694005212449585791373275435933029570980148308134064311262891816740739570139445755231272278483011058348618057742158878408197137615437561899645327855873147048287481171767964314466897809343826643705093108479282943040405621473084371433453169544766828849126329911183419953804899144643161376203960434473438683513135499074878849519077822304629643845081287727321894421591569681233626161629067436221767266248703099605961091716466630887698020475798458931107247206035734150294034624185859820411283028509426377340152640946326222330774268596767922206679949295668666845045753951142424234886302625180921613553053690867599521477947665323857014005768819642948193807137145960553474207517510321800389849210741834412532775921269955072315108136560167084270784431622614280346491084426684789751393071038339942142058006706899268794404668218129709416376691489284834426988514846482022093793419660571893858311278420886089497802799324212708353568538871823156408746857125612598483591807851792037124181519814621794097442870457795090675438619836959303431146773387725998217202974369117541135277064183518649855345727077252401067330825090206089124304086237423569719577477525423408092422374887145756296708516447242940259675548986837462377283264306787018297784309507226149371627138316124833538964328754579538950986085304592488989621458343427299126902338239085803367079316098301183041090435303116246485000482756395983459666174635513212929719049564655960718979480877629120521994459347913211390870014194636504622528930926700064918073974963844571548683278389685559372897031834794965241051197364910158701488094944048625806317563055820894813535434069637403312172470172083138666140479918474507989524021525580734947729817574836625473853472546464608008704550105283723294079419043888120310227606707907798297375638681864984921595134750619977428024424653075510115232277804461498013816311110326816257825404845763140326157157753194440563573839199702337054051093712851191572309184324233083553841058488076186137883092694347533959101918503309228416940353270871663327748011944048470136577894196131369523044442447379126865390402263192164742465772590802874904159155102386714351926660269588551007900459719710632738193622395208303746934400258951300297181613170219453651835291439831832663162857050862597493975317303706709978565504866944818532183431787458088005827141008429195970662439066247685781632599369606169991732957707122259476955007030180387011057808269065715903652616305996554241725446067389711373251041558460988595557240264154513177118343822228540412375135500968474358104097253590639059164029345962953971750780748288109650694795738934235280219901670683004916675738533382486000048803789001513896939090999189173200827285968911794536008465723883727918704122154214904605955689520871612604835422522739149256828811156572977242841339094521888904490061927812493764041731668440704375754387293641095531646877361136490031692320623644275537865799479456223027039998734504161440708894269788086923609591209221115289934571667547753890354764777775766190396864646845862701746559979215070797950220318947703253183735828115546422746625728248824367166544648746512153792085893886010115532540490852908355986063380578742893053854347086002361220422503840742254914217191505873589888836242624801323878307075801269760883298538638291850473936822716389304083050435821650370667444102377981784186839597667302144978911819168724280103573927866934943486482338053832554129340037907162316374522132959363737883479009330578890187216849072040658522231946762794090396055664195255344101192329034456682911019362618731903910618698916983924159541951329186653245849625684893303088879055060949661052365051158111201467215812606054332055644868311069106195837508276716735642438921514958850367940536348643967813122743689061304316277778748477196380046685415378969660996012246370165783008148723590624301964427423558386685318330923701102853942010711261073503320754211552082307026858674295449261256862742978220073651735660543137271406080637809044486970475368131183605386349820680684432862802074437269655656106181946702280489161916725482316944715358608092397065255533454301900402208043744689509983543638242852551198080146963833776615551511086870213958103983125375566249758295772566443125939346847841020279095900342421576852806643092077103461959096817473559788340363894501644585604796971510441588817213197778611471728743172755205362067244587315956641371554341868358966944369025120068196795223700288463571238934035564967592684960705380390813056614224005386376263517489987229391042426550688667618428583157129683015422329647284581447525120531508076364696056993826142398464040775493925841740103913337683887749465246242793026756856543661507595743714727889614618367602955850949054162069972732246801517216780469412096321693937709396664445776980212894988760916397478242293563796250950300870598557562506125737863781001520562049587827139955881092036180110596944590754685730859362824501940550504286961229664464319314444396040904564343263428920768716061593001357511869791235537523742813291730992430541083009367749392939629098744751883258635399339434734852154474703879011668716369218141552167329565954751780926365762122183596521060099813609764911838199986308392517201839666947909226094628428763269081193942920139513576655421430467883156969273458912255011178207667896074648085429449956139528762241565423975712245093399380531478429609264810733046953634887441730345135496839335474576271884906928652361115779763511946308278098843741892964751008829443939724555986178539977504917475155124838946478550138314126885714969898306194424511969703684866795594600137627787598503859178649761513283576540438339154397346356986227762543385359469121434626183073671729058794208070726525033424432136566010739566146983365698573010524352545373426579209680043708051138097247074073477759360266368186713430719706246576943869135906371291768764178219678370277495264262042151394594841033816524855656862913015205760585906135219930855005196629218250575595791006936381789884012623422164612816132333933761546844024760337584177004553333694709809953778725269241885292936344350965398718616079286644931857979051993812392280745138790367593555947139681917796374600071565723378054109424173375377307131153419275568630883136738435790478667205018109080419811924991838647237554946095695244770509762921115478417815240321508927701878791407335255753423026513168978753069851215453557727533773569388704654029385384079811782175556354468234413526206863136848409987156132275710717181816774670935396261829509193875151244587441932446254540185838822017170187546332031187533342570991199687413564124300209623352515365074605655475266660782110078276068941974970050365919575294681897021556389171716151278537514290897085544290314451896750437542822758836304210628700104180389580420249113152671397234693101632500276246521098164330197594548524859632448601844421446877573327266527212867407092226976785806059496770375532386667175084671766085469085467161564268169098716640086826919092476434403767906245557395858961897954137382661851698633221500091425432395552977915495951139110715894006118208351273218205273650806859176117448344926013358459074163046867722604344147253875146554445004469728650703837911811604062602255657441136988902061692546215780175958377503918937580230900862918783173858875280173603072332757412910055829807823544834859345247641586945484449674027814456183956818553533797388521744143531420994542483503190323590958715509675787381243546663528963602078306609698514618231058245851004288473412292327590032674938840181897130600579862150141189540971683745900997948094413484306091925139744603384869283338860262387343692670211383801178545226961564874043923763491548806779104837057314752121921900662236042261421617354036359153578253857778704902278699626266008794447452472243295211073603446042759395590327463628877397604665481305788660940860881545479449966522461365407469886276782969900621580616211041388664642653004494306645646109255198848877233762417487503193462048462271494243987932000167368983717270431322107682330756766020627156759428922733881786417961023649175752205002489308291506477673717042214536124247762745924114931386043546643768045668421454054840670440851769584550636286295686573805368295716299336189968624011323258529311538407028555284410424007583254429606770787778542540609421005079331820547960151163398023199183388540278742500456536636062240243820228182240764158955622338155195452107377610685371244565824902498327466127260776223933708408867273939170400970081620953974221049025893621654148586774680745452077135430156944538193570556212119047026776140218187718650166023848319811418903224071750720096357349596661539508145991420994050849104239906530216149968073671049697080591631297676995756183496921449082146884646959137566184977494174422846644697330367291906656927160069002646255990115021347800439365083518082563832571141991586905204070247313303632435401332744584360926546765589951036552959938102429175520082959974784929011253299943038174225545917462501802346402769915519158080872481797468277549790823266815631476478662811881499316378504795207818579313844466706037808395035367185775623743294683810545249575709744296612632340041320831594801576480888336165786309726735057722297781148876174315693690432622912476456659208560089959087805286627422256306840022272438700154578487822090762372483724890966053068693677095792835534558782315133353785849166101356157000387173507724673886342076402285435273720212397466275598626162692743410881371197464511915683145117948059585228309199134665823603679764284708719936317829538031814261958346254088430924337715158065425301963604378425171980342326565870364090521597357729892604286967813503624724306545787877354746676122227182230595189786546991661969946566233749365089687466864256144484588178291767216515252356408866687128211323515905101819501574392325841507320729715747341798723094086912418866177565328019608902437779212451216411262093264034181027230483684923546023056171931747061743251496749788818463502888884500438419319228781403904443518703364567918585616791223533711680542832643655605936769335035662713054047236307366462918954967568817579452272607418087770247664908360038076171614492232282531974705827302491653560635013009468169958956943519533142798604545210752145115184676261278298153998905033506864728827548438596548790136226127254432415534062170009310794098045426926934332337041624663569930626266267025507176841986598731983288266553461095055207166218715896354802823141662293598316355367348263197632880711209967653807229910243119688990775854963084117730753918847564774233257989318313328323442261699708438653010201803026562062714695689716571383499277556460869150494291998373387696918682814240894651803863839205121617362105489905860727482125977046358012379103737933625953432404933175563643296213267918165515038917141094167919303309296281673779192868744666389411446775543070718815571341817534925480828872318414952230635672945252747847940512625306495247812391618309551703511201414146224795257182075871769647458639703056900301341048330305230628016951769204361932752087482183643560166446967353468908159518091326810701005681638436288150566079367044299281818831161545166458149494986834684478917902049447844843349830214289231256232055732696432386743585490028407813853623829711358545859767122295168194278307396193537445926951739253349394131395929384981101804885581311573077662352008527874720585449173189896050455776306618792952080826506501783654339053941932655905985881756629446481408755694193477064541222873070463105066281232173144804559249203803060214174058036061059478606763042225320536643971404129934054468977559403029404509567204672315486656931644356043970640662281037868780968390613951098383488924308953501511342886048478771546933623572923337197432777426168603897410129463824800064869967749236126981203500422707449302976683728615415854137267847078539874475304188175290259110757588211608989188663261639962657085694413665833031588310230194717785903371798823778765800635627533905111321826646178672362661199679716288162980620499276055573379290008443378899534506945058742025471853836038569665485809219222328700175134816757572747245956912154240478663292607235747171420437162893975606950058135399911762061913519800165237750083596681742775277255109779322209234855010720100188581980466415290462739276544402033037093514462792759452831388938300874551419251907870482187882900892873798866268840982511432662983282206833297713250930275948022162091339704852831241479761559597741809493773450284862774827201225255708692518512711043849359927052532851053761279758660041819558988041179434781199109002489524091602291086476186950153633489960693707558845506471933846536404283600619487681674545260340917621567810224518464152428192629618956288843490796909348185156435839869925925102271693250306415943579323738165416290787778380432660656807916513091520943699111395811885226515174789644504110304755281581149635995470458635212897956532542941621381722393975160872119450421856855183949855817337467166141627666529094206966120962942945899719959882777749857886716525662245121475363972950163108164587772242866279080813493533830486021869579767157774373674697608571842551416817593667470062820344662194050665447610025172191778303972231902463905166017194901077693879974806000975011694162878349320637559102493653079788661648388385285358525683160146429245524506006106620259666985386911685907353140242077383599734588670736626319562473511215408609669596110391918020404964441487148637836207536394990961801815406969194571153257927123996715962943231998816556024287431516657703520646767588293688168776740306418131232017736605696252825620577799326248413377036368973585015415829733461363664494855888197574871698238467169332698451139347597784053262624271212618113793342969379628859714275706770938848685382449275765208614849107590371476741730168206462053968887795207740878622351697432391797143920472466998227364164501161153153643358029978512424621193748504491778813316882862941118074528834404593073759919343940217910180450047152050776965582000317751563896302017123977546397407102043722343070349438906940738758394952339831359361348355962535037011346091208548111906254329326797455397302042939737688502764845660727641299488267458674124515516124883953786358406151682902370004910912894573456969407082015355500828348647325314140789126940176228412313259820230679196355094370415345213171611287796424174600375961633560612788917018144165820825262740211350204184207170801058225790683758351109255958555873028094168483678269174298775528059622317971496958753082446855427501028520362132876767339165164700386245063528275683481415972264223539235659919537152617512402381940296377778662377899139780285148196059601232162556782697776339596753099377554436738149098992539676380225178915480282018998005235071275136842187937413559153271274616129715301922964327677572272787616091760488497094573654157283761466469817343333150469263072982928804657642446440412586835708616484576187830257037563406815690042166606763279769741451525622525475669578901349901048222561813132615149871234115094232179878625004665835257521279542595975229561158364261425599261700534171759624828472999874350483896996591001747175666392362990634171476641181577972902801667865907362225933165484551171871387562839586471967759487344486530021068730795413660622514882173934372491211018046042010000263185085978558535751311266696005720582128018627930745594447777244906820008470212294996552800865017725597664551957940282981511414316192887063935641585929077125632006840232447228515235881968382346735765916885090564190593017037259110430563823499608176157910000581207641037460820998531399851870051153179120328241831094840428275934770353164451220730166576285728912890787282799187783234090557005165178905018417502686766215704191206229636993756406304769360088421723455381372410929675059132281027561279959239680062740617721440770478502642821578157851479808944905632654198051832391211713975957319312950173164627653658326302938913158333097883251471094561173555951326943309359198712590674635561197338060567761338328080460963157669711432872766027408193645859447538885718335742428996947970672939233195788671351392656457274010907193970353214233856601838162602778338936191706720253561839155799955601310799306801919726561353003374297802259692476110968490776891317478297747349950505273934017276769341789830690464356541120806486675887694597802418883855963394743097497989706197273087157194867251845344506879342346250847303769114069030231639730592004092834336129582828178679811697615347101459821125359809566912442064367089320236845053898543666384360801411923296261482329950843891877109360854522741182551943693675722040542954060292561383177365005268409906346991120819758515898829238615688069789430076263344443033323774120786976335640212722938287852920801864348065964521931119846057188536927008464859488145247493509787390222683981360176656468897584875058225478029633862567002288078633215121335636133944513936231800784569433732888657132389094489046576486297223980568938987775441354701057044188418784696160980565564521872203185510341340737161658121178363672405030474328095242224195060006779134373420525509263863039326122390686203058222241878626281948965663011246151827923644014706657341171568964869553520390770987740038392035982107135331180108520777577480409553961883720896136561191411903277019803252919154048420936537324349493548356701479033411248203050202431229653910349623798216099361520286998950173557909014317097346990043505473033184302453093900833462849369074812487571368037591169173392000247323447752315067833192863044037944243987578485172456532120104413247014472382540704310475912635914462317865858132881423709163834668003376926770380247755119927278488720953131360242500465465340480865679998991801197084850122812052783118588902488764417494653819348580314960896188764341724607956347681458647524880576843866774073584417882106303435821199703845844564824993163887935408990874980588424370271045435855444920409353058366404493142540805262459059177273269116821261250754546124188024713839069253917398777959353287309154216221871716038688196339662098105361248461640621619902153897999939520269212985431095722300170408286893613372070097625517984251493912498924159627090541542401649226848066117366119272786099563183832326948503528213794705965323703155694249334652030298323585546671615023082910978025689038894661303815403518237123088485114496140168398415896261146295757982877275475821522994839294978877151524533675711957405901578304368691543084025143021259100803626627966210270050815357416449974338456290539072044308996527060947187522050831001264594621180128302014149452938287167507615482545914263642203320910040770542586602768804839840288383607441076525623799418458189715593052862439836357053405034256821835242321137774195992496729764443608686071567510114659265804846200447410301093665877223753569987786226300126510919913506160190879368742088107633689412694819853976491401215746099538106816010249692653939181393850899790962330298624774884378618993830592672278811010481860191060630659610272188750514751768443943389363372078462729823175085048471646080720133688847759446525827010337087021853396545802879531903159450851504176357736521195793691204755999429264335505869973369958153682336094681431673537978977782004408396206874260895080374733466703475957807207647688369033114802102627935885443807765756588592810920209135411916599081531899032846705286532306660355155436252824469605992587399432231879011973414143532604975757500669595579723257144484893772979578613206922854142512541963519120139886779029669315892530976864833344312693879385083756113068649814032335621762073280473312682327611701942396795422339617324650304766956456921125451474425619820892409228481284040894137531561066867801701878213544159342980462475044929100315084913580879207126460910110904596702635149687244540161391077215474135587236623194003790233162847013520692569398088752462896138265546069325296286269917311678842120570862240013583883797857567508956463368605750809631429143197238918599030009024031118770559979613608088191860972793419915265729345055674043999283178664782558010433186916080128323575346585782462645876849971497366789214976547616360912591574929878885245729919813191280015937558959651027094930702639835358102574019825924239869007336104472575228674054174778291000248769863023304484170140031035114967466517535994363894604664492105191548661866518872050071230376607205945265856147233721315795491687348658396080812719178641764166071756052761820390390250561697141267873403178468122789625193519425085708914793014656909400790749810724874029729777269520730251478402946819811815390300587829532121481929909468236508235105341904885281538625596000488411435374033612840216847777652576878851341536592536974435630634620929560719611319527752219652834231942895274430388176028751009816019685423342717289612828905573401104881581208574339200300580224035921597232014714930910992570187223136638240750358155358823843044411037414080872870284623297119396969732584083876532751595225239175086796660418405463436643930974253276506828105660177784637577941787816783539195117885902092114887047590329319062920348954175908110525577862675547829355468105271128456152953919227567569342328258733887736000385689647978249859264714218588286188971260676980456266248701019077813350806324590370693712809166818955914245406632161477000899409374078782664705234802891271261678424596562313680179465214119932468039283363237463074001284624277515426551844771686338239646163664025738530699858833357343145113223266773766063061789090239502444988459100970391706395155465702986711506996217362073790038143688649229538379965052534655913014393715373569126140051811002770147969875490775990381007194119309279619733129365655179961765763967450865504143391438294255861439046759003121789944062239959394361299826735993065214841382286558063177966767862036728381408522454549832412314096918880284533429206628414311404172453025233440641526105665417633921853398952080797746434772558927565345641803490307893346371898040279973510464511736090178392606429479889229560629153335272485423551494467187364387249522351929703275852914736626133167376724411074866667543340695026275044324772292008913740696335962771786545321250102436994541916269372158955930213004871088597528097453483918571246646867839907909798550346949107076412920935011135469919990451387267579340079770795348742218462376027652143638581297636242377066247065685992662327992868945848299798894503233909179844976433903960912210051155311077689675509145294338217158541630656436468635535347994036929873634519815861306135187447351277186774122486664807157618148731953089167676708798801716969614447459332255093329232926224432110489408686032214051901133818238843644055001792842216927980034726927476097653610517146356239966994424665982883597398702962598738134701755692303123503051303497336611677548192058496163865490285971546489865213466195789686522676639711156513744452434630060296955705346876361094486293777829197672027758496380355070946229596197787040707877026010473568582305844630676326135738325712919342356245145398162935118961494382160547169258604535515593231139192646295241078664350665686546130837483146412844015962298841757705636783196177880364724196709428043567325586296161559968430980793309015925770580751251136726023351680718947327115232570319180219055640958324420870159617037340258244086401471113818812917309873643683670630597524064767903420570127591520941189035408390555065896631271294695309105511921768561111603285452318470067566723274824249543943625343114154073034920568383423827237943385976931547404877844210985179984167764910920952729659964463173766943363398184027602251138110067972734516462122617878866355813010104852096363885695599857130844965361854736494851156814921452276284667328941328596003747419614004671186283465397124517206965016116946870428617727465950586568623098438456880212842348483940795093933562185139593652711755680128866257084590306982503853986539866186857594747291528685295926169056544667514414098672279404405068273670964783100297888085938632568499811726000529044145918087635945193912168860196820470800302177060099273463220881316431658289113793284915983382289124906096709860607709347863923017049780514596504234226335821629633654185549508629614968686222285186144477604968204386899190644654145441790724362006981344763326868157584778802960958505250562283246061203647751728139686957133501424732892887002904871150204925638780296611007444124598771730841728708898851327177762238037739150362285673190221704832463870731883354445693056629362324644256842433000920374821179994429818905905740142249859076288446675747617056295393806016298925778350747741831021345782605604044793393323421737203813876174641108014477423469793287850812177426524403389790680801442090296592841660479877170336427259752002615090386775325503915988702248100083318349485908713546115426334543009830520339174461844532577184133407194192950158774005588782988043755457792682703010285073676436756018168016459481430883958361397770275266310486785707718635817378131131898666130595232401085269862229137092709348976106381235638102795087191080867371356790941138112465766344993427705009190966732564863093565480811955643778799634425647774239525906356958629223532004785627915433207551622701716715438279522514447194241472484665582241171068068913507190666335217589399256720979859309224463778872863591495563093669239143895709608637392396453397903489531808302089331529058368051828371369598504405733114346248714565756281574363500154149577054734907300752535320829940116683944307952278403477028955638077289970661223520931181506155710680863239954780394398948100394075771249285047168764651139810572783675067203280448673122055744148372628716253398479194681963486639000692297967041495662516200162019253112578337726992234910575749174380871592897856144564968362473915013793089843911059344435478457991665166430404240316264237395236731901162782726833542653019965688619171011120262580368182211057776106457898632448276464244019410826001253703805457485432637125374565085733420278152200030838936808972081395254877808193924361340639772244893718396679370968266279362422630891584886445340883308179194245145709059005653051088923330411189662502660602222622507163575221058918988160197457626527444461457922042511179275874692177810229020352114187253769696252087732552794327261121276231139111173362407744928069395009560579216952141244749846177133939294280565792920912709079127134420264174786710427627636558863426696917593308605389035756279274761808434337237961565433580968766028528924765529675986173642289771557134898551224235763024709637233564513864887051833562242667535005883116538168051736349954029078036701604682157507705034940104192939886497909019693402772364818247098451543542661605867624338353217986916705220399078851020801266697426939347802940382159264551854635435020497136141539817173684439155108674953776672367226835341195574282812115353304225791942817000811173323591832294410070643721385816929970877177700300756513341689907811213458792661197195869378267868902699116345121539986052189948541007077355700996672458313888824240901694998397368908635103739209296455151788643061509518477060989612908196605030672140514899850777943488912694938065579980334233138157153358984473980669770549357498613957328723382302213586658876307046007030387043123278602142950591427330051467610620965762415688884592889119844151065712723588695696004217797599679816325244683773270501387283576973412380843985523114588448084072779384666263034669499719061688369261716236422795661305303890044363163526739229000202448432982461215954817522796859377881673646497741358932664080833850452527079744658986670726903349027118444390869820304855131591105777997722784011902911220651765220464613693123631283649888290086936131184582825638690607758520867226610025891855461825858839521122575494679376462815937542104195361361801215741566376025620712471179162428669441151671628185102792458001223076318202576565643413381025644370763416255155918174059212546999121210367357977157101521704976089927923500998471963106274244891066301206037855117076201137271355446639186699656009285321874825671581246358789202038459467009056877720333592586557533220677723222879732277310751801398494030997342956890646460453601885424991225443580117019061521375706671568351181316823844330762857787935865079656578040436290755680205856683932572026318683409365226594992116823344375947692503408689380598139031485981451330574169322570239982836871229347300662770419709088778691544444935738056408406117382050909980662652509738875007519663187881235591077584981797766021558771713307529479418220669222267228356073507132963674757666531627899422440841389301450187273179603065892114610386429035351796012841527641672463976035620416579913448320090316576555635186041663737158598255734969518169165243898664755348249364570784240131736460854010548144122674508597058616615684327038614156200120251310804984305566105132708192091989249183541199574588399503220491158500109489131901839701276130397296887591310167081764420087929121089682985218164121129908358903470131154315784739513266936309862060544634890312659575147742903015485774000482605012751897143694732455905064729506787351156950428121364831669048243968788450146735981825662128283180041101472243061567081877332230970693615557866963334761081330248209917097531166858761780090802969590550191571650782545402497539285420955371635689236752935895534071583274629495104584267989947545210870578858287202367802690805608226113488791958686546899387033980455926740762488262804220865828143977748602942221820248309628239687683104909764364187463776419840194532555208841750367947271109336399535611215262077089300289627332337070101430862810866331152508274705524026221737819687204794575762725777230377929708101327551680189471394440622696767863653179152703748169161442517939211500652293484143068110962497334330847958747991805624676800293412404324625280626744000818665163447208268990409987415734706662044756588170769476486112520473596139238109492796552361935057019457092200568434676551276745444655863698237943788298887521195490643959304181515844037250378545345329673225112105654093533603018319616742261353725073773275473208799457120193739856866022589140499406082407594546080994231365641831294906750789380331344350956774902541887419338558989014624042878118911512497113033091799929998015927499523292579260529629959360681996578779219840507783642775067980155205006448860711002708644747211503152416005479527518719610857360381776299542726708641237024967620089263856280333247006080646171448409677606338813135744097708194146380918510214784213379515651341245959539938279720658562783239941099214967101526592505597841806192122717394752204196469679382122460120341575396315996937068941159552885316660683407242486736144995734204736888733129710263099808759218720092173316034091178381579284968098049764997475900442091919171459634064358898299358059436186468395309905091459181269784208054231965402513072427998174523558665993883578509625389179780544309394156643566010950150306727620592132199337047129623270603667119559034912018172507005468382657031237586274446348717808951378771433519241265987611865760625183314538907806180976310522376651569296208806213150539723683162595870266005369530846064635471499664306738771229251855472866455611438608175711079707909100166649932767254669426910944051897883818655356498460535830717800897832378484058124148572126270662982181681062121514323506209235091259714389884892334717730644245144968540374234912627770173810051355066837320242308995737822952122501814933338148287376596732123690192715792165573577320201151435796719853498835614046861724572222479407245289381314856695571114924216870376203152195004494220184603358774050633455146010724765368099901197344469752405709964243946457703320447471918026491824946010867241813794398698492684096242434338885955080445089925347740042270862178435742353211339477181876259342048409311691396055319295170145865753529622937611748528400587124336059094879175653152604614306222367068493652354539680044343590735999127710059361760813173611201515489377790902440014641708090944172555748230022313037474161196670063594759010508754768328951294244858512065762155541883211871748734189636813021130045334921447157814901803955749962618675142620730761829054547309431904708631534742300957887858907499381797725467527707376044526301086815987897521730134264362465010605072595798496075655670946127736772523071016928065278963694751575224545198388646527525970674407258768231839942592470964573308800166120057574055114899470633106349103883806079911826657149856096162606225808811550604391529291467374538053690872893090065177146606445690153731590306389502686429681219117558361182366688388192563987072969110574801594380767513102906500906672727883555717356904425341948766098625559868346800773231487555475658182413777319627366090227706844310897672922376599615830669599453231385300130830921057130935047189079630805716221809857358874361783632025166941547750855048678054921956804592785247118664995287865627682339741032745258281759450272927921709965309019337040131982554457332728261367824938296053501560880599584190788531909740420260213897621297904569570031537828665257630789127499876821627591422490558563643996406067724626353816457096736090913966417536821803063717488235683574993819122680643411978018015685908381446370029182027265252793734235499068680514324026062590830061481626818654403102566316827898809604529944632941936318442426643446552909340938793338214980101316688719980213698597902867592738366719199132508261980832454055455247081512670201039759631824308826365846341525262522107248277241019446132333430483041002096374406672273366700134264407905688631816868492410194454142033970847863138356779412132776673820041515301822020010899037539296150730799269152941451619543029467182484164027109845786058503490299070637229132237303719325029691673565386695807820689121491608338043929746510671435881065650455788429424428000288786028964784578052575798988015335369413780601727234160904689938131087452423019659343859529230714772027914891007846681745819436048539079396096120899437449117914788934153282640916276352901729174400767798269003677110968478186655265707201375519738007754631427190628423574694620981050372490995928158982207731782863878568901873560625276249543275308033251543739643684697265277126876782134827842164417710680995441548927303677268009230156464247987645205742812879860777652094105825814232815685386587363000094021157305999645578648209493498162765286098616613038608360222481892624749900307317154447813269523319892603099757599489446011350845764188728853427207937808545331892493166368712904066326362398359621773233542679882543170757428994781881471372407160045939242553397407933650114947002918238768795998923592266733448919961122136965133599757329094939010928673088090313388971587951141360959244971333933920108754490308126865652639771848364041773219273617085734372788153109432001207359653386130673502005449725374955761441444627369079740311536720800600256145016131862807733976050845434063176031707918944702964537219444559405769696034995750049408942004316085803797177869609854590148791092730485555092629627268499488935225844084416439432856409520069930180015020128348921825139303545780449087332119782178648628818529656215260312693100537196864848105422277780874057540703533521874615798470453729631212149806053213575583477106263044200106755593637347293251419493638197963481053741355182826597368486102702590977696899843174128045789791621171167307627553446700962935286533506258274306830583203516680985507189896305686961086454831328845321509536967872277122052391816130957068505410835668390596832830663572164857306148564981137555870439947388954514728099080841147192633430856781422782762725571223289011753948196087481289773603763291644792536805775832330082808508877322427074363940672039363317985404119177281415064889921101447210253038216852758873811807771768477529735531425537957490449083231860883370842117508545974695993105132320618102041664544005074456647435241899877721764216559116479529778050753477174259718385083792276800486019484158111354763063828302535530836497737907017322937230381618460817242363251295395159707749143076960138281012699952017664845245519881405311125919478306756028672536863337253244606324219604866667501489971062022876547962910846665022120008027490097490811608369265720411204509398859206849673142504091384074949231573214381366259810490573550029837914925528575806991797085725899064853991602444439691920241940984170614313663339019689320738277605244343836395107330693681272992622337846416118429297189093578514205657287247849398130781231721913743334475170909729728821965736258191625013402417733763643328884938752752099366307559311310404843088682296792093620770140315321492533402628454686710672017187142047494450188704549935744350053888583408317049126232726413931050108165220607269368361073395783334800188832825771804835023167194706825419945306493097407339157270541882065999165477094699287755129376526111884198905856172219754087708133139824725036807780039710364295561976133302042090310668959516470312215413578554038252156981706166482309155064580044957818318518449783912266431826145861082310677796671760807069871583741876658949355589571193994339457028632568455535635495908139526635330479098828871857652826154088897665504606815464191224633425172693470716936824441921630882354612405443148817856437901709264718357161496963966323703039967511823368472080186232380188027063097656806737489641753976120792632255159962827072557688109006506075656089609650026571183507192620506318250224552912593116963486763968024190374523747547168689864005128804012193522755744677406062109079352105289206735387855905852734677252302550959913517684180894917202371452369853859111485293467145217448851292613745029112069272886498500029927959087662907876981408476968679305010340180066877861166458294388289073559215343629623268003040064902067442802679309428836856548963565450650980251996952566538233777216158750500964102160348072816609380874287991764067542359666438202064727253964168909541343441909394937389930707765181706732749822302522450059045649775938900928984673978931163119852056822684938620142634168900412933030435460886310822028257643160092035523635325505849525675643744787353002495788955004866330307099484511496212329058660040536120157935271903722549081417817507039304941492627399928280020167805589899454062752703644098697297390472173576881517554031855755035407379445951572548257243146465105037921949624298134171293232997203477883445221621124671437598846293284057572444967185968032195937387648671602195167756566454704905112704442703615002758055718999846639351372551302373594641524552634535902387030451678591291738211748294621086275124595968911457047942098701515868858505350501168777985311000247103862231717518616851536015888251874294666905466684381084368719524494208556125586591789961275486671140323004011880818809316226629323525676498880303951011697281748642864931660197402425523625627357247576481251157952554967492140649028281014063925020912642699842924847143549534261310793543382500003120105247090603939496146072124016965141865460241745631730477661383962147523064606535376385997751373144462422300477725512260569457347451167803312033084330754380172912231179518494886092514724955302848865024442311628087986095906286245655749820482157374946689431672015025855489365478589612394296446993982783969505318054871019321218983082278461493108140258586921891555994295192347985044418802961805391867481967198893226803072827903953935265354452926846240884605285144279251121708993711321969171629514222899793596126651569156996388820890783346106003175417184184189620630955545522416146140116784922196965943602270701423051784518481280958307146975879780276282034526784122469959563595610572325459938225875429674730589080866631065359345906135831076946801472124797585188783444855124736241350682356249909325934083137645856805023136519138590817955567176475170190756547357033183037828730621498315378026646997749184903312664128856094392377833903504949713669106721658776080309419104012044812301104984959093824896313646506091500923171367330195709201472859168839005321617055930085776443452030161678828324563506901927656686558577619002377062928060898284312931954412348816096642607218911421967764352293014834490005291336658433584234177397822783452861691465198829534426409395178933576963095701532425445387620700919003980606950418758834865303511383412750567429189447459092256998012544754650692703079700651064232976919338629399284823391121086493858453081272207692689591685963901298738367607211961282736246334983935126877567089687870859513579919120686016218127939852664778139481843380977522125607644904373001389412575600886770727559040287629401960851144492269982061244019010273678865676789995590550614110701807141284479078576739513955236055764489888138848935860916686780694117816412420140148693464409848059668355818752204281636706805270762081779367686088935380965331985029194111766543944854436436828941801310407959823183478236570281545587431314894589636417014578215586868015790892539274079265392451016272972265656675495142063667853289048492299173516668439173760815872184181960564698019794695514117652239282146352157546689103886160368227180026356873338026666580108499834665279351877491060133038387308112208914663276818194739985750201157356530821277943495387267836375982329886711163612662433803439502347749478376048486667632106157954930816945832598491490683499417757383972927189461434964431589962381374186183656391765640283946924568002083842486329128019225509968618986837647442935447327735319388464774251472448229712231460774266104298584202093874650817044765420404220549144487502681950208642511773260953973356433435301922699820302596111435757251510314851513656203021461428473055088977896964359893941330978585464753694883323200797091201960797922446250562430451740495194880456486200440172131642437932752110812200923662182023192414745863989786468369120114102677499836840775572980979552821786967513447997767813146496811673834247542661578707881396210553584247108453802999104517625142239873462316715787200526583049364535545029419354786312300562279385755722925817827949406607447676056620276231892378871876111964190389213145439799867766926705781085556504069554817154277305922979207412653222475784436579332138802398995272374670464860195503640015859759578855223390270021783259261798795779237843674377057758011732902130443638700889777818266929886712529811130696887843686668204023052872957185617447528103813295863435160987104522708964360128738828418493734635582273117708091810386132984684272805940990847425293341376670061884616355463460776988516029043140795672285444472418589257486743861000876806484911287672359290634312439090900610395225363671032626583339955143413042200540571352484774935988809006137669414749815039348086599259883407773588594751455408626263667549020982837923830797626586903790616068560462247376213153665112064192051607743409454458739522644973386437107660804917207266636651433062312186476718823372305034261822299123784582631267262591682612640019103436527563712188897329020686731320426956525425216710085722986732006732866604561412699768992133258216183174341740448845425188325198990093986744765782319133413504167061692337041337118961436656932922769863665147253259784798578899822515304560415996196332960747881066042654517510561968015493856158096060934327909838564706835382722905040563617561857485267557960038856626584834274818130290940875304934248094936287908611872462895248271095525966269614841671383372128633519245295119105257423694149591856900713557216923660359249989424756432859331647060720807201564368066882093509545324394447780956007036086706326604936617466956057940489015901656154945595914252277580558637699069368071877794447698286508062256456788760244952628982753536218989782696475537199083638344532221357831925943784104560320815677282988546118939041775476532963880705377071298429491442989396205664536213370105596491607209637014728258778311665993967001591926694468618682525457735739461921365797240764804968326985307045936240176781482559285327459172944585132641902324733044247977285994184449850219125688898557365030909302915466673271306241044012152650982509083267298568128099534276618680924695984092942504794252586865043822318759090882626325732042538426406989208233179279456736126501966519134781581414877997546638120941746430298145539455932347399215629183727697639328256520503647664152521438960310995108948357702024855257029829416692158624453114297963559761622269274512859952055736484955242605600805131565425825489313616207296926260043926989803958209849972826318984691220561047067037768880727872870708290375506061122468508678875799092537331774411965316999264126495898348127668939118135428861537972466629240818778700880790988516302053862386476044042071459686225029485584203176174558459361534175855110899657734035424988921062120239848691099823529150595594341459459443776680810941682810313365277138212455158106288423915450821260656012937439748349569766516693851582887324539570766847675793441871247028782764172129975453417557259003787544782313137615134064620544062733547206843535187092701904914610861172984531929479093323022841967584885465388874738527074809751234012854199076518808316911399526423667281074075170706189363911899270163295676386440361519643430100809094082280576929721362786637324378362467017379975379481241656186690204197530161324823482992405373457374527309787071156713355061814632986950393430085281027339444069287190470590594189400714187989325808147055310418357690223767240903529679360798271147836376648314966614284496768335188557518289121376435833951281240057166571232219218791974447906892138605068766106914797746153076137305893561876139351549943257537926835383129519813401221948377312165737236247193219863666954600084202348789456241563248248636947577007026583669917812617373783404232377368760494788753385197665867721876051939121700251790539405133556258836468843822660057856747698413339718001593407849210311800881632534643524392046345199735202681489699310828450521597795774127419920621727754757143772651708774398221843063028884611892257319878861308430136132878949870499774103473868570204947380354686782593196028731980827217828735112486194414260801478318584235556126597928419894587086549049561136294764114046132079038115471705532099459848738893399457239122512904667813777422965300487012407959463853966961772239592691418181955547424578715025751596533432188243146567605946109582365201418432877473038150689806517730524338690926598394987203333598663518899352657347464929006264012176387350791998106231812802440727694502538062752240241691026188762703785097755666801137891082881526356255438211264795662383729805038603136930266917472856877984677904498748050973377145690315525011039495670870130973666540643222089787009310074598947252998463960833685656634705739303197889147249755643647785891653474000407553165279251305819881350737982673572298509876318613759692670502036712347427283050773718984666432719753380013890110976265927733439015497966940028713956884931134320129004460285993704390003342338971990568963957373667258060873388474268361900742918019351151096136134269682268661273329318792798040327855208849342838370104714744082090837009711551902560792456272038971778847879311129139663671036230043577812187223052734496610793598636105817313158982036798984005271663165852008313407943325065546182514659736323431270349402913176212646013659171884523524596677656608827644085936605485019822339758354157868827306477214489552651250333708993076141839139956517426578443584951051171009380091168431595404460829006230283513922286471528423055030342889403993279340379529339342977332238971763068860169916367556784009201942060742317172522030213665317362856885827434775244614443191496930096432875024471256315854270754536180195722585491983702166915180110493110176910147915188400359150716245969538687255676758472614307844788610064581658258161572329472229328049522938933570775245024875176836373020955996901773354231171972002366540708276133785282574460149559863689569125947271821048816668246889978428754279969037192354579259650052890079219522314217082447103817045260981411148208863430538284965684486706816864996968963779895552824629588483207154248692361323854610756448066827626755080054383371182307436873057114721312862146424021057906103266787347699763956775937417133818222974373544654499792968087816019777889775065536430787664593179326599833321770623505112457960207638231184426693701135915996746850175907166015406783427700500188617033514469211541875588940072638098639945090219003082876354667608052948083338957032718001531065046139212938361959078649651560854904805750952620797007486075220508722449334495092865443108350759188274253688032413836353631574290980057696811248073822940103564417812813063663814446518206441213120545233237933268083667931717547529077534839832341399787338228894337161141052740887863322067331668139066114189848051517016340698065465352912733857920249501976610361211188143947584840546509865373743349000867158452903116218949072559633734313396871910148879941495682537239222077927293193385290703358804333809130874681276464707619147424393776158517972453497946426907455566583731859223516471601788381096146724194690575363798935810825477178203009372217101421548650669903226551582816597153539316759258395630081691706880963935492540259844180424487355085118334417446016509820430519654323787708650327548290439820792080918753465648671801999970577693651037831422320893359008228692967433732740798358431999565496007206018951606274421737104314195510047106936151710084108497914452800345771378440035762748349459011705085154555899673211376007958869920836035807635843744127292763684427608714726647791826787727352246002227626861027708642557451831147853373332086138079399827132785134510437444489388127422710331761019389015072045806637576198336916580469708695207810088899229735077113358023150415225958161216972439761186014767088244436887974879922799001968171523500604226881320251511585887331086271609762327465015842978707398743136404974196452668972559722394536328198723668184228849808081749620755556477897961090327932333871454347378448525523204209634881141491544756306399404838894788169662047662162316735589747001064714397902178448653395224895714329216239354371798160284256904053567474480145286145642989174325536187236660848879869191978890008318101673136040729974718988105627640800580939369686011968856134696899971561042706763084588831787626016995695941348251193040596188747331710230949850362503262034508580473181942560640344202547296650166664396053364441929342646361136390291366145298123185280492309945113322818178634305599833578726098395942666593155336373071418023312286018908388544619761080685879067963284188184358683367167762714560323653418677189115467047933095258879774913619702074319329874450925569238159264762185918829403535128069186924590204990277677169583638174943334606766839604814296785898175526464723431748383523559240195733215379259671883455506226196184066605993353234342227293823848337199535394777994108993679881468629592349829393663785781259564883900365427528978515313509369063624614772799141138407470622022210202971939993278609621103545383461682373816922239350236532205935036307165857841863658659425113024273282535210329923611110686841857016297299201093937873296587194450047540472108570844404658519766254358793967060340575033698714442020365143421134360272180115021424096096408233556240625156801816988930540627582510348100680606962168661729676236734688698083637094602206278043274237623756066874027015447255547672426947535903553419813136927529296482654749973207964976485071673549281104834531711487641606419637944607323179164764760780928404513767695640862873635880716744417204551793934308193290223276721393427735904038791198755253228859994212049406929138461395820199780430705184342584527118491404351542191677134147926568089927626446493024457907326361224275000576560338882869584006541432031079425395982279235708548904138331879816444523457380903212349432211045813644160984609074236820916380427248452986551689952496947009638934555964946396416604723214710227488927115956504359303675324469538057217212111166697459068358875506928939115722263717511605512388637232057565914192071864692647041423121313350897741362321863611093608045801015740775969016583202929959080824450489619604345278351381045905434168482617446455471989259272294107582187033340586861445587514407954820652413312165189588850979726377270711844348341142555126894125756881353121638200831755998098868912883227344257403332089818744969125777589369688539501888466979138373988830659232031729877370005349830286010738678627833944256279519116133565911492172618287797965906918736626875886221378482459960933863344749294204897967229727133714431362688282733850126398566535162536130483866084185229203747776925991216347659062896247474393452871991116801441915454660806565412881454901715925448195657098485350788495979080144528736411649651454530090679051922310864505838684088360324043202624961839342074807584902933602646901210034280995878867284480431352593542489791507232047050219476631573748554036365560130712108069905600742870178660147199914328850114071797670123258056774767039680567966103775564496286983556940973386302473643271168475844907978263808852151026581886925519280697731230909794215878230968401183026629602430016354861757583788695203549936546873062559645065905228772118843194976348469027410733596951766540976999146381948346091310569482849020442213960365305008611509788794959394461691546497848059666921979899426271924522581587421164092405044827622176381526087482696271974120787624451206728461209021557682226796419276252316014055564818418193183463742395489645784538604146522927690782949404639636863908863823325515914327964724486447367780893716094197591121325210691923753015199749886802247050415605218975708698449313431742668750382752674450933086336474649360068109083185215264323876947666968938486088887036280407487605168144680753438424710443809002014629170030934917701665538166582476176935735133710573930421003019791987223285412849070572560509754478729647912399744513500239334174119635712669610375222937823847240536332524957050361780087893504922543609976427609218569522400243824445407442141322073294691277250205524667615648762696313795830385025117279130838860547517711580089203405637358627432568851633654070184994703360223085735943342126963048515121697277492941971458702455559584659078205117113610371746118735099052058136525778419164070138249911833598911873718670596920344625029820549845800733083343931326501835035814725226083129778778669631904037632363449862581011768405124476281178906971956563556863852385152532284707410034260877056769986548564299038375188583909863711330152778445938751049032410021655521904182661350322839629115447476250444134144977909307477824791356411102870951044015561276446421335290229391874156965159533708684490698669674476365446559182344561118276558375371895297988043238030863414678479164766078750989214450557674267787364782277167087572076366099616274330086744801066564533606768664418147995800103303701520630676510784984017204581973235428190896263950295446616287483653142350382854614187494766883302870180579360544697412248327171071991915571291573330271077138343898589764077621134017872242845504420864434508135547355668813051902837416343066042302164481597787880042851289918395507641912357187078231758045873573153792129323145708006583507691654699111187873655002577031306990932833050895979927814371636687713227126514801352178149126884035170285148387797240285239168088401060660217597345162751845365606288657765541515212865073966696980207400723745886398841370888260503038019388038174327585602198302400360797369867003786168616853474582356802565139238360311978369576236043129784821111972902712390795156614168590182422422528966595914004976064304915179654478942361523642721168263549696495314644222775281845456852894730606170046699503080288393535694885766459364697697560306748953740719304617527342950203847366790740550311461422489671380293451650609365297405847637538351682233007572309317934245513576953406886269185904875878136530059035586917741467237394418909957973384584640695930981274644284649029562079026762378278125674950802637146442148833907025445213450753699333501154668034440196426560003073976733826839189674637267456945754804776588209891085359879654586314198735382391739150281863883999314842613747318977873006098033818029048345846748296461390185389676231585626397345864156802653069004745034915187230353658123679224543683213746311209625921045333651969986046475715976733251936710852617413057421161095331131142403843943276951505676322530651897490176224466167997865345348326600694925203096764269172336670480649409843110211063941064053001998483839133943956991240777076449235881635048318284571611751771246133441399120873069834275264120912638067421174478491227676455336599409815095657338656112625612917892238039730630675443281733772820939938460104082183519678233972569151172829447547606892532825498749248748746685371391279587229076103017458987100259668937541390454450045352490430225032270803077570614764476585929698171322857260346061020888651398597427410840172975669299914449559344753024401763488690415383741755464592360562360125458179172860333677645684619520385025576403814038901692729486899230231027444707991272947492621705737228250096516135266217953193569038249407290650963490063715739721598679616800615660750017200876220823352379435850681480572138653868548832351778282257030291618254755318834351506831549109776892173884714276169542516718027962787106537887563970939419778191794070350220118986650509970263916586003263607623911900296646404133986484533366018745055019046986049499289174513858973953586052948675155073717635384918180731099623498853608521067259434946058831418951076315364072160861375522078451028887000464691635577552191806838787244615538207281658973341881322933175969070199913391072613539475384803972474603781318060869118067658805444161623108106886211894297662544895372933964495049430605302481450308738711163606121324068114728865301932267557012962842473711781725677152641905429312896451390662381664504776377417268133776141059420108980727337342852464162196593330336313369897923832960124204847867129097202389554799930676036717201251516933061844127117663423726515601986746088698234136202744596951021375168341848070694302683911106685297187595961465117048803404768164157051697704579318301462368050767786610696547740539678270695478936591838034708892110384352606393136215207594952939747359058981932569777875900012077882406450499309251095768899977011825304137361364318399045257047789178210292838802026105645067809064101105480884657834621275682091257972969676213308534850284463465855639518454657317087132095504672827964934031382653676386745930645439344483339745216100442444863401453784599628594981193843668688205269633627058869784614650725102836459431799826404076677807516173056592579742742875415423619247293956413702251316668110763352626002100655184799046186083820352494067161401961530132284471236231548544292651592723805982099600526842589981161114363147752844141454623305089144079249624074437348838299690572171273318851757415345748343418259865418427603967505725837808127014685017584206930163039839291884480148414397281996543060835973144033987541327114215011833514686718740156944501060142432534284723311148264611220674905048574499407240210576218987291268983880654150070484107531293483953282786948492174449811436212410776611682438723001399462708252575876150152757050369480607282592870071049003542847313037522814123280284305527667273189783495960345414188015698946635477838267520306319971796710817715766279577975110269414843496180952870992195746213046701078800625157268509094760141925562996350022697483909738632194976511999877655872153299063150028454811776236464486483111932064060307189681804934926733527682064242882609714260535804240281617673249283174171888059926301244099820278129167808413573531705047734865126281870342723273503225956880449265081932365995791927359968257297999383021214234334870961789977172996300442683526211310827703985185303108521912322950264612178885794201134433623910065973266715566336463816288076925899554453575746760682293932569908826182391643519087689988544568559011427456559363403044641231467731681717709057675166922330298484999614453456089764658804082715820176829166862771436869504208160478786785624206420509648177957841630784709768258307438619014646394196156276478259695538418938177897930006149658103646162053755217718942567855664082511373574666364454312332163406017722392565437266007266763499963282324391717832463014358831356197582947297283727894942200377707811296938067674978123687551069595358326925375485580333832970991311825003685647179068372490927092511645845487950266175459974693528860133633010125278168975062951967336836915106032201185982516751401945864435538689314137425135718148122228340298476465670996692501452061221905125816349251013858146582268374704491528036788836571690662067268779886169374393833810506202587624419762040146580578890149166431425921883525192382939697146560855931690172477121705383965005964878057287284679528448154463352515946190604528630196914022088682440773324039934175856873133388348494261686382891010637985905841555863875784657846842821002822940700553288452204058927229318247879509225768816061635925019880603707000415683614342739169607226968972266513674950014301247335639134449597933802471428443842444446425745693025848808509312495950274586972253441257037016477428247420962637728847607650830232569989666300429329747261088118380420743665931534131161446772176280485667301757276574721684230170164873795306294078118764600825066989086714626167014985370749286139509805610721864524206480678064742937607506471533657693383171904567238623526815444991441514641867241936955509716145639182786864871404229671467253556422705924089594670073653456200031547437185703280921980462460329876285898470439158142467419314681942670742365061466053968056718894006191821962338007690472645127080119193668853207995559294004043197364275760022030201765696257048192354899776612380300429658084446389671360725110934190730501750745723383376457394366662970118469435241893870182203583704697177520739555188670925296332998720485699932689867567964989834526766429355369185846077406417401041865498418771924558590458864563776606801705020645337663717124961831237815072630567561362021292211397662824453615940677608655685457059035954686586382756601252080696465986332812452793483168216398736084742755282039377615493024354094945064683250553936241814450458493901220919141715369892671602123532335813508076573045924882371468727572082198807553093084376404333430956291508145025221457429107372161350352568755834842386421126006192651709004420181875693209834605314363145645722094592298010208222698302753017037192043074089869795278980060071688009514501853373839929637873426187871429172304439096111500741714900677161286657414951661589462463479274652419109337055039662590635425901448738644188277913361212335230773875252621294773416982303689507995595555385706262314778457519766249002579132378429779111970317929672376502411073121783174400901932174482716265747392262736991849193059226850486073775185352514066351062024404650480418228071523430402311965512937213280549892105645304865676714399141174219184966567424703725478686614580382632877239994538106564475912235584337642495110514093498619253392277346100477247534193214860379755152735746798873460591889145834048872940053811182699684303656158058863941724460009364543027487472535137708596842000769409998419574552152095512132244461737949675509083127789295286439805605319475167199049232178988660963101787228617568225204565242498142581252003536901599814757863996470748709167784173486715222321659868120288584605381437784025385309112640262421398476526715349102856855844670920663785804525483807469588079776758677825970827920947243798434682508903551077103014949724114770531189622111449107585137489133092747642450967156017734117924892818782268373900269315408337349644989066291997013278995164888306319347428797148544587515678921483542724429027414798891095233232513299151532043738839373425877366415380675256817293393163564149489079006828669572855184664169688230535340094875952639777880280048281038771169793714498256422396161611445685252016163662505137199948911974069726421677697075509532144534419848182445952306794335915680358232987785681985319954047250776542925660473269679993086779631040152089007522317491194926144992441790937363277901743299737433028576441064983734035388687021960748394543798796488865271480805512532492104415234880374554371638006082103356691326122664612039746326633686716944925914082366912718243348697989002490251733287941547845111214879691756465685772498165741705540017135103278465561382843607934868533249412275833397607455374417828501108475064474359246005469223821373839418343561485879889698546277207525708360731207154204319599085058351218209681532404759366047888293766991926010734659178358873806358424357843541303106458785994154141678745906302334559707596492540792603711768641090294270239839420059835073706126600592232326378943664991759637838990182180201766430554472968708240738987851596184978922243883397438366514879936754589289856020489730439855742768918161973151323233936666191502710296855457770117164585058991532071961857262063176144247692250310391164063102997455237462552396905777645841736458074146249144669861990257771998081571325033027200158855350857198335807629317795079999187172638545474500557229803404580765112828142116949579215179522814400952913507972113329559382897359764701546393511419220052145568005928525505311509380763637572692967456184139413539352214490768096896013964315067382523838741832857298553825957419845315156740365425272228121063657945752975260030858345120804355047336328349913941911402326981836385512209730442924474840688094740721669236907744762300171778127848301895833210142314986807235031326354438301218880764087033562292795864731681665163950859969473516915770098460491369923927439513571588927413124871771674642168458309141383529991807880356032635918681384791451677293121731134282839873613311265845025561415590655409172258753658276316266809892112140879518580630906605640453410351943278966254092835382902054409930034986475091011016670949611723506436238969823243146132578684010211244150929395199957141495050697137325189373959475001571407180742474898733393725007090365284611499813645623009874338164799412152219621772657416977780446055423867387024874502580777353436769253647014676009069526051367952719630421880765634645705802362267810803932591044366522229462951330407471381916032611405155097390831121590092012103310181031898823139890656682432497376790651092809635514864963109704655759699970487670030647348762026810087491044018181925668339279476065068859131560386867682401754816002117796010472685718285319662274762566029360577291060321655131553420721139074445358352313428378448979305271378213313776737573899449875773530830844561369007826524567907682454532762283246255627762139961208524950736952066495398364519512871077216351406527985814501192410625808286611261550441824735442419401256495107383679867681126872550768591372585287449941763994067630705814537179895889743556100712811053429686411146028139027115609321038203222890915054088891822935371382932790363334189253168564627083340179498478781266532657134355413462957054404964511867781070107762773568587041105471540446524489618268965929045199789668892480266795261341573152387298616150720352362977983555756023723404348688336103552315258775113923800804708635280319556711660323244406563800528448117779913934399244747085080118801188568386593947620025870852358945071054459165069863765110943946976834171213344544006548282783354701774368508513529436712635952913475919677035285216192699806544363780308169451979591903464635101261384994127239203840512389591198890020147542354775180117024426579815151984774302161835324219328826706709989395214146735061096141557269384753128560437654253559923805817396618704670070443894164749543157423381563659225373649721853016958267400759308602223076709664141561366778689638537260080549608139139444643761637930847584936430219187589145008269499280606431996177398727877703123795345462480348723748124286132785824686404708170599645097646545411886779570804891901394416962188560947222118643839699267759730336629409236594869012892036232959530278803214978420667894311970136831773416417581644573240811920090551733689643459766078993343970764582292915942550567707174118480524753190939921764249203695652429953902440696532105708011914724954461657783534556900245750175407972334049850997850219545084767012391952771069393391590133891735818692214892455804499051241536612053103521047252072380959371084799437201987800595777171165053549788037490631410357568650460386135070642774255994320839694818853083298062491293705095883643303747691354692553621427141141913709890552382693442470021815918279891053641777521844001196250015480346832518554068507237307306422701778749141058039667665103223037659617116939703779574516792855936657644778404695163726818356115654636428454053599266968112657664702270851633005367244408656566098489189168386714594018622845668162803295627676379710884030178038377110487427139241521439292712970621027246482485455011604549922255562296743540890409512795385980419681955528485508295536417621810470970378658046894521865713707929603669580956552285391657394846168672746529470318022730177379785100757547066545255343322686009559348475004631229959979156542324000694255411778254312147418657609305721100706029879240404680295038577737736056047121344263594988439610584463718183312857009519626430403962038286795150772458217518410518488835479403263967201544457953521609751057980276426148216044509808382160642631681178468138899499554879093353078806227772418814143779621468133320323733139387437134065083216051197988669834778043711924339958327923958149470850665357398360162257099266616225122307779800116890358454208115650330163337062382513684737942229927036701137627476121154654349328625443502113588402309730674397268687830085650570885388133692402928600296018793229477853099649021312571037891312894452957205599802905272641548739269467678250643620752904114355058900811909351513801472771730688744101425236005393465651274597704617052238465294344938357217771097584925341125957168642708783091786324888725085228166117262342759567404468120209138918966161380819190230688975371695249127063969619005967921965632333207336603222266445710529031874103460816947511116339618919661793015074098981799066042127718146241722382109771496293320199943175496945732638299682573386227420209096801499721841636635029071127144622435275380671139349331011356202249357067921672743301145532951691890521383645269970600571638769646637229649555226851689638129828177516472718950568237190204910145823032949876116830492876955774009515144493117003369974477527607909316676754314709068277939683073150006136479077758679627222079015975621386847104510047873393914189008640499660300913224699215204793190309552681374284573082955004811168134488491165155606225950952552502760183258024195673285339666051949776161511747183696482527527737907457115638590724129282653792168669370314673848779224006350376505833460707178679195632818769623562475756164962728594026932868041072865198494366847976037976929564552938208546515025427437368494595311185002027260658521085861328114841888062152368457359100249327093309874007324674623211417815760582387041958286948186925056694177829733211260950275552611867995053852505624959686324995143933956699302060898006847340393994874708464352979651617572856346418095324475789568183703351079806404521065049089406079302402604203326857088600176892052123533683858851423242286727845922297671205440036353287852198217640466133339398994903020535395100083039946910866293930908470586321773748397653953403806758384724651540285232153123861922315459848899021637419657624662473091680895792956765652097685028336967052178327859196570587316563963858712992880616521406015942139693573476123365031932791221378931024220662200580094364866161253744419676259680633922159744116299932436217340079313801321781289998600084435318518904615175051170247693433567365510661376507295015614487495912474694044304426280178330639885194687700911417731476599847434265107032278452641219035154156345977027148436378862990484163558250320871368798708674963015889097148959597428620578583441099783363206648059665554592321140969790539843550748598987573792591842582489081150989061093663132139067063201308386446113267374562853440758825003640136113333813745952655289640474987234757779324918076353530512072974541609885416350267870989649386047672064166672057236925970241935466691172167927277477454585960476703043198261814764788754801187567717323971438239126665237347703596445974423401987617035307082677654104765827391509913267869251676251905775045523253165215324591054775793740870762293526841077039499803746266487058568386447963137059649126808529853818015911100577219175038430558507127079955748502179643901774087235020645163535384597216535977546616217642231836647964975026395506438852142684733233451512695274743971063822609347470280613160608333922790033861158775172083245712250649685386954222206636594484514163397589351056201243616786195771031969983449071827097825705824822641106884609625685843796715364493300126892754040352701061367383702461598586684558303407243720951977218059143900800626627305060165245287470187522991445746902349469127302210507290673004037708407250378103338595657345760107400100454397816075670109974106009433969337138174815839865462139226777939910179974050097403718731234130613527783233570064254432873455869789131149499163524408595917602368073005327697234611893599886578506311839964232513163449819857733538540422318285631728869501583955814144816367876797817774501918333572684707799082329372274905273663998068328824986711467707570343218573331696656095155518173473553876199436207029497718467935594839640462264850054623939107271181159193297690785352040486977511407323764802675610781009078408981244576306650834829629505012825760074348265583593738341756481507113603754894458750350798683501391469840965724712861715034473144605427624673868259678790404132423867735303304944823652614001307123037554439444217841842645038061880618348682258673232981107270824751802271092968331869975430901137804574489973084266699956084017730770750668102051703049146159551296587818252462449061073613114279222487156351604483176994766915982058425363027901960325652790030327048029681263592359279749956563444072270324252642773088864398178444178739049575887596935786378223669626934233538391377536561546473541394684358618026682920558417222908211736876446876685256418605837219972269101986130753318019851049471062399119943522515700410772112484179763292960182217355533021761384088428126334393951535837537128156484208786124890799828255050336684922030278267844074216584283760866370434384489057280206681398924899211729867556021621325626266009705437666309245366443562997070850574485291316341092789660139963605532513681592436001072187430962779162853980356187058331921681915999051943991689918109913349382263151277071319123158346609997711311973418420080388476479909739003322928043551595048764908313668381806562428508938934485026305820493915970815968708193960857375785102498312937741461343313309554295112148709970277100141765000236361713010591700900111953455097889562637478019785073941006282450951407920948340395731524887797372017044989183611554729045258835032589700286024572092537658198361065346938032488523374424498905343399968015272645659819626737050730172660142280454598959595949820489678151971441571483534292312488495247860362479797409041989566338741944279977765256644610403037220744096531038770199833307683962940527789385640846967509842681150361111762747802766089323547862667677347743218309257178179079260272832082907257334422468611632674627692299340495710088181540191575819903030994423419464076382146454646260566134833360861171530148530093298501858946817279405868817127197937810359309866223354988069022853282307111044316531623367666283532489551676573325081304410941654361037953288362574722424879998977029598179315334194775611857584237662348911432296669320185081069630599884335521229818450967839789372099928958740050417382510013428032831288959580507022113998467331053172865760835672605836021930172160039481509552990760861465228609667369784499541656838838999016678042669364784531302184991769982664718927808375990623308005295289258073959679311014063258014563033805207190528119546585969024386346946735124267056017039288750950105408166895659108239654827248649140676136745823445179999856782277308914735713042287702768320882131291980062954656767070198457946183848874420053576547970820486197892944448724210568760314388088573406276530765383615686781235019073158921637689794814354871200797689605019699418370787292444658338864252096022483317654056192438231647531479294895201820751052000821247326038599000581564267184462911149850813337452642580118400972064657695748521777050038910903503768378491403261563258880085172083697610430767110990905508157816806152061142785214878261437307811125432056392113855989553679027829574645450060492910758190175288812558700784775125332249773596811436618205875188750464055529908831908192640794682772373673809338193981055275671385095919371118674302215022354360461588711061017872034927215029965135095469075207682203863444410845684095963960749464949878287584766496217859250940564816240132343462341119049250721356011908096184173610966870394539853856020901501750800335729492320056496790705919954867643733837228601618759494093950526961042693555772991407675939141311395247486127809789236055713002375785345134431438980836912786269780984582802876278210034608327462236697529784528167233987584560227641298421422537818340551458296434163944095974336142180188235859237431845779521316398020087316315978735312099982223622154385785256718587511352733172231860898959632659890154534289301940608148119573738104005128409469323161331746772140914402310148570999324716040999314085382506015853054209170279982875214613160504505137845163578525388541360675523335390292184944116506901309156043986052952420173995718669236610750047347525667740989730886119729582838303742918491781864830292682356145386757125107649797405336018535043326717003601341181820572679137125893375567195493174161159329410306837400740840398565083770635998042560839090925331949774013534926909775018770135860189285181812472288424717157980311377633715595025818573929831285457564441585018759097424740043560582927135071145361704161360284095872889667590432546624748019860299341122147758838520550607378740776816600686784212927566970626157898612485362510847625020375012171794295889951734914751214897651564602168594187757294126884780317513763147289822541176182834821752816401921572203635431010378522163353518240894314641947925933289042563875576236869730080776396333744040383849038926123280300928739719936883924714762319215521070182840946178434811675074393022177357017659417944935848025443685113778569396333589417583474861800705212576620232173138053607566878456066379727325812340407743089780428731219974768566777081143360215632067085750947844002631386112408082688867944330937524947437264842038428178282234971607456358264676697829969467728079517693137174895596995135513341029564115358383937781530179529567669122205733662968494604266911990829490559949100654634902235324048811817553795746379986292118808229397935033391109383961653900584111317650947468665313757202761394011944343769344445740332401805455053662688552946024401063926818231135734370088274238240324714426147783030612489924177342358950362292282593682949171895125921825763448499718961858227119857109885266093536009529807163619769670175783212533221290235515400083301788697510481704373139047658268781461239770634883480909507721932372391367254443331238142119282781003445214969622185949475828781291360173460720049962374547657062969088956675079650227921695402500420346449126861683606310753125701080501633589562350906715119042134159816539288123570835961910877306432787306496944987976962734096728115340813049022372290129259950531950469225361215318559579267576390212493905740810003438925915840589770772703702134115302526333355561820523891037540212471455413902934726237872772074030073231987776850600249601155715492327035178146692975996385261983157683212320609626860021592314571322262669596631402037262124098631313347800576181213160876631103108177128420148219711884482364235170265142191879053791718234402991085237534306578173538317136676039859769185096406770141068079024694356917832554854718848806842769593532489778100861167909648800466211340177257516335050111921149463102623850642352786992793004346196463579263893417705857822853873116738344136401636412582994232087925402896408239593356771780794136432943159145664589191294111730812854208474015099818814775968516796924470366864527519267265472484722573234263404673673745935050789424582350153081841824564688970328910633317339157977457801124211736200049276966786138798565524953009391941737610319674463357282832997819901442809245024072055058070692644464326286201811085951325277022795562601296323228616082105326452272384080683125408575857669964113269483224188168019478485542457632648184329590839074320192335818857631440648167434251258225157862260578000097419175082099045106246988353376331189296828445833391306730603892368698740483639710189511927405937995565950301960951167911829933800337047838955410954546881026059970191580112333023756809414357128862452500874847001565918140243260546539741120346146624325799985584621228580559064099718552514970576377881456181582211950596647597465900954788550861446030827839704234156081377481426318212862029111280791167038183575279324188891730254527735977459408442412752606826297969793596217889089990005164144396755908403168625175732280784361382926025036327206556133135611373381640017368740616158149862187947819514690640315027659321478594614225335133734719774659419048154957904666286990469261493210561772572688684812353770183673702613086641902599705614583654821667697933779912750710658083780757121019795377879254384562662855234562028845504280857648592515090291350904628030910293691317296621109525726394739040200246316578576849821651434533714915181210817189816789437504662997978958528882434407597954046185650137797639909806043698267056842658675869081053910546938609566176213682198884678490779231234646499782075784275299590921099023702585838008912485633031881732681663609147593431655622779679510887460650581749428495286846212466967440504940576450406931648679973292088434865100002007778945876764997506241564064289664509848857534963465306756291872543272104649021617231149169450603851964165203798037745356743833005237512619325409921495423587116497997056281014037841995527734113627687189331819465809724340103749294942274069715028724091142506327328852051228783640599621727907904383713086908647690279263213667793183372230942101391200373121503282849203640155178385890578481444632833283258844599336808633067996874132084388070068036870142917070571606453603671388916855711931869545600656625950358461645061257951691551558500214705135349288129112865791204012293450015935973017566147613783882592953889655602262093845753674617887448849488390118871718199956048032893088274860530081273774257605133084885090535781829948354875175819419238975279899195065643096714159029048067406059346008363100196754616275575299109258168805311580274366273226727716886518964709375666893245543071951125772620571358118528140597312773031826084442569706969002089230917188291150145316217867715840640237870931736793830675792144862846742887422648245914318397829984706241271445222284446524986049391896580054323658991677410389103105336928509361268847108645973812827903075149425103203772523807337500657815636494375640103375609540969266719442065349574084638433289318534535539231817482912015259528738779321060722098534714834604334274762074741731793792263790546913490181638136831728361564735744162056670531479543124702309340136767298034371201882712401707005181363480289709112655198416650146850498919397509034907202037965068390146835221813383865174433327823709434325300429429226941036560605970233055884629665449179188935000510276142086657818943701362890060042752944175012356433365097237738219523621884915589772958594041123814792560618846073586728008034034350463513652153373993098378546693478956066860098569347344070885512073022069395043246093100382933377080954883827155526758689610691081957499988161367776583788688267686152778764085000035816432852625599984432921405950374226012171333346502360117926559741544577232186179232124990425974529503329246025101052613125442068742951252562771462600684811096421227159076264150032593675617760129017627472583978760324070800086230238131707801539911812939683153846855525902634722699185207878419691935147157048542985287434489887151743336214059718999467796312439306680521503309502542315889024755660478054823750017188739029086556560027091927816277144233482022550771280760224641751225072304220481723998064107809239036604134998397692885557820217166048895356845982506177996939221918726421649383061135646230566133726231169263880361956157248895701321007908133756102672407565308719958226929185176427528756218342557495907350218137984053147166871382943333694080795229686790653417969729409788022846129639115257524648170283408049529306025737721392558930400870635237107788300888662432691515424979350024443155944092250585861788648919315513279895247267724827658836597120177767011682999019491565992435300941104099258830833410805145747672617485950728482753531035816304194669422577575797135580352439577240221313327502633713679342635893518436747391627038807767924160352486504919179787752609862633199974705819609664552301719188358627612740181487610301314225365182175931993463353623835665045357260133155419826994503393869925248038892513705025756262902515643522070608968450040177322726795018495694283996859362947377335148059279805654431059578062358785899772857307660731387194973867322103190443610100897859607916242526441845514827415875615381853932789886073746545969427488423111827702180091875094115495978268765186065864050181522810091551863043798515735918349394143759560219363634588280703711116079454566492388430471550783208062547576764928229898913625369571785575985467757623714803360752804347376796559073754402539128145691185891464937293272063206756263098213183712603457089047829055863109841846228306535936586833724975672481890033422051649861278822332650822624145386182253733279117384031364967389015263428791371793884945250513486493372621371037800742121177058376275313904064722256345235667194009681079651387008073796778692907734448350010651187490311260255410893029040356452826686913883127418260917821714158617727337579077680847075732591520850585086750243877334418668533980204255011790536754302416240221350674509238407445780437609100143635028586261556199112417222063506616195744148079621770703022645529455739067735325182095395595181655295333802695131783034445271616666034555711194082157521018346801421465018500173955528530032587586305685702710260108136481538675061935038990778478706050977163460513550931707467589743429659683487793659160656672362915061705480635191427475964402517322910179533174964280924519864659696145973834904537238939280268777050342194435961474142996663302747697686495327470777070397525493827204887687883960623372783547399079602687501117436796644749377459587478829610375788711200613935817461065416046594876330738770893423610327471611330509251433099217480674197959253835998095628563809308041809176242657322597110789805556329965003257528485018585384938802195814205809432646209228725277722661223087857446064683668415183397257842723439808764283610159426667029823143339013119115066070966023207680804620819204055832239321818669645213235250021019199205437936778135599750795859762332005196762737159906473020201631690436689437210524009222137833443896170501622864702018435195835109793043135815274122803090082989594429210471865376803706101406878380715231881363707620731923742621218446874435465267182356004050168992536509587963358793441571074877489339997119898494398344490167290269529276785930037493654925104640228998551162831919818187300474159908087742521648909637289165522021132487855198234871545513177757368554133832553622120661460279498616758735596129757264906102743622602629146323626795604982051451415278550669002406048344562349478570465119372895691313752738582835943469065224977142402342764759323425296311299133787285554658091494571443936062176807262512229125582152820975178029212191055716527318466905341889091131631693521139749015131815240760848831461959587799110858820533012406409943855980933629254692375972089199464707037398962564273752457340985441167889436993465373023965222179447348854118415975236455595335115353774688754721222694397819025542468403297898000411275597688848121619975152758206583726389686045082313919692092464505790168899605783209283037425430118968250246200459342948226268531773588630919179873734090528037297087410935928938697182747640679940185059863129429327365593068130990605529430602483767669669937578161396923975709557376764535019068291023402146585230094572687232001649359490034109911687804221658550134644699844842307863826215040934495732017591249563030741028987382912208701593321596480272007359608185191817262185277963289728309511140786551679383112832425911028176298541506331221885884211984621333954851497282747647733382385909273447005262517920213486547463468722872730044422972885001602280939454186154174771813599433652117688837492743175944078255342729073710072886329704200401070828929112610347263311581052721702752348077135641084261289632270431902649173908511330126778563266968156516959678565247653130722274995430850963862997880092544527244576907750356175633523197430467807057379187416159494101725104848273251615146999281083831680719337788280721999064616042668914696428846924365174261577102251657311531307000310688766297367901320548844393011957735527196201237826531577294695667323468165139819998677082737331831975611479914121040202203537314530266228114923101760655884873493900795961095027057898132745023503856204498996619249529345757490187963554237488227768390658938993810467900281609176027808402881507685825269807838954104923643307755264862940535165269340436608375836131249160608429319874194254485068252806436129821557057585620855126334766246438343512318709404061221998205015213510180311730711049002748433567781674387582139836919761089098627811706976737210951840444573865812178238526180279463972172501014931912697397461536834319941284331474508192757477781833656003009249290504181405309422474898113564937166275459952510417296471530569040089366297075861630273347830584508665167167060533501350296514642020702130701173608433772888949532229293643989642752817441058611001680979222441522782530886276606500454128946213391000944947118173401787471547414884622236453649027245639794405153296799983165139233462376068148753814368155460945685092279647507090025651078866326378939672450068937761193011280798104971036170453989809555920056889937052780445588593174588858992205186894701294576938101263487450606796452300296168072667884925235581123228962296654155581669421302896041949479569613509876441632403383364360974249890115160223729376605807960959978443362206268522169960315653645738374414762193685451182034310531334578812642891596131976499534149173196069879051673879024420479822072641445494379395807005352617146104378239917761803308445606052821662832366704277409398630225221386213360270630831505010675598667436846620783044759802440763579986612762518150426600996363182103708704830018779649132374494095658704797267739205697712907092007743227798873091493565880933958265799880073139765673244729340589855303366821268744333644497452141018727832101904102929439161049802026403774269939660827801309256277921364401639640482713011227222387340901093665382492946525154736279129284643898318316983884893779421043316756307251338498556993244225477753274088041230859666031531635612191193203572303498931177811158107217799501189944669268386692293923492666788924865356096030575174399160919721328359365817790470793469778151580894809476848775955335142383855708001750128494630826303679735926997925651184024518408632180922441135600728497834025656751919858396454781829458880627158155268754630699729950980253391743891058205691074784072993996573508224441911833852632773353128838126380176987338094176740155602207560647269638103709377653818489646757104371190576438137019854989934613903608888962269427271211090902850382235972493409952625764333390816215660852789569780119370485324569214295024002016553380192701315473274983159370479524608584245827007005718422062138179529148832037423089469860108655000567891186849179728220837163453332825200445955733368430080456548411737647915537565629863868047582963992781239060155380608894704728797495838266845568537592333554421603494147068522428341626398866638406893379267121757025857412427662255527358111144608890369287397834344064338895524307869529318444492012207424211333801726432915232849916188888174900829188416465577521996929427158045221380123817064386360353995182977710816202084092027459942820299169974571489969882258155067675470013482623332877801072271842830369142642691775154658532999432713953743163453376416264131078165802611660488105084991198514639193702634957936309569340531901001102411280206102499066203070522598375814085248170013423634543140504023440626690770769382358793951690921933522455316781792630655737738191232425505804398267040959118090714569290815250626189459694522126058043115478873910746615092912198956074421832884307920150352180174370384879692196540329584325436133683306272384794030848878303700346483862618688678538823135523382662367384025342823013174714892913228636752692483962816365634142926575936946948425639182823232318225734552150629372936599660303435673837359960846992770166580568257075026333454568477694973576498319761803370399963076607140988246043822575250698049209516206608850483986281330487321335744923344476238175718163957820464689721047619810804477170100347866885370506684408173966048179662741184619190715085640644158268658695584044762327822960833534235560532919611409383070414533943595338362211334876918999475894067520386074304792522933926627058650812091794902243051218463283802601322607153377349681982868654460434184501479430505659133670245510124918189948152625235037165480789220105195182167739868484665359948294146819444071996133943668949266593234509620766956819633869947155561605954876013233835397023196728845661121313029301114363740331899019493702962879844782664075114126838465502506821521173004300574125859091784332691218908689685800686674047273229746843934255092991826392241116428352913365730979811353498328956001278981270346114831985731580005575089668659170213594951569160995708834938678285187002837868493509939625013598134264299701693993538918878480488349737421812459239303091546968890367758668730572914452898267612497509858008273001491109415928301402352386032969015293347039302764887027467894504625339229544736214046043797012309895177424864379044661428800068920115784579757907414228907237434438229420273685465438172349994193706155964873191819518604042119484775264834636674787006941239452258321055864718297598765873577048683065824445006269212530221313604279527681373497099625070681886462547744879788894472566390525661719846397164752148649174835393294121888686107504670364159784571060370645008938479374345689194483624306999021896950715398591365966498394715242246354784431194514117847660896063022680203874511185376035312481244891596025701314111856317913123066426638554118403043920016846865729721510812654553367784214723327301517719598660695928863399392747374425611349507025564451690613830483815572428361048809315103790630244317495748979265095841103198997200433690106895704018050613240261370676198134326898304169741105675628920868669685286129541105248568177229703065322235711691848214209248168328999440249062123144695698879333743865421987872221314023877580856898173251757398725327278853107668650548415306600794720891529805580980740746236990394915151270246379597871695844535517900382308572314342031042531874979041174109813770062945801200892156009320260896178706248455912161242177936474038557746813753661785511876862050981765798378921343051856173874998313823011354338176914599783572215973689809461368227072273718223795344475612611952022854029659675925068485012879223387994022323513645648475185456798223651915542847676398783284272308490740738839175134209615132552726258731183287533543375043787439190245707922418120279540736872204067487148225990782779944702284094593245381532513822215476454795094530854310536498185704016685458691498044807389220097061982939705998581271797228889534811542976549044090326964450106723074001709813801270968126307257867200775040491686055010413750572587153736380379023617226630969120094915441669596595839156288748161630240048343660079431728194609350402222800865302270999423850290465253719066455623030095564929743615529622182786928551550169948748823623562254014530516007637755393699505076158058276871330870039665228546957689282420956557695935431130999798241909216780879928260258752541471550934553898418445628331587950245199178022612114611572703043015517674358915535161966789864620357666253933877259633186182714512387641002728161820949838526149827932517911125754122836704601144114100092707151275005068399490180399102172487326038657409321140443907956701994269258632101138945518816982445923211298902620636522612521491889131565547691754983758597938584195461888479046036278092531612712538303809064455424529166274316605552987919112537145082772143175548233772771424842085545946170609373196290579852165867080374531447941494307400125134412639431318105924696508532703798252470359677861333354498488079505290926356365090027158984085417896626379869051543857483310718600289338127201504223979096000066104014427204986162230232710668066044949915450052842317664266847534235043076006003129422123956306670201839608972578793050663816822810683316430467099151633274354587427409880696811779559735045943383806319719347427266632086947256489964437463661810161740993444422262545044510187994538653829198194135426282568941735633319458637187140780303786417590019918609374387132602211424552801305040497237157361338179404452956437154786579873264709792727275533760074037109833941524277462177208252487080989680362244875604952238545729260729283858557434300302796181986368202959700067573164969249494389653527214291585091981603854151128078604290026004196025935446718419707531061791274822520819581443189457469058610140020809763788354481597042531534865172453097163982400666874961887050668688577461598641712539019275037018119350716953576131809153446704250173588942256557467152126366473327179245885176029454306648555357786855690597184339562407419777759571324960061578993760247653167164046939487788807944896033435710497313878004700273141405020621433946266148802609505921858128627820593048256008831093294049108538561681069591946194294361976345050402019644790139100489576554654716429280098931400464932341792363807406533500460332129154014025941878095142997989306238683662039460818948312930714851459305957618257433429222868937297684061484168959144659967522210629127524700525078242108036123167237159781838994839354249843918670499819592263048473123361847924347720408059695812331577900262173694777687250397265965089512173069294158331549247366025058144043913851698969913297520848957766962818583602174492989649032819366301489692854063187630529860026135187901144886888397759851001861363263623507363653365988000934287129226983303235588074736253363831363869106313765776764696379555688006700969854957481076918454822379246776292166385417154262062070584009328926815147394086238973631625426228718932033111441264107575333686191636490068335545914907853640777188343297089178665145920895384152538512176594477636352060391072804250142084778256759215263246015481768246328372641820227129723706587244057793834347239204078758488683502901466437155768248512837523442624761404013529001508770569295863909513899798450839235055297129834560222762705093922289211921714681639213784095817310765201885227758197484812370685987908354214200713748834367686912446558533823012674126734858820629628172039057071422760329801764427467530127852525542416814686117739192720652284504667125360276691239791949022770502291610086400670417541411915207976253532763641476856876236158571830263029658967377910687544550121235660502119384253609281468507004789032902494152410989645265780832957652151308246123500371339760803730748744753583437142701307799925823441058417061806434739173053897038446928789222176194411181599411803547338439052393289338991004042258938064040769003256073678423767117781108177257250400094937712032198195800388678308628214330688696145929242917516177574497439551901701656516503997829855140473801117755597883200297431783921267041349009795437033297328204085988304186328621329412144274634401446995630458369066069161504286509357218284167081759009388924685596832007124628762591196659829367747164514210883489409959541638212732088694941547003952617073628761324886952224137700676754094916363421707601217297321306947703439966003005321956373575377932085409948733044541411968859729140097364497662501916230610712480074140283409717602020095313742397272973180401066744175788617307462422840123411829809509476533440984941318111030318504866218972474632051234920392081005238182243694564331647460299759802868979842210490370186877575106122169471117464963295828802276790550976526612661596875877612434872095375348982772610305047514167982332128184631333266059414952055217741886868971704332408699594475184656844513506401885318266387829543288753596711002832747580342719766554772312865347709233021323963345134950708942195934886981106227085085770877314644241834339890890406323445065813021542980758883469422511419182736900031523213171049691498567039334153340194865393375821293862219245872444883580753073272954664845119568421042886980175154498582642085853656807866172925012619077682959779374156433408802086684757032268081033468417103682465183672940283575104275182148026493153408947917411311258151855446244086473990943637487197291394269178590269122140151714285604959851814320300638321774786961198630499427330470088281439838955075384528647714605122620768276413623560191035852744884990175480576650205631768209198507480256211427012441071948639936216006018287550700590868972437290427619467869220370635281919273587418021446713724074257209028407031573421190355194909051751798378247044007782887694085477315691153949754696660406371603417082275528232104716445096672927782956365787712110138933035829869986401482764991783212252146520144475330533166787313631577514427335605099439649459960937699816649562420299998823812728007304957820487162861437038058496816118781883312185292046341168084010496425963903621308081607324043519941674501366909345008580598130562901674700012900274079622986532976401045273014912282040164346304875212277139942803697789823639172012630151720970511071618151298698558877784444362430439480742797284540030576076746636877860573665670536041077136097873197557256047805565679444055681381835954081035630832084241057754212704469190212325762609986871433482753791506547112330009953052526547718785313876207020177977757873025810780030375278875296729688068627794687522454354400407463720547980731103342093300149758409796243278681500311396663989803191477221784651514667088348996263098711441547642650645723497727154044643317488629867176956047382074335809596587344849159452226446838728504600691679711983644993235123184492050722653496391155968963828693528826940565662409299995389276748152093831872074897515806209146103865809712474699760139620417196701417748910936413035734752073791951212346998818148733786684943379563741604268086615046151016806490437022821859596150516517629919125254788358317616842184738305375405355680801420549143093968825103117533881316689025725911015819579400686740391339619985761253486162206080822251500712490767693240562772181210812828431984878366271814170061985053273383874029556584738329230100119829129457766935022978086531936912819509562337359127110726269910675891099380848445844447545645523871531107888694823516107183149276117450762338753727119093734427363062868031947165802198065625320219864647806293061625991547652468386952882874275917957922570389421349201528862831274081867308479485115607345788566567962222536289703767798038362864127265289375390321019130145121460902704295027714586446208907399806207007665280230447283470641824804113007062514566620958810735657500220379267906593594257059544701515970146529289029073058325105449931108035187490521880279783164262419499496413089125725665677751908921981397464061482375250753242180291247816867154472742106104207755201168417831848379257355147831744238118936751366061828157333092134673938773832080273220700484713105978023754839730608036133591856552292522768658685302611787806947240770918132292655630114192343214590999038684068585486951402417943116301590207010177333133309271393253624946281084184637106710603287584626262167152517759036566369032655312481857503012527410826717987072991693248699267749373117684925664059077099543118809101066550524925358845193607704702822122542623850852614403887144024000136885833128648749968862491363328599550680295722954868684347922221131030693895669960417958732905421358579188263741193341944179923872116146445189129053998230060632021845255783788312688892128714226903302342605951276754373526206963138514541154102814708306329885544957293525713968647400411602528641964415730222069732660085590656186779025942137056629744004217885931342665025124887674505880847347768363064176595595545125888554044304799151619788757847710243135942743879706977474193125548513694403329294788481721198911458876519013020918078566280620625232310354105158501854066379796767631778602456235641337009587655068095683627653500501409819935248529817724590848637705440605832028179273402968496657265802530326390974112287195889747592455313605037953115174457851710739952783749856453972386982648929540870930712766661371355850268451876985837228611818801038717971985799905828077853438270307701066528268329039453056267057034314450229688738287596001940506480580409388035086585440205913200350323309406447927076813399573180916491935092141430224465068721460659078393644195808227364204968324795473088380116075646287189066759296516154561790400747375080257980478675310604080406437730669061219572069803740335044051989352061528147903853840960252745235311820021472874306969939200424493815363384759093445168495914111263755852192440368429067649768050488365347476506915315112876392958332496276425851531700452189973277470418273851296311033380690372494491651533478750452017656539113494051866257256560862452710532761859474668077715820705518581549702572833239703304192806149275893554852116882361080995337973262441885376190155736193964323694254091581604857605185600781449282461451186052389020706272586443114922068794163291036207824335599449924730303573119223967855507743048092215489415215248350309321867617037766478864377365011089742801984849812473855016278162204278512206924920280944462883490571278852368733902990712696199299342240690022068904867777299181913330336424120772650490441169505611535084953146381746579214650636936264522020142263434342402527632767061740980090683285229270054365272398321685948604597150184696405387960492233345459219726883574505294317765064011366158916394338122519197672110385003396177508517619698975752024321692434144670848840911792192125833755096920333874882208051722723156503050541262831714543398508857250802872220878759092332074285608829662060301966326227590975555618659408650763841899674935739549148088651155889694434631156207567450212236629475604227563855579944924082877681543571020654481007431000019931500712640792713352078999757910801260305179971778311302094797048209915635478473251012338190593827814176271397124616618768538830382864800460102869342638955274449949245171850604073086945949265205428879237642478542822139714575555157713919200417883705585795591036907139269061363751535197034845780032717069870133598255107841833640662506814679627274134440612836378927950541760603732709895875127988662750385275998197434321256627897193725682333865687007274088776076296148556992299680299688126423674258307794090335970726204440028002366650594598183956561740193280090014549363985918184356109504271476076210824138476125861138366574101063472898382626032531105846954348001769144031534953835607221893427594367556515703387700171546063119488082549593433922884868188982844699993860831798984015407240714418375402633989856740548152617630536438835709653067621562241985225236461171555906996456874791252137928153719453299874306662833093906768934718800798648047430882520257405556236198286836016047272661825116004588400182999089254312426754080526269590844708509458482061953173830470310646565878548146510591525822684414470257156570836509958708592414071543089566575289066692983396143504277323276376431722637378674971320262605149887808843081721420755027866133206943221264679390415572533300317893924415042246019927780500178386929564127364263020542041868676127501959047634473655118071929666844211807984981527693123160197202201234400797309826751894618982948908040487276909369918838307977005497964091827862593097159256488294355253248255443104142981765449738657317164437217475036370105816330060607808197646075904734001871509268395604192135929662775427928572028863486585877203461865619254797679689941789189007923971221281128363583989055408760624460497849557683949545288844217873239071598466072097069275780283553820102789222600288975278338616766558515147496974831315097310865471232026764757809377155323255315325505092605372291017114001472931244718331696292125594174955954657671691257656766438360913965488661711281901264797426569103343813448769977036182425204209351421622470767229927042454014495917151282772809150523077396354177453671393449719066568424683975756565594481866695737033409801219181274915835446457448535591433335775372872737286958888759881269853354379692562823279875100294733518137109021940653537077026028170723740026163136017290585784955673316246551961382055129080164093860368173027702024184890323805296698097345272684232971451641305913511132519432609251291577571737896871450920872895222376444087650941036151763285924518297022194185712286925435413695806333796700589235214621733090070931090512635095798600742088325426012798164131180451984531198603426287509369807157988104626971618168477097307234730681964946816687780377844806597953739855665531878735811442425831265570607009379418897176852740401744225770193122727106880198577739459909643669460558186652190173665823675521661054940376692720347314298430664211989049648325956772104806062171706379378670950296288318767558760948549732545768858684213168295478753598065140749132077427208893934425760682121373856624966930059840362723910911023770713690512709629734867508268883672442538586477410948105263959819663030478867198351226689562649906827533288712168767155627792674836961201818206809993616290065915340538902917951254990401267008637917542834968492715353405468493555443592459528333161239019923942414533660868807850300839272358934872992336231988127687507408732967201779221469604800104032814085547881492894910442442936785421689731009413908964530986543269581648574470710363854575223351200194794713317617494803321268280797972747330816429452097220387448076625131352606193976918838497157498933854223920887728927089230592815582942086781766773389609702878673434109545066657596820093672061437726082177201573263270767982042318907672383866093734759825936152776450680574171211647913386779476618885226803170300039941950337199573785997278024285337126667840349943763477800030625453702447397964241952526613450104261004604186567231719250284512840896094943113557642959299321773170715227610627973488011235920786684974567180264398840168067507556106832223032842111458852730262619994649275218796023238187524195635660596062298326846858610690793736466080303527276497521165318648942472298550354669064489240322623381497089595874476722189351811403268342738554399006708214736005260089838554151805148435486694417167118739291119660077367409868787392200795043644266448048347035597506194764974662021136377660531590638692561866152082114967333836495239703319869891840876004187050354199065279033977025626395410244369277367797231140114124054871424455511734003885735967419540751267470011651987789706106158190228345992938371122788336261314350929404286017611260641055961857470013098001873200190284263262852493071263212003644906640849715091781371575185124590260488324702553085411466804468371468288799435875852342337211341637009822855432550751306329265461151368731592122322859038954364188541027161594269917571825950260201561535570590781240700268666926731509259159573344170957056299295960540797853258244039793580591299702506575513535613686996447185502099752735806860214562093876515531044081555207160178979521324407398232532765147219516902891040542076351664002373035827976095922273018157652914664697068734789058312865474707052383132164190861117142385789019602835871642830339396517030360340401687339705940080469456736865278473342160594635863012924482861221749661423079825619468970474426679464388813092545518208989586157642892095118645938530156315487696327749451939601342919807146894768628066853286269685359223741191934180591436894774401821895892704574693865196188615426486352405515570940979437959628061290737805434515819293463516073742942567768985888302096130281927757069956182320172700801026047412989224213992771379197543213826908431580983009606237908706935603270368966458622074029739787531044419143657731343907523703061506781880151386948752566175749463615512326088111163474575858380961103056057635843847885057185049223008743412118095621142437566600545523881820723665700164434310119917999475064537658766934868542325294628713035521109874013638399888647280234856545906211199653404073483397357575031322510468791988287866004229433963739635004277012606804744155524764536547773327285833123274579565411044709861127420296621050877320253950635405690798564508099873390984605293742918740632726433644794371085293721008070924658181302991283411813890508175165732208762182974771808538498071814361313423984981265109450108663461166960759186882312276840933091983898102556907513322542511027199577442536601947448005132505942911514916747206011570202953546673501324026693108753766242892271890508413831881359953287102265576816000021432413848556467172222810547818407844234662138242750742822230780182656506130694177636313400033731264548059923218966505831304654902867965917885186767434440823940058964966543453437591198750942903022182635714018595693895042203322827334751986828236242948399319588916499587827350856693839181217489615019004543116048265618864050475773265468547354470620437738779340793549985441855561535778488360157738871574969718776991893451006535357693569411900493976794054904092514903057014422237771215728679149211356794823564806593728444380348564220580802372460243224806525057170836538065092574765331325751417748147697507309202454916868328174693474291749555530912791861092483239935526134545333899831282840334854144654429961745314886668653595550784355808594653526914926897247506834545989970271497072482663117749840590799581826722522544498805855799979407909132493390326369692894600736907698460069871792706130397113791661406664688730131036197123963119039535003174263705903236781943727349023421808022333693973951102148325306098787970852431204405111565808317175379315192421424459177193558115584680060031790005631515207860853614845113790431010858611121665753708137853473118846733911856320553750035268367477807805442459407529969528935896281731409496610476403031778975765096371127381436881033493711153248607714244326047131826494003376360527075204527276339642721286470787566627643678297093567673150439172706313697284583758638896988065388961989946804223064109061935501781271805205778430071779008482206032871434849088972283849594701310117236782393403375738322012674083922315276208107478722272182069447797844986025270332131968440895846827009406445600021568536749356927617405708164496732315010983026149681002351864749085294919766605318735496576773204732353102181262512277449563937481680561398209253041806927344659594576341581188632298563867310600761647720461010788646302085549330204162254746464864183406984056289646534605914119653024476565499792746399348171685194763887524918814932242852007523698431863303684066874787971136287518403663707565856412332925588616904328731995042649555554702545817607641658717964823404227501785835667079632283366461441877845838657863200409844635201805267951085387129497000190123636611825389679274413624852292465220021692472042066439986343722549389450237651850812426017931693063637957627305829502256758483543380365632715285431424730203734703134949022043963610894585736968305918923332719446851897079392055220033549377999451018389849531024266682160549508995394097601077863054319635783510880039131280346334243906395881543903641665763674047209727980327507994494967492325503753338970532141406925014679193970584283538177551394173450938578627114439006286267078099460750568066161904049823390891913856653368176524605610341888872047850947949675741659715019604062609464339576917776898890159030517799543315624272067023327674256401566199291288271957249457536338596201168248989785202146467489593228658933833450070541959804800105573120383160530607496466572012074404779948821871980639860839547626150858726907577230158401932329048231587152510093558322864757745653604465450590967409778728420159519757171946030734788910141899563328148433608129483206476411386358095412335517659207708022755789162843268954025327149995821174770122948275776714381051604272868287103557482026219491574641566370872523381327184600992609748027236353862980863384126233893903076917055294701193376892157659706168997022346788527284921881824792907162525817812242360156140810967127020094693106517025405403133710234647463850268724044008178282172526244052077826511760139099982189550349582980442494043457772296650757092071364185296984095484915816506616107352414833753613120972245090679890875784962867776717412670500205288152149807158626913718205017012614415244002391031065166872327241001167150176343870616155682143941775750737029303385943812735896015901583017442194101009354181362619297570466801456706283035082989039901890408249582993014250616843144640602470833536854364612923190711983366661623126669194323886650850206113845372456389806605698037909942509908784213962746051262468994901104126805185150190024724266564480618528545772636418452205271016749739335284540212504431547544449613003321727351814970984818112878358089558484631627976085216988485479517296500560466971076226112269609011814562639410347839097511526636757752749112852894798999628967964190694709917966570218571579353856254904980747594226537875065373165467759990637355957810716546922757412944173700930591632014260768523265365258782145162615023213451320035628282520334284674815699999385853581583220926176815470134608339321943728973815831260534940951052648755479556152689262544211150717891118134257840671400472802103160764784326394531693082307944680364638472472644304187044207807942599957109265060390698933751034684706219601483109635012918891720070612767486934254494850614785423335546866538431789455865246789928313728366320433637545854459099088600579618839844800388825820185216635425486349000367286423353300781219360621722093047462193766085660111582003606309962852695513366492669373031346253079199834564932634629660886270859124238558589177289465495362735775906981660903357500693829324559894705232741445315803454631741585585013215502859242872613393889018776367043885770540067659230018127915416898009606920082019933654075073227813236895564258931111166876041653916618925540158783123011096153323066386875368303637852595460525449533978111857996379649635575298318281575465327011048541753363374808233400021783936169228485254555752088826560184113263655230790573240996660325035897271513458909899787817577022122832859312698875203676369275819907319839003365275447034381215239595931106191381264735493651029955627084661565573945801456261884999844011656177352754307421361391743038179423878694976207503527685140361649941091113336198811926652024633019268907851289127924212466957198320850720479553071769273366855006919392206015794487816004916584010188513285877587836310483079533457790892632240986032003077720368859671834531982944426092299127042259729446569207694373598314369835255617458784514041319925478234182331505024087970109652538173665606698302609686261775297704801395617090854864189242716309425102186338528410642813203805535927708398062189292830536800678358512533284166469368892538504479761977755669144579181897590049410082477033471087387807272362096924965943849184842999150002585133591016547343644452122988579441904732485483478764143023601046596225273997377499715742467554594878185714269015044730404005400844839916571138822031761077331264445683551622344106555992930110092301815679649361391918698860142997870681379987653345577963391856286299964188723159721378929821861744116566036364728275922080062013960716550878213419496838370005260478231070183113468933070938947491343620881508777272364843981799444416341072035016355590037524873130393009252623402279005453712489824595379665372360505714853858551176292821167457327883329826399339070468572185618711957302161829141534936208289022335751081277283047133464070041753829292322630923587392658929212103120622600182214339036256558688045443288180211266974942698368721424992948916724587289482606826584676898682832575807189324446471452919200273557255331648731223288940591285092167628157273310784431363329214935760398665700331329567397125782623380373037929069597317611466283678533818564820594632679663223026505635494396336240101051590383922969945015649626808178595315266730005123402422273590181137992968816870002328163121584668425830386446733892074925273631065559073481459567831555933720960362930898057807310444321005417481570524886858253975306137514612312605101627910910207183953328231828148466535941092214118928818210448132707695198981552244494668377104835998572536531872189264908853030511400437065960584078263774476914037390992251931202702831729332180772404869484360125288647634639659622583023687464781321439463858591246209613630536162447835776669592925313542037381355003861331777082233123399040276394457868526709065535663184394575907820274237268856836890590140266511265814541479362043945174821168330978492359483446549414004447518228240499972949687668973206841647651596953880074397953719229447460905418139812549637404261972070364884777374264399130214079142971856652001014850281036918441554290452292193688968988852956286837499230526821122147119713496426756847633855293433212545090175932852351763520107758959658877051947883718821803054840274509722314190669457157213248504088261243634075087902438279300673233256098006291856856826422701410929944473827330570513123797776225316617909166040343101395662524212316034998019835417045399221725637992420330860274823835094053711253881680281044121869648100489913792387659967189383154421749308120130630214724898696250735288141642553804245391437162987057324305130580471259781444860076513424866210379015979835631648877433787962488776089935849298060219570920336213616945413205797260621489553807646978802274093355442422349606976564377963966648614588586676133413536932723670947351526355828872657090525169630889313732653575834630834647041546448946529496538893485728742902930363525767341449001412665539525073220994306368374433230867143821892984412642707059475124183414427176267421682485628893707794583616995914714267592723701110794360116105679953793551824765600251208387627100805265701341346440454523764474717081441175821612833037103557141406362776789654427269938559966270836022296205701651892306877936703619298392546997128878326866190446012597420574605620147337591791305639845749029357930045930840718937990587097107638667591901622745234415904645259719504404885682570452656870182464356894618700166234517507587990729835478436615478484041237295251773430166910565738300775863852751719871665837783337550424814778030846112905920243521057709845518774062196270882523736898466375851377247555598140750897491140393573278126403463227997711071702461174459229675872256608235693526869423594218585894037521916044767047060119625276203809644617404425023909070419585648172476413078007943366315121255003365112007427336555391796174219643071130880290753448331650913242190224209556328094742308353842263620714123904420348792651972864242231984831748425655526456970337595495503768532242566612382271798954239919653999840604181112219076251290933059974287908874602151008188855383441198688085360669424747335252829551739645010411732210314533773352471696810319670927261826008730838632341457956231087852874059865610870117577386711807077373997297822209516321053384495428450929935618192095843319863805071068190133765265903028259640722336879452340122978351740801786329191834551909919813932127155469259789053012169837670141140319478152551938608059785722161675246884998883457196293951425296881067051533039695496341235636465215802993886689690638941103195377797431869846476634827469350081056368012401502783720005608399622651915240896200067084159048849162271815107455236419212226606309305528621369731126688204216308156355423713082150991341847045022315942360394446103515433350167129982361550925814555873664219125840771760729784664757959170181412772139601726632126076166315554149729585934987158401954800233657360252626196518485452988559400814973718327364388787410161308890519583925451754910683583377698915346796300102987629159363626418452416539507746485904946611847139983550499849306400800573396286314785288018108059182974519197081357840058745631601168182925081124383907303163618421429685936009813977748911430182880141339522593383470530802002535636380954041320639585403533686099232714039857855189264498070182360872019588721255316003664890345106431978357307841902513286855511073762260644239750765660529623242993383366812924676058444812332560674129436185553715810179752303142143823427455250097340432387465837497219393671386061916559551760291688839267416224272458048956722754163810385521848030934108924863768888778055959066325255845952948385532062103011046783992428130544762345936433684068654709896620721408708947159605326784732869261299772283587124724489960411386614461674144787280008260042366915437126366947327329521154992681802274678948108160069146173370770006589083762636200578305242523706539080407174112633555103085142157978554899331522924499065413289839110652787219849374498433664668595621936044174886437651712885016555712283161417077600451472648950314160992159840988921708254941808306629878387684021589743059806006918485297900502206838142420252848136724977835001803056701461109274309892365996268366803830626745717739414705606295334159851838293253029658788174537912484801463257258404941557313520919264150156951443353614063244411273056187741564635717105720138237300403594545526069461183027713308522436833906480002210347677191532164259248282163413207554606490199102138133605904467372114170613989050779410432829103766538832901824717298048189343641570613888536416385735275779330424442076034285499556535775222215187430279678879384709935614688807391855761776043622177271078325716729339010882741906140015772446211827637665354088742647728961604132445829352153422415418077088332239487761138235257352857824321757013884631250436950323889916927316369127603732727051519598851977764152344197364371940403791255711934285453463589140299796280410043298201853163508433689178347149607669352629402690503418804090316944293568401931079715703625232536508554468257772544288998557171237529295989572653252420495198192806256635307753774041144866850575711819695377651855225911850903762644513654197508795496634886849971519152354500099528709057891354897733679649945879412884666648601174764739533059558241580353175490631583955405754849942605504763735862102604314155079976730877294964089328903961130258330727923089858762556274127996508439434449265977515233553667773383290689717501087879502242690832113325756079953789735876380105235885386728390343071160769800576631454629317625016446453207735819260588623383271178964022513666592703837244004843230979357805522667688766249722888031711216598970886995406851344325845095930059553125551241033084927959459069300531885889490926302618112818925103027422553352605413954081949352737696252697732832039913030810947916560260258105168377486520009597784496004389285845763016296569470431731816956629170113687749415833220623038925936282997040108175248966877505918560199456740969400206998148809987531628315420296865045618293768189821929071327486529095010717135148274696277114528295774755013666631499988022705823882522445753061384896214346944603366026781451016989943281340486945828057667496744954737146232750799877831796836311469199920673110180899783812497174290548460379731859358596410259648954807747735520836570756835747628613311723867234166966743198605294978495121040650005307921301099925581906163513986017285490030146623103590676555861444473107292792095430414530046603920030036721145194939244281873907393208049242017125073853046151673730044879174973430041508205893813886535086019800689420409972874019186029863213123612692625956883036042396351818725071174717144390215547957107797560620009892360482428254282432465436087163953296439662229293971002610695535518025980182482875781897471052417523432266143601591766193709384225044722525498732422546444359723615636691225189044415697303907770252227172488924951300254732518671453123352422140306689140255737412037470489891715016843115234203946187773433278067338894152911596182930669492154066298982096878715410835073882393450185802980854780489554978959189459449455092558916849489985463723149490900270557357305042875864453416716386173993395658106229173114792028726041563861496093093261543822292710940205867061571651798570856284494584450639786935031694574987639102662067517734772223290429938614930768089403375543158072816372757604887290194671613522605847418624847662553885570996771367459043447037541763059784444392324820111739472674208695543286081682167749938406156429388953989441966808858129464972761717551237830227853447271858298259094595233456744833645478791752288935376590956105265570636211101167099319993349396586374895912860121786908456050354420604982678050945801193375427115633658070088264742701754647354354252243564053649399779735568238933245518446734788695627289312321453111146966347077752379210316533686027108264509754138636869313244251635925538082040890688734501182627170535776734552403088758235242208504940851163748223503682473266514335485798923370016853126493435770635360267853702739849841412265360100085277053163861384683821837520019967200821521931376211454534589468868508937677757597958685697973187951794280423239126769710611094029026725430445350932166669525880227285581946378732127554006094597036468283784463663004920645307908108172696507728174401702492736765981776627624200115387736760275937150031969265331131722706732413142561106793199858191589912696678068701117121679001220100649769822115958508225025362915910583682310999311206044701621765685573371857869288200854973497100139388156078130651068420841888624116599069005008035865484550279389780587865325913844193473244235236504695091144067878740622474661807970269557370417310218766392909025350164410709884983124231338648594606812924357951600329000152240463997008817866039064421475514557685622818360720612220520862084934934984155881461309180811932463417711016631856916556982640654433581079152905611098212313381458815006635446947386534699629172682333690846092269760021374211342125083666780809925460208618538216650907206580908223306678017726256761381498273465526064995697891942406850890553019207078769309981784299391043651223478077688456120718652942207025570219890459959704213775036780244216601859704330087158464957705165941015333486400552112058354733080243400575448514481510993254627388350017037183132861941028383319308373609356850245594474433354418279142307814835642200461962831505633307780963380004016052043390647531951323113985172461807763624851545382888619157932643362716544879811882651282287667728150751231546034607320354183294096507482879162574113663617272791846214541570005248757572033318020495704670043511339584299987866458082063584218157938240336886917368958756830257776791741983093271841969673142625378855147891194312395697829490120662620177961203812093030038920984464658766617573539052329846232367147947265099184962269366832234142155077818480133769902788264435277591893920061218442002559754241232264112067010696308535690784514465018062904426796432927379895232335964440490655773841578796047112048126434426916079451231197899774095696500964327826763841018292339584989841332487301278547673217678284579979824980161451866222220346213197887166434067444447318058882015966750961566451779066265571117980001580441190104975107387795178717616453712237473684138846547538729003628536254256150370101898685849878086381230746654300932316801264729831826274684396139933485620721886637489580090372164324561859235153363203934677741013919444869857762989616220612128311177091204985720228289817011219223932759529131581938866960378556895505292082297931119643449623325508544078884606240237990137688188762492775412530244378200395776638633604725852413918908753029285557582425638224715983128177661554052256705348231028953587234683098432712732165681967594593443019501612245654912802421278089583827992921135119011415924621556876672462748671711075088326961240830485782943528548276663587641064165722516970244609954851017429813947907527223023524811273027886264064843622686357810417241180000354767921477832219945216604517308098336222809480373253008588479875411537332966295702542159053402723506665855502856665105928284367220568912661379208909562516098415493941863768960597617243038710578031147346460492839966864916103953068131194011092387098502389925610756341726998133280139232429280337939968265315809923811981403534759058694486812753311376403578397301124773301579512319657679675333776418622220566845804898296331127444826233158951132954697157723916417473228570088860667950506388985201563489148351815504061862900083055580308641350577218518787480201968884522377116156284345256134593142730389009762831397309351229693631131372599169514656894324113965639583768446417408536713588173134388772780236077553890907725750700098916859231597584215712143635837859021625735159103383723464931358555835195126974136505337831166163733524482838766332867913087251351023548967348293264672781243940340032631284856545863601414894378434934658916401446314809983402082911212061234827344688956734154055949323620982596474070269891318548862055065939308617623836304088145857930728502693443666447095293591434993938060760840374468563539822140860720124525916287229499950410106692050558842488124791192277743126581345436728251223194967964489805642051199029680773060051839118750712854108436641632249646675427202191122092720134673346471965740782102570237198231703661633746312518031052309849989807943159995975132143527153573478665616117444738673294551573822687808143634478340577976120345688182155312152843646098781537154579851819416532687923108869914419235715388473252699487755114739467717862992487513967474137647182414996239954273244420363943703771398349336495244561971951292772681647494520067106284686984948985423156103007406650534637879961978063923220821168798666968048699198410330949710546036157749017874402819249458683551973091446655100353080696947584371575992546534624200305967939020716287773317712011019952214589822029146270847311059109285239559979543350420096646673742806842721080121389032287912527561597822039349851303722697635720787603542406760002397677059876763392663561301420537204141880553583605631738878969129622194252965839949000396652450303535899400282831108540098229175222004860108880414198714043401062372235854173774645526400438420225225916321236303166489362669455868226419037366488731209386118436683622057988848449924146000237955595500837807320381103277180948294510933954081570117284923514193785307556201369028050530410231530038546847237182698563214059679012605542110630057555073456283041922911634061942203557130224490011362236630159241003459511658869886642756697589151124163947978002788297878659859094354307377261712798692844685240748343020959729791268633414945521005314183812652199759852072607591883297991986674671430274093795155957646699912029086569488766823500155120945462356595594323793477485047888426717663072314295029864779330064034247361694050824926857507962695096424753879158655100174126730157861097868973892239002267176014262273265228276207061468960197074232812580752711895821317407899542980185209386640909872521223194843693403521583276414933739892114191550839323867685877195635441958334281277880493422944967619418513994948752917328655460716986573663955938258597046741180343031387399083094804755620386200120014218030790193740115255032904662058377628467134325160135796758178648397576938849975561015501257956712919547652016168785185441023329621723157484687443432200048353179976578758911406288773425645313624492615759750578416882631949092172788824591364312020264352629768892305402524356315220934515281118231402449956056022146222104575083563043093097288470415614761000249468372193234843233396428436393775898265995292799759718037019178253114618448930906614254667275632192926012445126596891543092336327746229274146302040510968973861758690862902992395089015386994527524412731263995105908329044662568069894074524755496348743621645242605552046936882986909744224295069233004752097457993966877283947476302807648036896446050348004061435383851317987151423751373985402171519781073629172230791307091112419157720300410037003302209704595594442495477739796629528606457937062069277153219672811642103125670262218409786001928533866576407583128768406984595593731685673246735737614240472478817720831794485919191491018892938511877813630687555424638109048916191187723025044495005262488751094822332849409738491273300166480432905893792382454090076939529803519218369236957924916945213207114020588477328952553738146176919562883334405024597620320299708317855876803953372615341648579908547521046393282167404922312178338083109178611835823039657936530204504658842671793228070837749987770256027240334716008707061353823710776460238358103920163949463241714954620543119914619544849635510073768087208877919814554079006418519799236457218652490585611275994903594874634273143471712316698549910384522716632150014437753353466987157843247827930915520919430546663352904631218962532801680589045955120093722149035571406973955416049213011108306733841139098234364690377300476615935926099422565564961549741406816659446040723672697680911883032080691892078075049965577924807575242773018132435267557175098493292561921126189762485934706563173248314667905020423832216729989980622688666761191891984075654593164853645150428505601792143146431425784927351827812307597486087542625833179873559336289014262618647721935894371749920951183576113861404721180735250809899232582121281427247344728361292079233446940682251798746907903988867906112495547643172043901905417362844252479213169311624758223969511309110343839040939859056029052950057117390450522695038373648743229505212654418375217211423957735817177406300851113354580065632166903375523593975582105432103982720297181669235502567230109509439848126458013459241768984757116933326450808868788291224397884584518383861646850279027393982402246846147696604074316134651127169195704878546945027832402489850360980215931908489498115727577638897054262380323011817822534952410924060914799406317198202908149321486743933366235582535152258444035623660340120483543758435454484264033489812244085870152892316507872189837808135442009171620682045681289545755577974586061047644595440077794165864406106147349168400907564350806647834652387642290237694360902860486260676522487163440675532177393182158927324818211983484592795630282840635211316061754469049189181217742794710946805694305701392289516151602826046007757580095457871613988000493456882645296399462567667983388212197972936912176913444436677555924661973320651872636365962332717310005685885111891429323562088700219863279879962312331273702027368819837896263260605040950191242576280240714234851949621028386704804379422875240347873055037047603724955634657762385092349942580145222755317595536261993309377851166612248034960583182434465059178971563377375822428556534161810055655282283387072683202248576568320481448535103344126277758102411566700422182094540000218792506895016470739435395140190773653927658279652560299474351468469474634586227068160606143870644739431362129214258264947795375797974334861721509204451482403857478778165003356763691054662068565269743853703548320807476544934837308458957373930843360264834604182216365979520774328274503067996462553367581195471240476853644281724065705268601031243177203802237584720479076998229507669411215861457048948739328958326823432922965873211925777517170424745203652550462372530454946262564563370360585111126927008208794252419432281429216632728669287603548308604069151347090831366969818830912654509195002430436529401851341334083359325746231485312772635036468058855565896958934219267697371006318300067612905495709059805861011032686317814758169633443441128173327033160545291585452605196875028470162571119453542526833871516595950114123472400038878174986383872875264870663352970481073766240749217325645559233313886972359749596259740643660207703090554553307083861693038089349562150440077009369265271447224965738862469509925446407607375073254260559814308572148600093740749508314208606271728214721321924027678119816665754646078362299432338532479136652296170844053135673726250725243868805663381331168397789238150271217708774625268285771351704519481114855770498685750999873425452481853729208984326449736629317209218037280850228703282147796821320609651655375542746701349495547765456146125729900576609418204356782045296110916691717593978824862727216557096256467053165860427490014476185951717090538551708268144778373178069150802069680219973724446160746124640839387017779017576102651600862330902042567974930904394079106625910318323175292528786286096720627583437263098004157236907373673058342235031923704000996838063424975981506012118412869338250480388758990644280994555917486055452776488835486808885244187920264140362354898369462064850399908921888972970324986630655759058921677836268079573295663772188049049512233529614756665383203448555667533064438345338069580770554343901336225610947234212301933643119588766190902932428088223391309921460998338980871189860967800211664631933591953751653662488155769249283320668949648286411186952560266884532748111362420940060298651393553086593158802981284639148766712441654270156155546100630758922985309073007897591892327925982285763794164878370506039463846228707446027105509277286485675774892994856664862454175182288419853935783036854526945846727185922340340519908029757193843095020135407351669728771226369127710723369140426349601016642387421119880495561144784064892084069794152602561402788580675901115935484649049905750929043498191539775013548605860308006618265634417128509988358755169298553269700292064050279236883578889038900979875806392922270016793959968344326911739819623509654230933907516731962114280093026913990008118219996842986298140963085419560672640629956052819863508274093762723422958151394601123712824768558192913968663423811434946770317234076358444499226481734046326918380995302751286373210548550611777865262467451731811028279251265932311554435738228893488425366245291660183180802814438114363339396434313506280915545465982433216327918342319122009034430510097989799442307206531024317185325712107031683885820277383875339383965728545786941964458089147316901119917487326020965271617225971408061260016772359725350210963478415998787337586891763446204532599692904252051940200198560602899520518790225706341606128650825967834308983225807296175021006093415274991169914406368328399582519999472564968203004700372070773134841069406641681697396185352935174265286815544320432514829884488025600083799996389048717613204803708299336940847179641640080343337281240007040803187075574905764185123994682304311764283440481956768034259476120192314088982596123885090881209904162213078014805976481875869285144935048875222485717425229658363709744714840955855059494638280543729956287350811806686158133035759019714544799546513809860197209846303705578760459111440259253676930035843653978658029857317537523870357765021528931190621131208361053531901293920845215268018603852773248676475510427107099363461264992748126841463867823640865698981691750933952722689436714876083354644439296160872945625097238411189708402342893020794406103260494666329463283646879518996130607921051314114655897407340216379858508009739365626888013657774492431058838481183670691597611979433119930216490952713889413193969463702709559193329072476211850140035552150771035599661944410727090393874264482911840655047579811026840199923737307038029974486329142878924904044115481011698430989689183165658328239544963017741339659851676791105204911274313166054106713877679494158535277854131245634018212718037018546820833758880345914303981586718237995366422462982914669586800469372758961010590957724943426402927771619225528516439875290846726785182362952486298290005679089479443008932696843888319575050753982505400831337729390940148063090444267420421004227541220389019478754724018626438285157788112395373423844007109938759371603298905051062012157836725224898342783632223163226846020047392984403925640202314993137949121807033867975352485251332448130455153253483069144253040114435180213668747606315883694101680889625158584123298879743210480501651869744799266735390553856826230976110676684341967454736827205972310077990880316990751931154246299888747336247177813029332366270377354025304638955301506298378627278294924401350526295713934402767798348091378118051084988662055886790243114553626684888131520600932625741029745438223866475177318879406743788087570673058482696194733800346466686950716578511396384599808169842824541379299191262856920439630119378105744816352894258484310479762162897595759315575117674464113977294258683533932333987768957995963232936632432529921589258845417761676175917458401523055610045757791537680899450560227245288755253494290931461689229546153179620714842113369372656682228831103693288921522671075273556864775016491338253904063990678405806904428190865014152218858997394085835542361939788392674292242035753528603583614294860105113657499155892433457622651613872981174443862633796391428366319364577329357049241601504992239122484485146625422168197194708054217654867833013133681943553113410367807907318381058759657397581914096429747148608024952982881007039380750192782819693513117319065271421785643913644249459103710894569173303467058042194699162266398587080854331019570668215197702406543952852360443827004998894580253500304543300762979449967460177663603568027527833599572396220855514393993165484930327429299213499330095753019313350062410435641592443761005278638633526097196935128217381480275486167163749056128641052674244305970011780526706992124434030688853829422776811256164556947790725631968168490997991017509300558507424528710745635427421864635252887189216223409948304766651247852809166915017550803836801747934437496100769925136355391810569513711268071524067239877445784086110493714455377692884456187129213112339459547625967811597465786158007201899821643829564080499322431897314392955787811679707212638339932211882105801175010729788199316411483745087092961770929036279671123221733476515397531860780610223542477335098675460754033269130577774006335950624594661972352084190947998092290992257348879712060791591925616520434724971391519179662926876781694735519078320601657539718062187070075240094064612930093321727189878454387904387297807020229292178986776901593598717955713337967253773944482259782375550704625341242007201909143834627392089057254701960953573128195349238437874027587439554853419664761329899522998769966912284690362875859545802393828914994574822375891877314245455094470085896048581588080733461129616013722465891874048223326986853725565897081550494341043474026548423356471343866330804467321642053675135061579682869173822185434066028571746926125562781574899531774030194178335014342388919479197881939088153795558229754288794644676081619402409855654783502164949215379020562360166499332684820834985227527309911928911355871129120699225756340186365688483791625853180291271184088876201992147704657491196013707634458271463437127742119744103269263952928553929871069098770435422207055525404207515231561364592794623500849982630000860831081331329625067220556002252367880034810650881147833965007566560165575753104064244655829438090539554362471801161258193359581906180727417715755020967019371030071604778583722530805941575015164535827485404146611600562733262374848769227226251617031751603119319895347274583954576126784915419757667878268615054455126995425109660001162463154359215270317901401124845649987669580179517485878367730562594800632386457811123720745364881879924777241543067524230093936107348123104052517227842199247305828950479931891764446607824159354457877793340798722846221676451361219928763360834023778134895616314503617263808279163701199787187216138667279687742958375835994300486518111346707779303101774392519186841766613464773722044651565343605046859737334851111307344571156369671565711775346609637598642078203308765720609355969217663521976660895473856723910175541827813179911284574508536552617245543510930026291227453422550398159405683821104619766961452419692329272502426408852732583633020067320616447330323487512294474719272866310217648443276453355641306063755226857884154507194474637268992454027988721043448779946408325921287279135719940333444878257400139910797345353962900336703454661393724408067482199998820122301444354103570448236656137845737875298367958259562080411652023680329469088470091508228744833340965336124624937333946348518101212007081083468407698128255413064091469844855015112931230305514618462620356917379124520660802509229649126215707884730442157747673791312176154896683814221247312602585741699688818716140054330385229131524813906289192017467945533021255884297112320098057987219918068433376199819387278304724819278206850000211200888732328280825895154528465246195483197681244394096140651336962618228883080087743326064412475615492014349459161226562624644536833572569446057819312104265522242444320859447746714636747618342012119893819204043450582850205167802205638483003964427505333447760020709721793992310626492632540776034184556928997591886295871341815336346990572808659595527709871557737976766309952433767569918298556017191803790475154346765083520043874596785779762526023542975512251764878647182676204810679266775473415644506645338734362849272723296176991264711210013769873523093595083275943809935209351587339169749819488775561042505338581917908546359078647261278077320864864504660431966387661283459913140428216493520499041192108637805588637922406534647538121713910213114588729885835038147387238445821098778410722455919415360901337005461255909847243105181065593870647672893146058988634630760998246635934993458005391715931248707928478462614521763184543265232300340444965644831806437035179485628331296070826534048622035256882690756929368526953375431060108212185219126779509632387312984624757754011320601806471494451474754874507069395770623175428482198994779002177364632253178762605151437212749136994951454450721232556789062842705474644047188467527512170127170569561053953668451906894485206653277892098834330104481141448663930703224422234033732380384032691607616006364180756145106727340701046828666386204867202138084072511823138909656872721245527304537352473163873805241943457841346525246328933207004732631901959851652874736488993470815230280644029315839537589917778719605978756446707445982223534488896463944564959685164324818354468512432143211972024636080912485788125627870883608275149792636892871472538246715162239055784679807257233606105563472094008604744479983669847537251995057597834873339994377491419194395372039520300528724527249496384081997948270793483761598949253270449486084579533953139838350417804059265737573152546187525369609343754318155409918291951741267018570878353297775143401987042366347639965436943590793580250539694542262686453538421281182726033105796509179121376590120980029543956432123537351773462602790939049911375893256908508672842068010298684658637145493153137158759869361987131506258302180771237752105046081024313466518103507143501900545139365431359901238736947471748329712700571423971185586630690184052531605772163646412758098867790746967482690240408105765866627347049320172618418864036859971584286228770815532003819576501929626862078216413259865264337296454226917756881384669106490518667695638900298351757932084986551984589060680444292279249419171669215365992560134622459531305161470415565498853436639746139771408240206094030595114546167460555410986541959885370471512194811646436692727147451247536845212816887941084674415328708948738254220425044664754517038574625099696091185880650594834864456129690805601491280537113621540165483771328750929442236198154021154343213041203609353352899201449426040937883833620885836659957088071882804942866479163020416613816341787234512453528481474519193362258023728780604362901486926697414441349292818290323246908668138908188405118711953938697264479885520656672865974141697959313705284095344399254481337328659754419410969893023319647777717471334022427630125931004946022076301902991183862024862088225397045972165644603406113732371436261983818953164849370700709721653422203231133440884604160791961208461854003553835912765956773939225529705185553635747056450963876362488288378226989956667761590448576206420068500229200134472303738742819311650101410078756412312973115898464521817536960751736356858640975038549267092279968069741843270529419595204146539791130550079395860729037407552201503331153509522465782662378346929696331205631976615911069460021350543926107198115894496280099687877367974011478719140700896807950663035793748897768851745733633105308718181004004903173277937734606480684181408919174214843862530223584896055400394509153408932438508077729089520431931201660071335975084793807060019590180962790760084011487090342437466280234994769150074751239450316233976228152468289748332059203582958548602337676990109149105636468045458562721058884797897814393807301297821602356742758667809808665429173906093417951455481736122154064014155194658808316115347334316994565484320465750351461590313068772443385588529300828340375380207011602692068424954559272252465201692933072794509529113510225220619989721303391219300596811667380498789089893990663726188028714215349625928983796652997917163717190774692514649475946282927652455597768570113412890167690543388734373975186027192276194004676034490415287310303150304312478087949460358223379915512425421171886038125535478137017272936142102743336881617527272901373906806225153271886807289376394468118098985786223653523032060375303674830248698734815718938593114205006622843594033701451089245021545062686435411633103531181318007648802022359133181013164971558110299451066310913663606430905363902567166383428112267326127272091550414023141342449360860268407517155044888052905945322742207028633379399350836698710047315589628437068064882192741796277716332713955425217469000040775915378874633388864633846109539035389962721276534704885354435072707912717236977130460185218357318596281293416471630154394860411563524904512448512219922738319899269365866892382046671697155648292777347148620325149490388038629006365422353570617126122135673695581077339260137453595722267608823137753285210473788186590464660937423554777756427604992008452228716363994571085567444977026906842666434245819837547388727856436190435462687680825654103071184563424616488251733773980984139949760191215248343169275596269411347136133467136694710870476733992060366325166244187627596441046573514360869522735505039313380700856393882884550637004877541663315044331180978127835176208092830358876909286599412193210360351991551287349839458594852611078868319489535194512595033801970937700885218688316964082507385660050136314549271324883309123450836264398360536770731058576587162158522715123012960796781940010137466427153129554691089611138024297264769930611849128145727525401566249300683365108188736205593713736777228971320055153698977925233433297990904522648826275522340853454325431631570169730358410734084966794002994390203002713127050009616041865314377129552491198217860092914217567093102408459684357207281257259207596999883694368799233763696467080685032962605875738113197584051899593924178087839293687008675438326912505851735303954059372235891653100761615873808339940523723694715940780982986522772490038627853782591461497216209359551068097148110024693541794805496116440094183577274744445417251381869942993006169040152036161742284092700630214227506398281342920833813663380097293511412407955382730371055000118877946709033358095189484796308649418222213366506089967876833765637218891156322480841126373128526519729242494076640615688159163996931377034176535359465700311408265443749803947491523060509159515614147432036593173044353200713928214893988046171037869850990976190218849915208641530672099647142589208919131681513654203477895839628455013573451933726537056308056941737400185009266800299232360720325266963631294937726494469178625677246210799874934401294649646431657846441452843761539527443411915328636261388666436677916103600121753557236802447296478892850561970323814123728893075461605847437008967466911089952522225772571801698484491871487436775257011853778161825273043694881551281279922867671795028220370886487993633987607005621869080443039571370931630901098435188018407295391775560895536266124185349436763384191988569016757744710411757838222164964042582585196612221167449791969856176732203132593691532881170529894767062722402012352598331942456715220096412831162021117791951356440233130430239361350647822435790417914259231006501918078258026027900805170925551729110725647718690593071855921188643117294975895121892735520377887372543336384311980250722619960689046335378545470978640598781203496844408314406635254987472238243408285255307331617363149977415890023266505989931963235612395027970156287064303379051470542806976511072911290907951487802569803699159696639476240421201473921562435045788499695385851672723312340940115881845692257579283679435827475326139833027726342130645246718369505681363629602706770254409274603573838152315814418437891089785684525438712417543024894190226846312263554736234102269420680764623210152356465764886280420291320663004730354766055353640245129505276799731881352618956456870262281417122739978623795134903956284428842644986301598672564246282594642348263655896962944094664008291101007962536917917976181608310820020466109760053850083457615613422682320839078835784477808988321898320856988477576111741092123825890869236064292091789879118976860177405315521270809732596680359464329452944891714865394336707086049505245469635421683470103226250318774823053202830328945460273545515084822534985872603039415463674186414051931721222809211283246014110256131743399887545856956981714672897480382062481982147112678221113361890986097857878720747060283485636377319792890508145286916940955183098940004170575768008759485035322755526402247918566551863779092001027453412143505055901262795040178558874852941447604668673122839800063595139608298206952544682283902966369282992394887841663551987781616473722441063619925312246111937822394215824197343508964026575329485994373355177014459924616431107864669688908492646013953210586431278962825760553407172444175160449615466394849681174825772171579464525496259587993359103609111542325677790204461214073928682133192342847999269715574244234331568317812219469046855614508807986457988202635205424951713187924224598180356043489615822943241694321997024003974444086254610369288269891158837804493768749792644624589670798383230241105605577923834116964929465138616878660597422947872701824039295633793487758938955025333989092824002775032473972074327495872572450225560186263840517179224450216026013345888599538438507890676941784986724913378341190999185716987649858884058784351203513310510849156680728810587089940404160600386227538345249647441697145083743405331318372942082735329868890012717408881667481454681835777584707672064483136690388380096342910110755947733501896850161646574976161043607658266081329941571149297839582771229060526933826166116819496883081486838111821326360997804330420478665944152758521403852985825098663010893941463612699013238860961816293793606696564703099762898558430361141912182832027917989535096769960300919290698682295790982730924987904578752628888489051318310944726129410092654525377343174341038461415919988938472076939470532256906395356616151551874478261643118160182264306431009705588319930445207359935481221526818601322272907223730397273644249101526008285875840996162236160900855429466292617675774733962371196458587718318163339009637141108942662161715916929867309391464840819250768411274135050680051357595126086871515896821011027719025202035053554425355956156821951259586727847461390495444958432962640255771481368656348668550942585339477334733140743893343424745769607470133187290607560627627933549443404567280350557883774436545399423522647225747617361157831245658389781665189063375080915867082397722224447424755658512153106779860745148178016523573036904697998333046085700707338393050868717680636520707712489268828380693541080201484003114875026113521679507227764983343600580660445785913350219326596447342590770485036156688012786868293479875909550074720640497457778762393815593468001316112136836940442846996953904892638900176002281166501567492886780186268085954811821490892067333624030012419418895107495244410799238975038727150681049906674515383016580252955650494477230523637332389618127127198147406003056262319292901653594377325756158494383778048242247206675985916458069696263110736453516576959302818704774033978132978085568236917183421959068300556424350567014452684521648356528217427305670105223896501307267285724894153514810314855381925885038711435660278443974708826168373973342088992772949591936899927303367948538078592621295187952319136099653155752113310685853633978550228409445103407333328847747270744931412002153272856246192239803028350957687834400515714950413444098292922669379152467811454786361443680877844409070293633526618541208186014135162349888995865057294343164410922518012446027896883928164679007931988778785806060288644450829544640793470633756405995309469607702266933621211057133581437835595346018831496093858678867077847756489826748796230523107497711338321090526505489912194856204748386517567948712990433957023330998360936251647476079620698360713655910157467848078464231493035217025455625165299053147794764564675273866982173063832639796192626763525157828502367961261663411157083469408766883840995040175973502507692846274847344315787079850401439011015890184763910486480860851802463282089080215772384987545554677737640623489604580896779495558475992573689716290247203380644932750778218427337780613825808959296314516573614394682659467043402138598694519861207806252282293846613228898221503233603714403995550313794296027094276016559435999432399645847712253809603245887475655834195101916935607404429945894378646108203082119733733847464142150189894764666612606759448673877286273039343313809553425260447309640375578101443909557429910075408102537155807287302754101287679386707216207165900899073003520916443847113841056306454949722496813117820717601105772222327853633159238511306902342435924030318620656595673644337651662482719583635092013162367500767557654555964932319153356292380628496894710163846216960821391067800549322237756814317791304692371110002929865969476961586734466543718007802498394757190170080761701717797279499475082597623846508653903447884064219047758173926480994953860586410022268154547934279620529280980792674060672196256454511848315382581884573053096895873772071219185903850455317615820054458533239008151251285930757629080951467111870900366297561910814655673255228428782966572028393371055640852616086461202165495657246846268350784987911396252812833672199899811363207598692118999144523564100877029560343758620943322428733599270347899061532531287892033050220759537335187661218631251556481822346077578008876083385976853506500981696641499976344029556063680365241842543648622483051620078969408435456098058607087020559961105735373752863268715785555698779031426927772402334805930691700479888395871163827278136548834657804816962550570653873496099173993161425628781915674486671844081700760075775544560550484743253150146027009851751303869045331162829184612643238589528207281299164294136311532854356458164243451997003020452125589121668999936416682491269991479329598759157335840304307993147307295534540448841326423339489738282604902906928476609200837152389916508980692127840453182652868895281090730531340965744682474733074649044024663925008341005934408414823040721426629457372736038797403459376578903031123894891961234838695469099106210875501679643262676730460619982793654079611732703390431339778188468257810901291703699720485919205096844219854277276125413160612809358093249098313638866346917906512027889849921089525159376304224330705899789966732908252256550127716107205798238520231654252057467305967081672515608818358631839800147839097879578115932921116688533441259214063929259510352612184784099519285111947345651208904923865618452424283870697065768852780024641221162241724352359386606585570567652103356127430173070234989639024140702066980814892946035431914392919045832252473253972573966582809820009932614986632761520014892235742555807933438329820406065811322502459887483051152062107321046173096780868010304465938659956819299949758733847591343669335820211442651605020162237380898824677956867990448883915153970039920208969879134440144224212215767389383230110435290200446557781958143247341669465552345607165983881075500160468063374559647488991888165749299926259736753340033347563969166839459929472927987878183785931956699117112905294985622072908508060624677812853641952668524899316362256785594052277922859254589481679203163707678922052616682185225975663829490358404958865381183163426094917622283879304735485168107595769569756752339245909349309770398159574981961164059303362075898847798577864876430763431998762572766839246339275835361130552153326467816260061805892536163314869090349430675413604223781801782285969361344398065011361912922256243067986434469308694296315841951692535169265084092131833316374454992632424981245967987216324989325030023969927971381254882317590748877635673515369719237817697632394648099907551309056062834476886695500262180694652625554006066016115586578531168958026853833705390694493203560100580458712860418831131114734257800503646339420606332234153515749424668119515208143442656340382651118071285944192775517273182532159963581793088900271169309283810032288260526191490119930506845916976308706411035184157463390420922177350230225210656485160913952337750906535154954451893981084419401066769924210325443404026101385320961073143454986544934950281440307829238917922161072075045348267812203863281949856710942288143242188943272355926665957175040600577848129018906521527585091703826910778576904132145155706317670075142547770064170461657479664929005221782121909792910337979904449664434584587540069826260775124742978080234570129993569471405118750916955575627289154921021754605752104426786873912712696031596365563007967631889714798098824739118288302854247196829464417619315400767578088724090070580705231839950343694826947451559684288302386357440739147474747594905271398222870193643883738542302024438882874230891125065817523008327540822983848997275533919651437789884872271420656720039448258682221516676356395541910746591472014070381959370258047058577258840587176621758010725028780138801201046627337583202646122994224045643004445619031675720148886077415278905945937936395035690278169340402026041219258443642946988986131593422034853491453788479693468302708997065417989537021692965949584253112185709451792126308542916861902300832029858756748575514268536556742655149130156428060907635466935370693778577153012849625271439073298696332792289096897231794224607893531544382282077878199326271619673560798313363965793832902715955028496151467842598861534558576856950167733494756503020265763253566060589464851388474494339931172281843987949977957911677696729595918560272083658593617159720179394904055165451278726879895506847932429205089500993103138792954059428979957524378412223243279073121743173422567979309289290028878430138235617235991985810032457324247629392311404339703030143887969937343674740571504702168369568709044298619317373812294135873301975633917220092181601016425023427914103439141379830304789070734139540128954544320476611790434156102242272842995734143803196925110219117249780019899726711749835662054773858614681315396550094556385049910356898288708505424664099278899558917061997945274213732188997218529718444284135284031131161357297605471918565739778321736258995476124595761172812118066872691766744772880360169860865650317820357337379215019940486569873659278912437014245455412502170255543508731583264988458346736257831423413130997394326635231547810985224717584968820134968323033903606328299263772098716388319655665551551525607124352073419588336195328729990978983456943168284086888249444283746149124644297769403281361667161019830170101425535452442411359097825865694453978928014894597188960740647754164692174536480635149766331803886909872518507920949161538847877279981078435109145405492456805401928204346902828652295445904982838571703611679257745977742660295819816899511333273939152803827570041853225921338127479784398223403491716407537254070717388120516539019267930358426097145870511892645957204747231239991752243044411250487647777655602468484677289847564401791169058841184313434507574525515322192403301571879642933812258393095485919100405821181987663054553290582235751097251615542225728952118436864615929648230433793371010808650794151003677276010309522523167778667658450401844584119311714960180063688649581535759340970440437834043999169843952747511093117602199362648870223318428284402569912211139019643341714287538642297024064793936447810695970065509805499132530323079810069423429927652515209543149341307105572037467412135825071160685121857208197293859049621637843274404440447678808832215459362691245655197387514092947653400418575557147782327536337628891272714808776502915413308601154029310753753352941040638458738625345317284668284741690144350492172973556235637602853061747433354960409352822484440389800081931226969898057120202516331547689343186522372374250043069276748172300421763752353768431710944451579259502218979005172021775442686450463105416499815982451991238792730087410535417126636553068547645342915655707845815025295460632183149574689697690185389658067058182284304308907428648621342264606282190453039070986276404265268195786597229736749475121746971221414017834617190267295549600233285562482111286371084013220772883940084330739195029139169980192082410976238078488676704910971866776279818724127533364157909453308735314873557918565484745430388790312007085468433902114756924868294305213722350441936217884846357635606274387709367945650870892318359927278050141130416045256019101069044764614412830692975447384729140408223185593531040556627260362182125941695341951030842717600310045608433427747421367820281362923359987652021217132464258882995092372085217468735586632539732453392672910458029469394544971844361443410156901050385306705078545266324989363287148334229028081316187165040904806256191282759196007383623557044350007814784229039443813051711688874978627366864642879941116768838431168120283913949121981525499219337147952600284801989273247212599097915817173417211659623730584931929411803053241485175189367464260184618853006111489685355645293078957560377912760628044922824290197586109123440514249999166115375857671079414611366431956935063557006061732453358727724606494606555669898383714524677007596126027181316109352814168164634822240335534221713347791236359691940817209034538868002962320088051203840526525191313343121268365744613037927802199214823646850270219092634238765450593863393563430241683689013651706438702662979820223678217132104987597647912605032516484052809120220309237038545043303643775051600386676201386332898659734756413200612396631694634856618325586020845156179441686135694036343417572621907634695294084276848419292340068060664309937544434242823886435970389412422752770971659612741834420274951463788021656466403920975262321326116907102686812015200984975569362960103956092991234229225878346858160683125220216595571721651508337640484556663323510300412030494635869585823572184015715852041420989799684361319859964120370216611792529105623804125500134528022962391467140181695839819443018148910386661647976705322809060887620107868470233680542570915238712373351169421665067275266267437658747659705763601814526600655207547654281537577647055872033765080192628743661298172492091934604842763162913688076492932993571259586363698328736534551969117477709879404402231902604078244740391290105074946693174217064204971782054903358091010377666979037053499378566550987646274406991417327916257607645661225349890475620330133998130508278770134132968559597326961978316400689281216236182488415084135160888282299131666981657728241031632562646474508431519757440770235028783314940325611905983037060540229543252266481939343926766281747596348641139958617464277767923041633432657834816125167603609201775903504943403069598844595786486716303297318014336831792660378753183631715158266832754868746358423571730002004465020843688630053264759662422629810887808890545720020834488740558891967225360454605128443449411154275692307577048804711105979221527789136850981244669112468584440015829490293492155675868122580384874952683975293654084583364937125029013611010111045587307710645432945442561610256261883934389890931944644391623761113554510529255047993013710559067987216768767528406460859152104891313451821593253657300834923318810409373948534933178876221399581816194735096889171650172184654875995813306948601071536393025024738432073381933475030703478567527248097041252520936846585330508959515948581405305635727472965813833632406019882911169056280529590510344175096961447089554695681822124605454816222945873862270457013148890074501502251975646283233487353295869789049658555925416080825586595911502267117668177890692555631197373830695904795380255808509255994135759914845033349090490827665728045354901587439220411349655203084775588570946362753498617293133007801406091079153098105864276509135330468386639978088624677900175344654128481938199272169562227571207008337304483269129907579021173427769492525878154344352435173518686724619116242380106296814705362883086762161467565381111616750128801053125412699692173958077674624042902554481992040763428208895565816080115454257025382426410505642011578362673964347541812616032687926919901509023167466242807613014474640419181574511143700793526171688595175671985346238073286034916712291596427921936480741768267594165337390338326964362237236164575262527303746454216830573197439988058705018290747094563395116240361972960832013461405088041983191461543482517818707966747553863325840846675750730038704146640953423306348877398840953400062458463233184804583564458822689338834542085387635056253354578243003335193916697060676769957045671854687470598472157195884206746332339081029263008033126481124506906109857493305085426994673412519594681746522587629590333538211515387191759547392822133719951513108954203014014930822907426848945398664034134615937333825935253504832625197810440652487503818434754918598961224333449143605991745377338494188854085455689271126908533170923713193863030337173783022920236110480008303293587862672536459085901962621739714123342043642609749795484297616942842975680662962517452915438682839810515794145357430395723115708332417638317971988749795171587568791062633968390494587895720087902537904367904263317215181898004138389510122252051294269306906400600707158706720858774236460385352857880575356695832187812368113830068112565402717959662455502150879610625536145023053770644784158823279334643272118404601416566895504000354602188663831585596564030852431446659766372195058339409668940277750169276943790223800108312573731684008346686389949596995657588832567346291642356570017845503687791109145890582551603278516137256101182851918935311508567927565538632818903480761175799380154930338998884232983750026441715164364816781948418770240931239392743543849724114254110187851774690084690053667997600827848203805773003828178033007543194421624062222728346113836577674081361263909030630486352747312701550291179296402718690214414993255101007255726002064974157833873644306198151284919793078975408502959252369535503304306451670830394823854347791853689484723589716275679988573667989011919439007363971778814553586554362127969839943717035027992190548686383395929678602691528454937585289026359151143026401647247214541785420097253069447803030192917704525524514639039182717649910209305103517152832548432608179641942052710360555365544562501534092632056198183807921266898607042931163544243154160883262672464223505886003518442855844153447718966629885704109794108034161648365366283747735970614462216160720630879293298258920025840694702801306563603536854683253183926793081405373778275131609309026068423152475851210760291900910663936835414671834751633549581284235298518491053228454040478163740273592116624351850946017778697653036515553081223963694378589870032410914904673033647851080417383661358281307785666019283752365226237534257580355043525235909929975483517479069516078368549236371776137161100815919024453218244525614081373490772386891444222564620963802815042312115314924622927766427849149697298801701103656712434551258235324393347611163379373966376402702995117096436532010729160245287354769203652129301364266458977428955061000436198491055025101719321931158865516655781556769151506379824224979636872915843262278506578590497537340669236577311901479293671925198341075810306562281679090626562295687798880701317532268587719418539518192292275319591488870051457933468993609703179098504985470228579581665912194988266840339259746971651464402004443055616066939652700895727184027006948377884092848210605239075586744813157656337117052641263412472317474705082581977027032372938951051614497384379916487508558243823614809704364758437625526140574626653697946182085847433399660958596969413509179695990240500603083902918284966596649679553576862685940972228727267998488310731500972101649014113121387176463796248348313301164335688218863714594744220843335069481575842251925644274358416905188569642560913453009176614875075183263275909398994585797239167293306964123453162631630102245139902604047852366632605969343325992063405112920367488082096445331086270883596376494036965080470839101267283627191201461695435951724048841211175677736988714834443990677430986787367035649567811902775849404050491461062068495601911645209517410750497985198467298541557027401870796954661049850814088935479217255726498762638423206289375110804880345660701289915658437765469067100120636846461073192856187817973990995423189344345605473300010087030192707975273366600977387930098090805841475158930217462614963209811609269870273895356012698753984727595029112527393429806691639863139951209048715227643561549907993997492889901105404868522830236891598089438691974576729649229519997970297808762413513566807117387988502918418795847928979870866708378720900225225744433502918261515311659496876382797533519549179362213303804631118808337426436145693685121621919003416521847783083652403435601442786104146836928470491727644400484101406785110025658906504593640774873724500451897432492374230439299111184004313631594437956466597700407413132035658405138358133298892189926394050644849633455733274725369685162041588804926780720478015271515401067533013505222515697720584779034375885623723197628139010449803620634318185944802998189833101968005416637133177506839993597624586994739364991959430264809879718754322776025838417327921869153154141393173626911246304695781522154929736095927449350166946613171835791191987429949146695390677384263438545277618923959828658913926580652781656775711909615905694457744816883551655756350680637384091262699326139632330585959917024354674903812417237006229372948488021450736947530600782099062388866398233405240146957835089121871407757412104772393029504778978792537859888013825440017777592435180841274816167020501220818640976248915151160405899142370596538145966785588318407199754923226507884832610886578717246843682802904666533770894513797579922641388789383613599426885308726840748245284815959689169942547925964509831862671954866778078271666426786777906471108340314527657502586702026742946280664496837814747651633731716152935518420736250424082293389101823311631830830871547493699063024607437224598076141727037570194589428301281891295346417474391255862217341234036505854768378912858357953095873648812579808144152879845948002692913314220396857934329439725345509439847428612117339832237264796335565199180543380157590486592319459626214138852576353190458082816333032309403019554830526008925042205925624825632081005524011826290369906962720363055558188126021237404225175533776161839855670909412606263107670081186732681599244362397974755508565889822750645559297581920545645677321271851776899995402378868107489396777016957743638884314923471044706458890725524602666967599813410521133581126167645560070089186134238836566853161046598699490248709176952665798188062413435663214097131488659800790404579233123252392548245003242849699246506587057617079301449546175246497947932476000582682757641021479373161824149442697470631606012781383177217885378204032540137741462050360754373692514564108968006520231218081056540712490011503613233773015109006665253186305471296977670790779365659336668378330659098846716653937134215459767510721262488991671150759700355418591040403645918462383965500284711601669015877096761706188791632739757291826428243484666077914590761726383904987287109711385884075905951401053986630009457240541213557050508131048327739174207375427361234842777013866146959742713566096906070136931861049591170007460825424174332434620551047700632528324197473487220357809467808760463078700153500723568041656773938446487467141055609245450430334915355288934320044049865519149793206718845196466204409791077069301301272669744272630787792773404344654518506898565036865624467560932088868794495759759504310875907695160230040551406651887965215405722110046832649920787491708370172954851965438484186458030353306045276103580754708136852146158620364809096284596201706581937464762599983710351923589631562975947013223250936362138595404533506299693067739937787408261994467420402442718600469041701069719045896746030318522580451259229516791862822797008535165617749300992088451000886900914015664698945642078885295903341867411045925548880820590299910359457028756501625244848806002144030102091062107931133013958054642079778126618309489501801149950195650478465184995730406237169492723046410858187183490275671632171947432464567100524929655002848274743096225303068700549127668300789111977782262307190704941618621887057978228809448575102239593108464811263621034805914989890804077303007297192080178006721406914084283630889885539212080631742006239436672952570432000430200374721031744497503923746351093458217779274909024724971293954215700746554822719498380752069366283071998495187127383016587033617370481838875692764425449032228449607033947368106886700047177387312748613485930006881872924617063178746759300782619384579813747199609223984766759779906309407467701044669897842424530022618210643427354444828619812525369355168912183034888233502286259558446964443697052362840973649044963876597416138583209997581660797602166261821015113177987556264528863450004312015523006683720785463703092652078883753346426610882255359523900920815580992885102178327795415207301193694106195140664379280269646411331929602068605566152393841831666122330564371366630958045279906725453821362382101207549444694837396556546502955825679242111653542281782136006190623875740288559224412222592096562575705320193064263067263196543858410962804103445030225635631246322980965992524254340669747996510133024452387450893514454006104100031669552807523849090717688819878621924026915434092789173043742108880447924428371768163380094568356696234334619658852428338060548420869052722475888519257062638943240351685147273387846756989918406881001048982369125112652551147775886996550776726884438164701565100449477359309499179371311804010861936809231484131652549776271582827675043468235143737923353027265509161435813481895634890142973703649384573103082154898653831782990773101616769946085824944093719989147849121404918189755538203055091114078307864334031083468617261786436106386296441958387710015425828121825280927915790822094280876980565625621258588408325645072693703019369999790180657704269931415160091506275999833638407707239905123398981104912125076458817374837801395434937727427368027032961355369527411632042285603793366738560055497590317706575237606564352190926697084890128979498360958918306136531525286610355580449274824564070510945353037657257102405811290636547754849298324510103555115064546215824447059376364907142784021459885935407653366369718380241414403012645349021119993266581506662604292969239474136996256462828285970652625733772573922662709130111657774530251910639748290252963628084747347239877184893698888762318014006855562794724313021707059709656217844644036262165884724088048144091452828829447576282838556479983415680869162912059295847680662430081438586559266676931112219765561705046096903519436341823931652487978093370394156928939461456516579535127599236365954594035188311077126907238005396824659725395705352666725037071495272988905067915291137361592385956365550148965087994697441447858860948174270100902446568235452297415640106758955533681092682010023068600691648933508111885889375833674546502663341050210848422441262964650544205052117240164129528258132438468885424868509936820124577982750941329070576028185673350793165990939638570065317233410207576770766442722053581385831985957021644865518332445834929238723647003815648052178911545492866450976721252398967309327195402571881919511231432714908065852061535782388976102768315500434685056689294494742817009494316400533999709487099722333463983244705858673751075082606243918842865236503378467609626810150947533511501785912115534435292367408813416137386280842468077092806905519662991041179126894227826578068209565903569706674094426782838073829113371356951773828199609879541449142525879723008327113796371952911029690733239349366527526873926145697629996594787345729243630639146510749828910196602262988593439820587272126249360726726207208129329961123158038174543620493686820435613708514692559821455799377633427719516160579783718049947811938761883908009161259815037630775837022712019453145856096925385807183269459482035393954853084793530495156650083083874431202071947201503544577313935536054659159621901910753688168398286965771182064459467957257937519710450901068586439665810121851179915199097942245747785627695306828555107951637499576112931460590861112627800678499266881401166952528987329912129058762842695024170455678651116584625973197202822944364336414962816379944263304907583598029853184320493793808267890813915490402949493371374944523218153993992465059892236502381714162325094032227464378937389060185049950097902282559380075858592879970398436765671499387132484694096178549259704470659705048230535861535467147367332475725215149977147058112922072729647450847609628291985875958967826935057710217638204004926987738113433715180229770905493395200561823804239404129835960751548720632589250351782216201200747030193679445345350775783972136478681364707448913129212111318758949279274321218905946037796914600846585772034807178720983745657558396160734350385915332279921784356246695984950530012688899761535072427221851360514143034911464370233335553132760797068324157213777632250420325170128741220537881678175550742104180916901450727703944409550345262107849567520991236980485598065244377956094470876164884968924124483049694029584238261140507508308599863226279239284866147004922934667425157904393504156419004401591738109552764456545933987282611051275138608447930609955151052402976696374324306410215321953667653872275231691404155597227447644389002506773789823237659734833381204614370538582156328332853082696397793290538055096766092315479416970198153556122404374609294506495367532452276007821060382359209932317243772824562524127664228083375113334201811980449530054762339966381557212987829959550368598242417621123279509961371177477772598026462243271928015415515724464960948642512130346776554348296175169845704828837723443471371451692088419698224782792074080400122842166308193306067546643468987282020565788842560816420646945015626967085239208580255447596130936385626242782637697497635920663236372175012454339218694297914941400220834641898908160377840139046871836209334792271844152564571671001673036865845031226947788299974146702637620854222754426044533087534430573109505433613483047551960458696988668106297933114677960016513433882941596253005422976893956034374848620445784658883994491626281168350224404105473683976515834834998287017649226699812870125538684666887535840493667647690215985860614872811742430887591687374229828976925796761490193877173174169628604818969853717793334815589209475027306895513779834074901572323527852216307161979490789372951662591470852101603555518446655367067081584836551055316569837780196860788531674123704798600656998953703245225328176317037663056388140560827982397212396834436460928052950908847567137624837195272482814438072317927598676342151324407373237927801452021113310100885909342611040836694163128377968852955416956991954311443918243794855602896480191474443672898807890359904055421506028219191705831872637352055024293194251341343132830354968049898115549413356054005528187238744508081081644426783431553716657335368821253662018895168660059001972298913354575072071141103624284642156943617142012022187250464673196991967550193477602751237322000348675829695623963030730573549413034234603290628428966573727601552552381348191188237584532606664498641457766140549349251851957359380862276603664472280079703561696037187768323524788330146070335637293429591460914539795870600314586841064091305241300386483849062331489117033746347240712491968738237546996034431109554817074542635337207303343170740078867849204127330785426361200355432752862390028187797549072527125496203958842788488787025880587428782568996268566972874442821376887900708793540880100904122412987971224280424306007708908619991064723957742257079118413706199968825669654989403066956498598663565653711737034549997938068794453486847692215874413600999514628703040441188092384503345554827104620825043405275131006763862684744328578584187148925615056018634946256428890203271918453742406930595565246155370702592454591233868395825828688617051848379045635995562755112973556194057101088697877254569171646174518654236561803460339601521788675601996464580653987483866101200271073528582347790905047196351186159584601950724540557191118597101243658885734210953377977921603582413166160943272833608194570783075409236785588866213135100021193615509066200662451901933839728975760539386431107022434064101806752206333051610214103470547633470979163197782752819022392788201384494509158867271845298673200003507249781423759481434840063911252214992468251782772686379334019073820150494324773618486449888564609728408050093659599500041038851701809603625913189702621715414753651579888231304399240890937677410630737321703142384883326842501389714133677055582775913321150260774541846293335241046011839788003952857251882180156982190145391666283333889876440677939220707090239006359666928345686178357567387579204090569017698411475256949675313079273988495754446859904158831765582621402737947029904549848853997079167123965432557118047972340950411038549131700080323276971043650772461947956735030761776935332071092878107043086056617329448007664266148730433504129317646105822624469140784617564733489874516421760681864072015843560931541445218011839194802450403196230497834407089118976286370879883164558999958168703160087793835567593553871466355761494524167336843230863821675059622210517630029094872140060902700333902271350043021119456820462611240006501226092301063467283383594917250430714674269324130695543743312468506402931831223606102774520735333319219219455997267040959789948883797313344332961810908802113875741073874022356794181706965885990460271715477515871230309935238309306717890094039325344865903053423148281732824595670047461706952317837144329461224001154028874817541351548782248385047117325165137668752016786747990444160483450391331194326564657501549931002356527241508719068692671586160300393130063959666094818426664073338580783115141202307246654944335543126769269809294568902846270321914071161927654161838113601112784750871426026397631354147148600441394656076022760253526551203997221011046845190363435178708354734954492867530785700371655327541976183621491622242577170235178971643626427166674205391109502061530960567978284731403034645697503895657913614757316389617249405173110794949127115163204811584608304848003983103896259028452531743432412571804004094133519623014063037141881084345490322152732215198322160914265602821986611032445276292851068096240987001201563012858280473373563937962991170612450187707267941394900141563961377222558905715108314456011279886621221269141317817479750090396565541914784094692703959841294020324176152350701125629137165672936539944067902294376978738493903592311867929783553856240397752508081144416581080161157716234107816943613122145027030981770683936138685595187962424342838795763672860210877857536685835174907221170186725463001018169036157180402962636107586257276467779075464957977778161438382181949042116402608793241335709899328734758405656071032538529953727015751493267269332278194677164357016666063078501598542332852016411044136209331362090809653276798248862354946648740825784086343235431059201146606072646740973827525273911243549659367418785792153081694738696304405517404851175126799412037700012799826607706451041480096752568236555136222386052844608116730265385055920238288525680211804143404730527134996894242329241974992169062999422998510378824802906138603986087279621649523716673168680872405265554897427235957345508117278826084282177254496635272227804714873975830060146073659439206761129945915901245691395158914357625690844524361583752248380088442023390732492442756964827810946160663080696708395700153231156179646768011109704454819023161037253430664258385840569507067266792146377250990311286387227320249703848377487095279793819680679384008236759919867470318047941018199902250836035582974734559059315747394588123915650640717074168875071030843008185772213987766704879608710305982481302790793820729957826383057523738692820041346790895940250403230865598956893150249234108496421611818102070204762636734291114745659814956385057346359169984457706049267867460091188906135575574427690623177623489176742294644501065996120372150788922422571227307090491103303265755656752141646826086926633030865134470921232586020697970949344147769452566075972926688897666416601220134456174749914217585574134821830633447694453006913577657726566325367698977199248940896659930655175160864705552232775855664014067467779532826688347986108816063938524186074862450221544723053182528037872917786708910249049650794914133478657634062578756820307875066482675113241651571740214950813752907390995533907668972508730872074251829774867878008874153825543256451859062042891427495838591824579767723735145877783592544617239035430909749918741498530066095685979188243884449047463547668347875591614939128700041125445521488442188532041120324314874561827382159184042606449914238280070187441777399090245756590298881004151192415162259070432209517058819314736028767877714895683428050715654392940924800882966249434182513800478546717552099677784637153305395120705484687935498866913239429693643328657429099129117157549092770803144430807384363838191402709399387200410771156086367636995370019193206562545583324154952569502490569930050582269709782204162127140535309467735648861300371010492824968947546490972825128336461896886789602511178779615474069139751805828893573270019050368780100330411747731644235456738377149820228262952477480685011386203372413395468172401415316370439614751737589342366343055516518570925770270492697083792579820445331927910490796132589407757298313007818296099890984271362467289556527512604099105787751109396350560425154052367565647931129486907685479366181805563521347439305908116111168188742189947379873763392679938227245361592329658453510640948182792733938218123971070500822170371526793904703154428887313924754195834380680592042944554358104951674757559346844245051283788224020501781726813894212980730661308495059466683853135102380719697473461629511413782575227223096750228753682436728636042451753785721829476610625500227859052010730045183482817185143862001750540199000165220435270514824999275564592531436732050050698432528439486425093818989411637347329116862403017680064924983892080720293492885362573080829773188220371296374144930719423433587239295138157600610273536877136501727162852145379672589316233543004269287019066700560560008715704486436321353240555231873457084334558749439928209369219498279651992004110882218951244005597286076885200739344162936965577026420671663483456169842196675942470494231205105553708873175428767006990139544596182336378505530141133818709719601041006793220916718099160020137281601137291773215586682273661741075182914413388482072428870289778007333226029042764854285838150370107340225714376490951575980181491306605366490202433190288229151107100605382159662811430183064421817341325146013256690839761586741057941834360657745465788073291140949318589289183388737515098316685878402902968657273597669008661400050503187799188414627499808082372836744750403794358898212965337993064797744944676165140150313254159591434402424723039916052680013114283171999439544456730025119767858982193171258837498444227154594031010018692661753702696411232956494336471150615546920744102199447734133340654975755824588181906143496382710010296946851901909525340414304938496710884066216252598222182902540494325616099592164230208218375073347201010351797289543245550140266214720206096428536869879493186707174186767069345483245599150353842801226193034596409689146217603526729350946569174180863426100637098885280948035846990690260065564323541782917233933155144947249605152803646815547837078189270880933646955636263431275800547406284587286608151657207964192827578079779338954477164534095075257789497379938219036986387781764641947856720828059254536722771091279264609751308449618077805001434278144617385195225091953591302392605748930095984924733255691717140571299924158454494420489722187058957988819248856342792767328799225329661935775054543919860068347722388245683975436629374520191927182474465049782429941715164631938798252716790110408536075956531207542269726022035493706880635622251790846568017955763852996971763867870374443736314537999898951411357189964675932274115942007566937450146491494050930540087579137039457715741661264774173794169960776287211582493831751370469976283014803760431523885917252194012061421974132075107739863240701126744740739346153337703999691209968455706801698415919781172946261569232691788977226610638027128050111601987965467879788882021070003284068447583922688371248651440553979321146944003337021465524676527901496973027082590730417455070091128711573237061415548479537005913423718897960149487206987853129231661954745984849713061632988605855430254759689862464537338957020470998386241010316364008151804351060139484761543224804587668474983116202016639501958452689736340472062335715988358490452205696368407573092321913324698050848120469473095292219550414505381036720664266879260649082601854048802769143266887305502865669783652492159846337178851119962931854723432615383461595540359796539027068834199507922300070745615783388473491828269995397640433345677592176280742281008279926758016237214772796183270865060348709719089732031893554354324576402441009489663477170940654842399273096599501196618544513716708907674730110675075497985382353274289187152278577423772639309265333080100796408021874891664880474708162239806632596835108623092012504649769468019677502626834396426108600170286569075187702376599486730347843977029478130444182394952536425627687761430254227150203896345583274557325632053181125692361390948736690337169568225081037804431689196633756050487392203121443919868511091268958267396505515493430893295917296859491774410780265923390069741235498085705218749987900674636904376803183860340188316102365625410731284978569024665006877503359042937501685625627388979847401826746690886073508067787284603396783604092912267722825458350293851157930473588382855513799653023656709540464273509095604638565582754989517638244493072974090368411108889009662798378961680346232138254141313289437860159737064138445634430336641003450909497671841401722023631522208046623018451666957577329728435413673876026508809931284126652229977218708938307658502221332561537183442707843637773089250752562286632095822521359004048431998802161766162949731773201536229623591875173725693625674356670398824295880473572801499761160877712287383401054783647784880647962452646699323594168478987669780615482428594679624924428225831134345738903314148947449461123360999313865152146519111878627518561871649881075291200552041370969296994244094738032047246471897179547545799870238649729306442528978438948734202156246697803908660190138024731420488914707421247752477663972077195142535997621183585786277477032698841199575994762571394929666937462099239545232906614554026960697153607253765896310947072391428465808348527137888014141264760260107475903430424364662194529133283378572363538407991371542259265731903664455402107107152715898235832072318354505133587216484349865072411379571983839031285686943649851902548413674854838976153315401928105685907196381016228064686321393717674636279502025190593283475798098481627247305040325978689106606935260951564680776654736872611303672031254201845269726870960733306249045918499423501744596787809609326318080809502513537631908269271187840573126648257624870357880298384251316956350818783787036909809837745845257545830133132817385157862057138391873466014694345151527647294522276207782132086417629472944937221634928173445298185003121609258914473263179670549612011871616516882568633506545041302787829055801886871769423155887632940743832633473254351482040776995278504921478992420135321077196668290721545978092019319658741448524822135861895063171299121055672587893059250381093416733250113383508946097016849015440946847490601403055951088662919058444188536496507973990954487929813127539405561142290181386196815012400368113133094156302460550651468862627448040310734819584619082261685019069212136307578953872731161131134013954516087154563751235841271979364926508174423947579665335385557052413473829469995154325062071234917555361676948139580447835455806093941799121975777990689851957205874529403879181465345625142613307117803988627208662207830420545674179949976105252693853374620942100044802922060769589884754150741457205338902567604967285080002299516226502791599274823431078121840328160875260131472306929432063049237414392685503638300765936819081051587146459705976153735084146169378015731204085248846382576074408695735917153659048985382709607583562346335355316083244114923368465843465295926793265579612284655622522914038784975225717578670767410194650393981182405685711328384697939441355975563771007596703052892661413263438921659556375273192403017961043854255990880217940677806490060633260752663371768697517836644487339940993875324363792290555416582252413868434037568954442446293999232648460772244842918390804983460278698250337301979639139606907647041099137268490241657133392621894206823044855667110742136433954466530549767553784391080246014008311611144167285465992978214826875353244513596008892061040946512506915908759315389851071086230223147203326391811156944080635372874795811353886998063514555152753236847957984268864535283931667362551181003092374859941523496196279231812386761714142180637062241223793413650898836349733204671600203585337009541374162273801521962565798580501707028751813394466368738056314695737299375726963014634199613552478508449364739465172329038766878713541625682681325543296160705535090662239845730906746068986021197726120959274099078609941723333067030996158095828003220099656442359150917429549052956149260589935904650004069418589849927183788918127493944985295789878526217314354769563621199862493692496398544901326263353926323217199875297207821074688669508670637388628983020570730106136236181150494065445020253499273166994473509540758242070393955166364916528388867984313065947518328101549274410307368511070943491218725511218748846321377612195925316481855503929044907195297149679155956934356769693615145938631676131383323194907369012767526291531726668709456935690698511978585978647800262345355410258822073162251642133557811739915384963001851672127544967370149632833324021372705180023208184565573817982692037654006585989809380334629801362902975298146327411171992936431965188137092236685546922810868461639967882230634443963759511043451562516253400565987746790425366658315538201941283271937464766371250069072592708260398310067013117335561675546433428158674767194904881611649694007585843023793738109877441016692548743221809859101083860443447729966079390832996747868076468894512337151669167054742233610450525398724473768169688350005759342894699198032244688722142628659246897247660158199079476457484179581600798893175572563643287668498561822587325433344520959177086402233665194741750679567922506752334378017186371992142312969362604013781466586175201019143989986719997072478554141681654068924517509968745292823317357165350147938152421987968300043335131501971678592977844360143240471830986003806734613033265522865347352264636676228987741327282624459043755081313876982916493276169247503452842349423394673678217596277029870958078668022633411576744661816059962982897961341571480186052686737032015560502372199469287397031645628962494801320585882358643733096139819744601550915115907113069990864721557644757801949435202934316119689573199748343120816070645600174411054951723467295668036699304076398790743457145328700994841494897728851143247256102589754321688082574522307268572923238994934726390833963468236731419011943395238287339174184007296805066058324567698706086506186430599526925219352006062171709416963665455363788143706920844393407623043735241258763829421850347511599749884004111720142313348067624580357811952174086005198426417744219305669942224687311220886033077344924331486388354208993134970988440452006233045573809359119484571416315246388628983473694485764986334377240177426159595015889377801023396171471376129843091747605842479080782578726611446415732174682800388659884667881386682392621710919186570459985159842459311294976230347467026326661563159376969770221430037824950823399042777039900774725228145443950615100481167811131523197189919546653925383186697586070214330655351093416746544588519099510605526118408929515902349202152045829148261855957604548018000331269260870997562804094215132176465434591457184577426715785846264326228733552470836414533667026529432144878537714365543548738168781751728210294750811621049290638102538114123741042993400447442241948487649488978259977134080985413790063215792760777125533936178634091536122265396050663255945743948057954848273462782613057364222740263351517986081702034196476262966043060267893451950232399114818317099967700210848556586428569428055044115449695952362371120342048148671917544188637689060648084921296522355242713845254110331526257931140731708492732649486059370501926326056968369292852269247487266129257928567134270202599059233178936526709987594885109624265063653425229909721401433839660463069197123130166887059463930818632824982215195343639133315447838671313454013780706752438758465785903302923797840203360589106763141583665436594570165573433485373055498212876412363092828883346549229269085464315755834987015016243822355533104375711677536015277885685464663177469725944410514659761886277912864353070293982121512378500402929149688070713608386522241596630909026947239976200566834714121557749583621692546971730691643455015360879345550260947148279255770658322840437881606968730239773922685838981016367127339613833980629851724410486614790680354483915629731714433636018761407586596756191401562079849864063661907990835541474616093756156480826294348276139621353760738508354541169568392211136229632795432331250195734263772622258912311019393802834835669989564265823804363829106513110298175477710862794842856502421141040425077360328243733895007398682329837901063690721899107252839312764167808117748626446213675050344589124436624019161438779711578737036799071878661062135556646806372377506498491607920696258633142389000438089188050428515738084632694272490236455961243652431815055653465062696074936795598698043258127711313263934575383333996853178435291868653749304512125366085876010675624664809202900612843927706530307639735603476281579509683052701764570941746964230852490487495166572883796801493445925650743345915739494014125198939485955144435860085544102353522963707775982336105102243502809539888207904838320344436917445376962676012989431289368098771780443757652601476873547078645495024211620112641534580955813753663155452130485815938934712415385846455686892499862307508707354198630867519047635209336418478747913126505462993250242223477902603073767157478504652249698394911746695821930295968196908004831995023300891406575682371120133858784455111633816756369663894877708037210525774675829711704672513036704299302305824964758575029393743692936031664421499166062953209045339424674908580814598296314199913834685399672985243347132273644477257551035976934523081270497059552973501229217043203831216459389636100012992998431782983456920800945364161496271874669044782735566541486297014261704612760810011447272249615768671077085574687731956282059077650569802466967768307098948125139152097330509176545325993302348406798329717203038333037500440335431156146197624847371165341890393480835038859084963042796303209347431455339313375662232575624199637147010151968656998264399197135479077342507637520134955817537877701653888072338249175752722778584890146517987983547919087237890770155208667106752428818376468575281086915164736989651254110692111019122077878427178510293736391674199377396956867317793004517243939119036125711317908779367650178374595942259762696519057651852867482638598389122043554685351150833758424580637393104069193151869428764737761219317399387338536474891102994864127557072111922919892069412339034778558722799673231045376439790929783927279985866462248503266413246621225872524490899889116155191052070337817005327222972545462101394780492618886226391399802661497064507656612755690060863039234847274027284259878439388795600844899910643690329042741021422132993191951357407792620499867966673139333459698448747909004257779818783517027681812928133301072426911443095127074633444843350028156492688890923149588884088341694397582678821487637540391313698022002700650225431756606628710253441993314149809875202821220462196581820830723334094944878193767182815579058200379810308221942025108284616848719006721927410069135286829949841697102544904724410070430314503758645462269510382474799224016127022965693490981668109400602278367071082357694957857327617435077945845791426970229326497609833583914734378285975916206288582081841021511261002950361269447372453368940028665085544663048667999092551442063854482722703943475418793935919140268329802922999360928917525336482954049085789543944302445760681819929993310890440221917664077508472843705122519567209516491299598717398215266101011211036907590378566742544581551256602857364425946653281954134623865293273570948371950831409876392715236026865241357483167027642010218268077819284357222820951202610551889485868045012769622396662854515402915200659476241615105414812075164032353849225005919032515237625417092402775925209208771911505516458491393187189308243302602742833624384322168091756050595905089673656326628138045486907004257205215006385460371384986592516769892256555701558256734130616562807216969162502049130421286678770107436166729075050611116325499613391966897139862490201905422907198186939241561099101405019353332580756256422761672157094155410656993433295623829565067765364833500725228444326904571040751632474601835540417378572300180938889316614208297113346766281872646074212758727940550063558925728813879112053969091790655299508358286735762822701887806110713437674711504723871131271352488468228579785307990860880577319067818033553115133194560086316457280786488277657649921191833202526366143907083979296516489324847854389629866670569409097054650597731970111147716687167590684147571724008602773989040367799178017251169434636001677725454072337575880862634174745953135194263711118064832012934288830019295572068762382318553774355894781343690308445191716504449189300712278294906296189733407711824987018408946571596139500998722500410200024071840943603821735162920716770677316860400408736150777870629177100516164874506206871088323838276668701961044156735039325213614532911093425174528505518072833730109276273551262866357513856849905412482827835938255767264320661196342216717782169380339618054953551515124172679564117454730053235433630899919875654891887678794371316049075169579253997042738906327788048553025228219930329092623509037101195814322799990989571134626313032863065065446314138853643248037815236119196041283360607487998623500438184597061832534861249219915932783553533174680736870283962058063554214581974161929244589422966609958723061854798186333337835289944430422597274058815306540884536542766689455165603800110950297133117778407081536423317230411230402210862898867707726947512013964426597948430446970112469734153869787049850388025349644204970473506071322818731463820438721495547294696997438156035485531676998752359480621989115310361695266879580731221699975943316517975733549336646766841269236974427076681223137014990352453431597489009813762906937516246836088564795209826915008131979431732558070081447275307939348997855755809168612363290029622704941762455360702080578428466402828266539732051087338879723919620994058258413272127739785830270025973913592745377231509477404823502083516027665816954783493387448143434609834704122034785180567788689119990905660515835526038666845896892317864981233848286855831940512616000808194345856573067932946725780294872052978475871367671866336274600289658256045481512585725037172479952190849287756010940713976578706541154744909553534145673898325372567166709277732987036929145630753415681411532119178545800262391404511283352313318963871701285318886469221265284826766684681588674834292276473147783044009227657085351817151918635473726401981260038832028595477693065547450975163484764283455828567899490536948246246780741501958279870672082742796807461821818424775961018059302231053951027971484862361436391936075243989076651376586239103127513314612920350035897472829727223112776823120354760852066114606677397869493572520186707739888389675040026308560009456352728850628314621048365652571438793837037009856463163036546438157186019738804813350404610587512569726038028730582125320941685004916986697662161639169736132806871585354734899626105375748764255861319926759480745149872694225268103616504702994092211734432178634871431825249464838372265461737013492837734477376895223734397476351101292070032892535278183858169678107380860282125896163196335476820564114794847322805059241787034347456515432448938090210100327575902868064745108456829825448436370751809558729333159518051615740383632968729007644646491794708223713007189553755962289920069991905940889940857373242108166496148484881332376688389471977130417321445707265320384835006245091438446142435274658582806095531985858609791140591220438819466983327252449156303528168500274801841495653036728059367122990403569098231307349010670123309556471159720815617810971003816582951777575829746036918880090501282546552923297411354476619806624148018669649057159865700824949635275310154775652628082624924296911001364998241036606352059827446663288547868236553449425171253259580211563152633758657942306888026916206612581342313328539686417153090269528830968035399076496816555282967216443634356354468159844886257289273475049502762404132277798064343794186600748875581290874301203379737921699953859524008879792774432270155032790124701577677969731091605531036625298110049369717394315239480663917013873551020201701670814952091350955727569563734160568832118588659051771299241952533842924137592806479172002899180049588743055230665837826067140459062693419366810501079500394429181590862734169840788084949823956649579245207152068283091715437455800022351271153867910018978907420651324390221832803689703836651928201399820242707012146132585757375806189827602587117766162658685594409883122174938914965847308975694671457914192870799045497236035326630783705774723601167402074656818450993799904768091839964301677904394889285058154372823734712587556372544363764145412392109605935374200878773295583753905551560304209040166754865646065029970255596205951086929071287936247497311738306902209116476874144558789077857269125147300374233739087364947963585608314995242064877620337354836572167383633752900386493542557676485156622148239423126413454433173146464599752167187455899016365619438264432077218891928357450119480195928424973118334550779835841779655823259467950789285763869706217095980800124519762102153720444674645125938464727929327784941032085851604348918748989152494940751231222639556507522991079059222781672766967443234046020161962979317830936574535748063019616858101409179627462791910269914597276907086131527725872426263922362167922662256268598861622835191084358650738033548367670777594178285770521197621791867506156475997638468318166681638597163852717569830371622899275378213213979047988371516501188868346908233153038793790246399221059844767416053747720224836602932231977533004064242424789672487237795553381054488254033190852014215745100408678471738294582028705319194648637437729722037555461715804455696069810589725457067317957432677316860138565841659292135517905205253371732046774244683139968219761664008234813911012822811097385377042557598730617078115943443362620609274597658265187708459963020448510414484847148256295661423815359307652190173227154378945873567817790487205872557621966277700444656340557298314313090852544814493878656172654246191060876275643871594414168641947305256116082997313749809784070970612600125449714815635043398107208511354755751546327239505235508963572853148929144317122793893889649192994486271072212433897514577773847073426441289532657596663333549550612250996163821855103707526553979452559444563240188034427402046098791774100278061275544725573450992486670457643215542001251261588138560023787318675449120985077814603792253202528025447327699322400916069853037615652370141153827757651578743862899959112198223339060113477482004660852996889714212476121744352986523362001265932727363417446850347879983871736607231736763277197225110930516683817347884505771341744200567628636494614408033619966748075944438540615710359022962794831432739081385826349339727702757978416830798214956658728417200101729017045227764792567705320103939772862362238778069080596632295857876255614794190255654738133068514880618500357426035246793963594038388800640206423744945541612444019733021055077809543292000252569619792140414796569117251755348766612386583717018174829459646769283044660050256099325673080620117346487427769842884443033472925897187455462081498059374713949829572525731435904786296119691877151221738534488915499782967368422704192979542886191391221890569679804865498846220391984497607348567310383152665422256380034268077367346588262473455842002012235155479740563420879219928681648535625208829117415624844388313455815438244359274041576418299124687577718985383336846942628317084508366942274359344841833164728243780130313603193625855904878545667801205020484749537731723736862602619984629251161768606959583854860094857139311033551262930202945289941472138850574690528945721281467548881021295907207922121318056294371343728474275372839080408240409704357133837449355393469526715552659694502976049110195535485165206385878455130023056624829629163632652069192732949871141682912843047363789595441637262150086304107237416240257225935761198834802261074238488742753334162026875359076443181132919331455935455430610947962681691292553145782236187126644226556447505212593899217265319487751131256873072090272795119651747779359151840624698425204541556842357262455177636330942338254537070570628430966115777911046567266561392218936963617472449938956833553390828757983071123930769692219943630362794082612159363203673659465430705923198639972659068699841524637553101586464402985885759476868325424586805240246924442147532207949547953782038218784600758375978626143963721656771449689941443803710203805722700828818297870425154910094845098249515950620419147293260052556650846624109337114862012700357848090067732211371270412970432054209712269982360338125225729322964254404734936056754942183279098544293396034582733159926442108063275314846172275747676972387367869859361991918060796917192838113986223492733397372822788497315330265860372442408441323221140350544529025052625214432906958329599346297243997455450048190873586966814617937632702470367982326073351455539302292941193910997821996850916869754087303046600842232523716226085694243525148800946229033882372006651762473783236840580584505714886459151867527503200252755576489030192633531717045902137580518564918551361200791246240008669768846854070944512900434961555129681987300786031824787418920734097421550258614712526360728607635471767087015181469146489718685069296061545252944253317778188988485824525682280649857260904609601426011370399905170535618001738711844339261097436483154507687121900389840755094906532810832175483486848001840384335397728694799701611647690424877257009888877004010067094631478206364361553045387080137898965641497410175922067333072970782533080459339863862073169021503236296974300423715383174160577802382991979010820888398330489481145553275789493914043094619061488571373968508260093574145630238635587226761598041524894672884804003197561484801742600360693465386798023001990194075393952126255790316668180064821280114227662046904822049369633786149636674432352739427399646015133818671573930832164972456869291839770165349269881289183456570760475803319264445996513943723341526394887881282221962781678520613792067052190386656583256771387633673974723917587186331143674677238303252688067572242403476722300792953419862275553803165489290784215777969342330130108455239830082526494891301554136483512596137594154980957552298107093382092563757730634808187210917798957772045336829968111968896848615945447094594505826215409166791026810488562501848341378707142445035701274982839647381456855469264067701901092616103113697878403577375104479069146996869918237675453581624570362293285315183542348965775077686572614973275106162846507224526565581982986744596928179983695653680566445124649252955722362947524190490868811872215688558720571123051558182239710827097748105079738503529436072121068694401283475744405565862670405651149602797108856207674418252722883650330122103598320358884159382612176224017459996493568227684672893456271530339895670587956958832189782662562797081475489568977188837384332104969726102274823398039946935679801055736930772581297041958227080483219332383825087806377228992665823803893283842779051825766854678152578184578263060689963222328369914179131898236041005481698264583258473671191676729680860523118591111058448807558292771570032379965021093458302800198498597682444022782993601849478627713254006659196867180356749875297495117560572587470167104852616661508475726044212477296737198090111442652841052110471386376922621753132398766334348703812309278317356997310992662161977975198772048478410912796600873712138774716147644462940019800828170687573115637410376784320716515915137285421311611645793054232272230144397307782103222532046486467568288638827840170928185350194280703804535137821391106966498831853435214471765946569728009421918111321415502200208900771540334436029688116863071413807646530737652479767158089925118350340927638740084733160279502555217861971110589613488766450718658110970254501565941156691684319784965539553570081590257796297731916604764609153463687014305300305180981600310493866214413744153831227621121942759821412588505371023369930598235435266433862777548194674060877593535640672558608190349434559143844658520359922273289624628951941902846494250645952665598099847542340512713433382625169388892027478467561297587557846964443114874736809496438545706696559490733285614702265974593139131062461866951262945295009273317331109268114181355537034588396354395555672157240616257576168126167530388499616669889573982094386495243905253929987472150378341909840290234710449416528136058873815254422423035018497557348245050892334214179166111361076364809371980194632600365114699660596308984663001253946464739348561753408967276604008504263293194129684086490135115754037725024651613621109463822919467038377910885260786235672003425078210139124930990899517432387375243312086273976530659061882066583371054047771025389271388170682248533346858140484943219187894687868467576046326699953541975017593132776090153390469868980329929969305814448407924660345972385564786789291100909180351191118034048582190267609390138129903421311536183027664635455534717529703934712409855989224601469613229563683823379487045961223441751684163594577302476720943001885681222436071578675871482791980111773733803349223792762387439833564851968832253354713332646976627739295214687109100238640060723265088527931643940969046008559440690741131932701647885927361793660566246393063503246229538879153697588077919562386762060450299078812809423274757472128052413118780383641517952738956855484683116424129443677148218633469206548306272211835696817061417348277902360152286382968707830143971476740951624874843062365835145878912179514058546491358940297462228109854749282924844780341644878358419766442235020929889973695883421565589878641692518326983805425711084833058423877467013037628290133331775591720372842882834841413607929146519390502753742643893092770965203910135344666491097831162367096907380977065474369573140040733321156191656656825515741110440261547276637980765216520875037721816265157573787701419273182654383302262288606052806908415959157679848715999842425564947407712817637146984836452847642367431563947273036820171554145527903228305087014949309680337271990154543550275315521068430993612908580015089469438039860390648304326343920422480824976792966330914464923653852426447544922001827127904001653089152566105377447875106274965305265455867989605241697910489416955416509746605703979221337115566275112754516591038017741126619172099168030964513707269996086963555686054870841861741598117782615715159835640104857566995415322353469262974521556859531181225157465479015652598771800755361419634488314228603679629125839763609338619798444842806044925667345609770351863674359984990159204022264867991398078550903855603581633042357886388296716977483605774556209861685562815125186571723090093095150196243345351515399953872435901387638454378662092211410043213039490742775855972219303163268684944248041086155788208163023032113478032889933090082980204387882842104006426734565296261714519984533016208878276118517737783154931986724909050498078443593547439521144065956327959646071477087132345801676320241369420333197197953891461622519638406951132985034282670750798176288435226600760163962852738608175285603384250664661244274947160023562747418977557702499274822099338095566550665354294990779571734699277536520712121347481933985364914182740378144802673353192395848289436837049873013159664534679708972118759999620997028244797726594764294248593167698297653114474984559625822772925535496839468850255106693117713232938209620858736814823187642041601263326195035874480107112579703280589793382575248023634274045283969379324153351283389560996223236079665779003756867741634480299871056966638893504038783575022471201278368790853745836168953805720655265815186641877532718384668429973227449141504894715759935566653245341389665565197695165380992308489276043450604560509545996589673532238758524306778748128839135865321440545890052245642397727800806648765863308488401327928645627375182674366608235635019004678609949166819371013371461231099440387100594900889993651020819543030248601863071763842982912934594731271980972489215621380159578799938065553076020371707608063351330410141275347089877450245721745343290198242167803882594707825111076662513403107088290616316157435659533124043534031352404650930122247478306690061528694162623805473428794502939982307301644391470218490487250042119378041871151938601671345433512542209838166408910213819006496906108463486308604405550756123440453030853616847656225056697002565924886405674721994270978072905501807849852034232567320527767848522565043978197578871385487520113236070723142068891398588268070483393292132041508226552226673862584850668039104020485299240242002884309539998087480591995348983697559347334765211592307192057447591923765198323129309969769103712384319534253471680616606463103326543030434971756376316212710618235309760990016148164741391296396374449568378251418801969588541847516740929291932046434025023177133294258657741283506238697191686818441071881216269739335983265258675725740223196944681465758693396908476577583967298960111688291977429394895259295162271368096213149450215444263320497802939070577065058169350378819447949548311081075600869615493985814223512149918053146725331341997136890436072802472452097428568728725655018923271026070063483875723373695365961976134057022401183342076165836367858676699202937821173948926024262257675133554753187953534507030610369596498899144103907044020606180403418015908869481487813320248974749767193893499425033265762565194564926076681438318554203210637609962371138813588409315441791223134893651769593102976349866418581361054378578633716208777331043793767161798660548315134649492456678543578988119417269585948924513772521962189264694472793081826660878814768791686790837247273164304233028000927397414187765357856011548851881353648941481401367895256993819723461887706367947949240208114699311069541908519661708874162169210573884140854714234790432976736865632447176785409733820763259531762976357705277676924801467206932954154549200768634680797778575021312265266226023822640953386575452638144193243765962584871997744973570522498129669932601694296801865674956894261601587637141062944812211542087401402908718966375200364082455378517378610356575936375926027415604361816782436032241819732875899635315957183313212882796888139947821296000306891245138487922428378081161963739056965610530704151307278828329588635530537987401500606822779777212212207659867219510894364013361874549427416077602897263049895496158158201422717443180321220621453740474400899640045571208790730462776838433641982042373520948331641676025342648523540048729008506316246063733903959438586611974945040772369944761988533111795222752956238596967063422507957051170520949636999647067970970747098809861884083378736432002859501493786415805981891168090283929675680712498292330582647072318453219063480123069994009654059258588296902258287287190417358575756225492576509192554415320467606725333494271985394077555101349954018613126706808957445091938924117810616963143657081513663384474642454466990972387338870652067252485502267089706247636321846171071922104959995284446053292517276149638734618987809015783970905123494323237323042322995056640088558141342215935787041432940380673943441208902336834272036354097862032083998998356461693740317398537917084796193576511268442030123028812440203201564818668435872204285377682881567156086056080144836238579499221112908897757210460019750948936583465707646861432749757257929597985049042139152652415757264929643999954703415727832510762699841948455526474455690841173114768807022552199636117191068267244735564963701786859804374913799526493973559928156486564167279265626615802773337045465891847109750520762563037263548606989297359580229131783634832678829328763165952008148404314381961031054933331978760946935246714913929907634227938701681996119335381505047790466562351060099449616172745873241220321026887487465458303756417265792140182096643801024169663045435191211553726534948001350107983638319339409038443728892013409854230105831422060761936214584000506386139614694836042487917961639969348700487936498963096610330787093948946919928869666423145415824814640684418757252882859773824966075617996910815835769360405431564571611882677522196370745679310106729385492456669025997733686917651999424710372044388243418940004948553957059619268013158766030272406638323186473784707884443515905377809244086404676592843624291313197337900293209888779398963966945417021687258162342894258192302194289043159790484543378810662997683085101308011267429595773924005824216000744856792703870713478629561628815565291941813620385928311044997725801882217254660737346513733003637200926928377852905126838009917652573377589630188379996647979171041971536672412782774513464734756922175070606362325041586231881402794229249137858781957939008792399157323179593966706602983934828826838493296955069838406727837305182056725410233550142604658206778795667750102726374833508745536356702396979967581668295779565072306789160965018117947736448478837878259103496891526688418250283178004153300268588504302713331672897913649985030393310191467802660435557473541076671125643983860848543670220869300451728611611954560227285755383427090773423193227589186112018257913661877698215491799300804744204863334822246225011126672206522009044793601467940423054085046325775516125539339056652419548724481969179054501990248459855024929863298621198414606248698016108243939715810651569218390561007798587494817091193562856992776867432266121485653071398595444059009452850416866408935267178816157753436984015722885711319830116220824847189918825626878070074366577706804803112287574254367401437866429901013971543855577364017741142976870246933663878258853752832265972144867508075281332291246416546502094511364478960083599238804963865682075694823434573672860794201256151729463823439651955582444832208015985918402990724192197959116585988004209536410160514120720566938544589308949357311954385400853553632617091436510119320514652520405858922340886586831854135294471834233313672947400394605991962517563278097429707615681865984323445594672081285738795532198789513613317398653056606129972704670278421623446303984212556518973860706662713907723806031253896943950297558926359533428350313956611572296628840542889975524689281070104520133568985700052112505846285991572819139628907107460762335937921542822424205368496215471490633148682258292974837421114401133158517263341066294303915736418791772957994298226367679039852195153143965916354000429737254807883832217078490028794199349569528765759398342448179578456762842664735052403392518962998689640102518620487728212059170137935819428738526206378742432253684829029502674137574124879924510629608943912240181261214411906448364303959612122084329630383821109936000009850748320957858384020790281461930614901906280393689954714058090377873680982594751731906380914779148583202656674566576597058492110202269931598195884247095874982740739106739652016902631792087592220578943200130847497132927615490343271264863885617820628163951407538006267884420938152944697316833559936752726203725654562435501345720948106339886830925059164540017042803764270261944772953377099279520785858125118258945118000773205813739495874472575440514902315752159418763592580691779397911772686292478089310602769377100666596833913660304769275105608301671778591891342119845371516525470665408019720942264962005611433757516413126940120854532283374828438492978005630226416417277251697636988123290599184068326444902963409380343710826461881033056567307772197268778665984518660670075940622301048384732182468231465560484468872569053991408010267191227363049040968998054376191117254810657601806937557719982760832386060549306446512915944382745373878407081773068372768432115883168502311260096543747904428870142455558313939227389828106791192558820605165611652836409714142998164111597862431528201709648460431851117489364084395957544741189955602486947162269549136551676425220737123713287904823551047707373955332135573121312882427846473251798891893683748328714179330335162832572507065801449417812807023820262348173881024343594748327579523292449658751253779196609869983862699105483336928489195290272922083074611555359316809878164392370560793923861904477334073257786167392136854836052793800791924387402385381453978198908752006492649831056683552371300276164156400607439211880599105856306508098343722010506681120742574054376951336338415088192217109344521009201637291765089302555750646203081740912016639728285126066159094678374179549070102837888806914462516288786838592584093980532805376760519178552037493247322159792096245814586513925660061023533241628249003500831137444454696320611015185960385171048584092669752420176771516011411645791064229649702124368152294426789725190275999834197952112641822774364816133966161600347864308732569494843945370052999825363764084496638975303352910707783074503486560380544283319629942469044209516585871519775803759113574667457942014810577826247751910483754206789979855654928288715815795422365299714042802826084768465138185394091548157458338609368365976264790051119272689697070977233711161185258998296957487786527238604172434250068270547908888156087326557351657396507471818162181476541040432234212371814661952120314545280658667780648596882084954098804171277019256238422561633425641785754747662575886690567792041069164117781889348593392254235026073087618962233345757090856280455934365436375706399530845571069983297714951886770094675328334956918871412415024056141528193744213783043605046179949196661635162134333946577078534752218084753890424014493211776599499438141789021438221535153624196933733454107873932441887547226549102686040875464689960353699879612808635450464614673063058747521026796127582917940037567709219258749490093546224463586868460766209910572360537617959987944281114064607434809216395627410688098040481955035675512118540621876583031926720862092076954273382739636303855968640507914669315144627445065458833409086011212081669769298659591212936000307863683415419255198496695462141064953335469710443716687472738728830846400629874023066537986205099189880114578059322720411923487480653962574521298199657321447792249547781199904646881895380898109466870718948767874871925739711946045109104022140442080767564200246742189296479273286903041083780813519719817015192307619020164595659728704821976059638930157168061774722440086150750758268985732753082303212930932124444885836208988988938941056929908396312734774364739082080432009853367864228374429231248889021870782787536470265087383262809070402272718748445178595185684026166472864519222034849460966961560653524548212960762431941103453726239929021494708946589221224343957519404607195139639977472426103872247598790192446070603908055988875924937109822254670793434717616145939977360569768393930025668737548258550318756203465204071313874891772419045329702587171165405524723156064947061588979974719364540747127828139029539924755724386928205606929241444236177814806819142022121882149149906530992714370509494406366293328506184501817598907169588640268924265305719086598588800302907537351030924843769632243333137098713654050239051651935880651896033030321628602621197669811606333121961746325038894139016558670464259439621924426488807703944159713538843346324418371549681450573873626586169238742153559634591374112710079380138989829493248943194207584332379525294689594905808153225469123810546977986309294404467959298420508140202593670800428883285589310786369009597128368966819297764537296610328531898457693451538508408839284915608287228099963265666618389282505183113491681021786451815665974105574752236577595438564517964312623126512358267988647230741854589140509053196467417236074145579718851878470554418151170905658496356174586149962774715760079553044878790587751396924831211653081961539530979473626208049174118015674701306565931001268397700773072889795216867492139186230613014467582065259964999478504258014964886265125734657644360143321828881129323333570581486100471742716062435501458842364561190553228363777571193683687611350299829854261921956182599193696900557218023255629822247957474709009136742128729641337842208594584656896859723886186010970718064416427091822261262400378611985142195733115827461313862077932840452747054231353729084817979693634186765826622322032657534417405548690067373312094816362379290120979312544109650080976716396642666627374508881504442628517456030417271533150444739790063679354598153593513611080721085136350038876346725345641524079845795305202010059470506149535663486166655231820129061270681759371728815114858701956392763132435204374262225240835005909562952766013306757309218850904390772356528754802113251097498620149997766165933631408287306174551468507901559447267455016926106929802977452167781846790538322713489468155756415063340675814439274931424982368971595951850307531202046541905253436315065887669485888212120321320983543960673187777626717725077187946316718532754012312073816188470351586261443527629623024125919993328847192848079549485706720661944656243779262451355894058298815522463200563267891548046051340967348240224951723551829161645941811030448910152226288996719322909936790807715229397939460261873162521016375507551315274196842428582123994385861334754445495522768858712020984828091327663200628392246582799540547711173738605691396176457395921864078703325893364287210876869190442937611085478318667403771819497810864361396485471620761132744023683990124463147075807563562693609564631256495469899440109427650243508157089505592567885028872876825553549001336525918345274819670324478716667431340697841493175014433476210893710700471835125769227332768066859740388871301022987346881250407388993785111872006857574894877706511316943626004391258534094310370286282182097127505926159854201178610485854594889474027646546245740239742177293232247689295589670002545084627242755219533235801212873894596134547649345361186343805939450901754316141147271584067383976925972257882509233750259364007142366413403687897133805229794434302125625799312196999242870682552155921266120178469193904994822798784727637648307173524215970842838821654095284641155636825566797409033661393859919861909011020151534229278228544209736964525312909109615342913474892607378653064070162513604927916212334709472884405472755718651863782158452584114881744280246775243354437862032659261174539967620604796721081455419975434911550160866443177907858769925283563320752810851665513322950385133543048633489600590873157442353069884202896116863401144129663552038634012197488827723576908838524192536484368473054297276254456751527529725219255968334908794358161763359898151088133462655838791877217198566495793312796196575853550936345596171463308838258235913505503158036510176086977791170061827705257378320695590102023667857048282898623066129086649238912764263207816266699189152706676201992504209183736417188437221164400607383231766161240496476545478580485027148036353215047282380298546096752532591739895559942263797084058186124711035764419111719324643956872867520192445524829122841913842425915732019502745917786708227866048367714767879161169551986423567357513191342904676567991471703041498382949355971566953629113794731602246985911124468925433990350367904201035887443185672522826275859985049430723162692398797507817709485969538517278912670173337171853816654746635863771028681240379977537210600753817003980629788993844880614832716086460418415091816550053748978674793596608260651684038408775672663232174303129952858569625292400992643044830892820722632706978683369400606216971628958684356291242747540524607061426293520408956326277549076999227940173307080641478229562958113660237072878452354730311699529233727387743589020726679666509260816674313258261877588664798227484567156492540530361604243239488781773965078001198657587190286286966318605891860952943682307224243825088979524828289390249033125489409078393727782857777208693737612730543769019376857679417321671766167889336953472138776385690811377378900974253679975889268057377192413258125485455659003249633750320578870009162774844879177334805049867456513375424632049051035581672921501388318312408778139443618785798134914501051193447443012768394236819120757709560012703922278053187244417046328341852283222313055134617552032446481885107951288941276167653849183691625047383657032745924365211042828856381049122813556462073628599721169141240556810223515235233179722581794561530162356550221455760548278502477313826012489015548671140332154825202726164762777130799503089744023713593587087148876030830935246789115061433895968347308281606416251667911148846896315496544966622520973645989914290092265513534908769899402581803557929627202757600121632000930017823342044890535718169034690934210548678673239727313056838310245375922220300222072325147644073507138690411250379073196079134457822236546113848645524682832717347747487109330743048321662980911704310406319591066702092456079739590028865821764805034816069620596665535610148469235516151974936846239331210737503300532683936212118688100511956169708297158036255885411618705668590432635025639524817276297566855676986535494381511459788707714202426988744559924468000011673482556282324405050977207624038101702532173278321813849523887381310121291774005861667024905803833864922324418313569840710440435476812266600059747195510471780839511165421598942320142204298246438779369496731051138244255458508506642792920286825907408222128890375942627688431545436571984484907420602025922252595210603020126705572692295460163681368300197127698472950890708405518514771949762257487776734268361444264562999108888478909000246762154594793552318567234734329968957264213679497907550928718085917838095827676786608040547920999145090986814051931800065435997392094599786330286355570584040549550801349681073684065846961982562483989682134204169166120858698786769274909725261340861870503700633580603785077645622533069910797361396364104272408865731270275836229484667341036267221708532574989010084926578406976371781902380888297585848007414882659236265113533723706700766176565458971811537543205372378688147126618906196881463875716868565693975963978128918132493011514239039355305148912342653739366946423664816009677604300575171284500670805058095407821575963176907579924829339293474420352040629360025038399557462450950440599551352804772274500394049274669728994127491270258802242062644074671927836391710910751418137664934724857102345544647599931988016388659356769270768073706122967018950446324240996162132302317672484078040595196014674709209251037411439844515856786865808849141848612498568016750185916649826240708135996783986023120339643386556768293466926207867434751152624680196444884577963023390794343823191362298521076442494386561613898494989901289383244574249382005193515616799792235157807570822927067709461066697475975876211510039241389675400798493232891512498792915412724045132526830114308126277930269145580490704493085561696992952230429504126763216556169985773991381682820661424642389212589093038822685814418573383250865980666697538029407326725031265701706114675459323761021524346055573694230122735298284005281363208832099401604135133420296552037456127940066324278052985668399655984201828902312909154911385249274981452453456517847979936808692358744500578226644510420085296518441523869648582828755178527255277085370905860988962610597059148559434072645920207650618867224378053152705661727063966175915586176386115323077891748304427469201070871681172748299239810301081239097822258531506514097619004559836924988263558674125311601920383356704050609387232204677078358242014938548149339883755472306788777183901667530878718013379344931996716718645518431261029780164776219817610739234382034078921681521847661786489906662815084742283559117213893362973697328714544045580695303470951137149962622777564426103402445367151431755878124092398722021066552973250889176087139355213631226191959851099012980706843802681802056087004858310918656543741934965688858297600318082589240947270422046165842897020099702061656510148985446750399072103529635795915166597830722907491363826632038376237080424971201203521379161597909255666937052809539558703961130901939292388798493155204530997964761474682643045971471012856087504551381481396458910369304572793059889543203424848753487793516200341702471969410066017923402697851744954987819969683855730091983585357387315359619065737039025858139341590125475145641534451949313995499306778146299572267395409908316220444523759956190792814669542147539877781288801827184466348002093064315123660664539622811678525165404986353155542903170391398212693982604804041372188825252634674838200418263699061738197171939667520491267473454934209078007044292529367181127614381426285472935888869627638546811905210496904783296164799310715062364661415031159988938110612523786512031961169990568702090108827456454997043622966953650246604553313137646311204632157912255094818820742514590454791677672703745978090133143420950497645751734449834364468352624001511437186823879633435989591980250199008521085507155208840392677010968376140225116422843183391228601353634759358947253846647497773364067900850608576712990799632083198213946963501886556629995774641764426115334788047831091211553264969712165960919313959362356598518983290457547241302556702107313727255180998465473965915045935073958950096417544097082656327036700123172827418439808192254118659904841088737962505796965936218240037693257100419474578382239767378490049631942511644942857396272298783422864186954048531944712693547944008104733205367520991830544011503159579469475104108819320002050283651120119584736874378224973556484840545604111174045483639331954913867854476767390776401947937535571616204777292776181155174650554854312259470947636442811261700111608073800293168376005080422149438858012389253444586485296611590738728970479931953567905431910386097758485466654961547487634879248783333338273557109412929057387412219175372699420658803759371921040971741868686124565497492154336320138779186901864075829418443513553389383515464282127759477488151934151483157106306961013410733924008696482727123377925435734014027568221821094200946410455008411772906595228453997042979309567832245223972900874897658853905669844857483791727941118463043628627051817070789579739061468076988011496839051089161901674116447941248829828171261003325988138467711014270643813757601386905057220082939716604554339229800492822408105621249817331132555691268398640653973188763282575627451669287605536055618590435895505153743187707450668338888853976303010506425289672373547801905375447551246795346423396329293955776914048891093242827084657924688782793566901616914899755489246694891627161726433354124920019121032964929952497696399329604079666353018268032088501771634949779754101235532936791458311469636720378459358005856537146070152744616318509895894967957190353468177789603554476079956976365743724423207068499509495157010678452968845511426104729107395862169141123116450330572301329508128347382042081380905838187444716296087989711407283721099385827721209307260779096615428171250900980695753155497186935007053371265657470762449932105828226174281114098019968333373136729821778400082668082780716279861789811743717779684122773078281343531930320473072285813539242592103500318781130316007444571117248849924591488541476023422137260439252888031359840960948710435093370712391386461823149537032438999035095811531114051960113593562174028392809555529826028362898758429886062849738505448504322035019224000622958385962285436874745530464939814119148220875431257530102459072466894159700897418819975681205023530377392840214095682798443909383218194654696771336162794243200001554026626385389971544433067014958257336523544511663455893661287086390888849738467902034848431044886615939594274910092854568172527595294028169797355217699146884552260159001362638014287087215856274683588619705061840483660613679562056894338075630279701675344370429340482988418671588874641437370570070168113047249552479072751717444478424543329818213078408223814164782861280182766481186996320524467424802790120428595401824363919594794156312458118745174887011778094279611366403020722214167438106310777105770259749554504061892032251728324646243515741042581243735043980382313853621365052234176586322892001314618272822576199213162175270877841244796173704202960264707967912035748511503462522456796228127687062176493233363300911556595969561187701360020281989593510886740052097868412947064245877738385105737959577588482234012471779201384969299651051526850372583599675383644699747162652256974963090399129607744800451963045632777210087147727582317388687456879254346542258584076517357297714295648843008659693875109396519561798750287262194405610008950964347336052335948282705751510748061921754880709418094471184964078092248805841682795916667195033985845945860926514964529374015649528969459440836349246162798139859248733145014620109991726936966907877216274647249576102761482707725494070430247592919382722909645085037950388109214359131162957606013297755153916277869687574808285047451177690191313825738577457497794796078112208866992195406063252395603405482408211070684713118197454327284688308055205489178119058243706195754160484579321032193805857803738976740652464831809578974815468220589625860265327710483333601371626012858673582312361261889431408421304569320594553785960937668597792909992057667536422617572894685645665255988006914114839656785048666379748710345533301395720017208520822777678720866803733862280145746469788563138644547238760716030402836023630573951867378920175544489150937191900632548508307709868427788499245255402837264351255805776639031945568450098653255893074401373862500864233532431692200176722729341277700322796909508340305858763562205326136549820092960448290668318415404731980632910705710662069635614473871442143676039716345243209289852688980239236381269456700336631306556144853196912630164367289054944556634008137219522434695563433945234482604253830148461594871872918772235497978901355556368696956935484821343202542060555186278045402207393401508434972850791749269731410716616119669747679068119137164061511972833736537944802009100182520082288591176905421340661693724228166852277945848309107570112473203717447597015301550669236144573082735453070534154037144250906504197138889907076541663800714671046362410034314453908119040670899177811347854131062325815266676890253680633774388869395636651213550732843333719414270983220440559196226587503838788583492443937984920548374771531798862572279296477093236238351720796866683068779956882239956062952110465757085664359524099169162645367123373157300074148726633017355957418975714064689253910614971439430595979880173172544109900657183290447573039270189707208921326820098922318651588982096887724113261545216620398260058736021896667615570037914059131915182202686568814937634604791709338461303689773100255342764826804684243676560260776972059515761375070520183937365197178158173084052595137767086576189809517809872627572344297604343994999404862366434527628793352764845554451516312606137934347900522755783223949221904394819732190285432763958354717024918343709247202642622966184253174706922476748653782384223775813342446712206986099895611117643278226824098188555602222685543554778706012630494608153487296493131763298801285843735631304357136912180379239994741456813724625419436976155093702965642916055176058971262854364552163574323411949941703178659509215941296360259543555910702454438823654376984457209182776860273780905355465536775107199632198358318165499384271025055576746458824876377180969948753684544193977413993279783655810281294699086843174941601334146822473569138444322708676824943025616061567375673729724471936053247356141992195861055177949995298220661313790156885447335356544457620470096087915668503930589505031724853868621083906411963649121162854057072114025650153146403700980884352045543933821496135769410266522480808063218146867109050496384524336325391579797131595272578332784620864986755475455862278943090388558855257585347056839870615158258856633085300945675372694793696313441833776749541847036054235922035331478639634533126829623960336301481546052612861818809291353650503151079551994101346446652339675942707615810360903170133696730182135610702331046189778851250201069146590047045955315649374410682282532710890479474913546083853715305972237854499500144355908442318443759530359502102384309358367911297605731726021287764063324529063507826282384297525024031450442510658699704969337907488029544895334460546417432754631524735336653325187975365545236329296994144648177518014333325296240715384879729661933839741026288579839538645878218944172480183185669455988231161357773825296969491859084836462717404013973586464531416626362575985923750683303319956891659111638144151167210171408558725258475377604829089608663426964202799338036459223776787966171256670191994528764109422090782437209925282015334176935770637715174794248885702041614833638623116152085153597810913384383646657102562720875368683669814955663833933351973151249308558694516433245271567043142049682692267117186865005992987642199490580422639722007125221397158028284106531587642907825156736904226452841345950027952666725279741487066758751972654709642607567937920559102731151910862895280107446251403755623418291759305161922725368925886448289266390676275484677758766808593121807534427664948130292521298131202357712748824656864898357533955794868374225055790672795196297619231240480045835065496321416023874767550034350428410760916349287067149835092100512992592659429590526035711947836967012717039206026125439676839043418367108595720667760034107228330140935483380038881173834701134559438219269406592464270308192560852993505089584450601777085181433613314701788109971607315018067819045798570376797462770345248586504791485997144498448292109823169663340208654773270236491484295191451139402529526712752926651323199940149572375505694786491484340288995879550049271407831852544203592457904707497368171105055662857312892217691096865620112389196597335774570783271106734498705099307280989056450581386264472455323928073207095514375791144590130894283955555426851446913490412179666502677748807629965158343718284746845532842060952395789258440161454968240955590968615373473731766920485527824023093453193969690310527997544447945888344722977200897951155496719562801608461664456413570910103534074644162544141331265161155533950230444540636938769845920179316608805172308420734726823583077371736134841897928532031559562804240093090010294912400523579472863248458471665202095696398363077370513975261729964359741950544282268765576859986058406801472216337577814811022470671653736008138088225300006746580527993880037106090039040926667741816927448975628740186760296221569258769884110382737426169522427284511495728568445263406766282618513825706746443984188823094969436430047151357551369178656831434864024582821968112069475511507462394794711973153446265650337309431357231302344585723405397248193714012551807584668023177489905551119233914498005214526296735336894926228964959317360243426077989451714789729560445798803641004231830426653890757439271542056137402035452029802122644833920790176075610443951209535061309974877984127808880819301707117296545373255373187698473789509129960259080658329371514414423510191377113628076656387865620540551305493858044512554047045115201377448440179897244620971617865493880668031686156754308491290274351900284582669098364184982616139044940930109674656631823381726947722528219110876652320968491424810169698485968762670581497353955633762852527880531857729082168341881168230358131683700097890637203862665092388544356316784737654415712589672395520842968922391732474881902690333367910422131196858220473275541022729368096244739656123412559657429604393688957842324257056091925392498670108048635314641951196309818845967866984584810369736036832147489761600589908648400017452591568708967312179400623474164609395703302944387671547383621404882246063338354489395599371092631648220655194138618636503643316088428628624149794286756308234546109657111632409745983619387113799488391540424347166687581444530329913984065354713603671184634608490847852546138280854694800848049470874938409694166007735586516065757910654783557565714612972580015527950880568499846719012748261972608927848634682929770371475272684383226010112149589508708903473863049131744611714699575809380687973340937849704488092957193461678376353545412710835258159320736585752150147518761545208440234592575521700096714006299100741732092398219023557136368877342919363324367551909420511314545026789540105309287108683567163769363062247740428430097089157721807195567149752389276910706758479976869667578686091803169422446307205237968483328839203837458992258366923694318663356273164093660004166648480786467449187082538021492925908814577592263596565500051698514431876657314102877942665242685287303426101371586037107160112536337238957041314674329305921841535748795647022578124498277410416628118283053876781949613757450659082366593411091795519075316090769051116769149958328704376573213224594293706086141783733539077837897544492051869015482413077563208566483067441929235175653545295012919428977035663170031063010143047373298612419202278027839523125996313054341791727145932630025684218549094241064939825764814591104284271253134303352580237118949820506775318543904385977512628105094140668311436314321017462045086258651914293031079190745326342210091148872885135267576491495055546801752810786948267314151904439871214516730193510753083432290245926271987955512363484077621483866752228789038423704570372192386897469487441557769805410972925898039828827086366340638539204454257400258784313698296315635570513029515328022293041255871711946056781039375093074362100100191572787134362367933596650522081944261994756683473324174640336231908945299317716049342696614626355553518670509091985824429928016690040918506341620097792093868343196363136089901317099663584688722216696075809477389106355797616496823552653525373857209800542299982882065649085131779044441293808432118652170798505200873956066105116580016232168123398463773584909672389742859819797972692085245380559506947507195236764688583771368255017569906388560626534993378512725196997020954221518242278459614742865582709339514538018951437656320975422917456903819274542944955134964209881225068928860575467790004716780259575181639265422219246409313741184591828133940930274308967323385906121596456049251057432368707328835059430553107114559385525380469928353439108113802937175176076705514924588458729766964696385498153706706881366642064551721685266438205429677894865726124020993803041443698614211949646479034205334224657104636779376246099575902049122195668955263221138556086433767413895594602422331202775931751513614275490835223000148762548592407879422006679411138672463122252455536463039729880076443321144568535074220603929313378398777253397184701871722125650331835892346034853781289577701685087790933827301631842703406302689191427040903220400390749010689149026038374262286108255348644055098501553550491141216469914825014321099847624505226331186308825972144375049227786459931061774830184343131861516098608206989872516392213954844636053213527515163260446806487997053746348092633779098876483423520507818867178705555273271179882457994670174663054497841470070505120168611114986171194072440655387982120782773622698396337169937365888105382566589197796207911098163680729473853630150018525428229122488912948778433465412808325663223343112785921447986640388343700504831513721855469954725374393776474020858051866188401823538343349903469013089575212199325657720537705329399633120708176895355585299219940108514906302949576951385182771054409455408364689783843196279065386941533678190507335247641292427734773509913618863907782203269485788629209920012363221220643591872456475994897888090827115153892330776646614376059805149083157311995690582917002805288854000821561255234837977914600777322581374642426466351140685056523152426063250816788451223863206905082098933465165908096402422506895689374595347304285687233652857225291750976915191370455809133497100054636634322691213971671709344389874890816687804081644331219635950433174783686967823267888980947782992083793889617712835497368326789130924106565434270150266161048026101176558645556420280021843635169119428378391270485188541437088346360291439994369035791594673915585958416628162084871683267392646693980169585942131594550620719755193667126947596297297481818951864231709469326878267190241288907823061479371969549579397782411007896307807344962572683756087660838288746085140912952507446866756915350831445239543152843216095399403944576048872843699889385460348745760921122930625914647288416684522357859847662905677285333319311435754457361251034387196671632864012908589925658740531291418958807332284771522992823707368545401193413100298124746433496142221230266410181446697334864660400443794381937440030820496289030471433274209889313500789885513491491723706693293605328630787218017721541445097204371863148755210705006088349521467878404380201151279605550086249807084100919110827808934772248522636809317879006482797526669615922289507295794233674958445113529958470855422351137397028547012431220246124496915878792519376465958519462147789180974745344982774446017431737405669260461669082165846659268603888845443326965524371135721257555250271575198196336365202942291852810123552572339245716041548249235262964622370535936594424278318023708600828764665906026612707957601685157525195994256813124761307901670823915652364546846322679362085857903617407972427652209957407806747918551554347781175003911537680957915768692939191856660595082879339292118531945083979172064824103516918342653234738667631166133180456839140311598614145577591109793361012747880957629358049554960452943134292896046097233265880806444982775845494202698377589772770735504753417600027206250293759158542688285517397632466802195756433620432662064843124634001832763148888529127640192451455552779619497746099431069860649514586911088755562825251356530373360140018720571642969008722153663112961064050087705340491442112600850377073850156144670254105437060504452603924525943973192232715841677185870651196530102018632655694770418014750901571408423931404610815141445789345697370741888309472562818600334611733109633675879583951808552549597338338954917642622562025658250296234359644567208316305453229697477678935578012401274000538081066483013142842340765562935709934284753240184967514812449036714085597748482311554176473755027266016693566947441772652487223885716194641884160346235134283140569325371242472531079084103168062628466894043195548247787440178256873861358083709285883800238094655698145386221845720940586799127831293226174010800663326990399224731787140679995115476516190255284193580032891324446776664432526967436308893303840947432159849141566800196498776388103230554327158933648090942867899159371994000305743966343504652865363517217953850904330793224096740299977320377543920077715987300709606078965730708321359445624674858603274020641449412986315150283748958318051915027955332246687323255530448862914523976976655724717396592922147710893109301755818872403217961954508506418610648823194001075246765534105143259288172350985979905238413251059894136927415450204382761523181768824169551733927157933210780469464550004660837114247691645803444628881072930370943514154448400103855804558811622214100987006377938188906592616766695412105093136930151203358335508695824396460746591879246486457068818128740683447399504948957460153229227055844811264332014712212057585765405995352170355641168105220671815685369365055147785444613041332382863615091718839213446886958596689200756197172682039242330951827949434910737656145750201515587711772224586766506437746894600451342556565415321038665266304265733370247996029398822984204437444798932582925226848282688320921409570041075061406068858172077889665343332004201977925791024301285486921129569982608425151247999338299295203875103703381028321413720878072346939414126662000045956754544099462470336092133764626624883994759778141155993260654605767013512516986673569334901335130364750319445023401414815776188851973253640354725569495945956278502429428971303234100261768172828954415152301195412519720390157183067021467031570617450030221605818222083364127379595519607196738602732534545205890656557790462714780006372106514096802293269182664959579019362214209873689407927375493617422387360880692774055505964015578107500941727760748988239229086041285187541958768965399852669928027475567647067140456441964890002488397771405845357132918545100859796287542371589245577926578014570916672140631180671510052591908978398868668566310661825188322460702492381891052455513709409604041557130430150715452310975481540192618430152224289496523819286567062174387422998466856981165779939791027528378085396152108513528412150705638450994963723375390627348560540594950341973206806571184138194668718445532293637140153955506940848910098336357399066489914370114872983515184238237030041007350959801998876589304109600870959905555616223818725992939227665170420921462316043486599896187517246084853064820278242766056365712120404413125039079956464096294582577201697430574953106176974536959613663925339754510417980414602708002716808160708655801737495135441841398490210149317537805280698926815535655441050637830449439762067585807224680664316603528729582909394018946089860814767590495940496576610800724147719151380652378502690513033350962855376097301026350173700734143839163142107878779877987278978272469338689593282376346990962612522251449279652736797361829420507962525843743387956838288698688040337819963371785211384112806398124374195638227769546420092726955404218354825054369373952352031338446414578828546238884639441590949026889060959040843554541182449427461846740896567322833379227916756552546216965599865092250765886750372687754647848685896261286041458704005056769848535747402547255754964435551828206436381130315879144791844059247371490164140098447812966488248727712373991262217536744210728424662095122551677024165626801114850649661347291027339382953953239831592172286505276426495978295495748302089342733579884180808391278296029226591137178364565419697575656146266749235163405962546582361856578723383482825755839791831103317864949143867700875304572004684255710675310394922312291520169464989529851492712882942846436451336322728140119527750761964212630936950322271131800453276674228856534908621370938604226819716319181340256288759347007771904365575450870107530393815877343146116444921271042102809295953735154914562775720237384131114089474744613884135294169339561395487823429694528374992364452752202738636079652971076181605409169876387675100536330852293208094628600083005808167852305454241839576695754469651050466709509252150285154874282856306511791170939838417331758924263384455479892502065317466447256676181412350319998964415867718837128791853684497194954758308466510962132845543434684022761922297786692638138643165899799333178261650625149085794451242333151347608389710027634336418769046709709250637370389296390404733385852063927104531841214857663028230230433295095500617524531776683170610299471400731042635996635657403379153804323906112849718686429846149090144553003017732982219418134697281502086402131821637840991370105399160627619074122723473101826523133587953278381421323274104974649706297273929103078769119896245411110472426489643973823964113866133549804048528729471666254225138915940706904454050579674635967086248597613619584873286130133380978705208282513748539586516785911891010262711963251958324496001503982064365842842067439015925435987859782296170627070255826423379477905787664662932867812568827285676086218850384214932112668423580724487340514489440497008856976063777151246326430802928736680642366583963039597841327359674510717625559361670624082483545428471410234425668366443454375358470846168382749615327172930363060279477063798436298063408278980556605784691620244854478916981286534482919112295216825730960395101598047135285539982218694109619953603377935553699272048872170073909543576851767629219570652561315572150147629574996538261474455560587846231053667656002654194995608469925433397786945364468167232034951258325004150736571589440232173926990111247408131233082415217224663404335994891197444994158904839384668152556052079974968138525078965919291000128912009386508656900780831784271844235687933495507895589620042734741494513673491132661658025649191959766621138902303382532462107698174588697718464485061982139570011366082394713514158405479796584968506545137647546050150637183461888315476124032602738001791662679639104645977444996004765997545561111579026344897370906833972380647645356774281719691178251111936858320129066140633787130324424276351008389962790390471553496359975143277330370094880778132182470208750130936765921025054849596935596731673643941965538496293064635335737611578208424121755994548028232624365566402439103901760700039713466867361695044777359086981427276448936170128113268101808878115005751301879535587915858097602511558299155129278326350009361604720655074609882784847915670505028427188741738246212960754376730692707411382568239401509958564341049475044147695064997952702255102541281786116166234612105840050223339475076988019648684280566752605628220576309043914273291321161499149450561275556744911261460826428012592726091937822707458254082708260704924459573392542440118655805848408045275684874332160824645758094816796602333884568035577618902120797035722537556734480636432281049603519944985379727521429174884673769523840743402166534278816118643225077828989437692951548396567654272954887396557845744110501986016424231093868680475435313930760823678769418598003740838300565713872502880468148169519166092667357506346398853957512415803657357027797925061360648488875333532807274507649340957488261631542113690211142639276631831430575509280752999484601657971909022371233020660229540846897577268639874012964727037839639635029237653617688347156268437690026160198054919630002239272656827044445418115669393341997340437510912356919729099572673954232045812976013859425047687362496783635204188410498296352127909668163592431963526096467716463341747984070873796883352545179807009286429846350641378089691483008484154102942407276392718808222153331267219669784714378923407624317755315568288132551363987804177583627744171216976750806996023935108686162316319542725137958279130655090390694343593358483841361890071904384819792890068596589915467172368743682963439852741797220993471804312609678462707273461181762020422430018157391506121764763011416592254965066049923468244536034893018203029570773978809619145931446320881704315569677352687100174361240959915701113117116437130324305285921416490224781941227396735246519023011807540423199245773595975638211840142739575783997960815509321270852399325605724206042348359651608379545747766323083635630490736089053474473400028986922445322180137663910575937504124591636820978865088909183510767102623238113523388978530362106630003640947355394447699307076676051281590077817248602627104934975053742349091213240295553737239283840043352404769530620118012402251250595944466524564020049918674767646757923812077861220577401406075559003915762278715111422133178006286603772219606781016145332566151926062800925140766403037719281155243843233127009709862206874495364851416407007360734156406258895864099707426772108866963706822249173660009183072858217777537445071380566295925055882187709464690388085677520229150548115653882939307034573882728612652518872409792649854842796787605346857990732774313704136810464864884235453035431352407797597078188169771905381518578119172492955766514867499483607127612272240914164504482003993921603529542761175448258444252127406331077067958210144165734189746435472802869980574305964462309573358106433290692983212871354001012321461075275305435826751184861122987962354021483722287831538619832948056145561099502247111012515467720122658701837058714554715218790386367211641552251052101860294227204243738858213105994905919306820415203361523011308683211015186032556369612314160968188982871539097638698210438556043424550077599881769939088118627002135978618915024908024275717571924327330096933857518456600341409775929196529527629084308734619546742992839213666642077793320092267325026501964037679902428853792995106674010201002352599028361173662756273449465997124590249690448216811753451893441976630953301444671107165051767165243335803492630127887179236242301848535299564786276620277460208176752927106761314238523152923662719453499417931805040803948367730875936127465986017196007244763688681004077893052946756802336718422641779707355370281331111477883358642445917107997330651980946586193549823364689456426996480537636451454533710583619814202929148535714922591709249820959435190969020062478761725011653489332488571375284667354302110176866314045514161623120217366614179472895808268471813376525860326654520593522755809713251856144572998173093262103220494652406976120217905275197084952915338001073047609975665033001063805822295941930383645233964930489443318399972988205790053617657716533416087230213674403167775075916786623201277245707516578543929847292759237054639959956841109616025368541543837927732772971710161258526366393220647540166925817927108647816913523032018763651286188033633377603097095394371754488597733892433016565543425074135881518744013764244256195896216566707565944721331221745359125069737515092929623804340763837849954864338438569573839992480943534265806763309684140805975691317071051984340016502173206766277245285832540040909615439667145404128306731316140752344325950536153163083342478114711674197894844005716262817013944676651702151536470383986931802207474406051088078442261130769949200518722632142717150614459923057881120009920121078375477622046177262625280933024826147736847215337124728280597717213108757865271667074339992577177825397290924283103375613671811173991640107310853702959137811688513710557174339548146853613247596967385749710639511371835127087611210693304735662267015096191229244122607836436028561507780470692718863013225701025646535889096302899221213701674193619743866996734982136243441031212495301849375338642506892226819963686656591531022239207129416239112767323865525297919538704426678470168945894725630136327891230321118207222733240633283981562944205860356138939993006989958989770719436276988097082514635555070018524959537261831003966858964808728112550630324062637597584477320162902665389762249205835491745163961279290854464714187580133966550335853172535086979605604693858266908911544258837464192813527112565093455988342500974522554173686946112238809499101286838576151076198908110859346664380302349614252901800375539599884249713930210625286918375891166298526939768339884279281268387300637388661515556980492345593725121744592740450608670228170460814039119475481265387455767792572233523866454015329511394161217863345384945317840206989127589592144718692309111376998855141677616969743423396757278628918546480103959414855838265409918435527601793688006836440181177535243691048481001029438315238795036367440918394152597473957004450668431442376918489388297220647481527642819094971495972349138766326617057912855644619708258866704863113649727736177497511758956877567265345162843936842681616142741998321036986344186893771203995958660193282987793694553382345535700074036343758382248948167588224253883880866467312351802656390414602806854406685374690438813729461835220847623395048543304677505439121160697954942608847843864596708253903487929886527431930797073189221416748393159656434686774210694436373124502178063478603993754081395633901838736860088933633925786470915333482531070191667378293138313323715044522810656161104300634679265630640067697058124650756124652050074944408864734223901566180073688551683523884186915173307049967820796536702202091239722323687772869338244636062592798776721216525895108402190301720870520807579947567083259909232093111925568923709385881554800420566396762089636156111544972383324695967716393433858269213909403866672793219973755093441580573113488453077352034036786102344355228525768101946128169982216258578440832707999722035176658126312906125498515318026954118022681693745677912396962020467980198406376549497225450562716534107381296343695097887509049377151895981142917026455893735691474980475184680175868373848043473967580423608091275385003490103500331071269598999152907905882592243152646241764725030698438260850730627165056913602777643575091163660606075236722170596613275999059468054223181241073360138343098750906698532922934111622555346850344017314052978358211281942506467932201259162206322865833471999922728446641909427932933776109102362627815871962227508530094505287406680194176022691618795804097323393328981014279581907872739072665512241116168334521126878849075001342973425857550714936980788729597570151837206896596327253685381123909541990080856092907500175063053747008547232414535859385029515238360578727938143774243486318031446953503590101030390523677270502220215012138207438040778748990474355642434956034818492946773223048539787290432607947449187586911869472966084265555948441971901158244744405509959558821578122481350155800567752830890198127973796828220253578270585861181563656377038388610775689229783467015124910990076723222657701941843995997569163339415734299743623176901845372899979264541581875794325314775698434396093804162679663256228851278440291464887941342671550235428173165419633481430619376807691685514236082612373001351007865680170206589344390298339686319665795526774198749969585499671664987433082711462630466228144460761354591597211843064690484968671532590034636732981018767634272228535585506155658773011816822078050436251440812345659850794502112417331330894047452674879775318144111116934822279218689552175567422241174247207085922473452477714720496357283770648835627341481756342548675028766214176751456957293769390266430928162590008246954338756188040232231248092711325267840436040102638352233091839517066936408776117536775835048368214581781559056337974079189499862722871578014891251006906647228572550987584998621717057513032024581394692979915965429934894502993209133066320906730225543735595202248697359437790300716862732852606902605048946545295006796277683964013490413888240464313390787264219695026330510687899135809415132382961833907918346801339647614894805991818416347894234675764253091236440503062627147795523696220787880776793717601530370535961588581881747787363589015937459034662008138183879742265479936786991465885331381416723778919897415295214071081250884625358548680131172338580915914521575546888041314059819227095929953415509470493616697284509826940808386120150272833572259465766451056319295874576631904836172205948050952365655194092516693956851603660634292490918830787416568084935398884552111971106584964692136542434921494311920193290036147926337579370617385756761019982471317230104616768720359806437808606314022327076905979867202299205387510732193834361507608199701888712724921191457774201706853446686784008391634609975165133392745764910314889879336407227134274592361197918620925406787341202142479058676925067509225793215718246042741768993842412314759816198924599756094815377516527495254540410137566818443643750043919870731415763085850186236612297318396462209895651602755473849354854451324004432863106720169598546169336326556748739939243234985992378879418279406096300894679755428948134481074177997304465621777620055352456617036238547633500037913898159638098318683241221566630020467810966674702676566477692249697487923594485763721886192522422310307247429839176072594381483533623898140377225615300449725094989449455088490317863826681378094417663473910210039637714868325360832930722563318636701511346077068446634495970420601993168636651648963394327100789358745868767759250928886486837981513998207579109767217049107186980638860186539985299511672670330221430015009074558090581788542751173896028161849441010655545845895975878700852673388541135165855220420765098057078578730838070554649646040704338513064642417388906741108414893431745386109810184618981712425514978932416128286376071543730313514557184673944337314879970992721674628534010693751158094340736854897522327151815335884539740259050254776664149026142703124623529033649299669285079389074290734811084407756630472805023214835040865192779631825957192038531121354835930207330191469647608958241621593129926856059065295181542229695972831800780368460252051736564952773034039911739792301078997115584506645941424889290382244876722241832959200711561568441173795365632491251763268487200808520003895091210800182719776673831870391571543844438623144700170730592225175019222322515553034499629876626963883598233293995958991165135891246198252104304931741894083961494343923322726735864650155282211664944429051345262678801334625704040972062017029899588449741057063194577374836767661311585540203664676075001264551212505329165945103390695669809070656240598534335865621758306103444683705319581095845958316151504777161452115843386635438894861268604404093554767932142118839239367984204275939578795242907142863056009378212541066212897537766034002959283444537302692005619826915921186886441213446973305424274640267310977880781103657669687913778160973134572456702827131710108427208166794983802441821445927751263361030248930527440353858658504861572277049789264968445385645410409870558485283165621586774436405835110073999393836443561218236770963007840588077284905536078994409163859881950761460838312503130267777012524219958853744552414070417567729661155272512856040899348737519083637634351667554916351566613541768126073144054143045595026714484250360745575373076267883805806074191747035209972474946233078392365905447104405697348383766133719382343813321227062663971180766956241467316457258384405179337670960831746734829690669096955799740542235116239253238946123715787460816917969751989658622159174918052999116442975837387830141151363647816773499448090267073128703402237013430084569044282071374880219236339194002539121525711747035718891786437606131244946191121271685690125060634219939621919483404732570610097028707230086957237743321887605989360575802725735571435115116270487665569154994957470741164835000390735091308335285150240714566931280950310182661557944303978184331672145000230582526548497620291228737484430156290323498433029414220674175317237926858942617162760639055038980238426930355487104209763725305205323932552259323009677926215646359179167441237715641552172996494256190846054853869688471628025462053688057022850434098258846670501059012597436425459081637103751040725845484686324225321380856651559536925691713592430489582112771120015581160937832347209817963857050815524501192737958582204910740169799376011874343367561491404232101552777239987948812194133686898007797411049971240166972042906993701290704508439384343485580635794777686345000212969943894176074374700266296071597636441497170992698377855343157202391002249090294403621462587218196990492502012824866125859654191346018371786535913591546762538701526862544418705793347644818212932436655777693133953126378428849337209535354610353922408813615996515905187761577087314800939881412123550784183617766833474359308377504664775087589932322638741661481953656200835177806352775772271377334919489867379584545574000675473883179486051529611919087272153455657675719382018606283302387479180978174408254365167123680541249961618803165047566203205983270066883891056344649336802042500402582763285311572243306330768191101204919348245063192164856379683441134667505878197658115051649453111366743952077888442695116253176172419990611822090076932862578124016304585010951772289667971246357451673458729892788147446037641308462583807821218537338908180864112508606658220752751837265502612517039596307433735991997408808635039450643125752850847088881220954321084686016673465474193403471209547352867783135708123531800641285085749702456433485920429356810412840212139198871368631397431646660885463731132731303999768451227606816218921723910970119881338044778517658908653260658015090339896191576423260257186511852188191991900907463242225682531478140128128876443354923863155839702691774099035251534074189550282311282838990049788006393823547579498778801838615176035686074867581794190741088149535764875355518254327779781569635429825081572149451311170565793738256769995860238562613875469883070411662375344250617894899361898581761441781768864676147878105505477368494299620577814530134557932580780432377504445339021975670442089950408186098955991975389550097984507079668072104701629833713915439707241056240646173883713249448699508470924420301116751335007003662594443377564912262011122400921325002071895535382847333259443338005680407803832482562919127635467843414477900334768942554799663244198066103229559961878400047994888762075182025973643879163646905586583120227912353951045075474904231694536397987834536928866636114698899223319035459849052868891969324044279669630628808394500887223582179547460689974899769731776950887241674131378627670359182959084383602515663482773402291241412023993628792055795947457099642903504005024944198550891902948426626025152768340462824004402146116502186643536028242878003108698915817208970994165521866103329277984779925968130144567664862978044997399838381309309658336416566575826311035766452628483330003428180450140913597050779741847970863613029236490022101349189246017330976741398050537331243133855036943692304602537627733055925935119960394268506330012236267508182716403113972200672436710956060616947944507351416332600523557252592615757294934796452374464791944701713322019291133715115054070412291533884414479834224320592989550740211665769263171666811297555652483179399803344242102103096002448464293966718048386075646361941275678997364323256768780335267960724057848108152649989195452432828315272466222193011160441777815522507904698443900232661706058067234396960856375585305366175977291053827499975951964486187155683582187488439988347545004498053487333912725280035278263643628726616541746331881953244779223879611882413314612435250221390880365403009990354734116715083617889306080206593189845403940280788727397964239892315798410814003983315545816262137976568265175324005942686644761342848824660916049857032689806923672711218475867974495653000010614507991696857801408868571747717370990604250481365691347063715050000658050317087884706340128177435038026637076218753002122727853937474886309024758481796447306274054682447594773331707548745303731942455758787766338642402260817496015849796551754412680776070979387278933092026593013048806739908441647805659773177874665271027035125897794433346039705194989714746178369364527570742047301754026347900965986463968447977319551166374341441176190548767560018183366370884053727062420680208984429285276535547336609755627599219798747362508759075784076304360243336344231157558905704188200085099923790200909769866254496533967909587126982091436710275891642523782098061205131637492951242112470483469835932653482776381732181345513872749368801972691000657090769601458898531555213767797361354401034466480778003668238567152486168046975927249052647810380674041204259733023448452410130004006046896880811472964386721601786235817108504921004856121043517256501999988037337357280855355218232176336870246211357585953925314681223740446479888222448690989056777082890242386518504020890110200843421427020067533762491838688579685044315328324412197315387236103025821689587747631931392328955478781838408543713996260961390282136209925244674280564746536744421182928690352207159711521998628595925721564590554062439215044040979705381354590478148166706896967723621911598118161086616685834761871799113795987759716165716589822422032885968331378205256686970244265466823745025652377801109479751363974432180525198361804064964796001896930855863818472279385260815408812500984975519854204772397084669573658570901820077082078175231816428002410656857167721414882538627644527405599890369791412963493717615689303455461221673160139813515124817300981574026689315801983817083499586657001244775078401414814936900097500077140445714037351324830740306635327070414689306511311552045758174185173536192916331051413179881491821703940020154360815058490156453295517343639519763942578100757521770196067854949053690836379672282395463210674518328974556383450677969383290268784567807534536182516065625946105802667258567004998152793121939333987553696242152019410235461301784680056290808652044138313353429371550271459676107725447793044664648504342253247438886872522812784743013926854987904327790500739806564794985021541762818202409011789061431238455488801872805641840691242136416120141727887457670832737707907437886319126805667177943601066581680168639691349391981496206387102208215859172006454080976125467821106426003947019908004311343814837226101432169741610686869595110416481579066772903261871779608227904779803790974806959419810586996738565332153218278390592785883975640168909615314457506052605965591793624364610595039092397515504944964958205870728312187794809580679450023614069142952190827645436483748531623539740309395434077783212681170521854181472099474726824244890684865776595628530565330150609304517577559146277902750032905648860673626761996128723197293004797637771487290746409314889282528121143877380446537726196123684796747958738839123797047104711610627277606016630734466466279997625472521927168044159264868388113752541826906994250656272583190646856614098592651072612640916115321082531862259975339587115398674893081946486322147354177356888464252663958563799870081306448743156291928061790507307167716417724480067800291222409819963287275216546472894936431110709527157805853015191080361175154698440781726684576288446768591316689993109116473359031435766164051872660841931701796288479246491727903549273641303456676385886370176018198945196693273156832759581986956034065941613194735639013781544994415405990677319995925731469420309633146165687082132385653706511428804455896709182763876464094172298343161971302160423309333116118300594703060566224930058997810128892493199740631229786598325388667946246969348959603077993275951888081206246705933785128207597680959662449513145330057431450639057613841473333219699949182372659396849020062009334622297293255305294937584726258367675007730698678520147172889584718143478408201170753601688945593111777142822739689958343183190677221380722907491384366165646541463481283723011326426602075616980392874152082878463131275546082988740026421188706815721554526045413924538249601191567104497041846747625386260795964337183526605537949028606553118472709369333265146954931387349548864272835871252639902116479038139101210690923359641241738724541374448208900049473163101188526062903994533970521888976020695824967749143309316203913726843829277745152248246225108049868792266328482988249704552993874718681033465642074794404666663834237035400933517352154808860029472558224548101609647830660477998494541606689695458010170586556432521654857038197743909034108541864391084601792794794314790202711681779675143092854366366549860635235270428690056452913142099639001708888726054685896525355984864416476632425766380805680487846091456756047256043126650392930786653685974009941271026998120443154116568422199732018814848290064616530233331373130608822026163028544948517539887898381877857792405476043757255825735190323478684533950723015661955621518876423186861936386241332720277307530420689227718023542763667508370236239193084839772479916939479405193660795451338420818392968902574408721411302113537052505906051828178826686500730794479411067114546217395445755422207199474933328087709404547108065914242037609905338392712244297394264637369043411056964948343890042422508265521742659942270665026237734807722974970751098395012478850781483648977594060588246681251407909929161381600308352482540127580583929506457463332157908493695371069000035884984718019910699452908739704062428862886549484693295323144341706459587238103134864709520594167134118344037301766230462560907679071919201405266977883989388527623192423327321804232343229807802728485670552464049949953217032850898823494413563037225528148890331551801133666940510079258695899179582175096530241088748763876759814101616219815890910716360842710685302084133120567000964691328168599013007532646555476279120176374678168725284737556665562799957473892421359106185348687926844813050168492659582496583160021184846503269754375636786606881240262430067457346796633469993209044218483375879999633136437220556033953607081949368301370358728997796151310606678215862233065465910683909716960189368712254615830861409881624597502757861608683829018831582443857282479696510474777178309803304603823923177545832387939016932947590241869116105546826735222676783543710732374746482209276633003352298396584215321436665939817757656936222715903005494338784487569944894937517431174754534360486151553682391855569316268339820259793329674585756116265821701967900193876339233188339075119657123701262845713256252634603389931600944981913931927051306136933586474858872925835375116671251242474357742654601603983245726511135693121437746500685265913483811631766300841359447075662053200212200562938400561373166798944433637592907356458557203944735139831975579437834668298048351101664263821692227744171584496208689312502194942899875832337601163755177955964557056935834383067177515789186617710406874007399632523661891471735592945241412487374158342749765843350009162873821205348851377702093651864581974454036841661436725733369220973526894052396462192674769631362858821206359899574870610132190583781451901659557072711764453874884622177966470407921538429268076584110381948928270625173827726168246549942618503241970184215976742762863973397920806725506411508938168401574433475926947033929509167422022045945891144144889997807115010584800751925299218852283797740602031939733628255011040201816103321816701844125945736634646049592666229765269798172715178024010927557835707211226046562022734352023812492934485713849161818874564425457126505111964050856140289470126465484356085276423368242640494583245691551613060578826319298131888674058281395965368484955805907930661684157952056965883869680647494723897465993970805572050673269686535693969823159570139606155879104804838776266898493477561639729696335777872430228238160840252238846545883094309088644533378594046288809258793732979408908265228229158799601985276507235337545580969301399863115145683038243602433780455485212407958649910848172093234216130915721291491233713297661466629807022556660227456903912480581254710534615081690572798133739002834029136904279061289203304741281856835137013738492166886910856920366164475533722247856690065570478358910176402165364361860745410605866916349021516764591362099622764505205395942175077054660440182894082881924953220232382364690732124006776075042119763418033082734306376483395670979750273743839387185913899053285010283113444498308315710573632402489066013150620249071303082970652597651616139128695630867872402452786928010713844767765572737552260599358309288868584466759088325506535393786747695102274841354847530551204518623565376540270408184937199120203848940321271126551492157376610334476521301636980249029646150067366109784329865920535189429757064425044222219142327463028910355170209315828861965201089129570598250343327058230968301439804806965700831103185449260080968086569696875587734367029226415973228590264183254499184181358385015541451387689933918806587729546537216681955832198860986006765620041919300960866507397418092422782461988827297679759745031175827013132701686994445658190884290840058326888065750611420508122948576700119874803292454276709444370462614461230098456716700442771885769991877927241490685088436312653728975185110980760761615193990590585518510866509396032823548362668674355194759141687990236250284875961744048386160202690358129618590388282299344781087733571780013659057639874954792845433431949965797990947397491335103027691326749469409605958586610575788140823389259240077181946150972638038999540260684140910487789446428626885237296269871327104978859577794522336180989735877559570295336156944000017375200048128570402931854573289246171541773395172916908211248778664932195580055680124987387875259425648964224568545895893830285191492379841401441521878555105005782487289815888112006437697210786658332143984912053318339770450206879289279707390170777803907544372436157880053973436881231509393855051838183281001528309826271013637183923970329987398229082817942451249319158843299384796193684051998059804136475493387789921248670995766872886117270287511098468392354448508887689858572595262466680871877644291705697869938505539732197195997644261387182719127375674594795366241277493640067266435628922813103702167550154756447127394987555755742824279380203574804765333507914289946742922198402428403838834624466034578303382415415954014103002859342226422136638793900980004299242013565071663913182070238581301230926506374192952060855041302954626097433743926878407314328759488221192441046085362185525822260879885939607082309401063909636931951348271299644976760567506552114095600574871319750602864450258712427583844030251906764823747886407663651462274816661843958904322126520406717050278583881222851430148506019713719741249706271218392240522713241639775625682275817279982500923329030380942408253421139652867694582485421827900257577979933542688944008526319892367667836753562668737289170312862806126468437765386968265067637476688671052513202726489006206966922547228650401193535373885932625106091692109136901825336109323174533093065080474361444285344654380357560598754008805237214879020772023137061182947307854479718011564392805832991349252204682705980898999160718545822120343728431785442478568615572777067354951260802359035892191785229670903226816606695594957366503683706424930134838894647845945392210775725094400377798390295726772558070751066108006240090768125080808906192673600316957636342301454963831796926920050330363266383900214064122901645549823639407750571538384943094158044249588472710132299633322618663579376012955486102735953273829378473102560557956505739406556202201983181619604010437690240349445790445141995383782833314343632241645021670579678284461960972787410812990393839587409531414868079070109914081435723286688642496219875137017521818318715413147636112405869017182828720623274480591922372451857961956093794449706445073867680862978673733579313459546150317935152651910574937721916140735580834513367907318161508033174385704526783340866284240847116075689964634253416142238361039303330478909891564556962966073352454317934373232739210267206834997019632867485395390421862771792639948986369979784060484307428803783808227441228501557309013851573551605191535536437318661784918404562439906826938414028375456705382283106379672299213269796275023786737571853198359814887956838884872248730724645866257509369361304700150093865404136754361274652809961640955517679702189840376050937399332101698100864353100228887051377067192283007187583038392157645379385326189965020954732366769817602616051019603864855223280648748278547866792607483941228731041599322802086845334842408251349837054192243475169189899299428540077111158171716720315359618606204634536284906534087074162677674387698288136241948387631633293756501998690773665733350451032209531991300173428521998611966766759075432962256635576271014516251772246242559876174622748795787062509259249675684399918551382819573827194319049805574559266606779163629033982977334417623141895027887914643138665519784876106166439670420535084324846644415359328932841349785335139339754962836644102039931842350374641165636276165525978567752733191332442225476746761956842212521794827600842555987538893651204707671420094920956304097683119860225432239683691748731091149485479090961111587435467405774312653477154982194422827576472031437118618911415930493429174451652946830556115089133938127273612540209803127678793384239885304890630132218836324798458816774130333525535265318094524870235614955532873685801466963417953061575795998056826481213052330122080005620269347660412322333148427904756649397227364946989770116845627695636258096325014174762331215525197330760555961918550144639573361477378570305026275987373249658311735337338972868947487400399223958207091890182991926341488847865215695048669756651184042860424764300912171009688630283965114029805693545625442140245648325828801461718096848703914585481089438431741431783742257398715260077197580157253441609619955966083854616164930870420773683909985750697705233619273042165104505725456860908367003032442150150450841227167710221945494066432009365567000799766940985313565995802275421606530221045140661332803528742382844141562771437563429353163158963677781867307380372401069233946413968364296413531671208970492587862799277147117903618390505739095361109903960412868017546259801990334160294419651619741766907192729513947785743165424094528143582567511598494662610985840608095675852326583144018279454691105612257740793707935745339669476881898373125506659787944445449927560359516785664757672216549045623385454812189539649680547784539265594076713712535362251766217954215175970891435163626169969429185426788725404307791647210410791842331721632628213237825963246606935359623619319972573185981988425852846285785127155619786939575235133960197011079014408137005124558675734853043268826428373196911341636922604395334868907657817893450157390899511993909460407829511007823379811657122867158628961845740988260089396434307146581282666290571719439440145032109176742237467733182355693246742281796472850013982718715141959626494679042394082446785209593509567674843180230847069301812970081948436996499811019329216315739041093331427536626633688283406261195026859204932602826542174587136412041064344814511582888606911377582055349653739990622537338578746407236959839841065658043841979323005447424749739261579033737421717845444084931736114788357751114365645681540612125715484668410003635491971253385429503225766844732760848096868644035206863317179045915964567745296850010701190934580982341715277126886191980064664173972227173978836526070814879813243760095621400303240491297341469469130749359663777894937315112094737760391734599833000834886493737320146608448684975822773776009619580031717112694242870188449168755758236837639261610262574918188455699532147372624717387699701675761618216890854935105032384314234625282059078358131277541988032797379041976371105382222476071474251508028759285711979194096053731298808294090725069057340758135708006165801178448811874275322093548402386097751704422561733946838085170482095593198405755545873041507897662788593677412289455057781317450243179390785427315986512102876012025465825142024945930226287253314341150624433360083760682183041411582022188737006514955546166954415854949739357763005919921371691445056950032238862543918455986510395155138382742456664283723172038723295307230076458001236281167349514964993072478460488498609267948277161872640809350976121702331648372315476167900351073487395581468427576679052909967533857434137380199141337263317235380368237698931479487561341678947235567888872728675364777300910885122840021103722686570910638864096388462902206334084641712922270599406927925850017291018759823559115768947081497842425809002755635950021451920912664478099317756074805980420011649943796405139601197177612184210361565784760027454766850536378949891076152788368156148863162094836336690743043324386301181814182742346708435709548160913508370584043878103023515544567117028810205520612314634410002464844810913417033967571924226724308528267196275670531015541658774501862990357840751411389152726564380899602978290784612144397835057818116998623220067591473759283288851344594087709198577502126853702408971146710391373510731907053623213486112476501381430577061705156153737647761350221091520941780779536816998659789296763054024628230788536581070743381377460572413642924857160633956016051055405207458023017158527216290761095929655893576081179571911734997466090938098966031481220543843348022160050146910023749023280118694991573317215695964761727477214906623634452090514469500077422835450518827716555282579514986602318966882634189448859400197824809232408385891933751654855907881675620003607639947924337752760419017142530072278472179039888017894190249019665309769850394616070385266289995275540670003749732689651167302908458909110909477532378271490617063387613593175484339106495891336313533032098018598599138617582434320667924866873209396255495917179747493312892747260161224027274145390109929762849515697112112835531134840556290804933561143518251502205307079880090976839754757752684311431797703936456831586003444482194980647445102984435849297283506966068237114999823985158109601956284863389597618029491391868397379909435282171506478176925630725112032332483670439541521873317929628566750793320530049303141210588355878027559167752075917540896590994918711446840121590698565638538758794774122525967956456309953625672041801745117846000674483626314908416428343587001645187885568076706377135165478056992540864686179652020612099278961321297280883188012924453542908296547750078631929555315868590637241042452102318900832272527202962763745531805568487290894576909355134398613505211856562137925593179271439193333165049629828091948918293970158153816417211930244644205132923359001516932269955673827437379001951225320429002151796669516056130886325774853775540699360321734990461163333749021617931307704617772376481573769588483766294574465675284893544258608102801676770995231631972505343798139393857569100319994159940490254086787679844720118909311025316956096191763044510018471771545821097268167939282793894986234575292973175534184320795458026634400383712883885962393186723540503380353598466718192379950375848235564171602982838197135166688717888043403923554119289239625045936666874099178697825606339288103795272437103901042694365487460377346179779081379987622684730025705673543082431409973123297569555449663376778632223385376768666254843802773254115798990052904935521318542872024377156903700731766061098279372308058600944886171398139718804184945294835843925420027724257260880994626693262573427163821595635543548923556832221915025793660869400675005790293707358753465306495115852747486055150815584016821616602681084018539848291618727349619974430683853466844338925977964858269245262531193101730822727598089062260710907502828744175032406635010223732597411240290348610793457790758388015158496964394430796639626669382412970263181070249967893483750442758539741214540605964142312468071438205027530959992383621629367337625877271432170088759313192019034880082709229180950394496679814672100294790982579763895426197886501747179666926788317102755350392708797282351032720558664821100966310329415869124737208845193573575531462481115113976325585710885036867118181295435094024711756792752966842920082356406536370452356178460457605320564679925497552809570830366140985380570215936938866519311924514225299253915254601333863036640830079253983141319682041764216051281674739115574518923483772784520366271905843371534285110131394125136965716230946946450709514219601046163318813763302294635972129133982512429027423029149673556648350227550644199859279896332882433784811377683598527362827241364134162020456339671208486029798942025845150060739755790325125392499434604480779315278166427404345551731462847260470550874959225719779236147083645949817346165040134602857881073605341260882592585234846085067480484036505132234966234322481681259160660984212879619676844239388892784061741826233346148418947376261224869401992785787770022113704211511354096705886482296586315746992971553398997436621723452975003110966599174089458534928763973872341800742110953421420566738160189233454209508224067512588604432563430034677236107573105044843315312140381102187201732159336516633528876431520083622874348360014716845513685909253016587111756141602788403006003176505733314180522756399082828742125162000542659478097015430325932019632677399001577491716066433655852693300946493009329441316744970563213831388689899315744176023984107497413466421898387489101403058272746714827990703571305942229307869022424661967370403809241613779924991170485663613857854893890880509216327298534342288578385216944405457543070052994381629810541722366481018106804045623503760941117224719735475390477739804202776861968664397891029009139961653270042315461849718047537629252646571790655264210187219481207408410170904192370696773642452464919267802578195753712894863661226099008366890453894246717231705298370137327352286991527754138666699744034676586779186208983844914304348761768698361849807079181727199262627020561600901647769128848637259622979200741236091901056217261758964904980234628966668426754617251913784850328252023830853014414851176576683067266356400243005702695122239018486998566671852688648401268225397486196955897726419336717415844317984010509393104492174374767887057235359514789426276850891228657559323369525883688349787370637816644179860814262914939526367161679068157184641651821459469422575403341177529754062277962623648478898921827426137643846049889522106895325184540830055352242553854362908545465660753046982136598190359179203930580112977091466227897526357761541551661479454218289082204242200813529191567757888013878298270431139566934038333123641902701068999789122140614035632508478473963857094628017759777968311723761117312566447661997347485280453551345942060479803889569599543697049948666643194736425654313357789058429635307369634630484155006865447863743506431186451881405890857805046385520238160264612986796272320204694543266599077973755620565329174766773872770795049244260169493789914860846082068303779403620399149222333613980627225739893888523085098522873040835328039924748550147119163882524572214045065547265011106608779446951605375435693166318100295860168433535816899234572399157140552144774321712959000905093199863231118834394649802821745868692562473675848196509776086540727632027566280350544069434994262002210177742393411427608427000402686852330061365155664147833093520800921510521254591291567831065028811691765040734848906873908683644275013655571092160260575348930859176090014936164604853427721044068345774993896389285065224214346560149439520572130777692817303918503536307669030971546780962398066847987954166708067593547638060634355348761086551911141604829863845195799141911002644405737706239215981770235407903854074368079980383604462226636488409197939575426213935775737156828033984067821072579191330929257051944486494503021052212613352281104752667577257768095384048149647258169320842425509426604499859737432240468205954457539555678906722180113427662882381865280561723523075155452826805361106495585186943485934402607869216102573579869454028759847988811423210069595194690444950335404953863222514267499085254673658072919566308539052438488980860567194108348344928635355237984993469153983772072005063174186935899066904374600347271226827701229128948428954255582041548613868878353110330817250411395774875729743826959923326396332618848863837848386325474859356567244552701196000537378408222982591521634877753601616059090207498712291033918718300430054170774649226044607798478235402967063322390320409888281514426612806862103270102460197894808936624153215357243380387314491951224527693252481579195337654350276687837076912089760825356873722674391655491812436882469088817829913587200167949741274019947703254886356113564254862798200226477336712650354664565788784356549264227786875951021635898927413462890083255378384420079098348776650268690005258226223608885403893411582511421029345800099585979241209994411537598357049118988992239438767839035886452775165357070256587842712041728739345258243100736459243556703346979503554435482450309624452180223964961302824442177001108837083238707447129055553541139135013086943384303445885220051521249413273470944983247939626069664440302754486371011421491993098177933308710115110863932541789488202546488906672572788913569252700511115179456563753471993101460101873257390723987790015991604554450905341522415676637524317904913835511732592372205098879466963447938755452365323808119388491038351130587689154184719912101993138024271822749319947475395644757340220964353599681783113425065242665101983759579498501615438600061000255267780871484162191918712817009437588809544855315258498259832124115518525614483902113715243501958569740991540001168636563410090096575693551302097801659927662765537002313874538229384154693125092311407052560704995579991049249786386995378215395653722309201041239622550926111974487499824610704048352015716474965187549097484903330855902469808984199705451748942804379936178987411579407452268387700355774771515160860996859895990182927560379101958898650415978714373282520736983253301107953279823890822450136268237249411470475527378073138090165651405689463203473080739521183099462795370149777206714489241101941728370531103979907813637766053741106752677175453547533812819573078778096741992100444706902534942622091966259922783054876312995320234069679909341354400031436909380546161502084683606759894385372800454675871893023834900856837564826232230309180545954364263532587609251330613407736065272148910661510010644172052769199495429077810500328257418926396090754704917419310716268437365638447410848679647929852846388520196858416308617468456873254821501365120348275967894847988010187410492469675331607362297816707805120497518149083658876767331276767660674870979813335100431314900230916476548957997975708423587194905646216495654699024421581483630283271754868764748015220819602683315135294604488487506179677980372855834666638713754855507409438129271016265427858177009678668869652270618571096159073087398549808225471249656346093829549359884189112633843768612804453045818332338894404947102288785951376698542832553331701329711268332255137625739499219496857685536577102213312945748318013697996616691632603060134710829296423887413034132958016012574772423317233368841243794067342902612451527745738877954370956695204976623054177486499357967950331922714822320982555918871596843912503970536139643233777069440749949001092068600827448667515828596331247833251305683853931751503502812412644670230460518520475841001084679467009495213288009080866088163120544632573677861792857696807448960325177143178582357759494816929116357451741051007335815370525398164509991486456400692398483221752533817136310780692156429556185547145085395136742399006547528995759657574669272640620540997660706336558306352112960811645485259706111305398608351773588660247923144348322358442691210599635452401167665661364249920175110140831344936786133777671147432327576862789253134617123020636012993024119836938623304196220892648191803948460077639174131193585077582760614844624027349951632062234154462763176473839463923898884827505334425370585863336691691865420525467136885602741274784517195219856904781285412890291499482571517389762739836355266835286953342358889717877167899353888877430692768973671116653234634271184427797195462164899568210243552854390665009444436208692005859006895655776954262199904400536621127102021623181126043430249230489793245253547901949736781553154925558713537904989045871364586770860281597388934076980539177174100269588447293116399347167090417148383204874191798244545425764847675470970647975522633330715243722552981537304923447445825219228679085581813322727976454802535240891777933794023003346243721239940871510429213300835975306470866245755141129446274146008458364698390033286471285870674196937368185508122212587709601506499501675592612326879427166705979698075063992547863859085294169631054750776479999081913611310810121134683693905258114030608967656597501082159950251663399059243872085575161568960980165064024101885153293247110004674534738320806417270753057744361330944280032021393391521954023468694997659803046532769718597807933554046225985029254820835363130274161911283884593917680955399237738405455230603741699488865608686467946699999526465712800817022228307159079108421400880070575282774784362836777200253824118424551830710291043131603675868128728740838900560880706082150474153991915080695817017942144123821008297681616513515861945999043311178888153116678173740340041047453674858817766309673035330575038059682543975119694678927305351771551525949481789616237763714127985412589068966200799812493079654378819114350235184413999802495143446318728800641873219311165967597227015366461306474844043026597339633119206416220237442055095155159767302188841420379114879951099784443714392974743806851259675523791999304663019805335571996796792449573090934115011929831098373371067615477955727271419585122256097304756239658596235308880234626149414531183800491394188796733001109530153808561253731151187759361232069077333340185208993603846671888479938167336517103039222308895480800575254726662671204532892513371195053927904159349609804007317959787861320996937739661750031019469903274947753200725340009271211661535568588751772693536624067896965746335835215577481188264775613997978461758543280340252910828624729053245884675228942194502717522831021248033672174319565561213065680126091103893850042770253830725798697967156571642131090612178060927906060754432059897843935808774384794569579532544875085186458069701021889873887605961343121613874409063959414507832142069114401890701316923386680152034804811012564750255772224856109602046613990584333471524396636414114684955379273507390844284832010387910313386781445505631886339441845048489271728204305298046351811242670460778298468714462496603172846313455492222442861641597188088394340150525735755132026451031848086255232724808669805091963930413583502489751856932604173229808884990484101790343275917711751314515523487504168613351547195027258089721301988357588015379597928762434111354720303820797428676860329880365476186906883703800848400965234063880517658632598562879982466155248314353488778242925268315222732267931609513707899071641849283609827058122034864572523586812297894979883474440640152975224868846655940498365897264165038691914741739475463672555938085520653763419622844467010370906725355992933338801730541318298511511578200444967186164266269035668486747216666384253862806984699870027658210106767474854559861965324636396608656849945956234637222323567187477495348752132142455723436731047161714122847605591084136380975749339213061174564073621550529078757336838074726303074431287723550954982402822081513556040376011013586271058852405013432751951024590478396349607887838835933677659830454469495039783680407293287542972182186757089902252763475971951309869928175215588866662583833152234895963186835089321847101107705378206957581842365368866128502031406012760364241808230917225992609454053754264021462858945955267616251749545317582372494252526963953482969749500929420007788475208138088216430848736512059300460414083009927950768239047690739225475615290420710542584216740583870645463344681160997290954014431885382480747965230160676910837150860187104211614951286190612601441959996555858106313279382333200593896891172124394492797015269507732047969770496896837692541704847154336880679206717152272931299966707901843629753467865287929244645578944870963437858394646454879123751565226237580586647418443246445410472302125232285821726742276673743126841765225619796073451098480203992272969768081782875899099127299805767381698767661048658800645240519582990452427881558727871931052339097820982258676429328587665763736573396213863646218718026227720821211417598710281058222992878734491110815993010109046776818518728126749124540142940746136416208325210082622054268181881484509576510503722241350213143870232922906203998236576162612153399873515994364027746184597051029697478496871359243162811745386347079779138509352247669288099016733446970220402738753215854764064518230766489715064457618806108852119005396440316193306077447430515353476627753890070855144670707679474254215875435202091938329075094947614044548748258444746637517381791616499909514662434481381812056663514399613843112585326367007671949826341657394213366068441263201217522806444243129762659132124785841078880173917904645714682454819734266963381667661299247291910644469206178691096967686836696056469646613522330283022273260698255252096831670415195499619783954719225977200202562270129647124400115015726520878058045344622889848962583556903978099814740067810937086549440392898507265378477488852218845767717988767388123374410871771375351316865554215124422004493345534546695590523159662425927875310011097934243747954266165876822361015728507969608537760980583748683593597351585397321183127192694620260046656297541469285800885095529504558687724008319207551686511207519975640228600607376349911979910826324578267306861495461339321707253269631558711176117075161239404979481376122123072748012952082244627489471076924174145232554774714246648572404262919677259534854240041371806849490150128496168030314828564054796435650567791838669674142878763972735096207738970001201448448042789643496598335512915010901577802382056916919897370479460835979583449569716294003106145662468625728594108058649142235103175941985673127584585228707899812691891933708300944439915622953776327640078689118426647957767331273652988808753215176912317740392478888249759083267217042386219939956873742651341242174918958248977888501839771787800871545270092974647555864854722658079833792573532670754360183323762044677322958275775706661559546914218136903297792247126238851277217742969338290488246303021138822633871728146476864423967426301166406898963841026901942705883837795320826575787309950489293351969597776471006545736980214390720416812726271377339426468056766435821516019327626232670050845318667102392680639628026000637445481260852637429592385230835559602714755093585604945393351694022020369787431457385351210842579861016021024156714204005133113896886861414958732013220365662838577071385481401682566968933132696028509291897877134750919246013972069189501247459660462141950835873877645553230139934887832118726882291329808395447058944251140551117342245613752281472761475073891699618769602365292897884035317111355878816169609397624988338169217202045701145122296874020788631910014641428014306699742332815062280355300211360958952460681986326340172402762934092826699823886450123052750358201777633731215592732504880983990137320044245005537624442980947735078270090203219299775749152467063404548336909708821955971275167345571917311576387787643234768625756955767565859473325662640852057843607519556403142106711557250045932112581789304095755671557382649871254022557229921352330766993472183930957641191529261368577976866897198131439755088209677812148325114417236371942987331290218305131816875504421706292866347699991626013690048645962327433926781749602588552333493614657661741536502964947967612743871285922825450906182166083018683444843214841397454100776947383138326408790207165462667057076070019807558592888451486151995031198654342337708992957919144391724532190228669845088033034127670264409219191230423095026529546841522343052522102103954020185623121657791947398339145241740512451013629609861380959049943471942390953190694883315708164485085391601110403662841409009852114790875779000654429625452780953947827478105576029217344687596477487005976717544741460349091591600089776911121683559114929485708697036786559852125113478899754879365072682331309230581008237915759628856802863377206665785028329591906869530843961015386577049550165417133947973888547496546209047604515780125572935186338705243804368445546654499230188894033781071705029897556830068343079144591109497169075892060693691595128819815408873128504894428800521423557671808135109862165541444250889776609228320917249432858700231023420969315553878550044991904777619472345955057491311430145716465180762625112545635379521071640239489073686989896009523966075519221605714065663030890824960425118355829250358985198039964293185325093419723825092610129937458552840617739907141340055593981051768604709243178125000783248476213777681963084852109245208602544014534665797044410036206737257896256253689325596344665930109784681795313986457756970220139704875070816982231663142839501855006764664263957811549597302149036289760839346262179922331383481303631733384852156151176041729004834390453246148123881891266204611104630119005904181854226928604480379154384033773194720096935796177146050902373895700411100517370916580471013391560624009222291738160988777912641791005652526873838601572320084371187728446525265622152970763800349616883159236585269701951968622699742944980553222708994412357112392300512490604625707213886414693727389613441126912364517561082716991337805495569339988238102442693424996810125450674605914141837681497577212615175208477598674036584831088545108676987033179244261168085245730624859522694830178082190376873023181506401172436702530579452929404466737631213282033927490504359936297016887160755717972616216981642735701276422979663178733601878132078263238874072368337098351108829832798757957364659208109061624737202603898834510633734167308419227597821399344146408579983835632466188437251623482074059102135104521580909178385965673262329837441119523545153971321196541972338250722778914652463557019217204900995098705573110905874938511766917010049803985031631310210572487849533693359112691503649021811005598904840251658362111816276123467849061288241205592695366298824236420461906058165910109621912912714619774997870885488656569253050178944241900895532227333029275527457845065742778941315736568821601367042601519917467285482050261752635023084090590260270908246642263205254668898492540779776657410452882013845036917628534829682137157197574508219987416024278276314003382053114819120337786313599244440855402583735166427079597003577652825340303046653978652668194021508803106191042372392499416377801989907925239815020918388624589130915666723643625400102442122414797644980227781638218182582153675688500300863068357608592148547690297275803538474320870501585673760924979158148150903988768365739397835442911069815100724223915657269832273403873270157592371845522331838269836702933456111823845593932930187973959117628348795927316373690240094465796661877273323623291324442116063087149100661486700946917669930484740766932479128577900297892210459544623210216409488120373903521057951496194962708081555617911446517004524084245545289496332130944218235024673349482252326683819057951405285455473075167611830732005765890385296076471552030717400484138595974247750509504298962711124654249824230622993344187460117923441737896562124339219496913485554060824851821612645836191660104966506144849954392070249563796246973350871535312659054095140431161763370097997181346276003222296906115636421600255365522249897459143118747343816281486306504225441518807645385177447266048195679809147477080428739994179746376096361623172636691135057656709305338730504197823110470734781508770885522452162041237379442588041252081529686327233006403601873310717648207231091981882146639689802110834913867788527034315456281670866696544982272520202745825622551059144039671883622309430372742015008969389490157355038736353110233580543993679664295723731098577341561963353178335983251901617341921412688801209711759995812355434734498382678861947026162389580683653267554679131318580367115313795763561922949023629686930072966306101045657055787251758014068633607594661113891519145859163471839718373972515995619434824376436389519779053207355209672102997473194078405664259741754097185811521341359705870005264745305877877052901479972806830985731815171012867797946466017327927013569614060204359983563911059859691463761715461764578485710955658459070843870630062740390583150197339534865720199695861469257591336846871759884348474084134763175565511108989496844719132166648622015235495873189834114939634030101932395277988356301140773630055254339880380235401836582495689979769344881354156344498224210277221984002514654351711017545736923043399371575892109251526035899024834892530735251388976204926113940773637902576341651862012799902210360624659633053591096567841420269680115675133281757569378112665406914367716594960279169009856359425275047436389135849510669223498512868404999743699110568793695769573321353807028117254596385511675135340914676253435753164026935554208617505687094087510417062345118933172420188955803436985151362453953521260896253350173247312288526000585475690982160398846589819914092449844507570239557976641245463020698023344977814091557120982428267234315858150725861865954248508935318446346498701216151826440540246132868162392981506448261235934586336009975109059586967084493136281570921889525166935748038768081566990499603966890631403275293831796236401211448132143105131437686254016208283064144028517755993372184927724379106743635562862600705250208467653231371056252993283886208133090875719948523660222403333069639643627498163156702736236854876796313604302812513975547327736906736543182359232408021781444062774644248373114855659002782037073966668949176847470415696464233490313620917964958290533626851524415758952005307259825210212052650455271193756731348720985437822896127310007721295035285563999896721490846205198164412910032056279297412592504770521497645051682691518906289140655637187821751858457240312825637299291572795154636043291991096943420226146176201402419393126502134574378894685627827691907761072299749325115444878517616894199402852130491556302716535266847281620958490175712873737455512762235981885883090115869406419749710384243110876596119121291687543409223201131518526876180271295520157656399615741177379435590346017483180847574258511192976117679584129271285981970347590717266317034590485120127896507096969036625574328844520886849854412822800986434420133613014411780992744045927098465222123779278702604156574041806023202469841398287261175497583817381027287095999997672552120057342062801721850536769358022483437391390736304916927015779972658863201830492911937338261754366039610401872389261497500006270011332623185947708076954909839414226026721697118105335254075502057206711776350197482910839970403749880640608489335638132171323339721933604201015884215591687231019201927124642158133948869121210825149695361783085405946638800595113800045120487602965754533007248335651047299380536585425291428190297732750918134018988775325275102881644574245597460466633537352600203070600818489670936505087451052098001549829503036479429166342239674339074262437917315913793850628812410660438828355214044994501053246159122401757303801353092135426301899815400141962110981541341815683957025133887092987961789720356701325079350971268213243664242218182241625138978554701190821615023989146643259015860214515637422638418638087125764859025889924917067602218895397587182749207283941645964380518896883927198130831954828541424131986532592355703316262452189565862778878500599201033018655995107603755227469649794789722044246581705986209448479983667435283479595095473830991712123321993858682170291494243212494513663701705347608536990054529059332104862057005486685823558380344063841484178790755129070522200394327543331459333289982765584676935384878095825164856542017213930708651978681946385200813015912715700004361008121212719295567434774278859222746136411898261152997610792434050134134078553001935721914665204388863491991451071656160049953206090086900792003754623470444355425065716811328178903556144640191345594990916491084433632629985599729961805470360785022457661524296960664506346134093865939686026244048112998623586317118636984466102744975351970326065992952648363191477943226456642461418339979778256076493302808469994729936669583415641324834780323840656245928562743481378014250909625025263365876869956605114050695398800209666571102547238353222812092747639038147585732577419248701589979872402926084655161304032244962115421525765826078744636993411637285359789971195165568756290578591965791842344222608724435760629194416288619197038864476208869160015175110163982965683019445936722216128446077720987357072376376356779998115756859524649772303377089296159055021333668916141661432084246703403837583700793050908340476249021277814545233345885821985751645308231196293840957647090022176783034160000257793809441299965472978226128203513865930425765995345284680032385817492932172332995832699058817119275238952260772451566342672068660365153738348494610454068256642251785469784244297829482983537427660362194326140418669061150599157434350668365629257783977580600683309772926110707844907450716581117457033169459129088431374060976640595660879713608029252715649763018350255142474849150228818933401777444419425790309481508964118727258141809246902363188855418402875883873969817017731765214313255955200008290470186663227310015110866374393294506424845981616649567674033344492333775781546846986460134027302560452434209323115107128513324733889789770484604128652458718774241320944645721629310336527939063186644062225912197268874375375865409421987527720630977188721286694990024857897655596064711118039278593878496434539086969448017568691900851884757715593796925619985087850528480943553938375761741953678675368317752118015424448748941059954980135957564763337216290893922274442691220428442022430882549557875637942508494400699274798883501131795151223165920072798110288405135329419260571490815620739263073093393237141151963447038005966153862131309862314563362315545251436830968977833740337598239145977776055685575127698261775556872177432951212842381998838112127085983542782005487079666643999640577199038370572645249762966517731019933174847137492344501467277035626888718454129191417401679518062380941112102986662206240186510119935063256612103555906088094430421775319998106171634118042851928193434570907066879536459781921594428440489302334706127184745602901475168460752524620194966067189598369301581178301966871372637148551472056118778947088983461384583393041658772205636126408882931032131363427964533087493908887968252241366535725316692609335276282930936140587693024496800057307321906949802461931130378309189546943447460520338346331774458063217116182731482125696548658337630662121455324976352837152519377985159217018404299333191733969950541951861325098007602572745311005433242196926541614523570565896763965928093934644134199160316829393849927535826595559415079140830251082451075794109300659357733814128036800909412360216060987808983599031311106143562665450861977178599183391718341052458712778020227098562595343227988216907922700899039728702715883608128449673735290552809683916511440387465773979938194992984339449336807860603438140389359605901114481583162955135332236305436687510422105095972977684927830729615645707587151584494411661838533759081300719456199775966487205164917794436569966441553631594991450463092017715161459740184914665640701225638320228483350984013529103348748390163104354292934398058428239078884262858428052787931784776036548465378328824375276149435948906587332750359182541970447308931784911819147450828395191572074626964481632401167050291394353874591355917682816783949798603355977026137855870021932462982741050930766385814549939019394644026598225797550807010140392062498714895982253127184477263209015627430163504018734875187247129550485688220794880945060093869038722474376883366531484547241407475387549295023033576457897224996678169833225399381890791219959279871975787201555930224334645258423355227738513663422524784190083596703356121874659990211784386965645899038318072960422842925894256720542771820084845831858788645879277869764694321644832127472065189789557954085875108530814632652140140567033493605226823567252301386511369273595363228786503024156820478249515489292208389000438297950823180918991806379561099117296446085008558198914469494542657171162492224393875885847002657293671837740980536665042005275499543032313429226805949515422833918160515846037038778071254168283704215357227099656206337841905440826937350208745812769407094941346850720126450457653095880855774604823517047977857376682012375681893805638646277947578060627619221938968200318748233479121008483708283304261259202669803950600140704601929379972278614952089779616670644239667932697087636792966679621743070850897251794964157594169535790532152170029496403282257824157518387573051752303545996671944085912747297740223176261724486122889271613908596054582385392659875395305366968729491424647043655776902973521752464206357216408270440112953805554211724366729287441022214958405862033782646800089274997074288713969550553212342195379303487371500560690347857442032089988593200381936886937763806487941756228098662303525082114297561283991474244537843439086334151644491895715308980569859996185663094745656692724093879456168042832110211857535099406144079441169742895322728683049389676320781246252928829380988514059436443683170593813680700999214635043326384745379116234496855283023060822602843403815656971396342204782412837488858986335742662394500060222308765657183066833172731451555866502086098410287946858069822900598732175054103634932733998607433031102026090986566926074641977496925881271116308455347501463199039240230759102487648531408870116168789712745566753420925131741762403473670020528778244975338471722285690017074974387873842873287938612613439480654280775893019774563507678525143549391087053759017539652835911240659377251234851763317906627092078742661596518459146067092256997127577410977143778631882953174426334708581023607147965217729024575914729731186788692300792103045785634442929431997453902774516481837113474778787010819270328815388929833306820002817197633261995391798277735275397417854588400625395849833009822136539292447989916653278210780532766803731127121172586334830453732844894933734962007021426205576504955329473065907258368331866345676879235028410465126983139949939031557915705804269088587892893330144541077165624368299327541522046904773092156480186665166078721066036416380177314498715832411246438426281156855137078857173376409966361914226058559321621527516453515477383707031614824959381563977074889190508432169431141734121631001118417782915819794142776891431617931490553163858594624271548889479755943158486840942297793522898762096323577023689214713427551837273654430462148277034675430268592501678801523053002409920475848539890619826536095083200996121019716382234185620553668163730415051391301239857902140273676857602126322544133154505329366130376180561122581476472437644506164634872155107388634441340968905890825601287183842869333728004362734138507352179999047092026672551537191016422256609150208297340086676859548099767603436065962766834024741992719892144723573680209972542489974744280644654485191296360161547125649544736753809406985980867004613632757139247643541215793936809975280467783261359445438140332040400499706400006784288544724623361413796335073564208420925949427325739782521555318757950181880300560017888503734282200127723026257518175449358630245429882163828179416939889446407694129814410483648503192609727294743236101222256861610243894606708694476989143696559834447724712783257504936689611838680232936304891935058326695387020293381285608686065600616780490313472141974674847353578202654849457702933182633345566389794140818572841199576056245220159346495076935667551051956148181415753917580990262885162538811476424733485766697471880144458544227560459473946095265752626000164788224635696145513675830962326336673683026971383436229640856999947681090953878700210033728871895946527349819246175232069077628621383708263578164888316640613679106726300007931115747745695282267809400599903280744599799222263203885897901116873510749731771009628938816709614680280729064478438272578365930814521134845549514750884222617861380771806577761704774212630707181028245739396603233586111883570881742208886274744713714639082548488413705283634298699951015598198368983525891446517050238050742754491845467945801410779082242948743924516160539512192595062795337045025389323701572063189274673307201181130516650873495942050931384111824028878880390290185421863745629853686062624022680839659142159270652634429776394495419375829581826363469048064347004441414756006485391730283262924476590018216726446334255958838528739847248416380103963867287578841650073107770932839919056264828262657921171551996809207802113278998827229213918263033884007851990412321720327220900957376249714589817018107986102329351483039418854921210978254418134942181714193877015437760248972974910570440084667496472231539865257987493253995996986895214557195315163421643358776793697262004211648874340434062997923882929579695948306631002685331081559848993701932150846351304649767586276956334688123833183825240355893940225641884233755744586116935988552635642096671552973088810801178705605826864905858198319697616905830909173544277137966799855907552398316366519192587846245655269066151147155313370927042167514867388522786239505725148307152852317106578006964885244765509164396255323868475678940034555761847346671425690814719706647585908715033568277549934501794139916031019146593939759341887386724703130096217268510040284285458423899733719813628229766543488132561582507917610317218030575366756360994025296366620583709898002541805028666490614974286689472192008883251702229956626020892915052081500565773979111919180562305805327284730473626727048195072299459572480116565928801185694816483491656580163772137129764647821153515313952432745699145024911047217534001827856458456499325093134120136271618723364377520084565014215683830399639833116697434950994009824801255131670510016777326405622626581266703658312439584132437064635854911225815393460562986446938320388880839569597573953709619130269263735133940717750094350032080551238145211634697057786568667966693738462747393956002319601589433205012892526735525700188657727174734616880005592418862932828265709909039277011138175983894715728409483991783992628138783452793202184115908576518971380986197642117901985350018077623435836383305805896093781335319528663791013252970929006425420323739067239870382025811492333256067985242503986456050437400015716871699674191999831364845018945820512084814445856070795799319828832389865301091165338760161174554134006819535994271200747777495154155956818085355440557752130995138696178269648514780792961325726841934202227984993127101384076375214853898039906088231538714657150866359792776537887773855241167414743320264163095305178212129072149081509875210964268342062129387725344299650397389931126016211397445125051297893866983607317418803253466767615483595697033046252290357255687058331455022499188225614538439170582258205936983923043450830572830817831270955929985871416817643172860404795261259143073121786080006748775086395237424204104530140804997224644350329019505122475703706118883976035431338959336265217108209468591208890837572896484507316609592172386630071414023937508449011223782973100758589431203401685346648450773115628668920213756825101689646963747367802449776308166523316491687041028106577703134719787377185780948542796322757118569308811749215303745451216929793423117110193646741249165896956862304329515688338144768963313862458279107749643183933530715120988084201254536349226608672304054134437143904912529178250285432167657872522391588684187260906981681907311463322361424056101320618027468527629399498075911502862116995743894789635912000717345449647781639218726377634607296093409430744566337765588888826571800099942162629336000851752451178231889362327634881875562561810208022416100649798141259301871933506325728340022950406083502248095697528756973320405275078069703141842065297960620394744253132629601728672132322941027094712693572714045488313409410555528051016026331864733432822173442103102339584146858755879399302229775528472599334118937180831589548156776968633660589055668047646833562744370950849018648111320929415645753406164379139162029730874010988976252842613529498470131583030938159472763118156975996543025760122904225316956985439669284645609270258441899576845829821013469564570450051952433641296938601829648227956951218351985107659767592148494011584911348272374498952212612411530023897235130632493832882289512887356279231663321168591947965982884664944248547138148375630524836043682850911198791149021334105383766639911808215406303872970490721698769006631509335166153343977712547896466448098807726222415370780634481624083483264132321408737724832338795031689209325428815971100893144529231104337285345582634433909684092132473546500381179828603915132215423003849625773245777028054940056351654476115895124660037930117350841741501682646537099896290103175561201777111562871518661656043531417916464770219046393094145570256751602624728630717889471956770979418461202635348129638715704179373944894616263606504237485183868914624297261200471657098721708637225780618985233784663655183585955636507293460048945096051319964737310577438076078774908825982239799988105265964549792789380688920115117318424511261467576753266377259133854528749102204653144417401522635204945272487029212483509036295473682736849692203939080740283512980920076284344347814070457693523893519551161058949283085715902997107612573236536288751517066512352761539187328711102321324718168896243210347004198461962410691254587699152305761620278869068875097307008346305652325129967120173801638273983775494489566409319606570937264497957455367658634110960008273713333456923953870556684827425445890154743046817009772605592925830720912352233429962282362379039412458958575377880004607889628588780311161923046595444612260046036864245099123078322973634500963759319918514916076742493327596729482073155555656671100576818682693639176874105388251965884178100162734656845210125355780932611334227052602375063285065835038110333089058921020052856815593555146497740129273524794209429040366123742262419740041961366414306039147400590018877583691556107982856942147784250750189182756035365323019873770216313432744660867244775459561574345026075302015945656699589622593775975917657934648039822957130369136841346339788905607953881333753959349067734526562970388201188308187174332867478412016874270399996601136439124260728504096787761919422566013832564079546702503278529241658991963510800721245181021961136694811734821841892869915553313438615642531231330631200129023063268337814447745858845391739111487701744664979661287506038941414877166750624558475956131542216255690671554598479069559830821852838101745874865098264039390661792933547107417733358563602947489688053418272165765730233746812921755922746061056852883751853988930484600385541083663488323264829438946759681759295688254716375207377251510615836281142120769073818581861987833486795169542861917176630128935776090556847518413702855720354462095738223620873643032707752894015692398951481368389316940081831485374763225196302728670056549490556558175215283533340005136181244288495463450458670660602646998463520137499914816713423997793739509853825906057372097768639521502513215067560993404453294563225161333164675068697813459130294612417915610603490034211864758065373593435272850872304294025850062774385294567058430798227913681403528446753588330045166953447371863590025198374793394990574780183541739202258226150965788997312825433018404585448891951944928783958549842626839245215841551071978780030757396157714487736501304650804047513381972782110638645407647562509409563956515514603508144877965047623917197145737371955758688140562301312420828324452048787991609887640918228650627518163151762538763234377306010456784233747564197093788630599209840835380111710817699607439636106882444843278743842743769352078861240208449440766110136867353852436311882782540408111312951167116238838607300494662126116803465491620756218825853964025871123783271890036685479794628388722005554560377261567388386439928910107778275114400310461681155819051074978416003838209081112308759654196981551927716389367128894934443239306432172556500063715015328822207803342429252273843619941496883591117004587127561205719839910298468217457393652485085659073737578418002660246207418860605383110905607239878251943163151515802647087134440194801186735730211464531766550958128515931158915778642646313976241505205954071552444073472425879738120489825852358019744152595367335010328825095514551703229578263752651784735940944990493962349859776879224786324659270013389751290847206830598072640269004977664058877686489517393919269390713214606430994877788277510545930275593887188656457976948090489130902361428686519213618150853236432103174490060444525354068304577403889715171189482067051177927672695274139038601091002829375289033302612088938181635925494733124291203874320761706627062329343211577267244944670257855965370492379907798658032581355186859638884444904170686764347554247603119769717269870832464678174052303134307441640594974841640651658237549937762171540630942117790500575314107045605928787728757794642756041458773240293895221046023150669144597493939793904039966589979004108695589068048981043248083767574339734560427213008611779567973282987896812137751714242093505726483520157578052691816301219824060557927716553113043624944894693423268822202711483360339740407370517080117395096806257672350846709263956048728987218850627953706667930345798760440631422034277012444892761390555893697846440599795262168749160800854427862696479870043133129437802326760398045277148770251283858798213694153118457728830600007383697007373535572681739010877871833336888222656347728470591312100923107108309555010187332425954851692935979472554122862958103766305793057544330113281223708876719649191145050340856293259210003876989640441349266429623562095305165658715350082718941941385040462881864862883368582758152769756953960759732824584268012568980819753908773032554650836197451142170031761611290144130769433417689517342184804267886340340097052534144514724287219824032484579198966591382357070829264498905278894607473553315330546686532733032501078854725297889982873131661074178179924114025805269697331333536557548518638414125666417532740568307195948933262210287483180043363094638540616052876753512620437609397632994957631402298950447974513862363449506094384701473375192219628186425287184058525056433657596267254470520988932435103457310556663476884019855886879513642425449181546934041802661150974955926889268401973607199054490709177331706833187481977761885681976329569048849146513720050901753916485876915802814225521012124546282728492620074681490055459005249738017674921231067266713323140379598111965086879467740342383371805071023627247395045824391510772542043493333163468685434163275661790512380367950021333840078772947787480201779646574092774752415038341887703540686199778591009581531333693725806140268156725280220370359735112323833552752343818139825729383084855597167410327053427260045578177132911665298656776180542809390455005944777938726357469359572675678910467999492764454403599692050412605405180122392757641060564236374397299236134329565724806178833396202838536958938396052287938855909707068232106596117607650023252549961115131688484619511887728528134824077679803516386565854554720947563807208520260986510747887262539321934281425907067304416627300949841533678941077335363123031095401320350570251387614030112481719528124972196129023845440864755664820650607172735052611301411549644916018464764082733630810442133450579847561045261287519285770507339710289838581874253881767760937429798460933721720091202834324519034652310141085119110366751111592269620458961576601661378826415208240698075423208602440290608191294969008343606465955059199146584453427956226420592834631282958993898633359946668954574223638036732024032673625029602629702379740348998628980825232513697537252614282845956783768638007508383026724407659799089050413175222389960863824016612890235883220887945815688685955831939717755611082242257895561124368953132254250350089648205869998817085942239197789749853342438410300492991172852328125656286056784049779832389961560754250480901743014647248036716865560813032520923005297472192713991116836983182854063242110300347566659309898590581945874939761790154991618519620008491419978676302616814173237329261548868858151423437949042487008518823737171586964232603819894028363492495359642761156035216099045388830475849450314692775309748704737918856468161280783897634379278392504468518890641219472910435279819775628174602664437548753779758237627606238787443281643887202636829165978614434780976470666387081533500651700015557856343604559541687994457626133040351608306636478800243234915817126658547549608486547020844194964278729381491021365987106119757098863097947602398164731559823008938620938007280373963220047394853731989520598234221487127880190476383685252341188027649139326979216402583752999141410405986160621692243532538662229601677631807749772805851121061784934234717635741717531881030037230405724036903265410414285927723684731973963229393689329308998325020016968161038391288046355272326631759233018950047945091365078285948635983734285825992524882739122203084401508400926918880695987427610785999955154711839840646666960159848497898499482374228304124580485170509404199357654237722952731899774957770077929604990446015753157521128002211542812170463809545261356210818590107420212486362232172969110923693925054886888443035405805875941112962267386959276858519234536298555041827238045056037227948633034955090465427959621815377043648766386114186591864305330199547573721021839741474656193503961601521862104677008742589646928400357283861465993695582171063835182715926695186279980721885082677338516031966647844270659940505193123958339876053387074641543706812057185239263058112775884169049330529794657749369056446650891693029466982883752621417053358366565915810948863969949031964640634136942646037113901816617072878787284062848618904907734779136154278363918239763716501089234874365673533001507683316623589718790098917857781685149146465633711924997699866008468474089994362457811552633272004268084106592056294707746024504499659969323793010227309455720923257375651183466862932198252884969162179442419294513342273040310800437093362428869074328530453305012661747004626523877287416079074635962395301797832726204025738202103568954127310181969378792315272539301458184143521372049258677416163660334323885389509938450074647455159990803238194672960966147726933357468404225767256804434251275221768843207779978747290163081557480533315602961129681948397443848055991598357723798862027731943002604076503059036113859085208312944029701218957098500073476883579714739547040000504102917052576542343715137602996010014998447244015584104003120528154764446751975820330654099089973892172061574013700735415572858729230224764440441469707708082544543266932293326348571060036762079032519961577075976285928001453474554655510911527512300936803065326361420715673847065332472632525846232633016811151102375536016842972053239173876100819554238632594878271248059937888685493290726072478790190914643034602639861277330926388003590929568120926405866738222924867283305980704304359385086615134283486979534391448840480559012848089707415417257899708651572845354135236827574839979597704764058999809883219878516375777658885095547588348710892972577358520667974538262622260389719187556308749423417457288056938910697121390817518864121193996746673175706397086147608723799193992884986013534290592416273484877461125310481302028228898449612104191450512107449032151547206831465860325770990168801644159791491167742412485141069305084868093315528522447216081706095197277923673740124306632825907419716395951698405976073976293740517264712779618312302598662596143476901419094542066200857120752876151921891523184036523483012481798144595014175795929727695426393111327091969845695263586600140094546869962187961413739288709042425391819640066409712676154090982964124410876261427793198945212731730781274777695459673607510969287500474666105842044130620436262775588282008822002672968184716109415269296630258167553127254261527200071449906838252252206663130843184131680755528159085200292913815276840879915285643791470314884108362141829425163195786753875936297955325715974221347718351595098832628738980458555414364924973002177712676727352659715050227661807706712557725269483701296114959760157027088179187099432065499924308685592141893934523023175320175934901381584373475841667953391521406004737447846621546938562412675688020345618948066201229264241871477084690123582329657903602938340788680326310884982405278441923388929853523848364267404736305631894292755949960808797934063667905094965314876824322797206054433170564303837828966807397321401833511706497566125428276143774482826826122393995746965668256182245402058812427701465115143644944775206938780106357086021165061090899043691554969922045599984672836830435556482550622347191063796500265558339483092978956964704380111117347519063032287614733853827781201559647203870251117950510698048317806586420802381984628344876411414137501479588342797153888929966975968069065560107508258509800409182275019199332807104675795632903170221236455781069001128114470467349154871306426286570833820854597618711307196616281046421142406270005624495246879438215720635784563718852993475264137790730640345951980627146380190359923356127365920791324841884385472447931206595515874616102407489833265636687467158041885834048873465583492354151920978194679314611620704847007939382350515333819915609318719943391707026176154736610236926947869613615879534152844350054159403324052966755432142831850256727847799109019584703891935501491187080888264745928334007276211151072795680700813182000162716857950022284662075652334118019129516760337991161068292188415235013335908881766771106105389154059872446891813120286907159660496324915278489006840136215579026720604586725205259257159712293142752158553136472773071239426506244546911194215984801682644389580798127887449188310656894735968125298057922003776992725248800848981141404068079843843871972345831113704690223400559964438190616300326282770681901812064439065562308464894333719562137328110263064967067698899440312172320533222588466921305356258249329086532719780052865374292152354591350833834284298501110820117037912693150566462450323474029464774740548601937397620417426661832242947659829573706557412674295753427784300529702354183356017357224546660390145267201452635856878899335410023292359425033682351925371547212219685216472372519634172354477493091444796785226606986214886550995309161921977249931718043084597138347917591153839790160883354993987020555406723172931126298851383591784319308855915111200557814786837354648921672738299359839659409977596674079594062571825629819635236491146548034799109250738881073418294843555286996771307687328468827128656426157647576709886454599718182310613174379817369040912799472372721493345098792774448106857040469099502028191528281811893198750965026325439574148862623330367998695035570230727243023380415368915302617849823886387623225268445710606210179738228532163746361093116217754674103094121754988673832248444272443115248056682586662811000793968874516348300967807626508878852636519294081222412933520763121017884971246598926486435147091509047466542409511123455243045577485687358504644393648425332472216187986924060873392634942554568953606011281692996175292806974731118692188050245779896879789806047657800448652611880808358051508251690547567715651981430594667876079327125866943532682600828854768450647709383552888669511687726422342305605055388236529459897565822925472344186956705972504797403094998972980251198368852509037428331400012979987713532251169337947789979748268290809143508841082165411687047022010709476438015261848721484995380976202032620626990791537805627666617358612921775969199172746028021445502058446658003731946430772806746066267123138069222683527093093781953254745783912151727310435484858644123534243282013624715052897928142678759909240249472071122066985398173864072598114561889812181074439163119184708354289054387868038636637749774476708064406078750539888922522683029473762564554708993541193580821700909821460256354030693941911021693717020376254898893673447588129479140425151759848329175721585461159257717276595974412916182097920739358343848921174937284651443692136151184709909536478375423938418404632733084420679153277700132662483546962495404836163173131903454696464024632680805264943634732753005034091764691627865540541097468483054347111522101604475001236208084442638420013929081772891238742419464944254222203791688802460322005496568545026116955866543973538643704660521823539170801789183832344617447408425384204913631057649921340675400135751833224840634654415063501734693036129229193034659098416763413933996807627863029874565752906312648882361668101554194581630460348088096478691439787967151349776803343123956620065189608295884984288991524106933883741370308342749579903253023999792214467909225753139753764831159293897410776218530815383136080957943658041271943251755365166777941176414033884513433956098978152153566962709914978252893106662270887481561419097660979928074458247359025508734019656203849566390886133097517356232404520389111498954217233944604267601898239434234311785369604971976838093282516872323520004965847585000820227297308001541661819698037538646698179427113676969676923084248346946527878939142923432479785441048018040747654139587711214611220383106359009197666457680798005697216739935109926519692627201493403418843284274546641096950003006736414192233678765994682975727643836665492416817756746943863717714769138726348861757256284197771726653059888300812344599457373121454626277745172186719574660020349461940539727534556604237129724921765444247517894091909927440643224437200670476839293621677907407316712243725892407062486964764571623929070442435215410607963500594716483138383719817086835724954994743838019483409758964598755342330409729083288951498845303600683555168631345723437178993914461467543238412787978278831292254507926198311764699475766019227819100894245379266093272498598124885576714489719968121747586679972365922697694935772867964106087327803662124046060486336270435689400775335372885350220097458330061240456743390562125684790944758345427735807143265261741754890374463475061992590693833864345550167205845076978843950233947818809633552095998894838226742395658433894561258745470822884012986572181494194104711406888688158338780324018631123088631407376792324286804077289639211032093112790103785366153235007205133388894296871787097856791551750630546249607600603335366192772136751365346903072816351559119695391078419982498131320209534629375965710514176985945387842951966126977439838576051555236782728042541030859027127935887436564426391528038835034961113020152330533518213774573903414740414109472850801056615322552508999767842550480890554946453254912390364740556149371069327668447341976838514913413281792109155017478064695856275997698183639012200643933821374214129982443661928959740870540978703070892878576688911060157337835742979855670633571878706904988484611536760811208548652406290241735258471105696351044307305156008106599678063122205428520912804757035801579592007952849835192191078595304363545154373430612571255665102653042922052251356400323516361458361324654078775127105796780601251292028116630296760877250306105394677283071325529512634279904159932079969526321493641730753808733759168059596994409682644452159643135306512663959820461822282114528238289367700785231897365637065756978246489142251811294276510907906053644762949386811783736390896008528175329076944777534383384870436765012565389465942617870227021743464435914342404242543305662806198251511216207186164545896062912473489134837492054957991202605665341108093877009666841133375041729970075579285074379645641365895785887376941154479234162243799673268149169155052915262629304643097442014029775543926399922446079805192942774309312344875370231083078129826104638517302154994124457498748423369107751954365994454802403563543506189311327824635840280507531206507559697727692930047330006057478289528623418366940343138576573302061641691601154469067831962030477079197900864917516179329906663573038147940697387753496193141947758969593430176397785411892875514598401558555568335047860266164662385087436897184275915644467128769068192612536377321706887884921471026197566879711266913616918955597939746322661379676213460806574066789227010293694838884841893943142541614509849401488739247196096902414259889544899581374144527372818719820057389461080043115376082709607389305468317580771667821577355040040091028665935103120751248024963314965859521727375575008658012357020174471380583181272791764877481066896937887187917443467156488659927563464096021132863437472641148671651061779576555193146022581883241214481114642536385943512793329008338685935163349815001390903945822632079455092454932933937912850808092102664790518563438528562042339477754694748508207979942092934351611514376368767250233433446402027214333413571477087532110178475818489736147422458098319671960860417628276700079578401661880652233984006363485791842081580492361208530753650007567416193660919014386872383936653677379583250380394254728078023928443736427726740853493836270700669810327430894037280270948804838304606318971144315071540248033022451891000644630501262206133614430638311986342664043373696381817006231024925018433485452536892189855579216188497155813399019152462458499109834081329568081036075790070841529733336318091263455591921161824597386471441216287294610768008559238499920935547040377609483076027992220293299102086971067280755512731274407818744871916740498331786016246595148326428732566853981823062237015848279556189888816027117404084134122452617266069047967001816983801439811786116931079196499347657333293513390452799268230680242513349606302842231322339342752581906013943957097694745773665214178542766639734296942648613862358795830869944000012349899251816770071620628510435714049075661983341164400430588593239171661343762552380442011558464050671614914500330226046472095785591029724237719614391836116010320452955300089342565287810329651078264545269245623470984262913445256731481804499691691383169284632154258379634236665852056484630848852574893209660632912920114399513641795177659600895090010121904633203679531918159540457392673865241410610141820633724530039251393458012271184206510861768907794551465748331582382583340751938123239905520939677785015902536751064314718549020192728845791150918881187293388858208882717045938085243811592486379040652970661862154166972480691566951821983692962259894579286797796178493306358967201521577277341830863034564504734728516969829965897182872294527349232942491426781009401985620015435238158758716030647175678158570653221326229305006075130012484490208276856067646664584340259126203339443309697351197443865902472945620277268739668905416575419140967503701300813348795693835693166202322335516100484405493997600997940758477104805594665683545228644017998833897982323484793136294772662999228595907917664362256927102086798898394782181545823159598633100430917506427015341260518123030317414395017635528093313826479120999918306157140010986154801376882955437364815548599223054912712262177599174626506435318658947840269513867242272782627091716088559034120432935708475944206563002579636259812161753962900423277412697826808474382320440768228616055339731723703979293882094267965723601066110813077581053028482417746688874807566764530228045498090954845015988212949291089483590604998933823195297573633455804801262651035216106639494733433215236965280297745791333885486771085996450546884217423139322775737907021548637681791677928821993411686383409158195436867249121399595182335692271953994323400899483685980262973342025047882952621455752373527970179279698907073581533330215792933353155917536452684484066556239864095490543467756775087951705186613188269362433345011983722989855823131220296237234880773911406090277826869869334761984746933665944134296894462421786341520825881184891055106549691833840042920759492710169470233615463886930874713169727284647784446473576277459377798178210231643557942436302449754708991259305968123778638304008207279016487484566843071744707640926221286066761849801162279459577913685791512717971445457971218358149803462272133691573501487740820494920212286971635650998635553082562419667941873211546506067769366835667463895888420307800029324464686468393952753073699914161333360573157676133754414182105547234215139922605413926307559371188016547067084607824256207662817839026200682212698094924618765373436287982104583766624237453235282035262725929731785469118568406885888248448148712775255946969947371047003355237079742634952197297654671004783840425409910722829617435444722004594846141106109320140224811408587396114464501805516906768040689830631984809168991047136468649915803493165868931657500648133576165647340879673626404258605019416666950347952577558217496493392363943650702371842738265800460824598605178404083021572153608483678740679383944203076909001893765912720178830906798312097629305633396971262635790894267454650835142682615109826571007939659253273160062058788997714679923843797128974627803523511637930636948275068271415760138656568426651743956655832536574985068045110819052592128314050494709564002549082309515483124858499869837617748426257751583543218954990900943954422357052034475306233704485756042292599754400516411808515487823217525499633025448230635160289171932463141956909022126881300793384301586538995837909395154612487706197582365847529268124087677454474945004623620925447762065174568582910359811258564885337161491177665517946827687342353413294875669667859111223738573781525415491980895633021950119472998233058353827472026328535205367845070663698400666686839600416419262809367617042403276481995881044662353132987613927952124857800072947907994811351674776203500645339532290073775582885175114076986637964900467315688619563341723988537661035783781126403234137416117436056857741572844245215574677548798629901730928552866436423890753957513213890251799267426636182835015582962273888700645025277598509657413390109567446048631458439943260994685145656682789046703107480474564204963118062186624821007619239520781518281444365404395108172227880475011250226366799991302444983052163918766230220858153045758219307247555358494996573416985485563575633793204903990712054441158828839017603583807154541358258269839719095766904249834388968388174892257893644302263304564238544966544218264867568065586619656088124055546278024083393159316874265679490915909833918831378471683210462015390108595987157879667447080315009683925727991397817093537736230000946017309457691741229381092831742562434656649921660044791893983971758157128325836540531988618518634138068194457222955741858246987530554830033975657629273422550625994559005558410304122695163811621579717506654899803189125404838372567506344762685484019597342341418091783889193069906605516061355546016784854342293865308629462016852519604836045132642274230259375165697034889515032895358471809816528219707574469012509685759585507073688558388893247989786680312353630652246438135333907291899669271894735592485023383404350243128327356303006756066199232907567273810250029715549446905412581943388477960352336258043951227069320082440627012160184295552667170418144575625816299430057176783839607766225630715565363246766196390745213710362849293671742460164447073972265303683980598767490554264658224984914941529295210471903702555519122661243760751104069938312722535144670251758838074457330672165183891004349043805459369967197039386472878192945048939287039143185693645456131951445241323760846267879194499064280608166358567873270168355364084475003156394902827774278117806749933463760980389281676508189942496591851249394784868434589201449646360703551270677962092948664441942157231315841529528428070223179599778335677628734208820834313777873341234413068060342478874743016340171577076964804792259128706304517809829511130658253734725859638601331135399164043113973958978551876856144582909767438700472902440679911651598170233268096891376112960370333141417840294172039481591868929201478084025616818508822525208541488621825968394533728197349609004896147158577582718575270932980425867397457912194614058593467991157605242336355932003806800365097410421176093091136179180561261070452403303346172760465876755450448099930409677946104424383946049442459419601605252687345483413979753733259924065051315605639174504261485863361290361559031498372281584897472606482680047874650666148254989037334113325033622315683746124420749996854165697203483106021964231991185079020492999874024605715030871224055742445596024773851887743989059353664735738608640453209955168120737336406822471614311213938509701683396826804464127442902122130070251099253972239924311209819242323957644319302775632229440221419902488226234020161925586415323612756317003215071431625218224432326762037952660311236186935383202661811023309270994614146161723225389405081326416006969282204287424223005883801865874263042616468283057689071183679689210574921841787952393501011806905784735824649771159806892630586656266000571612475327003393017600397750287873510413908357158950696726574655064606203383036869092627166435548625480014387056431009510300351925354233745844755997167686961943549306893878074960848931707429420692885383939348094287977071830459875037604119697483193505901451218225104549469996799008517891290717622042578072817085964994904052717984247240859679293261179338293882700593274235323054582561586611174520941235676625472019743260951193552345628741886397311341480532072579248701699608094417643462811988122991297429205838685978320993232257059533630769385938846014830615170691984510260373484273497407674209720625059236863316282997141067814230727251625368094763244814592109592723157458248220560715649993477926102916433056264901022274383442993515396632640457690212671551591149258686237139650346991866493621137073777779688768070630476248392139297014981073106598055186714042374351229435223220001820970773279369223545714437558633311273348142122479935830869621910988869486376165941779372084793008918170909008740714205885288491797940995253640664553046947023485350009968832493853657337909704583056657157454834734420305333666367154988492157460817102808904098462908818703496682173481002034041798940417778703722421357464138153457155712227877916793545217686449382997720339792286998837150622983018475474311988270383005077351583174641399893446630546618981913219567334569801282412926619851195676252998471091494084012098564707318634911865973720669303362989399282038187558860104335939674666259886332477574100512082036996809693249069324625257005346785786331321969574816126952164117976841986782014553029888828101957612359172493437297724937431070408929680529923185449260668596929094286347350501793611287219750497045416371380098356195402076258416819835599589043340701460771344685251690938518864418365307317912426010985282622900579210896335718421526392399275105755697081985339621023626263157397340950256006101586082945183499675242899332301416098840594583479357846299935403965655515080404392662830950458079454240542349308427199969239541178871710226787787683366833829896228814038576235800701242885269494852380171070239075398873408647107828198660817997390419869792732258678498679342509487590721376052919203462385746647894227518508460736850045807180146366353061821394761588324664606185847781361791252107710785667532565617720338048207308036628989580350898079858899092198635063622159604908681220866432550205936348297463370238666941776383979374668206820486514012784794108280366471707157017244182703878532486082186127913837590007103415021426322151730943592660832285941736586964538867828484297742194485536550530157970042348070246473733698801143353302958701299205057177587063120397618127023094089214975804797543519662745680732237724117206240229858558211009614308133870597151902585941007604640748709485515640111293574744319452871808483531263300606069705662293350369339943146384720418552991572432499908220957576445149703122588972628338099447799381568191795900855451983787153491277968284880580102530129303785311852594540378558392384638621228354425808719894856732581131740430820725954350452976316948073760665512786565998883430769562597558075158958653768001044724765951579409116335697837530758948674919240977783438817959615091182741665987618612889316067327756467236658917562400411021164096993012289891691136943076543563242295785654744135074743579627882122335775552476084727057170353923126725361778594200789701148890187505881901103601751720241492339919777287509002790473828600385703199271775169074239164977091870355439223163797040245265587810826370745918716511754633648913928127280718597496375724092691567725183589743259139576374273588885794362198819086125308237417285552904713445952342921789691021291255470530598911420836955961604747920804022409242745420499980841483752388114550546686400557036520988505539863133271366192726230002621345808358318178993616409920728106508191469411807401242611595123042398794318189064717022546280995690645917093644779301913940759449045245989163559980132727095208653895637934765943993066333944629579843059444600717333313669456024595809023088806282902537778609238704849474946770069377328367878750818739491940411531185106671064218444572815185356203051405664781726056283820163353781160049096500455333575333591739232761753957970963965945738319942230160868464959912749744358030031965806691211446813911725689673526163974331217426076601549142568698351820717670362197800723855781631985217941354662989009918996030680974093036866157259946259808227118527837368160900792947709119595105913138238454155886733837339188095030811331430716774799133911767289938424582056143819619574427602031789894243293740307102088040781606420875196328252815570463439319556331098782485362820665121916578461517424180683308578330180445379049120956230516778754676235527208984220959153086250331322028555201538800357855786481663737838713792342248559118262748142964049665364026732049467636206202539065338703124465168913452273017265591264926892733678240153125726405787706451453011289323514857608889728755075299814738381195504155756574772740168187788668688632764909958621788571924469532167400036171283998973512923800557057703159178262168544345138488300407028515426273661388879715197767097222734797084554412641929464088668580104269953532610955903100962657127837749052144666143380652133747342271898625742181492134844431190974856758807006681772874081316369788757957751157231145130914143925639885165078998494986036894288957235712964697207498351192444788522174548916505333813219865920152440405468015753727116070487696521441339983419171402505286512413998718443606300462503709192372955287689752698809655638912146971857680518161839066194791421122384022601867907840926091109423704562099242505971631331996237881925429552992666087776474964402986261772881280933968969416951458024683748167995767598269785476229838664910493817885991179414282101410287039930588202423235198671258832747932026153806163677807172524840296703507346090445421644406791027325798690768010038953272062077658987077604265100761874867119907762586072457663532704061185774169327055637863112236786509140740455929643744971124834679900744473483304490758453412620725847592437372492147864763394307113800382836885808730465110236661566370878795631531646512990266690933916319608265471870038490117173003235070420226759106770803071170550810683026568802456641806712262647276938187491257240309324855192755996282155790949099437487243851083787928415287039477299446093745243338165111878086635701258124423217325028264795513177027106201428032490263648841546916691780361179747736818090917345377097358714134216822680438365187290243682848346361048788603392008924482369104557513414345562257675705632953901501590104361587369963433398911169479729907948304559995224830600884432571435060494152414973580289249545839395790665968324341806623356743130115927605958734117772394084957043259359685440974723693926695738289987575293775376624220340000716878820609140461648182746287950598667013379573936772981748632108193767872959617410635619222997393674550078491626115549744117828019213152712738385212681891632534456110166469064168970627071457269164780638780956466084101689252360910967934057696477606538494679119254526407211806571668632744326012919917646897274507975870234940554095229756847801308260864252172731020194467133419588984909185237125934539685220659304334637259574739808125650176038351218979325709487321500102401564474532102945829193053538404018028915932600723726436725024304001928621865692137115539141240742839580203642436152122117093726907643517830688329620868411322078087085801485876458057222079324327079602144090295853229238492944075307287267391230165026024103406965834888907009022896763416367784625526761498900531113171181783579297552767706487518987315167149233885990672209189022791120456786395936174897230757848277033894982295689015891183633052621356056161941459343236453322779964714711272479989763752012287092464065757997190214555820745991013045811799921238806894048711146067025109210921978270995576299933608379353168188118560870760802930542253294183236323171222806001134472392277169618447164296780832749743267280686287745512190776717304189379167444617617044555621120343467079468394526783813850936680685016094199752311177257909243850341850576944268232866597119557979611482810571385493002066682936197370662923275813182136529444439612289512809495408966105246915427944654222442215064405329772299102528776939222885348713717372937750202648594025027915134833110450689344643594497320619544235915121538794049999885802267488072367771736151472071573486831904503282558962050138897711792024646040976985757790851351925850524182729812135896195929955448448243712069818095074985295260545396942464523025747132989318014105135602267264929123571891356315809634227345269854196015936358682869886243392250484410328494581646029475109452675536561171896854776619464656369083100100490535288091243939177215212440565829206058113556298612460813830356866360485841982329707732856808012859288336031931936518287259343920109873470854540710818088256430944674952671653363502919940430329037383395400727638593967093861597513393617269826895930328012010639964725884373359396676445227543281632766504118333498595563616127178400407253197251051760324239199310902601598901346154340145917139363319938398914833170546539682703759992826175342734203344812926162881490619466598715643567320088237244514601055803290821120049580262435296174994834157423875270878073499580002323709653249428521312291379290552410040693605248483561695825611070763574713287559067078785641926663680591547217696963981926712702488368443989067211912149270505763885722517621195006130860323299998655484461057617877152125412969894603677167827990803346297001728582485366316505684516995637079482419094516469904041185146821106008001327507864469372035475395142999291864769191550077455464732693908347793804149044279887661977013496319987393756749842495127750959770498161461912110968806859268436100435490380711539657353268131677684543726374990016655451552013237440375298336650081985313475636517088457307890153569863446649099910023292001511118447785257507736929943775481297478288674542362841557320393568480396934952150201945764816889793917312241376330041376504572094634656408292645253278756041405729068664121066193895433673705593975583626181083077539758814524245242643410725967514998030448273011543808461616612426343085015675674639791273416110075003716346869946156763974912491200795995506813956847341670077170885378094522141313339718275128588101808035816749233995759773785080769123788463174507819545139339584007829482882753423530204509551104548947959686614977611963803144470504648045122880567750249496652799400852884398797533980101325339517677266694977194974155699991431861162464179962435711274791129990696322590769971747645451965738112810034259940735930183664986592125814213437182619569089133430816565159908747096221645109808953039603371152014706510942907263523371281904258557292563820892223712308469409342815840128943189735627181705356034766864647994358956846613448976521247681552706536096351727461796448832645329848920623419338844503231416213545826506900025673866721764537995616706193603624469683437631697348466579572222613706126516029746251479129680610751330565548263493238390150378574862170353268140659010533846710199157553713289801346089865366285326457442600274000328301812360416166855005230204087638589622256933148324735009227421309958722174687682866028623945859684468966814397550777622700182059473218418599255168233947475292966009879057112020457585761164482705739498901222303072988329226417942603487242366189292974210969947122913672724311749666428098849372155900471811572265231063997310330394411043235123813559175480147654940450019685472090011438651022166530642996375840716838478532656844885494364516644024733258810333813417969990914750043333468246015834744563600430110568914078643077274862203327596974143510726576054386670234496441122727217168204134326001394653987511265691068729882739691396715173664603496619563285218891057693201845865146534781730739347507286488860088013285069488413349449473133920658869979173734453690205389619982353179994500899176419943529552627931244718531736168319882856775724912021425902277028114679616774175159530206378997165431507157706741233067826069573894447101182808926027115972714546691577236956091497822362620429104201587123130969425977770844393846948972145266833712943983051854160376833229267436425995097832837847815921514061802468913799460395709414956626113199257723276646717988500787059255934562396564302786985008532049170075107081432199447887630037427240733331577550129765768073589578296319425121758550790140456581826362992993869107434783173225130255066666370843826267486503787796787411047256831339727569729322959364637811458463850097227555696805315590875835117198654033407444376150003518311189496304581861499626978532095526625437024930069546150393552047776788758764068847620173615676071909152993763619536896360820507476614261516334147948249520563066214193258326801790115045884054286361379672659935257359561382563448349530603321036233194909584204017256663398103459027768536724894318839339074687775146287304165639988131700316491472576359339875480199867446127603374377137204173139346935793595051413611874689936855771306221805428388331867837820071622002694471915190826244840611473668918342492331989264872292802129234532113824208845509779125695109746292730068146396076785588155352655803110247164240959093711941411454330376383708581532001414246518204614554205561638121176638327068105527335946471499418382457262959181801167339981675860277439367004306875970821865899747533274091893168285777506707080782337500481512821477564244040212935670795255174090874929493424540777609206133395942486060200962531765747245054981756883457970232314489178975915644869917882109074596939871401305386774913357223001279022410376787999285350511144044770321237310409522520964928085540376790877721679251543369787642892070936597519866909066784631896742231127343279112190768294094245097848331829724600938777191037714569623202108404809007874690769299616742053657318709557036545654653012377229675030864275970330263697822524961027733375645052567062284784219594880946628744828908601696746850471676907383943676709976146578790520898500716450582016881869998246768183001503080667425417443302654369086754696260192870700669277813065821969516412873405336779675836953379822765263844801286578338514968448720748072278486213784736138803823245010105896559843704640737435250909635553784931749182529246507302160203303570664931396629337821834403656780038181798786431035806756830729394505593950101516298948964038817269112687763131942897995203341904610825661132719283422040953978080936590854500874059232803142443100355918270241876797658148481978003973496431139527908678026056210688632156001052530224818905334421259072232141612413021637628558429146710673367190830834870256674016496386166611853634074899690571665838513730040036976651228819823912082669505129785737737116718604156630725346690214338394285560352727906523801859499101227504798815178311537121235275384610033446641304813382559018771471910929217702568264921060868071481504022562888835860585906753148909565839497124040666735219717091146604815684989025263076341132818870218806284618927173195975222154256428286128737536534937036813241307298422936584838568353606889538538072242363668231786625305221819288668797774752478188059179295277285038063108923305592545411251776438035599677792108195587178744745050607940265296380969672957818106997559105350762553416114853261847454660063821237126718955178442834916302912300460937682394450771311677797714064496515583875647888452665241085884200851482219194074839625587258708438356778075788789412752041678956741585764841107425133593016322181451093846491727419945807996753569894595175480472368631851861668944764910545494598009583223628660950151022208103848600458941770076104854748039760151181632589193610715591511862229154562323194489140542720190589155474740750994663660323341932995126612970618230858226276840628106216810184808979776668521330407353803733669679447369512009329790737494786148975508718969945809974844368038207374634528854599790951311769863888748546499795268155897389027581152066934960912879541009868394807928956442068668014661768899568606299937666429147616784263075207040014836047972407915771209375996380921802615095685436465179145634015718981105238747636784494592155961897194640395040264727573194319778512539047153220626906101588477271998218018015696447586645474135573725422856178259371312651671822174204347125182351099679103823094609910380833622526371968629604206018381560103210539803616697064796034870379019721126923831783088670325365002346330384194862946764578199965497306838668350578411590571369122633816066932135471051856897950441127557920140046888276710831406215973216654923418685040575476447932463762758917598344184377658637793964438398488109633576481699367167960734007277192971948181181506448387503236148997854955040931855248910771454057624789006806345006657039162107530258747647910169687707361742763682799084775251422975040169352905231331492750083215592754797538274279830904152904440547662960708660644419048865963406256803975797243641741027033855867415674882774534228816604218404364821961270530066584999241160384240583672737600320813848741283474165622784018850927017626211026680937026496863528995571471394272786736674530388105121068251803907064767277532841490453520062690491792305926684068403639608443540470416772280427274666259538324036583785879785453453026224980795583483572550816308354379606830724897263461998013966141359732094253181727595284780988971003664334532369448250384912461307899560782255702469331692498614389820166413385206426402439613021008668026136520261028614044800246059741544392791771368990085703038961382305217822321337564060000050350058439934918225832732089586136029453232441339773086702804678782249550844258004617947661861947418397513429574893214627445895906792834042732767745188530062312710129237610570877523613873686883870571754949610787207524929025879977218114679655394576417360686298339327019831353015683368260827339653418865304668704466705584870339458707911676880804091125391981312857266411516866514568712909336009230507054210778504093875372603858387630260800289332597907920040623693267544933112086957023496716853555029023095341039027882670087656761699197155529239955113906677585827490734035653244950739702994121030589125024273084770782553598596551715569929873543005325528325043382699973721771334403469475580136617453861158849690534710870102854573412326021743093181521196701178167800001052346525713107210736762531817072553229689962686430735671690458680941193616202998971656700404599683955972069464114220437224099896369325413302604247416725851629805717236413971660085197512158567536100360618683318988102530021821984004096472212282661964712853718769510380140099008375631783407539997046376081424942859925826203260618987447294951322608297624568075491529300821610938449918198741203361317787721814864419662025237389115191978631627623517044824982004272210574082773483055069289376845663655149127371067352939933987376760695830512108440322934575050296951890604357939594623947724093812170489232260604294995859352102582773671496967157124943452162513630994536598390066680044235876444782864190685193269234982861584743864694936114559406517445410026756431350672613925929631014177931040730421536350742883942352561399340151010859853144370913396514612551439805175371848170785972969440278930821664314534542515090751388560425333995563563784727133793580844204810450367803619831014104306230496180246980750615427209030827823438369760160358021471755854076265854736762614436777158553940523754742152854998178043595951266014290446277598759778553706677845761636457486128801052147244500221865165935873326225917637552129253306777227134123669381853138323687154987371381485833184199907028000179478769742836172813181046825352448970355822681825519306063986260436730449588666058580942920050224774689138727012748775658639799070614202324884789186801752227102235551109876673352731095911275449368131370114189203523351249725722526529370110910472853366796267986165642904016978355578570520470807900375854481865907746877024378540208482570718502214389899772847593504611973161375491511126742951257531367313520638312778656630248255578415971250304001607086646556016762997664666634645867150947454309195357877228733565138265812487764896066667467041377931335817790655729170073492461738550904503248369366859002902264211018817787816466595589909724799722507370012455637779715386467540283957634219793081736260008158475273293176854650380129180271248411505108414662702811762912213713104607239063785275643368988254520174261968325271155444218662540635244141325445771748974726313265397805396062517488083674765712050314465040182960192139159284996039587914459916328228382082914222316081708154804704592932690177036816715708961209790541906454235051441653513615565948892808162960183267804293845987805448524277409481608470089526856591283991470100510109711850449988905701950407202306313064156018959375343419434597178359540446932488484795626246497760428636108181294042149903085985814509736894670128658445720193097061437067891556154050808008907336357597192045724893833830827836817558377655676640448043466321598307975816276298692004451801625702020013700271738986437082827271784751058128812121566686234765798435569718053181586080628010081362811555609167028446739555066045980206951325046752386397496913734107971319501242095759227791429763360788949102833308289868722021959493928080870436975770007721020641735738667127530000423750765229318449387831903569408830173874842156961466560439420224938216474830365891797365557214962243204562202001931449224117044264207550430921422781326995623863556592094167373077740259545063484112582934105067836046918882561069447522935935346660168394040525258473792754194538214870397995794909350164224827985755754951941442659463003313395977871783926119373424860862418488578584493273254416626549645361693995894600332869986381982284381423960520908021551623969770508348803000491127815744494869056884448170892424725614839804167936756593618785788903642825120323524311211086184900074650263743818928690827332172833937471000113776251004814251269246820888963301998484199776648712814156691005229644357017656151924996272049976752625478218244878998624166196658808148356912560288433505001647489090715211986487667899810913304580377794689217287354731715533750160057054946616970497949326619029069486454018005236274525554823338139617266749205806585633407218204682152356606983157944369815593483005249889868127504123996605499060454264330853616553293529770829279799555457388740849919595232037007668497697735273743695627631655276832098502503489572495781626576214264543928908873827883415634849025175400219853533962034422559606537147384653290773098694299038666671826657175633410029181920753293591650284550511233370461995107344684061282745655640735790078127592726339354716514976244123215182186729651425779559685065500587682893166309648205230397441770910244823794245983878913473079393720631857534941815063221102107043189644981606291148410138470530310841507423158981285511192682367793685656398442464109154237465493472430442874101872216999811442751010643438647739627563474046054869470802477734605649815541979883365373313232317961293816324878427377840333760204721801788268203685254013643578326936799396372453633440237282960126862393285903555801391100654003933211577969287759234412975953624718339422393742287997055134519419117557512262672764712906038729034814579630396083881933798483710953008398062028052788155308034101008850863270350440099272007304852674622796462937368545663050647532252195288237082872614448370395979269223229793587890505069929970396518668046228688006307736839323574798579821073479541507254347339488495651495772117743622690834505685865115219151801660601767266616700831793366382450432197364603434932961259968662048307608686808446110438979372584127024095865309185204578760275557987191235288155537629326901743468948880336387393843313802272783465164662975702721411645971137625077214573491998406267033691972097844098305004069138525602876016182983963713896254968092629703130244870063053821695416375249261407515408024009691099690399875644152788906468711471567350892610353552861859670410249201328516548275462436827679635609757652987436915899635381823848065569785734152567957724956805199500306993720504503203495249673209883144389935497727460905166714451941362014655833756639729923174766327783206688141338283764129150585487732861728454571277592510533545284821379598784197369112708724207095610672615257426261437966774798866312295735513255726324145132828507283724977014334535585333901748607113093633520271832354743208670151710223828118777252238414725924989938303443536545707319474249708097702812644890334311908778453389717426895507800139944081093177292424324981210265704241264276209336387665331486612024807666875378927859470245454164245650664914434278352926825016506860673954841379813853934714219486679627835853310794459641378011517332788443611259357507752431692763669375383964661494451224435591836248824378788526641333654068434660840612432527085281060985080214729422041707553809482738690200919579785831544701809211988423562339359308895193088952604745963285802130478051105984206660380873561721351134519952917383118109263733013254787228076332736007273425805079794336309470889664614062259659450058385380046490068355883388350770002288626659322879384412115839040223721961897114303598542849119885388659191040004262661142397934605064833918317544113993126986249558284546504820905901067450755030685697766971855211198876998860325223770441003081899494646690347331909198364625364776012064783906476346509106168639395121518121965926695061237844857612240739330824618077868087757188571598133599951454088730777424346693897500023060001993268518865440235279117262945800161224219865675996866756321107834838606212237644891201080500840674425248797500270787228046003384368662996020327967490931095089687216445018215425127116258130780063389170246957611754787103998249407936182592134543544543606670245490502633331197672938394160320077173871724254167478172730716947621712957138356106486137680185826248238284528870036323573824886053539187256653830092807756255519499034970086264767353605464294706132891338296873951933751239884617896683402395739580828600701115592527636317626301098071139164656946752120251413320281796820142887843463873550130909682231548106228120226462367102115353211183240600490699765626980975362828380353753124985140354945414790119811296937253742352656548167347919995405303603896094974412723720133092554733232917121796730179941541631146346738035197762838902883845420097901346653484782810460332780603821162675385279046147219923774629879453875724729529634769325349700105735666634511133813076676758551289528728837483211482253475698098473497722107448073652077397710544114194080678875901033022325765099267047679513483801135672095832317646652971008232835766231540329171638043061209741482644432980239344890450869630526074653104018204334382677375885025376029225279058377186569674472264671604395507149115856116869917535932069977920431375753254784749515490126906687611215428165696762058710264100904447806072868221165372108731250206562887921896303238765523734884126061799086651478039316565733622945872710225553341583233172860914958796410881007101176957867630175778908593634892932372412429436396225687668748728116710205905251106028079717075311280768773086711838983903285228035001291764026940735757455609170867886904472236803364163976929732828050759633786140651159686557829498097163974929448460873499542312724939334279508509796470420215110853523949677553186699203162521834853597541995003227093874046485887462851108162551341038204783032735698165946430721695955674038051159193103068674783678576393336646178552716739372757954990690925896444775159433206761715785779248108289615720676310914346221545267931163412230811278983711715339351765393074058242483919222282104132520811671869893063186083701254299837781344253854550492828547675449560189262316442508542757104520141302814492504459839393257922775364169210455753715391221959201745432382899339752754272017539747684253450499764763997769893970221600914715098198487854553194150983858835766882172417050332094570783367333359103673551927570109501480292819673329810848283185723260623068482510670430390045874981763490933724448963044828217994208194477352866559568126181280941017432275163413345265428826477554453109593271407791044160875570637879041233589938518385935264228596984898303554557097275332809850427907230264115831535801200890912234969704073363868159700198070205836055794529384221137323296152888289921623643677076824563507216012037623274749093812527427818229652050481668207566398829861627232990392086348997575500894889844590765428925391200467669947719890388477881277257740253823263349935455727205942589017149570558186227468725061477041431136595435864041717140905908189454778169260766624003668870327474773451328335415555482713883271247087584166450530680505979218945666145135051045126311020109326075751509362928791789275235425448579837700120508130698403021306505844242183023559228935530737002558030969517823484442061054308393254015195208344991896175308053959232343411063623706838897689662147461822933566504994158872585417554052219502327908161955705107571225273637331181254877806376497443717301387294732324418303020865679072593379715441609326582808227130250674206184590874051924087494562277921361599510219631640149935220516746233568678692420597815576352191367481933198744662796092800638441452254981893036973774737901250749286975176341237483655158946670488352038985554395878767157589578301964150330596412127379230846814871182828434862367577650167427942820201035328638434298251770035569584033817881855012000209350720938691656332028430251503946795712680915314033416848845474358836571851602013594977111902596230972025474872174853143251471058428505211978296739123210586139247571437731418944775431280258427656356683369391413510295365963421103624743813801943400502296306392502530190220777279943105439508948913451648139910234283225087252049907696367742182138690141138514372870507272479775376648165358735865754617433542425000084138898862844658734637274064057837410892430702677326651456075725263976481190485916374502823457060171713501062773208404021448694114013150055872493744982667577340006676128382715870949790778415256811486129357856847382407421393652409316406487571050211306938515347495363560818759747508705349668156004255477676556830668836458397314078678808521612777069157028952115028055513593944575762665024701133715908388879193241589906225390810685153705333874444883109525649788836027162483777015414110640733906687939365654410098124340240749793251551026992385669977973245900607062646229603145941295992021403845477903593622454813203236476165876286662778976079035578701140251017671963051971758949245944560008017585105837085002395186394051803356035105996497739454264021394147099944603482330130185979541270594319243908060474430042255886396304945284293199087960107165985570970255371892967425147728341090006633890722982434459204461792607379975591157182119470357357690916746341880915786145266063689816976910542476239185538034314793685388100337991499972324508444076652234018877644459379539686120663128136901065003806554835084768873995055018529672155111374371283761226043023711656410609773193746329132891083658260931838876094626830960611365832459069617062506361630074965187463510230687102262328396411154231735617803537898956514275743224953932528492173864645489756187932369303958184358077938009121961863858555942640484981274451107477337353315678814416972532285299045251373470419858864956056211236471653680874902846773878455368156159366748410329544030594955807541804161583261659764928840373817526073329019786234856315593134188748374918285549690340461799513831780145216523670314228225786543036880856194515822052319110270323249381594680233137663027557702983831521245834227624665683646138810591373156186861343055109493433588347825393985321842698654262941449416259313905005287069343125952605078336693817189914422109648735122946929643874645752728142329957681367357756186804316214903717680817689275963288886682994148372766523874654024895499884412164769278405038508350794716763917442835063230984800525165185990189612252609445993057586770442877205654789499891085470281741221275411935811592586740447966146542046587699936988398785149588406624344369424427964756579254809920070158018890286428829174515276892438309612503205149152607119344009772635477654382740888164669582948545281379438684320277763285294824561183487026095303514680899035498601883260904028612264209534777881215220656368468603053046608543720114713172425585072624016961106468129968628087813705597916913486370955369072410844484916820214225995244856310402169202686657593660304543361511050183478715854108239509751524490030127286483361129086787058178061314824696936184514751995440116541299430572993658231346819799182579674653561132221245195361548673803963219044360035452377433299395293425553082685263130028411588447168974364727742413845812826872489369828483237720111749602637932878298408751782861199101626026765272176445524413433947801280026961491037375847350670779515155803501776884104187412396933847515849460996681472416771912589503929026873668630503031624229103571805916576625266224802982307328485873169561440807346715534537012651541408560239229895494030544940810170933573711269343939319017755313777324837960350136529386600531710364454713209155496149327859880271973663133068255039399386111941564187957398517417297628383338539022137422480347424649097494614137470375665621025340315835674986377246635907200645585074293480468868634455305050406964396543603481084685603136763024131242545236445981066951472319035509747221587201436997023229079777460858021693309851023265268386884348200307134120921210427218769763138678336013686444166630323667364923445112927800016184294516465451154724349424810402623104249834806094745432026165940569180901322997364422503844942620304209006216677571018671429413758239259451909573075563107248280584076454904767866090291589859929569052799186543094956464343533359043586485966350808932218915001985636905093864762802509611505055718194582562187268764815936450724001808524385702322593699344878797925202775494447145739973810914188780600277338292562378850505387121861553635366676821100089905230092738501718092627956022558926574600798311213691613093836855410534288286203639070827354311432738889858560295676314908536714422735129982911941539614512217639616885138477284502441365473823485172968689369886603160440699871779937497177519011925528305727135457398815883907841282591499304826603316151884581400245564692145278561389512353587365508334696771215741210719946824713468653539716327005806697886275902410800371278340539911085845475581687573366555203233429713169984915048360406912688139425302419268583091306074655920679562504943576269539561435967602501658983739547998526916721489788450015578984151996354078605894015640259730876309794294310075029810489642320008792570019424535470396886906899174313964058795081104699156097635419036962974843189569789700797349985152914582053371306401148723814480962928089442057869383526601689411716335901867053504143438411626721646739114394015749013661859173680475446869573107083949138618015912849135616599886704303413489981593992945632034793924012427275840571521895049105363619765329746522464229526812603846869210224983557790443081254007824105479265660812199177393303803497133482403353598501215388700391977597441915652769089663363640505649013931519099060104080226017324011210099380342441589801567742922492435317143148018749618846922345885072805712976467949319271441217048569053205589838611970043216131696921110547538444857307481685845904560210928250120667020123814390173045817916585576299470030887095361273460315801930350677800707835513078363271252135434667031078433508985314386901741515453865035613723816526518179123014062648938274687235316402398461850247322358686024850819500650981104307327735698273557576326589751338382651115733456289700700292831871874524957990033302936601095975173839008266273367623775266522405159918532783756683418757677823002088450084626481895775398346349187579202497680343173999725112640041026237620495010051440038420861086203304897561725659497502242751166714414355075129337886647407876985640255253532509106216210955889731986080819515297561990210662091629614042221437194078830089811528868349651778315604204057912807299784945241524407617537625283294658491217938584256669367904634686519424036074027927788855541117586940968431370463034922105633521037940419253246519573661618167734321062646820889462171077607687677491549532587445857859468152385537167728046910992651648193965351825422158926464890964666809377669744097893370016867030685023583184183736292122643230261247158169706481018317315989468251535549529667798375900628618203810032473731315690033228761658344167750065811688826291838463773076862570523863608232137082173376042358518568898483985669055376615115584943925950353480259779843440281805560059126577765317963450251391174223546332496240292098388903955437988338536997760216642074740806098118455834267456006749682658976275525953953175780547414769962201226808439105846569578190376838494749338076524838073509776444974280640866355516119467877327625067773117147341705903488503611784844595255361420802680702995700727621759478355030689141903354004007734561746226103820930874105437993895318108900312173582577343103250382732975153117831698328794048113272082515713786191236587619009873968210223754324762284367587954361782910187494983703241266996746707570526045708782127479947781232974593871623380949481018598144043246942141310004689448703231686958975869266832795290861768581280338917639991828870894906509460653079632043114592013265023059424942603420333071175968810679788548887449278532602955596635410573507774716372519984171216150646224851825090633542201898088368265802990374884890089064200087776940054624186460713286814581214135286944794327741094387959369793282478523432744454169276486898338315855109619890658501938890747701764656247556257284489844419838046696905309821736456708795991224825874470439958844892741362407439901019573502873328694701437539928267000986470368148115335360045901840438060851372657088030748986326761254798222310659402694605970683059235918624641684867348777281380824250338509067823804245974022661149988201346864340046423931173234864195118586704259468748440265823414920519653330656671471092640416730529772046058350783441615681757214795444702677206323063902857902551240636679775997527666032513166206236040160267770201541312871350718191149524830511250401455458486396928210896439913513622143627779300118494227387901034881655149812768165681076406622584224772774341452117406646183728072318380890610144273066352175913168458650685524214086508625009875323072724857785034131439156148950422328127006136120774518482625054495754910940544547241124498973533785779218255213429524584945663870225744767113833548391585000979207326830543182371482083774163374972199248613106368464743499137011401176929810930165116941661744341545857042537990259421149511545116253520208054102594449162280852653102416887010516848358379838150845960871278627374427867199060620074825578359453067037350067314735752503440602194438552403649811414492722441058954048628943287567796618073767819142870625484520191336365257795100984706044089607698217972699958333890787918573213692242270972093371705500778545734825046076284081920994520453494298608184924883360335198907540827429354373218304947429872639462451046159910996937605400895910940626241803811403039023566221932719875408152829582768177507749574661870887060042010279244430196782360889160024340590730121063966614562129212768064298651010732852098776251536880221805626521024843919714053862802289169118532727127391748563024947985696150132358542028736850713692661855339949641550992370046824482390120288865307310678368160550958145559408381474560480832648721888808721616902510367355490422861147711951461522924482449481328030723773274779028747499953634575176482212618126109838021011722468494522125126154314434117858252947924365774703632583221654260670284108233940568729283827150402820711915831840993695623439742268295094504615636005236164341088949684798749688377567061247658592986731147729739392942108514031140470262967637977429712985927045378055816469916504769813336165761533328343021150847779395354974788606412820654929029347066609724299843917712869956396932266859950526039100083912345161105883424897963842769442362137853178397516257263608790441808034666127380955072348936751472399124209914484559107067371513171344110260982571769924773274018422649391798677775198121727411964758544561047347819192710111393279147876806376082745198459312554351761529262053866888057773690304045154463567589059102684440125448758539891251483046924639433687649141790006744558756832070075616031305891588433705296491681305068515388841386961581808511360184613279608233295260387364227621237080426519709509138201443696687262186094754081501470405346663894991389747635695445357192244006206052774249391984567831288174856379030086933944307681788472972006200994869799156075855783592170575617713675309476011325383628549229154850271656541730097617278854470048866823920272639407893555957805263342701094045198447638010712993982346055642440820214986411521137676484046099792591913677918170603468114804772193581937438329203946196654092099439123243966073303450677220859116505554357358019366056937910645136589738957863236189469037117388863889436094040693699862932038981957295146740852417582186099801536842044504250854621794703657314038724184323283788245711317982851341042116665337461321225126782579826916489235616845829909564797004481306989132755131763412082262718012814801472116679063098001915063223187793426420996217243358474614391388019511970344464058384379203635044225843209227541932962610208353733955091170598521506728696382689379032218747599815304615794851923786353559546777391851009378328179762265520418492572858322308428167981246580803124645600613060855296720444669875966902283701237102250017363002335743415551701069202225145123425750939704374498547146268876353735132530973021087409145833904985623036416341775287937403767144735130893402154058261328264413926333889746906498638150572922685466436705541863153359895738447050089863544276133025800716898996090261304540527176015821927241432001581351625444484599570432070225567398049222371588270889228970856889999123592222012041273304018934720671846705608637225741977547774947556367984227386656193942732322891953882352622629011321782840571556232056300956843702549491010185845574215542072311865880853259272785173450765998313427060848940121748686639070596168844340044013244416725674123215012875612351925626656422060594101874701305617296804327465510999342658970683799849986820459534700440445254348247015087494887181654077783424996861407994474280700353874982619875693630254055850205391044768204427704414269161537463384489958213195322809366926465693011549134034804024886166221273044521087848393871156374033879487784352029651746075200883622526088448545362755064361878658726427294844902244861366394743014316543134058057809910040834016141165976784890615388343726553942421928658110379058292441074546108237248858773148863335493283838108877670144622290700029344984464177920420060094133569871682104841769175534490634353122833171083221699919342120523039613694260231968762072028513472071313715841592508318014640198939016989538367330513919054800067014947726193378711195288660781273182916793289313951362918773246410689551681758756181270674419635118990216914108643149514797857326206144290403654830858907786550630523904929224337100098723105413299078601501275933185012500166611620213037696837070324270165538927367498707509798156038752315020133474154990183036768502425701626557782112254452547762053176129257170853693973056472244743311736144080227110128903554138470152683866762430064953045423312823229143253536075429807949553064958905241930470284993464189768218529908961671732994943986946366942883100046312936000676284211127318849684425342476192341092685498755772929308604636591353187955156355033708690362874911534026193781027319250293112434723518077838499192076412060842021101942026714165466230604955008183936132467732867830722666088548929424552917988583707454511340622037888780064394938094911384038120626139288917649449668560245053881663447000721974626241803347479623148691342208987132965968504696877517121685522274692507527476206580089727112130991004442055394802764983537567400600671196258020699042150331181526192342292693936703802470582873394991685232881933846237755472358523520419743852167708782505433895059046415752045676096940448738455786960174989005649888410184535955500998481840464466131737333998045650312846984825341472748113806618998390259602483189700196259738440167919103082891227860165348948554438847789542392255789383816770007593219267413355772838022904131075805520485085131234744512887111746632133086982912472619692471785166392707662586322920338400938998553985255248493815905232073811611065523183284716759913650723499251855172441700058137171538302769604226879525011098053735576992141819596853081078260839403677428373708002382057269543425477129698153265791211102386982424199785925860100774134127085175812097858847683617170704780345344428153699920890145390114692801042641546497972286282637219862552042435495301685648530278191174168684348781237634654013071637340488308902935417743267256054542720246480854173741849174359332297540670821195084467646193466488661582236687646208153513244306216151244370247504738315583468658754507492823745068609879173045133066092749669555259242372427877667489024517983127857285890653406407704448072788254437356836110211487128117672463579276350805995744760048363790280707954572342130878162833460563818620598196643898400370232953823660189385450581771071138605643621402557163026851739120821383755739473677766073491540416643303981617639684112670848248669277656683520478047933451959200010715230511652138675999884959454058013963076296279122314927914159869812225319684517954070120919433034808675519885862654776943606930600984762342347234982327358561773927684931166118691893949874279993072380273390769742543064170251331829660475649535277349158918593389203648066320775888287305974513251671567759549418201826533477131745616346096466051639376215391144273339690387949960381743824125948052750331597699415364890314988597374902816049038340910230753352440234639703797262110392929978495887322749507366894124819803150194677537932810548116333933222149566469432924895288915059118738168350784376650709475657809229881996242304643462722925075080904893589339467977877086848637290415650811588506293550564819873351192277970797093668010991181040341448413970370469489841175222870184314397523810299620649701533026579387502964665838201739158540349906359790657377684352290471076352808572300057941044126074340128725241203256863869864087246327884012836005331500660211186683394423969058986793595681713787025539466117231085146068100491339517359019725602755245837328097791502857447629923691217648799947327409498005958142368506933248873182899800549122885999268067005820167164272160543929645266771255458626911446784905119694723586213145356575884213370427624824524139290548463752610601723389284449691081710593261847407397554959345261103716202634822159028989522988592126162871700338700692350193906364595484111934652874704563307769332790717711872387911876950802313777459827776645520924238827825019258621306044087699425228105563799973860324172072913400165309321019843123329132884429395098261211246703398256542437605801229023885792081784561868306497648057694746286263671774048146167034045456886278902679823835901390905363371424434058344053357019147197821990122796318242052572556910481527863630366333320830943435982544451603982749963709244322340483490215257545931009661809871866362783030866720014678932261362853833786699986995846935072681320516671076139453264666417061159059347619938179917629991585829005469901740183809679560364641052355290147342977753254280475371024151862220071602706726231370000997633792414913257387567555531258541836146122446039956121733249354589022874827204280063491065423693453213904030326324914016982180269511033034859682103669634310436039630126322631672799624071971264591282158496428940352853194058148589033594758038365400768138928367876280212223923859660983574017320072516225966071491050116114622638101579291318166667575788800792046638381999529986046218768450286168847787523102403164506760683565404116007526438479338944586590361482849859002638124358147561858432577152509935016191601353387520808606195177905247650969010149988106600264411848420392112598042670145744882057041612913001724272314280202414930632029687842864106431315965797985483825264047811577360155812580772137277053237400967191494278176694801445876091830578413362174453286010335640375020886807741069178692271418211439977655744799161662772677362237727140024802163655021301989491188217770442562485226358567581313803837479539383437290558534289669323692406306018790203301723756329005730680880002653189584691684900532013064341735766791285715498862064707137357292099273386233574232371840736031806094391399166572001944658816295569933033410867779035036553966597798614608880477392012387247977200382434612445204898867865561313582933841428651448281915197599752547943637256993921406466252254862950799456830294271551905106799856456863687354419987954895912939426758094718484491087218720979376598053612556714333077621678757057926472111355261730100687808042380992804930142329977472793974660445489895707506259017756979771909116832274304689301013063569179812864691365230409824037287286789870418288026042176382711088422111346056206725602555439987752083746327128536235347499424826783191406271933084813047998398667120270584533399127534703162784305866155976515427393581217935842588487273558589891925302050170854966063791607255970162525894789645289953814727010303189103033327539023756239556091823978419086308316036146361935229285944884851686833801607404730543107996720757215361207876552935794076999603779184863643655704522929512172067331006877327399028012612082877137311212423422227098128878964206820724081150013614732567302198825417640764891983035149278450637118337201099732981098364748238886284606581761956144838859695476499168439693881834558874704352804948793607621664890409676409621909669187624714717043777342448553410494800097889286753525264202817446000260588517466357624284676608082864353723423515301373270475947728347464180615497648988669981986012393820577166336606139983810015438178183905818506782225410049715820036627956432664677559207725294622597558445514778197061070133968309962380342079782163031592669997938260575371821993179407100924784846482176510813201039929061816593288019032514292628578643077827484210334389361337977213008590191775338002454449686407160674695074588266248521090700175243894747084950321974697757179051841221633483947977920817745748503966257407623949855500963901306772481748939981473371470071592705755695754600575433802372449396422384223604160997331903793227042506798605688286771320410226134397535643780460783091975470146768648009557187046429851068332501933152078947557346566757251019154715647495459612997984245850003511785233570309115046328050630839319701656149164499702900541261388920203769995321091573125239883554843656115578789081744753761494689103504852739014058837862743393810522181385485616655807626025262643357580758121557546456424011771540873385749357278244902071814195134103338549679923547613528824594946934302940513450204304671296516040942301347451506298564403896194469654371813899866939968446225265888524377748542057940492192179194637025737372946619710079363258279655286326616892859303277918067899094341506791870388665628859829175681205869525718229373419177048572072367774828649263520013536070363592899459881734074087186403657817386921406571604201655518170940729472694301627537920913762708018566314748022499601302937568857080860125873880360287028342203997421640974293744157015514839164932157326540366748740309179466252305244385452075084432605877274159051861587098136761540824072892016025130371763895772972731022696953336936770344584766528420938540415560635340240392616322040197210895496494319158178671660439512963423036759088431690201175260026710630130093526162460998006109929589427400945447661658420944373608690334617185245317270131592009713634037938553131132675563819997835046337942208986715724424458555009499725013752335784991823433856605549169807713175521220057637531077867539578376146733986426982420000777376454166005024720345096368674913533067563446865814165189017690101329212878620111551621568509166656628893771731604790147471797111054383376945203386051859423995141938876778381572823650820711995285094584358909875859894969941116388715368823193110305692884898517068776277886623528738320139002750965295225932024692482778143095468868786121068016517209749053062685105334611923329979983918971131315239197657491300134225802640048149768076586214435795837307125487328886968120105539890951613659620313729910573640722431943026614514853599052056238521690260966103245284660837742177161480311707887211334327646120475429141938783640411861110261306139197217685582768662572719861859247668471052090529461851569233544762046168494299758389827068510757841169969693499240840388765945356865636322790710938834187068148826036824454716018339933750878274651153072484092422952286599568180753462491145701866644739667826775312353759963311751225325348531046169405566129919751681257248331651024898264631228793471340785893282119225259895051128564593276701347252839650593501003779964036553512243348701486773676856583056574000898064847989160496703282183235044741376896627421977796463245316682210241366566270761250030427685446038977170232549581813392491072111578264694929992731342784282745937901356157266127743711628280791438634977593583324497754473265730978423876551880554530928664194844613402389191843917714977359611775325562250188304507646336750835176691378721380749961045459148147821049126201659414687194709760034509783850577036075872785215874075036226757899652883593522017850017964504687029198490872503541702816453951872231948139421097746441479307153021028437836443917511080579847300125873470820481708020345727146502664411271248038933572440295907628701889242599880079585347689250713866713939087426283733153901829511193896471138299054966160538689992270866532176341309204440262826948115691690296394127372558582323713375344492206852321745013038715690414770532327006453436789816435616478054793849114627263164403526975680850560592335253830782041499291067861567987021410614681089706290888120662468374012129973571343580469293910585127489338758543552715419277006706338019560055630565297373958748595134993691820545711572727173023230351510670077828031447271561010027035301917430787892089522622780305673261612595708176240464298836457637604332037990965643412341415616402723983053410611073330846406222339339605847716362909578585401173195940780883119361004995520765366692558621108429701125117733820543293005468142978725853350000192512636630962484415127430385053599067410370031367147772780569411937952980501953217177813648246120578797008699176550291273973977765212870973515507573479419334498311766384556257382558547351499422165358591978997521051923573522001382209742314897744205479132734347714714651408636489581973086702016421061872586191466370488884518385592624519731959203526783834356771046280174689971230549217605406597932554228904235403153281676841080103826973346842613572714829970248317608996398308481917417495769012023939687325977344523052505739478697712932220511616217646813752623409892626873177374997862222138170370359924412114742340053385624297462173956726792404126092866480836930036100309396197528767282884293095768909739539456960457734210571240244816219401523536938876475284179875783705330270256555957832236823790947154473817424085911272952781733461189393981692155163017880880140044239413511636386816224598159007379976545903763229098870653620395748624965748495018565937314807983257486720201751115575941240405273053811222788114287186257322321154580402364582099615458594756040231343225347903169277570649784085832207760764901162116144570477374355646092554743266806993362667301308015908646295528383363321666929273169691756470746523184431898456892510074649420587988135429005035565297791371185537361084617860670753295379099805580232833110404221625064676292929444046924036074839338799408884866597699459148477189725711449233383676018227625557414513308550760644470243049565696897393593855975723682141366319138391319577461399058737645668258329261311227536256970240094714766299945203295658819241087001258496775037596193269430735768142084215581488079645256013619931234641729440666939150849380437386860748699692509571384904100139022930629760065711006401712399145121156409619202535121011924846600044872995025308048920822742582731551583998342724460264323124016098601605365096990013133655346445927873938748764538379143969501330798982421089064182643656388387579839099043803896485017087432655315551419876872580177551094553672783814170341036955846242854161380640712267714180397080956487884939708641406289508331212068402546906817014396918025040046608690674394002966587967330808360096800948769113534489356252100505764730363606358081305604176421533072071903518512635129110966065066602597679131051744781628509688031561723202658162460773996100300664725184012219865310592817242661050360051871453501081265071660245518217227234134548089647559963561456563673633671870137587254475249233700516260024764246646279612440973976928496145047491715682522207793014331241219100496286083411798468525001792006787240584617669409911575016918195793801981255391147881791576519443242301332281538922558215065854730136570933047490890015974672652326923968793842486769907977688416085467095036607099391020043920749804892092382731275438968793300192050138162034868616246885578027280710288723428897553520523236107576166734045606030171938864482041702401583269328919369848239278538702369249332353189690784955376170281800414926732461229203300429197358555601581227540031617710888660301665768424928825700948239721010904199125085623355772846246120202478803728544374726349078141323516657854112161788436224874007612317501620226327172070611854611232638800259024236265725434222793946089467464148369871844198597278994702759217442719767013330465239019896776937038711037187911413571932379340597836664821791661590724866429144483643672792444724200355743577694396775878971747735719254404792349266288804342907700436159964994253275105257644104539702798960553148387090597485934122077697742351324484303435430578237651266614039643806780737162544444804128471484347854314064678576734125784691962175876977646549923475586133602700783774216099174343221814666844460498260969114938141927111007963146707710592195527863575631674943348475522247569311860617308921490132789809107857232443070196329266057358698782540000044720286047716821914745352562745740098708493424026322229804623898914029492010921741057497364468469513520833750647669121754367790097377516275632290093769840464787370427710892041908944930033749922956470919248584541050949243562251674830208579672734786131703181859477837917248490317463481808663673116903657879178756256826441372137457920656487823808155327208462832191163929329054274367055937867854055792467715697017312799689879795921952300929074347597389136307455608490884160717072141395236050480558910487874509669999818115655249978126845190599818842561919661173309257707785355082685049448353438870616724111845907758334015878899358207602022088095168805524607730470527068473054429812153252787723414127489371480554860813656329209147713565644609530082338356998826640868838125580227897040052091120028108969128938801254691705720725084284378511832959682914569405595402681284305398518118987011021756448231217872663284080418967192894582809278483470192720218592456575914680814086219812840820219546888129768897599062662274083210878610744309619742957644650000417649143275654783770645754080206372316841226515025602400069421071189477078740091010382772703532759427294673556346357251278050778100550060742079470623975421175268650470258516071541058107436895634047552738606823190610843343795428105353063516916620468256605286082169946932791722929091245514424103261608564020467421889629299051408954321252719047066064906533648947847928207262190241289568349217967143103940517385135920387455282048061956884350689101395028158015104688898504368380471893042493747292131243548314713299372686337020826835119656080476285118703137903822785111385999508631709622442462183459977510380337253874751947230764526721108400720901573590061001991443459738863688656845572975203679342981656905246781399290059707201196508374624633680596927747297944640955599402684567114674569765800708491381616503286141650987879938322492485644178188231922052488411303021849274206242315197732899066630065720558215065770400275917001458562990694094998003081981778335871067198736246804709688450138522428424741179450574474432722477487432138477969323565483561209716098288339851841742324477116220357200815410031289622850073933581560841301846198865648590641579690219917214946898551786842904538228567115299177985200428815978532705582618980413098655269704240030679127076499486301877495166255423419199212804561306068407997458667796042898404963904281005855501155597891031662066545593573142010445755207947559497444855618307523418446513730403544737411317284368903705256698685225616836395649094572542467268878108093515092143725966915295519158696714860409521739697575428023020285578484265615376358477096678467149173227402426822924136556529824505782372648324268988739881589920051227390216454273251260992287187137762883846224415589860382595090726674429109382785470455132871149048894614032218915368171697988228951075623812611220701012522999759851749458501145653036079237236370921033083477000198687971196267501213174875331069626889020421814072647373500210607109112313344645332204531324916937758216660941104867438800909414426844142434255747260124645617753818176627390548462189060200365544523222005560300567082431400376337804449700906312320766653257382568328042601986524721876738450437867029923532046230750005283156073517732489212323506738960570947198576693484525646307628898692295033705304645617197217773989227972374355547144827637310000711734262773760524920253164139971327861987420266269644489176767260278278581954106780121454679504484139057699057102915068779282692181084551368858703631167998211311082442272193158924495337232543481261697630870479458876196656766389359809813456168726813411655204994590225879822362779996003864817259707665596730091190747964570906714559704799302930060931658255553149863551441686990430135443483141660649160934615058732741351554426085144589401064165872167547087881593647581886867305662600802074435127135976692032420847100908472921754622363604792972146533201237410703777122083901698016022297989752769735879010975370739803310211906965018932548806760237842950884080119421206860005391982051288298229037283663960967632983174336402374059560088963719102083961509547311172253693103996706156619798692634467057017430472164295578849988320587352999908334414586885420061748513465212347520264770790863534219552521068689006774738111663839348954612758846486438187111593707432967535653166338904500332388003825650443260694955408676422817753715797969845412081146081987425120723043034470807039640482055029861216112078018413387375899957602236460919563962461635650323539061556485359947780410486379638118435631594092661951838167327870382707128089586892174148459620356279610012947750378901267269607001323086334960555298977593185328426910661104081301615186775105603312541396282372282463038352624290306240125679005100456589044333493539944574006974821737132879733306248411502819271460445292815431604500113202374785696945392429989335001956512569528951106934433770666654307886313269088720432107526622754134115498884075216866483553616236412116949268325506085876915388978543583050197851409453218516378640583137149826670077167391862716852075056716057922718558692889664502466670595941889539125861070586625259904055888750079772112574790128981417122488616381583781116484862352687909627567202563691370961799729826204910186415509026312279749464966133204298527173693361802252284809835805959804296914622397052174133783094436878234101050360668691154866695079668050213361647888338133104908169687578743152141130805882272585836661171105282214812023687010335475953095932135807501810126259202275968136986122142986642269945600093092566383059360352185836432511272149077955219981780894478864544526156246743254398057923002918687433754541473264048056271085099714893280286435822354555316342701898631679408340019494452788157093258538738490623335454262419928726328628846964064540343323899367114578038397738514933151846725338434892970881812534600848154371510358070502070005008713759954466666221193738020204068495943870309506775770457839811618919239133645229923706014204716308152531971469152582774960438851192006725109361739743724473967631343456052810274892605918996670980922718827680279549032459072895273409831325081461769952207857886238737092924785502125562578669600353208476136219718106339911699288757137402810710236872909278304209339971431487292236470688108067227386531552107481592667794759237845786242332737780720717188863726468307490569424152986407511169247278456799464187434941172041316343140465868301205074331147197416115337269171916034715240858715029692204161683847936733906773786284549319161777491466246924134317458832610646585835306812801380571000969582323924109772953008771994113454870405430510285382559695195943387599235398514701714367410833193363550348880970938071893912694636306945233703726485231371767547794841493348487216722564778835218512980025751374194890696174832463902446678976209159298687897629200176365727805117471838425475959917600807647802542825728963635922409988861923996324208687567596875827286689958656716183835038987622934645350325947140995340336962380546693030894326715680230240557145637738247881318647909399129518187275307826480991007472081715819250873941839406277891470166646056499619276746790370065294291791368067971629299457953984171271251663934401215379093229231282341193353284651313722038337101028577222598290905542434098412259220461914731674686504070906693199220915871078549675872337256723268885090962096517071070876382919976617781121324834151419948315179581960146376700052177650549559483687634505860967793267467914181461670278564558592308457023059360938150338668282060185365614619542111194524620582551898202344182858500257924573770098090836614178513697102152527164928998627632778203709383981344048104257965884619028303935874342279182549566632738921284447590418201198933468780870280201480314920059159992050271815652439039266434579125055784725961122334186591462823546751667171274326189341417227999747315006474961114772240964894700879227072316086995055472516343481495218852457920096501998986085567960755183236232339329047211912910333237854526106145665989356610371076016244191118667338765233003713400001497008267015518273028442721250607264644474962284114136355123155366777856394692155302606677042309043379408613964684953846225233898440757541879672096073834869652999780146463894278537813249935232075636760903304617591667007655059708034873473744400398674727455915499454425492298652716131946711618452279356971961478721628098238658764739640050707738769250285122122950565442727109294230115895730207871565535235224924444760456587199273966410859672469556116265754290790957741387568423521286452351926228637027057333060650142889977543643331125521054135350765052800518364549509264151051387174547048997595734070246831273996140113933780593534222393826399842946511984616258299675191945280772912547506247030422032130136347347207301295651952687330956688137350772593066359178020963866416065627253089967706200946048774486731688866661213602495792953970847296094210783951016947023236306486975704421117495089084320408300219995136594308653761509459875045075148286053584361819575057774824438487058900469250172131426100665248113824860966891295352803864481357262557844510832903485943813634907583787420840070160269832618094851058529381545323577353310808917900683175336213172242213170116510760446376099320593544734083651032597464142198814010911340558155856469264676342850487079375820510670306938059306875614807422694862050272171264217530355921852961175239742472496266344053839206242802946561742976782570489822670322230330628365002484418773581074813956324511788594551301537826643010325225351180324995449118417284983312622304695470763946856324239828182623374127811709187782799439972008981489550199563567038164515167262319039613941574098965935451784439286807269784678886800611333853398592783291461378505274481673865735576609476693890291130657374650618579684209590997234038902191645330591969417258406490164179981725178903887030500527054325014420938479508714455900403902709336579256333451577873705455988216942888897713715381968479309650905365444548194593686809086805671927010410749788830615971295688974198177526317698131099120156289819095227336462389518166974199937326494244199476499496266934709836158055794061185783040763703643006081363544211581433539612396289696981620863774971451471942572537938913033507162742002583189360873587549144501154043249433578339682876689984832689639775228606725380042370123401992949000493459905290452892807408361859921930633672661143618535326982939867804459525712718249429855564523534912373166514745484600335431567114302619586457660653656385263489085966683633600510705391428926606063717040769411389060101697951082652432188429796366232002430326127659969217644067999839732311957971987374974033117377110116098761838830428355679278383065263804265818518094656630448399574969149111026393502298410873287755269378195539591886706819435996727640678040564085155919822014494057273021060054954841362917702819619789023137576934299402156524304371027303406862233471300589327067589485231991172447455282350667528624892875140641479497402382128479728318931962774170903602524413121265489222984856589917382542935314964624702189816800445604156209410137499080404323538130519658958202421320104636887945685801397559791984698329655408232855194626469269732898008120718935754673532474337684215578798258618835096629503297101534007596987901585905799105214128474971176292420896027265030005164932466026849066385424730550687778896209841090123412562793944789580466000532074342065414593468229828705110138031156316001373055095036442091082865921217079081581578857614756849044479853599858508677251993852671510470411232101973367811100414841264602456343326826335658826858257981067299970235880879978114165031149287929458758687311181830729649800221128176094944071982792367648843728657548700700507493033004714483024530893954658894428741986590138115116596184452447512065822222470488443325933478966612861303335529805074452264500259804565784018545310570576752879428528967755741894843676077687486750952744119668650787550827482125647681261060471673477687063817444276818721869290324061072633405692708296579192298138417096460028526239204300117768116285458539473492677081366712202977968789790017517189445314633028474598233523291512765880802823954792190953678924064759691047301109368955978506261572591698646700226388784090890598616814790255697515700450448254794842744215361932822121487253646568828253279338103551219710102404775400017754339749543461641998700952375432211642326892329339807684957081819952086603560631504473404042804578220146419013185490820015705048869657105437372465122196381034650009878905659497621186045699766288879627189298150648760572181376021849253783938493807512962077906260777241299909647221261055751230059414879408545474920960135516487945737167847374202657075164890625707123073065315496530519866879534524020740433203870395702754923544123162593891412051907801522994530470149513450821160670709602439664091947695643615061578926252705182284089051443656583190921757741938877855790716301476001095021161319300875426109578772650785308435552450022343795662067155066723753167723008344356085384001226539827036271401461203149545197725771968686949123050221870101409241657963096260099535036830901828662659977952157706536226382651328051033082297454088510948457854493146029904419652574585624361802395293302184330787850266698462776481407871473802685447245339836849092962549735175317845384756793618090887557781216813475193101855066742963804175298267364898383643935486587410352491443260670281783712437477196687268539355507780604929886324008171977582402797689481952239839756887232634780604918989938557382792957523023305947230705903954810880773016406381235906488054201679333902346442585981563137991154012351423436910560690556514691926128821470491469819919521196766209648390375753531027734368859733352928060381429578558206691277077533303368203993228818144932356348583490462066206850050615745632860414220215121227561375063986483929432777182803104842103062069479297500165691980226254340083806505748731853575769507811601860835458432448792870187916251175687909001514355934105157338746689252900502907317686848869358938236041966124065090358858792691540862376343861263569418247024394574459459408191899632385747185055385546388946767813519060415990575126109957186825578735233985776459748063060431303477770974298523148228778704371642441524194508782197325826838744342835301437869602016800763139706876081105532786115080323605046213570945035151049781015381255154254413188489785056530634310510467875444025600178126180016793156764983842560237648884094120276882434679157598949980820582793446247606557381646533716307867435381730441105969065294681203236959708662694055519607393811569269521649482383074244741475190501335930905391733227946461740918529846006854496374965021387627732894313972978751289765120600255061260881191949255287197415232500560044297454634478510553852750422510010939629508795125286603343074030489875354192838005192519387038120002400584643050529848157627048137859552444620455043775439467475618273393879901993833667961348450179278369233757930648454656073540428075049864583689089992644521934421847530859413480051462037572293565206056101391668137761033070521996456678864199461499025222495272073036533479078611117912739279924496620896163468954219931219389374716699391230865801089935115471623951974074511213273923136802771234068390019637165218497540153838260685719696201983421434429556275320969361410424646159352221621275122753541589233907332687282446557210275136151524722978068138942436947051570555340198343086886823289753354526995442975154545428063196032431397905948465000783808823199975035757359950810398893719649528313619087014241008410204899143943231413813313251275929015891214330312923985327733233190325846422043641786389734861520789245261521776927436456831029230437680471819199563347775844452470017176969357403722691623988875652852877829042694998896550192574172415943450387710541312914545338377784329178028632113775686492928728642656859153173555371598911795042139686046306496499712519088158367157226035915229615994383065572828350905079720691366535779799447659278956072309364881771622892154340153687215401455089647218447352229029191626990598157178296701206441868624935931798648124487968403783645788445788389166631250062196682456860601487915715112329721648113236650870477824206297588382631956297157717898642202771691114937951625225825533902210396168485842312573644724410720881862779302844752151566899666360331286709973426101541269984518548457931329561159941574226413857171193549158661070172836354255263667114369252492104528041380003535004291238509487040508236232495368933573306102157458751571467750683580874018855863793701502184190774225374420623968090104377535641546310909547518201930037443206665243397492274391752695716671960913918614891689587494699881566956971718040903409391285100844180798844076274067153533849795096704342602710605248162810348450287046745941393350191743315678848464514841350245206843579700008628911306008843963429330888329217480659671507545033405776453375792894628855727389521109102235299396431853290570784466444942386383078360158803518913488993801767369879727394690738323210706360726474494348434656651360698362564138741353364962874918426932742841107216724666857555099599259831310252251977000082689960043013771179438970951792954488269599391770476529420456853343826498899630992171719883446908790689660418560527242567343772354907977572698196966183827105309691983291879268367055186752959558872867637902887107756311232644003172462490730609219756942757582541693218786947719021296753848544207168440833302240501536969180007132583574248912285116961561340302636540240697874266833785698477805226930249053004960828060889003749402133288215009793158234688676565252063615816567929283799060002083094871650223679029943220037735232015202179473403949968861219077006113060836191554753734674014653808046449385638458435905777768025343435602548972513012706781991119218597191585677379468965335493534332240648970167099568274618665014658930353325353016010024205793142893601819308285985003292763926146141915152056326223350388138882487453318777465013144671336368249781507774929016130935970690366927426003667442156754199949814171461931507852018814955723982142539462026043876523587228981008814868043054308370338385543494149716943721017748160420188253094754027440663852573647791744944389934244859507163802994017292996223653215204548575255359790423880913731709416336193887051452610140335489416014295188183808277818091385907143953191462131479363347286912003091170383571697368789933230374583058345571495654629960240571168622354787488142782223207773354852224330038923767778509657411549904505784365449293097860598121877165424640469643971321063943704570264776373591076904062893740689395352682342387451350478000622044556459044198586716244796001714220122943354817901048075933288263229892536972700692251306195405449285199432215420805647729648183169768405466374676709831016671181151382430718117151072055464111804601974056784134772562833518720044864625592849579178752930584901756311053478363960941730384727345406002054453691002454694846964099312808080079912538052880213826028025930143397207975365908975723815925657592807357552359753558723308931519750744184643782767863835951431056715949063117723660255688254379490534387360215766439089166127057085545085495827120933682070767756704791422219120956793878495468640082617819267349410794837305163779994018809855509634925387997554083865926454170233040346523355758059252641901222967725249709906327034116809267543699769398843141732106820585312963444851996769585464856022119918133511125552717984370515122259235887552567025500498099257640891685353810212002557119006673459234983162002246264509514286279139636669301472613469685200636190810086419934307980892325377369627361253742732930977334722532521744196500626621378863703263873759876867682731895969535645143961309425082327975046245550185174983814701512322109363929472102550256184241233619286498190078481426673397606674550604276496727951078465695992318034700218176201873571423042467013008976571209017373485768792248465561006852834575126882930585427501862248939466543863926518331460245209376142517158885752634690052785315589167572614698354454405594245781156257675487126696933802834872343202221825962488883547600196471852911725558161505306705724040102664628042753913513379124153146509026806089375978332486772393757101575660745924205951792882253248543145987781117776801057654651074851944086516895053126137103581330698974748867982272978690199705301660136349572761740513367984768901889693292296462324478805499818610226481785628903725584377743214933523015361445964652123939431272686885907942512615286546736312107199205906426452686111960110773753724351947530775602965960503316971591583894142338477118108452820300259426271723122415313707590414038176008850129533805141477743239866038354591173810718205050483342844600361731084009814094434150693238695759198987591564504434108789966468718512098269670320378971647588263379641138238511531502780439733952837088727411443720024929059357954285133369340155836342325412571469303017118829020209672889406381370712082170396689920961603092274904166580631235364929729470931015801732528497624669728471564051851625728032981860190472702008934525607534839380201077324062407266146154200819928070240730773585362801442458879885774576649117591974060207152284926136544090693966496661888749932862614891611807045074269621292347276832230496979443044500664852253805020131845904052071497349593587593560031854109695147636920275014548948020830667880960860405158856368045053110926599302439962996953314355775940219774196710966742646046796815802481284722821547699576684039229913785693390404519022339688375029785277684882379560445385230909076996318337334997801903049950991817152333135747791713108655820862458562101020790965444754090754225087284480374668335687768734058817160821032348266820895384749180908860689462205118475318604200305574715715069279249729366517391679521766068991696412982373909615227205167283058965073185057332417207316460493968932590775649551605565056163429410165193316643813927529124544961783368361717930230271715674348417495260995744340076785973273177963443429724988162690474413791532461309052684952418579941599391113889392427009469392708209578973079164489569423127554281955857068879204895891445596940378464459127406788577789875901586579386064261285440751315082812291152689514002775853005810072421524680769336754293902055087771153696386786029387283651520168624494274109013601979505415767903271945079603480188645647754634952457025762333700587779253891528872252729941543657082750539524504579132133388361030549047799521192129742030872771706156591486687377152410255452666148327482507619046958115689228949902452107701133216451477767652589671680484903790482487810922991070535547411447379724989229517941762309559159169864474265309345700890078436896955248136583484032348601634844994303597736389401307334545014052501337238844773169277858004347278892635443235701229877007763977295992163767464655050806945178548475461360253760161433153585202606560846717950095393873399270918890988079928700516233227846793778229354410361767620653864980291250125696291641769138372151999108095958967704018607473277582119171052684086034635108060615525198947330692100724678950288885860887095385057635153098335979779317479275221083291025116424453932871172508714229418681207685178007871829983951009963841108369807200514907548171136180057433998260677732355160228826011796244214093929639985975490139736087532118342922537870919210065741344362834970400031705880879597194348902889699609407906770054544735104585330128676960853433590100592097951530859378135688430224486890470498531776243880802521088958971336505936086061616197780992147700862486528126251849677615180173510542369601101097059853365152611272435654876959283630065994669429501341229079359848338033151077513546335646667109924524783648768086877160559666113018946695082830424911599092691984338637842855740627735519453084317875348643003272640882632736928557699060181600662886945629590547250411548808411733088619020422874387886259866898977618765860474781297059384611436278416456084188265348688895657910156276587599825343613697254132002597083459336033216846741404494612742023147880333818935697553652915142918911338478718857282583247913742262164827639664039660470581153350230198929200399358393298802591852363046035912587728854788164075603308006917480567419023631768874039687554177359060235482149642861156839278925775640881996600771973559196739878304908525754165515324745349112428070076754011548124536959926701897292953624590877123375982540452253156926092890753264070540703467212676151765120048839666441306716433538710298134530584627670888316653636286289175655847838052859968450530111758771041437089712535903148827996505163105836978130323942771722108364563036441788733064136962827340832477865065255376775894115629215878370504953776850458712696465688685716083680619447761466382143302759203453587509069806734703424250182134488875893455560199143682567189689245929534474579015524378964565493862764855471017950234002350859870964286978337458272071320397031137427767478463409120647127908282561846202440605464076700952624877583413671307764284782642066845095363545266908011004328997741209364407308208368773172949591496646022582439831624866153322899975100732631631729551348881324643664307468490271758059447859363126713579687709907113904910262021823529127525031024134852647742533530657523268039297959157103717434071743342515000179915143399706998546156666662184070304615539412047269491298126005508726841135116723483519148322841191377736841748086033572257470332503024147104133482286402367641416633702997141109068223312421146944946652335475570350526673660982771807038352453290553073927389627496887393078319700267038941787279594808430853599595474999476165997053713925204200539922684648233200741323753487355160426800065103657259905941732692696765849315394939543247594470391673120623750642119555658201235381453762518930555410187747072118391776731478050204157513685613654156311551683709905240328802284210270381218694778957909924737760021820207810097483632380323277951561873862160575096858231130108135458711757107368358239942682322375104932288391857846447971877789522773013422868110848673864172099626468385305780037800145506768501877156014139199534647038431874851051670422923257981528178138393424736853793217257041522130753259845191690205471391676798638037220003823359048702596102366602859783433334322271240707406020875658071778672448833643865162001517594671853333750437065130495867482169488305282722744149493114863261121091564551823767003847504868086550639842999433615777428916892537800067288136607033229182123359427336139593435574971193827933380390865248031551968980459143043084153826247787399663895393178719551373302913966047298689751730019054991257034167597344908857171352658701116832559839220109396433564134140177337018210136100138215427511895046670372006763360686519093583065720776961561392036580031225731143759806986124227505808925623212704652699136756597858494722357119684747188062406767659959282501617275158129706589550109950577229400275267460170207274547315310113133611435125160435357709824491401925906977382432288125866523504250917370485685800335847395562252551469443208203922844021773869218208055116476910032571179356702381970102908298602286039432679118555276413526609382413148738674773234616343841686651366273926493749497949282235628842586671087662700534534804979420143541414199684377991478653921338326523928780414319023719592417117505353149951362023624275376738408691171077637821728706251077848772784279110523137899137579537428081580854463878296548346324789379755590801761073495448023251870238019598881822197216096707960689657385126390065267139992926310275765432396701338568723786283129967233971685561933491538510233555776389078188870514973542349876228598866333635417882801286094998090289466387267753346400864045546156228630740671150522864697022871324768904268515375709517495383215134819086876337078606538092090538870821156405881475373326980311978960722403464832716271358338150737717793588425106104320990424016147203619445731238559665924558660155087510591911192549430814228004442066789245610779041751070330341767698016655391715755505306168078048966395021572341074617555878813477616816511307640927425102433452936143156778367762076342821891513909946354878868129442953445355126173290114066061785203861678517534758221844652602472185492093747786588376286876155666266513264604111100553611595690572420076839562919870526486836912865829161235846090676875067477754928035726159314732749929012375432599330120934938856481722239327731853992590034070692566225769281792607330430501534443547912927279434312777470882279535977725844580019100376594835752447692957198895100633077895546816516863504220751638258369219342669995175428276914527700273340991594813998514565687380911965119199533882003841428886913030783826942926221734757404452412882717497295306857107787903906671818782547318136129590789010225778189078751341701067612638919613591884148853948932529912897608712941806216673524455558676510945080575643406017812598404427493606938182020840694050109090530635305777316316086369142048457956877929859531090062425542112560270053476793215327079028668111467732072615711301363150212017818496379286564696071018150849660515732583432009685416915053348839415968186380204186813558460513077886358054943794271787312006690457539717603869753400722308451705135785758780923967551929738037342869410466656751629007123997299140178537265777400027141534632464469806206377697350792068539576798585947328024686044811338340094197523992979541308995856555149236752731081330599675055324471649557707062524507369921834266588480028592245169624525477468278800748188920478494373328929823967505606143682581564554343470287526903976012969665772327159761859400887611561319975593447211421684922622407154813876670767189447095461516247932194835021411268363082929824356492145298404153884313889506654772209622897281760338771759102728495254188926236161083209364473966481767255646481887770261153915914187062290758635427938634052691559285561336881855810087792044825288681398820061855199153928089400751782958831653645432415030445237559441458206153750151292175525619417843715224638272096279920169318964690701508154454458176303688379463849688135935675966565012801122396215768766999914034004645188428280147747417891381743475203636083788348068973044972196673425661632553111672978357590942571997185506984881892545584213317030121259873816831791135333521850540560699120964310073980157385597877307149851180606009192088546829475144843644334711035574503085174665222532293801154747914700249107029435933251310088667660941384453196619020207142876064692814091623671853433943638854551534473092775664543167451680420496775678441586678584822239811958792339871940263266623579816043227054320431293923964414646465159467281985522236266897181188171218949968438321604017198420420625182187258374790370154963305681278639585563146783048764744467432415416046318818312070445251487456239627546022612105705404814068711004967678203340343396465822237081794441134492582146995449670136400554867241307662108760529044468673400869250393676243422074922838501624433457190211412154991835565230549104249066459323621704088231036345420526457541779740463036010292941606626749420132295220590244359949859841194126993245785902905051694994329593422209601317781292040601779283731148341815131318880596042011371963872349365701598135682543607154273728667015377907823262219378390212747887372448043865721032569971186526308656925577341602472139955033804354575926138655549747831118112452519982370084491113770608437228082268893995299218169269203241902890615962841039612301582377762413070129683621973325003324611062023815589313651204023007001617268504299681569550508182412048956101942769811754284924644862005745706753193609964982512631512072960649409114457855157760434926889191530100456765672123482715538578314103294802623794156141577888855799860497702085710618320763665073550098539760228666680136029344760227431514291018044746698770170920172085856539339031800007633815426474265348759360356009712703318458882398755716603048894215944383289670917667331302083691631321197854589711729206114923997570389883466470761212551213054158828587988017711420953895209811486032566457954336658697171804797650871085643041463784206468097879853250461467033860896032566210229273259575562370063777213582598568144053426559009485031119363794574291664580306003229787807171779244028551153627614638178032820848798921489380131677082832300415448994306813163958465987013653630658364815271006073382438238771407593490913572747817703180170811863363280897357138933609744180998039308494720129939216681180444685592650058229928401514624362993666195848997448330793600666379035563329595512878358081506874017863240785035720426337537454745512171275630188317393762124620388031247063764577587912724703521415399207484324777597822127688658275093944871598347695161771514014512255227382154379169690516536100069849399043728135478134893364761155523853615160898997292006010213881024518029869510800336990367467319993065975954118086393692619882667844067371203573722249242156394689729005378636388255534162110135922677712252755688871811749473220813827922459810820814815127862965492103840220989116478511773076139059008520364316998389313490030779658836702871081042078040781390438040559703321755826455980246027999781587313608143253173437438991912311297766902613162985562317256861693749305931114949646744306367299787336079867666173475926647562492719514848509335589940502665329328764719942127981011349149795566312484104302189727006115670615195145944806695028161392248757656117444248089220421828835787885659888509899950650696612998993687501272302684120499438407542842408821899817101440119786063869704071385750700981762927605759932739494102744740795178860744283592526766675126246544495999213756084664225003059943089156550765755346558444135422412662470599714378266133853237730088955729195665667729678239278482283770428971088844625016634816181700739900364368332363744714237455224576921776377118735305855282957326637020799569642860615524012265405622014340802456523328449203046400531346596842937130206601976094428701803918076727641677207857644065138052374721917784200769281060832366123603884436291341559804063159629111253027484400398727856649039639025283989381988327930464306633787402844974951355917178388737242004256340456853130277301696311393858507030663232490456537836840964184044995885103058756957197809174796407882752978332594747011894015190081577089576038321174381651093279269089330924056807441795055510022785405689780090647602090381451141860997455305749658484495053140813976535837715559345491462776446516693985720694235810572073579777612468321986026112969410721856981294031439335210630147051055826257235784640228724032188563694512237353933063734605838864855929318042770913775141172184014618908633210554272379549749876302902360402056211907456679467372187179038464678360545375780385500843964516273601517548082528540408147705935389258541726113499013382771701131242670979296345794799506655565687812388705692964047551659924612840946625491043428441059675081943506929092386558939423931260232369470715987926834307140504417097886360733883664457909976851447132407008907960726527074773803559984897840245584769635445540394720881486671931181758077738656222445885924551361927835314241092935678326806378969964277922739676563578729398045015207080991738085170015621867231462403784158919010859119637614192528888977321606761101365146298205048999111676145756501666411690189946039661483826244020136076738385748402497608390750312055524236196926513392120676671245403180269729133686147802594016591796661528489602155549089641352692901361989097491283031667778917820415908907614617745568277409083271843886072756888927104004509617136286757162165124520307089562851856793762843274301459219578467361311345730002650968443851439297842595297579377448636943247612314748333842710730214741978439621534508318669252447031636480086370233909227016501747883997073591730215697931605315154108150427195584652064584668572307224421897761320300449747427134562325535062222027116088875018180591890105846427279588467560895031301659346075477639716619919632281415177361420423752970398189705993757616563864246311038641207712434640173825812387052677026241581410501270516531897871693810815322728175921718395196047996706977343689036597889646440785125956403179939670101761284378585848094282418321394278135747835610599091711075793020608216137508240064442695777243559373761367119495358625358417136017375407895530210180130039529469792491438385534135306057938900878779137684278672499122514787538727375150551895978053675721495579324055700417494159088868024354409079579974463240965934698387654165194574882520559313978328281886526896734433414201736428054391553389800833042375675446606901268110403022563911245717272896338015065031911047848600326843199258644374701469084638282801987148337506457251917978381558696347911798089589532816155883440569021633159136972994828845710345114744849206747848916365076567048006456680184805616316712752787227570662404533647429338241633194863358940757299211617460301053488311652546558123262514267148991516503299753893431811114776916997038503160357366871102778335609478398448538987632872564159236562382830145371536476274060412547696650518239060474654249370276847284229754816516598153528191066187705745192869823862205266819729854300414517458063670613174312634228940715229979249245620130599618298515266034425561981153681336944062116217215647552265619124011521877832232524454463571787774042466852784056378203224198257874941215408056381677776852100164519472829989404426634706163321759186801672935188676408299954094057782363363760528067730207103340923361357927803374683578320063533224726630772130651134790248973480223661855288568387705126434195555442790121889841804411532099894834403420869581494719565986867533831040712890398752747824441539817680931983390215779208370417847856477400893482936924336363470329411402864284104567182208009368051561613170640970098911770635381887502383091514348319808064520044291870712501913980755104124512037453609927476816425049395435918988256330731131953497322722996034983676209146164536098025515175201735107458659249609387502243753128438034644688925513226120708167238428681492238467063627150513909655895406256081843038876066805013784891045584425341963128136505307674299970489772442882960778266360358409625986396811377409681420395266454608147128970557653278175946308692816543839222079025653573840825477993628652652548070706907568944170160464577675791211883755553444465584354867437651127292838177953542073062977951551062824097960101528260922749121472059922116035112922409700174388868922778636206883786669570909776687731107511192157588770026164366899178217605500015222757778248820516233400345197785542231786283799429788094824007493526934516727689400969200436948295780402482996546817741347145134178681133123612584471130455221791792239541478513423638149249490722039920568144377897301772579638700771436668726674416002746287499784398330246941344055989344239819743823236409636467431500966694984365633642695699058823851308450818790586290743254407755101987592404373774609761458681200680729579718214015619026930288365021989433044716064022817126397653961068566584979250558007364692509197956187899157485727253165779530315007565285372101610984381558106407965169976666165886817809337423295806061990954052607459673508595921049821201101243943535437568803740896393258194400180437868242370348328681834049560955222011500674695047715558168968383094461191380620370182218460674918448799422693700491304228203749445935730571133806881306199669045099126663298959824937183347389140733606057263257084516566848468925220712617767076284314828847937885229950871549744391853147772111215227496674373546273150463536393844403152975177820024496294032453956846478272307082166913877197637861035345127530208010673564082495591405455175208597211647028021861972218400059166330776862418385815251526806125444768054379694662048362673907908392125519971013346781957356195157060301256260433090713626762724597217004765528018761389102929332410967283658813448606075860601578251102873369152641657703677109132894946923458887720078706526121766837948530242177024597084430574033261733741297277052432175999714950766380828740047250967846462206710020614174145670362301700971794940786538633534973340883935617880279207736797716443911793935943343961109849727360970503861321408272092759787937644789077379938338567032032914129376342502389488315478000451199531082250844073677407861762286067106403193411531034123893528588405959757163093144149137171808612605381199287735352979576171673384466709386962088993221621911122507075862865388790924712504106745521510955326018168772541712490809964003725602634575383275306560316606070927330143542837019592128244064483040778887582544547590146163733879430901357740460160893980265208751991193141607692682797267140211562229384167268764440935331383593502439617528754941794305986551583225113338171327411889816939319522768288343205611525019311221001834608563202204025856789886676972536930472409600669207800032532445379278628286066272314124329993712467337405167118337372609376374483751660467421279178136599276651353827673430126556982698799938634078627322208930250507553998188914796952371515938812681362947296116737783691021140578601359392360505733445560641404901024117588465747525095465629771971779377457841061486375752666139601615911857600066187610395228412497019749817065589188118132661379978592042795615933447413979763013081947172137753243235666946407892849910870712494078398284601396472203526086704564859685564714999784082321397051502064875404070117131130395315168516643938721128453606793177218875186436333985501781584055518431605762219090338794444237052318040995295653198868969249548070269375924760801717868613330140992783087047279176466661801427109270157796881368169951912240348980078719521197315959815890612822015245076839297295711234651928061241896190905749472419660078592880641986155501530640469149979811821958565190446729853234562833432156709392932343697892930360793921734481916532649425159649434535007951745547910335250983373260025250070388000850508207174278773755482481387919812630239060455316447157905948473250416890825146175599782106579119457562605517302286974846781256990335751758960178447576726921406696932450897788985843215831526378425574546123189618409915008898475940221413912092980195298409593163684187078710465620356755565750713365280519159523753899735884024660090132118683867452341664132155903251105813978993175468625838135385317770116874575279063886561993722500490915788761385692376796263879934850654466168706081875194270626505560088403600570375931365020445203634336476496458684414309978523943697502749144436524335162903520588125739477520189565762667553833441225504822135520696880307538189001143547281539603722955946331187621511868852494851601189311716313744168156931483278732221542700623613364763187120016484706470052416588076993660810726549273557745716871000693699395725090701935484608538033080380507253387057475779121454665627162827533411635885755826122107310034919987092311506712601778743081663826411793136838830152993921674488056388253998894437956708186284677494065334501482183039966887666219003219218154277141764713718996908889536073809230359346868415747566804837926146038495840579972353379139798902731606021718978872954432160438159900906807601222994642232734272535140951822830811542673438401465156840872076750071153344282620688164665781692008679649638364520906781521094536805973037427377673634082972513696943256779785903748315195008522294180122783881105542746748587651203937702668189893135573232242637050128455792953797183281450118049393797737442120547827645617666952926421904668230326735290458301039731536267493162377160920102376954217258239567179144803209896320508300910184245576834122527935742675454172092776553537552594333700685758019701362032261447111963372628611117884425981126931842719288280896221136619278967733956525634992573744099857757417875600382852437940037503952024855813364841284879516525260424668998720610916960532225311774424907452458045982436815607233242213482969729633720742302577354030401823397575689464062652771572957952997174497184803556546044027544442731722685144109023149000226518353884601629591769380436822351467020131253029927748285927235015206374827452971217655206242116631882097044071647727053307347439538792453315042231378993336657547312064101362480257386034639464885912408938163984557673919967588275532568742594301219374925840781797369916087914328308858472460982762570150515925425093751395856918391433980563949914350206091432959741649601184848632368853956740307399366613674293662948738811490173071227617620411837639584026689828828425647181926317801895695229603101544083765205878150112800401431035356117086139398157710868961295390830524972763354222668980298603325318949698409311268107060030560516465805328854699237854720573182269185790158177875098170300752262456464313069885506410039005658333888814829060575703554167216414342915982440473127378908287441395709177101222918417810413141634973374007453759402995387975043279222895660831443836271799179630771857839926508061172096916604189830646478768646511592206823620723817811836513962171196206342620230113357792655238548854979447098277041893858143945680679486896996181022194723161747233198183256065350975505669592356490111697079762025384860585376956260835472578611457363478244110736181982455175430761816380938829080262198990940971193075356845197949565487454799680386758824681996122604414348573636901250407042939200590824672799810018683167782689432263276444577489160734279748390227043531234338533296353086602358992300253492181184352193760886624974869935873808416865293049676691423345401135347143748267440066932172156038792475783368370443507157533204684248292523276185954769908808542991403083660573770151622238937353702744605501946175411060762198167932175946996393185047638788036085475554873550350947599459286172892137473228256297565040063416138776847416198287628439831068156662923982133119685946990969891541868772756652589425772359356956941215338969730341716146871217927850294231552300692789641517445643185965447904905572263358355998011568147574763790395088269665847134083238504504536568594564591213577242715718204288971471302703686766843309140259313775120451312112342358595470115544598410029733078253271387418170356415856587314650902701784267658631186702741154019545227556908172216172520554275392123176068649533949539272514970028939166994699685221180277053442464526730123122559054192450039600295518819305859968450292293764038335030933530743100879170198657325920119071632807723434821429356077183046784889910303870327885084312815895064321341350303370854612659767656082310065426651299627003271867298492141513514992416825837795912824449784709152918745910601405706069774645457326634740889790330747274831823591645553877629521559667512906560371276923722153063015283191945814978531046742376551958364191816009140902328746661227880119040676654522965859861439961722109605146508326847855231705648624829317401192295434554583562577291747888185308756678751656743654005358525969161931368073424915858230754277604697717618871665212600403200043455980588023553266462023383601843461876008365047721379521862106118327369434661314610321266085124213364470256098641932792871170097769727004520176837844729572670410309946157514784756002554592711443368875393864931864031606531917922970392001774328269689284056476599441552272193827350339108456551063966794139495717731762650632131253293283912451300662196495494071035771150425672956100906119349725870093842711670456495886159530238911134309924100763411000191230967185203057198189293255931790943320201451798414641798640904903395810902911345786840451923447778877772814232374020352359249716893283385772595297200515625275495002229931279731073844500598026161822637335017487206332366343794057488867731827294611764328638993349882365239767850269449824655425284127085880995236098973045185556920037731717168704941861858680409196521564633737756630571426475222459171110972714951828447774229885482982207916294852764874161486969236816855166144368013576245852988167928416652493469993525850930913988955529676329760795503268947218275720627580834191758850701679946121375469023165351372390074543195053493309238337468943634124170383082524963686030322760155710413622832005808709686404392744981096654663364162825547340104911246144084677573333160843035839725767314470890214654369618950219400745289048232794167569614259528501972168389571209066238499881016063993656905499311324200640254845104104402512815462680936900976832683541587586566833777497798790922376621568072708181390605771077175494782660851643542913801098273960928701004401422299019520007630265710671081902069360158318236632891666944917721074680708255082079343175650667104368827565954456887262553003857871851553389416869455494750808077370071597203119764862940094157583853539573297554873864287166208450928215834706541679731666834480723913066790912776346348514035579483583121793172527307183446253875214177071975553176190469061985319536411405462106920649991864245712718378551100575677443590287695928393446963637655090083806308694503667857938745414332106459813192940359844748306151401337711621309969172365120302150874600756775904898467506892889853433272933415355742391486945336567970633748027857884487323046239043446024414780100269493315330828013852352056206822569857588104256327054381565526147056753042354574884597407447510400697187003393388603982316779765766610007124007125273709549932930355855101748692026353670875545276544133663750131065306108645549150786793107840193243538817937227983728675408976707271565208947271667755980201985646798255022588494509749630213100974853240778431097562967538875625724275185762226136589189389606660312749759351286762237557230827637426453797680564212125725511490987139630466745161881323950402816665262216099517216920303816092557659494405644054131885883645408002023541220220006101950819491684747936993281035666665997696310656268705481691375920701535553990726588680468514699359725440778274903167392996992462109378302296449512339985548669533310448456090756545676758447138558304627431247146495624911653826985254343587482385414707786164581249073323827767438599094961798357495707302431257544191980884231374277150286549399967411142740378654962075637823941572259984072869017567186144113805131085173978998475191265474865401898845398792363678772374204482746741410568683767748017836384375039835248940907375705601589332938264126311208934870438542690077704225085692250737867521338249422703903209629279956308001009171788749046728928506495339192432749993123318287679302590545992336756441184072435151282082145514653317769366401408188092189999749647958344722914941830951767201135065867952916543316170040941629701981560982283534194502430099456602750253954794030006495596340521361534696799528837541059941031930381704432502340920196377035339332616916872385785617362401481726648928588182281903627744523901331266851543370451544043923091897531953315304843770360384921263395120432814224650787181915854504188403062635865010899437219826051669667239025393019325746263100305635217109534637069453525903766973454111785576749283918637778057107775593241318088977108686706489797463050390094285569827361354651705700176283498149719092384866241448372819632160879656972919330308837272304135756158413428982985243372571626730897746766913484108310761461878216953514109866576895421978032082460044172196942161142794595120575921467782343407113231606481214112041011665194618212311373510333893694861638070997568844508318627408218727148198751228082013343085774590278831114077986290678090966410344113229882638879847491533345835439706916758701504659917290666578946262652394767650933068288204259200864957978970101870461980658209987048014967702855355939694829307285966088597280803252984692143304659106213100242161750940021817882431473201243517531582024031008679621288190547545139015376119815663319265057295407050369841709501478323441914706725554940743784785738837641194237890147771302995119787000427182383673454072616188549407231971821589048071089561879815398325147777231516791061408763842087173084232986217509404477911513830137248604502925016186534985306809782112915703922814500524304420507949800848598206329788512726545841454101317883118884828766729761240843952445780339049075081850004381444766319460184218000286817822774969992700765663876302119680786502264030513256245421290957323798859403883700697124109791680541785399420945195295591741477197914931278302504496754077700188594677074968138966305915459838897310420195813285728990531962724132763480447096693822495537609239623892673591249670721122740232096722316813974134107888496898500100861303122151605812184124731164358049775799897976176550525333935128928164074751500556329670431250290816035661345354655475448081021903584248572931269126420179942759690237634529744086200519970549125509798661682116907126005600725035805886894983204456250974470777261840731375089285071417778582959795657133909203115691060058577114886379904290621623894897501109964286602556570852736306466849832609412248325534831232972780293512001744943557306628265023369919964609812354431718499982906065996933978356922967133890543918987382287949098205427778583025074781501999584517412604420407956872708749228041499301649091316093319050556367137816216722537025972426312176309817041620330234798966464036785399050251667662492134573391677417111050567115939024276225501806885612963847847181278018556474453697641330925650775824079672619401760277797410373098315321467889967088824205522439662751036481551680385685794711409366890808843715650786939471370378943875942071700298681046860027938555160945945465741908153557654381824422998381837930725359183783428819444394582131795677940074022649550504293291998618442459906311536831367240094682067959042673128065082170083968752575316939335109896733626288617578319479357532709517973668243303150829476030941171355895708442381950321565378593345075638024161015483082199737768980669895081286153522879715352533076538581797664504153020205846490234307065860771296625639891538198616653678462162562091690251994147199421068390803711485120434674915188921828945531312794439163001334696882564356676381723414559070209725148571802157222196753179379036087968860954618013072810557317985729467076744501669210886154132913450854437948097263236557624098613596630624800904218770525858069143107686424956340926271832731989037448465983604266021264298455438930611062366590564547697912131061481806990886238197590765836474679600805482782308410311635392542659561501420363135175921544545524769416072545086848396589780151345144158993335909399142224891968620897332916270492733848130078499803277987587004933487002372359353266205723902572613775214205184977391191721600471960207065037877405822822690782950387404849968637353167617281124479555585227811623447956809301582263677227472964457213530832517448146212528494865674173638488706963274526087406592595527619442403301211031636626129109819516340853683324942021297759089817704797358001489651553551946509988038315121140444310706790639601155992807631380713072916243309326857220074599462826397543668152761461203276739072223753231701280128658613413765982423036700168657810375056292986288889283965077273610760130649874590490224202124054997655951263923761523662773058649293828709098494431983452227444516607340225340212468611872838393392674894754033547479096464395950385084643533220577379969459009243305067453809625420291911900941962620479359468766820145738889754950945135061266106105920530369821593871850533149007892512235277882483589118775999079062713375669825546208739701672081041885548316936105417369424083423791125259088399400582970555585792161710441017644233028437145611950474409731943239259134146487741093186709035900473488648572514559563798852831706121119634711518337218570301092566492467094203703499403873831508801896366262729084279119903668619288213973633161783235544376811136176069799632078878490653448900102227496907431671827574028809052499870519128714491237784623061894718742579477961712641569819471570444839174254835996152506618012639876901094580866132530661116843937810210936716467742481084266700589038257835047850259225782924754879293230028019129669901118769864631104330011212071057687951901831266100072513609927614033451584353733029795436173810294582573259963788620085964730671128085251264876676134268317212830528637090250473846583961774286417147643486308284344121815960588984146296068594629081778613003291236812485395672921268726803093323732178810411011496911378730372231601438343006458547605451355969926232333884605401174287273453088716965327188914892487005639065006130212124069588996996192696697037399459391674338654013921268337555329305128602146391149172928278965129532468834792557146524617433471495332065639405647876282865990942932492099502818936977053085291265957951579409103013992184224612320655437544323021108634827353501509726325080824313115101307332842239945381421313197377037476771381522587943778571909660858233970446046519548131477106112204064141355888851081911136964774079832742185575860800034364763028873972284677664253735303103748219484730804442115374536920919185823199602670388513008349962481546645320063848116179077170679972972691859138465371599101974167655236526232739648738165841190692551274906715173286281313389967987178219863654436365402478240224321328529040385520175697361139112485613608886480543093358407356326188081464831363107995481955307685086410106554349978313682748130328969871659076031356087834224763131589170334265887901946475423926845179789694212137076055844194734221442718117715935518837837308824220118074629405774336254924815403088285504024484481060228535117504191350960554544643723213245864809938957403362087524509344698794409519117130751664742462126556291501379039799235169840536622721873893243194455132105571328809296299075819197190812677789428829604877244319599613846122625266373832189350961245482883871532295843186974359059149897962141519538059634428601548407900705764288137216380085481412795801289066408823591860352482825306208744843301789610592667834880145223752684788868171341248083130173362902650572454980372010359699392285811868979688504538056631566680747496657512819993964056067856248708841763080787229960446925317058929333915588502598364835852347392666283748271649183893782954490223469249453107138145397667217441401146096481134638717409935375183964183716211833869055871966607729867550072034351544480463555171402926810773707773235939428635623622145146802279426649851517836064803636763164037965490820724246804244781339648915995533099462713752002936400687557616582490491119756865400654525761492920676288368374180665840115905349769111241469294708780221651205568020314253587584727619993568227103942059217187234096176848690693403615814780583700985628353961177325636049602244640697761790221988561647706438503314022582405952624053455086098275357044076406999682394229326995870248006159559249149014234793909390835008034410084470259811191310199490651215767046559869544591249400764565749840689728477584567024908787080966722679386667709069231556113750661883245663709228805800763742775531464148833765167241112944636634409014030282325179839729561685305992550690766964064045777247723117261426552997366977922453889915306004591545757555689646767461027316081999274191616570996790943603863469815569704732184056587944267444944445264322423708083617446129466359315719728404858657248080068357408764469115570087878523527798353514526533152712098507659599720488116991909842521940723868910131355625081884082807471879717068207621937542018257073587085172034537910023232549160216171598759723306727862961276449697159526995315695189391020993095601571040030224723540641789616379103274277677593677699651059767456885996969153459200897682950293534705492528501406060435357314689381074047067570459627151944923390530728529526757734895793542433023574904543751162631757075864697203445287952043863810988568718445909127690572150487828845074699467629500929534447214488717514163426035647296418231616364119939057222333749560679949981809292850636334040010175728580619474083246190555322087740090311886775775514064134585860720374388807225962392560737882718938086703895850738471689012946620878148401155899632873508262730420430233553807673531672913946734599822167232680271516731595019263741863233566930421238614505509383550197513994023522650551923683289855374354579966427750648323285463618998440626676804669895577961059866790643806412225664404736201923784817196309952787991597979040464216448518702866518603447664552387743288068848175120812528753182788076063932369792241767406921733938355136496290633746795371168343378747423581910282467594603940053646252388268189676860076535812427778856931963463028190527710994778625046819715381329570248151487851728710072882041722281978203567866008779915073135587320382462889401417110305021784274066924594953967842269034466139280231028681296978437785660689751866160730341914504200304441581095405968448081427481760417637570145110223575176865286423077436040531969024699552836225890532232118159255352398461214541452381521478921351888384609455222682554609113147503163248292306430516845108545019457463385782948748335032491780526552331762272960968706577681554949312262738373370762815024455991726023052792159585654135800491520373341588574231378702072157525960451626584742445770809778537364114571362955074456919340856935880520401550583143331914980795228995143352430774854351209230427853459953215459713471330162526933241528893818784468993185891650995270186494961533440905188670079130140795506862916427397473459744050169048914061990653640916948885730736687774124762958993097605475554185475084528570597251975735433417847555571997773895688856838419701510459286649298794990899552614905794102161345269816315747128010098014090747612920154753548538778188954755556344752315247768849652403081042460567524383248695459778861650181410976415837397911379341586321465530890371847378019525457936071167335229507004747419645407391123226196241904186071611890187073974483645150342045482215568655107369339679828611495285060902116435920239601632144328332457592371554994923147026721795905083402228763295396537292282717163717138295227298377614727009682068550594744114488070103755758987822796781389373634644217213631521896171807454735276237153973567450975824274509287706598894653336967731768581415590198799819465723101906397078997308676510232603185219450849481589456240456360896858259608973969668863105284719760084868286098384414957394034966067305668055008977951045310673029001437894929641898026451831990324424222030090931255374164062321073918262419813942594046939408878213560885690017517035807550974108559696712860090147533226118364564856839610378006250015486703966155557616552392989308631094386812903069770670148574456489168557664997184747210145796168435489917094206559944520558548798967667177078929334170751084834700519262810344913142067275919452681995791799814361648227153563580391854273294373167467927264009699876515328785892585890082742996411162321897353205095132735270919569045846279020654244216411263682409568183102179613231684946451594195456511322212570350980637830549649533069957315482184143479354398642613639367812974333734345297299028259609899817060331331438171586294293403290521292205935180578638478081584636771601440857218859093866487571679412411836046359880231347006255055118979476380640230639240105522276427926568006552511520269131919177664278990539140410975895187711646297277089352511499160432537466273640395469239635585061025056498633831494531142719683617233711879156017023390361927159394418684581819796554017106262660808089513757381123240347977407226627511925728984189831851888249245077152605723764602418383488578069552169880944733295142663375474878279985102196664385813398970968660512390880491353579593669832108302811684078133603484376654215532907649198876841723714607229539627653853296217989541125873816677302731933017834351628452379214478198454318699740588025122037930534053234825390239299775825197407474610402608570145673889953303454268275531677128310299967195855811068296227432033709869641539257422929581492035118556160550574861115260084243259420189596455336776173866319718619898944721928682223047903884446731926059203405495880528867604348938782852658228489928239158121166568220814871672523273134177856425596592115705880078887054063501270082495996483463200808812982867104332902756908282888449669003686989982490853869451732116969381443561311369886737849147938390996675689370999732940085320887624444251888150474067138635105799428630382787323279422035135132958950925054961513764885589849972696069893048666110748450775452600459159462029377079837250824777744192781461465077849038057630059823948293659887373058442702749747763941940056493231244899957398991920056162816854263695221164769072812628385849466925147047268554948122586610665608779341323406933778452487035863832258194911355635418970474642691541220496907492077617088358488302523840250637283478702789276380931814286333134492631366510213210106889911620459807400661181254851817161504533114470161915262734702525644452578718471049894068593163062868964180688412049644519912924629011689502280884203914540231143931516388529416408942372081593799885765958821800964004682949846541214688134012890781747884167336137474723018026983371249985122932640013676012472561224274523461692525107727343968929563042768511469927984170721469602340275924964436047559634906772480936253812013977284824047606558539390753400402059321984210141267787650879401780273599692514652298499306373237389138499602704337530833564621219868850262693288445047451623008879738124008826105056817271079335631059858471262979664100003819780085579974023089296637795949557125850120213760969304175781936563145098426904631708970290804322950900482464204351582616716487089360624750347258031516051617570580572284891197754916363867726949528737611045644547360302162305132448765711151064287079160386065344929926995438823964912144339896608288615928749100796936333771776127547624125888150998217983681113378231547471281517431932503552916747648392451331682999882292725120240231674138481483112506592636392965132102312397878050129193792463840870135815380317726665405856289819857640110799472278301259390677449274572364098123288337417368438274169460963294615716765040526024029559904592509070839160271437863365588847719874001194605436161254680669435890265257688442506666917541981372615919156593980549889866553508668595548381165091198127952149931764128569567184403552813045264003289339336929929303633648596855604429893635543350684330590258023761143884430093008565464383962444749744918525637945974775001752820135441172595233738354426860777090979750644793256347898135967699843718698191607492931746574019669944616002525888821206752841376180749955024451283467353683915985474966890266844111677616450188442735475365417261484793892798379022817455560209271214381720259714994640306818924687403552909876286357287226059031006678765610338222127442868750821303070099343200790660420820643825037248856321795555520482381003824135792938623789152130203909419076076731436483271635436819167044806404847124621247517823290012997382515236191434408883744958088274393179136809603730433924885227154319185815875885521082171475682279973771085036829937264634436936963611322478758116615372317918179573151308515445426016972875835135106806123290981238232243328829076810819699547432659764859588937327881359566525792061052099221067642095085851446343465206975596922191442686642452036747813483454436689796453595724065048651989175470468110382518334824844259836766525980968301551952454482663230552424922671171532866807583433283265920941346432547010071517468471160133169309066793677500022677461293853741348205890808432752464256556767478564931457064558894297160909896416799733017843275213904567579652359978969402702062743254151572539518653814409867054425215639657575688762169915552118123026182782217737419680750448041534073988083691964922506996777243968832399008794961696668750846381660865247495238659121097231106805821112362295295804266925284762975623810510276889592340939355842919279222512880551479859066796796675732203919634519275269333465344443852772293177939171369562315024105931486154152101019124207582363338663010158319640823352007047790764195084651609863575107202223599767706863949062827864962967428844461720098112601534326127745781149076457486676870012786137471219048713088839405235855642497130301917731130205058023646360349114771941478840745913181968010320754164769507954990975386770116980549667768471378921317363534622362245003491866946757675133655130757487567716289332790877078438619078228844005079994367332446159501848649768488033619963932234507656764284914645948294633378458082915190189776619757704082194927874483247331311869616264414707703847690366826331242838007975561654122036648849900689674080165900984906678803890907243286066293687197423770724691649833687090020907256129556622236123943963771775534569854531562474769223581010661391402681711469194733032874281875838060280360286174689285271811353106480062673391373160090517692486633944725994826316284636260922020208841055323919362121693354504706220268830351783624564882518375250057145939995499489901497717180496550084482035846515303298550654448270625486692417334890152516861612584217776137897454500372392478391714752754981849191030482262167794991608463607901101652395461268550993892625458132359320149556087246293318935570350138154536642105957764986573608533670180629948581702861311207570045833657982214033004644694766323043949303646009524731125068995911479291492033273723988663305060791510550431562776202082633412940937170291750344958600433689610910025389420193505955543561787527118632788958143609563262985720658168548067766888782071939236917022641911976778843487414654261168125366558033274002653915932243254821697187130811840230077416535614258671046063322747467079601150846274375159200353288252023394010123502460787498617926669099382939874821504899237700810032258521192445186637970847128595269708697778424686985367685282641862384960367583229505271738261481782771931274842528640720684446892494121444606509618335812022303329639019624530780463243096336331022854212163311694095617758082309040868698881750182086610630063583376758571146769299992719391375071572850287767405354649003510042827309239501415889543975288148228977932135863014747988136097188153654679699147393065977674163974466537420727505573062553681589594934860168701311829589143595352770419220598303540372494206843602731502864174498181277663046447922179603914503323796834652149338931238155483668797710642188477001420728983929931100652856310461091803057066581631082187165970264408039155679268853333363782374907298137047032884357819859373549042560383246529923985929399176646106131892009839308837162605235506060886232925886870861872153243958703755898673836147621179942928839402354816068399898010735534873480619079667726331753539564947584106421131282204204435845840721682315104503465345887197813387127174043135602144635499027711531597488521556687410897884933277059532889461926506408848247232094981844310736115274793024135342261510326023136143352943149525214875689782079833389864965049041129372811051111400686917882606964668618146310867678842820857865967632258141861960411742273323002881066098834171795713713202356606269609381815917521264374373817011637741433851266092817354896470827959089028984946852855053851184243484132127683186439309829944879708608991939229791047213254180192599826964282354702157637145042267135135693230672452034416797081737373022917009659824629643763383466899900577030283173083080513374042407427054420134849032793938388372108558572199231969978140592546789157784962748056871502042312026177179969188461287102883732779927908901277569488106430749537595308340045115108344571694823414583293487818273831037404213456786465628630325138566156020807049936190252470733606535929284276301742131082742500840267653486534125102797722365657870854115172085231994053667205818424481195342755294869103549421653191129136384049626871725667644267491036152601299344851632680043055300693399142821842957805313265726053565813302573829873702521131241576254015950530957712667597801355665555122572441743869624618731526020765986145401588248953570270942980733657281975191802681516416680984374799454316174489472293472514758443557834941951663183518526030664680558192941405411752618485270462027032221302850936713438507772836400801844885961303068485031753654023109442305101389782332890906496730446177822015755941202315143181815519075860443142128973819586260990459935335301361654363754366055335551091733952773454308867121990628864470816066075190407185721905418156181256569930751341062761825125601688877700502868920080750279299263769687252269341972877346865238089124209987715003302385372309431789943161083005376838392089539701623560462264866672478856400543426402708130582285405865806004639820438033858399655858553051515519806373224771938048071728507120080552408833653219186878448898312377660262191677454325540993592214595545947856777690652384865333046873060384311050037103738291480459764165192489117117641189873992352576311657837232373719438333474846342951345290427398890385558665385634025193024933543942197953124037392191023616834614647613692673045680671312172610329157465091465107278509754601234833158249573089197630725411133174661131454462438020460103019953420516004182933256145720115561151295613885971683694279009301383476000056668764486033741934434933397563267269457341299852662484070781925422355325367729862009904245743802351437313747223350533590599568601134483110936888070116477901617769034212476666673823223543593773767979485797332003090006095790016550273488925441789604145038502674346977421136776773882945117786673663219526303937785820112937164590179604358889176830437924147076979766907740091758061092961052234828235780712670245428958577182706564009526617411540720161997686427386680824427840723419782628161013130791878539254644787519117422324151797541676803847948736015775978605623410115796582121469195573448478928799101908923205310967916763677985890611439799047865044245508882338636678014743909171568092692138573363346114561638781407280232000964520618296170754252217377466751016513145170568855570316271321630102902337694940336598819367607290859881459627096152812555970991234572349733269692581712215558867960478020132244157452540472064717234651682604709470380937374413325130745951091519403504348013509187259092493100203698322415988204905076637522632644159975344228582450037655369021422691773506922963827617269907445232979189990083803478208115988919285492748713172864093636148713059686056719037907098321252564653588809325046754552609872476023837729243210738284653667722486736753975443920287816072490362398704887995416039092596493565144419412727232208827832239581531763865225489022046809701385956130224470500482043690269894413578500174981515437929199314377689715311441173504995010689445795674108445430838670388356761348097285770799187215043362235410923366127007921392079753463742247020407716644855504929279762987633982570146846156477699112137537561852843742474834669766603686717720585930172955586203030478998201874354404970743776441282678459316711152860209638357485428052723506425795032372558957421009540129330632565014367317817357960789453543458469351200553598408501222749343022637733887666697797342747664241841183041544751789821377640025374866776771450030551790315097681388990224457911583653368217945977506370130156760747794351954634941863102823081364225469721497749178609576580167021415817356161739151353940352866090050823723980519116248113960647868453738156400750317937986358518395129973841851078592598244341099139913848078495217402856190983552370955841076151400168344982623369434667363384308646008465650895719490982606950803700394570166753140709017156263369539501187800972307677803314006641245622719648131234841699948380587673718800198052537406729350074127760515825144538304280828318914950093014958791181861925379420729741294195111439517547442161659602470147427955912983897690234391296606635232198108544855722749801728024684786475322792441519634781012489858270983244557323632987517854422323997013006150268743663753159769433662458647588516444702186061565906292896071022042766744903817514690373729896225147872400533254497098785646628748275996586714027144620449489372386926702373541121263610454960879701721943297379616844911160426544097124715273190675820943586867375901817295647894909492704307275183279297939194127436844708572107240132272591970463562721933122818594272022448440394675019235600920084325661167302841486374742535974695409173316274926270991816805805182451694608403944695654300707992555732240415439336932429994213087838596485786487122966990043646800776110390887699354986311777437058972169855873449548402645943778245097409914695894744632562700431304527206154918743553739857594899871150092360777268820365228842158577089760277878367603226017286030478434622404631229199785375870067640506206771893550857001477165339736421509183685579038468194717882403338129618296121462585511513465745216128391775908547710181129979491492862232033869908864376041792694966713757596233171709091891397368852894725038470256184066106043086280033264286508880871970376903314985262676204600961658229196220932307398177186609295722616993805143191436139636079316944413414748392361326106538378190392386264411275562744539840215353545110774329739566292980830975064444349769965106745442118300217121894419810157050265010679533807348552040683601767769897374958859425621240437539836845957781916400246786203565026962537343721235651703917768194796778440542053664703438688394212109625451061398639010285308584434187749875101028682722573327961052405573689928815522932456267755974962354063674140915515810320055803336393617712844634296025526792302025927058410058790796731123558272145089463286565509493172029895367973528940239052746497013016659756539455090277699034597721207284482620777758268530047893251805377783772640246653353951646068432182331781662839207141383468186192386270400675766420417709013270415790873358804639403453535804528371144254016778104962017607733138006672775618878773755842233582187703937515048060171275915015728404715796651540362902053068819692278075263108222795785512872181977745826499789488104707088594085758194259934495513058527311396833781066215149741549259113286880495453890475596871397583983693489801063281111371701450783209668130773215328533527992954042356669022067357875805348992842474283195868503174360839589028263278522254666474704961296722846927870272438755250312988903182098319888643397122421609751420964220847714856729530453143971976641585591070115374957393894011490715984931582676522538028589008442782932477339561684025010136452917918278758108332842187749904803282134982888944664908948609005082260131310985183692443906797428883322110629611471070951770782867867029527611070300716646872313064056619318259190919049036082296665666443721758502229970759200390308282852198320798674276815608151649174182131759963897587038281882727072805118120711200811680543055765342691771356261026691734040361736413311674198364643089142482966209132097896444368385108229404451553219722386271746042458226900996276943902294963093510490313727774223652788318727291502720756236112635237709181504464872526085111404060999826028529835397733100924492774642008380280134870711648508943249577974673356834564590863019775978755042351472238246451874879106325161388234705456636866209712777638607303150789024478409704142283730157558187896714518204436667167680724608286239238877317711328552755236372989313113556131772435727723839229152710443333991228000297517258702168971134503078263113611757435433319397435385600502130037287708920891857633971405771841440543027481463788195683517561914431967805760544172824569494919102129396908333966388190532714231469212776441682073986783031450489381475065100265708822039955978207252588607176135242386578866218456545732550199067648877364515516095815882220231212098180235018409888308331492163252035235254631935333304544488011557116235230524038610615270564843708900959513817664435032142147070743971375212344143534544194577463378233662428181457594200054120631898088045545037596100240577931847458581987476739807766698136715803599694743296868864617274042317065262638053208926413231182818061992388657058466983813579013926914777128207830859614809253887961826052264003491515770849765951532347465296814705101417789876116884135611832905186111486674074296653888506453089140936589318962244848398512564383038940171213276155001685497525217778477765719892147628796164764354666800992112035498423540220851136834775367460097019105309957530415668993705967612026425229092527345144121709804789478371289798062182355675131932619576159262783621851446927887769114170786411172686722787340216393554710936021660828003333208929322859437995818824221493019544485947146873865293396708889733296084468502682876667225767913914673794234670583981199162616361770154466576101120455837048632187484947824576879719374576703809172682137271955740293929548790293434911961967288303332712338615465675416748040268739267384381353420545407613635914107752914380546123904630156511186501538625562315017398261613453967017284625288510888078505991122520028556176965171075291162728109054088396775476413216440442214941358169799481473800163031366454758675279293516354732881353308539680032043301086615548122274964474811817813476082550892039470110347522542422311884124936200386389611554827541917667903601605128709386760231277614114364834446971240506476342497270238760799615956747674412275117077140926666714417807220725935266494130862678982745722923300284216857418034819736892369839907923558202993657126243859876225082053527933552061952202902418814706117394783647412077202808208515532676632911734708689886172897869729209399605878645647226065685076167316912508215788678661622613363672979952170278928598072160025849160063141352009776820618108800084077346103429449813825799122610848004861229695300406932924764708637464785031386145145897391636716062726403473220277060900122960281453257826043609633002551705603601687740925077564795165625118163592160506933365209346652842381300341165767883907240353846676634008835556357321968928134874286365009407813756840850273303235755410153495508482548574245341462254762151373158527771483926713114984153983309716163467992477265295463019240829477048381402469083166994936887507523870858516537936086002123353180842813345142641082029046433833848050918468117313256607255958715697936880537597134206319532442230685298120896094580698371502483517964662577573474391068376766200061903087957040321794841015659943151949416860514548069691074844950880129123909761097252732709586610566579833825970973039179063559510194272526698387645501091203122885750734784923834551972950446966548713844306815151271953137283978758626423781782056861631267731153054868850957898161538097515981758524365731741177571905444977285802032723664108366809259399862517121319487555353395536763603784697071967883304190392414830903265021236776210115512114978836936768429676136354890418984185719397715715228728099089337108967993196202159820728057323426174602175078936026639484314185182796464509335649232215006515552495733046036172696475588841208159258366970801696678363999895877448499901155008397489560798729283827794220173525893600141848669672048805529257090432191596513843466938815166278099257740218670325793305447201582956387296909928829477120642797000295654812380384836294997826441534186191601912573882116336468912904945752360108447498780928773795684541558754772032845339110403196974466581969447126578383312249082434203380812013420865410127128294669236639707948599243396462275084124167141582851549152240477685622109409636702517630707185534617477534385543158335721212537479782753180856061713499086735742769048486730082830589130815398532215912193644557894295023380969519208177067593820163764601253910367435965442918659731269961366428933557958397823834071792195058892846401715772835588313518682195595339576460758472572142952638079286686406401203283203488916964384073459337282090784612998115272202326290935219530455301695390898545615168784536490663369805445170406307852434212867125304170476649266407500678867523709350942301026389158262283531518678818120783336751469189722394788173470190248844745399791744778069168143955830613423738735387728880644091573223265775732805357527237342814817384201133568271160545376760422989485230619532472684286435551346742298847638290470644129670561682296448884397835993765052117874329042745770856163821254569340999665075252230059266504509845228792822260184546720778428016641164036010894097507641025659171057583224632913260790717542832323746018381855596374276458791421259660885383004491946681720958093562045632237500172056190243760164354919931990036973351641897294719227379892291714692177377896807468657709703975247452859345389570660158114821847590009276407033664360899634202142908763074455041145086456015145955656266407599790362832453747476123880991939433749032644404549453587397434485959650443170965809747223817097292959332295680814292011451066636920983522027004624559494212295701464703216385876597102571432024295082594358877596319091006759334431089917460914003479565235011469171216805964885326901827265037227245923767249409619058562002313013412811545596714470475885720606055805581818830142624059619686560288947358916664706570150541394945720975803072182720143412441324979883299219934577128975270273697821005256310085697908205620129451447851425026715576212356563853644795397698730371281772407979246429788808321162017933450700108004463295638769051278212271787580458682384644337349886279628945170182234414822444239371405362842877260206654745048862395653462895003376131462087696521326054355661527460308754941841895918217944108776975791928647113814090543422030089360350930869528985038450838370466502075126381859958528323538089028208638896205242888835913172397261026985122831022982878669162988486705444119493395408520417139792598359195579335528420137603310936976342069163207235858817535109334174274511703700785197285930307300457173449627813795853158394497918235385752422293095358590318227658398143352694015922981192349821657789942220923432894546739833904601234910646127962155595746803173414471914807120404215729323623760050848947437464020457857466853722978612054694559409592012378378217678662572454740317941603661973526024361711732667409393233719598096611843372361142095777263877473800190471121504898247361688085515702687081457683622947019503531953855864506725289324949916470700502216533931024148473033617415679129278864339447537399847521846336086562689326414679272939206764787902205437613763045839031213522877655783406765170372608881136743270890925760235669216519298455938818402612579031567977369817904069702262744845955604452875262167690094631702906287398090685336281458115283141898552491813806839713633671897866494674997209547248344479249068712982777609508044175080694156967127407315341713064216651292801989890123710988685068512968366732634684874036216026909339528732168629850570643333057760381974751107267527345459121015222427970065198720695565777176747292322744138266026290598897634528532866709853147928011868996991303780010919235586528495130809778989235867097841911899354543421074077281374178009954620775610418081352188395750929712333484002476302980432205519183782503491510812292726951918586611667948802447578445934907317640674437320935452289503258330967163779897037528643889818845024506051729751008658914121915256005095483583245618786982419369394446152460254477569332341853269884333439198759762200988728868766680167176394661238851250788204254735656578780104327906246754335948947058822788169794481454301884815821404944702345241807525464383637909712498434189092048869780852412454105749805979060368182519644706558068616086198031296879150551688668963349163248888804941233569974592309132397064570768733676603735061589030069747873145938759607101643845100028223607825325369122500981010124088490305283354255263739672794675750108841037288850425152115759809313463343395496247737793679765982276137773405609793623371065973710622823111582653211051464732448399387677080662363904764554848771915920302625968368146183810611111983953775274400320774888231406387103541417960090396547016481790266499836255797035839382338439083771827972724157276286109405527486979212990669672479233442076423523309057685897809799107264122465353593385548124998581508282811482656300630946491164332314531451595890137793407259044323940302445721107880247282165445880758606090841246051044423174824266945914651201493206434550873020597782349626376251782077412946199508605843732237279453560549818760464347390753453892542447048429539363359999568331591957491933361544416866027608580156353474157999147745127161789260896354516905800425356509483837782388071569911310701194866423852198825594371598221432160668700569946542367380951961910059102465335816203195457340670451767029186657712349305509828267684977309040393297886592050474369719719290206264783909216743517074059194962044321667786308117217866626621648884536048058236560907939831561307685358332381873381753607874390991151016678295092866745115294609176636358457776479450489560510391649268618243328721729968010687556908546075496263821875495748414065646238256803365728913908164741276183994901688546155616529151317453652687596851465470218616744287069990698805112760802649419955732427153489015983573830869210773772289528216064513548534546940596777835329255583440671716042979027040309201841657513702110632715417887112357136983201520525012944144018803302331665784989087584920449247062057241151159849080947164082444373104035748396556493450457170293158094000188945240170896122890988112723808949362308281111402866128824008612882099766492340455528328707187840152482074633968719101137652225521694590904369305966841703288230894715232629464849430551100515253338828122848710699627212686037747848250690315601725511758746527876138925383732918529220202701398077318893756447111977186743740869427890559514190497339450950511999261509485242163291131110525438508020669648546215445617860817256651939501678462589083328575258827535265429222054354128049747025758453701610825292280196012192025899310153174069546856994215968733278371323473687180243340063770421868329896164092673631706244368013677383859696052875590373231423393829635590690639198576546604637726134752009213703357050831338264417110097300366943598069848482444570225588338881878053465503248843603903740962775531441192114601141569038545242385117450154100631316734162162563190033785718951538779625691471664503134970219063755112540601861306078782895913584463125628631181985933707152113791898112887193380291064507384465873270755200862018396379982843243942472492768107606121105376354945381847809331686174916436122983408421278197725602836884741359123421140409510993571532588961638872638520920932632305367930243328591828318772389554695284379568643093065951209117982968502557392397589740257508053116674262965873292571316662042187776997933437438931357143893970454204737516119775155009171639509039329800890010810875027360191045432162189570579168263465210804931413801675003216167613580669905557110554797842208509078132437089731610804894727807033334042116902560201134686100632058511243051288931531823688669462367456589581179874517228327302339126846059985860607678262243002122468420643781405345747391631950796467189972471860965669381424303379540896907280276090095539472017202390894835145008836377859971297129801956376016338591486258369360613179194666602063433340102072989239202879563981964441899081158242728737147626947577605161978347373394307734638317294944946047526372667072940513540550526204018936308863940495421033526485956795549228184199003769474774984064324432143518186209056811633527010254072805801024759453851454548878872231368458329111452335959040549673098678837253918094122517256884890469677752466303814241025990335533983266913937352706170609451799234367636956494342840500081691201050475374364100376545006690753900368842430560336621604425529641986060148484631211036112634244188904547200118310760374285723215316357315083744284010355982241180914880107572499979944946728168715134636355666070226731155754824361934432289392582384928922789678873485419713844723538843975652729513702625995599564925384414539920654413740546794532082118294051762681466937622445345047344093078740197409422989875956189334892348730880514147420779272707866093767548843012895101932817269202850588790325851297625408375325674283124078146037934582804179833998368416356204562439876358017893969280016427685727830969596947570668495585642396864349865948138588046434813129194872480429721966889664475945882081158373008175873668270722307273705639801514536188878687487486326926705832339331181077359446038936144859067582970339716936366314626977760580751953256782410944238107963875744988452990299287974878022865804790767255634997716680059630370125511441147982368408200485987289970833142914245671467456477492862532269238849261098089908958094213302093464344926440878331844659188025784201452580978329247187201069708351937770487559164986027351040141215798788109343658670475682837064175087806590484063813644087571890907730292706395686796512357350971977886265782982062101747431177093144889629449572237480629452054347777294654828036551741931654586430545055439200543673175405713097083761242367932697465089373049615015631317081142967656957942277956900304903198288041634433801544202426992801681834594112814313675907717063783253125980011617256993938735297291645089153273532751651365612516461500122231963686929458547952629058662317050253439081167856768025317832871185865630518477249456367567156876253145779256733875850155515886631700706151639800474612179629110124002277522314027489188152519084784595648004895055722152495775564283955463192131302194432071716357889842508844662272785170429626824340639610898657309205143038353063073244752470726783317211994111006383661334478598032112560335154595183761730297826937037035394209269469933147838574651790605549704667681672787911469827536895141053665092364353277200915629592522543728075641664852727382277551194602529360566196284158124625271320539511668152213987472641808418198078202790673651237607104407908172074509626080908278139029443276875734809706584623580143867917016045976634587017284388926785873638281160636908666524492211550622286277036705254725370651818322736752253032330774794554356717937555938183078994352601799506975140940157985821733048264444416783075372182497676782586070310925279250998538346997376641522329673561058216344520638801679493760027372732849510313474932110568160429124084520038826593138963992561520366016345666034683379896691689587903128031321470499432059094441692579650879972504515885388059414118961868973004751601467614771479551146211606622256195274699284833794530215169243542459748518866497603493668914558496125284624448341541623911003921601217580499142866777921603542836954801927121957167601929921089858383082986853895625728172030800323517960238884349944173678749360218664737291575463151785217302564444895138519595150422055650567426427138632122508042778811854505060709919850085200436120913882147281409620958374232711530156081950397792557116453851329771306314991893390520871536569210955840611163657847908369163249060966785368116518643035842255089264141513774945417462900707846464041152505167266916765745014466128833779615434709363504325353569097454597825526408063376558143597670143111762259495866040223989934826514241463085600985084803532077193181972784925999967197711574321439070752849517760116876430943449572384922281576089740358891471085885920675107116921086235599213447192838356466797470203065296451153001744864291397447816696668762715173727651120276801687757293414962587722721263681905112374298514735122399524549108770296339059470458121362535971893579463008092884797990880398761064795786590158462855842885756091196756578797582332675252513407556837030496131894530757560995379601440972529900143560532486375263172543903785534929824100752877676214023615936448506612306818326151556965543281043140846546265529270509290221953786458409583750833403735145170587853552172472498873400380327228810184317878672689482450011375660090504569518521384666686715151444337134870632925271100085209268121580827467978310907657624202024320825182816274819692771145663700810808732538793744624843341688767872094788137449553825200188193433339581239404464744254519363931987502563317165813991697201611773851048496372896958308864617156628613181455454490541231783038728930450598856312863312804539433361760712690758205617510758335750704751856607427115619040495602357892046712306964565852904429973374195032093398894462259703260583703229637158360283808344576490342838649630033618412605433505730594792197771972653806067012855616915282524732259120750562914747681380996485386903725466830200605731341438066535633331966745224033204617834456431482927368542796871414197887998881505994160669250943418812706225971458593685919739528492454392987799549010016220916931714419767284874812625411108625222755541196562511860769274807577589893411829165610633634225376304327206818558903453225301505478216610363036214273060047880309818604674794824669247710420267928385235666096143382769601656285320588837766970801094698023607819161935413618733949521847800890710361361935182230223507504075053666906496213390062061968738734506905764693007291483743038977604541594178665216407779149400713319841233511135710646661605334866746232493541381981159072933862544219282331351704105226558694626132566742789916247206246680635548072999198068205883431304734308863697642133143238117597243368966041756624174625963971475420197874232198151809929712910691658260757177653942081402980495368505641073299020321675524645423264705426468521071332263871797313274999109134365993147259567145750313825451756925554922165670470562705199598390302378815791807143171614267972041151055035086740724817428665213265411230516061888071559528628751485057732254962161906002987354123083746545913827798711606082993419417567377227857062363059611113401568531670666101845139806466365063596404288316064156469774882535225308509245387474384781009638854720624968917866821887484343358177660619308814875282378597312512132599242106345932887201567515231912814681978187819398540721345924731179778608168882080746531878169368334285778710878430480622263278262960531316198466265565525109895388180471802535999149105669563685182684528940987226389094892703101260540765767681057454509787343938217999399352158472745290873420501390276686195873731684546181644330166279043489940184059541956117984803303019647063284546648334533446876898609743320395746864451471922109482912065151280570359994316812021821936107605978255653265960463971763527421499154263380961343316926548992062315644429048651810428621383519151188379776975653822518672444389709358728459430815995469159196386300971014665705469214693279559636891670666915195958697155994790193869336107985487375242475107388111062497273491499740000125845029452177201375666059831749942923918522546893998077655924901915997734929193458146972028246979842051257664868243636160549429689333961585951067032604560266675153583904025183460957519664370899254521288433573704816359936883579264040444924538053018161305107335204960332475007675059508410359771488006450352159266119384201697978157076190926816427789053820335103493295580798986878845926232473826557176676883684757222611327244920541907674192812341387768611532864286765804547914608743900901763248811887370831215474292582883625388843942896589637000748396953867992809372510752393256283543224766095291935456150378158835031273574841210605297338671265334005939320817050994171317388128628803998652273116078485466704994046068948417386636602641121513806189916392927739266078544319332598663329713420744671535081433618043415752877873157658585053700431804147402926431153351831160370633427570303945809601614343929312746800422390919585564758898467608200916325183952107664134144639573458969940027053347157404849769806816158982318438723118957939654173449603140248215941019532486361491556273631599692946471312618263119495797721221163147193150653025303382809463922694991894646725279313393411822647307507481279649122424413988364904450717059750046392699166521041467907185826999025763249371432631870826938329048987103582815775745533433327923821855499207684066348021158727700744194564647438872948193471689560412283891509177726058050593685856613502450013958880224115778612062035608539960121309632196552921252911185719662236739783058978163810348361358386345661373175144113684287320394350896721483332479490963166557112495081951605684034795523350167051829322060118947045673564550419091565874558342631419759195082848698294231247385273766788963661638479955322823979709389707070243135127103039257344927990229512363030630517764352585777895324331413381696488710551370642786618785835541772836300423965170295015672450688423958967750519990047509159987137012508887924770244200108751013709678020079339119679345664757887035236508311785083844428488840386509741441873562727957067011955649565669485401692845814581200684447888593631282175043767090993934414473239596088176659751236603082114193474735440645922960701649633381219510603766124967407705126213610672124091092678336354994350847986916541165273912289085693827114366390031146341706748218119459712998655106796831552299884844207251468107175331391345440016607748560171276472682205942686234156673383832927970722700102838785704152828705642481587097597101570862257745831806419329835256434246613403044436964344031210729628768992365404463888431088829508246681605365046660709360559942200023838540003757977831611047946117653113735314348745187591472828753538725916233620167952051793439341598654113435600852621687803148845097628166343013593104401111733946099724413598138042646588359541152479999627445470248918878390668419046281307678484080600814208445701480921506801109138311528663895821901358932132759568243786248383687643973272125496770467620550912269202209554443035417848852383652348400771894647649537443520141408783745607732219705752203537582851699316254127768434894131346748103228666457446657456302841768538869231602197015969227605474736913564650734830371749729500123511884038676112144288952922589785138851339004748753941537579442260190166502698429865484541785938098915183828614616425026758040776473402506761623279640631563342186919185998516616948875717126175332143219225500366312265493817573770865781370297391421363209303818568263069546783034353965452417494819009134846106197054651055391570531036289397555503133168337211621244725281698794006747410584740759541370987206658181721405461353188562764367536132452289640450929979678922264056039011827557408084936439549575450601192514955517395642675540074622972420286841598860233662700532930922875222492471030899463310760222022025613764679191777748916843673718900876748010793538131709740742434502606534584089013762543313029255756865775133086239375970046319640182954936114404299897978038778957812437092841960238809479128551794892159684986983005540786255925287594961298651178859019331825582260956789569891925980732008169383850060038000478428424084820507537632531841891907823403562689721502033475452153202215234805470477436530963566056937028622538991030346387878945495719607423535428426874206432426145407492580488438735121153913688552131480148482733356090559407975371844230048047579674886591225760473538583155074492756370784212216581987161686283755608406031468045144686920071874056110454688502042553590535049362623723027173547622359419302091535737871367243122866634102962416197317807451909371652145418467013406226471097778476366318716263652036191548357217050399753447314167303949376365004574213366676195898201643572185483923423899318442912205440854522201439632772591910272503969788875404868409645547139216107160430039380368705751154067656265640663628173727357541040110171509032607725633920655448962662136501534081707126663147641183303391018984101547319222846887230649177678930974453503841278207259798209154253899813047736579678502253974207372726892692356156887203080721586727609379043074126302421540784849732610025140820610924005712309820388737427199728397090785370409417475062846660179440169790536596645661723640344798375539320183164751046997044329728595240743160104052305311385745625123042520926598892221569636124456354114505722175627354435094283500606308670984767469745693462525390277640999154895813618871464422506884101333306071142207763913339453061872279161432532763935953707093407939662377811940518437705244390134672076077104958211956983153817813306969267052466275402005985010431994860337932930015048756578514111724992890366389671854174630741976497172527285748370329144256255889022953556518294885760036853403674393332513017274431963156277490347444397074138816031335868416546047598839506427820070649958903453641239238663419629326220935430472075869860372262690841527084129475856341734504085197293945227847414612712993893751018532561788177882535710612913686919963539333932795600480029294470921016915337193536189704120539239655321075168567658430666837234565713567973119510215232939881130091818066789859339246830178181630714799455226385170472328284676911869419591990943903189561743068176843481654746318631467918206771254863788114637339617613327955191657826006100428953958171771041874426406017058879059685752630436903545987920773807568603011499650898699476442636169998707939346064289274609312643058788309444967618356328140050831711566527747508215779081980185114253637688162148963161222838095170401503772520725250727697268386921475080113971285568014325818450423093744659365331008266852097832087746988668523506189780077632025256856354732438393142186754305851317957907977193435719090445174014991396392506271883634332112273899932280425961940705851563601682455365259905928237314881013995315558824846004117603857567154340996824592540765919513140659465355843859510322940877539698015583471950223478845418761837836582234005291096488640348566157933862322240086864672525897794935330715391940314566087102502448980804128431327151814681285941146711580752410854514123471330393267209156285774747872020538594690198936341351668150316354070098556868563354555124839429363355987505028864300434999603030940666490322620585074855144316542386508478120271524011268382779364405876506125644008687407107536621750514281683568764020443162223263035541301796549212446743440342977571565198270918287429961821448396333665623031991375249447005747677669671623773545826029111189661604133812259589011038724665634526267013348804355345215746919832920704708310055272594337985422720281271742429748544358183818424199910397974465051782762379166328742651306288934339730010426514780690637736718626230230318554126080495435164286943538087500645690393249094749808217439155123601908781969656896404719778302930936495760857573476820082517307645874975784354996876004093543718610737534930630025160593241388631749792813633218262957653787534909675807664786247814825152181836660683892340091815547621493576426937488307688825255856955505544143214191968902787828319099408329330206358389430038764997218170134809483077051505473413743578212038995840452001986487147849806042280640344525234382327345154035264507573286959082348076891861433090127721882548947692490564507365632412457256824687124398998674876135537520308284322230830833520367353964789470467807223986701561115374025950121407678215661891820691550583852452335127882832378499565856407804202801684451305534470201515767124720480793317673985559908066014585806062337706100646233054176134910894897088413422974459113609472878879834145887946324089535772034707371147460483825274714826197410458970359836894523481104378046494932775934626669343664835717186378890285814704297479907830700592306625126264871987232204842963359255480932426346174426532450985840002946171529588445388178077604333409031001816932927344910371180337578972642078206758072246967691920686275106309302806218630274966538729037661908035932007316432622829449904793556880858032594640245601709050767971580604225552078737397409513078329387218267094002107183923302598579333258099667012611532840435635422126197274545914575827739437872647096005532860591447748674480966413022915063094529499434339899785504411426913794545809709356372379334275125868129620565408236287308746109652575843980272506922092151648520118072096916620742950838760783015883696201869308931795355556372697863773246424991471619275479425529813820550129357446681750247881285299234701871251082117545073381712023534611633634693731306430414252612756678182909139707587462304705482888347039705500971112603010497504868489451848371096428073222854764121538877881973046733865807187659868330052263612599793931607070638057615438483480692937429994158335441622543541976583672510048432195311283808038591099521051167054002345950817839607572067721190084233484021150045988708549815587146484035095250468984015897531154784190269253386396843410879349319763496717361616256577303286737714021608973386388162430436199135574154054342464097693092423345242995561854829738922919916598308360201831116384013437072394646915340162577176995998465104021472573787446492306741238750500500150926331020377167360361210986426111487285974286628911039433203670795454711230902436526857779482331732065329466052100586554791917635339063325010582159939967226581336743846461686793952127375298244454237911572515475263484895246347178971815529538680152132533965163122752192886313596156724653702685573638424093103740306683177843810858701139494148399318727810883827440241321081374273856119046925300458599464776735100755689350182871406148575747504649896748852511228389102737433808653705242987240802486276339277858387595897684584461960806997024142687126138101665983165383000722957955367283872234779838196026785797756449151183825978117181469594922304559527211219332930392656461364472021817793848001316250916954020993849089107053408988497041815787102974560278058967219808636152283595022580719900861811234170514344011016924400947657972467327083065201105219291555604644821578949339957015219520653125756952773697621426558215726108717676250871098667900404824429866595818793029615543145480952162597222204228554906942969000880359388977800003137945296621262819345999892704234058223186524095872079030411187126246312485203037304045280855072847559922137578434566282498681890338078341128737658082722327054582528138396147487381393172697523932583267312713852479435079324228515448447037679956008352972942437653548895321772373548549100500345309933522571722684180554391779692617088142124132998254913707846619914079405692173228617453848901873024653027469385506193935469932794680525882790248554434928986723747475823007087011483057289873771211451838022160505302526127774251501839447790359420808010359628495125641864101417398038515427828797724996062777345274691434836703135459841487274004069331981278771359347113311787002393390874740827992852980386014539902569939017818222515315345673507633958218437856858269758892585792507114528887938915042911058532095389292087878869549763823489608081206554265949585302554388593176908207451064160360760768176927880922882002346031406679859270046418306145306639935960130149960665199265721593222150720191755632093962659193188573495027065640147706778298113784460641577852789123046603690409671714274505333830867533614961123116061813674386382053658720215872445857627763316523022891011902238762477544227037626387928765356450086976197149572417317762098161453340926733943163577838721194761457846754666089312798199010112346070874397406337431726322407233697685953163430342912295381800547179805269094356080346666102523492464254926827124824529122909033165512270044500899851703871201433117200071612981367532600156246700271251603731182178703152590520999758353814707943136110686423039851065225940181689326946337688008659744958965359154403161570596617982954894902021322078934371480530390817475445061830525579323976748414797239517991901402553648846262418364607557306537608868591208688959512593988633832064458631664288701771690353708883283347356186236599237620752858492052305072558247993692320750829577312733449653420609315191546752238055361095801804314454326275664619208030122881158607733026545288293305921794858886622227024617963885144656707339574158413952933457478818761221569336453738415511129741496128783398024060006003165500073296878029432717310554553671704558712750486029240207662060774852751962022662655602726311231951356596037732048808153510236502084026047416913722088636988596533668823234788651672616046048254790279638490100606456074697097894847806696381416187097589297157358145176759701407554012765004722142788873120049646666432957396394300848629510886246788027530728456766222409342702322549505101501854043613319274543441755910576118146893717220353028681976673838095293279964103952695810959285069712201339796799970874562297807464516420572667098290729282024176722003219087191183844110349465745716308097882923977943711296444379739756813798690500710331191627216376426342742840920034121287208221760872193562817781763124563845669925262115345748746660139656782750639209220201825397932498813345369236764380222932715901339460526471127078053243313324424299635259425756906615626558947750485164127193314816109906407294342132062561810706434207132795756453736077430267364985865586720904831662528102413760126849680068799333057357363294404657610611807108032269980807108605647263092994975445268096521621124871524260494635786238403762210569111202159484607400059637137691034798941231053430218265182536780367914753284578534792412266530168274948838754604032860936487827133098781278150083712790349117026972785089948016654112238690344497356215537392888744242857423447991075459217080748843495041197736132601412284824680589854869343089360382670013280385514861060515981910199823688590928850618014981918317867015572574492118211427470880690738894902505430041451879199804462666273104656580271415724843504207475305131978005305664909595488766303140958511557775160550699705072008316526725842236674831188986245491955226032383675165038962962844720323400476116840080026236667688166850742659354756451285431783197213129784832017045468488683293181379902311336039208000211204855632745021205971162299122079356748794658686058377907130078782745778931884538180457606446474604502469381611441541177286961497522644826731479267684852886053118862751090524019946034117703885331030263062272245829689439821094567838705130147796788764356435368159121917031868806976282826098115501808961227937911739447691973756788986624551380371579398083963921329286436251640996576014509237740397770744454024534656549450023163789227247270767693547067006551017052180754278197684422508105901609128533199382690040514899830501131127137268459631890000341565923605379016724437465565338490414155905488391575407910629045762499896334815219588627680777246633476931322855207200815412646462364639411227976091824815149714942820488591544170626166023503242106113915932884675567989468472519083530309100579162800184995101797264435783374233793931838962614953306611042962838173262883138506866895104369382132122151175047114082533524161333423138214065454618834459163333083349515720459551179556760660951321208205193222439015191662134964472432089342614631470968468820931009577915182838875502838034054023280362828579362832055150270054711172547588396172106217562355548191639754945934812732577169875047370884816011693846493530800091326307985201155393671545883637096505277711547609175764059960673280829934672510065911382504843790300998094380845328889915671298372303891252936782030534123785422710341611007643814585773397340346967091153742567360297568914221802321594622832197933403564501614068637846357192286389696513818071077553692148541267543997994348877223137637480770084443380321184223099078159155566040480672470068195673381672757882115034105609743485127798699267090928369848162773469875553577189479332573299599618760772432899451614743508368068027673710136054065678123318216049564918053888353419283248764795088239923810039565153052269785879017921490910629630927997635002202051772920667528605518154807821411248099579676526344629628973953636336398080958947446031295125622355417040974679367958559815266837712728925815948104964851075153158076504277975587547877753923518811788915842260191045088565040835599934401911360370973707097907393897393294837527996449581448585328593282323105395331890740519810752412264522084379171258531837394234663052446766484684583246548707331533031082771374961365024699153902480791620500161398297193812938681063493592941251704996349073344694403057445971708856627827105857115205511435782733809287759251994406837719305144406835672644705453302310991620637940675896008192832027273993964883703455444946729148975327797319725523872724568220374052894855381330015695728810877364906247637800332517339049349591361119698347095311850849958050058415573133924685227608408493691587710216099152840478572511091602620749525661041135412498949732440754956674999547392264007829139712284464034729645330202087122956004430678987644382876341608930978519701547782669856638030382049461568096981277688691075269596507261565478370864872285212264789992968368934501730451183493465909057450591614379415482718281179202544456909152931476004129923880345718391708537190460142197213569746502035408430687733955085875127966941087383470994589689041074100061218336927743912067678947213683425640130543549672591358039687084576972259882308287800650537388904131125040558142623038918493056934269112651572225058218431081312029230866304467160606540034672888995982182017161110329599595428887914023712542499722673460881829983065038680841600466939965235172374944926989668273985003306443584604170351556905270648547807089619798831489664222880804821913357051840880845801478647019453271046660319280566462633389390380426837893026290933954518706109937598264052392055765978719367743963445660704482716959298167425943285957914634788457014721749290197938168522590818190890657465828547687945184447747754712156005013413427734232222244325155796619141925604900252988597882917701708421959815476575973521272563636322989851164844482961308013693225698238979738062882056075350294784078954803225779217252325103564191978210917317392162874072954851710370547232855961342721316132361989540144438031760881089989286603850878426381136710974464281292149176019398972243825208766659917598284982522184148848660510369693257124975988425174252837517852672040816303070994712807406248599851348419996064906938204604014103089036127068284899231393150617382095075793888367213363270182963120425633603638372245052186083584247413099135155372011876221168144768885724658032818780446976655420915396570516648746783368079138351418434127267794976944343131669166164074942423751814440763238297685370007654079304775534727556486926065299857631570295608681322462206726889751213247044253208853199429882711164613139531320479225752642370435197586504540510577479521751161737108779941591706300054605857643001704480969166411515425287114413389394156046233040034625439294184786938598941827650213968773115266508519343478582303493295513837270101353201333344569431242316235243791962092133572813545889807975011868340037518858166509647276801656810178120590533334667596151784443310390395461022665435183227485118014076037781199092752618188074260786720278324440500086037908062673814875045059621611962921943863945863280970089697165015161122645888901467269194957547977116897460905895245065032091765406338158549986037367886105193604456810113765294541637332269788750375589767770698393166016513834530600109907170523079169549062294962235064534453834507792267718918556457077408325977931824568876520445751884480571941636621264427150789313618649760166035127865624101149884034829000548113013846337227390242490038692332787440711871687795495888801613005415199112053229164700933369264772651748774733930684969435643973232170482107585525568529730332219431137370270662560790369285409913720000103403975656664130973368414666664557571303192310231289315613265630841944528163251441820915455305617778771694910717745192518438412202625731763699002817198271412287730028541964372347042621693425126211800339505752894922009210140103680113727554248851365555870987005025764091906928754107830017920146641052864267427492311586939209229244162622778371751982935007235163192773438684781954878860887486284193637295762906031649349580600848222250377050603061573906038790986893564247865631976219416899007455790306568092934201622074283962699324395914404070309674963922942723686060043222274963046778037805957539022688343999649283653531906496910144605491229284435584938422212198626271579285865449470750788481787190961748086072554473149465976124108408348577813431310104525932351108776630952826873862226841482124195946220657340210917371856848010815903013682333096994751397631070747968760197698904813045152282540087201491774265932412178586891826549297592756689554031143347045408533131073635223605434263380440772653468597934163721740731785203478120070258456792251141901717671370605411138852735612354952159492278092646511126628712822827892837071966146215612916735486229835135870078472515029139815553421279415216059306985671664130282108645846652054326019691245540068806852459012319602919700763850104247410512901956784326224667141990922859366384290969245978283025902225490621852111812201964760330773479796432365687112998814789239486252205033606557362610522844008017522570995129783370184134338601679445967220847454291155367772381057457787676935895295881218278929315584149871762742155638588811594245784050976391763392642923822984736187483149299559737684623752003941689277005521487735110591623383308871090965251292727879744167095200208151456087123701051785908982650560716392247558364752534311197553212502170555423579087904200084612341395171341739086040928362017713982676492396410424000878482934784440200441163589599484757400504004073162424717662461228748320417479474328995520495244870326568282385207891872358035764925192981623196858448726388034005371790312136504357563254503311626153456163943638820517368508876438320005942958573900641386245965323178737397192409830857787198984268463751957003617013107309690103161188541365314942599021271968671080450417449804495461888677890678145987668222618865689733924344908447653948147157651429882666631007815287874852911272422400468001213952095813052379816577159089814515109821246190005194634755514971216086978595907165775414485332016113114234122455845949954645864032275042291761033280140678559158143498920370265901460454781171416700724099513406595912818864125615596219702453928434185149142497686915662333316428171187516194472209935460326337663037992304273945927679255686648559183711976001697219149108048765823489224820486268588965837908016911606233439552729050656998282886933147054395141144921184011274299510254902759722248815585453771092491941122876610618870398510879087898518139656016899336387412377287589993870476199096661966019760748432195535741107431288637802108224423386795054039456986296665260182343244743991769191603913030067946699155014723156102415212985922384642344024790903177904727760885093566162730720588378762080695692070793352903266920334966213234545789990614362702980315654060393243762228252666632920504935235571861761200562951440462250800173714585817479974672492879263571588883238346004792870441007411619831707551365279030361173147231749465414525053188432163035527078450273556814252181453890510292689625831896993032152198503014108049848508698525565826499809938060717217832025697091059580447600995452703204302730137691315370515760519357797492695593400976150066914413577587673947074446393683773162596815187939434177803573531367518913985314685848855531050048589138681998124481116931977853068335102781952432468854636554899295692331094373770370539459775362888261829698599802563489022417057013529971711259663570584438857714827558711502263543167819652694735366691119471190643199497138743953105747141235912149116696271424025301826437431454855817709946413812384028225228992351141796038986399762981390241462217402126111806992463865808021544310784853704939687516784603990394015330182148587649375681818316052962670804511101990214125038785162927316650869674224069363608239796298025405210965288913744153961853001703849604753688711663629664446362134916246324618519687835013381901575041927561577189826565724651403889041514761388704773836039777306623107703012262716191466853351239463573232434591025682636464895353442328416895261520761029813594997080956714281995771904259409403248774397278549662341590382066702804970360909897809009520584264527825558348929179928698570546440211854749506476909415642200476738075161689998570564748297972940584386691743745366611296355998636154547555380075764981531010718344638544232727808265423425402366031324962347143612366944003498503687489620288529531260885729127475126547444605642016720906508033301252169853093764468506587203354650818342044656061049434474175238177026749981455457777265351473996419722340766310493692984323370212569306806901387200935183517111323101572773827397216007813360329228675637337178711144340064538051678332315491300627006866320119302325596020549392118814296891588438090794766833422414450080668480304905650058539561086736409720950054221244180445090656752228066721931734390701803742362307126706959251570460648956369502524368438937217744814028210516739937913670717538142968211390017750108732584743197976786213094482665397511261639984988549711505712751606740440066291999674565136629092460118356449430489649456331269746698792889949495302758093225586677733962347439320885292020918405296597003827304409632457448122636018036034508544934588962492319060053295324244175576560951898083495724552014040582918084076969405241402473984788539715810931942371648774027722592367821684812254616299629799093953476092881795794103283884744853472689638406469621101875170963911634653261314478438858644770215357790973595132052235970653099520486468939835774294229389590854529808835014365877594618099833293996021054895757586947180398944419010750003025801332703847849151307629438803359052530068485372465191038798439175261867626635002048250995499518822999259741865011911955025309351217932262200890010733371804038139865744453973792563129117126806413521370690319294132480112434213954937344250449517406775437396128066339313519159733566809825646302462589359107947176844049296967999638753581349784577386284833865281035176259262807703563188620148073932877362320912383733409042121603022659371872505980101884064968128352336948769960925925197797284133185815720620456117962542476763978036435765500143273769493373465350259117489158538420902747503965270599863710864050404073290982076793252887141070950555332855501635561941523187158587509525925199063528450100096644046041491803744219023847241384567226841043780111308916112708399994339775676745469936758671850908964447097060116405292482071622340685761623295079663147580479822963221945307465301406714223651446680330711714596469778369845341853461457420164848560705634072876211753019506698910224877673209035682129326954773510646581084575773509844714446296368690858619463416385262930686115240557722228044414663468326484437946742368456271061140028693895470113320477829883707482461792820417294174779675545054713438146885004403732207227019425501216735545241463003472624822284159927540200728056419963436880772991212405104700467191205559280794433318473725007175654705982256624994550802381502041846902079749097529156416907526561860696457047907802370272897764702602090609457823226073359032308328214214598068415502638561088856072049797047333611473565440730014823031422771587203415102966858868245877570146685748442560203129400827713479826356350199968627762982218499316462850731775897445986006746535315377528704064049048444015164199701043365116250090717603754643038049920225273040775316614513541481206210926340628414158178105091638768525699213775999770806494939582573687899411763010820424500310231239600002280979522234534751150595054101800298148433694108961066794652107459463665620269210927476204759691218824302213999634761097053918923159493609439724700546713312739418136397904180405776627053975729510468915855705272718526854211566920610982673729677091536953811347880115159897410182739456888585096066600158931799353056489571046126207912525897264603832905411013665848746517887348494011997154791455858801512993530733050413794226687618671976396031458323747117441439428274271342444909767213198891990981428043865217719165418772158610188156065396171821537427651107081584225915066328854752114957667467342026337507125111890904524217132517854997693199902115174232647078289873618559649877563270448350022093610895752115516139997129827316788726717944380983645634131834622866059976116578699625715131959077671777550016694945959739993152891222066493604673775523238237943381215181960332688816217927220486690471619963732946229939563461748993546964341194677162513822637829614173377069228070201542658351386205684516550048947520811778566770331306419512542534303517754057785490640171148137145257038281000156825469653180756649510746538537346440176900502214615340702356714986711930934168629408071194162457860126746735473877877088713431968628136912608978885426958317040384006830445341317692169905523264836822014028272590204756852135338521860536578350552292647510043899544915353506751869825123362280120042145784816436845104680069059326493826554918069372534173154243026965659015636783543182032703494764869952100671825744023490803505163931583467926279546207236907252820156220021005043442843231834069549030730289003693692542754630721407855339551367972578390867229013921064818453739007309705801400748964726721458900110474394240423608483734880792598479508394102801301528179720715448630999476459005745225599956780102188934869321116456950680406497957897755376958970988657225580759311015868973390604136680679544431691286732905358184056283169974366219105160264629657523664608044730368609987942148390311711851564175330932253979337236258827077248032433689355885404837192685002854284921075349681098786099155688695912264271923236419519836219981227764656518361571286417298247065267017323901087534158943504151820323191581920372651112742516751433363157265042861446890242423500309978988740119125142072539142429524029647496297506225480221646181721480245544270761252658808201392552355400536143806828064805817326909138479111749744140949042069459001855679904451165406074592286827433505621655544080859148235869683604010976214688566071264822486098343624481948469940311442043313285907809278301090239469075909515623557720545312048399374305243677721673482394194543448888200627113257629897245910936932057647450097450396135270867772357121246137913223953966536520754515703984421315446502962549110225555919134457610522302733061379202326398123797871649281616347474751762405821289037866372725936096429059791371577556480135033707585308807992346381958248008323052538866546757507808267715637202912214197433753551856598808657426794032724738475888408131079059309763429210387474573402000019020190351587951853776020210384744398545713440802579237007868430335355246994203671697784829756481509145692176764085662427935081953685041001890373048476901993269219228700254085343433951637239483586729612357821347787710372544428403730112474475262973846687333706902095205282968882785665476308782395205006397986745152450920687608310158936915709310017245996592648377385544874501271548412433570172774434944853106732010498056499827375535787981100957629045137751193648719541495927420501670539054146563883412830552835694925744306293334260007733975071444722261428854620656577561420831820988450951112864365806461468601404934493742927880637395994535777483465851669700829225279460632458466097033380910578816710041560308029114775253381657831263504913762827607029226342765104567847229551696884138064004230968925382076106608930485810494613253834244802236923863451948017320435978610413044590649400123974076205902298691455904034861505648906970147028071552484481426659366181782838049013168449420735230614880191798145804136406782939034312657249176047617869781445080535150558012247999572768460623614648979798873364614957044680019961546098420411585675684145183048945414457096616234279705269588979477569064745838102472331758249770434096655035688363950924999091133133857099203579155268481102791884705540904292313039251588062785950176382563597410636285640642504187837594835277829246768317103561242777251720529221491012819550715376877233640432589717282870410715472940163741588061935876207129421159025589707375250816046925505934554975043246670929874837252462897683591515197535090333306232789138280361877264658074040082096562703711309357804197238260645311019771443843267979791768883024219741342250084373872986784301450874894293657658889908917504031284917510134469609257663573053668112400337911306279965416497247111808513247920132997632220953853625778488170023479779898638387148472365744285499298378160004680267979999622846505455683699632535676657257238878829355245157050947290290303846878085035157864968189455562896044037444498325255809239857312966745990616101467990672423042937862589245450986165712528409445477432384185268769178035587997680221705206322623169446883306235861418980507102834389412953678390190166872923294729912962778226573074904173718885120832631036018160128719455589382787211311295670317197521630198932958076427141255498354193737643914280361495276117096614272693193343043746702702689662478349565073836971165324160315917631482301777273104896657125948838268939295744171306135400395729982446180895652949698540140017134093235826871614096824445084398597161169363660840569259506527207178316953243095356344082760409645725244288342205809581999769588961625863711034639787577930667284680048541209000756203881455271190570863693479005915682311412393461147363706667945629866579365006895249619466581537291324434941955854135724774854356549881180240930702036865080180773081630576107790527309829335255860389280490774050591161749324410904890577464966454463589112824667733766108188952065029939411334341076245918229704537707458002343503043601701071552142481927993733586588487917409945835741194001745931736131915757845574292659580177075713795243561498417727019119645507493911811313600455048939023954361501647524818366726310054913406799605498814112546570206818212221664753246159741789959056851807064636724495599029346974691676929985803956149616856906258877994854220169498202151776654795248505726514802248402410138266661082292407832349850174862430826089155056393645398650916348256615912986603210676047686764625709416077640721861473227320173452445705396709654053908342763776617301208899119746363573537162737548389507815162919056175552979972390825335780198350839669740693837731563899319627077961136018430394944477725585302145858519812121841214579867459876575108882363553584140061610011527862520643389792272447996335568693394711032007803454230165884184555470092114567695394221172431124014893794655819183838024692241318707761926575872449117261577053169747357428030752734588501594371479600187096958105646559524378451360897852384314024517740644657163829656002069181054857427306796029317859872249237609738527793309357447642333736274750488075625351447531023308502585087375549303255997043604065943725389349619663150634397533125504916078334243151092823651633248842016559591841714036935505899143888043656943846948292938942367982776775789567313499648817801773627645227892957146194603505299496796082462788207958379854916965596977543127567660993730789558628218096968371258822630487605014571051795976992016809701212212359364947361029693873021696054379501430358421015558172378879633329369753557116497112226098520139863354679051882003954346925971546868301449388828307203916715598765216336844317421778118140042033758328226830987964980715929964673812348903634562834990177854449252711566117517843737395651153826399114690458142931359476174784667333360088033110064457448933911281239450804335403222445885241647000147413166355974329158123136424420959420398985400536351469126515231372034541696881955322498985560788681839827145978810839037325040623632055706243807748298570681451233126659932866286352738932334095137905835142717697849008644714853596045617997534800243373474899202826843793148433141667082670066568605477369789158746121409592747272178863609084259999674399301236239058117956089871592631999345041287719401044892874713895250082089186570254974790053123119255273048128117272985661597147865896328257064932862980991293067358295945722435996835464334522400330301616475003483496826641563838943685902147814635171046841230300380676606198137338453715509187919561468660472032622046881995385671931244660474535411430322965264338894165554879701808612213299157797622149000816719054570967988797310981488225967977470752112339123920987168496325013553527857347402074545990923384120596887760813981052561789941744546503127548672252092552771290669939416825574861118541218068242970856546428399708707385197548834615184521483146041159190035962201875013175202141741946032605439587415148672532125672644063912868690727158929956007020086905373085032257164247604430880036084913915189333131460514982128643302523404509130265629421873761247224501068172226399054777716728237882791669046401308671112790531811590501580079221110855120991093979581865183243529098304721811339775525429920780614817502201218235011229181728152642669669293042521566054758073257864472293945658604775501126720113527732467422829661091519882712617091961496013930701559509458056302516887721678267013939474529692100597190022661628742331647528122074336334224523819052771959795844426983849800680261130008380923213350663117537055578418954927503865616682794529050239492830994457547760149453938652178089815233571183460026439415601721802683621209512437759285248990840782518906817517831066235179225225957463839013325981233869133226306511258008994294519642763831914977465516822889193450308764328515230955542178788944266878647960632284364058084973298843255358493771012008896579241527577754256788426088281103139762921696616562687762866592576515990744607059523342340080229834248749321477258079515267015788569144202585981651780055439805201137631863458083590599190658542269658230140188489214565310614513464572029311058327152210080896788364322294677449048498176594012613996496041490248271332382658100832169943858863313026005801673409478113246068511093524537716840504706899464321749729438571480795176978672101553201542707989034981084833226794303910027906419250469373630655003707617707590340545478839354281376641360905746755431706517468907132113607750973627300033873270194846340034210357032113696237171867595869213166152653017643866369281656989254593719795743198140910476753505215501751461357969275336539626115317052726237195632467868282028397111406078259477401317053701268491649945890627595074650390140746253795873342308429756238249188215060141967083737687364622866287622253409461514538179434976554291036703404571442672982807707120126790081134426895883936245762235294949789160978954763572467505388647076227990126921244634108907074246251011112851250408277130342084491084829212348045906813790058171030358567545398156022304220844985153683503513788259633819131774956773784599228520396368394610240595024023949968757798094200741258158769918061459977336562696344898296948582035540122760991884856851287062731543873429554718300981940446533395069812961600393321329036184840259330992369207528822027245467900852233391708813494536277906865333317778397691267058580682875353677176086842417266903845529817627363830731836619745005405611229450370922940609158661057478342660115113425574174793018445149056241968540847380586895710135309313979095493554562382907879423215341223392595846367522734888938551731801454686730762909169437157440544716934598716106682400855452807791363849813378234650326094236238613168873238191571819785768654535787166227345306276590026584547339808408800117311654133306761228696165598421994205885813604662178069269644357818381191044921403155641523976803319508278599259998022631043738054120470850932347885935872059040044984656954242814880093836311458047364278951346092578951952647831008711104081400294226081003181719778704856932812366703024910995135313005887404857142990842895741281780953054074879084214974956494895263838949325309401242152063857532304232823433485344892624951950624522870244391341421395906359980818685291313093872000439534904742568469256847425367684353984350674104479278419118585457698446464844583092665194982614107240810808716620571645455997241998398967824079820509123099737754488559696108416621001351741594391454082476517401479226652011000184832854536682200042704692230217119040139918486128686805831156301023535759567280562390096983257568897475821686397543741478931185361087081049133100281626589222819154159799720297982146891126887648266510312287039359439217478160146603958515958048133056589764039523314583575410167625351053465606231087192090097461873254449113128649076392267734533215846837783889157240161770264649790158037750821835754497415539704434624581206763852896483089614866235199253683994700871657573899923369466958276963321098875001741633622601705798328838725005495451267514726794787803429795133654948536170045896234783240433354422094439710720375209341396497793939918983419988597934097086503428431564503832897184803094061554725321677865990467276700503335202180086029928465852278935328228094050139670826237583321974746764713507874036261667228343223418158699980345266458859626824911956630562827574327650680386911183697951698335357835409650434310110451550973428936947986712198945262861406136793247589051623463509888060666068189067791562515457624584503873423334386623637620457520479856871484554443792027006458814422257089454162638561135976396537925013720981690326957146433475755514175733682489180033678100681682949930158732850242406934516827110240354937268268521728305329052924630513978769379728002718510994858703195981419605671070362703188482303427053250251924396031479619560151999638225298847850668727537343479058036108448973834993671440751247238388935142784601254202235411038849868251923630519746533760743801410322524267602022013388767345292756693696844222003094449231392543192697589960706384772933790611476209669860294678409635019431747606554741013204852428606347288004490525012025322034855932945201626922717746699812068088336534210505505774748082938023679726219428673303553016919209612174001575667760170743589308028178564000767620734937203523471059349576962594473127306034823908062634624761989565155173266959477152077246437493765601197150980618984245994289579488724722272060584994850990746235912464051327913139828407508064104708807241441191367019197211260805383530969174387824200808979051638117172128950326289022869832972700886904421493597087241535148687889797140758803215239456966032703051783920713843963937023320475588728873842891367288409410065004312854226493679546658747788101761833423208482591816009411657568980687203216539163907003014703994721959325348467263769265103876383010574771379370428103271378002219922259620353198774758646151849262876988562160392709805346978618630667791473730258797626916732941006998474381161743329378986750549259155773731225318365811143963005957465506379707698312277680504459724744042345830837254025946169693513850485926193011926910845404177639622092036605535170392655152456684275715081435897949182302344066194159829228896429216045201771084042570236432759999047197169013169489351602669338618838796219398316417938873719106937357887720918022661882014969631281654223645061173117192056694817178496298414010347353519897296888988029663021461082289351718085084372777410819202523554337391503552264561427813731916332245770101988241496494656646838625753518017716545202694828041541483204790512570554593833724454424669534547967304013748181551170935026819986672969137420262164249896331754700037300208636751951921569725274742875898148729104118837587928499553089327698659446806997895515218923179305722077933340663654478889895632242292589996560779501517100106018575859818990481513355584836400284004803407053805471005351772272589226592248499549567760784783160918826884891692298472372489058589144783525658685266349209669900017500821254196550916348899749274866427048043196679319288663089674233018130131650992774430689295303403640049162104209402712022744715564958974024709341677766747346829982929845234196099153759949095663007751858019706866416847012419587971943051172912161319032880218945227369067009219717673526773987261207238415065271235500973103578093053154309646621799529664348265884658730155897462109233548927080740382521406533104833542898942071461916840969204470649177146399061447592442153141909880929842302487564418270316156265603586895213206535237871914249230971534051974600883804709036025646747182760792131300613699096802627518945421849109290591506904327454307167792494739645812425045755101699587152052601634800797690310951653581835156270568862566615963919895634094459038033108995483754869437370018269613167019368817966381723212389289758752298830601879238685603007124222501959843214713660086944613950962191268371936385930117583034574512350709333470390440967878566156211625129908255551330211191433430278154886304838201413683886653825257402679725461001008234769471358069713703144610824425244019820999087483401459624613800981765539889086573835617477044691347739240179021141339702620545825322087113060251409042423054923114620114064999491501337039928638081663402122652449129972103731249412870460978947623264451258619709974203657691725489756276485283131001059951482844746520751359303772258443559951831589011094570632568179692633801036546343127315338038218699783738189087729924095520305253793549751874998366482471336361640502175614266618704308088155183619426442721634976542370882905522820459647346816760441199309570782120747917458731792231036193370760250089098594736955358668796701717859812209599118285040000152819843582914565756159556554199483568670020831881273762631619083859602025159183974590071494345198738964469120867158798960004071844055171028318861082854025886644762397184616737201370352452890952282892863600996227352116900887046944063134654180611441147183665406076128289101143649078061748825801422094018775631586835478937344028528969089583783759177020160471023886174503434588639181248705300106245399133930152011107574677831682948419056395741301915508308673445127426072718115618122524995787393856110000132037281117881702605200368373269175061155327162605123816608101218835444632470517524528296115960657444785932374029569481055936666607395451568856806222100421532217326994432827900811176492691929532576840905980410848632765920462391715087455958843911958537108939822524585453365366497767792537875254892234516744976235592802142764466829784748926807346574478010930677034867931231255913103530446888715853663390405213963637955758484687612316790034608915217483009990316251448246318949124520561749192380513564952381898061020731329208225823084342992199154579899795556716396054803836381758964767599337451754662625907014630192811605061985037686289894081297048089553214294078342547808071992554465255083465544354473472100101923540001184746069440386112505997134970875795560665601627278330215803441820781026103054313668088629963301765836030468198875535269351502568890704358488806066620095492673172534853731565519878807807924624871697978976991340176120263925304712578817990201605522196532114263137147453707172372245648438611655620033843649728796568320333476689517478994328703430584689291776446413498471561194297687509699654494498029421403350799118039589254604910848178878688901273374431392244726660222035750271696916554736473175336890379509875424091915819494869419563967354648362347824344672246929729138002467906074042632028171014195565874677118829452146779497321271877242556049222022222544723036554578683879774505957362807022960207963370598122957983483169684976544164330391865278409862890187949473656524202072838316812536049681477170320491021254839703975000214582286462599412983804884868333814350415762958965353562858233598727588635651777442200605679343105331940450564659971780467385239641506650922640974161096523629732168109867013221755619081732182154978789991993011451072300643966696363800860688340770722474575857134899548592590683834494214520315679452755782227025836757570042477935572850273498649547390756765822118968282949112910341156055916613270341154159067768228552862223079295195143139575319737141817961048537887467335253295110588317317468159210616200071327768350654461549775520856385661450129772036448327982453551381201639628890702752416585541892145034490945367839233736372992702593589468631218511136728893589351719537238991512398204896024722848004984825658507220864978000020653905476007724392935769079921436204109623003240761183416393540126045231825287287437900882006069938628635491049619253318086632710747797535120375671186360547520092047097930694165577958742323837541425537040634555459498459089524804071272709884041478334665956399320393953039552430114815289038209217946863214932429512552130339983343516543005416586285689068330814620917270310303248093530892382794224024672742573873927358426321049614942167893797312013858433229567115130889938159392542577266407124414287457206586534871584417751957662636339033397796909258099845354806480881024911713934432409287754381685640992456231494957372822390611142211142265220405569072653641998796734185916748206155541821453641886656606617715755772284356780146192381141839219003243111202035653311510224838925544433517784404288905522044745826423054240265337074267770880133276884742514977444113556047053782051603855888325021117838719015007167259267186269880087877598513044321432449469265877174253581452373849977453286280849648872507370031231487355773993735346375005516657626424561293209333045789931418495918108412974884503618636551250306529175341516507918685252824050596114720856941606394630000425139541024250817766529093711231960858940849255419870095474333673830031415497109674371850051821657562036255346011623564096687893342242752971429700301903731648413162444783977285265960504739000166439484200276515801236600462913524321837318795521959869855685028281091136376191777562762808016889006079799125246334424193039619074139426551883136721483737357185429727366280787781850194834764437868472057209684133173526550149776216383960542414631974789197758124936372146018395884640320000697388222407925227367299401145416631300567418036252098657127295735317292045620336125233579264604225251079125773345446983410779199321159664509795865618902977502332704643266329448025111507672682168630916620846747187675678730634184702832435421637137091944373703053667516163339769951973775800064015945368991687764669648965123616566357707920762928917941632546346043791246121271001662833156129281565297203142373603608756058158437413389530251745917521032532598715853268817852423502961370483268741827993178640226879008891746776056328078895753521452768864240216996024345469260880499285986725064958096495739625079845033273857398486911945911121657443078690857699289000685838112417801648384786755356591233756963717252732167722456040521317314123533910498241870026818426614588526582179031538897140986875153823394091758217724985570273539390878442479393262433887891671173554681666018453106500903789925480502720461458024995725758999445137322707246363585265063240230502758785825334063077506976273852454483034871411875394728075021396434101891384432726334897495225818550073575966021796201055907711418463211019594910775180739483798476029259937791053801298524310735380926042692712663510140243632420809927042123646311101700640753527679524364570757642632989899607047305759917972190300946956194144244042763639676641019150240903241564128090045197043463191424117556987885709847014674112301977968928086030313377480400672634420881021734804835157124077723623183329065693944534500028714013695989477622493065383751828122589384352662149817946004063229887427652443984683069599739967986084099821644909754000952410998454175282319588142239024680908052043150305616896108236857364215014661258711803395874720479438727255946904494638516761215538515939954136081242699134048816480852104254616246246448800604271939039557171678296704438630231132142867628169030599376525915676267411689767458691897869163526475534134448137788948651560852900174734668833450701829517719598740315874930075610789912576579895916428112742514793682530467292839477822775508097226204492483628185475661829665345659896181844306257685059564921497555238604850662549223290537520947334068175844122866132040853917015352261722646593253317486336252928592358943713060645701893535128616269295251350967436196072551818207743058092565333630561787514153743933927348723494158332256424818731894517253619769050661941770911712984338227719643938770907797257670393660043589754390535089512403762583159295623763056240083044859704816974741295938340467736851314930900298773878845620343881928919664068266065661931219632089127583991945646268115415153150547623014792530518865265527862978423873642049725031382762283076150932491442208666655255227081095112791460575504651895495595763846748641218080178419617787608423710066381856012131709751365285020679105425839539820773016749698206354596929549965498871246292076322560548673392918447909005160149116940742106606953006418155468532826653272511188592747410424108249169416740960742733553898412719091679973630281834931563275626280279665928877567801358601399105261412501776650098937860914280295052507279981091270388731516886837048880509762926726362572320107734042643493028661586872553943267694328466151272662496391572932673814125540171358697693520815108184109132562611265982561677555896818871931234652425327971131136380413508138587071495177436955987249658247650382259885892619776218056118489341351855480688395491148840277262491668860158194828111855926067151121773784763674362883846197023777779186772616554415477781888323643761106310927545186520145791022090772587989572127159413535128269421172110003846318868830706616185432359460252827421770506186138350070480468622486376799250020476439205661641770964974222807435798722286623027866087598402686297101780076257645883829260217925522523527968265339256758032815662225799391817677398019989891426091687616787798306874520168862168049699897435578606742658770360005310486446299564523734930007452620980825566830827868831646896197346054352129321338925593221247296659096720014310949142373731880070200709825369695177789095804472697969312901148480968788911499422420747746189713702359250417355283538339722875969897233462272780141221107935636487627471323982283311942201106727296660380097564636121366117792869573995146969221508359852705315434234466084392072867873058880671348439993687396358312546642513066904352388532515650749540047197529924156600282258544056510387833299118252399474999606532307356589982868135793729013470024605530304068245362460040027464702371396793184930149954014784511377655021758208053200868622613923664057175350738694600549300940382631745101616587671369976053691753933497199476618361394812493010602121281775495962833127759742696224835762649949932509461251750412640234627996553989817260588808287287198047965589036378775110326211718240592994309574102452778658552477434386401418588680780800263511361002805777114971445515061655612445971541723915155912886197520096829765045908496016624253216246111301998574931892537780726601680649112681432379090162695219386930251748698343277419860154028803657851624286738473904176406228476525160577432832331017062007669303005295512522322789259892552552793875891862142768637176027386667672384636837378086701643503110169835666974499652494204612861830128401695363349166262870410473230223747310922791644821620059266705334838388940744952125998940003453779146327097532749383982774292131468858505541981675300387935080690791349324389438936811412116877229140128878261594608541735059592933610893286767268864564037073894641395658725206240055707020006733339888259956994596492832744210138589112575227623634391864173550767101652196049947754069425630612531050263419805945398657988475019367474079640558834304252806364887162918836525043493415835521511252647439381106983272173459917039379448421115813578646859101925210510287652421976299284793520381337532862695808693275321865096837938183287543834159872315850183561512233553470598524010654969615823691304170731488440951172976610058761114621399883214265201052554657167132474102874769085683429049642490836682175307298931333870932699469622279526731060623776812167070242972325266808741813335315585482073602828751568356110271758433929601986283814387804487639604399407199645781474041971601249963018932486011614802537926892349169857242226406316007145400530485851345245249437280184478649409608203907774367694614342176394854740587583347053195766353138838808161656532058988951776512677862224697598231088473718456879247782947227557188512203439652514795707065191461991420703428998280005013351931484661958039745230835750584532533086660277560423695191007829102163805301889529616824873599450315336280152537059321264924296646843086983145459973318225540146691567388823127904608158273313317092226502081049923518866204653191549619062486001835423416843532650334895834059227172729199205376752093346283686918439027366676633754318631556306511637354753887175205530879952981950941511315829260846855305841498854019790832867645032207625165218488020278969249290424526487295266329354765128833356943604110486061968392928441623888222905774534755035518178573647607957529016360858005165204478171412367666815277985182310394375146666149809708125329533573588558005450108027197723574128337979252658919651522588220379732998357797406773745178563569960960509636715651498266548066228853084310916691231924481483861510269563107590847337761505013970266603201654607866745550774740418788645846443676539761584969973367555039047319158882805187681871064843693857988857859791314183501365917820128550565692124575296533185016944122591213860995807615996169235847840940287737786451757262326421658632041334438242363271641835095701143208850001650817602101461917735974819006294555755323539221257886761293870561831099826832545518507197932153711964891572835010964494875169172979251115601759420725621429979126705340419383789245619056884744841941282811908987131116741343545828196362226178025070226754670123569923372487043631761657338535292243368513306869297342643681266153972008535191618540173062145231358962913832448110019341083505505323902346806034157710882093337712005921875844462118081309068557100783442398168240889075628622759053733391790756164113824855681388399184460463365877175704609243560062786493588825058929009731420768724031149323657915178574715318981938890780911256268220358483326468068649867814123469260852651011593335017261724780217294960383290264104602524721001693474767777512281533423856799682606614343667903909472728792241378765912917848942097893487891250012587678748071851043318937096134823311541299188436715385333369754951363548091240652436873554946736574168858710403512294042322063255246280613179302310571852583695809697294608821330395652638091148469970868303300725400066550145265202568048841529054307599057900234454965790072132935453939337592392998026161019034526053450477140138704121998738147313166072586007874258116059899171159893297510967460369546055171255969193048179273832166117562767549500506141984315189397797452052422003949050315122833803355942001819518212252845588087319855299689140816271688772811368715355922570513302575466430818009652270486032468884046570488002676517775575942713802432227396005790527389977293157768349904360957980993273663049444414862791103033630862243063713487497037925995805867203002840909039598294187350265581615486974703529653378312441076179483683125723558691161151507603028317548120752420226054782101044445309820282798137897365197862819739949780806396799796319496733728353441334265317134019151258981110194088559237844097513836380495380113180328352845122939912532252035961809174500797318516717116384251399367261274661140728571070756681067182672973111890724168553357278390137952755838756185289771481676738637115989264738277676885099799534283589891110598914339240524337657622501621685355149302335619816687376875378061154720958650509862603754241433330887560124181864931264860840660392033280753529990676555518995343566505489153982395569652969907090659947055869098472841898716889219728193141163250344738952277764491160237901880669063192901118466154114450927980787623587955157946592829990327222214059506471458048730362099369980761027639327621563517086648580159588463367923868966742131024737392056845922980298533577530655112321320507517095576309349006031607118265035790202875023599927195394027436575861870367642634278881654417828769281748127429220906405836906715242295736694863986505614348703636070967406112632313896454029290728343379139476655985243005291188333778926683656340178516760057050050309737382383557252957119083762038710352921722602583840849901575631666990957034622614128127297293822232629440608487855317599418045074662469353269724341177252114683030266064504974429397961921196701189972444471798601243086275236023191478088414863717045059355356600560281271605289844779798029052815177029569335679010531902478719027643567989280134305216338993441770777036805975159307595155608693963837784542078416901351026704430908325380963966256505179886872035811910668549210690727654353042850514491699148830494873905960743684304844247596034543479293568452353515117326331151450524869351139789343054472655127972368232661740858527217638273117877307388012765913775003292172577694107158464853201404992725373814860007536531232727817854832805817776374747824474758949494041610099135182531683433443712603809406551134005934327532044801595112461154744786395006165683632801988014847286038077226605052973975226716494643007175888193536552562789062887321120977390875014368070963472880563179791264411840428272756536261359811768986358787475211439341557003169814598151789987979451003355653070018875473715138718452175502137225740278604285644417361870785306678429118958968273752191379530729470664227874494666271973638619110514490085898634385592751217405524809974944240094008464450034358641210319017470897817773728462719284912208265333283976011485813587047777698942585770294772457504790791001193489721402321706188267707227710948525298688648055684940329600664994876022631891203643365529795176908179920482747947219660481000801791855678361095167988434965181500185824737370253773649128022994787647266966604346522550280051746602892530178997172061846613617828529195671289147432536292912970605820445633040397041170716938452216651443358230507319505443394144127649584541596488829912790991617392813400311791032736290244614130889368018847316174334230609381048385510538714029028911689298312494183568938023189796463453048466971985120428181811708344498765300635707529206379083245988138902271284310936371294565721951302378634830809384530731231743456409269149205195144397229469593203375396791300927711340952238030016211116100627354963806904531499016001665095473468046833284201583255529799255885610268354942964565139504593985021122314288277727017486355275713982862709528394092608386775932221445598485576383184987693460807068049603695730560558747039410252280699524272273475982467602210189124065013286015700279173645079156622142672315290894221278799339408584512038009552460248716051947563510304443152991458815968270095784628789007018964876195731640618002801834903871889212204431106655294681483261302810256779239959827337105871143562927553887226007125200319193089868858618270598192896054392397206137581651555187120083027463405415446911012258222662589647162400894521044378051431047252971057847662572455063037310578484605099561493746858892372452196695630243573109958298947811087957321178353602975884976948192570863624412171443723197253891580620214113063322855022052828926545891118162673964970442329229344501148126103297619047224433553446555794669593659705133176085253449392119719998068968110610758944122253067441708225060420100502821045053208715695587972452777859905573655453563853078548821071045891384450527971771827841886398797446339043051436411587150703741799877859289048376392560853767930384247846654226283089516013783820538929397367006686418004551279145022044233267184825132496397499205829525114493132312961964535295915004179420558448721215018171345390414604149453467483687931621899676043102145801639819692394682935041491714980426172335533713170165198807836068503672642947886971754059524268256870506384745170270459782360212292019442546387528266070142973968450797724632224875355486746652302274047022883505116494521785656922313851601120746498626024623521229233547891568572491955806911092167344794155972670711893346249236788815884452418198130715970439843854879550196780979507609546875155091185793008982652744359979545775829220247088437322646634741976189534465496872639911836166408544524912630606571734070234822527316853101306422330486312955696989665263938507786752832058305509902104900040436829489957609449647990919260444133691139252489455806982466032119951514193918012921851012586433322072322077808246681878441202512545651364315797105022089418266352516869343154671241402313548376807282050657732991695091198800201183517426053719758078167163849669879861093337481120561313821684425416517248461353606422893377376755604257141288737309929587814896931092661780038515033082959763524132423533871964553855792850279650745360184844774189119943329872400478327425902003220451809099612171139226770914453485434020770297092522401860029073851259892134172455232974218854656721972914528686877917780665689345127419133073103937838673098078078581843299023591481984186242853054859281798494674726222694387968127695686815524931713385903657781011956004585388976470591295484737439124044357576775045875607908371786841188297342818614291595701876404820181857662486987112482879165181527187259705086418307508172466888911191170881251142938674750303232194380247529560400220767312147038382305909238252147620592214412228959529168933834684743571183638120787325065810269968641857461408732019110667518596242287337087178900570328848928608767881776632292857118583689398535695080582286439804073219621164466495301513723176835778486039262279849092177771796708900868529323782382311205375988577552723622864368089785328053458208241473201738814107859541400198735485119316745687391875669999933874029550267093652434529934458319455305121914144315096695169511397407679788927868397048215610750661419052714542648165532621726875623015837920814921313605918948132367401633807915609539079725776142527808611903049419683760905959007199100141244429960323422132512942748419414350059236358564428905877585468161955507005959348430498547211282599328399344709605567127561213602010477604171537027549809401411949141364172290660482908155716439328632706002334230245055496375044870977469562100110182549512151376315395413359681189467994019536006775648809700298593768688231808775008466156733358342224131529032175747453182387968063353008143433908831975996211813517760622501604634908128770264505967522500411049473224667403863509905461953391916728981456366148076006221650565999843839355303238320446033269216331262105756398368321575699213416121415768322749898290545367877500294779093873277214376887826834379049409632521263700365875283124210531024770388004672763324900921932455404750821203971165897659693748429261294588578177171322944220113875684670593788454530965488582300998643162662550313975580525975389449596765165399431481528054000301163929157039427899981111949732650039775390892225366387881381762226361540173420202243622912355076768059160329705958946445307212924170191054497859254828111720259629041419533914429652612800494886213846476827414645727203958149006928016355991806659815951382269306207307448801976389685491856750148662165347014522477694750112004092249550596489887035113810069069037500677389565253231920608607823670472280612968258662723212667043308180044255885598873096468648108675067903249735211126844159774682697775353830380553869083062570754330323753352758390345793010715831934856460907806634222438858860927946066807493283347222397123605227496149373927324196195163380425220218049440652516953611215869383694954781022372156262195831897854760093459536969735388470134733251352038918318517278088864632015135176786433443097698174411394991183578513440845798416812389486136802367933568990361679566569228384254307651744949978980911165451408141851942271010092105094184386092862631663162335770861329456277806894134087106530536687823430561276668532718776444570622749716507221958984296655810407820902753851962803395979224547299636892443190347129659499413942242262419426786937174028468475753604619760998951878860023400175222053391880198323602081019889341154744959708381949811837889043891663144926394844498161477106254836213533857747310350853585844868708582554997075172995713806235130922961697627549633597131364515452200439033819001615010916209087999418451908598592125034333686320881777372797054266300417121739821779888804488761722292266449287871461729157649025854626073710986358969749140704400170250277849138197528537691574041075255132394815615268957251006713074802561607244305012547018700711966994385360948140845030984962152997276949380687408174219551252390333316141292216082960670195499553832853332059536738563952735492656288333609746488191349498158638680665337410294398193610377202889985098140087317049699675943675498804987736656085896253674587301985690625095571064137779880749020138501762376195437939254232254686076493209800376824662581145195346826352634961107588908057930512974645067801304192672488415660125288198311439942702164791094386540707589962164295168142689137539658964688490200669519163110272641141696549676231147644099174732289830124053820879037363694653570021050065509398559071312705708693709543640428502271669456404136381892742951139992259406077235430874370630212272820863510253896598850226057948270322689415426131036323330574645697291874455232282712842010705180948796856056065599072726032258195684605258864973033666973607103986574823166801035235090611794870843374105777847298005599514304049880880289291571327579984174729675509258695251635217600405877138665361998400724686147268049009563040836679513987489058828151276634921967890140424405446552630902292501634521553035156362718886444151937801440350004147045553971084868442845692479698817436693665311538818864037636582693076542986852210762660000497187595364916129286443245223164473053426833351200676050758825003309033560332267290035228030240520653810357843369894477565697478453052654027829120517521264706495719486856324880430666310044030954819575742331128337436706621191032157186030509390900233200291605012925944060818553737179705592267109806105993959075735019491668630458494479871902983873950480745846194781530354852752688435456693598342170097719388114970472341355950841033082596096561956394854028000637726301643002314310991494921150770367706029451216976897630103113111895144565860252713314811388801338069508373197369651894341608031214011600813290661000581126232821511327231004485865550325401196039334551186680350453053732201865311991122369360930038603847317213295212028863912374648881431623499259588193678526854607612996803167159817650670038436235605319380098316774570950612429346791749883165793181947492626227778244793931238724833398415215252587487773436288124490734479686995122052694814506466710385758397582147897493376123264733574608683816984135687468460161837210556530471177897124923387028444689861250636400767476281755346162664621718208630736720075644733825410845846919336826983171083709811244240040193771396381290010727607645267891870633925236709548199053890776165495757225610171905996045590544865820798004067013871361341636773485332687800358100527727482060933762033727908626006086311617480565016849864146036272082510571813188973437778642749023991738042892556601363599908803856118517284666441650586740733495036536353966417908491802255137274959316130009299957882526841940319482163893521551023215760397993831393186125078722329369882797592014123355475687843327834627494620352831959452667589340142862752117714248041531583997198346430559223092855613475813545717411801663761545057213354323660100478445583894653423631317766105956261314856731300429393942039452879408089927923537685828392882887820429116211581352512928436429357113036272266246057486543846153734884372882726977719975673926582564311745823129692851218871015184810243287328914562972218321191890824069566851968986624416327732859387767682105837402577085701726856981301571198312338833204869216116572839080586068007840683101086662556164667944532663302733637694168618679577502265363035695513878490311628371660520086799023562180118363990792684610717857372527512984178833508668709785266790879692650830210878362322118534616203425580903508017756751228348158575832436927895759493742141424179922623947217051695560792666330242246547471500100569427472339705748388794030719577234208892487217575129809092734674976991462487020620214396905880183563947273646866960098298465144196697331739404805698457252765858506164257811002141871325615964188440145367190589162238449344335956169005648877671774077395405614898885961331834499130184783829937565410229319210123365938988419179456487863210631892821446508626241386151563621415190245338362105310689838333311039910566191366676700739529177703995877538533965358036186116154192642341918093922820445767082822305968793534102736158680695495221294122239421537301101172184323407797426008683812606728207664642302505082993087667855926468715789841786935457202543849305268961576616852421323156934477928408856417703570794200656292955956479894772953805971803285951606010031316001603250260124617402109862878288091957945606892254314337901567240282475550858917481956176019730116896296210611240925161808053619476165410257274821067741826513952812371442602499352531392121388241378290690216009704635352443195892448900764435706791392504477957947056228630521863597269328405015776327610353680402515550408803369964234639752921344040327765248828090044690935527250295062378342042143792519797915622493135664823819246132621454929405774926484581565992270301802666382109262802935220916381280627000258144513113885721129717008028311318960873033946660301847975390630783812772110990440791619882051114357381633749145496547211226325601669018182741306508211957878813701491745629653379746763076003868243664423464173839178874482931689264724888651601364096379812482028859635182568512263054234122973047606789004375322157431877476476903892271922239137121226927030800610371326204727824644376532633283378569949358813044633201893468117185492076234627509479073184656106368080747898323390566000533837379199927532098524774487591893748066198289842071889900943509776628956680198830103964836363806984142720164701348491343815377184189033993969243324199574251280489129766461231404473481969235989317571598885983504017372421692280076521998611635072380332316305469639042129147743407643370069190826132758612762034698261213839556685105964453905721918808094121532563207253341550083870479849332573057069146824825294012240305431237502816442462653317059778339420420433063584874105013898745699076193933438251401509530027944003194430731565509201203393997183726961702688872451372025072481104641338143756430378670715709045075327647455791567874011608065955149755791210509009434334225516179423757791824341474380693353163243745361494617497199348193247456483664834714684547489934060256585994473311170147959727457660592485902153013260560515862153278510600161788916733720579241158146494672446388430319764193381022623737919885974282574534562605279983963332051459954118950769626338620651500722110463504808812856682277182353075734183969569173940145293943483163296087799820731706948005784573410209512676922522158387554393469718553681105634335134005039538233407310966686078174693226285202340668123055869852201629294075267966941577873115696228944883755682330996291731093714367075757344536846866563927466188456721956424128206944423566821410310836590078443134024287506125010576185948295216262001674137172544588260355434636495707737879188454228611240514049871810173691802976143665305026739564050263200261936619713739900359883467739754312966128819021943321707097733926049374405385017425489123951384032711123818746207466251388888405540389190388257521079376817047592300854228867519016652084125719165818003585835179498945365642298812811279641447257430609084633003555823773993139165594471967391551373131246741261713663571078150949229483055508268410346609915918770993606735054767315521653806363908124204275573690184464921654381419660598977809187422080625775592334559133554763544500933676441348569966188714960614778005092803491387697374786613904932871637356417249763614636482120156019714707147900441049875702072227396712283615697797355472590909394290317113880156501260316324688317642362022365419689851779569599167717065163700030920440800095893946294207320529496201943090320730999501339391001978587912927860097684487289547719200483031905605387273872436431894675657171700140729030062013983890878559980815151712278135272041404059355938319616654416211296711118111309225075860570610445641435721548633426347541975779941296450640708953692879087101041540754961197555419772558094334660534846352929338198966511199372046581666915906962802780560450037094068208231949863531096747243526011269493555324254940508147903310317442041029645930514697080430659129403700903406224591390762799615547519063908586590244287181966216333522339906516211002324308342412700368794910761558895066910665884592238804961777222508654610333817484991333542617582218152796183498639085466807973936660203529167563643737761502649277251714213424703357946239001576557327905455262765387560201084505690001260353443773390468771109233397886029826768822890045477018923439740957169297366923683199988319175900216271179792848130983197750608925843682373646643937611462408171187174736609143105772485308733086778731325838806157038760683738903808408520423060002817400366172155705122670054427170601765097940390039404716216420103636000908532400107572028374577615758205395735670087181660217163188156255695302268723244813631180920041066426507606539452192200060252126947919434647911848834128995978232172139588793736122060571507174989609380406399679227957669925178757620799251975781119372246058553745363391829753712911492772415987198658263380589213315669995282219238435624854688494306702872812228329754100860575143979959232591400263248742844562107612149627336528338621784128582028275100847806201375085439097420052413389589244808112649456329007897651862934353018129588002548384617339105559115249447048072822116161706220894240389813385624041019979466537269807377232276012856723511351598853189969338120601868075488593921068287893633139867402593292736127568252675661557508410274454607934415462838653503704208008082836109765286352789593726697888620573433584367532216338573386250622573570313353446208932413952256466014490138389440247926858408062929891082460039019042729549286316514161450801201070508104506785253075048012780831286801506858972380731620371037229825110973178956346427809100381616168764905479067204307935661349670359740091982817390937605515052738786786218315229068094513501579360649794269942840285327867341897794539431534869849869595969426870809265532023101454722477551860162711074873848714596036202086893629535778703359417091241209125581185839172844916305272562293945801379587522428488012133743066960685164765188841360801078937997812790758021270440618422848805593429431983055324831494699073682180425788164799270674671165241594897642886812849616291402052550762142555270337730482660820581228928586984991559148526109100764582265630515166112171353218958049025748125752267835912974359742710866835054735196580555092572987154247960080885184734228507291473097971565095876913186686742651421186333579612963463917858681184078143533589765399854533159254373088024840486137478819111376941020936792016568850699754153098512198201366783790292009182246153867554850359560178940241955499550617807104533175148810310612272210233002780632045007480917232451542027819034486301273432838547140177811407513907380883488930282716564638112096835230411092792990275688444663696962630019440885869662603855258136106335374245944183175128783422118287161823978750259066984074153569786290911465743868430539392325866518841564289368655002854360506454623765857626133182667973667981866465789388648692908220814297673152310020879654831936473100004188681159685296374259216915708665826026493476376829294012283967667962213267242112118947567221889428293049894969920110793803131468072108622230461909608034059731993859702038611524596871355901812179543409235356874002959604845809553110221939750049447858351765019760664894564562934958201234132455850893516915799373797336259911806662272448190676076958361557031645810327620430404345113333382714441252700038706888474218184049157937972614854014042604239802345854659162641526209673256616424179897825435958150681702385686023703818627151109678167537105161444558056146897482844231402988366362143574558391114930992980670886302827805719558406753181688706831022971105620120852078839589993053337503766616177138756114740323359541124194159495390963976311139161816909335803707207633614710103109065826817693839665924782846781186817253706001966712943574347364343449016881594501827212736769585136419543458261495869929910797133574797002632540013141590158860819428880935479032930967945128320450233238997781135241539607268907718617188833355663794929480638729126201480358514422503297737987810028566284195838724776764278042299694581186911882499330507558256089451455802261632775917565921070454297039087481625035178032538541828877639694967555944379871319754974802090884585370867904517847477517321494909741521580652194221937270297812109615101146252551983646046744516849166981428891989155985583874427979513612899848100240974625967171039770927392279645409547667286910872553466992430937930159222516011656323888018800607729401088864401403523750806720041536262871390030974251665217324916632071824535094962569980617401502802794522538752382524254155699914219356359671930906653610643835675580163137258041327690929484511851295913431664290355242345126522773535004390316121628139600906819354938970381201350247278438410253678332849459300857024226759190068480543016365010208888303760352732046546725710507181835387920976714122976826070270856791553576394717684400152789075558560932598713523147581192966405664500944570627501417336084445612850586743643255122769614350686891929881945861488097074281391234032400821585540676679309118219809846169114735271426066071541385799480940518705929414672361433481607577099827044413037311354306053181779046729322077407928594129472214104442687709593827697970415078464180771857363739536323230536240194435507726515527927701956007063355354890517066259625316358792161478853849345597929956093779111592138698141619859490721952663239766555342410547219805611508556840482633245606818972994756654318153091720398303429609389801448917909222875722371745391068081440854717579593666585571250258603927526393578663709305878605560431496943218383687196192633049429654013980157736635156366775073725693544996499863646075327192010418611985626360425947518128098592452179295698729769325581460562218420017888697661482225227309996382645246280105231456024001427701073938421866280487727983085318434713020445001471163588234403072014214527007529357196085774736256042822220345476049565572623578606392103248477967736848173127490248100146299984837521631367890407043417382947990754393451505820544749632525939709048003554675027386004115640904156458988572740509321779814843461004971317354580749708590009138999607045125800703548816040646145423568597734969426484546366964503778557799689899338851496309886462178884842942619879035337124709493389764918545856439365128285093839563258484517573530512220552400536177331953049407418058506713833579260635695878856223037378238931720310444921161767171968889346907219618284106659582924459426214679806268586668654148115149411310985109269508396385509440972342447160783465504620821851790075464210156994005788425336793023224307815492265933710129071530685268310811881580355201514251191152273212396417247285338410356392315603049140728005490391231199480189078206804564279983064691242470179405374849234303971019090470708169456911087059895225990603734065288422099271592367196915232598497751424038276992241099775969117497432081958439372167712528247286284670059582986601504159825516327638798032555957606812593142678988610975268934593158611410205945476489906943792916284007051420218645947610589403000121309750995082292347592466697874855860128550265419174812584135226069342708523703239542940981894211631966857742859314719499444871057513031330875916923234226665496496497483822180340785252204287664667507695616169300359283001232768692424448331307140516200839880418006512229908679685161095323846001333964603278460663611418948938268642600815511383762377457625614942700901385294488140596188943663935283005897278770295584885863325266407215879628776161319246642772734467528624058295573651481631849773611807693941357579017563986631204975571773098005132340846493982522295184733896368604122699999149605607818534344177689162418861480635969967050975135155754631417562982814002705759808516293033628804962187251789364243515604055441504936671992312702078182068795587475538070918538920440148580840776800946573253830592066531068158655438802963315800572450142064526239092047629455506400435523584051110621958964223359384312793068161789412445606980885155210230125809557642252821131957902601227633751927919219634100195031259450120070073125991209186391238769137400969633345281073760227124647628585156789941559794982970970377377767113996789251407732762387806888549800453716167259587298900966234895172248583769178137056873622720051431680279238731486714002753647272070919006419557016188654632187449241186617362502279391146494379030926575237599775711207798017883749645134870622566266744737108693431297339220691678048494291891978128527775818455773462338109287424393699158808170419350897615255597801771170206820221713335733240636090201168143429481097284903121341623887129877858375593432327062851394748543420429270347005662630169308095458452402766018299901591594430215113638169322596647729431644881825564776896360149023708289507509180358952344501318572497243591372396294927506344707956208676521368051715168472164035981390670449869902078313669253433827881271042018341263299525298150699424963676531040694550986111978287997444162229862291748703600074547967868786451221842694582137876197116865041830139559051913115748781875405808793433905480963085054324815000112731135469566566727710322056852560028429606446459931833914416751379373817550692804128675217887686295548189090837158268731114859425959894213812464295646924037796104132127757232760347406811278827738448567227019131655814217409030691944361390719971941507706314428903255960069833290362097593625521839932574907630299543040646546994243275373396749754251705502476253594638783130179515767180607954561075225140551566902221947583781113356621239926904676247636042072477239217683236238613628321831928709431402535524278111678377076515337645907321358606652209315997868655553777374309652368680843284562225446597595444311080974045329901734813749488144194913448089470030708154730495729002247900253693831651626584337729401833673664277464785511519430361391163693362735892663402021553447550078794822091021478130506122047693977970351369475274017993799369894759303706719895913597771555238306284126218584924058445369045355520768408138243673802439824769327720747775004965554727658420615318785571391942851808359963173854628410036863580815707861724229158581800727258011081633696754958379827548488409860374565964903740619117181356436303413268301315331025770848312364242975749608082842264220233445457760771108849096541637588850124601599761770644672793357157053514002188025315720272286879373894630356232054925847072183085459452123713117589768814587400016032074380478291140329110511711290107637332915429989569310693065372965204571082004805178251367523634828192934444931619298521304716555671806149913314525499064740182000208189798585805933539325073861186924380562962052982457072972065012455182090741013131167474212242313643342555422291245789604948528762636174911048204614392146166447071394854829095827138582607296283703255828211943684918113474098658416023395515084232275744744723349477285409654387840652779495067262616218224855107850621588492501114296572358607398513867376963736741563091796489624879089036199551043447501202284196432252379913716703884485122264848948288658240366876337823229104267483139459666835373066265861423618543502466858170308313322456566803012698207536865579727872855956278478202177018399611845066267381997846916521980904280592853596579041211362706796592782210062775825328395680928441968173345178615954601470107811546631749167270790134291343813516484359123694496424799879116889081085414639833903080574772613043001313446303628462253216893484797692275788120965998731398761312862963103696879232240385172345520039758787977294797370917917581768763389863505855417440878785470530544149505690641393292836067606291989629794425860796342834084927794360209316534427293228372080825739904559609015497000828935795784768745671019642670237403862543900728048455691861815294478426737242619856662143965016957879152017847068977440874543600555801645176981481823519641289439926502192001909545774016194404581233951361415478753298327523673539743776870580641202321480633463306241384818827163341024127432681354860410317646749284388354170402026982909456371835692026291508078998764276417626795848432373208050113816482991406008784728445198883199120044840515121971029857059580686116536322027780390032067818359782429461951571226911125960111712613415913477519254286169453871048726609429353106978093373660437108281337624561675592811611089545530574375272728435798458832066986986493950995436352095682330962127788424939698926165416559818707114831048089915571746000106713545838450674848790889945770180092935150379704238475008379194296775013838273123446619701409904594108874795002701346575922469010917656023270322154511055414195600019496842179619824014665554391904243493748094679501141145212610113836945737983588729776795603125043546678056439176984297558450418933058694328931312630146410175600102171652481484030916903660133460348908765424628935513662812523683399465032614640183625968993658139879526488643884277722256936728967451067987609194311409162158978298489062306083034708085567192391746652415960906901612213508828233682550790698202747403173479405962525133827197364946628212767487456985145061540597494978496677245617925812406889446429968507289662390026651940759790928302339609042496632748379152537784015411686413220517440304047758031758020764095155306491960669060701678351387250883223358430352770422990147903084083886739863770100032418633292906496469207427919143340273711805119705217509487889265660337921374352135984281454610825541297958206028941699307711879696887140598017577309463524036582345595519335678169951301788301205583132352427346425909767325707642256663943487607357871081405824650280689125019871606439100678443159968073418158212493690886545100295800241285033790759342701097686587366986870185143243744936471117734995138825910231931546093442833906188985387820336999673175273761524973467366693047170303123678150878336062165528297742779494207633516160476448511649581854468730235257736706376042938031654084376860220838541377541499100414627121924189728795368519124186964202128423392295120173795613770819326047189853913999474061692097307700011728087745554925020847579186120783089481034236261728704736436867725221413303469493655627192079537352287203307343944273514339927333610341141303876506100105836832115125347315220969172350104877062503388160297674651645114083065030455487615918218120598648801021190871522332612201689967225670987806286964863969927335481307954289016008546320564043407509845700757200260945945392010909603767315841704115070492570650050933492266704458857896073804974150770494809239938991154994303746735507435496708671249849793203226433381869012551680888154532143573443839169421225471922007766854972568793213175339272312012535925571918397300165409048005678093417850099358652770804177038245531453818318361871074891129218899281129312513326641998914359347179969373584587644867831581816313430089585012384864199805103992324364691306977632509155173825096151282234707301728119367457922841534141068125632612261681226749452536007935388210586443778407158947674964982225876457200720587143665835572271853555032575140212967890316922160639570590584046975990696637600887645074105501884174503126750393152534963829817691235840935213593495580224812694466070341762878361920335147987632826357709716012076221741099102207122710282236394810601495374366225323642000836432775849882445669836198453820783134347331710721119206597203731904630969408336337990863123982679081498333279054581111613630974099861020167336937365268806637768759041021241562777702937008209766349794814677219398611226840972036832009771663842323474611566902721230464374428321807930948247319212931316945440437107311998225007458390961154299290886610681897567136338196709229054052700469421860376747741477596725045664898464201822456897863938639554353053388886171018073580277584840736986044127772431954895354785626871338124086086311011994601863483381677659200623456320200059450854809185792954152802105407408226211427149493958080201792904686399093920062691168776719569221214461097433079151024342344917581930992459006224149005716158005427293749980226508894074158285817893558003310935610276783967429075809882630299542103178492417403741257546981580136179092012917578909697568639244835073301705412726951172912689124901767421446087476045359832218763016485034407379836187419245041906860868053600434308088644846017527105683591661343769923561912528334554804590393491232847781929654489502753756046736479790258641177852704999978629598206513631244327719471258416085353197534435434178013442439301784534774137938372654719134801310548857436312263112934993439288805224830870508002688769231169198421182734224854297460518460815202817015548782716385419907492732391092521113001089229535463757064204106748519837714705290559723641782779992226710805793850155950307916243151958200063673188897670952679421466868095305952306878212803568881641826446242673133963383353529500230991139447430826917903167923521928039848014477984053348696073766054784320737500940843035590003218467742245931021081091157844734321800204438885521088599792361223762618298780227661153340176871125978701788523069815401245951864151803405782187123331357015262874724142990688640734942405064571642533496151132396459119632582491049238869683688184585500899437813328802494235764292052706544040860505236496595576154499268221122460471245509597905806752258968205552476715623940377991079827540267443422888763170125033849664004644467793011163859327674609309946548241494270233055187055797385910725250333043901627605909418234124322124889097637161976069978325499804941086520845722640927697027234007182709708045966629665602211190545464494189109475259843204055621589454606750146656480167371407478931620506355870268163338594118316261559040468672462149374390511277970528847373846384059357729202424228223007220267210123932745769680910130822155131117307085853130836374265705674481939762438506458997027053866671699148930527314036422297340271536819360522452475887926645910593769299904219574354248271461555616488187486542903154367382598829410943636939276889955944462781418148674763681123281481926756552211036350240643897537895537830772822959862329164269658927163570037242687465112438978982158816656930412686047788192756219716202730384900217189439041202578114708742862095808527547570728969744389909135007989081811891026932183735671450716453607176160955042761234290806920017148014826737148195178553937211856007051667857728561181499555858182491719603817343989689304330904077317232365401896834482871702961333828827083807214628802822148336056116826674475130666533396846453734647394490187310508363771682309277193891892297928009233818606286230055270194821333275298284463372995020010176164447264975899441001453110232827932688561224750559459395563138686251868198886649415918581415505265574489954472011785543791588319703116504030444856851979730591219871125260314414893614786062899899871879860166162736136438819097686194716975989394035828281850624994857779873294679290357208027591700220530866153513638348820272882407039026441118901114682354082536824542264595993188746736524784460760768703298474435207237173451115020799482222687410003565686588893982573090230940002428962686575767026736070419510957795612184175380751125981016289947694488474234629595973080579451876454402800374377133080832277220020033719727949226202866058623473522079617269038408211215234006957159204934922872385115449657759371181565569319610692592678860244869656150446758364925008947686424735424768307425915476300859977749596221587386671430071344223585729295295288614063694027231886928363174474307208878954428623453871197046663164490585375316261484560427866576726198347501463696430453077201987847932104158216745100606870010437702426382908080948549874002308151070336459621151962583493056163546388586848619355488614573488996755329988977160684951100758560044809674631652202083561184698199789554378098936655587185276949316127197761967387554285748248559599021895792533191892438409287452493438444200108708599351559779573492594270837915205755147971912000919107599186248512923396836790084992755574031141597902481972647262979668123395790927465249967377621989227678570429326749286634812615855671272329443737834543305884707933430333222240332583798909555375122384795695404184414448660141001290145425664333119582705527379464690324443758307446834925438519657610696454376548931177045715338940525690871097226076815623485387630055299580441789599256990744578107742749648069188702979496246487265262738718867403732872215991942057276656632332213818026144224928156396540477083700089615174996090511191846614061019306280306595376253333747812336301140280799965101023796035974606153341353244015186850129637076834287736297367379319137246382973300340239986113109057673276565615675661923601289334957872321985668610448567891710430363978836375315513738271482970757788404100997391631530559257403518012268640811222577510977156851644409911427915323517581128361391750938167516826359397852143121710166328755832298769230311250483462373581643315565733673888942014628639139785789626985763442036355856269206086994958822883651938034119192129447162902767045248902877072448497137594372913285819269070800258564827888912355012225381105303655552207330118949171900628440608231641787110712695232120643769274819487363527889047147707593577337819628233498862995560140847755481640749608570633208887282684237391282296759692663477230011870067326060915608049256276793481976142569309099044994374775188233006661074914317235066901496405319781378762277281484881719819124184216456891780937256110242029647436467380727323016843158456567009708152233904445214147474978910271212033974077784082765802680422036484631379034785153404183551441549434262474193499177896631016625331250357348893637741367400291686400320691400797243454838163363138759232659595606949216887925500395785696966427370377500414522746035381083722625007714539653500175719265225209388792166184008825624955878710591158709717045614902483553091323334167912064029241956984140162147148434169315484545672645227594511700779951012687451171246156573528880136911381522105920362901285134286193549741148176549685266753445173557485419165607828357948309488750090693545891182322059951541824270054272763963210825506359911555040203228256195867227124776481960088685509704413405938471184104780643626567463812368250596556722191490627999082446764658699979140237258043778832497783113486911367221077852020390857403774406165065280857289284058215141000170372497911309491957034326668197790202463715520778355979841322176282418315138571028348773817590450230363982507925601403812596475443851887153145630260190355358426844547399886193408486528322258732951304523906449449035179001990188946270453670071381102692077899116708433536924548036444166754336937863602046594607983974406922442047603249909888520951653800904434084650092088347406816575512875399142937889595245646731100374682300605262615772378559869026385961602694559850974463823060171985297046451113804976438847981437354525381409053848474103476944062828540942688448726899663340747019398107933634499146415375093491269762676787148207361727280898837004337651831681872656243274044073003357798033615821774325758324156165767443642471971369974464228089931098669722694488234338323109407957964419011585504426593391531668577891735007088470564660008208849092431874710812625535335930919273867880064876984568311422302700474007384737195217818684044593647433409226919849032478502071156505102647874817677295766857805967391021087900928184683226002313169539025965835267836677085641569040580686833025435930968602958034651084264768072265750727746758204627626755508274614959239524971792263682224048818450081349917975028270837948659539231144295604260486037903437155598946319282991571597436554008678245702532340063194034188147663541835702596490514068876346672381517681882665443442496504843940239388124867166655655465394047384960922628709286256461920933910941899000570030852700747481783509635542211064353068694658143957260952055212161756685367858927641497767669809726938749364232208242623540444213704171584139680995921380615501057824442264304151759692381925366503183797816468836194361765573949811051435018853778470212791912607731487297625376414408225305232460407260991273400244335354774525178488782113945489583943768572677675660806620000714356672246528149949527298787786935271949361974630539527773783689712986718101329446357007440783938694881200527039218727473129274262916334248583985392737517462444280620518968154817375979874919119855284390309675497510075687914186485119184054104156113802240894816035786258674018689404112440653213633458600955881195850802394896207026136998677994059902895063241211320634799995731036583584701280502972570651414981225771244034304049345657373443357583635745050966048441545522174646406613823136463769581509315107488228557938621623570293441171260121937798663052877194193270240078909440965197881673742442558807105042194940019348050474836127690093051338329223826812543298495147678060997549747388520223829636674028750174789984455222082725863684105158223685932868265744515812152986022364973999320911543457259706662986814353528120459003491942275920948510839684587190358036908174329820650424461696151772736458673017408435328859553810464208350671187094618396762196674101038321009368528391689781903991079035660649710313686757851197877808588673709008100926830513903501138534819737915453900491689304404419932148185983346079819961076939417779015756791407460369651379708129018402202422384928183457360916848511505217457482830742859188019591500925820550612524260382464715640829660760686723351987387569707331454289337090956504806783531050464352042436985288236537992495183469082011390640922515934137054043861439338277802059919665200152311075185450709463678709711975149180070828632081746436694606754497974557918779773844143714533882279218851411079269772419180227485752205351150481023193732458571495715736685757928483114326193730047384973156988900710130498947261878603605507598392276141790071759195509237700554727884648279701504983243535024408893128413114286777328090478298314800644971317095141657471232031079905335767807590583506556041108182862347569457407621069363041843660389642211491373213704856753547859498612991848252976071615402764839838189926789165172833163096968709819555995774704003570863937875915939179696883210466799759267459533333144647794608481573158003707038031737526203128474540221129933020770199072674787320714746995155239363539400753966815871529093490488795448065931038047327918709772195421744950053349672000531013577671998550312901743400745755816555011344255091772386342469771556384223515969327454257429546186460841350487338531567079473935112369459185739204994366468146053852363227227257812191455298779144988692926433954195692867595872885058213716941358615585622286553694858762558792721984787186181637307055802228374500524457888907582952220810646103972302509918621316077011687227924618947435486146974293445304813587942751729685704207881888554852620452501672064286057572650577544323087313027957977715863177401411731634893510104276590051266198610168426250578491990872207645694858306150715165091740950535055363690988237721384340890840453064501434936712944655019661816142959606922740821367367369278108137487892648486025295856178545620732362239162779025563172950598889262584111702097432994005471361977100154667548274593956714370926863529379301810542958406858701976250061844627222258552336703145882076214614619367406069250839803980390865709103459577092876912822701297796271258132002191550082524450424926411954101581598467320860711419801708415945725940102955090195010430888028061804226135127785736694838757478841322780952554888120446234960824055052262494399859702765696124429775990667989725964378005899664810097833711678190380651625663873562696670248691690279482119977187675931637147794823852230504701218390594406950691846344289526203065361326089203536999889022485882768544547165759543301944412107182803122777706135045917696106687510615550839510186760135427349275275248258080779383648604142394207981406754148914076469207640045157584385559274052375620778270149035946834547732262113739178090038456675081042011915608870098167471122560662740978477470157835827030323837838760909231482173513913856192700786239746998772031255011961892257334949948680519253630116438089336284900868698185737421926379220001990830819920866598556468788930080723701020543012704920061311171347759076654682917864148101250166502284444325189939129140468113496463423124895296287503531385834069508562532264346442242984470888213909435592014030159925077073837697779614267871628827494348424065342618892391560063063576163197743972992824389171078254706384750554237359378458513760141630888570216560347387636903104218650220470614647881666741829594460670573126044921016269930954199878080284982231352267264177359766692687205002823711136770691466943280782337464727543610178092508944315333134825585942525205932782425773585026264016549665476172150025157584026691882740759678333696424663528578909112922444608473599499732100982803710792851427882847980465779026237156128791288506315666665143418241368539665047941863076639990428255347453512848545270455829615893406360003475612361481520480017993519338767933387089671832946976822712466195954841735447653946534145118874697870057210586184599548726268306522059029726993457805983059358302605647364032973454208310601633511585465567343955392285950352203088654696708409018665080883830934802361030634470203150760051279071914819531184086386138844502740876647796350550232682486675732748831847909354567708992262221853978001743479864632937393891492524648832968911693054097499693473849821596034519656451306132781956322578787899598797414013799323598745352287426887453343769549062371046325958657484395091419462719361088929999167673582905026933066318051707195702448602559749816080484645346535428076495406653019758334467016729011318905388467310418597870812647995336365477791981384009202523305750670741441128625639820559701885491106039675126346814355649086847037478542932686144894319946733806126742979956609299680500335318939495926344944923236059447600727384979059127801467174056549788226857021361408624397595354842146689381912171283893077003576030724834605022004967710661657512088546722054831392607328693086584798455162070870285050263895127669201209953418266407137104168732183649430751359353955330821705003350503101556850327154887562076582251683079013198013017967120848410524418485796189669878431272718771399969041719276364440961938566699519484337654322085323756027698805473333086690817842116929912674777947816678178652174691173589745105192374429718314855314726736148445797890355678622163432150301370008502004622921487002946652504647449577301837786892196494643725729284534479191071009529250888214869184852717281088432156586420458109544899894797425176198079668977262570507778110790695436836165578458635292479873976028925432372164491503478228019542539451496057856324284890275041062093195620397695600173976498073642099220365670054967954030372293160000773766650551549081545840503625401964768753708308067539047391986039760194163316455342105432742401023763575424483037971373798406371914026352859611977747769764041423802170535344707305420336734359708759179829493547506322141317324420892607384390803840364287340468254102769032694076537089922898923741907036237909093556491088065170913220332108312074957376095411040713418280107783411330003663795313330190253265901806654688820737966065070166543093937241652409796782492119026489648026130361050923027466506224014306132087360803052599247391850295308124941805234465370141791972706653144917941867337287885665686888314010417148794281137313075926590798689545377537331522749302887336547650182921655191155747296138758910297939424460838366988391631948445413862069915725555709399369152360559522013086378110736041078305016910324450848119699438612507522226293424099916853363162131958652675753293410582036754197854046730430345390669205509594291763011196349774602481476117335196239964836723520604729254880522545240974265226581463232331553715761175625346996435995483169669991994638401561803833356630206986225363708413690660860556387199444336329822510257541644468097741202522284101904852303584224721910453529499551694907473416262237088507435805798209046707515036356874120666835570220868566493729987793266114273485273134514585483715284111345424840462878540626365295889500929435606785182218418031639216495318111448152577661587780645357783413369461228313639042783138952813349053072283611261487808901774317904503350316637342999685406129672335133644259851444931958030100612303009404037582624233129007291823939482401996940809401041135121756517464190252777628284823738885951174221040706134319304358909575054361606114647563491279347079559215685742595469605757674081112345827204960120748835136139253826313731614626509582915761730679404375188097792559181786646776632808809209096307690597873675949518719174176865256353588849810631636866908239999601861068261287281081739054799489157596085040573678767095937315671388049023468051659844962605922349408795663824826711043321283688220225925226738599283677018662763319990300306229212741590260277631021695116629219571784903192831772759450749417177551505934375195868398423047725965520819792430191106539421176943786485901594634436610484505517263731068811174026634869420714805787562119662116061085127019185860388801546290990384238651372296924479715555699114414864942797423361564826235203209022289665853078824415730284123161827315670554269085530648022113369330622642877920487573012589296259789860425852360037256927849104400545340566770223771757556610771848055593860477141665529777547849567108989526535586294682531794853910748263205293311984457308130997275319519276652717742507660704252846918125027737956448830903764181893039408141293243365041738276237943634428757136924876198760215154974697887412602097270754703828730593839958323227152865558349437506981715265745667588630141951142739083770827955633663664714774289857812769127275431773901817445803337303798974433456878614601629290972790657339434404600059587360631391620580503780173809471112604169940771613456295776324312388306825461540643547593269186568359980378059278557602249091687354227905965396944587662350324877495519822670790774179889445707713208386239421101843126081921410858264717730483118763908030316086108639166560159702128672612892507373841416739492450245686121157201101715788988970991257343305075593900300208283222543736739829033486083649467448588998047336013226810087392038587208468929347802245643352105100553075439159837937681887016516995182889333302695719277171279559398261406219059228620561292566841535887005207504507781003814973365823164129675807316297427686283120309266562074890116740431011608762248872415045587337947965935347787298475084098538423450961117095968513819428129830282582240885284787055766729325384138805744535895725877335201116306342977272044309650463959073837420376021492568069441375823065487236568590259049838537207506044550427605192827913620552555480507799567256105277680531261791436301380932626783767733749300668050307109105146321565155206927760151714180138190483346000215036851363156037557799144223511196167637262716108787512244953616291452237973705360538233741702349790788489224559519035780542471890718511266072821539608742806231097373895712077219555589851812777904543457385783018563954957208560713126371841542998345592441384082740416820773573966237035196655434072744988132147280962791448189718478516540043453212622262043228833029792405401261234714852457754119892271102357940532815039440821672583265905375128560996228459440247083195818982267003882433780444121127753226962064248956753928128989904085483178852107601612990640981379397320432343014357265365635589818380096060885207442754799411244313842947837612089562032299184087713497384111933684290534417013109154338246771295274063509788262047957558134856464617108240161305108683985465765572942870492601045010330891833690356714131279951157016560751097445783363421001032414450891118239145676641183260865256498747616435056957240473740424210032026151756619891580613810655290175717909724556969099105710734109306195452267892732321157395243511183349472553982867880109233377626091709593547422589776193985459102425489538619526545598074789008474970109499418737660034436906485972892425837182771461970868646764743142730937306630092762880312727178856977164703249398603441595176871474839837696123893264182759862065916483577743968629659042610632858184628690492054285247655370936421198604412676603842971297652092055533610171211790129952790667000131595098605971200491490557524216958846689881972649113198253348444627856763794736493566279024822584770741630286747475341812410303866994254025249789586660251929089001758237253866728882236270556963356176122408729866769657811122259800850763451457307867779249524677670930356964275173483796526720706674000588670334363653839863966666332721721426389823579250055118927547758744021516679748718323894266237426908621876944919641930039276771252284007201991192863648763163456791120705680978683704078134441394035186773411202806208921317469007353563685376588879413964934536648649932003155741356876923799895340565734268689629763759609598530715701638311613140305964860721470796792226282732071754231313584216488922575773803213151785128428709145648424660453792201928618916216111705339912107857665540089328158768278109276212494158297347510882764510906699506326841548807502865831509503382388819386316001406575168292530558437345968864802138392871016699886603551228796509551932165939266488808176121240901752157597110755927813668589835820179551080754180178862982662241350132692173864338241681364876815256249866038632975008308598390130264787104468917917874415777166707601190726632651423997091284729819496452289820761975281772124225431485504289672580209220871369511966577946662124397338378592420484777418034835117227760769784076982190197525293276007141455019958880697265968919020287680916606218974656969804997603171736457103315141414488778005488217800599426278877864634642138915592746513955370314305438926185254801327128268476423790294506454819505183601732660239984272086570026547621024812320206003570321928020555948455869139086598990644280639412913154631034735028598497877096965841445273892558975710620016784970697114102782965713641623418164706587650323270102772132798502769127254455065144183215541823199688417467631091215530410963834570897117852583287275389215828996189433668132534048545561516501794599634535280709394966633912960313192334530154589678907826440598180396733361463436142000896974831839518151886009233548808394166605213426235527493756384396141766701553391094925011658384602733719508853616198572411421939094726655536016978816579377799124147195087418621759714239393963729307844667423930995587076564297245311974996030115826610569747365825863984900475176573333562868522959404289123294230093544777882322744259964797171642464989254348454309237227940561979672977815416436478763658417626172125302688589423646737132513485887513472618538238875947518691321688091326082254239345106928714269912588784012236690825394508699791863756650661472491393802913999321903689701867792153540616398246502572178795053440548195479746358743384515608697841469223905144697761464624812301380797220634728264029779264486166061832004427282464946633434084912633827331354185575741507317442386340362952155592284149002110526492616034654519001360588093618890871043918811144790275879064677004811363799175448454094092657994812269303370958301903124860192066813890903562692464255954292434520656197801823885480607066624357217837806386369844348332638081532642214168636160497827380531146203348765340619159494356745176640516183088805419893063639836983167615982165293200946826919161423704511718153083711064805594911019059996019829719561277615705173661773531161828021340840378208622584910527397995386400655814805911245297725804037901469358820150934224029013974020967199527675164022993425291641997178553842526168238561147129799088944291259805435566705527881101409980848019505466837271566533745329640599502708242729365153207874444055254820145615987812480207830288408356003840954857939192787936312984628098837642703925936178784580751629055693949473946305009238528406553674484295473334787766285757033087610845795035607452891819964882271978289802773410166211938215952249780388529086860906656255977710460851958720940912109017662170097549632032818389687130175604283501530784951391266631532802942347808119006075227337577390857256314855516875309631231353822020558410497182352932233540343218889432154953305299083922076491611521660699517479195556806609277715875423914749443745847797787236832101998816697867883610077167828806096315697462096794149944610742192595058733569555989104131038378493332154170810974752685679274289898473545146626934916904812980566660609900290260033998511922754403427145445417333888694916129738788318226324994830586595470268033518416438585962087266557938188782288784414561265172909703903442963815432001704125526109915805139265195818478113614327638583997228713314615283855407608969533192579610102030785442248223200213064869719466473474101717079030811088546540729873839606545368219793944234643414902883032393698457558954833330087991722785151865713711961714185418223748176942096089929830305125804969568780632790193222572357657360036697853313975970457347407946416576356064546827423452975113855388019136070650447031153345837529570582092393865204566320739453523923423938751921668266662431498465319539105996820741855889872799090923549975518498556519537229064316480611671165808279306470836752829586173788502126066678999972196892785093983565150328961728196941918928744254418471390775454054448772487479431565321601503967847619403502939593716221069558747598429786761285573394114927043136730281471033433718888841260248821089025205355828531958146534459495501760163001976453270321093554193079400874639358744988590219320667468274245249737461840227830873074428853393608244587037806227892874127639502941700802080938618918308676956046390411863080956647404164896416318894264114597474441856302591301162309266590866890879884357219234088401973281714519503638110842071472576867626324462094633923493310405415358206433436011705251417242158449495871792203912195181334989527238700966492757978396876014102167386856062426845817821290337424574959470603002780191053681440955411886854506496550639440597591938958034737970258319403372217523082394317344347924687398750546752622654714483369505954727091605590806730930646330520028431136968073505980249442915648866690218860920675909568461165463024250141791025537149932494025556359289726501720391830736464647958161952778168957783504439285071105343224057053516780581753589388036610112085101801646833002751041785435678389395570703766798305751482932346580570068752964770960238849789097009744256340382790708157654973423652465336795295429172664714302146446847742576964243029533515425760369601850548018707618925823284413438767823806315614716637426090908683354336730793728152778255888424035432858151572222069408132411885194702762670359962012532934501350569306838610586436911909186989148980954134194609531188858645086748162919855341954285178787313913612819725610392256196838936222350473767457890335698468331788132018883937125599365557097310747002642733147361348499601914084932975059654971507837297350467480078970976590273060182217411266544491032545213016514340009440036236986986249158148319166049737022351460622882288173817678684732006186888811890109804083928723420000740951361498990942994275732127148685049260942771191337761637493657954937870879404850944712331450960101674815940957488032147134117450759232020180796088854778390253679151317279846073879588400034333033313038837442223649961716017387934112093893449405741719538135897285003599635729638836417464850013363212658464104742792788663850948163556896788331864471709727615891834460029835082621732574997978443449993766850424446562212226293931687849123788817988885474732660082886469172866629652804366422376181289714777580644200864719038455528876714377946400442436931490583069123001042555085077911082453101434916693489622749423009195167430820481939065929272194915013222824535209064802599865375040308918188917293635813766188488178343212543442521029790662850378373704514710691162476519139808224587518309237783446402086265005833216161729730943219102735933671491860748915571165989431136051479773570060086522845931522300332653346421017445549809048633509211333312778433677440694221944949984457543174964936091085463068031694185146069301377548132804577127078236221885267979000970832234054487112191831158012663283878830619342755854652331637662010553235080671871686315053607935238311727966231692964079019241656389628755831261181132546724662389314894103521510958930631947215709672838462277909863147546711786664030197980528242232664065279332010347207537302082521275630510999230006312692073203865211582759967288458471646137934576752399505246776508312842382183685278147148512566614467518637348432447998351539838236724597661793820138882488674210146082914809820558984387215269984081716980158177747991286763287538139362113023613623176567425332177655366915034160402860001214650804128443246956458156461809926277319296563887151377055829417762169987236372859384775243225014148400712961824404476240684018920900083006551735564156410779396136047341496572072180688671373221089882093572437725026465474861799634752751458753805650823163428864131067976378586330138292684034473672558460690857703257517792369241966916027726830014863630664104343335728433274755234858543545965398913981509400891128892734169193281327037241595984223862794388719926528040122786405727834629905709457640293067193212808841972686420219877751394956632587205666372698015888229252861021263705884592414042124750591476020976784418865971943075017492977428284249064861596739111109797991892251975054422437081672393746100691286777192806000184926342185193166883750342436866586781474474329495774010446365152585121524984968134860545953376447844881518914494940769000882351467780168464318253267743799985050115486754960109549376751240310611852594588365562724524076513567839092747281639243229643805288135920729897299949064651274234126454249903525826876696863292930347773927495394870572992703736225125385725038077768094109106361747678198187137134305375842049591670356206174752469449478752449159153520332075468662254780700349521909349828306238389260486232846785674274824245712888601786145264377788772875673601730270558649525867166088033970494932775689748641720316991776900354307108422365474851561320075289097851631691609642878544813576558956206335162882134029101045709992445335853505476700833357831614215662447879670697983504061795100403597842535140994287347648544172921038308746366440793325928311923091559952922570159572894020467242218473001502104512313442633065717379289073920429676302107690834027880184671137660068285621556429341607793660759512180275488069867514779297918663351061991665750212703596924058977406972763049365589105839803474661192092777348224466273989137978978041075594605500407086678841147756591633687522935548474467494658154317512449407852251045094803791363847203442277635817383973693889243846106118780695667819047791595956305053376503942200991189248040664648126711491962456706391688998218690629905003156949712363039187336730723333085043895536150811624203192045959603732366963400241173790193191058593015445198063501956239246267778967458018199761097061332370188728286370843885433946780448855115158596470124638704406267525569932275466191539709445832981941879011697069539327142207383391511073966789624094250850273179581548138047668411093951931363327240783702930195457991897132152749999147111333735463370436070966584855852502435085882295704617303860135698773546660874675951633353872479939114520857944874669118105955307131740383560831941749702748396743720479122590696092216053748707209733611997831146055651647357279891990315123102220583858829779866654776657380430036174818984484064255803736585346460758241273882758826707683772057596376608275710094998917134317944368878028529361032261325615300771078537416841850405932936912688251267471878323578656023358171819047403588965710166972977854523997749736198448682869009588460366153833036957864337934949743494852785771380238120134875002994285524431938421356838638024777496141010897319562225950656541419628424694713861411776911411900556944330662297671404480807126472204224922395286994697586951385397630796404641816535994920962290801149936580105378442140969510766989842783512451523955382738338667450797799476028307962627612750710934072421128515819339347177964283103432409325609215906025979252986476614847832759024335265314023500943912470953480033945568964089385435314003541814186521446913417357923237923083454387774952297234623715524046847686910658115014451168357568733170534078258020909928856173973915989982880478357897620763795970200549397839357163996139653755943088975056248754725042945353662966973614478856132396460911118401720294319963927100862404037665645919837517912948440084788694898145854006538452833933305401472120204903070646628283267054046150369676811564909747191350811940937816218929603050902150257397862235056388565137101784122406090784657615767350575467383901362691526656283918687332975559886853403250973604514791662813603841891137799048497362174477065139784870603162083126478453238483977236519080815628620595982634058607374491848163524984000381307862712509625924907338221498948207983347532738651930813451778587426756850464466209828385802150248293526949373245301851652848033228055158024797147271269618462093582741947074809324689506833698056739777636624909760356197220576166064253238054861684413795098986271468312210202976518392004342963556439907927031098757368308410184012417468888750054016488451959468440775323137474430648163254644128478943207493240325817804474323934464346647356696595629111902102499001606801973524566729805679781423603195382126957271032210259742881432966209831843592498505044731245473949123013048428803110625332257203247964251479206684542474106043000618376290809374488825850120974348326203910943454864685412107198138746765116054693345307830536230014840943383901827621591948870132305096379797455419105450753103287024087343567507316229891536973000068779047446602576610649108660795889233710234995970658107448770778011263985344850262497899691443834214763246616865072617293994942545155791461868249303451442834810828068034950020640038939248957183160853616304104571900276123991751227273103927308810812577697722334835384626786688621150149236266092047088957516724913640307626796029028463683048090032776160734217251110778463159147848906488211127863254843544472311637208657288424621556075598296738387787359361947123523458397399968626043715905734002983202703713874523459848929988175002511085549252284486491996832443307749502170355028400106594682326797613241735131766027683157016394210709329046714126672899518884149743587780279773283010684119683634975837629767626786295221227847892126136203008582927610275643464703460003955522191629359983815568453946661308208637669106566937042666658195096428859093379052989830307495547933562076518313303455688030348658948454313047944109349917131332766526468129893729310400221274309147158670643250475816573500662281640642947179163086185126045698384087518897567915531864307132296602405362671586109055630565790206137481612084451221145061736505164197956286068575487172047965965238103898903874358167906017634163791812383078136264812696765068672333873042302620717334182918674959025808155778299047523308095267008850784420298148891592808130872715284904956701588777373989902054035499152724072623192451693968203658042243293771591789188941990774226343665575157568091700450913942100619265929194783527329786011817456257714764744148363006581398609234098702501581853937788573000493765923583824002637323755222580339853762727996180707136689239625765584284107124740395689644435763510294966140444203594237550179688881166398550058329584756051175103973132137623474337543564022397002088234567877061602137436015121619393488084814891595109062718318919035705937014102010261136343163258627961376324755397557407453159297150988897572976105457401093671267347305501105941813928253061606369858565028977821642308185499537943598918837186467712055030180047624207045318906979819454039272998321163301740944035089889030440122670693785859334480179077704938871686346219328425901469026168555964246257849538111781283967435292663093038694642287928809362587398044861456745729310310433500876628119938492533649824963188905065764282957225984460899271054827326378778913520475909677136215425011824465103126708673309196073492979654293670088030016289214429535910359689639412477695790132539561664924186749539548757910528275702783679323520744424151233682114228386448641502535548758079833741951379164797274217555629142472918226735694909817654904428906152606803742561802247220675252993063266650277786918274797416770067948945853791799452199810620932659867806215226922274361592089795878686442187415159441630110423275805577828319557549665831200874777402655629188762163422022171926926532212514329343559592337030477095394144539792366057583457330187206819395398990009748147023439400176718240867178333826831633381864260972632403902381712734133924389783323091206646310917314852423581821484879348739936198876377136746457778669375760792914746675653720138922610251319628696830286934478858891179090277836758836777648070911757115730784076467105377414358982004553781614945355791685778223145829354690962567516302110224098910100733221248535359464979327861604450862202909422870336319682145377581057470485675824933552736397119350897056707706106860241401656194079438482049691468571180096529568331426684146405023616771611075926551262682493767039522082083335900528879913080566774595853914413447485684823997646018945597302894394574306631423243458483801967790178457322403309393753158612462865237901058383765863158916695994067611372793838865387889554183390216953199393801688725023427090236158035749741577836450429328818271792887259603455709477071670217233623394851091407925635740087870447377665973642609841810523816133413255127840624261549586529930724958911974303013474320821394317619953761737428038928452473807736353866622902952274602975730772433697725448512470750054236986853184717925216474783450966788726011288089134017278507543924222157081799125395048912180064920769158864918614339447970503246684355632216841365272179231310074932551983607947592733980628474609502709083302568113070732656697720315028250501212847586112620599266191774950799348978194798724636435440229126668362473694682182551971945788721108182180331959419788527254420616324408104945403229672417650858738595829560354168895861410223816846668245449500972731575486432071778788390948736329665992904611559919681458456887093453706146496885166862248985371357994064880393328488483314719028611825626284101504755128641776226893186647846272900116165925112492286588247042866820473210860617864557972839192375953787002625897819162369443648138899710011158988552505315230578499470337363267365683582694117720660896219962807195144029030667747924353024859784242275975371154908885120479469549738313456379392054572113620056974809915910413440917098812489622473131260394192345908374226968742681574206801230219601722702785854376161942430972807688929501437120775326492559859903250735408826786238605442878640536382023086605350703981942560619606819268157158112085946783098599492807894944444612688642101854020911123806323960113797646671513209762209129217248289243835286294824270813024996232414115879565003921138785152410715206252991458558752824295124899044877068642811078409968678240062334336846350779668529818134048002380217600661906691522666414194454112249288789030219645858666446884434422997334590255058333489813633988601786815335282472332014970624945442934167671107661929653271858758429328207411892986450547629287450631049226781506866843417977613231253671744930994688867416882452147557167069184222649899898444175010115640439235310975066810897523724054325213603455728274237237329381626788262264536129145942915340490048383557045595953084217628624545380472882907266697903069026376129009024664656019758319401538334210898323063181677818356656897523114012425835144379150373647017058356064978887799155904101739217012726417544123655656947340231116351478579701254346819858406748986750135217115500091609250547620872802689840641559630178968092803951051447456977931504926667682746471688852683161882969535190518446425295013197254503565893372146506292545357400869047752404952095666020454350154583222805979417323845417934306296661210065128847089954397351801619574023640933942697849115789598444937939480137855593048703769409762185669992877636282714797619664726637832164684848599387319811818426592316694488486968777951546169320376691266317735444172671312694582107881637368039411928462812198019100195463038175502186699806624584515127209308900723696485267115527274198489734923089313523032565917162015713996305937197293301642197653396540386089290684358993771808448576513786131509889430172106684854249092890956750670632531042478538162123671564235808218081541669049243082675073508288178969918667997478668430775479066072892462710586250733978352094669775092992815791857534936727197796640585071265856023151685779336496780561953966659038443820128073296079576125434309683735579437584441699946811946011507210071007177757404354330776798843110286367126694185736203387677923573056871688973801025644353487887015346246443936393341494692795240997833304865686708679882268331335530888632816783949468283777935845478299095764679116628037268988722664614869297681866598846825769207910675558586212368194265682248053220673316983588946238574630939377004504744655794210883238243834817259375699433058870354094078736701005311509237561457073286941245580171465529517729079973456112270131585547613176708055662814428145317719335715988279040485033175941482213675406585524517474407952207576163422497877093044154348629369556781664480487569469255874808862871307378609948000936337575867150493394175270985270401422849461877411448060498852610350695125811014668435665262787663755777519085808168356956674218631271963702132961241086899790010787018363863812969401825161205558135238348592861342326064042874521242204604140660520641022756484097591103381983276665100848703800851974229970962596999833557722234273484214476798189196842142884951660661060116677921953349724387391549735814816125496329094581592673816866810919496528678519465657332626532088287779053507823382252941523686487099800047238104833095927331594177179554624586830274965221619603933558636796983902283188039395136779437334815162596716171330337510757665125105112594117345723205371137764554334781376706063143795448121744195546848483681803255976441943457016298923157666525347791825182728246472260923364751726421160579599488581793856107856433121694766174653493944726342601934795840074012670080443551535370710588905803180646237901656564375326447567069418190287524330299130025178763402938882730241040624692541480369037721889491265156733191217656051458076994103420102164864637063413998962682851031418947460009054714648312735505343636636512007935832509845857434006654928070298601066388598936712183866372318880016323020207282918724968069160779165633418149806773817376264965419359894258427437828156277782953367327324031087575777105468521423165184250929480663526237258849783797398173744956037676671482401154553016168041459902089247466120374220882269490242826094657752112119583665798523826965597562054459797504890258144309124155092517837297299519637352708049172482293779349759738396416090238927271442954102833327386967079534565418370684071244144635836956400054600769740312138684078395168824289883902576458966710402187205041868134910841941196196568410329831620152597624032509377375258522562718208218581999328117611467522573765492344588593974686192333953266268844805022469103940891573994180795159153325603942781340249667709798018995482426216900775817912696142667926692823435444762903883829527946207922263647377488289529441105952291541044093133907254071231995052947931719976501435597035386861376770918734880053040057779722716769597635808345629020853007142129070067694924037095186565458337594139868704209565907279339941488579960903979545597879218176309737882515053217275439936493825453737966803379701959601183866784890331666849471525266543883198621735928069725967671649054983203936694555122583356085598684231434290727197496486915207649975694762425728264413761359929652900311476383854857920798512215191944861136740564381635069974344475200820516432261560341063003679624296977393705199627516499692934463362798370320255594137831292734081324695391557267570043642816100854021901625732254505060998364918162072788053395794140976878194129609328105128491244231506533508626432145788699006954680898189625601626345419570891843850472729800160702942961853849316537103073214191764799987325783106458383349128632231565480464242858327413005763632596557332486804211044244918535748709854050120886297248878331303848120110302277790004441531232457903343321576255037007231907773848190693959969631094535762165156450774726464781246461803864874149616187320262482134327909777895737912229328266736392200875827574880069531222667992547774827186542814726865505777553178233476894384659111541980324870318369808711644583533553653487299730903798005725488667417835283530247447303318858346206903177382233284421077936890700471844409819821411879525849039185083943127230941456125959995721717946363871493154146357809375352530179690364813124709559036324604592778101400926359080099637342702296198996386673192702041587054624481327279684621227964747501298272397578703903061542629472759317672187563263561109205444418710561895785411883859780882923857862042825265743718301456229151533865462247841388185134092837824381930181738673673119847090326218416658608792486146683954194092835921939231870711760823064565735942032909130105828031289569705408366311907641717099068783244817077464555893495458104381386335661043408443192590336194977202061098369153341182816960487425246101704573459636610058052512545972176666327985954923351993587644646548702033118297585668116744293462403076566151356681457784581986647760994707882114464489490728536372595070717808735097280414546811265043414806454485065003171224531487239507011183313074636775901251773345355351952331423769222775863297478889082767072588168185754241880435316256113422936753436716326045759990725785625993853799717636266852549859956876086374556856324597044613335045238732852898992704388460567926771452334922698431654891375975138862231331912693598566978063767644063664875016992671867745719877758278489914798891026690016805129700641618158328009059356781223158644225759929570684638668974042477045359695197079537878558275532577716719770395703348139239907573787611638159345076303718836986604802125406352343285983066970951209762477680607103325794712734414605675999801424291206512474463690496623770471164921507098255822421904561787708247698241730434707680552760136556727423331332022839078533976988195500527984744733021307101205051743620038206593998443955033566039475909328756942795823253172151469542377875383688655014588777053934482271259471817469054729420184801973443761631280276676788391805635127448151023500775219769275330930312878744277792954738478757086013355291119687449548872664816716954051764913475151193936160881564736185205899305935119749340590796252626376563465550863923450366603928115461684139801698170755034853760028282450951358358036514448084621581009218885180629507473948424357955839369864244690556623449919252443078336841605386613844978556063808667608099615321912191503881281265372269117367343987321397839389538254782623997606250120770879479439285537292551735404488745136186764573391332421040088436749544288497428204745145670567446277008799448444221325670576716646584236280364529402505953150652801762668903701346232140253377752877178268736463445739753021825064924756513090379262268698770216936449528387876167323879528329971569284375283559563064087469613040604028437664990989247846614443653523034123204122704138841130139384294265310949934980621518754327330165937218014691402293966007197334844867240626533437931442228049197968382788182370487293459668605501101848255539548286836171084826054017596930249435128666176207153288360214929995196795655882631984524039390472165200639605935841056665627741541825059538417685693922755059813439346474568871061390834967980028038658964520399120571229375392744578481407591170101072288776225427315274830637157991951686432271124607552180841795879922729905227828571467653601237931654296628047431020775339760346825160256096682580285433521536346161945241931100006523291551742916460723115507456435708119125135506972747457418152750428445701845216760452022653224716508037054514548048051905790808147068139372275139104532486847784838743606077835621106843684917103990794557082287171692951710000605689068550430238332979972946256493444585300331588530111593428481725163874660381728534851177773308651881216213078802984673187238810034087051100953357372680254218821098234388216163393727258282723625990761171572043590907232197229427054369352913845483416389139874421951969797447274667687829311677579361370584304996962016062257087683202328962918311526326327096288403014444112762747656236836782187318245363222388204245744835155001863251198583704873288572098975568854975696035326914104171014745319973015903545801973281767931794403863297859563951328088335580625697239858905218692005696073379862091044573290069280057835308665554097143332773476700704659364728324500144048793940918070069306764241893450246552743439576908320556247578907389697431558755360723087294297330274428791390998581273971862456829652546354673254841964684846978376379081958401267121834818044787953916925717024428825449959257863373120480693682707223352651359436723975320028841778674313275300448681555465507234408499346943258928744635642121002646569005039054766196250917434950838120016642941090674978684785825992468898795491382958146588977484542372900121303168014377759904404471606808111676787608316787874679316396269587876759381778324515853731264524861209292705885549503887816178819357598811071051221895471319823926338310120739659669745086395631243281811978410832655719335310570676941580696529396830474039769734144242918620049217804760042893011454481657005548634879853306223251663151680117630394301588010522915873031650576876494795529520875677484796878999228622050884924735334284973362373468635819200331624892138281253779261296404938117756942523018977531742851111022508765386392685824545271282737326447308573045301236286533327858102314326021161692316629519358517763659316437248021738074088067027649037927605912912398213768280543302137159568636700023386554796148791080380316303499378342803212447383815043573667140492693217406860817492969566039571504387616306516081008295033714976407922131913532125396011136888696930884001447252042333530650989840621373696311373646363077498873477578567058364990098074445480480722872902793129108322840745698538507743135602155096294867207896283185257123943466517135747372971431831648333744730508608102606609389556731534991038855485894597450380201687594660180423014578963499971702179658470525198225418243698202474739021467308150395468863405486800714708918696389579879924493621477120126138920993879876130595855852496869523815310838431624246058375786523608567091986995890965252745953340214731881535186549936939016648010598363233949766935160839220930563990045567147320440080627954974429033642036760287877122973968734111393629850774752585414428966821874432756580944549418740916117614996553041154821015231254365734291210246286673960489954594816446210850888025108752821288703947080465035497836013703537814336504736429016320968210066476943381296442637829306351672448621336284215431377236292467655453702042435405941158337683494638260403005995005677015488810797108003384544829956126558156285124396865860315405875472989466979172906358847272117345256379553493530403463500650745269630681031581715638675847888228076579925602221915183723901348464665974120883336806672338503887974066887644490274306417314871850520773146037216875683944784258804935771448669687232770242997393732638436206561069760339868732022064147447419948879559294920771982792191502394089096421866539455968374195816180400744748899773918768052404724768838446633763770506772038422994870802315537727338067229521666978957473909118504493581389323594719990784044101140042735189641752258374643427103673934329058808788685412065071223735418743135771911889410578924837115591578734452315485872888527230419079103418673109642231028127891597560421887428903688072343878709228504158526645369811428217558303193508965525079174128192126747364867804315388904962907388404166272066386230876647205107530525162779497927326243400891174285457592359684461616078135847141499109242683803796977613104122211767592067263546650578899356258676060786162415540111996145673026656254225733151987796610587433757352229453055366574491611625115472590573845127036703594767265008220830334034020702530021639983915320194568263466571440921239184885037688477123071608401437548863269273003467559571151316397523749540925726616703337001853283396882028814211032641903558808857412372276817677270536801904567655055002026296253674466942591411918520383751319385618773914022329502442421127073698205522838260341498692564556079160677231859056735418814802041507107114111116784649147365193415409611353690346356558830775369414306169022205174268125893968476460691824837507300351545033353257706654014331832074361606876085761847827728260750239692452094898822784530048745703752419580485500992114265486017467263931088980778332855249297942194826444119652310636284444285329381835649133852725224680142295256024690438702964660672818140522284358407568330996959697669401256159340497600736967608331224471188315898886254603341223773594198796381018242549375679408211608779144823708617491324532410193535146287377089165798747876306487598518730936696080989755395665087289618005623585419625390719441733489691248449181002138135307904074841420301585788915924425260662575860672222249539305892899579229005449485824548779512306212417369331813144926347137164795256072458531449068714318637038683057704857408871126002129295163303206776444124527632450506694543488986302877863026226132867352869627931131897554223957721003106101999716317476359741044781543157900797879645155350428460229959921235932190238704137487422759115156501908061897333666295078504685944191228480397853010835522184354457601564802085191172843911757519185139801562080348648689221358501783079482076428684557268906039951173773872408427054938223508015623347718139628159722484077186082518384196666122028115469273529610234128342847332236438096188318567701165095289540361639236179309677376932230684397761854822332900958703071258184060387583886120731622651289076660550960237723887623175006778989342968282318916637173806218404218551974087544749963251986246282952980715097926960407612169383292544370576351896231574284147706445626936284881264911976460007321629247654945367783737694993099335236911507587977580132030874786722361814469219500517071337135649562076362558218788627967924742987429941596979960475648453065652625459347350287070269341383702320622856136824953470684244088282144525392360727817901496679093707881896701847198809564355820678693219128884969323820675052809298418460301821719814363333190648160115960955888433310985624452252271821437301689105177045556443431656339609008906823104282630967668048446870957435349860237036128121483548428354509643678037666777267906444105863597643511805933570171005208978059956739815056141449393944325112820317967640570955132559867189546483051175501788216655265488914399360810381751298135934733715402199466764523151915401842978847141783819868473696250372304131833254065826285256811168589449245042381308030477399967173462375319542521435163778847510545567518177751971384809588963141291859850346042501370605895337816485395262662389989047718325165460912530349752294809156650487836247246639350565041849632174233128159532836135980924665949336653014663510020682666042138181504481561578205785402224068647613617810809620563247890448032082117879299407974924072958977860550652412693866700176479662168550759951144865480198753571505770347572398791148900031459951536386628352752462808324607105340713747633934821302865701899905323068030721160025244324820665645223853179951015164223430919774959973690573218152615942957595987508631820719910183343314093538968380440798412334201079113150996387863146993280725045201114450369519492909104811067546165548926369702798758039664984955562455502651196014462005298047923567268034244213891670671472283987393061292132226058195197939091512271165776062558918321579858444561605521605613060029997879079602360363835501489937579178661947672534943090142992458647386909921360084014711285933290375438612967450092373072801663625381138496281710255142512346778523937064132240893390635889004029913301248794906017906278971245399037503755972706772047274468629823205788634675461910555356522033057482415929116070181404528308046080908139939027789724517951441443053159737947200957739107841884134080058038912151078487605864999437241900616428865705005533635863253307304531405616027158227958508343565548214520234240214340463903734203769788940709412491244907457716878257541351392334803782626428580988777853563552057965619640161148881039863956017824614287839627537868432454802383724846782108224090340238460021044734046778353193006082212046109638816738546556034194910137279825606133276551817269550383169242001474207032398640197357509111957856097573505743540590118463552966588387229532092559753401363061443687202988837313454279465388890212930078299178702844103541658208124805982122447682577147569361419766525671781762598634734115710530312859695786750879357876818150550225198660134065085299522690530940059299135934911604269811035491039472621359442238383903457577958302150830992787640933071671166845648387781930052925110805782706939406282573722103533467239974428003403854632331006129451598552435623890326428922458616599216594820947759904138697278481062295420479964610253564954075794124488788967879060861160394185990658197570921100081576459858802508859601418177857907674063417695533403477498235941200708749450604430569408713532992497090646882956125553383483153264359808275066594834689951374764064692729724998166885095286855208361762191066735318230437905529376792341796348244848290813046136655338281817555738568474978091548556498375627313818380673579457650134229499642926224711328849507911269059929056005098336848298842767166777943722313473260430323369544484178204219445531686951937962124898441015114042733696780115055827987087753067911131512010376826540814950322649728944347755862904649128510370410364816344662601874099671626510349475939499937321354014228135701573266785024557122542743753328422157678566056669227276962254922432398253549912020253650921505314368788837838964107423131001236716558816976827354439564661128054280777419258081427027297942379798474541335469383303577485034316043984282386912508994405511091472133974130545030480531150686229759300837189178054257020201973498235458071331586728929076495826991602449766916089785202518496912612022021586779782943570375160764135804283687050049620524055994840460996682344235060441537040203562289234514283774135204284855924407380591916349114195757298101956799798303623434492266789812839006194009384533787468912857001189223187321470042056613461442569332376835945882051128172846931737414266719350757356145521873776499589372786977269167632986599863439024286096811947401859175902875334212384338751100795495468054144859904983459942531129120889901882983213693064685678922463248826366232060411297012810624369390086770198123915256941396521126563565950642690901072703878131068263215165783482132752231256513570198768391099067606521231793542880957969077514872193888920520316865397670378887401848394216248135820955770451670686614889782974711644301945340019279639650223841930599436024553999354604998027264775849159827692645854823055802661003204047940014654690223654930518744845808911594086444162157511833208959928971256501875597926449986159827104347822088616801064833003296512793399186145050347390367179244478023964832479005976640794451697313033128135175965105601985316363979088757858426090799094454914151656247207115600255818161858518206944408092050298343290369658694808120953443094308763431503895667298803499973981083568074112186887933200751367312533566717810409981899573561999047460351456880437217840101681496401357521234970716996196729502739587358644010012775726388658177177860163336195149854598042648706698154392482239452076727322133015411858277258237968415124468479800866937976632206877747719591787878233012749347082719031090557056224314474184755282558649968413307676198796191718550605543498617256782194750388853815115843886870219840857296523489989727417701599138076817434986814472893547559681539487889721550933905973228716600540221279613311613585764159457714140839570042585981838129250114180567412995295544377666554272825733554514507032822498096644935652545260894287162409377058751396949321278569652748372169382036251214925326075186236490464123617655519105530418597446069835502685669562081089071920891507084576261290195041202561667956318500538336585271034621230667444262183613976206178179554232502475399420122848303519622056314353843149696836092194708815971469811084372589296614186458957370498032299417201505482593079967898416632174713983381049709597503000141753524058837263987802575662858676442330659656481374590029180026804608599116213159272537397225187963789472119727579980286689741934914303604473999395471384311961923695851586385434524520358905645854564108256384864726680081324368751216411932959070432875809915472066053244171353765541746159650476506912347788564354768644020816691166572637819010684894455815935148985430634135739870892163753733983363493085699298752097772417207224065515812519594266718448669916779506225437748068779909304832241459103036315921804667895357232400563680852269562764908922836360338139087034295888553920385275979639736347031343734249267149753629403978466484455628717075439179391272782678044698837159182604033302832484313769018567851380383032448032089610366812105403903561191363054718014194098573909172071512528297566631008656175648145353269869333767009908019246040262542654627173368801693922388820939858244137783374005619743382629740199927988494732707422038249345313039726954716442453585754636531406255336568962954201801354739654776565351564571221618212385560690933701514772639043226897330390890841576913169444451334301121151157911663288585222943202786385050304291435027430492724202285735184496628290059860884847604770672455034020572868519720858083265151794439329520648679156164151232862986576344214193111112776715772887504296042028439783472597935120506667945782401644043094569969870058685674870618318138813254110718181406288889418060123273815086192980209967393030616950150671682401799235412241378502090910709772249314536645639456200892985170687557261745937409161681491388902194604967347805017462313886156638600743918394771058585583058422823850551255811830942206937888635228415476630787601976352509315923245764087313253939648478752889357181467300726161902460476141211749985650449612897921711296827870204519912088823028574833126809688097602565320410961127842742555273279219187972355490804177175505242586174493931444327015416889169240847854092003112728126645084461851635896284475122849700828514454746205576743681254728318865118682746878568937256770658715345313967602407814499554967095726790216989166722947860147359373317866122571919153437570124431314603247969950572216090818665642717867935928798902012021571804813474583143001196305717459351470232326203591997690354395458601256181767725064349504197676948834355743238262752435862534809042042206773540991735998487909159127849677752646413913503490686715851686349432687135583752011552680591631655553254477043784098554738165966849715894701513567611937775030980941195798907968841986182240413927244453971167254941338578081966935576404714979430203880104425202350009020012310871499882287486470214745205369452169797199120566169212014443704341517148639282166593945365116904196967186979755902489172106865710312917069301054905890624183227934256720422422161382990635686318540152424749730251996287874030739581240645189994839012102026555948429179608893138074593768879359401762151829353768726232617680359050122617001235427362907907211704179289292631021828236968199833386349414669972069393914315220294918382426726113244148400513273432635651688598558087226016992273821227416324435323924937834554760467554088222606820495494686880373107986498883174744842894413363179946681723559202619527723357417529139518505880356190156454097036471866884888759777664226323083601939241298246304208882875733217658644932271443177360020260781729240379531353801188998148705914999201910300185692524159507044774854625177833158450079016251389081849036054835425958663769294746439644515127716854221098423029254004212689456380679582862144904532931652451553525176958182924626812384722211536608496168983987672141867163999012749038409848213772179619983273334413055792568181174452987748456817090846108407383081925163098844074246136427020630302564848238222897375644437672578873098335947360941542859560827146148862980930749363464298854569415694175376953207576791109424048433184674550372079101299912802817579575878486697349542589252368853835649131060617109071182939535583352143460139655335607139942510979631403718119946991018700510372823918798259896168930449532397224833968765961714952902413198415463535121194959994397971829792974029168758787367008963257495610378138391923145464822612594374100157432149598542911094831141617625233186759726842864196482513345648451916918510364160161972860443957088980438377147314730987812226582218439227227467308213275063717554122868660192277372932780224965275857370885794042594423852613127496022484673009741230038602005880228246754908851126460361746550897804484143010314668728233119014691441231964042570588125045209827592056778359819754711667990380120292501204380430773364949810621517253262299334758367331351741642962714419043707065448914746674019089635960535906317809499713977612911039578893848103809317510816538634188772445853831163180986847862779883260515035470326337175652902445748854937744666204334455480539486191028104613696491358223113764289446018947978743870959965217355004524724190891889915303480944130179440160286004960304655790466414409837665925935360562499844556346598276083159096991217484800912722051742773117783457720252408802463396905268727435193033553880040698620734034795286232377643423914351185785842839786011293066641569645668211023682701090492136874805068525165305324986253232566424891607672345230070298646252037943608747074910429667466457300840775208922339861611122359659252746502618606610848143024438643278307830101205590556489116132460072337629374156327390818729602608905920229646093760161657444467481270617893094324475004933269102864552642745826267163889763500602536422622636792997389462003683595922132878108675444256162943855784489374716276761493782861029315675637528587143480729910201603879635007486272639881219965740706481997621675526391459258755252846136946090267318924889503104330170661934144655455080528021879022671927841957825965097291738833576992321702121499747258913078454288625529847685323337507187688815112733653742656896477048546929534052948414279576712795876382024561127370174053812997146954872779833657134783211054377013165295366965165645494923039576554928718089207971920019591229459969679882123954277650351916542706300340629524749297739834310179356528749174626286948344005859336651959260798300411253062955484931300833111218876997858593258453916870787085073935563491505388449374776969523196985580448588465861707677542814582587832085379917557226931095656704620930334614647373098747021797961409296892279018818322661920085092395730173170107397224252218602120985788850834974629137838484910172311932575277910685599658037627016464604034149920374865367043655477337706275634603772425020084347092028157230333195331959153419221622140803757598265408016340805783246094811103671488034365121222739820051234579817612619056050491498577798213293663786454005434095761859895476660803889048437865454456145368898865654939832641600980329472537961781077949732251429161406221621514430262643562473309090736421410658309983479337460151754755454465667519649923510848516817403431465973908276536088456241768916354508240532492298172982475439443098985256865331248393964194699259673884941244167710461626155800288677776109529771877628765810975034532435837099672564265242598360345330807961272225874412797227106816125139665583188635650413010335841082561179135085348608772204543479616176986203401955062603253582977066028669283918655060586045730598507164095438628300132603017161406416673540374758168412643309530228330032948176260892181332162095324710684440904586484690989103538237006258329594294389697276252363559847036414254002587120508291867944076193363551076186301792006100880676683482978125670526109557898043985216495503660058563989704115279937517847896514636445710848799223556135082783190853779661328611756792650202555562167436160041693784813167337214753055427857027325365741432724188501498221184268027711602820066350781640694646034137160812839096180230543204214568570559988435161505935254886330873121354725680459723561928824057534418332494354967862716276679118998852662699828366228806553113864336986449768241735469196717826404771705828057206295142511682469836411315634344971533156162106080236855699744854397613443008609947344822724048615685550855872963457403541046949142272284335104504822475895466117925140428007680652672004154195781842143015572700626210470296378575424544967711608791675867350128426593281348991425340484327300984933977845843754021422459405193288112082176513652810012173695487989340859692577055247009435478422881540239509434784119360023120786822509539629003557407412866342415769798893269441644760360160057160709157819708995564862764570265034015354502965336035436209510787908967730960653205312197903359900314325762864390153591212483109138558046236217128880822859298314192048856346696986409630654082795628085848607526313489893537334500528457216830529055855252989357293961338747007245100029281196287170236024192838105867665579707920487502116696595160619634221761971940946867694251793193296150278735148370437245820473466140670059705163171750936220861828316574744409272288745058204241249940494294727832285328605088357037131161000289365709010996073979354428677874604578218745082361133529250764152500978092836971923519344743818787634092477571437483640009084795111807183724223996983179315012868393882480141760352233513066317388360171140487363735810341666758147858747386051922976634676988215201724825509274567644443813885023763690657098438956710521050875807937229390912726730721150513181571826951324579841337143095746406370460862115564130991863954248789574476165491130992401522963673460674173478668604946487937947864460131679367025307680333955483027908991237234180995831384883225309103341618368257597641805249171066998531600330275322739032192036571510677430157244964871527226354655001573499774488753366682016453066516243175268423134413686909973217771116733521002825144148148153104863010687013358114635385199928300794057742380195550365159558874690850558262885395763932152726480736076324824025633675849089572430731585471072459084516542442377390751265793907243787872750789103552808448698357150409759822030855496657238371650778364396571275164428967237226550496524746973253498097494032250777028660116682021346299933280944460949725508664365498699676051332797569313389225813526881512419900456066045203026564998183606045028153256454673880113816465022214623738652460745784158857824836213771977232318483259615297766603438003435804653937064967529761254368288838738177775702332870638264283836549259143952011316491435024176348302144971376226036846386529584048861182321454834148409537957825855333924382695272294361725085847654846486778365968233374043857963522837205657066388011074014731187914034293924464192819456643234982393220774576298238315607679386605008450440525772160487288925668651710715696587548298323790384740870958969855592139634959854594253164793174562525559410279372422280185777637787146378948414329622989266704746710972356191402458398851315783481784918738432922740431530022299455128764053882006688764176455052208522115983462651138288452083647410350507242447804566477108842476703770193958591259888610809107312485743434370700063917998828366451592943871510098266425359877528559549258127853344389905543697323263536730527985619101557613565773697762443199201758739196293158006129791118522539163523127920932107805510483764085390194621806378394885745095993987836615697273666318065121503120276197085755542996382218579914137834770194234827418560883526483789455860490990552991591038941450013490116092116498891862199113086767103679664062478173908516527025136194727074707030855736079928256606498171694549735882266362589685192122588651686403041385280787825146172044203367297779358828134687027145012059660635488910402501328900734444149232971234311640809569706375608584478686454216838481075681349020808348685507912589267690125141737869318096000500931363756685908946228645796629612931683000804103270886340469994079952662715050616302067802700334266969323953588483063182881523731852558128264290675801878050118164580813288427002273204084762613493466227652301057844266129888371529149832263684853152419242180862442586400019742468804783812374082207205338863343067284774104732403858195984596596236219947959812136012970063367771957838673874158291101753447499652548696450167762989297291313887209844510848286278735483729008221366436214893295569270510812635546553199711322498058934193269827619153615862979820167414627857236141932823926020163516926762162160983101895894760469167153528048871671066106644178425406645325143165033805894190451278131800667285593661454828932770998696589825068242596696711460271880582036837890597769751191145189521040547577525569902273666384825495312832559755944719347903310839721610610496373767425656117798487131461640706609717327884807592969936190098241096200456480440951292155255484100296101970798839366627337779155624589111971654912568908096651186589723232886087128613464306506849349288364808489283458898733182857895591268291304175578518951740387151301951048692110442865182738603375052658330584528763425169487551858574110978739532687067428478614904075924755187236003268644912316148388630455650727888213757291554250874999469304710844357821500592506242486258200936744475768818049779931347058398066769293363253794731274555053569653373313837721677993936051601320981181302876220792542839627821874333424981108582614226405257522587803113206231331672499510460925335702566628314913507985682259713299439220819939798783605670452435941675104957323913650030996659311010819986729844593528574820846333885779376355235882824030271172975175597975800423600874932687757581497960510258579524234082669177298247438969836715573477806908981135142283141369881744818512688727242280252306053354255857591529906017340341888176219092077025209312708024224638906769584686187093475734441957309300029859790502958065366129678645524863802856453954113732574978184591170791736058955892472440553501583216337450228280267885750692711092464545652315631822568648649112231288527011786750916902093840237085292583684414436034041292429441498855374567371063943495186738939873810739953181633877155163567586736759376756483940900444804273318916157001811625773122432650535843787451684217172144124915575927417177009918273495474396879333876788141632181869921154348458252788004107511730778828373167307048471213197637967406370179660076818885995332240441509235986229770266315716541723899587663922052783859687739974907536271481662025180864290762171008993134446174765282919936186808046256138685516889423540553610687213954572823445879922978369545193988892721736812107637408577105492162517921469856976856541747494893780668965898038766421050618389477052410289574817595573591607965141689435401717160916222330597627713461775657969093544893372798628861032178620796024640238770169594545397442585908073741387864244350519815956654780803531313198717251039374761653159202610576990214724464670234771807224237513873511552173272068771381548915635818468647785997088504642228460888674848476917755176297190438146365033343515075019462136894230434884596932916303659065648722429793685704591090724976377631594977321880862456618711520099652439872508884574470940243452624649615900351175361844326443610747679788222468210012405951166218262091322163951540126339295737055814530412837082567517960062363363586991652587776851567002756898787202723699319457131457966516197617383025408191544173832425095737829179658579541737629976312711110243996037625533386101983433493619291258996137671476871963464633322898993948480436073977773624450179982134185202114654003982727619125423269649654370115869061191510932542538856112006661595432919847866349151100945969483695856333848035607306462749404011205001656448439325674342653903873821023370955915236652517771869390920080886705638745767817597589943584564177071069421213431581517409675150061123468947689307411335261459406887926955923120147712656850768040984882564229110232098292294977209364540266397350438372446673685378179214757924430286932442303235606260274272473810451236691266342332573365663249835289617771961210411930725515669439870884414182177670531547647907526892732905546030576717539974698306753859474029851610077951449319707933632669740882811197220626305281169913135126592398626811525013728529100911421071541275193002369646280188609657779225274575278694167301797653591005655741189093524907448843215969911252087067592091154768027455717949891679859274584386204532218307550160918220740528320914656831958043945745029026798186687078391478175376745774262664765199252790419119880476493637017557885887170713538167970382495331097033103926425182797413905586479904519137327887141380265897163451385581438546708341278134984911602195946622712105276550203068985392882464555302920046728356456874694352788844874710820772703256289747144634128360390541702299092931416187358765348434642831446721145386759362901591036911454079347502975270173346958277136854355066058211912515942502407752363851853619415172007989535979433575289986297497525504754977812508919436042940656179760904092863602094087030723703444715885724656206403327757358882660189377378787012137037865008607801734835810086264795945528862405427838518910224454982282490493201369186970325000506720438768353580050901859387300674762440417135683266457106033734370267721082450774195545137294653336981865451730616527874337051943216339522656475381174262061318462907006337275564206124870985681835572512990104570316341815628883658220217075149068368301628256321169295927832927914888002234096398680837921455070138438037566182682976793155578707699678096222659530809860696972208581267731952531199454289974466546087343994684350814412543262283180664005621472437172205793966174787473716026896082812350050632876115056145087639063762415129189132215838379620776997170132065648846190330856444353776779538581303221678242875979544505989477565510238781007233409749139031701790930128617885424284831556878512475106457630874461511271428178570969668198126252107542545944058580601962619385377282432431418858045836730463433419033427297892179305357386589569021135707965845891809532380103662654062900602280526436723431334144374228080320553254811857838732929643219814369237844139567369194753041248203117227556868405800986728416344000608415701658332748198163014157115208465474441377315597516486987901349104817328777209641089642910569457368970176793833412423010345980332803627250319916070407324504053663615888064559546304196467139392814598334814333535790135250925556414637923465000136934542566523658736550650052367823225499901071245245550186172690845837982297539730845399777621130260313990553510042278557621531591753685437537419718890190346427255808337739948243994838187102297221650273944213136672037004683119509614583354343328139351752153741008677163770325543016509572900675614592418556794885171007917832468295329096920198090867247348925474868299298742593785685710887439688604779363837301335832289275811230883166668176452531408757859447840364441749493793307691992961481045760288680822566424021623030741173197233398071839389013384867991937082711859416667867643749372016348046669343728682508315303195285102095688942766899843459532234646670021536137188714012660757778634837852808432935286046865051727929411926732592926730544806748357450783911628952932644861765534294919727774442665576823458763396869825518619414897694450790439482960255533397345085389581864925603803811514713076096814897032810980937698883367521676794711864310403305499177289703337045872180640410870867656208073950854556429821780727830308209093168209933415908635864811355443797171079772432628869601557715727487703347841352344039601484327372062882702709801825230992281751388021192850666561862018324183955142162524997009249508832153602620822479610068105263611696764532303912034637281286546841158703109558886760467381012247079613274032510776900559130120275668823447845614830907631399629619265837953517189022781499524772327555735026471573240502833636019131390811676975605419194326796164541227701073271754909850475439916235569709623504339661512378172649759054297400416109060006672785565278343630131564206408401481084584293429828220514726901063632090386128386604148237774213691028137578674477734754221460936913778765037974286633801300662467228809409095653933529847853781269978160970863074165722968147142810163544029788558446187987092377308869269762473990689572860361047165167432397154138716388968389525110610137279809680276388570611609974806571947358929059945195525504299618104847079805518014091172026877114357649571491014950164154055199624681519754895585933258828347079868442233821984511132232641927549515499990557414827570636314651981152522153789229804150075944924348407098094106983435416322706917042043742262775061841031747799551074996006381605597989002143478259114747092371645851078420861459398283273750655650140908361648951338493479834739198537015194803445771472230434066150618876584456958919733914532083467043762244112936761004470877557570740764064882122877394817253639573025189131716435948753363523744605086551475781835677496184140816020236638184121118642825980192372386784215318610749233093677648306899424407285424382011160610328801051264908175949374544953611206775842270194742132733654216777314124324226483601763936736819932076463267509823851996433543383688154940083422242993223407636761204746017258362959324167646541275780079473571954089612441738539931358092908326410628410574010805331900660655660692229568158224019337883598186517721413531314881462270577720106352018637551241996383100504986370852070067512069606028424355796542273329839538114941410929024726422125283029928240168504630180269537684877346081217730526266891708681934196640773198469997159699153113397709545170850426900587443849847189361623983357622747478764404754232921912858483167712768625405113262584750012924130545623877482781066183178234681857108591724349626856243123537906859918205390045487963320070138957778097693942728563895941304936335822258722051589316884314505197817824096671124945915646935351357713503575235687797615260008689893326238646399960998325737878829373439879873562032701523498878336530684238070559925648984970829904871603334703518332458381714876587744107556881806713980358999868409150167098883810226503268356726203677356175220555558794030017586055747368609603655222138814421728535433485843903559306499167466692611105810167287077177139246369944893647278555408425175188949659073411742044412065788260852648829297646541163733213046467325158035427538518102012640572743806783080462875027394421663230104491074076943102751415039522235881206705703952124387276351604229468628915933960465618642151810514546264368566406485207072184828539418893663331925522296848413497401842309886579520470480204311449626726776899413052113537618212094327183777523748032507595586648399374580348653621034728514113154439382861113375234991980820934018220259663752543765007159017395207401909835373627456449240536401508059394368978180509340507370070941843624702289667874528727849088872297172504294385050150766350245536303480477436374612668752005387019453654213795784770604119116488714998603986623915904966315202519981246598085281820871581254411812188713253673015260674919189760456806650934769695274953513342183221648215311594098473454586275160014148281797590926373181984778281357196452716693504675773177640170431723384479454482459320074560196179239348252015435825995330677064974083472497981782977606464521220344503748227790264285153854133747589759389485162001942435225855675306244928687758290745623854422887551522955905131028412147845659362139131542531130072709414472795777728931081210808852094002193419371918242836299799335900237110598258959613177707575779158590197479594121147693708375146576011220339571172597749726481336772445432381322730448728719787652446342397888528751863451082387053340124387613902698827665867436576483290897858848820586261093395087322044035563287159800561687391726933961684463593668813022638934871344931245031535080651461463255438225925610192836434479230029830875301512262845113091132387331509565887728411687063359101551218008116730186226450725854813456928370592119693900447591752689081721801749957719132408325039525063085314472016360214683209271705724205898860723221411932545171986728067986540881017459851041172267019632137563617120780953821143993179620126928505937152832618480977329511008871728726532007881021905267638603380438438669523896461373632588181579548336803043386672876336316778207987357902243667928970031981839128066825618536608846811405761289571121488171581802450007446820300751546802198880194529643352333738376926959750122240245186089579977261560393203887691829416555995953749688061100898069733233431749291150008135297026303017348134901892477961921263155182485809447932920988802016617017604044637750178585705650514029732853429851968458968808607821481788593110774573465602874320390395968605524746480922576046589068553862868325704190360374583423280247970512216713293370230668264693421603155484910421584552105227639725400695225801365892324397441456818368860702887823733794728041063744566306607082899858371912849364347970207389474655951185662916647501157700687467696854027220921275129278650982961389574408524980213661714131791983255034657744987022308355756748246821942901673184783624072259037290532320204211558655774402367440496569653104605906255192552625983740073284887992812328734031702567910686697450225080250705213441172631152965884766627769792881557134648936035704904494097684512873006970590945530228035174725048306756390963268841753727275301598031475823589155626313205387214139156346182112525451472754720310970922494051023997084040734882858635198757665105235529477513626782033088148108627160372519898670188945649269263682194078911373273511634686098101367055567455540684448260428450842402672737265078745134036163807931428191550221660556351513227295180031699392677020318064801750985157023500610702986681219946550814751583840831903951537853894248735074729419792684978583670816256704014010193778356491575409243127969012070340144439098393490691395243825433180952936084931522792333311950365469521386218233743554689623850754621832993510443686162166249078105708514888834905802308743782739863581979469949408990129582767763565592953776822309177619096291945855188536715020260096192486959771577966863739685997755042334101507217251916580179867919411883157661978852429435135661797533653545617470997121495193731018717742694774531561506871016941997567357594243121036969563234867838220265721493059398041183439676296302356658084991931803022385421317726149479749409310550614073018844837616742712720303463937055445305199415508920447400444428211760094176549056735571084060526510854545443666763205253255783103248895390442572111583071635292789753863829515976581957269881484933186113421151226269013928845884469309302925495030349394060276030749521969260740115785146297341207021521380488370012880203058371549489672828813564988265189003348719691102679792260078627369280476161268951712356743888492367210818754140290510421568964818924749746417166306539589451900004487787517321808675134296875687110222424778171089148213199540531523843193831052644368955064643242527230214551870234171527906022177068505425107201192610724747011299635258748718713857009537801746750262657049132517402436787455774483888442522630934341305853670207564356786055191840402792159450940486400761791910672491371032757247259761895936644839386572236743645399471392900717249792622963812658703246532516156097265168577017644466233525482317755547460303229628535758979463031994627708071056781168292592940681728505039825248837216257439902939734318604888335020199514394577653904318409033450520691712603034357131898446309810011135867268273781176503358170303456999021107635619014915171730373283389546495840343318805879886020314097821140300396774095022262511681568555370310891411117558406136696530030582934798365665417351868150731007002533340721015617184510294699491350613148688267402739798132744211160543254798099230992274151326464508423651425742705814715551607317963821038655149029725871307201641962182111755848652192663858172937385138666223008236084559447513416706957537988928355457207114141380210656403938033856110057657093652966191408635105897020761470491303061539547314842164948072792976312664066987761400990280065366575015091121218445547501034489176758421862559673166242680133923608951172520840885429945449097485395841342778357978159191790731924087413383280784600140211438170287605751646693711190610927365199190929690665055064819939104104128551037701094397032669379212849235627804638718381315909275110158840144291707440654004597904504361688473229543527681747405368645818938862109101063504653488394775833991457705191182262197907559846273205642700676289156554891646480852573904327902061391694133694015237873118923022577013200274079331796829029094310988286351566797065254330793787756062694022542869586728813894362764067293914648885854143190658626683181699102958840365026611302807785773895786092215893689183199474254746611727164972655373035176081514708987580000355105300480520662245765693684531552590293294576449029946276457133337036924512122034461813157546219344869672501179083532368080339722168254364959096724389909592680696729043279522904242228685031585485889517583698657224944732684469662116136387378906797357551053825051752931439036700573232830169627738100296961952110317421761224004050558267488886456903219770942099492126524057289861591554095770259147779266768616115114324446375029867332796572664407583843098240319130643239008518363633297506163574584458979206277626856016485719408392815181033530187276218167988241069391061405289314864307311667355543124923175065363348443813187036489881118573903303603080958581174784849879261769763974190810428157777292878201668802853969733481649502233088012089097393310095690436312989291987935523603172156022515541692753940859390644133371483353299130661702160606443775393627274993726672004675784194429992359432278847583358596558889656687773027665179253577799720301655210275663894667703410054943904512658020003342393865331852806064734663802820279157824757188932955772269393039052078900620279999871340017877067750403155902862437252668305090143787832716461831017761006763424172411192085037762661638053468558548334020852462272471601315487064792868540994517343088288665757028539616530507950099964673317530518817644924938311993096857549290059440263859345299399663088582982639616668807230786331304688088218506526059830822667895335763184018585635251474351954290509672274724422410588773944353733081023240889581232012897996893660661452311120304830381313481671813400068053523358506399804518783442616627720025913111266958763891863797000476582312041641172779622306742947354757127108939833262038130441333831679377307964932531671674514670657477257829105264284363049508172903187343099919265915776897257932783591818605522436033008065186861387741408239638939857169938994546161054066969696225555750307650965159981086529326352439587728979191657597775661334536884530514800459693180306057427352214347001110102979377936748439348453613452304207158675521865381483963499266258383795345102038241046108715330270905295667796263820596008181494845294961705703958960364697344501183386415620843145377695973906578526604176513569554248209359360538496846068974772648650224485497689528496185670802638573404260812626251328368518190652865996145227096031301329093538671594723201452840212162393755022356974811839819559476111749828245044967879677212216559300870265542475000488470403529912659806178420652453436400768024746076476498509353157879739097599805574662488271418491902019382555178305794917311233319534252518653712098099922874336622529556792736430548050455928945929602665812113267925290969931896254490760661506972436861856525714239712129899769522606208592201666997962039528224390081580412412081688499016808837389551044867453371465169322041432761967167771091259665304344894256367972804037287181799964125795546337180181946747611402620633986988301453886044363624396398379187374186347809606514468187282636670906688323928752993877290084845858659822363577658581452808156635335250060968031390009068646713646778878772448456390711713598983402258367159930756445409300459332496563976740613531922832009525652055631578750652977684451611465427685516629915348389710580192436572488165122754097894047475387067262529065439816735382870952232724444865356569912275333838014794263600091797568720405946746752572310965409082666022517746531324380305313464203294606766139242313207383492571758195032948481987299008737642139476112847182099113303920966144507938769927142604238363486294912968890737288596091740525253606879838333158560235948070257099011079907417245900357943316128424620690765640389887888099319145625322686698254430571198331270599345683828566593909451165432634655734178058942972599909744190227818616258171161654960786372448254281806264969882241379064824801641496634265719854664351981019139300110295272453595315910292168502696132717322103842593039812234632495478614929329147575984912860588872643815295393237421696320703947074393418542329983426161170414843197952577194050445483440955520155158411473461478492415834509112520682372208063856582004148445317129087428625673066150717019698173778672505358623147892862926983221343803710492092763270603990868062096580694140378262424444964385340269369366919052589309404527435790828560606822054780617953283012637762098575862583568699524626892100153618226118068379934146969897106093346932031778852950644392293621240424881236500713919308937949074956183398859384707977809668165643045131245960389461590090037155598796642805052045396830486619437003593230865159226842868002121470393756219934967869396460790154342974294946417562204342394645860527993703326548488066157226425878002940554909027538798229993352511811583035537817899990651454286373509335073611068718045373329392197014115700139415522970640574684305272051998751759024068950071454233906268440585282782220259163089748464078575706741271301933979391537875914549809099066702678922695932732050445501889905383013555266067588781600603082405381284803929561807237703190149800098890798122757583889009845408111168548640311993873316511573116571210302084400521682744201189777954914606097715830598852545688524003501019076424195367130178509733240060494302885015563332649540007840682163241600677980102361538090052210150463834521835318457372702527328585400308992135301854286949588959951658942484896452007859056891578437628428452687875446242076345621138698363995480547797057254272103428600141748155603757942929848289697311573265454383105021897718000990203176457776536085299085456477741655024184345806704393334389370882894643364741670426880480071015091733004168739109241264468337600801160292118860508710678953370794269916396986179797014212130167574858131160106286874269678148410795855373162525130990744981156231996377976013847047049473390918506086689357444469645472795712451942295681575595763397717667828367514101326851956143056054921681313101129432926365846263238382125098665720627813724908207092503310843636233736153760111712034143983396831035032162062535564174531884804256113147646029120404088056735440761198474102257258931077727853162499987046722447198312232997935915563659292543561746165313620683609841014246107254939622256672594042970871688707052680291299858722837188080524512994185080875635007322757894386422281959134331666523641673124746345752351071230201552563986989746944387457201722236449690530998350364964690182899902315406888337383345604370678280400646955344370631462929208297416024593669107270419635429190412453084681541038907802641725701384137412173211444309400040056213672717591970219669312549522458458108658104041072948470964210054209072987264430447670496829904076396610879630338746823739766250432117045132692862967868113775001739771484196390164257028216953267854771019855674694945737850100752147742115549451703318798065163698708252754710232673773946901284726041757413475146092960035688571016805980092980706666516512166808157740469642161954377404207125522572090481893480642061181642437508987385880756997114563567677261130325190334970569168892055625083585241301411930305393821702880974403928242087933433946171612511645969709608166270112825041304567817555043758782020709016384392874320969505204423012792184804306308759822830494491191138340385626380931553305500925869972293721442677463958489636325564417765316765890247235090801429955444124960410544831305677424379956223180587518306954941805613404427985933040341008024323945798048221224031846005829172649512478382532726259275842579270253116622626547007285390945117114290113387625281691813921548410436691443608707712895097558091667373587910169969566314406775940635131096685078716251337760994394667236948990995405827292099381834983070916435417215568234145808667408362647984702520679574854857650406580875186530793966192551735549276829977401817591274654945528848803673184438188981788600925792631502522891014534242247463455791183354682373429425732539330768713939845668642320787222058711487891411293138745347454094571007318928246690872049865794033056912808430286915668826348064286054078561948409891421136127015386950484313603169023450982845687830019403415129557005329833919878098157819921651141298198266477610244685604783632531527858907234338503775610911779228953969468085207787552161641989809491148161330561475257148012564296558566218149133776861741558781194357268139522781111224325129087394302656534287742285866588837732729881150900085857021734913339856181153847306551192043559556433663722966238261667006189615078631661544078284464012293519065179858169783016047435965765903127890198681000073486176517367294171627835363139628661458226373456805497093410777470097452502550517240733732196857937351590373442293218285026925715697601117593191384104678488551103434826844564132957382331593825158122263591030408604143444423501573130956236823838975387278663030094750191278568188177390726425330490976739952882649443696753644193572813817951336652965307644393038936684301622208678876781232464295085618686943100890728229217698449610813703876205429905272559315254489054601313143825798718017612420803630023117519315920031972154240844205623518764484254956256234509503176847465584194332415485006346814154577659194201874874182423289721189662951458264910691666224522075652236576069356529361706491608873535280686332890138316587348539293424941526820493604830785227532532892572862710122506501722394419873351141811787093966823108872276068146670949939553097202469535099669091631690891722278351346646332402739271363103857683726123043763774752448965960710175151613477558074212246788851553835287849674324663996062931596765673800633325974527991805542832829080445822190220625043069322245354162116090531810825883644739898477714062351135263603705124060910735272138574496901710512376665871346239899492722934441155350934230258639058871575450263243152403498177618515205676079731937758930839725185938063308045917423643421666890816963531982103474991011093422660624491489439008655843145570187337330525257633702520742138663905023186625911139511019253669412687581436369166111422569572268704338655444148883279442188706678223876289426476780873323129860748964813949383873614849553376096317471642753231966225117082045809627034345907458664638773845184093187124578550261510976406723417282975585968209711340229065417531735393724979496662855211585787638740159715808928639847837298477981355506906906535058315419102400030972793452693077570063229204572091443267060721546926251022678487883841108827985053598060218658408509150626266841711505524647603190545964135699928016273416566696713349303771653972947103812472769774024831624496796490288842278502276131956978062307333298748372866996817400928386749512959001067868744834305371088460766513928116390320463404031125113031101742633974299699749480545127316944750409298202595086893421355123801937842624268853618391870677088598253198689344573997023239217362937135930091921591020659414663796367835151614471821567517994143021683843147991930884499884358445671543949029522096552999675131172461606633009697633437836699956690453518405989323863820173183011301247279199065670151235584060531707405182363390409113498226434847346761054325908188918543389806607135848637722648217418188634221609243968330262912864882964695350898468205647312941253305317415206606342640934505027895575973068396966463323385692609863669754544647272210806887783367323537149447974051087613722344640252467242475949836279183979204303534479094671709102638564950306994167874161055672987052525852118178045169256981473268045879748169818525718695634971818852043420526113214939436287515151108713115805325084183086395128923851339918492915421241298312250946635674894597964813817355969080952856025839421237053611308574968539574025315360752487575882678668689526232168597879396988821915492012168092686692222408177295644735597106626422928474188084682092424000762197299029783732677774947999904866339250409509497037359951644236657418230316144025150516414921262882847171466015750565488458211482965970837858430180196198342269726501162133092315066448578212984191950795638623842213980604010127394098147138924841865106580967764644053359841990927517426540080156762597875058006793649331278996554589313476713157288234045061771124723289298181647708041995233854227535890254690668877061535256614402504890173532594903321254872915215179054319782021525083100386869588779935121761682547200677644023229859884015637268759460792996459384117073193704701955074082471502901044871845480873718120254898250049480026494434074963641851610640701369451830774156690049656126400953193960160285635049054626249800250832427544705724587573395513174449057331210785166024056765505730528336269147097559420902202984414936400394778016330184625430021428122631357571771213279631169465570038866516322106353722494864266342798821128799792579688132796438152684199455026750860110785639896087384608229028715680330539728421617758155726162500105417320247498987067624113436105251076213423728795425814844816087524421413482592366434770679942034538364954724138223521635694944670361179798336900069358216364225850512545659596013418388876182075361973196593917595736485789174513152663334851947634259343946310188834290413233887373316219058957198553448934366316550688262890347413172623489185333844288690304886693444482605578158241971381362051200414823891281978787168763560531561709811600835494119516043914151477363517499947649342546844045202553106629605570460467578622655070854246526497161942683866710178295745785447332024626071101287309549012209532287185588023155809604413838202985284739027702747463365039557700771538669090469096620927772864413838101520758091814710929889476575072238708032353714645464615702622334358004679409416310821245559353048946543746586377055719527497976405335407019308485807390968804392197300770130604893962698368873585844238021789903319411936114684967476542306017105049855563510270944848479614263125244590823594306383173816774723442319488815754558587940000997834093926934115268361520214896594821479128595975112257396830057200341969097757306768666179413184551466464293297409849393502901807745239299942484862472615689788410521221057857460122934701259400313209129737566011802961398066441694425586222016017418242243742841617516727199600260707350148321210066297829323623049859610432045840138951145255140120140566815139201905500880317572349489849181003679271965981553021444212065420579978286204426225361474795467232610072170100690292625356345607333004230536316900497848939186055500889401933016069718983107911121750235702697424860108938608155739494353463402178805844866357832499191430249771199379255372207247290944214581221761898595118513127099312434713851815390201252278343310339159449875074834221962355614207839274428989447957632429697779740510944215089044307767167471911554755487570779735757090073651318533202612592277714769372419506174867729000553606789879311007779260651177320552675851163764678300004306250825086433894719812767153869663071828876566877310294620430666920499257533037343847153529122676732330456763427044808060096074787008711238731115507768694795535117597908801000813352095340924414648810401533625636655936087628292959657053141372589793196673739068208070969533539348772847081987331077998964328773998898439965260559628812173894004920677703575113865845924619789020463876763615240639465260087469301642756132138903296035023676781876737342982804841219173710413551031911022526197379829291285839916445555575784087573727105218231440793884055645848508599607333466701060978397446564245656997455273787127551284843091372042902038022524029736886631555328594522856439620026867467928404065155126632093428424134568560460270855351226465550588343077572387430470501997292810678995884873594823934470599979050464302698710982914648161707973227313982202378694209273196995991687315970867482908155922110791457691265486233956697730078305726602923586555253989610624753689072198382068245496819673326785254089804934915568354166198801234326955720636487077687870342334789777519609814349133283725360439861054759854420634743022954198206541594897913926012240971287557155040203902402399332989879105069395399145744180080408871508785615071167638964802802558881199606051461810064985465641457398069549656332529707405111907007525153557935064070596828397268491689924810489857744612147195443370820969704505218575155842573329345842210664265460909019774892238942813599681507917622113535841260099414242382543059936461274248673739754437116603185615411029702480733892623834411301620643875957698274689179374760737856504051267676071908969179568176385218737867891043221501578175550426226987996261959262375346298086430960200754955584758332906185468996042874488134173905579707905022750614523021845303926203925434947337813658217033496379923309602754514226987160368941607147112498756427292289489748378159191413488611736977136101404509902986302672777620386040393779872292111863249074889363752028121057066627530840967050662479056129005260977843447837125163733811645989678180410213511135427882288463635838583525340815509855175596493296410176349548195463683699138994591951480835121361370525644052894198315390935665476113726433419363284142232570351801154395022989721438805678439911944348974168568633193744925492765884389159541683672966435705195077231830573531064595267453618788347503378823548476773988621656703153106286077459082747650106295130299260797684783939195295928522469723032776404756517169545915788218757741264003644566922340347420462459344919599266999643568296862828825833157008970666251418120299962106661898346941764258824317284628444079289677910319867150385727811417063393548753061307519832236314241345374027774074069695083421845589051602232439892240237972207394866396271236142837021025907046953257800254560041746786272081799469562693661860792917931790773345687240599527314724601631691459945826281610488245247596945357126996429055688061414849526167570963369150052402163689794048538293484013207077692665466471023589969667951805988155431501056158299056331081625641103508786446358879248724681334398107193816813604247749966022071796381157527658518090846009073023407161317950980847979412568049773869968273419289139059761649366824885454998351232052589087264944280556802279739221867648356940460109808366452202670141346694719973412511160016720731528083923588360670497842462789470480085865611474360214745987986641529228786109907510216169577682454379976750339961815151773716339704357854765877222049705243694323621598156747885495663094840496401933670805005898327698507144991081690469506105919824739473423121022626457588847608175138768994481081848167755735757984934203685021700284734090061640992765899304317605262714393572989710664212757147152935491160720652990577863393383555300058769983548986800097925377109787254638700710660918255227558857339341462848172612728768037743214756612021336522488187273052350483450868716661192777739095814255925045553807197355425528046192331181735845715516166651293181242842302603455674735711236040493467156185149252796493479660832118654545065530729220612516821999720381441457049328788735370987312213853321304282231617819676140331342860863081617446987047755365724810825083861455670825357672309498340271140400550227437210951775159643595176578727625384024784707399694081270948411134833366153522901561854396151591754890121843954013035799069470281017944689347142323828969149665718472661133034361811751848433502038574942246622856131762096346157283348623392260791914961801569788567475944422473772662094709808292358453620646472995464822637222735083819655875066504095413953785856587718553028714228846120593554914844008354821060268362299084350844650218131794130560250643731717439966141254582137195965619489371908212418273098241338930997268671761672936293076030754801125960236355393835479981178161198528405030357046105425490390209410857872273269829108201307240247832998488911753956079920439019833517203933106339951974434100643775445638377853914599308307634331739351369688207317470046550321827337892388262813465584610574283767679531844408565636633799510238471703211234537029877912837315586843208656442645920223075385310649585936346748889908197167338678230195834446659091542530049528821412576055854242430489029298146118751326777872266769206155418206684704429712202060231477141215076523736938810660422056211227365588524055164297646834794006043659598079658419997114656888628203537276332196622896729178406026852395570763852749241812142406222818686534272663232711866622016244327180008530656102097945141659154447051437098143595011264496208494481688120757646091594897157618084989704944262061712677662743186002414662563703155564001926212720604601974598552042422290696977218350489816725669907288433820078852210977388880526790481573958038052059944108740087565523790293400845312894033987224198587483702985943263195164013462661143488682224050167508555047506520536607558241319087158709727873326276240955195990907958970405631331436599536680085190126939313627948338816308469173465480547532239587838696141902203603533745991202570441488343820015483311756012196771863840284884350402045093482380622150447353884802493735548714864907553365272671668505133183928971842908091632326150982577255611082659337448147301231880846202602066948356422524018315098335936714631121249433647930747423140926901543356222973868379986334433982457157586899747977503642773329890984585921607509799417090165135096837297533108576432049461358337452563300598438893491335392569535237543500259509506950154400624972764215125453394642451364287777912099591207502385366539489213777307147903469860866443082391378864791659251684089385049830513878917516864841103886865738411294236480193153527889123558646071782034573854905613334120076951276472675079102646987095643841124734230049755526185949991818973418942354432415194849027871563723973220974022721166969572946797244160098250688737625513102425000538898489439264998721056628669225048331310633159792354293356176754046513416526394192274104107494118864014254445008649933650054931669729368178899068295027736759633713184849671400764908694221087312892993716899282484014199881702286825708832808278425476846279878919930074201612450292222696565910542671969886580389682429122186638530389441493038796724716524754609394820339400212360138879891353035729322641828261995680350488505514504086672863684495831498892173035407980107642984000115773226518498433516936710411468310055504774449300061476635341777714166819689154766407744379497643147577899875933434444473426217089908043894930406347438358482628122658597323813287995820480382594899840464532995129913324981000389579916954714485632348919945801762800280219690648808718457101099524029029265385376340442753973554935890476759650022838585897571396308501402545976242978576547059198770838187431472854516704744777557268953514002940872423893025890330401528248663977894330483023215186734523650878352620444825119067253372492147164096626042370572624551354656036257984024495679945911219420076424897463784352943225391485718461694640475338350251694022381058255618047659558553926796017525041546377284838428601947035270910532083027536331060750184803929960432349316071572842095878463130847972606510020160603287207652736439637513479953797366673995656831313361520070449988476093543833244570105325418248525836231497898303753746466328541155626935511466724931325540720983474333788136354063727251971297459529341183637166101384145066998486652397962788563273459507561842496357727582720769703688611144950302031875281969496383045880080658767050923993749866373410489409179359590771147221739139388784758898509423959828218658304023915352088976499241407014827641046411042497192343137480389485392372749724171940703822409241269263377621956814004784678978214391129286348286170297274451205249605384624751052150604024842769506112696770244877843260325539840122305407322445361822461848660416351069111904212805836411816989748656570027596576577034057793115238402196985936192354823600266534940687545514685904739858730678873836040464240324441781452280413514740145092686702965632553234869420662622043481590754662048613623379928517029083050559831699697843795360925724771521956748120894279339368416645290754821486909765393080640019739741248719906543389749393905093449658703449888148490528213861781981036569917920474723817668538258890170861218074408871681034778727247303668989824096381959773133738894556467170174516484590733298796866613115056651209022806013813514043077547195988180240223145631381513448504389762298000836325297010604147347873458176095231959993728145379376352922199325963047549132476429882829869018550265987960308001188095568574866493816206041859298499147498547035638317692065681822347439681259261547123564929419693815975107165779075192549335920996705140033592406713849506746877121582935562157540032979266015364694465158749705789623226280143866902516721324874893793055784086208158436524823572576299067131962058453405177981374665328090358747633082708433147197159320096157879900733882375056742142532227859989265999896570791412865961411295947501723086472043090854914489822233979446231894075682815143868729456915666855171569627397104645306556284065785170325920791988268712229041111580554268983426150859662774148361606843698941348064631791547435337988237207225232869065140036728799053769723961287996751502967498521878471599088961200238232045732243696086244266055092405585362467194145855354059646740007664610578928567208117536584809615911145326022629291920299678604812411359364308120078993423285303066072593873160318131755896658569563640578987199224700687606929156630663965028183358794444587262119306135238452826771998838248904199329147310819669592667516840685030344281227729747472474279333895522014056301876953245396333195337982149948679769684180874560636091584322209389272268944362228815992844714828540166094342014151204205762651490600586847334283509101437065579041048805852182490189460851308827383573706341453912622392700981179071580317705511465710411277217994791801355167385615023588276333529797949626196783860879673673475993066409475429105820129340630122095257991027173101921886277065016135118117059951258648700387224311097440543865054975130039295848665528000880927597352169613834327661216180481804889849522438547034404744692452159657565594408343076636185229373569181662705151970645605291273352916884889711401016491337158783974784325216905085392757357808122890685084586540845625055873671453482535345440386776801889922713843882118744053938214009480278594872713189015238745668851367925453019526927150959644111134404047983226035615304245672317845014455787061821567573704252666670683627861267127983909327839779626241689226070151460234890482959968909013111043315505128006951048108560568214435122215691977906909432598638231807138447136880664334387962573196539424943494800019314802465648075910437092253061398442420949453927502461365896320362757321215240760870739615646955526030426231208171564856360141665581032598494841378637544955611488902319043234955836629797066635750982807669982055061207724193723226100185203225750919355493471889142574295487868794505736785629897481699297505340279877091974077152476520723669241090592212965093116734848043198143231734351655863132521404702618174668162077442160321831392074422082554396124461232596429847675251550440284260677644974014551805943483244813025226028585257282605067745931674106160596671430699750478328601822987637907280601412382408139785735853794593432944143771389422889826404952334193881878178217960745632031673056887592079804468731837835526613871829466824314695225178676962158001010024425060588477455321640451256207672339245550416462703053556514409161871276099390581347689780348706349954989221507781077151332455458578049013190714680578745898669059215863753857634029253484696842930020649658542076189175877535206590556460801778156213368863133856323758431964585225812852276755381244725538407165379874514130632277774708978216709675281254291791113904671664329231908978834931459675198777240494834981704965941602772945405033126514236958481920374744695287386113271606681570265728724387907349201403837013107182871448008222652290060672843580910072320129212788583201103397176076122533632847649016927253838595731711760257958533900476664674718644341629808205391137349550244267380267897265624093530557391998693805092342487878932864616592525668739072947375231460445987080947031068964155107948883203114400001527689478058605638522878604523978824577834832887401358138684125867781903484080199982820303513285593320955954517272871015772267117238958467732205485814121399153640501442317549745995993890021858843986826558542265769555470085895482389275875095021793753630907346619316137360241063701563182623121332129045554594332191099603477989187700090841692717999966785149019747103450885046863125341963659955305536899667340158181875737206475679093456558442461793807890018183498487776528265636457272063815756880731964663623735673515447091963447668214819055344103006641452652086968980275810465081849166336322604059904267327724360571806710273110291931576914878155042892602561450487856803092204201540522685780763722873095466059329531026948805321285042015817647332347426096579798414738553653249080563578225906955811020344360545340320865216575718999942651977505666337925584925623461287093306782891482697610324049885463617764769052995209943225179421847676973998735191672471749327832487917667190232132830433779909801714842833187233707260307963497614299758489278434592526880864484577340429630925246923043676278473000742872145328457791322897038669906821407311042798952579364244096748553262282617499670104910418260909687334847342144644170082772637562504565737143600318930851250947657362818220906268626079384315034007009978265525867007423392893740462621442684871523242954817176166009041823327685921255324731184302510688339497007199616457550565016616890032970523204887185660056875268554996222880069695602490123279120345838080981441930156976372059252352012039732978926043501204440661586902025265056566110013301060320504817077891783850312346388133904076097101953089662925846103581099189436155808855260384604114370486370703424283706076487610422789678291196082490186735777755606656892790538614940539276698335760964648996127991123567088755210860508624878738427858210332551226317948946233064558082369504091626004186212520871922705327493249907242354342348515616264008685658996324441758818494124078559630047161027678592133783027216032852298802597873160441300138196285472872813092966999873784676753352191774750808505774138403976965588459662899972405391006683698408383983687434184614971789570424973396124926487160968804966935859720093542514464971339020056881364513145197582309414363030513213848685911433430547789398296432013906772087435720079286366499550331245333546276986308135699370708794471781842615225559203111715067210604092294793121374052653141109761431858441875835017638673255877400741988234285414323688842372021563149251586728970686551383104665812447731473639071783321092373271403494561764642911276235088684609133778495516622896351467751890131426573593363681109588499228017240666913251313989562988548612377842032670590641103615219269542526957635677390303456806184739617134815443682427840790102112551205014598643091363724180332976313655859726153234886991913171114637081424126004853589438596852431373517000040110370844326722970973443882698130738069962116443124646499335939786223681462244250084713954977528168355361894424106596449148021253848230453304352084153273183811729046014259211229434946590509716508853685798916130340690587360480590969607995824218860938525967751155586469178540060296383695393964236401737607037745046097926950997064710996761259079770792398265030637112133314293181305726468274063800651323705989352269389705752530695382374343587068801227103295577060359455409747185669497353952476398120162083501136301116627292864912615181559712108234762532260666879774648159838355592822430397313555185991080426939800466531217872133254554719899745993111955041194091078700020743811456459721834411352950737419034355968334093143564341183930760845716048032165654691365265395175792601577135378435028508839568729974287850767756246075351085067299082983115795532512641762978264668566889837659110212432917665311668110582198151821203626948385969661737374540492720835298396083749222694201487091090660752459928206807975669430577870246372795116412211657671861919900788935030698906750918984453834972695834112704937576807544992750860081317886668057920506656360360924348389501556956177519093774251799895355073786850302488613250764053664537158115525108052849186291027991471906200980488270905235255226250086977746749458875009916166777560045021422513799603725242560534174834646028893061201506427551379375747981787300964680012089180225978597536668145815842930496858439268611581732651048423192238455502927781683614861851469248057029653356813087705835768547380033982998681387680634386843874920232874508213485294778899586775079852828429261429182111273551574490856049802615755884946054080922049465617780941191670806961831229343945279693371454667899804581458865267331838577834522078962578085990130465623559291901881021318630008306117987673200433950911599392798616477287650359500412789834065873903728215724631609177575806640696481523431370029814145513483843419742349082744620768153910870186544130266807386066293657140784544181968653000026171682505109128291960194207697065788627511397410670385148692725358721230600657827910389705914570833182220347310508771373192774516607552723022370877169920660140860862896827015556331903269921514352616677400972388045822862633049625172540033272537139356801910307689806265776462565004832181536053096366081886555322636301740299649726060083698185695624310651082128374401537765255000900770431290646663109439079697243789673070051037450101387220496467204721608326654086743408203835304951914078651812110363686303792412709737600882112047935079800266387979178089956958670426225982789727212453799204312252739797447635556036704775528022696018288266443341636328417860787197498828198102268532539448996915092815339093081423908101081947632376355925583213689186378478793724596575888962316311753196850206339645239932853983461657297811230094451288051407575789808332011027718988183543099319103671410512698296755337829472757333281299246443185779540040623809681228973909959937818408325182556934034962799320105917845376805181109987749989151306764914261622182809799838267217344238034972133769082176360476479374461771073340501929906114496520676785933651754029640555188587029734665558279453406143914181507747304921765541519274597203485758117383149107968876701345362933806672331306730216216410880438046886296269718150133746292162533713517463653795211492828223616963400250000981631856310256355651749951926146946726476294467978979500740569238240240755782835272349676924766419029389944804538749732113099172888718018219215072841722404150990753979916505809066261239447537411103097315907772248818472589445192245117786915353588367304291940538295536446126469075848305469501155965491288349782211244928629918637761952315467613404283495170584387382612101561521930122206377279936206794454622304135500772874736366843709619660830398701353318557353549501904604840182432210270591847109264854266174659861675660360083484033510343941902578209448927879747272156150547909506313468515504239197215910724284040697823704537773266934205223955992698512496713056525550316516065217327308387358544297832898459893675623461608645596545061119718685124148290399854970608279202102600359617960874398058009191955731515119207655616368127260445094714613298108607820650556454469032127017279572187908045925739312637695603042428816064786673972018418880543293598192253914271493152177890778668266968613610133553058308972581611131403238461463903277413808207068664132612223226959431765775971200906661432784382505494592710602408590812313255043711600312088750932405942322790165282026885091405869424409582956528794879462530639000719875282244783743165413178735815428008292958310071132273119823905062911492284117330034714386519848219625565003182277390915768226872766752275909550321774620424933697526794774961492508279291449781316644315239900026562338540744526430463455811219946145570227198911637331166116063267967599493292883077599213195769966107386510292034552599188393740662127498929880255676028863923474015656890454644161020279117328059410561156598217114150032075380291081273787537677364593245669300186802182079152211303350495562711295975959671799679942630021534984396169416637169003284540993876554284065656445884157296006830008081453731348003657160059596323369505341971574686204475676720687861376478093290679315400700302162625047393647207841674583284674017817116067204338438712567220602922186090870815482893896955798748356574413526062346002482233607507768952497887651436327347072495271192515028010199849108317015890221760056743843456366314334570260049563312702448304143766225430032235936617016467286778044855735594335404361700129998379956940682471425279970729767680944562675180946026744596174878700840321366472578975883607563524209657214195688595743452067010660255428994678307278835344293234237878504312806327894748992294299004928145741988256859631356203733584043719489937936995201674819126697044769969377787510449359090770509374537714670491766505020020933660327794823723217125350282616780992937792843553979308210341477006785728712529475117350158209388664064273541263289174492084620664540413542654949325126079426574767202394620349528794452413240567124089295678715095208378664307384911496003085667944570350305721604056509406009401188148481647299725873528707331760782817660838106125889791211473885867467662343643979293818773547787706194786134942235354025991148395862111212793618756506173081327848816860096795081951840710207951084938686389847813385386143287888784749482142495938180756849819829872193067329677215307421575214911359838888573976321031138038398142960973418665601713703505465515167291863227172945571822838988544203302310142984252290472406878662734371062246378321095663322772828418800277390011361361376683506328531268491189810184901634074764284818030869787446557662844479150166925022258187312646473461592883315698019779851821416157695737045935488429421890846076163506714160477023903784600173725270158667430818922349852649006836181148798826111738152669574436315388094081697722717086190292638668596737560102900591344797007538782090731972204849467810011611670639757979303962990954346639065989452281191589600622476513288382772268840729219058010392489317540549607416737724532061039084994042923113901589932227425928675201379978970134812842796550089063255008496950919066114256769958557610082487695784562807206196686772444671203505006429912258565821705023529208255787520317743271442882524549020035627803211117125869277711887827730269895213907488750869595871417009821484564886378642764788008743789261295726111898182218761191298615138026856054562074866689998118259160005691987889152794324275475160229980133692837145555965682424451111699609517196141157046025015330210072438062406350022449302097262563772300279401268963064671949663935599262209597901833113232856640876384315776207901844335445513143685546022144515689295986044631651230591033704478343888355377926435353763024703235230686964637304096271521696860783082845072596881029266523826102187404339937213488321521995503753801829798850756921916368224342228766335139108869028034535910219939354936946375803622516305830225093833726480181406596151190070490327804034306797663587868509641341461079508069344479089636860381245092336768462946766028827756586531072099774150053905702229318831291627851393133779991412702146071876192978972290611131032972514757898630397169313257821713569276107350510660751494011732296849078085181415236577816969795308861509875127909649683873524017000866722185302307235405400610395407831689978689941909417817701731827953177935707412263826595487008389661311243079256314226671937440883086801247607252091972394753602127545368059198459276817186203152506662416517550017082254508971034313413468915489303366173358281661830648446914199193386526659780492649724468396288763673824036786962844054346571129406683365553264742849470608470498996184327743332530407061465346132901983109704461602598309572995041248262276212493306522365101467653404412558067982036399576777981120669885347057875437406780373308169153173080661246576703351200855934825364228242089018902739856990722517349640247006238535842761235062131887905820790121988628282391975849120578338774856095399648026821023795498831933691266447614056612355994843294461415815683366717643713973293603548298709929668963310310928429518306039781936655165050814297251197751500560244296199098328204297496335380187156254351869889366663521806320174028103979861393453340333798462680570922411296562430285304827002273731265680948977119264575126834632280870664303801464791662895546285997863662712064158137287692403140766677507997426172421833867894573833941618363222243754808252164361014536973960763795672304763077839468978032722703481059791536512975650297208473679481405772188956674153266635650682539115656623830950691921541350607903880468484816813174892831106274186237576318292183220986451943324516180814939970030957801065640220178826941982974485856621926442517221311807690461150469421955862774037581817037692728563793716645434595780042924930672354697315975404638286776894893498619358377411454040169938527981927776605021132474753807678532588267931869660435550137068591958415999522510839204935550142292458391236078926193464827264928898247983391094046215609513605539890180351643758814021041712414022973968492080738943901144237178740038976593693641616553609919118499923320430715283298314205497403000945874352567772046978229781621115984121238355278176389934766491767665692770405088460052264784690856513273347839527088986533429713011894773233870161662019892140482977101386564100616892484153482341398540826598527290519487741209650554226741792839330569312207413720878455884328417066191215610440437557426957524169296446269248874170143028545942690252732394429245476463343128900426232007962362929898301719173595397538872787117560534880452959529552160620611764768522416681562424950177543590256146065280712544542228458254844041858243533835851989903997777943651341009865889173252709169715490761223287608688073989869882952957919909027239020888901086385513817074251222452338872351540915304772362423355226479402244850895104832853903985497239494972124808518866381906525268054399608644077998591746648174878797155630640605133047002931223119426083791911088209102246429528660404760845910756052199855995950480386925213020501613766241929209212846716338650811292579393740342566710750781904937180662724822225054666158901785299984658157472568677925915213525340190970898775906873871587020446071313983528426513755610751887959799578111408167790691275376794248421736578028889900053633695136831525231461614280371258252768845493986004236901834926079327192737711992663374976043229416801176328844391771196114566069346093152610813201734379458566251150904215559801452330078846619586323285556044970636505554357930898935200594605651218846329779615200516609946584353434092721747875638270026245667755754502836373603284366181782002927029253430145317619764667126676483938346350340767558543323295399980400875896956195394502763692779312882892688986800430879432999407352597244225843960562047556696711962553292598125243476805112983651451244455046571461026455383527643707754299542522014576740737238171800639824706895926358331493960272705725853290062396678713286962847623539537328942360417118354940588493917119060999480957766491742886683219896290134046309279379450608658549574942843944989969469292883261872649111321115942771597466678898863524536383048287394236603813531870376663287805666847698423267512972847848279245949023538368408370181050591134061397117637199380127855494523758096206973870578115639240729826680275691595931156688804789192435291014137312626775070946054329720024682098356578535086616784786496840198871872932156797460128963419149872889658384733200116427919907136397204094510289184224414861031673872985696751117884802853209787913076005570266591759832358524559816621143371737373012859239305545203042487936751022114436450054050202186581745810980538629716370476289004233623159073019065831762523548077832685022032679509413529616248594906670769577716337310540256287754409993072239162068919080499944977339268623275442223097285235974041371577584562922299771540996423389772074229863730838408542084068137028457231998633295061835277577643544569290585482652185872610602503720024172033274672511997524779741732682382379239831308701905163379348339147079193467444915636656202109172650860328079445227739814669882521377318988703209032445553281043230641653572032948936796127169203130745405671278197794099306203428838278422490007930281865819034211430551987470844458746458431069979398218174412811144620342096991646328689025645837381756375662903102422765645255281107488806923064382341671505879921872693756114624659443622727203708269877342737217967958098575560219819557481666818871754058395373735292511265175827619413718325091111665238248390952555007269661858588194478635916096217606488208186443264203053487584196510747072226023831320853890647050084263173801518119387273201549816896289389495566380497058167325921368177748715713286053696963475492735341385168687608059098989126032991702692087067839189257400935018406883216394239249534738981538131459209318273199638850945810951511150231220382445614353304648158086680152811121635446572590572180756083847127024894427572401594674269115033966751305693272253308248055393601097603764968125746908221689819052332393099293991355722320026298472255437441276120942660065161598388582464837518797776329326105838365729138925462504643635461038749196638230260735213799381757014635832590795224501951909031462950220299137013303750613715781277430667434572891669074759335539269924078680036147812866824265116245026940855336471733934917084870746756545938216247719079180292582215309729453719481480949927119713854518741115199196241170803615647956345522686789478540742909049186498857717759508689653316457626727985963826958735761526976130479428425555814437973795493045718300222504466138785425918428513862799185726553330475517508927841580977421327375959266735812413887095938016495193112782714046928322634347838121680971591854109631466034119711264147108248770410694579018461209228861891670010319956659504475406821168397672777824018527850884083721764533404181049265206346364093967418946957338988059602905641008278809354960431707128277803232779466051420028883386531516127628648307537718823109671730746180213032180426361931726968361906019631382310993404953022191479670192035931591083210336180345094566157647486614149909394521378156380300768308996779178243281812641584447009145158893538290963805225812744956319181037666818688223802397476000556180552591456094012519802486986334105076228670382230190776230608865971437560205345399884412645564725457509679889229861016648030366406880417594993895942823400128685001442157381481630090437032721331520076504555243246956713302293037836614319279046128682188883084733253375035871991896756678882003609714562387065639687207539721305137610381403500766441068033744203338628203031082239616234637502677799173389854705075929481385491313807870825192551930020130233936734439554677468535885864005309997764834031024246698594657047197055344439290837271611696904666505096073357310111057875262302635137990042769693441959775877932758937212950049526665402854008041830988448536427269458581359840458965289531281187263467508706171672823531599008828416753751382152255062789977173225292980839877766907889379338435560658891596204043021890768557542671732116719532557706314703939541298828371511617727521442249770959853347856506932471279605287395760719893535520321351552473670103607841895877647310555412997751005074072950828236993291465797988348150185221675514217588815339256187080461507149408732816965113763452229100752441394339946976354806545828104493449870410282169716602104470546883975047040705102994376217739352047046820908475638216469314443294324024242737424360284550802325258117657053627221114268205867214045561991258902915729048942877175520074218302274476746512343709654683639190459485062501510406821363790149495785282307678216689870900398675229109085088388298433585527855505074333308015487531697465792748943927297645160566609348564921269784945775244998709320855447802761482952857418392758486993045512799640822933777206119823600903187826582039010169293303385175631543526316055052279100339747899116352562173817230801216896866202907164081805969590612730710718153282911623355654641253902243958208420908272758320504711075263056972753180436953751298950650930952798954886547737422847327833248013359702531096501831352688536922478460361361210189559222914326737177071609235208437337021998105015464984531531221812029868620465038207849837994942607492856031119327568775456756365277553925691080610612228873235831115729995990819319234059836607308636482018851340574805911324575435890498996863707355809526319521393154110846535465158944024843801412750948826750146284164567098581503827041743403766661383984867142623948195799429690991394381462833931717821594413918193993300814745916160441758581240119450906591830456960233464784596133650423453850646830506713485866237749551981782795265703887382420719824028499276730531499262557841141869762578154900261333208045637457738605180840693056508800882705420140589962164328263916773537596601032100720379528964699006979662749228087210859185227203144814902744370416680494946186308374663448204308350844495571356086906661896323691328385784762791696376439792487911825751216228783303211327937911386811664644063282904262441230436075302896429069158129598828050593802608749661146525459623620500820736880690401201222856715827002011893404487475893674771252980462982777868116436813785317989886173939930904876506588740685890561584261680136045718410934381211535915527705091596650367294957290780857400131283224899713691273637873217889458862040624343416248133119713644552894216858757625720532577062982944255371684509944582049197714378134146150655987080772056518416981400750395299577970062814995256793502081808133575937469081817426136697866788222210449339505384569905806659639827790582964766276601276383716961724862912352338607965425855057448377348267781297633858590086436934009439077003034438910846600190890853685439208187625385552415221713944250102357544221583569011716424098339945298190456781931798541187171164498116406590546910631282513115602691257768884074379470952733124541820882563542260685236370098656696505320205727628810220036805537404516188123999863746854639200336198534772392784741531464053763130610629075773660741100831775951934380996114034260284494220755608139924588390468034014708895052685441683593861499491873078423986282485498445126980322977881538811593525673061386481592223458298116420151138637595639236373765647609125492492012421433832249843996298360024827028916568601303822242542177184815284873883204384441408567776356868076765403479107203424230937120944801922303522977941624454623661880234840666012918895615717428461239032784646237795779437536887560430793280629510759854196679309014863630774689391898549760882363011213311642866954591448613973861372758237216126875885442071049593899779048761607590102624984747046093717028678214146508841360694152008812593055771486309829107246542604169464467709031550401987121911576102427243395679463507711769143660718386839793832589754909401973410762332307330588945213515833694753616493286907480302203917606900313017595106528132253384981587526377782626104050827746114407318457497705996295023522964137471027428047229315566409148923222844406820262208648338484492988239372917549494303422775931704378248695961669284428715812669045254621052581678268439856391391421489897657343294969652787478893899934235565369768684490754997824159410483396284057145190683953816836192144280285347549830522138999602882776200501421300968206837293087705314653607547906443336781229440198925468439273218723644843524867525543443729366359162681044244034175329195511609857188625795283855813705853581036380787502744904473576016933226875531881263085866627900937837021879819922116993712273912596209589265582389633216915640017525196352051352757171473186127355510122116262331692882420892230333736749892094502266555647956969667296516745976197209724175782046298965024416702309054817168128456944410933382100207515550231014056061139338774660996972748896079513675727249038548840608935946072634182370469325505698027045935377734213605140814673256499310152273130158084029301939589034228522203099699706618460620131609486550207410211355133169138660190002079022800664220249305548939427076458638243846914015791478910132173249963994542472667182127723845125029631073205342119264526586344539888100489294320831716879742946711393189106192666563500240852622659140761593023559982029792834493043241666880652112255328957013275888910410605166844064998122350964891106189617269382698990644754469886261318188143970173507069068227046741624790311716889791728622637629087690890117121006999253567042693234676873431167952860798118356515088303933444079981337809896783318778649671212422767854227269259561291438547645304922285331820948055901637088886549445110217770766788972077131062664645424460280817044368188242070127998059583105487347307124687154785109563133135264178111095705696457469880970918673067390818151639496689041930966713548996902394356917685002514652086313688827831255125449208484135396905890239234161452991301625764519243181718668030367201262691790278700450980976678045005146140390647710345873207485175382504567283603154001073411643150028251623243169541689842128615318381995121720473896106307259205187789998932107569151242331921055368307530871291849723861588023251965410449977652688593929275831732496470175985784730443891604252799201195942529877125569070569253801602161102600529878707607955443355195356311245351401221500019296830988764010917996043133702282779832835398567172397903053541292745118909547940872963891493140952348954032035140179927269840625939924467262753326342392515968426632740704952838301905331709145933539239510972258684412249804121557782337114433662046985307868007156130752108218478423661456410392564682890153235100542954540031386188159084091892672172198067414567539093530345702836851950531452885940065111615193123085757205439818281359649232725967416922494013203415547518014553099268403417225929453509113953243305394942110228124393765574851683229645502935716173593147512793102776069896732734586031152388004645803202649400595145676780171901981951529448980612265717799004944924410055804965776990316235947188176730054054202947227087060792183807555788975971031895927188405681710293724236851229825093494342922580837778961614808320526292969575856225492332093947897960866477867335933811523846802649813708747188698631229919243772199069379451324932804007430743231967831512355252887772246408712421280221486787736963040154231729782720559631028361309220861788847515612879814506566219371586482579976573334050777779090389261806840049238728832754367833534064355623145439843783114456175115468642964789718527915572134163462551602513075326617516142963776887544333300788079210308863246502155805701884232899011391024237840239604520598694471051697519116111759702990992020963856900235180510390562596479263629646710936187266080799879506216875443921162201692687447383382408427062943626963543226425199725394968042322118364334942221178722555405146201885909497806822115152907994678283247936853680048298212685809821959608873360882038881683610914314643344599266440966743598831028742476256320238845325065896934602989609089678933784007602471610583821659487417085589528735350606633659286107202123607610930650554307200377740955718694980162095576154947422239958607244410121183216884869133563283896411652125032531014754555223228443692209423841933736498481451881228494377577840296219879863582912872272265877869047949357116041618402566085741905919469661134081576969664915618927870114306324755114128784138506602232032997112125558217033797062510156951886054132183939372089895783145693210028505739823947879081963338229158795088473341249863333369666934884372492219405543503739742733716879045090129633265581821569449921573136378488487825475472884424419865574397691724539233775746534451880187136609080380440074761897130959464568797551103512199343609378866287680036432317607797325415268194826654104317734355487443655380612005198632151232802938451535826818780903536308080071233190801228651765356662647772913651808243893486597299485471617749129462715218557868440973789184014386074168197205818253292351501699279762376890960241173177325358237244676750198310048062595668337725264577395335955405172876897564455867461867850380090377237781535265466400150351223995591368507128785317910382493889163876566276871101110978731793088365392692917744635752401033413504621119891979693240284586124712053667123767248399991188820979584103071143340749630233096701728440020288396549221212753798334618290166121235923190774565708719678497958378993635775421080617996062332450858113953396991792705330457726381792027122195075547360714945461647228568976963546803571426878252987014882835017168500212951569412175903154429893593632934523029762566571455008345922658392618431902332615997789186429968148456934472027685574544384197942968016134024312976390315625693512785868186048929204746019659105847480768906918139169447447950200193233590111637511243770404628343127206409149012185937080015842137152756511923860481365944737511514560925591477649986660829741258215449191827035984970479238910286874833469576186260061952219519796716294530475334326864640961482668467074604455180587872989063152126190786168570454736587181516410285846331245842130101185134816686856845261191297607071292034865880812398825603232651391686206774176070877647596325541064174458269414283852766834308475690963390476488564010426062013562803965169797040685340183014450066192870716502967648438570101886794716479350984152082843621441654732534864127649099200363079433266993398332766814988346915539173792127083361430569479383286164163360989360611228447272232619961420022514449629134835155561918922755118451036574881846480733667115007009317324927975800124551841085038352955964717395630418773705301406463528651837362904665675113823128272785679742255636018137745880111914209310737320411175718641940914600525730992353189965151052554503567641325350160990173711841282225645105743726302316677024379197039817572970210184210108363051053956268716948178432213212631842319831913015068212294108914775747621476822651651841642819543849356245819064478157915856312656367155979441710589320948159858458350512402888438202380923053390632497362547400851948361692800310056222856974846653467039867520368471796379932846566788530790726822897602264510843827175895288461582641484558841678071832968948969251389711328813734107489255827244857524771295685475819019576833599271843797475252349736224399627853991463524349670471239146144222544201589281026791731604913461522641171022157631288215028722454807132980800695972822879858882454089721159140159691052458238875873205942928458709487299397857547427187894899600730882542463036490392420292339500247099896920319670075733182133584010460741253609842925479148271372204974054868574930600830606384463234174145667001840360857026188755830626203037127705620352233263266807263574956109424480558250473330717448345967194799010193386529001514903969262839541042948087428403653029217345650486018494297036659254384772262085496413903527649497042529616390350833216305701167430713986250180797051523362926600608521278033815709125616736661908204383602946056201501016139475637329792070756799085535446724292576502767449395475558719279572889355117139471443112834310128494630227601490280230594545547356753676597892851905101262586773071941093141168012151777581106658681772520106604255075836268647199137043810921404206489585623214241946408675332937759314377057242155209169911948543112568867252807821966899450341888110873489832776803767794900677694726358697301363566819929245942808855108468924270102695647877550241780913183908277563685822348159680544569487114386391481228283805965758666293236321950431178272457222348059789545551137654150477206358035285956442328653448270512872324313747037940554595797150282505972173621559381365005398640003926006156796412781159212464316130104472663170199193617426703775062092185747560277111801225263108395251077067956425399018527300979809662567193376018090669498801006905672947240833947604227105011206695556643954114414773130528097650514684560964104068334174563933869355730874917050919292854876981926806127178615346282734865231615068846390947735590095183363539730556365426162450008296130116292990136802158892540653287536112033891684969153152752700435043583789501117646336701614488979467026829769210309600058456318334851132259931154375917423095621946385610728180233668522313729940025844157118391120302012550190764535590588597804249932432641123348910400734106400889543103183518841503499745359864481468458669078369416133911803932457878354000669828790038598115421870648597384545665615244451226550303834228461844192259523969790999985795264831421782070352249454157858859988600388501540110496267026394209644968518185512203908300814120667888653561465666278685889026581636890703596736782016951642769747099476727860724702383634832566401997424470483028724983117614740559270006179996066095576913076333607914651388754599044467301968176329982779439195424912832762033046169849225591585767017908895088646717330293223115675101743934330176070704691726245026866307456055112005640774942693598216379974168039120846103113532127413158971652961273235215891147596208840892123771259112399600125982387827950927488394933634303673704844478446669667844349097613358074935710342924494344970231608030203681223808376206962280155579735799340201717245013652870864350842663338931026408042664786846447522964209313960915684953096644646365909610781218425949149237779210638695676497737449081167428613877388142815381193396653019045704842835343397752377667777644496731919526376066186312181154778767098400528202230448273648979912203233684935457624123921428252226672139234766436728736549209460763901937282183295336257823733054383531157064495395301198005554479049872612751429615522164372823845785406669356233710884688212071809936599875231583331281951869564744498480453965899925075583566751423943738639081145686416168735682760708523989099844634688148014336770334668965911643513278507542938833879730170426405841101236046695602830285720876493442595159666423127931088513771863229221383557553117257009023938577239898200286850835443169928637201860998662137954330844863635643730280926197346547545172271296571177399998904388420817166857677682950957287945255949355775964823343061466176517237370932385405459125318438355327101499281962489460348931082175068087573067431956193726964473459105963801459474078835284087118404686578999287485063627245863102290439897779872604328630196958574011361404894757708817801500997465296764881509313178448647918014501391551606058455745549369931131189500163317390146274002106167343460839512625524306809636554763205151368634274423282362630571382594416219117932054990979488879032555016417608930616780889336683397755365370377021646107050258946989792075724038958011030587563080204798791548592848712608507058032586280297899008539269360818202574841328256579863278172768599702085633127625120954733525134670269800355413403913690792796145972354578260809149780971701140197678444701542634018314516552619641715586471731459672322161383461043673832392480995614906645271628190144390017842818190916877132206501781409669854276318896763330946433161746681802636087365754057451579338121900443969342351832988029284066207753263391008787607581182139576019288744145493652897835798152169404403718490201919478518166468376472313824710574674376850200500200497272059920610100827019809779961255440980523477862204026796424605918901614399978591323912365217856577704891039432566279459303028753062043440525413514380266915489089649728719545149287774507446273875539780979631312545074813251603760431355241460586918407108331808098323699028149588891624024852636146094957034444414947563237126386044121912854569750375698273970367319870753762430391594685672046387641423520034695505010432447825877333534984138583107184667849339777309064331106096157933722724929235745486293160470488008669269149372568809474784119495670489663526806211857847915061149001563303088286040781604806864477107473457568526021322244334307734479363038499110281622031290474805163137005417634029005649422374010437358523084929371427946056051909194135804744393558560481129493981398698774494932121201569252917869342250118695012018689143221153414344886317770072110639680978272136083982688289401310588509824484869423968055921199506400388512013904056463434616218802866197328920344948485328185696340590612127810757070221282652510940023351081366563481025275373800863369166711418962943575445795506458451610948971001340918715246222081821202621389890816462746115309219763266116874076912063628772161095726286846347352564810551871459545306918739711426177094205532023130880343695715872358378586035816227240196337963667141580827583703627042553595062144733100145610825680895545167263364243962822483032933521464553416393878869334025628090043098381982233168654127341202518171872627212247786322956153915718936502591959231840127108079892255292067621867915225604865126921783775052584041202367027637783639963388062876535787196058649203753433829152776378058435364277656347777533197248218770156446960029193333908600644121748831372868848809540400627707311043108647938311505802747602084552745321226539316463649719346204933599045375945203775104250828720446669955042215493766020543999289989253307481255660504255304882732127289539964290342392822754132320457801738825822717623937278321209570779074896082730228614225506619162957370779264570299620107790222042498708412845059340985589365712266889211941944731248572120591368853562347098334978054698795191875045917491929614579561956193715063183074447236505874458316919852343887278727305847571207434406301496680119398946009607159962574425831028017392586325759268095147424698237637768020110436931205654179220869981311454180944056753994537838536985120518725094594993469199550272168591044498600116013197451899429577756112001950168007701245815180932157408448943624542619960062341440454148504765573055096894774871653368335536060693834779739091856159998673349198040392870057686855692856527145970664978803103501450891184223012206933861614287401996106287769693475121914257629651952411057354950512304815220615135676444304411866262411166894465998105929275156078547127448908783154695386878573890665947109112553028990580769351717355342149021527744571318514262610992208292935093521425294281678839492902886840875737857043317964947842748771578301964672614270139686223103669824653445609088433277072663842621320990778736629211726373489670584271891333789321324894177134913176881435818794269522501546215347059949813320937189267513856035577146968301948616493856643443907567107662382331002971878875662647902280353009034255402333479546275731460587484172045522694341618031172709012836468270033117519829947547631858786681960113715456618057126411332672901683174589163097983595778355070703619669134229548350816942012238448513217456021799457658648272094823949770784079753597747774950818677188421770589163006118275025975176401482828897934420446893010161250536225430989313503898534886251353413634215147352484077147311345588258003275085353808944101220404220626203558436865653664904331479276903866801781702084631477739589514233862349554437732041899016221678585444392987773522818578545667165190569716630936155676417977582074795805730903722361190506485464555170991261761597831868894455814851651974604253229506656585129992158198735838383482151612335771555045971557149186217302478986264706430387917973276480287311343345847884354931146839625100161808518944406490228410703480496346470314551414617957070319380783376937297062592512694743243426672492151974566328139866627222258660838672433100988705709668876202170323621089919284643158161862527622896361643881682488461713827611363247019123837625483591871772870155060899820088035201485298380305474680585665765134882674565334572482049552398324109057776801137065626367046821316864397496288004082153757726467921159878905949884742684286172630201064537872830281099187227054891267562230316866517276278941803936212851365978503564000879316793268647381755104549169978126234945328687892235492315667323506761883224655796305338022935656374544619730873992047630103263275044969290115414607761681314672742099401128852540670826648638713503680223997326901092306444423613746145579123588108881755795842271606483029293901177288236302202419417735894374719172693165741817505845916091608131329471765274054705947883789998448748095460684216454780480154184849830271070805287990180887540033605230481347815832407536373708350849861710621186164473925669370610832213144143506601543554030565512166328683297200494403507882482048048803550701434181396913033717271969527362594379061798161052017442594244517843346839877659734746474348715567365719718081599409442239614836605142460608013487071433541715087099029735400250236444288302452236044336664319459526868002596340655842233860059090450662439716240580035955857498823070744193137688838889167166644434312507506160125721943771368388799164231845922908591243068667122334576131567724912962308512501373767262438282118950999328486260252504654618014551371577677600483625043658187114969542606015506030648779781273564533758216225273540999992780369088587658533683911086710247600260694765857356009709602987534004833900015427665055402072298883257089681658897324339597583929959388260168829349985066981942937400913294759081213879539676603339270035946421797195852959144103696335899568723033369857959990054720418818665848500252520037129962645954628994296083974151604404901325808067553406901069526496621763319859917301359624744991390430768676344210733036359834752018645078482634347704316738918561692351732916486052700624986314865057664932163736068965920670839974896151272372343959109392605481428458110330453918316244542373472405903674902445819550967263502205647233216979012286947552863905636937080534948806011344631399998055902331169930302231217480241130067297984860370129645346382909150622087134150870464955071280118030132854201700283007871399199241562318613711700049289059367469822709129134030982254896093578943831252780901334581597173069281969250336440448481461670962769967903977247090875546035753691219298143227854648159982385801684349985877251683002733508321634365667898247887217208101872951370931172163973732598632766449046541939895038715912782768271848064567658950012884286668450693117563824109456263204211230661899865518389106306512660144076471828274506516521690198996804503195041788359306963203155564693793345321164171269287912094858659513871117961296147261715279485275335895815257562405902225758120962787247378590880921670076215363091165586350198281315178616820636695949337214329564100108456377527841189252086003638233377847354011064045501925465062613640796236532653668973637042292302549219452898687812580812291067493215534142984666548718944673953562012992679539728551858202591952749662784127167046377083440610815278830370213294758125433140258934225911866258488313445972573357965736052989782326416328406254046686077343950060101189184686335419025838297456003424604768960740721494313403332977174209061837232727041698744473513269407118338763537005244310354977935545088138778309799754783717367120445674008197279148111683882162766901916343039393347476940537736106122430008973137350759341084394894402719104190400787743230625032677730497909901903938223872950056278468046064561713158195302742432124666143137840881475806419622263598486710710895993031515520112400121917918036943105008570347844685017568604712260462018475039460267898241786856972954244563225027330907037679652512316703076668840495422157031112888596780644943864842135147260590633143673620333486403065698726347835101997002233649923976825211012082055021463894448209782614613743383278622276005973120051917433801165284986278952610266570980894256584332454651052329632871860106684986767827518285410593875655546255546596204559516143341935917095400972462137364901868348649465691957709394800191203081465170613419671220710697260592275633849839631190932091670511475539281589229637906558259977496719475733734082312667717389289625977061799963246227945288521428887165169590949070088528916117024595439478638399424992138159201078165915464406818401995454564489524232778018801789556604709625719007436745236675372084224568736489264701914961701329982321116568002157507906154343393190743866724880491316440237409233198676322576553527427212366974933387659803595958951860739868224977729835361088960182915233805422628489027779063739408374797393297403933787532219384291293323658210842104737713411299651055816572676433762175190129791930074556672968200222434849806372781934742259222716805517621197006954770781544900718838285207648459312420365035522536705840950578447153140420824525976784747704633406437559903284187548812060478356786348868509887320661278984562231202628307645334827061730071741431785103746992890481261191182839350191343079972077052082131117117366675124148896628754611139221237391269172833055653888889621941835885642152885854469538225341894128872672436943376641980596389928450233632426754944064741092589834957746556175311585921493266572852717529826674620991644018238585403172360281800446991071303794607293503092828572018513776252957608050552228463823519907497513591003669871169615388942427013827609361786602796114374355212454910312736814914656960680681771798820268343344470900312561311227596501367919534755161228297833665984662001466520752815636459896594050063427183604981205257824862114468797217012440381689275282028689283978060668025844909668903290835791810673028263258228718415265257920349155071815060596298036606048241310670566475107428816712391902930494248707599865908186662978326794093623077984038728012584715136657564791093105303948847964714216676104387781109882075509809359972743779625089005847684477115960079213742313684864598921481068001517093359917408757071557285284846366899577758805391639777238372795782694546055163100748972047552287337338957656820460483626563478180335563816151629533307705665577349214692779221461102223961705525736583903126106682545024660824780563263019148244778392699894775955059993679251906391037410776497502668894385700866409273899689246741807528225869043006089186045350584633908659316423666739880201294332275338791481527428869128942726017550131373267525439770444969371530592636591562200290645482254004205505566305840738000753635129781336595846860597095780387145188719047725090963411177174369966353129324490183859594636967841979555061920818348275996905739089940784233845744661277176067182042217686309208633609644654322918494873434066195488221658532647595162588413208134271635860098468632773132485753293209717377662696277002165998246844082632238628644712639131051914698645153954967116175125293847870252408129768080350633631641336577810707676460823175057151603727326934809487937823124110080042447033430916034182041270237566660049045222383383233757340095457000882120142595352907390413270312739345589561451898246809679200740094415224610641281691518153988242285818747422357745487200071826889620243752968926119131099493083986431008766324753197953908615708690688724889050272813578749236518492182942711231740067813072438963174988988368262565157627706842193966557371720511585029030432595107942070865001290886722934858291864775203634386942934093563784017677914789067135056536390034270050901105678017642209992724811616434783934898103207489737274882777716999949086695659166354772742119665740466744469018132344906715626745671340090445654917506955946466765578448358048461199356916321453353329389371251898325870002445893629441886022500168148966322720505487233406712424835487083015857408743824210591555727695185272934079809465036483185530009195784926050039766362753036609107115361593544930363078089215919961863949419702612274672741208349000093350364332939991885405761483787858785504093344183016647495753568633925663703799306425710328233964516809012724282259646464723720945483555385301250950398711211606006581758794405092757947583660068251454557773689209657031744210697549109696341663632647919623050337529539902932489839922924313703924519268184971952670545968923413207045277146912221438498223435284204774957684319106960693227383100343902894425962978555707696205133372555447593769636874536028124132942889168100447610436196799115273751332736700593959246030151510416091383191326871504247160401602117673135904249541547974666922084329106610557301291506223153933237274455947530549961698993396138866978482818528865493421162383750773009594565946446040156424847727005693553722974584992238877514025822048376699031930961849732331694457288980259140633780471079902595524638322568562020310040035922081581885228134356407659233745175847586644435876994954680981463740204763121982494386815454853433692056903199101105153306357899038045721363094297181241772065874474448473347976345928451137546848685810145919847158157467597801716230178085443039487147101295354077812716054067447302563833439179941802113638476359127411249896642096494896431714969939575638639135500271857501657997247343302090585633474384609448392659458717939513035008392470101682597015575900115632555755747414759078742281204412053018882746664745513948945291524656085179869413878343372955753869699988057622838140077491856000650708190223871089021717290973424025082177660431148149077376011830751342152650263979797391925782921353833371707427528561423246700145662889396973254666512207540131650052794224209943270372838098138703945889653893861218412553004955389588030196940084657546535751958723442543582290788907862729597094025901067776735835676611785754716212623507711238547441120974243980555098102449675751993098469961961777748167893434356863845218230455639622783275983759445683571633430884562137416819998237777249669380711489582222744916491589918363203599824304920329628492370684842215043184499528755949823541133902442484229981315139368874984030095733042572232433192140177543439875036409724303746821648043732433245431214323867115763406964860197581337355617710929950878011613823719262716572972808100416519800000100702602813050780785862601793039637632715271625948776600076774894333048066989196249705175025483496768237401758448392518871506653230454255986590187059298139288227629697665523196432078459125473056861660795970630081358964517252562115172147339818470693059680883467342540433402401579568502677877822400224804532633124064410676171471777663925427546094479756438113563179157329501958064190895369870877716905973227592991954343319677347438164094304965106587999205621642217023820496207522176396075269480516097513552960399799944214224633807426205973587715365061380085302630740462689237556264617382046415844178686122656630539291585907620197001981153882762434083470261371378452483305042915210454495389196268510315558180370329374300920066761386383973850118106626672861199276679438542633182101805311411827691153851859684691978590294107170226351588856175793328422047359967529930508698573838232797667790693731025948704095971618678124749390987061736530683583704315819270088245609375493757507883188823302154140341874806825912891409630031720381390523173894834332417888502821745972597614653883353679989831888994017371102282509592427969302497534263261585106088298220265300562868843546947495605737437135247405670791262823330679613439370671192076501674805275510927927159783276158001435909534633117221182798569762257433917681840357566474380108218733074288897840391299490378568280093948587143500316791630772036648719344713519903244278527575585219119566651278345706549389133404220315824578352689677062268694592427413430492183426213972470485020431036099889564207005108347641870460968138417344911239001970984260889580143381419427429859008349470877889311659082967506127463788284328167582894970971274628194969634544264320521949604724959507375853844544973343711550037185917730994984421333951122286868452379985416549362418398449989137994454649552353738355064312001862996602574835495348238672768640753657957168046622686622566829492828069670724476464410628210397483600143184867004657671530579987607214253574888795036440597420030144746323168640573926943313301177747954957462897245215072377859486705552866525844554071831153139813090209968215762157579093825067903231753628280376851395456599096430955022822775043290834112277686179044779753610863829514048514464280338079518354066196049066332094361261544479310476580927045485632020160228070644690923061968878321167539059405104996785506980184085986137624775937440838014289461120797848249398589549847667429359476150756941935458310068344114571119586283844601697692824286065708711607004211596351408892349709484641743737948706907229860287375597497016633466173652091458212160831231070005299611908954293889692596562721391349391058483786865824200449517860169823643075062784062383236333826041591254195193128638955196473851378530130686155319099638799729237095110682319775587030992660922953758547189268639361787724943536098924531958565632453148426483075838413624236212390251104698278335503321062235869922072286151861085257179296928129577337988324814008714535328264911880541481277477286013464366716726308385887482163181206877860551143166045130435226244550155974559220279309340738381343879081004593317868159807995232974868790576658213253153740008781618243682751300718243494767134074757299357494218990489639192573140519489347858617312219794156685944053880955636455985095586926550763628960398344850854097828719039515543733281807625768173512166249902483259497041164540324679652463505859958352408641445913838559463487484683852731536323948777053973908990854981642398938763067158608411251289341309608406918746833597496525259436225340428565383446195177576620598782994776476484240367901499986855963973764123998105771618674863863758594950278865927682324438084443550996468604465271708032079001110540768069029290646879004330351641384093629148154153808531107938589102593472222397024502577709678671772861028488942408491545862229910961829604291849339338419169843703171897234671535270890394614008513948930447022741973160068183182503017959161775614957516486952605413817524418172215445559959678138844228150510453142643498584973785527944414727471925045179428766540122370146989516313388987221101915847199238991201272486276582158820094338184773983932251897719192917188940957058114036919620250930043808413339942259335426360379787017894119662411452234334582174775953528621697882391608949017783803962178252178484870591016621869728960926930771352330005899890046447992036495299950240274233373197595020260902442307275244226179161247367131163865757341453588605041046340586968905219408269305822261759225231952607665344332831043397949691784400529893087364264940216116383464485100726190457049474664048598926203062948803552215346558101001091866671934562491259724382261251988686586916389788181335404790234584272386236335248499171718144670948908234735909054221458218177714687025758314559946338228565529642948822655058366250368773067964725011256451509565901127829670943879204680223813950524586495435814187772807767404516755011222921284300722086788787148258888563501612146208857161150840096907472831204681580907512264377440181533334886326887730953385480771149795106733216735476947805703838126892246585942740098784503705689477499115278469831614118699461924410916460004835165811814012837825506411742815384892689845747662891738175655270514907598868078217721209701097053466174910050419216227658146358072107901016348179113927379386992028615406980806875863998170440252201699384245613887876922472891692217976022681675548101797731769871310038786746463201310916263128494109532876782964299836004001954236544891036063139064124076108378109836100431348006908344919472613054554189562628227201088919482513781123594044546423378594852379260716800707512476177550058796205278005712133529303555480871583276147320288551714783484567220595908062817139868964938769145982829176454409419749125071797023037473501442879375454523728773064571723362631921711084117313805444919960169489793079460587857609274633229776742356530592248049355222029867052096263044393343027421199562466728762900824842977486599652541381951529068482282378904996136176471093043142313143528738246262207112967102503693432985362644956158738020535539893979530152712416151620251961095269426131166457532828784880930415689889334669505784937648400669593136459460853105696937272500505274669325879639220906917161948095044260664523361955392979024876696903892804891272614188623817165887826660779668672433727944206489343629880090538408119774406731434072578072307179790162538026562188045862887940120183090880486156466292556501670800630946513151073083907240789947584232862640599853345250436633557355770688877727150591693363421219701388733120464232055929129711573121765061330088786632138547784759314728188572504251510972342154640062560860693250353621381322942996469433336162880324402915353412893435772187597650615950387701466705740276751268345722811059162494947149938814942795639322315285260838357802226709458184009292394058723586158160874485489258115379863745607949839116673790252587029709932327339696027263411478052320764385173542072340364409484773435825941528044308892092672524850023610789172725731015836516636396038953277861097284681851032766138550757588105391140246755211240566904131611642460470701404505038682719224263374263256281226687865110118686588587515886185007600029453695037418337314732520645900737774013950686467966422966211312988382681585167932195982804682894751006988544972810416536298550039090808480402005341973387347981246128818224384230712295552137611353813680342393174971853965029584971821237001515972825304764806528678296113219279297381646432418297572960675901803983525515380346010159187881678444459877987454078530475933744935380598198971331647285884175891328743717415698074365166638681198753281916214776976902791613143498759140095613540540703014970609758364982672994863418910392677891183452100936708056435179404013706605820715683888913674646279410115680922043044632757895176533758403995252156946960394192625891524537919069509318656515484344004631098805865063715312910013781218740626488153948573355905979068202933479492616405760490369400121858200612405618272516325741542046642355080037368332837566688942662536489891581519163159090390357784014043375702179584173447395226478122908800536583648694217394092254260518580660095054850801155748388682204736157506976284924202785198344117458046792329640302439831394119741503391652909715272932378824469368302892505507328078012104113627444294965872050171446834959405072866831388340284837328323041324301274042813478545447977876106179816275916626560585174273329307311154738368269627822055370779558732768598604970769200417652563762296358272227711503600067964210894289044723629820741730450242074077958320975939069243489895158955213058405975191324095834961029658666581755737295268709238466594924538606008317030491668667980269123891288319324457928501251497357545385287041734019062847038404986988752572143137840785694596838345734703150489610104012097002747009430511425083848933284057038306581044087727014390059189162041035675121478514834650908898435689885822541991594992743621835908488605780700887336348190965481811309121016191087821535853829532805487398214348667400380795817753043532364197765764392459600931132477615727455977500858563916946609959326822860682287722756605872375687810841185093432161103386011915003191951299479545542150368491558454383091304541527409048303877614564665705021262950277026560384983965991689780532565886488202585833812664026630458132737136763699558036223209196485307753749933651517117620239406013648396542458135684483831230711806433939101659785845400188242970661400719646866696680737135622361121557109705143459594891124669662535215299217947215239252068405981119922824094607124602796551073696534312717360378815942651950978232406085167226471797819219827149462278265553010913045281359403171165720043759547376220166078915478249922272912657028406228054234254862480662998606337975252918398361351482096404315271653625078361268381075530709207151124098180958812739548629438182825031201934663066656438396886048574756222493219148456599244736848606488970772148107319098118080139331017834097187902491354985851570306961483455906859261985312229010353324910179536976567714765857455719570522623217490433515998321681633353201668450146891793230260056382291960244572989168609975005572586673359078641140612521160057363716472792598037348688046200782484965082750782077585053454422058498151373771513655706770841755660742464396735230738967091074705605972293563128529784954341322804931777342294186940775084704430636382156688297026411303868263190653630717273140080038867940880408611126256963353684714592688504992562787914023953688614788869804613636281769232533361492702061179125125557255391841075827037473974017948294340544304241096484098406221974332712809308521034219769298040232814609648565170427634843802061083504819621986252429096153610964428843320361138311637847313285903473279207690143329955683750384872136424199234985805105282964756184812640407348229168396480891157330694546211879573073898659319634409576981820985810617472077551595770226170436975478163627978499671889942819923979265604265739248093795007059868899668548471437659444225528353380419520142807392430442139032826821562372174886918148840943560654169632115957166643130570975817834980915055434297555103136338275116660312383981286789843484125936767075648724340431647054537765877273733713860985012634769392704225813328604554711403338897649113820785782464448763975271057929197197459859610941339547039161687248172590478591096864882269893056816977443346209401693894980280093249087606286595361437166213965094736260742867098692233613239374527199782990282815314666616977928957240754382438544849672279871293624334310956007135382239387489741390203187321100198851799304193509900523016673632919807315377542847338003544527155762987023381901561823513698874370894745276280412917548308322776545985319684155445660734467625392980331495476733192645833757965294343739945481610440580617355165852612084592714421890099016283322673755478432726241296361485268115858456508216569147351173961651506476121228696126627722646103012098648064414859440982011082641476162468538945706794425879208933192796434188731115514825504894058095059654435575427024772287043548393702675518819136085163439149405602099885586453267484453159662127486456077898262295977130859596188082775691667592016525663549901981520862477454693538913048894543207343135502346822667103792986193576226052941191994256600945675469509923831331828802159976392086455594325240575993983346752708283821590261257945164900846386586321129157935918520591658298881200122406227183779835879765941482438677265916817351476777695788617136399331158841574349507652836943368916273711895695707118404633556255929201890023936721018783098828496951930174195986054262639905743018261310435167708640996733935974476103347883780455592345814287930228971486111248174132448401934733018703353120738989630972313531599422020278307745696564189088716335682503805670752756964745248260019306749838459256535996440220157430403798957351116922090378902911359673112219293495289536731992902679384019196961793488935455457124456137172205565819364756319830450823040107708401357591868187485071030016453133252166137168715065940528657505240060642554622129814023231404594277615653198731475490841999051874161405587037812721916598140099169418999568425512625396822192723976258487971532171452857196625679623148989959803851102757622440103195648690177205434893557284955166551607384879483785196303239147349150163110863938307706003441576537520556645004651634543654223344349378456348997250042202060330410839328059342142561965352360612334075602363486574453715303364471988170395061265490406403781540653871922449856553800022269438759120366527087634394664835604250372504175882534007512875859890385196397334401534170584003414973075551379990617047158744174890161659681188157642603847018653383993323327226469883372060024408433719626279799191081060675200912235834742156096120029487411174394132993600703470200890345859982102814047506132737151225158347036585021268007372360904423296615018166937712575535203885514544882430555072751364964145018791032361514152779895802282517838192399879347979493278184476771185617856592091249322681242939959703269565918406486802060748560846740859182965221216363201149770646335460636231644633742516798622051041201626220415718969043414935877844407548901980346855474825353477268473527596236849977117868493197204516252095637038091810532125991568700134275422799592409416339257455408241961627553345987434196404127107360641137297649471383102222647408925479064473741232554988575928932502720731822983813833069503324402398535592025280868626250362488375848380570966644938303665410256665628256522102053580948871743402529482734015275663512437978932337525106854920548041469341675305357290502695526571814379180421963054508534932689770202535669842574490323168067377313001116856316439536514336732192212146130111952690267631292374084117924537233228073298515779864362710790297119882006672991624902687173254761729337985574553113992693950218872284536154859806721978780556774833432198622163932367438558698689617193782755647752405052361993264753455793927928355870501514933311267570595635998566192096539370633180565361752899197365229972315633551343861332648892297807657525841828520111426265156826748233081347743044700737472590807116894543809218910060836698844087454084711109321623161608479509285122530164426813841375428435270797333323850758218428676812055587831966637773747985129453236466196074073000373219738926651137598878070643905792124944729487015248410889609277084229271411217453189786919601070711807153483522811207250481104422028015830399639288813584833275165291281413082576608572046191978921831957351223809560365103350921764281757855093473886905918981630158754832281595948317759435142966746100273757135149672471245773265884070640579392390681065497256893998382315820594779567161982762550352461582332218824322445679100103707917114155248176226062580435741621937190977839254618023971111468012815025257817916035789486539260342810506815283939803513513547501833074418017997407914184819468180797329666073455748021787431733033337757751052465746222967898737537020566053097735599001650586667332459641908256246447740696766219589848542882932642760092688337257863796710705155072748308913855605877221141189875548190756814436161006444863065350687086554340213997846391256544951234188600160306260359679129380508295690684175394324365172047598454138257348321886121377874867855011453656495728986407067566823995259435216441600976919528361520671791048168549701021049599014542444982940223919486379008790984400035756213012151986005020405630749391604867457813692448982013253366547847676020439153219903928824828102109805812733827992776349713772636857721650932963791626385501907321052941676566549985339719556801527642666986051240567208126804453241763025574241472485752340290589317617385584750718242325463431931003573300368327528526856160550461427089411060664049100770790724353869321240331953994064135862366544041992509466467787858740749700982916021775633715275238175249635644682050104446447513357033426071478873481943333187663491514885177734089338501740961368895846336527116365950791338627885452096068341377615784593346172405435292494423356142206242449765176020316298106607483637117172349927613439909319218064725679528114621609492612231320846663194413268123693609371328417301369613454641098106280105651382028307439296163246582894527932132816013077712386991868176416899100217430025411203299667474221650493337882627582004177285393754984284464707366997680539967582803770962713303670879942646124114245486424833129911869890564875108609746012660888996039234656118481263317479979160150383489603753698023167211839535668595929288922363484159608567046926876738418226134503239265037647541701310814948950274720935572957699802122702922938562910933696299442879483973864457163632061562603140205892043877387392942237080851298567951158036991733745811958069976867582867896544879323563030339813637567914752789157766437017538774698700540342660310857865412402309407628568659887511993902692803547075189054050465435596060102031802540822427538211345754553595772287280800827507508536910215548019999425825742550963630206688805776375792521481575387138013829098227453157762246127024527385063340278450418963054923750610346200760694293166354117735180406928044720826025005805275389741070259886876715639254252104039596052947805854714905694785541707136868907974146930687070985210430283401380893468257882643514824919217005256871710914177654261691417746171949973447255783324600093991394880284172308516544762007796800842926842259048168542711167068852500480378816028306544796652757876276407216864331771650533651254537563679036319024028202286912861784052775662716413842169279935529939657392001593199770093620484804961957830726489734465190993634408110691652184668033394780250643774624619725353669877625327181334328403676681323453026463386415476707635136435731250222445185184493895129439796869716841372717543750635330349206666296670458702353856958497324557805916154525961127770754563896286573780935849597774251830478321808744241363021118091243431512098323908363035996754825566691711763529679782644893040482460319388471230108424654278664524349160782406215558798210094592692814437891369040103963085891033310485592749058038382716461842444866710675538288007512682164469756699748290800560910714904684764586823601928942711963311312516873414767983217452678965459238222828191188407582422795330782183075936029623000321365620243664803571344556673159131929422455588903488659974245605331535876328061833560535657183601984190046280098648038340675621057809803363595890133941099113547524385290178987783501410502838401857395931305289223729325095135963828684110496649261559574197065597297907739336982602553238145285717129731129802535757617077188993001023186369130886055300983039722157719265284935556567029855310722745341045267867013914340082039746861785746676467731277282817502645878654356747226648405320510250129992410041969289379480636454270561846436059333179358827581017785497306913109231894875200224129616784759131460524233157432817051442560544331325755419705753997096491170012932550505492296349384044054031661773848535681138699459469571298156569815314224195650843302698583100872306027156871416266845621097955652561257000316877383494821361680805730462036242540906049814694167849002751640508444304298280722916982070028929902056759649036701376634860430996288260991204928081405280589957572376900625614748710478025667856248544190111335431465848843347749498379129964017953419500434477450290468783960866186048206812838104853927132989974593004125193032398010392876651246021484931709039901266440034394430822976780322572715170948117712107052302654643027682209797734095783191691800823173647263252417210559710890938065476542644352300562293173949231996134267947873907743674668960756867886973535504856024804187896457784433959053448089746679920840657751557889698128317622640888649403558883624402622120116267244905661331774198474459762390575242030084535644590409025522669008438394697593525772251293271508636282176287333841052722020601885784222196092452499499404146670218667983351997309802525685330860987311044272207912163184738445092386367466565600823805406451747735152149830867134272895329128836489009551859086067405357432652126863009227638623347667082613984327868807590559463714318923226318720600192477936716207480617365713385929909866849257462230660087986025994401600453824843631090054262770948262370621013187256403873963809729701057422518481021012881458459818800618163954467962426037139475497437755788451417353662320524449156824603714852887711281054685729981333538841829241256896287368632324021181438121621432519916322274742199836766820212619900916391477955128034219389479216101019487487081515591186701441431940202890197345490509138971815339693671246062008273525564601706838304132665140490299114014133204800434943676321662179388438694556125830801022811932901541898698960870633103010834315614430917457324168780491417432803728351197876007553431555043528309904490846316386980232129929525492202811229056806603168915099001279426207437972029887052361811953814981166986681237609490927616593257309575885168325782084851875282183142991562195387352738795347394360211931878236210042520585161883226733751440786616219062346459774145012583136172910285939646684339837899085710845362778041908919079486420403214039938616357409666262316882473055526461671644716425057099926695315028392018734291259689622008712194681515570795264780401725498771670560068771848928333726896871718544083928951897557289498050609861295726590110292488658952303333173672745978504711139233769023070018373401998368002608106002985483808829357735668719621760699414751105636785231123478929515610653656253607376223352398752477449001436908928928966370498420096231536114810338135347354266235609976556243230775657792158742285463504382153045871031596192858545535776818039682302683055298141247194613172570051232706587081294758542026496828038186750641567621566840235884430987048997646374486712370678304935601447946172613608538302848328025574869596830273382765713805440730646313248792543517681380835976931066701497693756807383637628532884628935639694059999628109104665931413064761290570692256041386551085290533692131868622160338296856833446249557353543216458215912824664402032975179403608205928414544159823608724121643481707605676078133715832523539553323233645191268933910118864753383461766486015560358888580389476686019774271998354610670551297572549533021491482754243586284376739121102500461195337234712938895951200863888560824532399949746199325549047241962900740084829004518868951231654028548639995790618828806676279189133326256806914190587609525721689978865298405147417061295925632898605746940634706780089646712733734236157044356586743899159683117861454076375074903258296268108155199779418767089252229915637206573611227619611953632772508341888338538678085173000850299540975346936906439147574089252883488384222713616446393941760468757350585614544459157258078713962537063387006565880324655742325395938876563346411435737776723404420456860582095208614664373744832827074359256375097861372755903373495003409139675720343820817104680301034531751704356914350187526442198342749288421438638624657633206542688743254817221613805385442660727887685450238071103763584449272424686611827072570652374525808394026899274988158008835571768336108101118126025162068108189684305516466729467926194392638590906775863044984019196818085524705523273808808838567766986703620884662723507030553215163644326160050612415603794758846090192814318866523232255395774395956029301057366580927959061165477065394869576974954196937162361165157738408295203733301360922804799824216267776451102641103827697305582236008018943141099452868709143650834937971455987636614914983968336497644329780972608011831612471633221410714275459697758806784259127354115507876050980741653935006639267765256336637758959784277282691663734959153352031289489672997147180424271958048033485898127522315785434911326255930801543588545681281233331992791913356609714844270354355327905301043221986819292773227320488921974986356339044543942125653295339385769941008331614175839025072257342670520884096356090272293993404025019847444548054189141157016937720224397008787890378278366934264782946873612900928403594419662490826934368625127278443995207770222812830272550207801040545576015562989114129516512157939707635821038824438008813339486966169831973424379245139363033072042065212695053066180161418097097264778700926749646257268995665569762798798005111852593370597546360782154512660017010008710872707506344631323533733762230146051974853009035901152282821518664990476796335138523937578570784995846115410324467290405315194714276087446140932739968424932552886588641561922357456526705350044577073175480790291939173261084358910302069183491469550476750279952626939516865544423350375913230585255156775985143396863668655548191563853881125010433195734216158403811538318429978072222404314466962262561271923517278924149060413528526766285415507424937875953767145947019868765919445420899590162963325392718510340282758650194851034431961818162896856444296623086560225780659103512415621108427088793474403597937104599566914545932058933548051902739805107495300706416043067280459776594683233042191542568663721921623322531467370012973949698850628157850418911709966101740222056357111099527435814716274748570358084278130919612492408843541163841215212240198375669659718506342150253769324734699024722988454525071852727249571873840315225980473005274306824713839876547366362864760973248731651616462930583252975931837078753021441058771745223118004768160286631445684493646952062667704223626686312646518427105091635552948928669087139061415403014223451328614727669200603226870118734878850237683935539031111991283974927163365654987253225380384352333379200489399421410479432966689757268806910350859199988317446495807183809885084586150395513836420430462872347139732855366104130594109253121747006316452840153599546147974345228795391339924086724084196846140601570802678525822264448793852860314990096318983016048047332044775466704356755552601126343903520742977028846748692077954525068105857444205157984776765358437009177491935715324516515606024782440958577811143925608028991015281266339222247823871528899489732523885176750947155909597616865592367930781254585860231492746544398582590978617403568094939762057796876448101659240598397997009586416624870528094915786832779171517607892762792120673508426004219623141980401392902973253185126541114856661254449284681813035616670445801195596770860791881682871357284286766570815627343007825840151840628274396976156813426263106946968020186304663684618084983969396847747539809779457875834449480252268438558339600483217657534595631596717123897103125771974369754789910815632798174668995153310530118396665029266362770713933343859487992259670742595583051095674305794245651803072122703629273674871435352168174367772380305053407778504446202122234094987857989121207779787660733859146901292667624386936890831980775493036572398546062736639122461727020503800547426810501292917597334455070442274606808082930882579643870941357705560120093183799783727933373467067326434995768284248095454631904722280169904885642084272902798525501322794856803273436772453013586041669508205060732534950698082467360686394051950946486298587505878801535269633998441740694934554897436726283961234963429344772937683521958124170225769579297668802516117596255460206759361219832392669691592492160528921150958312419900995340498217608797567126863902144527341706270705906141240043363238581958809404674654983010536188357801496649718778068424695487684071698275961621368526844940690710290497307540016789597289937583436571892916822870392230101112923008553865881483390241102510677984800923017799160596902350114589151783249103226303418537045768140887865600453140760081957364933543802736306757058717846804223989696492557751252466201005147114801317165371111918546569386876285206669858195666983631748648680122832852748005411190515414219762590339778077935915876813240157584307235691375930094288664588650552939858441648303853443690031261578461450345867813437818773248880446583448614185287008291123038527387168346026770982434776126130677821690369947215040246981823708481108908034993937299511627692311940557100724070242396219232807302646066305420956287000748342054169703223756034778602177712857979384197724365357213648090850278227741433034188434674780668444468174446541135835882525880242417436755007503031957529962961875063091462321589578210817484822362599280935533109071640496479323058928123710083549864363985059455082356398976808212385283476159278146538766946308698385617108951846996599682481955485422453790761410367747112072540897582310678597715999870693215913719955993596041221968692907542720658720233124712014502960088181091399339973086363661407010542339795997213150057799040853417005502460827867895810264658152253777120438228292202324866164843464670419760761606221241054614443468402497486519921375493840934582668377132498770715344320642399090267009085985414062753475713693015753206335034154555328736518720683983826161836220994785031715396082412912099652002335677084870953750927831624446125606308071081284047699733262175535687757419723423261749198454090495052015639752853044775047384566364972818655681244352606517516522031102086063374475693905948291737553273562095776303493195295488836971154992215016045364195880563692725228234129010944066273299779307625283778885222333233019198354064365525470409174371491681081828602523921531661579327436588234918088466949479078335241286557151091176347311694719796486213766197920126974037199924935071021526440411932822561666085627381353108760396483213293444584320179635209959273806151819588660303649354458282900125561405192531276237444548252643883142173900057307982403627752772114469481921944306586132462016258700000044565010455088486398224852674308468669152115023380506662727471021655818101689119402471440505017144440386122313494666495972894720336646843131525174624886663007723085054456551676517250724652700178518969205490749866062215580164968524714381111075273857201247078415119118766100226066177356156978430138835518772607149561577711891576936244773271794920990631620386195651456469252615144577764949965325463333914430158859813790725871124507996155123306271899809575218910709203523686150235301386384226406823799902333492554096814745697515510638547851905644486120350178372568770467563437424064855400290988771400162312269435036553246399959563761004606929452486828142924356954755533273323610877577959105412060451819752885127604792100609745758596216000748767574539540974213319105203103950432592407014544508895554106060412866795840576748798355673386096307394886486155971120359030604931214010903616794038537031061662679449748606349654492477040837531312395289784925263002621033538561319856119548786220782357836020643724364823823340951719740287640391033471646928893762475802184472644065730873306066033107299912639708461613212674444851722595478170501440651421032826290087225081095774814013084445453974804992056061903888211469892793204853808702169275075177582651241532542253893289747792828831707839858517174617459400679011644301018506507200285141040338670356338252555309427212694363544485667814691871607966715695829934581377164662792027427741648250674946779630920344238538208150269634136501653851209372498806343913274503329282820278843625174173531690631951960508975116012487549173884376420293039786613317010818787527886751249053840623609415486130894342732302724554244932520137860298991152621997022218082797212347733291838367973515553299867633226049007777916093682462221207666817450871053866150591440409686371755807052540228867772500791306909723066874382518880695970922036425800955766268045054895054665387802397735532681630553508543799014886921668556357648040734503368999901227706387910599892900628804074556320392851020040293819581958146703065411715121387903362374978362836267836070705909785507284654423697608670193902155236991405277389446757534561123631063280124449575226612534734831146053617515544632821372709784019987305184681885460876051954211497534515053458926128538642858241596753939292087531975728575164501272629345640640513879226338463594886357375237316888502167313805834159712249378758098425042429940814407324954940264477633749065396220526921128408641429610817130931742848849060818446137008485720772530008023844665451714612668386616877872877902135827764878982249496833523401878223188366040436829707527897007110166120169318718009283228551085397474934589194558465833068074050531455656542993788949478324159066659909323692387721777551163046100395164224354589286876495179928278426461448467815828824293663595521218408953216602057486767993976857023388564973925470691334550119707602937549749282590666913559015953532266017086633084519266054233462509196085134157083920634046558639122160546891942568539469281405737880931968572081455688912514763465684649867626835469995959905304241138667998092671620129696307692248093261968205011294164546327564551499683238742337047864596407687433925702138257516460086961763771035860009288488552408727346101606431696042279471207169840922374542818025487194031418297052141693538849902504948461314090962879107337590803805596925218431680395434861574667458130465253691650253528559341189961807628281561421136896685345510647379744263803138099237185424845526424605210114495914194264357155753332648943573645745398691843026807884984797461478949116906189183069070629051308708902608460486101241950668759200554846321940190352869696271092950250392677031180662076884851167906404396705649640254199059161179192473285267577356740698306589166825784702392205792116977251681758094701190244317553910211022735949768726892557463443815015980588553532885663802527098552886156788423651480839322175819612282975879103271863258221455858298862786467929314609030366359043777948055518753446120255569647787689470888812333688132018378082944786818500512282188504181237826154975658927868188851961669345386343652892076597808968738027552209180702997139044177910114009668864740035883178098444885250440386977988167186372636651497675087151204681918407400507408908612171878929785961194811319862616078334660797725314726391240239515762879447095048777028102701659061390955179436225738489298558591644790171728859904651901276567427304714180739339345294578054276621616531053940332789274879977511201642571951218761269968933261790601844991377936921342558043783228359540089339578156334842287065334021897191172900020176581455349642998386371355291633207126116680139892500456413383776714527540543111077396229958353533834465650086667875860157833980349528605295666980838823381631714064040859462753114030687445466880869480184084408225932757501309665318525939812926445195950711790265774187674405070627882127385476508374603700950304140783087439050611036894536764303152411105919551476868941056051734649398487139782909499531178199468165818025756287940954213217406362880160913878977491337818082773779782120877737484458724114391531805128878971765436181289963912730641229394037831407203580106507881021277148935797988580381291882372395192759362699862022727978541007840201241134157206726617453407403101243441187577343548895068394541974230291319375707436023989187100800591443647081085902469199996760410112599647462492812195422878509562860116642047032464775052770362133328373166189878810857615060360825421038550127578696847201797960476384658111099091797455614204274944511417410415752640023050973184652517375616013736039291718437052085215922945626492835416828367708737121365893309234445028337248331393425162704993758514045891866653150176178188702081025354492664612325764114043056913183071555242025656244166786218215416636490489904577760234328646560943244269904797894681573369802337503593064645986537251375820219814745885743004960191545461580145473325546108844885874354909927336358487930869222945106854060681360372595013990956530506239281633789645557833310736840826024655375212410863999422736012192754977733674509207153452374033507693303025497907069382682117104558149661392596844654082067654523966202582112827442584819668729463838951057600009438856433854926626123420812829542032278232002114305179257032676284917803053714769943858127527668460791303865264810933600041407606629497490906452515098055472960327622201951502003933862837953883011573781228946956551072412059895800626054474758735802425890653098083888680522281211523452928747673932256365987010694883942684613532607481751120278552776122944315850017584336903863848642007430341288193853359203045488623201184274188642397659214124600157919589077016973713353497890821256725889671128028124831399269358845483808751252922605667084108742958398542811590579128797495435307423879965860780744851998376825377519142376624120422840903085089417201259259123058796882090695295638682799940399990598688546183180930265142284116883526035769876611757481930461041193375745052853139449807013178244400426522839828136139674796278983178836504114442120657213311320150420727808573914315047687516174420960823935194008540299780407721292455784336345726406289518406541474009006985589705694240256186450610110849453547786989697696547448473413070794979954469106672963452018427810642183226558158004655150661420679059928825014124438633484138907426732874051283291218833080048325392904763716666957471924313013505507634267237377762158079095988222033146732499282325336054956727063041599888136601535789380023600694265028180543923789092684157440619734635260299648147976210846449011958837758837123381108283565229268267566225098320645340869260517680005342009947962028616455209613470662545964795106953567208618274400114460687367972391549961591470296070345553951522249368321419780060078685347187684890535353014556209960949102007218154438657928127532220148604027381356510564691745246018822396325734033430530888871639727731688619727124118129648113105385479628518626613075041468845322995075862050035301040546276855880854651503686473894511244095993908456102544975909517735314649654802135088919184599433838953512128753654741666945519895513231394263502783809328943415669991182841379106004980649945136413067161163503398420819299084640780015463682409932641310363808901160282756937745515985762214305497410100281389226730588853245854351240169267705605635441827809601793909073886246823631249365031543005071098580038526799822453304258706947196178351499240183999325872976635527314013028669701903229467317513959595401694469600571165650059950786921326573182384511817323825618441626740975283071456590227063844035503545173165045800369112807431098986146555485947817697885394659022151138932887723288105762110048634867336698515060439815884407426933718438068939374774177114472150707025141593651762297967767714214423644969938981870168555450542353053799957724925753917932247922188480763245834602566948620840032484266896539197093464652856785671483974287087363021060847174285702430327053276335538157088949697417208579635230197414388511230404288415996893747030432604220552315582759870327801086122692675444548832967144443925485923922715122300805545545492901297312245320533037712372335348807742763870081271831667643729157280438139360026534284159655490016026383115206408378786085191617278620380932720222281069206167836508418461538709385859881933760955774127591778646710020763408496497934037616984909489777003788461330660730821675317361719587367901421086602541179606986786265113068088406241528093804151776985521767964298511300669061447359255808013530119976168120297888143939623964095618832324372969596728778784703995407477921943250740686748127515452802568658373198741170320334353439278868647991922813261216250886837144352908445130058023063972299290668643514939929291158046210403003186487673456877248026315776384324720372382434035110527902797460687624446229141260797893859605699086260665708763426147529570928715695561484143464490500506253336113584115950068874920294464688876337505858609767043824448248629347297785077217193922210941173391164812358784432483775276226448611025064105586847489445953611013986971806337426650396749385721054840816704444463717216071705867062714617856119887404211079612554877001824073797019013354274784529969113175949525821688240419246209048907921092532568552577825328978965708098840281317298930206490396377202941112157457579672142727341711625839704684413701068816063842764429716123581857691254478675887751038090906038596530083012420684005265483912982665727804207038923777574108246844641716964632245784421143972016721318276566297989999939031625072110638101868467245252003027266035392273158508590791639864644999927942842877467246713982293482096682802932691319039619472588588810390645523950339790280174202206981448603527618302714383914690073168358173255215508742323491447874284782098805011727411283095567600743514449776788766805957119333850750673836558133219083940569512059260348279682492898197690158859063748035653652322288934080098933035586251069271411803099356076603387736579571624671574049409091734052131019702903118937236056045000340994045668821857396652997926611263412850250866305491780099828710644172116433982591338523187296512750867292894176808931806530032353481318220984090155261660476236491491552590736490873839512609622054372865654172497336020997836894504082994614354634104580772822628122552697786393576134654133130140856074739132039458992499414040121979498303561162327919480013069155855325723252701977333383846495592935970899065545031804818838989880756585896971742223490527324091548774546739017338327604012968754339140526131092797206530531550462076762588611891442522835387564781280438425423237147545207910702588246639936691591495164307749767155257761081887618715703506184483309962616754277726680597531372454952900687417451192414171909563386758173220058131293937292553774245081596389186587871459069411477229800658383025853584278326842489677321953033596633216642155155136988258545546284682425254306429653959342757843066559751268688798014224221167180431780738170076072124294897037347634206528862020364463956404807489247690569377730856252792220593120043477784187758964788776997871905996596321545698031814582898164894638446763370279937073348141328993147653303528859753616305760741640293336534536496220044752692103138667357417730119723532452614250894740758636647347820586835437049612638565550658406841206742458417273076555396001029974649060616066365957677636979844820389733421094000873285530074630866077678242420259653578735684624135268348552586793020637102773361077538589491034687392993597104237467996831173139279930247864306844750871132457074064978642074231466357563171441835586263553189559515111934072213833481893131037240846011629728372049038881033014944455782556964405676373876816415628508651759263690025717888375556965296736819494719308796766606685959630738989597281522779405178471965543307295507447346986334652891907453168098980111038888781169566459574724097753117119849025416980212308883018753086820761902383946119785094282995288608073218915183563085161894560797824523457371523708140841344224777633458647634444618560187527619139106644019145556678285013319059072248350272710096028207773680850198192126316379951562798740805856231740447845491147062297791163092309156147173029132818089862741025645152978943797432338337485403208128033329900059853081382607329907626785469825842795627744776704520185755099575067750116025400876588359691937127595848986297050354269224122492909373921852455002046400382311029691797211206894653811363713822260366634319811237009777156438472054463790474120322280133203739116259906813790860215423919133345039439831093137181414362568705385195988169849410930823807171943892229071974026332962857568728096776632777924131281704982493299577408044098603668775971645091434384301543922547125197476474627015061142086342066250242709704830058677469839898984361637882909774475606323442192176787860725719003156273055921167164516883192329461346230098182808629853749874641615347347603983335667299801899314663278805123506026638745286143954147114389673502983786884607908247139667957616141625519515208161189648263677151953376722094244054428792733048003422588999527819626979335254653155173187290607761995734761454249733495681720036332976252270980929465835992412378193256534116759437960278413057638916801753700634768927992045510971921713524411038750381953398121397933391926117655252040151898073257437702209889798208948086924124068130633219027406190518702096561394725306135520535308932871477421273621979367755730218418957349055572728692096407148784569163642863309719743219341260889532204179553156433966033287112582167521419383692949521445819982555828927909273793549702728437025569319316877980982979116218735964338448815517560632725205451739811594668572909401579795439648302228675694767094864423365756768316333863753583214405629599873652161935905617770444835976763058843779915789049882775439656477638033607104299834727173368322712564693590526003768595019041441355163742211522559675147356936881630607565733450944469254210611701398439973123530728098356785542292261208047929619979315353947656279777589461545318584061890640996655628538383371299206319780472649349169549237327362343053173926089383681598488930956634371203948929105212176570791856938768420656040589315536036580911722632266087435721707879639297109928648258711134730701080153836034413098207688652673179819135012764039345665930066167861051892181401002798719374642771865363833675303483428007881848272285968988915469247219696398061788253371531687236654166583624986742229913293107416489808181134376394056588938555248513143504340606649278321090075516151035209522394572819508890360846932233094197340854431832331065565784858018244163257408626699319691685066430777601477397517112337070391160263336531382671486853733768756318738515282963734824874259819580318079147513704063789066522626332769830496540353754936975410022002724169078479407827047307489197701046642989016629806493646009279772171288406292539639586341957677321748734478396471454223916751208445912661342883525105989930409859491168750317432784313125554003340026248420269531269511616690485991909374424108539981721194054715215360492585010984077369344872284001973916023887231359173410173756886644004407774486826880452962594374568089307980815272303276748066754067268489515344379455877579483399603760614292519031722321194241091658423986662663765396656148535779074049126748714610157888100863121094347293497995339191280660527846454270218035219452736157222716497457450555559611221206387652080150376803439800971145679615255786950326272813079027739744318911072380044257068436622322806602656400818143207084814289723892667402392262827281305050138369407884362010719025821334467793647188808083586441460126060182710293946851768886903787951014887334252904213724869824893004550291276844671815464998769621392382027598188165235620093839459579502059375123849898396982874102044663045645054880959469728245203866744560208984802921041955004973672126564868928181723731534750477705626783366037803833499795547902849142500135627772794384153663505019944476730373736437466717042622355222523577928151208787049768677836791739683191401561469211968853615282368883115000126816880085146163792382034323952469031534091983291687321253710667863388053553196634931813026614702412480793475635149360158682731634250222508135118363126914755048637635002798554263201599554775095615471243622398517880059291408976352907154707380208116947869920203172476358473527874259789646629450639797097528744950525745407569092554082390299861679788007155536953661929044940372311046598612983262463895688510858551520621216130034939270518067729576435758374285709555188108290084411770037321502963974944224643800992380388596901157178983907816667733506626446350053473551117209761306777342482188306560356268670321611968894248261951897778009526304332170514190468635390426720978110361154936859123230774506914604230601419949893350752738837161752278681847365495981078414069300972402343514816666356964975954177817578348907385425042280657085868690950610276516499893909945623770454114552617658987134847317249649801840009270559490803227508016903352060970195471912353157638750148458076721103250181519734182707181658588890531618109319819986258990861772874972766170338775543948207245372997560255285735397108663801072427662164171347960445597085030647310610875160980649394488849614670356724571451314010073180391396151555518199031388134308969422743185143217226982775867585514642676795870657664045124805363855071058716200317041948531411114391355547986157199181864566168351680137759650033618178195384159001182624462152888240558877573128172563772733039792599281569432003048224444285132564333651649548510699580723150999995593823178702084054821566936254202712571415176607889713064086799473030523933218468096557132415313221622142131958965665846859850548710168897022398271865350404839980178982252899308815596521675288667561667577640360345401161236463815026025559401276316625595785548898498378439586627376996002510612568823821256449654256239212771386340295475432142004473511954213274783543306481500716869063938637370386827811120431861862639059913784298047718821785920819505869673266351657937763284324198781846576982896335811917808585773389439619539631925231049886823513281925481370386792583950307547120813715747917382306161195926787831146991401834102059256684561105371386900803275835437379080006242193699145585525595737713274030720373284458054526365233512106280902613197510169222236416600209155319569088018484142763487621706546844286768926560415196729625913334437721114619225931704424415634965121911055930636683886029089486322469125464060168986587721187847936997808891043439626223414732847741489133274575653327257922317011367480905480942189128575533923243558452182503462768025402290673119534458484430996255966350345256662498386885428294355775791085599824253389942537270284182002264021164687334051892674170544237169088914250184809966999160526279552426623475352990208348442869181433034712314339244607782310593835235572543852787180276779516273847928271898751391817562182344427953578258715573761969862870449078331528397553124783474897089036710369105295911744455108416402588017944974017259718137712278021350079622035321245611594130387936733853076768274767257889137602347985239516058373538192659000543155719173840790066358828410190782377325667580672750582964470121974120515061104478888364098754941921618268680208805288270065474231230463858773323428888312782321238618658600179044921320563777545410766307619883715890232397781167944216730691043392596265257658134531700139005459867881226718104168281026621592470383970475095833327600207904572078454179239770237172900056134170848871643342436631117206950077806676980731165624057323305655641455772853730924979543380613088461462220241964561397872774443140732605803673638637806008171781484228289877968852500305295316449884507666247532185604058837239981107871453215061545988880685150052855482031287059100899700900226673908084873128980138610612015980176715990940765146206215380818286793866463516662892272683470884180562235071424970893962520638880430490528179892089031883959135755113238447275103183447190355803636117828258684282866326315001741729582676174015260652839267935085164295687046307325643272125085404361016714082794357089467740579928888332372376171136050251827691220322979699898341576606557000370226514053215022732340510768317293519316732053886632232245393623381166275780552458211077387008009184938543933996118970317485067083109148183980145714448693429560020202672880178961812038243762718442322440292059435593191648367358503935040683853039843626781364718112168665203604029926925506781966381364276223296067483318105327798664778848179112970665950033490075914917216762057883816728578066901085339215363200416670452671121723375312101887179899639387897384149899639296486558131872409298272526258422558786800307237849240313396575121156308754749354121035767253738530821961619506272035794610773554519381864357263690931585523825218406301794344873785356512905998852162037856809061974507831860705933218645114462141727345969879311811434957703630853711540831363162287834113178985541161622367974154090668685580213258000163883397019062456826227025133600521356152941051534162806877856157707356965632935647752336803183181776376909294836052466714684727592434582263966063053854557384863412114305839848614680596764091065305751934985430665653487402573476176652898008176183588457970167884829819090891815403321114071185116458436782426857822288242799699633040754282817341862062457326321133446849694696977479612453077115951371099535821544302997387376474834065674443815637840435162230654266632097711846660874297993601862729928432762034329276273295286069614436949041098054653367176178350747788576659928790619746334880337547253993983880593567443536405724423109096147865116749491180141114430284952676597505557426747026024152471214704487005966458170298709132794232484947297628046893516199256770759461519628489400651205156529129403129542231311544502085556978381522367998546996805520698406446824131697514647189468081824009071906040412263274799816726652200825237957340103184977457391054703255263041761499322271852087769699928283530984744952794992322126158533519827545472050363831140524082361759153392422701404247815745113772823867268003166592995680992495293295168081434619122824824743780057617178354310574815932750140794030932860684072568524310369834196311104603825854912897005172936690982103431151317188730670190838524883031744513061005261844983325442632381039779901581002592977904941918143608907339840687969491278056042789926169078991686177543560076806162867686605202503840802861786099589960524993072004395920782620229876824970153547599308373235441265565310898318728296346358294193677717212247072618368791631636970157688322569134075044870874090614269384234850446504493141339003296254337632464927177170186556710711737581395727664823160547898032136599550411352907421204127753196890989761912033180443568778367817181389349444778235530540517256467556316563681061303870916173871125816899369051352577938751268568321733550741994913630717395652572201081511263514222369373416262534671194975751927342943246477154722147856064427049552515891420478293607667867987860781816632406090329978683994785362313251373525514981956922871216958874199589187327685184282138802629848913067255048477046533034904404273443572912018692431085249735559632708837078789427866703363275071054216162235702739338326336982595168113002273593302189158257770935008445224923240837868363654857955842504191944945087749187070742529935434093796329250740718900016585103050711649715559770837005998954846752611528940358752385213959608419265660247809591699760856121227632960217051260072991150464332756881778448705967712800246588215066028965158870922389549165265783092453038972152733848000978962057896982047688496811216305973301349059240746167472132248825607546761008620314459730167792246401776570790110528691498700264242268426683137483823218361725008006939729667278111414304852807397093959653909766925382999537341839734680570777189835614116847246506854147335238033353445087588745544361448310448218689222688699937818409625896299229025425356910434106861794131134446539497949815323117338896073027565727706335592880305464898377768410729947539784059085335631952592610084707397107883764719932168478682031078474267314504412757512712322324851261355436700380981723325090116896691716184456519186261208582890545816450677324642007462653996109577534056061632959471691836022200393939356683871636345052695690480931029427856519090532785945259712232456367414077380439627838073183283257786107822814154233551272503246350769199280168467243362491356817853616241214123546847630516696544757695104041872177616481360496829609188764652925328596134041817553712448471361544453730988640867166309207373363287127832048803977564463017759471132588835515704809896133819445200682388099345674692683384673951744232003423706879928927676944821791506787475689364645779840707174397725513556501633265092190098667416071256679134128185714620096755494105133309869358712465234650307432991717502270972813910829261334934133373648072763981250255347819782628558836887194565704798097358288289302659023705708724494139899216273878835539682762132149243192062464982892536229974153918018090557177618079386972404695659132698867743248122536313026427239499630198323658275259019067237491306264836916929589714639835422005216342234962020124383730939946579479967842655782154920390676621547651773445520873601858219039731396280294131300811757576690627144868197285989150401457691923541259969853459698139169193786479318438998538938333385902796826367955551085965445500307790440693136779313314238590913799232753318366723864304112456276729374423592240785576748973171617863028026739519584788042880234522152292406171171499468532513052414762907813538755734949062324667668751001908955025331471447743125434594075120523109032303365140302639594902024517644045767200848850729322024341351071840245022383457023677698528418466924567761009967606096939015218274909029325602823431067863921603728060614089955979143128867886309914286453325937168242754768659277939181679027775661841320862920966728655508906700404241365793214947273711126848399172001319567597644783119460708275380044021126919582033449051855004679944843298610109577370615544969409057028741519898196570680182723114645016969038415415729750151326036415738727032060177933452843972093875064798564379326938438671959431534342212855037534445829395492829943780200984611863294123131862425756404609768858559146269358264126923572352218989670675709860494748451891155141488765574059510290855191740820229104288174382062030939964419347658232294924282555770376049408397796309722744741960574704015802226406451125493771978682818656866075934189342821538076445163412973332065021049813733673540156260362637338714920195666199034967541777341085574571579003323547907317518062686618569859003645689365286293668842211629836402415567335955956997688486920068858366047875177946857282389336739229813415585065817246646290564476956887133135267913262735531723183091896862757610365343911262104123348342763320793990751855255684253712179243002077921232598251932254126542083245834936767196094387686349734159598657774702167345520675123542155710997072836938165899420915267992401462312030126001648666942918870030985328624182390893506168347523083812980359157913526244121517376334958458055019966486370971042439126787424891839795555302324480307109237379524374492363677604510484549788368723614838709479038701526596836796042887986844441927576151532044454689529745465421755113412726546463480720299764950322485237550036368577536911266867419169181346221170934185330635730320896252360031315496941096418453466618024240445195383594423133288161564069738828858210233198113414048444096045741072995828374246052931001032767419099584272730611345614788042633997493472163183322832582459310622899571103006398342054539451127922170772010528088485757542070221161191656763609133057867724132678508547961026177383383187484172692042735810384260160550866194614568187942879405190347818225116141574765192572737066878867697298216332794836645621311608274092972533463773243092083673118377110988008451044694157619843813141235492178820440446953019260345274260736595995116737278557304593137187433257876041340799639498456055627816361508046934497045752325705288616613418788295424707587847976304876727210761927842931582611572628905257253243012413434143469473390099712889148902852302086257482804207442622659418031851606765459570851937368347507065796587344827764843080883265345180080769125596824680468524909251439625781850614452583261948775772857046693425334438326771144721206547496634434659654144743285808009357733510994153939691630775754707672435069364558482064745119669256032816044048239218784198056659210229288775103044160009957514463258163063595511853518361337847698739960700293410027519471707050761555689940182253372720340081839491788501718722117461702333898101138580396833755332734672432822549426107180288579790917213809002139570074482562911674642336187469457246128822159325302359394537639380918822638362669931808962995217031885458674490929829079169729316388382992013498481327214488012945814318629729303908461532074704017681011636175118241056199551842154332642429785205323263025014030431054847267334550602400787854104255083737952230514002404933175317301105738467134068715508642426352969555698173996964267334214576811569480115526424136183063302059887827403635149955334452584057405130553105675158554431053433166350710021531473330613101038893167781118528245090929980460753068200976372432629246720558022448604921576656035856372945986156636717023028212641158494025123337719012711605709482828402020900684692145415057014332024945611562933212509955912422617205663746604051442123356142105104758540930933616630310887930774004483267646217613485423210500674626869003774555139883348442056735607304131631328641867796486767329662393923561987630227784960244524603629515804391291053051989909540057780289547489183829415420448367127006772061915537250163780626345409791960687770271058890737577324575448453442139331087996736821046117742393043912951913315926061450833913837439442436019628563464742549881377280505938955804430254938836871167630184301916966122730164638090648604804598536007439993492318734359236529215210140179443181308370801056605275052547516545689501151888771251802327083467391290014434705088314480811152245905195055696223102850611948165008089502177837495733001313972365488287168662276100173688939274468885341272512111447014983992467175385816371036872048521771716174879900261394314529539781504395744303757107825483421647342309788710662025038109118308194485660113932808623468364866312534097709130747634549472678585904605262904918670954852046354116796883793695169316422393571287547742884045426271193934803110542671475377410474403630435936865382027332561253264565823671271889435281604244775467898802679582887246202697630244391105186551313740238602399642948585125884041300362908139061993428236476620820740228839366469847775237053624303137112925404412748109155684450305031380844007390817059207442768111565056952890699795718050466902951445646931970840885987570883021450658548021541560551684379546784980691639626034482660606507505274994812308525573879800729535969937532970058137629527287418824470150260786863058102699493174528367703463359424807230494092988023592413916970979249964822120925981920454119530559791647099656441503474063168893539313034516538863431213651102073168844039748444168789757807081571446109918691607915013102527186004957876690209403304403129560484699173339435617781051826258836857119396488625925218392192415794940905345981211362720887519158430900406946210948141623806247653762607501347730126733748988695722366263552681962211168763309591010719128917161560104827476765214404215439036588365597022434775938790895047463497922456020240550538096711729288759903320085910911157321600518969249067638605740557821977412860045211859067400322254498608984542753303507509319229228874457504479486249375170109119829637025380020506279799849911298400931984505908047119270883332530647051765479600005398158469798398708120394346347905211238113221496024633673217734770013652175099034521792865477645710291309813740374415172544966353658966774130015244304969592894627292705150759322117462353960911779792710849995087601594314270036646786432209135628036544558710466736595486936214719292824008394234225889540109710827911367962922649355223432872364006685801117418067660270388445008750549767860956991243543509426016574690625669082373429127066114846388744292759779474682903578685581343727511307368346663662324543041022865778424781163884492669097644147948886039571541212557155302171900599044685389187217727547738191340877029150414693970511813867186015910923821087847623321859672734385403766617689519156450987608036568435233522163325023661557951165155340306907010098311462355524138001199257413260047825710406319938285798988371188119381265796424634348514952152315168387308154923490148390894633131504866338885094806340681431357052246805673025683385781470404359041107731562364594618562759563030824414174077432075179111835578333317567623120935069368539204504622440864740138437742945480962867518340956259628339481747771142690389634225520132990446870464809459790323788762897168651570448617912416724215804325266048264865138866801186896523449660614266848847273576061293310654748677362007155726626076870000885527867076158591244565187230710223694469960052599602585114192126978863531303313149613326634964988502841123123300961322656246428891484474241433527232051475912233545399690727448160916148062018973766206416441122438955205557621572594385586583804298140966163630278248862764271590815931971161733467141352531077347745831501153686665448598912440413608832225387727570146528849591961484351981387726360601083888980094812731876485411278417303550713135344086459979426269379046308792817377814166896044811996840493252328160510855421865198388148253160615852993074954497563811873084398417689356373504232789035513431548802769541327581372082813041733482423526335046408017420723256702176729877303304238182268796942984004481364515175716418004431103848934662598084523506800487938849309349675366991993340354357638768185083930822352673435874170677690990869412414779978206843549755995153407015365694954567019794351601483044742800368655140651559300396345831118502690406752986541425448784343452769501854308770703198776097430088270568897857945299666520153064427646550056041358783486416450504933894860515585253766836764418080842391155818890101818128485898472265249622337915806156803598765635933271792799861868560291618037453999272407957382357107814680723260558323884182293699621552734172176498145592816581151637557453232211950496115535647262886220984735743712154917140268979840943588848697930966434310386649403363489339154428581924657720808675327675024768620066081186574427071463824291358797604881123304451203939099319090134768364132642940193790377886557277874660017084552463505363844431877062870034066447446253642512991797108954829482776961006065409915961178054998887955389931863719126202491541883494797911058056187935909751718150759895877083247865999151587551290233735598558020969564557683610745661071328477669116085832465743625272904542745717539421341068308981010768603354803685279622335830396065985587824826696934445935853167295272308144884389663774339739956959970197750216965268034210942639034721531702477637248982060405104105423802493087423629422575140325028783309668165983770540072661441120762856656731278579514036567414409508746244232209328250052734758900667547748870070637968293317475512483174853333435415970925080440499176652300943909204996353314234523974350369809188805726386179326037927314311759176053528473804704304984538700974316115105838458903386059888384793353976930328070951083359803195506160924248093687861449931729735151656889979592499809415285193547553304613590525251986426017778184456425879511195458637197646792945067355755699375734766236653150194804002845151711013066645811817816502453323733318465286133218140038679756716869731683735533397183011517826780646193987756822717317286247927943725119004493652679827248455917998915488781256013405761307184558193927027552565653842861787207235409072201975226605413983178823053415052114348159072280532167468459719006091638778595563869251559351498931558069634708450903873331037922026187091744772748897634515774875809082154886606896547352673941343752532220878715529523836067467383996027999176885038991112155264163106331025323459768757390651954635016541653896416508033852170867517046622749206626103500259798915924142366102519672300561029517695611129614525528819790501741718113097098133476875119303646598069981019245177761870212182406198775125435779870677869161267936986436397708582554875371566208314503664088737063367421317894988955542880296470201311218327940126217085406951281935697248149845705229017292612091166273067475481342055554785718268883473093278877562580689598849673431584391102015064145119189543722562816784805904254649307107733785096480281298288471006332141263429526987843589946317026088288441352915286966609526238784955949131820282903356327521312708769416972985297643395374758659757011657592225297281324203822442628662782417614433041500257464589103469889166488807696645702543906145398655848069407793447132778147213265213385345284327263589677977991071687094571842490363626501809812979744994000586078885444191354210376254962888638053486040376466772212852446976069195605568598486842040493304331355107519630474295599665973701728936243274306253943704550141659124131251593618798922462339619290594345043950384110123503566373710109135244428061716037016880480346204215622954778885446417421195574245755789774667604172241809071034800647157644294041546899834594210044353573150179711173091425296298677930383705861932561574752918741272422243816916341270438391996282940425954067048982413615903049182895965567873471324192054333597434389271339276025755133191411126921863090910633604980630706863865367540639276528260344848534029066457424880935651354106894045160424492280241700685079279423608064980875283642124349978507420466713213870244273347817582556702506692450344059342351766909320027098422171935801489678849657090105069042987206075392569362254474060045804326009086035362216493752080200991854941405167077938989644651671674844199898118263235028912618935638029722995120928645786068456306222617903131336202178427455763606798461714878327520804407115746408279756651579725520739577494294161468989992396865600134616535233735600878929530677206350931794478571410928411823990246592504230094087685631274824076718487583659280759819950496959878362787722218577788345686854640702570156892774298367206327091391652956618442409426690447670597704273054752600585168656739335168729926210917316973100620497426902674431111757000589769081144852063503975418831285001784187115274568284510254987998119834393727825418326272614435229808016480451154496447850097762292412604912557391109122848249721510814221606603575229169732715884464317510128593954106411419364338438303054700288958807697740327047223426782145214746526046775080986959880077351957657606263736391683376686971069124774469734072468031360415154630780853447208165692806308430617541082032423830921697891568506111881880966838067117656970281344018589231022567798734358756509967128306140512414860482446021987298580441514031658243933556920623900456576084602125981093042137885826870208970166806661204286248085559595838071964112782101036999783321869935270711746030824338727270140252723634099362527020617590921095157993298959795645889891615129366402473918655226637446468341420323473860496281008431467927774996395991282129959473237748605370478878279476958828569759967203786008965713376970756734782183738297065466746177794279770267860669877923806734485900421416331669623344481127945821724171000557653777098803963919786732091673542094727301880178847250626119082382927276143849551269930659007122315041844442564655433215935930132081955570989382481096381747997949610555360833489644101134988718344501333968063981363898651337755975230042637471538439076503272451875351274836080680874635709571391639235754831198804176078073676429381224543963095321640665553310392006150400591709839944801873296275249362140385380423495562135839793217786791419095323291093756686680562356920564146962560356129211136514996665920105188456669177862439806100544033393185595267687361660357482948757815318366532473652318357915543996250532889682684506024664424833711050012579173369087492507131422777772696302307029678648605488390812772629791517923060328690724187739265601135801468102393988414149908453093368909856504981944093520000803171629405145927333376346890440543806385276628386332259742163532780338758690506010351774244914715795467643068359690236815996093772348289274164937918311124933265485037441444289237421607491102867610138373132762934351191192161934579094322318345110605407541537266553957357573974259490236476186679166277803867806527240694603790144009899283675604852948913662768392652933099661186186616743139207935292437539572656479136689360278412044743874976006605117724418283890045805109518518236192680645969068858996671325410930530308269507691568945074987723306646666807071396893313706003052032046405110889276944331855178864905103380020004039877790342343311964574003569894218103097541153200270179741850732143073882834103067904249769999048899445587889919607951966026156238989441588759684336581091620103999274942900374238095996396858931097530081178413621099284168572878565841801522916028573740223336511716489591073394908278197488933353134065358260864193952614459818536625331552626579382076152193500589430728834315024331104124748425666015144531530996105778110335498235146114285225967942059531632125568266048652200985538280590945308210702285870174525122860619301860086957178634877698490284445959089410293956750359762184947701543963696265545228678388796155054349909347933789626984841160563319854184109271992760576280278658406878520239901127179498496854083069567600262376390659909033821349271878660395017143811858567095895068336408709161077552183010098589518575906935877839806105400905514074464990853711289813731535722280704737131927482256559041352419377743426222615572563272871891191327091829332364987828988481206924531002757919506200513261734627231669518596092494696566941253400354241302950152801038451313654346869468608116436809422575327956135508805372965175838436007209621273442142269335737376490479162721075674211211593200931081645160924690794636951053230645999489511597552856126370812605631535227374911467681054847588347875283682000511933336592454430208938403977585320070686637000468993250894417705056108727988238408224767800273429390991942037255817913430776666502625583048509665219736507690311612597524115917151361345880197433529695665742650205674698809306007898400216124669812053002366985820851771023590291385678031155470402630776782182232495035933268834660915408149955322903686703555068004927187586190182736510867877688370220689685564865607628590753257273790151827858023193788433670916769193678468049621124417082686826282432292738540867164891206531617296306420124182659374328252843530944091328050351420026146242667797722761935264722528529249995526385197414413805310547132084742444799752796498638051021802763064044361451327443827282164986055372179551980434134513866899415119077156164304991983284981373306241656865199242075027810877851634818188428080013381722367150810713298252159477859629687588045201835172731950291797340983156526251704680735497960960063194544234514123903716130648173539489557184986273335103340383477385815493350706827224891363909800622456939815232328432081183126309606323073431267258313929276505373063170787218710514154197870109002944972300726118785024300497834324337161793987575516994747073037923833095366928554889244699020855240963980560109289172945446258830406886745675807681976434203631328148597640522081559131417664861107519631188116834764242280275685469716887126632575232570817488658084809406156174203930027159908228873824608017471086448414555479030031147946579619661773365690807769711344182322870790368175266072894666182687165674276181388177577964092084598180976574468008781277433369981808878400914053300312830670094465932244872884412031265057044351865010037369447095002459615189890624480892441523172060576115741356615982027465376843790401605995486084015019451221477100273534947293225144709854935982230267645924527738526943761026314499603908273488565770707845149508107346834920963664351360450794270011234256594465507248965186828123362257408187011159590791380238898865714416004084976830972084450135778236912440663058205472471981884332694132340530130345677091356558013285499768928081658062193563869092374991701972402186877438860363605675708025952136149525551258773733975897620160598799959232753679933990058787653312147236883552324991845174620338905308800345750556249686047910940905767926718942983152937257954941860600273664881016434681816843364246720284477295555627358216123153390065163828487857824395294951500861638783186545390751309373571809119353224184078834018615256666258289733431663491211970265147177927000932654114818243916292027238281863010509871648645402051118746166652787662468820284885000983555615237657627148394023584910799128634368679198522087383039711420927746319159440532806489829443538846251671605546853031266781651820818690685454399964326369261560798313505155684110547207597515567940554624093058891121122811338637638982923598626747916306986695955618434570044518155488592381769911946411259252796266912684629385662209042771723437067190770817549739276029622422082251176195800805024663605437159062204733990921608468654501264884715927881035010174463458161660234953321985065410891263164158294416645624798091879679487618355686238331837328622116225906363712499554159588038098617543181572856644759441253183813374341498182490700133151268580629011663009891157787651705118432822102373920038877424275019492754756488968607198172319265328478658075032881240594249381465961819184095988594743578346269089315475733624706863784006744080629973891985043894342482758157527408053568510803262663317145519215077079947608127606563312170597791986203044532432820563773960134319145333086527379896982458181216816079235212429349383291296239654026968644308678796671170169344700113322493475975335262748415910881397969051826603240158363854734894992442572955185465664879493004289412538130465022316923738583282486334656679200587911731780939373169439128596207373527854124752974483384547605531866568386923479134759042442021672574822437673923326439609336727418081636246118259426507854063405101971511818575848468801116454458346609763720026178171928115745829679930855715429937050167070651765039318539782196934160073138433051648293276479520829540227099482068485232038470051901477587051101863607224919023149069590501151039566467220745508520794577916227332757819116817490327046553741206967907840942090249444215284836463467873451623437121965270728940343212234107218676053103792525665379945154009720329452369704132427078912596914507348809086845642774096263241212764503789659456205909558443686170215301587321005810882101461617102354424696992162956971883054969670873455157249116864226235834098965142003794917389829538012994673780052373692778184720280139416569012020292495584190743265116172697217573403582937244768703851905821024087988453972900266469135224472391545250104385037921265118941337570851573620774768736092315569989201914101394871335314746504667593813465773134890305189823160807545681216993564208736953586192180341824432447754074139016268604578477277120097339614805768215268264704679076920665625771545390039710790356732105711363698607094666890319416245764997871709391736182986410823610743428726118929038790541253555111067557343888580700609426261072751494364381054046790022133746678677151517490543251209857934539421779752587954383822430027096470106271996128042121477943431999499302348556690128145414758727145591633660682052880469043418708606439942135468160742674210247729100647404388399630934769870410444102656300617898600255270368048723099935150700407663566929352587792684732980041093262983252864108865498600552621745486519700230575545110011463480473282135250672935922338774223967621281431572214486931039118221652075882881355256858942123908829245829019033285405230631306427910068517591178982734839007897086074448952667815063910645076027277496060907231322160703097023120795207718438541510051847566492468775245059876592083183432369043219293086476973030442026422826887736934514323996821706947824656494752115568200908308435820184867294403260603313655222699006084840432495362328757572750930862215147642915075407356783769403438407759983891753355463728824265625328051497634545753452896847216440322142466025687498651562309953994287028816238069314108614863893426328636748148542639878167755981949965753325516727416555519675134288038950080696039149422701354179229600379156873466350017094633138442734222171910964032872954339617272100777195880183760342953669419994334319592240866896550655467717660658365961299325795577362910910091123569162001624841308018613083208626999449601596405626105613058050767236551601976497334841326923586999229709895144667967030478060146323613050223435257937843316196639519147851362683771212386137270877834290539311375943414833493086465813099620194189818271290252183364358585192631634365970973979074342248819499210998081639169994361706820434037845972259400950312455606856390475612902746038111527515328462851529208017876742643866541291266306209033417986067007338792591169290148943232196026492377347577220956777917671152460573135710204370431008512588775426635765278611123258641753599734662761317568567225724351254007023676059785698161480620342484130327809092091032665752380766517382729633885186795603918496585404154054163184083245126440123046209140192764257015130076777378030867990391251076505499022171296924143460709430921097802291621345413341551081537151167533735868350088400743434180273988612806854893190257108591309062889974415370472491116403070797360019709079867370156124779205560609077421878745702442390112004311543190125972023176892561047821273977562770837193800931218118373876887047392873178309552923672578247893734780777032396432010413130392733199810212788826451299856140000872670670233745370678800537678715152280212203714495719290516084135161809223682343810582953805553805968236565793199229204404621185646912012983774511702793019620739036467378253207626792870246260722198334741240560029086970973250401684657344900488630273245213211011130483355783196773804529131940749982525181357813517151200877845997389915295095861869885895996520701660744733807561453822540755567164525440600257118920391800244787670219893021782651999443797455878007584441791350283299763851531012804031145997939292963904788736132219029346135749243570340381973461743380484332356749214662166781944052956341650406334085323594961012815471204749992746992197718327375556187200717021986707479770498717945155325275480827357267403757442801637325088104571242442936096738664964748603491162846559990661605844005053351181878700305932324373401656784090786154297108358351689254487618229796687214227026735673548830106167537462459408118987785949946740333411024752600160073068167012809257392760043237800170121359744874983515750208941068123666772754046218609920647052099807530978396358158575636688589346026285331394045256824348124501773745672490493937684298101707747594872907995797569553254750832696795969392142917526038437001932870805905599991472430604129586587829487179330617979832597532724266846360453276661997057550171269817471272038804564024338002089603448605003427327883116289488550130599733736494505847284394561126030550938274400571597859931608381218612901594063619708713285955306010945637641269006331377360610597468194200767943392918096844311285720303904201601424587113309150004167208487043938193644587160291118034336821027582844423027922724664912903854482631751368594045672101332196434958371062001468176002252139929940181726943543855627613769785585077667741006553431509308437809606154276090437356917785426959493954532333038132472263198197984507985744914597742178391880639735721685155161335364536611798867102575834606031695109455901461225795841265861287626595847195278791409206204984392329625351737764143990316435200734160752610766769060136456158916840263009508177971543335779826475432572177440190724586060443837704247185206390851831405732792562007106684894038585683731378838798501915244546193375199782765211253094576441043737685994875975578145588768717519702680423538103636805654545546280503030636997758662587804797630503953103022208822647742126108838862560699081203542036550213021788178812280754178950037642352303198101143094207806042814482207660734265200201350347586856059608180622250540676096634956435257795047935018305160527990430420279424568778684315840972963132122314165630616765502206659125783933842542214977505084621394477851124483185228395464804469867255704035705985231604430427902041869603995755822296549582486595971917241847023742400619853374277835645970885716407127395170018894750485426183512203820769234242463408827470468300108902879020640901186655423260956398162981254305284526207698479583720638302209929240379437435262814086129337935621316664435933033490809000896393153985761064066804606579360582618317071105478043140124101341891275750489091194785829300134025646272578010523979830725760864097839657192563300201072953910526622178329493558684096800165500075111308299117093818569472600794319289242858044920057152891652874252521515692464388240074192394962468484078363865240792757805135029517821671014285448016181163258965220099493125461720235781688743571744414325925882872637007352009049402738055318021985677665448578432616269767315908896766650405979927901207445751295902211785172608253004880584997534367830173750480889344241831351459285452669899718409260677809902777323678697498751954201250382975869558205980201690727830873729805972304120545209517284283412209392339765767057293544738056283416084823758148369323474764598040609660482174048612307766782226591768876714273623881279716072289537917767909229848375549260319449475671711397685283434842013158982287628950550829020720262726010643632219000658353856189542529181892894604631152152234035190901228605049192795320022328222561400274501972003651525320746474259306961080365001780422547653591304207403349697979259559695609999980428491280622641056463143242815807107757872323854861197247942063412085661993253458237860056202344555149592273907302945982981728652800359966844984990238999256100573052194614921232649115035760326156968181019738036940025135409331324265209932073947205308978610071700476965733888030867752358034864416106371465473298182311729986831800228961556318306913763083942903953731572134005246568098347550002415142745488363007029757914248690139679514547608583585169509176465656625926081134355537470154413614174320174528463890656067818875001872218809104550682293134981261550927641511345064353654420619218139648444258474206420808346010760789798676946996398790206142507135329667604588036105951458114087147775059397022226946759791007917756835382637846935768523061330724971992315238888844782459825397813789836104224552308347793862766920960319891609486289987134348090718137712748629680136231333289506446849219567580738197595180293102616853937881512494222379479695120192531331761497670322240415002275481391856074454981758483966814986878521285728466830036839238736745260430512119191392823524172644506455217057140974079194191192028482960683128568805274348778054492160171876452351030661885682742106699287988115305646295679432475482675399916689790300229557149963600111900771036545795615244034691050300766571583040121709827058841804358212682580278011317283158312378726793462712467239119191689924093796374332774252061499614015311028523805345118624537114687879305491515430976013511199044038057626027344795477301497498385378785314882194701554961404596696571850272650032260870413634994102808735552639142415426413543922624595602714522130674512310779108890293276567942377324931179997017764657697687391023217503824859441027420864687829657443124119159497220188186043227075729932883999204180229059763873765951910352070982528421497564926568398794438193457580571835476550778062303755841838074152910478840115165826636747791583430940749165025460127706921217749542448855933273950549801007404724096927401104549891239698556308224563294368003585806994989084539184732819726016388117589254457243602312605903252862466227460669811307865014961416351836812638560143205652234723129483986490973471582800417546268559990431607356970319156343927798741202459291635235463296051829483979561585523612058335456589637174441420230307173448255206227015937085185665328267842235201156715644148122742848497915636023282115197564328007400592330002135766056689732638061648029609428474259378070447521850724481083868517483887947857566244125119637716250677868692293277956685689168923789225170288901237601896159965412570981378320995354647100503398328946347482460178903630567089333983276459994576312686987400257707282357915583753223263819004433892390512344941566834596850750537579813202020023277050845727531096014125759749614079628898198872574712687232372256605849851221491043289310366111974012211142091179159489579550406563025820223726138645543688297347230938680716901802644767536587582922017650137214806442685733253053141068243533871912835408070141591913727584635285394500672429008407766451261881547607902580363702441524014748865968651269833086070749635794071740194636184009414033580019686328649398872990969221614349013245078724546632282298057775496194370407925828801480502510406953316151188684384996575288320200770960255066331007081162592384929423350192581890156176132503642514422749972349263736342649261413371868210371180773699070239922180289189114942407065227839057791005018307749335574335770265817995775872446093326805374906106385162049744359676436250064320871522281019191712639041024697789740840668510498365022461679451867898799982248450677237574746036891916252174089569047156358389207318442748277071867447728384717576647909684323942092572942631117146346333208824519865065607119519639982865114918159798651723561745240706108130974996263640966365215239269755272351410957065964199582347862779557749436282320253409961830989667681475994962193979568888178682853205658029357722179203742366213686934922981983197957174102670516320452121968296435160310921032182765655376277305201287694201579754116796849025369119190862139393150043765614409947218712096492138598789251187139514225423224135280767442680815189679763513136024919180537172450806918605617288577441790375465208115153797336621201479028662165181619157538609630462310541453515381694515462053426840391908177142464800058629783319837069585628060671349287994373584230644089672612519147699061928278668288730181400792321379487451433504984543081116273436682646791665185342177401516018568964803799518048714436353122214759389839106762015889230793719867969291015816221484517787364063459264027377487027635920466972394176490610672420117721385707346493572274163987485034736306462165093123074278467999504065975729354331270674361644581796829191252230061496669060536641253941062484296519427675061986700406195564741110057816336785143948880191678073053714962214110378466698304386448228027044487031906955248865152104749404055358772397488317792207547442223150642187957229579912784196128034611929111445968717234479798095578638174539970201659495916105458818273165047347512211882690019750369254902490602728749014372192367452673775428596027990334571653427019454118333903207818811009579705684675430336888579873176970311545008271317880956032420524862266297864556849491547410799207416403183037652176272130524501564404057678246969376349285238948062617775780772344950401339463223149979974098383952843777748955571602334106763678449964526685206398405960342973397917825349599622018915093443015414914580912668308699084336217622161026320334472260754656394293401284274841373352259432837640309710610474115130495972189303796277308074582904903854077044680166382364844125909046379454971710406885779983622649116894674553408366404761825879073594189194677631024468693183725672191996609606684603961454980110630224600963850842573947946737642811303972265001175519100645361854939535727482096634615311369810407666222983987699236911705834176807719720895751732470489700703635067081484531301077454979623725157094317959294233484695770691094859818799962816337043790468209744841809583406708868178188811744554125429782680860084523316329186444859345724316387214419155993504687519632263156128012402916191614224286207820904074389020697110081724928095851904289181013359253564646959621778972205635618341107774058001816212593949411522274516560428623707119793169987953489661287745212419223294834764015024369455640229272820022945272843145489234918706127678920579092981219187459878763656722797322204702672400639631732169270228366006680649249969866456407163984426862260363318722514628399875065318327640914784376586699131567149526414830300606410009165781646597273856789248490149102095085852306643222381078993457497102761457255513446541469611920401118516099289400580631979606368730503618315515086807855774805554961979695066232444012427582395926739059957795503778671782179830952229995471651837923829859219853203652945270938857696132709155628158532118815535928404169584709156610717192081927254601936496908321402995878429882375408939836826632676413141929629579420844463690600023545195086213766123117765288850051382127393613438684545606326681980003889187917802132229234539268042551704378243400222653254830452547298478201780348109175665266370860557527399264041631878422434068003348896164173892595962045863568125708996099925692166580659826616015933493561571300378296620428424910002898343122446530884262460291567649709512109085730281939314477949058390746923645527045144814508304432580086238274057192456846793238489901543973590118538568703198714221169386434290411629571820997365620462152644202143459053322380819136379044732385024481630294345212734558799831864018221975522983892227967940648568212364086117356472739054383584277734915236260090015870092647706824819302393609534438245850381913804512432641504447623620679118135495441125797864500286219105748604566091129081364082535958937830769603333219715821038336560763309684916984315818170550628650763029007760456919015327398575716393216395301930566524966520520725438484532445549473635448049090581628975503080380783430199467045050274931035742278895295187981091365390704948423775991471456525630192994528626462136699504222598729161654569850914604033443461017915287724158843439135992805228602036736077363137134971410815139383935723147757981335578604961675893749439850991925365443182279499329459516346215314588928055101266743968912746024747915355792937805211093021498299653076970572798218896178547076241542258369574773138392947635995795526309979383513744834258763802608521642063572108062583426030222099946850425582550985554644998164204316018299518218732449139351259493048958414894798861874671431176297418936842415182922590946871555076342796672013628676923426021707768370671916400142726385708893624056495916608139475818512421766344626582949346004633694311958204945763095212087480643938900821927053304705413056387585610061394452057289001930758044427820577724838513910222712019799686790605978984818502522832590218504833261682451055845900672327389219181134347991275225987071119819518633950290235360065744165285567161265874836629576609472210153006610056450148023212965772926487922944821736466228620387703151699545054534233369558259007488101015409113525459665830377716325272917578916043205056748363460152687057312072665018606650791876125732828360571033766772746435845309233836122972330349744392355127173247450569225445989280244471741456829127681483691209079969964122756949447480942631853971496168288257278910598510930855030818476417262279325997136046780224488441651768226809689202833714042636092994705070690221954229995841666457629632449411807134242063558492724522512003674929179755795610040879966718091732179910762741123632197039364654505251279251770498881798356905572022120178394837795768291254193999722613159716375145138327129105344856809162627936210344881061707350286027420712679481735927813645848747702527940089792164630212618083396034159485872053320958329130755547899587161918585868625997833678125489766750456718306048391287191081250552954556325171756450598193163559356305944976063807256276654632408553117316377315900110448672747882145798318997093368624359115393210244596073815765365522545375519322960644255625857332682104030723346967551738072995162102791934251576023573616404777574499483957220038275231805957709996031281906554919868068507497618570966422487216722733830014032025338269945321959184142574567128977467730230610600427052324889481138404165445969223430491432448286700304990271477373310395870367743771103417914799621276771203038474503857736178066827705731590433591517645535096630506449682430388784718563384333438531327868573093048887933193764591808939895224983288704888872959969981700326149730257849359850796007987871180576925095311150814351934057186418020562082556886610518204679022853708910302549653743608645922730009869057328164113173583023045917663281638778985932177569576732613947982185779571382967298115278568181678002689847098365660767824002087209912929443841655023424945946243322440075226434934284674397922514552675025348079899317717747935872787781847218187559170173745488201757566398765034243779166266195961695906158327089507006404680488084623595545974697470163164482185669769702595021489076643098248253760569588264560726928807045178509751899817633944146365336380736021181191745662380241994952459824537304891868936386021041759722827849529255419919854284045084635925548662282194173277783640748167756854656835095237440333156256233303932940682964903789118476349165767078594241417578836629978196965895687765325559186059311533522833451601868756165925434699640328045101735535468871136215523415582019682979587346629355728706592494456335828899746628917480921605774485729894374118919470423382157711350674281359492476513668040606138789340737292223914965829279643621755012667299792291459576337724356786233526965110681975655833100977626894397774796854752004423788104937262447307302262317980826860206296933858334140299177224473371202566464266092436685855679469309953753171610509951108513483425959494518804456913014231411416821389019182635363276376368205903611671663339645451461905433659891218080161531086657389995599509359313617981785258154288862716975030383376672763935398302900997974673743706847897214694154637908858547060871087818511734645554762721682259330705551679673072135865185985808020821204133560528153709715888221549896999080806859143266705374328193615025421690673420606610718165860893446828335151799926059489338772249360790154863158993610352397799193001100648702310956651150488885876806677666067659568135941970852329371801088683079401069312261276768955539156097350040334108071292388833768166226743550691013701619556480434618078889693266620315573751633907969047297778669369894485517980518609041923147809474735783055469043215887190369158327968736627803478611824457822689342309719156756678697018600710807605428620804812745347597227609701115419248541489816138167776045628284208705434145603233013553691437324850387589544891900096844802784308049265388721378353826195591160415929278487583362869165053054923888925172517607863494944231794075160008510353529875389016900210198703851939702600571627618487727863783639672691712623372086484515822877354243550297806786969857620931164517617551708886598711761190439587807657845749672861835468298489464278482856173172151650710560741296143686725474017345991582321490461836173904722135347525775821619564848189360375489132017820554658115501604555506542265558750766048314833838158314263426221577479556687238688118504171710717777807009311189134125587805507828939301657775361968405984456873554061741504630966721925354795279934365888244902125084583113383828861303444602029960012575569773077045395114926985438391204086928105099842429724119664170460197418610015544327945578888734210833881493120085074611607615631670653431295592569570899755165253526469047328084846140010472016550038123593839043934446513893883501072895969078717715996904437931517010051065185305053128518192274819664706585924688273461378942377579702238644690118329001620264074119770537625651118283483568285605943696195962401460951980029543124472839367323695688569316239368969966992995076081011615238845533787160964668253753952106247677101176063807290599156197356416512152343607834817301504750944968571054108712062486747469400860233687363853856819070235545223094708092534604622301555287984893686171795174856695719771455103602325023500020052699563125178971561403696240530827201910472029717513072815206564683095337643501478778526110322876088870404028147364162073808212655363362407534558858152148909647335055715314498010896644094342548087422411990041376627804402345945254080859543422409960779359000579693169070608619893049812635439505770139561702797362136218052494666558317858043791387428361444537358134145866845937260351870606060018651009147144357234313479084236084401279011162845546364418774207683885455555166647297532995319847695262027355416776434841942418691017557869963043087217184518315883380789840903648883493096645444075397244188298699205343835730589703152129433330995214902428798287196459509305157846055652243802224474763420695334237604797126391520843637346692559363808333844305693056278797009335680845221824328492785962182653962558756230493361209710455373165312665903487706226008330681098426733746566454599855957389869679885608301609908734605247596652797040202282283807280967335293212640956043309684172743478527815269999686088053730341364334485408779233540018545176669654790721751656705228076115769908124118463823418739324524114314536358737321794546483328873471358946413638418778046199015002278059288842070498986462830618576431819084087967250348426196004255319824874114459967187920887961546903674931161922772785064673295640179144373068534822006118364710638844806449882688293603788703382964250034626953448119830537985999634761273076480745367047368329373159906033501355121156245866283859395530138343780833852341651883617995495478460700976306106338229749909321771407150846318026379723149896061526905905174443128569406798843267760358054794521127205470659936290806114636220392586419131905922221003676823331377822244258620281430930659126177935458997238585249312597873075374891716316621937440419496131759259465031080637595245808953419565493516169727937261314516181187923905829220251375585539406130032524182707047059787281151537811393164081394310411798701065883439091383547677888595535035723206797078711864319695023133340097465715978343836385023709082567372331311484184975656230744502136440433574647653693490742944558411595534605221926943089815425024487398244869443343287449025351332186681366061964254878261789618968596190180190244737663823376133641597946213761092226772922460700344017608404508398399933741191122484638023195570336258676765698157432740330012821958052672752498294347999051961854245380378801671098183825073296341750280664450448610358152854469196203669144187551746926786032433791551911605700762611002921474117715626652144721414780148668309110764239139200687746933325363723320791322090057784603871260406561339060069603387054896728276718229969965020252181286769496350463041521977906217357065578765268677698370543136487320241747281196355739304250922440616626465853207554479354937151720634325184173506740253483094298860797595754875862652472284441901046054171993506872296988906499418360607089852849103588967868208824515756922463060708480188029214347576588893138018788353725620645454006513832380421322561871419782027483862957199885658790244653917729443430994062031867219722645979298798173469688101938657734875566805235511215325652887402784915832173516538391420490941260560813647787173075851199304516368893011622823953489844759611619691983145042590856652418549271384843367448293073531152663974805200420367107542723948697309983531597544202146822712346966532248533979269714254300197055910373663235455441310568059558865538013808512325404909954683139815714121148406021217965527141602431686833273444119489822628829820328406316241489260556687482038176537796216073949232030716247090521640531231633008334847852257315302854125769797541295571493087213279675089096736845613952068572507338312208138474521150153885597064187248497247168442876030821673673749792585117169454754736234294624532909922142097732526970956531297516751236581656657161656300671613615616064701889475089638043006406661170405778284838876635638435123362183614235498368300376715412510525924790500049473757697778120390648491999487695864265367119434959044930777775184612133898534323723564584683859516220752537355306926110798173989401486503013579792875081307605703456743435093128072998523351303052350775018362268480891823454126067775926286981957108867994792375819851979626108640974457829985934021956428799660431595058108590550356864350145549408432434796197327483212614946398053044262348698321262765440277536912925842027849847466465421988734075700272844530078902439073236649380469226965473090561119522720366680322913562658286644559336163366362569645287234893302850078409344932065846556891356493980938097686880037442728870438034776702627397422607700880049975436162242833479303982661973231361250210002607821749109749308113775301351856933821065809981854221549531064671204579200132539959994776753200691290211942747915104715719307735692683668761642424885727387737708871067930039854564083172671634861406013730126875840199604561777528347178687883683351947716992629864765793980536661315332157524994607929558977764482995735864766201483281594070592021659497051932306880015589567936496642161766640350674199038010490183247835949042842258283013057523368613922676970012863825314367207545911772054863408261654535527912654061366390737635283198945797609189462864417682992954172740415603950506396722990448194838976379181083423500652967146533190913045483529515466232906615384629588224520995170056552872290686524315702704191594511443819683139669172268617235315293327904029426414747582007291281084825527835315175037761430345645169116458173183943922280736312646956763048651197440875436036420028132683448888931216710304871502387066188044084917213241192391418116660121804828244924665451499571105361616678521232888969376142695471150269298084235227078932934544483367585831069797821084312765947738130386257931367912021981799818683619553427136943091605483913631988555616727574023859995859862548470785585389883674666163309952196044264596438939935150442496045266062060820994220843088273530496864850255161010484390025516602114940714435133036975201447191010358979128288338851500356718030698886481833859580404041388696366900755798554522033594472945467160653530927527205090843289443713598439003141993358059035865090818546052135730290013014436929275304443355526559219204445182667712626840690938002262363890747634224028531854609135170658266031353537256906684387972513640735615529579446655442000698620499147909210134257981136358155469858601911481175059444228212894590506230737011009188093832840747052337597020391028886107123178277460825892227980111296536509950624328990972237454914832425729654696735819421150971458193607092863031771876825929086540612756674174357963218824367684475573087873155114655070612636451584030954622769213561040328231989225390886066861201248284834701055453573476549487339299676089142021580710046474846954163181499380496292508657771606815349369283417278731161230691504227242050063547254849164319486945898762851695569840439441166646639105223211904410461720712346921977602600493567859932039410002487665188094295872123988625816059971940817533717377885907390160008616839281765709188933677540555014336353577851023362355247939329177101437781895134678115848182636116102135838166628555015583810559947768309419680956221262072916600925732214305685281666047504371204691655994338490838901124035277867229945215575487876242473350705586474084797195682726004606056100887126180185873270501955453084724045553261128353731533597807206911080909422245841977351030916048114562142389605586780636424622458082264833350828683962448400999822431454783646771586215338545338224843198815384779327124026549889187138895373385175265952478520840043802639091214600902141632332142903679351483676421929097347075504227715413010814881510539741934160708749220279389049818713441011876743027857382009740412286371793049705285298650787655619195062709108923391737137491809963998593516896877133572723357582365743390230134391442377672890771156597632706010889012004774030954576640084433086124735970506214634108827350069531386283903805380056300828873513175982040914934265359855551904200909665877454960106887267594966256707836193231769099991198601492831560377102478220064832759498877229952298736712633406738753664957568788998253773358444720014913428308669307268937831590312684612720655483379863550193059883574433625241923785209394189586068112466671160043252900233354345139233686436786454279833928623243549687243104318116268975702224394369343055636930074353924101312541517780985031246176027085268708787147506674985249767257176451121517497058531533860687994921791869512688196275438454822196641717618383862533422861064428008822440526893915628274938067495912855248450071468709640915638905855020032172940783473266668410224478052211927556968816325961867526981834273399594791430507072224241921087378776211370940812865069333793914952878366734711948555019842884727789056553059818143691004115397254686819060775809007151220968975486283703840758421344597195417155338037755749538366636167526808035339332172986449725072350147705619520132583692139968233161556952581996503453700285802696829769060458201343178749754630736859243246760700564007579358611171397682978024048884649193995024540454160750845124204137978221664683882196452922185917266097483959010823915129556902794815691142483112125494937156141600507140509715307239535376050588929964534476280763009614169523394448027553132837079841399904244907207809187972943778321019528034858077390789375695540625083064698189073741198495084749734663885468545115646005118301995922318216540400826437730530462917255664358620282146583661416879129034109091838453609513112135964104156311315333279337570430015944755287701163484099187832345233539105218290039433540525236748749947129372475044202695234988513956570022567033543168745229846700540035701987402552701527440327898700577171011489334200660715384089875021969967812444805307565365109043112100297956394513799659332543818244507386063429036362810637147952274761605327674787707916703692215382465365322860642934046648984229168699348416964199020371118333101227854325421866420132347434508665863530873954218476398294090547389281010131060411577718767335050471723487663105534986022299782617997330614529582758410621843317896033018607242658066385001003366146839066852252526812362766432812886402054797251432227870733841218357450552261213469966571862931251852796268047411238864020945295379859674864734211419220561116613739043335007418961885958011802229906425187580811843393555720530801311428744026190471257719196278379917557478726828901376986064158601400572744007110465174515857325498901346300620710566869294589315302033028436807785110139743835249287483961557616118329241884120962948143883824867630103961337357861078399897577499283873160657365934575861058255451460614292996597543327525532638356450221703326843688446881239485198703188895797041979932113067355086792935859779902135533849592674505887638980898226561358739471075534158074172251465136463591194469056356116958266062619676670006555891241462368004470063788186211438229947932335429247397381248694222956196577515563539212221590253344818781889951501741497546242785979582913576291572853782723580968211007262862875622858579930528917748420186755352698396539472065580378824945081851979509364933043737831524175935979735308635447781336152200435028503889213858084541091314903924752026733823776133039792563534589705371316937002363141673436908663970127435864641019061821527642703552862903699045379744050019883141153996890538917169904635136606627932438005892687270826430662792675485423858768175142994806750871965303106897412695070144877799436743220812538560018255350902299023029855051494094953799902971998514032818867766586558145956845601471506936096972083448738607069869522006626766078364431246131154817820829336853119727230566204961927002345001838910941788887891253098333670954126506438641586721693556090583073068347594825845904287694410683026555814162319405528573666461712846076926167891352210519297746863504453711651410130834465207621088165430558949795506105491210889717924237547415925547864833737881480893818695061706607417165447880074692195529588038343635821272488503401690622106101492485145258968854542299023386950605176859507965337629558343176760200287174470674603960832271647089646217789087610818949315452979059181242907772619696324307805351239294723191736295790936240858924470324551281067662044122611776592100545353564163525376832241610409912282291159640252910418103526792857538261006669032495530313882081043092811761960453249005982008408629228987609207598413714765766836837200595008810038923058245778441333277547766762924723606597348794651816590002386012238016317266512865641651840287135140006014321533951965751154448381997056588219815229869279691585831622016276891525822057252899843972758866541255911664011398718511407493301197470127649497732585336509244649804516803282811054674348313851066798052049395507097427574099296543978288680660614871000480730954739269814955288098118945503429494600930343392954428917457183626983279932465731649043808400333232838977413984135986334978869817945094686500191168257215911628587736434067056087542598790848277783518221415089308914760756083214769744602585510452617102161932650710676515569680161529957538440375257367379783275100217518381959917878521665317455273712286998335278891399767830796994024078684398791581652961973286185030911229049645286403665285303029209639634848850241874234581203495397524201461274966030781481884623257709682592690654744818535781322835685107292163742578202842838232338930619031400904134645722343996508942220362645044740941714324059623481019160773729468489444023126960773455160331803503684958106601443046465673287662673070115094630515716859249554340745060959442503429655791018460635015559511062838012335053217467224403355474003134058145191655174932474146920596737822933225544437343272543829673861434888174886621643097084923867809166139916182104472949136535663226520136140478420864264236900863432202641325126979253990407496319281735696076399862893711526925383381874040924847401639783052221090797454006363545259920428873698855945942176304977856938594242591602315023528818877436219115021175060733872129571856969289449155644759493092452404307176433200976308575247655014549943871628542905572519699658950973865218517508741051721492219598615631123023669125716686760959029588083247289430363586223518988464238200222495013670872302203090758987468922599694451717614778637829884180822775859907979584916200722192948728740871441052459880585471047072089061819835285404650148863424345683699513777286276313348536526420685073226951601572469045902693179726082946590129684198604034133468015038831609061838478666231443979192536667635599526046429585147474109113350087441101989615843914522063291949349992977844955925849430932482852311547127795796772407873233086373424760011804185826904696069832432428716494054992422830459284477214633238044646825031049274055515146145132836061738285553944075088432818117122765172864303259462882055782714165624893538570647278825205242470275910660409708604824143153158188926085363159446114485745980670066042856010024557148438966762133385305592437037300740614256208888997903356775107982879818119186311806482535259376580788712543597268318605813555568450977326678502938346269891242165046783171144769236055470765056497116379379026636551290827695961692009815890605087195856777737141967474080687436432528874093739717526395437075534700136707875500980417531021657734967335200801565938516157692658443352779271908017487329665112090535871111153559512713785751013477574665272565649962596004823727755419995297688756342888319649529967254120877532754524267999437155891308487400632279422523861944902051992349815283391467459670334002889308493608353135627716604939116733494445395049494303558808778982657174359119469315453101100956514207596591102317566810380162068453952338602925142935107479242539885365738136781913770449743099392516163654117007835849799615723352662029910918786033608182000278032471003714083247250567262781038324278067484733847816914862445497496131212591114468310860279529693211683044996409414367944575996838667025424459739243467279888125299639121805431197902035326666210918586671938687572399034320339963687357255968593671291033945048981547215333932122951297504819360332759023135077156029521420324297178969134060273977651086660086934702346981457504236509436525638068728680264797594982381944672214767466869852190558206266128268333684681702463551886347413986325569865138026980602459547667437774188979570805069535987802487065518950025029332763347731079324877879419558802521662590889882087195995979584786360467904480940889615860479889686468795078861483570440599307041776560269025095059508281371609598188144307718119999054263806227412002493383482600877314729073821223102561566571936298699894441799550012591194391366702885682466528235711899650534513667534620567203866611650447099813386604202127622118274257650213062561414221928400703700952323832319760031648924446897958281485423953081738813500941821898472676025957160755673392809923467975133802172917372267222278654805233018463851605385426769617399044235738515603033461584451824242925099376722267708971828440088156779084810441150649548495937330152556915042294614008356487774513255987264762044379138013762492115681592592703357459638763745799434997153937104356631944878493961435635294385282392284987085707821793926361536340659632865077632894196138881297009226035846785386851779222646379830995558181177153941711362581985504806659403122513784337677026105523107267734118537533213134572962277760288957456338830940639203641474914014347019387849885683453194095177625590793662360885079775080219396059737295651588868028547474696626299881515526040561464475434300035526438876988934989066238215519297894527869155770196880120517635636634197900437112264639641968306022691510128065641405401644342458057244610056287061342271068725266017380274122066010629141600180627620248427222038004485683662986138051273425716001313006841646045020605463052367826168877061323482526857013243083238282948692393729598448378990851619833501692151690347699391830041749404957629622563693058294375127510480905815484255071868405144489519164453725553749346781180583879556180933453371339403319552607697422436907300539423228553098485154382035287430387219956933714496426843282770742154466479629237298655286777959640592233694653569055833561369308513630653478921182299131582798572470006729245622571410363731469383059145836071465298870736606679750546432558537403233343969552721671928425589510266718065009077783594192543796514049796026176281302119751211199542252678322823825476005586999094888767399880317107663064331580413282935175092043934252996927137445381661307704161808821558025579501197794410819319522825710715740423007261257250462446079383575035477264931108913081356404897412972141199094154913198404096164991778898436411540021242429131216442887320526374180764038293402065972236569578635819481672133956293776455692555761819396417526472130183960370745844411132154146331233053136749706290694948018022516387034360755166970002602724144343391754057128400396419649886547187469706232145483929682231055045992378101919569542279573062085632210614293959870716206820116928200146703935997486226737737045687480882908895570821364188870898427311665780796398592400305069165781565377783828895525462466310018796297487749130642829918665860643357095795295718668365761488075640494999110316246571733726320831819269571485760001858147295819563551398295279696533836657194788788142730123295973360132373519485467699420960951394209766910742310313194015639490013248808846910415437380087775603875539092682080078577469911208245696110408243760008964910559877071404712742121802816525015729570955273275824168171625234225057200872196117582854696909144232650705886272869495859294580216588855005250150835609355814537461342301732462194988576186140918821147673866961867061650291985844335274682973332656621544093652783619446034949743523180113270126835966393590023233680330789760189151053679868896773043675199856175292853364138221854983338225289538327523871084770889385313499206671766070156417769684981524391988863036593212373776675203329427835523695273977857936563258411257781305405666376819475412703365900850416406297544840610990820495857323812080309108520606411640375699587755780964913487102559229966531506497060192023070712349468559856294232608287409073956650240687370095180658249606297745869081111951662015721459044975030706127282789986175410489284970205615463125987460803587824366312397817247844991043727415248927786163614765592282580239062553946329629475757562404581782524016519464014787418397996873400135703914116086139598525681372801389537229754760099863468035191356574464915266313378758955360108232147653614188565508275495463085137663702927868487454790222759617267568663098269265620090183266037289810467401328043494608985878150405441095789509247700078508384415265594342131461788720333502052052756605510851320543566754851533678200178147172864525024326459031447666337998357868411312753965837069426525074915061887213973790915128153466391775515510199828196349835426208533507414427436374264444252864555685427465227187642089710249591377878962595602061369506283463159194920153397226521263862042769285704784638811208064597135611389633053755587157416509816310164380739309383641334003020209223801159116211049616328988426678295432491121124709512362781432330596466803686758034070966059570904821042711857436492800562627818104590734940671897330865350404662515212815668940768208782018954147606646432453729516867919416972758399889833163145522756898235287402487829868510143151280918353904117200690043134788501866342689170255566142611223878543566079197004061923488475385477514300635462117961288812921835966455974258117279643005463298789766635893729511054386830818749011095809575574816523927892939196905257376389549921660616221163861429315459595425773003908364322625627874907190639493381730153437426132123335902373578167727335571035737948906575374168718891744135844567884750321400435077937940560369731600116536445165910239529521332264698546639549173127930956137689272647151321707497383854641032632825792603069182470058961636180210178827271042599061692693459367714097793430811766908007099399908254815947685541422487249037162133726314364537474499003816157626098773562123407489531565091779297020358414142756240146843436781841336939414180363178876595682301385959027670382587282655582775693940598145043819528581102591066435484135888004574329102444272270075723917935579160363547986764133633439197969384951116443337600338841173400275883869877936306269474110286945291283181749604521902201251224852201568152882663438065574573894419960202228576210357189163416811766799309156162923240220072566518857558787059927810139636702558877936056153717783850572878274657076824078479294036846460774788458666575274963726370348974541664531832638390729470840951771635071716745546474134549147274473310926758338985079352894486877763226335471113119990796013349668468814978151484865984203707498469291270862623079208613572007122494139932392581405618696465305165143395249718426767890243589041261658700130390619728919431718152771464410494627495853085631803446329057946509051847158400215441718584509880092719795061780505274303014855990559115414282284085071030460987334253939619256514374241767917800710188089746559083353491205910619596462955953768285656729071986253556830518934611025321755378203628199838657778870998256913656977887881828899005587703732650397378951436867368961938445955301379637041117819120813174032791084367392621665999727771433147723737180334634341447111931942904100988911643977526375710490035635351549435633302830338620158824563474274306098704655348211805181859898415384872373674860654788970685622489875822325187575292431431538755243672690140000827073163939017348377660889462066105539112032678424688987300820636358140178273493491752928874716080646481240139619108585342183818461278432453383695694786433917573325369222820208397575396572453398569434874562930786603277487628506646673435445164669999070103100139564897202004943564179693582605064199406134734500616739978491256179558511246360030598519193741537752879541004954453252990650611993351917313749634437327173668855650035322489129400867769750947630261689137306780611458157030848758213931830702126643287572944381505301463282401000892450803976691169550723999771626035820413912063040317739772480294936208944356133657584875378949694603567504086995194920378079762760196051573745433289861625113614268538233814731892781372756081521663626563715418576724139257621202513709517522333985357788422823276363934903431461754328718960276001101868183122614220784458267395074637011417602748278232136382885899725271376484998747127535471801260738404280138121856638412897929245607538991086919857266833678555149425388424009064217045022787306502913151451358853837555639070103814113754746226893609909052643234772415421306046421841382843635830776272869737155350540060202402400393453944035188310638304989032702249709664039930095639562103303321135589063958413972602720129839338616035925514429042654371055241496347735351387400284872323201109006358343846177243163742133656846356038708386455022959947377254728208538012649905592928410252320376053287568798108671863641752527832175976865798068357352109475115173636550201192934835792166005713917389611195953611841706344320371169486051384866305034290746353864597799908492545196681847206000349355328721977651669123791377991220409408075101943723274397492446081181366782186885384859481047014085791214709536526889995173132943576991793443332364150554441983451403268168473071984957112628548094694998084245308053948346574158900757753468547091672256044045319197534925798587821126908529209052458669843693447789336699852381222122517371158781529200948541341618939653792878022631218508729099814253607701752508224770786676729759647909965589602205408495993238603464009477462375642180473693705624649252621634869080470236659823399173048771175513547101442220944350997243133484042374186584023422664433293536723682583607879888376474959897739626849842062801163597886509440045280032276447043641939096614742054923998291828302492852959226073878209030022602120806881517892574705846700125084411640004015457036187797934417578025280185736361015602680326960092344135296515465939983086424933467215721774383251022720871033100147848775330776071291344501584940910416530315703017775714051210624565001442988107039630491730401613524761026112608571990474143102849353329307101176004779074754572335486475959423834062366140158620246246239237373033085000209793959264034811723335462099762647139614002345464558102269603754440680672684383243336443261401891808486948583025947481011941653438162348800607804821119494944255668328418169012452101682058239076867439331212630072675147295409564195663178342196332228757625231694630253866567228641421092038450201349032632662949461122837622005060676625244788818083990594646492349221075748273976618961090227879796847327789904219805585212814111804740129521942800652306982936265525173255268073595720107517055019443645367478564050153629862106843501148789537325732208475549016380636881227364784500549524581309375703229466824736414864328675653103997005366761740278665236637617114612805492487949939594943157246073209012709147667940169599870681213631380875720943979111668399308681592488673871054843216376147992932012517147420948804978514477357895784770890682986213489312088504307032676388371943920268185676480835639280418157736169927766425184674375702534509642571739820976154895959801131412530244751278528337262673515833061247479890138945760177899031952481025778486607824362642351328156753170659672368144660422458995303474936811088084179594168537869672778215243611589601351996061864502913413146240087415321601600743401792908058346495870607290131733406014829062332330904623775659013009027143754023062963081762188721581878831142869711970970640366807098201726864176169917921427681564195145684627373911523659269813154998402431394703180187842134299439591987402580627035635604034464690783224862356666393632863323246737553663729491903582611992310164884725248327960007451964011453657803173680884744355461286759547329902596763610058211761992033470169561156021042138093651591578597019665520428326586245774946382972316096299913452217422743557435490697785419697565531229928102551435238881959605339477321059045079241142818186801856370512327098802360705776973526993525009332414490167611682867607670979367849541179413167082907974983281211318997847513909653491600565354733268181892736473833363307998598818181334494491244277465709392057000673647619396477920595350336492479013491934194605446638871059106592125278684423601499552709269348482269992187236268965409302340982871142190636649150326647883930450439834111866546010065156000977821820220190176839370540444990849392092607025624691265812633908534836606403788518466396463007783908342537026861762550444394667765320320416879418653633837020231319018160775912811170950048986077159517667173040720054707260314900564676644613070096733653031032259986116204582405501330038015900551767191941119458967080190139922986290262424136494155994585223481226429119021270235184633988831110039580664614629973059034272259824822725594472909833015103099393630619613952204331806250753652110422602403192195001865351217223796077869388241203722602488799922743572068565394547209748978533615423607769755040531018114100871613841309787149475563043082649275476239135595856229002764380090213096212577331145325194292468511027464210675680820813420543478892277382555291847548790682100391123981041517798757588087645966497342232322652420822707463666117488574682067423027135680319107899889383955528853347900641828938254268946477058611861725919969927751383547560856632427184825027140893419133792333661390255180271168597344626113032773235405674309204629471359007931441741483700062453167902707805349529656644689945204073096681406205671923948348188962565701392323476679930284756065982202618377668054589408569978937688527827939129178678465855621161259794710605025054967568242856414998451688248244378117633143939931169386284581454719227663400907749933789097439954836603418804117676556601085722477617440509515088616547045588212527200508970942715210472790617724982410182254477771446859734614183507671687110866002405553593847126823917475449209767193183508466999906789433554476901592121685148469820418848590449277098330123879203985970459041840189378853286651375610378873388324508837409153117833139645720287078947230941751106531956185860644033045224103565405221020697581980779559855490203049766376626038251677961376735649407023716417175862388056842942129036715707294905335185798795942234808208200021482034251746864863191976167057878660612814558772159646861157763641229354012144974666759199033675516767400229507170812715008737616474082377497493183105749384454989176388458247229660006478260210984105531435942625102233986721937838814655978108342042412266520402473853127588638270155253601933881763007671404586859523747164372059481776681083631092578780617683126062151334780656607595893303668577543440100755291766374586711963163807165326260097934729825216436374346927276246673667511254662417502059248356370624524142693448295483259242968274597583331292531893559509546573767616818444397395252367453857961269001665130616499751637441311076829747849402913019908391271170622098123415444197702157312619635537108018886494682030436495403095537937312609997223740534005706232391155660275683893838930734692066521972192300192542601082198585726701401866638560595137056589723921422017395181476406226840275040075506414840265328166757089839064122246404805934364388173877351374755373064266627841990144642177079612881169524900409036922170830630071449225520180765328252574692951669750955705932913505725373644882742431213093854582531973591173378217198019891715850158221888761044847182320633131065884793495234635946523218050065031354086582980994455779938820096037157539619768809111480472042768215324305462278993067741455048664484485499471220049174785647109208211649318960581027283737190910881257814113426671463789830254564463025859762805024347411472384551189541635479285030108963964586530986137361925976475050982510781654586361779712882795868052524725792881511044013473498777527325066940555362032281394810811017013847259439016890577176210752581014492783634314126395575003034984398450807868356989420084059169573560953027394206694188719326458952999377534998506707816190292294897708844736549717627284041353199928421181431392230733972602882589621116882910868452967541614501248455466722280321703924725929728784946919919164106179929764813222195043169112608260477814539975850233518344483787249456489108612863168620689572022319742318920136337233352958799296777417202694712216094828658733213299533258009090760058939214417001992293415066167933866576112543281290016297612972688007552316375731593742500465369238271763674447930060401306760640569437996505204568238758262264366319054611943063559536262781074936689344093006092264470397216031927974770024095783761535928157041538050928048889789424536683267273510002504063646197009218370114701087508411383127921103383827946566470724714902528240258001829940519125992761539688028057457470367505741792601438918248846016856598501622329141913526161555203894238874872301780381061452694605762259931155427226214344550730882431449593802732230090784120058473161236570782674763061817973754513386098711803722612062042024659535970628006364168283353337436121492409240362693647289572235812893999518885154723202282642448186815050534201158471996830369815038247189002165092519106771427427246836395479577226007166509744226365935156712247835525376695087604292185972119430948176607511605691227260620317906458379341794033434262810289857470037911138646371895931363164778716348682634172201197341977950833350080337399349204608440051834100541558311113911887850783430734515523429656503861097544291096922376805642915989566502752029706302499483804113917764620885061212907758907703892228840169615228422382570559872297118608277686019715829978962031496975991694722328043453474843936447311960870207888105020807290624076283233783490428928958698211164112354228892178491286423202251464425482878525369623933630543050062603280616245970544703491123144246094272837996349495528583549989367747804872612444538590863973739050067272310048343013868532535943299819964634013261698404429089954692215711105427043313649988759898865855191175558929620104559619463114561234130615863792684817307329823720854038216531359885625367919697930646705645776008660190174620901471047702925138207508608290399206397334938046549541393004187508457958699116245457673271705783828281169621134584856227245365393021559742356334813320418918184269261056371634888101956873117199153713367979122980543357097285369260995615488030132736689246050150132361539301551017888378318491663536538192774243246231590263140847628598537197078859615315841636989662798162917216374896263500696148491017876880470846444852402437821114512355275595192019862203818028468822421737895980797343861199625575921512595301212409718904521102186432005020040020022751249452535502822289170776384153440147031014574327253514687376860830538900198322895619926440684968326931713919812143798231450725595445798243204193615738272864772043016572282458833254578237364617398177479851338074701469223259398775855297741499012800822886224213345161167077444461301091671604971613263340614781768817232014220811263296801210672233576918410995107189852315890173678772968157032747185562566841643648270033515365075834400195073998069867052792503553593761753478506992048067436698965467252336422920991028398273100560582851447094371506696293463362740281612202241696278884986497030019430464303050409665775564100315840925618104412075535992371982661616456436601856759243516809683334786103962017951090691545683756508204859633957294704914811394879508850568611154214795524109564467881272309821367744846125270706306377036314022226900418013070714710793790647090590786315698481088445511553800285600678271749680348128504379196085627875242112019845102734987072557220640228935989948916386848395668641502220060931068982526499562185168219275267275099146924191848478274798689100074505330432523805156512769083168900159476160162254645078958569569965123895946287716269947429845816020443677713980703450529812282979639550669224422833886015207342548818298836064699500857363830119730340720404939498218280916310160492798416659952209090687261741222216401354416039638752480889463447260737961896819883899657993306390112257920489297671080034124963763561478913470983368883738363036032743683074591138934339431201619392940629515613759329336719670865351444801948495501924691639351687350081822347377588360385689487152932219619391585973509517454848567452255580390564405423923232952665191983959988762870813892921892957969250180437469792804795405157269581725948091631567224211374725814000086925612511348383554162898762636990206865301278628486991159089442037302443122588341711871832270571603655698798497751427506805670441550479524000209677335837958367697759665759733913191485084440673967385986280441938168600634329180504711889477080602512610061847618341063390209308667762982938257152170791858678796661082250048958759622838775969290090734888452709040312458240427361705541562266094900983671949983349579952128410635645207145422902843350348020972523270212920929979420821745761828982359361424379679025733292711384213758767389531720770099104144842977784670880040896551883099889683942609664339922707298145824984784612713251909221757771673302036306141072525943271500576251937319433868886350296608304989408696282738598392235304520106576689374028315719243273432590036228614758910481946173993747760879772854031064499544355385010429739969039474518457898349775721166660559772742135085907530455007840872565607989961905746526594451549951864050876553806963341512835158527466157845078291041838306440675808657179369172439407120441122409881220126788133283011490096177992927265009925994539054272885253128683303916318374416733435017812202789290004577015682367751625952160406383077317082966244524931351138513120587283399889989884531581074370648050823677399577482426438692089723398080757428487941849304439952069258377486754399657051392759936877134447406047663047832674180131657167654215325135299922254975842769553696110976376794632329583482117016051588892967824893496653503168805597577101815924829840923806793781847094364251197335122664679644054610105881078620479639705801330274926648764317989157269778384581001475489019824599832589268480790855792459854577138267983203646860673823005668624940281084563853860466912267813897071401991186774384709639513980084625872252075569241791658470918726891288655715542281500794683796278323527975402108594894308549075422056492278917780731656483960362645882887180800421850913203981110144452049166746950652188302862470524510604849325389288503822139314338310895363519691341755719487737413398656974863520745548164128001368634992839005506404230580432232643980094309966540799188333285690340956506386770764191760505398069110538066215559093182539872423078557357948453485187408826227001537199675275813019302201586272714983406772349920600684351825769532736057138029116301141011026772512030564008908467478396171578779570789036303028936410516025765921635929540671162384783998239708868431125990794905665418698081776756387527318509261955884302910747724319832998043457313832037525041971970757581802594101777124380663922649072989518388027613405543718477786585851951832298524688324946425703155389052873215245335845728729352200419956547362138360413529800993750406999408932592122729278659403307006464526548256205690203405273415023430023429918943527829871237518124240304323236083694758834461310372316729337408389252548804506372383411523287141185460928204595550892329663580099939452915455006581368872745411770901315047004153962617167293874023271517193230732382696380441756867112283783737270634436615704381431252278466682924914941308556179407822646177603403347514757903794830277354980317218512134870472597501352869569714504643464809714772063908053961075933825558151245462319699886358974880417766395058321584616742672255876074486691971502104967640442794885767062116943357585452760261684273517854518647669530963171447109346454146821348452401158370229420685982373650920956812576658190788133458769546676211289754576343178275398545747593183770110244597004122550505740485898897294411622704667879226779916634973528744342311183674351760087955029736813463612745718712287625836893079270706809744410418019495843127148226698005711306915542958225750187545698152596728570866357928171639998209041747736614745101723937755279716857514414082921240209997245995874824764281394883173614587819761447747526110401817349740533435726532478271280021824594902546220108468026104454343220274551257030111351700540250988924387757732318085344274977332972903381272174761503825493876559902181691850123572296755914148796474822681172682248310756238879299299974708154122212151794605843166065657917905097515364077743946598381116431042463161666102994815729244603569165857494825927570569259548424183381890014859485348567367326343610586007673702189530695354122805580647080286496095772888981316494629918729252913587087544392616650608680857822253610162182372257992663260823869662166719104965157743420098131852983028205508599147476326501553304745011401905477690637274292020080716904152548697127193684046094282090538777446844585039290533660386736540552862166164366041739786261271818235588968290985738367726208823571320082402231610146613528969248130489000349994325033041521260546397764101131685330031282834287595987587506695118984544391633927703508015702639718675501125050039444470523951268608832383500765022925666581044175458228975841650619431822815465139739399627574415763297173674056801043739754266014257472990427080263713685183820490579201974105506124571410878171842915022756937225566206289265664693808845547360632147588602271516908812561497368538361090888598601045669308328060582592437813786835729759315252996375384139845696254751452478829038792277419415266092769481386994644880355878865888075554683862594551432956547920192462613839620166809698082489413518187270577803481858967079177079449139291694037014985457753336776566859957105931304598077611106981279728265704750495100339872045183853833309879121800680784772716031328892793324306242896748930623604650152756084512650722326126992541245353488641509355038852512610495461794197653369513410270206612703812346352090350050245149030842730037811762768294235353810591679478376523494739417580617907319969628597755840176439186013265805295403762227967745517475292302416139019037726254330459222691847937960743248321684336662810392615803948047541910577030042618917607832682285798030259175722202083069572185185154246556524882355881689216526070222794762568586331440825989061714950325538690597991307836610702939676355386776279491247797057188518450835349511326442262038100583942213738958796254320225913954170896142979247910360162501125633146121468914329672596885321309908795176992471483010933379581333634134631259783311953555500081236727564418036321304577493545667146810018039694473899349943010423623573907855004506112015236470062292487219052092167464956541753979943011292028194785334250630124440726537242852482079834407063892775801153458208173127061444273267014351896340313904264164802231114940405390103230851283838555143449653446180224568335379619059573779161106780681350699467355394271211748050641940051694930952751928599941162582644082928538456605552246543927845766863077787099395174244603997433293059355435481769841252374200310129475785509538454870906158132115020063650847972405604136248849673081606465432744080645150861982159894063908439391659637631249378243774393044822079807690340749956652326834056570968227546221991527107843737383087939651978198840470534706105648141419437218205545043891096435791978238661447083463877591231210904951446079233445387598718151240459797378099362006614076240788395341579089647961615826826670127392676800745299450428006866458053911880889098675305392327716110346317767195830143437381246967813766713159432985935148413247593826339952284185306901275652140981209999760706072060199504026811378070539792856652558597183402468508341683133768373102203047293883199877484137523595599455226582410967865352098552659244710911695326133572488807750598006192910341140552328290436206508153397653771670741523859430088680356554232402529841837984008065442413488207302696587435553370529184698322114231019685527656670112763523376666981794543041669066902835959031996657240675372498878080092418948808371162726781234836514532804726853211237173416549605968116276576138145479385601581662208701520972624208598715022342858584027932574514767097366310994203766550068081525522232092115861825853809202549938383257810830518666634619620336581897171235873840818657115897256297680516716658125819696907496767676521201108900575043014545705591071846123395778667714997558580587172595858126433529279251446703197623252576676367457289992043531465002469164856040613192763245699992468592210978477773335078684487767908164550561068852137711620587608144654623291892563038128894760926650713459244366867028174633914723528092628010585739395127973905017037669382406719876090126760742690440017746815068622653167887800271649239355111888292730279282008418122392305009926955179555243084215827130468864423946856565920085604169208523092250605253026743340101701685587802897327813143273048815907421042426057269723610734280707106437640379513518080481698287091830474603673846569603661994882491278643998949141726439569909186434925622854764091236105125953641719709411052104038538815871281308809665610100856018375652401157411111139966337656296767377314089726463818034102635126776240499597043603209483362292996303546541855838681771691524796741539695067134987895920676684886685301009614928771455353665971595331679973559058630655247150543006673997919153770152879211749932712188892058959780398114326353905324876363908900917425523961587993865358599419404378858474441254173919703828127095733275414349833736457328691048752065272588907267363511021236541520305750626945809382977276185950413011285648593969875222743959477071064664267511610766472908693834524234998089797118250536005774506144757286672116571425904905667133342510704901446169610252128908682119130510247157596947994373852251275428689974843093787452645871096751135113652627288823639768859959436272796194182504150241505981643549164807020123169576979395899123014054785160656003112829009995637306457704036406801965553186592661362054775299561640194118386973868065201596827055729432670397424911924619874502853533696839676146068960091734499721965795026173427788090224528371376734834977826757685273130573541551743669404750537078697116268932941722936446754210744664075270617472997447696124819185870273492946456029454454765249388237873122712850594914214162777315424524905332955597479897855443296690094717481335296359683395045886203149680029560134014717499817821448334019083305146194691259244027937132609261065081383846502222371363576517556143221676407453954220333531069563870093391465936021413674438790080822147277905805876742284053855744207547098143506784314388816520845123199514527574321229489327618066592191866236082532851769215929169038457904751894468461007807013457616384653359506739880208413530203260713399386193532639449708742200485762596361590748211570022966600039018153683334481847612770312252481082030280550992625212848095534427147965179627819173950664975869530347044388136819492238954202140421200573590930649783180255261589712394048979683859251634047265253416076704797379400248158333443888240067386314324587413136470219595057502166755553754440755495556279142551903628883714059415286308217691092896981176681929922663334871017635425139428992831097120731863241784957015278500301287804745513816270970488762466929681822963944414511892234257098413913704061076902517804580218240669025185862505829564312318107680911603743182954299787109692125557789049409511499474652822890639194458899672254364379568619621965364794427073463975843967263009504612073926372000020502805700841964585742163655021901787553796421137950311043459668952887605287083427038223555914321857773570276480359419387288114817984449116503492676606983544789044778636619197352237373971487442180210087110795717929992020229912745748917695664466668643079133499283602085090129511497415330662639565178636543592007930224860313317765537093484653348239386286434910745368023498626820057079650801863194670316759087231464150389865646603473868406527278990706843412871503882895071284610146616781785539861068369808636538873079885104050852054838479828298057261485667136700927224714389523246991891510991175711159615753486362033525395339752084681826680614281223288158670587681944827133895008526940555073466722032653070905464259045698890379998394027711001840325473871203878063806533797573707727049452989916706457982036324020013314371528890566529081665248719584166715462694854496794585225427106254148632255288341170715826470685409824861877654050013653181307481537363176299955150438467536155222678838435045489283749569456300780117157795445158521970501024684190773379360988952423653301229864725881184075811432619657118103262801690665544456852608841876589732770365125527212102919848687311851300458661459433703286189451965452804653804569344504160934314785197665496558648573322734060461271047277622416274645812668673900487883547969244610008620546174422278467504024965265682918728906512763534163087864931953510471794452321288637316349732209736414755431126416820871872358374356068727882510704870318759874983284405344977082425869604190136335295249805432020986239591370113866067382165896416744726137902306669447618155157587502964080363003736496069528769426445950435801596887643638044784606911006954823654468065021043844872263801301428793146375971248247110632132400202569888199302260499870192977867125818023037015289183285313892167273721049216708443101452401318317700035617418885129329428393404816374479355106474563372539595760228558882389101905788863998920541072249421087801954250737543173278171362032756025329914119173001610280385604902197242098913962318450656945279007363299758733798346220130984734484600425281536332893288212619203697664531534876936570844419902221946848127359619060237354002947988422949303113699772260079866787196653489769626546358649888977268029925384652589460512226063177221987315795425023202844856802325657725327497153423262694713449763421660871879318268051205085913618294423244836806426376938474025043827143468696093067266899478621560222104277897712220799414355178441685259932349780735544081302727821761210654877138096067918013477872395541091567506499584059911671464498454162964177969985322037463894589925637806612217460379391455268222811043914275580313893566940486307623989653835055496539908605701716146285421656126124048175621781060274401892899075732735355495143102906900689632399435679870033765384417139710566867964904611493643162935226150618500879998386873438122681018401463114249915470423049751428419747131949802917685370009605263262710163545960291706332941025304673104462136375082347350135874078092377233246513228350526532301305084313604262524093970020952380202675682313835235716273791549830994738745262475486425795649148521826571336049204660950064256672132797253614258113010064017969266312588827493857957964554749326619622637418509123215304873950239791493706204426106929096208125614754536241823566909167801854828966729855156652788302639403750667048084775281758854971913128611285318427058985991215098703915657619385504904969822992932571353753788757283828026435552720637314885550399072522473931301122476394769879574586508552473327577020011226097082328713438422974484555120795172208104519588115194115924000047607596882513616397091474219406586534855515872784749092538036134574380284831353343282807700470667178281215212328512228953486898715894752574006339145889686709960416569697907158464105642218129690708380675126923233912197652984132438935515679528760276155100547262193069118455958353598670621484457165350701769078421470364231928684650147300946440626687167766891269335605113764887133030647762644153674845028213693332353573787272713016964725940293617456555010252255614210119958408262972805398447834580865876351801840661649778944758119461633940513281843427645693044830144661150287550197856471291142741685604384884378178753100136112055920052429628516215714580213061920464540505638056660524096424647746866770711575601106024201822259329815796688807531794978238274974023933852581868133319113536732918405986431145902864643543358773134033633235531655414020592578557620569895575236246861354119749637810406326756570750656249429033107588965826321448073991293239896531677165925532701751626522450424664322292321972318960690182963092249920274843264452683512814856748981800226994607412903392964780156679112993550347528019636064288286932158112900008794842294255242398053003869775087590799388794050668443109167108246429828186377066934728059848304947941602931295481455915925457655346025828800939520069375820782689000479194289999617862499496187238167180957652255565590180925401611937752182867137217832978437233715469464029591456828549594789085056507488613879543854099710557702009590509371746507128480736665880816890502836115033665560448911233900285462029964079366075202570887524881271769321958603901681056781389565543629923572835249444317203766520398767501706411704511661969054017595272766159409155717311223139820442029718680385749370955259378029163069896431829948215673883118203831725306815374015008916424583927411597097657136283993450071489634813606158449089485590302696470646744118634097196466781706604745153707887024272767869969142569324465988875582476128993442112940535975040333383031906213560936556257311604986271467504950090050626122833351921554490501193733999840423517775259212726966721387735491172712416461949882202532745270197437525816019755438271898010470636051585302175430228132533644233520598114003178633072224274627127448654571121441821506447921739002398919667492585124184292318057581210642208035475873964574280232908081751249469931649342005490999787544237774552885006943322093448824422539188486308606777137836245667636927034780507326073735082634900337696815712071136013257054295002734308479170684904259062461334214729970759668542666652995196196348436330281979479156364493460783529331997476021124908091540706666088000236767508911772755226645888117938310791034252102394083598824341975737247092522722868932504844833567566764630762208591213945841637698811331483440225333570990288884166857297891655608132432687592728788086508009388343157330778733076795521979490467669692949476975667002801284654496121755388315919906314630238622503523789193707921260444605219077190647419346617271040901509956258429828328628399189164238052686678270939876154586076215755557782571392419634129832286173259586930646018373171249399963283751262481300138585925400483850864818015614137200144418710598861051270317284160847141775215865365884922611765768847052242314669534251539150309372283576308692993003737751143231262621231817031005394366505876521754715626770128124531946578359547682129553091846073348534346909432321812082912044903171369500110599006169751365770055927734035164479598036282561897826806837163032322203273467042994790676721585357106508794100920822747287839653417955680730771535390701132518306695181092346087929753437787616244741264505374103114700129075907045668748739224226156706196695863051518446100154844726658921637670612913402342529210793963882533485345227599827583742353186267715944172795587751985963218651137238484628180706498802154350965445293545604003213783359867480493661072200430398939596739140946003847982006504811243524436195521939456082519802285702221933337199549541648478117213307355740790767492402448985545746789966010113703807374504418012101198976260456795677838444213254697479481447989561436165904863191710868463137103662066792041596907009940482533644642621360808733446745683712470919172119713755116151055854118736203553422910503577546381262883613730590161599379168708701567359610835333984862064130195046649044734540430581635645898007701835948703639637641762289571462248513849874889926374732073815937640334848084882321040133636356639214235277771558641157541357472796105910499550280603104140626998427231914085064366749426363491873122585712467746406635754244124812016863200719756203859226229744480092457881424353008880694281515953031718328030923389467743621061367019155580006203559343816681095051470072730153833602749272393763110172414030193077437684265173512352968107461914549446821623444402759046818555102705399604975945119752904828102706758146370328227838934142639733514024217028837775672970722273613613158473426097357643704175076208916293154254714281023764281847990403400749241772182592245969239506910340277106405696741239483207177174293602636750474372418827800037082930776216188892488778908980233907154611588617616711249021052541607652306810277580273347617687723657450355848280951489342016766359011377415346449717510629570572461394001701581903627948154121166827578646359959729504565491322162633698816803940646118945313746953038959097161317800012226463051671760055475550900067191779308665259005212292365015232493017579123150249470629344468394783211462312050424973516886245415235472963439323686396524857654216261675510296161403116828761855315803365085932459310723591015491501666864662213504738001305189844615357707929433533138101548265067133951937542214232679768435201926392686052730246589874153889419295526381433731083606263785496503613239225089796268628424717366623824929018132279502336085662790766459076666389145064914751853535441740596794490295913895527438855143749939916323055891854114108296199213138761261257176538958095027632176567920154978894646944754721149864836337249462362813355351793487510155545894378645511777242627062038228534859625799714268279135466920560861188389275611062312913228911182544045884652390136805504253889716318350649321787315675337688792545574525770321193072488698076060254600747072068816104169407220528885253757087159253289043392204752924212486448843813139201904159565631298360238934546502318376357629897792045485318352120815840574181350447154264263391513830230523294276516422127353257621992379642731547163759798350212785576194556944118618397677435691779976498636254822464257271395703185241022574699248407094046576758922147771967597749709162373561512130900349621335977211130846723419986270385735050036513929805415293010208105414875459168760824524356450729036133950283562935969355867435557375196719812867793957734182735921135458975169629811320367828541788538058782632080056676235320477460697178067115419009010720369211610270866969117897641898565240782723379772873042275239398176986893593144878182701204678609998536550796246026832474370119416163682245139997843901251966262456075215170941061541877261280760201565771645007090026936397319863877230001470258568864445823795755908213144065382296463705961041723712960610542947596599097494279829243175154635658661269933894035797187012875071549170688513058723814972929491971595753925988981362698739915118094903412612407348648751716761001381494909549684908834034676609697739620087724211544480608594731124309613614355214760263426508356748470725060138840181664199991217817621130245630420258757367968997333502038050553586812281401941538973246328520920758326101042555216321015942712514067770225074993230457239276544067980281629863092803255156721399530966865089176760083594382371254159479421604990075226076590721131249847408273941071310006282898634873321519609692430581559796975767704051571165736570297796443197037656438831342479307625671519798530028858480331037978499806004362479490435175037280479559625601846169664564258239237252114644439928918836382739425721105139653966994193813317403251675060486457805961972883610942178899788310461280563618204833063260359861169479901942544574606401768541152289915633009003053736337324002076541551184956060171445497679059328494810216119372230089263464328582634555516499916800821447460227693787118295921437153470001198654901427463138660757629680949379849138713667682905421780551044474495933770293454048864253673257759822131036041600185623516359221229570342429686742313861957623799952060233918059599807364719441052399624540195617327865307040843601161300588689759808721599215716740525580536768405531782312693011953316026090407457686916629034058454423372231562666665547579041209533176078898946433623697886726022755872470413127280016564874128345481759062384383893356492957881613722425888801060777186194459491448163585997832833345330719824149210551311581910984060644934908235434065183635398118639446132000400164539825624212731060164126377162078583200655427418420620657475354830297609711018503524505954335777503058571953937490627094385651036954544323992228970161180763717879850983969136793389058357549896996331547598957235001870745658547351878401360937834554345299765843737983307304287892815193792296515437094341613464175084533664492108299391281396653997693746969749510613171023749614674183589261074767119190253607809215299912869906360378519307765598998107003618428778630407742863292255855210822839491740107792638780041463766843804652059856757252428763023316317134966754079847341851796242331770141399664519969469863096500066361251918320630162901621093204828232875666649363936022323133540063547444051276159189187444646947957110120588056159097259920283138453963809217124141319763418812924623044776423764858678287161461743331265457662621496067337243697698374401555348575779653587780299841908760830341532644592701613195662116471391948093286684955096775814020144991531212068820367156625584731505734159188262491936585309081351632250199075876496675794564427272239115654394949941843653128132091428396465381331753361720599814248353405237523953394527576679905770672769021407211752566593328853712584068650316167715975738813437761353131270448677078038719606967530068445817060136826159363707146170031937575461024464288458297917772335333027067752659782892121384892448901478838116707086275058944367900193613917198261401911954459034424986624270762932626981984307551604972892658597901291208171096849370762840281813165887551982269845721638273031192663747541483721995274414103042446795902495724000326101171325538273159720730626246715217296100728625578669857088259041573938165984694213353102739805113914656828915833098645808806328273649109930737351017913147609801764851747779352022254528413974120830333674752124582993874798093743694080073872973513595231646637332236349944920022032154013688569730210927257996292772467038611536640556648645115195576706805224967385442783222163914886631978566421384319330357327945644694776672745092115827843439203796030721551574051537896651300391382636170485399652317219696059947622119440710819943440506007669040962028555276114876722151812558458534687139425806079451305288568734477507559501098237370104303591122619941465121373527006227259733236009674962153174524758644793852070352694606085755702837764303711257836447424335032869068830247706220309027065880072258844558282023041085595038832799496173729780833271784069164381309926698387970338546269466048535872555892125044224612046534321272691332700546865712724330161246044637720334742216238480852122812795452891515952952852092266201751116135845111664447674378510158043479347111071720193978133445827716858264256569280744979154802590905827731526416730595891038189179488782827918526873020551283504742475692478646236747763757881582130530193140715064365973470785551300150889782648678290856099907830762148809414696558524163631775045961681920235533803292265935781148499065308802209787062912424067928165059402905284035394143662831969994724887608514601031028099595048072635809846580688135762100177094759397715138179883021430596843199166725639379162168275533463248400771330888479374723268876482087699669584557006802536482876717159778155761956848839244154490366869460816082698788570426928002252380799337124282390009116519494148768365645299851768064282810780714302709378702702716809922054396929868057097053734812102086457733361710699597181577745439304697209219392385543490317123027614576157621311509073896640670224845018567213233120152277838726375925850931997488578707995823495509634524889762342624406390554720388343509318824616052101804275350257499997457448063874924881819487744332658961608584313232530881078678486394463732468766751433180774335980865500517902608265857895233550221341759928172694731952817211336054982043242866306124870140007232463333885139155461154588921931766674456763393785810080932785217351095997190643140978052832809671265916869354911671450064397207135574430936260985223337870266934432482023175540037293317718301522183801778589085088101187426881231064330071277829682208681762448756132439348826181166084425927254697602363439234606814418405245818676184549731564483848711623009497395791544941094292535726350060415947992482662038575812203196021976155610972125661671442696561079490153085901959045392357455844962452815623628550681693828121606671847187778312426963283994424134639837127265752485788199772031861985699467270755339350222072945819681528493667806350792535893651088752336013447286761704241533128756299436239703726089549237306673015235507418284004728836482848889757681926591727265870283007791901129610291001216351205485793838120596971521644703766282986190517510038256827597984194399171962368385040823114870568315005770871790972036387250934671434323607901512569890959553782762323728740930595696814136147528663654482589783037258789639253788380512883464624229672679392786106658570639074697407647488689576543307447109358368924834013130887531125698074637486291191412133303060705784874972183243172982281748588315577107461637763506364209548777303457410670292493640860630039096360081624690103004042748664116372151618194101223873538710702875889029654910156126390071868280134482701527113884097557911458304934101429862577215453534444072673829617754045418039525085114855642860317358854900522748476907629196548299571282653181673613362301258308762389905741230754028647471466834839966383271893053929986418540693384959108708377726857676253016376212023198110207028995855708864088600916726292528551533204008770131808574524724992985101934441172386666941241584499725537788255278024766714860313745182863006588237584178984571756607401005967389526168567133994011944939618988327329682462118116435711494550354121779663460505176407187024138410638813752272123437651475790309852163304318750658049371174867376251029226989784928261375385574990496067812346434824441941036712392672542324205843978565421842190330325120028598089404879088936144845259573831896881907095553353777671776440959082084303780489385391763792136630423591923481988352211652951312827464159647718576040323286698334484090341138828572270534777554492884091504036719716353220898364923058149128920835496995022583112569830635142489182622284261537561996512825304471297692093601154845762732360023408455049864941712971892493679851430769365482914114774475219128682001201156249445825134305358715406184120191071362314335308362006502800598155108237476314785075471541598872637087643036878942772026805988638135684598422373389677134239870914628424188800013094896546710172870562230406765928023897517360516571323175828021991342920467649251738062703203868855042968287407518794161843122702700060193370869887404191004726172472416242764672104313339825212090049035600372314186264194434974373421166304701791021367234171418398712854975402658086440529429849984633805348984953442021021068082034042005715844909192216287886391007072663919560887108153215089899811988022217533038105887220021195918234542904426552390788010708866167171927285271273641211859697564803147666352701288726412006802511546182469640470899537411915926977117387277718747897976230631516396961835288997642444356927290061497594393618242148018224163208190449381134026344120393916643208575873082462174121030722962273306166360640551792624175998184001107881875566329185253004446659445818916276353544742439670887406737115273982987360517016973803788015541828388896470927584643513927746861637339306757486574181044471689433692450918257151522443106617238292324118835743087737324310301407159327312497273361774027263028739579016715528499115417876883533253242400754883157721769830160668416187235594299516614815559257037535733325503914297925764078896206627190815456610198735937958102541321736154582535908968085700319513911095581932243410882176581894663909611802786725848080870256135665573612213141556796278641005738398155243547214657052250688842048597635401401201358609327398458891091125874434195816337839765766367267769843465880295238235545664687206134539910540801022717518072738745556990753637937039890228286414253024905981679817732851505918107498513014918094291633556280379537889517035015883046496086834682092989634362111825406928132555247190431086798274023502491065593040076045297305161308800435920903926791882528510222683787322183745787411573620050047797524845086973762348821559367657927560739721253520940960616438378150825290714395398204999739399974000131718436766545059465283515157217877649585117676731474172354349286082681073279747297295006576473500430721753167838015917479302817604401204611748936692204153014730017109177754916120145483654001583994880281622158590541941824586231136472657025811682647604440237977285396480587392489887409101219473911271966301433191635379585595192802625875341494115430917761374504278390269648023472828957412091032298333567037875310584423250236758048730229523008349108562015083007883245581632068431762931204213571211338761602385743849806968456845360432874149747056150027037080557496232599623089968671021137669556160152901193943802145861196161743752209221014102327241679464050969496839945574086193179143859427983650895721866814445041457563121345612684950986851607726458760243449924239015999253210286252424347238655631840764527302725906357862694111129563718153676862948290553356248404782981886470532756671534732612253204202103887094028096176705295707619222877917527707676982212782357404265240107156916873756824757186103109871510180977627864382870810154783065246374093463703498714251150700931854071279517987109997225994885346864637651293296372547478425903620428011186691324771151410675368119084464401455076362435265701388286551004209416028337923528489195901440505336320624347950624927078052663673762669204660141102515103457519982655890522642927698389973779215287070802256404349062858899818232861966005163450017064247131743745441266368928764843638598959892193235495401265815800420365030610082010288454028552942181015470386973781811706414118177552227414574206521555890221898064680893111501324406359006417438425241817405991711974163755450134123750415722742254681633427433877837871112930700249202853062405917851364913784678752157796980375975336823643233175973677534814867604227689222400238890365785916906932072026836386513124581253757755468307354032013897328795253365182642814784869418354765390398455759576315157204756320616582635135215735567351721364882568369189835515994109617300399810435988965916524367158993852033287929926879745322988466392486770698754995898885680226883482795125951294827166124678896157302230566229970200507761578132563071243921769508041557037113373707957651666198725668823439098694182300836745663398268928641871652831758931901288290747064496128393522268815795149937910804240408894542468148351463508780965667789089646830178861799517523627925824303074591734138242446403599526645505091072429497205636918217483646855636108931564485968861832191985570693342248303311901617528237741346056023335609390480497653268132591556130912030429017742470285893692083497838626117326192600647490590603075572282798187499717980929099307594950695765734997598416349456434270296325023380613142223870281920771435354995944064532729855030911585602946049046454801397682880294411030029505122816831504564998503345871683214514912143228730427929995504835101476569384904888622577605606512898639849772086889614798376878198701730730517356652698506845968553422366436117206177961933438448726201004678948214010566538428718461108573591784609516568425088277536402558008002313235136149621682409596715729771126039681224990753021525072862835157584384455172327429887590258604953477752467593432179868501167967548355958972319372609452138163836507445433272283679754728539036859303640056919488823050620236734039168706563179252946126569489242378303475183474734067306651499801537965996354199491293440737124018678637256476700351590072462261760005959678870439526703832809773616247160572797227200366086259567668337464066229930300996658825486388569765704049165887610445299266110409848648065738934711423616782803742664729968412186069216432408208741730007533634027302599453183482624687532079642998581427175061984422777378953653623990425691981070553436782479257936713432481493331924252038507662319199467528112584412497440500416059605728531083092157546265007137634486320201308465154703159678028052012651999249257871361064456680630512474715676709549459772166776059405726602305714926673030031141108576416348573496404139579096130395641646763664020058131203036038330749589603219157831349710008473942216582282697385943137952686342779619470915495611653030355021956415724580437855456505741950152061186490636731556469512268871650102483757125459845917339372339918182632149688523384038952417387731806783782566030994645737860498229939997485561454153521662686414209847102461532686546282220252683063007550655610094028191936470174778540569160291115306312257175250137495344906517339230969621708627924042341664364286700458142785510494436467850933207385715114289986357857769077592116159234538210641629385219564799775169173355249378770413067954927047178360032602997205316582013047213683543371143901408516491068970899071473393617974822760659340061656623150983690148456216574864450626899770974554077217735472752718276482089586322860139588950084018551639071831494574739058542690430413687526342284398323907268942269302895121918675304620361821207325028851753937532723369857193355265245539742496025267368568713010189933923863391099518002008085415171893764193902075506849752130362377225337854296102763017180376248785387003358110109978989322791126010864657178258840504461544230198446437055831807007783281517999256744469946061971486810915545611851341500439760389443569769717732064030480827122645953814054928647311990430450176191176859791002997258143721761362576933370499377214784865813465969740266597454548292222385233093438015249809940644103885277164824159267789719884981817178305385927327874308381039405525770428773563534142393003993112943053185136924635925516158029112794914334597109147000282330108327955916960891453998997273340070077148102481900440654767650676156632674320958829889298057372453972716695064925537232806114002003685596892165226707745753928815980631126932702950338841464865890766424142530298150422123292158662618029613381920383029943591484514880467282968934246926287379243458773485551309958978148386658367150584343204157856567380641899243346911576552426377446561100192749041857553032737845388271894654142007827476596899358765149194509749458002423791906042157215932898008214260248307841690244907952399325978899948152666367381718558068390016902225627279437275712580593071559865078341301142977333057252150384893768431642301588603923557005184774170510253649606313810293071540030362239205505512712483250751660804874895013047918479868714131877880993206791752162612024983174093288114012446427527883404399556147409409756763856810222365218646304902251013037975339982515805734077301934563823320245278160547542663079206660416615320352239702165043153905554426995327129345093622065961703605317552769320565184286589694146095634269674539193538520281494798583279973674389217605492030875146463183907170162468579797344120475920356706073088282728119487231783711780823680390802962850133386711449911412901081854351089208463622620466938343317797135027690262761747914010990688431040117728988333849271233866973962982129396259254854591276681547030719557285105610512755184543719795919085545821189235433476515252497034719497340469789681292571850260193536314647950487130623310167681141966584601686672544470027254642423456002884017101735605818061987506181451453194429983793539231232623057122078306403330214629486494386092836775666952007326464515599613600535177027369681034868054619530035526540702499806778201740627357575910473295702000704018009871823600496396449293854248845137415339529640732630279044347615863355547195161475212102353263850323976702677239087365326609174292703220350812706036151029316947126069335590568370170881434759204053622376914711152720679885208122991516572398211041969651079542621190715899551429236163878487565935792211592800179260913242599361428177556829210313355201053245115469610368018368809838013344786884948829606042493922987647130654847851591468833603674960223274012016172134726502253265078479930938888149659101572473941354272748823727526070219593700599189277972176178186081046658634077768215099553827524787078100707834515734329952500559103310105523738332302545994957380139518069018843992509013272536406757648132863705846535457774214684852551841504837192831634409972156845133338618876562198595844469077159298328862349613952781346903124556793086892443526531842172763063307165189864365625688621013926631252360937108711039435409014918771487623283489154002973289763067453664039461331071192547437611878585357044557315797141139944188391195572357177013879449315209071140312255105739271719871952905482273858468311457269210518672019926810334826101070822120663082886413218442851238273701135801357963619795860062272776198025186005396528607450514976106758147648296601777218836771043869102075737467720097518699659198373469792202797730559040207444488409731555827129519781387187211519004622244564510123204801291293847075883210975402871261100286399734528066839391273028102442242330727221779800234771886998358348567610478449397850724373664860698078875346977380110354821567375874567126287433384791105861368504164063765747913255077986065764028500018211539329281877481761466337977529199033056401325523226961626717536783386941541030834588789778507125795302188516525537427243083704357603563869921571642611007259793714788102559673609607338629610859192108886313260748543013133074663845739330555686645453243931006579532235728854701296561696378341824281691388391270423099946094864194754381759971996070916724310505385605521593986291563008708479515700777180488203142752936526289562612467702434833677802072688924418755751029815818467206583735035715995496051144223602166103531489015969638830848320175652755050805776187924208139891115969926917623783836187763845609386880141477939499985991666219185660202087751489836183791393371337320078458193528383740401488133208216129040386055578896363343817361836110818025131767517957774383691625230550996146072292040753623333490951391999896953734536491513132030208314164998346144115143816740998233145632027750695576581687764878978187659396277710428012722090356447698731121925319402364077255533962973609369758689134500528184628033982907704797418826204944089032897540677490116823768133366617705634403683565915719849498184491861023497762004134496053186106684049815291483034031395445022019958295353652646861886334232731377114076149298096673190510069110641870352298218483587326717332313388708435772850656217210477388427220952532424445443064823090875108058392935891602615814262736750016996784096653508530940607504445465987986437168390344029096431356667822231556283779051820282728576258054995377920179755445167913641128421798238015085295119270916804078936670948700609729305860701985873057820943234107398680782069758159742889383416374981581869117636715195245227042329985732383522795431732266441309203885965870685014293358678011127001402600992286049535543946773937302663975102066246518783212706842383620033130302662242337056976787809570345635174817917148088599128413799652166771137033680038236531392184200123359973584805956385274264385740231467025593558074389526327566742749193073647367488416009438146747666844537002597237983543927405291769052902380229285583515153179459654125910371950773369306575199414910912509924941760983008214013131045762171574549307823983590916026696804175408380262634921251020742615232235729050352624111045216425398837565252149385405832143044878007193509201004517492292113202849600741325516673482279679114920127256128580677188941530660208420090934322411827816166776025958801346476004903029760267845792839298862483721943846618537194814592412086540211207955451808949374503212047366379331033031462169663878021689427040008967795871598282837772718182678794177702585973133584287476544156880594246153703882898588047416633925996017970808473547213831415852958471592770452051650523646096286626834432350028168851110628104483397556088825760849657050522394913316737157123907666358276224865874077419334450123420667604345374054483815442175425671479226623384434927152553765736134109553073333432966514531514209930369389735917333270129694182398876105909787924413783247760267237991830827528846537772316596505358506705942005069809648138833777413225460074064527304437469312322869161017449532590366959335593757017876931029104044206681370162732712068302910449986965445812632231668424723654073376530871052919005245858522550026400484797184524328055322773315422932562150732507085120901950548727280900101535633130167098207569805978538843664798136792991518327470769477187636226237224965090818679370785069289824300648628660143295165366146491870028939321705344266007104762977324385703803451589156845580478997817666574706578107015310501353745442980909900052275948998133639073913189235497983656026178054116862139791759125737794745391976299318353910618952021251152889786662762957418732561365858088194224612848453216787188967816883699360548219945239405574422330144666856136565306623227882608839790070113497884796393332724048689590627009492867078590984232311565280953522400272964269946823311178027317343727173170642768889316792368266449306459360534192650642847290201268670293311363649776096005844934264423760295238515739595919393391572553006232142702169103753577281124422553787293345959916445451048640409177853534672988534927874658126112986136536367374571315847694224662744401689004592775590699349258305217026008088090199657225226999683484085929105625577401878016706925842605218130870888652488429939654726494204464911212033847178830676111783883559074024774094465163734404693495758249877017975914694141829712633017973649112913997705746735233628190016534872407953939584500850988907192028129432440932075611347703406829555543293629115187163224402472230294443373303276625289129147105604312020652542822938257293835597593800630769595687206442457435114604060463395363687456008146241361678434801683963740876065980878364868802253564181289685259274999042844584096873750060434904728345663844682898997880443841033948754458875836857941413931678329543171624020098871311623827695882731410433723559300255742922591885298644922365816143806677233275567316178451279763035843872251551235113197020254705554788558037278450075059084606851093559213672315648446767579345335984401873457118884106933399723771342996798703465549577683640898196137698008638234166924582394693490327655662914746254979905010555343700018012928353564474953654791593102063992848677066804286252179222437427796343431402520094879289815502478553352895524543543720801455959577736130125881229518300193583782046251970999912944065243827634654741448539094011442015863744493399878199230921057902162002186429479376467265715923891285308602546874596108703292220458420154239889683035235458458974058138922002642963106074970828553414959417561751197668923200122022489620380976514215642725709492961208479029899338822344997617651357072143731330521140904363553847225118892696620887471772314349452697426874748050743769627478023664013808822147243700363457870647357781928350980416537893411151417491340931215081304462389366478131330689052700496259063459821440056492436969961387671969632233719231374457466146845778031007961509429081603573713873204086820022532273170467849621677832075089419636320744035928042467729264638318653753630815427066504689196982936060562419953403673502854411231166245206552326622633426067239338604522789076523381080614302588538717454263540314962211824877051505804523052698285362180798901333358938713661635625496205524231337477433656241128798907512454926699663266745812306294162047743622576569164651129838201994126745872933446569081569987396738422676101717228883070814450986504084606606932030534707575853616201020817780907461446666276895629617876913279724339136074699579593985349765053937399923647208734093829667044061750541641729662675613122495296123203345608626226166464683141124720843642561519023292075526278040092020340053580116815501069003470958990447645283310792202189791776966009190883139584991386741352352224614037342327385610297469070556634382856283724414883996729368080379956594899332324671917041112570715843623212719640171118355906405126853227478298838499032333236250791228862989913982132642493423689319943530735656714308347666782462608759598559604375785847921069035990654009247941707029089046985077322206441136696213318602600436149635939119258005575297042574217442947169561907615103855201312035770827500371114563010022639944854764014214055306623065130687159481928208421649185913660700383129627522388455942040456431913381489658337167433718706208401851357310306922051182862331006515782517628430417054684678998393366330365708290864909308882793296061911584693985609876291473341092848563161840942838163523580643734586108235865825373711155764778664631297316479748521874702935778569970806536420310481187344478236685182057799308812133699931278847903061874066215185339855085470128277698186357432036500769482485826488327555223252951087480292991862516313029303468403344461975071303439850523802066952283951000003412669461592508849755323053384535524816271732402021190355602087426865943367732407468278713772759607770542153056684570701389804001239063454596709349531418429381925794753180608518199431102079087619618613790541818586814917346596524439301708618469966823773045049828961617628822049394998069089274414060359058098638200181700153441266301631831405083451860975149343822574634794286009358527462801579684185796310670264641091532116738690304174898972841094684121504998258625511657700626619954409113067038015867480168621586838346984816535405842742400873666649741343080271693340519669079211451790500687478700200507994894787528289005078463984459127896409970073591229431767111389361678105416805171044770198381258282546209462785672940252050279115774041675773855887230621336594264510126311578627654109114751750219657861126356447676620253047027703568368506636889119090315544623685368171994728551047344052317584778589905741880758943718317429309233255006995658805939389848300050558889587552826637535158097899915717109534884297953764363892315196304200218770198662584212332250815683136610213917371032135443180256647196945507839291660356141309939482673417428322352753728882997896182900174487466708685325648769471223427514453576269811075226759364809061035085842471131938784569462653249797525487426556539268746900797325453183824178659568548975955520673420872024606714232294039095861672035951509407612704051243205302224155783531193303155511691452174632005832582610771548105985784506129891064447661380778534833638959250942028831970489264616072908793662219148421873009618228418626647787745551848665192210564442471081594950655765669453520522908077437123775533512276781103188279205049685521191653816293923259723104517858978376918127093492091222921723820252011614262627375184550583191762865725882197306553602029243097781688810894633145999172098091881187818129577754989142630650782311301635274879078508517338432837181727681706510728366227380401167271081068969330242424525140935727407105552074297438748781252261922099303190459030228698999573795568389434217508424625603489994766225612162235147719431790156621793207090648273456522692255769113418807483983955703422811429188420280831479638680477812969295076899119278293042419321421064424949982381205428538821992181513533457534817915829487050319844430046512089575170696252327594989517811282109496088531597983816431696121892105779843856855530709696866424434625600107153369971745565116004729983585427274652554159697196836154236597377055983043651753391389688180411407002550850548685236946124028226733693685029626218873792063812037299573766576672695738156605125582297601511623893108329158434579037354435811398256496579594184048925629989342448032908739181720239387621764708638703277492913440800855561964601121260162670963039919322829314727996469382585566202247301135470907928586767953484247485841704467894182339058490435737677626375886760538920976258856847789790090838804558986742517640107584786022097468154344738626771078228176614149332684017005513127894977513650920955842751038246212167421707136500047835596517575178738194700695775741482201363625314354484595370413955302607870596430236191190600656519620546294661733691502513415305259729468154766680635641593338967830201433059486624971109706465383145715209975039730838353143151632077214789158964307608518531663401464647921263069551615476193784276891343520906915302541219876782054451938208841598501371028305166254899873673530057107691409623082704414514602459018601208623899088246675022179303961036000651651560678749870236553548431349845229448292300340397270007029596730072911809684500359373647415696929354456581725839591848758144502407748880342293127532002984460525943350119710354482035143492587903835069260812104160153225615946723956865699929183672438801138414046618320373038617540340912400897336255605096409719416115463224049644045420419410353116057603727027054748982856944337397462440528499607431539208238062100248427309255112883479857265418746039493065067828479549953892138637064926748694685680471641584185559187432317992799258712564616603668068072106312966249335854312227503531638520546426861479913423264839753788291573796729026453807998307011793179092708917071138961024797097904198487641129017879760214011544091498208860634859971696149984256705653318116631955392515803129160106912316442370349539249430837196466252975170793234136478164481942973126433092413833295797192981012921843496793551745530046856414473134742274409307134972899347654806300721748287641446498762759739909980192672748671711310475553137266840769357118465870739142609787283468401201885218291084736573102230665818884385282277462549231131179257939583507366003066278529696213483443588567936249690981497952733611101713650973550490633957621955922227726060672945561225846125096132685469755090215883542205695761814814513778122612865676229981854591590939252163567292270892561041206783174990416941375159133963300310320645359016822956818902579022246347433335621184523563725114030244703822343230058712390395343695870943216395912338592425801095258552505049679141371739325710024568363791345544949797980732359692468034653637957709761801007135031685205454038497319751751903296043015092328729782384094335523406030536451977230818165616889200098733371620364496470289300596095424440436960767983609518506188063990321634840382983139083459259284018478628060952018711360333042139949565845201090140649763534810545993166670760248044136290102934862246550009505541882118375776558126080657542873391552374028431703752087605435892038526656662785571957709609675049447887293327796848846230335709531063732701471568285059212304437665428953951225750197928539218594452274681447301145098957117725771310144007629435027918539683617119603608391930672758156028821163693769279886527980606338885219358774916643290238393249280847230205496846966772298209176522257303869291057222288774665417474967574924899555436565732538405842788017883977304798950757582134005500862283971876423115696125314508557625830415993982591768968062926057170414506627602039442294778778333531418795795284353893425128891063551082538348807534947826030714108782767836548626318949617417817243009358040621475495452514287815987892694084958571452934781878177532754545259986079382522981289528799249113328045019879848979794468207322983977802347647370787992131294240769581477904333999834533689220917977942300082054603341379548687335609670056307983458326152877998264458194359684621725316745933199651616777124805652607774430492536183430838502561828322028622289400266511479254801335363093735727072460961189920499153767211994545653359653176963563635555335747839663155143598225195979377503558245228877792565004141327867122500093435501056178033456270390659737920297849190454014438179258831489466029099998072523133359370645399774552366102418649575031815294918845799386703956310361574014222422895346137191126546803236445829616274379567092874931672431155372014212279353211736873972698355497572217723514122056700307453930244382399208782483286552716703617655566603609987883740556717468889017153779100281929060500907374399808563570871935771143204667858356043512981661644321440904776854421805368130577313172724384585717053623887636774606810356410117000760420506490665300854266485739565826643835368446738343091622410182539616881322308347872218923277028140048293748927734125785586201612312752248437335385030032451480664781155410674611112074982138619008298357347011374580618803061730954355857139181565649105877494749972357287385270257934989785177822134681672850720739584237358121109693917656886326211515189499785413554885902564300277348538783782386846155569534943958128519542972910720462070472368245205240771121563660140993777278577487201220347772957502365693274368381938831581539702337423029825897532670553000091112427792074674278552656937859703162896873420111197840421288230762125366879637561945508981486182344867576728455238696668594500695446406476672969269616893481589678959902328336791993687907927545291710302883379060510944534752880665435604658763891239630831720497697330889274804249708411662491430809376861418643711513321374805628772088725022070778375148437029995499018374069148779679952739220655734383478055390457950917911023626924879810911427006200580707480051451212043506107022161383623281496390651146821086502658923925347391548781729764617018465602607137854270593624005034032894908847295801209327457574922661949638415147618855825408518126323862548588050615693383240977724089466316325002442502391960769579020005231008761013961116644661544027823684378821587415802924426383105199475409545396659610493044343231106577201857957581571637359768156521709761713564126075223310839479698981688866427605448950059695393041465724982847638694516385064312394693719242830379149511595253078714901770455414029509904432744933422690948515060279566868592357040640770351783491096513064829220200076823050757133873463755076625904376901619086953605283772369263261170813352425584798261986629429529223621730392814157099333749724633375201660683922635015074846873902317541678790171333439956851829552734939916477457178902777611229278755022885619911843808294107974506876557108932501766514779080955877043970082730467812576226143370605322045188978334759080060916858711670305617576695961091555083852699520032576573321450378878680130793490721279418250067097564090668601109135676871573550270604545722210824897950740514002709041126419638765018075234875274275063066062094228020620956963477703005789725276894249799158364928450753834323715580745262984070134169944560358588155802993080303693442595875798268827912982179032979609383202295048346161753039154294346899364528102263423706465883851202366143705810398855068776713398425077374877638721955305485573720191394279084712063340428902302454669111031061955269216246145936483050040068914645940598072707248053018812650079884512932634340711890941139666804575622341760378369015711267192997824746778151842267559182527122260174718857785858288444934223963818525672912409311172284611040995720867126667538787265535177187529224307539538836253875325361351453037262548669592119073519334656502100656892329322541113467851059907812000505189260382516899918054528389730347117603453044510850984593490646399462299674253467432415676393067793956109083350563438413869357891140153082604372035836720952104281731168849487614142433755713542966540873017749472217098728336416294282234416128163978001037753602706076011225417740223676421582865105996030180577380140301499217802332266198206974677225367114833547585767452207054873840535471119984023966045344745320198706048808179305244927853814914529109974909577658738597779077887158362189010606773249482046017071671962382861266396968493944545755959863213202815287948791848321056890941895954316788230382388382592906990420399988864020574795159475557004354181207194586427173032124685406902011236148876474494521244606531614102913932622796206842611851509929995560732775625493733921777973193700505596540888054399569274653595283616024969070349822220537199491768567201284369790853567324714729940911763285461637995502050872854935566913806760712663933340825851589342504571162746212803723643872908813410083079857738544701111087577853999903737462549605121003281399856793694693745350658739875156370493586571865809662752796321936671951947438299621418305732882604272959320224899443286597642262919051399288567257480543165365915949653705459141725192152718477642004502243238334939288336612459991981267716071699535922443996236699898740316031951222639460079147748593765375593598391297124378931525732068271552824205965437941673062174365780638696990180687467784923605290260366625305355373138682663412976117821532803596388521192338519571971697356488818351382661952619622858178769873631866793022314883179162030755859167808456146626297820347239559597208633801261327815143150653147505792737063792189808812774823775263414862295941674391410091761366291716502521425077992889013296755926621432594777649277695627001650905569725632705253091948269636159217413886083773113739978148233003497686924069126527267913550164482886070260413522741770442954289865778462625788655251653262890467758238731050795459276772883716386098977215502642774507234471157876971550916508853355113810376486858150378697470993176645251554481775915562439889611532818915599743946873590161227855824983057050409859696530253200734978458407153162613884514589864501280451422353476275856725328925625935587864455467910988188820477597486078702235549553027520735524634467321469734873791645017621164687081899030550346282578363460026472097418673077725696330066527137281743672761133387330600442977467617419507487791902665021761308006327070051446360176369923604126944723848752452946018247431742772101109034604619059618495459786779251603056340416696603872953785088139397469181087967373684705789021874435524880679885673606287809803451413634345364261113152669973887895149421976052713195088775525878958419038779249707492034817503829297920482467132096937940097295750827048789079811319421138025891317520081355957716960839277489978189254366195277611535908634275981371141467530498791670881944419503322096953150722179323506339286348543307936511469345225861676380181566615653237125595887798029454360928436399638254994887859565371042406116686099992575135280518465852941816684722758703022201868918005352706004768876880144778366377175429085355380118849573186066886005661566568135483596325294190998862250766993450665588848760049220863057464634506930190808731321672378151219311725790500391843510947862564639970590654142805858788737029800055805631063956560812132850264879775384769345329718944720607560265166038586857345678345133849095403052433632711579129095211508132670403467846576253009833271729971520982103052457216532925322812987415595284094050962803280689429760303982662525495533764784798020292814662389336580490948200843983394762429106187599218031077992576350010049688759732800126867067370503781990460482219185471231810676961166586633170767876407507790954409434862842917160657457204973662164466646678030184274717551783727813055287091639147834939263266003777226515081727706966217114915330918304492235021114235728650460456365517499411873116058848575166939238696824625449981654553416689147500073755366226720743372974048935506336709653923928831022485192015682205187430018863327446926525313735354236792594920231422448658255620119077137802906704145830222365829576969240045062112774730592767586820590335497168917335602997783079918256047696183458836075708105248450253221398927886239471148851134112972284976046542017493004098549610353622557338793803243708617672765167508602083857063847958012380267333556617749517341721939965688984840919359400577448723536768272717894877313680644129867958635321062936257324017803801971586459453171665376490258045745671923955738493283196853791526633906130239741720872757408507428823186210740105049517952410046295217162719917096958942547554170791029338869824477872725334789657626982507359248720981472311036653280729298926695869528317879835977066324589635425433306284256757539115258687217212338238123144884289284695280969779797248542043504024215288005090333811553638942483402209456473104514667563124082281437306799894593509437656815426653080542230423866063521426571631515958310326905468325423632377533169171078372124726616099979801426158149157106698979584955492534686019085836815668341034482304224530693387020970896243020560784665151576946943115218120806775254710382756345364436761459767995866654452519112387637098321344414376368665156295881879447288707615649427807553304364959227494108073626345464532249908079469988867944572997267592570008267820289749214972767703449411682812498881086048958209744605469187382026320099708761633278239828870217290867296399754852482543544795452692582113766855011656259872893003327273710648082981245111797075892982933323616946450490044585150811055746975066947150520859910864893065236384180265077949946102892082515894360363420805205257470877591292101115013229365819308188177008639431562382486025153650651888200662956671971535885518793215462825508177387317014527826509486283309114787333044139032135175053712060356021999305910667625539830475897949490721167855724808150579533689831736941046947194524805149851724196824938837628255367667046285645261662097611502207623638427727007404173534780702641756077342341556033464289732358798400105434907959988522910654616763876212239027321603401806198989209786430059448621535583633886668654283422843742989065288079570487125675339925135179158194542118934109932017416123156585941214403631917428313935033804292458819095293000484647386606578447590433818204897184114247690157755404354702265923042832584428594784919090282190397250979120284429696395869003807211358454067465985707572899338423988316160556025214362517493755589770969537933100228726921978136767960549913556519718041551383080635526243588262319041969844105622281117576552561687799639786118359236106078623360645261813417553859436116527403762696249682140499625845264636680095302795832538953671556305449193686635914872574962147329767736890603536668444375091793668291419975953014878681744175554082014314236665440707497494528158621883099006531474242416419404474303768658751332959741928877244865832689840017848410159131744119128734019767406675595868846780162206124681781945475521373528849419455460331442962606753453107977723379611948635088689048315937637115271881974661264250103960791006869192155948964904445733866244157066870425822866524502122776341898499171434795299904999932912090813625674199691011039684983777412744148196117704426069871360989332310719343720236251657365281532783222939351040898632226052881667994599924613581915569329924682382857487689896013754208483141729017430196363876954771347994697643018170790140121600799942338697255676219529164146873118722423742737611898746012583565809194098236302400039202522688448001344819128421347303469191440800873077963995442541065427652264585407145690019066752997655305904686730712928178470033506042944297608978191325352251541229687338946564238956080545882236692483583218748956061466595203931131625461148277369380913093527229614447582850573527432024393366192533009144806795910984770973081874129611473995056462465783870642440516437691517466443700315265391373048439483303792240268192937273892724753581324444389811806417499215362139228216945963308866567633209227175834258210973798259273968802571492317395113486549161433721190971734615508408031529302483244857975093482642111287294412606733272940038395871939079531986551233639085287417866373259980426713188881441324474688922241543045852910331337898976965140779427403383399778575737666468454203822058269944789987851023943227335677321587582362175599135959528095131805884803401630239050659070035137358591020103486511833748274037998666101404649300232391222481344283377607308899250490146542939169706171122615047526956841544795004182861339627909680279405659116621791419125416219673645062755162881121407056662712676938250919490013315234167568478090880195171435632542665295809317438024495292375293144914189629794084187019203477111325465682493837539501637340658251635281498858328771423747116393841220701082526888783613720838684596849879646219269115199490800708161097357389686514895324869614187509363354557925902931838224717372768453924116775565187114552676630113141557260219777396836643170309974109333569532999562517449489305339219046632157641636012650534922156606336508958145664525609441589790551004240738799188222222073310950423862802664841393978935644563462266983260702215010541201811256715547574679271874060198440403666530230784114415986293746607786266373712805453988661997688333237089185801012365352267080088146921862314244233876899830940406510359745338844920658515353666282244751600485874710711400686513925679013191933633141177969937513695263004217254127157347706040372312904742506024475162727735571256772626811279221998354067354544888910624128385498812852996904658529980072616009708416756864304284258637599987001713069580162415645715750820769564461830999057389570744727614340361496682040091163354039844242150654508319763603617254768086614967379311340851334436493513207221624207677014882240438755275911559308739557081298349891843679302324375174178334762672244003960746916376556951149351469083700585603718954899150948349877851456602350887057328517120130362139134190760825614995740332393140515246362140896921914508583693116921292353116784801685939523337040943031232695697253575835506066949186355442300564384008316596446765578344913906352135090220959761573225013143847904364913728621324624854176062847505092948066275574607054993874455286720890790628339107014837623788207995415385511724998933724014558097465101151849841446160795506555631420346926097000325407303242109674098188525079085484248858070552766766691495767217382307756228241825085721355717156366359297148055423042000146796027613092406134994957330457974631967580711008834238624131869703873698203938933074529814154766745518724583066851595995912587994774251144931969341137279998571461368183704615772113083292494174140122530835539696705564345552875364381125736803472391453351745939052676692665207901272073722728518284916764851386211343110956129941326108550401897468080398448015963268581352809633768363173769565699585370843343324807317674416559550177741811347360295661366146892024727293153809442865756453441368040562999432416701757625741685916676370034608491014673691542257442633203787714213233874231973579960418833987687738190094932145784002428591429256523687753059146152131509295224924868465503444029718748223166390342088142574622050073263837658185422861341976369130750955592544753589584553933883904991622271542547422845252850225596862024987188616517435231141480858275687711906230110839897332892879106220006605688680767303632960546696116649210829548303139684689039435006539066147167247923994561847073534690988729589807642730349394581386458360671211672369063576660966167929275443317848027400165685609724844901008237039912310719254435848916661773719138426278017387947851053336799099699793031122866653975235174879230822157623807119639283217289645053898802130510959727134750387667050829140596411060903627860239065053044749087828596546938725965065614078306572030809352908317375482259283045705001246781570906611091783148452441412908275810082586001554153842958520576265223323876871388506731481863337947709828220946696371051104508284552304695399338012802733063497105433768382917882833333496170138743169690953023573641490298530865951324878917767925035869242470522424025662367508043277051547962849146008414536398633760661306720004372347419878399107435029360733598845761368418158779484128071550432495101419630711211250698884190681169661994531284710679103969296266366183030263634881060327707780395134425943864827545472101839555093738139587051107352395527624225773615223393078974347225936845558754314392101686067783317591220075239009455440849883206415857550140482022082131635260337815200335533524853104377981991222722938277190454306878432969998391811962769523785706279340671109618916750128489727939883252220422242561762278039822921880936938582443348145771465658720163207113590048486009965820871987517408101186439321428531389103962049557811591967772242655308305490013662135020154214479278642888757681490684378548134996676903636188117883929756922432371251215910780015381596245164007252131663694741213245292102418671769031449346749509680837803694055765833340789887695730938026350611212159303215200647157883944452656867282694457409351039164178145583211441866427610021013965122185539311486014389124953105173926608656090516352021152300753800477771928564905432077223135634055548046049890454836711491074718741631983915806949289993999764537050378319946813048143908610561992347033312843885721005231012965265638618513021921857534304908685683453301740558122677371052901503620918180847973925073389093102821685071516662573175538817373642062215110391310870639693336626363084170244960158747654478955405153712606085983572839353787901023798225044806840826360951564351797449036650348184414488655250540975190213693683477263194087763019105418290627464116742332172240589543724089607677450739499498033286696967093831473679924687710759504000588453237172305807651645803743299227093685118660848732848318777963234441559077491594300925708786276900872090242347077014476428144114073901321286304620705347014390715648230247088392385317097481255713889707278391192343413798355755533484111904376129090799932280171997759332358245512297037687628291985750471414155769432911478028342783227331491181027317876741716739181379550753922360273584425466366139153972748271771385862554188925723231896764592226905681402528304932840124952782780972360234446994259157432605050444723465137801038323079011378251990822164013326394772490561979118136662914391932249253729066330002467904557242057652360572062965664439067768361036679614799354543676917921823828520693234700057235747457138798477498250058068564336097650538301409945384276521139845941103518176648035547696415262518743434591487579530995514669966303136736983844870599606667542380446969166088136241128555831980131169341313277681663436782091934120192934143053663064258913810369077210635725852241491544924347923280542923248583174801471704770070617427879895604568416352437071550007706390282589821457951292905715173348880869321555908993775728655761125299999598068710438677067544076537700542807920042069434889887224157499328099309774455404823693478590786801414780450482851212885116463995191666078258944999091896904609456323561876524769818444818985612450702088571049601894718720454358273967485574203407491628445356048732911570504720525233549304051455279267139368167168640126059756331513949175982099901775172731391230393745305465175821429093450847453376029055235366420497565431621880899822505776039292510802227907419712308671386906005585874679260325811908847294801184148242145380983232178810463559107978459559236793526138008536297062763844219486168367261584684086706637896545280758647930703083167170810308750131564620679012728631822107105264474778117140926042680478231286933959014822112433791923498470693118666151209074478594208544506096572160420718502271560980000721373910864789406889739427634658392026171716441186242719573676817383993295367791090471162911233466178746139522798250949330541837159786057932993933725557498169183809550427314237504281584127019082435649956267104188051623612995041474715423019888782455561815680591238417265632533577776382832035206992227823191488849142186592185823029490564264779873651118516044901383375650466977657079136080805081986203138522080673847672568851431536019636332352990743616156079415377344635317962707328818942541350399323975245832905039094535090180488096449796755646733060988544068564404344907809783928708832995748585380424228884888301462528372704060568693886278082484207030592913565287952031099462426408038301863643555980551461344974826194242970869322167479816286032116086353968618084922716014612300041649273055699254005105563920820276919122616781916907075600554776981205036370535794039462158708033162404943557810989875447493059007960518954279776022830151071484468542406239973475302660101709655327119066615372033184446956608628596054387139941733331060071701790206925626173716915625750933199000507988109020749828352385153683258785022374316831267954633844903685585904229184479883322030319030033536931072465057803198108221027410587609678909466233742614791917383134224033323786139118415649522098562325685618407366578547501766291536630803069289747951991392522085830006456753697126609771265226180484267479151057124625913297995410502323660920274125231249772683244734207316575574353028225189222195685717248709013505638954659875332837936845793329744948287894419318678561288381429399097436616742712443109046345276771316099155170749948071743897276109486604861952969675026332358046105457597496221812825928325879003908699128624436739231014548036329479669241895580441617445949675512549859026365732481939291166739952280129489991272875593981377598303762643264883235635183819719328493949195040618034489539602186167469242517729428678264248097131256240818829444975392943698892532499377711641814059180629140371839985942413186909317911707958413571773471609931099093479041963725890973768950049337392472047174559495343019109713992450356684926003208823995379857936137872069777890322395936049463917225952995595239290345280484182571961370927164061010553052675551047587348009540374653921640504335564117847700601378094546020132516365159463120724234308293124302596109241877191706037787260341444056683839099331419145954892258211281049473198522034740693434388843979354443687565829868671367898336310376461225597301701338489330123682089538805496081647504057330488431867227670121948203855634943903284618143922218734200741159229869011235523430926570899249425565361021613696032962486895777095191303293698649074835163394579399833195950367100701736975795241681421756573016850688723591606403173905103881985993784924153855512075432046942144183569252835633074308891719150699997532398958778148854376423816241833656370918323367948417813565860420832451384893460107175190677549511870202825464218893031900850543742126120232584324197601705895572672667738932409061702806000210347290746730448419536925230853347023898062863235798606588699548720746969807777165497132202511630376078870394704639841688894063482217370043487379463898751731856912767901717937270866754205744682868176907366950414126953794221666835187512473385196793852006147345274661626935358145453975050365107987215233886217009474908812860834632876978507776323012629328938859510556910035820051420052742059041965341655320189256051899843146454367577170334358092019494625340407593186056806047550725128155611938283621093553705554510464572459335326182423238732832101254357755822896025234323064010469123540492826565433176152289124759829489325510433304620849276344496946526208314147091894582556784922802198832090002567259722358334665095571599097573770185521231648492705411626651282542764218684340202940488157388862468238501735517267546930483770423694629531942143362622696472503994143702636547787648011815937665598136939777126869462561279957800077982494475484438737875079652181919385729382406117649736459504176552554892963646832343455304590932690521523758138461221815207823205803161827138286945415403951312817715074941416264396565087024530366828896693493931899634196635618618675345687707547655751842882255588289079355509084257918473052636771041415293697482671250330112127485027795785850599866687267138256467303161570166525532615450624885358920802310499233466288324794733580666417501565791861358146961112235431728394406168629140313044070169171618692361094449694458642107061235321316763508328623748724688091257690196765320474659759062405482443041624505602115914422404968857445401085806796632820670113664778509462237622999256221862522949124804318938137494748968134731189986055810699629738318800674767850837925427547234561255432373937236049450094288731248005877937554623597855326984047757593480880262055109482302784587536403091540220045198159802419649737838945804263114261357338101124888676608622641697546335975190758829827158713115515841490390431438393166184291172593649426104217702849866139080585979138599015912185536125161015592232968926186355244310545465351005068205256778102758918547221210981766977024157958057894978984804604121000068102500207267088168751777341543505560823142084671454682934890507305237913944510117499136931470096015332306553241493942229330397861914099588334137394105489995446459879750287868163534731772059466815388747538996205937826396694176087117502904091110888729078949303281732751568981803512172533668175368878112819482172505953041167768106311753040715423198846295468325781919627162802577788102856084207961094767914361191891696767209436611736018386712866771192414621282599704957558803786633656337659629602985886136142943585587763817389856958087739605667242825467584407360929747761161647231921693779862081064313242486545485764719940736703901518770257920227691751583259359062534195322282117325859920142895681206402118707146672988999509596541540245064741320833631792740728631064459720054833908275563121548044276969015680912841463929581116137323444532457328825965310633689395796176932336761632527417050834036871923088451275976040737106558524773542404200943371831742077402500759978425343337304136787955180928302208761199636434047380920553652794671274102696915447163501388645404886920348027706134367115301761334371569652759705701158801573464039183903303526352447983423551538789139762854405809711848898627716099760440598650006967588119900095566976850399516631035950413300607497481346632513648168701977593360861340980639853704559040558280582166732878719572263255994498842527446266809499816420483491385156970376393340064759746345252596431206360780322932210019473749569530853253138697634048962256228939596671720385604372082470467615950409161222099057009725903335128112047765593285252817489780948799508321324341531479140614031607622449205445412643233195444460818593009353471207705394175204678673368986671881684458420770598496299298643959964164639507344363008487112767667260784950779353044998959281857658450442703720333563851357734888602510023182209557534307358854908739587436198516885383297889069595902682800682996338303853905907956160790520746645866428007641494599734914812753738731256681633906415351402330068360858579173792827679955490402398710987127707780860931149023580777459791477382495638502187349314111190297046661160708886038242440056789640226866049589427144779139012148096328168980084224872423346411557498156517647102677549743990005046018513353317105247952873910698124728309201498802724599311878100869832493445368285347785719966270294316420421771046515927493233302592647617415264889305684933925289546535534266868788115975165925847009041042896208996311443627467447792009142510392199459035543356173439294192088278144373038767211929417229701436818895984014946999890098502957808611593033123832249640272942503088776071526060946320458554831343616548037517134131694635496735345788908722533517027306025144119251359416603927464300087637746466753184054784457251935645754687900991058870557618147997499402062002949764239960007063759575458789153611319932453402258440035646640173621216931029838913947070262373196601017579487169496453724463684464190301378738867635710995872691487032853729011963673318434446679219853950641147310925671257579027553321212718394819762983367750224127983140746384526110406755948033805143146521327329413549270087657925179760485044534911259913387112230732424000132339998355382357432478126992324772311735490012468090572018797690011961042531301817957687909046574374495938346811629300245936890054738895390000456192744941188175747065043983376798511089858798486867497007810950544774225332009170653243016551971656243160152417542369075686292728999111037345095809516489110423102149525138768177650966177208767614035255571099061338911286467399822688853398901087495887051498058715445589360453805167718909512326686771961490037095017734162483629123558164424918818545221884930350836233286399784577964896144739150585759904939413578357730601283753145056466960190938986570401141907676998833617362751865816865629931498312214265804331037573172869204203157625851694073006452570139643628113811613768244252893991401577331427809070914862966630211020466078715810101619554095276817941826063692150731608394589322499921394164453619580639163424882705591351805297038283928529539323387243134111192077735217753832134907338709825168749978918438282734286228518199387701723412833176554137701259232032614255761179287164994190339437695922050741675793242034408495135122342074928131122401849571469263180818263502231049597071713068781821503554484821458912801849984324606594570575685601245031542670510473804371601030892321250800410245696532759361484130861699947627233750314800728985906020105352941910952087938186589779951279696797675122916291289869119128814919077456437809043335956646756113890800704225940888836697807288418473634344707625670773844297113367804238928376608026568930012604151107761951213941993135648298703728048210789732999448781527289280211235580300820076137193281810522448847359457777839617822235694764485150999579250597527027530558084996080422191679982709769152753427162679795705582331103834605703542920076833943847925855875587181652591260355004991161527561776747689175412587865401457308820365325110777890027803342221145549810108128235907425319877849184887272893801878795929334885384033980185432134973239425712814268475686025171465059253168989685817246305013896015195359853090611689731646667793083142777218534669659350443858400669239827876850103581978846127941202672258126388686300760959753082426767573930592002777592038777429366501365301607782190486628577588397375855184736845316146293665525689142196507899132585161610353341871375484306220416342388400183534848135983001769433468383378137884300602708995825925199272553623451640611864044837426285299894719018593868125073099537401423981174719529791618712545301133952482911116581327870928904531208014669759257433656267374227200595231297401033251838726447291668218880293659589200310369568732688608555901236835362107369993376169378234585675489229361284411194474567964613075643201124605010380183480399945522315772563978998415063436574471211024997516043491340686491969637472432061161201437797944523206899445083919568592098076866871555642246964299006135448606538387236972570798475738797290194462164339191191243381894417070007419565023286356576440168352408449639325064768566438747613189198677720906530774237845475987946591192121344632539744738042166550737403215700941620850339403782822997608038619875102964397120211508971744292520970469531485356918815987973746316660160461108397017510112364559158527894735733904055659689527798045578295676371398165323962035524866260388605488539644629784760558658979640050122464208144269579270183603529130465537330200388567071225527672372232664597230064131036809192883114799578684684889059349477240272749834104262850813938412952641342361885249414745892059603716746864397878976556277322895681551880177286771940301008660691734444463690986462439757226450998653628766921297332537160258786371523644536778123345009337837707997817199375577655659050223852294847115279231065213597598802144564792089179211419968351022124311630594860048136048388190004555041670592762165749520449783968966053376075927012639418921656211929046923649233432957534956931120455082848487145855654856681372859009526482187651746271433236572837751447695038468858039003925450618169906858723481738737656938227301579199312090359907982030059459135538463766447334079237872992892812360304663868110343899624771485347413268875008008221599299506336236109565055529091701886061412874354855313554822736111691880630510415297192847753884918459710000708995354817374952599268287340306541434682168245986147546938133749351267090169975692303889607653064488603942012538471255346544674000548467313505422559537748384855579480104293105862464618794437843241638946779611028849493020702118996390775968489143126341551634705546104300508559222513619209181075072681049461278338248600733181142300286705010558289891045365226256504771027885390023773435260539521841875578845459591966808593443458826324806239366311925597257068168008951690271766567265392805688425707712747463187247420932069493804383084453255139153991579551108252379876068345664475043576675136023906505006589574934553644637419229955492837538520583144723919324606715747844139569027745264836651707366279809570770929108758858365227270484167802154508404851998380958466387941259946091995379096748612189766787612104825397999513662085426753023950917906205738074632864451442994119892394780143616206288253471972698252739822851067042490742790609243183467817289706417648388092443588813575587187877682338362817610883985080339407865961975130236217253363931517530161376477778033940843646795967418465490544114890793656286007097993779725028984253599798482331597264171317237770210237084075782087484431099084874214064588044091416029665942698240857716771346622453447598721428411584084365026980783038927138897496570700225779674675454127664040296408368011928290144371840609700597654037864823311892899655595140105352194963935268987683577455967854978690649271179266033515436234197578794941439673793253667336821794475736230079493693825614631975693560493236377368866143570498194678476614237386619733942377249121404719253736979295725169904362538878534858360923175320194234887690810396188563885225789150607775573309798487138088354461222114130635719906943624803299504350309160521644675670143859785302136026725834988483303434714084500858750832351501017755113768069954496170441710084715312299841088425724358059075546589417461162581554002742570971728736575586699362865579442683820046142467285154988167707693317549764255319483396394867699053454053414222981122429455378604999260440794196660120105523308599444491098503052762632410314860118239165080026607925349654376839822216345887846714991197463518855686885595101714616131793793912360068773001857419838051607650249153214894612568011568891292516525026682760188720046750995129806479913097675210493157367364192699052573032440564557918676565477437053076448867834102749725185491007380446473353657478570057233104150250466550271716796018583730871079552012702892443842776866644127332170063182643909035745208998089304077219751039832520668549561958410887521109162296897536392107633511901446900607032103688142735995362367763841471849261491674481646948667672304558848707086133835300911758958830983362000792808432401912690111476043395309134639153324948477233218864068652118651263363429555214354468601741042940871927533598896198713371179509198461798654921350509565265281628411343004800933141255909892586842863909124497963100167431960716225586390752170406966523458442758025371395785422552195018125401459586181410894957476994256717087312155460826691040501224764454371406463305529352621247355022875597832446040057819649291986204503961513821079754190535331161206014291619852314679813157661585147870197981790239153810273202208814126196328112619792739637980550309105789663671043917192091825916141864589729779912354867133326421234784126606886880294039679467242091855672361601436295712785543392266626418343608933886028901828272911882999890176554313368872090843915827621710152376592040583867027917123467059721891318252734663678215685045783813502789278274617303697754238531382145915777669448606948904599404536673478694523258620397276189475097994025703270977910858838163455576289260661166395441913168054017070739001233811059101936126163369507437040891597743038916930866289797809447496104788853024179324480677340919982177051568522612314061246877390080801820280373500522971859079958494075704677231676444275304390248620929158542434634909759971270131645521452067449878016330150679533647688470777286586733694223448248034497101216351745619817859723801614200331405969242897848819976492446563321480969717307826279850622318115790327356753032739054597008070781157716154284172020805853419811786552259066145961690749118907274566336578314902437766151864257394811420113200243719258958117347609282392125581281820413552238341804732230008565608105557942099550363419877578980777500839187923911066986899532153704040055831153717465747187262334675679179363764787599978788677444718651727588135691007200166442251193555077303786883454421174584834782896318074517402130171527408673738486903938097733140243899935667257026898302699886507343045256889522996344380878317718388107561857783521311978437529009097490488213733497327643830973652032006072001289936337075211408257302368703404272953137929969414277736252834718025084883244649737926300963590350049862478836678997916605328078259409310732643539662954163918678497678226073273020677789385145653860735007219285862875798768470009227277864625850245064032935613873278280023272958227115028922494150575445816519572390234605907683644143661066369474367210494862137139891793358009470278035815710328359223223450724056949573565135356838215135171664681398329555947439302916140973557361941312406552789594269231852470580156652784762687979057868246633936298027727081851244853821144731347064092299907309700130568372373809845234915670457426532971644448965396487280599475827118647839354559384613965901567793742685598938017919711085771040881285846692834607548045078503259434894883446952372554043636075892513359582091146712615545092113898466765327979770057747004261785085262708776142358755398484091665409573123620952414729166918605012905398482416262832860076826224300760357559128805571090621633114733999400139366547078935107888767775361122483586605834228651510380537876688263426694880821359473503961979607655747407774435592467347644673947160838612544345965693804205589283768549016963209535496859132040764833680260767064337986069887609413117239126554443987787179149294626483028126999922202672421327344835384718832119812599029363916783626792812108005976308695044133545145355131024232979138630843347435714497337260286388448501828709461243868477802092826857037139834140246284963535401916427496386151570927002226355556121953604004743099935798151787598966498795172799012222775991045219173497354374067545055348819077313447428561521265125239551931661337375841912980088552848247594875322640587758809409189976872929571841600679285573840400138399784921140440736938505931722965413739125725283647933704975271027586542336216725506421297251376520258987098229930741805809877386262999677713144044234119418108350033592541568464856065870466160054657477551865166927193237631717931403806961093981353968941921708348553514537361449063705634732654409660956487373607894666448258897943449755301053814519672153805090432131869877561912632183498883000424859135141521854853643172896402716080950185487523431281008994522242073807554145364384473479253061960918941478527711707724335522631718130893474242134799074919519747511857637293308753504429557986591679238378783329708223682463170072306226251554027678663471827886254100492007664077738475632381197351258500082744897397832061949332985355644305402964904334258587728123688891950822489927771713497152424574971846964276437641490648309183056817732676530883985282285205442819908870562066405254671539482736390540518027606572822124976117183779683215706559117387957496614089733939226461022482652129771306037615424967259839564366280711599921014212954873327949230693181918295088550692656360850848661954361288384156274660605272353085045601260195466060721130791409353124725494069424910076495285424154813648505023293108766420340502029970554385570405347382427945733785149504131138134618984411327074306553055939153520886497377664010318671031389196483465039940031028629131062224986128155445252611929183236963816395126227023379413580636328102793684626047172187325943252054972659363235464693739580406807694614987039221532242045831422767419963653822843600819191625690916652417925967662605108763794717922982898072251909932694136762243333743407975391953680360669202213164268546593312133176862040959595791540820068404316004805602325521486937293299778760974756814790285097796721276343713715073709271981839541125701577265915309542214142383443231160599222892273631412331692072977369907325644474753226178697310257531213050434816547135840101508342086188466349324939828460437494498427148296985908582036635924201164148485122498089973915699542807063483565816467371686295221508762337362430493084527921767655888940357478697669756097827114476500380340945177835348663767567506376987818870193243669783385213566638364232191607991857043845969321990038641984618405463101830658915197277646570464143486652762163138827016937674740840843702796399313774086581323694374298542576463366397872023989894295926139389828157387497648720524767494551306068549577721582945891568199724790156892447889131181115879983301010581882974260695906360998002310175262706965185161278843758370952096679385916235799604662319928659241365466913516462174291076048033984962975383467084722269156553915900877330191611401763942115765774335061853949298752306209120645663778798934854294279022865368004769656518259062963380216478837897108688602492061683396217068013341851762492355301488696122962744379614771190088901279584444174710575398506821399403326791308707270631779003363151616693552616587269930252764003471708405188732350992078030704327692606345023914956630042290627155479317526682850387307478117661620546291376674342891348130039558377402567456500868532408572080974774786713032481361255812649590876798939986091333861667644356636541968545076009920399727603673367209432597100410986316574570009049292333538419005784870384281360065454645493219696377256804280035677273320211801523353971865889627468942882433837948742367412275882387646582470111063659636936446206545907197072320616961945055193884086329583563253404437139606834018687165180643227615842938062724121559662879127845722790482200812880796579433304515988232518467190721921635194070760042855561285023682137017961406086303697902867561560091027144136893939685728054183619443901493214470510447399048958790567797698480088015899461018807217603075459764061779835779166724960722132485180545894509054381906775404420928213552902508459494501398849062075595536604684298897959045835891903725235804573771587292371771319531836349382462454606256111213962657753151742957562702052142671255632081904188658762683630544868673713815158637534076119567302445313071924552157306538715055119173417682138565906018408656126862316023922298953817022428265899048622930925894756266505616773229688487288922442529292742895397445310036008584421015203589513671606618989234355179135916610461197730319375953617361773635840883015740059452443604099729225222712504887344265859563420919867766459519033117963149610678559672386988659296323423359928268889760492210979557709148692679228379224446376422397088507065700147362338336595868158895368547121396525501241461959155288759677158300243665269379546972183046093967146111666599848652552579230943404005015665034756381104929616260136962571056168175212233368176350442243758554771190173608511604118406086319800299740945427797471287495810539752849293426279674709701262105804186340490571296864089691097494576022099964020611102240009679162374286651809004195451606220672929704802142127840641216219486596088232057105719074740529285099388516926754826748097486911854735367678882429846051637526009496463477285092210368324188796696179153538622702697458525808869443247350139314833086700263398723012310212078952088842170800218040587725135339853743472108843331116196946499652757853497827074977928605199935706421392299526233677906509099545733861190784078526094437489547341448551415959140792809853142801084252527737586816660821034957296071875564705217616098826681004127630237776535691403902107111444523958566213746497211004054791637593704783174017896949564063910172866234611019744924491661233355694373563641069769685258866352315753214818469008434053791469857810634819359942298626400319128744974548776562315624735720877954574283465655831548519939322161365886127288853318575770799147395905624838961351184445104965558262274731758297578496001015514460076191913162030764412389700491632896116346071732908888776887032564461169760111099239696522536813388113884977972358446017034515113827083235686455959126412954475255273935290827799463973778109490363238936645687447954462429243368870917013627115288233094198353630550571090150948572087176444025159570492689955129199262780557192303355174030801397973218864098070652563405928417635068267635356177904333083589588244491498791296315215729869695567201122763660126629767629304908486701088705580725176425361984507923973396027323761634214087236608139417656425448903314095123308194494752109310030974249233786270655248998538684779573384738117304619199364514326073704060214705935145250336067295754069766392360104754951979620702742463634848783693264900639759874674674319920102610175443783159773839146687169531891814160573274848986764412096469361551007013160563195509399776428131246907661950912571492040827033125183628393973586954390329049726768755106157074157500410930539832785788820369477083124772904042456775036178968719490384608903767997606780692072452907504564037286780534986320319046022905722800812571292391524242174743605096158580064412077083161513827568114972286687232569817194014631121467602920456830108795510251899105400827899588505573031496876661427649312576747874863739683508772114384065741593500653803403251611123316901761891542965434258683126003996063161427468180229419707769936486070239724107819925484681401901146180797087095907406683942239459718813768791915208803965417215276764859917930207298521651546568543988223924355538085601351597339203866714773684796085134579386079823573349400280002554650751687714410650636754147705882578393337607243841895830005397511131012602106707894380594744486207246959174615974846793583159278953561832856892909837966039950310647530311194944329472348512787880933501413171417119907650158774330122022361653876004087900142225318537633801284779113148650751522587493334973911726250599145070203858492576214152038812539213067147139850499815373481279754686310598760529558866972938596023052420784747264900355157169540517337588523638896889642916371319655886232200626706312581923301421853215702290414559297330428951131381141219909555921338688702626627851623215589028153941941829425274278872155096391241889133500374465416887664627970460190798121465389827972379859317309248591763025238100736051495091342516484736577893492442906049484010261502244853779296940749806961611665764417044374842738041110642727512962098622512746653322260489607440782295709494621206399275758174748780191706035123796730786785106809421443861018798815419303914963917780519166088748851093451278630981063734626519093614263157417635538350929500594233338306989197493721304311267615508742887025541548585806207228853850043436174424280424242455853344296484211904831773134551737477099666563731256892276126234352083514007221391035314330681499908810781054601935779124042418192977319498348603383435890162551872112907784905395396844155887126704235601730395832270491193109852854963178667465463919268886619934200072511994248771168822148942695509785087437138639789601511774618405360290474884442140769987005620416870636980309632181698622817306902682317116122978102183387104042565889090983865230038457506111361804514243290859218604526766310018653082811254296987683593369167686318553414040106949313696508647231273238007540646239071137896025603617189648503610180040570499682437187942676346628072511610541678124755010824428436880460412019956777799992702320088979201267152695280733130569189136681078853209315157475722319788569313690837362506469027482880263337673436725321501101702594155179392058971718087329541424435840222671688428169151632268197269160159967380443070607357375266530603608733991341169135968771208685215821851697410944767190680125796661622618643277936047682031414289763249409947574368838211681389078945847004902155531558527082450493321185840073632918793114689679703250193623351120528411194418202367420045704664743547009682442008669085192944217581227272081932106067287734172122680119626608314648808524260381127912811785346971921262331347246611465597336067401259942400761113755768669729755766711155788886672998136351911728759282418566229407537558178144221147732166865652630313986313550337301958736462411681095567920261178331758105228642811812805725327968373127234160975005803738624304654464204631364003981841580781249804549734303586456420584535484137979436416125468144407834495194615335775334315701463870253510098596393066970882909606533220225424243763355460275557524859586360815638825339460701914198556236286612178891225951004502087960781420430583413432057074673029045994265214538689442640198720615371386813632041826582353626962744225497223068789033033652157702707516830290420402521015913680157869794050942932613628858145171935168238348546808635258063232606392643431530195519083952969411635173708289959104390613510527339201116301041233185801376645842719538393341726310037577249997905805391799073455181772500402350964136214692111969192615982842977086648155287994568025159051568102276526070087427581368956355603261184228010194282601402933153113107418332038734331368236341936774117159471825493459063728759498287444754967710019678331110266193890513932897664340848087417554846482315935451188734802104973162903966704478844193232513933243372075923493305060070467885560447273664438961950011777499863467380356840802856607279652829897110670094695167288814067883724993295859444047338443112952589683442970249140365126067457321202889378159918949508351452434021265780738433868128028422263997830176363494637055805736004581742802035971087428292380245089447847995528684454199221269357470659669839299373116733193109404193804774638828124373085153824010307513893228118426117541462847848290102556401770140315374485528062263665052414232553539255900895210770271917337815441849371978226615921081008344106342249632844522326970096169826351349958461779874220206680872490055804936802373756122327374823255054505372238615419987387121011416569803681233284890757269969161725406375446616207659793613111731458017385784447530179543553409144246711375064918197941132155551766464682099207784457433777704686049392408524114597405206317970766122228512273209589347410700879056664459276072730819661284628603125854660305643775951698527672446838716728874160304492895391284039416896854900034905635237150294946001629727295455182522966025995583803738256397253184973430539591539867532196513919343999459771793795574782174787389329209218700237626819932556620622975963776375583081887265943202149965671929140946912847718423970060740787609594352281282297141051000065955336085080164843726721567844073460363035184558192941202972553773791053004502798578963722458488265068425171815307505553837901596398343632273573803175695820381426079385705592727726768333336479123515253133161430183434899389573391398539878620582732174336941058621798372055009115024965400937206487109753732685641799145162817131987670132063738102378946838109632137708613348135753290843068280799399526581332156515723572186138060848737801455378067226215645337461657231770785315042316155751047139398443450305190800284681835637478282944123054805123082153249195492937901651793690165453781282041270202500392253115584933019103313544045087494562764447168590278791874751505003487249973452222193711750315414348728023104116597004914640601186176094252378200561759099973923036176346319451707165729238326769066904012740414149231605968417424836392238008698578840032106493627998496019406714723290484113499867379403929030586049493752206948420409858994804682662647109515958566077389733827589536500114655265054343663844539716795455533751340533970268983857530032169749006199785216172558656224289957499564271770252199908672435101549333206026917065003946574668122515916308681057420721522966892151881319066416407198142390033939043745349734086472948224484171111689681090562375320194184457466058996034595628216028916291638449583425097747762858262280819780839277556981894555141334444092327661340671281045645965332181682024578981296836689926501996974951044217803804139457205999827422062261932562343837070700280528234278498670724334294637001168391729982624448545459420850240402832587813134400179780312920938375566280395614145569159437151835143118393982035082862202847447324482532591655829741287180328139507303613741242547026337623758846877205745871260536374678146386950275956627386207890210846697269454564713269936569884570688431391305240081965186980836873208822531805101717815230251465617800820782461313658067054478644592837074345955977023676394240739336092453072454830778416994431134942133135681964702217348239771274448347253500815858398852699810152876187973591772236456815978582812877302135536120134429893863924898212871879426251476494961396261162348786768329481436195136771198848169260777775368449032300759928763772031986281581185068623372331058032987793318654145305582088306016723685264344472268228461690133290402554595846922797662680665045131443197504279699873511879359890047126612547045906433124154754807113442257055663132063295198443644938135296431161081632425243586101716420312758998925950300621305665640120414119415727129438568999915451647353524080334121198985683775209497414249582261104522689558619345892572011165939526202521392093940578486040655808032775634472449967520366085550680862583884844598828806249332782217377497214522936993739926065087366039165515899878491055153505411335122492151628524843591469971973118648058691601547489796472578408118716935757248673769140465906189387714810885227868848020165187615547309604318509288718779461234621434523403894060257748336352740308398748996012471637614218656593102167658897597636013376316823359863858696027883285836405282417903036294046970208407432437201937606830411627341399666909537815271249717068002648694017054632469924861233862335549376490410150053899351703601466971466594481112590043164422326435099959982028887468959600919524080990170735460749690917213686946323121237809869838582976252453390231906738979528922015561202149177789899973240865871468169918553687438016993144478318547913851991518867792759831217051330407868837565042960353272890747276865119231248966979422225959771509808016095905933760540903837442689510608487772276415014755755982026072978564059020201350548585800691371543048266872085047605983346835577424915863159392404690459853988125349441003291241911077919474237444270924558355188521755078115001075390815473308980885998940758483978512137792178409932678147260919951175829020534480179192720554919811511571892276486082403510307845160807290863054260863505269097321317747479737193118826484285462284231691317525078553844006002279568571746768681096456144664513682686405803312235302606129357760752535909438947397697065220308532304712088679145865105272417713775055277248303387791802859556600374025661510235223491794746110884591233622507686391747896095148052718651580334978017704324235828215189988686682356262500625007416074763320422824229924204285032434880237235776514175277229596557053990382284939656696416021644643211878386345139583166232056371899435408054084802699807350018226603693563183590320837495906645398079024293465193765797475690976054553588680773685173718648233981371779405005453589069441162127722027810565164163456177498412792684879842367904685254397702474310469399113227298195679914008129586712212537372100575115047194052913253971035986693603026131823943752363309224731020635782786245017085718989444884921982496697947711323560626827748831007299434992179512488045436774427297752498517729749732118278697159695668414471175655733021833842081401565607175440283107496205417503997854178340930371340588099324776098924745124192320491482923718664101248198937200866539409282322993324153069784022627831756844208224339499505279465851763311865311043087913305095544182391943425868906334140942724533747261574784145150897107182789508620453384432244010292804485919622397756678986915607963247581138385482371104309271244820976550383819068565341359376697516289417823665444648309171209038661927721202531757613434540690842325274977556954526772538196465109590941755309416341339568668376114005887400943918507824337423425957471407969364948032109965332877965737598342505279063804962215351509264042521433310808679228913374570970365633962803630741574354960728006546252193507950388692014561723601035366694447037910772642319233782053754428167093957851791475638656753868852701982261885497142818734988303073382700669820655684479178624118855203153006759681386068458493005724046295198432430184893381703843577580165454090604852601711988410992393426514433418236562132321776026436523902717376313160052930223243859389953959316189349134185043710631327387085514699534188829387052513129737179281727646921192660759043151625185116476409810129544030870129380650434623405915265184221696041930873201519045408846070122716358774255215084928593371764290560962067118750578271524614053248833894935014562048079986023193620699537631422893991299549898854153824846475168330439703698163238807716098397296200394796074718741728124316504296057189671834324572355157526152294298826182943264681323224485590269629096998449378185505662320020948372548336206787403235915307012954809887829086405103805598505277115596302153928141108089218177413830071638363077312560464251338350803590145082317667517025444524936760565457106419310440334258132011932712212056596008077585392126729526538027226889621873989845583277562539066273424123662523794258672231129928680352470583936026116120355409835053013113137686211717958439476031119750822816915195237496882592557385596522423361796990427823455412341872248163580459058606587775586782925306467403117040373656948961925494725532950191485905205653466280031105406562748847503100438340585888697982139428385383176624748397472315370731501623083870821258755965461792249427632659329885461878465574709139017111549571696757765314087575276367042092020633969074757633220471044047461960541645103174626126405264698149611748435699458086201862517560884564711514314265242464778361561914154851387970671169037408287517717021616728060954685892149155884814889020532003354525066955008684112881265030660834919642294863601790044721510964497647580169641146889995609750618706154188382621693968275205776926740577220909511339969315563903976118299080238869058549705642909007725730249467488580604457470863917514168594989870035436382857530721582341390596847396303635430820382408385999885709570744978072411490968650257403688382329898643502661092590802197551236307015504903513506719871117669322429927865132087556242383141054454434898601222493904507548414660505836759189318071098121818770406423089071369742357430895882551382671447284826243615615334318043658399953842585898669120549974903881756292536250461897322770023802225563920309704764721263430667706522651777226234904789152261531707508337665935470375443797143537351152581582847431080304210472194203006172220034202075166630588658263296857677672391463729430181862516510077774691239042527114738645264812714470773057360185729703784840110286521283446094394645735632972237604284704074271415424642670017738451185165468608803506895706186859680354805905272129444036516427947817119143153158166198263844339256214981341827521204631210812963833755558182678090868380940904480266543492433615435659224664481965530161058650672618493667220983371525573713481374572015042842566386874117960586323147753796703085920299128757807178241474832505800976630064603001109092137951608392364055832940802142994383097790633763972424973862951831156202785450648106827972893864876622694145900879817652563863183457530590056326448692376740312479735356336149480562224248845339778697596279656454699110296045444995594253789398069722284123048467147719596972806114944626059572823388718767056338980186195536333433660501657864011248652898537438222874987824674517636686871986480760986148478029955084150776522360520232835818140858919069892821748442686561638954000526162077413586431100513255005938584045348785661650925515078802931751924352556374599809061022357337341551405391308529258535321597504708847484234937371661633777647225926565810724903900577911477662918133346685336659441351547273693351631478491590190272679752489587987156762518564327179929419856969849654035618839942782647950840491763504313652826747243058819327986067792203502222614564635875235850708107610022332699497020152462480123970060143510810776043508444695597028802708796270672392196781767624497533831199549009727360284000472360527969939480783938966601421986528233783008201253634393350082303067388554582339857596790988642868098712704031497906182213403283646478586278946294209136201016518607978543603835969316509432289327090039950674729500708403966224932367545464281588911207247364318087346024089805849450961600768570253949018841407831240806156257526337351895077997919475888411261480993170627149629262336282508647613921848178725210854691660726357075075149312580434907195596883832533734858633541556749978460589025032415646938708663869773073818676028609934956463401377392494825742735962576059799624035828493871336557823889866906406492144260993076246912486890737795949353532867311219665541254167055159590414965648375666203081943518360482643776964041911409154208205576465931761752264918817310743432633058856134139716123069198639670040560747777549938541630781790959424151171236199682043673322426130580646013779682933383404856703040441849920118958653965616906947506875176187679959942461724244539742792855456098441813796212588988988104503836194746201066503667915306428858242995132776040474933695201067683165264249315536063920138495908158386391322438346551777049317740865103307390116197051757897827015440010234939990377461074300192031930184051534148313568992350492914568743306636349073963356591470492985023138519422251480093608540533842286312449210127644360556492019465602425617360627613594426464473243777719455446989848188246978130086443402426737486493896383215889873659092901764917007457863241415496286851900680294438557118647234922771266852090231614727872701129180157706018500914336418021535919119231244934152565528579770505969550043845335277166551681463560106150423258093276446931270139510009431555390365414690916439845357976137709157751136068181069830229325988406603910782193894614388855933276858905881902356825238181134588119194271224707340681699997578471830558254775013116618979604136307187847843118973902409446126684898778536802223432836198205093885767256969066760896775176705270196837638476290186447992128215559810900597375109169936559534816627442151213331760598108076712899541044986191208836506515152917485170826505108459005416152608519453935966424706779174628137293628988679249005992922161092645347052848574621879883316068882359266412142566477463091125184408785626934700810901569632656214475035672578900659392455892863491026364452125065433507778863435197670899237662596145402460186050288608664209865933623478819829760553767973320152274944903532235990115635529355437383980115617606860794561357070499343671419892940233866972827606303717735170359336553980506400181479375285333217195571934648206517823961948525271647127713364914742395049631407554228914214817209137015052749356438087149666231042485317317896144007442676140576845865083720835979873603250586200015509202702626536367105095875828038368027606854720381959671519612011093575110590187924201676531454831849970831252154028620224193601384727089966569775371383582786471022952767725364328519788597783515726325823991785549028165701168711756705464042599187505225070314324030448823275101386639618178372566306184903218357619078315930150822748174601536886156313553756261067075284422520451161377112020844820348022051928712355291308868619081302511533718507813820886577480475778729733693457382317614943287469886888468194819231829344173229459561916208798120572731329638257124543332423078424941381292149129716454809241826279657817195792773110956890199067479659439662263048570650716526593484878048994915200167133414521204622237832235935903964925970887146036236064337360192429194083085397197227273408897966936436720380603999045231074196328427494717602467894716958210100684891091767930619522005999622248326680985308522380892242312052231588371067934494254980919125930161938852904267578983847533570891711330523517090385518955332713866353891418588348420664916436074646915802166570488144872149528707118750329638241432640384162675832402682397473293874794644583029304506747620353975926779822617354307950677800066763588694927965787305357263134933857291024064384582138971159650667303655778573435199111370884889592030519103637823222981352516257086101595229521314989860633032954025401625755506120968135849154361551483315203621529950023868435011781592559936585218469313400634940500051465539635888126773054498430086080586672410110125650213904180482398127522605638578013845710504906044635947377860653551889493930684021922587276026813186059483953524425761008606219811639037170337455052293867520062429441519234060278554686842450243481479342493189806440215255765329907060030300612982276855258834450029074114625745320347181873686620764293818242210378070452420106373541741334567442085437396798900500653823944285903838927038738333443396115356421791898191063921415985646402827124136367430652840307825605669248067350722926666820869142519185854146181209053254668185635188851724042815461286690709938735708958322288955277558615105589401373707892631699166230648423033642114658155262902238023699825114041174258690218565565747580274286500402531989058614256405031156131646162880020274837512835395884871449788950710240064045239561296942444510871710886022282067491717735000936049089319210826015511108556813613610845447860962831659938643604320334285136184733957319988769141397439310068890162350760534937621727163305385595750863777684939995721827867436834343121505166872030949561759678045828371883336032969878128940395644773447927473410204769321177996042056594551936897305844617979802242475490794513224397278336294069335716029408318528787649236676140276968053274828733587776405417826624560118180335341657976350781379518717004427686574723087028920230171109735900377206542025322632639352877680784528947485826730343297805119205744536110856584952334418778295610555865396669647945375712055447193224800880513457733966954753208475430673985614722285810246620853172111578432166451516481741463788081915662910675659223121789976284263550317795800427213104252885743192789709335047365730988535730313373503525073167046270293131950268619756104107337942149671654493304273096533537776424273481044771931673355898648669718775127938875701651598623340746708415677965216095415705144133271506950968766624531566622888636373999920884937716799400506307742623892273951804413684245593022531104901272265593098596277274805340459673818619182849055772029047820990734832725142375955664714500490387044390089957729752200927494416063600028079768707369714466803861969679101635946996619544561594304381243047547186965006516239868139596498036595885638505849763066937195098229585046408283103351948944689338844012919020767990318830561864814184454824000972296073264984131594947409789415892173189751042685946733683682880367427106998839374058681875563335557833246470928519843642108328374571789641635638718099816210847358147455544823333352223469133575310914484221402599734996527627502723889862954902455883921347066699467451754887522439486677641038418566126026711720768468939090482132407895853516201540304194299939131853577055300315425861868622798159599245979701166564455385965450311800898799137848411545251971156430157644214441935206781062899653057802535122145911648589950376482886284281469423937183515515902399417594870007686520448638012599936584736388697776841246053565675178680498134456033683573085415904922085306842589458356182524543607870504304191985331332351386994053216991577264568970650609883022674331540170446784743844562116756706424182948600908347778752010736455646839366197183673913005219991693855164722379218855902885531684415714591608173034745649906286421030187820171582221253872138872824300741894098474519066319227190052804983935215057516782352065030867913006392922644376107524960057279411858017589187200306877374483948783729861214658540506188319797118442162679470519007757460275834176779498812941600728375925539532896313746638574114478878363268778844467345219320981837264929824248011874181668887276008065095545316180990892487084714253315189229435345977433738374198382973357382872492631454934028595540975365798813158163317249803194893693157553368542175826545527435367397527737931238398304189735804308325548374449903272943690949306913760916566621781855565751229066982281283003153234856029596169016478020406486350882362052140329572343843009472483898444934854429679759068587819752094333906235141165431697281510304745400400812478224429281509426620969677008191148226679778737197200180682844885708574114162847598483100415743914243382297144355067514140274683738339446915793081909603657614888305992669888089248358950352105243103623111113783739487881114021434322271636894420843650561793646472669006919868990735940862868205825792333121219725243636432623590395437788573788655625158294189990141912914104314735301492118280862356569505786614677381931544416257882327247325509324951801532767458307718802365040228067384353719980495135940974277008745239109204258040468124706223031665553215968644067357435529183568613529698719229293788179659468450044246653384928067037604500145961570506368780789943131438084074991227270928121561509940794394939108136694525358355328453262064213982788416229039644287498214193923944472116355685872842992780607056760191124698052627749490963981676259466158813942913906146456102990766276705195625313692199920454485676262670216152244632955175460769899593036542462876555030321004602689561292662310204961739609040626487447496872470546203830646240590565523358855706398612292402305963304341456228174363955730360255140287725687405549273330938639268373879430801638927705785575875013659023887915831277852174484681582331906516414070844811616345653318071580416028707562801886463594208972629730534774188365029949509084790916258949940249967119476437966403101901688621185330190257817251379943664301547666265827280942510774473824271754746520859030299949268929546205411605700038659978979894225541218796406201052267795055836763383847891892666342682649760360896412276455611841580892119575470172022390741053151454935882505637606483032546375600785281606803297850034081587808165097935895700614713455170240734319953340286809453955894978629330361610166159529662088985687267491003312200908185884050356166162445706639989565617264477975423401029446814388943830891646482378648683858719461263790525914907369732029940334111628232918752317500028649026609938021712836578579719463613438868015616343586850697736408748099951202381660723388543733816958294023004733215681972367356039170054488792826490098484081495980116782357544142774494821512361137250422653513734322339297743917361500749161066947807412713925963597469207910866459762804991309064133630133960794491369548108655183009288706399405099820922378980257600437899403090453432158802550499475698896649962051019827467321899068853764072405729239092690533074259136368776605572947510610246632544306008032934786995990941921459897143416489507571810000870125756261319337199848772438168712233465158370888724942775544624733654008853314636891395956817455529463237023483728147988732924924637894982659714144025277648908550973424848780012598175334743702752144369762466749714078696468162763574056389237700334531577053998284785009600733288830358702174448419932075328494471177246817587599483724012930616645331395774479203810705169383872605414656176910007712231496106779481874764708845455730851428306785151618743123680962534025326126236470683790845369891650049276928690465366950884658178955165515591890981904335875617423649750124742473342893132581252863038320781020866526259225420618486749408537712176587070952455522394577140966129617162162634420733512026756174478180791309842630808199653655443044460095734465380749257047190448866776626795990979555264520109810653233465078321206618603612465160716880341364198439270046083699982320624426337468443963544823628958594568751926321971831702441633517011937608895862393290412041461158197644486492000188983763622806350208382705050547263013681515120622448429762534756262167546322664242601640586540309624578608898893363759845282884170435534138113309580237536884184670220928355928751025786175174087500077648379173639756199788313428989452720649927864961622175497195517917636677943884361885102512694829224749534954411099754742266028893648018022491367318180339367210893919975580151215056573632129324513826448088186582598868810239274089138402432324362709122743635741794552738500942014958677993630793023146644583119026108852453390802907878836943588315832994548136466251696349405656913424302906335706800953082036900209160952179367824139187232610759285985736786725367454453258230601602315257149278836357122469396510052123946571947084526576344793824292573590164680090526788989417035109929233277772968253099111811853883587092745192873155230614916222294263450534803142441882410420407255514999597245625373043878112740934274236798346462296878774918691040289510665683381801914231399199189297795840164386468718592224210502689282725605988979313498013426940415881378068954209212894987771012401729048153310659734487989675030341303253842289367257539304510774035247912890074297248753227946217584610626268160443464719052591301535715641954704620448470736891865713769629272029687007235866240495953967865723038343209886708543021663477354677259449355809293459241976529476826685939245678807054984883392254860285276106580331523460503443133110187006437955410570043762993432890119682358946164294046396413807793606013863050866362165687799256307403904364726688277264993185884679150092656443840822447615084310740568372129883635659382352161288085412439284121922146574136564722495730906400906671023113616883641763422893868014472323235627630121995388346814370576285298850608648664086822273720571353221769532651910375314976299023769954165033939719368218783972058341702252075998774672790183337721437713099987310423489038276828262883298061336023035744500609449216080600660393019908512262987451429622156176379884412704052845333454200455232507560101177622962391603413856349488551368004131353235380930239048213106224916238077745447549584741688780909589052581085956899295895109975381878080893151575420645696500734773009530065364077065808408425345930160815200380338579877950511874106811996827168103747534368484257490931635578413286022223388677186813199703890049669408353493060347036666952234324383085069241151925991835394662737982231327847646599219857997599793411375659920787215610722992374915919218761859669534547516443000670494054928807310586326288231142494833491779015214724826410643183532159533154695036910439798058700990143973838976935674181125940402411639720547461959613779794255224569401833064419414323718008893710600910371194657760808198326828870121975799871679287384343175456105484927246855906764955680440179147950711021604343022660586107977381520068264373530479766306046140809501109538854955899697477610595238880076780526707335708061952232689993326218884884150195306599650790997044999579053669520953689582049378549568098627039497833711979642616891192282866710351682200491769501965795081085592846260268414653485315955833057612140976254230691872965418380209577059065898840221736923487268657016428178445727654370214352030857711910781435839955429586732193577620465663579955634359594298424173503180774736770380447899856727478367854004925182513854723370801459082252480079277152459172044125062479282334637958653411968197577497273599745724806596070382779204449454155823173047405529954284116986850997277904921785029175081708432309426454888195150929121286229483344517676560936707773291200555858626110027787994749448552410276170956394375978060492961157301580877480790038938105311018947717111129312276038220637450051267973498213552761530848332892909694384956383564816070060260030577717692780394772028489428306156686439425589381063647257534920758002645959777228250443442846488894030722400174812593951657708320586741192363550196534487545855612320659651398528072490358633870473364152978983685155882031144014548588405976067164136445881037279661581191168203482344355253405325754271950614128005777384550850288793871800310496677567086073630572788358992503055419449612985032239670738968652490072760465965321071203939019519739851473238525271000581823756292343148167653614559829071193754431831086860505230390402008227689340612466243779124182464293483555599603649958355130211963900431210994884272217798786457786083049376455930813518814359292380232762614227055979005794932045867440309058700561891460330943737997924791697896478827709529238693943333816906955155255252602356060600146431833722059207203772332790984071484163103024158995477290846700784644900476462188189959703459228945470008917663262904655615054602211859404854004263741393451953969792171323969107754680001934013879886424294663829726208324309123891358455130131071189599517866374526989243960480640434015399925675754581209214243978950386437134428493530866661435590142751859634007945773295319097991239546298991955926408489422467820161715766008614329218142193838426803485425362765893196316420059456891529018973601089171375300938131499852978350058868122970114879643085474966942426340670347585157062326228753567178680173133106156011754126411011890525820990360563471725949524927045889627755126319361013522052102203223250744831357284677538112770711713295840287326374899559815632940505497365758188038710085551624789526969509787543004848332701979175084647722005807910749871224383684588693303234845064917387440406143396470331355334064463938547254097938035668705962481351035787063554535464199158927519860546317235297005241781048913848115287286153336670971264140751059525208304893882262825005403008734213219044539261071966116913981793066112659842060091523984931843552383643464318414726835266326796769445701340709844420733640829820603308085249719954452886777713126263383666895653519614379423679012483319846471121478462057790984781885709918848107270481449929094224180839085657756362152150582737844258122029790697134445758751510949968682364219097783198053541932905874239954305503527846676539754946784052571876879798683473984182014544353526918652273671775055244971742404249197574284896039963645710093254866214686949558184629511493972907289774185378536794982734995300249830549492067634041919401785251502834828966165464097062052209548110516484984670340137338325859484829898087542651908789285787287655000886158117482918379598636980613783259507053219139978291561984615384081034958263294287576764293074595757477518505774840117030125678705011667386420084206890215833796681914006889695441205726181370096011286303664769665661990325999692156261096964781309376148388043197744006421648395601050000666857095386281536514251319220842635427577024839994553095883149865880305568740878895591060458840840259694928982095503081915486770680272365232609152928908935450368354808213973758307375949645720922877561822509605774993784930364274416544638612337393514773890189065193079855441319438734575988705757093987731248430998504346422986739986728421348793740670386321342069445077612367898524815622615881880668039575962592768054511393613526940580118918118022800074325012704913521465200900342423928588154909633843572725608567194072497812079742165225556645320356034701759369579409351684302945591766327414154429845070674536497567056071298144089618946695870929492372988237258392867744267579024327349619962284569996413503808758637946107780043562445445477973272002967930883511856909325299453009183884483238880881696349223797248549503198133268279416078853508756918276044495741356663924654875172297759006431874878680311671155417843766962195754561282400134417571258061196316467048631543794930587740038644771720654933312376217484486130680001776049685717938064585450886286447715801438621365068877435255039019243709783173837671571146162764278356521930223800709502498977248956030275213359150693491930284773948533604203156393490541388569602174747790705683260817881832656111816196941216017137111031628806413324026214957794981241110133366829691881297371643296042657922175004833316875329344674079043431558816602369356090719016227266529691330906758294661761741055062546154476983382943609760604334666455947699388750062927918405225856409047224371781400310355012353275195174800032635785537251169982442498708057769083673787971356859495056256575801384053526280957689628580240736507125265859159972009606436684631426562503529459226203452673294687966605288567982247643587601568300215462557617312890353741171030690860288306462296894511259595678516152309603677832146485157623117668384029747971182495226635825143965172653578845577176205740535634896702852815261668130473858949732053469648838673503621878729671518985486312250400131087333782043705746583738616883918518686934751936779508323328524334122749672959690346417313630985841287784980483052306878126036788547548039519558732924342432933765255187009674683606133677143885889304563136867909153265737231643095395437358071981238002395091500804149586942391475039052518232347771553019775522755650037769689787779175795588656074874654945576398902238712104955458156544605429155903011730133420196983425834876353726389403804624590905831574906378218194505837043615766119117179375404739307693611146096971120169492400966602915119804422373504655654054983886782082568374828127299093728171124713468502596463245857636424867841344490884049817207671309591397140552888074378110082473485262955114589678986860505657652502850537160233455503038275805789252328789986030030004897430001264372321025997990842795825005461961549817376593797103708565832291181554834819903229647001436420141870639047651269339042744864148815938592104915638748003173488492674386780557572847965217540147944462090581099804398098546285283419369633189208169132448571432505433907713920691777434881897610115050961009513042862880618602684007077037587154905759788222837374016105814856351048547658026837521350462740563263390995209972062383619830450218366949846825492228717030022487461952425724725274182049313655890587921507682498195286417593029633321663358766714552114097381141007316463252206351830311037954233625581001460828826037605968909751705734256927818222597564403437083156649886463245965808765378667120362971830978307723589759592147433573916893551636844539725672581745206874830035412476943659314919802509925597502395732931607672554614810309411535369980263394629446596386299329737089380349730948088839380365585711238421669343821963596424430645605535522828734740600601599433243569668855482141152231125038582433656052573118501700595041964776713193077320732197742564341067634884887269096998369012782309255639399944104517457739655839897414819513581959027701238206572401293222766530317661550136041843093112274319473249467163080732479969972830468600965489368072728515955651500324818268793029187748331887830535402518191546480770908388309325089917990805682351369338405898300318865029469079027875394602131375506268522202283302505970982793192783132977173681880098211239557775423418343575412521518787242864469866873736067774409387281071498638546529487571314325203070099239568805771528044509619721328409615257347685967198477023637598783669668279587468697902478451396733289804408904153122122393092661111638290960757683319027164188697382411638197492352866552243975788331945867379580232485186699887164773748872828528830489369952414268330024449552994221321352739930362976330285782913875066337664179844035777729858951578257298083422635283923478635952018758652453726678769279875060695373347177858682943233602947326363980974677781706764530158054945759498708609530438261638471612399935748323554735809025646360393376771251261987685458339003657359267942027986738045725978006582261176450966026324448060242887319534197573298280764989066748840074192550348331693039599651651014226642246547477779195683818504290154450771678232005211251518628203740989583622977112150577284622681231564700891990933070043546362165331181518908353367873592141344540216927374755274055191759873244064392192328798487934362169490580443153928930287041918573898596577801849574490493479711490982925311063163101954200371772981797254853126824179252969184703810119729244636739814675395220161861867805928725777019249175297124605754836733966733110864608381768528709568656058323432058493800300686128633355762243234792163137575949639253990175607232414978201470204702330771255105487373477529762073134160753437620077832761972753755701227830792331172779221954496929505963701737813694527411208737915686461836129002343657649356919820434242047208603964789252023647486339882309416749629421008937803950395533492870517457511826158817004210321023129925417451204556792747553436876593815362532260232691127485069316004550462916483024572501196084328571326361703992606235783954111195729676398337247182842874577007256198653661374128400575391344341712425524771980747315278893488894841081427796071578879151793393502658573340544439630633934767169512385138068413637181520294011187981265816310632491145983515682098191020099959704300536697340155081321441756775651764817778730941192100396093727954366428951413435479972688597096942733214073732101047368198881216183577683922519931697211398178379452460520283838256856343277682904962642280106439856282807067389926366568660234485953288878573574855830854184256264664794603754791992116883019536424390203952052152915986788630870351668101448676986602965989097821284362911512998315358675182901651487298492070133792055882892871498340087263082156779276336053219873164976927555383773715548141522380866956100802765656092939508871598223454127451168739428962785518511701623375550612282628281542474067985613768751241114664589420372337688104863530045301198872479779335271810953608779732252400341816885113603703437792867982764912168806889804575087538448209477519865377076605782149892586404779079481274732720325102686861099725071957975576892674680429122053253611658586359258978555343000465883778635250444013291630127635226503225724417787920639391291605086199141179445268719474070782578255345444948404071702852280200111000610394371707178082140962402925830166269948949272785473235940184691462522538339352532612689064974104237816129296501652815363936340143935705761406747016756267079060982049976718306516278726659949207630927676198662991456857550605361059357873223357823934266253406032138303508865583853715948892195894005593087304998081890191423507410620351121547179936656154514428568387138252795962378470255025701840962035375691287727838512245078144867053746657110901559172195040129597528585984078224381050969411534596528381364089572215519848399082180584214845440941280618845348978457696535626402930667669936203423261755947101228068132661856076176649824040817256036980126250334530012172723529052231605150973002327119061817544205696528829025906212992537557078709888585672327842916465881315640322302480208248204133222234164264449767505755288020157312742865646297884471429686207286138825220035574047947410994372945284228559792150232187122431420875029272081322280820768894026650602324872183081645090880455486762689557446276653051166860409893864734357823390505240408652719712986280649701372389256613601630388925232002467010684047888525493728641236162765405348855830165540093101568772072298031970311066645452502870210275132891341662292799856971756520136770258419890810846384577113117865595732358245881971663573609625405626399809462349192508708085083763305875155639379831829565055403481242522501555374786146059255986949038334735672176506880358336374933725767008602086863128436037201883648538867235600364519087731360525894312394224018338256555230042915335407444790131898749542676984302995955785587603614362528719594291835888544403771547893441301090401887843224832914745363013377783621969465848562496115488543411771662266319108378993891142506831184486040613366458537525769015250133326615174975708563369431208274915374781317944872058925238297241393363095802672837497734919295636764102887448483422146651614755320370445003513618461884476274000872522756830398843434745067982438442530105841481311886673556273168745429273302369145427578322356828204578441598822026188825861879239177604595934869097947614080956818189378900999937143067329930362638485096101615470522879395307896424698366588039592827542806531795098954263334323457717724364986831282106163499210778026375696287583830660621789255479274049493039158024142457781867114689594030312862824004162094383429383695632213883737530150558301191336733022117190273713633574814706144852882688814810273304611294002042189837814452679139927086174574289262181209269703609262087865062818007750221057718101840781370349275283724459466890663527844608888013260175307643048524659177936170611886726929952645067658165459157910033033440201896145899070635034542150059024496605328346980124229878653264340680731213975927406764616239686473058782280066510550552067832810995219272295049692604660172870576022632845286364809310147459286991139704933679328392744102516307333298400719902551196812052506022277002022142261672096504717070039952189232002329319124558879288006198612087636248871805537274206993312153486757929735465292637190120573414004531118374858901441856005922844778982351393311366530661026262400185073934865002076544100750261983439419655589817681811653802860881312446662525019245929959296325545957398794701557701622832389528234771056946610544702492281098235406821499099537948876711894213432007409880222637219412773249834132916243980624121733957495446782174508499860240533582467216826933934416822707551492434138638808409469734205868575938780537857700410954940891135426258927931311812136966715299517631739078958820465425304235648682218594826508997725174320163832213808602374767236585013077637871163369146273351077364883257389418881614659585911784277927904536035743101111707382870286272820364719675070368143995014378181860867563206721209161762701512368580291412247181621756268246208783811304354850057747092328531830647841889013530169187273945154894445843086793048698541835624103273168753260489349441438336013101658249838057466374657708787508464651991581840771589441087944646414851802329415739182908405536709168447925400013980083956473277284634638613079050972637657836750809820964958001124727922381148096986175996940218880801905054673904514370100664063797031083584844204872709469915546981282494694322166435896612428369286779356139238149318348273343460554757758904732455720642540471313227489106246499858221378063002546205866969203019974332146506647234326403992505704449818923932088662629470490713872155197226283138495498189920703455744836080682309674226609131158309223446692771073420020109535149528379334521208582851864065738180642980346096915171227562868972716165693861987022738159120321769881880836242580242722854480960482661456071015923006586802406567436021460628112460923917792890915435020191539428482374614378096069054168677206638320984143959504505252972264341644443256087353626556355776370281950792669113466136150760438906706720219075479411420608976876288856584520468109270483613220832362124313955148252729763244367479571398864107599778216650239059975516908880297660644286840492550227971104548397697096636815589857048072656819993954477370787427903576970050352289523073051005865757940333004531472532782524973945785775041976447278955606912492941936478227165695063019772071319512949499667373733597359889606106506606313638626295384882907400619021473470840642686891747713702254155390651036148887425970572732164621883227608572111135207202546387902497944252203867371756900032333952705530802015144337693953063270703916619324673708551615535307666727815917229196646895468151667070058376914951945007314123764010859392240458657066389136424318140230564170340614891940263543564934635696144725916239739530990645412596147195212674402696350443176985289243100664221691112902161085431903174953339607561031285839856597412071144678912201131855062769634064587921813390611440482526421114367686034506452144770101806903225639901587075958125655122457743261797100376313207519843440049250261895083576843531562807825553412405362682497547864858242625014496481380419581194386417222680931655558614096170442237940793219988857261855131434675162559647407628302396505020008161061014568108740459490978978846716422550039225505029628581426889028553603882562166274472339677214800368906926550804162894656012713167276021978317641392839193632709348855540182146089812106763277240018049716950323801245677472642586362397346060136494938801710720528698968435111073300811434055277614858645591807097100556581092526043837720975763173189394629376163837859210435474372806337267265362845106070376668017156295925631002293236347744104117961812258714546344499112860278723209522451592265471688363643725105826357034448689339826182611066760397485760718857355416756563500129751324971613116716769192360202544266590977895012874066907922303793168551527916860026788914918341541375246312641686877584711182182946743354938709637112963393834816429969554677717199574106937990087229259314776636773103595655222125598511714625037644420906721920567800605646381711613786917258811309605128565807755866530155388466566238030738895148199830296065979922165396429761249164791135894518233069210904955425818114171490041754455555302144877417230860099072969483651197032543465978742739597712079057797330980239621133650645513086378119338069572751233027988992794542528217165604095902173316890147863693879963777605913569076951782196398983222179652920002432832529381164184119677427228210852891813600213871780611193760299060049793388281616418347595913697190830555181439417686328549987403360851503642158836877288875453162958753298066822131277951197041226245793015297031665718040912569163001131876693250102958915065595842790039957136533126502028482484345527359270207311657753459477566788793773251685635909189304034071330601596305927047814949065304376465873643022811312540946396254938031338752539190369544902303202761690550223680053871652057055552488469710070243590304680524081442891425926427992343216334223420282276006537484194053093289032239220942130038061738389629150425902527812657287082638071083184056022479170710770357440790977227837708445320094559276072702584311887799436937372993809666167518440760883744847331822187567261457305016317079738912471258240906362659055950339576519136391024891906703607389195108245947718970059721514950288009314551370437412853321185913118237582303605056307590801295825469461081858171125004154997669511243806473637002467119442461375953145898888218486404852569348225745383592894521616751084592326914492195333140055270165963296776432999565257713550437205865730913755901674130434264410908102098501378990464257702326413866771026370608161260838794030927963766416977414742144316063338867372116671851000077628112541338099244067229127233905856246268725635996234257186125024954403510135593505710869787911957579040565616987374774125384822850765167622204677234264297891355163756212038660026565274266289325873821450057699472935636310379584061757222204193874590189700917154200978068478136563810813009515156536444037295095866541799638284584793124796980954991206009236321445208694551849904028836572236618718863116698923591167491058518966364897687133386723396386289738532520347883852206753216280200272125980933965968342519110878299054677757583790850723636865391718978441251100282333977178417562900793055667641212938491354867998055114031773040582268028321853821500500334063177916232527605921717737502644677215696549519431805576081580231883190266924162231631807456104008769991299538479922004379148569145848441150413090452900912829915682807212621211075177598212412693372191411091163273243134564316855903211799805966958663157296100695526373167319663837881256778582235772831416515115731768269321974130493024328362020753045619268274042348694563912209529373773510123518997658519216049026129222167936619421231388324076329904453640748696962470470873819498369252360976980577388222221052563162214424454702016406143022576721678167557383125078624479293901833708919542618458335562774185935795350292328098551890149273932377613911380366300825546842396117899709234839162612619965774621601750141635514189382959523182959512930071778634675913532392192609666302492455821699339085704401516690146364973660091681383484743539655210436488265435112647923599087687519105870507179292157555281840384901624600084622275696742686927183746863443294130337695796837005748039809934091935956475129831667962082508474716162627849084478728426470572510051906895945724080006316853399979012431550745790761360867779363769816125242861365834579910058996759663147454633393497802522441449590980807346954114464688410000872946747820431192986446895525241560006488719826247192997695222457071874139283824954707656968532042899322257016341247981625677570753585131924964247700250452075171393364061766818655690571650220904727417241549275048067361250262311347007057350060690997752166954087769869682550073371725725516902220512433368670761314783547236250728927774393065055355191035690225770819071211410031171488218904502794956216020866713974077305058346335043294415283098565002019675147769272103724513612717988296044491740813814301888998938569097845411017161835087996423497166760265467303293555656694069707463324380009281732977641829190280394751210173816487281502334766194470246442835768214820829676073235510019873438817982077578744724668796438480810696268807818563440182718629191442489663290981963128844742872794983210294709928247132234238470792908272490649254724101682121307978862847551947003294816442633442563173530960658584909456708687380826192403702331255159473660631658716990945979677391680087034173551880137984950441736826970213866777379833528670182862118962511764715427932045724519223102779441911722453007181317293340866736044977412946684371077125735985649001845579557724175668243189569389120548985419453789271168496706886147670037864066705230271351561912497387402364504181082201345103363834958859257542271554352917989988104462411062714242330124190515107302736905062294490346909349823235393102507905774890385150400097881102766589526878893861740524997879817109237494633024418497258690303469286162687642477297494032976154356811199025415120386941087747511849074399385499186027522532785225937879863091707363623273139542807350278978759618939826935365515889935348486236637746950154749431846107665670871948325411528483387660442487727220998597801062368678088075771604728462653326283849046934881523247458056872143234150934705296177373605061963406013423598011327159081690283236500501811188777590464764988426722023012162463831803732756422058997258839548694257427380782881935489545330180762687714369968101452598513293952679167897993018491473558679886507422206250064488691612506081341040262485995962842515988199870958538281113223531531116455131115064228878662782702287975368957790391623346803142876132293009256174812314312514622160651489457410788937068741349777640289140565362204580810469541254580876514750740902372443655084345055425665837014697274365340323320205889879962069309492569294606456297277436478361927619384821285435278497900025923825849140494275522226208086305277896739799296549120795185801971593519021098949324788536624728719539753697076167310524653658158883471081527117267848671297675814274450436777570530274976351953715066295787531131363285433789253834061541639867215816331083438817027069269534936826262668242741663899151385760705068032170138661434370835395728766702773980837796742645913868007672084035963432918229689137718880223288677575406138754936511488619995499729775047477499331684000020803647808899114121176141823164169161784340822024209046700775854363011632353895479693053713438518344441844297978146077794830339894122221300768884822584875630884367493350436011171948733794201379333933454944924311528496685125490806251496794215686870632014345810310978862649618765195070167032146051838209570936519319677231345456873933568256441682319422370428416773938663910465149152231506274155938391070793765202950324319451989739358655309584455862583695811334671090328426279432452939454761515798395798351125924025820972791809446777762287343768048994265671835632592570278999305323630173737792359251533618366696266002875660172968136005522419617738401263586161288238698583642723317627575058109755888953146186761976840143508454393509211581039797882432453664259225045070836552729056491909902262247907719154954933342839496497764618390746823831512141323186339503162482001415644624402987377674351607183600954703467380204856987020281201245642528559966338839955851409224233512967215911818399405544990968231278492645345274328134049620022520031759517061455006752538951749420769844242659379285534821070618938461039305539051382413430241355939717966111143964376003394428267304785611943265009770470852855904666418556784289406774819322150269804798083817643826771055537413810930744603172818647452728366555875507245533334556764902809410630907228667644473207581551016769467232346482995758406965913550059448223655184217286648261525243619458415020076096491339437353670270994079953010340164958846928226109237630837179719602713310516421673418144400703459498581666572287073404098193419973940704158523749677143035267175195804687496125705809540867862919250527170997936234412035680418485954931261766167670514811212247704421455144696676132749606156906463721187768159168574087639616010648635352244566939544202423106172626039068703490936585256858285797973942460200591924211118131153661508678927921317776879638896644053967873512471271099457734077137233646375144148440312187724614085384801816176242550212854457389957313151745192221637210218938365887223136034980212341490648294097379889317398036792476843664838708800159195703760753417027953078546878641464760626553989300152827086016991493733189809412709012685359943857611451282030819142204032381530620929819544904446454127869698563756610481878113835663056743700040009709602027587594948810026321901019498341265548909131904472190467639248304951048498696013095779269618792937054237472724055373980544129056576265445790988099802391773736098307137787396600159298906515006797779387193844980600049803707625581293741172320716224406602189740795293371583447020050788581320051172987576199000081886226053803945376585107164912920026611900425129597988013989850330224749636278663631711706835679641306088542208205331288198537957888557239522515409761124525914620939292646019148727559535681717537864407283772338620589320866119337577249163768650408615903015029973063996763674324559252176066996640480942498933894767407592276428377693420276476078983434434941190696522412519675241880595132706282452157993534129327661257156020471892348770835399802417380360265895133195045082861990969068926963119693556388076436170059979328052704869558290923665293311689602763855480848662752771846765668519362864349859639783641312015061685464370337156910453901025132022168573171789830754224710829448500780577064829421342602605410683277437773745500466145503269935853164406646097939127892653209014937637207526824852567088007394514431043352993080592644856782538108519572935184519061903122493893913452918952434763989527073388948702235346876402311840791470002075649721902468510556714626130029338503261169724511432452545860587707812818456914445708770644692207444671720465494980654654540525955961849771323514001913643613656461996282162247294295013091275771344982449203294972828329435966051969270970878479948105542982458093432618154820992498121635363204685902192227037659185801947208371924937734206273497845486249334018694382958367979958446997127713525519114667786177970983084249383971425883648440979698218095661172665829144472931644073433230908782589146064223167450146760566412565522586486095535706098341320541142998576839233837054224398736600294583807617851770653218820316917189224764621229487722443121261503975791664105841060222833212477840385266263424206414204845226535662990809451632683540331584494182932205954846493400845055119533025837829554840079219750843802115468318903238348668920081156499209781077221151964657456336399535185117754643576644571179005732194348217375804344721401518442266187661197139992228622877514583873445097145655876589822705440596732768488675514258178201225944026359183238462379401592573761670222201358757423624980157627155638113625071540627895015810114903690877178506215918690318332597760095832028776110806411274092539554488602953295181240146046885208480283150543310561404602731557691555863777070905905473220341735541248530020073663589124332415098860460831901112460942090970505710181746384674862093124898905572488573300778989270198021367925568587029392341419418372532461376046824736696301943665290100923423396483682735788272971860740699495436420353308282266783107561235839349238813784246488563718829838715909333573624394214574612252048127313416000932771617821382803166345447866521053263496488487490891701327012625902884590143702913640676602517400491577334123384456784448951472693464104631522465235999134496368810079304164671186400890719002881598457263865418601104348216446951975566350407690182463766717875617631572693906189604109437682532104780034181138279414155445936860025846754285056110481130013096063571586526903244924561847713000815787390448401141136112696129510765466427756560412686915363187977864979847950206039752619605568632939899086091386778525780010448430145551476722948369900071896317504087640500006627736057380646418230323063054358518619330870879609768931079457642869283674657108246592388813555840892007052816322653952108895682133597946989255191425006942456348269794407948133962988464307967230415366166015987694263191575993525806959005062236233399925812536777473056194767891758709190295746276301748570539863441690647819160220654013687057019943937811437371388807624661099048884471493154935160278573965304147564644645258330406920370547006113743591033676251386832006424083722439597751698688434547573389169932430327305745699315557449019840313223980276613022110006362967741354998378218535414649282067900073368401408764783274614848236787301235473076186843787127641623585720520197397149425953648533875447105028540346578392708421663140492616175200725496082930054547999489775924156381521596777233267818013645507419315726779649009057193931878668609246253362471345595841505951981805201881318795909895546762024652829351661671915273954315247690677647351667718064119016252885758927520074003075324283255542442361412765916290857395977032781226973526160513733914742386546217204113326496382770963221617119296287672197543119254227837728534176557158108996683776704680861475258461167760491475416895316185340387745975372703150010473077043711793938912386559680540954011788310628395232148161336747931845387414260461979176944619931695129927996639763113049447265316020891049139495864921075899194482572396992901325282275606357769375461968403415587637099685207656886390976470235253364017691648446830898102612272023922082468264646898407346769622267459105065515167861962932146211361076044058230143117206647156925532192834347675140472707740318370628903041461367088601403462843704687129878989695107063460014426705376856612845757622149564285806272081106206990995547367520587880397219046190049036668220468312970217759996626365457472617791968678497431694018661755609280956907539681098602754953275927966570815654733679083094782127927116312941066441264659423468783733745290267387322884178142260590344548788722618527483745198617695760213967953243122067309476146794558657218703063561388399745250071190831224393792852089499620279655473353431020554395843933384179517481607100215687824247438726201049316735745997088694108912945500621841025619555470692744878012477017344316539459054660206805454886254848453937257666899371504660724218410135308023387582243695329743467123382703676455736663360839878579271496848602415484431926115587841048112342178930992345928188306111405198462961805957350231089117678284630714235894207113897721900971639381981010907682260947872243607254345924393181548970118285202372755090276712480492506121782579037073384728300292169246531056642840799759847144622573794935121911368739471808651569564861817099127827284703432509290835957402428745771992697324932839928536747213145090591602106109832107333668964344074820327293003075609634280396962242017544916186401356902960867352660048002876539352803561996725036763866832103179333506686920918349324331718359462853882817629608524536141434807315189487814482745577392879458665375667868614851633045187842283386072900199751845802394265469444256035461450347271173550854449317044819785558025842600401034489457580867208340583706825781667928859572341072002958036447487966486136504689315899887585201384783728038843808616566940560833898851207431626152519296711340763645469645396625613805192965427633728914036064207677900644129909293334737653617821521756808439375889018496410153887733213894440539066424904913854682797217747335178411813168521043441540985825011161474233357356981987333563307387394666421217582930982988291780943900987316298843584204706045182042158771237670730162870374636153690440274256490598221131537105699718580657167602238088240192200631896096933200607772104254900426783659758194776423104684336827675299180580430276966294946764441391697938144778514604598848825079566606250798503028216464828625466887443855079070152268119680193267751468087597261855632014172201340939649735463195890217249027113065160310881029987622806933490196765578365550725757954657718907697059548291719616303900984332149741515914272444547090376110062688665637517294450199561962386347884860155638230727692545271060536001448345437873268148306289150560856785535908010090029697127667738950852114470092800565305805331192586243740178159542590339364037862942176175245020620327396120460027017252332316589385520007191931286589904677461054392864223396096722106108615722990180045034172786066608431197777074935061713124555428924811384756201770854462421641955154845878004626403902862944592225733092787207359031417628026373350436044691048624184170697927585821385952246584614126682791056301146511374703955437897865939341501243144954114744748722987391870738718820905107775389387010682222419345104992090867796428792260509071645386140077071609157016806704847389496553720594348060563692170605306712051864482520142166471721349818919679637245076756645524627175547779395356843495404976832237050771599700088199428420009177947100021987279239356245860499895612681909993740957851357908637473142584941324311806150708054559710906649992511023388756374929264738527088809701331234141335559474226301355145561385883315617661071792720400923890559955025332625609396339484425814232033343729688211413860020963279033581380444692447696502541384198888236916384842889052608885261453369504699666839753650973623614970944942649619693218784042055632354778732877721083589166517503229470332098481542422738306175230945852115238996285831034090898687582876083542446322871249492294813682279863821005516367281533856657495125772402498167917218482334242187492420794004982814992170713314862961018538800178445973024338993732888344449203396869446102496453619624582544439609437766664959596221068022320710185209148033098967688936925761443242044573383940188074731492882811827274353437480259531891252966084226679181335935442362140105220428844877378250889201288079401561201024465046750286071433632940504302073354411838816393095635554001174308616061927821590176811108765623295780915961099630908190100758116018278349415318606943626340885906285617563930266210415367250369479741110756560667507664588547603416798933710751068770176073311079932967893430842949315085049107571891681810756471904000868471701568782500674351401168550120146225866741017777581428378243720920072322464302208296652884618241862112418803658135271536658488149487671840726102431638036878877409543561807008107566702992621183704334864806357050175282568547666230185164910402074563345900068405079810845575401593958197604806579946877637762633243150414746321358467769565769740050786183606151119562098022561631833450457311439849769406444005479018595019155406656011517370473892882324367566693767823094030783130934281164533842460315517552134118696696339332433502209229005826602784073263723545375757304966076697251841403047954456951743297192527754375121299248453273606885414813647672189272684726563162837402337652529594005693586584200068248164051598424602411660384724016169283336589094099849136310572740367252389764373844985803946140416587102161055019583008309083894252239967013235843627556871921069680839287760097724037854319216993365547270926944333178194357087149483716271151662245508325198987022015160779855100516786327216173831243732164552647853683414732122609665317746934674004253893264781519169899819745320505888596346335661059753867279484544236659045395499379587170144449751161132806163983618911370434751336539035962092874228689625761636262351996901803818534158654786219392459537032461304140105599576109661392182897793436662300471825454800500832188900193151049501296970606806020078439950926926153713298384616673661790980986625775436349491233566928464036269261440041440200115499465599997072776635032074165191740765132361377982610521642205165248887320540734789648248752808707672788502922564650515670526118464197371608425058947513773988381905543206957965730422860982764179766204712425912236667199661088294982245483399524118462008150809412036700904940029054654968710138828768417157175109952613821091880725467462226849634983777281324533841903743002500138475131041135705252843669843018975761452374435014818240179015048648056096827807424242226104379875604814546062726221999604718674218213995237977491780300924335624321686192225787737267411456472913863300303174369294575314450793513804281179911218754094438997602481467448918627439621353091932336971899117409764689615572055419097106409744774920535613303930928921458903013904092229532923775572194932046660911053069629588136405070185098240820366833309210309054386930409390290647076155668200995768912513860939924909714073161306926729568229879461080217208434043115771999079375365910622564294763220256944290944046103854630126196725165378740602145496087117257132720162732715201651034250181505816027728530052315448220360761191841866630832925006590056924758375797201919544612530783044414698997180684955922994342817831475504513402689595471690147065770454703591311210937647060389985396064071254371719948708878099132497672246418844861011414771499534045912741738949706595555293255864187264017356498870052358171143154850389678764231270770171255072561319757743047706578478890083499072481089581207312764838278541443521451862358503033618814590776282863705212334118234289313647398105673392842859359372815058627595836212881899205527558010925222486796870661311138213562093744260706327299393478982061551080161936016295554768829939685376457747337891229416855678100795681780120098723040361664549423145881821352091728982778939867817139626325322267959707801355025596557196145345364473668252369760860671746316209430311778664216110780412912045735914444223745716628581949067978901136941288207578364711520308831316396277747742840858146391458263520510592621042356581534104982463414764456402324454145812722181178709191932153911425260970954523160911614939332318610282316765156369369452410335803184314258823612693511456057408852465318602696921431127797287288323467154702149538302583299919037252940005592180449958548521104489257622576582350051329263340139863733343517514044061926636596135745210691596268112052819437871148971460797632651911290250091850078553809733421509838143623096370418124815090404240591639077069746540245105904549673110332582164098946521940337993038273506347834585445960298832552678364334535288622181954697225574958856681688037438556202906046446592915322809669385555664414638808468490951788517346038717468397354176192273753079183095144100455788179020445180882133311694401449540502989068761724302796817162982800511734845711757510960442347597273522804506040771907102430908910137474641947206121970214713939537845386524697220509901435903063121280268149696649792930101470685533953205875743134791724105195897870039424013143359155923302071628489363215140148018178155937544992041332787561237241595252079524841214272225319686861969042633109141130255936402003198714395915175903576031875226335093160813786805933038356317211658122804606564654125444599923399624925457478853883907143670368296731923849668627241613619557556135900438403168310469315010147520620962835225366677175343125821524357272213718310478469851317263735620627931544664786600966462268976927551567235154879816318380107912081072256239390299793746415578780015459860394789358281899452655998504963390971256747047444250857190739022151918664487380876411187222742191062154268860267379626436682057993625650611778541444681820382554422255694674024775352829988208538110868281562120929500008228283410946335328912519740382670336588025507244965527230225327446209765272430989994646638044228115200659195111219060695183879541595032707412521260929976578274560648175627186048367169246797355378832558582189440320619204671137078879092183591217519271763941493026816564254695603403633083821124087874274286171974069591932628999277461824779067094918638161828135108348377313124678499834496013721241521745229235594891833402761449333244034538831414042253869668660086365095245518224419957591126972954144791121144987472111098161745002513421543661323728196474973369762862305149975354639631468105592476491190515314534110910107752242352248840318193682758293150910744909033083555896696967369573761132491077120851940554375066821391376464526727627028378133575923763027524061698325830111067461602139512843816864927976229298876625509285109942805441445583804445956518135825573930280982226890838730202679383920516870633085661304329552803157721298195578700072164741280174912302572632476540300507341912706494347148359891326633092586339221100793665179396824621783386172722057211749919028571006419196108713831734699247659653767775721364551134911650343940460357060922754262653664119776056784172712096260819155277911672942203262928634110701800008969745637126690109370567293644118482063762189536052945011940815594425944999972141324203010755586748404123797193164388820587432987070747666532116446836503172216465093232678432038449077314566750736523226305847342236690667452462686196942988670868219603821174055585868257774096110711539404061559385826400681146481718836441972298645883958823468671703706820461898643893849753620947830654159465103811832093978268061544493981302162447781812518183855186813972572126716492793567816465630080642030691682473149052993240908752669844151098524032290491361429312441766160341450653161290970032484973927614617479455397860380670602696896422385173751567905527883990077930073299235861121857485682612605429242541154767566187083989048723760646846127043339239468960948445595639153709579595301322211189465847097934543773762237599875520271280652422915383529213467485564722629896477095207888428305657581403699057233383001427986732588058111696304824097520922463407806551567498802859516778443293668591975058776497364880648825099880362712137520398928255304334293769632863441930208007047416441535433034966752078888155750415750165259017795505831676803127285559718203585371203289499847328584609535715320544497691950428871958055905196422246758508724339349755109617910467020200066129414976177907667622352794743278891541798853459614691608284498034105645927364468293255703139024991732282316851578868066262673617510915666123238743261536081748461338770657679582737204295624096218138281794919716465470905922053717302347278236554051910354044552051185559737670119865192757854481901037825920502102881458470919353773007591566166690679939534022558507323095348360075010266762079178005000177316128204022852675046868545941207131614497351704791153235098109397608043440691697077007461737987535432176872874803330082780611011033054404751552782209881987663083142941701889895886069120168593679102863025854627671608367307807933505199824353806605588757302429148309923323033737219765807610367066461764811120652479709845316096363347008297348575941099250956778330292612521125507545992881941364786924063882217761153310408221703374434602499260869110482371423261005674820874955704452826626694786795955151422109422932094047050304114592700799604159417461251212121137964842387524342593813091793758538365505866457890282052489853483916801375758037260617211641467073749067052123575930602229594129501413630512052090787310330583246948739205772726292888362468540049595467008218378995147077932178559567755402929928679542510695876397280398542470591424186112901251057161450064502039796070383466101528244723744693086396648524328362043147495289394600878662924101274639309236197156907094785304004820028995551345966360474731719579359368597981262268331880727361188111387943814350863903451835218608791379509605585641168647530728236416198550920146522417670436588166523745753129709241964874112716650009384192664821598751760256012271453738084922560574894841094921589638196855186922460992254437935269936653764114728786463240084146410479347877799867457516164972360685280769410045682069445811397359916747281906123781968665714683916688843226139322171853363277572079431044568939654025661441190448452736199825107161705650006400241655163647075599784300357948286287508123446533769475248931397243169774005551601539915597196601553279357715940828874868248991498992304648867232823756604897358079863663547190377190782242905806321931172167315848093604386800002533444007653664093010513538502248992034008091110518097689666438577078212294932578282528260058335908377413119675743278984290773873783353810197976623796573142243582934567697958846367972768546254459876343841510347507813894035009105408216566876347567215073818794597272025077347631927009496925282610537882431955616593337452228266254430356622718538719269644498891147617305493903442589862453655006036881984099997209849414961856266680871642220032089924380296626720662013710237987956446222168936418681897543390197452960536306001630611882311226954061598671505482409888410876476050088119906866469454362427581423097636555622354155547215552594476866218631910548240074054282486530972536835312208197949325687331291146655571164835665763431958153308778584967342733847239448314249605091234428137449496457181602869645636222969631753688583842932048647295396560125403653792087954210407799033351565199619978242939670948832609305557718784182836688157241962525758990421290450771491815422056395540224118449266523929535797065604556550801921088452351610675543792808860205734575895492913912310949003558413340349915023144647235467748421413090702126371262553698494560666374572596504896229996942215604675946639167808987979906102098899785959615499119075857933572657658483007522425882079343537411482098401387630117113935709305491042314765424492358244832355687587983423977069625846146159072253636478290363525506359101080196534015429178796352169973713420823948999500735115030326447716299320052319227384216383486398722539943882788219220301538879965919322912817791409185307334856204216862214886715296009913303110063987764376943849720003388920158338867764954583138152295340224149678857221071672515537165564111918536220285295959798761589448538960622310788872554005690558041734488055996402247571460358703707056814929354895994496450675886253750225106256149892271133016208449979191136685837402641177316296217588195847584575800525047923633867877308028522484124881640944583804564561478196616723184375659782868502596760943965300803847348865252439528088185238503900138684549170840312011083779648099017911570234433431630664246059130425544692310502675633209694636455792229682555303816576623030347705925929342598327599847750919344297555230126013004458055351131227752341209614471989013415694439385257125075233389771072004907186949568269896928560194979243542972301984442025085943854722685359128646556751999467399482581630286191887737384845790184965318967801688977318195220167700143073436131641117472430676439243667193523358136533658108808552290831286530541483458918751942856171300940555627730318165258179295586079240998428821260163631354361158575644188895778865643931517771462905977882362009178844097328274726876843305095620389817315867494767682430526382642604874964262182794286637633748343715567433818206390339963235312691327143061004899068156585542432534324339657111906796097332921404275943266925147437849891135524871686667607801460525361150394073648560177062149332496240869527799025571888037359175128366562066424929966861676957880127916421435674906748900947828939255461465496747916725120915301828908906574165456296604994155837797224335945057111352669376076585054704387562520205388747485935380361160843498355838610104279959696401925153860252359556340002169789922723780325846161904566754306164649472803194777041839588829142364489132696805565300592736387782539665837941773093468889544735314434291646348974527234943242466023031373673607259414470269178274623489669831756200780584117413839616682417096861153121097986007627308205059070780106681958466026170215993592799198028132786110047347578884060834138710099213333094032096738674824137015182372866680872381758249709672788630824753070844327813243647194719938913774420554867182592703252383167415772692891684251212590119699922262319504305290930651524742522611983192926152491699925897117476606284167398785185595101268174077621903743797263709307269198508911003040137599464820432077086009549942935289521815002692649706450571047976756973555541543614134392402481785745800019361840313893512608268433724943451628746996652775006283987286426062370060108939093606013085374230551120343667748483748170655389158602674502540785388722965663378249770306667893017966618546771436651268457106498254296611619406860721155692946358609091470535427739152304761691783749644180736278095553172515290978557229397690471658804465953662423156739647237823093880186840624113070190521273700946234832405032601812021026278948266982702479053149548880942816310561343445289862888144803420427457946012164775163615998192814143461850192871755882191115236467107043019168534512608736652993962075402017538671367673264599303289017897422900278283086785071913854552543585879578423895226588853885647121293942562940913537861621891625808489363167480547706910073991663014481487926208484383636327617955928266147878850646741449328255285767485107301727349563862009313258599208533956009099718735359232465782069082387913657274046552543118187122516648312362156912564657257485141101682935766158392234666860199245047489457186542549307364128933002875881896541338457703444890997133544702354831218516230624104632727503142417776112362592428337279817205873008306427927661990937539245068561722028758994093764622454069322936676411720957635786338972195865312481769724881112859869797741261366009938131581270185113263919384462495961523520827702474292684840373461113396111076063542787097621676134870349046100576300939226575613898431615148633951808469611895927966435822274881148863526819846167171801748418236981954690134461205897566384056417655941985609494467807143643664700537194348115314924331930033082312668685348982856021041174867776341829059991303500346415287768091683739881747815326798785370936518877250668089639272381527160935519812196058213830931765779011181587652663699868765108520326532847331424546155483519009520892485565859549584388428420395338420713672482985554250655171463978461669827008921779639709449484846553061889758086772932173809392370710636330745018929912349122747343534483645754906313700346757272121912326314248283427011287270856508687622327468541967207438868522565425303270594803772765163557594921842734860544234224070084823806738622839744118731450967697683381060782591862232944483059361154630555568176518072350328409059794157249711944029372460903646020785908111975788453576103357401333841156401364729526213963280570247630860715482472944291396194022264015257835506401923017359149207756211629984149061387352847417866959174237904595965897470321664884567322260080178454286054783793566423439855814020699779644715886368052241687092855063814478371988136441828515894407180426503508821690109821561601203305746394027468535449020046773448228521136589585475788081525270381543537541735654362387760518985612894043315574854147199141615305336366758222322259194577921264727274165382478124924122148544036918745944540701033693658825259878789392516514122673993799371450348031309283099180635139720755440328125123017193439422101658171595370194385909747326245909304062122095268524618805330109016328142934114033597062369698960792250873362838797078472156143462654107273660770658915187107058529833556362146466316794467830751435316439832349184833601123985557797037582012262869410199230005254139358570652787057922971547143060645556470541473549160609181038007945231386149567275655806477236531019905509625706129268809779300671457503482030952434481436120490666664035305623023859217231001027785432692693816551821760533870038113432130994267344302832461405700190489386917499014587425854416022669327515288025073462530378241786049525169326467332708695532095361517239518205700819779761069520566219101175784021865249344928536633053273607131105016872996824239486426394090782339686622287148781066864156784611453148521557777293173698630835224778143863926451311828291952768473226625092126991320588027729695352213309059342549765447318897463345337378552762917894637280908228822553162660441848680377627479854092959259088673444523349732674069225954302576422007700273919514957726478880946483809907971456383180327063295129368149937069708494161853386618379756937156936092650139876838060500995463425496798207054921926838379127981078039012118562285979381431725817705134180965950364646869994432659419660712266476305075551291569733428066429490825670348714490612660870003466847247202631199308410450051521088306790566449658613166692708362576266640582547152796699147795589173346215854252221534437868347983573900553429517330365968646808594639661113909570011244937873305450866459360945883905007585889125045279010521376995915008604041952070112087002522574467983649364720960313774572093256296842564432141101203517369853313387605042953061344690068365652320591997487876442317321251278392569342644702221952805618076495854163311088634235888828831336967568741222691231242692031447135703600671132088052937553402016103151789302128196674014982880213267836858520482646477503728926509464052656791839240684789447320553390911549574583654251488274835583726986684769156872196716896524762160856352915107108875723478601324764282179179232096996670041286734648337208267329253907084896984731786806528768860056261750742641882612825415047243532216884094862408375498079116556556538232850352833268686528595390858901737612217406970610394832129007252001483904457490053509739011953342928296321404103908931322396066229792078604021711237246980856278324318417240419875727956410970138676447717845883278568417643229711781963454728228866966038945411859008392507250798323350349812913607507555015012884113895857469248261134445123933952662082545176388319203238883546086970910835016569209140174512276132689793812225070149236564157544055051513947083888889407836046732358903146187385271886950160214500016861266830495210922705647756042060501403872375661995373316822451853068877110131099049894257052710131404656829315679525397603528794719811356134492989843761226456612949826994554529962004768778101167527261812346062204815764442927387976056746659545481129637656425113163724507634990403514648810781400910673836426998036568000868614866214844949174417368325474621015570086779929028964167706362177307650775457784511330389885925933937142560617310708371271483242648101085393375729873022044376346998253039589320511687214549545551345706772695760782787668468305610370732534298734676172951648668549639399725589935085428537315700861172582427392758430204882252114660770721937654487864562672028607891700397928333995871021670395159606781403506644907423416984475069941405482399448446519701467583262026548607545690034692830537471489023064004021667849121208735510096092987105494590115103778304947637096195760171000742935889233295958798049733669792872230110640236268204319407297168653696708900360043789639055051262914591240841600392221999477411677456582125563858012151945741580102973870475356144987122738149045551392335161350119995090903358461551796778856258579704413345802454780220369502042586267253084415079404923650628249362669960212297334056019406415203506099065017559348033490695567600665434231502837178268482230762720714420028049490129300748832054733060846758367684852171581295364693822134846645988455196171983358008744284489807055538217821932750150095824499114544606604760780953750084335892277615945152035398280856542327601455668591079458568773441445707125135337308792712828096192429805938863237972206926906075230842068773043466116207489174106532201936260467848028288238465535169889328503488812373244366311717176578879607204993624277304692094133588725898874655090437149093022255702300838845521343358656840899390946651701225175621448526000247341420758615239006830025410988083263846084954394219999155108908198336245395334526488422354655230880876156486017288727108987053655256330144057916655129731724413298854439083269604406788408085936277476255293232033807079189183227151367630095620229722727715395132092926451324666539027283008354366519592659524803191174286978473225928334997964475598444752636502547508019412449863113694516331750449549994747202692685976359498666763257410006164075776828059087806345836732647064612186651044411009742835799617904099459353871312383225438236406344656987861637243382787965252989467910473240979139275173160178905941860858157959839968445367731403093535821359167461835221465488958515032102543995444864841438634744214841348308531769059427705019187403376082348083749454313134341533617811801993558448889163171081681030115489493615432139088272695639988864283373241981418596145603070778088828091805048235203169619648363985903058113756701878063019234243202200487473462488849230959194591118047222490227533648258963563464999720379836805477432463319551629630073780834483143814311794814801936152884007177995399114617062786416937329623512112522344792054300613363283152256862476250779636761956055760119002404757009738367808603415904401027505044530281348001539700913723625745709180965595349062597782718245439974481585242158638900944540491954152324346432950164548088716957877048481678129218813519602851802381382037605050901265020411079009799960675151275868792899708867958212882514142298518078510199063361658292586584989251071944990756064960643261786381964148209064135174824390725038579234270429500874117548059953509109141305005255707513846744426619404441888494386199009229749253712972272078012982347358139194956896637690523472645035826204887078282507521517668762323368941520428771214454476147850696857829365825834937312350982888032668139608991919032595990960957356580610479139638355298805915286532690619417517238891655087718383255785739163020982845782124946357369201059889152513611672182960933727935509442009139034780985062057662308882438126003507813641643110727541697054363955660750706075093955084511809696010140865629749877542031614114892305123075054865263777222965670708328414251736706400981971716653179375222540433103973531712428162201155167539255793201303573416174535971174091075742357551871984207987928965768640050771596255633990584255344332106182291204005329264748217995592930585916702273951081649844421984201535017518535621933123867009878035386665228436312153407204631127893138351351899332916877909846062783142876503727502169992001303966585243619181881186768527525047096993114258531131401240422246746507394101668980479486900034295741589518299394898220139593828690950939285114666473834376179426294656933415115460767344942445975179152626823934140030679013224352559915343292979949783668726406468340861280534770650316417328250293259594038714476427426730850804672705543746319295478166611759856019365492514819472855325226077258302102242849188709990394423023728442567640021099977083664836652324223703190287600868064153973129220207523142619402258160188554518026367961154943009882960950012329200377989228175412810704726950084598372947810497422384248565215950288623299826207114843318017150082025869885073122144634431005367981464808506867204200636408120987816217984094238363587534525046080437436641775996510932581615427061409045757360552955522209230890797155749168288866233879251885609206999119652568730970074273182780383770028067804751316525483729341677204300926373022817911732618515413396862308258683471929602195672318426488944586825502657347091498095923562907361270053533120793923242279343044165498053790424190511513067988657616587599115177442847471361856717806385925073189075139097123509814112079165084315970424951413223585776608262478628805477728533222961431958991449543567410403103050149036353091193538530416200085894031984077527897932000016085913890620582386300383445252683920015829541550366377036713459212888101202082409503052810942284610646063182456587415618191971184114422198895886525277654039615991830094352148854316346133298985097947654441841405909837385817627932016440875252281296999484829592259354388526019778824351901934263430179526036711336410028824422368399228761935202055004750662382122729597584595932321162625190555677919662595965142005229885940520901184545697600805599481754944768355981708971750136758433028121912664693295918637997190915078302374733595871263979721476486325823382628857251318868788101417102340042027777311672385574004776934716558157998442351855935391981099886934195307422006151946118495881534833318002841212030104409716189066646174084268034001501271879656611799599647502189450297383548846950092317682631456094936635748506533297629523529379278112276201350615272339619441764253196685633742719996380836283333339602881851304598181685115428907047023878072558316301862826911112876274416720807382548197872491450423589266929305034789944167952497116053443020015667109417599558583047496810342676891415614373213988385170528577051709096851236752036287779104282523894137132659837096453618706115268045531494339076730906655693475997567483726565113270973493342621778732302713689302499668844151954315691103196857220939157206885526568531845992430418727511781373806117276582657562729055311922206397878850862827506780149002117090316423284790823761505560110023396687410391285592476357469963156091829382596011584401230176701146013340868538130816923475843761227614838913960441297308831800670948671711407776525782690389348340462623890451334858949240426901237251018741794818950734820659457095539492943770310904428319839772592944679290344285180392796087854230314651083056774892692562921943566055515144702971184276173031527581750921864741458909841057792593203017451016714159681419622324054439302491821788916377800548668720848936192991102127476826014897422046295706028220645459565525287263625278780688793927898575468400175202943496545523298831857571419845539703096233859352081981063739267028861645644537244199225180940382131326474110147566089092617787630630136915065664662609319946994099008291231420629318969790459001600838272893135350937553695515413907895600751292148254975234586520045500034700613452363012338483547799324617969011398596821924403266667932787129091969914065761682670132960417223364715704469242628761584596999721746760752776262420401184989796062114158910569448774417184541605105198269457838015122550182466686076180548116234484319477246808396594326144278378628522436459871376391103190621275608088490647077707400414437883235774072722766263619285781751584985782565082237826201825498626785869557501443889600995064596993780020367857451115969428921344431197161019745343303554041960123273379738568056111762065519148029230113960246497807852374164223969672041643195767322495444184546445544496493013572644611297800582533899286175813203850676005926676661505457302017642786964372955152310277035383696506134298920640162756426456035937362537981183177689675899196648374635477158044545262587283506720474214563794574700869512763048076636524382683720720818624320355508614493895056275195401333066614858807440806339934752893461322507763683430791986936184888696877034313651713255337359378746685091425595295983451172650892652411490515360807127105586144546865906255358419178763221361273940310585855423269800885343028317875801662480014944254567376160455447228477233298463917074027479308424443720388282687023055478343869643201611413583040285809235139784663520228764687706097134548283960126157946878521285528083729596711648919927567405058733556668876025484857090176943374939925426285098459658699705164614233033851811258158025333433301573300204639070044375559497414916574554223408129605358285484381234445235751350188241812462820399059903615815644312757816456518572576871282166527154110758902171538114117703866482330644853741899876167133787124986206442367581458459061872580014126185481468089831321108649721109524241977298220711944720098308702761748417749747968208971825487429947251659213029944756054679847574596683625592658019643428532004103891370277171161488861666155622770642395846567194983189491953692281301546345536995835094485961317257819536297217368330970770867420097311410601105581904496663730330919965426090689431684722233091173365087976433638395864704501064655989048693196544888662456472385015434475766029019106117203412551291864838134938396875309508440637408073809189233921959867927714382150361501153963156154183603990092155775085945681443379000040315125555483814052563754701982953080785503564692510186206688250186711104012358066168358709737564257167631413473114502314471808952086028770361525919861313889005004059227376933398015869032229358195770091551308001467089548794196938404465018227924743108043907730237984596772142645734457364828570447816103170152439741893557672051400055171875797548263774792120602190712298302667694300339661027722717127525302302874599877456547577562290547469162464147367257574985676355759885450320396178351417322712861455880308911030933201297723556337689065150686955757208721042443671846942916633191330325000004318845108587166295031796262593721725428815782989933879254308005562286549951127187748976901631584813586766575486127626479198599359425206745211567197895605171516314207632565653568230645862407778364970054387963861649562721434637618778323465627953000307538347642054861608012110726167783637532371383500744935685911399921069155378829109488356038391795059577285364827946235501025090275707343903884382313257430159829142182121960272888848464764967635598331907271704960435963285570873218968396792036105916965861818253242154952210662024088900598022715179194678672460486083972248284750614716840695950412987709264537288687715865839744840610868193244456083638805534106110624893284493646179945058874166174180345088316357827744385179615006900269738065470945142880718027423527866335507822777075449212636712776755646031896501426372538410977638313114368301933398802670610460131837117204469560436896560773825188826078098503737695544853184692922140430580541421891805202987254534648972656848723512788749116373269842061516450756455493113576803905717741020855016201849805169736814462012054882690525770042860541362351336199919394745036847856316583398191924944298963838447245655845993380837889617502327336148211483148813643053550424223469680989464608950197086294878363473007442794624220460694635569144879637317810879118359087976657437367646426221808244317044555755169316733098387081098042073298819273149850031667549127982673107020148300382105292298033089015776815389936957806919030685494718199295736288013958955193119302287955307881117370245676976514256891413022447497913741857647073385133023323343805981418124036130242930047816620245618535218312077102879163393833223577321584168639133728181232768784991484063214706743919152220703490720807713415009143455805964457912171435244795540211598518206313183832551030300291144596372756524546781297255822241877704693437743842361466693995173805918172744903496643253072786322799901712148073312851597554820026065850475292762017941413024342972985257304624948245597606638278227148750769797845366917410495413544222479193217929147890585361531076902221332142452771193390802678065233156949693310967519177568675488580097804279102505310588209521434966060889241242189133705826987681725434447460233813328475852608887444795904576352229489518808205703332496488506933197957620910596234556940966286687793991759725639850530500839356095825306379657249023400384648466219793987039127967873852726220942185760838274922730980502416105359108650856417402827767731658113309263065593903856206501072441894175657996328860354429162161834165722477956893807447983054508568897154340613302797196440342783760480948309193378352576258578162004575017745738711922087076740544314261851392004867197946096596556334211374668660969473113169688208793706872046448968167852791996031182002759763088063101288354952881016525109967888126641806512925063994031158217964478128327623593159055008410807969294179136541104710129772106484695430623151324851361531298618185196252549672773831649322749257911537895941117374926555226264233519812544587143521816224676760029199885448252207879020915226156329009816448960892845210340187259068411333723376156555372044566888310268860153724736243986501119552142787492588952513916905751257663404234462255880772665681383995221847481842814233545805654755016219499364771921568658148606832694599410206081699297768931348809743060660477843941193448017664326316564933155797774491193623626855833005745547446422687866647085931161670590751029663248349600096088857250999728720496865327690945363777406031363643724574884093335613525232141131780724122790048870953854518181263621056663412329971194932016449342233026218607144460460277057251834043063775422606662108393489612451224653151059420130763947787855910754871335693833680214009172612355999773255226919788815617916120010532057727456800222591406848174322460819728866900360024051112283569885292030095113426243259441283300340549006694912922781436079970803719475455978389497433261868502939570618813625820813293332169206211298959011366462424789321898220446212292697313076884229560900037491406891723231007560387508465964508441079525915011300922367782135960802834856579340790242358821224420327635625238902677292311416716406880828391019576245765942399421233078472529656929918069770853394304520577212056478172898286999145735857223134577779403421137505263837086769494459026580609988492305561292781292972488982863469375275642008855862289100702947865993709832259910690023636444377260242333368494294864229862006852775094838609685407685473536082691678088531430025448902411503487367479234060250539707985100249341394783047561640468912325006834534754748167331933134796504100838766786972598928338150791821825518748535928281772604050832292263279485185433368869534672376256724628274388348031657929185627803726040448798202656937815559156398534447731707736212807434197125051693731579355410864540738286887552971899463457548479675048018780994568163267985016024776524495276753215722750568086366765269665068781507481965071347147667555541342134856126823562424142817715917353565756411229879847843952431671564198447939571977711137498709841153048773294744386494949279689815193679428927850980237605886771727433340085780910155997852793958780296143975457854048728849694241306007268702813979445870109460273985904823688948293643944204201882835296320235939459960325628905779397250547745962715842511294153450543660717168577312586242508735571093421082346762840967527785678203325401002360998345352662472310619963262945603926609809873329040863064816580428021621739748882220841424454201199148938421984349076004606827125023663313376112320753067293241641097874333949285300207686875676239286152158190457033104351803192084705821741964670351079544453175511347814711553631260355681310558834445654272275167188455849859223741541307793605511750033031177415384285287785336078616915408064422696657911635968484603858914175710731604399138563386335746463127223624634921469954898580406137444316614915423005679544714494005281559095302602762887479849962721273556176710347390891289886034958678645055963421146710370310139905834978679585061235449979046777719161647398011299044199810111443689053954231892597067675450707140656188791857159740955012311033805923238548716771960197243086816019462996272691951271165351177191439895004518767747885781530208764515584411097554481908901482738377688140769094970354425320064033890439284835473298170254007664998821323749174421680151867000612711119667183785825536750972549424181411935803207271436980798291188818566204482860138244220908794209458815288641470705492089700580220344865802751463463952214446515159636202495347256073968519902860084552626718298104375137220849233724294033321289528861456398425422583634594786360203991862222758961883780942467951460821573641526358473459797190041911268747005724501661226901729243017126813326626324551466592364627773012260930594428471637196395834743712823582307464547035211673029719395550416540023769904047805380509232216241773365011867358285074579608330533413971881564463720608089818034454495506333117701735169743032316369328632902470727539113353198081735840071061331978703223208572472715823617785607800381664245282016831035983978084125182459841851710470793562321731758139819479170771082129971703115543827636557311493160810961147626810918451942965198177822883241312854546227506251393557351158137870122955161881105155895101171553225216314018857605385056670204486591404584054511359573488155065058648374799951031033162733991277843611803789902044170141564798653785876196598532978214388593393893936238937500050890241830065930662274463841405785549249143161871652102568421211415053643495677256819829511165512900036828454269775719738892064447604011070414588437564403232687091796054045679264501830287097590604583996169968880527658573967677963522169338313464930788107348209130709069112069518840664788454216790807317168242820545019535938541152218049955858137783646437991021243127573854310894653026073574986962770603478059457243561140698379619780506884253501929640526374529187839258332550453666216570379302076682446493753656730881709240663032895124154697032568836385149321155445421715277371075854372209934666445128627492866170898766588607937266445392167523442140243920957575849105987990658294887049761404448627182640843309306645328749283924541409609414225146395944462666562549233550128022806830567421409942688782878934200210037812884930526820457026550381594394238316402666785605478303987228542160186389881335986698390688837355964322234980425873572017927192895292530547777211416994933976998195102902266711441107401497345813510223612827035357850098258208228478713388158158133971047823772108363582436008251158022034951133489100437942236206697043465323960304037631914910665440164424785466346204208094455613005509074327836481248820990747105681805350868062307984345178553798432337801265874368546051997240555533315851656135847083056752413934623547725931923403079940936242936231340774904611110226533527968215595761028682258884526497526084109858373484609333290943518617814355457296795648528797771428196176096559079311148477156961406372736910235900654709279412362395347846372813158869834998014495096801464080323066301613615735713070460961802356557397413177193956474592004792032604725195417480040448233395073916602792899964962024984647857004540782068212225827716042890609088829454066439254922251098217675096291072738397062359486991580352971850075673226759193467747679178585817863314106279478339764839439521472298729252745546570046126960408560406140032600834022879924042447823480624718128734092228212047683954937217267274464072599245227053830077785946045258742857076316399382406399327593786529976837593107266907472031993076330178888463607699785582912103464569781157981220593733845826404472794223861406394636079981508072162099197003000234967897942117878638639352393772656726416472328127498785720831100111802534596608783571165244495152480249920047592963744411649782701853145219088661702548593397869014113129326844272189366263502717510918109635751461842499123347201917248992668178963588644579551903636791276369075349658598181171897442033957023496263294145965852930164937538051635115393017035499745864701429779173309404871875525344934644573777920880861272186753099488497848556894078371136547611379062673154909359264932521157442406466866037875893025627845232799695987103617301114813242517568812865372233745784027408779687532327851545584339091843128231208602254321150911380316295895291288744478556543772672120107665511559058465999651669187572895070522159835074936656248782181263921984315225781635961749172737064980624942941226608299690066114990201460511754564728329630477590833758588527819741934452294792308405474369082150148990022912212876281381344420878328151581762862912836173314703471729594356041342699988836585863639689282183506634226531883269137384359933977097493077141024631567385703212449061225050631988164004498072081228703002991364467870043013200480301152892783062077732441485578413289249403072796598476433762058450305969092356971570980819291540917980711906003429240914607306511207201606195059735791040250639106094180813005577084811163303471875611857461544401133108763724149800285651300619914701235363957506311821783699750752620082039259470688042967232719025818435901352530865750895195649195347634023456547615159069258913670698859874076475814833848581078364819675338682048015007949929495182342746399694323780715266926489225029098872331688450911920898994238968980428101422563140313500336203155451725875348782582491536416218329071350911739616135471762108575397712541032036020796548460738566996825041581232395498710736689923603122269109537961879455452183054681360256112300607922045520992724428268156968166795383464743357194575297562699679912701695753653451288443981253503839242536812813075551020207577799056760745403680667403158926788125790487443371403653258031829046611643170998681887683364253972667639138546123031565718925222581736142325852669554134049951091624979761916419316273906297194155325236969933226034621571522365470541219545437302902464585759603333276135396585023392954654894670258793140348346091414697426570767212850737561450125169718334710769313280746243156450166208768199773280253382247557774458493481612159715426235001976567450918106027233390528896269630855186671486741254993485944120711668813416878480482224656983293048194636929998362916797900845372982522564491053875510680014005834674160028296242963058612341083027165331384940454572464631622746939893800450214268438689293498101660174275218441645945597070248542568005785097478474808883268230302247666584057085241738191041478442559588622586741368834673996472370603572017505383021625941920220708888992915748917426521730827171551421724252419071265478581963619896844226718851137487266255661914149892643215020125697202562188849575646430794254559817463738985680506675606912175711669339813270062935358163930501791929362971619677370147837320577275735874228820436553034245859483318142124239048909031494873581926733896339298772515223023796225974229359487028142960875880404756133700622439138755064828875223418749811624214991929252906450858444015277513266655425644544413926271727123206109344924809669181531710650162826315393085170432608005499823121911127705656895425531800716517050803599952785685768741594683896250372092927558657777994347138330511041315007205649549248009346825599503909577744106479973661116266147297635813892534286933430640954190793996915167815745553722275992814832579227628605921912083845103337116770583098727754851133864355151403273957415406826491593418076696756908608422885680473450338103273929387843251604897561378247106565131417548407927937039923659291794482653466295043955845396762895107816272888842058773369156909321242449315030967171187140058306071472401785624784927561195397838790741327190928399396445591354902978342660341403098791622882614902715378514003147130521306543331362925354870833255766226143227988436445767491478468936691558779541811751889005578738908966468650146128985826955599275183467409821988996160484928343696311719337815087363803574225855823689363751007232941926430737213538944133948814162430308352014365070299928805295811352884290676153359958446184208167217029813994884290813547619675386284144518647316786239392765949939255889535728181758499678301979644758356652565010917828444942390233937143559011027273194278752742211988045477404524591714731877838730906512196764191018235914561022758760654149080087862799421096207481708083554122855870528565669019420127289239766743509149935555260510239164149500594688612564057418605531660666149535485206842370804423666782918527818230690761116637074289622139821843056471589793473095952172269481477963986069791566439344968156702645754575722475202375003923625359684384684685480337063816314468999275386500409345605015619396568187494601916707283178759393550096445752221338051276048549859380096939730717520883851953736235108838869822248214848926494911910111208262959923527696855415022162385766706464843294175938926141497331695956480423589228515329360101990889115343106854099562231355006924311162699441997278960900405483088942517958729466841010424375852249647345867577464870342905255053503575328044923717017635293789778595530285550671726509690140097895693681220229428319207321736642926797474454898745564886512877506142445327957485725718811705292539272782126667332937500572941974120861653254481347750966805239988379335731581923869239666925542434709377930123721046605519959799673015602546979829780891937703734468125117610366440029589143877098710205298091869169903599220848130119697084166536175135554238164421624282899929989555018405911993795557968621322316166904378513373801922095684479051010018226363211037532342603544668829734979115193570366926933370695825434482865842537716395762164892292486493869386354097054443364775002918228504254470714686056283294338220996573237917089974437610180432565610619796816882318684805223595463868480684574281231203402279912211170129826651116168592291247443754316663593132431349048123358116821395134494977801898369459409571342574695108292242663244294733696986657300161997560851064517948638519944599242163477849176322050243312455288653013590750374307274238761627225408183329035537316282728781524012481210507054098164249772041332219690682458027464960056300703449502454504539706093339361666620879502270925572911728349597639775744666594912442349403991385342947604238301419965948289364176508966987260417151674672828156495907753782379389487915786221848376839530796310669491967091579527063579910591229105638375721828573073282240728194423651839896308755806409019219274209709679583937571301729774827214711754129286392846670282320024344403927617568258955507115515913551688426273287189601199540072097677895000386798443762319241187936549250661500887898984198365848766389257788333314103394477910184973475853155844681105789930452607609116644354733460847684772229080239311837689977197848177899256365105542432587412913396174221932673983651822771320717667252054292340792259208730614409733918187143996664537181332420565040101706285304135770309353910306971437857204543413239656855989760563234275860972919768588922003466569859749311195441049633467481293835936201404176361683866378646044353654027438213847954178631540769904711152974679472606921120997154097400413831557577555598071384794575678499334559925544192214800795332249722167148195594883461385171899398224542832939871264385035800991535213050794663095551650111586308748306355645312792937793758221219763313807976777074196104014560045473240042077448916954423729697670682196358405760370390625454487344525225426812511286100865190671590638646048400006800758379858839025450623012087447318356761462898903432507569219876741121391121301905907602079478248894584393060337129382035720512356410971257027887578136741533767387659645936646498271148456582591376796525643448579838404861915724449924437661764183919711575168679333682350030843967683485508868256466731795192846769517742117269251680703557326315868567116604633861438421858752611140757317623907258745893375841525569329535945183114471906570651190402136568887961855241679557467625994286837096080786411736231227132313218625665461800861248157084805061222692594181508372506959424989568414967937191571714145619477915615028657129696642728920016321675691053536367636733498859409869882242770313991654775067153355098956311223045633010189013708288589831407285451048199934024288746843602392207268204139334230380399422560506785083589423655480952460161415769598470386446351014191966167067886267127714703007308808285387715217366381245794328930423830951817330330897330931757935009407445272299973632155646798736117512165012073957153995919245173511067082645559770309775367784529473346088517389851719710668601353340117431728585343018244551688163261509111365033448155170022590943537661667882514924983631698695178205562176906403013140950343431349931141097593413523646764277106890271213483111534056474417271825307640862238341969336545871919591662511813837460246254005848758183832541094298188005236452064873908072554886805432052639934630095316417278778267411800415477940171425491834606415911744838569410655698758682687655165740020086759770376018502063400225080756107968035331862168044978214266204035707518007389218748900625701636976113622575479348440971863601601251008927373791322855662809947676041014251902759312134364461325747794921270526489158102065440708238687133431738126785540233176061107396778283467562800275014564030135413329564751611825162475591473642754885090115796487731823846589688676195608741744367881349081428741281946418167475824912970372472160760968986441697860085939365675316211864164828286448678344719281151592115988151505047225302034704463818574873963217658993371223188192964070064529436008923323737447003705846483022096849473749262456973913898505652257596705156603014415792293024476593406691759092778920282097728854952862914700023914921886256668236011921907838558902799078308974521376125716669607146840082478531423873420049945562565862991469977742085753190849799643219639794008907237446645312874686395419307016434846672078656953085108153982721134113265068284185002198528946750014012086066922725251444953354583531101451671206678668987806773981084913264299169462514237897556999554357140234704591971764033947077420717092525291551203470722169308637091438303122604445720723115187370650164921510827071082697004092296630954168786139933261254634840291721761041729572403931698098245602552370129953384479192895441126631360238051820440210778983187036974814266790592960647962691809044363844733858318111950142023670655468702095465748495554675872661321851278850543116331492384985993282778851289935445034207090501427909380739727135864400297876459427517133591101940668390448750330104698027986460296406747661129956255046731707714817672409045045324233830037425199793778144968808040498521005654121485901773278486158987122030020280772651351293601948166737208140607728685947720408149785776293282395880012254997663158772986290735049594825070445309715740654946859173220776807367073981812005682946254118880597769682052312156777785109795228063846555163192609417227754090839428001001182770808731344797011189967016514938767175641103399946704189261272536603629882326048594775175050993255220573794689417796493382140449543263397004919192694303983902525437129768411957033271989275129537647391941484943674711013530668475724113385943826439767682567249081702218144056054156221178280215781727459371608510205983819324470516655748521895163786958114518206295616247954394243758832778521991265374306075639646839460291352859718618442229450959899882975392893749483139125430667771566595486306693424597586441594609140916780145739135155893775962082383422343742550485267344920664708772478566636517465126206016218302455516468232340484905707395390191163750574393470916766432164385748961083876378987421320319842516017856837049820809967161589306678205500692731639731256534323255480770400310779067716979565873689870608661756436974982577532365272036750132247579221180412341979206918425061261146038473625923051092807065253022438028887700114267651729996817965346921641806513282064537979274532447465922620607423435439379735539475553061879848402641485128168828900308363765673634149302468327191877434591720933050954887860016111863387639820151589885586792111558430435383337331990953586116921009639920788474270016234647783623496763263487854079187072804747690968313335860548955550300564623287925855815170291217977287004124030660962664747497461881158802307197253961791380887549464120730453540966245857547025036269165459524121285821107766772437853986540480168848149731049993993893406927362211576777611834811917271979507224653495437422489075390463899102532967046357082222989530275460734690601319943583481143265647812802985082882060321949098500864884067927082980320265863972233443438383608566247780808840090332785990756555939900928199321358846356975192419126675675929268270059238430358028917529420366535892270385307962777842885539210338756390185836685230649366283608311177569847383925664069018217940850412382963275294936829554959386515826768684710712260830550380158547775270799873303251665297608658573297775148001789503613778142886980730336142803951743010205522472509087710377329650978239921877360303037266855219229202956559220543041062456097438948374620503105805951948229628372815212843429838177919991768518506438809940817867319972395234429391529599949474910964675635134598469467422741557155371594951091070027258754587717591201109149232457912065646068070981561129182797512044891250011114436645315571418659962214429442008491966471623092475342708625680985245184674854914254334308405719540597008191761529156084094046545943670896139193026089551965745597970192690801445196923678156297464360992771787312603716828906162562875774603091444027278959551242089422401791984209011029891659565323151448341941364607840320805084169537855880233983668419495056997699175755622423271690005184435780027957120373218463554974614829344080281142805287288035087914164994886943019131187658605537321354257048311605744528525493290072031588714968357522077162832571371068456003740757389956813412415372691806886404885910823458637290866566154709378080900647260494197004195467862173725602350920062546112306923688679848563103567694610963373346847810797656734534808417494287143027095336694269509448978048067698803115959140605890649575393182686238748554361533885910399987149636495052324431004063736822859682492999147189929524366152435083184243490561698552260055171692953037322425933548573151151779460142660313609212059863394252784732567207796314272108802273736848809163799752512726711316772248799401289498861955647532911837346990731242058892789934888248245302733979397589462035234135051755148121749725032463911905543035814490968517590071612537346282937514529201903897180331225455086902315857060919621264232942670240464809956179388784051230006384806553609539192505218564181029798945859292295649450567878024666219258122417978219785966704979421567894003354025652392862802926608410582812430262272564373343534572807482810262123267271709548657800038066890335079336353631955968023343431140334141497641515738619413394375498213976348286928925057715177035396909636911852595946599958570645993931001536579223676567067661831459907529718191351554005103366979881941689452090184102811309547799459319923364321180683013845905917169309217699405983497577364389730959316482186858440415480528701169968041827080427040140255028519871220207764914831038400263111317505333942598012500663129862041232256016213004857439770666226106769822522841580716121276468046509652320562398928024287092149901101708852013582773907387549461375037887413432679997014679687129359531368387226924976153314042099731602996663694028109641703720258916315045991986044167932296505538486296442501661252915037315718554334439162253597005951347388590993271981891231774410370610006808670340063422416152256083416938830880909267856489489595690599624653731173095160540034646342601788744281334511477383964050693153967787904569345796715291596768542524499980041355996449475386223447095296858803699955620159166001741999461955611100954910570223935122180431821927322759843872383517600777654914094451407924039431934385816698738799123353617544910858244396518949500934462009699442998225457643444088977744504139593724524149934355709568108313489541551253248192332363315279932934830710086987267349514305779763557572792456163899868375974222208483221468660078779699010017374397742545640814151362994922850179131318333825407236978815412703758137887874051709880054263022208022761736487054339088711580107467256432835975287957318516292479021960076330201204120060811146269739924456091748830813505793548502821414661047696085746559098470625257217882493309145199027550028233315144960805742771834913743968480182370995821704887443129431924233469172385955958242102846670749148938174396355036036986753211150847774915198704449732542047618118764094802952674332197331935100002969011337785801747950834987053315445233903129966962884465524402646055243429513953657883096795699114717765777828629456395619573051902503310925968498360028429722103754461207558123524959160845171833163960577032057131014917408142049193975702861345903204115927027478677645197220364168169020598095477144219527459704455716926826229208004407538553384838551319323483689177541527064377688157540184452042479934544767188352423142450088795427216865262170934868151857461983720372577446539600096218295884133924424722275550576287802802861158065709384704521289977296234153841353089131034431511170346020733061820344487682965982690075890223861498446685498636189000709591097466257270480849032950231532714957363200594944957597109068441621562631214300228415457884137816379982019327223183631062790857264781284497058898654792855822941996078434173255686445139361154122800150065658212207356526361362373156096705218741497281670811069808877388264638952325435462742010892852048219249635681866431629529249224692996205531433656392194952936033118436759776757092233503530370604583131324813669230970837349146233766232528566684669578633722249330157816935363385054669130295399669476052351422652332224456524211533333567663108669435161949796514316744544478366284641366684986011412930597742321510355368851291470609868725442005815570951806841894516116151727714402402263144317355709942567847283884885114275139148160163058251091151042649479306348522958201569424880399894448052775681285572108684292817357510687180135293096646635949690960560618803209305429557477961414403471377744349688519076639540186601098893211387451327690783308592029901907347114358429367045324418174093333652257866942532927779881450288939961614249591237831442766396316004123892320661052473065546489796483085006973783774155514030927017492147355132818649397396381408625389053654007089935538211442648760918494488459974996596725496593338807249343346693749123184548330225262872355268011021421334907891572358981572358133875071656222788204632931692093756212622022092611478286895582664627094275357150749232702488880007575354446990328658455649874852482766791308708996926832042438361445166867917100821964719809393291199733867573436674691457135393091778602238558745694245799497291677447060565671848093242338447197833852839792081266028940182023251370912843301642619497917006921096204744262355784633235290640353748220045467305197239132262560864137778067301233077954863868896299124249239677984078041826733967130590277897520194078469432037630983286840272650713666978398054371981162234220735769541320772674618686209944907871773156432526219048817746251791734320097161331540094407146117718401067218219223114514764568153051378308709487286732771939436211716331939115692202139002901360596205693602332116654635428214288747530017763257735931364101624801854189643349281757914057296372602798943875869199020689311058488323262290619723552217307251058727299562761943417189068032959551194396368661958909353409856269310187853859615533104647766537340560086324727441481085126259187839946816766959565693711810441070388166850108084672783427848288258731290841015055350012907374484718247084361373748283259953406184763117909951877787084234163990327331889543363702039865095357227367810545717239047877492215617171609762393314135308118681550477723759344568143821964132037538567741930927566906705530620596913947458401649835791164059667653125544245585881513259159081284570280991272311775323488160603459803934212765269652508136602608901902700400325298329490727853904984182585996245960380061736847409011135593256641910129888544917293927617826730201644102796714252694621199005847439199082828916599008917677009351264876725311288990887496228999223525148860630434307086011355975713423500038539118977034113177796355547927476741920792641135147263662033631777353235975774442598110511919850217686701306900666675489006150611243147451515876261721421956886611071468884181055829565530777051443776373955763494110924743150386594685365405521081354163561217072914154704518314948957425644081071900201593480300043334162074312761793216024054436456430448127130022881655973222848553592242313024694072052110442441855608091291534000623739690074520016158588183591481204493530246234446898399554580670581442745779430888966420759537605966320926405110739843672483466184183415288464431310003880950422308405941194644969429093566709605887902880139030450558247242751564289584275637737256090423260633135327460220988774776290526936781946783930528768296514878037895772899443811192237302883423441067557917561405767395830453929421923329870902099996739784762044028082017557490828728796299746762044606651903570453285418265393102269118666365347995458805654369131251328650257033075909622702016113025471883994094926389858867298903673796135120637547735614006742102995030707002392428695025217874593874834519161950641873303524661953671791836250661239312721175006072134174479391350930109607964930563352981864955887620239371208411676179859462069218979207147905881545301045826872221000067068498750186647655820267849921475403966812531512572732377091397381896725124061774474016726684808753433896298195851856488878446368818372023140094797046076083107113276176918317959451814889062254954353693442627112881993537376864385076572703574159991433029623673826391138032678976078335111855915881616078976055108737374161492449336307780278739329466807365361790593275888111868415377269078834871365465635747867228738519159274191997925621716063943420920174071283738600095328689767216962202503426767062712525290370619069071085782580039101452276815599452868572545485094954610180928056016523423524843793900180861969690059833119956653171256849527450982050104081258509286191464028872690852734230080212785479989143631255191450870107562519236229431596023179204582434780821230855523400594996137729161674322441597925082026438554400652909177190331232128073946195304913344260611080354235638176162241876036751744233413100615697919019851290432538497104187300900776257230127963967336283993724015356218796971064691659616959289336862264836342770881353015651018116285863078704907790790731776674997442727807798022399386889069843963915621699668254702353008340777497378610870856206408346981928128351001530023188483384714320703708475358059608069644564984221082635576049434611073726125401391509280382091294022842095218811845959647168541466823311173441141607324095253133682281005216138411021727597513976105905812988071145352780663459843344739973987320471752458283257096764248333704814399675499651554240927953076637296471503515321047257243164177698820464589107025942858066903225482033427245208070364110377587057609015931985339701394860401138529961287342418795994557242500840916609355516501633697900692048042264908867896568154684904573538802067193969741067121880507252230513353995959817759592670497315514641164819993796092642999646556646876695198310278699512675106286353302967404581682173594515198999438542245606391697684149080122842896407550277315182831469650125957373553884396730579681347287602476864212627426227072321025906637265153710114752069660791696327614933814100555077298751459359186804041743669168683926946704658583237620693956983164822727779174675274373748835314152342991563894272415203517538322213210415311857121762223236093959715335377950385400660243105678656381399602883092096155233524082353471733108939063696150561525269508545162572945516094791047860810523236974559128390952981867849588009580058856690313299407283743668137627306304520558394343552347288584508657661015679726005325654803085264109367510413543457895471516620012478292275205783044785097614658845611753394982532035483283647798070306606768095330070776160389450880859088199369239647437088962704005494355432702425704355430133607501618832412353609880217188539010627689907440997947356575219361820052089115429972540687313749015426295781474517960571380006994148194128584627584376170641376599087967924795181552994170889812543873349904208481694410385764417530294211642316837777325889884153678613928644987396692832061122087449973995164454045548956981323898454954236330912018953654149322710343399952526943320435384077636246954317876127850174875905311111737616520647559468808940659440832256341013724342220715208349822444883028234218217193697102169122624013386889435392408437712863339587603699602573348679181248615679088918409528446224376742383628678989220525090648815727662008101437461459921156400790924918141008368716182583965424582277648615457805737272533819626066943427439846102683372633790380399187296678431988727161170246656272359986893872360334021997977274751099058292055140541057919466668067295503770413494585764532304245074981957417120155360265467557153410807175097765522480149605421604555472806420256552075973214071559788458252652995422225203512383234510290620344239625304524706560777231961603229056872409935521121560511249474490405179322486969665007798388420485119986167898192125258532081137345363415525921724541656223042407539325127470939824872442015024013671969521125095384563600242781309284164574553122461772399643275281040602303199582756912944541601896388463087455296084329680424984586601280753351305900150873528514592555270786254128473544960353400452872981313473245691582768909565603819024615636084555222345672484105016975434740657292643126601647504462383271008868053777376215182697587340644892264168092697950628703865834499654922751343673366131956864761003266662186445742492533717115674281175939959056753157123000855206412340460961593117186807102612327861953064068415956898274042706726939255427708373625041909290776058751648605335114838205387608371879714139399523086595728111696314396217739202771453397680978106026764301408429134054858438203732361329169582238076575566711027029662763328024973149566030580087359019986486031838442270588902483935361895644977262605238382874213608236772017755182681255521859846867824947429960402087395641517263365640655676643341880900406943222712928475320433862832412059420054289587212300295411540662187917329045390478081647564293113372849219736548701476092906357177145165397247412094893397705416537690197826021633918551201625431240477939841429082325997422796018780579791108863657968142250131490473981904645319070055697155632392057103516669869509691485329575700417030640007048413067185984042861097317279491509229491781834674858794374984797076051671887121768607019750627983302636486703526709454739326521680038005296415586949701649725504646086451606252189162951247325123505649687844469572149449093318963207917797533002552649384842170228529847928927054577610561295093253046017459741788929467280096280452218135054014779460465705291460504661837658720026760462567211106175765187538849246718631890003579179452200507196939962608968605241998227105378568539252817585805891647748945930877010544656458518878447426657431369761066751545392927023674803638586450142783748980889125807680618620207353866988234483104617907252733101403325400462168850291794685337517954455885248845904630056662794635390397695875567999811989456982221621289485954362232580031430205718586427138956529079666619100410946591959053792824097018539082574492806495117402652158578899368962104072976604428352922020824440174728450574866774197361570982640785558802283162189907757175205191689641424876244309247266619564326819674447719639285301980774392770365992756870134126796885769432632356778264553272579190476188778871924885328632637054314246762148934772951163190246278591748343781249377475816896894654903587722721223178759711052863933490429832971944639000251964211504733200859439278305031876715146877586344798070654682232663188816684902498347115050330254407568056684433871653136732977107451776155525098318923620870378447224644513418329995602727023449612766783939737076220445630947405159034203213124884891050539242436791267729005793712219147358983285874861215416910787900491379387286433604705217047371313648694577601155645501121773985494615632368404288654780901247921749389382805314730052052263946973251200178379049653718249074817352762860195772739041274102829645096071515346022335271286007509812050549625632188941929124309788936791196523143630604020035892011865174670799398132500979349191870279679938232750752348291774758840575305364807403403362881005453054086430406668384139487905824260787017952960467071397249999944210717515775667914577823470156127053616313064746204140649420028598289453419423636409975622398887556761304735067989727263018216897582976660266848875950168737483653467855153389818227903979258418084700736358068629075423874014114884948701617333562202149344774035907172515167772731339505978743928669843281167666559134832513389671560054026990813558236020684124083800565831054416387479186102616220257251965934932980215625694247399608573605785240216834549128210997554425718786805590035325001451973102412415369713281265013984821101857724607035158502595150399465091307920169206742302262092626821667330526050607898674040104374333169716218519157301756327991056043939210171215679666093946373568088330147532772872115545606814134578161367514356335089478096612660140391565393067182703400404293797186476807767816685287130499516857391165648679948716074480859421517018384820559528394830446989603916834796131435864511885006897085502806715831069958579579145565221867883784396225161597595314537768383531061832729892563226367306513944607049385650256176459418042397663261436698807115244498597815288858519698388250099269944374538931466620571177969192649436623422321011750894071888742507414594927441279729760818840358959691683144538753246244730721453645421278915714405173386911384754256271344324315952270891062251214644962951207398932329024091299271794571997288356820902825996230173967260233148863049234947073426701563667343942205830053608728696025322219868969641316867670078842619783151983307269462845341413968599010731197477021252964581977669381868252669308725492216279785393038146226117497533367549457267893639800607451658449698680245312067556411749960757447997650845513401513729682568298238720581980821721458817000212577896430283341854799786239837053444436128468054340329826906026928246142309088609613751282803596780782955915760608886877552002954234748724800331935287636063974346969335709392486550876868708256261899113004466420824883975836352969969406371807341370617176339763144900809562430047529255872925554930948927866079742290096702641708463698687008112682783887067194334215546619132143644137085276322761779864197664825875531636005789499282648047805962949116625534371771020146772675214323445536069999197394714273713720119584676924918482078287220734362714092347788170301215700775166315139935601418415146306809674336219890294417521149579625662701241566404482295782592518612179857322731981897063661760671279400824608962750273460356665676309474393420007526809727201304827856076641770067105365330844848044717997289158676973118453228150285871390636810543702625538827792730490898934671267092574874970269276480948566008445935521635615778671171329119131928670508824598828251599488741227840858394564756838474218450463435981995856306764321615600557720274525929737960053687979804223787277967440770760889920256659718721322883355984032514063980370645515662472029057965150108337466737185272449768665378787071082699979849984257664682661355215466568095436505349836004982532280733664702549521519291772280277987398174279481960094758916981187026765490615821771538882428036294058317090511949315224398181325327942319542186750769187637468519781863655224721157002969964239139656929413544762317560280710488855405398897314735491322059188136486650945166613292275500183833584400196228746209202197865235251011009432470072122650298417796719873242632087909152647146901463086956618597628775350773275632547338014574643134720874633410804648891970437020336779366681994957653934069498616917019931268299519309345370579457936491248147229969294753409483110727270066859425743164110226545186373272342562969328787375839420062265807082414777253979057147506831089714317106040452452249140688609814669938504713666709365357110977120765354395667743894463930036078847142031563761374904996670460122850209017778507292280045274455382174624758247180629789171933895201134489221588037208310299261136776141037439493128694263944658820530156602090967500388005455687069698151302388719223765068446652862942651739787007128745421113783487916177746092453819056769020085490114613635583952071649740922405339307598705914889175709664822135631005817767087090521354489081292757468600450896267833545693625699547377009474999493230758698967626754630867418672067726829874182267071963579318023836138987578190781056204535040223500178403955717909131541724652181340068961320186932789503462473344636094700865305636831306748916725502136888235407848607050561331814233336685936134385892000573553665189927261780932783927942412688949300782915189418814638058061166885248735488581820406465707456131193143238161002498424791874380942920976361137401223906940426321185664440952878226276280332728888646413709936875539496009305591876550530162915721317623705309491087174055397227053352127001247105749718974406924742335016750213220920855232496826310207678573458925080181489230301178178088828226414330386481065266414591899448318896796471474115014004248391792581922657996935631888352591182787456876976999524126043656521887731884893370471816481988170984140154912082234112462834512336656446431111956816626344178197650042275585371913521069622004574587789995207162811253982920547079407501502565894198834219731163639186133007533979206242218939676314235991196188994674107580937490101181345282805974986431292705961284757756873326855242514549338988898832273441199077641257583055942567067264574703499795624589301536463247434674542249603726902327297825276857210538152536845455572818344042303745692310407886429839952646829373607971689859544092158258926233355659136473566983774768093678907132566934241541662519228315719045470743811205743287581160214722761531630097518372956980052868089193592436270532377859999091077065463217459612967208572692479753765618882020487106968826707206073848581116626630677470171943836598978684432218896817756952985362004963418384872288591996690877841257592819211347529703101060102687602561196658588421915124411668747746356069060198153994501205239081134196308571192193696237117357107726639516469695561799498461677688479656788969024327366243429008185931162744740016871639705628260645431765284019954824513157468705316903015555067417491875345806474520289441092410589074403566531053765901411345874873830316087323678857091392705774850603826589939209196822951705681862902823644767674842111826643880487217737618169316950639646232324447854521072777884855131800064126448325654844180824291048846571339406508857949582025984882672506003048675890950473381623482786729402245700882415255738701972630866217100895789302549482649516697116629730557664382456172696888253298780323874816337228356114732502110224129759860022664345332547052525642089029191771675756573918803608935312426937444080423685170924729590808440043777125592910978561304835058927233329434055918689711405057291137392645744396571607601010190550446553712452113198078523447756753007842643389734096099198803453588388755414679131830053642670299256011887732190519126534996711073983096212177221822255380982737552014959813662470000757101108146224028992703317169396344114514915491665286325439435031425130431651213055952941850716637482670223007464499961344682744759190749721312838881287954132770704427078522083190229432826033505507844839264414082882419561560376246721812728677244291909942328172064429890992373971240285883481138285770628207506162364115292106270673986306429094143745507348307485111286700154865921190351948084439318030756459122606168633583313430182858857816394453855768381602361449003829701883265822575605654453909489770950507200505193021327931181834872400243894852717255869763030465689330630067152054455005034652415832847277353074233526893095681805589526926399413394011807169184556083611854420486441236350646002797279651631463619632464387521926536133566107204698253361124088476682956627153992033932747838529592514259883727505071831710751384427034113971741509524986111119695650578448286727994801856411671437163480577784476843582994134199388079280816243907406271955352184778223788896932178406192354509912769316233900544052165890372214787352322500626216030878209547418485526691461998458848076289910413514538940768018314276462135030585735654129382474461468468942954086851909846321397306828347651828801185868639571782633700841610836544372805801594439124889133625281288154417955650216544542648956819124492765444868098065118762035674158224253645452099198490589631763976320318625877535371011692359973966467872060909781238996630562440488750754471270098109551915290079202188696954972947129515486267521487695327992855506990153270243553788042932812839672711141441830915233860963137053988755895866713770812604939575454100433978605163082570887669380936006849588098463480189580612580705172591863630879643381035914278941254538439966381027622651713844419149093841022400451414473916337395732454186387586730693939208459643113414257085331335311372954751491820835169130671843976340960015646699396250837042195023925171261400386087265537832223696036267181149299367218299070010540502406541614978260706195273664147876046918400001451932120342408286803353152719523651224141596698832656636977403728236140671339163010157029562686294016998386628897685544899036502042675814648822279797901184039737857057064449995666074660034757706601113638118787519162987866357594563523137032043931493716998755906560500126195127258808244998968328867344261040439165023883557516810967898079413727750571689993182954990852518676353060505288691034436035007479149366532623400042196690103564073823513545933367770341463239879775948490961670110869957608605807312475811157571104328949587918149083594211955090344726395539761725273382990062423983676620514556242265342185634822259023413051702463714937041932942507914992983048160021235855057181047151486804039171090777645639532334630301431639114968658531546277641140901650466754328118407040692365122397324073715348970846488198045714876422817742848976749688023711715103666654094290471252975864861897443179086892468632516867896589039812826724559996162811661654523923212115071004695401282545518501478516098759757449755451941042954634075543751512127504010656103814110421961884225067866380756252072030919283428419764149062133559155337375058425449653468272267773341898304731391578788887135265292390772592507657480030343334562958898959361429846850721708374267963932015975697227244583468222304552563013174166955306759766976381234361889389818257940144818473539659708677540549642522407259470007256548265717533931929028105936676768774799539363687716689918363535671286405251540462341988163684919891124148016236790906465628122349685365868988874934497342116712846218966697899836439209599581703694931599639947900114063057873421237442047333750361805496723468262569662470452970331034954666773428834840618782331060909717398806321208601681319211872963417904402799796277395470793750383393704246726190170539660145286133624040765264500007020908268779893736748997512564312590599019791156054259746636266595826192413004292803735830908366692103513469305915834894297421229411582503246511715008311345656644307684117869796963019904350769725133681111434375144663511163820650939910401009519468469251901241851467304362155432389419925501362058195676096497887374556789859425235278901837703496772140282190926468865753362262169764486232110664191221132407138337397198388455679069313981881173296145832424980426877004105367000236107160090779775221987871971754584069495422604546287937762189294121209028959106466418942848032166421682090692211790771076112394864975173376676955478291013266988643843514742774401380196139539767336768084264297743732212369017643834731256777099373952828214232870786536287320803992177809386215677910173745428113501852354998647631365287432849788689404439848563251038140884667799481911975136149563354392468379485001557101298849853825176788234489691701791255278269757791351131972945786791751912073922470457264462738394378792227960227117176151653976721221836609904831529354661337744344785552671190302370429139932969567255824563592670148873912328207357663523356572053972376698131100323688371655768964360667616549662466787527180280526504329791570558613442361971720570395991833985625483434868819872143944432656607529915501520879264736461732654838364507625376954917735291603560979385076124822840600551413716178651132809618677222835502651734751003761276678038090722069730715859789492733107046472109788922404075370767493633376158022298877458512213753046524360727746267533348777688730121299850803894456479615524383554519664594427746297177833875362163155148047703010000704699863739710023632550024395491024153268195984594992278838867234597099399257807031373463023856122405974636182692561302129903336682168656316126466295416716447534686179640860833436104124254060750105402987246312099288558731561220839294771990451108027016857132205173378891994108617553360779257622216665277392008902578374098360313287655625309550869929758551608150176073344588597757239740280376948857882242058191879354967709147305286546627440410457791238498627384970076675961747742944537146807750854619350996919607337316649878966999617438557892161626207355805778267150871513307922838541199156324120605052816593487498468126054821200168297592523768765465729421609316651228150724220312584779804937899662658327561318278820904115889864304975736090583622186265379777051338189878268477183724802595374260686466358187737328256361695884558771169274374436096717632318756524028527790182312291485281184888746528338658938428171539405869226246821927595875809197566068652543560149141521632866858755274708785791101118537783629823968432959784128739927499582754372441376054078906072817750133259383952186004488330037287928915475909574675186187189741492432079383433678546249579598263239892211324905673880841172763179393395542413211468961762621176330065383584078601845258889122400789465319113175580349772984505838126853730197925756475308552895292369152220267009346129664868467336680965340497586840130889294627774690870008544578632985002850648344859905744364653437745890618950185132156234213385411407432941135482352801497030940428649677906189207924937673443868777578931648476324482099645044858871782376808865954070252779944748204160692012626213202991721318823315924463153010630258344499783241740835777240773794840570180442107876060924667112538591242627851516221891961661252174460166965364941519176808393210365203836146025273625998338853838825167216601063206186573569047442914673663847813199308215296597946388719478789341834122938889851025507445739992782728882751556964000652294806657916294794030774803540954078390984753765157373058084946359639597868394427319517620269498602049839926933028542161035238999534707082151369372998167055438385193227878026834707654588500551218026431036822093181855891740241167554229176022793555946973726585160051599424444770610836217896917888000546674285697449413566863424545733465780299024583022662367146811982814138028668999939536616354914023733842126702828687424744481776065460069316595941397344378588088293457668423592135440168708715739837769890534289799244026147953570190706097740337227646587254040055853474301610602237082767146266895120724424947475156529352352122752319430718113393211395581696689208450246051014231809743014604400780508030481954544238304745372777337433399891314462853501171467063762174970395510683259670723211874775919703606826081745282036216210986079941179047908683333209474646831426419252644047620024900763204511912420625647716638049962774898733992581242677077634804810163091218854810791135275995152298102015127988945394435715545736581030475197578210931991634124639020071556984548956747902705865397593553437549091776272106282672177500677056982157322710386890871829371366263372929705138402471627238529156817846587452627537849799262493764756904646133460879529599326442824674885550704806135826086923985952477202476373882074243435013401112839063650841577609197865723579369009911103609431561255297376289152828740819209221690160369039573423980424005496277794621726927653603973711281554807455199768167672548906538890159759957208668921017764399094628297043859372376070882888571130992198508705269940543309896507300684304350374177217050151559467654681558461502282830121016409007034330038601421336220540324875103811532115697224748716020985279422685217725140611333547544435742984942735015518012891105255496958594843703625384817902211879597213645042107217207932887324755582226819090974314713657878368123910659372534250948025640282972501758300601562892755394386619965741228574872822755346515078353455724537591525590988967458706149706553571354240578747744207474721696522660743560476268637922374872849287707037288928915892161795130912400957223901990714454035791705138418762304004057244128187991267860891209969751763374771063548243002212508985226296778300284843484701360020117551051097640766823107726646411046411855754204588798952606058929868910229737329638860876704668691399345135480256831910411212991928767230834947877965167166854522763620025692072549197660120564314810630101338294643407307455698263950792326619118498442630180881341485004418106475904366395319904303803797445938769505485142030105664395488494867726606486795587079849286691723925418312582647837823933076649690544944063396522140411665177075648779967421316776902022156267408414893165078251946845924746631769580180890052624838820276745324838306796897542110243336113876782281082801328524082316260203869956083261599692612879753732032596228136741389552495258600468433295516752843150945091809701189027855317353305971250925655533878578692831189679221851445437920490703316418122308295484454107821837754738614584853985308436971899765844831576481766552388159322563769745935180779306234830284127979568525981281587337423090461680795067619317175206861029996808924038142739111797997628630147977607336392160546372874799487706145852337899508128530800222404887765958378407594384146406134343313847406635204586617696936540380241082576393163551492825842372005247688539808171568081923223454523588637010020096712807619150858715279826176092331101505417996907881907680698745565275301639457692506626504284254326171199614832041607061721192606565445853847381974678235793172390065413582152894621284562679865209153122907964782845828285149044838566671569527148224275653683421079397820358907188517637543405197620989569710140841621170835604689608935869785651876259039426248774782614806230038540648216407792742638878061531927755027813432221687465660742957140534597741461914760421596504998717779141152729125206381788246304899410891846564753313965587982280082916372191799916306717863999075333541694751361046614000065000900445596969431109251337383145510217758134879092714644449940265629037793058019039055180849332006777737813175965680935215987574273537079394123386928116926093389318012905777475136763866795966662564379361577029155745412035641097888642456252476285809414733217872436607782084364588644783828252671433835861959001309872263375915116287109978609757618041271172865069392752466587010319741800014370741086556510135071515282440178293533968271826188605777443253221408535070530841172274777960903921394558299970184878891347906514997687561854162880945062985878232816777674224134931324270004090892267264314742174626617964294371248360185646052255588734777485954913149531902268792849723286628168936943332078517260627452304523298759976191504846636601430471926771254017779354123271002119339656912372779180668484229529330106439015767453626944560870137036841950374608242680516030694785241717614591081524001419311404397763481987343730665761417911763366891533105450046489235095438028847739374158670834850515639139573645180571775753666944646292567976527656559835356863330739191248375960604190838525205507005543443508484856521685493967645372218963917291002624009184906491392143109900513149629117185446385459842681919164860499030371486858981034119773488152934679420322357935168941452198911237804954414648110975962155535995853366080006815039561103064027712503692171608987394735870483949511686298573640218264586093876969492914588637301709050197881431349876393953939074127628066203965323683814405781582781808827662234829776821564034296996308915706210923233145476340081392084104963896883352559502663852887605844314087057215662163775472452364364646489605784663101815086345576949163479539226139398160023347603192058243243053723514217504005542377915763833998903946720554571734282794252820100790451595377746594277884582346891271090665275202737788078636260388076689173461433857617749033228535328498934793319954687530465929935688537191593510273731777375976050723816639276492282992651409082233428515074166976473494360848797668600316230632803411610918466517774618432105116268864063354273203964413304005785072981557487607138245489565260346325280424056784564224078109006637976718001957424793030067148429137676223697554863918397193784589102598511921593211755343788946391970980791744631957530889994665643787830489178740184758811626698959070918704576730723724616599921623237262280096323021942994433987151663808345622237652519882875131351610069032641210397344145188567089368314279001624577461865224040353619655919260375456251945445828279948245900554100500951527030706382417963402555808886931586938971217778010972977211379467869928232070314797076227598665373536310474629587037490936732402167951481004468602824458378318018308247139068340402310566981384872834587088212809959091224002872675824596888616022073389391695304665030803812223560687662962266014808347290285705168534964908913302403488777907344347489353038203383882921506710253270451307097979686255077831074814201045358525054357407468534532850099141980878774782020372219820382492889019930093351427951494264270990816832624203131759004075087894251377867203409190155478141141327463648619868318365783805206794520710526003142525385642428386246096111191613954460864548622396950747757652991451177099404305878014591556418359921294011680798973206888538973735027873888434330136702071393622733257852919856369275434196039044322911629216561424370750704160539154791470949653271389874673954758957006771866608381000271143262427509365963957933373864592660568311180833231100364643044257061776090066883757502882400036978498239430721151290239043121147944285727960503324200098546261645095848349400076765061337534302006680883441588198941249265923756771461958540314089276841125394679811841817292357982617939496115028522415250538985913999887501516225875593080356434756071985978284761601502782412314570729923813384512916974994742408100743056446634461550190760577206747924900656000548472555464737445150745398607316897316106265219311860015183954180414757315923900292440415838799972974438942729000019943524533460917396091068346511106974581140637877331317607535876873253621698413765752257496679748466738144951349677580335081519658213544413274518842683005749812867905542415490719605856140925727825642155793369671438459790676841882815050223512239321100681923828177848226214319545415546316956111178653910890343941813428145845184381498855073887601228038912540705060848563236050945172913750870670722883286666479069485404576580321285785753286448694486421527904687118950085794248902221885623847290452960085261244073875202521068858867349899738358254892332429684131665637772182882908266140917331140952252636870976591623503943095406371173825405164795511603878276474054849401418406223966140214688996450850788092799828667359650344961758212286538839301058220357412688554982359409814653360163635407523642878903645654628150943669924755185835797518956541339177728251043260228584713488416469711550225711175103742848285496757057804821053188953200192554583587733653576759922401771422884950158005747014921525383413746666324918707955843730295146838460566208805811124271086976428759114585303328058754650820926631171324740688390096972173125275829745412263714366585026210996122640318380583209803888446518696195646712574944849102294793264372496067614856601751048032497688966360059069516276954413420285010916866131214220330592607871192121645134376120496640288894394455115079190809457229176874884537924148775270406977685796042172108984423005609857286422001049686834453213923575395221424410315379887722784245154070858263323532559449645767513889932142073732535255431214280507713772883391691049656894568818016104746382038049021492296000692375230732336397523688269454288347044459325537316590601907428284868076701402073653876114885874335659999162900850686837910020567793984795612923831651965716433917734164530063357030252853956980192641931061010130748264889472047843749005258546625528884359548282627638942277019138419862013096988846988911282502098193540905522141086702505063712767624521169891560089519821498177540668102212839110840527629846981895367320819839196294643701312165863696824427545814300014305009394861892146158445159772536152485057610622880306139787355744567050993074738286635524004427017295170527125369446217243083351031438234976819756692081515041607261566201400879695748339521996798219004205820849226250236695160225165901841187336748755975343681670187182542763544918920574448696675334843428869766443204759903345054413890436923924351393303855256287103184433187814291387232466449556557073706454470905244984302888860645291082184869189800657282534428801519981971394306753729946014601322717060736265257310141734615012723642478147078590622168332265477469884043448530870149257987383023009116286521727723720883289758427117337414215919279198594106458644781313099989805352544123742875789595966095917299238566385621325675608723205513167023007290790768458797156163779152291755683374252993640224650379846262565086425990782035642276082737866379809504417121294115292032877938500831888321155602562067095681211812690907124624187902359064411541641534953395093306199699500790806228246853052807797049984149155212425985499727364771083830214186319179535868007494914771602055476994621755934712837823747787557928947973906472168606990607301697217978382334579702754264163390893326103271268925379085106671041375098925167162256901081095240242086446375265492818025751038765720892604522057699392758552497927454941569464207478687831179962300870691938499768378683967349862086588810014502089492889953492597000007897613285238762040505775976504853426572853798695185862643992767702635618605045558395371309215732355799764656985680319479410508160168953277071798032960401512710654601049716506655083828095438493878769273795907102636326779569223350499307185799549687664515844681004338991610883233266563507452881071371162699875250709992612222604777316862620113188918662171197163714833429987860574401371024023475147681677180956213908879970662572798056939012181173206058895710962229007150902255212382714341330066268489697070619991804508944364774933156959462108096074973660859665644893236801866244112976894889634941680574948533390697827638769907162515166514141425836052206513762573376282692077343991513869854843593845689936561740182124271064415881609765408666425317065238017494362606310831960812388511037770663358750559560903593591749733237929317941215648340471509671109000542794775546413722696007611316790610435481085730802689245603604665932692348508407900641336932769975078013628140038259930594639655394427162863046566996892520723379873803344264064702865353793549465711509971583941305792591691836969946968362580080307548495490098392735754373293296017407135825379798497720932965043381334913136278218599720542150996149433209913086744255801606561710292180902989387283096251431756050227743188547068616679480612329500976111792452414389193353521490416342927395465327043542229706095807213217946161138221709855559209389145028762079160105292099415183335385487741809982292649101476908452180735248495428358523599451633005924013708002895600102287787958928724310843089831445151338637413618174826776321108676820666711765845605290571879241143343040311845538645063206908927984120375312930878403015894004589589017426043646521395527333197264965971234495183727283641321247948171869889434245135332543123617590500966678842201612783641798710646943461378810464839623501607723548252802559977271549307137981576606405215449558676894799972576836301036416448554121669094882960664177083657662946333372791930989805875692367349276408540380666908338352485285850088672381495336178990255052187001779291925404216306295791855209175467211160684701892483988781859989047127933706042930952084176961313680050893266784902960077115667776858179319409788448035037322795084533253862787150695943034935354972095649769656445042158787359712653674043228818346048027929675907320717868765601610969439066779257732294083699408881680350900709773644354327512127703772376849260691695138460982056302112328373684690416423552639600099714495806039180129464355251107428254207446570927553213357897297341107161313512553480994225741878588957495664030952097093592672703166662191625970002026327078001575680551598084229542763487060720277684687164207143608929548376536157014924163578649799617686541493708564065045620699913086054451130242146093727393835930201078762598878132099719931941252932824714203006660950485824763234640187497434822099659896098625778866320852569123261394815856741151559781990484543666587475193979990176947917782423802617287695522900433379716099509839536912126779476779999916008308296515896870317693677705303283732645615224086051993697316875714538303503434656520117146505889681460883419540910477035773723903975617607131372830436237017972245360735125119751732032013302108604142076094494687298618474204462958662669631207486772911467933751021725137887430587020032575560791250726370907859593511235708037326438114574305058189782834644486749954395361589171983097410729280022884736845831989943993139169358694481475262376032822988528807355264704749195212032340291920347800159225922067698014364190920829104349327024911285041079572172816276524473736119683729857883200650716399071532745605052114620171422065819447801478399029291682693381229961715643074022584450117870876221413904635591370249704135850468832738614565233363032042551648194041452148185631713574617653205969576506882793969423713375263018554952753091201681838587211238849493207634126649899221686413658230525944961200813469280523068876005387664687568465157219689021791282422957601667504966831112899287851760442132488185220491401154831733658657014668656993357757894636154480188214862427044408275677426043231943138530160883619462420427773633302758356663854909730977669390233010588292792757606538962022393000260103385772134704737352714281193290084725110124379510863228005410758464626077782650634827730245949897876147733172891018350586233400907758933935450572841336423668585280547374475789676383434027558401436478725322444498786959603162323358967274792474245188947686691338497911380035117566726845981042355358133796035992845351775807070765144595088502464928740978599922523427230221855644520861805628736839368086345051341647984051235127231311122687541845069191492177802609531187378380962790323225055325142334623395037223487037540909118714166894604040393174924638732019965772675597356661297641780692319280614937682305281075616987435641385203099116771004885967781123897473714875089309754812316584647143968449553214202647492774792157034649577251276187431154627604517335508648158571706221576571336249787953485826209236722904194848065030070385562129650802022138803687876325331623497541869753176753744304913539977356414059939112762501670170525718430185504959374937734426948209535996520019657668202170031570859029727095117280901040233631037280752691622207341768938077599715867687528978279350393542321015036910310548115389845190535766354540714173119753310462012352357783852722743855030187684331352777116799226890131308506131162007366069111588835536262649979161242136495645298979619172912106966215326211249189239147281761034141162968405284340257575859923684201081937356324006213730009690402092695457391406772641367653524265506832178910107976577001486033655444934921675559950534551263706978709234236905281171395505457853558086279737321833239561665239007247700922311918140558660512853852440289834556499365050910151776978638417090799726621979454957643587076706694520275648374005183557258809838322278711033727083007060688951290991085148837843580861325711857318763079462665503853068533442955497118676209194863993345458004783725100924790165831454125574244290893350125624301443628844359440825491775392125534174380222398593122234408538284040402301958654179355384033989009043236865526386889787657838486775806867759092044847371318752647204329298608539737774098917962627032395770757735944744580499087572266502129863797985711219643702859521435899142589560189452070265277558987187670014210151171995212745752964574852358326061585870478287566949733138219914173990166917669200330504572947282587364397142677733227263057434883250462557477766858599661123040472542923073987112590291152923771657359572549089907642367619342032090206770318605330331217048488874640728301256575846555603248941630764681143552529674232116079657003507411821466634146251499630845424654890959264653229818320634464095876804585037574067726189645794090878507084744048441365015438044943056297753601177682048857477399101841793757647246877591919570098541453825918833679459983502094968466655905247642829277019226180219471833768176289780894943186722313113167847673247427326156721942687660134455697291337008068637769955174943994628428030418736640093398568964020990023553563072234246073870185285861242984251799907010845744094120038307576668731441061590537196534098341375879310702466156022967618598342168292698405589457953621262976534437338634640599697009095497943378438386547309056292411010781392974350479380227600716631371678331080609767130321355131064408610811105563453410063302915373802343660672449090538105131975263040440516503788510801770764056438518812186263511688972252452124770309618293431526712899377176103034174120692646274219906396325612652142471034882536370999349638612145492072856174917344756133898319255075847813356514994313454137908668358302451196418181744308854632057814074184269586409454808429011785446445959054205750705236156476815093416544080133485173754251135629609765757463438007147864678863913077596018111933336624907901135149878239766266903953501566275310548382714132539376804653439984325181657293739324219604724402408306976931749640033048942060918338431211824279046828777550706215040297464782761907960356583691207073834728387896273008337161901129823801837845486693884753623804256494168078977639168354847555604007008338688774182701252799075122959621893223097154474258764446531097728654686116289548848040778433947756592889971916026753785531382197281206614388866240743313191457168637130405491157634100160694950534385595096396806456231137929951630235490934196160201562024625797765857576982676488561659427164224064779752458178270031423530710642867693526478480801760531331510344218438528047888696210250270525045332426620329504313944784254554981507314457886925692618355992922517492866911951158238875949282735020550180489006100184602132798390243143148710082605225835964749087641540034417028005713185644698577702691706461690417608131957795860875628594939759295490423744229117409127157985354999672765938855460521006503561811904701798938125564064098306810343803624215096272891074202106613700358941317742868139371450302535929060148187922924098241240752852396634953614427807517934783640494417797095626667691197846470698182499355217743788562997382728928736967710625920000471809256394872386166647178755885537302358138966941347883686363732893088994335177444119685043280551440732301947821833663130718587352923906648014834353424305643699730861806334273374552777007782535054306068938318107286559339488087702433680915427403434914713108616909553256227347701021290997005037384259759977816302491858954258561366554207819112253300918246442529638463187181900791680446072108923746674064853601575166560784792748771628940024108528860748652857101698002459314388503936666130634124460903653075851969816769259653560700667621055715055249612275747343060221911510414902042346803177719657800040812923375805007810167757873233434434670884649301559807217845544864508265735795013859233452413099709542434532351133483653817966223741846362783973618334834798216957389194419042339759332562722368947694132119978682209160514939286684241257549096351703148518340145979824661173215171219847218758877478108561076212153074039715475982049603303490052462484502913225175392591656925834052462183496449658754499527004026489102731931185026943395835744560723849531753540231276767143258492417430880794719934340661001826068960277163225241671405068205469313436434272427367020720153671576094975003425810173462531540130249977721089511329317023668512108903539115983560202333044106373822196019073053533604226464526171109543976588600149194818126546769079298894019989430444189756942441231075249312700493654620421112959281121511916950270629437286019730129691286594623286495710272306691883865325146927895686463188152865659569996197789227541497975293010164530814873375957665955195616827503241160605898735222980614193090452153546660644756512656642557591309990707502461183175753289536009531668893797205910452142191399385652851483991820430094877767496552391155674754840193693927288857838573626083954383618260988345091795502374903612163865764251888359609443796675779628382493639297048265334354175435300142777994578065444883549230248033362766813602966535428849823014280724370417969596481018103506306315329033070932472410547380515833558388329477889828315870590887609200662864274051984263903659275017225471629090297776100588282329814148125299167033662979938913234795162962860036576052430852582656248432278900047562892546683339137541563937186120042171272926935673038592593991068052798291400331765322307255587617581094935077755165042222979027230828983205848509403135784773413750817524849180078140490804117971122723630004862649329067222839337053889148517640692613528006865975488442934555826903983132792818670424901817266843401569699299002575599211307250352264880291366458934111249790795423136973912065207063705023759553290727995616379914945045387724071268640061004102623525590447434120232971644337559943269774371130281274359328682669573202767052029204049033788067039997913165528708757456455055864154018596336134042096546712107827071650970983121605683472252066119343168876989754931152217534729321421236769199412173081904383607473391303847174058723837909265753707000072508582744394654873483203724487792296672644480139749222149332891056001424400576780900893324115852146163755728191935051734366055433203500866397375088668328436580370981150844157370749129063885234093286590158593159312033992210762652582004797083928706669201080932988739927087304395214085960584543535480912496088495437033563021038628985267807198679230324407250312954604187505380589151269128667583487020701177575870473843985509607139489156883527333179969962624780198047600935636411225414053663000967898173788080113914243204461983655646736070638307907053528583521016724044131403607018548477323649614248851811130744843860897037631493100246710839931611150897954914680106197098418275674273406001182191145150405383808388701787706025798583381579628554210470354557858985958012050831242600016107758804958624445403675258642774948081610340568465635840447762293871763460496033588062183315656902359659937458445379977571862230756940985838855346352613042797053207035274406217552298170841776931048465397020701971734488153880594498005723614894002257548699112208993587381578402248540593516217260089218676101173328040594980624244618893478802988596322314591886284644922004117520325762535900778837890021667253337389743241069734644747879486261054531347413250079242916613114796401587386203021772374814253556887135146020565176997359295515773074094492576532371230898671823428823479562139657499525220927508118836601526522384295971076730481712270273482780625774406333205823151499679016687002421716379111023573887432005646139863513170434273006660926269248887672599196508399386506807316780531967046675454556125404168123071223455509806602807541816761075466957788823765328125970544963056073876940904625104053542824045308194821449342945796302198835958849983461039850322262352075854632865460877221084994278835927982342830823738651813966473923232163901663290191013006561914749138203442935077109488543004458950838419127050534724254774477780144536060042021342814656590870031814070772862946635018215972648419234323090183844665150093340829502214155109366826431148392587489505966280704054817967616809856897222899263725595471871485762925452931497956258687184119121895907264674846615478547510203176730550264736243148680135926335558454045539057306497449466440546867519082813474834897063668695227377007433789291167925244041257648814206105265699124581069686059215975747508725167687255022530475525706544477494484271846498281816108520810917367912517449772948341411364401441182285726065636807354403209778771710561489981912134582265710220016759700902270396541626394933000448505571429564267035147668059623010839513109912365511885476042824138918139318121303147676679151507925730293572219713296114699888183753333712923661995231847492093692005574774863538013163503536736714945944588298409691474835325898657891709408059486059089647578536992945417992912114078471424806620776837553016005311223713669737960830895093256881684107132716066201392061216145396815609059758778687622478729579571900772067069915643032948302833542657472881189879964140901306198744034517506974095956565627451594132366593046685043105066632371011662489270513607364663435801718887329388596671670489571361382471694713292711830270241850269633527699213777426420901788126253493424509265999498055878669018646129286012992621432366074076728533170450556450711621645492453864351693537795676476983210275514212456407468271019608918581609379710767140000502228581381642268972323991041358911179010887570297981416989369221408537177825778544775122596789223320926418798482817415495310403649387157244332927386419019856737678813121468015744836907459081180773320057454296945930242857132449240339786447148205302926880422337862124528817754888648639217479232577393155130733838841753744968313956873892586838855979862126097395453555940570265460477034127764652031683168484063518910314981129403241359047699804422102692654309932416443775911511183725654243098077460553055052878563561117270098377951465565863005940735630929387663343443114151132250044133224383860474490562425630821158149233302158766418115590014336525383682859179225081660465683039472457952778279706089270912225861591110810254193685849742901218673934676339917713371300190719449547583487721756727419480287958799730295016555717546775796190536704927162849800462206472407653910755383738665157250545204560935272133360415531790381716309289098830145283241060171003380382383587027247345149602468111653369277566759892659819175989532432877668257413725191471596403643780193428540147410223699908847261157282917720670723902604492243735344124413206431506230397329884748378237109110866949283938459475450037161788550706591503110859779638388361148718619063932625246983690855138772404320737514733343629754731923430221386756297959764132571399583792839329407011140085267940800381079423294127024123147512626375923701270269214127134235054227421212324919842982313955426777713423040083922106095189475569852990042986945552453761596133893399013584561949864220745531722446531179299623407320339069129698152600670288212050346986253971645034961047675790844711459197353195020893560264592517421602143421948950538720312949252791650715465543715001792898049140675699119231845471637437958618527889502217558804320700482421598333193493499452451651457081326382436381714096663942373529775299890510782247462623977374447203789299265750350550441865994396510806056474662629063457311327451939211343582606377902030529896660865351672661479521387372692701380724877004295025322812978768365069586703180759682932256654730332172759731733603164373855859617057108318762244612189435831916678162716391435624598434308580970388592224753207092667584666315416810001430107236219046533195587338084094784557986965236605420273119545906871633990105241451542201057850878544623549956427490462982912323983225422922543443635408092446285833271231655904670832991631839601895550883662358384449501556525012779369385184432491594487640611909256917091271719482672333715717617485444910043084597630154194670834615603847667916022175819003557894565443608158212623555454091128383993581108536084579297384457745496043369793339230607383195484476605630165439085426625769240972993295291882868281979832418240012830318513392942141152808582708892410861562655644119724431595788807218018195564779320766090563073225808132959527587174648651792587023705234232350677651825282626582476795860243717796951160655946236240322199967619666578921929393825385237955912225577368101843259256298752517751010869645435049007503521821221896520663318155704592079715894282377404072145671050277454796117604228952376102562881359477341211464979723613240638356989418459577313852604501210722677838782271054147663557665034658615630681653582534514474001376834964654498958074977590623032631431053420069558023480183197518954106481825439333000320282404937793387506008408379984475326446714683997601158409426124258136053116144754802954501475932686528158177966857239018099139433032784364156033155072500634996802971228537047640220551613476353887481405352123602295730014955772396384196229174192221758872494102105100668032825470229625762695982576295722358289079205543114940522886961886977894146358124570086188108101612546708288180328747184419310037848185020314493524101088466033197557760464267587687742700781292353432336181120126778197817979192994726801716058225581296502832780254626814427019360584834205049355691648303618774894660308577347559981636855225649668082732639528546252658861132428123730204249507824658325945001085242397193869072584278810743112487139794711090169111045550444929304719911031957192210620491345094224507034440645932962872767569142465905658788282709813259616380845978383175989194710044096750001672748519130469056686596120211077105239345547879374070969636730535154219272394161377154650006892679965989098881684612796146891237659872284972107311040652813230307639243545966869303350066978492931545833066161219290673404130205421512313458453849558728347377863153971244109064287570562323934406447575600164371064837716762770932692511438931393916026183935841163399190596362979169313339353022955982879106191926292166551554265549258442735249338745968867891009092567119467041677098429302020983288135502839135863523890217668219099150239305141154029576593111194026242970578065808477458895239736815051656056754762368812025543342997510593196310137330924019442100530311343711222024801109065227582532296152353373737377429410459303306883659644533145176308214027695509277497855866160784357948550355918475694031740103666751497884738486897144418347162861003045990587680964443683366455645541880533870685989011820532913795316225919333623402591911676106500823708965936448634150533824238868639145017498213611716139213339650321285794238242307269437683429958229002599488344545898158426769120899158214781109702240860066987872618818230057345263017760087289441981366380468085733271871003408912647261718299580279231882370370234924123577338178103751633474413916236400289906676750101119863653573856739072846052418096345255465162959627703773372957914657024167361991994882815144376996697684606055062307425085095010495164342395848711779975914871471506927067763249030257270156724675227128085861774673625067786071617650407560552010414952858731436367916839823070693246426803091396223813090653890847713647440965564338908608701233474095313456151458030214317544867388040189231800742638527454690713385992959222791073111027331897446499310128963076835474517487507268716507623124676973996628846644857325804601333057066198685716228170749509506729908070588906753603435159344532808253316168023850048842069058028333195445248290023582899213164342083256533298424220698056782218752637944657129144401360842475544800292730150186544808677995582784373542577015169883807196698875113969190526333988343014495221455051370154969244153490843806392031574054288909493177864039186835451460120276359806651093658291661279120230510972145225314456847065304428418443550347630729454934473450899520951191326092063024400968207271302629057052171510039041321650030262112800611038478182233495896932804648602385622958717784287431185383844012441158412006445389844438907463730321709627017384223523188886417711454346375373603746085741750876699284014250347129883368111402386784071546291470572794430529376971157073136770086555497358165689884104811037355250803948231478786381868899454181000015565116759647975519117636912833605828943797191052596712459505084565375094004192516848751079788861951627478148309988931243500959619508003320603012676387838892810699122170980797731283530346506595133971499541479799275026437855945073916623156960164332798769835115378381194520790526767029408316236334573970467424180482590309864576485721376917340171630217924279218757109175956634372077134535629061932643019178232841028723587619582521657102394062553437210282957597750228772769322483435385123104107392114198899145595326989113840326396266348969457716818283310962023857778037342765769018494337093499539810702874009114699236274397311285621649123148797471302410443009374826243671398347764864309440811500943430300315236207450441478405322724559611310701487568030214612574807579791616087707687664460610164853191100277834530393930337228730445516446689958732744854164648778891429669274342492519775546249806434470512498046593704369504263181909175507158359476427080565387409236827545592418273427425079022626269249592121338293867564991635032663490259715504628620876711389980177347398806579800837931551344339229496465727100657825342477171271143237902367526708241452837417429079069368695477539392226141341986078004872139213070944299326826247077079975011423335606373125408770328935862977068489261183244916059073371563710133296880082370921773591829286026780426808047973654029650787835822385248961576804478390092617682545940636639086073056424922069159934229619908029904415984950341129904928302028184928048026615822905238241550735597650445021552677308653603572764469221909965673265283212905437313705374127908411692782434557688661125427537889855827575205396030244549202394055141659259545181993283729482582086174830662620223940651233302988862029638660916471307852196383768398125352704112357347424672068776454518736020883888684676346852764309997183346955462195310099721636383366904398972785820064887971010232049564464471990998565712178478447123598685184675985693377612598503023262563672298038856678618954642092929096535422009961515375780741267215521371394241804138119882635594547374180681793118414359953073654847309485455735125221599020783809235576974668550483395015822020165878078590996565174587692895579935735412825967423989587347059873849571548777698502818555759180131863961589656933447996729178777560865968742971581825095283592483433729127624118610153821787965896418748691085021224692398419252054537661928720342027940366567910955637979609297837612049536293156255892132924194903153392979493590841968470784498211171798290493867229989899417143408941725652084591376835368424078081631023298099716549257252838562272782883374259820191033783785295785554833284571205989300847657989510577311265857907964524182216419197417508800820727958288604226792544926816615269024798524364872433921015683182506587594713166409732503880856252489983102677665205326816966314552547798507254480990512141946112583543947321175002130501299680637022640419034468105391121631523202766829669003964620345360509991398615624531615209822903453353662234054453296360637797193535980581746409206527283898383192010886824246933721929298510559527154347403937347733892370357886671334244775685650693689511408190496147380629645247250729711687377043301785767317297714020586889355634402368593099869476594472934527165745386201877455721523047380719568784970693994253097177881631400451549499640550109668134383827150912851097683250549445908312241064394475319988828224315966187273362295398988087560671233332089504594032290962089520871093502303614337977533673012615587835017974073954280845478823091128075810800506098004610318655258187954299666696191801936651022226687557965542259628933200654615507595830240521979013916247379256358483692620290837630913389393888453439091129919429285362507342970790964001832403561435682839756993431794328300874521962192729321019293948255997437874575616413808383328628947666526169346561133447989121498052274549802082813724266749667756669804359036658938769537832457532111563193035463584363987361908704086610726016647969900266094206202279130146798464567987160633191700722185300779413331806261234302939463942482592511818250184796556941384599342690844553634292005330041307967211018264264664565977978459313030594401198246907947930130852047254876160447991312374739155661935677391335549911583753098886487272424239785052600964495772574451973666462111409557144700771241024370356993015707179768412072729295158054863125215178958105923228538947540987249792442662658304280175073218265085885508366657091424608961195482454009078506696341491802622949581668244535271361752078077236843773598748431319218631082034823629750230487390423901759774956528459991289334214848452906809248743777849568365102171299186154015019965744450427382616565309735590640674294404028662129412356287946320468598461422354362474906333294133041318692566232480433681526088789897404241242350006200234045601868027256968862529571128171168142789191766605109848895041145868773571892644095797890920821131008525150733298812807547683954481472968481773745825206535314826893042171254012939995860512342434076235144474026940376427777936173778404310221530881899319469443844953886780288022994767590418282460812698031115458920311743660233685104370703816734053479165862266507475105967857121748418769641137990494975997644121711799128283670589302863210384464234236805278862094777314899517927666294438493568818227108867892515925914174581034740149406781198420707077296953106394215543390304537484081316870123415465347623523490397296509695667832677595072566413751766148401874455181010601311228509889145371502431024759700821815120067252401945940142699998611877389137170790157232521538177672391620856470555386981666638796107347733751502667884090875990835978238897282458845494934307454749063346475543382105224474329089801363979105000664545811645507399226146327401993111185692166042403804310743651839926321546042500027491511570009656203292625055165660812886516490576958795455290853138226791756809446647023440788160317535059250985580000895107071577984234795277799606988102748488740325169482288907365069206946269460676286747633595033146034372288948115180385209297388910995201236007862394918557439930633761222439786656865077503152980943876005458792264789420139843421920487440169381368981836377864955540628241670316941215042443062189338206640399701512814036309377262546368148031293004670357651572021173418943483181787759635063254894796106856147102230855623342047294885848650920509604942392407528283665494442585742389719351195391397949364343517108961189344441741219847472241283518511465717216580531792349100771172876201896849764787153171724347586975340257836061491608216520276942554651086586586273943398186236296804420481209090725261045733849731347474134028001693210415216882430006150564633270706018744895447882150881189184468885224720431043710061397158023030845251808141770810256943303476167182449378484501534018137202728191478464408796855804611618745908413668334273954948327069507222643788433631958146695268635672941555964255104969293112517683820166823044898825628429660103465538299992666214226180932628399383690221810575265558196067350431445561619274355627552341712556954541936656135303220904241080669028776832198479585059610060940117196556779271666018791497790875311453969299097437010082299139957741904361611298786420524203558310402990340426792806432328850849935509254365174062343874879437409548481065675320826295174901441893331582919860160561193785592826791935712122300303145812031864474764895922311380578757740620316883908662263774747836896193769477254048430236877118169994821957471821647439215394927180252753913125931682564244401940625021973937503513454275977118952040102616504311561268389857971038424497330706622769029249865772979531661406821563999305049858834854435427135852451460375836347798894424090287065863086360804264259103111014225150086247761632466361491871539209476658817526940146846967952372060290389043692360046408129698494852723548338742500528228756324586512350418182519637477274744390891028561175180280212878700513840728366300396987786229457360536701629497399638304972947672354837336562475836038075085721113764370139584602913314362583740794652181621899952162077575134991269381527164537098180578193551121767179519912018901562089999617738485074149174125680053111103304792373982391150844992751416703579013246542939648111028741935400809949771948009635302845424354318902686949618528282606459387463262840424583612236433915231915319702149509061977795758060890009791106541522408732794095307279612194931893914049029319401956777636347563994049680160902091187747598147284008803177059820500475953437574695500832472266245641337276929005777568835888396954709615883037434874816229238139449884654727733392276822417828860755178579417613461148299378201146039914138695298320804436967503302082711359405436074574046296433365325371655152571233274673384046914512822192458009677919627139060818824740551030624384041499919234156095493362513169820057483774076948040593242030315194377299333652307746764062388034721510958659689073822115893036202966018907295688417181943939959076335956634181833699084485921536974638338261265072057004205892816340367724266339178623104706640295748535542576713833310034335087905447520984301680039843187835083508146373824143054377252947247191888209613424863865560005546192842837587553566511065186219347087426419466050089043609576890368789395557725302760896541181689930695409023805376886874229199878927956628743762806048253696118485206536705721363807136365225286987232018850502018617747135291940429569247220516226883414374468905944074089902857355887529209387979204245404229815573833991453892355026239647653649924856998486325294265139063450498902629863685741529854160049519382839076857591673812730857279652544865703412470633801105876935409404235250291968900074964171735477253072895776031269078367871510296297243767386498032462398249524968350643474664865661036983935014083848905506623162296025771142111320536165800325675691393844100564775939951382617714274164003643316064531863183429379555130495157905586232665288126724837975772537499830326818499172842404868505758288360648383557777931895137854774338854296280315507639822894567911297883790081672909248141458640173456383041089339258024241790691494112228839545246075428820126046751492488264164732448497648661125766023112606666091143145488939720828488350281193272407174989635084661486838736800727141994792632035260605282790398761729051630702112411423651517407234315702190173944713729326717929370174605998173736868229882104612361590745470036028910939488047221199052013593900486499383508240495348328885079089259665696519430995738192827009609391955112980782569742513170848560891275923741529261178592456769022209173449206157941793704802314952526775450559441039212664754743535742789161063811496247582381947816070790804892038231163957368383338628143826579564991306483967764488255945937153855297727087291317223012080132230226286167767662499684097507937204425676122446727673514109675486309297256935307748422791024720370487579922659000786038639610813107292591210632657517645080389688426850319990101470186930878159329304020306271154144304237501074047330676640871034593222988088106081159122217056401528123908428624604643505568195499159314502504590603284402293700877948460675852658065124094750477924588960512716124535463243704142157754094996095676834232691826953286412081862942666025904553485347995596055560212103749233867842635938878009073117943043322593569425804620585196641629990636719521390472685534234101067614920164559645354137648629183202260289424220273570474940941171891542718150627735244892508577609614192281947269522256350655288789771570485858633922842376803314314416928179773146936009680919803396390442634610285141045911233699334506098933835049205009088868165933018432299305854971185325830911982233672038868178137772481622191257076923292881652325631394306636906781173000146133616055265491762437602652893791503811477115108456923594317180030338312807865012829216415005000098298194747524867513081136443318980212377013437389601525612255337507484334563717111293146011931906388427756781275866836630702909386600325762541302242912970267148034620873050139771367744294214554020740262481631573661572878664157625345635659668724695570081359504256023346486100009136042927931849693182133768687541989507818192855530519732820375921243781581204991336659172907973246739536835287239360749967418790278698968349460238676969637030673292774229891065037711006993420071759433193235551695735717234621441554338086650270313696783064897554103995020256313531993062575016332275591827497281504082067708716559784991662545902985958511713025710606595540982623997343310433296210140539338531028632630964827738185484085659700201955445476510792009766510814961651021021496880343629394519176024240173996014914222105542613376112342665964045391411849207148499195208421183745843129567280339620843430490743465258064243824576636702479575407727114463113848831991257479528462052246092928873792974752919713226609849700827427517400939074824705655484280532577325292557013544343641434580534869760818824920271224679026663105941646424202803110825211756194237346473054874387679799582663066429320474785009422506651882125198472578544624282326075584306472707280585489803202927462817365023324367034137908830007066690299566554706926044065131948426412610203814450480817178714697562544849183704323325699420096295909045331537282155022750936993665161986833788939471841727752596819663734196773359289981435103374285852957950112685607513448034334554938042195296212923169199971952356740109093976140331124526060718550937558609715573448475547209988409699276631314481270440107347956343440500488347722281586578776124078185731339333164394112399946967868742335686005431240938706648332975539744150530396809967037316340975157242181545413019941923600339797774651013537086507867868739221702263449309330694052758311768913716654746508585896962760013260455851986699229821096250534574426750236427618789907907002670697777445338813359057755695048728681137336089375158865506409425233923575434644242629097652687764563900556666136961569659660417434620929250707497842282865193625007768923379135995521222214571710653788410994017330236742881656257045839682026629346205526434918670067152935022669014837097135158413491837108171900568708253567626788413891135668815710054631209946407162447693248971919989551292947233868693122205407522768487967312456447154914547392024983610720840865264564039205254701950351047254657015673189944706426520407624473128343134588534603030287834693883529127325045687206816007247046642126846853885614692615028206882354526310029703231559229941748489119792651998542828461202699708977467904613380860070494651958209994317381000125630520803963744578909382625686484291631772159107251005766252530073452379376333014168008023553346055245121617500254142401030689001258932919422524100363363983923231057787082324916762566082891394023851704349619957065571467704365633127526777293950186414995384603358067309770402778871925119019990483122629735993500102883572180062035712820056150259641444331888757222392273491295256662208233731112558467568380915291830508461885648696237669392311207438712563805465833874131718330788532504536682260126204510908137349213745738106684630512597430925366613277008443930661057574567032191250719458201091234083495036860129468564391934107346511977543060528124499525708335988685246044492382143328274827744186274170620378726295156554049721425182997334058611162762707761840077486480618955835240421208509017167103183455073660977862358402809228455560514824827247854570328777200039089988539421355554442577023267683106347549478185913330717221480929129145754845917617507271097626508506518501739654169409389618437574528924845538038198359309061831350709362291931826910297195554880775639281851445619332336976562702073776919432255408320310382955662148774218477904750784681040947921390833276631194649827616845847712811656571743250304375218172838860591356875871327864722471238868869036164543250702998119739621471527291019336166523696766142633537685041121764628033252806311064922648091523212422033629579545542806802268659264323447931018224371369707564532072713098480269959428892070930076694858255951776705368058786760940750488943825849506752345623287526154091380237910751523180311032141357166723664334997077991472359202922959414192943306070220532234350974622333619290077671754588641511720962091925299736083015169657626627675510544691729823885471929602745603063968975815826990011129317673883951360974514549528862420931862474502059086466425123561238399973799999608546513976125699460504751865242182139495520615343014100266908539515880875174149132326167983375896678170343405586271456422899247007455315262388138537955506146143130343814812848514238595471687029102668202477800825801558623212704335065760570102315124107519092653492672197292903905542594842166707321853725857392540144096144216551368820724203362028828567343377188780513937742551126367177724612017448753057913319343283780441677150339579272756447471909971982283196528097329778019898866549662416354920354421757753004364377942907437278402165556461683648365292280027680405340712071662047413247812535242120673658148743822064511061110924842105562001081418719461656999035882531526344026143146388035908861672949582794681974739545202916369175883018951818341062207397923064722693178809915342094962467050608992722395894571804106974702813225897088187372081240845389230004880618153698451686535323773302124761666094756750101619393774395721689971498396416050954718506427740999702070952494723043766186413888396848496467965826762275171762855056130937114963222721326420110551209448962714395544533246148676222612891709699092156535751314430350488492157617340168370242408024690247563041150318110495047799820771037837206682136464668879456228585164772613357929664434958823716466849804516846670188056568701143339984420773829883045394096904141131490954143455804449521475173129546258185888505494651825206192481681186246819526568386855289550509796436796582852382218758951119331605270405490991863325744538873817025297594645294564829410465611614219197391046751384100633596676442767364392157908240461301060101491288150128238557674121756391420723310248923588532547112011926365049645280093644439582354458577394536165330016553443082201425612233588539277151493267938183329681548012842108299924434937505920283000990988404661555363078458241757386300865623850769813211729867014211274696481595081629924211764141371584782770101444055794456599225477996218843926588639203713722922782473083652814178952153233017733206887669537886437736345420393261731296966714866251447165685432739329888131817607534173746199466150415032969438042531753287513566548000261728082128445280642787335465762673821576543479897374448134691644591218200525068664151778247615490762900540671720082232058025501896232740069208367908962883067201731143102751277510005684816880652034951698219669516540274116423164432250672097958118352898019837565239960742828730512698217512555455214866380278711586585563011386739703205456254183498819120811125406448875319152358690750228468582560175353983493815157096522706973987078854672640469967441683888631780263534441515793666423664801252699997569274143108477662647646527540080216174407714845927631631765953516319354280990049098896617217188324961128031900840059863811123309343772951936191264026099683533625312420267281857426384556028523916838677803605036517517103774213454864863295284608129728965082710982041778181516906703546603829979879567838476409671206603781768976840858688446453802464637862424228036235059129600722979168413039572752273066305004433435556699351709200616356814296025164342721454571749202149605809794404691008399022636570185020051277217070777362012364992335740041112260787248945399896822650836584327246283956572101557523121074836822041178457784569351271485003250006327889848095688537613821012710710924899764957181176919478236250328217139739722050858657963791745448289706939849673142343760033835109446866696297229136577136212762995540873323679952853854887991426949162020514316255994092602838864486292586011400102443513203078216165250403766770752445178135235990709921438051675722998947098923624648195919773632043390667421948537953189869934272319696388402554072346431864610488647569739721710902454825824130033546663626834184009510294940084193039603608085743981792580036860024120539966948888241859820516604836596004431163040621917909748960059789742962579184709394339122098672572329486837042708309463573031646231777681614710793053022837222349898451706602706767528793952767675294602317259107434680237180501030168049603990025839777070819678582417677738793578280657183755404841982326378839176701071121234021581625932224949735660948463920939795228530793596867431431737930608207310775940626684763406361821110497250554897718638848696708930968415343171197296955952842921495078696136170864700726909318757301911516424300554611623334067975229171344259315358502339783856504429926915256766774410162551090535707614501204737820554987435576586519609210326286664003332573972250218781915426512530874027296811437089425411720944097872977794305781971107600019142446329961094698717197140656336810570626152736760953064956068023083732045006651462027371120277533102373508363178322079328391430085281527666386604334457018050947883909950299531616705226974887940299077092546240041897373633546041113735361817017386207761846963716199513953893712590209867190152050441375500238396064577743121987698874912562400252775890987156738449750089001633228133681372265648871027496254132160356700579853266699771046724225674262412858069699807759300100466204583381217504720893479936598002047655353862776747046698991503116866266274516056378742042268213677995839917739862449221456055244707216411397939076361620917771066453653531924122305852654733451057519809274572875168252377568918248288374493702208692401648539369533646531269673960446674169839989819402375150203754317881304796382118617593925703417659638569650911752544825818464425556813313552304009513662435401443607491954005215866012498132620612245931688456177476017237516531201128398991672237492826865766765987653154302051302822553849406108412034456661376459970530699221492531242062234713728660598977927130575635053376485271874755264758121641894233824737215592871044630937742458141075510060134566679772499113636534636268065050702625832905372753689213010648846223988042520393334283890195295230933070508688885149261972325567406102548209231697605343063695840828630524989943969287622507854580398686252885797453407310310719251104651777270866485638843885609743086514861226467570443134523049776988051227660651386792368112528679827292017343058777343914213552677891962253288203369317383897113390411201257244697645571453596176373342096742217809290567099307288957925138073114530825610873793820566523252223834450747673827116448919025166196599930291252780017661702257284332517305037070642394887954234313554279089020475095106716414259686514005319519092262863883672124246823274244321915612006094082826923290120718723577869786312984853673610576217783416135240387085744879065950371901563179864982987042047357958179420306536976902885321129016980857013401643092443917473218415683969742045258802101890562800239612972763325083830899913116315115562228725460621313902283765678092353841977895178317707978430695914078273865648572973644511453529357115557103240058591456318344693378648895331092354101347112006317772350174265956441366063182271542912498925610238230288619430720176978570451809281336648096111553385536537112280379993088967857255266303690794413581678982629227639359059907813743324990407557035009070072936683464359640553783523827203540491975676346408173255679293614227980766794493441183643715749203373941613164778389162873845780410426300592317855237378868395903019151434633790856563809899535050723922544495912811711398725445204943777251187010218546301025983528274611510826397063603201767545169427798812331335380735034393142541196897447666295816332738704898746476213310905919042665232836705222097770139822419912381672759079376469966411668074592165197722701356019273392583947226263681650448251885440912382494528333187430152530205465909423519494366968430204235799822713652807404793600528456582151014430567631446621044591908680463408992295334264060815327733910356280842848111953212361306850119329890326015465410600975463038463113852728281412074317003211144362613824943832432041011171831770674228762890811380057035360036115957138325309380295019325713696665198969919789093002420134115546550525279926889047682641341170691721416198694937632073430968260828679182011145888496127181987664307946952065311979689735751737125333673091617908353950078351683587838153410847339247983167400194037281821713375761655860233602048305859237504860711539539640573148254375851595479333235614163557551528383817834262248723131432642749740629370905445140405140221132262391640814609662008739678910555540427802822944814562636923743885003769711325056453407420065332814459405462114317305849953462758518315821027138211781420351930558225197071501873959814573810679747668909561740932152152196078690321714544214129176585381133405575668667473656001394197901516939511097840339276968852253829118400388707923526365921845185816185123169261720031612179593388627719938980661799713364058878496236636885314352524262811595748352885242423752460021471102162510651067541893021218094600000640950132588925394397293579418275713680557265278405238973125935935930158485081852349236726583513095103125717735027206767393112237230098754977332057397717798200632207438225923773169178716383487336333440780727692037536840869095011834146102248005263009225204353906351690117996916336628655521716222211342559396296084697287351942122547675577060126041039165946439500630493584785534432718776115714942668726512005696909714195782231223374847034736355784774933560007637567711009763826744881120055240810629159700914844148993743110924696076815232163000313129669806952546189472227804651717171472595714357198114793490478201479213407144076798922464005081377784536719471253756800402514134521521243546205402411054591989801435392442542974960240536708792186158033285165583305911923675919247945746197994455252307901937937225379485418163350480667812497817453844267986921858097215497486392996289294767191386463982815057906378810038014293203001071952459634760779991792918712491816720585837082112496676768515681366258358591424747508140147537470196458800835767468632483550400004144955590993029821944715647279925666969657393218102113480762703226772444907998486593094254428413571236071027889069530509089081903241034927878613830284551011713968758557582490934151053172675305881109795676020505868443922406879711246200220120815653924322842739517014027919501631548268752725184923881573344144845814945894767634261507072325241975118080633746823837257183463585552838823486660789938101463942362084094678181228129246472928246336198037516584520520268014808329438298786737754641181005632608279011604589802124303673536533278965468237372141891055362224845833047411798578874449378394165552612371895078874821448662763317080874003286870453967518139585255700377123552252698923063274669220367602866330967969183651497764584041342698341192038577603149089047088358327783352813248746637079392617448340883963737635687158312121976365860716604054649545594626661891725588728717910841032278428083922586715224148912022972728216265452115053737329811801319812453768264604925849314633149344835373249860702997850154855125081407677249291872073074573017987092843838393649000334066622958600012044894867057047506315511743069025726555488326473516448992461168093814301041492223495304852744294757651418039383768524328668198228967578885803483160616699279295294060778559310226910601188795677957518853496596973362520690127890015157666249365074432844737202252371844179726666210159909641485787354618902576386115225149462022886775840476270888197156698673093897048689055178617564434594040633023456241205798818122735805542116341456790808270838027716333018085035455009211725521707252810671344167524384856141441330645165855531019464680451798483478869567870035690677093143575546118954961881780437110826950468720702221190007871811908623857096409084978988940171105229708876793149336509114491730564301253956840588206339747116310191262820401431689964514829692073865619056610589445967633821473089333319156188222779854430639597854482554741943313020509835748325141772434636303210935471804607440954140321477207497193256571234362669491805279014746172357765876879118467643069173240451692608248412255602364554523230965146962382798012379785666856218723776507639566110936485773580615194304954785633539627362787317283393912742488021883682079352254962306084063302360003204621056292432531565363304301246086707179723782006336823257229881759937835424520845303213028893842857408507112215215518081366035507139173586309218176923546523540196237107279808386573077000648141566698480019880047264013827992746814957930290335220927798289846313825072028520892192899554337709631549119893788878234054594336458912657918015576710408025919310801185273886582918534532324652235250198297835622442452684236773970983929413781730968458946566248650759837363106179802811648430154233590482018647039954469580351279239389982109170322544304217504143014980095931418636504570262066047259490385378126389414116978141790153020467349160952813265052150042431221656843117542803258008398944665220098359613386157666405642206243981272240894450040030369270675718244298198474656085812105877862938686686976398904616373092416789879464101122539392736550573831736797574573301118129078109005492275446914663429279750597269015663662999809253626743847058107939750021637621774019442549167395133798225093763110016134863576071169457581922469811221237305718575668338957041473295409258915182949673021413274940458284462444586076566507430841945258980500714447749222615546586244770105363162493219565664357494728511130636677495201290929507799736581321009486180506560981440345497736248762263961258439019702119693575348140694881893955499061915793340000799495087992739664471491258729745049460898596684368025955184185165355228286788257098665510048337874512948565344761009035454144791657951779640459018686013146222916053583570354662113655599630287177758101507598196710074010353759583414970582517815726783394622869066202162909878256198275749920701728120418845592432823935982266165280123932619920446205786369611348986229308527081094636242193535006243827094349080615882484092857599203854771728462814654812412397113309153579337575532390436461347398682400492059943666554272691731410231591919279496568981897412153495672688702879617993372055454534848429542108491764407054155684463396819300422873650033561523103335932437112281831902362828573502002367939043475701660348100048465063198478707583371615758097925784298044771971815952519112830114803559782731539334123015079750562679212882313079638641009356305054611818590794488394095264336382213898081178542282961025192914203555187592137600758682348903400103451152858240189820785646967370524370857675040806949130246468718161864436521053664418872123578338285297579519203747021900182659790929574552563186770110833459692483185272411156647407344868665596158362560607583913365149361310520393474969578280148112140962935259577991397970149264968160876706388585227713266616121973974296681858146252190586209266296939965365170243025748501112886196253907991345028068343543107954970857638638397676962072961120843996274220823918613322760922139053104666330516958265757184362177807653258801770240885572577495715090787930473808781294996696915352550010455452604347272892623926604469926818772619193539379588020602195376698356618119135389856484054504224679682740036404821262064873552434282749470287031398442630138685865469694620329584200069981485458649892273422275879991934939538795446440296793182394075075420923127580862493939987142967587063296791348544138230846809557048772333881701271019909117012820700461878009862927066181848400134777018966476816420087187331494820379284756857236448171419300062950007409546856917260751221891911302087150323176122169209486343971587840328097392015485376126037623926644018572805906187062031517168627399673693566962960126364543697480070162713068921728640997230715883719017728647518563675858294460645614285863597771088909524449646134773776306503560766757438352321450529494810965231204952182415784209654616625951442498966507542593736530840801249508085539794650099859879676768374057671399204918254571372541142089433822723056611028929807065593866756234200091714496707485590407644789705175810325814056244031387166586138280694645003987004973496998500578191598224302416335511290298149946044661431719319336722475191071706737105766057235251905358883150002308434959400046755953576740169074273384248844146008488874733464887270905049289293858565329452321459256188882158480520803398437755979301396332852379818112318936119458755617433243146390058821705117345617611476434333192593682351834667417686145640248102293040502613104040730035227893074998148495404513910352928844284110311529480066024453392155554216045940052445371396321785252059904789740591983665968340941909947512411979706884337018854720216541397042249561688070668568011395395220342908853399152818784467929361217782460213054558988254944678173729461386529953808984410712487178360074891687888711397039986428455420017615659577408794798153069193644382982050475300019335300616876975934212537533535916051365755565410058802876345121293040767646487887338073703841330787698622333500364668207956450091777998017400039721821004841610575724466782423386874412182700279770977518946685339285689014260148980956685459029220075349879619299155030167775217897246124708137290582042429705341249920376689108540120561193129935775364485979324260997663037420567587216485495405952787466425275680310872903793222609858986354239087755811724902295646544240487435990327002027151859975289689122824770929899446795061557723949186825803418819924786685415449322501465304991927578967697297632095945912572081407927847662843033710141437683025643945552218569386177246585779148093810992451764655929322319249728808676065818482917363953897859662739576808913796969196904477625371714063565634497910051682262106901633003512280058177544405106571008099195552850662492806068689100256033219692246171101181222629688611076476336510324921377937919079468627437715728114556641998795609000094907361665585681946662142656040755118748895372772645797897720608101429677414509550465586832795948073659697272840953326447715648824197866821301279131045379370966656844031319266833958324899070754081727719684523590717899187108947223085470245942113021783579012032567863935045073355307763556189998794057191049560590871856574399189280984765583272596878963770791487154293994050557350963367104978950497049335771465969352921953857919338264250070422970210945324373476651768324005357866777692593868507835309929005567529244986746540946077759673484915969182721390241336143763525648898146019611988238252494631710715466168288705575525549989316319891033186321455745263752147621325518091246998148743089182009730191057774776002506052763978366081543997803582364313724436551045174602457121172276714871780840597380117727075858043413792397970782640964286452367970325804637697150355435300051347987943900083862628155026052488737340000039476307834149591555394353341747325549905741036140438591092974269711917892035871193625868328816901534044309319829700404431557731039547113457517052445401800922451627592850139600158542438576476006161471244392560080293162378152851318402092228696847651950635883748887681064251486362488575805675043762330504146015318564309990173130925704210770791882662059601755662759804699899691181602396704968680940127115444497494145988562195817404985969791186610179748980682983503765798922547351115876223015311212649326463841541476908012520126041853053104391031497739098789729914278785032420277985081075836521912851403765476685461421203375900133522635024858370981893439336153327713439926564884282401035791163350705341857078056920621549820700347353449160794905364086347680872550440029970687567569069073776386821104690384513309267997879370972612621707636724192738454292716231678827558559422814694072839250165191319841103745004430603857366925283229320000389489619258624486391868779768533465959250345888382879349120847542572866925269968867182581125567607133087333273684128224681030917575462210879297668050738465522331322593464035954906400969315222830529127510873389402424655283489311656270354877866799413923977882642264906648626039818564104612002247695806573927596094806464696064976715172250883101280600718555688335262454586476997230040297592635861399654316676548475772591948313403785076424403941421238517184080953745592747718487077413175613561346587595321351994752964102649620796819460077285668980131367446777295790323066475842952872728528329769734731020789385116293995475445679129945284160549992710130755017132046596202041371690395697646550973221827712378228287040035800974067488348124468169826194438084615284763223564930301619682200486431854248646860836694296379777778161699836166699630838644371961557715788187652163198498603830699367358906394118711795973284551465614758009217607895577855847295780742358492913999911878854085484413277508344905224080918470327794593192427358446342782413958866156697179331085648495460885418751676914718287323793211487249245844315326720238778953019750969874651330720253495316520271603479623481038623537196646342205514029832972333765606996181235810767526842573723442183274168284288991225680015875488805071780623934060532991080651701169297899223328169806056168553627245596972922240588034498236748892238419053709795496162272424110028475469326842631063281836607406160111739704918886649646617166198345380098759944440442567873217922550379774328268384105852806207897897726217145499993314232193244691187139138040714392658939728537041978028639179261244622487714394226662391225973959642215626928684515421701560985731395791628132754772807338995101282863697890581420780893813052703739461149615783609629835240235578955965389771427064585959276970696361072356257162168917562846122849621683233047111943785832829232700553852269957625728715222771529478517017514628255025959734810309021001353153701838868036054267939588292545073828592885471585882166913459439263592520745961983194487726731554838157149328586429422454206659578764245969762006290393361162321247262412935741010751036069677421102077589499475065188777792892216119258492994921939351201151698700116119679270279519853927189385658832411543806884486753186479507769446564213188373485899589308169737690616591437742866416330940658766042728258602718306662655900539278146252968023215470052630455698179577453672246733600652301257589267574984267446210956515347618504031998084706273414609053389709436044692029120704625915979449780711140913326083404170609689275958286334045066638116452551372795369904443283929807868655549605849718879012549136463524610087310873536290682205740621644004857368804495756445799068432247978753032566084260502145914807919716424329840145867905332937805474010825061309928346510791839814938415795586199375673789635694504693697222184035604205487859715322041932982176642033329357427898258238902880487749965176349773902906144692518713253258013523998166023308474935147138774449707182917739941494688569329078938623299980617117412848509426393238048139128108620009147031578137593916987346417972413276716994195626995459061310493373525436027484080547335790972207316334380858373612393537474264535107858059636090578222990285038056350707818836424943481337996660905897138554672418486883940593559373225703249783520130784270104978026381732740930053623619467489588044605228420949812179918025011738135281728063076255994161593899373709575336226164870599717929322417944541434474708557741623615425444235798333661379696705998002376629471054523078769560478104807479871950389198197901697777036715474854191066575454970342441050029230826572853552179987923745128336502387712084146421970892128280424443173853272576157235056254795428630531367564972147076875349233884756409357941477645559643994221304391100008507432728107732255500835649211781604170349285612989463473938725059886192846668315282367728659397766673717827747024953844887778367217531566562034068772042602676244113180504690976850671307623702972348747758221004217225767903009434278876476234378149391579947790274796543039754016031260785334127433750454756527760193261530779916517435595847019106640074625409675622083234750167000999815874400568622872201019135932526980629430105332744727354973940415970935943058386753334266085877655407295875665501797295358929122103756812485017192702532519577099204085778298994240519391322711253631109136970331357856824437931498261447724796989115176973372026096732809688029796695902583990028452720776197983092581709441643366424327657851169461343798967766198646965469373216198443911896889164793443412159888097741055487147631965062443611537843006132663310550339550779996327538280194729538553034208834446736660536524800451929986541290610211694480662789811620642675662256344538188932413600642569825106588103430650451186378120470526643101868485405269108872646725269818948834021833741761613765074211581461270166348176678715359982749280293906387722463750579218383905406582209209100642986154758561595558924074577951029777747097158531357123658359613671265047542812560609631647557619625337336171456719204832297178397276741668443831337073957888345342997142026600565181547621833738558092065253993023343069047066037378165958899903051507898138137981995924002394427848163421983685913486806083997304321349348791808151432114696258399632825308154718197437326878308974425083133827149592072816274395255174241147298191912451515911157612344743044623074096620157542265943311449730427298680107867123230354242383152905314746040944738752287629858211445673584220780516559604619957941629683970600016750125904867189923290007351452960657797873347918123807327356882601913422931459058302872564568561029988156294182447879800224017758872295201873510963695027145906692760387565186636153948822561602337783309851919040023137837117856003820348191165430878581975360290319499137919297330267535007403081458441801759804168008403070025514042301613636436314819676996057872284328247125600880104961267422379580466781678720547926801111601369973624884543394505265214547909674808825546678487898883807992505585246184701443064072888923693027100387091558107225082231728259016402102810475667574242793832766110801009709326780337899818438884999297678745790778925075480943844060821176940852328898248010622747297308031861179365226645873804639049663950755096079629345518981866355643425722200226715118619946231863730892669628279733902082259347672771581843070857736942309529550547402396511405560702462276683547724785640037069135890216758192115821838312647130454061884860325414086613850237127822734804738290443388386005934794717022906232124634509331577224660357660027664883019316520172298068496205381374474116719694669335484311097363436409055464501472662360352528065158336202021100244477175882852431993466801715622081444274292373442682686068032534300894526040920960976922301314363079048829105872745990606540108047047761157341103524188855183900293772186465032844882795516675447898979645448817150334965767540042527577641743738931839603337214932138493103450331816874134438346997020792168637365637286228656007561068020806551521728762876976946984624415852955783441103395381161653829276800166172026806119712390417043801840164539835236971392915399826527311104835611269048846860392053287430922193455351565377382175291434516951574645025853729752634386275826830385638502109088634608739504299673699155685706252842799809981154347071476442165938221611682641159552606864346925287374313340154399324460427914811213735239821596445397905868744921192000690953434365539778959800765516291325217366773915900208868071146602277722441704758836525576329469275297710671437390995154342749006092009036730408200074150700392994510167695684860238597436872215302623949112501630015725146103384629447703945839770963303118069965068112738715302693142940596430416348246301861475021731778966207533451305094902302622081953086938993367643318581299741677381092409323710620376578992760077701323635790673061664913685931248768050312597056588665430636068132593432800266347715605306088193378345588948722582995693432881976539982754134474482217122080831378948115847367423016172308842933304319744248477964529518076982030443675765235573815397957524684020892991136208151626584907359426719565398058717681376823425423341733757848136785924712762736208428488552703044328120261154226231824395373321685360294651047645765716125176465800768573016069806865391003237120164300622316130768451619102018688503869608131461698094710006139878208534514262931304434150947412083894500479141921227611287961328811892363827457542015104947562874245580321494596603982330321900829217364894281372113063622085136648376716175373918963155184254379801988288909636698171733649214230888173775697621366481788420022280513065016287075352105360643448791359001390746852202065506207572294919816173668649169663499366236893480002196371495305611754070915924291555073202885547667004417817606238155506155326528336330852900870501904948160295168009510525574907363533526911037721630057863016954551496392484727127635138885032330299471795490332611389399427368518474199083220172586583767455228344059867701765256545154212484058747236696538820012244448811899708543502931051149764161828640344833920534118702613461325232550804013863483798303438186664448683773978085460511005560225144761783626619651716773634137292854973523826604418210504802919321709406915394813825404260672109001592242033487689242817824141156623525880859691936039544781598109558379125177891208917744037422415660440867315908780923226861242608596925200446991912532495813094357590353784524636487711791382364842512799168426380682046231520047842760291533093464604258313862239714015997508226516307530367804479152971264750303476616742558088186914849322216526967928347104247382927283855462845242383895535538314083649814044227776850617965929029796978806700877821666918501133059937232425622281872756871144214580210123538768737130144143166241423557637529516556122154624404955514500230118778881091202710165524305666989097415986521633630056677129961389196729794148991721444959865815724858283362201860478059190330404434731802290284895922797020631921204432426948739309846511456816525133990751652215813832976811769631709853094440520341461863016375328584852182797923766271198724902568436861696508464685007428653633627054352343991478292899969493986807536198821541611183187162375448920394895345439020309155900196063220349000639938933960871470650976900073042951789790819516015852912754767145797069246123059588324463636660709323386701305194355352910594077420245214901639035926844935694561544517008801035834397680721186572341471640374669540449272532573060746548265136128472787981892370445337669868777451895044137974733870480493108447722208716631969806961337213747078981554855430393855061346234830560166609259276922324251133559256417978808625789358221607727299269195476829774147674890373850757389135508041463986454550280787344524047926322365638191796686651962192210656820803467477521311344782855685110563305171190194514265235625058696996740239859164987518813597675622940818064072711741312221853947365061222023553372343628093476792412194521355063373653033713879993888190420742475528372847955687811850473329334335971926776397729599508060686994327616524395633611566211190566408164274338407484899577134994628385450920713971024323731910156992844755789528180482463316720886434960666260993187385301109680557997764487657951518274380971267021044393207485268057944883149264011146505445578873581996709047068087856539056536917965752389654758087330980349608801048234665860773277165905601169812715328709874314875250245606227172761335581375814812322682669737346072406256787658271994389441411014247097081529628183767359833249514754248937631614126809838882424495870424608319108505645005904809773643427967034110059960910330609166792647265978849829864145016101642062831993211966725025215662397658035517322462550065732112519400812622793381863218744410493248781033572854594308926322351286366977193532929685580812066965309196454673092718278397300246341230780864561072251875475347502147408719485015872182621082463122816984183965335028732974062177576574931844202984891259995560837478256390823805271603601044108458102687102224522413368978649057201011933006807264861027597962720860116938646719853130196704604203544441736238934629396433684788953602711796626193166131141264400284601050648815693486621447211306425074432713437364614566444809710008512751728889352917269694717595688310705726365548852709421354490685338786387217340043255184495311166234428177052200608074329447174909398823584887246207071887873912937764197491628842217790850103911502175366661425601000804993265093215181558953298071183271808239938095809394199958071356578814661984637603295377918463455503774432372868190318513699121800609225283889874644783056384200504027113436780995290892815252195936479538502839744711035523442820004091523561248373372531859443636136303620309772951758508991559580200238442745124428546467966271280564338332436675504697193282012906942275361624427698788011780958323459119731701382708957078456320483351045946027858247480116348916086454040922505528436319929400899577692792871593554739157887523638159498792224763257082175019494121734672208370972822809103587956479498024409139602483542207335980876366208270896448865694705915214229638762698985213021413862593684327681078988051261907972920427864671455373826484170643420564603826297053979237962542966700082304244407229711447346742670687786323912173794950608465886764969555960415318709621927884549231034465854901481086945586033169987724153151621413777666805785881606733564851942789784821618344697573375113809042651793900148537123380540628219499175281031576949198485071958510607270234803250377389792844690792046467930239694839410171949941424535054274381710662169933476450163927541648113161475317704399965843684765226302308918386279021556847156852446548462223104882306567396126950425308995392739167101738878260994436133438404506458750370057595759360027990729219443882530159115034069534732779532443942101263283331264310124296015895285093559668414772991289260506438403065294926391139652560201048618698208093119130391852116918844768524256892164665644232242901467343068173344518104994399311664742708145436560856241987304505680470840093278277296455670767304913871155534301144466580079651163860861003585514272786956963964694929562117938640847361331848179410769027527043316904733512073791851451301914463690754383085356572254469273672457031808733882551807238694030246491838743375294624182433241288379794973008658130177876253754076688840736012691705109232487643817737984138845084375101796233720586896729312518312061259487940783870382136125767365569630607597661106887090855423453629085202055362472152141839777082984247617346007846698482788167777017935016983532536146308024502767136125881076982652263541785854149798973603819728189325714664875317932629432258058454066935495279560932728430126093239045102282854119485190898420723737474602075802079523894170133596465993389197745006472239282098295252108336595827168746703248675366971633560880837255594145761318577511697833611368934348583172438153328536107176406171625691844961524138274849888587384183160521974716153273787800176822733038964226075983128382462932020913294950994628363367486229133536648515061271274373069625668096853624943497845540580023140912702498808885573577028241519968980182747122612463987212642100109294459321945867148923443051618318110551202286069577066205687494072654201333633593774552709989126943235262669823071110499248063828792290807985620661158212480839202619853609182326509866769481945107243969820594351742932721504288505648365200093837230256922766179067611073643309144622456505670798655707075034188043127420387340115053791392222170226707187339822905427307233084975044031616281758279557397238828611699892395741472584932430622964719876569509959259802889267734138360508994124174782084653860959466153131479477522547202504012250556092550626406390246058040166061545691465789084963088213509099465592203145375725193097515999197045819643378291166798448276335809916666996161975839033524305347273605517248471859992602530161586021222755091844364015523189843549356943144506934442216310252963747932802033934346362013635154903867122637064178935699490393373478442407791271661477950573491936099635280970683747689290577268833875830920910448066709645757846701861342893939860087946456552128666545202962386515210016511425815184061424882534838264794549794698636586757940051735704345370392332875471925503947831861908782312084718886874949996752755740247040454472322874551106450979598547126489810547887428229566758745694661793820187691381732806360291134319883131066717585962305538171813740593387044240545853467208200558831456715807189243565416723981018746397214891484514873966932194076958385176248523062357691085701317060700273434852929729443526748791731436027221119982094023221610364102237985624701649416937274637616799596721892550740797123993021411051162723807664423203020468784527173997865554582536660452273823903533343172208428477020547286952014530295122943420146382314080685437212987216810100515122028177684356926016500554685340838145377297513743817431368467262440570818689069771438345034879956310545699848772040956996801076761626651992647225278813231106222888743310816138498505003058713552482064655738660577243499668079296746994652934129696369727151554418741670531079318328971212701651185510750115127345715504964745630982301035122451421746196661260842955248935589805159088667288217981775023571813561474252533944438232552776978974574986487322072533371748761630046496226267766561665432510661255827696246970471475260238491278183751195959323675990364317651935864529973768618375701050419744530552073374957852025595223923685219415092851038845526564475127447773293195713467889862210632567109330662574688437926542026851632641992635348108116613673883447394396209212812000988729067408491135950999572339827069195441295881451876855994464315270533982997860039418548314486259156540953418615188282281293793033973806193941003009370497908679983719352669389775710278494908598479226261780957956961206395912630588419083343494547495504252595259839065716112029751513018193790850035128170523454327551338443695145423268579252035162104194570008219456747185095475361261279358098685991103758951995741121072591449172904704417475757833527727069098528354326821278898173138135070463737531680061664957495687072644804256297592563025943750436996048590226937313073931303517435074604781965810214497701952701782845523743649365495132355426456853434592005941632253009312682302001538269056861338638107789285390845624814237313375687979895318704878722861502559459835575783979342992068700619122519458401868077049912110644874926657419695703541409771512375493459523981361842429966618856405808456922474006701720516414007267014734027874007988565906224256896645052419600335502905310831238464825546079594390890534714876945490455695071487716396480408993058996335283095620235909476701260953474598478256629880783786790355363974530198206714687846713374395553265394580988123146741371913726595546304462563074309618101718416610197248863584614705403369266608776407823979121153003309899658233280193027244039186354288244539217091940743481047782566334708412232854337568853102265036139579623020512792476227495856562191354999160778429335654594144140018590799882022267904523754187481906143231378604509791848956398850986835274745652164636661304042381136233404896759546576485737218814179706358939914234294222418825449654710734344209145933191280579576506969497723860185478414962656762988437341059154528442331735213382754378677454344426243944127592343502050425869171286905103109715669464347444191163965621304311597411383217725274653660664936896551056113126576261832495489891391166398387364471913594791504668342931616660818891716522265852210660278056959301015472338574446995778984398936447237379919156740623111214438272782265623533173585993180777221174520399654561879771877008559393413006501535619308325988886793116306781924053788558535445601321993581446914064577840131436292790394745430513662416416828999487165053659630209122153371071662320466442377931181052653582951797251023951696514092225393048503459084596737022747765633979277747490931344413438098988624853349108916555353368061154181242662604505315339772120011941969058776991362060384405982118321569354213695605894509441504215008588261335598361511434104050134710704797810145782792458785124058146906958897350738487958715485829906805837346246852130003349800152298599514691127146241822966277435106987742952023940399933679098665190055407542933255672200019262703580972216984516397867745069141917408877109292096854994578107016306376102301394879910682319489660464695890246145911687101831698224567727407912625633129773610374373868618734940918831008749208157681340821007392354070778836956513627411288048542363684689144603179541478629448092801412905216001756001012427665397744083914532651057129860015229519492128516098468954012217307254473283009458002995451140721698234877590150452174123303894214716259899784223418652570296523212060202884600818414289083584854467678202350190671121513638954753827121479662660019953675524502130832495203042698255768264715836630579202800892852348572069626691490377825384291694202394578341423226460134416314843815039739810100974349699326790514900004316307424245125092694059150146198374938767638674342995139979219785710661507507651021016890815515701891451247824138350173696975797834056315010977295140026469851148635163899000927838553185232986975689074901271548876449425462148305233958239366102893795004381821414743050932484152434427519757170254337650547701285630067894584642141116529005335323192003438369249202339014786260470260615887337025423640343421543055899145732782119050371667016239808096873698395852558322230330859794117737812033516341505248620066202524757420369205107591011520324214089919004476219992067898117798393623985621200046004481024887625054124764782605139846170405939833553623896011716825814418492031790456835014323246737816219419191943086240307013421747281776657307131685856332722006165949410598336347953086172450798448921929424612822480262902375628895203335432276988314598667681751601167430056643680862683642760470730105520735009524061997960988868041113146970070720899300661213899805514195722232455941840374512875680172902803501113776770955574243744012557955784064083432980275444747950664500475459906052627185127839511596400421683742140042077929452251670150714161989817075993458803489393697395685493072604683036391457388412594858084857655222929442473241206864059475797237391279038499649978288934725230224239518746367912597902022452186357318165403087047205728248820618072208485479583787789563090404189132405018898488782450600443652057021462940531933671952541221726026738202628483599954786923178928685058608665927906254023547634982689334745112390152958631265328943852870889850092072247164350066198993581295279297037743422746889296473075446947882570233198046606777984171889548433195098236010207779822245013637768168955618629669491569549618268130364480895352382733225489289178276698447296520200449694398758232072073972580112024482393422000956206192523173509214335309547892010702968881895090009429828817519581850797311923050708195882715924374390428372889942332811650946292064089606236939305273811824462971678817925918750148813910605910431934463102129707152644276271732882929691305778295886837055969514457246894129168149020874986918507073502804133833389981574511197682469055333659863537211667814638501220534574500757088733715737030035621518768657102330077516189218252857841834282508677673879884694508653325802073268151667931790062318360415755815151642190300954572243671763626807205576222614107985730132088456294505294547363375037454750475636974843143009411205122026026336583258907383176735133674384824407397173833749520247059795320797446912737247063629861609350224238257308616834744078098071153595373780316163952543378202975628343693798820064592662740267183834805115846552804379024111343130377592935896008424255626018594599995105593455336275188104996825973241241942094418493794614031123172498628447371131821734525124314864263873935326464779788367996954849566446848682636868051910622258959779433333943498057200702132041254461656447700432664435437395152212745492134831756249016167688052075185397069234536620914423828585646393518470577495352015311150883416152977709101041678369930470851656306539606869280571278186056902165900443750366860912411320239785771005395738082454100246818657628506198368710285315662270755617168225415853103687583680423750877575418347141586669246755273900776543392866308833468032756286205295365855940020202340179619470203931611294406731164628879705168631785144238206186866663773346338976908185909774365762288670868323006068585994714260707085834091589569661149034281522061889916413691226439810476541426563572123724690226812575751378099699321215391521762415104715366847399028578314542912792977248225127779992741098647946734688786755793006045748872153041751695348794205934098821797297517168360538301048403611590680916205911285243564046362309681346242241712130070469737841812124940459239952474000981835552651306682043707636025072794539353527521277203123080424573229276043046612257087801344088034874417587731872118202129200597442314362628544792369307982735677923353594388702410644734604375553586548130040720938948821025584926465904602681548457013074704920104516493312958075369054725980724738993749727887490940818229878963241110625123044531611653731259543206556938896249320776076590355175005215498317757409432737116570553953007065567869592722110656458594698801328823525107724016372425278542684178908709366293292583699924235055405412181399984276927465551614453539706119116506967346137512991918875572143364074248650850779261345805482433998167012034627514912356683050902197586351339895157907693205566908400400255694025907352670681137894978166968594132122047874623637982493666146511548548333212658996810477401826014576900773477710705297360851186939148745578953529967286556372920782934438481591439365582533096124064323441821186964323574749009771390631473249821817983487383659097745742853758788183903106194811951704533869191035781939914378342936222837479401550228116978529236302513056201044867184388389745196248524297553280376928153144755213327299659221876524950242569879411068220765958260891917264380086138752346918540260709753788875056796449864322475280569197761458820414137689076974295061587252045982229475319281170611542142374461970637970683749077919083555924752963178644612438687861437105585467729984163410983878948658315245745117081009097387546273666820863214714686206466800954241356890264730429243944603095022784388680156265538342842478685135602264939070757132921881012245989426508210448265940823158304734388312024938635562638546400175057522797763861517779074484871733979987236458477935538836785610412363235081744633882453403928304331806715994643930615314771877323126239244413200266596139919966801980272197351764939137596551608494990402973109238220432398771719280483515848863773457679171469576882897773011466863533278704090682416699689065553674496788135372203250847123806323762623968760133607383320168836709365026836953653579145776665883990944421243744769009519753011759105747427556278150214258738333026708712544015532120903750158644189798101705936401210471258442374421378463382140693201639641790268471475586892027912198014575159943120867138606166755310515123967278854799781160672088200841408622339726395079713110163958510368547005263248598952246001585916267961749564498951733713163176128387058870415373277254167641724657919534833424978775362689092169204770245564495245002006783430581545918433722139239606968380933059966846746933394249304613769002429752174161201810856976200183438698082684460165961062071611236292707036549487465869217059362796820270921645474423438595913592007640152270585331447019778598546580628771599454692365264350365899724013901121188729615646341233374766170813830746099863306447886023621808245828159313068151596912064009800070183228340258178885350808865748276680055095906711739072010461888135289714112925694703532592375780838199567427903445214878413977908075098146139860605707481175851500267058166266686658768376659696529822541482349370317276714864274175418603867322873178022477409017474907383204784171124476660880846676271174278520043826744574651184582150189175438408478993252158368821047757567335206553233409263055022219035160219317409978291006368884354805544639168058023038655709596120720104504308971310164950713781180510539266278770360543650620676042663288315904558057624091081369278333509240893065878039279510595884336536066039066917717813788939551541007235675874751969573794326970051273726362988462767459021021795860839959703356776134505721906434374501176799815594921012602555703546916238000301049696646113576454081839479485186277393708204148546466020412930401574882166952592797299828859539817739881575508595592502607039537946128478735395734086216926315857906542876607750410147567131231798234201287371887318873697654824849471755086111857836489219969822494361782007374056353014879472929966160208548764436434211432904848902925849106668396436182486360864877548353673501293030967981162027548157367426621159258752096133820721343049771482423560485606480563401659584405692807433028600211142666156048623018047351245048232526127208399640412998443801591804071237997902904961902535153241246165317863382209671243004405707176291192168996904803560394782885486902891973032133226058493556160288542440776762071325140087098019228234407510768797391829077153085948004775021324053230293855938599246690270311397199179657929503859685776587267313498913616748154455519073433496614154271195933346181116915469328252516453766146946471049964195375488788631435535996031083861883981323464199057577288536634881756248032631610128107543810521884619391652648993119925806862548783451640961203322780767474535986438174732604328156939773030990314642614752490464062890907017659113993857097744418493597045222695993098595678709303226270153430861906295506017357272458469919914949623481534566602169954067550906676858284738873912785327163450620354819140146291994633803977216355574774435902976682016370521685733042012079700715879200851905778009091920738491904351679597879480897700813950772735209681184603610750352555931164604285457235961500826494140704069104628205447727148898150709260000513002449860122367259742903689917221385046769108188852886177472031207756902726708746689647716030809538622053923378711449402975135881399087511996216704554525699890738800046973926711622339975703213663984110822106686646577912251316690575595286849994176525196096983670830767319037663515920367681548277461193259947616997840798583068768869085870723807218937640532322079710079262331665642781487168400943518178499019830729604720094811471498560170514430626178769818089305394645227616296852235684479064054520892580360415930811438803197734923055273498018339604575929308120073817589398508588819063615480946385657439104573871041226211680772728551348806462541086352544072983979524512494066932414863437792662345231622658118223216488456236923553443796542347766101044032667988713208079148858784363761249352536208524877378799676678225803984613921455310743997924518575559224408774880209375572692871852752210584778270671317302890400476453004888836070192680173041688836644818453792140849859008319697509019417730728557745590164768195300661145898435494607575518973125743304246087874949222237504884151613499333930199884251375121095618411296763291975055923670563868625935952411434981779776023238844728301003571809527857494382745981922623036686586958184757521089909525051191564733860564283496980736702056990336410432594631562373446018641764896848023452296569727806855923667953221007358312632424744447145620433596961819917520542106292022129397034588770328871727566089257533748599790649790923263360343895564087262718355882419814700751123816250311538002969661576455708383912807961782581382814054628629344756787159983837871775025292299681922141483343949014779880661118108950870774773448989259221186077499744254450470766409348200780829822726250251907169250211352424527028771308983499109000557476393485176854774766104544704632858305437441088534429628466989012971041649058119007896883223040821180563864006457580075001283083380340769108950878267710744865343924975782222552642597759827456632336833958186037761364693497636001870767506007940594777747401155671428538131373600050797408356264616820633233681531163145267723812980451979717096240988296449969060811715535148807729080663661746456917356920463319614569283419538819239007987193580618716465097610588569528374446311183683113422338016604850606658072719109044131832330463873850482698233761773448449330959883670037833266865255827553938914062918699734572235098164320863963210114007103718481749137818853510223234614578072945538150605033018913514323846300306996104674137018381252615467955305188933805590757677172705753750152195801256006085629826408438967600273502790004613856622537789185489866839448979654605207403491878065214927073909917530077063228654225733025116205991927691659994428160291654076488282531749688908398339716750295241693609790630025458914988554212051993678968456056722178039073234897364679983188367503334732625180337368143577577435085750681218337881212579251680074437834888399467173096671223342990345300791574310537259494831674651859698394915711007509252059443946735286605885630401201039886580995096536506445375760152404965250310041479534104562433512138528326153490918816628266150346416606677183598268925809684874622139627512637375502676480138052116625889904804966931183897115803988006920529231389828470949493973786633951704306751344104382218466329096890312313239675681253008693079453132530858688893679566662591517995656993752703165199973253595237503512431614513751288607766720887447644105012549791368727275133842596377225440113726282902411622394475811936123937669493666413709611350723117010215595933013143567491069526497311883076127802784923307241947085776451851400163218318630163334453139900457335740708444408780825079013969622629947600282672439136728921513911564194871673803839894191067115276101027865946497743742486672599566361329495353531392437484869726883638779618595026361361490486256190930126798027469410246279315422012176376754856101880053182649713485711637258189213743361104887247040472064818949800816987068157252284680782398611942829531217869175530177655117627650315533582228787982519211272317516199825487225077925506094922263122003697756655174011680946462037088161711740342269538724204558521202355565292823776546566384722381334014940666776413306793154236135969314536565573216111532434812898068363381058987385407642254176774690555230936749513879794236658730176764111767705222679422435302549384452129709267010960405034026533195581520079517998464875758238401381810246846296044400944744961785140777566769127904989162222251825128834272612568542491116727865236705504881005943311689636390374764421204005397042683794436064210307482391962417842444898267326778735691442063562340064660022348021320646704270959359379625746729920238719229080557026294544551860627292847283460698022256229343277197369847821749770227656402203571965549933420967170118901049616541316105413276860308262469654321663179003692839456439971743334444480729595848842695115604547043079806258477521209075948981406184163853128625768725635032905816203820563382327849804030665663948616539984335490403987806997730438286498285374132860494964688484426506471075150397400781082984885098029929958131859500752421456435853790339419998364858749694903287812694420282835510087296175956690317139953245072701867466450602114531380731491626804838660367298153490101730725072402496660292361735525940979192965113206310349243816724626226260807956895313799021777949037964181459400986406502191415479404881886472606275375797403227712001921232412091839912250148387123354225975728650054515568777044749532238528820452319201171180028206406168915503210571723821232456238082165743418953448720108019792404069325230524483745198715350284325767552506709762476484586584310184376801584712538672780894522247684536550839616922276222151005875592049595164045933860318876483283635286083776730308069034027967825006946743868814917724358047890019922752845506652311282796102188567210509058233220799670003329742823847380594907970702506576425353424450008288687331943045253437154521102402365667465682779446281439895300303557226716031969000220908922751977969535503556823573956662845494555893297977970293880561434796030663550623335032008295082656904390173092301440412097029645400668919176126231935599457103754749877120815745858296254602840385420355769015303517819862040471877991051993795982532415849809876069380371712934250819179606130991183276925290610134246181234079192503831182229778793713793533334375185504156149097529075399186142482475491751083490169595544639843949790896652906261668014588231830002708585807987639312836452701834165164585087866340020684111860523984400070126502861348254292774585095469139009519700779035670649808123202819227691266075440227780040833289618801017120082352252532554336701441322521694704284376051690605146082824140234732282414443323398527425817957931864476732077077360531883102195216442119067151344714482545477829719365126749520497592146572849434336788095485976368506009290562984542768379288698176093618055229220575788284536738784628558893331412335845964585104452078050166164780939729912714735566945718797166077601340577447267472384483893075123401508140698324541408441294181125313249497354988263060324564925501304443682811863994028594187633971496882498478047853722003771405507435917833290579171246772264515093064928438653624503989607210490653955547332481904195937861821430884591120354324056154725417901410842394034841416359136654337939626695483782465720123387998046612975976599245436032198168858072245610514489887250542350631974617149811228195733012935220977373816741945664055173240273353013474220438431015058135363403684447735546091512814748396389829845298441671777722921389100818342939977290975059226479433122171325205411650641469892060857418153810689671747914267533444192181785977999596383868109322816910011007512826169713326992121224899865299246419753108162815644365089676385945740920054174735318349514888390948685183066050639027002741415428470216052368184576842167005238981424293871932365114932155502830529468781891721970881789000771530879307852815120416526578964401889155246842903473051964963391165809903073611361139673840123135310871821098773108465815038620008820867015557883831882819102798749036481478027125961478371185408274759624211321983449583427956907822026240129148760608056770413512757224520607887650185811660015237574966711487219161785008976854110851958318459668912758932577260576931335659310236327424402307763355137244637304413698567667211005567429205264659789153128262261763987769259537150097930472162467031473652685287642179439666069494713241243516773744274445474657513910139195540886761564823811501062829757676281068375094866847898230727451538570031189766273769965251672274958739519905783368317609506458548723328230519451168799047584031984134001664809774408348549997868418376468550437521102386637007120692517911121718422013180399077106538372470240650859184620190960801035969886308053458044623127171366153637921041632431870609037871143540459242230537351175727719866326095484102664474579884504141132591343284794435590653978627086189971708908874238080419242058804993923334251020769777957602066252450176241423794867809459823806810053897103548716192264582689898004298689823719429098250360980838599680398458376097332785271506723825018519513773752370488234774225309921141559010927752947333557654569762147861778020436248118226353802758705510766001067925206748885060193475835221489853224713936140903020319991809280853146010238967020748051323319687177861136472321883631137363999610629295366750863086973301413057385056726478915840470821601573242039479403667438869160719390392572587197302501112605030983571968156786317444172206321359086446920158532547435824647025131366936608047442218125209562608936738039107064975597686990382309158084879119536390604239397587752346016974134955609201047749553364084240500483485666858259221295145936065871541367964993390835402150144814120909432173370489636408964628919423540651096117986367081911260171548771286752587936430195682384038054988925374868425374641100064591310009793422936955713334577877065562370815159609027309647696762990611266972973442836938497572029190565951519883051555118309543705542832201685998356441535999353364760983194656449247968245668557620486433088425555110652089446461096523964131939617601425998588422484780440300902132496108627346386777009906850546916518958434329128032295532946921401990703013141707323680979707667408430401895059970297151989791518290779678313402719995642490875879281054313474311096258302341057829065110477875701864563821713302457846525705048518155152936397512414341157242285751742394485896595771030848100195045225716720290891549463417512071567404542991381750100422054601301944700819873587036154588386736979908276528487292598774074240161803822727500829614919132115637531436639391917720019151032278710187808010908798778048785341634049652531880327831616743941814011412040759368941643426832182279631458914124569098158579943505976119031819720653013652310208463662978986052734038955408150323147167408226775577528248222780818202863089555216059225081277778620001849655565971759571346119804702673693760671843249749988949714812374128238879458159853835710227286242933427841977693603485012837022021849493200334697232438434708904109092639093836140671534640739350480499092318918388929660348937905355984424446854510222508198005696924268895448945187012217063872504549288303145787819797005248129989006876389888788662569557838344501299013659923070903191534976015512112823330534249887202471156066844985989248476530230016232477084498796189574010271280450772155531345732521805862044263271211701745142618673857229155603977941610334775780478340519331283025710002870132253806878998657649884749366820358187348449521474961417841860895382168334397711899707124334620844410094659204246265610007073700867469798261176494961719829750034073499706687211560342624177175895680600813180449079421900093191397355483497314410492831490938042735130870149188893303400182212514850299673210846336063004041694890224604659866630531552764279535912618328043413159991198947389045061463350029301465367712728277721159217050641741242094244730982905276755920800527695062957405715688890776580082499129046019477974155603824067403483096267988922064515084569775615196958967635913159112121605265892093071135416979580590751518912919697368799405263727131376531087261188484212903139385948052411556212220081429783336982896271973798499877709339028211354241907333668494866854934717747531430108049370948414077516244031266450285562978946393766136720579588351680497342516336809770307826139502603161462802211771822385490022718264125516486020639492120797164242716793885951088861167144760087701504527904298953225048160971857176230700303845850933111671429016754063247321918395733445136558451181827144412269537945143988230440202719604301030422825205923151670696582263549865989830900006337197132571590318025343557808013069223575229986917992302370392690752075754017175251815221137503499557003501935783794769623154268578659855985254899650014632923583958292877143667304228239687111784565607299162013415604214755594723069126046091836542506729332126766566018196158366587273706813177540740648894665973829399687397365666787341649323184879263928236943125008576053850371312532774872357767456340958000664412723281440493442985902099260335056397394977867403332802540632202539436763836327333804556462585426145756419432221976547730045226124628773818390019282799585753576459910121041953435498761189266451751491310635156567049059701502983782932214360481870357133114676226550090916245258901075924554268259417018465432024796171133601081485605008201019119405969909454482828509916776599776169341386790963898393828286692839480604135369249096469183476015790726868557991511217236557998274654437986693603317491264826515576687399938193142848792528423854127994915496453863953192180545077247444536504100624548350865083595626661304009127606503211511214447388135669348189611016525091334613937757207167926616573502977686758029250718614695850653995007790157751262646681742122801132067739762626131000365196333466816920788657859713461817975395768743874454142000648316927414494692040138665187178304590333639892553853234939227571840848066535396855903572294740779277148184510566091543292556933625366337395241364219521885858444995922222485221906090023871666644479684195419033072875862921590307129785178314598589353063882328901302442124483071212947355742946220460479086326311755924333501579565919608255042714173119587229639683032513268047970225953256681184499367086691458984617251748427466614366468317222685198523879490254399203979190477708434396339611683651737729456362675868345847487383826290854314381228476858416491231808943237323267000443911576049723601934291624080664100056143645788633050260848011294261041658920499786338746509501536070779265231485318474180750941088316194166695427140506837192586448732555445977314279680017160010310140417306934708967145066333276601957652748304946461857770492822237176853754059078048662970815820617260695271245865433960805468495345024735558701155179686797123368829045763809257606023978689995461806252920132293781710696435898463497407151462421605395757516901943667560304830624950364780438026255511735552085975050974098666160885977947577835440323263830791633940183474582362631825126703831831645917859279781261740953680904996366396382514689932617205847782193301128315561045730204682631848385806278198843006406481635268002261046030053542790455832873330938263448438657837031128945419818766524612821041238651091911742722929019834451596271422292116754333976866742606630593008109310798530017236699140516036533298785713163769537933542001503501493560127045396740606789171853064479588162685492846935986466786256621667483011923071406165282118223197642982507202399810129033110747422898776958253108105665080386521127807528900554769617423737974123120473444626828455718988501299700643251925045304845686746441007514737689481635606058247594170623940356799049254188947889221577127237972213473186617237853396635837391766354184335137346261817644158995438582343039605951771578585790440637350145034689389181636386956504871470113574446300243878332564267215270853285257326690439242584499914138780389892722949082841280353896579190149078696256896394105558916523997026304200855031393895923952889647041804830387556426180130229649295291675534193129807527548007145910551068598952560627632384721002673632222825678115672676696837991408810386727627667407559612981524219783622918915042866651927543673276947914572874177132996811225756079117072228623959512800760610257606394732151917204601587529856019717908409496493787089998951047311776478741934493722878930059741439771766710162203960571358647727834428754701444120562118635430704391910259889700802451488736726121718377128899792655488847867811895549838702946577013653205760566647022189950587624864213601694727314301250961241959387137419547586956523861560149196918897448310472454691576887787495780636906958056054722892429059530457875109863472944618347422276899901216624981921207809414492728438280506433691240299676837422270098375661197930092254105601283511478389518458601503490582973990613418695035508911334655374746030924397277490169022284245619598916913750515614982380134166680038075006273118891661058846230406219655891271651634115955664428599737609041741122662412667005628756943690542079197620493508275266041301069781530823160864724596539769735414013528916856313846306160034117185505265382858669979004974060766398583357070764740448166489464740806831776346380967518436419120271919324381015296590451466527811511685404321727550963797179713377383354985782543251703179484153934652915046991938706996960551050755617396458682996836808761231284790353880095363280239965935779852871817390862114985617677537132358640750215301575957215091792280939346926602750711137163391200766527276932504229574338327213942365576111975806839398060172591324902504820638541300249489767774621235060801421944037901363011639973166323250007122254646343546575538412286044831976248974357755584669197636621792426198894307958454013537689681661283047414900917491392675382785354756788526221095505041472721759137357830224767859790014951359302574752725858479036333548171310531876019677818313140788480869169691278012503197891073690312109082832439571079593678858713409269319272052572195855187211053032295300224562769099106829064491607735885237998646604358832686274146403685729286747707462012875975642764249558644279864277133066179205579668444261583688752227450862836778298185732698980970076237822574884188894705886140613046026404416827383216972712321555861219990185720300876427079342132178038791264120055227198964411794315103420116531196420148638912897097294724351595529878655791634570238068163098346980991903534186744610409658088486598695188329267752715963824367042849313082865188633217810579581462427249679036946699230815739498138243378231083386610631284857073756883891919868616439060846053989866443052745228690794430453777467082970392014230995166171086777125185753633934676557946986181609832762939906205370878916807531544525140372445264671373861656099686298111073071024054179050355470431781059429526641218995253938487733763010183374064223763720857647565243611354871752895488227269409818575912586263412652383429264798459379069116166805609730895994750315251542306908173234325580748181003291352466100099647510950862222835909004774236655563839160521175827637571448494165171539304078033495940495019834020987146520106397491223661409145578942215090445974914750431175434292613115261375421258776141673628994266774086541600698317331928590751273187246294771909126965375204237330807798260584972703981434154506464640018093906023484416099893027118449205017931966801195290406918696008136913824448557498097607718769371354816509596748184895267764452165823660345540543085267086257297651892620943668421415057185889451438238361265983430147106394053197707416029629992294732032280215820057681005331713483854490798044290385184150206863304554487816769149013826427315803831371574245345236770156913179755194357949311766163283639863735518976673339875975029688647172230519316437077236064361960616903247618778630041853277348380016336146286853232119478087968672284287910712738467451261712699699658625461332309063961339133404352564239611902155709788089398642234796077697777239891419894144979601406694323647078524918213771738803326634716992536100253029907775465761687183255523659223926611885812794180723165368166297821628427673084400138285287518926336101005918548938994319533159386144547038001909027068611840233839044660754933722935049417183784708171093293008814617972753088591215579448930881072993303594112353939336262091661514014695948626647438783535466455528021957298513466615055826660687524168221907885210049342975873934131985019508876419139415139607284590853972077759826647818776201055813111803349285982140962951045736566462821130454349982595866056734885326237986243967883966747861071831727243413459951775251321991036634781556980230518939444475670068432618889518777307445704148349597377078281307926036583372601773115619459920675812330910969391735755751833899836743676142208987476341832785166389438350462181246899261418924750108662551157149748649775533457986345837905355438784695061102556955217148627924723311645480870716461443085109861741042828587895503149582418683043886523624492343364939428437285900288901043494151549607448788306844589618951688969455524271755194739541214044011466223540072267705649055481650581725167030396619930802408616373027645679594161421776041870842101914414293510247056564842470616402744650751106980142051081842841584458979240343201269126720080725352556291157524275097807424624438497766887405528505351498584098312404136656746905387087420310404171695766942367246246315272089643093538186565026697715310026241079927765541420375731622399623537281049809736543876171389553058726545525999452904932688637982124544248513844728971535019307786284272738707872208603904517989491193355765374064995684635601711059873634346155654888650707408876904458376996608840329868498409917712997073038794518830463382412374365418902950273380760820238368339632115716284653327353588573535470898418017042794370638125541888865692284308106641113024602697372885425465520074038923549518985447729437754206019373155693010708044385902120313401060569841291384406605358612386867323837563933165095365555986783643196342904923622230690977096833595488241464179215811417826111969044933583076074408604951658894633028474491078608525826891899294324407144622254147203278352718908441396379074280995611452859307966673047162002685986428847131918705090978471180938220563439535182883330038782504266724287507822903979919084754685153825105685177192502861032734703772852027456600572404247626113623710034501026109952774738354505268398247018295808917244555387633733483124103049420232402532372234843785292938811070832077457627362105528388112501087183163697701892687292531287237735221620816764411079327314421426801676075237822071868971294727702586810036635953867550019545981240894794438974804210593123794364564490390516787852084382892250055592829486623776743837396979985939518342312933770010696072976381490553042450468040348327326179960699368180161165050678672599741850889443898535910715563905169153523901819790232126040820807651008021228462239568797777750391204240368699675587738479959211827409440031471113725001570526061047622890739294468536720346117846032428649083671852840070517343869469456953334979458391124640046252762065272895220694615534660084434026293801939474765307407932588000732979622235423080365264898319827895955005593262820515806858241424211596085523853343482610785196350356761137893487747239677129084164926005433820659801432260901688232432138430647714595667168304381664565900436811563446379594136968426738072056544100988828223106351950716104406758917580064305642975398778468326947895811536838742207866173269943081002478778558543865708689511938990767987695311574097684629963129419909172885855815710111364943719717366657409562675020644489656344071277144907745760270824521191077951747570483693443217733675598587469012043905031920839442916101675657553298181261907031247430264851318352985292575289130892856674993880869919150612648884629848117253740682235913897818896952661374521737924922093483878175533096528402990109438226316765612775303294198937294964542210307708773954436543111396733750465810607365225203461936565270803997528100179315091836769092501358571257119097248354677186421408042260456411678194411004341478332648824415331859369403902379679207481076665418072870326982950960357572711001630617805918433345041888784809021259456146942383540833917023020558945490215084752351520021362799233836096951596601833432694794457259090731547737520111378336775667788762641614668951387800258529650671060718623072737848740900460172153450262165005338550063542867490669191292184652757158078411892109599134772180049575212088651380351382938658999977538183916694618807729688099778397570134007879716703934552549059888012864831232167677043480838980685988486761557736919149545680271559651516918151823057956705175083640627457790814131545476693363946250762007383026841472356787230937315203660752951954673980694584965933610209453787475957191126473675272240674347558580487749821612490138095610498573180644706019970843889357843754918858149415073629078740833733008549908730635909115630462735551681848388614927952249776148737346774268437452496763934675411620112435966884370067099384153208371214551206844772049170466029748688027108421325457640344644653328233830607508792816890680836201049886247422986918868063024336840533433366950752347091335757451402615904188891591705819034164850284589024876184341858633499407914598038905993017668571979549571762630843215938894656116157009073497134740877855015029419583512578590766698865431987574904781462904003632784114364046233709629791215480342874294301257578064794000626409489408228918045573041261914409459440461969707164023349058443186426329589395665331330552408440295312988344372509996141563205905947558149873169159097669090659006841689523637684430493591589884496457881248129306933069761896386872304158551420115453861637446144571419498914880306849376664866582414809339873499709532930102698500631259365419612348895348601363147487203106501020909694151449470307424426651248616207769144909106037586769162653860059756854489146229590882584608658757768673818034033083547261913308166590724015479499016541396271138067934576427350799081054627454921350583522449884843134002919660804704283089541515081472364626266031873285480080263275117306733537247723825279920071766826169678664226135126567919700649840690741041951872303419503453229773359320784204850157134895391900218522646697334533908331449663341420144978239321917990425737025571698396083482014515357483973940562005521055736007801898261121519978718832098429854172762401913331203789749459682218875526822361386642468452017252765976130061548027507767890243528859284752618088211429198578807263330470461203079742730018029609905283924600226591570381661536062368894824585362344943424147486388116327610835180850441886423194795114406560652228031512360694167986665971436047990603160469703188669827337389906885160131342556638030800824380810698212149224013768051328204149641630179398096331291829164398955009082834131986188501787420383787781803472414675884541449778114513321956789129918515318899831041542082388283896208690169429527941419072812351273410089789789950831888657839062171988054859085018760069721189462400529956573035318065371393515616905523621263343024479730001344036927888768590958379367089581894651826818768416115316578951674728781675523185156347645352661787677841731847374857692496484144583898948668238554920352129191556823464520488450156428186367342160262419102232313486937959097262039055960652305974576762079811170688753570270279674918486599285912973856013315023678277999186508387304041679261180534584004415734614541636515906949541366655403563717077780575935292133749699214270776003443396762994386127152038728211152545163049484827308762664071462494176560140867446822882661012818877585106761761992408675089346267544880549271465370604412145854995858502597166647046500834531719272145036934313057306556077522803390536021939000795365837004965658454760196739078980874630325779246444332042407698933389380380577576737012827512632675325058123291903525326441926982696749809431646576582281241696242065148262427304187467613701837228098592676021874680829901570884187410298309009865162068961984630992519902946517623054662618324116275427717572822129533990450665544231343682972260584255674087258188711950178042252704844274819994731538718645106677579140644654828362715838373187714763978869083333873399192327815324852402875400389197711832946306151640421698132319285691498006009249083998598711792871789609161958067547616349718970296953996426602327806418309227809333251189852169163935009380946670382174599338144364978102083594769179544538543911201115486290587793095553169657442267624348678986358891782609677778400858380926321430951273299570792494518488761328067612835227748443755501997987018690053018600234144808181175479811685863124358974220694209361474077454997263797237413403186389731734648133320193373308802466551526347855342703121743859054477963150594225632181741641643403360695729587120828928736122377762865708868465116684760887464425957662756299199850211440953656763852438044817343787949599815147892630538973831250452755173944318429341721067600286015746485399553833875816017311257795396904607230569160410121323948965421479385581012439370303865670989603866528457349116030712973670592161557673396461790070617321023020386271015756462675789445347011975458250058860684316493113169182051251014116420095344913614809159413048734426370776845169832473426195441420328940047989799816694211955555874278772515108057178203888430532000847621251687879026682561136774129074972571127558736812341163276306675718495656123111369141853591097234651211243729970509784420235146923868048784014203337685295091152691111387738163583148010416892217311676982417797310690052496918628009285929029535405972354715625891038070145828237944144517195543590994440692761124452752879859297669133163190529668503971960680226446584509112238645671089749808032560395996433448121722365414206522928559799954876106278010192900930584746426813836712172354605691215893547809097747491071903643035821720669375798365419441481602617504683828053975979278322051035449061120095873997579454196343663698641805697492387617900554651438518285018928690167714918261895049644886415017601295951932827265341813234466981428728090510239305811903709627930103537047335457347072485583867620567278290475147372838715026708253302388615589864135223768505204457796464608086286115266351935234257913070583017483816517180096960455464516754242977933750717830126409331370701722801268811239646310059508079307055291487425819895135321447295444791701381987367097860836239097295386369122806599522754304144654424449053192960191640533579907602116668467307058207575261106868594307434627760044173830751216964547882493187750966301924831368568986826579377114379059172168995135001879914298596700963304815234948804171912150639821636053436812739707741645682429507203102250218916354426596412778570367084377423857136466453200443769994082170344364379019488734519324766946224889361124427456112797301065046628545431333448863662907460054887245868912674995961573218725015662916117417788548575781915399971522221764624815377259993325907242902290747120333457279111690513820915068076925296530323604029862918193310436764205881759820387014642585255356770519484486383398681235618036616913012869894285567997114235439715964870674441649377972675497754402841351329577686431478906108391226324122968326903426050506544684975507885209056934964706469758197699721346182643187120202289757185762362967897189522699945537688083398523230132776725287999171239906467340581050739559737332571388061972997932886582681782760945782808661904346087859832743311842292977645354872503058608130889759693185059395926076621815243713521375436028951535542194241705969147956032541299561992575542991614134390196415724612441549099095825303297952730168122984264427762677513796509000795829127871880361142408223963420338234159036347251449527814996033642579656418729200596060346073551879950592511766992201214796223563819054596639938489636732851294175049656965063842732616119795125659351598009344686793570751869913678803452074803303380962684586235709290638994501238075210595836549237493176048584830853851674644065549967756764355465658217771683747491325711119237795319105811047073733435359329669501794636898973568015878157469341283598383029887399982989629054353868364865304578913123901456676711649133312259146189734233560848650539496639583407443079054388788208061608993159223773917085335404180531523263283898318323823339662152965820639108914225071609467682919860890968085995224169951168067076744890395699381760971381365238134046966100332674233334859699202515364735969661300241636533197448553711556344955271002213068078031105862688009226863943487007394320144656585290195683106541166694752316023522363827668654412077685522869372391048196328677120528867600496733340178897030665915213988517210772965884699086955737473633898908327960206154885902586069675112299270380224782310692541335630093392627230796056341728828575482002616026489780867518907320168011091697025509585783827439864754818863080767035758500337664704531630411820169326688115713276140857332481098467214247725636484468942893335331575968299145585198331579019743426703829557896606426984833379623560087541999140153139489845336171297215080065931071257859062440013966670061907401409585971793674415819067285237052831848119025442710559029029882876168547297724004924036996049019326626065262589377049717250189838857129651408812678171231887981436440250213150784745956907236274530952028105749470933983429084951503839682012086454158904511365951802233271943178211160969598897439079224881691341335774833155163458570240498704323066610091494227003638881487947401495371205660325899619277371461604524537291799223709257366425487840676190183606317730955529985393282109970569793956408578657921026916991608830469597580612459243329328620725471244633719087860358353737027634496437885061711433550640709527130481879619923978291895302090152696149302601603212481933956994248379850087422621318445214826214384248723563751881655491108042822144034797985552020252633601196882016306937185890067409384621844889167505733564602456940514776816421565996746604463460767146888523669757598188431035843443752071432155370914414625608314090546489678138259238357904586645004643318974223765363036032514684788922606969713898644076679772905824129423278311711456402973406479461920657599461549253378624027535771956550320629564448615078529562359624248603477624290303250530597286135882371644509295496580152636148352991588178365171143677191112089059341109042035278670932923895501446657871487134016174925828785934823426637494950392065865349144104367394207278440819782228052459413813614707944119846958342550213077924459037722325676806655171196885140211998716517792211385097895785650879250956870204093032848293384111957707641288498648550340605892551344027398482970588278960338512312569231057037746694044117293359533219242897229260294704437679115612514164176908645565851718740333497444190050798989210317761290251393299761503464309007103662683200059577413003154590907409345386852011539744882524382018710633073004430031860435277417983962971477367380233754166323503370957158010702930925362788149441971361709517149582726468347215821738083382243462921102330015262266490157585498077096292200112101745958156543845687951667596713095203851969161792772313189139373201338474305537947750764159574421517661916479991938540456501416752166495420623958593207047475215772433855897997744228278337379094032999791401887105213009095879318574336107834276530021060396047733500862073513418388155152946394476176903352659621790974585859102407268296177932470205371461355620694939170907864744986418304507703666152090686816396623491610410826624774099359235482631280346835821528260278741745999185800591894841009863320744311195131572532179197178795960906019124404294848079834830399636341577835311288273902518482451153682124347289608447078426130789783552202876094668739564589226716392115721275638148928675895389168345435119374179212568093161416188900316802384833833398739015974834784043392599921668936462941464113371218474300825467636028377654934953760810976910699790778780185411684193905277887005472084753429862452154950032722736892202885285163147486566298657873125850825981456685197066755360218460354952915387087102392878233182628947485872304046976324600643146660188172582980906272180282551658053738765817228486379834098286609697909546766807421455145791485008973844477474759050060170438676409102028885386321298664720577250862270088749762964480315587546826960154515396251680887056627559603475679366588513865249025000610251194124829900468979187319327094785020454396114394606110204233155616688441681417982943913588536218813973584464746791066073514262932753115831686809754832715665222561469453604009151038306149868462491099632384467556120201531643390278896937080821409601375296479787465388206287006235689544135974790506860308213749928090893112935336029448725557892173829562611740968553810156866851961773679626157528755099499720562449716515833376418236743919787587899468417239694918152893881644642013094347819519673082245254642538394576589290849762933265332053476143674328222747636358645685006014352465555969941550491317108463539842682763294262058943238369416495051650774215105286872040262790622766901147229846260115434055213766854227917652315445711296883435902591861566959792673703849851692642980828541654249859104390403664740969131018154682440903145129241519484124324294037122097811171690070705391007940440061139673657953072925823774564611204374687889470292180577983881266811858717300422649925635169098459602270755276946645202130757018762920272922328576707481033815396815017971429842045629935334359336747768821048531191117965879396249462882544918336777315269200281300498716335883634189332389706132560440610293144024528054841423775325285167517725681592036256287811370568403809913380757290407684261177933654892524836012289555177226754996937596948621650531122418748883023937355454521188346899947973527171201724843687770345082309760028451162288048151099199049754829512145382671386947145356434986285686267959975756562220416044260371895964372975651310840090034091201133007848678398938017509856224817488256662914688718772493081756077217882085759873637669811600761942416537169623721759448699896314406362975676600019884583469646022590095625909952728277673315857105714015647001299753554934748306703917749514580885530763747680409837277856952785985183376812997412913732528492577731381203854293654024777647894372502417198544853444814371858126428794121393832864260191198292367667581019402790812511499954171525416417228191740574291325468146605054394925276729692481923810728120075601472221451035805055338225100030566411998054483830259936285883432675977432761377474912324415537589021210738462539559782220211224677968752582952999515610887134275813855283905952439771761116709965934775985416314780056851313185955374115912121204978376579466023635187862588443010635798928674685360529151033204296812163445802560174923859236678925059515371560646716543725401044730782779082274480886453048467031950829857379253270689117358500144608597299329556538731288063939001916342520523198844058818156386160921284862044957194667428117777262319098586703952554866895254431159113305297733602851319881743861564224571763810376910943208148853278834267093943532070621984208988364660589117976374991370268739575344359740780882220759681975109137351631763537712126263649758489356573733241689452248397732937781358682159740684496551065721259046469074123049435625326335471024278479801806302312279269721339145302608151996025250120953286651663540460246371425834368343408900733690806980440302000891134910857002881101923157072363169082121434774348219197626433569724028934757391964820795326726341426912120519192845935934911292185041119142923284375799397905459399645914600136540212743757238949758239310857128404078799687434966711218276412793471059568258708564513808091668000001643324541879173122046695195291531999461627098293293401876193788084003620557945811686876096112940553233259496586375228507809194520716794174268578735591273855949141026560972717125053575316201181202901617912715093603800476515550930678711068434666042730644837892069167465626821087617802619291789814508857291703402341566252712485606193284908455499644509748789067149074158327178020158075653999990853881055994533164250400645771142722487980183237436606772084361713781208851697660123667211047363371952716075452754808861638800844083907197941806727680694185939119031087985976183615938969530624885591620783165045792326245601929103328930126006091829426190388922059125127813099869238195383128454326156965704607927729182119572983907509868410669402067450268594579722308783011442526787973978801464660686364720973163866095293960168002573510802149505394491732546304299255014780750551293659589585894279686110955454360195826445479221568039343973942841070384390565265309779875295569385540734642336747655148294138581679704078464056092969054523490159497182598635309864963355005713523630270254108032007225690930746004807070741862302324314248842675289923900625013235470132010765660392166603415879478068102171798726879548535214166711381931845975373817584436123447833834515771899018356955864279598301749393508226662106545933543589028300109580816654270724064603443993663330808064564274470340019395065117093669298185004767810836570642146315714191064134903572881451796593443119012884932849257203288871900750097501227257308930249148385185552576368536756022255121959670455504874155617330790896435644491870863189778690163696765277960751993715086583622273179659837441847279974918728780307106338770571558268037879344521121174992509425801726762795524854679922187783599016622552669055026936997556233555582579768016433523157713095559325463179652767377041169868064325899199506065034217928756503124393294909385670430682581141358753860824159556701195297571814970943163851670517523213232952918260354044525322349271559387621399027628649005961333628407821271700311659070920633788888559216429543926964749124764261195881124839509081563611966086736168480423828754484276760568553278731361779647756748667523552686682322493316332043449091897108009399472901500299827850236884966611709122204282856427307610577656769159240329091432168830659619593963838190727526903036809325012885856028452084105473124177070871678745867037058111143678910149811241477320421083456760389177184387344697497607810803210251361156814478871343703198490843782954795910406195981959181374027703269819022514206495255223752872008207179755038323470034226352309550186043798249859027265038378221106591590698610323081277924640417001340381868057550121174975417981309394200611919207532200218016134441452116501682703691105399364667949191580997235223448261644420319642975570227417288627358803349568227735110270808164317910772022719343646669702214434347373751512986253818773806346260045108701426294970048275611120103649187123109596467047957301713868635337589264759256854573235031108160968084902385299711269451287999991310705211616076408717030059466551240769431575299669938285846239475791026537314802080664652042159615008898370596900328123783200703702720992106472779611991653131779431535800798207137972661760786553004615106230136501180997363034905368681792538239307300202577112991620949196074480454505235826321864043494052647381235073467186011149379885734019549569489570938537359369173505252059324795792092271592638143524653414317650579134950598719351377295284239167492428575828504073617279944080858682346444969401918979061642495905161758526928043389779994496094628016212820086438324981126501644602016562791337178948695913493993492254303926804675080030930791566506322523789643224917507511916619018688340820397142742748554567640887105955823683207909407970431685568449604729890423651527306317834056951873702873129137070397634879062367090083514973427107771092775353323696510805799419279001281145784274599353785655695463591494268559773648543536054752191549468698089987530245870480820433092990485636359496594428346626606789586501183479610221381758329245686712251287315809266838096948887016573089974377041376221873910289979341607446452557402556644583837693338411401053740362262989932728234764802698841241563770591124432646116145418334662519988128053208106461047205585192534124606175260798968426840040297099135929640792285262322349917668818888539104912588499315961065873804833128492081815396756741181944888160073121319563418869720753119537337025231485876688299441129032911795496760534021569739004045917296127366058713132063877165511413316033862561766741415327563931741009753350265941882849406027339256783153361142593732545776439362444308308771427274408163032746898718858112383310753345975572275562780892401192657870086673127061648582107201205255401691960285405247110460776235179344352288052390933826950037725302097976621489376642108176863873204794567432760942176643473109332614079150272642002249489661724687903040170801144227128675229915071915774540480152835985138939476623005034944113546153464392397165910502422493006414982993586811690626380024266118406170364101258903649676209851945919767101772196516605368124732106369417346595799558630539332104210612668961311684595755577892487108232048691773769625886357135378198458108897132531178150797521782760648218610596893037552884483684936452386569201835719534958991341695907067899953571017405929507085391713653331326846446772424435521591793791689674804424590820540034617200377253479116719435220010403681881332229907904384549687084521423108612167109816407299055629243326789187692007385993531530259771841941117099976516789239705181653113787889957994025568548792997500279540862950407571054140627324416272473072195059194357832862607204441439949275534009553640147835355293592033967762732706763640500103378463337218472034011825726044002855098447079709169143693166325010012747575035709012164128921715627314011841621621736757690267855937748197169379804044387854084825841654465921249360771478911990748395334700292737024920783188436414738852969050821736248623628928148365210925226469814668892780198939545214264864113363364453164591610516917940847911603616895966534859386639950461753664041247811989775345410319486150934439455994148196126027101296585196408699425368863173225039490585250322988205059983723641165721904433181634950145000008308194252535811731013415349624933621522054526848621772540748169865303201723954665008164944515678859513330970946765209834426658808360450685322451158273622583464763464587098042563837568174293468337530360929426497923401824117828804815220561430007919421971216825045221211950486665526232415517682754735992580358128367893872762141556162181722600317371382726624424664903111925777969296142611734227918200802218786264940737482184560351209673347280553716249042860383673472147816120211525241929621173094725944495949439189204169941647856199564327947453157246872318302621454804065523228687727708322041420001606096445415529727185612003102050362337498575390267184354009006318856396405083133918071663651456616308872610045980513040522948057508813707497552859429305189255697969081163683424343072703347768522070792190590969707954366580278914101926165384487166922770321967661545277506307654260188176632503283198506056144310503332792175937785629036162533916380596907869264663077087850174700339887731894855407791291763192247760356862353607440819708343534057486433922388380437529560276840842824880453032833686757488202425051315982626044998323170472949830420531375740912483087924096788416379300501021155106931510361577544177717647876117816762377290212128647112093581854729503983863242027019562010218230725506523065590802982666990622353914170173607183048391658377559554259306232984857810487529419983244694252219610777953819452111492866031781732719468687727633073962651157402373051565067738059003795144831676481937548180060436991803536645407227084336765455730578569564241819823723217883674375640298847375059644043054689663040557036335835058663825690536859918700867908714408147520863451846738152292097506811672901190563263659597055733343605768761991459595627532715154532110531080427103600868484230372489856328003248842632767577081731046203255308024662128404568535501099726016194394155394021958340821339859787676484110899329560140614211539101647291831575765530634375269565937376978483772084328098235669219096027154400310467761366847015622410355793051412066342096300545935683830529618552693523105923607209399468663052901806424369999381934439765118200235833230917320710672765262000459491448121904787715091386273113260505219288687264412798254339395649633388471696859482741256797934904063616225609523503855618527176871864973327284204626065838291922503294922933325886786284946527977188382570045470042231854530660932568623856886658323258137993699535506737821084933172254292744026227733817009452049778609738613956517783670302717715167293652329053732720534221196133892014845376174994995467521868828173530804701534943669140830222361111599402374260424656934085760286875947516154748351174804939982234496737251734132825653246874546132353400570334735267496796037687317818665626866634754026366235961310722749344695768394905755193490405237783427314252899316417942704802482869398652621762306074179805217850027596487649360526587911864045191851853832661933716361703020188277362199420823746041648671450929730069225145645397231630425947156575317133200319870086385510410173031544911001241859473192793530836734180233059337331469982894135985565556774254969446268257946513525701578335783402366147862907035151447920018833031545729761351791770985364933278798090945016308224559080999156292084435226205875263250981179629650900633025218048985127085863482671542866865198535720678521472294765653692459621950286306681324417815875416736009149263534887065684859930691413372678022139175094879351561024695804092086347038644920740246618046720052007332345822675200565660225902932289932157275390733984192977880063655131114873775059639532010417945871832819961236893235048362001233208692837786334655695393027395937347738158870128754149135780187082408176693929531243579405052152489763963322344979689928363597683418976708361089531493202559785806171257112792281054445344268246254665506430700246757581576260436124125314508571864560540322620439270296138179603574445094059361786794943930768836030843987523968238822509301746447389375824847476178438917857550411984429264085944418666415914051100065632613237519368351135624939267125858848375324692604885869730357799043771529627337763134499445984454732268653250720947346952935356340878695126557787109669251186692712086454683945936163843026615882065815452733043956869306047996024268565142138581759812406761261427282076677532154611387296295517077343756842892334313991212288867198128328790945157426453732572348812866201764901896759003579472208038775170574081612274043112278378482216695597349619845598762680386634639139980687203021420677430649219076333155119137515087105278180971254566206658240295155715865731054494804294331171011174327129890042062265200023624770571371009806046523556379389712828962809374699915376355723226802702964805939066664671049911261880720567542673276997797854369127619941983858486864755071810497110707407211467328109484709679512108534460282100546681749917944275794621458990533568352693560177001952821805246735481399559393453740641032838054421188672746547465850319443862266990895170442825914513030174645848545717013639448265624863862615640142926487189786665881183451251340208001286426704236165175578962642783065851850914991890132342996486604874704344250532337787489450630571554640643025821914499160239775872706232849278988181817090296017312236428249946737463890550027451645180841543519578967590797745965539342300742333341595020134598574556190422753125003208466547405047102692853472833932203610727191192743345158600447122374916103174604270516069952271254807238193932797921916112048766454668523192764549654523393392250998707485380344946306416068758691349783930713257065337089152069033310304827965308629380224723058042852326433549145790670639846431331580617555021408940727914486266312398536495403492304503723834380187046202152673898965100133385354262567831689418897400940314315067142456265630080105229987109534117403794714410557893019127420035534753853248465511506300920713329110555627385670627135797616346165686792723056342042286084430631439916641125249820358787777233619722653755492663530755532940259635317522178922314633845145968792320756966782291697853467503165174335648782308861772359621583960917218539350329450279919483133984654786667917141094234026979722371560688717124066912670595329943625477156953129216391265973109566451326397156499774015310400426198484108084078559601894265165277411870266274201799800696052269117508081311611502458220841945780618709212744623138468357066687419291428322998357518488526637016248970441543977385990678996664288850283038670213899028864390898854184184471756947064751218013375491865752955119370431406279076150859550546579140345534027635304237579036584184357374629015541705686247382862995268655336700213223771173736103534014929324392186855154257170961586262015349794213038759398105951445504332669814710254405773414545209272688881246985950070964327001690554471617784346712099386662632888208843320830041769717918883090158977197832686129244940290013456436079374721398070820951463548753769487166352703918284599253441892033460598897693486719967220271310862116503760929590373397902818823526534972875235551901220538885849955529438751657412131959752903120487010377535626979334224916535935285445661622326400399229908923933066249085127369341201909354545553496879810433765601757209050168953801723077185833646831721059350438847714038937470312591264143093293146540940133637116556436467877562862343923343600093351248381605888177379418838934027042757088392900603668283097651576800474143592744814383656627270857746720745290349890328290637883856115639984132982998086882287128355097126507356470676799777323698700102882237469382836069135847354945793229848923980690946700622816147201820722183441567900841511603903777799561444390073734592916745333842459331356407976350108320448211412218267222965785069130183549145818266521204826621370857889305563337406694052474562797099045972284086677479698502633915932884213342690711076207266895904476876700278276598775256299718871369307497127483952503514680878894182574885751703959327872166675108213121410265736926164833006602171959221408992987581837187393380607395184351105391430758865242349184899177812765901394635958101361895253161276884453905520727537336999866772060027117191314835099234283071272318805834904362240639703492926047604964518645540177805786388162235527932510005388958634019085437115040832035758360281282093912751401890737236980487744235314291539681155790568877354565613200790022295228518904766903612779773667404988085189847881748240718438191639339080229648303558460669673144481528840367582814694704948815284780030752748175989800559648614894169907953019369826923914604799651230426989296411081758512253566375735278402267329890005410771388687943062705609527318173551442985615098686216914747776128109108903261084160165933807331083253442014763144647822411094796801537722272953227389900472721491069374417636958660580537794597481328497354938805380891769412236205165123266048459455521080426506964873645992441293609326066272801046851794309608202710356435055843223003978058119655464579457753768944233502654555073566707545447019903676543512280695942344743378492608588626178901880312821120421346656847110970688438013309205300563274626089937189056063058322917159134179162704451218975664889753798937994911248888224334637434233806112750862338242152343250220959361957116070557061703522088475669167681810486296122957682072149246254480848694496461421413972724390399142098492699874844154231883063938709525782641819875509092481141581560023979733686933820666369717098412774376276012725331232975488737733633511356373879160347624245490442664620314527777112974685714774178095278499144686215560876968899550238846325291073273658157586354885496404047001548158343677763438064185522208101027902656062201941036895414902712120361091068660181078330227459180002391512440999537440182892997606214447618676581448965739421724837935464128794755457084062178700142392363503558997358501783177174922420823624402046608525751148637097960249301912336119838449947884205477836494379049916814588360825265241017091523667256913349696184783537716832358762219459508944319818263443094816221339845674101156934246726219637892942963041932016658996877707290802712842052072954288227826827332471464859171951243785793486890300153081867506189138837036310722938394246111642954286796877150883912182788682346587456042958346304871828110455129873537234221415749723479249892565599959201245464192931102193229274874941188283656072663570083017354847998257451516322891803191550637678246828374277411417730664562739090790214852443140746901429436608064864360387913618638753983548686894116937549653318555543647049991481590174834361001398552048044304406626906384942711718635524129248383171334595024266771449039653419226278637617416825644692191450625456161308383931070358164886410982630034956683395469190048464356053200528284886048700473120436649835622926524756662115725745531120153159836213144824099614209723883620045383017986664451063144530197031133619360654383847256964752377909417658512522215859361073544047809402541588503503680362988932238653329404921445131006068447872121743847589534352291813414562464343666030648705683944044953829024671432936494295889906027332196754476762242462103499274012402103506064621780948729837654003211328750365581550592405573012789294875984797355607215249150200409251430852411277204974440461861364259556302084330271103213365367835492294695640570196867865388918381966061388661511538273040240082107538739250521508165873535035406048059371248366854921227891742979898145524980235529635785135824015422478056198835209604344311655945210058813198540906125704066023328742201011413345076720603267585075008352670786038075967549665810629349143410283743107210977744024401718876670442236183288731137358623328069553555298346115334471853223732985083963786225415471928920175531969038768226341595213185501634873297864918586346826361633439421163748033023380268207354479346653131599630313431342554162653949757419791426223990870146974269859938925873901100630880176805649429346844057898817694224749438811362949768781398088568906827675680282961118683005863695648775198210957587970903749290557983799828733786633923077752073123323700038973302821217853080440974961947053202184733447382946520061833609543913442189263532625957461713936516462207962412857585128748777781347207005367924049968869030973341916891657827838029801340135874517424929533944364200114147941705635725120364848414829926212127298953568730625569506687072819551873380530470784206567337005319439121677765361821950219774492211845434383934780192454066126629475284527036884890959332977992146642585723480992656033581696235707384831807023159331829320244400570475434698157404077488732654267621621449205338369266138663605219957851348604153453303943674879540793721087790095663011661873570515301592516639962581207994363612286973538810986022157124585106790412887853964481842073656841717215419894796088239637725732636826034257570878935663166616610875985938639420708069395700107612221194799286687076489348521721270101823255193806619379906473781746720607831013006976861690162098467587841919237755946590949026869765521730111056084511640128197063345774545914844012055322185979290805458512136934460488248644276071362665463166407946814314562993243981620768159837190706350362117987454215592668691390206672130354713689258560000387066659815079737355071625542948871671471122908464188542592254124369837064665598163385638623534815883502641929457892042918317244983433335163783897247088860816091616497402978610733927701572367471923269202946189530028094974164335896899112732018672674246101901501446529428634024071929033456593090743739871958962601294469826206805886190978421014820882808351523856221284175898129942799184432497396067398456544905206675836859923149978858879278636556469307427721694930682935599645553488291178623959558024829288220885895412257306629324449549651718220667881420270451022866234646672776264839445945407991581761300491951067965700576398562329986257331125458760971455531725199948920750410617775113201739576564696894394329608189614060809592042069257227330118186145936816716496988935164858135324803203402880657830860119089309217181120945637098580371104257832004051594699958303701425740606513024860134663329257843266537113488737041521957548428001213186358272772605011575212603511197797188345855535952891795991709722039360992088476703872992607280737336282806024043373444485488567993144697798221731126155297245535225533866928920957569390310169851809725510235331215301320276737486455507227078467693408199557433112185378504379170312657580311537366688871260708019826348484609155610586770893988241788580811241896870921026866625972381606125467913621287673399418317580113598021598517638067245053775270520338959557032238304220546845067989331736911429167821653939364443061358043069374535105702045679568362056956487499208205534086923308392413068090097150177918163244041092011905020620898952773586379662532814214510464478387851773012014231151866185037482445072057935913373172732728966030164493215635967824018308687995836106616403584580505046728104019490296208992027191935775840757995794897248834105808067715544362452776755780636297646784603313144418450568639199565641168540838208463454945758785165938393601147842089299988953210293996011555687432516398851390003762730159258967547732674932779758465359068699295614142983228876927512127460911746949102147414561857551584310847259450493023908529660719178349261100171258232386956018444540008481206933773980678380611532311080655411480462068250257492119544424169826663637327924238231392628260655128876133455665426079389122665279129313042785402930234744606336314714643819553388616356747593763529708843160863610810277709602920686951359518736237503431122176412685851327723942984669497874438544809604175108930594717266527824207374693597731095718861197222138411849637998131507103082998172833609375135784371389578220412528532448254877396536462246739378032962323144116022019265300144221742946079250617353594528873289398109555439397888448687394921232829653769405351530469695388925226531162354436419489925541986058837080711813165735482221290312479169484372195511052841165430623577872519204640234074763803106716557238639553278942292016525344904607499438466470522150068420269603977654934802505068693972045470518795223495923432978576163849827537205578163632828598366326511140714974631075976058987636511522110564604610981554535734213892588075313592335645244965529319235088318055341974055492586622347264793008470425219494454650703572803945833252040139792212870729638701304985910489089814127140316818025393694204597128427507715181150058958166498731985094486860833986445809837330684662568071072149949810455779491371921204770990248774788598682711307112954684440504400163099046836592099241368004877703001568760975268558969125339620412582933332458276827586400909947008199578666586501177184022090404315157187686149628857379548469407627170399621284068292944428140156501843582166709852838783982969820534352361589077277477380640909379494661342204382007483966732863471315857861038432934038115769690907793026563854383288457397846429523446690314244334851557714137679431593016595278875247890109361000666061801090214356022987612558208192047910220894982115668374713167776500558842202144129917381941432165493452544081356493948987226391909603771764199310180571161086901617854995996825574607383235506511444393692610053165375497082673010549121547806369696720023757714223057647154136199111406099268596977539274376640204593917936339217487280928203920268592675195110757843326144113438796596807661321915259918462203601058121941413764202492030318323540885179124431449651087354667593530161292958741520742578073302211647549362745450226506935415890201786748488147591217925411769479100324370034434038280709759774345765480643383747812728919009880177640732893950860386722306072446136795427591895074077807019379640227323359599759334864492872240716519858725683136460897317734950737952096837237310109967264465384861868984630392109691707748455621404633960347734255559672651465986126859701161143955673869893775970012538077724244247692866247388026667601932182546825101532939074072081983625304434407994126616482671983859754828264133168758161424781311071963009862527533399000970903255240345964920000529081193686399734425081891453377550204039469105696819117742649429488992161576869107732393974921743261413528027938527453358658869698253466338932689083007530756922913417519354779646858373038143777097920658639897469771361639927513328157348021067009572635125891076135125494945647674866832389545909414652177753779908853234588694332736058917332086223759608040684439406386345134041416804794210374042971939174595227155561510125697049943067044896619218777019589585948600156323577088242543642056719691540161468391092004267986418878144540790850881325770313856447565016950203207293980482735434064698612442796202266481243527104473351188534193098431005038118102002834373715645595031866127099920398009600505289190189797267994890728998254522009376651675147266550843547528215026575506189210294280088598445109212089981999351888275311622469527634652128021597156399053473644755665061180593020901026171426220428571075052926936574698995652810611431827728113061599415679747732646630722248221575963617022118022441245223032813539738913374455261805170236734738484917634457208200566673593375813665924220932208382830554416175262811162794546390256834797065072528495802976282027021340792793970107422286472020322956590700949087739417792282938997907066972638222422734499475126501733733907319796442171408341296772830520330756316457540540256156423446566533587906401475027930081086005958846683998363247854297178123586629083054767643401737062132826403223408283225256025496271172143660724216416657537447743120459544670511083063853804137907322914981717172531233442260922923309465943586038669133376544664156389679479981065133557176209926339100340566471428413639974665639093169271274406430225465260173050485277051016554241989952364893487797926566303242376333536311159772844590856542703883106922228373692961542298038845605999790817810648118432927440463180263405432203993811548633385348464467133722714590948490219703536047176094053548962962572507881414610294139253948453368721980166153710850391823414860636844922469032197138819916550446827180229366095755067149245873178341862693752649600663209372912012381266383850659381660239073233224759241622581990968167640680278062352015784398204328191051711071119183839766420793738429041327261435452726202246104480619770319913305959692104437960702713843146521017785212793741373939780773260545650188541188355189762400226452565946960564608746089664467781382296007574618277409699739261187664921627039656833892986324803434362728892306426897898116435686475388438254029853968632824727566164003805442964603734007577546589844166438211847951262340767392163377245978115465334084733113732987246171133099434547697639939665121902119964619889049204841093109858816379569917416641177053907574735964956474601595305465369696724998289828972933185694544794184555536169525779281090239322914088392759019607898228941544339412632543762519457407877832787192291934382074380015194243166332424595206898274418476643114871670319101287207944425964408948541075205974414573158585010072137827542570782310373139027617652790458302777774042617430570432367343298312513882509923793827090323645574641962511210096233994141727517958811262029414744089030084620157719120024633996633220360578826358311549283822872888896504857137911729813639084824429831728495892165973402693763438595235015563225026812141223572029607316874656520613565440278135738640349597245312961139973606014006837503158207267188521061532214704757861981229012171534036975591360044570237167469042690809050416118571728380602904243613133873852242962271483560163075369480753892524354997880930202281058678115794148565183503464165037326164038229635985657759974999937528374261427215486231329502875752452090968429274822961889502061383657583793562091995996713254062366594791651668713735145256880727537892360108287101619142483231961590938969399166709675247270421329693550274749791780913753440616678589753580320378150032134622723020862126555792190193127758842247393910277732782126846386856029305373984225685494816684640287765602237273274400479985388760113717133670877894498420544845879458699392618679403145433201086782918468586187692566364197936606792056999414867183767342176857557613487336032089511186609853287782981552855560777353011740953312082437012304428978655081958585485479127359162674417995039117572599435623150716882832499094172070031439606760534096105231764393395550811423544715583769025673118936255957495136367999758995163166286651308096205824129388888921451111902520836693665113616927486354992763329217451832747933834558865602291058464005825376548671358582517963844761645990987230857915996645535922839550989067576566825763664149903303568245018372644443314384933144375438984187767349806712286546872211118942235617822867207868955393204229958446140969295999607465578268287842067204848782999516265893734512548085886441689486034464252883211126976397406369376346944242733165140808376667676267654476040739024844427822405589050648775219510224528471116655048889599679971892929852358646668807759388479618322757958900163926240407161525455419219956368629653716343548477759345862609750679077600462718847484145872714226113839351561890155860503116929012103240751200277263840151440752303033861616196106698117818614949636069099528653906167452329246879510192079935615034864223926183254473685131970231429044599274867217347750913009969864165787434294577556264126347874244244629182956278447632736124821405900813775638232497196865298090152288898630154310277834628082792912349937885829769997214826034526325007059593897279886549022318650984408530453113529370301978497102791440397842272637245786999519486579279473378848423822995230836902033896184523466631929532822778094614018595672111389621673942313830422751876335036112129673150903536459517197740513116827642708527129903595223855911648603639112673974354283114155225699442599626145507214749796761793441879068713944503460706092746656306213618088234875212608921126431780290009365274300267331844661905789641281221445249437219775652144812786057705617923778407772622008967631382949975960111365857477380243440429934284748963372170447813435023875020662205954812797099866495622395629257497677791865581951949173595433988490237233601643837527132022664317767818057106171306432191149932216444633902596553424205750969435108369459099601841850067351208958569157857294580168686888200574942112262623030086974561333060808575880930003794730947346227804394863767948961751553910093894699549677327443591819189655697332483218402253522845543423451687348158219630162992319200950244124082086834524956603998590640015331418680764144091150929454196040222609165554389395393677883091313943598197149214590828000787317284942069553318145860290084810154732476552099245317060760283655801170574587163496769053361938060651519644146393138662191447593637257285930444237266591547318730734806130650637154689586890259368380974195640463013407031035490868012206548966436438290948010010110319049964835176236285972854151473656251179111048409038585741465394474872748857807219751983516137985816668097388840020362965942811668323412021935174414591234727733013784223802134609396031225794387100307664474421218282189979595069920572861227712955968307474946340311877807189044840258779372788379380813477572178790472534594745348755235253912960818716422528884084928002565767903568416533747658464586563084839911050891245732009172039718037305004224756054917732089522664671877872696862572059592323104278246366922450612031326627479403104032348360345507236128159871098192456782561629680071886386080479239318734623361487854542595113716930580478255837798850950188201274576109031415527103394127031510217480749880573244045325056611282031031748818778658568788364681075167911005228400572851061085278828713956383806370813786796812685986498050888624726422006779374787380412101843543611053134240868449563313015770329578896906533535308838051494169503204908259588438290642436272499194124936314671878142545189352130153280553874496248268895446395945724623437808967052685491708561828837791639229434009557743670344935335542249321954810236042208747024755315958455689917358902478327712489336907658484248864035094481087283243201855253715128256179844678705613992721545196770683515964071120725014547821649310612723074275002615232201786496839557914085032945237649946535445113809000242327243680937466966854685671574794933489597658245049410308293410585365095581245260777786902407016746024396975153783025686446570090871100032685277070634648237952436784570159596248524721407031442824675809979515363370451324844572213759139318895064065864203025931514691544694074698034758712271570326266220169060884574700865243622325079972224369506142628919635546820548652245258318955847860059779779790551068674530752965203667030442124516599638877369175835558643575938204316811853268515558569538569696790623860120581530334697789442556309048766219803302941776435191061043005352263845887948382820581061934448828926789549914863901054916392965413484323406752451121418519654637590368030701433565244769594951534910323876647362780701882995817847043773762787135995733013123644740847477621200362629299234827503815323075264742932711380965456794595735780338134056841642449935926837203889959206071885019040387899506530062129516997267697381605702216288273490739852555245442496596323458742839882122059617444710657061156022806133554597681901746239234830440326721315255825386459951291376497014606996581553341523355058600700411858156900501655931829415804667778156596549295276116499524561996568084679586942362716923951292170876155507040212138858171141524173279024251064511451257324083304740132756430647809431580520391999688948275406323856642371410232258277145824669862683873908981695787221731140288726529853048960835050612658424218875405621380780995125073249924480539942629208301246491066622078153269944766642211470014210984535474400348947125463805344977345835498239798546140075712474687902109731802557455993817937677440639093971249994748598758448275700361666311276933695138741481535141648158804822353467289405531912464111108684681392620119268712656065731585627495788478134126928729931349880241799361431644372404184464834880850374500787264925876536216449194798244604696966163667406202193777063275030817882635094590435157561899541143688163106393600459479281540385462543096761917449863191651470623502403181066661463582562960377330390311697110450944466679370296221808871953147962917003209957922884804614665351302880830464330374215306899928798066887469939799322397204011072320556859975312442698364284791454672167750820879391051675225450275375040859368342073772565982631671055056691050828108016093002761717296263359769317367645214161223419594448580713469086162541782497878139515644488963920249517630816296223387541303639595232730897674706683735269170058446107288391583361008489234584589337677177025753317077489280011919890024707933184504048838829539303005356195426368162053833184127331817841323761856480143465540698713922019292110054904431523143304644084326633166879911349731060794409281761274175672049221531268766691350184249358888781852675109359588093674530409877239056438212416907991517596370553704726280309646979821950037254299827683606799759770282142364886312695057645431654379350302801908424838401213663002387565572535650540665240903142089780273232479873352105460762141800907325543441009987848445120712387178379125672523770819913276855120238248646201032897947049740660315081752625966172429970026378870975989291188863428063953309280767572972552156924213717971157379947128902557297008956283099462660794644757321232460893947218832356530331462421681702848014813219636819258246636118104699349350473139784422980994544002242238785951865229143105459458979701305483287075913655680840362093561391419322166419432843416232101956050162235807696785909613692252214137422212257378008700708825435326065621579453104849416993955892481678771851878663247055627227945094016287713823172477843511999046969445077364889162678241987133026878876938576250241124706052980059949170787927084845767593301548376852563526396553696755485691482866008227211670092333877554355230493445236801944961536584306912169586909623984791449928716909585342914753755554209794580914652445638399329138806156360113477037290020223930746331404663055331409859859966019402502955558580251301065132991824177240372567292762128747375090567755471533753148679526525669582542838073882610069390969576873208930201209776451116055367342103992558779678803062190768320610088479111914592627422008670509936809991969417410041486233812098739802447360285181219531327506739314070127906054781665513271249946407038501897945536098857772575127403082618058076572055897025584313686611156155432305517199110438966490624885148133252223371423079828142750661200246577759571485877493984344865303537903463457262868301239953173115447949661775061981646554953170011847972262772262922156680680860733355761709350938083495712846029979623125732980208627394992435983799081154560211903395582280371176551582928296863451482552389350753960445431624496241621694374561448040288743221700049326677127420967200266978542583956387242683705792836871073036675535409886095338696222093060942910780713874096737278515843358104199903142572001439417224015160723143107146360373455633888302038815555764586541273397710097151787429060447273049300648760741684856436818524923700266343716993469433560565735264730393809035897614967040050670429311212079970370689635531828273788828607098798746629329168626880182934902842214777854802985674930572014905352200877209257252158217204263907437513868788900858934713520872588967180442079502777092902544618045814142106797222317477947669147454474691196831917223385780360189078648186586839303253069221086959540714317176345155792214088809055464403379856933060500196683974764734842172600125225876464311905877824176699387146188776385742808688244518546074249750197295584658167762614564535747440337665309648225955993747806493951010511061812387055951397674607336050533315943231484797383294068932261232268304421726769678676223461893936050975825644246538246775482390471880459605528581306398527155704076369786235606567518476220836030179984679755762372754985294093015669317063960541170871627099518285174096981758213689432715317068092386760889117477004461613524865723610254575646973431107683096770832875883165494239766520903732836358480471684465225364841528907891713295308318556202322689836396933517627842649508071093369342486275949178942314289468067004306740512499494769909077621960117015950416437552047857516540581621858047216279307622078916179228360292148147861743519102412662393606089647413437894623854116141763057492960067804374035079518435878076100987897536267265466969360315676662602536653248006408319243553200284427998017949884390253709141999486255435844403166514861089073920784629946673524897197792557410772498165327764790527888187507015981581406492562735782804147422270818270543373792260990399478610649474011032482070221963860164342157032515064552914432360454814998169243756291455871579898531041246887567967529527137274339097908608348716004430523175656822451601500078669725112550954662331817574158777428265688509103994362565538809426679223869944490199246019606170925028098529218479727371788503787434630164263517184932081777223154828577041583420038434353448592487240023314426855205327903304451361937696349723444079726853501772023570598058295323800574619797998322944283415175528811710918999550592889247361782540169850828981370507341974923091991752154711428947364715817452362730254389021407697198049462364610372864878167450883539717926194757188964235585465186327643811251222813416429423691612557298398883061874343845262708777344460261105924950507249627005476479981454742941993770593007915916009555011136260172805498556062563926545437582320199768421649883993873522657183160711642887535258694941301125553452101992435796984429464841261107151197294991100109260407425878729859418720158084843632691675073359795437665391496274597044903206893147402453089434073961180275578337961730671083748314947672360103974237906337238942654262103442991176368291895078690984276129941716773472355886271653580250185288817180108985797641080055371870678032153904318187914539669260958393960128541747106893136194579536585421458223530134945510779924690849402814460300147432203105663293558100105671655253676791634643937423161344801595950588291870161682340500318147200989339248581027231230084345582248204218919310347745338074428772403472900461094211705004845320809525934529209404144287193547165260920653632586758391001584328599093149879522270027736273841367271860663106593995797996559009554639213403818932454780416123005771832677587709954234746493619112834996425300793224275191779582546859513079543222161041002520333965884225846099176529320685717602574166562295714431635382244850038351738121171482737155767753428615992926514583730132556517582958521317048345337591979301114713467266177098359921478507561386498474220651097621557617984440355272364989994676717836413849392094027978233180984476767665458787140636386234636402614208412197585541133017120493108438945297543990058707707742055246215519977883049853681159315864372875868998502407083069374482580690271790842368023059337746371956206541639144337857479030319736441063303706711739291391859681315016863178809173900031997686531371845698851718897890835364115585890342456626877718103663221734089429451246879581633544396335917139409424269475448331367861820803098731598194549269393076664690358909163977856286366163025619512696422612385609838584860518231160425526264941532904766667739593073077186441003026566548526113016700107764188000146126264560520170554850555027206996432147116764783975462280283984084147135170885416612657690946726909415360221923718070566447381473481787661751875833873289656221707007353472233429874319224405518323482049508827375326847670805350630423341155941437371655168293299987521922419251562459337281640726323457456215166453430619273371402361893174977951510896897173624034948981041356893720203287811456826743703558818803620048857264231878001792957750961813366823869171594900929332273589631662100358259199941170121556760459555208418565090672593428554435667964086354228110404591204287470921436587542899711635903378320743119416748963131769049205147177653087745993910217082541342352856617380442210143510818749938098096927975244054397947566822516291563348026084742271273136041266956713040312296860768077207889584082658258107841857037301233096253812542318921896298588838984975029094071706323880350218734842877009048085193430682554320143957679190561675196610101079947838100873562047265860052644360938304333036497470376915702325423488890688029721292182132061762187661510086033616897028495479740482351522236834634556943560466768741028351057918914137830531231802535183259583000291105089540548824720629889710624309302123891658152618717104294313661696263235369903615548219183464214212692856977479780531902671653485892880226591435637423333713238804782799943967977466401343540779408518941699756820875555369444372244081118456035653086949347642700543077336014445490642024696236151958130090596416039244687732617045710273004560923916191329194429826889111890643374777492646843360815634007533586233589107004068506717828317588135002684631079304924527261398456983596770073639272383608935285414464569128406582520289941313127816072152365278146285122011241967938391843194313287624579798728715380994555935514267678326556102118634342775803278002140649310159442362276679442269466747060610245114195718170924376036435619535125667574265351175415212559540124738441114552222303221452991514619996801509397133110937480557967974665023344269473273000386896653686190758805223673737477034658403784928779677192327600585853992328780531053754884966843759584634689162477362218823360256960206493776994136463258537708154501784405837709609517931406679851800945462872861290275930542245665993496528399136888376719036956006870412834791038039589008890617996655167325511573574279134645623901985510940602613082570173865791191276252214800895866600699935036293607545654029357437600559610020496419862862517515943756396531241221576797198142390406147831947698333554701090783448092224786843013653840434314955367539358942942495474209684110399368455614975024791082624387045890357496214284726761999206383600767016010260220996429590090911496925461820544867489956951113162351029977049036342429638095962944909614403386300925667924417696667062049155748544840196215173302867242679735916705163967441806534020423659725041904797841521137931802159916070533299197004919415230448826927550429105211509459870096214029702160564289194472106069761790910008632913816619821572742589566178429867204100427088212491273512325323008257906494451057791413677353087112479136930519211412492839681389714103129059028804135304593488890945377176523340553935875894838356154166024848938600627793227747525023077071121751189069059954154707676017639424558174222258828806268224716442476556471041061749944641379445744892084590619800260316326370883244234243952194693599698639873395719311811150246037648482451873547058855682262524567723837417116533852369187928828043749600836675113219308058560559453709521765851894585809876964527642817337665996994507079238659165740605729475197357088969561570367551709441723091563510001863621275457507390145991901584409035792874363971653296853411054084429771904046019111749259537259492264367133026851870666307888164531438161559435853927502543594547971090247487250264733325309650020826598671268726163462964051486886699532964009708392463732932844469406127336053803867214366571589285393881950831950062763390408338011053133698098002948431602838988186334722387581622540159001996296285192506623604616848799679142803283995443097425741120999816487382409232496999716460779724197118392482162860199413111823888033932109998290536403479210743009855360486449436457211865936131699258358742019499335312577049256997737794747691685932062892398178949753663843935991076669099291110885325279589086878736666509172477006374743453298168068473828512646850150668770234606250115507583759937563292116860792093685197012560921652722691673239443503166911831181961425936139441466603684340511971943744795491876971433694784953950436312635226377193570124601434756004626841543675302528969344623749236143954546048285055952367360239862461891169737804856505256422865554891172797559478835272021294419284127001287827273061158958032857030408422618056904896313281022500756628205789627769370377503906169671933651388040285268152130163453820171866639304179182664562562082468440967191443037317468373116370293479003531811088588312066373040857878376755005830228237405285965425148238641676362234987312070524990628392806043454625667083517920678298357803054093902861756658883943570745650174144723174076683339120530493017973050370081400817034024642239536190014202030564752746292412539516038639351160734114283984608929685859376843863408534567554841344213712048265517161728337787871700967883950341445837093988563396348772747214051525622620566712883552614084741187609105509383117165207240212662407693812964931554027245033829828217246908263779714708076640161268534519734244728887848769555159705164171947646259467086035875315627998125881745301484803591514652882172305164509657098010873144374166006736268506865746072504107660164229658244046059039467031355063616200594604241712810805922710163773131433105997160752733331042497786545974431439559358527980704153634569759573274479918661470811088648997028767305122153994526473421646504755994402564287076704971943568703058202767845983002815896268470527170295871379129009077006201184250831740322248075484666741177885463956739605782559136019893700901785537082432597609365558911622932843954079277564328834357978713074413083467047009854118899298957117201050304180386732741483963482512630920083443122358011366233034445048673398065268167502659722148024017762500262111358583333585588529960594703103608925322345241196229063534213006728802798335476350862601230240403709581137107328960174641938648658344355540971158151138380955156709156592686515069263451193532476252591043781752005799565443331350352206813657749220660387971385341625292773248859111619858990711544482299241721336276984028309404516842456593188671481507281212524919075160180090590734269819157059203725855329871276735766339028260616719401704969984728357075026606992035279972356108673889197500676490175883386328814826413677360260912973956730709496904558261175633816784772074089556254309114123603942227331724043933845692001141031343172030523548243954356023325718045320360767888585227371339001477867696763343973147800798064324448039708832528546530616996680514092158578735710974750604690269396758510902920388758242610011416877146898377610028923392436720402424973421238463857972931511537202643094345675429188489688139043628881728868604987919964838777836067919385369256051232658144642736357591693616016260523795388639354660973790484476749083028943685496401249468304277101862761970728864990009891656798884271446064631541942716236330930776911729654428032053413070323476123281779133575887160363848508627312300813187470099534442494976145206909643525488503399857378886865455221143864140162117686250729298612377234229713754215260249205804253903891459440116291188167236676634474385797584445915152067795976332365343179963128273781046488789259677136850795982050431708061172870697596996597256363786561140994101093835934028216737808092650568528147798468781486774716175360769160338859217752060768236586539050458882495491451110486867049093119692790239486862325864254401252638609635793027756629080126308602650026508238102763217934599402530996267352891812140738918192745624190961344283194241321937675710502335309791414730225684508096364322684851766197957029555730804989183316672207279218942006875639634894340891527556782855338335637371329763471980615947931592335283385022948361859130086345640469087111170826011533073097755940123456946056118210729696634337165808571984702152513788694294061286781414791557999773494691094785579998486531755019892607929182042237137565372780586919603588720504391042687976865742018525362563209806141510631665519712314923772827131341188583348427062192982004173034918924956390320555592169899882869516957557733990391045211021027015103490732613565942345792668931097965212939690356481196449549095489376284448877946176814665010054761950992844128752383670025460628502598427380004518122356315189417687065910872353218075304479366887648987215045700129414097027375946789058311677819195727053861156420173468863900194222418466055934498850579509794901722533558416031137124759747846602510787737984567619746121992510435316365374261615248028910650551392013795127925670616346950273452123573783027136923577779870057205976240900153095907404207995838298029859307333566325022799429384092121062646344018748694344127893780574340928119589106653267010592260791392266184346441224546115737556857710351014585342183455702388854978949454363783264658079301177126250925271721500262692981842205236531465380236184240607678735476426031517177858284812607273008440100354199537341272573193459728552151408123335186819797610414944340996949258541793101933671168766247063224212398431269759330791510587112075504663586893372929107066254843494277402313576190801768585773798349421056796321248970727070281414691282613261115310024311049048885759502784553801571850430979279988790230368721806566103272874948798919794578109548964201397423896423210903057612630706888978896236381700669402410582738450586723104798328195006838541914393301812145689786190260939942939558718537239532612303378460160293085268369713091080563350036246772093223950858686250078631128250948154135092589440941058052616453407163101141223694237245202518754588038440562370205012329148316509109235733649752719327442907656943434751057723570595621628523843244934052282961537253962889266305526803783802914103941010867237982373537266775102245977446588044254197481425343930478449090952153163411968917883349200479436532508942929789013785998240351177895245837863399093776466601490983709044680191949464667230696607114184996199204157506083622977295817821480671631169623389175792419108504364343808172944537252098344630654632383424330071296454216057319001484914819231993189542361626829990696114516025350801291918820837249613158228002927439985658999085171870844461739258811964324859956601766196958639421564476250520520416088074472629680836539534401754908781268781846140544588332286606544178520091066956358350969887654985392006867742187525460789375352904102911560079539993013978947220902787809761821008302521897897843889941578029104854574700722030837081688825176881521371843343812673019338071365244001981429110312048291817850440547522686782024019482594789991891541017408684939461174234697522034843033608957112289768179171179133065376085343993096606900188150839013833611661681262284574610325759027859783396441342772079228103977342484050606302642379411129653880773204275973625693815575762206166050956402412578763721486331989299222608676105562123006067520795767321815927537531188817581147955957181670040237282692532542289135318487993745211771211846830320884441595674172455273874194866228517485943882675877154606917212112289479207060841626460737431541214373496693419622169045898156713187706792183844246056184289839023037111882566290398309976218229251845011353145240323399332784546380092158958358470047157189177723439073725130607321767555706855937016506687042695236577421611896767550529013762410781035327810061308092771562606672017957696182992113695528131077046746104286973462222138379498912444160877642025665343265581197556502787782213548246458633759911306043456659351652438577583981816552383033971504591538138245670195038679447479274025820736900305490673428397221138607433455818499463425221851847435417213180689727500708534418827350833181486706320024787476554499181922554749382757834183039803570629771332215987002360893982849438586345591120150013874511937826564038830441667543017223706703201842744553352116958315703513092875949445203837389508430190383776828537770809562263673804327894495251453633647165061615630568970370895565331351592981477351695184702700405871826217485433048384089084282816938528919556430495772929768722867016738850338156489415965344215092978423912464542525206540692612610530895885806371393346258069375870593136088615682688114082867836210172938175039769978332798660951528643187936131827225123781795089756437891725317592140253359887969291250752206097993374716442426661658507579280692397917587982410170398481768254326364313821280115347556423000726411224834050057794581713572963006122194067700531513509226219366194747530557432761708161075209612686540946592667269548641184624750619451656765551470761537335264875635165550301728450145376680340316666549737563111540584754619120387019704357268611852991700494418576769058909291280230041331738389531127660140516511575203625572982802773566836354346820016783066391548497611934855147098650042817388012077646442436996751265031337927473011225945338288657548922050553701639010140761996929826057224781940177152282568419353529790316426089073782957293633045955657439635763486242626795616232319157787049020781793496628183732515933181142216836494825981790745592563935911191628058788038923996415708244413200404522097359639426446482324154676242331066619983676438122033922822126197189867469962481085855993435470284817830289066963485487343485372354723699672126059860607774686319779193485040075331809634861192084080126192699560428586119826013611076773373116094359922373401230135340762809656431344376726369232998587652777546520878913344785916811179559146249130015927149468110698118716742330862038417376977313901425506635672376938190100923660758106448152947081753194215924706113279224570259124192962372656707907221451980649200107194228803274513396979630594458179334389716028285900513983737786079382353263233455040206363024127588736610182089386709742214212125427972563416524766708628604814027265546901391672151046006531955634906714287202872167191714231640531526134581489840059377044007499627509743001411402683612013393733846960587444777350863342544821405650962873781637506557106984159159467577832823088181358904640382051653039913625723437825103631988227600689135045017721947083235781875906779085601113140364363611917320928779966318280149487793801714360440772070532792328614576005556861806114741778851158011680342697046674403172195176649448475706881483910960262524117750077924080933401750789023064131135729965721297383993713978993157192262211955952517301655295435036788171413563355163943163628916657881240320531577619724016275258917846007437422275856376773100528458553548595479551983769737301626791338524592919839405561581417402083126879364253538792547890049132231734676914843828631791605313888916515310287396798218434781178907071635782273981927484103857791952928484365558278470065961786320956081147637970735693311234147586024164225387878071926305009823775200763139702498951202440177656648868491166329881803916507383627625967309791692313644687689930657424251345649195008744391459789807706389998784591998851705671554334032432675308895199967038582700156238990790114302964288780963020096475409834078296642858910159386714950197764801657670788964502860525843750106605570724771528706125995689937841074046336635473172110993495862257685390187268832487201491999907722188882328882456371843437171186237743231887804117175873559977456537909046526054957853840046349617599500163181330055375143316457618572741659017903051515659085306259240899670572346269371279984048589497059484439337360829151322446356265868226040972836151139210371316330096957907192365045622322904181738728622665115177957224076436461005564626203179363001645038556399719164365909837785356051624609218553326392808607758485655114410038373520305790812229935646084408602452186993996827233924543881578371446073046757376952368373510140845136702228904288399286514421919418519050933076353654230611457740464735903951243456107189786493285035273950773693745275359625087094258528557614027445485422805917074956687274447938816433540458526904107411349505013446891061887106888135056694984499243851621265940571942067475807979236116996742488570906839318164343211137897842488330956796647036346858057945938725631199015252772994822244794694140816987208189159887418989250268621793420562483708724812611519144028592896667131275869157978462245000914341988675568032213187001539630369174614196797888997971185976151833708203795451927772877853469736969754168240178597625918155512764631005413576200058059360056015397903348606805897543748798519129654427427885583235709584083586420980754193505635242364452081833599772274281230984194194516066961673398654509440648645928898516212607444103991804098392064428166284399404349788103294099561758784835523854181224225108182356511352855360138671084573356542181210576215239800218710729646311804798150193089041657673069543314237386267616562079238618326044968735185538081225052860923126972502835959820499744285936473413531314012035058584283929658631923809339560890348765175176463668461822448320160306320193728788847235229077980508570173011901832702940436659659379045141052644565006996387800314328195400740250306085543240553973673988011782328434666474847118487093811693622493119510802800648627533601204430831018686851378394259440324899651343117195956303077500089179670514366263973557773884369464092314845372823730368668688032683231699178377558958948899134093200711852346641538504815748237105745146389531428672949758484670100857447627586614739910820255319485780378720239332900132197470066731097156081890419119850350924064609930562856209043431451015410913172539364063798259111149157497773547777039802017682525354051535376982490873589701513306603329890078338948516441944950746340306098551989077609272307173054873655983905808249277429337976646342772921464194525312813014046509545855282819436416337233512870049639998813895043558446834129763358072602975128379402718426896119470715479578068586118215460710896896695375723029874289443039961160867456356469291094586947669677128949891430995246689895505035707950922522576055733915978069329356960878205353908753790434799755839882013653326885321089911627615886119207274674823823172396936289253604355340419625191031386244087132833223215342828148550764980854902329758509081991397841608968601433198896752157527572673352195780612879649854377197683471503131541046178844034963501835633665147925583327280531432672704133870595054340671540873880079839470740879531264570171275878896257458736739743458461739391433694825033728838042307090161175741588147145766457629045108216165795682811386623251757968674674329290347541117447600345059859719861934206498879797425426325666043958777595807198591140928654106235677704676475009357508713533045588406808170314753013376161133669474761605299372468581157471391509770413854968571541774239802142463776021331762170246467373266704413029740812206369597814138006897047063363473568637021734235359308659794586374966700678635310772267198656062697006410387821326621563183209089361088745347860274831265414293273688193702138870348277926037179629976170040809946246086517944856573212294225261242102086480420884189021044671178260951340181658478980881587466594546031652469510812281186160722429999495449991340915134425849810338018175207727251491385092264018019438763192250066054013075921600287808679393783949282617615805167263355969644584290003518877666886504744678737362049854986549416602679374435114502635758342032617246689954882271059051976240191979707912707594358625504479531002614778321027566474505702964533403280050181313986792415503298793842328710308533569461945216428699261573028555238880358296654536110442185208889246964522173629111989567746794247292806576179695129045145141488207542135406606914262543404426830023928208527589934063424884254758454125698510657642133895330176462255245796713310196458006047055213656315420797986177749878260641162640152528766573786666027596932123425177087246302116067867769528198704736529849854176755149117668195368223899177062422451483518666561578822824803360986061624159951716105757239594046292989526306889935445252101023735146373068260563696117193888701958185445335717808561410144069471878445705339779784892756854558530218793754743987120275365972130280767186454068051721816869736589951847789099061697459676610469932859486207965359003861886215807452814787202963205955623485915011802328065670913420564671460544388299487818431958250468870222120146235741038675853824433417432010391479549166929320535439803296571307716944837176130947590743950065371109285216882794659766913699631231617008935624079103448782910133630521766009931353503026614567903364124255604516831912730996498591792401753548584048911548019648916763779861543239080593395189469638563552131016928782335511176468744583552499087193711008865349321879828663700241100376792446916802852813598508780402096562729176014465913156243272822669832231790643329615227869331566151807217551578774072620828627989574046845749808794424568698044845111699114496096008471038282047124802131005870098113664883027359277640272822603363653027307255380708283223075294597084221500662930459865101179887433086100124397552258501929788241449075159529790413657356667724447847663903034796344484716543882627883024933034946070553312354615536533798739108655456697521047368461848902550642952550104881215102273511200415270350963977569438397218090695029025107842048965207987146500626586501417376094280155630083847363565199342471422478841521363781900390111606151916798774732740860338947752795733863878339982730922556671384160407426895128913803484737658728787241846163549668217993360980393941600513259561023491055142439559754551677546347714854181513175754396411796792929760346496944143136709461418730066634195150775017513983776297092388112986830294052282490554501760926284710718221303484939309086095216636507753928206171758941450251510023814646167297987280418379205928295901663076607905795402903538905524458794135496988052913243584713294032517773506175272366434606045036295591986815953783045749176051674911239943734322922348224465081354912349617526269599647475620317823109487322233097609939222747196527271904919506230261474165377146298894224465227157273780446178284563445081426458176671579214018969554456789719200814172970750887292208428766585454878279077925397382997013602881916333428429232429539202052972092327592269455982820351971418450697823354614916247327383150541666274406093510185918566339075908378250760939221066069528637908545224765498519040546527565644215312083634367765347352441962346639432878845995545771267752391471159051555196216576591795677254609839068495427357864087222937788029272532409088605454431034193934040759006818251266494719167854995559144893108965737403741355545172326318574037506701063187595005243023735442241639124911789266222226771773916639893782255792746191021710868938619351653776845883341896773897252737492077183935810470423794365840744035489881337787991731106663405053752889133425053348711711569000262467715914356236873258321488918561328561590512446842972103430035899864129776352752138299543610426291139045866427440263593622582639941278686893667605756018727852406273285118217128241485602138610644670248798079360278797472955389069657322398087103804799168834143550610051424859798385467513099489808866486092580416360692036645024942002733874636509757192318596009368797344488211751387014929283680201554545456819080179542979409150421311946360374171434721728701276970461093381065442355350692764275323866644328363042230385087234090654552373312722694186961618707201330088396846359919856458005043728636366435324270349738717891224926887836755293492494169866297654315717564215233965157421623694330059873346727366209010627853275466841690926767330739960482783487458294366199845695064413672495311142921627046332929105418118910701741953145555564238979142564030269502311902918164672953964374785117563344477138154463877329342527375779151106848792087294160784751504310288661554539410638084179384470979321493856801292314836488649545417938247377937353980946985171760741251733920204101730336295693088919644170322436405612470836996788808000790361888574198899994171592089799128023535558144407984832983265277008462126243827964830331574037980927477561386173626792991039464239834777856677601818531118299715772094749210831804221239300153193564650618017260069046687978097671955297135036625904698562857604938272597732319563400360857880151127806953897312891985837438246527026723644577332215808271772006476598747186230082511168698420379312612940858202683113434465639102620408584642264290647773670976009198987344995302395007175128244745606424790639373156392835777318612698756854568533273755312378024734543724149256302092266913201017903568992584072431667951934170929976856971676273877600084944676583190302100873948366041173605668503621432742715886981406222877616819521493521869992228449086994603740847362321622712840546335864183966786460525044615945341727814813211229400465711560962973148704716676700341054811838523029627594284422279633754298603696462330940977453596789510457775868032095965560601955989735460975106183682509775444070533026443459866459653566649121429095148320355707957471319785648260297879608122443236340869234795076006198210317070893377848596931507699077803686639897051124542085027735434667329095622954486853349964970189711759691684680704060580143637942109258253851175792483983050298151248690176210592061124669655485724667783270470245419608151817230260414714580023892588168556500104492334176498210603602379320279822726688929362291561679919439053580147569956197049117860784679091679831050504079953945595927513162185549846785216277842245820980807895913500459691655022817079601553050791248656297104820278567123504328341730873594464104504235708109508237561543063597848876910690752852078275519291810321322968516638883927025411617659360070541850331913298307414740478997847308712699215420974940405794394233310446282450914772362464232492792882030077805876812976455749765955836089588508268934293791621563641847199641595070286604833652763366905658430312201716194480330692240378226029467736360782147474274102536884417215717124103224881457322487477256255561397011183964171695224492007805107535535301559405211578585016234326636263484004296420962808660376434464812199539339992705270568693897255265241545168615425076930100656283651479416278861549154873412400966415530132086709625658189738487378297377103219304553648359585723880051187417386270484342691622261950854497897183480714041950706881551132560600503862085293553808416407087906305714393705280364255543460196920594752886295141285699779578769557891133789662380598742775187424917098961236503064102674885066250891651710744290492360285672131354011996714205293718169852419755859446809900820134115132962130248772481819103417204725522673458148147711530845007861926304874064488207188061168418721446029899386371337812599219887951697129761646924517211649270605088139181666422162308183185263986958962608302897427828387404290149174548574585942762976346560607851341667839686746342897478863712906223327566639929003036654134753912960941427950107497767826668724618812748996345052093673488428582043581590694118952814008410569244670823751021937247566333104568798339487274399734220344299379759675567766814929683017676350986023790252159155927840576929830624994557400212120684166977969024874634913538301267332765806728584140129908810321627827341917555528139858392222941628820112813227907656077814504558666381978888139859758947627512825795367991129132436318187771139124192154452836668814010575788148183871573262880421422475746045728574785440735712406031685518123247384313936278711351980236245958170096686846740185294543442178983856524429246689256810255498305280588463375053104572944173963551955246259612450909824870990273583197959933727058509253068048196614937563304209718192027924811122813382022566422261775810694886792241541919252546705112642553765630000811731819770406245521304151346987515258447480052437877956642602804449084016781768916622334142782554849337144044159894806867475611916938412149350316534421987021265704932809890958692578044401781082513906260960571787907725276980312587297476919699960356209820128150975633818626013153868859303450192505064825054499966340080620260230557473951292189536510215047581093399742346635806962943800164256528703212296146136269205344484679684715633174110079967890000774542382455826998208501235670809503503326463816896587880736831168244764611933770504170102962805487276229870641419993711725890562707992107167630963517477847559550116984764176937652605604832288793446636885337974769705523482660744692440889708748188730694360341813772402602714919581707777725440079481728730845596350725331680196299444484963304866013141916489027964030567413289348691862300289621626398049930364689361387531556663727847341886001246523874738583612991986875574848082081749322932069883723555767685421319244369860964943169080326531324826675158038493523450413677575555087213740610894100122415683937147705954014711716726365503314505105265691702792221177723136821772311226940484511828734637779314759009012762242969546121817758966363718117642080517683825658616270233729709192931940165556003015318654532091411727235176731974415181249852062851829359720416330195612183456460878084992208815662476282818836783888900766183499664273384317598687096512930443640781084389358497796042805187594964973105310099015971741807570511077802469141399317083687738058275051997123018530493144540686596170435384234496808231893680919971047077585191156824067920869373234465598970483085404935367692706831367163333768731153431166410274598799212623205721206466247333916541390924263424985563425175449846710465784518350249168823628641602424816929691167662495229699570473242893312702706744045522154824712094660748918071304056636363521924000707292284410096796138618191044279179465303987872729632547490476181477866297894170832492371033473542744320723644175439588312929160808880984946004304488878103107819109867179012396580878089642418174429212852913208186010294654450588197480994566997875826081874196009040112283610501358900911493457889309772060041121788529079033614979381309823426386547507755793995524862923096983334011206842509701214959661688139603211879161392316017293468960836171546672836337842350012026875158594486612345153038156300269459677288866897515288578145659779009908505498303566735558672743586756872259480748559287977612882423710492999642443602048589800542323229576183655600103004737108761582916485380452153748228111551151797743935995269474422002553157860055550577000046059081045190088813095525082291441886335546493442144861208522039080649910237174706656634386378397917025143406704544056618760472039600310353031458376636875123153352403570046397324127732571448847754464674024608368437204110770493177833113753509610327291660623642367525553020182337301558445823583989514930494019788585707624814847006835241290731816832751038968981051704682617817637780119482785704460861197240595354672777464805051203230312787949240970929940720608513039121043155336337225832451540242574595869139134205082516800777008347974405068778755796284682101706934578270673360346349820978448329406150467781206236462531278657426237304410768970188991138579321363365125863794967860199398178203688552523644541369874129533562748679584610778058361175170221461413090991583309199529343660198401746491214138051523248577611839483856158856478632443464180172311849876837082721134663311265468121199609298394833162697205405832697424866795236431404621111778227894109957753670168745248684863984253198273285082870670880163284468533543809322457586963185945251270461947534555379027415620177424198089508362327772486933412851658067183425797007717604084193046844312810442799953335930146313709110063954327369835386572995732376359749660074783200713406282124431436446876869866607793520246590887445501552716758862685717530957250840816727262303352841791560410495938561369799223406340786552582473302643475747287660442383762413527483335131399685687821864851987910288806053356810745243508272723761299682230905096311024850051091055875131485880284057843367323452997480852311174496722572982994774470360144056193862766633845632960843963916521851143643539057903840942365726149167532746764879771548878860187569017989169414261970914809455378684731041337375358604560423723442847589338180088891500816836665674257407640800494392148255734323869350674791102107251580359414236361563395050541031251734512455920657833694315076040656995712439313540866729913260005901958877277591563563977796263659175394110547032406646865448357797109695736229068773364323372351312020091579946562622375783689631058311576962459069944683776167521210325282572839975498676959237581432071231972183188244120071643273380662947529789161286566788710586556249420745481595604833916512796707400470723032960387606022450393450354411174097362957880677996399801022761750215593140287857825253702093967645106909879804158088347653816135233797281632146708916155078109907654287283495743225162998832580630729640877259826946443859419550458003246322510062319530291188165094765679575921557647001258192292637490610835161500449384907172782652493413217878837565444471482573350613661381227815802936091096338210692901758132365414093230000500968110337967817622336682014618281353467919075821604425448321958132859554673228301336617554134460764193439902880396528136237261976887714450269575534353684999060597747945813642438084839374027284686155310624271129878688655769010627839001962157402429614597188544842386045397184326046858370802602567659313697628289475338971337868994510110035686322070112875296378288414105368249976456856455895910374778263689321235374709224444469965463813160891952957993739198878251677056322246531951967498852464078804473730400567841199628142149710579569702568727337796824020574897156399060462009887614082297513594821147531027865224672927932140040421150171153893819237594039280721808578451286898430048865480561258054616901570149900699348833648797871958331749189962315556113899102988461173383652717948806667487839334040259481933017739916607642133054062416242612549165448676960624490514121572831336988189943052030138472089508525368575599662517475005478172435932739679185005937001127008027514038538532745259892837107666755853983199943414373719812306420826094766441787185179744178518015861250626909277100251772314834200324269692113068813467265588071046930397703495199384189020913325433757754811078701905844480205754342877601593186938349023133625317234895241291015477920914689479734211640013009398338739174433865261686438867255406790608648344128886534483659157928620587314330733538397249186795841253225510526888351495261014896609460135473652095265706898360326116315133203227015559450751409266502931863685812601856624999720248705894464056817970842936179345462242123799529489055885475902189135115571568157477425576652943486318379159689362951686964082420495015729597454623384030671872961250601799072850451722047228000074569284154046735865556967707391556242261202616728624308555372495777408807254676899142504336384242893714420549544641352695886789702378739468044011082323940050104136158168066751884811773898842297980460223777387270696787764675352491862312039967673478985646834366161680973437352126271562606386637063405932586925738077772015794934119639390927654870572094516630702613959356027076307940519708154831494741095897806468396179807591730870218111559614133025129614743314043760567109999245933225633341021415260304772646649597019938318879341814265803970731407796617053034484594338250669282719693233430781373666120594401312723849375089812146468356379960435911858724720963667439442079508808329256739733719079237988815010085824116141937019728324076273845751580767109777066464581336482758521672926599659101659145744994783910693718564438884538735147156251792708642190583977406421364067301720934338639065422729677931382928761846806931397448294429533584214008788287225842921143245999098541453494410227904073790664137176134484139769151587775330303862332266616774821432446697030619430228397101550932569195176542033175756066004291834221840900081172388418661933056368280063125609216853173114973980153959335567143472407892670647420658910476812044554428385554997817212813472885369369686047641990010618106298940053393186848759924690678895722426534819480118756604389723176371822983964282010233778720912421063084713573057021526095224054013929903055197813862628538218815099597738593068398058262171984661954763091195235786807119390465389792167751276276111724528592946460911161855284698318367728086120614230606070523856607874414453932376897222778860452064810918253550634614150989382174296448925762912307203076928900957491368564624696529863203393722396736322087447773216933085269963756740332753893109448287210891975773867758474115011033699396255607695072281599249401242796299431998551337367399927121165956267474652110049663763239937846026817485621057459488347839848981285250684322316681956307550650920432837557989808449327695745057692850339576089829650004368036044264800814744689453189539133367170548745241022011953029066895681368489989898126966696659540844163403926498128033549183079763945956006375299367580803488210165770232078135473032673083105992903748085378249831967333921023657420927745627670056595182543539719882723348589647799594402742631231269006940681623604845955602886390413602946482194755921154449889211563367173789997185926447899785610948148930900534876853571425674631396262265736444953290805398119083831411450544882092045379354907284710389637155887537863458100124406297195685584692787706452079487732590148290210452326302358017835697982087445065017450225154958328997010439510551836978331556419557769888113263104083216993051903627911881156867243272260259329934697590150234462869301578389974697409533531634134837516964212086535728064829189955357580827712674885600740531423665130152574195348096436419618975036612398632080909308950466605333657914658191683100901071005394062557378685937575972274594332016722461899482883361047375378655618514489007768552963376210848553276845770908738927020782287238743372143372237622427353135481285409949921401499868428651509361878399436141589827624521291974619489089723112909505366486283304932607536259011390802290762123798032792855938106290851135558584157799375504830481167267586929614476494738705146920851907738704615157139168358270293342283266398242627996628180915953575165318658942737536446831416723403791146307203078712318968259304240608023083345404697768989758276766375406857551947119217889658434551240050448598495090071064170233770723932049932738126042959118492137965849813266474287901029103195062465019911139831784289189944606429167838783056862295533020086685856000339430867873945333081598027173376649153599084741921683669879394831783319635343457456200313276497914063711753875649313715651728532438998465818999538461175255266456830451920896700947407043027551281775650764731754285793798987556826443340848564484161387693535316641248115215867306009299866789818281204293512506127724410631705000671123848999797597157354147624839911660424171771367090520390592250407431503914984786301637361184893663584468838151926665362614444118328250804788345913161037092560627500360930512119073686931819787195706284777775264555226539797455222452024073174166816855350903553154034038317048561771421220501121080703920051287200336737965608447789579275206045117686378057466234131402365736386281110438450027306445650241425622466446039726260356130623719807881849200830227877071715104007100081920576180295264697905693689900827781958649455641005517719354564392893890257507702562099226975523024176923589182921178222492792245855954933237647482466211675713384877259698697272318440311015573834178274441481966492271845843385667110811838351784353113624567110193657831728067743895876578887396256347490966704256859789741928924948095527713305721301862782453027341001459094745526760817157231228010147040271764571831205201060701214943561994496501095744476305598933870519053055554744058184341177322511260043221810691821577393423889753957310473035024064268264063394251054186530993784261597636368473126520625529325248072220684159137502080060782668988164018776232802575209049844624824730672506264251014336334543566999541512987132910665537145940647068335028545769415594125787823125661651321932249062248975357233542090602243744322362054808941411712696018191111972417815414418669407797898490415371269671139519980223997456480274086915556609908760160862223605186459632649246852938324172357126046238924766675622058825712935979370996063934458317767663123119569078583300742930924850863626014605775257411233334350402456657065181634349336496402948630136453656089017440787080594172312145512265614660203585699790946002563331283166574598987280809840535557349537506196421121988837109998916529264439754010900208089702125716111038591447286965044222075265463830803167667408039587845888538409919483076665353384216038333501824898057282916815048756178040774835284307112122678981961865730968116269849183803667615217242631598407889359084857794539624926937097318892901866617851917239442512883083063188608739653596728216418355124550775599741744330124549224031589754124711986475133774555446273159671502292891949879108528758777425575979787876297396388954662750051547919758079802984396580536403990426040356903725610646620797678635661829632098463781275082190849604715717935900633335826661685160265629621210500287178383618930954127947145935678034331357364804851376582535775875590673624848333585760173999741695887012413301872298171840523775379155928456409476504814869112320457315495935759984455228243776320988484337074610319905315654407151091658347180061357244964302693260093170682967648378340168338577275371377958255989131477908926717687263782334381080971834920905056064323886556649904404914070766216352919607499989339266621128428139451060139060147803270604513955879695404100817788934307065039868623707811138491801636392152448392893499939432512763498471940173752673905132991272761971017166166610193359906981320884936554752316629450896131581532404044686747583078117639614256371674058245443344981565286306465247633748347707767715034683631333278472296975511494120089838325499252192310834764550134676278488000318217962880785433256565657414302715213311030304721575933488949988304246713081831656595310775028291149246411867806332124108757066497465939511117156095189200775387503397982850538528127735982332656576358530830459340333152186596355432138375577752921135395019232857031887706896440509983871685193055452667736637167683559264981206129635762788280388542083407584844248557171090608691456895135413985457256752482062274206316478580674052867105008214729868397854481972022541108302229226468486181125349363777344251711680393969898050797097566459979108812883281983468064657255020703554995994073753457872808108755207027009484003418512771471726529472921700167767388954972966196858954069104285514140868372605205681770897679317457265689502859916475159601478971656216714776981309104508702100943702195718383030781816475834341000964078654331574825294029014382755384525956638544675615292481510529277597411484725320227826436737446939092387177443641400403019251026167474029153471404496337111499832737103393618089589896083026892456224931538957423630310916572152012355778831615636868674456357054559342144771849094898807847805837001442012184700502892727103657710574186979037819326478289836535772174063173584049333011431112744905394871785445179584552713127053395202323356875075031282717017720831726459619634716321500142274934274911474452620644793772919716636653511798777730199649905146003195798946305803537503388306515973175527521946384543610682132029358641458605412234798748537088837100107997824879953801868500743209037366606892629349596903356779416423067506460052238990311978478283928840889374459385124584980320572231214537660594493210298696717706751639698209551587859603434102894111057990989498782134586525808855193731370361223496026338881093779026579925662928936542039841334089656702161019905356163728212450798566267301398911785946980692634788621231968103003012794761235907370080111779699531204311124795310344146299388475593851130032032545681182396931926633748130778381969810926916208499694473323778681846043595292145476906953973536585745274510307936951432520584436638128955999321543382342106272446978184438452711590110087793209112102357040603583191601012741268047558566247317159090833455666642715177873644042599916972110788494172245286482854363661855959472433198149592631187155219946580514605007118494784108348309765535351729745983338258621030420730022628282192655766840805430350108662111054418823007828611758060827141733996104032215824990154062657117931080048637782451211974377599368140456919908288557307053559769852166171211302787277294490668367001865543744985382577400579695610821847764886989718290322077343562161788341280517898427900778837565321206091792612007339618129564383467006708973401746492882659985223483096586949612807115911850184431547929033723409961779443880493120694295475185382484559748745224203400565269306974349251740692304798680712571688250757458021087540239647901854583370538608706515813081379948733412204576239449048439015589210969940263019563304976889399960558680584908459741514824965916466933995827185901845952745860323875146762359817505585433800071677152428589238889559033861838351499647783719701833170304523753647759765842830289756823091503590048999987034640866954626069059837549537810134252235689065667338241912195105623351256311403135366120775965580688263269762747454159041412388136867835381795620019388033329046384231685187103612924126050291097695759257410156948818791546631729772821070687669903613867733152129137923846037065543586359682030316629239792946686778057369136398702657538873088346648074813860437653114382219071519890583594267412484282915586309458695945630276777132196487410211271814055507921487656288561335259607635051320316107737746555318882838635410463719705155137084520694146705555524447221616335150557410699255271218424885974974361636485113006705041865996720430422978129519695222835145576294625969622061836084845831290447627356022871843308325128964796512257546306300798799814054168250164772110378352982949705656722695705465799437489592484713102096291877775329234694059136861343829494081038869899204024807702816328084415097931342724235746709303538615823218991973118138244368963914029090691432253651271911893551055439784545263792551688729873296074845794447322838368709299811340950344002314494164707786454715121845899191930689394696229908315937284384635305130524182219358983303661625018088190678052682171484116177199662172940029802775934069707801908968761937199417977590839013574667275468011409044476457160536145040712472109540483105678058888616235406703330065975568670914693688532149521848168775974496195216756436691537862403202792648548035165917803786528620878504472223978817427419882019870560468046292174470904505613358814170060932976365124559394532571219061121831789718927562950677805100320457805209064971060899450548831776761493576615991941533302788669533336329186868902171995013475405234559849120561012952246711294434527624586925095484310286069353935778188352257779686318383374469394079911323612104891258289092047063385913612257631254991447411362017937382436487861206150072881692498747168207674375000014452557788245286856225750447019109425841604230143149595481075745700781868246812354675391558768574345464283453864372222772313613159716991801809694371991053991745995071748399127038208293165303480971442400690558644105160140896944570378906978615505900794994817073051479525925947966497765869935853308283783732167166611291241879371230619552994290000748560242026046379878846496469689891720788597924619651417912370838257536525040967025877678021905488771560466585481660398310798179865393114414933776760692025728899559529319681467961857293091810216129465748935406413501541124023910591694180407847020010690575577144154170529038163704419847061798353489402387646517881906027671410731472076177726997871243161918086257912162359968183723444236210884815588462105169323282735988356384016431131767274664930261988998217607663630358501691474653124114389062570499304816276433680521398647276814408968783494257310731269866683636302389786518976023251610114319546284430259508089242492827878290865723896370580875447778834023401742805836959271750548870269323580510261582110961678126223432236536083449175986979158550676598223214992883296823376471435148863680012020759786798333211414984112029265515382484722358103275938803358752470124249234916492575190784388385917400094092839483068376969484874565072945729018054934134947742141852948251429362274911213715560673972090160878326141240748922587293055815614443382209328210749139057872830820996959018632655257540084930209397659018500420966929074183412705761038857417562004934179865894106472290605198007574964587250760020627965851512025186825390648109537128350476223700927695023901269290419573638143430563460168262061472385918964289027108676818637989210215749795802272977210901503950849267742202242659096651468934012720055735010026600392918485553553859943112043647548954444247206318242525930012343529472187804726417148082801331023056571086221893518733048406687179756601421233986410192715627734135554065569627780521915886371416439097394138817832463793946512418749928132882552310560979235599166168609354232135280517173902789671931998640968513545202689149949061690957148846580622566559140712768403455341614341485288584855370180765659315736139377326082353625744289776388638578395627550410399116302473854333342543114293645552334562328134359955730543669196368312977930592942037972156984984407073976234207525640169753434678005386599612003466790081784295910079166822084789790736591309565385083338651523015760116994761505085487499412479188170694847237534103054182801875233451717034296011776919695547785568591839386875974702107395946001986972675716842962484456969590763491240423717699178070339548946506930576171765524156207322716971123951778513953118427967819257124859040536681844838404183988864322813541364749022838818066312898788330457777621990902743656294718639350036388416843280443615274191633668581919375320615673545848378657549583825369506161336996977067044596587373354978844799599151536371818093677533712152536978386816408035220290064986107602090826816228067050164745280652535025091608770176675654132774887302085719223035939236142770529663254393476090428969952715679858219539205636688074976662945465706882350110213750935487533973526576812999188478238282583340092575617422474455209780819952785934584318369717667447016392453109541387425578046164918790943054819734936043004162303543493625417035872547118160380875776055785629844520454779539965125281940419127318269664539642250308479943748485278883567445075915923678048803475491301913072649161710207239829238259526735890559208216130675514580386850292367620226400995219792876592987569960692347258671233740016108137214472387056774285467580121861300695480830473958275410343322828269966379077021147847690670235618227718806269548022717631059133103934261074971851397155411226255372235420008586003147138349979846880275045196975419411042875642621875107555735629540183852037372250744048645637253801442595350685053637828217609396849826680878053016369352331640595562147284545383665017819416588619040351891501258686260459323403081597627284441801977564079085141005146533045475195634723486587028757001804859706299463944616231319450515527138633414069657645130183975544592187680984719633510908409647450007721414550303801349520783869829678589337825863640407271832821899842979441693212136511408257348429439250417886735461278457017254081855210763644942405200367601629813045229941340387294571198199582954834929690459935663669135843255447019463175082867545775963270228922448188763001231122112728375339174102070629765130400694462497001786292581725356498601368451632045211552727558224151582831546062828302045323474851774774829397871289868369818841854836755964646134193734418966873545293491475538074256178797616978552965141973613337177198051922853536119989489584594507680706530196563976542214155119153736798898884673196509955063158092727842125538056523607302348308288389260225748846408555603447053788159456497394581141598821845265040489803797411206481567392648661499359056449957367883002639142121433793958510256529711852794499383561120533303506197908394467295204344476410212927931652224936911214363835059094399760313212516035203178292144438855605040404907222475573018089404141543548571901129092521459495827281449857627584997241290426358354476756195370334748666520740029582441716443572172730432384235135675176194546833753465629087188286561972905224459459348838289649257282181617334606028596824747942402679386360073872879684223235106835171532072104139215079546446485328243285421646717498973943942950530315940530957477927510860194539434729590106441109876857197447784817791996960414854192356658522508193381303790422470836899035250401225883370995449862347368242419285242877941212706529162347466350923691353459751561309275987359375545342961736278418506847893739946782186985902088956237686253543299682895647592678860717687966791879610867272937913976206594689448780139579806646166768434976111334815128868931502932270964820092246775631313184986070817756082444529796213767971959349817129138463191883474748167328828015772758715643575216380784695368915287932530455092641916099785348976361331953545033889507369863197490381767385340304894584328303711700071571847478513109426402973498864503794858700701178319077544041865424742849647494795024750214325274323100399321550219399080013431010580394138934353461806502721465661858216579081542534342180916306301833773202532560221829164999179193469592957959401362758683048561489130523329974051186383017313194263884196763979824301137181760857983826346954206428400873553206988958632264492748672006649501431072117125097996416425722023414163811865748548800919348314107075098754594213535264891202900212734759220289721491590804138901392464361839474528790881474851004182784227749922907110131777732800633904789355120338529760047104734264018465191665546158595294210191368638723331319773394321000149402433601062627612899023827716708368307350376508971227845020749053675202229581834477838634290423020647593125121333566410458336761705442166084365389664531291702632500393457773150917687802625589208362121957997315576691806527565536215335935263973285212254265766727490287531021590744760230273134439945552324809680529991493275050618354018461615894431346128881521918961771667590262330306742049643992474259970618640031030549537536771501156486551123440002293632976440173729784535812535166315354509317690513047592907399242723739082404382394035931671885160459060239706564008550425878930381595673876130610278211236351485238013180313658541601928765101060504221325576469611244114336434811054589263763455013624084793010581661086025117286391910621901921652387660193710848727725848192952287946049484606015509196296198189691149309392803621510264453632747568476646777393461409965558065889394474647980258945838992615507962134976953747714313761854661221104891765947040057582803971929783202047910538260924993602347033160748531144593742324499750082310313975002891629184873974783129374574857844329133843960760243742295235221033799271700614886810290066040974050695873857684420570686175495533399420034992211990108050077940711787968702036006272489634688498137741686366433038590362879272257053783629855103015769259593289907844958520748677326130211843935220323945773535822176281514658827756622769721419390758179163861290013296696775797598080284367674068980906445354082479821113608420343160483018370895527478180865777571830202373645203299170182013325404171474923470585810667921267465099773945366540510728079857292650932552726203260356242055868789287284672184235882251536304146580652296810403152695191931263916221708558123832324851831883630313399525119533484024968383945940110662150700918598027542254608168027877792280566476669983725731711981201374535299621735761778642623402908610109292858906569586150615939257585633351972654786550637888652032371118437320492460560965617963801686474011229471570938849246825668357242087715795087617559104624792756436276019466280262791363564228033418336193685316599305801149661035915690717696138380646882945803242027443381994907976570083745829109587551336198730755714707871481290355831712739635999683711237252188517288065276134753479421326322311402547582865411102876092503527770794895843839405813232761163071185117066801548393976840477952627521151694946545794987625733287796711896649977981405938262611710224545586455462146189731208401721026590728053143935297550122464607233257291312318972312191665116893740427620035002266795330332657448859979201765615511823265468569820414621488118979724473108060750122890847851913349435949111869220504447860079579120622183334990642130890057790112119148065262099242680019694944116788953859159811587028372107822335418333919706351740380781224543350301431629351723594115494914610351828876851054361287103946556390909148409270694671836992669764770651697189109461904098860316604865016547184366408625229036585483353946677013774630336704012363974806694824534783530470198466954170137667800614136060079402006235176396213377467313567021146358261152846748249697721146432861027078446901366007657511803116774998018363288310771407941839142008758379985773865291932240282773053585572008230495355712869559212522505518482119174948433365105018137172422168859648121329790941327986003346551735507308478449025265153552664099578387822034711826119297687798196129279310232183293075955756047722456299046310433874239982449193973279787388239024833743018252232174753162026457141732552344943227314778569951923704862759609427129175124817046594900275645768242092000568023084558075361063522773974118030866006433396358476864682770537631881690290520846502078276863804568311168527760481425828941955080434947739960842962665897974957374480601680078488694098439344162958562155498973470995798346246754219848744515203900293933425741753793724965632561253312493030854740238978899009668866229521966964145343681935125689659084973257836869126039224389828931590638938451974421589992072351330026679313653710920082920078232968563689612222341380403922425230364818971490084532267675899609577423458728493723255328423955292587630581857372794928099859976544722191561345017041035242752910060893268453839305374281402492288401872332796738636336815230585285626930572072513876977460686604403151405986139807725346266387094148593382509440296911161727391954359938517630206194685725797908610544191498110873906363453753871493382261750172208254868790615494534203820634640649772846151832825350996793263471985599287509639361993497848027071835673374576453677770589782816503529595647461955235432153181745415208840750314118800694657578568591163359836350288183895384529595190769079106424375900848553302769492663059579294965075999127532669481905637838305149516387032583796330256261933747412195777155701201198337599248770613010878916170054559543889054660800464629104388593211733052181064167898248723057185408073144185954850965467002594819783224814147466016380973065043651521091442302562705221185297720397107703429146630782604329616806537162811567478220774104457331959886969003443819156322490427571443537504817672888474970011901308371446673802201304452720068646478845285518705656361946596148238334321669510017444816299802501918166198095470083197647895153866154370208464170993484622801295892535839770826410519493192801012977234051098527702125689931866354067093741424160189644568116083149333683305375334386364155740348688647660335927500337205631485084665699150640179022873746895874759511243226061373723958477616301253959895281067235831035805051984332172498037360181942306292665521238040271893734610762576886545521593004764209589624996616369636028125043248828110954202899258336571323699239093986124895679335108067918650673278553366693501144208651910067634880124828325392211275409949062355552526386933593716650231453237048733750290679847452412234277435233786900022518287210650391294554064627776410346533909752252546888559163705385181094082140273326308941856995607356625822429510968962095087535015125992636241595555325679473377719186253484878439559543605897180404183846788658770411980705073950041741284749588960281939528080729849671154485991331088347669650194657682432396197775740050185881998797524102875743663534270767358281184474128778233007409892865915609378369601136639623037336741730858605074677325605728795118639418017170585962361536292157389980806757699654711236808283164969755007541518558523617344031641117657967734219873357957751062623653496938887986401257448321451062026198956272493185702759426658541943685077667210854690438589590674537351801948495061797200720407600591536261653289643972348772934108726045728423319071198373909460991013283510188895642384058443321935443480116130857411039288790477106940131212470853849641567945766362906291406420650274215506003640886974927750447015868511572309844625020429815337392923266385135258431844353669493731267705672819005303741235612554109001688416584361517790138430929006582500626389579052541360490498333643913511286046910258605695645911199482932003677036679570879060594579948608248596418521776127715718966220733283886900612527967216003428971363182087423872418548657513331103847842878489841303501762498808832296368173930119100590697364092620083303209370502218703515474095015355399879650221806695464581138429394869872561367948140147716754617527636702027018023482537631635824490472845102487541111221323437547947676993650218126938997603611645684669098578623719285401386914151109910580193927408927263493203547267035829546833366653601302642554376462987264588589883082609114482602867655033805622392639673243486528895535031644035725053719801750740772278910396285009390736042644553879333780787452757682508069758034416942885340082491144230941177233309500634272634285014346220705649628547247258965449063121755718440390414855001951669547739288842493976901448357245110089664131940932725943171839926200739851846772286188457709371323790564323859020420715380838417496515394263411440650574235533805865274584226412489762630783553494276831703796181790737145476822851948747830128798160960413569238038569147962191182750390587012330884811864475620634913030392019575856067054529363949844590403568089656972968247130442737977009640470734765095435209018428059885876183097051035108901107176379370548473122961180297010257032613073809632632122426147906145156035381455173728068001763443343027124494430885612687383258132888182320623053627221756686272217646322600727839643228881598556730963660200471419889490111497589177714799516310493646434581997225890955059392288202216238992480773254067869228601171500577122836188263236075410314559574449464599784239006153591876664163058229344670578514847282175553980803311696932069817250390790644945796940643677873663296132973165701973177001810816747398611775728415909211340299740561212127406514456829164263044766204731765276183938474750693341439639840832290002588367823832590127334421146474283502855835248855941827009744723403687637599397564596662014814825315408394728604701107638324639237586692217347403532475142705877245383957897693177066805210019240799572302765991364023522479322976253342306480558761265027906489358855341635973782416499399294055263312032223461896237259530315309566852821252820278154087094827666676554016369096370689859925628509551042884224619463348071747211654500109931067678772389360466740746506747111382223464907645111969459896261974680083623475690673446744512801456475244095272273288628615620372644211850029882797037570996347184711494989414634217496605629799311541044412518964458189966916592862960656588578648713344190761509721498051028875240890660956383470517549910576738194360726827974242215695802087909265771801044799777322565118782113504773179895991473916549707285792822160229988469085109169274516959531653921363826074523459177273975041513878180873846192336098516410533712702216887515803714646351930801101527312446442030290347718958030893384031207419572208540105980147503613363328562435217942751818654498483929242759631546248012753616925459519290892987289844191618074115069114356188904516754706920909617791243979847228351104960778143067978886888763941716989095811055010346253804535549699836373370952125084688201567635994956828823902103994053599277861250234052131112796727047312491972250752235384105078091268674523405709245831017550566249927629057855305683506655907210381784362300609960459683207348027354956647954283856125710642174879396512184944980092715287746061390947072757486170231392452487245321987227812360321258897528564840676032448734715462115654252491165770591416168310343353449780051843460837928335841735535385352380400005827745117139819884235330554543508045526597530107780313989880188625011913470737352213850346940907526398707905422966980066208548996771465634736393339359523041288716304027349668066496410512941078759642277433982031416065954232108016149600734015642371820195512735326993816314873472096102368591901076931873694803886095992044512383893029078887661463497062640477686997468327463204353510351679698966476053976262297710376530109829787183713660628558950341819023480407196349087437611097391432477933396392142452821602090544687958714337115433498069410031764004164988823183265339464818214123644504980644872399324246645916984237032387711640935222754602273234844789894145973867018201794064115089898300994276475487612490547936791637670866493972753576545649035863211358514780134945016941100217485102864184713504090555538669782196187273863831845802668734333868262645461011098730222977777895450754128511561430267173161313810808720023503809370793502494292413724247638639157380637173011430538245278930959963474890208550994463258166518868751725663723055673812375039409471341546500491008859003973681666885166919767433768140069612407722490851455710332137701545861728517450472979083900129366195602450500757655623620276758686347126418210395982159966292277079842262543081884714290803409130498966398807136909889064206072074015458242949206842694488315353097047356740714631745432896271874920953512068033841782019514867705694410427678907525744599113761751764348920068424526082224905410859951687712207894057371470723306362696808162711966165761499775043934155040243348734820145180664289059188778304204418002779138233221026916902295438086553232946156501344772603028024135400819306019201947374484813808554602559522276126904960306081182871385139465352981178611728849422579953296880337295186446723517263854217022443833236051280999856581683727448780585115415774370183407365163629837838935771746083505760861237233133936452274669047824794950783567879030971720155152867245348293872908890737104635493161520188424855479847795516104333944287281954146531521714786016765139587338397577462231482860893404547236467232323326112025024391274481123958191789659888936496832747360086790300228167768272601257642717844957256434040140375985490694382064768248326295429434245704082467926573474449093541689145908512907906720511536212259542170229187886028619556391845905583186161108413842060943173016735011268364032569663030662192957651711314779779857633882572615391380279689439179154312415819317425933575303456687028880390892783790841761753596835350853317076594771398404111952671309810140271028605055477649965585150855175320173476337734213746428364411300353811993738488889529993361710648040225062172402618805793204707717587719068528351950919230271708537323584998170875827219166752381285312559573830211664369001143379966392475685393223507710896298009317749615351520545798745498642838684975397706866106731886595934227790811959963504371220186596572271519077178287947847724873283530708149995728921207229056379454293757579126192752912583263631853371432922961623197251125161751941163319893369789337789717664910175545551654041863369631231428761992334614049804140296915901775144145217444227345164648717353433814033424826536214275260562185226222271981827261848237685479372845308547758462661324752525459236378793329418316139582368500014132098090330881388672096571518895745842931014278342533707944375301288336605561924046156423281329825747165455963663320302454880258438738268706884132701236291577639584625004218207229585809739163140212019102330465948224594960772623647611795115503224891044078653858737338236356436523938224650388785696092441288835716688463142651278752339253215424188680443041169982702252416291858830019441390000024109150617144574998573977190754543079630704902348676631050152174080822439725565585843127717656255206827040728713919053149266597664473393762565829258026542333171684893614703763762355813363199604749417021099880455477637085366473581132961102312981167056662548448650865010556072777754067894143878391943789820649555791741579638387438746478295078528003647416636511416496937952305215507788779399210184370431124215922418010777431226837672508318673746278128353703242217662987195564285233535506649774338697087933258629145297483032773710704465904190379241424323165736948215511833177232901559981487622051884933947857371469095683649576955973746615968865892319116525652768323586460416818687822004502269235365350205295170457140521294584137767776655782791522467753213146332572547909012243787659415676983101486330962702807094104229939861957532544478782821443836309226579778663866611941799696273964860293989963959382234160184334797286063131932259851887072768048301127570937222118782723839934904994725701709977409831038719831584814715075103128486351357232084070205964223454570780062346031091292174308194204942680334094688680713961091464251521806886688004478770491262652616419907882819242974397592452295495854763079051007723793995405184980403679653739998774025912092907110256317665327334282887162531959204549924468915561973162470989970058582474303040956379428614364721924683100713243480760472824330306453906800742386925178843345139869068760435822068709397113691776851395343574220850216171242346248203185696138850188100632069983327695032274569116509700981843539455864659082201712776897846872972689106866854839087504994734288513682828973353654537881333541694534888661368652428113184103577971509756204367848197991052586708999026774307871910673213750653850981963099873654562191223473314517595223200873279667570870656712828630235921646012304853231034874853051398699418650488220157304398522333255961047179155772167581451209383773897883949944931855634277898179813651351768286913476313473383372047620155310342003879123964217076699016431761440878970738680124888873090812562437337369313442080918714837679917408873652773770586495453911456305959541275321838715959345606057853413456441615162541767975519681339659006514022365838059104410000619135969883669396927406118816090911827515510486155363239671592045290538329727547704555680534799495871692746301612263639640236656564342476277116935878067158532701873625028736249724831911829659666374648831043408755393512788709984502753353050794534490857649593928343209034342177250079291399592493112783047594962990853521103713790414905089018537773466601906044521140114617165266150714220654546213351133675934502319524059068511007433475257105893522770685305250912169442659191298609190582766868214213959388932184230585506121021801752905534671198190094137060434908821578755200175374941262815958930071985543503847897344008197747941299468465272881726906814673495630482621300382660086521954152051513357486725952630804339762308635632654357930756772412666091852625734716874855244985494726084638128837537597840513968128475242500295784313831301484738245472066597695796352857381607404131966177673916703474803560997416295041221418478258241955352196461453031459294855548333058333991181343991605818525401695837172570866584590673933311882450300882291545363364339867511164579941187759822028931349525412442493020449206452220561644370477882097336427941796453664843140673502112743069897001274344720019584960936058106175412131665397533856762113914931326127354118699090508616441279964430055046973951249319991400604606007833272678926469552550141759009763835708044531226886593763313472408713549518736041722661177867087617383650123807855439501963718695177160045884352689770049934420552715015694851025188991447844118290411615572544660388458103286501592661626005311557172551610631390051290259618981665847703720659897042402987082633628059206164775155900118013084343625672292593029513468883980798392626796794594799944108753483901405990435060231928537141026682505027074890222570821200416742405275680205183371291690691833266001974129379209038214410817814051858583361213209427456471785803895226766451412098080677952692503715509906400001766752752498720442974583702010628015156460893414483914880156457146071239561283842141652271636310619727244683716293081939492552234843700854805362727128350182845854646471835633595086138910335628032826480680686394464837843196174502652892857946653339933415603867856619445517167361935063025869312984911420095822283197788173911480603782582276986960336164222198388381950510056867106470014740325955007473232336363113218673626477463101461846201289242233347704981883007537208950704661969697842620666990572700581524091843032560180851217291479706109745434193558394726262975008494907616727653210688565251490211738297725466642150399312764575542444232232879347123413137741167241911380944167532196445388632074286288224014602759975602145616884777758763011449388483120011045226666515990373858154243794048552356656189425586998708556800544578587047335857641528610739666155932191865312416602631844577887979091760807358351218847781675819500644656918310897429184898833833287120992473943185337862639354142086148836576839736708196318839091927892870774721219561444833689495974974243538131557717317037124238854512987244830421489010469170711494737112200763186657569447848259341495843453235080544627325453810036259971675095762540616737947668160697810092065578264971211425046805384854281939832121643161346502298336743177242422526182791934462808242792847389616184692784587722838673333639453502904281654950572912120184099288332685384223394424306354622778225343646460949701777151811227454419275476160866569116723366776361013124457317795262643650978765221264699325041189716873612256743784160086217859905699363789819091549599385107063482321499628325819899613302091181430453991217461704993365925005236061731765064726957142419639875374375634535126046996666204944690834360899173015121911862017599593785095093560220893700304064875630365036333434424796684281525093950127505839816396713136521802634303894534236163010241427404725652981071682936140077444623281682950848057892577367570314188884464547010446981966596834362657594862584334012562241019150936045316975755351274559854255491424076544620689807785584056452931638115529624790014141822764010557939343516198536342684569564175182234815535203912285840678018632341077839097555004708842613263113658298190360621468154371668575609367670851905681362319979759864759261351165820687790352116292701449078212512817260913583510460303280987665136573524864175125263473461957485251219565244191464804791459799791040346925065800077410135250943732753134911889133689795460575329138430658866501130413187723037524652795343834377316201887920427739052348083906669388173298325236456101414097500170822448489680464720637462490389777085267135817271191147181542917802483159823497628489560074300986752408236827118299676326759408938162856968925015014625288534535357991096817097882923794980528139448775927817139331527460824247151360217524152033523968409400294610599171314557379496198247560325923288756720239885849877400192666356327616553961715419800583285155021910019470390245289156533778095119438946918570532632932702759233844452348191761676714378972569420839500793055996236416494117025218404129487588065469260676486443880213714389453634385381864894611783647973530239899747474767348135644999809545461557649223884993819466516936320108403992664790750538881171040636030450820385151948684055304625427720045483394761715579211185957236228530786686043810793708566821665094627477556840007860945897161598292174325809456757190468178459996704122965181062006277102723888176844440750355054330005856885462968067293989810105308355177124192320620446323058317802064862346588340926116985032277562092797818126896104363912643476393485615753875132185233200258206278114295022629474706868959277091588453940725946438556859404953180056968398520728816438481494333932917310214331951545648754541659812196676984605636908541397130395110642085037423125019511300628076659227612113920576385317482732985089251506019606087513853572712645989036865222539703316483307086319880574515893932685113934405560430941365933783563497112062253955894454369900739626040509242513636394231679711288167868471610430743135667562526455604662676508601311514279036369206348772119745779892950980499333219236796102748963928754552852952610823671997069523416612322206684853896878518155265721338201215042694357939660864109754499719455177177655995851191927950300822120157473826563488682564433993013119197716144146502495498459179528089088002139874072979134064484545934045846335778036655735975939500336311906839891956174647138548648992233098877838997932058879810676330853310237699449854054805301876919434617140523618218937759847316551184644744248785912024929608847483538332380014792412325661571014655610573114063562396270160739286000220401510789198007677063487226002300690315392917187436304140125129660999737429108498033819220228187046535687069129954308372023941301457325544942514441251535838807988428700684365779378852569572221245569214816524763628277670184685349854868284717163349885144984790677310590260484118172440316484680172962449320284364978901138768359908342914500997342968653028513067228534153544052234246941605212544159138458572422367491124007220937177466834640717097770293293430825237421302232718768697816713112213176897433646038735585624341697157363178944389657872190853912635894035769138042708173471534927488459514903107627857395927151472182984007361655289729872007722634450430915641766052991683602472896391028172577834110560320601070001675621500870870846542918756549235024920504169872636679977759781416555065808791468883507756967077480312077585904078921071531132513353222645961736183353136837075882581596774767916435565696626514553057709351668464331528133661469748876779144097061420474241822430384088655417501822004202878023625070212152315541108983449224565907506755786878695395429049649688434817420893703660076675321204363165922220509433941961953674863031665875909580097643305266155099880401071777736203948455771662795124120379431839627649966783846363404183012515609346664599080199564028696364165142540500411400445252923202680953043409621205997172585759206830976578022041292703555615403384004835639602732899400013128712895706315913349125374229807114189018243578571236931099264533034000623185008584898870125486114504454532687443040242788494160256946746160960342289817255626916728470727648526027281334672951873524306210117289956695301069945490255426272472930317170911043682323056189127140190842431121423186268163323386109238134176090955855358885247768153600317274040307162192425303505635907448743300535283028924601673031310773409487018124589032490593147080537463501936709492900802886682594950151224435891456623751523182255969921101295581689043573814670203401229661621145124992842217106058678088006992339895657924681972366464696813881751774632679348462323356606023665110346412741454582007958623073857838123712236720669464468862893787385633295470665129500103718575580791521061144285034503851795657462296266413474572177071210421173079546873872338106223105243706086338120686140752130631982815609212721970142143473387957383611358132388265953506056299434825733528497229344931377383290262686842048041024351814422825885874894988223715265936607475835928042694295261973619277762108108891267278245223262327760948376271357955824869226675831459647859884541453368276090664455092251842097198585581693655065606958333525671514751048176526322752358100467202175682208305772628818977984322658398438028507587107757240581682941995272755379335673911622129525550566979306368540304371427740408732432212024237637210240648810274281140974816217606950508202113020664923510520073239122486302458330512047631607944717555681968217653831617113073738114551577311565181656787065589017899788740193356694425712176176087649431600205090652864248024281164874865938350488415177780314064664789080526663882531659837651989769686121334520397197986489459826625814649113665104725239198433176998322857392840899965258403278634138364795674880461431766472575130356399004308792984696719114756354801416478555593000126556717350349065475225637391580151917409449503169779894310503914036101005934476118433974857254781776321130466027113383343913765494627933595098054490068750944478405854799375241554278742802958841346450866461455397055739910309067805831225549892087254105709802281089547291610258735750077983965656013970506448828724966774635030490943311121197058844418864671563185854349740859617665119805107586649963447398336433068372304700171297136335525424615582577124780876446216604459125794437137980822989888827888198978959126435369239103390396101300954119815175368651209994901237229667283988957406318003381584518415970964911138511011593762837181672388396455655515108488536598988054094043822306468484887128489277300393713648628352079486561534322358730244530456131171456648346850338338652582909829205473003796664744968335678301251124954295184059405832180371254072172744664372869827513141747892066540538870282139387861342819115571598755738847869224398852313923836511620973920663945300580072367990991037452513154614429568811656127537161450863291364067895445446018988847419872458277923094155717893951018483477238927462267451773354115056309163885771470681713951438042763753230027287438346769544287211938144180294465611968623063626798397563860417378107063921030797037118847687026176312936492946956853067485438096709160299431854226297008403337586149971653441695521998210972382190381805430532510897087849041384372053878455649496010294954317480487721603737161255188527423143978304549909251340828143194767333338315000022719705342081007771382402831535604719377766106182973345790838627563839181362235581099689297159219646119184742637027577408743683763519065725889359813965194879151138763174858461863064726911510456258647189338214543086289593608795532580108977990834183760420797405674263319015373576646264100083059184327644878444144961181843935540684833824786373536964108203634765872060108436441727961435355791927516506899827415473959832700489065594631619884292792276210730535997993351654780234935127170000534432467589989346678732445392616141179095289381080831023213811437942506471240346947206874989345128792386059014002677584373601127438455828185159343223577470880802804969541032750161607084580399091605253121635707440801213244374783895303012529717436153301490144915914992826555080418085898260052354706255412511582333683249132865888474221572411179583345220571435851017854162371172757742661978334135579042699256862040136254249284783758660254542126638113415398290768392846382435716952080876031099577054775034824903433966420876500117223121707230225929792944835482853238288764077259231818182293266982896791323755525998480106397858738467673346913254460060973618409819527270811549868931662945988872517180793619839331253959535378256248795706965341321418059782084653064159416714115878317062748085401547114842429444453562120631921978422489856576517921251465424856330667507555647275301399397427227933071174404657253152684317283114499778590357485078909307891822905119155328093621407578951080611566107897125905027208000236293784209924166037655741130082606828082067673962904217252437379742078173236026769080724095304251976375113200759161731685312274782314276835039340578371644569402286658197545762515974743012980922529424606717945779543711835556515021879888510878393546234660056461312781511827272039944686668150666268693556575813766864438029156921418580782584616230194300971831984604605627012139369072754620805145306260508653071444463060103143383552601710620913151540552013848387784844170889515813354028536878331844385695086218840699983127811113370793163656308247536799835507221735148386466458516195394794074189235800792454247711715424749456205641116148477008012444433463306507445386876667215884299239734591630754292786715765278591079229104575355817942157524775831347218709235431309892847213900677587206926282832658648273254658869597577388971351637359153808216630186796005564983814332490522393550567598063511688985029292494004981084571121723009479414015358690298992672202719639917479097611802818061677923902600500792158993986476247093620670785304462082690531429018268302615233743633318068855471375686932521971761708395409697593315281264848755406184477790017594963469432537432898469077402188598512263180957923824010185048599847038228214666640788002125761254563431673362473910217728738024190688643276461753488745568092614777051050894742577330750874652432377284520186903211192583223583556020532218570790099215844583612198415820220054746868305507702570360651095783082312485233385821362773234895848882305516082540362945320073382002545919820772074737758989250806460274499476792806281782401734762943811612275281871734174620043748085964175164058611045591575790744113948817393502203527531990142913670508681728838306437954519597654630809576133829819912965656162915411617531824282085656384436647278405042797649373385864327589415504623977169045453114844353641330737237010517077731108872573183553379828829680529091740424338690193941824634240016070195817144055556997325906629845559106780236378606504621047435859376159770963899596733593038705408792849739962643923435905658543482119529318527269574281134683842935196835843946616918973512821865939955625944602872931171905831678167221978870041810082027671024311913768303895626494306214566201395023890548677776101811300705138025945358981139369032878619821013274269335096535555694603154522017183675638750190155279256799488686427470414316441917790146556819286846226208957853469451141768205672738001571520939583027814827743684873209181048828223925561562924740465787382480274792350596468031846606409048275566999026721904144915260111707683161361814342348880207339008933344051915115422104137688332365014125976851870577440225744424235907480428518379750522773329471902008275701273322204580216366528695492902990625797348285186282143342786728624443443779948656546686307382983751079197708931376311083663234086196784628318006905155298610810579418012890372930384452817622902493670864085458665104658654017605268476145387966509195821253687608291822808710253364269796975998510770861722926585965324457173672835749292128815016733432498589979015029409036176947333604333438426871573383747551733066816031308432881796330450560147662984483080648153801568424605468544425975590141020130452056929849112345777825002846843214710929211650899141868733108239185090903708353140145839513403682990288599272420215296644607243877451856687492845129871502111085051545250865808332678283611454355887985027203105727877058059894839457359134249605720710535757709546870497168567933410586050872855725155323231475412250840641677790755607897525898126090151045144431045492107069346772743711381551471072834926841416500568524257102198877472187424770652306647111847101740999227084968984152532057910087292901941988124812548912390889006367909743757124648866215752208210677326629424496837373381799103250369999532331103836885046309920619109967030035189535088527543554484080913744305945170911510907021632113932569969610352343231726559939027934210508707636040160657187065010069639463443556489251654293896049901221435142840089668367781735951791338203360186115374846444397664580177365539486092513154394790046634720777268542361676560235593429639141299318128254685198994624007583781661422917809888686620335545371141677702467061153317265615951385421875836383466547164707853639878724484355349102043735441971840857807570870593620973394513143824314227312732769462472029507407736627032221378798569626052254203077986190351420484325621494033692771234172003353119619501112987267003216277119757657748292787934986430419697925007953211438975526079610165884685688988219930964801246132690652573524037822466718179154713294451902831155054309859111196504822093419716966267455210054250270610703988973710252492947848993343039360916441447002247655673829729408057197250917784900674439859945162429399840293733934082267512271273884372046931062784831121789569690514841567412936529369108751783227745651262645091815667909101896912839575398224231649642093793064194775778665486122349316593700920864692776310581775769892106430201158883397343897068188080261208279432439173497740050049087600687696142834408734311175569368981272595730994072291232868666221324854397734939251327861693402496998762160494963075039025772167846740542446081039119987912673599245255294134919546710980546030465251214689167579682229789697695309863788886787749551522874118704290934012631294130282612381395419075273179329068274224534038616075231533268545254026385970109162281979485726372220463975507451087083907560901145828633062615951717617654591828263755181448487000371210520095427915722570492841063748254763339958048120846701319789057920073699826138728426825500088730743660233291268751020133306344158458167013865256390072690595341097851053975672600356843497299501671839648133730278504313147090311714882933379365798336139993437749197531691471928375281607701419888410560415199777652305367104689088975954583874009382541254556190791499014799098757543587963639492483853958021675941534565097931470822142193342231783563096869888078681356688579597849140644120433531819739793398146706996436677530825167742945504674696313545553524400308541928711095335575333072513001542231818170970491286510872117098073467286928319985287417495198695387166659894997993617062148552085743748705413904055757960874499243236167609345902539916951386619454509053609074954158861001205052031942646719514192721140045342604435313938454720677800589941262518618559148128953223900837826357746274414316191115547205256047241330241083256615712779126296881399166820883630406528450958520911979838811465121311475413649505420622333435366928004889435939687936831879809524061380511304605104229987073180117666813351514517261078339885472580786836657542058833164260789308909463976536749944812234493883618212644326352818371234162410813345796959308310960769935024620780076596049866655498814967307856921643223139099716648297611856349963107118391890328227385824514040207719165503038538498296368952575134811810177119932868794699376784071871419451291423649390986628717182501412700318733306503038066646319243281592659140756919983401006255060338074668358466352314166913169509188847910754293681477211088392600236593069285157271891238040545376450514159592756315330119773866134915192967926059087567923525702611412496176642405800349654564518910355531689417024183412517136503359328022968738604758160020547899423475705390075227076202119586038381827291393612504615670303136702187246602527589891355308081911250321587415903937354585941698793558059824808174936433160731198834215888181214525620560824876809107873821768557043652633448445345649098523777898594332666143443229413781834423847186666910213724221015832388296955510030412687395471143859088169877970177271327862225505946644566354396392173881647057611463823792721316421943911752951057119490571856311933332001593092371511073970464648403941490440259303430377110469807873875055066514730465966971273096764803433076746233750651939597632556588802758547699747754041192642017563532474683914427445489834302018399341431810491573060082944520252866521572518270212048903286556307412983901292060126770801186166592250079777409025931050961796724558846153886070522423154552767957583382681335154147082912841486914545800140009623946514171239992511696320514007079094454565357586549508519332972074492960016525623340346039409541177283214540259711137590871565692788104908037480051581691642774091436850794534957576006508978142574480564710102716942471000029803007424996511992787222964469540983166696246841004085582258115130378019208845669476625706070269772458021861601344835797245365947429841618618016010197175583765023714514984888837022876932600688310753991867805788543940490700318210865792255208138803499612896507469798754299942165303540904367420208269508893474685622022853582381549838276088037599345348408504274612371438216799011471269881377622176568280428583905792981280579536785054968501450559589349196903832502064935157717252524934259706260973869333660701536429571726283298831850783046920364585984674419686519403207780175369135777510420102489037288786784534537555261849914793254880843525864787400228171917439011814605429328662069533094002333816447303546202282744080607699495086422602939479094221372159256497675621001911385572825657101788868673359904929752577852698880878361701821484133956823664678325071160483400240074529255418149542423408913362679561826008043173067807494812263600449103383189251086373690738056091799215769219856324710077550115288862181831336164083734113899406747380651498829541845745203003064719778027820226565236109519836123352569408939913218902488742478025547780000146682264264789524976248968631418855256237964273709334012048984754351525500510962547864444272505049517400984232553252934820075010296336072817623070589964499157877846841169561418273735826369086874465872445841884073262332981224792512131485248301152345512753520028396774823799075979194021386008820408827472218245308154868387696728008851532979931561455474148339865573438183236715229361404431381774516294063979426437763469730861411659303753726993248443008418045748464506682362286687182439009253162094037692882384292021929387253788938425332793872315916592626813332104027943108775334202968038806736943131278389528466881984700471648750205766250212070026186300838051491704639807980167352324554010925774182076132949071510576946938124899192846441488861738447964309879557139151969104055478864551912338029699154910034195897558850724502524356908954613732040567268876046453199939930025504532551133193909696071282983426706191646795224653850563845450015104821358454989133893684152430187223902922898358711911099503198785514737458784707476315788088645541887835998143241840900658406148492593778157774183009986263881431381876908820143250131965546320957522327701019993551511068329175030844770760129920971606763278005943555412144619770794788092428651522364285849253145548223418176404896895974820974611037038186427104564279266483978913933490548975420222047274622771069237783190023361856680599203482523292516918927271160898426528691858395782824885790687582438635083980930896479470198705419352245549694496246393286098572143824118617728380046435000708640649128323020178542675845219671601181254910030410295081344447610004020768060631440488998635333056062192260786222100625916509290954142593086839819106013163917814240418426290426613528119151177002650163518482576760421305186016303622492992258343898551275565741352121000556145297040550221299649179655829694755920776120356910580216929099412184190745223180748059081481454307503835765694537275646280587817950517392147185117287233608104798823114739585512561830516151247724428939875682811814266978350465506031925505454906850153352999868586672862996021492340056620605220025860498400334364622793881483287649350057505402678645792995105796703012212167477453588454254916710572675170587350096506498702305473234009954208414714061117327722270921729467796544587306772915118745601061435390045021454263716789689143902459626482559585326272411861044112264371193056255543788398715120777882505955606614009393179554281443855765013622760887648435742987607364247138301807856674405618379640838830634760066811548121479624225546351435466991593646346970485913033381466996240894964514753878662108678790057713556039983103074216847939997067978640997989076666741849967877451169806582085023900592615514310561161690382774179616444691881700550073344759475882771883681120643198539836450717008353200787201929667709726139466250836075553401888725834595710499398437091550697561775758776905739667715489182162522488373262515946467074863119148196527746599018967983374538881170673946922661321807090368158261872722421745956621170656375302755605623456857503928706829413632647363372274657709817556526703665275855290757393412200435606481667543379545608566786779796549050950723323197319137172798496909591517114903703432398207444315334236000354084916056490425244878417568346220761197945045993227789754267606825798747213306239836414601652079195194882111017230406642301105396504015217578015828613729208509473300726241936876585364608451945927225222245375251831876001116247588559808349595027627207653753058427594248235010450115850267039637285846631318333179339283844946587635064209191703301267622971285934474936817936095146642001906710926607194165209070931457537497331660792900165082564740765466332791113902804929549676232843467214576925120494642604922913444941609728420410817075584058250488808915401593386133781044842882700965083557688800522268126333082306240848163092482579981717178495159941359929243028312249690404521861044607181285076570481713883119183331201362752328613985523119072823104602744817678960300974665018549956980979126204167006903450217630539823850173637786469159679000295077401610808467566991913489314199022303395856721352831443385643980261505526386720804547227713158978656157647934198093271088328253045498658554357835332456206804574876154471885734323418570544764112014748291412235356475102249273093540141282034518680720693816400482286662727246272518730654064470044017342853406849998068045436279648699384186874533219224129608835020989679151265103391221278276507051646895203560623776957802705032401512231702516448091442206977415044913105644596216637620939453621311438269069597098319642898332284928325425130058733659966965465356189884723036358152185344936518969868880345781154810711938797141170005508296594956379774941221579000911225257298998383744367693743039984957903209185475402011272190927256471396725532851003240350468861414792019415804150300317259117820703533535048921013983105712108167994458691806959352682705636104584240309125449607521097200897517159925498254973559121271146628264722382469378779940155660665791911448048502476266624903007574368739683113900425927973012770064399811924498717362663030307021707009783899733707228496142565778808148534081050291473734369595217708461939904047169368975217131314697014010196680211012502823779598744507094015292590361061811811474270260456234984600159196960358580686095485622614708945273736257245200893934278670354180900865308740523832971887000420897278514690194803279979992161223571235600766542984243844979417923549500498078774314001598584589635849894278937303315241117018046429200718701859344565584075132404055494683554118487320918893525554544934566361554483554070016360234316610197695453385583972547298418205409937028681292446587160481317055769053121737836783068950527353086758623691975037701392590198415351959092249886367292977676953458953755916609310563645383670781048013804129176367347302766236276993350507017372529433256241556428749136987201376644585141049250028828944296596058221303077299908304678835540951788734764714464308822168529842669229672151068593940992159538233014757430298544082366668856686719223688173836933830838373922378769080396734775292419921251575033586579406945566608912092939050871665183334825314030542726788518818633002955657747854546526366164604506311324905972102495478081365424564771408277028368371922474633037794310388916916627839332943107556974868725016456977318636838589264835153492121828142486688064001708385722864156580992084856753556451517812260571824812220568486889894438395574939318139042568474064010878565100443930198301580425730769604177671954811053100748269941896407333744278648243290680774131343522139300304171621172795523283894112483248542962553635386625234313196946381013253368946705815113723841276020460865221200109364129217809485776111964644674621280325862755653298337448087337543616799680580788413042028606249455379046866991569663804920175162345783307228388655113226571212708678767550897045140484486925364388379791099503543657287457201751125185477636678701817001978434740702822324977822820434454790708278409172924840975178256658376690929131364653038052140018100241052004891648019496403866992403249716275592710939726590008550052838458373358478191363080544918733730004471475601782708830750689838100089197910813689782850977839757212692259180700747937199114069667886455954674623907896965508154167531445078877432997268129304755855779606161020263493275652802743390430292011273485607325347427823649562580761458185813273253369493693733964202158297579277768374364146239676223643552430818652544954678059790425300882901928641747793518580944760145247399834306022496206869803024135189660054912823401889650650550870663810798688662190250862256164287050014785992534957312963774789301288781728202074182364299594193071686724004951130409135799788199956108405184987091703600294633898232617686430457570228424993840151573712818525087697858023053119963629860641678228074738815489876449756567097672380903532653826820671635447248194645597562990828076383872462850219219430568123459156762565481727025083791775295181928059629332180449530061838386608196953301858301784706369389476316610877790149492742263026095089809938044271115112992705961298335680973068917759332962483616935590597773416304354078266855966482895744795678383078856066348652451226010739842058811304018646396172822542071676100596902374826850628197533098876664119091355212043323407815180467340325163923691076585206663468148330061590168458779285926050847707200757022248235073576460141760468564444776453721719370069343914450475410148054364549936800881644088009286920436675213479335357594463438029973395092764854276985953224796616362807917599327240969235859140707827438735887442526192520826974140948800120192060600879277693360996093633177440219112281336343067097038191022272035546449751004192609694132262507754117978221101174063661717605287437683918374244453223893492980149157313761529391721027871052676343954226444895848242980874531304323230187723571262943789969497390051281772145961620776460770522006934923983624760143359315107076517676776262694133175048971453282121477525345136054980348671698848030403860207076262020106747378434768046346493389417321533414222901194288077970191901138381267240292563482600193815493653759757925294735745541415008705557092265171794883093814875097989430803884791951591548601513971290536601678304996775374790950012667102123818150292720498132660797944226185100378163697717560723294573286008720978915391644841516213741933026480533544877474776408734883207142479416445896937770420213455038039852950064921496045091608228431213999796584128220779524106891055231431493022311228763747043685398398312311078215237823014863607249498990059173810165187383052257416779476599424836801063684968918016515370047733403984336531897841369281828439019780301463757931284756542381319613053288842756329668466777067698798706787702382299712770316648078250531936603090132708431381252962887258431303501494365019748872126311860597502622938446216911275825084343238153682775638328552770267042996621455022130637387281293267103447097802184432983120168241734182771884490744639450664904193839990650938014446885339252778926185106566802135188928467080606189470173155822563297999067708156869075245118240396386061888219823464414920157715892596001443955990974456553309430208004450129161549654950378053924865107242955060057815237639902879729749979849959524111184350452659965785602012661045754365112558581890943158290466017076533342903670445429905017364007999607013655705697320962823194114850285229765476885322277124816004555542692381664579391573100591264507426567075699586929763562421130146884072944176790895429499484111447427789161224779446873284752440437358790000161509974712946591614644409221219739381023177044687162269864255608403310794063974226378891225840039628973067498058638112374989707295537672522037229885569119790374364741672879364919590839647613724187510793627554770784246891771177219543091817933083127959268157575074430201019327131607598006603714061507606154975981297304936737240808635093817861265985002688724585525988430679835518087338189980141178310911003532851528015390099742358779707396090954975745587184054843090698741982414573502943254500963378221615620763028400144200010778409926664781846673869237158051383852932751923626422138163433846596476860039199884655399109536933075821824266612683100319703458709558543813525063912112439659414881654099045989797501850477732737334461053879336078363992683072830430870829625709531209174668978812841336322143728111173919498223173407364297616607122090973864720465372817793891635906798293138311378585324217541343573600191291603919851079650430881542669991401498772759078320234960798460298112950437882539884952221389726799606910220203184149485900157710902447764689084289703970846410394536091797036456043193856814152187914074814920516470604700355294405690937506357940991110382200496278415103115522511076201135954361859777077618383855805768442452752946825998033918719021490562447198241627463586258685256712342675354969823594703665632744546485183399493356481211997574540549947790712265509542136060477553808654054008014633309545468040684213839660737788935414187342435833802486770595974758610610592731897660704633038954990967793574587951861781783624103882766406393826611298822084779179037638104586029626066615462806973126941317410728445218598008137204377055879535033876371409330140909290204001766785782398645814140750069958330896158182147237815938765009340392530558801272942382964258815920483702764416659439403520005485614007427157808750665792823353135915523653319978811817594116502431404373838416606148101553641325640511948715588788122964361205733077338337948682740137644765128577527605602369224620352720298793799492485208085381770079729863712150065770844550789391872100125150274206988723888451097354210736319049714298951927814616313021161600423250808100802345722401981840312915023449090638410839674692801400405319003621472732264427812510965905657396640752815970129971898316253204654328096291053650780359802998783499567142642718270401111854024921213553814176665633133786017343853567821168558689399103557986002338255081950815006974267605359657693478809070801512265527451502260655198226806080734567404127258711803211141555047253330103179469403862424335497392490519845148894141416296515196435324216425329947339103285360944819246175362390115941507406490246460204646524588886817300526140450353404282077814975101354658908173909954136673352770404768962335362328580822198788723591348864357939876533725944544411364161636404476334673641430510081398568022939117519551983164832784012864380843645757478676112317873407716417075051120951756146755521100426559129679961989670632234279191388458043113651011269452556334896460987676998170021853715902508556719306819973540577003887473603137165088899826133681270576044895625327296199267455794103977446457147211299284246709002173243205750329417398818124092536588193828575371114850821693328746948930143536119404392313848696864227291755496731160355676057000125194102472902019519035357608510949266287161766115748496681372647640601214634962981544068902582357318686973071966346751888741683983754178112113748019077679276700821738915140721490247177921950207804874121706027879288181854212432099681350263374805790064474248451522850615970224170396135845866631600647907455151738329640087939412111148568931045457518057527567503161858845282997292604013423339968242905789307895486978936603463093795426377570393417282076443273734535912903624925930249117616620998031644010216708764843382256060831120993251222086217054405708502011636745213976537260253580953396995548449392549193879245181924842669294418634364138644047117663805746427183307475313367765051635024799125282886876729975714246634695593062930518836747335241336765420770735007480126286018388530174135332297639566760671269768650493939055726357381893890469993306441784967280945679194252400599387085989834324268518328125753515682426329175752148655608503901593457394612593369808269741145120325647130026576344908385331440608281837106221529567327221315572106314490304682722096502691443293264861548416463719582760141278514164525184953955775626677014641817493382419191606673274304800556242284704646738549728669835201342247538858046822772349369162486904033288500828087132110869014084072440527779883128209770955149998579808806196700316201984004091554562497268218644721198742595114363812918325550144171695246135608509763063585301828753948521648632638967159531050389117979061982903800007951696989413464869215640326684557415208561622089616351872862097701549877751380345376983357666844015407000355072206527409014738522862694211517539141794104415209571849234017819258123601414339864222018775318302783591753792341263916486146988280295013707431378715547429010769832371415903178025620953657544993092719743228017023921036616087064787116659764609503202934623186697699374832297776036328988767207876030237641439335376311945176216499741622583214279129012929061951697931659021763328332748077986793108057761044299653973284590148817647106798557246775604969280744256412345793543998368265346875068531494140128570890212723124261632138030400034243417357454512419747990417979688309115300131892278456438421681952565080748882963407414597662251447652605230719142130853331446512742769102356690073389215958173811370987435433588013522321263710657676768336811276552397082783449417187515263625190055056192206564487722053413770509558337948474947853548609717817320290174902549196101083083643206975837124200706263719981331419417277953677382168090928995127423879357231159892999964066850623623727901733983129728655177798994486888731612129774977474927563671078285145963553671662730140433501176402845517374503274317632540707546575681338349783958258205421320943978914937785930114868184171613868754339867205052839029159920660082275865658916955576130423100413831125739010908341370871070213830600242143453680229519998418727952918888195862745610395250707062736434877626698306515876931074342292772350595377015626996444411905692524113718859414352584994609019524901089050864917070662285285390309142574411935840156410788443621046568555239455355954109578208617740494784779730959555808592049013459559545789030988515428025966619304566059301779441170987439959710954830362485104802510677968052702381559504159159480906424652781149005711014049894877817326702065297856701497362647251856762220574045530690139920296225746895641082684486859221034235949500498990204028517917339722027995742353572341449638027645300916178680330762964571970034926392051324202956164981153656088086766401814567219817579108275436787927122891252329951936242573278043940681015935827353263669043970446433366023269658296087270145183776664658146236775830389126654768693694693898991377521797386655633927440609624155296656364106971985048912982036551662292427930321562460023461436859157229209348574557503234638545847725036350514499814877902440504116064150055409370499543052254667580926093385903431662195364290193479882221665910730141776848584579235425406179102694975731709191709577268467363511157832700148894755655715582134437139446778008726811164499602728099368994049057773717521946501550921543039250276515132583583183478673083666005622492865270974626226798649304262519063085951700651622588324763293729897884243058134911153330368899136746963217773379495606134503637046481878696399399729528764434437752413164196705798515518907119891814187459388868806504845519284822468506457396471168296445552835361702924507082702834874688086216123244505820803148931597311192666719410866940658959115801646473420783687263007615903702703862763751234196021447610835567790989809928254771799091576608523585347448393678479249838524752657552124496819517987397108448776320782725767406173986956747875762195898979685984772103145326763759606701829357115636504538261976497116351367050247930962809705310224367934213975975186813832939381947282923045894341293521934107620814556993584977069800155081512862288037722100698409487958551517006294012210286424322219392460204989762576141277910306793660443855305520189507270166181437631634319175745384754558406470785578912392777470085469559753862634747790152496109656814467447557667361794427716682719219470377344510769256098033261797854147762499353267970631745953388449688569188145037224861593569843454802672838101267898643324163798090123835196088177317603544545788298626639123590160208496402079226351503860003931623203332034376255325269434561556939251171613706359139288542295751940108281045370478968294619404127223802084270296793093300178730752746191204529265288597284457751003260503297379768512055027309269304367139934767151896327819953683433059190528947279131218328295509817198714774887113620288921912745606863101362542982097355217959670773451644981812227994643615537432882265126397436320064993896156400490639623017883403243423355357158956993009488990756648367728354000179159908194060167706569274106350446395817265247826903874333376469978597089169081766250070020766233931684931665331092363818625233173540547563224575541721363727631658923040819213668621135867355153157197467308661319093308151209831221951125974463447791238297120468289206164467890136787519929752187903788979604299768594736476219670119002967339090867358490194332243853932480138209899238025668218676000717690388760224729915206751546885964042898078243734582675747893873426139490347714703232196541844069018509488473982088357583395849866593806302356081685384156724369494534940107822486419654997719752938265690435868330021368607884349849791968385391317062680936054271171688785670377492822237292441212836694837860167107038318480958887482992660734540233099625877813491973719267531322577345799889814470441552215371130546567880140607702592088676594385526962986898588420480773179105005780357309546304313983127843300390734451718574563937016962706765120403505582761738696859350431344301189949974229828053238406135947034011017523658210229703118693455415816338886901976703736853043203057526762664383865536480719180898461386812980245180122539220834574913252015629877225444001676917995376395978641537295542936047316829427364972006923677938173269318556282768393661963453742173725888901393278864920082065150110126519367085130903966177937308655998925321446214416231943332453129568100297420380120323084926288844544545128499179665857160762804701167942635329171964689152552703937784217546683886534417820442003315956755955635753996345937534976027702927566643773274615319375172969227615479881289389818893339020299882550691801414386730506585930010637718425441584134149409244840307442635958826187783817980360252990681057661139520560222150470716598143967418236381064805370371099699556242354307556297744862661265544264637469607521532109530524209915908307581523242567104939845522482308455766645793173296945634301507619761398115039549072893656873855249819016907437210757615523667588559473914435288183612303964776589084222824822468400378128155246798662012482136286896454779451722704168626638372853516710611920476111872790024200423829131678918543900226556976668301771263778507710150972340832293852435232387201358711680280037123692291354122741675310678323936956672195445671985426555199898100481569270038150149609268236814760745035351349476065966448310257546299993616242653197314526323663080036844361580231031145603078607795306247468108297331452308575247398638861980780392481563538311672649651677774727220447006243116324724074579430311881223230753843020698967991481999898394580822092499689889699019287094728095914762804886642945604328472031822506394726096908361005577338672593324443188661287316724218298566292470754295255758071959920878776547300936762811868658919464166056989810963464110274926637386424444573783487604983957373568548336358401024872659859429592520541013121580689476346264785964995506071257771977857090325852480986540913899360878099911380038972255732236280699591927460135389846647289168933123196504861055709535640778534972084573485611532209365508696558102649324540332844838638917910935882548489685755450493775215327346429758900357973994163785280678074026463491302800737084213951370036062398104022397816597707740800514591781267910735733957936929555327541739075688655082665079979356591805121537013965669067294833477496215653109367870120668040864645809416606196528645993982092505879211692460378396248240688055950628564037574154318735312356979089658475558441880116128325193855529981301035764414803750603750602810117373951316051252434520523312911764574046702163491172904939663175549062990424119690391491224598368685403213124617229892266981644814450598863824684624848957937408594579930278141865577025445802049245793320841171207755984525448537753988132438449677625241426093374643535206665033844855188124793011327612878073566842077247581153098526307405780780424313114312768490958877467640677468668194524600678987826228498095324534534638213358091135949449571093813569302598487314679732356337476986620496233961980261552766930049974779233037293345439767378219859305047870361790237347329106955053808244911360976269368738778534279617589093729307021922480625067212168763173075197852687702353975810064472818552452252736867449631822990652512504471117085189146550905227134534930701887226372081855219689744559894901211434046316047002307497796922303806704824540670445093386610064025023165242878556526188288156021017469875356771792580799248131448024111293051319734234089183158171122071617879039352474145701439786693976904919203220115953762229697914298312913636461586894810337001867134547056716578637418644141396469811795942328752156649359920196989929716310195694376701736172791300340812622837242188861326733588688630513583298194274601847409282782904462352556560845152135197545152967925574414790477101496083315267320367077854984849777884482001235976349809361789201905699276500859832806190365493305502827025454075154751927119686619360507587433051207583374679073235038381669372475984094914378272912385079989035288030238411261311542714186445421012409381554704246520975030906136893551663699658691013000184465024301070294571826671945657081974360189245185034878267866205173862784714399024308459589868840734884201021876607808547031751320231932481490006537285284823747178634658524924988371035803355276496328544380954668975149225096768714273014210345850122911453137820393505623815165673114739035116702487492253014401134556873107200385021870389146695394724646668303020177206564194103343493856675183187714244977666393725220966862147715764222937943706158844788044600184314694063720621271108899524774934057916424054614055357829211289628416794232502022482805496968428396141214126233926426067989419200961430385248343311734605730283734848125914523650656394739752379413723958852252557891921065497797002463738138722402101645490614973809181343840198817189863364394156258466295765175049841136078184152965317060968101302464060671675386936729862963409633031528284468987301815507071099601208878588590136311105769170148954503719671439029083024540012944522248747679316500767350369414190504616586851997942843082120400277812904065522762784330398912477384216528655471194018744160938467188867571409736335024188049044085413169695816618713424980550119135305945791478164078644235190960704414323814086110749800447337112875397710269224869252741326038678051272101376022184600694281823213212999518415879868980723860970599321220704331394582526148904969400382908885024362593805637071906617897958885976199246730476683068321390436326517661839790852192052599302666176239449372677939209272709608241107196822136068340265961729497909540459007499361556726406267216464986699473613550691167702073090490266523507158710249520236890552888697892512863230729757589068219224747803470704710657807499262863288032648141229561738934007966415387017698577726113601148437114664695905101049995032380889057183351883920845957952590344213195463792753855751958333434163918525641047875712443987339946301600533999767981185790562244252095461867313370598583687645609210112148755879435488855373918189637510382130071807042457629236056435525259704702597773223103355845066266423696136403886539699282038165575145704720856998943036056662913569937284676988459497149050850697544514823229839329978672358687849722954950077122256275090350911483221127620995210311508337966882726309261818817402406957458386251388963560196397784635807442923002739365360928776776151866158878125062412463860581084980414929229189446883887955109058529328658001483188400528563817941432870919894476775488502412622242166128182782791737055404529427611770844994099968391052787476383509932977219888427505894914552537156606006273996456711493746572294068022658762851157812374338379191573176962775660829011486687846025054609357726504589199360146175429485933194361037836529143850420444176451917502237846803191641659580439016783426817714937113993684999051180490408147566351069161611300911829562433220124410808148344934228941120991975449754419148239580731457557648601169885437101668426622614630343403181062146953242034261653297989827486026887550120482207596705969833122932113126273448600243832523498688496030732562965758618094842712683676153107465372803498491755410392564671707255914189928149911226594791189366697320434802747064204200573165797653248061326599924945080927415292471125903391631743126760733718291534544241875920545182469544126030642251997606431923701779201713842336571750903652565479458572778274274629122381272707936165030668870261423400860324017558372812580785596319715402207784747441359297465617216117308733734060848548890807017757810143099844138396775387261949699627846405565012345509953618629892167999161970762244560997226599391224518699951695555101651311887559469510709073105943647449272443503451962397743075487307339983671976580669770387992210088495256759097986315526096899288347903965691098327320140002914802842088711575060386323058546980112509241394603589497470553877604536106590832824646983516628490491500814256294126243987245923739591155604815740997916760125397842530050554314971161621472661618952221961994463182597126534602627777494093266778050129537943901465201338524924938506435680555764491879779662942585270667066840781420715635418771778246737871311384874361974875544452489342949809054199849819567694319566876659782919143080266115538989126771723543766367414843086231705779381088690162626817605428799754732876139480792693088085527815934055446133170122758966207450168627312611216172910902575919303834887613656766220547106242011108977187610580470352335955767190361861556086059761389948990762356278417670869305669436963709857940219457974040957471733779054939449009544656336501896702738370454970766476564562484725572652122648475575570445478069797235510112250002784269308672288613601842098554742660938013147535252468554144510915913846119529553738126250190451916129548918587731435160558871432077813876771781929288310089445216641096272749261075465822365230012051492751997208675419863804556305024616933592702387318189091735522957726174963042013345137521275252288973309263045575435729095468215316292804878816156818092880117729239877836038886905051398081575713751730017679790991273121234083303439397161915874844723438278061791763470233726245584899002065674710657404663371620757419892105509564201798306580080627644778743050982195277113878692567893126737735347191920804614798382488396810780661672224820999435263555033562244311733238683639632001478951011717679211065916987911748403195056615716941323434615883232501636745568497923801646397955644265002149791612162425418128898996282243870151725371058037841919377141900827812341711843753132310575089429419320233560956843867869327589518230078226622939995075046021025730876581888732349045424692383914266919000722087286753349621732576947673422345324949663605592029167231293321074881190101081710535621266298371923874387691130207860573753114707224429692258135725289362875724063312388388324160543005972046614263466554560758387354871853349583284528133795778913799643288892706411899993200416374137703966383404498624918564871982040630257619042571290831039367819074224930658968381477070472961244035208188657879089037483054463896936237456659441526480193386292482294350995152393727894776974043562716853457937724869648376494719290252888659150660305739463833748077154685409868667584913687112479392665266756425557181760144648805374272098847905734262121199929932921778751286330132462477788686947573581360777200156986242199746532228983167839004483293347323343321498849598229741708303488020480997202816939032656360420054342452484390623393310728086996878437833290561985613970692726857709773040816377221958082339244289700386104330628326557960222456688118525254907985306441282313623507491877932817092097266797799097511161249082159844360120307332881191068472677718016551317856041286135063556670577163956692960978922771533010243124193287458365646879057942154324806589893757310118570114668572170104410387257291643736531323973463984434292753099843127721116345893041646003115053954739511173998035538501887341280117657010897771114807202746652131524480297984829016473758745433326206564194606131421937687661018809378781430590491222158039689917623194104506302187444214393490298242230041061922292125225863231943692528372552505396293803501666771686787626974388758797613652133585211406635604365249982287756796279283248000846275355448354768484027215264618161310585864851587117925872555357473314365225068595748199260721001279479246918480066344287831062803166211730610068423991940760429227331338031971760709153968345292648700098234167807813718512130141416881176412348722241314406013324940541366138992698189383768983146380696110807317944043090706196907889914716316580184173662163192811882593031686234812436429591366080011145021837588333765838911139323491845531867577610081762239962839178067936549022665593717027357010703008624196345566293224079062223713550090301682008628729611203970130248328131693640081489399721768676692194427740921929455223087186400227491583612960333785895785780026733978199827864828491316943263723046194359722653323680193626248141885062860002134635080188984200772913600034986618474176502179388173546182472131958423181726602561215996137981758673702810282261290471383732161017938282369235437612517070487799138724158060908695661545701827748585589049670721468096083831645378270958596310174338495140853405863133228031122294601611580530924057086495593941014733790200615565553082782442466674780267387342116549931423192573854274603931151084575573175063796072511388513490381772802710735492265642926760459887605877685939927927163179566042868814988356904991741565138575064913310730203927974784112355793502571122651201675857938005927811083844280439572753064924325975590839851857982059817341575854170442723816985862240697455339230252123716208669150026848624939249491999113053870292141287886299930051525104739158946048175173514282256580193854833842232009772425569196798238741604842965220600960449952142529509027476303899174827638975894956645919656063272325011952322473483173359199772693365436568075575843143313270420032521266086159215296381984824771969846668147285274052334081748865056044936236461192272333762070683148103663609283989239124626706714488624044051746009467254145571629093402739580880380769200012778274363344686233649057968599223918502892070921196835655678994096661391287765451613583688021275214002056932496933942407897592134681312683376784509368760913417366443887871322037964379317732436253842795746325119085193530803555580079975694771785981238039485315455058050688017355983425391552894799312938532030989820126769960631087437073553880326538466473916447622055087063538103627252725165698765067616787674786328148646496732839165031861011995628676525615816829497899866130244451313121730024641065529788229246335905346148642740729605857682775483420442659013030856632661130548102571931677738170859039131795937931839667719566997658636559794762981015449904107727539498727720803984118221042459218314475752746536893754457245253532568957397114358661536513156896027120578273172058514013923584305213958289106826632122059257265560636521871013364308294688573785249435843258253041504648979715616135782211716373037263535151488104546403148679047760624902831258353497378021547780418577442076791971663534848887772566267432783692011870789629905271018892663509809508357244019797750480485246677399557444014603172477790171990463706083939616144688715588816290581233566580068981765758523175812532464045841305669104728293554347348016407318082701666388516063930271534767219064803862430519762505417657441988124394262722061691235995771571464888691382978711012359665362878253364793246043780911623610535848928180502603603572150886825219541865387675377345382935007895993787687180667150537322928077882394995902925344032731077912470574432003712101773077079612837358757890375746488207035079963460429796720160966174531168142905553299231948789056965808751056467922013231913421573449272998594642787975321062629269457844380132749241900110930428034612072407052122824716411593607362257112231036180523531543894905796026337955629165752410272968372425603377701983709679002607871050159004187699205068116032983262914538435548221282716306508747527959961845412597196155976707003634687567969560288249370206483481025909941169997864221775882001774158477471044356326384508443432821110154899017807544540493856502863093115532551272077789351265615229287993416082375169425706462225963342099776048511020573377832548158565105411951534859193832711502801362036811945047766061153441566969785653084075404061621304485388274291500732940539039912078953461132029328641660353549525130232103033887414026970481276196932263855343955469263214203997761276504742182806889259894823692371821467539006902849283491044674136793161708010342145344343424357603219111416412216950727371235592919497486870872763766437159319723116927807074704813692719066015509903561313215540535896918270562568571941740348623008774771352095506814143045592738425507491568739661651679915714150293921286561578046975774902663228098149822855881266507803089442851048062434509037232426725419461660009495587863519146721307521429741858744809714821547369351551371408851106565042674687760786580546316627201753649539148660193149440718938087093641011622869859089872255296484500053268438086716891671159175648453518263876267649383825804703810447499762519391318239476940209286208176217699332132677206269124612394548711647475028073126110565422241976270055584908134711671902003063721933525295637616457964838387102235576365213050915034434265813040472588242300886068695839609030872802502525746810296151589489375296797609311607492610411927529179273441934252505434913706262568302674913035582212811550553623296208729008613340958574816475207168908545211484609461414477578684011059301492511957443079057213270776452319678219431446450119482247087116044647335298538887358331648910874195308289464484410405816227055222695332173508035955923871715185619909155154288953644962166231562811122062409790866611550980325871606255554899884663672165576283515777035918279280254257542629786762728166169733052019636487744506841266181577881208749805823920165611261678457818367629883321285658267589194835493492921638099658107915717023122866864521823299103599890397597223004605755675665716842194730659646147087308214002492469002159083192164841693118458451923864337130023618425733441134487673299060483387083493337422325084871582289289949782883219653982654432280081673283367661603238382818500791676745944757255625643777718544629271491082734435907039828256784604569075383224815258438157217664009668677643708748854628438909640396096478609591089099344465677906607021134719501477598777060558443897103117251491009399168432381048603645288227110849938153957971438138416336822361091629509479394104527460705409733601339293376869295778869128676481509655959801091879242607465301616573182321330184608044967042968616435250008402763204804565770316535536758238859888148996852115085363904901316925628480466089815705610407917065249678842357632312590164343057317154105782655785730854217647577054822922135568401532557347863545932909765496673526524488017585152790737409573510833090044857717171906897574022788983962745846342502921919453536958330085922334627065914701260349510612790480816976353328544199197990576466474127161854009955226895829964039501050222118238596543123955957088790660738930209169666237505386654735107597762022077370281288411014719766203963974958266613292444944050903336997870274134461793404634828293995255440939002267399481125314634399945562616530073619631388120300849177086154290560366119323736307679769136722179877538045607585808540976853439833443510265712823824300137351040676674767848244546654055384312464789060183007840918639558760641229443005482221145448380840815061452133286737459887903275209274491480966651409212297272321679410026240479794236657175698645285054466610657373337698796419041456826686144267419806117414973355640263723615367342830625424249801129144128827102019724562297286087779642077768605632289022834580887999456910680659965271336070393958460359511795675469193102045175557506528294919175336840784727228039311051964429462144445612999543418953134443964007589183826522622643040924901440155059568451943624309406420361373941989099853639246751302332124557072530987503392732306900149286830156819778330518914318857245305108721893162760634610344301699398083340746723762981648226264552212555459817768319940300405098436503700652486378788416501302697781134189742181811335438821301316261076720538010524771976663298210129205251441177690407729401082153244025142449627457822417796439952478815368759434319893927246661912806696436521852779805844281165954110342006727165181189344860173371477129880976374423517149971183518884001877759335395542623471316514519524431978119203900135599770687377875048510335003295896685809145686944866199126439003431973534646603833183858454368254733543764196762637115470019710201811812308673969065807302496500437273704583367097353227446081873846863967078625309965968171243379884882957187993322793030349603339336709437082192839106147507133829522124509084115565339569068700346888371265185674783875079625999665817582359212886032476432268036268544368138507942727764721590261058217783561733180315267048253819854034502781485192086591379261376756523415639034856229462661844966582929822290091187637962692712150128068706422184808949901992587869981665778167112750374696402302023160140252245852860563379073344555570214575788420130189187336051718385411699334052418289402535791066392212855272164535807612276132265562817184714565003125782918635509471107967980426351622872071466803614665678001518288807229921131828211959224913916928128177301794335105760605780493789528502139458803826381901531124477779341997964267021570969905092522631456732510062150913987876258222438692682252277125741902340634388275193901469654942491433845894569167374792855304846425931121210202794265418640765651570497290404748612578378596808719548610401175822424518885568080814269993744426866021682361184200653689282866827823266504308101958248082230619444287547306281317023787123106668107895915916537516723718541085237510074028216967459234271764665261741647667847994399771431633738210349401862175107435639123773633707377782699491746193434331410459663549082460298241175138543314805501359817601837122296026839726782167410293378919648190261541926871759617109522172732820353728479004094754841872377431116795189816498368264596113461637138767441956763694324067236220196191625898185950121696561766043867410784842292255268006203704969691744927394853180172764330208762388420483152683851815057081184823165046991737394683380424568793106023488412382754788548860200646212294476726735464389398195191263009944848715110073664309452397313960689974676324845372819016613759766408003992413357951328035684324000542549388503955516820326613256158193897171952963868491313630976439436156794009906085755332974882173829413148926492230613943642724459444912080179567005582973805467582110577132901487351254937456525743512518830265824502172776941883532581387049331676455345060524150176535863776110650235279345116319926447042061221369390675710196561147447499879925083074504314547029342620958600030854604533226183352357363141518103394090944905540731897438854725710446184772869075656387378228001108760525945224361902539962023500543490340222127445128111738152806491620896756920687058584555184595631493909331971161131565973792873722522838371988217068455224571487867893488662584862467360819721588361016873688917696739352060546727804355804348580080969483614852620449128916508947210654783590379311507330070096593272979708596198175351975359703855469970713579979970302172096049204898420973158768622374517232651289335912859607393103494922624709789542812921436737289854607794232235969273976942883241883539762767440520937182965211488673196788059038008175947960004472994724383185461790414037353456148850275732476409120739989966046986309452640471891429528351334478660505899304245390651624577202994005332287715801085929765625739567322688988624694644365949133812430172848349922568870367573737387360178762049432098463975615133053894515118062310932360534908733473321281122488824826216744331356786308004100531540020101617042668954282342095061955551957337404855419038312805351698778242376863790562529781904166634793192436694358750646314017025234567769498012274255131139662077907954143019844657421592026448076125191788506164491264502948844851470626319088942318138048624307676704353149661772509236888188064274703049104063093099801450058495145243510950778583787216435422680241216433647127035765930598170215100788252436063026599022711777985601734006334949354480166048417098966500672499327006497569435825848181888555179440574143309747353590958405496127266338650297585505844708084999837087567114958136528909667859951088291788086502494455594885239676329732034646719379049314836271254176887799250900958629509792132705028491251080549814348067517286039935346763766217475654151698264790767848602865650763581369813832498175258218609989434230092317314525287106057632202610472128417664188584032322289648867641250544443734285463114107124424082896331013045503407959339588314936040784745487698353783807414012918141577268633737436799464034191355746548999499711935324291644154468325770729646455436060753606831866983987971997736494908192007127559985258569158982159274981686422066513637674541299509906967160193496310580030717887320230353429227222866031412670050276410156492233402847871591572831238265618653751148249675423850487638913063643496370301700201759897458041639654333354336971208931935164220540510416441664319164050915805317223622898587619407214523534648700919572288161316179722981738915873784765377640909717663672408381338173474988178008116187420644087311927279355149944950912228243551266654457094550265012821554424362628892136513027975417247659182510362674061264692929502440989881588322645507303439265608426944521630521971380916347401232195205632350201431192813957757959626032416895074056840013024303896041569515258301906256930480118540001299078296297659952320744271294897405001810277948118359996921858421250854026044515457529144106076116352506563253662044858629265942331816449460475583528770905518031046014569251054661226551573246672741529745649411734324860361925134196046940909739033220419353494109078929403504274382457887791649084885816771318970700610225980086984066914737893436458290641768044389943443474046935719661932349049276712305628612477917389230202434271582945055155011787778749479441213044837722975359602902530289157216045865615206172093049947818258708905762769388469756807990257470618160501149480899148969385123750389332331498379645855730819813344756147198813805930130117593874771471568879046339315880521041271354732943992721991412785742569691600403435510309574283744655584144990996274970375345406297575466149951457970867147165968453504882956652355862377678222572475603914113122585942897690863101353893374609250229566879921010371824772096490916093140730047546412557563244886113559570409093391238468509552016054523582049945141155115919666126469683024736015063857150220571955413419230553761299257710169445865434195430668422123755214641651759189233302568476821317698282251128336297536550639315405008331860141149752114313741964690767965194752216605912367527932425843058635511337210601301015549081827455987171476801410836027158441446406085050996740054915881328243968519926098988334084366345484898245200358273794361569651312789052752164657326683931719723528568442068186504701784184890264135402223117879974317791450240357757954779170728936609367651575098558052676137493102360040466339547798268695354733759788064198311294621684860464644103100025725254765757913608841561739167486184224737941920181797556032709469246462726584156383891331014385889164978659225620118936099114413241325950126627269745075056777885631009231273601550465058080120547033035188680591766458525417675834276020720413567883538383037427773261180705836447409123085390409562333888838410797474177782135520840114696267016781679697087976053634804733125966563189471375042745107501811419327645489359170528703919532282507464941914032881944306931589686148087368268496067816592156923912819660753385064188257720225405744691391457713274551307399516881468593997275901555191379951067407258082961100818616884205385504127797144737868843471510892887365962124631379359725198551005758609504616254334356524525991042012752373209739694754205835834726575954296287760934955981798643298053973174758278383659913249241888117183421192798380985201270423622846212110667908220001373882854811334639332938874027557017275884025487158897636072074990806145063201857103698489692495073936756570649227106038580234404573526323053546111452337490131038622269822377981048117001518427821240897323006131031507161172474495797466930031115692803408508234260585323971444750605994512466306467008200485863173225939204047175455584822208944309294986167143319813230680250097076104649538272873163083332342579812577075612708725815618711131204807521592400282512194985601510781437615754424781364420243689518504909376621281786422271084047386056999324138919386089372632341182429350561377640147088267459805070490251406212266077276257613848423274878552684807041112287422852031852145653037538559320731753891228284326117966927608920106086443056980018906413459003316700803708001965134821723147452478873503943799485475021429751278351548934978846595592564211044690580480847972908689998199559909961382050181396447385134964290709307365291459460305773922165308237584984677666156695008106888329268952121850221278340283961534057285655057069491744974253590725657798612679539086700398702895482324395365868341086826971887845520764693890010521311018336728562347501368308691034175975406381596997078388413698704800906487139657936029014007508042875776806367885121478848767289052382550582163011324162961917318858796138426742650430359771753762988931814658196951428753872472752992004173766825380840373979966610875719107347902478101371417454922756461571157130298219829409185239046783469413707997254438230464813199180933352737734704874401100896467996884243522053546536280279660985105266553247551844468370000415417721141563491691815949859271379444473498025995778069254998944090410081458493366231345665043752330022770628426720339804809110304928271424273201681388498974660251546378707328880939009277194481995160522673764232571403617906422502661489250509980672284707640839614464766088977904645037995040728074457369068013723013119244777054023562675814612190089391678043184420498969909225385906915340346255181908152732240639699125332361064918919292452655809096749807794261056993093258622203864511866834875087152888317438921066399277339202154310835844013645976459886723237806846914384777177827334193304834560458152631309830965509357624410187162007343603788457453919881276824507644597834921096479335795626873902523940499422360925512779144670840372800921908939972193440714919125476305782579742924202396662152755515681236109680377739745215130566627847239867962394713381165749478094681275882140482309094331022575337266368026150081715327363518399023707351715662411090861753985520970033020797494131603909286885191150469013207922161475189791346303607049494132970454163166000591026558684631925507812999307921553452869917661759194976272389630238039157238392731487836265650346927577704861104324788527264600080503383372347086018709349256727325918912658355984741111329485117954662813969186148219998263346783235306464694462717703360516452211116491284408248050375963715081188288788026140340047143642313226323401622570148453617880996404326145288659539501503154355728655702879230920705955252578789293917670491207517653425285595103560529528378846938557926547759951088349106214568651750006035196954677450667503438986001141541696622897246307470321562901608861175045022245876642186112611512200404178325176076692481690078059766244963515531584431435532571545273230053096137257687048596541427035877474984012178101262201348439845986887525500590096840777308395299408876434315547689307200644218343292477219611763458164242927620142978606745306611523044743240250486997179183177869618588222459649843988597136596173870187027380764905552641704463477864812964616995487223482566765197387766638592438359454879951218678534959125240977699875033771474395532715338488934397944653327348214093655840746699424914093821056355018835555089818826073930488961261774703324407600670593604895229503725281305487434081785625311780567854906494667609222851044124355465516650105234421743185718657918911089358643847836902724219544096892338170549751045896112369365341511923117413770974522343768316153832392044038501525717003478794254838432725786722849968934150073193541677164786371524369205963741154794341959283099568921174752148251688542887419018194482198746065516196260040134281676058573950058671918883374311902527223891288330828021423191464871294497501005708023147048031306225054108426012577012363996195853869135110509140663338689079475889475276236135855284071146423378283527819535344248351487234354318908487373567327201680422261374876421098066870830478267269638259966931547148704398435060689038358656943936422574752513050354425158794753095757352571900089452172812851467139671500045610944012884651656792288579655346457371440764838148992604919907868148285111690273782520035903364793789378899288966742026927167675171896025480447503410276001754820353271472064805977293683929268291383376361492848909011194470373501764301746128563218101867672061627519098323384560329531177807944399731893460972602101001664442893286316734157350019590125040084872015769044523062600499098676168004685012978590698237535180903354365587289345171866425590534227480099091959745394737132258506288175969960592063419431319204039254793928155449080197769139739359158527356496678313589171395885061196736712694195582922836575084303737721693590671301003261141360609973118689873071103744859434965767835643781277185381142551110244996437634947028388427179534431183129191342507975345242372388406006270334166004948628382527615574634923875926506388296300685468818460635868994340677748882593543668868771154798083312070420760623934426318319446464414657913115922147969276943517665479743629517933716349721846294394199992883619298788783067581931103794713015739478187602723979084227420083124687273197215599750869018794339466300976640140210889785080566639769554666324459470030279554960517457821000288335089597412236540863291471651748878399139077199922454735869941725172020272952328778997735946132902235736146140806652603796723074265028905924646964815156070132851175212338337998090490346044678879599778858135725018205634425189175340943583464294396936328894634191549281966435001895575425854225865518230813074581410523283462252556961275352457461914170708772982024801780594665986137525220837925041149869349755615192223050646524696614125655473133973817254126825057515952024990767595549478869477522113555631605512427251528667799760976201188335732025568931036099264091752814873508602993023481443102257386501582239603783991789223534685887866213131979868206363577338849892074230039827299787586520527325256858254213153126055217487321948439182880136982247923381184786234140119403177440309194401575508312598080080244772355446797033912550600130970650523996642351494012528128499484330939101338318252092924864711054564621612102327259766995965321892915561513283669410436782200431076083714164513780461927295168047185674896617622687118178316000941234852447806755296248138767790169949018202214353915865042830125770471390895068750626694773836191175615136402721795023677272266540332582661677925451118019684848888068459407548897924147193913726335072107422882720247735356623693273694170369990004149275822630518127253651661403392123407579780677719052007678198029460048971255611178001940534371886552975899883187812737439679992838886231171375659564349527517434308746676864183510616538363796513135662544978092118265350791525030764258467350708898671506612262492968416491910167616461333216515755771533026887927813860709586663331398770399661028568962716714497176935809847828787720335694228563741922413583364732907755023237602255183340983086768482954817076633053350476689463682748821740109876129509739204099485291467554968906358743064355092516167083740713444404499131485959607185136766168464600132398641973939226366193680307724696954662833246191694207093176896844153685846426087458134378953548054523996431770046358418157926969744927261879438759335929149230438490653179668913083463063551539690199341952994204676776865449876767723136309770030261950648752818760096328474244564797606505399837151057232505576519422825903720959995401238198167924482560313708710699554504907542635627390638676458271485490929494419865848315035996570664254991480547679945791903245369698371447810339527848138424937266891916731534146332055037564251028478232689924237437639837981588830872788789626754243396621832802453567371404346568150295756120927077188001858598260452039486801659380808267578557980456924139120347149183695438015116727832992721853313140954634399485245992395624826717288527634059734033222407712040125821002170199070691714346679502943603106239967599741027613222997113920918393028809356520557902440803562328641726036979412555607986608336443886732736088386345298299090833982535848825162854386566887164356007454485995427168474051079778432923707227658855338113757324771201489548338616870963845968744219438850781634995845148060341149420414287842237586409324143806271181479716082428840892481639008413215408387983154722346448444085523430402185319524908319360227671612865413467220386621647901889055348124133143568983049691374104009688533743966742265183258060546312345328195903379668223650757327993605690534210022797722841381635078241419298050018518707627051337036201484298423556901796924706746204415932791899971836569226139821275652191846948240535456895230605177793065443901506609714951780225021362209714879931991573920897500195736692375453944260318972554577585045002341837937061283213520474943010201363635053787322020518844185907248750819735169168352769342222738710141145651498737611859490943173647746301956933112450829918465668595928745645378573720476315470150612674053113591264637497750288005938791247799464881340615010858736805733077400751327676416800821617856926373677081228509659134658520502854957748214553785703665249936531067577428014295338607488111624661045245462348755193930462043639889829291560755462361068137955284092433510517077396817005525347040852812658999568786649206494192215817489614554583342860995652251362473914557269762528632473033120113213194053495595435437327381749080197189835595696284985161169645457677362130238136675739292862768227373649662715347495444088920322260402092831470307350078008821687442501525497291112016541891948198031561185731598564041650991037526080838759832025496941206040171460281473460527698779660892841024513677027411866777177770188896561991705312136843828429858230968778781212154325570895507673375484197745235568381844836566616585363765196744707713891950964462951962319657040531150150939246988316607514216299721172028401676667453268708749352394065985841716405698202053104513792824604730799990884415642703558110507105569931035419089993333718526163050304016791428336700783188249910222999294152263453938020052426608323377148588001577079211187010153129137075934444881388249215287607472180029338187922168129668420581937673493537888525509974859400633360561730964221303652585289651938406073739178759013643354984457450954247195205544887606071963286729586026000899070006962339611368165415854248910124818174683685021962746721956967069044168063531630497090955033277476313795907145484537800171243277045792024663176598891502291483564939251647127638610563307910688351800453931301604927544670852758019795119150877731028380652322312961935062385949308523287159191218726474667661195905549874892739660516800422877716474928689413767541543884318955755649124981377023381215205958638322302850280310506408081145115868580921959428867847078853924908178821225290070688192272066598319277052574599356212388091105605538764204221362196856904836358169684596783448379922836661941680610104132205615377430077469239096055486921200827455944670294869877961363170774013536456747876411154759604975245542279130315418176639282518427289922240839493077174381734351212932519687905527071511005425913435860442549488108490583776615304232341356609938132752809187703943775280401726300773437960721626766147229651213180102997346309201091605309822831761963012198533749553042174918468940025273890845476598113402491366996145650100451112566318469982801111374089277189498231397660074345188205287476713605765699717556602789183884277062024796748311282806139752085120074847681192152852577188743163118111427912597530146029133262665257739139367157720961059443506086368356846260393866096402654181699002927619344617827824406726904127993474730830845958172087044084281664116916908747406300878490794519406675840397651991405621269080796281897964640295008272196667619111392044452426169143949909081119150267070080521525650027588219587963245819466091662149122002624319461695253142980076432799946237239580649486223478238205989361797458133845157830118694613706325267219746969654871200975382165123041601608730736137983763867527298940135473236706194905154492173748292505999816392679130863799120445293025600554607686059248813840109134546431099401755980561085120234195045334018840460670155200894357548203974730034197503431587034260673175496228554649568327754691673360960438917541668862665423053916221957827368360234697526961669678091753255056933164043784015641685076240390301654745393809890500937265942497969107263545535252350989937119959310018485576805068892115064578169855909428511128591848575493912177311423978512268362986896218742765252645311981015339313109196968887660895337832092165420892601250013752206119928607698763822192026377760312033436290083474531580129968972075342576369883744630482048082101520489648755855180733447052600460483404462811970863758566523279546447053624611213649298224925123672991203542428634567914986022189626512411759442787128139019666803876689976766980935842977524961826735160529464452257897179236243769688428504556585384576442993140827065841095706602597362628429008017422619572257979813717431130567812589241376869181007077785183826072633037972931621234828749379460267773108284019996951926821776713069534669177784665012421433354692664863573937562946241091900718450176407675508071007447613083745257991364327530201368357283571879279978217523127500994421338253532794057922401217968896176761543989433017828035199244720364288059040890967703606630032389407233113461752834685355302307714794589305294279642266750209155859555215480211066224496787316025351949937166065137960602613325276730325728063438732835463283609996600661725184713283016399415397268464294044283043642047826277253451110784880673112671314309118060959123031548803899078309974151593942360357184961751787985179518895398714806028377442080985196846100784626875541553933360881970121125347139236253188478122462712012366620943376284075947516349428264222357787132759534881066575522590372357254977372548512366572054489572751808808813426640284502567094825772188708014763248841101338017973622436595057731609597809214850013803238952160172193846435713431759479835726395788077849987911329229706752553495746270281822161678626457229893399425332572797047541636327839840511540522697194137932197596461843483406609113335706848860918048337062414479139213173034200027420096756840965133590353770395676166566992088394687010328650651628425941723724228689971483762119748617418806109794576361537588693290671947304700881729042654413455426905477718351192873383142726859235809736766980957195881082687830062858035165145746953085237804328094210579006584951882901370058780918915525283050979835784690057374217936527735203014514409624728095332127020829465087809865249152572145618906352971003063395266284373326993746485660578799279374265329038609969599087029981865817476552475611086513176819458291632465386230774340428337140021456062524459387653462460909177221483226363328539302230881108385365839413713265995518143057603854583737555165975356345092119173771038169669599966580679323913387470785130456205300795639652030760508263798749820686773801160514464893878454971165111328111707641555552815949439464599028032084006531954730436424069324426510165700722904175957265135419367779606741005705956820890759518427327009391587005008237677797951239575347946438290083332348182479205482595457747867040033406877375707041763904397583362388248647266778326285636914782807449930612648701168080078287976743441512343593398002115492277712524590876708966147955743414480278666738881555612607942524569489837653387115809400217176026222890839916504642893196105884771248946273383890110638503755218159502114026056445020908693579891846496592971416337052664916751921245932277557746594682630157492950278564575013832566166551205987011857815848725655825663744329273808118020167565148587828104922350407606991632016762891028030387509693950489502581461662702009009072022126345339746173273811872916861301066529406621851557006937042543324075766327069248526226330387084389387954568065559733041902660066966368012976422209177298289772859197121340155811649055430569433726541186015634473686991900979884931925376463570157864195474939339611630881410762414284915570118925480631018789172879961790460536564672927159736879991750723905563100969181347329326259607707384686177799894566603523526517294305166402614725448343766786829326262766458238686465930084035443401474442651691937796700624931626910283433089878203988555452367932059765297098097121910805519170414948252705831669863303888551207207392489238087516348367884969487809475746494745639432331166752952276147331550634929645055904841418571555004478640855336860226734316592748396924617849656115446372052646599300420712017763684527030566271598329538590754922052801302011969294449542821758087618723107332331714607123099843750259205307394983823268237651452323258047074205755039785479968133396291334587336360018902923248279516759535672394096389961012351708821282098106687484043844592293935558866977050670690662344645432664710765088950129437513023943073664835065034809497595303330579466092979469421416054512621971148462295997214909501892524025226334143106133363913278811268012194049120422727883755313006968934550518579127666923527069452027675787153553175766502012416288093043288233340979714747416981017158821098805497141158303634855799655551329693180718865558233713645269179519009991427780476041788657947734919441434498681445799780008931889089951271630960685022360387726585624170657826806657246086578372876747194342169407347486449855356122524418730254077494653740721346742407474631355746245431048204077313631459971115910879252259577525362468180586636144635008857462004958738171107498119297813636309015814445501561803516124451645279456057849567411846195724284555550427414502782479359698973198759081268472803019700836249712062460652672899235711209773455249246152987057386096518385201900716431770933131587188412061128473793555530980290043913845023234471322602906253726652409542836211004535427022024372179110668281669688581231667164804193457946154566949305948383058740738813533428108869257009970495830092701621490685170058974639174096560748535823448819597099950132696673382708496579406814917446029457861488500189743194532175248736251005091896380244100508493783912912788179850410571383925418580569413388409368648908223483798019455381126799597658440451310983471006554852824093988812651258916540752058432864350200973518233978221492890766423962510490100729641914069889753338127628942076083591292887852576620156619089840975459582016599511600471637163915761099438476844439564508235321883032306966152787851832937241726165262893158728963807566186255676557226656331476048761203614826478929941690972790831294497989664755911494374674806886689165607633966784398253210748474710863041456130887137658072774952735662101547731464541776085892936325188053166532457889781553134154198086763293570684992298227053462102977809341453641693566259659418893858762639621492272922862882030450441692604802512318544988432621830861123857355622058334860226761053932956616216838946266262915221904265067282913886674474298990355998360570430831084513181823617557169933644948569275425698142287606274701149992407187012919162037346518864843742091121419423850548319459040851908894855884559129202507626282195198368249264916596117968266743479644420189297085057859328417512382180605448983409753489531503996428895010522826888691259410828949270379388163426801449387849617885700981234908803329577525214359377998252026828917921746891897010037669909920265169336967552166364363431046886999949906114513947996052491761113681950921418577232551837972842747809579826124194009131185215878192371520676259718664161303531414897351646562802939187169962646172482566891966434583659412726511176323756193932052255431246823918702583977388441777176310017711575075953549821348798305118800973160883562418699966357139238688997029047419807766155607624828596435660681924930645746755578691972276006235006014775867482411162490538553116072042617722310654958334973041195682716861368006487821259071443730549952645638699492951220500919127099121861393684757974183976232530603074852204445637632051921512535288923006324462771605616413614887925023985455616628061112845953646286249003357562571213213897076744669629765726974804434294274311096948219441136780229233384741008276764739251157574826214127115210315173436145396760812408219765741912179114067829048223265720256527856551541366556629568996846222652367937441074910831151634584335669024441559163838594623249148910635214215717826898778038595179423471199134090564854649493299201408899258135976421795631627264940524175989347822155187613297469616376841060033168376179100517490527450337285335500981336529935137327859988006733242257813629919048808691239522668461418793377698135609354983039834187457336672464195327108136936335012066359212564766220454664133879265291420095489422485756404554328746861358980765966949102126602478324384113165139932814908394032594885090192846201356238540638119292456353797033134402522926542477533073428730454178640825213786818547240873884615560623308194949405810217399335734424901236093310137413111903647765881178453769015960213752345927662945104341965906389331537401274272348618313376706847129828093717203888031376241705022585504385750417687121160473699899714917212232999397680361903954449514488869972848548045577736129516494963086376197695881003234540939533974317413083716380657969831015489595015989585440678970600602715688551072070304522587820318557442274104542895660326170909001829193650189621115628137830348298197289971996024051311344060672478512409309057039582312241224328834166552034158860436497964207394109553367497807639770147956058363963300118622803876849612124178275404782808420688208693278653853097680087692843521588998313861353390613493566344728088453731142591973220282014035044596619229657297344082455041505918892755936070431414187868632950595641727579309447601942773541766338121339684835969253477185066666193588596895561732771876717522305680116988487551177332780477783861508577457550795215781075144079849598970898541526092993312003311309262415743758508131994180909377164102247039710994260344377131589734100422478319945768556220833946426630858492611002461999860684621009805023466413451863935530897977345749208182648316757030423114369541234521539356695610637147599402348227933338419971334937465337527581481897477650452119896046088820736147875825439056861379280553351576375202290291559988729824023718667231806588196809090065917504451089378751978660691732850809516089042831510462958670774951293559965665422867795469289531481829174864983043077357174833271117893444966290877028870067828067399480862200012935702240819150450843351842892128658444837169325137387183801409718601793918238833961909511936247238482004072897990824724966076863901892946831338746999681561647507049398685214654638267602487477677472081558806927862836323143532475764693832308398024548766644125723181397886606408696621493583063753151558103305792343804526748998365308541934350570365215457755450066164466641881542111420704517511605918499848242480119399780852143501926504756784190058831371509276990246087658137175004579761546203643948670955423085061695436780416559444349401044292197456300343316735676604146103986810855383317439465326969028522543531719397605662068667944941786870723369941839783729669778350783090853312497465073228952982527851932534213320962950545871244363783486004132112860097412420298740090825766721730447029008223375950748226800543900804595459354919699418597873606517082567641080559332043262869430682345200347177120116362039507429356274201039157226257219061087382806232261556453889032057103764618502982917696090960338036494285646519474556823326697547095233511623997147475141787736085212800013975723794276337745127828325547484516221549967575134612949333535592957209162722410552044401359443516438950048171064167046736004973380176967416703226975511555911523463435042644357017767341605826813328260932028627528894393893120134609484062638411731507456348665327030056941474426192045633856888394874018591670971658397030163305284597316302570629625197784979226552044591339812238655327546714356177268442655744197355398513970412419043596551900623197172843337090116167228158584248081436709580855501730409936599242126793746336279202063578901828368782299285604336515756619508902335815021750836399249644428198458000637127168763183055374549195880697937443544241374345045384879772028937464782237423328628195683945695821476816926168695776863217120528522835125493812265663392202885836215117829791128231750245155222705944925456244225387803370924255259044024247206416847291066879813406144789387625249686111501441190352441751490362278642114532381502874669477127351054318354305010769619025847194888253757825051326394850973010371691372301765310087493949567812889679211944626794564311433631323110306621963824526201837571848744812339411745198035719797925874476064664559319436893978112902858791235866040793642209725594740227250965167647269452705501771129644453475554465815221113795267222507380097184367205627529011963885303343375253615970227458803092875361281745950657578244909941561655394021802465523786910695588640865510459339464332797322304086727426266990678172972421189011254092970659881985467134443004537652081843607796836787429053453205201047685182672636165105800115880342337799686541383711676244469824786214523056141945805435385036997033466032595523634784477414388197815890125991587150686947691099522375638668029171816689040994361921043573824209567145615128600748764510161803554168600636167401901849355922947355258475944401141788061078297854512612359464960768828964648014596431389352352816196927107075292853239867511882459939297324989517001174599983883345435234946539306251980121744340557532127552826062115983573346574869971930277429675541402307037675109132139365947332886676713350893362079945029389833398865781051919062673556285816057476874847878103936811789405290478387218241944148486865277106187474526981953945870179257673286184666035179805952832279112786924213698144697084417656345235728348072203291183796128180729928479871797050415204497183542136517102914933290999885897732553908938882534998317810869676213853516126863902221450315114530966503350603751885724436321489374591505061932256387855102291471152751055599838059009314394538150696176131350064443737498619668099625910159866488074083749399849238506555922131662755855875580770871842305310732899556058583309580569393883296110235818078708429868262365722624574432371569306348722386886695842521416255980816576729510333838308775611851965807068338124732744885936171105667053137662249440795223203380861711689957835187896501673398836923158539339726728802712914082129703634907232670881790728977599820968145860919382181279237918016523157885145262104687979442645939846565305907718670849723233022502672964688597827140914452736188209168906006016623991254875528974547672905093896191976431696419077944576221286779780696875860268294181843400732304618278302116158408928532177836895821367003290780244104279666238164309532199247207090133176059378936401300526555211600792600572372719127927674929747504242714444832664276585507281574048135630905628252760960978649317320753607015295306105616608936381077905759773878844732001472922412431763151817155577282780803750909280759260021169238198831869018462018309198364037595214528956328064424054351785065007323163503678942507343426088163066329257849105032055835707236175675865213600451360371618600225568492345805587756064208292491296251683939713511797899500425304997607466456516415762434224927372828103751613010784663592228213222634144238575631124321127832067690794143382528117842013913045275306785318875763045588697889338803037915192663456726477745966934006625324165823549153035128149614143401312845208770000492207909427648482850493995758678183469058764423547862553140329119535890877881316305539268956185596277881696403844692578619132938513186198586270637472295068252446303885122192441336300421457963973923191179800074867717678913894613281426238028909346563420220953665624383255723720648902615984304980075704988519868256407799762345470968360431368355006659141647950741038579303843720279446875625080980708446351903861534151354255385022123320559216080721618580351898894259285911821987387795358742108563067347465820256186929406817741987823487768602272489327237648598138353052917411071158740225902221205901329370424944274492222296822901947037807457370074538313540940659774513611324657561234474690275214805164022474330698053413456491965972849521947830597872249197277213455806693848807672123481431268899082695660937455626682956217556814922644735765127414802756852560697912454032646461783833121764056611675114419884762226599557788184091707615005732704744178320499186371654418300238881037122698400134441567880628289192333595767856379989454683670850782630946619420887470931998432663114286544836046417914668668329483736677050959092598869531560104260897030921508799484859140378149346307818551257240285281448029123353283172394600488893120558334345800477270055383332768457347061320401243941660261124149315710637389246625460315382540145173008330103102608164994228652293058067107590672803938502211877681161208316667030481871239202210249621323457769220388725295656709612001569604056921045846477413595076218055231971964831475150942303060887582711454805044495073210712820766159086149857428396298838253876670055758786502403870759212608347736840898005142943555298472702694888390342905565339300415138766913728359943392119358608850777593951033469598961273594173751163003930765930953881332341942412084374060960742098123013839140659852498723424700495191488602677502611104622375110580899617096284081314107717333078267387033829295625529857371383218339947630827379726552874428799474162056554408497956963021999506542513506707512448399672794664106501108034642641101784026794027160293311964995015472527643401324362183378246917467001977843404477764687611707247011682707667116270566089049349217757049841741720985068025444172572517433027935959295812936542016008631324283685116501066188461209820983675562044645699840632841295071070512483426854776090444490501366342938254172542683951168868430110470550214515619879354759623831925832833690870210719994557739642100797877716378783009082325012166217057763947709770994739020716747758326342543674284295528320289205555648064448867180520351503086499665260964265964633604935734431988323742613029538719929908840760654285140731839997723684237651978322679056883498140362441341350782876921037411863241452537534559601636263778014727285362346809314017618852178411753842693286771761647832443260012850453733678424223288221123339226635030142393482745763235072129171610378705182208181851840209459493202370648851967407315045859614371478807287369359523715920298326539202451235360133285245509168285464519840074121959950925144764659601351092925996510137501770971436393844938305839677614157602937978441715520341390604663218548093694914938006327381531356229618992256891505380388921122277399162412577889216553033519919868854387922120307469866955026141503251762371178520643451712496877283555522530967167208542301071553564685216594026212823079811842977976642072759094196991909061203689521584574789785896994464359636868693920576259184267628042757405616678079035297483674095349432968468260582393553810309129973448067928418184289251295043936204105413915344713189957043088361757547496065841952617522238624357004507745270873956228254408336231997686663377154709803437123945585753842485026153397596144831453623897942574114168179765380694884680514329120416297113762986202312825027835597852272721728932878649581786667348911094881022827575241130286881604073861667693272430489434600968985355005047209421649788544151057487224749776124340642269533083715098878125806511959699282241782237849850710373429448098282679910709943186055588995769257039614725227828005008064652033085754810869065062703032226355587470190817377524110946682163021070989770882674279563067479917745155483669225184687545517034755674866266679384455708235279500643260517219841398552922994846736813962127606863222867650229799709324226398569738850516562914932455080828149829225085976790050384791305397663571597557611612228116184528627737176268894777604116300104212452613095166647406354363820386260577424142164090084291927805455768531533075599613636364219687492687500113260420801634130853098673697871769193282888449658065452927916392681021266683153596830715156014528798808384456625125819352981967448248934252930315163219738755726338540199718476753542653110298059257438680853063702942148386045452770317647051891829093913325824209917923756697567619725509782286085730829628652185095920662827266668948892985820885283663785181141596055315400781912778873876425684646472423453731206236461560848412972975602311477451549472590803500864098572840505612158332695070472153419831597989425410045760456175342213085143088647900816916088095414521239656541226173694061683060155472232436565113143549935154698893865009683766775190388993954159404856973597973985884406468898521318933963692344841334221318245279133025418574698574816112961671776493901664183907848353127311927196906048297534118561256933598676968868197687122093275002014269233142774723033623802495363786849408570848040673387633827166342943288344047643425447140934164377504521368684435107998137156666387914767735434701578856877755936436972257071805801300530308765772423124215571203876014295934120133979246721663843402430210571914609020279102105091992957819716963440379821026775130300932517022572294022854862891604387946435498690117137847086734011851088209132213844775140693800686986442577286824717757162261775802559113921533265703013970609242038513930659179960968787449532779205995961794280767521101324204024432131636676146078497020507065439122727994595210562702285619405749162706651105165128010520588222375609657695029281915057378783001690714146299834488524515280351501616673386387766351196015638551143405380518312242764764215705876752337983540572436341290295227361312253492980609056982263799348826257999364447032600335453733221454744562543327074251944278129572715705714821600165688048583834823204707323462735578254305886292379296789529029980695676607535564306671324419647102081135719943186775654286688400956974541322402897092872444955118539023937424123126031676932919615645868419785203521175639194478336119331386640642584486267271537136721919842168574110526851827094298634117530063385304911127244441779601558423643809463975910994194498008069244459583355682620024401094835767531850538078613311823944385275475392471447737572412470134959249516860878901968592910381771714366314962631107620549446465895317483098505906810508659115868116298723407005293856936314117610141626193153012524518081071910472568268569580933956988077653787496203500590284052955224370690080038155946373933976761080273763298338501774001700591380373634295627233911346235773028061900970502957380994567034613263739361410244401447649642679416397315489416865187636430399460612574591303833398199915418736234352022097048104884858517759963250976758650035956457395337342780028046766422496576558212664073839792442956131507457762751940741421287103255019563559629385930737036046554181572959398622361563557794079612461790503404048657855184807342482172823311542513705726735425201746029858828937758326868534747922503729929914909133446590358575382016302193551799139276665853535502412158698846164208125015951247319929970690183639638412221801925379223348438218844543614371877438708778753562696047395887490953310477632914983624129890521070070804215101495569751133713391982022813724134229389052991464110681327227844705290876519929358102296182439608640608925018795204066500436045903330464358743168294270985608479774629973795532650640604151933785716694367558875401038507307461139169650135063781555042046473267417051226440492084437447588354928972752530937612678955634106888146353978294687382606315814534957879941642728119059816278055364110855064851788126292572053096417223448928817754795405770045372424795968396148311175410415368120096905436972786556698992163200884947623563527887732800306633519975864256089754200886080413420578414469102298677964074453979546851152351355030775609200540152855524621302794294984133807122525343437944725104968586924932678829934500269713078217190299828118668617062978935882759339359323688442692325436270994236284392789703840489659521992588892069929107019094711941083182600500422007103389963920415841860586610054648882941515881286347503601392237568601812504442850728321429864837354880136870166849761767311699873609479991498700202651160569570780017928304253816641939984165794664192930467674439996859565465921007360941895391760934631246557047855727884822830858571427195463987798951541111859823234792873780355384560195084362836480944331146452770787219922031031063171200925124463230908265328699887099578266869406526451362690880596451920902085950537663226000380437050014606993935049751832877127044039038700224876731231292552374853658843596702129771285301308727854738396713263635753202887549876822161395186727874273818462519319997789149999937140048082452475691000317278782267177647295929223108792818069953542793056665245543270413869264152887080630855923723771654086038552599094321304392745581427589960932299125279636434618336006701285427894254125164520513549024730746343940990161656061831159229209022153476416443682272504952210103940995879013745015233730455795289122908667293447772020946923471183089408591937411609279091919226599550153873530566059265218951777733457304362851763400478150965583962294211297912704122710278986305292976650890093183561197869837223196037123503158831163496951023685009466565533173566736958119455915244861129571480189503543275746424361990364939996999100527440390902366684896135774668942740392947212326756760261166500459070812556328228434958995479927032416682162628043912042183881388957871468033142658234328903838958004811678360416236936166934458429417778366945670782175160425600504143487412441434848995194356554077702415782191258421212489854015250531273165895615462017560598204708204712795307281164086402130521079818545748318511477096070892476114965108360293538957571420150303778083541582647386294365174707251356561549812198011431913560276939865797262407607879562257172030882983444240659353162692460674405401351141916440310149869936725488864839831611440154920539142026455511543531546281790351843737012516808156502205808020624457132112071407323625759735652323518639873808569536689253016482181685751224271077037383316507865579464985043765115943559338611889706585704246092540744226338909568251203351470460340015169881111308494428969797183937377372780685003111536548878529824668493366706976003441424314790850754881118987419678567293244593331710631823075816234931525761011473826561855690920082833045931060104383458629158298430102665546646768640052985241266312832415553130212080011493602229437687382941019824900858678799882920290441685219177952564817857542858775879157292219934067202989407840139727929225638232334585573930163649832143850943303986958040360816942419809326688890233495001704257649355298216851282046010080865710078834867029771769684603461470626008362714147332892942023288613029665882851961520956020590226857267321974015201983982649230581250620882567310526492401575716237426889178733377384401235838073603412434460872645383380729538917984721041719063442859060863716346362540028171665724094967375149170709990928307101044577782518408321347179499930182173952630551706442792152250466573804469614722130579547621997318311544086647905339107349209329511149267496078988228348997775681388005151294098929377478216151029989567319754755303610576060677404326864819761460486817825089278264683851565342540565129357422188299911183156952772830344433264680179513488567228858924411170803562901627958418013896814839594514444864313849292037920770239568784328935227302388640569243829637052589099450168493671055520388884909549908269920808347927680633459827677214721377457213699203818975271850781351618165053043368853249654129811615450374390483353205623669407406580725912136010965273140329759877442084743490131038403885809316798940278928182256340941666640376410832840167768110227657871543507730755626712949296774058980246268580481192603793553730136067605287996337147613488931059519760351387346797487681867282460971929586903478686363730135293193241451582352005949630771647263787709129483598842883745539380879951542816783240860615651108771554038262694681395411282753884394878159905086332024599780371587766406781039566758568648708469912984109111478022552526763378553140293212075546464755778936470429411346032364093955771460082100862240650675482513242387518412114561428320090977198284895630557000722371965758284730115755695966290969273031699834452686710191753744815830405261231585350858299267197467939846552477925091404756212870449699094421012725863967469851305735371749288779892858809678150809956852502043037023649530931110025430947225056956585457764122032744249416527970576337933556771517445210406527368468298594908435515413756260059885618967850555608502103468285159259773843327939261463090947360860479438020691227887615193696311089129302135350909299576274052490930597967592723071247997301412261350951381434096333166284723204946871638314343298541718781296972483574959880744576142488196938234593158637469838014522643832101506234648781860884303988073671949440887395789671254717949530860390705312399582495532576343140971332667053099835175469220602653369161608490935850731712691367785529799935504689532687154797166235497418191848886761313699600440750627400566055402981423751431982446194745534541061383866469219964406749538959958708147300010506302114800946478524575825154594318453631714095598597682391766098104072943973392067117651225508834109109558488219252729734317377057392632897838672624441447709288296116984954774883845372185620442140581606386539311442812196795595463751435592737633470456349650151436429254301012634263340396562260691325623965739683756701847712618528073947543932165438809902250657040559085111135781410143672547554091272625231565346739835846279506888517746783807124507635721353074228121697036922285739948141607708721100226516646063362892923743667125285656534020324749494496114816903495210667958853806248212288088933646254153597454459960705825299692633726717759486466901441097583563742405294177454612442842670949385298162877012978871824093264955483786411166932185709600028217106771250646493313513222428612712327334385223694925455596892235717310713480157114634559765219755332475576675093113983010205384964881389649526900726861929745885591084101372135236323782309773863190227170684596150818459215078850722031985728906170849781102938521766025270104161774092108924883702194060700825649823928659276476454403565598888811581711383528849612052382272539298790372514393624343378640254402483983142595490435183543667140447521642471780382928613892681247092835939270613160645700975646109152258269578706080997639173522056664900042622432725708244206758870096837111109045348912634703966364805900394429186536308478661455252213815218883269513117108507741610184444095929001588330461544955964900668388445334575290005540964538002784425205914868569171054930561429481547399199254188568792926056750267033741759151065523224047702264846895726645119085488065202052029164032800583637841916095836295140424040752817745144593428120730887234964108077621433470072436133544818793280014768542505138223211096880581359293658735270687707438567444192928875718412042965884168646105730311632646005666969867411035663636323885764970210576145174862462020907327840027621658700415095572780331975205319111473243952419318633473480039024243984197961260786322999915397011094922224374511837023295776308639184742445344636066199454080797609490533894302150196699545133931399617584135759332474749233705292506304522470957814754385313649467447849831534411601907830558218773327418843081780273447080176231449145138018499251754199955643027878265901866837256736303966296624895502552405357793511329070710590627105328556327440690515368735009776348964437821547393533080690238686715930918709172949697035450875602345438852168279282325716887621056378191089565992284310434151798440763659182691354000318259708146775639895168570442019817632189451417660518064615476106648018397676966741094033247012499796416499139574923118579552523628133374667271570920110528171341694245154300783779612236402422703746830660118875016251905878468424101626678415378571804843971839455071712286118356738535691910601363757001107314658036847291014071841892295514842937296738151750043033704956450588404546967921747098628757126696525721976108024576156898368505786359866034766700301755392072843785726388567392501622062845731015259169199250725467907655067382665529557721475715165737411494447724917938393883734243029339600496698761520998851974399870415715169634955593284737698516798810761827935233887292642152084415940988531254229254803770450695277337996387006287018991120308786191914192071346837337711648341810003822823548917056662726663907769501332903611427121862472197543668716549110541819929480208548317747175047173717639610504554382752934796677963910960139258501702439041530878215193203625205291092797014956930176206497974710575539955918879241169527260051219463025727542248534062546960433957775891408254680875133557902492352685732652701505134164419690389438883574597134763942767492810276153299948826061611931578901293070731706467439767750280814031272459190226163988421274436623125208749015156494126177895131530727260063093184806253853220187700110405105768821052273751071728838988077326532807489823218418353707180602612900758638599578702623473725381948460856403307501428237822227958045778142327810386323692000648423906055960233581870659242517968127614208887008314345079163479325985755348473919490593891123671519112557247524463801114616234274317086687859296100158514669733952295438440072981867168781331205500704302222045165072145751303492271516150954854200238246683673096507513050747997488607847406454372553548680582709701502164352414087976903066792153085649745479432163261864852963940048853704013502579534446350548372511948950486133234182330939145338216572906578003847317248721719333208469715270433710234577362981922767715970378988681986261155634169914380257042169733514976422175309445887000501971037710306976042081604024177384182877912238140493058715506082951755163133563139937556600999352374521276558677961059543524601043391111551736263467765714591780657873911340588721494373144972240386056228274828095305046912020667933381808645554870326454350593659786967124350272347490780347541389736164206230181505894043949521490167519488431479834288695980843298927554101035139637001528240510613930661093233125963826406667832354925744768093267568278561277917751993174695360857338184954829098713744235037976739962026849997177975878414352733019996448176567996529353099036309290059906549787029607791875333385412757851260723256418374886162549868669734825312700972671754644349795385970906267146105184461727202322284089070593735088409757986587044016862325258135549073962854631827319561305135957256822628497471769771328280484803700188223770685710523078732344575463934540791325680475436053488603297523126429108059698178818298413613591442687394642785051965796529473091477457815652369838370314362062117329363126459848711600208389772320453590916591550434771538411527054747726654639597078233158357297214500829199340660548027781988868815008573792631196259870323109577120061995048597646227861407554197761323885427125642293618065620567416067470401816276533242438393870041314912913208085781779184995681987853807388978472715293866904235653272925586587020961066077879507338029427946174843383830012052696437258763772519986835523685117345871355931476375702862644648446015404090746300085630765666792252601902440177310754793140529563932046249373252570153813941129242047427587183768129101491110104916120035879143826383191601944731009276217284555400232510160986359035494755988095872984233263329678618064204383920819892216057926841866861092492743392558365890267085880317419783887156471384831809227724344499817032263005233354212762357729403311540472504195771706645054440127465096599860704256089114793669532207107200672927474206739593142217350435053091466514311025889198949918748128673680141695409068449928149983268369123219853711861909529019939546153669217150133461037535829885839971987604613306989817463579214938864534387003168491110322348187512315161451555062243943013301541698352523933268517771667687251438265667227887004032808903711952854076784968075792050040363484349572868700613965699511692013274641405928205247016539760381185288219368692328196746909899478660301277038550704299102908262854649985434068702355112352479216104106412023370558340379680499407895598459406008727945526408341705355642322887422784427259948386094879261351403483219809503696807747189519281270902903656606562420455011672422802680112033712417792118856612471764304983149405659278763063090643069108717668417505366952721704649253949106149241531751102990583536098446123336283981062834991376865604184299314277233413218185618910527478064913733384010437927524400644176161441183404669536817622387649031987001710511878868889738461501487167281595383431348974140703889424253631728322396634773723656742039522287005373046794715146577918706880075661354571734418188077511897523191361743153131411331152489103225291468892809468501573176932117140644741835824314250183060411118420509809141796983799087688868981579038254561952756897718037665283153027932057636298603005889167831378215707577218726104357628796562530542214873520045794281020782644104227003522021018652442658565175033406505917851785030847354498738501552171148940468508289103595154871344689068030010099370236832617602458851873561540596293059221153862997060769071372240318643231032168475739599967696174550807202545353176975549486371093039024679423718258396963683053109541173305392268222638052463114187811564368531451749308377331997371036174338584441948634325749498574028119747492944541663799261974988238981310388672464886370781341792913589410494559876563009486536738444945001759340932082708647267374818629423428185008824836670274196346308612079377700063076776037677349581560642994079301684142015650206631127960673667854779675403812676209452986769645513406769252257986413297539178502972880009182000033095941159070843621642604510734359762296644042280936373069074877616016386774142635670845328396522290097571552682635468091018301156669266347964623168863452352232272488891325844306774434615228640199412596467860528715847499961453397849702106099285450930073671826612663029762984131415807058683984995408251471019789861699714615890296203660207751533928109056222142047337659525472706590258450304740470375332592490582564997101847000753093753254899065256935797523716748671345969962568578273477058715472916373588591697905097120127959340620027557306870937447845296334614011753677586849295991281156332273716345484579284345636071172161931335451841844566200875375113723347370328430845183350594372664002564392195967230014226753695109957903939490055557867708045772457582493039670133071280699859425684178041070399925996546327926096049563301501079980456638530118239776987774448682952139567335145222813990753797728435267849152092764173400987085586139332563774068547884845028698298818716928842646268193803990622610604665642025381688136047092591564014704926095560859260137211539178916581703285683656057095849673482381824277390129781332143943104964415888924005542435084971168235793516348228571428460216997744797569814489433730441076093208635004781084765033293467645852470199901678631575175799408245824490102532120142374686661064248765518405341991950552645167873839196748264758043608884310900861253845254172697697516966635339495470042908088938161321688221569664126578676514298896688362930007631606913463947354526768551181400477467605075302247823702719081022023664338358427676876634452717528259461292598998013088579406425890747160176811419272674601864271283876948052695229927935713073313355873309280709271334605553263090065728187561874718347905849951264063546673861154514740222299848588404780242259215368084730103891798108142000428378882357751666015199416575469713927784021363422859055341828960909137344016302882038412143624880856879583461792199091105341409728293298708962073646399087118898096842195755438168133550122899821001815742217733505037645016336174681901899903797319839696861319351884077020675226072402787172759174636884989204313464113111523514206767004242871078551935989310963759711054927076872918363089540437730516419137754467347830459475168090522564642162783855913901810412601492301138964802093645385904831643146021375660131240675885953892838009431814765945537153540998656188488165957198610893364639895786309468895487586458475304057326850310214969934942398843840994753766921955567532179872120872800201983429968552725378929247421274066221777143037366624183597132293037478157506150005580472574866018202011493960684377665873774591484424833224185601063743582892281152561580609151280200669155977517651827151959225203904021296348702355788063028838131334665858672940845031318276402383145336778189269335879541224694050495476897189147901962104134268032524446436488362891498559016405750350338241585083299788888762224896113519471368070273890649014040833759971527058848250571905516348610768661759308320574997963414945229950669050108575690157278398290325989191587331058498267379589582312754206762565457123930695619371427540819206263248988642753594932814442177070338543659302221282239638007996862154903215435768567078382913889290065843096092133879464520534518597619623822147369517681730875290349962688718191407295957255021043679710931024858974330626440050693504879339279185045681316682250131554862684731072624726249213751716996553819630964856810046498700829770704173508460027077603220193571854255665551518855064301084591711341819638179687913983787643192253224081670071474921603115233598432716170507960331267465602335436812065021531720058619105328358978290133494744105810442662281966298790332771393091417618246053207551519612348624260191947936441239264897956784032076428950590330204753348580633606971985445741217507500059408315033768084348898693556716862231710685090170194297940220947428510954241558955509400189797520096891746606508435573453880848358451591242677148289688383990176821026425151633673332553589531255335028110188666003276908604009506072990338371039139079294190481121884878421908321462227043233392398532438536767040308757069244750273234208804306932731238795264200696581336897323840010649503322070811256107182795024731616540022318894053040060362985883497371066119626277504232136033319775772007677691409192929595777099461485256630152876812691674824025848121725880061041753017277936928808138957630419792553091878669403056976196111971776386430781694503181161001108286712801600369271465212039312126991362227152438149091908952694148805505324874982297614239686678217336735439683730756133709906925624986190385807554574958643819567633778278984815194724214451967201491761767997414747733739363692650497140014531976759626046516677660482577441774379473052052768566078011109896293823802719576962347886914100195130582888548767956549933265673211781216643264455155368657849382667091455037659776713376083700976775804609628647386883790928472990909107250429303667750225660756282039423536655934027432856254984270610232259888548890654879061642082653467071546818764597753752619611269582434618368720064873208581322197320037889075640504153607928709023627206159826772945843198523318649956688120723832915149302211412016880359796149547640849165388595071830305596383270830670698954614926792023309461604112606507604874655262942135890009028858568195591791600365728042735920832973120681728569703061733667589458000172068281801702747031096875599514087361352359507311992348818812374586170213502822265790879677161022208284266771737998030285327987692636290308165621388706059584901459943179425319842102890592704896551218634029165023328944133742829469886642724196687799628750430548248230696969884580743691524260537693284590946178878780002362409749590139190399519181519108163250319866423533441577731232351380303037190603042255467484454392292345133257778898222042700825614271251866537093782472878375881231448781273984752308845352296959676147073515787930530833718785720057282176731304209957339595397464782363700344646514595226710671036138647377989074819187183966490585581107810648255315961344183129004128775987274635023395971655995291297684487003183382980778616263523389657644588579863322489684596103969772148973834414919098754119464309999583736602491430091614281326684646598670200401849398815974952509015910817259522731687012776161990246789469581784121849667141145551888052715836413685665856995707746082941350753347931892999864719753960348778794721392198231959199695906433320357149081197319367153578964367601847662096002583751942790964550076709264207217858947966587338213507149044225391460072420691035050953315243941031662871204177093322594134041019274709116291361520982024014535230371656737845756933697799671486315429626813926218987683154596196289787843173711957369275725467424136695154632445667693633992571506141336062146068971400831868915003669639751902432665043819015835020492216501133470254351082901043516465300582170281563974361398888808134477908402508213013379287552215552121140394131195143954725505882099908128660614576397656020106259856983383439510221985426098226810795778099073366392357830550291787662269945006065664648217317732457607082038042602104282481364308108972439341486170473626334407592293739296708892623718605333904238436502102408366181587867277804069843605242044772402723955634570274633215923013566806454869039842228122974952475954427075233365051646834258000158789908654330313779780500413843204596089041527580685210842614765468299371061534107010614459109823626488609930636478368035521850850664093081242743214703948881654370522202615052138309862299029903909695887532581530764739540315594700696462524077346030784078492885923607481502633638464875362045089622887798508097264751671647447994543283051677010348410783815105606069933980019615393907330385915973299781996975363281614309023442352358356753575580659361717977670310982780998506619975946481025786441916735843608792540609549457734649438244208831807571350249075923482945771814481297989350224785157902486340914784152739724314807823872665240404711788153932786845340013528205472251831663044775387522570943022646169644941205440738884260673285642523366814297277312766277404597969660091202528477714887357514604749518281380187511897759534398865440417443043978949985392139087305452805419189840701686750344409505592201015722619112230035508667362623608449074025521631833698333223862404295320555841043731186966317879957067946468872186419860035309260054749083434431678864476546173660447083175771609594358121034344598755421176777343997242854367025698069620331069413976193330663309448429276966471274274363034429334133602731728392746097426439010351328302899612305355661359401029452452816718070604469278287007540547540656719031642677632727490812910051756892330451277017085206759918833840793128579867673675357768590371559377818056292309420099069694206474031063525403936829143475301728495959068323486694245386946607397857458332949842738647867115162815188292487405122763130721428983604731699905670296024713648239630096389566592053823375128668509936810652026594585598628283805133059038407495025353894913357121123182788826746717205882454948946231461543452396787030706076054446716192220068731963124148357259967010048639773631887553144549300972078723819571526167742290719942131061798375380391844954388454106767084787620243013032106609178676685255294313154156112354454841403435026462160582995410973550315268051785700380963391572985995835512856646065991265405156521296412808855167628739326929682876207262335656799312299638928195924955925626631758546658750614007269989788274180199569752220733538615635645700292722054920521474288828995406104585762853458920591856907015920345952367965865165318283820004830302113040448439758769466068235507624235067411422783850339181799762464433637373082370702934561352727391661008484892173435566199066813108039735312331683745778869124748632570468624642698609542209287311906451635817020766161188420753722010459484962438209962450330644998706567259259051399021577350158969626269782168018011159176038539396334873669995957061298314096091763574771658613936499090068998853851331953473517455395667176358778169445758854782282047481559908567609854140328115685451217976529464790233255742752065879575728059855472866765184299689180296074874492222489832855279387037316418905949369738658442559048594492531309103413202224607925387847706068441436801133139785510960482909693110600087773104126264243474729038520704005722134253181291966786585888155306889859201037477391548368122109152811034025205520846668184517375021296271696015579276284355152835864204558662792129434367282440141582411251737677475289669344724165638128708587613391254012415257300419921946701517306223433830322859708167478843603428746909762459490718268110111222445153683262323753258433255268856413807137865767047600610938460600500551015512444103355307379319469362523939485816482635159217622342349547623663896807646875810312036933287155636855047756388264331024009967865607347921784838473935462548945643838710802332585826609347464231995085217526865286902141336483960121287882831883094650183248293640866896559633174961594588294123449895705263052939316962138360472174107244195146848455030578388079202797730215928734192589152837262415446548296499087449784438954940982896514951107867729756504516735988430368940952023121859775349294540905764675924143707746258031501706144966138702527759407297816867934412923226451443323884325805480534268843403854540169684696018763932343644970421082137534462413057595668560686021445137190027328892631126585160200366047719584723208211888029136558442605011513409521932729288598290907808956406808947207325292220611780640036923513951130211529028398146204474048313065540994267862251430497304044703978911678104873592912793267102415657994045273899298121904437374126767427130551901225443190862329818741715108458752996984486594977096538153153194661475718969096565273540027955231818149253908798019278996491582000356936825081208589423387795161959388129078718506829440070853746679815809971498186473499452111250912858364123201264221383679909893677867862542644227699457174187146098196401791906016630832973991445921455668237786293195120655697334387212419557090234355694060854184786155606866211125616269532022592663832022037413061942466691582201601815664818908909846783610418603662349951211100302671643828599914100391634022869603033323248839575560549612500728104789390166856554649883803361276955828173376850783399824759972125497510841595687987136059218717167739440450774626016646864134681314602481729236347115585242674025963131719051131507404806166110445813470481005586333090750324112188476450217348299087578447928994256272965353503409903309194062338057201162576648427195555041368898119319687138761308903298108580443538015426823130698745383287888470840993341236435102832392670775814843012302592532106650591753676790514719943807159637287774566707944622419384771296970907165551469726860213013213753403152173676059074771771068294785716867414383142480883858919465294986353666145772827227238546142228363669521858030314783963518441427110990574374676813239115892529227856582737408542637983916195951971162019511301337710662612353279274955228879915510461475040763214423523881018710772352073147373766961795875687300291876947193421796824189481001336233154194459814909743986877028039536310631858879082944360985348233846068635980865134956652419908837240898010025284075749200324286788465016538848179383828225404676237153042321914241685510751156547476499453875706744009579407713445354127939048938717092369833921954925835624812234259237398077258832776394143672264831999650222055764280045490407612900922638221492907200521862611162957464574899084089709477940255729868890680565005658734140158738122753855367572521506099387492129624926819634210709321369271108116521245549120967178178272213180905616851005958900559664255088861523282134360777958176368575234381539000726488017937340757303104796210783214590282350318083125027120835404795228788519808347950944213056553385332567196637297419389763297040539807711537868878309013364776915426119448045645678107955097546602969336339782415159733830269893323207199234029406247534402478146338357747862080093997017040298240195994720218805897626392617325562566400545064142102932706659128660831890123447310742412476732290208473546067282317977231435072246182516340851159313397473456428831481737632245657372315206866816862853258934785535592986456282007623088702152955398238657145667883710670008113761331557642980931040045022532632580208973566449604618929726445569038069279756107974943927124507737234356643080109128281361412142695400261148289937896341033738570128261838332556800453748918622948571107859594137808515149841024336901606688743618008823372271802675087400436266850500199037975707570832348982571759759134564473945964651138027001926636742207711103598230243873340983725883986845923402390952007686204139851957040115113614183983050059706280383887875085546902916288024933419240208012767418478598080453977387902578718845862677724731931606867115955458081017644299623311259287708515675207905090657898174896270248241693409177529141364253454321724954535142766836696203897837399401461549916566547080318959606516865779101382258072838087552645715864320700885929525337112011746335375201413353086027027784676049730082084749609278661202565881368698554783580451114277918079573701523990415990923439397053530207588741647037356651710064502874884812580601157680103598417880855911960087213665557984586508042177423638745670270692038244468357417904029449815365335718238437337680522217925339245285984110464324764134185355890926135652383624329585503208247502449847883606351532916994267890639322401239319511858668611050890474644189825399185068972038927880103816700555061990601654180071460743710160112721493569884681040120565869265188341406926196074248190039200861034753006293912065788303348507412945194790800351025997984897914036732129325156169749827919093087467306703770352164939324425560994956489996559367339614404422139078273967424859377435774929916124717981054338210710643266077432876365869397907359730482653418132076600248049193133476512701166096913337995186532978167066335413243645700791748730585420886930250409920793680089976694828770185102255980888755100019762670403367399809211150374116978031822739487533159912564305588433831996475365508328172847746894715820351800293443322530907106373322858154004532374172767360618323709682906745176417907654292468995715110640814863129113228209947309660672933159964653334595527445393167948600492472422471257775974571866645143023424918555282291016050116113771758189812743534769484497914068537400831045975650232000529726042788788712922497072621060597832537536189148481096440991933694218754838288218959897702906902967624100820476733359371620202896084200662533316525789704087287014708297687475293475780428367268466839517459028314726782549251665694899697171588765334942505856737331389591740111572972390824939165667375200504760877383628258148509143061303984482548567474212110796914536048420329749132455067346552664867167959064690003769074363117132154756551719399109009789850470852728335759190263967746426104903876079015159946978005713663615581471509004830248781235191196145187287374061724018518998266182387905958281060165970718655375714839828772037156086964727454217640165647117469370318958273076578819025395779727179096476662370812616708299889535568104900784028286811600243733093222535722969470543648389280107045332104438718359215863646297932012494792361635520188739885393345893487858674583951994014236768161038130691042086147529707484739465844380826456879736666783713147377693468563034519584913092839973060816258867988075080270117643330832540966891718174949295865702797958435972305765695547660529664969908863293179589755665759592154433096784851972688826185218800210604549016271217837178635764244754291264961226341674594309940227868019484634743790071257891914852395548797341450174100208397888527059503345989249948332204925576055083109589359684516252597695457861641095492501420346934376112110308385725213951744212191526071341467070862244101597055726141191494606708972652768447241214175419939772386560151797110394906455675423059466808483504657009088652422926233658999999408049743546185605755713273714364746750315416688216824207657747438904916327923764927087782047775186862170015133034421413603699031980874345326805004842608582033298988953411072165760854106342848542270969808962020252622987099930397349437213727574767278508188151446499602630468473207304903992765411381376833138493567834481670163206456786161821619730239781292274278901722220849671272512548452157835828688271067020858792796208551325069789869564782911128403766903960289923512064095670319581693402024381650208437862948874339507959771197261974219364275045277176435604740724474404768175042017818913017415754074216343260753149686302952180462230058385883630212596691614944251744822388001722275782031592255239205392430970730001035577744422442615842536266440755367074897382349968100342908665311313308950139375156284332977761631040573544553749985062071285475047354910635933066270835338416127114019518426003140143763991230707909432225695554891181011366103038309186495405581916400956912159757347937210775547900378676653761375730227317920120440643640568110620425272399911698514447856209888866006102511076743797670905631489305871280489162260832716671312402722433466917140939201592842140475570597447228294377006995738225102850544737959151283118500533625452914495651305527585935446878166649553426378224701774628443211762878048279185951067127824203836148808670320718794681088651718366007526929709332860207707955188036614306804967956138129413292728760007508599066349970417216910599497713394772584512695150496799296456564516171036529736624074694063520785134366531469776114708224142150227392776812412482006929991052299500654275697217174961058360563536682658841237369416100073569350288681040000293834292259689410719033180612957748423939407869852285352544951330266352006424853966966599206780805190184060387451117042055075619777151323765303054834729902990880168336793523101353011571070524814465414018238147512747631823621077862282057982534989053906136871069675749370870647016157685293587650189310821374649541583831379623093730651227331666140197499217407628264836414064014991454774728572920515442120357354114377978868387073520945470098673472070176016652205046509858636008836507817723632502879405758313849409589418808793726091651254451749639694976288921323405578004044313946116729129729998755608884993700688430015822756869907517401332087643627350667621747080893135019544172998735211383504495738594577314535754419289321336282106318890546513866310939731824826541637782319184498361826865196416538145738611915704758179443774981923777724694229692699115431124480944506625901227540808644999186263071143072208389335839890278687232571565121922031473229764732236317899514239713062254263421483875208966369004063835234378486689551102375532054086826083965509189537288510406347775229962580161086742989800587255551097417634518821749258743160093933767045001470487642429194292852597677832049528828547982139768310193010290766596067230557794374313959735603125864527182650448051350418624732495371519409896910942185472730061762671745265828035498850838968543267632182151371487497349937008179154415822205863076570161459795571192820197323613359373856190046421183430302079467394228144989788986441143824125463654614119826635347199072524940413253956948915603596571118456994648898644390282782512321731886125954794871350870539649214226488508708203638489803593594974818731493258018095340297527096608935123410862485863639807838371220938823236631077252862689684534029077851968589334481323207160200776597970780216020751736289313978973113354224776324214366726343868293673521833648967798432783238702616981265078514130388732831346284088640072453116954958605436491610466550006494688360822480306897544373919352183758465743474192187373267023782939079705765798046335014525276305534800179278727863390061262622113384757013156680166648487102098447176713192739552514572742981695623871406915179598611514489630340605630249443950869336903217301336366097809311469707369259376832830111727080441520542547004971660335704022310770101863906892808385392000370860760037268460384026256898804531043192185340609179136403438811229086226064056613537639124037823608151722303431173358817390271805074248923573575837487381517377714608995787297549600323481406912802798809423957867207207719498490735057726934418173896480226528921655383949637552246721647562691585254177996469871214966235830399539947289992788995943382529420525232051445250084026731711834702785625632995480001244676604007637146842104111882284296700278041598327189574784267478151407955208921800991896302293895277073488796097785327244937121793836912202595587934579093159503011817380648408329394628183500493111507852270301662856384170221724458630317240932028864177293492083241102199404569162024499114876818842178667107247289008717817677779054633150063159766683721280943375772081407512816594273239243930035682957545068284955779692059723376403805772898160149543232340589331781361546299279549298801437795532219758138736334330238977269674415967617593256814591179841650695023661761978059550711248941412664660991223624006836244289402320747548034098150112415968723319231369344125330123056835540590326413621884585649932269250287006095723017803553325870837703345248405383906180370673152725271895585898497085322812415661725439299744588256499501347241629149672223624780973977604813240299890866462142889104906422546871944088267790482331228316542710947682573246444553389494594392393012950980434261597972211614506069585648696161324515963529870424391898294083220249380997190319554409274833026044230520936701393924452693872025820255318373568545847041030558241163112523770464847731550561419367976392346242032614121165260940538070461988395845761262826674564185880185244308371341079482532551805579302340117900652495799269973467797734582650136805658926500685545592891707888381485396710741045553891851861738632477322991727509063991680398402090672268693810950949437220996035346060459965284151494512838047378626739705858778353676853453503665569855228650933521829171991495695388637769794813605571224086577877623119415737395296528821503629998087226735980011650806125294908838913978737857681604989141246982289520950166573835131451654701179065328367661342903283418778568377497464284618748733907032624701731011999458305414370548087686239655744444978686923330780388212767676512781889718495066015248392119721437089932039210190854060234585705783075885522360688383950066025436326449623157052547987963287093585809406804637301267988925748481366886264010454910104185793386659803104893941509151978466079419816993094712087107204955520946997848613849669381785182155741350609300511683845178664139282059740374778052878712562093260906599088360000820805780946252147988372301623129079875144461143381676332407731163897693073933761360424122423121673893683959379653204245269279945977512427792782217766332135153823262400387304803812736001155980530388261335354920829712868306020328723146000638576021537520925394420520879449986714384283746423516929222249920465425111750305304066571996723098316847043509371669122760990961432306785095354874691033192705546978882046270568277494522229497916965423908773491508964948701580599766268738993462732446031283633576825813798388581450888806344844653400847059194924943537085093535203186852526191356934793988932218379542218624503114625001651123365025017884292733090595996046744754703511071602621235272230150253266056004302308229544355443538066885321237506938779505464556729394325394129482582741822173202665059523941098717988700699284184457163188781731250200391148679265791592212536643797276961813095853225105695830456086059871057180590243035400780492164237108104515323287455963132424255837451035231828319569557397179628634372239226752597803385534909783292665214025046984715964371539573674192111477631530590186411475105972094227900805858917128476628455713793409540251433977915640233176306711356335794223918239606434304091347118673538247875861645209033621447309005370907573556730180489681702168945073085900767055727145067742261399839901979221695621137340616737334069747818219890608485388482803057291596328893889037263546019696746947026394040245074941656360576332352452187765836854850741229599027403050916989534671554009587535364351350559503490155056008036456352300656002259437785821203662962256349173699939886252380204956695180568354369818696675916521033922758946667158039355904149321981039741786114989764207553505895763726263979279205418135509885140273243239529147085516356695529857875356470064630934280491906034918869262263751269180730191918132184005714975703819713933671242894763140806622797729984182546533717356103060445118654958266834718718068976741602219055115216364872498204823568383560391119247159677666824682343832179998828952806613226879424104049350030795870320846074308300579354479970517678031878177870407691669406969911818325261889883316594883153881005024650018243422864141364594648602791718355984710086860744689144125650966836375654237676301258537080763645838262309944479610720106021913054118717851948473375439341963136603882137665451203603334496025838009809360844980520196243428816951551963858369001388704186174193433107527480229738497368889380894098839568797679680082294492220775235916627278840625370743642050003972014889464833298989433122268851384450548424969353701702783246513733994797873520404253161467807431215163452204421564185968695465870303580132086723619126029136087836141498190289486454064756506929762578713499252228298580197437283444922233716935631806662023496845250886077354033059498087061961615052083445382573507667248931549211515198427828958077061875547958170876393230257920932379665852856906581514424757184585940891547498814210662551049578056745128436645738591258528675162703141252313376554556782220465951016212574054088538115206041049216010726724034788928499592437958694753346816545030621581521981954108798086635761491982811411285098790221298078585890007614851983007508031905099829381670364980738678563691743080314566731670516697080111109244605291404524293252608812696937906496578724654624324481130614042884748655993804446867811790706555653829124155187784815641606609757407664078869147634037249043572351597934260251962791658544265292236481190665372222208768845207004415538822756499642955277417055539410606218924812189827532220525277335055820297124261442000219806160848285932136449672842164807842472843239627753907176484689385905915336828956138238323536105205931532446840054235412090745614595291102126686946188924577366695562134939464808998888241162340323638734953612138990152766491775351204900875068222265440487520563876839383263637646593599747461508152097645165294667247255807035809955260557836848797967553359767437636465619163108661451780124068700228931419393959685110007019124693060834627906310405263053447292501640958484355747715395055810313841555810264286480220093704112922425172232684919608039660045877141275187102710117011589711474460575607289660598077011554486332531107428010637939032697513811612716807211846034154432374269090238083331153503602634141532434728015295887241068346575344885167939088083482592309676971627244878732991220374144497138059376419970210170157674268533589273281952770669145726645520782247409251045179587286577014023645851636479617202110931807040740165562975024441191665585246443793042968846514315168756978515050822257473652185629089553770592653575215727239030058192470401438585618566648874190261181149497717985152889177182021573792895055346889089856354474906156088224939695641883423166646169463589828368153641685260265964047920212477239417310528513697616298890775145940090735531650504877943061298560384840960491696099691944534117242944641267603142318104204738601715038912855244394930824885612268271403044863729937435237824884665973761642012850882297353825177576355993330331148627903929722116231449227655386262633154921134411917313775030518407773968864428853079650159427870564255131409375047079000865125114060123272741371936621021785499037352892831983095437634247310330978539026964035380125101378303115623613955344158622693705136210120322421162550608950619059667507228244066985532342020904650124407997093349200682320729098072740407388047592150453721583590014663287170114453737414177390276074036193784793588004247356853178552545525216512395374840957745800879288223500676813448489683970442734124927154151104093152633318761672540259309935748366828183244761607043655468333865900181480074728831824131770593156718273430870273494070129752294725690229296111323328147134820942213745098580193314680985065661539091504106903682845480226172943976663440636701445576085416421674995214361499280336955191604536701091200443152179807820762812900488758643033686248205861637715064514941944412032216777142444351129747544599241324613902474385301022861742610251229782834375156390475730234725025111671211751940134445286920272337316291111305098781547026182574756092359123872565449971780548899597821115475508224579519805829318591718192023138753032850617812413722310610114205436817497646882074039197988722081148267244720683433813658490956908013802616486375429137192431636585838888083126651588142851646008830463083654202169422186875640898000576655119093339785901001296981998537306654243282273053620760755901833313638432184708967280145949004391538280263202387075752847585836883883508376789371356688367206587102343964649694191384929356020492407260121920691831917234871354685518066272520795950903098518942316681621878758284894065704993870132702493517578012837205044419954880531438382401392515717759726589400885069486175066408437505782816837549323702325766748947776623493853845693352351125216811565202787563056426829895895656676331932585490813779532915595894846262817247906800709987275720418629793343595883909347165297647262265068737676117440883610580013305861233599629909938941498668336392415134310496782840294478298744585974209981297037839896468136362335669718634575123339620417285042576373869679615430134663575480240760370491831690638364292605182624186268968227755440577325958507874592241756411888272122479747117327310365031606638652249022773822253480472127189467667599981994542944352335560659725533908483287229131348836409598349044627340688732535902792150768914956269650331838463304808035939008653537184997779430960351285957283640577217340615195837235236822378138627812067413910322262701490362450414977654120298453950313166537764896680887873296722957496798638466163467571650399559700373919518205307196726610804783312910677385709828422930929623830601622646725034520771580096952476065375932673668246146074906864387053982049619537029428405935811563071775055772782605331306509770935977631459638239875583455116967194043854812090458141247557376729265163681443961490197067871832491964681742488109001288381630530550511818528454398874508864366633913529669916070900021467430997043736793407347493757391289370732241639147201481962538336445365900689044642327037347370456045587679614155515460588568874430234739140750624622855992330826380849868240932368199536754888182698409513176391761632929017063976339979457906089831524760580535692906610148812481018654686340278228615465963892377184617644724759344877578408075395829066939555700683106508928840474364208866008144371768862630869481522142854064897671520140564282687888854027209927676029623926337563520591723873741692812153803553430554109135527394793659055253109200191583848207440422010771894394181827989735810524437964743930303812911345681316301496516642430223931867553297326222526480812924379729063873983965213961077726708800774787721540841843762829525098552095677275431656889339328640268012398250715069740537724036546928548429833796401626435464032419864802960919715134326998021760888619056609809325245166015028882871489820551534208243583414255995473956211916520083194405875909351074992715715880484273536533886753113222156563824096245285135499755275765084814992441080261266558145328291949444207064837646714994566464465893240710120849699463277200628664174700078275344935899902403420161204627683991689282598801454889926473091585548792283425641640946492473542800388703691349663431653481691243983946475526092931870833962775445241746252069131773464784212868019344210176303103968715067408697954283971136785153372006092205059377632253575949019641163388673563504693751010426469437125482790280658601603866989975052903129569047340093382609459355361722689504862508064242577395381766375404472996875912533377048032714127569906687375500210708200102897797799577088252519519451343304366755952818763789367545426829447847820035003466054669063017622824594605032088969379028532383491474020088946727092405534791108876742719605748642974619629771661301401288762462337395878609000200606999614412885068840768824952294988388082124470244778272519431501130895092793406665343354668214650998073643432909980779743539708813612630798622143076134532265183803488502343671773955977264027234730308766952853147247556596719449610132863099411192953276806686478171834405834139861860072254573397263806305874430688905121371390566584718669276594004313415665909563081283404827487947601715520688254044265167141185345415677867718711553792450941662213802638024458820144827267389425020496902884177248447140127738260436199425247042048251102516105485099349764344831854561024599729162083299821466528373603040996645640892982431660627191931818975921211873794798345417693761947741430116833059629395006099853669356151918150065133651868780732144175725274642852176141676806011573573074283216921409938279971790666308434768267009706576531432588236698657184896231978287241602672433493292792105457482805566319500662584210596047998355545135927453330823850098129130028214713084175374457381220858638703350371467381332986422810567008251847818941691011498475263316156322597674747711260265300529904035947537105152792532887509227274548121374036374827257249142222262256639805264365079204154915618814325717530920825933500515808029530737682618923967901101452323639023745571457602423218077631888189554162780627493444532371311394345037998255304896078082979639234664673429972664943115201996735291141785092048305020985564315671779749451639842099105015095480835758924402363991316074842864773114999357775144032915328115572016911336490431939442741175988268830773980677911079631983886099371544286288924123026512603666305475848564132060624910362892807068255100694729538006207857781016881516691274778918388071288438944190069476174191141230551590458159116912687509821451117756924094484492316760639041557198335799337329875306643214318924185205693138210468160273071461426861696454447048722090012257607429549489249917825182523309051205141398385934473215845679626808477163268819748524542191203876780837932045722846317275149431959212153410434485216463503496532926861117544409297726411044689171018518495940045844236220152627207408258970243258406741548142645550401049089040960471050578918992455514895743710461836221053583129758526897294346292694325213849619805330502438964144437287882357398679762098644173798694801507730039565920378378068277898388152461553892344822741771681467564147239661041520911050989017041226301311428209405574774662280242572856660694678844249771602192557864357498360214235608254970926081044981002814367534371930870576412967833219771127656467807200421978272190550878630794871336351657635525172232944683012820592132128488097474047359184887949487344842639516918114119127288818283328189346247705110624426954979889459449031713963459341597266401256472391443580747408295111078857857111556124830046367274234575117080794651801555498695105358501692955686477934816909557821993177683910322340512357689232107560577133698732472713982552585876296072127362376503931596374447395479722019882390698835933728835175288725376701787152619435886364693883564204333476053541246814700566531367273559949259372678108142345273922773318485855228871418567384975571370383615092086469584204218840471939446668368287203909461413362918098983308228676176239204139846142511287423610830786584436957776145464625005129103620070380976100483382654554187045770910462589829411825407702260604368075022977366170244974670286429489771460790106205014680397038875530412799620908517991128255384376745132502364472996726767849594429612527117492914347760216921909536987829047616453898478448916639400274924011465306949706652416074217530929274312873085926388705668234301111196650706581900672035332904582742069168228404525810601255233727453041046151966897886676212507686312172454187021322298963876277425252809560923066815328559076289198568995860672314049304584704420014149703637879602013810391329937096293062613650625006929888744949389502628821755583587026294706255940951127894221193989535043102216106480512409544335868053830737054211739109383333596063740057631256620934532187681849300755027407093909751436474876506880886623301285078440473293021205617492638047222897242438437895554096872441390036839784695790825463570299236516014799139354703528710751971265079863036187422708754299043692842252147869807881334660428837458531260635087112211776805843961019191697048057959864996301804401874031658122709001814063189286815584978159089463013747371814415607151104459758204405524373146865348321949016116650518933605569126461454995809658782617258350032552978964755737524052077522026497356425304334184049538662790729790520133592211240119687134720326712948138362007191579654656774503807623269472301832519761834078236077855890952888341276864149034153773539281285623069688269085482091367250191470998732177807338727149701962039379835595339425614387724306057633440089633653793598015498025439431486214274589525843502233354803925651453216125530055622777345066215287643218797889888561848507108152724323681383943913189088948256201914730132959508224693059309779850333679545712238432673441765167588293648430628632507510306631103406581066556355998233170858721561469167676285891279412245487839258307100838107093825233707644083787826084617131475840661481346448024068932634880723261709295130873058181416433283961895251798168856606906556759865825343212435521965487860475731635619485309922518348068782804740195088841723620956004914789961762139978319902328410463570692800216051627442565830923317193814225729148684239738247551159844626726402272977986895688711824968382118277936147858156470955434636902843717950912134803126502602627616337932138682511194054758442836111745767480872737853713760080193871772354708340005360433336423596785954130255725272982631695754590395594228955111118673253156983550786352039118828767241344686931228522530263378503070747668470406222888837843959541038459109885744292793690725866973112262234373459245095574622218532464722435413455899129090694804201043944868451393537473788987518773948989505711837107927612079726872482072769645859282245417827091099685208861344628775147913596522035974671628200315115834870521586046166385443223310492973101500877203888257098205593728592883132468358566867165472587967224904169354010862234916108723025130921509755948495540867920150767838605684203410563843838657897550717096723198525072469288262569318949464348049699561838048243358059431805752300582406617534351926277973130685311862024043240174346946057641129028634919292173217600332755235656798979630120522252323923056419874400921541449558975614034026313388821622491908792214677164653751554658399024120950101721457908826093088380495259891617034030425494797083800097096183164037697831187627684706574037336618067951135007623024821432021776321131067845684884947014107955820764978571051519845471031400288746232996891985330621678842799126764493014132549223450224109519014769923906893001033471158309393622797384256126316228474270701445475204059869239581654729559596336927128929367394806966161309487953033148693064352157981443132217818614951073049990576602431259555762567592970718225534714738717928033099467796583554197956381981388008840772445074422032212134320816444324632730444765039142094907200889741955571528405651107442212915872246783812290712325703003356707745963242559410549927700960803053680707968031674535769115276564808964880015002258159116377192097403501523447260826358726805971954066835874093694708576912612808373931307728387179737842605681338074395083416565311873145683695288779131400077770052668634015652716014158234187472043646751434350483305609611136156454200417744289153552855624885231597509961040117445283775310233115216888005497063051696714757765998000344449489396896933669535530444888258362329128785515546194691395425636362455459829608964273014613340177783237448534727107927994573805139025984720925020374667771205762112079009164169393994803211081957747316369237369210085480538461276894066161286334171036575373274800444218322489859573537698449592061584795421238965527579669323063264751411559818507941265987597090617514733674384150034664541047481486699345219579664757196767901884917489704815248880399044276519995951287358927649279775513446830626362642893481901694809468027873235069990804251812529189465187547433387305651933278360565050140356841970386567095010605563585420781698012440611361124008463107791790711368300255785350845930634403034974348779087145772023784307908796035837378028274506468650931815694116357231570782357289198457300964349616868456103452878208424850419493464655992485361353698887667945826357516276650818043805076796960475240623516860873652422918429495463647749286761356720342565703376960836613210034954976468835261197654403743180941446253150765087260205218361681437224324988658078100889329983278324633699148089019321900119652208320553026228955933650918769707957580298938802698369365688104149783298026624026474127084106993777427240433268793843009610215303252746816972188679791459867301895323792855480129475506862451064849824265408720768807419931417061020741923596172807957328924245555002473018739827856205848937829984052460323194181174979424473732678028442085872475612859293527278082329458421350017006517767933623323593975196643041405981710999001568646747979265348059569177889257631584974299797801959245661831142300405196966066973175355089840123088009042404872726065073440203254300087918070146557604738464834049367805077117472997646944325683989844015546175791170445786016385667138219465023577353638574828616841657227391262249847063015936623458313811469897349789982637444465582054672282686341487696453748578133742578853545387045820207466659732754113395463891740738101664040112612370247824203018920437980285627829139732031784419466882859553367442602630608690735170800667609182929343781714815674096478098889562870410464021119657609974787859941378678469500582744460394932210542844387523131185196086685514212812584591534491693971329718356859773616155968321945598254386387906910346712043926424786975554893820741067744125546724091812239848833188749143210808243582555290413729215486616198495137394970720610913317450734941878894834675435992120229853864598914467610339934058300450008427445569672445694660841236180813977511557024907997339535077386166693647983731516889908810434231420706488172011435421287192693458626974065780206302658861038383852488660195552082905396105905111123586042988673400974602220418482057235480336118225370667271624667523611611294951668793260933156071843800085991779240692422170531713837568878356934954659272948552136080323471229590405626839553086030407827393766306586695333554574503727287255689248029869953648665643100696109041830854502648806636281508840240464691682303471161675673633343812617724893057815103099914720623646819358430791763795311896876286277970505059426927271510000639564267653563420121169888599653644424483921658172155827406634614885880941448442385433524671227290029955586450973562045421216529215605245900554135108095390093528092739707608684516652068561396594763252866798239159090884740754715895038268124110584046351862946881295766948695324224435928434447628490567797516782180479755703268695089828104050764896995569604939381551402072568559057331155968693160648090332744791371134030592808608970010030627331028539624291991027033565754370386733142994512740728604782671073330629593818700005964568804925709592476779702902608156460683624118952068451777887045915841444294741648912585987745970204702525147180025371859973694369471675490928010895472434820469013464298288894837848608481059587206663517412549881771412049612995848146094196326756028027582883289644948660751419152430631402572810095869096079516104844715612957650443255413328610579774922599422472842532012121192535355506836824624530632926940770439110846441199568309415670406105698503520075022899786563718884291124701163835368273793996334664276848763569025663231308923323025379963664878654198890964348814460888054220607967147992328589004429497185846725124330531620332057658204487731797266712121913779126947847998070683100275366713016546122100303019434385051759972850906190489912008517454347096351933497517550608217945810685877722127850892627032821312828310567536491890484841160359921111114177221619697193466814723925662650230060918694491633456530668393180633209424766121793368078977970046759108194010656305906671120885806893836526180159224408184001776742350380249841127590867137575421395260867557607975580265658569413841271558593221486463636774698291127768560039727174860006933882240713599764675944214592448170187872061051508699719340007288398255221203646926677903430529883266959051209390200257086781670578305165201486943678728478377794707175344681021766476511451954820319666528669322070056033021491256058529098896548936592377096220944173644344914327341271129457265408931180596701157229048137136005980008852160217846340725016924683430585723657938804543833273918080685025976372813266690978288867244165767560366809524121925962540763976881038350141654093978481297511080731090088017833744090546795910724868686543006544421428854214920136833641582213129336464367745649821882085976159431822173373190186364533315351776666781701421852312292061236051867499933098356638386412406845111564915657243265217715592556927201029951641434027525766876157073143504721300244723052815114036752455597245189950974164243454762875066206289200212842217355423569623150834236171653233818527682909844919134250669090359882707066058062268768525494568749528628749627485095762658689663158990427579841392204917585362165077202578712840327216778541788848997662959493413325156392514629910593826007628166893781287807180812103541002953958677578456833573074109890574707745049729681432899636196674375999457909637927161278188820641228357242236337549846733537516881456275322991929214304956173739638362280933499544996548273112964951946928986844434325151134559348521077624461834692753876982501605282865385427421274277939565236478668195795083633316917362028691776850677489126096990002551766337650121849348260770398871556704049031964330623617638810934336160095396392686625584126127944124196503324431529254132877891376643503000121133667574922915805686721632914232855252671923238289497528895529046918970205032232065097252381108055523694410796911180167695346511139847205899856092365012130867519930022381017887381689146175345230348479845965569521386834521925517216368153549519291725655697570626165176545724872862802437922624261073343703197405456984880361537669946728917025934173699975342879786624028616324268662087694811028192607904967707606513955555253078998405777589091238403445641897303674326217658265815896200020529127328478095029113619634790521647614656224944673658171775243506580079092290647320666426321907741535558262153521738016374860816778525637697513197971147469770784521267388294546217311660242386579018468807691345001737219619067338465569407426892787354384246782983686053032046579860146059434749415139667597095763416365892790936665521744295996782448203984867003580033766813826630100475688089716578081180205983826712606159309422269766435366402067165486297534086220539403158910113650763390709906802891314291635982290599900159851836371265130596383098668238440362090024744924419013190496095238361823844818469390315412876339678250847724162454131746148149087722389891439442996416885390232952368394203422284396029232493043394368725145089204822951801957857353382587284309650127162619648889742776792341601883739479226445753035959499286114491911862647854779403879334315626419775803543883492466843001119142674807499576156823335872275882895317973307694961206117085833087126397580959356275761224555448960892670488066960037343559825905825698882650575061540809664543801538025250429643262563656742575106559024922571203580631623361212166084884818398677653798614861861259661526717084062524667732857889318529146919399625466707826489324356699123580072827530083676800093467153015901155257721758529766544479449873358691446533040348460568367571086854268224052310332130701003159791446947162689472864306952264546031959734605887629764090543984535721036930057618065545618928294556055302589869979485474433010912819325460694099407507129744161813598080686929588093667572942508571359626950367896595487346731981258293744589866115675625942939881009548455266689658498992249349179197912137869365937308133294934742386415750202733690102360934682705030272158671794739842346256288191574165800892915204677803249469281816715109793367318380332149573266785264286885243579375473685241787562101993845799105809960642594502277479500691016245632539947212895291439681972694339555755400500653696839460733384524185672630880556123131054828083747384817111288217717145258582707958844320288955964982661010605759895452656486151943505754317486801429614209612123445253636227333102835338118961616489829077074715446364228748234017560001681561016684937017994701741602273483382525646140584430783057867438966208264057262502914458401101183292010132797792480785838694094651811387501940571135686414380166195864670821607311131925643275777562262846430379433463798152555867668362485853964912526455601143825518676430868980090648374071747497431966113944514527846054835148382865235060544438672339057657515356695825433494235813236486608119111031456244491955133529695193158105946243112938172471272809363661855699123161847189787446353759229319312319496917302161532996872736444760901535524269819143429759394237358046509212973208751766035713289876931059165054956234959863339134730294706264175091971492326338418452356088846577497279472824839971648540456762180143514011696780098155203283770474065158910573619484201299186159153623319866781605326253023843649896156236714519288246531757159848815856098843699404817446951580221941736735785961999703102894965092734521147013107778293614259759200029948627257168247170141779738470838178649636456785576413201991486728986590402863768189925544465031786928570109418933543088619459522059493498916532579380831223866104971625988342541044560197090458325745746396390179157299184238294556279041046299220251258902894545315953532450939461180671735427431058716395263144068311707454324455251195141507162885621718109351015459078165834125470200817975950801251164115653001360433463205794105660289581932634842929665806932271368352459070266002272979290306547055609695742578333542333656282644813319750158881498410473450856898437356554226694388653470411993907595261158689551443148063470276323276585936262197333235673808849767336220451019794537109718294895374065078725842803596536140574966684573476663807781015149210607156810029601865681120292654433290732415694096640118663268342228364878133896006358841497479728048603883076924615473498580365862765520555324872800333752853343035000401627423760846622737674955485191876661896520695204805347849461410361655194604716245946792524497229082430054270134238710176038120033295804050715707509034172513886420440068273477900658976765159230336107206510335058057710131898208111526432369845784528570011112478499768232059591130203329655683989990415876212951037255652758899036110835857218185338071702214921273899361832811838025683121100217106808801748569221269025939131207430586386858003822090525881582018958007592466812967372860574082681773419324714612925702934726144840207690484739410811874195237564387521084997223249035609667571043398957110128437233887774661822588691487461384178673057710354649573276205433244615108248537067507275618204604091915806488883284770836900451246619208141797936059091772579242986909889541490628313691996346876258755713090804065723613138776004272229932866767527354016530594592878227403527788952899122428738050174364555701428821411983584737118607900488639603591267301816658810085948132146377551594936334546840335145245637880606753646967462426354984518101757076355484705392386992920197648930340244390933568046511990797248855800990589727048388633955961802283358736879089043661060729497965907132753367132215744614325696821468280424818798618703789972235538181305726147894211686091212332518592319519449535394216101397062490602980898868048687955144323675103273751805476029223746587770173968356906601745154410028614427310218933611132008498046421998871466232627873095992812527121150124600341490173645892218378282531467824999815212996400820131636908391291849480756214287399897405535621288415978620044056854977729328858068126495734384649103580438237728875081377665059476467836417550843437124746502428906769336101263285644137495181743057044228544928394493552614409853163924533243965267066247970109619001992631248628819477662667869629485509071423772377049377884015208740547601849566626468991068921296306068272635937579435112997733504438701618227209193141961846306836718764451588589521190950953238855496185154105365321984860873463600422506735516349524331250910400066177709473626112046556339735919701002303555476148148223020302873645289821622518670337932526640788194468128362922276059950990489030645014368448799782329232083710084030301486398150184371759757184028586814154540594578093687107913988228518146803593599122642369535428843649854553909237156099099561905183594121142216160554363674562157784245733178916302749609659959742311175365934022805602278143119678181170109848587455674794552342408106285901506664083337165963204273309961338566489596147668278259369214263254457003801637629193663400950758539864983959860545458714350834846542671232827192799591655904151420981922208390730465623074465275168645754015820086486384075039859412295767260125223243592090657430126792593711855665511386023993112644599267735441544239185367469828235674585603093569470804068010359678929310546098792566407240427288275227195777385800274009046501676776328397608749104633115646304191709691279960838755957085384964844941764946528541965277741313931564079570743118486372490062210746148771320837412418601686014207182716797154968404508181776573668506926948455199416034830128367803977231367216306534264604330746959260462604149784967890176360712252635951419637215885487227175291818206224234397885353575457481282536392129135161710985573641337150071258819722718921058080369134650719120492689490178597202471138613215203904164427997005088920236553592108089187007746383450469202001406748518521275128946912076321150828922239713583955687906706528670110237603891397482728478766847521694750018152687171375432834201491323274997767308659001476304276243645742010520360207982287897761788697573868314566644512110233566135858891845061376121258383071869163507864455387058572559259658023990411423702631493226979630677618623188335743494778452383534249452328397049640006585990460462885380035039242540414925576072902542309460831938060809820293529188786588074772978074287243345298758100253551838284067740541697388277754660866026165147104866621280887493552619287016376521627294258285332669655815266772479306371500358427069659374180500369922515297272857587205823675216603002721668035996666241886029891137516842608058930093286839724648967272078318764038551389117436498624689734078497378491282443028453966855830843285300457277033128654238089549227855877468359754994980506611375979340876616527514476017686699202816044828994054926720723800882107547642361183414525316371883840271305015497013880786764223294891533993541153895962871438184302263766780821887058721246068509452461307429828044765971758540759703307556978586923353446871929086087241142557647416279282743646725880110732540143013244985994473308730938677085367052940539084306343605667077120560167115860228045413123907022361631807414315603964469159852216524993006184656098274519664229270373947295569800967331397752547774122856293618660675261188975512580771645866016551279092594953097613762499911414638661721260588629327481647535193767801307394206409020386870140349371375999873852579776279590396282302809261086768897718842278080662219989057108811211325711478290904418284212141284613246443738209299558864910199597449874504273918781886621054886256157711614569341415061194853092579733720919574479802700610191745345015879397688559026409695090322236047819001236605200932871078753126910493455713101558313909379203993337645622169230032930538885872720905361183380418376867234370501048048919091648956885448118496051262237390042811904990494892069584427883420909020611485521840137855213397009887408770006139284039215124886212103969854437037303756792354824611405951000488719868419338176708560706783967698162203776890144731181633765024723858768247539021806467911885122626011259632103466950341342040995221621747042461482999891700029363030002553401495015367864446487990102690786145811211616797587572766435983441684883649521899202652977633342353704267142459043776975006803027512990218096821896239975893576971071381503821771805377895020431558602061673836362912583324812229117816280847614692210463269444510730083115352586002050291059020991030165939056083603454731211635851117026015665058206519170640997180538677176990241063987871340954150144835310442682903139236676236025194684542156935912651931516143920056383794931092162353715341745933167971486066310388592707980594709423526920114891905344486302221813632910516704230514658769582786454821520431382113583157417304928086557227406441860848485403847600297006295446487435499942111104736963706288740103283808023044741963765479469015231748684150985197227529665931114624360340878770233550174487949150489678570421923367179862328171097909072012655774114413762783505065599998787643563057385450680206016252121413978029303021387224227241749382773260907728501754130981088572994470444450898504513518786429201664376380176297703391182841581702883689426395863336662034400248494500091324853540470786194915606322527406042071513735182381410799589657082869339989213032668701432816345323186138680864374571488662537244180208710944082119203004104095950053021870212979936854507676118572307882133087104423975777765466731839347374353755479544990187184773227882035415416552187648627717227558191350974603055990765540549446482329276386350528480416125607021151274722780384774113579479140660330709060107100605855984089861846578897487941953250821154190033947060149773163787019860167653161240721054409227504499449377482123470896058648185992974086973268319692857516897466267286485263814337903350040486522405805461246357064153324841646389657024538442420633380975007214723594789112411490153051434311134700164822075144532542891886644080041106698867689627964888624750218441250377396265244366847877062550550725112919873430270158139396430162668987097677351923686607064625957294662231497183519536428350682966324859172443294083225353307211213714877856858319634580084582099892140633546892869333078713824747744880546827773799268340925400706808042635990559796601222791197111289332054165976437731664182031908450891187336042473684880521893225858568323891511369728992370525834210150518698709544454042835687877420565890133976214493961360939160094963439525954250044564718591816286744937663002250401047426479770188866410214622265699057422775775975993404505720859681106036132646103991876793509705339872635429668524878468760472124853637770825783389129674709518107473046662733297597426846836436348515754942044608229861221412669337272940953017465470698068840917174857605685064299365547408062005432668400594651117694898396890817110321037518744466391214227746307839742237557845680632446138959271773327035783435162671372415688887316628563731578900792121660565359111012429297540199228417357398620918203943710562491571891831652984171989531121775474141138368400609121087792379011247171368948696125147327891591334390580492217799335827724475659935179627937837320094098840196146484321261062197615759481663802197736584427380310101361936812626484018697732771545452523168447690181552226362342086664164876787614877703345330316185272067218244010471920382569137262407419321200875637768185121988206247060654529511603611327546331637469545518380241630039159204115823489055865683244260834661361263855744254078195702959115303314946090826753615702794806405434798644946720303840143765024942862069355142482874783835744948543745095962271063988892499143853767408091613271380240518247903090709548061702829924653619120204722540946493945710994415779984809717219943390091992610948703993706054224001075888939160802255927300996547611428102057823872872198706395615328635354045958062410258987179623570278231964413247768487883951748502163318708469625717958026902308421278325363448848172357711050733074343032721922328296838474363524773067687819910014642055118523465082553162113805284253722793534441699725910672377251681744703864949369146093805233727297031760330037872731540355245734376721332646700709026594774438710272430889745311953771776740539248063630821258712713532303157658394268494402755136402939391582599052163631331846725670925835578607621814331787592166781001125142818679480645009305333198245574720780475471024773257147095265279784160200600533380694777837223576359578495023518036104240520327831945985762424966119187355404834352548131432589578668481220392343648336814124778892385739214166824875112025902580068641343428785398135645774418065032768252692515700557674329462583856482475968800974925609565412715383486739239033657378860813258412122591723003214269858948972893888681831645046721554121580307940985322774163401717061762606475427625391732419757480847849321476620126235545399214040497140051892038222884149416366284311912525510974306913159164906248618874498356753379681139418342268898052278472189566457072495362462022075643666864680100277243661604696279949622888509700025546392654884430289050030313707606609675484431455419486848868505417447451429434942216693228344618723962317042065882643627068751735273587814232682435149264361833328827558807148927460887660666235499062885625740160544045103858310675741585711535580388399791980784533464107227048947452809204205174892172959598423695218989933914158926223214545393493999883995933718798137266510574912984106571172828520333888238922977424670632859319278264937989527181962090974618820902895585201305947201603045807669184332491996728643273462039518156446709668965625438661851301196152240314791521104312936567352789454015272167227990593289305092830225106425158195672812517888540361726521933656141959927446563929865449043189234706462061448474167760264873719379127468206480198602672595150593226919652388529354903123145757726304160090218471248680627810362660165230854674031113851396227648824620283960359487134654295216132008286650087464741144277689647113339213356163645773257517346608469735013558129738145850350312856037713064931545240522926599117163637652395920587279965249620138791187809808683858216571909791818580726205342628083313981889135842623454897709158330668315224727873182792949641466051837183242957826848795337397934928565986824919466063799091783275194546586276134071254107964591381989612872163716404415895831475727161939681468292125635615515600020109182322668857603073693228604377364923763407828470252028861252374693012372206392427189747688379817786208025585811852749610397440544538819852742660537717127907962221917776719439635160880107116971936984334575856216011335562389839824035853085721678815813402352021689133308965257164391596777443305899489041747004008697674715521029181652092473676280096105406611353455810025498037382040340842149614482705230734512933652874669256216749251632093825164323958168687739882992002197236415964819588496566477744192967572718395049430368160332642841670761885651033425902650951628121973938872448218358184332598724688851613155423186575068412598787347897202852928116422319458818453943849847743479912105052493247784843219909885139672877639961637584245997729379011439208440628103608625298752348275848833641751676778932675423428917498751962318047160845072843596745989532603883666066268595916041617435195539036811270445421711576999814849432218284945927214577009890470385604484959217457440460712440510243763393342196252325274436499064220976637653844245989466895391074803853658757018333399747855741752596277876849400862297929537390546077524938432804942752096517363673440029264804188991719388820685787130949623097468037046157218182455540882058524956278603586660589769319265673785824266459833463617110026223308039507981058192979724356015080883169735312675730177376637315755947027512132477193818860583722384233791425383630173126111526686407642706587116923509600409692157736557923367621350567142906021250664406409051272598323218458743900766679050780092086358634695519007066596502754121212453771987430730081351660774447237498711375247277994348965769798476568537244426565507751787978950489610516878744625773772181625856756267284946806418767711360226511695506407562639368549514637717909252920210641668947847363257075554069116621658551782739119480936377276615623987961933565212149505037589598715175194572387876609234303723994394498561559942091442032317780809058050368680852162539225781401330455769003767114018552042058288389350567007509234588198905361716374258914984298932973423861858724047745938223612599888178384860670642042017277876809781069487813842934004935519486920238490947556031962863368232828694321160034567681301202945534154422026094036909126435297235129558980892209759250354177011513569601278557312969696433759554039716402217212168063794253979873516365723082436366664888633007946413027301906156165402548469459846099510231402636389637626567798476948254152855105529487320472745020832206881218283682346543373059777378706374870379029403271781529454560605671395708666444491993285498516628641008305385901007798606807357022002403593023948899086598058871991976276391524094918249311390534717927635686548110257032793452418805055258369101458609511303753728191972391753189163301313931293143731202687910356033850332772116223670230556863949624110065328092967303725912581859773542854821729931782143789335318696624288041480537103360105561553516215027689504887851778310900311366042417366045274147001983531620864855519650195873422797786349737266791310357184452030799732550552132431809509516921272847983237422060743609381396680356732114062612802163173197562506425457920062359774264271405528099748214956767680661710581194346603384336634250981941708526328774393505279729857817157215843510711987944304422771802056889648291375483862803805609370764253299718839002143753425348460868566737089338689222409981370078087504539826746952500905719089075199280434762163473720958144661904454748776622023017586079559093993545621065354072046757750592934380215877046974539710888633290078708487523764515871097371678312432692844880833518905805823640630244387773675838631270189702728990528469832307427246677944186980280023667307212790233916290055605458210797197912417168340464096003634377543414264729267393017690203639583098700541695208892078211818797839426771000733412030995179804994012216946972797348882293236784204433406615683337086886992371073810091214052107294895521243262162318899264842951992729120107338053968938997632131482089220523625061667588698720802998755933680769656776448206125847828335798011615277826777778940237152448987923693704712598029040510848432831664490948447701822436027405518559566168749955177441113464208583251168376547925687637841935011852344609127692408917341454491269798294009456549850960690889324967774539408475192236233565609075689610233382258421420419172552602160095039509575191538950114794640287865311507938441032857234889047027996004004193920722457072945426386641146209759513014327056681545015506830896869366206800614553566129504321610049348670958256196008528010327112900774754216678651569602665174143696053095368808988491605627130734886894691619923588991776676978102688422038236951203390596759829446347294681742090002328774693177213346976070587566120675094852579783085374160433148428006638635797273801890867652764984049480714726295190198716914158978112293248304421132097278230687955131284177216383026435513884891284790197205546576895147065432101913337442226774827289830976049333688766941000897382829030956647767157913536829085512270041002607201885276306915401144279675950081420054663379204753823940637796764488213388380773083916055398793926232523695688402592561327404979088001255910405369110586544760959907480390467331477648383108519943936519750219278920279845662876691172071823120761952350868024800085057042748307599523634383484530085054297495661994866072709993387011027484155117340724486213572091838763847303599437851266334627277967357953989380307499820906141058752943391482352862435738795594133613359341391332846296481130801127218073291783667728908366145430517282019713756316524428029921798690192530312978821266584955258949026551439446006301277255962334439291523920868224040476453676943574420547958053075507482668982037451737944882831863136038293305676995765874084322373504294463627631083803758387883295629067345322937607254916105302721910642088715432609467812250523749928346274671836347404800604889568080733575713947953918652166211165396049680728281680604064933062529323032148585070449782292393159334261385128983009493128282854945068441825643001059988161196103945486268855388541481577566266719672550156017680714768510387436531265035507361597834032419310740890647472345684375841764196521546213573978956364131430578321606295187844820701627183321187317905032824853242221965016055170489163676623333914951639623851553797773740697633299945091013452592787987321447988322195342413906011826441967847343427377904031493352104291335405092177296924870721758824972666245155127327948195929864260773432507736539491491299283520851360673372591005402428281132994785055872527100684644724456263495555281282021308443216246652891519149955472556838430466957906169874561076308430378583395369991240406347038177179597169537938102339674741838336833641313920530619726325471309183188288966601041693260506014039237561228730215714359939679738313182325394786640710440313512749221657000724652683120092711755768757349171844785756936907823443312377238292025469134049509622782659253838396875695795675451163183390829950251786817222254975157164609360149768468541778590032404326461260368739614903623552009227998185089035230008904845754750428009181058728421322421764581064903987800336952009022817222426360944663395830558341852005611645298328917077168574980141539822094288916732659018922567632376642651561923824430704555657070345403443063067673714252415214166477349860216308472813298475877913735963639210904769975545186234472628756839099603779626870359574331374912816546267962611441016744293770010840188543079250358552712524967625102508119212542435750876635173963835159152223709096170784286363183908766640913036318147675901139292791030381033875812395318498043557857912754504648061751569812433902312907397981845472803364792676658532853039966204888499779702591378762070330732388058844351750555200785393632781804608147838594847854728679855477772125629875090823315161000205875442788156420470403443710561309411474024778332218995600447167482602390879901484377093791109960238277112042235103770297653223008504006801053878168606141916085263085991077001866417160424485751796739062477772570544572390211661649379514703586268205170496273442873891730594439207420079818896449836854511533165570036209962656328604065294178877509725772392314172164576878397461269782803730423360631318649539130527284755689356348289992511519255756490851358831070826013208638295194027340451094116659358247428521676570908556889353920355935994098781333275548885826518984149810991126295070368085419310924760307809518200169446647430831205104159067837951394901694694011945144900077381590935108181763875185125195782477962379836307217776668697730323300836376418262081008303349179351282261552306256223012912215210150430810136993005660757079689846885957122300278517105633649114639452927270298425830361987074860187922562645193518471209336485409625434458181276317664405274461212480244443283705808212576119912597161049620784223622753147446450933556309694566303280833528353645004965328345622188832106675189999969025997428525930426282556822804434783171586317883211452263602147450147259563979808191184656914450081760610206364060694929994889206332719051554731332270359358279442058091027654763390274017578460362591141073199965359065048115505444648028629051558292973856039517320385565983732742803731761654612754057842180967135726994689749779953253200688011296868786081904959872221834753765133743101078781740835116709285741259595516568268549275636071598434828407088177635002644300922736055776128060211164969737626591407834351786185453822281301040591066175498189736339604945439258191215895136546239106620662508855857191533346284150326186187797993046483603206755507514736232095629551469572416960755226642688287652470318962143277436428018387306298145603397392833082470319169543380700177485020850149274631698679485058004820633378613522057744058549642384462711124717488026462581834297011723462320985453553303360712696098791314490697070249353489644491253136079365002913347985278308598941597043680018691481696084423131119165722619524804655393719260683085467659226884835498631345990013880573880245303924999509461756956064523336247683576207979686848994970493935276018937581615729893191359674161958511601559246624589189664985555926487604591561824921817398665150271368814611402622121795703235524589855762274045165395346299744455701078191590878939299684323616101450411643361773176374008591223207286444759343119474302929895063227041279909649922356317361144238871097786322366095676251409054936929370834500239994735931775863548263746686445863150548447141857174494976927823139734997893464566327683045544318255830178604204150416269379317539685187526988829255104166235420486839931743971885260197965010531595835031847003473823978975799867012134976344215405339672345920393898715449710837924486817034342264275219045795871520639320832772503525364068793227842641649439503791021485369978317652950610124590032674389953167316996030199897060389311851546461894514874926071532526887862587465319684621837675470799870175638038602816053528579076520040868601697220594300887156595911499079111355468943053147687242673222225070786844092477297325790727165195363506567419876389392415271827517883160510556190269184789643449985636637588109994755208909253678556747087223155831330785911508057254513394009709001792346595724479745530771361837265150819469404425226809585140930643593793769996842907298859550583829530583872679574722199793490914978375954653780266562243189823885531083671431997804813061451999866011085013224184151707417901632171667487344701960413871864688983494659145597799826632835966499209065639501472064140608456869533714016004061191628156260197446387861030223422539400639936144916059999481489106740826472116138396298126800854030217401527732380856772096566726475794396734974145796328939340341906550669203070707351502181654810282704142815748172200150420985869505002702868069516266063516714233575522087835436163626835042050451259780166033948010393282179039287581015664634099343047999881280360766705096417096478348043517252561377421423202494622684583361671588550613862794446422395645207151277650831971875051351712247288260395175503325389312285377808299328875556824070526780273619379443829567998851597235989458232281072743693870095529250697726802134752507316191481253371447080206775235590753624741283321155706323655059655088045270497572996131915538821037126815572800581467008557470410127010565232041186380612247600355336902127029208994788853062814604886995911270364890646491729770447809239255475255576400088950831408792278182847268588824991946467408624015004702940420081617482335615023024278270233329306315352202630219380179897367133213000711502533740845562546684472408576387714865360169551290084981739973336780224934902511581878013279058913002555332402331706831833152802788536397923075875530233320936228301638220823471691297035811687321927890996737278594638200471605826123653092699013603875614651177961915072568274553803314697146164860289566626042107638192508492999508963986520961112611351518241176280102612959808071051021586944288604457647180822485724510844577898826032578865098263353652496186008568811135493130160776596163277436238785190197585053003208447943580593034510444879754270256576997246114783240121423835995726032992421122884905939869525427249986803492632949781826732576845455018627954517390164432301790694477213962946132940814225864031740102814636001186867635656529889817412893234858781551354445280236179300861831045861794697031815710010018032481095416296668881812703479640672484931226501469960890357750649696861944046159180255056483810324671236248064474027470833938646161619189854148349280631161147540828190737934461811693299795922855221039390824313573445074040030564541903515681326587739257194404631850725756750041627985208889659329987433104119180159468527040263015399612008580757979288292842550800904023872261519273887077743838919919354728688382414849685910338927629755427135312148028656838087792396557364000728511283458665562690368677644845993835613235749510180503578413691861208952000917978467718327438378249953350977804910311641446479844679091370047199180078397099058575214811697805763203099712588706412476645303732317971705639374839613714920406273628720372177954552958881601607712587303525632558410529402647596540046625732932226232900720846486887550527248750874206125169596314949051353647204705570872490767095430202615664222256360411623285930855934373147212980978846585562995255133987753563942844053139173715542494835366825845369665983276481133298291871333457186007606686022686628370540566738439925465024329869652270659073347673493184437899403053583789634747568893807397159662851027051411579456677826787328945434355171381044383149909345681077049111974602446243995407364853302193438074177729266593564243042278878293287257263348125940430205155939306004937332943346185264047578395300498313029348231336081954931957880511445975068374767907698841994220616988223771808116173387418325452343825618630093906393361924812968108223118435772053149771366779866702115379373181703450074427945317374817625065609593600962540018572433461001349949196767243251173352346001978270779353133316263540704528620006696259315731140900810030840797194611741761162886733447887731793397172865741183569254142324377308160197045672203675692677024199980171662825799182498983764489134229538519119913698582197055381112835443275328526037320521637138692074003896666471502506692049518648754607861927453477402240340107356973550550103863316326022593223956762215320483066834586309167195367514459201253386859526808824486259356646516228243805018459385032143028979052414865693996535578797286431857656486568546441738780254527684264526290923306222675472613015575922526115865473357133447142166139470906379610070921997525914403310138524668708784438592521376485706790758189384268662733026138042248673782148265927733286053550306199516520631848756009880701826376138804334461457236454785000146323391213972068140744964074970664963748962292027472548456531034759869378281648590554875882632227515162095894021282266210991682743355924571058199384148793585501494048190789139475198744238051227586334916507891544766959066153188159140468317155456445291919146356810793858967628215328543907977572411669187032776942961421516917720005924258537122696442805587897522193667119693215103719278562240507508702692473388392367749954442891666897873999308670314988871483517950264525142440314117935066415016322852472990244911662956683914589141054938150105032911905884259487439950718535537556247700608055638467398307525310529165327557571532881051250212893468816628170593260282537307236436581648061069814271738656264163891048016639999305839526468915246241264297297345594479615739437924044692780119729255083637061038501038721288852988085024174317941607240915983475404662022392368231865210424798531860857469417142064163284241883157183384274896695272482450648739930333895756238131376365982057767166865867849514727605699893750335816210702391949027934475462411948061588110370291084060539954501466396136321794562876943065186014952700489792351738763334028430108390957467207270810436264391964735966672335653285531326295853254081023142076240197501515876051522134763402516718336658123517739148244100976769806554661663708864376579625890755550550645292030734736408996159907159876808995323566201526947873349080186757040750359550429126094371915175830826871706628187537706571290722620272061780373140103098747610839781042109049689208605025230556693504703127529269166278345439323656163954780289692782668348955842089870134869861164340361667125772538551619866746032516352506292049061565242742662965791453858916115286329061719158090464923534285644084261061725525704054608463997958025975698768063861178287576424954331375976109153433080876174529549835467860015156607799672154174564191758883173921427370408389223572926610704060733236152489775375179579542390929389450620749559110299644829796596607368797550931804448393043254568862378065018199103634830805887315888485579132890221069612837030833621413658824908114347290632551797141691708703366637434632159264130512128985975227792568742713785924905699798793775829529526040633211940230030977776663501795354004174723008383248283585852262970277412506459784942707000061316695549240079704881972669698428658769822465453506726919909554146472771409993583586369491190882755501077917753855143199064088264726541793892867938813658885434022424324532788498089082222765171134065156308830654264714215973643279983235913213357094944257291626182911371290703148722372909515969448417268988837970707302053625681372196550024536526269005795466433346780770529443548694111648881496230056532420351361426168195158617585954993427208821137047398679033628761225552720510887877549877289328463198018125634777723052425849148726234797992292730311481529030855539045857901705269713438341008554983959206700177928885528632208891982669684785257461328451450025351663621622882856362084818207000114543602139037771390893655185190359540538205192498920471726039140989045569306215632177235693944301305634238057923986696186831624269819292039647909246388748392915577008072832344806980680243392534033209711610683242735125110247141283349227441754307621304469948975752617877470503764380833550164038058658178250756782722172927723764041794899072326138802364066589680897358518384561185492928260768617134151133054938379816016645610392237272224672647162304802767397940357127195311328122733588586116179484175333013065534989410226091847774666965735427213022240137657178101501529829090934370287213917506629519139078586630390428854810685681857161391535613776307376296414750134266779489524681030886261382673360150608031644206472852419969304726290990620205171345108825828783425173566480116127070587112803745148799645394336806467833599201685727039158921866026700783822177347552809125621144218202255911249960077258087084909258434879351076137287775786603007413455605274209582292464964877572395039008913122639747289476922722889750771988878827148931198004523902279406545739120121405655944788006443977185649907003901164565136752040729735299757379516216273499172328029703574368248811134270650249004631420512788124261868488200382698952664215570916189061211679334017954802794104897912459848066276746074853793259849788492419661443671490876637537143287462912356290235174526185596071754596358789278401006778100560742417007031618589201242744987328600361085443694729890266004175379257410538573961081801526904916131728905080239999420626905652566839464691303459276687455341676392522843374244876376650170775629439980452921226466938652491705353107732966790795315650383664511700679906344663996756303737807404950525506228478751346173399558948327753694658258548896032122081797191011934421651836303551360093599141491021897806421220922239086839297498424025018333080048903429373299350097354938205246002343031612755777409781383116833287442971708001453253563994323650530678018187114706614532194692074576433942892971088878234761350799777328350079880652757402355350973112270022205440082593240909437356055659132996379952955485253183692330818705892608622087346353824712846904505712099988581218944171386317196844681221413285277820926283622591996633108660576537215343746329266752348088829539411121090365579030985225700890641492437434366119621155072153155495734651795355258804091626580059282018279417743810515419587037376613831973315623351653728487511219997933516962333899106229030503584617873751481212183925356463520904290769679708432585978126640192803238506258925393743633114140132197213142996305444418792182338015851895317662336596039666083044516013475321470294145114588679968862373106333196259542362308433385362635077655396250559496702483032530251446903904266073854090397149093539227180031697237415755255461994665093775574832157222080700205690275095640768512917291506744051541638817134844426984849690655081156349786662094206136527468962702069178336622128761762533634272027748282306277835321061234310158550737819375384394337275513249322368053778726090116731871340573597396587909976183127057201151524440637616506615008599062810357845304947673146774315339042302825530318974128185441438305376413712359295542375034420487253146528322780143728729398529048497382171331630642504064839785076884197551716420044177194711067494986329297485636343451388572700425210141994738252274011714977025943415560960681466479607456019844305135852707415316758761440346965392962531424269676170270848242961069420285467507869576646124807629229525289782104774670858257916257461341456369057364555522742985428694333336205302951758010383315680021484831289503139877860245905462659923814762614538651820557111151596975731488615013882042538144155953291282797358003267410150393513363655774349694420953995974953266447292307528025290924694842273588803440329553085581929195629843884371282957479138859665705773142388472435333022684415750399187126058030016112902459462059538916396792181565366091074852438068617911101753790612460056827700531570732610772484461954513568264706746487012750597767541147477975882202972456625810104269986473125057563917908508535165424471384565294939900467377801507346990421789440214939483306154210505718680377917956982020755998633572117710877859611264253662388410389923448676544706637673013847702342416295585710553737311931547232427383564491846542773619909055837370526516235397483140147802490748770057905877643200308983576305680348479655535270249854964976262090911553039198778545541694265838026606815397139406153911273045955924468572822572383414122741901200914299309755854055095809141663054227555474055017808326366175527522270433757981734459012690305030036973101491051847733236623218116844565205612297054727757868471636191912453163511315898169030868976729457687540255311202685783461932892977107195149462766018713870000930430306918828740048175828962452342193836722312294742453002141348799728205226556461357461144300716282746944314229776841276880674127854529536560913360755887599120649286200601152889640406833799650357712390082576344415785342745098115710066823153571541462475771518639329709616872551486418681237774469493433009235938687494228725943269484834707212455993175847684248509340761609074106490556757174902000478437192853030620714479566940414259084930439880021429825047342795974853568384586493253114647091278523021845844386098302371158853792799977275238247513347263053126862378530915144548632100571985656150495730237952911973295220321137945021663308462273465262357882298154901498506526984702616371851645022777020843609130066761710531903349142968485978548553662624566564281450835824098967984018267785908426677348685759958635106533695067658219416731649212956122809133611429797919618419431896837870316392044826194249461881465675617378053853004395513561735574645909870792751938273675059837330121632275294866564426755095293032359388585209673734934062198076850017176991009831257910616436920754398614081318554792851799527038269579007133467967021503357944336409431739094693285783762435934805683706932030418470576278389795808808723849931118959255942231500466405349727453402969075209602653526298560828293162280208988948742230397553997610932643963013082002620441212940724118680927454562876016337029753076555843359029424411466009092439841605092892573837616092111477761277378861227802423351062738701164195166355146757298733116368904391971627755817858646574482741638714713017319560995535542543444512836892398050459472484418395173771994874860525745272093839224714973776658576661473861743252185223115230789859154656374588458119372125041697960552074456444797276978000086997100677897176342433654045071729945673866849647974193206744800909146565400740001516519744672582728213267503147341595452722558912605577875546186862554963982081305209398682752037547684992743743805102710195509576684729638681846883771813277199308055096424636459463298753784751661157373771253868581807794343135455860087573305476427056540069930062906019839372081792346524875158417345430994772680531708479890144545043562280663385194846280865819826897709984769635934998174922264264286957241753477180225501726986254555865015878874017679448909108006763841191048218747505821471135479832967278618468817611735554843021061522482307049978139890450546533724430720811515252854494842802570483991893795984663164826498333199242251478584001495954783832990939598984294135065773989072667626169453236542177991351657509567234285880183509055713052887397332119076242647823488398265418394160033630613790905635352294421426156549904392275498075172999577424061454338537087679356784744220940662181480252556052822855146526813322349053600961530755766030962621637468484451739843304354828268420640017669782367632976301969494670208122444949296477249539906604661771850285881681763983290863294976991551276711980335142953683145907512828646482894387450569957580766354916681964633865324203364944544635842316481214583309000515924997332536158062954680947901039902608195319188861396340687615606518595815405376080720962713004591744829432304737888652508315847358362182799936683683688098006936708544947751362537053976508301474937047886689187935415904555407757251427600384612697793661291576162911353368014205269279610664082234604223717714340478460160907893123583965322373354226015106253437552262974485298152289584942008033154989604406841157851308277713215988302340799133579609425535281233607054908210758175522388703953726572455363952457855174538446261897136430352096560779553626367043492541259217498202547847673882707939069238920458326297409443225820045831897285803806240468633639949640476313000720625255013312573178644074837318464004041002092709790043658299440660048444354502538847075948922882005612000702579916886064271288838212685323632465308294764874816424483783714933467942176695181060028340311164988846307138789929566210883050078909040944970071937525777247241409900267685506870128821779737765917038620377276705892015652482918723136497958206724320640147951710945209000080484520827198242075301441430551164572814500118500487524487193408213950645363169891833463832642029891285635866258423267783947662953434212523744581889894029348166259107034028212103958186937015452643774827427941941874601301328882607915278779884530049119557405621186385272876714431613033340793469014201546008757650596114229625795150988863572858078184667412089462408936925324715403957704081390209470887571542085769764395358568862951845875837290864033993628999324091492055375702675804144232045826605989868136834702333890581143756204445208373732423520221755289506285533787841168313265304545724488146313380334350256812034783590571986713975115822093395335275484385767596943326672644767788046753556935607279531520423968455663683629684394741277639477293236444161809737674505412180249215433100866282988201219385032600412425198769994728255558465641712730044853271701957344274375563096367136382662822859154724669359533805523545096480169234862165424551221707870611234151468759501093594509590497740462590248297602303513187424412405032759164792031894483961973212175880749667227761189917660338437474195493570929459008540545278950777183305085847182535202916236374756424084054660755563825613910423637391732981204888647166847915321167767992562980309879573015582247721557985293452969351308828057621853381474723139651235670221517775823678867566611034682581774993228333601427223515279941490183621451834292354910037786366482143426451100188177689653704600818316313149943573496447333796319435858007594341911500778357716102516743219210952543277605843419773414407556023624407881216940551349069836488738381274468444184443706261487136935503680982112512042923658961342379862319060552265585645352050861410006043363895788514657274519030787239323383265424607666662977714568203049022678219856154223200763291441767728508210081898143868294569908071625792670552950840943790011456503206237003413565844533042630925379271685334744188310196198103372350985161260324490342354263010269520268073034274160716390072138706579680536386022451151791614587091341946361330680452922215566404056464787130967801691492395834025046102666093478125110870802426164610676215532675535072324265564252001620855494198700744914911119154460631664648759093675929153263859159604574055971545819020551930855715917459012173657119251133978768480838378025635338126018226245289839465773812980452347089809558099902849107711039688629956123968482588355879918117583483290155265161291836162204728685153903917687686375613068913729173295464211711300964778065675175570811486277580473695503501766785822273509741138208814388352635735163797316059956468511103534470637567503532282130752836820199155784777010549471746723389381829660824397635198532270292471928456459558409073736244847424476575268766299389060549926505843351774050547719168049169028479835326397613503900837919788294036126480338309478462608802261344795920807658993043860269909879278396094588677769866335039816341359627891266430172193061057783710349292229932971452595039083625482740061845834636068454554122358528562485826681771085658655810816149152267926979988333200347713788336650380164354689229592871633626211579661730049029758121344672036943889816599741453917619669288875098015040783490260687085239760060811339361447380230291348204288025004172316830615777892365438563859957475007084980548064337777729353174964549415993121423343721745091262177147089585746384876197903414344687523967253220296209886226704110165859687000774356008769462581436503070885349528511650142833263721324316160003698707618021156287582624938573275147548603235368491128091608496483976934271213082919244768668617827114502449542730244300709736581565369661273035481989735867097329427625590568307090200418049449408419797539073878451957546193931692091667899975513746137915348128331486779707063009301781716843727416867880181533933297573760029215844830347956161955476715023970869658375590240868908119587817568844067535267052833194504279839547159760054609397815839735253332780965391232462629590384810652772401244251600791145047891239962142096192859645433546265545096613379170237500732993378691607384520859272781844048859699985145076835927611426452558419048903275499391593193156588296301729904066869276693113020432338193994210681006335295986361093316016258357702075080298019003043747320430015689413612779335090500774173442716994711365951764531927470284282107359666674852619573427190969229533984784005112849059184159815243722143488266853806370341505478024962149649067718648044848931865888152039233959619755252327752484353173652691783583607508772975845567356655834104112443077108161411547575119074536873282920731471636734855382752301847256607812051949908146747548959646325325575824037146639875025188290732852292935145221432823504359604431062521674622921285392173309356723623911634063901069313242043317978666213798124296235210779954838920242111952055475200247967129189164936125763663308550489544536539368587924637994561545505798767587940964926722143118784270752477696489918551244070781876791322394894110505635591562536778256479023759951015395758130297742886245924078689870097597749956719015982803788232292943527570762005974599239202468318641523246019023911273761279377208643213701525695443365772099012014221245000578917139410522771419281664499543121464198980935861166543640243967984720094634487185438417867263764710500590363769246240755720719260861568124352338957659551851415217467529070488712961325312161265380269998342501733700799324789807467344092710625369228842312158224255730217454790771624512928368188662052220570181309306200100077266353601680732378423007539189056107431493541185305879550215814518531548854852061261646806315681610641867165099528672187706152241114139618220336506680118278262826004851079925989268634506740702367873289173580489399673217080052637727971703279042696393250183441896474993623351667428392997893212498724618552439184845016161061313427374507999373801032910441527905727816859820758285334786270156364719254853503887188607912369162404034781346106891357719910794055647184268777254708770327047329218086817229539329505974227365242424086332367087309651008232487972098413435264881824569708123174430885353162650410901792492259384107228374681449787738756123225295782448507611158676786268030546942858344915253422040590910850861411907396794990672906299883659653767787480036534543616464114098612823712341275963374129384570179861004580505726845690185368789391076375259837214042783576355964681945534669763348432949751589633219103579749218412229397148750483244909527099895237536397327077970802295604105449581324731740795528224780228381095152683426859240386870233945037208825905983450300472665304046016543856427066459995777685954731557036762739318174403402691614556764602789520653942974853662093263450754416088835240657419539049072511399919787457464363824403071718646807630828171566582616959809925547102669423927875251585988037815763789094905125471930634411443915777178855880092480049831078172645689533842423871725284957140412354855724894631509346653053489434548787605536074055293479808653705345134912567016521223345275137757607126784614223852034000982361572530766564989548228244743794206386905070201070087803795323902820827450580289304062431774784714814088120502075012499412177254827401627939102319083086263968056496006388899005700599945239182576567238993538878492105891643176139685287863298960119945162939288037761141046460760419077720536595803685883524075285700471340114858805243649457529459635692601176311825684307701739981173589042023915426815680652717467119763299083605555494937799240965971442341285198473263189425764955997514483965120473934330679359602887504102247358971393369428275789714366226819693095004202152792922964470636722819269026798996203187953892311491098472362562226902868510473590822179458246950460786395617230632915228882957875296080690035391169521256724323062698222661912717802195619384486388074011508137468284889408634789106723760308005410309967382002220647311181832016422041837116946359390969355754605882365749893653766926538107620791434417174371359530333723620822961823911442583386196035286784057828858552682670024070102519930987603858213655316356649259022850452858236981906676721683735155401507203388226987982291174583966765292312920933543432857602489355091324297169375659925939398810973141876957349903651763323651374826262995213722066153540408850692963675219942319607649748561909576886839936021179395616415622559941667800617666845388129290774495853491849740405656177132177116692589664998972863323360762571783146835049740776332722074712960030397263076100307037223051179098388836912074753859902265158224700461523435795176500517534950047041250908534479336844622111767465161570722007502280924728922069804648032481002360122615337104678586203077579321048597246751777253314495762260658032661687319218879418524806883722182088611941548124354310929507400128815638477579992161242355906036598694591617014447556189778237229566853290980602031768280976624840289399342447497496319784801834617694538458452216365102751972867010488353349906344296500821125710399321746230801258086616953131714270634840026435119329465796634360226316139818300384136904545090504930991970611101400569368473574050306316823335139490353921122248516914990989500123012341133138469627205470177790989366238749923138947381256488763987400210152496965781044859594988463249391683218714877446454359722168662538742307390898359441883036165724345733449484871970514039842332351952419704443386309274348574554158391153871815308587865859687358048131468980972090201258381662672220944770345372804147822811624866443116704389809088998782681734453667623878218099761857785358955637935373447161092240407854414273894763715160653482858039050006426316463326201824195865376130574897486159601453838855709853303583548018888620246346924960040744489804530474048369621509417725886500131527694256937258972429526659220332689930185173215674509320775261639236375432409714122949839780324399740662651577822797219507912233235977530602630507537741573265292735999786046627731637538030121834923999538792752751793832127343066901283571403764910017733631056824371104410169855523245607621105641661920846235793319981731252418776562863292181257324478226680345732436307188949790762300750861658654218132055504862705035652199275254409583953961120038891869293296240277557567093844993273790106176878125886567157757016325572674054176323326386927446345970840202045378921122437797818373728514731708355080993094982751005904763460417383214786723418022445485552098994696051778241793362611288783712060068153494736764640285602824296864889751774277704333891194142812936582382545858039749321722270050674889835741566660181215694350714062496286289310616790375637588757878172269911961955810803921862566223998644667571016683239118658644289659602190808313787218693889960465408921143653504167022826669328432420600758792698948942023586742242452325564383964061142437166821957385637051195294542593356591665155288246199356541400612421946662216210748769652742483111209234137391343674130922985851162144770184319931619213888616810905943305952880571556232440298540631389024296979827330413733826224893419063613426599153580659384679977224299499059909995698559449342015882001656083116982493632050429535590916285135299600476213318405629387559590436954164167003220512037055083162607152478802956254696138993125403539632072392725813509497454532790519227566497794480249294534357314107261061766146199924620372226266920538271763282295976584909449583729746284027931778738600683002555653834236164926899060035310879779100676209569213637840594852123350028335223917767329539974004855578737247688937889755237398977969395045398059143563008608075398016605160385848125617913055334080365252083411170162501506679033524982852717588932249297174574734261516484714415152480550262515564009398229354856804038280093292153242583573724127533930229929816065572511414883261860472697191436093987154357545429624810262275063460642168553426351951361419289773350019150152646790320246377049432207021335930748515393862875568576150589306275562396641357805205768970716026221829997845705776340170205541260413848891910980191843725416997291258343613649107406953846921658068321913108659865605184599483904045843422810641927381810221801288339165210706315727724779828263074656412446526662800787409685153031342343642412263005944568580636401968765573437594119417406812058224050147356617761146954199444864537728094453835055742447167321733188537036004164490211757327408274809072127832217440863900946962778728898553319395687049472077729109818149250463426829280017887569886012354431718344222528072810617662609813459822010492860934997929185424333853705722359734133322383124246929544363200684818925368338872765821948442774351570012072365708518621384888685405087031148066536913703393513796839309484835558523249564241844332019537062996331011830462337273426307581687440714846969320320480084489309503135389832367750541359052388891217789094502321804374768384043743525640236412568431111259577564990947112287863201375419429341984951591519224139776741429483424414638816027002892548978342623464512449146083661603636471349298809682739530497513750619208873308730582883103489984128061847114647942878114495314879396662637673851766223185401431176373129669022760155400073226046784286788947023486712309836943043404582527281442695540586724726960518630624975304151465995499633037178678136763416445167151217842252555578170459933973007334462054203681520668114740637920734998068667244342324780722203992091810015934582007157954642084782666255977159577662769177875078555217115405797368575173478609301092363950358858080288455926577972965503586195115226077721017980955831827074379881458116148634667379027031125581869635708680267120027236413041535482111288323616621287546134411905237395095098743072117886717088082552830508603893547605743954623223421806113257750767125186518165549986797012856265922840460916843459885090147839783580251845853222580649871606190478153879785450986314306429280861125835246267186688813847917705611064248778055554329658575727172035027638265796892486944203095352179799907348600109457004553203650757601338258385838699113150335780309623607225578282447479987702260457825880397712989048866917786421888093975054688529758256260093285956862636193505286930720156622116022884901177339000026751467750054908550473886245246773076833839870897561923272291442737067640156888020905491364115980280349198781193009350216383754071177444108613164180632466741192950529142890634068113208809297584052856822873943868471516268472092075647116378832267295502928203331082048048943375511447050307877505995423236292962679618644293175951781815316849737585978295546130337392938492125879921695807694893236190258941277359378056708808072712217465994171747163420247943837403758286884189774480363585812601369181496800301234634805962198770934310399535522126986339887545798529932542586013970490628933161833005495203404975880134445411479576678108210203227076485587968877459409586020066850770905734692893234727765301517649249972311315398874841669263379085239606630577225600309603600846251736755672929318481827696409717312972200093710628152556941408824937395049255166400304802931936916965234951655133024023535408731640005159836986875858155060600721215399562441351523691576043931145256278537473884951304281355894527541431653148639672391641404180361922057736140386285862792191923837962505287575910413861482177484017595782935609358664486760877698534437536139669741280119789953857499275114367654200080469878074353174939395685141389102195808107374184694476465150239141945660477979910602842637035428262493305497624796652081249834996715358649877406294860994681540277500891362024807409773784512600887122014980825604707324306756631016593292713392587268725257993063539527510531845560253504078405675516116112964373486475713121860408603559617638412830042567259904494196976857149874981187893922508649139125109284277248080757538088263711497363917302099512905684141693158689395972144485729502169145848342687250175045145906468025615284379190123614359749996782470245079353639826861590836170558749340680384098248330689213582642533636446374738501951768200571252326875081265272415212878879345250425169855599179430074545987581005204216778644520061872312148863531582347762265617414958880747331066206597552578729993799760660977598653928037544222859802084958919225923812526026385365981441308143814354847739256133331727175537500975903074917636032319007672732040055389124818000818092874827281494342247767034317244537128957117501137757868017223625910675895718359299860454921153586638128890890533852151964847725562039133019535680095700974348268448533420761065230616950413705439595844304058759747358072480123565411738189515208763446020720608393821514932647476368198852068300964493343933369067422157635822846934037069799875956573013080725389914447473016410113852612905360929255716503913781273048515741651747262056500788810534034473756601017242350215408706173850968222167751314945272353876256431236408286285285866848199780476067629577937448523132751565317606651093959923892134953764631448830873270626308495683465484475771871619151861530936820438359366605532124286605102243504503374346474140644685635886957993500386058051443308030551359967736471593167946401256075063814939370341420594367141809978835973808270223721754678528318832002394169336540672416323552886950369907821205809098248033044695771165146313010257467599580591063551065804523503749860989040704962464617202022578751638117806010882947319353227882685451021705347666397542204958754370921942336088633150628789776061038322270537404748917145520025787676985678590473112342209864788696234848681499812421380465456479254125349559347676771647809912156056632127488547013976847353376529982907013906028695038747941200330055282721832379023776767876435899354773428390269132172362984940875257936057053279225764089527201757191409261105047814939017139306206743721630342913518671101793355796454806240646135862673358765226461126202355600893142845438718582702063265413177813946782276885543946820669921506499083954704654096500040243640928284800441575756447899135303880668863672251025616129229078099850391182923478808980158971821923937156151233069890011091686965330645140263512355195247830910269472669894311612706489430427515096332053488636706578353882183456807086225447997749440118985358974756666324471960888063712075085937624355331450640027000338174086338668275738920480072290660610951212765036925368354892061243528953543347546401389518568211679825959568727989101283035308691663325338416436733881908666483449397430633038601135410431188146472985148611194011165699711868504500093014884083570934820591618187537862489926773292826226044705877076242868631498988765952919345444520212819056903271962072831899873688660050480026299946304218454319786333638294155888103246311012615447641640665721445334097870608948070334787560386914759434385390920304847426637477644477562597095800433078074581643899099176001367273649888134442677995370748993428040711654161097207469186365274545881721638222114736584640375609718229308415218209884210276529483807714091540679456496400138821586671489542688145265749985053723709413986787845943272148857778128006120056408478905158592316259658827463737652553544243051440973282008721028893570156271160624714553116794638681856118120632504903982596650412526129990964520149503124943207092909320278531735734790015675946578136084104846928015060923873760189801490240304452068361182320650367680517711083815180204833050893214142216511906407478362484147955215006180894220015116406036431400749531673591631515647470852882606020877478318328187216148383150986454565512245060054712030668200098385298304934893283909628039671708763370223138133957367200105319128927585323742121566957302371297052944110844470767539999032878159198385086090261246813019780130936201582116229584058190519875312152014866926011576431461397864860848716006616812979561511936290412616130605524607276700249326996468217892605599545784815645260652563675402229307416933160184610625733838791027590932177361111034038570636852722152728096258656461413121204496056344613360023998161009414601036105112909818756296738841833930711653991370628883084743137084558651200982098864567594082151075980088965440620836668912946891217450742450396789807085787829879066446604280900178383250479564888401798858660141475408406878724767308529993219761364158878514047989850368652126521945784061310548187105991084162512992905061390540733892765298882534769959883041896508327588663625363515342098697060327176966225852134286170904705797701041300652027153845308528391602252475319786874788508429386206153825577568738342584235755485212649974088601669346211019922070648287916469350460154282748895191435772142076137637518619567317946594127783141061805285743665217686998134803978893977368553690455150942887467296179263935991422788687457257598194328541328907913237464266900021033335264338305557829032632762638493459425045050873729271645867985084638007517192368014005787199752674133538998386436492080943777551913284617086842459261787972158938652324638707725512257621782449157017529161684211068307234519444688852428737409857436043073525896579258112632554249248735567042460013172270498259564495175306903382867698357462870308674950438903710171380272888238163826308412961371442194833347196932177759564585408408058063870832804724020931952679747546705918741753441343280622548752399453958099268262136949598404442214924023247975256167912733299519501605967366653646290450888980265930310698167855669317315929914259921179022660981916451823800263448650560729526557352439078349645779577164235584847098185913265616856820334334010509069781305095508551307883894957971973856884289523898701137360077536269891212319850125554196640316588314468197714145139820445149836522066740873167708947277935995716432605746719963275310142959307144056619918199062682992669962628669019380323643609283543687753335399459201640782746969596687043620992064024033091586599872454519250154027102525003239160855701439125593280270813377109521655150427432822547697424848222476265417765519036150017231199408262197704089321446592134118006349547664844181832018536291747935696343973931571333044930980126945285355548650675597077046131787336336025819806114511583706121296049574479100506344602791473346276446323413971391606069501148803461553274442044492236536464578746791082873386932451393523782585805219469418248624820986461373494549284390851074108121107273362584952618534856703773890858443838422973094649502945101237281217039907548875932634671574169503728188221150691591981393499388070431641907320096397897307395749647491609970620076604667599460410644198773016755155692699807961498868860410484206786958185331163445560633764647512939663378117075613589079021712731874925999041276536882210381276167352578522442451887752381591486733810871418968387598859995537406622842364840824714116106509634174795251168909211278376905040074686852784212439122685214658565685196977306925821539177021251549115364858893346399311648589962476622530703714985577635500558720218836126335267398308749041212608363602274001210436919774152453334190728380403851518520212324537449952523554467509486837548991182888314585513714794481206385294321191145400711593292279064524517337672756864991335655574602030137003907211130667906896373205938651794015883667585828470305770258369420584313644469640091565960472605527864287396599426649423813876698743261585335310965543422361568731383785783121986214162202482504043681135657533509694520825842974439176682014891281713550560192807253095881178394477344450165772161705011975211876369293519246709257628480732204928895465580272663208335960337263087524706656401246081014137645869411497385755617965503892892518011657356793234663021722137597447246651357441598311682180842760747840217094758560563297316529685646217230485249876108056125580333641198950034172696988969498378929422087273232083739812534601095282881406008580732180957994384083435801239045807444615222271265479229031716731191675840282477068427966904550070439894741451605831568269268983517380812114702951127313885557558932048082890960764627297311904923330904604186497978929563901280060353671590344913921839854383305359171986451888509809407749465869145931427477616673822007268395880207563829970615341106059228796379861625503965107707435090252320071742279516572070427244077464904130854550201343838914812034701709560516954993412985763641385218001067506037839385214271183975467723694675318425505971324950145436555034940960507612347032268039273103367158417615078388263026991809283135336406424992330146070928012164761505860586354705350763614989270075860416208889634344160211375252076835107288411036564465140484380201599699721168323574902535145487722978216841802540450752463115340991710203396232132083078017724335255901236786890894138801199275834708418046691380714651766159997159511963453444934885560502902406254248131722384363259247831248325687601234417626563839334275509299440374083178617178152003392965821090840280232036823286581624519050464335263802120590895161737296553341679079805465896130332914521304948540756687056926368208676035589413918829151523857870433691771200198032251370386857119950525750188357493336204352596357011153135073350783321955024034218908371234377533853910774667481979584993367695655571019802938601688359306944050374090895399619338813418486188424974702552979555747632666853708145994030918071333138007486014229903894035752656868435861364815607497822651153534342744042453425828022989513818023128601806125863137473565828693409042546530049046369884219175080028192041008467626616757535344816061114270334867940785160525618276781434739531200662403618289548898286228754756650287592643290236072020509241975642596030755725235053242534924651143504436891809634653841975005211291266859229296534525514009628705112139033143759088072515579140236911636911624788435551250801257495527892612411036820049070927505505020884545511519266144389778855844789240125905293544500597321118585018822791812888254466725560180682265299039270030508711532040269840798876692905435968104835792111866845558400357159041300130228369297533939157440542112766086978709239655350411772942794614070463953438426439645676846044177100198087933728160115132835365740729412692871769771292455085539433731500512237790318539347540336938191600169207343422613642157627773141622121722758404354633921513123022982376797372458972719265812495811379449635402816025099734942372105133833210673422220016091142560058461888257144757429617313482405641393385707707580402771661855572354586498424320565379160751026726171217817356396602678927462698004052223049416321112329696240300308333902042480112785186548245082387146283802946689993637042557055796301968708776243520017068544307325566576852544625462463370636980529469600002046024734376382487778957093445034292192438114199317338936163776032840554426571260307123370908376347630230976543695741044799642122939898291788319950733089041405885816933018207699266443012463603108827471454923665372397769896953350837957049550073942793379885118606560874488586840591225065142670724880873666590540727005336749728263179022200872469534027319532052459350083021952563956360922255550252619557343376373110601454929354930663757706744406569229340522002797980537895847636330729563438555393846917586677319737011156893133347761396481453089274343119804271506098916027002252272728222214083359012633866113591521910017401166469362788256339520052441857097176842622698328240610129223365759279958286604375745097165486340177826379952276923996674698833145742065884857006414917752973406202838554488134628862157531818780321750838753099356701489930284826543078223973598736255347487606636962841068690359425924538856326962097021356760891755545583450811422846149317636736925306634417856739006367063921451713710396735524123128482128030026264159270806313224879549284510752128733329394391692831729433901245424257017565140987154218932703996825675020417725976734595231777338051974633033715525808903203800182319129912366026223503580675949864026472742758542408103566680223500020215654402574141757880924464694360629709367453209116402705782705725738571122996230986256621454980812939739049467998458734993761566806689580651161677567352183967809927693085910322801483358061289210760320366429097878309440436122884260798629283777172786600640067245714521236513874576027199262616846180939163876751661479122373669282291884028429226358123596052225907441308773772422296829227937062172586769114454380982102893864594806963828540183214629695321678686279151602681524092671777422982602799819056125863685613647767335481120673804259951983623562625257434836430555921788588706670917708136780436927647443223434977924239076011949351963101319629706988555013859006319357775311806936164293063251188963348629897620114576779412106315842207478238269580343129075131492214069542818368142143169208091751462470069691846126256477177966800344650839267870989514845739001096185520208848640885566651081956123295823303783120179660500375619608653021556276365644806738583458615629667622712556683600888892789159138864710391505388783211475202905397415088487739370609641318381641050484742214767563880520695005187092231566225874335742046179465064721266253333141397536339804006256374875330845733754780606889176474809155732220872031814700979197005010888114309469480310159513746513147040315261564161616927857300780567697422613950955171594786307534706822007322340504956178705908699973815902602177891259498488261829622103623679120610901861058747335935536264683177758375638373569565935492251508860315162354762907024472800459639298520996739592202081848513677191027273252423745266623901574454571763485155496008095734290920833199067201970013117252752859402756756470978549159790809960059529104225713821015072008053539950167711582741191847000809031885961675850681510696123644599110227165355624915619567989876188317958217608302297295632562725760837395961986529894144751960291635375002353759638406840012417111156273677022013652823189264994334155707506135114350818858358583012617790144531320528975147336962520054997027695100557878513524443408775104101968654400633138378072534040664379622561757957747218108316992571779804042165580576965721026765934610470640404830397158055351927945461457146691596619563760699682591585563963678813119604693161542354737992712150809364255817903239584523976934729936797091540961012048426671528559684135747343006381932788180830206905951648076664137987359682326902567746714395172274815780550588187326303014276890028649378857548542446497580018332605824868395210402538490776962037218501072151193747353580513929062981936308455395537646248126107508498320819756482166889885273703830699094906467870350367939368792262527810524206223112134370105864154571389714603428666745770009012906100809606292546608084203000165429245574576076287373223791504324682780757431216871246452972523789943664266991981703440179006679951173782382049705445018815381271444642976970631652515619409286470196385021614043907029280392578743146583784677668449346087739201932434323409147690670258231612245260059758329917606805678953821337089872099799831905226529556840463596638639597777516099835143305664836339752903739278855708440914190171491413574812206993394694078998963964041664656324927739405647551389972534441377672867478598675836359767965460962251138162062309996914354054968503263052234950929157459461518899597421795607686678083123115651876924052555491167535935084847967727626755944184908104904925539542125731005518839110301183148455909092554761251700591315276337611081342492215889111824269954407708042788255848053493114767138035875501461681704473417522757255398849663617233020188927129769502605807100777487732053402409339435992537727458747179292551925101776003891756156900207313302060276324635494527424844338442592755982761530334862869308043789478227019505742724235527024589357616336041901626657450971135766569944605601253119067902943813630515175088509781960379085208952975881604873066579957596919371230922303936093155812204915778621444815214693534277006651706208842316463513809347457572393072444752935456485273055264581551023389593495446979966418234923916297289976311148726679340279970517992104295686921259852060194534199106185844746776128697930099386942269686945229019080483437526924903297639020749557867233010704917152350023066545856217718200580060502712945716768980655293478680446650936758677170834939354909820100884595441710058562923196471661116513448467178234757131725044113789817718885827781964102291469046093360817196577317721301970825882398381614728856623312227387168747162631648754809481106974150210283822205430236918820923490904851853304868453372167103212196191639174949472604522549390860662885408102065256212060828217714881449193768522412560610247882685480309564427322225342707178986370916654914936562355163283317305171416858804705466374198230552068060891644068189526988919653833676069195141092786328196590632886735349862279147816130503109329613033207543490161421256931926083457346536293371485069653602667646316431413446345138031987376085397357829884091288124352783905251158057952982648586202071010291836599400252388998533486767741893606592616960524248927391538467349004489451576058313233184553264802621950663747155353637450005929010554765787993070584979702376659148880711234997151650141774210430467992712164009423308406357547152978168320671126690451488192256838935251200955416717394647000757033561362309581969482743374732527837695410687929581073390023319612095457050496911300857618363915916182971579054571431948744431918854751673351251061184890328500672756103699397172091422013965493201957110191082503810791068117216584111587458618054462109344789435142464916269520715531908968558427606865812425420077532616739104563596854109723039748265292480465207011561074564497191691416939562436519050656681876051003347611428148163288981138867024727905321122361254254375303857934681288647934664286005118883189514479608147765151273267729388179486047130122194617948060842684357925553336559235170094134970001929842423674051399507051762643552467399246473637271922261435153111366394671265144015967666823493739864427456302436208577618743833511293769030140205100417943333081844783919565919190524745274837118193263104392488915670025453728501937953858322825241206371132299511064391002152808247893235929599057751573178576703038205787173820179140014690443454361032594259018585214778653046776572471437627685543207705981324727379526475555776809182330609827227712064532997062599004738126697161321215175036584341358093313848582230908417534780282832504512719480139665234241187173391380369819080212797410397367852103787547019469810697640416594893467877526083211121417239872791809700271340369229365132816492741672721612178004036878145128371158220075685522891041562841533400665854945880202906364045393350577529155922822252204653160082004971871575469842062200669128509184384168180534861496389251090521249934291521505654028426121797847618705943358256422806481269480438356850309868433169384086455683245236560515723711531814866933599338602921685843160119336451680200205860332565279186537903259581151932213548853774194915008628987981650951959325581828094832969491955034921549467858155011960781941116065740369676658404354253984440234989156293312501320295325527088122181012143396488365172965910644588460254401429306091101454291824245498051990433222312012954738911858935276966346597323768950759014516510523020982561230691743562035848865545716977470289895109962318780064455063893291111174784111584482793453217291073753859704527366396919433969033932915559366002689756863108130346641310442901998469968359728365990858689616789485741815889449783337396379963194336036906068119452834037892853621728490715499784961659197661630592993460705132868221743038628256034030329008746878591029253776640321284872000466326979763688967526055690745654632355504218657109108972680766661239465896041895492429181910915916370382088940122339999776431513942930532067634382172820649928587389902298589263177398359657797518655545916791710790704160916467009413491003551321623364861412956616286798017148663043710797878870939877355652495973263812800846909438910441512546822544029044856141504774750121075109537909190095768916082854396135159267413277089429570601958206154382024238887753223920999864127492290984782863574101718193945672477491763262478129318772358800722661623028039463362596632960477496237130775544831673004595939183085138040264118881417181583053052356321151229111086898213402267959437133196236036113355760012368781286529376142397488340936659619648371524175917315469932999509735604488889525343831445057671436705838938523245000841641598936745391439199492479494073737223645456511147937038834368870854667911099964330665542315674006999879711394328195078854739802902824311211576155982421893133057700787416200678858706728110737385658918170270818407135531484401450019737717233407392300585962882485564886224715800085822528104773924833958665976679718516110989186492953974619014779373408796267138139825102725795122105209459322088479015803146870338311568602448193148551504392222949064575868634057879949260310120352003023183920376323245747000403885952310329184671560216025857152880506161444507328550309248494321787595670217119542383378253005082840105471907826865061696257810752776229794736630709072440676291131519457727546829229407986880856603394936586341403525748725272053209163536818667881828803409921080184146349584938727880308752678649501456224464418127108127846545514060662187007158461172137872687273563929702287532547528775127753066708787260163460134154631146888736256651961220401163554979791278061858388902136429964568226755048027088986458663347752701098772284940884782306140062083188573162643483498840424110106300011705382995337613288645547467364992536183510290489519988655980880617386589572361104068567158614230865379644875927793331953214184305187308106750381630879005968198160304936014995843165746102157399734966822528191861988227270631817645459325516567578099563343560760306529565647604411227952233574546341683628159530207896133239084809831440840419284928498781528610652512587537666852542521034750989188404949088290850553936513508933228191321228316246750094739641696697360144927421635381442317849193064749711053436330650817254987889878879808895801395875457389514073872014011398430718343317538423727313534526466019001769184145544705708827961910572506937461124270148385018897599374236584961592918826911402811719044775772088223555369026713094489362978390854341578676682762763403955641956320503876058967101998187476658427648395796124803363975171632677099672848168364512246915239651942044889482850128859372872906877940535293048592659137875901453388950989723079586489017790692492899513129540268674528086164759545423438409438535997108241590107893496136346874902964576983833375399894001316079372164965387112846328465031397605475664966489629754686916317430999862388732865443630740475340794099155715263623852153619383964645381857719961841940535723347239736662101377734161938735838229887492900675906325784750703569070602660952100928541177714809507822429580659254849651788852768852910275041193420103187231078304965739934995017630915792909241343318612791434054787928276664439844007597339028010169624729768769046330741024664821602887910939810043072877051570217246807621675904465130354811276784049845972929693705922413762998181846262350391931353731839899442835413903127992488097055730988749049197267095830819681813461556436558613551427151255787570513033335316048497352846899083398275174365335521732915615029528722717204023749010016354707611836657368842619028775967634427765617846174385977250147206610339129169384342896574086359191460479772156028337964458925622965918218520374337962423629556066659883328374764392039319004459007463084917615074650951849990310881993614932892926382602881653255166010356505319672716781133103774394612064401636292424590255351539481639059960045734233911505205612385270657171336293018907661537988206531644588670367125297829432919175840657261636679597566620442253097292172559972069696949860688054949883560287798537761268620396998515262003417537220444508012288709848358127909326706869853827339470672573774135995923819179883006804674117508616512479828178970880606323949334530421483017254693212321191282589820775003169883792331724507312577062237495594051757149849036453903326951541867342475475213976545925939114755391093345008370960366909914545845553921686783755661676648692201538422407654569591091881006329673497850427595351601918338548631210634091270933792423538730802845142223396559921894678224656497227840248959739988118455748875306608310727680723609369258188134478609737690406614997312402065078471939321877075986328912993535751558602093157256909249773553153875669147530330873733729793756688396443004616846478293258280610513819955312870248642202345160822208061575421637701747871756355028694663157368211822218422803057510197063492296009085721284007569092099211543819505427896500470479129347090698195229026525210533319110895957696277676614021442301292511667589556473907635507560921874401831924668522391320791526851783627097171771848418574773207666525775001336885937484628837742111662018272394505876873426744141265026512331088420226421129192845342259335462121099091472783760640305277547041033105238854612062168155790178636101525146788629124007704586306811522423294679871080434641870018478708722505968589829257745085728272082320951993837578171468287175492824888741066809466434544788949612968179045206359078991389787856309010571684938680138177235303588597427642221720078387945695986989040621279589913521302252864451751044363865300933866625722913736151580993400278332679509226278623893083222321935760448246957614037031877611639143482037570979662633810968139637064013936205906378673731669489530927109847329030514013990824576263001191895869682692414383287254976918399115592213228559227872891514099372591215166033378157125761214528009837115796582355652945886655810403099162374875247174387296441281787531023805670451556392762585612948538462790868201265946787185610667708601912757014339903618891679517309883629155871684799638926229217999168417042309796907050019911146074560645346846418221725769681880934848272750559411307571006705086368274231171791216567242180890803069590288577860398286828751825196175821895578051086926960874042175883203073898134822393584195903117977672698871515301459922369171513116339204238096692964241798127644657017347159950990726186450308752425667958472332804618705317471185961645257185667088862386823210088229865456501695690481132188060046538900037834659839876359135959549895879555871578481426448612759771933385554134329174944654485974409321194453746761445043409554931373084774677109107986907222088620206625719459294743113309539592794733837046660400236072612535525865480880153274139487402669505968763750124412887009686502278791097533827012097632881396364553652473670522183637540468437507925129828387168850055581237392186002481739811722990521540688872046213307876187450155658088279376964276746647087352725272374451708899605436508471531733151614465485142678358323275736084310201894909851695108447142115266751269813001915970893403518892924959343029769566165135109736529809817338057880461420951207977319701228602351590883878174350253920000799439997537255226392702932690329651661289025080673285373454480102018579925908480253572080739306379137347774208311176242219009061058542456358358863114411805553547363964612156793861249295290880668540115345609725544558035069862488647200132899873873801624650235750527981038028925241510806581747198948706339787418196113594239979933738529446268778330057404329102218798839153833119266993621778249703329416442057306656351964257792881300450537574837503345911261611763765680522173127141893146333637403185103673676480433057427206406097414192525135192737417136092217221470891637968124746784874768726549506128119744176344671605994478813634584308676453455660744234348084530770988218716577141877663455656287811193018439525092470677530791130257970738976537180235174256689891535312703384173105976684349192390241369940242905008848378568823271756714780655651855226257914705473598464736909798257119311209377270162133384545344859063016702121465007925697524339094826220304631813191429239470591679068824463520057630278338410130059812805705598457146401408802066136322556030788629818914898729694468583529499869121097106002941321854239117613506471846398576818661958829293313891884680831879619649450394222768158925782005234668164365892988426116117576662074593968981846520120538010067032549739824910733596708832369838411731626135391075028352878266099226707467070151653653239672766509703416731111222270928031633180189854754016514689648620439042384944369231404544056791471656416332424252477191269731639752501906515763161155943063286180521520663687809854911835950075768214592819128288041120095290230166351474634952448173954646291600428278347896474871285378222979453765747275700442802323589917899185137582015586929838038287089510259656021346040626320753849751724964910798898908717411598467113714684355531199383393172636928181862454344173963698773523304374185217029177348396549965198305627449622289559091470359335478586193652387996251123672193209194631594148890010436855561957869386887858097393133826556740778420589061117912861643233661973017449559318836473798615685747874334749190407382132036356728283249640913178445901301247088624973974435673338000016972915311006244756567732919035430487729682548736345406825027885600272119328402954004761297670784577629745938807354185100160537209930475499209042772877212767777697096037456233871793428269330353498289520964636496066543386715874857456927125567411595426533111564301064428779314565130899905028314854277661809162034133859816446740618492567266763149475563358598636529975063053030220438621340786785960876924742686310514348056822350286544229584254939491399532652105210261610143262564498743112458299601236521316173917504742244628554889177181927717909810756436406388093071039032144572598372939596546990895254576818463828379851806655854433719350120588841784182030024686583171181403094226582275881429356291932623268809054722285331618652553579907596411697533625617273782973497654497709283144037001320659515454306409035039767419511541155043925161520117561135975254912473987068280564802227997505837833521488592534584138157891747668946277741991862936056326137673757497121509447952529566563147574454512919285808406022930783800275799799202364100476775662507932222643237959142436396391708459433796428835816940870837354568834602533517047228047487694900712426417617537964147477307044933995036793351468700100429206120742361394157953269076314025708408721091679586959681328597450087047820618865815121169597208822440692751057493501354073393852659820314898649209178623444364019489350085480862853065604991178668303117497136057389383633093253901387968228055953763675597682141951121355960883546705951114470654481896509695132609520778157047905251970628392238987074452740405901789580882834977550143622499784042508922011851937805984914074246818597901824675682698655927270049548736641477177583018414832239781924288130791055112997071713708557566981043803228004858283797425331863926347817032979132918424532507710476131380187661895732767063253742411681700544531685907034246251436518909363777968779915682257993775511504565872181802645264939533245281946170278299162731549710944463532640277146835967978696766807481783667438705538386065537109996099084297788038593991638320053602342947724855815880063891135319209040140157875246491691307177325747132203640171261938053419095715025126451301774211506546950961872131808943194604608323471694177932613598594405202596553106246775194552183995616285379284372931396476690523860744400482311540357135170094758366661329655083744999959590583790745270234055469856563937271235550278999417158960754989687941631421157652812009687872683269239169925857369903874031345022130723500160623409085674971080256976360257259010896709324347370742913063183198359710482221328515373650855570200984257043042951064188015555171921099060898528474640524492883058268363329750954494575387735323157070038648338389598536634779942099508660014701371901270749773767747092635292212153832474814820406974472925184110586181517933744212933315324805310228596240855503281380409432643423665366784821434361705394698144828104031998076471908306450214815922231681357601797187647292645224540849496313256667421571780603602008712000903288679978018455505543340266241274846942338458802688730244149663724657546712315685688841202562066566230732975077166237030993992921942501129532711445343331500224326656114899903598684412991041552301766279118612013910960602542357558489745900607241300614076375328794532790021359531416512894829382742064135144835045307301225126368206071890426668258561078203287245284525814847032775377990777239649476177558038186302619718795565512627859633333098907307068506844074146328521052123005366757289138478678792532595791677167063638029843932763281454536552104495506531772532217908833928953630644468942875617676085687007615362610245330051352513915546382115521738024115674382682401442859399915014244991127487030773873578579946613271200685820529880830798121936669639059876252393545827052619568356188352123969827690872093360157059970803722333801261596497070806243679750148228322217376271123072577999710158250572648323765734688671197121245267530135778853676053958865079151182949760134906701441390632756301241468672676027430564981873436838140393915071025439293073467484044495016127200711746902849366051716759571231668186680837093065266788849744310779683137684343969737927668326032008205486914552411709137849932879525923240898873168227373357370421920881410266890138555650588696982344245479884408920344144721230981608665186463327501152589679250555238316557926753765693746970618760221674026481695481908356256755707711986651445339133006747282917720375700085780933926458943395117343762174716721559039908727298534708337681663400061827481609053128690174723051517282156995376935047131559128545782529257072744195261686021671398353107764807642428427768432447627794594565277169557510633154338631655108189377778565181491957863204387719592498923298039615632711156162975722081836503819924505096894463487301086378311888220287134089202872763100510553047745629008839156617541252922115622060764462877835058697289144735760589172223434592751191210807662527467290682737622368250329334659033659842822868259462021246638460225762143158602705324754292149918257300618448106183406913860523314474247249173726298597753759705611783677542807544381996284713916738333163305845893611957029533387690816602041360750908746856417849718544457154926434265749276731841042176010096879986812598329862542362900036162212286302037692466781254874865694715814911699852982227026607849791599672112375550272250991416553329024837484739756082020334823298189685006179087887276074029723542191691769456228199584580122336241257184793697494204758199803710544736203240370938789218184663843127186491143033363317237859707234672625566964882944421275763143488662467149900556041401787749613127251991481747926510605417996037108164345834747761184574951648340607381287782699294433450517743130987350312679280458488507701304227433444459995269694148792814744305895560348888361872712444494936189675966971648134339133140291507531251135176006128324562644964015388196755960296694946683820124054534702383613430288621374686521963710749936792301122242182035314014896634123313346542906696865442813640545577904934839260377523108224329205314201011223235333067471923402679095088439237672061372176680489832749073391038496491653892577428817224850213661259267782330860856710726292598763960382942362248302502790481033124441768224784022989077394569950707942681000888320594795330076803964653627363371653164303173809793809756691408639340473150718424819771630027422940651608348238423661178553910721766465274784356702367551321073880236943510496613952605184198265479463266201897136139820609962410989650858886009149451522713361370439562681880255137497624294122745851277099424632512019491086325766393062897088451523115250983775245057439976544046779763088802732604453223717355437553627236824155741693271889983763719473549341836595204458931326419827462403890640534314135285345789379910623534979260555765333189957727837167354153367972821305070213857068093734868714246262524616682135983869701349403103355366227025966123370588849236530179914539133524924751860603883385720893167074190814517153158038302562319383046675761709089086382687863704015258696187879121903806373587932983311835370389752421577768763265506591014038336941856729713244091827474007790752158347515173377974326994918799730919193328618173055462637025413952150099373262598739387060315550717076861358887842779763200333940214912093385970438534825092882244622318090269893434691632804370570395555109739829593715841147538177384001292680634845769274289973022019845013511931890229982444856041956593264461623093495517304237569793638466268379896678913696954014194089478182363448198457800874544506894848665476522423622001775158134100424630899101436643287062080863762185128172764217544998187031528564787915086331935170779037849958629257329201669473241680856480362592887038928084209991725861149294664283010439982713448018352942632049559402925564498152470502359898506538620356588581948062795441654623083815124658447544989839489988065212846240447185278586608519656146613020841593818992510716049237117552941120906924659556942217971219672727965119500417404560136206344452121802766574946258600625045809750622361576575219963710824065187903377503996836638174160141675014594652477175892601281190913751305706101247813340288243246982826997051036359924051372289332461076812097734591463775360764063313795307673694037933490034827515862661223162035750689409689326355929649513996266812116880932852043882499120347787172203013252655654358278619688860318467166214994693108373494470563872107797947674353570297627604295181742142944913654282761684853964358576459431878732860481960934760258369271844995895081554188381698411906921764562941028412413894068408559372590087075571492198488472870092678362338984195984572910443409318849885933085379111409249848665952212053223381193845946844237667180703332310968784754656898666359915019543158282383681611393815745886035110299889613001456280815508832707886573063101622987754990549429102310008193096655671359774345996825880567355211327135460686944954502504649342377438226533645755138392256200373435776032154815846772008510339860767866451392722920329165334838755201693168899683336038941765472883624484886251670171901796632859407686478864473451566190919887261488302867920096594155367860860162986628817608033406921102736907368335038653782522686863687637410826849051088950344365849096202474440243071438346300883270762537306685007275172685124163024390968778757715195906703463776201405659798438954729659938470903163445244900166207279608043860235982020317258352074219106783562545807811797852863719161442085657716114666745710197851783783489928197559563977590999722335640605338574704895623931150914274164107653834771714919555512807537169428070614731952737452250262025183949070029031648938374196653054216352956431708892835588033285916829288613935202608170515375086471001068024878522203142482220252044549662708035458305977227838500419461228197147189301587769554185799823316618414003885478122992297024478833163580289967852511185335488109683720371175674855261000817576815088561550805557956455127645300218085949194610889083277742044923551864908323327710289626971925268482903112021581832804598981738020404856182493708646003188190030333689500780948163204004809613813105396022181381180073127239844976872154618315812099861916330000837762702583614584909422274943402001451553108338518636437261099729453424268313565155191289153687018952786169092632297167372473362358235632706413586562586595220402163421049414140287243496479518708796146373474357976718336081168574578952303690820275487958241294755159152353818439774468944574808171670256959955654183613934201300515271860304923985921347302779931443511291214803027735620383690347044177897006066051900251082163087912843985288342558697120491002942349843295626958505362121436042860105489200815498083150029369209117513122826061597418016626212143176109322648614149552014394541637066025980509164740407735465394883105278568932302099680223361281574568796860031278919703388595434633188040795621448255850429740458201671345033156005228959847934586376267658849684450804439733034984140008697812712003693868534265794171365980011703369230401001708799487737547522073746775844697907853438706697618858118493371886575674222522303930441329160710067179863242618113350597970072290089341962295144841020976270856349140986324512714344720032334010870885286589699948848638455882301985701399423417801184454890332023014873235802661490496160093842410676923251296297515397630805435626032690840141396695123073985703573909661462854858563762958824013477150916903799063306312093844273889775120679457658288239478955648229468711732985546839575529873080699715259977835371799773528095869660277606764313106396510677768029211098512163467373477423497355766143888583192898668289029110768112812605291007169549060025638956341632658782121870518049211032623858231402230272924734317059667415377484214420899670376173752332852054005674070336481784405440350402483841876096714607763730314268850388171560425671558608390798861666376606560581792914494583868190960491955291914811604958617061713634875417917317955332945847128715182477566828884649225005554839130113697406823559436481903779290449269288593530079392247168746908345236717675320229499438666077179476154095085346454544120118583155067556006865605450896664550948760719305189297224320533558511666025998883305141285781133109124216064036967035237920582406835497168412576887995131421110089883551755168021711694283888943729092763980915561859491172067177816397787095891062853647243932309990566130149447398481009803282386255067824285067936175689443622695517790433700400015102337393828438728853208680902278164818366001472708357151541513037233960145777928489083231528457976669529197753961591535082111047840437408289027630100291506624657369479859581923062720926703938814351069413089176585437869804100919576838307553445749518731841458963793348621637081883297047787207722962898543107897857145830278850137173158020244913893894188121157981500695496075727121869921792596787978707985925746123661353785230494518496006954101093869705737266612827313313117154697233237801812953779363323050043219710165391265114735521007308064400894695098621983138228018950154169841038177211800182123024752251357478434082722901895099851526277975524968570421075410888034874616003718402163980613259025938296650326504400681103784588021255244421160135756737782507837115577100129580664058594821073445712064546181522022904914492247471117026191681913638113644931248440640870826194861491029889265805538516129850637373845302399942349010742175005106032010040904330827964705162867141974978258093692326877933530424686079518110106439526281333030820936184794936226091454982347233835726901853043061701985362860038613749519537106626479888386356499595117509209394253506646932334794622848077721971949853553550869136258692133767008312456397457175356694439754557381713946838863180740335306682256717851070061470393215851657928317849104120875121367707130148723119670300594026137163643231628355049476392628481449496507945929458592424702264203284404992510369446587535969489021861938567669476777147371143192037695138665041833268249119611035036064725826600382004497159784889299454724968932690853061288640912832465268155796934176514625050983967833261054444008945594955876039097901993365940636580192492711025671975721702705277810501230910314617014122837839011339102787303801826741334184212693273718894653669429480782911948719947399914024664332074046796294906159716588276321203069016662836232554479633054851537669397197953210455796986410238582261778136336573606886808842986429706388149144729865115183893318695982988365914315148429860759740937242210659845792211736552426668205761099272979806203559540702889456552817931356508692784873268263055672193389740148108097006425547038406893393943365738099775687542619973452425159422677649650022020538871673192714745750688611877032681408785454526987698759444625918319784363278906262830509575261200249155478290657654779970915741202102059572194024698812779086009295805652886746119035236901088748311491293933186631232103337926689170235726012410307462860013760027584787542699131435720863172937764885222849079547068796312511143996098360586325915783286288204198183073527361076431843532020101467765603373134661086412049514488808837781088323898918796475475202143597273943033987109487995928269853260545906963207404951464400987753420895893315246211570624082024118681235676436291958136885839929074101172761051874063108043344588175762795608865478556603005922830460462408006670550895747487096024536011556738019832612345190742201691865513320504229348484473956934018749551255560577548485642737026667266184003126571945497854608645151379374165878882438740437857617946333578793928160425965269669031786720755043415021232784522358556485779636369734375063066002406253947277160293084822115360791850508460050863795634041641200695194243604883114004032533488003670124464068781427714415163226344837759478948664875214124657017403322589806083398778465140911460261020848163428703960732821012716457795227440640194837116123611765590104623555009595767484886069004403437297326751062290671298729829784636652914811350381496196438896641635735151800918726345455931056578511766620381471079125108760234517674864061607522535008765262512721981406930595996707199648581525781436659890818079665946167966109983654737109194834197584818389208409044710508326538819123838895229424460327055167354396612680451485242920995235681161805141373226853794107896215017208165742712475276465001162158554155714554043956784944134587940914706855397972125201115737379403505616181827172449773501842240205255482001043302945349334202828349908155005919737925172844280841796386404922338836269234439011769409016094304912583120131756506677018497765569310544001129532495850501706876424222610055223295303162841833102824757444898290672389633549449227547684632267885446835558705712487741034084474701392274722641750992306120952371832323615697801193535990152851593032422594719151573176405371812863161458985688685622091183453634142980149317893275658048424710045798032860250266272481456943909931066635178741959524524609414695809375402782237878888255790494861633897628602826102250445784738486876276412890738851017512558180860160136425210793793171377188823634873522344578542447773962695153050587683170874135577414493999963732802627061773216712540137221978548173863420840140199897736852975939890584217864280064692987984958961555682844318872761086805673859083575104467481505581563776654728657024515082362879698134927534673406626881704720962166006986673890988476927614202949313024880695714760134540560060786783475959711005198910377128258036957827532783906405378589452143250185570202210588972918952588173341796017303184723451399592094085818458692653178164987378642034842146745874856975326651638942456273048794412393236022409066365280872573929230251002978468491652464673216326850810512620126157693945508000737898681170850191031142592915057031428895233501602421695314031441768052983326922255911414362623356180580951749603089655733775682696871019471365476332274258710275310539585271262376018503269658898966947936784103048135593513546807752057260796902472734914455286509469658577824685017413637237622411791760018591941174968226707224255656598384221278243859043433948984845244647815251183916753703664049375906832881557150489248676777990735118631799716841558285337200954182572128647835727926827179365088895507538208971452365078918353635372583209969661871491493477456014183738984057384662518488506657325062900315902081728068938168687806581335437388874897343703228303618888245141858919033170925285391858952934023972659726911127703148542527717206474193775212965184485780790801061014017883695389141940936526147327285084305804087739551561958954125993312265130937401523926858485348154333218231615777716185498944079493368968266436029447283461042024996619656133160452621813066410562756201478691560318003037152711451373569266097132887132425482981670097284135285695468888561145290297900094210864538284694439645704994116192272480126050316452519049373772671642386945756408203155867253160670853577205872533786806657355815080475046328756107191981890136883548495110450447856394221991747147575654083199436985313986089948823843117613858420874045114753874802830544968586719665216073735565068705338040510123078539442257554702984882910343935784739583197278930749653376428986834563884720725441663208708443229480680912448326557302318028948203496153988783784556950811861513139546026019754956586285296562000427269239917268284525284289808968961105323815237289082222623157967635811079416750746326954071248821679954672267674727047636756468912690723440106394795195353991442716924520658859939753229741054817630458353816279728962805593621033810468988155508824604745548825424146582464879256965568758664501335504171692146348447852352239415871317157044793649776086665291380346923805229788753688843157850126289747362344456326808687806567071790976121633284228091462193071079396062226569369231966648283170751961390534738149672442047692250193080088645411230291867333115422224515883004619614490497104689369116042873747866917432478263255874661420716963240575027165473912708162166409681813768098609598178718116666986680044980821040013500503285629565725286168185986663293763936032201006730307885214244629470587921966170072368761356038646281727129490571711792028738912696628289521834789695223531160608057119885031999469106822462917525761326925357262995838513921061113535223575060712711717184706155969584181806679961839373488974768810486906522581329615084768750858054183369594867038968924385617216921521732464488326184218890176794156581919361019720030498227457906426989964684033303463860496951261228134113897000625115256533550973960254960790197995590193833984928247323456163372093091611615173984242823501099613346545828798498284783945627851038180127668783985683514607814026222683892735385274401833622313981430800143455546270306598492074039871158913272513139435051981064643674008216206914271555782580471090024235981844551353813932246362582196199089286821220037181145946492101768262837905957859739921974261238163505137658306982995538684212267449767494769425624317658295961870857641435317183351545361104019303947095516548365647453664523602698309493319323992572447691276324518841306772032173264970468076444451599470191673241005113706862910953087713359354506520462930108877666157682918370556804835080889831664725099984714627576960377965468846984842103410063157646877900884098449464721007560055770128390863378516841257529227747740242546314202927455904208074157573339219135596523012459627058923135922179403093497581982998799297226046314147927642779504292219361078738573707301377020950768134514261464903633996519774806446530572571277451516780598392610957960429904607016385965942510710042531133781691107426532550499714935392421980378347061528382596394915207043059521622234728554750466095816475426958752394853688517549747904762307758092999928831110697262073058729212890308773030249298201205098733551807402335714774116417513589609948675997945150641067723979709817665702200136533478656238320709092908165276649513241947431441235285989571248894626925417132658335316039441437843195439404481036035450724283745817916464393017519724595523218733065541223637489044321383320657726869423841827754601510944268166544941625446541816955245938317990752953120758798717567523165424195821173213929617594202911226060208285243143999535977778370584838494708109446474168381694970765716432943718538038590146904629562139117730632615054008157284779965835129210759372716390717241023349312281780544025802571050917100911946995149411000434098999716201066245275442409734474391364860770337123023136674800096770519419762292400240415324412570728137012410294152982198870225983592737244165685777516386225237916674110212792157766721031855361007964655319784601829281657895335478818403951188573394751686612313491051000862052945568172503502868881637071465998006616800122789728128881619090279722672357710058565089797735736138661607401293424746476720047612745727542870459831486807701190600678178050904602729884828633147348306430536623983835796806719683775574896317090582530459570943740573022168565944403267575116078072987737135074002250770689237508262366028423829294909750740492350880524834730369454291551886053541625942726871865594126610611195635912500895069354051358991458719018167926982301281065137445899688178156908130112617672319505962220825940806851192778736251233230426003573590850220974318081731044055368133730328357214195537785951505096266250070173770389800105624181704022102515231306529886348930434759464338026912331783246729700265928516171503046293398735347440403707867819404507208151538687140669439985369957511164153499056185880302863167350841772429179315525702885498482995810132979205956770120815303284124670117196054721569585696810983602914775739345005284955570447360779929373674597645967962825759307364748008853268772052535730453640240086090831922336668297086327613542224152755776300405784675446116574038090925472180884312739373594501967689179900894134911396675036417690761931784653761072946276342492765425609684460309889583782346434291105636758508743835532622963649467374843155242110542426419523529538259822158229905584775805113758825070754619577071813184628401070219286349992573423962283527319929673854814606711234833251259677769876280320537840920275644229662250702545274474347217384466739043284051220360063743095269754526187374705288418295503572313690317754538923560967890690545433597244054212132261963398395835698337964214357018806242018563982798559642505518553441197719080533639509292882213875765062082992895240328946402233913840990591288099603930437176491439978172509391044053952151965814894549147309193878165219436439019036373209492044987989248277158975216753607827641928199181224093991468014619197035398425715792640600578387842321185058647080581842941589234006401400497381781619001530103733219261174772201092622242729268339182153049078369485601810838194749799706044299407374182143658582861909676679847040712977449491855456164245908211512598706192744548361421902028431344442767254141141598968339619411064274291896365498356057437975604211836125217093692612154574349444577334855347521119123485167868479278530007804814561715010710677208533074905492359614570474604289831964102382930574987764875624141837780434086882685581937728316621528706446016844463699448650890915593724094433089425623757379813884262839176458916000662195023206791488346725409410977406369122226242047060005402526017147641925743774049506277334077334212115436929786798800669054043739653920955199142955170476405845590193806958039636651639974384333713569476746692552886200288406136978759008003697066125649157543996439409713053719522958956588773969781292184345505198062367172981392824920821121576025432016368638400176856619211530330602522970918707561008048787398361040156302814597375027316310525731053337769931306065478998767966183045938277624442470944190088746738218722169580250016436009450381920891061495302393687031023871345399235972066114659765556868197034634438170011009906393869957410665251813165399202178314295702005240688840614984944549443228384483419041408446460901206796336844860660858623421872102768646232348020464236477161882709561011621750631240288295183535874390608951697031896100968574371153950944738546775697401960394534092935276791360994801979242791555582461039286887519835711236385400158642131129369209685461842800342691512757170588249262449241612097223574666649038093190517120036502045886197755743327862900526495479840790348278655296606340812317507917646406753770389518780014771826315260478210615769585445309783783398798309132849594358685548786405760360308331517312794992622043041688493903440042379876151060934516877665265000975612761453573323031971055332787343611360052331680639869386786109571636321542440457720362358243642036901596267771700487274882780541868634844608752257773716213092708314282785232113205987621656899733659523620442011191172135224606844481769854775522151554645727695829586388226406428319765285484605129254241000630392356247374432079980911171730262004069084434143773545480886693693950277252405689376700231267255661041150135945554397224312361361440300322022971560934985989393533494020974654685486937859341763520609627392337300003194790014237821732049417928917660428097411394002326529255033672499500701425377973696500504704748556434001478218391654059673297666140868316541006466056830175731120020532007764703173441465956769181544417550140003401923722221962011009869198096959759960060633687294475931283770426635543632029696480275194153136926329579142255785930702706957262460016370588412624584832355602201931857966239168755391767680400199767640753501731213706991689211830835493849747470277255777671389781839877240416222585236486754134163705977728636116543832885145679517086912408570295787563209861672183572439944769556981991539489158154193501480209619147597640063100243476559217309253953766257920312232668268806030010332229243534635319096722218063571897002564102291501237851956964028947092266030606682786158990947903993213270149973783462709381163047946706392389576606342972309497322024115239951015393327897601546445966229759765974771679652504329319696100616736363259643300604065579485973311631655507046450047287925147621608071167219207707100042375201909933110053183810264504727019150047031829049465744141450556533127503509342199174768094955422955619738282032367881499343633605523586782659242284864667130824525913880822490013860155325689344098652102247710907087825556085523561892216168600526805554214593582523693431576776479864259483806864303717919154042113534020558148412029282491897474787453196427552732713494944892599772488215387451553899360049238455622548937061332502290887229756934875323771783562212234903115683473509739842281534291723585332008310806623143022451632583089847784057614866092303372481137736808999516916434216161159727962251408948856892850707897715012675386870043209330552177676318221267410922592508407740619205779615817940040531115389144934022295974053808346203263795389319252088144820140875547723253614802073177228250525609682284989672410337185995170238554536373312351359515837820724882439040597399932480953540279476121984679858001477056926128803084160064191405328465049996897532863364922507662596842879409646736338882550902996141560707779252761016947826936713950343748223115193744756271205418826618386793307495140008215901381257600822269584554781374297224546848012146719724597810331265104596142750568666751710599519398555901324708939326178066273260182208616067586796653958133438854788113705193823310662440462024620769952112531879064880009059203932739692910528919144620317380503278617987972966067565168368789759661445656109005944955405026794452216282599177119922904673382224443188470402812110836193379525261765961099745242792671932358286455286694063488272986250414934126953744229492677273132892186718691513465078182587193273832377885334905313455057786924810289667159230691907117463930506359297886169613537349836570439859659237048929816316970528387887081421209300310353511676783322910394518949771978104296497591133802106544268685805906224946754959219336717547591955219190640093763003287013712544734510211949953465010374897526070969188827844769107805087873418117469836188693241726620451573800338647999692608541765922384217495779918728389484953627147523811997897226175901512341879026784243700940355431304253332744363387691430053227737365894598612751285810317103923783112413337485016899312715127478774347929386834430922935230069320260470635105782288772843697954629394193995973519701963477889405915240647820397179844154664430303961122526879183583442951451988872139354907480681797702082194838670936126212709351132015086953183599477003623040488737512622609384938450355878009250185320272402047646550500407859133921924496929984103952808461383190674357987411590464233792862029685997763578396205102671619279030163173259573880935967300690729345736744891881335359301504121598272364483723824875095501284361351190665240305589411588798055170436571113594552862880424394841834460881042700878190018824482406811280359277547907131081532096426367776197754729740726473625191709681130176325226373849319721463825439103896978722049084338369237497824601547850712606412236252438257496388026893142936293958948491678081119179973195484221408516449118258361127794179582830857203976409100639145248923395958694449265511313861649772735185305113635461078164910290451346607795195192104848525751351738081700071624956713019189719083961281790738507197746569717978505019545108120157685145683355046810340601244487366637757502731583114059765739845205923474388194538106710896241263814621602482774648497688161401633145526980852615598887816425269589785221780886096755144830796328609159898858517154753979763485434338210636794676114731487162182717422993829019057485866829919125320100554355738011626912173434658819648568723297966781232012717170904318097795109489438616463385699603215616205247775781791708328296573098742223863206228137149468766660523946545471612983660188155424169519671525347652702363748056807720148136069735763257072068929686289286232039305096759462062106644403654311250932882725185005130600452893675652718874191195688339566605126813184597176945083357189966817983632900021083630099307303903990369627169079469075717811279432774324387395151750484425423385464093557944730017147878431451279794025061279294071216942233166735678541669002673141636788808290297054882981862417057068482500268368618325582058714414914678152375163173790941184925223652560925511071184995778652319795376655770682460150144218686772667674660174050953638076358645709335790626429648793351331273861033572872994548414938620361175427801706630985375957168580021889815625915757631182116278888971634794873801371294996535932344705059749619143103972849320717643492851987653580521717847330225232947827083216638193381454039552783795789436740665678005090639965229398207176691243466815294051010053143519327360969852487689909758670648245396043770857694668305653266275606665865477915887689283142573460466311083088487421641687706209651597833878261303153447920564056056953830571560569559118892700371131833567731543992928056126105674416336348935059252452325674970135896330778059477357495975380806029008543645060850934677016721118214210428748342325274399962800999168789549173749315923304709198120661110084840045117693507190165638673164968986283346774560726586735946654931370250737752436691946813267186911060621715726865884564578057229652423960660979784342774090022942532358051702293752228118260086645347068129046377370414560473975436691821442363126018568891907820012575582918629054467216205609961385878356146367701204032020677022335561267021530880737351619594864969681271435351071609126297353438054453927221563942508413396583387178607801301108031261877650911361265100585158056867451222013776869903146837499769698950046190263297291343342335098291094885410467064765748034336958292228029105809637998791360125738613447891373522895045440712399997534042923458620448033401510290327949163977744632856604543155826896067507586596715099282430715836807420358394951385515792472014158581841143030884185146206904870139260124021843230818934032475741687723711401173733955319045230681867971832514283086265197681594346979420951270112894762116999561719726015572868110475823778257443158135728021982463446948369817088902646981293445461192005322916905642115169194473506778327260239570467842312108420131666094357210332451100149815117943070049047216041841610591779506581193510379500497180861701093799378732024840273020762820004244217756232043248962691822818980886698614337680467272675505986844134480160972630582816111938939384111815698340128361170726285577122812730969925708539389023469322085400432397116309743558174395050500796222523504853236127087892242163379597954069093050265903065892983041521978867086536656384123745219370101912704977746848531904014030610953588743735669899104089245419348224000851474609775448174104100258519831074885262102975447509894861548242819203197509921065698617359122806260888036437580570879035924793256356967547018251849580471912859225942811448514074331026977560051916587465684627485300074694755522171121410853786811648100939250803126450685273685031569855795107123002534543843314221098451539877803917762009226967257264332432523949177869942135145138404155732075560694034147984415396695682212973666237040292064322031921864337505852178340136647185259089765085605014023788467399615361977424267223190796102832364404478868703883674901812155500612829750671795142277391497265341102777588198612146986755385030208448338679428842771635935334749186518091536367763301576800683697219913315431301162803697580065851980137725716607989068322442836457769551160853992271544628903975290882542392016415125010127884295963761690379710177203300025390490799290506013809073474495606656322540960793746023556100979657822554190449382364642181731059467038977317459373659695809631769650096452095817919006974904783550164158352908691904646889242650436259763898541531211162988682279193746533843077782468751632500341259008590810995803700120001947031840416611809549545929153936054905947754454412791112090578876508124930873069105740062937809302776347972330172729038045344354226136298819498818937253327493030908946541606867682424588498504965892534183127429640745669187261770442251025566443312351448039409452189473542510566780203513997709207616970079084964166631761508196835322139584975278459196820096366789702330659178621144090602228436301175438673678946481554577710046201688903153249219705971029054982150226160714517098452462522687645241865201260797354076075272637823541279827360405352797807901125210114334819374842455318583133318742017573703069260356281005092351341610588992355643226286979373396940545585593048242647979084467828680891797966934354557330877738235889203655144074870622997131344666395444674906790306830732594027423006254286649563520717344480228822124787775272506971108926709812865750381826682735054508673496331525575292152787359896453720474144953796950389584970042779275347802651933190823194665194716288881557723192096890457245900920394225502748499010284218825385311898115396333659553104724418232803723746875652068399019811942087054107374519030499668968301153437374135425165195356429516936749289301267079512263110021254412873778028886565064526498888095199922771099588013672045148423100297963763559973597323952152546837551966083994612704291139527715342290888767923774580944314807215289659379575037745452234250403097561486756263337934090818733695141945248780017970680846873248054709041335960850801098796189808170719103656120523754512691157718208565885189852026239796259908964324980393115749073500748615404254182050183502112176225657010290069627452239871644296985573497208381283290085584279833454057025545883113500604128309842241562931380841497893704526866612849457794332636144766166522647497809293582448531417153059662027896927226734763524464090716705250890410168397489444182701343475605245189114226643776826232827038244373223461302433842302942009629844827202451961025352083109297834179455040152231401456696722503046492569291075245237266139235315735759956740848845375571599999794966528977074299873881767341329682415378842770900182380494817707930358777271697373174922789734847002705833594357074795445614605228318441594062475982164558770118797984972892981832983811326605846630725580597840860331088223251698962799911964806915422621278297644773798685527193957745667560898600356312125154800982380409134595002421865599468751077341191552885399477449330681512697847897589738877946021303217419299451644810284432325425330818369065816082228468984411260780599462229236761096974481998235156004009800381863074960627900478865500761395741675080743930152968059677852538222023389673036849835624089772057462189715335030264404260004917676595795627274382877338357461980588207371532954974722945571235172394033077751403674571549170946946000512264840391548727763202784627661953688489413742208640422478699608187242532516981925300706383450869149317911952106240830089346742675838893181273559513749606571671126257436633727169713615082402217702753939047106292973854000309176307733366948765545027903090538962057348087744536492648700700839528995408129185440691486798277223961355976482415117539417355666804629379158206219461742792259954201071312272793596258895599884591862194930246225129646082621624674059619770031108048043690165621234021147956799006477041012139466030409876769499360163320032627717363806221535799162287464880851832373962908774172767047526802763527442877295634773202113629090651450272055100395664507695817824065210383810093383242423900279021455065942244797390184793982705490348311135676404329429202718771040746261484706967106827770590846374032049124286314088896040443941349820897595845509982911124798532237699679492748052781918444554496969703807194572054211596778790855131220389643755000757146577566938684322664453213859283667716931966260030718512433553888664012263726187469796060481290665479350398291512083024748868714760081077672129943651221262902026445732343215965678575907181765995238751061442908860942103550439662766532675803012065381957281710181683297924843567365857010533574550667992805063423943327414916777497446654259670189323220389570226516808758357226696200310606358939965150641949935446076161551135420631898759875583858664272243656680524130374440413673266419611941770730901892053035207346266481367000201819659914379113620003616682076500649152983488073946340237726275727812298044976722458066390927417215998634339223367676524702289222359585247349523545463983750249476951968838256791711557611545800294390879129535824741181170266541845627961024404332934216403604774409421103023643602772929538190496332653877250983202746329235657000283174130178986670859604865084926839991243218372096115160984045132512645224055953869509395963266620190803228626689348050825164505913702774028929208663519877800265769534075704360364928927090237405934646901356429611446703569052401484270780511559001902566414976604467245208260290510165079988996054501830298987125574329339340082334577573939090942443737235879675930927273032932870595204209247012936339691471669020108583160335647213019199876028782968738347216835538042005519235860594807168844270866347250245216070502394525424153175757594593102727779645203201373384594081548904796070869601573287265148532335732931449317087043401605227766430365430397909180222245985065384117560167886929137711924491201763426788195821096633350330725936249869516170175787853527796372303663095526991385622049694000930037853651175889467567922051127716913474655655729532871014034949614924807134505317849362614578181889681977126641345379741313159844428055339315876622867304528199419080963289896183057161082175119348911549371010571929681299690911475564085501368986359447821770998403713340548951613483231601716955005187381262175568749647568998583102661744066215074197401299785286637993272849608140044023059715340347140222578769749193652661669143921998015999975539995437503031990216987378626694846891275988801888388070881457868377210390447763125645492505915570822736456799651371288489792593096744351944945164233060240919613806561773843126210771831628781429214984874709021547339055932435977135325470554752646086176287532266028833473269996604008260342112109507348118285344123616664622828491391510537865602207850442105558865445063945745535360916878751102268160575034564304246831328082118691308824740906565131311184671660566548808571670872217405448149486219186292129090262267917725793491416831337584483670019339299828385095600614704078190633743381082869515096726405238097138534370949894046390757948551516175459459819573459087679245254093319033884731221338030348585168332489223266590233233386194358560165167725915961026890272345109359413607357737658246474418287678321285915754021631280083851392367229378227336150839570164280273801909589709321194419868735135465225354801721725098495678253045759661588811011889812689915876069969477295939135997650197035799423675394194948772792236780667414232491701905413833161874067684236699631160073219651468212657523699004240074248114774105571574393600845171585395966085701944472270705238338838663775466310343282159032403999642719179682663152567285097286329564767112464175449139129660289374783930354082395744924037133786813992414659048063844994496595389497236322252935059300891286992779436301022981656417478845445441875240090247714636053068786442032541704160911882456305439172033732712769984392441080209377973589900851284053608314020257165161390680145472320421471236384949634953844137124544695186130399022591941158366743209331674679681341939201526632899591998092386509313573317631781795329584303705386677172863968877802215619830133387627824753674955295865077259612998599347755358687903528672683331719310899372980025925212247919745909064965784834874797566050158371938713479696839116004705348030231710572969100175308017761619455969574079052784989263357888207471957030591063249068785192801784615171788529643004373705673196172979054868889127941383761422969830027803574777886971436277932555650451123563477437197285143054321776437417240204622513718000393167277834621198873878195589319327783314957762299893185161938434197122062524972316179968686017810832676748748637267169011513589123762156340655516975839258570552066377303069098369470233917183701782814064149200776266500747036873344739532371706066848630467294617084216748605071636073224362064262651202920181359423013813186750351416227954014840117155759009381232570165365032161498847488971379311375856215115914309458042824867875386924547945412855272656634256283560401229373478026638450388654107766989687509191263420268952976150803310051032494400764856903934147760078063576794465924655154743127054631230691499224091117508343072743552944103006691965772328399005738179783264241952152482944712240938215906880963310119278693580482757213704311876563882524065169808906533871671444051122127925966184947179344407222484013370693520326426338229363612480415858781275429718791279544348381180157050406106712444798696849572291895689786836540006513114118789269636118116625433202684003741365393839711074673036508523292886028802935018861836331081596653170852024520065904585168269663960647431675721479563920375401293978060687162906694873698549205207477842165955960286068454313948538540225234890370332577574358373307805953441528611025406118424876945513151791712599483578484706170801245706686180409674031607254037257692472020173976032960520906754913062556484563035587875227593832130155606105457910612637352468506951279402059395948591473607658643111128957451861819331798387299029406625216353268490349479643344210616294375957576443898835039928504484230109353450095930395286164241005116448276737190685785506021121647908291349201569078880109925930508175209404760369367964693767634002023298480416904800294626940490828524048217844795781825699766152255431520789108271941242518582777574006969554092253438569468785304528706967447199995778667311458229402950335386403785139143250305829010267934053493506142443958765688791801210743265045948789458397874513051645926104208453668797193048689922426179669027592678461119262322840115975850637796793805392152732344172042740584763628374750490286106343983925669812799265594878384173225376870596788357288935792870026459492688263995599384566174822883037745909527150569107403598464388795796937564290216281698285857915989758434214574441127197954464651078469940236441646406763433756335023740813257151335786826342945496788841738322096862999804923888239555501670574356610568973225059230081740222286608303647515654185249691897498061328957367551586491541436976366029221214962308390265307980524914330475098086445855821605027261147125852706589508727509319456900394005880895002476117548297356859836917418727792325771149507120145988008474406133900471542221451278009286817914702442704507813615578584988444853848952820270471844853365259664015982084903250366015242736234376829947152089732523496576049197528863519687519418651675300940019899113878830126753877037258373548761098318521156040235504006660412624876263985644300803825211463817720638495201475956649247450892073852358962274939114570006526656940290724629534084415640389144012617960635039190064326243946116313270609349510063227259949321745074361039819697971863401494242366749655145134657574522292673910285884812025722184803224756616172747619024742528879214602487132353660896024458804939246854222116075125711673720109391150329681630789061530589626242074758402658922899550094148967805673806726486557415748517102567058215479701251828036105097616813927209922907694249669796387899344349315116295253161729647224303638645958446133853339864431196963189319737272625000040261942407648895990812745887254581278465588057155198966869774135879235726870258527817803405764244687424065264486669989512152298102299321704854699564202417951385363697668087187202381574046091989389280324959167087929281925968110054598798186864445775960314252037972055505622081633232032625172311319565418148755472676314804623520574113436772429826218191625190976925885864526803284494833651814599666492010844421203103055118112470658961039975632614100995971058868323853102428557801423277949958122227176805007599016200582746272240490465819486946643481341733284226079259956579929919528679830255509725154349635514628487389451686103995396645098245202786467017622358333299756766651075682675246283756551509044300739351152046938381824533433545426703415451689702509202955299858899731055843978003558829814540669366950393525005567909406957614438292963688859996876937510242712009724100227589061041105843294867324730084231193991167817081314463967749660454773806248778381045585367483712168994535532532054951401040320802238801363892572581708358571705675460842563999688314726672428327796553812401849176352093929585524028267233491058284612895316911718401021619030406321586782258707542003996000523994236764472295580441428817233372754360775289110020285744649560001365122744969452432923619858435283337371794916570663926877995647786760235776964647169787600419735545882860276838337402545363142275438591426057337922724497200269502365552057582177054326883302069959683372342410409629942693942415278393996090224496312276817716475947954775593498412647777213447974884198710432267746010485346825849763589627094075612788008056788811252593517802680733175464717756810303541202134165707897257488457685164687915498475409089089504558446473720273664642664826693045679320307163791903091203569936044506373759014448833443078507134900056117080148283562608168753068222093036251846185904389719994185260285663014661720540736472705406410184595229767791973639311573082215549285042197090946399129950882214204156931663177999281161347251685915628734926447941422154860069041966825369768944390559327906874295704193519609224543262823264137336778659713832356019001461529624741245413588185035378760041742721259686323534293496800984365279829068052719012866127263300988270471351800457075267461382464423535584604548218742004394601238850464520297505633034580509645525508646599366058244610318632411671798912186602227525771292074293866036262950041957827504340326122562236493386859421874939644354596353594700528278806542441400191967443685254986172183263022197033505248743754695047790241314839712838117046920489719051187870349212303276555026187456571956053664393441058315324445947699218132678275870007939843868994617385065359085549784960797428129803176510152731889407015127903497503149015402042518608418457904960066297453836248995924988994671663466574157692748642597171249583079599165198845316818115122906456431850453119637919833738750587948308942910320248784441904580775284354368589280557406074316410606851660134348256754832705090486052722950773140897589554604366260352107301600795970091087283368746501826968049672839628510582152588851919135661991617377209746202954154302813427640312788019985458777321316422405502037546581896150225766709064662670317472381679681382448403596328923909782169168493178794577834595919144973818837397669666898431521518965903726544385108264413622577079171574669314761789960894800902058637814803396310218176160894328817498167920146076240542959230929042834678128578753304367486807042243189964924421193356924758427907694600692616674900137290226955458565347475955148323600848935949729828877962159873593772097539686847468356126779128734527665794492964461955009060380553021440978919000494793219328834633469982955555436174942941227524998941143012049293775746238117335001304271696000576652103004233045905139346754274176746957167894664673097626365814306856755217627925508305757746341868172496499191076521296244592407857521226422557763988289838773371680071293498505464607667748356717672293623113227881881486191348327046663125239292322997218844086748262739168934124110611288842841029965984470933928007200660666262037836109171075648961476116540534460719024380469750450064168109240251641684592424159324657920809151155267216992635123073149175542755333107942442107844036606825984994399166699133287748822965318066112622127609477737836100124012455519424368904687649742489050081046568296562175009392150538463789518162194697644534159544025345252523362802947808145745269664722539682640467899687457143993764221467210265345974746406188331731092496309230320621596451127523972144329125620019258168723899884791338422740872412694383221539514166560102976686845653554497856246673318780376984867184781406795991149532638171285888151790457988086369808718632959727960789522177224766654809285165924171240702935624701444140970246855115149307547295082599384258157805157992861101648448823639124452257818002870689670467443059458955607578234911981115635185065249608922436795469637676694027430568705775198637534156193026174371404933870410206040549832958795876686111438882156221888813908534725890193425196646920804669567358630585532759160423383361683108861989766597764488417483382157119650639977916029647478146154377722710354332485763725657733432340297705531599039191036538816937466234660726974908223573530113597559103445378120612681576872846605484161284646541496231280954149098003796854624873392000765741217272666429253744623839787007131495273446740044096527493926622721261752182610886319753967508440712185279795318349071484551455016295194487935165653211078823560932104940622724851751033204658165877950075866872678521647264094326589884815246854922040506986994657127712941402780340209104699084625702750794294945540638039534796917541038231447309652959109404982597122089080302578634500498695678694698756535350958512233802245790555083919880585531840539188361250474001083910416659864397540043510890367503770240389011779743650512552687742151414944239486974354963316393839096386073219495832381324143959949008886458285692021131991479758100499077975171298652789623910271040467495420329275582266260435281878995378154039208864984946293405641710000053308650072633389962674384512831100289425148101973313815030772248331409860187407453693358700142508821420549315361180517888833103609753048412025129776079294203109033402201930140168281106769833123537381430315088216834950153674300364759642253782939453514358137518682800269000058869172804474757450748522232827075123676733317149238321762830437258768018174526765180711259677201409476227896672572985131017764516538789779159196375253247939426378909011554414156821384711768978023442074001363964996959465022894464228457455793292692948198014176656961540405091933259673384455568962740497669481829055508221627274007884710661661070841227910415105812505406595449513724218279874095238283374965181182918166833396995873267108393456552247214867775249039052847864629502827486965788955838674236158350186206693015511710323700115996226519040117195401181814577705493444297476515264125727050231958077859585228790820332920741665567600018456575815825427801669445523666971086963163647087445298476070506525571473773357741035990893670890374794521982445738985202487301848510115351520220823071985896499537971213218590559737817957888550447906441928141557831074804531331688096144441025707552213616401746467770800130343406898177483561343269778889112625465591179387539354378312113649785089933929482925709094934998510963591321024045083571103402976310097034241126153618392788070964299077375816558012803615173377780233338530365750986225347729556412019151188995284786353248921201023403037768673665363975162149072517818746435125348671220919426176933929208201495297783446854512898386337524213456325763813604633727806397330345535358585160545349752769451660477695736690993707052900875271830991049944855841746857912366965001541818071710332673299937366374547974814052179511027330813509387315011868048700832799419177311980804168113780743606689366861919270792910145408075536689367941602233449608908557496298843800591046843726876065574301005534069655760410583662540880526458778599135390789765032788824720213796330208590607055292230399486464361823662450215657332179633045053023742921996898271888845860973125407443636487352253191677305782346055586435645067760112022996685875569477159113463816157215418663163419016962930062384859923910380249659467967764638613067607546992014678431887138046452985516454702752487302893658215527998631375140864461848021755721060879372308071760449668820779501979621527306408857211115202798689865089503929682641004505005929314509185459343059901880416881630501455321337404354445370847589823733884360797872478446668081418519330408663758970585585263665676525858091541362639896994480886204605459489055304727771690032483371060363602601211542977513729900199479727006570902582882276523016071592175950124563556640888136819351671546324144014799016540209173391835570940810665397693679539239094157691904955637173088401227528643821325811391897405676270308240475869728729939816016474276276990927538467044912387634350277466729432915707368408176162180797609508904702616085293307373916501355502222778408941491995154669448843975082218027602386240461439677202182205545706104101366836615212199365629660996801442603482756068429275962495831192642331957827939171944533200868828078650370002475705131842392509357601783298658435675834037440524193777829436659552353286033941782456200534831474270904116838950413570092628784922473823809515432050610093123304939012660332314776666673609884769168244139964758863312121476334741814665836394631826171719154215503264923103508403152542558146715958599594576823562258711327839265893035440334477150156296943659479154271302903747479344232236114631152291010236616369782225938901243738655334266494496662165444340426438074006110812633594027020382518648480840213090916055708801138803658286270329380109046829489033183367229663340125081929220022974377899371812018373953217767416970884964197896559342139336697201572180426666795602074294643278756576058575322779894672970093854199590657128357689402183095820978569216152815451437205100250317782100960411537182494238381105238111181358613946763496238053397553678375187236316255677501454160913248587046998382436791551719971511808127264609809413355007947301343179489087923089575877967401384679045509533665689110874770884886787383119513059644231267542380284888707723389681770354141907352199822401495057590080019945108270833557636482795743615332119200568808407434214048115684927006415899720541213211805884419767828570739875490871457513873319010121828373630834294329418170348216766973390656065276499049862764703847829128478376446869399625877433662356271391367634951135265370621121719554961927406842440960051100478194556426305343800552398382072474406862231289937495569198447914860866858922169935222788932326700582840654812309735859446793183350475878042005740732167507868498680917982109199385479447391962825949410575350546950977079708504478745343352335525082510410040996397750062959525089821192437959548158372271023315177554670569206601002807806625700220897954893643498509382059671952738442490988776381848252919423017589399796247574720229177273613001679005285349576438379306845011592852193675014356725412197830990808468695238082799026577504637671470758778462489274976207525506352655121722117287173250082373987512108845386206208415990786337393902350975217647228245292809874543058758722297542015305970426546857564584530262329142917144214878808215249227759894789763749988866373941560333882221098305102512852799026109353411742701899036162686698804856016645463766003607010209610549508411720528266894665958802753638405669710122528550497060144923358596346107758451573968291154055859921549696603628845430954729131563744928724194309233376545314931778656253175646091966938626269505284818917452482446516623950539316293387002706319704167102457992404382916775086814628708876051500308680369698122035576010298076426539985326978147622110422048291743826665571619978835713779865950095491269499638568239040593372067725472517222184327496974180170100723094077382340646584708147235050154819906992417908462255884538063035202173902870436285387705441748792211631675843922297800965203012647123806136331445055047428723492698169865391502461101895969129705118494072247741523058531294837898340731250161990489705104051115705586286236796866528785353004226082947384421818667863730167376946046897288187093123500362406196451067035080435638957063361157422769625467162092300695250998587087204631343791391958838788094309548753024368329409357058804594965849584607906903581749583067350132424636997314056686246074061531178342747901544577833856750061894928306557583439333562234374449598454235123173340544616278038710650418557062073230482777539122312515286645250623344351894002806817110545779558945300152042379541108984056468924238875233937947281418701245101699828902314588058272484902489048513265221788972656047278236845483437102944776237284590340598161000180954410522627171164234040226604510077007836359789949760273262223216693939557854517990932249609307000857766422491202592067407889986204006676687201692119877442457380685712101137590585073966555074191060629784185581299638508920316055906368978151363437597899723218130225058846718143898261157867394626962630993617233871411435443841641007092728493809366680662181996824669538009547061034767400148443235143401714366444897096900308910556779202279220675842013547771958304051473104118948201062301474848759504553837984010939723741787196180432503801844108995098155759992852017107021167215030549917921588044468801998002581302071278515610492481039041244939123593899278751542841799091685718879863668945117773506539865831272504431624900103582841577517759341103205578662518082773764559005708255908884907445715914541406511868691716343546851539423107387091958182200711834689076492166257651505051886775869336529965610106434805831766085534573867775116419967403196157936220757597126341427991926216979885281710741789668688762041264809469376181686104142043809021713549350561731219851352062511423098112886359430239943808363251897360972740633015114252860250229382552474867406467767472603671097125082801681069948042190840365943390009878783103188286037121815733075770884023545288570376444470165856077664551207456088869396037623927084263028877896408285366221218990036984361230244268995682216394718460648724502471389639787500170154955223774084768666157836066238107335267160605299102739081800845927061306223012020523666516260665570219581160122189600572927850223908583136626420758975978872706800098237159374304298908664375889255377498940969905697923840507502819297938228190066839950615392559033969480594576020960275489000130676652257374097834546824774745624750127178659732879453381743231159181879293478382906716900080355521753912868381690142394998179867897263468602666485220057734232031630714714592515706118095049917358222469734431079459930756668985096189858518970680144446487272233455698116648945299975856479280104385370398357393182648981604815473360630715486215675894687783159226177833851637786651862898941002680640866951417616541904251727799770184439286968405346740128961444966920877683457918959306981931955102800573945413877692642298313479349177587780236950304612374041059753848130828812644131786295993522126648533934570249749411674863327435527604944587967456307087929207703228031980900448536436731023761020113574364079975041175624472725727906156650317789407524342788157135201364166799080189617886031367325073464517873497621095699396017684496851366937752859996061102761483533125242673348056814665949930091141845527460992867308326955888499900395058732994498271235585918988265272242031578408116839133643798760885549525459210999383905368919996896992273275417371470005207090672489915068292957199308703005749170349223941068218863728732587290844594268635021142191432337322454292279547404593415668377002841408152555337323364490129774325703217102863346668213828993978300348593845508726363648113978864408974588919001000890351665702201654512226460680961065367982820399429294697219327803699368601268082685139189764086410169158794053499563850478055766031695733241803649390160321851791746380846477079844640262750978151673721238688635172386773895889940946757601690486016568495205328976739573152794290397827220657666054610451836209750764383181751236953162401747070875181317983843226155019434389271439471553912051109586239241022976756714898357916508383366403650285522167221529189154492115599060058886902349363823951604691142893022688335375588472801719820042519263863114947545214153101240282897073532976502216052818172402716422582651372834565630364044470114171560409604072174214323338180413573590018371019262051567711910774895248583872331842255547895284065308625760407976378595548742236584809530943543353066355861892105044663840894946136732350774835456050405572932866152215786889688457791190455039778357291345893916059525163626800649874705782739624324792312739715166120888119161547713572895079265312499319478360162008693959333297114936592958340792724729229617394872506506268677409159320863916205369662875397352938207977930076699369403238705803178373681683614480171398056939043489962289548720345419818363393005128824229766937604587240745849043553703989315903746773889524287195946648160602243311660090423992656174551494546456590999670115220246413670128728780476202512204962522389669298657296009451038999152933644941871143639406094548850484249057616869466808894428608271412740339263491458385389653835246942176196118717874469096211452536988990245782894436982390133247775348976898716826638806867268446740824625258449022062850350451368937480768266909996589775974124418080026568136454697037982022417756127421984716018258439071013164869674466109530995336157540285506716634562971716103330889215754263187105597644200650308662170200160078513316793009610730649946357242496035295631897782874869895290163855395316825312741325641375589445799654628743672412353859046752015418827010349350940058673811978675984805523628944700085055809137428507213994467434148809089786054515641307007361836348009043408125582371660327491867177072120243535620226826217762534835586851910286523488626281026773758249172661045752823626762343031136612956007585770108130714558466539482275173610346856344223270182954859025400849415275539054000352889196056593147556218265602490853448540465770537043468475073815783640328059030348579311344576668675650009884193324385905325630184331916157633633250959462134986866106887542493472279306397340244862695967507205266234657788073643623819962574821393464740392565111711463426297086275568945031534549265822850431208988060410532132478450427337094369602520283729701268768821319627924828256418559556266929103994867319590519690729766009990185363536893054975273815346315438322662766118329377627309587124245781564984975741663823494574690152996110725907931202668014081130060108242669958103804627442039796483293319580839080220034225320708580107687941240682931871037103503275532033229107233486086205544302961836661860065940532840195263470261649685896853612840130476241382589280394763695577105301368533609621523657838850079276265816335427048171331451271185214894994789176964098378030796305581491010782289861383226843050885166321442353286198047155805549927641769179818593209480912673455859063173111812855913074546867520230303557896533291249577378571711067523811040801611957881544251124744236168230461310336094598020289897027761475215558168032124134976154296262783393749980500703015537649038903387767118803506682275653174560412818702735211209016679054313470255400562647743133361284303557314416366805576895977664759080278897772614387617252862040479873507987294699490567684398182377464345512895338198010686526466532733602594117116846945180495659184279757240805867289840017513367808386949875499377479483123007502661028203142784266964812076822366645547408008626345839128193523284036047546666632879481085325578040297718720128815213176748651106150120095651962128062326704281825396180293544558365354386712691417653356731292062816879056760923466443296267876172832876341025260744865281356182876296523878313605565040016504513491239488628941616858204704446642332138626441009289073792443499111048737256776878370294177640230938163444639443548261504580433855423909154120044380499189243663212427315877126598172793010704314233732376175020996393966889825926634466730561401959561879505492843984101823523651476660798843584891499137765237573326593460973774461743449889979946542877264330934795511899187325210786890690894553119725225160893615082845478233865548979526984109069264510717649548481939672582131719154655113944184238829812380094437009303571932667616011264707810620823430833702200829045179091990078669471957401811854687401331861158106336187128988450013050233116626990642209491159494158458018927405942621075523125270870330260963993330138541767286105593337459236005082202419683167212309603825451056499528474846183466600170891318207819555386452043557215595132854083703095941675718590988859935751932834597209409912302408913689754729939997742884784548472676299778030211272258846267411058377310347790722704740447653401759313030515047913136454030662976108066839424335972578196153307870455129034593549986016490116548104005855001412879531981710615625223959856929483569074920713390263894380689437399158268969051674414732802486844653728304025124241719792021947172547809028810548341170436487859842088806776066706252657145717134999256701828752824280034325615040363169294180394487121082343288076165162835423024201538468817158559615100931178404674605116518501933346272688579428818952104992515694553555779102640757163424119640674219111243212398744653240169589900458416279593990699611842982061661824906115938430062045795814161967601452229609109031793219045860401538789382931085207552073970390641126673599398140551359940000516682130825516180103775708916804676613884193572588103401000074093587726329020712483047080315666835154745532060870695996884912050278112143210877850451449627638870727011471030979886365425515750503647451306837131378166687748190607071399910818100912651786400456952989235193103803782939305394687337479126982945553070368358902464208585187459389234028182782746484321119796411268430119083188943650389067428486562657491638639589073974910432438445218009944847809451113496239020087476631564940714396101900285615828180963095822757708532881713095243172622561854126500253192202167790815713447118951238860651747788285873099317900177718248130555405514586833145192585601150190958590766822781421329091982614017969425303483713673181331772164154035516876342069204934516868805721411687469363323235051037584383448126671083834162071069989352787289304885328029024094539070377953902343914639009752426329198041914416782048469738857396171760869570482853625635669768338446172175116051636568520593173352127191585410002036612252685106537496307782876472372771197324207332026934188459129263875064554029891765627338711543936442294299244069479107928634468236340644341091603460793469540974474761108132326562977326103535667804848934336684184433255122776171050922435565469329149270689140530769222189717296145032732585065611725180828109905778301866358419777694609967272927461098517590895835848977768851859732700562733166046444305006159156157600128138812803560806548835257806975243165911975778609114505164096648989935362119569345949939517570218615791523849791081321064782820425683544900502666415909573508096640887302951939237370157229359201597048393588106176260592480336673922217309973020077278972197542594047709567300860100263175417785101968067248905081468085589670409954085039561681228946073343622721601197533502502747969686847048625282318039922561777821588162279591823100148767536069135970824465035959616668802236568089538069887269716348582723993104050284167958072203349209855434838606899944650317429608775189293344051818945745987085261252232375313178935488911197794910561690418254812286058576616256895811740918059681824638863391607205895664354311466366924467018877818150780721349658264903051543212897985898530974373770753679877805095999053896773852208823575808959640910764552094272103542005131084694351794826156947585436008472963244319540775247038864053657661991318298440554445812171358193333185187652605408178194638629198386847696180461161815340309869128498207112994187507894007696743158035793979462301421789876017106259054121332127597876278718687883147385174974416864524326247332777554698198673084832812397608629662186870663109891717601124390670607017136663422859716769152773956929794592619803513068296803427946488946080703682481061062379159009244971676116726947511769322804805020913837336999911827533991539220961191397874255637624763318144908633228233023609453690610419118124138111235856154240486500822117621017179086871962458320971119186932784390704203332572858719665124342182124650963940492837350129126529849486487617252311144319163354770776296865298550534509643175889363769210526971007775217060170200526768890524205656287799770631545562740888071424191744964961296989194035821248450927219354326420392937573004532516875762619596631778560866414957128523172602778107598011731009043638550774797215969956985933873520793752273252767830355269871733864360921369517590885331193415458108875323663410499999191736138990136364993817261593926023760712429927049993272018753696365448359829126950304408763792873797892324795072912002213445767488817787593959290053436483513421302475207452356279838652087076232173980451882352458897979089055009520943165453158355431096443206734036711287821998462138383430065042033955847175764883961377637720747191606558547773469824251287954982740964740106858902138170511711787320535003694475977331672915117519840568312990066194459193167364056702985631903895679238672129861425639166653583787052004267467373438959990293048234026943673670044529039134955874485666248960883428053210704446700613553211958000957865579293788834712294221054113127569455284684826580850975355261469577423343998947669485567138507232843938228122633609744075354567667639787116711177950681126397167268508196247385677977480272494349918257554509508708822846524891321585924132293101533266415500175464987458772490596861126080999609918133860989225079022266417952587401897424994764444885445538653076162282883607265497827152248248517285379148795709642632628403555538881404338353094842126043317339065167246263804530804912452896579733081604153273192521738515250026721245826781688562049484350086092573693779695181765231756212105214904795695469177099992933619960240282559465195134180435222512787955134198508362322397824125542978291714952942879029112447944922970501030374501648137649415966491897439531789096971370199124471486878883950889577717072107259097816896674177135133085099630165421131039786764469030822389785199640151380466343671495424332286983173866710943450374641636353421484671134367371060816598128861804630012460400715552864211857690087598049519786617566698026142285347319732737659199966315837251746776875986710827236062417299327048534371159061541023120835747717456180811634916744402068078103502234048352429924779366120561500276908256365592164787262127688298892927469555102329889616184551614442135569621240377802011594109029425536361914071947990558982971136555483690424975428909116045816423127636719209040741251816129297074904548871393994094417665298325199425868491819084207687849409225045072643258928611772599793497730096925897040184542254866054329539898123840805909921108418110524466901073791378914568107651299036092902070185856525488367435312555218000431700092893492112407296708152584426666204569750748714766947593683255664978161470963734640680703651707177158609202595540078743813462854731043316149929375565310554026744085075663988808596006885247745048716407352350767483356519652398801955055676974573659488653816570422946699452261249598699230207643194682878809102640327623604072082183270670019151413918902245345367966480571565749331852616437996849416436560616942556775752613530626090014556941914725857849422685136409515541641694065809094213336995531609860310012370916716610277620554334507628107036607968290266189966412294420397167356206823371010186356882221773667908386664243204819212180764999852472764048698891105484207929380585834961899171414399037927936280240387724391645836041853049894097215273512939072074532906920605723192435399425072321896653929156894172747932708230197665819875643585564731617460432347537173095416949046616909780489919297782817208980082958535428066072861698723093574669561690608237322266618292778553064122780826742026978947363049170175065245514640725626868482850022625155237844162544783263739088627686733235813783243595619968194133732598056018714838752194015866077711823998614427926120293607728635523130738486640761345017555721301159972603304795659054008005113775909297612006810907109949690591537040937099906260297767847797773330274005993121408111882765995869216209888465518790609145405604658343486669305763354719336802914115054901012588829715010025774168029593724864448970000881402274242997927834259630940697230754388317961577127321319617747388640930003634394024003105510183677574464141952324011962061020432420685285564878615740533212262681785471319758753757645872840980690813427809472068707739659780745559621904300680005773524963247936691559995203359074521207093175168494841433524883424142206485853571102294125534573921048870527281401373852987048462806414185561022328858349057292659712695032067918430941323991400980678530352543242213985540347149759990567755847978952558837049125323155544500706269000690734884917773087126301094769297696495009031165840364840510477908028421155142844509991854247400443213700211554744819917173683373360195659428155804848543988787286979729551502747081014293250040128433658312766990240050159264917762359503749672816020283672426490705706134947461440092737195830023732824618025780723398659717928274111303909133434804947821221169975568210980681118317163275536651487778758468912403579710461426677293038164391561494205890175625746164591320617380792488178950422413764677670321913399921616846302532138486694472439285990106840758953654347799846806063917137797723814953716750575457144469736882180421699428140638754344932368040251544326575507684643333880668868244554399668610975845033716777105826077173354035949328321509856651080114867332912692401534527975630220506954038123061050553423631990583525830307849491821591455007609261607823446565582986545475579330246058972184699220336321655952880608924698492929019250845132057203753309730580139948147814744600731741538622511602163675728731010685032292914424435911687982112383451649784827907143061344313312791211447032704587920581867924297241687907000608350373389744343890378647001574463146232001315281117058649102036585954871890405721536848688389152603658617557688284135520759043985678091431616684634990895224669847712413033849622585812376833538494813250012144425109164967794884342425005138554471372667040686404850045154835088489452630197337688584170227888619089332983618275980040927635486263090041308409554956010506903934730459564096378363634836892877587217277322058515017984880839331716808885282826310413268485515563556088423740811787440091053315393699527146454912089840385861793965102737335882746270039146369530808577558481658954528914476906240540800189044615024607902099501906171807692386066174145961364065635102472909286476608969531387558952561083120214065907018012471591227802710505542988392771056432177965893745977622229789294923467685566943226956669172681022180181043114678311771556308696738434640063657124665103783985949827029557849272228911492352757885133909128188031711412579999810161548028716902706755288603723403024770379435914128443027511260866154291313561833447879478116875023203207574534919225733842067089888504247940595230782697289211829002467834669300523505736572408029042162063591754006781317939325190725567423417498037413710954442315836360367072596368743758419784488225692835421002673610991584578265229474087993739499463536593239792210885699371179245186753201908842342152822850427917682231777836856371262195819617207770586872935811341496523054176228832115074964330966707646461077148865919905496350926606629091222275185864334969272116252322745636793059750480296217474994437394985559921289045863792696095522927789705648042664009767414413766552806470306341259848273605080360767350600653857124121879782525770075951213414841290708605253554138846054528501763566642261618976093448566552791853164045369357139666570209158341222195033697960742871481996905130837850030211724580308337004968207746645168189855622775278526611613659003196160961934621203798158402458047897490766666530595335771979347256645008751280355622227891654175568467966006233147260042560648001524518368427812471859677717199938198750589020420381463177510050554865646509113752816902560335535720492418282646209902920666818960580102797307484427050737273947741885395811038705166758823592081177985980332840035479899344032217960454396458268889457819040440981069451777014864963731781836088731637113984398640150709725849838396938615395391346626693642510111240475179837402379394036507467832053513238059044469131416658154102333297502674318225301942938934144563602741176141467242127419291122039179581066309744331309444542746221686308414462322541284317835812439700348001360046201404678021391230955364690757057897279455615092442406050032961365188210872672213362281518214161597291792845122373171347632392694594044692700932509381753678671343014601042445782738407255361405632245044790552281392435115472535151311944705042357018444616615671974964548340015410650808062383838132847727683427063806664609466026980967133258713396342891129968779653392024764179551210753604399809854480243444887029544762387513276076594080959089002115144920721330773703084521262735894920276207164366730250564752932133550188301707019770608351358280427441391254556619991144934524309221189686130122041678747274320722050266248048962519953195739040266045892655131310099365598192034639351289201723691564053429249685448394173406267137900619447403483860403329291201829148571306219218851443480612036913392232614713125101482304761874825011827299833339048258260463855611081650925959695404282748561385365581579781460127971214945597175707342835552285734153701265920023177116328789271701922425641460427091559350748766642586608155289080996746639915334267305870808363441802645912358326219178524820686164876431338835023329917211960937897313162953089428676145173756875750901970867715579236533869563753721889801541339812513586982156089845246914465818173224212247258270276974881591694308202704864948323526338181730602472792908182837734897365336741294702960499074659168829888058605106600833425608500962064117905075773673724880338849840911444943881881881751609622496755851156897040357794744471835291453033590058987466398977029627376097487535239935322602988708110791633877099796169404167341488998054627037410264581323939836658284787533502077113175406452378419111605858539363032951694837388963385958446150174986900100191360902026832126610980138901956332513417483629541194451618014889245939528787111030644809127626288590402027949918030210275038934086683754891200771323802436176791852224014717494627484792337449377661048555740925987272445311659108031362983900155050936208322816703413114807747194179278270159162057296089160451853405944843294675827059625401196987990301093094572050135748587033507132363464841951577518258899773345112847625611242704203661625777260465055189030812250308190993101912206127862530050370905748533049759640702746725176252466204081893325598102072004268772770378490999048817483612068112848015530406320722546174530323950414967177870022661760376870604732733168092588152896969829447579056440095098999721454331505787758395764925010917543646760032080990665990982340826225877669928412977585370914929077848190016433397143289209449056693738531216073215601258551561320475623005388543556740288857768481512609494037502623232862782648062120458829166668577242476472134759859409554815797399287131535834821082444074822274681088650938759819699772242280187176771426195784749196637658014280975354951275914272689391845046789849113374020801887117712539802029376084808903025444083100372482419451121524315855519388626624062664628227435832705011574775884495249204159098409409518382943614657728533066818448756465018443129988028699007918654794225924777459245282735451781679633075717591651714157080786484530826560680134391285036769647309102849043242531955513119707205486900650519147009985807018069882702292935097844758754548830529915956914652441510762205142832115059674314358754782756064467762307413278316342491507229403160361938317413597378263015055187871055253797277836072618384957551965733479305764935407520583484924923628439902013303297811269246931185220414962937168269088867425986709133329599257606979176984700886035498875178312696024364038607691098632263859088209787620816692423389323460510259633577749448000956256497820802484689331363597586445303301967537842264817074752747357091246424816385472007847565804674534776341881702649105408819531807749646515317864223148482532257600381436923559038146445431052959099687145009019065855004115395106585581748404099452035737031972852310505353549257633343651590806862359094819750706672762860088025570388210678246295802575251395878568410021876572917318291623312352765827448975418843453555158508066626859676301622069146675507315767675859474016811164169402525583411296093407361348155810361177079463902688968078143443438845815705160330670848040540749518319830492640471369541597538193893367860459281426221103366690152379082894341801188578091005844448103340634488601498413054153608925306113400428679805806604948812522890907678592490131223250841869711726148413691595245187921136809309645048050218527900606674125315042071101707009840848592126178845319903071589618512745198840110530580625927921200094535669577654984396877741506350052958190594132249007473992652556207785685328926538432216262262580464107612669830576018237372588793023312156939809261467432248494849487627238201468719703239063112198875861550418611738168126598891591989984306382756369619091436780309095993052641665839718910355680052311931308987899272433258160617454212558177113745652237063421890452660563807125343515591837089697485985431802726726025283611473154477587598703415242295775105327336489898208518870650414465704299217848289255741439144656340943832300822939603400050351150109810938914945385531966695520138139788655585527119487925654348324768845611495490463836695219497566512427272100076863977196597892723462650619565306751746333065745049001623391877646062945022025247156922402569759805604675459917609592289979248404437227830650748086570463874044109310133234151240281697799170492854704330826652569255926344200826080369254183856083841417974027771159143097090025178493614496150617881256119812424094646674657077874794050490891114421756750494969652991356931844342068498120413525324063402810956120585613296239828577935197165909071173282189115374218795271543128221981253223953352979996491307458441276654147338190171341098028705135550819283319299789264081478708363484095241227511664098317648396687651678790438284432128851625664521782682426726253405715209314972220230246721626525598719933084806273985534271702745411531126895986127538918150746773905194117282263233658987997751355112927145291805720045290406708293966316687547816635783041529063546208874133004986243961736587267019458866441885149610240547292661531459673298765354153981650016536597764506318252795036253001460718142777553623936797151612567262093736703455135140364637709776086282307905847206732183580334684114865550664499328777961510043863079546032228346327134025401592910909225391541855314973478549536886180284408899933360886909137682347191014982261681604653465890179256607316521514580380447741580427798885641254733709533090722243084790177843772622226473763640097138578260712531741770791096440208071735983563182844555972827387627844156310544836862657805931506634506022817129471668661777428777976262312329843787523386667366070153035660522737781267878807672130120078069456880394016203786914432745108606627882729250571060874688522543293076341935684983870339252270807851774471944434234491444042950984832864550884606936508661175684439517905730018602153946527922077407667727397129887729189343992796364761358589656968717255087341593429671631613094375073114981436576085002038303357152765132757376339931916128241177521118372716580324931745958353898963242271042585035558936371913953785748711124063806866665899906286914898727039144946317217583563874817741346337971245113443381117836005502920811274727435624259336266380774351312773295096157418340586190796123925447054824593506887060161919550940842410271636433912030229660562862400959969485208643763469601964101509434120944008232713023465883035801031213867690826769907582310770373492153730873046495131351660650834996381865861876464244284190772124558012766602829759344536126111299455429250012783124074419265768368950066096924180812188430748256664395256341414095654315270101779827148640228791906672089136450427318854577142754620851774403393160341609811433036620464222341474804502946718605244122847324078180207058326191215433364826368797568057170270903233979555776213131122770885122191701616802536159643278471271076495049743074638915486193997725028065944804248176224529788694293183984174221268461661116099314088500268595458685299855185972377329585888650723449483404891827277580655127005866793957223124327020832300258681070591080229889848488205048737075835812923549591865846852581477288431232916899740027969339212428849075957815162728589923162626455749925420847799163698252628237572317196552122453446994588820677685052107148070730790591352386988396217716991973415972631352446189955859771963028350640388636752486148128132831714080682914361330437929054707925875061818552497523935793138956205992122719846827093969586981531464019416909146443506901770131202007247646246158150692518412765001092940205353194216361938720601428409516994544390114899904633892154981217791308094135623123265504183271243627879212839070455050458057914646196566267062871539149765008933309265889915112044833139234700180311710919380529882839823001474157352923666425033807269719665234314433561721604206082406946974495406424806303571911201217567728042187017775149245575279094731409445605886683823850931312295830578088112777266604501078672598196720265478761410600443199862012559281831999770288076383306149300413153357280489231684988859911482172991729747367816342043479300202821118066036920901317363165291732314294879929968085907375260758356592285411243488903206222091353746121336443372712196984004719139017959074308294368243279317342621328220862285864117581719174993619825632684391128279321425223251478321192506875076173456106482689661500431811959200457332977034044489573676493362346424951065936365155680670247198587630882221417082162427552479882881083271037374092931262941036298689426328209195007417569054136683227685909488854226700974559455882876157828568069529518276624268469805048947256469871648402523432600993266077483478982519992731370210062318647739999815175691724275567998246920187880202047124016814216807953959472665487319150197102202658377409736794171045977824768475515429790870801760923040889630930605683105829366851148584177601423123710029059809118345577744024076373248171577549085828391538752964684860236700757498605628632436681139544729590258692603600647972770030651195354192413312646999858858001574631554701507985059085460334006080087404153635033892080000310255642443670036856488475869347076800398214294270965165479360164294756879765463918540035681047396563165161142084239296494375093629360491047312700243335339843548376414962474973771717916780323265596458124485371378200628409102420478422819726468642816404360323731297314900640770069622180317017693774760262785339112593283449218985045932083852268496463766594579288962086794999411287266575406837448778922731286763390476963522316473163537171880721215828300241986853742812309971895896222001976975058557684579400218699538535686904744863101474298637410827172007962186955437461482797579572104677559495472984688318060414295207939246511354896557372990804333810008911343002588134295785690933668027467983470534986733857085955111863457627772857063982301037605199444279989748648318302890054311433074450198702436171121650991722075305388222320746212115586531824465438031297229522507515427536126736595259305714708055869955168991419850405887064601554432101098355763710157202357589021340370769090848850207637684580643099308332687762724851143683074832776230616116162878046542167849277296882922123488495763592499965286708309971880323547094717806632786290331092021915603992736029952526999160079487327066650565957538146024781683741591156765709945558091753469189110097145141682095211715271881129157531898856455393278085601652610677156830327468930521623382942470354204807771581507235704582204980975051040632234590420534088994101475656667374547859792500118211703132262357699890036962193572637261380604350751366090816464295684994653071191018942159131619532026945278199663983998832134048188128875410317803009985387826645224305536720244962042297197396414591296536771324467006723888341889072016619559807126921347855765706055049348495330316611293612691082516565882314067267450546418452672542714727286855409653281019100896402382709904304615056486498214592569041143335543746876536451935990312290226756445162954924054671665123671074755162628217900451753020696879264697530535101772928373064461354018816742918436576124518791645527300176004873335540313070653331596243070771368642659279325415091760721067292490542992404347322747794954148726487730007200673902376636038866410858039244199385191648141306603791462356543071472461365353965349458837523053803153803226900363381442230704010495804466230905019658765454501512102130576076480521585835042276681445035285364944230235730664162779782988510551734897616108130210819563232553631081506757433095276825884197416286020336857571007651955489402659339417848803580608960370208338562969110557308605496918170752625253760407984419688596931641623322082508347558301835755161441375562845324171318536711467351428500230861762482846191873442061508691384042702417668714619024781615428314035121533483000957185231957321875638861129774792273796769269248460310963493764982677268969333021830501492674950009845385867396217415723916671677739879104238918373181248821915994547611593430732067481137558857881330922622493677774610156190457745713541801922305850231521176955041979361827623914027912865220427076265008780523085856875896048951763309381103427433406398892978399975532461038346703654648415639298016137694917405350614390664708904511002458238952051693771619922177535250282532871113372381813304553625212520514379484363549680019815278514540210890917194672638431596646994526338554237998394583016585650036976037224268343064754572277411328413872916697557671262971152301041922709435822756233047556695179909122751735156203622884500498585605020553230972486449938207106611627202363570392583129548016001894188778458697756481147819102721718846813482223648119081145797115091625800667472171466545207660766448696468022603098206739661740667812068746301647907782491822770042509389353628177306799750353077205747849122059942973102783433451188888713225165329001579395699494017444874476962022844382240505232593595413727794306757426857835372395170756196341204871596495516521215862721377838549958341649241125850670357247223847054476696023527677229766703323017776762631746890562211061763607550442227905318871924607117323372974272436985568889375273486638047095065540387090345211743377506517000314836493799652821094844669801066278656629089003159639805766861503822308302240369041782364241101250589871989603011318568196509257647817470860404143840154634349184110145346074916113136373775650773500777651522790334281180907735588214093311810226244930615094862069845741519233444919129000524395583676770715752994788194262428135956686763706901885356573821747341476255280121111233913296758142032016741117982115585717452038396739580044649961793958187128072746181135994342023996672958193898420375257599774150655254156280084426146060434904998110977416641061161449780021384925346253918386690553828991815055481199467638367657213426570356821595660349335748840062430080582918740408205414925144472180077748727078623694577432077311413328884063088992044950995163227684903044530628578573337717802845446778434483837252092041028731986197772194195133584277488636764720100496192161924203002409616487712646251907552186032291624592587477456953642145427932695080187034796397804221570370008695662987347809646512675565334423196881987427117198484041010753044746883671382301273239070041900686401417424307595843741288209752603102012881391796975648879360642233569789526678677985390606946356288422441959631564445467311708673746881513385988459221433710623752727536849899091852851014607808883890378904248440743788414426502837367196537046109251717232302638834022791588488536318650150810366670267788823949499665666991897066834744638917553036533207479378002988270484203977133076859381660881150081416471776905275354620927525219281154865788660825036463362332231194965046656289076540327470031358459018458106348314034281374391364971321283294974160805490809729502334340702243294704317731343038307375493776948023459650337422378289071936167098946573902209210318195437946435274529717401312376917065152054678619947960831211464117260185999628482849880316029804370621216669934096336102700182025492108499550612495432500156387801830426654080238306436969273990600854783350774096887189536113126744011466455312599724290184425638742168454106692270372561657805421982373842615684787076962530123802204119314841695527292835511674968574989183751514412627717372295515586921792821800482455240350180012193690462201221275780384839391323167406018244549927268746836691640073794469118497376260971659934990753694918807868971837871032857280411270085521956703937606359409701596350705951268612940680123525278357002096784426831871825802833609953729489454880554997062283877349335671863973966582527101703887254331440197198350467088255669904789591736700624387266650100042000937542395170217023762321024213450232773800104308548303892868218827423379802752792345606139268951295193768704845797209972959946194489707042213952655139036146513343712953078248924597077499595441627344139418638845069217334665185945299704468871836365660089549958425398223665111850102749468180079436905557923697738652464606681857778213370407126434530133302062537621691113593378828482396655904526857861213153567972236532683632862674182043162407460784154394288666611995199885534598683009325897110005913176683574023580212091739186944070733571362072550665011465418084033080304671341525393741654209202443504235673345428408738347357690860722000278637885949907740184476747476988062558004466034647417376923615237934188065345573182966023464883240102172275750873066052638024742482020765693301432068338016579416863653649241813531960492905735719815563858975771966783286379209758816892328471848728986658353065567469849119073981030285390484418178317540202048662414899568338338275200061516465398832091726075518481209425932384461670814505013495837629079555786698202743602961529048479560147496072551609878234292042218493833505174411336606682030657161538533548713687983187984305178625868429544897397930965822356445040999010373359649564375663145743384063749289664593966759140758252799822329022748711653348873711079853926237960587280000367115087006232700774690683258111083255589544172652924057909105720339392709568310077584733360480269462162057604690394990609108355528793923973732397455778337388974687092119094800203105112513867215417162117071924686246664112347242049083300532364277946144751638562494614020709302612773700120757421148598110281364078451088195042964606279376015807863147099654527206908443002216656150346033298101892530005287401597001356410105213724190064808345951804953411716101692091103732111606882906118432767601880604180000219602634829855572114570807312356657286926881995483635318809245508555829531328708588942992748765400424026997730800472101507512364962691950537121540334748302082827317236992692321469257827348786275410476443691724827190709194494356955619873205358060614034140238409146027986291306070913642430474123039985425650563736211373855696963871039296828661741708143058313926701038599933633974895295625637411067374363110726052072792402237373256607060539739145234379405728979463675471741462794843787439513817696783559814441557456026754943992511323055705193453552358536171915552959400362787795936716222313855920610852056949270566655300971109928250346979571040324108853178392763752054561513179457367606869657689849183360257391096200307968831516182424310258394973917762563820397147632551258429436474001502366904764489037937811290268767624895825063259014432107181016485274259891002917871159117734291138068999946031682882440530285531127364724293938681650766544117771002933554908933096772115832592050733282224514848309114421305019465536389731739610543103185276929544557764980321709170829388833666851467982674640193832491773658880433298643510972562930393423687798700670795844001062242643345562273748801592935624893162390162290389290381459965250814016100443998144513802711862212266869264735503147364829529272130597923364549196966069044452027438012031568585273787893817888055228686372675609436426258265208637788662865940263833473746208697363569936595928052202627578077974221564517704232005936148831537632004713319809105644683561990407209206324151871878226789633501983182070106151127768933521529888479563691015469826494594048111993182540139265304355136460800630884610181709905888643506380838219838204601642663866753103111121605132135147701777566090674626677404522104459859269121725648348222724074333460487390602921647354849974985585127115546266044672657491765468605647244937915179477358194694946578723090587664994428121291994970100761222851284693674188875362484692875295595698310221769691816721645058348811575538397048161818568849003418419426135079738809856755350976292111648250702251206804202047011698665922468187344284909017393994303845133554375059767524238476156348548426720976032657426466510005770323225806713856734100503424151424405820259349294764000052839096052586931906232608510823668945071142192991853203308600918611133159653802985165176768671334556819588439431107363093225747106190430824618685478814956626296005933307213904185887270676909778445707500703830002387309552062014684080448928936365040233582868181009719792472594297758417472154832205704486344458311427731746849809627555484671805098230079931136973074080522241416505032455758727015944498393880592237616353470029703905155623718241005505157093128603774324193134286429149773283234974179481506564908843247124605311233499172540476737414660829353773750037853312776902119075012324098182768723771102864496963921315185227582587595111323185179575111796857750610042677266484756358681574034736422504958120262986714899525453251692866870736976494535829686089263412874046030233724709365915007837505251691514656477274843649368575834712227802600486700848335261584961295124064883012843791357773779054826986845867074950111262039377013763501419805602907831009733280852255713300910876597850946880959647716460133165488732487311462892875064380791023278097452174664107281680255798778372913043725882563742018942282467392738459184550505326043967686531379012365963402780286941243740492103954452447742359286021146990215787256348336559316900945973781933401843289159088342526850404992036931510620561051573528812138274722646863482746167817486872951508496183827531698660869512871400250195723390395337259267761572423576518443362837806086602234619377729628645169374870499315764128069079926606196011423580975598457031312541941061823919865331507213917280791983530463562455276153272150895307592568064214668178564212461504093362461865195760806820985000606459538243129547155393667655866591184638748171179674128924617178739701058682593974601284862785341157138376189368569980981304853912478452158046611223487608577346833115118138823911792661935442838562955014099488427345238029098318602740197851583809242044515520799606608465748162830976751708064203459256269411502732909489404899934944659064550636614389842828291253556184650968064261830321383372785038253896479023300572023119598907194580301761295999248810844915263697872424110648373266033312297612635579956158922192199022655341022731745417643819323492207579472094458018087913229023179777057333099185646324055793736454133392601655200292928579852064082298357479833261845265171797024049681121408634009780170157126784560308981567196417452082147771228058804702581495634698654622579144853652788692990957630084740907475646323106765348619800848363129655529729662997101954471420330904718990331108178098923500927364675707240427340176248033745812153559763751846175165034830571188812774322126703024351266645182695525196522792418323618024307580958437115942641467874377430874643700545546222551862747497091306513214767635657641330529476768113363619283043326594929329998153855509925113099908224709150050212758996598169503645975698708202882976163152191224418026443521430368584793776041763302513347782391827053181021953605001456953195467926402676741179517251161665116940751618512131992787584034546941817283427693218995540387622804245430052804175914053641641226227796883608535042658604407807995700931933635383604865276103289866276596293635483158589266477779103530109721060250976841853337357460129655610496327791319932253000107761423094513445690491246417657988073530366430909031500847793626007866497913625334095718368499426873716599635251060200895627545328805070464709573372107879355492383449489030357923167032813148642844542012473925306793567778386213859195882555253750058554568341384111253744711454664424545428996244353354314628314893472054226564795087688448504255842673995679523867533147335428155380968396401821462742887269449275337171814578325236692104207408757650513499412221025348067144076514268701216378586061430051680977149412914655329061888483470803207330231989178938181150861312753595066679376642352839366458070686440569764972963841915922652411720124453115350481674800316147247362657650031694115010816711944993784129457399770895850989960378271080463417308682519245401476570238735578416661083449599181749022223887787993286542551503438269939784440203693636758193935159462300430571386841110275111133861745216543841471049468006474166997322877725678849057730186675277977585230478099076761814135617598344316209336905468129660585188501681710795419772762816599110610465649714289443254878311660500384463774530311007990469243494587103865615959443612829478852970104932237852988734200940332329869951110568272058869409457734459089188133796659883187392078693287344193516981888553701985000759307063821728297997769239079702963675351882353290041330305189597464804873400679061895556858527901369651194805999739033950375720914813389432139005223858531500676745640035828636686061567825644077474577446022105263831024980511984336261389423311418598691679610495759754175783799403874212191845146947361595028715839471550544625771036446722900649568192887293094068023675189747184055629579766661462964178048966768205973126728301059481388012392644326859765847946815624773856481510126075124733716728274462676887032650364435961774703738225781238358459882833089017956351749974433514253524336836847718523980548755964743423074037542973193183650637281312189993366026066530008133380388849673819500314762618616249502745418106489949629528112572042245499257822700252887384348246652681111961944027196121136492771152640699652025483201315375036301756194324648806188323865947269734421505404587476304207656497081620154713897139782052031840059510226408685122620911124654391405192943357914730028356385696031625078778070771377593145436189434073554859728537695324181998540675063948871682694028256181328574030329107784515330356351657521166012783417348012225926486194418116851791249017568920726903575794228463620757474450704179972370177309986688636128229276061694852842862009084318127512176366552535370036590555585134914632398573072146066923724860788554561194413109946619529805183960048146045533770023752498848034350133592198268742397367862925523263631647133788155878509902179614639877675230418832933251055855127516620289722411372386364244129674902733372235717705978257214286216257578983680812875961626698158546068306124827454971710072765555506557268703629702898682431007545466669310506929003157832092476053000410592166913384098437805128399643303958383582611971902899222816455062696122344498250332126750973681496264678102064608400322594104363012291329830395005549704150981197937834346869499593612890575976473643041583061334444738868630925098925319915150615446109776942342487275156997931453541550725361737869036572039421505297331026943932562811597414512980776870192785718764720445471150994836012770614433308967758377628926138740496044127576747931224414902622253210252234515754650281622191227152661932215590917802097590641345302461709396844751855581964093819869745510499979732383308215267143651938371108294956051417606987595867903691304057182255016419555795928104140723203682353554136348761997855765183675592619495265651473222364951410067629290351477359191788463793745696476498038863691437624100174869163203207336443936776574256501488845526894267643535397558002835743683774154209681127428820026374380411313419291198085352847304265046971903661485450867797651378766284671563505382839777215994960076334233795649133622357658976531521848988630175486427602128077915885887295702415662236843310106324776192386187003314752089699102149202413859338532797433146307625640011502110524503147215882909847644361509973237791533240685960876050734552835154408419579780631574712466080320299768324492032179489198518083435715151509865860724876589483614713176248300959183716082547845859600246524610844228617579657744352485586073909591907390806319893737757330928860387451884676810553233717414781810572419082497669888596944841769863365688400560695232517677265620542852156205415505048882735840741222019250300400957392317523624754074304488850335454919777862696146415558374609777587256713062023752910840796335610011249741878101229498032691063969017775617186539467482640260027921322231456647163267768197025753423934651722934864415568323880885575096985920761013123276282600562830172457894216077234165360420732361090152765946511506122992584597761977541076013188070738234294279095028744857689434507053985809623727954550201245134196432939169949805982934785400073958006492620487764410536231638776725143550351824128436357173225533159056395841176758739164510948457600656117413465960176049738132924034113433681919559953621556830487666962637666340524446342210971436422602686781040637385512171476958386934202723183401176383166493134743935849308159322487192595534179571766884719175281645567301165036999750046620641689100600375127422641259915221038986901356466943939399779687624787900184478595595233375578093184678338288548179439292791879805672749250880247625899078906033342510636901340128933942480227438450002300239713828908175929743184761978079450936540179747734199400329470995466889392592790014188193608171951630808510105143289957095128006520103982413666572618994380505470630650518156691791861853433815258775084154427818105506688024185206669596793202850111924988983816760678171756960510872375247933271685714228966284648701458902631506024338232308565137678133383430352792255789912383989923352173362950311664283514078926136584208653998659019086825903273001267199232793171328291626860357387089545695115432027356328157599364417968311034413521185469643552524094093767278885254812527649285239565030826988304374725164858537276685280915886805006644445075343174227227468588449241322292320224774846606311026154339391228869881535240537310728911661476990786982836010999089859904236052763354315194569549215945088637247909344623564025586204855537487124298228823931565320006293659066167605941982783626508442295579656027286282863391614989557647180671466944324501274606509168393196569576719686720078982341132029623924520930756104512132788256237923117676740199889048714654009883207807401367630818646771715873309844362477279552022740340910382316118650479466961011114294691196023474135010707022539835982095774520965687886591758955131183997692190829924550380901954350415032408472946049930631591391995446294106990757767135766847562538431727225965771300049969552426300712849019385354458446888525760829817504249370929584469052503107714907092954923755588800989303164531576762924778621215269791368421983245246353753790081307669004576641925422877225215994790454105624730285140519739911717600472991484646333848889574055456700936655652026209337099057900407493659900728677582750307274279585014442784853163079865389840345778746284460269251727032225187249014394617694224732046358081257543852295517088896955512292280160071525951625500992188358051625244659286664679971128507844827242000810938978914245112877072605897418364247752339295697780397979326215829457816671947334170567654694709787896304210514761206363832588425242353977158492228786069910200891801550231633213376526526672029968394087362880892263937975759083185234669540489113984305057041531226135287978063733621089305559843094208007512430273438511387641654128845313498598121318978363949676134126034739564226584479015050397464397291324822258692468760863457970817773508135579909810041995386933903030653635215000662955328552422055313200586477534935616723049088672030507871121097247906217445859515539817376963742775392883534976713679403406832029456988344751714650359040688100114353305509944252769725164451246598499853611559231755417429334737717367019308722792027253693027082818408909384226794572235354132356840633496860905972320485987494937231834621043293147579346006862585494639009575887778134678451160756729047580791844641655264617880975311322143125370575954908064528518068086850501662036112742192176854096313135347875612789258463678511186825728638796421807787992329662201677409463676880750154664829383211058222305406025323695239423789843885522865502143258992336200912232949912324433965112967550356064127873018449584467547466840433062857169242045454240848182299867122501275687047027082498794171495456452858711768452139561817464355065179585881203314510648462625947573975598538504742386754818758598498902900030862988091501774638001821846346318976344825698469161388742578334555414484986738632625542276773041593715314858176718964928938368438729778521504844610886528974858200811602176887092420821862652549904730705411611082668588928046153012204568756276007563780307592836411654352406373850857834382274515718311023694663510679614165124301199557965628003411438168355223169641093112523951875296678650885437934730875063832944853272161662635069855962408863309095596151161141505319612341300121572056643486179604361962766796276832813062109565085421326830381072051600538373670920426957104726733137783168803148868741070226473869742120182729760211908384834575182220590011472222498807820864105180862914057179081466289054938246479232880402287034490344527063473077369911275833241171691969502260352450117569279439574663622764013953003319999141633190862836325364627695935651037669979293051696869610183466256279422894942247434920478841789214460493580733777936039182946880354982626436467136553383465445791019439089575295299982325173376728637155319025538408757299328591747985893942071045204283389805232074259775350784860810124269717488332264195474310913547008009204736942621861501663911102495318628158093440173462078507418074528159259909679667874986079294215912355878872788844097018749397155348733806666959156511031550446177284087295332773608741711885527029980991360491214257917763300288660863124478693201514883650268556764174104814102162041298221870088424792771723902785907529370493799503469538699520223351304593863372667526015225763462159767967228030037994615578674060400643313966384637881868537737847187664702979538350963867853809788451440093029302382961443294989407861595167928399824574566945799384301070776144451565505339143544120442701230031179009717613387614201565073313496827727773250792338185624206548262902801137058167263491559741361978359819822810815100239666050598950069546504710878319168956242882432453008218614343952766921951630788642884449081503518456817537733033443090344928494197436756189389702394144902325838216401423042384508833717162957303135953737260569723359475480657022783464781688002571821744203132306220116230859878769678157006476521525013995883027272319011137500422306232286996951598213036230732208864586442231954338222646027989155158842908367750772740032350472537505746120125266964410240858577230075506813699588643087092396460117086121193867026670373866551024880699303448428396433323558788413963883195267667689687891925089241111759403553612242701650878921606472615870306108512422690961521906318412795913707199574663870819234143061003706728574160875274699275386962045591049463846214931326403932829695774976141967235803127265899673067134622031674462477072058749518211256409935164859876433774341330101580887906223162130928344482224785828958411384762960727745924658934639894827859057697879290931917011084400178887934527547762125006063714163789017153782658760675754845626797443616283537436062334444107589888516657731748666361188342765682689485101307527308388940834225996944704712036955405985856720737986645185499637936576932811312621696902413225834597559356473189500863659736693626950380184973453236214190110491699845825763362146928203800503955964448456207600779552985095756947892411573809870731152362747384462215724342012583529247618658311662829892105470210685305361496242074649953881142922005700975423889946383916757179733768961648325083853837813509338219695099442798565567563580625718946516305871710340400345204227429170549401821269786810887958050084231433870013930406927227552943198074021607661902915048363705422430182015149564585391235805670660649143597057199084046228697396497376275055478494433350260216055251944659179438852415941459649155268622535462846829535930627867923240778643421818558066237904861193602276930552743733895951042193742225353001116333444579183465883797633253965209863967528973515495880031252084256315314039193184959874072246996309357786331510990544485928486408690246818368726885571235048573079210915436540575921066239869722063923022869182135295800159784279321612587567641010120743824847384841336063533315065854008453059928734140963794444668129257156768601046200713701199242946216657069416055006703622831389108408884920306650897073739970118182639811452054188842522426367281647666117722879755273852579381024048540788646803457708332787979077631000307143243537950511898029843898941150248343350184032531960152579758260616943143700814343252910606604517105089054409198100271695869396754915123275452113689903976750900580147633286232581297807806503022668872443719170224591625809751385578557022374410225899391449885420626217610359836672573632134496453057393626881502436650951218900699464242235502852455285063713900318485969307245059228459908663047557709749254387418742315605272386570145957341866573083256621263651183365235612445579401960928153086725347238854912881448900492743905872446207507730426715074060262274719236392172138941913017044549409659933198838137380965314740517502139634202821309257856503994980805436391384944423927146364851655712185230224380484945966424271837071506263674153304587311161288773917545548232102987335101159274371312382785635959768493135919161770066494836751798325472251150632715846036502336691499937298197734406613975871762081647853351340163163068085635712618249651098475476816830267346743058577609955122269982615372538781596714996192069960765704056417587356122020355837612940942962553599423158956215724959242270234193131101955999377296986667286427515002847112441461934178995660267087045314163021797511371321318072823258915039527974793046872015668489909388215605292739788620146511967351292568658485807755286951740354722277989453912057081539908297363901973528389056255545511731758924478504302887208074635202767849402842683561356770680364748154502071331312238027834588301932508581054100679432514952061519165024281757897445751507699100219094385294701982051473938915248331733961489163162031916215070974835016874365823809709242155365553431187705548930957562335894782205386388297717500904015718971112006998443740225226070699064647202409217443941306167393398477106320360464195205976824662450950769231400455804466655287071931037374570831984604886565161010731732018434500771635391165872775618629777791586908839203505691923950602385246978830637227100621499514371027764114473329393748749208218875766607795167538554735997504197497743413263442226005254998286868415634689869827332623988910523204984669800241799531553152409001361576812684251861660847132077372561782522002781285907397087276297745863655879668526404516127010037826227069428559777769993346337106690955357351440324897024091440313326271311369411521588974007708360023021531101347747793358097213540091796572705251608521496262560602135084828176219370328322696237324587534148021933546995796022188514387338714514807752533758709111363153162599726751110921171628747134295077397832095998295652933358132770333950510186369219513340747692074804952830979356765372887833105355769331303208521862240138317776977418126742522339206199865673195716617317891037636810330308971931907118263066256901511691139943630879849299836077150136669107074849457125712217359210400497740325776952019563218621340164328524113504733012898322884560680933995652537780860270114137233712204765901445749881884176476123882042735896654252603430747916317044321159273539940585834395804135169109371819226012740990254608332386228846129059248810951357390378949140464346732237233118780306857534982768010040057530384866398378502544432763614443988523245738998953834648102610239653877908359572282667162631972453707717344878487040650527195883600988403608589352122642878277983076941530064292599303898428503792023362163657964026239636127327481430623451436643147016464711099849216680196559858017117975585983041530073881242169992412757134972904924487830995765965259389960993773003816390223584455251655774546763047496213122707196856531944021367194086257670193018359110701071010897978098959139501638530409996157561476113654030739798898594873438300011913189817353422777891392472909004096960574705246220864914471225457447920610894962985150510105569481515218286890044079190322513885147294364160424698837603066081361942958936487114074411431176271120068159807412815455258958680620840650006255477190857309123644068964097739048521398526215785334131462593735788805780185956434310866494066498570588140044228397903908852801906491725616143213583200407484778994639403143367457137046349848494902408487595580045483835223899632473870021175455934560863062069250931904540688539889758749422916254184245206499655967793362559739938207588328826073101611674105503206293886829508463786250562417822532052964745736711136542876019989162366136082750822700748057129572201453948979806966852475365534186096638268489528829611339921184295389599779157549077729639005721708155707568186667952548693659184624562291069926037090693405646741297187639344825525688737988533840705424309950669848935007248248424841697323484042160338525190722526869815684232816135366713947979943606882695863830499860503642797751646259598089261781941368643757388925304969643860451544155460204868090604142250943625251793433686112589141436657022884619501959447394700285419728715537664570772276571388719908892917287923575334859834061125573224083129684820540421929348205491682162874998487223483739071694124107451869967113452814940057004632350628647748054947460998873629508995958965364491277549065980548428654172114642978420499692622486061751514499099513264621764498046741216093135731884060181889064418635389099235729269453069281501613541717489289783343629533626844152824896728906773896893872502237706932356281432468059446181362895342091946891990694458972455879773018837439218370448755849166038722417187033436188907777889203643843169631003497498939584503029007475413414587346871675346241110293929189500687614766156506567845927498461846998660564358706732426814153675948184441229461790002084511156770373322208940645592982905113461952466299184955539640288212557244136258794020925159525947510936344870749886997172255871205490827718670374946837507327096939259221479835017430045003228432221819108141013704172734319548102973171875618631621494946345087218102078852793636290994680990929529030772304124480235164442796743465676332584404783799025948442560155365508268911155278476662039880774286439061385314385153048992370971054158100570546831738533256028853124983665574566553082880513066801255754908195498766949087023131203514372195873458822816859980400475709102941658271349506673061174637437438495851861009055937244932385802398998646837036575283005786591667344694422481540957498881783338163371080739571336052132940829390383733413387718432864405177252585851709461184463028657754285740266987197590564501077081127003067051864841698700212244675569501819997134693039172768738800433825640297510600567598805296082434402540620459059872814536605066133926667751585436537672036374889630087864813538112891104021156681724266388103268335870327898011483016242214022666767968858224336148079170519240821326052842272435350760435896706710245702082363497713499810823942258209182808957488861936759004560231758134955660699559601826035865828208525076313272330845329913765958681123359203995297732184092850747624062709086803971633998854683100471882617132214417089815846705646570067785749519395792620120475168058120260425898056816591728077950123128097080491488355212622569091376990196166017794026552042306315694039740475132842948920986787385093835274202030811892566476570319630749165419561342318112077038865300902040309660865287625324233436724559135129982778861516368524102074310693958883250846720240118829055681074402729375015944391683721717135023464964428528698870552408277367648744815217724659477352084079854988812993742864899353744182183807163271460766879342796784374318604119971939098941171224753445514114606740493645343592365010277410685527874560145584590023907980212372977353792702805240078150420595653593322136995103098766000538992853568199708909152532401615057368469666314569842913549001936946366195975126387540231405208063430229994451436756050072989712134920569204119470166056562518862293099457162004821132542519422279678323161351518094980082682000109324046223603524393920125682574070652247828089413896837168633778771463011166151488561754705543152484717939738135065017978213599444941614671500259950232759084238723501309942497982325235882893747921164490810172792074381225161680413245432739561043189891850028265825169208859761336552593969149541630485035023781016756137340794937384169154265790888102514626754424880011818989426099335064774821875738120404289362404442897664898666461917697834538385083847823318479919127004219480809207832240885679088862541618530977783327105944806237930076685618447640154237618859899664723870860986527969714795466636547373332432107576972863686866799954859150970994112886978379984807447988919086909098416709501252267334348031173710873333521711013916860823834548742332952548314470848590514597074413083567313820782267035611093022395739981559651883565252893772936200224309131938007151788210904628480603518298535840902338030185171477067609034205728206853027073102430127536248042102311816386645843640615960416853996072592053231734093029169673603593136306240980877723655753701382201149542416182492007549743387729083707797239741771307366778703969804030273517569332391963552518437856902230289136854722505314442203500724541479885725279049698795616543737776689226160964505816204870759176880294483983067929813318869749690873704117447018445175689242273283862572403459771082323898855199296636909968154124050970002933418102483383313659601985097446882261595021932834535701849776977375517524814918190289511551739956332250848913682684378481530054637081371444894684989417376563188064725715735519675902054519813304724753778663525415672417746976674964617065023011333022277405786137734448255474594642380512086681918597838130466837170831337580332850769441740091192559240783225197898476833189870846440153712830445451634453533343973910262085763738954761832796291781431849873447086068932755325694944897631010176967981822996805277621485677541513254534526237280346698275372096686239359892448139749848688664820850818355355477431601807666171627210439432384244193667343126454072484013064292158054660263540088999086699195923857834261998809668603890255751040042668915284030893422015027761542779680004614709548039519094375266646928860932967783391029745658715370060866817257735422644517735606629937964036859679664755989764969464954459035832838080901072415108110595747830112351796852835018095738417672090766096864204818173334751123855830203941231758384147990472435513260541406220646665106985372065094833960004631624438964497039285980312672729070648195113260139892890424800616292163798657189507788002098881614993100034495401066313545007428403162071442254437645670829544534811928841295588421833922925517256653379856131185698444898672549587790575440323696195432275260771656075351483117320405568307683950942560125452675724818186654680656110935535965753229331054665083824118876237476543630361627745472586785079173728973871031231769369211317685453897455013970608627353315782408091448172613759012702753811153196943102344507917313167926179885627179551877180463292573882050553895264209908794118687739115230157174341297548480129510476875780458830137339352605731319329602772482088157942076817907121312612646233428315463953192130237561669329857444674855776774222839432364611823399065275381116195953788970699356432013272280831114945773208051665762288754625735734046861424625077299993589368621145705777811434576494521238409284540085475208239183117405417862647368597028212875068457131604191665096889469004279104014870955183408158530464444425770099470927924749194714806532066385076773218901830902681512396811648352291973598039042687773068077888392909944442869639833097825522960792259052125286334715213811066233257410468534776333497134636144285074550971833348973636859977562552932065504618154790378390731171201671475676299954967269655015219761257824671152105694463978669439196867512384694863904341512973889202034609291944488111324471637157078542520072314473809172197270546844689454003553602236397808271400130572282691360145905869807984732396568413549196552534286023647600304671725961094168232718003081215628111640221170699824510881243906339961494718851268605566980881986140684714814330654323327431850823849978393755978604523003601728464644471784441067417303627234797705634449766655488004564995967895676257157194586310501867670050719286059174955576551233122415773963335280075344480685881034375557743359222496421776446561067385916114027824279162999479365806955806549562018421610309845604918499151922629468037453638771091917157826040506685126908916091316566512832253134992618162783451365761398224987529503860367055235012554548650924296025848607801303118830672979381029333656319583982179058815510493274956878827885090246781041453376564654517213300780103402555772319554965519808462871754122150824139320879529448552248543384717236003764641960584417001841825914557681080225675328663361561792637804630844142618145751392469689956767998260926049023925527912058538451513606633793780275361973159899191104124870645550939174814237271982499037604776534533643667025516875921145535775794246575550083025203077213638864061511014913164802064721179967370459731103808304143511905737747180366612908187231802904772970045241611576460454402468930661908706142442018055198190972348080054531494583195622728603600473428369982154190068727611122367480023998698203326013807977924525941035465533736275232029687486973307323628143561119472014454963975983169078820553477084824070398841668664682355658121736111716433208281777927945917234012811081606024847749656447014957165230124076517498014651523402313388375135867150493058371942008071855142669247736762194601241052172607372511407471704387062257413382888861479315680163936578895075290652762077395528898494674088171513546624311574199360198226680579343353509640487676427785200933685665505114330143876967451163951812059924110625232317446230683712082505443723129731646821381788577206264859546233131312228989755451668922544362558324428239084038148422062828811578178120568044416630275177084019994819546901424520233856125955486760063395729104685039752971600942871129224542151441759669316626708223718798899255208370165811687546907559364966870808504077662274319376397179975458304303491405060328468588076272679813102212377736553945849218915610815960912568096974847956923713484770482280051241539334530770865303944410143382443449910014477940873809278283993644830113976019298892368971631469280830019612719876928599349918956726476276460901550973601044522298864316505532112853226028546914672906219333099040369367343025816507915071411827813038250247983589461690012912726098353180923826057460361436511516938246829175636393946675270905323853252644121340526987040293837893042240615638339618428502728788686270435229016540200381902715235383578545385352214564745429145447356214410880545056463797947010894753941114136402041411677992298514797974200503953227582894761327890067872955748856816455524147144336692502750697626516511016604968178621952582996361693924614260215504631195493920481289083694301515049073445138594216894297991895555843865019167126080926680334586837993802141392807502606680407919997414172599557519062206613726814181377677561079258731656054558155784582533232059278526047694311376410913019822990598535761696813734972420686991683982539986152844259094487264237860726170270391547079851206598152548145044909075929617827145765307851214990797198415124362966085047850981033383794160608997902773337500470290058253211102109678238919859836539818876658857981595614110871430465502618461406879662929400662590524434041192423273847192227759870503650612486556477562715563028256030133441200646125435850859527365441919242079269830329168468146496731863036634781229145759059620316416035856232985815516915070142443921406638642443329048342910662813136651985638462734627351805542241381732623432838176801197905715870540587922057351175222749267570968020222276696521151695282488529455896044451858777158345683466236402929524672821514543149704614153498806558689715155596819581017411749107685867412373308569906618612530594145514822374647544823706237487315202429277015467286564710586954860088412379865935266294573933118687640068998867973486056925054503088472526481815078165341934917690636640690952386677697226682555139384605194811115488651845239612312149806117566035519423154022689241409582719645251932024834512932537873955883077544727021460442147453917045033724355644286210931128669017576875342031489727141265060370822298128314070778077654831686698573012247799584719564529243337288066949707221581826263609820283964508829972386983060942869947897227424284890084074356372669375117719553159381422438925326228899442349566491578352232887812091703253266100910007594944663597633583445407329672189670791323811116667942280640361776253101558492536007939328453047822954270675841571388492035544639810204865544278590633130243456711709343688295557332978152944547013299667329530009093249149262853816295908960155792440749903483362478052261766883414391900648648310069060151603900205804691960504049166181398656343726068580179371792352005665692013832918861684264324995029945143714246441558590841206771446617653515660548365664205287657892672912404809983393555153840041717988265444966497287055499711342920919536669274219587184566484994840213930159367617922380036275942791696463523388624437214286783027081628679910352413231694267992795776859519073491061268235879108189710799184450634053576081274016313637708304965275879441201985945151737155528106766077574742227682268365822515656574339819550949833856519219783316018103737046957844063531348855527279042877967085866497389757172795915191015250814001072044979718722957781946153271304277772945302324716660165520046048500648589901917204973676387014909192621582464864712155365413524297637535723588333800909695658036995264985673390002574561274525379557912416517793454069793381745481923910582307698130954763132724990611198762781217643412000398869177038443268269172658431044884895713265037303118070969911569592360626758765113520045334693614316886101144017112663618649413984487383147176686578060696150840595935651219347201325869472432134751015290528907551811453839564621007332811193942167116486142422613221575856587165738140949549894552399305663704156662537660268811598137412188869069631618664939315370072180726424987973539764562635441208475626364715147172031128043034797175065708246385452827463050018724709701413956809644665329348725294277654049276106272190480738042558457673320235516993484965947439384477201840882320877613938097267313899555731303468960610760844436336856857195649410844867524621140825783277148258161128778408191830537015995324297928703420238640967617555736940366912331964381037362918752118863323712572789207205854977193741632063726372781701194752325591281425810020350146661277079461419938030285685145745616767041103330855024959049081543226368837177121649488118892503048692380672872364433274443969608525459348889644891654871750375028573767677272593152956859276344751225464869219263260885759771549140109837734549824751701232272534479847034795141602212458474890767565773641372624181534130862034788053172853187386308728083766077068411764736098893529520345722561701811286643717469996305404765383923463874934228559868622971125961982504861526988983299875754516182166199942505808689606659757039240098505378211762934402218425713416964082441590553068547349095729402421391471516024329298965322248355253092234410794226182655109450267640980964368853566739551583641779530510317418349689003495010040361063462362950392348468910836658356106620836492246709668971274071531103120792130610693769208995403431693557395108371377518462006063562848173346083011521902071969883719328840504010955959612097173930748463093476736550567320809700108769406734397864105322457543586543403521631441755795780336574681849458026300540515658420145085737275807465331511105800606853691108510667421420638892718607748365192675072080200366322283220605607160524370043597686530928123539246638294089899811489785620903318219910117571082129005226020149618289550691153751034098156909924167578195412741361788282913111593366845826596844527037932088529327440686174017752645738214023807229908850263610949011093162186518937945102272252112983411597591964935177349584095853192121506533754453278620276061560003413709335853405143886671132191462007219324781985435713055454321500178383852620992138822736982709793436722461640714414267770340452831177380679223366579049071242572540928394381588623862741089845439075730125006137207316511718031011535517304904466750515438355723930555439437824220608407840880696742480498181605392017550867579688768905792248394708338043704140746449074952535198243709943412657808867760684154132346935095235336182461104786044758651303583297100363159600129639639421414645955793414936414497503920849046849662114675791117300534951180112752980000119218404380488605332948616870256610484063322264106595295982956551815970185348765995766499218672366339376898320193329065864614087488132674076260557437156874589690395923249545383031386115254010036561889729605456697393529475155501379712148379065929711407903643261932560929436415013477552527010840619580885943753573156404636245117775374334864712813479615173397922334238825400121353088277894200380963825110190715649898738060167842298101522005062839085608830194476378845195732847058371267813873677052094416152035449963846174500330932501754259265196257257419904590453164628163773401302750838533963342232623089469783908075093995358132442544544909064950201889812714673739179266033526374295017129309957175019418117669069540357057232464763360304074964091869590876564797681980790124846313268923254557248769961338900683238330554741443865456380436586517648162165497951212310221929940485619751081957757098835163951688055313940136761255515121264840124603777876249112519714130372306199330805194668391649737051349501594753639208225677602121533732893055857387677559556219928961929455398734179617527699253878860688211494189817026543862550152925108955446404025520547314372005284718127084992743801688080180208555947743625709113276372891498121681120172703890163694662512268744757315678568002291516171225019898359637450999586977529110150402227269851499910227715727972506644160729132672170472691282708600851731114260852301534354599045831792207035534491783750945534874645991057150131932659233424681115504749710616596896962821667598382977008155024979577084137856302645829565146682910392188008511390404244786859911390695266787989717430408543087893685040344917839734165607720465248739778519518891888066660156865303865783223236295401958267719534667092217901232826913651870876389236375838568511132047139455446249209679084742805418035004193385227367314541955124990716673519829953158921547287180780123571263167131650076988891569453680056246301474443935159346196025427757307536808203582163896325625310364187638202040033029053302884993166228036885113591987990272091367285526743063110995436240895792372739317736888576195692127470181796941268481718118728838127220598193353908757743584154274659152686909107368524816103966995557053227984014789043968621974186404742881390084172433713733737652430611277310440145315413246192381986253144465863049796777217318235069417260551759143482541200090626282903359995729248727281614622740906931503479443298239923791007238786811250912044966765406203191457601575419707420893127703887245066356084788713748661265871412545743806938640375942227472028849648357612379744293734890707411482787331205592706645765647410559855055856261020508018556285784327821915027723527835615487311878191479675927225004581727396593654226097718947621622848418041874623710742518804955437692360280445095490224472487444020201420619554485919453370246569104290983935622016560291049656052107069482107885594231273768247058433440928968752410432752619810231630516920048942605665064709861624227311319240304503392870263316281783880024099195554227138214156135796484356332571183507071107535412110560218747142664137751474326347149882252366307109760955562043018626593768760802458757495947837494792985843627997656593539750921169599519516053774108742593568158695505592006855128812939237450148898376438170180343505480550498093566277896338204472855755888873076121740648002532218493735065532046738278358047688173164059327743684993016353110681190985480254334637280031216553781795320021516346658979323806109489969405606216712356790451575265170384450761387823380501247667335241021150465913556018886803792097468047958390585439529266487140820475205771169839278381062903337161015256729086753265152047480291861169169612326821176787149954851108923453132268270982342628616783953989883696212382688989810662612259643412767102297338732722444316048256037980711123355448585126072007157871655024469784313688193279098347666527526792442029004837710592979454586373411943857279573507394060245352144348575646375914881834035413299215231739051923439501777057993412470625361771529079393128224930735311924241461592856868108072456492924175931857969119570414638977006292249475323640714184257245911890458410181824583099466568098804241726313315020243565886718349908815825621397574682165978765889917071027874373152578021611772150452455387017569329847980100524137388110317588649273316368248347550180598372442631826653755804509390585180834158957553172931938545973378517625333911367321033898093843312608582267982136613737493524641775006472258962672851629135798046867575823510274158640600384955343611884878219809155924745421356683382147118709520659905726184921235546868180211408094176483164701490793513941635002732809532088007800673745275512830153732680851098229646149051027657755250736197783099494416456079330893776649140373482547703943965616718372560758120694338386638947945029631063836367802828224826131235576634613469839922531820234281588459344960256193610659816748302883810370592579216561618913573016222454644931653272321443259998912497605016388898023522214543397847205275589455882809002826003594330531146364007516174005135073911236185686677486535417975281402768274608649424692261497339813382911984719274852510643369737970777185616480041665601484328463244778876496196088246771198043656347269646447170423279948606537177452642539299504252214743818594402764610961555143644121858372698121460921483406652691606214082820887843992774725540312615638573034221341580678060380222703278521886796772202198286191091451971024698384652566608996512001601948463537299415347065513386647910570929810550297431704070933713233804997411261466373630754566194037983309312735932556084003879809912278243314908990084059192171600211183994299210392740292469574153868729431042763627850955343194510901215094729175450062590855952451563339330210964638397705179824054360590161520135522183060789897727067234794868856438129858624352456406426974858931759938660919976359627277088608852692174286299184893139182412082614843247432567562334540161185006244878314180609255886046768746415250425421210060232536337283019824807830655543346608367376326487636558016588865535643305951442199885306218655164543221475272989397758612376323649455969679592550430640056040751358388145279549688710931317259930183178331054081355227000798352482920535714836737690168299277052736549850173213650207942814582715726490538364532536782225136373103387935171889980431670811150647171618802180150679860250119150458975494557135416439099648123770179214016408303803026590099961273277278435937740596498301353158284220369252810197020882625841890283397063638386284888791259400646737485778773921557858388226139447509028307433744152223698192905827244645557949665786455329926652850032935616160052972804998958077473815005022339235919381972390418676114849030652974666398997736440278651099566580496269142777762349235554504116636227587475768242871490334854014015115994382230688349731924271397151682554563145837209911778373202312364177703564670600670492641305115660266158946251392499196695996042622003857145410406849762987438829945514225888362861528166409863819404377819873652325652457696756923302277340830690306718193709494485797697682851289772564562451798891299513193439620436430169999952631654985160793399703733137243900748110230894099239363135701746577568400865974995060781610837177809742320031961228699606836020271242931679983645703386555795595215690160322257691391240086692253449545493181392942058254169457948754907581697475233825681593262630938630767435841049163714998815706201952904781870194424657164278000739088414522760291635798392916787976271113002034008065492263384618226504791181091217135260704618435962574226754571840454860175544459529808540779171623492113781010430941477045470664965166258234519222103539664320990854230108564442662287195385700917435504211372622931260809439889595255668978522266637012956444537169869809162315277087074188484640583757710249175261544176504621450943516176069914969094283923050543230148778531688362507648194831011135025668400796627521567647002488200250226165489242816511041355505042958837433863693123361823288100974385843951632711381149090467331586325893223141281075653146446112103324404518514269895581597568293951041737373873113250870689600138520103403403715300140166500393653483400739319162121452075581471278389068427404086459089890693493334847604872306433838748037247257099063426015713881625996332413304432530688868312931558506181445816374835622592501049710329334322834451787577989528342986163386405136369133700778983077712688681447814920327972841319727218391413341255600354318649422787605068173942664665125107019607172644484998207854663908463865333789495681645808651116715614808125590027709034401604974287916126764449309887985697603333530328548588797187058725973100390113737299556643476468159634144259776588983030242201382966065462005110247267576249463586977821360166984671934097759547005316552263779518551607600739498645787655391382298130796058906896460658471707006409555841466387449164126711930456219599078384158773556258581063204023275251783229149058828021255302609664475423544466755821927355809205923334558763432629944358076854238679033776210031937032056784034923976293192740806197940837882520198283555422785450492699465990068399127400012252650154875765557315629825796809597132747393317198587969719180785149590911484308387451242678199655496993781413215395668939332386833106273244338525048098397705858578072192535794083666812840931378442052751056314143720466236372671475801486114861207072211396545865475528820195920155434397663807408435489740393255760177549572268290641138895246246448950245462203690681992168700776965873016859053832397132759042321821487074219456380465100846188531143045566533560438486683044445692488838430856722640093688066651517988421445007061191698652232451285423059057010220515009943515198989850066142090079469764261387693278801019154895190789535161722109061986786733843236075590271068226454311363639473180521054367773013994986112303821623884456596924816459536756878326861311385818864853028911236966087761758085594355083868568671476029190278939703845135050076312060197335077618406366091588505845759096467512391815067811803582567325702767808282466111385133314827133457672448590838761442761959305567911346923304422811013032522354082918351912601511514809598575952541476146720713082526451092650818850925197254910521286229747880633362749931814239150688736493193641840677314713953098892498783170666037368068910792654960502235632403269646680427427187927837930041124970589481408730878963315969249184896845968221862227800405731997237196157714342813547828848259899048462860863564973690641077429275399628524918894579224376917432526523970062231366357839653543742590045004781504015629071848916256446415880978445920536599002780550979771775348143124945545841915086168036712742326189710083334587961269989515221782167164176426261112596976808378825108196087422683418818170418306084954627860854322518387870775271087971787238762790822993462331371277510750281602667099625464815554994005605937819336716756926016898472817424679627688080623163677920163770742360646462286000262723466114625970235888428696541300068075516681210377886717338794443253739652548691901051386257315063498049089389422005193953930623252380726416858284580180494323370228307818902507229059401372755699489201382684313974718169689205253241298941463078604121734988644728125178337533953791797892384213639212273038748204219877825626580857670563349409382820325082420007954016827870877430367702341204850192975236877443802637856283879752887389137175083485768843052061290004696318273367458568806222326154882060644364899307450851489938671730806314360740130483886935476194892428621705021750516214827667054078551114842071251783483744121206577779577453763743993699189770822447362812214083194048046511460968743780874897796915673937032156845764045252045762704153381602100291150496502541304074071309744172703835314251146051165036059654525752629580522454119581589855277544782158342164530586290843705718321926855532601198770687098186692071068784714085795175461519100423153224984304725727969799934655169847052101125704703016815467401596497249602286123313962903731583279781912391587714092426120718195571261818690228686594992551838044899262144672537948551729634563663732252448157728859661126615665157560772872609791316791921011930112127997187715040890207063760280413748089182744136787234550555946462757919457224498081403663142868890960244074318668230804817922949697928188495090454426930625224651928903076328431921974332498826097546125212769977748714524845521675294162731053997555812043561236346403291049918443417043400753736551935224411621675288616787483288957748749547626362207375690257061551534686644620310123453723497363033023495544635954126710446291834946647563669802542172949559954669485859732770015168307914751988170312611426049332888689598191580373739707325266989091986176679934517036922867680728649716596704571808695620652185866871162034969428244021613469469598890084592994800379848747397089818580712663298363070565100676468662854020340303807213142917554639696663868189247489885416497551333875843060033289483358743533539279667854195727324292599406152376011335973533106330945749534310782684109435537007056630404899369671279420040855645692301144198104931167788395903820917679252486050206932498726364661167424508228157603321538825703619653785537891578376787994857817174819958829030233166698334664575930748486997490810065689206693027177401381586724974926577140289552384224218298604627789155736393201620279516554130434084769572761605952903132672983227873507831599176326817290062524984560442767436731213002365882933809651606648022299292206623690274957551352803367881818441882794432997142498631090404148155346055973541395727873535971069706396656720860285411829251365243552651976317791191629850420667655898413543445687291617349127789349938694296429798890911825067382207760830083722872463359572380879849136974573082047000751571726530427824961688728274795295125170064378004993921621712232018207121102771931482248618233914219807768322870912985325645370241947148535939522506259178141709133956243743572209822427314961639977800794754109761261472422894554997444215142225603331159541649657001295379485012147244434509923309381554645775219248693321206336162652136035909544288912188611568885018649190364316577862723458010709638711030674403798604872057795677277794893535847699180959865326349539267691705814133548960601527593496076459696560647050831648416174072952089119241877153454329938956748204807835142247532818201669183328261097153347088404264449386858068365160154750156727097089174069036296623758785390155203146371393281213027208970329222719258807960136590343768907641931696718221617996037910938320910197205333259171297423004149678438712753843804218047453544116914608775234936703649944933305768110040678104219764932200702697755639640305193788195690271298254773134111430703448354674260804200672240772450843697919191883469259613240394874103649126026818845630059706015763583598452702501136849269450737143174870035000392690098495815251820736386826408251392365626344174065299305412791824771397267269567445755873824699228767858752676493746150306534650766289934523105239762566101944687614384239788484930818461777836509782274655746396048805586027827541628156380669591141687262520695056364249661335866835671187164410467914364456925697445116785127320215420921043904735327970589299563943396006392068665115620127240777109457448989444920308989453165225904089266345938262065343331527719083938565916058229811862893919587693866809904286721482868061846041415768095533729129822881102046699656958119339910943628554226028108895616462556598501482343376883287924683722019593382176938573671719727250670749302525968531219129850623536025555962625828427353685448271939545473133081325511559764503127507119097612046736711644053277494537266717363595424040185753476924363329729930799608137529224673706519179209608676468707788878101626253059126187787687733046688074052233094619040239795394143760078063419134924782182005598297165193780885861827551217400174618397291935168133904934772966171243344727248554647213239444272116199527520359905980921441969217795409829626788891323020723772815467634381145159360534222008358713561613887847897556903437092602440352669162305716794317707544995563409735968561418040756237022540714579422024650150232355840194713751712067567975225712460397770213895619975818535341050955473807775386708667481785528979307266637108443211278932071033673891058431984521837928243746240508081866928831036972493098181788201209242970137494426112198398273291429562373917315719831588370867461094200103004518035364876728331448185628960023667609716436045898304535447180172663309357283453683036861267009838490854236133772714566811762640668013128689017164642513284758213070068855527331244289622850151782419811409739571729464949128864022772884455401385160891077514431153463105399267293957213261761953533598011470428857988117912474465787477809333298580489672175783967127864831678041494181360552713288870129624474942885011339668362629643740769703162871941662381236676236914123259833347535380581038670475194701813552483983562300354376843101426868871783455715476142629602448365730592179666816879800968777885388750196451367600789593484436426159026466991697513015510024438508084786976336300585200193844540839634979959885633169297504323806926679010497591524159694419670626089027125177005483988107056425061470878032632158366564910789432410538675650791237542221439231165854578636901679210628114003625333727312033736356251585350023807770640299458958802295156890044321174339640597474292847389739496489183792037652750216883886482226470481900764443249232426569305996850850168522193598497904830490426501443100130381717041727938421494237546175541021262864407595533200748712576780536436326504392503196999716628879151948128562898505785592725514180749028598730895666560278504062490634952570307794413811127139582707472729797347719805416943678520548104504846058271776248777871473986508943392022134527190495389334663983271109483345825314976672720337703089742984119950896696925091523801792733898934619350437262966289217501554420883827292198246059827713575372591119985697655634580412494147271738636909451338154062529854121535242765502235216553087278621245432061562834467975572441647873394033133455152631855352780524575911499803750816793087667736720478212570070589629067324330205692730329766900106589325036277592702550204179575228389018872919940773637545218300524540905274316086734279291312264091496409752631610897478560590150823109434914691650649136888128492531266922805988116352159879054660653664567637121254909264703254832756292179730329885250785082575438075070171075004496806869005955841472470870981522127844321946914169840099370624560781790165648081897536169633221179271103985612563300549492130047486319285328995323361696357795356422483820452263830179524347258232777126593106537103677284566501532800458979482818838971060698464228963187556097875543347088031711095492787043389298604495936806564206309899022530245738918505556845384281836967534654942270839985947959006384599815160436763161181631588962587949187815520941295313740920813101789141959707972381101039365520151646086798359907988000933212592146960283311201880320702831189829547245726756319106677617731411209481084576253276801158002919934474451739026717142263556868587130736957344955716544737088404235166888045015167998361579424960343480301119543073543497386875467972460346343210972739872851085630306855271332418959547794221844381912563095092570309125376985458453901795143210819489401875696785446825836496946790144415412822359261674127083414634104514987577378133058627283590346033195094868945710112038789304477379412111368076684880984359263903394705330334665614987971611555523382742312210647812513001434936265069516319250848649117233467241018519895225279722636508390600330205896543922803528775319788130853069083153080001554222598435159284674778387852039872145129997115740889476026459482080096692640886331973950361461845798181411187709888046710630714966281735028557506026283832167446055838671589328467374401831716661872039805577659276994523151124528214767199867722167560485014119795190935312178995576715223939451576917002518024532597449240820755981056782715611738891402648589074746938163095011359741660103830862420349570167147739814108857091181984767028878260534065637396558650558079262193690867824582917467885901921462713961017011299845906444151178060925016422719211654312994049815186093589877137475922967582282379784243403613831728294181616696411824795720847345013278306233542409183681055596661031551256339374661625712303095139624061076857810052309117638063501159085117225240577909937474541316055351949022272806915134095919864819002721502243279782332410473179992950863789676858306047381133520187913111121900249716877582001667123377175660979850027999433469599079559308316559349830469864613975252827511168789275528244757867921095942099037847407497970724562976161567758103834794235008452169968342355139554171627317858205830171015595095487133804983091839357604171429021159843471336840131339210926829122187378878926178421800742155893845128890072997691751405311699588532598234055883130995521189262154101318222416405990414231859704487555694007265621305130250835128550007265810131081489351832765366561394879720541330256243004586454477282536191667744044649630371287937446964518067336982368955966417583628087630076273778929787839707122837476954823206709342582479405246925754069395827583868911444885030090600419658167232804702053121003245975177072100643806830323031742649789210939877534069733222487969103038335428081286345283551873002722383095902065992985760939584004604287235658136741275114942129062626083891764126486842521316212821349738487881686797197219317993549212129682607709502824709419634502631582713209172977447155130749350008386629085985946872036897985739401476448848060233957644892430627001628339782516712323747455518598884011029633338350250894174129534829019140818107249551963167713802581819507528492700223574472476983026901098473512853271532272554476624624785276572660593690064942010224700790242849928163953736838203665402474359582563494680153799796719444761139755935632401835285832414689669734730077801343917893052237108973324409398908549518444407933354261015210163820419903100303929349459976760639882948158388324732397839945529019259928352186361796177988232858324959963815748114072012703080787854125435709704471267843354523397037993811526553196748587199899752631923140357666203767552890832973669766913358237579715726421875854160349202639128874561023520192921201997161057666625665487700782804418027659737567786519485399551072947409416615158332857319246546519248890798773659939385439187259514796853948840771536468824540220927170279767761233526789658125338865704549532046223389419333538305416251684920602877319424758951704703010803215361540983813092587580696140910186669740793232602447352074552907390606404446396646225635493263086489931836248347951062044296880262804314944299309022343134043849857364874665740042032517021160129713170709425637504598150959041774844983948393269072540530986993645434939647142673761411692612302970363770649393439991652752754276359690094464903725637205643576753855626801586047209007923668624028489213811301590926410859365491153053798609791290245965616967783232457887769407461327846065342179937774222983504345632207634959812596396218073005591464449004707428056941724271504745977838946287245228505916040330610423563712877896286281856364548583076707487814365271433209923754584062739147975861613428481732598852799585335847644064253199735795455572222288088233055990025266303256565672484670458558882789943717261219835568596790783043268840143645030486821150612493472199846447946054646831939122990913648951077034341094502725089344510968723566486649836203362278817643174276902896969833561106760861863489966394044492532494913557563061220391543205861400450093717937238278422465497930337319986158583062847431194969020425562788425865794528481657069638216093798314924304837279818978225272376373090062294053632617367947572565194724099105131160617268619580255331991663880564670263487439870386848480348588249105435279846875210070353454407474474322935921827792262553755445601472284638726096093901712893645635962303826453470125189237860955720552081479847203118157022330670436357109063086443810323982657032601359939287713359378148144871485153399926243937844379850933378500727356284816995374977683324783806938022111363977790881855455008558066450813609678008926225936434991042217404177296412970192537095767738789017010573521734401200853625463835445214509243724336750871993297199037749467948566656974007547984011782585726256761274154667137498069423945982314494785047155374386765458568894287190086725192771347402440526317241284698963187538923835229607128708250837586791424836435034449869384964474890160361014585823363463435910843397753816014282699657969916290273323196480651756946448985439646997433039128364055409091541826711362720659375687199070112337723961647246512689322639285701855396371540809847413033601945116833786799286205796495494160401478107250356930714035381840787625194344751448804191773998573287115771483672268961983069070153061813082652352908716090193705544867399056789259405208333283338693626389421002279513496281608113766864843607040397726429707302390657230765821573624048807625119522508559209979104725236994005293504703956964444884084855604054728786493084504934404512715517653392971701551496639081451383680513593476591223535537416229771417275673711957290914860883682744333363547847462667037821455841670943356845428541282264674858770180762771846010657843135349797222885738565037617385834994674642678845745256437376697330346854181753382569963720549328171243777151885846444602161747574508480243063630446875014469866906631932909650734855630516737848789559515186680527482596148923877110122838332159213149977993360058968031054982042287086587493676525775379420438585773796591110675961665866936802452818325182266322499551971939743399714919609863336348852295059303794956762375923946190165504410080601479625543078776677959507160470578467023806029039587976825421527547615456002502659655349265233238653407420279416665169884898891299722754519416324034516894599792442339365248199704139351592573313858288576348623041721723688516791858656125187809084116560473485098741775877319734408811480261429293038377622269623577138639736199591699842772126169275935160663064318594724692048373938334113314264994455912696335449845541368223834462336009738958554543474687186602669808452514066144268602874478383791077518763887588883462745218237377943931044159990186629369084157812773470799008173445445259820413196512559501687700304561871940968728191032966504519639568656405371789072580167903327043663327074286662710502169862704196484167141707539740385751117382542324035855911713316529965326177928296795016950192424369029094772791352925899692791428795495412160661565239878551460388612038181611006912214983903675260765432279839420838767825411947847477630908838341527610153221003639177403260880384625036488339927956613951916220849667923192830171610762750114311291931557148407970151260008147565982767944391080769772069661300616293495197179830444753801105840819034270907985092477132704286551343896613009784152484095996866021109293232220288547979882393140035224116632963010605690464611810297246542042645209377910691790949289912725339367210533370654956950204180891117549367583079358028374844139159184050496839540495991924791674724132244036828171370230126146142561625981260171601231454780358606140156571667392409294988154255000289839543911154544525481055305958277617390474878104949709582511319119236743495373717964379717546569014181405701066677849744545746010415558628525291821247936939094427093647649205763125765422785008480355425501078956621953433177907655769540708375383809711562083389784268184615756546699703859100114566971820936320231499237787767147640690172018322787658260418041291138117967351338239308403532029345971863120537331661822957245626370581442102024159209531863232032390608115409563097453460782138047246034928823133719045952219108524106782993997961333466011938367274314146167563178531397995256054814159121104395090398094830121404341700558187513221702716021063554610757533559226193335472779279296238810186447952529444680811888046757761446656990489014524545113022750647527050733877635737166205444194698604168269659946257155299099418659394096414742184118181051591652897302558388598557677041848856936201678667297921577733614495768760540194318346889626849138860279389333944471674171207920972704323434982939028843025238932038922187744664948288886959276719775551186090176093539993766753929901857814253560539660235595268099217777826912915257413978638588603535479330496778589823909941144656610527287161827386081095091665200119116143380686953320402280662044338631272263865229371274967328880821665215175303760738524443295541074008496987551870201605388667511833384233253256200380321635488781074525421447556704223279628991990684652360340297984669571760212474408218981022200639888707882518267776637854917786801123070761158110909756905114815462488907819795799202036613100732947315389679329440215925577083601994415057999080556307825767252230569659090316111380120892902780123384530441732340067773600266026889718570012455990090645771756205032169801846141408955102807657624341047413370455477814181334316782414453093995049265804493213198991693563253962565978440920279802822081974758798990716188287977931838934975043047934519223761687193293336907295521452303399999566542654494323041030220260773255388715135655931689024630064961553004504178972987279202863226235229463186931867139171197971325559618195473292127748235993169116426227266540786624296822373106656698930543189901064297789567250405328348935929538143693349404602207940430653023110511242934647327668408144469088694580956621117670399870605069093337789292500177055846898421716031016437947585568854064529558155242272034701854215587110923991754879518836970558373767856525842759068077045864872615989483948405469358324435387059133083250686333063719251517594742179422036127630285621534418971448661043316754519975010367854093283035250832886080409613851143160121006441820012557429429339224654278188107136313376025015188582329787666917500248071995217506053233859575988790084017534259223102526913635039089016426824357426229410145283072637178789815666365023557120675130579210558288052323309641346104669492694638077878611697162730190974889610294583884709635182665773876647625980738137339698094294565638053207913464645514848866271141737469015548436948464619152301794105115970721815081052950939061964278461699554004501574536423311260723725316549804390765195442264944991697506213015819150085530101686629716732312891054479107093904376257021554111467365959422077324250399064238423415852015999341194407969778595107802614346588988473904047704750716050625863467768981475879272772811050325402341823598138147106383341005178717593409398084752801886247001488280968102073446335006690975693462921880542927205390664219684946783664946981886025421536587988580303194786385106235606188807612633442091604696559022241370950183622043113749784804219165315673879790425577004834097178562403136531713439663245039422831397071664241703556673477947943199421254979109225063911243025473727085593950251309165083753093538913149706749450991622499292034570558323230351456205487775580422593179543833291787785123421739977048718481776808946167148020662565003802879602411267503729310950850108771292910825174511293492567626727055687350890174882403706499807514042597261590408738500613318252953561516705929546035542974476429993561236131038224826193351169858535805158633613260089418223055823549791303512671687640353784810782791981920254723376285949451649866736311965652897287248275194288046665475741198208639163270853114386810975276592897920625433124422323947248744486912417004098007276355454399042222402918194664961556400393305168245609181617525701173721673623133779639584635845312568019095775482805233875022717772883250922449913956592210015267556750587366625903554040221881887779338911498172621524295988165640346956200373776814614021865861839776004855944550482939818064291505868063851387969674593315202348751500436450041373171274620553897223722779549697956711306375624186933981665423252486898316501215982456880128764113360715481869212655630203748284153063507384093385516275672911749368554420944439423436037493692945398453022865126631279444119921306217580612568244607577837875972205497244785423273288462388353055578413077714030221524506775838040093355483553671349751049544108008244930777618404182705327928387507950841143035769682525407332206748273766444257431660655739046533673759190558861549238337813427071497621498538965264044009643034021771813983305830738720834321565464635600506695741433457801393838392690169697533909426454101464495746954277421820903808934754619904325157543301543985960770028481733119307590979661488991024749384052162649176684571133306995264661729620974875419709464710904041528146934333715295583230879152986784574023688274888255810532230337589500502501863007397095622190690541859773840868595112957099183505905725382008861741842096702209132594757856369538895027101882505997975332520838132299484971216529260815520155835531334269519303454037004727639603438233006108972476074785757618233566855124004748243701353942635761511117078372813738146397775762117941709411447559610815804507564210842660821762877079746744990987923436118394768126305204145956065126178370676492717595565401960052438976910965259437169544389098875630190724213616009355695536895655866510498635136359010069070857878485693857741003303317732915839222560448870242431012195309955702732636097855452200436644697842380943233465669164597214360148832046872492894383982511752220358509169531069109539932056276297410760414450824007649394696049877981946288842384484073343344737186424756147293574329606074220358699955390660148896505789708128849595345190154568186562598893292375210289311502781559470765472459742964654838498229684157007593734287842790907845308106840890998738108035262246557846652215655915696978938355204021285584766819649021852255512915086162649848538592257216158548271547232675087788848627828948570168963896497191168033079372323471306931651677880843378878368780380306303450961992690293937121237098121838138818593126622477433853665464761240122262903995091838517050887301243844420521247956893481508464714783044135442086892318780613564277099137414469128841516570130326474454555682506698904903299341659712111008568221953283612362454321819695469795096615290868601212923803040091153535549106851788626756877306649746887038569606575441543980082261310652535304158931958613019059153334256547008926137319547981112751487958921974540712675397990645511968683414516512131138595476951929396333170037682232159959558623379047985315574523458163202598877574592801941560529630548415634672850933427723428267694520666618999318718883225183407078801407276163343614343462694139602003544159166966856224270233778179691992208530935794831670645352477734334239679496379438862917050882026919150023826562391749789884871818980532337412938171532171901257255593556804397099372537141006631216440558480922760840885396153408616702899846456715072430239620942458097740431472396574254631311003120146708380666154128994932064890007386968154695561181802031863187861925820596534824516395243718421912236827075726037048267020947399852882227969509400368609459743555781188921404725754461550838379429943463375642590166506536389312861623587389671005512317014461362764210716277873472800499600215207361273735391324631680565601383541372478609903036128827258892078038204110513249949838155260441326224048146443734770984556954238186716479215305519357120059751688475535580074496861980485230797964647048668329388806295133249898704507154806832764440127322397361095355086317269157821675492742424126800737049982551426293449043943688319413707577882771740217203647808267450088050031138803943570764285723970396502722449793093461508440951939266519557432978395515242011248379132746670747518441627146779709041146838432986464507635875608053399756609826447118363237658996051221832264903545470016071992324708773752092894897504428180810142778190205839865968629781712498549298752411418443225342731941081852396362637107035955345985842888369330390904673536360781244456863633779090303826748313342793485644589171392906258027781049306506241661134381895619518049140256993607823984255704551112400609200493719886740421388553333466634921055779463886497291610442211053291242958718045166989679862549419224272143935663678938638949763910296109279838831129222214020348053418249377996094958009172316966869945389739601313285100287122680787464830812497880854185998384403741756417277783417129105933229274742265433489318670819204781451029334830535142321898275755151567747018446017984924188953110926023909813489905575696434484469424010722536457446120098027091000495697343837702936877458572293990479798830689374886557617004034089877412974916991932374116630399299141605977521945438107850423638493134469660247120482396924678727619596139167172864108466398566157410144392577007371676897808062471123833682465534297477921961379445644184394082801399883549635953227481958296837852722047724547520123910987396490694894583248792208390891247245510709841894191583329813059385259603966676048487168740943965607198420968343302685231909661762432990374780832675580398665839188539656483892974447389138016202388045656186114153313514636295857832763649967913303611716189758150147840114749110850443127923808567948313562799019437853200473663050106943885921982558675294020613670087210264210870170912763926873365769530948109872116938283996526799155969063639857316350241096064029295169751942365022974248975686806421665577644151068934388248968955088812611291521573415634198823509346139740998378163298595200677794176449939939000230020144476787541055429523222669937758967438079201669676351211644479313805963490720622808682163817088670767961774275973928180190002276169373890453845144794483426040086156420715779624134018498810063193297468486060916711496248432969212411958123710297020840209079272880275773613280163228689430872073478112526474806509069835184560114715229525758503753330244553833229997453526306489476078347542770590670045365056008006253573430065533991906874733239077931251353982995718489157988323613332742435177005018870186097414477341604925003987100709634109672212264511480035925428465007024530317196379340400721756947101775859068917073388631020267790761232981515051026347112658184776394332936021596674435366277753298848981456856558186596987382819457095372735190422046977751226896912831549735376710616890613926513546014591169822960203096080454960005780194094812405124852298246715061905948342074343760565653105248472514912550450140844975084839471699815298740769180115963664594704656476385938608784312308500206432757409388077468502108995015231524549212426694622198073280429086452998484957714654099020400663559261201058540394855404919015226250598739551531975747003389339950462604600968860266823182774173771807871749003901453041740929769555236564976344828572142115238658892076058196314042346079006051887104750292168743614463744193510566455034492189154067047833780953883757602935678520326736400568150913262133612697732381769558678816911591230595535926578763042262343859794168437563096197047001107854272810498200045065537774714361813371785190415858618232648042764247322491544756618291361422419208665552796588062698060009963207718128368781726828763150754770920897656330426029616298556959706325073160410220767418460371635198304703137033160372544485809551992643865714161356803822645187465097415286058994779676357651140701715124024417646684260875621907437228061573531057530312566213933220117974426018753385507263953710261246917936958899174830327988734090893394230317928374097274367249599036949328995626365314557929131404322789359342987045662691804442589148855776490617995664048721441695079526569809836860107080477096646656264724792208059427226443037255269996255281877383689398478174811262026659783998118195157481938894159857165877337476845436029986637815931688736078649674835943483755550722311198621805947463654925478975230235602097668600438393890973627001100447640691877314751937213956359615348036219183108135030316568165263855500406220829252346917749002760020039263955147146947178180553216052388566933957080019317328066056731351762599182124151345566633601041647190225397104368515744831271766543646791233143653064363957363021985139461988276716222043080949383767063546786491170417432771520321373409015560349076612379013739550571636546694480284153176514274923163687911619395486412834096984177328156750603395026198323538150818424109154915795385661036512729429671143054295072530626357808332789767107321753472543398534712688072129424302151197754334190135150955995229640574810541615797367588112739129657004465440355259878382671646353289968031557705634593336551332144678683582211151829775998142006810648649441951530432697085894809890767273647948973045461407278365379957653473920125575379616874085246922991271515639932373366618338083491434628538288996330098944441022555416663538657265811610944995252769113633939872460718206618201236092885807963976001850438595206782828657908129424116396768595404935185081238207555330126569179218703743005496293723371768120881165419958606910771709148021670462844549075990417634678753206075155943184043060113211545154384647921493191448710411872657850968402378637200388335224318665507553721651461212091165882696547577138981562799167284539104453126440471281027228632761183064467312350601170795214718840798906564528723588563798503927565913897863637091099566364943007833611381856594737158569790361016476202462960838311958933590980529967194809690366808136365289637654128143605291032698126913186392084999651172916877844185725804938722735376538521153828905928372593823094339322453712044684150789890087649192960908986296095118860803941829893775237118268054935199963171382399493786697879675124382792398406873128977371538975800928066307497614139281235480949705323443162216471256262631857899297218566547847861165254631077700614081936246184357439142267776907111381921089404892955117481310612915062809743924126167936363959469745957422284126969614505984665613329254478391827689885558357782168623333539859758515861536357929064388176492689613143459935508136319736290840031113580083841309513845516977648946969481175205436887886944735043181580126562673282766470494435513120398379871009392287870022188963695602133962498100210506073950803005219971775835542968938546951024956309009547483277395908354489494554052525711714915566481013049925420581333147401527859299767552008134392444270147121864741605014105171751400957502380435567240602908294414363039982630112792851922034413336788608349966524227050756523918169120624751459822327765167202343709512218700787511637944272464159392149952939065243042628755520019444810121803970193723087545148834577897117824585487377818343858626739863320889795632547463084725055868858392334728685241753544461857067201334409847118534785915134850458547566682429570893304378440188013448670372180304108713545275068571384525973342413850880872910077194629229403808872125935668999018006780693874945551685862382374781658617950218650311948912607543295666337528644129351463906200177647118461466751154518704775918261207139845862455639186887194068724662450036846306872508200647806399022094945416709136547489268650235608971049276057240751088757956743691560132244467046694008164713625244613666193889266731769131056979089734777122459459330825616905696252708617872624074432678197979940316710989181189204491734778121371622133269018236503205825290024843879957909220621100024300859460815281331938782509361101228151329164298545163026218989100886884336880669975126872873991400142096668578011180526975421270401605526421404574488001445356170658481357636739881729412395151305817344396026204031790685445075447043787578046248647060291070797190376483910898390729253624096004652353938369897645071829290217327406342481799402835875340540357196812026982093172717122939847770379309958909296737605721616256043465527086491984900165621362554739303088005057692583352237028191310848476259958327573094142470631358195734490612956288640303578381537408197771732890105150875378549241168413778497604309595611708515534535991385853055150131775286143816822108543136658460789987666752565342882400122567920179309722788143144186387009553165225356422548025881015590087119945995562766181784378479022152653553090236176911466159100451297490897604883124390943804452715083036018571923675072020872159848506577266718445038019864673724030203238438485448887352082438113582037983602705354306803941592177559100418891203805025903607320729315978051025502001349245287800931232202596770938774213089449522974404145387436459633563561958354076693269973952188459413897479893425788911744596019917818328977054597624365464021650675057824825878287486327632295454781476535995074432845429075459599393621748710154422556920447529994929020786855341985627559511122555091587401662802983625114230865412266082280665655163069751616098572944060747406470016117749355490378768111747811780586064780395274042046025142273807344281333755757560047006179904237419575108634285141803237200297793569922584081921078111255660124884240073474386095984191179564446712939298296036213275902954016201409181639826185997644991943492420543605941202352564769653848874018275908836151347254817259909396827010756296651429370311151934675149525763415983426444768947939804900453125885111245112674645314702828066467579803797699757144307929943721620985655053099740921453057348374289528458288455243975266357801228914865505754044565689209320242586403826063647811602146936854284159127022088218509723301605211661730574762490920076501700842457849504770863628783963842798706739672664493917744730729963782099821977425409769417505839095392455376616509616394024556777604765802872078068054239491993806743852526241024147192033349609277199085448140400640931255543266671912693076503386305528263476644474390986324434870331172916762527315424437381608824019118378648765787522974073734522295814577749460121618338740929239739724938235371541919770929264295354442143495043595448454409423826239829999456725726185450080280831626023156214924255328881533237509908490394810795197846471625650116446200599723355064203033700501227701805787513234348636568217014111612954619876234404926697512667148360742616031631238446759634780331537475086994901613482832627503259076138083198804518253274409978853946348140356604374552430066056101554153090249708576817649094459117527873412587009669431618185148536162574963265078179495343974235095854429728528286566590486298144305656730058040389284858753263512253128410824363273777011596259577626846102392190990570947452647372790556208428209769715346447830566384764189014586749471676714461837060036896082822657660254808927437988268586206414470790311736630191659244476966182422268973450010060702473170892565415441627845172166603842973345362222607429422243384995767054122471503773395956699244860234121387463608360388748668872019406760727774339766231658116969982547600454385614147131467937217077944596807096460058771481034455731615045175503037255339995084873604645165871881253463286966995296884771708403873496675803236630581026362588371104192634298607891521313031459547093017688327024327122126184102730633680041361679843921122081025305064657325555781411644174805516593056541697233827459711474532777073053929528027402703799461260051361563374091855199319458549445659145307135681985729023970090121567940096451198829008762524473840123109890371841888671357311496116668989067376017609956737369233533663256610479191820503978234027419202242099716258143267498588286326553008295938067427113987097214501077694683555759827805724899921868611939958924047150229162371003235390932001301704413663073180468693064087766755098439824115072854272424294221180578804543390358872857384620948589914619379915385525179964128122202042279941642056091983832097929046746432163040485752496173706239689583121805102631111507670719964587137507795594788200156362798955537321311335604192624951917968745037848006667851656381835209502049168878668693209052542708237389552587057600416757573249277514787633994981502359104177957457228504824772331081944209506365480993876697877243812286753586736620664213401572242620285815420033807560077076379578609688089500207461569099297253881702844589398639479545248048698515432512439471468573255280562789950567744007722614491420765634678344296307220989540924027654006268675646474394947015001322423344617878055431179221754877899723901558282071977192040937279895047939752327050777306881216218978454516795900878539884807473225489811189202037433464638161845486169624618323515429699666042297377244806705182852317456056678839236836593153778648503001213762720227482250117308702476828234317528502250467434923964902118112336455026853810919362340135867669170526683621645072321939827442192594171803031647128763689880538418618753103082535848505418841693260891416300818505542011019849455860275463077994725282222925846228837402482589235051930807865638581228367048809575531488889385180967982922826257775691875700754786680220054278871320623870045008556996139856897860980119363831082635105487184916509394379587273672663983562029350306474824685815416076140884274003698135021309923006434977741096687463042490565546722469767772590353695280577346229289952015692182896041061517994490498148576092807064411113740712263731851363461166383445155182548745758414054870925855525403679932175815328021417185872339621187931103252588466050761415414331069661161270704464592466054669570495641441276969897077154210508077248423357101086117784498173137518950897126337359822863601761309802311202184183005288343436504160836571866296384729704133149502608676163232552918691343469308499670358310382754268290640301006542330194169413835948575467832361194092204725141291298495213310702133269827196085197469088974984485393490949517267810422905448465190098694186961168513728186747155188784684863549953867471450927622061644912099313365696107922995301735042976771442486753294210206487709544582734013980621630915430132781176430476297122683523915357570074188308692479166344413578553914886494407633179804235311212098393704050531547361888311531308111774686073119833076426469624397916079787969607577231530199081536161499582721996049341978777195123684860937778277832456929300599447907338538742227849768032294539418095703976208130152882269830286636271713044688375292775679790326634490416440467320222037985870096356441745912360049760618855146142402388864332868703383304254334333655314692972408045349059886492921989311719818220461993594096658256406770324884197127409927902206139305526823192824425833366652201268083521472248086256876266315111574986151194017838129082483381893281692655980887554856386864643786543725956994755421482732338991413826610797537720966286249645844230450547127357037248226459706199827967940179338619899048809643405813857927103146700096989407356965043363854858996124891790626221488616295066111232444293515251054379591870073475256812499474013211438447848451906551953626245256482041794138378464603500342111422217994411334588116091588236930717936832560083328047069205961608571843382581964182523210247127251796242515497231899917238711643152415925476660759607868830041493685147229719006476925060531322614970082977290004734264681228456019539270868104004999130519079282693904631652378055076488565940012277701454413234529972254432200642705017143866043468037052779521943211808794228157923386635796512407062420004746497400186490457579965953734286189531450729650255051136607560993461766906451673426899137160110438989847923551896417255240193530320119002437457389324229225080329191798059261996526206476535304658804301545136249823386353433495478348431804589609770099375440284716043556839668930044406304510887789855236947701629243489599988147084788903307526589667377189961463742053295783585304295770460273647665069821639283737349467260996264331034999754715404189844840759069073287319010306432188080190909748987743850942208387444754639942998935131142487736163556607720047958912464908499242654479989076600062273934819817773623590690257247070409260691506826297706067557570855027841291543540380229951330963241773349123615157684394812641901619028960878336579896881329247184378053201468822919502388074390955339084203869881728964965794747169683836679782331284800663046587030865474566415099253987050075483666498074369317774011417160118013515859018915881605016509582351420477235183554675219568875584443785669208192848940603959573442002503579154658720364640277329239548594618145113576972561564061008968663499291328833365021426587821696204422006236843624699343966516345168755946354147979832170476946940075681261719125254202535916725771324528591301444789455708800866903776900890148587219990883319126603645032673120398324241351807163093589790324953727243056571842266057259247765568266355412274632969917677332097220159487713027079465414567063673173802196020060559764583157926856559643974541547004702916353205619980228402059391679858364971718124354030551184871152017807500676552389490320589488192931306897992233417777770704043467207958346769941151389290502681961850220580149768227011960445805669592543621308660336527200091930926141622000722178049953776242956407672083379366118593768961050176412444705734788957678959988412464740911850970958265959140351939328485211209047468047778924041282487491706180482344394051253617182109335461401311050066071373293198957698183047031794998315514819172715774912391773138102184902227559512932061103159172232713028647251207483180974079615694745077107185120064678700977841692120705031378897020112837197639546554518158460085003303734272898632042898679254503917729132891186431172633209541814102169965902907961609866105647983513921233157475550546528182228012538559857582081274712228929592084767124518015313684683060161637587782995907340853143305069694792788359103412234702595532313327820392830918193188788891453975854295721461497766185236907915285387768385730256813393221648728600163199309439868577781590811348642982453005384724387413718158846403205002246369530812134628266618700729739773581716048230573579663075185919814221726754774678391853196355606682144019062757429659928063580440683407132081833799142991386192230567595731664533103938947358467985258711100424486193776221722822312429613825651354093684214721089741653533222985639053170834708796509647380878638592439916128638585894577438903945457227291619545166625979261090349875594517645814461355550784623936060605361900879154909256522148642500261555765968934461879868754105813192758231066244157884060644218265598719760772078876665673936031989751425459625782713470301471145732612627834280025445609395339465578720533893624011284316811045566775090202492018726850072801133695874132806376239635230933361192603392915430406483152858465743118529426811642538098093709199546671304640310939629502353055982269374847943324412742050591843932071151325798977485005044900362019155382796269985869448685945452073532461646031236441152386514432886407769672575132951931538521322443860027799834202280899571312496224998492265323784881478894992742228864704848220373188136137315130561373841006744981102875121590561531256226299698236071320129903542909329915263683199671661507346918036513711572644088922013402700792966131163104068688479414111777658231380626041177715179842428537055389980718196726836126647890494014164170863648750976207003771126084225950971233671929008267691904819955926314429555358923833951370928816407409365958119905394435528683032536150118011636660052365278664712862466797705111288070242017067721554277853233946883942175359860973439768268320046351467017852805875010860468604189963407325893262309878103993604242205122949030751637748822966804737809485562470463195431637759002194114722887908976531533134763514173735209743066865841045146483174302470095734445990254352330304544252171495994154541141207717722314207048953287092959504816906847564661754425069184740899226514314503526736171434291038830663813520624155615437753571787445032788058814889441025575692524946547072397892945424335374983836275024593014873123518633864524918648842022316499901176531175602086446911205810954280663776900088724170520019925203598215485272234631785436962101105939550244040262758629950459320106813540889135895942157514309620812804761921982159768251632737675684453267106700665149017518926218130193920056993627964602563305284437770066171359580255884131780400817878570828877532256113168052554719133244895163632258145234877094022330112835024780641765895816512930666704815274240079552031602656675839519626054345654626099625463361617748662443883439248347950086601820331245443080724978749723971630912834610938918579797411755040091182847629368653424451698591991347467407699789186817468250702883737553192150848317977231859314410688718509643194008541892395573215278090805571742585857845812920879253182601502331882016263037124100579952730696777464796304151277579326225143160759137751239862736405227269333181963873010854241803145221912263784252664422783507842148744411008414167053771843458761680650342699229772424676215133214002255064689730941665138468423501404334072592309576810329115782658431557039976182542233051446362971206064180671168978037361925372821722066030247960464965929265012382841615512793199758700840510161539477451890268855780677418297239105180621809967027200560102769107344595251646040706027998537860322416014164223253971307085819517424134052135415733017290484966505371914787943228020879005156907459116380460806463527001924135706413895806033373971684497852103738603024373198805326914146855733628770095407138923425976991399137062173467744959705601857813949720125493910414819243940793186028508614367728056091959926228794371501706404061546791340997633195442283217276216427461812261507925925015930777438405560299245464629680356075707957431965714796345760012212674794560618862311055821910411740144546589135297969609897867432053685980299103211108380375651785092973316430623554851392367464609412137676610581371320168863416496770876028745584809215892742709270916970879787505622905119296149647424696427477337301003495296868022176206018076541725287868217477416630570358682503402655599668191609461524931793290503137168614945086290483526308901921317540884723768338477363909106330576821368116391163932205055547261223888355467578395649138423699388178942469935125419045657567865784312742857189685303938103026141471031489969512914543335024912611356076947015488523643714911554704583408751323475128228590214205380836054853559269296667702909208831953258031262913884087716247383408813573153309167465890371596120566260286846965410841637472199292161070536659610200738076477710004779332673534573196243738486904481507707575153949207867812942238471153998245964171640209124322449710218908645659571966261169222091670296793228472826495159658564607244893785897515707813946892269708346528103646780445112182268520626316198769955586422025444654950262372587083832849910397652379657922746563804144033660045608315070260626574146523685905784563934168307005251946206391332281965180473330024216499128942544445882689369614332202796853486903563760426006748057766647334728410972708060614385769175761589748437582298924792324709854644592415547025118183819092581585304590304913842912640299505126778979948205288697545121955762284569829877883214994223657122460323323191160315158280325565457324797634376783921193300754796701207779325044195256967159123261559523580740645435419087070141482439826992321085911521568908223312870132076821158619914129460188982645108630289460301788461666410141778398541040971363380545834245854987621892206140780706740249747615289180568466054999718230113017074549538193702343630782255454352593203698492833655627997034205385408265665715764470484828147509502098957376143661576910432498403435401336927201012676322315168482996522895304013865714419434552939251484224822066191582246999033533888761632884773465064183128534843503467677435942868949205253315041868402558683993803100917521790157909571520315920686971306610614484813659568911591189058892376100924244718404431034775817582941004944855906375523452086093354010664239187220269964650287957426215302917836557453489569022017908711416115729683348776512308269697973206563330888729534045635512740841858896736090221118177745456815798006156506326047625521994501510041126156441032489229812046473758133304433344452344254008024562752081065580276158049602477633984796492283385238894072690539047394533413740071003121718955184449462543764393740689212088876971802734438279950289182582476077517064319591672113015700803770384265744308510886719948536372183166926625645641016015243451079105622111591015709915369607333514692351317301646079087713201556011930238585248267641538742044440042208933542958610321089870680891793966336964670706723645678582573549986882115862798397383061714944787842766742697412289177163527374779612738925071699404828523065388834770539174924587384234484987855349174638372049105010998851472831400455916920187501725830935069482648383788889107819490083691369122851387307644962618455977852392510503974879917857084029313965516210693936595223497983571413099727843957968225610859330432756062255978572450753101139373042249245362915743273350354359641913199803797786971428752816782764405838393037922208623531736619288451543797269069910198884974922930567892954708067243608547016693656584256114424695185491279332497214789617505716810650416732707447732310171217672355974157511084644117377548499973359534048806887272260780435744083548080241020574866619333851465499190149844972352028045578339499828191439678501893907170223765291112845028696729725498865591027184316274452900838183916221854281009801061876754360034103490055498842363836416215197457857174654068461296565637633148226858328583268060837859539092691264189147100933713865097845346460376111453315391449159220318383803986163819059213235273692140495691175083997282115848248644376154442554148240800844090194857999759526543217209337815349273558489014266659788544409114991142445209795100190373129570070190328051332604049988118527228820134050309556269911133484627517760944277052165255715209095521217971733919493719619638498635982932279021605622018417633913703050643801321988350027894298323927865292387141994503636011403228746362486196737738125361363127285004738990770433270049785976175115422127388535913802775469259921118146628085753616417267820257954807563059290768400887577023121614102922522923958472272687248928213709161933388647302970282476293177557703695906672655996533462002514265976929773520758109915816583040617167700872645250382418173950612479431567544389926578920628062148587153834326117805615721447543551184839154451488897328925254198624946982321788803059171352273399584628429781079486335564541445671060363193629919509208678830657025134543285493699361448769168598830679046961787562485950026201106635641942064117174030922087412603865154659816282399663308411466888308444009165964020319088239943983217746018647906843904587197359433682094855236794461069789345612721606238440478891245637128547875648312304790575477492468515662534273872987823935502828782184321645903025450955926973331286488318016670360288370883699729092109149231185833826403439172866239512995508858820697050820658985857043760938724418184971390793564153692294120687420913736298799311546031750378126772629228774510377675459080483312919353544221263636506150502083192248600148687441183458002432800148569016477384428790898987738450669068127401833698918036155164209948375293513660631661922443429250876250345426565272403387760263937345001060695371787138527994842217039963447726479521242586242934240961585334955622070681080194331975065743388340582603600006172177095685992767012562239671693677290466575225986017638942322643789139200008531723697183180539038821895262777268963717397456851462594458277387981405034794837634959808469731358561967214611630417116723397824388150611301313453377542516673408912063342561392401137837820577369220625948160133577754603396222737795920549066120235256778616047757159815158343979104227551875758384564110672278924155344271569139363093483852871908208748508670884637649780172526060067359578066613239510964485209507688948921300456286632126809567756288996707163248998009668896574524559647349982704411801938480007624825079966804165609360469118683516917433060673152330808698697835377914877248797815775390407592902021943356555874703933464107277855518991569587370569417531521917983794866451119154922874279800802466605612947159266147836888445086247585076917509148687648424001044595585429946711908427320865087904370479921784472833219836988578092854925341470715710506729636098632710442441206186334640940746525142573746925884180520445322391236656213503558601303405435476672210150686505265969571047075038716354611405776342863988173905150074985491540892076545976956474508168362656985378181477005536567131629126007348872951233387525916215431329753972235156730443430549335580998447240836644306038479659691814468932942272415755786186202598443335953015712656407693084288351971071937164569964781099251002159980539042637091323868251255723121917511713113595068450400410105085890804094407973838911128140087648753350289606459152765883409652409131290474707984128499146892746258811830039710685966267997367432102773225422281007242433990189430270268008023233484295414002174200076423160267353438593320404358629150289548848247729370693867834927786250681610392306514733054001602282269091668396700166471211332072504053143129732386941519600727133293561119419352907783338321610092169446134862514854336222735350474670210726639504691441665204378910403794279384753787181496384795576375170243135139036562707885734670158336643318515418129955166413658246941218270387832059360811910270422619573520631795533830455957972258433773656612696389322920012207355429796825059950302366196736993866207304081005634140484267138164852954355684736273680768619502643870856281212673926988961089766310149402747590932367053782318330955892281940391755431565242544058153698837866185483769822853648590521244217078882926221540537734746265486405333692180801529013308911982800142262556251497089015676994250315590566385770475232359733884450499042191774317776681150897404538278735195639998228612117703632961123670762497876756025400567266556368360999645037958799588676249308373214228141368408010615722359640001128875903046485495269236914386826714964084379916642135560708106624259457651049398228777507877126696490639907559819420780076531463303565096880886240924552118881704790032408662618820813282668183132595860612116782966017356206836245755048510887832589001480255129556843572480496304268712138437511011461695664548308879584387406338489920975031258335257116791954922665853263140894932484427112405430292238448418345275961745779074214968764187586070380879533260794328399117417742662345306906722112842337063540084218492809821564966213409288944574050957195360459921796286282027760652039930351869342313429337977167747332936293398922551771371291639483790357010279009986171614513792066948829164846381855312484824446652307422863547931330380126192725225503823619073215822346582577862235647378260203719098944340672897985463438883232665144317525595004437156675644115629507718877724223044278118835079595387123060477456183782918757360656365686280466455430478077618995845423059449667897305559339949998715431291952817029703752347478090493857075149672923465283973096296623593291905742317105268805455228021437761129915599034755625262669442846858931747935725786598108524811615719257827043605346305381045615137690181253100067727101070637359559882865768816649425037457768913145505846789357711684034329408997373984364184893483095830463334137024523426041176691167344275257908713666278326984043985429025656195360742607757084424803884476459803989887936269591989629309067608012783260210483469030409366393958929202339325801838822700898333965988966733933085965317321392848925227256366560677579240669714689523345416456509304767651366906436853756178049029657965167172863774658391434972131819254908532939501984297437226613269046084382708350745787954627960512188077315359000678522757625713282120424834118812153650274793916201013324041178675235980616502509724252349376958127893588196859784480741640545863014165115292763948657289227782836621762187489136658062947132858138856240210092694947304756052346448034089504391785131913870830708942285728410076149167515248473705446189676979332021121894077644128676943952643978543926138021369656530550712830427072021038845690629744307172360344311252741264888069703216292560621978073194693836882993366240102314210289816210202199151732184708764248828379606471694934715444053087476460181605425794018810385481765694176664335532234851211223685793171255044898952860790835308638200581183347801932072029521765935767760898290390268125229654255058937531397964258755663296304367341893313889216261550382217516514412174496176996715031241792513290170959954078154730730722632244808168070342102590169391479098275411916726569972178893669104363313051890481355885736241390623571402417523203288030995635263638395556790032815362456946545184937796935369365717285638286976053751022117370054304574555727670660783612189930124311648851936257861681989864380053017485822890173045686126505969892532066202946704263783161526994273215582184782195816388262241101128214488747331769417286503844542423983681074843412839919304168565315916850557537216551729375403525128694211100303547234892923918487603138856231226536141875972818468232859161324717321205348013119478589060841210282063153282341461397491919832523120370532125664683527798003885993754892634047046380219762915922740411062932542812214409652346742063048304764873955371350853019950366367859121550082478363420519188200418710323618186324801340781621219727794499586838461316840295688579557647168101251481989508456005705008566724689209091006153025091855831921899435937455835964200996358240883821944019817329421294569304208565815167974669949556067922623305303863514911663800383622841426886317483320866293407788018462017552617192392132149173477612306322229758647691771392135989331856413698115452948152802419190384042225920762293897199206349224563700094385974648291901207472522386150226619461183565500625883738525474385386021561491362384902726197929680012782854202563910180330414903064010511099931724664464578505250256084672230024117065605900814945879592938096758814706588513100444826473742727956328449211226881998400991563712799616217919282614444571331611545103612245038582365402172250797633575028171219234197747572063968396498821581145626033802436832999466800620519002890661601750522270956610467914408515188839668299725389793616905195430856870583506629141836406546701406862819889480929375882038385897905229305702156433372431511756187155473310848375940672150288962518068119367139278004392917468394522070655135278153116092351653826899771315175514753984790456617564909617786034959932233690097387935402140199240534319442665657561977940432156784385862636929905841563025030141633093728613245337253739038887566991266279802964486898390113017833770924788788045567098894807202723453203683253700376064738079563958939971875053323437511580543896512300833581434313484515806036719202516140229115757870092230516357669927494188136465947619982990648925290980528305968982152196910650549451694844892429218871091801102623328527529511627686649130497953398283785298052606116563844823071716294586339634477532092381964895196379056526848144687401565622286999388140816619729291011010127048789547457384455456533312837926271241447508764649987026367648884069950635453922352439910544799991440537690159309137368792888824773099616404454517985755558899473166589110433554489217874293614325101426921957111910787640779419727454941685726750647499661492660595780037505899861970819894242916200342229641200201173385528209370205124103969347633551248712566532537051900759905654948321827513516359635821390999518248095507618620951722273712398261870668540661769830059007562921867101927225541956329378363035925885441215496196213962298458628277633624674569102781668762074105772260642116680201054347127948286769614356797884731002977674871839079078694478168626468194815997444631552809020542938294997686259690479916374070495729340301148442383676450812650617691802367012689241642894671498200184730158984132694258800687310681343070621753125170008983333979723514987037173078610443745114957875849386973484938128762372169909736549963659984462229547343819743828635757580769479730207471885470062485298797092953191568169337515845730010204439242070152463481416868807724150902143217421338621496619324158208144820848593567554469144049408439993278825380996997477861485916843170302017815175325299342491590147083315413099194741731326293063400460538390340863070607056016221365628297282428140974714280392254313402470843670353672177387768858741976261927317292636291689539198049288774206737893838343511476623252359527038810754623826451615530236254559897774813351588530503353070138955134534300957286908994006210085575581679822082665400349954212940057678112526502267520137053300309726025916061764260367086372600118223151923910058515984646390218156643642660932765839305018980723681906042252020425260605760219154828696896936224916386834575821906169577276136316220975701545325144804261462189972861659525642009176001444728874332192273956475207236188777774887730664612077875252986054875844577300655196310325249888046298522849434214900600427364785029374976851726778647366941584463677236709001520611446438487317786404458701587573401112778991292301034290344196450873360168780577894210950483276520739097386316865064488384791194059997393690865679593211277795870036786720875379584712748465476531133590729793213242949255398963557731190287789951309381171480561142436482606895381951180769462259599163492346295435497859243730851920221291647577640573540851798552121179396865633597197554418438815958039031596652114518581700944531177843533774485667910230747179020233005014459950441263809043136074026256166538970686733624484813472299974718882240196668527091009173097093030010896288317345747854047020596443129554555351686580948821729398514329941779962810776053633562064225903035838296836821346266264644287782630200858359759119419848753429290410632142549519465441857951496267595181115827557559586314804986369967498024731228346001782216461145014160853533307780897773585011717657544958886560619220616024474596318948970688699652098547095416045803309629625776154958830830380907416555866707249243408454842851722410710641439518490421716120637306115594263205221961179466808424280000163185798007490839842806538374992199603244117126897039520575567906554742133463245752931060816673495362799690120952408164386662972242920210735412692766318804035491612240638676217312130635189147517676711992147083032116770390907864076389430202496042549807783019684613538774501696928149176012538770229511849388734356954747323148614823699911906198386503793732166672658291079499401313836946864669810088868845410867973365491485205945912258445519921317997188126919653067778583135315267615053664459316046087228051128479582816019367569966520131731419829804388609743563280860009418221671663715430597765427703113368037951929374397397139247731332546866622542195321274751645328194987917246551629472260633643169877643201630183198435703540486948414885497459406361653369613647863391085004657555476924459066554228555296926472439263415863889875188720249088656077916357858856566783526691921098310560555064592202099660631663501608005032350013920903761166393326109011230489257942954235927467084005134881234201013184361699483248751424877958853638821145978195907384955353912543962423399055442780599933536555840102984867734289794531762406085736520365751660154505764570391907210310052686358764805512443920040531838499762632227903974963415189493706489090866652958241146525711862554903184711550514351264046218220772561994890362851856120385740255263612114382451618703362658962048405996376589779253440473011678364474032181306422148093562154508210538811993646951762534431813245659529211443923958920534501516771666811998612449239501768555967058117747920419466976389150715686618699012589553772062818410906847430964882373660771087819800924925232466595690319942773588567133722212175026710713095965004018046859002801610167014432800526162911372612357104133448811360046394619154683242744606658125096698939985302072209069763776108563749000271602216844112550045383841310093945543423906125865980747331353980276041827934586985289148863422167669568096342960182693125413620919787635869667763337780012759616579550093693684547302353011191607500582747589745179525997252606518658515447849931736937137744923770895933286563949349692437339770714830896340304718488934935982570108958418228717119791506864508145299321173842127603010535929021787758046494480350415133505495951313196599699354767357339652406812133098487009370490508465932906981897800878272025690569610134306170442164224197245650563994648890521271365835885440254006186019625096733059718125875724075505610478242405310674995589366424021026545775963496789210552144588202595225378074796887942665904400213007217247374844283751489412108286459598622863593306657428188221389658545532463842402267961157712128761357436840866924731790483364910003777825201396076747882854966092195094018139143765639420351853535965165816219019361455359072470991466266716884055238258420603360006100839572889228864992197703801369080387055678450053405994453648244309175642400005574925998436726852256019399206967689925994473909398571349783516457349015851071492297329464199451202665776194207545933294502624676518438520961995505715286125837474710568626454752106585188120940815847088680034013005338708712459903177280003798995076225575399448595809390445570242637590799063739348465610211191531399238531878041440849802715095584043511014548616734818059598809876990529576057444277191492130226249760613143527322253761421081560311735731019150517947566979550334509680475225831395112314432567046916974239680668644882052956889652954872672952228739812821408468215888973317494947863236940173656858026846878287409794627396693494338010174080947305270974631751308673945858670207960019566634222603340933040770710993500954143603667975301297325573942973797452189476973011787177103613868606242478672151926589985281751110525172483023575940191248379855879764522821304587337228220231127370941321378699493013989985509110362266129085857226268072505017592647974607444543085505442654386149749258314149174265744995699646041162598714473983035953791827155429372496929677771331965734286719919338138100283237618979982246229905370712011714891855902018545999650468850284065627708951903522684990581278802201600077301378486328493102377059213854592364191913719434727459767273366452491877742619522059576183070367095893943158256741732540980768475476757046832760520871357402919352410584649950979685993953657980001905208300580696273796296872495221514033821101768705638685944138559999291374822285657730787520464589264491275495461246572525844144248233489074384836250660368268523908286444695627084910058459864076024698034238296788529596432433291404223636256290572829279849125524026198817050170088078580243662178938767750000294155903032518380492138291545493295381779993721457450828135770352107036422702031867221641240127316543077779749899496714831004626875985687464191101661632498096091184444813706672719783491817584399278856949979042105011897002554199639860057399333432322998813969810888850607125526004789021915219447506765039737818377339564896434550961389657978690149386736226820913056979372090557646294329805329094401077450686599895139435055544869627785981845108168400811899493386851355424810231314133490027281915174528990959974375530363113848861852386854379421627456626131465513059847471668485008008744669064648256330286008114181912838166609819308262095969741925879775676414067417234866072002434293029497190844613222145911992475834658615669944643436755888652172778684104279005740999097308892747119485375413294663429906399486304952693618190322058064207871759670644319165515315217261604543812535528012314610086075075414646273117609073958047190577816163741359733736282444688074591908504503569748338521246753083019450168857124424108131004572882892686509317151698820647067591154035253755352393897543854357335211986925995941284009392535923636872183522488911021655696138213723723959043317790864690610626387642956731549966594153896976319077366823599436179157042688308643669584986755157012211777061981201726298377060018537660129860853276251812977682704005050278642960799844920909100850027188424554950011278108768331532304048939737571059405826753316148653580547742818577502895026545767404519530011782242422335264288307546732910222062719658652508676722250224631542383099156366714787310624138213489886794879808082436811911348667423583235124455116583485652458837728362595361054091888812818573585082308456988861755497688068970887234471407116290899835591490514370394565855993970280173770344182657575090423699352947017592833452806416774030433229033918295750591708166456080411031517980247523344273336169913109827385341782085537214956108844394336864479904053168577910622080778860644929404205923458995508666847945197727751332508584231572084541527995036396046856034958722741757396970559285723058052086837319040802894133905683747460913910970514285947296218613109219222363141245189522871016977503228676740453765191791371629648384770785833719831017797289565783173225732170645859142748632896234815491970339836968869059920226513572846429087195023170012639086966098699264536818886404994018241928999053222795575333616242711498948830743642061603204894227115402562547477114023153943313743598167238157655399794430067739875045892834818549281352968144256840235994726605556582875814531044969095585734065249008167192710394271211585843914844111509457346235279996538972270040151758120835162601593114672039403357073960162647023725940357425306150858166490202366376116590516451842661571014002154036918211336597570603501556191126737800978944200897859362196398880821551534627908365093462898197009553166063198609163838351339834091795657047515213037248244191894552684603279985515440274538108724729871092235970690514726462574583331423184282131976147726283271542604319026518132956688907601325949130361229037273830500692730344988085657988616115815952822996068653724588471333653174402926721396656085049422243604770433944141801692534209262481930976657827660434860428453122362247806969724472291583436813022549275917006940804250519964262873953601895569033626327498870110452329564946343517486784094981560756848068559915848646756812624480212707831549947304960294905702593370684007617410499298863756115196817501724331391757615580824800432449935736806875009869443236157332825018462145770124543726099289571631184570480585481569388244756219033097456337687090195977743264929965576614362620183199426821868243552976656795135485305294445238752530246407515621569922439914109224541605147964798954817118978955428607249411852103097114508996735385603835907736343961266013812749671110846755114865398384203818565868737945478771646956220139852618083547500697565629351747424571764486644434044344827985279756844551519100270207526612391941839244508100785435205472546318054141905846076671024017617631360533367991820867251932388255671483701168099612734192061972667132644868615333495028008707429971013524795208942628454340770552922616245816295872851439256986229561281484895583546374285380213889102619413429032040774848988657238129263679349679237809664196085097997675948011920474258727325197171563584781542187795796650156315641537250066034365229742468381477627115418195792651084673803398398142453610031619746682025064994262558369893217700617422338365472572339044515267662014760082990836651786095302813299105607997497875257903104042382787086372646024019303787788884473576226708557177448210018232710214060270725008885754033043960602612097229380940350162098683320705781747808676126549796613713655336715593026333823765271803157757494235041562654454247993204371337435303165588857572020502069624633071202688884487406186136870662910293283742254105069232026982662427571517117983525497555930181102171148646038413993325741646718946073387002345480854509240853759949942863778592073067375178363167031157444210840358243663077010038733522069850248549489205101444393385142085706700756420056827386652294845488500502461863232596586480893713475451294111906467405409007586653387909607458930906981382439046243274585658126452176740309081919875142278683738355297662714940662075465289096262558321864339398309435356729668400626735351561998302587893911564489901441188604187303128597304894446309119071121516298118278752392020721827592565856063930845793041140274431859519711257415504059684315349128972272418266179880509000656688401676136627309809485371990803621583920162940486889354788976318416309759794409417707011856483286280988825687567830996369288372982475127265076055527685709900136040839539384383288484890449032148702642273381230153944394323854288501559510640018615656703832913276704945313080019255842212682418066675429317523152711714546517364047345588463589888078070002517841250948352579371608017360323922716849758095670270154685505494723125719831950531972516398087395267608096722289293327063372601983910683946187620921153191830545315835629564120976751120580265813258819351951622851378212080820623274200753371280747795763940984895441562915990788446012826828806173640477593268442348655823376380668084772752926733890226632577924605855919054697504293437519791190210040083650443614119147150414062683013186471797179502617235739422966181098136190814326785457540430315611142180589050491832030195797848401720267992693736918444122012788886070624621495927359651200373639419224380626603996709178945096698278027068602942091087408931824212515480707829783724658635932614651688309664875885932460007397689846923403838366275893856707407663898259407947823437273061170997497641987514897495696642384274555841797188190353496015820135701603413840813515575229374545029193540609980548129913882726643412805284656968595485192254540230439557676192882428692692473821141645157192517956524183980761115593259100774341154947651152699063355273398335956903358145482097318443504849773108404055511872921604895904168529749629718471028188064235881330043741444118762940820061114113618668912234550753176343772686580895011336779697972073662841097249443559455955635222365058387930551925628661330202156926321346106836199881467850026294249763325267733587789698033936869650787336772674579628582661828819174562611343657535039213650145504025172225604430276240642606050809844610405831589103657378497766245115619142205618035858564921574132958041677731239227582188446879403957801485563806930357497236923251615512910977798513127485656174385034074598958467037276056153660861141583004472308094856672961550604324589613245936478802862756477024510450406780911738347475913042298791609617670183600227539983102758004899998549527486241356867996149520806285714734943440988984116973231204996832590726863264764325094218071070253148185887346191627352031935343412222547806598011919592647996063297646985270383399067388235999915518133316934933798615880570316092970230344368721842523945896619110884640154352640945240459981357022904766619827711654362559458929139677446181270430609011278743876012751072271422044126767118544632645824598223774003493120738606515203847403257083604953882425371652681495536292529438917087484965452842906130108137192646764362944430006410343236863910135310601370856219168269410121760731465112337358769673043230310218249327098731622925858124205770439015622655992050725377520941697808177032725718217837945009466225480974862337829444271995935608550393494514510252079427144864610480291755773223023637005183421912870616062351602893015900125818859821365823769905523861752168196583674526929705948996358805458979014211292764753273254946097395577332841930812175850762229104376740089939483089507248644240448410357678008406942459234162509829118287397199908558097263769962207355903574145133840704274171101173216850554597712245914350657255065383127363681903857541673516312754471061157409567863972096609808678248613428061174137185142055487509636586220611982104040037717910562446222517462387697960168271054798017981710521508802826169045115542600258278836848986108785012137405826316565895185341434113340383986528550176701394638311343531625011771746202725550039790114030407428030007555689023945253179199529016386935225731074553347815104770155785181579308455908527605490272488645507171803967901915681288991423855569269760441645021496378730462066629686261381765468462742509225355417763292277179093689654276354382451858535411425335431550203194193029842540281862779223988660985444354050153513386591192900595690844282480816740568672563929087504146482402996563723678133441591149521370959731776132517644907832288711827763934041279814527653511095628331434700165162450600174975659363324797303506055286766278033850808953972771449702869135242769239430860020238511813557543027642505404365356504681584827324770921000905359944658252496282484481091913526856167654760347787423053521218058325976215315131178660127392546242121709298472009564245679443623012240494696438527733818443920440249671298945645291458650469460403103554098620292895001003843506543050202674650233681926290840851161146134048549490959742287124625423463987148125912303425200069665182826482781927429570495749664848751637538718970807441728393770343225833323133340423624773739440831402654001207262003258911443965347372780989026919942449806485898173661904332782353488255861237115323449762960855152365983086215209981216228735493054146594363902927292128041053065441041582163037926669176179679030671418161135287288316056211258792018561543998050128803148580434375873770423460176437504558963404264573025875556451895885255237926184778045894170185569475492409857548221215167433708845661204836717160077990229995312274618551988048986495482145737519825812358625816343683980743582809663331519696162734646800373713984621063770062108846685860401658223538581040624994363148322683903051060416234197782543778784811533172874185844689979342065960212052735552419978722541470255077126481614498709988494284998356700301580785679388862815508924298000656073085366694124339292271333647591507884351028735316529693039534483438160816326099255935993348340747660020805335284539093713905618708548545319292244472998516946519960642633064026621488528928421137971799488114506298138239208003968970934413247281453314914015890936913066322318622130106863302126184132890635678475921331101052235733590784688269799079223723493447236170476336006386424720913149626285287022424451106607602337326364298542255584749301043272498488442179740930594271050463207974780445990085526585864069559211070527391809556521705847049922307576178209181453622595575017774755212582374753367403107865987470251728993508356447857360305109989148536491701788627831185421420096608166262646197942838886272949186788604989563217439452738532179363878748069951033045944579860495602329828507959241000727388803538091063040309052952274603328752003688191376372247836458052954483809468709069264867742668125682522875814046094032491113531767692983699860003213612710855193766286825584168574305469944449848647893511063415102357250608098869469371423012647994421298162439428545137478864059716748005464491964488177903526224000401476896593268494350267158582193766560562539972623864767131080095919349155628455439366455873310682067390725883016370798673647123024058615341418333002828483553889412258033373854665951142711101151109702657918212858570444064403047487466126850198727383795648119615574721680564115550304220905778975035053196662986341491502340335911607567160778735764496263599526651682747934984079288312634081656301043964474543864377404548909618392079810845828677449270464790463563292829948828587483195407360902518824389755450328889854116445439882130439477997186103437893805718222278235572051729698289068903393812953213914202380660378172374889342863582125817242600772817421325438164593901158880984911791765962793839150354759049778534814738761464218409103106095779873876336835254995025360264836679402852888898227112860796460586227337382759256228322887302406781628520299616399099699045703966334246564634515464873081630703113844696183987744623226390181386715831779787338109766615974072880841893423716687780509005433397607064464530229279278408673211429912413738993258566090620563247225393386564141209462070846659567567374601188747920941582667493745480421842468956162596985642189422561571762294392561486609941119757844738033426931783366068519381010272936495035818435957000203206961880479539568382144635545789164579985549651064634438385403398995966494688781807868351814689337345176166920432439047670148256251195521322952471164238474070753105247172315678710487194320893610245760873836660023324382079527711920509737657386065951755989241045741397445136261705445691558755773087865330534768149042376590047984153696458838795702261738898984523666142090875581669033720414742429791664656444210981583546531475407074841134345499219062560294174851909729311037489536937421007045724879538472706068331324114903144234482349391382406645618599251227631730125708814207027934534652873919017716448576302473185058219947407645471139188776811090881174335308971473393584342207462323527048471744309976839160589552472657715944967769292876861762075424482031098656666752969151542260494088527639911342401423158126084008470239726147290518037184162246069446811484343537824979025952295838226690289757221821923449111825974952605335736326178952797303097773983606704924572217688308396548552697892839963907684535668337110436050007314067475952775236928010478420111757263271290483937251847808967756992024981245137745831420384574603666939496353370368244372665053307148483717376381999237389929507383349803703690064469938535546789389131507807000335985655797246537714746034296181591803078340014271153568978886113398598890161663367380266250377979792193045816403185823352206503545521959382369867053990470545836438918941520885907635450441730339606886553663379802410906477898520886695325564682451246792549646238948751703523361957902336154911271557875968268592738084634626582082655956773554048414827854568517823205774709486286438871742330013525348772600833780412724998966331708610431797193986883832349185479697707080751029228343781557232790866801011914826073498072758521328010523082766694730549647168173559022017181265824847664549593546240724638896902902629314858969418750977689733312186115808954662473617256399204673079545531064969376178534516076731930695226640114332130158039425574964193125046629272106612021236487193395229543196927830051190385335786110194171111005243594459109434286668924006382448366380275133519043715788157491238341447059708517873406362639973036210611897053232183987064994340839974417168767295123128137451858821076480538653224550622640482206286633302648283255080612166344176701313744725358199619738822921913001301714399907053096441545610304961785842988002784884811197816659568631217385839705295511574328264223111531369721041683065597937414956843053062151917769041247967993447978257880531137250779946313169608933328253169843871339014267629757315879275606207495345876652228262702464492638389651573154747718955888883014822605056594180446485325914870128877694900873837218241536104492514082641313611775517754735102367138694949034160996385410298169769958541192616469920887302736857793128529785342035788055365903591796708257591055140170385810082228705782986026316171347749164251073076707028296728722669418462474724844213236132834545681597692307524025889013661454163441975426449748337701035847360804621811538278384468163002514299098769362452526459869920929023846625057303639163604111743740956210852349544432066639993244438005379284667949624115121063770267804606451388023204412959151944491093712720111686421866161149699474075482184591138145162082282892145406864333429570293218756933801936217953210436959149329581568088327915863662722553737402546717008796729450965791138429205345909688435273750957264943957828712653314630029413965124674160439502115084005415461639652123389306131582991691086086619058881388066911147701327145042037322481672180355479683204882302078337225490137054856450741540034646082935379978652288382486411281487038868976604178915600321139951296519760608579648713335993402653470226893807487474865593579159648221599718508585766025450238247505932007347463590838975090758635103447654603074999046411945324391605135638141583935115510733100633921928530320989180033119476881889450385166023024056241598416868579180497965406898583250734099393931084499727237438542961894096624499701091997311498096384306263887762875578225163573754430660342525245483182545074164082913762898004277320246417021284473589825359194331218325308881423293637204982792526860398268149333899670757190383082009737345427459611679937599776158872405974495391371665209787264523865179411181008975323659113804994432000985579229997831081413003730344836675524460421849089965918993635455521148298006469180096873063449865055640011929715919071774199846315370315505629219482763046207860375234770487788734171873919578829765917860074273559653122395584583484411612217757127771743921150246171636313269891765297525138491710515992996134543880664670319382312847550389489666936601654531966452395399348700035098163655010664654465550809193471524150838425549642263653925581809097089722078758033155973432086935834961784100274732463652479392246067242818106805319209670802819460255724260197603948606456830431937680255996394825594189317586336204180299635477604232027280173782301357123509772792586263699313408174663945412330498010073018848912726324166383050651604412587104152634655231933113531021864374268840554057277668141501499693966056024940535704754729087486276497743075919215274033366637771967816888265841675956372333765671192623335942033322766049131851901593676102970617006805094348774592692577156824684975840598462398166173950020090254525061382658445619517703361318352402015975049798503821639976129150928762150132262523062667751892195038935877688619263266371471617298039471253566945158883849167623825818699863974388361115936436220984529855568670281702633389350535494574346152867048129004184504806879135129931573312352992232674075231419080906809197146523952503050484052861383479399952883954434640631605569294951955581192844578784556987015646038458113685032913456679360560495022299921220088712756062049420150565572491714673230182433576890946565871347341043624719067742586274311249914769774027342904092810235966353522370141458304390590433873906189323045497745024655512831874926452701933175822454173270913018676986469371255789912268243608077480935024554844866507087149897968720600044599428315123000266437596663898788975847716236061363991046830773096027544837592776570670672639901121578276194456516858661152745245456546512471242878081669125916001018167335755986695932150577788928421230861980033192516339596999612180596112949511846691287924212614523428869452386055885756100638111274974352116025391426551585944949127598291199823689508795638032728789248746715325741884325809742932977578123328455533311839966987904119282087190083462581531720270283686263004338110811220559478011365642659495323750317194424411517573313615571696267375327064128422727801719699328628484192322715659351114586494254555813969565583677249915837743132850926617308060881439188762677905918335248354826643179771733945424162672950029685257540689598601471758447330056647227613034875487670880162826088372918120970091688388292827414759756907465709554093118801274086582871696245147986904191484505297152656958168945864976597758853539762500498904148674402170125099894024875634314469025076246013083006254263441178163405137669594220335556167659604369403586580178249148327932081933559746772566058297513707580713347760264081642727713432512302248567908170177138957270936143910424257465276162324519561870115421853744770901418835192104224111880891495279446488271833342454563800653304716386423642066279013463801825114007998611922461965393394872219455168988014035702734975720597881840444600039757896833557474692364709951503016278108486316755328285619744885646737428627324158321291128527061936037531771308498874798874205369069936138474481208791631741936291914675066806671212803984514780264270893674896191085955678647801428586434928640045008980453379822491369369397084975076876683027682176188906660327183855628118943590292359416975677355680349272696240702877065117868393757978783173340735413816829501623752849808249721060996211536107857298366829087096424618982770954041335646291221809680779216290942668734734291255754196584295701990621071639769199489958393096467529758507012179272797212720848703080276943387228297007508461412448935322674645946611809736361632853082766491441733354617100122469912074593795077920741519025296106277072705621701709438502668074369797813790476956423791673400180382974832546378352442738226390385359752964765055826390165662230757922665887648405110973587544502284589123283311169375837139797081458406542527306135298909848168566405442995103913623236667021487410976182160154681443551375343826934079416234743660733329509936323540641210634385092615223367643976762692649108697898562257883169960945293615585875456562468946265269333474482180416762184326993409204278476364317879783729072740370167344967164764274182643153742766384576617657885082543762306859976695963440919047038995468204550666477716311261507034569943142020450887274553503339022550833448236473181931263184821770153597484370742550666489311284454415896884696568598255853229310903296663895358246968962373316255137206109709302771250145410544736510612552645128934521479505539370217676960545057043005570297922693800856136459782903066640027563601446685508101468419105486532976897386619121258331582011013366552776492529273975190035670188557262153602433265180557320379663730867763389640503680353972851399193208024163604517315582817834489949178777357351428543720018650826567423359887252853675504334080689972511433803226798840021320514319704708630908603869148404903869164580609449444461827470667763181456166862102296473755637333339013802131691838044083900592960284257531349051445856701924751547434744897366802241070233539615131723234636611724356950880260883825881401122263159018349964049066585911912423893736762749023374227386327150229316773394458731170932427428933330301868897652439939324889013428074071027782232781523248793962911353061396473735090907622370032745734626470805071041824205791469891195627274740638086943768398942657260749490105263038004653980605583658947876254774422581736105673216888166121530057967066937016616844978491796823086871389409763110485625978045115693837256672866271415020304076642865184345883778454483017031211441477028700832165263240537390276359269930183228303334129109252284862482625875718232574122328584663352631868637610299176018266558675597012758073268999826618026869250288904118973248207137137912142704386740610625623569701224982328331977496853959551590486777465488272307090662533434567936990015494861724826716958688716200708522512075782556288353734069264086324533062473631122327313646606990006175360605275143931236235291475405094368112534185319919084401585029163558632890764815599588053260633585694855014983436608977303823351412528687249005086581704261721724517270665737599507715419058323097344537095624252150071113927178716295053427418512158175062755571936174862991445072818224264812411757258950671022296425542140559258841889782484762203408853392238695440763657462326006749503863070165440218180099950607819796239001130485304772455329515026499701661339793447723803426988415530132528503537045792498071879360664005365993407131289628239998359235167986713596265169838340612427438163411638289647005852365787927757056354001188016723139586598011089042974558000370622763737318713488861562876890462582160479271571773134123545148753412488990060078530159975650654015985419953396795452986186933793618954775151167895032096603446188800941498569472386875296521504243266393255761965607501295861281326589502373286755389683092818626154815794444978217774143800085306955912279474495219428449317772784179523009087758536204902443780919373933555894203772969027139370569642569554584102377845668833190654655011194530845242172656122312547138742095248585514013160806385513281004329472589407683604276886475208110975290485900807544524328499945667497980562597003308957466360445591394331736814295327143551253630535634902534007979879038516354581629132781652712792776487697464884885595534355815034273302511819417707774892301351619904636836974067120180944650523801762453269512686185486391503000546932966076402320235860304297126245060563888699406730407966093214135003525631342714599559592183686075070967361950573971844952155475169334316810395417184470663345063619498304981677375983532551392422633491333930149936091424593585619773799541353190742142350430798240166866318216024586506362841443556444588344529799764328615199879968344260184634240013423238547548360658856532357680542570411582530906627652619103210295901330288096827580683387215228730690829851696381256534714078890937583888816081495795958724820569633607038408658653673985335555715664842777818037831357414415889742792753941913849249507975071965137276361992246285188100882853143681811776108202900374694029511681633636860175593492719727002750676830072936949886151723056315346387662927415115249176768000999197948190448569596694830105723673741675232270791763278566565416009645794163632344570478259544032750006462000303652591320520557278008991506983924510813830701300652330299602397294818337240792023352211029122839038993543108088801287052929962349905112072163222980235062361700712445542384888318524674631468252139446623945576891121878480053442932482671486617233246749475525772157680359908172560409430286766703055102501943809934180942853468954929269262878652717817000317738648475498004265532630618341607719899248101122813013102430292201999454564603088830959604862275423752712552925982589757981795903064725581753350292023649891456423102009080570727797528088259187371971508230507962610505928606302717627576468338010824261749468245808243644262802485186152471253496682870629450855921238979385982945533293422759260146619837278326085429456916578502762183715878607694467004710225637012702188817567750002235031962246228181948920354332700760102727194897202058204271719306910597530542425014812251615492620840463364180507828492110539336420199185321855814827115940104472907071699459269800912485075186800835166697463799124044882791415282450045518340018634165789679278274449339036419704336959293634753935510646778787078851563920212059524641954879060385250489447445886105122636599424447004331798978361600548198833265310749650972790342090611123241092956716974182819939052031185784868430645695291556285520616347893830967090223373241385635824054782536371435160323986976161578201571203697256735113455041496620139476679241051304551233901295549891893974584354749075617864717986581935714277523295254979880971989229296205666846739885982025019315070355404400390161046521741501946022642636074829590977671344270417636250882009488211726947426563833277009228245848219877256107330207274921037388902968196334255677848118075024093662683975831455031296743986077783348183417870363716021157215807289531826900501428570127230449524780420749034111376836618221931865742122236190583777697017725878902524798527907295521200358841713237270247345044468569007301822667867454683401396535182539600146003304552662964086197814097881517838233617736324402449612484479109209746648014029316177502728665386451653139691978049526178477466578598614737540010763448361229685087077948974119991451468279326755915279576103188092196148143775111045306855243411700242936079757923957885252766350618279919222030423119365451049536884102882935312485322629559915691397072913107119029288129259572058239453634675061828286793280926021410981780575447405706893798542489188922676764863421641265287799220720753735808649971528233547077531044721930761332917567207551600875299796680387371675925691902235092968680967003146283522940460380585245757501975560055182613167380697425420890575676941114306766445397879986697551728250834059521692666334450537642767965133174263880462690811131661550305379367821265399113578471716570961682579537071431534232535735972901184714597174181337749091429707089310699881725195037208806669783134960636295821289829934890527416519133702054269076213974346594450286563761806736290362704213116794539544119823550528945760803973934407498497988101729373964411108725318205152547449794543622191241874601159847337958614826654061653577147453418171734820194702305337625044726962776040906355381818630545436762636589784266786485083082830661255158684037759884003337863622660754512735628682547850011027893364024392857038532106716939785618932390265950038241702240710994668832297831874080752275376005867015447114932679324226697895056618734455223519870507204594375885309637794805348499717630372619015805618046530021712116735134123925857138245798965686698258467608181821520574790220493973940165667482807464528478838937681651186632744725091094761576254344968339692805156128337732809246414527980075751557907146848540637446124393053969679812723073475969416914840716340381946700709245131835853884139199485624306382065055068577349285270194294948736776591930571468228555562387179999634162240062865419189196458005754719375568029428529508217917868815859985489235597522810531247033304638842471028432286249500835460430010140653445558690310399074915395306758799364244402852926777085792403927776476794121256687481414193160202733338293431293418529024232780912657016519679662525062084304193509758518143703467683000725350137052183548868228673730552791990781747230192350708915962506025613378781795325136575825592710026666329147156651494560798689458816062352715783504228051799779928029063878923408535066146098651050683208615422233694361632553269239515700064177475944538646773099556476797911795249542927395364709067526086200554754411455450711145666879266624285558721222654824467273335438872746613482310680420773200815499855437845329314430546204562432049625864542465507247288100334952280771921626380439194560691561326092044661934405564316040853221331261372849230015825758907267691073684275783608507129774429611175150783096783865532647744803685097082078036925862344634870041550768917155579875305505798233865238858624056019587625847376287858611718347842375356564280759711595630890224349198452060832712950549664777745935187144901070692218302022842170149846259092662701794728818958758249926117113341516241250109742729271407559003349682722645945303871003871236931678538982180607020228722148489039943892432133631646546511401911190110025084004067460707626833702898182034095901671282262148024720272176235304710186099675037766660678171655048091909421998455021691628511478096399615168781531466609682469309457559548136792493925496899252442799854162670382053547357936731271230242608096802487200598742961233222261842774496910198495382206986603355612893768861051951393487135247032568753128189383428712057987117639861171253549854302308077010612817661327688022109207831421678450950431348524091680436083597662479411237128297145750761646333817262085102993437919938930587546831968280177012089290112119614111604550279786183266237348865851636946567190478867171904222583844177490712391200235239567069687408106780329069771292634321215592293434562673223636435493869580986306901708362863808008444536075261433694813840357429507845248870683946558326659043909082083995561706749095697063212159307908129854696733890403997599781187951786219788756447471313635609226075561181531179398506849053015856369973091678523437346908131094556687106847073380224456690551413726639815255987309533829880178587974951251351940573587105528577463032500105137643938327074011764726368470749231216374484398919139178987112327638571565888519030377966966798551105607777139985655586309202641153135151790220576014130869090246362860225730581833307995056394437859322089719767793068075690504051142103353778561341181251646002583410898135443301586511776210752070656142435746583723949055434227002871308036678664830606109590636128017091553590946062488494048189389502102501941192187031754712759888770071150159801881924205000399930635365273677993396289028341746711566468511646408506770040592115802084597583503047121050551472785740151642873614633662747196413556140520297923837243655180597428883308979483743312010307286250328702886459754276998243247015239604204118267442599967025637707278336894892808532477636102831250419852603222880963060991070833304967393924893761771997995736474227965920725881651211010793502418255801896528777050669242428429037958519394472454942738225937432582414224517627796014146930806655714848113670909845438424237898226523671137729196428790844575895676521899543086956713553167214192667031919731413898135337225801123457328469490088056238356345282015447450023285549998761627752576675158186274619487927421851131076716168254200110612478932304581153904879265419331435737428628045617615999619374385687569462097738239492893763220736906551337104815387540591176022481668648791073281436569116912810034762177610707268352494400329668018956406987980278484986473356707122857326819105763582491905381767908554122451659202884917327337297963914387810502233972298500949014671081036268554447918933484134716919313678120474126877646906184567828537580134315407665573200068011120437388452302583613331781029435695641395773042977695871482093279365962122101781047689657283995189390608909523996036096478295653967995387902311958653708314633573594718718519997900816909548933189804402762432464733568721750554951445215898015637643024452909552060476554702256614467046050251072796529140306319320379334608531444412964651760151019688976711659577186277146571276851955204137108759866178920787647005722107610592466088638360219415090299326253439856436799569874020253144046143388912220025007509262204418396490684758716624795382516290065140451983444611387754345457015240000818369209520699128772742819891483204742354387379050379542646788154023238684866615829942726537798680918497633908042029031641281888636290753221744645314530547286010590871834113633191182002661233899893551555691259086054871673304147251027125153478072826569261369206143331343436601776587300662283639013559418723372286768554610375456504015689058644949133872642503443938117344387623249848047211095721038712262508382864312448968110712838322541248461735272903895996760972554082151130118759040341679928564559657343533911796247006307100131541220498524013815952038479629604618669828728239643333615125075800173356532346571545173890433791399319196130186328835684351054354123314013848404800468590217432896168101943377106189848124166890680509182011207688975872933732026884203050309583906372941093509552234061523739880501882092032284186995749008158040605118565335616436266407135803475185613256273778901229654470115452637127312952014487110647916732372943999802050434056429447696354757721671377654498025570128517032542155160230922036020082454909827125165762794237832216064741688513050256038645525120362406970676128154419361422013730219320173434485221292662052809407116380535935260539291708911920561121267922207979925041018332170416524627871729478127627819745277199458384443717484665116809098459219969370715594624150807620914885839718874522267167892799846775084435000733566118883535718813289785530563673294811483593484549501739604244433125892973602572694133098166399096463135073483973015825044049571677817922855808588377369276544516996574292279141966594015875152996508642335733806021023876762642093522220720331888083791690203523586060193286771683813495507507668710353930285225879618269996928119055153705667195441238397179426282858454883162404260106052382977263713204668792587284009801665334484251464446727336034371726078386701925401046759322357393038771282687221787643081828541351913966021707610150904875667323696958388091748047825168101305866356203153304599389188611930218487663020680249250162547484370940856951337967977923175173712785771244436226301170467203280552649555919414173196547592913660195587844348353344370573730647677671702425461286127611088141739138862103556631863838515475088568668577261543861210264224378945844077901746040420323549250110884345800261839659198492820026219253489530437941204957547606177766708863611975902336141825583591044805641201922596396916321804945516011261315345726193581662767061031275727019477354446883681225322438102004224530456006370962034188404528947904917947597988210746095547011990474453537178189569966774047659972689308266907941699013757028290420565371498076057531812521629894346083566518179374739572833483528378167517954223525490362895876690198070678212317437098963478937420348456238319975101633027701351428471588500471806788149724040133673839609919101063833766848738752964180206159092576401711965662924651959387884746092389937515110157183875069721458114175939666713764818485855391879684550291850299450278899441019082088866852589518720028878743299593613008570996604522387119019158634515539011459716361997238019139904688665777972010828151260758604312692159939492757836893123555092511094537404326102114575130337250715475126078481114271661766836695552247120305139803218389688408985404377519262185829714512717328493156709483757526473646361573810863609391589873762842110963722330276329284417370656297604412633577658146248460735298268335640665116040704754972292239898194712887615906889541464561552566665858183399968993224496604821401680299809861797178212468536826077123247344020463306823470746006491945607812891175051704581503763472015956782591491222956785685024481154040472676917984784160586303795969245042656166007080801604205591655015858527896193343750656727960691277297696319071527310326337230004917180053966759218816892443882929597924889874039338624440122352951687152765304560248802697758878463326295636847279727754035909201201356582421137395092620745876634145597093673614963377214723234786303546850156273310632314198372788632398959022796004273199034988415545400273610386560113569969934932088805497228119760884243629693445284921797480623068428881811315702611502334850332766840995229726319345399482946385332471681747689471083311311050466912538315200097737444489497117790675178160137017743450237843444342965680631200601417864640605884067537743344726705476959161839081006898714628709050793508770625339614706269413444445318260379431988814262039336098362324874165207370960897843472351801000585391088385358538841195264193291340934817168560235283868872421135982776255793907989014894997734804622374223405688955338846366689878100104401581025258045402939152336201562044240321360482888154836570540741445605135940426183582556404360327775100267963627983819799522547593617660354546442473093129120738446366290939477337421876203882358409948751329560430474485912504620339033684561414281567462409411491618020199932026483732098368077655277110692008897506869187350290568945132516139956005935664233425002973608962366920939605210441620981690562740469985663531489374100094594647779922334096966253533058109017978934526055809874555124059459693822971988885275655562259134995106200688261469546521249664580225140950047809220489128282014527932859539522516403337732301835947291966477474600547200620570352947933375653468855676125364940907331536780684285233920485987472200111392627238436248540923061527006057592553087132250966570382959885400637462943167700738910345689589377983364678999681305040600945327925916998281888836846254017557401281964610487794295094794843013230882877178204662414811369856103199946069696782862026323325321979847477945095694920538880503308927775903941286291170117045549242200257239250337844712605153533306594255089468494446751500667325519233311650342721241868556111803939326997254882414772224659321195449398829205147707761074400082656995828198968267784069832874031635003740145712467070338866537330293324724490057089895874612600874598906982138846947932579357316351474275158913682576720964636599484759408239222067056232280579481711996084307154304487864992065506214001452250324233696934445121265578688272931088018625833895071555565108408084792457283651453654975505604440370066854652105300880437805047384726698284785190930827246723977687984319045994089806775205524039105818999624014860814302299922310984199804137121698911508201340291974758006844265748822782511402773553906524351168702132772302433009947664211093147084533096477282003231455394377350998094634236193890280028845908504870294376140588785870196919645958446926998325270166247367832513962404323260719407421613547801724716641928301710480635071513620445960868778552729790483120740697664014799787863347780490955322225475640388685783403768579318030018500128597507242379395405538023834074347400502236719587622388936904591026316305901609074529132071514535483432070057498253624202200533547487620998526073138342832401277797169233831417604293574571705111329104393603905379541348507123351329963873491821195879678843182895702865082341684349650163808541230274308840506311722250548296950147257957598935904884963284012567820043112790836910116294855199158327547664463260244587904338227386976719375413046284158977411991112893405007880506356979740397061642007359585209684530019778098114859943351165481439309910960416932610679944387048250840541864837354833384840076549249990507623885851221667075906816012132377439537390368342745058737797778890886723207809016431532298644783625855723802270928127198341496797943446784445502271427255445833440549452511207567668867732883933843474260267026261807136907211371270695127890696188231546084637153650911013379393471668478786192576345584933795457465150409529429851967606151330876110062259863268603275013347389577644062342946849252408561751402893212465085020184929792921071944280706241862355395505087711250020676357125794305892482144003566721857403622609231904622571645848037878973634442590434956474885398884962847894542541488389919669439645370663437750442250503345926481915712661225372936393656311875661483322374373134083925735404422044881548293035567865467605556006689224452262970180509658279201477561597845985639117272422825619914782141119252482847379776447165301120042352589254482253548388756860887846314668420910246577022040149370032264177328960522637532519342070297327722435430067229769327195907740400046070388041772307745864896701704073353268314365283178408348359037114202997365458877177248063130458114033268383158207527363578923057658265523658146259174165155588639354906397771287774543087281643766222713831397952691341866345112210857602227592361149111607737675104598537448750387326637130609245769030173160135090954971274020395677016584169299174941793681756464042974072246402896921132778798694829252375237117498402130688088511947011085640595261763291369918580468269007900043216462329272105430798274845814582740092705496009890394191732134149829042273226943306077348068518643134976197665477433510178152096998927443535003235386460736275339321176370141229619346355312185372285036596433162989593212065133612693165322142341992020125917795026996662641875119677004680091878194674063542362010004829814323798973580682512905276163921300992492571608642111150846813545210635032189433711170836815221600075869506239022779196153148902651522499538101493998261616728763672753729402405492503258617398383005286736837072770770799420499693020743063056587847800342955173159212366918635113083829515473168896520190334487519653193735222844743735778041402246339285546843566116995558419466185660295966400260228545147593440588338020503989187646446061299050960345224102298557852801885783762379567918826018184894646891876853831684247778283045711477963165856512867495950906468092002868449064339616821755248962734052721349558317394719108783060646521719129405378300683225570509680834009535165117973121231034160899670893410704708605960542403665314700413250781552082247327794204670108978136313478101440968310921770992803703580622105831683462125250972208668840273218494272774965235246473610773242757631654613679830544499001425255563078336831988033876961987058799474070402811089750471503246805492733763634763978516058606072542120457931141533405028166316221912834929511462523791471324904800661053376581143791256143284996217178419000976189812029533428282271941527863588947597187912112775237487201796444429820404966433792418224670436194073257479112789733139362824746920584114465703960554666187591900392526380152874070858147123057616594432017316023072490060216936788195082762797332988413847183057275839477773894328703893102649399510106881295668441269530311140733511920707791775410741999355267780369545018993817926743622101891564128226052673150724440699339676409856045428751382425294018662569630971334120733485383168287271283427634496661444332163875543619877475866419307527621241808246158306963942874836683458342197643015178535059455485861284337543161971295179893937036929978913450802701247983174193424341410846455072054064588725183733666002224680742147642772097546599118961658159527635990004137654849887318403382527568392231815154860802027802426812535861512800313930302177847101358364665487770701853900037555798863673527853974818327881360720537634966629684357985420655950792161759877048939256241284322298092855595743989194959675514154045587316437047429522792188450516560020606157244000705936476406959611089499653965314397509600130207817208928411975082462941870599782888002137425498045873197405828328177512529026228424432792493710698982463329033537402837687037733107083585171962968768986730099661581079317149732049588651049676021693181618736324147587305867327151462649700482686871996801815384034131349390721922231373991882699604669256924378444250107160065591574513876517690072946232047576778132067200781064927695217844917244853457315961265362851386908876080961449074688763542418051294907027528580338700306675393434970714248624999055770929002431505088126780001927983650183676684144402749496830994115086075686611301994379601794030878965881500719091831365015287769678527096068217862230720837761573775577799006998487630641428405629739094838981434565217330939828127009052817673435872002651159259734147967082240270836764128256867995119259415981377831170360366525719946809070139215892911731006243666512107256861142880687022463747341051078778114962688461872519737165797352826090293302472911102885929840585412606624400354626273992190297293200665652357813344973161826418041764489409666010987556400601845274882378050085513245256354639416385920268546497971937709532378530852980942600214748946703229955534949606138519972344433601798232755831280814661016787218318610466131706604790063889587556771236235931917426641192490112438304644415206082462512682295482919146955767092317238703466367585590462573478321917567843816338487701767784215093108396971423752800138466244997613604399363415280919811352294744647950622025890425643690325639126384023766545898582276733795109492428686888936762098814122203833663610089667757021376516177131927369186906245118687785787453300267097773494455330775354909976641245735606500831226409847678976495693064077686361629815613872134630649423653786568326221644680422447832479563819643487798753010757297889729757178971319576512829139768891086053313054771998600270813400826072846123255350749442625796694745788227688282473255703239321748981491689385780482609164320101876948949671619035378482161078356788821096875678668571197135838212870515286706028280961300557590282916138701928061580821051072113567790120140816450444234039302918406396912998610557077326077614923302126507148521411986992138458722222205117727430761093268245397209390553096737013891929225091522055288036510702777023691687545230868951258694496889456294498756321967729187757460199498808907950407885163452895100032579630378706453022791837416627391967398810008533177384239447226850525448366366313353257838870298500075035574089742044118191064608457756353124015302781590926558819385802401411522303301443583777058330675414163250233478922461945829698610860650055544937323335623727219517429432342377147723972993228408630278950213465725938859217054956160701201669963911551709436482900088439342947713284388416280242232181389338724939229013692922163586980125159770347626660142306762724652593794662762991839122875245636104736808617462061195339801248529614442299862779951913160759099495821309972230874534187037354077232962549360377014207988790902136118262097081403279419791714592480418694006478367494015087347308766515188041337681278684264807997578351294494641433534993523891856462483143792216917757576515708791380677567108189860837579355352560410938119606564819512853213060220886592714854111971015135260082180944196102359862316915835893372584635566324204171593265093200995282448823293774036688858387367922020372288837375024208885828877954868448384111370849759259785135992076844218549179637692286312023162961078982819383638123407315181230153760025414645134113648524336414456409106959995214212627871084614158261650135497961220668224890517027440840552546530185203271182964731120110621958159705143381768730178036167057372042200674965641825472519018673620211860980365372473137070020680951942447689150811378838018538469498934914320854872477501084318302618153629864270171536411536067542289723311361886332276887995563881357227014002851025978534739687695847910789923610828052946178687977642738083838276928507734653221749404906074915113267284702941832149324538594099175154413111493819107368584379453166285418132607951655019943761049902937196581356072263071992951315043665004238107694344716606284285709106952698021265514923066826726691198767526280977676096816244467666415107868278739174214018825720635625212870018770532952292255700780910941648201895233900383150735886617935019392758168663404951960610011744184209472409365728510615261376280309063417462389693981478023796677841293499911880912025899239332445876351702580297085394066453784275697904638870074595916732234493661521547121659730981720363583776374114787193531470899692096839408473527866224679103395771274247171564672219105216742658718677718086967948029738394220088455008877200329714609469206999232618692266680857542435107854902420214861850479820893949097236249346682099747903530170636590785216482500697405905136414652163441711518935108849036852989129793019704565872956470872414650451237030726518078114855791063655962673855355847013974700322283330863736438780158827253537976706845151134732358855632312641626999455232645579409448308946184614389198396029884024746792806523988933851969944728955031926035697803804420030403934822668243671530912612033447615144486209836358883939648674145576609202877299621914605863797494433155887133120399645683417302320129362751662458958770674485935810760213944273734527707903426604257436211988208795979350228623341481029058062710423855472347938330706905261546492665686851130837341433361123984397354648598254716850413997142456551171396953185110677417654864127447753889098350437210905110974410729657060919475492770940360578005414849324351544708495809765826809957368332827205742229736547785897457163364005884533172770458958593385035880591929577962821733007592065161903019697650543619810351592656781156322783642819084160918861756915292685521113802241954834007889769122558706700503271586533678229072070550081370948194305380288354081799703842654311975669899491429939563164280006219138199567519699842348404208860460016731718927467330581205822493749015445957968006489180968327645302970328387451241184121562286312677105477612036075273851298870533552475033217362073631994977877067165853468520736725943431401006322106100170049806293365908237350865417056370810986613935023776701322023088858440177285138975443486206303143693210794473398009104464279921675925057401268146148433602419913739331788691700144222079896004631361604143254417458585679809137414197387295668730696738659935014907383432266796322789915373478744905006250894504171803128072106710313783181577937771767203890355906274019352070999709724357866870506036541998799822087290963485441089469295841411390882677149695285666073897642737928705951367158794009949201226005610206643715327588963481516208642101912642564751946657707688958735276339557264084453586779712634478880750243959654888582266136277790567018264380567091952855872524905653358363045084555918141962194585861631808099422538211190848038525131697859072128325565621331356305903934212378115984753310725766893474527051032908727371698136839625425040780112668249967894024384478229964440363434872854012695311732242109702035164857758942795828547287514953500782439840381802850062237309326549722573119509114863598948753927276760648250549994536648585687295795965146109658154708950584628180487102540229764509298072682465123679498589196262692631256964210310850331192882746320144565177072588999141266606863180781964874241819466935610268949668089480365651861202482170950283616491788136388147352232029570099388653952167158136547264311702234690833408834329516250167628303797092248045397066868117390019223938442778613298402205472693158824599706871587976212072798253555031394203015879453530229657551744440126687026365717270363308653009099903684587144667727145448844124837097841819940137010135894637204545680202966358866258376398602857893347055947218481794104074894159526371566792547430408665331583986604471075954698672077613069973062160380893205171017864733379810394619060885486405611230698314845295461047671561549387821913146965046101149251671183247483176507568816801974119197963335141481585605495439731696860405908075405603278211574773342505062326750110555054743035728264930863394239205624009652488800469439916449341166775402586612932239525328072023250082590889314226639868636873037463622759641657129228263838731492269473856955352973207382681652732197603182731414732482630459666725099728667898987230735273128286670912675310369220639942531386321742343582908052654114146996579985788120024792810935036115814281505984456779531631732071177066066551950273215846322252923813886370286179386757476084602322632547762742996309041750578857040279305386440404342530914321564831823682835007355113753974912710239672033884566019238417838529804122185744765479840564941937414371739525612831899724195188052059649810025999263795266394965422823588892437956253011386169568813039753109325933629474746318724846356768075865713619456383391351117095638461836224852177177883576645884600852031010953954327897827100452118962738305152323605439843369933150164871911814347789522953584944316117358162644311906219873845779161553075406232614490837571085768620981322023636378041552250135715463708810080969646628013637004409678744427369449994724167023298055118307325693677093541150730412057983888644831177437699625792243921136130966882589059423400792036720088358143478842824266243981310843303458333204137376391572818443741581712401001126318675013370013891786456633160967294646136398237355352098920598263625773013102783912490004621275365211601256340803524994779701167643744425759434136050754513761534768896179906659685968178392371854370351763295912689580747811378581648882651220242939439134093452445790161670927589236602803712838922641952551964716432455596256521052576056259398244649082789537224343323420811036194344577499179486210101784279919172436723737580166018701563697424376487042144102675350503508650136754671539942060411837906111017259292435134576087422523362118898648000487306942015839045038622764444460670949832617441222313891691905441833529782223332011936346871827769154445570601340360651259811249764461044839662490197188257671143100474607428737539960142931251489391346945487141730952108143050776031187954110165364086573422174524405804280093756895300761992556086113135263776512730379045248227767342873135099308661464893535494880310273302150946187697319783781365461370233194243269624687210153521128863923047870496673478534801962707378047030560867443811590197968269538763121807144496665974646204506643026181188510046785863292305702308848007338323812082660980685720471686052673839576513959808487018161345547741144036233013996359808376803338634285399329182394794513066893689630252916120637376873066654774518483918988642284508341434805742172866208669557356732628419869621890337572614385031598571871777004476815482101036649853794644329588657604654182769880820224887912088845960075389975436282241440253781217420199526189247129691398473762410163205136809052272078767886537229233976634537382263327105187774947934362516201885107718497585569281166512320107992019147070432118000937149604106892192904818425960684896558180870589800125049258512481815645156221132247415362262750242873585974214911001301392945709306635415364456695312005393865965119828952905422722547352235368276861096708319764621248549076756008643351372753204413053589842231810164337386717895751881019638820693325979472624840565591591378473170088769344305895266632522964938474251183724959459205131276488530919322333891537263865180426345427073572770336633788100319985218404057608530252754375332635248305888798541288107925600548955783386133906238126270542401440455406391877713011320906131176339626653251496564211346085936405708012671702849661632692798250167673358594483601822294348220577519134747454509543343109917372731437098867007471568959517290306500626598318065919391219157736547290762876585361894817542581975802058728910796105460660360782761084489486233720318081994455012278264320750208098807937299096866360397484832081630232965122346430424305101717115460171112132022407086171509856945137803705067654310794267000347968343740350461697809794630795317936990092071457870965285188541087302314959721376362402162020229078939124510373843040311081878191490079676746081049972398302929627250880434301451316678267186803085427349095451761303808748269104720881132455391548300727348538575757342259101690943843536357931030748406025726697908817672324675273717168668637411616712760864962888518252847648171026514064047260477155838583315713478769263447745265772672127753774004503714629021457526535175740638798889625933581714591136322135869646056495334814643955657993628013700988546536123978300624760157847221576864590594685222009844792891521700081663699667830566786232597949302084370414607436859561824408007858222135485955509747927559206975394758158393140265279439997219682066643363409052795038339337796867958271322550960374940945620004654372328520525210266837595295452921322499274740283821169482620597185479250019121132277716473559351762242246460136228597963315235493983781673089998650179930892355148686801534663279589917481188486688271566490058168795389624426228318438224701844459401270548503939482372146076882751739750049682721865777348626668318438274334950363457571061672025215573236487700320498730706639582383524554734860188363853082376124109315921384217190068245426027559643184371324969927708370248496562418415138390628184711338898735696039124097119505464065022030840637355511597435776109124117461986024025073229170401915591744941608222462715712330859738298338330309644388053765185993169985388609605582656313835945144672669013144637890115474192455957529519363445930052514172990431767476440520393240693898225055741801237881819053769210945844580574890804415902097346500476545333538156341757948824710606830913555521595677195345594488455160526460109434964412396721273902924748052688889762819765038473780655542949604832619754187106144756572911590445794627217822557415607014902317706609459498556843500931101187372892966275287061755964083520865884116605896151242706848040061222330445734983883641882771842159671444027801268826322814232186969734723232423258441005238212888155609586386037712199277323559495549779427709397630419961027606578375200523971721919572437148356755632037501415185257948314428217308245416694218656963108359298317843994046339262122287187512250138239538971571987316920829622423557785796459903236758525750500542847963793466724949387295715183677687091577825654572785701994881198142167041746764812820079910541249694702603146772554869499552130263389258505017444434258653943248679217034016597025514736276214830666443966518103434773776162471301285832560793539723532819283583694992001357986231149024453322081876623985838604106054247721801077083145076851629330331392098767942845024235651976172110193776963176969395327347211859586512051429784240095670640450595917770385384220935101807885207527497331264948906053874352369003364997974098765630753461946533522589430805935094047083121936717202818872069942931522458782472398657862817807428714609911537058296942684344158844955154611194022652989708446211507191934560263600447102775493899790266111240086866492436643226591060356757235528524548471736880047370040027990235606104036425993804180497571649927822885100316358090291157912563176510856362218597127815577304017631299531153844578162776572110925100752149816436135151091433082095173572335838509906158567656523727366252857171872213817894502145938645201159071185610268944714209260803407100223794562576619617475254310429083365930340061440452854026148346968537324246164697485433127208773908153813327134871232176622177479102400637847818932392089494434563260023419464550723494113480976903888938459215964029444605845101701950752516904342223428389522914209216051715195001744785887691855650817394153867279765009612262954327635729002290123454363663882956152118548946092870788911505641528204492089751162029532963488420215542231626557021807544848685600957572091182149525398957780460704761387427201560172625228661194472839564156828144259770445300981260400376578274794823421089185176010212651338725771880557369810511854464934470787245231634625806512108620026427837846115801434116145178582776828356354048584519873026848482613225302619288674797049461038274902780692487277445493536804103509691549234709012102010951876195561299255715845690316487944014199385160233730399676785611306969072567232142583792815391238082327549577425799175252856530758967960237451233072439583105811492150357716616227895077750418644193826005298403327441552582240529908811966811316713511083602089493787722983946481380091474128511756281599517543607605819123188685953742758697684481707142095034099649155932692461165278926706289099675811174090640312093721660683959810923871283642539137920668418633342713623861846503551963572694901942399771452565837991648331400878400159036289941233977914122392827731567851665220898721014730992676253015850547894485471422108166200163040937452410421628286597602265934370356717095514708966917268650478355332636329434917312025051525057151306032623932274244382221495944351239095253676116500903324666385481880740481578940893034444676497957827325852759850620889718778010506365591708174426625324671749786110594746386869149779547366790345511743804684755855668183869817194218317562014723906677583549140596809654293570261487320146427565316847799290089619069590463525343392962656447512221674320298880019916345180116716550398312718898657599975154915329611707344125384748084541842597000190464770037538984640860598413363216337598598917399287865766706011639176166156365211372032276693239917698860797308547576747853993950762750231862265782369736348379251022088907688545379170506250323888754194426841752078676461339341344785157906623439719627748814648369505685037615926285002205962495313266899771546911643631244248682583389719307935090620112607066420009324224866073888107658865317504576489408893389157479844018597537381767497838779334694403760497083272965430763420640422866312485692337002516566640933571322522615300529349953684069924020951676064188704297754853654507577575812989544399453405230102921628208043052164363785195268267141799606603007834614880688564852211075244019660598298761718961378288724751988513633635186751073636639430592095442878907874959926893820559985148955493335246219501501601405252421826696675110003418734852068373615450789932624439050221248970063596966647063742785047146528569210287440572180060881008863835474677353531325903272338754712922690076607431424229922930031088832200483462255257836263730764328305652387253920089480407273616222965614662595664842888043691410811158132958021626546218007811390702872036204002859323007999863480347753589798187892324826309318551847999283910049602057564771751459840855931946369404099319348372587199101265821810036844735636470732944055993219835871624886711773518725411223151798405832090697392279905949246963013715371321097955460102030689205050389397592996215044537522612108996129341293558599810581801842118500502890545168939077859385826570981694443730333229407040054589325891055441083212017403885009348496761104599670289516750026316193716672001071290244835821241977439802906468456679843595842181971596393809855262035328682987141274762214069126098388926892642729279612993527636493294566774260701238091873070205291704550039387317357623648156393971733872464661670312490272334094409919870538035259075545205528040212558537640056274912050332875337479032747478606694448989142226131211031208056218433116841916711382010552940453413478226016917884586581530679209653303505282720615464229484051490200812252640020972963039855977268943650138832527330577817831632677426509607035568298855253677123647994549173738548143942416784124941174545079230924964784052788986267015761365123388255962844111639417347090934076648869979566075851311686215156783113655993869359065462673267573924855677438823410897004435483860840099435374397142955533153383157870433538885873548391672302687140072695460460927910985687515739135113196666297908432910288231440842886940598224234608660232328596209272986514386048732804639766425488613688751349279831290409252007384387475860789212765114811291097013359497245123818170266712568570421668074000450828226337669803005760715980450137745841676431906230634418414989782935222093347586245462192906744704897260580329552108697068676231155006293645673071657454302926703287914363311858771006862867343544990979495993049660674645266307222817852376842364005337475314401422925522021730123838754943996689286527604827450952366063888105106514657069338611693865685857638984076411313934823251941408021155295754520312128454820618735186184557135484272297969834009472906546061493085555799387926925494733824822564161390916361771165566885238969203697908662113665658286205688509508056244567186413449807905662993068262356378971406500105594231740068333144860776595401548691864938875135825019041800735321807527153677580714753944295590629832097191685964846222371997509807402276708912185426614426784575608841106316937791850663810910510905748849310503569463074485743109407296982645261242001833880873161433390816484481519283963658179182667804896262051510213505989061703079071624585289074708842511254312502559786126639982845169222676100084788054743484459006972850666148986701276197362885132784244774711499148125929038403171730081823188141877024202970846546988386957609112713322957363903248812672340470620012920581743854947400241140667006752386878907648767960484139042177676325208996797465780431730042084884466983669513259999750554187765960546687614456803265619501916014029577873174002906492930990420795601293585302111811753242564039257086739362542898740372550407485463692533120089278938670598241026007044392800611592983086949209795385462272264626538548575022646088851088592564867180414536121514942528884719624613878651571660219339186767657305454221196994075511976028720209509011601755352491119049123596750067172912649052438380284767184491242872578372998851364000291213290790906109684041047905865446755624125624372547951549891795791267145066920923874572904261586994332329641986283629316319229966594690952904912070518346897303982065594068375781659769343675211948910416316716470185378673955713320766698619120358652978466432544471133455298775476960360294470929668568757688426934044408777794390377420789639608676560402834660813631107684216237028200404924398998385230245530297171431512972218003665453908335251414088963603381828866700173420230171784529339868551435937666873313077167237731014675371525334289161871648085032522850259324021443731440386193981245264992038880204279283569805826206796087359270638209076755221689344482760625083753730773525279841485230850822738377726772440144904862976857938352844860546209220289530831074564155261326946952500966335754071141982245441006413149679448606370986515234440474615276602645001911156783707804236744581789318992676535032511436613612033555154289773100595038672360912137456869122210447626164092793856532781864527478027816746773547626450502759486827729620706061754558674041849556468109677007689942570032199276790976772055093058161058900059658447522491520255344028697428744324410612936522980568370241031103594741404002163304680238228411079586804553512581566530898489738364063369603592836098231714223085934883380429761461402434046929484811003408236648361733707706069812238308051024075280094437359407260033936155839130530817813448630952908782479121880972141900262827406768864463021450156049041457672607178486754039894425644361897143345118573047178794402513112442672110171410074371505039095168332934733561264978728109178191494492373791816973372765578604371510870771017094995980363277931998291592458671822191424106577656034017193670159308101517929185015458143567753154081906173426638344381669698690164534488500134747679967629084186558493221580186531985669685301988099181207590357973286539408375988419150275703609196440154136817543809880693570134434571640472787359845554701107357186924412003206829527957698309678920291957891005498098005674958658686107140695679059836432358565769556329251748740539174146181938311569123832800293484774106837327224088308703859702250498616552582811057905825786242760815866351062217810301939021544324784690446447198380323632702153194046308066000570355630121105021954785099135273698770806408458053515587991671720655626830826948487731564225087038272515786404447620869127839538806221003257590362858306378985280878058196233268396752591591261833377112349494911917840565095582436095063562608894898674924418409804912416349120135966923409854554518574647630278075722601781867103943410696206142994443890771123138169359700287143005786003850618873049234220334920947770911517248466955350820546521626210342838334111402450446116779814815324601482429246058625504020203685887164979831354065072365452206281772605101234901742220081644192740804451268426635995004012904038618200104244580665998973953961701409389985873298841233233542175008357319441459483535116123772346518282205874538720358191313859073903117006994446698678687998397225252430387355465675059228502676408822205385776643596372535680323619530888865009385107768501754154048325425035101681480477886471042655828548717762964396541583318001802039880125714202591443937104535738025290862733982102612183845750685807253591413603319931965353465470388258132413341815216974788736995541771652109982828315237376419369850124694213694369714364202514752013330462459585643009438117239108868855126229775454698684144909751505195270892981138208879219347026196814726280789633281702174638351233530001435705880365137038714102142378740956603725758676388369738486469048954685289807003509262015464797632998128290623434497748210699196459079560432840219613295444060419518764874312312269070093093855673528776943813929884974297848418827949329148209285138449203101568863081927611225234542829114434781068609668441724446281141626346842016501568494239172533903484928275158998759494408350894593073994822696857106845165947151894780191984501100538303548791389564964006643102670818335492566823075685868332884871296407898757295458091895083610193678003664651838291629795255433122192861507443656544989228145954725086452696169401544952275016914981553116687095092999766043404547051707497941585241443684708337464825860240979350142310060729572669120284840099272593661724960479623443859396209528971997486810660033339750953533803139898016547259067575512165175982994710735174207239739522279407144152571863800496285887713490383754663806282731768975012766678125969524707728235374352670197579277928617882101172169737778885560046770001331314939131847093977072755903254429791513314321038428535454141445231839800946380464039948696542260377159773868042371233777961774721756501836862371911199184200381045524021552099112794987756237324265020374730166380146771522520093905984814009572974940092785908922400657045124091217780602034821316716878774779228360045247143700105729315948776917358939422582884780813542979732827141410053378962547660201606639557563017919772560008442905333224321507448183462710573493359070733482278788950837409516566668499137004316990346297514411790553685457798565214490830572141075305459929933738716310914969410100671501250631670616383416818919061180703362071705877777842273925193989725665376200093389312743473600513229758985868176984257892775702675250698683874560677507750077642688556386993438859981406593784972595785222558930931509832960517975778899326654286024271748869080751680014555478453408208005355111974717911861823886631077326084964017631602299732590658979084258786269869612444624734066332045506080343721533425182313668181397249170904187357205061760676169445458026272874364571314771553583717038782155758964668261356100334182122582272488038234191788141553334113034243544859701416029783323995643544987901894793934621248399185509768765085030514351036742923876983902885241150137506598456035086415282468179329160337262951384950206534951831096564976464030798863156066489817463755098906906529494876026963251667146263811956780481586397345012111501651878044757763367898495166524710765732882250886828490108553826001930886803177563222366516140709269946423855293485523846483937967400044090659745483144687654176634268910232761324542908376202883905614469113678049705691253091668072102358844996751914032472469080857936618548793584322718091881608575237035956845525217965232365745169785651908449281525869155574423425488904430849675935427747806374284750120638336833964040753902693052395935735361882398514362698303854949782304892672648833945321026062310166428515564038808121364091918947126715685035973070393101193967402652393293789016423764669449209044445182131378549605589093404749651353932603990448140279626358501242690538902082718649160343171392096302434059177779324496331674915836410026914649837206842868325575802602919411374477199160019811917381314557408440153950664469481897510731186408969975989162585896509886394398739603833577978301435232413427365461656608903645978059927488396563153795226751737595262557924601154141699441289543434691479792509106659214259245995430581723348473807823609897714369906717678545250307620905224721003497892628206799899936215141721494511375988541445030241666334006635641620478966407942677164393451921665518391298168554218667834521086788289073444594286619764889504089846608663393060536843090663841489950295652305778297272574964660240472078843283551206403028575375446716500937466609492418876262280910173442018225231302387749957742569861301418227515882438950726683905259262222150710489247753148825552401805487477827368047123724371859555134412396734663553057235397318161230020727775352386608940968793676988756051955830434050386599675419798171293619200887954571970013862376259382920918932235627027279782554237292924353143435031432931489352515662766572968499715530836869213360540021711739524666612248699213375493896822027259569695452920656454059687056652851059542852776616324888920209694990903581265653420572192697302105730267823314692347063042752556781442710937073941954095923660968638587184751552711608987369538696140282643025979743970353696057450064244613828823900297354269826203874447698371919314066025589116519125205886478881107819091748461806327155885905451307032561242540958075952441385333824912796717613015990030565453892868768844137821427021757735393337147766769766931800264783138337324042948304984548614326545745083664161317703557535422289119675042641870830229794147473267241436190218879229075949558205693172108709789127897027460370204751964130952945051632605669705380141794091827128728393919506573029336303981847456025376196441887919117878706173712437868502776977931442619141516042162546452264061383939000062546813038260410439977676810116177204074057480164290886663087262835967710921216206710734919355203639973638348310268827887167107123675002790599116025145828721492275134905627339338470181507026308934399144762612787904685839150439447946953351237773094340941783571280772231034047123952359863574373785708889810869493534186313451351585196523963696131229631111241862599178262106009697434944039754532275615323062154249954753768510800714406861190401882838586853742392582332631217542004000343562486015805544604526473803467434957926641934022599366749525665896415818262625275731682480059459085320336341436379114520486515246745872776778981079004415784475456645558486301952748270358943940647900076755293273429158641105830985159944984049548953912944239013103650372040869443890426032881015236682939965280526352424091147842439110044833057364456736399419688298152353323070568966110665734900535421579758665334056725319369640154535139914052123013431657084304459862380833750542437776300424094905589900979462455690357943001178877402597292494421032881998230104634562170440316881282658796411752530542671173031514691511645413605994867067333522473472037255903086572996416101005464177814600157346589852909737590836505145646416959860424281149395105203309410816489772748526504758285242294457250963365980459112484666914243296891178057827868246521538766361587142277998623917551240217223182695747684966500662785306657855804931701015053425863287435774494599894369753177783477700468466643945289324764308211849821811058783280098411128439636409124575952903647218403100936830434618307653213603184654773728320856649961013803218400026464053682407654080825205630097000557207708592817317575978047397017110395595824946514533065106528198883403473906691071758674431789322940528596643575632519686345488931512090177126329984430155769221340810682107828691207296465263987540828652556045280616254073988730937508104775169973645807748820780405147104463252824969376748728688948116461698243617918978932999562303179381560280221526186429519471412719658762555168745025527523778113461619723664143505805736989611440976485054612184043621279517660276595487225435625222795239213362430810348054945125898385231501148079022173089044176970191487669445576793440238276167929668761041470316079030672777397743912965895201423163155725947606510760462581190368364028423061559098821007397880892959067834460854589383339881015244508028108994006396094715177908940278027615656907748400428511571973427706881106482516323447384139983696207378303761921855326717179177288326861770321940142249702937778906702463314605629486445283123611108319294379545246940837644177244528502944009527911585330614010684305267017529830148230857928820476513868722276666882198300047929737248015022243911551409329601332751071386411211496099961925675061302990469158214089929901368237268148360629334796770127258675215992999051330758138101263561052832228943112997823265414709530608105286787406543213002640484737305349847950477503933074123250798981579510047034084520164427828630130049469460055935394241561268490077900500755879253125641274991732711047600165370426153776536828260294347151197990504124206875143889336286954666562887812980357551304771350485749489313154787986299148748993364957362735352904529972911918766721423143135025662255134670661432598881287892277420349848198805458381342574662589298482969216950994564656888213482795847234873103899686802395936315315384781460808422107378106996984969047032059688531054175277911337588532329317888731215471626419509018960500217649686407127304213635223818126437549530998559581368611380584563397866745222729860302659975846472429967813193594934944779151547598450414382271761875853032848048978706862954191214780130699114668237827563090855143112508484042509968313788193499936747014891937794837514413492365214216563721407207184096700926671826087330816510571795692478540425651507399530264208950893991504289217275210669451434763097530463481306332169815147991464600447200145130194284680519569348663365224728928113485710207472485800377662358545588300819129529610880358082671297946868582986742477529816082830156012660112095416941141493721531729226449172602103025991779121313944650921238366537067917811805927222673030906720463755812781873797698390411534256153803888905575833460799793870651810426453797008430739335977287114018615097058507660664158223894341877380247032876317769869263496094480542311440117900934718703582704995813892025909720223696917395758258127273821941924909543288526604603189535655099794603647630003099630813462781216551837241149766299889453809802908183542711334718019277797573696993577863774510624236361059789870025710108676340725508965830151106123026771117360619778024372095488518079749092615359369806106537897616507180607170040092739614897757740046094541164199822695407001940382344318260912359499748157896719291452733636741101491757477270990470033778796523240502006485861397725395955055907284657870001446751396328036143282369989404926856823262033837357788696502887751703862756156402631338765509810512572124131431945509684320718199257348846041701931179592244358217637299531111515613195008723292365850901937823862700899389315328899868394564037157932918027636730050800381684309498293149310273586324965753472839371286834265647464775214258212897520852456321393216874656479287212690115667728806530100890253627078154420632677377308909710588296724647086782133316032898770448552745280796640424248689974703146651284756146844768802834922780826635300016687225480884823310976043507938132875215509571153826233180382981375062933199103135233902362488443356884214342691416690762269550390604804895750031241581914437728319112596464248739819594862204201591802930164559412681512768651883396039555590989562717695364142879273244409968558260104768635589192935436259642009534831820128872238816571700024936752038876936710974161640402314430586395505519652948387281001198272134742255307075925338429231607441430800733393765451147978016769551591357884965913874621997238111127495859639502938173731488576572515434656476419696706418290900390811753091357299075392815931698651885053555762658835967049946085339940382186828565703361503511133958047631230261374281449646765009662686635560405505651450388554667683889914517099956428025794417953207474077164964759468238303992798279709644956477639591770310606852337619498069467539658350482836038850687748040232676700451466124243332035620079824308582672950363612090441786890038612991148729035871636134008831358234052724835529766156823424742293323002286645708024293417677389595258655784890783531638461816770559225855570412919735978301159221227344980410037296474941960349691408966791785958329480353699262679427465100585146101088324233078682566274211532993946711123386817126907713328539116370120156023401960289205998069240262230365368594517634943028765364361186659045045183198657080244094978018603018379798648652005086752838925560505817192575327675783637383854504541684229908762367078445784785519144299026709351637087825921213634881640235794509700643304630332950694655250549968350080443683768870934831556908601847587253704364111860947799734059098581055364924454668254132204923083269556862711549797971403770890101765650936091044450366458992751943787453741069944478944223195203799870794468578930677027312274109106761246786416206130918319606519855666039141505310836852338735170646585704477202944583651031779096237926577606252341119607291283259344938960966788987005053297059646952483748195787909220467373616972708618954580902514716594499534500485343575165589890950097932981173676510946880930335713588519534171262941306642551430658014379432387458622363889542621879054125321362419024942954026476344638185619711595725100364742119421296290780710135162915313192852836044797235884970223402090299834791109455945620630303348695581321536172748277472730782912724346248970651326456120764544010586564939716879329173991108124204509930252139376481483169375473219001963620253182094357926009865423458087799394772633911179152032960430808920236235329359508135521228164258420875930838562096441466769891247479234716528510338810807798497762019941313294425376783404055829848319561291181249149288176294214758700203851754156464431292261990587256813365977900282321544829941013936277605102130410953927691080879973140486132987205092805525811542280434785360330031574224499477871235585665205048972380374614875217397439076499195387349173464628723763315431256381383127548351205797261877621333759804212791388528951167998889488208649335326478578332755070329116648553128689878954188921999194809433741096689693361901071243982383898722164737521752363564901709590712915661865043614790597947297854319703151194036795824931804472480437108008831855965833570515653793451929814182827505782421293429519127279151102191474770819887776320951578642160436604505501420313470657015885897528879075034763990710646850565745365687444101036002269416445475896796856709618456907201220735643940015386960749231653858125342131291316688315372594289133323905532526364071664931328411794742718652020858408803111367198427991651735333885524935190226385001063244810149918703922016792740886774232927149244984398775093954651749320354369522941385060199408985070493637786853781947112182534402906954921276685276196312543193055426917855334739988637251842595030880719145472249329722892845682900865853882471372897106825787786233548249003594447923597302028215674046423740459258085693080148205874133154767420691560768874753515997723719603084078995747381038465514220266371411454085971568859841502472572733508220571178318228210455282138312269237380011820721583054225369576683926196749818435488563615818868595377156366013482964202622357063733153376863648732253072211565647615805782513843122362251591601772204557564044675815611878004461993633846822084918703509735421789674708869385497359220773200702202016984890849623615260313281898301407487004231586225818462837884628650263414081136554458193883631915494287794338209917775651458174434853882355174066627094992170382449019611260866540315504803695178864907891002967247053769204767277653424546006527845601866562281068218198201895160771957050087110711181812902762786608483997444793714089966543175179781385818505358835492207772558969224706737024498315875614210498499777448231470413768139959716318471394782570409703282412524866607024642729892715963129294621493828676859365684379692469100478006788322549094061751503509695833013354331745390720690743660333750742323290097815834722277496922040449273352571848935529802695545862328356214589527744310192889358163062108777949047633947717786252322134262032852301858271417070622307660261069315448084334350693574028089783901148461013264867150678531987145137162062525969077786383753878812960294995961455657087127940318962033468781252840891993566566820716659606014799216870299237657457638739213235124936187478806632907220986732829371994848689778916575990915802078544929943212074412792155017298047108497477649471282579055135955612962698950333226206312484649811710470190238847033087348299923443700056375826187125446095722167911283356796188469667712723052782765723181739488685048109343482919059030291032635145544720083312471594688373736490215010651975769719178944279113979128277235817686000227001455226276547569399377098818916560351454845206971883959686601057667782370702129608223580026882758874314252079913529787443435915042081750566639505548958132382098898939541332334384628684353433490841258058977691490402191342563012673612058334988002013281484184291342996819852008068992551648874567524981953898404354012527631964356241445561757478853473958045436693205560419414572795554354272514642511610470687590794546594859969993625086945594359789163060628312577467765901195522157373049834055890078627136860126814459783536540747856776930138086986468048410519507980561817954645036295135323611029081624629299422994615431888491565168319310304100089353657979602940479801368524697834276978484473006637503541206738350402661269583620353965369010076890741542909450014768264426836641923154572524002803286116285688823674823253545648509601580590555027610453428840039630164383338032090948277178545146918956982206101990006460988158216540774824736480813926682142941843759621918551919717190775238897400497573667590359720349323151548890223386872012172277964521581577524773908754011194326439837506194513377145246497862957034368773987792486625994464000975515306296560178388354542282043071148234517959507316809261864168677683698847078608039889296380102528059154181782158051850485904988779906660658835516254214780468776215194584815301672696415840256699294286317632130012803765533857016664438074824170189264124865272286199388780978581894189774754112831280057142706392677766129257541383350874852705423767620714190395652598875197649402043896084250498182131181841972848682430937570528373317722942320967914090884906780557052659123048831812583306005315580266252824149684045658923266264071672067162691779421084151849078503030035929152314295554116245251220668394027325175341101044043053731925324162819542107472253142635247393766845706110597118676729430428967007098084472088766513732217879036661216658538091688051841941575559061853097350288648912157376490670782675310308907681233515181769209602354490012275489731350336700090316841881864485890462945754568368983311396366669330448259571870207334679813985325610754303130452442650401131770499921594500716730316923108418877427493045492963972009727317661939064128492162926176529883056237652840587014788317216277388279592089847142127560837145316302505319240685122872690920403456067311621753248257404659105525952867325039445158014076745733178729874167669350546388672927084044819182008885944242906135472283411325668524508055173274712858105508529373041154961255345240756960157927880803975612434582688749591672515633645052746263570267766375422132869869928872500284835727324317897776185229196980361658742339333590715987612171321687986210083535680872606726997216843187115679784681854775983430595414770687188115549230186117223260912044905664536296822407845012235540682920517080869679724513271467784208310060467737677513926999860076635804101358863651318192161747747469318667870631961269988279838558408864204017320911494296487954525883698196229974737214766265455209041097185851221826696132272909380282810648522758348458366547086561464920960671897447393347388120003882713084182435430568722935866537151128203851654668828348889038140278557387784593578924496772766564915654653547248756945780389201873184597596428061364757975247330043807271127483529082609349755086848864345390157419975713692095886161870522364225797717059974230763282118387374231783324018308633992206368076975585717603733706990839581735410652993370074992013845947132347665295186352345532849361653735954875033211874641781527411822405416311170552848038575612936827007816564205742302356864786871336879944618865870077864203732027875004323000746474417225446597656912766725479074679566380289134480068782907951992514486978972127725862322605688773208645623099975142975979025512974531770230638542578149527179973047690428622111197158146406875313044610694090992173983514402424980276109030762301310506736166839935418393065516935955800953451489596488767304397793313254771280405628767471816426257460447941794577089931804050409848880468236793209266678796190391633504280026086883729536744757607566524633055516302681344143141774599941706269196158876200370238026354657954808764165648281816465510259925424326190293173640732050188016141605255523869159255142255452505727709439459088762468751774866579772189024304900220363831145182621112462316682047578874321834180335979787102889731843112394878074498139586967131130650007853944586327378175671839813415720408443481593904756742920352545801989983290635208028856557593196137344880636186825906355618705229447396379479359001823146943970199930153000425578072538700853462752429615078843100732224575802650021251513854050471681728919386352579793611911415238641188191121138463390112577700477146169399907618109529026863593020068280377038128004312328236679502002177834778008998216739386781281567796451305279016141965742768443935759593676714349367037520705542604523547898309621652998668779363547132456387123031638375994775735830256816842306461968414669124525936403662869757548032196863404216699462902965515447779850895195939225632091372436009014789059274117164045529935177091083598984637447082247681263599263654774807102707680027259915854326367248106173807289257350884009952580399036836397400299864217173911276473414511546638143857651105651405524205016227610963480695690846441938439165302301686663945691426276491463393004550466480188044759913636660569367230701866594520038230178106403815607140837048892363718803997452631045925126889681327147443515538977032427697389124019194844086558418678828042503873869989924786079976179869270133392338710571641903340842780832741317364085753289242304589239237905937825318456269198736273384424875292001949815391773118427841834466364664640577071233821707872763108024781520230987837172187035450665694047640916904060374736126147470295773131531224737039360958300205829188285737304550611685877545572328789443458129192685078768065286608851407287866502406058793838776058708064734055185696854547131178214474046185680870673185387720588460150184954854479909080904733233509355841492328852723784198398039109384517772366688766646743825669809342825174859598474889770705858063755360540553624376040271368060269018128692733787517660845960230975154265047928517744227310348506434318195428645089942245027116938757175719711365727875829041847692347721706648699377603088834090694490745504098879876916252439119639889124830122108592652695917353537303075047430815262426527949444149676918437848442630518619242282567068769490378400384459782311874071034626861722092898790806624636591669806376008671131017021409726363157151374498001572880894612224831657576472641378661139163629822841455966491274534312357017300764934424852526647783758031589375716379025767287678260210416084878315939075494846266194513592780379272967519901334956085485297240813279737174867568192497465099903180433372386072981765096313867238697192621836709239067931539545653308645894016181899455683996040469729652895771779779140494657480853650346458937074686281369090744943472880044961007495841683482790000076869565931985037782547355046542448799290024812417576086123031896979503588121030976562773284479012317270738006773918677124201429770920671939809013525860349905802625318093561945234192412215582894248603723180601712227968387896245332523357195186301610390112314834755568161940912531884787188770974472313683743835687720505616321388959484015576779917950460136065454973984549727395110529805436352780853853932710346798725704979350599563022502158620294151182597863686164152955881403523376546106250536690486296979076955327458158947948386626600882454310239987019246109502119985043180550555896508228670447410161794653304419235564367324112737159842632618442938633879630319061862561201618379040419707528796052753748022642917311201946930563020609224898333460965730443395115798020740702439767916832614790907912782461515762279360598133672620146098176459720024764817279317360190377710111822609951361942203304443422576300032920310543807385325903932669458898289832682525117413148801463555559613177941282238324183055719087970824891389199547933649435908415406326278648821775920900505267630218961505562729702319853655885279816174176694059410818942466116266389307887229012753678176266552471701219233542062609402813900840807101615773463371161452869952796123552041403620463160937803078180075766219068519099764459250430883450633697547316582982164243287566948062461812247135355807914057958628939596753703246833964054580416749790211386117743900608634029942989398299292864847257528848320803911110702948533727235787611313364708580489127938755340438902599284579855536977090611352914107685369104609288381990671073899908041877534020465801623917430955607803681837624822193635812766967310252155848674997754294479627223292679751698897051068299712235358110285675207737096194592470795239628307257280209757957625310450192003330628578983787059009925459270030168193141085589759290319063723301156805806925458143790434699805581866844832120411597547458131366198318486578362144197653826222275445193741546401019154561903643139506505766056527526964702320957979634239256689285365555748947369041966059431589128779726625174642575026260403950541739750169565657172204257789519290995179364346428910552568965975919489733676140603727699558134756192675297192550825677465896878215392681797464552992525133117745392393938933259213318131527549818378759649299654889109167219556719449628824206048017168841059165679677863503823208553280908828204459911164891188234380456118102292177702720110424822658870424283528870732140892038730041992814091131339636617857565264536769629448857889359731403144151976760923345057942677798745903550360697643471432062301923040110241044733068138600941011557233210936691798313608371039421773498380682333079463395844773848916712938797353850056503045558103991681137791924271360847131489888728512409930727905198689845637926588968612267622793286042610704469137044071763631969176077882243765567956278491611283193037314651303168322684538344007083944087748833087075910916888368414414333408977968174723442579794590088908356840322946149679271466664448266721165796558066857174026317148383962812793497999548497630883008989161776032692222339759259456561689029415409454298546462100685721091285353494675930586062865879635967319460527450910871247262977174305130233930690023237395670508240269671521508320186453900353670982398423357476096307332788141759251681923984249024454679883406125468056209413556191260227548587035140284045251072791549662471933736183618935207329644081518454946193928314873606492857600450399946867843715002625422346741170088132388758937832032680555064759489258288387518522089804955265870000594669398173649778702032462856767070632260742735356691792219610191574316551473929891292473058144143893304748039298549697061032696222020696526515874727629066918713050907355490828528954545439951446389404441576683347910878089942079916722789994668949509424494603574577935161149986395329701441942172750656427776738004239878415808142596800350088635974232442963263104728980587746651633782310542081992549435083562418030823375512419852000561959476116026257610362155351816557769620472683326478917957401352756361610814022703382658549324863497034353299024776027238638655025816015409433694213435891690047972698620787341015620199515697970995159090456063279651402203814432692848138731898004105413894792382196175520301351859814300556567077633496229763755629400313822593292579582516610974011243543425662076285426640533504377924186946815608388940643271422587190447781051616727972043433361382143491692914446207954663998635795525722144305429511881475782138433482116833556921226026704002883629308396292645514951816923913732696271198382851208466075877577892009805023239055365435802594311993125012128017080471411774159910788171826856009520943479800435527069749467383612779530703958089061983957240080972638504094422437086869368725736767529320391322014728087100582469824752925309983334361540678765687026750967649564640613562408263887917219986585369058662784548610595456247317009561535808779243184056592484607417338183673627391531396030812342458272258878824582998153823315594000797775271111250457166552769664217962092496056221826404422347082266207557424798841021860680862600786078924031448945150658429246694962483687482476890410220889956832927737805037815019578362515850758022257942748334470822025267455717731720910598205285243579822133960867610490285238376155765368303410728362959227938222422365876015392832043072234368799170996135812142576547016949655662482218067494085976831185045383913106063682975577490755036474902309692919387261414972424483290804617924482858798252577498717706865110975508752110135963924183537970563656783827619894544457281024928686232082429092288988144993706154364043896755767768841880812959363373076655090642784396850444340926308787332039627624021287963643675939916390655523699039496171100326991940235361767024046798624816446696298151024621926493638018757417981290150970088172977424158769774217027055753718644251667407414531061787338829426115339052583254633489875982922978863584568502751949142782563984050200734947333251233602632176476696319605645754608318067509163288975613209741762768896391288211934441108837565130533750424009188898834548650325127640038617624355721187482660759438962455922124376604633259592301537742220572326904362098401026183619235553973013250240230897592202517249743718080658890297615360863983651396202295087862664818278842565249101794237748267787325814037389725003374938441053692971869254471983241200554649644567980614058021240040581663482694322045156298672969838148150971576194947103978919783897798918469144318857169394794015699366526516344609272242802010681149768622967250921615984391755846016308163164056342802950105967083499428271571672391130022483814581136111308706427240816662398635631524421986794437799504397841572816332116219733588930644463929017855950243700258019823807411641626860790133734229661667478308830287035628235529338620645764935527932102026753225545675314368456653386818857430912328504837600474559095610673326398185091175957447958607889547245682330486260305706139588313624119577656117679844800934634931227887855730412289223750954387917625099732983659474578768203782368270541565044465310307360771820705420958651419214631061744882378254718136081160331569039962438802053380141236676586740488151043063904356854535842093939605154022327024535673587566362691909014128002050005026515340980223334995645623108970055220570302996863977638744328677599226219921827420570549106864821111314808802641402797478491044514965158617835085046714572914068378916458036382622058092099875614650999984692833246563133260953528627857930129856525857929667428455497210695547081111235184732828759756372275679660147425607872193204477065225443366365807665956646294697185352056274585224727234061498889298467400728809433353399064919743269388773631051250273806754527548672883501789349973589237671601692739778614265880430967237626301217409363891924877858223404802621519285102282838683959819186127395713215799820758153148836139439693272794871958731177054478185065132371438301583238744112098466027016490941863399265704702061887840474537665602440096686759043863404564800281396394026648611260319949470752554049160317098622040404687561241011139195342554861100091531026895702004131348033828175895399055657274673945970008349404211645527589923063047071004216409765270372567203951388590862834806649504789999290464291395596554857202701300773029907466456502473845432235730330069323307837392937637299184160754094369049874166224944218856145466704410034453199290724861329908986528076273690374459947256619953023318790092646878180023910581276367925913662968942159215713141725362664832858433640412985569313387208375334849572130429712639801227850755827096244448304148673550364373015476499748528204944408716586728255819753900709668243349413076113915929642688949399462554246307075685303826844119237388681359121764410525353327971315516093008231506067347607488786697240849236500085953953296008195325950031886156304412916203727986051114144501956585360828793647433273549934920439955464234633207277156296905587796356973028770401995963131942901217009387170059463018091258223856619207338651916300993977833680400578731136746602100540932210196833533712863496120612331886628971101915238673446150166779379881185351315266872088042115067907946122378504537493296909622106637320542855017136984138502826744811268857261049606343260741977879413685748732111002445505959389877642080241716734489297457208658888012784457531139940401736240030303099604883069398335254822493762181825131007274836154618851921259071459649205300806914915203825913708375651605565435193670606406308461059480193755102253475990577984428306586922904604659821657141919993752795699080418435803920881357276734416145578187831228962001299612914548636532183428571944465831966077849197849016211549268501706043234268683933414111254593274812439618344635038093915018100250589576090161744815200377238422121730690260812932871757156022616581537358180685789537159548992222954749042989976754142500564850043592959674881247028466994095613401261077877750291635233671469348973637301836146913914303163975120072739015545197283315427706525098446671846396775736660636850878028590361166087924695915735715800488490282203029775143737803577243936902430890616139605088527829056921964853999208924429860198356267234296927622262413806869675608753300116986492308114734872775784542076074160754819491626233356200682603239075815606278887941693109633137208889602955289496711665887874409501528217297405993811727781878179610309390217352849291418935643782330343835849727713232435284592554025961951040556240080894627876308469092038425971673560949867057599244505397277422512292804299179132161720656923425050180804557676643356458683305180331951348649067356799869086354168414169894665020853725114334533536212170926990082689525654431160228804591604973647283787466339702206729138110413910628847868567780670443030186454104562951289867670322970633459448486090154068177733801042109218766796036982218202248564196520369529489481997929577123293667727379883028980305200045035392940429515060864226182183608122967356518255840784067276583120724427160437407952464751950990100461159596494321796185407391927393954932321908552140403439867628416993633825096105342802367117763153369241082010905623837278528946437644151870836152539482400135845050642467103744967971826690384335981833318920190392679778046480227869544238331573741035030854966492488804990606915061925364507202824192530637255136812544719890266112042682788119346348448628809914902019383213263351710376208242486823875342373296194315032641602506253256404905137801165359531069630975703867883060297356889322789048342173817641242215280421807922047182209807063291378092446261149586575422559922442000074418194890603359420446833313758369443268442003521467098261903085470671062561440004182931406549992249924269708486678987213989489315588784901386729154469509816085742128396679692452187556455063261806552510024046334261320915962495668743128453235139293998123346435510495634700586876823381652708162018418101051773544127438913772334391245445714308303923913300073141825257775511564003661781829937081200237385553353768566846766694088110874285404568022944670839841390708544615478549880021769857958854424295228301291464748475672319384943823029273209428335323320084577809785738892062980699421175150968470089833665748224865672544348688169801680186840634672048115493881923828203356760575626445806463875313016217231647088607312519012092571022892469148155012764670691928440741255380422800176496714638073067799610898361106863325244059996382274838992986077978661221516794667477915804239178253287780346435277479977909980383599034124064731132539395506361129899406649145590306748831371281009384675965981526657842178590240527155898430389112622402913680808330561835218216616622664940827576233997696095269300797097319533021466055717051365993117310601516173770329676205984823190003812949794708345645466321965734826278366055856520358977257577920041554265828307325963074763770393282887822015999254030691951420458315210701994221426265123019717112912723314231001516779465996330130232708858785668074221954519789853205085310972653164813352904974258942840559536052925147158128544336953593979177630728043000838739169319951596101501258953749171059990048014623782626044354702805279557146839410047020670826423092017454396317261219477554290248909937786677286634363063500461124471573580048888353711594551195567646446205441327152614360417187997810974963809738591677612283919298952607211446530569304222506417107755432467858909843975208096105747763571450555589834438837756581421405035049658967429581346208320122792840361972218726654856439618222500432712816967186400458460227910029966499533957708396841319747181277842023175439075059949250339059943267004000695274501254465923273533483121947810739286355565332917051456212687706158530703882337466491958830176794307750398926530891728711201530966422040873908775831344458521766529903125299091972808926234817162224462250958257109230024741430623148752063421444430353603713338989483807898883744745327136947691631574485436467534075119650330818981451067264006589665344918434617870331721583820034276079965181894022032502211223446714533110626848423128647183583083321083373812445479847214745822675704436693841167959563732831184019119343562994789895177856827949609355841214736619938630135644064044433831555698586547062885404541217569363789177706070306899918954649867041854462689490302620292843978179942055975899933260994173694157758479899234259845811368575293148415516390462164727094042095433739767412529330515515540720979253221071193993265259817887175406554607072368220726960056181542087737995439908847541169636331516940464015592342689551896899549326160820020353819586977141953577182552026121178990342958012336063164268053603221082108278873171133080569703716700234611016517555958229007213573735770222067924707934128996418080863092612500203122465027619146569718453606767196329726485842524658330220454184894286514080029477956592438458445691820224756027236174148696040908984190480357694728578481167364212271506724358234001234542938707557836310305996416537599685721740602182208592347589249750625036976424645588688368223138359997389602301363368892388084185363063674536360788958115322226410647054713861765990345542510463174291196159532511703036536948421331809305483800073918984099187836185088507974495213994322218335873753214947684200737203420495566904555843210102330628414717203883985597485294059584284139390434775133235079472009724733819972778067329616906455608412827839270456111279192106952888219279344646180282457516723759533635907392818277778015856611369470811134080701552264264324188868177595294086555212326114156446470567768891335446427416469949724032469876373503899360605784910338349305421978769977090585487368133290456945328114139163652323040947042686559740210690654522866141768801531633241930112990658379634829250520147227420749007687958241928143686904396381934206583892327049140057161833242937081252740141447154196074046229675300085312199144758255014511629734358898488701769851650176090867804713286258522460537147330960676532609740558415796913594126211137115895989371652644671552013217885891804510196403197147671651555256994716736092926291255969360145104971256768477710228119736715829049818027541008946016172564928029899092032358980141118160291868987889072924186814299298783599979756740541244614256116830978350409254434490963659316856644823377119389673846342633055945715270194840559225276510907792570373766959896346641900202495187146867669668096729194427215958289928869066151080810107232866776388063930497207358193941730676706937519519540166606414473181127297630492183191326459834436376771358505362077183459460612669910304222481238420300060276655084012975236110471911462768640473034952184214177857363942443674854547795508022240138167832720429411692939536120664487867022172209509514948756906940633842087279278311172447018064571119555421149227493955000845830917092581761957336933362731155014785018886382875129251439854732232347508662263931947450999033550337508408156655394213061772118542366680042105908024555569106538284653432656933347569794389044938824027346265203293908520172241603626191073895287402173260274084860225662121653909251171494459270125438748671236912495922307132538794417779045895470825686234863180257441202810834017878765173479577162424708336760300650414554930487572136018896388415525379925116492662873162260667786210948604164344726879538854947256099605913528526682314425740357137214837645768298340501738503906588033202592412041247901569909356117445149926777441155922423940749018001198133107436484515329591815667601009541263405786101752204755067145302583773035729126395756054832168838669569631500779649517832340828621019606241716237790284302974427155709300565169531758952428418739884514009679723355420691840572470073959126622735238509223930619041615859842439858600391050518043114347167977085494812968933732584970573111069814853966314358573284191601089707693202284337956443895868414073532728655627617004000110252248917434233638117809413700813836737144585434378316700663215180357146801231474370165313860614522230010776044766501583625144839425185315205029581107858317812773752593723177140324565818283449057231493949451027031530704908742502378336794318884218619999856195905790617757565591145465033746964478954521855130864650422677276913019697542958187750637414814822034243793192991617948973722891062323762236852849683086857935823117945485747255543952020801096984747692592694125790577782001544410328587077212687500136600582417078385147737341374629734015785170609368945075036756257452065445444867075445195128800786331843702881350475908992287053901482252879539730957568670950660705662082980339759585337883081629606346259021516178173440923900422288214086612516601001382495562815510529472302798958287833070901412428699017327471833112867068225026596282527743031846737638011966400004856050313019395124614275234853295632600721300965677424228390985559663613211451351721847564598551585596601607407586063642037702581214867546269140889360239700112324054660780489201301364348024038926374081473300339684682892500837552190535809820467481783089234009602942047436997054160373329881467830891063404383212758021611574562165698366987294777368203745958658489069735874180963960383649563325277333141502674954886212757704809363293376088611281300818422151557118632508494544919097161068781125363195148816153340229372324804619609190087757691716520512963922430871398817138041223968408118556252802165871189286551353933107543659602020221168189782304042716562493002000753796581089682027541562395576436007625160538652707252973085891835329467262542085757954254778131998481777687823263927681249607870080567542230406228902691060211079779304732620916799817885900817041532898394663929287343810797453012199079262595777183170560276738669016251502113049407998225825741179766362693375945892067821299375594291786073953667246253829895631536246217699819840468608020171696221736730641762955698480285580277803161516954365086923976076768636331037912854502637951117087408467243538841930710502096269921365588462056821083351941687953786375008777897892049462544145126032899169900589554976241709563989197638364637760563963891073530637154892149487376370516041616949043439958928106048240276378333873384783456053335697554013079150149486446781464230580434787216476111328702972516302446106253343862377520587211550359792246039649860431714922160163130680533450267519870215194441519316343113332665867317134779433583626962088075791943513287465310021531356590230523802455788016851220604725352897920713701656233885333831755295152749039790511227071912425508978073737283461563243718203043908318038922155390840796748616170461637300878292156318725677240639970156229043635314967841694539183969938618872026126360507426825391814791908942333511287206613482380387434192347349637047021521984147194795232173433651371374081867309809748240684292025460658929826390929522957049587489030925952710660402591207135418908185397310380474003108236453054776261129037431180372516645512651612569937913937684981916031975968832446853250374815059398418733654645081965789493396690775367576027602265894140704502779988337983576562451132958290269076837209458944301917177854535021687424347291177891524941550491949477740331948786941921949144102047395203578609257615030409258419418355262150583494633448368614186804463889395571937488437246561438184453066488816132746814853726774795270593937716838218737564671308579852304267433115265078019058246041620235067067794555781157520842301488384632220301477441645097366598241940143805410509929031306655495823851301141795169941537943278773821553727615230782996097206788865287380013108792415036633015549800840159633401082711039214758160520739918872155200413995305279859984065884369955932787529441477248535204819784405061869972547546373059630275693108763652615270324422591803762179599558468411012939343676184720882874403697536512737081077713827551311261691401071470236577940950269624902998240267534620924481985124313770599264562153358182249117489360691578602079878496778462020637111698874736526809061527203397069452866026978345059667732517697409918917982610101878752364856358314069532404448930437349967638833767555626889671570945604261459935362134226085176138384137670255532379828689523522980971674173552413451107935724135597416831792405604775589156359433537196823899701370803553079185560746026446012322483611578108248957575733099330749749310126639885034577864266257470226019333141746502998940666670267620775012751384993493667692224190221484793145704982707509108234956746969924461757395384071003718956193487160105243803536340152311903543854834071072810654205788521399296885330570810106945877317844777284617852720976545388269009310143431573873343934065936868683028106750848117849035162884381845998261907606266229690492974897248494894765839843046235570331850741525943810791542516759133689312769498676078973778927464216860054638747007429750640941866481646543287753962112793504966531071435386610190965875871433692413855684163467876836367471249399015402384940913432676751572451734323328664827974501754851077786165781085289935172654626368755947979464140340935603635728000095751175330323606946583592575100391460325711431379191074215595962132983538496360662382965172434335167164008709034950413388131737706958130003696228854525365857309909828674117577184432510514671073276405284811365078581863142024441593510971568708739725642428439321679656387656653521061169859892607137347653980494834942229585110703718633457832324409046860396051297826250634678369223945195772027584928518474231115950655806662458944952973860897903404015890763690894818505246533313075984347073434286533547088653317982218130387770649565077342345363260988472809604550957859956995669368182667831432648290397885941891919403666609578704771406817155455043326307609576666251857796906368921212713392518214504450336986365427540061570496214176048481188452481136740006696748648911646040506442817734854232319721545930214205225143311469760480055213515517349401759427904913943095188245319667182221942171859732882414862252974762482882327136742016829499076462404434446112369012370101506819227993546073799913914632639172484520446352095434955198261387917332476619828531196299780006318617153762387373688859825569184225630901121154555108486938458277152512348097774689709287442588088325616211330676250833279771328152072962150215748029839470586724849841067744538169200051283416148251475098198544694676128946635682716096261099399268142036517549761262729170388922525396794000997417847982235784246079485470928535669723069900639607729491867985852514216108402086317894611423980366412894526910440227837558884012929038193294368777368184577481568567603992600083030082613511889520735466816144221822911034697472402631007865171729055148669772619935058354179203663929855096998692452896976224301385278110016606672915860657348821572342229690429665544354335190101952246982003980288707247318600758003620753733768644342152199466756653973251658452015412691422365425905487548731588017611464474773235816666502792692866477272567720360764553566806602842131026932822019574490370187523623017777304297102468801638550999929897461135413224502724889095481556608076830799099672924886281155386516045309862854350010987667857911195787730720383771268571550572904238674035161065353763128145203485285488991331938286489043538613722341221268149981009996416594382228052894546344387749030293736753446019409039165950032792698236481608730536083649165720117174660825548229849405024248136717204909453622934539324402276927381268362034834926923416351208230456400465140561939363729820432909807086372151756783748672190064717079896479753228987633540178129521619686000869138459242195692488949651418443946590932217557154245700921259388292137247375371917927076913752552511492581943444457030859165287104762185098655938043987756305695727040093705726646761553733560178182847839604473130345941314888324826814715368836848673399306578641169409374773345578296599221162713238187735108255330766016055623573374749724382451797161517362224362229573214063161090353346087792528578913130077107675517414242999505286175370639785812275771068118288402912297667414999934997817018888789260309924280354569673164979695151724854557516031582958499386717037639615541462010329754031652961826125857691985380739475020908981736776822357601152435806217225839700005097781121672578962710672181012052421701710621088248997045848462380091283493847995186285917821848276081876974949330724377425605083673673927889600799772795625319763425986231384293299462159047587234252980131239855030402885782169599774725456435925577212828433365000512293487876033695274947936817983201953979896478975266803891716855450672456093315866322586258083589816107952753063571877458419200773271287584978447304729871191416502164594037317710451724360880719447245388028696414878233294810178678918927730864153253936870452963309179735226284606688867728286539837951299447170916532442029923219081438365694934742116117115385412443041497873409962854421325317640078820172344838620921283428771452978169108143500845913505565609015667798550308890840215784574583531392961526600047486473759484632811113360062001725685051217785731150567609647509640506733278598506308965275166889958021920718065185395198953075104665071121013589041781246240485680604441702389966456906106235539306803784074111386000596426158149231195488409945818147164421984007870540173602301580669542115495641155866779744543734735705910194588750594904506734707892203471490629565099710795164799782289148498403733201198636537462537593485940506525526311641467211346731201367180759694253371337608211773897965161279055456967164027124075052577935308111731057316005800014227669749499272115505396771688373807270496667537400818296586971795086186976031593914951022260092556130859732702554578376857057663032889468153692128926769107102896872347103297356355469130872768726555311982327048829376602737108041538571240854136396449567979845427040070896158982498472669016534121524458830547851360314377531280421098936208882093421672418467834073813822876427195359497170362708002260905935175728099333183287283379845822469903055663050199800577734700493638358959585227397257047127617136956787095110147509431013726822781726464291744054813220154232564982685788853197232800146299427407905309374120289842615382556147002931109682921165699725298432502376447597560539672021637834145375072039868290069511537533190674330936792103309445433612492525536542818585609724998443339589505421082288830414060418113449328376996775558060642542064070083960378537605375047191722462105659835842139497059562856814054655910636526322108309048916731320730164214770922728947248723523092219638872626641043687850020747295427489216895081044268714207729133831279566112649582560199592486390343910464045608277723506582172970003666917135180641559603683442591333987744827934660288008517840998811983866580314362686362239630602665638197129740830108563599511715426028493892608552174674389830521451044389820764843133005555919519819225132281504383336530245438524845601112064469025462617487954347471511575184496165721961013965083531554505650328929200049158547113053541935436129297123864896003936073231725592643117344999500608964057357742429529374978641214900220227696301546341665967161248786356167337300110358834476072951080884497135627484417674020951154738351069306090040304819682808362872615951171919367506130607029319023975672031021734049402304716088553530327595169134818985739601119089875879888572562322298754010524177063859421156678441633733899283155289574739237273888496992896148099859994278535403663185803926902084586662354857762608676779837548432511986581393268281145976355041244858643227683171159963886694827456726375251707816449217654196921193227617818833127273994531125534514444458007594833555764312831697049696752211904250536784870661229439666068346138292401436450954748801037376516245026340086639598362288258782935790056691584285787565209708003568538988293697902285509955693479237376463494759685735606086363249394088046458746358943920588892120957716559196233399441733652322811440605587224390049457793488387513588763097736934781106120757278188330053808278593046920749769651408429908048444023151652481808911308654143874097908336463388468207578272939836377459964457658103815244443897095382943715506013862373790609353779611753681912458819738592312850282355101681651640336128289641568459378598273540818507598773171491929193368453299264813138448675901184493526663086901537151494439740782427794321410124970499879901560731918674146456016064785879927416781886462674014872410759936852626200674780709643863254452536920959914056431250048633204522357175353594013731958987536036515461595523633031885491449340841823213316113266712607660691775602694782214459443003865585063798947581251803162264273231325693310493124554070562624899216895601261991738767083525189964859094868943846650479246639933546108273464287987734312759599493640036324646912515860822982796385505071065981171724156760680323437788755067515541050723500281855491887063335375884353087807131924649962272930783262800854866105993059263289494332566958566408861032494529736816512192022509097870456580504020953861730424001036979780243399742332294183457121705009645981108170860107601835815746935461684413112490853943087121186659929515205182090424096977497895757860908182803139005770357602059759428803319982675971379226153765811397277880155092265003442569582019955571811021551653383686590446483501349550070088522959086974720387351883404583873826489961300264066037759344444716262423570320145488251998598172681003352381921326276414024657792056195878061871836525891706953478587819375019571572759846111335827971279547594577868338320147299841692055453787664310047105361101886951450704077296683954591945557827639733164035392233203637390092714843150210448011746308186443640908522981164720892733223237091148023128984336321185537279468209289665361787109395813011072983342022735644608734797190323521022882475514051621808967394966101797789878002868378237023459145252932015381698082192804672491484997598913159721149244265968097957533288274646578612238780557666518718118499286506637673528958334107881733514572041671732353224727788189694669853992116849199960692561045650122648476463256215747193010325435935088497149906532113577006142566102021627563386898053643481631766844764957449692739417035489253158988964341960575784005229467385299948588465752531282107049669035586860440791660587457963748457286393138606797036690811250548036436392752737068708043058319602341858850932838865418666352654155088418328685579436421678186641955743508328164146029662086159087657184301796152131460393215239098475237356462815474928491973698858111937079528127778850992114884615476006573717167552965172262050755785086920195696855327557581231836553206740938236912836597812021758616376844379406113181819339158702583108070129490421313026352363636539042271685243408573835089502907363156818420484871442358821465812361583712767406147763899893266116994626978444680878580481712322256755067376268925402438148516059472652524257625450111400884637038261079479552112182005868038655928909623729842774594696703004316696881535001846704839021957860371199192803594506648307097455357398597629186021179142001571884689443354978467726026755303524584686698871275141067133338831411571000399264336833302676813210577623353092913907151909661495060618764176673414218679459596479269439853029364766667507452600377816232705557635227892338526779150679221460058338099127027938780896657262574782021035475452135557388523455719251046119863001568194698252104794728681465241330416477721928652965574241007077546071763220187307217298923352165933715873079992433337887011329110700575747276514724946378363227531855882119063630601751548514238226687894520352779585087291159331286301643768902625670289222181920476305790782939016607136986350557712554565105420656961365912409959593044462547490496964310860896651636137092776820010417652737944764287790758777597157527214435853177457375758074540597643193004260753520453046846970836855707626164522905258357849314175827197573103430559553625430878804315178288390006081879076638762924633554366677817672888577360294420962524770767587045259334836640185963372340834669071766578245529749101443733276159342853378996027867860752749487649561497729003713535265762392219199275170408628171060994508731637244189955926137811903477922794714245320320958743766248168201274700906348222770618897523344293093911687618128501901790185720033672782352708628692708797011651324625117964814627906267615988655408951229931902457247165196462902746278233004379812042176408138124518565697249166692404799690211022463027081629291581443514490420314320012006713674041400116373963007793086290437235278365048878801773591812037645167917552824486195649481354859257089743652913036560810210210628642261040341158130792399442539310225541464304878932767027945527505760911450174396479181193481984894144161902143381022846580279023060387984148568129827790821712866400322943371459399502367561545544058407547779533300099628152874987987405951179266040207272755045422888109161345702960129937944862280490336043987395339381173897745785831764288668072612933276917408316265484959914814721506520662727278236918646585752006368849554220317217376391795817166416113161667760971111456252610574402378929132123583064417024060507941848725309860029076588244725495138341305417266802750851006679243002671895668079033619375053896134717343762200757971680987404511626889393815046194150710492756245230653594737404042182904305449930682398477595442230986778871878671070169337390693030385744516375997038001828878007893231952243693816435144213979735738138587909898486723732225669085980113555216830226531980162730499107911465450564837141170354584967787227979565613575681843132592924087625486895742665877921825145730280035997561368196539759378716517040333464122990898701529060677770130080742445140416345659280858552079761822041820407572472910879142629367726483727892586902929541991305606152864393121408893998897549921761394171918826083196516546722995482670734198512786085535631617158408733733841696330207013150786158575326023256955913289073242827648644382561041039519014145117295831693751291836713183619861146776930745017527865689557807992427529076955816527630016448176411564332045080389719874505268008014460379259982527429530456820992350552285088755880924947128493052214688277095088045041090703403027597718833559209627777551718570155621915044358770939058567975532549208452309911612227469917429133947381681423412558275947631739193431519369094443747111263944557300070324492999747000209214428541344525361247776145802556514209106389295926460752619001288779809869616664106456780070422354478446403679439779493527324205950485727718674665123325678212789653452618302687351316929380740173344952026619768574697132134684420404898494497508290399585000954496904203520727622995249288737506329707092364095958052170515688156915604778688971801532076998333634854980575378926849075811087754877419164693042177546615403229991704102097249414363748071781291291872311542920204874884434418542333046468194483427419759097378201649934108937883682593453089083247733704157834164979315243018359470332749810130967268768400652607580840622464171363087690925171408752492340655838530718428306916437678754813887532416904964457436907931977457400793160847406666769040733469999935963331497687294598266296926231589696907923986222429831135135277087617343171984148616999820761506865292869307041502732842869555399693084858555631127883005394920860278070932396932437027223236290328142729106011561644070150654782776831615230982556369632980479310756769320998643469887266035964886019388880120899667422833679116348608268880357770330902674407243879342319481076670778250733560925375267923099152565767141795893102457566764546556047584038029193851032537869220060054328112826342401677525309650681523066707700001067420345205829426569304419552500557507927419603822263825111317544160664865908098451715821255613459437094660107493071106925189353513608480426662363551306170951714857701620497044705486419398326608552640890571837488366989908679172758488925027177748132253440975797515438587051731923608410461530152539118152427115339063695854772432497717156469555085494202783568391093148037608911977920277098315282176117275553586564106879286808670448187482294044895358965600141416232082299827992892522960296245464119968120288288580126751036132071016893191977342428961022630490622127603593117713154474226229231535657582693342565613382402575914101347421491776461547066970578773629377623881665327094834083165097200996294762860914365601241752341032645674344890152131109146142590528488117046829816734545304424748476186516509506465441289339665215581516993074882879813818378895255142375436113903000590696796386916706453461729118951659794452060829874673531607601051951823130223932462698591402695041012329374484746634310309654601196647558077410865493039662171140932948729884499586793804417598736861167446096473062515439667176219051892516682390802157825085685817373794124971532036321424383939322540828992890026576986981573700615033569270887495971288335661035641051584576163350107767051860165180932528521042302243459635322735988333156579995922532729857373452739901003863740690263261484361446891637605507872629046707684953636134810673480548174971643533978055927358738540689702552347845955141663963579921532795970973379202968053387732319853726819947620456826941523480129561145734760604220502055244597431181590379430484035485451741576862775901934746196282375208969490232918735363135300388788007919265545962396360527860655599948797551954746232627497019149251722646649597332009685974262535925142726886851739520658610332661543230289618589405493229971063224838926666119030932737613029717934131091056652301517334871655350859303341122036689753892388494568068944615287345243416995007319877826502096693803852158988726663914352256070834376074821574673001722033618519937348956997776852343296174295793470591820022591140837748634981675660426549718135648298470197301551231851563592112233126845039364484468678290977875690781513385090955596199901629362915769752732750159959567035831577518501344613230613769676950859492316869394162109106061480674797846928301425120277541362504371618105501722330529120141848210889758435936181258170657764723525179070823175628934515515856313560252583729815219886622764200837327124987340111860079273084493223308800290267872362414917948644123050366003163532552493271253777178743344013308490440771085393453417427479179388024138816675966498109177019217505516771714944028651780612797257872998427224284372075829018991407694124586573416011794701935699743585927518993615451746598807387967113221431351055617237428993621192151273309004029612506913305118235557480746262718021201360000730937052806232085255232434420901953661500501239322194109158418619823314456834216990782048135044299102650082678367177734607300236719638091876252848546528354668993531716596700871364210430980964878943560254935191043359009031960329832662162438627476853157091969678721567587366008102437964504051693514903199492501425402021121812012728235494564149104401165453840929544805527104256723532602567276376997440294536162884232107611994809964947919681609320160351829777322509815969585484553377930791045514567204772073827323564582357735683926264509250423511716269341284717923852100742778592589419257507851229805646845335292720671206634572360227263855287370718170202734447853489530137271688664587755144715506638883966548890777916924993201599701572752715222953582511012761496550442772639475591657123355451868522599545599824175672267398947987827811880539415353145400487454577020859303332648278772950931866884871528050353577225333739046792808075769135352990500871070011433295455505096258686961814207153942611911944630435459091486223398596618710887953311680482861218297596637606423884648185522020987228783015165149608434576852242310718465681745598268375048714478558233448187543379305194278726397289584568438675212763922807049094958036679550850256230091385211305002163396925540092770126195483598408719818113033413760402444353286668997155679973221657367858847373978057667312497812250698295648621894659236352928853015565445110554105623487128206983369963681599463217175115896520424566916851566373840374845149302913023596845157831534772410585064484994656029802605669018088968640022312697175210074248236550804176797496591437934545719223699479660921732122320920304371219267312607938424826049801783567714270837879274287086462392412811358676427019932880656534725717227748844750900078512588502286623204070968733749580667978146880975165377111080767328580991980450118615012154277232781747013078070117167799204412676681481877790606648781420709287063151051044516158154278560443998954595599135859317819954499370627598568419438461315337906033330333446742877110652448928230093662645120707709389115626806602847686100962397160995488867958887215345135886548228386422773818780937468295770796731938824031977647787498939290057964390573940366936618825486848185860170215579103294492702433909054712966597394114833661615981391058421623669146002347346939875032352430509293555115698102157210716731095017831372580837922698681674342074218326694161606434156627269865943584119986093973810471026613320044111655874262482089638046924158803885945829914322981021638561035176733985111507295997836517009471359885838504926075167085488105346089697657961876077588929377945775680184858117507101708626515915890614915534746044865313436964280717884433501122999336976526154104895386838103185330964945203461545502516363445635066672409023766598635677282941833030278248530663914942046167867091656610656967892231609176048737708869649781604121574773927216930443326906964508756003673068832220626591508601677588987392538021965467146367488793266815196100939084843399289973482308007443029967693171605805066083015724071767692056203675682153018546411651832746110724577222161401922355203402131093656252081977602220180892118392273080927182103938959414866685659172222522700128008882406352813309317996483464510690755633094817602319459968836266313667266743870669286100092923356473843526719302555798300722648258827909053841076787658376113307752489570217038731986574601079305050088689441242275399364401071647383661331085778182914873860181374456051717444743099367654962787065131698874636338261572932609042914713628689631765659118956198524158942158973729705870373799788523216095900891145645698457476211468311489788633803035519809827047281361994633981760681528052981453421271381396589328400278451357611891112348348830079392210474849801046801517968238670901103292317178589654302868595345743049154133872776384702648460659405879722022412096565327571620561957876725473704403895777766563741588296381646396718044051645237560242879273196534343385253904387229183497686128904435357800385051571150266854560912738135266284613936535848295396035465396943517450421353093001025499877301118417988666636946085151607591960281899303294005120557146389468536828189179123328071176127247332000370150755363111895463156016901110402818889613741282277680301475721982178030056408515271312853034126881146029602869652491907012951496874820587851460250974142785591589459802503604837032256916322979321054940360983372931412285523275057886469196528848228263567305183295031369980332534838716419281537278008530578908468684750649757033845173331368974641887122537485478494466210519863653158418405542173507076480024089796387539716170855752971575170071639445122689522526378634838285509530449103748031322376419642920728544408853907047509253595515593524023029888661434890674002139186994164139237106990567054047256513991239758017043467612496923967834773334919538528915755310859651100816176429004859166131430542437734382974278114535862439299377602862912755658039129630149223634910970866910990704018243828442863452377718889619847713035794570683248902405364631871796659583491233255141346233267260231080479762792958698034421227242897041001238368761363365795022702605274317346753004006791228941450021977711747684047103092526965064350394001756169694579812675282199473844009828359599119034093174946634965906770870061232540028571429337116692184184838793778752808809210881743931176114449057692057695308332006785582583808846126117288946359300067096547252012422104286029683314715549572806392368312859943324768028198041991871934498710273898108848629759285197561485314397882461070181072033694427755294989449896937216214022499633919276218215520321145061142598086767119182275111936190267770025225294608267193034934637157473671771804305036901312386284064916165786345321208328046404749669555716395469114083030230648196235777246916295791790741919192711057071000727225187321982169155498531045635607088497246783147842398662407589550795736323508431459669366945664451252604017402335255637144653303922166535221258452192510619438134903158538090444455345417606207625907922755657616711934163803121446739129781487749184292023005356526295387500762668742160520039422867183064394887863007092013623873647293768346322340081204753527287284873716571297867730791886118786499297505313467875054536140494756491153036111475517778390880937496091591637214662299138124570482659755479311540718300550183591210903937706560750689558778014828170228906824307805810469414741561123987004100886935475437007439729306161286157136536604158359885970373281936128343596098545908400686212171403503160978711155792994064118463592216670277155490910031882398643633690045949639825363509440271815490380103708991657744808949800818312042802406704888505323245563530899310689960829194758331918973333975928538863522417802425413139822001071610693373610764968246618578442360757166474005345932408603982964597911977801861678750952421362782928794409264573192736337057371120114964823306719430806316321237820887703751056297819709076858550471733671272766398541416382436221192966948353566154845765609678577514649648976717486550082931668220057109924941472049181698770156779119296298759311745286566537239146135686210468295813581823356206418240147819977855604646106682385278817830520654786801875863753346668331898599787659125448910541832769793107413692766331667293760104474647430926093676548627584193735550576606195142323622739811121152772430875022713352656456591422616751925948918974055606909867869632171597789849546021759895094022201789790555245982083356209034640765751203294459015798645606820153188465261359198792972690478034937133290809674148085588454722422886142081022529802459459975568731656117831891390214652072213934547714477548650400866632794942205500332183295550126058750049344491597941434116137770954164074746814542459857085222787233519433141874606684710937444488792798798561617396992282856329086373010305377850142598260277110969340075584155711829059586280587704382378500029365281346782120900259940996641861875890060992336042408804917934172390294820391700797596738000182958762756447000708607754277501255214283176891574184577627607704917225639274221567738713479838379918426582670011282811410303926302557231894076640498537799314418217333037791436334882886752456346663514834243465439594867439483181044865270219713226640922077320629822757718717868081950631168296627808159542045430739698781971419206297732390949873863445317974457855583278243983872087947139200243222716447215260472742109652440986038450660412364098788397556754097226382838523740906084537421461672367153869469087418976113758330530089949463278348665298276545198395757033141432195994615451134836699255689532590734131093587443484227952516058009163900261021316526806832393283137947303335878715133420443588226200884669945205134175526638072401541705232797136413983406029150021849742610642566922719045400868211989691111478989771315867298652779282816877772707102466280842543559206481962540743308940093162205474462453563897196483162134888768078018275401763945863487661557949169991644416075609452313695750598183318203954463402888353082959520842736809333992055630339462532959857220482448024341206401867021881944142008657237831256475722173212947849798181169095666930277824474674914185790077621858660498238104136864074684049283717333145750804939080642657147653534107353614766930742116782359983488984050636163499479991141330887117090634130225904736448868264319316568093884288465540517749733052363420073408702731560830814275244109306693564609741830492990474341133253427863320271148697401951992690624468677540627796617661322153425325482346582599090734250582652648856742811616208744630656876219672260278337397455435099719428058193029143048754290301901141511900344061941841011023867306916184704758890899267327794137530721424999293853759166136637865934101385323800984990465098514839411707642224715910190061553035160067226514210656029599360575779720222521071395647127445274189019411057940976164510474585666595378479459302696776006397002689679787637067908969667243814108206911846904110289938794006943868506946343994906863062984014986010219921135583888628174678570984079523732579468779821715515260574807380500650579369815776566260333023864959726730718994002307443139323950263589837209755009071659187162215428974501687355618991278058668628024724394414717122058526433642763778261125774585234809825169912589590294088311550836669333802390289821810800733996489958340773553907673970784698379096414946094960180953556723080021367012969836192365690795046406739061660691972906612686901028539255230628225282030397816139387283215066741602987937784019441152209923099993475119151716125486967381475708874606045416460789633018436539795973356223959381090065896796573704029852313020893825442414267935541494543586316328870506280597194024236179140420939566309868087953893284715805713795651982335097523556948265564078078975862464421954845912958909768598911493137591073910590660546085542699929565546008786682944331367883901967717589352904844184694592918232376957606797990916932841372622845834927435224288510539550208477285975822388403694621848943659606011012569241818995598240796120002853162308681337180260096156467186276960588574766473906605324016721253174080225550491684361313879409960945006185621032400737384101739631973530460428634706193615641482597449617607343626679304738794938546984564048575727818509279054075614049712918686303656232352467818683522000673446110717943823539979668696496955921840198332110699402587902884689126535428171719528479050925118589576107189260058287422751397407911363072447242454791693357209123856600078794306640187684995315602950503783272860512438035895450376809616904907871013861446280841525041706839735344075328171069453114467247286579026897499891484360002501344973810418974132660183858189372753009586342494919234116230029977756141963222017410310292882990695428920698224249814001095725306608144819060058503007636440789290683338274484929065469771899940962785855285147772441267787751102258947649178479017698893503023716758850453149518659917405578006844337652098122796246429623185644422431930540387233307812466974246922983951144123054543868757828943790480821299448528823033086173099599381159908589798498718108767671772506791421569131588711754662016658594720076401970523359574211069638184041879103350373425150340158362890749233613877289467660555758809606771671643414228577187038704166574350382241117196046048908143746316679034298006171938491232031669379630980637054622204542474251770233278801238235183755870491094951929042343594131461782463039495008475089681828584759805727476236621682010339155174552758098548240633197006458369316282158683412687616112675833550743649619456929883980915605625924077363733338734999218910263817856530258854278116544768093374811865740590695817117008353484092388177480234225439343444730928081493619620555282892250913227110350703392873350110981202339810914281651441155044707504590006303372809478471206062565683966180060932148612128807752311050289064778726156617104934538039712787878959470268752222079155914155349222797615740350795133427362870660359301138379625232186937343570023551047150591825395156967392136805586385082006289658759978460766730152311004957467750010058927662565820685903532964702357967992271370672625724241224433301953583467128665291371965730305751089031829345168259486640262305360962313206747009723796739505117248568790246081449444207314123494225178518736529605528011147110805944202384528080152357477751539664620936759265338736225838494955958810282033503597269879248945906575882825807329664287173047741004781570557449198633822396048476541127867196327732673062520263166618926263970874215668690282461223307804283933545482230505169760025539654517807489847449707053048904765660569820310542358920726230104138577434742892421014689986403504062735585949055004340672394451437650341525555458734430439723174993959223805963295694211351413674440925649831287847619566073432425500177959174654990757918852070464538064278356826331497483747821352781435521615837745076205060731043724670515009285823630162118809757248522810728020618791738786476434885280513395908308337411236090051363643404242174950753159289520246084189963189098162451992380376862657235083376614201528218184583337303810651691999535297242438821598494073848442566049271812750539019165487543722977476368886437962014062915399813661570057814529945943510314633327592786099738455299634682114278764182333478679483346117332963124072016793238953829847267432281965365691074500177032153258614662834719412657698409699116687238628641891420107543753670715527740307084771657802397255283198606281994956493793657956918462318291730763749329246799986074656641505187955613763587604275672170818936738527722079543148111515301497511962494423200424878348280205714021557150321593517707876297107729316582598231824528066265994031892184509878361666334884949576391892006797742560246276157801358738270187965438009698176925479893616028457484706453328243653308429371011377907438739513807285077334391877110930155912698690280238638656349933669660925278418394475552763078057523683303125666239885920052258817710067594780394432073120780241680817299022831529845486630189844034471605632606722290324708509359546580987875118450759785201541990694523606063654034415547537800650420612822597316202228508632269808160263458179793870172133643752692370025801815892779542592417215135184285774679008193742763153867863361053198568131619648770885976236173448250412771892872139850108611767519186072550769581839450725898745941462534704319367254923725152440224217985413088705348739948130572345354466940334281016508596452049991522737849610493515613535281440519446553482626455835997334856206670973723779999344002802276595532091942886088565665706792150508987746870921251937167763332873021772072737722028928250284754001754738057131488260114486276449433594845401884388132241404793969671749594093260771037067470334862843343820394906973575155765728356619974263462088588526094303589393415053530626605433180712349108933699356805733583632576925895948536069232210413394178077106593965556215996385004498803299384802667199988174630630575984930286244097947936848606814913751465788073794329620337079255613355005321694209726116363003393524572097576805890601494929061431975355482658670212926297714569053564805146093605883496127420141534855763040914244937295214279561534328384103566019439534221469844186119699049912387628311450041680811514570694997102994531866570895064907807594941286901161056228622385910975274224652668715166384038521366040464314188582328682436900683126219684418131194170391717616307369329351166809169503008576403677711603989461361103216089730993875227458688621993318965538513181084759243431727387895901324713860620211882764152245534829896135271228591812366026046102253211786871091058961800472284258310027530745542760674040034108257148209686320450400744075417710554260463690570820353225790284817693494881929425065072757932428229700222870337486199911289864816357410151481238613442434066961227253950467928797247623264469593807669369351752013906497151816804940290303174400002841349120694907597506277322888754060942888849613470283235276823752195803767987460486183343540642150633454401803593088371133015845516711634616244124076948586606911710096350953656871513017511655523925765565612140377099614307125699829990488302285905798629011716065626176912634141133461497908421464141935192493106876382080453295345001625814959718106127596434957389433053652895642950386516507383377048202927374722256494667387115633376530754989831347649873928409233245475555744559317988932438435341402126816236233951628711441269307807488948397208450560872247528823981997959336312633809921993199078183010887700132672357565407876784232882583116553837360097238762630592000855074726739604391006760241043846306474952467649466290059190972864172903310956855179482831414327888785598857401679006272417907484263895538467280647939177670029551983266140027172672291140768125245637038322927071223000233770057940593765866281252617122052724016912716982145877100786054296055219710113410792490128988458652745424651657727627990580969038916369351710819060582442433471431360053981037060888344154365582688794300745901861478578271761936029434661209790635938310014899799952307768900033385853498616792437664889238700487286951116978624526403296074820086344106936289369203797369377088694382504597464014796891042597545165093617712672032697200097847376666709263153364082151257362423951594567947499256387368410786974257698373331121786710330368253511713982583228652028368516232895688293791101152847143969599238542320722870155118046379067667180316405572012510768775958937497280144992417219081797059398613672196056324526177173536727864588693664531820705342026729373716376155753712738092415389484848021441733530515896488078843501579269606077458309600107042939542076102829187679941890403017676740919342466537918549539143155093162601199290799403881855578590677948704460258931133441730797293080492575719181656904991168138269047036206689044200612115939147766530335252275919154803124515205995470772038917605832540026872629611727522171690069814304430408375873428738401054335889434987614365129451400838685363645506867315534470885752624617542411187312366979670092250927655861780128599236261937070697454045224250379700697235913702236907196533867303945975091156160881654544845863858206468303505318928414507366087926829988941613382399236427010078092603712957904847102069339729146298047300804747239204078781650951775673020144144452012971742051291139869635029779095584495198634614622351294517497592148500443446136248682348048264863978711601158942233396775471417738771483421605240330143745020889048660811327460120108641257864547286417537890977996990037489260435519574661187193052470913024344597470106953592283226314757525139685978305051969363679288720819332119065060581788643235790757697236891399441244789036263312258673136769664095994384839680212435012509634511417963651638121433986301636819094490070341604742656109221053598158131535937249780243070723373650166314926067866993241683491648562096672267647700902869545716827775760882923409380165828902244285216139515208614861363026961662295497826939017719774747397410939533901783068669757254341276227644949125827290616599465736871533127384841335457669068006361281445953148662727310973451684203379173099312336856410514681076713133423734540371455419806364792545236852514983374997645268680628154300518492950723063696466990325277949711287764261870284979221406684264437115656577463300897951913892556487873572502082275729075127049859939946131701901575954945808538734138007055397852701342214373972653914299020845423846572540915178528417645418269379910735910809540947657769397316203804791806278990617588239099062210935081612179888261942383027049444691414939707289586456964025811833946623701525868199748833025624494807412026249505558701694827818512943362287200194202236461740989109996399323738435834522793136496341810327795141167883231458671968800723325960346423802886583692124746187517108513343692556946037399887739754600395332384665303707315204907256881754271563222491878337622861288836590087350778087401497642072228267687291909337654999626630460787154941592011349823302399410437858465552235107056094532533063676569692546571797511779497990372913981438826474266296909099386919588871619362942517521438323794695886735948263782970374010526351149064187613448662328115755094488417971137782171579578393249744718714715298414742365922199567425250088059531990980885304635001765043419128430391571256526509086113692735745029355963122034381340332635062255061803676360195312104449487121591365529607290073243878397160198019907483116811462106259954598180775526220118685557928290922213782518239331198374718577158409675282845390649991213179335128918413175914768465369029848570021471772530869916323698992765364485599183463123734313959991523070088731994760018455216465903213868674168862701639602871905557738115593860298461128093087893957598255778712047749712899917632951093647822270394216777062985850022468843740524238714682812246056267387098731405202497119042404580046611041049313284771935098396363304016066611949345197810923104738469180292809523821182213871285306609043781669998675322602157650007233670058063101958558133637202946519700886810898689669047056094270481961446546443328006782481793547623101793419548984805287640810387663790934204343514943385006968202492766359646801576674409187132151688185799819513432246045239076084643741217310503728273967976690350414755117955550891018350885638013978038770671548253432257549433781457456782687845020377239080006879947264371680624915009776325141213296545249707347322798800460064477758643062558491667093184706396878414366685598509739403730536114668574246093118667233771523631727593589921206709685366864590590963748254237405688216881207259569750698558527320890475601166901773479165619348631631840201942528270550933832508782427835128281311157069175570411402935311654361943270749772057019591585673316580991903035288308259994171914965199062818064255359557908411197720936660165205758311878378415282217905406480125653942848300403816520870460785554881759015306408692069354129186175352652394961243249758737839117055255592733115504586619247447309624766385027736986230739074885298926092049428448939678481384080750215819414779680409667858521262879143286220573175676463884037957132211190310745823744988105397415606305289697770414551994839118057284614629550021601187189923454409510166944029196027752551014558431463268123742342634224117964808975821462878283386520214384194484226928618806040361669610096915656124873242171607339245153852140310424466116013575959436596086701205556291485142521620488528018923703045953834535609137629594386928953203538852346766472537308862523940312643697379609682108292023290175360848576753075929611232778625522615502592454863379168227114456163759544596038288914827694542810626580345237560463497360907835576127242416921293142256681929128164391591337193501025368122681770243388137841419272373588224246536562562010526873423756096090221774887461229816357189810494376977161798279505913311402700271558651404649013847142494588386135478037342167123671354776336233695388626785152707571808106391294857536587860332459446090785427160651943566209740299271938904560125725048018831414026444664764007066396427486334365360476115304319076371439655010906473545180194409299726435718840674147980029742827923093699810099923272683622101241869217847110025221052273362422281647253556188020316725883639211070453932726887647199187798553424822548661562326805113527491391254876650698175458277708184552722984406879562771516712719020440696905592769614623076832128123566000283729805852212481493196675825460096641846226186062200142995974937363307547877896853726091686042329085328850749743096311263642518070274016820871052778774237925743600720935423238480679997081987945061416813224287424209739269185554672497340733503850735518502802426685775845916638858164834471409804093374975873252793845231835589327336781644061868773387874381309907142607907149405117724301326661317883015690208263889343373501587214338723201693542854670789110091017669307157416161621937300825260177112194195269550973595112589843832398172813855864513341483583743329450707336004766584949427728406778881047682792740651689035334406907393188979759925637403862471488875691642873988803464055164632701353967116245305653997112599801380991646814088063229931247148358422014023075754698836204209429428672494743077296854422000991544815465790734361030837004989764804798988282370988724531353086773619033776883321953106083599543980792404479468351263111151834473485864861201701792542499974608620945243039222350813876879819670076063943253682124736425561891483407824733345637038408734336783024786606326047835666053925857203498039411778495077609080069529799710922300991813490568974755477806773604043471073469038705921864733013755903009812455873566439405230975552301349803914652157376111704094508404022070240360913083793130497830544893026034802629548728307766330857571955707794475098944424682522475224601851210768050197394451637374568013129475734055043024048033085544887566619926250074658950428878583985399148793368348054676988939323169461263499908828346201807297966502266241390940736197483536418447506341662954149458764742171947389192371722833080129370606126407574109425254871180627406878689999444349507499354192998824886465080567950685191613543497856521762828026642148937040429934500057591993383640611328951991588243720320755574623414182964092546402644423949281959266498590403662909459034300839216989846297551414065091000893627709683039319840100453734002773434530375404999405030353648014978549292013390726817704990813183528497931571344370689245731349782880742393581245922324452400585231348540604885309701514624536081850376392051485335601177095388518706594810059210840117167378937992797681445649034655825804548980780504574628087069327470183512012706722645820704300461693881529744597566628562373927022925527990718262854051819059716509946176369193280906540419863030686896516433016872719947281129639215208852083933011744995732662609420349632832926827568735768338738096341359197727101655989346119676465408303401387448380205556591622627398315454883494611070125618200422627239105877946009746810541616120326838326327441463118193781465409689520789501212968633638150416916391288220381500455142827839059172294743556831914331815093107447287898756153854673520796906529340049064696309921869403696095855775102119004494972336509822971955876742790962317198074656712581915727969274633017072465034094101000272238896478441844237549534091216452769287767318471992794564555031055737235862160141860000431993664797684787702451172459218510419559104512521682998899709563245393475925382943661135171617622828340983474435018953211067078094381331375043589850839015287223219403170662172050136578766365531236901277085953237137159345370408916335437667048448695004435375088987054318282711515803858922200034015039098352122293227219410968662193746795693439841476757592458101448933506519474872094837159832455951062974659690392542073213012494823578198083130742268359237212477950628480031659158041753784975435552587429851034881086783011684270001515226734319293793811574363591346492891969178271480688400546149133386220778911161563295766743605525424173899495657462970844197154807473314249511004744218658016719017401586143752544881118433157117344235376996382185549662386618390675292581274211424728529454437684437254350444538855617106155922326856711596519411122733123691999421607676111387318489879112699136273856578687938022107615039655223169755338423764776038224094208362320152213249857542343827150212235319687932296817571053487827677405222313196164051317013314034210190808858236686695912796120751402137368007415804912944333014754467113074900070517807972533471503770348889053997242360836537170195004368221707970569780892517483062402250004109593378017153669573332979356198788616080559304853857686979736658107906784063288608671190949752577326560920208508974974373768840180157845795148427965328243556111755019732673971693944590174268723770362527917468813474160163774810216676535930233068004392560325037045364529519696303500553207093862580376367770594546301001139076025203249928109726392429412489382384547717850044497531870689999632362923122613221979831540803686167051237920531691489837423783583130658600326757403373175626368418783762501535614081435721266641419459070874472237011897794233267208754123463187070773877845587901793250900353372594204516221621574181512406537983833546036340117899154468307457147322981514721859901700004694753741171390830962219659309533983191728231192622795521514777539294532563231898669439030169364892551150785043287011446943351518461962035745828425748991451967453783819282192408760463177134286842256245770170059977945176954213564948529223795355384045761699412991446881605572543791218133304228255096860532209693145166625330967936114040281489753333578735013278093212358979232224297629877158085536966818176852962251563552915108991304644040180686844521158159023904003069664372257463618883879856922689629535332573724489442773428286886615520707301831687739603198465994733561789546469227845336452303515900955424909409592003479745361586249600437086241096460876109967942871236413915215660939715913136939921036873263333060113793816556500549373629983113949809929974530086805674359618638740962827170693115010599352264219930616573285520486121843749532152699137435594590797779162330587524881176626998991778598178816198465693490407164083580537372327724459394786906133583065281050511726959170730718593597029390277448264883804143606818155032460167748309963146940029015255148673748624878524345222509221386523621124333294880227676077170280379769689514390870880417764493576732464002807288166229786775620264725614873277026232801937186497672527788336808517963169351578698297649543061441510934247456472642109304510528791322982154444791873667969609680564185995943884918275842694461923875402250152640767214732350142492535254709593170068391952550409662262106381076873121783399173189519545565861612449878335321522105233603326706066952035725763579568714399810395934406016214177271303197605181725532549289167079024216610990247753261770925737700554523515413325391828690986836972080924286501593039079343717536583257699098557585516625405795328921736440313141936930939421103869339591618774209345786793887513804217412219234983375054972453877414856551150337623121271583966235236817256862209835720108976706457897000616194063642960922986344444872425831517611064966591613494753387638525592682097115504049493660111566066054880714858952165400453863272198905607085177122305959323317584430371561352284666005304484466473871577451520600164178208191029601998682712380313867314604939464571594268269807610516928371363488740809467947659623916832432048456835637202993073250832490306960343622908953253617815950258654060037348070816996147268134070309191265348834837896063948364554788947464546563655147951164394217525657740518691749017246006606663574844317100445654960171612653985291725250769371009270920975154220260514455434267398268735582781214324883310846955593295435017917464980177346820076260655924616023919003124341084965359011317112386042246372184793043851287988557661793422302280431981355713439194436752018424901002412387136858359486672504890961666619795176165547248351411385683627261590936726935234159397914481774509791462773277975519023418339069881116426580865568432918822009365598555979182287044926222273536590227231332826654892292239251268755622479457754670796449807808769544529747845655399915209635091927611738842181569203019368489053221439240874632798806188840574968430246564771818819849971267116109262859289426036674217798130577474087513335690171497583560495622293554321044280490891133715962660800145052151885172872847276621294066188593024772053895902314504746309968679996287547183987322160785548924200051471435120205778059736647778983272026547303914962165702300227429843547370586493946489313559100386166561127016693146564534680154071599445951626360677155935431572725715573742851986469077821818597763740288300929525218606878537620043454366519166020456007019743228627618514325191868761765729839729848180612246522403563983520859871993976114296882411290588901009503051416427186066380127335691001905312079087678134557015208713497399551329310416241194509028506622208254629968954851627777799271843457588327494589589607084806376571490160341757743264835135900666840238319024067402393773021483101037678224015910993391809186825174240528546685258091550190335470190938507299860871342876737191527365268133306194251478269602486782843724549275317413997564381294549181210324884347270540732427380675464210613499429304193731350815581378435106736407264664409990363538311339241690527060394434063917185372997441358498873661636008209071287434069659286706069292152474245303431789054240921741209973390526622243540839139992718857383334930568534689857285104758759635639757883610044069979749828903170937424090322846505931827849159252609388738231596056156841906100542837600463649726870094261650212180084182146933557572770661082569609633267784653140885040046226509118452367632353332983454975081521257303729038267337597641678616539225411920799299894677178420820810387697903551914560171830577794697490205053909693148431567134426608337346271543161107801734815909505235883915379241650898762574479383190533694977954991719913132728930011421435587419385111163304037391227812330329505462009999600728366797010796156700769502464913211045026334178222733601687626203714830699547437134244140292647173262934784515884031082835421168205053751693970239475617812210585018721257040094297101487602262563921156934370471862175105449578259152002130794371227585858390444200346448381250026520138974330818607164350397564266876309691409582391604534760033536596170803011633517010499249478732867045537502966237384593947609529195264399822394874892343828495252495869729503400291827082719573801377509136967676059210576235750169891443766846451592052450058533810283062593015030662298465763256757163361801966515200467559830387954719714847617938740867872506722998255213076834415000044553372987982147201247616170609167803896366546603842107801046285993911014852409057326918030211560427408637411426593341335335992764962693195035993990491393314471883838787084309791682799990195466844863662926085718669483468337846661647029043404611101095669083813980106912521059123417007859649869713701090235454422307115611633582477838650172346744447154963706821658517361463787415576354832731780739090973860239552604436418448371199676617511326191729093948139912738067628708474699667288800003418448937430524241260349242066948595974285690838003353409770098464456572560325900060702073150153560643921166690618952452461010116119946848831542332637157363206968003528023080382492259207141072451276835190667959660412057871087405809441164227709267957509446821882179868493813473866980591781611059951535088678323955500026652616931720316931917631728908594201821982115116066111058254484742355376373674504876989518855586518573657955492863016969924399177081403053368416648853946947951120035064764386108286879365132308728242872736391783764223297914917181105155268540359982483879892342602508022874574088174757524132651667671181204491498499411984103630520698472899952048988411579040703142963715321400575909073501733618912241427571415709058692467023522768983255733863329426128962915537691416266398022173482600452564174630072640111165830394953986995777218050347163002254072439889897557553077317695362196052273324647676167957037982397757169212576310314391327423553138647781890549032545387164013203487118075268129341146101786016942464151345681372463264021312993548559222329897290065213455800773175730166293928632033264992436752385714105973858973601126579771095412019472990721299024578794973848963641049508975183227054180892440702365991765166088532914816839028605714577980331599029940303267809207567600958071907231246280183477706267876366804195888050714642183873868277300790241640052837468548047474660914748663836906607490661660588951286675186231428443899909651005957682038304483714876973433126850758270014808405778461618063082856631931571761552703092880445854221449521232015226550406773393771178074358243868445924334204272273089059059660985571862976066888148082267804643821631940702220489176878782389160728085357382399195216545167269612271253702326018670528004524303349624064686799608057819324134985661050162309221196331267213093004523837543964682064314822688904660380229272187791838578737753846997182572399490471466780227972079274693838228578063653299374433564398283526274891014923633275447570149617706609863288934205395362356813423873662198467360763741024433775242490892831561955869311086100574884720830224570667404043220645002590751316576615031984902681759034632501650659202605080546381931885570473618012199512370127894209562173156265399880044884980049560337896618884122626495664547874020861918052156357019411235195866641809094787961328534734088876422596362978583070368101774040242398331255412858206672786836269057086167412085082975392845504859928795854430461732770454373607018165752442337777611222500478404759568814057754386468454014711304378772208304614354970999203250358712402112355377604721541131467305973786357981007777689508744661289311674636141806649712074741693094214548713279942026460752940985601188415515686942366997339731873348580770375654306687274249796281323472523594828249913193393866990798264789946500487136545914178842862092423135760923954445481484003012558619246686045174733353004863552894525893544857857506305462220247691390344784206099993461019840662611301454891133982296896771827629618064694195311328475179872018852633596880136352197128390278151665454762580938768767328078337330832955589988429782667357533138383023575003695796305099282976727235020808340604762985677346936060574691692241458393955239664700566320220225409341066346754042966230603481935133623081770180870199367865842844401368425019185510681237157305401357880515545614179122684735468526053336291860924915130450772967295343269261435116227024056362563095600786746427955102107293053557826731864825969016286177547957257485892798154982868994646415283676586637684606523010357827522718520423227040294688189904397684356718747657035164241427945062252986857161838743757641658680088338979340159676403428822464743302370997383608478760788841625963761303150026344207155893438924442668994832430168605253289742742547213647926955916109477476427573134383661451064257553942512797864375197003593903271738064545662296110620078619046907013523679611753946937337356503879973301736720572454720611506806342634544650834542730790525218957882308879043853230106854369281691009313947870327078594738142630761199169982089955654661742238481963237354267428961185165454935270484819865848956398378953231601615124263517049462310668922357861671678808768416222011724025902691213628498719519326987088851285856670072463475128527966854574102172299374658705084601997547473632381566379018691840470137160112056126169696007579771761909367893811868274307548378787981489033244954914037749962139668787533274487465820063391585927099577275466249742478785571063581395997999154224652738701731778742996053012955538010135109279400824078154837877060188170171459450547145514231910205086625219286011682027387218937364907465391665808894409611329810239869623505592377901947507470047319866448451710022707552501817703387390220528210490771829768060499965155610479358916125215833284522252399822590489003672403969670752223896846263295129417068189919331282702917356719240995865792405105767076813574047155514803477201860997007242035584859592308908775008816379244204550207665383997729883495833124765718016518444931636101832775620059797001287266085110064122811186385135595995762655216759028812463489599451316072684900631087897818388316064611961446432068940016447053546698773120941063011585445751017576213166669444394606489494336447958293999458350865810601642186690642317643484968750933294459256886387903719853409092563026642348477235759755757812787550150566593965903304915559480184957061404331414320213612965243871434487078273209200254295325561820790569592087274112005909082765168046010376654189973653531176130522951533144836873240457706525286015102127918983221964656350848502212478012631016812439413221668267466674060965710084654198295906701088456205352019276655768634421691288035955607741473871356823097434954953985320815722365660524803049609143505811604911114685616748001232548950484683536775688717955645994382631120486792891587064648187040870111999734855175991385320347156854963833441471392351837998474372328696347225249009773302501180550272351518686523811654525703403875571926838689252453869187185431157101900577970706979648766204030666995436244878393856644687074033940367958336002860802685847952991998527205967691946218449315822945314174094068877632272551172335607338409623202630257517380008471103176511525649238448189991207368571396878487963745867335200879663336196187417731505828706988465282528870190874230349964391519658588495713424026706912219848998630424553787561829812741025653130304401283922554732794624918941931591700076910253956871554320582865108221554126468154885819983695633422890676552428830065678268873342904842935061734467247182112005916816926540911971502497709238547142745799191665628687047104618371872142743637050454045297042227688070883134156100905434215006200405741448796041967697582385645706601755618578038084801121676906923775132829887694217955901992550411626196917588312132782719353432976251530365288948088674562182675265153248267583029330311116253816795150285374900994261251978955383581655481862037839229515995582150168114784507677693192689480402509603831751656065681504989679515030221834179918476305894954178690496008915406969603220779702822022279928824271100133763499916123964848520050955041403981765895214142145302577280663547301698306167547894704106672327085658384109007542534984263600099081658979363456494806108118384848157561964708590548315600878376350694372349112281428083235593089568973879611676535349696687923652758159287208634738017930531639087909407232504829983286608455728174727380907828202624658045273054720810063477813036461307811560454540678829684365009756292309911828232451716782165141960863322491964616060124686108040159398068968013378669823935012567326032982843789395941082573167040436543201043150494779340030901912976994467887602035153093296356629928006139309088502354596661289766705366684189254223127020299723887605842503406291689172789309913699684804641502979897083492106136981109822009275629807781318649914206821239345099898032396202633417579449644890739223584189938672788465449394757260997586798883796834003684837074300075400526093192320377820007435690412445198617375681500807811392374519559122650572338473838837135175292207908541489714899956042047283063102230652524252035093255420889736215269299403250601037757785093568742858024655845164725715668073683203849130990347472221398789226077597884271192816431974283188642656694128088402580352313208025344904877126646633702171995416565118305736215999572312575609759979370971204057337780335040628902064053877294978226004332433744979908540661692161473269607877753468992839356221863644523858198425001494173655184743930403596597141450287743294798027514749292357487559381460329241845697065707938022121114269251568342817790575302738539777222845075313473921467584507945664535634655041478859156775838930140626052370167139610033072466647602774022423335925456113164819094051457156597071717185930542800920177783788002248094774496728797958134969756827889115036425044161482202177952242401143264002191220612396062116588174238123154655037016942118414394738076791388062523561314121481040084355531503699522029301856464529521867640903441190595389955192487282467951011453280676795781508084457847573802072278638372966178572620299207984780606614536990979018612447915477495105141392583983442118565956325187690172069958502466872723313996635697667597456758118710856622833320074416449389744813756930712897364486695109000347072996671094641361284542655171472332505889458099699370625473324124927311409078678237676327091404043478351119461953327535476354506452229317334337582200239056026795303256348752855295655633325736654138258001256520671686384202105562170389939853516570091727743739860614018191110664029145138904953946427281543029612416585938437856470922500773344294619277569802323923967312293681108020219289603563933505306941840028188250116068195928228923713190824797590411139694025341310619401068522702519419033557600004762583777338374999268134772191441246809120642494979553807571188612776488636548725995256631640931838851280438128185541504071722263767829909531299563226249839620325958777414002334450921601335941063898540264164115643449331512960746433457243551102788187265340585024266433644527260149221816051579353002979008899479626457855935382312998359048114659286282622133265822450808216013494240359374164000523136292134188057930702825989984561693811424331054440389206443764500321253694651253224865506536286011431549784784875859797158749039991059788733381472318168231668304233956846901751036648774405146017784622730289610955078965667313437913706344688066116104690792818284996968884049451306323626477179616747472723682478620216139928306205849767967019228714969607751423552083434760300368818056440835945327229395664183220451759405019740024706722037323170016810240216061568568117391080161961784790042529815181228200586206007574588127273453243703707969882296589015882385489835774991639886273474303656112080083440568589362582211389187209431628646220334570624931711333253314098118621362921960644200933714616576000786257703482408757899551966624879547848514508270287095728086733437617847696979596340977815309671010336633598906011644045023322653404985341332787077017312164255725044141729483091600588763217348800290944538839303226462106259986734580858402537191669610997254699272849854675158073807333765656727149586238286697142966358265483832613680834087438241879766274543115969392401500347978790567684587431120955726966808328870902699464769767733179413444922871085527749615304236072719970330849727896452143030905501728700996691018286550745286151923013100377611907880596576760362045497046334801359042854845651417017513714646762793252211436788721008322827757538132713918618715173591594186784815012237516687990658889432981810320068191642220191484911341709306117878245462295845527395319129855337115656005662934313659184047683570323767843146277861714974706535550705584588341014753670481836447368247960648268779690815346723835639096116113216276726442099890067766679601232444705253157299890883607639757993531222755478690792746529973574414400300733054784997062887211986529960388801065250262154330458363113655953967329020859345179216481760728751251445320216277593885490419542858289660480030033639655957469103160310270719526790437480711632754677133307136696156834531407580925392642422509579333043768170957591369106442263078968808519532813370399949792744269296698324106776689739040479142510145214592513256402049428104670052018475388934704321416955395122112005170069082734842617208690243212290696425496594276061690800346522615124856839189682587574812038300287069974112591578136077583571417013127525345223630781742278453091598874605950832918852656757669921393099293568436497179049049304042041798058247137634646915863472047116981767651203368552188037221900112005513191656309574131652383171639688762580278847114988131398370073494621332541233884018821806929503597226218230324268939582415275379686766371880513229491382193551482049861041771271986591612870034538503681446014919927455101056040905223629937734702317524705010337655311320937530141170045380411927562130798804754170351448992945812728783810791703383740291633872370737544613406883969338681277378136230697890212321419256615520608792093682287361679027814423722624733271144249664885418689258180035996545041880211509055660066891553379521582248662762570694564214397726199525734048666736440386063764780117904007541644372885035097534038512637079630162277927743715106009866709371673317829027951001505120708915791559540600114565054896455110361291018906423211556805249305335489325289455213223239160456295726139342990851797976734406602076054880704648982325385381541434085114246118510654559979726180367704919108189890215628472396539278550059495970190467079904829496190065867637865832679049861274354740046584799769724898944303244901279078365105716554957274767454960150312230181863723467816974985886337150607353515144641080163709085715781902487180919516627292602500468389116868150079873579290781641689207979345415111065877674588664319165126859405821809081794688155158921571919480042689741487967497171978347600277996516243266874676908194603253353726228786912894742181000540704432594688523501713482349578438108662696091046777116220480239278219063479368280936559210506342996343530545490524851277579146522176812298259935415710256853708332252023574057011955196604829274153297081792805338252680700770546876683988742305916853654817098918368968469972783569198405290364389142741792125164390531195079731668849203837086394615449999417806314899046952813775899621623367205985101299716760692461661965660295517915290299762908976040955907221318600801521697135883292008798777264512903245813263173144144574583746204848090834718949514742858181407543668645460114217297687131861391070509733971920421472497950831795192426484337126366726009672057861603720251973892190361205947382163438514414909849611913895200491230656233303914006226611953173779065870468413400993214540951156693190250137904636989116082051921366176231893129784746616921379595964772859299934881736844048094823970042937801745057718009182287369556033649333319335575794851733082909701049228777202060628680262095512352195554902774920993243514476078550995108749319588515388095260189713765454093351092914117188981895779143718342020155655198721642782507809859051305229745923126301233248328033951435380802225163454446639154630234073391067679321760515452671600975573988461427191993360401283690640658659918636221342716097223320979245030792991513514859406152883447475014018197945600165925922354233635755584425218641635738949661395756061197972670790882885187848274154820308752840006340852777414663280809818621161429331666945245189847019214479962780851592970233562475057749985948329431373883923648794933234934117523799310481745060207385739374001445780233003914919907354531818760826304735995812932705121193035327297206571987907495043017865742399420398830363608988253557729289303418428565866229439805537029062694943799019233189109889156225155999496069783147263783210099793137638893621118669081982396063904867785564108666938687566999317256099100268143606111283437016699555559988512257113947964461034081289580476793254541635909622664191028292309510340728287516594384850382594344624616090873332413747769562121608713317952483365121012447384926067782674646857634130767355362799889112725340824850942685744709130795849044078713011293602365258303018061834576317195010119238349232926507310223364039600713667749531659024732713175215504079836452886992814289558034038530839501152852038513553375710494834094523685181959606064242525536203846399063229379158684280864953595978490000119037785664962360766737507256699466301114890474764186402630088128606511568963296284222543215365817744911811516241097251582628718110643349660850340132705443243489733234936039607018780697139086070410461921815366288774804124385670827596006103112233705486827577190448447895531344425626959854383499651673600669735108554498576957576398258917341924531707095145185628629460300038882806643001800307261435964594441816570383835359963340805707677237859442435829685383800415578479364929374692792471609854918997225523424273683461209584050664139321224137941880305533569629309909376715906771231748976453253852953105453206491745809818046054924387642846904145466333492806305612917035153741214902101784599087705820273104742464907186723239490818399745757896036515582934408997216024982265496322412575049214183419084565168108929936442953281817302828020008066408979907292767110311384627123981783849430117329589941163665846331115484168884542139687262384885224836023311658031342826401982270496377018362540403768124471101822878627808403327049848169886763406305917861412972362931970444804235993565888178250740764657897922441658168417714191121131881469313479240352631229669489698030953689699142759942325717841386019873405326267393159034946415453504034963460210923311179562210713263977712281633900838576553434634028629996805990009817590955613039820906775621648585071500424823607937470129132639321227261367049973324860758291747438882248464785350266325222010733293263018910063468085351882224970582671736177332702353070414689481515411704862296273881801050470949328373062835955469244890927654564337822745329316518948017759353103006048701039274991711961614343340167269819735913219921350418752081714994177040553239710115025924682010302615162367157209767767257184550435850125638935761234875921254071938489493419255643900398402403661071544277501160790904547217157619713792543002585181511471251563265051104078366226136328359663929036633255927862402419665902137750367356488314627792804849972752222823812151984695896039475928662814706261752640000366802407363505453656000880440144268686972866261328956648890318316265533559775048610179180752938762115382951974637579749257954640032778653534192112839843339140902046625623563759750066562713745453983457873940385154503629248376250188289410869934109931529397415028948973537680511797319093345579591756319923534186224122666239134895238343849408659253243590851278645803657128940153558246051019674263926189593136111864059507720765947641819547564477365106484265684406782244091366314217962591605078483787473299669991053896647107619645150698904973714442226890405650121003409557473619762744894156651742515633232792086138097328093356918111473108993365576838068870792851280671887084246912328363365520107015845338890593522848455540410390879053416177020724437997439460862452876820999322729241704415648413950912350725050735479382020326571300948117898622622619769051662698472793734691741183075392202999038990353389388559168448452908390490077799850094931295865997129869300059986776005183117063754548061609591583027442922833830618487069664111617453459120594994142358527829759231275918600738555515900360050356318148329631657398928602006437588334337858590721483925019723637898532798455574904860687325356020589890255757618979768248913247461362014329251379883788354935867479569845561990539285275357694845524724352362990659774851211598797196906177585534773153637289461358405764740490515092034283087905822599252905536125352570808418434521073651515005723275246707714152867187533411432844307846774246794256386835697063458751797456467568937419208442280205441054588045218162225632045814765390467163015784535400625159884500320697678941580640005680920434017929169486320987485353784145798673726509020206674206506313488836794644850124624565040144977272702322083293510805630460695586394074118451906586097671517122251048680308182708032985652603983896180366092716674925051698233861205902760536547833127938761154748142871706676409877308847807515460727300282475793065651439337272766472681939559063064710368853810237781428729307847979940865588087776335667927774655094908890859109149412984885654365978362685418419517634537018922788869012768449967550007589008368987468851363736965854154575787894194658509336204885891105248937849962933741723188733980794805163401617940044722134327730228660841386087164214308300900284792340589323323760432783082913654405982164214198974654713565745199451602483994786805176191186597277732042519519318773011798500854867938063307927118415309343635096938254429936146016249386250082870663622246841578353228572836837396936466471403995156316710371139536788396504677105617322882357739805206846224657092558810369368465999773012433148310569360723707592380911871313675869704908226712518853453373834022074849673260987032532115277821543039400587376630925462200292157242591572339589232118334971867632132048321177968687270218762237941934969250610873306473439837040790261580794671672222494314330198413345158915942859493283036320335701840064122105287337885620784513785899634449998273349238570360251013540710302217135384855548834309577285298556971816002108083206711629580135976800101385638882924511104130989178433077610709044670048461797773272587783640849286893089289754904610254303477856957905643687326039179855405446553103060519403501432024037189126095437027000094698832090028279135544257414313975703671227236623195059775806566172856838978645326632247698422204157794608979720096202563039591497414538337204358437183933587270442070377332469975347370488746191670596340712456573880302902547978891883588443631296536072927950800046854402413150521666400295672784324811929455985753732151858974758403443946393934866709991579074761007546184277118557011863064772716595832027288252054247063984520886166680295346622108903931360948183672539099682156389071066486688882583218148871094221738644617719106371246646641948463951225805258410733552206164894465699641252835119600318505752336254585852461897830850132175617303891212866888232510102256225873374849439378974892917812273658824552199995087973329093661999900874768179432793868878563139904204199976247663719920208104031227458779879528331984933739924827097605078469474396785439998036537839740055959810950159848823457341903879440225198376848048220093870270887462752592948843081544769650627353945666504777059658015295504350801127685462950065874498634873741704078369281241606670690890349745561465175336193138761655954984536140210064966647657254576245896237769562310077927004728433124265160529957731811687060083819533679713126338963847073289256468328177422594044520691113256512464986781805172050756160422485425810590734050575664482406838560141233196781420956689870091188596222795657002567347377176503002286027396420215008939771256646862427367029670792747507441241015280392733898691189425408460643996012606541211350986906898062431338568564957521419692707578010633611002087070201621789070768606224007442797571599757431420806087906169143419206255624858141093352089499123553657878254932245622250744029085077742110642625731177190153231102122731976238159414020635520278885736495721905293503822994384468208337024497450960403763948889413572019695974007003379731842869505646988678097759224697111381213388054394405731079976944740192776237184032368533498739864762277210910711522704422148927703011047241798968853743426071687883088487696223933486744201302559006909509271800586749022060036119358370924269449371674585051107788495818445533846266665657208683239587501279130041829007620606253894005787504815682143106507937386633201094878943799031768580618992447502729743987730012999430405778566320422781026827935243993848368412639228636350188243448902518217283175842467158445105887168807871706411343634900054875797923921216624185258169653517306450060223686516123448354367758134801415146567732696477710667010769704362809387325755188522139341507133790821433194328037495574778504054318101328213964475305974674703181795681394875158419066039887935886723715687918747208257223386299886666195547589562623680204693310817732676099397447573831522975216765201618674049753497781381408016426954954146891607933103539867603431760377581297322661273734689181047462976615767121460865162371298828269452919048703716140150916804776396565841157636198662829722042363632033494705632500242471591809874000566973896369440096364685420740408844663912570790203957375315171742196806649391773245961470067215588175502940166239125731676796483196426736726047109935956669264917179351924041965263272294778680912502898828298659291422001198489858755272950974557430666465719929476270565053502578295748336998247131205302063875558678928286183362081914972416949728418520425676255375538156787723658075432269540804597000829406596872709032617002142651331417029941344116586037376043038366830456037368903476970952515370155164714382917845334271931598947371281737909025814877231306519452013318717819672096212816264173117321478877753832375389190620050952596560703073388848499421449814552267679717382377513426331085183751796586083074480399891726558661325745931264538408414347846676439048322279009345164038956849964065483055761150726139713086625096402555810481352935706893404986847436755613159751403741066880288874049217670909364084764458600337160008590297603276275236418406764450658619193994256594254497733136633236657348169361990896517299863419228809104511746363433271206847071877715260161111513651102837103902033532071489608104138293987897749621780958509189796375341913522767449196851926774091083498039166462918700547598638984956840655876491726401380932260424674439636644713198336782873124896761192776239630346895425082906571842951481508296505101803094058730039289700469234139230945996863227378146933976626872632036555708144657278780361758308149272157504717883722850343390929124449940787379460897263924133762834390467038569769841624815937684719764030434479452326750485053940854056943340091262742102116508811251417109636319089731369724279717008056983893591129662996854914608871828560780717026154441539551716409381429698132863465158705990258300302763106549664492673809705189265420803025865354893742482214975811435256846369900313681476312933247052963765797106995395980873069002739250220264027719445604837788484489626156632933469089157613211308188957706004491386508422939189452620809358334858580022399859253132231421150481413886438781486468211447297417885683471436883300131147231226482210482212492739530956279986373857928106757475398272387790428414720058251099122813552239321159391030890047232532291455779549909748906615135493271965376139151663152665518896637061591789584377707880291019839586125484297746375997292108314684656048189273843387972493386716257022683632680757315439330405953489498961728220247089813908979795519270832291662142436080008025547081752517139478944078221051089396525736685378993831222205918575619735870917703188266254683421052703414595281958227857427818418381917164227720305526971084050326494580816581230783655117125312185671709924949650847334995151671555557296561634400596823479220830553686575577940200517671344919724060807663266221418455159081948414864174121905189618690163019055665641572589510599982411763607693130734672876442163832529326333467902610200122124894870653429761046711346959827210105800134005268880865884077302394371621133921023793744262966101930677748547131394770314689464429652222026343526024671035799853873874992860849136571781705632333117371370826306582422602032962390517874776665030622303779599945498033089269740543086283918370028447932988025539413903274929506122181923135338773877157924868489953057285873060674622389754056380791392883656097526219711419495964719054564889366452077623821810917411465580063940913418651904225060135321294083340180141333124095896261928205939888490177211109969579460455436434030929379021499498991076181999290799940521042806899189144709331899316720172441747746794306210051076081495283350680364198036958773728097360897160929430061203443028852788859847880644236656396465043329006204993845763260369896557678834195842971536896796269007680146199593891298910771573800300447711021402911276642938152267829464883047913746685005485497190224291045641824367739355275504574067150478466507549218254637062225258306203494257873446494682172841562357436859169050629950431278769385608122461465321923475965111007164493351064545489021290469935356342150929502685457617788948081840138836331515420505468550243973447702622651249847844058734086201021067449214528626602291307437367604680564544079182517882669201134066706010532403475855480701825213973793190801582200957286426432239806476628372361809634282263869862093948150096322664232384244250431277800488005227700579625867619431864680089449474388809055030361865315516600921650733536906525701642278527984669526732066710119481203011597903741039346924655332355130580361437322844122067467924047982349611055485108464503543492713505051778401355048231580482847039027151795415511765059457761267654415199412016804379603387309308740705407608465930489453054386528339767805544469444156912781132317431753940882405816656194213104772720650902913309852632810153831659048173131544107221606811780059613135857403703152586481037571571679205847739826924301493081886756043051530784994765158384969978853294311353038974033576991656306710418687446458937882345169896277092552755936029458459543818388633375738673496284673140239007321883653352703288791629746608991462136696027882975201363763713626119360433171909043401104570836220234125613058110729971079002453685365022117030636971206550983853655204532362332015817899265289970696889677789783437544052609309514678444787546792165394084261037800089207556858517722727348592950276657844617896578963396206653847405772523878554279040034165216137210719183121394256562062277983916675779933169309291536164741188436525597939777692669430429233128808793275091112252590489889950062790692431115006202068844900730741645528143073748525916796745968051636621573246172115211393668094237562288544306850694548159713099494756959010980613708841119601690699208637306735350735543247753978312684482933801983594049000818224810383350012778343856110884308519754456264980405672959004166061176091612558272035120699529181003958907290732047378044427892500500536626875348930730280545041055215620602536092648358186664370125054731679373982307418309744781850143448935532314191110064110766387791407995796052105297543200308374367773221849250119911696525135299353969178886246639701052802091195372480619550570476290363563347747886583452639990047145430282856570231481418819487233661637923691301489158251043652263088046155149157870212908657841895870110368165422218465687892875378262626452713669997101008174807175329878509754570250639041451244293584262411715756444295496018664085658682465503230249258359015476863075123692390137275319346310956660171792968090128771482316638026396052395897030233738717508920005085237329892638724279455255982769212581005251046143619157135682135288832042593797625009452833841476696458105647596806440095177474174069091358575484256998338244928494098937294565234181798263131559019492825862363892263523392069050451794829339271876227382376644679580589567781747357587394656653873532362390138939355171317120046485329602857196583181749870921578555762746241889236817487223246144475108156196736182093219823809767987152356211666775796490981305242379736671236116810376851255351408619597736629025552774469888247268791718604763769601230959973035002808283854317045444086957489376010464500462810844422196957627940631476559989210177449262060567560372454402658284242709657990115129039547329479403803151239349433140292262721538185822284238257748777096309135822627945930495160495881470316397630767133782681611784024467934305997439728012442609868405309353768882494798101539353168717840212116952702546006914369679658203621791892651767348207684093944955006173913759436381732028827677523411875309727806764313545653489520634360342201716868741381458804210474325129304994464386487609099284146175916764607477629471937904128188143775282144139479990682125179211394443044348374022588389872184170007482020103406477522164765186247694630273371889726992154149211530420283625389082875025553548383422853478749624515864320654611767266627071936792738818857940822273547283217108303859442154034941561021341333773578114554680419072996180178303828159654465405237757961412681258250475550655198919166467304659178715539752128212250288359566829457323115192659708035241871367851020243478336457322229478301003954274350704120304001059772694926868072213282365115129985587101709676233315112472802485734968495444964365126727184543572270904695232140203174878094376917207739541363526707521530151806243084995715338034725106634667602745566217163923912930867972970866389681131807560033852648290139657218178957072297377017071871755917567587140208786377056756446515261136438524468467363924320131761864651011941302215432351593703832228810502765805302346815375046524004708724424497469230614436966725646190942408212068332505864806992996450996788732578772813589453503476977899153072146315976257700080977868803958386927668197384382614792580354369230937659840748186091595886599137620072325074969267854038763912162457512412451125438820557624631688467962327500515968880933019440834675290563084644864476230812065491300232871818260776558520425651451534554307313477240022069958607499747623539787947477833918861757004017510855543415241587801404965351431922439993079414853222425826390553508645281569471409640165785377483013561166271360738205722822967195186240924523139862297931318816896648464633903448137217440250580461651753165676653872535173963526893806321610520709079239457285010760097178019989476134041545974348877709108248218597141692821507122542850986366487767605802886384769925433355449783186244546611458229025445120323949514224059236025766196269091230778474885273148446704127720312941373548300544046356660923432579392828540463846460021294671732350137089151013095952928203482838749474743092633374162411123507521507510422327781939826592984139913237370983257975237410139329600435332230447258278935184029248714946539306233174927722207117944337491516072074431432171583051722131859873567117459475835751573224785293344284693807686395754211110683238891597552213327200539094377860803480673666130963059335317687311971508015362064092832286898704014452171296065344717542270053093890713392706376398740142118464195045649710641071913881587195069801962237590839871721325835859292177740207919555508096354775298664337741648701666517854942744629276806567443803313049003208934310779914212919873732399916225696894697156088224700332014112559389072672390573897430432895692604652024641160405025928941765925180923514411879971298502329936979253634754068305468109260705965156300264023992641675501314639324178131044709372222340561524526426087737909478863031450168972285042393978357035844081330463152471621273885324114978085746825765965737004790884971994704048061353976834242953795885915396699755589107817426397098011894145965051748354921716972126177491522310979527819666491912402419697903496956147433641676067001161776299301764933214222603477015632676489381250873582725337493936242884076654637424932696194233424977872025724958724056885197904000385742834677984873466174325475259061233897763140067182415998158184210456741887965351857009701244380076665182738836285081819412599601248136255461409009527410391880625022314749814085571484895372459820418402619279675775857376535305060151401090306842405865341066399516238911066051422850279972332143266767412141327456012894804311913195128783568306140559227290057411127866266593775330443267258687241753992525509966773347093690959409672202621701720279923204484248715379671417879977790727871353421631636263897094979832685841661997991549443924824251355018732491356050120936954928897585944020197150345450736766438354302755342375931586718686094689313695854728186734457593401317679564563738898212228743256378139232104107656032464724295824436130035497466577047808252848954210652082051162445672960828887631930430453898359521884178950797081994172701859447688678570386014288048522512868912570073562909552253245143646817928306246385647450106674282214733281527027037578152023941972894143865442960001177919968000621111990097410628929003962317556212895264607911336665722093728382206784014968831687138631141890143515224801525036975523334871451004650335835897159472999652298114889350382047386996200464917601996551566964883397077541292913883087564716307947765835650184759920725752690984688794788997055050362404234428395341319210911602776327725365765205127397775485059652826200819135490651327540343504460765297977370351869309162015974911244812642370608123635047520849202781545184449000015382281465877280763970316526489949252568112474413499742809814552940858345635943583906704015949961139188578185300560883987610205730013437337645583069431966647568767671993606207760731494261301608505525050673112863922507657388014142655588553245061023421376277586307371558010756163209632943645483624313089387180607366458714719301146390706484620564415756584522460984938920515566357873667270432889577042342680739957447370456851563486896118906726411264385491994538323098125787954691957585371618621180020725905618196192676790276406721460272956710098354653856990256360499243243522253778055395229781995170808343453467675527392296257245650306958174212902514423858766743972626302282126925896941276319633572062349693567446225272612767823560897413785523388265631165382868754627896080842807432323940269669035017048117431558435009067880869393547549430092007490431865951764329795446258922083385941694902490653310015463791791617738837556255010946210253483916411230773532106061502723692261966717194662644632676815148271637493656869240908342596444540078912881363892155611583589436861531689474372862198153135207587080526516723253461587484437138532881744002671561461340046160344881048417895963016905706882228718215849883136687040002608628176340101326599994383258138993353536360548805025214246573498759464374561719393647401604486065131730560895095183521106661694563649544510198379220490348164114149499537927368797080875679277223120290485922345173572441576096909834821004458934148668647448585486190519773589712667938304381494620312218828983165006351444224429019805291130119844996958165102530958876659573255671198010384111725106798068878365249465947558466953866766385817418144068547087972798537053384849700417486845449598120861396365990217628635259500386742898272044889772863697645944866879142187920165624038267976822127817462239696817035924738117398310089370428473375683615042972032112191639107135641575137028804687115299329744394118341152643545612387049034461185404960195640204172916579082607794828218929666589638029577166225993215619376281632761639202082358576415870227157771338026719627759971965408001624196850213670870544786911930747517584548895569923769991714178498656502822655595558092360478041148865425944076600098743172854550261947965951760192520396361371002498671441211591723242652707697643163208290288027127618563651636027888267735337080863006604171447945140959660205790556969642675630541038246934117781581159958611410682305574697995614460432872195501979831287842767032237109411761139160772779240647493556600109348561829135608788347386432330374686355113704579753418914729340572955646813597272999320783834563120663621170172603836579501929445517811580670180902751725900047141199572383965949964222248652277906959845505590022762402358893287616045950747330926066586058242097740662032263887050258708501260870093629548238548194081159642815274794639667549774260476964617057603449682856823878140163466472762400199548671446779366696472014126943352656158151101784273301136308944232815151588615365423513009390916911880180970012715964653735007411978658589085406799104046035149293106581583215100335472518882295085330299207750150652623958544737050758540674087593553040668836935676383091990369858856088355047586235562597984581028550606564933517306387800313948584921817947822032980914295767771728148431158817087203903028264530332134799765689263839653876371166661427000933244293100032518694397612570850758983909216038527391087335998338862354166276392510016103224774182310757898298910193384803515551499581208871759024832169720081611797045855647330231749396383334861835205464879292271974331303988760039033569710299254132947499311294918446829968002136426785287679141664009073394321890749892445493008238003664506642389018283089197831064190362813016705961782274225522012830285824125247068433914215952039081757905118295418357737822031757336083379589318163430811465539214608671852908841457213799382449024828590413565768562862360705792137717344224686518791869975247976616673675472860578313472329557880820710667500376636849495468219441210031731728197706659930309874920988640320303524545633157407134076591806187836376922487664470179021195282321226806010558021193610003115219212821061056369856694234723059366947077671212966170142435052302207297843033723586552782308007058695714666827164117621720120840250978420823151431079758243983986405299303781875280795139510097339793085557423268578556800733222796516397891179406862344652194054006498897707890071640042342565441306569400557759544499607913770436468769528382111525970610096171163881878803255862608033044448194630867678230337613493226103807414522838224427968650876144053310225496288888204219273131678747712288497315360828467060485565070337238648493235784210510540226924057777728960043784035794702176618171313150720393913393919467245613161208601695076984905296457463090951589367537662837905136920233101934952713366614878337731064840646860852524608392459808943730498332369509520601153370253334276766545769437549152969358893162282786924507467195613952537167303174324063920751186167945204209124496124909346310133282808044964259979337264392817628730739289018282231460828636954495775764134358933648792741680992510686127576978640119748593249282808360125491214315266554342201084774787830472488780565964684624286760506809606922793006290590752709720565390012782114620196630659566350128003950075894942089837132452752653946372341921422512066517292583774928547771367687367442775613069315105174215001619189986609031010191843492763905367540740760091594743320262834332719508958300116778297064628057895868418329003054816619411073813139526167399243645822171478958028652134097392863807096382323316798583400450733758373546451042363239579228133333577948614783089977074047639106575972639283177568454281535566810758180181885045290956248738235155426117412902715837687641372809491972539267719774861304944388351030880727036760626665176764043873273496339771895569143180893758072592884182029497526673874942359400921122927189201862828992231871930133653992030077125739302173732936076379107995943602788843741936470281766252679877419374586184255507498735553855652141723827495355876483158042180084327650576966357288059901167086749383586301849625955709353012416509028318151708332437026919558341091859959709434409212583214859156019232989802791489853523399746862903768540199184205043750579289027199901850214620956041171989314332273317604990809852609331954597078455266184102412309092074744336693589781057975713480813127991776493033561782174774221774897374830988953114470925413672141476177065554334271714368528578357650999878843228612583392976382427290288411211604754532411560546033600278976406754423998897315506986359744054799610932200601848543831011459562516884613491118433150568124806253361975793869025209318690250150573885274413282489692407610800801167794494257785719155355899913381338968697637438355207788560117663289818077396983442553974164751255007801637785257612855794355212021563511255505418242128234980564861361375251860700911260444686598193367024623977464408004706411835049464537066994928966910689327694748920642569029394331319738561300803044137549315793679890819784941132948370837679292952485984188002185405410334730109575693236369126196937853634263123423281483450809865353093817882052560730709642607607728568507981189984507855988172365387129969977048241041197656552359118839679443384953573320718712891780105044782696219541612174703882137212264289731733100523438794981990887808114737331468820332633028030648199863305986552996153118950468246416235948411938042192398425654121568371706349064063271748855016025513282447368471477484496485233652998874163395303536277129085566336965067103802884876391404136060680789052518688055268286582776303365980006034394611586673543967739620178108853866410297615408582423608644610117543463640529364056345975007625854087493753063576133622399515559359935366552273796257753420021986714721348949478904326020185211658058936713356769659238469017660764963709899810897969441306327918796159669634151644513885114896766163085911579800204390981330648320038731687658464720423633138082050766591496705266155641780561512939163443373802869935416997071402681810812794103582277069133954469130628129575088162767305917202854655756713300486370256773994252395206656758014866863401834116399178938729525599923250245526287525919684146492574175429647768137743976285987484975096257250079781698944815791537334505503618745097178046031649720656234749152535192714559721000484821952530871955969046630166906640777440389328032257111404904216816943907606778742202232870332582582247636680267492623265479927608038631255788508933733045686029386876714317744896456149774715262917219160965458276612205337709082323477300116422250126043872513741810201587330243342976267973253030108366576347581778631705014493839227893133444290026499162937517229410189898975360516121039685519505585961123941440417067014721724804332999211639297479539997209606292428950671969583806018094799327562269974874046060065526642418337599821238967289633110047319192909787587257615539622745917533781550712848463956312836766868938929497652600699286651759130185671275094288491897172468765808616333349306237512708458854848343314202051495704333809936250053901765918912924039964778732378552616504941629530191640152826284092849109701711891421299428188363281255834135915108075381817383204380038884761996184390545641752656068118516405215888820057611618177794057154239603536372637109066541600654978898960020928957528274942647572514710016362439653303699080152632466701701893718345542586655888104132065844658621136848405056534710824433096213527278482641164901219999942092817781920889924224632722311143513587972827555355399169276998971158653488524983893101838049132435992532844215120727345175843609025362206121851668682893801171837745466438139683473395606385483096937153797756251280618147646384965027775678524945259708085549700602859374068952374716960918139976740339164029784754051071110942854932839415020377727867312655847132518287037061097266853348690638591130791542421370388610653427922470538129266498094474799206005070650836226704714332605962503854583314494553320254970105428910897327293140395124198972810172095241670561767903577142382117191937060882456187923100136255222419165147107089538502214819048820251004292287280150426174414570318333081739817896902140305356456867199977193362309583726090089600441215229180912962944708874575134302604318273291033194140102581236485301686260593585443603884263492024407530223520635182146170768548456721953173457061596742691479500037941071270022605806049700238614252070016110287367177340796376884912546494186118888833651395013870305564296984911513152074668706588197669942739383130909309326001634037545259850459090271424579061612673514085085398954248669021128572193089500882136537940619051915562518460073600700129885803738195780924378201120625634615302308825109498226577892658506245474175253520461691631513138673922381938352761635978568010130562685037408228855749913069529593964538303120052790103369819423420346320157267833067281558837467323604589092435000524735527425592882501973130600448466411411397723659774858390810922089821636375381923803493256866956299668649343636390495605033726379934827408950230778894838185380045832454145704165654027038237032740372975407538669632143686841797832920571315358480442627610160827656689384771793149289092293845248510104218698514095727780226595569345664762514757366399070943240299174918333175516544266323060595571691894140348896187198265078799230485312676589665203472027770911833845892673479952332620157162083539745902006188789234978826034477241188652047115110160319517046020802793818733324333929509200467748405871312244757072544263566417359454632753316646745253181430655711505344139648152146325407674981378252434530291905495356108371438400765381308674448140890832631292374083279067680247382202655784664940195930131832889557068578300007320678407177585488730050609434612921305618687343371072341122624395319485620816246931913505648801682135963522870028349974660352857659451882949756864862068193617495628089596110039395125211892760535322066426332405487900384486489265179594538899794512613531641798400904658568191929713141256374526341137716516949182337880517605579875844819084040126338898190312144453819631254354781422713718795519514775684707239593663400803252824360381124829084121335279150066451336913862835847303188806527261573481873750381737942850156583595499350979679791977430079457985424354591802169334079210957780025169426851696441550273935361523763201203467087790166043506236454430327595218408991686445516969862104729655577426974115681159044057945257197630896556942099036473734084398219808968460307441721436477761454617524432486299096678296171982334671532496051860703974736324376754421590628038785882086082736440771611453615136664488408841812904131654629330428589728332146243535994665803635538328723375631471997384441396083550281958577051437112309934406270913572481293831194578265943439288982352028825178336598111347764124484498010683625811922044770585443830550675644319266266516808142044918029806293589584639726781412713096918357031396031558177854258309655795784185580251737664781507568605548020894628476181585245243575356901725675617538140773259626474188825089212456825870228347148924752367706144128642420727407673240516880134138807256294688300106706725253784428497643771865880107243734298333715403717907905162860229679632961210511120906839086063227602515089940550150051559593770932481277393882531154557763961554092510532940709224635624428830528485883107782551847201861946057421120192111704392941281127379625267230959206961340981268525628995666761010496061004743982186469221338723882401281693852701594642089908292635397132270435486939485504659451923873803871572057984302871559606104816134172742321434531925671233051073022763285333651919369084625544763891946126483188022108482119971287177322300837897460033043351743972172656708243303156924737312629573152002966228504424831954837728935279988715343839298189336619644970565866876794829269713942822440279727328403920136804515014002814328634936845189035635755601106750144900074880670375746093139295064766597830487372743272573568711248713947883161644274516059540120583237054448122332856503140848138846311577882548009916990231038294788191363380864231947997589402734344949607777496866582337579608732302576440124744041171358719456697051416450646001310289449231413400769419586006681716154523671159068441800825160933476748390347392091993557072686485885938210008352748576425627517746329443432763320696067267382270776596023527401230001075409254406301151472238455808652498616740900299205926443662855562759825244181809414977389677872918281660583385658000826685898581981104516115810171385868108393973751378058861313381163001602224151954383577167564970385470936606862764795452878187448969134336754311972385851502123817120864960825634707220451421485046885773255004310616351979460634217624337443203230830441129448033947645040082300049271278127865138429507166193961339343529075880323858509341370816924750381573016946456220471118861044832767580448507912050136470644602793202090488071517245882188078822941841736231721977904492517530878312402246862355893548726451575314217844940272497446432924087422387087373958431778002807214486087107075185620325393951328856347937554335215217640926460892939316258921456519375806020698167248776614671251529816533570498065895840111604539878345081188601431819456425496606768318178152577759199589082142943373483922890809285602732762383896385413615822140115325858427675936747964174537853796205477001067927222584374112192457126843538068231042623487667185448868035503715031784232027091194006294434004361025846876455816737789048598762212660786957596988862309023996727123514083474973817965038908873306027327000311046499169857110373180159655819327615429651873797465375149733324663547006992794135510901782368831662918140734964337095417556332357090553088508755379883943227152137335782461050512122267831127417277946369844197224642634067821751301020667507244902338902218735460115503779041801576483094844540631508548961184935823871491775012433689381970780631505041719541650407145505658902484268447396902975297791468525458254704320501680927477014201292963923036360033214228481524314807792519228116848360773362745388478022659681841691354466456217456701035756420831548393842588873460892401494776367470029576753292224127493115592579149346295613875764207371419494003218057781310022503423869900311418542159260024133476372020510166902511526093414776723237745054657148337074443669265947423801998417074600363050717571030047918003087277630093937418055638905171817393676948670032710147867211088910467067385802188601106889160046488109518221047321603719379859626380843244211697799055111935040977011428724567834667883555572185529905958517111158523126947107769559862710366355101902651273445748568572119837762907077190128036856283162141470561739553119265056986053481887261771746492901329992120354545630427922047827500711489127908768033004828088011007943542828888733989661536973382655070068738419606992888346113699596294833822212367529616740789110052330124997248382079281077808607135381357527377160867603287054336407369594714456388942395143460730296042525144696315870697648380929894752705180815305778886595983286108498142151080581914517991049731843758239788481231748798803356855702287632358304742964486685186050624495866575115927573782021579265878405817749277086667451706029223518709831242330871348715566953402688940556660745650693579724922514900231060580931842110185171901174145896427997712852408538746062071041037307067579783655246012750869942603309177998285526251637082165844327093243141543089105973942355031674083442565953769320055952089599111603619199578637918757415652490516884312514414025582628663613502120553439565492716008155159845332593691506149977661570337322777806055466905619805198135728852034905057681458753931612579321989669028347168865153140137463315904204949862423260841227200412240946475935259774520655565352211131980697730604758899315689965334633454386162674943909915384891602091615352714392408534312210865224520567466011587091610121774421491687371922962468445527566591340775792118132408378128498098852951579776786938548958237204748049130461052606046130664302999974211258258595355071630205045315828213854075261753268371585902541248648062436352752435547618878745543803186924690105525156846318015862021069775042511923748825376988953433834482328000136612023233756788716008397634956105205443493421911960379374287819013885753384278822839569863346295980654837261233643481781846049907115108467565775779852794429399617683475036432477160158418192826007147470639682142542224963572133736907996928725650898046363791591631122265679970336227895594970707343356735874688627674062192859949346616046022389480677191510430466163973245044097603234031544097245038761276712397192995387080648297285237235532724100280330000555687449745177306230613809225193442567247924685489946957667804948183036159871836244442716500881641487453299145472104240294949242831090349095701045333969646501249130920208348197610198170465099403496714073048525948302294313765484025641051802900692952737065457799372603969329327664494213292181884720131008708517176831213294959065248633939045450679197692039585660626604098500610277407479277871648788527479334539955508001944413683459246930553507514186909860906095132534435599048376052565040410439448395026898017663758257757946402341790705470334336042286763307395747194834415826469980241377872524011755299537306578338546404923059236177219889819904233155356118115306095026255188056086548076967635372290448025788237094602667178007117941074369897954376274132868282879391683239870916349984996759292629699667177274302479637451168822775098898924729430378540341562098936208992830291238144269112807170047226698800182296651780566342895250499440893118577415883062805059932611793765157930059674013011691189916064337570193831481336728739795255068171928301347291756484879085629140677554295778502961438607933215962482965042920129803748776940830909956596220113560730106886027450474573190734698303620658378121691707119374639708622569438370594140023545181321853086176583988787533839669623339612844203138406320705976296704624864059462222659025269886211415376775901848417586443468858556002307569528519696731910061315940200796880629937614723084171529297712827222282055974342337409793776905688609732674752885790660800501898126394100999655927416803347850913303713004421490473110208647025363823168638149218431742188036433207809703865528923144830932373747825703974477093538416429802821454071428310906791912780244239316467750408958664711847882799474593727670563519914812464021622317679908649868241562918632755083322177039033480831634213862529497792050067387521453097489218376659841561838673331895286023340574796157341708940835479646112102170050224407340518299134114246118839608926138034211920250672114267477900331196334860497865312008043273950162487528267812814375559022492776817896012302869763276585153926687354162359176008219842584079094642739014862695027421607310455042428094475199396079892369821396501294914962356237789649642162009754652094872413393567905099708152214270570367224747184615836016878120483537620702893299906891044643853383689151989480538605343472366149153508343193942705485355128267877647287283176009224667975803856583565199706809198817410006913389466224357323647060500862518251183429097901970390669742151796929785687394513279348883834519784686805475698723729871262363645702403545562605759994835363574932394311376730490071171593909919296408507189778419461436027592025986444611605606900589072633869579398784419794154073922020712140975862090073522820672369502472382137111905421503222541196974595185960866982378957493547997448474883947266151094598178935091746594983913865904664774911168473898473427433642727705438976223072391442763436054899832827547049494958694430414705316552510288639880544064840336146081379427517093232804845329430503131003628598315380611284486904586868508083133812915797201095251346581377453372954472258204280976229197275271078093439754217442123434120218167027918244328042699827454965159167496321171516156144674862200278998260315069376454925283402189299930963293042534741298501109999632303750899786955976229995984986547988065935000780830770545950081076032205942402271070016400072141425960011807113519738750184189968140172744460761117755444117844431107768712137232653798338860528209597703628570523307578587700964688670369910724480808458224154206633290309171758624688469105089766768664695048129718134630430486030877969323739829744238150250696989470064487213731437319178888081788443543097745885047824867077922456463635851206940873064682921714873316230593369255110306202850426036335899075495965548463146267266470852731970694678639818982270623999229546923273611756357921977321783229954468260632655592295145356620833803646623917568985050930021144014704233577057857500607604400643630096451963235727623166225100516741155140942537020687558173115360948411024638508414177647469560472866278752184398011922461399434113367891505240752343050728571446262117003946237771050385135501076793100235641431918591572289205478033039084551000474447254952486258530294469250738373762712730612703656797682591613720416316114940505111412296686400447537605826165007252889730930768354188187417209224355486934462270190057443118871315617858804483537278079742428983773351183070670758971989655491334234893618276191251739473834521326024306302481110641902087180450545056933958269469993449119732225392759215845507228929169094336282432665072116308836865208556871110800807307477093554227080665597918626922435400020986498306314911982081225277266159065876039060311513805068880865368902081609195216773598662638984877420804270236529208637951505739170513335466406107465260276628009305740753665704379927205558567345901136618547648612519954415785233063377552393365836816147979480868901931007371623547886252600887636956065140687347813625876205843476382232363565889793872023098389590297737478273651918015624774969702645814511511498745303596802075936985739370405216021392688130853943058364446704169548441852525134189831342528419302758797140588320215690768962837584801228010821702999199799908755830896759900452944299541715445610147909328164669616941657044750370496626149257831465218408192204659180498777816091143571467576453988027778489486986142560184494499088831195751225223227531067710242727292723951743202373082500312588672583527495854376082784564757648525469981175429984063678432027004056124283513517804178721459023192875147315695810293655934954491636265220206475767087321211557441647635705139842958263448147535452927679118672787449714954014102269023118534178033443720275538333633921703036815358721827541135577583472194289624402372390587520187320579845923733669914401535244186043534130497146931038434275060028145331896530169307616342652680072102487195825793192123347701784814721724063287908261981029386820259789396290794125570378351306339969364316604299768351134499179459193184444077617904699167482823108832858904723685156813051909998004581706874345173270183008537080621753452478656615747152622163477944941877017898565796902388677580841561270839705760038583990719021839820116181810610656172926590273738590884154433462947854210786907836518723414362778337568709542121328329407641968093920839705046012559315294479644023152887276385302193915865735351958363509460252903373001637598470842736540721474533921053354874033193680958066385544888998871520599487399500473435544705534241790056693578318422929676591618372677723562535315105486262396379067687768268536708253884668440100850710652887061791240163116143563680700943557562921042241739976545352691107934466146347192822976553735263391484188336446304354562282156675259523242518487922280514865229989030297727244015764990101652887511207009787701943758578535531818194240832787952576654394277654141491366216955949512595456897477701382472674565181371704211050542967843064701022157992722635401209350025965301188588842216060381475131208322130408824060793958513664149558651100850960087971359545103419701506737375285874528865816723771767958190382902201757291463383964505411069942288790973692356374271956298137873287825134388196153530496987960617105452823996851311948128005907220378339566634987737137893905199410656814636809219975889684279166167014154015686013059452967793420602233684808675265701638339389760432534040137023854869367938040084180249577961372780091496082811603872844250316192518176155864792469463299501316997852656064536054300109158866413005600304728181693080413367202040802126472572172365686016245576201313313906608986868766310081967852950452713814469211655133250101827853260002768727385451962222484552637101788552271032693868300813623296107352090766967294015049327114338406669677614618558822552288970411066868354404253185581935781629379242570367754895558100143258549440810914792501707292171779915649566901260567059239085924748688018641251751885152014013865483468892028031603023755291491231333936297394994993295398154468382688984611232661871848693947018851878989980155711062112763469774629278053388972160194544047189385659792759331280146370931765342683473061194137310408599589849113058839676963644254138694914051999296459308982524985828017742676238006512199946305798943157338481994672421759638325607392481348306397485136657071194353215426237225493813924111932820053081259038292753537069897269662320386882804923324593910431293946213238682870376060676816834666051492118519480456109215148024309615246471705887948729283246172084803637085646562515677172368836426895462078546518006168787313837871604979137865189077945894751278348025969371629099075944496359141242440212268947448423600069172715003368939907173579361291312555694196598644789532994977479473590941572744330033053154189248457765742437619635510730111430550481054236008495410866649562851901412987227161601143399380903383196828059108521119316257901497172397645244473081218866244659834459166416742716013139025664153739542904463335066485061557318105074822652896281802400963933507503602261142045326475532702683938751047632569635227531292688822889215910202621485508593354329446122422001931560292500706350500796757064767872264559926158009171587318848653244436289585613391585471884146487751846924622733721887382339408791898887062784713564139085632739409024217365522031971181655170063407442268212860214483774938155099177274538655358265943530453637607688982913589632828841186444769891387258115151882316724662890514039586177961395120869129613625436753267625647413930957943564856286860150443752344491515851933485803180622212073230176080837777145693350636121781141144018799958782773735351713673294716113665028900860857850005061604013000780501423767276616584853845794120823296236007030827259750374268507595484747766968819891491464129660906234317454517642146760965820441006050234005884375972615827832587412560375140061997007389527915602546075727047171430073768788587153604378719324017745047475580806068215590020943603798501073865748908049262947073343368413040554036268133205532499708544469289024588438366524444395420450601123378732766241676110314275928112299110147296037673271587967084337617985558223211376938591543980987847741544262526555221671040564264918332293196213813351417382647771404042243597287627266842712860039501227160638318096663563065206140989465102929563646237731430576971807922361448880265855636552115074578014695617479128057655882412510752171686743829009374391251417163427243625890181486620474941212532382693302726017254542850872620251854988811579384781654337482940828089455966420937997141701525068511907858138003505784299804241397224827607615514485897764539709708192954056252430642505342262224215604624864186420642810204374418164717206598431476308290783339893040450761575112220716063781623238807951562670598240224127534095708648028728111314817941931542720748139467677985233156649258340418807702263537848521102770778272543621861469945401863255331917910266411180561968569033617523297906069638493445107687104947405700268782174996115103219641710635993889037614707793417667004487932823904781848115721252929741911511818956926430818256198517049548930752854030631078633097697474245440314392456992418743598945672673593483026126129200788505495512642520555808260370028663217681798556168565049402410196952430516374814379772161597614185751440555802267053456534383459134004610815408180794972817216128643867759447900400702874242269077899151846223120152544724970671872138917915560178558590272238902675774246160739442476102183210362830859030096469639018083347328151338541106058110426590415054011205210674928997312993696266694371720068508334735465784126518648136286896949771307134340359708295012370350569294377903665701974728871190324387654001318273094445192261809162250248791598714180424448608667421151806071324417560809590577991836763918753429243769067957492171989196898348849522510702147775597126959699037975024107539775501323169495874624297755554891116079576484626689308179893135507867211023458466236611899547634544324051088775984475374916859662147797744243843686223935350289685291447182249241486532470218512822484192496229584150082915522990532711121646510203373300029354058466140906398453750527537097136448113770512797996512782919360006931796538143404584001548492177052795664598875450515289243675185163325622993578632192039474222651105505223055051394014163573696267810511751464591091647613774779214711502354318724720505425923431459096996768557325383881388728719744160896713910836810205308542421902695301629386635325159492795462390506902841479062222619770858937917328202214554930660180557399871899188389800848628227385746821031023328863502434125593802642689064944410335188997384089108292306809348589431694533035018776203532903728810753825970193147246791880206134303288062399624216298420240324207865644227319494709955078357555908003069688053184060407326002246484088231575967913060008714097959604964096163737736880961231026247364542331385889021223721958765452569933646002916992191551079516394609781909586973282296509007815067843441436650010884851692826795145058905846840690165477925314708264413878571963947401715360613734903106542716800050621621484522973321027830661544249380619863432052494161195800294219689013952326145347707014811120567816549843007691903363866088480990615392134427245059881161708118331732511757029660220370369284242032899753598999904021852923424596968668271439097230472631991724698712877680558308946841566516819487408562902005783136735022830759974861927028448008616272211914882100355762410186526913329262001780445034460154681581305513746002457284829900630754679892589226520251356393525187871297276231602897126415819256815834672945879580513181064678914913273888268358245898424608141239371766405287138118964232686263893076089394860617915472070831740394965030679939968445447206132500983339135104241313782651370849090872647663324823351164345454792236014815019812170206792657391336656835129367045593264930319735224548973179465174017492863281847438854557163390061912057321758680856400077692483849090863771055427646215545270291207079529722919810529338190458175616443345342064937461966198135973834095358151091055226786168195215799770318425562149458530821200191877303787067201544897950972867699071021446029144477633156418106483667460467999862536449069528182800334527609759094916656464662215136990404070506822269095860048697352604501701386462026804791290699488577820178508968425523642543535900279908559422951897540338018381702540638372586843676675136250109946504609018951840497772974279260225000952488510128170974991859682616441774939616317391666232692494583230194935272410608450036272857947773838824869786698988626553221209660149637869777805310519698991603411761501741631833863771548996327209115769113817363156924618092177569789026661639846770709732843502706266227372574327020714490352535529756955684076749674859968256383340984993106727169631066228493431630170645735785349814968707256409768406907652749521828721664645516811691032428783362780165821083028396853838173327138714184768925810199702110531386814957329542209789392998964021014848373861349873557567581636742900218744969867642605438535653967276831805491280269221986817657461960688932506169368634690030797572768473080677679787064385772673932745189575757260649715131786409237680981376468382856376688387969554684112845184064462411122890613756957350687447865109229818461364786320907492694671535254495349109522534152538853036794808050147570030061208260463841437453838917664719892555059023854342968834658624730231875718087557709290610054168253320254101120308957440094994337161810555299720434513156084482741410226696290945020988912356358515287944897844799416645364707908250710464570861597635579997080406453061915549803293451530901426660988407118923985805300760740039956701026491264635521340210111722405280037304442173136101821427853785345192664786040101700137660149646604592128700140763410065288220784324819681966475514984173050133358732396806141860267947916133803669028115082227946328921715907762156401536476305153290045288424987833106563840746601024537605894495143766091217764933422480009803305895170297392556793882705046061338084419176710378034085933482680923849329948810164371831519352682441818148265072601477786662016513808954097489834637534823628555482935723735392955670919917708337354441159206195714367450059096522477178115542174088785152348116088321105493389033037449920569922319721233341492525420803501412155586166439970432272908005290539097735469393421148203974540122995099622799973947496275216560440006984377513270985069343964279688926356511066118312899270574965007455396224737413285689580169703688452865106623922987559585863792250727056056880178185601724813300194517359060944409160145815536127210364796060580182424253877956636074535082921240905815642805550327847271374043200214133162356812973492235092283169961625083047142831679277196552383958470196589421645797460363071463544519990235051578549322913415622961383981510263402933019739265385584808923331910974178592977852612508641600927608691776297528518493106731772324441186936039460495436984809171489818474404105780526402538207787602228204209328922364005903819691558535100672125091735932215427860735807477496310101524592312371883278739972812937671508852130389526381663789213854581221384362235004598755560794318573232461593240379096899810907457350026927062911940721549482208160992363170336438003571917326094678354119733810261075644987861001608155301278048869287697082354416137168962460672503459572308668564688291054900088009569955280369765742831521503960508838577164693294996442656456132004876789471223358827957705954577716316237362243568005557209927430338518186037630073910690557966126607914409987853433664547931217357722581932858020720988591875408027688898619659194362372739696211664127452916257674973879077521773428862684034067396369582094032687192213353953534893315938079516610799404144343005511292344496659190275989579012292144315263102899674717444661970061286933150526389505172497890143280809881463605660286016242941081446605254877287021252455680979958661697021690866790157204167486672362900875427405262198071783258188079521535072000020620824245218254471376447013404578926980594722601491038594246651114431287969300179401453625979950657503169238616833458480905232113182679906259270653353115604722804138306374491077252029404455284627489780242956481863071491754060365088180840960894115529143774078483863877463693800822485195833705005893729486520563043687001985671369500099485710464300971695490602281295945979927796247213396794375904639315988382343395404575679656012961518780907357541607987984127823405996969970525736110986757231681829490072237994028304069680535508506477196060497948159232186830687550702055260768731073987398992710516517355643838904223200051814687725273586662008141544330324067161967080300967718315281717329129713727237757837167377771730981083021590189815681646656383001440330505980645855394120746751855245540956238043972499342821034665269634980101519703754066709024738124357670251001614278484310641853999404043530575935366023415356928969844289368083668283389232285345818938417544582985964472201665533445055951696141287179740074341704279210102652360555397757587694353375653557076415374037527598545245706822359104821186958009320385583452231819153027592871284168680227328083484415987749636618330918407293016300117377179795764858644180703546415907215496743342067391772529609727140157217216963855166929432321251312672801939196142220679251863307479941596110094166166640105021003739050383922675070514802596837289513122824164918666926963273799448987872383995585438360178688390301955158822473263168840667557745029042432648839438457800276163563094181185768676359894703646089367589781229620821864093137678679769264922984761639142491052511509819188239369737619099156147350623207981546768191647118078155779188183413308946970999099654129021998147767950772512483490801087608635962224848389770422154609336526845118342578576160040867298493478606758669723359213503216347902955462143735440529939825235818566244787668005056429499481430072753397273675956008889058213245904876520666633816022651906680344068534386763321612794945009450018237843618559994576895793601583230652695442280978883458298916049356746812337074267948097176241058846904573459049223401280069868220403714084279952369574939161032314848414077808721697763219574900017545038602130474779101023917527616849663979593685189814953054506170334434014788904193862686951767739420125799061894683221252614626357450138305434358910259150738205865016589900211998056912068885622954477758969904447070268901314817361110833763196918042817127994974949359366196870253790146327034286550017016725418143846366719607329103484321607456041128273591974037642522023121945888739952008807590353982812695885386035669364701616267331028077397500469031576490379532238582003888394422647126904032994501091509260778437591322532761924258210986827905300923516196606096455764058688086017282549495026875396482809711729259136322514843163980809005482929166842382196320584053728122749500795950339155785629022677575597660896614203637856218787904927354651326652493412859465027983725717794724190478559216549925503329231259350921216737348829522228826485697910665380743852329241214720809303347600487986667966145510459522691416452188287949870826704293079565609340930680564126518644091220437147343471189047976511789325445365123443010450835428920995261672050482943202593429748190360676216764577171569148179210845722887657684488261194479956761401739990936843475872089238021534066585907579244850209142835636785094478278030409034774342616089512107209631052876459009406598678717285919375886314316084136218032544953794644743939895725651591153748277718672091991725520702460889430897506579737339521088289891917423783822281339229567163802706040032653813746909182508674113423895778108330753378789657493229132031124629536958104290385331051142865720143706495877609939877024827941489158903631748978038172958866455338095019558135729291286621914652849941765152974764638579574862765455120536181581989881263855034224047380571374437310403968253009793228418624434249202451362374080335462005917642121602862998430324975002594348861463466972477598407352299499666528091991165267744101573542714994277359088489661607600615244877214368026080681837586249607408076593686642565630586136738560278842511369598332031565855741606718232670318928686333382751384374983159077740449208222669150873747729279101928085078273827258485967533668206977899966898961130779983024006794332085534814757283871987222516633779243266237371584562450058964933249872128716347766755456280433219867021515149779461482251480957530210053152177147567511763042909192496959675093231983816870034590841474886106751193570457127262187157143876149897861974754646084602043654351739407274647070582770713705538715380060494971416587686256919964338269832488832126548129840901826096590346592832456683440937745053448427511246734463901119206229405938480948275460368090802369852863971549561922891587683642957077040959834567753685124261415651706520351056594416039120449728990493924880540072415296211128586817700239823548235754405194089607469740082099996305385695544305252707126017208464244462536372144360542058297372893620896351142648711276071097295427080926209904807086433193550563619664604120037126035542931501672244515171830743838145258957322323982447199032704306014449248726120256978383277655842665606351328391533188381252604103558466482547116924841140494409520334057358408938978757794712231713002652609863867319180515186849747145165815094523632320139020567649384151977661669188348839290054245742771925199633467542033427154199014955211089129387747663511219810032052403971791566303519446429819660910699645419931182839872053568377858474827914189408005798240693542223844958304282588371531869084976782371100980047448767798670258311371547962262606208773759231593039132254046741327583290334499369182339629923195994180883753623855695006090292808523824767150336541845233496121738202115676449582670825085843562017365832744687373161490987994206620896261101005238291873619467487687249045356396292933472469992120436024790428369765292310703888268579127832232333752823862216267540993640096032191221877648562167118828803087190988922701531687979896839628146430561734744753449804644764641413348740823509272525509077143723576162631877512272386017214827260413832078595268428356598802136933745202830182430660620092820173649907389823970567036067112927245999048554746436011289891323485282309478024466544390065331146615578575073470131640837525552191248456445199671808035765525232829872751105683241405852969303233554928745877046153009472894500830010091127139951422523191664176403655314594664685816725800819145904148729466380898674375447185007163084606023510503182036420337240478824378403782176315980553541335002169076782262514109255543618039473439024098946116396854410129518886909452408983138216278502124138750433988817774657945938487639692982841748847120086942283247323867550588483815283862856484981887216361180444285298474113945407273328513543174727883730415062925425994858599357056623157372323206428193739812439109734866499408704934872008708638229637788498215371494378609546540774652531098335212625022353245455469332748576811437363417926690913083551485460649705794460754517248556305741658742614805305391141173383132232167554111240486728686249939636954299003721066885098605437593617041920791628931761487944664956240094979591397923136087875703820637479159083723062236075750209789626672636234938639389652478166875035643455622563063998162153634175076101778854106673171697149400859978015518385323908314061525720705374152637011903494444031542406391133834559758846861256707225084927974711413713128115032960170853493179743607180951487300420672445408331935323863561829073933298343921207091416072634553270211897684269483691822876307303542439251617493465756054729522909848160855533328500304207100815975403207125613879705771038150686683758894134683770511379237150485871283793960804809511505190774860781561353914488721459293988151145166314576656407287833658294678744996300983942000788126157320085549104309794125474530778697042674115518822662070775079346930580976185773654498228225607202287189762160033409354074120088715842066963283584997864903612894983188675735697611321729664725190768182802634456552466696313881939847542617119533749423438598907061153476797780366982350780195067264490676938574621822769553953694202805647343778082130137445285203868115634332365253199460960068359283245519861997928379501748605935006121191101391597153763093462531560599979697090620561935048152632628535691549470948482674904659521910094702777118574899298338032980401433610134645276077996081689440900478194021124627395936355598804083937966177240933044051660347378959976351272767449223927742143997500773530297780302415068898521623807983747552320260969624805055163582028934374545008856694369439039301480260658496932815673314564433143175139205432059090504162388385569292400447397328581405980247336603459926414883489292001817666114093832993691616850169730025246512968953154912108871595026542264404297553393200146767976377678531973944070927687573053799253912871452833154234081830052636419266084525846212861842335442127655516910346635613164096282057960396487339138995875937750909411361982675989749458562966328615684564863338136824964587829838809553972888765164036390685434032489853169931583000376556578087469564183973193411799260569175775310834264410858946117116295089876117736338207684348109460143932800602783293748611245872431530366987393683656925003543093917745329965698542840747963966698634196878300306783083394447095117819233316858298179815896040283237958329520798575801133647404032021765446410933956765541446434188439707607482732767970167201009076184938361419881740271274005607207517385465383016356081115944838452336102517580571397856985349030936201015494015405718863638859169526716059248827780103210310839200055611463850835158425673204760940842567223297537617805027214087875056046918952275412885442609108203585302460074628728540078051063072404609532113856664835898304428468949462146881916338012263458929001326876357159606763167125986891341240860829231298891933357564264413035628795973514352221184473328480000669272931691270760113079012952583286607430073612915458326548769307132268939239900752062927854809172279156424093632368279836629668496339987395201178802723637292877637782859119110868328624533847815992840282395326670147644627467622862286536125962495148875774273305448744062538734620358726711030113916957520214553986784652510402478525488291309421898616354608317819219283909146431016112982427545202302119133269081599005457788152090624383622232308188673431240578442435851902513814312173858398929743086831933942744788249037525834353673632021285838741133861858749811264565015056292286567781346930294054354742149808911228965208854993015643389593727523774032328948275241271969577102318993827695945282547453259714719193183572056500470379329549338627936463503973135951374697942369681331116857812298486174754246847687359904570587402252468608741217793755702086974138376022817042108226816221253074320479430669902323481431473412465481928902847646166081969087540415582615833335336241175082856908539956135476592140020930662938189150421220858378456483227226839997245927650219979320693674800156282936141107415801061492931104789962414934277683719289028724567148420391738895378520480082918197588476471009191167172120966584057629705384218703845892759443904514493969274212808321943230727185826348000146259517311332035401583904596478495855061630320711272702305647576038044376463374336901409758176365780622811453065092691930574278919726753930733323801270884193690236008887780103574152109378640949798632433600975731076115334253416983143827437638890051040504310948128871922294699655871266022493518530104498650948950328471224706976530666015172592406766611347074344487442779027504112600413190797985978643367049492411427098570602182033464722524530414666787025200284401254121151594185588538811866205252035555238108202458076724101378894604329584670876280033443808500544581258569011992700214311170016473146733473671438290038021165954906860677828395300760548653200927837035577599916127232814203814549347496486974846055869298062874636989415229698395958085303182201442323312652908363307012363804898045163307660371629490803372406034650635796314640196957272042884368583412915073484782139877105850274996969062984502976140115565905333929834447495683803080532430921994037516260512041095074314013506753734466058784993280345683968448481208479545392553104903944832234022731562929066407656238456788452084590726816128052866570658238698492744398687618532564032554821697566004731674552798706299886109058866427780972252850199613816384566165646214190923697530914740234635519022914559234340290855869066838491501860093406820729789606896800764221134541676715652147246751489595854280046129908526110325102723870116719441365876771857708226526738832097644347677504636753356963331159245058319771048441761029176174288176320803956362031975285782065953404014510137450410392038996214505519238846778425686692247034379571799806195629873285565107783227892879796298334578677243508700151141157075047511285861585562890524786168522885697016431390410334368698684591783479017644895407741592946684220192898475665905948610075513626719520021927740225556397404776321226013545505503472316951579765483307432330425711100837554983214885932080977381061236074243760477112462086744994606158327237179356378169172188691619916221680401703378606440907236844990885053998227555250912352787894642974859094831523929925202915634090985572564785426357599701980926217514462039580106194111929632375719984314016740511681746346814128447953645398582220697040583727432829469526366403442264867578376243851242983551926102757008744251027010271349592402626074530448358304717294753101929606983443047411205147861862713609097937323587045118304908748082925185898740532152228795605981877574181158591076414374813379755929834437592571367963569194137672848419276516943619124835526472297110356969201286970407912017457851808642038116339419047977665357048617718795903822798354726425100892299548087427893335029496007519185676339627317764152008142352807646798309000579247090414213023849695311899844180496816417873023763932854644434192762176871487276282484346984491879925219578864472528287100033821576108444733624409185212842556882730138963840700989779454651768335936133212272970140761767892023923003799869152269222095822903607482874058059218582983942420275735400343535625804495791704679948020372397854288466625152940945722126254490411832100301616711072577643273930362722676818958228633466686438772257314927394571493604013920989833669073250996636243589733428798110775781207113593343878218913539875396298559364762925095044467673489154585152580582002555003831703161244971996084092463889935570949485874689714749674824929621142407707214674486086690939468073289862779479037902279961364196161442254069725006782213507835217738156380863788942031924688960180115840281008583328254088469013424713195765310143605523428581144784260897356590346103477126524436359705978463364344077879692723619503813217675444797899923616779310536763562837057187762873260126612328045766883839585664541309666623436953812717860495954567394871942999406192351523148469149945270896919960160353725815708691959242794389295095196700906745158970092708745433430356451204518622783353823964116888235939474856259472273806364800739598011275219000986166970962114251169263418356755365206601197691859235490685722434590977377323653600281786460133816423637575557154708290484295031723923683010190953870927318766158331620589422223946787906708622997357575843287426359459651305043094575454933707486922489726684560700276084196456347916827163163183203911258571079759743298217611475531195222658298273400814441681217864163368315697411409592350388402545572365064546155313946276055710698173215629271346455492346511198534206241786879876106828253908707725745149965656578729954658720755040406869023822167084669429138686625728115263575719673179082058296914481735819035143680163309086828558561812820607063122211062011137657840755729550611383868791979291539524372597988830552884584208909185110368415671757407843994088419544161335039648822793552917840458341621434758079106479414782629366325744705150815687916944182847121172736774782151520900247184886096164003515921872680921403459925261985605605655426810165831384101016139552298387061220249853541525345168192186075906352421933383189435661366960469265334967863606244293453984589520785841767743632320146937838107915882975506107575932028383602874651278913264929638984001957268648116235400493582341945497502135472949203372094522283745878795322204227826754080335392742679246276579481767290928227876138398724943635698233308621054245185874631969713330319218716384586512503849810664706497359762269566714054043331938224340548044399093175489388016971782412647977355908736307660412182446208556502416801110748585076488198879629394351074733558074691038496922518354003552475611044475341366895307268185413523273099207601127012434193273338988023771501404773662869250337719163450417006341482166730650741230921142743964047292390487521019073855351576184632312964223423144498430583191899439642549931434192397496576964655939269055195660214544064875954685931536431305231418189141402135630126083043696289248171609873122508815843790580863788534346243178389315696346579429804759564605975913040636330374822689255677066351946177177933681655690521704434382540504582136619704268233693495617903376999207720512711060456858215340728958586294989114436905315425739915750675557074268998348287422947903341533050247569905263097693858716335572004435407301624149607084665410935758127846883638478689435018323617139445787680426479438415741404544114245807340889824282393577898517542331631091957348913671142605880861499319952258486084951801247190917119187366713411785876205848970535758507138886220538964621969555439255479999127307148778183745807465073964442933082602902422946782211845842729532097673138553509768523051271662277519254071179593332678684765890988843461841224485108514375654488287153484917589699278713665930900690939652972366170713157768181489382948181070218478383583382804699726411662322854625694273965047935210716367288124494834535073338084332933807734968405923450178960119588878672411056633299886545347280854503006027818003665819036677191736962233121878506786945050301066038073667902011469346165357242729741188585436185814278266155645221826215962169691329234110309544124056717964321667395570119891773568952225558015549677433981228712566633927306903363712783129081352799565227540277963398693281147682368348756675001301059701463614669635922982399583686746382125635760207909519083131889636850212496886303012846242787449372641911660756905971771949132980144304902544057043545166043705651684437324978369572960092580154606311448480076422817804345799596502331669352281127006700785979258606936687550952435411955858790887482036509245419154009628575157909996232035680693470917494430034518085199339398091936435648619956886587493754872908934029215072872921875452102568602587412891963960665509727838196622796868755453988181495511931903440408335795599228358218503178337263249345309888927441080632207076951273629341225910063097933751817183973264166094205483523165307935624945585153456479817809548925412969101784744269842500674340428981925443354876737919495205502406012918024070640708271443185941078014692814828260722095667555530168150494067537204642728525232805562757389978671256892831609844968831034066237602661316301342334821490086430067501410974131693043263152909122018316664112629567213193890317606049033903004967144057911157937067015126040056817068979342614621486820474928557672455726534828860954691075616813107252999323859435013497929630042073883623623532340310802911206390736216162961823302512839252752427591517786428194783898230907009367230823708580315940897092097215938649871827589502985578264603021446631753663717107056030739647818510729639636286819434302262449737371899873919442409625486956646970425316116729034248230923749273488302765409479459356020589307132021712872826515490742180049271012987719591705595115951186651521911839647854383398171113177402890230320449910127754579513896969789058969372684554643178753602526859915700920464955051010934239207037800389726142766819812152049977292345977011244938989696477129185245027193479676946356127352909335595179139880578799567255147205485870043524786284783566662359431201682606694465608675154301739012545578925916642184056119958312931620296601859375941327000902815161068944682597244796525606235460889235851204700030501893836115605135978763333362335970168402109520582034251612358573501855753152630399858491230371499045477639564308453102556764039476774757954427792762485196248012046298540238984219003145118145210479204478477355815327334976054375430766525909785824242411682690856305364451090372450530922851116975027335136516028940688853296968954635893341171736449291791093432803822464942096657547436285482223996508637823337729357354759965510950219305764180011677286072831965502170704347741000449244124764470785360703816800070663024895937902306992860801149522651311939175185677512105429528327440472798580748962542982820987676273338024790893859180075596728333968720205973001468973517433664933987920723433899169669161908725194476837607261302315853465593097525158208399098495811501358006000544646080124870540179372754090525588079883078237175508391530453690734034052280720639527481771078662011217902798398704852077208640502045186533242948902021428141951749651132355694312076977823201903171014913006105709962913946411832765019302017252620888803721170170390753442294130361906512578748412473008562047451045902465616546915122607786292594136311404950594829591826304285093121993022145784402426436124627205001524191075607083348228604357690941004549439183208406570409739437650576022795111333188612196942625732578055636174992351378701496709349051603380388490056759194722716837053062708510135340192886840104568460524674186738604617557251195959836680475933464392793901308491370851378749649376980574548528784774389554976565399116816670603544983492477160541739746406023121710486875528481367666908764314502499877857633033547326181958937023330530257927756095627142096371676811171133597824222930939771291834209693874725304190461770946526121898513708208053285490825740902230883528990202499610204475385690538562716062662949441264570524190923078518458962820567594775471137247594699004006210857336544299479215941219447317076558585344991999659335474384276925622542576147561878358136629392865555721679411975141544432326872244432246912254953145668185328206595763735397012862186336791483052370969264583129323426050005551963302280563126051318234153952524699138649822731754936755682304547847354312371558924143934411334451083493430837966718546013978175489189728941690844629128635258180802248109265840329687131447732080235644468303279207671545904278523929849644341042201233389231599685820586378985729701987491456040225968742359322969706540587555969779495774156751729224065424946840838655815307156040685192199691854991874013732577160412849274015204167807305830623224969257525128471822438276834456997901084073233978646550685018563795009245618438880146487541384615240830381414602919646640716685980991375907229604942102805429493838473995962085126323549521834795231734772708406345925361678753061643391788228233658952028004261872677765630789086354890421758686308441117742444058258415479714746670654789646083113202115207363030991330534430829212337451469088247075578161362760716484601131975952645763295784930304698706426056659900788481871491956885690296887575035684369539140078535207931995737907721271862935918881333690555788829221809291159885200114902313494905435013466396289804539565526070024732391087202364934236636630885245026557667405123721058179107567868743648447162043586977328132261877485305924346901139344102864309109411803637229420914952196594141388656267962579887598904406498100515867983632436076449837941213908234616280896085786409671290337746188522335956732084813069279252815833092817848164411816102598292277990388579328597099185200995694733439788559436595738864150727542130420147688820185701463032130273362250574371957431376150104133163350280338724762296607790982690208964523891753297348600424328009816677455801535626834652175263853099410197084935965397709977371443379883214935329184099861832408795573368953847810872054383253801259475524655657274020101356922604421762550735849702880389119546820362593107817959148546951119467433581025254104240529852576624355866154505501746290093984979610608976341902289893543432773216954464501486460582691772528949846945098308790679240775230182340722826447198019809350946460617967756160638881075254485031894269735404363522539065715928203716550939328593247936729913663849440117518171750590687916790479761966681368538037181756813285700006827772428567386083100422587959469776231241026210308767004495997613997545349264688647082133845796273725860477826415794791304629841543599159546560057128274117086434469812819402781825722054713031212034916830687540636256514172319577872628627820020505604818534981900076716845471037041112043046540902282193435915335380385034454023223394985441445088187154720797754360782891169624723458048308066805556655381104534826160828827957938277393759592048551509050003131588373660991707054460606228298196912337363634745347437119448351306726212626010962255704188791104662321255550191145536351140074575033476821844391859107707196598850494176671385121473148613424818242793473365061440410380587172233958881810248046459536140245059443210426582466596999566766134859281011892224157621971076313913277024944076092245216989679128572199976126332364301148983123495036488793370087243963315454437918294727201151723012102126872266571841808792375094589141807052777016258906037930066408123472342796357108334714458493261499676711838871090546359988922934240439181654386895712773665839909006711870346432417103163010789317463514617159139590853959293591821345624647973489519927649986033872299130019052954090714955770364579657109226788072306102838839429799092990305229797148489548479250767144591335666011599340867647656558673847632834988095936077449699951536789844784491806663354182547292103205837740032360170921170395484293963045106124594607430699640179940723378459568237292163626955924053276178741214126119870824216415177433331525062026054255586722910532480382152961677072640721288292208672841750391893386626577151143771380912881514866798718490900227858388815497650974719731774982650667285896117889071193880825800163495479521610231865161359240964967154477104731670697053190438806676208062801432185173926196420216087796877755495344886412616369285445549825455007541659739817152054574675575132430409781428929786310344120592902137704572897406088776097017757377256679509904282544051436889362332283162075971036133783151846110541795911590258554993796395374621444239041370553635249932582699710725412398704480665264061695172988836825010415335800044910852162435807494787922823235455840958470570948285999106783018537040862259588421538749184657284338296331836526595246610611070893579653742590936743622284115069862006101172327254108404024821727870869415640352686020503633777811593406113503606273451547451551710961908025002675769465010053854768174879786399508163659958661420801157992531681578331320370993265615336002548619021134168534595325958834838430009175371889091733656918012820714525902450642473610148337552647103878836153122221723056918810749037806565671157334622441098190979614125039132598602455272595313778833187657128117497194562773415642374063557779071997083521820846206933299398969598770654377358247567932834980413700108093342096309679364696588063856744539334818264523742050730115001428985710597624494798509045385508987563706063699890304669412458953605694517763944070055790050657370948144436015222385883615783485648185938141913925854082215813641958678653072907878436005992831852949820452853782248613981857403360328041669396506165405648930495227896300215892624914063292733048550242335238192660431192859920753490524848709499880070743830654800137159140070849230946353321118008900077665047457823219853488573894198212233409722724976030348320575788210923032076280862225347727131521972217483431403103724679911979239454140235934916707224042010546805395727469020380442522726004570713466774347989452852365347646188917938259101642208473962982348500489242520021071528407806878816205315645171269151344926318768769058361874866907362136656037919466071300443247471191967845745358463787344359308095547641128371420563882167269174868843723826960718225880967889785298585609899460115113636383939940239736485743931297753252969948787614390007116714281587867187510568720372013078335483423009460367296808414640560351142909511585380108375723613614623574892327591284207724567569738987495295263959144360733956452907336422312972419213161843760365004115409410562482823171880865734832180392134264670353304267461358045703462936964925128395041185698811024039651828123360810542821326878177343698455198270166643139019962180535904582560326572470994726075773813633841516076393371242342865168944835850253189903478753103612454716381468495536878657284646416815999572596484497436656234850544795059997608941194555252494498045128942063768925058938621919688092753495043652609916711429315618519304844816000131768745418003760693551739892548193502252635745011248240569257425420723407824574911260591028330831375153348743096456721028912134935340913278230067740502969495310629392676395737586598163453502079042444538327664516192572656002852125648694681567731809724804466692014185289964012587190759433651672187683308973808661767765362703360413341229082601195301461043586702320019556162531254801096245864409504273390277107650181855877084264485045869378343404623059660518867554998806695975323527222923283393560197552665513770580165194819249673017838395769183643285129442853825442818112845697108564861196466501810752180240669312060496066576345029821975268197688878832746344748014003890084873006892076172660855428804310429205561548552275449457027799784858999923068256556026436092127568009738261296855751249301310763299490055260744956645746713025970755896485268645627541488537911369409272031202419647375047189452612059691192797256925489681278529172153380083331972475756176950388641083921031524389446156481044292118598271462527312201468059233015745059944490642833052852010858524797919434105849042503233100291287776300465877565340085502902602735756046584197438840577726365013776306344934009937982587077160057499729136008972868701060142125092356696086587739604722124984953238519774740610796186280903671549725582988338774704332182589302576867235287969831530144992550439620822380707127704712570207206877178496551098498105222817392714212056173760879393087322940754850515091355973539515345600829249797971736307765364527707084713772364658989047739079773120392438199773177352894193969297391826991993714357072028679459886080884537831204551721187116135227748415879486917454212203377964624696024947015394769149765649312333908788158270938950846172415124887008969111842339972763814362376301137165821017695513243846847582583209645751116317813290346323750667253431143400586377084831754816962249214243750365085745842849983195033920429391429813046871546486004701747739069810381166328334590093149421901729509269358431356114387220587010538583774936572470420453276012254646657806988897530944013274690605657149737118153608276433111257325792743721877377849878083358653195054863001808724412508230649162178114320035526092667495970354331205519364766374112811372820240349684161227918951652920328588551319132594762122978968499587766791344394777137728468737116575747477628719034716937019396226365777208757768365638730585003547188668024749836037437957611618101495546685723243041485699988651974505326495040618706020920220282515246931627232837013243369812085110728131434622484633785561481432855974051643141220010980193249042849874446075764095572603632588010813623851424576349178122993312567888236359404375171456660821657543917957113144654542032538123795407649967930882110677096178075044205944989683594957997520534519990943984547830288418452044070600796952476348160873093516520678649591617085943088948268724456394556611393341471294543562196370239959683242056874719312657245930262625662950025481733479818419369939058246006211173694356497347000458910199920150404622566016502106561657683229794964619222543976457301283835574086696224781439916948590323789179523111809697293146873863690791922224120453122254638382740087265670007909923689431665094539426994183490700031186900470968844287039314015506207810614978771353769621034649207606799770280334316022568461815790980804561467728416318349632905171584083064583649934023333372454007895700416538887711525690224840629390534714656138383886298572811500023045369943049828332739457228525440277158706017882413661112470253438116822051847065546913524817973831983695221321961557020300215932031851543526044010170177282225411518793114574653307134421491885357112198828732335610371540411907034978540516536396490835923722816464736961014131391564791192029579653386038190257829816876809524018598583479923439787570702701182450518331263114007671939442014853682415169764541739476296703844299030916680089708464252030674596541399469559224327805816811191418181181803697359702539070199712907917259811295994365293355943930495340071881721198034262810140828045376601791722107619843094615481122835529810949684260778998561739888010297688483326414204053171917375133561010906343197216219780476070714266738885745057445586571012319890185128217541319055776438654604710956812895586182589039574679210694927343371993545631516153152474737467969908507399171614365634027057164340302519270273346336155762904126954415533548909570020733122268630797693538294896235481711842004602484790868193988984970318746479012218028708301088564080512386260559014434819988141787772699330607740570170514318498999245890121354946534790381802563758644705891470454319295811121868270793993503843710594754252376229568873980468880003880427041333053642329024543782203758679688215799053942435014617332574941448758199016835963602128528821338378191444852984859593995053572228649866876166238604534273729476368299790456638473617089352413884487891929057764289596622248057169801718553315499608348609890846522055459020753773388414039542372133499103586963327347894157324080222337035402159595071581327426164622470339793622508239005758897432285539811838538859640422066719193278395801236452693037228123182409957988829851748954280011931683689428321212523763528602604698340541353469068175340774457582205132077182793105713317123178419703127893968718250973534209591416013841424461597173372453039197305963187625626131201507501454066779113416541412958901811700158789365511343220997549425149246587024922336460902596595002953929844273862879786631481664607977920529425093775059325598075796456464907494618353073558490270735482053856728953669696830079703763157545638152414458557252259832485734425527369038172943019275659716454247952916069629605262907454894750572502914078246383063432297815305999711935678505946270064005559539241743921410490957809963607149774935986883953695214478789910169511881436889654423377086249947268099896987493734605392018934464961198082641661898001652898407316270817541476475429820550041801215827964217822990476563605189802709355375517883297917459159806535975930243268255176671467869928747604525733259017511194663250688622681840322033877795550849356762849503580326730654030636244668996501985758059167026892827250221647128997986892728120576380292651905618756616062791758815866150953251635786949496546260926719104974276135340024579908351355563882993169813752524174287339250744747230515315528984015036832885164753884081732177838861870165746921604019962509307330196169011666382240705382400559879074230134534321055463566462200994031353974065918643976379032104505522217829315739464900732614555935359387679138583232329148075741499121062413798394978378693584076753968744046107907247614488529787269641635634736948593644572457738299216061898365859679277644181165250981324774553280839043051232697062284834480208144603702220094724172106436071413940885081116893629402677164816298336325503882216342836869051812783371902218948283044060109746723016445367192783078936570050310679431527016885218361854889665508854260704112816205850926433681622395278270565297004979223719221590260933015047384542804211738584223062312639327392754676596654029030177471908940673947786423205929903744346782889844136379857669946557634329768021096687376331351676691878761205011646540862797714363906283528993847643497627502113126990227850323406347614719818102184139069405235408297004442467138198104566114857850636516930823535432727414036472506360911750674495545538652429805727126963059030264303754310866152960586791775195385852196494702032684262932619234606066881203021806568214444458273579279401422419455177352635330749039229780888366220278407493060732498181595881135294734952673470487323043400404207328338543570129037290974826014186657612647674181387149648699928167000798522111299960495107284229938627531787229153000876094779632321712740014453547008822200348983852986198213027399798551292986319956846773083456828157163029197571356345568318585530099599333151216801207187209684729347744989923617507821845509237334046917053542407919786347788200913212343512080911817822880082658905520192048016664939052027295412974448640473201604469283666642464459329271828204354423464507183142511245707708797180400231583607586317298368983392274484462766752805121352545516610036549301700046366931305091683984669093114778583175684884404781654899673065884946580383098833182618377698248993920412681893403739215967497480977668350951511000106030520781252562338753705818420893616175812020480886341034101312582816474382322234842584390009969085480272995190434300412466674207791041836080791959140605498386666788605557295558274016418275705048999657591734994456648315761601547254686389872370202853496454374028630797307387264568244955490951808955883051111547906495928202008338267674040065165984391900783761824057918604000178805056640048677881720464096250125014685806287301384905062014420337287261319486773570052507411463998869137548506284269467747920785779619840022930563753759244936942821243294109150700760425315497121184203292902779614994112172526832030633708103335727547473297278229772594673783681834155800378233230251470373047508996422641968058857254681120222186860458524976048346086154596994829629805570717023739138128130575473851415280661114545452876077440696304407871212908964133352327400682484331876063663132944459011142785205672909270610789764158218850663473234302145965359267709451063601874565281818460779340908685269368297967605237057463456950887882079844078132467821799616812355887052075466525594646701149617397345700069836803416383418037371459472791288299054492674187799376455624074939875794791820677020424414603273796353878468979672527259565464152466634529266863513629750766886129552514422344308767729475243076646380354198807483138648246233133742427966551238007820757767051883506351599596106055532138615265571560304581091520854811494868402377580912823342830988258703520240418294201175089965374323454538041106480821048648278899493529317329821341281010034341931396920297040939622975285080917106912349001157551631631726810414628467914949571674208006940889090411440730910394978198043173870832647256702552783313616791546135843724286448625623158136974831732345817304722967123242965325075393282551509835321657138363712602474399981439019252585491765580881563243736163444085131671661237371188738537880799680416206204674760915878141975844180041319588960118499290081261505986803637143694091879695338592996583558524998492958596258098803894471132266511070363709247424796431203768479977753408794724181514686971367499432168186434508151847854725197736549231855659860884457884847388188302595129178019092126624681001225163223584236509461608849465029357133385588558704978954987029640972889490744483418519372629796979090756167133809225933705612792812316949634005097305979110347016036305268565035056878474426695444088326321229962336046869359236000627717198459789228854779420323311088388620287467842755355086030048371881807899728717199669617925862290642678795576109423108618608555824453889172300177106337002159238831573352711964304756346607938815073594825715000280521846046501896724085630941647900264765749690960526564543635055772308943055600469065074854311757907118707893532285097647597215505279989918720731514068180513853286302116589774133142207521509762687442999605569760575443562944732056577392601309079183163902432520119387009954067780508038756302569321485109369256036944916491635231207299223843679849884388555630080156487915832504787706772752901837815400280949177070966870756115570917305088955709988728388106197344793587982351873460900892538144927952291986992711861770472773566949214538135304681942465371628606093462121322052488733838798993146012152448883327903059646625810132547394144737670185138514150100892901728075140404443258502129321249523586379116084554673573607907142322023797560424660022967322306876230557726972765791106551127086475550299596371581012914751501307648448086344997462206848737518807821191485424744301917875307537936512282706030229602204198179641257109237536876404389985676179942630703094175083934699880210003093943457782969217178432328849717078751321170530336845982952150378425927748164663065404437530161785267471410212773120218841162277066407035903445731937028028905861468923874258144259364811505991036469909028819092391034133691841618540353762475830490522079514806589349979514488889337785670718788349183300396985674850584339079232231049986725733799070746555125173459651295696426863806360950072212292404730132293942666319541454233298060931873776638904409523597917296476910755431470866978854541703287263396682026971798334822637275369425789605310769303790574498378956191327741133593862804784638077794505450568238305260855053924681951959615789902008826638334899624123123417957893125239046349050426195590606334014334562932062313814622036589783142896713023206093982242349752083885361202676428630713344043453441899564718147677893479706475655318490657195511310241267317171190751674505148122916821271561743104054674639614051330242764960569286794157050613719925876332384044188797583822965469569254363560325761887722166686934871660278818166994316104460516511653225694915514131229741009794781221603087736288038407660516915127951352762272767088602290011293140506778355091379185313534790197560369890160567511263047170381686543755037656482654125747270120000009455877795919841198454692077880328223359850537541338428996741036544207170568812432380160640011593222946507849812517836561638297749480438464689218001383403741887321726320082208220497915921500932107087743875178236452050252960885542930472997092230009286446199256828483217767258193826679968187766730431643361649616388266441383403151030974995523539947214080944485415219071251891274319100400433365753045960159887048697459273373494908620810318718973293893035339091994274492869560369751091458359179164856267449306985100699347471585913863934312607340006996860751801595523196643846842670471398283591693882227528937258333303414207771087158790815970322172499503024113719762890848671183927047329297258550570127027167147365574111188521880942614012178658995149944106041563925435399396836987716467167491670068762078009682464052979513050260595740865754988892280629758600540926269462432906855581329769371231006066305476917293511143271940902196625683722161348238538788995660926853159827285927678951459034247956179176658356651124108133637730173336201258346896539916708460813663558724523599778265211095294919239357807333369554411214572343842183352936742946053033848274203712448917389115885119989356130064277688099272909659637694826352144283312730657753942663223607308843348880613597002537277026741143785988353850402744183178436168441983463873028804743419752771724085249324305660988980103082656450950427291390932109270020977248682269681956774844739105830226489422827052201225596734620612938837919009434490740290944974555639671846125024853983007006175762127639745232207124003538806271070140761829150048336098988076259634388696732728515472706480663611992912368211955270843943924684155923643345243426990275525663551803590909663546644021791119080079956750972243382929787189609201151489016824432544800138171862945592119082728030550913445875094272709390813978377622303421995669431363487000093142120611238426585142791161209331147920627965864297957309029784255137002467018745561706936976279981542807172522097234918290290619169218906172429909524459807726673133961142897549816369708277406526783609043575222649531508596316685746529331763132504363780873119856675112260197764669397597319746149920617691692981184673057728084255790867051096973103593086025593031491422692693428133748484131474258045952856179483417142973589138165773735356567389193460935503014900261056998122787684823911575823161894564538697111585906898403797817050700749470242150971692159342622201652718159156223040741596319698556493486415126896162996192995420190265673006642564947801862715439631160097146269705577838859837095914600919777384648450719077343264407138352464336594607251892330530039743145875520747752611262300241787379818047640495140227520168688437088223047877650063528784467541903096480884340020173851734500427707379426105588134695716825641127995256221176181014264922375136660536359424886316363640981689567972869049728089126822524464176828517232481669151092018146916571502722103655334950652822017714737098917733681249883931305760099293974882916999955720615577535600730741843280797275838588064414657881541785582408082712876743822234534092068834588819777331625485158221611566246926133190082665326386809564807710311952512847491878638885904248703669678714664994235185102815390733753022308519805024982112732052690797283436407854403195226051875199545352258042875508285005516246787105522156137940376676504625732046855792887919009940528223485409392130086344839148202146599794073874667774351014243375879223482114186292547882932795537269039052051300473485003234539747520469846490872932000864018027347012493368995056918959282776655927831275019185332552906666789737049415902408475580313199078018989461599903382542007330680274881809813000469721278168852878321424337244295101532854769962208223401224106227995045579650432370146359260807917668697283547393920968409472147343732143335766303789618184848199606800383266347363631612095894541220680455429480075185178896729224322605632855729012394717106328743516160532959525680304092756993842363384302680542666052529269347612270132512551724611771670975609959257685995221089625375757640968125493551896583328987123088182200973801343955241932213980164042500115452634364261113283000374267533665549848477596308041219526397113857221179940661170989622595363232206142897240225310414058732595734411193335382813189631754161277220202464741059417909559428070109669328151564444217144674137439523470511821303147148981941708538644313183286108650323614911539376956075288012853673105881693518568254202077550794928204151654213043385472196557799289273581037515478958054416587589139754385098615431696626996403442893881480757540143300368465144812027201793550264493993509189796910088090117422029851611851317061528954336961160131139858062197612651171355394569196176908318526434416278247839619402695088084437550937178679628452740959540272398084163788930877730520544181579283144717269386000761232938081544723185700575011653465689033297491765034179032753442233696465046560191328126509751392847594427385191295777040304730781947967887127748831001545460984216030022644516251023713875346624181366695573529539224429196769640020498383997334347553715992260005582449489180660357181346684603914881493572918062518653515546377469801664105984540241373874419347289155505435540691032754470754364820339006839358315942973947906705088804856276191739616941793191426912367098939073923050724832412701149692064441552380902763813842657041468432399576933878742174971365780363558495760584813984537155253445436093305069075198152659280297590770324142174106071110812049051280284862525822768198215763420379637162418095953358564709129883409244861269897228924401887564752090697738318483971085055061526657792924545160770812972812139248248507169367220007306353058476480312881067594444375089226292883313716051317012998212986114035280097210702619686568112727408966698642650208715696316232088258551157911026581990321252116984499823293250229614158093263495007636799723674449903912353673450752259516958490444898732679575602766657475302690064480983021503381435710697675373279143679448299993546290255074141359270093691564466083813031411004873829348518173247675846518901803277881574785919859396249091923368573437227131486304714803482437629484303961239920629741701484318796656468341164418126817213874210247272864701819369655746420216680359763134402642732841009340783272436618522807378621502183668091997359606468974677002392805445659821832198155268703351474922291430294800815530308658107061516200603275743978856539237095324655699543037303878537827346854105329697291818417749313869069583173460592255369718161552012186259789342203059587730993801254196566523507933163137909913045164147513940108033156533664893209334479179901055378717024829688036076275758943398992447894523464446807261742886748954912329150489358576771345740550671544853599454891347807245764709130263387882225077078404674278972805493180516887112830779965823356756335008032781313970980115028331797321415512403557156360807660437646687096028511779786715108645611294999293502919352738695931757861391310416413572962806090425151882235747284424685093415903143328978605855913893090013092701506689327997993820661103401055231231073440130092950766682793475231691797667724818166822717239207829667935283321853017714947448015261321332450218110549506697408422861220196812250918213349029931618604807452689018843349574780512196035455448994148346445495419968249136662225002943590227554779230724612530084272682400015648188223819618358215758101076658764964551284300296362912334517434697841224211960341921046718593310600693597062197366235865140833823013920998818269094432757422010374824384079757126725536434118966557337405751415805461920876753080082790598526739235853787052116437962312569115411123731522648767130810829351068863092779162370548305089292614381277350252501375990144955208678198752247230254254130394529386842584960357320239999506603245750858561374382746887160028925088284196895926284248391838447421525696345788477685223813966946349510368485799097302357638817046436381445850055423855848854251715613474058650530073915644087814289877636924400877858293661597640466726190457699826509958347563014461040313252618511155226720392209593009354801417579811281315136885860575045393102389834254086997197944687648040575989748862946728432079219525639455191190166988413160194520692439333550160819183792252885682199748223748474528496614179903969115617289297992083730535704766178377095413162104211120010166935854075264382112198859824319245810526127192758886963785879446674396115780595531899769960872731274352443142134487906728327274918419391111882145336354949886006416183768784901414098424863401020464088370239636674732392345840604587095797155613072416042584845878625568424584318229313770833412244831943047769622898358317606779049119403671192485340271279474597734466996860123481140834256026891978846208853560394685653856085534098080027506592466123916758474794015537677510442818725678180582299790556124685851183602293723906178756393157820493458507753124397394766730510599174386569036980775566101526354783891178602132976044280248402823478230704551838488296859509055812375426190236794395637276826070022513379891038301380168741751057841830192127048110965025614562697493342248506128757679069468241062200390816098481344716123998578327420442632195310128795205458934792345604612586143965476584800315753335881462475179383385999801665021532624673712267489228453091074814163071381330635496064894723406219381662976477404980696451026362030201873889336562018285622682310255352069831437769441761507274128731083289806338154478240590028682564086267823832224180389173066793434498121026906532453432686071286199235689244072791650558698640297657046817464441753015173691830096613066985828259600278555082873282875189562198854119696396042302637127534019674941446399328928695552460704662679373759972587434540909855767872940865648730882831320037229072698447678383415568430488028622779739021093785929091447417004946274949633582621745504595196603370395031290504744560165968987300333052751187670762671443378102391816700394709542138117542760821497631735199665823844813628776879611766657516939005822526003914514565668644796298555319495356589157735642346125429173959840232569806635425985142181032720948236821453062455341557130821132159696686236155666346232076388622327959956089163622344652240143928514908815048044428614326520811074529558484623869653839734443241433698419478343563997095978377301996225838186221010721349982547260448474660656033534787740487893288687390682348429806546535672754578495730534151386331064542625939829023114777284674495613278427519403070573051231020981337731554646240477026251829673314817233485864418528822599441079768521303715761065729661585990663194864293640347382559170766540491110081297748210445619906616966110836056928361465617859962277603441237112107277327489116781987490477248101756953799145225117220648260091717697358162248088296018117561094324686118235630981106853817788120735648103050529345387174963748319468834752796382433295887183528594044194586434063131518511334604919928625026070375109041505615924441452884824759611663705448218756992368636175523394408544871893249817681518453465834431706439925628788983295398010499359991657515367106782436541378438026431964749159996376512523795557410442951277201678893716862682101293193454487491243622015584383326831975950036309149822747418372982312719590767597969701503814085555141738400842934242727287297221000121071696899266026550089602186008734551552971040696748297662821136101700006280581472411585972877172541665843811488061873159384701276494043103618766744719584255862086705672617798125540544575142344078052828052981064375631458729343557742603131480077272201946342474678445220048567149925568429139097006144510806061245883118028080055920535758891595102201491648926505960619593463889357475290330373647513534486339691191799346346013723913039735153847296772053133837412745188692078754169708940249052798671211293625995147600885004043725782015355365276001758672995704050698831111337153843338468469657747304486401697774806311197940176357335240122725058374910370252941053656634994239181822437253800954225465000031927114986740170682967756355902286285342251816448664753241130009318557590868049934697956222500582448471194394619825386808065407463921844982114255764313433607680763959810003061478078688433508700773240655428810956433772648404162517260880984914906184939053549758813877007127179492153935642242256597057718685783571504886658802584421250258346880225334786734269676767050200043990014431447668196700323428381413301791290372881547120885951668789391651248955864221506270494527722720728586998547686964145502324169191872199979546331419829092046669284017964461033310974912330632755257172290597459758995779355050032176514550136719394009373485074531384883111156175639379824265092739706147436492449010241301376384419593024157653326405489116853732113727874734922757281268459911034852835864458544712687512772855457598046099939532242409661340432111584513557543545399025559667195401142597681821875792739739192777658853331629594687403151377641984795826546945085298512566120764296502517719080748249630701574191185883726994523159919725949444869487134270968120320118957629787125214784423736867464668946039016413249281676274374816234908013104491177282815280297228367973964010901187597727776673844669960008976824257778082403071127419393404594619823731413813662281209165726456578094603441505726883161682682690356666105734613344239011906750769910880910653952174921092590714271942892528186360369301985077372908949935488897349680378006034801242617805002799346550983816426536249007523676407936421212250946602036914719420992816615739094789663906305248830506553136237703497045939360083484120788162087566349034020784468686810945847388604645456296498239822043275421090640677967529851998465032782569213840769543921488532637715579867486808836824941577236584071750034294536196651118922974425733627457801599074827098534819360825473205286133028869329220011057105518285119447981059067828013124071733124744876854885919883202946200236086730239778019374044052959724837145117654576370095167193639832065198539742617313195242916482778649806185903321791993736351681149168969466238597642334729818574879601752420574203627034369829583031665871464039140273664010364506272667983972617419444104523404157311978251784530238090277749344954171482421407343376845390931776329748908216534353417413654853362750943644705422080277450164221850022541361961487532512141878382499386409211003380290847243019401140600382522395921962642812726519237108152185706352865718850183571374260033417031317128449460578296719181804030143065447298292371601229270662326632606632101706663655839176729770938971972433204592724697891112007452412602125355790703880416528229486691493988975050275246727555718784813015319797212428414162934272264548400169583014629635211379538671632318334667462668053365245402667553655663008862615622682235540151859924615200232929334440371382061774943885150845669273269285243314635419909166963756591685048390801005024440740198580765529801862771146537023671922090323282884404434119806568796358257727277323223545634638737744638997958972508479729830892545338301977928885367838565876976268737413299764275615678585217366218168432364452770438656668704136971679823680862193887958638530421616021152877102591621475081457321514407327367689389855893008729549602388647789681981177393891485006903911316631836645013794757236862482647655254539375371443226404118728276301661543022562310537674988298937441658172202355554257871344953743381677203922869372079462772482740729481723649353020172550099532358376627294290367553376342905414282530267174875039532138477034529716895128356546904222681224463806299820248106724263205145047109742369635632701599819231229532341423531296347044416808174384912182115466337025494162989742390488436338648869782864517769535949242903439153481549005896943286370426648460441949086337167449309961682078270561953629489599117273505637299386449022311876586689378034271684419396967786163949815437825470502682318606136716032892579673878305424717159986465766216840006541167385919274072072464572209657229126428198226416120383636704478975086665725053389535441145045347948698335338892314469838224892655088028847136938637729763546133355110217816847315395364505249718175831386781007123094913425906924420526549150716213754542193958439892085025632858594730081670722468130425960371147821043502519457448652891503824648697328465648949618387878068385889382653216603861662166307020711672174979616814580821267384283690399256933289359543239508948912833942970284734371481025628551875438481829453122158626208992146842389208858357589274562550927421105416691642944363902726609607508791288609485095806542332852417739279288561552628718770150323471251515977337040616427278447680411839292763178519208625233614177750923195952161275985092304110033675543741815268591085935594884613402479591465290081708551903087870224467950329123184810658024399025793061906614197945904970974509332796425482161191642593681077637150875250065347853964283458873902861253145434374669544592840290822283844385455711345434094382164297818272465552937072709363450378645265157654526269344961914595106700568660876312929287889966160486665216512631669247071139781727119890833024647244609845015023643093895676088997445763554008412177832196625222325069361077570012005953275699992420926510125860526994612242152976756931683077657079802160792727436681482214334158992058803697120638707022233171968857689174222205906891058782828008711712321411505505107940350902118690328109075197143346141913668515275357453302254605625058702269509668896730967853804759419692911807853453910208888458584791381267697936926844243362407548391115838149775203020358137429134342850963152375467832941532669246134444546220621196548704105053018025142473438133886731156214530882274125785880929741775508648237174515851503003947963899255531998709618092637620220236421844727366339379694018417818175598339088041245513091431081999691295745083091217089136905342245213340988668513277341749598331583878764963734936513282416523548924776385317978681805316994562788830427160830817878019434977092120298000698725425776010120176076843570062057404064480521436640719480166738608136173176746867989465610472182604937337658060283503816162281906337165606734333723681090777658596858265151719370529156155464160370039192811454184864796388583489345667729731502755307352252753823209912974789844254143072570115039001519343337864178213908784518728441019431028144413807642492206618865155602037430428190204177719598452264229498387367318299268768258307303554128405873673415766508693686461685106630356503857364421114547319786235640424888720357937684898057905091538604203929264805368189122431467870963043601073879337040419780445912110685246616658997418096449589835006420065849997223650158970335387546748315198157913775236549120129755728116180239036911120033885090278137704937905608128811020405827621006167666286554489597593782764206963166514739047395510007704149531397491260646723432007701628593884776814879168931839847637271113544715993961481297669987359858719843838916026283137237150624788751839866958257348401639976590841723379171090128811491920401495792560564195425659281777587811097952423704571933674622753256854781312664668113175381657104397649103238382370262317460367996774650132498267992304569443277302389946206619246880858660958784478785343281975827459556458605877215288760993250417000782062605338219087659334646196267761522766482661498318216742569938364090321334218071219220465258403496442457397351570878530255056655954686689920997741769314874878870166796692267572560477256183255135723880514167532624838069886959009481114973442374553067842022490263471756344564475468940534005096599206571057765679151781195417015064829746520855557679989799782141120837743081260709090688209751991955334499561080745113764028552811223187807322859985113018735651637414796987564239351594830432466150964376708516516073749584232103369678566189162664486893411296046322558992357516468201838712892556874625657926841877559795559755968475383953719891348979430531896947149526135791511506380730077916517633728395337868094002937523947984907800156142245509215021915610817492257721343144948356027050007821007478056244299751669817490218075302403931807354938793892791378584722634947663067726144024632865937333769371864732569047983438758994940367294582829752106059381839656049405213763071001859106514359128656468630525142409173571321974923309075482286098317510143111280347463539194892361434411341408002176095936887777704493794055891196542054269721700000796387554869889608505919019892588211126980163791062401669233884351726773373946223692607633500250980648316088669139668387110833863675891121314045160887941938123748980633859491054704312741822808342767484567804688161856288325779213008514279298944493252725700178366751247986862736853878214328830494193043818465555907622488511951735403012072363970679567693013701882581147512385190254142215355359116919838782215724246509059864774895666153757003317872658354028153043599875471709275195198018214565036928977571539523531988816889113427909099969106407931039123939103284725095720784665824787777732851502966129977343938083485414131797701122831412622810927522720230861956409234760508405077988887331122097510046272583380265540075787335456454784202391559020954598467540346670318361271140364479765393736767748255286541174258545414490093072069000407536402767881211386552769695380564485609011342347012327829160295286078887616391500409908112875978093237797575157695326450628028755295751987526690047899302262655612860634140592338174066417841477898148022918572099969300567264041445614723696226941980463324961020008362139418012523258212645731037279505559095591452407056994563917530047831445413670937484871777201976654887007780838647516541355649651185211664457793741076183670372439797280099336759729873083958791449924527595249532114535927496128356311862859183446776943052700839396967086969884869783441973452975086712262492299201550567307292487299622503823846340278260257094636049276556790541443143279522370648074508437262867386757357579212621683380426880353568482930157576536494445044256288720179431804368230884425616475444161900128651256420840369297903883368072184523462463787350119030548292270793191531152438890010282699693315321550412374508937237458022328398979578945999989764367562150074095288336332769301154526377850371043895175287434555111489148048804281616637454971044377573848558103038361097231692613113025960272042424429197266513814024261841014896567042125714795295845987596062629844703703875693858752263025322576059719320470644238943701396920790472939101611157056609789704288618059125934937813725642270292381868153281467172314719878850557979303294881843570035883629975178604609225597435315731533930859380334262586621138945814766213245322374389433593854391476852851747751961511497609780310575523557098974033548156720378769765807118391047707402932185421510674136380168464320520952814862305633650252228061516984969832039109309304723475228220286044190132546706370975636766778340041814972197152109906519294598668919700029062208558538245132100513039875841391011641369455898396434037393893907333895408093972140389095080756706209041219558549480400369314659122638005526285336282610943274206890296365174005540700868979647303295699907337434258259264164231542786678585253661126116410344946291737689044577575901927968901209457823132278156745644967128956416334570601448601884555040822737616656191281022238491644164427187999401183927967093659656547940616203715831179906159105037385472038651412742721462251600710429954693386665267511771325782392929301828182468129259928780574322664418501903636036024050586854971654653605424673685865308337663762774371710096175267828276279229105325958814982558699268139601987706377494974816913982160080285666291336578487011948078176379512399908097802139013021738401261809922419377307848463543823852143946123480408821940742190032195624543869957088988651681738112405372124143166061102395339706976434988668453459735104031417969006335570842572297198658386680952993594837692889420569103996409964478802323267259331986745080645516496458300001823916418773220220870349335073894505544185772490020566981774312450004463870844909468536848840552872894404158650834574585134661400399125804189223843596729824122947448899186196997521852933342184385492090980836732429562700892783378921332571034750735231370503063296708178765480944580807365387651470537651430399992108846228462896104792757318307613897636422322418062383101908381726555391645001954312045440404931609379424530636951920943210701729426410268379263299069300360127742809726009038235820437626819921591154829187871891153264654927675671492863247103765624597742511010001263376574373937084393776409489283333216440656535622148701820175874145189784275235437486173305881726529351709118421530186966585842756016459389540874995362410580054092303885829649080327966368276286849608800784683687940271616045454723493902044327360989621297631163870042617328954195492268141740503030772139403086760595236162825135900695659211105971199788993377325434456652998167588282204097975065775983671377112663028983696232481061539076686362763549824870718511124165687972259951038547704132547067801422415539079034678044066829429242676723527541176881682578174574976842843305747220270651740504464375513729530988621772342747285841132537890332784163744587789505903289911564813044566550920306148267550064353556652487244157647386267511741516687082064291102986186140119045026319243899612413835835851741499207466157058342823738488839596738666429832687392665741237713358863567763653013513860649285789694211386232851564596482364822740396026320560689228556639444237892403053032852462019239037091039815453917879445851791607061799488049676965894860577785969311857315449416040015830243434586917756136795807709045559521783807038359076027046490625631740549563381692015676059050949966234905674574542493992079817832690389313667557353092719910840871418423600721882737112326041643161071160834047358753851850548048337307165632654752715960821254734250723953507644952302034905942556605555044573976463282856431989896049645821287915343741842068824503079037954793871959615227767773566516232103740625198799905172883915423064909532636368530248270673730471002601293043004894685150486967337114129838861833641800763304381070195925144544392283915099381052437905698581251955941454683258944743434587015567625377639542732196296306047817327783047832960047494456976227728621389469084350683423935986776248193684343191299758687793306909068161812655150067113258820975876735664564440659408590220928211411803241002469632130967314946873069935075482570671311312712210198191375608446675357152425995239042564703145551499348406597862790112340416707700020011852407464665310927514415516357643587844846280847489568840044008605264664704588558005283422303277358397055748323492262073276937387835711728177101385434504588821974600100280965645532250146261669794031609711536893524126911508503232816188760118732028196813939740406647297690795682057613240931808948826850906778248608206092355137845644362883811488857792795511916059480700156587951830736835497082986632079755498698920366983924734469536770172880048629391924076296697128195519564985100203595971312529004674003407510517607766184601968094616803454639968057896398942425618930347452635208834230616273526763333326751646675725894557066304836063182498828065063813630083477028837794382623551630401836381628780560134823510064181799107806776463999048935333495881926088208296260575946262934061893834108052312194732609503037138585472859101536810524423661478213887246559957323017995650204243387968890420368479667299810671932053843980493141801309946586190950188662685543703413052178492736987683070382588270096879046034756552128339090621027790675862121199113472020568009085645762274319529851529870239308668887735842320299409200383130142199583981581489003668370377448454088042351691115182420381947234619454752557760211515286898805673402461822287913135157655938469912268666472999134883583128019215664907397541581742236368854277994364837312222317672618831036779426166341223667528817006193213236353860255725845292537487244352745366859316019312644379730145002469183433241286386054869926490605265445202886733940491679875144116712296342705225005547609923548651275990111842339591243519452099042808344543606173363686224788237364302055541555641535634427252599680044653201782938871124695988517513745602090103050308446996747319049597409883051502802171799479647723796147538389154361682085857112607231013984620740996512929070360277875736358462367011509474100285941894111661322139133510582072784406586672667036820479150740549914093065850191172923076727858694730876897241855931003135480300904323766785285138524911370206230426840629980748097241569567902247700930055193552963874973865125896043612920066577183422021844450600936770990465746500923741672887911433942019149014881620134596491016998583196383909769095615259270409062252602340275345128852342520589167125267688219491703931246601117823576900495727530471005624306180308243462512440656835433192987305587873902992995883551085909626956048055625040086862993487789347329303704389964074697876268485723273723524644564000432067518455804656645880261844837075095945279197093059743340910209846500556688786839342188544644809910135674019506287052596025894923877163808863848426044010856746936941507674588138399130408335928992386264680302732450966143427458470340298309011690923086677724645419506126218598647332458550022242784823100627748128599124793940548479912130185884577531211413539797245177594622046111777150131200186590239326404590739338522995256021845104782657987339989437531442025482213505653921952748577937600652904990290725572301034323168368822060214431876335479066346091509365332504849103061858036574965183564048443010807658966418089995799168015262650310024008152522094771947956333648381894709105467808906144384274640116948235734234018424979069852015298940584267517409272001632593204521647649955372181762253155539114084480381360732771952203012591251146812723670504322402914987300577046814714187993042288164462863880969645339822884144235837349098218225133397235779225915289437770037737525889541601167319246511573326116419016681693051547030160051327039127472989986983687439558079088135922173133961099629402571745641393451520316030853150467918059377904426372237364791440094487150152892666705530969517817541984213870841388809823614341964744046390619226349079541899355774892929771476377058549042157167623114461755432245274091905413848136088100931739560013700234524134950578321957061645799370507003839177051452246934131910045482293232160361369869654482102601493857796956616358069178044994999795043642210359206683937237246265725856372717166398224022741574943198771541364386037668750773863996017975750353448849853594031805167849815056688630148023431737948268534319073564240995621236400179368370299533161682388188001094061760766694119002082711898063746291324846318346910192970078999801440768964215166092345406213526273169321004165286075675562063491777852397348393758414352359410258201542303498327985876398423995568753908351602309168771270803126940391615141077276841424357234014913699033691959667544170938334180784127555232437943755867121412210631035061821907231798998274754549385561294092219734266902084079898399426298901172233515142461584630030855475877685468872887632355041427637105464574489095523272018066660080529057093688082893045648518716319597781176537010775166877356837584094473957834552145496996094372117747749934338324150787890827575145397084647412251849819536662408276967850601315188473980067341443191768960817052538284475194128091571318978360179762069402890100316873226923102256449871736302725564868653958371477899868480915091300253715656887818133223878603747141921074143896368208548692006313671017749086046375238913000828498629883150189656509392879853455913839242407649233145882466437915795740095150904174179539043527315834214927953152134554537727674097594737099015906263829413886618374508279736740497072360939309840447729497379837051463849165821212911177731999922341521766026346907843860098413708422156435818622829707359323740549637093564262260755614999139432455561524945259308220029252949853034999225641552645719988300142485918341389132369014426602345121572238515160626062820952067605918273850256826477246161564042244589811533916255807601689875629074368823042352494704927480341445595064980349145762643666176210844532834210482369723245862435615508538343624766426070509560318105500358464981879267602593608878795810084897575967306978026873206270628038770755497737502776740911748210108027450402149802915467270462642374527635995770737413859064530629396302228328960725183550173158663386437289559871743333960033478106665037192046214192104388185360181862289256097438212404560593347948835770008703292836351460777141476619718758519521032077345475947176540546073760245924316501473104098217457095373070912584071510064875605061127785021832698252700110187880463918281160616533129266180460541127494646201943248720086702263722052901310948602967960809641606639647493452827728189552381565237925286801334555531795195124566500716214664234686414117718988401669045802704680024769765189953375954197618777799603500616412687532772198529537714939392095570130519149106956486247376759003281075441724627795710520358109276761636043132643848879619111072668951804356910860407565896117267502692535877448127485465076833864614700686862890310945884066156664350718788763358878400377511947721107597085014484980007156918736310836460403585610547756728743807286133573621001890162630634356940033273716143891773191262757461820029748839275372567311716930708584440189662387761800634499149031306088767652110852087784937770623479776651608616417825284541412260010337313541802080358786191620136294858576437227948542485432280284308951355362162525410651790727800299745311412723423828401234334508649552526727220315001265609965280930374643760910045264902444186284157550516996566373941910142383270677471920246417836054175261232299396513348684372903274104269283125438118718634569327909894344333804574535965913402374667767608389150641584285504893160336192922382875595106417485189692167239155879630370036319453264998003660796506023462923627764821106838088239474108461759821885478241176805095756191306691643006374119637185485816953990028755393960549057483756885338596766786918183660432298724537289153294475730563862745185388842555230044370983515719578177667144644911390715200614994280663012175960650804870431714238292686634072324474121166779327253718105921114827914506186067212819225400516679884083141641503231523056615992457600809017800508374766499454326739484080270307130675110783158056941985173709833117046467012948056360017523906156636424302261681657711676943323274445468676208868278879920899146361731976263392751630458685035376437718683244711264977554065766754835698820963182635721182233175968340762977792241227700732126937187146575508936042287997172942857694993165682287443614592593990750258326421553420319513864711764990670899292163290658545644213029032956360406591484105306782885572820192090339831199615231953810063515667751328542155094135442898237729681465710511470575683109894430259536690593365288104634986644513020392463489629841653146865721442512699180310709300391347235197864433844628089407424381882199451841089299106960469568260749326041825567226216590001497321940918299950164487802216659426054343666028147049578056423892041399033726974221002760466120593428557912725971417987166427214804476340192605891859904276452464972899317648491287903681056516367532944009333974346091792020201624661238161602951800241442679281128063907533754011647802186966558988698501803314343332404680610966349875712555052270455362633850052540778859295092864682130396072014970747758021956882624607629096758715630187382765348220954344810080488768277663795821347495062066247274809693437740102870799357226417550371007783139500647800013971253248097283142380526397286681310297553638949142002541037379665754405859576459270792028910580554300598719273032601996163219368644012642358491200538773940713506239931774865946481582175290092416052709768409944537810838887375345768756197491261327694605450557615004838971928850341103988434557489348804518021890804155478011071983613978938911850996369657846119829469858159385831731634537854766799534629037916128011378173922862372855708495640113034337983251780365767967031835041350123115514884315339618710800483139806570341148757082697487805696136697208217679503181494651129357892005793057580419539401108086654188303550777868602851937407927491729338154873475803798341205616853565363259248221505531587806190711303158288808896865145321753182473199051824303855382235067926215156774902755967447580905049226595083409925179664668396860056536538683320829259415307786066875269132596560698631678547643063454268648378413631451758462110559984541717760509870454049198944213302558404503284717285580044516852597141827646729600767173639202533818345295964448354706945290571579617133990195949843193816565887001965203642964983145688777242134267331152325708428543228187174341025271011412538093690514384586176978950477260052698015188008294551891851218982311476590201598580562694871069436527646708386892992857036158874035386144766124333519060786154900978791753661942700118105495581525988511082363328843120234932294664326378154459881203440584607708733765488509458000647176143148193063798526539428635629629805312668981462108970483372086524195702334048105316364842213103273063473239909066220421698453534012275217220114259965820310416286759715522234822524189526635032421903897905124680103937334506008618425664796747888310186556053282011611732522587468313631780862040516007076198369309875198597594720744796643285671863838882523120980802261636838067704097940637824299616775174549840241827812295272771858395905490032072742376704180498463556023192998211364228679629941091978184953185140236469996481455093400913784039205659509342074814731148905598388573557517791251277428187420019677256467770598267860781471166616973691330016966895067403476962084135010554527148543368937389559349058212781895168317106642077144797445280006227388224865129221000896984730916203815861705903694618796591128164545928775666932474811631078168117699483872297622941555604999578441810283591588520404353647953302575468860336779668088547072824661599869187530386584973772009692177105488292629466913823861314734154558094211852698145009197359744426416307426086521342015284916113261671429305999703404151388201909550353635703211448690207110300260399067665059759922203722491770787556399962999786017942010551942698508324770092918245717471705036750121652861815692303689566196820037753461249949207513043367266317014454130088245976486112845583790861608171122911241616784327817223382704180185902334093181818546143261819844579509555285238613498096849797878700401415714074640754753649992070494030027117511391784051303818155438317962974895516535991250446206362821438758591946289305464088876957628158105763697510393840909419091595627362798668509884061026357632064329604288267854029011859699344286513772314123822449442543096135388282935978794237013073356958005730242799565397383018190053764340735735435332072335887018323221722222457009207694564263280269718641742922247371836124282681962042601386068078780377382998303713437540001827327182652480509882739762371971235779178492075922313487267027332178145314018694280021325899913207496542868699459206498449813705358623250305084138490639415055040519841139942615553702692578546445713647337003165469359652012297411899278081987156505003079851022066702660603566050098330969778572772738687782323254135162656698826601475461362702237028077424042812184746260225839334098775662913857876025737593199470388972978739837702964128914603218311733758527802535593025302333573783911196902086578431406514565944676472042056886038797162012635145849822606993430279793379384661055068967646087053699911822179877531929609266239301772611904241694176677362649030170196738376683878097806746832803608785917609756837659021262398234784578916252902979280755345844141050998485639535293159374805537991598821201920112648701721575291912596278864707503433017270048018460705040296329646165425162271375239352721245729593813725430859584092116027935971024714466379483613614556786030910092619806745077061524759172495552176324207478954327912588239125281835547450343876172153280250179428673622065686989886633525065302430319532222571985241537090621640100629949607154022475346124706538363068533621519426843555366444436992131569186038547633422568642635211167361614177487957578185513839105695722577569912837197689998055913986889593912944086612902336361725610807033995280567672368724041256885051810453950375971148327517451019680087715464171307938603676502151681701198258562845889517365417050374759946439621206919544196690457003807948994926005325093193031941200221221582633260425130479169299645046723725448064431235217684124835418059228145446220789743871569287506420469016078570358575078282239119898633393019553986472975106897533371021066742572699301755938038981358607228256567882885018005877603495065659652491798287380863620462507824475659686318380750428082937183087829842491625040260803980285209818847623386788295070643799875534152945779459603233082878408214521068885449580709174002515511608782376355816706996853537750575104466622930246127554052400810068980525894963130013398038532192215236314405343403110365778735024819583323354339131640155171219777892124867446062926785730849195533610021017768295567853307296072753939813442824618785080960522193723958193415953240588061493675420336251067704601075931323568106230875562116838306217928439696694241275660129278399093814062808282414982293448658563300254680295028383731839364384521809971979416290984331971214493728691746038426233888580612760095159242491327220596592215039407610301017906727750790840446765738405222652332973897071283474635665912102185963795460686072714302016434569826584572378288443824943640940999257104069099845287069514609134795637573066326307618321906576402686591629802354273383059860003671084949629252458287426285538244390662062718535630278134717455811203092522377868085111490367648700773931499314004287723263750608916181774936758150392873123398020784498682889336264337435110258540554075411409813540308568144891211657980287113739219818437331090862391113320397466741642593263290696323721768402818362604354758370597694743165919451702723870511174410464632164397743458205084513768855199661284977125492074279292392346967831203747876469792425850267391464293612695791932038049325186052417557500001608800288095962832180033290641695989977435849143557231572161577136593519790138803908262121861431249735916527956222009096113360682221263322729989058456835604494530116370735405285449718379179163667802452382780642744190580649283740886918241545968830737506297506823061411967088202639520923661158391208666424064419775850840001588143537974929514848549152551175067404664961604401811659777255668647641391627839058118637973782549127351804174341669055462377943684228576782809214462431872089142393948825782695874005088763550952733685816218680336586531553578770054020570083575571652752221000632010096619628544719474729004805305578807129275567087903789547575036875580615405452777886759048874711270494707386500296376943814795701032133302701549157861238887889529660237769968261160483065049985658950315444475174560764992744915770785434599807436167763912444100438995561699924989015280044255826932133013508444562624750375305070231646037072597051391465023560398745199556015809910747334629061578036819501250111127661221356319460573560720195015388034326282928688789149252855872723152435366450636062249418554810763646191698833496191505091321986689735589412030845043236675201045863026534049890021108575432517869878376569306920143515958470848238515094367495334230637055299300584246810806787470388011392520103012582690898263011217724388415331619942495642022368045440957811931325540946232739771382047869935914426457206259675492122133475449809045115554722451763300627725261749029160223170029370757584954950972437812844626120034182448596769854107220788366926228176911403888654442189102559450412604698926756177927673055786261873218660386460213129047194786044554725418636096576974607596211528641760525180486734608833372187612507044223154765019471032195527209412629690434699185253626411273979191127558933445454684155584547147874456599742414477503280181301384221396719619997054818839052173753377317390588553518327204608257461000731547081910787680191693072498814003637878664237685288658910797986474211359345565581428307448363076390603852606368755048544879212250767078605616920057626359156955311038864346285894234602010781558461421908534059435781022727315587763953208791247437385233843946487668812001122561954326463178196604687102966141811175297237771302247054018175479120930196251118470919694618223163862903439187370406865023683678292892407541134845093478525251212654686513635045516440162921478738509102804698864066341205650169608225099135792159021142889164865162478232936028083897058838899646354408338872848724523860620198651583460406748289371288903672004496800643352234020030743562686989996107665145556344452476199753917214737199300019759952598602679747763507493373787232738119044422890405889589961700863233984758374838894523443878080086501257225399707545280352745927037107329861962146013139027436166222030442704366904336805964790671180084616172200157062401635413792010624470611998768215596581171126497092813094660097035897467151631009417743531179970628560746004181208917233384376928747100336420831494558770895002682101014164316810640893296025867214091276861042041142308552401793605886847185732416425785389957572160757636520260527408332206688955844047239421275247755751682156511407815939541576085094286886861584807255582143616829521293846275308143452193572231245661724182834228892820917241015488324701838059488932161976084927747157211261615766657585631034921041720079108232482904928147053311965756682223351838523668469169652953812695757967448321481274910824793413699017465099170663186077001708424592108379650390153722411518703746790477034425677692641574270886141725457729035842462169338758850211238562324874165400889900964946619266394759671781081948198522869025599842630771089232261643392969516342971474364177659355664218706306918507658348147366724612541430076445397694767013873828857883898742964714960580140883620173456772666361999120032953050910189732447586352123545045930343442132007600330938497618253552140371499272507984294453600784471042758202410930469666529890254274455428318729918717283079231135672938925505958515745185111033949899150306283258810322692025967868221857573159824138731113119001598974999713615324825826752876541269667376718248809443730027700825947283960705873826000023587603103669573354743114554284997683348939990864584190083704417923866369129967344061473941786023208226117023843848604142691925979737873524852311661583501391623704022673524676183096329349275064247828163311296542579711542894407251964401978788965216471929261991441508642269561655123739796569712252678313225895917155319106911429773220543875515812769722517624563741501506731667755839518935722427051564017431299010390773739788507046043711871315110541711096080959758541688981936262393926376899851596175674539454952281994427579303612180229097008411139366836696226768259230137086687842076277569568176321046829190043379646397779693998813856003521629949604308351858007221127374654033806644800200676841278491378976944982602693040154380459869579948331576871394694418008109204646874114907783636465383217870302442933766758181645637451995710502308310396969027622613714019376409972898181080075760511025709321529411130068456284787452649735331545913722523495019563926214425477654383700423932087996041599673330950613998657088309041806258989649511002410499906433857492821544508046626917231399629466525603963443172188463647775263819726883551492126116845760040002364937474466015715778293386578967624312732580183474877678218247108243641621728709960021734400517526781069116199562424889452439890650204985117125941120839546497737571002655655551608844742721093635738085421740801735201599859115708956459606614639599013795120986243436611310059033513205208685928845588276645919059950771344456897915843719811813357260270294702499045703343925010309612420746691863124634421329565107242529557096181749639576521259651130029525188615465546826887298480292327065026232366342150676550535086693172186671714108747197337766614991815006478515210759918157769802157194821339172607017377900089568481169642822148679766468318765490767439759991975264989896072204816318396473937580962670292291524925098092867107222543010232739913276768299319720773937580938901049430758372849803831539470847233693467571895186358358927511214057958691894833683700634362487840239003230661463524539493640576294706046198973203910353134077229012481236884360780561441851977336578574152688890449900023489154305581352795430544122510571636578012371737098843515879259238423253476690802505864887256883872034838446305242285425601587165370584687742410817798350236674372939044725019441378447838470088618319776680763002322790448026013022981295760796952454798864241637654988002871705857062513166403716941539547445686029368803213048112286157256013445889433162873441052552401534495696052234009899512265879364109272578461536544031665189251042702500238586773659043407830004873897938936791460006864231317918125653119845522112843964888876277198703035727737072628664710415774767502237450285748406693610221781295424157593079837706089324113366264842677763423961672914748574351030634079849538978184010135445914057283185938634664205771101865295484448986199072798578257691961846013581953348870672276413780536597401988470576928230544132965467120459039792232914155892868876348103640364237843244458327933095309599917126145240642812062049083204026472280371387883207411455196421463200548570488938657741174746707754403685334395976697360773571454673970493294295169895741491352316011319523201613346369735615186573604729019738912569024468682227621426320556847021439018233972126655349931793528531580565045323366636806944657979877449453027417848906552436623456709034969151952176980636570309091669666530319345815398545971079673100628456889116278782593873567257256684994729989437673982765451709570181913977339720901998922576780105207488886785760720815668101549258029023190846391720225046709149153323103430582998818186005958216515818576991449848630580188229535581670305628432642260163836744153873603676631013180680959910890883067300782696269993429669051475229257211957183229224512592177842146007791051071139125793647822678404712986289214958969426410133116755656655944099243866821161536357332004652577809588231647149628450825526612228021998411605777828549333576168506863895275809819743067475382627552651576536394243594994098438729370260129111283226748579837194456094151543090761060783967202461866866818491117074183201034391916943982740495101897989408905287959759484938356072906752617938261228945313841352969480183551792026027141829549308814164906861746197385448648618450117257803415988722244123828029958143636548249776366531364162802896776650505157503299469333573897976162383312625181761344270076858794124286482373850148306701462441233345795342536502365791883474464307851524934117513832142866732610565921024689610517399064847561810902789133207369128945250801695275138590609883849187999062751421861629147053333606200886878192833085261826699292555638307820715466129689730594209953016282832452324683028745505497058908360577331973966094348744618409811532708428285796890751553918857702730446563465408878859365708932888612829298058372831651654786842852279594799144169872113045454349251273946272383397900125250176279575896692837007773974601372661370334884293563988005497594203078482785494350177328620667170923515508328815870636596339196098799508325137964431134424131751564332644296020524773943913267678328253464496692182879619209869370469280354312454950539107218259023229997929231638532203087754082379731465302852530375697178221753890237345416537249930966027506907445904980513922434462391802049358010319179625167368643769540040718035086359050087138863388257436165382935646277039593815680852484722662960561845550622926272832361364905083198443113318388144275070265824033658717491161002882198206820289007201262786525275267830906636972153990413421569163755952093300232521844877737235655920205425000951990102750840210438968149658016042247799947874195051489066912177076982683507112302249618772937765203756007826356767984441582385097553319016123339674238030530411664280379323176773083701675203096989114481477775544461538623889440182036538760253402555711169426111828309652476833741223972704626759832743868415008208984123681584761225658920812001977470794481211889488145051891824733960163939124310294887019990054348901426485219871236387090500295673664143706827208918920215974412556666939522468902796728236240377381667801247725646736657470208339188788950919243146867957656197480995164968745616452583671712478359589064814204617139254552779017564601950387859126951278305118017500898362124496433002951077388384339550229788859408531946634977112505391598934337221805194456000025378532079521810289167620970524017804923778747260132694817486144207050134822524372648679265389961298131910396017264023565959754912590844155169259692648686569488778803403350257046717532317482447591305075416090813060856740131347108044086565759056823605488344338541091053021930690310042587064179814619893622640975368590530003096121178528903628683769014832392282358006207456997017931451869636158944911253284825055546106346960724882731291458547416690766464446515240493430709847107127681552606647794081067894109289461096484171246703323450581199344064833450738612939593780966174913706112733560294975458297685599781696877562152465336300523762640372335714087846652097884370161219699100473145627145146944818658808390620475050621394264938597803845736293565186352554449063872526627692924997601043566215134250698039415320092593755419528487321699649404268135259633689399885286960542719704030722276796793993115020095174183540535404433387114714303432166394410463836594587982258832995319658503815686835610381442416326744415705542030866522072294797971053523989493624733779066622696940449188259829825720167086216727499392848000944483454508220738669687241377902064193395269021855537212209498947195865912584321820404596083103543313461294607247706952279596977650592380278563570156441807879921933118025882619842438650464730602191207098731023423331214786258500265958051601862711921590630741321889380722513229584932037024420916707039162821253361288500867027795788465735490541309368741548190785018561860630106809736938166658174139409020812388210459414123297645379304847751548187341374634463771476264166267139549168901052588152832501376271074377034187224537086151259962410768731353949489191685717030602068724664043458979812932079927098917909495531213093526289002691948781759107903459724397968146051407855187758686260817990986761838762815642314130636124567611276219472869077342023553901884826060155843540980298085102718085762674148954050396992182691333658283361774133033298312900009185684582082411883825974773599039772555485961311638395783616488075490778061042200335142782322396788593720113749348404532226341340592886784506221494931859529535567307798098245863139142101294666248503123392392674140582641089422319712990940427647255725029928314465340319863823864873237684325009003370546422060660196886912821078352951455219226984883787726151856238812778608354318469110148902675547362567902583255469241946256252246301609272967203553923877046327172368726342514105424427207091073546141594377333031119091555622941823722091912317272728412204335591970178276054872608253061423573910051038765931091324060160353798766731427690143947559159458631453395966256826732230489465906552127158626389606758164852808924209583492657174405752420026250923750222823234941765930295053613574156923195594675551998428761944731112214680851410397510636633103952643696205433622878216447154721103949274572985372224442883523871486971240223913411212216598841649379969612591305800142013069045375038572829153912827359349091922866273722328077478412051786606989914434222021705560597983710051982822621663704309001626508979409538539786053403029305122673792464652633339369730797950067708856530149685282442255177762301027677212190987489925075212645956142622963716953387093586732563259634863223936144333884697759618249664547232309849523293512591906550344586403606939934978786931693846592717477821805785323317102910156634090953034088437158289218777392821268967151247156995033166939688722126935047919088426677860270675961460778908924925825579716567283453869789858819601272000566208719158522305803552272589033125835186195161338909799576149173824173324691739651279058121285463197731047987288967366097973075720359465210504958523273365800036931880195858188908436958241354648925718448978072925992943710055468884464757127111167628939947370712884482553766870823564606983248807884263276519871049874327892499690239104900250471353454731085788154980092617833547706893622134667426130899833299500674718909232056546658986333221557210593038241317295613199612605507996971429249237571087983584783803469862296695738200061240629011297841713724250688845733965426300198878352304544728533219909457644952816248387579371259489572356588182000352433035094103946045688582689357354936401020754456808684936683993095680697240986569704705089020805285593146692418465762109391181753038380950963157180602649952206537547384251496510494205947760405457619955531814700710165206250107683608729203919122011771758692975839195756345833638065938259763007574772273818437573526794531770222663123234250171843334361636230755212840135961300585071881692642641033545630735724041640154043774117475604907594589924410039210053062239820820824232297204827419724683102023931038756693943048407505808431838389841253593178468497108966280693538460506932168303743293602846937481719895672603019818222851655632871316274635858970691635008092034587177054492176105459430453405780083975450040265899953779468417795073936655925515709779412349728638618319127853428574481375305037012418437616223307027466575772812175539053069366856022104571264211042289024891222992487103042536601812506298194349490723657342970367477173736734895095749539277441167358631203676927318092796623073352564755160881486582847449706633566438452837119436958264797065434577185971030283926669723939062662243572871972668607892761866475504591274103005573519007772793664138275562606821926893688300241921971305434005926101225371149300479869765659605904479707294947847121214854149468280474333053144475251026264555180295059133153929138216295425328196443711927948410924106966211462873367717878950573087416554500617814552809035352688243668720811917671592564951677970826255025965142368236811773946780254724684926893582846126176191022661253450043709319199973006174655727555674096467691532070104842133773516402669713864428706632838035602204512540550001638075979070441848265727014621997191990808491618483665588218620666015086149625350130985494878043292995729097759432840777029232761047056677195786236397157292308615927973422547724698876470767635091208572647168321353416583692185418017864870916546378364372639916164150091564016979681068913574647835478571538783434916867894759857566111511347064559995903814200178775234410595394832038715211231651610635512745815851810724065348570736883814916502493335934981625266076775803063510332635226504431737533749595207000121878132856943678739645599738179306590127669811961416717285224765703493712370304904568946547520942761759924842452896017974587826569926373204446447889709893044561572966048187950227671478418815296264194441473071499452549370268668897364593460707312587451242084006403066778014500797667221192214046578292994058838269651094023075725271019690625536466387076798573493754415332581015773975324625453270603542238392052943907202121782217592167365946042388058642776114412845860285471196165706051590298213754253966426754664910663059702408553073748467741099803141986154939585233397196941069018987000187821857190027855454652108763257448575218532995647081432965835281609407140619394193852543052678326121125902706471776551603564766327339480788900213526374092533272404584309358036581251580859720506093855392764178980702185169961890226536116549896792654002083900215777259086491480562430288359317523446232172581996139314615235101277251435150872825768341303009140076536646472164373332811570320495476650552744682572649462678855423032217223359468176385898312018887185886257675460458230542539787442392329601770282535828698497576457981632718969404768644458811139864360926119109862377271111964351859784218647391676262775750284405711655864848952321254883863172761697430556514198284563793422420019840443582151928379024085526069564473010741220394227647961248794986190078925143610141050022796922849766406720641570868604194170862129843214048890041194948488194740357904376191875184222082352393085998241255115220582845559852640560488724061192245087812676812919329665856768770806307462189620260464971580505551397764849420543402775969299546332230051495764261030557573049912671100976001273751624270523233503466479169677409046413237741159486460062060854989594970289526554563220102024865832249035249991822195680446776320243290637355186155202556129193056142171632471658722420357904518572449697309212094087949359421301607895422709939404152462418061544014114757690092226308099273822883987600872303171311784775307791293252544283290783928125467521921505543926963419459443623115670219952016452704061599932129941110175036677550968514514000864188238253976287409792418355349109250712472774296333022754441124297387164602640125975772629984126380133013663964095997393090390305427766994419397097104290321731790085279225330653741255090790964173216200464397981114987112950846872223127956924000155828806246635498524071505547917063693822815532514695847583232924465156915828179511807969014090661294918782383398942580313601924320063818403817781281181813497951031348161087917936966371359259007465919823273434041736179492454270160468694674745149966139774550311752116827206494695251546293955122213203416633422735269795033036893008056515908859225125067166438770535198744008758341928544969143251530677125597726937819593331631371456604298332131525030831581503897432163440278554183720554270611599852932060163581189470786555648579616164419975091653483758302102537592917515059593649466114782745524303152227095631120197757485891615666924141423435611570713167973521786821898152806024129474240376927076848196106497448368572947905558993206091248208768662006846163291889806528189447579423591839787970615249069027766371938836075244738569695377806581921441451275639869148770954799563235809510416659097432101959533860569899997298011087288776548368779985229519773352790155937566586753977636252219492138728521261940050326113534360939412693965176103624076028520032593945041803873839301254991713170221109581732616325894540276879753965542582985064802878225616708530987799278848099301767943842448715472934429916423850300501795146405597141993220493680951839444916475240899570448695992889749161213349603483259414772282557846026934264786792922609756264330561988892420380675309417163873081980009793286616989331451185683192444247021759271434248686328350090223385431755215140180422330978755777069237371514320546786536306764378407859195090483362182451919789480399166819151674625038703330810170431742728336158536317112928894511723591925852492181805405705724914101958462274783268763598305225998641401708266931858030714543404340000083027313800123751536378233474493135755681688954171989978726922228547193834779659845763471447545333975233587928818092939734801684535395946668150395915841875378772743292965908263864627255189913290745959862981305954945731337724971831765880496728228686670976636608601913502796710718686301087460013887341252978437355758239711852052632425566344420585060850860922531137468435570573749503843854118212031238136002918131618591127250501466456465220738214809865539957769312118968020690749131752409621149222984433528675725617771114768043398949446435830958785915603033680651483069594693366000563772978364209291914733388263411798185025010092037083438038666933252274198478340756024594029197200251351744463644241209975929070830989253039198732017454439399703166300965600634879828764387626788410739676651938119638029537437255424098818733515503564598850282864852736744693557078832431812490694736338074264581100435186794974042594115890780534282910191848814088427170041029337195758188505866555901605121436489933098817410902865455235761412024789672495617143168720397230951522335341520193102278325537529789342287898820496680323798650774262244160281665224587154479216747512157968606808453842497028473222948827310605663162001263486674087958757220200777277031986088057050629996915144693882648498444431375145336636145464514453823333515436060691430785022106624141283788373102396135055357436567438633707890474856036863199969070192501204286652422079777263180628103950871194306957438048274213890306484527429189424637664292274405350731349994379585684758502779919534928831394693587933838024343398792956133927434799095588574629644310094695200018819458817954470424422380352716313204664268831198907872420874974733668643604505020771509906740637150034003565542189424056791714897196234896590664604534808898950304888950074777091048589077000675422747787020137870536444406229162300037341833695971458499694393939924630228162188339784126464687521523900831189816454269061840888512662760489257246984457034300786395009342982325876340358161610505531834257443383419009559887299152776045837624086692802283243148889181424495097390756924051067895908649625427355431460478902028564915748022364752868652585961858648881217471399443355725191035539480818678551666127702214510082436958491453352879140142739378337214580741578688582322784254154043671140929525078223859499864231604376273818206730165806861055490247715920396489594461977874392449659668356909746468260163419566873350777391918991714553574803801822817120160290650988632853023468467657311697250671795505663615372971227329505345728068146699471934312337016136165080417497793003917034833424076635280009145975312496598110201645444803742329254584089583433691213969369961438431956915788903811320645794569829702435444771592977540947345642284817118856706523101606361786626191992709632993871002800895888679681886867383029712183615495258145697677834013816330778347221284612074107005288799943661749295223302723899042270269311454077379118413579732252683825290476637492764648170420507708593181503588435490916523477967643119403231998141981680241629763096950921518160202509771771478369006149248215535086132255867731616706141937537648370976100553407289778680110594882241460865995809634932572486760067344841849113442541875614579063510252843921680340588174266890032520494502726420304012971533591631586265045139572215056086082558722098706047637275146007025983889740443858228842860744239805201696137438008886016421432033390806326766588986609458572900212927713930425752060848269191994466319520963676243294034723813161641394178404076423304380828732822977620621253836041008266788470169819309740500240570217070680249210231213656072597206184157039856257240209174790127389586196569283219998045892504043270655133433488271812542946655094066406195265809319254348394628898373913069546228756636138728543031832559084611905944973633097487602943598410597945689780659888907686479617476747878238827898271175900134971827057799233519024027154878832024776974311816494467348509690324696146124880011234215480875728992645089136008519294266293408168703290178416829126369017752907830823941848111231661646526671369424650111686185925724402361913724422808292754666055160325638758656616957152551150181794852630707163869138976876910628425676097017188162282121624124316800447822209213325500173440456455028675371907228236275580405974976371217568654228921888884747743506626698629354202348477369661474479182284763596458669142231126836420708936986288641757809208462985685396671302814170929975264822517811482461669695551113957888474865835149120903715002901768674611990794377556973543868998128677131414685000269637763542626365809496056989769714552514561162652829102566999619755506805339746072709860259150037271274095327171975170246133243654137987533873678269832760419804149332246779936981466967919420428151685676105391737642221692400594329493104694853861256624914775475549519781423602864235197627315181176111829826316726185579914884461972916191825896366846182255950117553680802229836807723209290835153850006788448254085821138383205328988368191744434451529136322109114747058049667667938409905137467474994659779048095564509069181539942168097298541009385534859236068263030910544922619276782067952485543408468856671391480334665815857069906968020095971887253029913456349033598798430989950758606654869915616075407715947457331290822245466113307303133344147527883268490886934609070574869895313113324235052629241310625087051749166242388170679475410742215615711663394587121684277201983073655394038428356525970755156869871896031424747546582156082863944674260297936204861387906177262776456116533974913116452119860782715202092644896668131892680962946082595736832736886872317154317381986658395856161537775201331558616230605830955202098896392999709783716451583256340297595250139737248799589599571419882188229047467165211827481313670492496462413176381256799166945296242544088736457294994916455381070756324651521109328440733985213643480461149709373418700452620417007403704367068857918605537071839997051359544330702633388788006447382320732140683470917568579559168946952766148136964634719429961332082565847245440960421867792618251227884768937934932911077061625793115722575693014808486759565535973375380350727102148730528944164205117097830769828022157958400867641870218764645267801189615489258622157165990859308013169534891678604894751642472843712536785058508190693946656427750955660482205503876228300501277401980553655742758884556399858961319507873785939758233426931789805250884492520986774820657298383417352888455655893611067965269872428225191998272882403672172495362357013721098036109869337498312962906046440454327596112221302336821869531413070606447437185108415179725930826409966968345058831428694156392771882361837418296662235306226943640261384763261503363796552724471482564187859623283522778752667679056618060914993000426208881117318974338026454537653723638331605993089936873904264499934730324943007752448490160372727480381254977992377851322243233693160639920590990330779442867785306807209524916353041959188447249700585928393575772974330247633836633203014900108495581541758571277845613215273149827315413746245827056422545414317774367831621060634872507964738551315520861755866164487532269220311497621089587671112928762252148204739299895586501651174933116031782351370662788263180948540480772681802865485369922969584974077121003928993220960821101271119677954770882832453731086435503880542042093632380903156511385405080252512992865490070791461663793044449676374015292862922870701040646818716714687897963999430083545606476467461792937395296985875013268467669003155224596552139076082728923927341657097282213201166016580979011449836175768413147829724012890562204277594902768982557330238434400810418088394151606112519296622042236411763790607359271166482463514935256602037800811631292540490476452484449521776553084709609933257063880304208575814729546728048875068326902645716186051781507310122560895072901995917049201801361507512840963653028029374585860020162171726402242542478073642277719210730095178388532480746261552617033555877145954234104476066143944227687015398495858795044534836316952859046890405254852170115912915344871843652079990392674905778827804882301191285507260534012463446565521292007574426881107166753754578217182709552985405824549948562391720648063072421434827463352903358918431636737635509554459109969661659246368935021098523473917294051027335096474652060462136807453009832730894871003678720740316944727457333585300564394256845498311665112602413237348840325244018250011938490017491869924989839491331645974004070526475741796339178692060043065554244534998615495537108938891217609728129071640346006663045008733842328411908136053115802661969670814400456671030440778885261297530906070276495982950262239118455594240507638534225985004410186909004787991952758932059918005208702186419710628690813466630277013637146988568662180724237848737792877187604283173750117191387118968878589871138532376232762295603779809037113209642546835824782116310519730639568806332048926025680486116797170791750754014356292925453330772055580391628753041593684545730066420061817869580005505696861708860450303939868107691221470970577201856609075658072047397244806749558350482840698273873367005077198558530669162956291748621863990215650335373605666370914155908582139966113516390384949214686941737037823956185071806440689499521461660763396513216249042257829044282564408077229215711809728360433777739936395980496562504544722575670989650581014524801780515887490955688695543128874873005981275407951597027373026577776704045029945003650789378156917388275998044825858897743736532235642162514442296635023464630126957927325473285939458765393487372008003718022455876942369458206139835248808826437374544364793949480539856936744729988841913295808533917551714242737684559534443824835607567502804367047450988104509407983346520543255504566128671191716455025604637657363791796986617886153975003583652815857358431670880217834650296094135165697801198465511621323418202433043324837371607934415714154282556922238132358624058777612228148381954609348349987263024485982744371107434514078030561759881845049528535725252471269526504045505410126345990367182777406508876602877124148688120635594366569727787706562334805649365720769266736574720974701035207619927246558520628822856771045779386942838563596728499417337031511843149888660931548635930902999963707921861398134962930946490391356290591948550468918127474176628111829504157219467169668657892485166994739006693637692105111332858097723644559819101036145160352115509299202960425941426506532663777488076132879487597248934196551222273717754079006148151056998488497937966939608249945182731763161168145043051850515337226138608269097538492786541761941923349929217220539833646931769978949207942077173991119819840479336504159077453102444036784044707841503656058351304161026355624933201890018542560332466623941375498309148460602393355645910948548566610251362632852514587835808061113097521430847255385923958323413041246200480152519183399579094037597884375989279325857608960892090838178881624027441808558059895060591577779710483404807017606456006162198543082631030493358930804866133856832596162305558209557000981391461420946317184886046901308759246084136297308688088278623644706911486654733837187994428042758329158507049949384948827094388787998986833773988657890621518937239779527744851887195029940593539195382895178635461583441386007218105844977957995924786629121077349884673299341579965855738627812961668807328428360049416500217525182183313046148628337875201777559914047452286256905725050041684121559737336116865404368438286579437734742592281337077673027207989720903099200244328405461328750361030012709786347002119732026636735891080077715005495799836540070416261620325016798629897789037940020407853923244349004202661848592998275396161617011372168043582191677107271237706999775627664053986317739076114415283413111020192983532310557744886512665556587413178124855387144055610563779973727752625752182141776960365603723819672006543157444708657600771057773283673705035871443122136982017352849681397615442998694733626427697690009467268255293750003776172720383104375075502609973717455946234604545993063513563512203013224629794808519733735605915772379898511469348639261961320444577947784253913333674361375929422501534989746738563928430516626527951543578230255340195304914033909619374321032736794458670365742142039992741693145946712759006094995215210366722835962435036839599725003639686248226806026698519494951686466056052534747857365071467109202669286632336322359849474559112410872622527469547946091989348718279318467027993583164908504023874433598504362399821769813011303038247156151984342085814659644968463761745496240469984867737251665130007479978568583535631461458355567246216601839203820082738489383007933604656486256826805494162986798519565716977272787627200277127080505536501385448438254570264782172753241001454909374065586121373777387597754103220023460450335170832159767291384841533037376653914737005960216234239338576441410113426864904530059762085728401779076048198555973621258044164812857756320880608685579385409079785464660289320230782640711174331546022914220521598394474244338394104689369654425315698510727516679455364475881252039070149669102133980207710161793185827052548182903644086025932743848435895826140119335681195979893694108385626479290345164789677011734962072689976112434828441897395254991048236189950470264859892128933667877316548407800164997727053719855446987664696311464449655143805892410312291216539151072866782214207716850638726265927448762640225608919698839582385943473289282090613925892599574754247838321818194772393095337856290518753450358691756819920969485719508678835461123901836255308107267142412548232552189364291974094554389808527907436144262408643107300269071533026363010629549211368678096882521878580928908431468318276096545696489502193293926565993086040684866147321234532972038478739430073181097813372456513017401010482131387651475937203293329167230604202737819235903008043289547154464903465496983285820339098039933441171610863458244372745887258289908920068820063683267540387637850036931079053051231177281018390910456676095679101739363883448685791556304033937964716262529782126794762181852042530006878248443469699997489263171451800562783535491261204968508964010181551371087167092413735720960841567074700286132699044219689052886842503846577454613113396431116439037523057705680516880241585695201224462218948709415114464438817954815379069656199635839638186843193331767560372315315784914935983601892807292583192361683908061273841095086557214657322092197621287399429081008813329557283788317282616397031414843753586043629145676870117761041463143535120632637667091031311056315109638133407607989086120700339924078249659160042586215496264432104603999334940415277845046326566173780262185725339351699739290149143549610667624787098722462735857542767652298571338875511896204636848959116371581267433164249114176462053545302799021528657857935774059670547648055103848045711980842295996467103838684365032059338153018363403928207213729941485517370445385498663835059852126696253548033705071094172781458646687735800527465926623603863248935200593307594536293440006630336242453309960222324940396669671807421741630470249424698803570678366306313589313383491600941023348958805744855191133975570185963359083135986675571743637628117091448656644328802204186009922162278325807762240003633897498316261914712552183609002378289219868496029363529847634736987387743582097786070843956881283865046812385664555906946272939793344728971427753628298633749705072048179362042543374940560269858218154381320615019866991103780292768133978134972664448925398207619136301080304587251160397917885960524793227322113462415268779135106410594316676888746828356019884634485421685091114906202519499934853698590426891917677620479181479247895564980687294684875673094314860628186406854375564993868876849238177183519703152599832049213863721539444051246348721704933439974711155871077549053136024014707171532046761012902016967227836097164817972139376995917557039916157967401137485897753691608430376492499047557698712167139576684752356329675706052723454433962920737582628885127427755214091355124435240643627009192578350604353743096281901329448626108008271365098262484475389907887867558673266929517635945318069717678572487023835516767412069612964480451163850003223606550490274098632584818418004394792079334141952301825548758327439382359813069986099659429810356112071634505874095111537166513324071617786016153288434896870130092669004742706198016941222304976549998592177445256598427709735054590740683203293747253094034840889582488822939714648487031524131200909948528849691677419901066031140434759112692914997973709457008587785942360794205286825357991264385920250409052035087264747035910573209616946501224735379284780169775142386121991820647386623391439776863702112384515671845502681535116267287681460169146774437198258580388605552554526603763496854191402367960951325137960549079780985596636872633604672555871917829505463463888770247899061513489230385928543828856272253657733555780303870183506660532615223478903970833285151056701682838069398610715139304177422630105967095948630143473107380061815354485162325094596248125133658748061975131158822322993240675655526691549760197166784232549923900778228827190563226107516137919405884792383804069278020568118656345049824903742833090109247869831492269690148754659720491724178020959677373911226335627670111095248464508281126917034911059294048030179178543000667651242374511025096158898839300161751628694188277439695915333340676651691214679344497237750982131736464393846826422442570748788206086502558593389365042845738808842410032707580776358087814316944975455149089019824600151925966418593351568671695764031070909122616848731813969010212923461278760986651435030371552637793531197278179601072665560008479914680900683169220058190713041962499423160387460643649422178189772971042382963798173497466242939459832173031287322023117016767928213387478619306647194398993545009983643431711491999395413514111136106558275346081596006709834470875143115866043132385110889896511488394736147172538467102271912950379880610425788723464982314803460224005848912677168998450651168659478739935241375377198163515468023017401718183470742545017951277170550446032280876562580421125517325763018752729554919057923166371706394419436351679289722608237810755674770837575262544620170120472711119325483996616093000677457712729385307916701551967140427032565571780249152566223255612576501508907302380592114173879531485778091834073439014594871628780652264573148864291837034416345090219924485172270941930782575122900653420485427253495101968292454912084527631669283647804494362973855875910266527659684439958129983043658621443383456621459736709177352496467235764048261294696430245456165843303993600940025194052697902232136149146894243115211133232514145081154429725837939881766404544832943377954244072448396629929568786606867374889504258521746210571971245834231643625021770030097569812312502648246366439011136994841686482691191818795127156810646900695866593751339607881932873904553753489325616023333111397635204948195254622024911281629471179595554563046520351167933891429903702025286629976995124179855485305017251623218325305671908276472380339215281334774354905951208737441848670297562574158494698746573723639089143235818339546886140740325432040015603525808163396819575636630283050986064157941671557875107465400994077920645574742182343142540274433379845102462788262851206168227204022011916996284022065941782918357943992139927631054778394373367610036852349292391887970567962496206718859657534283111810809258043247874142118607002517004499865437560931308201526647073490488103023155812973327533216840613481064141038854598947455242553351618065131788322550341270208268406546404889662074603414784967361152647443661291924761741964981147728548345925966632137201010665275071905872017898738896894199078320259938028486859964312463329639913851354234910039387848707960538975121176805580021300002590925632189318341159551350612352211568119795914440410057704353246525911529689624616577795782910424110958947490930757305478243064907018543662942119669929268655800981886186244935965514580749911464713478560045597377110254927337355896000989562467980527830737487394700324310705317209295003248846503277722583650487245619501170662356857925743885290267223736264823191154206410334023697114243723236467050807281102446407267917859246346767005261126565492235017681122028177935066413385078851206328847691412338651135334992453123091088973249666475224853305618895163292146314639209611687629207725586863103488247410809553266023402072443290751965715868692334009748899846181025091038524213169631426552984975629128724661455253108865881821020776381614488542047851136006749654668830034104885453657706561287680848715013660925944815690611296230034083570044409025481017537025006276700736455315774861245257101753217038419072931159865124510741955146473736264437519503282286786072004348463746512749761941195464293488468867334594215078785414285124764768958099549734360590443618010610182288123266288116832920913255819222480593906638979059581918975909341978733867376994533427784162173040647354322772009872387357025966841000233664495736579992742966238980629960765017033280382290198714667192581482772006725235210225587086639237512034669072674226032235623797650823384821501214567411533923847320151071621666038414576624992535662586659172500158970423439316681436437910527512443639203825382483377687537478332434084452520294374618027506096805272621219739533592920560998986759375619432180392084538339242770785799517552526260149917817095398265070370434121130191834673519687129380483759176275124410642824987796264802153953629809188673088797131094348950087971746274377231176286889532619497676861716128257255286421324736576568961981455297518101736239774769829283123318281431265544696507441332117836884203561869365351389284039672855347255006643159090990678597702439558824851680456194221763580924358837224553793781176099799581692707795117448844235946768984514110853957686030954071357230505002127267575299930686569027757169226126772402017973037822193192648902205506822405412679965870879961410945238403841022079503157047066464061253434333359635653856367871882343248218857845343358369174599730081868656260677446570968550473559088387016018489993899742224345860973470381821089581293206572561162510473494867867436742495441223702630843871561183876210698625988130633068946707991551407337768774711448873217171490046934115985878219505896785770511897718539680870364764515015411672434822091347327908187457924863054396615647580355142316937872099943777648894075909003060740661870941763483191386218344350294985621575437224103810316539097959742552656343792894021534607729265620107030477227163334491188950825141566198474251071266467964504270444364429467832756340487062770945118332199022663259959700802619803962556593206002725966763659026759745334099264207891394366847301106190585196311785644885607966556214896374260807012513289870912193008682644759887679790443117234883813470336667988897688685527420530575959419776701837326700163972041931710763526112568470528800286051276096541330958651021733842276121455327538069558554268847663634463517624583893443442823572005305318471624933607453817667851827449589908901130559644388256937248125356273216567679731591930595653357463456800200787570024869755223285288575697064408410726999688750651210125909732176039545519677582740172222056340604309324525832622330736187079841200134203045995804758110268786085435009781033050411219663635580653170329519917083697310496950454371248750486157965332706573507371799385136611322688323844725530084463441224367036328887532502005648041385107036473111897741560091371190908999374983123538682827795130430941956227815583053680157170780322360681309614911004994187737179214670968640075814308752379498136322298070989261349240150733095074232586720659454943510982422726336068297477733289629697349335871194705451833038418653868567237870782758999284263619749829970116516353037229411601148082168374127676666148147780771889269583631975528365156704022201396357923198354056983949024825207907390529008514818355325088255835459637845443739488467981058807389935016723331319443237019350444963718922443621890505538272018668536414085916493287571767542174681217692852609586126999626784494288216457933561304414068927445623376775131444570644833014282972783566469301021904704367660679442889998865702804515493306185741095094353967562555054400150817532109843758315731521328252066998563613580318936747842696923753550215176297159505927356413473411020457872106153763785078512109220228705089958198554177532351328859448912171999100033967429030352135429008727579186874155501805645882362591382811457150967229830832555677723955571456115270143711172788119097746773707934108171553582338186511528015885143033570912346447672963085605506938662224660482288415131040075145388977419321225703487775854953426098631501903457180637913574368438521042330374394301399890401612512013026044720683123646165057861736602352889831379875132123602622474048378372516874205506606738965848086720418064194415809790808049713214693442521217777840078133102598215025475369884257012529213165016778762461963239556657166608754413625775158737864273084822729899693065641359043641139831074093502219623108544019165077448199754168820397798788054512303515296448830789262242596184850021499520920005318464969310470277226761650209433521168336163130279965019421470886283296213889321527739095020951315915530438220042544523911351689338791415944715532918004398762890130453217356270636376654577905035649530793808005650549047331883056188074718806749304075856488557064061386394497399960176420622628484450936523953643410958873210584661286439446175752967490414688965021558091583831032389050335453047988794044754473863322216214394665717341861718230254387636404972423020895415156067453524611780980239625316977326186908388441221263781963544817533544652601457695416571278330462655782943357313020736131206443224547343321504201807363305740568108990658393454617019146775304822813657890273426434875208789367751874036045692612054716685286009000731846297486349429133405032582541353603187229492417075781469043678076251919870797763253444786054193847418902336537653309294898765621976637919317486686524460026522579700129790376847957316775186137103815971612470901795370435289950247661302380784310778534833400282773361768537279902731996685246449602507291915425614855156339048222684699636587240144220478991282231324368727715822082435259364112651597506392343511843422098395683284140483110953148184688386432466528701058417236138773074274075956593306708640373927790304744016675662521604068457447670255129150595584550219490172049725592784881254553143401339603859240310122027353842451627532957969999795210303931383914323716918589710648681972445454867856580016067738549058484178565095326110812269146215456588470635683705301858030410757692833486152906277422151256717782286760612365845009175392448427034016821493672157809528770635778446677607979877435776233820552348346672051445741277033262481311100933984088790476311118619873019685032591052953604317690389848455567619772424643669843011003679560294959220591260016390711860074444270472274541754302169796395522406290237563192179735581304989600730819181541808216444079172140079702901535842129277939011594312922746266479227314591725808827503203771465778253580429703294490343043526779175061665084234442437589517768427745767369125424722315938294537945652750922509697895887311420107855728783625636963828338653682042052388555650919417208298500328109554923073458753896101525740840525079830665137736985231978153743231528800799960661001598356580027500228913148543171281534990925370198448357939346361660667106672668539804747040173341248315633137677959540871985298956496600954822901598896513713693801694744164430528001387592797770849457052432340720121984386894355647489237985640631644056492134476530194314572446356698275548533182092985218312033651943725567512338139878746044534714923987130701032936101332504172831689271597516179119497256414054998448204428307307403388108008498691926366250519567497614407986751224363083041992050032527569187216174831530547062490441997208885707923275777500352073989786239941530623718698058756683676473534635416939072943302015900693065218568496241441155559223262523980055812172189511073969557446060306191467200542061721420264687110317101368794357315047562644488039365931699711690089387489149808948596623805485764038176477898689297397450264865878985814693977784208564089868813528324662608864407340522156074028965259329399188682586289248747606038374929032005418853889577551786790709953323873657579276333459720287760012662966202803667584188648128012143761076396689977510737053501456872427079206832250996330281045681127154131465226305265150115588678495684523811410148081309427374154737418249353840351807936888344078254115093442430867899054947330993800954819476036103345567560131781859634291475580724840533681198764272880280880903593480151543104586654154630898353383263257117560666921106350353194168430005050093822259919912776502993926951645934258451040396131643961594713098665771613556329316076418512407253772244734205120935117396475836973485824792314084935840157740601785080790144011539773583062333842534500696124860560493625761641953910486403515203632591036075878464333907886063405109486618571186983464887549996859689160078398678536061191131303645589834573909873586830446793592764110797532778541666715581786572559948683053579804853071108708734713719585619834759508832659458481981424156757627698938772495224615296505206464740029666988361785825661715375202813666157420274609164970379811421276819021049426097025417447927206984787971876743696045064171790458156248556289788407904281282843533888031317020272014864604020391764313585316357052528928361007437327171985051392855591576748214396181834481455672159600150770569163196061607267680188015866839485720040952735859040077729120279223991131858518324795343615566471965258812961265249112888118891453854798521802584871711053456138770703503147162069075101417064975044964008027158108758529966170111943449444482187067336197759708472676536385923316215224194303161322788694263217796645020389581156454022894351060527283847052021464820191907871465588639313475913033420531177071332062109562635193657090636992783200952579810509145887267585115519000421586819487531345275298519945051214365386369158127571004969649431438642208870372589648748218608933717020526026128429220799212424988728460026596232155755752195509147514294647951223332466478747501050551797481679633044979313101596269383180661844570540291773822349320472620861439971481882786177885107392448994114473917477221782685527524189495680955992329708663547204710196113470392253866613087576276044389131779506365937162941091294479249395725432301111290782372976437722430437509211312679837238264038857886747478463607580198534521475876691867928437523858179487810425548209249166283833220584326796721911056293338480444371700829196464832116110488904016409739265694939294080680600818337176296747543897497856936938485142688266707987780780167297283061809834214798919414331304381095683414557282142100167130500327460320194728433586285278715953321376451843526406534064166118662817994066797659831069794397573365741516036351117089594328588068496603573812552527658981371165820140446977137206945997608849494616554982284703070099404112799644761574677182342881899202810053617842188775409381817379462095648650907829243784678568787482027320624472706626968719236504163204668743404476762575992125523724155881448535890736741935332891631040456812327075566318791126747475099522722892259636442260103080121860451735938430206485240038575081851969576587065329318660343752636448568491136361229409088255811982806386376823649905061418095775735589087465871923999023791344934722476597788720865400173854639895600663577316335226742098676235903342073465889738957915401149142671990487637180774652216892249636789038761970119127559425532232788270115644233508207068576944784149914333444516352850134656457966349978197402750735414219877570611693355957380561460875987664813530889884527148689288188508639614042237385737603691755729414626137072106777052523861724023746281310570295608954040695692142001851609581717368531483140986716979282847100298878212044149367103555616099161481062806819174518756764832351679918832857672794687941946958091606116153748235998391701568196048979927985761315257478255596470776956112766284585548102408900149824518476046313692191265020049717789332652201230537120455978763196844855816660373308986645467878199128336048501418359299517462855104650592541268334639459851151469745796705532213177738461131050859688014786991423225673584219495242310594825775320054126002451126649118523739055751250881373702766488889379152647574659297415679396685747999419640754536096439053931187131187467721047327622304223501138477426582314988248093100537100290585428545398572658337872603619582498403315642426399929979157768851438022131748606476191358269218818878203120031939489642618049796536450102649082476132156219903630875193667790832510226539346211586463454421231923568500897515030587374044604982992009468032050637768701719202115628366019563888902346502588371200265627329341866120720445389549633970577148838803027280031488051388769214002715065211607890467370790077271414066677624018963322910781591319921694351873926072809361462904373232481107595597973304007063059863502127348197214175242995847384802840022155245100868680185058010906817063431997340913624960656768592244860174078634789641741255072736201995127192255272181551111068608384866067098412790290812001789843081037230774550943305753286021556490648861966491928551856995367332543283370881601872582871991669305565620848287584180398823440630281503386098246915427842583497374445844544683726083275711341609997802516042220618496439500489432850002171822379637392543699730965285501512805043634455940541185031711613072228448155555751722022920379297462747767494009028775559848921189683800434959428278328831141092912958864730416679282935461359881445490273829549296326674807373328566372805667204853781187112009913422868347320147506548404999988324059342996125659262340288924770712680170462483687347354299898801521783086977668374044729594149423243002974317822902322447936128241683704861544502990193793697239854154498462687163580265475514337282333410295593190915455048457220807178031213079872396854806713504250746654254169887220218915845144736259883947796603553135703093778990433394160153310570442738544867700691551901346382952185223197482342570615018469620173016978684158532217561567389352883947894203767205199201841691352993406535710920846393098405278242326377218742760011274055171029956355514894570793998351884182131365445226311456690899907158280267796839363700379664993916968729730826654494804772700831754755595462251551096859235909560449232255912400111909245286832113882052223352463516027420098491936290954901502030449373960661380287208905965306370661460750558374244518494256522053662442239907306995557428571686696822982686874685776906867280045959537418110639955766792098106263406692539346805642286554670754146228784855433158265555020241401759918577171658887518305969175481280417442977516023938530442925819050971131779363106612852545362607263148231815193611128019542021911038864100362863946049346306267048075957682218154797621475041263030066410491846823200387005017360265703268406427528475554766225629724567362538665636988937976651564093237169972015377477872216288436833832492775606833915187420242046698207034572982064903818692396209288193440496497140082090745643002677931476929078216719407254149587586028670023640176643184311482298967360872861966398131986618909587563552695950626770489905669700363095822618501020769030702193175242638845529773874159065884314553684206897711870119880341474796169864600072786194998958665846197076797454309524934532982171071876056899852397849744758699392580970106561743672244080566762730001854077759468110392137605580858712943551224968259958666881701234992017084786198018414801758808517113582821238035119795052708481169512238437346525576088889784566190915054084193357440926392218206725328288306841229561410669478698164011920386612696399559758102252156293677444425023516201961233714062241896224784526538365583016302021380533368053034314749063759327140861071018429589228750304856068417550593774243599839651844871551860859451944904284593857849760833626409504162126754276809341998615742278099201276951432838984380966425403787087647307149871499636026468490935704348524296919223291442815218471966254115394674410051899349910238282396965480831449172463437760625973698694302352755936268387915959771414734506096717743552579926560918230134218688595495411595082013792860976876475956302564584792336292988895579392831162790705132931687526094683672203982566944802027204548763511319751178921652502216279741640043663112032840748150354249283258757536975154670830121806371027769183117802659500976595550935151448938321707242818645829565263724506939460933610889777099400108049899971526910437208316221324739792259000982184372096721364687717970195723027504428202674786408004747164584602079236432268309271317704172017906476393447501982659851839137945118606185682217134147201918862234878147019265082269538471880990574704005101718771325810772760487212429752114308563752418332990082194259802812546457989301558665903808523369881543382950639450837376029281422136428510426224654542160605467700693278427333200383372798736131096906283928066499259571162616259705567190322798826544279400665656670666206249620226143162729324116328143574273746975247577531834645541290410414422490034647328229634509539785737980959659654119226315150533906223708830361259017249237872411129891797105775306440180645142083357814745005562069040741786734253028209183617173476366049196447116068888331859670456629397412432763928714120105728038045355728250754755461993134106740603330888065925452293708140262330221883138202008955783680148601716503785574011164370686933939695067955601738913087888760297163673847072935148402811882440864591902750137812158192868177256717673711158171257158854125291142785181419302612391911915848272952559480926580159106256825733776262391199965191907001900668578851932829980757438895560862975089918192418811309196482220376181456703254359108616111644181320488112636682003460306100587898237650164820667566167165191835209741454589050769313017224250143709759079242091969988457962952469299855014472006165400280803755481736315605795956084387962793934873144605205231413531055779445300461539646020783875308475471028415307366526624066235068964075510197041865592540226205031953651139723585756875894176434510113403204467619291980144285916529252786737234286114815284069486411753105770301319684757029459021206684404197233122959478068503163175616425948375462766756731180401640497943232415686793129949919855163462365953965215321270396992848189199910758080763690232275046221694956161509268480801426908479500674649144222976397219430943578511640869473315277168991818495059469121679770997299138001405781713775082915628392075194914514103370990866564556668338392459628274781403843569227820691601219836885479236813791280888051817949792753144711669695627303321440658019153140447014071228572416416838710980722390226531744319173424705307728381618682996916318118046682929984827441351350319467341665658280174723756201124958627215219842989208184363190475208235438025086604246300295897722610876701084932183522200125994768324794218309853427864795965749684883623051483390343467953936379003185355846638538303695465267447965535984841549126399818422467267143660155147251075819191099102465175775904571176732224320263871623957507904367428187081705744863313895724247954064165878674297397390709298054917610322275077423269436421942738182986588049073098616514847181377057253858033430170639689381345155201321965441583992507244587692212352804718166927442358203938749093986660893506704706270315599573475104935957293769989698186082618645396091176408961497655616465132476061671554252205801276578310218141653202926193006995952182238811604012106603661026017663566556974212364832252634333156311723049952160910261878953522176082134012220450937775174732306477970742513385880977197222181500076787374841295814277136863954555590811068692339433081328803494286630591811514671156093648628606636114416581193171376336680192537808404507254727429580439864912798725699648906522785719530770538829113805234113480246016211882901639216757880357571287348381805209943944802045023323071959363298215319861713115788699323650101239353440273828805160111456701150965836801997225857571982734226999255481382603058707068189222658498793650911049805751037093314319765617227808875228241742354488349084980422546024474535637652870481030762574923436520982150568446237167691291121550294060558153923740326530644518045955872928702403715566621138372904226610252427965713115957294352517704520910322253514564836970680947313112349084948603652281566864234413266891418504723611619683049378982850531810894429313161244968464593688631298330331495314575717003420694719305327991013903681994634094932430837930008775800554778166584033367798495457692015078715365764040974755315502505300457072501104456642221521893335898550768090395565670546413055776744352469464144670678982289664360264721301009596299519372268121532684301984319865436088135195392972884261194672351561324769315492623804059110845616934009892620260175424581882817351051311159414030945839244505732096028312094388407752103761908081976114755693856768789099595714006621139626159940593800624725939614742328507952153610801457579496217418201285193923851307966960486706343528853133313625532234035547570832225108924929346411449488226693509403392031182661191456670087722546509405334280048541645483749339164271795101748010858724682926955205916365963180992198109687598751771096665938512468999758614897335581885652089080537798748697804122251378059468788779599777425222818375650234208618994421407804016810752143557754367057944109034682994313875359857157268852097102318185447921950292900005507391422345804673553543820956810041308042598547219961895383191170213186356625605383533041305455289968578571121737550696988398222082042034663096960731658585083272317620166770876713717541158957645593795708462443716500406803526184806956695572741157482338024259301570450693675307011278171261551171832916146438849428203367922669333326985995519119433287109018229414468681713370086672984101869482838230890077862070536342751141435489249483457490423803888288799326851923830205186686044362859796545622334961914127234851447995128730417663861767112656393725725889452886939800713707592556152294459254727091194345976364179052376680784723059777336130006360658827720033648416487838557132563112362155737006738017991419852942615289711069087496792096096426953495495643958178712734813838688999056691414997352494156837118119296794587161146898822335802380859702378401405365726860037787359714765079562505455712744568624668391126196627055886001142756495925377244478940161593369295428221414853260854643570211082696719659221033674420736784467377137986303251857983819000599860251062321777031863187284619826570167251383640260180480581079905915970066314368760358770178152425613511093767678481603158931775301849524330735830011443732200787845063379755054587034079491171930650288148795064440850284357206286792188639510510682092071586848265585005470667395570195524950694333618296115596677902333316193055952809772793867594852267101381517808297268397194675633188559559019812518989593486310089760121025610464450877695509893420467793896819326729186156727249797681827491009959322611006918714224582108531953864524848289545684098542447424161903071406237735033446715421183379633767998097428893678923867596965928866457946285337556606761276553901453409550104098089316513556693844053059766461707488139449575104081140675945674374996331562175417851092922239584805199941073696047922149219806711484348529032691006587257507190320333097909995127568771127887154446452988292737898166688893382735348492578658256304646526141587847483113418393639512652530161036898835590006865890342703947954768237992496651534118913779540159747227029144946567351935241621502693390127806785550926221063648397930050272455747313687628254846087463219351484133055285396242205335439066248690658560677979738570288448934064243981735255434991036629971460967682168948179953166852187411853420045092665135428315714078815272317465752331077563435536445100479513620023082497482570789804460085789831822946276813596736776362096051141387556783750815476437172816498921614232527082085569005505613693786689766854578166903706189258414563992738840926960998458480549277213880717061970515535188109220200114350450131303398674818634528890173575019653868533459659419616640317018691145163866865047460576899365629288577893842246324451749619488175297306002064515179218916849676161872832641461323331025146820309701868618107953007712001112621718578478337320161538723661713522778798479206586254970207318971215159052690859391745673524380810122134094811037057194287355637957941088771628903401089265041796445130230394478583277506086304965376655906107644390101537963566170430268998150566434833235700335091266000976473528965298616567444565583513708978481733323692646381042248707884028867165538839234609658239535580029729038753098151322990065255335672518190512667710594507953113199574048825011265691953023267933454441564438456255023235195080229201775828197794741065370111032007047893383172443940209685682925725070656082876285405345905582026718755939423687046765973385172203271408790519442235806776171209655685740530511560477720343715694148130805416232498841862509389272133730670357448285711088234662641328229607811984814242407097791910822663646619450614523402255127979726850669571228460810274659512352832973894284748079496887502637813726248169761689843874087894298356774290477065150758060433021195708248608713952025011314582248395526799291455552149090919020501379292303079679084293017894777944675442486679156399964790724258696940616587009171848996897561424774241746142450361944270862942498998644021574597562382516582902097274277710727316144409363027690330767873741995996481952138516632915925696601986766126450684286711659344099661567781189144668486192285881827274465439515936772173001191134176091581480340294627713482669362659266624736060765690870317984396429285730595049481709524866052471799974236951126898328016191134545966992981099209770346083653040744571033946848861246692731949890555741743475379021648584978041170362212184403477323954861130425450774377006020456534306235750860192984243175132442856773977700574333118700139234913014533082891615974586395469061363163306307198511285240507532847423091861822890311947612142745224378203259822823493305595778644122402556452774300838854218932208449080518758348147200676657295917822883280453648141525677160479003368339706671458724885292551515500093779348362452201604255150081029991365141079627385757938363349695478354752210375424611266871826276042783237765298374931508741678983066381338562946916203335333198235154091827851674153326455539526568610864334398387468580478730672915156154853674971082214359314962572770489748032520539455193041072046179281699357128070192305899390832328757601822889754966412126861101729941707853723473241831621255652731686726331238857146786409268542621713804140229132654267652907620121075752926366404340602107307860704081296036453517288502352559141368624698213108283468020649707085924590868502091604287818752725665420744940314281572854585731638817300732730077120307172218584595561958779930388967897716093401051470276665905476605977952066735582472820047700746738684953753233390779359258293412436788334773652450850951201107861087824499166024615510549198234452152510810275787801581692914724520054380163036085109708412496255644038740475666421194109287570942111963174531668203661284545833781255362201231561727429157724385047658862322251412820051812723455490487833257715396140394181717090495029923434846311739077750472283100914898631404210100195794884466448290820367705604744914168943213899993144287057195490709865399318204200345527334143649272265751323005212225952138403456483685214550214370960137615598977162906488502117481192866765208848929477550995213513838729465457183935222562091302871877708534281495029149561462841747100905615184019954777756514783303430120894766857089954549057250015286773848521239079760616525222172082423674598638585721892906282481471413579513008233482259894346167091648024349702038439236165810182889660220891225570058551567677913898122535215013520214331891854030321350312738031444472114491324618546891857309445203595246045919138975223143871174693615549477510565706373428361223917700630271868686129852894004964286057314600494084218069697425690163775955492923607677795559548579903027419672703301433598626260341298909209683679631023924079189955278378472860079570220045540308215920938745032774262231531608352825310128277104979182414663268686610494651868824134578415574001050641581385833947263775989657039702356969488959802608094543050207127106450392723189900514833735896286068456651319769380687071556815118470832489827949929710727037793528407581976583948613040458382408673797696994195131872947751223768230567788052758055496975116996337257188539971461310288347394137832005464026319925670068482752199591295197880794253929787951912754793684059771647924715439054851740518470372948821945250873884758538743215183771171244968715373248254576762649025594566520778885827407072543714675267160897238752652499128795973350005377997257521242077973995865980769896443791407579672889901902945073141410733716513385971572208425135587788300795574503190314746397002353066193263697389964445380356801710727660297258171739763718347964062842321200025312224213101014917832363417406377965840059045924122553997897148374301169339239582243953727569663829915646951588751280436390563347968380880033578852073201040203281852606662707834340208924813582624153772656858046905166385649292179283755279070497104833396606601606766113100260853961015362005872343120096931719604968201295499870853437354856573116328145703010305587957931901243872167476884090984855748779264463995892718510149573522526976851775157425794797691932923845782166763670472374457792317550653817069330323875314519288463119226816119622598380447538683639716336746983187575232678611960809062688167777328255209494317694717378341588992247798553702293182819007629051462164333656455759724193686532020913207314659047011043402532789746013871866446489819323723632483590728166164518925111667408651538070740711117024433521362760972873379289369164461995699414913257687730988860396605806833608475120133230665934672061429732874748308538414031938773418256854115743316040492251086730294523214457114949915369660592054751681534249471225540647961125352653558910530545195874432594154970644227584085457875141640902414661602408523848913724297218031829555993810937869173565933753968848698772739950302884642692106750195582083375952376494566741995276248676943720997187338257812467208626433621663709604382336108650947068886139883811892908219855281891931523015095105125641620518389664333039287330350485310031408622242020222354564141182106883513375959646490240658055358191263143629396455043867447997034264214209976212461493412196587860417455208807340985955162666817601062979917694521404118659857425911204145222466137425637787121953459028443909332481733558283207846041663686727539215055767425900479554937470164389841607718599793718627451913269291238272456765367796066293276550902941257465473506340139688023709998865913489736576176307990899067587939447647184600513394533868496313220245646950316551736320903982014575392737168509965787084966566740988506169485138943851192763386097073566906036339185479712485775995515119716953909598022503519124777947261177685020974876591143212226147770342714600427977631907444159280033269017610368646446277903120357831240823623446648106963414723992804571926443559289526353660512290309838088458570053117784629717786076894691914922749947947776775900607744753205117691036636843412809560066330457149671091269243429283233899050925510288394828591727624504832582591476619003700235668400264253109632348930704360047079816758519950538651196408107772897639225490070664320342322507115350121587629351839899745497942947315272763707227883973435391048962038799561923679437738256061235629688303218906696291452404345058184218475944309515591687884122837941871657744111853394826174429631113802787328887047568420845115166701813178917842999786734895921422336104618255251809570539886214240162749915434019652519028901727978177749309951851336923488899705211732813949295216846174767248385655343089171752748317117449911145518949718586295458013222086444332353695216947235847722878629789799584572470695574465502344267172836542915854967230668028274634298460710619004534037926543526149771862649448667648062234148458942790031979998686240981073612632574836314740857845484031216163506383801119690696586331922161947334716836712923531838971412812443781697367437641020058028214548042115660227491712781635011607046247534286215250278294786809287490371038519317635105470380623506043637927676709930538073056267022745020729070654064445406993281396106532085706849243179477830876293705766998558344776222278994445689141114568570941416556577779697429459263845700284810379724642926211824988167770571684609448587336080201634812248649688893546225416787527237465682308290404878098576899598947877154671940909480103318828515875265134925904364901728378941544608021353159965001779749471820763207043782349654397961220533106553911576883888735503300815873888781349526747024748381051764951482001524220606436727491071525292871143150390449452548758159357289880426229958293019063677737003276572852635230517337560109892249045647184559705514981946941029117100985897653582631024024599482510228115381112635026997571162745998795689426770141582948498178438152419169585528833503791212426866541658413241745420736406791426576689321634800724493765897620871659229622556910941647822106671540433378927557025531833399996099555076234910162766111454389210128207168325046315375059753104966546121346707612926600598676422427409804391733196576981038861755939931534456567959443832704198156615058046758522559856544382129521091600554702978501111834030316816244569652476139575724809222626159187742780541925704474600510112123096438727266410517291294826622535727595271612300265276642819199348298401155061852419147062415070396829644458354414264524570007445837996429579655922172119035875190320080451801719984179472410934135880970709614069943787802534786968941157387823297285725084993595337696688874947458022965470098911529792196056049712456816211877151167471638597249248117709622802183060619705955116200178076479373391971138477064355241236107599398932953931897596602413376294783344313766336059466583432944114487162428978042125367162359401644630620544633755601614900928795429707760536030439308332469347877009717943846127246786482221523385118484589331951136234368705211785680418176175748534701249064347282950280048892029754736506849897291288388716755104765557242587436396809212895732613332869355686433444720585351949918862860505577359282326195305248388361386682233994349195514503112090098251442656020922202308363793378160029996544081521098294844754326366337197106584776900937313708366673409013299510271051493647324237683537567657314242364581815464337483380497909805277742761303999050468694033445566540126602475890711978240337306809024365533388169277944216538987545471699482155319546933534200467285617652717531256411196787855663426034300997401575074762120391859364875708064290335794524723630558735330435225677116913158038922708373455364846002030592243172677483438947076105595663242928975717722940253196877866625398392332820594541034346060143988680857226803830807944367011031637601992549100112211244365282685428422199572158189988116453562331225199168954211519506003710925375477983967576738843221909462930080430270634317278712968300991758990310672387496950738727141265846958513958334513498080230864717151630719765888087515159155877681653991139439402214742841006932842317603233650017882437838455903596827236786867405087229908446920504105520128681388093851618059982079208639755627787180095824682402102339974423705216517413613393665833813730469774834165389409746485873218809031841616406147366850457455219599432568196121374147672409432507954603501783554776823751657094473722656656201375885061595016160974205932046605966825433412707799935529681503257143657857416782044179658676615525789449447713547234519972082070813248775833350057894428374555756879602121115579099904064317213841242653730305482819619543689314056642663262025620179861968478690695693974131136040072889825017886256305098796729745796923779529728237206440169308957275430176276131709058325732388382652410460405948707524517740237813099027889299276741399572919853843910492367878121841421820182590794889529372109565366545810022815144573557356596992724654986462305246668672965562382142272920547761259379523996500260607151969233673399743776788499162882773131779536645437842742646821756836809252169452086418125081633361082487552365450768618771480621772779918544422952367961138777462574559391853031048924468732889884812154220268326713084856268901074929657906398386126679332451902538887206026224173447969927629348473488499360534212358541300528922074998447970288783042837424043020481418134816540781989808949672799663727026618100029740312865103642049321685979919814044104065989668888305649338870405795597122693463299285411281567196638532394314827632688983094364753955236689937435887471976530937460230778888500452149629072492562092995254077078993155953622564855444649587980171237765712585500545966883859128627269146764247523083677295583455651602091438204680951109161246891491703036104128397413676814822204584268127842720197367171502476965456233457520633766358647562968259952513451414981334786469468130859948996279256916649962778159598221706484966460937651606230291363353227718596181437573635094111865076472602418945879993411873458666787915124034851845086069658143344947876334880949534034221858983073432908931855189235933558433373656896788025714695041853776131533908040301599649016583430482097089687085802297217298199602450151822076536991757691097022902960069985973934149188056905455964412978319724501076166436511452408736868717244378749126928342664055966159323740304763216327191302244151834990861421068454304884522706765345228802104384084897902383213747282755146735615155873676003139863084665898486927773549611136351645530016665667196801340459682279637901136674761695080517632567598124117414763720920760131189497677660060360879551316835190890819095370269952042432521036270057824924671539119647942194318563350100942026096878195027040240323821217130016209120528405919058410758984363240352852322213084575491042658766662104366045385175057051164742656963465772439103723336145626846371048969467928034174675582397405046808485487019130211791018186247077147534492376422233866471015841408598308351566883159734746372804424104958453177220292905650587261879502276430548044424399500752962304848653921530572978514857320578488611557625288456809689118115173765137038741841233081895452469548444717191786507251347041036665709132135403795173051846817881220098313589104470043380240346975386180157416819012487419212539487869216345753281002213981914441283675744898752458205568940805591439354033710280854093685029745144445441601095385530081715746821923987811690923155312294657889042049343982272754571024788156384754823721106192885654209642491945084691458583688908987072019211996889103478887365252889230289285248757723246308246646317671608005375031683876573972394663827077592304570115355538247907201522860975796216767360452230561329695073638700727842793337190931741976669152810463204846399785326370396860717503754885730014245924973059917835071735088573699349630160789024815239139550090408081754912769752218521826885886295319087979140897569302823307958089161316795836535311941933138986865388167268716293785123275821867717652371701482892376442187955778402050022007191982742511431154190422804898615757455203147466131607440010876588298805925006746043880176755462471731500631066171843047776427500971148737839943960125131315473063849869115620272728909915786430231424194113467845347738016686911207561161017742178559386066167978344503743017734284333125202227531865085911531413315428427975055608541496008903218820210833819014419767058926685429691971397859271960141511972862426980748231101022157543443954272737866273555646493108851124729008876444499146706386014793845006816955431982314624093434460706904873968020839877209172617390347656996660185485794063408470695135270265436193819236180405271242114442395038929214044136227869756095301824083887297060794641704943323687820288894523003429553853538172463721139112980963045115569655992079336320098783318869428204128999232627091344736397613242522583196030367073598930450162280769079089663582419140309025010304697572904712574398707319943050854466901060018006245004000282933360546307511200534287678751032887696743399808691967345566280223119616614693695392888146570500675978306084853015590112127646399807032416499695746656984220887992298460259494722263613820945443030827105682783160915970215814311782123334043443039114365976795529455366471085431753651702258996187475251502456709946591048806331915659100513725138330788361121513373466429088598476190274836001423640910390441987966806179802583629003717062902740318527958898323498490875923145955603253572099430904462520487861883831201237018496949257073980144810812428507969742756077130020388933254236759308589178363121307296277988434213551172023849255284905486902051172289562797574342334023786990237611750060131976897269207537508720477562230639960113183827198409101749355502298753218000528270995990872668233494985763585135660931920483737458472176974994063074183197929909275194965591904444885519326675914871943238297059998886438021708502452703373916893584291360378510426650511419230332816995055596094771477410953810830024239509183502600267207221709983432888262514289005404445563178664393135224222706115322276559247083313825215620055923215462810997051854839646778511581299751471837215832587055697253390360166408756981303503793045370527210542436873279238736043078908289001761118134722359191793749448648096341313001684276024416964726364813999547272162110592011656843924696843177306214179975095530424015100582406762714070666258813846360976952062768937942153076257454498884205017589066088796091260939476192756388747495622471368609667366406367661854142799717807903487738041849930609537873018493374311096712005970207226909666477839594557835978083651070692985540663047838687999487518495731077513896053410009716373073684405317976342480829914146696871683229547071359993721459632870853806506969932307265067574755646289969530232500373106874394811105143587214030855956270748291349456297215272258653857080721935440784314645947974068870841037944988863982194751968076447248392774506660386358707361114492228559230664632954411060350874943866831099894874266116169045474703708049013870941755509207138123034123971960956380415799884503950123835457538177507354633313528833668411577821129044222774960414183831240978993575374367049395190080793719509796686745875648269842502357295663093251849450575267473576430995045904660175990037810723591538025510957090820175245218728552959250176726296735908230254702113550850443157580026915284781867512778564577464558914807200836387996209944551434562090967428930346181373020602072202660892790609504334734814895126138312348559283341652767531184781371399620123932615385223727422318981099559137175956178028791607979520664588142640498250933101143447372774013571288625616722993222997731806362677987847495129967663036329561368065270491515239217046769546365061257190831375311963372246122282636736376273965707910270558937647193484829666865296567926803632810334882626182360062066656420066109093690407247006047981165312936413016965263241789683533539590827606619091312637651346921190999481360708735843499479324521288231985815713561683593217086252368778092643033057362776474973137740276834352094585418841513454393225597343627039769499337015324746459903467655111288071435448516595242909612964590302941397348357029847475542384308227373317695179281338900928185607864891064858345405340524163626501356943181030461718864027598169207986673315690022810722512187845287222445575796272265805447397936102542051600617256461475841672395919579803073356169507222546110805292111259136821206103073543571816751319540158484957296609894591975949973234542698434546030690813914069276676343443025385756864547415168144048643667301449766959719630905893135634554012855245530477524911403200048533735610318805776468741955728326612708631472811597270876441783099470431473228796564154720841988212403221789399702998046567017153835391487962549891109472843998936118797024239804865706642810860229289054521346311870583695038567770234884872255888749464343774569505037088480494345008657333721995796784815042259888736015077355876617418422403296044571029026004215229134893644416775564901544217451904730960214372554547343452863103983183314442261250439253513676125742049993081808197332373479546380226766603948931122866026549297052820722668838296512097915680324666774255905592910820798143425928430128331179183766373824754694433437477055815721796311299263981651293209843478114383405875681656460220654191101713596028268279957864824912270461291836845909674470471149437182567918670581310301696429051413401575345881741459852517339124483705575343019715056876985417648355158423036308213598594141442011013540874614369822084989509945468264949679662947463543321342262137254224499012602265380349012117277016466075939234165590188445697793850441381315476929027615719812699103922786434983090306543012152250215120302109656915284985465139436444876259022992317243276181964357384341359613551531832196152027167786386167931107225832198949699406699453704076464419211635067360817811726784963278385425791257996132598096043679913718236014218176740867001719824354614922010469069409444720724766003006423695296810331271759159743383956936792753370380111542693836696146028658319463790958961625916383857307094400939404510777143701192312914206794303097016527298365257262749371183351425436716621483627182500541707853577322090386817877844808515396263690775562332486766415230602650449357657717012281223581375955664262241596252801617796267922204297604851822693332737510464784905276410413415657958472638710522860051739172918058430363906332049950001814230461679859818767039904400784945131088438011666165354882899796347914416623619803817076916999336340144648589788304455896800270228980640264729428039580803261601538136360280633130876794304185406930381131459495742597387867180303609671834255178123716446078107478150254632713350798569118044277259970189855793702378805031621822973498264013709810676059793726143299396251805308684996609957035273458028072961333794222003738906410185351157442840217805045328524807406486933848645097548294818139597897100186800866688189726894055556877693977879915254261552764608363158808902480399757152733716758075368017499631324145418115631214338347393824317611445942891237271397433816288439974650859558518173321380380822379727293566131598268048114818040919284275590717325061385513260120367155743874277854036333646807311276246545806047062951602407893292077868135478182684961017855931813855090564787825390799584305878084466671096976939168981096154744901849532883695219006107769052936218506258171039470510685896976519452744067815691548402303547327236555325656524895695200783807050826901909746030689306585204952029692647854745982977709159719076709594637726990451454780554011539532813432061796752782598887876686844708499003815116897433497968847643298239754023828102354765686385227581672703982153951652025139165962745313294239260858770859044472235749870757483834339974184885939803731696868537941902032083029567026496485706149014327364271277639532360435500008367110111444196993886087344497061460990926270157950064184193989276399529766684695829503628563866379468725020007120473464158202058391091486923688989965461538283251980529125925545873261342470270790027992120379151807833066595548664976269781284350626761170051750333915672595693473810711960115442672314772393727838604319722768129634463759585459627813612522999152281096842367800690842928673459105630202755008524679142551906612051718511242093456982141091355992048796493313237743253157068029267150027906627605915812435987336504774815832559678297198884018823995675908703629972065406548955231881333764053049220127571758930407627883049644302192852283660605731498484195126844551846147592623957374788241489072051713814396707330008666199249751659960178036231377237121710905523892571681008364772073570860289490894015825326672716533034631751034462334682024157899442956554818241848161578300881423551895174476136583843455868784080596220899196931040987710797569335435876928646473025118474268254993302016300135881388073285907489029117488509092459191562735914400160114189200857422162700211965519835905050089067265226546611710893509146866156408257645489082242130832806109021091263394794456262038288809539009619121014545611648990362808063297548200574552367033013061610367936891110615533993455016216575161631229695007858376869936117823813454914479894506528916458109143549112335744951017595914169829901517081706129877316145593178614846737090319282349323855552659687599798008101154799215787835671729260168562493322583050356462643630532897007055716309126386051734464232087991880317883083076853654366203343355991613156900617244579729058616807866307927221876527105973419130182589849141141112217896670254741059871325512523864207036695397746395328707586664070044809291917690373605314337309972858144865015631070401181179270081120329583672043264098031898750880965008873425038103638365149108830601341801430734620315284503102933654389500581735085546683093136834949443172158953094015362936545729736680707277499772821935012881969804602205081882932205813958335179970612595421752648282499189461436978714439141737440430691660985885428765072025242392046487338944047718519535592501830491912221091766822503971736128262357434226963715976347805987663638732840564839201933546267145378283560941019538932264135584228410635095830551612305584623291342646318060811467428143941403138194491948296768892065513817728910387490577691148012737382756720642272294122208488080747843912607846146899228360562751135949000465700565964303792825835519999492309066172907103925790948392167099045966294638656670033196293550094051708101060123180698198189214757701856274464015866321648432966745629841497344193335260834606585465006556670798752988039898632659327584623729070785782625839411104328796955138017417104897613294635158253931900149274920018110582350267925671136680804498141369835211211573775768556202573053468576531474124253754934265709397434520946540280933005641695514559126889060152705212485562633521389703723984239723825083651787698944836220113707522554527595872714215765509000410782989345520934429069451218396674726325364042459406216807917913746147541138202464638568195068465897370049511490859393849904558159342634944524861422145223264588733519769493304004723500631385087376587912605550268477309696783570010052580708198006750690243170239793274211460353502304919207669874820937741040726258473278801215772769433274168410803107189879598082228516086524169792526858686964274538310822695040444589894752005791524806992642516807316787079028348510547584669105038069626721777662430084280311729445710353352164173422617279543147454262185306419187722755247005386818241598510660402740196248528709210030762578920239306195458442371196614077253595027489939465915802596993155927352242890008552168871959367772699143049038492907744738975915328288007193576667755604578876822923312062949580455424825278604698113287790329176472326199992514619576296194441301571984692792086261262324114184968570877727568307578129627379164637817696449463424905686963972877950771775056452364889201124297221060267491354496969200535895937438014915076651760697855952286408301508855270184672714357488831103935636388657629780444268381569233711098369052564788699917856172126759479355338797428096033694077519585198485062577062113030921990178188821655042985645199287917785604824940023438936737384842510793943361225753948994380773839068285461074648773761142714743965363106195012441276122860914371938949946855562720371356258408421644919389780388445801479870289955026228049729625211237479798303272175308825729361567072914926446828639472624745023503742017734278293090539018023207808660258185939163828460992167572983504543937014408736746384945329172846360969547803653354496693714377364232482742838694947516445338608174428123604997888409619631016002689103468146108576242186536619280335564633748133604826677555491836133460986455895561650300197042374455521151504858263408184639342964300697616933715602813379625165343545528963210466685517919456256232175123253684411636326521191273594575243957367548963400437365971581593622369339739486103458016298432455290116974557387975881802438044948759878874370390182513199504625246034580034205557643261763603169373569807189355208175118681205125759991494438456438134589413807447698535139200279758841315858400918746322570445791931277525634872785869153730108801979698333257705751499909352927149888251301003169984332244278528750862993723230826918320310278637908922598361125299707454442786303017535119916636693313792164947065839777106646064529016885954441352633174545526435049440341257929663991343902037166212053343590059691143945426034295216917588521761556270038452169156887868768102731835944194388141457761598716779599916316576212823494829435139063455787249974874620613395021808451487750658354689317146045847197348667114235970104675114824297141012551942415563827395155184246741850313734082490283561138916475045698916254903568880244175313664760259387295801657428901111018990884108112856811251869062949229951472802768464428279594257719031080414971883032983883415415026013274685987868579132400194389747677480067414542821378054694109876337480455292710223724161879883733160435478232214707491493583448544970593984269652703057846316344625688433269959001618619014130305997440933610625922451652803927663520771778304287666845893716666623369153536292388036553890417669083887241887438954812083764153158538384363500716583255100537912214958363774146867028853978550418549718448775573901986618063293750740991587390097815828636236982222684290599188664598582322832052745550978206873228762168229318703226886969231252979776324904939538808726022390709352977847098443754464738505174647364805562296618527769328575368223515396219351611102489400145924088051169170608255236951574579845331194661741384100475618502721206775068756587547813829758320303518215403923784454260993559033135525082084423499745678009776381226288010554411823806530331307265590830926453780785068219124386359241920417192775234854932791331368114207297208276931626839553927907115351119335793139178055325548015181024033248871786960723957989816937498707207607841613301736238398643325487393726846933139107976918215879986289868622407894351178266396926446779791484800547868425666819924832945966807097184911661407020324402218759778279031520243560065903087324543875667832780368363384165371268922950120381555349826824112584613851354699194087105502100897300875596440995181399518516818180158432409345272525597123163547716490494867066071046776455309636864550693725971858466833679705409654464333366368774045334230471688738203973613867452777139628198631524938604753497617559657690203981816022184152525384412941447839013039695904873800665024660198439072269540102505832517141026246518887941900826269752631473461457974342765189555873088525182699823655854390116619975984078345225395369352931745095771251467882772514273908089240707319230604671625680098336604555619189018443713793556564819612488586003880543674327950396031869238712313160618792207111071923707559718609952349755559778932806392440975660170342788824385246022603111772403520198743147213839477418718375285214477507155788742945208542643903316242002936769824673592272639350879461747121681692719652731637942488609944902329162521065167607790755736464954245048668367597424306934194344395410175857191701849376879671479334029471263963207642446994415154666952011529849490453807822343445618083449750464307974490246247069986022221131652596029215442675755629987462449283286890759839030092637033558829083094720206554554239879924864092014100195011880788054669080745330795938771162879614393626122067499126614796605099125546529061936767299070396340932659262776644992536963658214518662828543068394706738574708521077497383430205252478430945136325661269525710535826993603461485237135809436984556982767971437414551524251570054347819736732944813538215274942517086584202101195400281762057587509780119541206565291278790025465110611824847344797039936163816661420595801413929433065578667666035855607163778213706130964628651920528699509497129218838481359160422977095063355986483237391202436980852488491842013880024354865522742509151451223186835809922578241828700445725674185458972967545023161207822030284339641152980373442129832219109526002512072475794279152389798118875319481541996754373730101334007460740490802361126568993256841404747646760520095941176721715477888085806080379363399730385279034373717718938164950488700998592150548612120045057837430316511242895803249153691076658884040281850369168528282096139001263004655906350761997261633977414559934973506170229732938064340234295341636903835510493494674392434695846321824596158923212022861197037775390131765227381171082892948459018149744879602151933152947038529085022727777396875069125736031686131644420859523627631149360943232194004046308831067296527309670452481295381475673169117914914879587001685081978515075067226827381485221842806025127728638219023195289461440606980024162030380386342651438995265233726065476218756331155920152643044058422155420077880852542769934038629787913451738522197271681231652688274903719960607867074928649594080102331804394224523710982118837559415958413190644919539108311133987936215983160658329683725019037871804651999895500413327703860952846083152667440930746095602643704077537090352751157869854282400965298470308673204092597974665043369414995348603668641141048378223379536463609162087257209311944311445769877913276621428995762287305615751978964143726450035256322810660694190463740328494216060240158730173740627129714685631977622211355447544659980641655183815699925183873051135615066552662805298739905698796267959131885308820411248186452421618112529983639677558524884319980632944117322846567612444362278110298615818912155485037644121888042876000323683330869676867514513044918923299720189629349648164021020206764437115365037861515382153169613692728632657581336977313867645398840449669715342910773909293024555628566035200027527302577993355953823050812571225076298272313305103743177642619874391780521293590251589781454349274688988514967029393946139701356288523671459766085656859701247748236532757856431987325602515374034377505901063888712493888967337866198952745706557433718078367912946514088641632694540601642823278551623402827819461278676744680374228027765306383572063412184773983843940236532358387326315854893639580347922993394373899924266415598432018118031970723958335654208073474937998077314118695510774588086943291888918771481936551284169558122943218395564724635248794389496513403513667774441846423745069478859871693675720408228397447678113275343777155168370646694550140767884939118379245037530151191256147798275542945621312450428049472812662731080605773482399617370068817007257418172692079030199368881785430334875492843466591233266905654415272397919345704088365508857231891263320203381595506130276377623187319122310131721011734238718563274798034029578007053350170881665866305164426450084881923303315244830210984950379961636045430911525479966273434781532799913344931789642329324747389950631339771459089952486474532049749221672163596783371970737010260177586163587639856440224430711691015192295138985427958544721405647066679163902927920202443086299303692578059562070418776839725960130230873493721614592184049841652052438048847917425171488989528432157776793818201824109465759854324987384664738921048411025135401602655697848887487151085007441874830257291584138543904546887745563995295991937411729466864214299455317380416667293947774799773285851407035633980274186463492032676169625147839802956459865437379615706569372513644128564036352044012073667190502633305228849068064491054496496773782512206433499822930391611642161868802852495683213730547743034791876301251311617614983312523427919931250252478579817343184711231862434872003083769687756953464433835388574089108135982395577113396911336702983151215043395326732478600903479220832573587027971929737661322853789352408593206026161382935209598033002123122269275311311421881728362528578259732915412892118293818498636278689702480002924069320711869039649784269836013545361067132153342203897699939817891368072812862468012286027736162187542229516693580025106641015232425635813372855505773134736586538255256778251120185032302114781654382564253743437475004235584887799623310057635619487221242917363502397864205551936093520997066912308975065850815810253617480736725755353420766147577546541964529369032193652838518423734175953376641035147420316896565910469463013704262197878191359546573043958750667915568546079888036880388182758072724388949877197456110135878783463424590740504469818257504058385085612796725354829958719312548156259857749481315818599333916918450513820643263755095888524387302228947924311066957294155943555479708156835282260214426182376553065376639213398225356391773889580453554867677634530223779884383881659838453316611347977379159593753383336253769041283969506785927360373964468957759935227900091707409377557883370048279919713707826616363187245529194339472547719425151935778480006688597355875157257312858935925466343013640978913896429192896864525011251575720287132519826459625261577243847269045599410812575993502178782095184017091481159392302236791717124628610742559107865303018749379141508670148192450937718970534534954291869740786818590031902637713463689702774399907993442309473876778597163173491282090349603975889514191140188597183383493915903249280899758890641948964352725094180413143423189531443286477077395424814504753504291192647412029667206964772579970884263243830800725617381102370083350149983379417659113837387889626431116222381627441095786734107058504949316486313893534181868273410011336021397955721576128879433761162464122551945198921104737405938383533382118066425468725807022084922810472999100665972950921773733383031534669562873792251602160174954203547292491253961472486553581283020988221456799430563442935559186049467216000301982906845536285429278600890231673972608461102735385421582326479167975288644165467604989101463327467112987198117163645458293261419388803625958308958225684984085821997343142958229110527354157282817463711369191111451281541302442599181271730206655002708145680230097504562249884628777663653315086178839581870416231235326615449029845743093350672150173380608427628729793315098722689719110902662782381730677078104091614613929062785826517280861978032792571068637204572962072607662416207106465038368808187849053680860545568854696512736716704152077995104318112260009871371667450609666165489117809362679611609509622182857869036932767452199345422475644134703163200205508352364523651874097338430058130205332400191071049737121035764596215241650298150887542027305017030908936241730325726012388143806891109369618443527998092959475947189367461123127892401696223932307782634795622336770006469690409178895257727351822054991959894649531667695867991286983858078425224139444364598342847703172893174150785432298007892688132319804079071724843094193011504928388460232327951443257824520434253387184480942714020396432839604135937386917205793720388319322160249943178528865177793441001171727286447953295829441728451743795442085679905159953873291259996106079951096191441188994500698308610113212089932495344803647117420043649962869405967922664352431726407784766549841161299591762266549223872215607967845199890858739359227097503317824163439260076412480885425369292050698782795517758810061696479522003932810587015576486732940408990364637833816982042385068004282765215694095927198870239591405288655217271477068447666536693929855159812278649567057254015310703154694714222441199696428760297394546723503344470945160381806987900695124118964251158816942787435560301467014882433021884557768801930588188274857143608394281476161811699522375921110902182768010615745613256196676986443738784283611816662370426952116218157035372838693114055038809695879780262901724408452292023058074302025888416620338395921386112591600241387330895475162675236933366560613956524268835563805647472357450517192415374946960649997983112157481828643985124436522793135347162038066770436102973525107609957090182938323187277433166405204326014923277280202678309953447321602412224234435977584589809863998568674034934808556142822384195815504291401089559486020773748505834301863442642351789470542632665275787958745083880080839917169047181401798726136727381652606916676705320783002859169731632539020365593546813883428649432317725850012051329327653369453427377430069351497061713802252229117831674093743456196118803309582098758726323355883284632969369375640315703256710920608046263157114910464467351798558925826780035497583714000644562524862341011949698068560904085428361059820376016927852805117099435892216024623554781130455488345224189567685174204581371432946287276902996512226674543977737205524324677817515172517261703475919789081253283068917791894178197922921613781363629508550629572355332802556170767754013038641187544287374806969904251450510254093212739478837008707107822325027922600412226083077725685065469443608218758396694283483552841717655233992367423800420028093986523091993270813062712563579817093343986335374892994465075661623906977664423616733178449740444428191540112464699384773484450127576622004320967396523593676132647938661319768347709628443090347001898987094368566181546387260108039318953650055798023709679464552944728738902103988284115920931181205912412749592528792414826269676386610011508753896470384271900017708632721084022984016345280133783913667807425566483506906821405244429598226663117200685311375418941600152711612024554303053480746410758380871305058118204681147601059232251080648503716213847301058916546082913766009711315632668610750905302255502995093836674263518360654886729222716238227742675096607484763513628147121802469999835926417294278885576699581123403651284575044216383634278626231786415935544663118919482421175845850808085918860476598223027159333028260297527771944439340540267719967068508615385335318031443769642355087977080685821287801819821491725563578002153771687788915311187132489645055507061781082289062409220860738285089221109828920679189825181759302599686382255154262909717481324315030266235907549281812585566185929913758803876154027277516776710040609314931458396816142809152223706759417908884610053435500847701454849478097250792637095315418563980658830383700885604587336910340252384014382417461118218491486666775225945485416583134378974385381836846662454453831911039827677829396437507967060736202652591242079969195018509156689649419851334974854877070288408643182122626641624992964309249520446679724246529646034323969945868568996329301782456475691840534341370239221667050178956446523727826007957607614774816666271349223844178907014948082668523341327085046896276469988763124822877684174675485137840160773933169591727414054881712667964522370539715355340712450204382804109698701954379520593794131110256760367203092537197908451225446469793786362892048576709358504672459094881381106187677441762384874774484916430417521494303431878398552118390346532107509366361355665673753197093562691665020645391631977356005213871132187580819049828564904614201125136847677866033227863622406891511316738889179334005544806314494635220699708755527052619196764751447946537847867874171887640391595312164489775317401353058713593521301429506223197365492916555559623499622323728596844209139517421745991471608510832894129558565412954593825109068203040931500797382023024907480394403456091848155592806187506949458094817316768366696953508238195379739288109912677069632361447872432431088217455550404653591311688639573835698270187718996005917013575221098610646133477138302018283296916259548687865605785849883231195572892320862186537992009322167194044152659698406898895859160552787296692158461390113890016433784577585921792781315166729146523886806230851528076079448911413921314510455139795968822251374729552217353710554842765251461417561811134934593603186512868855952840733180483385310031199398213817100390359398698130277245437821004159377495115928173923763791606757851767643522136649008894044047057221357422099558633102935136384568327597514876230679977016834591831479704019279576567369331401878967771458992478960156789041364237951674968456241356626809016178778527988679449587944371475152407808041202055604080708420913106162040262889047840027658722502982654408272351599106278861423891672460953780732422666279416696900007819590988709648587328310203610501800090893975435592507986786756300703690465009724494576784174400871369710474427032078183483371114731501917688820397335298020771235938440103064955816764827456709427396883078296166661064369572434227902057349754273808941630490615484842553676469089172007788376931060263291009518138236255405078893522897750409220538913999156397261843651209933982480243132471162837234227439300792776131953502665402636942755839659997288157092897123840050288850281493641638160347348354927610505604168485542240927002456747733349774461735235220850954176328179303814755217097066281096035543017675211963737785174012935271651975975460909673485478217614638825951335600848545905344312569519697008424615016361371077259560654228832624773265988366918451569243016931881683167680680125713669002525810107098931085468937017305510054481388646656615712560048112838766124285942328634515527312447275997416320800306666821430901011127459804549023730685128384953888666434377041367056154823192855356443301264181403912213371946504548831014809564559666463660102018423214309438471731045119890005633108505659348135444029858415153137103128074346676462762491726358693722067113160040775581277136800191082947290768867017432793690055719909600499550479086897492972551370823476721056025431561089474678878720042468152275024130367523766398124159643664790986123712322521353404956836038739673593208324974456034034075720484523097332786108948363739485390378491153314374211116310497088799715735469756425354018038809916828928044232448187024649750519092819836594365870178703522135945231429756908120888617688905917149089503573034656171275116371237511975914799918303581298548074761245473619177915805337709210634294694393436981850033595587715349908123050436701835147731013051124228611980301651593590726652118072393631748940766778002300736432995614387472992843051448654851295073340815795938204542233113722996592809585794687824952104514531692127631519533331655613105989641861146022682728233347437723157120410909899305919853991864471562007239179632105199791851556727547514615580363278481987490756804086598680511712434816804582242578486104666817425397824779039084263252763409607060165095421071588251309641443973981009853310817290268510657301913868052859295035824155065380632400290138742777710451584390283333000966110430722324014991254722909267393629457438917424035312572428981865312946722378931442680959082562797591771508631120357152223857599978186681093411288864809479962924247630035043460633659126982702186624692362574805825065471647275325328346912049852190351724589499574223886938698760266410973032113104070172571884953421597092714549679942014633687206851910324900277704208135295070434130521425658856733886125597382359396863767792384006967302430355756989795475358492962732881781261510872262068946120567187354897455529809577032707951079760320046116350571726269039031509825294663751423362917213155114209928049278041295224263846441436885030801660774948880158630470890908930484923609782936381649526802262241860471144458964630252990778246143741875626013707593958337592645144987135160613931594805654576591722365165099032670383268557405439407226066463568678384322252177486539314930736003746569966517177593213768025747896217585595494304960771547108363632500742002999172114883006261141409679248651016858588203969665589230504126876503443800611849284331592259642925443104231717876200128912063635544375544120769935705718054621453681711200963870668382264076487029210061057685037254703434046954672035504074135446658203890851648558675706295500943078731400220315253186571479420263186740631520783842648086099516449879830229274715565748461681208872883398790498468726534777496758828169193787399612587663324659094815267447343259499052788400604048371490222455215644095697275917544589545675637852333684816020718801567619207425613762531021192117492576759372406463645726176930901087257437478283874139469763464977543204717824308583814309410581841205534341219084711252362389947121305748058817284221128476493222710641892672907025081946475247558886452044207561338729009431904560752680980040373501380891285049374243219656178686117501504876960476081680198345887843932056114901137571007581740347218493881986821806546163113419264316681441572351244942620917894945970546891776391584093366692650597805515646258110125953976068095318601685460585941463416849211168848788404547689533665128799105379081448605296137470562952818598245239402430739869099628068187791454031965279534768144899777008530468764653604604958901583211195622729761352030991757740272683240765895455843448054161471286742314638378308937903604400085359419663019184644310460838858534253480968134823925485433288321236674401582110787177627421396099702718846066569566222628690012800386520004793237294208338425947116355937147329356131097726530314678629475396310949796909633881575924568813653033605543723845942249353160103847916960962591272243954401435706611707884722737566305697052520924006806930269982450713072666405999663561523957354258115721953341985345347668410170105820923415488335937700722220934985027104793760045219487634185420958486104378210203237356704074041158691937907669394731131397572036436560706268125926685682229717623842719469386036669886227750492204555711499471036949828410789715174237234654030180010143507689465054292034994350895016015199816202905076660939339780109296669110090257667845235900958159207299665775138791986109199197533882811399079369518291263826399387396174149864989015299173761939867846508999860628222327246650371368145840668065762636467538496607337730848496781737228566351783447856422559023519736693398901346751435354977477795664552550050103519789144591355485263059924096264219317403260048124066759125782505967465780590088132355450875612509810060659163069158391522230937050884978676594056284329391515674743718203014296467261340961824028574488887024328692443246595836355940587727474902976742777921558081970856700478766781431491459878813236051337019900422538652929398626340376203759913191742482945701015018629806807622174132553434884104893670041511923855276786502442507083157542522553906669348066581107595735261604325975373260140575512501864613237394383841895373427296333614047424367228998169368277392323333510993932257534367845941834060300351066641500436481143883350052626744458027993575566008744163869310648650436435198129413716477247625057650132058914079698114065273322256339752219849994739029525745545782724029301505761407164971766325781723634971606649162085494842336724021358789722110509995536354337325411346728821207344100651985359279247452392815829202491357757838235811125192315716684732295138960582996530477385049247444903163074926688822275515001366904682849387104578093359316227363137730016844711178631794102444022873445120355219842407267722491488447109054832551185146252090571590011033453332490215152137005063282720710306765362380579330723050287449834215515439819095561076389099528011329334886800264295804225012943251615934406276225998423178588931662905211778540967565832251332378629993645277978507057897492150727515484727844822910556637934651756387428207939509425575199444861077300640471015907832158805791240678884176924954606728044478275066545391291423041480381707174421723916812216435127873604520929406490994113964348608869982470086318061328108980882168464710065002541831644425202062684168328003939373933347224756440346669399929874941377696309109716540145470705288050968810414002959161891377832276800683564344328592765801648602135248324415034581523691645256087055846324489107216199015094310069091577641992577936102803403904400284607095666895975389770712191347942868291292178224473634805312046038906771542432203876172666112853441030640103632780400748995708976784548537586743559611526376982319963226335075405780723446389823458352916933726321207622400861701266049058713711896410310417397928306073895133324080360141319713169639019071448403768482731909219836102838900533018787929436878721191700221055530984830685873156914864715529065781670461918658456329906702820250651263051201864980826793294069929364105705063758393581573907553080146610215953610276869059339193785251902181563204273760241558106981924945304767542668433627188824327970585406749979674302341865660495357537691047470966204559901567271019060844086905805492777357755613318784855642661612406326785027086623053934067863731388741535848251795153561610062746921662243548903531675723740155608868725815763174009883738779423486233774039588669010785735293785622808251740966133971838619190851024755142580272692409455225795915101185906246037789543935077125107589108639510808246756700680707685809143563176283660896197315367053255010802164444248416581671418867069834129410859803951732595023541804632151222121719934405674744077263110489483899889424982863310408416813988582579683711238859534165179302509018649069440281474476249427723153052205716916875342307675504009881625933678442844913854846472416558801696197708573024850106784276299887775072950220520270072892575952838939210049166006177420598440343126299393104587399786349807165694162747779647824267241586982620658381144349346857734622125145550380041640383660995251794314170742713592690709339221201245663923279348513959108637232934413622653763299785055523124252802683459521817774365706950193956124344512169544477077162349538007394944341548157937926322265722538400783799540039289537691299688718985399998718368104140447492319478629115518584963371821474569327339992406775786545611761172673438831361423096264712524287769817292347415333363086452335221842327457116126580101317167475635388010417381372609621190036644137263594537528251905631912326452878833133546825416555635632616058528658920075697639082746046539307455150528985552507065974401570001898673180281007305316708199689388523652684512590809547641022379347094370197749596897594374967736197385177714577244299911343352600217812924886831293934359656556278587095064661898678696334360984853736155722565259659944037608206324487639130076061294560696798900145181239520648513141315626321031388336038553580342760847777102956275582986080176322242316480911503316798087252584747077586088639897954834532099545488416156216896347179657157983707865033746453457426733354209263328264213040421519030022926294686551038430271095161536459122251677296243732842015088655328460240897708728340387668085714868418259773944791995851294890414734468199121929263431183419375592037861059415344505493715042681806298992328451561813326892169247665570404437370268814985569620139501552472368040302396259877190861744477692423448995554273285790217082307550660316670808903091134378041977534915781340036222582927956729418519592221394149372967335378379281009271117197319720958603390863156917522904761560245007295303044635064272072212945700801185319749445142166503130628368329248363180412372676044507688662814641211612251565250607150252730707982773186290120584511750404580399888246124399813463654102376992942508755068275843138710350887631392537317110253256703011038860079532329459829586812931575971084227492243641672298691116824616913867324512786285784366195488582768151605895530139424539488897012692406986554692814165300320802353285325738490402145975220696095733897112995578306318377484748681059321701047377972073711753689091310169928694921194020758898132990278154283234826464574810071165604080554245655134499854792231603602835567860635821411709282513883000662404100750856875016149190674392023113661464064838677489314835424568372938486693061447854093891652516770145035466329320567587960583122652079782129255650237848402443552717385728050137627311293070802118146855408206597496801954757289097424144693665673300916107564774912730782038701512297424932067959877202763976764968496616572296327015111243493589208278974450508541269575795669439428864453850662391895245305785759610625736831130385617658332391108451676596918320338179029327622535110633936258921480722055982226091723253878185382445670165659498807561570751795947617995577421875448622932508474933631897401665262363345966889282003878736009840285473811021984638265213693659605530424657944583281839577081938409996374602291314282734767035089310019656307344374768005474975264581042997526113216625152213937742885372304656562266994687283423642078936315403110716358995694752576300589875408193265502381412162438065098769420416198585128837914608941260074343549903587001529424801115439770407202855508349680647191450455417048039113061942537324147365226582134354129924876419485279308705714550078734491965955006967896885951377090688033205591713001517716398359466985037353070117774273053648368366403359073026721723278730351481441698684765963255108726086368802352091409610407526598028572973447479469210481117334801345419016056674288270300845400136411226982516582585859775677775086605694262302946539413199331749445134393140212254487948689962789874723863078172673222652927743717695372288277184532690021494063295461283119917874389385039777390415651004955997213672441554796389411865016307658526937112523423495515077221630093084718178789211025522949310369841962983165769760352276904193989323229972824377676776843835641028880063587298370331827842697791576740998246888814792766254332307278405455206080477913215868796662567813211932221958215928454837764825129907041046594944818341575623141748361858276454275052523352851425990703365338602816937331852919140458733130127236165794089655188974051037480752058185847376092289826459225746123836362793420477414586351859845774284998566443143088986800747114365249252744425356994640753596949384035352226481907659582759715094095638251376086445969252398343430858212592163640273055024380767653445088910739189516496109668567216780476723465264739655334732283037672711378603306017884128480671532155493985814432521100756048998724117708318207418523206246214545165034236578511445232192867649543746662413328553924046098554509905890392265934552547543173788382229309162252013506809488195269802564396753145133989862631387331789543833642296176011010824281462973480793851257415802374653352729365230197194497144392106106118004239716291591885957665360383155705836069388444189566873948947497200421222809168820766504769092897808642423852226090226178054137747812516269508597912014906116819374001214343386394573454151548961503777258549200764042235185735930680314275698379475117959149107346880338385746032079522580455613786758461389297754446927065923623771500540380348166285396328893900331715660012556003475505506132218363418852646759876277784051176330819211858164556407268555627963821095459131084798972507696597647752345322567666858569839289397200736598227837321249286789242602687632122844248700001907376174580422867323413861649482641484146156385909441433204904154086886066439042661003611124592403322529874761354262326843107178737986774213583659963099327709674124232351261992407607094611350844295486759971787528314037799776251884644977927250223018362324549179115839835140263844751300712230400862554031607073813927766239547358240727466596414791853596141328010004546468639759528288153300115372224956899927529305403338517495327277779634828353681163219392163067331728490954740326997729300272176322752683043082773218022769597423189568393000147685435551055384367610351164649555466635719462020392736129584853708208169955278638260175249279949380519406388487012352279421954258549543159166701579828775502587746409354614245196521584337717220096255237181272140193465794640692150663606656062841297696387603639808068057529925304068345926469998226494563136064604836779226715974003911956713465720174802776237709161521638692724613880137766494418542606259167833526261084301248345884244999938954724758213812100060986358443432665803297610260063695034720325475004771804966875533289901721437258541705968499287992867021063507578016020753241259287476018915550821084248563181519375506104647966435624817428613287500311927732484028473442459912976154748360148235786641293165326805770223868037696349364732003607049162413141894053702333379882167991072477548823748524084257975421193062489669072166384072917260914617495300370973416663001816332285665342667765566067338678742840168721367754346191804154927413091630732694104546109258425235820370197502208974634056015166267377037006399538775829761066307436518019254071666679127151266645184334228235785778179583911139330107683123059978579380510857881983211792880733729786166258968147959951313261682551992479765340776586592598196293107525408647525881268981107573411757158868020993410204916544085484997201901017215583200277373922291738618550595260793543367155086778811311868256414530007742058526778495935397650837128784729616171912906739016306208599062666083254213233778571293079587282879533095452386992207904282564726156378938722860709862833572528952758148322068004723337159405990689187842957074869509666428425515750927076742784211601719662994944108303771148735304707776746430544770009266306471753042099038741092522043141264282538460050471591455616908644120829388731954266122228675507442975886391429505140864007815356412705193400315795253267977431078453987665756626876978095082361640896182254412233248767205261328106492224269332965247399044756321436138938492658630075104141858419089883486430887039618322407973377643648124284116503014613660563603232867417773856536209973779793089763738039886712988833099877374526526084794287432935609129862266244021276986189470606776789808823365313271829015612514772525484086303742616292554867782915190247553142840137348229971243138031557350051034202171591479152229083408215521439482839058201469171734313594725451004584224525187793706749533615361888076778610834504377370545111609257826935856532613478390440373881584935375128840699402185578650342998126841815001070119998627070865357436618457016649084490320340485391623306254254387230508461377134312633837855102901400532732076116215376326444798411315952850834771089019015385520078392500449304650523955158149044877900267544209183095720139988094261274972201400693516616887226251974110084554694709443715206312059270046849244656449369984808250838530740711314913073858428854417219391251800081296326618060115726826302316593238810078295854215226117297567583807651104004853085733819206223633927559188694691665551920479138806915143543512445023384856289497189745115859771553292794955152629471295664390878923666689524346325184193189255438616457285516572937267926483908619851779994789753565768619478504321962067827240108419656437293867796954357776613042062215641678367945794869249926373096847243402422758917505331185420069589764323429417989977763071930280309131369693323167615305298009259210629143337909171412698235188173915447854683832307587661978378302945405812247086966231724672568305229542709627066985356317444679559519549385534977135245724022820629153268477053148061378226901076659396781891131751424401603383399125332732018205185294649741498798627611792868920364558490988331179492676906800191265421798275559809590113084926490663193278951487208436853905660876261106409644240090711384599607587340072888080024481677636434098033452683058903364070112484816846533319886110408354197418430608133370010985469270056545265969019460771452651094009917477143938015564561481650821266389610433869945756714650196207576561214119956398685820731909403151563221991234584673318486449154692199623522963474350698414071663357099410111656978952026040915685564671815559259232005698830958304979485476113422510618507894320696389639560590628033999620276733652726092199170679169186161153397795425064217546305878288005635356300466368421539712082074645307251842362847084361243588214190708709184820593256905069773132391338823967279890946204580557677346047460030109447281498514402687980483515631716212048888628743471707526592611449285454999815336904144313055111106659730439680589726474365051331085296983162335713914333449391255091576749965643601785288506527997992051023732765671279437304204342750694664252767732997094299590522641506067308856655076915741361879529760321743265340947678869402618004410032730828776825296818758294742124689661448496844220869741300505507365524968684820842600299263570694911811124708985907148096485916549596534470237066231851880715012882147368333863565399717268413713167163286845758898443618426468922927230372575250164255639932050010643820926721804335932840191421910784359152914798585523653813934562473044328475377217771547277482405003918429301939444112742571885247880056732560457250736664505970805817097926833086647705674114126574122166272156841677559489076516748204592506285712608286642089354875475497388401045741297856644325501490933595533850868317759005206810423494926602088365997417306062102385730885578915132816029317698987628528533546517629487374631660352595392555465656357202585889267832878305070528720426700702259289858671994603300474692007790693274301477998473800135551844309437533588052402688071656606181917404766369808733537989325197780698884584027574725394629060890135951260909048186510183792105867548130647660221475793420922795357967461450093049544049377268276432941275614214869208678415693588760691404163867175241928267728981976282738936412199826791403852319281491710075075344776236137202732267597440958085205102168056743727678798381768706405844279347370222103231197000659899853189272801121024167128942001807088553867017054273149598054664236954060952378101421749460201377186229588239329907769238945871344470556378137331560385265722372800879438310152427201247488046520681019320260221983849997878755822455139059402047096182889595634954769503986479316780221266263810494917098290838557463920479793240050235126873436634618583441462715116791594243744101477401735402494133365016869334812789292092487334553105882007593793132162708371268778243162125342931095640212118210080475834446324916936373823353723637191270789440839129364467610949547347853140975927109665681232627609374223290955517605969166219063611703076208053836383436257816474647795293494459411697923553341085396421418101355802927756831722880175059937423135417039448915489025373821217812456982966576804470628443142901411664720712483767232779527845464812769307082458674399236968875785005733064477093993616639694227305515006478095776049785377212954187508232668486710608515689703875926012449754110119997005287512080743898694621219740524717075598025107157135252554172438006601108453431729298713847143280399514050253480645648713798534993152083066468855696066248625335303184887185857597615263500734028720146573981701010511230972447994028369339819498988377350434844693080203520711848027504095990699653464999721460210635350045944769142645957279295833748353288704983726102938561815906314340441796361536325309565093580949803911786464302978157240164098072408670275633412219427902541868774151979414128572879745019020893570717541510338940299685446936747085907465219803339632110329681741942423276304797183929270128089170300333224910846558474190092901547188793036991192947436809668250442836471988688781195829593460901442253447875507829842042537638869781674511737232774221663944274045018281538690613150944611139571722244772043471104464279102087071584652236952403482664489654346657438132335065143168815004692316474105341582483349539191237573877129790017578836406792319586361791542110153015799797287124645637221851499359253527054158500026247463626620322903280332027046383174535250585925349828367825967222775893209454576267849209437967021269374760853495116644980339711296307723889007523979261509859103355524400204066652271296745394070019995247808628859217407886033919431926138695193277178584722757676037761100554348744084332289162308829836122820610578327007914908404465371638127372391039503233431177433945961627803435115541211927651889365840614776179517890528798862630712957988862728026000867542438504814082262379689072175116755168687619877101904016135092994531252577288986498195221356944184173320180306556792026911222434070013522810266686889340784286130211495924447024220291880743206705072688652816137306016910544418191379126511405468633745486770576620904508675100879943859222479671442599626516067095858655016824185535942569396420153446934066625739602423347703131125161504894574478789105525144607956561813849263496484249543504345656276916252631303302998356768990132601636640123056660668146775107958928960031239091684657247968074037636986633507105496913946857269831431456873380665499412846800679629869916260630412234171983830164474224148193698576646506868314074646573073226119153401677690366436417859848726073043119705242314133167296775252956121826742095625446633876467640328321391226852559142653577083350539915076308452172210199296607363438288217886126292952041272027413570908737860933403335921815736343418089505832886637228532339822213861785791489084328740060301587802953125928636719984187845100674044289827123417846830162081358880539583402937078600559077863454041181831788837938448016775665392376925914080747575706105614776932539143175017568331722639974373867083758719233207471893020633969659892083063611317879500851786760117773413352556787501913939391050481056535488523452509745511859116599232074742914986692362527229306300546067949922366061922805598860773163862063026915719840864229748966496256928461843905534419265284439331982936219854580141915447365213448293622661061943280239989112365193388597950836563894803496997775752839861168990058835667118533696080285613203500709677782506044938168980000233345410644645244832896076590704665805885162596478218650281011498708889078876363820390702523794728041107133596682995757246630638199757022220229912891478342962326132339865481357701134843179806489378278671550274885361937071289186137095960996006304846208227626894150379338527023871813028028183172209644421797597544995311479603011275232098117285822695121681879507416792772719211699799843192727774862490078730634043344233705357492862792472588177457584051825759716815577745958217827409135061993314256397032404857419942127399338863059827636931300400228044960978253203450163904265022249412481924178638349667685533275127889862201141291854304071259398600700454966284167090522306884594371075030976133576837138669576062762140185963781058633871437560321517984378278043492749450419092348048959338498604693612732828338507836479354963683007284606370249319709995247896986196890439252788780232520210481909294577646284107980041051728621370600190032958055782283030583821276074701452051379501711650595066220101479528540384946242809596661577527311399805201490533854033019154627111791258731380679859363880690537155708023568952000348058733898073374292273939308093892067630517594572174149741252601833127523747763357731297680837493534087219250424973867221440907333294787279664969579617206345082440041452666752352603612053462639683255346695577407338628112252022918405032850020084514526368904272656292999520194625258046970364559747611411003408874131524165842803685846633763493090218134463695506926143815408050176907149373281406620774174776456104760308250024389589327330248685867277345701345569974176258678966655953074723235745830260453622092275101882528357564588326482650977906724093322944032486330541502331859593636374321844785954160423509336268750077569315421756103412288089206782634808790958394626533994240341670775486301313583178779431733554802898077857772962947213536118981236919241262504718313679909655905247623905308257206709798177153511319708285651275865138772610000739694991363524180083688845703877157444007689180936789796764639847153769478423637171424112793691941330014520214211124556519450021118349160194902209212570168353481987253105918929942718809628497765075483690140878710521480416839992876053803687837056832633814686163620610190641146381036389965890386435903436183916092976500959694299745946232127048535859529600688721453761427089012010120499451578720993460173394534226064285926657791948821154584209775058569856997067639859242713236308257985891766022773905701725148829943779492187501738425204244184811812511326613552503905047122949139458788416935940687136438773756647205219905886532861051491951463562734825286177530042627127331487068782777094189691628800540740314121110474281150923988316436095550537570017352890468018749420027091013071180125100134846106664819736759559177163361761411851795388395875732139815033203426324038554061896679425497705491882303646557668986316995106504539260769571089297786042919017736516040103121723198157442970875724520317821440474598383928319651755894192708136662485334485389640494616051539704588781587889107022513039374858501472442055452460270559407781893140173834158785629367516213530047527629345977357962366077176876142919133545408131707872938949691674647220377007012137031686006062375403752277803429243001064900033156294300379873649198550514726198346421025532856001505179072877731640043716384645150369336289449378541930630284676365053511396695840360986460647331098275091288694504689928470221768122817320848705638945973783691484792488316880317193781054155784597175885027390933127796505730277917919838122038760361783164265804561249964651599952262994249049083607163414534043301703436949129040285220509189585604606005898672275368810081235387020419529579230948748418718732823463621161506408477829144976245256995216450212973826040610131268047941091383120967610990725570169373890876216054033246871876618614732036421621566472869497673647544605291562824736794061887243409998638567028527762382196326571801305575745075476126815886859086890414712906333936563696008807348496683700525629476986293302101931505295754324539834774165510014474515932798924358491459724860118634542519288080384288216359821624906571072931817202794733860531553969473149207837385802054555845400636176057598697889919087752220663313855937737617224074357444944288339587193838425856518914227516999778243943283259225371546600358893110464975229407439108801705717114222936961310236009252875735850687111796610231465746019136234964188322022776853470131118348921353841377431185724745393351258334489380721155928173286131695930498505575967737958378450555185517597592293656618155191447764453130664623810530602437968330986991435656337101880843885244778307528243301645539598219521471265403484241316537138911845410750795796978867294343441329516688503319691553703473640094298500916670777158379285314966697448432835735207921894752100657243856180915420001623627101016936088304249451705231195361165683923314184635427932450410931141883494033267307713166815254139895192740792348152506447204078835362302974718256318378530401416279768725331439713947871557917200842134650069851665020306016114884680998270790960033932828304537206741078956958446626959883623551445984824560990947265084206843786416571137367419702491479430972816120437604406888174574389804470273636527042527018558798121813290000950171597191054903980009816866462942279037550854905305918708446078942876691848605805344342424643996165263336081232019328522575937770421853102415190414404055273385953012159791418157410038397339882335750960589911827435818123084883333887024918792393061047060339191075783738955576650022961606775337216073834266888983899746568528205114999357627392211569503742832386536732143751260912533070898969148388023952505964012643993287582285689764334060658661034407234528185101538680265014592670587599398290336434145710509854320857763112341896084931741977755219919683326429961385488061384127480987278103835365140620791743821267294046815156821846808827791738689814945669822894439672383141443234699600714976947545969613843323133376747907124903416959119480397661471571247771962733191177167752857806387116705773901335296138347849393501807006346110287882039475135243015686490262779976151117781221057002000938160673330441324931351303915416003874743006347639406696253679645417810793098180133340641950197026145203171031833542389139572695976987648423082808334311548917846738588732748665045969869428101687429240707172625869001603686073948180658702471828355407674019574942779795849679181671014554823760196961929547281999846381929639347753776700159598277908706630257341225472028781385084009890423802143530648216653722939429169388441151939374757336021677261877321244210583354987030422059389579317682971804286986983849048161998305205209979462147560468497241367754576981531210865301506585837673534956156696287104787879035386404953582694536362674702057487252449796016160451214874370717043302055290633731447865743594765358435035742701143433553976004908206168932051579167857969191286686623616249302590763126286238603011033919233201881143918970515798030514122184713615347995981868581215450520526768116684705314907162815079775830421077859405255915276448249803010757360935253900519938294854292342800482022375282813412018509376958466496276475950151226017941265445762954245992292499031847752115896157408839855312525458066167263389718655222249223828833486147696944569436091512741343406299893788965786773028203492571441174302652636628711784951197714229129444667449386336522711171628550046356386727766959771415795133718874222845912658867435592125363455285359584692486537853625098808668140005066103819211540487347696467934609240313571293360518036748448149776534314180881505275387424280553118793892637951046091088889033455079721306797892356066248283103394177135520585448182065723704058218992799749739905877253149873239362137608822760253595113438178249654967099814703375209361064970732728564400407661495370227320023271317752953686666897398759792642935266502418050357873279515165684720886786204491204012798833589364918130867352552241275147409151427709429887031497563990317764106037677140489446914418782262211425259154241237586474632827639896765737059202245878431982140452981202148159251823323954738276248777638328930219596261608862281221264222993200250180033926929332161861238801768694502564909881012430321079883808197819716035719940574402648087947873805277341099496720275840393983919540333552243480973554980163793455187086518584045873588291833342200900511190069566137621437883092391910772059332897902240297275873988887717773223821813292357211141792018048048948150621178529726368366794028796556562866970229866180005983224907779754945860803457679639333808714805647145490472986241200260652517430809852894439855417200725742490588256365688188883334859239227788803132100854516772743633590391095020721156826181311590359975200443838160989776571017298798710073931957803079969757776242069311711414579677745360681992328475323072895078049034252303510305802834703643345712639912232860784904278496347696196806521120460726295264330854194998763115402285408237914237286145713482255320669038574448920694873583057494145580266304178115534698535317370664219863385966315276068702133011300536641472228273727800780865841784695619307418279360642253075815976925518552837275479542579361912783198704695826917994061478756197618181663010464037615728340606829247467362812480729394582925810526526896356639686414496750716378317511892769099384981848388125122854116014626650938242862099860842478049798626186912219672471932819183595225958400401279547476746532638754539667716372339967362382673961473465166003476355947127289062104481928921814700735962615971862161067146941547494864243632896590539083856778227615636332926435669602538609316655102285586841075455607250608987999194958291906996373195061535828312420927878204261272782676034441116295899157546160293496337618745621861083376654628897204630359417425446475107482233779811154775572449807958224201218148438761639594152661034838026433334095809996775458023199231005803030927000752799743455092208458726033964046642814689490732239754557830604398587095727476789792272427692046329018317471202068852604692336841927326440531737825417676751466405617567650233958939975120176175191531859124466336935351413345669719586580051062474126357831603660881446555185101482976348691067468787830921936540684297657501267115130801962937090106016257353278927036428429194794544208688160115531312234091077877963260698246853809359837935337313443507658197521695412739841490113500595252030431058914183182026907543457962834228399040610675681476923259266847927070163896963774338765578315689943431674524686940585907028916822204781691333609393528871935087807768646827184416209203091594971724421718612404239204540349377222584431125413083191773018969892311313437102983017347056359279367746137903852158087009143965841921317404225769530893026960193230314222378328354018948092655960421179188287193790723835531744455621410870085129041526995245365030290713619391877525698715653077485941073676998333035088135154699733719331929705436395732237654232038252882110634158254995113162201468642895348192533848518111567779956105053242916456707087870814670907189988965409125070266127758193211539203540719253053218424223348508849626522725828378447521552959517011068079389708608723353025616040538625597406299540904028971822431335676277399319976199034170783474529248030944602248489740870728321721549936595736790713594706097722970664876809664845782732291556971600242514851977211900599984304772756418433474175548235348468919720842569021574737044471507323818372351650146886688358811002600000608276845534127206672502737506628943422336170402285009604940264530819689807247751633122700066282652483164334117059657168215935920715772075781063537624844265707622972439390479851736160104201901652874744273179464181369387627791960648811336877136208399614385288438844285122769922229260910947045457286426321324271603123440695482917844227259585388576789850554808613820822767236836587369914064034156781463597403574763684173642090373490708296275392762987476705949072114096031270099074900830397014177536679482855107413048715038218400454803609990052877221172482034716807949864607017968926899715624998109515131237411573844225528349247784919074397167024030336883312785799709397043652064950510869559963852856662736811947943079076059863520315441952613957580738281538559401080161165290863428385507693261290840833674792854745390716100123751511640360341135414018817089365602586294988624973938639195489765791703088091918708874202652754555046956597452412464190550922002452789765627512329579872223749507021791390410044148825667582648882462971162581161772929133930080294300706194222550293869903973385723111199615845031335334643673403943118073860310390108579941172616305427206834064577463789165428479073182579913735341317417586101436835882235407820352786414729422481691546743967239637773970686321356061188762002101037121104544294713335534792782579425349096938528747283312835639239782783606729035113274519052412360131730174063551950088914346610546266849482190794622645078557527736521871971617381068129978995115902796670367328775863257771830921497077052281260229109648229727611197385613520298380485686549705484710133637015664005661903934620918967264403763660714135470377389191120600995868957146628952225270396798228253890957326422998279015153682019644708760568920598210883557554588608862707952731086486051498178108102982346559301592294732751179975134665621821501895176190101976474223238231550268041926475471149821035547760730682130335196305501859821258981374165749425727957609346039793447150027205683306185208848108589477829882844556693222982269904396699283127645354099268527030074013877078205171607522664816752355876061383898486243758412907518702652700533202560935960352096564724912638400356502937687008260521389953307377201661579292430862679327562016141421488155591172525174928780953897543590455245879014669614690722578237862556294007555224178166878142545041538462907125627319022727655731354431740719286823510581882656447693660880195183099823366332086156727296163917145836851493218427424245568898259908149161862515277741825619379448035484741252801601758488128291972668783077357593532911086457735787184421622839575356231306415171122804152143648835477673513443714875376282800190469990476049318120099991042844678875649816887089472686195539692597150704932679303693930608792317312626945009182675441652132657978560383020067517625711796053560254324757774293776604091838417839349711268321255385578491023301105641083731681114671238594506059476303079135975917236947606407858044765669785062170605896340840610101285028384235320416363831429385882513984630234748861911365988242968937145292252163487220218403147757249032649324166037364537599072363368156666191823292017050692323052536269257216032207423596851151842451960847264906035085087747987279929295301125698895682623241402242205261892211449113767579498134056526566183692381018395579967346058231051398016881143540486049803852757303137427649209309644994235653845209420275196966330716809173510487102494388760934918723130950666741165281651222435987899874352620741622653997907978216580800140497588307200982094730497616178114670102228602746579477762961915404139580061470594746467554461115563754361994659539961284219262225089935976393321963712575381774092546014851610117885695396591513362432497123168973942596116306796256534363860015506763711858471125838536105010245994829156604286397046605064236922402245608953231967260674521343874460333239034376999990587616512847346519292388991004485844822059369310547674907707545084136302094479144580819155606072278281799842515644464305476331024758330471321581005124124045613742796467762585509055508490880051879648958883439357889656711077855546985140129099917517856361112024085004549909211136168968387125536323361900712219130822088952501901593083581434744104817459114056670549986213712478647904540060563703988048440040162875996990981051854611981582695153322537115387144148586539985610140989038181950609383851465770324957040029417173304678278090593151871952342070867241984631803736410515202508945991238479354187510366404343691743313223063572022816320466863506121625859555551405315326322269188708917765663714712441744552025889172446808579671897812631300388763617327547615205050410472634540512492704195375584293294304046223112650966621446992156602005074205925732707921223772871501244235195950911352872907630092337375115137070009243178792202668569147280023882014806603583281654499481507078174079333267100232528957258367344936679549297747624839817098195548354542534627309219758237926813289467375610424354364972350904708615846250148310631421304736338602955340156308390062119399052833725763833126965360936279654535807333624766857472820672244773934716360191544924121951778224379763583245928455460740444382313515807729733036878536904223094561815319456430427448855093792101363604054818199472449955746740208174408921866833485135837140995084327077115381899516383353942393588150029186905560079814618995376963308349684014072676057727098498444340380724563143084271499913892755833963582070244091130996163397768926450607751391418355359024584738686482922266522069549330711341713874164580000642950491084404469917495763897346749041061717832959525334603052969504819482714763644075923116409581040345815027419908119820973924790376055490746845646434358763757528734820539775636189568288961606903516604224826517525818174165152267019587374451646410440555127048472658318402692734999600456393465314612260734095759278328959858337184082170929503706684394684809499836843848796426832209771421562419008295835877967386441297119111764041591535794085589575480088444811689744815804504793882891522425228505088320997916630100826286699861704162835366780444424941897323291820585989763533859000227909875831266011591310855233063973404682687433957677410578077903599244987423853466023132740393438795036261772861510326676513960847563045576871180623292065440244971810364837634252698595331929863385341288174458217712752185584250071581188980039961336016163298287904517036533505450091244926059341663699666168346025237554827318059063893180299342650727068375087211914341580331585988304815586878584855127415697908896228974791360732302053549326762518806272423062786301134286450642611950159934450577398649911573904787587275861424214784043156475054128396580769160829452308505889062761560117050179961976410978026456858499759170613104463386789883283132730356826209432713230606563165244913593908574411005710970584742615157173235569484313553333095865840725063135139320079605273159383040966803879963539310728081621445347686733276743901296392942045383814468681299820176932461274534329230691923389934103993734294174866692020079616297575216084565736619646677271434260320422912305571523891597456884708972045753947723841814254804570353330530604752069805161945866869695475762980143307261990301295740261402086151322192093320767763493364833879492598133435637909736012666447527979701061578340662945452964024436441969885142983098936487556237898982911861251170405603246922930756562811772929846321763258398327280363234641618374168630242567316157636012891119251436434669997627547518427940737720316187562626223267994932965675284070171676817233740489475711703684651859348848723217200083060853771320986814070379607074514084825461909529789387490004049876643207144016605900818852994059152818629549455774180197430007953395675857520840116507587107836045781385889560757106893226812927314720384249064360920106401227532530948038270984276909690763211356988942209686996036926081853400093833628942254370511010668741105074948812145501533687273749722894382264969725740155261411278743660349306330247202908451586936971669724588137751759064804386986327319715913027200280773881636750722346807376601078638377663582756592329373330494664353085771170934762887190911030719073001394838748687022025461950011289865714415603483330389496443294621133358949890759043187258963125690884699334472051080301508058799268258528821879193700703001399646354073988609743265244659137533330188565797332116513837655566924555890017527757933804853096380631905020743284122151352344328889470155076685563199840855277794673177859073021925783356387338442425063319377285488840417586481249746567352651575393291935561930229408876967555838132680129852900934083573357450027478777677096340557214713671398943764171801482643578283932497198414287877280926339761706828865760870914718533093892744977899743490787832406522337569308599182795873786680267384285793791017067023553809688010518936423275356371922904005512593103609883283228511467393731439560448957310502636012258269418378353198711546946112437702735809948005064529744059551767270592760030194588683305631574008922507982217605590412248991636059999808564370255813326994180342856812969076156022927177266878455061940200071251679247589085812191863434972997386339120332856222636721466624793726239248444779355166067381079778945581960939337863688535051224028019599824558696043122622493741116000766894831736433230101938423085658834304817408245922596502029812739802030553812712358727086333116923106979821466458656317752398657790778548666122659298538951104349392977534152445602029240959149516253405914204022310442223061720808793728539733824619994882955985321972101027815875903839105970127280795527423171726546419510905252763945332973241842444821727856783073846099626392585793315615609769975995072474817827389450437652745292513506098090190956961344223572102177365168420972972663472975260370285495346234434875157527600892777928494728708720062169414289005613400506058324462967828722381754177589889399223575666651245472668918954272812967940144827658233145491380295987429632080924310953124214622116119250685095570076248513758300521601980679922865133492667716328424720883776688133964318225111519397730307901613348913947875895750365294552903893856132649230320990723311033913796074219416881587754630473941240359726204691945531686830822000717051017944410004487750990319910864495571491489038019272137874168670805192598622558310771115772787118959752453697915163035370216719810256306505163572342657181209836487755134873500220333157177585266753392957441453513482220521641735153028805517847948030920910440336859994989649441618287952944704014893441209555948764008486217092672391507440689372645954513209921835143596327992657505891366209849265849247154940796680286124965921328953786137860747057410325114781362286897097780452297939500884377450989100926664371203877487562269304664983679572541308183409671370457533355741954420253196553419936891511103684242084411861523426948832816793141785968357205355097097238697717514961285676910957682307166513291153732099039894681753517631516262077105295579829568397068933903137971738451585792741791980176232941088830314093540308002462108136134888684192167950002836163007150388657819588726065053591403763509799208002481317482516391856251840070006895803876785865612001517001720723330007294806548246559698679806600317354940566706968003788090160665637268121104079935040316447688413810125193969882927723566252820555540982936831235254939839078166864542695507533590611635834741205015196831686947207222788125193609365793461137136276692374412124561649730008280215561008097827687731983554650735863488538322043853385370820640039727704415746592756449818801788154438352663098840233274120611700983408810113343994571727965227108500240817417193277570877829777177748267630607041683714485924454803349999168139537689317361051285680487424018523275227560318029525785389792995763740851515017711218085277933409037646157285802467950828036224361338445320992744661333715844473974390086405162519059520466087809196571114159329132288383591806259044829078981485025402404454634443796473172412403668327825122710134877277940828791443396126186553567004542779770428465819556336480140656818945872868041118251776188153277660983436384630815887969852041808781089286757164847897689418158841098556743386155270784035469623981492982826950023763014393923402675738094987148560010834883594250015857362116645489528617819850633190473416800811002857100046951287028701904977338487218603273854948141750331263791333959926106622977513694719713053766625300388376957538730628361429097190853427151430792486738750885312812353427692749799376067353866707233522204026976942100745674160424500924657197486030850210042693706391869553715533444375608584596711913693092034934661931725350172575593517771838021214032566640926760385710075957692081360888691378041732982433974822033607829463969589952067982013648038627912479980775572201709229447147090519564571312182589368896485283163068040762463096948062808000751337070549725322581025265350060964790652322785162425425246273695642773427420656525489222121300955437432330311686886059975300008813366725561129857634644162242421855657134691492144914577473566270972539855888951141656892100239511092835349268118232727862989648752952098880688757698505161029169040579509584957625850897308108445979514440113660468995581173550923915404492775674197069383269861122961101615430061230381391396041518453696102848993756637848538318556919333498674001403583221458903988421614196894077882711336315138559082786875399464090148422888857594177703683592548435300890257488626039069857157509202710825528111507756538479000301926624084319280290982996043532107968910686978013038050041322737798768107771268225001616676082041938407743497064077038378029940644852184289504534935101362675681624853727684839696508429717113195891909708266243093501770247114937342444729932508826747971150395454013315367182729323858729048949942252505537048136532084645370237792699894727697502437847552004126367637087256220225277576122722815360213485119212618499887613429391570367758227373422525234473891394313724753252464698614765525805038384270426959307704362450948926663445259861204897333107564142465388207919594372223151527106621115574275800183039714857249776945527414228990861463082533122265329771344322964428543130288256532077221614322994588779973717059468263984440894973529339761453463644739829361682245668218526554296057487118968585909025778011731952915465555414034364750072298483653177609732263332231643003283444579059384874986681588951665343069986752424785694216408060392755425036371733381439239519452559335305328124239920685904011320981608421490942728381200349994581834144074804674065821247288013248682138969093437785019219876618418345458239493868917115791063106998230006788622519102747591824076602267151791099913932120346342972035581651523495284145625931654946564982653755218838558631230428387485133219310456686697828011398577199064430666156047637678997327510561227020805280981166610359640776110537234716356435695402649995950619540617143142010807816216709451597983406615555979232962886508622702037448444623203953902521722470783783850118691137410600687135751502867162795801563080099673406169624207683298244227095840641705080610742023592448513010888319167178299595110614443618878769273057107394240141825019464371694825343618335008467682220726351237413581410491983821698196040200420386803393216864086391653090799691627575866515274701520265692186341553412762901849943648601570272377730014278089328911717199248781097464641157522804540472321724655478605984727626227310943259499998462273450486742156147601561065279773731747158159342785826332716936722359820300864266652867618109174028641171894008321049137037219686500701395513196775916313270540522868679410142446650135571288124466776668013073611601079534449284020473094444158555023602117543180277946823131934134270848719150161629947657771245957050291693927739465206090689217772746824551365575193150156837001619979386503409091071606271819351129347180828750813214676119312580181958315266650890088017418994996594174839580241671995293459785648492960533705821332681560440110572128170918499886203720078494462409647994862499124168677126036874786249067330565617332409066016340013739282171946347991733561282508361140764614948010683498279831177128366979553608191761125374922692796505655205343366090569731677261380252979193980197013916010647951087683682664017515086367460268029350075086354784009463897687753461630247828692613274444545524520651333661193541819268139591202560152048932262208926564329040956410970445349231450622929933716626223803337754137174773120081925772246202906672258629004651028140865283871384801660651103322421611436743682254357901487459515350692446564581748559583206662995054603983669723830603921647016442176552008527572407616884902822290689261150295127835055254892358840380359288760112282417640500958018462599525895540620908844049857226749629083905753613198149811798383071264289039438694840666002091567905870185841947418804042347055767776599363774271671914815130675893994259615909633496390729405962183918838572720187128798022042363814527713253261502479469071601575455823588323212414972623333029652842727440292360410599459235945046420117128993069948034521248420686124388670350367198417566361167620539716943771754438795928508669884843648369975610815045822513949351936534640021552762620425343255982959519475230664848244429514057985087470505333688972597361223317855245218433483259193935172402710861407568680348583035501642540855819966936859130737309476849643650959848985547520334974004171870272548332553989871259912380209485590893123697609298453609627830847946353617534840685771739838036214074002630669507749772501892672622029060613374841407530574667087002604348519037199136398942739646898544688579271387659705021074740030966883496957781930270343856643237162249995850088859265930845681289307122140225441668152126604370071336120952010093104750635158276857926004878901149348572119162733825502691363985823611381832715883847107820051249487755053457900849441329812750114964483993659076788867849140903087433875308195295472193568725838394887823058174945202033396362130868366556380459985531142715559821357232866779688515242920352175499119357085867088228660831717496790363800051158565180743120447455538362376963560879306053551801484979822706747347219549419964854606635385414982545229664629781992430385360665352709356759237241084751781396641360577166681583524571431022654203197706456983198264612948860446329534906872364440596458330875104013521284342325555566542767302431245058708669439121043101761366875502868227063859146094513076795799573178942911731600899919282275927433553395065958006599330968856309187370749234891325830854649379751278834665109643600795351096465838751198218593544080823219069269722868508688489808421005661151564971932054952590344138239860426244347334675442505254397777940293495117782935899798360854312596915418849846382846315263103156402297375014675792609719646146253864258770751218684310572793939418112659012857768522403811668433915924017581229011087268044398316631692320401493708790539368594728483547439512100403518797546725523904977431514745743394939083782892681226360771616184577618652605508995676807755088894290977745781955718930213894206049254455505123353364165707979776140321273703855021297503611100931786242676822554681211818434868745518947826788061616342715137529078254948849867268361590373990196134773277801718801260419870819958582544344287695707305286049958025895419386964497448141453496361061033610076666024318358294869659251861044972150243140096766009088451708278921143302300139920293132040210196500146653401927036310364585791331157817529898004599267421541378391561171931695659845515562393680499538786277666282026456546767360964743771158952808626475952231801056928699858271358331519488155224412482884382919424258693662158649944453641858907093074460228325383553099096901282859800951537435513825255296222556392049428812994297957200989237271712961066282195273391613739285142757467775660736388675571644167322164054649159753830087327499115566510622358873596638726357495176396399605130334098497184435838268598386905419059984901218400507529005603215041557681914139007454514030647203349855853637240650837763545609731408346388879743159846468139940226052200643338173057395066876662759228087915787190504973566595101694851636596410469082400037113603519809327191182707899149122665572519970063541232860398028114306448854038704270516065938795449157619436056813683030335244586840961505706276334401376452966050754413651693595474467143528990359138641851836609364600262812227703987538156287547330316889137300695967481779439636944564757088478208873066485816640649983437440053033632408764866624223109461861492826526352148013179294149130826888640097494618242376225126922876421777339844887723374148508840979930781865003715092506759151449444416798685452806415133295206341879513867529209670134401402597859635567781490165975351580833868051229354897816083652099681448118705679564013706226117608429095987343786246578014323852084452421606043871074808932313684941278623899536075175220516120536927603222476780308074639057888413524696935682103713366448618577164535727736590202229660781599853892866362566117148083081036336574762367288984193102166296405557853873063575416686326000486583939616332311313855027826151780362270830647274984800005922472604744585350527450750204029894233451636324381597665946931553504063228169061663380743752326265636518378847431490018507629289940299423946956701352713796695747393253047219240582648199128198108820694301089804976616854141423396461311843110299417703970237464654591962464094384874478921782226019904105670985738334746847872622732915548658498897430027171225301139631781612358224257622263382632508375262403814189502093903121835466242972540661687134715466367610652801547625414996638260638708566549406027184348857642720797472612847352154582167940375726930046274168228997886937560614309125082645944481259983074541646868613987328859530605874726880906737509122099362179008888160271002030685549997798265516918667861835711089802317164875050442990828248976377493878031393435060891479982539980113359310978975489492986831635030096119927318999638063256035141605639922827449640997454939540848623621190083142100309289739128115951816611742331640091982162521980006106896520115147961145039202862926410145877783387183983490185454532914268948725997146416747075851996551969914285063493532831918005801866803989842233710178707441779841235691016780214796658272057763962278971489661879965635751086106048193350965847548737420696022825238821778241137050113880283597342553258032706417941553551884277746861663410432551836328696273594844407265333533647747105174071369846710497098030848359247347887474483681046348915672964777680359806403989358713541381817482595556641609177961795175550843695112180386227493731933202354355339636565861055165833922879857939283098986795943425584530137477741544740780289359952164331746788099818640850649294232349252233039985135992522961802742191282482718059956342955196098613829895217594422363434294564997353253933988940490707801905361136943772589096210131468725242112184453373471796245209150985628751646221363607304478839772028937817661248802707289229930981613015641832968622969278961447818649624110648920826729547271424456621588485300980683150522820556542888086278445779857476026907936327264241181176669364865229543062601929224138729904989230537315052785906098563737008652234166462748426440369846528713306152347224377948634103121007483181535551657332803473522492242256710417122483373359481472449698505850058213206712286856945909144408017338452171488852306195546038640131694453979063263794287697662428171915578865960463214517935254897372469444070040583683759138623404101457802374798298904292907177000727098424098874076857033289784906452678268041897038902972470244139969346431835518987692641585990578126356648591545606042423664811054104236819602373668038794999674899031705290177432220125520942319049499956737228223388737614963778336653726983804117376745882289691038677978480599510938793874998919363243595724096507289642241573511979437423541453686627982189415139688104473360123166450435045406728351621985147661765430110373435451766313490365817346329120368874321923001576420100710009408264618366518358605666299615571343292595516945010733208395785323135238591436352282129110697339791914642793303659394049859087201685200353501451873714758859738884205613838357970492913862101242980205048148094375854540008920738725500531646326783745619907704514081882110663653856075385141601402790995795628640841759851748065305516005659558598888490439990361184180344054628584838492592235852612032403972577156768433079204791060776789964385018326131286404303709858758494926772252787822161100321357159616066186693096569751285213813986196936324598425066979446724250862597359355889325446855472260303504444953775605324307991987617609635830295014007539932218876633319376096180484141794039369448002651050348271046115356420352234146615980762894855328047560665007986835612577280816191389494742400008362030098805745949842870406879380708191677750111409259074729838695654550625360735385215996412612974448218481516828202158746048823305372520694530963158506482019587962913137084933296705987605467201846429739000205126793942135929925868845416133956519336729967376867482852902021220336151366757039480673773800708351912355535282234191384561360589216001772249252054475941635048838156424700448356070828847004766043627618653188946424203123554340388866643805000614232474478074388139822145802178933279915339691766075845579547324202078070331391236714953369732271271309530259628490310943567032300930543555384605877763037227331424725569241959681470239010553722669003721445368348370225105631140703073260851343162015868477044315022830220974508197868472150430393269858375154850056191169935671106073493084152612622158537917146519931167289933873790456562397284790454589025930121185167085132283572120946794218464763918890277943367403652049734649574300198265199458664274735285601134910339299999379780689508214420621451925536998900759599068738418986221293948842327171333514171516750238527498378359631556428983815871187769773624309851686856984589163445101758881144049384956934293105320601114486281028460001747887159913572372853481223632517663276573338941908926855742903389425777734707380058692874590968152270947067896253324911537972681995140582864621228699362958310273188019100117534976657763132333993855803193958009278805965485069489854006432648765120883828281838960657500983102800299035971593876696480629460510791058126842410475369346143069301858760143753719654314950220950834341162183524681811148453124615226078024865215195710781347643950790664845246598137301110522431283787456814378102103055021288045227291280515963415086927765796952077416107343894349876252142761183718499312494956905336493582829123342806942417978837838547600507618906791849082184657247306004606922521000921506255719300607018476162068673255306773101742291321542512899532411419290549648035304857483720717474690342036106521332236706777935054620579575747760388503983588150727061997055930775645018993512946385371675062816207506539012440383618377594536317058539955224844473087135874605765183968527665714849902820792661206209856814942929912773458050918231455357289961120126587646051686145544880446530241524450129709790508810833918737304089540918017825042313210482960366511577769455205583778807357397179901690645425700324689654002205066040731294284356077418767566357721401515360656489900630709769634372321836918318339515190689890744271139919322525341802571719660158427802425539455304961444943996679892202464238564336723705997409119772247600470700495541118021676027452911132257852302190720365276752137004197621422720454832075885131129728763529738781615332424632899266816793822177351934011523382177837916144570880326841788064987769181880984451230793468266611013002399841303451751841655629271474554963543836910454994554687916796999808823188351548800502870402096552709206872916679474520416771632820334726964786255685897497862674415306897474183458797653946786516258208737919678861928659464712939451686164499431698815304504247329102862056344420476523978381940174788760075246732944136266408881601026590496043412213855546308634752322613168424702965479425310281940761828678034059259361493901341400900865418661006616975829297954060369252610479757328234287689021356739388589356392300505938878911849056221370373671895903118302909349430876489417731744625814375586812131029809654889225875850038280934424931936623237899218850721387583925574301964842080403744616521250284444875246221998150207511149140404280668970737094813338574565743262621685291820469587821195884931625672569105910023927200006612881353538943118656626572524322290737238983494946059778823887162324809608222776075808757442756239032050941849698304063486444819257711833335315180895057889367407678743775343949593922411110364438787646742223296924215398226494780610312787452768885532793819293111823971697036898391793200451898644666294509696983700386875813874204756526719862531586784487293195864411709706609507592728349209583177314126435372275177881113522241149373081016528452130799745439643070242089788922690671510870062451260247456918180069086120396644814472716303678382628528788634176819774894690157739857204133789565991410516923126078922987003420154329579187669346599338379379912181866446956500795951665540450839367374483343308619504674209637808841138235911121010328095122357664895910682447267746956861439242204909488883876118808885868643541937209880133604971191550507748927304165706943514796118332726306672539881997087154661278448964574903913613289876645107469582439846072302492330165554083233080850052345068496433748166270303040098706275339208200593129541120593526660199521314599003144290149949024511625555477368609062020473673909249866900921929918656747156732000931613977620220766642082201862982709161834834127291575084973383843431357166263739147446803234005028696376124881648640989327326336155133025556982351548690798835617130091493579565008020449572802970911870069322902873091541724886093461451706210660967543582573110892215714278486460402556905266747829100391464011244694620094160100713320894707092238843946288230025972208793007961793283320946473813905240323853503977711624050663237188821468858248143443873322919816433702291635839749240220253185071478425867530571423069747769899287436647529676134329245453014026555798216092643379273370324154051742794540747409955467071448187157434953960386689035112188992679563597080556940062824310633827986880178004601541760257121656912746633724210055765248810345868575699243492173405042023045035188985457234873985833565709690041255234472621134619662657395381603620609192368385161563399970047607825096244397390862505214956425951284530830558805449385087686606231630080948099380566792558898769738618034026697719687344724356669081683753763737723241834712754874312997439474272031965162670840588317469626298225342071405765077639490339070891791417941942507577325528149992024868521320227399695373819165914607438256102024816087496766352149378040087238787496299633059942976226239042753782054813434983296292347979675243136872160553445804008871445450177472470193978259978498170673881173072966498310148840712828994966975293320546460619083517861226196240502092887809114498984813045622169954326159916266821346125297928068832633892506261132587006655058552817545933045551844208524034415439093341864471190866186563378695679298832403563390534357790989003688240551813048644562276618547730631906862835248233272031428808944760501687403949462360543235045955976970976571949127489720696265422909857754911400693256241040427748072092348635708868125875498144887796539580669292194578821054628383239758438717931443440803157986179236189240047253140169998631420652192796566191086519455075883313307835137479113727422629405135748267309119106104580927045205186307342894078347449681738725642765270963881991338471764825997797881993534051345351098470320421872334297329460491790288673209745745178239716462967398709792402428798948416743185397187077220802463984546029434293884956649811076542529506799797570241981733339673550072286450659372879455209451336125279218591812185148656748902485557616805590491427446654643462989069291431650428356435986213281347976800497418325955652862849179319489160509763758858434267060423088202825893127300125623512910589161916141366434237321699799992999996163133210138237085941859764880572898605380124622438640482829733851374948604636100538172480995457121937630484586712230092190086180293691646730196086369745577132537866687391729658764307995739406337414607001038598904911334743926407753807790330396272321180296671752841950832563978320035069923563774773231920055506023529077320367600115546470201235489622813740328181734833654809114719550583324452371781865057021347419063835813704579577962290987568488253922957993922135472700261077612006499772221050694136008576163113986997340276863804969001176675121648221341019972589534724270013751584629572709410834635371023644293152028268883032408681183404984815425607650332732499382035682783244645292213849086554023710031033481761017228172254316287310842207951014140995372834848281132297627624379485348437653094337059113828740144408888575587378111792437450555714066266141785516319189059667556364602609532665901028398967260669889671221979982042662430869867724178894121850197214306701097673855916515453516454371898808977262357578677147676167022272120288573030517582615559793312438388774106000176002870131312931267028820374857539827660909931105655371736843898464174733818635470911772602692029174696398269331014468597306436973923087065984196669885439274412015464373434279866311228913796128239007350640261411059874768094091856470282402122800341580178035575457520136986793908714149054712261411033627685821954765308052957612585119967515253795176149431925697219631854049652804387006689813014536434011226580587215283203576946009454507021350933277236022584688283626293686535111351409553619239581438947703271899731215849145797967797844190695776386006066222944277728949590521361196776165913334612309438236762224315693658694883186035981914754452546329487825999547723413265348383171702046852367351633790434699318146412716402113517575998425657990202348212300048506228763115675701239390076407580782127837933125381371523787317483283758082153487033853089358454345064060977495215405890919679472048102973399927184650853590580309557721866840242444036172146310863167618289224524213260155596358109141380393084233580981933313997273995193942598239466258092856683389895149333314451992154760103355529385105853276034043506900264520054467039750777414597629832937911179336887797559503828382767252745717528346926924491354630481315489329937949417310034841725081183026865218132464822786996977632274274772538727821865934731481984710614741629638834092453478382032933929947497908201256255643453985070095598651016030769245189418637272871062401878915046548135901819722923814486906421730943294443096958942002374566807636105336970784442186426111545641618172314216211451805272880814199883753409495090388273569973302724346149899564092616054128274756522962185953172107928031035473666274893628392717782280239537489593381344882539838116574045016305282272360562703029423340538341010615872990905601732118383134999076637114108281594781906506590290250383408172970454354437685132095874857036723295373815567276806723496299511930931935914816019278485246746708719157176687556876404515301248258362700183915501170024327318073472535330025612811074871598900734171667075746942821692799995653864286008279904970423110203545368237059345700328291724315964859987758128299828910788478573153325252985137292284951429492800099491984704265515433757194983249977019203111518036404836560129639445403717298932724010016551359868321868024747043980440815861618600262746397843077272596959752840911473880001983514263266602047718191574838582783716657477963479502054488477150393293959817743983339938647605102115847840677345846334770154807816988357814000145149910840339976590841716634567638211984593070994208379751570747424097777219351346910761880593570858186676248936797836422101348204648488678126299064528383950655745203658939023886230656065384283274476284716687998106562162797383746836628969138115149990556731314149497637783785294445592791468471933863539463590663564273810136504469732839931598968467675339099374501985154483484363640816787573613241504434407283160740742097158544033318529400751066891296227425350006592406849361293591096252710169720106458577135936002958195791028790960473753361236059507208707704372612647155408485973906033178506790155910536754498116922059556859281480976845836182639418022543516177089171093281630913775263678946520807317134237800785420698841921056404603291914430868873172175080470294544376101038567246010649369448182957391617063293458256156948434343776681417258402884276773166728518344504620388864374987300167236276935039309268261712636678238812844715399417888207229610528336907660475687762497592105015597454088608171579909248841632765456986200663452703629657066329899001754139755356665275198761878450195530315174860678208185444968222898916794442934466875306349080910817191417548563371152543813201762932984651837754183789359879288990162740569440622811655031507996851093632327140265527686338296568206714685154593624739184776529021371085405201777858734151340149747645657472141074346724105621656391037231036258607700430646962467204243839992531931813447885095298843670873346719121528493450434522598374644003948041285085342955824836400607301263154082723910000847160920011538955807771003973995867993359411771115091645612469504642784962363009221295599040995264017026924110829518137505447247222883745538468123991801045113221222154891137894660037305246938221453097601009896848880332657707670014291988981308194078324130396531448310319469553836848070528130351496271536206289454245618715441936110799409011557503250474091930156881663514754816217676928659442814474806591986225643298819366940871982377278325210608895493851834232874620446659532992020036531697122453325365425891143683042029591231958705300772061539526687952488285855626394661560182645232092537655068077234246543728096297476079182561062746430100657418670312566608687922617172088036505795296027039136242303438223523900652839699692140014918938281335240990364102687656851983120537799982934578712718319850483520228290215269135344787490551781340826717085974648389667003047381883720943335182206725456365356761496119230322528574347317064657335140679337303733145894743553446661133917482996406085370711634882848318001698646182652719691445223198476436405575750374981780752828174252714930406844624703339685351125799550246526436549740599155545492621812350185932970430466241923583817805841345790402360579977545328734594020769399751250493834805355847048962204665753536868879656817950221893973893817077956624792696676097304316592021645242768463892927768103987390092338756662945444982650311591079821907945058764552748205858302830886821050877205005550890363778922952082465254553885714300612174877955480806465532756799309372772537337298766897732629796316410089439624589101813872480294601409150659951742328649035773115248004901225480668616863275149272760117920886570794412052423058791265428251771605456291012596060964786785697859486379940734381820818647415915564829112117195607095872485113911146076149929373549842629761422532345269723809167495015573291917543488355821240736133586822236909870116153411357302268066572227469203461205713848776557944921243390357086693369537536625379878834112610881116250600776321630626679468063543726659227239796608790898340717151929076527330465091786276513981998103112292788904323606970088280696183975717157770799314922555110857825940205968192293300150170231502666651489129334401617892752272538572827037458377562695119564903199580819650028542025059332649245493293660490251759470693429666491682230795489035657536962997335264200696675027549194972253944074177467343124100217784343269377257765827831547692352746994820508947203593192657060565133258052442465784588413770585389425069093617481874340856779303626746036828469661695049013152967727156075525021269880381008436011387401879370688373093225478070011779759393008862632452163200957193403125408625550635096468646562699640063739736275036975898454755607512262239668473510046877807653400836456365893340900401896165288384344251173912869403272277015898050886920819835711170745393252038685697915438899257623245010553034630725112686712422809988060056444831901816396399196152022192751175609793797031094371863579309518930485272837931809692393197015284436204990033804052503484233636577719167133368117306150028781001390594839465954546731061547243203397952584248549242144921556060738176945826373661831842976793278151442895222046489552345854733232104317489304573725979590576632388897397721168972444695697231156706655727232012520256367041572627436469573720414541963547943800358657255891246594651281332423673630358048123828643904195734440790071182653697134591143384609266137683445307671478900072452285365771164236396817947697868734371426487473287625988699890820167687131714499975003221642837468735863992060226127204743857351678775851776703706843691092356533603436906548307166620522921472129525649673050441698433398489590348740486753241877723787558772284646012726445971980632461621254767543694821249151995239699160844962580527413507623517094680784253902952234576147537417932900076459305960007696007575276031011690514100851516651648534713595195496599111152236801561321578694713155331136484381788936352638354994460132576335312057705816709701703383246167287075210994999003203941453736611737286707209008840004310654366273688970986745755243201340677454752029000903627106096762014565115349036171194194300473440348764654576084225297726381266161574340116860022067770156366078800519333735828702859232404890234879842510855433923416045242969305199178083730114680462672436197232175344683204606815788592665051108887968005730626192241087634791235175429411549133855128973326951552553166185704217111610977949718940629859509631298796369539044099448736625573218757897766051916739330644984684610376166787230286240035981044137531830594372333968825918663027433041574953645287361045656152193944024939814967343051624572106166477192435603819539356315906024389793563168422321638591346247448773186200497349158123712367587274001604061167300722262688659373730998193002162696699899242433485958432999661568647541359823501722543327489217538704443266004123906492546870928131823817202227207497714847224139536437671778753244093416811860337560963131344083495778361838558973565659969965635621867557208446343654418324434117044715349455410933949696788518636648927698886116407844196310904091623328688123876732459376029026548946365534953615006723293227367520436008594156148990459202948246195972506851899529617241125702676495657423736824857003156789016625180167828480576987657963355082591302839476149149444684258374311166842705438318313433570753064946103197093627348195559383484390946717816112183371474206087874683596970608384754495682439457631768833613602923105643241577861835751832905504233553136388978289549309267738072350956471686974103571399129834931757238740744476081030835865825668770491305225073156816750437209863764953493565588016013828811124402366311653738285827144047425882934227240248134025494797477996780568405966957061025130772422518908817863072082587752793666071768020952289048082574262612694566243467979214894281672190622782771455025742825678614832734921106116777016759177271409278774912517609253523187889023546463328051326331408547517013456381899217395300695956603073224682625386032894508082240109329916195952789260421012144639595427984057145442903272388002837406776343377923777019185164358448505778029115419123897300506512751824398348869363156416599014977184149992548233901926462500124856503634384757798900119254597106356109694860886126529552976370155488787518024788398557781245479890555396582883950431572130765854368992116914643903528248459993269860695632700313987846182407131658977694240526577465383689607189673852373092348799172769141127502082999203569447527730628562945932336956710005833497150933930378334493161437332103952450600337317867868910779986477901282865602562713905804644197484033647471948948418597823330105749675034164839125037369888043925977894979117785830792766270092563711982889741282944916615225937913588622079533941833790783539968753290592109125577055631347544056648935987555722733411272473722296297271609672892651115791050697062326812968195294122025149033158472555949292942654940431645169308998936894204203406069825326323295718456339960173007823895023895082266260877706351207198180537149991632846600489713455905764490153099108838311371216012026263840532919203367431710441973615299890948456488990731524146372189518742169661175098410826331729873301590700669270159670761006644802143548497259010550627630923639609876908291944540337398373100944428868705337604604043399118941902100756726665641103163146077700266936538502513762418548798501596986005207254071196708620175005336962456728441797256478691443353572445367410654021406035161758259982458553084070796727300506655951302146672692264741389675061472383244378156316137142091507517426328559726929269200441356828180441705101819877731706160776182709749821333730185130923723865778270792653797382359024988558605328002643245159529551212147805727587186200959862667367207943110868123700375548814459846018843619555143839889898745708176504178866788007133881339442062703018064867050276117189109148274711112318684349999190919743639172486715792085669176799378949102480675927621714204774146697338600612014962151906112319535305050074192597986299594117980314308045182825639487334443097100447103114479868846642373351433305610223012197318311834487668252299597124568417301041545354521461692744811719598270521706281166496468654954667285254819465612447840022994934739965848044739301264601357276689938450164815148153123947649942676045276388707137930377719661169842848264432069747312463103520591059130866706314874039659017862900953616017532258924579304144420301010419183539948746497477308955039573181575344871434803470392418865637181089862109802901724816076971810700658108106129159298007100212931403506581833942350271462709480518260208867968775673308870802835875942463893333901025729016169860742990875684166830315328425732524862458118226031840115265821671867868270826761556230481103826897251030114644560214091850958807048149951326434788322166686026198305708272485736402613986722876174666873171635936452897111979223870987902686985415797481386527828503655871213584412030534060185015013276008136821269287610720403780799440794907229872536005039071915364208090654836246999001227169584486948781777396344635704893939136927402691912639726781304883565726368765520753864125028399513622113949393192955638505504643199990196346269874667956723196237961909671629807653216414232385507492538886589270207971137691080401468651927829750961962913618625424173881008214269853805704829672848526156163222454450970259383152711565925456693740045411263079642623427276772010762853695523037322057025630676674567741852013503792495407272176369049519865006055785972107648853716021815810829495029559646607626866844643435490191851146372245620527687986227709082331452030063450175687371080863362612600605006395049653622672568838663251730779039526872338016679028456968282612796226886951706686419887309147261183831131083731746655484300547882546563331592988682311574058055701045357069745079338208534600086542464298449678166892307755658960221897197701182252149669466544644838065587819352198579236847191889664510431930617790396970932748642865802737340212779663612363615284356167660930896159161527935615200521041773973531454497618900716280175867264060601209283385377771243511167397725995078619080670958672094606101340104604155923519197420240621314250289264750066305853440594342440070557631661857455245040492902857296797679761228948595310275966455236686724072694506614808635960195520836085230195975210661277291958628874737179269346597460592350259792735489223883322429707753844784767829544964271992244161084529063763854300106405561326213304691702626222081574129855841382194976637359589008528811138320018753395210900713953114453617418683610668465387192930245215738114453710913983350840054666110093670323085115289074289440912365371213604348277586578929366278565377552558826335054446194949804042416240788033940560354858450733642336914096003443342779663348314722282241484840367686745223128433340797463311414783439756503641202478902475507324323067417817821042368620777557320332241964018614927505396257345204916246887429979374005258595648282481444708457775757272979779940836107550256338126590767794018527579434866005623980301484753275521587831208553697774875691246163093517855518751606014827081343774018830055372818149484635982868965346301456313693976287756799846379103691448701163974951296383515348114290074161666539250397861970201027653035682903933851737162850142254685674027777979285139798123745997374752290053230665023176695987910413064082819424822837932793800722991120406909561677751800466238136229758027809978671109653405463642488166478027223251732540711657803023996557248836510742179566009162420901976504752962384112796077370955574222313874172086704865887858443867179499186511463735044157456649210435615978538753428238422797869617229983286736021761183101047930761377652525475829163240176145574743047383594548082488773443317997114845546405602262965034727134593291112154550062132534249727230674689796511649293488097298620734715479856081826269563999019127059818524350470512201189655935348520785321206874654914961059395284151376385419765378320995425368660384597828711537230098758370305982924349469026526668135550308061969464484261856906592639542703975400662073019459494773611477682909781121934516033989860956438309479222547970294168635406156835182904971389075839115523297065402473186966843621180574097279663616331837565391027376511575622737509820050130519013212337584881489979353881702874149613975110422598775049967614332916975460643787140750961832987051661716507512783087266045509012136426744374223981757516559922699928539413461710524688017845038236681281305220445076814680872954430200270420872354055373260563581008946051849816678710536222240636326620788957532104281784016871240604730028977706811220636030329667134344203143910233717469029967064475293238921545205623451021819620666151562636369430761779631598470379761995116504513394172819446734570446886133474041681642411903524306134215351785247814369937333864283178236049128938457262815057829085351295518588032032957767370519345445230887608849577988408831426193391604088150892221602482362409002057091602816517206035643455295914632767588109063975686637388942355952930270071383204422538556423052367452518326831122440683407813445923394853490957112709116215837853351266014766691602378754728195402936497002165747473068119720752988065974331261099988682990300632314947693728898672220769698560618763760339281267314619362552399383239149641295262379333929693055448319499272786441390517095902173528369589888869338893270366041817537645956703921415444849183810802687705403676484384344052063823423115346104328761510675546499328830060630535202638525676572145175858215986855291373075088627891940984429672022400513370394271112021429074755332794178104469281170066054373748290597977584279071882148890137832890072637707614509468818656506074031120906055655783459849375563165357939372007002003502972226355280813836255607295034870776215289706221901927823385830770332518604477424550135881328144349475430357139995066702987634277687786317803634293711782145545694306666052778955209438922717842526951800973337378021072110729837707772984785419823938666815780177667517153736136395755158972426940490828571016333828393735708165794413455697567094670597890411503653431876036624479143575648584160536352722997991877630910090356305588667730283289552871465068767044745839981687649324834895848327741693570468396773028542452606810775993018110699884757249943147060185313253607027060312163480383594190152328167059672703061058228477025884052182225240620635793333031935889445504114033099548605920896782207983364697633867354775951348373567078761148663546622834058397897467896085550775763883493512740658037783362334812388051105210505601809198971460130681086377353530977219523348282600998921632021541012879191833172694600239722544034785993418215788344340291962762019981359367256645106411633829119050021939229372049019652816788467712801706279081609518874910492567960194480783517530260437181871035735571139878172240681620064455668615408353485832493135138550088009793354708622536733887101841513012229610006527306091082554846739539204316917579488867053566388486913558427454030048609249188738505814648109662770023553692659558286331113349027726034965879693296249050456536571434622506849745020582162443334406282948437818101490677900232545714724799722674973200251329124565253853099238005218708359507969585553712769403502543606446020227714969620768510927718344672862961595991347844129568266500429862571717345379024752356411446213620001376190632395637602952915121012317916998437423621734636394604754947304199232896794983848276807408622684095378214504807881593779356572400619229172516105301325400365566723728888081436109966662737323834823753519607089351333813550109181688964061688235188643389117953128729188640804615034715068311536465302589799913673120150817335236507633045448664094033031688321732646195840789443715644227673276111658015470129104676764910300689346163518969740559268249874806247068935899222832988353495436931786396532801518903010924872537107126287712491350454376366023110932111933998840822550375954050077771712142232223244731339401211637212509091667472397215743358242406985579858759175249328620415497465761412679290287085388438184529336546323973324717762730634622197281090763226149183372025295856543079526711555705892360706321827181242477000980260292691466505682164908428409634078910404961300934233594836017655732862584160017508041591022607198540848157761647945719611722601637323289612888370521427522592989423665286716974563739808928528198861819981698888461722355376002019311930578911750426409467602715754887050218842289627976497814225606280241015914092105586492250395285584618818424505952550049432445497973624808094297801648082833587113800628767967298292322690054734840105013298984147828304107497510394742423606961547683162799445598187881650273434062820322545318588351684723499025363796581493781037040487535422792281609150696877967527281558890559115458704588281979609376298995559672145729849922602146351396926365580907376881227825555832268759998176829963451906786224928961655158328870137609244512877539750584839382315974670679131547240600075214898223877387467035403630023920644936327258961784484147044434377110075490866007483349175929715954973572170315838169409464599586440820536652945454431131682156818675438236532599537125532987862240579266546743603037886943292119483968942831182111736670586328110067175943862563295687528857833405642882163719020809781870972932619744278906504223906968085737040584395844787075878655086489694630826464902400672648440974508849413805103138451837965293162458188946574750421250750978216105153027022391094812580401138005880394055012704611179335459716866456414719483826877208383872169505473008911594885973440919754834940119045434218602688212768956981570191332803630908705284952716965708418082885833188820336008544273705517651679332110039705133045551328683966060960183592110026290129674652918772716849746991146176548545090680834995463744976051995555767593754949134318718899786296790169604268452371458589848155458120749711184208357017593268364048196923098137366751447674574821230201144418756901832191537167138569319542080583448442429336336082345521086726585527404675878042714334806743861469734789804413133997272147089152483697860353856773993696571458189096716724703730818806733399209088191500504238089637606055659776140291661169516238143499990555326614315530333903207274461463146786751436659132984488673710076821064847514702337497003953958731446617372297832337681734798032222788937115369075631204578453440762232056891506522534808705592910640213656683162540622440402522108963324840360104056564846151951052558001943427808120169341677921462934955683135879764937973629743137676104069243644480941298450714710540843977765037589288787756646713322161207838371355152186799369769902798745770909749037603311956030818433191498504341191088063724141919458243579984093571477760277311654632317836154726689721498594954334482201303736725574547483183498001782601469925144432699203760431789697360245451387677854946600927378391232797280512234398785655135944946313807321858540809785107801950279081781968929652943247949491509730183565543594154259005052244107102279422079092298594545682947327481263717146185776424146255076399466678115302235558906376475951914765191141251176169208842854964866562664821784167569621050004858889235759875786115347309982485492468642015395918133345927052793111198433802844785202286614865971982795077882311966103464452560696707629249311842699474525576156996075949268160015706275169262609365885930085363200531133130136003288848388599198795723604217218920621892874715753643015985101382911639474902104495689232336814779212922984098117499907999741098481563959008983054963414374783778665552767824382889679929030470876081150595048163507768223219302588572679036896204184679017207874971751281366951406858877352255272435502202404500744992541757778379794006621405403710992412298302806542076591692486314772258628514073021198621880607863911796934999941548743681742962501512889079214391382668992600691469026573122931615302976975040777846268669773911608060391227944695955057571199035781393440680190391048752989404515303525826453254856017721203542937356407152214716585402949628358523559105951813704480170921204389260023915343639553051928782533535551675439888336727440727602337387970956473310712647956916752711432466337697312022808838904960696764170757041625890241468813220748471028501642581138602552067175430811517943888694012022556662150074941932575509609492454568088612826761043097973513416613944271781248576436796929748270657222883055847171108702139164521039842081093087010178353873644235588877366700510044437357777003175412945559456605696944483234433082628112607361073349258580870662491303789014262591767068878478249293052854120744135041525209430172832052436661598647511443251249564245231490625151257341760790724613328834297392474684141015852505185383074229422755021038360481724429641919878185695953386012750973723179513760371758467238366859855129268314931914860342109644779341271928984154024089914734484819435973871533552740688030333324746018839198517721825198260058176180959788849463289548786438239453121359457315217059260396026371136113183516818920192951514986105162339591806950167171955705427059670853556532413740445926664725830071666322527764655766359665822666362759724013701447358292986305904191519196146876900984014568211597980586670646970708645831051865161623512155871045677132270221314378171682678736939553983030227402596049417270796052930461294819713818441410074634838338961133335984114375265580736231617235303500317115889551607072007714424587130400674044014236821451683722596554932073928768729363818494147955383006149848098073508455895569471828018833037356152603837504875298833234905763521732506553821922126358273902551569503154170129880404706693266267493394028708934267426764594883756182988320050784740432143387350604979268720538785995149754256325103527939398743734151707681274049656810278682663602134198968414294983211054210505559889593057699961388281936873087461615203954346262127055192544116617438034303469395793348288657288403549511330975414859678988548255616132151663630097775802451356931196320529468899195966891013225008854109951678532662435329462539087778886452928163331161163110873577755520371119297298148046421237919035423009486328978308386789044226362111160612871711473579869544783680362703737680671824204154574676421305442373200600490533662751075795286340265097312518129759555182209571700027798060888730154624413124305652148377630269386563514973290188704967284456647335632205472478611679326028964802100613115372457711008684188436851492104178540044148272340816396728168870832726434953120682084975307020307741481560372293222464066034523921541268758195323733226984930284135383931702092222573534108544227627149115219899011649798195788429289156430998875399931985509320217853243642473002172988021223852576482889013477175797822160642865756895512558938309766471836551811305622026207967306564779655305056393353070677317629667262663873045326143656514118674731109637590788887998685517830788950022432700673715251907631569386228123047637317686241911926949337797383391821446398285634868889770958493241800446841120774304957787132446434424250991621256874676013864370539756817054753315539626520791590990909427922949619580785244991749515678961165882168511896494358660960856564682458894374847634622846525746110559699401028086884345810114619524741526861915805252219061746908930106109388107550907377532734041265546768106899466693533523916003446611215070936735453206259731404831657502891784731139228961501726834818428423898990124420390473887228590986623693128274272166148796424140973404455736035734158791477219344635387701456376678710234325700534509946028182835131741251058254783581639600355963532003000224039809811173016866483757289062463685929990243992189279281134458995462318397172652142447313148771172547109008149609383512860813525357593571994004542007814030945940602520362422956004523564708485046504606629416615117601670481468974437867624501039314471521343846419499830073409020575522610196384748345287578184414637015435586478906006760790152581727542683848192760089996776005099067916500495707370667451323756635496344439510442318345668799544172854379082763713318101133133495259378691338677241959849172292194616800101083635360950633953235609230452051228974289871930972719888943062160763235203866467786677621464892442556916597576312429313537452351896029722797913344899539343535410656503501829328731587407638808367076264502602275908308815198795701756130356197661317704385990655953059159207233343821465855287231563404382517121242780532702933123930280773820472802408140783322092495317666312308069259374563678649824611308731335327722019813690018099067587251852062851950977788477919880686485505289645817180840572518266912018142435440027632903896029380379227605414142908860551720661385075776478308043542882827102510808019427548256123752341497996049835924979328072089834720968957858237394220246629841628351609664274886520805069818435404048395680855452163342664102952752008993377081799480809514138362084650534213359251056480048992314891583671638611177265691676803528232979429680865628865975222861952575573808221632217072814230276402440138924697643358049970995739243974133838116353711506961648661375427276630784675799065161780415365461843335511417239682783887777061194648697110243087615259642677214186145124195002045303008758376647034175872152623854136639691289242797844881167214369616320920568146138459108172995763962735083330810815000234325347340581093990763786290371384017997626916963612968097550740803856509307527488929381883936900361409050641663104139144490942153244167904269350638568819392803616288751270608824212579941037947618797542420182766895657479427330298259860891165132410529898527070082194033435073018263567798282521998774316076179832654047401855008784890972783907274454496887177665696635119442552053823040403263473225617318514920504866843601878361154981658016435059764867270666302709898446196756264649692538730746738803534636023396922832033254874636417820300524949746559574555905340058949979413663779729489622401838566032734439254328456194134723653453892553645543986782017958872509866935287981304116241752424069217068733364557073362696899149801499145034626643121332830467846017444157735161530847603031379027614578155898365721304495487401394151594055478312796374121003539401284845773280062284581334914934711134149473160472754493123747686459444913048726271349507431318607062217112623474902338845830352133678747639068093298519079056012137516812953388344293240072639043879051858144913180698655629122479184106945025640422643885287979876314771737690949666486422516061349287854959839957183861566725274358491294187596037095126521153306907305863117244457642773875178778896471601089100529014782427892948935545246429526870259857146800778474059850397834699393680645059177270102136409225235142440453825942103191742673299617357538031850876624609436609576648036478174269568253772192327130352197643619544542826217272788151031848643587520322270725061237517436924044190228757493907614742179693848675079642751149152008199421822633988390048576683326190379992509180066217508367961017427106600044077497250794102376314005457183503568901797752577100921976313803461647341760984329371134704135528019683377812450588146527631915962784407993741495086088180324721909971529963552888814086402635317591346213104241248545200849111275507827137330486068788138636465954804100659280169443696069944674774445596447313462526196675418212851281046604420551791698603899358857624760480953099232304985981899284954501769473574141827203934776262801464288057247470598032444602862657812518766418248776558489066694284433236440236196969720866671133333970499575400241239651101373081747858788682395421336637062844028029801596459068290783030459351284700830864647522347133551141514117952874722828759732200703176450250455277460887313616926451773284278137647832489421538482493562576707549115875208492921419337282234030203009269567091339575465239589196218506521185967621602089267167138636501732029858969610532854391957090451328220284794178671579368154629225600480588165486194852192601751755981564275629750424818430353877499149274184940448943207467660066524244265330332184377222336877509485796207557352048838438906259968611531681486766837387676244912334666804935122133236846698824764381907449507208773048710783195479485399783265333466306110391837469347822338873337577603798164080586537419855835736711788173344170830583482632405065451026752920539216097487279967414468346647836590463118441918662656299618565232080779966861201071515930204257326240663619820652491878331611899987198023210934062668063516712070899713723479210963281879522810740923748626355643375395966656207118778357209190182842360329676347708298697464119929623989978964697668452359972433063234153970154354838872960709323965097927911946130647429697404462381030137561107441430057378751406179072010690523637467267668440872120138357422231252913313421905940300909019737552749234606120365201274384569493334453898533217326049040177155445894483879988193229731508251297682700231193174759624564381131576439882223692205165865580064352885752212310497052723071056826034905799417188203758943670903490004268761691226620059989531915855592268029501877995473421634291780967211505822193457078191398474129399556603921314505611927091861162669274427614548218504795114516031613777563899230852827293716950222379503661538744928443493897621942373712265899152060744140751434257037643052214921750035544109561608825548913513233226157478078709407918485948380729685889094736856411575747346909542996819840180259749761955833871165894781641754823453356321416856833553584853553192686398143241381818785719828663624805433217783088136494209387980259715239166310908093968548095042268218736301198219462976689963667516968242901561284176545017459516600785099692728611190065136876078062610495491075881642868670625912697559016383046460648475028521720200627241395886525181082155611761298392427710859356733123801650200906186041115193303782410240773554178586295152459604699475699015391634531348537370405947404373055646759608945322448979646795123663192330277712586433662114221700781276120856332020955738575203727027224393012951550796593825652659187188480151497856376691928516057774226947243798753355270715421665875656537220241661831860382589330648521763990934040352683145739135964508532255556296707455844670664074376259486679182403112468774312688305098286945662240501263741991392463407009808857576530487988366629602127984224994741454087664885040426488830355587404523863778006653446295898804471446113911437745194943027398952640212319361560272575945688419383512392945067520001038235253020696754575832219183143151518862029064772129763305169827604697019684712283179110497374103190195201539137556483690269254641210695037883115108489902190545744505274470463021146968272936005596783466740677607065926841279792979174977850923637772598672010040254786771144662349133525012222900014978626980835774521692153211879692203956720207110101660870450852024030816968432824931987941409445558864256252354877126452386807414173618100857407522343048481057975099685101329718453478094079125744620786161177388415148757076494153672445547359743821774350154911877153490073449127763322547521319866087953521744188794016319949570015554897157760683978762377584766137738307617575973687954071826501525366875225530276527745503735636826561847704501661701742801249269612383550567361201905090155422565795099388684236129064498186936730775164443424491212554939776371271753520334694469584746905464603990104010911908606588891955836995638385877423057576212438722227356142493988042051030041457691771866312836243397635825283887270581114436849544985524137066223544864814951304547224095835732923688790742716144896113033461362661362475039295508502149323381770928595820289342240483757112996992919030647009407561384130831588946080016073818887842508171460985419746756701493363223810214962412234384867679961906605673442054370184129508167511285655817973077219615340442149898070364165397201551546499911118557407113819916322952546805526237730481244072827282557656427804251179863919538575944274092126851343994939535210405614005296409251304772446417753698919418282311062969764201101790963209246238442101996594972432785726948680862704303666356776195656352559468455327372025289350965325368955434441982097929582000371148611839808067373953217133219046721451245099922606889717031630564592353038044098880095089613475543460998058754772597699240674853115238051174435965057311165794693377903009277853438623107852881767515325836178887976472861271096144297947542085963113104197265808541367827036505600872761302357347993300859696845593967107731576699672701401854950369965571615182208690877902862352650074598684907192036976921508993429697959768216004300514445172822035091674622648335621095787689343827469104487166658328888601290622640947851324185811150271169665856473554253452125073647238520130875819106037007865678301603605671142365589066869540153087605237121917417348148723829704687364666828529386558438544545475774806907083261885520947736292150180696736540224080513295305512707167334471161364352293839198466891766118799234426947421338298709655256997270597721990509457762776449513199271680122279222064687107119660027189868198537903140861720256166185244395707554722674283238864974154215335335190059212330074458856126962410019953295915905713307523435035697476798620420784760853489948644799619059922439891506928792085577753711289315315630109023497880212792740681836324722897897030349697781680596138029245622237183278573666259911582337050330077738462637883396730000994691703598880459582506104347613855336175576457051732640078790579219219293651190059241683577301475708784971278261495594534421870904810463107567899971277623606147709490654363791237155761401639570696167905422327843783398597946779134033825763203619769942529584785400703158820006091553077544594738662037046216544864841061751237225030803666315231185049927611117016964955511539661192041595824081727456352027016060819310618595420905595505821652793648284039748364912531470972398162971027542606384919136346310477603272181429766345422002889512409289042978190134155706530645544536761119230219537562244552166401999792345924438143242206647850518140080798331639021558939521872395016965695747858789714151132750886038372095024976873232674069565976025304421951166032071358708925084590812615275631778566335857607102528813587198140245536881536604583768266022066073043288607945873864684764354694029476457846070699615207231247049250873844622753269417996909372599801917784495906167340751008115337433941237611511892544331073939035405412633123258920672449303996597318260083882851485044940820994939761087405770179626630394430859993232533153051389869256859407003086293514763606191041659469412786116308222999058672046401053394034258509603251789438547648294404495324477450768984710186929070354432502565840239443807420820147847412444021792395557393278821914456263584212713795391685034939200097731797250865768838189400123344117707148041344140942370530294078607812580370171055739623083194065226301547985656137333898294276724229888334235279263925887204426110008748062231637941613133018830334000045725225175150367047905581272099955453980185982309052051659607129684012706444659138045810554035440438787316547393216430537754486534548186486044743909456829683140837809506515897162895465741070753740792268800706878993521480374431184955389211681581562289265712657499337717502840321037050170229063641240222698289721155816156066188741857279582138636876367525673428020652630138532706702020443051245036067161154173588961764283078154478840680358456750310021289975560199442625654484233575995007319405940385862933595948602903671542373600195246398084157216554629995841366983292011727767942538211010530342518040864899878069637429606245420126306751740550001700348418309752985288594794459969253897041109910618618839676390848206710750470251084617651431815812312776090820546469528944940480051173013777545781154893415745264825600019214063311606210336018716085415032568729885227152976844418414264141852013086913747258262972153871137329437503549690052810190228442804936383345563893087517111658321592144602681472173651372621534111178982168226956711380574632937860564772224583194098236323095165165766119398810914608870652758817814611979595307141333254334858210425542615097131658771163725242791821141972313401508771721564308734892203650042542180757150014903689892460169853936445922312395129229437428103224612950144496477580027867860144744260862458750592939246993873547220591337984327029986837725473495095030206142107879108445042424067920469089202713691001842666823234220479823673762432665344195228774515885373505099052143904482747732931110055154298036557680179586369412833355775880505702633222281779168114979222293867597175385334075256831916416983040529487926407076725180862341273499335980732977405120687866684149687664694985630228866715298533171020241254816653567930367656211848093317310677716389412397640591793927121547023510256921410336091915800996336507297187845287501058506203928623084767789894848784417935176034005177838135762192217577882422095135938153697657611747849166572926984536582383626333849323753067904933881293110569448169248668696955299947618973662537519698473741796351603449413710156195890960384075711408495477497732330032076653231606466274788016474405178354298212658191084135307589483653443780204608059366106454226167797684768189156099953571816394951302970006972272181919893805458774727024640947520849712306368121403092681033811854603682725415914665849361085567277320898587087296222939773408239740945130178715940487811396630418392325024026101984899032007952050492114586665067022573378673862090073412310814816179764863614159773041448897908874028743548584329906946590380636575026612921121525177997579209589272019001331277905790345487169166860206814793853318076117075264627096951973740047443391765713391402439174951818478343615690945149511528679306114825086439070584855062155064789320782717940980717883446255152097720516694356245462790352000589671346498222093301290993399472697346727097091453526361186173925719616766943978802051022312558835866643259403429808729116203421298510233115126501030679059054693494151644975961810474496025060267411216433301613114191653074364431083261346569823950390328198311652470285621353832958735183479736670445134861899815460707649913427057482914724615634998242608915604950719329609869079218462879386667447267722366067692355755324443867424910033198316003458374863861718869560883166719283161059163646164085614572724724389229086895954434112314147189495594476315390288240676724446517715485502647499961983904824073038826741305038631651124105249982316830767283843980686482952281904149240303165872936567772476099325239296941893653458215774080559152088290356358445341393080147960485257123818929534121089352487360738123292355847597481942703976580237955413555060416639220596963727951396296424530130143574011319817548190452983118613766166389688642836390713996945817663732282170827665151833054468622687832523043170777346373028166998404534606096258777296639316746094237089418472596727434020813859066715651934819262058463757489203345727249387078067363910679951289492238032235628954956794163337299788792766706392001017477205118589247924600547008646178995105897885728123364629716247358022434267406042871123860043889011691678043407336216487575988205201683000828555607853401664027134934069593577052247630359633525124224833019536257070008796713571689837764169533144588331142900365565786923371072876716164640914976878425638546270153378431127735122145834344234326702390981926504357199856145434723102138977513786213081164031841145721751286358754347176128427723386172147464823546988926472548550256527001170928455718548640250448845325096265608263256697396956349962742928617376450952773812734620094112957287763373922573191342096555404973386751309043039781107764023433448041147682847235971036918758482560868708424014892408529804060770316601527575629544055063964922314163994100020110554581139866663446787925687750923149828671258778231513692086299315072743974464256506693259132174569384707605549051380558985052937900264421007189950294280190996981948680291225335233315303130255483289011507636923143097262886910277565759382996090798637207144715453918585140191610227230481968068694766548422843051948965294254271280353209602138097867642816702054620468108142787675856926256115041420662401808031941774771487829997022984159201238818098961070136766322547157641672054504322790792775214765842067947571558168373842310532105260432043293510597324055005308102698257311982591796502976019728489338051209558956194754361887487280880224502483047434844497670178020670827712724068049737742762068245684285326815051885370953314093913924780164336943977619640136572925474840218451121571032420883063002391517712868281542649428555154003134596130539582180319748803512138570146445005388786647587458737506501528395904801668122028360101428607016849174840327208009310604123156225331567290616414492530576134768048972344008742879806893835755447231034111085754633379765216557036992723493744355382189780245139224501498977562910006399711372717076081973198893272068491680649795207633960510035821597608113167000254986751337708628406629370221243172878573555962257196098068151351946552932187609653548524343009114515210093675740456196517685953126685576550618608516486847294673661109864460272081480045188747105340197313171136864987700348916506994758354667666046952689469663489673268165042314450585956699006408318986084520003517805963909439303678710990685677165849495871171020292037286867584385396318396747032502868341135317193211966362813042847086809866302366483810751173137774754733623519127174833989827019041786651820235883471538438661190176044219959917643531741074709672008453119737517051512774570434003441236658155119908934192515604335681287291967612035952014581658267495871651737643701630892883424222688398959114323668492785262781511309641353898334420857889413697110647782706846953599191432917765587912249532957224703710576111712794345148842093023946154026010671004039344456456743399414725321525107120523292858949190141481163264324405700609178123494687976150609190768288973942250473424561328953675830817532534621597376019741285330556743129370919658553412050577942066153073557398580177386874315540849942123466879689765183070311016996280942536533789384106235452300145918270623787334571651537963887893455778525785452002231715323300031878075367655992665125033979325167268285990724966677453645537145560571973893745307914345521996101313670085282356263657368388476947841722558407385054207070657781762354705474871501251773442628083567652322189068462027759524973124283241293086342066477923206003498494529592269848397574952847678380213259283217936746121720750372050437917445606765853315825096079098266728828957350849796117644318479736680231277616521424548046073875335615900303331779522562512693177893807803721712036181882058578485347852371887146657271074623549957848497107727115913523547138145465577351722624281205856183421970186821356142549580757608180128660187189001529314504112712688757294939277031222429560665574568123949929002350629507465255279897976017719694374993642548670260649337842972031193305599034072618097805053990887721235209116778567868501841586032281722108934878471170968171149418070279265127670076820496588504165953282754365305605852607831215997255980908140670741596234880425606486117833023733585548072160000409992859618697398084133470996109049304611335939813316106101262349833042617997984201399625949876000544056169956556500191327256721266560081989509689513401351268934275247780333408262925752726005805574321371473664075753488032815920723303159557015518585942506068336558225525308517889180909702439513239650084198329636653981049277525745939580066159568063617468506986476536942377648403263122782868103160634311428606228079367614043853289939697713500787007893722472686704657432649532865030283475811726323609326767407490853366605144915027067211492650292268115089562885346784643842723228602786291534963342672912804486543319628613763296560802544710370889283102254016741446020603319197533618175207772452688088422397011105958075316499436020557109011199912340904316072901373057993916588010397645248603986152149022618000568638606776336704495621093839565521683140500158492585483587140991853162917850135710358427322817232127912404718399417664983232457444891148157814903568710472005521436774935568317968733513631592734398422337329993972800924837772863904017759928283715675263958696084643733816043287894927925387243975608161821510481171604687853003044017394403454436053415750011001475912433948276891184214202615498688542320244327167476949355015806910626940681054226490145595295105720722933475020871548341741789277159085698937156545199704508583434632749549662298902455010751111960188028831962271772844966631962695923769154654730629712627663119734803842171452058966333648646831454878661690007997419191329488991169832778815763606418246093625824120525806730138950040659556864188245831692443576443611811806350877065468197970751702495349804020343206131776289838480238951333970059890242391159702446153236737873739678527376136465648543704152838353910196431475431198165158503488235704961207172890377250697435211977617599844773551470328482137857035764151144760608345626000354227523710971056687634997455997181664573461277485540362416779677048206269634748192136320859093022950650147145792617306122958917272730867948611598608456444142974615963734544311233113326207147690349617953030391714318204313402145517700514008063543877904509351662851429196980026651898913666410753608035603279470591631874571634169719384904403326975406593192677157063990876718888639162077067125133807037451924771266629322846098285664214593189062911285057210377764645119993576800909052514726478270991452244422098403851913173587367571901800485751342232566042286954183598460172537048067512908208593839321050492042141858283099704426428885875491623668829603691253945449109345918295136816341293942449866653827683199582698523696354746615206869453223908140440659262975392849293122218303108028783881200997207577766056140629280681758706018447871203948211698228370773473559790900879187130895354873053369501431484014304221449024401420079653023313744650166040132683717658248415704320697202232632923448077497070020325059117948507134295641014971990832009213877961436804392673646726581620647132775163650505906734859530972820168624659717919963799918074324889042161104612240865136241063725972018271504167639643502895671251094839103088326759700463674668366158036044149831994889772867309931995332540083078457515649256692180358000541937381194344395001977961834354820851738273962879939914430980501754719817946148263613737182924455626178770150555528507158933858727349744866265009445689167186012013089779383704121635574246066212037400732583888560987120381578743032568124741214100643200810881375234365029083548908205741652908040434343550561784060650641825371359585134680619234096611054776439578932414862805444041750110145487450778434577863803747637687968852907554699189903920181020346767748971010622804713831107501221666867233184434731855109062915081527049460674371013194449044818767610029205506209827665267779753168589159349421004931930200536867733349191511254925236047689104245957112075799283577096058179011210203612789350651433849213738608998311221757552715018923525686562905279023960656809824019241149279863270838490613456121795090336675326240537964093036220273664443817981334629265180480087992176593389619107069695115453985880861951510345317446403646463762343835919748254398214006213654246971136566471789374035708045637803293773056459994212746135515820587159226704026124800874784978715132816322262359969339537653035748457594457451630229793648322518245008716085484448870082469236778125978588703691254627692015104367782635902659835324737441879964896489580242203677953465367705266352758797128831364888589038700561188607948865287143770352565367539910287074143159143177690254256193703526639245904175894967596138543450439590021717413748416386972064606225478879696055034877549521229497186121789100402777441641855498425402994536279616130556163702734186280214672727157411383825077089700553231395537876322005581607324617755669177580734838111951390356569091096220244300417102131719948315501812102731781206996625660336403837420315754409783972040488364203419766789455626870086661689336925621064920866311621768075137687555826913674849555014259218484428017570522314401355958428789759786724116202063146497861044435662851859101256358052901751491870497939777260169689896997923447693924555587597635529424003680043786414917696793995202682513397436293619483390320528377697457387759339053629544314197851631648313685544255164229958563245041276775013494098504211467719642983299020660340694766262457742713726333015401428062254350698175334701987472817679980743673642132199612557135930331953781549677487473365987497169620601918414235794525342890750549692009633186853209075779747086614700504206500579176166047103930279932349934467517895622704180249774717967132668942483624325553200215004379578832372068057232380855458696079670106894704430623907999965103412287618817450117532790489895160080526825423704910522063048664618864460332524639422890112850010302067649058627908062802591009644285499384074753243066309016626173275841266371668262093412941872970378717576058061600788703026976480522531230411843078565478132240000309729380785358047806706542394982931884166647950237991631093015674626390996156962015857588289774022399253935871001987626431965535572419049243030037058105134153874423481602284144106798065138692630061040561803431669508750434904077522682478459976130204307298143206270870323930578560064963394212227865735998003293502867374649422455002069089276541139233099004576739571702602275010135310170870695715203718604930305825693258344322640241351025147678927517013859017935196332163288506374576659300598020998264260511718481203674047249266875766816277665607979244730875510378336153476987861993797793964957196153505051102224496187969742572884791547841401300518517578405414497003653868973226554189173835256063742892423070766044371383548632787052951974028953354241770702772190237346198417026795944308205166916125944159555322619762703277298311100338841633775258128256122219376191417472454242331245924222798024521658222529070308756306113619259656730368578348291181660925332046045959258495922018647536728492985254488375933950729917378582208694103582980945808627496933902240095570807690126954605373411051226697767994917453515330096007247659721442636256646697008966109530659329170904792967868091085847298656820084574489578518765538791875377535807363614480986764433469121598382168116668329252946642712210950134553297713080890758395387784678794583035800729546416488646194879552804957495726847573508065110735990031237406505125961672023032151912023326302052080363498532813631665593008990132485276135183250802968708594550193281534667761147475408800988867463268916187904917302815562794075851876673364986831859235453899525565448540910043218875606212827171031506252227215928827616440619874227350753008379521059080349179130380427990167220544449532906949559369369070064299657078191535984281944700287531382473140832650072895537751581842009039630886970142155476788211869487722702646267197087159646366179452037289613911431629495192932779228791052406294926040646658772881682600439753345914613768592456738625321058413012922843120292339291981537584567403896870500350589723270383872861892431140322029095643086490811538403557782628302206642290519453555778298710583428738299887615669151113939798772435650224167453161484793196517930869044502976894831843079098220407363825535277461567902296036391441409638722302163506843295904172297221796407144904374964899754053830513079203403781572199901499554932476865273930759615940047151241755246475189905526985148948858267111989054848311583123400892886481852361046475934545260576420387713679901549613979565115139662940705135088605499921615001999539263313557599898259585138404693691784690017084321256013006079566285995200249386648869133842125241560815978144982028252030665656546363834311230469000090173849616676383217168606379070242705372178785623377862455452060311942533383876336718240510444506547709737231559100327093274835133144619073710922933772742793175372385032390003575302381506636104764769640847215809069771873307725211873982078492144339949878885495016113273578236757795772256891126408964788245130094763692572005939734672871451391902984506589661290610199450565362350680509728862853306022498978123314544488353943547398368320618149699644293514859587599022656950341496643859704424171008057042041282966290519440186731984956763337903749574946729843020694649876481286425929715317488328824426705974909701779363456567513168516994828995546279384654207409948756350116112553164305403526031131188964690201610720893077840527475304737820033589702192326051980880511465830956697360195967584019463826840647183840427153385903240238834138649336331516114823663100151585419607944797766860550037775371230659280599367916666751551479238131936465233854698155478341192810864910551677543344369233680817981389330090279244086266412434926289869030179728857954439521709155737940450567769214754816197291266274153796652172568605149601420180204152711147472154256539968427485308926722059560682827952819342717848072894399144557605846245875924342148412918627891111074865904697924313047517244671686023394757097675382860012934371741987799449507191142447781368840200200301653190112319537809180565170810755810453858660465220844510721088699141783996839208836660731324133735444192215741220703874274477318188016291902466132628248058579781286345057116413403132893100033931016443368405598750508765028494807843859018761549290233268859978589553165869019268683868771435118197281977245496373726187612797471864734723026974890858261037376802664370724308832756531210748404046246361230790955147580452828414030916351233570030670725286819255152088763339122357598313916311109634085996631675026455819098965153955179884326169144756125581653238113264833328016034670972905615945772253904745204686003907165173253718325681748209965021895461630829005502427175743371103697207514427309497487441314509481629157625195024442700545939582081473355577832938531739839614734045373223212088305901530369328223533317019112765666275700330839908036452749320602711090168728566650929451991258037947295103734630188545250273084970939839866120498181731072315059554164424440682587727475819726359418244465364490522866202450170358711761270868379516616390336838167218861501394119947483939691894204362906769766451543273690455436407617454358934955385647645476594924148235059835798134647724264032207026944075088961318185569242412152124353584782052241980802955653582777586762333290848156869028156679879454987082253840230984239220508090549712563245896371342395153483132056749175218652808609967194392949802473600104642652423139779459959284667697712707459870800906522101210593505818652274664518888900590662694287691146632874967025145417141090210039343611079590971167156284439425584625520166308153133230429109871421152217646646574394281663329957538349258686913443158384570243672121630809918624543700046196168673867007171003818874681167160648314931479472383788238282914219987304202803004519751852425969528777518648628201755980101749107167781358606379805992660782682709060337679620198873450213634401159818764126505090685271880469081610013434452857327288785925118509247465716899578928117992496583974786482659669650402626152492141690493131950388407388438613845227107428998613793750016066582080972294537391455605486940907456144010312049477390270280026838772792413548086209396261481773730065426611599718901222500642726033183739076835315709481261566651583866907130853475631169857936837023287267420221664146025968549333259554981447592563581644237992631693576352699072892140730395540433782676542107967846625090538036848910981466635384575219500825818485670803829868379129638889889979054501867657947086382911626567393863903413789849679120396298419037635529470074496796308431058604291005049298391619226387059509228256848046627424820804326779126098824620926578508378534859356843870648147497321490714362381919613058502120499674592938436343831661095675160095995163643813013538931655581074929677257841826708750286744498907928396186906001856885010027104132733999392703899669797460572599840731641915938002568787008762708885058705614965180510816044432190571144698829129277345080191221279981190087970431448171071224775344981553108479642232118821240829180537857586485291803729317792041648424453693181265377511118101455363283446354073011119084145239560237391667533780452271581450520764640354880109010307435093730345350021721685449831454684102278752945664112882891709416074167885723479688560423354528962402236861600182878644502341392646342325003762034565869759889566846108614417782423427356215830799945446342271776500442833013041876308927836813303418557464069656321079809304348150868481295721471392865807992823188775056255499413067636030210503907623683623576185947821139748491603526172271282133608230444338137725289576229862139682314694725888755708253388327699369492148203695873648812101765911241714411968775640863602494646856817373934948362333611327251687501544580188083263946836251573930406011499280921249043931122188135094510408624379038210301114625065501747316552833760483421524903876663402069115383460681146701860430886063716283357704830766732380419471136321120547842612704003724180506936565081909093071336433667103167842942451518892234343569983016778977307472835442567131838562224690470434470229665030919771843632476861607087695416449048850271487261680197601008714433132306662023332489747683210945842806438411606850585849537396703467745200995217285128133252550772096465880707025953647049858721629183910600504869988569963152331230421204130360108594668885949307292228263789902491666609731052682779858618053553813075782858698728887381273618191298703525991330487365618815618448816132859888972824166019530772051829575947103989285585133271273757486074856368546777377116696210712328271655350273097428227926575011946189656397365883438141344646449918819291703151272182927055787829114721630028367656406648761697985985269449060377175170160282175577332139805648452331572588286796752529847724816651864804376159335483210404233811338136592773961790803715450118788434570264786985831981610844719794414611892961560578177008264897806100934022708135769097347034573651804568983507659993331470703044022770484166398630604625213284764415057268744250928824028483908675901306214003687577459946575614666083956760150103355997784308335695700706312676714003915465564376015522033265749618527670919292540996429506739964338055553055280788193863749120248118305023193938432609897618201876944368828772763206639754460390856438671347978004633049872561641962920654352963310010705170356316094966551869678509165863400103511748594914231456256241884883789660535457075252812769959206642552023874365791729059528926707629236676131768783588565802933185701574004995614493377418982401299491653773220635529055040836277478074262977074604409655807549772546983653618954784305620808881614121114488812510802302261882474831100458406493729874405107409057165197061871089614605329761024625334118063385820663248451420669881127264381277946267423081761157444947476776971979191535803265990865278106556439804324766685234255911019385555219444326548095260220302946437755747152000478638877588759683765381972834574912868710182866821271009398389059368914995829221981032564869452739752994875987724174126617790246732384361815310271511431421621748490580962859749025874038549259088508556178717429451496832878360270397091796423565980414543623651088193891434872125901859354839261142092443051709076608035868698651803762849390489556946690547479653825098174189255272321233035235597167670572890563307396291643626449348819113307602319760933505205421251097230432800148766484722245065688780471299363940393436085141001971248310064723672269412219289670534510040844567833133485833322319236065516074393706524170702553666316233150496914038147639709048859758203934327752594102623577470078631918250052640288517594906264524144950118491050034359122201389027267912908556593249325933704350333938860017871427676459423646716596213570384261895969175390854927516950809748453097705995586854627012418134414278314794449171711567054526684852706168352799074723149412757044017996670087990900664348644848153549844511017562006829776980606971630127088141039232702212062058385606857019547201509608787192582062254873572493288251824028675251207130133324640976886837663510991280947525201377690013477117708857927676153964061449471036357290326033799962464209694285257757874657348807225236649486509071394860801685831040995117999946568847360435988990693827687842646481657343319527672129051067671645216612145966362612691113796189892281093802079345067395635817985006120752672312691468686253940816616177549696927446770939605339449988948847731305859576290842892869899862591094967258029807514377324824754152306915903039004138449287176416056780215125426639516936686575019652528789890357992440972243228107564445486108447034834186779097701102191798088933916734991455570997555013967901485350837601543937847080878211352388364215254865510452713788592246786335656361989005318100675719705492936607607317147448165294709900197849657151807299017319008464247473708331164330472939402024699177770103523194911078616821236242513523100446466402346924425263345913482625070250289304351486477064689843533031295985265124488945050966164278494092885923070318064745166728717499132287651059672341011505889613784583506718468999633860105434442524096262277251448249704511869750367886945492833592564453958955401564375861820917609842748687800769515299845657220751749511306568197280778426093465478361772263595770196831681919076970373288454842717763619472535354292673887733321628222685386574133562585365691532670339207943093488062769640171587724670310505628764584227162438447270943415481182324221856733301940138726212460657416443003242138323006011920097278320931442907096123661421978921743869498215764791077459485646550876576039595197300771949876086720929877077540923462200680268077107847378043420705319203322646068467952457096101929789396030782159789310949540739266629783286585002392010776179640093167930485760420033394309304415116759714207759449453661501684355282219291327548861157800028163265054919696096954805536885810667385322712797418671729405036629380350041008467802511993278400938647429220961595748801511508696128533069372806395109255411153498846678431326692337813389905229692967880927832023430505999715122242046291313964822653424538920158377407500236835374067017356968732317376119706581656054688135652991601736543758061535374225251167878967722440674376608895530351455444133438998689973376625454582315013782248275477964873317930572164949480164105150842582825975833523374077808792034961120270386716729005340367942704648825234712830107857033079088321584236860530679334962050244439301322671597828995155491975892788523201772926387058599749291147864730703644956035983439556271006975024882662620054665907183721229920186855815662597532904698607007006509524476453284267297266930149620701696644018230441289433055472863992928540617564446469946706490247297010433989713054210844331773266040591414824027636414460374696199752358939343211964485732453992295255074864080495923630402739486876718870239344132961021335174673972076062335234592580223925032233826496612104613976340221554442898268602571347307505806641124112739720206199288857509435507318934795755713327792114384422487958864140349882611212178370359302148100780341797840845423190974785025438861504811835521001558011534868464341448935469795761818428126461333810418124442303245280347945788820686045114339052284076519315173352897409973047740458176704221694994181262337749621529294621083753922568766925474233971587847946936879309427817822713612682830897527050280204616199473015879005623527593880265365256599649173638592350635737926868217189312755714540585137090629227820271204948190002888445238364018446245696632199838691322758297994083976534036097556813914574489039315399178532582324824658015742493631489250730370959988480102749685510626185151586332081879004083736711454915178046125022112206880911949227900757831520035231027234738066501024650904683555914186467149851103126486591126946835805489389983829876846789166289458300746435713507110879870748413298234118174916065883670618286323204101412444556206691928091255596699542344279247824720172579505719012775255852070909270621230451598181531657965690853150866288416137644883566402281348140717952933576806419701816628520207694273756746619303212023458943005891838727276454550029960199254486654938809110183203501496318119246553180175814183585069599274061066863442775296521132439426937542800784670594807194756182602623027141156760418349395565177947036047495680840231993480642227849401942104921215005345854287852369437939790366469094402549430943631502938634755529086505133670819595380195246230618417537277357795385532698477560676580800373902895408349433272121886577609181184021559070299661342005014989293241140135863283121659250554859874381766196484254277290235927765798854267630028459133136575567307176210591994603213281016528905408599757693401093380502470459314213497690549805021626489349500127654570790404985979591245589685975270180137671636811384289268969557464800779622189486116191541458226916251249354811467966985754729256541462910690875776854458010620236473471698863646520683018941720127425095221319683412853114727616983308284016931141649145788581786503906878564351778080978175300939418943962785393090689479474951158715893640082113735623394165534568947241597356830305908945946538570643888408016741511722740680135929509912753312121349639020505185819459962019218169835794333634385599190788189272555995297816209285153917271532180311320416973781946425846686272461562962800234993514175729576145693636660483064022099275040170585159419340600627874427117327669790644025626168651010982976016035111735511229403224770643053113381254944314678040209824074479760389688560681610484681095002823047089559697686687462554252727528667515120222995840077905199069111704040095215677916777583819770776876174990475642805690243375694628115370359518195050383582121235729209863255718657536602737452404207918490258048940786130929371736166007538032484019482335301857662813548285859300147301514355580453846196892058612024718415703903865529592203459072600439738984391116900750694135684657111574747119783661412215541127096389795426803100290186469455675155131039912042891920754931953549843378997343821150135110896433981247657351314553431196600402621634445833793056673850088393574884946953926388165829258588426213845054621455541263199011527720009670181540707818113448435561954789226856479184174426532067818684098763109120165630691875321211380300995268541442118204309023162596655661765430941226191612007901591640131038064666498626497305396437536545849651801400288304012038814727314029100011000688185375659867346058933386723501538564091531323804962845819639336933344549547504492323662891419100924855825156072269835168353486395830429168337160740995240583111562348331695135973549406149705143822618528427546811760674350966676916344278600621183451239871685110196724765391471033641364871364184595522939708955928604756721604162479244371631301210932404757507580886774861174432795485676182311516642422788626746838700986415296661015595600699297981161461758497837414151994077264061898453387974783803388102302307549102704237933575653318386764908387705987379316080958850753559966362192361457536990970731397534578128004665855938776834744579760470164488400603467369580599476791667717398367193520412899048683876559715285782521050251544455293520567855428491438889399973931999665817292958003742363518997553927987547954373229269677633468071948686488700342851710381910649836673905794671903645663812070141643968812311009933435138488138877896207857657488556279401951826506985410325683839203091099479841106892040035155244577589657525964164416923661711763427650855129876044423588877455276623011153254011490324461494755466492621150328001672568665365093210134424103525455335995761902790820050585714831757927849957177247900956021800973391305257208385575941303726314157641372189901238978411011621128908251120259628051519566210320266980760901341524090342034306506011729586051281700083228618133698594162003865534741962153749922729557533371404985153933832463619711679693881058188300858844631922760008368385134104862380189324900618631389331569996485131457974105149530192320900544630209424710256627432738178007688295222571722633911346307619207608673818836868571316595111253956431666478384832031681123402880716246171562892692894067227918605325701478916590213707893563215594161529818941257269247233422434129593094955010858668555371957951193092394927651765526100443952594438992119581920758643598080780234731002054948868369993683281082705104507822762546912969592359859021569696694664608360346608100465958407397973656590658053794949780680513257828245642410792862093183455305051225833286569521354426499844915191250577875930920720389116804585275339940591299388095259860778112382812187074793449338259811829299718762844223294175951560322804715787083548387980544013079551851088636530880469058428653920993016108992212877113162721881879805549407695286545195455161975759082342216250420760148752927671036765109310876260219875459685295371787368078138923811814863235740176907776425324455747436509221152534090848229223616628300024651043255210696675421596802263389029064300227723677965596539179758204790957789776618161818517571413744430565441056844651325087479134998493147371564866892879226773909281638569260838248042913791865281823737471394564380831699164876780388312435024258329713049806610700335477422535220728377133004770074750445209766990685149535802279533868262007629120108531167037039319866967951012400025538475163604180859627809920249091368402026484468998655370147191949642682939261032439679586586721870893633210641889864113608336802987068406355065170725566361266801027133977813612655811712045217409595914876852683302645160950330502901318738169360495501353813896918620933993472938476587282464939053677261358149235095788308687431915373808271944091218160938947812368863133066749342970726592998944816178357786234519197024688999717995222997581390367598591092017790164970215123064952980408382261273342101435957942339943900016729026286287476374463106653260481940811796957888653509944368062832786454497138864270748555128248888216922143979555102439304113292630490581231447278086833312325770257808628954612214326820272402923552054937948932527749788516140201113477114878755492946755342023685320060460821403457229662415091725300213698555446545367037147697544680688932523245548166846640312441781340352814767976237946552472808754940878098103203570002394849344355832274897438665420205417489946463880189965338698304352986016585871883096489117188674571188191580425097560143490092927885270587118137106012834561713666923051056191666012757489639224636719148873593284671283952616830600143801164750072882428023847112430431957989217614650863155250238604999129814942292144800986506266044238485306307287756731319198429939611224861327513402259394563847056484140446359491887779252593043511851733329212150362774678707913120824183441884012228722166504473408062106262317353991381234929143522015371798851143468899406361419065463177748861246497986650124849271449164725000998809511886575257740789382136341947829224542858688981548515528653938245578863235949535045485637915570531805675305201340357834481336685683505229997555781172071285295445830143378497904199456272831662071567326342998831124853485313272141232498226634129220110620615475886293374916878155398248487607553744797094666235450535421364850914556428143519988801671149601401041159142517343233015916283858417519356353616914943844668643137096394701082610291656858898439550604530953449445766932261160822567566876472366236351643515496340424673678198146320223084545453269208001378277458639404189222521765918726402414546122942204446006445678920578567528895181523920052117073837273169143972793831196117103217491122629751948197470688588828289420667530875555602609981321600558223365969764232742167642375194185693107099071213235258743123730434280573883991210403460365698228560402095620075552637136957322729614726914769463505371836777361732530427036633733867735071542326902530388963964628904619270976438352614275915774034247228607381581583531727735704462067366235271881723630145479170553952853073872394305338936980277650129885569930504447823080722712186258708105591855891664100016031032117117157570238919174240732738570263022311315858779836297406335998848538464669593188430350001517804621483974187715663194000887444345831456612509277159115152486535626885491545030594464469772982256355741614339921898284381662230928364245198682684497396374028017205851239885874134753117323793270128365773653969937957829955439129761173443466460223389986215165604068314021696720566956902374285026167607726943783672251365471760580725792882500281870907739929887709908802279738255763630584218490915072076411198066537261256857407883706890364442809404612634686849100678937583190699416155726432361681492165214735333223394125125852347716673209485931111964480500335003175820477051612637162004140844392510018338599374626385324481013663331965709098855900708056226385289799407943292244560335095525173284288332985876622326763109394490500345127096394947577772840973416353987411999615776573291015256987577454839731715503256466598222466874915393112346412197101463090492738305756932702399733135016115517151442008658012945054861574408937123547376203305032184634787852281602290444808585729649108290394464905180790785261562407510058648549311152014229397427197377531757847911381206927844322248742576971389163124238574706483893772702352545795030201039164532321068742752608527229614353770208965917195097366567198005539276160910205840819303081623733493013308261223879659751585871246665884723954929932776275352181640295807497244890800203705672171961469611548903914923953107908922916888152571927578517397205144294969538361438881005028411464226135796204661966595713783571089840416031757237979323706759948146768879758014416122222599793330129428840004801757560197749074839695008266261594683497840956707610236240389559792043738372330142155570871681770008082019972545115493671423287039952220504591340721892001132010887196875641233931315472084540327991922316180501458039718505206789946504584729462015860287619972441475969640610497199888929930691320719930452970151162185477358413613626115615582058797026896281106102619795915420110277577404048604971580612980433497272744322240202605559122235091764109774213724400115961061751473818320920879114987170308077675603623286707009891110193305088060797428002206138919029222986216673726487269752562634192270747492355393700048845063494345561099540626286725054084901048273601474122988492280101146963280618890108457990972970229095011753596975371695969271343580515605414719765860861232879717300670613583382336640364694529044298068920482455240638603477322336619894902398778130179549275544572163302164250966668863929525697856574619339251818030367382622278690724753164013792425398487916332783799414549393595343784584782692820686275711963917264874998831307810275908640988438550246693224814348044831353387083185595912520399233547515807413771623512103938112578878110113733516488692793248223131351137343364617772466508196025328903505955116678313916006770859962205990690277732642887099009445670184238468157851848382949647241709832290858068670166328181072086236119870112639830648404817739929281932705834707468752834521504456185889790671766391481828228283305618881953506141092965857291755179133264869297003212243321837208855519708571463257932877236185923932657017119752497558742264067247455859888931028357997678814483395441730641826058680961219251718126239888499873770628008452491319761123001227240235583155218347751299983425237519142068997478040843166103952328534388657015849184257364799471956311197914108176783603278429510432576554515055893271862632065917850366992841907823898080049132525059872532499203522122481369687750644627901117340801651173141726168371210770763288240991550013731564630718904118006201502304705090010315210607012010338496694620384814830703115967298423789279944492037546841749402316101661124501297982587153503312843777531838059545933725316460364557522116825120743326871405138493360853785712604078946992933096660608070930176782312097467795155028320988975068107133557446710487622663150504910738017270532163420683354019959232833612157711212400830654496757559818370380927646059481809058970265089299835585349441776836345531829063316073147447756574351279544368450147618434059430209100565133326392084988231705009545368977205301750141518428131910125754316600670970196708716695221426031610032171846402309419526553323412924555255070284102611380123166480091096062084197949537997428518786109392496201810481687600972079655192882052398167996973008578804098435869466807257415857086741429830279758699159154151394858884941682606395109175899073527628722123101756694307677866697805747507006005988040502534127571747806258268339485042517590077383580731470926550902799555044803965668552625653375716368338855283617150228124315689917627186540025683985428136791176885909083988219346677586375488173096016234583909458901236466977784811080314446188576484804916388468543101013251499991409270905800559666214242470131442316979362045317553647057012503230993044042222987313053563735590826775309805093753838421654752687290903342766424786051362237127591375726329378135671897976728128235539061197053626981918862792583075989342210520051294841792232844607895875156603979746419432114211357467187758002678341176672528553792175675349720951621330034001630428181296003546368084835728093682431390495472099676704707258401615893272417918772950145427409836752611999960567618897836230897967971379842067006734725946696566104710070284436856976880112702177992459303450433686703805913239342438076172203239016825472649749761365398555515720016006637250443909151685102652190320152057222906940256649036762107986214915057458104976891949406068997480411389807504910444380159625593628401036068630270918158692323196918327639366620541478996709165997237179694300374001604128961868515280316738694779754990695516661081100159940748231744554629836427156846787720106304627238833324957643718082333387659096759701963496362120654514325551460540195750182814282800190460926056101809776756142754297788782323403132608625377012409236619239557686940604548091457352929676089214687278771396573298131565729639108482401983092002755023058203297041019935071878181084374006877816805393881954407154614097962004352323499561064237691060452131335605737682882954376016602585240642406109623175922545307322952347959719318107794370440908751064408608543567180000594204045672442697039447758257164430229580168198325870120953333989092827617150988737561003442586497983139539455836320306780022404201885306560575152533811365916557638218307741255638015229093935638543477291825473422965936599317185397587319655478386958280239643273539347809552617956679071635958402239655727295925778791823371725952978712979217157841778010656472020287517445857322681680741148024334619764506709855507532830700693404093645877215008554482641875294320288645272005659306879864022843401060611530383856907247949337346553237792298763445058915375032213880361497397894536259720525606773933222556401196165595348460334595578659124309979150573621417956609862584657548142604299029537002449317363779577131009643811432562176178593032108692682899683155472614930052824929067400401190807466999889411309230290496479371934407152677727184530916187977752106805701603853238536729299429201154026596336147368337396172380380964908012699898287387137312095283770526828115661360410890754653425131884936983027803296529969707752901063933839869829352610028988705596398850290263220583452913393754434498393243892974895560125462624992679155900395399276887258412002254579591719489399760288478430214086922496513445941577042821565872465252205723927596031756204530628739579584228653089130340425414639720425175527653760417729538976600998894944953959170092887329149166340709855906414033673966012899062317612940406486509982181419032951384780160220677329227210641894415269502870841954895224403032851625688616372047205457328179192050219378592537063287621406851792903450901931751466968762138616308874097990942935132408478127457269017756447139734032144709961944649876387719778119605682496678516541285486458247248290637671628347587640434796598929225660962879463280284598293289854767028131844844916201694243040502294966995691112917157119949232728557512880584233355572997752210166235150003551447703665982716972235843780711131157084438127878634455370645541481521868999775168951316095699042783671048772382645665100147430743626033419254671363341733548886240858925157412986619173929895611944739150514183862268288139991886753822328192397706740924260052776024390454839242665147259574786589975676821544986542095519046118704932361925494799516703114571651982161869048089769015511444817502463190994074746624027763282870663373002902642418011918067331791586854178665024551838704067130798905743020831241715728663976854290488273690715170826818035528013865485133864598650122331708592001165634170217422342953498571003354756869075877311445477146666878487299194692883659967766703789712803066594571850621454777701903965861935690327704354190115434113637506604624501863271822574992985301859431244641325475399492821646623011801086128719899476182145186103898038733493047761359254528839111171969399419070178172819900311290421426299008171607971064404315022023710894388738384072325617203541831388404130285838666252926683129811213856055463730572879745840613855989414861680530895139546602207384187235800551296498054427726261875474264167408028504104872054601190368989939100426232438749206469636807661171506443190331915853796899008375047054878362100077122116434373205887080770537473206883622723822308732558319235932488105176147229724176711978173021923984511673243028157028210911738368469403752898026420991135853797774965847481878673329967041173989650430154650339652893855505083836074680092661589842687207188613677410820543594948975021867914758910545525511236251914614459472680665895698955823906428849403318694505991906698184361231025098237005058691326429356328807344375799331831851807477751266425105020914794207441849206783394051758791657287624929974838853488450203995239602651863109231702321062905358828371556836091274571564991493107457126541600117214037956432335673941773972319425838085033029696529960605786225655360737467280092752573953491399583775820215835059249478992943473856133391026128844597552359136437465476147791975784540088902249895380547100891960595038338567899359695304530734083227298076802919774682575542223010879482033917627729323485258499251309581702242682483492049719598551695159400430418453439463936199196096476104244240274545573728683660371312981139735554183456565727642165664167807542505740557660074567432834701764497380342275476467189412433800956702532372400963881806499242716792783698572173548886237324608286127845683692317953601073092751073623586733963341228147078996969420533268726403017321060883012524363034004750868322915383084391192841623167405177072265897576897934268602221919785595837543732225888007165680849726653268344515879489653807478316679118058444875823787092499956055113568248599772136706089638208239174887779752813292179558541658409274570003895694903017610074918235023123987914875157053055739673898560623644059519634121863908282049331518052242861647012322455859219493035206262268920508414773993687383829782882780125549138854183079864529061935310621192642048641848223854164573288592196874307124778134751314093592781350083053804545600431052298676842443707850996673182974514669909735203888824727808352714670144742148608324434812239344437936997079902898911846654708640734157962841447930910939813413389381393617390458002348418434091238122326241328395233257535752644925365503361358564600819513722853273241791306183780847812204089193427889700739490087394805368494685379061981430075275345452750817674763699600605155780313295932489726544571708419841831857398185676259319339513277303045107045419150852542507300523393121684708560239321977904429993192635033390359798989770959532388255964955387772170353319220535774137746793234143840000847562727143269537809197006716280733410669078181133955771061231509492976302587158670449146889168989980467388278008597123653257421001194190505523025713190790972886345192304086685585573194234355388638783033482669909482525105302463038233690387575264847315233221701045621997099132434608403321464892626207863926802648257736325504601705668842880468305219182771347737261254340912719386347298314253555823099968108974885707599738856033486453036741959204724597433759510482526186549510241492110770516907423442096527679155269706225416495937322177897798974543004720658691608548124149486904038930577019368248964665691764010461435788321872972000116831714361011319644273603307948416132234960657748835365935175656630318401479008058339393377483591748189934753970013444348131050189287427586893737091977864419366624140476120983465400050333417244896916858027857303512486535688393870970017737162467711057557973318840293468337392019255592076080087652274079842430081524564926689247605741126031103018208999012697125456431250015354725239816648881208201739916342321707337085858292108404724672733972758470506879798770519273232807127588195464279726242555293420079164068038689609937196754423457771004283798465433573253317877013076740938165316894857129467509578912935437174128128029150198951921208524580240712106241245151859859607884968214505740550781553709426404692920843057214831734184042642328611054584681133002629005912694686027000969155299187850388285886848742762187529714222835416832839579852368119041019407370338300026406371236377433405756446891388192308098179305616094208525666145262030579548068589998825463924347228103394405281595618894541909375147415300312570968987804009116753898034671725111151596218194270583454489995293007975341183736753926790689446129568002063025729252410959861517749015427726025814288952663722046781620435599434109863013220672176054565046182909818939874133555267833451466914267983496776996163403487615489875483647893309423082192416595553994327561067227775113215160680444122189499182283461782883066499275220614746979941104398852636962086653665927468828898710716221575217972038607034719943242590320246563086369418686567257042599059442974167689066707122675766654610832309992761885952448026692664969591148772981881506265218796693063861620933644272955151077021952722989622195766195204358910007198246439044504464522983745548615895301676784953381941639099230597137300995396547102333009724540759559809694344421109308833519916741545305953321244113201326223572009073159431833068546703124386236872289317762697581552849138451362750913397089311410750776817340860562279519337834849286274332601323756829261481425992105702667360368342556610853776620274057534093848948419172528139450613870686917886808469684368517986046325311503335680403553903257699164697359787702663537263551336960921853494664358428374197580547970315615324469665213902006770403167014886527900087765596878454619498123329682687768844593550678602640942941251352247938749631576791556039853314353035358606953264416524712746804213872954782975520100242734087376397409354167995237705355268568158733776760004071415314821492859930617532137926569748026558622809715417627303283160417121472820133387234148176833415327471521714426016101081920302432831943419792121704858730807252539592771869603883702312094505996052766105360210035248013288860291496915673419438362383864255441710724295362333615596983790720786633266158308712645306530374453536124369651937129301867964062696291829484426841669443726858060324316822300966933669577785201990042366614049676745349725846509268711906595215008135943466760832473404481836100410836167182182154231835068250210175823254416673334035652024621332161252994552618351544488540206318388110237260007928753196373476832675511314051813430170746662821204225395002086642447639590083548907601879448325956059641599343965792986329343085096086812094249546532155498326367440095697510003563462372366112907148456545832955730376110401290327958682403585107100085327156992307902625615610558264076138805571012795490254999600361739044165908631937297011021688211956855963017672195942588300612017012213342526049349944450290579693242459168708298143156387250996611810308372270919168365536328211734791617135713881574664997838309497004118486342525641868351796284633169777370651833154737227568728498643280592757667344863773335174379823638392359073220219695631735825715269552662077042887964073366621715410088175577835756654558987492995723586884309649577146710052518378447880015666542335160254937912470182100171122233242168443901775641158687929698617635810317723368706400534508012703356092398274087757584873666711647346385449871316675777843616913694265239868527260875241377282553335430851564952373875165655672045066183879286891107798598775689421477762184974079234776474526785627599855522648368659636795965469002475375716050871026443192969750330479099937775051735753597602451530563436948524247181037223407376115260668040051701527162369883703474119385316547397733921353084620205296477883088984374363979743701098162118668336543565375669087835928554355009915184034152041392635485367576309786257740749667347274422950071095651775334028391857700085796160391298002200343735935323733222014081840999912963540839338213022422186491453297019420120039699429949639833457865279172392573532874152786090600353625435745908558703903127243675079816313009324188773046739276499619258262158613326548279011078080777091662369606767887782479183596668359916287788406911793640113065933190602916234591636726049405834523113359822905304450107325526993468952788226186430883963724979156591217690891709842209578250636906052660993478998130110349221003412629153685167138797535016445654488250041397601336785234915421035427383954594221145814591966166119200314976426359036768017806161795163454869138839958438155649416299508181253298850976720746903861961714352941969923004658580663830540218868959597801877514365919995064876342940338594722055441700530661837467139840225773648313909081122861530028557455976244087976020119478368585698987696760536848162134213454296707145401911103954583652871648319466493250584254573226638027738544684699315959304569034591505771687273445474405192222437209366337533374589845177872485862690409371352136431665032030257543597380963293690335362835111796786054708361521206170327390948361496426570948052303076858489908255482355339185072205404742680516193766671897223397468281243360111778599839117117219370012489292120044570000834254755847867038784183017734345947570293776310811324902541203791255522760184970399638543265109345380289920577113693759359871702852102321489418574796387747392855103644381830423735723743077502895375614805074036440660971897288868008209800881864739876749593572443332957231166515803742566979452023407996530285972866448514701257190489573640159606042842423857322371841504854674205511570025270355204151861854260782319613856310352957913094664059706058881241147545828829467750380066332156911830614045198399909169151327023157082372524139238067168975025797411974117935105201240419915835589171821721851195539662835431167136526375018930870512121963436634407604557027164320529053322092083560819880226025429523205932204127834213404102871421219603024074875825635940191430396640864258580215712666945800030486962485904983609397401521439252343764130322731744923791325708346856767366142786552067147474167478101594106126322341878307218257963481188349581344537204871824762313207110763681987688323316072664322195937077235778102481232883833188848210824081302697097398405934884681496774449457303737547759749808636925628353106150867314239633310921791947544258225308863397128950185293988483280909348173952565845745692864791167907333745918113261663242565964984853512096918186041527805593807499654693274522665814346961247916240768153725093368363561330840756390761985701745034199604555182530590974259471613685225196700316751131617181759116793981988403337341884054710861067082543794743841693358938587692158888111117899104250211155942143148244067757693373014422588545745531011208753294528803634416164039166074168716595852962721386066664134108795308531249909804212965194088324419535135461784567469678488817731460733985396031827669288770015524481239543171807210022190443338932342522620430149893637594740466775837571579526735153984932725625053899193619863592466350763503533775639715112349078705902751874155496455151166822174936574455257457634621366010065164101396452552525061558862752092518701314644504858541233361571137453368602489762914574877489989421892689968963731407572612698405622421919147005983913396159549311147154720237971985463931369396296892359548196601079500807087380681777803499294989399867281347184897371156348447584780109208222793529765511325565399406197405760124476426402154480141818345515086271004537709980902442800705354089572658356470631863491802242952956363430303173121290884503548622386301490237503505452789347555880951191545662083198129289107513664572777525693691017032571792849244370807525179004899705702274479419765433122747410042241573939150670687025712986750415690314470639376537417675275995382020183134383320066952269670601950761754177677005140828885214444079382906177532063939846186745212082208169378871102152906605818312985408580366210911914873641149256449353962758200416497970628569177959938475726365091844480123599637921184180459347411922005962889404113264926839860724900814893821828197286307251358099615435610259274549824992442741953899160333528935658374397253372666247866430176884030419868493113849921817232881121244975159205033788063329890418927893630502037479037145205515517598191368437725252806908266330744280263695753506209357124335604524379647466259759293824094842157846120661884835512553109044964849022627576501074893072947488809516426551226660396557267215384870979547385078325104386592501682476134110184319982989994794377817933294505461889864470762663617503776389158124001511192426000475112718913730588130697991342187434678731214447852969610257141367436006072395407139518096722027628332269161722863495426974053937352576523648418548575445814774298099791922805149570000199703775574805149238409810348256203397157037879299615431633792664206341321306907765143251381154088283205937133505964199272727075873000933120445203100565167629731855377781920176678987269956680129893833269415177289978388996047999189365933676368348390752927632364849037585082576276550725678892033094309682850060201880796331783783444751550522628108411798729739134494868190168621056237284285908914503068885367703875872924394075955263789800933370195274263367696087165219152681799420640295438166646773929774366048152685313833342623561235001089333762182849424724440635191780420379253467661013603319352576031778733308389174418464324829302100710990764517379023783242828429249328220964684369710447158720608122055900222786024823356536612596367549097998135579609387464192125493095123482643870970150209196877111093995097552806620892072907644377534562381564243153172678584284674974052950431522174987046901386904387141205147032468929766759664670544731354312606343352699531933504547728262776813623074650545107484773419513103575218840255695469782747663078643064596910116720414817612387017238556340348913524250271147754639175081443112229651949250286876664172216169760227184685782157922362490440326179612200025481862484134527486680081900494185962982477397853434579292674770166669988577305801169175124053057232692241391393039680961443377909330142533345963611514484569250713216418529467765064953090756223759519026216166279710373592657374805538131853434446499004082767816522868580513924322847883317477408992665470350971582372303492335727014870119268557244010933188255625670107354524291594938800080418241321138761009785586354950344878582453697857193064729579034948388040910235018309124339567730474687054630223435485299887445674786241744434024994386150048639472103418956515253437721914009993607854969260494810259219981474620477141212903874896385410914210511161784430085133772992719321250211944623723204869027346389524829848597436600555879372396047547725415116936712152241060739863278741210325599821791221685351473854318152666038382297618055903263667515798259445873590964635505024213535129630784289736173596315088242818345596911893101877115160464511412418009354604077067780049015016178080825061084166554509418776446639959678265704469661404934626702944899091808684234567039562846222762150860570975562190732785471421820653780495048787507843424076681710585289491895662048600053889007426180887881359876110069159310579663657259025643250485931044845489241812716572951424950122056441713397253323385608371366149239842155006153023841490080132667410364118788321901622746134869337147899021362139831455114427130515227917386088328018795444318456996023541478912641233734146530794198460827116293503658432050272136476577430022590449285537417389446200373335632185570347754025873529886024969367866550183417336636920257581604122092514194658359583417710377688038655136773828830515544598225895558714751404407670233772649565803281975441851142649116069026017131250815198060943574376524101159564913370913167434612618460737098553535044173263378026875961292064493406461748788631780020121370906002012802869532024775782872010353060372787309757208481157446062696388012585285517238625030609234288272745273439723267404123286768835807022617002886573299470766008343887880466438981144992495710352279455564982425702426737064500456409076328068675792459962011584571556781608249699051547652295310940195488107705617385072543086812811578190202502676864586328278414898568245052532671560578204572076613251187703058972902248392337008473323735763086485995451430950524058206118787260325173823408716343281869797588901669016138154019507633418242772693688091541781520888544361756537659046378055526443761417644443041686563050351458554697968710939567149392663446208144590651498306870018316973652936115949560162595856354313774876749796369807257734950950202539477872722779454992469883729870231017623408494328333253947485993329563039601268542455903144044455138557691350323613598926688585128324690339044826550457936477752804319916461544747030006438239078710771501677302730278793091570936295479003558339348885706584893159000939475939599669668003524286393115811659696961659627930571286213814903060389502132681054895678025239652507789981277618344333165194353561623006337675714377192442542819287856698342690272870184401335995997483783446019590609312562419520178298810036224371014182095844691794549457324175167739975860731714068521218848270587601541724239595473010568553753806999675279699599601711058452297356506978973542591647942047914704970377245493733254603717105059394375605242002697080997168749320497292630236262205890996443283848011871997392923536902912927426488172097792972741460069858990095718356358270776213281488183111955407188306526330978249350279627467494689814465487147480775987443605691719988228137416021538503468857928804815497990749864987120222276957621347525711966473400305149718373147579108252721435471061276998625257764561613337288440240538951454878637190021093744587247436817451039303048344768347852481175397765906621355404359078072162494004741217638581762901844116493046789392053856031404494976735997385276367801965619127068030150278442915962550800240782346837970651139124621339320999494069286760148019408979585748950336926099966608877028054373287738913797260379190644864280382440024142833391110912319092336745713422563702604594404413346961048337640125177468150527050194777096655780021549240345005554132024859438175816731513886012354134319184832062496271175181474281705657894976271618146716051932568719863094410941432985677381105463613536190476136750951348285991353976508752029590288207930363282719877292497353189657655179139194889038058419513544387606350463766963875104685384043205987168655541691772779698437459525894900166314832554022667172942487596747517235561715363513963192976863696614197860601930275612677550760477987276886023804695443011446522598906838052301723654900612287389612605780519009197664420527072110333429414392858998441619945516424808372810189675572777525543604751102981855531550126445526104040244087500626911077113381404429749168798683595626324930125480311996467499991011521422645195853831109702530928753755808442641065086884046589829732811994930568058446878745357563593602735915138759262520944733561214603122159834660782238698704415385018265945041050626309279951370118455297745238682951369326765551041935758046405344231824395840374478990306176133600493128330135686505611620623015851243909264887798029823540627417919704665071830230766983486426967660999625283538842267595099524406075922161469241773919568208488374997286531662878758218509652198937925657501641893908496474968022815410886492943208260340253135067980122861736225829808560418846143008452008289566044523516505971456369879419870227292866555518481785051717934259468769609890511744985499050248359592464768788928856080392111654424812331544400107279775398080562166166221937853460384480548345537901385280266347887083495954795453751890677486101362998075987121266092024630418176490739149193128599406687630818429862597974760665651999947959769816053201490643340343856362642195483678887499038034553274497867547823899333290084569186155018908438369492017638254964047309915136349272508352177755762494543607067232559956585352374378783629994487853704139868440431593548311388738808214810221333550334560111480909625432840240615074153442602119356068814985204135529937388121693115542808149820324883354321501267084730622686792571623995902741840459983093695040862517564076931459329190958157546928778962352505151979288723263581989742591820432583239468409545495775214164779544055395485959037428491808439932040922839495646861254888171836953093976334048624650418989556030275293025779377041527821314514365944648876401727121716874236649437179489237270109188065850693172323176063862970604725902555465566248689733610770099634809188662344190186072112887219033758588305205375015465799141112169476403922879315010846494610960228481190295439075555106041959375369503500811832623296252874666566433462060654992629574951997691992772139830812633391897360695030588859548433233191731868814004634319627818700326333014949422828907719904788179295453574299688264851379143130225345442885146915528646128117992185857587763170635369455126485285106815255729504552851151266020141975059699499238194420082863197733929165194159134011783416332452116267582748012374154930709274698739908015858050054807749133351329626661728361580022685087795087343238053568826962396861812061260764779892544233814012168908951460876871513807938989100984768082663784068533741205877250161874069888930301789794626067626059338861299635295344776880633451183832799878122725759794782355713938333119620225507215189619669498647883861484562365725465890874140620782904868164164373086924552038875906178162198153726809605748856658112994057493236920145929885436816855254000019944152521983767829900955386043654570623636165549971991053580967068665395995758533797643225249658386580668866907564781680742385056913913678028681875529626703102484525351414663410816186982516453994227723682875093534142979748393965682016138922154054196857408599308726684495377320190572520247022891059376603334060734682838237914315447896268662514708736369296417197869515274487062740225984041477948874493698063918371846378462906619534497467280236577853391466815531386944864723876817893985887005642741475921415704488717577614534741919523668163429825044796921880598434675763703231109449627791214430918645168830785087184845345252921058259658916203968054503241588454039023751545479789504902334754284588758765823475096598907850247898004635979342975328896606379967561276998921967281875875864542546103903316777765967483703624948697520707899785133791714026694995452412607987321127811103646612517164218006622216672314458682731257778743182201063453901769404080948694812902311307152882504256339085731014983299439375933398183421517179190541091164250372091892628692963023998004131123856272340567874418575942407316597073443150978530536249240307912933730044600575229631966708403047587053772610702009699761724449252266231901073572585407004677218028066374855947773542337797172004205831606839913324412698967304361359366143040960151872560145837359852617483609851407736023975363980649931744529161964033498800156670952163304815536271892482229108757437147217909024354952179576405322779143675652371889665167240114255563030072175537344576078944147248835132064112047273935479463637030017875624821225468035905652639503206042692612863791309742972437683789527261905107144389009247572855585461852858170743838198910864569211918979532816451827703463102284079454819837331052487300248714886453321028763052577183695895640291811101058045377992826097913287686381882418585753576527080459276478039206209059977846888656374187426338838880721010920518807023940080880042253671467169357549671656444502417136115973870216001930686794036982320011761653151709479865311399530972177455747691309991072231430359498348165419943415395484875969507361589850999351986441837448739055130326963584057679110471538146261188201239588921374793446858093989910043433561211262830284923620128513832970440212648723123000724530553808831164199988383853886721439117751129842336211068345489780254207176097663314776629731876516141233695822683805103589680809354850265831331130181733486797952428986015560553902717667236409580055422041768538588110703629579855158601577434725814364745135682338036941523409285391585988466099307618892462170463721334248874869499688941167456940847232469546963508407235757796191962074616732219992265283557547911644493779432498148745712202438541374754852054021552705208727905034772583308223022606106266902365003023645742325746983144193857480461142203901562787737987852351900335182823074069539673991764430597970933608502873815011466299220100736612204896201357813168392676185362038980448801835225229399167609700104225911230509012524663876540074223234400197094706943303565397355031744077116151914268973954712675142202996254464719571475426777450054971962176285337692576575851777977230741590786858024314266783373715389305529531688868928813207250668047743537344289481210156838014948810983114652551086312646822973124632301451626389453951115955418550666446946054203071685189280081947006143755363879593012368763034168108385458464466775864071018964185637079776315891897671443197388916775449230696036448152310085486197234907094892294028057648617008505307394138084005377885336907492234765698629072249466009555447613667495105927697759044876266235844155237914853504317442463321867691683734804558035954668951349436277880808671205547954709538090342956269012129893496666292889289665434515907930407941923055518340770255712173515742839491664938201929525491934973734873646188555396735728662053469531087481778934788380831597571327357726707437393793703006622176474751122331698694025993532641289993151336523103216203334178558351180856634772646852099299877921121619124027232718842823837466376340145857522093706455955532318832227684995447212680558155925540633562933543635730950158788231618408292433820888930854840494452192161790788501132923415333417411664499237445174132476699303905028946288263689376093739314039283407707313423003375827542440640649777194016440704371051343913323995280369855820211618793037278335722096831230601716828455199889727644661262523831310062626562932627557465314962038987422838585691948621117076652760920587836954114801826549600526975456628473126444371864211420608720570136762966470717366394788242660589391249889211116827251737856921187180306113866797488623078678645717373982456330360285550250574849090081419509923915038027940146730195094286087483081222384966419740567424990396348210625629023259162233441630181009313013413535185941799055850295246923596857471061866227566556472954210294238327941343058687305622861633451072754337907034434286565126855687182672976701472883414722105399887255759424876175816796078267868307489842988541838515397600801342397235134992247863380893492565987362436705932149957546608605407174117623618987260206981214293983429304780221178040780590508603942751972002962750304653142453490393122169238479870620194070508680715530380033414088294057704296736098708910897797031656324113222817296511705808860531038580665201198072280178425099843091216641340977896874466848171456315479520045700391022436950901975409823475012968121882178843586911586534598169084190235799837841505781209819246637737186551393207970217879189848439677984238847849538169194886165745323166156891462009574622063272424549795501600003266862595249741630232637048396036975049766877045481631194858348263846830573478566281696755971359400714869532430341727584763600041202446878293341423668278159667897292587897835322585976545026083841811725979232106860726773908105066409862075176697220729658399516248855674272876302171347137530853993422183460370512369586288079147632656041730114467651156007489702633789853511144427890932587997130134400810373572532022722653606481035663927455799203296164489740440855502961026781248055880988534141673821020815781086998975678114502163831630845633329067605057131950014426336719045348747346097769421974992891081138227731080558424705597915544019911834073235085409306756272492045113106861265370460581627149083417752433910622032991098037505530340456271185441258767351896423269703114266407685705693765577886582588814876243233030062394885800412681925825409871409066073300100851911021671825921179163075403160466668112606730055910567569662692051150249362406079039197653095271154815954234272759954127415925354239034201777760374518269914109849493052003351298432722128995284000968599773366854107272250101487357856137711632057403218353331804457746277009621821241310595163874960975390330052135753435792493363857860785859308304101871541047834334056161004645457465774429174640830445593564851305323441848180399703291300884935060169446198862186311811183069508272184155525356856349227816706186162306160795487732616066129996521610855383895329866048914697278706357089577307643054466770149337771376494727262017075566522536490373194777544445264575200424289430757392762849671299461632871895667229013938518417605061041002987703859169627845171748259178370142463816871649443125974281509787191883808682498540911991187229902328270682332469029609191687889795232528360519185942816788541250508049448873505142006596803357252535712817406834628195891189728648522917012418762701981582755740607907240783098225314677637798726923106325812040786537301871153573748312190942857259415502783289133698168981683269856172444874517294093634805736600631097173993558497209165172263713555229830594012813248156767624920751156270413127429701913961918072715255152493137546119837543659657884276181651835429385856669348754457333241427824114655169054933051570556128015038348443031537972805252656865265242325094129827195136667837391054967238563328084063355412977858520427789198929188713710921212412769817982270079766591588328052240029852827885348939237726726954570014334219543105140997209966614669326450581602925106313923202127088447021328034418763014324884157735566823125745033632421554959597318646616901289409749726082431755612826351990708522614428539976182211904273805400635050093308256499960432566829999171633849966864742544956037306804403666239547317781669994500432673122482580548073439186413007747510380783747832820986555307162835329214506563007503393231261037665009764946105218911767864429132984146681143863622361793718349286479636470177480140497245573620638948015987178150976973239690164741958804708295599581439464706049869739194350496797347288976210565527724007865768666424935359623169122805084682876804954844916638135582100957430900608350074531473648725334439650424007937952107443393368934008009567103078430392411991975021352126449721807082463262557371518029246813122316402235024262061760391853493353553769649754176348774224690803574506383287003342134241981136490156712630627189458409674762359409516166358355946389960303225511459484553973564408951141644136472700842634554903975191674396986689661729706991171536127850055640283580359890283081034828824555338186557703437784553918355583723060382765910452819086610345669280627067259071004569545387222625760760902180576462580160775523635034211273651302482931462277554318944089718885684997624772148972641622765016949126842601146945727598781559511273307361240788281888439112535393589254545442276937785833279383857936523267396761036740996693166535149059891309264911030990541750794769981703727244462414102159428496308789698885021222701222567088552018976071563682136108804277268694495929259068595091653772494415169763762263486105493951445003681216292469409042685230387692798026328083237710847986723415424081450395006169022586953607531204208669173033496592283240731928469444615361326423399927696782187121192529505502036219270197934084847179397271538673846856516655728806122608017422049325063800564378260735955846794578855960351453587293335433512177864893867497297969337829457863057734308423387013628715034962878774013662082309477132582532537035666738505619975787276458543650417869932933578631690267685982962337815409200884192209780933599085827093672127167313649324655030008768000205308569726541127215738078162704721941255339701838143040783905182775360000143590539715641744832200739404789467042717899823900876081287685520542259280063977695335029650268713171727646756573828468434349903156808591479552290527330205108119022409551787686283953243611778398425458866924829201999043832089594941205769074828444255862640226087508359572538623928384579590179862692291445431887569978060223096827319312932773588799790800627703789905942478388099507866858968741828648359893190022479216360732332934971305000892922111299551491605152997288048533911728786718070106954969118529619474159627903497472877088855586100171708249756098029502712585153483370058843548353037117518997936233829379032332699608859995851457813881466880022081812815922479738244989579689032300143513389143604644960112712753013640315341542382848254934891443603411377626538760850242891267582130501369970456414215620650909132651493797532622378947713643255068440117352880071398847827423539082322877467523525468408027967419189174016389877018251521604252095297261355258448253725032537073581923972986053310569659320840018574400670957980091912977631689716561089607842842448382643893811022767975853323593165867802577169030690807958636240797969048477458526760584652080942736948776011058933975114225544193684168910571496591702782381592520881121970697213104030796312923423622920591244653760135003051886173879705258586660084589208248287656556139696464290834824712204552583561482927592973697115058904371438474442349124264613767500441877301779009340651434485329669140285432048686925421635701052246268383446178155123624633980476776722566356221804052295201923462246052553578851938396197700845564508604500637653808532958566624955208859573523228920627651844456783000296227383041337414655871276313204420714055429089442023867252572500976239658456817203522073922605625212805347230200698933585783088757762729980602177758338535282508966560451363050155771258651827520168827824708187152752048982455469560866702511856349668691722249409046275487551324101804744551954654912595705046694963272154688589134545435751658201782375240831674490556728791693978129783875533456283011163472289062921820555301114951948276090879738051848259754004395307951911440329669313661449201585202285044942591858974390884636524166645214594748570647180994436353254949862036830913303001534982928756652814549774044951843402723736858005681846705937287936963295093095660371163817316659122735266112454362122620648861839615924476914475532913357544762451341919820430107627891245445312406871301905533126015885150807101690654494575195274319007575632386830831534749851435570189461288890994823225641760565755752937855919387219351843874492753585778508382610220256100933294280029241687389147256780046194977051882377190234951923007750999917263942530754017435129456629956330634805724964343438910676270574666766204430672413325388898986193810223717114884426905482599042859004145636837329574800728934653968976986780294716652977572263605538757760406975071527370003110786258026154705461258950237596238855025560405187856253143934739030159265799955351094603168937846505196630534876965884132228594457513161295842250334057531174568629203139647642385667627869236011578280220785894040644089979818814275053199602746580621673006448920585829985651742619105985599634272250110236302136043795204069354383381104911274035238881759811953919114783214868177422821091781507106857174307324856588780181900428780071009327083892908700468040621884854419043761673476632537783272444252263985268366296085355566331195429037080909377884211436567154771825142910161177429072033619929378653444804448631467351294068696524685559428953438541798897581661777929858107627989914899738877115212885755915145328097524268100871431878516274633347757910637868515100413314457842768760785823135673605583220654827070014843898070972014493524876940157304806395770194819897571747211624898553948526292256063510675602835761501349643039458862564503087515976783480316393741879552325936000867927165894669455083872809604875751325640909618886690205044270357877368166613724773676760694436399466371061259209575845417328565124091825202412304926170135704152028752156333139836799815102411885047590469194845210847644093356234057490651932911371753391613230175854228755453946590846721429548642834940980271634188332807979377681540267449447429359961047387050573213259257853432930010457441828687507881387312056969888330523814391055479137225738780637936386557662206507707297435570970849152020664493380212569377178813867270236157479827486150055358134113515989376953754008902285897886470435943621086285726557353089465284439615133992950774896556751733908425918599954972215387114736574101630053221716790125553857196079543472332688233166219550578490774462558511110292400840123498192815777433266154319959948657049947172071491440171559345453303473093115588948335334960456304118327674073789961666320268307985823318476910217780092992798403785291706901107379362398556031776387976008605068145395157192572475722766957789188071023303950505103356380498416885451687756958195049160398541227861239823031596738639139827126380025234412251858882856049683967292558193550392533768135350817683048287156155299809002931941586876119801561013769986093125267695825416795293227186445756395077144943917984967965884425996192789786061854839440088302432132481318579970743196874094215800813545607320699826193768184210501922000431186231367361424937007358555399381050761480709231633099049074488532738341816226788812263978100983785752191415122223556431088916093458159136366889362106849794772456346329452239586245929465533234446390032367723499857857045224153584407586795767035164001193942039392744984672285375409896909881849980557913157917840453197268689839299590560742465646749590765752103535444203985208001728940200556488711559441838789839495051095654652480787530138838017214269423545785817671912963510821732146403689464764669840103689303238862110166080257822427707758564281154028570953638671384877420556691334718841933023438531427200152696055448457019421791003614451681383924686395926067031938344453229835398879616268092629036811763035739620221907880060919892561539064677112123745893759293587557061398292528641394538694386971592300067779859128113879151060202701002637737093355302161507710395268265918364278632356762361600197239820258571344291183458351506120990092789682996816360921457064518544815261944171324917671984282644269513059492204313925688377751691108364287716335830064651437760410782547469041972148109545577485683415756541253234253537142239253299040233482258823458055441638442203336783084516927419746313603748374765272304549995649851212288091607272362143010895130571052511775005074772791619734492636911400377395920914500560662164462349743369324191431387735033818093807688752761224321720312475111204560689752695752365129773691267202256301752540808040583915246956875115078221989645292831195525184629757295571593615336101459986310293060786369994989303101293712728413065683569700246320614620109663617634612358451232055886587599380687815897614543383941981359179850276225149836719258139392571531671487938811685304657317499393667531708423335079607345257268860231031955746973587461030504343011714830895522513427167288570240773630559271822696944755860373897179974984256528553973498698719408103977544641854861771999032093010839278968905704104898523889322585767335405364386985730699155293287301479229842179331940657670118345207763517210187461352388583539457835228717715220206005911808414039073777070996221287597091190167625320952389982586874269733015183864804170455391081088882638316828950871576288471199608443068165955856812714120164389858283859735309679508292939105773707133300669212502971477623976732710486021490789762974629812207949051104226386144610382244788548616548171812668718339742664613991922055670648410476279570766483959150953419786714878067516063943111776114622388484739974978760398992405348119884944155942357452014435958890976077328819611616187780427535657354083211993718228719409711123005252899313261586035305658774675384604145526001313597836808488511745196624606714187126281377709245007785381894048886204875058690839191085359889601625833356571331298494922119808894478845240606296365402530491116267907767210370016832930264970853335475552449993676916344819773477356430443701035869124372299506948877011673393218609059665531311421196806318591801906344520831642295458066918476292581185202058049020874651584587855114882418644692440974429509116055587648585641536824427907557753885747971864460447073835139050210110417299848848949450157906841041383708708844020049249829735665522809459804857835942746107806365038579252508309072824024321655916755763263705982088789152999010820343767888777855135350969067009784571742153599321078546011078292673684405575172091187838245653415004024863418902923667127050256464044911736697432573437677045496249651847732702107599566224398288701536115268541661763778020973334794312351353136777883737853395098353929909886229111390132965018797488789345601956403800670694186975916774606758415107216531194078956175369223227797636481280513675604289693256661553156500547663141615007253941973068157428167712449630395389347011701730901463099835019349132788007298507634752832221202151091156314311406174250441156189484197919848235183214309060126379771055204919063124992428970948922630813355798899844530193466868966407028483607608578157915688206360370259278773261896293926493904704057211564318586291876608364908841686224639159721805833977869845486585716411944958251077882834700874584346583523076044655289360870674584149633164205577082725108548042858513293355182805731024623414616263069485795050636751771598364219323299181771460566967875241107922301440482715300486985426392004724488718405250420509445651488155292705628750521923022616625730231876163315263982831308473495498828109146189055352799411325150698520582886818981732196174357275468395708928830427858067864562528173994218723502182252817036762433192529147598258933542538509236260819150139014187812604653211816376509983532952068466941395235262691710029726694371857571682581346194163903056982681816287931679730044748026534862786025913250874429237610667447637424210414714560360011026088673337415327809990633381177674423312748673846917503497425426789971828488498755134183100786435626585690767024382803227191293200636049795381682169671880487383329522144478326437449306338034047090677979494187410287359162411335211447290896098477033029377377305769080986697082235585624183167189920654028826344343278361509820022421837674458119119759683227797454505504693929074638265331267819213963838544531106584536325444069657108548554186602772574247557861075973229873721726223710948777882769302977450318366533709302768001846850435426827692918351615193225113920607968350945724927778035667357617096246764379202293718415810831737302425596754625337344056149670306510346526146624380246345532242411878474810681009500560652318042947463698533337393828528991230346580460077180590480922942620722598746400918081273537474204836330184441692712414630468938985926005092187423890065318517009415106034206663717763386859870406280626102791947832159180024132144139838467360597846738762483686597073140021851382560465406971761250366914820955482062494667399851674680910025556524702890773535777817152425800677491713758906107846400674057636667569301946448673512108636176683594858168221237376030996968350121568585216763512663337899980720590826140731331149559947167380203392209853896417174184067041540174589096141401172168859215316510939627492602852438712237701091681933139083623670940783790602666722852655508328198224480236590462853515594774678750095611590776117200444247929053427792828721892833344545146928678846302465889317955889912821799809203009614953501657482223558057805744395837309321905209575084394030030207804195440423278316551098899059636810817651579037886759077583243815434082895555702445214314695440852731231894731429648185583709264712013401535665376249525066949542485425554567572479221640109948134304292120386425022667645293731275116224281770630108417039997317386748657990712378485062854719692054181654535641291559547310791160738992077481743391409627852507275600243162777558878761617596889668892586994809697959964687301631487217658860252608363412797364033582102344093480854312070822615412527961301876754877562734701528882694520400664402381388897781452663478798182849316424999856257209170527884774129099400435194396552309790627806797217714828728524267858081138186174093965953349013385446514976235032584556368148785122002877304117695126755714063519117831115803101809968694460387134960728041466355370336472150782222893176940205986102989760757079630774210404468399254380437824697281778542777531616602050821676745684274509663326519142339645206718758986800853592501144376653792835940631563458274362112837668407077353613331058622813144358828226237981454303623713841543485411002761750225116290054722539993044501957323037591656448578123627287945389765895787141227936454971396913120416015385004699116413377628044633259698138623431937946473657047442512027603067290704651691184637851441103412852080760500029231102399690296316411580033585920473750767381717875712953188672813200286903763939758359964622919605290743992298372054166556787780434787166264198474298176078137584102775621695545062054155482237176680436041635631666761214394718503601193212941001270750141156053293212111388941019578553290534817565131248045853493774378952017718359336402356742816272028199136394852327371181711773747917479073884299823936846464662422635983254840887431708398031181942650900354890447883524751922876214047373677067725717711468113916196325150133244868580878981154254369615179056627345405129979346193724764718141053086621454257339836866400998050007307111075969006162335405007939776818531015537786247622971869584434777131496749799058358677028836152361195764399861293705420077835024277227945864084872558686399641175262092784477658931893318801686649697746367998120945598839532374715403855456843908625962243410609235127589847712167145263970670961797850001804777189105810144179960260343890046724143117882032433032625609214936047516833565894085579825229505352070674086648522306101764444238384845171405982348963813746650219270079507287599016745397519323331301883278311011301389945657540553249955469105445866787045739735487002393573319850018165905064705232769643840094244054269005119783621790627432662280216701609453266183221404956790172761089532309706090299287006124096116400866163582684779769191194578472399298118142633610933739639537611909533223005909132939899033796306212837493198603464504616919619362322406685411092929950398743916491921917370447518652727713638173942958854392388238260439224731756055550664090141732895023578456986112441359042273263939263747288837150016105263892586488524781503098248017589661931607563800776360009525635190928217930981754685234793490526362691571847329680499309596815428171157705426097956950920486732234230317076283894626683821882566735623709958630351978583997836510718610028330895645454214689015607335578655308967523411286142898568994253052019851648477051814002702348250466126939209123239188736133925222443769483181679838491066981744492512574485105296876464082458508301652264186353443243378989698706615656670249961114489554309019816124239651580445706484674980020545866342433508846853238306970981496235612350437037281769836647088670890352812578805977161734673677059429515274753904719624249788396626356029715187691190021833432488597420041392622241550911737093588941230964109317865239501074010248530170138498339779457911484769960654767705245166151907857131179624808404337477496952213114797464624837284234795626842607540119839558452977456771380264767863041119666200466873323294608320957249614606453280004643364665975046649310020598206293715904825877263010789436549077127045945315577478886176386365449422296037242946676275585273920064652351075669951476355959843803692372972183210030260165353351632240714502006547150028646615768316718068097212996384991161207877325179718619834306909026527706657423579225333886150510756475668999361113499240345134822416968997641703134885084444726749044894943031276280349029929836045646358135090002145275703019933206557533609292901598527965427013249709227800503131668124513933614618229896317477991256275787924167616120961000335959864605601023901562385727140585350623280548060094250304649927866518245091805223757639098628080361043617890898588837667517030579105904191349919931239242440558765107750499984293889957834716313690534697399790399348978927906343095599872147083494503054985483521915591895235320526027065104196884748978988061724009826478586921519846531368093545157998753745528020410447474658398950442328210738632011919084434781499600474790113488388275252847544530889653880970326552613239592964312753140912675734401414935951462186670685662002461504046431978960872641673492172552131376141276821482456947989725643536158543012748550055709738384852438063638834452937671806334906567909779488809317921623230491187462186561461025915535822891431133473040728197976474574006350407169948184449253628674982505787842557935678112908123591111850799329994627716320148349626590482239101537110036567206942761252400324993700861252412899128533651314585912135325324078398122225964004059314788240312355627820247032930506286723339395552182821675940646758822354607050390289749954775784453059007579888395713836982382401388352714748013928254428613691554673748100634583700389790238830945535063342677958852947183142659390636822494879134206500452677602202072339222433339737044213036698690229037272098402398773669737025806204396413281994932596526628798140129265300354527691669823109071024749053961303126260857843438152120951881909555496536000776057089813032073789241478542201917037879482072984184538456088048314378791864502020880688194898309372959724430313673362199795744175454352187219151215250365187541776199213953439563046688640912941663469238500423384625873682404462500982073903053009248165462282790912562887617684881484498673188625178661002448311718354755595826312860261297282192018434057748969123097146799269246234380955713452070644187225068306941826517978707697334323210369950037196209226317131540808203899565566563386593555290033691950333065684313753586163288081639327706461546297586545044319414796097386395472662286989046312100839075172697042328548284554742737789611681928682694593784209622410001217464774162795271356510663123434891201023533385227638813474408728103157325476207962767312413758857721043964417477299559866961041034161171687350902897277785103447517802599678996303843052499435276144968938538054526593358390398624257469291323117968521521924140772784425828097034779615243068779715729906410312385639441865693008341833452081874154511513803932378641875034785492534600969113505435491804788747704552508421458482966328329736401160165184311629751436637036421435903648591570166976560874100627278627974588546523308506694885814672655743193673994695629387885023840046211967823928209142350268204319206268140805373434973330795725157859340776324765516175489208980653134325045954327174365913779470636078450180603188218519610616111874102583496667584562547093551717467875022676581050602634938339042594686979478583601824506092204340293320439231882539734316330640879473834449545003674208198165557522121208992923107292536984777642498123519254159560442208195100607321964214715280688915278989593237630224097503219094461449312699942115310387478815928728252735434011517056714601037547240426764488636086496998703703964587555442134869154155598841785152449178456838983155396925251004551354536874740406353985649304280788457653108601093807718791298541401453083463960227105580324616693548800295672276446579817930534441348554221752863256097202501192723690206561158903747626730948856880433678795606473466399660984166907703179852638117611986331781788249623081391382478991641064091009717101259895442898551730048889685746281058145984113831861752123867138645349134218582518342876200234287661922494488003375044641603953340863160717477571411219516207826202449725249163383355990572658773605620575259368936179008151740378509358976677422919583218050462034176943660988460040462479402751749962059809720774331405743431152729197288411480060904856879602831972125110850346904290707177051310424065673817676786463112309323178411612165296365271316890356208242009293506960179018416241958623641802701831327941719124110390699689644747323279601385549767986209687098495486299359664403171996904900586257708941136271073743976546291206204676481282173832516692478410819549210961401943763172752648894169550996245461933860887333186895930612722338416464112371084914096301767326406214175697776752133928677639278732641525610607047862038610479252269013763873047774180484638459917823721533665543818386809511441853217564836114732442040684487868730886245657638622599076048611734014245497609380661321802783839384032248779516540324353854841294421384295886068329182522078152999228155565424636149027859529346893999300053545034729701822536875683641375650152055390030775686822110423976428486259605034662731271066248797127985573131315677155692684195634706330547248787930064717447487439430389172540997426159880105391731860568588728388180469473417083554411596915061586511241352096772983312178609979310930380392196660410253644949948299785106267170821297576881697246273951931012166305515574239217393799404129282149357633504516841235036833646565771027264200594471278691908030475038645322152694030955253390558093166576497534719212221432168640389230855831765977937981361801268486780634797558002287361803159588107519162698507467143814338522811826394567582994395844256376866729406000404927130169169859378170366106259589642691877319559202594348128638357766159170167998166683913699065475977796674671268464511362802518292353145805308190708056884579888969219128914817984799336587566615342095238193304004068913569083803491322311283342629389005018458755427919647896623502488287036981573932319647399011851871649230862993723522822569191915394023451219819130530185023075884258354920380953122790880191980659948739041090955625348715176948184279704874002495310051525268918464002529072465823982557127730938732458523207615606562290458763362862459309754429547439015824723400788839587700564422120525411768483758441886682684204323937557603476809178613807748621406499826950913197256074311385422512469925996583452776334852081471002689991127417529115403731032825933263433535101742279915351733140913170234331386464582383718482494465377450953075914578703432382907940116299282212649750072323884420290020131183624452587566332733018540489698140849263136611259534621078842733672821552952764442207516420138728156343639265085450148298440265752664814599699490128904692773950751047183980253662979887902687543027870307211477796296980374951925941583041839507931719376102623075645852082486099548329685593108260571151536257133730320077816261111971555095410637600359073142701078141234420184315811530224311516897635427258458210490568176793854465199524798872832410276228950247322053171353471147302776341710614139504768843570171972141784560947151283545784406433040477611604135376729026391397848705091943532343359459628618411794721983253408116810218747952934861043228682586135778552475053682248053571393167745478352541896811368170354948573024159866220770255012237269892157388356462369190333586682370149780723400617196080576807803869650821919622713710013390711730249868321733726659706820836022597521988664630785217748689832459486935412809299073386058043627834249286103359314694623151259233627306753448278968054020151861043890848179220102417008271353560628090567735422301135467272309378149447858351099071497414061891879161427804366236803568550234865085698104591291174971694112748246161083703351147993117913907339109015853482060038420574677393349375346823133505982660107704354774598780623187057892970898670684547187847605862306840890638471218179429254993138413237776726763840258253745971736598051357359564938850166662685616824570821002468277634257567124121489152851740157763075272487298585136930862753076062827591243865939972665224471404952620493381641672310311973589409178429253654479847425232912577377181990226746979208685563245061668889866959616612656820981343158260673025660995526373152059996755552675206614458552260852751105632749693852875598156301233660588649060151267906038066782934201031257502619959677331971895873058492058165954070697197022715950554955410937009662418251168918254121336800224329310420568794717778685971748654809465409416821952169266935479685569147983023883091635913860035680966405924248538685411304233451797452927553083716075751010499248278244813900976060477277020600056501739280677971994722924945531027024798094552705150619661479765535680725334753166863484430698657845869803740743679698480032432617248890201500776824964350533612970856756775744816704960945606433027289078465442535806162954941801920251633940928109813465335378137915827395234527993607566348820631416890212828438264705777420336594983018936834381593619293712895825802002680668148771755136414657558314006664174875932005678587841181790976783495833079372258197444751104242535656914270892665547746629051994919171612911842568504127380141829932770953583464880174852057990884286274444337834006031228797959190170285395628938240925036333355146986470356137845459697650076240439859329220502986684289728856688018362997348589350658831192101646377409190883474368269911074120222132669458609843938648615525206466813326789835591311636905945061742891494530654734977130146410708325873962271677668369557239518960940598434993808946895669159220037551460676052469335797380838936685850225339222729480934590157477112522050792822982485147687922957464080148177528695063215456466415114318568986849390861809206196903749122174296786906142371993143763787993816074954464690853060817020391697146730670648559595363729861824801015652084871927012501251868206592687917724269037471017467371196771085501402084317164980859409386808960723175945858228604064604254663917669798600538997698055343804027548916163344748031901322228372309105375015131043624481136643555216465686023017266507958333289423456035235868555763678116845905738761281786524726154178080550895245369819044700351894312095822192148013571776433230277128387366412841402327296944856590917764730281360068018060511111869536371877482335679392529746654763546049025414295648456077387435280067277262328172717003118094989871741004008503225627970020851947300129974760719935755698193556804693114821450216317576226418093590168221649298454045307512471075404690498502305753825147619797154623684488631314444078665356426817227701959100257783421315762726245339624044087688844204113190235854212109139078422464922665233564456727941406518228746109161129632879081474215467403576343239053147343233543995773976068204062098766219183582564504210378333171045172959236573846222506698984976555389089886143914484388170583470675768110109434625941909100085886460907566558595186731804623174466336903312195605016903059378120420009041048978583628100223783740712896322894491365810611290142498039221682094720639329225812684514810133415778940437806218263178368744528806581368856415762337729782716283366447125855821085144944474514544375355448872180928812813113970077076985951742354448018725042964138877647952601673309250282146382624038076108428200871471364426644966477546889534029409186978906484256434231882357467967612360653317220701864704378848729836671691903105740094130420585237639777007779519998211192127459783275586323374558436583142912692485890431297584249346123867127786902801393565514862489131806723711901689816192680578700165528762871365789526727737791476034643263024855656586642981566392812249430120078223115635013666313122768925543063276048540174824920736284835583275896027714026935464440377637393600008901334737513311516556484902367201341404726436479810488022780155432106083750480320833093431573296294985445116142948921174813493544532818792985445941093094388949773552360818094403697830214435636067127526790615316439926261319027410476670306962364871648580883239335214767178953965674800184639199133391214190969514783108700829132138412550215222500868420300716171924378547058586311625738231566354532405514662646654224592514465318213636792625230047222308592048940983752896763741353947312221934876202341691887562124338617072475391423939110789466318350963770853865184544818987982933958136096813501804336409368028067308190080886949354709683594615160840145792948650182114912843092868792055694145250784895032836391847448229860138404272070473855817257037895149751601954739535915197956393043892249706401053679285554406377247383664699042805610288551174388863899177152101557362635394755463494408702445260394021332123253754504951638286391338658364379784307510603380148642650766588185200052553788534013706013704538361498233537930720093882045549204151323076588657018926029135837171647595120902748024389978573080486357171161232817530378088416316205674059594182094499293628683617947891667283592589206468726808707754408647562801394549793764543108100012434919921931633958324370004527431993350184809447882698023209555923561700482801380441421179746941267531149163799185674038688247424804870344927524860654046310552984748135051042159984721390739662155630794814018023564196693615438763576732379230679285797165893874039172020137462295708608736778880143544815560000922257710648295134610485785590499077950505839718603482278120523449643880350062021967591536301251273138621894876724433283025151823243271842655214844186857947071644061200453055972345462483827542033217964015232668112936849311148443951624755584869805379782447581061990461193395516248923570201340104874570127064655383347341735099819257086186601673831448319355812077376965540800064686120920941091117546437220469756913213084975314580763528766505961708940644622148038574835065710968331532172293014263006560415550758362524283712000659291003627621853232544356187592528057447541339385685048816251384452792386272773192048920638068243602077873993504324678786208087346154902125096216059488346302259326800093559993494005633367352021168197986292754156375268938529474104410429015816435234544793221944897907066071365843671411642647290852683900487701473264013752395395395556658233072363573910558233583094095312255017456910794897492348822164793189777942850115946671569628498153209866594682436586425901229660740988430462155272367519645985732922703028756574189563436011302613874043810762444913731453340678859707425196981106730180674906833801228706244177452411105731939426599573770917869735978080376638148266401152947796824781754411090839283600484971484503507119344555899879506631974876358372617349408532020813276545330964275836982475236695341630294583578624662915791235759113235959049150924652203047812718239226996793131567387845186360061497318614054033934468616339252107133875315348441200425759086703091500673852227536114536075418558085136957368974629294145780177676429541970021106936596092695431773767307153375874877909394514029836433191699430326518327545705471533412114435322625952164332235201003246501639744805999781072951531029246268224433757743310393549718826783146250918504875291582194691319686826166987850964393291834378377865994921731401357593092170019810624459294627060279911999695202965673871818881887298716738498145439675228774215260720798323505782987507603628786796695300226285228706159119077598755892885406621455516607289233690061170044636514421153926889448233139509730690467379393938370340701846578433576109440942847089443572033007571319289828551881957328759776446628354416859712412648225065048000963831377523112504405420628342599766823291006224738792285361892271501167018392535316610498676606575757443151234314413382033226095623040449216539465080550718302325173103851971677745342522588300710056881819271830364933315487193566091897055124486636458833668689352192263459532363643695214396918670266192546317712550680840683300408532854648173536221255748192409101030877308347192315337525630189937065266118591204078951888223726436159652228474944890945737315619737609953261002286615881159097545935495729255823055795022105924984120703764103697701882822509712561291450959388896872012644488743720462192097714424565868049432944813978144931152924599070611550886732542587060073841021206998062031653383460363242399498021073231664243632532638845616955117273651872421998202278472982823344153971914291302166398152947861147609190106902824366515663299453308590350289601950348461122271761249475687803620807861763000723856304981611985235812343431431793809308487664517059482152777418984207050599519139688434227725135068472215473753996186106553303369395635067368094378159572665837499171927263867273557977807991991241375690115586451976322340258359470091010504135711058558027316819698837282744599385298127308941490497972324980122628837332355536865940843267440541314831075809429456250626667390603611889494666408450616939920340629192136120898398427229546344818080640666338260028195136406610493305318647363378496070950767944269617228894508365380000500043572652695508144095830910200010713061824015698491258504490405527155330242368224849408363572621960944331939105036566538272486525116132493099431192085825936983844243427482367305893704957556811697528579155395587513869266025691322973353425137027423092226965995744384800134979581540426938118240309883062450418742196549046966423684316674137752349654930226978390691137779905708277800270149794724077018965916194393245627878814281993331328673421051545232910659882115821491694898725236755796296091333669239544853511035864880836479261819344999446720098623456677910586708644670957157600509331670318793805219162394208683944238860965475659796041631610758466889275237168202127578526261957266145360756402519624173213097100652975077694970062227562559060189728621246054371569741906307500058361508529960896076440144745325614552100820132376607862282916736745633670637328653221607882232764821576103667355556245180419777924892729074999769902463284428816410333975834498670858825392577132931399793684209303748544954775929214555208934994674207356357599423554732833535291077713312887279985487412821928278047413670251581647874878621495514166882542977153372394774870138560025386781176342348555754241786259673616821086387463260750695019148114021570987307802144334621633939171018685360757821305962307778426066302099277245283138151111167626856715192102186432742764141870822078197847319182532939476241710465626535753170838532996165792986379517969453911046394393603047045373900481758922546083299184810463465699688311011721281078943751367538799405650557183164512031953762553895748030156045725995721263704521155252148157383388207750582543209940854709194369439169709235625748511700108015085491790618042451615138268344985378823727746045621629203827605270901302258276055874292400048608590442352814164345921948390164212229336495977669429213181423081013870634474927266151209025943398547140840500368474676882012315951476040072240728127717353089680699872212168058172908266460091198685902728188900019803497484357347949395447742485038890154298728681989077168626348628671985068105553674655483995172593305477226914657907642061479530915965176462058766829973328076971247099740859906571740320613431321211166685758987057686643142757155982550467222592784188823644167915362585909318693717530542304974357363906697393081083681228314925892299242099994482885105913848775415463668528941881755046391639608108911124914616183270813013880714599458909297764959621714512206982880555789152864672707723847651079101148092551930603788380065549408543662361340731539277280650766144104145144066580572958249664808394195172864302924665075284570543921831910231853148698732658572701198199652065518279885373110912813132471657362580982198589089323986416502124741256564451742749167583867289004161885833600782475808442376195467585103654938852893405795469448026775210714275569561102155543646832737412555781445506145126336618194232575879568080981406983871947418285379433695925603914436508414055614021602793514863137438201631442523693445368451228497167999947367403680933115768575671671428975275690836185531051882035974266881057903431629847630517542328052484709774501766182654085528673835469294416957423276349441677829168813711194922412133845057718373265206643053504061910715028254794906586961898083447671637285618835307704848738342365227038195482049926615903844998146942433711859052075347255770004375731762241267644890441448295139171968941932714689567522149812832706639868371010838032641167583951362121624989294976872983128891526489267367247124699886149576842945240074029664282348906874143625521432642242314397162593329175251948437151772405437565304721020573414153869536650252796993786610633461735436500095619794195693996472047195206428002100107661429777383669426773305268706847972674163561689533848122921370263559762631648235589213048279589504373609229247015655303524018828640318287086202299164488891693197020204756695292693814856114754309199809411016736689019708890781962780982155842708980153919444771111903670817504848928866214666975635751583880512536016786063260632272564589051978896867098865814431602737704640855813790990136056775133948271476669217098242070089583832460959924052470634307047271259398288591230332278271688392999719287356337605846762656118712603820797100299881606052892234094817995077363514850441105532075741141190454853921575193812209663972821135475541447333224759550923261462016589957808027513975281615281635275109161062763792475956146155613838770483439773062513387110352398070863548681449292805680126956865654304198237617479009431619204681899255819883108053074889784972616178838008031449734661174726461125487987061696408021949479861642064882561634957531815934192808398816056982550056177833796394078376563270716305363789465554610802806109216976818232152300202301396252794527562927921087498138276123516123697207975540803316755691474210138188919695077583513484151623187408914456628964049907058957640220810194935623599093113412131398931701441587115066627287808198691694740302677051076113893550918926471790938606642727905970287929696796142337092046646840755717292631209257104555641696418576250734640555210009237660327858010331062751703053588208524456139127045790352315484680208062183396362185914567657095343721203100123499827544213118754801482825536331544942724711593154860561667241594398470680875866016140144847310709054187089638443150138188017267580512791525221085544813552609786969095185892519855322313627285964181106637429755665497583644747753330210775389359707526206419664943155927330982044355332368910139376281575724130654540692169864710483003578813411652823466527211323524203855227520366335300812892427644086934955206650334577374192781326407054258452121201990714249290802088337531384121418512453822237918240204681636861595206421512673037482248541130817959190980179714504289993489932113862854169786812199705903543498835166159733599431543969225635163306298838377193171640623956876831872838790397873211740925378082396626880421204787511576523225663937472922623105212273585384334367911402258802413865674183842690285344928067820578306335823451520503840439184482031077252738511238686541567293436357369670139877883249575960914536113197459804022413172770566012549867643265089552395894344907157243847331540326782852612156759761476542882033660208481722178292549160733115669899504275935504961827167125285579805534834556288030079028064977420681877986722569531100199850752928286820283828448404865620272436705606796026992944506109697324825112026683037826376304007001163023637565764516588277363906885662083895846569448249726002131526886023738130492778171173781627538761405613553755120411627148343744529458137542658125686679775967654797583403465387656994400648854886689556630224509503327572361040295329112608700980035116301103188318697461805156124101116029163904905985726014581781109860226088490935097761332949931469852493366080970279351860055056710657652395400787868388817788116830152771183928918617186288878265156431793803775581576496458704645832453722764614443045929938550723333622934466702368504598556761613915877473625077449798414617596279243289739985124964295517989543317100124399765064105699406271555538126784213808450555575098858125269636188896242346930530384446044960213375918987069955998588473863214705383799793163578741146952144660815208385144636738831823360126388783150537333642102642321501694391166114770341217267209925584393342270975397711601167866567029327266916824000903528431102831363848206396038064018786893009349709125437629056018841341515882402270632754586882991526008513696930742830933945930963280881061905911417663417748472754628663241605243252729307915293165152717540868927842888081271257811319185734264688658997672623474797355808642286262245344707673458836246445032720581435937993600413038156451420355249002728442228233525921267921067649947544649093654650902673061266155680554152043783699967842103010802055787789701882696091985830560618122722017194777717608220589663280784012673030936528524821430974985410882248202146311176386457373330601129110410795147972541142846011463694143990300562305926257690001987583336918875593778315165431906241473042474074621969136678344511294667743612169744834681155499330024198504671965849679717840098072357719460705937207532390275319950658372102258503799420675978316869065471810736534201578011214732990497932414905197143265943024811476694866651411038997270419114733718756004304168669269035586014874993884113522893323695206701657639432016880016913672262876662904068898035782290341642144575700100957671736904763242414035820445486570547824450376864221340144217209488599625145149140435917685578431857127797039880968943983359396951165567072007893135154960311905011026714816331602221970510041509912934367392619576926558286793995865752976404399953866272736661384268510051415988086324086239358925688557924368594886499994564027135548480429408473542252127581337436657149042546850369245569829614159020198952799467837156198634880086117801714239341063291100185755528423530663214222339656655917922037316351152284515676433859066676433130522114120002244201994800687232051028902346930160840486371050344953220920159455749427337228349516849828991618858504887312486242379344771294375298813499771182936728727941446606110051164734905367838156206288293226634485027621977390375953095034118228016412454439434133503386081470564142113068533276574822150103550722955808701449940152125587102094538267470869187136118566417988335495744981117700543100952119335003966126531038677434309100857758250882839598773912341675661633620245785302388728414331242669060375234211273563288189239359629326968399284803049168009322475344389407544523109643782485076753210499753679025350859581358906422909643598585645800262115685930116558995799145538387108299126533202189447091689188095764188661645190185106153379079960534957650463285202966084258706458826169859602827839100775285157516394347833914206884523999437864561105326117611748002620632713694033604440954869380544906903886430977511778003876031176454517841058584055520788605747818162169509072176594573053252061999774728280065520144090143119487612968641003713513390071044908419460399404406015306382634277361697691629963577606581878394144051661838024208650145306457947339223913362990923479012073754110557749046100683733449090870802162324047850716706533630398049949753492073575345838070299157323284495941916911801497301451143330435090408546764921619796787785486860367322640894346561748992725254849218601157501557025574474573761559799620883550723477552288586260167783692562662624710604184509226416312270491494097559287108250328230290457960289443450437945452608581807987344357635706276879145014468076603798833675609656449035408733448157744663740772070484177883465772205587769166943230719635873190960653593328144421761376235819536954038785479893242112999599931240598585169008002191317454255146697132495895654788029847897383062133586813267693134725415825597200848845190929306097024333370960046554456617333492131452004670251034660526228590717945346742861521398086984964660507741469832896455231102588631415048167599127355984540193012196700173002065858890874177267157514193675958319812181857868170296751193329592983815606442027873585660118712280992122326784747522597918582782586008571457143567986498024215355954123416154110987196770366153205516007654219376990789671168735362981080413423960514001837303767631577926050229885900448758924070575107849181493289149071222291545881272799432317853228955234117795273206716703477648961505539801661622965257973657135371289596392734927095190116514481471664045634953538089741932238859950479807028385108943338979632417195973194184214506925564223989761940787069840062904724352529711655212622757138321228248274207590368227081494843513487249763073841301253248212608010531388159770378878152793803266207680838036153142157109886676232105225162023019204697897374945644977966893697947747171355221556783762704589113817868058475099286014065630680423578192597881542093293282793318188377244034829936823587503270973187525176273113183759408163225704542589567355287106985939899584092227683304908597746757915081150138400713878247455315088990405846201826920511569788530323271152722431939600534407972513562679446197653833226731408898065461815119005178825742156324716164600851611752926232298356674553408556153066777029699906601982391534155075957720906376166381714534776358378119621098258952997386559429033091221796563774052167348773453071150318543802035052960127496741067019900670316557715804599756336974922786123719066803800738184356707225762463862576966958958050173955833003003956051390070680658442440554440291794005650226994201407670967420395065936918186400184150470338119860703482059102386848019953984129353309099149907953892310151965593624370274383127402622009134921515921409228622811296983278301899529407549631063240378031061647198420238656656054717001627790660136271110545234118896026926846107988883199290624122035922999920502024744424255999225582652157564159265498905230434524182411749938151045845946449333632061739749845224384871331935744675057532522494244596919165410363785237046371402301712928120730615461239695466600733473351187890391461773087287711967574973813499685218862771137783826968139949964432343741483993391173003434805167045692437665209017439688537949917977254126802813103532790236604071692612504928363174454742774317231909387354012957193095252799811054455128658152026304295955935955633323637608061281390101043668343660865222808652240036377248341561787329260735692342514981052014593591424793092779906366690487391290268359511104436246422650132906766307408469595979347366917512285227056559663664105255254838836912055349160263388541759464036883629393374162435832900175298316018762457234068744880450934988562554857053848308913486930509374773284168855943197374208173049880276466312101468027170629268959840887243948301226671664801602302502642521062141038523427422667769069234996466981957572381438043824274723097619769910683278194144170882842880606524354779433552910354279862767415483598537620507535839788400589848686181979993478381173154638426025435019095173439819011584332742057903737669262972577837282697842195536962245094182433919510896476030406214585783006616832362746329730353165175391400721272375562129019827056736457035368341235337670036047731234628979837936456831424286574850578661202100620338217267871814201085113116992117322377806511872993972451988252109848114428630015658365633071786747339512832338233141548793512557314634287542496607696111600438482832695713466140148233476803654105252816284520913780212758845878835912464473412056628320321274748583552332161534815134608639195051009612924667086321810385826636359593030517047676311832074717199392323608706159426926107296098298811970113408370316369710612003652451305978789414451820921387068035903407355794344830835216613204270918348452998414687714745602940515437104611962759253392374733630197726823686068933073519560109944974965482466816972762401228430308190638157086340695654403319448685829286034673581274676935539865733459630588925646380356243938239675783637205943228982019148435800088629845550939330544817951127901234337992859715013627070202725467008081055081730009202436337633882471013201599687141688797256558185956520636627331814370077376437356148226500458312955123356884384467817719371751373648853282318169697116766183548223979587333185222393550871898237352587695056250587393174762141991086001342584408269366445238893319557384213206116018800866326283274452208104805355593441441536354557258953090349579276067322035993048789608138020488687906686550762533451165550442416242914893695522077407412628155065297431155195950698369701368947324822426287296513095376200358845262012092221344482035905287337018539771916630010855839301843119315642300308783547655254115980097442188136757143292598035483849033630445172441047200450130760471872699491184386441633642574479755536184112350265210932421739865620587773016493657662343747971293589523455037438305373548815841161749354107645117869926801490736800372114936586025146648935468086065147256880322067521574991331615151612441256141891346320733338528984324856881039130456804969434147337005562535540358818201767748196225238297997205257825313437193334397916924453072764119787696530505199862432903185502056623754769697381950310433460392458479216879800449856583063545376111469370377744375527422410102704724901590287297074885316654250381879714022573991231738316476104842791715541851196145270049183877505243946722636866655934094862352485779126945942923572449818428523629016509471624547495095475236235223649454800667778641516713578150564307759802508226607451216540670873021712445037786131024363571589805298928024355841331466998172435030299419236228919786472746579681585068790408107129463202321600107576511206479431385177215065538181351859920096079293036414666448646141448911317214877144861639178638968241496180089284805029548290442739533895240564369844324773508302074948686104511489220068169450284477008854707634952976346790958898078284819607602775896506272733335584879972780157641929204135712049410296180228571193703802654366265573144858375596334320320609532043231553538251262517604338667049950390738304151104743946311650756493706200173730199700423436476100216929233971980020104447528729460883104235484440224793954731447071904873307753760817996589110738276740821105668178996161398106116096673127903663176415109419096625554788812394947041265526309438002433083608070485214005187872199542394679806408892106865653533303248023285230188951728516447366802561555236645766168282499232175954292333885452020499302692079887321217649458031376332482355861837808290349459799921176804612936374668826730429921612013997674251036855316793883734701803920999160165855741937569581420012137958336520168517314807986363121229085202910448806107295192850231861239633201475080443433863917716090499295803541918652277132947098172218522200332844788288147593996812379768835588073124103383684759311624192054187508957937918442243177349281009466447128665460171109412060271027475566553739720129609436048466981064739816177584377054125958625819177148226921768150894325248701373359838880838817493978521813606559858789643608261927127136872899960283486774405588442541073424800591322182456972681719733434936392085167410511193882341613679409685181519373482231633706381393595118546467481703869395870049327586901354537388315297062628042855775757885294840361851925763616700452511791849512069013004292490876612889006987682302666003218726996592473073962579825966952229408421459101887195664487975711416757376414086437586743105051558889497342039104857162471105308843398115046942370761324264441031109752058810142560048004768018122743238043038745546451580654675492925516680360292489370022080913552347745742369025556524472413559242154136807860222640585965936255116726120256259237423717425347541482764761146842773443380189665223202081372371779824284515807133695137724538172838771446922171673493192250281362917354587222525161661164880175642884361758680824762719513316592064080483247624738994279337119540781817232129722251852185765465681202030680758213226505352039691616449161653113415727501913901380388370669905014231198847963109167379038269178963319223773625890524625310601602543387895783056244881205542611450567894953564332461133677819502747285592945783017606340496339335412268216777070997109992603076072418769849757401236539608324919715400743417860765179972869692015551411629618067920805549885573108727147513997732911046554941679136808158852713390767834639526848725707578191771281963586020745250054524174230723652318449661389518157852302966025267140803276780451273565555284923273554105818822888969798227222290793642501272720481799666287135747899945371455354959493439569334053442444746304146273312104419307694393550943815214717864179470549165263001208887660854803885407634772126624191697141339885599155021665642427412337306707178546707905355426365654896961978251105535945353495506471746760523986693957811333377505150423143299294727801302270142902065083561464133883903255761103608144518361252956105999890675978908986683070080824762689095322883710442843976054195992168776511355853190205340355976894183610169983632858888555842299954511347596948923239376047895697288824514028334157144870221184964005089786242910977583218737343634673477908151362305267457766736643633533246854839466844788860330453129653489346348008363867146991338028457380516369399564407371193667793092699135278009257689940217529184784337452857883561389677328049517905816109604541957928514993423870840970244552164681843061600046037720725494477879461032527809924402109567666358595633607262665533893764026517896793858115682545397267138206355233264191617779597078730772992760599282230516185474136480287544020737432695144770235673059463854909456446007131734958861179379337212206256545907606726439054067029113797395053960770042658742735983952670169794467090021501887424886673635434779804790300280499887627953594468576181886663534703986904898373488602431213834202133943264499276481581256298833626621469516048131204715410901031402020329501313402968162732215313714237214402848594740313012430752133277087836832838990108632900847591740170933603975878661187371475905347126481826109466903287412741804518615111612331957757203672479540038425413645208104678034617949689942352125594970056242026595115802626169204100247311071336834547048291337190545365683632036568380086938931496129376158823692128834014910504405338580314920588769291079103627781848048168301179862520830053530303472211543475516808661892086540983166243853718609397431849157157605408922232909638634713500932360790496360097110123651090080203167297554566557890090327944365262369613365849285411966668681399180343319819951714252943992977708933292987538202256859873718831189207567005798559942439477541463152260605606061366157662506031153643737634948403916296959454491588167746792156014173676944523228764453231623042959183614500148709469919425035123971099914539898118742637753156437742390874604668919372661077942362661656832965791924962263179580308215753948981112421236488728272441992772850187041052938277355855232837694240188007539395994831816309747835831793267493553054343149096327534817271606635542727293484133101745464790441540169661940303239597915145966284289758251168617461489508870125744550002564380082968481905390696476004475838074932832061504722432314429887779995541448888895176458557891510173956793319786634594639580171709865421096541376752156169388283027482442924886870849860286757017703733502084577549306372127889554460544359264884553353484467719495755670836869330881561495141252469079110399447899799035185321194706723681074256045604792021223382478177239638334591451774286368108514502448789103854944252651494685232302350205901164075486735650688163751819440537053814251649889703652556181859196399355607434194615682605144680643689536351734051913944839843925058956691559376302326295100189460908009753263752322990346880694820961698603800951716703620289679080160222199746212827309877707011469082797008806390427335483499690687575351509147476423121259468257482671983367636081376301484389103834167347339975131919921034892322635597798209752338212362477621402477109311165835503366991768344869055018402713707751132536751568186504989280000308562591946843766694140861612941280219337182513500162501870363920252825727854370612720827644088615143622061754229342677895277505700113625819168223734819719855068382557053598249631180357389294035928650839970667848084171955048289944714191391459498956067965760647917152694544960838686576718650667867989746491414590488400519686364279379870536167251004668118276358176295703903693276256131756868403086037392012320381691396236747060273314839259519489099937511661516066281096367625845054806929290612632002670932107340257869098529647294575572725123512666252931519578878031884409345952348123252709240026374904839343003720727444261423746876635822816059966305908182705555357215176480555215548914865197932460609454347872976115161292658211143359832737191344363141628056249891982168740834427331640802767892659731228621226430136715232044805726508050602510016078362609459731062154530957225014119260988439878400749599919876928355961275132689814833539450618198315728404016571127873705260422778182523665960631661250704091598703489716689824591214336474609034303646004333742821260514114316604158732284009345258658116810547044301277888714979246328036700438933565542634637025788095630358558282548214610188654755064139115849933531055458355005174880497768732943050742308980225121596075322856886501231562126622567601706563853010333940173361241357296869173544663632603279543366308123226093706269808457144282434933027792255709744105328147151849118387996877565246816199442327603861760943295196985088691970512111117424400765586486497927600358213288230023113832156421238394210785602899768947941914172071121036429594977281002001965754520882593401363570201510787080041973250590771638669130607710240426779625889134615493870686143694819562769314748948586055703601233577248445158460387407175585821948022553221479687711624399925013131635558443744390115098665717804691404444771435054050386319391187316329072737849253923595311417930795720143110462673257108926352500492341500981505150418841577257964276173382621738278879516267999146874405149143661395032388191752368433726298513761503698513214119387934703773311705622153312666537561272397700475124374556862597134968016158490106445714363871510250415336628812669054615742422657612624819133665921353499071425380676183555811191530849734431136993492117725705448463083369003796676149778334190273712187399028625756021321848965160374901767244692370305178404445007277514180523848544521202662514161216495843725095728637260710295586421253774076743853561143884329327790535000279789210015097933222695014716381551480930974898529710321185925399593230150398840252363447427972731153490757968265059472482531388454891322574187262730474750696697325327417060189154536734467537630614855882641569576674905952045738599045672559461011653490106236741481199168270693694741450521256735659105541601166415531050902481974005182304695117766050193636292423516448185893237113105348464683895494417710432631247162177151220616614762370772875868352109656828203168778778175421013481772236127394828116327837205034358129638464177559763229572201036034419034831326678446888992512000612654425637100049064388965882858348394616238625950379107141631986896181066252340956866992042413193186245570168032099187229211074303411640317791815838373635270628306018236524565894812057227799067902838234593141373281743220338128242244920153378185102551913810571349103947455642292480757448882357753006694345872826587748045441589855921315891163452495331676018076306961188455896625880793241890740015895217735448817100897804911643896960799725707223592187076246119839840106806517919696884655022168189810782889782855598706793238668180298485585758288514959303255819862420958108958889634347457277384414085381775663865648665345171505954819904617740701778898428265359217037527555438580868346039173774960100715384760399129730154597760850677558755229186795759755561153594142135672474830752649902459084498733139944948464610891416430737083619049436490439358473374556980674138658468636702558004024879267863941106774039813750716778504605111518967510186557661268574810326758613810686468875208261393313456520475407889376535856592855702558308440015056072903920089840891934545020516508912320829663880423402029008474220455929837389264536638023575673692459682176362721799364660939273121723131951383485014230759253647049167308974665382012249487875524114204773104853381778241462424147194081241319511760115539767210079073354370545458152919368490650236941198164997638358595112221478018859237780696977469332094014804656495065985916414390750533526265500220701282812546315016315149176377994879648784390439031065386066579540406986158396004508621647760164264527328090960749691999621980932052949604573749658123946064631489671309643658119813578944208608777353271735903273950321950797752741001219009027638088219215434054018022697408869879608556807637666385043571133093352615766517316163276730694528017375359647089789340747402192330440919666460388186264773143798116544938742762374843080736235199280215789709973563556235241348568081286810134173518799883248175072352887868972420869367626025509858135402783202890260311244186414097591874550748155975221911652201241867740229704883839315845737680537606102020660907838006238550521629705307515949625521359431667153739482356879859662633739360610144658322099101409434957381927458141893482134877150461581981634871056066893285644645938118374908649719763131040958951174530310935378565289702870668191166351055076608544367623313525021843936059502628135457980602645584584958251449076110463567306646526183327914274484105733393740977670202413489027920765073200304687303343185050825302332409076567840753171076669964719538065285843379846154844634920665980531648617157236761185956146380119111337787766296840873950386751870444898133983046161872054082469721341723532691553120500837069812657169697811379730563160564923386005559472080207433778249688521881341825420189388294996200155758359706085030832418058118470111017988203500824626352638138072627568376161900015844985907975086782471628629600517674722108911123587282045036123593451390226152934441056220525603887841059500121022556194353853656282163708197822689318892239649584142834634199377516610747428459546521288430982297222632914811811779924114019599210730231659345967863663982981938281768456835255057304804036006592382115694430007100552379778642506953836598584196867271463516278405847619077676455914473649185848025114930287962763970882746732715568151097281195831771607079757245329553842533626811594243150634045353012951358775885134196343028111348274167399114112990797759208954325983373031360012007379717254405437445495457476336553582240237901632403492568229225385488396374414247789554268492869685881861704580563153928234972283811881369222049231235363995715189195844200956711177103818188001039775136286352295624066907297239640789962346580351692728739220687122151363220936596288523075291381093514549830340460598428964883960243945774288896630012435893750476693009893502054640745437910245096674935648119923607187904338901464502434457452750828406585950391140798398225582386223747871773926738433660741958047612669973192113498066824594019468464793251476876945792650057852054565584292716196498520404636616621590427864328680040597920821471775191206340370832085402399420115601673211476324754855842006196212850876115692206507012270405108953517637159913599582151418087358024381110593158724660994987245946610359559360642862357358930664666452817615792012605160777210300677139585420339827681326795225927515495736749692719454176215191580121015036448209641017659530081467806459664931088294343994306893618267276335907711504770337617540790778764165069281790570339733068201553805954410353064661912709898879809172778085380739018073661347677301585612419701546274700937437482773179663322646999579486638455119682695378018730586447138743831184387938246890910008218166730724958650018090876917291647278084775965191473859612748415749425651314202943463723778509733974819076212301827851550234192445592550894076769773904448438256758819372282087433277622396608793117602772888749111581646431561349143679808829371543710464371018096302310379255175187526233751102861109787768651774554918196818499645759551228314870816230785124868887514680789313960308131334040433643355315556272448295662528716194002533936919368946539044489499993460812474998649330221813379577237166415950676301547168564521586993839377147191695320605903474657785903428547783826563939410736937566224939697586922781855805035106307673213720271438860082381800395251025723462104159207295978304755353015208862695355624251212188428596501525915021261414086547733141628008451492184105418573776439986042304168425788785496673586445625702532139589185565626269810770353278221729393234117948212152317755885242646866582510790963686734446477881465751752183481553748918612530452826321452644529988016861575276212621145170514557466544262837078654712183181112496543305430562579465945374669897888509723320899931784465938478992917875366505838390404177716509824454651870891162936163800384917416855338846090623918898178055600381780621096225403199691230365855313663660347969253696790779762107822617544105796416479979471068403067227441977115664395583841986014730403572676759654573981238268044163087760119182940896397684396158696386860334013489752489694817209745504447948180419885286630273501858148277172610434262359267414852259565524630938462574122059659117138442361436609212849114731427242113235782356473712440152570008106721527695859326468370121161254329197614991336247586475225997879232520795719029668603051030397430634894224674254612559408208319136099083612480328630321918335499586177551477830659100994113856923763231522894556431963572826854610308441928653978152242058097078651603347820273737550065101401123971933793752027686933347896927265612421594529650440756555446248505553829199157952796431275538636086983630809417541826926877217094356625311655358055364415010850511680714527181661969229211579092540693919482636653576314964065050132301072973462130724389169778709719342647004127896357123614957402445297298722271524726440194580438743227304139473696722560686692204594738574403134283138607388791458095905658576994172204966153368749195967335646954024733633681598379712507177703616032600425297775383033797306041112111452910751121296089738125576045127663705944688055315251828438575336366240923578299986012529421523067850872010478807224280088947264525914743759788831996443183195950694704020093646551455135119805724896342816548594653010134843812460417688884560948179872538250892265485728652330812793602614358227555182432155043381843817857739965485411259253931662189777138582933928365272790514238683543497894778540849625400643131815346916298471760571090423444120023134669545197052717326591927048553054483081299321546488848307837341065022777577987261322136458576593083447300820070693187903735483382256027887096959777778945684817160720371159954013706052024316122322548962338670885604292691877081794340358708396726826914229877703700032493883897881048921205999853664926224703682686410942083049289042375032369698977506037052247726692282720320785755264638920071742377103026581402336741129240449219369134601177992738273763918520752603325532995643061712828639356413453160451767629308611142985692115183519914881796398832353640951427276747588792947118588102592317267103931818797285826113752171271471222225261992783460752039180318455523181766768872255009841343801214892458354414535293375079024996081904040464853670288218388752531072241981554718047511433684949182325492697524024915399323438926753779098204356179503914412360801501136898818776942154601082126384648629743349785835636942162650748990498517981513911795349795413287205278091614518803872910854943097269283826667210125374823548984948671231789295322833982886133184441482722261947728018781680845131404084856401277050108321778170199155985097504446645930081435184469235409629740377810620808394326339704501981316508919550232019052483946558905303643247457689998489897454571075455014981465114667390648882168093832241965466241239812660861080932056974393275456056259131480839755723622465734976228961196915380844221001021351577797240290053980414115359174724541161167984105328512325230528189382548561267982710163548155232471725719965943735058261726348668838922020054566707055486431711425145977461346915887982661206394898729169736022152691408277805140537878182444449598120557087909820676738033394159587295513817335082679673599246329534592571375643877439643749947626628630769740533431291707635829428959160800873681607942269332672824495198208833126581687427741626538291753180458408159648585746632446533562435567882949682305524890406628598927937647188385552928833791465998759885885454801173106669442689524697640065855528927366088499844303205600660950701576868769335527420292455784367109140940013593239190145950291370319500682938413271288410896971418799570598231014735246409728403035825427337337284571717002473195825546716088202643157651456688443680346937843040138916831449581600936452978312044183406780108259431513080016257495694950750592640036107619730353260521371535459981045983942087175546180797834904340104869713269579169774316735972235878904397377397741518226941689442037536973407738546830849979949794171686399652423831021560185013639016410655956578248812604238580472012479969575655896545640958127515181697077070094972703136727936079600654361383793172684086534500358336327483608957649884311511358506717905111433918782672367791518507515884034967473460578110127179426038100216561136324755079875019221736979862607008738313720177356561594327946519030089981840847821582641773540245782079779448435482479705431826026560895482277386053405713698446950603516401915241586593760357422511887373536676779782282092097900029465950634345455932567772793545214288870265246228423188394927906697182420746352022893640222162947813853395629367334784205989649667160702958053531870471908582773703280551278642575561421699154507630862674718949024729729392700161377516054716982722656890852426545492142392970681792649095386399730668452960058603982868832285019252653512969887624223257808290095415454636837149814528671833823390359087799195593144297366831037700453646996089278891324105038114789567204496286806995006330756571478691821082136939421355750213099423175827320767864046627285420119824974610077133068336291720616785697861678765108195986422064935593246277605265119844451617161307195988858737649939055811652126117676135048720983324048855773360250679283851141448489608791930263235140804388326584827338457679284199990808901822737397537834421091890294556862356815939809684351754458067838656198450737922548584033622250547547918345538811615405794903875197551471135135964254772817069517556483650053096324927725034590175436569209077288122319412422011431183735286159237100863860148624325047599970272016502415682188199269023866919217375957308313459625215790254524401372466250631844465962393025490992608012693695670651464609684689963211415789025940604657297359824145867385665069122016300709957427979989497171903837089154165622881215445798790855714492114928623075613470459899259313249772868316251002188658425080109659871874873088614306754956794933603783444366439892670393674343375332674530486856323455930397426663244576622792597402505304881502783798669596143525512202608205529749409904899945942761612471415662512129079398253771970017231275156162823359666313437778473252876838236505669148508873197283244098149463092344124893941617500119757170430657416280404401151979180008218839531257825747459067644960018146997258696527188248354505819946690343869606567718903139235574882559245661116897945292210850825762687047019721154116453175588541965324396588035286997160571495073252134935965762663364601403405378662220409536558054850926586745137954782812275499185244679757117836143821624973192146821324346865164208944598802690257809641006146586573651085750580162500410519663160978179915510440851166240753358837951824023303147831091783942355026081418969474796975203599527627796033552933811150690208044978679262644145471954686285369972483157397385734315900734934623934055265852846968830286459031186408080338322469086806724381334187360849422828199657979696951945931353678681904759965435286016155900662419251854566167154783459790973288231836014778090254016893077857113082020645109141552984918381449707150883748076855513056192765030357017320465939031182984716241601266615286399505964863904269430982558616362275278893847311083650682598701552336527267724835094692196028831521926881331700686919491497736840819806792099245115315039916583437404831412721362675684476007977940571739809260949983674637431971306360545471581505547235540041412697007676606736293012548689585812864439877713485412655307764006648474966698456079165077775128580652335328883473793771539833887267072394625889943078480084158956490547856200255126268985900694304972048425997594136133480010228290170615585414916535968140176754838594868197853794774657261861946904454874226462277543892996293513980608456774898841642120799488200076744062114692389379808402033555145465355025907687227971272318622597790134011795095712196529651352082913586544584209845342208889088428231744900015561995441520469340692413580506765887851770659329855375136859951530763533020042121716724074543906006183123981121328366055577552833583877481889670512901756480911469300527942554258016228316298314930966479677995433535962415366079663242062712386614744457511864955911364608934921504889705664352539992135295177799899653510087705898951641084652041052518974986852020507280286813209067317848407195734949646697077019226736377773942215502532770927833871352092333717647700296134413609222505829312726871978473073023414689832393082271974116155898795423620344856667174397066258079500514342422353917668207417296849348057531420344966134682067546158182935723112977147970506645959232343272834489616129065599063842690416606959022934527292251748885682120433917521393370956773653703311697007527022151833881463864172554484719744415196902592168583620205118999667010911047875449182326645561578878270348882299038193128637913097728213650711171561219507279215880924281766095736528735231287001301289787386243267302487259024786423591851430533343009511589679532363083232952690752671065355568498830817975837561413463346839230900547432757596863180904629834099294500291150652391977963980038419344254389077117475064702405512210269996005730086991150728491267112542728821562803044787442158466831428180180733560201168230964364668013121576872372754991202075575779496665297909772831224390683147962124358054294564746748551362765802972053955406123625510085670481299721484137473827738440053266868955657584783907072089093404527155062017268468010666429354277333117324677609173232539423280216268396284425076119475383178360747878361063291434869977482793857774275033648301123332333256139434774133604853492809199421669696794675620012575659334003568358622407272027730132179698597432674416881430179296046990399623474560392375098410934796943196350015792629839378716384225342635699308865895028100068294411754990425845711469189989866623009491236016931145777996302367387301951169628916131580448313131268516037109172791983580485419951930046038933822304537519026708580604221117263671137459625953700984729425308590663978137744322924404867405026045504136867401883714434500543401961674853201882687200241160722956457640049235741076590227944313074361526041627534432223250111823339846186412512919266786700100314092726784983266143940247489218589316396541365720633406789908641858483962064977752788095859446242939381033201707903073037842335137214053298845701383690443095327704745407347356644315199135325039569269828954391726365531137012113737632541435378758052534697892546845608126658725506974883703593780255979211601663341924711757401432051853222702084608337028427334860731574387165025741067510983050904410250805079064893677101198151994040981392804055932575961997315253371038483649701939535635316239499433359484976031801963797822276571409057902881009545538891319095824724948639809494408233951112515485307727314132971998677589291235143835695669054328289885529112075088384112895951622823426234370619144281427882283313631514014090929046470236524297448220045955284598560498393687745421740459414944753096044691226288980625001138495642865127097160101588124000876240134649829070747865224555960920422555096715610100442062489084883484675761222790214303544848912514581996333261891098798867358050506919248625294422179420696638455131336103172630452763267886282093795025893408694368558257855633684284664332844901423904003881367296276833085690658453524185013972528997579972621711832271317570048464674467844091645375101369724927913575359858071282318719839567077309744569381279350223169092885728335908579028305613246829931180700507011195429138703283218402526672185000667593876031743026806429897576074573876207136505631183074841426853927457425046491468271726088023687973270963786322794650420916592017506660970113119250639990564760840495729268927830445540728416368237818174847243889599765220815703955924291681380656231500151422093308910017297232251487627972695896196819233859629182185241157241434517994934738854508189268200117005031452853664173645451398846642886209253905081545565755947659874379626714033854088673070314503399603650743261109482535923170205987611254490337919418013912582120622087487773542331204064727292069994699507917049316249746982223086402331748598838817099634463554869162353412226214296834148466108583235533566768398878709158572719450580532211424911103345731330366157064554586572898151996649465619746907432254860806743998533060020461391175729354397725298104523556382068648665304049212192134959187580810038770320170720234245768433331643354011147177197791309835127784332146406219949074968070327670923057010592381439694167453097024728161497218068032047394647650158990366097350693695629830681736628667014193014219236645540284620761986811028825152368166302974070656079270652950615596027533036863007220048645814646930973447374734845619634085940637413830053996330367109740283344640647333283885592207224766142723972540296334230767300492778173686781725767337203147274050783914722168943273322838650451510049925837630371927534260633103693658094500208615328951665016731139815234668589136852695228031750856085878052324231975802735479641341830823025451586973595262452077632297626284844108681234087906467000403825760619465690152133678927877016716165037370003020347362437013743106078703049873554313103514698638355798527705879282250056292064672012130916646409219615285333252527680388582986290101701184618810070043895418291790775973031366503969006243374888039263647127591143538574368568742101401790360203514138004429537301192816525180240841763062123546936129848449511525868755094806860895504944773366333054552770403349109589432843009928612227171036540604483459036197807318382347809690958810010545957518585203520782284049242658128940133396473913825306566854403226427881166006717034879101014642757828106239782708006877684186216004513620363062171377164426235891149739020421046180414375097897473626036386194685693889762993307360983491243650327402350947678251339834476543622776521848947356217724507449764680221828047897843022762101463830709530020862009863484033054407996244371399155070332095575044133887196473213872274104577687308555294716791616524880301909108855738844383954997327533264786189092723890716350492685441373804707472772597581809047324173009845144012660096122977037247513631344178217741200850515126015393098272921719878837930980005489016582650668754406009936693199501350918602075061315099571915075833827908260296636442743331892563771722245233118456365341813106863242104077528690379236669713209826017034585924178914626021669352815807952257549778049244918215643214050871009997524642609099869394671960040864204997981439213125412819202492829302343624140457554727874141801782895807935828680350268235388213253126504120753626965321678343947059318649629338122607168597934436152738148413612797817817055424004761112921557629524820307659903608115051210341577772552384675633059238217766491476853557522392266591375032524723682761964255923361880535893448170976736369233823227585197618926252910674205629592874735060952666023764376825673845690566819477312373375801457090622740863678806893179570308456176257358085285377981301635198499271868637268252445283229650644931269609566319806607473273288340722338092871229033073584517074407202490695372760647550667958382383525504759902875775236197708305464944268283095076622551058660981964803754888541387002224608012204883475888843901660825853742327566943453833269885897250648928258504573694224955431297965627320790499842027034126226860446289543932794941960645683279079131008070990556573183696134142392386540952478331765595630774929102025179409149264448055317847388604377582370530951916256818042008290514488855050824625851487569207512825572729213572050539652358550037517109831529764712678298184451167415616449300935771819673609888195034955627773169566671424530721208076644775782437041399269883255998688914683921924724528239205247828817107501847108283959883680319085569953753941680878004118200036042412890377100587910590658396136306955328632150419528578356682815496181465273816755254834540108564658957115448285298347825893051687995435206687285886362127984236760088149952669637110449782824320770839402299036205729378682694695931727384247732388774930148234698016340227541004577263042174689097453868463600964168353755496162714127598111010916401501066198202975640927614417002299529927866426726272770781895831506488133975027844602126611502232738307834762913789928998069524548952299446632819088197748395222151882394872951935609557513328769431706199037188644538557622059688519741785035622963867476813135448198515105562101276784573238806405001860706016543035088078449797185882282821557381821821140236857186007354199920185227432488214446328552410167731759929090769466300265712920674226102276655175931293480017158249327970323606649002789401882518862736978567750798653845049329764110534114609415209516115076073749897822624294431242664944681481382639669732188960390357595741002420909064355370505972163490945518502300248191808569080138189551504411662514826390494015605167966412322619604444684989531575312867493166711020896623171986161108074964961703842141587561953987535139365088594375100841368978500351667609876375897783679608499894720358968243702121026818985034922399297971022368097480698196529686454258576809334606251284109749778776923355976559462614126339527569367083752914048990497201052876805724132890504599969222615936950507123871785074360115597544936612299542212572598334790390684674528694993681363713004896694777477060443846206505208741408908075385807554477976852833032852591717074499815731956859738280190487565018057113316007493400086203086374232431351704957268843020700888366336890858091302664741780161477994489868132753477260975926300047520793395268855606965463829446530644751379871917015693937895432586917654419376401763266857154743812699841507696229539539812443248260496183547680553716829731346050052969061288587766762272626859143032689744961803659926379132727699936250758455439596096849376600841431900110699439106265495732672970817154839806876287080283870718365421031382365713815081293908428680664437523976370587483067150215254595176591917528276535104134340700042575476301827577888867977200087745486722147981164585628660371398022549868297973515494456666432435379968224687941196409529895781763211336959406821241803981484334637714628661535033399164618259451179243070098465000622782997394791018139218766659786189148043201117630909363712629665860994351299840619623256641217599594640657094684377467713839789081121401415985230216407953907884221809457700910551733419845699467352774775175603884997887556715065348649866918707157066426093500176678384945985892611462752438007977684402207735470637157819725070257206869445269230666901780395872448592394870935201677253025037705843015981149944636657876257129444977164930543003096427327528120929707786414450109467760409193382508075725002511365126899023097099336340538318143541081442013848242596554408130820971767137362997371875561271878931118462627502674760251169751805449508680121762730884947266965464907106316658514323194223357445071917283279844553198697319265622245216945242806380037215913064572758047904022494809319039251559520803676997902082636657238513043412444407322166504770581637428670295212784889005966886023032364996261334276831789934208172079919321500749560290572367086883779029617192738895965677312091729685941464103541000366651539617519094698789247469839230335334834286576697368476024651208187990608822182683303185790267709260632435224201553195458049737582974134206038191107072838394058921911965508612110444598922950513632161623782907207228414368707681331147062698706500193043468093187888003686383265712040347570415653046681391981951955194639245430817748219672925894369998259206341981172894351475685635885220066879556318566201135594474520080111031380591501437037382789988642064864005192873405335716742745256876032406759992131213882935464374676830210058033130376961370730914576948009424360624028718347932209367033994330620946773558033117986804038291045957159980041232430316314965325897986824507941545315591474465319806383002978285334624129197601290455417123617035512490094535426064124973530661336821956418581629199089948116030964891188864967469107292013253198142281379649978136178725377151905701252579835670312064692167398920916058977694139043791473216296525121882528451614247568951135892200846683477811185733342987424202500199931743271606272015777827058260782007766100924905048990538603960734019686468889450649209364671543350064494136812524354775910909389874007934920709652987143635753506024631549967819034920056683410360040725155337023069874366944102951994663931965084595041946364338188640749575658350439058309738982143996955129804831944540745199507556694588813431563021197336537471051606222085434366228802743733675212498474709671039097888256407572420842135256959808503667627774525293078824813210491055017622417612078023080513257260126775336034198574707429343158540979907081052577050684138215718813738032123932369632027862866154703850522435142170827794243924990130106069750173995900840600596262624192897497481769743171644434086905491446611089727088379130030785189834574380116208834827479550639079033970905078947169496820026774995297322418142890294183426715075046960632147648724423716065947764196273644558751446264589433653891202103773848303436017486186482214068423777204170698252895564356042586067270276978623965371637804817088070516862710078304319505263417909516937626059315418963017462930833938437166053087279437015911936966980210551659397553686249676695177679856855107045178120087296926263291317970155636052636646931304325941403474669320317281299115637326237234871979273484138985809258951914975194617973594098330753818569129069579027239859249392480743135104900406813155055721636349081638449657146150569898063830531408668828932112528078361634692074119234162915058836182405311460008258580544953353631206925175560133142689042787348081961892056439123771992418078642136924641834051342719699144202074746634633247371795307691827183010009672619513682119370238182920377625232992092626790268399763018607479536407326746904975322061587225497383888998783745926943821480189099110869092830025836709342585747305396748806146508764679659128031654313519890836918761866473896125709249807946761539173791078588577385346684481761851396918072401183889289230462920334876673824139941673768320180599691271761005002846994993347102266051298069430045092022462484936251027322062559225026413675527269527808563345775382445221993619257074687732519219826988013924157584602751042805818767357822008164043387632615702792268163408564633755733384870705969861572940951431818012002738882964305352492804951248509010135212332324781018298298894370031435471084133278930395784599491577615990363303233009077402067691622011646803647747856804241552053482022777729888948767696549316322416821551088333410094026783151513582177656243128410624010510526837826764349232788961838159479627479194390664730488409760590156476046473431198008312417211034677198430282654577527155122972629970302002057856739325367971702876231423344888690829078600678515365580835172424128122857049608622463026111143666938995025447404580159831983315474949013559331643386576089938281726833683989654316157904220400916448534704631163017042833589417553568249910426078419964476725782041248954531642125081556344046204927978356970584606258599581682028716243218807650673083345845251320186721028814097387031130005465478749445339189220908114146746730675981284952500340214164451454922191124574370406020258429558306477134768203259813477027945969199396234912270400346532298329293949626834174557854479460685328114397273359637367988127524368535692342630178079114691044792560254398720937301588588227816723085088579182526179865240071573497777170517650165040507875557546114425507447955556765773634914572442800406817554431952650182705952872199201977425380600459134613171316570830299019811620083098464081131505999660927442474448334105557168302019934074982058358398450157321238940640660339244828097713974454192237451931291391875328309638593671652676577278515040613111354987868680925444982731943202359172211877123480729605533578181363611188172547662368102305157232136128311363836538494553981314051817039158948137881673170434046445166213731445690947014411337707931746138489172822898397527756344464041423686345692259019056663391868305297114591805425461979289096653570011788543994495133093635536695147926506697375424912292712626178782964502822932029050891237529786230014625288743428166873156322296655049001740349743036095862570450954030003761044438268694775469578698374731470022530206711597478658088092710388714430376773091444327663228753604958685394191563191722797715009543020106617647977142568861120597109397203791780543869197047507032787686832256957141829559109388597290960481754554630731437983919052291444163064210023047754206454288213591457595205951738614491733971038268121422997408161589240342874115912792652244459397295592382472973934570793699674079087635393858942312517505823247345609964327208997995326569774503549138308361819326922829979923913735601458542792884795636556211179835325365256274666865446699600773873350610670306049757718320776420197476246407014363379751842794058025529033796179317722688064634497101477544985462792821461995901798354043987085490200082304468076499364231574964269022771706046972367042151906257286433677547599655514041578928576308752244706431109901910692111990197651996117502866337582656381871294125318535747334314542660874867035298936920060750243728036967850354549494534584822125514992845430641701292182524086893362614311609435903372819598152785082901427910281463361671777273947929671083836701681300461577320749693537983461913934026819442868498115739118708242986643578061271364533039858688116102740368753352351481635591746317104888042329802257377891357737978000851357590697825686157214718208116960897213673382123499004299440323794055671153874932684038167735597459530926608267506058198492693420563453817931978422019394608642074299257948063595794875546029230437051881666818627482658959168495830221813647644227117308457536560100613586344872649297642254724795830197614688439052689424619611736441100660418654959264832260602623308615542992299413811297457885632645591737437333558028600327805276169358332150111338270905341850703215206485026150727632001314555302579866258073582344354204045131673007539494452399582146360357092446332136720959089580100548489594399776448731370995918418185971627973323277983169594351380375064235657913229336536084360501145257854041530799771387950551196591821384697225821467849575703983302709684945723517391207575798652603070698990879635723042214595271846600227667375912660429785142490018672192171067107005995096834979118729681957014929151964454846039968204194297280216630270486167432970049396676885316542485811730248211982261308399852168790869452521522258163956809275317499508555677235697087862442869098132463404916023516505591416756505134921078017964548674475453297468549857963006473625974072479229168657000941704335014370505362075698132479310092501636109983277559616696118945981749703252499228028343514411233936869627560941064310164747248394272541858391695981693254816096303908431700147233620247368190402425083850159462628390612479590045421402351292828468755900499926725540397964796053367060624767406179517090773937150790069262450538708450521058503576670842566999797440168219672877491644426574358407278382754772109144140933551832367595185792870321782305193410612852535435223615237493380383346314757788541841764141577984769668751081243884844331929210893123892977342406800768934270800140627968521491442303691518437946748919672953364471085375783208097292165952286466889975608665584836546595014973404320597347777779353131125891372411084508376631449130122654783995248638759800837830142199917746105089487030606809375304821550992969950730524754369493090293450547182449708502115593602426265178536335752676786740424808831473628299054602283440832771395226748784892840264538884421429221471956364972895681069604761194846480158778209290238280027094296123677637782010057319501842914535404181748970325822011714464576838864413819773958559639876708611928255680452462056958485200565858956595147829375163547934569884814013892013342743798472484669273800732310590602089095482141373642209338659820639029514328655250363501787943263345710316984064987498449895043355491223129474613963289465770780578931875140821618439987425600198788296302675928581985112171654578941028980414607459728671316184326516454603267139890273168142792660228253288948810529817317875902878518636764932293154753972252545730857214185762443752434358401056922139895953234358106401541369292165262674638259734300364652826462839452086576586264674532969155368676010426101523879312062244577969919271900232220092666665025915404175298783374295028991294589951412153519002383958069424633508536145937166444542490077815784783518473125337065411600692389668011614762966117506031239171400860551521789451425226720199763308954326833674761884927852065842526893147990304207841587477305105246010569615094095841678650080943487891633646751026301362775674950146924171529997676641700485346529688439330945620353018613936215654528849191861714913440289449073699347233466408777409946110116546381005642860054770390835406576477560360326437050800094244891304911056298762553977945088442279956469212963930495115054998054615099878158830111953646532680637487216397357252768191259172642779264085237926595686398428386864687001803562200960763159433614737732320698564611205310013899565285895899381348895565379283167626624889606550676785352915500556942412762329884975182433924970525082304583907241437294079839183860473176482497941271027309514244091469625082332023853084542200048483650642318999274325078526232225580191558557546719585086411300477181062819347544305908016074643646507200525576010820817319391019192160041303615618457904111368568088423252476986979981529614207110173523571075382966276110481231206531184733454105608347668927320649059709512296775143515709124809391051136619889365221274450673093004606888862011908741311540125930747258926118512034310243996247119887782748368938669803503422758542884975795457438881142145209772042652781814938019112838104839991312937656267743719232012525534403057382341723939564648981665498296330087897468386433972863103465661209282157554010932387446802146706082914821485604789460463743611589274260085088237912869831935716110857172307771246587293223450960337804084990265713960409940194071627932350730998901223360886148685664567413497522363229197618380166285238241784844794765501747656938549304814595914444369383082131985181074898572157415776237848680746818231007818273685946606184627663430913847551325750546770975060918336083752753569802603479806038020264119114399803973992862617556359101524422502199049704487674363734610620954252858891461015706483210903104205923321458981686225389510473131816738859617297680770345524297771131446358782103215390686423577191596464707586335270882529055006588128034807372113094708749055289117921301945559457249011274872327300558664517139546417406959024562736210796021709783613232230385329140602402665188013408485992048613834295986343491470271857805014700559140614815408511586049452141476339176282872488966780484413128565642565469802865355375591834947375036993937741059260357007420367426551776030585169763935467158612203397290133395218837767300342923404839678487644424445412686547578171066981996942152196170252354341867782490456390916687109664713510308082913344519033214701893517072867865815963568741422638371655289570097708670199111787906257714866492704840796985468627175110855524847431722440326088972976917287172466978706964360040994653029418197228120305912745814759804656569072518193395009197968211766045184153673604435492345235137847120964863451103540879089156342460682501741698944605471418025532017117409449184129054436138490696591142317359325353198950288862341550450527132906534892778291414754436735461693710781284201360732777114783270752557920442720191383930726250618677221628894419400720605385096942817010062726840760643904202608941339714040248815573522463691961742195205369194664294712289056738880268742554835399841305842503875133698498058750748179689288107242379213298542753028028820815867473394294754847414218720530389668353771348157395604713471796674256929353069180322808546685796675380671969547925323417131223922962822124823693788709117266730527982730813668603985775356768282177945555011322627158236181602158873853751815855794618954984703159566425700491548868422867854858842099147047228184542142873532336242422257588484435361801257681109716313210154114060432472110220096308726701443737691526333860786395913607868740838187760121591606200004756913937221465934233483537767265519573357548569146426939150039603481161531543066115816936073934004302526815154252667025962936760064584883985326035836313845902742069563425619507680837891495309391816494999063424045973720362996939863630740473631222930151679165406349271646990346978090839330876558130216629575577881761575024212668312801523928329928813562329283724613429864902749817631354507302880796834852659383416893483250858171440705915755977695314657387089653472804774050528589937987449272263885459168391138248019173145855493156579013880161338112627253473770016497298915047009117563162514497525395655203191763020448738931608376936599531566978957125117742330539796069302329484325902032103688473357695637321536512175848005739850406865279106286095464582638590134106056617576511573072223383851601737496064444669686508195055901812747547832826727692355725485987276585557864511648978606448584588117857625142641256812265466386525942253099778934217236339155406407150347597375863014840264954768750855658585862186274462411322596949260380090890169717970973878162219874374509062577266529839009274132867447234955546548682150735036224667767251165745103106534621146845822725648774394996749367767259142650033291018657719376696205282312203332347793421626352541534181272453170508800048053305212473660994335835398943307660706693451159763003209412875350642646644750028447116741542146379791444736746204399034502656215019412489197841748813809414393109960357624863619192825821174699412552250403016105324185524350624952298443954643549357951124249979781582740958077594122913803129438990833193015165142053651824324552489263507707503607771911000652702903766053050721565038191306974057775932740745581536800046539973222019996348861311346488682451871674578121273949512742424577191949573985887910145443235205364056904799923358622585810141229963778995481923346389488983736747090317825794668161525813537827278881149112845474031286343475152067191891214952933214526672673095648948370330430874156909332806799955932865996948490105937984394973664459183631912651106377809146712259715425839287994128611923434965010385108449558437335873102825849670200035426145063201543932687991349690722676932630578016645640345518271153699408698135612167346692332927733886312113949069035333977382322295214705703908234395198492440359106600276228940330064103407566310527040477987030589018913565206584401180200716926936364288070633001236207209580061913528045383608726640801325415085032409681923100586388596883860153713703770505206535454161818697529067177993590083082958106517088698454043113053096162336559408365014446046503633331453508060848671824219664019493100802078789246239665718971588366603342774688054260703730572889701001115418995228122308277171355332517942519616746177197469314160033650157360633163801124651726067559068048781361337545451403324321809183119617821595726529029201733404263828334200702375121364668324476554574294578570989586396159265805609685974739937318552932511975040776089679336884085215664323799312347830705617609792614349571760634862178940151313777318832952759319758534959432359100503669224051923153971513329790781543395253256467720749510360625975661966787864339735107254009782376837431903777810431764961040490239204080787172295331150441114329777005688536188465597584862892144765573978505238886957908210469654362537441640466839690529663267819906347443147925499652198596311262445397788159515307435321773410552777485041746168870003254823775249679992172540405113705360550090590207895741917267625357800512695439175930844174713045517385364947299527126834180923929910508601163790818495448812520470622462808151317551946976026803919138446282653244961638756509844968243413064636816326243106450756632838572820202573683952524088261606486280592311713009968553784927705724531207469729108141139664275648876431604555846165235217654267723544913893633405293004848259199772378015689639004066921723665609084511569705357466242959691199944064700456343341912256678737719063241921071618202862433424563988462805966531489206612298550446809052888543441695829076467398917646751036411435304926738287829271211448654319146788492713020080600846398482321433622466341158793352516493798485152025797006216954658000884540452839598476243390062416744631936432503593580868708404166239311359642540472533804005152075138679951904500147408955505594426348777878594895531429283627381460848947200871137103135419087822785584075873885645468314189113443436722774457304212590317430888090960574367901257860938767619412687615441309535900950472589322449975712116098072064182033302237594153484336790982210335824996532573114514226150088587097191150094606587118028441760611905643683514534501739654475856046193524340853025408011554388601141046932624811452590601423885991682164458380458720692451333374941941857721652713915942561240913811725546555951560403053760872799025672391175956610466213675136775096921845059715676368696360341590170402532491765392301336944045400432790863077319226188643489790023003276287741161098959434298956429024999614753312312095879046617058013795294093364389495499904834166841179828294280754261913808081400016002402512261438000290770452247953498502356507281395335745232036922095130923795870052135212197115587596636456087175044588303183919637883274266262102069549657051794834424333628552523028914799984722716809415907365410161714227655011815503245671123853730382239684885207026776282812494778353878074681689963432489046518206270099961040409423477721848211721678463960229012394994141350261468900416275515034956745273614229757795988119644673182942060716545711431256291147255160948518775516147798985544137282610565692781365786116813666775116299176641421613662760224797093181779629874874409549164925154382573022560317557651013196218687295535440435308675163015768801927676772178571508212120477375340439024902799062086225568388280074983310065640510536727162679698757019564384175820930616542050583795622446768104439594207816414083688448454058502562573165311700371045147691303891936346382358035577875537162888846281754399643890183071546352418461035082077386996033542072357480074303166863064335250083465241529412682680653994966360135033946332238492489849293046350341311136884794099122167746492671344437171847566437609252498623216939945997700451818914518810423054731842991721643724731213645929371455586381904918190617565508978578821159537362092925121736347472436452655505714210338583660471850463096485777715270197228508111366869883492767801200374590921271464859164118308911827432646154304601309001777584103677156385614042728878996226601558734032452006589897664885747267819834522340161181317913110883603202400521943237195894298549841233247051045902970685427770246706591751400008979014077104227660527794798574396613846913905840023999904894382650435232621066925899648371035641105790518570007854984130585873141143852087676023407676961733893946336812001078915999593122989438734712980100050106640879441710123339562069449553866726854101722557409363284734906323699898394738702300466934234512571924570919673672073047912570971825002930264331971961885005484198270597429949937301910817801211869924926827269058297268466026918342129170519611357325372865054813601205841018150674912947843788534233546209615575115768924584118696665999169043863301178304920638907873767739565281834477450336623406506126918226785982956928362751989054008332302462163810811621089096592822826397696857533577958007819625269378613189783823681017041414407919171814092679242217434854654728930673116394863902365581707061715810150318862906702669561327626789671056100669220338977233066529152227006101652805781843669158687498716727494199591658557053880706270550010881962722211374007090932622921851165490655792337161917193604292293568091592794953914746540867047476882878909091428157587481544142760242587811992267592050370372090947643476924307942164823719075633218757511511502736479008012058284920873858327386711412297427273574521100158220251259294674711613187118021760772532909134661425932406629157126945882903140258796411809945764309877024685501599011976349878147751426998059560274108230889590381337194564177481514207181386246776628723899429352257450934123365571117727362019557642256887921399826432919416194546528523268811243802966944311771216781461037949490940239808109411637302603905659021753085356212629667897375268027241614467745141323425376676369730084773115868907002467764807011283439922036750849620847241611981468595019825307232060790672097787230055982018277352029825069196251344226045810004705983266736401532527524526568462775182198208010797855238108896080355932201523138282617147896929488476502713857997908719204729443121992597111832421906695083160251229892678967924262773704614114672232328709678447023840924501688302764118634979440916379500942550561983168666883064790253503018041052787295774716344679004550388386676464042543415286225884650865021398974236506676368157434241019415753683488515670137122548695762821750613253195231586501259739791710535194329347775773195143909680641097626410259288778271485885416041783670484074380186003201225217251610675387072610040031901439459012717873176240302261601304240999209128407882039838610158977373645338497418747865186571902929914118694420022532564200172455454970144290776185724625173080853084937713443321557983312802956831983009248640511213001498015443844016734280508063041540330821462037001055139683673408828480667028251736266712011266330237698699807552783853658445640030450880052070357338019643818479173840111958383113665233225165740368548882290711492167277558119120107444473418742474482407610258910144119043152091228739641353554634108981596977468446294793432572060662124941877423936260428833218659813588667232416319681926729550285555414280081133966370111893846049505993811976674131059511570803705953016332847971497926640656351907455336570265153178639075471754633109996071870253953914266754203861163098359712271336768727917392470809601392976792424658607151402625670576905860498055144754732218034766136979205459919058809382191251073579939433898064581526869605690137625644367598693482314771106407793523364244068713457777580152522162268846225367242902210950424410414902839506997311318262978917100201855751154042640149258420725837666547972903041229495195039362410871357924503311559904103825210281770302929958554965332488261108286713192587246780880387503194720966549520848464570692350926243954048470866740648216474845041580348209508930121850960468526879654886913244615517408691047161767457530106928087905759754276985210086642421654245991257800868985713436714687025120556796239311341482237510235002910692564161278023509297543923417717074033490073223231892845327467142235701005693942245998722244976495850719381841295534865229975898900568970759283624445509558141471559788680784651739820546708432020242296784104162710016300956846616444547158125139574857205869382491718368843091520544168126885835978903337846975806970467051766417008070572594987548587408946605066272383919704355964017703356289237962436326009778234981689854401284884223866996071184699110401989976620487099022717015700907210634350542647519628436925990734607162336572961332400172523212565515628314538360579333638800878018070557118756148809228682859832083060501531826724739778963559136135224429920531407688667179356986876929137149292187082148547600809663865324452660083469358208638059738443666291851562801768712477957335220481471720741997544400213047045734162231442264861282159818484140877795040444008637962406221558075081066930556295025887369593863393188507950352127034306364908866457933515855470543050755701644158049693910594409931126220826216729817606063521046546252390137530506658650617489193410711340827967504773434725416264313906703056796786613020659135861764766735790918568080985948550703928769364236240132772648996575053958874409195819274283191218321203731391058782388966859968260665432513432588803891657689522681493601651618807496266830599669073195980965158927842229381401297142032130019656980196863788064648695463754571391030495788575237460573946986013463486263054748960575923036230178208261920562317828714322813693922443379165764186103106981183232364163266599713800592542061051104143870749144057836321438377958308836313964463704505751392456915340683823599163922739240982636896562633784106010523786541555595484299438332183218050761823775956536480848961901748432493469866498731699801423677575934559479234395561173539264494258066995032758214173253210640574387926827585963407304439130715358493535719143005982454132952291829891515612785088680143495934983242425427852251400387463611378178908934122544347062873194531981413183094651273576665987416669480779665061051465901069181735923905951077885085772722669825966908429491983887621314613656797226953866607574687065913814339557171209386624083913021803804977573424838066962361599352565396293849888576804136679001034109485540813493767844782616076349856987363083982454367823115240911372711960808809684683545335024864508190406129384826831449696560168186184704990798683569766102558054439053262215771398339926139486122815721562657115256913014575569864800282185650888815175532454242376667537127887816045788311662417242983168801548232396913791042023658896655028802877928101798384388580904930522209079099463571268488933841379697862133260582300266213591784045799945416670043049614253330619925818153276403840852291035719362016960608902881598759133283668339350161009339143935238552034512063940821732676383723506983701752241123650940461901823653393960688735943807576383918425086253850040243218300376232641763402860672803243849910367774452534729941451059566974866128896366616936713120627760946311536763704024260292524072612329844411294978399188251136957382754252240329405810841320303372647365010193059664120672429040961454044814650901366897077913615024598905300984558707135815328272572405036003531645854287618441065238798122508735209744079251915712178436661247517684757955380384637680021253842638579226920981600604733501154487003919898263701978363072865193429024570207105067690847779719455954467027787589207908663793626274582896260199304786017657671046476375369035526474993226084492938391034734950330990678635230493196211801621497600424762572289499918010319734527744042789089965983671177035645562499177381336046734443441695944955918441151077389168818857184070524457322014803014224673588911205647260386112763699592032280696166956908362959433080900446515155141177591435889152064328351935488542721266212401151530655427648272125957496415579549943348539042605019622380833699572701003920151168074836687469208783603748517087199643851312263527297409440940300515128974418489268368168924349281170815444666556873998852725123105089722697668830966377676672081531233445957888089988658979755595975990775376900289755253844139797345621287495490688089968512489180430932159032455300700054144538814440354028967838482236093609145540993189202923605812627418305682041058738010331087558183914797940779791206184393373232418703078379117875853118832848794402760017847277114177612761268060182804248136529411272563080317866644790951958461668368568865223962202367032621923136222843690400157303176349224099563919428982726708612821799750518790902086730666197839836192058268333862862346828526896287699842924511735778741129323013296490515567061977677750856591253602196037351882013755911006313369261162106339946514167013645685031817863616765968181915263114562979200631397850039603055012755365285486674618145617261788615503076033889438463918287318653170755312449980264183296667831866513777998556444104650520239289924726044071706999525720222342050534033915471494974492435910983291995293328053465444229527630161387504638890405858989350167863632894535520244648975397281064837475347923236047668833990704956918673058004194453583488027467960260454405712971804184532195864998843893168977913781504477113924647963031210362927148677577393881123986896350335123861181381681320458340417710380473693263531187825179323748023601314402367203930040642486210726730625430429955088065742428842228913963441945994809362143851445615273960027594736434675440255511700132987188365695695608016107569409100470544053104774180187743216703361767230970822984271795738077291076127850749109982289918711001890637055388738811030568735812199110994479407349397618114745412977776246369406012191632296680090837807800213245574226927874316359670671123637319258244628714943143587740155964665118383741678146369824959435671318727658608217798597494459370440933315110099588248547947244649025769199421065404971232245412268203009619981098902782566964810005356889375681235942169449859487072532600708286126722283963348431309600884355747263939223131273663507031408599688027472608528349597407575127342561512894131240662243984805013213583594910666610706677051409592150729018480248787220825260834822138492216682638575182218709583406561488654958633140119929978757609161299086431287200693439937975766192961798164013022630389007020011415484849301263902925237221030843281073075209079227563224707092331635361214080284561636056804092394315498611006712451664142589408960946063386955219640526408296041761228043533350160020552367251668725547074239330114505084078854624003652704627514598950044830548715573362589324492322273597274802601998784355483712933248106354865334091349599857772826825371978335774861261540613836543634169549318672605706391184540650662371548246423189899150815010333542123179129853154483345328354486855368062681508779309680825500744118372503483644775222966882946244427844593600370084398786771788898891830067885212652828250092904893748328651248570453579339442610149682068079690725464070214487943066587981946517106416392567076307503468348538800171823060349897372316860662106496166309287520043457626942853847660797110387485327373117288489146208732770260429724886736334079390722428054956496224450358776245537008381792835573196198243568094182048172445465165888495985146809411133489210328275304655713858330241996674262207185418777338085541480048776802051832895824884254008293789682956155398312665227426288015579289209306222659238658315486699765553953526254687352283280607138502940147881525912265177015577953340147475411544244260034632714774931845836457945826797820676055795866036591341822774207462509775600686367587836901177049881038392149451363320638529919281779228234794756376913641502071006598706420997223857907304315610837487561594088053424989694834020669450214741288731708210770309156527905087517264911536148915970295936558497945131860710192325871323213538555674048148355189251667663538149997392422490921971051562138284573992296119210050085509593460178229373772895147609757373555950802940159291801964199952447343764782631439678054494533940811483983039350454325670260331962050527658399515917213405286508026821423834359281310308296889837037406271437637122969462023274318868227820101443431191589650065399027890817995919634386691136783324541021040107520748214618413653512675824223442887906007825847538676844251545084341200528190864931396355147776520568263309151500196035331016943417115134977103178269967903564554564853655503259873691403650261400796408851691224480672308907099753281278017608964796379568819864354260763146147325212964255776420674505543747219008499146130648533145248192387256069376708749027754335176924304226211747590326240110637610909378447934370027704870542641157670627124409664016509659841029996154928627984529486795705488274741419965037999322893815733676560769885207427816880000938586678991319414512065385892119230360769551135617757805741983768384139260033517410045894145523296477194367636560346971718527041618638617205898976796076722929736686955523630514291601479650963853504196352388906401474259372097881584550805490802465108662443508263761711316702030209531581814004125919552951890835976727996001047891009364676251833516451586149744521722278303103651100239838203942253809242446422170471466171593107188638412046008053335456197072626557925630156350934810296078823172624953048190711067331400363740498264463233210345774975093390745695834350257997558314354320910007673050401188752501843647932309114158121149464658312338045974823515062916291236907197589095877067323707972924306761177392344583911475950178803606315694998237014577120681073507342350038870788772308151350506357665031449344241061182370942113196152839916221097866780362234816902120217170391447733271686408013745811239698501805874393710617776119080038479093064833869581218075653479567090914176288448241549558298702130214359568454714492431415856960294885042762110366317242145848581282567928307048968428894066394248585965812380189716809391032275214969922333742067685218644897925592672984419476431030917727797033754984421410959991843600166662382543877982873981212976443079090576308898928376942437727664400545615505919905293618376096435430334706228397133469118086174312565708165403070867842445330560393185477688974034264471160334954535506845400413124944302640548507511576093759309308715367794079715694098136774946472922053939963915303928445682733633181736794697124989775914923069815432174515732334994374441949352288454082113899218471247853028310545826966105203974507012739642977690930401527027712875455319789578857361542507990344936211136430953127842363916036370942410076473094189819964004813640656997545134389049712970695326004510548007184457456930979968469689729252081509113073009811529616589171121748716832772741039130104894626692311018244544227669690224838183173647952810764607024593056246899529842251445700351722381197299275016203915988108483311177165474437920040868294751410112354259810907094347596857954092279445553871200430454695909182867925253016744588892868105377911810283466151651561205854233869230292045241110583999814174273318989918974345490681740791762372447494179893882569057617019304988817174133656082881052102189334373199967095624750740170607925588392313487393264573555631997323589602007340298182258561325371717636500799968890222956731639043836264627150832162657007441808109892929126748368822069004455954710181919028434155308076580043250848790412509206956252786834892256184991544141908370898779115601989791351950080659017957944776964076150007233955150822893303735357578842087126751675391710382491200644946966290329703543050291147455000277460645019780240338520672676587992455691993086922495609836280785742140151173333322221477529299278690682295908004096621450677382877604563060210088316878579056184142312228046985208667385329239225598383482127835656053857912644072877199181871308907786931179371430420475067107142229464761270871021976057562685080930683659629586512720156487264736921953755902313814372689794311794985094742051413000559615626011517142929072797148463765326219668131500327470234373932510592497766825445057235968152845261429751662556703674282835191394259842615741358618221873097044978530271633723218342816039268974280622732640303494926256908541360492001521897591929437140475598766221692990909537070756810143644904915606822006916459516881964677542582754952518278195704405081535544569860016070372750543557428818825968382063084889899844273842843724689464972460769134785072763634324364973294448968166989093158817471237643348273894911389016187453014445200948417160471078031088572423574996194446531428049608558994099255955646658828914193864984998700545718218230834093903849363122067679271376425077527511131197952698238150505434946799083152223388511833561354980839810969582801886981979605095517073485740345391931262016585813069203549825305761805062612759788615383112881300316347368949633728167993581660260705379481164434369635337014059005458029458642825655447690520939736862203391887899646500724633354756198932702155411791846157462212728217868353562913232438566735649333590298406403331723715655004343968058168599341812113161588891226153023093123049608972265478366281261395177284231131831669298543341191324580748115632668506445140464863899642172489290771319463290856338187481869148331983670285829888959329908219629763967303196966972547073514542313652357836931880079848726820071933762442441862520040945822818764124222612704001683579885687601552021631772366011210566796206320733411006048594841546286332413859822708921918813017838759900155839984038781162060429547690815079973949140435712903820696358436753734121271795728614558579845624572771961750467729970053951236651402589695644544334349560236434662340012015661335145764017853701623681477161852950309247404282262626126715303733249772843507838968999611038773127303065990972673025629412265129664234935508731048062202871109691877388178554984574141307096117253097808940488098383816204981515478710170863790925464314235014537378469303133022824537220267486881125115691453559141757079109383021430808072722887169864239891032824593873026174676884196706309709268655920358126269475836373504304992507874013395548328115514788169430514189148954164492452263380959379873595142693759026602531708666299613422400200123305331720873041739224913462676896966267518213388830997384787767697391792880069051170177547353866590579179903622815215650804649270554582049124205660653870908512537897448552467432154823963691314354754570047436088711278766254709869299962213017242982348606607675745184046306927420178226826644374301074148530070612642371763785579592030671864376419082200495877878522553204299255537116464859425015565286723864134501469556123957739370808307026572770233209148631745923539087184623902807815467561251650203551701063527466572766367040197212813577326949382581874489423923916638726172735850547336925837408713505596302079744460829613159989786503842960874883679092554198658679992336031191962967614267694563306735351777773388468220770337318277932129035866781666072999730468351285902464962011734279408666278361226421773623534998782397016314881512459675183790874076026089273029783046553278773933019924301640769736548725099482867487771840978405660166602844911033697363977033756916510810267269096898649369842393399205905812004755793237527757166125575641896328879408448553471965625733025014652141892491897230070735100675636989278605959629486235091703773637243682578077487501910263521909219817432522564621184734948668011396394008965631771755201667363588065926058551429324635475575862847257433319070243995698910124982435356486592943283499984359822202986556650235680239522079772651024264133197403449788846135952002517438107485101878360889659010070184381937932678110267291462290098750180817507749235883158029193673828823885217804723086982440835294243684393302448388364413112560118330576023243035622047244621709098926579424901190973656964394409130731145133269524357537478619263173595136145113481764941633380316212874567880177341478942276416020142211082105433285685254567699193411538806717104151226978742727259350779401826019142360734383506661912116755572210106980412094733976916040692206588655903960891177391532074585804800379778048784063772490686685624019995377002218920595689765516556955537540840034984397851242828712411277170594901951225404917137318964883390001181781415172624110981194354159703658136732754842527810238523788638648733266357130919411488832573047671607885965422469058488926612971477714781508587364834481612370570198711976049153878522059881780816264344743667451942651299051357626146490177820699716869515717453083793373452164410831983201585088486264057572123953658185060173929231690401400728966120594693507150067078068926994746722963934253161730910928258651984981150079003435188304432946351294853704444899866304594999420011134235497684848030133331041750543956052567225946142603820145709273418178584831542508162377319203653621428655881019517367594965534991117537095544816385053641818174049761764465137731892757584293688883500748027596694010847421247432711658950019517624480821112029204569059107687291044415065478274892197031984311013739150565147150022549300526107984502384358942917862394300378588108337690107024696880012863051333702611090612838584839592307523722202887948857224381181845435199665575798035798132657873055582981064022139578054007764810564825334653289264711256949432048633459492845457182020599091685498407301638593221633743481627271055846409651814865549595954263093391168765300182110763280127478777752137154892248513854770271697639901386992850501529614136880117426425011743443099479413764877691456457376184060706242066076242420102661691459316814224470086332279364290816660420827927161121450234066176288120020988312566739357983472685616083991679869721681279981134455786702955027691137948512228733068502270133010534822550767846966293983443078320244279929488186300929865165592431606750893576500719951546148472507994702844323662758955297470991163121223315081507768866011009339512116322152171071003705006900987551966173847471688539094628999466667593044894191437847674879151522429852927846344309600426045453784431225302226198485260424243976483788304801740936335642057033092885480111871552431943150278732285849653854092151247009590103698889090764566126937937436551095951726017745541884856432866625424869091409230596309579290602332906392878158140416909005384662004400832780472854789908219958118556378257628431919949266927542868766906354754906199213307857248834257038481507001537801326858250617125924216172592978980499253433131121306197770304223226907679097953107482117224508832929912783914427695700721952254007500292950380092262115894134550850924970963851442396925410414449302023346360538999363866178855519419502323086396424815429929738391315371254647340406432976819164226598059033394884721884733930364221560414230912880331231628386476055981133381774985521872080531412759802107977349680648336877256403389252748208405238686429426460609448169409186583744144515988661745004350969876840013688625378070271411768651557948005965383004965443217448104029062028242451411029707969644518882075253841494305740538273811402473941581858743669746034167781621142206785360107459927769121707621443986792167598893165580128488521130692662358628198162824851027046901488837567391768700909006383658169303443728461924160619443145663677418705812045784976581306055574460508172001493251994664128872424422258925993150761380189713740612748497666181931561114757273681630398226676698793043096019052773169066171971472573208321155764638534673623384884913203234842182749619401097226544174041993191235073457030833768602916036052958270476924178135300159077847563765569683382355726997177032591047347569624635128333939799516036773391909240467111486695374237255478457760347786415633774082407305236168500708692178998223648951875507402369900322594333742047232083815791107328936606022031858294649464876986557616326275833194362667052374155383894570068576871249912717323305813195739560572888067122978432881131927538605533658053116884968412556287762498817956965630103880409202716297595548848409233900623281957784578533268247768574074210050867087224635160629568402754541738037679130821383080635938917719589739249099370542097886870127705765473098205817583649962618562495344198994725088369052894591570012122634567631877602152498809446614004371856608290994132028368881707384969674999315342104140061484242219132235358191740010582997959944764215588002618700471658193545065923888876871527776367685155187958120584487985587843690020323513792692394480224761350819045976276870617554199736057183945190360375559791831111451286588697969004332228306633020136463120250788952471748596091848568298026011714666145265575462834696383194926737820007117951373662027017979289190303028395085345305612890687262479207190593526686866920715051699696464285344680389748090309348389563141226711895265312674251016489312082305368737976677330251517970944198310414236885045947185741473524980464216360684564872495763438210046862783378511772485452117224668770403297263188162727141305297173047594847858413560325687429569055988403666597044825041481556752584236542106734166414472568123045084555378968992232252803298655770434440728288709426909774260402914308277703482079303809085485198126250758853588812398847854367480222059355899935706985456349006144055727720055165852348210637392208934048582188833406399010536949381392493222710854574260592593320231330707113749790817305767748699154384714877501136700915916912306133930908576278962597934243204795301744149308180528778720609133829345998630282628314212985539188692848900822656134673885860128538748358425626902173308727100741805335533119348553273032295941699260981503340907988224176939362874448445804473696886622779109432250864637598113497010238419053539297296742796715474786760394584023207706853202489722266151850620300803729213965134596250195489893114958917215542905779573322463178955456422510724152309372349159105633964390087648837305070630306489122541917458697369062118038301691177196133834000908631560542333463814699410374578785588476637182057115352540483592064441635369771369089172420926254523330362286502838484492235197527349280502442501575921658066419494954086874237315210988335167442170665855454031278299816050208336865089483101218265682339714096312717197359243356508449482144735483406822880806399954434848860236441338283961385773610985775242603455171658226400559264331390787652013633018971749137882395589743217658185761292055699540753666212808369945333687926292471648345710588947120686701888624214943399687682594850964239735426997755178782042530016703869178671581975714159281182203446063912213864603251840740208828067260030207945188118120102887692808196526292507409324396939040325095084935324727578114774440048767888006331138061220974712882560779829964223795843835159531945986126484776554945818821945129873674015458726471424186938942017592756494998712258076222617153057112694791955039323204647270923064477992118321393845401991171030031249471600336291021475315058282362512834902635203922943086949125333543813768898127528311930751720916935178173386274124418743673130490013278115778683756742863022188072936953270955539855794978440693512732162803702481171415434686148216912099695143875209921074614788774536965249421126087878513815462179653022462684264062299877086765516137742454592590253334461155045184337680780758014184464688019887486073863505466953295682351156007003536235398081311879667748898796287041911721984101756677536718735585497947556684638551359314640253011276805437557962423429317866518600740187160709353636740184986512283093178291822238205122069469441102877749832525711971209106942142887768807567636437000185363544690865058083328580017442088797804127728704184418946291356555265417278541798029149497214499022155251320944470629161580388021593210199970933079307320506614454202435650096242749144495027079580062429579552991495940852114048493641049938280679712151049131436538491685483914866926298533336425549338555843554308398741909068269668963732011159947775674226924849485587651484784485694459588472744149927523356962288767822437036020930198704410631767795714044619975382803763506178902748953581342074843035271529922096003266639505365635044852300770406998774234653873125946002173539643766698731365308068111599225589411145357298771965895797904040254273408321648743730068519400183035908207784755684558588636327340024422658533722685939776166466357436566574664022161970582027591936816590798582975033274305878997639774940482997476769774107049727286037359805782812908159395109702495072494208906570019574874102675448143861835524093153900890203655453302507884460956720412830899112424099548625006766563557200609569175253603122699321714005768814780092001134600121579477012504200758348523947765123676627111460790903429591779822739945428696690330246535882472263471373601042052126063799555197859728759047335232478494282243753794851225403218199889637141124492276839835621839394498082923208829468196876746345104904972062921758415852368179359001687384803701389316493432847278690658153532122542728647824508628545065078421559878339872254895235279141327869344703756020779688178161376972454041976293200200081471645870430877407261806097796340727920749752191717183297668174579003776291638759456970586431321807427651893725883764441949712254698357325400376488524315203768088892099861358788130907131956147329190446380650943290984051779852458118622451496258115600889016639661695011914329815265612091812052133043424370904325451859061287783528906300993351496674775562191624320848400517597184967446684016355374807786706853598615252439434661924293551222382509571265906035579096709988820755400171933549502832651226635735286100590962319200405560428614317835309784399039506016630126398557985092244931072725548167088415743719720843989766051166061637181576071192987780015372383532923481753275625898355095335238614990892392899890034372084761268624853885314984952081850646991625891571019475618023205314118585487192849100679752945900989765341762775951044138921766921923114582819008006880053191636404949532888932915196275497545954287823386814615503359214140890612613936310865458574707197687433301637534321236334763195668355327453622774774815070844874276886050447630271888000431594471340677111823162295188724264126699866761750002746678849103853322899437261082520819449875039176967893076963096242328792844706835058032091867591035753073779159512328158763178590089875197865074773216342531874258421325050758053787835566900094284578987039087133451124639115305352696558176273012687154953504007770270997344993790127684582466123992664765798667986404657396755394046520959598669551238207362303065952906405668160180292203734922852022911876958133529055286360124599938180564176869399655757608592063696237414335663583623109570625058236068803468057120748647663388793642768262577276015091591871624970614085034761456643965416354060610291793568594220028529159443224967430961473354696116482224007723907696951824323252808584488195999231050579771754995837561527132365300614487931705188108188598684217683725560015629375238783740738665205094785407583955549494076739438662802629953569635928390617912659152002000588310736496964342596597747138230763811004800920249063525633529649362053150600956861167007654676644347241516164334203091560314888128483038400986598303967043558926599942773663641547445886953209836492146453483176124430873468244665217632619016196891942902197246035430650360949315347116149456609355491795247590139612108923926790436914015479398878272629485988142371109550286930165088689684634966747095459530503304530739867902593552543295610412252862411112818267889432592060609936162565623165715533527628849294419032409873016186024709238971890349900742654561740721192011023479667110584583046883237624949145448214923739606746871514346349428444721660681646657320118887028554585442745259810590713495380241316696125069893928706009488922737981895932323240200979712270418792411685134500460842817926053905912100434070122649719182213814838887721595806730025728564238736525030488291240740994649317547300865878727515303010847153736084551169025177805374133390022157613221425800090526814364132790333741290673621165493251617842065612941886790874819604628713528519793502312535670353118109673893747532420799413827008875816328145218502642311412400280278165551680176396102320027864387697090058093129504311582488634722394392206296390991198561317255564418803971662527617098814604578629009846208444213257088267011472525681849189971469764335813007229164338314260507925636951213896427680366875060777396335789336556704883060748231093725658859505660953427385237186966866113158069306248104571036827714412880247996814287027702249516847783830203706107525085015356850832852858566694377709346788004625509371855523966525056441089845170894128409883544184157067367395480466336010913541569769998764310164002192960590183689392716176195914171046431049078538414442656259658125746418317768462251182229179868312523020214694016959479386086722606530314813603312014129765463192674311564628110818168579474509582914498787026117243979016758063165178224923132969406745143253060933201974771713457767478319731055029650156489102329845939001077707039891637325408804651140730887272642314287712602713813795708143936630317317910381308582473924937577925002795461982491104942576049389564006753737119072406902836362794899329075595949492266737101255118121869440496019350528621710391926295578886831808576690260715645030049026148251090084667643490707848307359965065862210573167312131341880161445131076659105960532926823446500293493535099059436531506497931256627953494848067048749314078235914112256946334542741166142421500928441750465994778009854078398908340430838331355623683407642393531484125768350511437121365383416426533182461969910995113838680861366226959535437193592518215242801591872118385285667591159937256941342280744830892638133151038598892363749081064720178906644288253966996840368708597256485101113249872027946285988184861038416576609059062902712258944151645827902542763238134178832388314176165501930105647055361821045678986456002654689309973658783464176914568064015800542788265966956881413429138166753920474593676655538687107917306607070543529519440251801611701355501395840130499001890884307111706038361504768778505225007582967388219011226214913773237792449519971530669160484064315624179370399209160194093655946023034003406547584297868906962599129384565059320939353673798728238196680206504724993831857445849629615648273775639580905544504515429766101033456138151379490272874835288602822015272429061273564026796312934626277530716655181215125930314192994613044627378487194291153996084752781059464698112229173171485355996387032997562497936304965655531615880885629789263464698616555009445217480976061972491024066372342507548583329117285799103939074071691479199452711629118059132983508755355879093512448044455124464347191794489264201580017839789044077192796158786538838135271214231818703433601692032046814949323078612939066592078721612288212264145955662829403436756293844807004161947603249955779226184958022131811427246945989170161312692321839653474802897417877935706464941366415927153979478423559235839468674514408448720623474230880072456779198756271287467281174090002735621076296646166776182190509552678762793100482654677230805752988453270732330080611829707462646415578072116454324531488657692375035369647156205922724601982135498649017498256429136272626110617536470254492691931061940189443923049929277714703376824815799006050192925818548249227144740341257780005734009944686195588629749120438013798776609587003009946400855969290972969535130320839262011797160897955935440507242631978275607712903532993339159241878835328123071233252354688997903656407110061414910012524600402144849221361470938433810654716212922911532356550823956659403560422694052942571219267575010729876854570657866834831224302299385114639858292705077449903310332623860562912054045658565514458992686319564325176131434181089350258165268440030658336118013764447556343686431360520240279938708621094944509552248038131997039851115594516326308395850023791667246384533567539251616546112056971763753274830490432158201139211046560965479432982811845896308656323972999958971321735434370272663502393829700676639536826372606469703056910864007801821569171859500147910490561979973390621195852660864703999444188950106839568779364889052852749840066089550801195296640691030832259424822894300108276144645691086468878517429128382080302916293045234148277031318388248442514163883464342400401565418033005451694665204785039607443680403171270193573837078036729953862585571042509058599122602945044352527826796088322843561374280053452194443051379729135903500718508450836938982573691002231325379798825236822514059351751090965402790935313237784366282210482860294484593666282119310271509106781556013220095447480464972944747795067854939074864063558773565072640569355419004547170785727581003495896547946453767599094422731796441633755827282365928845740530286009512251516101799556012346885157879678393344129078251408429258556783741951479545342315391724754056151607716165316670669833322474414170414137143376199772954149990241604196793223477814796892723744556731137371457727208068253402914646802447969811725100849468668127081899877936108560817022231918270662405935332599695940488023205067345217522040672801556290491290399335542634102087812108831497087229462622007313126143510347541264994063051177782006097907584423980692696645561477800185307780967852351974681660609275487851958164874774099643540360226283676370279366494835968773760341843327378159305446786230656975310377104613631080692967434476963872544217059599523357885228861444876740078489814636002603842386988052384807223413273408444887420502485274975124207403236228442509300774486025266812077263476616940402659106442649897468454556990065620312536565062654182397711997734152925318470382174901954242191461941543495858927886906449463193781318473496167943782241062356640163248449008072971295127842995485312349880047459541755577928437215259840460389474498997657045267652724561186945520114327874417700973113012607726064390113780910098877447272614624100734072854051723542905714581621666084563006821605684603226373027742230883451837083843763409155122950841585042135877472335402216555050968660070059520765863676716976400550099742765692062458070988571483650114134700044749062903688483181824367295546693556699623245579563207799382584618420312484560081653892503709774627983488602977757204932235813611872614940994366182710232506466221001890731621888670693793032857174971613550895460885862647535902889771384989109281750385601667852955845811165997226445706049141326179887526792123680225106426952453614170152266435472595913863260953493475648448081217151712974648369028519729423321728493885882240767671998831793392799491973227631188509365175348673195135657092275649979266460926829468515860022884045549612146616394255685342157421646797475545129807510752810778550815466012664710683277624964642969261362196403772279851838372851429795137020818147972532288203683862206613740190737766798090659717600102676835084215459821113940954006722948598353041591134405039585179725967438509063293095629115681016658894140648822731084928274669983421793642498991790659250564983023610396566162435689089189046901393405710352221703208993780535208719390937912448217793732621000547590157593588544606736909269619372239117982482730470346965055259206433688802923525097197029756639170040912570643254485468640381780871474442423924536887894417733782018167284494613751020310563638173783641449253790315059498454077399793433906279795868129853469847885001644495520738373290050248877291075925720896338665071410046693115018530729813685064648097273732352710789269790263034386231065312066273312016603297005589446902390794324268571998926139750814458468991964328673997431268658200915515335691416548781477478748040522337176223010134882294315564137136707741003350543346920553700935918910939971317676405118937884484244473754889903395099293498229539967435780388950168145501265707418087952895509174942417222991147435165655198313932084102635351709068814239815121107356757547126383110713312897335028426386229589453619980219448058521856449536618851580352571165432548187054057385043224633933114853882497614757934992395395239810899658670071952893076282810951954393211967167315323245217207769279418081924411954262000768005652244974504904780626398732640090931841572187593691938204843811042512527974354939889544710278704400391505780116048847357034363721318958738836317583207350116752558875988358369166632455956906723887808241700015905108666725188426940225356626717308104466568296029612827356951488970487682093735073764229642711424230872669149998367385382699172410694218903501178476263633882767920267729950653381740888946703256895774438736744991127401945160276314644835620997775920838553939904296555425516801731789093989057262976050237299274906299649555569482673594239413693620559619994164018387950634957726168785315668902798699264808703413207477325386832748136584613398575328600214332893911349940173004834827184064047974386060143904453139072426715491442298910522685797238400127372131978772257416578454969659967915067652107200257258954412769711721231232007236598266638706654145808441035350004065829483423227812578367673958384959446434282733134991862067132096297865808339597517455215322345653650077567946013840900356117895987466738797992406969682251692422673819054856239705384237993098301721410514734021402714874334683576015923930532472578331361136533775526322110697834823110604861835614014279647578500674060591860363547361461935691168884215995045044147200712755778767870581454182698657974896255565110099364628716446629729859910714194459295708812500881483102882766709536884127292848495827113577953557449195925060772110021382108287372470284634799637778276866190827750554933559324636095506332485940363353764870915393827694268950924196558662101688598882819979887050630449921766115773076131085096874776345641968871262412872316181188063948854645726139781667535853043490719368913711519368009843312279272428307179575652419313357432722672521813113493292551315640486042343240274046860075000206341361428239515897387709754917807345154797787281876574880692065064638646622962401134661910486705567533491620222711956723712601299318785704079123317547091497025852908939018989208257080401695750429789854466845714192289526725133823951829630252232540460999980202903922873915081590148415309438948837276537928318077333480342071076990757558179611282295080919252800996432702971896526515563642288056486261337049217369942292980903589268439776374626450211677429891245830675697787144450870265910611393423523832012927231571074471261206558484187008180676153011658143652459296580838942774917531913548411726687067839844818434461116226385233993118344594663090351885482472879670858858247085737016163309715957578172954129169333125855784509363968991112168178952230530572637482530026262773012940996767374318833310259485641183876259408079315225604880104691935420138108480529997515520545882681687609195999146238509319297788325078718770042485390399664211044485845680303564364458578060140959091900897769476531698303134728399014819568495160848726012051450038993610363321929444989814506385225312845794158083182165022964559257144792426155294780544055070936718034946804347042867922556498286993020815923867389351819940080021156212206463075915955200801413569511681275357794499054520385838721318276342715020167283238262544945436055721643320196063205867677132647843910409045683056075249775233732726814492888849522439747656784213482106188624588479313721502993785147562615406640984177878214311402236780216990937824595012642392548242512136599505045444184398581477509641170858729900650354305567666744364105147786365471400866771709976001610113019293732808063621423822523882009025208765158126076982132906320385470603318061734861854348184253521512187114548474722627560221861957277191979052122158156160636592755892630799198539721862734378090244037223379680911454315791553154202936380847752835488870792374794849743407290245057168479342978981878652222696663436089105435236132500474457521574298664071914060510303577604391453103023128727935755386587603194863805375431837601868434775299519814246088514717802719665159469859599959784542999005137873135131221949879599325680957786910109356947452850125040399419206489704756666065684327467660094714357330264056307126926588041495544605601394194933156829832910308116757555065045404546240743166331091433527498529571623484451481575511739713903780474913185168741783039884199752720317828693629036581186225501034673488163973777540981063036873264173060777872696747667605872301893438669356154312080268709337394466297955906075243742580067365138998104515399059902372115768929462443814248264541496031382690020997480996706677021560742453815823992592723856499470492162264993903384490767218521700416739623802167313769954744280708918374297999022711471941434141271090716511907414474054594756854135885350305692600403223812128024761700676062719211997465528392675987237841969468139690060258649545456978401482746750884030389878218887512699905052767883891543968342210243815951850895106897744738480582270441739988877456550644807162011658084238198007172103612684871156108809190121478444826187251137527755761335705479437786472233990537248256224761415645141650710895608823560526587482771818415942951254556602717813762422132866851884855964486802394423318271582685496540003487761888156044912697892934009779490030434541524767912427568508647226364213576486694347734270360407873983289653314541833547479903494707059841511051992958445831526095290024009176165066921316914934407787688746397301006202142432905436884861189751504881395494660701655592376227082716195121754931519841141494994678511640884349899917880420810282349869832364124863372431488844508582494970279000318582462920597590750287118187430270686901681222012039711721998278038827751653623735709649056702571544242113503662432676165862685593477892241344913455984424538396924017665935855990597906662303422141145449101380217703740275005042734462928846388671394879890995761855642991450046516193933733878667351246164009228169662350607466809227779450264008384575671960801524547854170853866269660048933208855502652127803754554977840459345418527444475831499379781455188772089111244246069964402080880061576445987649884052397301666671153329090317524252374357680032225491623042414382604379845197735112169504163084678032343650763736525763478114502317319092420624247231151348984095823436143065216272966442102319962427446646839722591550188963835920404944518087061695057169850494202313411421931779265886485074968038605896860931316613366497122878580138333321348413403847190925520803979696567036359157031879540378913348354659319796311253754652382251937234343001805144431688116625727815495317589947295623241259310413901057189166528304119509036729274363071954180647480382103808205358455241189435263311410177011705590361018202405238446979787690837479669427895763947407361395504994493018497916368127605789603175870006185759833496526878302662561577852997076598140958841752223012676783806993223450432124223659502349856263246606115179962799783240715855872361122728760972049795392396193624266394000140765037625281548075682200964545170492389491795387244721044604738475280266162038400584835572739309726552631931677258606608933751005847620433111554026826822970033451219941805001394201456890004051188217017478852267118433626736994175520598250555097662660093250571255409146892428402659692415353664735242010346891161399700495927860997883325829186577021380479323825843385651472160474268628788146947966252661938584765706253287116243536970807628198727925739406342634743131061519532293175478312057291494529108758677139775771655975595649933700784064839694638807585289603189676432675214357064490206334294620142223164383845624424680396813894059670401790438895808586735616355379022790368024612634716143440533928098629599531120533443592097339020703373593522390258658703808227408418649941655186093368776208639853191759520113124945216793379309980170085295108202487090477760968275734186759167917485336141354183739427299285499960809533856702702769434254906260565035753045440138830110282260376661101573704757171898179854521985749637946940266148985087069801533507916059689092605730347195769162427285994017546364674678123618184812216686501473228767635879963822491457115031240313001872467678021407644097515882850163547980946352554338332101692987025703941018066610005567354392655330884067204695013239513297608721996622927482377910401924647572939248790191619112588461307854833890911124841500835130686942410284820635718460830000547724199626328132331027837604042579406116419258508659295663159388087811377169428690809641014189733346780199757277964557736849369333171850354810668707502160381063244582381613134665973827876324386010464055496895194620977338127722931221709602006591794614504755091812711733986997265934743140611695727510434421472355607036846819687768633699767821350940182110561631538212689436363601486386106749584904256469879060214749239109896089134495258953351757890703825953731800560752719107301155158999913362032750919425698334406347578376685090547873566927330443056719289057417159375475723752587056216069146166257788627672971527304047810511722042802030401104993078812948536930135869282454828705956199306789454737806754428308885907415483303994916592882251632540952506772873631788557945533525324857622587896635904263237186163179020130596692065371836496802460001450572394034694665993741793065443747964697101098623690609248212019930037271431633900979405820831908802087341122078408837488226794707707424842060219543288499189411764199590152085327744954142658150121259490183844323594964975296577809623661528877694539700854408434124079229147741208699552876640274279887384679398968398509257652661640380772530098459995247689183112735558332534442516474111695860513859836705596129342483358759501049690041007138253422501344002279429821630893763458626086158579151347301266386773391774235228100120213129481227481445910486161293948238959342681408813021085823164535540187578855556993754700246570439043381821824512372231215012704880975412964315927479749294239175451220262220042717069883721047104226711523258787786885643944306975605554869578817939642647532368239382036598167915489658644680608627191616359320523589080664578198648673362175865886575330571721393553137712721010917142758004805798936501873406182073026041120628621906604073730465854297783296075807419764844001957747296792868063340712104526136803597985992852945435264008660689442029512114211516104743746171592313481671712269460911171401429691923724420365031040372466004027188167362753364523937888073167338359261827573277816427545485699113695943300883678531632391861622693267545841661160623815584557863207456989059383493296423178006618122781716792661411783973718826009785273568652610245718073243429632782381272136442501777775826309088563839087441824008471407734845855300985441652282508041896320930201173912964959608412728631336420060106158195179111321528804898027083685218379329390846267189305307129501849144814546630905556230328697649701249350558863814796899175675618327448262741690926134666481738623654807472769813120115821377864353110824286121811627794524460717299049407601876630574317916582614581591362809276412948929221047357505773808802697180003679227237605281592523161413231689409949413613407003501599805189017554349546722592947339314849146399576775872141753669026900232658993062616334596110125237607267596422385297995906830408609273704141990036326646541499865668387342771169713450147069005671242401611526860853560116175591969389785823620850034284699341075202320868100564405175746625773799889659562781036793387281383859517984566199090567027107415939862035403523142942878484561110733319741513352508083581027805607970543327740494320305069149019918870265523619445714470077086634028585305176589017788954499065370890842856264932453766621869619505161951238076585019610826841488258231430254431388358171329185843278716210986645752451468323000963590710373279981485796854309252673608050924122970870629789457162402364993668608941405033555660332201574862868395045732012503594807272066882845199260133478759973594556890971219982110995812255793462655609112729479705691747370136725903237510390043906945871206110936034653514221195190309557826661715504966123110674188786483620261711860167915983618201357038506890700918161936026824432666529595125172040106414415229243208086440294540603916219910098485169669421122795392053973447022751712708576337640472415389722460420754856890092482287330750800508589171004218477062155080486918354530681789326265481984464164737398509460577713366971631973761108832044199896277738847559792213398737892554387204044058857082774496855989360822837540233209761861170842843296990885409998454543707108221607273615864944868302098865577493692091363381227701909150358549835662214541510399107633893313096243496078773795039580558039546173632125958134275144180908568090928439661370532285223202469129359073363717902700248945679078259064879720252914338153931941780398667096739412442324724201518599268057518008686683902092420427922487523103017345972203588642490510645458545284845635777502967855145435026683853046862553303261079730776202050609383102513187255578986288117883338098394943416996727117965606135038643641042829439774273282497111961343676464754715988970922408771761720724227380053983990391920288756814310044442146518313119212568226571318311285173733919048093349235407386686604242979727434534774842101915409443999927184420301994622376454257528531098658341619152613819025278213186975213546343139054365675853209067051336484836716239778450992161906656809227452721061550786603342276988959327147147881293991906398791172009893812910031326282149254216581228634426559375220524315553332667562662629344215765984219400099990433734466056686041929210046570271230670066970411251001208705551540388454653961744102077879830271344187671701731178321190845117772821607526376213553446997961155542038456248796071006120443132260863131523449731983163249250901445963287884489306614113983585085474657868334798552739727144350469908776849654096792346209833338665570470533715370131011451424875198058799913803763585807868121188832913867725934561352312444003397333897378385134950380328897341219920913411771188047494197013574480974463347288200269818050895765794845722190849622400513880049522336839445596102146042831751979459668284407411976746864882779677611997176249610973423185804644386302158001078724091430543805332328797300955661237627309494613350776282480170636826304700825127607241703595275544167401753382818055541570959781899090174247018333622927074317249275590453048665391749017386708778646033411717282856999903015859219694064395996467936544071492027128807746122669205447636969866537830173847508270946483125804014043792863289925198254597003816316753352616129738441412058923215225869728562272035024374267189779273405488750454342452429328967867640934832981022008935571996532545772607095812143456095908325535600445190015564850349363726202346550885935771967802497785754441743699417221132583598525317990603578062946210024864947180333278031012255729807515672366859982472773593459656598118560591495716954005573764936915100480790042484591722015060860412131978623258676260235072925358464928609486808433971394681629447856577958250964181980273252697165725333690307414761753379093339509996207852609539325101615922873350511606989617253696796644136604316300110176511949685599938199584940283650014683741367250445046405379715773044564164154018684648211346620696808285383961125561630536120685446874880021847528070684740799661206358649289515639916722688061250933225120067155027210585584448527360829884327624351083877409666985748968167118138715961900121976423470816598827399513672033291702308954293272988963514884171488784981689439651867646996826194675606084339555041686117028995760617533388530132291043469227765825883437142605363632958899406561796280925906022591470779180363317412643783130859712723220654392944916955227952776305586724287009057866292338018100220923896525519244497027110628045480220363211346323765954415917464267544049442775053983698875840126269366468051497171908822268474306002391550077900608482913774466097764753819696712969995314388233838920882610393538312634596365231673042766598269247724960171752277527557554157156576851591617850481940020699569276605729279849753168381444936321119828678427587269561629334387884559573002704476460395347430373474912477460910503519242742963838511264110209902101088042094566051640344121776871038659159973418976782591886530722373370302168282579453063756510789865063037013350466835904343442820512606481306410598614472835755341093923296482663771420490460996588184664153591957603775600477403248306806798793095397238465831198428229354397803961238901395250362086787913228299122886493383755399694493226754571477712302294378541509300658572964918749042312240443490270126073976565032700644725167640456641000274758386050210272632933565299198107952403616222486818754416198567091645547839217453129153514510606286268180993550844477007408875835976690649308180666563771914873787032418652746604131725212077818158750535848562803499014818227730720993543762033822782590541582251569518479182286235998245256117241120102314595967858866108802580173524403444558383956205349658936880867752683379072566759230943196666170521345378157683306720797657723169279806961856482254998392191250332011624738246824831506290848902544756309486205156894262896298007202618739584138873087337463131838859418554620628555247334023441342479524166581601059729498783910811503213968091661185111706505223958425450412895248094042953631114298396829444196423435753170708632565689711009662562363570249981186974235818107907992859575300536910950845415013799300356637329472502780513076951597709776069099960665622988087842852283289378819215404806399471966444679611316564485099298542786007874879096352118533200686044670855230535936694040598004345644816140609535220742874026341439802611750524612429834724082847569412527074189907892812132997426917484146974585402971840405784936605090420035170807500995977164955342583438290353688835330267028515101100757836700070731860792077737305184284910056936821238293795957547660122887449967506886179381199573747691716999013712353638311367569110341498498619071589471122008852188974602520917315153190672150349926650351490163253763432363587908844986792489524684978917849365142865961577035107584762130274728177220853906159730671286452491730178197182331239632795831337115729610889963233354000625558721420958460556448744204746165574726457516269045179193377170923038832139607125340969409516509697344493877752631562989655820961088270957993002529180358747621125985957228693009007323215369122097435790740918439142873472066340234747330555491901692667853468822969252657586335452858693715163008714676472822351533847054504528872618833263128664319283937504802255903809478716698139720012010606046607408857480425210702981288026214493623748855533512531575551297292801411529546556349873003028471605575504081583184791188795983034027181681007415019223501615699637130735426994328644003093783081535224503513478096672208885118618597917239335050356206727690169290972158155557914309877351281735986699613859246350310250873516079053504729055099839203707652693606374990495680116530812534239265150836019763080214365978949148309997802216718266219750854082850944731306149163235231978284659029491924201039496787025994873027606934485080782219037569657911325373597730004477671864732151004574866529469966453385139282626039333750899981890267844580551232805443531005037885473258029320010075438094924344900289786137447984355867633074228236047510000040055291797555315604669683895090566427463950397571857045901309093110860816552387856573900344724310009257592589591473506223589533589783584838593892469389352005224362526655520529657353285734431347772373461108530116059642758279775585051122221242706488724646748273333761753373571497183584380088168751010680232140948668770126256777363905544182665808817686555642005040572544414774100625238297162813336802063919559025228637965864996558261353898038398758254877437731347507682392833285389383366413706545936980851334946450123396676867397816707469780982393824978696079322648758893407955712573261093021854743504050863647853887548779194717594068145836105921716952446020700730274496049057210131848324271514103024707878726471229974312500092536154272293908217394110673733327337352980079610439738255782615847924746221324127465297372915662426782699812500525216932958506326240696289773402770652669841208917515310413505979800114670591737012100110383681722603522336253897919917809569072798246255112633932221125599172608704594908415800603910881201573911039878202755142466232494029636015413526789748864145057906368979645576251035025014444685366180781704763683083546503778747294446096398329342052989581055388641809591987857118668950773154159435864530800245635036229050689845818736377649696838010447762838116952371436770196460660837262180104430605460092159936574235082639773442587335287154300374462439978551023101847992272210078791135630909386419863116142294275948133247889369845329234308791138380466288217873909773832854873626976390161130593977350396805428333282886868636834037885160664788043268611285448302798500807931248925906519076359560087828776794981499021779833326123133977659208154702696301536861183061934672450517956056697214518697125367530099686922641354142147570745348252733437771319402213411329939883494911610846468639422334110901406872200515996639447121087864585816132223662107468361127948800739532885606966253913106613438995486715724115050012193879220354548045673329579705357138708386492828698919488278037344869053759121869004079720574946907327466213318362779905686317106827808697748238621574925203002150738283913595302911387763874908029470475758308949969888748643422883462900733584959432604264289848770190281343468415575498811899422843480076717642294406268038553974641395142416065974990325930164221567251963023850879202985875163715320519113886725501599252102153093921735864878985827716953051290191497084264215591120485257537584188928605373595974267036717246121674488544229116103177349588144499150822814892850074551367913280291703748641169895755802264380607996550611249071672510123329344986503109837605946754091258651301557178396656862892796250324256159517406157983800708496228808812940299537767309174943817782817247271228503803066181439557997938153622580946862295423391632488850051502860787890728382879877680055578496584487671569024413243058447071009674534790300415157442086501278640150747938657627956421824437982176526537082948276636768082961642110377984920397923190278843288135000160165736187297161499616375036324441028987369703039862270638804666831659057943843835598024372067852567727533210508662850691564236728568267480252815211971605864826326828582485033319031652790608275173438860853243272412187157547629344079171682504632803121725362095139841366436126371675103049482177717885520048730981805248788755413164246771877711607346444200989120262388126975339615584165466636858202947467111570703280422507294194062340733261737386366069881909766966282478605928888043369741181954989485064998063528631162594640203845362997467770351164366727538214261535716981444527205722900592607910385917567395544504322338733966610417466966218906288611311553231902618550230611423522044345865945736999065225879543826984126923552131809720733829059230149958140512092107976052062933270629730000268159143485022296796523591113028732999577598047696880344063707954105594961548784781843643468164642734963881304262779533723209807145231212990957270941818624618119020050501014279354974788914496882560727171111238779230230554712664989423828645924520022294780369619483763577327972051153312661976190524054841769790881498928053662177691063351594115456769113074412310985850779671000439460162191649421375667621767193973131448049315493924473971054978493040397116612111103594457500840229632191957379802637452054751032019822470068294169912148095748085391279838744489475791960447992351482805846735728912529890694860182448179237465661050996140909032512369376099994598277694995366802816165780157381269338065816039879998854123849231591291146937093031705955156060123238883203247498964948101849700637524116515216697057918717017141190648370667552129564512147383328868860262305703239093480591810830628051391640594252161563926727257010507576655817369228989218442254037267349001665735065015137610169562004104860445971119075509395229828745876809935863815606859197547430264969730708547081832080154330000106361297815516679818582543649756122528892441661598506736114019321125053645461225480611375015567637419645676688163100009824835736518495365573937233694631673426676733060023935176381607012258520289184093830802187247399390313946645765671870179770172889549977113482051722022050152436899997745792144961457383300870731922175768121102825348987196150264052297079000158096204651836583864244297612420876038346583711446371210765460571147515006663220715151044457841283298815124297140430684221187742312097249079453850485866129239766921429920819121849598610199803820185481443631277249114485112253228396058141106628237910162671751170870264043214988909388808745523509844469270393788903952104007117427946479648820261982496825000263635878465323535118936269109186767237973162336859518904396396049224130308148781386428238392073456369560006274781361263923083780395743604049985110281551475743904879407665027432435063392140672434240404711008493829772418166740132406155451882277878016572300869225082693865523278321300551796478315473988933153894581752772176095686743754556975510275684240335593940499767586220629065697568277661519160249012375240617947544772906420618624072339391052916710793991284991104670952891720640103642492546103912972999280909319902946868808064575360622148524853385478917153228966772157543111260310281650147602494566460206607199350514639770609638072774750665058062747983416027256706024892026402516087311160270863013009351319491876439554721064931301514133540074695793847728311905019735837325992781175931829487898154387850162246080729753598224583397078403570416087850013862540676710400586161464154002835290050018000769575397297694564478386348543669361531544583419072790346019621731137293867783208748726292012805520728860882524043726989057500635979787966451949444159869056840300595522728749925861436048854026547733638459469640976576670177146759835212138936321882404479332795909136476001885260509151768761440079456768573067734061684345322935147399474079575266410474468780980805247012498210899798425685391994310999124730940698972827108664133505589758600212403311836174673415100221141827512345424834311416612779994933144151991603824510463933310439707489446560317422571910704903524260889812422916184196604226568459797671943370059677262051179330610328683369818302142366842123448500021929688318349684438881245400730077395824461442458311994989354323772013755104982982816414465757919042322066559177386122583176987898715107371286686916529616499229308075337150289691251946801652158891261390028674159652505375535461578638841124059721804930583078222469902539253066337211444223255059898783021976982458269757226214684500569848452377072899923070640676717080070353310774382977565427335529868146633631206664650444850180347078863116637546425126562019918814164681578616679612315173995973432447488036872772946477447612089875599467859897975463805862919958414701423445945536757496723038694127456054011797295301182669945008249898979523628266404515610003082336530262873954670854618610956965600874265463975713310974404682439339891237629187750069644327430790689979332205073222590926522569946254288266839675481454894404583928375573384762992049564591574866156770683009320350558057865453292275184596461155625953272521787708919603301009612784419951158690250884099527416051500298045111828663853014389143280301233507276361552729885510899616374127652690110523348611961801404825399318835271694760295820551049183992343813911717197618515615369049312754602545086206522141667877878276282879985186358706981984015054368231979583346064159510665472747083669683104893548746783050934241927901420956313707115256922749666676323472602044077533240006788624661459403672925763666525660915581930618108042708814854002332299468923074566627696601742957647029330876576300468287689063311117014830812955125951993717259205948815070118664344915382323216313614942295298587677015805946518392521062294109057246329469423863334584010699259172920280960052320204150009374069894562498340651513792098967110478472015631646759442531283633657036748593329786376558041411414351647549182343895379930090300057901891025180926381595257665935360854262181414268256030284817767176961801777020093629595065979203291700678611094090179786000392768889748872406559169290798777309192979757908135572210160544876849425419728158686784235457449723440906074864971557820682086068483145952464673039899711454906735802366304224597988343103546491074925697663953141608264242464269563558438874993672327829008086133704033286372615404951824594956893049251648221551153389279739986112458307680141226774400603857489182569061322230101716343507621360005428194449319822866540413556515979823922442138355453245467061644744965412912806254884120552321549789189554717677616230921355652677293407831375912029427457697329203493702101565547642175802335155608728066285713346977584148110438033763420101510487705752248409306875995219389520714093594530108243147204554699085489308264197959458816181016202831344200106307408531058536913905025589776038789792885633369135391889765057363810445351919400305265893683108708009099804284232603441760567292954422923997237988818583261756501569662283694428117709905293815465533958147750747286952659330076876016406884729872478601468200928542577265582058284644221198538883680114108924491547644632490703537503371290313808768279103991901604783959798911227782389945679488756798993083601227558387498874776481539511213274066760345573911470134471911246585363518621077991809885719472539610906167593946344148268013305473675484636476382173231608950006541219640067633547885500984099714046466739881038247452680643248192653985012506329459744672048218178742349160943172117440709057020174864654843859168119803690529000096656185195195542828103774446247421989118858842676710223210998132469169399983157740363476244661806737057999992958349727393636627321403778236565747658726798328533339304819520194161616132043990409116391450460001506728403892940585059929660503092993435294010618916810700048997356748714435895840402396220749129721913429344388472674235135588389717534168188491510123681806403601094290208665824414056324252414911777786338768566614981748751738585569328089501266718362822410881350687980172973803814468270729446310071357425982681102193328766271808477656950252959585896691348779333469825467319020820890592587265355770573691209672313437225749936651120758490596554687421857891700531864534665104217183286922982842608719126329467987976711556407383341000397921587559197087139680726246474852348614933080690580466022013500459490918291852186913013519948721871428056134069282166383558317316593065722517893690562451195700970147781002722992233857201331552237679366340853772786453235309990318302828012583507731370484856267291174782576544057706299387034007182085691548416405080058293872742854293111567671432253437413658598593507999164142969611936867835215813774466936911509292804587311092710652390967055146362679804838896938903047242869492415134712020907879693379360938670627318803336482136364008418058329310577442584566369553628344267291747507436259840036498445991014093950442004499137068052509147200075337440510596470892634486223608366311047472352668168955591022931391598884300390147578358268969333885430813308933481285210481770943512861227774342680437524598462299448657894836657057142901810724408473592710881540360736808999201225478341180615231033339721234296506360788808451597252093422016985122456320097575372614101466685810680112288165578996728212249534695979497446876769097730888779992166371224690901210978018048212346905104790830024691398623443175883652381479471316254246439151088594148057124726755654581731425138185056053384906041580516026267871881665804021853810431199106129544926300174863487604294558488795639169105849081021149661424089909589740935938775113784515929595730338202003107193758846698550829022986876364141673132079447694894224471459434191816411582892008610189096679855739626471304137930364478609977241087437206583421779125087164728309158984201902824835564141801905703521594265001915894393530167922089492710923081833598289507089191420676206626267233702392255969291589589506212169843882201677143071609527256538515367062725055678382243573604801618236843300645826464601668256344641769766878325755934084635235920874906309314654496486209207168120604864185936564753358644258723157320627148865276770247935052551823674160059931863776003640583863135627371589896786757103029540284320977642252000565682609305141925760630416391943144486607783023640841152767735311410171309363820278862751156050214178535691930851007265446638460585596946094894345558953852873936557466078423210160070662166448037371502881440973839152443905601991463691143862684447183131193253577458726216070041187926679193318207169226474957240454318988968292062610787462652301824677286743006842083094991480849898226391743235898070878895424206932891521134132935548242866876834451657902500110629980241852952496938597205025848087140114688299885786509007697948728003695297030493617632078764777447069096619703150624081624381561947750301568667485198700296633569133525054447740616784336045361606194790690167596819717716197521696856436728308998991721386791810288217623343180293732047785715565917985797304240153740276248471888543084642169879566910240833325002191246328035848508574323367030374897246298806334542417120307765131745774022143063097840018715673807589205637607645125255341614624636932831231401955268708091960252863442168140567539795802122125952336984806703753090082193152471004510545977324928190900858746540035134440943461133952520675980095759162226170681061288097693675502924441079880208983194502864576024312512699422750525146366311000805178182712086816046135398692089550693420955128599668444038109180741630347906258545230991223643809003676955238430895745076425612736416289324476174025830331916646723541442349715403134757101679866514085780984509082632731692488295946668922805398318699654602946750553996781711050281138181828320223458513855221354318810537219588964739007296150821466273165773937164311463861688164348316634307249760942834003861087635667531428490433185734162791493079160145435100266984683205635436494555009823139909118317365017542274509972363422865023062705225404166042904424024087990121021856952729159759653413373855692959887344391261193086425274570153511492918320836771329659248857174840768308391132969916285576866616477418219437644236730373762023139549289556379539092852064590219921622626832960504126651167151572298230794063587486861149054834592133655748580553364821651955586093332082864843511289432343886282897270101231944351276086510763745333576345218382592211350870956757953649231831434767674918518467373322668857339033436519396002026678806191103968839696398710250573162873393514746068320628724346933050317759207335693943612984336430548396496027973036402147049481963466373474393228515553522788004941470915473946113968834049077250743362647754954490825434238682037873696228265874758372635794387507845297412491006518150934392136205915833184289251617809301265977151225582912468604487069487956249159043668227476910888625630605600095539013874027757130984546084655153891236559561156884308348804277744592148239891017660940797206532672309421106947600004429137899570583402536665006010917281722737353449870697592866236693569454069041734455512038820216498073488009150468596864666179700199728719828673365549492183058009499334832945545025891915067044085843138579087322496303837538738852469104286078536316975752642579419556176279630317135781014720175271580069409975085581372447029645125935862541869681770260231871942003218522054696936000657274197803331422256949372482083120216490435780298477520449905322560957141305262288649257610748389944929164111373432520499720461775533472121019863243783412743672607981428521953403032798851431277282276826429583749653423256067918825838432102124846591064124845752084359782394305567355791610688224188396629162987405398422784020712469991367802743573619333085118508015750257927885163064214508125347313207503349229421650301647118189117469166944793091171203996168757887336684509342258578127217338229292041048249115464431095214932090183703275022731619793843922008122451836469530671221757846963054798282573685919098274151352304337738966207445300664344446617034088851563781620420522919403282195669345097562645579823753911504067901558085789604366944886929605840126198356700580770827780441688269441730056316711496830829130033942639333582881148671492641870515903566563545598097370761545658389301408540238522448305877448604788673917455283441175615758739200981156869865659580674212839009721718270497515588227610685418807922987245061466281288070239449426747191232791073591212764132188296742068029242103825154621333652654305733980765415251109252131317761292040769597799336736648078526710539917854184224445173372369710679121339235311630851072747109756608235205067071399630329395855205878081592051673894394617331653335306981714297319704110449293496354061418250816526710316928837128276348409563799934531171377081121677330161809594777841980764953732164633651750005787734778678988757295640148558462909572975476252164002324378689388187028674906223224811406056955236360104525995623521947881364739157863862500938895656459192420799259026748179032005005265172419885511110356394481565762254922057551079266413730022844777289644676325517899261136116584287940100890924838095947369775020723150674180696355865534476329234174356271298488686507974733430905248531915281837066544142635689512108212031316647506906937037515402282208385302185454477191173978552105683530201797647673070877169040873340698755492128209813903089274306395665660835476860976498768111758923825844732758438798517639374547500724025911990093902785427767224470347934694435680781524770901306443276164501842291967502573945245034446361219197412946319339151119630405879933791451900518704077234649343008303266817051082262091039390264147250093837131262527090806556084868111360463995546887705037569088173183741226281976313509624254179667575800977962304763213612938715559722241967252980567056593387311950550686572188366334938447610420959040819854905709824557301539211175227928151437036649292660733598675498719924575791585762048312078430455483673468131648787819284654888589727673461686502993361827203319732836496352012843854024744362843076653009745813626929880170991149052470734073276903590675907384588380645129772760084121419730827465095118744669898029695704025369996424647474212472088610129947676643507733233064921496197324500120694234971247020517758932119990325961665984226881964034976522612652131591105416234948914524777902005320762998205898899500098959133757598151653822868086944876233596354359421086349531860105786826693808112907325311646221013302728945780165827978849024638908263202971643348310325492358975270423367234065146848931238483551197583285421205012635677862051087487821032141765250114051143495327591085600281494345792759902114709029808873586543572501778041074518428939358553481487682089247232678827474803113762039622169444734462467936910642949965809477502702154797432577480306102393849681281433640514209801602683265381077563232618262288386655783186892038447296271605585032073537662825352512870497678468126406756477009327938457637786798247394051869950672848926433122824101710222920756183909580363775423553378181449800204310354318527782648640338080219543013877424763193619416756333517022942566974953773151053862768535956228523882492519020215426659287781351941219782825694611122614846036416561601143611465703623891472653671133967958193324313734804671750910397127320935505323978431590399353578495023012369896306043936516387533693646510895211390361952282329771660448178171941899317169967074774774306858677698709523239260151761642103936070617764518235808741408618053958924334292923051850991445698583581650990907769750450440950608270598009918522691894140846838808910044830076465987972586377690448921456969824400404135998341223870359379825468502361821259385343506480201468997705029294178513920579398063149205496030616347859378457107892595705910948771038019862448026264129805919400901548694294121971945570967811142780612739658418887494784054808587346810291066602719124946913789349436058758176337214760476523844787615202361713723780395960988859934090282400263614441117541612660184017821753131221809739439756154756389057316179463931427007434548942249342251182214870867393779879257411991885180268289801264881522606629205633337503405097738783190464703369212899307072685583166364594765489520759876205938666844600673749309776265104056992198031249037174584013128174285513627586437657192212509741559933064124730842637413567053355675182911121324277633781747711152513490297831728216740135681146710264478147068113800612072132742964979361771776913823993590032122539064237180310268994698514483638889413353742394808635766228354641347445696712032365742007886549606358462638757420682677379469691745296350066875428304739753107640522568783138116950279114842886936427093978977287712409996940574301302678163968113648810417427218735939264606009506040342410574500312064889241826812613575788512037873603869185896807862027059291038405435013976514499229577151820374666614911217330502209122700050577539215231607930621076918717027990810601167671619635368512077099718160984572031190285757403194429444622180874367308207061867160552987757569362112353136938980419094337528103043220714874952459645202163208645103620602077193598908476488557407577702601861161594952150738176492676670815150331839776927637423366807841330269931733953419822384101739743691993357684962413554880657474387981415699027706340093680830907872142146301388514165657300189790343399034234950929112696590351288617046524951547151834804299955631148197288105054788046816991350767291968442054680385980097362637553203241392053684908057815084063533560346291889992492939833133021670287463709713264089412151800484390655404041395871721397194872554516955317877402177284749024487504709441565686030205441729268495147087196520116704056204873797422710889946001440734872306274521727102038715885304470554674040472524888420521126321812984432942504364455980669836224214613720147200223929897454692217750446450949003134145813755240839220813702802769127416508473403590171060917600370372464910237003632856453113365226003968613482114826680269284561544403410607429744526116126438271977350129291601962373844286738816220841134430299773419195888190977131143586989505775023838396260973672013984612410736493560476962876457952075666213362223649197380201392876474509033959897537653228090332130345256316978529720674585468215793351727375140252767544478133838224731305886516043303285825982121008668203067913149679652102624370352950030240101680332769171848527955999739943412210413124222416300683423397648262832677218300256332602079302800776059256954350528656347821693573106054476819460556522130381957590763882778831350126229944875386394784267875547303739904676256190155933119524975178856526841161665880880995556151326780966896287615531744869337541160198545407716795348032767553832229772482272257268092742284813403775089005667609607439187838732865991143752302094954698565182427741754257514108276650126633677608457050454274864511635824956129505618876706408327378074985447554053645014200023372224024493118665673534525472694915311838124359809539119118668414585843093330531147286679300105887109937048882672778705757885327545630871069919751695219933589646667799098167639275752032484920203287821423941704093833594543074085874874544290978256664898638138728552457169840612632106610716169264676743100963702306436542620588806303486504132099975936356879226352606465598369001055294285291763965245615373129368955359931408914517149474602289488032027695798751626935431313117233653504929260474729546219669471029329357459267546387256585752256585928422704074314486522121628258983466515612397786536730607785698839458246886074439534849118052472814637904898877693484943458051521380096397107009751649753912893021037365515973635265914240826052271284190075921170233299881592055411378014187721961361848791373103886501433506210551729653067157556946534492598905608967035551586017844810244639472319485979848956523009645826647515461819722610543436269359505718952102412242740770353217568033359390199774190499505235507266291430131707711520748381532238838170481252795217403277556665202166517174743424593512323729161579465134063486654602460158759035763013137761756742075383126933039410421203831574836069666015090550308578474160277704855879498029798955881215458751163723981124032990321066009013941195979179406786416539996148402915767455603044142068355898427718691509029135779901565721971836800912429067226290780893955187790016760474872141992442232951437487757246445218184230688517119725790265245202019469588731202720737027076539322016515436900272549449019362973084060043920753163493351654405683054675246680203649435945216038008837542743923287146388593225211415787125582303391047703947098054259063081244918160598920235780151639226607979795068112218399995807104145630823821248954730430574350335331130654084768401449536531856904883346273691130708781517995537092325239563944701240105096206109463558727995694501141969998553158642609161419265439967315454852045576510521908112632783414374582359887215016534035537957222739189983225368371275239412751347353999391781666663868505907898468293267641551553323844045688667346551772565474422778828018984025381904071272515243228442394293116557948797553180954240553192275540147235387536637807929594053962354166098561937664286253772428490857516749578688708675292752337244559761616958231485980262113091611784716562579377716068750142306192005470026990435321684132486154728715555436040515782594373269223838058782432299525542801025853092908850769751405208703867984654884170219151331292283576366208395274191129086907407421920937096986823145499042452409396628919209366000566573609781018584569815306472294050739634773934073800525726638988821491206186571624275684266337368260697151429537794231933968494560057399572597321857881365848603435485890383794004338882830703934867614358693000191303676212638041535123764760897705259650495939227112917863476275524178612648364287303003278721827126038272643859593999851895880342233945786085536718736223472680041276369311439657298518395774717650427682877537059039544612818801047481282745515664257915122401324640748025894355657388885041063364723119985749102751717112616782267489301620011476270302397715270851831509002269553735074406139556104077457461561212754562472634086169289481368858915760611476626214105169352201185459148931910300273872069470384942226392027971256394036661166112582592049046681364057050418554832745448109052392438940754941697844520463294225698016001160732278048350474433294326810691872254590720510563224682769094243366925952955931961324246151233411387359035652946724380437287330245688777623550851246539746934809724923406738829060490355541761621266302786193591173802969975232148956456410145919095357228342040818410320919307023554758637177375653506928099661761439145015199587393550642982145792915047665926391033818718465784775031677176698323959599038926706677785759365624788209065251586127118991984708925394294615022221138294604952729847655046212938458087861595526515339325105766768948390797906748817501339555570080756330231672128154694156437843557804307822099673590844442275733178722358072490384795177226012702723429186617290110956798528780042853575210859276591285793816723873300377293390428753860991154221361493550476064795039265596576674152555112804578461827451953272584031286912340557443652427889180800523443052127678401531861208436018532181135472162424385244121642133206636593978959404592804171965678634114798692661653004945711203741813749242629514182633752084582191739308759935272704693772220533324748482049314892501879619806317487896090206978818633962037497823172799104030673031196883863992695882309558514843470178573585112862785175608657455375447113405506480217314134633785561802060044024430601453564821822219408666372431298012881352161313067027730690382854239711111313622324377561709132915681557369126876083718457015274551399153833724083959200564189260308310143955629650802024911150690757751666640743251839237733799471759448105239632058629220920854004510293925346225068613522771533681334057098500799512882126021067943053409260809254349081470163001388827627381244823267481912288750246220084814732894587307520370867172028180473626536486379483762814218678645385834513309935084113986017473984749809128046775246319651843586295386857354182515674560079892715345107340427212122254445384446891042430528013307604075867639676354388662199750928293574057693049539886230702275936029540136108839181753471370733410555338631696191965784610815580299884426522329814403565154359508869043559410785753685054828078106294576909742315079434985315738122922971522348227740986378950035274460184506620789162198063502479841331544113750607767285853126324253290486248504811298227501755814493258916559874699294584008392950057638905541589397210165579351416875689729516547663477147069779901204887985031078093160327305068951276660326990834207003520160846515529521215656769693403778946109227797043353941617981655322039554146307787928315649598963015217390309337888049024396082836300482933351879318636798336794663311669652100664302825220780813286008591275512233380387481044343675001354364506546475425945688641932984057258831147974150301236789362345459599627320106417085804521417026292714052830480053541536843626642489951855532858492187313482950155661209041724875718426516086915292124815914495933347674184163715113690141405550724356569281660300644193107054733161862373738811977066294831607693012478728314376571172904810184733321735288512270335791811466527431682164105691343603939966293041854891809966527141452074046071402253145550589650895167159402277746518734938970135995409161470868740258888788282566201095759569117944933915992564855353463118322132002343778603807729133510578309795372709960147055485438064930407246620058819005572982405327733789960086912160182208241267039784327736985440911056266430614934560613585313871152376614297401034050580044000679843445255617249804707154634930749230517504425415410820490339888602157150761492800024350793607330782612507837523918723405844187925317633653522309255633703432347967328201331844231636335783608159856715192607850012221823459599652521943625673509127185153160849245818710278021036933540791123390634958510936724980019291479626510523802134423398275842866024038246212083321632709044113634351254660645520086877052264050076329109709755377099873854069257748993617451036022009402794525049714403702658340814825409984558594935176166669082452437972882473851832762435481943064395882909449393071436836511050729405714012979858457406360191876379242945670916939626770398593995446950826974555400683571351713785706151033146716203700800194113338702462845615164302748771813884291454788226714060125409371677969548482369024642098410035455188965282218786097733474974296640679252513004089636512888712277948739210973889258987294978455049659909155867714578931486082720003723647072691161404070046629657732400955096777065355916982917826351472428569156054993872079156089395236612981005175751135492124487628295190810270554495834132448446392702227221722782298725338058276672277501999934266082905803426621092158357479738852635178111034037779009537154860280358769216225735847297738046523259013827448011030196790541912610812690247288057037665000207554568411981471735159616061071979869805543235533723404483351543358695671174417945148172822619959789348034264546555328859591904101606625518433808114324400644517556884074336304865061283783071801517933760278043509895773059902506470572980376964868787554425833760844616742589826995834903103276365927637480251477449931734628509664534043362987431932920533159898422797473291852490901163796303331059988510647329958756796400158768716218065522484263122113183306232478447376787190294469321035664803164332140384933149224026471256158147085533665381288010797509913792861999787614085493928337567306628641373337367177967458206815393465683582554373746278664457275443372443790579904745786454992392351980683667648790400557285895845615943027568729389555273360230514867022380156299862946877477887331448841515690100190547141676907740488008546740906442403069454697366496773830137384884151625843165432974760370985879363737696686679323568587254158325551356981143535662844923423682358637275512628210279612298259462845840359198778784294216702168083827062168723201589672103390660224069872939763876255709746838087578531817132410599827057617726148970890313014007928637461408560758374658972795119772051032816213431623213120655746197334137039617052548094939871969635070257986104921299722358848279696837922252499533419689856015237115102911745875834880199764108082252317968282744288698692498933876700375807206873204846447875892406929634269063141422605999700232005055678098035205566114250522784224303645457300711764320132653049175408404175650453710488202572766711453583474404059794533733664278001712884099210169703292635756248272682225331657757238987017259046960172954279031575815405495930724900240864856867123124394929993040456551577001876059068151559059182177957590696020500424372786562027093824930630139194406678512394145105759162916101200301042102078626095597939340641317666562001105956185879867084265958479066795968845962404977180652008673229440898969175970426162079188485292562486180977582107090019659769873013159914288808767080444166340296525794475221803148016872219817780206439200702864174726384558254051145023749663258889060307429264950874696548347452146028422133747021157905568103867308190381967919591404426024013610674793465257260493074091437112882550787080853232804465937254117999218944853405438684789958022437079703598589896226781606569151347479468033849777651332057751988516182147610680925897313363630402719627681666908864688756485414848710377453839251247430899694256849552580925680963338643808113963711050674119364566937883868518090049014934826114737426251718647661747984143657421973398332573294867310336914729267534292353799162441371744436159544193726495640287033960129902807432694463074748902922199194812724743666817048370233225281742265252258040397943453374035223860238603118080702404071564838264210479000572681043006690856944869572207268885972322409544547191256291893792613296018774422915482764008427882788520933046942396908076185814468196036169691432810723740759891368330609649650454229923686008329459481542148140711003599590756041714437763629554734945302731701308078053719268653495379692622974010596518753505485562604319758492496772976097605347482799021849892840605751600788529863855704988350196422677831589833256341561415887119391703897405810629440261268996090803781976716957407875203268021167137596201814083426530012190443521094758205839361446170946533204139330104177023795673567889457270560641942468924289523286964369215738584827529337769626005720289317397457063537548133111352265723540697287984016692648597535066814201992717577404285887418911786074368339257592510048910239859284006724959334622811855433226082996825681183699440506517102474135898077526931474726953027150724070752856765868782581950728725549015964307279134713035800060033619389626429912660460758071274370471031518610129375455091378485883439241943107588816471489367642908139348925179226499284072242632586268070796717884720229774005582579820436920296951325911091551190546094910069750348302297152047323124503926044838659631934025231028481856786030352184907980764933914022469219052784959966926975937835385790651140513527699794769396015788965839819911102911540131500068882644490273186323784316603993823143752967369657754902198440197910245588007854494770296486571725253002897196473881529289261336546400181761166738676816130832112576170928095273020471522793687376138511833428997322284154112299698244309651352575108688945888589841672057043166289161919728292462480802911491214880717931319256083221167273693338520267966272726971021039599336504995823849406963703057439281892913474468532327810525703727851343071211885310368990459793094909283371407172172083637065644981795564493287697329108025541680580800952050586159644730044611581665208797360153396608964135254808794082794494323190610682706030066384053123194624530885057419302890454969030852616057627391885962072929443824831994616770076050223264624005721027257633132486290597138758136469766613815032990628108195344739145350735817769170565823507950795399039090080905253082728266004649894093869077690978520720006555606275969643181989375300520044179832885296901318912687673793086919730770471933406178566127964416515591818553059793125970265303168714731994571816583610163873980648780113666837989793963159738553908304339704483499387688278326400688259270147995030579195165937045349178773774792414371268279190117059118213428299275173991067992593516976179435147591813072040213791440711442987462898089382856211008016614300560850895236735810107163196159943309242048985684933090060727615246352741114645253111954458585122410059831257192012745955091905322065324315159821977824526540183240072868343914748309169884544300817257221865767073728567988309505824163728933016085917667390995376973262471913378300539228013215939898768047019529647933421027064020936066760900509694380499018956469743228026979313597852135588283773204465094185294868328485258617265188866552889632442334228989920559464011293799428822318466048669337823190186472205792055373469293848918713467550679260005489978105748307304802725216043776045937410678208741995538823983175616439664615710298613521121282416180109599163170058039580671121143219588251489476684061258817828051415755274543027327514539408107246563113075493057209390272824006555789063799081551957047302993670771848626120573457307709133623499674127571735671724795223745419225254742364875019487906410753891855143830981424673248845658404993204450832342464421059283836698562444124841022461390011719914577646667832156337997503583596830158121315976821663600892322193032092978992806037254888386340467442021627184468523990137311908499782721688366820060742716766800172286271993262771499790668432918426036418158782333864614874370969456271945918182191912075982692782500342264840141132702972269794968905033920957475250474918455762957901938739458384649824325279701914308983641227162437431860231487585743125921921212591373807152079595092482368061328706899683307940305616435898092858095039826689679389946532435187746508950096730727453380626535447152886648201550670125269343839905260546430672641893980340566571159443014146834182488297307588280487459043563635752280491124195784030391375485447316436779736525397385115676273670475470753363425735466631023379866845640816160230489664303502218361449679940016140838809480716383778177809686796981516704621648710438236400037335267646092400444857585897220279311161449944423455990399359328805246794464909205465229766654168175608872937510610415527481899743392584474957326704364600005838857538921963069735311548024508975643243487061015154827649032405976187085425376229257154527625842535239966076937001225521522044955308544040500865645336491145166242660123293594511782593144224530609922970613415545874690595566977154963183890680262659451116778508617795482393069281153620007705400090972761334730649954066767520561899753008518717346568848542343474928989603802417299571260999811521749738277713494398345468278246299074188605928562756034723981719191824378172915469538653554696481303491876069948764902255761941955443793934090847549732311313641847368406406087191237608979219643862554067877502169893377881910194802786448673700149096686701683262682009548170455557813333550695627600234060941235454460499522586754400227458929947121922003140566351619715351987713933392804500409399153002588149491906230925961318922252902042699431858334862460222414130835364472677479808566881523799157451550105286796262545958977164375311027078698357193735730532839233756367019093925838781174108070434723210905797526489810890810550569913468529950362456437613768349762544456509409146952659746877265021245090813696319869717494324493615779151939825759858450119262480047295525830689149385145879836877562477176676469431956736445399096227321989555973329323098802147065255879220663726053348742712532575070000937282524728043171694908435826225265279002402907963025598162561955688660048691398582591245127980721822993987615808543624449750358148625717938247497896921653002231891180774308731917119003964137848712948802329026117419506910848553496509858428270348086803029514432415929797594900368445498982223646147041489487511020678098587491999921477809956753892774207804904192092459890057912608373436975710413760306994015357586257897354690942738160070887614266471830540477797483404878582398885962084399098367727607804775479158972356643379649637074547147421959780830218128981789632455494123309439160462361919083498071516477265537667773045588424387433493797135240824690190734891146205346552192275581897298921474439204766431590357956963058674396800276612275854336951783806930652626262321818051654707995785621985943578513405678171248903388762655503745703452247810762020850787389030564731069374253163642729146497808715814186518641515104955659640607781869574190405898142442945606522873602855312524940507861922095550071148933968805223287081932844594263587422575056546761082029730261970258632797776106020074345565805991899944247256977160664082148169320348036555152804140120871778206809185752409048661674633412468788535798402193649055367683886738829489366884724242782793997736972340899737010652536983617184390264701715585358987973454433713886009761873332804514679075793850988933310466499150228933362554822990138558161476391952886562138020981751230731072722281960347008102559020049017749032013643577388816080056933071375119514487569153683937494004907033257960687973775817104345099963339179062447359791127838951311510491235896731080680932820370137322591354250998546724664057042461032760137304089912426479184740169516152609982642032914969864334204924125513309447492221147299194100981715947174448766357304512226369202090968076108886201437366525707935812533077667771601280332090941198944963024433835066316337259030081257513203847745513128058046638537686618175890858157991246181120545825952411882161662388870977541728261144390921132937422934592350583363100462548674836096823468558478002469390543158542090581443103281331776396535895999419277371809137356130950652814648683970055824345908147021665407570771642839887841231847216371267246851174277173028704965363660049908406260515825168150197652943131146117344488706708686499176867942529510079441646909700824863116517364312051830449230458658489776478214877993618179131886110899520454257007110643313787379386495442572044283576841196356070186443264818117663445395045534593233106265526196146773266198772314054456060381990099660483824915410928869381944790963772104461130849885629148037856195914233683269275743793644594475446558412533452748772131542313048376566942196084096524593901826452376716884557659532592105046057327133535438906420999317007573337009664699685679124505589148989350488805024747283020018573542705860107838656483082111280724345387308806394653178384412985440022417516084259907363969126923499192768562240404979741671163806093916970328233505023877576984899532295789358023023872642831640220937073057918992447023745693341659173698680618224485420755627405685199134106048875980964089388798842762962139674419117727161232483995928322461889183239836107871050295249328832693059450228305787503007980313210314399660919090229562972528580362336521108428898822416300821104396713146940504700694305659223917733357448346134009606947801023485588503842680376538486008717226985033219324974710996267778551937650739980539898086153742689598110837737687367854653270387649678333859179947676338125469581785115739915774192367992926334134044898263460382496170913846109682258360465283810693850519303106280951994506309749060654547375236375884365664555209086932228136615195300154425962152836664500150527483438095082427587204992126943999433355756683278683954876234883187436071350136993751021085289563924685508210106323280341169015760818230798888576694029836238493227512143832002786507311094026916655890938980294644757666275288270789068624112618377389153352751732153132420951958578076495921701284604355629281054684136171880007132330110436826979091175348703431175416795160983626302647745260836969771166543903922057087839577163861413142417886750623807890303899625681191819308881705874229459185523794804912993153500019922379886193611813788844371346597350786136221948095845778510334887525525724702366955572406771818603551418859789464366872140490380039693907123694224094372989161337057722884446435883858289835928246116260715828247715800761467709723504630875292157241693205717559965965085708704985464030920167459366732229319789122717615567599388828497201501101121818148587818334876195356843506536006945827413163135178188589475184562205663907473257020439794043138464117289208142756529696989679234443475105303246471100235782242435162845824521033232308941025898140596799251322889962214317873543258763835843486074135753190915469154939841102221120816613765922830677882103810491414140698386123363554931735723014182282678169272932901747673610666813737372761757825686015184409871472701931729537755855534373423168957080775844072244199345502378524139982631151821072665850902827813365758721312424128847494086459714772568975160307204836906082762186517525387433455535939380705326974326840802899040894302564949872136979392315332053154895805266779094708427453921203180865126688140179377126813141259113050540295810092413760477412731910859121333144238437803170185484562313391105556763002461420256624891798338242352123830042208263124391608404124964609593804708801760812285345681696565919005860794100462898288171623834683678865128949087985594153679323908456410182893364164136128424308646275874930729988685770977874135410881656865468526247002087563403573154641897254050831161773075342006874403854671933080377524626223474359399455018208285890917316088317007737366537145168195227754968808118834034441221057614616452645336941552315444207275033515229237434243340899439165468359847007306581308726688599316253356692862827295879354112078490284842304508567547484499887502262801407676986940965523432197039668591399304010347990947688997218211051212009615760732929521584095899433781576622699129231101823440488856540151489406406938524148558173674448512587979365547823905152874054737956459609252844611987279322012900889363517848854889290271781450409512128158795111476421760812551303427910386666349917213702737946137263046230039404995397753435041885981880920451504943082611380446101104749748619457422422217413611970562087768325146461030683637030840652175168573118872368910382236388143938981943642555641261935292537121533328183541112903760543341630049112079731330801256859711602889715006103689650168713021446471714301942856601302479432350167190662626540878708381036183957798686709767470391176899026410950162257828305140156804294608154026730564935869406010975019572960483247255878485964075440089707276028738074198470479179151161529602083235114883327108457106815391231450833443810431309569529599090400566895618367880438748174303133444554488803779449753094667290756803943872085503055601625108462065994959207720447116165876533302126730683827944342811507827172654242995617007020299735813059684405713393671290899090236850738336363108302253274612905115023868536322179273451915799011124908310712103929548715273083587496778052953241077995613508896106724601353531080386103233984607643949038687756892536919203391082311860363494687418669642672259680985949474725228307934456284595780659120772598367663490315582945404260778415162726887334890893621553548116164890209803153201927186275470380919382869173185089473135392269385880311548320867562566888789363680569121115778475019899387319586734943218756447570095124018409807193635883579777990408045773174802201678675369602800400647344184301195863551112616659001456703008461593188163294409146041558222729614564259055957670964827615022510176535029261313771057506662526994262571623219613426105816874360764310826634582446718697278255763520458227774101001972885822769830498924717932658526403048834897113191580947814619343277503883445564818376676532809118546679252056352998366015995273785722895066280875489250954970201522302372444599083619245818558314985214487717272076225677542102872705653432969864874729089813303946896399994879298390686045036812135873235456889592416989634401367660824660819332830827498336559710303709553574220261895206137688662780617345391306202946679615249363676700840797305903237266471537282493993234113967266654954173019150775051421318904910811631111961678251279861357159501519704015884962195576922269895147947656761519093892912921036812401861978834373973376798398257680153134359158068391578024066993300434330509165389927550996276747356557231414234855749070230303496716227084586027245146767554527878829144163637324028969860763506888803948750653023599096912459055541862842926514311722650911586625617873739925826907337807154039932152835975509279714778052015603990703707313700511627803030415509428525131009535101900947231868347628266960688660045749208803132916253250107347574171752064731068289976920936517867197244055903086927819809598104281973105927123375204180856780506183210238899793570048419104121680900914130632133481785649283801287503013515498090212684001724089995814484443655050968119334353906875749841882377317937563158121945446139857061423746143840703005214240637512041674009823338434133188408894937473783751289503460292144824769199643264765615183745135617134008134698338290862776015829389164447662775830505375695260470467800600268314110270487991738480095315138029981529799764090568816662255167602113071303008078883780865022527138664846937930222045794686053176035177989519331275276442116033722269573006547900706160938967294222956831846908094778699959647727978596782049948163363978826438108418305262945611180831618904947897141001163460902449078483200620398679435361829198222291312969153504974164656044236358397197702183415572897799548643535829129981865160324191539912072837219715924861903692246210526232816636269941580726062106547110986778601428223616265125348400270060105479939805314738514561727595128033198106548337074428714407113922895599400545495523539373634685911475635384941680422576338063221571888174349631094090855405255246364213027002380201832788906583887192380268874433921821485221101103413395557591046682764672666466411398606051922289689855533905867231073740950221834895680155242739220786643301415685666680480681467959956565009677854805773526196595540339571614248754268580212512684660721988124573678192883405418488523016077504940320383358963114388673347348006583379505698042214783744408155771086026751440759391316375230978006982746311158216068380754144940354640489388212573828188550797473294463806360856195517942799579906124598391353816189031580551618103436904305280453331252774260174551123713425665221465989658371638714270337141340200941941150865516573373367622877601858736336492534108638601772562087091800869669154491820029940223357074914376681393577196250507949852533375369572693301704611424808629794239750817319279996667077246879775040142851643526706339156026983114803969012390749771045912435414754715460011465747454186172071928438468267954496365113109199303748768942647259449626653940319944050561741438786154705823007037004540204528810524307334470160319497505442808047262279326748447758369671317378305497327347479021476012537899238647574854409327842081890799090564336449572336019487584906084808913804512146762481485342103319372766565707895930135786225421410483918687638335441013963742262442143418471443512892863524635209734562344513920254581465227469420476904129112121618968492406315565716425981569927065531130489132593238207414472058168334993854635731095413273591268380055726700461472832866455850960406929590179636464333483962442351546415968649918962097164890833239266355802673841777173413347559985181043761798626903164982171577092086716395833812729610132811400980882958376227077859960292719096325584311448053554392662833756439242270240405885572390932545184031316203042548176960836849468741126240357396144627112652576501088236508288386970649492588062832438194531031773125368551959298676411992950327170726136439231134661530786352377221118716390276779808870133674976034588810886710077613408632253338274823960830842320419764776219481780553177440864079660479543677169361020777744516364854427334547533914516514264169041776411977985160335329670006310336475290079910404190731739746488638134588775991245042059559912283421375845275359353034418210728796964966687859918714928357372564214599956176585154342611337496523416039598421894185946520577413209025620433098759210574671615184216456673326776454278675069499689540847430224318711966275296299382935709303458369206615503177413877433217387093674132720234610360345703218980564225805906268832403256094282375021235649340466245257981369313850544118831003445805626759556191040894948637902924656006462139881311839349582081199699963907101846979316786105688238787153674736751690376089980239899210131651207190742957318237524008559813332041706761594972524452565014102320038136436391598293703812446536939525365156244382393662145381857499641643878089325644252403171323557279104291689321553330988056634390146108897389442378202661919046744854643632740473137115132119953820566832726707754398716658407899947160523616046919414679030731552108632880517153488487157011049789788087591225175766481084542045934250728233846736183509943171230873758146573091823116783553572202365626091420707167081056335626306050164328920539289093056857174616127659973601304556748426993442938231544356107217586625078731229109950151272250192969061345899860125822307575042753333065571338426502869518614509068731937877943185447784450830724025926151830481598193578136643673977124382467351187290035303495773479247374075528210465197036529911534035524469244685083706293515319171816013195748335960923402996814446919178152933597463706655853880275668684038506188422579920302652743373817356073830843436080314973547490963283728327419729342027909028471372416804589440010853056327554002815938076002622881076998658433486662717300453258166227772127275507911094449656913947004182300407519191405848656611182722686205339705568270249567047422915077055776232743222412881062355044617568762175113285984381133615752393020391108709151450971986535604289311603401838845598220481966283646841281462901420545830919754992079380576717219061032857094335710780325378183643669445239226185028042787107000349231571813703909547824392468362586155494206772179788064687723553285818198981759553165435634850257738528309308873241238039211441652939813238538305231082790031658171002411687744443742657469992890331752466917045923984869120002670781712168835223668588739299524398519756593666959656621892097291930636515634918672982350261947199027080542546753163735996802615968685203407494385966264198865310124462546177270045555245589958242077218903753046605730736086522388117791130328617493222631260978373249757479798822220157477443333794515559876746650931156377648266584790463050651947701399510635352017182281402684817873070707786685069607567631427436331777120074861318921871440456035393324529146189713727887283195064689116171864726055430512291565756112507827947347471203778515973932800743580454704747420336926635390528459340037371447583956339050234917877541796778121737870830598400831328787765617051265520692920662864828731685960997126210258765123753626173371151520650826946669155903135170543446763857059733974875757812854787221721068575369622150190337330490164096374565099302869221646803599348594542962625645546850523913919058842727130875663213822752083688637834026946905063971074893358643967992465612250833190661961007877610298453795472260522188128560854856636384762128691217829277623172368622022345904667956214855216128663574558565017066350776310591336600509715871535238285978998202706929171151814803067799245873630445731541040130137123121155834932031124357056283139169606235230123972150682436625656841775928668060811646053727220590904805433111720296395571122386494135318364512703237057122788369998715517926082582945040196513252752264976349037493992108168081206337283519099230371080402721146914384237312278451320853556384119798227069903918752914583193411085315150340388708645731417169463207213928848280094729199447251105420878162389670396090014862138015818820197641880011091927922744879391808776234855703268327360349969798353423766686652481735209077226425237126945041865055253552174241872243087142268689382882153504698127475003230402955826838957473561421186349184471234138652349353439621740358245844943844437974681767014668249686734954899725480424749206169080744064272455306992569125624754292184411047567681965711999954638195097015453676458031300151834635722402121774177517477505012690645611627309707275665077124934293987389746264850602517606283580778054541628040671387450396344726614082975838212948605022907584252401539049647750705516900544246897617497329268677959530599810647190401365855994343983480991411806135534344287382397048412235988166990654366238145822135470394599822657799553093876277545194883585117162688518319178502175428293603992321965861572147421660468484860130998109763310290982369813779052585101238824111381916008424867274427449430909468803399709039695264139432204759782516563563236370535046223595234429534788492466300243535091917608009838059158130341523033993039546865197309115753145178219178653843583885401214284095911536752755361162746095911952484853167192434606265889542937662035874588063021686818737101385008234280788821990108644850152827679753162392390580828264224450949789553962105443297791987788032585824251418357553336120241497471929620520073262663602629635866371457646094177197596008066492402394878480032579285104448012981538273141953061845685326875859941883806069695880444289953245115058541967911379521971734290592111972961710361865605232154777686513078751129289840562879844766532573292692002038718254957212314627134232006766078812033111509905131373422643878927436706080334329400776689566775812567252272489632999756911342260475311150407088879515236526407552026851344406016201911741857002782120007560096494474762294609589953954088236141246497036976975037720924427923148424426561949667230907135794399561876360847652174202492907764659001549041566670443612963146440212825086464257542841501224430740659745656300862288491182173195175395970821859759527433048896234829272116820289071588744455004909812725930876270242295947733466036518717144801482056807318262400215029331187661295018677354832046136255871867800586594815057013784083049193922114305254029952621926529225726483087970198589075813367785494330085506692101226195848899736629773386927027064033873287715668028159292399882972400683413748284757388536723275635868474556356746161219212983145546126724820152464585308929601547634710669923532935251399024571521065015133856419031630455186193491457285716246376651785858115116651093607299824963040259601218795081566870605624629974250030491474918514749611345455831926622884355242216857127379164177487705995378074572264105594635859062862039935392067818168866378497095894085023711823316100463249023181899904017486946895423819630047215912119800370677407394052889091715178081784434525135025071522976963265486150634081145700820654187180580054492893699065722904145112856478650814420455328764102448176184209642332410642879312965133087435390517167997359256873995943459467789177897223524071638930986997885872206217265224349969116084052275564981565773475768033986727203584702125674584372762603428274381679904588086975318200939443922424512116625095441375189627210309018031320540265975674416615665678594855961640972503329871506038079921015537242870152994547748652298950298673787008045328535873032541717491348364559162556866672738005134189945125059648743954010524107025264288645098224405895509182304934776890047813570431482258200949919794509777373049755566161478579327932163364717606214768125517203968411613467298658444337373958219845291632278352585407576407021647095439607718874897158469988001048546556445655697608702653426295456036562332366175353839775998725428072948982836022386504422575044476234159454562164412402389183419365598534947899705954967390833204776727049725595627364656082060442400263709909171932952299125674934719311234534998821002274226991422930178488300698428127596988484694354991284824527004564108688325838029174281225188889829027083561900366368844127754416681458299089358852707977703655333745791837923037544221063291163957355008865116531349241700177595752899375548153160864687171787743123524604548122875298808356881804964903488469583429224843922710708638222457680081787287458013102969533534844189301650581206172356255424651979018114194343019293664940423360685072145558960461375239121042231338503492244992760106260505932566399277778808653015461348961130486154070257453081524347573088617676395504878454036211538531262965197430954898856017291569154546566391301836394334389389526868112164448522764794720975486995075077133905610429980627453561074512841727279217028130649158612029291397508522617354057289005753031262555787334388605520485949867020695079736351885285467548823109343270456065314763850939511913571373132685616800479002151990259742824326783462709244872760571599145152496396616656826090452012511352424103168648676096339608632116461258871766024682409550805720802558205985451991434747360131161566337063408989864466293812504307349627919708822376211087873170025820046026698096796200103870248779088417085267883874775868552760759303290310186784803890264008599423456858614540728072406186816188514038643309746688535131449577918036089835370438795327360124751892057743698037061802421198379130576581057109370479488522707586873693628796155887523222700761385141682369760205274511305696994763731504924009068902637822061335084995102775574110547448307510344963076886453830689334620141031992494463707580270156222500206673368119071786978593848958026105102224801883086657961359794125382923139544253394660955016873183133205418977662231823574653037096049709218909739375073442868360089596357360799137675393707422523733585880713809641278202884528433166881038492978285758183667927613071779879869890245235316532576482662123423349831433868056986565734123234088258174393798186631397808959305833222628832670118411142377745391539199118487925784349685390560192018432156679363141825396270634088597517402998709015612606762414830794470199450456555600300519440116310378704120586021150798723346682662331982881545004337534464415038621791546390050747919199709571196036479036097145783224386205258380539127464460379632426569061288551721264560254654952965336849199557563226746006255011567426929967406271663424056015074966950173218074384981473766025966002995693251568007815955850109667267098482134205371142919136634318899898375891201514151192157640830449604161301407685611942641842433253620314276795512907216091130885060651512736302330820440182010113825531037289203612680257777055698901718220572335518154515778592113447040633745908563228351834553063005499966834278756199819977916698258416263725633778796437451021969020582722052544552427208041312614642804227122475460966024321930893795475553498827845342776361868481010474760580217927093790937526387501410914166806681692213178594438904431835096242827832279111760203191856463104886574256183602402546965951584186844697272512824195675371682974582177013568597791125306474377429989234216671600110571341023371658065206011805267428954819816157282863396845336522926578206755060932611585752722124957006389355124742818220048534548311041144728531882307390096554546773556717061380138196966413190274958549179386578319096198948401790872287507631145016897964070675982581773896983594106381564816616800732138792366546329507043126364644313136828103778749234719094348399990138504628144485567264742895347553882091326605879583396455683093139353596618161637526364875694990847795794163803615315153745319463769625248587050289829041968424192278114287471360896621678249011745091014382610052829363535598859427073987282943931260789688584032895476926425237460591127716181206629343242655079119782303191974109524547759947419117652845606814559060942186285643795386728836284558663395326765236093156021458732092913704854207489467619052635305883214011405977034210644591621278554639088304613049779542697872699366585476623761755614296941079995394552492475415344798471154549799535366191294327889183526322414084837147579045373517548637947337122840130997269491021581390395221132202215375019972040165222883209631184374233502001691952199275040053402518619303315760525381858750527230151726604653401974827170552044967707679191595087695404489044020905836604711141758432776247042769990232714910509946177064982060890959687239057061886883208904980167947526498213527957303501386242117867565827056321816587663629922416986330348581649703316416180046638118585603781324950631140039803845061794893781562714033920519782754405638536734078434267338829302543496064564657422287890299088746935858985955237774763042571661935211259864621666654454790496063338499470123930109211196692830735321505297284375917442870992613214315807082647621955843590785193488523050877938095784875361557981270960508831100207582204226524477549027436676253939487807195047428647557054439515843367391369077702137411693038547778829215192388737113509632810866104652841158747269218558097460230953381083073640249675441170412768749378640860172009326965077591362830175333467862989268649335002651527307540273388208727576091185026081906176229266225356718800166242465259823522585849924797001005343461521180827123250655624147646534871116527681938418405056819060978400942024332094938961182726482216700370053907957449556198207349737974888256733433133222609334505855005084542182922789561137857228485671351147467027196312135477756247030873979030687523120144509960237917786200871114785004034501708459827312998401817040094248887379472190353543018232678553000016156560581407633213996662830870020451473736548292672080094310989175811057608570711425410145908624123840160211506786456930105128660917934843146457156777340023302975747558307669205219286622951244159142510860994334981253420376829644600882532152649663053206670720283848656301562770434477152856347942065342840268232894964660595649393700513775221319403593158628498267573237713930777025111465710284760854922120809993482910338593034533064922701999409057866889518532603984206006194122447843128734272940981024133520682591657252224391238198964833657686580668862801151282602882698787484077108648536265334915588163934485520269857859930222611432359511533181898567987180393592430607980968653726041433073966100242012702744585070255468396089630457399036594623084935361122894491691997310853046326721954724691296337831451467290880796154439466490290044409413707517266892119547083192986970855462763900377360214860813279840918169217594438748321056852711030079887186757081477807769176874522968642182599567086352467124142890315374860445819949585406207909153649379703268589106822279662432365922344784562113402775822356340673793746887622789823328456488303295696154982651688914484354140987941417441016415874088570131043396543136802386519354835508094814760066532777867517882923513392655830411220106308124303389751850117233277363441252022087037818386302170986532651175458509505797805290933114815665548560013851974910348988991080957679098383798692706412541150087588846747220109918085989247327628112958822596779789355415461766685791905524280085266443021160948408076531246340471483681604230788916656992587722052685245774810061546553776279233975080019960637875959604195801597292849452487063372762846807870019576450624035779867012068002517868791609108723172212745146603946657840553117469667443327259756727161837454094703657348526314995085923004521613401353375226136403155853297039771586974846645722829237697694815522694225728969624643417423028090935788507885084955202587361640527268246694707806894372135604635734959823943671961582094731241980099894308064157723007601447229111133877833657723992343804717024741864723885589208077287857695480939377612740168915694239505681006815395972548835510786322242912647791985657570370646987130370480789165176990081393223233746697578564171397652281184418971779678009285531531744387601752702018472643649269269539856556672386119583251744112117507983310413622408384851593407789771314807421137888833248138275688600885234871244874607826679970980617245534242190706390087102497242876139380442105038615432671957767285651460686062730398491720260147724687376805280080349179343629147311266646743786969098930226305556813108896591782445941628856661088582130808377274775418193919696765251591702841331287932010851997735970743502405078753807406170108161333374581833779350396487745214841579396947390374072940814644447094432178136327659693026807581406619110893834706245674479124694722402217608841487757459984671386660181716789903522663020867335275240965261982973417224703601250892134901749469572267070126223474074120606527178340810121825303270569495688111857073787522349992232422880535813902296339019880511658259507731057629137198544168556387123148502842308779560379625459812278716452871325433801873698507335945767155782145287091653457361038757922717351293416560294347269702915830009441067214996576105692122134947891161240665767947001056919210792960667488960350919229781268691317226081376853017559318882738121727511834943110972899986941171596207420138230388833011896611818672367343272493251306908163504749918296235622551819300472675503600529489475695610558546951930267552663924945625240357982402375479240769854974628450935222039496015564056040225037492450943689502926920566269935725559120852595140783228946882425808155096713446753736926488925741540228653228008773143572512930452111123653172141385558379128993946916938009115692270917628051793116290560002988294700452002725224596131072002848589481906095751298858767481608739723531144516640311354196073840885803278142926066472220704167439641306523844642562094161418048052583167600625323186412148924638349974075514706613027830065103000299726896986287867361429122989871272465274187325230089440013804908632069945460802827935887030381014162019433604850024593406265509119867139360392884648023437182862168450738663675516708398599786356211470230250110828872283496320462438063282657606741925865795851579847948144016153108075229154319943693812209902337347327684001928396733774084271826864234796588252720601489736666452772801406908191620302528009241687520945259858801579226848865921998305918180240693950241166369912785541668450469401573576737603937639221482073272836774356655968213716974048715858437375926997804418390033759225538963095936610758336132482060931338734200483284001512620301312319826940941492977198848033741326610634634618224405102580617496791364251177751957488429360663476437425736152345995155739481437113237517503149368098300932052975340188028641516165987738789055247139053652026405416986280292907731429246891781893269386590335494475811230788607693771414703321987260474489797454865048513576449501185447111150049826246644091250543935912247585042200313485195698236184164422716085172204089237682759460553730968601809681185868424876293238121286828409426705492630256593462439628895738237776334242762499802236284234231483061456382154733150061075491913627845096140170416899433759705649550731639822675941192713293749380206637082140048072335553080803382592023660036009311349337125497070529073966261144245675918574891981739470302488419908684600020896754664550897869864918475171531243660456434782393351401634562070379144528598461237612577598555711394070046865646105840515612344896270106631644231980836711352838345421400922424275671214007729880841483420354976506337218647276807819420682957659797721513108185500976841958032060755427639097451877960362977290323367685853419933479418878160462071202772159984846417563610781074039891258719664802969600970257210877304776521079758688190017954746960609196691563540831073493567294504897170140516959246351566442313701584734427296310042514818505916206910694171079109583326006976306852977398924511347430846443487185785583120153871330982049921490953594919811952449787834240961363441192106184912922533555407349069311126413366191327872386093155165975841218200600199842788779583534055277938542517858174407681678506541684154300846594736376405024115175835899269920158655391831254923578802713389416663630943690638419299821253372928249683292106832953239879260630933146325317068412855901444844660592323849937028486083434409509747834411377540245416905925750667648208257526612522678970618522580014941425435895881533264222925460656361708914797680519551887321624700387178324370859794387986766007283283915792980900225476026107456508493242759359241049922496144717187460306314338338781803965387680487965486710246529088118548049326606168768208752706340185832862504340774308778295979172171681123067180823963736253581313510872065536047812004163447418731347585089662423937073305810941611829838287198187551932271061798101208432384081193177234753984839227092359248407695608017423183278640626421522581172676700412784166394283179205737269164479295089716917929094682853873523115733418936541219181081899460380077337915369730291384778906502450048076507687917240498649612414341969723623174069488576736531164604100105998468852759725729531564189823760008554524212453749199381796513443820399908389784466508200438121441968182870760616223789312634313712532101627086741067880752410148830337154274963164859904921225749232240517950651032881169492228909513520982474164207088000793866868600563939896676004747834940078906627025527172730343728212403053093191597181519914367122250139133779080653210640245962975643706194269711234619642776166578114695990808635032217683049449727129903050171834900014323964547431661619549374881269266862695596840839574531519389353792975554624389277611678195433115814979428626968868553743110969763445328043860195610629751601475924257852530079435087333833114956544772194372235217443006489981184157008305276537615263859384446428475811923785540425693366915265391558888972068547328778645835098038291689194864080429109006479018334718015126455205724566352747514124425006614310448161020185061698180817961298536697504372715252419642097948991833746601012733721303325517916862197164990674224711620570569958444955018586713000739083616585927056382903776304330087545661248312114715408479612881531002780782711413352230428598780792502180038328037331193255924914195408440926195567694839165500240503940401090890573883289295446419233887656896017410435016091846171998966004476112985253943178493960125632574223407507044754571929529336229678530260576685985126223825725992815280757888975255599018697062654047155640424697933039748141932471543901224646547470519728737018964758149715509786574828659686565767550821146695047700450400635256282872875565408683888660893756776828857192869636761784483879054715278772040279491001139001349902206061420003032023240575723739596487335871157439141212962875869289977256817285369761383649738026342207132639569370281560749523540538279967476672249819533303919530803866769383937039347831665644752474025947249575179870321160444843404974278203174360765500813905432458218833354168224535985797819222067913192327640846998778285857640004486897937769487796689602141044454242367146416829488288373641928433396182942663194763037776876504381383441187169668077291580839612384841140510201152337782642163482448067411815638627208836658502293020017350693944493743330784706947175211197067855594061666452665111130476865190669554085979948941559548908336563419540892518331737452688868507300012378621588390848162868638499159870143615744600864585421513387939353483980963661992795015694440099483515214198160570825254461016940975207001797354313250737296679761720332541097717429695190462544324860079284806973051400239303440144491467458778773145711417840329786864500163271614659482790192355278399257080709729168472573885408740119545887109133643450526656879444075280284283075930141682762723638865243927218200643867557818116314639655734114051555551347952013916698870719467105103216710767014754190065919247571673207292641918563164821936874020993156424997631762140618008924703360447065141630357660791392896610387314932963599984427654284706508862545400864294160767812791566218481059174679451291832596750696686037012998375389731265824515292455458072100651007005813690855351805457236540357521593451250836081881830579412033069919328035839582361620795157315846741329794136566118207354053718633930465543981813321565249585925580601851099177866653457972128700730468756675791468885464525740233953997594599891522520484434650402863363926725217145887342414045351372196600763797632472745325697017402066636696498980253886876030414953021162377894301223299629114214524525876542268693682802854752314277520913785307998829055375326778957158023761638218958713479573491049997053957378081143646837163103265936957991448485604232088212828217665275048152256019025085904829369447836543035631318125984349591779337544653962321639736646488449508463529815807476538598373618327698648667603037421439568233136945219347062061826027531715064219373164802865532555465476447095065814524556014684436371856622603295209855802893687329157307263260312193541547483758131073879667355662608178859047876607000130838951669594111645787991397108770153935503497854342505784665462820268549778327040917916193365717940197976781005093718364652253684580169419733534965936364297232911246706140858369867021309280537114801228933162875065870952588796722389590266579096122853842675073293344984990028768393299478743554183609443366139767509912109365170917446668642244058245681618424255102822787187508285997350562895162746869584976436270874538360396228654598048884934850658895694064965720586487219309846291909388530753051863860394580081204202462637603483046614257041758515735763518858571189280121140494490989911050761878028107523365531789143674061938223360638731227976200274783363722260332385810836203137267781614196261026381081811708397726241521819860344749977375104660479076302292410267946269776574768764430572788877015117884075824408451023725679441582530600207613441518911184605366711329064716635352395109428307997602426995712638607079166883411634070507038228021356938279028614952481029088053501507255088915831854179177848841287881815335501894570178340310659538180475255517346998814983054433442856584311168665513231314266042879274711406895803668846829396060654244248540654346072042823561989204048683859988577657329325511950505863719788242030562013281433494114719861304982619219567999826229620189493634245458161072058260250641224395754555775559186103353519916723628267109218625946549127837009419604612017260380723710114040419285333237872201019566482500957557031442935138942277355989921174795589865415717160931669922339706973062679100000116663176727352481253223886428148659035526217913797653586651793119075054025001232061080497309316652787802599563432524289701909615078581992529949470492321729021750741867475130494021735914833043956354479392757362318849565241135407171141004866252571561348284499079119902424235686013561767247330846481995700575578461207216742680419257845232664422185973150248430846100213833636612619422061101154679808729153952181245517130760503966890508884207407069933139234705994989864136247471576656640811729153565683067604352476757244737497046039329152636221557055240954396836089797631394917464173078259769695354236287518254914339498389331065477825985968108533915213472604887748705915299338628046475551568988184444682938651727251297502581706414267992389424833508035989529538941550405954600053536360933171620671154610646942317035498081494126575720255469059340116844895792867115474733977807786845963858921261014171649484602307820273552924981174829348788067900458432587410315544329503612731711505210704622003216921923243280359160560579922172459267240504606108806013237086757809306399434172237656701524489572519343427216619227692155734942643996047904614957137366898663155857502082748894684300113590448422093346231241341231454004384249861600126085930304128462930767831708244028882567716787873601701463762727400061828160464457965182550319210023445585639044652765772519814695619611423510931863698492034677312555828480943219041448810604879853856171791380478859284221209134802490178231911104567820557353702791821719703701617970810648862567331226485649406330309500494961185666190425386860359113487830131103249946073922501270204338161805053945403510668214748281037946762444303149531046171802630578306832167460004709994469141062886760219002871435935053929811186597225484690194646477821966998629297876053313489398070313727830522076610660265305155253477413187353505770991258211559919488441443648665037951513734912132480371395822793047232451173143714259481552056488892399595663504046471043264909655537553233207133151686123489877062299997843823678646159041175995467766022054969102187187220274911142270412434560986876988796946403398814173980224358099325272359460223635519091228093914118182649325658198372774874450434363488185075361060040352320783581145117543158418523327169007646735021445739055511639672884694011497198822219629895069595267724127748862149759721122960671298296556915157903487423867388495166585090823554602388088811935801735362526017497183764106757716018663543695400289030163919728562778642776558862790712983177509463761225401814864302918198452488159872180076071221133895859810248567242207342145150594072438185913889696297654360698310359485579557637484050815328918024695042131000049681384851430866907504629541771621484707514129985733872364530518477984682569678228762889286463240514252013860488163370270331259391898771677313134390356532639458632881278268202899496215093446367313806348111977693341810451687574622422777432665795724791439714215483612736345706223193666363473614670929289253543697412573831607897614296717133891054318930567529741842256411371555663984219233994677531946409286959209602827245085397994377429649611366768448612955027268973187797936781348191921101585025609397347286016197439601942163073156861745194629145844957387741418880639636245699707440797356508490049524356456665862371939571863259152737748975559914787794064929731418234419237048904867745848623725808150375551214965278167104762958799468264350342150551180076611608560689257362670468871580160469873855551292130905659453661499181154192810210423287510138800054909306452345433119148570859851525566480159445455833719101581794630248070404864533291136443688360053935400516266310429099035556640595733022612980067083298768356881903683353802910190697141471404362153828082789496703500158565386004226959406117434116386070102848830156071128565345341102574397877375662382259236863424055612613792144783675560096119628922185694610540632240747766885721686401060137680011472034108057172981398186363264360002400930420747729241093494309334896647535939810517498146343474172165257764083541570273364825492012658142897548290468234915646929869988798850088888469904399614620690932345299866325364152702954306587594563592328781039817888158463751405146909094876397345712876606210663062151805364487335013976241692907935424783987270183015980611215268639116131235613087322679957341443640541614510971657207312892721891361905371029441360114323658425306456496640588424821058473722410116314021885758214322690709722885283114945535574863957992214250204939689328753592525993295899266560884495706184856143929496977598823281296354241283079839691756717391313366767635358477035011683788750314186068337241817818034495907544815236700934777597209560299815799927614288667980024800735244808516100388332704196001060420354682655108883451437937439456709116384824351953470880607009935897815454731646174555478178914066714622367438533771511654848060841672282920886999301412849817623522135293105038257500697835817957348187316367387940562797846432807648695008165486282864031093413602152232168325645003834067089235411163120027166097214756848337348863050200680870714216149221000281437117992238132222657504195318696613517952576408549093535994421290028976902356703316216170922457987922458407437059854416952284858071887278713046893803465919442117638005172111739549193526948710127251176454967781781966723260377696752599376776779006217623696961481710441854818323331850777538428553531165005543945363560631325089824344336888898456268572337395060215487671838041693926529569052468313220828096180599574984506239019789904803772881535016174980487126787959980098451198643863930170922373487619331388934084072315802758386416536189784694882149270671657365197500944267338595619835562366606001697385681187894951520520057265199820382228498166441313089446704080290723546522775013475107336774999138013707828560346336313378514864452724720100523358574052229974911448846475420281075553434256512638192089438871856887480729780289916713191994290580740399347380852353480844271507537735806918649488315366702738735327050020863722566650212724643828759757804382143711764178940006077209055954082214650303916979014708814306920615642200592543422655171802649165704434625158674625849097698076486427492601326156597980177463223029840262938387588188938463583612669990230269943151184164773398194198880046808227159405434030687451764270488179865539328945550020253424533464563498929996270758569593748884945494613649339862930631432350054433539432046711198899220461972308590772470657219518956011090021141565765312839453987302085252747402373544901308376091602905518251022639035503365774256783351880912791963889392775240372657722095256808881953676528088176603689421538688174977710390091044376463870623969229185766899403375975353468479237305914329506629142065851375724996113253461273023161329856489370290841743195434256871025197604882752142954498363531793166725910368856470689311246635829565480157700457187324501553113097197373755009166364373565320527520638736505339753531762065801460870348580584814771351548292638133751707789581242372021310286490649793409181213724030380113846106568314526364226269218076759007377061055099115747816901672548155139196643015137001485128126041101047279026551986940154680239316262631637418122127370819041993894112983492910219895543268358525775189873603406831523282177793830395971057982740939800533773553296457875076487215594765174198812534627687699296558330712228227010706198079953252462751121276475068957545206712478300301367663697247454412496377938925793628090765069235632034224931537410323821540740172978420761107257587441190219101214073032605404624364999137102641876675047504251669735748794605227821261093021191852775008810572091206223598650859103502371154978962287187303160790597875274914190322000797521241509943020743083559593492829855536212806469566412297628936341167556922848804079027782231795941303617068966194802678088473580626792456002418019756747466962959914787047832692109235170776245067837106083508523892888803536095432506725932572007796154195152189039793899647738722397372509284746746714436872700938359845456996164520328763804577588850987961138769302580950219483471757397506240898447514185994197797306403233819693211918701054518145369331918006912465939383707984101050807575711676443411998568993273614824988671842663899781168379790405017067600917754494038210307209395786667783303436760094432543393525478559401284129139066773870020624594990813978615376504200083682593578680219885002716239266884853330684533958431163354819019545215421244916952003350683587911677895416077348516865446305414862709773659229692846704806760249189040308394073528106040651280467496196899819672184713024831456040274452434588363249222051807599574461775247914752115915938336656277812162306374586674278529337721422195193659963103942679114732297084398548665719318107353659842072950623048957869548424827785352461299783314437299483382829714086096304173688844991914997482086595205880462576815468696756855831888891113775574478434633065058523106245771137925122601436365218164217648925217053648113535741306080144833129677303870488488035432830310145618766234054272048686628672852677578057907339498725586785116784166678471257649201069685460616299913859312063646001269464469280482613182298145176124725349127037379594686126135998496527215806099855566407335901426680252104924729249822186184153066521787085973729890595702379301613880988329764526939094831269389392810765540636929807723939263685656232783906189914165883003639433498096513686171096574520186295487536613990943171037867526412900701627957983955607300330740426425774758578886007041213844373818261471247837388773319607691665328285097449626386305438006177464392720283568337969597585927480079157685112692129558608922522708270124008809770336208955814962271337970578242149404275295374518086837529083606667865098829352523171275726867550671237114540362926318269749894156761499978153137063607299953972382306116019232931966037676962333840945988364313669216506588033833249362689572490578553754759422881992110887177646044294419701154548294493506876398735992620737791790584287724779920450424021706512945279525884995260620461423772599878554117976767847348597010239785160907767507736331327252831308556801419031268421643768870048521228190362719492650471330958289660414191471830553822111328301359301479524328173757158603121642372443205136506902630286536042202312111723070671708115738930518749562451942513671468080469028616896484025985864790578338104855207187718278670807798230281910870667723761785200006714418160508229640258670282605104638056539205960783054441562659139899631146751161031598622526749555395113202245910627689739282500139848926664203561825366232619611355758443530434893281702153487118518697265710875606181387889493759099830528402967276256988072849446561780824329938074148303580998305045992506886056967043192342306471158092006311898007350210708254552669092169589377486893025554267680055919767384965538351093596588718888099662288615563962583193437672916148771459553932212465733859429689699487884203754899974759094587195962255773092647888728843712607559581494254258039364159896813601832118997990159770699634599485713029040473534148494729570781070581659078087215019128155219399316605924177664023236699126090561275044832755723990747681232611102601214805192326577501468603004899101331399065699942803688751849442191078882902156838805608608878830648522514595748469006079336404488315515959808600565050173008355141663732692357098549047038176404681066741567182720186532609359303180877968131593549567390424841522564038021174474630625848575813936322162880915424036883097726876681132410540424685752258642396054548823328050262359754277102108004773201430885697446513339127679136256432161875498324420650762291627032678923984752046351461085084678248118086207738058013712634644391334029289470718716774561158067797196493259509915420601684866180336799755572407205285338346304560800527735709242350558426368285322097917063723465527904807192522357836410077227380796059559672211694373772574133202144234472109553716657142000759930345779862198913601402569608634864912112776621967862544111630653781052498495773542782376543418259961495176513463726680916390614795370371692998953188691658408998467022773324825324465321047993135483288884686541894776658227819794467773063136482996200466431333814918223980810816285723270236273054334080486505149426441715358120223634688042134715088416742239344654280696854830416686374570761296563077658641670848435345940961059653711491425555729901749533257390073024473473605194131918005694591714011460593095179957758133128326766991381908491228517832254960755778880153288905216587713533715625170979749517221598147323654394831815586950681362036372700655609374952455470707507797441974956785453615525835641011281689166461279332300798462113575315331865453696539513451459899976912962865247030524245926476170124880234461833502464738867893295529653391973374712020746825472774095929011350103508799276272103696293137898032956306207413404498663441999468593400060976140509021497102821455539819479173518874070078358702218386977232117840007672425300156931815054112375142605949080197075667533047830266268947057141095909097671400529814829184003007237712412738022009877032600318947296674819202102580521512489188722992382729859245742843135752697750478504822258004492603765623520396609040357835506703003367391893289564377834117866310050201791312383656638629020734956171417740358630817837219182694069526474415299915577126049377464420733443218960194641704921012854886270445631773502951525259799975967450989562192627226670443482645781070234273058384416909360867175686175501538715106404499760415984232009788408348032728904535807508192660310661367960659945306150450971967788845000868165782975448793573359060444972668269388064350195153979496709347463612209865583330789610633722776745345933616526096613386700379452058502317555736085740149525352680600741737595902572676187882103122214237391146444592233072048338828691309057544144734384311266325763129572659123389984131215372618969893781884162238288988806074525182171352893522923589873358347285610187051834886793483391823793796892865790573439821957226467655627383464483461776836849154406970947579400479310973585983236533527973848112142808767424466452862838677497402017476024046181215202752556842832494518011719276919250995052896105623789966675420152493560581722611064327828530760344611494151740243212232920400487650485375484019061912355503382058654504008272370757491071701515228996607545829659371895799650641566038023693966079875114785419051281212698023519835916751411758067917172918821479812321204064317048404243032478770390906691080130385905020971313439950800854919687078659153071593424824163190648745339287102188493408609198453023879867164592648651381307826310774602873355721962058640224989515235481084008850630895638679645713540436228332702610850436027955835370195794663147482704808240284667830791850334602002896844605793463766381377564598011445982908625687357802920070435997306257933903731521081058966058683742004283144609816875690103823593812328332921981176789608936819826197737324516235143590895047096971987661610997782440003988949394073539252284122702545038626678180458739823945757822549586582096600251473174640361737727416163883138824129591664067531721052209914211630153438913480306463605295945662813150947607395749614117014755511397118727800424480319765826081339390361161710032361713159648989909581659995231270840347974552734284981170907859722474714846364264567702248972323106617147808416912424719355261015894500446812963903015836070882658016604923515979095845139090285935051387985468042246566373657595653167009138368570523865708832749543570639953411912909344249299815107601820208399102430077409534535568945757482776640773222334541282378372324853485841203980971072142018064545124761487269878294775460454486495210599331183583188591739890285307115584388110235885744390528195994184914325771721635017709627131754002761708591131003875833915466719481009529413852482502507764721650071485422643594798009903939139571091454116698337993173235513835176710510279999550929144684956094993120485598588996900133330851067018334903019698421319583398203660260378823413298955736997964471576521962039919751294303742338701245385962039502461532232250630546972527191845117150416070940620105609839291811417510913057095658136972481930865544419103315233933629449579471238450730127943001540179941986579826737752354090577620570513421969191333701437471147511992095099724182758791238250677743369367110887894165634628474386542263525783356219236076140192342567590802416213334098659691321638069470211173744225753120595813103529154952697462258880058682786688175081362041859455863831801957871982739761540663477467635000493952135209854441839479920336245427892948475019291366307121491422188313732815821491867478781145419831324470486795440930125301698141865580862419791603477117978219537890078503358991373088625278262544106463469862708568199831653460545184868100745025439150568701755228827943735709696367209961128443068240461055615859759315130063855873054793587413066277212358450575784082502107098171241877028497923243782497265004817826848126488061706519208476794087858693564230447535800926539794445771076072014179585356347006148135680050449988291866276168190693944984754851554445753883495588296614661226740464240727241885221869333219145026720567559902576011643387839567608840995441547868431934667042899693807411308130124933498853964089131444888394901056146789518510757897475751974358062902714709540549425043740249970514803675184391204681298888704959988873754522725189271831271172935903968744071041886799825028892689102601477205367181279567704319112636420398596221334015497713532564889409512726479160108759581305178190250102320112073483332004711212730327594266477742975391498580682058411263363795071310432742920738732593732651413460191435072474620434385156258220473187013074150086320947818781793407280933088311910729494840592710739140321876001355959584446236406609008856932911509400737845941192512588949099663774138099827602614411275754096837496328883646750621578744622433468895900060106220750680857086229785239410052490588741787167729928459580380819148774690268400752699981047042718980624718089187580180242888949246392371604037605932448371567324648612988082248595253064496182849357066865448465062822242864265315280309632606018561548835216583041675691973923908760343681783183477698634426753015630811367363831851846418888621562429372786894525341435730004518873033874773156224491152141048730074543662131192162268693519096950369354494276461605936923802386964608282628376613724727716266032965958306564679553310122993099425503788562207765106425051460657380874278039220195093813440603367928723660053251754972429074626532386716446604930781723100000785917507466384944427238481487845527101977155594472671004900042767048407827756992171860854791708613783595133945025472961179474015841945279365827579078779789458223553889769670931125339431454426911959346923569124714990509893398191599051258231018439763429106278191808807807454424125559503226514694033767293322820686614596705115155993148250968241987943607825048900521102729076971033490589413095902385427282459186210229444569782126037950898937999245097526231737007662667443980793945036526090634264088877774674913447621059268177414068445072424481282739185854641403088935404710767752042878411303569863271498949970157534445656543925901933283887981991973139552384634484569264689574945312284519220098631883818389513005291859436264560566987957906665694316674938610026553378138409974854652121772659219685041394095368816044393934545012543765131441172212482551345257775086430035201100477630786505763807651935413906082760675266989491107472348444956082152935359703699409876498206332181986931621462178283356763039326123020220579481556532452905943968402655752857544031490923179656716735966422310052341232555265114445758183086150995542575984537508857397921711371125500841776407146234237062516299599901880584823015561588576340603004997844077913174025812383792382819222635445246679193813191048481642683599737335613649663628081609480029255262464828586629382681571402913410930752372138601605652762741380662739727165596012085804220803584110772327444028545075515191550529678793107887427687562387901314041416343235970038447262512291541992408589329337777918846588790021425687964009949276278894684693633334156871319503061663790103288544773829669883851899561537607651181569096126225256761496020199869004152929843240992630385837818002701656548580048479769510228198947428727328265195690870568754312832286409663226600248436654630703360341563758779393790027500072841155171375881536428967621022964565683272475057955037771847527849296043484531670479456441489603057143303591242150016582265677830198009641800548791526390261890527327923672485331677695070546925726188227370502597023323858498788236739894117644279418858872077062006571408193755568288161560706152990025445465872203191215240545811661475463267030309003892158815284689356799610238344246377454345209334663466908269646809521624306338242541572702743881547186180076894071225443751240434168317657992270773444658767088513350020258050332600462258547571296613663811140022941848925113156135439685019394393266876829799492706148722101748159576448596940296170759869604539091276263364672676991577440450996825771592034076010908850809568123134646292080847327691056346065981216032632765110285028522209427613568805809931739040619555885038105179137096932420678153009429889456972744428118622166309179253940023707423620707410032890549887829267510871768427116859423428193895254292497323615265643624659340482584207589234677547796308674446864805042833136126312661079118027229812158868042238348909448831277882468089975845544329799763949966024115644942258413273331969228656689932738995040114601855241821422156486802811563622337348338993748367392028833957602403924949693287556389132709981736139727164497087883209776862191582020751317168869197961977851370813571683396089615911138648284613710609232414349677472267054007932807511476456793131286619857615323422332926684269184688277999919741814229365825255369336993899134959430856388807034491416801299277785783620956741341815465949452215238740148750882800429949643132267039674211265798466470402114431573008784748490909694941233431786999260214965519951906839299475444048825439714251679721338075812557917588891943613455028795700223048527370099726413020742476759178665956813633533352603804827042640486596723751860535310986712180159742140830208065928849860444499118695611385142759624806532927709266303993271494568108881994310490159374071594981535457390689002281962341049561292465984563925473386517297571744078775362436424400756304030380067098440530438043882147671242016657812923487735944291490885412879385837120752706347565170193694954065413042006329184315828373043476639676743250351833835986437431336466403376324906518907691636711431265968602463361191542407738044084709219357414386723657096730890545287374480506307619713957854886318137448931987827330535782901101470773028678943087489805257481645205097527141990158377472724763158841555224821461853701221957968320570850142098138248053978373087316757409929594725032962455702964623314296238817963399165336827253228435388882358664632159540156872673612413287888372492338409497216260241251643667360347782528632294660133214601580586508803438435480816467251198688378822272106122851584445766482656227679534758890401456203747926489037794194422120451357712931303815148748372945466680142183436181429021880592204526200355592090288664777195837961365315096382135299441330569776575253364798327005042449479006423381612406008580796832993809273807661100223510390889387352790029015174644114937150449874142034781896814481233006658452434666312421743296015285777846194502153764431192801845729850031742456728696238527376002083766338810450813389874907838179907104192205192333215853123765978588115655147964434389345116365647621851469972851593019051426336698511608586014631571284845363464764261432329887589204308020165191980087741690224239799503002557960357526307229434837895359961591286011774181851085438202531670271993353765639484906157968622827277227428080676664753124375054280448233408705084594161856203531427501848197495094974594781414716238252629648819783233430147327278506889731971919280528843264939155025728470779800560051813535861934646026543139947215049207258782608820693463120006567431273014436377821672806797028948175429613305277048599611761435079391368796036352253975353148727994158971256968215044508942839480970839588078548538825779647924545156693055656502082564798804081303031894725466807235976703692301335197065747355742251083352748489738073763377158971060176889110499272692595560273366299052990267395152932655630446561821340330590131416959434355567589015509043015561040858226041513386822522758725273885265281397474575130451855254693803757838815182433461805262168711207416775685395080862268093150397320588084648762713943484392783120643792356623569917412693792461121059857130426994968278230251999202977576999957319112389506969354798127266529312244357707914582528691745533897240298166121261896251857592541669451183616756493659890281122303053717435006143805334019729038983857093150432235896159526969009923741575134491499593597732285298387873125309629533448642433103674153760075253551400345469678217475934196702840492026083233740774785007974983000597526772136655729876466524924072036689078237626351554301224926865446822792568554201259860325512986749479948810205288375295144800037508447427977255727227401367376981529481482633880786672585583702729628723804677905617880079439643715262629780213497210804801555176806728364256729866822639847339955619229138718106175588361836850769346235089068275197213791252535014616154370710829894828113751695800367245428163504502477121304020540787575384288011170560003645564574084025585417771427778881797813747957810694013044947953300224199668069028501646031627707742524207111712365586503931581110888503432846677550336243478046880845406751007972536315378743472801094020600946878261774270196368720566000846627014086675162003460877928447080875441116334555177087217150105290044259767785569474046739260284122835418689439738748210929366783961260004416173467323968899036387161246557427180578248225308088152034859092587640990942775679469814391095198854164334266502731160329626744828365883589766083735859345963307063632522135661303401815072163838420771116542246803389236738888557193840239031194726431778922655320995692342567740416480003103042012175513635446440039105126208212185230430110201983323890215274250083353537670767736173818560756160352545682180216001362897176818184314699955521350389625893354100649603464042600465963354250379757341952123399581420645885304409654193008699440310667149466103347673575034110755287358606483052780386620834574530717534770014522441537414186180068102706040165554476378975846634795186473201903635930444805375598203285742380298163971770533231351196613057978123486691713545040123918605871175412110637795687933717409664286271937889500693424090015849956006862606763839183674017005184730010454421184810671371170696917723377032602990984241300610822288774625687661289120165869940890568978828152276915509107891645301101586460369388905447849581432824758010628214692494800616133415708024270164503699444946729682647093703737020079575422809908911873495332845984867693220803367790667951653902270261033963553761507654478842425278305843311452449164276251173498902518981649006223772887127895016142954836484716656237715334654814896789399800248982720398722148002350040671034464382105868188080641614341468953366490952153039894287198505048107012161098611390577528768152542633954375621572953124665334330210512091188707149750065427698107441102737513724671947126371746577974111028629781279803568637214693038203981453548878674622084120353042163851403159523197409471279758797580686579990310599451883150003170216115358310058881015777095251924819519546602386285574386126065374843454586032647651017946379593187974731681479174969887123247684650869838987367819301922251298795298754857777692248866159524294954940948589690762310579192948439678594993224933171323459167357791435668705623658536880824422457539844468783655784981873967013885056400345989238808886459306668147555055133374109586204336632981955036185404901180641761991994102958216455154217749584896698395001762512814378446761423139383987939389492882442761746507568190552809956076607466984979892793391302829463982624391225775685145529109606285029230573436128088592729765634251790756619927962558292450621943862356395196639885310192070520474645863912015483430731966511752367037264675299044852281547689811563949427337235576392689273317334661221933005431715198180937770841003377149234242672024485149160127240873545177243042571507538122177270610913946698341235458474045693544862958691568352837542255753870076715692921102663882471439694781336111053517804626922612327710946817768015657685774186849194927411846934129011705385829826187592663990118999436838161514507502586417372558858700044231145536239405769410579600726628336268957150765754798932813167716384100453781514956491726050006768968987930129831456552396859412486129799489250288288787060034984807745137314660418107172986513524923747184516379067615111873824665241371290163993361203720615820089336092789262929454730443961864129348209734266129807227075311492227755098947542264260669721634665521429690770636280121494620456159460661411283799091433128467617229707007362962020028749853723820325750885090477063414509493165582896494033985674777733097562664273755328950450868412178109157740428696393613312531609840872044709153703137965070707742419593209421218870427531011531577404492195504439704265131889327697814252881333857952799087235157648243834541237387910717105116439433573077772165466005859755580835986295169141574094196625873858113922562780350608354695070655892500592533776418486543289781869489220977921554030155378855587363196452510850416999363440576916465637734759109757773322411300504235921506681484605703927815909911119232753177139356950974453385987162760361645342242452975634982258059885349549925819715883893994691068537869500231554663666615913186773929550232458755389292437856099041531864460013816444529171625729181308349288586149483372184291330833347610968486902818684071347866971890143916164311081994697673175598080560617508159187552814280907991066893577462172528433692431281939080617082630191681070666320958936915407413626064544613242337038844898034695721470452233006704047583876999398884615267156814412984464655561678961720779327267447219875866798523820334969175027252570832732831844412337396806197330672069015788382774531524288826351430226535152186372577943611786315732804055827152312833355724388668828920452776793610287584548468523815403126287863889802039618976183411066276468517248368710264114436694467513642168415163168518308585004261122051241265852793811904103591018757971850066969489932252192801410826960565938756514296885196946616780099990513583981799172149251799360288628014105209285575910705337208560161334368824337974634558226594747279370194975313403054019479259807148510285558700074080336935098784039810640912214486479461300266092190470172647263662102275393769933999854646718192823923718628627760544000291221424511557983291462101345256984509390085266978545937597763390468705485816647717146636607033445950127266882006216874139181794511240439143290408600538735539964986855348082886979453585592132403603855150716897434973303868101350671996753959827871046329480511676697889061577766960889235112095459421795880370947333110819835490206067143915015088445027687438399982952812120822612405666971399684836507704242665166991440248674605931843256156055863268906519672715959509429656783857016534859261630648786757785861878813913095755053910536697227556921843786859852582744707658402696964521765766469182694796764611251623756251236423062778883122611996896412400896399645701950670163821245578104145447420189729111651386392454423387399866588783418550307677183557001106952660428284742352410912680975269402948765267406545900527956385887623258886859543718542260757181127511172385889627443055913946986618048685373843744161960078220740414035576030444979774418720050588119759112335138704895127270371017469833933940864632270049869606685860561068959872751996135950285016194737781079855573008416275049089608218302475021021120390063271363470254495433951761288986270358239551439801625127537954951727037932771410619579467036372474365698083713370986898197800769121550622660609239500933647665931316977888862468656653567401150066811983630870304778986475361574793750426586855047337227757371812524356415669496446634122035659100323887907426614590135599235389506058641716128873071175403900689805491689993537968618967606873152023057636793288404966917619737837821067685419399973219917955567541142166044081621443856348303851801936653390037467908186446270633350154888418373657234343962308664610892376690027180686673691628189917340889056954590096199205349318570188581471510840133539601065286797915621965885293214122523638856742653762904041714303537998046417779452176748318927309502098409194077387205071585678572455251392828034965010334409488650333470320236842654392908853396651857961545889838937250057761087290971453108016359602976838844735488463617462960433558502600122297294279978950288373911454460784704359206629191158182607039348452016943657145985016189155828832919239068189909163752783425123568884568398546972302196285315230314372614237048464222100888615905086165432537677922328284430137981552753239391178742319972122840268460467432205665931458070289630805227741691321109205835454422805822122722547615170193706526774614821929897632381826536110160991590208404617127927500787566091337144359628348297684966997259134019230150464048975212960773733025466345045527268751319111101577508798479900191304816953687372833855544227504721446173358087923464909049051819546054830799364272731666797900526458649282704505868616054638030715743379005630444330571236096586453567140636481394997471887684419153498164566882578323869266105003172189620375080866225240178740048710687223842450517782365892491021078709933955653258233154291787449188343170228779290952218855071092093199976397260062631337196748420259477302584543150763013759380684024645226544542406877906807638744432063481647584359935947944718909769717732585902922625702672282374542963365867844498529519134233179745921118588615611117907810687627565881145962933484048366564010640195036901837275243896807865491188529885118621074269373190624096373099996523415322939028136324735988378281180694100170302956043876485857187191641538533018690094591780261165544673050398344584790160916035864042626566527858637698264037081137949354227642232362545330296233434424450016688420151683180595191558000484096300469477804489320015006848946466095305632994125216255686139977124053977342468844524790715192668488247530050229469136646977644718834657491981789610026694626102295085187962020038259097196781769216957200677071256485643968114719539263015702481967152822523134331156802030323422714082024216254218262877327730576994059256599116793612207996441418661174830689453334774945601391495064124906154663944748066862062006511004086671085598892596408954960800031805774070411451906832377537501230959488588172450356225819856332874535965206251608536726161971508015122204265385893429496471787576625134546640592570740042799152264291369771699706881211959189509571279951631721594049184037774031579281534584889110278596126547464531588648417545532004353616039041260914760192234158161997682019341873508645072262902375505520074355584899872179840360152774909528880807480689038440052526249910007988227522355617993027417992799173611768725419386723247864933317846704945857139263632503731786611566292658501942699189949557119787646389624838409510135888962698255163774568134501026622790932802245463588590276483213307877644941629247339679490097322338582385013498634487480759842014450441229600797420848930155527120378518847075803752209700938261529930533110158621565740563529253955850930241022399398328574222905639979691444409642383715634160075987622371378500633446811640676736274297146611473094268274789731187615622905831994281928881567763846491132318818838916486116968601597620444591968423720717846784690355222525142767634136889866897405311420845092876197106905013869795947707509233385518581931508008876564933272795539457807285335441658489558263498872175016537701644407996016710023269509436277063574459340952817025259724048366997268537551581424061913554656092898830170088562468822133462825583702986074390535671696737395195053566655439970836208367991691638473855981380263873161921689180078235962155581740059906622093004798083417660936772393739476650829561483481846410416112571434869043919676708913765332560270222972862411651916249216556712667309238712588332212523130882081720829113337298321216937397259116283025326109667982071793477638371047308807744124669977380976741329740971424121781712670288298224385137724071136271990606999803711504464738269281708580876979371993395156491048697441180308805118132887435962112659105417210988105813634508830104321973658838146505399940877680810286569945679890343720705170978082961008896140174195011447700289002310132521206863481339140567331628004224914825392621880702921519108851538177960883274009136580283751018950687269958605921782084369476546040623714604473023694443352100968459580714275619143316755168724571420528623241766223699744611029663688829653912731190791732012020319399965950871714525787402663161725737140077775601024123724750321462926644715010163398097244877235002301984787153402913506071566677968874705575648551739501777141658247652947642258683353326726234761702043170417510488846819604446316856721064014927876890223894154275788910112513534460631814720409854476792785273425593547952686675573802409732466119658973705400234866875040640451861876107685996784642856889927190972461555858798423374093588870507061260101085082737500426722102402184492548190269580490163928199865028042172627190280824253815284553800036220616188743404694577090442809802308997217246755555676531620559023972894696387139370576553513672022951834510932406592046930704953387531095388421172017229946495384932081673829801503080029364625983550116181962043115679363961496192222927901045864337592140176962980951883339431645409179069547872887450582747435617467541737718598043999225672551495734826822653650115927275802409328676105906480013021733744062029558663997860377556901683954039222027567131003401464135067551212763219964248960352734689131378909455424602015558087562254443262080659248338764394600524235304620341955064488486206634154419112739412465152730108688834297581533566060961325041131093002568232794424103359762542196069322992133055598836941942351556178303698510542416644081516063577253198317791566604082325519581720457655441642806779004768582788657972938475699266117060656281247087297163297581246431753797246260335815778831871911982174196237753139993825700898951885069042392871818493723625203014431519489591109668657488064369574797791339630042508793117596917787071142089570660956700404345320143858610570001699992675726793988221264276034453189671236534076540846707454956393104003823188527085630070754923327057640083485981801113893420520720595785855840918575507417613079050002265861964944050638782727730642107377304846804591079256653276422629118061142938695531829823301313921967124906654332870657123569560291463070710423569347551669712191527527790476478663479634568333678749590470133409656898285052387355109232228250058880793178621503571506272896692666277593836589717279834280384186289215702431683504959448212378583351577435188873976188847031876945157801319279651913965325344792338467909571729097335940736002867730127549407013024443864489504516905879644860614900536796717709576886407512319110012423366199122554558115438670604108949589638676663562883090994834450484113042384101373726318580593916186273308495391133826925623875692507532559341177626546058201339281592982402934873387773883727678992854881297797182277028786629062849974528501359292982123376734581279744524742175068888937782069023791871496691610732296639738079937351528980120489255282694401646244622847090433976601064104650565727511859026522015772166049144976514334782300798739448556017649527733229670542540623944984870252207052518450228748919016180696473234510920745514575113984971672402353066579732838821565868352991808795272053039839966443398633128334955520073867995739869342699844007847265131231577630001212976719191445047743091019050229006622845749152309054653004871131490703651016144438374421072535605164618984284279098518185447761813601557757956772841625043954408547068163504852456740273638395010010419322173900469063853432619419695470801717201144956155724120083066372065902707439722421979080933636635740474423650748008410170193935341033099888469678213667577233548547080492184471286420798491096225826002514944499336876368583573551371681328560522190741782329297684951628015440711561293930583752882500590516450458581365451438111312186444494432910794754258085712426609415871071128684778532933807800224258156768238922366192817899076170662645219351372394026649289849048399202785862080464032873902846488982187613484015938094783808160665881268931543888340260492411133193470727834373858860528979963346562002557027929627235752241680143270028925837466093041923218924855335901386419765692586852377992657922647275475288650753010505874211919876646332011424181272807211049097843327981183550437605703530209801111046320097366588571353699051300982093198596585976956517036712625566516954754534334031585667866759853626252464713626067563088225320902302096947375523067247958111638778264298857995203035283125383939991600805100274902786745352275062002211901109399506926468712228180238672921376564273558806834809185545263950959302268132233232866769996557367392829490186059040554185189521400650297283593282094320087813140229628924613847316668060675465213382410541558159214762958571044677870388648740537789655214475055059451792443527200841356738949875166969057779197496030434282786918416553765210633498729589302855483254560646205544785440860231757530254871042468161888479204888289678096720304201089489643357057107903099258942456379598293912134559034416172333039636578643165399988612686336350558029361125540206713520323599492354280922666466311815405636645482550087892168901326328291851205736195400840059824514164375141305158959330204130636867868983394252112930002532938494534300315666978113509373164566551883183275622600116651265656292332337845822402024311564575767446151761118086891283229792519532654776690165448123245053277358964145858278078099897118963034845166006917647654855613552750584539596858274103130188341766200088371567616586231690248461016276854127454726001168538563565066610468863900279749576940931561032577822163204618138906553190494487200594324749034557163725315754029941943841619141382321968205751902871803144328866407462200666897225628089674985387004772510655062252546562538281119297920338156561723244195327008833496443624148211077962256721231016888759013297756497123083728593396228819734567423646866987503221866572344111057919581489833052021065414581190704818140339750415418304470503982277723422026823556126798854536835994438117846867142542730381062169299127680741746499658552718610898305479795003336352797068197843562991489645190657353281311308713223719956878284211974598181145831588742171005075406803337643440188594637623239306014835845141064510969603760700454875714133678385872000316155640556869024318945146268159776145416395362736424309962624667741291464294492972909903787745985424835337449322907573569882711099187949251569333694252952626091723628105789201895882315419556407716586569291332574899097291639311650256989645538304124226524601064033623449520928690688559291982237746134837595277929704668802608501139095254314136619963729714745481593308627585093802490138847075857955398997860573268489209244101397984879395267823029084983185832233775685191238470536286243396773215305590751657194168408281841364653530391128297108498391197612315653427179894789054204900296494585981772924562418766873885756036899499907758573989581685183633812631402732123543820797240412067746178381681685189798051449027223913652442268116995087580235723110853306358104144344796760321594208165926249299399034355249349576617633793901054239591281135299135126425151886488436955212310733124976556332589813565316433482986257827433366299512824672537608229832543988260172868831238829853411642985744438858964789058146505251260799327414155160762286516826802784614371487351579310813449611693560993743026479851337675668580207179600072485558961679251579423354102122264854990881694159252918077808215350971513436944151474097143553021198406108394891874660025354014559664508534612800098146028262281056625214228950747993039315539808265443137768134912876274588951161203905599919816953635456313698210346215008954062833915419992905601730992917929667714229285843199613390014586115688676489240480405972221214962380013311492569514882382939694342511449611124382114729467025822870291387891660871931235468006541528862111146602500950862947606315312365550872224330091925117310600698919214436545012548122868813934286863841032867113851382421061081854738597369095470519778356834165581094105345775830918106113875032644340467605105643505020267090030168496949977607202837817013866508757239041999240769359808945523860648670404180080387051448912378542779456322597626529443396658865654240144966120634445476525395545829960010446502909214348886432370412471829431817086988268467876452963548131395732953833222221271119060195812193314390089678459059424549524619266149297158606582136305840590312549119685416596015831806545800009111218901358731943592210103737491759851052411913356786229527701947950718828245173892981746968012402191156334190925027182389063177192209057492798919988916088214046831886766824459274320973087898791416701260542044225387602181041353779073719060444286311500867728708600689434651756901172808895868912639013740107554460327297908305050628179160025114147243934857771426955839944707845803740860023595128130973732710108658812019489007766206565918682389567909466072088458092473578170101394429942494600001022222942491840510803904375913160694904462116694604928860277911064264257707084637640504418861469435222363919683709509341701287056951632940490661472971991990099427422222166896501400812055167252948588561556483777490093053520468839479764387358303658033753876676533155945452768365831049490621555665833628658578492517257560290064881266821016687113058627734887683653461894540986360429644575470013483921804602100752197832113045937084128834685614116691168411491618793138562962290523994085136672643753423890688598588528494788531726204386700079576646802360857630750680875740851502351138275177714204883514955766819259504016224924781934264825621574907823172657607691660684357841545210345310504953389170100015422975624692483253837789523198692090977318052698117588616495883019590068590013683129553239370951094369125536073152518388660126452696709428296224399824482938189536672255257187727454129109841068027061731432025959478224808148867858867951519846350883477849572953079094022555332415868177911054988500342139131360064702369750883349392091052078428401182328390407215534666348706066602220026153593803299812694911450820737389694336157156421746634381991075861802873326439765094030735382120640065097757925302554528067355860007557976445969877681340436478589275736121292363363371885077162940709546016710170644652444596354460124442979281998853090019740981146755848822746631574633128389988404615206028869553871371995987811109752559458937324012883967001569302554937280212831194481061763667941778262084221304916927698050239101315408981014728171875762391293075414584628479951269202912801665364629396974337039498083235875903622603352816763713706594188777521396966699323471666657868979254445221664918925685647686181095292970205280268207313534689848025538070567492598892073148556541005120528959598347739358615527493102798356799904701816518745947682027518189015736001974118686989445984225179265607784687180464280060694296817586960814729850897696852830282319885414318879285662578564799457311791637287520634894978542399250854466656465315776068764049465255354583162668067033224256343380252778851478647052824385256138541836953294705671851246344785662129908661410969780114977995816180701359009299869443486274325285443391368771571555805863074964871109944382508419257903992493750940307425056144371292955503336793085697100731675428073842617009029731834279807759385258751985449819368652394090867562455176617036356158811903891392500989365020882184387353070607066622407123254838881015399434214104713126289313713237212714560122312679582156685621883303219449290523835671907627841682060277348976147180600206077329152298937422691403884711551121986191537816072619847122232459646140981151377133141090604393172394707938182985071498551786801258037090098008037485301664123388926263083842390908742604711062917491514968866542050344247776462489789898090677517741905350576282506927117293332557706435300024846401067843357154508997082112028948308491602029603563331352434018133318194636110669960266053911297946614516308310028215492470917658219932609026953797278954549370788928312799826618292287809592371146852075979243781787844987701324787632340975836290494826019800824036394911512766919596586986094902665254491571220396145335796469739613212699146812059712271546630831713569735252927096591107408389113869043618563401741928083641122080660245298311547357864380125822316945328560269161290779549590165160687136878089346464412583973895266319024536920845298148454571161351364686770248697237481184763730703154383480769975349371874214064543566519912576873222660798634335158693861529286057514895711271723613541446071662087026788278035743930361910641010734376840539428708523183722289376906952057104501363136346856447052947258065247061373129928634996493981185148517579946735645335328640125462855879545505975477776792513847168183823180898957873999986364224442547656222750420704127547369244857256934460329811372053795117193674385816631967126656897191183743627792976609754464746226957270096683291008134953382372434663413779065498387162032494321019333877273874819777213673199182932911419030654322918700770307729231825373810649623390085083927019001262259777853790943916389629722107957661933546028604347893526343318366817242265876370440344059571709744829079275790326873819421102098301467950110103805149596392468383347403259045217500551827015043079762259940320619172089962889379891545636798140523755373444430437135169939816816764266164568963697340930156110786713064330153687696716404733604218657337763946265352990294122059682716690946816623716209915239058502563110021555186964602529534856650999944772051269851483731212648282193395823733486386945084351388729413430753274613915542877861590096154585858491910865616662398032993911801584885684276330305228061199463419701843939942135640701882071124712288858229976176065617542675785270434425486683193343292888023969150781330467864520003166391753903187790886928207940162730955666924772223446773734097958627660176938748716113443035339491967878558524769668110949178708785437359368992385064289526845922251282014590066421985839181127476068408710103194972237890289057969954732028530392897790872306586980289106233557648846923689973428337603124957818193441770803843857624959522961660785786324041153699442762487400264254594154990999403917562351242889304036050401611965305140933930869552193840374427651204094004289327926603287879244879268221178858603865811575617570089636014055148451032799207029322592834549906081721533748537108212366180627082926943343271337208224215886562200552655643314807527426913689084027131777409284382679383990567244001819808593951928896864419320141887529833550812402251374970320858321010472274572500753031911229974516297541839169990787321106357399715879331382048877784616280710403440878583655526529740249064677755316549898041423223470943568740569963195646878787558755584969209744222892866619533818735268087378619232753883449908816560822006282210609991063741816545437384142551889924923555556717778206770362257102032577822719010614514306891617988738441584392964940213204911036160169934059041823351843171965820896920541943387426198305033473856313280574304336519326893964972694546095519573817439941264355810792877839591063851663595884676143173224754951700647424827907912903516664086801729944143747769813386604993818728658845196673328965365453474282699598283423331478366704339325987717888695354558728171057348424737593805987909257092066842098103245555161025013617076259135660302422940323583226276101933430668125648169039191164444512188947732269070834199378751566271754150654348724866951854490007271884783460313278435129159393977176810923254981957157192402404055155825829187484392741452263152859562930999454515808113624778419467147095175591764982508959553933007077196889914458660479123193150071327146603190638238908821674348568650388938470423313119850628401357644259565928034544623537618506578357496001791050542008174778092726483707695086941593049692811712082697002883467199964820549592875151783071631246681462396822521463314841790866520751874511288224396133031144653284508242668643408482027768160179627190992006802414671115527166527248862518016068441638143195634042530280555180432755705327492619317568607445169097816494438832488463851769866798361799837173217589819307499991714023496660176377901503807335520037088442413469589110435402311348292431732603204585904422484477980012962549881079434893768897661177174779282144759131386197985739113022629528600091046815125804474981141051747376010307988002513240313091502213019345682703356866584887604268225127728011397976932346973005046304696260869298892125706462176004902837888038433055138540901503109840903997048364040540368300603203638354537370776869336122105303740533682598075689633529810386884447539710309475963830293879980274969766849963703598686740433295103077777866662651050309818864477670760181075591932501935234586449481014837728427922812585908476891957253810173136917090092047163482247937366308825543623652442829998002068409161522293324402248628061692001115403276240108028203303208080762184447755753358616375585779066763359737413064033978212029268190324513725771938642191328064110102903319956761922063893579599393041397016778406647692883221415158213973681572893696230521220448021268601791114145231391367633146616292759393107042141277493004910163256814226611385157875787767387539670347378686000757376847859281037095526431418418998616638787561445592307698878226316624144995334138822822102984057784574394209969260515139153600531906571561619405772419616019633292104588590675013731709853453599488384283502436738856271229542493788912558232444770568307371425094801029211482067423775055317043568047152879831575928085946256043638820145367397750808442245229110663199344032313141912921371948699611747877143475460849779141340682389969225127308699353680330444149778879585327526466522449788111964232236710269967581544101086363438549213949513251006358016285151094879632607268468450036244139303431740080122383504743047717994176935821302547269013812658654773079646666211806734042989817399584142059554256787798757330537488040474570190552439523008289140429011360524062349745020108655587115902330666763515538253659902940997111457303289344082491424005877946837069960883631771702446146465528253518254971287594520137926293683013198825643095683747302752202677421365557130604087179364543950041424696893499815421252915366310153731944796754718841675097442536053192528090701505265480947416467235902103470008831219937449479198033663617742688877202062608104297591455507831344147880492098807444954880909384200421963743178030153110830237025200241036797912429282728047038105776384067336020303187065046909165277922452433480010814807426261159630098414411012119315011555043204637328800975433374330679340539913912630398483883544778786749456118066120090460134393076636922996860301286394339324473569338991385513793068581098877634106393376920709089380803346709945148272697659078998955285343929792125438433748180980969651356362221093314490747643304677333988338912822756803236386058041438797094791796215938581309452072479555463490528563338889908504167809306358516848551305080222189096874579786911348511622359360896579962172687265349165994382453250184541295173862912983380470337911733060104998454818290118308910029306010434795091438501078593548280943983395536971750449902139567483365664659828090555321241900491735718202453159972656148095028445988011635361094661153587330077382027198964869038534345958901328987186533550280735309400033909020696125374352308017245649661997344022048229943047608253443180583187903092198744613897233830855061046055417842477956398587460948282002301949350024042247624076993219329226218266587619319179630059632892909958836517218869206706895423924138460013972865459232633311287878018429984775472760358256008225353955204934399004985597229622727850577859972706223967506754356141612515164949116726599834992736019949802750522901674734735942987947449587670697247046397592893120668361697960595965824021607347831382662741589750591502263126731769387278357673548550568637799772034702124370761767127887377881415481090653496667386229614128422320437710278867227012682875348426584338561368798934213708335539317858605959578801132817480581954652562308812622807977379810020078558054940178053251874411373979045013492151469368092668791547631714002091518583465989895611649339538028187496019479785170162832084869469225717872137065086501587759358396265837008453629404744593908332791182711983892893380604442736760636408872229859450706799258128254533470322672140974860212911942730394884312583011502662108232462313485860403722497157252736269654325434729146663297970825235678257102233631344467956777007792628819353727677616253677341569799194152746735824333486928238290907792391409476912092170011258894275154518130774727881035779015340205354564864684063871204092057337663013658065734494503096595853688811679195636019388262543983534633995967262752602662734470993379694637928361805527309148950544256071906290502342960057135642642334702476717838856941144206218912421731999553263127001363778094444177734816087487640509634491779185025010276259216524005811914108152079033070879841322417876469618779528275621742417744275182644889980166766411332518636539346496513996750273490428176806826165909973109928115589182814147978393750891150867869235216523604485027393795375093386936092699818734029699494209234363201735787563071175171222864230850663548878522493915036818354871869361544756580898274887479343525659613404061458030196553156450672681856898897436072441098121896123005520213992138091973637662056087476580175739757496924231336432924481513266324606854771079693656538118881602757881813032085995188726818241939436909556413206877189689306680143173471379316570807250826232756852568128513743590522536115661309659897990932394242438193655852645044118825127725126910408216429562243777623058954398181240714758686494074629764272325690024101060613020385872623514712524536162415892398721978884835111333380388681102185925806948782647061280887251484237230326327590600361308192743135564119651895825864834249723727313620358780562314157446185175919203778192478281791173779912600104698238168663818449912750296618100473269469402986518432508777785571277444388827511550079759220533814829377659631307708620227163627000662035223291663318243279324116176807837898102445232999276430709314184859718227901318088311569351420105674246704735948289118908218232158823397400853111968492602795870023679389365447125764672398445997368035650674997455347856417030072124101625956676491146830493805185480520508605359503481145360861366954897246219777157871886363873516079246482975725807363393230835285089310146915103042839910684610460779970139265697382490125369516933876229771833447239827101056841883671859779440989369063504506254592382051558085781866985338098835512337311387876455131101403550759025073799993678885236111193737388445378542651918617283740724098777755953514971919186006077762804280007410018453135672430981503941672500398032694355517578464190044571393196088337864780843860142227978400475511913881895652455140022231360679962357843261152165740512181579978914721565965950238750405554273619502996487680473676125913640024309130965748638066644683624864010778932241702469766356195806944559153604964092552983582662426361436559858789133378914229900488931160877607354906829506178978076591168042087005039470664163186260285954662306206699436605198122659872240029142397051374562866748833507332038469106737928094645579140215366106481800371260000661215913379693367564933352621456750646477744613646853627256041747676972869216177596435628911830379512503533698453727218026262166593845364065228596351123932153894701939478889943498296975858410970604967146386646780351325295394257587686379299176529459282530147004049216398955494246665579613448839758380508935131015374897244722529121895266505782729078296937155584976260488303644996001740868475237856702087820206152563502700958361688042465257884236899846787021240595667917204747493564432833194100389404076018013565634594294535106514153493819550346014475897153703730436340949248353835549017269673532870129133955940702587877975241243760826649628114402736197840235497510653844121093858624274787843792377163539136431070491889913619347468170780411165159536419097460303718653762651037254796152158107656647038824658471256824322373450522818741012453935621211415058593418342345819378082911128687362428156685802656377576594091068954888374041527295315870960605113892382126517253197562676785027561541502299564682372449838894820903837473373536526949965156750255502762415802763726992057103265548566473642323378519020064957456486229534793227125060265152405988002563175104955909833044538440597473056536395848991717807494059340078991531735860373148757457572576832588299430277752831858283032662812454897562024504166233522165432024263878261421275264369596167522009885501269293805718340528397159511643984481627482731805091983617092570420958541912661584521851530015735324922158949272769469892637788158873305734547732901868956006914221980726796299506172619999119187974616139054028763003806707401543233056985801417306790327719496800237026397407434678450850668026568465268099154051007700700112206384420001755110860399101717412673826935013272337255089026249787317025418208838958821657776225907513685312573228598786883961291310408649358526667715985277289045751003482307510869923561921460668629418004356707516946744270849036403047955387151888851699378426785412294386917622173336012243901735911848518976665566242129288858350035081822125045964404943297828932564281182505799835271196007622466063396092088415391497087530677320676358293680237353114109280974453557219827725135305896684591225425093858818932402659811238929751928456756509651400266887548731467789138303310618703485947911093150855022727620917815568273689123299090920502179563065975793020578781278009173420657094823345865637215969479563234794595886371794013646458460473445346885184379965134743494389085534734876694783822813482610099738434453100717359741602793827157749243841379152699748104874792817731076831470709653096167558271359662610556481566845211818581823091640247673477483419060968470759427082255790085501026434148775258121622179132717976069942800642838135259882133060970597868432021170780019608353298728149246861124728977555671570429052205197115839123694360628298470979500951987585380032248704268584087047178295755162678984666019914309426612010435990152046292531493490170061931231965613224469897665257347548419737706245932057951605075923261174132341684995367613788602300776398355680819283498219064205018607592636751105142218744039600570841534133802920114417853863535199526098075997972588290524880755070704780435057272677382737693194477035223771509303942981752978296743895503069738220599233142272161615101526090384424951325258213524271382417077411786873376393160303109703938523574045644078169538103753398846825048640576358659143782861122943950159514150838244557618635967653776387748562365890185405170717380190646148091384970642753345976870981244801397807318843770856985323514034175345652574464860696195413710334488198689685319457162983444972903992358555653787764120792661835387300711499085515179900221190282332798351962462624060411891528020041053105670721395988085273067608554735113459976690851756947361574382828805900721999990712596363486759079297972520949792006952057706594136697105047452759476285927395741965500383676739110185543739704305802720393457637369284714571275705554924361134136538409422874553524739355571967806687861244638255225061573541075012928921332329256211890372278240068887527804758229839789748643914996108888676430426258069833905042864471991239520407568598410333952880866928755763857456757130869740237755967446320877716173509719432998996763830341047568233712375887206134768988698562829818123004946620394726495590674481366687162535086097114173167661867640426795981839054156971351910449652509542932283271598443020022837455496808069716375065062485092498792559883447240612451414490058554682753916947257454797828023984541701407423706189751923659471040200596676342424702780665836724348564169529017150979061209668003007911939192814215477486155537377179713707939280118133844372534714035274154719296281977142987472047660362748491659784806791316608633769331949634056062330226041121931410756880774722079751080620562281961430801838530804221129428217036637851032309680839522717829993970687922635380681002048922583508771158980279075418184133828031267082114828845068136561269299055159042552546894580071101426148764917741390233525088675973901847216777284907114107976364416625176970008326073069348018939918217956434335056010295593960135116078180746137041847643046758082153519868587450857915798970897393373069656674991251022877254914900669597779321099741525754529978520153499035120339731769225377668368064386458972486365456508814468858607629658870805334162045122203409441796575886337606407393957170113933564812148396651010095225498177290662022110058764473128432875950370115899033986679070081651485704639806362420588722134116802958742961870226209833912169842120622173663567115379765957575768338963082175144350961051182834394652163659296024173465806169579948635435441740865637916654874425367727237326869548597359134851824833026729173154608154414104999007020393923035706680947735152742982547402755006749738272794895721970284889086131198472273369544168340231587629637489987402098336067739892520339108712723524244341651870692205610923396062105254731894353533735908678554128256793794266286681981330122143358266592613465715105273499729912066089321302566883161358751253869047924185168050505210258622679415806003132874140155464210686626819695772015473976865654247083637496767263393379239480701462234989252515531372368774136998466564347453517915790563902163605763816746726343712362592697773512005471399731758683177851076851485313870471197094528048146291029011616195621879857895372439782944218763374796329431478340890094025018686696511089940127035192328515495922112067324584623709028135078427550581399349931937778233889113086476765531550259150864515673047323769633232425398682472546871301082750104252776718991852434341003954370070991242874370715083937560088160590137917523438271571178322399544125161993239437413122870286230078453950432131581771671659775634338824598757064144443049360987025398449365545218164866892111028968215267163490030540077076532467846625464853222616892657199090337909556576640541550510272127616921083154141108465614916991985640007956840096612330041191597801627350181574711884486308640322105247649053183879864254210846154704460874121715248890243146986446181049515314487351771010147169468171828217868225345543785165746999515520053463989744888908515504242914823546247984035248969737326525313262118534742518003832853080941310327253479275696725076692975437172737072743664879030706685965052490879991126139372335739728623961361696738896367441853163966894776131868462776055633767690320548991734444917116424321495262004949413540614367194616225591229803248798611269249318167698449120036467809630946144138257314215174269238080288076913037441010643524326824925056594699479999235624560416010028654545216676963971693996364955189011707421221950057597029180588870099204261978294983109791785185170751616956058657129888140079266876625665802816216933064742385465225047180587689376150956202330301290156812908594872337833105255015051101340239888642613252210022983407156718980323000937705272434152609771146301384587550567247949582330016187453547948442880099619506694647649560482088568575105563619655281028289881079847034323712812592250171908973367727041987597356075412780715083178988930141688892954120329173477938623789713974646951631573943491181438723002777277343983575278217149865814606473914335112882223365069969300560370847726252969850150830814575569966140755261311592054796798201495777899852036938477380571838017902257516435201942539209015080747693741203486336253259127902322111690671188784541658412096282616929914969585201237791589598453338133708194814464190391738458742244530133904702944488916628244485607804267165623458213360979731513102057248648031178771072101678522592348946168582591129240116914604263768036645398611514617513591265866930450338436820908018773350771272482061536038578661279191486566651309717005988040935875821677798836801747626545572403006765901848647900038144162918964562802798226863693810814272221408822917660924225403949731689879170879271186455462548185928727422513273175788304049552876933299861391388464910028954721028613260026322534543665182281514782966506098364454061347289513647341479465978736011041826040376144540620049088472713289364270155247868894396834781227679714784888056948084127391359581958159607574374663983433794780015976707415881050286193089802936713950790536855257053437182450821914950582417603086939119082834897227663240974326619728379770808925862354175082301342858301401024294134100490030258889902521437962207005618554079578574595477274112209723105828110918164898418349557298862897486696424795088474524079816250486259863663192670538004548018883738829472594913335420645386111707006649513524984190700497247057311619542504978296820083724163734283802094797283296304626292400372650680083919935922374279732290860278297183360593215360282885061051772168867923817147637785986568847138408869465736171644259984720169263671168245930872299419628957970691194984537120524628705678721285915280978466667606718467659291393597962961580664515043011172435654609786752682979492675157985019899065186990781773181542910120618017755962090005588688351487733161974885663596128451166976299468580355884523283903529490128353215601657484840455268765331853745608832828694323597575887236370970476768906634478056606912518410489057971253266483370320479563473980381153837881189177968943036670285531983438192898711790788449746717532351467521027134173228277239880655246582116181703055031408485017755526102249925775504344850769232931292049953543487469959077220724001456004863703257954779497316655804336142209806938271207402341996225147350174461436458914134286961437648825347471325088753368712983733869065239981092691022321821186710418504341171484966790780975616149517949661568727004601195901855026651173723831620833083166559330968540813450997709367540587185164841191192217899842936209785574248261706736392681917885552650084058012135575613436932470940452377999139376669502381794084057135031541523330365315964509168945403628442215474301449341086965185413525355409325862884177516654639289911159568674075951465319781536337097719071370132012844195180953698801570249769397174438876575851929666628277710589185314607915368295554180838340230188714537505217475980866371114209252770412474622083564086130825968592473812477879179156422615522118337577987156276554841056956182355983432490862443893734117068324920085450683586580496978331911231218784236353890081475878950783952089162026308339195756578749817700551784618418956826736048319781869645125449523186919110471382310883872708936778056660280144590712196653846020544614692491141567662903345278363187291427145545469880425569987692711122384034137959023676682988456384064820049357274797630642564126456411567750681443773548965513908467880225251333895025569290697338518024967950989488731265933590335289851570984804564504223486858371712009172406709039018771542900313948394525550031990763954816223552633569205686374797374385169660092696998077426375248436178301385555697860951693880526627052889772263592878982382199540415381833618138782475862948876284134939592170715565081836612266089621573505780379918197665594939138437201330031521004464665920671852691529003409055841360177601827462079880344995480977598788766608500471472850955914083015197774958988835121291051006454423049370987993606687966170142606754996071184311683678169324609399274705635607757677614967311517990638289129833900533638276484253892924449698538233344625019613434463357797818853998019994105289089229179375369284899446122436132137517743373619842204718524542469384442305715186084215330832710527666002425621553712362537577477456327327112935147398389611672186931373818901444622454702022278876241358275765862685121683230307288331486254434069205176666456886441153235022290324367286818374370005831112826807081769483301842447495923244639527484436471913072540320713418669736985176730755356013374373885281199338398031411164303804803062620282546424674313106816758132115977602532925564882757054107123143636911833822328190280336747179125099591320067926382885510468062121484464526834794782311862179467290014081897720113077087924248858865027544899726493283101167933661019426530555539127001097866375981813092214956909936091194492899009856032889953275310236532341227647866524406440908353629951887491685372252682861247426159675457185667503998042785625779428759439866815480210595766203724484678630524271418389129763293078220625317493534415820265853857489458903109748858217656212889240526484005110958099415631946585315336766548300749043910948332059018955625697281378427470002612000942375732793688351451714400292025307416224621004674526964559239252952939816567902435444317902343529157791903114273351366398498496692142321349986024938200913713107908261634839609836555806461492942212162606297924554146622900009374387747946393970618199293872932270358565309606721893457473104102011493411256334228963454525624147248072118404124267083143079713005914492647399194391546301946791513378875028751540101575594147789763846142888260737698227693270275099987842071902500572777424282452511735782279208388162122517475474158207777167770292449271984916791298613544559239509931017580753823844594388772859407421810148922644744481885376401300089809029642972642302647698544775660135460425518435209816601186421218392700925838338763761784507699173118877713672366176736765446667239765053976290229547599918362288714857854013813704432028973802599828420338562136474826835500462967360982523566060187704756974531135132063252043621693169570397925333384605521644945539955645880813902628240078304420019092876711639408751748426484253575798843665945432813789154601162970384165222970628628162881792069495767431196293659044135460184082095192981004703089466045586495214307590622314670823545572351154787695772920250169506948372293945854945850821987236497286848495576002476392477013013459697555773177788754859810655720279760660050777329611517878996784789309830831198352711121098952594889358799310518691088636188235572285995939725276877415711178109929464887317323630741352710687323655858222288596105235888805131517498987976116138327681149577094860987787565542598407570682117882379048435602419106213650415713310337938428530116114775578653906103457304663515332564794439910161306667505505704565862154413156238181929481303321851913713876992079865767520589799632055112279707962980380851497674401486569557970308125127752764592917757265080750754409068891790335461411328188796008844669714359410292365745355657347894464887718377237925500983059024390212000798177758599037345097092720294541591661681535063224426607181406688130392045450795803386891594322979436039473697123294033729188900429473317657718763814796566343944380422194492762496878398772032237007307200192021790101375746783561530732686287117894591249027865417183417688231811958655411703549216803684994538460789518149365757711065738618943959632016589433355919167275233652434065113425459467562552892267429464911528873441117184138337680273571431622574970747895097873434250777612270860471469248799122774783636134073301564681498748527292652306968958670729537629178673000284037719283647003467370326226531762644006733572780061621800279626859742177353670685094674142276360590578115118422806201091147537454972561046749797229894957989807914850915907427625404623419543233306950459182568957537341320280316734188948502685371129350948532263470649999592188118139818027366160486978941829810379764809055497129466418652405241619803538401100011362096960970215485905376219286308960130009785771909832520469628575693284537197626984295224811060247579949639643411127088146523401662842194541582639366025935670324844135379991713963388459274806729099701913589451853359807321224983420053718028788185062289453426963571704043259381453377961357768176888368831443464340476820506546930916028022398530830910201573756413789732827998467123837598056970024676933543230408446142295639568176928278678219580060345748204324633666159455453140275191128785929104434279185030727758951364591457296003243532241743084308247732947976879657755993261760976122477596334196418710730056805317344717192867473303073488168086328096938623113710633753812434154987931379559554044856262545027097368136800289918755395103041368926388161973197163723597011253911610335062267879503985124446287603764073387463204781586758966453826671976109324930449866602043468698773048293226251712284265363866907768336189133616728823128400128792474716106554346925004530758496828223305339834079655304487960157388374912013699266817689036051865993747382188779973415161908242966749243626533359314386485394894299376648965497640672095242147680906778337129403226131137882483116456940207366037604089288549579074402599955016812424215333998726612298594970615211947134427366535026412876550201964927002031869696371551964390250860536034716701008008545194351808153932583618948802747239865815633835279222835537812004220867699167790634484182576860394179130957605722324669101730921326428715791010218184723648542485228357614590707602893960664834996246496717665264396215283415001120144628149029854485694740500043304984695448740239944760501607771441949804697080889523089825209213225745787694381684521950200543719360562875566730126457057696231816713442740956844073818904259006179361820809498797462806208536363598344282245473321075402349569976766429436771589888825949055606108603062102627797693872547673671782768274301697803662233979158668831745924422367499030680937215924408742950424610197131432171551588025375148782345813042956728889734034535875914428633951679492923220662029770092249145938164802693012845228277107427664320893634687150174396371430969118452089869757701233527719154529621651015539707812184514023837342699068153290969627874025254171182506447234972392666979248308256308350084851611582378622155378886097208540004028108220478450901617515726643025524991086527231193118633885107574448770596232786013892976979127366145843509576331828379861021488074317531155039852361781479727610680200106634604500058387314691277303362028356593187243714590368499941552127230394148482715648193715086947384904883227437912476226103856512410143551541015810379406429534575435712420348743028540015263089743358425036507781357517082508912612976686699006562855060656156577096147636784040374164139766466303072638747785983027236265606668292165307960328983697647376682410816604164034075386443502454831891890144574128490983131125323716504247679600871698971855707841033056847688429605594333765495230155703167384113752558725283660766695822810163257178427097142538237128868767495016807361456798381837456280143626665436451554516172572004314287238651474033067358728592747268471202304907657984530074378885303035415947449947261259996612850972413358821842034106314829329962522642251766871427228542258524800956783638152090868757773253776744171708840708582507503037882292941153644722760279675456169102702954599400620049346644873070646888476581664321879282060386295455067360499218776670696057921914637614474758251162877217932647783678245481117201020160467470409439767855325322397247979375707199142534806320074612100051637993987323506958315400644200193529217000467855308049337348297835560255708071232765807812794832474775580672186759116844362806644288805964237915348212256957232311863087878997337251921702085509668066717160965134855712069137425147763978760481635680547554100395050676722876608764488566838010764205135616673857207319307016511621950000373795328790616446799247429159637753495495121735499432545559221959058543386934531466549192302798376102587668567957714297400450789938925808840363213746600335913650341458721312648107453665842153965418060945467799937820922393243915344189410728060545199066963878865307286759879934929271442395843105016180990616635586493297906953422135810681875459116253313896341181488980833800351756907554959001238768044529191098028717421797418651232940567896019489246455872753617110153415697597125329090519137401665901613160718698506399417439350006336354999355613804949242289614301952851590303569706133067755409434068728033507544898038191732445347169552613789718469543403485686248308662325101480322354661349354454325042446636385864314031116448564059431902325877959506559722807012196423013912174259106096464302676602669566364267595009608370555693563538243644652332028166598019713190716165240090066305729406096814547277467508223017045572696476655965997815225106533610107428633584739391068018862695812366851590314255206951993662036211208205528091153508053985738148076149543444659307715952451592851333644978876368219784376040724605152637873916086279115766127984838235598065480672612977808437395881333618859452041050654889752357118032970208717288846782367041016349296410400118535553597989723084900567293722929654342107274037580765047707496495903173549617288366160909386681348405438405159052402242557741001042500755616215111833077452234258205225940850153639754047232015350603667229407309051367000278588323568856907727466097432847392620696525658960367508101416492072042769793794064303302069737941191858500020449437249168615714910403506005987717714638336686336680444213164890524090936507160653109620687399763699200638445759318389559339628874732850745346750117907802854897310326378788675576416288658914510171756051404678497997518676666951681335687158487043576957738640302888112265276612398001961455425578790816672626781650239533397395667638672090442989396739551792362303044538434777411082231560103370910919992546495283226537371310099582035536874133017385538163188489347723150274666066698734656468033613109937633067671908007153753614639171609858561541976432899263899247650369592415004197394408696216063448423266556235341494888388398855027580195362192724177955615766340344916423678183735112116304943734777532724480577805073373181415096307405238719731287115476056418082876215631605172615754048714096217105790122633259351363386242984857791190786812355739864327538165489418142483372422831897395203734974222468643783038007549549576618380632308108842778832037615364092178797274988702235247571952688546053569838038712064073014856053125067148528969949575614787941438712965160609810054301064686759994594803148973976406498681218254729033965407940270630898232931979388031400407196317529240474741907850226644348256438867799451433478759314850029345445598253466945898368917481775134703381383793145133967158156922631292455908668798143915745833998734452710989238463958498124265618360586152873392335927476060889720991641040961347472198049873370656702264064249258779587750466803537038980257890573331805308105720965338080645937966756484246328724476888691765143696923320854666935920860023470993269900744285301244038163423296602069459176648130083478303105983380497612024522789183264843150139337278918420229993197516191929894223102696002942523919827241627752631818740320806002374454438823835330026423865349563524454645168076143235416348703542807046860324439123424875843641915860295187572558065051565774511549047411972962926050363027139051015055413319051926516919527484870260717923759819555798873115907646120582685429830047399777103192670187121672525623167332789382153928895732581476782651042392639611851001480896309569087385259977561310450744909175065620912715103735951927709419901908802761805109054543533143109733984018127935654056839375337442728438392346448701475474599293313411164880253966477581935321743533454113162586264698291257085209577656734312732462738625558052733694253113303852134361238241965822542331671422333029645905462570192764547562196513142208958934939852567811149449263024613405105643254753418878548736852015472748763703220611297861436873184463300237490156490618846461624730990149652995636144299194541515134533075286996573415291743219856770051696249005898888224128028966440783271748209224154709466132870151528057144466609472910086080300767617362698312561914260200719751062228177874972570066592869740977582485314877416242606052337545194670092229794043967327571796368176748422607416390169858809667399494060023410763184149484467289910829803144770641627846381349590052244578781066218611567022486868783359629889329010862700357553529480626619249701468952237983421934417625781912805800113300272546301355897468445369789706368014808495345199850455814422762816708123529124906253494764882797143480398113414471723688113277288013059160700112793035504931426298287932362431102412397173430435668134136406342399670878779433742611343718227675645156514541494485089701363206559067802807678480986017503109990388640294430251763222106036567122710487754603858834052733823504661658548942357265293933709694759386257699921606727942963099503339853820967735119167678985901381029822781941264586669350785427406017307603277310933826295469559163213762478631150590976272502715702977686656227627999576605564175168084887771371821998778752550640398201005551122017859687751405309954555114327423956550057235468278663572982736040097050320805751903746570894104587050095544032366083176332909021644122364107676941453335138996049708153667923534582399658049862601741214158256323034116910225430277730773042834182618272431076673613407776229783335153596377685814502465565295900147789123125248982884871748814998064860523029195119185138234073286221091640174932653673622645715061662878553242971487905082641683930228835007068061148168637352775525719666018821133712380850903026223755063864036595517375054138911196670895812525276739374353911554594916954802239792683927074330578844952650003665565508025434326424634742939060439496906738370502457058970714670134255835715351007173250862728040355304010160909057681759440033932398073367679041993853551510979325695094202977322361603854497284068495459800911915380751749882539911710720691628735747218543554278209009793163450366771317525382984016292340746159554409486015643532960510555348141322773414256518994137178739991015989610591675444087464895223345366691441711415499493615522407190725533873364895847183108883645124327325851226816414759772756581423444076362548874490802130442422871130242413485318133268570485683066955151465735846753478139988659161281507061824172003176866847613963794256593666474371900861782023392862214445955483249099406200712685899259207831619200375566825501314688331756669154361188952352479334658648913351575860226184509472203412156690388975258490062596405483066256827132430638230839028478479364643259538783831416520224459469904356617255857334777319257890932584786131903587818516528717261917594858567145427799980216779488326646395331914298230324926627950769323443739514952715493156730540761380079549771725746839397506208567530417887500307963857997007312368834834084362859484354318237276603049936921883661670482025230942160973637608798762569198636167279074851492309618056884173265314799748516275294098033411632915971115395256249617839721287941421787184521296463734221615471134350474993815741683995489317914263891470666783022141032532587069996584556285521479237109235883879574079884219354371537351616408878563604678390029931216564007452923232183986473886879339328733911841958103739415998712623686171329293475104524069588901194160052917963632568102844247493590871910348343309853453251159652159507979618440931848124787298224680839647465350092836600579076644893242647122617545821998455151067711642305458694058950803865800319819484694258913662249660478946821893671999546717770338736453089112638573393421259604941591922847071284085014816496939189852478996095290407622073156614469670816144755652382523932427251060659830187311875741729059332674116840389452727100250705979527381701194572170178296074055080807569478072214423245229759696027953503537664037764172581934647606236580730606535285752090085300146047042947721820031955608793265385634347675663597734414387828435111116675125583607776286828890755993474362732958806561572155446140969166209377283735928537006993070327997559138686862466496675486450668738641979788603321001661005381647032263524617284707443129364974278535192257667775462236522875960837751528614089162687461131082997616614331217580091713909640846221298393005899542425906350538332377935434269513499329813261402201795444381796527480338367522291320576208874463521435138961505278430046254758409432747396397043788079418042038021522280479745998979377051035318962654923830168981724574846512521995927803875442135168749659824973885958250277541899577336968631832788231296178401862561951556261551919128837909268486103444546752569750648873326569489144797412233251979128243557554543112430330136157918085610673226553182316474620656039376712888016106760203028198977802915882458335376227304599740063536775331520264227089423353057814882316268764142622142676856272287005124476975789096717246605538738193547776749155512262095268136832621002167575769569040402466920128265362519208744771152558760680017386483673942865051385986566392619955994771918475288260069503296955253084122188447078325192607690263045782267846622821395498552341370949064649464533642855881304748670182015573110150012359231446655688308853945015143307543420736077954995740168993767802334368520139039248208340766350998656446926707962664817078660829934559054304890444838071144459745904438013352103769561438284897589664788798404218039566846895590110729464224676484550203891279294282054655061834604462391805552311952856096222491685038248496392105327928334893266033820911970130721937124417987145032207428172406236024933296881986584051086568026156643924514732721717741001839262106679847357733506459803137591301854604516888517752890007961236949183500710049540755795289705866522991012679741996727185624251507528008767730546699034916225330768875018186963904109838411997604017125061883737973793401564420291187175211725195782065470240287197160765896763135702118221314788321495476813799325046949435230225830186707971718159072911210285699404133126140011274118513471392273971983391327030283749073638272702842282087368757814353378215356758420626149557384252917746765579792428426467372262569269100042136775166922023165124943078483115182659645620178989644381234017758300911157654379234226086925820029185092585067422200897960927537453172261841307957513045816910096983800900505296490522600500494355712040817492117735120331644468378777103540268363870062910413462973280574027172803228638782389019185619537821154224646567832177063397396721052986533533306474171503589586703044146220178038578623058753428366124394334299404761629418073058813770944527320652462683969052221597047367039662782266678127095418253699501661526287349062504789541894990148172297791820789283037635881585726213664583836586720509614785829923303977536691318008487204676603375991879960386130215412149558805458502916753235117756883123746364993755568789454898951126283623299771541035546294393152150153454065403185406670406137253445793352634111266959741674226208675431826140553080719751791173491388038473030392721727806081028673357740521490717940146224864749443786442505777175671283917059153901487035436238135550691584848493276133463086597724231686949065913999871943558924895767749428590015921705691483043864542745245927887678850173147592209436061866630732859999786747270661591877421693703028295586419004288760644910862853697811841374124326804438806199575452071226323717776612007996024948713215826863531940523609434355827385880412429160676104940691151848190343671174472275243566784894433759968123510454043203699819553517139844454902551775185275722375592481078488955895005366310048114228153106141445401395129937707371240622628984046444061125873084142090069915975626297151396886285957655922011106173360206624105776620057473885274691994072967566914633478897207848132344345978484678803419707913401154354536672338021490697608203877010606511484797167391999595048753725537481728702250697269388260413441943242731918241098287885695401818093515447033976809112495297460550172060828828816444359170727580465616036825635537240331282729790742303850382534536905555645931046339421500659973227789415711393348957242622787618715312573646786443073673982362918811555417691943852039004243256180844190075055054801178131022735788530619694596044792431752439860311153415578417109109929304108324446594766774202300492627189441768872631204344336402682139959223508910140416891408367021937907707089341292669792491996079046489728593464530047670065011774938124492305725847915128146965783147361445001507798933848565264888710959498625539350646114294167399172156920268349075431732951325924263384444506724968712842631957756441403502648249091044510005191478106066069734918504945936620609809090711595465263984722020588147284003624345480331027044863539192852018480521225561130239105900064144585352501472434761550996037028116621010793515965156116132749749018386300991066954437443511786530229239558711118284694873725684495648715889128597277275211798190887630658726349756768823438772161031389560136337051867100775127626583447135719244393153813941903939213837075132224615162810127953431616027307467320925122734875254594984412382233632795866933816832214868762843206310454176178903491474884955414414736320947541990317350446317517979836103328628077342714783406674170273974723596434542621669996001943426212073394787139643962783445650509554700893766886487987652890809128788602647799053658244176109816566960620023388222412018408445254351842261674990297969971474053227245061020703203354227511783262637383181053521800316901557976627374458906716427538654621953995094796249106751365099004299772035585253975935888636135144829876363069323162012326912358327462668108324727668688939319045439653917579406343256701479461343017295708004592246946741755526094940981250185633992543671892770498395857062106994542414846881720193278856815103013946198570868627722174204497537824578562674346741253769511380106275480880840975375844545370301174774503637058202169744697110233012086561663183906542209264036044550891679252543748391117425084253838258173484454006661658834605674725515853984718628554249937716387635766642477739458922029471897098784220742732397493191517859198243808227612216100344768837400567360189058933550727717853467947237454200283277420944335628960120121834132810743784418834430574747733295855613778873835551545300849442605161791705060472241115208438122906047913946431296576524919064800246286355538749251246377891673415624076183162606429482679202867202445495555205714900212090837887853201259114946744122450539192403568828016743484028864772145273831539481525987549720030157572554869549487435275202757968258930973003631292256098098444161622763570070721762856623362993038588517040506625980389286704598023721495150047833690761828003962869843177920199063714795021337992670393179437179350090279918005737697992091084891102976636976880625712861091525037157933566286641635905991887493012374996725397333781182358039113254004926301415893484656863477760628480347169725272996475686397698437420000241866645429121755714562218428377356487031337168682639884005894711080388334435868480686440816920852671562153423287850504036666711944224381249795127710651330233625598812367937674284590898370401942617783280580231789317681793455509689957677991582315406934568602868817771990171710409737757917632944598072954302663373581168460500173562856413820851228467561702693975189781723014103861998881172044904250940786081440944284431402394729782912503387120024494175078216100674768188113823017472735644663198150542659123119960951953789322456597032237353348874398742791465720959009444900934011479557432669313552063793050720528297790506030783138788714681249603942848402513409102195125328589556174881023463205223147802497659848862835882203512041294841625225432604725017681739081683330544301696209510504660853308529810392096335674893813760860082958030927176566654776983414959057947064040336748569696246872533162383677504754718116125227098701968181570380599018291031209977072118539933201286986029465825871937171566114046981214280493021933638647459984425033922059932259158900601286170524496273859971612861821272362185295125327041427677629793465101595713297375484455265914733621869998888776296023736641025128214139225372613333273132295824790609547526405079482758267912607218177962763376362903360687909556697757564730166223176497912017690785917631956427206889261780301187821532317929754119512749070705843810445030134507923132170393173492411617513719459375364879656381376020197862935840462511906571696563334211285846114687078157241490609930847203644650936217537694683124761755073169272578643961408441336378974198569012189514158802286732710158071846122953306450728039684841783997436941310357051836346309279762407468277781691843325854125138486617691165222028091517019506470428668172843540464030791957709749085362365585665220853021870917221078597528450423381447785527742409679447658200556164342814039561643888796217134750872940335442665932161352752843379652960173341958281391808376340955991777990570901201831187792821524961911911874286247471333157289312791669618578250436064356583493902113829095726431554781479950646538361365268544623789456649579268094477163759625476031497381294340690698190457935538364545583439696477848621846060325180691485065328016526693687367875110532592000435998245242957460255879580964646289323350540146990847312657063155614854589525753617144009200429889345645974287530658515095372072170785799479209274321748345760210574818863612786309110789884355472773882333792429984682670396016962798637279384015277724268358508704285668549126778639804227262986232211001141687627924072020679970743555673066380637157759681085364008394643406711195746331357004625432451955703515651563957202999225483858205641912385053478725926843885774727070325993965051250850254879748675063167055492137207289083739445803412648553190641086044085084666318709412582021685901778634274915244467454331309568714106996438514612451990661300232199646777996956194247414991378524172462104727652309843258245591491262365467046296891417388966965413415499984769011298028441850442144995856081258937574730911092513386119464218908371956055548577104115148426383546913871912202554311166912673048219712838984037356962258726441206748060706603189640246549910554219278612154916324448009431342526500959208654690156765240455872731291774060399280451352783348474749490400992007766958626495445411206290548423998940107971361365522768444075375704929522116033021609717174614687307350774575718167425151414587005899371785920994193556566634094826215522060222622578040894997920683008931032743186468022303171861321037871447833007337941514613967192047287413631778612332395694656235510657747612122704771600438425125767230241420018382184280355727669400388753908071758670263132492103812027489438638519547553663166788750432518868766763090665102173612050193732428038432328401677473348960848510636904636887591272064457312148769241515891696354896084321352418823747032309442252386043666192722732814294826202806541623773500748832551747947632154385585402903800001131577966473370908446718441754104587117724088643766365745387268058728516477101542435606800128175670785432072023186697572541257318591392732307999891307177242281936509691048786300016486944717018248608327334078969793172720185441148153784744147205511545675218010004661812887177398473066259214656693294177793360353483216398251258515891884423276194981500046162445868322138400039263410130551074836198056785027952255380747484075785844110352076299668492814765481077067513653979706018770924646446797426074574072063452015490280661981722882472686954124696527369756160455632117692763466468470813166956143860621172197178689645784505068358008092572611250083168400437037099977345245252067521699372311042078935870117901662636307208412327818755567191334406242780948623619177931092373923247867734575155287598103807727030094936695131445307842826743339789977119611712876772615325419609361829215514409977941337878430968686415344433554071412375346275190463555442851397266790153611002527130095981091186833249803147579873395705210808132082174988674790470361463233610003812623868958119083497752942216815700954914199731292827053187134855412332052485302530840300142500772523530160323900443103235705095709868859866520024699997530837069762022535766487712934348982461126541109994677375967365248330128110126100939498858815301062224314732833734595983152181114922806226420473383807344614998389506638710162987432293302972934037065996119975046182702322232171068692988401800006510685047543619826756107172332072670585176211194341874749055701731781673957286511687663415782222547954153732436043281974193339364867191466086805306565107116329567210511471110781856340643030895554711086495016057065310872959211666058336068505389999606782313639645562847384832413784029021485782078584539252313380264638970758244256918997667500741476645403588014530572428582091048756322212505469963742385997536441822207774301911119461728151644075985046000011578233004437930698869062982857111846710479533030701768963747879042730282530647806353932571247053556154191395975509811320443439424743515146080063092840509312286073070800418976214759571540891928260205730533770304016472954173188594197736443574862383849325872045128575887280993606287787393530177485598856333810688318983554636323779744949296579221285492415214437662409736615933706972520261367632382998566385599410634536797546214131294955535509542516094805459603471616384231623607486340197233820517456966188163373947184451809931346987888103512164060930877757681130612175159643256993677322617298963568883018309984432760689079939857865036654987137991318051277230414674866095336223483304053595786671470197759126872238932269953117626320125383619043194625149535245381274305492121627420144367476468007610193247131535465144070921632063048813204134300267234962049642548117388435948748484762775557827472405405089651999440882457204641265494497942920543635303381478156799774546333969292164408722313047961677008999231592125033125735411982550764127713394446440026734549648630889540960200980374687533984900818072344669136205250351176484856071022245642258350456952602114743040812080940086391355697911150469068084664195733621129153759348694887705337866179444945013271723162944241141498911404238583029169650717330445366525516764340413150072679725502571121508087013004002217656873790145848776837366642624249436221783373065090219683694541659729057408072443140725294109382655383619423512772567993244173460148738542812722032593945178070606914930988053503624324505983215044514587789122728219949734757075899288417425711002306166546520760976554899226467085894558354518856775402384911934690064812831558831680111567597178721922354447458274187743530165180458526700847729078687106307837588063846480252246251533780907572296632804010825771342539805468739389292210896798130979953569383392482899957860810708178445717809160464807974897719087968800881088874799987957355051861380198954178613137105347171146528831776377224426340848227591329338755657220713017368984092318305718768925838330183651477759843164481216697060516125358256776613122024445568545365442846569046263840107905472168876590167778482857571922478515309099109688969084641501609737249495667983697928208418974401580474755579313166568807964812668647971034851684172745695798750999345978425967669375229137833999376630665537502848728897961991822457004796206491858329778199260003036651367553934288974067426249180149669681141413974130371529677003114087427358286542207844441134680393497386633184664183172394852670316401888012806372403466455621009679355027883170043887018443718062799510632287772620520020695889948928909616530267166199701237866746029310344225576918912333049854898469240866914702121937219456669150219396544012148926941226510339116787963180026426596835078370788663566528450332239421842074113742802105186355183724037095015232235091241816865833335182975687104467935909984952112381566555748451737043772152045551695774316015199672295528884979097937693881863021262933417305897371208127279496944909057643952653530891390892313591816802776244721977515174053301265692475252464633736973630495265320825076968374335047293403134570736800319890269110513117506628465340782062143970579674298662531412622713932770232357855586561550700651042197481038516890470685462267770379032413408435234947647731628442410382274986851835629662954668740381707297772863549284509518118242593341727210941863998505610122044989750714526518811021671336740902831505555763599735985628312171090986425367214859903160242499417008349975460786274564170279252349801716443138729192163483631089102850329727670360324741112863006835911250452022364520940075727027263566083901923111538169847484550170749955445537921950864235529791261328372320843519217247270506157831048279465910351856352275207212381897990737164568743455692767584858495024688624625280426948066837312273834892245279878932091977398095999315157179097714133365276727021557948095169331192410160443143033660161772857919307290366845352090372389177304417985729060684114143631845556934545951268787398475631855676885688091176917590158647992397843005213295648532897567398337488015306964057978726821780422941468875161606396056646246404462642971920986806007756078936091243996568474144649762540723197355984808878953917103097501331899497258334302089375798160325263243510939518705879565017324842444524680337228145405766132327592917292381358890881748544108325617387253556308249313285372292472371841120209332175515489338401390676624811327294268818205532899289873648239118836407900760143450001723327666824240507413439370350385098211190268231315551269318751135770794694203574509020983525906083973693558744760286179213495224853934221276454726912194969044762101095876762033383383328250560233140417683807806265598142084866173898085213607731873636125860888676635158037135161414782939393107158792332843356829982426163175972613774798152696952458706235345136531773233722528276160773365848483663879934504137623414676833495494994341256344331792526451632476679528513684140418906617582261404974813689035165159538015749415850373690070991249076494047333488818033814044233750348974310832652239659184023286707972042491228323580822346125708432158518283056629028877894850635362743325570138039563967426818814482506583411408164355613467380273236603911523007104434404458770722635688080970666044865865643270241223368952939267577061283856636122145703861423883992937454327504779313706741844116065095324908275444319716966844449714777907936481112652262804658816511741675019671065550858985265286077642870791075944190732111588659430785328114220500324780844193960346668385862007943277926883688190878771447301027026177804592746583321740090791260019607971308437444360062735774159561160484365657315571207890534129151109332367656702151071211092028861006810627472898290932464927772940656167850909391465461973950332296129314101330956218074302124029289953353184578319426041015061901271715772988961011889443411741917426938054619114972581917464874723439252750312725992971512773532600600043726190087066017340561678328059706369561321404170947871028310986304951749035734121289245253897897411900370387330327699062973115786382551708776117135953998199952167102238440163523794758880543559756641692823643510585075058901046709111072207917042125435999451730557236745451938311072734362701448999982454910919186009282622017479579400679514499928631762331736906504342239829874431897066504031300249498457487515480119976506241554234706113947803949246368911411839403279750517608720921804070900492303683950464504294021385834353311403815975417343771079998006271614490106981177172022964280115390912196095044832553258466618593199745017894961361175531126172930871409490231204441464615070154261555141699901764322196134002327430823457087155042267656893299705201818864101401926910358081022807881412732869544755688737419407107268147607370435699812267580153302225293861443490417763148041106772046108664985130651643787096045167148636470785058773978411437042702603776552709799008248396587802821085298245741350324864647586643597514025265019994550972090424506515365497580307853728926559219520464957110166593752745288993781569349465431605303148901304370287254757114825943705497724966298670793111700229608701097630834818660597974752896381443229399311302463252450487976708914230652028928129596420617331824246940597409130611786492134213116733765606535376435567804106687130076596463005512553137463127053097790847450604473969687921544983259206095052268209194106693471706978532581348598716112888661936536123460020906449632174405197952197377975009111120431706817681215846729604297287317260676402390492199961868394052333159347502904240094920662774746425465143235032203955404318549850311909000606165683042120430309425210317008188781807350878229228638876151354596992962104337656163406321598571933403593099705846088240010482093701539672506738331589392500146252683574360057376086418006671246900626872004985971996891361707097303312033430414985333978314814433199707696530957919148274268093162978573898460561407956856824649453238226539534811988188321806610521990081680512850974226315033311597889474828738962270786484524361947851580680582812691132801045063379472358007161310950056532307666206426360341661321596290244908053586322035771487870302028225675897876348600400122696944657426457882173776452455094474240331563721890895501258382693201168049430806783434665049778767829304038976159515899890464496387512907677597451921226969074719421668385850440315035689134751993325994011828836353546053362806975982561233038626267243161034958219762948978975363096963428020304008556240751163885991322168482563746618308774332095870778017579905467010183515006893054189904730097790461839160186134240645380330378683513043335936732514524629980028589369476290114439704817097285810282436818932644530320744841620956505846032934164393111589570109697024748446998093965183685488839457638972826991802937472356491387963221784448236141096895642631794282430048684487990023156587562030334900527039177792052169811740641284170718986681635741359392369341773284890859097261258978565533650171053567250257460291280853979803914449249577765389563775777230857098159970604637683057951746671257599637344430413865049367608602369259420787873035583756138789439841819737291525629821434388448799408559957946571030485425405268967226085184779314968419878860794828416832642792400993302077801783234174410867753941261639248522988868218228511007614861217801590027634708772881159358288818691550699224146979926977519501490669141353856430064502137271367479119796408975602055618057288269827905305180484748191645944146613549857378428848185959729632335450046182531286900392170568855136894056245561943760357884204328273442263573039837553930213185873971283974909864053255201786498144936428039896911973335787826941991700235566036247596809141693443332672211250278449469410990855582538777462683914435466823971000301101440195688786985631443879375719667186339935225594388263376724090698134054612974733815006102199849458791758721748571496553039861079781319779035720993263229997794228428224102003815037089830262773789390157594402662523451009031704203470429757982208262039949488977342253810745394672837666445462296352790914811938888531465320444107403216790434997850036285602664232326137860264611393064034732747739803186944035585412682605964972516721583046349853743555955417897311525679849729229506403812726935708808726769299318412763156200135548957344705769231267107538917042088424371645629938847285229922441285843514261505759772682725855574832610165851126488381191345459071337041917679198048803018773550039917294300930712798213198648009472063693690306395702123332932066393651533167308586816375428627154652839239171642758997640245863803765732757594014909632610336886957618203865197435335138270434157541706463622200315648534937637170137368170180594445968932515223479267168984731961554251227370065220832155544717703251338272805773705871417933682816733415973205114788512915472828324847098446805138977110907760748210754082826431645307886589593978213365881943376125233474006971218074715353831539791051058126406731310084972827216433989622275634634912195591273888181953070763721683129717676268769632106166831676722803336086048716220651582766966157453093249524606366863168685077485660082373633965230791711244974985628697119321251563251554891114913964220794093812955738500511890568354021791068752950559387818341628154241416340662055433112069299192289088484070038527386308329862965767625768582871272775385400508343757003608266845940180246712338237999135846061219065587765659626888140768410753795338163333442461115932249847270018377346579355500021098675602397710542689444793557883896615071038965901889773034994399188543902987493607379556547432025285129834639025284296382464932272392181455377854963556647746001537988711828055272145456753426040202467482821058806256891367126963311890213818841682864091576421455958776541139477296846417672737994151532050292902576076688200720115149917246363424404122415044871920289056029743174005208282157705888493351174546541233716175104419159331705753798327511961889698414623658500926482089958272051608506565683357951430127255228925984133583641317170847006757322183906137381844862614789218227515777090938144354208990143087417932648535043428799725859232918358957275081598605111317421122895134836491639081535882636402895650200250569395088454814403224908848089328745017660863775867165186564383347973327308784354195628410233854526014921977650689435832754898204040497690532228468117082831108837998253961280830217854594675939208307869941205750036331062566767417598765434216088007274516957390250692260986185993685397247967661985959185968849835732154776386049281208699636208053082492571283985205208925165034815281498604268577550226966458748128628560271969451331795421844138371152119553327495234161859153527357849768504486748243706042025041345257813856828889814245233575727767739652161857775443703053105200770782791342565940616623492024091339402755927382941034416142332787998736290617419439845210009293315085679245562970247498943067344768168790563634683258026919668327326324424254234924849565248735909509826461815280561547303125869069400332219530287365909526765085377610559212206797509985229844382010939979118238748803713075944127701373854577542771002318293228544916536420725915988875857782834856066442019651803270497361428459260791943007024245067153828476419382943945990660254232260378266488269576775151653586369842095518976091507695854845762206825879265141058650566748399439533176947718666188920318164879697525313499740168572242012717837527895122581414931087187018262823743768604711495782886294104303201423939112775735015604670746220440444085538472416401273600690374195231034150870289949945272312248314396988588665847676817525475589429743052880760980314920561384106503396271077656934875870596945440380077340110933146023640992061553803330038391520030397588132408642930778721423182780546012694991429066246980296990651956180871628608949864345165372978480949216021980038509926080760301918832146689797875280276300048885392150935173172859769458654897228422142462629585807065280021355731324208955464310664432884664709914432119889382812647219965573780934848824202673612197284529430947922391456486164339468788311347687173506827963623817071139565158425719277157205588547358909150902012933275565168297684108116773330035930996467493166966084143567123271535511035867875598483516456672918543895143233930400843748103628812858024520500818834511939984019737438611412087439164970094891202903936519044691662079783884022566938658216079644495545155858997162102865442795134468174840317031282143641968485047842000256359673957530167960987409345170642663006169561848364835728942854492926265342718512296961331901571789517771267672723137113535505935802896459885510230793048931941088721268742019983049727426230513594710881107049501450361555470229116194432761408345201146890460395828454207203405992882007082649968118895858612000098237676012474426232534782395630155953000856773844316281813232403638993488031823220576444623504281530997230128303526013259807262222876157947800888927709710461548014017901378544758369249533111524011742771090778034871581098469431701321278195381022505889509667904247977614017851646448827780034459941649569890694168414047314494101200716809126996048597568635603251007571788297804473965698427144463973962340165354150664649331362504665554342684186639933008460397240526582183489716277553673355093226067187504204907312009194933911311955930001450597143400920090050752111134164540997877235512323854809374870591861558849784115100887630031678867530457995119335759484645722523165094977948910236747554626503580682422399678174285493736465726444877952481321417878562036776636275306496138789995076520400281883990104850929209309316063370384929862092070892935841746768453936529882861339016754237509105414972527498190729725701709562704428737238862141271539558115644705327951183717039265997326576330487976613708568755961223749492325103250260145165184792121854505125003551642686120964491546978596047043845712486467768190373681214131588703456767319611098260483441976326813031192093769952566062441215012637250588574390345588745757272460048861996874891226616559590527261634617825914922114741808268661569204151371666538650347146572648117940141587232765864237134474437819640297065103081006746314333587425987940897601586620909153321722452016492787377946941090271027893032565523612663049963203890821511270752607317141746284325063239990495567681928553602785619477793279533179990478951656513669579291605714266836503188851853268376482257862456637297051617281385626897362913703482529560483179744913029190240182768152632127229024609975950597922594547825425425918977069221846470265125761386389730672604984375100170625761827639506876639182164253524134653447580537471765006520475187783849484555751337060702133524247135120213299375188313489265488162177459077051308782657479328834692333223164098746893263059801118443775563970675147354995147955562913431953252054836958497828059960973231997559958753400262177430222072843311514762652184697908855125068066383724418133984355711172442794712364389107229268098395766674451463091694733199420386696601564225351698169705999123261449483256289624669485481162056643779784995123976766160724749520907289088037306436818546755003915867910305501535398529044250564580972282281263933857875808423141951104431322146497394316179981673533481426979792972777579790435033664290261905299358348949831787745737361415905017696732101138849426718974989110047888667729954298037293964154753921020030780111970738515228054168796636329747960169789423574566540387488122432738442400193716404030124903613178214838816232176873276594861551806763977291826714390692276266838686113551020930170404695242301958237960764248707981101056378692740605987686507814970503471472129553575887881515251012849695742160282950208081840457350108231542697812741413003290172818841178139600050999501790831055461856096724751315658111258434107800570677259234255917694766756095138365971608130226791753520874887257608318244723024042346140490182093865364689000797396264049542077317834514015727982237089925636289273315005120268143152511451884268442415266833262652823622907927696043039777043100057042712787805400059971260152660463227825183727427876860396361950005272082055134703673116079010680165434280983039731375248404554009242325229819646247166658168910892570036701911605309510187620985329774227542267860495772962252871206547147202678422557076482083692361984939099620910459636660948918176239875868439166097713205170998136893587213461482723136404016284178844116335298732687735887566963317954027247725199525603686824746830684502397549275122289695030171906178982909697900721049060773156158298078487661818688862156236794286312257005517391737575254141176371280583205114479485539348926802248796109657755128369065363099080202375196816204849833265332458774323946508859375788291412441492840076701364538911209314979560143620351135854544849575003169364650260650263814822939290199604482980673319828886877878149975451840680122192296905815702498051429545811142548839904966536686286372998392713471742281623730501549821776495150440310999633674201105297698043632889497037769182164085421994452438799047579432903848700284450104844735586073497581410597414679162763420147309267039554514052976418049726062055263564852797230033136337607469239978015129277187677613754032268954954367052232952952313756004694142740630584573081240851808239996036459394959293548255632939423246607897654430291464334237791088082769199977715661724549103486628463845128709056566556392205915881023104940053985697319300632503393123589549903100032160013501768490430533468926521438278716540143711490351492706912015809095612519568790104226536188884638766502277016032114971620028928534506215098052476064074443584195086475636984278553556420204774803962371112891403180446190444727540558884178365673685753927496036858748219951902624984579044910956959618606747782065974092368352342641733570307296253312847586469763119433213862697915295943381595202607167570034628857413068888595964717415114082733488595937429984995901941483474972357697786606153044139643883479999173213275245998590660366959256987035584771726383444720399007157745301979120592912365494700587523042853602751112575862460933864667051936283599795060888952745140104471040214350513014849262904836019194149594222083342213127206718910368487878550632640664152733795259835192208282444858106160242315834289207452206386056203958801150166301342687055105177686088363265090383964349357679418372016124466290853372136599236796068327923044815890743967635051156794051069697628100402792223497354325235458611611220334755536757112803307489195882111509702883097266949769258702413429272959641307238391164158570715014246204918669183549509785625195337175891273391303966987458006771545268882235006439301668445574209697966689572407982327558696863183675679336207799898609433675417399694230722321037707611744570053198346918706518217199204707974943300422972865274047445328222640579077733291533793631853446146334405986146602936982582256593753577049505578117377460658348383581342090765621587028855340406193592032071699127650686769283675301672377163493906794217256322400242297528660328296217330338606705632215194765923913566012662698459514557389946205830503810155740787552755632655274929849699025831883614028104434245579062617019937611617894013332112543858746385092240153089343605105202451603863370917537745853464898183722649520758187499284103910777408327931900833072116578360040769185957547076700836787717388044063762393411068634462414735577674185509777409873828564397864500273201439523394889741505127971530636220066162441967947629660753194494384427571085654240146784702437037844249333813314795481662477477789111195500595797270886262474966090617343046175262462731026498496399327404032478154993338079945150255690247238547662618780262543835680230940151062901824552360683784181030818066590305071893123582022414809933620937740209875252796876041279913745793695437527978694321587403578317633958375683403551143612962193130790469562063185804614870224582157912839327696007923013675952608282742973190723857259468546955462089612145985987195797675904167998946955767499696298171032500172543405483987199750075337840298108275617336281240405971378980076516201495734801409999354853784823834478092744524398089851202294061521614248053651863947709277921832830772751082112420555866991039776131438697289855871572180899002032771930434115377735676036666744297406319409892948725733267042405252882028500051672519769302159421448383055315686103408805211168744646533262758705067317483230904949874778023703102295761286938142659331364868300433438093849742483097623388175773856625294865568300716892715548678281591847831608240030532665029039279639928761792622899329099766629677332755353963417816555103074172382342471144989912606614115718148059252956405554726243895229362940952577017842955403138411300472463174673099481427159517995895217491277008299249570291067201793773000086626958673663458109711721544905393711720714876903202733963051233673174035756453901626551489966757343458054367331778494128549820088297436627908944914767957420766790432941488122736139177645839205409515982170428570845174693286036528165238715781501692204355868275057263736528113511607640212617853037070033222113852707475590224937690884117686539961866725734650735504091527718826596466376197156958678281957369515803453948780896967276066290953832575034691796853380160622341007018152373341680383723200066412305315806310820229848026990499004605788260733213742539489646004421647379495624408739010281050821336147145742251139305789080765062585636293602826861635744251653816717941313616084927991002940871854406020665886325928955597174179950089882793434163221550787150103555613744537254699727751942073847592505240877151970388273323088306455722489703284346208536712452838529639292453396701199059485936763959980033784400173744515901589632247294380508301354099357863068738576425906918324819967235391533087448436224299040839697746332038590473721494292069676713098303862113415732721049532808071009906543408437180361110312869051654742489665093277544407045404586531563466632869633548357822432529529762602759920878807730798774212374912421577697932556506107295525881989182080975114736344356108268061155528245739759468400181712113490959264475879641412788415685827165905274325397927772279637631669723122437399467682983900448964913657024373718368132568073754839077073025104202620144590375612733733808337627477137585432954654136408483480737490938652286396471377423738609022952058870380144244293688762198345389330286846843203277539958993948888237119887981250452611529598352729721348916875546645545437799378239324893143175406065844485963033507080090582718923166252719087488484857138455971271791830384444933938860138322064533059418550058327818102804267830697917278937201593691073466959797963712633239634357967227067904068917064817785097007224659223007336188295849240581301390044960990382537096263904543365687673900746931225226373256786903583758820509342149606945248836475420500527836656683876582953112282575764237655247145206887366004053616953419195805414339283240830129887684258522765147426038516507830286413244396320707928502359072338332533225639493741439045132561848598713393747090754538575321566238271938280793210749731499114911194643422849107032261777542314430126223903854348940683363681043471907219917492695586731077545231588717325535019653047890161335734333830784167898390907033907927388841967073392888365691818649545515479304264396254117782725950806484984094162466507504423881757491938343999275584532514336811493424932846632197713093712442949889854073678303498677111269625589053836662667279632084174068490265731543533843210046289864249312231447612061532003274551931769284176230222702709457799856667273010619094822308454255645443423572027120876535004589826650283709297402655146152598671096153261800730135514802510437801755987396592388829986093689336846204736198108858020054929286900484137236265614993180786402238129646977171094435183514283925428991324609007296137667939553564508562423477478179704300800194031331822230627620989333302460614979481057401949060255700084023329414620798988822771328331608471043262852956821115934803367073492657960566473956186469014221942482100017959656366552033352668200995901708507482878832498978311022528278733006608671468033921510125708620215824339850502438639441322711563360978110479463771349673459221960443380431720256418400462261517579976867737699081176807830744718046989878735286530896349204359585420849704731256117736042847850333960147310500128973419638579487413144510856876816142969347362525112754189537240255323727110095171058853312840428691055800902213728738050663938707541932642128166406350507191270604653118435148312112230143996575366622702872962456216948341945920157248734324208415715942057630826374788040718481627660099241329489475262957578116640055980810795278168486301880286492048218770768850124563480418634900993024457656340215561782810146847993820168846794971800380656199902763119577678734501847183126014515155446313548058560545806019773553807011526785068319595446082435311091606227673291905721154120896972804687666887021483094263978130124443062098986966299944292312619027278403370980690683244001052697917124997164982214049392914783346111491916077384943190076240997130472798210862863073458793449017569197568918207762284982062928207568071370491269723657089828396480170490930066607266753981943642611627602391908303160735446988165540217316759840387928378029545217179383409708072744618246861944581851858352876471534456540195213754434368982671189324346555621393943619246165943957302630438582258748230159839875273083184849925082568373939046176847718181129435509759552590511002642226012135756352867276587304685352483375891269899768866748094070986775213163598854244509363425530423413800945014008839728490490411618127340698344180930515566885297654072653163605894747952874644932072649857926634895038865511019146931616276061673547387071694456811514654041254619305592690963682911582850449185232048645414030611112621058776856963626279028036275798543995315105069666709726456981432548270306173550405052322854763470780756014797809533179421324439282720237742821543207491981872753377345780562240310805370526899839794694428667313278272655485837777114319584021998254108145636410251090037378342334589718437543294457453939628656686028858034086756330450609714850966909135284640787011028124740988045357986455996144021160627733709091495678213668070084450962710317604545157008801882147548696827539110562240724795720102699520162176581217236492145449621597149715112344060210634977123446995791746887340914352652201060840380205237214930935984991811664701638985469434600587664496218041617333360225236757723316764394155543624034227984964822361490953491357733546181578023042264170126567228148229188019896711880308249660098522934425454723811773015579767811075180567178108847399354257467928229923512009355078926293439861306438234039795001185120500905424275516136646927368307967497630431090687859692205821234140082647909233836980004784427157489909859053230831120076013305529124818254956095983930735300117215792781534748364735970712751704810033506226601886930151996306982255135509443374743755929623386998493053718721119198154828929557244196500181542661282374265921332511262945802799899973576808457635654343422538128145690849383608152905355912418627670056941424601636347965216806441647500695708775798218546927839540891029801766069985729669002353440623682280722942196076770063276410801231009043191668550835819481905017359567331059448643993220447784068621809343558319175273883742970816434524637217713650074242526010104584903530145300777059244443132914494301404074105470237774455244883445880569367829535507094563828835718471057878984147313639008853144501682004803543694739610219912775221724239557682923374056625868968686757895074736283247188997178005491101057658211580732298168922710003814042010236158467778853037225058538319259770460813971947900037464773401491588206954619508406961667634178316705799051508635445051404250553788630500239819369738079180740330013302647194079122687246680043794086239172983194168025352704264804663254974441530196381732643281334064528557675748262274600625365601584492358173064393956923382649444811763681982658396248356407591070489279278753006526471466935289307834443066304823535051823969583371926979761809348509809962757851279016675936652136882853109810257880742142910672016150936977277411100711624129554895469275106230503763674525673983858462844688752058668499401670079751198544140561584632574108207161180889468717701599794267075931947949486116766562486257728667794557550037896721822018568313829371153612232842717155022820731284903385483047519700744104579922504439121995415709957025734908623767956266657427475874415549992477685220077309016640031988557218619957981838667491400930216135290529883606493832183519244130127023246433922610246564524557640755629519126655816905474367157973921228442442047004835262186227901342490245176387556251155430471688353997328777933967247077563555831793913670398942231891597816364553353007876876779121541526021522432056905900720783314025837940537695894970926204605929392503278941783123739701171073462250837496037221718489758708445014159605291019187952601568509631901052520103237349890025356732922079713291539995690716199305001413007439873245725013573665745221630455982412663304131262141316942541503792413624779702205972421356055574722822527172891723418425690248784014579536564647763874914926341123723384168520107064940204761423526777231109292394116059430462172681110859223774902472871433679180445507795485802874510599986439098343147459769278435115846800964112428016903897638847103470282290839339578839555967560456570073987813241330187722859877060488928795413719493113903800961068395702707333080603897103892604710471286061268342109587659136336005781573218173346905335396201343400107925121633389079855675856709168075843656428731500131781410983948048002504060397916221181579821619274848094987743162889816369791279411256589670614747241048019316933812937506387550523662036264055106435126076979761280259706524532761494831638456434177032528034734829271859848670956075657160601637712259474843963316320680194491547637762001588192269347656559614193908376539203114249654806673236332746384533920086794157243691058719975842674076332015362278817803600453567385250332514808760854148968034522348042271668994791304145490830229236135117175352501716827500747941048298581530634768674004510622297854432721865456162797960732896975052075347950581878796241891378678556817419521547990617621473987314400700310026846089072921270105781916390588747261087782988141405596547760955562654770264106486436965997363610582582064359659281155968009652011799167561832680677300738863246627354258568708226432891562345905757425013749100550577708541744073211959958229858856705291685872059155342385355391011842579279619183587297812212266968925434840879522498180292063017918237219030421374164270416023255863827419945731299228880771454014100122243307060500019796351514007854774784494793593886816532785956748925687283080670242091661371541027502565435042718142994261362946732954234652017835221246575668427159538961201059702124591095659593558241250012638473031842654813149038626505288000672481134717098240530644592692429532105138448578672321819267104799766301073928449747556397620472062601743812591811742418673178143947715816370254358354007334405576637684364837272429522807159378860749711195117389300720601197380960584621944510544762874373222245496563405463581023690463559453986214754207164668236032337219391816467994820446558323904751332811015258779538474785214469552903319049911382728380236520696051474527909254724922322296455289330733921426235753841419251065230685530291893610150847105408768020709277047449061181819925492126251666213134756163195213382012038234867044078401547513366969467637896908267307048289599725227318149555937918252048820083570308082808975139471303039040803768554013030717143686077412382130552313271054835874628910178292862180208965703769039068694600907776145266399513334881218957484001265821432134070682096180359111373091895802522248697211061076355178728282951685944769064154309287052422519870013796016646930559261550813572347947643214187326679030080543396107014025532218451916431153378425744563255064957904744762515165856158213496794315476599191754358544389382015628959914083795644147798987433059863828061849479930024370888496180320655676222854741524338668764603166218273353765846945451453390535162657413183288027105843867752846941880681366000898745277203424336478527338509999755220904771484802434128561124529913476210841950554837438182670250606025869533485756118393526749916890705962318943041870546197003099618478585446138167920914527656185211569309600471191829083448298339416777785453142468105445649432404616973653288107563126409424381140395928007795063172416491459670334062873679923026971221275027781947992208292215805593638069979487678357435056055527515949084234730539026150995922277583286287135646797285681723925615882397871209622106222750846559284575386242568834908360259828106063083325107652695546416899848691155186998212486149901143782340930375168969860750781805839075273182562077648016753145874155151483717341261974895597135089025456667698414654096230095658677175803816047912023214784143320320145720341257316868455122792410769291988824285871587831827952735410439405500353649512866363839567271412215558982627144592043202971137216667757837185868266922718695006603023137160159992356073648349001787693675480661406476044778795136808664280765998988205978005732091306804086474427593026152828656341082591229009949163346642948209723423137340527538730997349425793695583389006130864579162961316539762545460818927076537694480374271421850484890105893506798070417832499669122236219416064673890375894471654269832964848586344886328628935533839127772538620569609814382923250449886079123121523440942567176086859632231456583708682184283533484685975651079947914420397559475910684231761646388843222518562371662831914202514590481435396139174809041177754116606423205358902137534123468288777189543501963180267428787689484169997822154571276505009030330127171260150996628029306248554397391223565617176687233887555559916309334775223937238443608197556391108028264815144013369232982595396227121593107803664958130281064326643268444310072751033789224597662902411357511037386437154032306942631672685063979918270345671271454538793574259272815287098830364402255978865241016698026027990384246582894014438648635008253587935246288705304109374857206826588378562897662504718735738806341736804416395044625488524077133356823613650772167255811878160921233634577437214588885159460846751410194368748311037660067240717130805904526602881533374262999936711477061506428535300912850240651765606664244312091864195732438730296244470942369941469938884118157256616852203988695633562499958912802642317332450552080200229479158109004364726290670887886328420222220277463544123169709063755527415065666206211430772414464981868057353873484449794554946420534325607421508349022774018594085797109254476029803114639874119813957675586782173838970545117163161972832994200993875072460166372117918740211612402785536438836965860694407849489763249763217489468885730929027617840732359749613294322749200809195762972073507994892717819326672576487106316933123705952363094783772881397356425009405977568271529413331176179003023314218235608072644972279905262343130145124605528538041393517356027454500236739935927224397869170301309703883835642272986486221143489292991628519881491647169348191993627572383151761311920144469925320826878270205275894959960882618316683858316824522964335091668391901186984244807453471850743011984298144237114396318780219625544292637960771989555194829669692739863109535323795584358179861377392548333587926119210682317538950859570260316258280419949363632359401047622540920687054293300621372780126048559180470755464560340074351271409740038122435289011318446338360925840498669468103118939374795717221915645175302309875884924086973133249511265283097843962559824870171807103710239090924562269774349323831162185757827592322558082335477641834730519291575476532261304419004426325100451781886034213333676211489463427394307251027709953900808946916698713236294977042957116322588552345217865347503560076395208476028527658684122454847394510562034936454692765506861898125560198257420198163968822301117010307454717130834686666431475452465039145839228028309196718018259922669131460431869284640613747579782370021721619773018158498661918072733310104305986339122706860759213430430034973890695545779364354944279794527041458701741420907327067062277933354044662780169804649315953860997708950029082471100272028860869882109470172047277546297688621827567482795021819205756696387345180397865638447345725093439702537933772870279155716463010464769166802693672244356077785536118026055561587093958839634494652714345947790667014646243509829941183822033964021934976294369920934796831000230146188473717594145062654170899556671672345895143767095031129768039885275378479341656552050940573526142161743210297965767624508413881341701662717220646251187158486796786673040863636605974300183265859450820754163499959528569159254625701041097004053215243741360401846655745569829847362706745136749822312637143892945221714674131515885471996090194551588499601220916273975194824662639035692152103000273671322590554439015634024297532192572915817474772933614013621692861294351225219559264091990262775727543569543552650395455566420937350417924200112196606337766525651719470169347022398647230615650089505944359769559736377105876362820030358451736492731363880462943805610192417017787898722200991704717252934456815837494104018013396449154030174674020771495458599042879561658084086196980238972484461360633092920362697624882004504481207706506611039913558826694960233834783899335990519826847119875853988274141277640802872127701020916123229255432879740856784018664702876833543068347614224287142670007602812792026429517735403335128484347048289621454509237920887892253729989337482922910167621360066690632561587783942096429929356747247021802630721010568521223484932888348580429878256164833477944967747220759836181929444469632439604068911340477806792026597597595441629030767182481851102603899762452220475481173057952347241410438801891334757778290887754696641300542008830308903892048181086793934990788301998391306072358101325173328235042508821588908446322567336020787497128283877082269447352919970813899543703467448073574534015099473538704826850360513523139787087530761726192628404152837566442310049581138432072212184773306778276597035293891098249115813636892403842839472703218839542769407012147830548296588637546382004967907676043553888005458596898781361012188983755718112548439466897996632981051966265763620393076629251799045846173204402478384147646479251325488884338412046462450292468827626135129528155821592377844500968150697947200126440697432645172503877816411366350693572872966320479202012955110642525770238201451387453526649617602955129841532235701390305814713389483212097990928683778937020110638461157848631384731573127316911277443423671242676919730068768677790124905970099633308736739896249616311139115585956090357662572844262964894238213765501288705748107312956056072770895071213854023595471218861643468013848827145518013111519176857486971764975562009136663750124099343813165300680671877053120329028937032455772632415295325134579135342449230141746859834448213519984183693465889430932602437098507356589469677684497425672223950618789066078212655452929547778493074224585126606430379438000505620168105866447794051995861430756169051980840912276877559632813910176868685450517315636781326393812818557575072492067392555388734546950800464201644375504494017517687250539862283774949164139089684842042477660395024581746950336914481658500789579503091352784742850956193756594748704128085070214681468977881151887024738471915907777674759265328886944511641581597034069418176893600907013812878260042082593278012677536957377623047847901389705340048150720364838044825949606122787132869053990021018408375897295779366643343335170790690798922269865920677694327046630785951001934536932777309428078111842896827742675621663417727031835386696130399844039139170643750438617465578450262883255036196910142158484003927560851760622452601125500769559347807483686385113432174658847739729302869122440322446838111093080095092727087216183795549557286195961845674663189132623934216706880133139246765929068884213080384830668716942948462127122871427732220082630109774871896761788522817910679650062029636360022785403104668227730003564044515230386396011326873437851310309451291813677726316305150476045543125256343743598088112374780791958855709014996675602477419514943962168543614796319520299559759408750947274809501580030213217500138254767139223993759541198769349268618409129422191589834372488946738587712298526845585936374948734735228096055269943966515789839047034518881294372783653533814083764872588753164612459731386740770700820780543228330290144363127391310172464635738575999975019248458766308622063127217619045354699690928926873584691241856384343699469722008116470668483013901167386986606851425195254523598668792395328068724651882709455346043706488585622840221569527573299172160578897192384682587461087374658640771473007657902495416720469015652427706967407877450572365532208975629848890737060446900294494112175636639962103942809295947857184791881188328722149766708921303938004398840670968246993064342850162191341478320043174711740450445093347643925740550382457334003776297520259962312224414843648398879952159574649845426814872105637279511581662751004916604505103366612049059299227330688950169786113720309567386543341707617527005682543492790457091028559377457258468618133198702285522239538095756258621389698701400973494957807498961923971229600891561118379644500539246359888287892270188099225982016971178148756318358426920926078803537550892890622680853525355880170172588612536376093157280616236694984416386819258205710227248605279432962331069701694757512794527948895534500221857908861480994568133593404487958930448901547854801533861196504631761029361762061821918728250545282349048384728990832105273622458234524048959109983785740411248612342795343764596072770934059442268696560539239329306665674434980549927377714479559222185801274556053097185034844738458714607096620183338370267003743418025034888057820335547359332152506203111370425641915970428614786505188713457562500071758976674944054938774560588045008300663398373249418717146492380678829688993689926939385505761831921222410485979688647266803430573068486397661433769342974088209188830179099346593116149993373179394690609809133147409440167858559861282551367237630579649763574037582040304906744963871507663860296982325269530509245658215370978700924418585563431899326705467969436367922220905836553456718686805413423178602290486284612352692253273313307396930656871180787519579659621063004398397191322221288669697687955128600944076652372204181083014079360632831894026040026984756664931024141199099450238278225726600788121450817310616159777154155340783980669788965593902730602872026214022767717379582252781504317872226757022675415233487254303481736547475469356987558394181232393615948650755680132780030668818731779455476117682757420282668078813108896099212471637599162089928084366919374507470824936531449735335021034208831435944095852533943871277931479041559685018721255261148334232476941528386617116146182561473920715955703333454515883013188150083828814277257185860062835123117754876535508881904602214449640203812412669459375849718574072731784647505357784385980576240683653982683032991946700668709158179863302247757942660856297974334301861257659547427223932994361960025245125304767825176590536953460399594578647742155807171476330847680081667018061959074840140817517525878095011910313405488205396963827187825137738843422613437546524662954114533210425618528619966871474565872162719038203582871005461229476831225902180314773510859008173131286035808977789523194211271325115387994294430520780892489307125983548971185414740615141831846967161224133527592067285809894198830557458582346083649628020080366274648499273780890806174530407066494611389753806636569632464345654751948238273289718782427451284894513902597639577502363603173524232400145461681792032614933605760131534634883954742204615793130942929912546123462260143131152195435378306116172563540081006977129828137534418171639438583500477124216329627610930099651606458683650455664635507494440190478767077130259932059574395379407151676128960058753386377717041544003020138651074625394576737251034498752450265892486253661130467961498942961130426891592867875780203579597368348373932566575831711755023937364765791858330027432358252348179319186234555832293041704103482121617040609949208648531622915065568794679270733191133482938988455029058197671902444855016484238532145649714300517720372909266626466262925376999494567060893959904451609244545310152568432475691235907124094693773796210537482939074179245724661903252169081046440501909713365513150365224309734590555810331891023508565641547796377231205689117577543067358228905169958941725851590937815414435987499065310688169711408961456752406338726155308301055625261732445667596645001396686409297648702431093481639208463716847121215969919207392483727417317719703352237733494559675798923121861329780754594336111996250700519181088393170359838361353145496210125133112909836247265055953990590417600534114245384079727669724840041234493961087105334303539153479345556075733292690643580450348565690310674325930307606632598338708492193660061269935633206871999956657871899922391070978094779631566971028315348959148548925727359022814152843946373250754596457295132950925139755453925621048880266855273318755099709617387307318800553435605399728408941285083173790817279984810964715777101485125380491731592487550414514561343726281376855724298808351629583210258160825862450718167110427268940004780214068638113909626818257533757814850529536132265164069237654327426857345703344196566157121265751194112687757999054627412036418982327030070732267324445924113836644243811650781093549709016794792908808172947339557442548169517481442729537248833324421781199689347876603129162115916943319514203893523068232590064934292922981459842605161679549824238157319849239083546955038708593358598469472426474310278485722199053031120523327493279973756505994129670481898723563434286502373310651378385534000208907354581349522573614324157879060502324200533937770731734883920539013176898747127311995888501188140314815626960854508892856820448329283407182709098338388904948820028208244210583534716330724736328494156171927212729849668648236557343767868556294501418947579262620297975492949007058002177029098164221280900819265859917954666559995622743368548637855027815054092986420661319627495036584376232760529930350729046813580815145077323665010186840016444452195050760685438725962366115033408413612530605117999712532559460581236238073344753890756638528684580302070501829573728904655976489664469219698537914041946949661507520065050392927604448696870570350138175720826727076144829460677624486105726087660983738737268934999919764261278749389694145884748837108968327783875482577472687227582371726177264441478504126943052353166759428039728955468586852905236759237545115522042449631659114742350719919691495743931864459922155171005950546397858923333538690179549022513925141782122186366912057213889186121058104196740606720379807172663598688007547861214982098856026219596930127721760720652220514949339947526291216740540983944507883775468129524238590097045455963076417262502728121631840049308884437949134253094483186496939103685115666050012210247391478130422676896919376225509993642064099523733598503146745118679024369048754999249747758668463595836433782470418653921120294750440037852017397512402275636185185600377492342951142798152305292679239525879718344035220904522637887446611671272881353938581902935704230591700823831223116077502042508947586377488555534279513961386886119728093579818361599847832010990999651028198367143464238139720235391636261400460850560266315716279711335558677440999369258558791720906370593079633961864302071826318357542251446172129911245096301155486833875259116366157483363986696074114277736430358142104547714040002773910279817517606818409457051656742268030593557169808169347366872409655486482604431493651651361139199170560325264501563781967726368583447436245370132711119510557660434431580809562678182159784378328427246686721555592439112099560895292864680050757346323660357017846700173702397178315115413367305336798436332909173148083209049502070573410036222569320565627065104139005018277042429554787930796809849170999263610006057951836257265043509843392479974948311027576629064232673228401082388860863053062264738496950434816604366275593133896855792199722150394762654037348679355801816576799827552808521519878936654817555928155891512246454350372124847881873015236960071612831221386128921043317869587025713854170774789048839865653154004718510582440128442307607684163286244766854713370731215672984568300576105079242556778064289535974826894340729387120401593589673743595969196848860172199765247885197635006091895101416213786091490525072384504937655570925819644186748676559430803013561010802252600770871637538325605888167284307720352697431148759021384334476898746880666530485462853419450306302190361209715650029384841000830928908721329509655089056102920716565041646667475284334558432289858863983211989162827542566896049562780143237373551260384870995500707403562020784128094905981318639660222750375679726168863098934179790829998523081986722166066696445252619595226874152269149901725531487213051454264591014843237809491018731162611112758965900284458926736630695375063887388999641371706536439799435483851280662030817611104976403304801942155871201723981192613590395067090337941021881241991104942437218457823478037734661987528107878573117454721279369031549157229008840464151548956204144926700261830952448958558395959244722739995580640189956422498053204506170784156333975470089324807428290593364220374551697396771641728794585854890063510695906727935134055277343327737436630094980090303390892679112158649291498179470134743755155657109202942268839543596014224589657001268373660167698199573694357766886002713734269306652114513182754077980578882044740582082446982377651471448922055802212572002034133820039980423891760968894686693565897869299363304495478544195862365488674343448580471772911055130468949980722669812098919857302212426909373191410662706221219496525019730744277831847865376597192641411651742244296148714382956158313286893887908888076807413144665081350858739010654282938942229391904004119682779176340154884974888357090729014568895474248946722500531434239033720760738535939600577064950796788640802086666533519827120172998133145813578318184416494633210347140867031673562251872965755332261006755407211995346117247665010723652080194611674859303490391899331454866707371113871526957231230802190994861586045673961376734137668483477239260833799639949357665598337152585387012178495840474395130525151150503183314693861328377502967267643569702766106554580853882029128382437201924130069543155952270994487165442094043661533846705001140880147125901308995553373186445210326799244903828120900024989327495278863436785199432539429949261963143433082323494611172637665635543100277954475381869581224644203105805416162188878383080138051346332229363020699612754217047112132370895075628201104773495004871661794690769174784603416276128986057312916395959975618633547124236622593883852812550118826937910209338044023334556473843731293946397364832329061951146802479904794021180550407345678591510255156527524937297994636708679576126304850492104979152547470361754822942645007637847287260519777172573859391650984738446992120793210453123762939579813288610118229570319895314619780695153975935562703181437611091019017716374262270829467122635634840881409423737411396611541621398413220251487610859949702896889129578834369526978566714069959531060481042889615969758016421359658000735351105976116377463727496177118506777590537154285657321160640834151696093884855946504172924136258224867744024881081394170518780080145332331446176647779728833940014459000658526530544306577383890064719581340533655524731674138305710126000820020798493381017034323758488468840253664829318938191318746559755900027348269601829849151099486272234118905155685328546401170138009226228926656335617305535940459993618024480967145272952275660201755982325553725007140786469617885001669948151434274306801888639028770929030517346940306425028367747877569525403386708290568234003053966235957109292219657455612110426540610169662948502689500212054100406011215865844560292829794810184402185397671351624845370209804475676008079398622184109002470337437728162124465978500439263569900081319210004331856497697664851084869609412295611486808364674317421070572347375609340729978058500603855055725063730697114107224692978678059960960789649404283139213666327341668609655195425880508519649243555132977041697809088577266283208376883093105030294647403678965541114996089916246596705103522008618783643937064632365305717017983393802864012658641915088796135233124543694366360037524091562454379631340845769352545999832084140498194894361482838913704289537251403955212995695724952453358780118974723404466058681663109264451428777133421518492689563623357278127439209697574143087446104172719944141785592471374990918946951454720577486421278414125121582160635181335226544438084963294792903865021388246928047363132975279410502672073321693919263639851428100664957245643310019190816591082386413048462940869249973045307854799169760818844204187234798717373496233030705034876976878173230508344545879616793561226039241293790271382056166451788356456694909032137075295062469279484658231844862161509349385641078329857526280212367462882569205980875220703967236642756535101484595638161677486964823675883313862733994656726799344537317795821094428151064108994139315149364587456354060521147599863221170559781451586375671867123760295734798684748787016130221054299761970369743282454138598278601562533721109000886998766986094704047868386456897182775654731268011341540503960946977607865302561590099448066029179367396090305116180993591207114706437274046544794457804226421028886247709123399630524423340844394342207003369633002639444507163309775359954374303931692243352642182641575673517743809413398450180670996608763332463499867096404915793817545835150909694393137731994543923906810965718590016678775528669885436270702926390256577532392940662896521171793042775474496541706273625872938572387651332054799211391484002188537697409778686179909660284925790067867830532122907220188463246996969485445058689342761321879946369270930041589247347187379047166988370133615994486480529574658217840520328796066353056566234657377939571978163268653381039831279802334018555782028578507131703098669678710389959884635322353550675028175639036672412166128089310460743152532325653326442615022168204914137565320280714991052285163591587938264790029505142376120488888004236796508666843919876167501255055385944758489057149891744870745968409840406071354774805263982023854309499883816888912310716479813361582133820438008627843810231379242006731991651714746082185315976339545699202375371756839328990412879105530051353061263942260275804261104004504125822161163378702143666276893489151505783644462933844763897695430456221081985329473942892054115497066238176661148902784323207624487495846696003456634060553501077502402154678930241177448713834988228931533224065752358308977083600309231571329619481756141854785404619346018907218581000405385235557600175741267592451564242302761892875204943621096334728148247992007463581853064018009722525135753396989832702224430153347333527082503054869866161741317824637323616259777065849538172862282719838127596640245047473193703605878808519768318223465178214177872872075189993092207467629069887872220792623241712573895854359947351745524294820668364545196008398636800051797922790988510612270192328953182246637320493467846278789790436729145337276942479600265847793472248070858477921569907712538731147672484756025231559145686540918828231387965589734627501045078775023898639341187037669958938397468318485441007817823836404913082768588899453408905296679025236840610769342650801049426783472358465602449580819954886388268085276398694934403217230472294321680002679966018821018244840956863595522953322728421573976910488001470687812796581528273984747764531401023639277455096056192807639009101499374257246501162005655602852666809009123596257828060804902129358257503844730106845315319778183921512057510851572323589949661502790148029104256336582900446130734754515020974700090853653366966220641052537829942105217389902211172274527894512126782552112032913062543143635977283594847228288579100192090455363147588329629251712969794882400353769616465393550067303143141548350013652827149614163159337863573990249524658426525294978580359109932260854221143046730208954276165242602059929093488935823881411989322389486345735240647008079396718846045652165712012317370823166819646474756258777561096111222467157082182828120397398628311075208493416833965826805187066076825393174904401976119304224870066545094406602564994976374574612703421738912376182713774516843334777276369549154740098707375331332595649265753904652915985913082068614606986996265172429527179646312054133888970838003127586428824648163304676131001103728343425310810140461063809897604470969769867836130911055762772026338430626053811894795240753037036684691026947083699807063997423761297200082371983131808276894970190152601089501687041847747416197194518819084393227070504270742672239063112984611338680916680501460148916428389023052749595524129841502535697668489430680648838119254183811310354333916720422055584389479642945875325287047826336036979184615965203702372754963484766070570587055644465872826604556778703687510794518484932969574755229577402257048102330114399633773707815544875076668361023400699327043916613553184388687796798865661029777961291439261014512215042212777591094136960942631149517264486102294306012857769865769275010611870679097127410447414309957329917881873092349561836892929357180462743280039192227534628744200151511734858058869190708617212328375794623513153342021785568118535579911488619316280016225699387319298554664575761225314207825347893051482454214151777792120490343863023822222303041548498526985774686282802003872820578021018661269082434945307281058096071319294036070154048833433577179370275930151196761651749247462541799301765500900379631378493414704786575567346789672530849624238449239330891466766929370519906705874070286942314579426576761958678911881873196891441225812931964503318995748878191936016792498930159859826823441679950942436160849176898515532680498804177691667948597152088474767063792801438128390419558143847485235599757377497383896148124231049580810636025120348059633534553923826263653666763863109481589475112657348259782504668423040959012365049925576302025967968407664769802096790831740540416547107775967298773777965926556947579996444128914996897323554031533943508978019530400991921270591165925260205398715350863096396262116463450098829421024851965470576084976521693901381894165036841011476342272173009369323371511149734406238635480907268550855096432868629040909791913136942214356535657611994096242848181773454824876541726819044518294082296496782597328882545987053133761338135801880719121680618715106116871551763441493434966859607773684237601679794082951017513452720817408968323882749762387712700796262514047101398060755003280907974663546577802321042125018384023779519359509416940405889195357603834579499147462915874157302745197998722175770634747109711918320891996281167304128007137152733828555046554147445172670772266751944684947431338237081840211978659548336218443164991160597435384618744802910487032568637250373829421418669994478557073264334364681137040968832553988618143641833981040952715854795202423345133626697811359907065382575296105639954038578786140227415736478258665353388096581839710607763198344421596208413734274818897949623227361351503319115982494350427569458105129781375508212787316708488642126044797041108083518062540514575460035290071791328846634567517917916014607407205836172542587731302104099371179137335087116480858052863153029529041307901433669612019087331832356548774059653216699073050558078709298610398341343271337722264586605988170796803176876142979202907204073729481436605234758877239046149301084258123034672986248334148382814204783321358956435206385942490229785854630217812718258590538544897791674205659123491615562514378618371924762470444970813269159927871367601479134082216441081674011293372580212134536950597146305256409445150667886053783245230393637318779225418552187430056801295782909272753163564815010474762002142484370960481231568714229131869132032559060530392572051819284335829599245709635661568263990840328532534060231933433189800970409142411496043925517729374648519125127398641546955321477298559532865480494411834503729757649274925146869114156762920077961420464225980361518681309888743474963302932125655660257611156225032514150431237733846476113000033398864957938435398983853795484889946282067077666970210487560830887077491896757049544634586282588042863999174504120012509391152020029361611657886516796242262564410664619984297148350185510613985980852994472736734331448760509130272465303406133255920102128741177419001314849850679823750608453196630002573962353288209960898455220635612358411100990891316197809424777454071279238099833773147524967549149655008176152744548754098962011199480203127639737518406644985897179482833449677917706627946471496672171157175813232443307846941825532717583422817178731159138923406101381910076766520483988279056955639202267040952684008080141724977250326613088498901145503548285801444565086318140456913883213609857651437789942878569447734925620646301267964931065294264326182969792644053579079800149453396788564908198861037424030605742334127685577717147558950282005151988671634086088447525237220622635904466337961825055725437759504288756775522667004467758485050554376614749396133449526398404372062317827710485529798795608652444197451740042271704187515525847934483104742089371350135253552382841168567873994546382507162541597156930155756122871163084032283211821679458361205469841525194425730638537713647315689917370341576915557274063389593976976373710715936510106088826885851251997690355489106620937094694107323661093787345285423686543946446137383638194040616047116120112674137691105530870228810783111175148558933923545527937169202345346947640281600090668938687598521901008537363456933228348285933552546014275628563992970756023193438282116351248692754640897884942180852493336707051139023530747140075937415258694330518744929789545889062122075055231238985404111723293872539386282293956634164087868956951608869740255169109867720628711292794820918070100737603456782890387594137675489370248543663717688809188420673460551586051248947478092764690471577718910958582764221913901205662126604620207156551673430265792055497412679837391005894037969070224458428586016964190799591831954275266180163049492201582086890865442294244472598455211581578592243401055076412913020892969180043450212086589084612556165658726841466151401118790707493252522971623157916498180180644367587287116399795001456937076492569541307052307165187067481395921267898229822342115384067636012554907903853994174994107472057118847563025103065601048561153774743593854824183335737182014122127780893860184552778836089531094036335172864900667886229530500316117787304689502023261885387249638530858383536167264636330600937089027070330222771127794111134419011439669522115844169441142937826782819115574988450244082300399986939156954000369323615110518074949512146927646110541207527992090343127672649099665829961930761909244114553481118607348903715200310713457236666759315150619438322637312137586243380418576543855748655602747131552406914639867336491540332159112463586320972305086754993558820875315379648081620264385549226788709765477029185181548891762497913140767819693284642124531948031848146066010659697227822967527983795790510900273529514730787336979513515308146377918860106642417659466158462877544312249287140710748571049216258592129574049316497727307498812518414164305263604390510018281392590438740829285588031306349163415467764941267217026773253430863199234881838860822914954995858506545215188286971419048553973884377366966634426489540615157760770587981775884964819434197614874964442782008865564302923126633454563757102884620059192796011382461884338207940774142719788370686111068291375936975440249324020697971234285124975302689961804798901802173364029435690176619323428227748347530489678693212114685833824691254974874622644418745140995881087083614846566688123755869723276821710810667372991952557926204760891954856423641560283041048625094733287400116855442043113958181606651222150324119451694253700971942924186441962743430766957893136229027951404307272996819839397729726704983898915290839277926862053429448618183571492929512039271926223396185639662443797680815839933548789580839092010401490083273283862017321424095908529896410370133237654421976114299536925697335710179530771192852700640057745648268210473295504140095535060479123013227358144081265954550882610047250243390864247096066347831365881410077920046006927404778324508987904653105770346169756994717565343866055699867186594587265286464832139259105777630177903572127277552327825316203475367944336436226669546688591743739192522861036815929600967028837815680392272294882300186397171604926884075652071639171167711370289766550382513351145378735865589275161381607100031388448979682275583134187556917714271349851529486304377988522615908019941060927452303452471585116363486496769337561118250383893485852407545337213203128195706297727863409166148651638052633811699853962492381808143812701255212499277466739300341685478199729284037913238948122376697543307388755614047525669021121076222135186583320612792050809333352726377865408127481610950044748085687126850654062793382911514869704708984905138381543124504726503606763103711332305502657363010484026334963248278332144337330649209834525411735616314322519986439114098521057953876884471219532020951795059671766369612539389032340900003886713590705069827023938372303643234024284725821907579853222129288192074745013823036863457907009478581949091449607269320483568918877249287880948052067074939907472895848711181109806550064521519765613635864210395898137116629213367074576427617741391839890764489799062194276100955695538940266282669567462084578047062618156855649991148519017516782350217376546876016426677922278194348052197123857066947727287356239465941047474085518510791934300519760066496742348896154211592095340549068079204869893901646457518885563255133287099197884987230711904398741491692393588109891333080875061114059462059103934523088415903613339838911407377514273970699671018474719032060796811444109149302219087113762335779930329437105361655002078054325857894445789727873769452590681126064622374264978649600237576150169647515060269869251515793490768712384621774546683150097853898829712896999625735663442519805781585531518163686218012576790536886951456352150765502825636199367576104743727641887087433732508381177048699927482397970394120088793385472191794900057504976531103543877453547521144719261432023883001158459907070252878593913307233057251488366210708406584093064091738244266606554357725761159690383560980656101009539877761291294014397938806705508865579716999595111286424717814505347393001715500599125437215583945067217867671673736418025894000884428505878621620521313908384138003199654914564782293894491556653550165649241780639543860004294990572262489547726204493445924880662293109652952294166812200284827948551376215741320625856044095396325253520053895552489102731677660088035168588726881119208319671055172686680334721671898116829645973655509229405164616239551400067478487415720561875475884115838708505637511654018353453819199303782322303818726991444580543256659581905747910575630903455496011404829835027627647507672638953697754223514487737531982438450018835809488548541926546004329033176659568913208769514100913098528617816103592946292884587677736324895043537860981873691391013045245421309984278729711616712728552827146501085893690535711450856817265579256268092427299167465696106666440578799927407464707847754949919651712627578867452263035251688557996487811205593998626096316751638766314479955514527201551768575117082894391479324518500006596624604843643506204966610047566497721363455213836404379913109190462221832262608230910491305836095359189163843819396599713117011335103474244383177497459678393600819316909374503272264380512740191658069189807312735568741513347118543402766670912387287725019371175228374237664253686262534324281209041552860487029019426928458544481604770954345430229211186269928275853430978732977294063995150565461377517972761581770042571233882416514912872193220310986662318323715242066435268077506884862011559964246124003865076359006414518763384629293698568770397448078065415860415898474638780361698690677648798671640027106913350094689915840752994566389117315158132022321569855631764835688899591203147948391232100414848853478231522075673239459243003542160082314624501112011482238120227662226199173774035041106410810793554100536349216083867933410203156268164090847908683112104418046313306229959131829521352629698876713925894696667912270886693787476058271928892444740158476747995782119525564732926802065039969105170475901985520004384039412266174329907717125989961650650246551544942092077979937007566897832620765418049380687171248401552760255698335810539452354703344281138319804912730427563392739431144311785144408706962768723814101291510672425139520031875111864410611059452958413130509768045983158309337032079838745778450081537465435397449743988037157217802785504693390178453775473798121176643235381690942428977078735385084851463386344044587555489031472516952626608578790619453832065882514948311050925294703813606770227948819879484091355013446401507526479646427373695506742718352679071881625395794553321481192718706339636758719834143384653119067545001749875556777875290072429444920685923274497196506837821009535312690370462063199749918089555405237294937967355194756108919181016680303684083142390309146462215760544277340041893866566937421695737438471735630012607192500936193404788461447698152688719847823046495050814411105793232113132121833063499253398352132990405487309414484344186545527609734779949122243636339269719362240384989145730603549912022200234786366111043146015172833155124822338507250007046062004767825258633485209377975313119870950469526065672674128386364667038778664018718010728396842878899188085930589251001229437001915487129245540609243204226119698425157991219877743879308946755504474745301492509734316163624633926787218875193987108911371444832784285276491219704789733850220917913270498089391028950693440607212989488464503533698301446009496258058412876628927178380731329271546495161147268607436365463748529271061134630186653164548776521659046386408615312027387307409206530636705968531165467761997743855460433168696751255626191221712327384333510168198794278999033828197020689078167094793055342506380411717571481910220475395897761727223837782218759569070476426021844873981780024127152976167304101977776836965939672414211783965167168183410136142204392443830283108194103763460342591092419389584883630959529079233864774746684693103465048942197032215051690666830785353783362778700168470562909072336949605251649983518145420477778118939301265206058985029576792925055657810993058861652884194592339703606005952208306667389037482347901060340104568381791017205258106323918887062043383947722175454888756705249053765191921047120170447292986481386199549332030316975859844367154029730067483732391104002923080391323157785001071149965145225199569604033110883268250922082946403128671764197610941747183725084519973129917631589211049882713622363732376172750166935489572212616460544702222119209968713471110110795127805936534954867803577238386312660686592754269827778400344343987196686120073203737965606800536399767425303335660048781389083258361976945145250053088121159718377603643128257621132079395776972100557338385295402357161321971213165583630758011938866556378314199275315034032576858762029459234747175912596158228765932122577701228176188716512639261851375258242269230597800573916809563054989892982171571941182711905411377594275313481082510046466250918011391475418090338263557110480158202409580798019326606205966090817275895416462171086619415831044800105953776333700343935337676214638306345510656532241835334193574594174015873073458030703927893002323002627789996444653314720972178013854126305555117236769707809517454521157500175097203932302367400858579930229403345435257466062408823576097198613537532578051091189627811650182230056466914676264671251824845878221381104394799527113034972801029736140314592483073924371079652231676330389077875616693080314997807490691031304177662775545081968968652233116120924489157927691108489457659662263920896738502255818565195982117499942730490013828387345709901683807167779229004527362779020223542929701890448147215042679975489529919452039826992727647814220340913242046098646804226204713848414430992524232817329825288822901915892709653952767706555345603952135827805434628394924934516990100607502056121275815770064963705012877107351186072210304100423018875529672707991102395152724547333739881768281936047114707511113158235319536313091785511506861065923423124345175748823301610817276083082737319951891771538436031006346587204113488846697652259045016932516859133431972895215904051713821121980873984482994810020654775232029904396515496115167621707199681799356536089582752989129026420173927298857247231647894187921589488208193354241918358533905477724530901827063901671134532063831443224804743358893300318100300639965557300043308020842390943514698713024005297409536597174230398395103814356986590973258089678622173650241545986092262922968656487302567662338528532597732676325326768542850072271596542234511778563365199962282531784647207401819694258921453689870006475079532626938694757934695856562114234587786930793801960725611339448248285537552304405923375742376659218019355397710414076128359613023145812721756680834162734376088151443030965554746057772105766424934828259077649132444800734883111405181894155253002143732192678661002585615831203219627559929877088933404777920619383312695187818589893428072920710037899974480435759474013363868136393048499665784972403470781609835897271457152427905357750113487353788464171819869413340890232866284426774798499969296857701889564077762440621267902091383772700348865397802138686407939569973648195901657616230006655722395013081721908352095220518692631195721638430604018143616766711423648530775690275870048696966982832367395872211428810772662460242841847719843796066622972135014557288432886543942799998249632364900785613266821648405192959580170768532900838765145638734718569655558893818092521559407182054551844868061146228978836787941087104534059612882259331507275632803165967435394932538359912603130160728404335021687407992569247887243797255233591885971870332259120922411682575441373251952758743271836933570703382583255718879919784074661424676334938031240442649399053193094354193047607843717936346115658734075423488064795724686375285619773918013519100795369819652100475678824411375235122154189102699666254554330966122435438239837226777151853095925027537213874437358290999719765013797726166712670859082697245190811021862373347279090440798357793376806527060269882032400147032113096110709263829330194995841062101320265870207871344156621012868655249561144822688744962338715810226188602753591053007352759424530027046768124990778376935047903149263288220869592777704191688715833263232922434128353043852737855894251851627873421188238441840881397147156952092497293150818281876170212844677660205233441355633735052675704983135897674156675276544933692007099725274149134712204601118628996251861498747204395831908131870546990969233674181414895571024320463626698642650245595484725219058035314967457996604774479620191869698653391796189415645983259706170075907625131621831324912607943478776113867779828033694951716020158771020856789761561768184397392126923860686623756092527659897145165219589801838303797057551645947257317635381174750287980221936362047976589394570259786384965890961812252887958564802456003498683003610365246383121574918461212833140177170730398048374087166807631823042907072752592858793969204439362253608306308531350915893431921078826316627395022748762850306099581059370509857211410848009859475867150702974459042032624058879686519878590736963492799125696511206986374746220418001939860398198623703210857989915404555620297920425188325771497021242678955996456740111593921175555615940922324545869675029454345004694160452617685124935475244865447337734237914309069952731291311513568702893122637673587843396323882724717432971139889899089876820161276714640755507734455105818301816413677716184152613769260441491809666875673371207076786791884562576168905875267245875038124115960164010069885964426673718686299687979712494996366305680310266752168237859318149570452370367280164117748421469385743215194574756391184141023953520009391205714410102799570237910621749468789061292146850487406970381381275604280182398247863714209762862201002188235236512777602523572701898846218002551818987463536594419382238461187741061980521287298368231827111658099962050308602876675090547821276547152812544066923645083614367992837864594385693122457990112719906084290748696131080465684370591774662232263978166950393771678752840808959724274860307872287527730994120986303991385626851048235154455286256637921625417890297486032447187689702076784675455104556955726881617234933726378888062952244504633678301185198048424424076179179407319774145773119379593820284462711319071403103679932181153782885710929535508274064100964850690318867747577997606058554540628288699639522235774675310233816215840556008636131800641474790277357491652800022189237300471806004957662621791721298926849573605374740115334890349172407149711078324009501993839485443245010789283465599243337948713272387880226022869670038079415972085374018100005947621808209661259811214253030765622294418639849849660566971606907652334855100294453335349290413663541337289498749009211627176464500575669389198312180660537525440290270172896517077282542896839773500274090714467816539408006820612216120386184424804246628831920621630994686056342898498373275477862557821353732827471176592286309251806905420437767077884517148223408480402345217536506669129044175488026274820397625192261222460853677579161643138539303444556494198320660710259740230219971250763231880007148525838868413195294638180769684250539041813532955639534776591463061218178181781516575826846928173705765160240495568336808818682917516101040061760525497333778175310225401557804503379266631957381117440768068848386791437961463318932567247862316611844726877351894214818097040794571982376949176384936313854061355166255713611275695181925348151554410568016755172340142494447855476525321609310495600850762437527443740070044407539806679325815572629711905626037515950126213979416737873330338231650729772364716179456125667089651087010424205596513155224387362939382239909021157775188047050845330069249363785245734610428198720452440673841351797730970206226504862379116609927927113828047406526584285042441374261523549221409963858963294425188827604354786934511625127892267569830507629306807961093326223073306640700977572157642719255219261921107013501867058408591978027715532459159577629291020056060618701782353659547588328034305160193426910996443910791541503459895253794403886637308961349070267922172840412941533091020968170043394534793001578735172969574297042977217737086309592648767311261259132547420584272235540320933401742238426368023373336813596725328265619123534196946659715440481951983497599623052684387850432755489177014571420251569985488209506302089095583072575272217669865055434003442495428237381561107281314250430201206974745883714967933752802103269063206971895996407235019249529707487290135885763886673401145261834386345707835705904091227162460127758077995174907058010009886592708907326449127403868479427571300445008105013241567671839738525247683256058907277477306449739376728535953820293085240035321158168121841554681110149968616348816770429504721180326605311341180852614099403372394541060168456630380291660843473396996132389656164301564762942518893698711780212266232882089253240665788632772308974059873891661879949153154394110523419206387732248330097658224323557713447786931727600898749977824985674105263149375176944113516150017109695157931771948607812637931778922562797982684572977649376678509910234790728628105850970256983744636428731750456407596514167733296024437614968637496438834970277979303993570557148525649402053537906801393778530865284961693616288005757586256309602537530084129063847636025090311851768520984256836722645667452989994128342736970977798860927721813391695161122598816140993373192578382837488932049476396354967581730797965127713885078793177276346137088520663983403377176272152445655142439371258497213702285467151694695487266317505197459722667905245527421603216479790606909737725750913657151685834680459581129818096111359392082114846213881970481545050694309533834752152872717636542717369242954080748437907755813318400966035220989419995378978638418888761278718134154419196021497044668489686080383302455222792937433387424355334643518235291965558629044685002529699253352844916696578643226987996989131385748658441351118606506741598445011012624234155449702232388146061146510682617117742486629740739372235261012972460666228213977145178770360840556907345637373203925598693799810376476811203367222603628790878618916190767129139947579873812026587825021915236321307054440492456373935396615843305968931133613435560271294647000810681445795936539612860533301725020222645192107088781082003257344146647684079142446201227838154352314175400552504817701446242342847340328644357647821286735984146111435723553212943282421553889292624196676017567244785104947347506810390021887456995467277466164565011258186406075486365318743887647696241333732058255086277805922785780595396876205801529285796697063496724457093127137590708650704905264374252604046628357371617953739435615659960762715260736785043760829542161815818361096352994251215548656281627710845247931431585628262097655252754655549133301952840719827402936880126271352224336673220524335583638598835244363957018396212765355268110815257011735035399698627421365656594806477765780787804274339965279654834653428311694426384433326446572648540658077260112995154717873023012306905176672828014559258552921698448338079291107466175105240597265888775707529399838345139870646889906939480525795521867675571693519181159682307934598571612504833955983349059194307544007517507454258830638449941865929151249667197094644999483479444861427377271130523206647652955363518919432915271922393423925489842024631947237235907946107727818874950478307426134923040292701710299037484244443598149172961381931953538545962241460011522236516118970427074384991551518781749073632698642032298535496816059743184702529618215565622915409969754331689744394558143539108104478717846316697769237760419125354551529849635226147290682911864200871204912531642699377168336818776408942961517437406551003692801325769244569374919345993368305211073385959402486011777791233256747034773035817255759151567544315583008487068898969870300449599855975973470826155797374971857485854982194153633627066183345501860125631837198686536720202132052445921186666979017521876037346015199000771780679245765764890990250527869522624391538585243339278965029818479487533059975047229396628927640473938101471002117731063178858758060615971746812215187197507392265911467496050732017424965444797762095973685312805531489320175910784911959559339896508999298087491839203696218791110272026159993087886622398187627653647240422488086366382408663068562364849267513137092028595174935724877927966280763653445096981715298733620498327599852571848010557721687981968979172994027879421501371513089016746870642258585931694403997057502335065809976309321016078569426799650303203103276467137902698210541030276227634280932240928396904982644658504935047371203951575330386908068416467549988907344776865997264994599156722269035636152180371433699607751025891768712806265645258058210263960868375304945018700488744241936132225752627514829533903670785207217598606416934358855061297887753524077590113946101167983926248028378646025338743582634897167505401074541455430711720383180743179854007722810004244356905175824691756361711822051140264695118870711610904269257843792202655738301898597256145579398798351674880331935572863307353812037019595020826655936141346930379771731654155901333512839448240637218061366772703179804192744854137691017308000624195651116753222128646364519364883026271950205058862181862051079396453958627609561678434745026726258150465156289337100449301935511279476263742790174924003860819744719506485141660941978104937900432442082954661948764793555913669308934320955511115579145340537170643209143481032283608317837423865193427395278870916438031354146922766454151789088609595008500250085064692523519599873466620794137065782836112382188004916603408618700318754583207906365712599737345090009233388234581681083538641086098219001470529291565403453623902659977585147529484076286426465924732809820416328544630098835382041247077095832005840410991558727773576923078754870421046285029483603047057507374875452717308769044367565213355871515301449519244195561791444088492606433825961216514002163843913184041689845012020680373567151577907080389044792204072488909784514741634704811805671063688628101035974514910356015234246395098862547508768749559213522764865941920678803710355013444492443601149420861332612783739205634329726927470108985109268898944260859423808802990034491938290631147953022315766597328673655499600512946667898825093606796685556724594613466613698789190492324624440197827797037101312711894046607500568494960645653997633082415101678071571446208943278040077421413313279044162424883477540329015582931971059397925288841582401474563668021505311434218181639712522522602862647501508940192906293125499477414065202167558797728956167320549632177248330151362140598912094798248857290284533118904791846429812028138810901476952857615727327322459264481072348763815811389538833135110769385428065932887634816620226671576745868760221268599777816663853376548905742861349641074190379758603669078383058293390363151868779965410181303368177146974459314788093635143360787588077267512427994807579555253771973218860201238527058602587812235250406124796673960258892349619969179423611894825501358400975321966119387562335510635129924855423517406138586622031732490816251788806034698608769473659269928764198503379904015242594225155864733600377439059791440146873132196408613262522966732689487397102027598978629107194832915526880813718704696559117030794814045252533689239124900615312053096256878264384047125322984399859467802570812341917393996756746849942773693718829545868528052911908749209382790152905783422062133540895874219467550867136748417192498379637524666128273613094667366516264755232198319336645968285471363697800518114145899979324649967554088863986231760743657846995225643984876185812507970421437052764919699709672176713230687935423398500271260199324215878655515163908151592316673546047507756805075915174790795714116892506236676463732941621596740981285195169057679054224177721827670400486827598303507449522438379214351521717620454390046428061389066646732484253677771764603830526914182739392129916803367922922388076561403904536661987170567180427828436466793598150600053467634717457587954424281287261829635341747090406978110844283809118680192190518198334681227376239997860480978706910541332013715146477005946726524200433863964637407566395741405078593734445716313273976916527518342835197762953839873563733350891313901612147693813222779745220078413806474018433026190877142024955840886994486941003322542682054530949660285728880408535215846648775625915898965769159381315649730956398820966502448628340039701613381867287965584307037494130434449716444939075748691728475086107452544678584324736090678432522324807193299816567164555495790336762953205221453390360117074568470620500780389630950662088452202242099160220280018277760853659548829518203392081378807087417193618019932437221064194927772651272941146256945573370875517880473696232763019589286057028466677194271198916669261572809566967220560253560668764272482870850971337848420397646683103147043932200484408691397751615112950302994981231347460286645847934822757148374480764152853858681258394187721794251284110594441147451567664514875466969472038741784883620541594424015921054681622787821853725664970488642369810307795096186189842650640096187800628000161482088083914763093590310884240441466613456093394003721138039264626270967224512770903724092855121996624926107294882084057147060989585852460918753465429933593902262641122486907101648731583607683151238276537162204320477401158571055938834127806018643475456991204468610664255262182610137237097211657265277705609186716610218169468845945322856604287010840385679216025032379702909688268156874884476402769143325451526043423291585909952263199327369892543605300861287341122005451776526966817611283774496608155253959949921150024268260628349185872256868021563627520653512971245591631569437277152442785625702706708703444609834794467680760415639463643256290090585482713707835296913363579928325708282920525543098792891889155499172785405161466841411467630252333733912159904425952573928037145582847916802366922822333019395091106732477680476265439824803645018474750192120750864077551071051243894013190112060893753488218824193899911486008915298955258219628780143452570313250502046319996867092724121474167167417716936411507067433083901605081691308617362880901672691881114670597232683616091478791150539803183139343356103094894609032029507134962454071113687864920193404562876339521644913015110174180773924845886625392202332618172328553514641272033843302352771741363124448113328114459559371803165536441166381354830797586263945971472905119278626654960233674701849355605727429461467306313432043555758224307063518707890360096444424563637844613799585694279600941631441770653055139708149193362831774420526861812717262490802476249015686921929789582613062397849952704163499295545914649242072105507407585481719204447136438716650812993162795067977127799624331499976531908693536052967228935670823827852039237779990534494976085059893960292769336695944789213454405195962767133496297215696705849994280136119239783501316222173897401889200038502801499201963470762610977350200918111445286676834935192460325361452596896226226432490011976656713416086346749887000036939339595667367663168262224850964698364373761607080936578265020494357134009847590975066659148239812026192052376993455280467866662471000464633421719063386734967425225716661912406972909269166010846244596885741303456922694783451137049971500922041630850479951035435178828621928096302772517889263776471820011378738921128333098844274966445841902700086968530593889404730879619500141818183489396159290470904032976242900500462431584553903029643513886634673527014859112986172543532243598816716563582429036120132775643046648928772213594171999610722927845038882042864647270052328613544243390379421345077962921487830011508920545750939849851304171400958182349638911855062692056335432009385397209951450530412199400856678663937391898066185392541907565960281117367439076008858525125161802659416584432791740282966625166695531305355289729554805549856218128493378237894497165111761105745145937690853075982887215899886225919307396943332445211360958478202544065161740413082374981338418065338383460888059349970800776193531105894660019651201738404628681531224058297091569437499449348027065944521639779918841860772241299279517047864916636098595056682079386332491604345046504770030109001254071395656867421083201783530399881616827319522967519641293506441626785803365182430573934329710820021557481574171961326251366784254340421309970898852218857039572229141420523117214373143196160884087803042593535651476997955285573938565831520148699109644737682129109789206953257683076160753325263226538765696911035890885112549374572627346646486193338884139449013580384045052722547636285841892042305234671923441874989148389292739146741437475885452408144012240974702196358321616879655479854403496727533771851789540513083132575274586239862042405961565079084833839960318233611401156550132678139419174749284993056516600303319515841369375573910232350222712357140615231821429243927213648216208348570979003774479330196526120063953656475655918097442067292226806044544145767671881151411051174481613554052898513403447394946646567036773388961932576278364728348156851966429461192755212519682929363580938639270209378789130634880386309643112321534493423971854587755508466856901297933239971906561692146368569565404351066787463703481756339021353208015016417398748942196736017988416627201719000428717374251680493819104046483543281912247072597311918957104525644418065666494690612699557669667158176746512800495859706448970102818073644429671632800029319276677975287233963185594526640815919438473199931045741218461491781493355801563048993401295951867757757166750681453666347096514873481243560248386100699492531636659863727606106778705601904708365476165609536093964713232089458401069055475563222178010063966624683431221569199540882053913834776543409804450054547795204106957608598428040259786902417410156832275663260049852640185085674083331163185665952312938681321038353920648598245380488838591137648886875540015799168961246110711547720515049478851910532812129406744036131280439802027932517492596745866639664583265133672086064357853427103350873131038384485529602193451165079981958956259325820597141406666232502005141198365561066584670596235769936601001521416743500593773765972874149227333699109072054106221216045847085491618427212157359356013360062989401515130308735715767301395480123560785130622176783014524203024772575962607172496943795029780772338897232621916613963835175962688342511956851384179069426527360919361206964318215315438350251214763300659311275477120303741380562392124099586474224453914282044683605857207533828315953119638781203080641341600297168676042623781495554918982243162244889737336136720524497006409109979913934185700207925187693915024657231063269786187079173927338630298860914338717250148292197464792564792175225747005908538677765638285881470331467169180546662588090753439521295161349721575265851615531136119797254362477526553895109899039552070210432765797269337455285134534077658079885069339372813787105451919367264456172827561012932121401606198153180913804872468943725270291180353019001968112830567689558271615804925969882144719690090460015601589171628293356278815742470107148051637183910490091945204470717216925350220039317584357399803936862030487410099737773586024057702303749364873474726014359828964155048077286569458780657185327823473401426337074502618202232443775980929774846101394214338057754908518077086723658511436310698108550912727433192344355284503609955239819043746098677365701067041864450715536657929489737376416404947861407940911920831249523761864959299830644372775699884463089657280727729669939387462811706730246325994964762391574206269783112092644800603495058869963774171272495027199669438448419484693648419950706327225182725431068695897321847002033021543007898470920576427023125282416225764181893405917089935701307612908655944029078655387137135666640817271451204189953174261566129399009491899329836539986893724103512987473021188759697807906420372726129751690253485355695068869838732696758885437499684606531486292167943116539545307844926077499548641957174622427976590867533649636615017771940315487657612261341694217346132177952578552912945942223947950375324360878596069511876963017695897661613530972615281175595246530355935933290927883285541092992321346661964956463596345200156383849485544482515474441299675305271738529398697643379744792869977219882093803770049097523873354913877690054839233569861250422187339233923471098272595242704827960330380889141062138846435884517305873607183637521358858444951784727771155233276988698857616603871733032423126639513394695518344227433732992637295107119617121884800885034008784831564617436916896202007725887761696561682305337016321121095985894271162881867541465917665190317101267384550513831434087540555627735640798728859186426165731229723891409696243569080547760673670727822551720366623971818222917939522404028533751531838093530577227193014585826218297351491128740899999342521662106275830486850517405128189017183620246822161428507277441372975881045193882586985635212189617281502719146066390153389510037003117367860639556947395292141583566224864491422142399312611793483219681223857274849147311070418216927827966758551681266392769827675493935629446376906782781035703180847822186095620501116127850513524524507513480073483144638656245517659506859629583869408904450188735926459889645922073429392885034904014066508755680632099010260244249292657846613670132060149363553376548987849070191217754856282707387857953323457561510521745662608388966738523288792904043388569858550926250252609555122483657522475510492240743530840115357468179884424152647493660460045675467528588695508164936629083516404493225077109368999023722902829768602219952744584919986245350269341090106594298530810383500025104487006364223129481967103332904793137021417837710858239216922985781575674754797373222990400968821017727673524048267115519924178826925999853925534761902645173041366006317684323376274649946876747784548863925598514974045912488626327754977236549797496373433905078976593741720218430346036588072287423966637285481276237849325461606511165373132968272026779502700091149932860775596216432001290343386840203028743469119137197600398121099118281376482340704738617640737442947776531707400255900408072159779540636806984089479836661805948778063596974281260807825839149054018274557561231429178891984153272953648991803433450812171049761292409120097671721805026952827769939231815320152936488333434335060462497641338866667046150387876774477064078713551532795121316791378750726705415028648903004851664050119483430441876169762455772359945641725725389424747970856365197666352970115337736792307812620287896506611503015760751015869849736268943720914203368285086423626656274076232864813462010515674054166455231679615152860439720641364172965065961900258382289731485751454091074352622120695305215074664412549118833097068557726504267168512690112619625392163117907897332006379785262811530923196693863707049613200791404014624291826801659007497563874711829091520961447885346779707519968368509434913547196117859470609500281772129308239477357063234251729918148313401431899034548225188259497383362115996944866714019894466894304458589663767387520849647772043319887946801028449443383313876910904277660074572700278781074248975881102671869754077919894242404983238283872640923424254169584832017564761795731899875209025837034287275632215399270948731546043346949300731068427140688550070394734823327569879438411076451712940481119712355496553593641529942055949261002955192893255340625738807554350949101190998619605026970626084533312067706139717774545063119153195823426052581824846378206319651266669481888329355302001189546089545274784057476308336219641366568159300960494140224528105046547182287127214038476807525861178665989522533520414792225961416674504674435682443575230476122785360695070099556818033509608800409643498159873411221365287217751996334415032522467650216891467200688811883772744726559202291505906823134750270977761732050051165122589095894395188888556921246464341689033001117237896001463465676708002454578890144496730177318405813375876526652016776606028456585199554940840285579944390352888032652348748770649092170274540395516935310453087768440264971961635436960117603266669954311143185117339500384429952315489555287870005959379317306944636976467645215630005394600512891676728060583207746277911905753445076314944316770652244591658328301090186506250309007131525336621382824374977299600800182403594932008209737177502634706399406494472451796409316453606945588959418386635821860633956197815943194794579517395951320429558756928948881012423021528527225942955716970429964958697988216795934591433192640497283892921863070267699977685739959474658497096241626300969603439863433323950238530431756468781172182873916289868875803101699355427435713614588238087863361885151400074052192429470376766127123214716975689881164100160061434272098673786326658441792008997463164731104395019928168274618546703117774822816178350808934673360963071948488665647630886176137509103393928059909592482807633922214454509154582836969257055366426471222441938570374562645984937858063603715129217045154354656145459435220731753032511181332666064816673043368513252127856760798630948766793427670961432404764828051118328671009069077657766805245741234328979557774056171091917704214908814217584437135069782802722349937800149706869000813067375697766208833064004060648229593416494282634996706841661506506278212685776071446262203101152988136079297139803142201787138016138406431148200289615476332228574223458850119824376615013312097533104290608857015090161930999211744679560836101099497485850582625166343487312471368578941827635749067645328843218952098099395685622037241918674892940047681395805160104167118239713604571233952538065191546925112882759265186346233585042339873738953275586598868697021176396119536125685734667072656421253111335233080964534452188113138101552030318684439983486054876934903557986707251847528951707212275017402973792854143523158641234544439123685559441404191252875448785603920103179563800987078083572366141283010049635457947464045740719056479634818654553017823609913453935607937668407618645041115751081420237127697059800910557400738556958952851924248446695166145329256133110763389494189217311537703820714512476030708319050404964752194552245614430535308128787702321272010212173607852794233829725000887508859584353696907965344407644300494187702021028646211523905651084252522951119451743098052556099427898305356740664110866252592100591575885907012791742406969492022411327215836896505701854719329367834484075532472921826734565152751158324297001721103363418412045629663660124466615610233879698974302710805567105903294326070396205681523140951141145530817828158882259740673037337646750449221206074966511660966503443491536797388060373598482419513164119768929979730175431453696345329190156484578301099093423615848916164667361919892815345093336538413083250207952935968773487365414516001602256013928229917958351361641971902875839247916510105107679322185049985571743771625932517596665450266200713386321613716730722896968602658474826001232185498246782924986586602286155164126026932654168985769245895730428565033274884198147722591497345666609406007379180548956816416182829874947735121005212844992511945292538965149938647322023492211577816110390178024227732129263948554018737745398182587166500607343532241870738416498374768451806619938859282371857311183494237994349158732396852325814983899905393724651867684302286627002957743791037456122015174893510298417292645227049467419341188105663019658479212024801044270186634648158553702568768846377235476362803690226040896720102594967459703242488059535453392450972916039454346697134409902946191721237451466949311906010465903408435461575197845715445170203762054057735894538887827833915972753168954320267657614668536247331035924080693717364623333663284342037958578037166886589803516339541094116663772678508423905836710601478956846524206510411880791225236481612423596790001457643686912783403472376912492652326294037243503321049096270452956915729315525185521132615437464663603077026551120286442341419965055065033615324820354429269651840239228333983999810220611810161710712250683099307757903529938370683963061943026854491075730834645101984275243271016685529489935564426112196576616611638026360208105886475574402845313919535701348056226681659645503399112711363529244770787388514553736427918533786406314150998905278111524893917601054296118942255014512335628096396066485452535432057622569640886669913272146259863704348615230623750712041755569551783431749810520661858623743407229737690985531515603097827219720224773913451217830661748082005768399497375172517222963614985168849195461992384985194167226651625699358991441046098225291071046740340704985416116897883529725044494757389236683646361023649584204955011656528678240968280924627780814872259295762592878408448831123379297959990129614071639160918066088912625479968162556225341250794020805911981819535064844355638794532535122977910060454504949953531338202251374773023735803671431100166360240359084297922478492796393832283339449829731835057565869090881274930122008756285660544501593990507930381517034843587439735675419329103897782837675479589573987357819812319027877755710812850672882720100942733822021157571077561268623638926878420952191824383671147127164207180366829666167844685524100123679742300902392915973899021064011826301906098650404431001173589885615034571710347203485005617791413955365358714634057607564963035736624532052313846545856662397713606136921525713890912145039525149500024614223104016338972767666998098094126065177083764936637060717532509088118469579102578908866561586158673703619265178021963625440691584345539310627777449505532795561244744403098331240600438035006836988234007234830509119851438026984146313987432248182345366894002709816906682206116142163835896192594015207095860994436770149848675129841439998051344801494461896422407986767539565712946932896743983396466369442096030035774333235340528984947626033123194759990164070435893733540033530479857704767716339599897051298525416723431153631466516510233785137688806099234887644267767118896820582004172855085435329805932792986953335101472844966162392835302223993257962824501861413757566260737327194522419435962479166555915928632308623046064311636328661590412404912966419303511602175838951337964610332631775606132463735297497773736594061535855224158786627404436989020056762333671137943551476368910264030270388031406161055383744886411726320892508262480117307303717187865711164221706231233621945746199083806697115667873835022633011592633705407250462158485996297748062296812580718246189587946404738680167352456498382831551225977868470334670730472531281352497334376694403251312626397649569793987125524541616201292758556159351189453993082027170681142611778487179952101100544969439614414326891630992816121582469206105999582396348005969941362534949554082687257681617961717431647038974470331334771038887671175207466727884901014909405700328657758296005509511101193394977134421224326864457322165819868695400940710373274508593533832363090494795431530112705858370059729456879862687122135056882263028636819644122313085794110356535531418162534366729874886676380920841809651796562040513719917473343461274137151180763696386572833277046389601497907828230407698915031457623905076349529220618639644062343646370707716986716810362785216864797356468784559221239514749701853719562990140960448860678802467192573639197729184884145328244565078006780123754917507322777244315997723159857341876746053833401628685569445039267723019320637944285370530442179132346898331763055904777958032943770310991283456318132423722379314627461992261621632767629614598745891638855807287111460024354396516288443660488910859145105810743359639891959067343922013546841556782780913152487192304170932914993100181977232247085949212190032810518708465695783570112357548715916620319139751108641232805043658779987474274010368629693407351855329065850726675938700111522635474355549036213299416627186964820358276322077564635981856385671879691286325153771910210721487888508707665792979969191720907263429129331162693019007881766761578261919462216593170349126465747791190967150426888600170166808615859208415404119968416068668191241309048522569787948858475493106862055174175976564954798351157611552195061929315369815652907946811352914625152569809378105251142318849574164205535991353586354473253750039236929729911168168104586781720607026335605026503184335577311963244535044313805923280620724220335056085857105045163094396747418926664107699058156910591366184686468817123457952469134982620101932732050543991878205149791997946843909548546092317103092529833499977418281371322924861013932876601419342596976949620004637709966737093350909735660825185838544434300726386230632452668068822353154033929011813055232885404113924479378488923062963965600297429932329194369466815035489971128538009041139160763081502501917168461883906165515134113766466670216485135501963785870414465765441221151022593296443887957559157672614686649420713792048798693650324861754716962340075219635173441843418023032362328587465289243597807493618829789649879934251968450724063808794804454508477507848706993104041266812227505131372879550615341422889932161207987941220137139774025718537110917852271209718923610670554142251556542672886820688892319116695890780235215071101421602609148816933354162791064904311378275412697862962023572303490952827822282079329105979668470613181812956073686233391099316217636948093888441932449933899939157107963485630970063888477713750153923039404431448849837486599126019164779187837855404927861829929597036012507480820314786379887949266721559462515382768009779761384733193995866978292923028977426680505422797885820054333141527155321400102895567261642757721439205951751621012930732658067593352408580172723013596685726016240464496676948054646608358240416371362318760055555613495712488546569927839100824233747636643809091542236943209246139252952451907410270034053595198239188773488647405136949002509692781160990639544798865886955040021320792799950484997353404932667948448157161958531528077831087325984559643442562021080070554658663912721278525334529927988057905718375507449178287672446290517675704652615304237708903292067918229832815201359432113361125608074786446102697995333061813927089616197781385898587283347246107998297307722023621570421919323548910108481860281898364837222059564015197162907898810397390494276954210705458497635239435731718183558250161512211511062659461982650039068708504342281796019092108271789443450640754502601083198016864716876601676776555701822746749926415456483859585804266133624484335694028087149058859137609646286494601291238821845433676317678012015565886041611676933538419408534194017134837939264295313596791621111101433860271687127760197512813438817045528031855191516096742925168129400116165238166264788256505865141460175239902793611126296250862154001380558146974537369887412126863701568705577251826561019540853454343625776224117823929283732707144095526345834974675980921900161088698513017827788451837705007975916128624375194396279721060567945655470952163031276472001907275728865745402601439010290791856060545732161805804817200557676027250151140453040543156105755242641236116116881848209475198460412649730520600649777830845723921874287675315143141476432414314797613206469666935564060441846383119557543055369151299875094469628400231902066600696098212895110123394362793205840794620529591466846070779065808231473584489729738267394003158660137161209262074517494345810086610849162430165913281142117991958335912272351941041721979800934196607732094903904475045355067495223503845469133700845906349823647873536073013267799551391991185500885073060838334626755401901618696361112373643935305321613486235696771664388297177077110799143292720229592788453000380709123937982690911719314206973729263934628231419690972637075815652988784926542568397884100078269363233236963112024436934799522198854234070663026887502615945942588607890411678630436025998942937839669343287666172767712096788702863482607677442705813777174027908240242776985466260904406804322933862192625634628816567898791290732401817274895601883405358791800334535754148257023046573037792622689419048773644879943688674324014887380207174556914920930653470449523479251667963280308730681761049211327705009756328445757482773604899959611231667145714826938727063828706402597438114930187438339174323916828026713306633515788229099959940264778680102481057969477199964375929685356253936079022231371082687848461274855252686374267731222108704722290621709194147944527756382526297849976980488611388819975977949111115904227734689966250183018394116930742438924441192809009034561726398886469811779329370357566396175566047283974653433651797090717555030957104366037576113363942079466027113419562620229986430118036373796682900030528359457762888733304488916676129074744600987727779222126802889711417232071622655299076790905482311618322202381419492587106225965113827302173017505170705485873809300380701795907458316420196822114364527115517519836526425131021969504416320754656416428920924156691556614792233359146469394085001578860069082034750413279252282077890935273521455978874828267408095086958015689366963128804353504533621493837326906369326506823797683976711242308040253776241806142531745669895525202682462132828079021542304830352834339410791719925740609385480956914688449543251508437926748049163447900340640555116512305098904961910793425170632286085524857148544562693018508379350198249389498608503610833259363546696913709167691870898083527945717513229594339349207702651535980238070528993836704513020023453541931797561763794445391331693959286061925524752305608729702960591624460117506875215827266825622443684653228736304890876247709690979611780611043249821021555791941600856013433972556450864001602717718337293079478967626605310968996575102330035104551152030244900470287417573713541910263311730524911363905362114785851398955873999540938982855872728843625293342997095896812636490457979694184629991788758033435969711041029460290656910966167631290550932960836338488421631157374173049382479959888332258248465079348640362681609777215023047413038055056147797153671839949309530410837640332765556779460046051656515988397130267156029474549758117800417847807526248016209514711948010991488168245314884207121601695701779376349238690317364464762276648778101635960363316217744940670105348927717309016299152545912005569476781590597959293456985439508936677369334963816601975364234413798088446731045519207304456120638113972727180399951563695354766362547540761005361455252105514618941351092985014544448641173489013978531418368550272029736623882460359014158905535392088149052981186118806159528931661793293054920843598069949799210403356511688796193970196066737229239919496793773658331038534712103204296749609893760775420990952188760361384928949788628200097262438027585938558298464367739040961730670007629717238417822906096146971150608167466717666633560271931402698893523391739501190266993888749963230030746526343536516350431103912443984003330415924595890524651604708449478953109666880084243178961885319750122451444977484665015918223917632866562749458965921365288765730235571938363893985473595782774343745378479557976173163938850215996828589266686409802482260763409223257176832477869983420411299689379410789648099767811466540487173388500316689550292148567734713585225623479274921123525288881798431344335843911329110772244276059982971485859976676063356544304350665388787273967051355766143601509599469686843313603973462413748789622431750580804786230642289018327667849233843159999265759158945934156331006007229439148974684855920990749054475341750245125673591530644791958150712652769988346626166715031586224181763143834670395661215047490054348162615600587063971136643675785634369881676440434270581926145535932234803242174150190150343386385576952442461390445048051008705404357167565531542926355208721554193428968257136689546297138733180318749367942984251845902213642577640147161418453954483120860036918026576586705816661062210442292548474125270861030202705450367999329702674021497566136945838387555039330746519983410682576230824251091290763689456134315738916933139731128730681741689651782549624924213625114092372963553754412019181249550138316495978805590584145555908464621865561058239956388052977467973486019104944799863029708938667627764808606610550499653656172844792339758941194071230640230219854215792103161290189326368093630426501133489039045254447679466463613564905346040961193686179028627834606100078128075447620979072707688260670451216499319629002423795984033279477154389900261072756559804128113396352093257999384377657033957960617134309996903011224480284913048074034174384197614676477994871274026102506212190055259356346404250645082266928258937968109575456647358349720359470299078847842818107468839567436838844255900495805362311641312972092091016709420153084327581565354789263414063415041370118065386792368703516981548691621689789771069842316855738500440287356532525222260687746321188877704577164807363575725960822063128116104758868850099578715183468876124935523533310974824960308942805034907061590523222176777064011502132523199756747358911452284001497473649017690730292086785662301095773484399795879922532873910475509406050399116282313571784688298306652291612064063644473912209451037976063094027523191501959630871312255600939761773359763703550978049542496724274729533839339648315930818571800171806389079507819208588289550647595019599075498949184102231088526071930271164880603359001595870588012162761096565304946633387928749728094537115044101240460708252841535102398781660639738592854365213437674213711282992815008915542711223919203457884434414803011268335254688515468235197930474499700339624675000412598312993202058897671075937143937904267187589058210211508617308586885902864475340105506290588166675459475541718541413165072375764138792318121722084884769461367325854434048845498254077436408985800864452366829501494906137826367627570954685905197798362180953234136352888162507370142018813033329491194009384247162824143899861127906382992799694682171006086299365127129036194376852808248390047043110300200983632274716735825066451985430348202328636434303611079781889419475680403871577998959539058696903468604941773223304252382463695712685117250643399585915956315691869198436895787546691358679789280838563451561684498714883022075843353068976725971234277736835833280917598464691737256053477398125000550108812909756736627226056213972407092247182011390476730340456509690105363166098644480544841368627729698123217785341500758728266221681307899120069332159314345308425669026796645734651399379862095535129027368436836608664606388830209068240524388253465937841539331072254538077817314634777429104602258482061507867632838716898942131157897555844118523157436425565291994646726451254563833903025676509333763816095634420860585243047755321600087567905035356703526502226202624599418294176254058024633832005963832586567439583891466134377558513953718515463083198846230879067195934278203281573791583647054514799137000046273762519828411232534327804618811926389459604630028190965077571987585053133116622594049445057449867806064897108836588272851237276584985413481324000795424541919513534327932629706397507078700120169241875164722896696258667047275033490383813106614827401827323178946650168395740898214575747610492630663587479189793116124515728750706233102756205663894043361477668152764383842529398097536849735311852802088142590148903408351422336240492624490282588720059744201188812074057139436978997152191985653769866486130684473460508675004482803913920426202963986386424507985236572139867975844312268181520427286898340995055992580896198159336001708732447371264446130397192718338626468033229943585499794481386064904043445444418742391771939511665681844118538565478658187500517836569102433619142161221576133862226015809036442003371971131891494150551089425146175614791244974659350914636651169525749975448050820066112270324875518966032028945847358762684302532688060579600622750048781717970634865715021053213283564537865902610027618699302793992152315290077673763692145128153044816198422430572066982005377138450552394773484141535632836598207529467054320641126083568291115637526891628936257617415896096208269330690341080354119595552129993130505353860889483268291708313706931979651755897111827533129554166342366764310829073318812882790183642158968414469797949322008074935058450788217807084722653588611429206465728560575632390056570636523646232819454252224846888210438706714659479693116323242783479443834478027991714634845474774996792962219703098012921401957628351239164028726179969795571433209861820668483610341214559487819972887280085078936295023758579363509464372453134123193645674387368584869175992860040882006495261325385963972143090483603443772176250024823235687436365602756962164894421837980040426391228745335046659477025591986577463875361704434865611416508037974862583417614813119660170644519254696525597392312929932316031997393144553367927385638795922086240761600005060617097026088917052497273882468304856780311922037093521654508869551714926363118776885461183165062301524439287456886596650851651379616956250512894885391723254030642139212784980438786725292000624758916584740315409670870581697700230694098408970125928337143716775703144099424507372562764597720901010566229033244856399202712818984251647020130900873242740934675021679029263771438072952906448320139377088574805125941430193114073724407785865475466225129380751366070367490600923389810806645989686064866093421237002127186233185303440275642895472499533370360323972703156202742413427217290354802412688173417968650061567150183174400894862183565887120519498424557630904912195550263846874069506618343884923923417927589871743675169834861506971253872652351708379553516493041462898828944376021048496429642451357142735797903819374495473914761648907471926618439605538551752987294283945194812944827763927019024239727931807076490233713240622973128247079081427515646164410505199982208415953706940332652322733087431512892769786742632843533373323071376480198786486739307239046103780531557444974044781582665173750843275456655658472003901940380842270475344935943971658103777503639349099178903910548095569119828012375289964643635916465677203188359920100173616079451048246227376470735855368453110061360987447428167537463798643693780345315919689707299798902522907080324205603391299906485810907534316648599512567418688562644517061406799420535558869297140242030991614432660373952013376722690381898388444606168812111690318856069947029682810196351982424438920288725379060124436760996445030746797852842470022693486264038062472084101966880171631808011278043679246643383664023923121197426646958237535957121108664132362640718465458685673643658520045932040146872447669366124569638400917555654013214302463781033664379794732036648225879773170072720162477975412036949608911093029373522838366344988112116091742604838933681142918673808155656351861523355452030366332868880985671845111225634141868310281884865469150852829616683269832408672179227466887136200398025135493721524889415637117945747934548091634204259243639002072523020349418056670198991026214391238056211827792776839849031590079809439710257310903470448265792670069773524495255888948531587004534551796497213216014795802419854088213619525247825107601383476896016946067875834517528995375604053653973849244554386667024820274037300569773615806375986775385065303322653419907201400217105634778599388636586566673920921633643036975973135440566299352409714631312050066068281938043756794202283418457966237056726073071919964372246802275057402486435264127362932008642530078638836741990217914466043255793765421652866650917479440974088447995061659692779348215606287739111452927391533762939242354155875009557661679503248524190873090415645130572631543424553348902610998197826042297166835593320301721775240300850929212207993658749150266802176915766741247884749392302586588054847531242565142714719604249314299100424826247987821174550962845707778268445593254154406675209628751127850181187579854193838942167092437863981015284468225729843779974549530968883119204179359657027001743448313682204627773169328058500654809131984201670128683981262562976989385813937647548194839279751082232346183172533343727967734904461097219087066002922678786676894275546501874390400341477583750193987564664540405464528000956326855422377360313287027684591247976387462593842310778639189007513792454135833017863296639861634161545976328614904595023969606190494299498351811302585622334382153249170147750480098119780853116125227301468450474499806137820855384407983716081101875802557548626125668378391786992847191145859137105204766552909062994008605665460110359361569548996312284187456780767601008232921943092266785327013401917371108749002252967736583230331684070354334274511750567444624385206341137629050032960485697325867875441660618413600080312696920495425041473391528651143841070933421486409012300554112205333244718147001723229774233370964026778029470527993587384814462215849945573758773746332939703550412702992951399835355132565648089352573645351272982752584525559961881696359419572534772628595673763322899838777188292191384892947709815883454918722313917986819647551112752539535736327429539060817793037794638456469369402446627583829174621830276690938203514344898565809400000309597156664970504674722796635710130657104301631490273844215231436950291893184201103497924226029798892134382907909242513543788754748545446739285457807961526679847496052613450676026547020023201369457805372661459715474703607492040812048653968353288648402883023706988991432739264543285239471832536945822837678297998393680880126842466035826840424859403106185771389109924445287246419641565235260997813614361490646231795489156064791350040947599631833039775277597717531225839436966259101257041485083786414270668214420347420690740761611671014329218246271546308800224948715916661424820850040283750994400237984038526188333566744455356388470763311617455146467810371683486086973265829108226345509485280339466982996064414388230777973029640633728590330258301275389776231212543420261904772463395879570452037378135302496564421984286605451033592104124004646274648012524969906083321760256881447620250472735330103632991483251008766622060823091817746900419232570561627697391994717343457601208431269682950779445738247941917623624135687428294667862184688599845495506042864194690977808065614406259001034057947546766921211680143483019236287662729099190909216435568805107360397763045611869556947425760626754601250406829159889007213470734592873857668531305692991718908805370807224719650828148545902782023354214509445444651173402204109693796703773701605389301646847814654156673194343661889813146685602131041393629642048668748627302728100058871418912107337418074543910185539096456169495861315995176350001910994522707347408473164197576176785257578999088893364737007210048760059217169614893038052666024698144144819144679103411756604715801394061764738607567480856907460651248039150153521522562576610699070070001434680919805959749045934574997395875870407866207082132939134911271970044567954301633274975064830479888284246481696201667655826414805408456291983983507851575989742791427856210651762010728573852670294290162164150977650151907478432488639855902835384970508260842424077819414365477515080021111670159291663622549465623602297840840816043076089413039423061374712537226858870073628322331868068535448960638730085375336791103655966954618031999354465000528308856087461679518846002029124785448793074153559092330801408054816329767012810521827480444498214594241612317795980022363509312206096149461903825207184065232802336901647180021252506116830049451653432331338557438441442117372247973209345931629948513876325655952201060947032741017173786382828520057592134936062809396134858819337983818429268935518888239130210397050694258126788357471189852181775155655867009433135249997672905198555419785889115839402574779711649918132250226302194125275986006096866956876091538791897123875291125009158269886556602310873330324546592328108173550276577931542189132203339972998770965035719342483265654378424053694891683418770913695967374792232373758985700971101766209158311590593075729764645815896296247955006762258017571988099974384861548033384738573020962549762493122352074434406761468452692509383506891262848943648298011989450477421956882589239488529338609615196923990247997663931983643196782466849921036475924853495091097410123432796602799732357549953055058720220512037792158811198097393985593982610147742304300101006425362341787396220565853396342952639368091835199827190539499196351717066146496538400075370570621516291257559100729070931435596371021243947628697482756361633877767420088993210167390043765226589083782093229827916534189883334999394061095087434750551037445136764340460592046917959284164340227828514790415321396726529830892747947706440445674835852770911533955858497569044901153545089793881537495707072546014970470740839871974770363014727370400593886783693650758204342417377075875966111839534608128798511519254029607631744577068762440146598086214006570137189294303883243531090206076717288693201088357602035409677975920396826282648164234065327758217909649015474557795149461642358102262119659413629583789837947015692228774445428605937530166022663103683642892498931098107644622381495056695279259869659313001118233180363367286835745535479468116888025117344393139279756099800506498342054935726409575831087900072044119400763811799621534410573008861118536849070338015598335743842954328977967099503894399172940318300977834123825946421794324680486727441238929133233856956640992953373066107449624671118357224882124224953854017496737379462626020834630513308069431627404682379190903839574054631421638189528958311267089706114536113431980124180944934955006085787576458431577675630777042298473228019826639319603626626064844787508844634382347795693418027748359382280833838685731780181216887228726773016721635290002529093478538327543395944076989909880759475497571375942832533561479756231874658913155492222691457986413840871763049041850274060667940718697768706056341002888486084625870553399862230981510690346783130874473938986409619174904602538747913358604998267188119677121261546087907188545629187652890893802802294230349941242896130087308426794115185072915352832057787142951510266840548010697228938949452668111365534246905074964979795803214799346722362920544578701932607530118896655976886383263884713252288951570976043499601219766984099443368486591268421468924123512393098280060515122475419507008166469094481154129650330220120845358471700005127763098434560969319313280814132032591530395609443627438595127195569793250657556955916731101644423836282900010729114575488030321433133182087291492546187765513210144180875313343241723102137500739742325634938180704559131471350030539759019478972301870557104870220012995864867534124452326505231565953142298215366198436229507890836245202688513878450103616807235621623310671325409842103625519134961037385115128570908955361492318838907003777434524164771959401071719910042326402389608764416012967429954191091823438190412498138246817972440943075284065140219705612209776023893953190360789769498585255139914513198292947508641446330975722904018628585989922700703531718129665304155024757049847122418761448880412248004970942323703731034396264649651224888617894369896924105414183532770685882892758679694693691240295329055652640697502634440561254293906887330799803445368169731543981863910779478141943893202714805650060288055800229909232839834578792621594214633160738078717099358519396962034609596743293098243876562677381290234075918385182973638913043457139549662633885503953582724479556494653898860525713840721999359015689658980063498670510445921199164640489745748997598419021257795976609621814353355568229450748297424746326185969036212013676081271430804709532608567518570802550476214921844795950525162293361897153936146684142823781402276360089534848260570890975081431673000555149710355105742896245631627674669626771988929456458025075478464919115575931997384550653794611879914513828002670880647197111321121497270177541314328188653414503309043603120058363187042486933445535739709452109141011353457065554660660250372034633714897587514872430596247416138563788248836035017035379101581002942446361151386650225433130949128847124663165958742021701545483392367681974048863923289941984576725068834425204978367882608717697308774717904507977564928792893181044019994172239057966084381478219131699910423271511216132708693260551145668276689532905468662937081816843493464636650899066822789334888251364091125304651787742293555531904618835416253331422978037269317580864020147903325215879113422238929757669795645492665535003920230014452037053029018835707921590173353407625903207703875053558752354641305645813096700561366576315281579981927575048521980932560335330389964493224860639568663848722284888794740617024566435043090646008045912397294985042196714914323798603952349829774967572867714031777823637738326402323430508022784478776658202276215955738705368087797899662297981192707506776106333308013714271260720169380527872345193583258065781207297672625690013810196162455927575034540865802132867287303134396547888657298032278532291960309989023595437611864867971348735196729101777014598433424640428243072008975529769438859764843938177266077691063838647858968433535452784934918829644994502663416206436544105696553809291321364247002055842232681716942542481691305365988620611259167072955020609832894488459995118173765778551591725803306025672109843757624853360374565365472529501791714162131246957620604001724455026572420886002827599149662103407111427801057446079484496156637376516533864390681960088608385107034248953618924607758232904247021639464641086441201771953202126428993581292442179404755665491246986283075711958070127684192177110442016769235312775810060434522191392149614569753136744870190606146449571604959105815221944556114305502780469163276049793298580331747581279158607268793063273227833023871753538488524528484426582795787929035435363992325730090237777546211902396167796753674486867913024085568989274660047977228250481984417836595178939271676287944809030514837521380912725490864372508545469559715048635129416678110522629219949476185918896492616107002754786934854001895377989097863197393871006920205807859779388195016030111429184426109802809704057657706915377386140667564279393535897180543596188206106856529697546004100601687848901160501420830531101397797121979976386696617881843542184175045518271492066598063131727374695800357124571908189569135537784296575528069898354507429413317744941206668431914651616302898087869772241405718676929487368729618744687125197596138138776725096013229993520589350259699134580736823797183807503558457234830307998943281901754040841140356338570569268288138760663646046602008221493331046109224749094388556609970281680673577756495015095317883553714989938019790578046068784064721991389452849859020335756791270976182146405662374168803012424906110001415047960965417435167858581484055055220698222312252965793471961073551203328831705506198453670131429422632829879651314765828832673991869245594595036676199421536766849901796103717874087388268501820101600000071839871420121300250864897428368228062074264067622731000608900476008453370491249019731815047310166906303476587323706078233214785418773838481704358687614223647239013292732428572718247002884764268483174996989721817451931047180502924129614551429916613915784738056954718080777339014339863362983381308648877117449253035998406633016340823612899570151016703602314375285708511082527090956047829523509604274515379031132964781882889395200288970283668183207393470657879958894237656909269790211310351988062476835392913181798740802392916530894543811729663246301650877876205973869636424657404122557746378364121245345101598703049177490155610668777141006079754707373173034085655148275058012317160360943168113790806442072758040781676330038854852844739715843804958095735476842807540418565336765337238708650183645738423469296963204176091189867154158046550734833546292929162517626153473779865012607261892284113665412850824411616244276663703371671442624856002687246706816652147230735457679895983192287489191601613581469013399327253469814297858332608577760076915919625026868795046886895372280571939938185828215434764639355787882949171725176543603419838548458467682438632158711592112532305528959723171155263768167479322757134686837866641301452222407258785249914341645213051702653140694899144700368057936636198531294246179279889748135567141896250706412915824412929987245508519742013031351209547179010654025587359465584978491934467927066175235741863947558876645080343520661417318014774837431870828290800124885439354479270354247691407686520046379946051952743115385374711242701813971794256857991182303767988823500203073880984163855628649557218171574542661980768218571448119428511828727691591183564182177307508484236129582496805602859007155917283016268313273800076892385512389586249272863750947389777314970698190746663223959871026439161004074857969230275027087370625371010549761313027866508337837416112172543114815336650839306762264757495444859557534352777786912613320543156031097589694325473975611029509078828696939532419379970911023502488613966999324774272857369092383719656770648156749442033664775077941399219085836736230146703285785706697373039012303183861026664374626467532843217278766067488764557118206265997578957361339271595807400476994429580007122434428899546083563553770591647036467648979011830740526385651886048161803685120259655729138249908941488636208735597745864520300425317918478753270300228879441750643507162106780546459308921974941564681052579695727237910621128646453482234039877663258567508343737030187768996564526188701373594520057826217216289740992071928961546908841814176858057823892035535431170364760418029138966009054186299441672768296955462749752417792488939787265136213624025149233949754662353473105234464021917439535199486986249031722361811726954117253811367171756252678044170453104332124776910135261203365865298320760757390400886740615897512224322589424335107070863205671673730717586549427647017922783107842021109431887803993897124084607862527181835728208737972653852585876946143956968456144759779626059094824915004359927394020281975495550771229613947905468997930177380191066889289979425200897629070002656788227793443488456597840617953833607896125044229715924479864469711917731818893304595884097756054794430293453678781536967292184952737487564670680783700780101042284411430723020948893060657682404076843274289261010765722769114505547939611103936499521010842383021758112449348273936062078564567016084363646948258762910878253209712162141142382823168200605692717739801156149767213227657676711140056977605004443856048767315713034240442071646104018576936385602815066955875046826756078335147608699494104605298256119770131047628105248855127219025401385786731685642154045893181377655713824147622895221290625618980279259230087171812481557820363580560891839722853660157758658032870509105890997423566104146563779365492790493668211747337357778879655430715899932802312486038920566426854287016860331188833171901976474782241095404842032255775178113356056496300669604338161566630347693710541460631226112237879943072162928925039357661904489463522380613867361684835316934621232082633547957401469656743722345379698950498702168549897283799610335977568771634901198725264007194640291571485449010354804446802337460713425486838347993322387116564174954732316249796386177218954626482496000534684380783631179614602735541820023471204048481320553998488187838872333174585830829120651893973609634744309347724720529545356969537990863587225711036978923823275868932717681040097536777873556521341612527466696603881630477997408349911822289295752435975120777213158232132377833103578365530680046565983374004613121955245636288574301769274717254730464461708284451946773853335821554698019788621895046873718193950698374725248057717760869220946404156694621481373223782559777517460716791800938755583648461568220592106928245232271905153629723772100041012729089315375183911067196725974273387372183109452521548096791481655816036887305298384244935360796613166287529596898549912136968227078844762107948068114330488232524035559041967465071114292396903878971257599464517754460374711422939597150841277515502344466121302601251013929092012822232295642794828668987774627311144778610410675837709978290185024389043184801426745519673055793236720462715306604998756273831260707020466020929780233270383563373728017376025264522675236836604639060948874787896328463700064789741668200516940716335455546575717928425136386497001118423867158367556225275377661937843628606393318313990704555785637794234814868048900531889386396992373976842872157906667038894514752514079554576847636468367772682573700823056786150557911866845760639119726431539076014383888563152619683687791621243822606037777874213485000393549252779514683889338733434027930088886167318985938402963505564610733224001368075066577911951524173252614227961776804852976088176780816978301323826091369735289373990510996406893884047111574804670685571281726358531572901882736025086588775456559576814452632813841195372174363506989691344778338278930810840468802839396466570435725676852233781211220545927098421780118093848231992322743422431133880893131203031891838227887328232001798539802587681590576438049065078182779409247143559247878677961821959331181209465812612663929105318206769370556560721440297179509401006909502591193989028178308993541412354495792895987410046891467973187838626755082778779014099542716349519916224933572048214616924982739864099945269628997366861117311301953712478808118152902210517352467629398009922926017457570486553425234450523474998155192018153086096272490283571846303723641615184935817090573719953515708784490999738588253896995226523737233508807463245210209067823271211449187583739357964452970521533234558472265060116911477594899988903128921233993488266188782001369839007567291386514257922012886754295928452099145488949723860055812587941464600924477951361847307530591224453493845405783466084266288474929711930623952026105147830308877787522202460779660005426578639152697601456026401089873252749457797236519794593132416639492235397520394319262738707239795042033247210247350879925033324911568447527026862377955458989498713091365217818369539789525936997509765202123362303916897723769283463037357226682232537731985058932496846518140025442166334773990960240397455442188306234707399964005551312308318501835662833266587128324187017594280740243626645441956437029745328024150197901866152066001315832132976804789280332181456308734806441830784743959247100650205823133957258328808723586552745559842234095235882540126204897269170498625360722322041213289179866787490025872884843124515692157391900620321827609126757620888535675876701111495414621930556447244060941336623228510930708714085978525001111084046305505324869880448596364916806629370894414170019112848792523753480978087804643838289130872026469089260011728803946129030941329344527801401733305575706321259634989139011732488014139764229588576115537643151096540104690186503361013936103385816794746021252395628725427403433542233265666027625196342568295990446932086316073450704809546529143588352354701016362529127363780208075689597661903682586897890707459472366538540709517514445152730569824245645523785192503156524180500436868433433082728535681995882792866527190790989462403057932564206285819575290644455047399588162803068687674244003817513786424394403598154249217570859980053203339312618456050094366024349468967494720850055453140049096140439333842912074028761791009761898751889089911468316308448623904954516153610733974741986314443270420950038107673170782960319831244437406943608812056628633527570059125823691509766764469357058003542528539015084191396184164788004255595947646261843644011067426630965387172210895320938580096787442666466518884664323525920789307816183057355943619165154788058778684239623445429524589736088122033814525831848114389978070129556317969367532245588763121431122538055526566419631296365471244791879833906124169092834559843464294365902122528794331647081038142484289966660318296340158857019073878147375650785359692091496443266800714269479350171224340485940840662179658241954660777782936222198389824882943950059162028123792971210731572510580809388739697299323119146806169932442476976093911159090437366899189340538014382114891865660043202587930965427564551719435060884441690108027618933635091583055630968625991347666881711236614894077623513747688835661268085976230012414952979196414182790647058035845577332875725895703689875901141624349394461090241429053992656329844746302098916930759089095376335919211812690996850165486166859242000973816614821102279024662574416851084705805714936918767362856585461287164347139023613273729692335893418345838934139424580901770945091565664700487226340147209935911610104804665746867226116482932770043798667368284249820545472495778592921537426716797951177370452914099296437417905313766146351725808654456044816791608383142310827162953346692655734248525380035067549828940157344059427968989710921492863233037658744725460561450190262700111797440673430600670530219361782549577772410482523911153721377237025100784260418832289657645264435850244828843756030053593743836085077850975970548727248697735405434140240447572707843383629634630587516563619525179701629729722585357314295661165394918463265873151542427009966238993337981371618627341292343403960081645496519573525568928423564442625629679955567806894488736626294555525837997333275143073733883706100491364069835143027605298992451596874703615776654082715116450520204174632378424539756031339687064535452153999658325301747939882688599509376330581306009271224130176827688538700252993205227117155407211159910090800386666994467494879898692236220739189921098202951511783795849307082559248941754124969801100821209457529070707122647083742106192831900890491433555201879254551993000480043207058579476638458745013628454916599314075160670862087545899004778562017131784711365208043161458235084188804863608919789164016852192987832794573020450170326047510587459483589895692011748346496409828469605877845506104869086425625082504088288491776227943199431373944336366451754036849557547634184733796445655476592389812620699992998944166433211766793610270167106760761572668431011927410811313734129789775108493342602956923518234421597496753197487236737212023040923766946574409289668721978819247420822900241519152101502040563377897473982120370226709429976676048676825398239418314322901422306247789226508820846260686578960600077464881831262804756638882402087675564847146978449478251798975869483172874666830986380618357341938514617044250781330367060740482077518295672768495275342200377773440058340025987468956299763520804326626193473564928079397693770361666431690746088234964013714499804032310819748437261914690192632298730358334905800509504215627937449807487254873977169610744577061424638960444036268035790591835159777022577268561395801477246214495055468541140889484419136412614716812143731376002102418943329524931487648044641853326146127409178404072925244835314814080359959980264178108852198302952448883053801018743545215114182518024683306644291431597780327994143419585988524069972304218414886390995845295059785536622162479647161534222770815842812643975003417696327175027354958783242589526073955127249419037833903837229204965489013371924390139969203196961354647694539539987055697260249795211909937766938200671170447568969069309084036615896015690172181386076264633747024233763615425437623333412205302515886905379730306334076585802621892961692309078260608886987518190392684346112561564246149581596990535928572712858137982421744655109416997369045729424053154431074547064004341763403354596757702157908476356119557202910518530839963148332729604668240521475689794444673615123098239629543655795217462452244096228867854280035316106654668006932170649234695339410564329479326443558374648499063539620209076759465917516142885205977474205943557764936395201056961021092340051564193599074243742362898103360405361230484704413813294801115515842417466844462811391240763076065902347807086823005201620534410125624599627374065773688994373091100794198744664142993123973388504788365943282575495748559611368885040911699069514638880041820207489660537397104334368225734626689626372420553055227212985548082872457775859302061740747241510090195732323757126065942669207446542336165551500915221463532406979043169380218853118980307511462590347856060426066270658935596232324841617627636855438687054011650951460674342047809738817778229403884329905152149026812463812954648941716827553002412244298098865256092310073426887212263120323579034717094334875044183727234512005008015097364428997288703038145548176982841675903871775627954042444065902222867016927989289845508883579803641880007630270624408484666759588261484355881825772636433297643523423273465530520865838791909126921861186925478973574808876169732332832637040523186275144789937415011125713419850232375209969198297135313034672094006133334800503160110498266487851284008005613403746606384269192842156609152424869487147031623198024283366619590241638574290929217659801083371295235539243711649410662322248405661394790805357703229808784832832141918295437466512994966617223907446485604088337512785369983854179500726911701232411885703005810465017435393761220323598375278713421129182629557504283163024864491118860218467731821888309745428674181977169351955198669475080377405473017437438002281742642103444943194876446562830456726442215072821870120761339753028427992431572790720939064112687655786618978235153536886432430054484444033531315095054820492981022097828599414449890032062388535255208373744011336164968214338306936098789230904314246459934636384905580315527402515585062528568601183025769681111639229577287266011450946171265190629167664426545744649269107381968424774499327624222875418073587609780834237045766934764650173228698862334059398098698754327835669279278215396399634359212996512623214846346963221640989992102846525783603449780237369463689521233543764957020388610308118589541918404520263074486984176069948594482854888143915440790967618841817095306825625512595108279236946558459944764831228137432107480339788095197193566369740995497383361669640789772457548333613717764927946811959868634838634200666562405830364647103166697361313317203120007852147907598228398753172202195772924193022273790960169642135644705429924953915528785647962789185474722522789467716865459076846484374135683860564630983577839684571699151568307132308256043675627800829123119106686828555986925461953286609161898425365331036354867188516256520374093528449773858364047264060763080012592802221476546603130752683056416349344276698084194277511356238433363408476641332688025080065068045380133624988164824255676809476077522834525545846715504146416673059373792241010684251568135653178546494819410576953677245977369354298848379807041180940892032988417854727259215792619685925504323696916932736473431149276442671564619953791354082427707857405650092968235778974480475753718458682258207899594503868195274352386822645308983387906671466888942727846702877609492913754540778548263107665634069695854898515916868811118174418579826758665594326152819792512255049402324442743430352781020643471880275757016148756753178787263734571437457848197285353311797090302735760210211527466378885917273683946381406529227381284904141919996680379645491766676634233171816291205479190958030080808881630327484637903439707352131174794384250484884071555686083866936472786300022650202223708514895146081142614116309401766133330329954708091222030556914930765320227066538345547045309144641932361880999684953494825003922316864958951327634358275300651067361036039698169512034760276699947234755815573284109808604345538437604165178997210027453794791670333789292194019240411369712264054311506995955858602040319552474394570849734191720332270846254741543384804939796284946056134618579474250861936647068861212586253666249557521388314114756865366318381622136600285943064621640219029385448629440748377137260759205218042354646119553942731227089395708767772247063083704303503323563642782069476341066336725748743989489830545056419411309929326165376531849025808525794356174170704260786892792038960458077938309592593178468819009001151219475643538652167917583936825577288264520662267567081800212452654200543535448685999781768303798550063815741918956077258158058303009289802726316563566608283482828841555428894836469712521512661335291573879499247797819613592797881484730506738262684067209851707802256666750018902877887142569897795455296214938941174631835177482939649801549639991011067751812557672984480829892009446054423164372962421348638494169892524204858997171553574826560654329867215953015732945952029433137230304640221912696974188810799690938361409764429856332798011197497431533116647688064277927294603533813781815740835307644005067078426986411469040333469441544037845818523061182166178589864805377050326030758160060059126242343625830356898057434765149730218536171305885043953794637930538246415679920754975536352789654677390317764848728286365612301280814411303507569688540187044561421282972884029052975269566356776039863164550548674982477223004073093913623678952170008034074213701908708320998574041203911506427922620258442989922305857481295694114380069391040021464951161666297039542557263335188247086341203217224105900858946810417625795031879731740815654702644681072002648995940453065309945529026853929939556512368830165166454115159092014222808847970286916418886149309505019748697548413081047592080170925992374814296020436777727353577805917279576570979426951411722673530491191676488516704926822799757928767012003193858249620693516420963398128074883010326641000800842309324922991479145947184233693461687144590260701456005246881948791832757889071483625881872119118107179908300040676141025578483420903040867020936687783061975361462602204036630971715902214372392955906256851679887074735968842169885548606765348664271361858644484036623638493242137642195552896035051847824383977279604434283216874407743310077067536740625860048374992019873533280383798969826251724855449766093608925684368918963897862925269375602077622758340515008444354428857379914044394477778969397417419206851118216496412589660724564315147574439197619293710534466818963828731976429153493768424482357980916639545673712534088698498774490528288288915843578391337800356752347515885549009399001875902329195910421896866643545360541171024662819726608206649919788426988625075983336728824706405436725582549825071866166286869481145337099763517312584250897858016395874984523238147847984732031268062321493637501795623025247624390706316550688641114046588464838948293502314492841141690047074718125470062740484347270132692986390288857759441442962479900161355774442656780319358645286360903954810633294192093247775710138786852076491637287693531690128991659482795997051868860319183482471561260010866054877187666326953665032732290598896184576438363353702990147644267135757124759384164423411317349796915175062027436127407869568825085125657626541935252986349105826353237054757260371720596309410284603539088371508827265382195563340361615055041697622424479562217778834471479863188710772310112316785809347231379455119852740060539674527270708956096476708125491384435902989230835746826478182203064099083691128918595313371849187727107991847725644310664645540261397879959419773199392434814764272928263616130987126981638971916740534313469122431512387803932298042683824734440788915016832836003960532617319254839663525199036449538228804977260689963879039945281426178579972428510482278358893151373239569607318091342353387821298715976538176399494534678442155805034499375048895755522060155387469359123242730700174431384859244819259256678198015962420281348536352036093001648408993099399162828847816420502517148063179406587355259350389968127011348774562769525442871605650412393142086283431234623122676940869796689845721933851071958955722548304551890178652999168431567608006085009153707147176703514859272302608289170821561789318747580708595135919994997787767300542706596188974751740192188196389282974667475888724181545350745358539921476190901949427761281201404503659790543351842773897047208245797678832499560210611442015590910694874576837745234996882973198559750589510260972260226043310709814090896480283090030337033091502242145604775934286934412195739874283432853574935346146523747368366725764004932525637746756784808420689117596316876931551626972988198036836014714793249184140015283627523173528134202250535014153720398236893360873344033648300697637496172268091541233247019012511852505000372481016531380431668420555755399348862505492918214535723183638598323727269481714139617073909856869229664005909894734086463236414844111735914226579454393433157197795794613413353951577894078078001376243371301744956877217317245698454384054417900556562314702647608999550248182653508989141476947800961603473123169878515892388418716691235424130111053589615628819928156726094761476694646735230579402685855894501133495636937281145877112944305880895538227423495293084836376022182649007039924182420402158788685114183869224993491482981650168200027753174013470439309559490080473589632910989980373779733920395989678883980639665109138338324756940017109398706739292495679463313702123351706885426877350748591466469873931298074979399163508409550602960924525388016710070193048379358304362141325821992009944899432554736630474630243717767772938285370306514441136853791136208129691366406133664605344493325000734600364368896364626382621034159199312448021514372127908715111083088621150944145506347933013359230931463681162315191662992336998624456913532840841866881084671341642578264695602297696059930957859549462752514039942842708374997153305811928154620100070703278461775697158981059061233045341262108550271371759230131905091167473755449897328023073177483491453919434481973111727303495155095308511333803147557179515054500454126948346750662817988688019545057079594415887748756035015899231491702374163938106772340111138104292376332909230603846120012634802773038235053589046855661726334847567766575496977047196130953226306000008440721118538257432351140691022327717524436974549982437356734902732812584743299710769137359301468149549144364114667961604942601754229861065096650384519317938877924919982222263056866042509398204539735490359796963023440626450206769183152608898966162057997605006729534294708717329774142364489658322573916872577097870645816300237951055696533249958572100158438004713200685096416350802176872321418107217564388969113010576311537816609375459217484298635653969649150365912089609934455374203907155895819070544448340576193918332973886085481009450350150468673172101389865164941889783590734063804249900689181235930872616397053314844362410708630460301786275529058132398481377651645770677940346002296678679212621249629699549306891760486628950421592467924860882540160549177844040474810198376105525970510677073871227946189647376171230013885014920034191806157908027741394546871134470512529057941837192587416257704726925309086597395093369933874530961057569705684676645508507752435999468001555673731807142323655116250830332376314011906401390553410429334722707092459888911499453545305134910436133537441493853209064375045164086130022867692518989507479807227860132118642460864592772251855168916064943473168029197455420084872672629392880327987262986847635129481016108506515160811593092452925321037724794101372248702902402372254352587156153087353418630666438593394034671618082095135598344810503531260242298459001173154093840994912963640368780236635561205399946806822604335464256675603926392880008808805873944526454426142041267187412188968512352939504228391813430731088941718706793859493215066708788020989637217856817426279598649536729944701416191279537498850651171588894663099651571266737356458274201929463316992239141112820181073738472816404914088084178279125141135970123035027265832012227322056296940201150382915536606349195144421718879689460056040108477361838932179748651288838658076058641417793898684225937360789522618761403569789436433833713870301102476632442463559559318033099664216343543846048065855770074214638636918993388934864464998733759210758611857615805522729697840006233130896009586192488787845645977143841135123829080534791361971084544416891726126113855995667508862310728200735255234582291765769406668923107760026077812526031447297087826585521119668695633118393133649348478599871558086742177339349311564852118033810408402082258189060249617012162466104497821728488606337312154038095622946945907297924290706686949659516884729785636306423236654809342672666344274510795547845917082240968781379590034592394491885051952194724204047848798657220001817561503177659610937441021112750324792290974440517853178185716719811277330139210641183553201621977566293827904543183489560379221056670159444026318748492472314361744720006109131821645389434002410358462843693299712916299039749748858709075884139610739062166070584997850466067694011756820049977204889360299855660023570148786201537018540581172328924441902935155570058937321782198037696696596676310788783098163707132232442567442238375275833508121930379917687482141140883026292930187285460764618493582306238486460965383425079210293512901953376890766344493220747890117768084116753788405346858750310036347697805527488017189092914051941457128902807202457231595143141088915896171067445212506516446495958283010670999849278392864659169355344266704507301545915606657777981008176766923193448709723035844602182246261338418318176875134205584300202606196350591144811772135729483020603693622089828405872202860009872770149611159368978068501486559669054155969386356369192575308980456730066480812785712405324955801255310975753303856416384284120434615488694018215605016646060566355314873214645150172075456987287347720326766913114011619690964959674802192751798755979410669064591411105972632197661085048539241985148997772182313960173999353809476972344026618022178652952181680112911557906019833681656579934715330467515176841086117931898312559757325129436853337034960042918677297481326491692695783012789735108096138307922609445343701715698048410390956994417819542276189241320361311800837168829198856142840010997419690096021122265082754953208624809981176823553702536437867918184898930343828437501761191362994288552582406172735955373023798915933356611631860736115854979656221857541187186123413760616512575797384076192240822055045493401729029476217638171790980639393181976405818818183398746207373318685400908947726114974460345598497674862996434561250351562072624422862131721923468496940808541616881201153708751310966466161941993780235551889015972249342324530171267551487827742702329921154904498765245141206739728904539811385307467283881362351161610344025656309267554463766139989444108673142333933360606806968951638680452208887810639896827824856698369422529770873709267158267413537729362675086002314201869103964875586014534407193739799765473215323050127485465869544172083567294284031196220585004354452485735749257324127534772991076437758112634749742734698459199307431362601892094392538688451170834046694148008408005707792037218215017633481662271043513430481897963403237548297115154478532303096536225490602099697389977798043393134107326942833956027096691980689786781759810259106332507955128145939294504035075350504668645617811726217148398346716448951820689553620211421771226329180694764993845103353172847139320501343445359468175522271123801218192264564045711436139486337313952818522689928326972161139911358474474425852172122934245496683556325486668716705385299639069235619462617730982914348440582148844026614505709498829096830797667258096935273888348096699298410922185748468582298598945325164423041233824814228245756408899411824657646441497409574813335571548786848588040079473126591051022639972823342653010227454610975065706932169904573344300961707028918295877509316725035068732052350180232350511814151783552272448230105731899996550794815735846116959429382033741949238079865501286086427816133740094659595981092714020908802184461755571054980629057794361494632963277504813334730194775501581526654745400878598269925259953099117687715514347611599415901807428410058630965092376361353284468705031231758946522961012020152044993110998201786939470319238302883696430319575131418847690384394589267127293685899461692742434851156372830393749123969547594540166398058106053984813929904139261943554577868716345693621250382733883555028280829767282283890299328962999279167509351605855895532391423641505610596788650968155075459167192045415819570782548181745244885722760390241372792971449664245245080265734547359697358296848691086236632706992092206353483849734519864841477578075068071015589316465480027036354099742285084285705026625258009168281509780985958656649490352807850611032480966598923022598293011028978930117091823653683441582412595804422526303272127328314129079053417748370891790963901911338859635156907457222711717057373107468541543986852177799046141314034155777827872939122638856112019775754106345345780584172704762880825767240676172608695437262499205346123367447778887217577941091600395082156425025931939288117187523503341137850477150334254894163309869618220641932718136681722860577872208475040705164883556003844027054649377023914138954009015974090793094163874184008211979098843231887096337869863581540141622119455431429812664559768776517503688872420900813820023618242312142054817369316782898002097947058933307493983642169954930144402344469466241678576668775560181422208040083075551341988595254156024213993222752972112462332630886840764581433439674877261019215565786675048812993248600443092005845610893856934017285912130893321793484553091318381088268949491792678228119012858887555975653175000270972013889521084407214367560229567308245490354115774607960111754772657652851864866486824499473320819332542086694646580141715260557568297177247353014802859952768744118923764608227426240229896264745005117732302800457728794820499452338725146674413780795140737308827840490942102464468271457485319213687608727042207236930228518874650372650986617340682077759975805757534764289435726504266331767396562186723451837284246792805507251866466394509190128470045755078692904353894476787495164420626332069693153269338409998646603608592371735231381567131360213211547630262897044168594934332023270763158083055039195629009482044654396273301923412529249282677259438693277666044190938597278695406945194891964693570112815302685423846341698266028399440437188247178623147518882037735603481801051157746965413982953910697363208049309472232494422953983163868023725640621562256179290036909106236664902445866401506752685573679940055602496100898195698474878974233878782302017240307951190851950279672448348611616438686641899284521072339727040449246914886096216288209067402770167776601132679420309779860611841016131356359896248502026605856755302783143609697757294844720495408909248854736297834166007890655654278952235851862567100569067132379112973134021729515633167606960776371047525879253025243321843558371226935985708462562096802631265692466684802879214286786689458849857794538789730722847067753159939610928300529441810762117830703154822386560455441362974665954863906421286426331741677159159676358551910900129240167892638462527843722233225609467270009425909644251096546864889129929888784759069862192850674545699810871038473055334654615024888749063899685991774849691575163492208663936100055387446766454288901846020649252982029500333814586424041112492460739927662896079347258161216683925003436788872049768989764773165246850566589874289592998391788528049976310155434175986904952130016753490760490461631298858516359752239997277585580405819778614090608742976582210637480219054111027539330453458391756390790196478255516676075535451649408202862462204844247273393170469962815549794384275485144547008178497232404128063731007356644044699717389070665794403284391562212074568234068611087869302268424719521988137056656946699448597306028054329463486684230612077092725185754660750249410008476347079714905387297685595241014582934398787488564731030334618524574483977261634397492193697163662605073888517536762707549823534507458606009954702939536898047959278476911515627017770591314704282919066358319469288188017450461136263669513763324543567001230113077331916565981156923282530545535785010626541314817421652197052303961953364284675026574238213136166910485450000435670030747169367909970124433365814199260997309485177284358065331534123149757287551599643804922511508473937994035761241519130475410160053055084522205021340163153642707976509476977539564314582094985155058697738009982896295637742635573020964454336219682323868076670546583657017530248456180655210734411765296063730227631255465089692726479768021644905633393971726979444085603777260568555498594790321725839725656994081304048226594734240490133459712793813397965056130389716293392912341039417449483149771526051461228685408667399337575245957319471500476330480427358885908431999549712074251618992455623287741700028227681926104248483288852117627350544311883442280265807528151087387936195463908915082525063976405388457843152953878997755311806573409794107695227927830394252599375863631436362194527691802843084051246578558149588577670873884622488660187130449542050113112485881620580519411576737067574920609243908159880564353469549523754521093839677602692786240210321725321191738620804250658885800586485103542117442331210038081631666605320503700669943757420736451630269242716397479082881924001018985185712403138510257393951877527399998865963652958315617246779578427086732552455722849218887907789879446790065249116165845289826595405642887226649477726933060590774167905668226689981391619002730133898573958385942031524298641574921357559211290644650137242273195435597586619192851553085666476672238553210040239057323990172259271236079809098395298338511665359918900429634171673329699281217298706474147039510951072840764146026703672148869164551072440769659915555810330061273901214079249160429637511696848877665998402237082822343750658971612681695537261465616650137258267211193142142564041647581133428222973032962724429579390690432347593915030016703022667833701931173013387537819998874956461143190836068893100875616867669247744812119514942806621874450174559469407368137725185068220877754492379274402249564431072294331805261094779924998906092376025942478344052895032307165487743395588144669137511265145561331291956735194377407649336100350891161092015423940833483735023942566069080482314745700665500495972386393579023111466585809836288989784084472951795923754492667863558492610735174690236543159237897023027248797670045689192863234715301409411349853306284192603133251230847298314726678754371193432942758654165678067899067566263364160267063300144622600810829811655335927635098593953813974394344280078967560038177273292119200898950816186061237036108029164896092101280097310007390345354825924431426489549210279251962400456676249607131508804880365254075667416303825770446408261755603038102017020879944095232558884405651246829669538165185172331043329381535783553186598335010778578790903427758865377141948005973373054554913182633653887210346205427955840542136080213346658477710086893038385713674754361064921584471539395493261758087957659018188791992019009402730503561365447921108952193403120344406135722609908309801823834667471223725894087484492397001735137742825161144844504190942077406386695551815661348236401552115903395549830158854153620238635346672276827614534142291395277454874978581721784435471102908900988695412641491316143561822682071172121245969465752254883795887664551469048721021489435712477517374447002977344236783540136971338361669538133766514850260083833388676320541500182208904872582712111680219808088710386791737555727890893504449438213945829010855164291058314070647101405231535362140220019414001052728848164872729429578848338046214556056635822668691456961818423707565963654076151647918225862749416265904661626654105855858972245815322717285907856123399279685403436567458665690900512647626736750499389268642350815494491283444592331662829810321771316507324768353109846323187662805093549943658876086780671458034274596541539364703482827959889707341941041572158055857065743397317939289021812117733051808728799293836492319115846910361390203509292154450452734878551018327469738911141034540000621194014931042984324261755692700879444229003879457218679859778639399606820785488269584015460228176490025310658070640705782786007342965783528950985715649921269395228417037243358464323686520212606854712255973395177061134939798928310763590956273901881563348565058433035625316476804538493058817711663750000013125398443164067595001015734780982069084754923711579500470982779539915662365364878206204189702217177580844605298806252335465321142498353261454720362809781807481746569421299798050594959942160218548752760105623824207177609352226219875707818774059462307303802760675459494352509349544202289418698697737128232071244069399633357329269745777995746480902730097727286899247618720195867131938546699594324744377560293592455958749813332249092366352650063458657382550612531182303643397649990310579571157797852046156689251775287413589712329455116276698072743419895582632025043786464470619823990156808488408533042552645676274480828197403852606118511125527432716780197988203085562078390120661639160910009991152454070038782106964076663450872781242805318202864600550484141616636408652723620778681433429179552311795041577830372652749059110151047674200112861558181199843891464340901750381899448277209050604458501081747351986801966363477852588880046159320995178716860870724716536264948459782185607959878673033634256470635873622614026012115040605260005241014323819323151993240349628813349775396666177196257053844399737958274596529834606165518399403099561213622484408629112025724768190982683653339581692394529884369929345367781274194114370741560700271833805720240605500001473771689539396611966609462993927164860746174776560748213492687892433431415640686635608355918093671122885725270983561798897572599890029085393457011456839403129891547680170322174939995719497224080833914294085491598728024905008967018847129086132584379625926817194094069404490166291104220974406089668435600527598444960197798637036508224761479482094687615941094241018815500704542680215455829769322958216459125897733530507610422904429330391939578665084428619012931174757587582162019360146919167272166016217551660087834301050133469212789203662281271017847048012341137769838316545679306321466869843066759198779460063461096007015257851367276035245611793647601258514407481232536719106259680585560610847439829314058708640459618272780628187690039904131182596797307106179918532811715514585272002728621338808355605841200836561362563799834831263464145479987852534432386308014837430916728595855098713592402237453838391380870684283942428815360704141910573819372355705457675185647278383837859509316838547865674331577831993180134590537671004419225501409596102015945146239686405537298672849232834750190625014990805666021890246530762378151821087334067966880954485195294256350613071437895385347090198900943501767381458332918199937884053525512219763010714233518117857010240736103253527196954253547624497436380843768684474023701390929038301020735611981205251692126787800604037409129681032744513649160971346108018133200104625228959720071406899469374740333950746611125740053973094005407042377582037703668933813967929978878016290481282629070328157953623647278846316247819350935643211678058898788088564759647883235001496153393591578325952479448005626341702914304421705871955069254732993104437590677292225548707377798798182699726218853371850247507796324977406199199921200988947177247329069307984615004805754323894357123089824077584237077570270152043241553920644226876503660777782462517778628100275328920742692363696314312558616664320310779538895660241461570244943311611435822227926937171508175168117737482953670918088555106215837030712645912102751216804996716665800574604831999036096629839330444919455941744805892833345025527575661777106594066263284494770053696166789645891401613815216341215376615817105951016452152747085287096992779609589838069738086390145364626511458523938463100819920640044929979252539693519710721098468026323976928053255724364874423545942950702244898794795605282045763087630133578064626118207294589334128938199450127081100234402735196271274290518912342954319957216072531977945927476407761439221439708893960689230758084674516309198392236942068173740570527131983654721251035025641695441198373540090557208146902469287313759921451171207295021293184690263928132201031449098261581204047669323320500146630404328673504440585510600936633166247692545605598415593549506055667680327931918701811208410375870228273763273073658117868885871112095468856124253720119953788543430417932211850399570706406576752790082846889459563584033914868025521050941298784457360330635897019447583307560162782013491207484423645812392680221566878099105835242398523121949994641868616362533951605750944509655198378846012053556619522990635371623563510467508768578488599611540806060498397430082411912602660225676816022034642338800118967189043461490443735884293737212174115092164258416480838930718769082294284191603946689371943752099177202403658041092668849314131833703601631120607707035900651279978204352759596036783837034609466939214418437353577634973106864834426500100985494207297954393001763988054060286828819102673344167969828190218085377931100749038681675238177829322506227319737690525496021899662833617400475979146806408286674088959151428940668357909854615701414630649691447169111203898851296238477904168983720277510075436990551009195022309931961315945111800310425804138334030323646938896430334270062435891264084547463938881323820576112978309221563663403042748568844761313841149298006128638979074983495801466503037859289544289560750438098856345853986004941285994479654021346419710808387462508463002372146875152061654800682122002892099714383033799752858713319146684780236529467619577579038755867260984947960560306478118059092278086831303256077454810994312317529743990421965389955356347893697473483877845995844552497461652182535161063763521775643371246647855691741071772524653010351880239772493908269246741495737800711136217990759655455739455393464028191531494064370951308797748372105153769882465773593173840336914196335827442702107020008020830073977185214610341950922719456595532760447687669064606395735034358064341172723764300482680356493843852376621583437216246199477956469346354411166986087792416460590131503283682441134366510913653464771289819029522935846161056902392155586215569835502984815197714179975138691948128379002208384351008009542254544463623931678950803102980473206848647359738369246298882356165500702414394410210564275422999495573542188708115534721778732110862588628730443979256861467505980296299411655114704378598675739839526712861865761512440836305542286824021232808234425598703144128594261345843537911459325891718830485061508331778916705308656187924223149679181772324555830509564306608255322715335109280431660131913054854018832867650893541786843468973083756308307021692570346284922260752874434752435579744777129942647310662862622292347769241837871161032453621000992440953870983853217543077638026261313118761639554707679989891990583050414086554414528603519063107338958821719498998513063576079230507139852678689499594101303700263169141255872730030784290109895414884129731666661431066730096687979035839106811234242369599710344489175261650231758844520416237053911462567176869282571362861888904278378778780354891874847964968691351100857786301659386761669993863324037480020933833248935886718351790232221353563104092646443719504981343183357323525515646470891834803731045584124196110580907020463597196644414394232351932779354962490497808524531870885582902796807580107402579153400244711267473116272040653161432016918792998472632391372257333733799199800675340628950434838726075201540197583805320360830945407765575481556456730669212395498317524124555949802292798518989107954128636970284943324705431948984277007302596028312769651409419527461910343153803545296618859077309819094101928566206584072139372088354004255706198900367292818996875835154837616193688790135086259684080312521094399442815589145471713483018994845406392443110319092611398446297722867849444700548533265888921978311887432411049997767938143308225482439584113156008029442094061962623951110079266648291355859260919793243366223538516400110508476672851865478445771519978584859863067380500742411130568781269920307714629042823819382344733677425352148292277326509462264361539036502840217591319294509181031405016622108721210458731936903887802188474300948535405887639074169422218524063294381577814254880633819775501061885038293489059246776557908051932503668181907859860668835545772587134328368496904589739987624012743333094165151125568279788915529358022571409841920728335229418065549168304143175517479146952855882415401048318315207662213897287224360973416871750287678175831190666933948400857201619610460920518098619305664975777651078588797409531672481740410766128480055391215203120263072496028617618089238190316674159729565339500473454567717482849587208510014336720392834619176174875530942568215055433972672178844192988405009501110496009989980098378718274702717398401639180067193073229798638697273751945621231140972850172237450776001253466248167280941427777754190334261192352286107005436708324235714274565221563142145488195910533862876684920047921543774776256039070970292720441030474763515278016161562504757338739698817182991869758434454966444549737820441651902521462663245840936850970814807723982994484066957107430584649526957306886955737168890617103016099578233342243167384173862210535985444285909233287763147952457771133570574566903028360151273586618664406069592260909197804100936216927713016679198246286510179471334463691985270228152877764419803179079450281381154497763502204885823496059671918453931276253951468052062137881268144274836605837328225348099527940681959415009591248591130387158418701570733089865893873019817843596314894599460026589857452752785768762323207106553621181205617737618920571968539257537686133883761199288678084867462737104763074289284381329430270189726091848109547385879600591911861626199591611417785907887228487742596772024376008233749095382735745962477754408153002114831536511965497242332197467143707016480728081024323285492156925073842984100727585596720543546050968675629282744842249311974649486351877223686573696670849640279036590716947058383353734970087625390116793324246119966034758382050540635368528459135993167727808756260664310843643444042248377711320267857664353354083227418886127796923472829016046091156966319374747093433184109538770911782085213807954839764296513673970941574910195228846274546260006684603803901940881893970958998054994550272031175292194282267972028498170099037166096906041255931836226788093986727398913601768406391748633522374042965313584474021079062597853802939662977050415483188045904535359594400033628886772714651685334594298644655025431611606023301643878461042257095444447250044123663581364643961299814723027339237125093846132180651902441709851130769234775806912286488209127899521788467897292898297649760873608030959908154494355056059992930190789766908552368406652722916031460740589313598110499198487097609617944347369085088650838704704132623952362990507200953816382600332482561063289094665279878859148048216645869897134427473584332982946359372073474883406550526611513526268648001799959494347250040537146929653982805762001986691793777010954055927481784098945305580607826741484673097466109116748957843799546207946042438954581085775220004027451705743391266294440690839640824003271637925805928741211660508555225559957774120652209864365994946451555299501526400074940181100493552094083518959133097830464213573250449412642357732940704185555980659550345486507880329633169033809721502968816502784815139329024150917672753763326718776213247363014072797717414058284830984868818565401742687052828117771690916093931726102379528946015105534418808117643843571627393165803253628280857299554472391685460131640548257766948662601236265020163807551604240415362995306539815709936592882755470279414255164810340660349506779517545604464504180671658053113262535300757291294171033009269468934905897978908976570373100856529145753235842922504193304384193427303855050370359680633384320020182263914235134791292566879186140132205146946163581944587338746239717450841266180881289110903238405794897898024621947172690197141886717855010493907161839893731485865371195014867815874474557906274633031821712306377002216852803103070777286214102791240793140370273453982601804278915344143442984231388390645940030843048168146432488743285062964592511677747051037636463949403518794307950906307875930960304653192400776551142095002660738437177899882588340396553282755380809182178979872041155196462195160920748072567480024168983964923563270640615800614937168730281333114394172661423567739015831384747161359754773364381857501389982045716655139652182751634314579539660460834661582197419564087014100127320715236680379490272420319942873244824738556662756423042299168584840689859879796342091042510761758580010729428494794255915675057362085472346986841860324753672379926127033931475037816731508738710141456702459990796469497206320768184453353702104366076627507190691022200570571554325679658723711385072363506092727036514430647460615576205155894773057496090420720507959948969676377354962972288243768163191224216963800975046523887534895797530637918139656841528616539878100160662606868930397802535493229842683137788104047938231023667475833562739696054816286712166927299768353192202167169324964130010384155524050881253865499380227041542789575354091016354436975737230547492890987378708170396459979895632485343184901331469197824535993016545865446323707088948347761786152567594592946616853638066332685742330626816927978641577163614823405494265059094612682520642125828303407263024576805879824942192314951800615423792692025546888092645128966741104612630844941765452527981332996907708400077469864503370967894929449123980460260414227253016314268528038375062762226912462881661393139849761269046289679479218901429348304521675686233101638880884109053063341257193305093951458151866901736579882860433718502951547679471515375616656904352647071744365132479698748074037636546563671056315486546843770074911827080903424800773775402853518403958942108882761369604374580606563238049949855245655279978728871111005332951485502396474822727485795326070476973830908498930872444873522409966575648173362261870199374340702806531332575936673846332621004024462803055671236741407278808347305631036972726627641126364082950160849467073612487537633501617041130988535019102389760712932097715471260265578016604738075923054118594804627878700414459747277998021396309787398480275030490163269723022187780931956661311764389852861320927586499606267900118183174221782712663189627714569502971848969845144511004652681355384993571094709064890263071897705375123411503973920627252012667690905631920504449350206728711825857529567668353124124808816419679156510172995186472286607064141078138353102092350546487503255269385300104530033666223985195598443094350010048467375658145778623659816087940089592601799782876318526097682299891029915092645079578764975489348228153457635108673988798297077592666205770239116482737717383247227347250388465769082211810010930014226812541201539053837328714632575421246063947163973432045997229920941518556790065544765395805436175078120936504946908568994336266234777480695666645884799752776901478858248834295073483266359706878592109464222656179153357870467149261490168957583191771821456509785296610429607164179667932734794689355288076742848498697737684028321875068360815348379201964675056196159872622165831604046288338639801611556064199496619702605648233862741636654906013716185781936753218218517763814730710384412337496328645879468560582659865882192579738633693214703185515535279726758080900630874420256670231212388843540681055948559376545853959444696231362441008610969485701639726079950990410982592609167984385712846349607391341472514636145830489543932332346219257898259170121593129516615364140460330651549839085754255636067091843268201363830569749967782723468158324597934092765284224086203519917622378546272891869538219634552500078577373027681047714892229319352538696305303057344621602679040215225119604846196499426104174903275357224768910911688247830552297695051580647932193123834688374437397998221791412402034616645628613043062836434362033570290249020405057590681057324878282633579490992932132933127928735244730275479409799121588116464156823111442057106774896566899257112451546294827656103706811519227232983162224141363200291700649083933057485061690756264977018251439592447541154518543109923706443787904972575312670635799249489727311213886973512410175089981145800786665881393053527090108864209822699863340697828597926941244959017074969901636093045668197932623472951248728570623173917988896645360675692376540470107101180919541048609522228082493163523782554582018848388162824708967653728696618343280644394004557863045455327416663455288715224154154064802226778583099625469036512752483299415337971351298208209409335878403019611451326014831233719325665607495492712627743454155330926156757997790281235771483290932324536581899649155759913610846331085791731208391628485509740798844975829297404990365129916110512052156483166825075272446290982106737318681780746900987081944362219671591241243960861561179295017883535536638098207039559972726724131758519310278851209615388216172581972702934919309044707664889969759569969739244889942920089159127843047012220840049916226066775741827216575727999563596142473612061151927761957323262519320355638331304212392785243950787134893279024713292888556201653200176211069721623719335582004778760326035260702466641624484987287271776247142266021047656682880567026802488811382200530270310616732961998017064469149827063502834273623170924387212595043401128563469423912051385169956430414141247868123038241910073215821801645817996231181274257246800672707358601202041187876308187391331832024751504319839940024711782687666033864750219720350455666522258262886539022855801476471469244645549048523915683965134775131922261309202534431309854217022704759386935018970241132139713418396503873895882264061241551595531525968461364344134462613212745867240512112080101963333498890898865058491007813106669355872413378232744352337114738043906395705117460042273499540459335103247889105872202728109674884742206952241565782208386765996421497227658911586039796292956011205380005345232631336866027454148670217383544548055991252177437090821452811330991621742256580825999342381492155524923918137215184452450525422162554713483197347100401929860355770986404438907653029498393787732592338725399831713859772250818864586603774104169461347667439861557858215217723871126058751386888912506110264804025809687029367186525410998730325332801931771141875425664811219635542665862996465733490134412644455667245148275494834652096362508795154443604092236788091754131928288680117363953666140734117569418419056832316407106212476424789768807579812308528776049662305389752686177673599395176203697103612605361923792923289071791647545095505278675300400242129945390200446528586430570507191598804298039483170155027200256341319365549755008068360395323080804272330337205746937429870341818433734148120751329797855856926571912338566997214775870802148861666340357088330154289179571033466863952926040882167043655181443629921217323596639045428892464834893508517673770165937023367060766661225050772832746133681355469113195448452442797579508794180332904520110402018125311468807963292645635063975210576101980265486190244783806807974347057832320082566241369430099015665775061883762409161802405473905457040046128761042835555750772469166894210271563052964783151485015979660965386393988506396497351378439863389320968899037480802714120975203844658234528689834339279226324964229552782367977580613529315461732241317561357099268061425244629752998673258150681619499486171252649477669907158709524035517918611562200871024605252678068354292030837834183819131808399518593188512240464205508874005264605476144310980922479201981604884616365534051584404620231416301118751932186080275400173220449945962362542115176552062557292474879017150616170711615103114794302238523967712513032724452746640807532614651083150913414315035577972772856117047809824987819246092209030834286729625829308343009213094814862688805577757934417024052951707005480584017006854777343224772067133988563311823306173333375683689478396533000936023594741759379359007344318637782630137482365755846327273798035818305786344124883980528064026289682849991316015328679637246287214455112888311493960065947983642716412904389307774595193889643330262152037344686744191261340404109653684879406285658264711965442347020602773668888192366376944203130596370733269998817576001973685036595858115608531875307166616033577888511475105451022183916837675224538105132037096579721216229413417082898834304099900707451679717666669631392721677283380703178602386026433442466354279821548038407396061071178825744890459194785959190420323534655963238782118156022642198275996992217234581028936893762058792402332458569004863470078898462167031213929967316402064418048321238395913993834122625550587897781256019556733372432987675892983616754693307133198283575848823048134180795214011412383705244870382769929223730312333326820820214415306012343198623194093439497451759189094554651381891704653121456184884775652484399513279180923574269673610031122995546469557873145058125332334337460785756190486089840223400434370985656481126719000244324445669539568866989625785819617383305813620466710297904196115693789362383854138650850937335374480464137722306866096934760610785647230862383881786079975148865077190215073964906476939054501792746601616020682964531472111422181591351482313136508030102948462112178611781228296608026048112307750236751357964215268321867091531400794819342476369624056690006990033383826954943976289897225980888319737113100048217072367256182680788077706214946115540777574093209668408007063255658379023084769672375679348973493960841767915487963538908065363854729853607606505630311557873877507517775717733850392226057862055686230050968758219841340866684214985064101608708137607141775936229016559279101752679178431805610458048097292395611396140184398137650392644802902680849604426261168949530583245048628089990503724863459705072283130266801101864711707345418427781625007352714699240377743711175129445581787342465716845501715881405539709422543358983382156179722360600353616989282801382897824781877806841705295929784611208909293975153995111328948257298116255653102389904252013699782622330028939604406783003778365401384325457265317233512809784645310900921123615891123664623150841944683058788978844401299355974234244098149821638018304738265220820708446011202986406220869161296565186822009292577862602470166003492864156641501370536236819459660794362383869419557470944795870940305597107833863222358681424820797291202562133544736724751640117621949083289102809964872614072125764834925490663279882887404856247627492300728090814820029045200130167090522557902392498476706277419720087877837538401686163542727879016431610491267265340128376933938689898737924695560719747209984362703605355503853422404925742913216467219949549535534032099145584740361887356356027235379807437075502732353854492402134936889679993749913773497581023934150101600865294828388213158488116296881940459542297416354429312208343768632162069838110208957364937086730729198284013755071574388584123399757644729956305829467194532053946830186535947877777120529315241615263212347511568216201349473318082583657470014416791570744116608933290125736016684356450177999650920261550613444301951184948978834858264238057370060157831394994878523138011855132286192753929441864017604115332341798244650517559707886082872599768912675036037370738024065908507536341636247957071948667471193238684784396517294202834801953885264861814798087677294398917117719839817362976000099296985058007675347967821686966518596649702526958681985517603907451370922146675438184787078164735362006850746076794979562525816278219459590059047386612526592532922599304604826000198161268483095399800080933238591186370656182843461785234506146361060743416056187789081307137587615034954247110178456595846144668486220358686819275852281078085228185909043165550934021119972368463093460302357916000596094454816461186717138993787058931801686222983101349203650189301943862324710825592224436969371657453071079608978097114585184663246081843488746811383992576883834085415204637015324596668454902344963016190653893093682296040343324369056221284438352370681137276832296872632347792186891155177316380880717307986998364077924946525509373179703602406522956409200636613870299447795801289860683298601783130940674625019410062497898009684448749043233255898283294402545734631446821509571509143754367605680355548271543903578008518104152372117917162318478333495815558443355820047589098501479614850975944246702425912652026433171217485253994646359984725509564352205043541063024810232247776172543284861247269761764874048587643024225845044019670797837680975136682611800330242538325870863238965070679200819910685111003209982409852812470008475198072558230755168245317399243664117437057636477540700982073516290226967673483046237283072457599692589695037517854928663843827614408483724775978808062954695601554385967930925784722657904002558587194768216959623269860360878689702259552838813679902562274892189890102938441562189402782436469278942004199258247658734030235167689365923134640210097533572947137699187079021946814221296783975292251548475907927906710335320088500003474962263444483649746589157392500128561965007997130836731375258397286504927865413507716131725136768710741781261955394693337871222351496973210506042410845215905418924748587300016841209180884116532103779781828714360956140793661733364318220320813905992812604420513508996707908358334895911988117892663608817047313427660665974537668871785335093549395379063856637296400079711175923205116757919877994766715914872644883318086395942808529301141714089525818714705492818364270040369552490504401982101246533563488632241625091601232930285712261411349743660671065712129481805055770002743210831373093269376678094263126415920916237027759687131960121325573772043932005288146750761246377550898223990312648543425385078140399607173624048371000583760657404849111082426218819149082821737723759873901561021547550677130402303939968379542316073134119744594793770815651462213690624684825982854088649676331385109515135482019324071328520855451987590958041920514775690185507968061068255724513832097649723118641758165309941431950960276328243149709908555529861898199683900748361456377201467093163055177469262616314235682615481010588065316417372291678088713408195055640292556956265355899564964661736391781965854525588214279793597628898248811154482958294234636744904299817894421422233242894486353361167315739330737363851127124093109074985958607384387291742282413375050051923989568769992490996857642229625415206218706444292815627888485069287628891432857918005552415882595941121284046885087026615883979634652433626108430250637384848636835210509315714875461423558542773962756532908059445767616747235373225831169322019938532703224305955454049150879237867442550698685213834803977742383416956066096119840209044093789514881261973960354338018650572115106150310865382960800216689284673900640867398343377990047321738621020388915625520740793075865870976685298454795262121728804850570327848092175417450917885108561672997309543672644969097673040137838956602983121463391689174422630326271657796698128792040968983205430234611120924815430745001386632188799996838584311901077543429072190483039316777304418029062606656152788627332760911574516888433151402704990338994703349480270289207836345995906265701500688000432370602365650078508252045252491997241387941045805287349865155782134408269243711808677212307241915635269348025897911747586667728335176622650260933874697805286264246646108763742846407544519723283747720694004004319648389721703036711751421692829632511207475282644011432071153291196370026335037295849960094755765446802532399618308787779889851213261531478511997872173395637391118330888093088432261637045829126624878739735976683807444873441444971461718721971184633422371455507868029670445182686701087507364101297217035108112908219314321366454596425241280759176326455967127461794423899599519938789247770186787045945319604471694494930730211136637461135970077809264768859843879449049482757645904877562182743439774710508107110589378163533126891384199920820222995617868659128945631803464636581289032067117864779824530940849900968818435137842889886474375509520686631910401109474401270841036340059913619192030280658437559155905142273512811031393599201584248013593661966755681487272831360961937946601409456037903027664477108538751207787916547371557961127754466082743018965998183029299131075954168548652370137155666497152422581920131452231391938910219013304143600261697045634262902146240384308984190023649801171899800004238335874887864199054657226989167616760288668546236989786963654725088262684167712044083337650817745333462654126959674042633613751692107146799874115817098349068022112884043332033335676037086689086305171038334073581585081871589345921599186522890863213150372266136273826423232024960144411733671067677237221634230112632102854107413774326008048267095362385404375534609289022898140316545239598332620122467985366250607219917456883026759614527290321837627873678045476603692433855869443378265820197757762061717600176618020007242209415748584909048770813017298125022297955401775643329249481377807330513222969341270877998320079043802166760816039659014721125923759030585513055300475383516815656197183775996886186656156443033957264559703778864268650658503214176210180441340088387856527329331222101605051248113249274571227094273193471547771834704561613096630803645557666795744599850339410264514341328084278550631350063915507012123439685465076473729554973130429301531866049593787615817937677341482000060272415965343160275050795295657967784198875371238040295758600388299035205979606821198999817826546783973804773237318498136014979767898946986203263147699845421488499978827511742756100328096635858019071859728274732037902837178738199667419179487224596148096262690646232386759083686037659548136864945109567302652141117928555736031693305457379273231584971184583897758958486200349956496037091892486882164999543880629861447943351236434220071121317635327432349902463917618354528858362632723107399768383169861236982535796009937845957687412112272200213532592256645012556895366638601830241490079887048893760118862036437602427745575065448787444969276439757030418955606935975973121355631076383279050766759887999036049882092494536453965740072009715756910662583056541920318008549959594950974624556483248754877050306716883516414298877528441352686979107628140902855044291933983120239748219189985423482199993518546478991505931430704258960917547145170407472868498693180328305239758222363330160659948213296221222932941514711294733876261369969082772413122900710975249004508885703191316726409259960137465880064139103938040378875478252353344971572401734733207039697526586678832270231362371316817471195420244400440619228914081162884595549736305334192462450072318369316311716067265946851591862567633108963710671068186157791773182815413275525060688471421946567833456493638303411692935827518915442227542016659960315420337212380518392087484549248846595087790718339821191999641025078967392792135153609777022321167343319097256836623870986100276666850541841980375720707559105401085440081804734655609653091271881952141220420617844457292928078487038207884141994894637955892660866995737158674881224692358916606996840758019771182798617744963093180677562532841032964022306588059731283073654432231611910768071560413608180599267193627434519634342285141080044149578942611722862588153534037885425248326558635605133260536321148305003837992844726579649506479490366483664258478993481302152402877581687877592124154522220405633750620388218650096002621366903909224974073672789853184429093355306582138167544361585248780154225017418428106043628218940426639268537443836041202964643073823164095520698555704061521293941698719009094615416806523501475822676846955017253758066385635628726481643911688290612578672082522084956563614647053777152593279444604217091998736486832010512036744798164013928677767081677289457333700015669858895124378935376209024935378926075863050506941748698327244035980483185011481115331706961009546962421199673804309831122751736189404203094286370820096288514062135501667778629241037160823763416234920016142285819211408341789240395616446677379919158882858273717445833826018349044725050651153157111858031054789842509049821085223752080729155180454796819367983541908736869177596509069653582672826869525439507000469181244962017088240658315645288298839331021083079710322884071588775195955221961261460420337239198104625990797605982203551189771348656085263354027811891870132184398068435794257862981821030686178984521416428047317666877744187017699651085345471094246075220512988620211561657442756953029834287008394941639162862632344508784166832258586796751545203877623670055973404979292819897285940738983712107059231733090076372841095293722928347228011545479731809010304794379082469368204371097592440226565978488738628268372283597132660987118584685134422141817679656487429591885282709841609296782200664359748167803447498559972566779011587075578448149049527078614304706354230249441741570498322514242446595967551024222930229100349083936693587878162380042881482553212391218327976792378371266462808075144686543125333741035530615745757513684178892196178427654154910977155937324238590666517287875902057983047945160998610525429451516354850325405325442620286171217066088368909533539191349147904955903096835003894823320826497033459957149521358034906254044866551986181841670574270172905905925688033689357213799481904875758953624271295848218411417697146884412205912604313343879876664437568048207338465498581395788959237346744804511546752296122987496390981506418342631703852892791946683549848826996079892585209043316578954840764561292888616337073552924885251745492854946065687858866578400847126643119472773388386966113863378151556391288516399071155990456507873024838813772152163246426592993744768861412046156013914411653713157106318124990455781853856814604676075878121237267771595357000328262814960948413028653091474425038578665789253090344488590150238362734788421964415174417122741832658337901269742683419346163735891239184818726677104257822989678647093801789494718493992425660702780186126042880540626532883481026731461696283800875605642534793393632601259084700497971479336149312995212531699356623320340718722641472900724637080489199595959148253145329277410843966384861612154166764797426312357435465764366112187505906712866144204892567878136995597225139303367455628038151665583262477243325679852788596414683218192970456100030973537652891363007823663838539309449484606574178351265519322100394005789989203171991320554210123118897828108811454509320917640987530514929144084355931848374178016917654385028486057046311995307328060615835483864191521548026644837126636204933701221907286833800113863908716309050947608748956689751530775626437765779939043874555284883032806550432695964810645481375600297371365844665651144733537452033119326594840491117123822807951760310407443028879028716496500750255716495094592117903644534055916368316768379427118392110373011177143017995600630493446919739041580970717115033274041897427918941068207119040565524345049902396784927397011684760592400195531515635396966358957783941788717123377256797320234403120377968969183423853864769822770079236952776625713833981069905172074043042113292786824213155805983658797472123667754513179689821039790168802165154193462960096400940018538304642616941331235740206335052948708642092541140686833024586801498422943123362473104956451946577143572302366479620848322970542582435060305156195212939986771595839173219673248178399707850524139634972819495524757903578174982135102582824647450774271313727666026474121053259013041082209805015944341987714585107145948889572594003953460737814848941770100551046556855343601070489461784679104296748099702478280364359549275841740748108803930874922003005861797602805507477082594374909545115789987003529050406850137588744030475964795061337259940603672877319118693094546709912711365544948901534604983333178238014664873876413014858512877621868074324937669583602200541421036053962290263859134607059205627397021301654611688130356978889822447988294918563116548926915933277117097555008596891468160271480014648810633949019462234475333271825541951443262107112906735734975522490446449241050463635136628967180544825814666334604741041316615741864506694608104115243537535333855398776082500065283760944007357699231817201647747672113059313959352512997627398907002757693047246839972344341333525044447243930909319054884706274144178944560239072432867751778575656906130544870833790497559517392555484045762464503237561252909381803568375815987803100810955713522080285259601687667508433682639980002722347652035319116713808492149404582556936165211133583986076847024713276941690339000062050298378990764071901662009989181394686084854755486052952957168680462912413693386080096475682540283387431963773977772699611609194561194551128250565519212780698699018967952226008984186568526641528930153867170398875175358095655952665784206601465293920049408394653283448912622455529102301142828277391938596129157943365343605419400908845580247132525034811035475976406392753322187783170524626238144632466052789208708738219364031477706457777812448732994606213406497659104835816991187522176208578322378597271136709040731732242529796408248214149424866562931574600517943844120952064277721295915949923842717782448276371656086313694000054761245839922752823668632261337431456913401353699664631715762167243622684692085188470288734177146446505737189297421477975720249465158625993385181184088666708299770922311715029115396798289435588705364016645215250121355530450852098715517218157974081379613416249299103363004643434584314916924603271729255233875615909252309562141549449822238786067023902083197682321648749736455491307845332921327118629326087491225791554937678067225084373534870583233281884593559325906577435532766341961429585407708946787256051827115853726834510026423714065291498466808288653951035594369162003967169683476734747121900038860195558237801139724243907723413149832676509190855060983643780317156794468323762605896137323769509412748634951406699786205048068781159622216351579814262587945202560512656866276545046604045162828803014262532278571441084979149399202489052329184988466540930166073509899463578412063356568929674192692609425852244297425883046194044624770908519107308830659239834942400584466328898376610463891145420632573313580366254963039627123726309072446292951827823064654917241265695427270909669903948027527711825442461473839635294840183726534262391196140889879782584844102815399372518336785914869558194866936213593962079771788827355812763550440203194838230077270340370895705608519815507840145019044551940257055919121749246693841552240265771255726492439032939801069895922880592244514140018270570548600577250493458957060003208150267837819549003634357746192556662941319084159556339561382446611497972456561218955549876086430466258972111003734929429812750024604982200623909557208248507997139849145159208288866615383140092966334720024846325998689883859417454697448073085340934937153129027325111599543373126853411830819252945092832749492554098469386453997923083696091454009596075464536843797696927086604224007342430073995082834498557496113750976272112691150810370317025803222055216958202450518320194022629769178217138442344437137745156055180678839251089634517087812911363578042630246410090403591509844235544486699465089515206576476129348805837036860606598998903824955517420934019819047155776454559205664765914696843117904268416523098312735455455940652695669838446730116944156410094967081661439784633290278203416860310816250718017827188742401786181649826368083363047897517293446037677971286877923806132550375573422359677417866376732653821999700210593453617681155873521972713548146290660947090700800991136496092249256053639477320457988172265466592899512722208849866387304448748150216055976465386221662467711271608568740877810690177213089240109450030606528672810737797723810081442046361914275859884554152721922164840837897890956617143495096542719423147058579760909098429943643393465986739004352164134582792051468118699335759852126818196352396147800267433354789693465044347522706061186503925955881685373326461655487835863745824085779066422162650806100429056025590884469757785947571979585826190094177399971229640853175580942335413970056631001976696852445305482627843132723103946922785120057045613153509406400927881203509820901786692859440355463155089860826589086734599739817967428967331427290281620991484904430847481118703702492156013066199063198536446465681825287385501021618587455953766083506738387911966564837692970707813356921697442751818211619256030494454546094529194199165348840206760729393992869125213388273621582257380863411197564358963563872899269724640003856379056035755906585621784168148874329240913930284714268013148556046439819350486235781268491445272298897367009108998385885208559821091634665271519518737325805037576679219235708194196308764447290727165600613633888031300621697497886903107765133461993757224464903584186812228175349939723092833411917896548221496161599672920329450257004808525213680396341232031156774574584716330421209347678974921725852215319454760493578868666864801291757459758463106375007154519281351901049895191423754099528140111391363251631680070362953071348713287436705094757789606530575378734889768557878616133515665352530822260511576000506649122809553718754621489284558485488662881930470789163682145677118731117545565149122125566655411170337900902553688767091779527372212174434514873094201894735846807033505091692626814938096647919055584984323041110753095169469598665277146137126042187862479956924036616718577596962955085888702482609265232201068100195288720353495896726033783489005015882872998312552911237821656968546328046804215635270206862179558678056686195568574492056874581400634724184150472275069673798133187065043948293886181132676671163474330607113883017305107140921500898285694783176160463576810267564400484345300817049746859071306077020423638262624074103981071204402583756075962015769836822180916555267370524196887252502009454617309808537393454787554490859263989233555110545572665373153871440693533972331233901077635801243842217195304700423094961230232113442638397707988582842238671280919951000017231857390669514738862211384010161134214137248110035718163405625404202023507324954489522736008540836595847928295034678946403023857983994920092959020414380572619528606493093998501392770069419062003271942628782735056234958342997755552565362253012481689319491914745992776919801418640265057367945094218468511509046031022824827121539294328248636930402660399237438461653338068483392787215490046661895561506520398276363730909614733023228618196889758601698977398801602082533160421271732332138167199203309792870701761181880572863040541927849706447322130792764771083501486938945033637445947566602193844377733908499128548536419078817230941079776872711544193373580714575747749281801462546107017393682430965676204186086904445324691151586912631301151922887729477700792394982415507096025476014306305735525713800487708293780731332477700392156419634567071147052734084305949946586595554060231507751108956561117225039204033683299977660292399893638430083281571841417784395113664220769430829922323959459944219635841164847862278449217828630949026042307588696393424925564174315279968871703594413560510360445119949704472928584166143921712338011664180648099348718083791763350603942654342356167554131102178429326992875843574177627722426005036656335305464678599732300456345150226186387991979961149248875852301770131518590245142519250283563492650919620010099062549926462725568615001745536833774204173510285429385817391281465538831626524502904152379421172555719591570963542886665697503305615602055188954038163693096507268244018904432999001825850168702751288287926919953301299342167631443802073473310521758254306557362168891352453178711828545328530175732533111858451108766214808148170259961400782357433263647053754190888373199618175036358274620650224776376958035806319523981373931981838015093337554856825695204667556150325653558098494333035077845662969074792065717236091875260247939454093661585395217337017797439581265208366962719291575353778059794519262382278243153366400320285740637885206514118596478383991014094045362621561492561156797284051218111048263871365266985117758399272454043245985053801552796813083025766568666499532760903947005075472025568804200244281709010917638941365316466802770456346247750406077888397884157750331735734734378118951286544656506846436179064502735853064391504238987354278899537165940686283195567420949469928084469037316225183659984686886831235953370222501900828534231762560558521667897229718625304349177229631922006110153041850704445405036028309822006028943649036995800084565869104053284039319064067519155086490317428656748892470816784649564765155896564801138552551038823758310893431921594390120962793425601992355064358471148100775182914467640490203299961942851847233005047595629946234579240854391689727013828468915608526781070141684253130180749549420103663994340192911792350091381025230566586820749345354876757179285452734312660854422734266035204675205468313403830406027551724823884233246710142474902736831936294178619516773230248050493632098497240692717258515923121814157248633002500189933388654515806428158739098837526935523607058756269512518353043537820713647571483432670507905189344128454848657960121439620378673645262385963081053186658335197638915545770578065633916315012410906661537089225644594998471074080437970288332716558358945103090461815636442289615329234329373432504896964588472265737586707564111894997831431819524502904280783143866400596898993014330833484845639459141977262886107133364625368974465417911367332109250520788518900434706655284263761530300721415389250658412454597330184021969762764753106573666701523030382811382296962355197443756898806257749418702015861129338425114446662436676485253616662245416012534191372252998148765903111526579538770561138117685473673432122625427259541996324764055131598041019588924891718227933905380573658253771199821818692320161505204721126005628714071782521496988188641347324757060301330520839283788806834478391649080443011907731197902582382798673766934092188436904124033720362675439404740707776903256064954971060078829065443745307089374572554909825175217348737887438611128837297780668529097148929345332933463314872135920254655860839061832250663500108729695357124237997670295384055016860959552792546944100140824447649262839136649778290909379320586715656042966122143364955354058684278024358552122888506297976235763982434279514870472131484952736916598592026317856357552132097563112843507166616519467087677302232084975882216045804022481064695098322691098516247929809758930334213801793115804645844797527859862875231217202392955840578221323484843379398098808703695289418354433773373593755827382999734992399902674761616879745170804048835866303377739228252400391727147665342434422036617639333049572994228936479796141178856191127108923934880483958985151696694922840875658315936434356936882185510991730363698121679012888715504552651120979008460884578116854190950220187637092919938494214994989001854132634284655051572850050118543011200730532999312821344394926027729950574649058112828781759823156221631275413658071495379693075575159509938228884378806226380193989157793870437378612917589052883536563281149625936471542989118918039862027927768133589426954818308890403827174421234032827806088476318117945550739338394173566066493245033714912342229676570646395533846161679176042568836880352943783122270363920225718388930143526640459556705192451593181309542260082242404468881982102879807420770590577205574327626238368298748788637623330499560728253282017972997471521224677233638322092325381980401884537296165741004501675200704083623680005780710242361402691410750133841082138218971313639716477232360595804922290769247157924609643068839364026213415292740779815230502453610087974297314106335846914157004666405116774667377982162331692439502271057904520606762445888857109949016213223734109152209579824224003818113850776435658421239184386719386335914080654030693370321168455455186126818495785970307603088902692101863570028049077680441837746826543096698142683101781567216756757734172295153737802233065138845446822263820980244824165805472826073283753071522265440374510193255584481919352289552735583985491335170141472190254920530838192288789324701563840007375457207386245979403273141251994094978497943896456945325177143869888514263614619524900764509294896594632002282537067286095753456982423343064117370219431441589769407985970724747775865599379112758762606422228944448763267485973702744313754937056862339933946137074134561836953463724156546172418881800610568127257559276659678526638293403578650725964319387249430602606175185147097918970758647732760316986440025616342986127368522756844352313195093948499437247308480529897168237473963479725996885946707739011707229640986417081006859205844764424893176273927122867335692306552338096474829000701724710251686888576646989775192113007820000047190246155751523890052157269331580848909252236440026792868443750574646491528342063793482047012096640151129769212614922489960056214633518314579049711005186205744219263190525798465123809914082034627000504222898228624784336494162857092883546319381913525585495826589664201068144105090347044984342234534326320880348680023391885973100045429835824239633534078244457851168368531128052077273319877650866225709825667595886353015636885638732092486068630033866773398277763592866683254720072363161087044609741769481321486521727196362378856183660810868539263124099017452456258482400739893424022598554488298392624397079212688950770339964493454017543617489908204137938625778551711104191086399810340453424674379153542227398385629622006923000726264597898714960544023414736325488522374394895880277319068862078758863694224631929128531675201985587393277805909344039055055474151628754987411562551116922395099024209527823589683575703783070432176262122564517290696782541133613082919545762010621182806862746973108530362129214153632022246799381926244308718409367301773740248320294859277343553301939497360442558919627540257506193033962469803686090458526111422087931638395513501061271228045821038160519431619262662431254759696368910457454137889191959284164443157553941075768348363161844766059049200454843860391643794609465885452814970897606678529539591765360432537686990973511124701107204319799293736197466210105177674991556336304986043175334590709492934755094975654114081777440161067984993148569868386793947321484177972655062165025544380229064387266720038196110872662748567966100032388009565487920455239969670822064896225661565869875142280727512797095391505466488655133319955047260238394110440884806187975491883218076590924802106954631546406974385258800899631643751800771727916392412341990964572924996852950458400848830829413982504901502078679060332812763665658325274565809173541671188943526276680580719011625412560321327555472745252059051764135934283003250697371611926722096674239072868651904475352256940249544489025043527935082582483063331324764652081343535798985342772185407468761039864015065658946409434672082137470071670079271240989808192408845044670237416485835339473203698883672700474039167486150973235750367748211127581160305530824877332342142127425112336673846702208170218975561269541978759910517941524335377918794289424530669276166778769112542189506545355273890864484880190262100136326437544146367411708694066556612376292399056334903933076910398375106876572099515665770185622413968835127365363276866559893502560577824749486066846927166844171715794318176979764568439415329322443659134520222159437702000561173466636628854915084972130130281219931167646585984017398026091810612196294653087088199991439422148042046393537366249696527273122981891495239059288357315840258197914111480369715029878159719747461001237343504451641995631225444677757974121392994278232025603302062484524111691461514643342842236963072266044789405175352286519447718112178366381201210539665317724763125418728712150804700776810461478299223428136558801246311769178777715550810141625778074415536414492359382811544055520412986319903638957611080351536171710302968909617532900700310600004275310272428823043607439790533056812508170312650480812956353324580872962589643850061704913218358022405185791980349183668031917935457098787815373894929288663981605245814678485912373776850391212440292332122211371478355316460224805437194423402451579625295079872419817022720335224678177807249301825374640621494546975216430366082912615295538548650424668102635227626227268921594147181374016457791234310706317717086490321608133269538860613979035784250902188197953923725807591322985277107925585087688461144739935165356495778420776747039337217550360434082683873313239935470896891299230252567104547972935576250172338993118911980543572369888418798368477035184466904354272454911394039228403340699690403624681179236235482594683029232599098677729107816590330015314612499300258580556498684504178217071248826274467114630310565276406883897774264892794483236212872463006595673671570087846413957138508962833263082776049722711923325857895836805751398404046948032529171488107419357604346111371378025904536585799445121344811206097162914610777847263072652375305541849343950005187868965081004543229830410858232258949941174121179759169006088548334008093627446645278807860358415967731465297784248166300845102973262909415589527457723532930617090081849461807433500219573956429036712751013048575506881778812202067715879776920873878744690317891345279516570244391992102682254420745104029970171955208791353412923445600423717860314889273696222603934029539274752782246316813006305200020362365088777857394099460220306752875043539397021265265694899231460278919821147687058066016038735504189974808115718584387008215613987726465775177497449746947270532325482630237430923236569518200005043190757886504458185514341118240657300103036025047701378000953483548202553339609206625348327846991881238074499947842778473077641863276017380304705313572067929251706647308075350348688691948140750652039043045644856242414702434162623505406624250509044191872955521858061268070285786860133900910016737360217289335486068858869945205804067051599963023015480049103246834451937030443904649846537190514231247470965166831279945023293925825691357665446720261011810265259900408874492090137685459903009149696797638609704231704137354850245460246523903188651252080155786489250799463043775965066326360015716497092462232214522908938676255753285877706477289991875107564959414828274078858985616539760354070875933911511691537542243261004523183372980040048167827612322174771348413467939897940161117486987925238382948271191996091070005765126691429933199009932308078618423148770051656557879807834806773134011486716837444844533232817989764515930211613178102912484141890729969360872019646842483205055398979467365330802260492402271923418829539863447868768297858339316433471381865292484697584594828870989900843598197754633006522379034079736468467779508743558574738320253600142689507719362461741001293741684148443234252601242642246857042545637583052406374325891968841371821135995834758288488980272127049769814302685043628496377882008456284714761720728255192457113492640484086763061145108430986067275317003312399018107085001211948049473939868756596009351957711590013610326131650341163021356215779404226859611949897776259867848026707940295990772402176226438169375191328978972699897965064275356859979522685681207504964650610546028527277822268250321918317810228463814105126443425548428743976374782967487505961877279841334559886073094325137381454772875907853085193819345836573989761275688077838443960049730552603728905640895746500175606742358905929092004675000257428727614096456784930968864975154044046084889848731158426613554632428140465197732970196174999788390547907959999529618841420294167371803358474651168665386829693199384099118639012963348910465139597629082068620293239947028699333782574947229420387361351145590354867391742583600888421498690112093470001632700969631137027412263558766437925745443477624280948516876476333782773568972068710560310284840278738445151826320597785325138228752857051492114600533674711653475012021246868327442796711946616328359217987490730282891850369152375254461031635866693079942550769231311589014384580204062205369895451663139850403151883602233275367623037065873265390538840729072638208663406200553868443582436410607713539439841975294512940327346358491339683525358652060880579116197776934331936337799652000057769375907632697929512070466737602187126864111497713198534470382416985808144562231157010947359962030207090099037377503279123152527274189884443103080680357023287587045656806285840352336578556176568688063381536783177146214037268158635116972484944839450786056080984260147228379773588244286849258287172964269690258769768511910405831825713799140746189894693894162867753443355499029363100578708822181097859639910045673127226562565194671943913285854650680283376202957967427671635554487197871880322846415256526800215058745973357917678083677896617902747143878643975289794869413612033354355941977212239753509165057805226581057402910539768466713521160747480197788441387294771335143707403662628911202683849836152935101055572646900511216361392116741791522236674529971302894744711324921281733253372723152136332361602144186725060173862395331854439473234512618555279266578830401013054874942348458079827945632793620202084971047930795528966507428672872986893637014206124454900254769320756749044672350252220395100058348773009700708989253675131880003714341910472754145457178567847810762523183042777998971603644935982668928584390379540702048531405880792327252345597881100486466716884493922721682055288815446969769447693333222838039522427844231294767540702752611680952163136044618962120225610455962127276831084247410502517801812775730524368187132931622932365305409389626093248534004415041069991204654082759397691842584197097888004596256853042474503933210729997008427980984640153673529215645130191894760145553771224586600495368862149129869423136456144249943227076795329079340878174766981777652636917540082712575220169248917056645982673320513068373137584518301139633152193598703277976575033547845392801748857241943227294853492972170829216731047729311915391963467779636531436398797432951755757344948096484435428413401561116929688920816333890835153278244150069986629214256373055328749622775978844681357728932237726177860073677531190947012726604513108503047397326103854438421984801357072809270345226927000623374043639069664479050851112203814814756257678653349319515074677581866139998301006455611739720608580165717925933059516303972616570816614108998288153164684659354381659037094681858057581730287003364807636172384804512323684630058804003711911119121441665662048239614746101387971063362263728432845288354174694438408560594231058389402520797228118318392319006385916631959113797595668219187119156286070022050444046654777334394439688663889500929489205904107868725767045089389489161233309126322490720880238775868719679128385073671931549601266251886743419745744121823345493817294759377823617416877310100117418482636430602965715195472475775074560697857503901214997279176593645060690510947692235711493892573203230168353747387603435086485029825659254532274272840241941049862366727603752645690257165990486815458774207420675666827371998628719681501404731456066037339363257320702152894000586879085811411186449206103852301976217784818463423238570161817253472047569376722331252825814669559541585190727995952672699637812140773156001459495201744169715778636054639481048949482892784863740027968182025400362034526938030710856490938050960939074257815909231480323089628388414736756780023608055167251326029170729734450780555626037368916759783175682399914680700797238089886014087219304537016811658069738297645605921914647091013234727492663065725821429840752541876208448071810311741104818023970733736536925621722004066793707319493697243948476373098909952159010635926328441165213177368402364069893817564349043960882546202021151701472847110872756210586968330917692809793763219325495242823418310403842715672694310076310275293352083277863491333475116497704121894872332167555485531462942582816781981759133195155299100336032142561457784078815502005659952820270061187956900714392872599566312036886964787910600588606562533413965904372217307250267163805902814901561989541573805459848106869534769238035367030482702619285210732346744360994222460280077878428244899483890094338093180356048712320907002125192448388709046335209072261741718999450304976470323389628288556296768130599510418612473662517119484365122746308388650149078206466982561380352050895322797455015936511076361118340140143808763840528667919844530451042592310939479485206471899720424086851448295897065150806613762760836053850683905240909357910150479243068626204211633084456190324874131893429392857836755246409615593404962967704223909780695346737722059098467701949458128793918753646571347205442325851687520904351084351320629015195542885483498939765976516660140607062345964416635396460048454026302298803180023323942716749360502044017310043305465160664688597650923527266774633612124350733320472561113715063895442764815740668016458427965004331357304277051049884716682705694616161066750001992798089252970710207858989153305764802988505948814021857356209878191787665198418475189362059650741279213569834859690734519275714752596224506814259607075958681876686165662421855600703570642309562968732565557680447406504341163812275249086498083114896281254013898319220554726390325279811284326310856045256161682662178475870114302024000145830229161579551707848859470537101773934313200508671199427977372791825619076760403222264284704559855500906202881329819146576485305537701774311126830246456565675924176693897478302268499753386370731583499406082932199054362736916185752779199884024395014308364681844850231513760059980011013850576358203604942984446194269266656082641022324581596640274703691478172203083784729934310134287275558657076127978349247495697771959906941818059251729260932727171386472584549863236183610937596478221730152430921915235799701950320915393856221316841904009868408531758565643960971962578944563537771132080502121325729499873018011333046259908563415896374490630660505125796432161242257315014487633602516069452606697612097534720386589673497699452087017231493687430639831478691641817683809690392735902510606926928494750915369867308483984503940243631441745262374830633694034021562827277599492307134761768965811563412002694624430979588195725320844433221518391375714182481316509285513962317377863251586842727992296141454938148229116513941968790605399906596198418251877838483804092188464019521405354211014486124968318961525863331164758078414115771949450137931141294251796925235045112494374839126532445949500990165697576662667924421090344355791108503632340635535483460022101907293459606518026137716894446491409237628173029870754786672427422713621531149860843632031673928951018973408889189952984010677811770093191323982798088956753682452750622158739567655136365313305682660743226886580327595958388165359753258003938530015776052255573874849454909170838166461497160129506914916210114375096500667946695502301219278677928688088488254508242946670617592572081458593739331674561336865851429492394780507682366596439682959227671746073151043590086426331266417891887100444262245741397877408440380666595606820915288393668037043040401853173366400098034310864640314200501907359718810350574706472716785584779812518830139051910191776385898764297921314609698678828353627642966801487110924130959702159244046854356239433658146040996580094451237890607963884015393395492155318773769074648620737644784536097803853052971497871537592623061105841586531550494179268896125160573987006841343721539652404106174096163850850777253634931574867418686139098306474865148673679871639868495135593438071708275300359884426392486696528170820993860977405831850185463218451270251569433900210377204816437534498790946411140017147291361806732011435710239435276530082083175606706003447258094022139265830007193684601353647160742938031227131229601027592141583123082106634798513547980179855639913342548715042675742374706301667768233628801136734697547882217740004525289419470658587911846447795409401831539902520828360460966026327095482662513363634991557040625287136081880454878586003951207386850816835188213096300324914691409913499731676811786612298434795106396207929651090048003171408466207180825414490035803641208576710052038521718985533308170863485691622788068261821100938792206268874294420590636260258967729521256217649579612652886366504621475821915047216637183881893090096598022722683029386263087789369577418938996062864739115009811118358722977930911820904101138497466722377717915726220520543963833510300112780351999463652131304404768274777705053463912397717356914722957744891390885187922020103795856928957991423685398182221846852099730321197575155951980980540642398095756900056401609717434668457806301879645982418227133254682845957916241386522702857499680796342220677617962815954450124607738967633359241811148132780621865898128185079907557043277238596389224536996980971403373380954115261770131601648133868804001493449603710327507278446889423549949199681029316960119413494715834268009955371603061396091145135343231696179357661852680924132831646697269477598798939664639441127039264225070272299331455066823463430090938862189380045472078736481434383431627705160226205131470721182959428764846278866146741989783244998852877528209396110217093449420691416229777538473944135992438245605127740843764516333913420161102364313429630189192990993051111143517193412190761628854659561568715421333916748443142557215725218373351292483529237751342009263444800968674244566864376378956858480696303037397027988736816961501877568057886441741313786288215440935303494143907545519518967746824072487495407963449114647146129127311910149186365543251933595668949394417096269762554353920375374350950013078609360467711569249872895298151299983405337838586288497864690229858573743681369205042565874663819801418370285230737547369684882606232971544844413945187240312408949189284288966363199568070778887380611540797982552936688014561182685243202333053760882455150860751291363132388672738903946230282520670182378202622073708489041221458835033863406456225965004914504536552588600238347220832999823135269220778372695186397324922317441196946946498683877631269688765268716911305717162048317945142677225314996104457816728054700375874235235386734285634309161149066033639915206547036559831644611109572296703509997539039447028899587068082530181036143408741683537077640252264668384564886615482593822880400226870401705905761810593695600589410757086996711067283812200711628079538408780745201309503868101341962567019182235246416448236772643494466932892870303246129458553743117264172694979740729573356757191341314150954923876212154677045701532847272932103978757733793277863741734918859995608035633445397075516060963682223932061889490572729193598008784139615219531593180028478790083722407159893160982151282675251466000879598757279079650206137779174011981890476752482672188802394264723617577346788262230982061490186520855878943444250370394305590272431961994221264929959271623575350690358911357346430710972188996379785490351991694374628599348409282071694800376557196978584607042859841861547970766658788835467951758511413429987835304571765180459070130215401066723434947398109353068848668841291197142665038100656193789033920964353750440295677320447432635092745965606522635052509216756397094018982837280849235783843926378761486874533184047117685561329947358291300392571918765830742200976424459040493314121717416976750454392886272563712512532806461019989041864018598699970523400701381773008189293034339515332998672400079058670806852980826245438071248403456429394007543161551678459594655021482818146848177181943011970252251929667327388265809279065006029775223315069902528984482746497702118873276213309790557745382708985527506837052580745634962968231132969988309271042405674718493508512082670497715230406385911157431054589191327460529309291945020449134945210508666468027045595929537510529225611217618433274136242111520716363499044576334784316895874405858723838504787431290309939292007317502206222879477936037040647422704003415080325879712900157122765191312069270544290947081545254752567787472471304722480577465983141513581252065366520505080174234157226995712221620555715213058866009583227303917636658026783485630221376610897723126891177309080316900763677449616381000592887540278632355114845372612875238421669007062729590626491485195895629934088159931928344940903674916523718983209850595836562154673739633506158692629281438033758020857410321170340533469994849994277384753090792018675446647218820905566446326806181175515801003649618142880474187699745494278262477043052715744699706700902134426564430630906820133722043583115625975744712977448434261979292267699449366913550216484891433127624726740994261370029495313400443210750344355110331138772384266643535524989196634861282283858540404511583471834187643890458074554285169661509124067864451082990684749806882394929524556428529477691838207926341621113434299842784552613809511284395317703404543669039717703004956255050537652951310505744228183646051895889435732194555710260829816745111909146263644403044214902304638841939426549419168521875642440784564154618683689888351670759531971219087659551757732252001156280940478588176837229356487517036131052069476628895985651442387714783404114198431392375170727646393016554161649367118544142701323121740042933632518519453058139873880721464796628927241677607197368349414857683576109974343604075085915684823980344812201798480813112428955418842903312462885573884005705608197269673048300663737730592960372930769527745860335503152423369161889463287740329921985663777226690181380707512786638492171664682905705448782822072163420807250055420383789521825318484610026010929361540303971755259629455280712834403111210920368858816366467920613560985738043138610593238597670253181486287147531366881127382176981916021246355639750833612894971646037548825684190238269939054099471505560882530867585501894759287868738643283850967314246535526709991087657603452216116168834452969718721566878837869195035035275941063828496186181204761163696005668860956986850209404839466859625243630822093144980583068536441249898857501864863528811319121306185308490791918335963821125417677937108568621472054415871029198707252940119982338187467972226572755076851793155647264582208381954699017519457401026928374684155624344095787065059879362495439623968184963790740359697975212917403358486467627653942006452819063851142089590663060115308313926295599537165794974322324439692135902162161300260812426727031901454031649385130337611093798909610709867307828157142604333586268696988157333096077970902385358949385006148242635631897857673258133229176364518959645670907361395001237330969838843554935846461431402858191206604257567016204085547604406150808814934631224456191386491752983389612792580999429071844751939692991754538122755920827521383782901639294217688822372174132621443620816465109401220565669361432143895430107041831154439747626202425011993380133230188234245000792719723242502009329336855336574623281733868130860066244141423388469060212415441491175440848315451357829907563788956985697221167985852272480756133327163632881453219926494506959010538528980062125069302307190772948989795723718798694110013431339458694857401881512228558762968823491183454192762980051405966548964131149268353455050379048637294466095591835763995887264029644202958901651127475645685732135648577992669023349615074743307312484543239740035099382649782140703417115218037258917484063712418462713556200854084587613667418277407035838719841878940179081429462202408109608489085612114190372651020350504140465627214681717329719569325063558120816293113606258514759646338888699865225890882943155176819065087411042655232137247304930510664365953366189324664762047301902349065284553405228376339689993860552597389267877696145247504808328633768751660576966507406031370224405404366726663048384648609867100781860182674058275028860446143102632567254118548816102772978864777865341221977068342104129588670807569368986841962685441845396440428541739966123456260261385873576554123101083374186335483483023301450075190592233201301090009200355291766055810512498003690456893608139232350798141296424277887318470619780986391103773289687687973562176546606762185158352189005627908385082345553956413978700051153614109353161679882498394271903414708082232418461832619481175323693982800190451924305109926871679540779005400004487703914092356331425107859179543197639863598697546790132759637365165573974890499031038141887257773363035922742211351777686857528070549760554765000524019430821553737457293386970891176805736979411970203230434727256669988175112557772321655814716276575018983988487748108286922925024747050165600668187094018810497830608626641585367825130861274016708587200877993519719731134210687172111481768517792900952831124933000370175304624086851498796856805770941898895397462514297767296559662910530989198114474173598161217822288695723798544651250837827090457787223703309490144568617910004239854544568248171872784461224375599804105968533230157673366471711879153777501792426803272989668819331385829388262917128441537393136198390400526217676708683233951003455837568852468330132177763629894155197370045863080485878897290078427534542318723862445997289501868751699369847155645480967403163021066735880590511307416972419954223345321237327724073331028004149523995732462923910974954562246379367233719197117659806648509562483368128892155082827020875095928530219516049109937095933617367490443102966300068680155769064721909037806061752677399998320507891275182884264034704196090485735528595519742879204862072114563412199140937449229257929542398958272903661078440124991943487025620789556561799511917455934474663991839247842818473794361128057719882131708432142906259303552760265620948700100348881366742956986218506156568007542077697460026050779659442154931483816769129526004074102386629003495533162998400537153737559972650686037730973453294591751765315613853649160690589628711720295542315883483545266774936605458362001928879886578679889748930527031529949560883749768342525055680391227863628142739611508739987574534983463293944616374557238318995860659792076708169044880210651750415686252340201356223987662168646521221415118339809674698812882467993287083419699435991668081194751615751285452765279958928985795109397294555275610823586535157649124489328007486093700872272415378943095559832814374821980872507431495202431531353973894406435348727296223948964850319414938283175348570968020938633309473716159727092476045966174465999399589211651034638881555276144234225051104446429631229761160318623214840029633428911640098351517730243732188088288113265882151382442502954898956712618664097514445032263303443939064335643411307030972855466352596762070163646967507685374069496525579365981015893288153467838224088829437170279842225813944015474740787437333717785817266652638518451947064913993358760903250646711043806074643814936212237198324277558551026964473812688264664988302522470792304106624313813895555920357817514591770446676406128742707750924874349868412296160567852849666430978132383625627372413681976576371220130610818709500644502886134599480241145963049628010410404034367625594163472659121767363209905152898361863697041499433153479085697287700420720550375342858667969589840108423586916996851532489453779944659340062864240659168444718492219096608430836779102449972079815763722965136362963594610356756475622488506447863117043001141752495261724111194280564257321204450390815813868364397484159415740641228094162627572676460762397385234405076183049405824385372195859474262086793122674366274972326235729567495147439071971761097026892428569133336033565867255997495096672594057566356165708285973947724442341719947781618241986094821163670104213576802990382887883932297432807159912181638360482257239145744896806314816974292248822875595688988867367321510078162002786819377818105838339136217199811986899909175261961903338915048310190093664188204642182639805908725690758860191656105778924272201304575247331285448880935270936294917239697735493302293501202825093746062969867985938662438850914511322737259903692381913584984602043572825504693711774461159333991386902137963804991444269880647665409569382985573723156380941656369789254789619410962050806569142780639619713565652278013960641373909397873827869684464276039927551390340092228748970897163946212844065018551279228509639426481956899589836809443293763133310588872695755123046798897916576616510970477083297564834806430918052454283129944812400212844366107403942288760934945049530645141326200460717924325576891342409468259103156028962586761858432901280324972668045526978933729356876141695206452362737883689378289592308804460171626771856197860943534348974006968859940141700753920370366032286326744383045770140413080214756068684392744828207777631213429818916511268436290650508694435933270168773075107028848045572424894271054769276011917925847080087607296184460063491827746945913508643508580069536076081173136699362232518844769381279907926748617071584361840056212350164427879890452048164545527525518080297275133796140230956150261519400630717111325322011191922936388388598767268284052396618485163958540547414843864719907430978320033429776571437777744716348349366224432563388728189659694184891186081873320673001957250065653583548512181855090599948974843985260201894142761513004390477915166925860331039030192456980611648348193550575507647170455989966950473660991888828272134139583397592138531391195679080294374353653833095637163519026882804127635159088011137479728033778058367507168055285802977171960174944506859203117493372602102561989979433916466772289874240753713773789682708044587372470229520666446613432338413898287971293118137354019258900191031624086291039501010279588808188679359561896799157897298998060074295567695514073527730970772063989397704799824071836924024965798117463052798833524978518065527104596871146773985639641829738428179636321316948046775988535306514128862864942373074101823096070222113088176332175609925600751523084765536320955549627166365533112653293830833681020983674103872150171475724686087117109912574815068245540455935423439647937274552502895792870036869818128990916565193112648442526665949838041574895716628019080821827826600585054709162094550923534023486246921456410023345785370583999077597535674402881710466471163057212980632341791158131076985596599220541394299327443924649446644676278429851688285336380990645215189988655404720541643873140811787725015058017106273476669085341627997723927381067621855584904610271415877335340959808664357725932127791599866073068214111602414408103811638098139137774295908576421661397365853696514916269591101599942429548377804917539536560206490361062843501703494353045081485291675954558979288122347671121519312800831840113998146380932483422554664016166327875187597276214572865601221188704857364918173659010110959401776099932699519198686487079392958510601184758279204309117729199438228030271667887583392417394163791378935326864614878404667733347783808205948071334746740135872714763482196141157178942369446955212146355872796635924905957742177460875156058235337317912716559073767069127621511591707208514384279800943699344455345991349687408269327775063673777387024448821141457274154347104208940458522978399982190304456205364509467873556859425253246263453733257330145333094414421385816611881786175338498116887868594794762580072308855366492982993386674451463856315328616588776662364332591452801026352163387227788950579382317613648635240312539964492229194642265070256872871464009129825261995039916216991160647850086737072081776217051876242953550413823896170332744883535353488160302276422084750498709186645916537120836641634769115283278906227882418275620734286471854912480778914681242478487749387711298993155435774998265010181558196103883816247189685046319124308461344378891818628929720795894383663477999923072348302709783251103192963404277677236419108786734314459088378788001561314031958500427833726991954301814969932758253810724297120851079327322701134366540321612711801191319452603971326797566919991777732891655237412004770970462847143080292273066704169652965508501430956551346803335918758181882489255884659381782981394988046892030978010281057054779591901297939126034296293080138400449307071455839039954042533953126666800000156075059028725719963069999708554435595719366599787927261704892261684310223997222001987891937735600119686393053354638990154984856571408565001222157329455033511406875599578323083468259987535869455957606552152469121800982986321312232316802449055845619289330553716901889061194780077190508690717652102973339277020351831161628001252764557174182511652298808377378610353354830332702819956982499016286010525484333271184978109866818513975532028706918609282812110340319661605480048805870666752826978104855807955821466454902859033338911495742917272031896083113983056947922243370179928346803300101186580179942851237173066392364291305338356994639816869661426217179855853687951884941673719347172759276812299031158166585167041790228332488118032043537403216703314054971551588960611640215199525044375578390997490293101777912140475710293506586812378932786424774602135585895366381717239800503579871469566801621988023856911305529686903841164170499041107175223021556486716252263259193301796040606524678320823984610638605870582493857830902421047911532297636255152922466991788323765322715508936648290959745584343794867194326366709279701960925730292388510879796637923087501829289749148877353678305561559950101494787574104378057415964425610609138335880026254129260597790236770103495193833280783065821604184639380052932315288032200188133906027251579029257338824700311400121607154406158853107746079478296946385893459310273020909054261724676672041069710635941035517093466547754889720482418163469232607080953494980826529961251213506550784718082323590167923553708514643334308205598786522966376951883863079951316374584053404621142897574900631468270137658353070275971606849682479370389606895616493064672957464566745363905165117705438280344996649750695629299500951954813560075128264595786948209402759871028789007185649414313424900533971553876225827918048810502020710087871915407529292562654417354323449030726413799451467973488795532577483047268742474255760428670541697316256254285468840942744035548299173368132320351974120457345858614957894261840894773569290052204426498381333226546167070254629223079628472786756758496587365006665382716195516909276557040339820503835273254334256097096975039022726777815566231892767934896577694606187338253414420734166947719029566291775351014595429926214059723591170718099711447047094996430774130363633719735111339640175304909334839651056251983309769009547543037996891082580223551368548460689507553845092605362169508047873951584634669755288489854576896247095065637343862198593689358779883587955485425397669813633499115465179740163125664038075944686696757293590450479008978842185055729325360389034884006836179502093607789152471609619037379783629975018432273149408310307243585813223219448348066274045460703173635071989932756667629688972226729350207411294738885724014860504578536231190278360595995136846749111550516436525708361329524162842098921488697683305255788687631571291484814054389588414701227465151146146734616667990494326683128329761324770638732009123494777222070394887732063663541766242110117343987502381521655290818915802744608340327993734772278522126308871500190473742947319929605652299590668776600048612289057886535456324848667475633762439603830400602510801015874613368877365349122841667943188553145730980075257807008175281920080125395954601637279212143523693682370530916563261737049658667271107253653091686597886576816531573965425110574851940243487512880286238470816876487475115695284856977208030971052882248944411243313500309474690329476987637265040907689840989399340483405284246763314359365582142474118420340016625295337140225235510946979366252465417875450468887340277194780157625568076369545328430787408607981060289591803532937518759197009177074903550315542695929165956054183108527324483563063467539665450087753063530163782583759150880984349961147735444420174991922865080912416249484707180682800756143447710143656991831967645335086268783802718092135825082914435544356925458388486957276537911984109027941501194253079699937106643683569589926352436391802472325526098588246119830849898910892231254514887296317944506106678698311046435724151463774616333434366997895851280662592922670371241250437238461940068407588214355357925012451831334501877767217921043128089984377456044917973156102478316242530815259480447230840198632649917670636676603230036953033205327408970183271036334609867592367595759009722559989510940200041771936068782719566399921213126953480177973192894528410628226462841181088600433029922340481002718572290511135666773262042472371111167725399725618938343546355049401902565661034523861704412701894670160246549404933062582507891012958353552142803032310346829402970730849454359999628012742422032524178812541130818105155423397022428239488734009935390073197937311522766992045935276352324280989626702659650250368774754765793827594109313324999142833492278737938048278486715295394153175915143248129104975396627702850843896357929965623191342384309528098234926269101120240675640144678192846898801342679459946014293010981116673705293048755050406767464410971269302712781640031716716697161939114068886933358683475989624855010581745928532174542456084815313961380453076976063997065867592993998809314136205778999835338013718723967497345531973890246315737636248299791650038087000787243866323821355548935078200619297281242517810495521197538469115825335444261334928539238696535133849364983174524392112874495534214968774997207748082211397654481139407909774002044933311215316847619432107090945312191089528912845557846324482135093919483758439592951294917909887614490467611046889301200232795014750514023270502237532983372643975374835417157769681862491875412211613392742057524199271637542343076713778743352150012086699788149061617641555867714924567781383734279860514534355551227989997601158575691835542996276499177322675459463863473040525273224397251504985162775408762996493147262146037856830007997302282614298031676899841440708094717122185649931502209288207939758459412437038460429956727701207340113904885361643174721853680609026999070898329770271210339465756162200474874749243119765070478592717305100311570411986867132820075057668292143657544434676257364408109447883286113994251350853211763552565649453189364153378298990026350744991337224672387192888132820130544130275229802824413127309894599973171814732074697059367668544565920346946553592681345668962449735768514329758060538421907170609375853896475601612065139184197149212458378839267815262668648525352206867327681571824766038221865291982492831867129592453223383167442660988422965473199909918886839615746788896903924887174296658988650877543700778869280184229241883800637947823255955825675555365435185463999553814371956401227621786526465260139054456189759526878567149400829189470082621777334397005736118917928543715015877149649835221872685867599269231621744510780285082450665775864157048988884274826827139935710104652729301091301482905237131619840715393446770043586542831621484044824976738312222805874647855493806611911526707481423701618277298525279892984466121505387061267139283705453773202331696921988231933832193159154120667065112106877033444851201868841377512176109159774091379733638992262477434361134054062879358564513831012800297449700206809271183017887831679042046823630959977130663173871911860575153320136418531700958622101159496228176760506881668465522625789485301420917307631886817663270822407018661546442963433305605136398818736437985129748329468164790415797624942897269978667422916722922786675329199504891477972172941869527284434815801008834422312309696869983850364819091124127558459507299675594209833654907721394520842586510482636844089803442444504056014634244049805207477858556253540215885347802345024648967682652322033732127390144250403207706882878121301257868948125783983640114048925425622216005922837275559184715683583161132175171809898771997706583174798901521817421299131164224830877688710043333037954980337294593392406317027063498796784429976446141374030178348878008500208855466833291632542607390644482324360563819351634465904934062625954004817527095383585888944726033489010041559983546166109348102682869174003703437312008401793042959803345627916974197051869115533209890954243709697673650634590459836341927644977291767794599357385907298545049851060292649501884818648149589447593740302076459409176230647370728149625824201279755401383489626579116775179831135428073977687645490659140051682941316473005753061702517417679337233637832188399325238793392003574250063140704251723715578203312056077523801830111306578208206560197571211902178849949353882406583611840130850441878861492413635264172550375143675057106488292022987838570996570888728671940889983546865803859128924751975767363863209403981402780801037753613484619326374865129131868065984459896850990119879797129404867235170724092026441559888803556068486136512278341210496680101202644513185004423030053400337999963690223415473118336147187421739832945140611047686516271466318007376194871316206900688858300135360765421621567706434958480275138431713485948027061217273642931690088279517177129309834392258711112220416231203124419758217527633699323897940963635622157210898469158991259245549694373214300791591837643813677948949756553608138059790909831174440440030069929149790711118984785740509425439105287811362617004595124215453357329260610382279508047138795266660305586677217400165976983691326063118699969142499858330536418018218533129352943227039569292618576223391982842006168421985410178118528119754326520484642231715077635782587571726077766455886586027560724179934431551177346121216240611529900781544013092158131909264821666812173886566301024313307807797903194388687958640220715571755668201939550191456439017439643952038041640246537722130739444248443918774024827318813231030175196334978965353183863351328628960226779307240886620647007264919859192615592279564602284872259221878234795674879960382365134606954327971090220311866384745302760682730687167126622003638890901414006645475083447338225180299946845152439589279861698315132728632765671561824330762398929918627706241317859591974959738812371530419620281275158550404976681951814422821166074663058938064928361357201254175958184780029243963531408020907065392984527879352960793920184602174954591557003245765598135801656848495359889646400426291708168304551811436157625127423695316677807229159942620383372174864851245966869280474275005654099349387288936175312350770783760594853107199450513367067282148957296553344679975021401449546509527484354850609426843805590339634500540284140878461268261126625811687512897503119961316452472836243393332871595977987405166474294106100614258892033973871665281258248750218155453390827166482537161561421656100271299417307879637376033385113056176694257279803903621508418784536474641652094790728871836166455531258894688901079544974385408699297474429312447285454642525262589033774978195346254392232903433281798992381070554532890991070628560965579673486882725496379610109603114691809702287629403323099168930271396379551867835514249465460019233619904637926970700473201036035033610494830603074390437172886504554566843219762928199759126097911691574065378200625012754325100197031611109160607120755156035145558857954980549998347556119267310288017378141469099738223307639286560144233995281636334254408071320248082319857207795199316898442356702183117827763170649009342133108170038419672089738486476954101067712561333907475839330787254413094600024319240708608905777427658338983355345461692928319967302911504863171189722415288896230781610772055396201300329236223835089551194826484591529057282633040791188001902550862633400593691740093696116261157938658434118916625667981234719977504935745552618138421214847394868176701272628914379297368286378710667200233572894984108455655979319945871568462749540842814324149359549481016870254854759416740083883051770508795766411335069201560757166082128533027122120046437394387013864076341862879694181660969525580557572422671925829005281435299822055202832619122844376529157013400367919689369245849571633817867160043448224983659343908185778600710729705985246533189266820943853565356717087899276158240955784377780817597453325449233713471960430861629188441143790594205213559336260595753805080238960569655272050478423960064530311879837052923842981076407703511735627936326946917368719048887303936950128254742185690565839271049009994867581493820134753028247837484515589859076297234305565526710329481288323667375429001440832930717847880138352475768101530815276604723702290971560715678134967322291877391996093555908458403726188506457990569340999078127266126853952075451608550890214248994699386618870069218371705446674280644163468905635634272364462664227632452028111813276403138204425153059818504081627675113793285535941383591760390888646534112420675722436530820407437860471794694262126334134087192251492597298209977167134610056539239722820544463253117133855943201543870135417862387299873960085885414544483559434851586139221886479222417606471053141540842428207453160357644093717554555116201990102769192467046061411215941424662274014005005023727734795039988083891167257416199968454561901248091438875908950720193370972997313201998358876121138822884068209502925762490411026960477186346703873144156937856261189953887771389550283952084559041169822072629084489311495509674637331593074106810501748930198481546804015880916946957301887128484101621704312391061934356262151012111821479445243965574015964278307583399882254863903702511178877591795899343275639050204517976547369849245304514537102950030918441504613410571065627632912643638222864319078339351142904952616966847149143381783527832820744062667705691043528738245325592042377779409412867660366297050353148578014251207817110514462935129643694083441179372350981662063650943909225263155891127315346367301013122433247261170714698835722231503634949566806451370290595055545655840194547252707761718231734972645849887670116223138709110226709687273909064084056686455503997097685386405144000901896639382968934774096427924679189939954720457878227499070757128889467893809054380977579178584861982842260064738460145425842901585838024892351989740960030453776948007898812709882861648834273809925648550740205020921236660321963151683492326978048264289257930587823023832088760905638653396668472498017857045533164891555152619907019935555935527096038634226160153020757684214240178601212182455374153426254851078897469275770790541937721810221935448654436359006034570320488263898751842648205087562065035403074865961634308884422826423484991126799664705286779796786887740838036569648537259199734338022898189092212374724985346075654895380285182803542735021717501553645221123522738410396280700522257780657964326599815804756646597469118735132210076566150458855494579392531954976103060719824946602698113626401121966957807879974642541243294954328303303234508584828617732537870838000907815910178512592063384961506588413730343772841370409413000246873173220794814216529084255072189269667168428223776611042412096006390206696965721793535770385990161150307216462234464987956307092139044204197233333294908263962962370899259143583733091261429463681290783849485769224400643061864339783513281221822740493863275920879527390355770728400948985224474516508409928324752615847257871096325261563828440574324203587302626279200162564623939165729793617684579571361216076688580574304812896956853654692961305305110664443343879142358218890989443393001440214796420920372761515773799751904634966809561711518191944113910330842994052694013393494104538346242650930763166445412664118984344483457351926082787416344732508925843406196649242849089013216670797862323227273563543053206886805564605889468254728297114700250346913702197302695811160983926308297081528925292173152823166016998852857618148119003582488721070861931920290470636279877165156985018601454489390658944388111052948435192183133404682892129157466782167679734946314703637513744309904010238240675489435102087009562714952008042348864058744138340530116183392863328095505200419675117122551465344382348746736439538218976619877770298282904795037253293562849016217083829252058535135157145627113988603559247873870055943939210263975155377955953686316987765363354797739548366634245660311775663127338210708095247225440984725283026254307864470078149313184557437115469500354849128752094595236132280682995042934005877604353969729130946557493139070498463551450815668569431888353672188474027071245859529768621302775220487574316607390496454656051310043386639012058748374765982290209389182661897428153285981651461184855261385769226252175745937053842310634796030322533716053210178264958289818402732520932245292180198984887739713578500641797261386580712234290028962403703080198661239222435042051721220724765291700659761841389791858932033905460390020833016528550321771864761311149228132358757354607230502008154316059024503331865562838527804738498310520367228398339596886167897491473677333016404591698594936252019527067654948544560709775083548876190921908916635195703864391221375872175496543965619196964984846769433810415200262962311973665795353632586910055026106219055355518553348462429580145188351026259966139555486616107724188393967909150251957866637976953509305179282661754568036869235078144164969385884461482333337403022149183642529367342367452071330409973896524970892117634849348670745607664337821655624114131575616190316789052306831447684848545796152463674243055298830414360528883388783220640457492176514980168972104180135316102834013040000997164675315791214270679876230447021672547803153177073685365498955025803125337101488298024095860968842919563248731509609608446862931034497744145502691139914716721035687746090073611314608604043241232160234603992541263770631274886746323579983203145299966167219890734585220216314839862152071660107848916365637085087936980644111728247142251705273277046606419578624741614830487480169187793813564310617418281713002717363124328794952245394860100714864875446890235828370996429486135336013939491844719837354843639306828685439876330046087055115971873464223383149720059247308638045441616223319528856051591296171898191775418382649737409545529881796056981209362362794538102607726014131955679214230857911241413639568882783128446477504730551618385376549224125317122021879825357027081218465621646282361779420445216416910990511294917257215150444830316675404281747105756961567508923432841163875692421179343319039604171661088643679448876487324084974238534551704577947948941795986729926024672948126096309984884161535546551847681529007218379647672807268707504719988226787220707347345924877482320581342231307641202480095690205827113686456167531900130286560178391237053089117046952036044247810140729403970955458610115671921061319066685973862152046748841977454658156396238692442304862535837656043235981499049974074539682930566763207816083077080760334227018475311814560476882809833573202300266874819749979634039638215165401968245456653442253941948149537622722258407092811813143665306339937287957143870665400552524864892367579671454611235039038176411516256611576382483433175035782354759816651090508240365938245721817718324067478358266379215679853570156203201201262490087304439029044233014801273014470821237401816007245543991812706804922861107131306116496103583921114110371304397927010152861625051182294657826285830601829564696026434010762791716617913624975579128510794500935146944758650665322517744555863843485723572699097605672090612963514339493035834882295385082015073702961538120120691588286078079931603464210392405874327107755365526482736301921723597932558993623965869962976641606207888052280894918673041987194204467931645317566672008273004249398824959178328047150106098512090891911932590692177884859371492799988814431543820381634597497138017947085493625796698999381187754187709291663570924986307938510423747463661360700473145580832167034767013938310536262145595033384191438307432731116561987808402854167732806706070276055929618577251012737785704823561209507614934697381040158045945801790547139503902231662294191940057483929788462828915573071044799462473525730819369061202374950072947324128753749727982157564538395432702949052587441053570114586821637483816957737703518549603072109994300626426938910227611226701085449241943614251310015525206352904962860332657554240997913612646190977448822523324950025955011931169452103376714182728728454118678839154840975796966712986249456661581277032505474182756281400109233380633798161590646380356018036411712514153889227010830541275683841859143044468065921163303991795297481027141729366436592088887597067058865080949832425197336166779007108706672574509275766944183024797455487642546613362783648997008221417065641686985929982746925687279433200996852565220998465415320581140810706148377702188656224536081049158824095956031907557786001059032392200315670974149518450218623735515356477829041718812561635926746010233435418719460418614445736738125166311511166909472914950005642028596006137884411091699136023667857168492126969465181099540256697131631110627053747948146066172581970981462600725230317344925166899616232832113857285086252917102525123780447773528308535417307744144916644077000955235205015446627141379683191834482806730371266475681113270714011390886154398014766737254535104582552339729787778253935933231733682658533168719544327360735150775768365485959806571410321742157237535049871519878139403210265217769471551543161128399182319797939199212202816820885394640230272320459782027474694304983620970438249372320347058708115517380493629508398840878984155154771656243677631397769250335503693804711782298072829358344833149411262089657463224229579524845591677153984481597334973457264505258753637600978907057624658439632821818398516306942067508318935022582832265848323171509354349180138474389125724292044229236213894854543886569659780393710247261328384396423578483792159360379448510016189913966050176011661013581077694755155066678197632779057061648009779999686709490769508470614421697907596051643675840930156515909413153504273190569495248610672965181767794331802646363261024701061926192351840859649926199421208153399672957105200098849514059917495590327744507387635678024529918061616539427715018792496590758149375127456995147875589018484162795948529321070684573847310606267875095555822984895581489611566276611008187689087759042431313293590416727605884016311080438353905236711905413207132204882955177577693586428754423622023059245844946134652256934577545966337613417708927499848884472285312496082238513455323359036216966901097233491824480761308833199822897451631611006264722136039649164073634297007684608325278014210788293145285985811755223713271964426860760440699475864462234983870931938639284950214623449027016869286528374319668900513801870954950757094401025190251857144567904897633708566237214216684889973034655241960512665281858309062648583402777916409881447796889532270078880543939025218959828776647763416233104993465254311851070996979090926997984900303868881562221308673516940283361485739868778870953684612086171672936383285430527774795656662232721933600335659879287910140421239069931977053400403805758365809157458119101321609623698708314005235666629731654412618633182170825874904808009939141266712209987642666419226338912036595791080974902634838699174055609048704263024789412877974255210325943751861188915749977126245337899117487689940722109291627759529056219937184670298194659458797925181549205748436944035357573253449416597843186548757513951722697637779016824502874613863443855504718104675825229194247995355571960087761919353901790273530010886944917948700746494165729772735791657540953513904424441322564624100383271720705895483852893980552007096055231162728000332538162129217982959544458339158947679727383256683206140702222708731513443125218890148107537760960059258739572911413656805029293455804530808192342538407295243795241949578666640932938585206396561525831847506429825278082997787547125681096065774221978250106189642431827930037303235649656473123118944217745166946136359383004265588717666068303826999868363760951775721202031749735170184224674483008547106849622562677485663231632787376576282386364187453878973765672536696103618241671461148258070560781101149927655368858280270470584697838668616333656497246211227051372135752921872321778044254898869486475524979727207505129092698331361728169986054414526485636376222519420760019784388132125529484474216769523515138911460796285785220646963668386138549091491625297602137277294691807879182194922544844271361893826142391819172359985480685135159486588184954898818175054318228412740611210253644583867154148371113284459726914521668970510320537514215163067947899724031795277520839841050825928678011124410427052317856867863209006718114181165167716325568941706335218408455206178735235034453881450930990311623209400129914733724010345243425257632533871950516660430449556379854636633844019351424579460059041864614009809273272284769547309819295629064573101888453284443764341331681454782464269943201697215216720485920152734672701388420016269915164671279084548680577498558399614915074052971308020076666669296511171326181663426025563666823128096073365305135616855867615289859355837478932990977378246165418589237589930110221333725078111076832993945495037435183271197071076718445453376520169053344872051859678902709749538213129483469099519378776692497647937926877698725107508081080431703092722300009832740127618699168086798819543434358132514861420085635373139331896102898192932475894638373019699095602415572306707442481008951805585408436145751599010251181187819635722041316401618443774346169403092042695613342981770345743349330662763659505774273868082697274898343392149285456709503750605882336263628416751059062253009189450545801439658380894559164483664590477457763634437584087114661655412157395116640735134966388840660436545641688250360287327281568979359965581967473436942387401989402186858333809548763548598021229894708699915067814845780680794434777590048926791651772008348461476625934477681290495868095415197742362787187768800026987125139119792157075158798220761449628346838949291674008770370891750655261554064327438552116234551607549627340261200402428758160229423765387544085256476489192159281664088219491843492820980244177997593959224835736135483142420680473908375752431027260238246383521043470085511190825135004829429207009124787653910373502351545222203659122025140913421245158189026842918259930356774336890029902571352685586514388724668335943682962014458028614828233884455115268889426316287982664476179674334793482360991762439084042617840498090315616937756506754743857548174974185802833395971490527580926438208756169050280258682229462260238334396375455591115400615281573015593561936182155236176820398803962638768596502870638866167185831620680629683744016814255282891966187682171738039780815730125001530754483231288008580181643698678577314866720086953411928619510461824604670712362541483083500972627496252735159426844259279821660754161856250434047802911468326720710928107040832148641948848529858121568438747953916032317087131595744286274222323176546277142875035145024672801362735772073162930018639702588881396613582327112704776283019050662802740807027640104060544214434097649569459016763303035406705931358954166513618324631083377479030500196599179937491055378495652571426144441928266100442393518879694239461300499590792436811438337074018940951554333587704041451323432252366031385569966886994117402632317143659119543205907097725129537830743261919169131861072548271786865268969050998880229592192157484735271331493843789084041406778681863739515521204348263005880916472701767258100240969055336902556897143060562419802072901564558847491484195184985547559365705163591288248067389883133305863172347840330754502187208839469179194360360334826208708525741332082224908756109649951297280060253783899667736170677117124316689874118119499340637359776700070624427213269496367815413407895543258940563411903850685866641205689070284953948155664391261138348908930923549525194688983397101989252064932099247916843662503080875351606297408906317131556629559418804701666924547612411842717361943330025867851240975036847609250705436462448691443728554612026323714572356911270395995526084304927830321139334177850723136349977762723021900814461845982340287582249788804175745521087187561309796174376501497345822310261431157353093675872350532782086254627663553023978285665036894246192578800257702507405360599745204691781342633356793748312895159762256427989722273587944201569687225644884953354282077487740083286598701155071217258327804916716012899330391755552199398559335899323181632143426714981879170785629961804268764563604816843625318775088125838087216900140013861337743343723347634957172598990860854068816247916711629346149235636322135349692430078223064356676493641912516777474158696254117980183054305129056228567112073334278058410679989421557512348243311509250058010232706441505581120217138044683851717784192990710671300787562487206009213032872533249947583594268896474428821575030710604167953563737874844793306970835907907786571897813611855807954268472511344353778025982051685789659628436350562649494818726847834721157822668919869018955742153807638927814053830860210125795177504902640662836276830638768006446857495743627481847924939949083352170096871064961531925322851281340932546825856174306169278198496645012062251134473245931394383026238456397962606621164588532007071320733250728780835898657193220231659573640859651075821424304267025595665571563490687320390798478002980794412762281005402465954075010046191399534130404448094856620175970181856758284952661100176632380630381895545191648914616854167214532933804519665231519797047575537093711317313401194963177758685278958931952644125466976004303799017146712202917593330269075790476526359233775208155093455732951409459057888823979113522984015897564557307162219577407055161304646246542632533298555757986105567278960074026422430904412439324056786137617359078861733364328949004600244191873636828697002462967854907478114102932408459152600539721452328694031100877065218431968525820382818075291391662781754854243600058120509359611917469610872239356946710417514635559324250933147127691986238877888938090294384609997155466664178347736905257121156287134858944966689197726193497612953594006720549338256906183039472256323644137461875347523655921441241107082359183584858582024966865079517594988203971173553320433872473069863793754711651378512451853453091901536951526713884161430562424916188342171970066858347237936126711066653521444892826389088827894528208996189967218766374065808228794717672484150596404181263341982730721271371873987407107902093085974481188815396804994911123243989005364476721134449152508884646754631900854468611455264407285511484760686124139693726522006132264953350464607872390113292713666030264162036294307444482528794731070712349470747125285382723246894050333982057545645179289879586620252080271742189256516584707207927147006317169495342455495089524478880990228414249028060802257818218883349581341973900907459215433687996877660562377984272000538474119246936861784429842167110124450526424989597584831907614071873876669082398505555269094545239736236609293835109068224587925419899913306567585578446050828446200338159814818975985195184247330747616953049160348644446490790569118988380386472425912361889844153116531190276902225732436479958926758417138943680886868815551274981895906446772640091550618405783353727717887080574624550610329365107485523905047024634423220581641458231063173916422333490839018319329038293872773249661842341652584070779840004698826565399314070640388684670764657211641491149853974294589103531809466023453842353765609317399548259437348615900504781927019623418885134750295594146246636378884435850319514947875085060182643437205441089979931557398110519824266982355151032828796360294895862884318246279671139564703534892280651994392893091532294475506669851126523737074665489604897591797991657960833437153515041109046524200166176594933398096856030236309152703384454165718098628939554101340606692632537942806393729077330103485312170908577696585984019568583436831666320518528356708469137373306695948913042848512102724383601844713860152368254343736213351986641503375741547899804402510701294642711690511938453905591980872751474399892334148430074255138399895517740870113364805087445810536948279525833540965138196835224992091289661783666789357492265048652361335854156277669826123083212097547926151495840027480667724565111196794942697795544968146640950965612006517674084334163759885061733502813616544154137913027000568097979658462398621284069487191927554151182708330892660127026957427045256103341340393437309442696829725814354934043860973888145845699296399164961564141476449746481228848363474291351904702288616594155606570226407003004224583260648049318369801239429962757193709910385638845144518265233270373851297424283180608339997315951867201231791092754892095384822255083635197354514240077060068511237011598642304296425633900133547674601229261849545024253653070174951688693699890052399888536601442448813452992784929080627396325762212829577230304591014946396357562266328369967299832187155130391116591320281255350709229409780021840327333238717754997343307610142141115767065159219142635727380304899048977707338055183268985963300619793552715707180903006132634300904711366012041847442526060263788464038633906558054198616018210715281397552377527912383522370623385960404575555814360086459838260319458177119095619601396001129956977467251276921694687055310881292804048470180044789416774571003222146045220261374219123278272421932177001867964773639560238558296035076803022749464868582251026698009248415876058450365403227273160001582632290747970645264188057669803905764180486527512959714984935304206914087055808095598792895544156607601238895042353994036957619341671039943869833262230446934620776388615599840195774720997005678151558794943171409769806864959248331767451123127202878659644407119340627556465857610440195484187105146050126762490217186342422775058020878228170131549814777653771602933996490996192066394598691141625485893931975286627512357394223055796865511726967400735108421778235576131127633494896447388933790395138634618816402100596370678420300151110501095265277016140953856855358740242451687902213480242507802644700001709627887727237897452816799970166505671020908311447561482055411004470360240671888643936548427242644879509001090101510510085084194672120335352724509406583432694932226402912463496861926984849353919474618163033788270723182247050650190685251276568946462053004830720133777728985512139082636209071631060559882580458453206589640155953216392772872824569854908574215806006237998671215817837543678280132189437348044970988417699304410606048629951608809311908267976495562953262552475419973859273034505110167692498375994230317887629596879261669631096870331903526097331338930369452218561396153140836764334155946692050753829101199152489667478509400594920336550966878540324884324518938984535921764999475474558931611959202500273494848930088058820423724876697077280723464817713967655074303098856363816297079550205519613813550706561607673653711544282922768160559138387197390409520664795522499262750320305984888545369514938333339594364952490982442618072474131670225758356600901785717131539147998065359022686387726145866421462090062801724844719138296329974349832415965432051971030925098379241233233701213605289505062341915644626462550753269600067910492288801799113435471295521243418859098347000152778538914534854334570515702830959123033028296537707972123481388609880282471504548138363149153891599930192898744180341645650953749640427323885821379487359759104286131541028404364841000018310057297276621895139859123851017448748271963970409471898973244756199344008048883905351905146700331752970190517413511657849568406233561018590924891194209621417083718797651687809490644175116784569805702783574000745788222780302443372562700178726072331309569821748516053076999144743303154760433175381000148338772147557484319154018049619161758141672153922366255880624447620404013087298388034704015996228105594996291391829368350413835356591470617555776838091090953076585755203327225399192078940401273718056873021607212734414479676558758079639697336112336296415286526622840258425002262128612183430157648079638454594357197315486518908540812871605443278281994883914915523619768000220155039873014508299782760009427293255712125562325359192087709692962975699878484295682169639029863572852191079905157331226227915134263156562392003296357736852392258297886486059697840646773604377585045935991275857679908093679795018995574130959606924536380189707962767019172034361116261298031766432463146041844530022429557719749430851013953720477977926673254822769836050622396410788190441292283828775968255350143211281589243801816852074128584270216451003825133066699480442825392887376007496809553910085365818503198925765162952876298281346203780011306067272929745216141614599826217051607433395461770483738431827348964875312381508997355593531932667588258403966773523498286121970376334949648398614842263517432822290107035946557605917657328402183195756196487289111386436881113438342530286221048574773675497377285975687412627081685724625839802804351204507615635894561436768562134958651100485880041536299698103367285184046959402445342787576308560775007505036386391339189549922090007476051881617284519964619975242238445698175999532617456721061778153335565017109445720919709103544585735305565570425408446586731489571477268280786920154851902149848772103453492985511233460365452891978291453780926485931265811056443134210596488403474951099423148070586989456272847221697656897621309872483078589483161643353490092695415391303939149355133377563805857464815642137289443252702633932885104737783313145217359750670098707101140690720920898981998579861375248104259142081135785974066923389244547684516649522365690945270968309216782497326934105488661499942007308638576986422275797221214252984727883926543958793053790912263445844545887717101168065070838938306910362144489281724090931035270358869620893685586980186652047438713863086736380512605052539413232255634819145405967384114270729188995233006336562900766002738890692172227267651907699232297892084093381403220806526693325576694903822032125001807864527645940367144158217380432269643101332545442612595153163978975103831873287931440843441351608286219843330213266259330108776141053098617163292729553999462020853272762069994298757490782175289175083666444100644802233489994988525387461374317883664051761932820131451269327844945187454055449223932257474070437982641805591688154288205225647659242757406538745571143554964547939687984777118928506209670772318259488274090184505918475768765448500964266046560578996912801249404144749424899025442888170014771772660704345821701010729356321771201782789172545903249412989400294946026207457347647329660370496244019420499665844927345672325686650351944891266280243651840972633465450842555199059308234018382678694168418206816085918331461106594226190260462115319248506411092466213812527745277260821222562714911951922129338445215204992094896218499602362380523134075819499825870657220915454205786035310143235309579838902644862720595689023626462030722550923253372212698041095907191509049369712731460576126235552020696575844555976640398954833195680047203366419663625815828079371380953706038477737993848678616065553299582986090137526714904428134335838612270606265943848266873346236433849737620177370306403375580624082529539161927870091265174548536903848065967254381381634905608965168676088776486508178092686529778516324902973940648531846101552507423604395197700526308761168843018830317495895481045805834923970370242478158056034200547064024341936635144649401284328090673123663378032924524280720098223813195139828832558822217909338875026983035325769255936056675326279774714411438368770016469031459550503712946654654734103140671973943215688886836198647993321279899045235027533388065004379764992989783674265050021542738878725681237947462414808433514027050707996306237084489292645651363558370115507000901237302246569930734003310456011853213343373946453352146785196981131175174932165756129481156733664849508654042637998533098999769313234754611928348620462304502898504352575202863213092608872159984421675595591097705756157546043109518734116520674489392937707760732934334700552755054672033191595151712448997275594442461662810313772014916728600402952935736835218853540461613088831243360825175103335344334684152607156623221753012870738438104874408167437495744273919202536569946753145847465467897194372773287102282569560475865986530256498318977146190496337284127412398580004975184273410539235921871934553413755305075721776774287602081809143862732975611913851780831128522385533723416848548496338947697331203311345976522585094578232855976855468931683918588324404306898854696015132037786084509937756582216602817642699820486874689376742484363777005714539394972292559347618989970773196961641928684538968993449444134841993431007994845747914227658674297574976251967731424170240955333685726240018422133621607469562580017999222012454429241420300589588798267239137242278065291540352090154575895525614156284561554555554144096686935862089269851762210748765153825534910629058813648114117075845993979112955176169355036484900332441012344599708035171826100713231054465289731665127131217695651960611428664017948456713057417879522988330456627604246098516708826792926826856281207720061020363806582294239572378794384287866936450242287770401106183811561417633797351811743004884898749372197722939709587473723113623909142016491449264673066949209546555277422007811320701087271581625058878087743377450490455888050261325337125498778027276956464598762843042978534909183572435140569317795424089545309137649521329529683206333034164239241009044745186050594782121618064356385473022785220233220746771568191982710589058997307378372249015776459610084974284695587835286031953081363259097728506910477048569328607622370952178868210475979225072681056911881091963540524135810164670266807820946633970160981018728996542175645684027813370050271170186829966950990938770602824575750030706952307958406348228943188634332270526433305762149871456299556836603614769178226475591303014257827685740396326446890773099765715602546713088040597598157598712858658304425932079303937550129524778983445877265938926087000492306233170558828340814300177026179135060046133948737911309289304638076324185813869864140040012958227392972112527594753560949257660365304924810393284311227692756189559831222111714841098164465796237382261195603441340847116147635352971426648276820433058219227469771668935668021633749416944068920198614566968135629889848657549622071148009977603097878880588820605497542488165457990582957557009515396049020361265082640582420725960972814452262896437336519448169077770146537576718882221955172928677024631662465016714314163740640692086742373873767605637339565517871702546203821613182296421036126534520498353815256120183421942816047427106010594211862497794943756215684204785826520870670654397326793809040583238180009145405341534680292781773738384020861882620124086552737279838108371007655269071380876475912884734554294220983052862430071297759599080839626612499638762832998899558786841815853384607520490794084870707730674534002605421079716455388979491817642603483726554861490619077859503323321857792243803894704695016283933163053644104374800913979965474204660740819621116149536893714149059714625290377511876390925684069615954230789521325696735407207203049985797827393801686792300476902595047524777280441991530082810584787679571911255859807373576298894611885227510398428885182105919401772990786439036844459127528330929542835044420976898153589114362466187107426487022317258712400540148060618207584223356892592699730997633340234378118900469944550747326652764920529341997089569810850939652477979528790376642494482395847955273252894055400668062827707383419012721504457030573329981036465680402055845624432472364313813238695927414979753297293140872985594785178357167928786238494603147337695575062011499509318402963942014916999730684988522986987236921725512873260333167239242168748069864426559061944889608629638263882861459698523399895554992240211925495133604920318250088009649882416467156180728841821953371719599677426327512467889383531783892783219701510535894672815351841156661106042550701486557426400132421019158862025203423432234001996742748733814122045387264439619752900683797071726392844904282163650618720747575428017406407147344701820523539215865920994965681393498908127387251644653762626617072244305794225664461841347139944289886542647942309323812881412529540394487495455177797458616981166035231226445436000809779669007382397334360819132728223826744014891282566317415622890303626280589083386009230152402992176790439741781263481094291017248306584843862739376151081764953324183494096660231382765099956731871578292298331259145068474515863114321843555146964235633253080816731370336894024085783641392517574091155781424630058721684116972853586698112401877602947851856372638368918106332898296546106238780565608922544375725706082268070066690749497337944722063694061242198036671190219824844936027232031750332194133738992766479685471586008811128193008534219479451305220393808642634468653792287901325321670006026952400768216318949777510497601897746041541176074293080396604940212722360412549589238359453455605015222329947449705747909148385932282722592894847741481634438933918914026833088607990814758807458709757686510265864877609267752006902637622925036824856424064942380801810243356187151862946232954897577987996958615272414218137166706916112343895400748063109987091268723317107093122607233164379349710068070194587832082613814367909001705728792645303604816858876459236004272849926182768848370233354785336698970742680682445685451586509409035508243273993286185484590427566927776780238805163857436473429300279865267002836970644039592474790241134748034509115966735849937038723654371473036633619837747025766580275145651509441095136519344912501787251753216064876561500357254338288686727651693177000337155416346473759628303073947504185488175312524036370393732435383825550285378724076120567828892048973986373824689941683587461049408733944800190190599655014558598466388917293034976050482403000566781998519394777070486939519303030912298397150800288040423501600846002901422801670619031765398713047176215845362186985507495853457158231627864656633137921429011407036140716472411995221426247642568105099388706091366585648490676893192525351309949225390119182537545371650342991897890001047636010203108025723102041155745637232003545375281224250375469235685007781582029721779368569885318967157075623087496459587338788843640056994824303696240998331582443764637590001108950687898531263868210355309872421546192423234572859166789609081016094922403214639165230552883807237119644122669998719585239506713431284521504165061298807963398224759202495746063033717804617168842212848102102860639638800312158229831920861588056202757604123502067387248510515631925946838893218646013767116052883049150434804279260761790217656561736919083461578613633021160383466784422864741805897705282268240309973396153462803103223854545839056663962442304296794547002076955973342524969011402190354050356642611865478717890143152228933442522113931858384349221528206357663972014190306095430363635583793637975525732699492590689456049738285362178201376615103399329354657456735550857040884827458184838175380558184579295687172155324296472302989963363551766506340516480039907434479534394423889485474879251456963515208964614852398288522014723618559049872683822527351142546387906629551155623165777201179969858977125924439133759982822285316571070346724351043368946605379217392636404528099879946906586342744713707789191346392224754282273065271151957044682952505305006937389691751052579151285360507784110194544118784065758074527680630428818410032106809478167048119240294430045731721663131810138086356515056606479742645234627954337025400791993748401837122417515699266709375669054789685015314016655394803388218617117255445954763476501213060990735317601716517037941742455949394514674023311698313742630921010281326465655254600401156501117571235000284220585129340415000517724488510493556895657085312616417986866027494689818984974455478434146472593762542713701398502559277345272735933342849093926154459405157838048776055310173728991827114077339029768948741558215004121919482484942515527346429088195492177390687285207917477618132026970202752390086802122014606155667650060938448397651967406178346931892294360333872777416222539967020998232027450281259467984404875323290891299030607975691103812192484135035717584600906290996647714997150082336174064328599463384576444399294099046387530607024620049751300476123668848228758937679103683256003719190641732333792102975253667659074434633330135662598841859124262631406758575414502486462766815554385601208283715311725025791546452092460933109145701277532595241151528609716533959906167682058558727291336422105135973130052556729984799173542081162193736678525501184404688713170660385070320365427854342572316115113656245517730634634207483799631741076854038702003326493473953381219509118751367852281152024791100744469120107422592642354085049345672787375445082903088459172212490367984769809136408410766425610807485540929095919642605833999405606583004684523942707584645764464089544405996698007951688147713327698039602440860222597966060008183930143216921997403477458314171563165027213910440899892735779905003196443870920543995041525480339878912613445110469741463930096500313026458675345128857656179678804970703384835950002343640447591822140664663092458256111292458377124863915049979149123810332473987136037371876338441952532810881938211224213303010496437815793368580090572783719957021479716467014812525974627268922292350875554383675702749643419960552427750565932096762672829559651788011456026139616729948658230623950830321566067380661425312966095152764636276475914552055243265939498235907125899362242608000330250690353877637471787508271796990190911255892582251632410047652046167033450536359047313980158524694916493246381554966518918323380582980118962849453100850506114790644819360607206579372318131805220070430675104351144684746002395268897613351992968816704245881905501231360400063594735893089950970195287316083580207486562150124184703560665736002417446277590941885272200311933580842763198818130244703407182328655245863744869453374900843402772995163793605002647231325979244121306178264260130799016625481887549450584568888276524546023774780724043596379905196347584872828668430299259128973852326998700543621243127684741406712510060346432412145073693580377088623722976482056807664751399389181505111233678158745758572481292937531109214130776095179203388100676775680407050231610002159077167726054203135878660542137290889878748720642107251434650178349193770583210667523694332819602318638756596385061867584851898166455310774575469482292095662344224556368565212003221314620024369767644362345819688367770280075979415104002255571294057969907501510318604909087380373424675166715077692162542476079578055335381905154115370705047689345885334261311218257144444377166548886170602942516672454549795309672693289124981871424984463754163614066981674474827672488677931443588622481097926789419078391548461338098399368042484058315224410461784963461323175835316400907545240099973146916892931684780321160530040891925686082116940442577879245833034674594711790890841232832965663156461935184100038976751365012471711733860469359967873612958099276955481055917948581780424903201607914321550722226463073107737702393739488921521534925171826473994105636369585409572863905901765666540402496090822181276444090133583817938239037623147470671176625496176397592502013632273779613853210027932432903581043475552300172229027076727515179024401588432102880871491326272104677301106085211303133339926068506967361917525346317117622285435490783011411186442228230176177730519061932389189827999057088085149952405702733543074316440637137752250430395652304834112406362001790681060397618186115683057473553101801185357758976619136265327674134326583111964706357676539901669939581580955969952041686645983489729133601306906860478130021343760218933370765223674772582737357333292593966796385025648204120117743469252426918469043733600353640422660496261442285136467637145249711583148375260360330298220693854761975060264329584240671821162697126851822284631803836575157285364057421879816440952072756669985996727765095766392487794890221055807170287396759788557152440707088271713983121818764552806344335375788795417783770218999547451790333772480504700451096854717826432655295065472713802912090969789221521569977320197871969425355421765927507396491837031980804626705133535375509950240561084113878954626190420221524848632373564984979511151580746539502639322506255332021977594449387643022146992235586707115803220177194109078864811401871406501391381981937659564516392191089797031109120330786966683158697671924939325896834929045180661528537519014729928082198889457947993345995164015567752031427495314156622446618885284775080032304741236357500926387036734993538255127263589585535156837654584559368197356894364494376677644569715534481523264028224973109193821193067820351051529704195236358863031952594065125428869497756297839883567510927799821678045611295017318869554941614934553437900870899186657921286801849973484191314856743357790162843979378039670653154415174300443521491855973341203471871448021620323251134038684955149605195230991161274559052178514988900782608515433310108825756755143725770285314512791775749443005001445511971241971078853593857004478597603832731388521443513544032537406153898637783518664451538884675310382943916532673711113770810646567784689755779444066439297986447021084447287627551224324890947979199878406452717609227527900727706601747587172801095486488522033015545375200369269651268119478670096414579574444018589249595304266442462381443667532045541771321907920682078004122605681425702722241811896863361974325242996563886790459878874359986431232302486087095724130236866811439876350869586968491982906843492839292910194944911426305218254726311405736942483652594479818644645348209411084314350471537435628425001773446252519747073984735077414312985213140593576999392130117031621026287900052180859937461565555757626671818647252047698757738504320586800987403260996816972346925156367863755340039784881706245892859179887102686240302209853005346282242801735804153902538996991757203469036459986680279757266865195899846474004651655525907079203740002201863926420842676481329156530400183162764990623680159192008562549346670526021821188135146707590265520763017173224723445003286156070500516888376040220552189281232564083185760289751790331223485691648419859059709396094305430862412704478723983178036833680804405877779456306724618722460021860952817654441535726178926674614215532756083649530056024381012991898347623025561441011538431240272079534772065469999211931780966684803858062118390917970523618455117375898373785611937946669875047227956123928271073936537683133515694950298327647114118298291425117886506984744457655528942064148006440755195678054785053395431569015118341753650602759397661609800255267655437444139032855876975289593657190774145751539727682073062914684789789142855541288684270064084805403929833293206986478951139105864955323658850446638134430599480937289968446273772799097456241995980002719330995953409050648593436637473034018919885935577085015933281393346993818808333235261395384977944494035089178386216139753326939648055267487458084216607023945676725090659118001222460469944732645678720623833786375837127043132057264827409647377769890392031416765555501050544192028139332889756812369329864193174330077775518486883167159871835255874946837789126847764575391967600969766671342078714432007164255934818435167946708764123811305532485288259450483164866341295235209074476082631365395838078157131716874246043342593688331603828408857005466976753268327495323181857743054353091530924039774377683611637383088395719726642759042331683644848904522641399458996447727182449264918109411606784965342092634013557456118227621989493763204478005096453140762546091763873694348610515977756953713842732216527669909300101585412226106113458858894446570838022573245675848816442994774394928985491460012999826083720406922184641518357673346762793222255910249511238189811997899447324120363118356627426589021474706669837646629636291281195271575937493496579323469791430942431662190656974575641691925166780245908223158261584259458600564532417262952682981593184313065081930400613008109773342152881061627247971947503579995238793966503323282053078929504434680187385194503021918011061095711701126290032736859443793436502340309909407976926249134931104566131293187589950036957669162586138587052250181422710786948875756669379473007818802292855895151623235551306276773509720738885905615801467017407623149816886012599147118173750028473497894887082595763670187469635777741119893834678432243113145275972645911205181173099652717484548690732230951458621741694026576854203176660689330056339649893067890227904573170640211650626363896760327438767607290419301424554149323318523683763000614100606199334047952566107753266793629423772633816232944815999990979113541406906564350007399569532503730879933927126268298706693338014488102896366365458031481686821702080575421091316932800195209441382969720371391185916495575028517303317195372965159114549410729593532475240803204483895884775273616308077568694683755479038239712549180063194851764235038949261131298219872212699365289230557178785087573861676102233821344865220728335079954859827352970010590898373184508439561649859678225166894224350985447611425887817840975879459233714872456943034191023079868290534929591766579511932900384885826299012739148031803245978796496386636519027503522463940960773368673979050911026643677851004984427138723391843032845441317851229352907878824410102342361508146284814956010949059430833834789907357118398369027995095024154687071574023985901028517973657134920951017091387877399601374057066530878325956172296268689605807133034011263218588620370607674094136647268703685502746836183981031202294313397062215590950889851803864943009400945944684651825259938718490989722637062613506190407627437877672339182507838840980497122477274005107052886879264673372348603645964572196970977160040774212863406994906105050143086358149924396122962433173236842027006632729966282411585800527655228773114366616380790918795505364229189609142855404404378305875750670434455318340479776152414933881896938467738064782975751075560709105643030001238716524621194459644939780843778893386672944747281638011431080096047878289915423232283835420387412101354089815866663167924701509713753418574167794299347294729668672506822095062790928168636353637902793745034176601672069108100950674651586420300508823613489896662213503345353152231782670852796168133767884328948553685353530091187248162560205343433467988043471701082052629523564076222803795050003648217358993691221113137574642442039591203581936116123919239349053958723391853313651335744545495295883388712338833647804552833252149766688675072264968167331471045821814920457574171526661519138372241459605792634992504987056613409070375654099590823642777704664999013134345449503807864921543903309202011919220509864906086288379223307254062580119090401529754414276285160228825151658149546685851112058928167664642535811027206641984229788625046966686294274579901350027733826133881982756710677548231973500187504710276620099719692256438125578009158991317478005372955850711498865957563021638287427295309420737613611915581511569038784838079581051119484381716714358022975399248997961247259373931939746987479949816311652439864958564446415645512379995912207543064370836706225523075644840983758663184194656234916999751850956584920013047277563733257734102124103342772309955695484544667670790480597916829757153273897674003281561980046732435939892702326269785003183101037320961207888438873568143300819624071124063179600106339384737810579185740363216178256779649511336448915232934484170313472035749124037927268579424556398972585521256386906944668270153350579289157006744073408269825054058427903466194719765004416423305458301522295494708397182067880147294048764688112888442540413401694113066952449112553669370190576382329431210926151880573834145615551925892562651146401462967742660806752248220754699789273614294640007159354153503637086298412025353628368044454601775843033171039083295499504221044798426086051473104130089929800798526493486263343334636491001601754109669648968088569625065136181248155878936006523667479621360736366933142220081016218461345273059808385979328424866197876198023599770792202995534953185468482757626924244072225124632370919521555228633070052755537608145116606882270385521618526881542106732837064338908534092723845482253795357560350933435770726104854711703543038516989744282926927472204978164297084228759404813748878132943770765842259806703562782004909505370666981722155795139038152605942060288156358231076779659074729238812191919631167212920439987937662341005292729180751985293068211003654266583530792140839310732179485728270815501517835719016504344118576224543223431925296942209697419685976872881118385079992162094038649155798594443269254613902692308187023695942711219158988886440965413266570690179213673428178602203059778458129965040195969091946446653839072739120543658499365667459996886634737024072987398613367965407969422680517231585423274419030702671308926378764851627995771091282209100990229013739963780220729935364071243691884086564725223019834253804785972895125585786399424647132810428524223778600441694501714383071556075246164041643891000550141187798949773918967737689544156494289255638036224934459859698732834592887723722972214740687903077875896302314520936775239312683390061622659275955162744826740793591506691606979224161072095880236645752403086585029179075887283767987636033587967315570366088621262993447929922732106441875632450759711706865034306162606028750213010263875251004185061551003205097784907189260569715675631960524441051614026920896672738978732382416112979836403120909589680025191021630095019904768453220708399594755463987305415632011977052014782359664382752068382545831106513458839072242497078033199888337973035747580320344148676921991505283632852947975314050479080250185369984469703049240902604695042427349294185494049692158235585594470048493775341960797658423196069901011608313320563778683179981875070681071601904173113544586167420478308875512459375577790352107795522081641003885066483199977931926211725938511661709878657829610300382947645051711084193546061830980976099351374112563184651659789312520300615825584979792589650749563862397455393041483141418015512481657107450266029180548467129874825460959034336434438616496167136962326928086919347753557770106900562916060195750008776032452036759364513086458765688571890910825345789386747928758578229900218225339944612355845840969479671321734370653818828094428533110783776412248311194005565229700475362975736505774073904886661896955962362243376279440694729060567735111951418528977311469957284913671814680308265602938219535206030761051959349628533300800825244037211743941253981021995989889817714875003238026462742870731134775440381071165023727387813425343842540217113700352149284440813976515717573455068506790008845888947376072020904520993091342343377965136321660901192581747030073188356596462621828126713248931284853411779444249393935357157594860774860269243207831481513375510193285206513203558198562061949766047068252288089687164702045659646253231463727048202522991175515710117083594286899651790077025602894849394716279360715876214780397176959770205332608032738118672000387454828667625993147015595108445539241383357328666595256065482275331830780605552176680902163710267729964463889082642434004622307766663641724536474366161511678382550665439309270614506046077529349676438161872473613172279619273983891962277711535971997428717662836335647169446051512033790067390870900439034611616588320601751563144141083786314326884365847680144630368286899200367041216314775558644952405380359589868527429364491849919156644388478551496879962882015860765112462698213464582655276408489645530575380590949878837579309496255626654740262600818429566552240647753991992280171636139699323162422541439335630434029951105137799048581043277183495729578353591771148594897018615243873778394813283970841367584863668412254318472447566572056037932691275267308955325177780165539616792687893170697378201163509872953232591620651490185640926682195265335368523935546311059355617978957444418365926065937617153036402211257261434520202497706253345790095838175043732297325744769524736947828658391388938771406322398800741257800765486824570267271212136462158728958660765999756573059781971270302434329766176629994133520271076017616008530819659826121948104462410644331299306547317112655361448428798101052525419721072949612880485455545083291804800610063752761777361013189336780963046288348129354851714056770800712037351781630521567242062658603973961639426963407882044929854272326552034303113328446369547124280841435649739058671764043093540334780326119061124463314340995865095720523860994964969066281325190128347385461200983071636261264482441963791551528756782080215458308896109350931307907989316322221887694711670249997004600132332453889445649042858464658227738770568325403879949361119712392510714436119113647734741628675423343358444783951361847345860493398641763597635373954288230211126713537302450572297892109605689651655180016017763020663989914070833807064337891193264339667737094055654322396665584568520356903230116853579755812318731876078876361895777824571198021293764439305136406174000369466745598374776701093585930690481376998706896490901436216092923615552607934323352267654048915111717404653728218293388494516375034472013996981658720909573531580251994992626614069665906260133117229947888094200609768594471966869108541240023367293208995416487225253495137031598259030260629528356050148637537989204317770629584592089565850708882622665304846391756865659750794089459171902665489977029465111207673690539382120810535071926668513784047939114624814562333120464167372265233067629637980028626691351373129382413347062641982099528496516134496989365066506736021773349585044133022814954234815165696278647471061005572364226836123448920311815340933451311166577992687547060077583086328250804719272577680796820184381809629578838641682572648023484683479606394642493563448060871093183917670251623430963482928965057475521211470938039946461401202188201886837607815176538798287248379738273886911580286370233600775272273975217027924240623531509884757199516402509787662210003506563573212730422750497476868023837722142193016724379987549522338143973643937675928535207989638651562098078842916914030315488209989192454583103616105509328289713709274234944668805365199862763712911712057276193538717222557291414710367750204454700863086944201549394485016474491449298415245556351013352118504963373087067686436469973764369098458005735846205833776526609152045637334663098969638156147322253296333955785782237368821755234011921376864176926261340257384547322254448324548280101419278430269009422990791609542293595064893676429755622062926683683613389086131109049231628962292007500601024929764451831505164996786817809297372312451335341726683284830880878784360042435766881713318377779578225074949637778542961972575535098284813863395168471621790038058541033516863143126576121531766685092497461735809961480965594995681233819187472701665162784011556893379099208490420644936110446242746762931925160074507413978424159013677467197684569448433708839570730892783535797432324863083655796522519992103096880270610128037796219274511421150508880913415892309827949007888846860123024792995203102239301826888264889450031641553580007260903110706026417966124089829896277543236703980020365396445212446463152617652818695986302711443735381228060878910338288062787176686340103887419756939032369791551369905448301297846171914447684112688407546103098115081705955481296531142879162273929585682566398601060685569749612305667599966755646912092661139644279442165498740853838543108076408782938445439949401201559682475214490906401171033401962583575254818550294961591939511579502325440239277592351929587910547557083666678733173459178164094867719315238059076139346922122144747005088460911213423043076117298382015427772326644281344585659484317473106953290904340463859813549036889561997009810338054522488586260974576543581502879561051962383351955811102344023866185097095862319260267541956757627141584014622522917097840420821948788615249755986102089693598693525217266809382788402879302291936095946514502691265775851967124229084679262413276855512180011418746771862119080927418022267860148309797395077338084174856970181133556589264433975288885665812181185444081806594345804776618850344464384920604261925449564727513330905437821465441132560822451275903488577673974701809936390226933039307764281146820609548253337937838562654687165701261406765154419907887918896427582123644418989714506136805897961325993719997185581488005769838496195201648068106951602832018847569970143803385865240530195292790921782780043332465539165828411280897599446809526861168130550523752142177997513538338267513311274637953126667342889750129625292412246112237406858324935146386258218400325399906915945465099606559364787819584812432574379547593708836179924148141765711566671450906812730165046153176406778387978161689465277850113521587532341006077948893688539048181674663518272662038152889208016696297307670868641184229090980809195939660195018821649371594251162215225304997404042479220590576938742375886646346508516629728457665965590332763736906770673532710907313600518056940493640572075788207883247296906833693607377581546124207247698707840880488560559899042712632723659052070101976681775966706140920101507756819601980387277921837355654381349003603355182269699666965091492952344603077272075461534167913154729169773698869061641693310507237436100448115013452090857954990633082680242129811665889964910195677416721896192081752645832017643555113489744460396790767787803685802074218323628684036795403420095516195869551788064515927482886032093391371841077702606167599797644732395835178935750631883293903483361887010567094418344086995797236941273193256020263581759488038752292026192702524700823115257695157765140774497898240788291182890608512826188566462906430082508693991217608630368601714202795696454644672723339200445304075292601321615685139444224972459659369948423087554541748451152489469302776195126853825688215176395555523974695399091125726815447476870981357367903782486611777841496710163508496119027793327767865035004749851163295174627302190099307104992864705543023684527599772438703900333500748720296751634611290598025315094138454749093659205031917678268517498186184071647589000572273716966124571519039269499926966036353775097937634356758183753045935542831949487262464030306757584944393809194124627671843516100872395365847630692938026941667592649761248482274029619720500159232031615685223638159145572005962024486045318214661871823523506105089328066211210785163013390050628648382716434160614891155674997351796411373287933849258916416660284032502247109121365632754105553339089225106714672240987922202709355039286571037257652854720326040718114150513521350851049373954405056829375888037012623259743639577583522260390781018348502980983327272646237383819141851304824146842124662205393954956143133164120062980828373937120333556416413931196615598096065737238592717352969395047830244512957316508040453346597085112502784070288313280404357591936400840795267093510960903388306448759254456328845495673385305260754400197176975864066854144266591199883284928307537401437316242533910670316746946462611084934731856531363787857115341526930497122937672701239856525603231907980838020869067445361883437300363256652425449432196498153763342962821351163994136222638804122672719565460283646240596993215078053686750619337890146672767978604624654484083757531667741709895422946652712796937423157765854101998066355964751783256116926502424629703683043355019102673337239132492665387331580695479509585450756343903479653091610583955853714237620690668254726457004353708616196913031008920101068819055772486034728295928712081465593337776381989972856344359736325717860053852172481631463148773447829103259235493722539482531833943869294244589715632719155798235999904413928343603317198678644737974846347342719347102547599552944335717748213119158510618544462634638678678207357320898003693862042305699587923964247370026019488844400044689302167402384518315562929158970749339745645647684248602463467434751239270681846543434091592133999852853654183276024111240262457610755315521304375638453874846756836625827062512969457626814308605525637887577611189256160593591285440758580897082183827709683245506033273546369192291564667298875111296586398112134722261037706757557839409185620523197700975470237923752230832564444714251267123070939500341207374847616157128093601481961185473551190395423605312677131429897074548268965481483110028294745917798177854286906926735636723723007488273170797364030692277497959419911880440645357616458156346367552879225782123264959268458575304248537352869430299459861724759896917993528717448700234721401035932122317167486826500318992245425850500184577587575666957327698413367246214525865935817080790878006200774979916739795490876124242126573665245661296710395590511547863623414125257100034900237919016817624848767157109785115456062190315075196745788827019835074580497806836693583189827847634996201054416926389866025905035896028850923039541757432681429940524585050109369456763290731728951061818088620167598236544975123344298054472347357665649626375771572073761710745953192495856457497210773684819163044235706241560562222110904024065176219857422583653587712688952302791139359677191809099638086486909269272898002433894513860984316872077576011526811761937280148196517703317732331265431551491126300678308268952445118194341219676318880186264030873519204343001902573966798413949381674642135786044456027492260695739018141922048360563964221200822330185738111059071021336115300734881185219153930953720401071736568571289327612547229301232253642681711434150867688318209983423892178445290220097214751952621640908327069330813739691416811926633343284990553499422304273627838453321515094680520262571428937435608773680241544448592793677996410745726069615563335535620137542751550586461388965683727839839663954526770640156833415600137048793082739945653164965416235518605592439530443122975791228613086955108687563450680246356473370251081847520211242684103265556278685232113429895504217266305898183034224561423289421307426721338782899629518907097618296550154315611125456335178503934303035822343152782798172723827835324000216081686223344622732227962722878608964183550897861281229189553586751879117781789697228859459117863155985250248313405243980727078671042161703382368501882492397877430737531140688896543178962946794875919385072492220527430024059155840954370749110676019824411465179578081041084908482345527106508630614854898067799079070188633424956575202883559776747312382037843645285652897671152092682804054832980012797211272251874640974535622246032880384876970551181999248567103374690287899414237721185816650669370480313418726705756802207566757586417801316128481642302618690711370825963067619670768378369331784502326201255310293677470574258287350512012806547447332581210276457503310864909291053944539942538026133780919873141621005413193978872328959532927333055536249635622633863199176621085270125672458802992801072691675917162480723272081359863664928654150065462635831297500212568056947564947618087944956431704314889845287355063287938711240498572949924010818192517424485365043352512213645002315969281836244671520814286633821417006313675533988751816439264250381580461032422269578781631601886050441774396199627241196576189151331739244171076884182394534215502937742422382739273053318706114218275892269332677413160870525643810596417606530240212500082396739538240525292438712865959314985870042274830359717849191248004630223461508303217343943821694252514893641525842518509686557954945598853408934144681272440208213332705747620030735337704310557133251157808898521664062493631479640864820184823433170310982165164119914797021883186033572717224930323259987967097968324187815386409358546765178437640043322584320659460740426024164160651333141680420009533016360670923211405785091512441596332426142116181202971465268284752295925097667643575849644316587250858243658245594831428293617763771526968315059838803426141766201376844601797835989327814217054351854722529999798651928234382704376796812023495807405312542450593031567520868150167765492755259652816473869890025487141399163123488367612161037608751429302520695820138579314251267357563951100798648568641743595593413855832864432377424571588346083479291200646767676832065166499790879638780794957450440187995881037832376327826281203412601058490551136314619813173328912894836470253354973352772841340735896041707498476047742948702495394824300997277608549987815114002261050601665955912272353462276332072042118445912073796736994579578797292879667704077481407725367775599056456547214892589232044930242717518142550462701204614120171230030691517477872290635731511781685140479034676470863035960519605817816725172481900055730408580127046260587827535193883537553198896708600540124925652448566923943514792688502283764372476941547892442869368987202659845698507725047552562820481633486047997414640397083629964244440861035676450428995064324756625355272734592816457691857987656214960749545863770385424122077668586206699386370410257655025680712370416614977704847915790716946820148618220682452075671836370334002065758573877753938365364543943414235453320852774829366369233768636674959703629074319808759187182447963289761529446938749524769531337365350931844190642267085709161563417368708199377207795879335637251448917796292178402989448644739010070887528707912492041706477782805866368868188153814333314001412699707152082805822792327053568896075638903177394622980875813158650274933920458364490861571007377365618379687882393835532008613096588257009283935015347209878617968635743769963611815237823898490790491995568064253429539316378694556819886028501951963429753042686251299047324529637479746593286663560600225985374110161143740678356721031865478392523565998130036397101794844059488439605301091196859786607803131794184087023398399750911518561518761959698659954355509311733746214774277385412097105626543334699482017380423942826536980233912456756347809901747813926451559177151421970602439670889444723458978361421979843440860764209351649046286102029930984798528420421981007449416277745298847708369045981328785725381591110591834906803557705884490003218591576951801462944596864894300056723307657358172272511654671244069404065765542212259904069388375024530127310323267726797120126290594113322316914350033446551582232281569130471644047982141863083512297751469526562381196924026751613170624592540572779576416047048726712993466633886291444644469201192882964058254464704986459969330204370792179234781777031260124239841601471769586647498725858990733711272735255054855965397638427641499203445384658000642134730694696788853968900704417746749630976718499556331927762380363050605811996354895077337010597510124420790091247492748556057243164436657772610713844380025341685057037535959083860174644893332790138615711242861963426016843091047182847558133963507553670882505434721624956203336837236255536258175480766845147133915524216983872013739931994234006400242165107047333374035365937231297131384759934356806874500126716871017163850854743477122642392904347178976722305962327434310223159769618190016959442032855035163777836897930141275488892214802856530660961316866817708725239080818551834703764274502277727031497688191832234509648262043218621364425971252517428015967104835219156112060155451135103018460528925423356293535700844906055744178011843274451144584443315249986224171537896639444656448046435413372506781362619834129894403797117959664652645150297028838190444534823367010800965540650469836281094607392514563432992118685423510144741502285546237551753701723240533839868143111887522886732016936914844395449759410071683467851159824416602200482115550970134414099502795149161947342248031039388880089832686770979856173821848449287322505617322747576734902846144276027769283150517374939302312326287320438204004906313376366046238533922218557395528574256216904406453451325219045249088349264920379200045514939734814389674772346933497916050657088794360823697919429939536255428655292537863790422594450458456554384616183757068316451811642531845192572019164612531034506375609705004483713297695846844458587513939772647038314523687040320301395528416602394662357219838692559868837147990992925359529156606765790369815060932833038126934175556658999402972631677809887099320882431549082304755447059945711810753200075383578883543990870619076810492958205784693200282886097432413338260764657422525456783009239153032187012276417902231681886208728744613468855628815858816094239991203712653739562572836845947765239171868918180667553087762189098478491815227436217665848160607466094393559427768992544422072084287622275454048864862738435402580448402739342632430694447867044048880472200077857792283048721847250411403379516373968524947559923544755313582444861658846795456287350948267709794914863881490378920149390114485691445273547137812051389512505730752558157863537196047932387479472323023424635616304594662671750903952707374202924542657363855111552283805130901103191681110696844067239611363383540320758466566658032191479902978749652023644796575132966398165070386325199991059496189796750398704559426979697488551067911060459522920194419539926538692352860349822131948294744081765733764305827013265038385689546829213372008800385569324489249187428615369679447480966913413227473394790279908254166754948176920255528874212172814616076972449598615068017441229275398530431541561984276937394583253160216225407528022624749685262697598254632105159569012697745988205965614302666686947217873007694338699976653677876134030805457188828536825896561320997199032166548470901925746267401704885703494041773199602226190095340598713251932215932049059013957932701501048506003412427649889168256705698060383919156638998854381445972383715161791560144291974612064459659595164523734521238100572773268192743322788455334575826117291921113366829726917905447220468840527016671833621976296937930102495155891472604749368704147453160166267709768254570615227971246825683109411196248379759821979516985928999386225883027604945537641607766100599095111585243406053354884290479553930946650172986122309080409061228460720554793327367035279332686989200106130555844279315751412004754537880119864287704908325959129543533855909073757335002653827610700426253962956723448793035747492361480873447459266061966600510311370457026545912088299907377972204258799296440445692221138300234069641916417332802352742426841174781681308470049489071558367120928637798335381352900603949350990543768002488330081285583978094763708922608171489946797683962967114266132511642068061148979162517844183389085029848840719646995430283644509555334779916603099129895264937437251368239800847066694160708688924719191455236863650652449136885288927444099390585274654478344300269924734856992659226498676083637579657172549488771835658589358207243550778573808388436317184620202271107766037424639661882832743776262533845516603182369550857599357527183566507310057326633316422994723537963561067433652652722795271352116052199055277586463732208517811051409876953038577478507969339995445354721433988871262787637298951975892674646513693261228895143920308673388931820601893762775194613338180286773038388188083900256455875780016711727347628106308376958671095798026161198834250060792995857528440575837094049720922627058763024186452280156952534049461539405267171714672935296550341214531113304491134466227959707190308746526702850558327305223604744832231399568196895447257032810886828784744942467023863350634465451393352280587588632312147721494970710301949205947678030937198047466550673180661170535864370536573430106835362761179423678792942275663840906755659862868468791234318145725643553160029422877040846729699204798070044309681537477859818711749930084210315189532962390493333639806501084007694296147580462324544746372508811752921948945040152651752880792735317378813832306164007616278084355828013681743828084527634487277798994024794067865764509026285809009381004566283448286459395223945354885528467422813321020567453747306345888699691539184394770109597635607187539745149892634094427849214755199459389037610711076243807797359155379075544587241387993127473590308085313971350119166760565542179608365052132211315493395695469860378242538447077753095148661831700336050231548785292997753059844037557975629416621377261752854210325232789595162572835147144511855837964702456237857501739508553547120417301331288009743490957818416585766170552512391777896816787166120094765766857288652151672665579765326116704458706969545539829925693424019862171755072947393213203477740992720774007606435470717288218842270801950542701999341297152894381203334297016593307363897533426933100857433630763729423562163610842877754825176212338150455660442856951641634852897200837895762153220897445083020547013410558480464845365084663469306644726790849954196069344894643971270772632436138862525109137888083650182305310264364010150218434462081346997209737386151266386191728085705785730768687745041063046394356812969018539356455179731093816656649578288825581181179147809695978794812641319615784368238901530703191301987622083656471345064383047446238700780519158963756315572622768288038142121000438405906811011137136595680137050238897095334140761122124376930039263182334100034611969804972474449519519910675272450299248646512617170781818364298845944613370572693035924272364051532268595311529798787364668290729076639018592554150861687129627147710731582553940360248533184461147450015077848562221979155282419712467093489234531061957033220163428356649001728675945156837228598841279017120578611408170037789056246833736002370180420472528585069551271956338805329872572259662946300700180720663949480594485853491223172008877696096292049109576368578137831523065071099278038270183694467294397183431893216619422813149556190364995405614232919989597372881536094309457334883372299798385016450099942362695631202237850459648191629657961254467979459044044894498300222628485382292392955899163499513953007400708321969572476647649997899350799025234020098710892842938328731367772357215236096226233633532430902976744540626250876556676451564346382041503625268018359939333334303612824561089293196247849068036211968029831709857430546871282764423621422472510543001095131270535097400482018635748169535662703921255935112620918569903767400150291664746709072880499042006281987588849346857600830812701860617647287560575742374742167951165827363301318001597461957191804034246526375469243757731597098250994283121972383895085150452867443368778946036702131774398693871065220222428973980485479414281438011978680745794311669890095842128798059683845640124411507960650000060226449585941331452265977344508169371299915467877972994092180773396659301977385066586285967891338723840006266739950042188948844219306151038869961327640120273862988116422728594904225489020324430875455531180405245487424684760591942060986350916582029699318121615772761264691469344219125052340203600965165028789210446914865351708638132553699862537690882169237770161153770705394765412149026232691645902881311194140539655781884588770505315657860701839529585765644489070728468482637837495581105268980979134402812589189990546807145981840017511055041043037673540045877555009918785364763963248011030161705764408636238895195313530801803052980530188063900765023943039114895997693166928021044373161034743546760074717151659884957326006795395042238655530609009033774655172987091847393656963706855078284281389842298837921202095502242555765012570137582531898364059803031460278539427171118680936245925902437703002737834080468171298071295314756245392007660854818515866328253719386675636330186868808254295992834402006483329839130315830968817252088179772669187472497975929876137712805541324110366427034213145735906831706962930854114863125373378181656936383174572795997019988192403587928123846357805009893744213004222144590236431392667629548001273234982495923719082616274440819795852654027849102323172079702868329421704414690236477959094648147449206653908494625797613797932482554260716376143097001732987869025039973514396905503140422330057927427598617553824698215043804029699920817627910840803823165696080781035917914869276396920214327374601142250315901308165085953065192010850747101936539536542504061863725523095927302374263611672790864987631799563229887129359482727848319297249769812474381335285714156799227631535428477121370391564797986715655786568007142786431425564745864015018893647935542243296522042236342177310961850441797505792169194406605588168537992040751682631113987976666848407007640074399943767454878128625574270915066297710629321763644255432609221846024547629227379799013775199360593919883914018699735594750159749712160076536979493829252642121677498844048168172078250455053580012175691237493947954018411726430088306825331280714716602197671568987065970291123912650636843392164511390842503721337048334984942466411279047346862719106373657179503743311308418670192384817491787933424250174807608839659330982430814909677329561323428742709394484703700375933757851834925607587193721672072791805536752998379119775414302855971887630632990438170890907998767987504157820512418217536161681207050303404867416640881214966550369386408604025904756748682674785971537158311908026503525816077804557515038777412125755267181536315850754521041580670752484269060932213493021614622791775907100197673644657938441832515857897067485426326471110134390055543781592229389501695039814542912556297090394805375962018669885184025851697471303540047526675488145809533140968671979052888967735592855034710692265512316284759691034830413528110674231545419613530092260980929243004666754997440378616345978134078734741942330104591465950600518431582079377549496366043321521946626248655660644803612568563284823331805622005180083032683654742654461812839532225823455864430332074659642399047639676359153428003955605109034977647327426335398500998868516027267907117861361777523717876762996038545375334445970123508919928462438482329508912108386347445086106672339173824454658677330135841333298524568570597270860448526944018859414223620135162148445846880799024470410619981750527768798010937908684085182942310670049812208889591936729441037999168393634482015996343472059420491082124387421639267467422219862581558495203642357374196942044940625179113803634274144103133613627821996136198510928972154294258317878791822467349239027704881637922224917403138274557659096879747703580243168547687544891571222443981781981737346664681119802769617403009332708800192076628472464952150385315048278362383921391355303716957483408848333323966881920164306007291860967341701954899038518344740391287322909420190308445729283529798188955422661856822447237038970010298190641087603485639361203784343940874782258244593708240693106017281408990716075657314622664711475706096109649589494536951890785695618080807045173997970352454942227583263228639079902528708959126755637072291495832807395618808198947708536834570780671658865322366322010337372627597488334872627774124898599314737938992647062604090512248200873311338726646269165297173522005678744262409687824840041369677940794655307435260984837478207052857323940263893130991851884147773234624910927380156017556953609932299107964285060373383151376097725088220874594845604322274051429906699187106139250905470071705942941074655303498967985434571032868978954007147758733560947153293056079256853765847866363976583329995009819888562164209571712442864888703989232369691790795157054020169893696319602197589279163791132370570965470387423969802807643754199448776477753220700462632678668917207082061672971481487174135177833103834063377423325435299015595417482883524724673700708441588307908317429310573119629649663724244810470001813467251801244266000583756966904547798349455456982427189651071152030890146134540553563844133831209239382436389260415530536154735469776998483101178360037948157666560545108160786299460881154645599919413940571657603592696908188743244640978659265564165745547457338428797248095801962025455380720523967375176237439054928807344152464423112665057541115918657216801344027384715714967580342386189181383565789654086930340494643800384435357010759811259757460484114774418659762141268574386301099939480129378260198741363968513276734386658435708737318352701021897635971235134522823839117314825230167499859956093716407740562181684852437803841197918147956247338647247681080428772758740092331541644805845407086340568617752088078457829242152618359191258901376336487725259079009611781291931366659752901502123853739702656385665145701562116163586101888539834099266672197221765548271422475908917021341338506573343209315690107436547268221285844843849586898391230781029868586144576730685055341316735834473596472058038285724492561598711378344260055748535701356372901408903350235780370475875634805057820848701405088429276366247655179404532440131930037086371964299281939368675991288961105739287516115886647374194813464213529760686119593367878192895990813707481530280509844125063409358682915741996134413012760372913164361774305984998680734682404752987466747349441638414516548516477923725912525703298111576081010361807395711356563581895946440339111803847814037778700760509842835692032300346915239613020055896074765022292336013917803101623061076173465247638992099714527559237062277626341641937269311496664382143631468720927241518205839052821911678554021143037785200121856088585649754260190044257007889577674442059832082153506017713760477662917782171615922028329351695753016967490603244636302091590614975211269392915974670064446642220345526146263366899317791200087104423624319703999834605895748393189347227792601537595492805131542745464236552963614919869938791122001304425246645667557809055623774099465009543722815103154828528866796361391441191356369913433561776011509415496473171517030554013955025820496893621453616843976097452116765831387630225534524151549920511905850935498972096294984398018406482788493867576831985546104630868948804899983616102248462328855860776796951480086082098166141144085878579672218020227943427886303281952527089617723340052058585607590416159682948506022602457692063343191742496094095786496109635565254740790061664341092702063729260538128386201113071938379850534309219134766374266341444689096801873084768577415069836144917568603098437034148201372234152049707607511886675145915760036253520573941013702132639888809023756693125800889061538120642257288907712155558532634907844267386307487768034170141293589197754497258200176399600092113332346485494558985171701439170982009164979968474558534938421066058151938196092460224043719859023081913922843817684450041889887584601344975741458659927609245600947916568216070507843905261549102122671026678605875170852374420084319293337007787916320625283623416572191488438421175851979547412586253979579211389306144072078459094969035203437317587962585680503805818726315053826952202537348432581260601258733044234356050760967510890500399949841396255978783808751135377970425092217238460539201670960064194788258791833275266463923686636313248533188481699329493567126807415034402162797751323408207775481375422037911045318511947561402090731674935045917512104416167926930659062242624793434182592253845495181590892796168522238907796573633881082216143342659167397378975889605708839387766604623050335440417258884665172168686527242422481504077487993482520968439494590805045353584553035236401139258967226746494282058998742450585727366588672329851153730765469175417679179545669184313334299230767425540468386860231938381830466619442306096627804269595273958125071499715820893330165451830274810997548399748401059251456858159910851685177113457192735088580416329873977464350782954636510208353347324865087800270676466024352021551175403334605989287476108165315736051737149792854014141957838307415251049351423938422244893277263854745569827708693970015843868457423499677579715323298929284710651270227572307107330728094063223258438983634723703072052982633182610434458411329990061646529488765645688472798606517044506782877409907448912899215476878993817734127815049279036077050299910273107268635366335631630328619380509582439517501219345123512999943784739469202769674761753097198375016195408835064195411309922000347494592104146044189425141647289545150887662605130479713919214139596865545586586853326849535675038458243960567195436483726416005041581732804169568888564818812938022513519167633916322720369880095349168900854568723968757337242664638499107679672095708767850530668702503202432970307675465308185726630645186813762645176186984549623186887757268311732416548077818265675063708814109453963656830102005802828318874519717186306806926247214851345793344925181823257631627241064446380310260107619337811945588744880563397677912977278477776263643965849222323979163769448765466321966210504705752383957776963298246356512212232825834978848726635260250858081662340807740269443360404374600130443326266532070530254832499761477896558376777701844518192133401710687664724990408901207891567885666151245315827819142984105260887416188086171439214722094822326287366615325240710945643206816095850264764621070393884614336787706669321807786995026028615204241045873758937085766233739762626318059403367325292314008388853311437284467389695364988130701206412372168998566846652653586084335296226103831780047218721360354766799241995864056938806658390774203640136221298464779827551653857160994301873907001795205802979748925315175852274633494937783001676623708356255816070799041511764453749139171517577886320968962684048665587411002553093132025851680073507461758818597146626478858041502061081183720704033503438713423074961071205358379699279438733616893529680057504957452463072057337594627951717440119866705249067711989666751266080908653256955524529695941500747087949371185608817861905742042964926827097322647833519945209374459272316807436682003014250550890187370508652633253166431319228223587014512180010466798752903129351391116882959927150759693624619218499791719721468686663135400285248095340697639906433628206721824313862312026811564854368144452899889430319660967173759519715148535399357327117742584158545033060841195671952163932306885957057107295071032949250894311701919194604834771210152466740740802937827796311325865518566628232091295891260667232891058475580807649193102460579900219446922468591091806144458444801468732326079502259525370992654019218404080987833561523387149549994815341646482725674789116867068919258479839373715654345990118113642930042790700323031396323763109955767837371717086247591890525601880404202591729682390541896772151117050170776996581541062281175005596510762855158362373272622155249062874917856015730388610714467810389098994876798700702109937199831533311064671258463744752716272075332929170605375179933089600463743888885337881620066478289842071787374118849320528734064876601606711516653494502756461201437043199929609160721719420605924281653097359618952510158767867313639208263313801788610737044235919378713095604064818204461111750145630866191010128983713263654387551256310041753553088218712239868440704652614760198628935110793567108196444268652044049794323158949678640406048171916479975256104759837427637233156653112393342525680896451736635065111609987348215720678081483045674404058140217112220745543846325528171758696243778114397328992424424303242960470033699410837846888972719303624154030342756624424807588391098082866524244162767572925640559951862156333494405803337059073322879099855676133039270939178003605106733360597143562375802108737391150592108557002313895640407005777897905257253820069598904634109053883558698223424406092965138240812951687414988667544045611052514816578985862555127805126979289925043367162973677736951116443852473256572371162221868150016768599676566197860477306915125442820649341957850978432091822602211111684386078276236557234773999499233504468860039412064285692201629472647093607828291457265096181481560301289671168363996255642444103492641991367317492063705584275513759825288538943098578476701103598919758308803337557862459304185066342240929483878900045396400234649100834203255041193809160834787266244957288482924925081063507278281351875753732990843467837871783850482195166646569050933045420599376392911494888689359012030843231815222960883749884572886311077617544651153319333210406646199567293529502632032480020811974369995706842032718209315167354355831691016397136648917142300237793480435512866754121644863338561968696735801869698074241470961607332510297106373871906634827762986948823546880967729098049693232002460382265899958234851008938263919209778651051183314310997038125647440999559417036091817869933569291498920811187803074623534579144339681288896875416220637211975978489827225719181515738356379668843218107515223390160925389247438739403371373023708911939530832661505488229239691449617450900659369544691454881657847337833770200949139359452736934052923016740746865640187625540654157244296812848359662563613949202322547989813524614812265808206288823458109228047294261941074678881361769320951520978059678953244415211821171217103258205706305365616112418387385645380604972304384000996900227645294184970136199817036096143088134892042308320535527461548378427313416461595975084415683697103048129593036573845780471718984307899040168878717750632876417689931242427249215543431512182602374317406765592357301755706403838609515900531052044296452943330899789842615593807695244278784083573272787460023388162916809803736809316196091945525307900203193355736144153710022284881447564308012963444721730533554199003742199008198637338142374281270015787834335250894119252799381189513396322728982970746604523773810951654289354799464912725429237535906997860926420168248607916046304101750834981921491487163138282731644103227203987554304273482250708852585925879876747044935439021553220932852905288769214197628733484165469928249632728868295414721476681110541217556542189487428954015922230030281649636002537630738205545248506093232224651903104243578403005460077345460258295240659319667840506381171703727594994444881875871937510058126464269755623771736169803704637176521106917075367521246258026369558913700103209022846911014453052448396359933324674641468814629306206457297498557555209276670609590350770604786660800477764815080225808478353171878678125179783231771274843418060919921619356383798535731887157215699384778775244423824830885091036440102527719918476222281175152337816590672246195971877631013744207710426178435457906725830067238833185689066356807689454085948847285221784647387402587149365040138094659086551891878722520201953032305120342853179926958857374410822858144110744009522795670249232477990324209351398476139290700519829804998232562355799103082081656396873949447115096578721514344708884590406773200565123719873473734223482375688074921303163498587661206331148985827361156826022953859830557565878255349639695747327121221988838099654349123235702990182524114616226406172534341920904353692840084799811690423582384328342019646526986016570738792262053801904466963835736833316818171694129346755266960220832581428562464345069085433184392691615671289086158540040955504540323456347040900723897317334920399975797525874813240856561788641041499528471996220540831361308376663903129401686108568466688947055038081422190258076979284780115539968923103810781771848253468650287887084269846468616429383741732203604496916757964942577354849657757731351862985096497080561145762620494834009661241908757007313602924770732564486411977872762295757498807777753581825016424032179805702479083365688753526785492371784515323382020828903884531302407013358709411184175501122561910755934362862542649050028229289044087439200585592190531294123106995297322109117589254226763803260260952252280984134316239031704875469768759275308139163553319863517270719091299827552377927533423285092563967378986172664340341167479629435573685931443949670508520437235014270437542902065257148670761421507968348739985704937181013675433106329684836975349141578710685843745971145815938394923164092896316479847770719258743742610918451905348835689654587516031144500704983823982674463232728233114468936813675670071228464273904522413697595073502246834597350166175219714767882613173451387737816394829528279777481848360264638978447584787439909321810889360897761497390040195173231639719893249361997911789483898282303762972484858975966158587859304283771410799810391189075153143839840946636717874825474840867890363906839283119083842565537599557517559473762603664233155196358102446479569000086231062496741171657449944159150287457875309880209282173388041583841261696746000199108044445028244759518380429915713209019220881479962479812175781286761084444542561846948692642635649897477901504022811110524884532261879519120204705652120628490223058113897103513691094346231456032483780083091180724509816674696826951530691111018293296135849910267148673910389221504970304352265106820754227659167179459692876009265465499103227116344321435571070574490095738743891360002879316122455514123087767788668896062841111605446424688957547188442062743084871453033947649538234974321862271701447700448445179504137675023446706031375413282351306750790970501271590586481282087630555859630783359895800539107762722967958867358686066548853261781920573082636706358368140121605746625872407305022301075730178784316856334312500707865424444400913353210024392229862131087091018234604022256979674680609559829629923781004990001924763422496109063702224156940749235904268996399396598217844610601083615666561749132359676665252969004000378785930895066337094966622188023234386718550250464451407470939908253925859803253875709691465103936302573082606155140399732971902735995584836807101020377586531602283431273847652161539632877707103646281522427331465424440313019041906852400965783015092265154397687348720820721709384429234911454899805515684323309001204235125556057235884060290026321963957192283091744447673043812720551720754357512834741865736331369769053601890713339810833860717358334395480726488062948496318871476136027431104170602898540337926194736645119346583422021798883879135245567107338582775426080770847471696192138905092947309296407286838562814353671189574921125201268826328756861625425577869814073684888667282655308827057769043238236947996501225173658549079306163150181375152243113591109127936065270695663744388563237928168551321161577861196929056258737931583823155196227030344235412695937209546884949415987804917390015402744917737210841839587776328184823541094696514514800413678752721936292457621356243579679865922817816628750226924734721817738391002384603687258337998486874130386283696965802850952160337877508322264359770726112622602436474151472204550114956655699384375437564858802375289291862010051831751041403999300909533584878657859047457275839837114022361725326954581190343653767452128734764203398887086205943038037403211038034267221393887031983602080352925638225143801636757519532275420085007634916284282934795306064031855830812532651044524769440673363964294815606203999551397245519955569109235456782934043440538671629342450270665950296041003925497747118269453701305852948150715164553787135906651796099375347275275889199015282168538790419912623704393877387829653598985228546336216801660248507847326799240989707399762893910191798831379830223399711681183533507563215113798152358347163592651781211632611211521877499676042882565815369705327017632472769298495988164938263152237057196179250464305257361772353093229038906888934017495536737964734651394073713370175870031945200031378005036961956581668347397887177199813636438226929822485063749033097670672068102109115416501786497383989289768817883546606802725216341088354949214205516128995698087491454682100653277929273802166086094601850993236594857663134713541274921591984847500885810971359312337252840035686432995556150537434884324673046431248916646892914418705636242667589449820518773463005487946087759687769993375055945798608097758054735546759562020068746425009836672874496677869271970410604781195572010122936595519569214898193421278602336908024263767789927485188441571033478966673177135503790604161569463116330029184027412393228315007973915540497448500628685186064819248376467267854528413290014855215431508437548647464811426244469895824064310877533471866725722442666747740935933986417531551063765325191839145466430830307323605351102359072853034452432252633983477414130776336561522168949484730453448701256184096504642825414420586631432319063677868827332376395037062901967507117175323509330378120519973854874737526296525292861543350142174390007568536533805382865459865161438850779888381956747686453041553994096129781338976834616868899848150129309787449441593800464528419845017183278369166355389747201347510603437439852661936239131168729072529861096818717331466276585054169125349075552751995696971592989313346307256580926958309343029207812576426973795938840170973565014722554064203567010652054595236385057724551979571147409099766017788896068920553374254732499783578455942441181961449503148037437307111291013144023720161822202241015856395411597984213363747007742120178365649008472311605687396173309161148711726547638115058535510640156976743230903736055208848327689554518180691682259536462636222248130027619621929374806124853592785542523858088526767694608573388318443450311082550239700174294294242900792230556366274608060317283931553532433021326188851633269967718905345086430278613800418107181134012977233129951525332657652236806895999587659887890290375808898360747280242149197683259245507626030871555410374170725565410783632878691672150568651037425128995353551410610173241262773423045391026093454275238062045067303928762371404773873354989241087076487490360479710908489637906906949781369304655676267045213398682576844759042335031467920399060019362572745661806517620167982758093919000789350894017180273242753074664903854592840020010585731483320266401342935388543550858178802765183766663627685797042670770562945449318500498793332972198823219154299238263390304592790249962302603005722405434957295527117149248048203887887709188856837169134423697536135604892889413854368141892968311387370248901976815406631526902713547566471079483496276123459854822228434904745168419687506881783105074376880190017575371018897704399730906744623870961881234343032823854765934417328600505938945974639773348529437937963805327407638712495708618702099772343942927458023164609358228952492458473836092849470203639708386252688773412848091842820463301588452868038477153539875063694037577916897179613003220816152925567445312705830173255212057313939483389590767798981013340321598331445296080411973800160105275028238889952601622455390719653164231241767146494623574794407810667253607273885408264403850595258116834829947980439147134422756399363177318478986062445404753893069037542143417394786981616016737190854675048586944955903780391151949555982239733606616390871423528582683994542921011729775401864066633921167468121665892760761630224709552134061416583837964148106533073017179046282287527222618665782579784779966813956645406303962108631609454759165637921259608717768063808723073032296000462139209817547896568350185886565907499027924049018604267814124794320879998643050722352417021707380332452462756217082790220446943679822251761147244582126372757259603414604606518039225129137340054680443736865645349422417542928973041371439104914625916541536088227664909125950887539508064403101549977186533074919458452750101020054872163639081616342099553006967121478311577397807488974555752637690443190386037598834296759020306764489475185519909848493695675736309004570513822015840854001712249748818019961121247207394357272456927209601143319372056017560281840914169427070332132240222262536108440566930521119249870513712194384018093298819416806645957132737155870112441927037258163585566395895209894177302992543588145619154224809414405690078083216472610037190367971341353935872074196476169545080801650113642972324889729471035907803133213387137136309961174704729752181402316891279566416254629543039170763481177162217659963284772574988666796558783176233311866437355254964333624290531891908336697617414723313696778367254914905184818216022279288022508802403866423154392189824459665390811627518062440851141258572659556241504330072615345720216541359978586221283680895244724186495197764323980775020600191724633045915722128613315859021696655468732180886772303949345050295876669941851485690317121945225020515838168018715314330843438577348213929508551182029452127079274665216435110394945969133478050440612101222448224260859275528935637703056500942370485978146184928631177030072034745248685771698066147588111606455288283357276042248409720518591241949347709412455553062835014009494725238266236513625652795797361144078864220105652463010593541412491193705275964797916266914875814518606631825094885938697363037967260643427023309091563583932928702230662763342655774300551913636547974871460118212945233332625242704028959048004931783740181849215300793419566962255550304938962017927753837844458105964585733051258092283139407641871678966722572577526243241352228413371588807544859347476382297719514915009227816328159874629474891388568426720696252679302025583938713715153053418949636597131313853068751344108823057386507007767477491908069793263994237058766882847232260056438541216912584938892962842138079955542210443190714419309801259441521680494601653761240329637572098878150213184753970219736847558719437767919812492436945699226946972341071264319519068113404487005056531413543380684967820125090146090577590445954877785559276766412464613606392587990891118027554140418093368236362848602544843043631752782347266965945941362096089306458675048598326660251354404313224948521265107447836724385450453836099282638731615231385757991778121205144957271577202819387571203185081549310058750248626149501716393083647674613744125182969649762432771865923296034605804243682897128946744554032502637761867275048293546473553535751613774876892384708805189150240976832317274456288208555890460954783215065894140235354821057411026676890138375896702086150436667767255110539748703207914173279811972275127540273341764382404799242104733256151779065448855636154851217421346591641279966898675253158284935246090966217004436015013755842158256743113916616954444028014972599996716569183357288768354712771102401134780219039304830816101928926237174582034843799967812810224507743095110577078692071399303553658060309714747646104870946642509188600450580176635662331578794657015924936792321664557592876487201425992605188445083827401696847117397463151627544994560177915012161769388233785293403570651087563901668977492078984024778442839681270911955426011026976427417862721466831124022472210774064803462588990418838447087658132824939214699611068068053946151991821289533693450182661674776574194354061646777611778524039969953068275867062840107672485549797275919916742160154876105333460628049494570851597881080519897762095487481430778816624013838286627466192581363588507137527331556335856914913469960212494179101428632693379653865474449618753358062265026216220292590360189007295689541742265925895746122932996863186543248296629923471911483279714917803913239384488001793431147873686690897277558948166591167393817263550123217910990187581990191396961519887737979230888037097626087428183292308443560892231362963975996077478179542934822973487136170913931131556519627448711933490659407258410501282699945138226888151233436394210404084873044192925572290263709047047863287603089229004831747853385679501582827174337062369692089015304194729344270604037121186711539953017718351623115747939030892821950462453876188651436147229355300621043564594428061377375815579838359953752929468694854231762248970450777142982016867610039311899631984032596338418252826544786441122318916865387813395074229133035295604453323280454777307364031175201371903515548234600688318182866942197919497364991488913702755406667722799768797762212426059501469748043420557795235855352026292502454141094019745094113716648327597918564790480926785563003321346678170595166971074810107055063633804369429731599490528305301253362959488605165752016570651803303579246237346875383412315567834261898526515104057667303659698945023946895818837155640441715936589235795521946595213347068551465416437460948277062890085741647073504920416224712671200920470766922153456431599050969058055298351357245441029944110648715785379357232073456192089267077186466191959192364981532366236277201199579030648288293404868882842316284645273408131468063075166956990442590095291053449920534317875351180976642953247441005137055495363361243002653304181867430447098305134704967788992928271394624588586076167040422133652139866086332406257940962963752380046086089650653999178981670736728767385152719594284489930095878011088059639379626933988646665482449196494334055977077673152894915705097520727207117941071734704011104788130083945385104823898176109913337536516053377900960846231194835625004498635135811844921026601024778269360712383478379505460724964531490051866359923920305512883949838644397207164441743054944590431284843744130690141436217601831462811682753842895245261605691814715812323648919447794389579386993814022291369170105929127072970690413648803959264103922178174964327166873526947679837211101732756006205245692552555730888840029514026142546623585805986480818603208562662903067707085393011348287550029865174884953800931178288338902127172648533980375099950682426548926652995130258982734019215903180347164145019591481157137009601551030328697791700874328849915781712683103895996101434453250137644598513236149793347803603193961893241918227733296591829716355221762159261614659846762008510156898168794612129353281670234124814749528945583542440953877630848503817747090828304343101825333742216916077314630184010963111090092978615219732338747404458648330149279176074379788829080834231319438274573084377738608406538662494471722824644040332452248130676457654396189258641780665002965870468538423824379982417358715251488277240451042472598940104766451108916502917711647413873376813407234812821720539244166692544946155916990955498875475226959781720223649705688490648734878175910396985904462669256161018922627320288059236201422680356373912027416184476035064921517132438146484791946595840663647438360775783322412002782932872061270096287372342792766682783269575662291769194805427209694872920917286929993415853846894050416453863519850814636973550820235349438647546439687887140586841799587657150903790427472335917992185698970515217477687405874586049097462384066264813548983335321502506427529074001580684157125639846265833497272442254044789525031812471039871297628121316733274188480361503682441018496198384930524035698983965768779291382989686354845488527981443508525276609409652219562793485460328880711561497426777411888204453306830343131477028796332491892556060805283305880621413056549963678363829625907624807260443310584542842654634251954537358225716814913168661478539213636422732102298143544715643330146723016736688105753716084891968847764299499896366785836941520083295724766134906992882290633566617329020147263098417572004413038347294847041865836724790394769254936622688379506420579106907444807677879356566273771554422003013167914203650231876506503058321620802624044943496976370477942804350411979729661434266094600427271974376136226279063882636377463903478207907375078282190437055974294794054102795368980545353637056656825370024613937873599708902527048370030869412931566106275274186229851935248441011269684945230075392826805514468902110224746869169626832362630818120424452625760397312770686807441162466285503853983665197576781807552458701926417206794728014673289655092614911787711653475285464373679640544077684743414663836158618852940855519132259613079841368950243489633323037464232141334322951905043757433529663128591140376297905625867808532291474495270789788091489560243281089652274611846488619734618323151768640533780373234976466681378192254571828934701225896224382213619503522261073193009722684839295277205656112976909051188667084561136607859320077095136365888702685225402499090395713651255303288208435804474674891416462161788303535806846057599054089301501996019255287613549010016154516419634349129421657661274196108404127955611455858912753291047703558869770624415419374691427757471345545850793910011096725533363959531765080064270733705644663212749101481834028964967888125151405145084025729715069894454559686035707864959428238998179422626655114202659834306593249676835185631437920925278212021145949834788459167957376720604538144275719405566432599001973767813633959363140463614388717589538652199965504519059719975219187052819277971560790295001485543085569705044228545528093732411704724272216290970968246237847541982556345941461000168284157288258754438733600769042377656181547888377301922880518010352163077253426315968796738054631743248111111210004588495460056210773106112844140083037777124269584695169322772726303299350495103384735763478333719072221859916285628687153790751395117727726543300115599473625388456464352767756266514240572496968141034352111734783773757151714656082932755477740374090672904056717611613015364486953739356015831783908709552578910348788789018672762715962761543992715293985213507940377426151823116648535319185434647114306757488240484854217847551679666167379063500684011559990970433808615098887576138323361605598525288962728815083713751248547626762277918732209153066796592533782488796143026215153802076498864913436745990158646422419892235242388159181420089603920395841927354549133075463896532676474337206909628721185189043990583221462835787438492069656585258546498813548000774813715706912916988236252371625215419386368249738282332189053786466311557363285447371254217160458890803249307318234061472453576691375287873721451814722224699921815107302475152188118382863295127100592338664784803739195952692778112361305965677101988676409419779249478666871613067576415890893137915459831594187931120315234033770460147605740119252924310931338300565533460064935444253204026610577408284320811429092577255480973232585600168063402294218469772618396297043948582398262945214265817399726536961535019948212790135895967186554223387294130269760255439377146972395813154948100904036491004163502247690907606972580792368217536501052290737051201396511916216262662710583343932117883098053361521671934742665180430869779608783156841780028732872873734427363198152179559362556639359519550605046603132704292672977671433429341534083959598854289162513592192725426582633542678496858776887886950838672864275508878659784471215413810778267878039519310223844445636176393707898168513096086976553320984004611472509935890382280965906597967565999096596699341064200880080414325915975991059569218406281116885971534613878797844475956576929024809886092114904796343540721581911006933588180026213623155624751170690254655173679486663667004480020882167077372584962224629251687975290125941428401927458288018642924752609108495670027135798667815550143897680996374686982811492287258100436952372517211153378820470064200468300670293883791684422206029133642435335294690875075538838903353791269661653151313162670235130494843553660758398312364442131249412210184933412329481664374252987965203666149185716433345176320392939543819173605504377839212041903653636935491212077620629302268646907758782702353543280345961143165389051343314528875004570073395319346445508140007664767059578151420460144478333351008515691292734822519335154423949183037332656786284566849862815269172983822288298936248797335764107441866034931598850493056285274623747885978830231903019784273300802621744467394795520784225443784749750792310928156595497963203118481967587941815790862748735662467340798969298162158400277831156027032818215467166161477731210668508418350632193747295182995994424593091831855864061753413287194928781395805481883775778641242360172374911538246685240636051290166814671460290109212535316975320092852387250830820875778101196739070998196097566750406195977415885954544913949418451941057752998421005377376974900612764356582676077661760903514248372028290873156689333098399578036577783153672403196388090029879873309150918340713998768568961424839205524122000532850470306812527545058050587369336016071041579721928046559615172618251132033399614674330097101420106675560081950755003286412935068163558787664907521090553999575613076169329318243395538745957159498798361875807932613264735668483025832903945996272635527149930775864908517067577994862803489046084444368443510323044013074282631617923810750378424176032448718601958809108272364916338180397833914620086461297206112168198423316621597118900058892600934816544690519407611014125303137701056585419011852665947728489358368488189149458228621064082105459620095901814171702700488746152973101977904355802419495156207498041948606749612025629597211991363423348115867585148839791442513279939151817081227880106672606064309814448416402113380412966237919880129049261177242312844960189184937241326467114399966052292289355222413092681660616540932397191122867383514187004347697639340489235866783150282213234800867549692467129679394827082868969268368622838403901373579673816197741899666250298553435799158867036956652034083441532529872826942345122535764419883122770614963248801257109622805183778038896906472894916237015354240453826653738417414838617264284603593053804940838536110923501896415239769479331969859465946402015339183355099570488752034032214158510594882689680003781772762746417680531658210883138897753482887954679468461098999963031898403119178991292749259109044501052681713786379559371906045276074213751851426646950266806909611331217062178323854482381070381906769242160417923624191275207115729534673554204004365277305036231661433027704427638044554009208646663300408274954760691247820522270394501462040425786367048278720579671135144528794951729707368800781299239239198996906830913190769602002499341184313984376362617309125169833998899507854111577628553116744053821699672247269434026666867186667875133667782856007379193951424181244703683557941967949917875386724250371801873307425456210781435146912488557004827774171198556270961572057815081596599813925467620071386254023212523549966415976165203389744468001721276988226694004635494583896841999082415339845431876320840960485700151160680397790972586929189856891957886148291035514959225331112061902042748607118954917143499492919527212924809833680723404901316661049096472927886922237478548508789729516871793143940817547566651136069757313081100803974982899994795567609303598115077991138515706791956414885163294215281175598528493126629284751169384389254779391192698333067936966416402796256856594043391577714667591953342432323258975102326565915871444836760298776983196236394301387347699948705879450289755074669288162007966364387524138111871575576791928169581860951519752080601251728129991696006065636866824439261502509678538959491767127180292759920834415743183581067677045609863519470689863909840254970794094069962517362138809997949766361191257102385769515983231423211098730225196036759475383053220790973216684257423481823068066344333986673474766567167455672092945707851448780117327482815649857005083693219483747595667508100674279097669563096142946853616135184873926007540413204551224911301948301855326186522235233780834556796556527079051515174718961502399952923738046567662576793013622830798885879881937148283103443599758253862213612035546521352843793064183801473929272825140407079483086188703703298700591882450328994945512296232916422320863195680839282684502617129096183990497879226827441081655827806805991740921259555862464595572559853710122183169624920177346305862211402355172184089407415263324358630189273176952648046978857765116603768533185932691461426520283931066552809652015343376045739938610806621626589036577036419374390615249824200524314700886364956747479891708619826314687650546271565383583728473952495542666464041137771874042116103253298585922813656287742569960604282927752331800080213324065010173153266155456457261713508538934312708982844041093330897158143557813585174322542650354288923499982044143807218402300413883390900092765944803222431169502642167410140846555381841914128315845001848969621199069555338273375044895958425500840968925225721129492923386936358429465006360004844948197704464142422629354987086902605318315242825275672125603913523087288075875475779256481994785280825695660239884692131478253920869727669456629291151768473457476012259031666183899949763778344876741840934771212440387299518306274564255118173986411008168275227363051114823114911644984618684049966059763924510880240594811408585949257599986259741912998110703190704779455508477041122718105459102270738272336244498407894336192573185977139949435136592273897130517452849054874410262127555565623025975539167816293799474212846794131710456920648329141332276119335773332714141244113361690955163501546278116224296434521119224454551265453201990659302236873499445157131036923052790006157816646176726726123052423322115962976266161356167811529675836692803700443859903612729010794070552859599779390519850323441880903526973090624947480904283724139620533901375720733041844023827167007428659105499765887253230544849439513910595224663841809236132649748704681084929873717846502291243341828207897902237092611453441308467553475837344363825632686975033275770505174670004791077948614021036369966410003514882686216331862749305724965219727066416440451126918349737342748801038858852280213599334994559266069782272645961150115418169365397290693281407737333054877711578295336888080897659765958259965944347390357453055209003034209086348573002529539066474820236879649620002510035361315028512396181044287831184533617873508344228812176604405020048304205273130943212372390464130123320052781821561331815550215447769902217524160563896895552347643239696317055629298077295814922835249643654079481862005608537544371950918698626386845524554030936279805736488541404151593677345663240592091823933046867380947116532099738982749887015940008559244645249360050896204776753243263876981511312405358174721007200386076518155484519985437642016039080798816774713738932591770225818300393650253875704573221757232949122966166360283057451070557818723521256603560791305807285351428606189517721094830737036230127794748220520195339489623104159686729842580581102080048949808542893153986724721409649086703805181686191825167179325222492365378721651370539447757366569098019571202923659514034397565101613206396373302154366899160056037817809823714232072964287153430476620047701842290426345192625599711941556951751447136267663790253545131036299100476582157458769525017716007073265774464568774452346239130640241122632590971787821064725554683442226048205104315620689655770261039704675433377205924381151345694166097847966669799625166253462847252554576821971967974360194725714007958881965287321878323176359245565732928866175353665623149128276098054075181072892199496387590499650565628649997045470604108732149224067418888045018379776573771464301287257049051613865246013545150284207941469086568198727988939894579683483562214659452175483715801965275133030160900909664619412303715384167206339615106342679783317513231987667892042411794245654934038236809895998076906762848513213609910819054882205965539513712034363743282631895917772339203387790339746462090014139538437907004908228816948269032382553511307432514740497761551337774090807845186608634172049927884763650487141048221701755706026975570869866016477257883959242816020526122714158668397901190793667609293137086344739535225235081196835908277494635129006045498156712433873700708912897934850918523622136545182365075230307262644865514272355553803409910898330843103689493091907602264972034445061687035830054930214458171219438549585452474809861304364936959550778270682804553590985554734433895301373025895825831798789432602216400906318780049329672320475510955601805229576050171906995014049354502008520070726585929546232492518125252054910849214491309108956303337435095109081564977177598469427948796101459973715050032973171465188709307480574483298467062677359058956674213554343974541078816293414704296025519683085944777232944550137743341097503936972694199790624543329377131411239751470672287268348327007370719907692486559678067895722682388218544996711233050155390244588788184493750469513725928996911727286361582582978258987443717693773570026349447725556641155348620833990810365347487377539259319056365205503350052383056152247246119984406404306773833602813467585023751799463940727476428192078983492391820176342319935701641718543797221907941216403365536921898402010770616208103226617652980952501027045377956276667705357428262742679250713576867683440280841176938001427621436013923679575800105799719491431670226123185612219341589394907839607073615423538267860636222661948287580476243509474399301706147792271624413938563904458156336312372738049214780019062529766247645269103099790065737857115726110581494493799761460278738336607434747585109894363275799493481067045095851348193368356797850974327601812427104910340840637194112312468825695059184026673659764046394573782726584761359565280588037331331922113516408769140601902512897435378733486139301243701787692878408711201568319367963325097854140028428737384135316378334117935801417935131565160654123088739652612160583320385450390146223886987032360536893025970081124828721143420296849485301929687142965993806190013160314019103985556689392731260246223811288616937927717493799484880005577607922012633642142601306820763737033964056498471682315275608465011856537697970800977958978606195289304157897255418472074053697923801720942025007536557741709228362041378433026529289463985897124435000269584828079095962354657863073551916993701595858858836914007902943412703992905201028379502214872344122919313811304964171596104878251804943900838613722429388962943026293641200274097798445584839524274143492477664166062078880957076725486692875300099879487243006004255181810790333084776786819866911330514185983161473339488922173665403941644868929610534899401869577511852710409940165711408183125258763187759233406663183502190335748997972722786814090531601811150779692855085251586115481796126452332556447076163155815852260135657759227939501058011055909183274212490822781204090148021767416712791301861485623428969343707562158109344956477326232348163817395479266033692165086374457177227243570127304451271566144759591667675598953520991625137713624162607503601054210212684665784857896743749960710730224024743328545321567785617927393104782528513652146950783284123638690124396999829881881135487142054967841996252884623488172069075287323358263754683057630541857154344481049991699871920144610593177845550644325772369857106242749535400556005206330931252917998925414214651902768257616011549421982045114474382782216397403473995075201248514511411004050447540820124127042777795799981458287053667550859710990824388881217617221568896073656902511313208761370111029248527321307117213599273990217726359383085532201967052672976392074695516991700034383026207421381374166885470329905305031143016649549858346461621285561113184561789479371575840207743205981834988119371784325538593157806828951630020886933650003749979130427590304795932519898301006322076684445880815803699679545405587316531771365692142954066671564232644111113884702982175086118872875475671985605872326637732599959958939584570988846407504859448968506646450350261008041334428326412178510953816535744727507472073276825728700262805726040113813291773438309971084403868251746307630871130839662594345610929257587867895306806142693159439587476311551368892140675753131886915839415431686975015375858642737442948278389009820721370380169026797153549969367331978317760018621484254757675401984215330063465883386152654045392998189808249206283337045265258344833533083494970837538163375867043319807162010861582176894496398771197661095410483910307349058740514065084768212068332053118324196332451751230114296788666184121120402414360809949376951741583920683996328542209815183749239828991951436110477601042659928601149943644226804176786310960173666177903967108783698618851338020535335401829217290439746914948754241500973284342847720279219914217700537248070555193624802481444683081197451000368974071469132735603657510429029886341873749620752878097034366878180478583233683848112357873608509060181209588807822586557157227869665879603159119343799064792472324529067863584908784003001487104729183103392857475878459196899825736790400585859653176061649032758226703480391697868334364879874425733260172196775413060911688873601707806270431363717802927225333477157499268063904595561427512153291646893098789537304921300339907650220460004353324543537240930014603118949101249861354119428709074564705636495371717169699226677715170171485974515507394896638065587238953436411688027885410639532357113439302745589549513772978248951280083576093285401754326276496247856496259844259583259674605232769920246558937054373507552393750953714619902371389410622684475062699284941828155529842906908753143415820003141070250535306189803152427846285405341443356232186318589693157405225412021819459620602653499985060979152139561458065022118618556770946903874529397644828573414419575616540247283065367818062991670476775414968057174201294224227555099798953820375538362113614446204612025676178212774581415103149542715409850671496022257715882446878304247107582751627876683925592042715683278171057342800270103453443272781030874720179285276688756150953700333565296616184197065747712594066810493341540873178282061249120337000351695006740226594486062644307745952179111723559699250453567871180125694606842323268179092080525155060710599523769098192999567111600294436765614990527542681906369051713110038892793664738337491567555756413713130920834453463336170701496846251123486441977850449988458745909350069741527876120327101376070480999278165792839362137390848245314726912542721938534143052778787036360009607165551703572333579810980230940350021718620747334244824149226703835554508990335681759617860813281096726663257686294890833640464988556682446751993641883793464707816294200502135492392828226227388392859051119987406332245547998610752114658329023146396258988418479158408123085209511407397347434953631209575298588043534873146695046344211709206773739536946779743135440582368026588491160662088871052678064476526995734966428614789037100867742086055361202263712429856725664236098331426513680838028736772318513523965014144441988999098154566270712820348056594739101436833798259978264121834448477379062925361984580749940441637062858642789295829729620575000432756299229562790635423749869073131960442041355163952080575055215253990145134521689991695676292792043941581928435914101725413473091378356374057735508237398372490088618464410351279882813864332013025256137850083826243338071666953855268991244897151583683912673768775816268505180377130883457917968646782905498963357148668443091364244592338726565893488275992732511370278720364958823256630493051936575721863881590428646930131047035008767521836111032993226691518594333443987057912738598542381413172589465139713518595056286014317913013806483561763975797277196243294635365842248577303188328396924362165977207583388033983299477391477972643086513883440299502520447333123382767887080613143983001569033909798092992840612961046406087242333412125460749613864532542539403140524243714238975515910039316185105721416052047841799565106331287948783006211591947257247886404697659574047128133664597167404955688487603470222050067721005938990490169540289034749787638824211873989774926213400070970526282399258533123906633918164991699697065776900279733431571772349015891069145406366434468732525510062549938271368986297310311243120219559199489944123765658151291626664331802653115845864290708949595528341487316461890275147403575724927253844780186871141923875798101794859472777850109336355282275700334010672976077977906487369189847742041216828868152805748047397974684313780003563928927013644623912788266689952922213916901599327274993713688096696030309405602815268120836772152493624653989372674548681576011806307218085350399834722270986351642564387174526739267868670102363008043497524189435107613920325137001905362649567913903248202191872822597739345684940246191962114588517894801292948343651201272279163117631912734196259678571257054351979066472339654033353355673936724140430623243508513723049831821756065511070910037993235464217107841317262883034533734278423017111327591379016604683370111698934347196720710770318139788980047663226660914416048147409144910005003312408790112658647651890373296253063833830546051969110291488366163181679339667863436883776860732781181811709106521226317248395567225167900426151104774284825574535575153264028490078739488554257306790357257491657138809295141182872033504658690831099186035464776141246177300078893706240194233920053644985149336203480178861011477669286390448120018980648057337073419888727689105457227797367272218427277872424852858795852617733045952995646083345900568600080887928669342158666670722324260001035052086723420182515331468348052007807078995522782876459568851775604725402723806104886997461224894664377633474709027242286936685234221264041637031560689612622035736047990558883243939736545986292524907415399656440802433116497994393166896414631426038908141563999509109810396269609972273872344245125485260474051704645925712900235546319085340893995559714823429496128969593685826416878956937423172114507678524976812032995830169632844497481058024700400008708441823410899028655307545793854084047421429777025022447141472316654524397420767316796522841168041267022150518684961101915640040656678405074085964078648069939958361953676586185263466648210984490066085604965601065752623780002542217303435118146497137169329442774210843619357889925564674443154154380221413284721241561285062282112551533816756105543920638723138908003207246482917620038514552502386245566858450252567097705477146101563626023159479678154836672543293973492276735699437178394332318565457391256967859093569346736314231606271501192998260357266897798569273856811631236696251218433732182702267803782081248615735930204894862714315594325973206815012194924348828739601061062313956155832802841629933047448938332676437382652028140122134810388608076862414300608906703160825811139955168319129564659947174019221979534875254280215483074501976016458259925042403237230278684219595753523475728166344410176930050934180021588822011866888443991945494102690971844875137736081524897550512904369001035355749852155900081502257274243635516933459391378356929079975081590805933973903604103503533902606190177516874533711438742356308912043438138779160966855000443285818921672214590200521569447005105289826779713950247340107714881449322686042514279974406377956943800358927412428591445320945504224459424213856836481863270833125286883167486562387604530767889260457769524964868892587440458894914028626376647606244234244742956535337843586618053783881287116897026478490032745887438152554195352891139484120898997026095993293045663267402851942067993818148164164222537976308003938386197794647175795983800019616153878461601580410385866299196346610653986500857838393266168929918076116024114877362370454378423116013136003826938908547583890534728187398880419422572271249214740566391312975670694863241767106432682429424953793867090680271012819710945721886146214344406202063766108185717334461340904615114750387653581600628257326934598570161459173999981477652557128045843298933121124803951488839170001171931207367373130955527218891957167698014276721888719087332348807988313819467484192990112309653286958099491741991914091712867998395995630482847702030637037674824327485064907445061871046175829114493791424267713341614771378736024226796118248133135684731723719522353640394904566219742733717490464787367955120639814857233114441792135777333334288330660111894394220748526848654629716240459188273611671517491491702617788207520800497651156130695725538785107580604154051870573170712049241433543849352394213843394197962743465629774787093614328818832370850068259565353542355744892078551573657502011904769325392251724263640439437068369293291359307514476011848069206942252731957125441045133457758007226575094431521241114484156966818564589543145263686641623815519797909191243780017783723415490838224280134030778079586414169176810046409409831987257570700834876467880495776894711642970438571611321386230775089579347105259467467243097494427473856465525574881479527231497484345185107035032236414204012115198999298953063005435012635851263558228019656072918929696449761361949039678306582730167200203230720666872223312149355477830663144273245117481489814961080429210606585822173808901693494520544573463909249516787413678260579195831370866383505961358510859156907860083777569213448671758896296954465797348452689795401116831417932030356157059597071951154138450238566652372611101705325519069770005964471701859093946178682489414816151519284699945822096334500677326379333330680209773821171058244536584391807968359916290886290934093434805613755339283255114469182969281613173041756903313095611936052846066238521298401297322852479200894560324345243088049755833114920710155967836212230541220573310190028037381367657653285768627583064255846048122205561624099389262233859900230337345459795053927572556069354673546473310552452863820432050407780606973545390663852053704492595710773046556090870606071289953087043073610138284334174299189972684889104299968433809158966053223534786737767925881864122381777300274509387864513954964238154236984140865415135725222250387516514975184714612062688169790509395304549848266922624161086507664698512898604164565398725490210581510339746055091712360250783117704809122782972461562986935686977934963921503065314274737384900456014928938024499559786885974081107216922184871749116591262101224983274999156285779574183204599815397828429790405649471589804111709819774282534095136181787584395736326572782916615155028454298034623619580885754422671897548492417211246987500807161333397829858603169831625640756871081094684548845022999813376707477997021885679745728796289859102015871722897850693563096159887977940870811620264955227922339748934696095026805515339252174619644258188136644213922648839797259907789178233958715240251244554361415245679675099420749894217137270482901690616106982757884831900543814863962913039754390767692511440521458336055558154068215622794637808322406109499954613379540058352410663036638493814167611831746858800679617629007446558357729803338320682378798404879169317443685213854460889300568871524093695595620630855241601277865550797906180985975871959449640933957617608657747906504306432250417820325585228723255597997203725670239728687170553702661210773511630713348238600337142633915770715199520155552967168567868316428013213719017456457733233248502494459430651332063240947438318572667174553378146498159999172626510424407933835104695988138956918716942497084401127514496177519314949097989051460853005803282491325816868194426064775097858190248905408291224126598748940855129111569505893790911952645000726487727287478784751518508777608621449358722453061445616943044048627875869558242462008483775380049837640175519458139022010279386059481144616816937184296660586944009835049130099852067381272107461270362624936133658920818309378361536978429510230707521695647269904531684950150297250840241927955684117698444080415366043872212115629393974421239679488386177406865831542755518780197246294709858048388500150246016852017375567901110976876893986697333476267047708784539698464898261601128574171176410833707918065555166556939019630422312178231091279099731428992342689470616504028431640891536722098094282763625537325207871015752946622634934789634615705904707653759170850619279657885206627242005806085307141085350243186011394809849262384211892688688978943440018777201602005498945849742837829354765849863895345024033311950174593154873590029734383094840738780642273309309800395217075835274130738390141780633488021825479464150231921994865976436290132896897560960580486658649300828049692974133402943857720350294773369058487292427664892874403246699187447739611702976021914041265554928718900035691667976414644270733530332140164431508601692720708045618284242568195103623267538257547782712909248674394105144471934441775191190385790658841073244230082482693496710256821285614609764781271421553129768663399399281048036836484903663092449096441589328849824541098199194553466598519973167856770064976682841896732298764397433350332699105855214519308490934926577688208775994244161340977764270644834020938110615740102514883590102941191566709521699390637072280404526615173349624202832633404532055954368033306829793015557391729854457692357063912133013385615438780867144195384553067983556559454533129381073900707239505895811558864805634735122070448837095903709398330964508624174423640559597256683944665404695031228501598950395752847765943383255625517045266456328935413128040031299454181378036447124467126439997170421210560543360393987049760600669859078496428967213256114532802552442713784318854820004915189188623350732760878598413720191579603645642015585812047137312091164549105768237329567260249279030055722395561330727963956001487613045310238081586064836086101595373087807823362578198900353079516857297246822585306833669147926976804657739076681579025439281055492172455806371156778346707181068055239823981203636587243529562351068603201820701866478554143370338118255939196285553952297333089592788910752422233983584080811915626089900080641227925138122032516032516209633407292261476143991290816826432484846062980100110615160504883292543888265654833968311510754929435761422128679766321534798137551333819718714811583778606055327017438089580421626898395394608521439033373066286390189800106503624750217348647766546328913754703537806262107936829598269320940950335647515221853252414192523732011862098647387795913893548912333436361384175288006385044325592890831460937419697987953734941739120604948914741038177373945816846653223913661146527677963470677858317524814461431118269585336318155514338601075505521090694669181252312115299901072707741656347829148906576329945655279469333951888932269125991801956797494336477241268223211781203175978809721893811830951914518729047371470130452001932745334734653800546796470418230570088089392294600782965161497789462590751154452148529659867054231971618569587408866573240569021865721325120802469983541741302765205419528034281586123043798915209972547709759394056445013504065480794415108911582805056671650721551643609617930488686031749124615589159124229307390045307620144266389826811208645892090659748151547106766265382258122685333299251324602605849306105912490677698018197386737797866506434451872697858405314963524169476131913438845930923094242810665812675878170417827309230493266199914161782961130389561226319318716110352765897274011717378396161701360611667448321485533759170938630488252314755036291330813769490231319263240418501221486455846777139128276386573549531890074380490877577411151415724061549960914815982142345908819032697789205283363002624515131635065549339831729562247802859444606905693888897581221655069021963343736526002344143598544349993278325521430535979477460469286015617852961486735131098458765382279489871691634047971539327482349373072066737689340725415434608096149611617645930348785642558902632582972521433855740274205544336332014048392476945402030364059252273669224331944673305528454505337064707151764723208955276428168129829179604315872129918636489125910167965791276939628086653831778442210707344241255915426618852180275319541906397906165669077593005344950877708590772011957690808360742376695486004750348525770303366116583145100522543963824982263597432187887123691937360744146027634280154586945830016019024816467981027502960873173833845150027624250325723487454778374332935962942434471171777631155541455237506699759646350857040706724401696270634621278019680954921503592455205478761107924497479061266251264854448262210258375726238641094638932144105575973173963587696150344329946973336513568586797081149344970231668274181468041005848012296889081961195646177601283828820747250034010149998612326430029097339677385254362966666676346978158236143727654775710965273258154813642997184664073907256098029476374724595072260232850842766616969336557143106188364184946537513203620842718254574119473828151337572721401085759681064812568695249273418482429089740905142860239419498563199842646130574430293412495196798724681354586898934593770597432135354802563797741307895849459220131319987819261180286136267783912050899748447167359013897959597007564428291542889969532453921388940469216140794010624448716104849531418423698506629611831471453261753960281388056723214713053792201550187380010801758837803009639656921585038359608518236095482123994922998361109616255862644730301897056423052592680956188668380723673495995004913328720615004080460637013888502859951163949324981053128759570137482516237989178290855943403379390626921847593578919327660400128772850588584715873798382128394461095014095778819273787113866519134102700057106616420603394140019541900023756590490661277457953710718456924545650546723438472357780098161214536167790747078530768673636824801943984656020460191094255958729716393962334766345652304736608493728438478002638717192225748115166547507074585732408238305206489949908800909053053920140891698990353282782594646766166568045488234238443936650693205445293814668693753784680125148988799068229965124781319205427914297600002107955245525053139620187613165787327621370685614945888006951428462508281665468338144311456918216735577449335082047515704449055508436526709127738550212509738171643910605093920068217414201866856265146067186094866262713173630490458309444622403725182992232925301323009604830979773376961922871594187255247557553656256575496282411614471863615644231353721483610806532476213463756338389401353661391930798209107890098861859536476008756805120040617118245941463157068648722682195924746752402355944314556058078720724705482993509432096151629170651156278363299113069765566942673694253006545777379908283246828589238079385996325935307040801175280012434059782371546693790671137982187985576982896443540451219145758721744520533279083869503010438887776387212486633007496252990549084767980009215555234801411854651591395726940287674824320984806380720258323522153833458977623526078820701054587322428020449194116010724780969757704325287173101046235749888321815520508031126152980885805045284850179051608229914128193394551222700803260993298869361982069627403631850180419518150402094481330801435208522439022151345897035310760094967768589506940475638982940572236296390732685509988357995028105024666963406702355151648002498507117045334895207417844550749234670253830639774992239671804730998527214314712887277056827409339046677704336038459584317305086331047852362851853805023298154164416446097117706840126389063615033212549895114498161902387118911364964533933735313117588959046227578282557799599227091227065916946567153925906640283050045849201334978582409135091032733375986026980068704595132999006777832293121490409555136074096942097136869049586751144350280204418352497158463638920527455547312618330454326921911660104812531960495121208520673642250766287073797014218069362713007966762941903603108710562007211375151496891386451229162944031436174686372789970467703195806628578570712470496327014663357597855057795258006136199596986365487636251488065249496157910959724437499721142334636537879302194221700032936500515180729624031824905735113633239561991349676789124874548136114579463721832714684926661687335391742398645172582024768376317142572387204534727733645515309738692952382494289812570166755861839839490206013954191275552249066087590142923164402868540340979512946695129372986465959047038636472106480767361159262269451388380245830277641976908049627841464538876071659607204502667890407425383754128770522594767726607924469852517200502144079836835742428372181756137506434264564263233957995111885393808451532617027069287239725571970870247476488175033066205995542745478105008651092298129278436289562131872795830806140940581537637779556089221098271686750791957401196050327474203432090246642897168656379492189556502678796234397318152753491494226702723145690990659715154594802467125025488030061512256718316006048595437994088132147205860776550939126730319072911468638723722644421111633019760621382589674716060904451581838143252356018627376399771985200259010835976867084651687725575243044316228516271229198960310624709149776526196968644787207258192082002357964241833395742351416174351466179513917055927259371557213359077825608692239321166189285906125754867212514851185382838571916874295143595446794486452929643095988055476887236853306108762587379055670428464351234958845949841969551009383843744565129138179803909765887701097696046516468005571629045746575103174857657698118737685883888365548574955477738300364283020544033930773098813273680813059430646028464879236609266167031673446667763404378983850586000424616204081612766256808328816204699854800204668411830942166880527683170970748257936877511969321815371273825584832676508607988879295130842635433049174879353279316529006149485235777508702561377379825748996457357706807565449093605720926177413815882669538321496444977217691236355307740842758492283157937062816628112745633890000894129950058263898617487349508763092514825036908002703265002865045453288593615634631721679748991327183869335893787390345599287542091298972102176283303096189406407447978915012412498450992231696035780378527459863488374366178983197916475285453993680825602819891480437166952649755310176732035598044811860741026196203799775657332510187393065226123555419580962599616261775677326042705934739585604768547105267081214443088144997453418234840163642847465783107357272188351114097217698086649200958910830646701651361452061033812850321565427315294424943125767623576225354075335888799394606744701431582996491207129289244670118482203183624031622343836680438416503204298184538913617107861324482589769387849529893321795599381531998354532697378256313093239878417893132556546240555374835985917380983738279837105942013076878486518871714849448092152535309817585761114904159840478150460565848506619464999017943081386218914343594484509674482375842652493001309759703354398753971511756066347222857797113784522225168465453651312735899474877288627001773632078925499668425069087557573960332656814864565713957219848870198922594607670208242734437335190744572387868399020040557738766295888399538267527693420386692087649957860773133298200046456343586634580203875700832268525051900658125803932612173094643546310695564779056561428257781193132302625649360144995979579282298918025666994343939698595805620189888251082019945693204575426439488101613604337902984455004401441788868392996198810552449799236058208533957308818330295226344719251177881331981345589155652405649413224707332542569458798193066057042191690755520539795326323264528143401056800111360234864559451960110737589053568516763390452542010076091165240973130713649016370124190629709836424063811579653022393731068395364443753594282105307261307085024421491685711541478885906722746135816120852704596999183153330204123548847565122487919621094150492080675756280427400932088609851427824226797310650734502879305548621166557695668221946470904147643311639667784672215948827789530337586246725540103119939754501831194889631700702725269067859218807644105857584689912366260266740534915531435183749066950500507833604982199457826708963366774225649810015935709271828448491494015350984381292003786193872908829158110420175181751210033178994117590599655812203384300562552300728076041029795739579358202671182088429839816051590794519370053902389188945625569559568604949440083886417937776172479103470552928861697163945599147987590060969770460604971806073859415808247510879286766700135753993533747159751665180370819183814754274973152236155679012131779636517916384569838420871838046925579303160233891476927331650033154913020737698871016354175044077826133401145721381498780306137700934090906504537274415987059558912285601776059187055745689343257803266458078632785113121811880358946098647766899850265085576796294403222602408435644116238239620796406507443422715414141738384990598396906365205158528525779529141811670612885054245673276040013663308158244133461316800911301797384898845958945816783321505744270065504232216580973822366353378151252244476480230596959041019696586972421661443209147204337550168834403185223213268510446146179902286721147350253385903029695412205490776497356663853340313455483164252708123327186273985694745005101018729252239565326599556877303896456982369420541914010656937812946292503283995631253098954424079855058890122012203324202876829558837128377381465407734198480819777551449467930321274434922980616238067108461641944915521103402663240208200543065842057606740456498200028995449733193658020570089947233539437178215447855780328472939251945713062612738808520065325072803830130575005131635985343515979660622625580028294874040276049425190614439597292421933414351636509987906120202793758638212807765282104785580300051489291713291658683736357663529121768028462717366793759276874336948729627831125475459190685682439944954327231168563624172699681949332235738705991448707765493121894873702537331430582243940046977832603194618983401281533613671086322030294727344004130479204976529081815259549480625118371284800087008764873153940284146652024913988975135941566002229109861838916930726534302394078412475333836666478049898964363499470381861556883500427970244718025325142983869739652372088218074011237544030696038077098815762300990525527439002777980924871855941788771440023475659634589086748734088206796442698951630967215535785706024639622573905859456722716037494781594668739939057664757101924632028573297976211301877113189243623483923262043257293568384154124290045362332376514416259420903210340933071602556571196683364474004677840331053458534690122719893353357638871840008218548518515615996461208811725351784106276319095923442967672208905598228969975352238470041901945773776499931948233483120125302118441821540255596928595853144587173023907216593218044479427522445215834471587820270843961498564013517360859815118501850263496932175493431971564833889114283718847029553655546210019451371709447132295093775308116162408431307152976738543145040125491828334045493500401106221618475488362510190189537267908578034615703637679675131799843341294421468832214030285969355266576269772718515681838744995778805321923163503634684271182373356265902838984697812377797162471421246307842614381195817975344544096445473339536318884502319563138956605955891869052698293591756244077911771345241450412138208437462678607671357888252241466180835674698024271504025790709609542362190516367822750589563441486528962271038682611867499553138792216671439591592179069977021692108243781004343509458376575214039131652976218859172462899621922810715126474131300542582964922952622572363902008378345961944080503780290141698491627842473367387739554010454807993920003156245706813178663731649991370173249919432061043585865122022597242881366004565276831688158485681638656067190863895702814942824482709521205736756983396386954247180945707353449946131763810159272530801618768943746945523539010626635446571086297123806842589541323633419696933861900125646552851246131290699640802566672750691815885045315671115256360440821460608251635095207348355554794543994520914353847106951396052394501193678595130493516156221997189176286641488083677215306564663736985450276675379898737181432982980439336979864830022923530465540063006420355984019576181623877777140774292613172620540139774713657487858527730448567816188631322547563442211565487130023716629228578195190005423178528068873901093763023311138078442405917626341831826280757061704437326612522279979858563361261926648161723605046840060869006452770997161338988688541364985022723039007606581042120331853139779165450157658762080862725894709234535827540007578358937016790180532393747325761599607401125743938695251027945586636494697847075648120537251109491258469796491681283436412750546471727797678763609304233315703000112858355552543969475766717457581442383940485060029977733135494810012011631160805643906036720012492821187910819517244208243067405288884950711096408131164868342580938826519128486857341221350027821244580717680635872526972699658813255329421457399811730269898992544288304242481723104739235543888125891323833086817748711787253992564429725394749816079422186617054077238585483731726297949589976988950716380731756590035597284404696878726786907447749606812604001357165106031461230760506823326214803173340947272627127905062872034489204078102390287652701281435357388871622561162061796898110201660160948129640492688456339536312194479842566741468510298846295205127704766524149577473065869595426120839210864034486227373535344874338396847958175442252542756663169655834587485353135443955646834065290207252525832409508973526838047325136040221091871414621588539522606695934603450488608016001426527976453720617125265451988290158780693570544439234206148636082553809099374170068700140580958911803871331228324308893581409240589103261202957208983498142863441503215251924623325680301853632898700312819834342568764816715149038996338946389003911717486177467807950864927572666202953318244421549121762957038553433503865516137986771858321107789251552746611336141165859243760794984792566281088201438622371529161865854508374810830863894947475587835358358130563505468004039139237853310792603148478165753189026677550795024346758782523976898382109498710974837082481247775040394965458687463068739968112964041722523078969673321055314902512588995931520803989877376412796389346923129520811606728077576065667396304934191999784659344558857709690752294946993137514442711863328107573243173316377721369290356697869948781216355298364791229748961754909290386751403515982059581669947660608576961656209442906400442469425354920572219860869258978487328326934365264126535673935822269806001897927412546170442589654007474059406228346988876606095536120482715325129935823869562415770174661644535507647348138510163302820100848508894338110324094821335430819178339879994430309797889176744538587879547525573412031097224217095381080208845968237875983553296021179436861280813778893173595058047557167053132781375812766226366963287173877809572010200944619354103031464572245259464588483098171620657682679864969442707891646735009731681255992951648301765940374003386036617811518563223626574014169518180190442952633386898049910093678166340001123909371134792692327599206622109638850780332717031786875943249947358677551625362244627045699402810648321407635236648292920492883302886305776294410044704298456280593917044732758919009999455508805006974387411889248221395705452557603550659797717223907875577047574313848810522449668455452057724776629812460977495605486014599923802393512437009618727552220123881943149028066092393836752426621679056620436691218531633210045788926297110007431921040736222589472042433672512936371753372403413125599017877247058316391662597295498167008604617100600790035537128175214949585298812448259516637704531720206049891537167480774454617702704936711172334126450787317425271487045433033711271420827951540818931661808976653110492695004726713635127270176561310802486176003453368774626733043124331564169243224704699147594986215842912526450856393837605238170848941790328939999773439865270914605975954810251516693826883116915925110724917533524226186133875925515350266682655905004060921520496488650254082020632403069186207871942471147393167129325374570939948777170214273966664684399260401377147472501063970990104625972224429684086699302189980644162618507388704161933938057771934670867789712621223453202709514608301748865006357562300126622356563094350647713234477524444447109153071875730284575814856220724845852261031139310714857856788717293803357679484378586732843582885340022149964514139115418501357361448120447804085630483164291453420180572925563436711551418755729280794298167710625818446570064989758781164251364514229925839806427728569760119265910283668289968076034700386232953910099266904250299918524996564248667113624482384240442964930800078083454742179281297314078261708431622653436961757247105295139075342094903404394140398759929659865146958856364710327019844114818670893658607180748240707323281269688092246325254208690099485103533447033348454370274770295663615255901424719226503105472104780592286354562520001999431966315253921749548679780582029552233117304713758679507470549510003337798896446568201626781358842115774279661689672466187100798258243814411818175626330424697024030012364916032084286642446494137723694209572649265314818639530406203915343828420841756527030078083425153394635067620896258850457576405274120270546169692353737209962609451015776044445405303594803455678444746543572706925540315797042590104069382062945457356953026443731728984756453248703705076189785009771350453906391460931490770627199841630655141371828031629796384386366856205319136453463836696977929313796045389746362449590600833033915167745626091606197261935235970066621758876373302290911462983054752611311295656745336102818877323131385502957524912751108290215319206373693494198167294051335747748701983526393210599573298447842446164857491529655112138906473797590645934837319476481671133423487554053186755059211421062449440170011009055619312502313937727916388695137016220729703019876862778010074059853838225699902697640071077803283985755761262675279382545017538724652340765595360741100383592790332651805033764226454788029137107342541171358844419221552445678034095836587998892495099623606898503822467181772327992037255017894259178432138262730643505106511188364283951522920574950642165992991405792418386213802465954562939668510245296349022808898804787094621617558043477565313586910073899700156547561942518889115030873184268485346410611283466438314506076350329052659394854556419742804616112619978907045207579650125609921910795590907197954192168812201114016637327624433305858252212322771266224726856811946284699610643291025657438276511532922506953134732336343097462376126829986558971893085768572855694785263786420534539336722436890720335876917014369728196447629305824772446330594028278826017292054700057443421801694416837530063665409882824068517354292382060946384534378730766864491377506514498604887070441764826011369741976916357771517846933518228925837674291755944928278009438344197582950567727912790703455012958299696201160106136524308556496372459609171853314745970869951070580641319421705728692208733816338746536713009453987047633376106990243249483157858502473402094132721387760676823059933141233553137139837139070299757245260587391487053482168501277253253183605689077187031986588638705100343942389352028618125910349394588928011256276789620390592675049932642909231415750955364305389990400643723725350864057353257154338878031864134947755128173940577653890885508229783030304458670177801240059794233884881092409358028439491840833189794243076053018560591764074336250558932720630260441840168063947046343965627486890943039827506468802175398029093491768139278831529251183586757829854692794985161913508745252876866583511770630696814605380259549815695968682624021831690632971660894952490601968873439380925342415840193953910767316130638955949390494401918433624939592818879305243733668745625084190752513979500146604198680024341789370636850265351277145045643242771223505986019179187142521496873238195802809129131472705814138151381438671420808569587433515875954683945601187975472410903186519010163772498563902288312837578265574851743074487255512634325295750640257051334692540686720165574120759091750725760674940472630490791132375158705497207061393760885548920704645620083364975216676622658334608652472229476865948246008784348317733078834513394226143719286083077366453956451014737932578707309585848377853506787002555520962741872802253174664485937961369410172738020096125882193856060452772573970648428538096223975882334898155855866360526789372634199291078906767943711937955792824790017632617899513556571350282064877235000401305987600170612511621644956803032323331296263718175974727878448950171636098617044807545110647384718275340301844165730312732157360940766835916971583446549185710417269911349144708719923719297295963464113486010185349901525527180488216792060608063271163677110216198241294595208800262441858400761939058270841062242503667496319129575308137142908515905266366987964943813557830865778504573338780996784713408801675900907837221046267003513341753776881148027104746784959636452288429239842898785413038113132532002167187346484190126217103492398566175432404259906296577418937553103753296319981219722006863529782832292550610522118248781469789692296028741919000289548837378784504141207203425604712434615581007318048414630305786864983528060892323742831671699423856512762233343237186929085548419686968569051709603032700782756698085359868443822970737744401356268736617835680394667276630665130559014423371349418139189108864924452872270893837558033074388511980486034210877942179871074636814211671361762784426072081073614270252120276279954277453188921437772203146878684287680390851264925990427843739731786548524549140815663668600581180693717433601166188836769641226334108579187084169462981048944477182025496770813814512462637767840092753905428808319927599122450872922190183917114203673302657044020533582766159854096316568041709529252494910359647342485820197645404796948354688936543142379461142851467873008886158478109608590957273610510760288604869383717226856873220464011620465699752398759921807853039278355230590364581332664800228440866723251960479074524695417382546191471325099339867617005795846150634141903115399622825330793569515918760261691737863389492196414693062133030328185167352926129955043398702651178034345122998572511192843635615969676559123749040653375800428032045828580303356827339254204372719208750475631271794213470076893500146057987569302903219891747068993982800764564774392523856911579266346838229718055034084190122355677667366762574434143542437485620592092573193420472654674371379209085514808324234727251704366593714380343414123169634611559714576218731520509661509058183334733616706340257331337233542491912828558934327541878984190248300454753240257627154835506304408074005906936413191837129477857182276941019147288139532128060974505964756891467660774554015128545516426291984247275891311155338486899179716639797565339566620942859100572130406731222490193879956616901911322794840765060843923770801877861209642644574424693427640338908690283853592482424944097400696982604830360854005784306577804820079125312308244034805563934465106485693919608383163115589427869711115216628083833423049335215265909332798594808238873813004124623452910347335241895784123884859530380019848516499512583258751639514271956066210828202814618108339366956300853839715901227677197230199423192733571831019804664191987508655064648043306466119338458822664531364516949013115774279597127523458323819231235376015701887510276160800820246701260290338539518637460005288554682821382906120357584019001150557760571629313211240724404633610334361141274188102353953133856897067774732819669284556312653298119606653228904853429726279439569672910748418534134435291829710493696974849967343129613476595617188468306796039497425025450369781200377171640547256659288395245388554005587101371513514695859074510411225537422876067086582522292660027584320508434635411773398101884350771835385656520026836623069347992964838424161160530601215371608942944359379932090985272723997650521891718935277600618813954353763482571241710615502431334864883846995099260250682105757100408914605458150174490792754199592604768698522087595044578579223141146179378053704883267614697575198683282875448614958979670988106125758761755291187782531604610843212368977579841793658688626153130321931956595228937155592802257098431378082607318436741997905098632923741698297231489907875568135591563332895713644806755171417651458525933164457856127047110544211282573616714420698395871068638001858474638906138106767835497447365384696233336521994659894735741941481255263870409870320104373535271735566665174392472155990368032402838672448913234124736614935732439886093743865335872862157606245355391020931452736934029408187542966093967824064689373023932100394574953658543807058412694823242764330493909714541272010581478955593885714591367345460185897421388446868439147498532915662682658190589611710144204358175321924857355249115084969793467935777771907316606009281464565166586230248213930699262123411187814967601714711485765954814064175606019110343831649514880406892160706882115443265594149126258679989034496878240229703689438930131128661658764020121755247453331861642363844710557851954882403770738519309344426942143627002481456025994303954065197888231312706042579641443272483211246463146254806204639956416938997536005526498054445040728505687227909873725567973003134526410235468691804284549008109993734559508262630135876433069390713075885571634812896967510150347298729620417916025205527953046596023942803998200794753321174089647787338786875509935381257556094964668442934040697180988270603519510141488052994239423054247843334037789123504524654133693767221984570524552852419909164029651850748969574418149879559420295930218554944836453637005242733177512112463686654911090635277889614789774873229229938721498092538766041419264773307116440274919680956247379761793943750054439008958767506795157811450937185608747501121477098205207505953724970966865519426089996621478663929728116332870705244004900149453460387178521146103320618997845533001218553487062610981464869726615416630902231473060304415049088518396518267368901271865580152328438038073813669464524731785556007440928153653951748313179746838009455365319680933507190944497430661611822391388056632341675299926624126692401569739357238668391649461535348879813961582544617847184206941180688771326807333142980306240144185144701230758279505312328667595590471309431597334059989491677146146419502510960056731756869615064686054992206143783647820396958225859371934821677610557588893928942509563909833604695344728608839192839848858335495174653671279349252212406713954116538479652490117752390123657655262088691660899796713111557656029582918117235781728532904599080730125067106504757801570598405249897525942510914549531768215466824984118217781429185787402727443897400178964772136409588349230473538878947601314890912091036610524428915174124200395743886033137728077448999998339036298880792417312946980807410294146296867847698464323966034372935417079703798963218080432120867344820250559940845818225002485697548913845616475925406967756175848803500653944420568385624666235492685601005005045621129204569117488897678083631998426414225847316128683117631676541439664451938320637420921515281641048722045912357032826284861017411870371648472146696683913393475962644910549046276079112720846115323414019079198641790319150183333069537157039466722094676841473901796033860575824315056925322333940176500242350843354706020197211214104469110981550245765094073362397979749848121920687542935695751533974557455373239644170980598392575183498388914032426131874816013288019377538817115091592805997686839077263932827703537703174881970242317705256006694359269401015146255402892394595017435298989944238433400943459626904892709174849220348456946925266370348077001845986527468798077301215856406727094788820698555177884545356836128191134271170886432643755676156320888681869460272675234214414251238395066267168592861956182544695746718016732630210602025162004557011245583727649591521209917009175631157604022745297781341065135149688606383101485085208401764281598646321246512841010390815313183799628021530038724254859950094547772487018444429451795967180543993533724503160114097575228995747301195273551805886045375822891469025799342009107561948812637594116056527780952778233288050301405520554463985888088304928171970490513536710705194139398938024603398348054161604016651638913108223793710632271211129570123081786204469484690216191194333288432269526752095821424432321314453311023685470304706772455691036142413044164430106754606202854480404082414631450239371204671813853499562086142382997199923503553846948439715943365334925297845417218804705104199383413654529921644656606368730537897155352681722119215101129093483819558270803955028761176754794757013688169461562793744371249013974386634210644141699728180403215870742455486154419523248521167283887604423804082747857133721304022849710604410414324985261454251671411917775214059868149541414284931936957991046503987552758543396173444590070548646848415787691364623104303923042968637681612644947190740450628589554528262116926940075473358542036878348568906362611586503241110157018488630362734565605145204665624496790980812911167019865433652754128907438879989516142095358628586591415650909405620416495234407753510457067770362385199662054999073283552733909314043577273600366747458862053797208686773394451157593526568529661463986560453687091713704907498267173109731726989222219607323162428677405288511157974372090623145220112984252508971174117809623307078843029938924000024264634354101725090554595611763274268881748161673457966227762550601098982142232878040906809308012885907484402819516105515907334302363390098426836260010072955715401965660076653365275894188415215492480905549652329659676546578469365747309023599781700419546516401238879852663358072330953274142490074845735673686185650147371787080432505287337839539351388532217739151230905587464490902491971044300309098146649446647427621625052953133784225824408882058605410181511476724949303276188025568537863174230006036586866287832946108262264082716985447418712222004274529820244757724996803890242566429140522153506611584913580508393648648282829059242768135421035918687158463390975547939886006712865755999336259717056443737419366576234445092201786836774789096590417184261713770182330304254367039007424849988611696279342975768826720562546965623606639717377396994480222163088162313426527301228633062725717086780651827543056534045257850905797372741996655639890400759157122572137656742091657411835598765333732238280289746439379551183271177140080888692935398613637789708885307889063424328550822256046200752527768045960623424584847575398385992698548400771105354443702473642856046590813823826342654537269842855848394574042930582198789403322587190645956948685840415603434105290985074679850267881504768756851612980704294916153333108479007451376601316902541604507092354621575717526760202147092830705939629808604293557814818698466312672862594635617193641741499941398579037110034107228523665018596741003085843529223587634981303541167805300030693104656446965470587735389801311508874226049612580662517411562769817637196460721248954624323148094297793774435901578740718126814260694701470121893277683473286196660297449255782839531031253947772434217650557044406941371749970681250463571651339270649123970201936158502631085826738894997403013984976373824557949698712339384535954552042074023849868089336433802740586296620727845868859277840264904573471250563520606829374133878987300116426032641350550664810745037850230252603839763401139467114096992092978363319417583339570006488389010864377925234660484510295567908874699246588561516710765989230357763166607109190544257036223763718043999825650708205295007362381226467524361172862518966159254422155269030920811408313495898135196189254571349076754054434827044286366589515257714637549760473555463317606030893052711350362653636109021841943947959546327960778577796920199646176722810952552750084377276881736714413203071877027955417905442576540876563802002412511014769048039799236359677276318254486494859623234994407069632434662775338481625263658446223194452534082263960649478741177349061109425032772860654368623360823320846990975440189642618969663203531265239148002729883042269223320556419265677092341938112402955021950597145551187074281466115021299642906496029256986358402188514244385308093553719250469146015867106875459230600091453928738839530296495530462501892999486475169139398810871844329047219986204154801942283938490178307350683578117429741494707563379865017384728081742853687941675069907471348330986896835890795540995991173839360616659613494325434228277747710904783018917321301674680396969132254400121547320900336628051802158238693841849871940705968827886272343276375009803868513532038355523260648762929316240795002901767426836508410539838086398852749548777590528425950755047664991648240664147741896702589811727174284419097953121063677434892509761356968763531004925101521866387027920936011732511142746955245517734601361262464364209512612078054044206203319441768661595044678323351490677950390005916688785280037974190107337583787321517868909226345535739935133295395259266091836675310286418662075931782080299216281118887523179956716878181893480909395104116731241668553668311080838798179601601829446285035279599076754165045163476600077564329266092749312863503633453278078145301944504977006587554548571478356157464353669615922744583010274729539133295085858286194759289476211201188871731448410622141267567968166209731591080586237761520029146975674225654669045392578174477200575754193176731481873025163117776110513736508588709796162582708093142948135512402636776826160303081373173845112323617327508195577083402473174412431399193967633760317038466056663351936072440350945907185482078241241069860818434385536226285552308873111721009693315816881413179510026051381709374286148579772951934322135409057398169784073651180494689096283069428955662367435686505880430886824126536213097423203273917704146474583357112219375272296397868046701203132864239304037604188614713208143020919305595791849589229445596868216745271581463935972122202218606811925242464171616819924656715919383665286280283272343591395135239108818073253784652882555889918287725495085245452055912282242132540940718627548314645864023356122023694736115496947582482410854441981601865780013445711095935482879091722803809792472001279343914523011733791040585571727230628537526137213785897227383296694449334184304732484150337213108228687482875248677890291979476748101894598603614002861589293909013342908377837191171378787528372240267461187472640042661142719261928637327028641649566099098003341409304029324246735084352669710821310117189199582932698919162349540018054289475957503080011330690983896075357834801664266366878972314916499370204203158625625277895770409958030311338939078296527157159134028855111185536263132227366013474870376982153383857848745927573440661531650302681035606718431199514838061059279714140577193229560391823903138078218188903794791154828174677467985283940846140241863687610050877626169164454623718847259567625985288936832910236335624894004050560174191812161446674942074977708331862806448500561662051279040678049512632902126153138192205570080328511653122974328046998098388634743749528965697608484161038401371104559655282624431740477133015775419403236284542718434995745029180387154181131657729612547071657182615350171324789687541403807251347391216574832796801286612550970066724593063108679654410330446504434394704801038587817145176689738513756312650274412182392182623529198874833984878380267898749768655243736400734011835108101984677529593147416370312272556985604934052320446097052666516057623733506331198993865118655395641245660360064327069613894826019974799017848641040968705411226500494096985995370763383476308697665533798997000706413869362626875520910535909875925760659147263241339322852847423423787317339667927525722016755735125771308433744152514044634843048049756452506576139970319575689482141670979318617926662214029111825847610275678484889568291793955562001930148005739261217753771123625360655610593431880752972141198902285999500856299640741525105064825716686335601037666590530101244275683292778233226988077771711398075985391349148895072650147068523369975410590650448725164385423796401019896551934745345829371053315682943312523704888850125555990454957307542349520355168723850413570424758102301689573774717213790556450927218201699179419295294521830236501055348511045791893796308248637560958738492831874269241279670839066276859769138137139393490715213682086257588292278140984287607038950124601225920596834482997160592078633288883377821956437669786791514229860392116525357537022797066009387918589754039564296658677319199057339459915968950943087651442303492039505807502055740809771084747340176245020999083216444064233007398635235867213179493976055157600884844203294686465588940906410829699006317762442578733557979666204356147255519723136741379949327964001883454905961296548376021641189975252508492661204564973608058891521168122613529828984611140323046846491182048882605594237277491952799508178857319536937362479163666410292681385302495538170628971080543071417954343821127296118158100664284971332636830764151000548437273250495534278914321956612902022871574406971874488754316003914324046967672994647646319763036275656099880291386870129346616650581383856612579067564658797348977074179917676191093285879761786894245341671381977645702206381268239790083233317074886827097312364243514780776282284567826476229249102948845359639026404535269344912067455899179245629683473875587984233875957819589036714329211833508249088834435083457601135699347283807731581326564183795646359926515064669939717262122353161329166980552862491276189405046092041258139132932685963450768889797099536794388724449205594102804790071174442354245559790215219694327799755906435448600377281768870887121582475530168886657635534740225166372219235116369343408747844043539417387913287259015713407778626623593722099095458590935742946705026665373272328049384339390364957468122965244892828651262476267731534093153089981333844630334291538503139683761346338151996245582785983773961374020308148743576970609003032433115139743803581334214278410891804618747683748499363330566776588367967955130776194836232843083931944068489306003879727754158894699951998912313759657254840081391364104308716964097924889739061445370866197941522225114841247921560359713463346398539088352604001687063630328716373792647575398887143933214173986384609206796128842137686561901194669225582413528000486341686703623077820617754332208075622092106321873452070642811324166220461878980720322660919970806230791640646471436170030699670056882810099859718676959962470338947586618740022575547750792709414514282547471195348530866140030332939289938888109411212745262158478386963284884434818507046588509248542439560528256814874726975197575391483086883288315966515603460840740228747499182098135495017386313394971197531804714953421371369695002267508703452956814497694747770548551119117267562760801443075126440861385868464298177200012592280536075108970730840939632076107795128478005376118436271615689616023451071324692947183279640515209936062566008325269433335805487778461766187711997805561538179142669473155290115386943928535862684768580327087995419293821619739087604736380276447627171434719723862346750211549939631601345629842523715254960508893521098597907574024539333132736963964103967755114183374944554284705391564114692283675544644797391147663149645597067238650384440965820370183933499881722557003934178944024273905465559969730637885763656132535565732229337221202732189371933564521322939644086841158265164432284470072840699567162889509020840723341997905835350335703157696485315908775739751113109043781171375018767285953430487553051180021225233407091630940778011524445137866584278418145340877707063170313099622101228939397354019882929952757284566606043873965109868585626788686087421916111853028058204350517157768777346101591163176440945306237450007500749812915936103960909571073499550458259704321204128736501068157866781927309054408479588927253965073497103489870360828819391199958717799185775449669946720286854485127536069813626769313016252045588589764266729560500348980491844112437944439038453358357108225221456822070832526856275035486411441810428411245526544395635206933718241289118453442006307764884975316526996439745948186813244057206159039793778029080360044591439523778359871341681239365332875190491961058237017593764388567357009099094653884119304365241348008884837021379197862635018835682950541111674053112965929246556429401835289487213156116504805308208492223197738975269281012849818285467274793515374570445747363908907917037286721327945761386251762808481380627163193524494167727205375171727795138915685818429202833760242680777365925871130942471375615198527312918534256321264889520566185283982179304902700075988450133023039581952880541125261859579597003605171539117867759203202175965895854214447511034575150120140234972921389774772328374091497002876703975248289174798290175620838848136520101705662421359178628947146414944840477320743503235134291775555344326604145183105667885599645912711870333823373163609904796644622162153441217397233007647951332402296549631786450479735118503465699638846182618757293857688320040600682867085896677470567214981964661970026175173195259712360987287257158880760555600083582364946683674518542092673372031690308687897608392314926222802411939770280817729266425644121417861418100232721579355819161893075286760398335911396132403078153195828169643399927074840514165054211938447839484155993647379705922129618019242250290648241467898273280985420438155581259051426029224408359276812273108156874706027482550723849365511075324247098022863959272584391976519800583953407411880552658903283462141064603698133274649424936989975879265970071398092732640439668356872392481313202987078186405450548490507690781176186523566876583255376411543647456081398316986246682355995471390677370607594369294151329579187559309726323794331426407406897083756936655759574817299207166173349993052955835290177752885675504044256583116959509754743470832154553515568203565932526276448364968963576070259486202329022639835967304932112036488644129651170259492221165112900986203237013378348998631382798679734002966206454545238714969363447163920717829124005219863059383812752134209180737646226661181376940014242917604230482864742295265972221923436529844177596204969017416963612113902985215171702258417902690767143584544979613581221555631697998013691426778630172668283356482009948616063932733468909009951027271648999512480921585000420450078304712649125014298233971386934051537740112503921764250778664854737957008806376762939731823493660894543742158067548915255443420512884153822697931714414096175181102382355600356750223292354955291034295336493535884460049452334820616581412521416044217943834737330356392672802872958543918649870950640013387044136338823361865161752042255733428761466534515706743725237180515024222387261579554063193806621330878274256116186952313990647266136210365436137381541521587637536612539325550073670233575649563054001726600638080623946650551322643171358951671196351451594042889739904241897761869477374791407437178836067544188881678268312763102243559495472872857067211947607850863080690968018604261876453294119854960676751973197752368395769177148698343029663145280787047515874418883827080944720703265276113278755586944626027633573720828855256277647518815504694194114024195984020377370426498951917634381764508255374168754956778495593614582908500442105595020944582140550851757023924612140842916872117372128364118232086118734361147595568408427436308380137815213252097501219515135872550636495501183099310169552818275567922260384011738694145798076920040578660174302918050141113589007649272376016298468710224185719687105246144487761264628260682593446699404830897821140110817776068089935587334745802488704204650606567723658517494988581244903884112104323874863110200611401162004113321906349765641748447808766040265287283732066668571421891427711947785061231187746782403949456936113370121121356507510855553925303945534707778763685036060588598354120983298776510899510824368145872608338881836600752446757982817167171190647444488898419658364246548483750262049116003067967624861763703568406677443346789745631387575296791998553339910791703129516909861679307271206160596050918449243667856099897340886211987242418116672187704764686686931586459561337568382190099851192664203422142849133111149165936893593325471343899294704541197300381552573162783884866384760903837341227983434593393623995014751073262424928703338432146340351618040792271771924217054654571119132337044020161193047925017758023796633432532395678019856951575616672838357113003275794632698458726864510656815101418312781163817718953318726972309657160783195617412604537201654452123134398103052913705037844358334461527285575018468018985216596698680991686135987188533839981168644670873926496203266944612510924863164695210568274950988596047160198174325118225126888756107350289988499162056349186555099167768471782745080244447289214910849986055482461345063449465590134789186597828020569927774728819776880180102297809800321068863932481359176113942476084531779087454871611694056057898382468586735913389565748682612687681585892043564938804753054853892777078698515514466801972766232009515140573884082328914781754697054257238876879154538893626257581215449362712781560893121805920743130906766158248847151400150210288158801247210586365365433146878640943464669940107650451537547389733239808202260668833665570112204182893153011217187398915201539062202602861747137236397235556371274910927679153258693766529323612431582696477538664987086435764433976235265138469937229980632990118165971776719427286212311321979093934517059518474903958735646899865798516755269096000642417503544250817952021820490399300445670739903994217233174560152245321058364030029141557474114341865470319627721175539911387488274161078603876853856766241850557769707352059835213536779760727296407820106532436823725514319198562585364012838672018907969726974177743620018964307232758636840638307929002616340738708119516633621608347951435644259338791341136737546236474180006054554115464144427564389216887054682402741740095996904004701653433791716169182625397353591291100089641450079944268267613287109374977027924901999508225456872599653091736747005139971983225709055276010192357571679180184511616846564027303628780264631251203826414797777343012159320780062884845087371181494383414200486758033767045398714317809894304913798998473506287052341386303966786688263414070713787685579713833546394955967835679018568327995881770690868982745166221285118197432985635843352726214999327339159735667598327158561362848331255719733261778203216762919816395300261337007561448105207176054933791236669103145815176910488966365311840088725491153927068507064509170251910469419193577881154219607747032074084553437930604701493223730828647673298659374275083092500542907069721141850055123764066635113328388874694559244101577342695848651776556511749209859259530303483645695455741765446391222188533866035592193309887837897960386649985794527838938199460106546774774766805269135729586743490358163325992783804218979599841960436480667282081454034269008706130369117952200831214707152189105961168981601154904392997704775157794623170248765865155309555974568491721785495976340053741088485890696967037718253078533818294449216477803062176392864396998117276378607958251537254836941668994827068038876907110646652166711097570029284612084383484419169011554316869108289197675519837253681131269234322967543899229617491448190719668004062003598048879255052286818999076682123819424199946815874354945462561631098164879062299924226175697250905572937658181905552454654209853106200149932053811648362636463060713507940556419222677593087081585806042129769674087660502996192048659263392698056004830178483059724866478496980622207076575466597087321422072364152033182146398252580440838398619565044306623757934679484330459036593286047332393425035497578274763299039664521766786648697348679917021647010271957735969438015992641744449461297866206781439853748202218569651213491355662212796358018924235689464304844448765184908023677005921909277119607367721583693675776128500581904198142260185055260009941063966621534584740773158931858138332968227627100826184997940229893666407445431302836834892457030081996785838428435530779734824333005351973872271488156990243106033511224002786280946079131222022507106748759964216238416524342149338020674102379544211238669800874337743276841373114423804549198137643849729349900337637587920030268222556108341522357393265446085190135142570584168659539621942965667504248054150593615320786269967254281419578077530214867099688159034417946858777893360823044774374022140976836631189090544602586898708118378978092495470010460198533995535315582855205257871351042861608919654895874706806965782050453677980585293132880963194339733892636529263637888688910827753432372708446384919519573300280914806826607264910530735187948945652944609878553577748865392956901915765641360962206851450102948511369695100319176424632848522775522072471402726544756382622594583067149251330818199113263416394591195050174047368330455175548937969160969379201626308838362248427766628637942744665729831191098955410941268716272009072836961205076051039490197353964993380077376379374955453462133067131193158177889168148919121362770387468652234139259746847705314432523889458623509019188020569252478798263226621818450779737280107380893946872901312004435987117925011378609306607348360658438564082498732507993224207012589190193602164802425307706069796457766965235460940575311481295446218817590938788173976411262560781840032292472324145608058336943845472501644821667778681893308528261861787433443198358805398000229068335716401946071769096154225758615030128971095051400994056593005936011570498034825096727093062881900061873903695708703718193320640100407121652932204452812872857813922963342318695351840992125285679575659354287559516603752091224110880780892696116687918700406416800963535886067119385110279093693321811012691821108752305462447026863441047608463233502306325808476540450195328498405295989937972022636736712805153771698363293336579812142588842825602601299964255903340801239931092451583902174300634329378166076843892789597950553689412420613175828855983755412227258341619686519634499771130893646758532819502447914894739335454496743818358181834581407031875265609625271083767067186711468957599186486301778169804946704457219125523525267875044604498844242484622073672490326530230627750892202905254755093517307160467158154725890240327706954853608333713890965952037183306807174089494413876130027162155061236619642071430934073542092884555108156017093498698324147923883995728839029653232276080917238715804167507055662638361303469930896173617832624943159750559783630592655480979007606986020788398708645543141926468839921752949307747731806800503195822023932167444200595838962571743490655884513579569815877589147832021078957466678200506242168893775415254166310627134472091139191295169514155805450492542662278223485672102478948786314912784286793207429846076451847234960802450847400503765711599047054214847207230790783459189832419111469969092214389083281688858462745090144591322518223254727241430989620502139125462089266747914694047282280707560613148759470716359381501355995949287239126028516734031937041327359624354051695247248733993033997555158649028606214226847066416467601210488887157928169992785232156908440964447366413372382090509292176680096182058294753177911060932607872846192287224217146044476032802866250273952918745032615456531641725844620535772800391237521726631470961951279006658783374377786198069028905667085849448994068518238587708450087469784513515562661404624568933584012081745485072227600513688479281019435679671205021429335331284840394053750506864138603728412910456400640002430123178234191873976875131767277052977050078536680676035548877434290947575409972804897981433530848790073631453750495431474212353090526040857336392199154018281283072439101883053252393017141873194364204878013236130853034385830085829961268687556895375025641517299505091947333416312110551082218078129159066519492623822691300438816194004691718048338677435871819239535477755225901013893475496811013920152800287454838085889962201541851318022917815419087443529850783922595618967464624747149691024249380713272261035315835578888224225763368583084301244272556441122000648004794050683315274685990129749100732623332927463748607143332036002290354194468030221389065435931981500569692720585047091773401785956869878294859479414921684226895393804446341227094194040127904725938036839912762150516185338233214103859747077793139300183787813339252562811549434069284272857603112681490331387995086616623847119195042992718384630277200734413743258589493103783796607496582917041721564317485090237946500921266243818251503520282751821795000006197843090459915770694797121232417891513053116913804397012926534195224545930469655237950938432609391604721156676465713190925016072233637953187433909469022629598341507547756701813972127980252164468385346156891318767148715306406465951763978074899484500884552249077195128961159613641263726154800979721368912584657057751598347455919670458967806903508622865871274958516571941865995247165713463741432536425598036770458917156981161738759713127894761655459833811517721713723200136419392365136006759845220541602286892900122660588987010575454321376959545159447412451873954798966615654220671001178948094820876991718411720652146442325384958116799870527375295822314960002731919856260579243375160379768317175119963019338063247444763904523745547982190729645825321038789141538894677205340570610207092565739615722157588176326671829964851018951560067441823614368766629701346009262454805499090360709664106099791866088859316151220722195784425433063626020337391583617556057633947659213361592806230853745959037175194381499419254323134138462505257198329015929185700392162958178870219687140674320153609521303960087462270415729948690869676609563907536162256290861991305305923685635407980484542826149222535100726660591196631559344129353502750389141957257726746202480276443363362222308487417699012910880435377304860610183158719484960821653867118408168833341202343464363430591100123825326973298875116467531472493526676946888059969176572610913753975825968969650164472927262477416451688233650945354685777948978231779861380172410394118281807972177789908886298323229673069696436657111512230554682905263813374858548726237481904064662055911244770531256547710959209750070857438372629582551396806686120699647325487672039733319108381646079580614324861362194686417560015565149213711452195872878974786015032977200717188341313465975296819571670270518240888497373887062702525735264050331986132041421076808340955118330498252349266349627808526161652086510113579215421371187509150574191170447607122018109998736773878508055282772642329728644740042119397799494239755226507590391902274079935888095437883674096340416153540010694209425919394511078473323301599761946062909383393810720948368010092906892905441406709381440439910277742445883576160005079165874665508069936524178259537900863754352857042651982519108490522434070848695150486268281425208535949254074781798385735834312651657566360233727971365789314097267559459180345059974709819023994149688819924993341451289830055169975713887068344092295058004901762329684726592360394924295901661537465278007362735909176526820692575167797534247438408100047591023939665610627998695339948103518407849972269792506832001438413803431069515820749676907882455106791303120009547460535702130725668978866888152782790753385155289057785372698953381835688753375034055919125289445537281502783896270591882519967545483031674687373709929488367290148476236208026357774017558363435844449143128456919503608137771830046774121940967754645414730409040749802168770626121850265577710211505277555784233843322367436712407201655572489566546196312179987458578499980803623760731427505703743643892502432851450718959403242922251717061636710353439356658788461007100100228761665888973633222926376306792336214506441702994123990751554894413744757402220570902245625561439917342619659128939397932462003683699106137429356644083675788195412750785293681633886625541071672930961116275133024099326128149271930345284469300658228677627238104197179981772907984585305867479452109385160612778529988266738780880519865711353637159888419737663384621134024993440951227186451923509963416856723191080626706840562591607033761701792754077616939754980600400639044795939923865723877509993828542194188910748837089945459238091375529317336925266953843400834262561547971251252308882475632333448844819117310582311705527019651618385897142860508538379160413969389815425326552596650068871081216086308932707382899475945003814550865757887834302334176904420273933901270262927462207241255054406278793732269584726747163043907143558417989064837058841960088594586316390314183211826910756275123173689563441735407706687155749330216189893708475634183273546459664586213337401362082001853782850410793366398227460440503439913121956030393149180602768109766059780137857276546010409186014604651856152541489062267786868282010323438182349612472791308000591864127536981222470210497474607040485674151814025948843389514936063691738666932375017376275974434540931925285528872739964934682974232831691729844028412455929259301120424925887396079681117774892344362430980381892271306595907094016636310248801689232015744794445981337131420709012970769595843597501954107400766433266844196510480119421336067570960448358815845293911304560417696413621773950348211825102729593644928200978142501900207007536936257382825632168329637625608452909639000465937244731819970458242987390665694892896381934653780499292919238158334230609581893157883710429312095835048931282342721728691178578682483937549491695067428863568174429264063197450962272171033724387081468456572244705368625171034573600913387135592961809686524582578303987086841093928223182878299913677045480303781316961927316284161384680998364561859845055616162059974935987937086718846683621583500806485929292895007801732091584703717025351329325332865088981327165249001685243198317140002585255200464264171739410861248956370497037367919226679430555806354777350513724959502274467815732651601477437554949057676730923617415892393276470613318905596230616116405571088022370378884509788959558636674513858715039837630905962098059356001979370800582794517828129773634074815144080172197169189985412376844270702079541968406114539049167538195612249027428896143515730714924535392315649510505009595479975637899639609795586795132062581337086224845024028018718638499975248115885205351755598515348461083587753325757109873323531968336392361256361293976396636423065114359799594219709367991840634508765627009786581847322358560312666853569864254793366247502778663651124585611647208742057795932457195416614683052900999542929824875377870896339609639090699593488551221015500164385357835122626561894002585876050338432817570504428134872789719552024722240765183818719526769827558565107755567454952097846876839252859798949238264482564078646392563017499596239305847878757832813497022315712616433757469113481678510646336943882857008515770149189500731082164339611922091963595326153428402806533658236656867272040680935436098126753194184861637187237783150467372515048171554013390755784533715533746315352413101842015293403740740883812539987117370202211299900122401200557008730424972314140536251438192983427147082874626392920603068303992253824741309799727971973000917924977240872885382110076176695540594738839660703669002936046857047120439175980794002570036963948647385232957032608307814333707055875827656772933564354470857897129020986728186817784152004111962497657290563440856365320829922804481687561333839255088414783623654612796694110109771874825769314505899453003909571364728591792047978758855323342176027739995723457960464303949882005837244666740758672000886080165086418341482761280410873776490678413257191974022211191306471153317034578108568594153030172820012478761186733565114552015509167297211211259549084382754593447007367367646202300269656901678188163002619899482892833205634494377598461168455607455648776454383277700838296976407701867789274433620225819065101681548454235105232271343740597809033515477297795333892603525788228753051218957761365337171561041580754595131335947244923662741026459659902066418045859713702455158332583266979313602638127983026753905967600449598520634973455892003287854341083015848265405365995337192227916384914405443079189628162253384158714536359704680722136916612102028429528667157246311225869432911674635454055769971032111773211970141266432634787460596977890178483212503503854617641226948390472925696111054141974350344222936228769143803436379415903838255402577778971075257995208082401609878008855668983876835729443224125063504879804591796474733993919937575603922893537866703343056199290430217589702137826255973831214096364937696185425034603898528379802569138720428170033580199712075444530488962771547437130365085764199990666797608264966529114335111963137490251267871929502379408769553825728498997158411738231877266493063209119222859417428550187799327157065316743344435263720867425014281627961520415443226902740882060000680652586441419611684059465367746321114940832607640128461933709161892789478344500467864857293669251929773928693753138366669642084050401425559677058537191245532748815092750569511103054110735746076637639452981231473462568146339502694571809640687312563300414108964108912179933444669517735454609393562766849294457957831004122988388369769833866588860745723447872862248967164710592992039353555948379258710970670346728578877982058148194542104595444289822284033136272572438538031634628002204420042595456373575592636571891721557714173082331631475257169350066749953674913480740795849785498454254292742643241298053667514266850786442039832647734900247176267028208555157127645441743432151313351196037229375434892279454391384076169868687963627983709921300257918602539552496378537124567884692133253681188955729784525145310668492533748284527842104597861926523652281607328418457027159828240306256060379943780191145600114973621668967222165837372271457498973355467394050609836189289879259540491411604110293231792952531171177940268275338158609711951973341059614359060052390851266756328227671985564171422885732048600469161401190694103166774820048983418089515936403251789698877094458098466152398713907266310774478819602203703464413953367508481478423348147390083368980580084467471028121027310926799198579581455945306422345726145369272896647658300663599024995558840887387599523646519273855366015720680959862946809863139270634649038333698837222245887641999085771247675088105965721037979235816153542131584769161815449743706516211982254400314457120547450476721263899503160377183779632678793682928076425001396433556823906142004618695970626196720378328225304517766785987670863459470743353943536121089534790521487564813634946383075816082028218207074488285615022895005616895138328801996832676469654846320154804542787232494323875206650835222163040380534071997410932115978426643203291213932126274855201790030597373450106161040199562690122070752205433034253309781222725034413024548935749805384285633522016135595159023864772794557809184298885701724658907817801283829108117611649359085611846883797321270187321977577195436774860762146586842964164489952409158659895267725321857152197284173822340128436073794076326714609975228331737681530346064057233024202717096494449265473834423560670719406089929406336392023654006311740115461208278461711005281665053962166878784889866908104195056191567598907842000036201487019582875807474016343240803694377123610298727949035081750716496783736246230262372613499814759998496435798073698055555492743150622140820993360253104918541705173570492575018422640112444536930994946610817324240350506008957792448707021449608086867023661077073656662766401868387261607917024507146787567597980053006311759799878395579458182635003701586414801933501671855918549964081049194983821769005489840873666569433915935906842421139799767239452872820836407410804226688661319157440591751863312985662860270640486445984116333324691773198447537447830310732341472923660459132108327829482238488901121261137427207657618927851613288794243116971579751213398237852295626310825735186075498958524974150246190697762105880789666141320094052626800581441372898750276559359492755721102710932255720018373119039515700065174556915979765958920091669881958490129509073485558942803772400975539438446763115705098689738087959838535115255649063376634688976108888611377917965207784428945912436894760624676387563292575378652926560592551406590298666561909884777994374818755103981830473569311599319965924613214630302154928414407489251403017675178387379945558837002104661979755092059493986064123101673594319242544936346706970989580875472948208826469674235169289869317346092732031402281941182009710258742382246830708788942295290175420413511084308350840764876963100754930458118296788362947960647381468437097947212789391606711330637816664368281920643077179337967019416040419461616314823275347665518317344504862284362945551601324536525144326492555490596560567604571766035393518481197055464133118316093601282859606196994092418827540201810701640139800661330763991936997493261041541885788471906464946290845607736344827253089776293457134175478932717015782209078106861192458127254879761430828567470930243809905644737594704288480945889860931131796096372691542074724804637119036727380964665611396204692603049859124042391059043018174179762083775064348293447457948734779454653585021570035428584099222980181590563286378613781557463620733010311866492355309123216401507418075930949487565552273988401900132654212733213057853485912186849796638861636637742165634039939455476987142610293561739132711143359485714347990723930216599798232544563755528961974678369407784089579906503900388335997852868163121048387151683897737363472376215558156305208244859151091384045601998081691420725946697955504805821102384932388409510341008822476886451006101379933279573923536633671073404061173074495361521350031325155160460048370201424055535570858726519513310690312801069758176497317090141644874767397615499278312392326245666224455373118328656036051792408724375604323332025906867376044362338777243140812318848313133545696737244867354321080281341809475602996227334776221001279458408364947922303936240054446591558318661956392195931327037379817838670543638209625765560586250219990079173329296820972558511210988667633308480188077071337345054933137960139407333047386641572020744698184410221575833473749609800185993602826525474233618477176746919172856762292308915300643693616521515637084347081141684499542045177123908786233329555900580401897914209860316745708953506408065776846785947312507456246853166289436223077665657863267642576242942107758062966162746539029245817175975285219718760070517787769051211615948883263499497088425847191911994246369554324088836457570153924604136460052039775594404271943425787524804316086190942736618570603930188787502173340582091515353299321908919049008508812061355303958454328345110522175609667095220791633649158551963122072536518669445040471705589467626125254470581732994524725013307906306917748704842142858772836815672741955614928268442457562804335794856393508827835370049802656324658001921562172698624084146361099801754972704283204390151662817141042930063812164259796632111936334853186473164135309661495063063118586349744336312502870201302224954552032254484058830764359706054124263873748163157110567902056740457765679927298366952079004933107385232240393802327705616163070871189895066387914573675453373265445763057830838271574759334222907088525802159517515046831064241346020911380830755136672047422838547893602493687922705827746205509405281297033248337575057250008003650955847989755118063374108753902347467862815705241882677779220108929424150287173307459450763604672824595929135612210309043220914201567213520684150035363344390439539545503799700713686104833321518102389211222551352848329743523834074534964758404755058289730319519912127962439816400618864687605369877112653027738344568506659662876823564854040801556136771036143879385078641087414884147182851754572605817904925857613863942342331295625972802785455046865025071185620913532946326066152554401471638593860842035940334405447192095017957015354467459861258698055717920596124443989052964443913206787277545757574862114966996733560937662623847929477809897380395612195592202654789883826545996666721076271498484429050593039334658259955708305596244660003175827298797544588478689971809954334392039417499074046110907514267682718332197681540044440978044377465778542555153496296302345310809605601220679867572826145604556840951139729714168687157477535646250696848847063230014230485695324490460646051509964396812699968960061702515922989312887868351556513692242912653621741236575525456571969310018167233316475726532789441783860900333841488003217453355120015050020704652234891926693307233222002078221543125836956531624267906791414735376502524916412528948099477341241952325583448431022923691066052618394373894910983025019338665121989832385006028246499794383982426100175319421498792103916100116353380615449852283771467662066691106516169309804967600315102385179590395199832686128450707499622618710344978676503315863854431343717351113652317196194152543122804891621170832812714694211485202317937395366544525083216665966996446962495748331467460724582304133577787859537331232193727611513450586199984218168535173658009300174221270380613189208438462748096703761757677625343684486832399423409283264059209804373654921483382888653409381271757586436960367198893035828147453932976434340301847736508991403145190708358633447683674793302138579488813457019283972923625741912263335952633368251047082065200013157040685820776769133418235132410911643987213499801975965283808542892890394799324659534209814754012949052466691956860311861650328232593137945769439212589761310252385802990908789716492511112892297156343349032893014028740541439706323877389333139255656491741138246101034265958626436568917785186557879816902599797720015291523604644920177031661889866214515326683805010894685160838251317074094903676057501767417167779182366744016064793999554587693763959330668807454084425763729818480505075136930517563063276455502606874404609052255899840850764696861772539081981322758107830819464811682305242965777703255460642400359344574506415258694081386293430859336037458078221393654606971626947590307863224070122901361931496024328578249527409306996491439274507018364995749327642801444433270473672309340666680840890048799405447317041126704721098565412826818730061022063584316169059356160303773442444109766356068695175574904947979199961018905889075416807411154327865756856849098927629469283600369045255323321369093231210213756429104642936004926865882062213111753471009327684461242250332284663375160668662374386799835698079337833109008731411407730322322101774532142482657257412563609671141969982826320475112082611024416500681879921722571715716925469227936442075569076484537723566356491748785194530046916928569196525438966966377109821208808455280833239699309350275106395863618183698050945320501671973260740093875468427592991129640866131592939274383936106776558800412852796749558232633146371871043754582399340035005554945173305643748191170777734846175169275197781747705207220162481230167351573796107282023793058916061708046009407452523777266029891863110805837776640951170926390411129740908198895862633806419401096874878261027739385574278191700322495112703979145053530929805838988262023888698530759098185872432720046196813622172882882855332484570583855739680158567573695116888620707297430720999424540457393872475154220313761365247655488185875730911030252645831378498811010543876644581466296326932498539261094522151934248159062069583050593040987211180691003090386700825385129177137412310900655968079566773256976282803436913344125226726225282661079651418585455775051163586778120771682068381731576557141766932455949137378484534553845612275499371459802383144854430200535417105366071595485053072683528518743975501951678045179165432415040242283293616945565017469539897567217960308201788720738380181901430930639262959385505788165560412798107294848077947684561127283373768565055481590947822261368334937910305320080086575090598416321359830205991334071557936314256509978613098047651778165535755283889761041009430540759468142881336443970864493442268744602639781708556979456766072819076746931371908269849094191071446581686292466675597569035807454221026385978825473928259530999422267521902074657570119908645140922060170285904625441732990378436133156440761519486786826295418241665712606114479978528216476724100708133721511469702989142731676792050311108810110398254018182608170492536937950161729448224598487097062619517564637081403826401482035535311632554107501052769428291235896673227796181297580064898881007273625533169754034325505530370269391756119300778715616969950800199268904962375652749043906924608204261562852516600655104233925140646871604562690059877573565448642889887130287138385233435611449163177413067631095934101409047213933618115143389094049086292814261255036423698849033174579733380783008579760260739498185481750371828065251442882042322423855320071767211000851247458851565859022815314716319736280652513043386986273533387162834025520897908318745250014068516761119982224153696292995577032804466691283763730677400275860895268192129047187321671722613527094202674012360737330014668780985400346115114545479014021274288956138760967290251696027808990032537400058471126693335977074707048340410022140419674110928234574838933728177201321380317605558103738268648806319460315292246330630669352246652436145245104275668377546118563725408925361307038562522238159021123085948688679009643869497783977866186920201819626940136182915229740045933991392662111030987040138238860852844941662450072541174108926336119677720102558878788086283460367886442557066420199732533021590907182772688064656398552320290061148613761153172655454227558644275848323940746370168487655311084686598848438884948339957453937109580433670103605225150085093096649445925732150794428196825979226231737510771834678517634328003593038897122725046614001440855198158112050850424597677032949215682435092818497698440212225431100921661598641781962102542159287217634997011639433950322562100028085676726912981099368111552640464819746658326201837649884942393546796269809529728960599465125819179463769731998990387254535061052659671232381063443559558512157558524156551171382142617310619793069844882045550114700721538333135785680508844171023820666483437718606061175208192693631849119066751984549784940060229192469412813913549159913799941441460352944229949913544989063122523051696848893661319950349515107626406550990069555893453980878298626331058794851905529989993118613764092005643841994975379063418347476241573948684143064367132278533574291196188421821162028603720583026374199032100930767738532476630633710288077168431435319068286358738814359969776052179276552707823543311350741368998201443692809853089469789546707562042070600257214922362877556030510413153178168047944627351800270301734753930441432836121578198291645538840920028797559274489814614811423053830066090245714743004428974913841314786694117674722413971596225670184879523515290341907810436772007158869406134470623655522886982751080845346739661886498342046946536545230492449606373763954893293412830227643587454409091225846819305371480287727296177931121437765640396613953852655320563711799226402275737783104721318758571206779993060723707089532077104460906858733813791866246310556509690928261210201627700897920978241347343032619750450007706600029683935222868934218901670385498864781249158675033971821474049551555877299472372611920495696518336427227912183907143233172908852109072011498808263232691495355170541815943732497747298191303953043433139038642023963061735506104394789017760713775921919202050830950179215806477631380209333332120803584483151347953258340999103726545953695357160039106835857847531526730768274295110001889753728839734650051775135575196205743103581456127500611623557269338298149876553983934261430567960446437494367054164214990539869500537514041464656393416717869250006847658045479899044360506155945725016191775579427467273742211865454211693379413283670986019900134767957763083875317643250642262956064973385611548304184267997202241753147807068195630739542454328356438767609736803144361719732808562952791776451809850679144810056761463482161529044380263667475322198125206225003612440954042715939747482036750002235901316037335467706269006486741003652426826368341116761953245440275422093866807482456192072225113595622559619529562257633844683054959927910058574633030040291232401284675451271843410091139932291303760143241658886966526435245146404082346711679224297174765853740773688697414172128754851405894212818253955418893101849384217872602543281814749517737125868752921912874166595838908740301341767607903345241746455918924889577850809657721520128985519766359637253040260708122065093196290076819466675840939263562642970024840021457254594436908860700900252437839247502713092244703390443639708782483265099923668764710640156564062310650133505074573603455211164601592853806267784171743499851419994609115567956448521774701263763830185153930408901804434402718915009319316933727856734659371470256099588318150365869758499844904132873890230555983727726813032075259132298128190219487228374300432477469831693727341941546401967746305843143892070019890920043969698079832641038737065366677577599237458704877010972673861014793514605443496644542455686582486844399266459097708262195184027193106134232934059422194198120692893295702230450852336930864903325097743653679984831400044030436990163429844628722308292744322454103221116170495658098223762361616891521297250475523758383214842783099850487355352387997867549672700588014264145727521399659263769873796596808237094114197937956114667547245787913287564339227338560764233112198792031339233331848970568587069852731662748397368130148904490627271261513246163818581807261091497610038843876187454991989061356692005579154407117306479865805262892440197346932858281458141201835629618182124193999142498713802776874386139012777585942178182487551031242801068260105097668218909980907128806479930460956615584613747013054251087745057782038173582708968243511771882208664588097675167616637665216062556617340864708132459018230341050232612131003742804871464367805857353722087756998069408695520332670058626804514053664430375492715644167147615411285568784101202631556741683201167444781188783166483514182114828603040223684960331203448980045255302535588123998294393953770418878917486576725123961662031667049143616626916421016544906367950067238648536158508808506063290659949536649518812912027410156013463909495258996172313109268038025655944191078482629189952446742598686502837153035155855397266603297265930294238604413114093458994149495962315784563954496398285431811954804758230443176910902190308422184018434439699454173831677452032758140987079927375187112353048793027631883433283662755314502499271205954147320794867259195190440577411545527396281098485471627568157238874244127952028134821593812796902754673366263836075248224404365168432085325019626124711814231803439428582906262682657111568768531831581649246617748171948541659873343313406225955751802324999818206441704448716239362542704718460449135577089164664356243481191085093146119298345144511750833761851692635197431126187379895465719886310684548522726688090141316484993378048114824777498556946881357536303506635441798344205243199622521588810472823613221563402783478329227650472210626155403544065239750306649975255918458017412523582218998223196812187816139227731415631257398044254424699067513153515804962791383350894290332075283222022571139828850765861829013643721779933431938226288517499718773960862959093164981969108628619978767359318809146038882187692570910737039370973616568292606779311482012281785459412053138638624465183044206453044373718147262813491090467807336318374871911182302539841408394053667284348565657090874703888748281250820096900213771283483657892741398656059408992283640447447830164826941584648566374159835683252394506045640891206982481765369324500529036954532129561321793886890192838053847929420790342221512636561523838295442155307428435056124053955718933198341322436696653117463723365046611632463482675864133530680758336045474091175679656110432761928560656998552626739845327085124348245241663184578992601340279973989864086367032686971662662939647156519095809811231275607084722315445824005424504876400387257302523109767377274221721881734665148820660258753570324527991501334677918034117428458899397956584495293056556320390132129128091356963393803746311877783835031764862761033984789000359409140387702307771815253049006580955783619658713646484594542748774936972489153010476997520313192527042565889957892845523536194515958209634901365318555249632874452461000720742778524184903266606744872854370495286226797788622424050752990616357016866163342923454118821308159122362624390310700085885500905364712951071877338335824812313666479719354626681023662298015975953421896638100106770963244982932753851235567701619343308775899819376272343443204286833679831355735949422538342236133605139643455058572656917126259893765744683371902526033236181269435379513617428343035584482807875368714063307465595357988566803202972788740464707566464065520465588884074905006803280001620365462356560380663981548048683654993253449847723153978354661067296768605331672472106124820635655980187635537154363315139314331082495499017254089522381758134708894006209862037597886017406104665567671989281530978126093268730848488384043920804727314723639741300934444837198401989420192672130362659310286976173010199510654176846346809413695647060943825425856521662045674284449894933626998585432245628809611030300101131398693739763931104409658051744383513264250441463227956691619822227406517039516765433827804263316116847432309056030728659019983020207433050304341686064248336320332266000550363156548478696879142551428388889695575019518654186508338745188422259237851275224612516234478771448518378720978840808981938089336608494511041700750287129777540452344397799650924346686162962818650865722449123975605599142112834960542001972130140250558711370464643098562097007323191706300536100034677968013004794846919068785491385387654253024273981087510222506114639094650395849721006806244121356182545409291259745485919743685672272500538092112782206115350435653951751419881700224217994618560591055921623489631741341045250127599017479242231837572093242506986131982710461768026564890961456418207728025166689323149807762987093480765990624934018882188458123736056738127866939413590930227472530713171062535564817758127764487336966500244270915417513138107812410313647169080071656162054435843237195359670833231502795298480500405715072160957512792883080744200287318429922866172552671925774869191810803591094785432034184934066033682429999384676896357424933174533402938482063545233763668080148326896089154957529359879344505756720124422284344369186108260304849533438806345831442310000606389416714503422227805745414772821517163775169645205268354490146940849184699427983098007792271733215132893864541032056786938020920700276025975065503260292058451274470713054731435007079399875391868787106540847402987928955306445144665102319653910045807410434329323473011424600468519175186935694492342517603125391863696113478263472912552723582151496031692436481701097184164325534240444073595303949231046762461847692258474592842624641254226193308240649667907412319545581226036268964440984715337492648550346310071126027824413247753169567310227524051117077686445487269080810831149486028133678125644404672459480554037454561122339931515911674154989581186275385320666824053358649802470829736139764588449739428224494896268452875101789894555931714768284468569856736667290687484647618414841548401809162038980171233225361011056601203405473282710201662606110364521577464465293355215580696014126078133628596404034249292389521726566641232800051245451922695698524507901461014647015566651886489517552835481623723162415788549802561724475768881016977593450470293462810510669124335500840896382648416872811593017215748886878845539275684265106959968394815286284760367921928734552004051443253740140681256007922607450143130387647541653968337791086961753185759456295630295220209977685565474460156095716358838891082069419739160525753465686992177261599845613161948860934400156745429623079469666693381564919697196290088127185062500720476297844419151915195619409454457578293640561542390646317770962411697707166606043316716261190591631891603698685908807685305745789628027403026401135118964241930131838032804232823552274918010866317304675490532364823883884058982030064658239199394491197534022823838342525843857795488115164774543486026193649737122721241690197307928884255843853337219783808032877129467844906447396044214298775084453005511047280972874991369789458704140275513747876316890945108687413033714009474161845401818959227787760911425744155690683290063524839462653563832632341260314242334389282100345810249633310516815174414484923992614406773166188701602751425694359418365387452248988791592803892904430621338650888348181938181608646006294758961680433825643345703578339280845957119267998970311732206212818901312971687197070529738654714017970155507440090809800640073373576339089531841319371280279686253349775668142318479433157932418431696132419565384819222051794029525494928106150906749888228150643194801477205506728114880094287215901245584980818767148247083779990230442980833562165135597387168259373889026279965517318646566759780377764080032176307829190648735448994764527619464659034012218482388842427590973632402568186548370001567299550564250482608237955811029225025838094667564181625430772616904949443219858391473640952248186316209571028957461509469204123282693552103373253956888039532995795185125816526346312452767354360472556500724131908021466111756991673713659771291963906167473564118888904836417048167434936863392967228103985629808637826215987494606262353391448554455317594838046023878852243871917225729136875502993100926417985086024432510743542895336982051026511415295920355133049120109172793696554334801730477001659003635524111016514653381824439422988834620758993739886473400102612145970824517969793549611745320989163255300591658498418153078068664191072964424022192521190539546268299302391597145381507645330550309506515601949366469383487845212363005833473500976519579359438444659011726356626753897108689122938920299668629640625121197007203524985712938812020469981802535355793975130096531423773267092795781566735822175564912508387747198573721454602739833167779419780864028748513070825323035610283256233636009444025674756627975288593246997015589400581225854897517212211283521151842694556123380769331576126088774992215217564459524932285959716071642221369001209581734194718461373901532058045657741859133578706110189227468409243475940433788219809595604867526707439005052293366589137037992045118721959683504092230559692134364077224694325283966129583392946185056834434487947721038882953666411677408337997907947623159951433615091488595778023126845293651871045062899966656354571983334354019703237854477410373144526828475763014983203853238130921851962338103544362099325495080791623889811899206919773042754563546946911249460931434097624847710082930312804613349732007391916850559578323939108617209524009768710459028323967843981014498458757219874905903720846693103114679127204869905903278721646216770207326808136217770188302703383554630545598832016600025214099114742512870600467958201674153178125508539640116491875073684306331185734098083446013895798210806137500983326149021290669717979772775883011254294717480500763898001221242665692563603929186518822613091437376911138457740536729388898325491503101710475959223262739635355445275375873117408626048721912051472536280085651415513257181708674822498217595195440629531494552819718423097199666017326009708399523346178718539959181723486462052337259619551053686142436537242396848809188834699340150245017574013849687861902463431173137139097394661213871504221177136034641254607055670941773898391974221691376724611213725424805632551954825622125811195638326524243175016968072001612023155086582478653615789030034251604297786024025706397766649799451830732171438557371756781447118966443431570260802430924278433557740090037873639191678944409205618595114213426554546266449540710290679617311715740710637140979558693100741117297292444081975310447987662526419159056179743297455591633762992253440809608316670559486644665402568274886219171407330216826593827556873442403402849647957959798127603198760166495385139221419217095865562670084999922444949063606482821219920225128541822651777101024655775235338465824281641414651433361463884335006247833668921821790451153944126838000389634340666792150558953127746973900458559484644679086212184880558771996180119026223301150131205897657495553192133202427507694263159513922164222795855064054829665272938012392738638951732200768865672564404573422343528440831551527213554644279351590530783936076190848135457569479490088820656438658333479246958925280283188097986248545616584586489089314592171954124538766119150271420001314923281272108224356922953579546862605556744499783058735088385837464860270416374552706923103791836299706308169786445412968500687475479636415496730505716319618945307007600977515768823643543287684263883089649248526189367572221421337771284956985630619512461659751288918896938347845972407005447943641157855727999048219514251206643393014202036053339945693231048154534882256842408212377749595417006032435412691880918106494018086033105897290789108864013459778774288860441688073067057683070884847136331332684575000408211006423604229349695735207705863418669909907303527505508632388734307375801332671175847637711605812534849745431822979190260083701279955122571314740793143802326720445582301250413857986781382855889472823289275036806253081634911469839664699323835073642710232966654309859799133314123452563759872877276498158304804432284888384027149712495357938877239671832185757023165641429737604129412080791816499154243216865602874135198823321544879594532709652779474545958182688903392034532805652649007706319020023344008820821372333255873481296085671518244280968569668294562986709875968822572546858002589632632377528868627175454551010887933540201108917139113166344765074401079120153557758388725777397689865087601166322498090070333026304437568353051767146219592374885321909850215987818355486520401443531187122863198260781441051807700306191856835232305176401710438450498252608935055527854222530878410820812559879064439319510331764863644654216398257859724355476942753835991962627783311030334369646196759576493256320651376358235133135520761453469917265698964763264545008555475467086411870101661341746178915112978541157370237552085752994959294204933141715830924511335406185402944975981402713996879472231698509029565501636281595210447859154047522229234004560737471058527638644744015156578111990548122799879345577315297388578809008674191599779235531184721588074318617405326638765324331802484568599777315665132305061152701398933654991336093062711976685899529322610107016683765494177134787936406100943649061771229334371239707457237173281867803845888594977226876822378389886984588496826991674849101943371111962455040195826167562335348096724643698253332564207072637564991387405227094889159519817184681016052860226451458305868825884602913053906981300286452380898848877570047762002422321918152518990321209960523174585951753586945712881672697294631657775312679024286871732336961925925385712975559533421840765038003316933370418769005040214455398266696745186498990151961734586536576835686847424524343540333737356980027532119243670537641051217629557735131569821262513156238279944909619002565382932910864288110093531026553183537800299585253399923453444064200239527826156388384696754945122790685499920300931262941601043159286222069385616839529592320579641140684674943870189548914494724582883974810619606818111834850881708470999748315033244843899679893355153395101574269223180899908238006318425020490663901191993752561911951739895684228611768446063630438925244431542192890137012006421131952883620636161555657548618205040494423747967478171946489235727698116988489413636306720697328872063817434025404150563886367598739305865603669589117537466960795669680846831734928960047922542391707063819566967955350948487419421509546176651051567683590087263953990392574591140615104324436474287026034036206973215088571927056171033920421791247586579857586469120764299785140816128674939171647005948882278704571262489223874469580500191998675226156564416728687769200514457555548038042647052951064276123197660472312599644764643221073660346315756803116311355288179321665685691193553482174432992943820029878304041979824108984947318787475635434565575189121875860543971950280012155502713237322542420968358946896365636658402614955263721996377673273424169305283953807074755982094914829191912036111203766096642149127673121439352575191187101010908402901996072300533052157617459071715900334878300555204281930348111525942469729551690441602758388988804644542593353445893838503131180605439451093187460600022518307513911793604383831707444979998742719209239833639234104367211247946134170025559672444775276073388296286305576085987293479437799042218009902188327659576834619916612402434132998010576420305392334234047310934060853667346973209427939678238263777752026891473615118834336297321627698210929600047669844238514830540223454006112982486697929733696274441951512889150102890404708613608205013736355463262470335459116756504995839094928649419265334221612342624311460906956126716273192125255190380034434329772576605710288600423251722892168239169526132548204393416996554243238026274109219934753494862353067437524185960113008808660276725393585653470963429230004223083791086294246707982158327172366618516853732612062539103774250261999868336218049040440973315964336058312720177342885661034255882258160790653334091674643884547201923374352520081372910656546399995222553097429729915690741066388742407543251267138912111187082101193294914074952514326502109618492910930634617563969658058258635431890878418664470733324129119756532020060827735980856635084688075782869781036073771719899081830591599922896496176702779675623618306076758835773013973067836295126665385962588111183291919382650187787118578529158172444951666292243435403140809654768149298769848238871845203104250837580598127047327313997233114464840546442306535089685693539554424781201880680630009765152961864261184786384509726097646375849848428485748393891087158500449943802737910556114059637992730364910350296391659312219080996040243333997042762546161996417839732324493574226046538118173911064832237567758852892162497127384614004466903848357177726352796490494304195261402528607349299700921810194326139985594753810348392467940931801723460385793032789516202128316831260986677756404062060634701895735196859835075003409114894877539691237290381704373060105399867220130758031001279600194434843336140382347879334540463556853814563980430100651935067402458069138485306403216761869443468495468032675395220537037011195590118818985369918713846996995443958597090969100216456111496066753445130780996837731812166988576306240866554559253379158607916834557313403468790353288728852344670008503644959558597313759052237823083444551589730628708802562716994130740722679034611839852608700903594291443527065632388442286774261900768497196143163586328358006759950605478993026728990085131532532535187495142789991147904621889741421169993733681629828182443542810424958006785014429039736145479332081574653876431344244684852728827240828418883547032224909627192211513235474591309481752396750144547618035168248850345254498867747536630669923728438507886957091835591267338102110738003168864418004331024682479337994594397876574748204725522603844309963002846225313417812832162975391818050547546984834173608896454871680319107217723788211711694618805663681054618745397336555382477950448665673622024111418913477586912984690377500509209332329608408791250460914120308621147588982562723918338944306231294718104637710957754052517670821785497727895471850625448526775403400530581981213516368597499041649150744001585575800146060252814636124922047828645071136647939113990030221200759019976880769279068628378829673400570732122571208529603783390490703022737181891985446447313036159624627689579522587756961835370826887939155069189465278219347607200384424951575478762342160723463131509145469069811123083758208018336565711734597978113244799851807703148348687105690755293827646460966772179053681259376091427374200442403065170752408908453094284893759363477056358244718127697566478668176311450211239372229655831117326684918879068932627910145893239246842498045511049390010313416087450696615617179121453570413948839673005107111035987240736527444915207985511875926049467664428810955510422892292226458920148734517112506284083573878632203633817937235816709144092150913708066143627730598625392653308666832936389048359825500009180071262343312114785759546590767603460659415449710571641469647988111156482275457768479322614839569355841680949309166892564978390561380840604646794095712280074710907040749101506593885737524251147002032385958919736372548350752776789257599797133560322245348561820626461743297173471382856439132601450359880799599566077547986817999916292072936480117014573337066197799860678536273806750363635091471564270767851588513091634833753296645529118129838111050831733545190044783611796055865436217981080123783505000277250325307457670891283072075746824458625743466560628635165008424739935895927838901503478720549392711471173790229027653271293333642816540705397232069854396774412384168621048760052129300984040864363784540991904175698261239256539070741938461758154702739054526450340503849059020501086012807962498442929032622094082239064485984770156111680825519940740477711380183481769832966592245841502918357055973918946700166625483052844563329552310047927366191030121855710707066354117630449354760673544196658380429804854593721378352781653630129027685919304521213507693284977495838470129539760568833977337194463963949188156412227774280033226700366690757822383980214162093952991174746458159002636173084481471423654424216552393780916313948838498305172736137516162564269313915262356256302293197386760483553623891258675732371793686904603506057471261473244405981791432766763455211764089523988271934315283166806546900653738516427849696780078772788389852374843670636215340385766823672217557508438076530164927658824000877123440588433492483369025412705227127997152634467972970685945722280787985290261996982118429493230525006395906944900796816963698659512576547069800695625749800545900455571819906017089510922726992733634076239228841845307949496627239207882909083883091552534415812164209038917066290508222612690013889942353741089213446958328742733995037882036709822461456098320520482469163692865049922056613431524153191582328795454642335423686288731606990544840763502221603988920380586976396724299810637786335416736854922627173514082601481915299812521070501187647753289820457786656580009182466207460951348744715536104060429841845388264529532768368932456632970156301549785613596577154611115924518674216963312685406857499846401118005424545312956622622195529341943956524307041875934427472624563780113904820193258000832240295676567702336478166500298045089033152808816480713278299952644800300247758972900326587766776110423297245428069613503637210360747830921239700498066856067983749583748734731661313107140916134232178511967564293580015279447896993228027735088714109838754419593443102894749926827420053073005122234253598819918089963567157922443693277391384472914886684365278474477731874929989828977576116966416061085760007448296313996034026432653857707125693787482358902155948614326470561425004609474772218366094034943794373428701071765576565457016747667406553540251093580071177043235848523659331944671203000948676920647835086720248867658801358697701439876836797063246059821645829923269945996395265890282638595297452417881503042084504321360853553059029666906452872090174682646959991895738747316081874471999088603061145285455848520242089163955207512108280155413316178058593583723993418436992237438128680320387605555882877058067912252103230598417813995575517595478897662312336479361578767640867686068358935146521875520454937347810330405908299486762878584319058253548186390696787032382959529957624431115688797979848017361937843888970673123309029496793824142708244972174036362092558649189190539688767074020031213280735701774081540592781964746462345884051687432087130957110220182496127967850878843139137781566525377344215581856898713678778149798551721951703286538610127857045394454327465158059336609228137515764795161763658297039804126847157526107002757583105812428386148849185523198605807212830452238474418340548860743900207854866430653209331410459709565122444960712211387626825411948058102993242675145257953357943859034668757333274723313589568143182130942746825589764035657431002340785442257103297799111195573386218788340310158600540485622831082567415845170368918298336782706490758448618190601597385195594946961557340446923469009370513915290002861315725101864127083388272597200101576210462590491772654648513701519792964457666782000719807285674556144515105395552658261165786161970549803696971449600807869084781169195316142036537898602119626860294823097858449856827899127840706109608780635234708470556402851302236698359105652028528212712594289951258693486393320400851958188944620233928348645428223261115298547272207310840864171802223873078792483839754718748753607455468078065813661132474850286167818448363551157021812293717580837648203131227962117352286675449651145975506374476472647625544918293104236752943131512907784040339710458278858025992018045765473351769517377993111628811518573305159034185540222576688170872546646903361576637432775824718285650347683423898573677356671294605005200118366985819211368466307538167557879834787850660735244629631789793707540366594552790227312346482186843916588740699418563041738737452890419911032837850393859655374388596132592988036852841193280304820605794544700244096830873987376474703944484977679347540194545095398017164776796547321609007164102363875733230870316561859260913246874423222807999349861097468656951602101927509580050738485863147641680802978085479266213720538427132434515829386930423746959989682954513227604704760036983252674622990369806567349400021412726028314106572994066703102489857735515286497185244440154266970992246752438435802256215368347056816288535916501907741525817323626941367329046556073384299475869414732048499677850310750690189237335386893385374661371638865430190192359136866059487759597548033369286266456230823097588863247918715012282224391520854130339425077995756244789276850110921892164743925191564369504550558167220254868754596836729064178621681889685501632712558509247964854282825718777668770915809961576115537174163228966608847550864821453702014740236186573347470766066323566765734986028146924758442981823066934108517880285418998338328177086882169684570221484449785016825392710292883793241723752305194122277477066346775705994710155910231412240509693343874757217391930738462456391949500430359989329742807018578326253549685903521837628661725590415030115394538479169436288606487573886598766448774877336188390956920559411442643884573766388337740513164563380029572947506173433547368032856442805919191859731696675947191128541733019329165034512695552754668669953798439125057129710884826646592508679688236513560845750255130509858026300226726402179030503975620318640553514799258708797893818089864025440439668393743214395279771197791878468674135840910785736766569843850659844499181552391449946585593250713680359379849430848268220501578608294479461561420516683590767387344651858649814643681270363456789969775248332896893114481235994924265209481481897996282300966366158901125353819934439161366933497274811632514506761289933711859190400279170918621557973278064524290588750160536450759402257091087883253032301231873043686039165438346755018989557616599190688053474535789227567067103060036368246170933737698136274098507217004895033124274113927111568131455366243042097035637487475652857505072258219445517461330037457081281182294680057356315148366671177019014379397326377120335282532223202233177695584824274458819969571181792677763364642755335325019366239321634715685723211252742707205624863699716011328775923013723991034302593362064738821027280148575921765988280659335945797945733167040658472314531889634466472589798872661374223356232698871510949901093628933932822296602458164657202984165500677482222303122068073049062272407797530119979581116902295105648648544801807497148181992564295680647378870266712165921088667260818869083175943862997806174153626486055815280009979305641711818044306317361479158756966276815335771205209420284333918760605266295036141194284612446200555444120086915463856769400833855656839388169213150224380659179555346651253389214234140174809882416499569085717756043605230199835330533935104155847912900730038610659696345060828959272520718993644399803875061689094238818680451463101065278564427030307734597333611258812587668135524598961797408928302793626484955504587476905333765800413542716244417514713488112900481020887675696679672655018510476191136870803458198820615970032500701642193394595221065720757345121774192444796799604473764180565558750762133341635437093013825223526452534141640284673815085889321471351738983158381721127841881665293200248771781520176376321788385043116458496070486406455628640527544319940632894860713363087010962300867220580191521314973166883923517716068990508065310238241915515097014109309123779020914817435825413470025171194563953446665250837108880276653564968611406820748921401900108784929197100943367147989089301759785599707800792926656539899480310736753260352503950185601179664967461489410790273087294404069268963762273561869241382178086253626469520441232903511235593805415116283551018723368188720607945416570770408409254072583590682707533310921877946888965422005397789128477174090490146860061875131125883237625165143268870330014981997818252171390596122008974149087946545119900364609562857864090591957517274880819303621541095163169959140996180334153922108617286559307791041612408524189585521717410858029673721657168130337591814881825605832102712948267061422333978986562110002736639715919233639883795786970459930194895447562034150730376421277350623812984826589480218294921531612077005640443269470955269681077839522173456030657087709376721095150940242570635662352244309771494240125440407029988877234322375148534542663797980652173296028366752092080603220441595614065892908341891832762888602080145148532645712541425987253402532279863036965224362809702829020832078813468759385780508040381779099851342190925240322199318357353578340131964307413268337671516872032078925485802551443346359969163036816724511042205531240406338588296811778691019464347803642754355294598287925263996190731708668560849001297994648889859817337963400065836146538381854424828234873988759105682843093099748633740894726002377662367755527902785005616568058928699369086900502676955478773265692454877777226476172203702495209440414248353211465208147883488273191988213829282999189667251040717083938465668509140811311095133157755600281752927972502823183622557261178297136318015834073492759471018602919454701491271503884437802819214654766995917162717378517682631899398327335836688711761476446332004625715117809952393622955986409696784197065904201757011855284959213475593054097600128175288692053481508327153121423147118456398920174825906427116357655283968545192645410378781335885653503195138279825493210026920953106783952896564287788868971194913355757089541641034933106798125812044494767890353128335432925416458889733443393002389582291745571059404928566743291487058895489731288751595887580914497555853301175711030826934641085361501830971290544372096848941358441959707694031189702629833298988404149257415288776594012820897218993483983261803678143026932555070275570553424377303175290514037625651198313745977149512513231606780369096443041398106410757654142356962648659453951922776897506023447136149046265910183189940001342151196144811777339429155650084110821304230351728040835418621807052129901002173168100079084278858692678853105740587065543532129516537189137136678423605205094440278316057702272431631045796805908407122265562380155210831717682446851618701553793910226055865512114707964512207704861396348525104999259334538613950231228757138658638671140062525857045937302125895741886988468731331312277621608444778298911715240873769664178566498558382767772727188957517132876292324114007719077229102815662984039824552258416696433160856620559166022054530708975778361318391289101789594614865607871704524789372969634029301946566432850043340509455217556997959126481228358343289106809017732650797028877173191375093856641992997651060158659374556322663877410723479434482218559624031936609509703345662206296029781820505084645040927890240747259348333771461697394811941186847869920033678496479038093556107051876965529159498198568804427353368977986572618348022093403773187020021144931832070384423568249586025066735512574009270868714555825013288465533196055023894204663690514026742919922454166167750102998968884990716527464943492163108988224551449566263523860691670319469800602200141430433376444897875650190780662306750116247310419709636450976489889931592462592976484043290967608809816755040706436729274670730468593690070745980474550582975631480717719409559297686240437609061154319381964794807275729305274412773379108942612578042502188552408858507574090189865012007907563636639652751967447260155871632359566386464337400886435705609018608805401342190691896904991743281303082666207451316871533475164733681482305435806835430808299386920448711978757644488746447369480017669748578988705588476358222406080723402905489306760783711695851884422836279070694760681843158838093707441132403355869598720562366561521628970003778677964208572437999125787138635481247268079751296645262310695481795886563617584699768967230055292124186208444116011663615114741807472374121891579709917289885637998350592305264511500880575521539477164144942820669173769205550093010940014792951639925121558569581889152780919738960813915933568163161613149142117243174627347203215268408282237462235212597681399420536705394332172019281319059234322637489375324089392177586858043885116290873835487014484925762438420318881957643430170391570367807280120588758943588500393465409615579845958896921807851748357020688208446644036113042752308369439919529884975238578452920222382918860615904816038278110209481846684780638811521375310647095962490850654934736703066087783185566610218979783068839571935967740707818432101677332995000115192695460808616277908928821074589153408417677228145367158890716789513146621215847610031090647993319572499603677132947740788164528114009407826826302137273943439691728758739587365390703451270546911178219324308911194319100125732053326600642797175545166196769715114701474359213602150946864978421195092031774473099785181244830529714135103854692066793869425454578991328496903034282116389890307739643000298491803101518540668990054595388703590298049465617982890095104952572943973672750676740108046884468226754213227028944825492454611531888434524434823224686896013438795555395464039842581635397180379395232828456509377038168882305485772474682193625910722640442073425752452414703158089969182611138327126976920902182258701417089781609476075583049167502135397358546883213423503458579022079854197135922050455870443610366108756319119662322311074327389498808409227937183355041992833990505804931750606772716781812928405933077221123834550701608107772461057797756168235768515825644014490295121303446995220586816233192358939134928530479878895995242038719785959138472533430162060984936342445799925553557506021355635614488695063803423621511663537461720448734878883728958495008365732430714646557046380724661267571151900383197953383448483499931171757926951094271450602099348598194417712351108539346777616083456868440189799712749088028233749152415548835421860320281373594389038158509478866048102972300704322184943672605390481165208922118138598529315412309742091517224399424767923009173208725945080715279280847632582410237828411474194509368533575628903601097278354451413038162590416684133020054238300130824042804477736684316646895112805925251962155082436252425749556119328524075711188635491352372439219176968750575747828413084671422141455039697269995111444457218350502609508194401255696966556995033083856367311808960179770549080481416903793529326420765812576661349152077159920102915762951313122017108551240318235158444833608923622814326135243803912260408131671331591442000966936833662760019932057881517998888206339673801440152085687818153151175940704511120631708309254636478688323429269869684849962868274491597194683145952667718417438856279926308260273391335659337432658960394172011700600129070970358147085903149656521505376234305558434515468164813305861069956087893359506464041589389554902479909383837282794697702543625940522332556704861892317424047784625538650898159609222502955767456918629634943220807587025620940098923862007674970381449663719630380402440153799012767422708996964536282974505508588027410876142077013521252337455769337846195829379570546216598007260737126281495164704072869127434822995310415737367264526299154006675698391604564296719133557852908697755430484697217989130726348153610587845289088049381461523272207514123456655548075240356572608784532351385766357465177176388966657067649975053189256633472037728158162374072540214804962860668935772597883029733613752193836882508170219968441613582987899776108106112424306731111622602612937234251768120791530951362752445311231911706327811595990996864413511361438669017828513420678902025710232320554013974815890388356370999178760155043766083365154879144523325959764555019895428274346979398468826936827956025726272510313693701378543128199882593410004095953264912195506031350082406639030465853325959488949635641612792624066868054179938350662911725486765355737971272079018156438273481272135669640094626289826300198788078409709779276226092551157367216634767150938373851858174932435200715368068399073223798002435513221682182575660950369588233497618964026433642949007516698247442114800517869309492832190718133649919807695103085496011530034807634974849051619819021870737447575369245236328568836317902163345966552454050262925821729473161678914134228496455027650756767860634126344201571247795157601598920800236312531063046014899278990976298897541700198923722068497177422883441789536002288107696431190701688438934434139637378478398505186416375175992457584783874850594154139944519606683057291471463011359257732287008427292384667568558925415602176114826810776187038797805219956688172013975927430650292874878704311795372843603896689154099948399665013450133197686308360156654328548868567449055776493141731503104176198826888556043864394027920145188415492743650393916920316148707891932493420682301550618653520910875328345105595004799019798788852597098172005350811374209739387306560333695881559338253403782581855832445075398540102678104874466383052364080061771309315045711734951944590009507912627108064356312040858499761023219044630532988205747847193021084175654920085893037584384765974983793591240652510545597644848314703956992287904867136496242691205016229162778689970156609783632011525169083083782750336749895275799475996944881333658519340400560480019456960544385088809774233754431799551691129788114645567985240451498902665370616891547393113094471459436139787723815203182532719587481631505020526136874731421274779239740121420269823330272567727137788673009917129743077487613945755260425216931018169929336467492056295771848686935032389568798166761680317227969030138437233181766958247878694888621714128215899566762861596656794385741168536188937821284713700074142204733032067427364667627737167151020416891196650365399802746268909711936763812623304595364508910565737078705230264213133632929617836636591155099572666821229193978667714361990242153931117569076524513466674542496141472230675544415883459797683371183623060836887774667310720791419646461650484603570618814040994796421080226990331593740908095039552340116042725735522865911992897984242397295061593042360148214607039341635427862623478835174221196444213196180192465072094312406995102670889257214241982720267509460277981317959369608331215143855251917734895061134744191701921726850883871322834141260097775148020951172444639117751183634611905592666872343626876108182337028490812284573162566520442336543764020914828083886869555831767734230691479827726383582258216822341526963460880398818877755163312801837522538664695385342262048379381588393421979679156641449541144111155711387951865631596658855335296573055118308163613876244160134499803790724306435804879335687261602177979214929525772380490180208774306459903562034147578642225130513539220876641393590597050151944439976743515566858180516640164518677945414133225016749289646721333068371676418574239114546581679360319503779680828134957957180426686486856268755305195822358920993104420039113764677456827817236898995274282733143041602598780963214768475467644490599323433587759496281027082609487002327018016584092704411416167448137282484911286613596191680748193511919910662653088321686304393991055025211156905185301760670655493401878838628511470065162992045286985020190554208615524655929017385407419392379779794640283927664276920231914423993151602703981998126115769475278679116268036022894770147713396572617118732072997641155477848302905461675277950588950180939010826364689273470279893285347313888305726485055798127315541707524123375100215151331810141544070704720889688783886567915677158267826884793760149283986097153051151553328771681747144053956462509691642730390478224829898323646938085899894114483309820820843773171766917270475227333372582143959343240697029616378059595795406382576712017079569765700196452588248225454849800940364640083810062371848407370407881013867137037125896638148398785693324189449416178960521357817876660908609810181599614320727354184149776817919854076978287430546881540187406832807900989392287859177519207385522245413433820920686043972224157977735328044662805950229182333621556489805308046186069575463058009969438668028678455183264200954728221982336148283710140699594450597009455939547963594010013463126896469008447364191248727387327411512689961594337980472144744595207749273289628532481104113744925462683498158993171853154219205587308798928652249406029900259712648011583737241479912785576535385523898073754084082687721244953307008788446149614810761671313758840249935171402510449269472337160095344595282954290893312406825511805632768064219871821521812994355993317074601087799835315884467894633914030942413196521377859953814223699707436189038941864802542771846970170928513183208737856997953765903258208262245398407320062026413073412653999346392080448679190700843346892059881060023304174234333822411933698099662589700040116563793126361710533516424535773399734987233095979530663086914952962248991230612544952128166849786208922853588436905213346699559394210143261797932668979128098114128136980876381542385899761567236381950648256646366602321936587248721308637858029329536750614589809621943886265539208494002012418827094603234008172841589478348864170993728555564696984639903197532835499198128226522632079529013237143638325894611741897153020432541958445062776307965701554983179510107932602326502222667663178968528317302239964318357591990550664423437684262088756454654924819654199923546842182637398710961466646602021510496663428301603627457645636499138995995623328086350999015602009793927451784526767535564283095149281753722556699414298975143635032413710971538664994584892705456505112466674519604653702583650293712302742983936003328317031398540568305865857264330337703132974423666327713273585083855927031387816053628766151661932857948954749842529161748644820246644501794072921161221634923238140432993186962059463356490307195485819410731637702357473174908374663870756039668897197518837015046505072784158131330279795621203232869270062602000480257253072933250929559594727322053157415470003366049788704570099151382135954978895014751278864568121259670039468732031055133852352308852188946018819453493530432144149168626832071917357873452212015596508372472471575332729760612453070620298001257552650524810039809295860349463411858573949355343792568507601452500685380068485766293509675930050920054365756032257464661994926247529150698632694247578136522952350336882592694836285660423395799395168201153733587644961169239881823676652286089176291237183186313994343718539288674939346377444483538901115305213122801281209207201965348020768490764624095325771161698477275414782836580312850830934568298956739279982369692207496967782723265279829282117239562424821933658790527050356394802456853823069832296846419825205016868386540259501764932408332990593015273202671971975174855440438492700204027334149760084919769266647037669775997628613392160435981768477097342822306103504545960450117620810597798252092722160700628359398183928726598368852524733973845468311688732246535322813723893299027870066383974803555302208876663710940083216718866050823557245214701037697397604615795490520124043041019132738262914200524810427947282312384796227891981918096232400928907442582353622687691712950038075603405908154733808720854796917407716002421684154827172488629141076206032271443108260070042306336012154772321781541372704652719978578337139298018398310720470979525226654164844300618637787209254810996501710260622586439247367983407064277459191482912343930345414605118097493957093459930114071383134871824487168124171390643144329506367294460768914218067118175316383683582366290723585650019333106076099725944442713292242520301241116476399688277993474929372012593958905738084441995790996628722600433362925611152195042159149673878875636847952644286862528584702635861555818665760675730452535160064209655069578425921001745289224182052758757813551958998724839640952456750674334509444016433626717755964653667452047003930801979051863442663902416056344469374255215074302140678183240332116108856533773280525686790459679093191343398245281732969953013078846641402615281491806841416239688499286098486929964276238276059889384004376727586066767607595091105300196646460099566420199279908624947291108333883634867594467452162128412343768151093602439999795701323174730544684637791871543647470650799706715679795249727617823481749454241550979159658396979779326713712286459527682630988713476497091234429613386209434529449550441464868366394504548077354118676169967790773244185503867490813387293821485528230826027648563802736891183629527993133265297048463402729025489123002363782485144208832197449444934402633865802948062488473736971348400832239219927687526800689545024137388197395550844959650053600188681541616662671882148781251753205376002912035558373257854242061306460295344098441100273027290719330237028086302915311220313109812608197237022559185011193543538903905615757350351250183532084796668800529262449608715744070546136257091503351561580900512695293179110889141960178111855494329645158352002915887373023515286543130581651149897731053913694929103168047861873014744778693275191173175246846847994330349592122786992453810244292014394042861919150917886210264659186005537958233847856156545407046891477380945156929445833593924104147486816652847912436923940127164290075001318608306881732298749069737749945865246151672676891184954118277309116124928440679309338425517637835139220206425090089386035713182575586282801728518945193150007303968589936248670878084540328349505393809487972821585421615819431145567007801326244627354006605418192006660700673944121185760561948994327086962157181224552509030062687752023822398033119926360252872866975491299319731693179846458097472753959386572990512221417589018733418036370050017823106007731328963050111814675494391578597935535814146218388515149280699230896652610826796248147709909518802940535036998312142071660481293753967395956291036212441271878522220123311936393003512689369316072829572108700111471507622266607742638320177676427639043739860320040153424860206525320339320579055039236767816907113024810951895773923635470285537801282288189461525891027482184377645601533605734839700083515777612117352314521814245626519228263203048521376771848547305522890700261422629058820421322119565103913772225105833107351963744021604740682769670129580842042186132108100449522997902303470479897169376460118701027316832660294897867232657185358858633213430984731828417801860775944079787486072693831802498723043798947025403306166614057635885696866313822198066587557722274685627951386918773759743169177837101283024568708409371518063734102853592698603470976745624460218681155991061523740957210200520997022124941516683357345026554195186308097411032464589116668868676949451963248861667280201218163793683797794374531357697952327762252949575530215531780296270489308244700966537014890764829463543565154881726437910128215471081345602744978609093770712278761166350186112675303073069081223368739263702799695591734681183019665757144229236000228526463820075909446234118962274129782911011749021033876201458998167554556789250187136646865169707685926769593596955190683378748210096287762117529737607891276227650754053283886962849642792820867402576095430942127408105819209917829850865083493291426137766530085869108168025426336431203912650736390164987951939050897601567572932657274663070598795508793311720323998666143508891437246095244786561101463988744918963708923267488384091350210801553757665274246215412452076793132534176997318907946387748383187433543200624682379858481282307705441656495172217007788331351093372413820310814969329957877637250080354844980012697857425054173921597903934624894473099009361289177484323770395610122880293593061090226150572477910061191737249984699494170334399576469405054732754896718506993619194326536469228205806465165633939373264756808102953009996247905552911488587786442165689869331624628783209678046197192022952961203755769282009070154835780491875300374203664113466480515649261197327146970643127669366004212896349617950041820924333177939126584739504807135717024219663510122413461188082584371432794346598328977436682053317831956646439716325081426592573192227693306136346428707385229259764941824495578958870374682000505681637291646906910442730379582294762761266107271735060878117456431987713447096942294924381364611957383180746968684953712405471549421593282831163076971539101244117755793773093866026461306674645825555580632094246806131041774469172268798350933051217160726087712805125489855133953701320215348116359319041685121730708724551135206827121559220835380307368079331730202280701254459632952690372503313137269492457719841692931074014441113589095168713800119515725402450649044392661680572439248036168856123070243508285914200893450194025322407287013443725934067863589988932053694771781667883491203098610344158364433000872890646942304483542428757788668211447593269998329042906080611723567769795444073100912964248134154847420780613863282151348696652617921613749408224851732575299772990269335440562567268449945819865995830537878078214503713916143525531432760255623301829221493366298870113099331261224570266117935740326205948323627961273616748363603951130691344836413892856908384978210602197580320558377927083827107561631678237149190280669815996655753095603524471633446677875996412787906664190168955954042000994233489414831073809857899117356294362223906861227296814739218292189096917594656260267261260718280027544835452625830036531470607521568074688018069440385059446208107368313030260062629792674550428750289035253540414193092761741335381474834124843981142152153454133888346935622590035796428985345551757320088857389963933499931499228525345634955340657999489742740933038053437200958005341962641273436769097535578787038361989696893371591798795432329605992531483673218749606887864549899038318113192477618604332218833895824217715092710231410635307221129084831932978518649358824402535437204877249086601216214417041431333329099887885995445403640199182991396386180581332820884695320705044617786295601995721061667473228515934230908732009138370859890648786807280187036657741040095078568937579106376496618252958690620485297634998456699609694381195225941411798016565504158462318604311794233152558582395865516960062304566918322634910387774100959709869927485137467900656459340870704355485151758964021200087299126629060715433107017408551237325526508120580298575164265649128724261168232160397875842974774989479639889679959513991831435871468728031907793448060399086686213266289098353211979001950319326524117353943758611202186019848318052592154989503981499997038993855148683263118298139243534985057268129039110009266188578401889481554197925921736833825671306845944690675999284698353064049797558175492726105603237843855146074563515809826205664238289493835959051334998889454854947687535172686097603951393270633141777024856459307082828595344862251968719634618377838797304585143861288869142082040230668652144785603976388143896952302036905107351960302243899462978722635540651487279949032492167021746155763698088225649288355559459154245005374296064818747848541935373302039711190780841489965627193413502981536371623680752309234296572491353314925292250933221291689373972974223518129678678044087037931601180867463309586864309959244717201811434068246454054631403050814438268096874262328964186756512209404181853820356650869819429822168750446691102642181231222111977915885949363151156740015184437839323955894949352740004640907300778327188451547283346075553224164386183228486757931292300621091964657733187894416484268408461697628272831735043750080383949818930026516050024570144803378342341539058597203222095660994895533741612918737515851780600098155901490010104468977999197604136755827493212343310384243613807073116105772374381987896072908562531201227623307156084774306215180291912239483649224572091545152542261584995966022597722582287026586234525857127214974096700500413966662475279444958797280971719968387546370292305449673698927518349796006303413027785332203211098955546451391454456719338222539108690538275943535148208500840843162617635115282859864912875631882670567546345917175469298597817793516111394847204040916214963229036393388706869967361591333371716407441281902803848974062504403561228057313294687380751654603982718924195647597339562731140823690580429961150991666196789703830790490188739154520038282027833419682720452665429248537231433919062089952437122898694407696023174921412775085039369712087066448840758243163503867618562356559405610515287898274099520044926996060553110069867695020260748181910647895824744645736897251685173950218610593558095402034850996902936377297891065559447541074739673328282280859190447569828514227584770676593531520279112400929964684985980602701975004261091108483141746275302876540150400501221777668353564055791101803970029575464821091599659720266180690108485114369902100365898992200961007210988602670494297012039488072082417343394219925976705243600208702710957391209241134867267448000518340194844197808030004109836075226492298008151212487642468207222704597174631948136615204165116201845771629746780779663792670030734824589524645034543875350412069636324012933301396350595537394624112010792140535440551105737732200013935853568878596004055649107554197017586892779793432391371992662296687668407947690367416226741757961258495268944154237315141670813179806205891737067974375732948698823144897202360328854770316420620816221102797215828246080937165031323130008902277815723356741182302747171478176053912907988633914523608955808627536738742417167263145800509089988980984265540969679262987488275846829361863727483675064442028000504070134496386928711988323116529629472737935060118752715493023584913851212421565473063854364415399648054151376526672114044872816185833378711881481137800738930891226254972988128658069311710477329893480597634267357484166546202748777031118343796588535971284693046614345861716149618345563182096028956911891619491768277161362928021094207530818004203088799029078881254932001036541347222408800079499698608998617780130089258055165830751625756692777884701665742099058573898013373134679602992565576232027999209503746296120153111888251467628872648415938998163671082546336585250937814403702253269403726186951195156718988007782537891156689288471751733108005516301651200992199787918569212767911880873801908965254170172069037019424528585429046318226861133104198152712655712757929640919013394078540145774176268026772553196483982035196045936284849033008887754842642162109600313674487428203133082256406257165440015036172038893936458026094127643477611157567711290821711178514731194640205592587915955167097617972585195435130432225060403998077113861828663177393080359609724951304150212298708116667415335849068751129565069726053913565993504676928881502963984240714197294919284911928559167587438178853605690571629111664051752771740753257325581555688490597600975711107110995505886372518284637410646709559733683981681542095688716761822338325629535636309120371811355047641911498576359605386304651620307169291833764085423836901989797061117645582923762704068334636724629484033794571657056403061932141981218660378226291894683944707813344132956216270793853987198792747231160688842768979017101765142231202261593364890135324969232262920997815758637296159650561590137891507916953949050146947146533390659353551054991213947866146467510499146027601364628556697498737924190141726720341183003493339975431414890002747168969124223870207096069251923017534232244112061669615130440865142471702967427621749182713582364282254966746764682193951721416681232659412396275833570172905124936119712118279073526389555756640079168069743251659588085179144215302658512526593345107061589079406006569487639968791181393201754247752646765467335549077962064181833652220761779653775684347043978870077547450375255212244811398700509226246258764933133030394145227648627909567683305598365618657927055175478210108082108532698734953641825356929821691438272596149587785469066191363952224489261451483794253915139618256955147552118404707801517114792842779752746789714722362655485968370261259698814200005560419229452869026036806141917288390937723913384719916154775311183293070062745756026059414635739648254351194530987176874512247958398848608405722136446520203243761931674327550957255169915951734301972162242699318508501144939362771353579403134943328652571421973950108789356974376178598398228735580181951624722601334964823681667104203905285708949805920645367266470221068086413317121794542599859590463618367110418318007450728890970843059636608929792411364240194047870140525718428553423547161337457374455216474595912280886659300858358360004439116738433707368256268236977462261598152177807865160352848051001791674018670036525801919837651228538887247626296586654086266020620757626472868551532363966452408115899995910840109896042537486825557256740881501307045244790814615186765683222407978388792998435681671768689628981316516417130413568212964808224992896359761195991294545208289057174998330564667108918574524356457292626547979598230760302476016804796960816016188107755235153669760800795050316782737664807970073733434484492611838879007410959073539167065688408017309394526165127330500004557510956649162756670614875083060860807647632849411724601903434792804138906640461442545247331362092640036128763043247242423557328303103224289777283556101298973185463660523547818101063918456261581783597117689737278707198797232380873030450355574110250369907564533512611931060947379452670948343925918695874742085863852865390357684158561313656164417520019452603051295152610563634131288537207094056435503035360837593162984704098417801561323853363459249857561455991246857403531354016955599301290090919866034587336636616311273342317169816458026361295724410559612085686409402538044214776410117619676562999338792205673706400041318302405123450758848438336984656814692128150967285267386163243528458499504977244650260699720889089176923634091542716082347065260720258898148279599503217750039265079390471161356448569312488200468257959076505083895646830115926241522161846011001719016465621249863041427378400287350468814858755284140455870720771634074536355289994337574854827032506145067282698666758870483967753167440236837508751849899395393428073182604873066355378606876390322858480909209457442137985889817189055536430688623607321106066727169188993439687152167744699754289601127875831918075123976004070128282417981904909065552944696576359113396108386912094057305363696048921046106731434182806811345798393661800050367712692923390955870013146728774745690549118041993717890883226023898509575074864134399479639860490200247696495587587571912989858507222670526183342827978604022102283171234541249053636551602859725021177977972631908924434236557117722009487603096522526052046368580358292314795512570776181886956255542281735092817785579774890403868589370696635707400102472419402013358930880273134405823381629984716788871124557075793025370609198763949487063537484092134458312248745327410581337333157833494866554673107690955643493897477978733364087911335011157826139339820130663179650575917663413267133079944396510235759357402438868995216419001028247813284369606078051251548956976723955479786260990553510596047339425055293003921471353978270559642522134215526895623834662833418023004452639912085347859782667447074443945880605317249345988219285053411368241740193723978231060864351678726028914186138908867687498239365528941122854715199386866488948822467196834252186826863465983851451719717360036209505346010772327908180885795314392645391314112533689135574831597111876653945851695040400186019753423644951678768040669889937347400905305842263016322580185301714259946550826196363508293536146957443281379272670758122396945707979960815396256385120578934390183588836159574650665365264404768432165016171679324080385628646041270064100523901762134437831275336109159130497418912133763508706487768984098934115558597636716100344678829654692177512197109199049903400258232193969172472787025906546899924617113243630553420862214404571617098262714899160859782893875156141513082788753380958021965300217376568906267748211147696986689644447717979419869320344651338039313475988741228344088440898620893812603850957976776812919455302218411492846795893121894261619970720502075512591909933987218668432763275789575720525656577316520527879611362879183929671125060579942264765527018585048984275065882779980983531826005607803928778274391735319568222633114166876974440467347812156513181058581152322224273113341519716742769737309521307194664353123527092909660104741399026371566840342099488139251861121758729064462177202382583070184642280194239994349250371705894287795382719152667888899375012556407334546932860509476047041073238080088046797507747024844860756623854824334731642371582915649391143377464358888441042757917121189051648651465867869591513225826037821961485974501560782143512654166676244308821921491071197119949776023393947296633476057707488557693536414409686380449204745121010930843074198602175676603067036286551059113921073524101267759882820586870099256729549077680109879504107017387017325470049495863942269754384105764627109012454850163039450351767477928253293816250012642028654313032196432021548658145326675921351123487454560854271855573089713978936334914293714932649810354724837467637843778317845689012963822668626469032049984313243803787307337619549991660443040987213900389005933286492760993798188624895019910696403757897764947742413037510687002568869164280287107024356456198012264056683766916193505803387402245110336512849471491950020796982311855248049612158932029611292729346074110135674653566381091808493201923381792363189720713078811355005399817511057293619262302345760900965670879784762674862740285129435911047852835113450266904608849219565024270756719326259853667050429723594751179527131700721109480673150931888016304533951954300688120768002942771408446987981902582774904861483463837191531057047771883109873433424970327593367961497387974977795402309511013998847371118056136593723771169384881482209256175265467144489374381830487932942667251431050206952868769408872077838972377812874644227947880653609192272863258398105162458363723727083779464297531619762407251046683435440847891867538659470203596911917846745881382576324168396014811811459541679790743773726804782341677555991987681386506253815006787850236162739872956102046037396154221563477017759337677002890636469344674081529706274582108178371250823242525546548363242377590502792570321160325103676923703408705513198160024866858742888071859406743491596556802021437652457643951436389330134530050592920746019494223168218943163820467986397740033596657546116459630838134499186206753802255371023636442092063312352819456888811817001892617848972515543476049267609137870865183224641466425946120271139862049439059151715877381903076724875124518013512103365199822799311501664937468442773271366197015516815880926299073447837403773769025820321645507417791994849896265479351817442844677892915870836615707679226822844656091874442409775286750206123209669364167550394939850711254199042729677337516456222532463590516010655878804608572010044435933194574920406761565842594615184265300704803492709596858073211104022495821537862148715751927668416927731574070083400371917054844406729152756069505701747085997810154285322983407756745017774581995202979738155642560068548991444118084034622091868719243650861190917486544974275711814008302355303863122442057403794255782903980090907420965534326738187416579259899884050716969624837894272354806825896005741178786915002470109956493774895264525333016680778199656760050210316613142784530247712253507370599606658345673979599581821677376193288977729721353696166802009300074057046356715365537407563944249077367107653179059345357049214354735704934704047339860003793652722914886363994494163459091782077811703720967402198592580529219380858419211380655126602143939424229936801471757261906996692441184485187963333352952714892118280823895359203619749295207284836125753098147454782056132201855347842660379334388585028666856132871170637837672232772528069955138906691544018870140761826460431136219820600256501372976695530267781025330830498373344528988355020557208204842027238273472706908942828728813750892655950531280448813115062535690867295906265243894944931983133600276470607596531880627960792051256303720436796894737167284694526652373737428888694008137295926016663912569525093981830892244940546535763840331806286981816484193973468225737068941605678643710614246535865493505018642103045997799263652209196356748969825052064562267304914744786929160627356061168690265161216223881134249738739780825810778074938003991359417353415894142537513009872032214845990921194924351926238895751581267890266991696147146964967553761247666689419370658783302476498225559797948249974047870636819559277770223722246698854497067907031942175825079382132378804652350665761658168217550641961743977352577175824753735512350289666137970627445769348055762897078356887890176509142372796127577472369359907259134265144243707886592109829300612741073044130663145908646523993302630940902462774832428777143337778858723936051451172301658769265234120215633130454029488652949483108045754473094105342174115118944907528901376811648419297060674265304159838367199565826578224736982663188638945431374603181324911214330673439284149018976510346231780318941969371395990512492773823488940900592944952075113932228762989801363352293395146887400576284071934153977980157144103074797920540189294194608795056324306092874335485715219735624023096222197650966797523171727805061530840162497437610433947648063426935253157289913810759690046875436658013674443753672894778474292144597970566224191793622460170782940559063589241799875253187731052870318469228800280975293287762125566662008744972853650291663627904448997148251311689377187665060264115243828608139792775561919527983610713371116836356595952840926735615917590621019848488916947918238571603510481475176728811059997592194411488705861380465008500253694815502508776440103054973619248884378948803209682670754154355506280162303245395461909255910333889768784113274064340547585348747653845522244988587217299121138370757735086197817347863655100830908424885199814022461585040309384361567769330735743158279887877820704890955481095733036298300230181661845879763892288250223326013672734610605584150807056698409863967103354018000116713638595878126896534204347928661336681593849514254869919325535230786625808021696529559264202976365693403124200588141099208534519623406955015880140500398557652628822537041396075491618666896760314600013702864564511445330314377179657477449138808214109035663127205200894767922768106740715705825635660737959235039787680387063980542210154739044534073984311788222971020810988662491316932852011622617096829446839661820511198356354591373245543247280825349390175878197273280440287645783704906866228002307399612975516025994084389072958421543310072846406104803679293066590505507667344334654462680886230203981442366635506778535625463355163011218127157782353294756464403766362748668193241608096577959672284168469197035841803360545300834102219786456318656576644825427207365035734793651969493358025487124476876969579564277142897110863284004788647166990447087002485025310680915154033707996992798395930883429179578693638490869543682409283211560987409600105193283673119455192740021461705126235990508727878811608896765744799212571452254039090558530568103774812926103168368423551745270239402891357541966225043126329704179609048984875509458713672490047513972394176875112193049453600559899618542121971459538395566251255684766671108266674429443706440928263599210848419391408660050905063683546905844397278821307542736925452705551471265650650803131725552246875027664642473929183029059237308789241568544792916197923072156078548365750085727614284457524903223745352691458296950261515748097731008000653008954890943412286331722692528710976571328747872956182907557559149771335071508837392609037851338785059159680742371756848168641351618163592446093703173851128895719151453531962248347819315725077446733423288757629571539789425016279635213395836418234036228556280872290797251202113202518863822483369146625848664470088746136430464369977453048162070358582883115153890742931957461225765597535720705367376740872634807781590368799304907960937387579273924868383833633064737527912680088893037259716232805248169922670047186392172535474922872789164794215994810449794595218080877056864117371567904370100307698700219108609261580412247040713689492802642269328795310354961367222437749864305525034376375531861419092335242187404807921164041885461250809253409710599350290321681173956617155893566446459800155629120268275213792275628769428958300807804097600058137462574338970711794857433181627658881900844920117854172502962899081363476776375454844951148122990332895325320036991614000034140874367439878278998015683073503195718233110036623767498152526747035837734792291950299291527463467088937630608258545067842424573483244608960675609628593081496872251949107516718624208157621549266419559502496454851496126128048912374765285782580540153752183685769231862401209328217818447772269738949842122637381363757737006176627509127999141866392632789125328398392379341152122514533017519806795686502034734956621494161692600213015479724600767847060885335180139728856329913614687699302781488273894009419697650258209024858650890796435364775058417793641630144275193066184161160231187579911151243473505517511918714095895137783403859774959616275242741072164210901138510847849526067120282353938735575050885940458209197894788447531050852544149573704452063442481306522383136492376901151863222816922277015952041641113939009412502138224470366207374179548058096098903536472519708111767093509213131415794479868743787454237825476995612708291442928811803154269275680056218852188856534255033211938082487305584016648882058027902788341243217998208871819369775537473691140045695820887090904896032120675339368723362907346542706402693776158551379988996101987476852219455373201080843900864922216314310180621787124893304574591082469467828136571120837231803486858466632536268619783013800261017598061149773785016578588155079879351803579032113770409437594131438367145522537289535808435801829768143037170341926114682237682392313137220806217006304113853687093917911098516930154571279137313687621077745381459705586158883226039420473023130802997997046327771160272907786185487252081839588447941585015683157269061486826279899762575367104077047417545372470687312759399269349748026891767279085248796188699790221263758239058326967121945912312711710119715130193881234734930153447706401410474442169338806611442403323041368482683926847772242021500933906749168072329540678699769923775878084082238647567603290624631169278567841544249106088439114805169332376173832101022947725437175763468536341134189426839358923247985111988876477895410983967894069972787559198778733835866877962811510020581105598445946717701604311207485305189084494983794352253193090783735771745723884003069483011663761996908311181879147399439836509200155292320629491081197799440688565432964571047909362509855400260674639257704010041811540276285159498144310766925054152735709824115141116272818161951455474246234132878473830949785281941939320706511474342534632836557439712997830515623594012191502830265815553763101497906922354971487663433737075567076805615634153724721545499357879625062752911386276110194449957026681788698498514055583382290364617094898188586410233580603479764663351908163468441620532789737217654948270457216070793195974531448904821119487066503557444673252119889686753923697455074565079102733623164527364548926630050616737979915688536906508046859583143133812216508881709709335843029365866953306482852940768374892463291980424778345339216008973880720948520116775071878440827603862666192216461930761818252532667611377959128257868586901526817745526425590516347817955353489571196209880917226210845087292988878128578588147763557647135560055125234670117101296385269515644510438012520525706241042042469066854298764651922844113289350313640254498511298248898281698377951110491189299841533971332096448851696747577434241058239675323633089074289428568909463432079729407607689634591259453882809160776651961893599872055768551570692433339109117994417972560959130176945668895222959706954270019234109768925412963828698617359911222549526014165708895787277416428090902132430411500943718372588440192792646248149217256061802136376559242147121888143772160039364140490606776143008301082527844455632327637047410246860685922540571384898078126098763634775246232654341982189478824872614811680049790882249097198279171416227527821898589861710560830002970413649032008698588144273187812605702512453284596607886380976959877338597474693484612047607504041683630412835518907483148245731532726708355337131586979108615242269145414254128055417986399291019722272117154353011928421181123963599668041114519905370784214553330508771888654282734263806829320484210231268363259875424702785393886119266715524196630548975522173887391226011918935884690803603461523107976070190481320136716924800065805873434434510103850113592453344643330649280709643768956536675003400239432116326060920323275724139428003616808747268773319033639109517890128553232692203380346130072912195117599082941743146824435651386162333707060660512572737485880053242159737034986332882618068086507280829047596383647946986011117495577604722118444144921813590142546465401412481091319776209088977007561195216773753092629722837377887772893626728825586259531267890048198928933540987032200631748474343401280448344750093394917012245979186412488210416762018444080071203626420671961200281367940534325083578473974593386019474171956427059994346502160457984079657814912816147759519847926255244290347062273535558764212994453725284253758363752621141485239631531464014889766086035868264027245383709779174452832460390480657601677432819695082650712828824770846153310336780079470283404343594556227819765531272959562813020512036740397701751627466781633784155962111622579837398535862103464778711372021716349695162043128055976971352274118487191663692791164867135169618427174427332395433648043595917938923993619060461527654690324256044983213248997518315043801631340837192585155442954209431582503170019299436156427718535358130994519842350621612990092819257946429334505264324352500864288818318193356461897925542433651407789818447100761251613428432024107895625762622745915838232409605672087719425660980496268620712854023581598577755805478345947910363636403504503803637288566206938478124654271537066758914923203086738014663795204351998603364762312720751113636377950661285676939421002621488421122385509945291800107618428491260241515571539056543150390567762729110813153851170520760958774726684345170499296097967017234648608817947970317102315191565063702328030005789339977868869384974583740276570008251667104426858917353819639754042656838836139039741067245570812647201192700727905153585077046250201841390355362143395904562292981153517254810039240558477974731033888885344418319090354286373482532049262237270995016635377332107998290117962535405583002235771408045780689918545176971868620232049795751239898645803053478149380365969226731054808285206113542189183959711713200807153322759966335069005398800744521468304345973510451272716391456723409895327699821693207784716631343129343367977985091366879551233373137475140896407412561574117154487044283108544904611893947258609434784466019257479017179797437511948002106915419625346613410276526592353773532386848770345518157595558155791232415037169892111449106605809634536197762665136176289638740798227848878565809942935570709589869698987577467607041549136519033293123745043327118900760507541386438481136781322455564365303516318922091732528213867648222986501533170861431411447838524437341689183053080533327931740882369451717759956690644846683548668322757927094924510163425694078953663600624268398343494734046854582915385461128688884744277023893475926465858552919839814734784360356408196408007792995442649068998722624818637780923361050118068837794701097542679935475216346400529168132770266033829290085685748994165021811892463991452186089917054551848019459178387335821588208854725689174345832735729694085836611456444319146864017759699678254840565535949149477839858137550389677380014077328770240517299833048934494945285919449308845901860830102159991478846214042336115323707756834723433968755014506467933483175294295706671494638779735451782734524719000824823592910678981177588397552892573110277759540579969699394664868907545017560509365646180505223209535822659866557941845868352524286431646492723203419594216513775934461111665600052569101835163290267284508393994141271022399180253561094292904750896761616619291624143521352930673764980421119809327912406989467371097539208017305584988347275112096462927071436616880666803730191793695057042850267090869947820902586606071108599743120697501181245624053657621752228897149576503795352212869966189932487698339362145162369402017580802432343552006685861792873371706796771336904349996502431908035403935479591543188161865600871389016831313590999504750697812374196869758834918469074870187056972066689310949939103390633540779468447726016883418993694608753308283826813239670003858737815349496811818570013225729969295185366697475825127745790251228087008046408463247077853241758651710426908010387366558894550559275140676511096022677960724362476090000845675822246339036091526089892579980758140873052123142156783354213189966013223256450455411392939880202993383919592436815135899933975639023919394908228291368103592648744574578623992797045906846753036427824676388140594264616430501233494263653522652599904709378963524814073947424517597844692196459413789676714513527875758488508057154872762130069730606448535246389870740735698233844316578846453928951863569196560552674290448449494347442212561829128588577911220173774333624616335361766804834281969984619798687254197505714457799732590237760929341857022766248743493845686905106634673165776699136842045751517710815465792248586697296329016951806730507041101034089130423976737294270772838400290200454307562197420486252149993570297005866448371002775505075065245519571643506145113926578606859538601112872109015654031882831953679069418077127561989731186495928516483675331564209421019628938609316139868579677612990398908192190768063440183670503831211220426745414391433406747782279236511614629493907044523500439446427816911082998169211160122777345588567052283865897451569297706802367618822012212783460886038517572793343682698610393728950981306340351036910840778501978828423578871626161423762183623734007513838121675975481984178489913436565569093534427765478237039328969185947022662261587935364451846850894945999858299803602491273382135063366689384920247545354385173463370060436193674558643149642468236715104350253569419457068462592390416806090596603002163042564477677533096649354181120539921392917588420636245879405466060665334249379595876281216943194851133860264787205895958783847574936237700823693311511536454670849329853500377691823843818993710978891333828874827482004168743482016311963631181049778656641376142161820120652480475085632867165429573454097452039447348937461215006984655843937271772259470258996460394068013018694459037122603659609590214957432706759366186124535822355541593962420210639822539264871230052551989064303264326589800528017350673223445699380356685367631022457717683769732525484515979794505063275767422997098185170589491767051712165813007641305268835872133473837302397986652356758101204311535398923594483629585937258653943988308736162082174538109295148428228391399661102809187735960466847194135376182535291037699464243481003553001089344546031174739273365409770250936759811613645071532219632833533400777638083442519816691038000796076014560700665293848873132629262200898100526687313685562291502225581648830800019770401015193284099201780689840363515256773204157878918775355587143862610617966550287112876335658273469060717910728705721250235167752917939097135103251132441343068155769247710937758902949037765782925822077764342965910440718660867123962297147407782606725003682476070315836684039287057579156054414712034558528502534224764024879198009140945006562045287170221375610017184666622912322567664493006723505465208594356187348110354268003854974318832213335440986281066042762977064609281594148914337567337456302550641769697111663955385909732859663847676507046642040280819228698940419816153813555959732084990300704936690916578371787974825058668837566967522937072095642963156375957613915151736047333090593221518829801594179818714929101041936402052963262984340484531558580641344862848061296792570254026257877627354599508894038019432804174897084829317482669235684401421282125326375837120478167064718609471722405322640369780312421807692569640846749660957305138911104259018376772415470069016623519783911677903034057942143074425422389869211352806250633983059440471424645316448968678118573459234618084010626275238539970682434620045348142603751124401641355224925010481681561377682914061188012923863148344181525917938345123186273296531925971690425369878565902015864789229060327358909373327526246915310184057004260253264391835578935556888993755527457318151037698559005819529463343080147150034595725770610407599420803910479146828361013781842718595576589578754730205038130419108778702038511789345959541776531172076721706715227547804388725485328935205224498106356485389164085229475169675272847141431197951931230180945758285701604172715853959604879881737740134877968478666987014687421043567630375476154450917838663713887045937686025909392161988117768988096194212002775245555460768044355173118459978759971867561069245829519366586106345312374141544318393126949014881322293375963406959655724576955541412314131165157214959341435736251037975212817846682665846095681280896169427344369935085583572159624271900139462291706377136668868764485835512601715154332719744077826178427077835822050720370354212479536752214164620467766709929948288926915989019235824946535484907483975534723229250179194647837016665320722453245456833590721642758176249502468414324683479418787936190334450694659380850729965698660900153838440264874512725622533116174982173585706886736855496332304372063058508476318178924889200371252245259309958588565423353837681593435170566563411018733846111329918596539442521917416247391282385176188312785287602257838552133491426743057060137140398971700806786992207092048098316305319411867217348290643362919210752773261513714158176618320790681375657718216678328881434455993346102614107788874312731278377737990017602448751761108061247431723473211690898009362281034768518385740452386872596108212206777317317980718207587815744633432166889040566637765386365441822778459360659723501467648473118475986712971804765637773956244834707494672656007561109925446436452932196328211876161897314058851663233506162411860810179874525572926481524025155627244864672933348678790623589454487610114622199285446263492568324181348044907821284949665795705254810852849681533612609981423769570124340136053977505716201597383767672012050752392064407892646499849350444795673603492647341452497225094227758685960399626132097272765958347093526653497356687073083366641830808034126685022324630694473358372887251580411861462134081720124747328884497303209593731459516497442036894208239881052249791305067696138306662466805520582525106529372489651857310739559248829459051116867582030479192426128306250438453744408626266244155107017689045535761736689866336575792209435852815967471283756333140786166040921408994347326007799841301149604107220049572345671308402305056307626283453381492922117284693493977908508728300975882668643514715368004625365287117307809437180620597866869842018396129247476585487617228575562816146420271219012803826932996214011038794813764566406917424515475438418629929812146896263693483317553531768391488053678655766763088741983919815017067508724309195944962549215003283374437817777451155275879653825466721496720173397649001088737141297714340482163605538446593197738321731095810120414265945205277887992299798282393760846684323335533077858420862865097888968096045051561598244826303778378047919575026556123248700858010567147403995203109619704655079446331950192200501396581533390484258151600852130896022906217955724323786982916373421669068992213870406645429981412612358254056913560976832351276902698252923130219036751997180620807071753325858205464680424063343712910971873433511699110788811509124538188977916883363955074831187911457376870286708424615547393049380981887414606420378625346200681903798843720874459109755119308515333942439253980324777498500392067452351742330442691306716980197159396325097880565281962068309583421029506851246198271291101347660463788816428930354444696071857558670147074810042449475080977367682165717372980499630870444991668436073118153523283307906064031519121169646512574385850722134541219228878487477549312585533767099552514558595109753340392781761962388207859372475279291639831311364827505091974970734376842559153572214724701694098566766206030510154824112701489728430997099736980215872996223915663830663420691878795951788462328435841439499883134230136305415517138190473540629243907960499398474589740923653259872822879532164687854661038889966753780049044768345751400576261918395224051808332716405583955612530807136067873550121344707252173834800999523028916456538613457950755887392050398709176038278930090151669867544462250168234770485105296521637469931983500593699697494298777774403694123821671247560562415285203182265055128148487260431897900557326204252560345619242349091622679461999775850522332329125250640892421023937407457753445355412933152733467235411695329594833297380852429751129924133603276782085356502308212343200460723219175997336418848310943162015449107824527138092484959884528305256140653974580040174300528591191484263107878844848220987264716996074280677449959758250038847301732194850657848722165862044444898695097754926028077131474941860940466603769516546864394283535813090166028754694542895851964831267221070750714692613858472345867830970644295329078148103430620117006375567833446689443806986030230782532437121037980128292078806399652759053987152778791600088598740571977500329955568358588155853215509568428468920345801606228635480578096839892770747022212366711156890264155923789472426765373443992716929323295137477550155038609136449433037152552768083832493748602877007353619129636306682837723384546005405980002899735801529628887284072768676886624877983315725507980324561194904125453998382817753248526600094720468814946964519034631883583773228344632222304182771073526793235242822420143222264382981663162076827925653917938048383805513955576196114707405895794960004986054394938221597905438485920946375059176001844690367862855444903970358266176109072110640495600308674464922687046536035579702351444035357262291207300841621519917717989885601359704558165325220974486680068287482158578065080899966275662916211054709077858247891213572050801404782096239182379233194954380488769000794738879968060455389608771000178591793762285305807488022800672904284325925713933774320948598048001092322925639869892028083718645824059260976227709580934043426672285440652547268023552252755838004376059794795358598256541226122270361781096155085621285185478334616875575194806134099583271528337594919246231273661979419919127275399389374517207889247586369814791082649496424734725464003813791530773266733508441593893444713553050729036080472022491859375951170559903234276060590960383302333486675312553737256313085535633007431037369375393555299100531001177850089208578298261501697997384801479132322514014908722215811245632772306552066693260014104726024258968736705670616279220386731240352431540414068758064868710610850216508788752750962131516890353873618140982602257574372661034128160067936922676059512121614734112333204747591511395157929829577749779437323981731124100717220829560327714888831846047878677250171176431000173512065349310760148675145279517210304272062836840352943603492682803257568614263537183562782155705761950545487178563367997845465113288974536796266364013889485253233718595434707641843845287869286238203059897593351067132930700585294010436030637023800659302397937667777804543678612300491826693250158609012973688148512703384422540630766482420568213783456250826381567777332241260865542947446179997448649919749794869352327992749541766218920347238661330086872206906601406628101291421385370709234494333106509708996407656500116510084947027046560816762868826956508016777559930955029217931754118489903111505972246222091033475388164945559755917143979576725321365327674761243276666912015130946917550883846893757516196871963121674684662782551716492225201498403320902526148574061079663646755063718157137205353157658484357697092231302757393209705911397107195691470852814851701913463653905336730269526811591885004609267301320089118217972302291410519077165812381945978870665934780948787104229064619663582025349315898389648859654132928700227222265460263458807430817063455977154849834668210900510510863830862817989524990461369568702580299446836199246422544538160150521742275011970194329084676923424094399084100751189275608525527942645543793440328130126408885225731567544292523292151698685024691935254754439747944335403228411412321253826181990612361846793302612405067029790631579612514914465160606257303949374691633753013185286388688792261022579039525878804146184266037352548813401116063230010999468174682585607583842610600417252654296656607728876510410884466322390468747282939772725814987809913481775462476554119773026844193237776597034377811681189725995142008053682249341468435242518905532164330432220987330272396701998090757388707566193073283265860322826892208537818716716761441674172328155763601739641067715729137581387765249916151307291242516996684900796539036101204186873552275409193276542888789653067116332568635838141624014914479738412296168438531318278935233448532283164596904478177874048424139346253285003020358431187929766242543970281692683774192261073725900235104512326710605589310391682016743603483955080880509723609928393452694711621204565262434583826160061144121300238440204324569511433063019129856211614940232418632793056704091319292198443592094383647566741543574446840083810054698588764451332533698744768614321519195403899367924340427625074170171425117469104334798823723403082221514459741497204553400952319200723659110613086954192863010609639583980347507351966473695022734794923929945185012155642268661848257358694437179365080769199369179158476072631480563472219770939715558183004331521783528868948205862514024571264405605535342420199720460408321407056284384612311112210440419655180035081422766239613707700382006184239761768340023482347007631712010580520158293449246078010312029286521302264361095849968620044736765225825917408883786769082144936688332447780346208833157585247864313669975639973062763347302891368165188149742332799680261306399276228871092028594932601479379701907774099863790131665204136906675123618799454932349443190897962892059939581767118439421480638213959205262164370155317275246405831356914185803133915679172710991230368007751559502646222195284303215528484420215255448372240165431294464176716665754118185904342538558334264792354163868814577019419998872956527145798697731247786240467983713714838339761377745650495627054091654918362895450301785217840899007523450799003072875625228809429336084562197321784317760299744114652307208312282496064729357552711480448734399181493234509634643135636635031402326452647025247942531530066585776611795402736910172532497038313292122838381270549476594212633195038248730626907407719790842187048983690570449886835837194957792381076474339918390228480647081630005661367567638150148739692588571548146046096763419084767777434053814837222745395099926888640288017460105586770544416487868958901562221249782559411072109427775179068909841239862462699432772570460432087768658731684258401777025284527131768765584198652329743768034397617457162897983380219070087596459997406179578655482229779253094284420080705434383258525421479880326533488318838229485572960744531977149713566049796850276384777883945016821967221378712421489429617508795929092701576639943514115085575147855146848376751639333580482403937713258198720090703091620376304274439913333225017314628090126308421445705734205126508878097615299544681329355103785342808050256264155489485084679998897188559084166006412732254131968054198039621718415075077743772250525752160582501051181058502752636242255081889884884493587139121437201736692025749116744756358603311382240704658512928571291116574792953136385503084700098759937523565845452366669383822730266311165076125396844679960997261849791415970980473001417380036428540503207634991097041115876800429281124427001619102494158309724023114691511578789892852324758397379340757006320783779610337055771356383820578505321778846996069852369801156465140258756786100767880830321852561895039668017698015720862823741124983796977214804661808901753238115499498892134635438227208810718342126614107614094062425670360267348661284023077904863328445447915748198688852836582332989202117804379394731852966811958732881277043873712932658698029041282983240350481357467875817504593729607930428360410497037837683240819707071994147299349685327161426789274922420127136658317247729893529417209701203077429083996302769012957114826308156943052636667632653665116170893207789741472888840969939458380188768060437050595730810091579155671816337482731507394536573456057031756895481779335207858298037921647684556974694757616941023709640677303687356207342243426605754800176509632314193311621310008555577222978188973682629225120482081924258818024870312221962528315108137473451973751849769263132857299419862251308203569334441152425624489898947625617924959555248361700011309578348725587744174894388798124967579213907275647966426368097833901032234196666610554518170889711410095903744922831693156372206651453881699137793717056632334656615356042461051219711785200482474270337115383274037025239474527287187647579270499869344789539970998125875347670404469505620272020238263821661741003299975742888377930989424078336072343966943386488134497895358501178659901791382429828074838669836635392540541863947729195096541735901284636887649743610090822780946021574923659017792166487389941973893767514440609838008218434019605060689531048100876006567476579384256049113513900881483039224208018079090884743301396605191900229786488863470253327013395985155961222643172586924068742621267365652943600424098845185076318613219122099844219610223099305886832063973071014453909174724979743594502644940834209587988024536620248199424612699058040796579662795511627542241017667093969187488700911193096518812931784596931619756975015741178921918222373640254043871433676936846870781288420108482945285340354665418423978947572704917759952299397291794849691867653266497101420235267971558396758341981996451041085350041439324558154783473031323278157848338343040328410931518438901446928852337835211271385042436521502975194693913140688385568555436050159177146683515717624874141781564714549459646968814639216003987212157262327188110714682096317304763830050731274178302082355878397464997669102234895027842801712382065814365549315628150162278826824462161647332680697938951185151566999116891847120074098278501531439547661684762345874830230488909505180237246193287835476427217043038012340693892661229325163137112044384751841576060023896512138056978479742888775718867848206942085867609025780542835386127970755716094402158475421932170677572454251294057442766033965343558272445463015948348045577802965690188321327563334039576762525322809224919183642165484878903080531687982646953712654327390061242776681532268110935871356638955792691100740405812120946842782012243434684111842364567021884453095482029681378754933294029423535406833827041955847242557184648416289043124535144829497799766037205357922423517217797743823114589252243605649958679961877405625031962408426731327370223176605454680368265239541079072722276772817759143615033451639049886910182617390915899055101594641978627423588528779889896260717627646268237266979969856953380006888710379878728004484215354810436215673577539070701566126062318073040074096416345257720016222373899647271465699672836952625976032918160251736777426430129218305907010981095919405977131426522934952130297998649263103690736386470738209911455338922037730878553357638324009184449127999498441614451144086043748439809117466692353649895630889046799399078031661773501125738196229496507728766753611959314626606691340243299796746461301622825205780432326083752556691470260763998735248212931741290557724598047485018316872490028384393873764116673068656861234664043840134294666199587518595437664356154759941922691608352889084945722737921108524774133426959040911868398728495795100428656810511583766910882748039576644260830602273689999940806507232894713010036393806062990126255376542880376885949044878683848612369112837243414664863569844125732920536506940970713711990548090380584910565153989457468358609257917535523672380355702299796312600380650975984941789169262535246199434721365413045022947355178316542855728165570223564383407445599341550522083318461602049295727990328325474795428531889222438863120140506272753761675120630768151467146225305023418901566769173212252986577624977185610419574335100049849444460812922272480725407161103724461400810847687831822836005120625703608210823253972132297496819110448867723059299580923624855015348419866839423266572471680766405109224271380064747612119344389692245595346287435165209655115684996883697586784174621113320716079966813421801316480038895383511929076219555186991763173474070007314487798421863066852645336882636251402435700223703849071482525129758908631279865599519673634799467921837888648173229910004387121387109010020589609050954373357066918204953045897440875137131570638163427667116584332214188453236184106382010119208249373273014312539541909738388817817051893821730785662746547342458547604066849941827718293805449911448706774633075750027809863071749926489583067908712778727115707204869657279480768896740909996489959293200756431799691794740753592910824812018643172016567075599579547784437580432303921672916334346489371180094203958089582170811796562067101359191624488542966093653396971860733466332731130643590684001636137516026501970248218090412276975038368104418203606937038554360264376018560862761086445070660876033095003110801497344492768993398901151642922816969366590353218239765134846060679406617286444849941413325865207825830065847112363899017815544574518261708864854772956242705871263310824306265296717915704121869425370071413036555228365654227330875417697307225380019029117054828178700981662849854403123024351253258520735109831974621159068021794729024858349085389817579131923070570744694021281082142422659862229343874277093093748012686128028294905372881739265496242459179418554467916167781127564234238933049981551826055011330812268467384052932622562994729022197184112177979220299655219037239207005667151559075587731806228078731912300688967705356214267627398840421906493607157435855475649000672466739068578607242473682846038953482217664488041377043679861058301576973670053262754275187882992677530163783877297363186301427486816244293736521130787300855671115121530552192061962246040477408554496043863772234411444215551937125585664680532841528548518530224642963795786771730043525670187152193948443759885894116334166764506816470919065545849666108587752969954727859071657538817873232319741744289544438825168224005326787839113291897829663986413624294067838862372924820378078336644225733138081233240131865688849622918788770449228348705982929577619962816513835874601455149963548979472375043505699251052821172198875731001221726569087117360783787237982660180731895794379949734134417490355022577283697688116023624661287204645493961369971617068513207459032190513772256704241129665443698517579557717024760917199999322399077160244086364597556683877487999453326807709362812253552953598330492750377047066553346170967828919260824618429189279069415503401852326802298559188444994099501738368342754172641918588972223545500920086073063766259932822701829410364672633773249810997365650733115952091007549075182386770480185471327367564203081975947196337541777038100496371064943774767196263492641780904709206001882111441442811686981703494368036078127554182243851776127196185622175585517625462239985984188767618195906611055056135701874573161818949467089784376529486035014148082195054518901557418799396928670118038076880436512853377475060089913448448064790852875395087906333664257528158563409441212321784529230560815725185763463469739534903371820801756719106484499091577537346704053754671835068332352634949904055546335168131012743847312643729574077494390125278384431942692799591033393611731142188272303144338045572729585072743540976983146588874913057379467598897050274201808210152024632556489557810410207322537045558487104248271444035408744769576081848356748423224121868761746959970664829509261073441320917936281292739285284888167306190990064402733769662157316307685378002331388149277777194945513900206959166126928996969605133774530411007119016312227571238406071660519620248834852724159001508935247358351365228677947541610498524259373700862512104744061417111436086514984892169982126676449675572690822768309739344571522466533289900733688450065538017240065984746651465014758333730813261342106843087519933501846101387615440587139926239713593287062135767022869498732062173054385229248261134624694987458258053274956610967422422327398901849940161329830596091972584327197214911901177491831307059776940111708908738758345614957084749854636395351668824100887477301508580575215435572241986821781595736498445348407453881187596879250465307576296879397082287370936291852120589946193033705993485119098265756980753192437409132851987941004692517693174278897926906332112325023873630224634364863149689378346981378896491870968106525454600646447920830473048312493442475284849460420023831013155255702500256194348553228914790986486158043852695103873732721609236995203406014078991643890208879126253656936895914730508109101500917105832420866282816838213206417739046630100031118474861481358409709271813361033816843151472108149884258406032256873796836458060108950581284083859865776918014261842806160958732144883726546654283322441934902103461534824545238041379074563853659369543220479008032900062707300711009312762132367677242318943121309705446540865561651044214271141809588288328126216114083377272137578199743608389564364101005582505446496217617255881212164715829775318565029830251776069184327859372606646196230480957092506628807031223905086927290934518559354304942292750244355010395069688555804373032135342579019500992025133811797409682213752995774127782196645019319218344496734385782816384489803972575671523867286918849681692706679870832133483051563114976295816258344042269937071642458990320190237515111316517018950269698067762713882630289214008668802917079838633881428581366047487296093053479310736775567151196443628554166907485861484125772035349160965490247724078689713597430188049896563373194156355350494411084588815564188274178475266793467151265784670515632181672178252906499859481596103998438987999173917018356981056143665556067069011339161124534919439630969373709128286678728392620757287407112766478131732961359949156029774054259463237554029997247088593989400295283502101788432074450533663644208015480186192854320590232224158707821646707685180069234571195347463835250428641431048262303646562610539595190414852689708831336459469315839856882098042522689126970735990466939711801917746855744217026745299229638288116768943646845051935263633597168787599226653827361944294170663684767534485199369913537885119030497885911130064495327737781535073416998668561547372549823314868745057787464499203054984713701103650084672773268435536155210620597710130418116216648691816638149416281304981400376390325031365951184406480473839568172251464782909731101319244833200716360959678611333683809855960075376381726188192565866195863825847099573948149710070198145051412306693049114516527176460124626270763210436415805993814617695024750677081633923065062943255012236045055843419029721708341326751354258418828972846419746316028436860528184093893560622238750812577687552904351016667066239396773279630372776113719639892473623505507334735652823605817130189484769750607827359172941162216778253380257714294157106183725544037572335569977113698021786922256087031215170686071646936167701952949868762959123596023945283287379245006618682944836777411370326523067198060209460756224620548082877130191333994654906410493106846654672525717966185030950817045354290441324457451848900729585069993485344420730844583234600465111551881530051037428662352389566065494542180150943979680761388331653636836708225929908009263874168513275725228996139682185426352343569003641342276613171388273060774459519213388362871001455753877407723919194476106993079925924204032906684152893875509695395763809526734407230255676149568453677950531657234099808673653055969052455636303085262238124846045757232578644743421662568319080612615466824211356031311911510750144416822345701672845456027904247657273082812684952822916774639118514545051673542194853991352553769018635330043741204900628267559750748812783864789239728234347837725628612135798575537465744043395816388620172377748319006194043706364724164588250872916092070779092819141725947798560669469974435264006737312448610981368642625716607802375890147459527159368248519788690202138032844251667566074692837684600943153159871161738108411883471839907864038059358429148649249538796462489063212002333098788459653700226142330299816215178503801980668065062645019383325316334003202556713156379681356729306888818231193870536967061902792555209041164676494318008938233557942538773792595388672753636113650710694989010513479184977514053794822660390596040743260672638107245403316238045429380386050349070637138268001252644928263494402003331902563661235164457637741165437047611729365029933287170346217937829760064547854649734309799138493605956489093516365322544516908766702389311913666160505910266021517341506433067353876641596586626790442222532708083324626696157946361918883682953976685546170992213477188713504416853615464304400725863730253164140017174233407876902974592376831321460541179035430984712108841864373873661156066014050619594646368600371668539118551184611131154429310527869586320311235913308985005560432343318784227147460972176630141355151909776722572644560268610012904591283434057318626043475976694804969387858277350098014836172643678947640523476515348325505712975853265341599791131174771436272219654341559154128831047028865410843634309865291478956266308128659696625452414435535367996124724563857243372402760758799811995294227025047850293983095432351447522686342900817985792528070407604730691383294124563080099488568888187682004926393123678087087002867666298310397925480396961603376766076763871213856231690014651832394459717132532972692871548352594733509338265274405890727584919321948404899123558179873759657714321165369841983647782053780830012025132274533191624396669481811991005066874025649100978297683954036324732222086158540691889491396942382355711272720298387109483265334609474843829153443298252800064899767886831977500813400770026420525553163803431381995679664479165189410020336388000259533084628207215681482665813766324459334037076005069953626231264326806209972537049830715982867826312133948214250814571380375282314667083917378343275175903306725153793940968983654712196361321752522678040506055327316881097475964684215783832969651942557138838250583424783725274332738532924029419593246051640667745194263197613576099676435663938494438201727564085704216401544761326741991701490758120652283311584192698867335207251396681661108200366974353956711543547776581994442734416281757914344082677108068693775732680155456697840680543556296483447040151924143244166382055238065631308516294081073212320906349583986042454520772654525757212511273710821770524735080159139212637751046751326797243818093068153047710275254623185771723465744869472635727151267732307019858647753832725706866698757320799880021247857280932706887437097714894693115148313039061648714596676905597497020900957900072433808558388074816141141875381523482395305505356638836792631425676169359540974007879853481920266301093887928996989477126702883222153987190310624992002007847435672770914844619607929292387228122784192396718342026976132919017966212102597444973234700247439313867573911200667710045489685618444637169859657490675384385329358439580045636573982355664691176281561905331829094420587998024781069204349329014374971038921464061409150400447775980393654306365256105239560042428806714874064623125493408837331002309700624078011130187005139797120482883153186374951422340661190622190785464986594944265694819432803941990901975450475156135486088015016725909832334454192186773377508119530711768021346531501128177037658461500430052433240260691754251877912290561353796720545106829193551336186166437353795090837276256280083784353138315694832704080567825583355109077228302751045518062708704609855605732150987272150047302086034355699534761188771951925080649187281003436848584681868268710205936894815770913702770817487650136808237249632598466877779190678441156060584968489650194693936976223473269247140553461036012392586120078382880001516703327720065178736865326321893224998734338498268462635679996731653244669898318359668638664233849483418942189413085487394831735760031632828432237086219940631556697455189733250788749970121954928071878615938077556405574870975372793096954560027235297708508618742109052896251275312473365614725097674390056758572019181638016016057989883779319199213840538136860043310747493910789323520834604871311968637893683889582281805471603536274472524337496959562517851510421053216339749837584804026654797370370416151628280307516818155497232062180120851085549915827349776257442776957537296273701812093186821351764618088515535109652235238627653938120181123805502561490163605299108742120870771751890314218781479076086675697208591872629412032213656823316206730426898594657473421501663710332608435124190287644152948133266322703968856544344432394643611901939056387579205477849204793958192670333632394734667740386134636716193734365663971716624229764235810356187277542434205411243888907904725264601618773232380938578284223318101770597305549069247787774926504976944982470279049904487921443699284445951367813679937330269130449482972990204139175712804526297374858618923468524451215671321731209343920313886167102518120467117933790187681376179163848341574831264079299193870552165738245905446132541762916622214846094833057527474164814626227401328245525416782349492906060267574761396454556888183318803181784423534706283596659248931264568649761758817783205524312668942854463273241890145458480817074044131205754634078074967954232875073444806550193830505659050056253295410131620435481276380503575689510633160857981670344910033784316241897160833807926194306541595119511585373324597678712551777995907491756642270971707296302177508098538645623086083170630271097067403125060343061532552999037709353176115729658759008789250983280089796448207740191416085911192004290798451053281235524541541863075166197174293215180311519211116767286016740811225094743131963106965207106432792772728832451821329483382322970480106662522973260831601295137929885489122172713556876623449205724553023757137033154768704953321762749592536525874641846112079281542224197229937912276313198919112640266988721032173047057558676163494508323647436512792684969770997236663532973147189975619702354947124997457885522567764479414052339806100684431703486953238645219112293762221446622797992238152057635454270848114476883630078361402871319712395514434177535099556649490724265909889905498632211141794719268105582126459048895097776169760048485903590689917838469270168253167518142519748956389973801024541405792125243285423615426356864345415476947323897071372857393769497449453874138145070743180931109178256496533575878591970805078575042160452541156156094116887229717603837437901527090987953197788247582949370183831663299956339856544678568006582554591252764952473034545610789018650266049580119402348654233980140635217614066786998303108684957878843358471379784626575007731593387885927396816020461430377957340688811944182376276962312884081271451028700601299640887296653542349385042795276755317753786414908588805956352267445210145905874768379897411026594418329237658577079533446970015431206688001301432107833967936024992339249311241051026320961580455247839994970144172308063033766830425032895339749942637906121360784514789985320435272974348905970837501340725210782756078905140569444445885529655577657845840830544471900082811286445935473240603737680654675932346334124394162053287965102081639094164155837670950873730715593847362661280363600006898930504388616108510552977212485088789198148734234622048438207907448107709688259039345712279524061390439103998181994548013229135090356984411910231112531629171811866652569939031552787274714655421766356657290080326908091627512913188781781936999885789516002218060171170353246961258524495488808812894313384508216561609683089056340239938815747303455710506363941621760573192647928206263376442143846339406006172214745502928960137288354032542475207777785082614297794117690521224681388000070205165359640956447694193457081410766587249563049287153623429602457040027863493810941286643021277773744283190638325976930419266087345711363361004505241560848773820618898206211747966136309261721074619497640077773689780549074796234467119349096946406795482267006920739443515491134827822836019702938763654191581656053800703807797794122737686079350554114960249068173585023627197276493114304005286086185153931153643165790695525025796314655041337876049896544959337598467122031830460021079049253470389083026870413759802595625376105441119643396048689672480885117736622691767257007384103082335644355435671473605091748358674531320301694009086747174201429450467694518850278492024608698604053663945415141966319956818403252990577158937704562846893427108024892728805298449420224799946293390752161886649790540275808341921003334986528786178841348784556353264174178767192930176949926278141169016199615858600211087063462588219968544498445873333036408287153708471856468629344763658863152991032412806493009340612004514225002432319178760113434637611821174062641417431808587979155824601037101273879796380340749257258266130057920963610880086850654511277432728007994212053218000692133871702365637470212425696959804392765316693137197612124669449161374628127170336724496181223509580562681088108112940252973950162831795815456946447206287566165859140763891485461825701486697414280912703131585642661393528514551024056329146404974295589289735556775418208684866340485879212622769939724790291812525180373420180528046559964021851972412179877010081944970681074143306644891303787228403936556684496102046621764373823707262337853184607484340155629290757931302007172218970048436407020436236408365812785169777910847666040975300839770708992837047046540404420206716345736114628127051280992086150176223396259941758340706487704371031582708957772833249199578182135019179505555940038082465961928026201706602557464236721629359220761991920531125117876090312056997430556034453971540347074221099878447501327491555101063916169266234752437124996024325734347683943843911557439428511213603434729109922873760818065082365839685356599707050059192555061249818816240943825821427869779202664491889932016580908761684414873804258449301190270702904211706220474706149309857894882748713060463922745422191081184585740173647055023631209411410349188550093596440664892332922434299911636201149109838088575321620570174520682231105104572793911164170123089958337377586984675392008237709436105536145597050485619109628214872142008591915578087285242796005279029979555314889341885966581760088339203672983507536051461229716252043154184758627777380611843996972692278986805333485539005665705501985222472772151730978301766359534143241358412545942809804483139131508126926939411316984720821857144924562990138341505820339724961062874218306982374650303201928471790107750690848471075722044988111286153193106254941186806102536169644376973608382962268855199401153080096550738974529822988333913557182011159109223186086564744384203763707211269308948511698096528361053677569398974106416667941442102960720941617676482885900145703735114226944078004678145577813597266972944300427591934270671857690740614485817974593603220262348184998495067964338584730924714611749446900985415701775716491834690719477492751398930972932237057953626534802148808857517091526420594151508261163205096282906084225219088335986899412687029845508249548993875311393988699005902561227152156792077139735227277656915588964307887201063997608658042348865827615942819319072504233916515717333448841447979475518869997370222254626005743323922366537338187500730997845518589895293847734100263432073409164100904593960852050247972809473173898388322128545517189129075235724645932318821457727430535769276911727175545269017147940271871777647988481387083973253200098121610308530017002274211026003096979802233403765803327039225700728336603741839993567565328543101933083653564910506781712682014263701074076437010873953384482204587805459602964847518789649621750173798496368607818108997424356342607158597319027510511989691365904676790857401510324002259724767740321857490021623625148777800620207410148991421294250431849888887051173108239468669112400265563480183031696904634576400767211001283163732497204817917360056004940679499823998888890758295122335962416183130357788266186697011978472143451027261780284548557363108593327424987380201427752410169943440916038844960790935352021512096514596917340868216945317179966897096470464355117822427089777341463151479837077529793591771404131054148082957221132139695718359002025836952285903867390796843725359414074452570662240130937433902055151287860793559252466605909680965924816609095709979980135514337312777852391031010998453909951961744151703198459288296031816472629160681549154102007684367493001340639684454062279165995219910137974685482147701272492494871389574966248627897935058162571651789092754316785669748542644628640965505494182979310119959873078958165664849713961142684646730198784207923195463859724831083035760538077542747954650645183615394897351824588335686317684030543164770059723068006739361503144539583230165716569553870334081854346212446737170193830463222092989366715250728926673766129541663783389390958905752151090649392880727972172431523012237067723069075520173571305846859525396211598646272934439475626114311030262307405682951358893085892111415228977105793372112456808330872449162457395763362822007779296435870886488460043694123099992755944837564382166636618067021950079162335292156946811291756470603166949954497371498111890828908962752879259050973912578322206056160740052519077169801897495418347450154487866054743613075628695706214971497734391441266402172297298805390059596290849358267607601443185962087186536503208419249226923320589030992986743377580876586139967848960489485980879034761778078139947892234405870260036591251771127093093943224672428402146922876408511060044938229726141697903484063418813503821299359718866941243161735114626826837845097738718345327051056543698468940521819643479450423647079461704663993823742102824303494340957376153924681950122637393373492242091155031170489344516135491783884211556190945395698044915659329657199928534694103685667707546358891888309887653136224466872991739911626699010786814062274073545987989026468211061149516273689914914587555496568133319637213522643760260387289098203231693328299767129024839500284753678708801340421904206015406316303611574207131621328503041927854164691179874751496246606001271307604830627394860012925147150614887547333012559543562501650677024863502187283325396034451172085308491783944781567430396726988129309680034905963194514116555030646107521054587840116028768938367643182234394825515894431294541745651093338162215800469473938954237873625290850734942134800178273115477269710876238691576883643141154640406903782614732710240257539948074131869670779090026961744106657625956903895940507940540012091414040698935304758332338626767643413973590192303990835387872442061467292523135962277723355054875315592830855820079897262795356686288225529980154831702535728368944144330194882956994859834789583046062581820647178091281174003972679090915976563651465877991799110574532870036405260374881476560788153215840322817701211831183707369250510198093771253737902497562079700792494874864325497677478880257501611956956325302967728073698197416229100668686026444937033295395193976450569688056988476871057606277357654100038010490822209732358382650433153716244253111134237224941478791919630567720357819748286628049065987440420170404469355005063822881773881474221511527116635615136057169615353249737684792825476485005890180376764467710381646162912804599186318653419731105987556645267836861280627817372875254434111435655814543894184588335902332033798844541123946197372836933266489238965748761462050544519490291980375152705888069550047897500993403669852572920383912861156929920846150858246646540591949581489344218715217841765668685422468961808234930445772994298025103373667954793420532979384107808497179763566376776032492691641375114989459577821630282752588217001922499548651629326872683250907799756671201700124876487835759894279811881031555404771495761888664280956131119969259659344915061262922664074077995397903143390516901275640216416946113112928950108612119670331844510840789598172643276578667103887169316189080724864829762127715393191527273914498122486099768874814511028947245349085307263045080637316936507358445226510758426436911724911355561396639344537261865226758355623091940353604608848887689688324825764344652433469912308514068745600113067771420618566162926561140611416404176656198333094892834273437370360668730013935947135934367402231790328764260322065570615170901947998014272978282805090026011447536344767778743909883869327143032435170670281611444878312442017389773042502760808227646802389259917024239038102876554216179184480136561183858801637456450809136067502504750485602595834666878573065001051995804138694667610764075822887637457226773464488310057032567736204391198314953407705057749363760050486701482185902200747066496370416187609848785800636733485868501309894878540207533616714822411173591175965224886633331477708873337871067234136433748762893750890664149385072701247873507436262866666975143618245793809100692469378894871915949994502174157519492013178735737579499072895143678140282199677647982130549498388766325933269848674776208974553315558614829844159293459874618229505016693371901717338252986617941845598614528792575225984135739826952726794612336191265841747286987334007627331155104001269638348713218860364429347198067829095122867077428093261800545520037041653525286344380327798375548042767544436782125621112719446682099960403329215679781955816333526656607390958114760055400236767048936035120959379752858517613514096813227965606131168422169701237744319364360428327418153611998507031608885447307923346527517321615818003144461456902511974980570682116986839895473434184000187025535224841782699183963396266677303409518020703312461260761735545564954145027784074489177666973907557676607134547839525928525497527119294529253850844272770733777959181890060836643141949320908244620278005977786736108685315054093721568203606330286205105663247329655035558783809173793644641771880023031824706446379634960457111072185686795161316952921278042742394804679481220019457786964185068860188412746580491428877559615451599805023944819814046055659500463328879112991625921022395642432459060635584448398788088035474640689414007609520848139166846139878591328949371858325909612027205811532111271161420089027237092939441306441182807312963237929451007508021342649374250763344306103345151576331700857454562665626701280198986530370775770741426634735602861422000320006769294154553992277335929608477568133198820425947000459702328376929286438165283141241162566470328883350190227042237784161751522236907191136753422163610943486954775438758240025211679125152866309121589604042395734604074640691125991175079480189080622623835691933246246556535267339917855989609614995647081606129923155357269598403611525369255677332310379564076732917551678732607956142551615594871187418099695853187285133770408706137131063952693378550256047861335428225992246330572255573566115936104970296727173139509539971069244700335460023891263873210871048969063571900786049794693938167963533868156234744173767834643956064667699677839966571099392716304856412465434045107575803814968117076024311898432830867908104925242243321658807784470877753380409277974003095284318094114658771403221834894802663750277486346424184119959501187041565405419438210218401384870714333171819278684922948203953365868418745358054988561438358175698536065849734772414574125541734197079808519500933106490094593924122271675369836247925538928316396459407515064201801007423384752642591253429612640738885588537749264430940313278595964876577337964489519055407978047953539084776656180795941957604336390262856260900401305994228587813638786201378440426344625981098333692343832850544900033174649503995815324587997611886587078314716685082842980635217095159613771832817874123686422659026187398345697250384256179368949484376617019178872837161017952642110181162151236037502862404070862116357180652799366855876003113210914444465181370201256888713262588268350957590902208829175961873736048699509258355298693230419670283746004466917407284537662701788193071883187245071072479920188667942003023726301116288036374143283093471538238121537882690432224955271472865348915484434031715634996875982682261859598689439318611042325561613398354610493290110021894416847189426115077472116244183665740263396156870875401859284010550265497743143526925343980368866045739361997365372155924853883131001431562925545529348358771488114054121956758575327200940913122754614592880514460059473056134022456557901158030380870900276805598859585485054706656614667899634745906554495274624804709263928882224295736283628466815873053775873865438618180374649670851157040551744790527577193260140291103266622558882971903584929540863702526877746888080507479105378916999818272982492823898692569275064654217186197048784847930193501617788427005836041010620973220003556230614694842470310497907146989508771250955182540661583013562290474969945951099364775186298458163259487061359241777435927324061018570038277159303021777723536535158181665919443260437200639505056615888526971476735463074312105207392774355787917878954627221121079096755820929715794625815208896444836296387017895860323066183931259341110934864196272674788171119484366253285606860271880899208144751857253309617224538097117800027965225976547833066018062312232411330145615622092827002458120651440463814167005142982818688820665443010059064085461584048376750789166056747601750970171674184327406928010795051112733499836929774769825892500553853075677757318282606951985501357056601543671671599505354627571674716935163877405580656248057428563044095981444714154946911982522995972563759430347275003402477288219746928081263884095028821465909650021844325501513386948525723110181394620788293072125201559958653314121465485222681852092630190412511982667972637141683591267254141874352030364836109832496172497326529682430978035648974045608821316453447995510160417018216959206265878742081350286660921862761668799047510799252043880799866851227088336685753557191682342132935297907095494941366179726869744841739359797957332827812804619267485217598537637000200547561454604448111479248682226470657930894939204933017836879275902207525131219173551326240116572010988941907739506057558372236245533134567075475091311023943321891854724293268724130435566801242650530923852334838534022267013814264125941167774299470337230432735355535490101549577489603183531194246018752950045005236388635828639714560239292740308199156165903910510356673220051495974464909721989693756422635135078515005449892629870046696640377697014019096256975175025812221877286050967985583644815014865221545909155500622704684163452557622073265072139212936429609374252418954087077453776847304375539820823383502110563498430135539823787854508280279784718230627419341924875362244026763464350194056692244588023075445220086665354307681093728408862980365117850677553584386505211418101984236190033892951478019761111776512408339800652269966674386078091188125401841916950866966759409810131791622396365126288761173372362493115542192989207059789091175657475085304014151607823982800208757553150765001367634333280298028142732083001877304852265198169697016031344480006094895901537404734978369938305253180954451696411730439396771729176669723629608684503993927048058880377579181003922585546222835806592335723676042171635139493019962881112022794185801676832186432871911410983325081939217077345169270023326263106345623483246934086274054166344002795303971889110781263016412199884826733079444758710063318575680795745974400770369960732800444329413194755501852051130815735970276526409366159775868402250511002371245992973876156522723762235820022671051038600225166536858800679623594574536117590264113890424294681200813679419354376432883866357473378330686536780650743871947410971293699296385395629369705966513483881367886479765734951028512709958801584717413440140382146074152199937370582075179282247032902296482337054540706191409245588368895789008370863731315793386995247160714694783847609368301211882280792874069787394397628694058795819484324449038367026564369711193792236184804974590285723034220264584350825050655831990311581904088257415959314112892498732676629819373137853389881593165411715529010500146429499623629286525753617898398573563964626333054396479455419892240036385464969282953303467624742115149068206559619199032210226567283608000414393352401870270904231009472016501687633979902022386078047060205346839639739206470970114455238938096883784557262765724866642614178267020645774100292968326951322646368375064570478539104593733148814192264768858226364949285956281621496945819788405297901737496406085801937587393572568402172293448996864508868136457434265558279994229453755003992647884823761265540730650024588006944467276828680083820396342122171278914383466365981228573985358169905042766047057648438375167784991794097622387147366875560660686187489079798674406941478291939888732965871612703097861901959293203591850065111466696833274904493858597859373391493570557719412016203364782804432381929213213622762208262586939658833178297641724773437659683736787887677083786447286481970078445065290074625871306175716577907010247091661044342793223662338087112266726931143830268107144564821056771739428388038164194391203423463713396161511818988169610929716959095833593248788764466872751631648938687885742999513054316277130976838774334590726597224921996436079049991700012800956192618088518625957643223150460008032641310280605606229118863913025706345690166437733015191551691312271152312565701023597440512533646943913698748953742160862606458212428054999117804047809334117690407714695156352590135689450238444728512619650566153070890211654823647996076957183048579979840681430629657655616651811587739745785910719724021030791321349663938626310602191671850410478593807308931446796355422729331575512520339557783497350541622440233430029435860719245136976200214619264512555503146599589095624861521113024361945700780735713689569736975050063466695847845707888833595259517867526494818806334323835780370866297412008567682042687815473925785799297184317227193783558406915575316110663174680865593663209607104258370552300337694054177000844911028755329673188337850609309587329772458203165138854988704651039350319722859584069579997674872732346257382856420745501870758850749905896405710222672516742584239245498787531345833411059724792022638436361856138004727789388528992755092044458204296572229229480799193253918835760729515534776041312691567912732959396997462832596811623692283691225884007349630059975375260817862331476232623147021046414268933201863335652300616706099641517855718079128017550621953580912224747578801034152411254203575080973377969357088936003171096876804434368267141249234533733025561740914753270365902480847127744745758067291542151875920828249983961915736077278259056520877662589134894193844767574050837466437022822788829681411320207426281337111666810735593924238605557510393545178472805451386790183782488510879518355938444971696429456884784285098886798549920335410298552796177456483226011083417947300870875272866764076838507466045101784556823883370949069152273458340513447354406380504014077915717954120409216888151567785265190402551449223057127145703600910406630240505790880470013141409863352820256797217410854926993589580797264929371039271018929755310390303455685582738316662359918990571982276503534813706790230503094650220543781067814067496335801717556708767396403840923066205076260801131388398506590975116644710178803145118764007152249726961393978822253319299138395867085104286592494410251692440316365651538715565058644227081985917913963219739498212956005505647767604719270556146161967652082317954514976370550375670433783313427635684026460908219450443628062355542228104027705029494701562796663480818008581846084089301033499706708354734563023917250043658236790641832135203847475412050890307046057095469072259860201035252310998691430790115595772493589347250010786784887857865629615967545080215236233969511634738546302973706452916661238825547432947429051469810230450485705801983566876873777885646560281049596280703099020327189166797259271622225204033387180819568789080774762178938824295851053116862800007843093702748310244915551234899072381625777313734635649679874494404526159438673093262515936862443929823646572778126978326677766614159614475631906365067306209529683786638803880096895725009862821722384430738278002068809800293566240053297626981937023732946090335446572976825900960899801360700203533156143967446240991773981524383005863134652557164396782157098534488535169136538256762018040343196957641024645183774402475934991314322350807151373389233351244450140282148997774559536929901263743754437009405074154706722622402903304499317432239010701235061919494226406626282041234041297386762627158454438336859215406190870127980507451309553955265521406451589172921078967027177124907167997280916128550810595944608369429751274102238548545719153612878426648849844998213251501189504275087961846830363151092448130485816864320373984028496841815723228431480278469800847971027772313089534318315426297006712098807525186362953779241426274962195563881621001718832026659407971864931382195984068910586829246246200971431759478094885796956202254403646269858675403075766056532011494293118722437543979299762661056295096645320425808475139167058653858421472987207338131042582110164160584675931875898963063741523831997152883350979534582434074506412806123649520396485167593217334111529066060719111455588403890300261363658460196867955000446612807527977385396308266115680709790829559927425148221362086139218707762970036192561715162916134798482366613767358138563350508643879552906281215494596911150893562348666285634913546422885981830723636818295193452722037307005470431072270284533044436759097482564057332988155394493200135416179998539027256876776951064408762633919742248794032710654740716628636577375774979203179131797319669148338120566232175577323905667762864484711334506266740459520187877617726908026755715651010827121880034102727311531126316854365455329554123454799158387128783202111127827945731545186586491091633282964432748620200359878916303307661403130274980368207874001107179753576570348718855473068359560910715833829972189731245163924352927603222843380002750194731947809050883882070773018216773424089959911678398503726855600256202114411554974164672642335835975311206867770076946988164012361313952245862734308816197346104995487972961020876459444044366004031353759888384289058911459611019012590885737373391616216207202333386259364753378333957071254723790186328537109839466318946231757125741201060545693767316655095119370895139086335286038264712065993830467238429538191695291902286727442981095733505175949983785150181529051917452782629346897114009725573902661564544841329584131725434482393199993572277955370527863391984352322309436933151482361762817523617128114861268782403565164282882643430771070623896211336758510658765700135983829516864630666157514566765859787003310103002220247737249186867210057834524643978653618410584173101322411738878916011322324091158991886501718999116917606825460306004370541704517217796592327605418565407802850034363545382075649025744574672164335361261519609879516681317165801363075721244063723965473411732641075576015978802551562525812963175619950655886200974003615594788827346897869749942870496276501895917655678384947971930409386328947619143244889216014655168178796891923653013124635795905268495375002874582067950589097755265647327252246588818967795034623532598568805379829188085417130188421287950070968908456114946742660633339335025551510598743606170743734929120490176223173703495290901818985908330554395928151967324319576955026040767979845287340605287766013706776739757706965066848813740383233770661658848301623674216946762538416658773026725695452618352155298337949181461162832333932594395131341021324389728046195385884932629433884427683421452384425166471484845855134551266061990898034467102359098827113831169270856375433750034712192426057302087857329216654488936068984074015128257383751273092322985939237000204095044754004164550635058313575333506384029075195379708442647411849165263873539163631903738680544140624707270464819858435838058753340904915642866931240505321541092971420079191418433227653177127100217783912637421609142409674589924243439893027181420704566012508892384869400414374299232218073229908733022448319701911736557800018832035692978743355634337675142755123048479523024948931038909543249173822722311646120851060858487207805484712700241956122451894659099280591420347317268134838512308209617771946123892455250769510172693655178079920987731937675675155767782765634371851649520749877084024171319173196314403009337369809309395448811197056589939823027994335482513205234875652901163525573866982507673236930434866995961388137887786015874828422215408352799092721442480944764936163914590048623394792355722195936545081088005585414805891181015760802033306787275312817969589631188588025693203694927888394399984633438097047238104865347815034489596543643277793250216211892748064420093277688956979134549246854097479563740747331237840581930164407474156739464576893680147289852257319036502166975765659302332668985967411241457291410047929649514869130329830918758547049177614498769508087667119839630661916581004320856365518569187507835578408287616509225924851784101720648379118298862564635284638573414468686841114790877123902887318481885829864962216893744270408707711309869578760000075205784617318892294950716309161151069645137189014630254075487078965155858465424408651184663352637805066339098658265914537388205847620734062108254552478942149464842302170845763740802401205397089862436130479117599507388801406936035926116698555694481459509480914356683238914768302841130244202990061257300238318155689276908612915454512812089461562840808269623874138265933156655447353693850645651024034673045872803014556658001723759013683978874746577820508676332854338618908035470427848716293501175762740942385547578420760285887285658547743545858531440306203530212764025437890174941130038942495941733971600008192003337489765226461719759515560441257124212133037458744943356470828812458991681110342310814720757422451636139122995152284769149847612952785270040497480008358296941562149918221123047263128973285706266193880608829926322482899781804209082682074693327148543480742497912634348054864059862607223013146137324286939736415746582679652247893671157875631377423700706724846691280562034174141363723238535504863155100965347651329149518120270343597380930229638578585930721569713962148176082059852863740544987242507167320552072897936582338341329430790990571319388576896480769708074149156116291473096569712864232534220633134419653035161707943520669717943280232378219733480029396810631515396232209649289474799555276436177941609868077843221601614718929288337203890340006940401269303212866574336683088232547140535777584096401566434226678685733762083072693725550969395753339458787588644870379048098313775302213144517729471559558967411571710994499926415045852032818807650036058460094815670271836124227117111047070288189479996178454243746966326074868696623988976824851382940270760170842547904658628119349030566132786478582725861498283281690408857739435139911603026213193240329143722377206159538635089040327283759384036392851249016521705073364832817828814770491978200420873832268423472095272640092967005485500844660094164729525337431245295957358289598559396802238072161528473457598998612210041199884230294985841841246869019384232496307960153849541105483978518491342946513101980912797576977572382574027498625487830294350606074190576800517078059289636451297832215854430629557153212105020409317235986647750298080428744646457815455503474314672607077415542567471241278627155570763143489176008887572859893245513121757813916456048197731254619570326185834760634931250618377925623391003090866020072746110898126440143064835783351248058946144883255573990971916768073331020646190209720300020915589826576583598886222828778909485264552403990821594450666875627287452385693350145510060082479013094880942263130249495673146519324283370436016897154387806154466597626065440139427429954885422087249158136704348085179530272692011335328150590448646850014997971891039525268068817703473185486396929201246271517851864095387485587696544363601599281407162918198418785823020411083407514338708681868508368593509813158631727428734999029665268084106899887561587608911809737131786319056360728437651232585256203575954309060833924749434675510273862526473545111123346616349089186956334045534943593268574211409814673854866241316638716966553003079878934342005856852746755319488069254551837701654909411737041115084035944592567594135712191939581547007425393569132367174797496128721521621466661647080600642516430650395921814512552103193559547282208848819757156187038149056961122633558382482574945548955338861109877697697645249451298200884117369177050346142218003344850918650557851343330122862452033302963941639040577982535364401856109824966554905848312409922775893616369729325133399458247064706595189057303830240013294666311850984533214694990377924081405908330582749282660917122453286620230233013528649307025681008397129177693451660464763856312691920459901641545550496060648602979632817857938165707094274969818971897640123591684168613690053125053224986328705202851997888809564274519183369050796592107794852999078544824572648009328401474980905087574633089860229211395918705709541355966688517220756262110416217498062747760174511391295326992313992287621402469830168355556369098320070052246077840141858816512006005566214595935419838504884329273845926761157640247719749661382845924180830245885562457596359193955150196708945838974876677020281915425258797885349296670545812555667761372942001669316487259202407635929810698675170133491771910246115469919666847265401735011084970729179645504968470794276745673867709553725006205630483391508869495803711006984568103863884097895388026266613370699719611700969060465739360724511157810336280472777794687092905220462338821059653823207014224035060707105118216908370707727092389802834918925089675817306591163161833185296241339249589177632736036008423114438511146881332965492281648795261754389194175006418972103071192568751398741052971266196659088376698747616767310244004205802014940044111383626579811610306603565898400898987242219361032480634164210178116822164414203296504881130668366341392990970567875238134238587661407563345345160301872837144687844674447217658316785614738297102070671874801347691230204288741144575523176511095067178657070154036568311239531996693361719154425510762831853570161294972624725660598656788135374874461026149727044149634682551043314424511667134736803420154103278968464984678485882860938920243783481621902393336605487927122469860802467040343331942245231526036891251063208772855536309334157867933851285547868763552317938313000735263931623649885725067755433578393508208340493920656993627235494979966916760767494611243237674927723648517762324571419621051224912989342072158072873418815750932203729922759812859740388936723654265543103566418627005342696576071375810426196036449317621327024799969012003593719826018268223877503172537600300542296448453801036384039794485293929392668680732323119808021057197494580029697522791491741697933113714999448247496888008706963098168721058929084676155989122754254403235939250325078572879960425870314168555710096208463871098873902111217796050999941606328443060346039841187457913523279488193598056712419622848528881581437867083515634495139972705173780771429366586008955439566472765707732221026546782711430512869776753275001842312069679214061544492626085823636040719620108966466944691646821399238878323387596445430592427413601099923179093652709407540593613251910064418989603406948383691846364418855398844532732661539167031885778637773975607040251468620941328905715355681119893262194884909635816821194012501657122587574452409790143609346331196512639879627736799495503965565064905659748254681621503055727572306571889274168328129975496380363406258754016792771133944057580459281978951179343119258478389956826093755331765584833898478710961528972056877051161743944187336906292272592733888607641769382828109498973930548065146175065643793593656879182756361976463386158824609121757524886148290406913236479085356852923286652912522296942701448158396460620776343657697870653035180913992348306244973358199665802831302844943935846402498277202388053026933123075367613243122451515395249370031954278492816092651878772662314596459791130826108500440981708720847099412282141935903687844025472096775116179260819624971643629309841887347240978268485050552825697994201647314994982857113485725307436775287098666574858360456231888201276850308985965883961257904769336560829083305426814072653254446769712381465758070988326882275031491102674495388517218813414933006698401872060308157153944220878960741975414104140723104091088748661008307444625087674641133265432997297179196281762037145780899368936896685265804483681163157675036243450789624325739766449531376242217932505582899762253321554239823338182474932330239107468583822090981213798313479065546592543957640541466734347280551903715063284855539888280411475805385213514488216331132667081757624951609996546935034864819230554919070736079765201291846079644698711924188843210296154252263695520550508912869797715370586599081430457678200313405252164828281238883454842129207238400617155204808583726278926175760366262197644633992770854673083553581346005529891729801119024546107387488438692400484534232871078161419116729588251817603847093931588161268599815824864234200143001822578384099846032648570887983481493987518872026322625709333953855604400039743763903174545853420442137656945889166413999216028743031630222620975805757949287761613222381581885305533205961703213811202699664152255906298802590637471081471573466602791277319116106239960202992663310413002734214007835841643274195889727414286171235462020217225548035987499509788848060178932983993735941498962764966534553151276180559772449362299077569176831772752062250507302522093620785380902205155981938933397224980498127234911579369474848895546521421076348025960272800133554130777389879094475357197258063361544137232008632905028124759819297482053090085503342451126798136042392902686593855435543769029309825567346141702390152603481798565239583654738111223801903023312818172282242620025586315999707424229155860110887501504552975687816818603926606680504578478842790625037506847415728709678921636364800894247393358827173309679633642492398885695813741991798050410087644223454002352972011209048315019573526554435337860069651199887425998341975810157299884070154193891924724847161044240090567955475081396540986496402495224252288731853584041775741059131579773035686313335570933630389291339742604731536188948482090154982914631391526070888798259625437723671167299916194415695080221288203297277897023283883645249794403178551205667400502084482013695897788568064671412472778818310689625446401210224152137003789613900699160074118589163443761103674241375385077402928382535635813283648944075005683344463044925445696494618327297101638622062415546528576782451986752345901021511405867064760496672764405852309585369089031520288040806539932533800109343722020453489521536910716108990192951510769875273911649421526065368428589791256933099791541153268819223439323088315331231787269978898725399455612525281043256032053712359599159662165787085753528892775370818045946520787438628998232177275335118129889330782159770447887378585713039404448104304710457165232882806162262366446375791033100840626304961028008176467723438153891035603147110857453446554865548551567654384772641382658409426942406684381900374302321944137608721367853042415858343964398920283754330968448530325041320106488365449126463753448268784030994765199352758312361776969121398376293121198317201639352782712184134303038277213066010996360435715110222233805706176754767182531746341335689906003094024223130042395146532590053340042703653479725274601096491026352654861296077056033153795811937389846387135443791245679133719058467676364280432512833446256666757324190110330870399091455409050425875867248665977172321386083686773381159331872576911584108441799939758563945216140960540038912996557142548073129011840144233289609011997457397542653603051606372626154172819360315386965764036338331788988768473320794598221778141828463456362216136528649996802485242507173344257726933652036503764202672011815743095920727666573512266973813874961323978012225850203427430344112792619231843831985820557306565985967183624544256504367114483455635016145714033374489155216484414217074639461766446435154240094515262291553349145425838433256606236704111400869624385449833246397891853586191965554965881294002718724183852590328510296597577365673067500703357387708485873391986098285388075565126088900674963735086866628019127283565477861651489729627890078842472788397032743736089930260196789306887537667842533062213656357415177365799152414767990928864310656688394245719308048810348081729372151649927987707271502951629430135637516677172529521542551751930589386954703715548664965633449867169126301434502053062942141765000378102422211908901661870639428512548182893497885195801265050927167916675323086930953713263904351275676700054784121298673570015628281844066583862004924819338926979723598330269550457381107430397699491689797099643592745215917828464633245799525015457370533988321475410132335328496532701771229467711156406281651962825759762116737679751434653030993164073213629566348934338663708547805912855405118289532153033921848530745932306165966221437307881029170878446112278057796134632363811877877088361078129283809998246439739843191801126724021185549309698924862861019627032996774046907275591784278904252449776422758289259750534198526108139622810707013810520261653592936913002055998567884770457133084960232426089058797628197055187249593063830050119627756552471988512587264018765299756593409899269856889446133032204612145043178704816334714459449905004653521634284095792851233529704913321445514442524876675540752318085402809601558774986616977478186974725806905529504574403882787645767207739502568245818641258052047276072067434818397493816849621906535663039086250129156572212469647524679350173101746018116280647764764525742066314302571764817338157568596622100180243679841471776871195411806639261457084358684349809543070402691550722371733353717862807113012142671003735462712016019434806930349399990481129335470596019384878549468855170505437838219877428435121658604925528384423319845125326849168111557829018354122896421606404201814784998404734790127022023192083165922771581413208251884204487546018372174928156925074455351511948065557001962961430639265187024701991193249323436761080203304603947279928608145049040158353337170262691393122307278049954009869525680926235185481234636378381960383564749713158688834549168133037659699311838592394426632151661703555386290855297346195193786975470830741602402148713106839923211403057059378831059380851338049348417666225961808101984592493139459985039555116498207637670120596414910323963421597118017410450717148894339859491113748511348086888489995058575186916743551616727758351111958197975519884620410736206402982220823774354030014394031929582269374941720952819485524870220496263138298863631224203996901180582277531014942281474929403523110870994494782778930277828915322022712012061469450521556549509501997458159388528885569010382942011092936759548417870987019780156937736795395120288936351394763538905635594883433497971414678912179361222702736486968450990659994786894916678477709709321943189640314539244434658498381505923145184491783000016022316975659632882772074155762164879173447450684916176651241211169322755435860477433885946961070689510811461599729786114193548503921689791608178867405181923772194105728380512405063813606947553374791477345943704063093221791410934662267081053164657204681301689644158574549367907555378371739391755457769245819320200366423657794063971885144120297305741238245695877505922885823227331075036651480885379923027350815693034260789191949837304914978968627788246534306237862250310708185905763697150427532127100813852792422434912144353545755339758483041369690841776661912195883513369637954512440628521652773386584576882323671595807252097998690812451693365679217342620607163213934275760201384798649260363759328661899289672950952052543192439010312041676525253991347440409162949117132193892144091891510050501431428605631429759424065489904333691616952729821473011104296779031871040262430841808727767431261160589410715654550478753236566159317916839323288528335601157855181891500911531586891801600897169185598592658557515346280996018710700807947342124180211071887052501963836832614890579412974911117719070100571375335542192736709455079574373678329795953225826711222301501290106700293901877931635512260755767916312268472602874704232932806593996146829158439579677939463439211817459135787931927893849917591920379372471170251267216818247084356486871188349622684787718538921077591680630607115053138152593416613259185813247634868913274498155999069197882999654567624814684238172807097577290369486878190498134207032747220088628509966619887859266866888990249373947904917380715285072416653677948070422648204446363215428263118046897296037117074438626503443780862550033199563259067322514814531656875050817810839115009512594978754754807982489057411102313768533858119552056073940775768435633755252797619314031886833008545424497051927262729195572456556991314348283701354524669872154829891408302121251899410623482038773936091437411719996977400850535542004449059482745987902064608634031383459569503377726897566976527075395653205450926157815573421226662010464047243361033419503530486951155833672084790656889541623230783894483612149522359878106030258670615009507885134189182064980659760746766489293539355160811912982302924560087842218502842821754291573426693926194819460560016076473403902501415813952946763993115095447002446808922705316275654912811273599052008115771976261899521216419595077106592386471739242325288027400936746686944321209327795143411774359058489925004341485392724699854634505875195902756513210863838042494235490948199917675168017126711165407191398433993300411379016663503157355833087034861947938964426288520660972893234950647346390583151467361057880716027210018378856471741098169068729127356367471637428009624486156693722143536861919647561093642756712043783560394260456927811136727538536718158566198184557103306560217838534294568034155320795363801042760374984798340715215555091355256236071290359991786528550132145568758280019921522776358008806868793259184926107101635858427323108350909087685494551578282230572408526031094210389128429895398313245345800859271758265660110139931996088345649099473611832461352435255698821276087932717714467587943184378942638965159555987637365137992198610796108988257085022890567275474905553168546841136972785379657832904624070702138559239665551508097767792334292561291411723323431387482951929887663122763012555739326195781320699490071656724867254326023374539206784900938146635122244843821618862627849857037170542906660910457646170690589606266056231489427509009416557333458013547085168322445183623095743239373246240707085015949690052998798075780150036950114025380795857346563409960404260459980376649831206214601775871311315488475666148612177445266599491222757312289461978991690378923265112785608667024033680910493496963619642329859472308724492938304461220145776535576591122039907303448041844981524260968509828391285684940779002148318307413515334169746357264594426166260085041556172877106302775881579367641175052878814138088965943026251041333106389878800319339846884364458183470366808046112347602202497554814229320329316022986502050569294684143734215776878750036470741610505377979932323917271465917561933124209360962348477395117673686186647601847539674836647802418316130671223442230996935929359308594497745538384670668981845729757088798420319237914208992082454232003160948285457008343392635277942487317852169871741091443324416081758427487574615988989045044668580504083235700649130547929425368473795431120419736597647732866944518612956432330027222728921506079128192869234407680115134783643672337337021954224519572460062658005075800543882527018926094577258839167828376778007276673012666565802960851759922379229926597143239555368433925699992181441783386696214736595665190038678093400213608349922395424899133597785944926574827785873055825400364040583301746420743751625405453368601358400458960084306067963210447013699714112700383532592402496702250296691278625320983753702770085344081809964900212474316083654736063997715859472946533385032996783730254138378218653111576568194343090670898774342820014820777358037874325831780822033593740326312988312776218588395456665380792651834674337928375801811096834575794921034573449946416247963546213598263858570066967921306059655875750530778225429695072379531472271765207690538000586046225020871984083124306385906396589118151441684348572861310542236146621448337365000337536195484839073779743919161743575823106363573511437555710775439580793938093085153719590898647928759883261958128407654350952497836385195170466151037482005467940228432196954562942982584873104846282050579480381059077991132784250986701880854211551349647783814046891864686464775351643921471677143466214013258007649034315756457991401098915708631164663512582511877775889140400157000841891998480445974161278974940462318495257603549587975784268259521359373186984414168786241522815183443005775967466200745140896601423363272491146475148050740007647612610220138551061299460734289716080167293853054192695681726189435977517653851291862213429018523662841678128747157570008981859855716167723414288067908677994657909387461897382353594726341266650753497927609167624988958988335415678334192933064257962432387695507746612731961729816135188611306749059944230887937216394689536359200198759721048830944992913116923290523050529515105611535699218231376560826527237082239471357007515941990925502389100645929815643034557087330257786125533672998802717371373431440253865259214851809728617863667907541548281273631177013806723352616156304331507371946919629821969882361725418929603994792627184067420315035115818915349027087793787657748092916474885131969221712866252072223850210026724126466003328533140022448292914652154250968969008343003779982832153872776625656572710204115270522645097399418609391996554696951824292571253211940074265563804102104604432967771494571812023795857063704478788098447737595592022568654304260089433986653420493255467439833359564799820931813284805833847873803231942068342597395147566154034843007825241877931191795514202562470159731167768670338354247973718297167492257058461628777732914097828401787778468361041004938411812022988320199852662290734471873840028715491954340533945680599526665260220764335430022061365879380362987869841635270370957385397609511315249754476807507381538159717061002977617911713540911901802099175515719852432607071977558317723934282692631002776032570357690791549867205572938503532278771590443867586423819941890785267329072325603896545738966506636613627990989052849556265810906016118031070349160182149589851097340886759878980292722131965095261387979416964515018779701411785595513160738296133002852028292797675024475778093078051551704338240257018182193154161714022007220072626737366913987658122835168885330196705035507519941851854904857447582138930461321939171815398042976821902175453723682105946096767535276485546585972785364910494774842630356389794658711859311600927885298785271278412743072298097643835853625181061217158558843837838507208786043230623544037110543563538698819502323031480129976763726290617072085000694096418698297131244597722640449618945683841595228382903399662809045587315200904973123329113857612561033748563077877168449367637061893722097998637981061925535054741065045895164437133894517817021065742946670798203736728931120169211424399332017084356102276695764550895587550854026302726994636632155374066775114372786251898548659409029891570662271397192846023927263774287861635832061767667795542184974207518524544799880769638241596832867583588011722943967886651711951288715981620840216632611350254254789501084922616990856642692827182943433110907406626508011239267338093462606436374899174082604772210165145437741914233148325179533334922565334123274774316887762704472777845603040722507632891817206382355383622085672656296788356671155551809407460123885477171897145508223102340299567779460947536899589409642911312779351696872990015147849820154929237863295670144647514969203388781593232772894382583393660858964294012231808973474059583205536578097584945736956356644919612382213175864790337861456525026222970095484823144461599096137209817967692659340853933247547912873424195035456373866895518409383969093262963930719713438768188246437895344245520527482257437045621727760785684144601840924867358050283173324082130135836812674366659128325033713771625837515078732739679408990033095046739071035208442837290203279817859932782335286121639123258456116261338216510197679913688469739716524074450131178685201118508026565788095061663535878664100989292239940889623891304114390565814900073457925469582527779570485114536696847189046384446980396238478444280242160150618019484099354515820426606576503921580013940346308740859317935977952892357815007715383412250348209485197325071836193654517305174141178934464274331656189155228603745473394499118440218379688904961505240812231243512585086475544165972794275570150480418751169889261583648752380310605465664646186966149576895114337397297841781563168718207212335372214566810135502317139584131214011078075887520662683234340130604506096022871773592174362402482643995008501415432582659536373315091224614501543591632210198009641941099590429436331875403185601374560899687849870410988983223418582886686823835333013225875191535826290968224907298574746265216264053558978957386332775252617020003160326880659701123415133116299560550787707917052926763221535947216548124896514466511794581407844342083279825684306765512812143392814280940695568688627912375257524721214783977791257513951237447539306292094833719585292196761424292091112210010503158284732080332188404393243481255171286645991021894140261438046095942249139380186470808529326846461559954375713004957486841231165488108155687859400077794750931081838046894733093663595944518773714646551228255048338780913211918245763264737932380323544296451343710578577788074747062010413457303680199636135459518896129954715110886404904724924986715192680640011383963971849034218236907671837834584194138353890927093876370001735033173334047294498944269119845833903490011369847671287702159891577539919819331103916126892790522935447273589853144443668019780996326563434916682893546851602932193972636232930897675970651143002406782447858252708439263655101354035656659646545522802295909146654585675008480936005508652950188593954329088037903716040073496973465294505292916993478233499593790751857380408129463579451977109699677384477430533266804003665134613366314726457694710405368528574521219565278475887264533258971244296087331132195142960450897953031825092356642953050613239330789124836006921143510803187431553064224446266661835630422289269021397754449357649531138639543908176437178576135798988899886416198617337533755695535438927285536184172751042045531537269215475326465816796310558273714610496377002306296673737295276696122933349828350557540141580114888731696354727638550221565637241671845987319211403695708054299067023903573008130205020585685495799250499971916956709798682202216158392385742556621963745669497337235357427691649933183499588694341868733313829218724026775098157839021967071572515067818468577658140393858962487197019890920396125898695995988541909756642117863916178829012747046054724509716028753888327214830517940367700068612271234916820523336795777539604703781047290621154479340188725824465038876298714572909299082848075325780343562246145849363946172491902724741267629355121588822515335469739663179298921654422423835980797922921305263371170152743980746384515365479564723882259875385332243833459440759841778898662743162072937679514857593378261074356490912651167135510749397175568631640519611351644400327855829844802755962456783955388886958555997726434257342647674051530066519023135079596910797826136888698483484588867387105551486377661848771066087476535919068044858049249639355514789716654109766649931280974370940186225849734859786538158394304063253278768598174113174186402611994744710488405900187887689796784320746470649388667062967232044349926191022253090260598262641001008546897194517439598403402076148995550789780665591245930473137348520844397199867792627717365561172303907643366996152558451950517605128647049166202535013847763061129732160966125867295154679172640930050809156945125173767320850073063568683486307313148722125986038463061542791726820274307747517555809014530727374993017019949879857362761156122729459340262067768698524777690289832197523614717363126507470970458978264910783098087686847389450892995938828894541203371715056930671765185839727591430534184824445073023318761594542134782931646612184660008500903392399130458985027145393950038818019684930412198078227122767035108215958891766394710208651766125436557410543304618195952369647547040341951840137205625941589989750347614103813935449898953623533253100582087682452346634585953262881647376365659495142008147667187396386439919727280554858538448529597118524175265259394937830573041236936541829810080203877929411895587274228047351311974324216315965842593312949820706636019245140946504346042561787055126261412792283991139238859423264311518845905243158290905928129909581872622783163844573910833200769697091784396128219861638670408113827755693867546585215535678465667973401012691152831013296808735432304497948489393539250971798760975970351545582985375067426835617319114054075642363002619530392880813255514710769607568585395174083308716035359399660060101347835878039655165989220210860488674453133114571697111403194205292801730780314106755335146376827645921947119858719958780866128891371188039841051974523525963681958408153674411000086550923598946088179887423035545157662318727287866440770576492655587618604915308392100257981701567744707139319541871464216814511566237650951436523545572643087856632910983522541300129137544479115340550719428633901389003196029002668786272181186552608108441725404911661416326924639869351275102211781559902748018543936730301504914161503687667991722708335403372974098879970863292473921600974519834646660828685112542728339085868816398493875612151425501722951603260788615174749341358626264066860250467746082477955677923850699986685527348500230962825901523134126167256664678221952577798631872790045698159039283955016167657129546114992938551049771749868635190733215608799529922923535852299040879138319626303062091301171771734712800682351727191276935246457415828206962542585144677242614372742843761831585009545375989025313397461346428931849228056699930740612329755251021361576026735988328464346914196626223766153470881759013449635351522620957114279634352181860010071476890921787019131311745900480694091921383645380619011582983977185407557032050343732500451344924867690887598373262080313774476137372581018622240383079987914976353436949640281686827229414087526212320419096089884526122707852834093033505030264798247222828370354644226255840157936687870283001635117170853750182222581720933674041756818524626927374058494222137422148021617102932894128001550113633428700852044711663946213978313476014517334985818958619344416571959716496381641005919991663915580762290060538376858034597683868212106352363919277654910337873886208033818943141060761272333618927173176605667325523942717128239897593527030077917483194232077525302673399507380004098140089677932771365600832708277094377158350640140200023838565815058454246134777747976629673098769690799087772602095496302859712862183971672341378573327311487677195610979089353698637826461920303635182062950887973344244501339515393805413390170380954051219485535415165008244513243580371892528304530469892233475991508990802844091747051829002123799334613213686044092514013702489839189229690800699229077386662501520545376522612364738834539671379996886810296388110059338740470243927841106998112218192407650189766176741530277975538656858851004853823369453430051512723738869647900781405377398596960343021705601212822017363273508765153930988235961224640164111440131163261139055745559481009660733978706329466515075759986550479930215390327640193692065081216304642981933531897536283219434863386404535042063671196752181978179159464234901292264549303576867300400908871085209640653536912287390474218554871948219062566996553486307477127337103468586126898484901171318274186850994250313231381838329911221873717904893812383152907566127331311403383611335421843326021916103538116832397520753491457455847225342796653005398382016844085663275337978313412164299159736152142054697493451464817940397054854697818879141669691655826869437523229834921294866952478396527716540205408407672507989516152553499221612733266918476202034062928780386307997784596817375206964896144432645015344622237027437671384238735132610285746021370137230239862717133700102805670730377219176287060537755633685550937536820591050811894316915905726318507287483823066361099537759151704410252866880469095493544175375720978146641945342967003734756714725933793535975029099852538257519993601883756073936288114177822293442949041958795280491936330930175941928184894482608263811410726356953582438739100132603767340936152493640956065943913011588127375329127338427412795834990022893801808322557452618739416232995665356051901167630825334868959973883312309210231192050523449279569645334651001942212788233738403785920262794429508734841722036129269454212179820484145048645543897697796446239626760329931544515918577250257511780185365031530811956995684602331991952010722433647708490796944275317738097370894549947775416938573525458617150707467109123403604318672373987534715239062319554431769421461425621085629217779028977063509045195222643811745639336471008529986972053737485527346314376353913117114951387715042181525673146348938418722791735158842293212973165417544750551827769912182406185437886981196589397678714164313813533513165323776033716825468703658325944399458475846978718654891905400326827339030659920303682771625890969862076284112186738106287476004290309039852729192731901590293326179624478943910599085912598954012291527701384324941414967095634857084787401253296638268244830796673306441408990650149660958125447912371520676148589244178723223731061316049237495696517968821701695474560554368575462319265989633967710291399811453390869360260902341633104906272471129118519573995134368034046630215404147555583479219810782684084570186853291105047836274252507318751671696216049375902383025557424448949715016475840184895272566759217390890463134516463234641974145351678435611989892757669311026369200893886499318186520916504607897942931433886575958185818579670431928089992232521636974370344313130160839534256783641742731139320154709059291019505389874129448210103508978651177108636251990218467073371968624276458802065722872039751389370027995765625532436695471243752366398970810111036859122571698154320039291861730634341264037976874454387999839806864295210178964144184639166296857285487263536973927324464482393394404209645986734012065989489628740616141874849908721462410700876809611101124018999557702014919286238466035766430025080413806123913248780877983759015812819843825970725914825223049640171625572251225161286777785911755261907709155208652227502794588131905087768078589543861497806052988449880715295324747592630004539132552036924823166724595443092374023436552538664080548441572756963689876483716217463662798664977582287916766441747283149691232969932449058567506630719727226182088595561081998827515793400570879522967859162357939319304041211474273730443062407316830399032219084814315960168409622984430365519400046664681488337952909373438341869079095247399682086149725821040700005513627039014664833030327281115024468561478510080764671975634098761378140307318236681290456117590962760213823408842852641020891408844827396692411743891825327475225107394614244670560465436988842697077897200677380121396312207244275262238153907149801735788799115280873588925397353674056458657725478036149190967765067008815158174393149868159476004811883169379874770051646694030417409144202292129684795898837758924910593802949195306672625671982350504795882622526679647437426986876333592190524133440260235936875243102531000701281848362406043924581151679679453622595492405199965287686973027225211424341211469767088869838402013913887135811858136004765829270637626570040634761312957607772617319632934015023195692594616079825293100999921587941136639460394592466896367667020391729916653043193045894877466871787219975754786962613410830209334467226868929534118968615276688845480829326996850122580003802225073253696665481699719643701614131962437624678906796341589089123090170148743901149189209581710350647051658720106901444871455073463201408941067308430018839945602586834543450980686023619759809403443641697324543944462411699656422230752523540314227225553068786611454862412471792693149449601901350802243228368229572858105332479545670831412583012275214015498677758512354466288885586030130305117917823271560216156442274831302795347221206233937413754213104525536616075671275524120512914422381564842347669305653915989847545073584376661094274856753605810956833826371101783304153292818848570106388018490001964267809797165040295722434567342410604449049660917593940419911746133508548292663165178581460305461301814608412218113997053450545054862013763421807204176516499726843404378500348268069308405729644201439325291282259631688521449382294022537987788382857513294801461171615261417439342016202160335605565477111013743450441219370660713126434583621638410858129266788758364866133817342567443850553146911030701006429260632908635593202507918046914505970716683473123576711540851927922646088573106413925529267711602560428002305799334069675420717437498950028103104014746710355752976998651776184126863416189738224084874799503865218773946437847979895267302721762515776144616041057632794558560257031301775352110720286595662938225563250153291736478096916661476307457652200653969999689109502518439931764224376741685109958959172332656048219016557400239984766375666131309471199304354110845535560828196346888166337844613706814280575185069787069994219619494645828151698827366439096421506269040586809262746980777827693061264442566690682194815989680036656019694929263650921347966168341052590027797858797826619082812330997816043112940975575511512003329761264641508340843344951057072557412673776288257784014993105847842977784968683619114347152359264349333487133501900005656086678983318770234197716275895024838958951979843175496899011965175763593871854113102554124304058171023837068140704671284821702185563121894132608577623890613152855000613150440938931927871664511247448392156632317781788445831474528429166377236746996527174298046166140356831624358175302347616190236914517416346292636962486613705396282208471206666414362819303348061418729344570003661735920851621148872966434632815859506133374056871749920931984949639974521415962468835148827537330739742676289257418545163091591881709556806932682295213915798146736378946170022549300592718166263455083178631755735636187721833695574255014934383629155368919408720043462444754600800575953796148882845280072423485167551701434603392225977082006128920910869574337333036767127091169180393351120441970433451904960116812263958994940795704991101557244983032790529094786758819985844178789335561876241628554169836284202862943567728873702174468350437088903822598776021607770614207887945046837209122877179241921082050192314343510156272380265292784489595441239726072718600022607173936765693239671770538054616696716058644823821800389876599707019753872433452868814108443466815860473140078024927084015165035426891345216193760347633182172842991524843509955673357742801225659325836130754080458579341535347638180836443162169787584445028056439775832587099337669000810241715553157071137776352147748916104645759116403836569475067310153411439823966086039389640364077071868299346193295397380225218254572712757349075315891068879357250174017137633327660858003303885767051463732502602357924770046369161272195233022110254831921004843116691020681911229736807858570798709621505876092611464095128368892186891219994002141203352348788412541346666450843722776203791323604447940039061118260382217647984712330567173836397135631505713572361343464021180377057166842504132138150835780545910779755849283300908655786009720997239370790511995221824244954212797775767226877200688328758370786454412429106581095557537036460073620266943992847088321419972855337566221007578581353439255289522105089067074470070590243527029110854327471043077728864399801730384965558196345356198776444753449218095283299739441926612307158264829274495380435703773370490266157323452954053241512518004051417211499356569909790856580464394518161917949770393618459437277832173335521101508165363124441273821120313871820591239800168569602184432116176442647515788250868254630766979989795360443180747179317438657491919973213495578537074147530619392667450739449909422205964726456837798848898270599074245119009601771413218888797999901314608216656512511825308121147811437954247791287303285485625558055845954714824744939002712928414070243297204515571493842909872131630287353477600513145160669850569583227249404631961144988376254395209684533213200009662221185429705997421347945137105540711214143792833258056661133620866682322921507127844271449713711854113200166883712694634362595328636010362415708306362450578768694428518209527693793146326359846680522626572280415200465226427098232896419370601883161404013580140612149547671689898400597274181195539865406395505944333173817215936717054330828901134288712368936821038133305656894029007588563653567787882829809899149404898011892565886163252705060029339208752303995277360755519569055270629498620837871878437981365358304317363976733980340267901080961394131567781009900650837202277491671575304135915731902544681668328655378716874652305492521241775798434158786732140996572452111325578762574788450447130858244255319273816196468228945907127547354497522840435639136935403174560699277895593553686508736339079508131074165007350863441481784601370470351344728788712437868778756371488408386365224984745241422583791884657696913750475781790822034825530733751398866606993698723424961191788268558615516628319841407752067505042852491928371433903349828384267692829644909879436964928675225261435645958940382969606946574375185357486639007185921332519864102662009350507633804032780807197401721247386226203250310661387402724299768165363892699791396290408279381462433136800158435509500243247061923551468076768276839494770244844601256496074144757206369450845140009931643523356188945207289973288485664085205922280165496184343579386331519594632858635013361590791864017511289875831632282032637521942954418728890794128523485358170283745294502658788102863015323232307261013953039049340083481244408978176577835759188503378628486765858587398043885988496023504127364490945659837304778801694757406113959084686309350329161470643155209233619701681837313621196147542748488522366159922838082468718317081519342579551312628254298769783060733556451863314789837556113579314187422756667463155364240552198571528319465307906728716000897041026322920517628105997686819528307443521579959376058274783100889393688322671365977467746759819034991457569110382435982517907390260383149520164970041238135342948026478478389385987440364430704702679936542083760462164496963646446706046044715682696861625647866069906108531185250041046708387485985124120788925741190197207158652829194380220619289761641294421600663984851580929032361068912965929836208417166927500936452329307784590105980724560931572754334748853727128058781074876238607584032393170633587869845719282547195150517658392640211646091349338494647513640889810181829106332901365954645108152293300250980095022162528631026562756200366882258817968098101294191152262818280705740366532233557223712406257706274625694103657007861534516388052996351531063393165696057218179892191717320154469531408811112629827385676654705031859999351973207229860883956638029862811130933900744680513598696449180291689225924934465471095144755745971600688865199991213967371476425565011764955281754252024666205368705462152582522495397553459132054163396012860807543089866074904517695530322698325579042883167384669183334960636448526633753550788903305458915230278608270055712967301342133195403238889131453414732001294664541354659027325506828654263848866425769805944619030590209698929752480291350510277588876269963576566904797519409341876926886198215593040094752828350879011431988557958808694636158242713158357568416117625856703868149484498740680109284687719700305275180751501126708876021602633705852500584606986757664957857448482518092044254486847533845080777827559550862700152308184720177497025769848335369972846374474181571763288199060918809548744925241442286762783990195372621305665032406292050932694677928296139387930226102420986428175100841009149829278476478027860043909205809926883464896915905856215175067902575370731711628373188156286155180610161124285183406763909237444451112398727112681967782842096144161791290622688351418153472871433900409773245811866186018764062320087918859569050872765106549674731881026807258948256991250853422269034164797692493238284001761755135997557413214400921696030979316992671192408000216168993482414369592019023144051944019532116734237493386054547282716308284827421326002333058683624885981510360412644150046390778160951465488218994169366181465834500818133595638767291564598905592464420557052878988878509455062692008937677146009490568806641014671608734309465730617825439914727333128550618671467499937616977679643567511714210581908671680143775614273083214159119695232122962344659118508878729301502482683125480258014041673607339022859519339353911425075926890017865261863226785944148105095384868818428923139816186287060839901091160427569309871188502057815171586515181641885773796646076125719010542537037640669700442282611133823577998891975274392156749259372666457401066769020583053210727522493238194329620789171788364947862307090317291545626462414730638592636508274569623413221550596114682457681197804078254035269356285432191852613178427097082523775155788611112458093135129815694668234916008294269032701557573814636977442101715024056848172519891986556311143360986807694182029923779662356333317143385000637748016333661043684002154307217598599829360816717217394807674713065356127193334238065984122687692171090653686198922677418630859445474920273495118980452164292016145864868829779713195679359760726787938383518166401673717191728124065464898406111759794648925560810147721723372213640903027171172292232329068237440797056208221848952049971233301407398899524703941184096758717543335303483072094674504773816533865117893157292653582091801392894431445731962674123739403688838561600465967690080867854789201834936477108472480664988858650312432919426126772185496205969748912258025200883439864453834235926204057558537997386688428327595403355436743932492498069326391396932134853746202227774698881257617271822475769466578058394929325019346014177900738984325141483026310848955348618242126266040929959647176035184869605431423270074417280069421460605787245064959232601411447820074489673947796418936640725758124011347392013516283646335763052599711584942448207702663406326349324464861831220229254516395162328687808501593527834386180248232664594495556772484401717544183774188830660235800840260939486644863819944464788375245180600899106586937049935635288355880379157216786306733459928447321240505459958254651964943558928655926165191990673438027644722427961211793430235446031087991173734273747764174239090677181797367423041656157307002464657025923857340960165110060593898961792884687006360417716904485007156374243820462764613308365135142879489602868506584018387666758382072619891622145872703809190822887831268723289835284524056050477259168418876435437149857388068412783319104194923415995454875687114719178236988844621432444260054772917156041381073492135476247189014342630093658509983862983967474419256482755957190907093934578297523286083706439587016618181280770995304317182086615087500010936163493233840744632734232861038021222654927829356041286636098707511501775592544530769133509131210432489951497744687588533130532599402564804737558170396340935229502837525424118896405001612869370186464237597692606782927109126896460598518426737357654347705143365190822785743538053571066943745864751424671101136966837275461342912199917447945045793143665201616835411900816645600619520390100786759820706542632679954205468271417576893052122183550326116708083006190355828778329430512360896610380339458654960897667241310639016946087976393220779479423922655296480094803701839347687424721938585364670072259193549341627650343375185424778896902271597899886844219404588801117286342558104499148924405455526329422410585015443877516840896167764171293916922313369417991087266954621524378698443203649098281805794430668987143761502824528529765741231073483351637207181566732188007265330958453230718968449063146139356397076648861585148021089864423501020821190758206474522882959464140167541348116290341705083175407236703591685261648660624104913796172511918919167466002827907926655911827062010314107064147242639208756618079510230268113285428640510893696120015488645653882151977705410751503543051633115605141021908315535675161471784463466959971466209874646681398717566461450880540315964682815489544163281975938265802850803384912829236481108577382952287454724735652230325574655798726378693730978723846213884836027239493602548813762325868204070571768688420929488436426875170147100390686177122710580144321496476706618831883372715416504560721422201498180845164483253087376297865206097099020748603826503514951562676446536461242052497558779940344389811162779115380001745014956684378455134945677692130139228646638128825528856306890649710519521931560173526494075095698212382648691434996928653694768151340365230546474602235097053055692899383745292208848181991862672822959626516887324734720700645875633227345409296735004038936181841480545372710017651957352426412513164622119764621602677991425037269291236280991176121120769044408933382998369617681901175815480248670242949699425346137099355688623758575189600077958894491472893412739210165795131367988662711533346354250894128330689026476816924237423926892793707231979607748458825940885321478050660671794323255067459180301453373169897882031871441239490180403118795033670449347805973897371440023677748675931493182764165472259130744927049253782374783398012787720793952454806132969005786880906894032701290363447730275818529777520946263086100850993913877492102080350858608177441143436966626285771735606967498083075592485884880074276877776934366788306768529448038986343399684098013256688484737435501022855129989290106576243628813111326168431516668003811361409891749850974638268340818639070794800138869611391521288215314360998797732901965169812676629935058331746379979634773619505743774699356091693633127724745107041469575360520075767773812631792966224115109316420782094857560262965366079376349636010083074261343539956054545581437059808106973153093429936782324624734731509902408556185516765950799897492686109394150824761921104619445803867940977507937652308247854927296608059101710878789993347430019460409138694633059860426738103697527035688021454732664427966847686390405973328425668942038740402987943112185802796810594419198794951183490914026647341130743670005458132155527712593550495945714023595920305016599775663674230457821032206767811493840138682957748978065171294739970877780225600156199353377810622424380885705295263300023521966689211642483977339464119122225711189274167934510762574686624781065383252874090397152311221671246938841201236989757128693292589856699450850860273154879068765707061045592980097370954734328774308119973030430826952052268838070040035818633291826644261052850950756191159239107484381581267652676889390084760484799579165892233407334707684818677131155101284060450971256568229901177381477328807541517333361364273494251486875117176867462467763673408258570764582779578245196164398010229858486284514520273955270463198638837842424992633013318799765007925792489034678535736708184081122934196637067524385233357308339200514011678641944992765957755291453134979336591406719674555108385517771064249751502605599817645839624419368604651018502537063844172222772486794840594614579949001329489441480497026130293545980882922006803307513282489136943129412673230371522251193485128312939277913429704076364090476254514001860340561376756340663765250733883396146653096741306837099784441054025912917119303980077921962220319753362885529879762304634692847563043051490312878334282314936521901470474344637887530097024448544558978566573243850153866951422771696461145202141171424373157049419445299798565353694276505867624217941480824821319126491369306878110821024925144794669745741357373006823230534804478863329852571009989872869265441004725648283517123495714364406908823392890758872876480504802150997944218744008131302044673826098917482386027611616784013531857028158189343429973273221486178288617297962472314859791082950546441558576539469410991477724496741638879854360763884411909910899525858138130736680658954509601436561749663587689327775326392777480540194995930678566855137781040827425705979067926087903678749728158994244494640249078698536755999967339818624251276524025854188436430247302368775422503050403603434768577994487110370369598743673315776813553497101607706945353345004573770641148261664245341204951590847218201748840121540595049803990757833658947062872932673247933902621337797106255924287101433567038676993785805382755859150736333394128554733621203558195199003091489144509925610749078555528882148894883708243806810009034908969738878226097227942972395372535582926859996162417656879674803178993475753592710801229260146882779040763484277286374883452842696615928464108087239358496075535914874206942212424467757127067592982246172750699905774603239859797326574096156851412307976795035444172272101270253745383830412999137408074029147053414897648450962886299239257061976220622453588451503510342345007216875338808458316265994484488736023311934535306160582687297640596732014339963146563580020638660447208065739046009321078763207673587395217053239120315159439226074256260360960064605633468791744241807237512520048279268963570398660496999925789633051612584727601375466061326626752722838865941925009211806936463859761867489970350777850631827144174096622634915646126269978465117264684232134420240203069476646674098802891558747885256888378208045056519871892775601071911746351328909941129453509109030649082666750330945972504626594868149395115045056377763186570739982533614919324324796835506172040543311427133372467170800326847086409487064414748536822041672759705598539329527542190395946250671853520134480760467889283919785960099319668490840393561150829202082743561078119124521082718115023317501646044853296958400929485606850389457596647678007728737072043317311674066490296836788363948736682438771378516659030393269070005468712065694706932702857073048520668286867909616563637613544482813194228500388387655708311960438588872596146777680807536475951357580574521030292500952617886399558201539037831174296458093096744538848647620484678846846706652845398072536481539459520700849407030210551250195972193472386407458675532553098824435331421341148158531508705752332293399728646393004285471109718582675253894541957601121997618466461856912127354448925163292437783977396890387453079862568087626219618064275231594886375180018223234875512510674187128255892303204716866060254841489917946467331642635150845867322240730787559245461362086182901468970692367908355769939297525537521542339194105447458802685505982754237996397808478713395868701871049196363523194177317439019456001820872230495960495627660447415875935150566702201039084453356385028010502233440041590566132284806506330307387297520601498489346869528329447008088293422359739593871904499040857472116749403109285905994872053320796460719832183964784562884687941776065481966147106583499029879772554618778728250667251347979201277435417815620045409966576505898754909638128635714377710151577886460307860596632271504079033976803172842903859155791448012183768678396226891014306709477376153618716429723859567364796108522660636951315169709200865190985389574064431941018338853732477399318533292218843975199026579853770034937575676540379781793187533331519677503220654287580394184909132869778148993204361011361217439416998780032560856792712815306881612783297190199515101202956241620566148767469853270326697474393071029078454961845965583046053817782487239011488929382520154758064933386286509615389829555195442140674352793389062424751762284906020385434093631354441305453362876411880961480696773423640106028741490748999108925931729696138415290141057728163541259322444126856056373190944924538117349621870138403438259112414367911239467079131552014483103840259353214941165462972838815682219146779444481614293349500328191209801586732208542442143676963859850992107669415601716856158082666388058891570888880625123172261139820686289180455875760277828709596623783716727595273214531656695418408801753177703337642809868747566738535177386647497977557471730678392065608685703725818491779945817528423463967300007039275430966351658010145354007841513815282767618817798271552730836951797301299036104524209729883700132178986195388351702828306884120427698688774323742528294493554092525220370178002484049458358001774234294788958046148238334303538412323540077267310265905488330381514434180306200556348349624849991535939019060962272770119516765514855181194411250721787599728611324501627837544718024405747223517261966769305396722274308961966658177877789500257035538924543617886994599546788747098524398002068477816876469901170947723163134536271205138449787106609726173213536118778884392759849314197258376958296231598435778041499344942712894627984513581619716952599886148623605517954133152537955934504636005115300486057910717523974913282536285812650297031806878294706405589748837383269951552947423713825001277412927016311270016442476999385909281034824534174408761697357523547757956947269016975881212028207924578744518412961304267878500780760946812471868785062785172708650922228712906410856984276376032804270256792798540514326437902389404438998566011422652047344743196856519793322477374360506087374758089173610944181690900538539150642718689647313161350380846314813777212715948803391095592189505840290116617852036785155593760031550338468541379143592988203737048527467527274907270790512588580208735871629771490690806192790982330147516606474776359848119426118639639224210300590187893218626283600253662275112726975995559942310143131527428496572446702760060601526969858341851727584593255044201722288472083957908606989963301709708598468045325725541476990629875400484140499323917322898251164703387775747995814579224630036690922945127813838580194247629945432579096946340110159266139288934980948164576450066555923228268043161526585827176969887430185340651310614636919726530859300499451448391622621901548770123222475542656559777260260158078067430371150140756006946369126606908724944294527400850268023709328363389377742766812497143965265577508240454261843134823742173144110087739429150792748982645720253381724997751553632041737979496962662567237206186615021372237280198613770625854428584300739938158268544684602087174927506440575392197266551094583595973052692699741126086311226003839437297864394959478347515865122927379217065941344807827527266467004078953178332685746007061059057244924944701720141746595727142604484724063054381401219925643577224450430633098677084797798898934704114367905134641616108690884496334968930731839722537973238015151320038899726565459000870170259613314123465422263007888677526681341088017261551018903921875183610389385936967404852034830426598522032150989061769625766089336753118909892327913232743350660648093322765940790936178607017126340544277623477052953253863544577499948435300712437570931235756593610160525457740849855633893471799685954407660627885751071869339768457556847203027619451746452755784862510804169475908865761740020978889072700446965288867621384710085804568200988867872717851897876604933822609561436209312264306286710934488178401719723420046454210827277160227925987681220332871049181996428184155963426285364685617495511502103729408827264623478151506077592196296280053291660928334732476861350795919909467166078177261839555092689185114710035895966104804657105229734198932319640170762976393723575712210040835424840320205114652800504873093556321309809986879258317039774565546462528082499937070329585180147472251380767410632727588727395042876257135915608813564943883890071893124872246637695099285329673199687074230175670153491856793656446595001352888850069582262083426326572702503538628440139568549809665669290631491538368581155326092487923505002900089701079984295649856572976636499658565124138639193860642154657094970592833231406536877576634876144118755491356132999652796546144925619409758868315818746097662801523680974771908093087077358519636937496602357207740605904888050736785613897451672605246901357546764265533815707100358784274665519823695133987120492227303904138976125203522978220969742013484190436043725607932728293377091632263933874119452625684557435057436930686955740770114358679962357268118254889237362346356119773319326929844303432444994857323162525582726768112627350234280653645433590192564033850719985893572146385681361926350784698459970153143991500380113831152416867318316141335784619460670389459363426801325330916537120511460655855728022694615536312663742716763507552068467726155944777213949100805649034839743909218328228744311159069031807105318579188359643908622328732024598165979531605729042396940160373226494306815275847321813309310773447753479747249496257539506820530101907263724777108641093096813134259914456013722377361611393950075789354416633712248369514819360708801608409436196639140616279205423422050896479382914842230096510180532641135402944701364581045390671823391260475116873079493029500697319353138827025587909417338678567305523637457705629922158158287708525572568928091901533061152023919182430299734661989768336448920943428225237103138710214547071910733809180859788012454702888378138800701477217082843052780036031871305612776871135570108017711002009797437180571066305620716686002810998032055091214533410752654099314972802938950042514382255410519904145205108061996295338965067350850446487564973198414950039511854683552163830906381658841250272333441172408790509272609828828831770135351369375808999271974377546775986995606701631156706556004444788296185441197971353327668941340971202749613655942957605061190842314490429265976980461654463016253749915511794309661453632336813319923456705478359051037724296528037825899501185471234338428032330722677821977696531133614134829218099299594025640708574530748013754603847057027162041287926116137831892540741362138787637173764479241332142993512973412030700991296532442962459002246868414199431843634825094099011594309464994130218658663023339617528224445991527989991497889968648294565599208996132406208378265380793057886287249107285140428411512315375985940701841770970199776804428463600505252564349034165249482149403279340799660081903470664408854296129881625226216934229768857739786614055109835915642336490367562671444834824082551051166353486925290151456509148048884719772422217964124641799159445231652168751986331306211092089771264405954479682037520983705279571011746217721103939949493844393898488696215217209512359538661058327081340291352405014798979675212457843512540104394326163390798632567934534486986560278895796411466283992067488327954891073016630129274817368383426194329533515360747699079306153657608128395639895148684462153581807019587327292789289983672831155971640886076050435080129252241060911441172360699943693830136086612525795167498775758756178970358798984721276598788578097378834614132152241571179186383982726410996285251150669067157526973738566698673628378133795013131548900022082282036272206515289074332350874946251876794237985038649226187546892021592900208860655206396808933441656228759649292355261873963814428751811313531239060724148059250404428087036895395884483387737727968179923200817487782571973087104963785523000445150410199636876164989716071904855429604601713220478361083251341665679101433278318440467339782307298844209493059571434793204734519471117141143817151317172828873870643767176090943084783449361250359769274440069029414533309350263901088863279728076417065884254804686630405849536854302762033803182318767304777746887343815617235113636708539480268972900893037115395521862823716457120946264745244445100693041486463563507548777589565955441850579611304994618464564630783676425372535500843789003883319510293757760507057571348861164791094682806726366184747122598822861019383660596524456806399755252528574343736874758829655001594308669143840266209297804335811223307566012668482216669553416116935975960178240253546027845366296129947067593667050007555971798187474498057480808468808103572501624985575077642411417731761401210726134032662122457542473653711495868838026189740007840764486076278782113252067807420182444871254104517997844306620988579337405351063716220127845483241817028812924561765934718651620720358692939491122443772774382869676053789598971674107330129588500689951127547065438159081133409551039725724585698312729714537860702754241267337695344928929178548249410530537567477363179177364647302137417746776340110871810755291930351275850549112385600983302129554843847968787197863350888883758778275261216426970421869253517895122005593842101716510745334373153485540278411735505447718344895699910230155186556481522871235951253606814913741359870915110669992658110341085022373030036413497942535935127481905406451331123882044179898616295441928106854478856456023134933732812195938328631882816195742882223243492319663450884192226882826542663115526477953385445260997017143671473750051541567158258176420494942705044479177427132394266317100722192373499726154416696857393612124052609901028890927204612540663831787126981380564105044713730504265220504071804291126723284096089278977444905213629623955671585424088355751678081137590613539610350987530844218631254830167666861942436791553318863483888063464633219475497684006079251910947808311315761053949862767396025872645126467151062890057641038611712686257688445040435823097710458067147724503753069861654275470370997019504615988021187263279877955179848237647766039557296068679512714646148606523440429613857301837071044443389770454650925681600629506877544186305824995326139491419207955739193254404214008789357638805654295426420988434848349931098126035907046152392784899723867764384571071086600368623513640757350236237853461915873050945683772046510753676900154689612589076560099086078225662950523196965666099421466913616442148883290857078154980526799578918369715073350101523898489330822403413948893784296700582296555111711659764552734780775181358663504051725151424774255843970981315035061197691148801238366734380091717306642734608428102450614681298676236908857068004990259764455895301990298099431769100904837431480026419935235093674247562064377069014098435625811606449601782830106283476945549121719211402134228433330132453907904284021447165550815358699785041867343444431917236743716637598425913117952702737027295003996221394848555623690429549708952926121907349431038987763569744369315637986859664461916946445406031746003246606915170422329864586662443246097267135097242417512626116642688289306269729967215966912097061625892712316316330981336630284974314362169645322957453717615400084807200312899039002574109830367898351968374136123204987889660948953703091850319245787643360726799590687774479208135315688198246061131535966159281286734380125768462794335452068314370667632627886254351125131372682661426471532584945675099643788573539362012409610990001223852306003987317971143739048354804451285433815857042202999013557137488175396692320878019737262259128328196410618852429852635918403952342399748332103005932216806804837845578058510921928772568171520773741386167108677253007330089907890364432584052274574999604317342849501032667211914684947913004951559435742610400070316593721175631340471134055234784952596250572965136446948806266613677346449116635301786151349532757730368162609750038712598994014955241471841035108308718054451333897444806214108977479733080193092408306041297407656327151551468037730120684472337541277575476452881585300688092556123076836879242572056591512364848888318952839751035298173342303025300771293659057441041070360983952803497377184418776601681880912950341588059054204958643236917662865400056971492578516013765525838320448566246714158197934775168876679586314312150941492808888461762461669119967923165334904803713614212931094550967264053922849430065386390181359520253797447557561631236725268609989475871623193059578547152714394382833007224644765483262657033538460106026062156787418490652303412417725152073937251643017071467678546620909906757350162722038509427547000391633880080908104003916922589880949917235185069618332289824988333070755639156535708557361595311463737457729047010415934801006328714316713524111079587824170410736862523610250614982508030967242284283920041956822496644587209126112842951202521714004094157787960241188008988894040349548826320872686650212882982942787630049005592761433191479018113350288517275203569246846667839712966669666341915615510642718445107595581247030472484793200186570339873086098570086299547884285785033451275954338242808430455944049271406175156435405723270975222631108752249650438071828739756405257322419754066230419663892033815311100663592167550713845983587702429638695110273483003402571154509668406649373220999472587356600860707305322927825431375591978442227253697026561386285115552843200051802699241517087828980137588059474397673053749908743501224440709052656127847130863879927755870308270213278279939059202083287434039960017153604126380821355184116416147526797770140704930000270553739291954438499511237060675554586292815869725183076081087740696920496138601401131879417123233480271377979414642882705873884105895966573874879607194018496176275720183125405304488900643655566681475224308981282732704451804080551744685988493899699116428380582308462861784692636399511193771908502628550912373476558448104040556554695279880837509404795526331199333871982742273833819174070104916886896012338049650984447844453378982523016962196889946996940883716573412306758612461667154934555634819597543946384101376599240065488483108326459038136090956901298347430175369448647632744554673535306675062950492955276137455250202638395535570426211933186461311312108960858586005997537924191685884967986081847870630675321097954007498363531154969793573377984595856701467043815086071169588033980703325621382634165459208620968642753186672856065427456621929902774281531514379796289564504400315922553496861250249946452770637998379076257128288989506774267051303223078488245745969034720455943457463260884952391750779723792575387381771709283367276956943733344714759995103429875577141683092139182780762194514273200631013800637092547577060736064099833640606583132098909461425998433861845365441199472550935127010475949906274854870595002102546389279230946471821509178017606309427785067496287684800220638884142636055195646106612359457574314324757851077552558540522944470900156704075179684828110335619179522302985248574396906108637939431793972655034946395830737191015422355429325754892818346885296420413082645899626042568313210776933114567612501201881969836168248167682923882948663239760589117375678037766133265314145987613893776447729593381280475701520610252970900525638134116966356819331845981258651457523710050211059983542586259245445620949873865262834362065831089202317346537695585078885894380289161403468187262758367915780333569026418329489710612407460241020022719668402112207139743958749781195665636419851041202854080929552477175650387053530435300195365512779083337256356717895930767287687932801964693411915962265853085718654547650908649908168942478265510500248014468278620868101319094598888223192947839634082948763675266166737534264763405641459788892279274029226681863960838955835888247783836087804324993382204221127333555722976975921020118739942641244570225781108883963879347546155386308901168357546128490115451297768356897986963107295898498606634132865451812598178100359480407794142303468340006507003076847632892721490907583068014170825432132364139794757514572791540062413458576325060544956158626605670089964690168541669514969829173213385477034892703126944293673350650779743603350816171019618165566793358133791829011187579719103143943566139031232391606607488465384265721975808736438564672552687773797727201094027646602289628226499960673820094699202573159012222530063962907152678990527995469604526774670589382348732193014285231539315254244343394515673769945708893078235125579260289969674672834918551364066298892429520036868104176996118371410782455032624870595602936065121305903952209068113761742043972513906050770466276769636260622520502014235018729132949635846486368647053701188311658697180662934036734243097890590633265437859363577182689295165672544969263090231183946272229730777934548903360838752711578842412490423434115000427425471317172626230476119914576529267542329850026298487522271998492609812105281975835900264086043255604285218744216631187828398741345214141074534946679596167458192399029023348698022265652229115912142568984707545647047333553658928891160642622262327304105211112802897187621230506070392570173566544774122835793869580786594917778366438340756223279135373504820216852386327881251392663643118545158421632019901120121625962027165415594233895143887405131307214757829090825175115518356325213767536887043887825254714630369004201813384468474834744516731865697696983452089930877602018592498668991845897370381483414471953282194584288788367680005283502209497322080597949068238073546243824948799330480961617938147551646669829894345693210907424323621677720792203764914464580885981829472710675984083565723661688083532259801942675732668122721741321293638778801839648015059566786940113790901072856547857467987086292464312062097399350792384964070192746707278788184078409542605234170760359939593853747283974459825972363014052215797561890838288461148946300399841615912999072171989155749629714161918306404219077869933297714226429403985406388571175383916076684857117260499943595931938524058097570106153384626668526102141639956151184960900156957875733729201220017247891214078339401751894733072237085058810582609254849096985591392631127575809669873055917412474430938763149218058106705180288262136484894903881715123551590591078920311551928372412265604886087877217784541855680699329188114244090533431675039591040455349809654115223807648311367005076555558256716381560782265841219862352946942492347904150600170477990542928421074178210562822136393643214165320470508011948143885754253212855382802781786777646720338872287122819205286003908323135510260834352375786059904172975735829184880517961383977527011222318386060545638349092821393287123322408271358771018860178285857384766057046756045537943734717022370418600387296178876365436753402062720029066944093905303868804542084130178552852019639465441936775575212266088015895159053609490651384794462971044301381402852514476744041189082987523534277485898135353127182119152653048157042084271439318969232787311171873363041725349844969214807428424427462342076709207189474357463369699209551568049006313948870930867345556940514996922402126566169452786806378806749681285238388613222609508000369944309263238512923348732497136961207594080638473932200934634325048033558659918241603206244747844638305268249978234524068563271966272931921157406506692146099777725726457375970008763211073161410446018947053067943381255245385397467610072375907768689801141331981110102850396914071412360709891140092750102887966182398306524730431022043236191846450999792676914731253736557890053147437635770376094019589099995881410311170001752750813995177890854734064023227176575604957719254678254698596337113341834258558961343031106233893694572255693479392191611430319815417142386943724355979550377890804567063899830455815526725263047305971997966131538135516730404767747332241140761428663973070556405632907201355647081126542465455853846103527604822959806137441297539119026377055691428876929707084367963679398024875065633709095234469945041740636069350987831964233520799654279841324902655766778969903168783983696899990348521398214498311124305654124418434153191581191777222104561842462573970416015789976043526577298673404400448704190776014388200266584750835546215559039372727921601841269346658115494658716343825039236564015748836038260445108214566827219636952818083607809842487453055668957542129648390885148760612139963949571905165538418688102848694391726813537566249014166049891286616904922752722594049441158790030889304013591120852645436565881586556347332775006368067239081147547343610866205282265581032768741069021889331725893994512608212866494266766165715672842154435012853571222267494562998083389869663163020705542896481768227489234762496700547338842915599970180556592589437154325674214239750342908892719200648166220163942575405014852259071474498251249469809209924003097070543733387699219324838856420018743357528041458111910399505085363613244792568392570407655574950895640481908308979585367605100495732827501132384615207216740189600159870844892578276338171379341678187287314632959003308028507140617145034115733254230529386866398084017355315971766171944861643767973851447924045374610541969040808183362057939820535356667404307948444122009292290282592168166165767676661479345626595693237339138788638318686251115836752265326364041206977275332520181478475919487973026089631507177035688770863337757959070038728452317156025279617674155161346541698454705009641206177895873174021204143878314027970293350348455343928801850106316094778128381089657145397502721422830913596495622417161493777535777007445472189801781693723477343666156516709625988038597898429977041274992975872207969495919313330367132819149029486641373810052370163302498919915350669817453631831394396982472234723567771031013806557129715132336656842669213756498057051115435510166027808039990441699954900962178406537119674763198759098298643853300174362619486528655995723563384821282976218247069085274163124457814754904361499810586384246245929326915051085907436462129230749018705484717327499516375662073242150494602368050836217768579540366790527798344894633390881037846191258307437329225172568843792648984702128663468246811788309506454981273898420920038068420035750207962333421067531057163770906497588679378699508332035707199952840564712708106086846365159481596153409678367782953755133173646014159129289102300798589882587390038500497657245316880432603817903994561072055846000934198808688764012259351809339254396192135720733100650801173980018402756204710201308817488492398550344265342929141223121379749378800283537423924550413634776626357984188675934202465668080239561859076604567184390827134130133840634326590833452060934490764644364409596889987333215591948483768960084821383500809809201746813576855050686939420464247001455300439787316092524531718733775291884467971080342925956302442269099397721915609192325455712817265135618283066667722735392249225863723541299627641263719678389950642166169442262246882533749487331455506546018474103134300694093483167115873966920015876572653170284056758367724932259383586991986443457947328315867782844326588899120775590517241119962868731861762041650381505185910410278678355738444350852448952009022923021196248078773237051807170264796533780944314114382751260950215927707981685686791753779568291738299746050896424851354903346556858665649323618453082560219992101589247322830003906531337516442454287088398507456061060908456409274047381443902106615216604717368558980877091632586362328678353351537948856914504100100203256312840824861341403195344716933850192763751579030418619651995366236403389746569763462186091702533873128347019280095358267622838058998308933076119599852890338248314375988249870098988643757019785108913733629105679527624636197835307692478182145857275917698071032713124258758308430264315602115438621548782183493235922402357395052925779564824101440651257501852543146561357837737652625400225110890480954632274216545130094432998491033484585956194831635414580803991335457958893130689030075174829476179680217499394208391570262939544591612762782391619876966661468032131128573538879619783656236030772856269205291238906351876754741709888543554005587774271345922172930309915784024545617489192046979716651625975259184821926607452779908667676046095926522192778188969298635884528893184642645387884040048469552117159072657838213267764326983340356982639897785426866605738396055103762616088196412196712259762100131230669061651139728603777436150005767780915534945569008090873296006105133606871530043804899369587915912756202827874692517967019940168231579239750953645293527413356815604833338978349381538361686114063963011477184863744798226544344301823976847824873140778961835845827922160812317682118064878420820645684594330378714780947170650735876315089482683942207153442901386530997243838059897813685293540412656194841839752819903551352326737061533193940248919358843388520271232510071888443647294336425750204341264774923203820617071078588743213711290161683734032757576217086337348101434220139052315683398082431896041069453878450697726450459580977905419800511559665533710871864249504659865913142527073865366042080481813888934786518270777880918769453962400421192749130578503313897530480452325965076710139129686020666847522280801485903127980859301320644515603589308543852299049717914568188268327396099215440840812699682157696591832866930946889456357674387496124193727578660343157051439054210900784144126302125178816036799375110139870523828895889330111653988297950663716887342052951256494564249414988100232896563002607382351765199220492468360545615511620459636664352118457084917639123350288524717405483945856509632283104378810624132792375561150736770871745720980457248771796261571959924334124891280795526822710506629759149501736331149360816345158771526846459373088870773281794395098384399524002601281835176333198023260711489907527847930087004783589292910951739543833019719526262572729576707790807685367524635953639539004817948723936871350519855875053819698288742934775219871066074885908714874388790559155929276978988271443414078178912259172526231594207266381570060382723492620113774363960447787914118290315308967265332205424113601249259491054151588414717172454842491429084026842369271697913584203156037918375588813941811593042685847061964971900238084782572127366240690610646254891224748933102367385611540301202762615146902794535942015275108516476059955006181964455179439459794498840885129916847730576816513028417927140056221560878544719434156332628179494135205921004633866702067157475760939308663282408631051311704374132233446181792144265599911020944202338048785413356718523423415396623787571677734172148600025932162412887044130719732586740263565544217151602685317979962804140272436436134414574208620522229515750570362998092812701256852861644461190034917886148165452507845251428309087556273600520437353182554806696288189772932825736268460560642093865941882065673518051724903112048933603436435175548317203701748960488376247814325556429908384263983262003768638205284666164822419786415146447468708028581580516105013799937617919764643379580178316065738982412570803961925630696904369266203331249438319609793959949785271764175764707940188059193836052200623773667730399970759904716695749675754550251971802313469346460290453083188839800587204240693624429957116058624044197566686312993782471320679199602282062829166527412510865679713924955280018667520077253486992894223185628079198524747231456225159231710179273476386583265171799554312911632846754643200176411025407891933179167957401777328185327620025203518316747048007568221114844978545867725264967112751830077906004387404590385839906469570633931307475335106395994913568910912776777058366106694706143034211875742911033023488773976985031134570752269688760675704322483897956002240308458590347664024468090378802186824713708491321609104857951004321678247165122188744823660039259218569073392960200926274448216767414831865785097327358632670946796965975643533476900538524553370854751823063677882381985185484679307671646697612773090379850803843821050949485518739490179380894181768797598019106186031274388472969875531512846109923599422791666588945373179573969817446581600752421335258311411605041433989725962673107694206683785074964314910824503433177268487250356270068316433071407872993417248972484959143685649207083082783856234581504776490793726305698604648696606614529810981236433245665795551179633974466645722965917254189942755116517769359284837509586021023088794368839870924042934113299485310935301356941658995930859537401393130719152479838060852925716168328148139748537774800391857918308764524587775478076179809406472234879849432835195127665555051543978146697724733867408332363094875391806871101155606301316322934340312873316021747075184557713635112552681252923686807019294050927418179987012769956039144092538265510941698546932696821881478161577273297755034074844813207880544323174601795238593402886953282571999461965181541079124568573089421052748156508977064057852719612546691011832312545513179287015966329027880933323213363518945068904264503261095327900455028800248665624343303169218141552535924114789847917819235992104338038859600215933406387731009524690168956378088082379298367313595499146767942435467911899398385175183781648097262618471258324231356938470623680938630340679293062638364427047980481886838180302118068497825878624425078560071725090614549670047775777959718480958847997880487961881452601491186911605879308318308104330689184976592552462261568525137741095116370766165658985600874204978282826514786102801075120024558343680835010065804990662428038700451931693831839532392359473161259273288339580183644623897103919069552089213437062291900045183922798152597028722210917668439424850347241818507198064144204281280938300363799125334380279411237920971040219388048489637439115301785378705182468083473758241313747475564848358766283118345350402390120836719957832423153814252908114594243803254115167429166816762107893750356762045976596247381040680888237282671963383443707695513769530138092368947673731552247462474591309521842615928416812833210162424340846694216035693183270423670864867175213913337062997134245035318427086100953430302184552349687787236537135826534387471740189032222710519954277969843498881679853369032681557439719533699880782049848390127964285746313704769433546992513473026360512480611511315607841095370803895433786982264780185410610306092045610709537377607100475654612494694382407593907052162026351009906367382121302431862231244550386240826475553515738849483946208875708810634686093387405421565484435372662339653553034541158049966715479963244203978015612584229648810506040240095049917640796535240336802535089125728755323445348680805977908346331515242841961166376433618150675059971700370786322342001377507407935551562345872081046279298810905997532230939007776171417928329307722598678459866049198888032666110894691765646848773605281769869934810631874864706211611646467326187813044903564850506432998577333329864823338011548436523374375900005854345736836311183130792085261154873437376083568153199082212178856089773540578637345912785569376280158522093683571676485590232867651960098493445939606370292663905945399687192552423792282234753180399079149781011046935032264420542305978190815449125513142608858526126037446627953366403796236927617022195013377577033487777593320355205384817189641398109024773631478244537339426254870898216124698267591448336878628916451561704583853877098944267429252613609380510942572209556210268680657470904284328767859557484555518364833348531008820704605592060186518276756736699186561826158407689336633251523625073603802081537522008006510835636153976558417863022626394944323187723848847825062988701084839136372639768623802578545060831183097493068637130867806731024045822548255759795458658709682009130176643490315145734834532555932210036702156947083227890118139523310980717121165010557676764093281652968528639078133264603880731844488396546790835101147087143052973014269623081833298830635404573229336831040581304405044507727104114975182905347613221534393312689212152466908672936477973741198564989408590010270169340505251634355701809912604534212603486166965405099932706261957800883659941910449248760897685015392459826296855228112188782896626539872350284373656817367853696096085408581956345784493885517264032730251726758510651757337713904484176953434951994609924550117154207055275006772082940098962518287832214605544242291725447798852097383746305215582306647137768065432891771208193265050632836798871651948521707035954119625430896157541493089397394249230831413628703137635960712327656169891624876153627333960791575047705656836237656061873283696523258237639029866557251596255654278324221151023587486018614805992419971158441968440673168348487105851001368053978506472735867508814643096856287146237515111150795299483624996831946869221739886350264142705158307271580066824724298640449348734220704823160297280913454302184503569043315350537968660943350485816059652832823029671330477621995693441973523732295082349054237393578634805081572374558678596056720077542444214425435651439664191071753360231276284411097308680660722411600454183696103801135981127694390688576106656876515817309661210466929048872181056626674352377907731609585794513919131767966730361580178651878170228643205860997591604473386800641923461174640399771996194990641488016083092542797554812462140403195685127043878360513498467184062363388353284303018169275903792851021540190119576644099612749616854274612337091988874754857790193198025972989346532889729929441024039820699229214978665642869847295048626820798143210997680915677726207592513467206964552411774576763076228055379960992452736241184596119426626354680054621669958745641531909592588038240318917284072150207338193196967346826870729919970669996569170489798584531832702161068499417380960082242245656841318114318230345506871293999669948574316529034569245307006296435562211841389742359057545224777507933635076561194926264763577515903665334214639711742999244767246638056562230931699766528316647801391361557154410465842532776216361629070238790343037454317382838691018221586772443363421095093859129643493407207165146642709163652257798356411994975519821463149275102299752406349918852536840557015963238015133401336255132969383011325907458197080971679507134671531047361491933293655024048725305317814008007106608100139595131561003431008248114754443297929702997852266862788843380613374037284350203190778544216697695579041043790214921626832655383653698427023703433835239426281309716006994087839614597878638421724439338769589577184455144630318395285098134692315647692055728704286943151109813221332875546697917465779632501680242395624941512654185565958982125098674437315402830538677485917585621769847558811186879420941046823117454795344791555196078399644966475293601015389215098754700448695694239155648601943400117606603959674684268363046062568859065201404702271390897080694200935321814544593921766853559783960749376211088509105895026840626430515048587906305143497614280037306916772517580993877442616593229532494966486341924554272293455967808367627708999231841580818939891862649782034706798292767247192927975442382527225579839688686784314739602756937397148115390844669356157764260807843609014329732577049818176431453692838775176222470212670232508775552659373919975870884011320791509003358995573208586511918468493101434693878180245760821926515082922032367000241103872567447844533213942751868781823365902913540482404341556784122706792683056389792224762370183965618484011406932829994039968650958125365829568519975814269985139476756339896276025605142401899499130247098306829335003699604772817469183413688139464176049493981283515589631629270178757636138375173773896864614399349613978080104716578572379076016307344293935970764010453075951022981318137718678609869726016062533115778327386486750039157215496054551029592505312186417565152489478946509475697890165963600038606243712680836780313939103351462232621590372800522821886473584977985845769668721918204971264046299210127828178069958220149178176763449621706082288410194069292133796189901290517364218192885704618534173047003528717634315363762902021777257769863355802749641046711853590896483093462686794145766075383346937738358602039797529802570615299163432492360974408196355099845770651343829387197196980200103759310783709969999507672366222087957955127909853513247850681451952387234056564302669207999185664100408925245813442677335765076960575279135543606661117050444455016558007611636560287945470338331226530052570949049219361445581390237483611458374811220479615829829679149066494764900199512610638909366204285979789466742107556278310422157736962126866832876095814995615632050107492878726424174175871910915218369196917815079526531922759570028629613529585970212688332752530122766416468841144152209220467325715945575487352133366061403563139367175938883774439440539882831098052791310948447439475174804004692736438783034375846988635427523734640196666834452460311266018039591674182895234353854475469118738454495263763918071635941875291027770457374734652106930431486639649645347068438465553447917862035544130567043383628095188608733857791240969878919151299173997811475360703294296226619188007063232424473029468501219389160866621948694162065506446201096517210554451952995423568614786463096594458700959489605014449024644794143384370247397967160170991338003221812056359008680484403232629937825235645200870673026994057442979559288805352639380938452152288885831102259841313842943589274451183099601873161213952131028097023946300880715073575392541504596314500989095091034734102265228071374408586937552975353245798412599703042889129197909767832163396283630546618572084429199688942211698889222770845699811343107529328946363474265052039403924191836991968610690570161092822459178595622941279019498022531512774116732520506943138303383266065280584817478172352545190995119073215522545406998706090563604462228073016578744529876271851447946552446289089052473735320353894482056783880354387268741732302262776276108027489659758475756089723935860432033105936784482652850779819503651120980266837894371558645453764816374997426013234085246705827000402610928628829839362807071731290819431132815637815384292905877825136879146784261309382045852896682006334888743473752252292757507649901794033959530999398470099793483521342572820714329405138602988282852975264813528679071285166561344463461685862620572912000352599242839321338995554731271919657997765959344158994109339752782248550953694522774939553602771206391636019183605919510952955333100802562714702871212601908339021092122999620648660046239408315331221150782368430573909551095800532722957747425603810596603235926269013503453946723131745861066552133808698907102562305191066869956224331399926258648779490019740391514145052675651060446597468300771326948816289414349719842740178179514610047365951895854312016629716544456752383723461042704170732657376278465726270515504938400198216811980759737544222844526696366505140957523259093238026347497188229837368019531045936037900700930552131452609972585449587696558791006555651609594860658200601811056345185310582561696432382348284393587294069765831619300471486906603374475366349782531983559155926415664292300797737077925634556929903762816438640395748022537502472839757089551335266087963736040636668461890579044392424555222675257068844521624997429174581720162974541643893279525200692920642347912865323229521952507627195038895184774318650923851627757170377659320505441875659651709570485359976133307240545258485703495349155529368410143266238298800676156175271375316715400285142491424517073408012297541283785034222100070145183556861770740504239010694154705399769277492521345705115128315317732107479466823157965096432361718971213471723423423137886117586589683768890513053753048335476060960042373987191799532858113489722101119662257864481964974831143535348399654108413686666264810319451462726847444399252845124758452848944909281210387127796718190289294532806148767384294849468760830315581103511688323142483253973602126754880655786287589736989793658978164971107380767747202755655910460497210794294755778037633839864495292225237285115732968143747791644595370546000395494180454770011492235216824418541248625254619304184358745071449742269886196015454511229529005322128776035593264085185085553376325719649368129134066309055586008848132095899209152587912087665370125207302314521706181582341897888109864837530981609879297314221429105108194252741470365125088826728616397145177148713821491948845562690112279372843655403243508502861529134828599944958610871081550546792199114002025598642379145911366863855199026474159442978114260137750927569343321594198441324822799133854216485135729859868167350506934788730932605238675670247108212671267146805094986726115662275611905503526754222544996411805095234473364787490530478391403460044002149373582244194775920728949150014765221902111079728908755247833447657014711584471402876990971301378865277859340239442266249355761638251083943482763867941605214896218418153956939677459188892533255049088721803380624715328360114441141495448360635269771231681879161108499697229732386095177341731043194445340393550389152057803889540086713186110098759624200479351576178980348339108690890504745057940035905568210266861623263217966906678058694365002957809444624048119153244858137373261194545741868526675021514818025678478130860671325296461957544248039401776771591092412546689774914334758708425361579560266800319627146182860041448791195306096494798994322934045792147918057314186164096146784948751747992209339726589257140921828305162351863825705175834797185950078491710501290724184685140883540285964995200983411177992040773411952728047156964918889965972687394415516543784299930930568261351710802289099562190767666135582921384130353231462606172453035932549168351036278729073614293569923497179420063139201587914190950274563927627057153140427331569993750048537979591086818381703751575437260269910288582660614996595656884667087686398766059169575097912435176852540566067692859526371795158665988243077994458748676872292378878641133607819945755002385627033720420557151311715906107017266648999420928711175342104703152813146728653369194888660438356099251002298271962867990954458810588419292894085486274323867257306570922008792314135098575847165260178057260923656732475685298503452289546537372823025146515972061788184540494357379360048410820491269073092635123319576023061228608590680125780992661778301429054134039705993652310222626957945849858839962190666499300681433977493191136976718845022670723101618241815174958187878060844929881517516716195847309507231226057177630750457414459724806185222943497329590336528959085825896362125933389530218377000689721483154922384919961959357587344985922493019634906056585957566530541352202007628267433616733395766700176385169115719203181277256939805642195227226032388653017923138999686906914556503841473672883627891679398029212684196326996736272534636089661402651014275015278295673293546772933136784869916539953851439312027837319972289185944467486193451039044908953200973107576314728466602759800278527911348004069902856120657839471961038161056616185697199592827071507613733072951451575553585936832563653611392466237673211038005146550654772267702249241485868910544082293729308109124576407319935126195167397704643489597441196239400982822972905391057281612756023972944502350822975071313638364067415718300591931451553549927162764648636411592481672140338371507451686249480552235765943954532589324061305396050197526497572269034123445472300678339175919260412349018691341192150009892993385264913977807692036493113038884291255060188151702739558606008688834399929573410036128215759728018912254450429900673532370122512520994772373329309699837180066106613007619969695356719692511716255859991338995132496495419097131285764976716407731043476069276386251633461058287941214351608693396996211310559645408076653006858830744872218961632285813647425139149618977309102430170053966997432686892064624641297130042327291757636605701162432675058841629109245926329475332526968801456495378523849369124869427793707732256982017176141203148929466013436592592401050092982861518729596215447507070373218741053297687627731056391021561960462949002440823051294962866586722907806313764900828839783171951112543889265563618209437902257655953456681795963307758732552118957243710633094526260449346562987450935203310525431494346415751453769020471171844518528928175656899848835910584094890753629192371479708552816538489285691051609160456141899647099082378684948153097925014101251245103525472354970352084872117922960398688088228941054069007774026184846693701945469778792306765232775952998586874801666779194460415948804895996281070407683094535232637026289806878823906433440724027012017761697699933821454339539985646278962944477931427355462932287009930940101273144393606348277744079974600248707021172046931118437029069963858995912833209210278386122553030400367603986968436519262143286047313418943678753561010129922359068359835982868311438768776610381103288978549531608257656340335969968677485506712381831984552250478855663380406204860313100636898952725346607653848455490059079443785104230888132072366961544404958950422128876574849119105499200533103459389298884201956349211007314135610314661447791168891189560293178821067992817794722428013970062239353055687508576657282248375903179407009551819404455613695799985492508281994724200797372823216983374042762584315066411044988767212850427881870714161477788051903160385870342077806999989183075413511417328163888763523253068741252841690474259840022207586758164779337188319244278169817890002316508922611157752836591795308441765269032198266636453574775188468296202247906522640774917781329740496153110312390029842798493683182343025628115432875947721358152429877148316051215007426259915926660858515210910990523174539211683250353810573919441391368686492472864178306365314594307746954784615778728997526159895081621468100533840838348401644456756212909146300988975823539868994693012404879626176384713280292415102142614885785920074654610266753390565087768188225256545737561322451830082364710359457072664369000586457417350924559482441840816466095154522980078020864397532950824705695881484865986474956766416072789790425973276150020385824485662755844692581815395918573383568741832746913976885271056738936043902039012295875289318071521073628421045913597632854719946275843413618629785840523142258415892953783391117418132699727659200084430475429275899982641104912129803951334425095947997617341526064085963718835819907500313271684861889760616548362222747797634460733199697417409422015466419623747749229342682077881629512795558787806540123937370214096854150247849818566020838955845140694527001400269542917459513026951913390965867126931944684852531350112128865230548859355166390116178916189955731963996116987257066758185345561942883936538161885889752107309234601403024523359220697798080865612484841156486447596808207288207979180235613713003636606784008739634806877586212105340354212564142471417585781030907089696131853677523337996415227682883237532075458948544890636134294925954698855530214826446805335522119660282705412258217674842309690634383212704188574274458512805863809913334685588255207833429954016354791229734504227470629850277256131480789503469201465461796450585257259285762933042900977587194736589062879560455761683513250584852650177930831185465954900616812559035358846403077780427037281348610434729724757351527177525567424110927997266253375154899463754682747329644068107537562127423136174197619310887770068561173447602535436168273583946400812078614923901490719337918622072221218349565635337542444317625691273666803459217762206965811130195475587970314420301879488946886734653927677012496340745777243088639526598737195829651106210309023451040220442584485332179548233866105292722219051094949347510303331664614330036185177644403087291094123537418578249107362053309339409793564120547765871985885951250707307340563362473565331026072348690918131575563584704242001524725128713582449028441747679166835263235993149408822905581668352464074615330118113507295268386738104969761398720719673098991434047410198049048390703837704506757123035247437522551570099359445186005394431058276481821437017765353962566291038464950345603171787113212412791660775262609065059160101600037139072301771846672688059322255721388696072052998409414900389913920263535783233031843908020946415404954257029969350418008871303094600100465935878560867210244006557574367348983400768256039586913021749620236427460119134755670334893948705308807959173490350488926423255197823741403169438870063391110680516236259839156979264127151308473092559541634900251683533830643004917407370280687728727738964255743956573246725292608282289677025696662232343668158239210282666181701022067603015764477985994520430792434657269734003951202739725178574655497182732239249116401759089485428415553018928902253880252656219792279604316065632767613227560140475269674517600974872994291117275717331502231678070802443005921766962284779298379618367317395608756885615997691719973451639184238277924273355238915242028499379389086004036511729472192169217324226258787829402268038715844238963215916782952313163819119782978480313757098783853933365736043875395784839180174676164887812154756985863579570793936007349725690694612364855044715094575297942458335311955852033627178271259019845536375027408570126045149679717949032300549502162593365765291760052866170203646277819141798949510954779848982378902401717274565225226199904601360198392200286162339193177812965522241445023624856336042255840267202544958876155389591061312472575202902172469077359990628212767913893892095549688845833457999822030906144771354450461272611769304101734933654678645994005501837137198587569086987900311915674794921729568082773978612814838091076787382242581463025542011657902786841467853520827685497379055002995773264341013708668591310712233589016696676844078592055887957037193367113146500227898976710117120233818623828013093088132088548826763542309522921481762124885661181198557971354208954819308780922016651804040636192140224063084306706982084800235289117902012098816548452763473422104751206494385559815897720871060825641012995423033877643993547786404739541731618692183780983679339340435299845265688671549797113785669479548858583403256052930809233388680568299981544825725823714013035891692818057407781247659820907758888970149619747039053549349457771097071722656177524184989072090938190503844345843097964353863166609231204866611306721877573453287382424231579708294788917274719101347983376774709574674929012396589283559844409313725819136786855348110266159959632723955826664003687008998113453924394371495873135633281554622428272310314067235726996554119776438227197632765567814451428693710018859107707287554607927863342919227276302577210507107769511748360565757937672114532052639059441705437118507455409484302253084909431948486490067632119851922282455257435769449752842220624320916628444607753022228037917123343891223051923405897780333904548871384289663115255712647583084730339268158290278483500864204566772166379214251167723042336354736299088754844203303269543961210819490779650405417685282500169074044297070247734927919585912375266027639701349071058879852500282748872582596426216838294628508199722328581398706635607246900865477239208869059399442074222895040704471933076152516348479480212161184487950823423765672410199278910080280048161359556752575001759558875008393148744397578760519735532508146940902943898268363660374433475267190445630487915377768668547315213374367595194708089921321573651051886163445975836609369915752385504217783196446458252952312888130428058809055583220571555847805387486198950841467824769095289178942408853760839397833386515710288394163825625557795866937416249358866696702549434333771410514127205248367536239837738255751545832543320579056840693738198096914785973511290446927071209779464617325188634352639545854143246447579006028176698450962207352830843824336975473699308128648969439717969115803536334627807617970687471278332795299812498925231222207155429210369609798315464838762984703319006875501080676245922211108553189660696859681870330780570882655564347558848743079698467287666513999623134841480415719445234901963889088468610780011698533642597978889450786696393688743378010092756711580369735041051332501360918065765396838254895693998657858982238849960263686431184611116750642651780276723804354140644624073120455179378058310675593690819537826805468766930504440112824990286788119092283216497266935795094933971015302757685656103199002654515412474179354056500964162673348095153454793684285682152710317465731941840584433043184723439966514231914461306991506947390286453897951563315177840729901542497139433346759485313258420832684780868607309047304372883248697987312419130836383276168944651858568846747903810212531060244657485338739014878634077781638587297924655863231008527396316104547335720406901482447722487415618634325519357697061208004842712560833484946676103903949653569192655288355141867272295856251238607477916919245179454899808297603619287748064104015513899491783489235288489804260654862399142082797753448615371697175437008453675150342704242198617407095129648370071862843593157401422866926246180041148429593442806673626740015921715614683659825019422100307488647969299522291162046589277844922594565626486391652452473873230136285684788742867791172217185195120378160122132858343336569384463525716710500007935612387382612546713242736711701386437541892024440183374677528320865425896932433456994378435306140940484258452347266534484768829288324085364670468528888740875125621786008000810180462987449293304170007985579985521208311871902128522126577460135537982623794664718793425218310899430595596691556186321939318480551485801763527693040540543690743215917564208818040047766840852915870775790505084373571350077623444622725545680483120465656454631238092656335053865946247368886206327349110197010680725485452963371277952683343545499233200132420296974213420761695449870096837827171067053553709594932356010550322346214099421453972414404861287579347057298949302732454466327315861438294874300751618877410463139732464486692466277829320669024946904047869573402361543326333453185288669712324153128843976730422377833231600467576965663756748461871777341242547950996805905917939861417434609193722551493618504748477146594942035711244853751034826464657751510897736539039573242399113904134979456688232532990355174730344833387884268949637852671424959659449263437563328924058643194849793301980539363777859737681933999961684904159790828444049630775705054689644220491433778969900074399647981677732161083601575870229686378468150294375443053945184751774239947540154353818768457779482855252396810177003292487566856049271645534065436466843387812236684836609487277524273289886912831196416774788993633559206361936141722399421350057648466200099257285410570748916611836902785494274847459768210196932816505362820766472865382022675475142540826882764780678093180455288014006299734005072811991255853705032146691418513064452795791214874385364011136975665664950600887842739100576356772533268162246222758629627474912033658001672699365241174836692834766733053594808355281704671467533301773090837614345444448877970587192725011615800032498666434999874162840374662575149968622527485626847238252475274189920869599104804518254213660097834337407752232703576682987623811780602419013288496573630032455247858287239415613352036207275563858084240634314220027722916824763684440628095821193985572243432369604954204648471614682918266111005681453845204348517306292844688155468587267167681325255373746139956211815750979059798275274216761683739249501983134387170159886592953565277443896369501860447587506075943791546583619903073524623354568972925700816423150472039818279190153716399011007185719935026612281177408150434181149993458593029975781756479001476138893686507858425869705138625988124340762082787641506927202063234132877493192440207090749127091022837674557289599403404109283621851521391212632880556179436398554503059953693297783697906494450902109920559206771129775135209040177742142439430797169257316628463718913776624080181667261795129482800273175331538476249683036174318663498293591621712152839161530826081319701261798258814230757921170362764928664830887960482720071213603900656157891614874656259770550377920491577870261923347408691516549885576386837547110810113105147112758956829652681176231394685409246134668161254261146768290893084671199730725937063444775501139682778723698148165798619057601289414249279847383311546046233333386691431200198593473700946963148238615599415080367477385906249754867921834409306210153945908054466904255317080214141700162600328897821113186138211184878818435950502224267770591802337092064316661175510143012671050042915560715058390434067453353382294921994492173308905093914453885455802017611376820666757363904580397252976798564218574588278421773897812475012038577974519540396449270940734463890343673376309827057388186681224188520500054454149822115759294219154932989417531276510294745961378325729417338043414916011335300391906084905471334592274655109463050100486420796897431595611674473294578241307414567537846456581056754431354484899314894537595183460371776743939878020605574658982256588246395911909308491090892967931586111969052657648640104148452944980579305796611480325108975725312885527698179842117377314808913444830096041433436929815809377889042929911536144662502952646753099168657103966017678586192862446219089263256097348198389534046677290379733656807734124150231069666501152670600557366295987729259315582493700768073639505979365466875542772238429589593998693107068701414497508445214958381201358444913841492930353160890157966025485983129566196962606089024462300730383258034805366548909585614318907261965285949520053445221062989949510875246876928110076659438237624617730363434381056081917612174006154361357197885391706947802749113565245597935625481427350189869239180668913306373749793024808556560701060681622847806966546459485502307416042394622086525395962001207094085025204974526740045404702027867407133735833452453753186704273952818833334897639016114456887271933403393658572344380325976506478744982246985535910192204262244817628308345864424415679200525988166294801629587834582095558080593431549389677887352417618793872516296474008721910994218725553990355083562956036777871725330457120355621033131393818402606971943473049411204116971994460236369794038244252204682964352151924678126412697338123755632259152097934493200633066995633901955606606169775776780566068749504079003925396243413814719186188853740370816471211293548234934312623305668332911435728279025520197457342558831340594453013702425279956993118295162860368687200227659234823996105611702041311695329643927959435380154165619895515906211415374459994402487606087077628855726578645464496843963318212635067106363738540631002018828256234208338705018202192184589675394867706495782383981954982358819404293844541712690245208993858858960018571782302351277913355889229780361774276997899641196370173681430123507063249089553678978408032486071138981165733685550106357937626742956848580234122101476939802002868807481556600971865906995220559335299412991774736970369101757445112369382576981409820658067119857818606874048974338611137367679266274919320333307883723729294929797420585777186507608356636570572733131353441618158498786859872064204242913410333398574520327746029678500216113842650670736087962174056556071534588985031012067379867657769191661079266767031051289816806423590583810359959860692122956346415708536483212871101195932677937364123389545294896643123682851053292246610704849769481429791720962514353465069874525955808613747471956229535295298321686983937905346542721128139021530408281719462133163462258301761320836296819687978837506261843055345632962937144011612303199100690419509565530147325589706443403452083660772083969980682436619703568606097762190871329145616039277515127510128157336956408662311265365467811359449443133446403684228767845176998489476014184943010758012548723168316845821663504357075346342844892440717898378931345529936688711638220101998396402809175895760770864165530928461591157809673677134300483851571644916853829472672423763657048999187667092773568473962521997910621051547592532413418049283908157111277684126856128904825031953074595789824683796018083247088117830886210627661265219747162396503476561480820726485225971757615599362030015190991232775386473436456065646322575240989817119455960250375246581376784502685279895890499940569208179331799935561681164460506203559349791255059575494164935329790460985267353349018868270884559335133719549929369061427823572122545318451122986566898726337543854168111255390224360394176715589206964351523247186024126499432127384060894856909706167960996780083700729264572245744377410950220827998073183491625553699116651870914439851697363465210142712742782168667547530443992998095149100759518677682751232841737279818007922646001359666784648806568122768022272177405106291125024064310387272226817542187746709311285538253905307478475152377859081652076144340408690585446530146650118069846642159458311961297934155397987048049291364394516578686223074985475328673861247132897316696683952145174169282982301353226621469852280894137659779905962717532418826781220536486986615301016178700381020552930155387974817399430461702824266589624017708617138986055006836103875791347298375230723039922031243561263685250790188719192973320626302809460210097846755408342537235555241973631221200081685843325149178559714511659943548111382932338651089990503214153165067935381953928636750773701862868767478573928823339348694055572832013997165356027422252700146268505798152411895143105777751141298663495551446126459875864846554157181543195128937026967260727112435160968835194384780548468245096460707092841691397024613214009131738127682265584330047090382458196943206719192047768710597251557180185582313034160216918829780613624971413952110224382352808287611620967782124214719635119326669586195137631331237901856475353918740298155727569828097381831203557970373749902379625861525249720627388528553147271590059299267257267974507299407177475980899852775285126726167517638911871784884080168558042590645102316715278883573123422759263016418301751899906195005340977425869070113007573533074795694668152916032866108407894085524445157963436026467326877336715790770455420165892385780053418237550924484543720757084374927276354586267337872746529426082522134998434471114011462033539094566227588056082410986789213735877179745549973733778376357229258313232927519394967830334573897531731135882777997107211565278169459762978206195169132465966746004062968545991005105074730156352463907985792517826371591766199026546734245819725413843672271977303692643378550535826130210331472202979914954290583725060911159138478920590861296554840188214629069102576282277241430748046449460934630632013201191199130676442889815265392592879471447653754651691914948437310279913988088177427889042727425937953361487729474203644417399828864564500065456559864215336013333481244522569246250818303951257011934582856694077994342012362593128087006044019420973601672467606940166207038634423229290873088697064390464551501915439450048725678741401287533288312613816524534593237903208995747483771548559925043867849940190261501040500056613145373675287467542276373313493112311138019321358670823983672839319958475324204268972294797567350504298952550492071490108611513577942092676319984835845413509421437206764245215432033781327047324882883317488735773194063056394299419182216196145003499141325821477195478681485411162572214231063335588182826734098839498297363140060683945866252035276776797237051040394938137328640923253255182504329212757096979436080197875466457272734149945972099094350727596406374744160977738717622405689338498270527998898185222615110839226661276405927638586805814534711905975370675193432215816999241572257352011499674488548652446406337463513199635687444976040412981836564037072112008483005897155081522430289522535006216801900478005660976131858141224330531406894136904663561783518062245215589213077081666570967684144119862706490986840464058101559983510994908041543584923855868944440434116146836857436940149970922385424034976309485733640564060432314078687495208554856954666576282292537450477087656961505507874058302446373187032968461210260434250716419377845886443996778295758596596701043992234080194554282737870947970114210340484010893265175547053258913687862834491801675970029026785564555126260987335806146669256460345349120285229264044434267694420084095422455428823026963584676646992522410431637964071123715503619334091315344888792301970553401288246663589343559615970847841273382358411365467068345927193384146635995347245490562471787968673573673346498659236625594872006652650920286619558739958470109600915411169549056338552281118921774243975702593541770943610186316161842959464303449108498743008187080440456743865439104132875331727454749322586613422155477054223627628072389491238384010039153452652036559183683308010625081343758149054004215104011891940267546692183183154565326917651447218344718052318620371995992825822004872028322656516509751849651580647445306970530444584548576733890639526844548672819868477365618706284232722320081230732704801628326190073312610258605453796402784075761460459898975180116765059073714268152253609538494670058538594356087999670262727671348563361068472858314005552886207481077274771465099448002574376990313726792238371342842120071863853675403397646506889300699299304732918656206649299208409557894736683786595973530221267740259058348930323107362893469158230502745489430323811593467566718329762722210192288910938659779690864802136374577280035213498944289534153111328646580996725354486413480012282593354853001788279061546392487773942767886746990776370051270276448101184969686774921919620128927173064249793337572133839342920417646988777509801974158735416488298827711857124387588690332610128226193328898625305252045142232526753149554198188489078792241366531204491890084209220324597184945974696910982738593912034404625307483674641181982910608479753246101315944551087621143676096997195003074504298001260869835191193347968838587343130098101286647325880053519998669093865422320498634460336604259818557068760297924464591268833413980677154674983907468424169480549041361134468252337632499482911669900849789796009511307025533988758980723048596636721597816699168139008879139591283526448174173774626081473195162350680950653766382989425039462959178333720379219475657842653339523349616773258140419763273797231838860343248965477044265038487059656004595605062857849437592175878252302383507188267508673211057281862252992655693483207708900167692431503786932319477526571059393879427849934581860154638644907795277476483578265470183125726707168410884760952100613831373654129728694093151952303568189199338911434604878959734961392511145292327540679873151465467429765478985738354194527969795932432075616200571737251644878912287577894916009790223595364782558772669126861761277482879680472122773384374169748054237911593579238310012010961475572359044182797346243154936191638251140812198225452463756759424890183605369563714884677572951316026684215024176941248260187651154623198429891130981926361741571862776210363192734592942279074874136189266156253192869026797127540808124658023169263938011257780629159789886156528071977456158283261485544618802241814247286675252602272540532561336827954883213579467928314801595974875483878799967834114430025072700662571578546508493566024225398926161858091505128122467746569891120241550783465347109904822698978456594974194124032878972358532716220321283243240545473356358441071617252294490249133168972516633275563860233707086194852548869592143481850215227457505105560184282210137817781722494062679910607147200227578621920193278379020213635348093723457356151076202860735056063875049327088531080071038000523149737181321830513837245008070645827868462349394586194689782095298280839729078284700753561395929806268417238387294260889130916462075373475041629283988342673956082805451222666128618854075098663921324599705803958095529095455177592049209286217766644575753289155645152153961983761142138264564526258689400080659323985511681522446299356328629702406234698674044860911800444132438594072015656932018846754707185877705412428135616148096916436580939847807866575825695143320198296655592289547629918172978540326452835520953030187226990409070856943376601449359149529672872557906082540977570079439049242253503814107159825401943342176881069535348897894118590122648398627406407174822470101879118867724981990692046604584735861201341484142422585370112162976292191234510192213241189630767218072061470168271854852755887187597488995373603670614121755123179206910324491702742261347265887343639159983514212694079550919416467716794117202110561238992311867317485019610801063343500001099460431700185870255252143486545559616973408628225923406192114841668641519873794909292072290303758274184393611687930146945755016769219723732069135457320436543026377908199727591054104245728179506088266280554445672398377350087874224160387988539442033424678154756770840578121804787586327220917850853783357627459611080002299171024249307896446383060901986413631563340432445376693569078689066596667253062737876193946804711743251390529154695907868757414351399491371273314989411570387655041961155571207827766785088197996320584628057389094687592627919159877383416409767136610909869246865416562952120346086028293829085298435262518565937279122364290040035863679734927584981294420760193024488775130290058960370721705839426019982001941366714482858300853786356778490804028866631792339425380250596088600207922570143207010642547153195075767956305624513182944009264253182462936874281526461672613188580884229090239192861338894091364117879954444086655323312356931604619407600997133743803830361827396748622285958124632198691977350361475093052803205716723677819575588430867233381751018369915059633646501354909238557520103136917962948889816344674704651969180141568988521132402190273562553317152106772463049889265743475252384487772303643975991705984808330305337325102813738754241450571792929239476458875445675593341052092828825668467630081215229691947489028105551246084205843964816440887022896178062871348106216574741076464971136796165501833127937963474630736093944104298058740228464307367289200162334556845381761616691570267069665663039391468919615645238345961624114024931883333447759972859775198967367895977529337001018382549558166208370368082385076977678563931110357192961178150980754010686360212397091754282921464647319241806281400777916111582264127069907091634984197371924113401998331833804642344519117118964150429980154352819599073266371776018485815368496084102811454865479799402514764527610018229129328551651337955498663415096815535181595645675441439310566842050264282812722162211317243758486220039792867320152714354048849378678842084035657551611219971405057451730360589942142581403362288529241444945965819689379516858894719527698651735393336930075289095153635116063336703654832922860809191071535908612639232079190287373229507571720864533543597983870958495849411930865477469977268243948631361947223531364954410344333592262001682837535038168472924147151816740985167962068750251459228179748731362675382352574861205867748929257518197932475660207559617947246970375383821640169226104390724413946239366237311001717588373518590680071739898665671568156336170061119482609893952587292740573958913614414147636667124559267822668906394473617548205947061787098041115576715660596091122630455163931798612138747742378771241878189394523755539041210749579215767982670068069485137339561961843556084487479410746864966452566810619376337378681681916430163095287450799678903246387938855378657662880724055984369336555298500206606255578707044657353998975805845886099777789908606355838564917813374530702169592463906303421153712543816831532085615239573331436902346657858746574077366539381201260492521425084912910179762278212299950050434959615938492595153369652419917585945806671282553973156504472381271159465994296990474833965995056388131283101862940893808981778791096197195817028112312220913829146982629764502762575892253428079390148174074193809409813081307876236331235579955586695093469975867386336234624137824236576311858688423223876787296678068729844112113691618137455288108870892498208692589507759212834082118852652310441252105095982237684097108484560789958905009625363201458043086593161568716539629310486515866009318635407454723497320352139241857795207364995476782259998473042346212938531929468393183004698123497932977985507683837042800645604144609561148615327856150622472810573510736878888908831177507184116567424095539132966026496477903614909104881163300898399345940706497585560716391845784049856872753121261855794562042787663727961322568194774033511923931972391190455040599598351861703814411123203972825415914912021015194433612244836548977918111551927631495971985313378090383280564219633934179606149527898929825908271745975018119364558408802739942673501617512225012337937028956963226245085460911035357232970843922743534956363370110456903213973413837615606114182257792232000835781531595886334537599268183655010233688879672402237510164979738142967713725681832776117034441801717734299486976306793664215354010006023295655598800392218783302313006077593145592929047357455900964508435781727865807958544489607238834901631263142077345488707569415758438092550499688851280806232232725335739235739423873027512488159536602680454101758084893992729431535901715274860094332817934446424034531289100252300787480753846365042283028939248827885204352919276058539043331183505247841582573747821337465414209434583141761035227711752310768938032429545654587019164383716688731112841300251396043909230205099800261878355344665986695331806817413475164459697937180884962575873025209683909117869001923894570551006759014854458651879840538812560349215217410850708986028375337184386187343495174118615869769238340615671868314407929410311357844617926323944242307261801900698467566532389191196692807063641263205787955547368973678436277435063657609679028740902629597788395545851015315921323224780432138512431316515818726593339480916861779412054825585888739408788373021488541314246922358753214369594160728185934635996691158785131139213577281950290252106397992171574857559429290143026645104779678673470056651290358915704722707811797179045789333826506150879741158321048868518920641277712034716608279175325208057521854830861214433561381684713592107700892149613862959192403968532671117431801034190495766833476333122300918563670357671797778612444492954814695512930684120450468075082976553249624832607107589417020104837110158573657737229784556365880805267270023825407834032997515081283373605891515281360544856728497882275115327864887480098653510926388637174369077842714880261569610627064995598210860203279498294913160162791963844138652052717470645582613193942366218370542903317291814621561569326804594951935183843814810015421760632852040595468887088428509753415905174641837772001121051105401408508256555275747615509773558515717466192988930701140147580908218309605735745237095158632777530740819334236594246444374374229860371247532117080955481868797739142899887288768384210166514724472341916103868352077573075124374881461038758944499584914102807810309941144819952719177237260986450539986237223825232066076356261805199464507665410081779764659697627475236510803124250117898448807719594225092316426509457031950592649964087850753676704166361057469022065362141180969176048439307536818480660570821290264293524998200401160599211139849267603646747539759457596804152514638728726256015687761314154363995612786909049938003047043965172757929714189112910264543281676438771234423244601353839223515936957896087804951974998739802050682236266742648771331414907727127581142969034527246074159839537736758748359688317749181726029103880810284959198217638945130544224701795634704781361462830896349381383881930735875835133141791301167807454094733619153331612839229049125780929748702469979716486835540819244752026619207162784905918000093760272993406023628521597276375126863026977197529757878331943149170499026483131179685689233953661361400301296980544450652644337512916422603050514905115361182856366061412169455512752898486765723679656000649828317448279124095742694372767816520011692719645020165893734802852800081969001239778641104510042742400351738563672177518237800232035626339611069316687013094019684854938466500274447888250026746003795400408398218452096339071358203799393541455415169549483188820656041988244848158140078707158153445376161153654518881247022482183606241460841388484772980754657102732519611261777259527452912149383346552581036748439215673674195953541326193884607629849744495840505167387082413864961210374697226461921401762943907287472716301265249170135985287134124818822723463549594066462040111673861593896537810871023817328902491354692849052159649579625212867624599391921764855069682854383791090570910015296570609400940055158817460787547017456359727082124368341019799477921274770977796103924945548062114744546541462996986336141482716781240478033636913963545000388959748111673380963808112720257168356746531427432789281590927205051789105559131460550033291159400090199292107971118098562100825010121037983315521713077720792206234648624217025633555987787901590623664230323282933264517779731835652543994354081788470581300001219814666233667299609679306628071973879820444701131724938655651661350379335264878992666707150255403403736034541772290891076545778546537262151959917790928911243285861096487795822156567955440830217053652169236524832721478701203380207623923150860053031802836639302714699569488516771328068844651842700127271121517548545002162226518610419621965393579218563027413273768013376002642998857541992613075425624817508783123491544063969009144331658504261990045123888134108725599584372090171494448971690535663699671615066837030418820898698753417287819791473955325076660110045002797366053550555168449341011108451598609292944041325626212567093472394056777358486548772903946388763043915265046913350620348051160412856829553719153611557542074018168823041350115062885489483004265508898573626709297337255142238460504137375568461430768314255796428283972999106590233641062034552916420817974816373677669266226824270858256623382833481589083226951262200318080103514254185007352684792993602002640884859766207867550967245620577999342044334326761555944205825013135772411941205850099921378263880507722708810679820823663134176510921698131978121023638741451312872856770805640645204075272357447593929635332058879888908018428995421681118672416310826231580169517681601364361644497823415878537957494547628086462123005212753145140441528998838193931499739078758149391626715886474290076840096561598982503785375774987562116183755938168605335103595756593971173135565027673932955035195033541414230961732479613009545509649226374919401449374541103239513781327415144553155560547792227849903527364118651245874692752295335213303781434630456225133569098443793686909478569641314875183057602788379941032399807568351244975832442602559392545019851773467304427185988331121684898971829520377508316065657744655702147772203666353475498780374479361191619103769037804460678577783291635872474456499302576906879318853528411354419285594000947075691263390332194828279694425112818148203304216646183358663631740809376647406527812372920826558162045481373597833766932838125221258821939114301008098534844141466633546565233546609976764392348799091728784239833460659556779213630578409347056841482457450354843198180586747987356268790176648128213636320189674711457250772237115074547009706547069507649593141955766483933202280355171032384951903124141871282913380370416618390428004186185555334240173689373169416936828330706137252545310245794580675415532197998199593183572761329581740185368901574766998556663570549495163812597158005891521406470177029114030625316639391207537822105199953688977016543011487415430176357784197140850604942950667762832143839687606169535991097225766558444799241384854544982842101803578669623534118929416905017070536911814531621913685840158359685631390263410474456484490101593488458274389777049277677359961870849722192781650556890655998213845265667247866826191801205400480743369207995494293872303075744151582304690565806542366643587527410221840792335460211081391166664616792265399929798594234464551303489453244043286622679594548863497981092920216951040538548666075909775165939080667964291043998536676097231300713287110823368693630232179686547835957326399761305229629757395560383142196770719958775633659509163535924746621816656063567635219376431511215961543415724070302848314153439486451349659817417818064622737152365913584408696715105568289393736974851917818529862482198831847421396199495583243686439057656611665261668645411196786158875833808909931108352727360797762345118979586714919089275056591382897598775528859058017141778089241010202230058854674851641779547459349303571812402339088846245632902938510524889978952361766393842722710573793221648643858146503570324812741108640518529056605471232051583709742053836841034220312140253165485770711509463603927544218697912146977300282498397240342066839065998725687008144503390464872846968840878337739804638295429798830136379502169184800085877059556023565443478785751921733575359349645451911120179123480878499275119161170434634275804937656777292792463354911255365671284038080239319746139787493746774972381700643351104185422171978246515985799335883287828856553622441490395513221253561998655979467369629352000648021203387430435615433213803748519590919545061402213605733294025696816078603852179201964899923077561584723177859806832040987274479445446321328800839080309253230981680358148053949656648069227255091441491962172372430312547101431016509723294524098095981183104492075642905316691070270139758556770751745896360878977776671397302451754242010517286448969738431943266808156461121729782658834779932989714339063892330131780635094583079063236566629952706366581985771071397254969488614380868966918249468918080139652867417268320082075294380475350540483523855580949233338794969304287704915955370538896525402561539082042687600587975218721338069805191425602310980001610272785216093436150182153595387543530241860289687041452750123619370615063148746315762065236270824011436663302948814786075009472202068107966753352980477660006742174699043360654222229018426666412365094201618121754318539544839919993776464329736013727296062441319717301525235415960546566398281372013902701659041233261863086979240765285445616409665856206597101191640966698907931139445732820857825921021069536024523863734933946173855247335842581058966166341156118312258148400606939056662847970441170114945952732624007135489777367439557277716897247673842838012262235700167506786548070981088339878660359396931068451123397756196743703965682634308470381820127956262031537285088355535846205612935245651577648456055104792406197145441263796535100162454344511647099741097942870257146704537362761607247676975590079588380574212218551334361652267092179427836382068816241067302023096750955595930791540837980366625909158662507414962698339914557116861264428805479770059539716680852244655345959460690316541810155784912822501833782822494302482033741983928727167914848331457588711949317790067960198000262220401791808802087047439964051147555140248513859947144531476300345160709967354199723906954726431847540736771242123761080480265922441979081432618739055283466677613579488693087350850411617724327066820828409891656765686280883178507480585107613887149155168077313236672677002712788721285476785064221859639512238604737105615135282743590150119763179197842463295696742433432022399951929229620225514880025901551420680870648579900693229166315427059076393062782216598068648533679105044557553413650959893840721481711789772162891765604358250695193195989463514605789865261429257987281599772242161636307845697154522004682404164613581708875348328497534679621886889385794811918546386440211157824739357061941092579371706754479950873997539994963352965856898797911920765144716059190161202264424897374667912920181816184922881550337752604128865541751459819489485420109316815681550688646761019283796754455063874688440730233266139163143855501581108874723099850281561933102018933706863660209170030247037054220111424418586417109596318849298428314689542842056509194389716209570467000051255836818647872723151353571433504965879018283126736764202466486207717839396963422302853572492130299002874611000440645420603289627994968988878271872628211674631014061785333009039670166235759523687841851671118178324980093205257438833259904751522498778364172503736356226086197227942351214488775983233248123720654036750484521494822075856299311876059934609141295394912145850688238560068978837554939092779647009690530443829178830654799162102266375177251050985576162846933154606777259338706320297986388541610863502287571659574408207609465960954298709585243702120975428984119984225593869484584524472395444686267081416811577350124987073471581971061846431574716219549338938614585936164170797097925579159133027281167964086810637017137503115953011529192524323008015219023476551118588103148867358772696748882522680304587798694510192976268760211732806514639309059108910153495413910940702956016335195138365410929250661361640658344920353712594081455185534988035560883822499214943222263650818151550378778149571234709983033002997382678311282261371133087438865223214426776670699424770102923926904720574336395945174343134949072174612807061072452731782504156143922294241532108902954250051007449469578324245948514288314457902747563586091233560705359738421009439723907910354762259068645371263441057352907139409667522025018740266831084087839612987009551726499096538104338296817519627433520855436789532383134738644466282509514251296393996012220036128719503257754575174571657468920498232175055672822223220413023295813549390277837822473240171731135248299410267194648831020008631721137120519396579464937394439813168360023407178896026230399399876263498807810768427559818483354569042651044553742874133421873173471400272397985347857500461620415450830593097616389796832611822571318787603278015269838391263495711079906151972016356015499870513488870217257318929077086359802685124190324638151548314537090559957648501560225661939047021052384261777186981199602779064455050956559101006120405541108712647545277291306596383571855081221754193851933767261956966409198684070912233895388880247135378065550896742326128474749303472712282443557788810657655961941569417044824610991666245562921210433401215484438497593922371299022979681058684968863517704495231170517502556929308172125164726115231756994316480708284078027636016387794944518535072967810151097200216182377777309367537069063818488481263146969402253507342543225009415111524587346534972138095993721355637583237699062267488210918006618568587759372188177592750880255481190023189521637773422860946722633089882948163767502858366069044356239528757905965291953774724602555783476380704534744180409199489245077269065588254279674254541965519136242854832087737379872965092378591701381551701346837056697486289147053159905996371468629496806273397940682418720212659087257030512806549972702360523422747361430581821613918681043049997214611241961685468395889081319158845766959909437695956967873312903780254560827959839807956107693480671999198456705027471048372097092286885377031360573707491619657856902977855548201124758833520009360486424173087162878229151247468309743230510696886812877182276023280097499489918571164513682768084379259890790654234474884215502463917464802326381974374592329040912610423622481484325094777986967546189489593067000263415426622204376540027599167487812663699979697647679055786483208805848465349379432227296424554968754319109371691177289122230418215780054380858158588203009113599230702578862286575661140039279366084713267612829565466863022926487269939711846967205182091998294774855349036978413034003376159660809963331041580735208300741063973834318237195838656524104122538761106334568413636517173076625826572567466524311707426820459800432546060073269681303580103368547054827698016046563822499806486364594808093038978262576900528395310750313924956535480730121320737765435133241306591248997773314118463675305572450600981511239970506536860927542265554393935833635203389048934728158738631318312171715203739870553183801865681685788111723169049712733448403070202905248768139165070804722208222358507451192458236248882390626594105217299882017943748966135645822921307194847717026759365450869714044811338977616697475665091611823316861387937032096152675778957872733309500034972481739583547983197545579365124679831078555582808168469162456665660296286281238635286385648500737763595275368501935131607221702665310606898115982653902661122345171700396898435274440404976094071538162755747850508865104986611588692006947529456053526529584780968863607558096177016070775451924846766060104141469445500188801423263849036394966239482460718155878245568626755922198044136919626152728676787025786283757644919704447303078346371940848298127261163938988617462443293415236730721907812879677878639273840193325973007175516349406530778712782358520915500228836539033544195117971402297232301590287602451458084006984328305346323235109954292066625950803048489025317115495064713741745579162723226227924664232034709720133132275478026407728691074481456551405851614041735881472035972372042480460540212356321440929264077295376848381014544699717586398567826402485563040932811751318891828185393827732847662822340142778936163346800393853398798800462078474410462923865309662274693307000741979509397894265781248022017525646784150823634507881884526324407002374761839475368312599445163750973475416859754652038506784981403593249298890036449469099794116576240496396667036868446915747996237410136388719750528358754512049959053013821979061101124479629046889870652647731499418334456956091586750121300460503988511615693562722486573130299878018684772665958565139896184727843244922736297596756208386716877005051432740068702453105580582870618692484904442645326885837972924442625072216682957279147617866716411879971476405142312715274530105963651088725425037545436594111857828986745343411275733548481724909614399289940086311819878038125140402962503401785224692616277816989460815492494300432261199993440800694296030975838463203257828278596554825722158228143663753837512642727900149833549039313138200100282579270521283508643735592521317003521175715542669482619161347836112439245033548471281534514213964256864115201932015542852844398358680041325153494363718183722408993796921871463190776871969717005685753923740403830291236085677901029377947718789100563629525117819723269273066039162156219859277154672773977059230643532390709574617138689615874848843702220157660615515957841881664252622295483564591383370202441364718080904795108378555885389881641211721352859010604366466817839248382388665289383861914135482338615135427267339297365274225280374077838532494700199878356873921458069786326103654665509702716474511617565234474753952625809903989755156765518227853093395648070138952763441522254393686258809821739298996987334081103055522518741665199813453750578611201961665644208448060793534358808738409417928562053496520726922058156425978760028230694821939870501808525867848663551406101031163476636712968792671380107774669047264631280474812831489348636501193886671409485922233056742825835950403196705746738923089051080359680710688767654006288696856487563005243789671345166068904900712079716469496154855544032746597073826932654071359324592592664053631047230342055913158729268547027910711300332605367196675842189780837402092777583395918980386024622731514795163573566237631737668047089135157472160846625927919501703551329610989972958934567962569122096004850608932825620052580183044118155000578304171434229085408710996162924832290210516065648811437676065914779009170006118899901429006070775670137924960119744172483038082105288818416084290318621594642056506094681930544596485182986570217381218027332168804127059659713462019819565420971299695237720386103984648308455556179392510522452020240406690813389216784021747464734411105072682150472914881975791580831965282504237219080302048813449129385749284349829940024776327231569599975614221328309840639173689921706866746474539804931771237605742473631906452968629381710083853322383521599732820871760336516231362895671217109547440140379680817626162630715998003753751354035577640777614538202156934619466883495991598685697930591043333053945298584443238302226736850685811014272373960993257695509495412999761535489536485198534826472459063408275088815992379614978939610180755235915460073421088587232083399108963669040171739081328109263394302131096969688272664635964887298675332361834140707741847011127382080050566034206402329824128410165278265601134170493902517135657276697671402793652325864894494378630780519552135246127190714638313679762892715110050066006451602302470322700090883544991440562730723081978181350310018757785268869766137542861249510416983828176091351246216439196244090902264682436109377548905709322672657835776135592988349490938502260808185112760464635967848652880569486588257019910323357704322695023817385790394066243212558552549454954894547266679097316386798830955213546408920765453556531916580643594188411641674357799394010270625360379683979800680616755438138744742114319871780651992384146922351269167470551498163259948926434624225550191092751826256749794397469288351177803405489148907943752524872197046191042910338436703414206450967450265499472205524982707985244685098037411868776713847041654547165739799927341521649125457797421297857729040097868928050647952207052720476228731963378101880428880234331956819392971973906948480349494092234484929431530727377203412828206317328290455143012815877616421927989252648555385015128523491833920275878112811976533619117902937189064836251398916645812157095359326112568108570142640209611862084661158539221725546415500600934532093974481800825892677951060536450244548733434290502184660854388221081174396634532826767199435149366493255534335017966000481571439702242851078109338185915488791377171636042143545390096050959746468231894247937800920193931492375277571263020845881750551686327725523780108454027949201246527561601960911280761393576915405248265101520476761555155742633541591796985749979742486333386555412017180843402568731509029521560042201190912279690549047833907353114951122920304391518430284681291775475080962411520572446992088331960235117964796964866136274718686283488441508798267135362253578533865684963732954042694113055947186757871437829293013199694783208870250258868762405441152696141506516073947387830926032381204728520588372728849032905652666926756576810110329277155639389724930105571630408103730316297988092345846747366663914190105356907339303121811327185269382847040644644899236213124726050748562376941867547161537275264000330714678453490945665958852183058991623322713086631075584845295809186435033372521516116856267054647592908507971614333814961574639903012458590758090691575290590684119067726856348535463495649451594797359596710230388637584159016303085914955177899345110099816257786119843566223644911493949642895621799271272268858762495367634760457393074457091045732468534911168548550553528484860136258798942562486231867544526415738388241944618753537965919803063169109494589383265569106417977723531032056819920641289682946898337732927422309438630009614168664152459056470876808826521755135119764315507498062357923984113728941446251750716089335904872368448056182705212139738005913451291040486644546455226293547631454649637154077002209208955828308275401139754576200779737488133478083546732055905300293757977139130477554383971863182008040125701499175314644491379683523610478517801938028261296660235572940827067273119188952183188424077340120803214435398336364276927103509803078862146607207692064592715966195904921038731143944300976383444347244931112707288711565487615316516252654184612546615844892009775286943777959097267421049989012681497253151138623402437691456091445113443107914176746333992921964318797216843050459521068251987128540809663721974211014620601315872459485548460971410154826593447601289712531383434186003643743413142457013075259032959820037394736433178654414470382334201472627149134477790733647046855311197917447528013780495885371049906865729326171554244948101862488058932504913265602687183102237288191749929145854103507324457648439095915674957993683459582207392649892713081085895180094689238789901752132302893777724798658648121143127439820516710694960660864614068029663068210781706848298037766694163211797055451821804362129896790146496539245477584300900858648493716854635818853395156740137125289013375650858921352353833135961494194023925191824915905578345003647788298903519046030634088207309778778749373746713759969825957917559780998205839340834033680075510787256053663721615518841820095771040075039691753852919480789385416517461847647621588089643448529043235853429970808933073153372553282692510463032731949712308847131951964915444460322242533584837050420801087805007476153892393287240719606705882091505052193730800472302517800072784964120055392526023778389202851412441241548293770907120302701923536705698816982258010431305377450387959122273532767534892662489141285795974653548880132692115949082348832108592902368780392698696374230077606866038042424984099087602832015162105666327437225740321885108008691451997286566222104965053003192808136349532063819636029403838307738134695884898975912034235890628526269291243416234686691667837707074987911441656732599305426610013156096965656065365814235724582909076683096161171328772772391865531960301095558380721258144963241889282572042934495775696777659626811119338281026252909710312329253913033037470120648611390310901853372540697849462415622446788100633142972928713357513223807870076237863953273449522859541055727556258729508834530281537826197226455834914996093495742645469974760262281579380593094095358712072709906574430518786746817318131994960156303521723694472209523159899540174754550396247920699204652854673646557622029019242352735035854416434118133706324240313300215326857842619725782878416879152870294875767108282253879139941232369086750311868800490116096950566514239482560228742627298633367850162366748446924313421449598103646425637153562956580264031667276246276771015167329992691724180769417242564665264772103579477911253743308384837261351986081412138063726799437257761295762976060004651796470834356195579776565908128950041779859817560442291537247073830171721454025709309693909963390224224981687947162852511919162878513170323638204287574037856111273524919458583321687598873925347839384641906061238531486381895708035147478565163719931058222231558345104685707334226765824011747322427457885815939821493602196704733861239199296172222048403770420963179997053274849453674893906619912826643518135526466862054002010195410387949021452799008980258333057997869542134032419118099216081873814725580421840027985823443006134046553910731704459081312355509091272396619815707180663987047484649542412150915650528120750886488693312509979368769854160155420289608828084217303883565390701600515117798776420689385244228220056104010303880531879624024877079469338284879722429902355189339610924115395167564594253463724075279747649731535547963644656685134442659892781722674856728793737942935890773013896730540980945480598975614014343300628692227086329489576155269440199269735165978555371135303143071583882134022273991189859090530415800323785148016145876675397675957392332296481515026854309656040622931790810723664546691151118641641607247031898570976440629915380431515648903924930050997635489306010243260347129516932384518167497594131888447758376043413450052096312484242576361532642374687668099219233392167996709108927413498935831128891444208945771950784695599823698343863809629365226507293480391984794969317232881821241139559103500904370927010936618711936679994168249140620467697015101578159402424584565258132466503471232317362678163420004114667784846200444040804443331635034727785152540917095800772885866887880151991756409388461485801977211738886073143820477909817281240588819185452330928170518317916725229188008754984713970349191935151414281030366309258437058388272967879683871640811556793648409837938005657855244896223030743296750064654924244065032694416823490121758397754844768861363984949460401935240898374112962280458834782661463711479183375711512968421062852444783301316843231341421128553061307525675693069488837821333677468966853422375764677435098342376186835749100142062035129996723034727560314717110434759535512280229412735379273306888007281530640518018287659865281360329658477281297003699767317718239962746413484091349835925531522635881957398055819396687584306486502626027110678456266329010923408464866838792401144782054724359086172215144988499076801258028467631135771133529034780997987425964318942090824717859213307250161758006777036000803236959070649888098985523135096746699661151941743952242191484695163890737309913414457715989594456936225592827693697645247566204332897932187135691385912955117761053196977927702040419439481842863706514325979209633845609453142465048455361969814572084836508339089005979647749144582865869023355074693302335744109383764814931742209936466846978233099330513936461198746468247294425115937726302357034788220393666850927435675549413970099514926777231879851014527094649243289502603379574556103600530698838327253010622866210176193384052748411840991500342651465586986645198414256847051756253217744617614268378301228463302843947399667490156726005752541679554515759179164296347692474352424070713735003342128844534460089984630983773269924375485973463794487550995035631386130073813606559914410783347800941644102608080745384683611191963673507748114541916021936798326836566423977093525663392015550588312211633969630439837504214538302261648518642263708277360293027878661475930960557991619535647316010074360083262900727000996560873866519178408541430290011601775745665201439057103983189987232248774734043455793030439707846297651777252173051886587083993638803886837621209286501351177585407070127900720762916472607805605611988079005037164117845903274320884261663908836702111952704470193007646182881054899733961989602388379884282690865625454570540862579954277810618506631489760928312616007797506793108425634861903264235437625532272637260422843379958281200618122541029251213287473645974177383352708438226084230990332642238281834803463492791683984070471375996925925373015246383356183817462354028038890496384578182231017985453803711914133288514711375139025081922118122475337214634659297277077864213022133255877924242130459829290795310245001847086464494511842569549582068014413431410380653812630037935402579432016169369939175463652480697940330409299584504593447266795462391189586639581116841315204239245536207329799630393046078664888885294895474997003980085686930712558881402525979933287019878341512825962954918102244714453605141128096564053529209184804228134578530085342822724123029822570623723093505181362693228818853669310477123105397980066082749895479541405753135068096209420879378547201701852761484375096069378947553265901201647010172387725063575071956642724318547022498524763401836107089204999851973046526831110706218230782061000563577782455130813645861558777711192582683400160890996031315681569939046706248040486810241907131090836810067226295521333626088512343927572595018116603786244027463212080239883998679732366675586355237304070692854836773460645950081665193888211984920142801033115523733649426333101261885164410177711647118450946978398960690616543192132776939030976664943263499840502659681758793587839075660021451686646140370278104352324337600326696460904686482731430856076692024840600595108938274557126549061504726959973442746645175804221165003599926164522685737823310519080442770253659042102363814525725146102052833531826548577763087903955084759731913618845731330504888786681484004645380642807293977687730805146358880636812633213124954054241594378156983476406953597266561578924223645920642592767755165223906316999579613786817221482395598492832609245474485592839885736562654246552008117246026162857037064061628867612221633700474726031152467035872036378103236254622784936924565351666263025348112128119536077909330494661283375950221408137301227809644799985834218466697045657713527179028974053635951713073852798023299900351826537409020825868684366387051392565894632791578696784605908956092573275326429045599964483138726650073179081339445450728993136613517617558091608984404819797046550176410290255237614929524905305384074044144120798366002404720092115278178536640787671966003042114171833816944272746199168796708846085148184067931979482642157389058106732238482064405603223271203093159018229828253753519815664920047206009048854310181772818101838002950661758336500272533338686405453606798011840967466640634993615046382361985406237601466710408154564848638366719055190000757317190185550024752101518337961551827855430962424006652480842657989612734885728302467525263784003946969565304091041787643474130187629861327625882958922182191693850156331419409539008969883912042414182706917079494918770033057640193954817143088645145034311629929206104062692980060309028255593466156709107237403489986890973710888297416060187239022827265655645843395027208538020738443603348489169473343443060795024468737789272603698666875644190040485627110244410288483927053171820428440454239798530103794613701726088710994408997542459341458283356920263410831469344071962459252581710355666081152399746922530973362785047181508323235324158645883945203808898583776252818074327676152273361107866369933682641189928581799925463036295984127799881553708191034765551264564804056264140740261463868878375028771197289065976830675232580552606890031650681636571983062532489615997275622933623675035581110154061852774859419190268223346315180071775653561699550678389836088814015438605188915881909621810043751205679033381981589947878229560362123109273820485277943201478561624836402368578371167049182634727257632524722270084172820298269160761986548888761794790284601074664824142921223617703157649178891812947391859881919743936306164177222291528427887267836119191310906965309860701552422289086578221714764100279020979150790220666175436674456200459072457970020294346851417992099850559129460843198868269073682524834184290416074555605684014530725774891279270853143915804102499837209954309412320150687983255976947670096588395837513482499528381029881057053446495489728372620425815241558928118980920157866428305386849481503182875648118781573428098879203247378351824221029796805649516428594207833740692710463833107557711920607208537440365454187166082476579312081096860346021030001443651365930647351888077653776306051653379682769872739177420720983957026894781559490432646527849695268729548311270994562626560488697754942978140706469754684918005720672339922598576280747296068993622505017795417657122994535539059686951902399049141885033500359478917991497928413034548910861082589320229638954291660965958493992167086101279108558193752464239398870642698869778617682894615929640801594003171596681541815615219907209488077490973835751388910936250984440211630312175154066651554475510512232447652556033732291684552303758606285641948906818263653700806013848175386548988024843517287480879033437231645273611818330153534342154251891656729019988408760810783866512224584372659820313036740597397342892892442394823157410194031526985534333994659597203258698859465960409273896326296240494155861580911079420260636463741862082683407611467953470413720943044388123535797697406854292602758482192930261931482233987824146959847461078132325615051500105056573296863177275260046482155266868349495598202481950728834312031463713870615160989311152519333355296268865351884825039901958858046087832247160119561157804182367599342168148554625112726472432514461711699432356774732618210305689613848200575968557428041003108774078601276214119553475619372342880613995486191958143324472972924148275197385772347140905438221815523127889128435070363077808822477597110261851003808498446405860278886477481904188964756546542556680677402914416003792188624053399979652683497262097841251889393242897729363089684482233127769944628095490015773408357900925608074562844376717342028776997784332073776642514530737917522631206280699348452502912507065924250050143290148827539658235834669436216903391208791261086565473166083424826887700813291619240569720326453756564897989424179444941164540903077483939404829517419552264827461592951918261127293676215760425734228830629456350748233360878616710387899547769463127546021922922054681782495024902579198364027432644928246406569467535791474247403733796228456912886378083106244157315221726110886138070820680081495182023837019965060887234191674981547708503768819188964682137593839846380540231686242549072240381842195595040613141715956550098916447894872669553871740136480743044419454985117837525876787362190551321454247540635489844462178411174507283988434626043189826424619302290727761572596554990806220453056301392139710767959228951425097242697070632850649580494169643066345198367938132611803734473648752409009938597495001991219972875105768473197436155741329264486699041537810837934167881724115431032086935092573217296991772478629311310534733926683645465425451948162796760235269353165609716941899231597604748839979745751387156759449865762120421294347618498385447453776603060130081860254249680157003381447360331479097280010338261063301913762600917082752424522211944848771819823764123944532353416037572973818477493707233061983797823755670499500774607095881050356033083034909834326917056593912591401126655729348312749420582634487563838739732443222139328993782297637979126629598605332086014863497111901011834569860358902993314156268971178793061212746765920964212285872874005290868251980570559903482717775503513365515527217062596596571748171685066609654120451981848426464010758089347506178388525412133053168045759622762152268257765576365884759870411959614840314373558962662003149301117913909486437199537492138502152337136489882027874682970682991427190219515475505907957826672841567130630509318459915995526293078127714266670625521907094045577463084775246926934448178520073513967663386743379947232860117327318978320982906897327690083550857731958857471172789765141423916195740606206966006925229505271860346028263091083632512216723355734618596762845880811627905044712444602873112007782831322937090767202623564090509659897833672567110380326162054534525840298849292311605429591206803555589468192485007503560411118099927780039122287387328404090273077887943451626182286397454034602527431519822813559663456015933967177524959124415265794049524890390499168360879889532212808665193092895581004859737116929723803037679147643037601294307443935813547274569682402605210448775449276395765953860946199358276824317358794860940864151194196608826561339428696061277624924065015577130139308594566843614898959226485230261604273172910460037715263394486877784947574420616018775200155936097286834995725398581626925254829458546613561915718524340173590066207191560823698591063036929425700158774180966629630693328005195072363692050528549575091931340002617512346768065884790966846455930619583471776846465687261557149836015256811570344349000725496458628356108360610114293277069367985411031192678035497081865722435493926092146177330520347246995661605516391704545451342055884040042999124326704637856049780041778119190026627972497524352288214525567865847050991889331557038484997853759398118306593682136618018078465717410818421156969355235101218289277199289751641631736221752274108295792365082826764993750649715478508786951035372950814429725129830864416549556375601796116290458719606222978606362694055228960739179574333009161333358312665219901500614121262492241483989871853008170374664602372739866200071923717117134693402518610405561918289554878322274125125252825511790445769190023324418864228839996323300885775999859685660942520692154556221750337777451527877135316200299387633660611125586216348940909045504902339223845196561296620778573983490996501021571473292383215557392034789496800836004238637735161804822870369267538901409369109952128870552867139243084198975154190195903719274295532528300170610470357726541368835709143084561267523212404175854829325909752788167745798091916580469337843793015681497014374371283199925708354823483995744014413686652638526737640124580735170043769458470231048437139239344322239771150987363911451950833164493238302125804369492610161529430259470884564550599675283628424553600388193221805044320695038487014502965284878776536857427065661078761545909098294403734943617023456157479433022358886845543718073874867636320757746328177598843079855370257417991358113440475907625006841190457844078241481024982466187519175813070476345517180574178814409387324090064375586864585784358570486813920167493447330174910125574854107280179079919246045204199561083650210466910695827241793918985565969208240619565881746988587619906788502595855690777406968920456972451973198021523815274438193774870733920008963430888208077205910914471158550060745351584339314020855439242409924937967414285473452835124679156253461465752943928560261091003749775003799308942710822579150243457093450007206516542635956634580028394340179073174811497189012898495961284288961992938100022055479907031415848863220235650747379808455419715489872039934089228135881623099934092202342780715539785864842601300322947164864476291709780225233667245057063086566182655597820207514279260218540980536777640854919097369265545000377190571842172987339920809896524093126867999071070926658080388302030487253410580431318736822643841704974915488487271810588744332104999395407972739405867757903358793837436793761986690932501136236851717155872916203787690194734137323441341012039562951987468020654662905413172631404438940172599879143490934445354982526927529195163338172864298485215525738162552990454991156854296796718693732489760403727977914090980168519559138790225962703633746378565004199555468064465251579796248403172349825789443350635606496666517911148498725907469861265134880409110561942738961819285606515677297225775114769653078289859420121648603334776186832149738709844539820581164077297165829309504498493025953069388424076588203809939366413671699049378867065638319318484154898983331264689375155130956179597495699676448228369432707310017609490183890630932641838144256997352479395676295318759993684709538067895693808301329275534530006431567385215999513357775898140580243737375276972683110387982186045381599289889926209700489276804923150840303903701684704287506140514331580936634907961870216637036616261261637727121824004116829229955099013058442007346204145505812256302429123044163080983480025843261596864567992416685400751601506730135739286731687105400352241312282569027296949375353240020925957185108512204659156569674033991214453190080772544553559998662424241944589928427639493626528578870595164336652765405363640602121554060530642112228067571016599300799665066127077942904172225063622004139890480430408268910872449451872796439463538781724576933849589687513908112732493805353853535475281669623144878601463105240689400572946153392458151932519654471429887773142102814577218948636689107283320853702330843184086296988537997518179335890540101309254849224680693726938260159365218999388302356181178509325809462751769807436593661616750933230621073421911207453905951029069381361263316574323073918421468454829557114098550374674108661402817531559791401842740306736481201899585849398134077611215940707621269098634048441813089280171339097477755472675140376536857945123353992514049076604297287898560042991823708530133655592474382867773846557970803893080758584767412532858097720458629933419172116232335053171504142435588668258075967736388189094257862215680750057579674021851252381442704871775375564617764877930534058705034147411867639484078974906527986048796994503299936613304147792904273399753405075997124592987070422138822871877424762152274522816718421864184606095384912563117820396983314061133204431919290336605093661348582460509409863715854760678644463453129802479486674050578124726868809992645005034753413979384114366067127305162480034331277336798356151299171515465394463981860365128031121451696089666519237942440296503346039222610720971552850362344506775009130829418862244713210426253602474401110143308336972057998913723651029497197228758298248588253724737871087340267573434515105127522600773729801580992664365216894076561182127142784009638527116116059352268887747417956652339004185122163242644484073567471626608494758837854518346457888766059628290155395210050634508254289155664545088763328073805317074870551365770453538967283466837916655644799685171278809979554188365447573248259322790284966577190427886374292790293380465360540323924091287236650495182223261642283753746181116351847601065790139806278210886912219175943522822500085294058643190761542767344098141696768194769143004086347237750483739787111229916682385754548986778207796686852434757651041184910427116897915737751353004093659225080267711865636416636063089215707381663641125647034759822684283180733164101542512596856257717913313067880615252801506063493006879885324368963281477672017306534074903686972608609591828839318592461685252447278370343088848080122023612627252515863307538049764374836500775019255592316711296410462841795080936891858647431717061763410347653422265230970178811699676244404241843799349388479328893587549700701351351387228844685726794979629552614316004048844645867516462626270231710434555916498218791308802839486951610098968343113480575387049357571542037311775070269603311728162320180815663930179715007387433677700467367534221618645739844098911288555886577920267456057733508612542623731132351638791187818343397941453452582559441851201638163676992051268268383091050341198622611069242487619469132006920165699062966441675392130793678005212388605343863923199394891334341136687924850730271502003607473408615727579823544446298085831809175204985803905949717410359850471593753661368074498979896803300441932376736587237532873332984895836880782876217611674477814005497416997273464758875140079580046183567032385477041929996688852185031871920937304051575705832747482309687302623116132457837114370541701305000219117832780539835962517373403949803954725355353296614056256606159886445318447775245959765272876424441608345374566711407074801742704063965094568243362749895024134398213932064107738334731329800148480011892050038438000917554972690382609184553952958571556376767418796449211961971670740183957048640448420596027131391320811774005742789658922607445083001339580097455415718711405182476658837691803618479773493008244780716259102159027063333667232416044237489563415086647893973988787862393176982271913020961143281603651815097597286154223182420058144265370604330924534066244506692419613334037477132121531571296384996500087933521221975362964967258930703435592918188207589432914136373744244745611535464885372905990971441474527301949608750646217547273456771006941172205778050343406582266335708620493645538508478322844258082417169909225844106440217727031110164523873486195689148829690474988919609300311293620350224114990344355967270703740324987181625524508755450815170039627432843408872511572632945469363232814551007433627048457160913669040885199493342233124051706716762164095384928651377491955965401184257886315495547932937712794578710225909288899618679128126843918415962598653511434989536768986884179020527643965779749428246449931934260484662910534540791567225375315157293918423844668485466343978837967369015741117258573571766523684587865108602726828370364281429422073090369763975070849009920140262658279311083024651464231791277255739204063848490244458621988779366196623923372573514552171841142179590646567302619373377885358308196377977066596572503161359767695271829249358173891829751454298097583369788860923633302775619940122142447133613365380944873671116676494377646479796988311765453067177127530308361196654773198216572756938751444005724094152498527534536427173937317880170137113085981501941406068164373566599877702270912315065262767514356302992955339416154788240476233557475224810740157342228365092136846388371176608781725349052359787768404449786324414661256822960634974087294945321983907607631127862217431799431779075857086326659583984763643098161626415851071439930707246558173620043286859534294412692100160344763968653595277302006978951381208131871000169942042241885343732451699812376201660545864931014063420750838107668289017383703632588982724807029064914980555838826179045924273567337742719532938124993670983073924456674941627169107609177165956465246730943814024673326222897247478680696845458005018068833443445814099330801212311215622558048024729565837865778652479504740389434417511222370869810642507143038880972723112601058079812334634320486551262793258474549483116235152553993816925554174244584560369442176122396304124265676391463925103943971927775284979580720511108290958725110660799141267906027000997600146027027566635265514133894436292074294631033886117153242623491627131463943477834504534574439878687576292858033872054419452417972908947302928603909990644341634332653784644955321861179803847976970821032747852235047079128984795023587937403490840229043679921776020601858265016897088929900755440837269599390664364898729560183912594585720757656966605147738017255581453771421889329097148627185971938294239058640762569783396189277057064961251242682004872511117788909985937685726976007275834641906126002556853165805404168370318397893766190662043688719948211099702936604532865560589286081356084775402859188759937437661032033343863798396432494080775212647261333879308377591224618058867926483167709326041070798816248521917156971497004382882217217144430294147478486510989336138251824838501886046521306845717428753130123021492518570733330215517052823142452874127743614476131513860053477129445142419899298253565219546319500529764223152663075108039271952124337019753226010907409210966863244233956497335426245939449594254838893676337541055825352525873672694902661066774372972235534000048064919207023656119328351042870804651439346352702429275624621794067174630162073459777704596513858363213744229694260266813294865426905093429993262313106395899632306419249283395937978310617861840702888629530977645632625205935697782544108377679873849810774075996952255253660352784758944967906905169031749539622510974876961951645833731147629587807617373246935970288068346010034499064661938890182591880559629722015030276510646938030494090982111468744998115976051644756938836955687345570566290629995309339868068195873984141375748629758216367599627485349408711777352046438303102198975677403237548135338755519520537240242802039330991768080893203873685574720854562053380541443510236531063190571277115869855437602800180652161665166449693318333626603647928606509428604985889027188244633290789503747441310903936954789989461367494708918808073581731002261954273789465448783267453886803338033222209721353772979388850191310683555914445724465427052537736641549123191983427900286976573777653658082247489451844587736310509936791141356654736791753501683737044198813716598495331116409086519715567458011652339026197948243939741790764049350611365142704168404109691170419356086441984678003746077238060495797948468392586164812612787674380331133498136502441245415243251225345866966759215861371938480974869432335199541769740334460061034439862829472621522190317151880905320950041269386285829581083503695423507945420417762526481548983547747011805477978627183527546222877405774412021731995340301938240611395342947812514529119961024943961667610137680807167069050286641367386154954376778730120562669091815648812539015476935066822687134479965347009005112002579463435908258097079919804073831377063003156198081191765684486691743282632901031351309164982951949507386780993606745043534917234986931825430210434010916416904390127656913211223786377038974774236758266025356934010039140608234169137351894470533493313883464258658122970057871012112631819073069092765780758894013641611106473968693637939698606656777636636174007494472801767412331581939983011900756372324751515781289774631254829290665043026978057023126301007433684308705784813595843927910198464248071982989936034680900008401856023637260316662701828952232364914700631244444285775336611675291042488902525630676928180186047118030355765909362104810049866309060020713483963406012776911965241444657845092678654930265995646078420915148965183939497552865819845802140488807103502491650550887583136277584345674471473819316487145625628282849456441599832576273283459715516516282694252437675557629247333657069601896388715002280269543401855250118955095537184459856243789153399350694851261751470272645925135115762689024294186834705446612703743376273179740359509746332961878456046384907929644270608502119577336824494757307091266377803876098693036541916700504802756879138793648897605318276440696134796218604144564688378022893837489134608775415694403377953826371211864998146796875832921335313208093657582727814943417954960271917596631417166762531539521820743583965964503416500917733668161558823348555913200649237604326199448822069609304152057987341999715681751182028512598198091585595661429946362891939867364912720777774596990121908901567784312585078919144322802006534637669681897174140245882339484940008442797114410247646062071109731057833927512106990884524902237551972812848716566953509208419911950843360001406267450890725819035845366815843649043316931762791373473693185404093255990598888435195328558280158547898744403344837340581941266289082102768014303735242701118455203360384483816586216236407090924144518582659146519672921085808476581353646121684203281575025110101180416247604712073757128314071550950272658029540907208597538229652038685663529901995119985135637402278781850769715659732809806586350719609733793249743298973322183935950091066123650271445967954034923954382493244146102438388991804488136207515545798168841409070079214890643498776299031811212729217215252088759192174014373647393308751664089919780132067406882711426379221530345640560294441392852341538132444774943791883433575597918484116326024934903856665265400363034257057585475605459634164881584179150039251216963753601236659906975624819915317195442449141311053681768648723357407325198600863880079372510293879920447715458522875142354053214145267429688863299391860626603311148198538351867753164548444460465823639959020495815975658015504300552695508698768487948854395723963266976444843893922526224335549488558462940624248325999963547931882022704167961601078889879143338721658273366282615609044987996662842600887646965248983196137417748216653395286150232374484359811721561846583447595086131790005772786458358737929726675020019294574532401747438441819357089262360094623408341096458072217822094906850938168859433016058773000421683340544407962181225476885843504566258840775799846608981295283891533013232950367655252681769775351747588652202818437113728037165789129721070371034640824836334732325691650990556954893992408827891833492217716249119597154659977013671826860429450587580601277083185099286917081360904297259607755542800917247968070870105960771797023755592700467213707877757468506645709589784315320552864269657269266144962424446265570362082290004133639500417360489430820141093583629993159637549844528575231877955646060295822836926161395458226498599616069264273776532065234811833907453074674897238632256139440355236932509335204829153421951457918448744903920424847642014648822295587053159589215043702434669854623257052640600769262620031293344907092404554609399162115564748797177709229280304308147870415867822354179015443241752617999065299507262561984231942037951290348610133790054006868257221298428522769081104491855916707317447647018086585836229036409966301062740927391119773975573892126484086734403528728789482428700020676058763264098946244580699744807390571068428226995288011513492963570619197991302337596728206504945464654487237670335033380397959957112324025734232089231253581101919115905546559305780306385283316352920378069644468131531282654708336251775907449437050497228446905220617415476291979019419373043970639939662949465305237312968172510385046833386583047932103793785342748103732433479781633876465997874995682031098781772743351891237883045483016363906842036823074171593716852367833537333757829189544575308517099081219271610129702203901873682925284541916053027981522200707832419807873563606260453688796506592894337253694175319366118909611349985867246145863641452069607226896441914610988003591648312241407520639214050022145205343505437980171464363777647375848185631067174164914166992193917114533356857872286852660524420244851349218401161226186979566368387724030152869747116780076543463762072478529008484019284213193990648360402609134175742939182758702799902417351504393622704065966193055287078707187758654676285074214730854827693083070985848599028762677995563880251192495657955773884222500536891420962610036944044750064882504777537272400512073751775471610725081670101670168246084926661195690238852024557082690318910295415711718446152845502454484183332648488273547894538155671609475222018683887283265002082612868087509962124783522646354877937772423493448448141803951555263905344956592278253191987536301886516257658602308858946303160784737310328674516275423460860724626902634488063360605993795008891828644284518603991686368124963668288078034460397146151567832374618020720233180827456534208817821864482261833514664205085115357970188136940546070316288913093145686976171582235369401053169058216356820743109086624203485837832101653453082925654295400689775723627866546179081197926475340313843166864122405581544890699289858891700401569078474976353437273289348897044141427623526457192431989808617029646145557076932768744681090116465076254922052679233942701371630486518690435285243389778636797483310100111715015900676357037876782007423222956611843709488228937957351089231725618313287043279938775159121480769288639281405608747385462700524919279993420926227929220370555213793227948159463822905768446581891578213837244746676854964726807800068417287505851740404804333534627436018828924360847629182261470440631462554486801711280808394796233815732446803135442340893142304850265648788482905065730311514915306440046940346568729993092917346851144137537372567005599829347692914156942530548722324296763233281771575521507174793267471115794199137184528922035117938022213744112548421812863026168251269794061645530104916882323695577254031775933912062527568808707638082128957598666790797321698014875133247209500591054745217031199010180546349686825998419636978229523821147451574593776751573568431226369469968917486678106267224840832833011543487106563170018656087139800336535678286178493210577665034355748607897277782244124855974074952572376896512134914300442993745384671415806724796249203714227260164872026714456364640661172529199830218281176426148249955989826794937890952872829369263438849702436454671424267730139069116551111144256156274545537615760999349461333687761694711479786737628884637930912129037031176644721473287275200789017081119060772420046444918082168419930395065988744131709975638037944307834646816184298758994597185431418190076123072373294476395239061790757867805514299443562429680270612000668207326898266881055442937984211736347057308839891309633985560551710104598672583642841299223768981939789927423370567411081907009258660463248107378810659863424593949057724303346111655210215729519820739572478366719128156828251589834132996668018758574207690036707095481501505653929643203854003554018587806724060860337444819120445285322720077717751887289213398621297043339541007262405821702216918063778778048661770545103631341734951835474560348449865270285530433246449685322934134196292473542744080714047974072698978971897978919771590149963608348308676445030025968561628272626322552177388129185429909939490976177678873739732656799415550515834312619806276522802905993684001714872028491949875944005116065011276534616898301678453977386063477404126645214080801258600809125495660763039383310275334723067186545800252751272304195385184606249434347951935016544849385349710564193721503421035221409088821886255448288651519695160326592429107704444974695337311889241175951422478384543654597301438271127096367486337424534822432255300249732258084215973137055224866768046955834989118711029213081283455609419004835119571050425519392734349822415167844584722738076340963700189757872302073623839178520067467216896374088831057522220458659422103197727273138906308037089630339134805582171459448783643843561725042874176321824255515597317680667100589132287303952995459791425965113176822918348239817364966292231851387637144741076540859051115518081905922123896830408744602913862551368958707530893110849525484183811857279376847448218850472514600225798367160830754083339821083912633180916248539579726200792383008134654455407226860034280312312518137640533844845303694034733785951072863135257299866101401958540914563364486400081516185528522940135515023315016144571166987984617434590180470729347926769724576626757146493776048986568905393028090206286802192891801350687113279441212100787170566621518538336401630389668825461258330114631492420677761937613204397800038797106036618484116561530643789518857275330596731159756702857754832000025258599610991362078183949148373795762700894362140467006782855927547202919974398603254717587433349461710900640997390381874105805236648100963974882416115878424529939117220619822353442249106401357396215335817061322180516820666575625944645947184096977963546893353170816646673511175758954648800490620477200266319039968968273819198364977355593520506183366306994955380099868176009729091054039546225202837848525766673354902634468028306081983562646330835641953638198839637437572430324827941768490842129649676357203225433091725988443254556161747658871642148453630037841000412277897419147824785106419351902851907612132967555641621089217582163998773612979578172250276589819649222848317046011693723895526956183679883795417231632169024788718502094487393279979404853477866394142853605076059156512904593610920619329883350893645997396712733768497922982221000824143770300425690452572282107202827152550901882594798569218523775383458368027016462972894420234485573394054570375465953104859766995610239303740225910886713808989970474931495924641931801666092985101998013350190553281588889969268455485452701555055414778196126135619081021709910602293468153133952956905283793367470560755164738557357846590270063883840065143951715295541959694405211506471396746377191305348347725968892145432235073135405606183108757474437532023305582332079853606143455070553152552183232206367660075396040236882705992337619883075399667461578384212984432739460176463671889066376979529766524149251986604597865256407607459885725327734545942969618370340102499346782246279679270216278688311975860140941263409225920468169379559788767480019090086381140096760099126050300115585124751230501669088679851668058434275233710139873638125534366082663313723478930553805521947478022091155375458592758433937799035303018911829011473323307515039447244606164606784258124545799335461208362917946912389443194615274701560690492876296807332740374446411069054528371211487786776242964237519316064028079877203832216867484011533827314020972189958083980406408719730522823816771585819432084383791086401830325333459234188099976393487579397472292820286177615232667353440619533233453585759931146864322794039466496888443592279377391951854351582415109119764514492784846782568833440203386311226067006183721057879430566652367131149155410854907319075649984407786156163247527846652638410657362996424498182278671832016660747595893346977125457559086676828732522432582368749445324808584011539003324426539437741473676254962244400648591364459536343996705311046718766295685656409140258088509698398128946487814516585439737409020981381527385692583633302717469228106304011886083661973335871080375144330178765654992667770285968761098097591964539075780322391705790502464232649868472083456290509145976434040623898695713367996227048532044673696400046927171984201242886826028731669990506443104993695747904134741789051785023345789536809568234119546098347776107514348897860121392646788916507203897722404357724317995847879248298389841633877450754049732520447684365118029875585319177244125783613089957188805378724713543154804879650701806130793414404211862916665731027128937147274732061535520168303597576826315316750115630181209477025112911441682198586372887653704274708152479114830168502112302482952965760836225385996445308255778666234312116796054109735804361296582511219983693353728533713482715630840446977826488936691110169061519078664780424905619078394528741324819376714025909911724508666635071014188921072861266921282409493351960802570356453626608773688481165435064158143682708919455496647268256875534348772298993376524412594809040163570425780284840644894214723916944495924788831366188095014745128085076525434902623261826893459363937702006034161361142707770002665224641443147079915959938409685245406725139395868237422818369728659177476110774275442921509337718289037088532834171513969657678460973524971215210893698243939648834632408343251920605027389031906260955287009663755798387336538634160062078499245420613914565886487610880139427859254114746510867997263928061348419050236763525449681972061520959844316022441380656600287705062131696387756093147464023667131751859083013685565870524274828354319957556058237908914345101863604879731487788011447174096122078127373790672131352267006812015211425169536737894310944157700411577243216102719506758012182139462568746277637287997649055427966550565755554985985304003583350087813625872168839914828503366353920537838879978645948183086512076235793737189732542659332545025271041286554035235214895394193520460927492481286514500731246115601948770424945392638700615821138344515635286482809556865675593448615059502343016329693831494131681366626101017624436387604038809143007184751958974262290636260210696008943064266817767558085359476158008063619870002186719283595293679483753804680977761251443209225924333099126048738670895001585856293213110220825890413641657773545308815177308466683601861611674324983061878933619232017148480220286202503742154685211579117449778121096068852451347803551092148390399196809183981754610919763196051154590842451029661887255861363020361131869598292411291972997207388137008941429396909481573916965742773074551759278061656892647853142815988125182395191440855813984580019307587360083826263133299034432458624938110665701017622488629374712225607628740523636901856841338230177295486345535120020186540554465293154377057136428090789868208303163181710141735759932808616239823623528291190035492566911592617887787505426473121243018383320252622355568883355022243700691913848482404515967941807182066356975262408052039124622456003560755547624307437038244163290412797331909743408711240161073360747457602829719419623910212684905307580126892180239778025212282446179507856635060856756286115890884165312668416919363468879505525693587054364609193144000427122994906520152659817273400308279078042181889381364487067560728718008452705485051220515325522418607795068639966068720109755904113309740192825778335968510808964166998247302738712646381874207696519468987350747168299697369617228318343327951980267333407966979044210030458338325517042311589752178100309850133423559997846104615616225892233671613773419780762076946819350124938854206127288862237634022451392713364291210112691514851269412610354214687622080396090188581720104600092820022320354792481615346495717150975653694967417433354654956498595208887809734461197880946986485696302674860387982396579765839231618365960809307859617548911812420617931781002253224524191267057170007884165994924049403522063944394814403132438307039229518451349864700484720039901766462078828746801371156879195157093102240475422813514578386001226855414493085345457990137194761654436049380700644054935736634555185031377760684299541084518736922504439562706052668211428261620660283532028136812811256265274049239250059543963206995519801680713039571613331691533549785138603580642494048565449338056885652852026341906255684152276977810846109563311140015234877077309545312497208190002148849160936011411968531305049184987751085816684098999602130780582811801713080308515590040822156240182826695794969678063747145454974327565287524355701942791652488478414394090196785830191790064082178882890296204591315616539250963746181736897166333269885238031778237015875118994260427102979940685486791536513190140080886200565216246483270914277206209703955257908848266908884066561526923138958519291705261318358035204225230375311299584263883736773308466783069604432132359696342266999521482120969866231273792596031198792675646097861348552746675745813630815254127603306723439019118932873459115014287319812496137748969300301633827748276244552716989188890319118680429323039675919819049604306702717322438845823178403061749866724464239703758124852510193273020925580175816708089793248852784551621087734755582188697154483911768446785693761707298235007720092935519108155193306510915633049792097700612189295178614397686680482156768421894485168895159895471667725252316494992351377378551018217940189039839035111465325039463051608205029003013283378244207472188488328645061907922140113112195796209734200805525263807815760072912389951199080898320339663791242577820697364781086744574177500477971296760952050013100337525988471503268906564578024349079922301129060342182915052117058678532126507697530212916680514896546558244638631476541911172912057512566494594251392442912146419756973064700331064650500045480071843308365944716778415146817678537127164897573036184387055401813989878279137504421538377244060011279388088234180887135252069314988539420802649240188995704179094810631788309347257011525705932742937592208889830845227419194350012688988703535599283674667007069654762093984641609532117783759048101258454127294078342132663200294733997279929179703280493622633869368252479906804848289959129366738280300629490365083816212354811949822736279102712645455981171303414698811410081703053197705577558197556285325252694764527356668408726613198430776349251109004962064472090707523573275548979964242623315926618808315305113950268152730448499047794385836339875870317087927179628877974759543748887167688026622589150404748414505865418941825119249698070985578140993645708954907644893383817476756736806578128410017051824540462943435387193409643800906136645785241713190308831171163959573311848579431234003657031568570376931603515376950684773695687830997924642253337904683898678383326914643709526389942113607216885527826437818398156926808304420403765315317606170235610985377723042328246971787875054694388684585920094569083999900136700944562025511953570441602818156999055918312692459439937589680726046397730072760350134407355325679544618637786135483550379334599062653286644886307087192415629502132271805957806076927191870191903388585207808925323295842495819253346461432149347685696812162008134192447256871426021424755725963403490970786947565249664442060592549088248018525140085169865015514817269200013823161462457999216663819398849103444023281830006475784337827938400949670558019585473472319749766403773632871495256580181499464167882083234206872562393699721044898660563426330697427436088663186358385940248859267286368324679063387230469436230888550004659531690971095991006100592765829540004233713379809082529891396344997552774329810727259114561909242927588435171531094691128824968690383872723266504124900000606718914854954426296655665799030967310972836542142796040690035523656177028322857778746751325983198304590219223031038750158773420377068906464149595470626728559852735437253082283555718242537129309607222729942099603100376029216276424564245319791238794193288600091374805376853330888471532425823790585348234041315272769759359547767245549810140351927893776562442693901066024689071439913271862195862793146224862246388280843803020170719878291474755897613091411044038158944778251261666302178294025850416929107686198363899241057894661742528144734461974429448554688069366874944979438634872328810063681456074540806836193341381218366839131927051712755555128558655361496813455737269742582668196920911794979101891960725362802557501726943440962015921203373501675472678511150443120153857767414936486786404799063750023273671012561472673433724189476653003307612896829561790319924487079541395816429400304279717534467422698356487621893481025357577648224379155135297736373132361099897166435378002311431607521730315927104483661370291404164228251692837575475049870438540472275086384638843605517244599666985932833912119127978422417893720209557152999873381642341728882488520363646135915890328611841067811062832779040655093367516054458727442941942383338489650296856672855127373705461838220191012325015750745359052680609984169291049587471940949817200570064331689575840958119944837384129749037052947244998776694204089562569703638849120059879627585309614210894208570604265702258322778978630188262997889551290299947433647140881745113063707571003785799066928246196063637565310454628280324091852801357116929323981935060566455911626323368995952559264336052838191432722061694903831857835909044714600714419522724876233567576963076762982533918967359314287273116663976096987168873296303535596500956981753020824466076087154735166223324725154137330753654515156441937446763386445406552225163343217353539215714581892338567342535815958188193862754217073749357747178666974990476014218182955966334396373275137370289085497423310962316703383605845807420748742519000956370398562605363280990718602929745258609012100377099061598482254485547487922321601336142226867889604185666147741976387135802803765864251558508144302801361343075957420225911319686454939855347101869757380731387080293588603336187827232009668936450506272224390003698783215942000237104697741289724873392331671319329551131405700486547538247702957919833261940073072768367440136987872058083881370655011900624896070219551433835730947163101088193956340588475359935384969651263740302749966980407118035277870888853791472024088876596511658355482330740009023375670580028458912075343080353289837585809919204368566072354706916363538882129227478308270923869237061773032330573798830483312474170957300113154757415878046801833506290735022210046246465337094083269772705308574431177867241828402890838323979202382261290906177566803622857632074023906632365338414211286618720862128406053712778146117632482509735465742456284195748700997204802235400389327888637263059419419585302026533797296954850156817393792165338410570745134830255728041900710507042812053252454582160783369868104086942186743801293476250305601192182066587410982537789198996346809497167989585756053603212462329227432669067534254118945258295440221999327632987812229257839915358181775407477293739550934710011818243179403704360170408655981653946426599612268420744015476679257325407920982977371856423609696280198194714169540834271916508132830801541533033471702145016980434880436281179554931830732486555826330480698265274120897568397994938095596043743684191186297935344431837836832869482791522617472970789036732510046003940800029142763101561176661226435628843394503862670758835958196322542865140522361379995531546357608033558102495096125421514840117193208687241473444313090245799973155234241292559757071592712464360360300035057370776222946113560569026249316362693198912400211816235787023537591299474244439807479410882693364395185352176088029282878859973745814263907907075989675355261040099521152633644329811991631432393715716961175799246215710018316254046072645236413588657065372061888467327611206466167184672852637779387124850232416624669539631684652443570025944267062137169857877464082770536060199738469085408100787240425043887547648694356059179727202084038834698484496000910932627764931119149944530201305703954225018291655027586371356243197628352643091020534150980111122016684297531035713956081764855043746006234838709396330730284195281738474994047718895178173332120302656259984542565607174006354588341873420576190774817017557115111896261334973869845769467405133959744668217645457455637797115709752827205752674530786756536980249353294557474151450215500491535734489094891142222626616205471378037785391382467520341873606133866461274423468756057515314746258836057701565710615750711370205389385825637220178075647311735383956655217741100234641541675561141238766497947650460030736383751193096066309999642896568671227890331253603529990698980613057359956917809807729341386067883956661273191979634004754236831383893479422862694046596459220579632402761105874584542447926599551238529830648987401138709394438254976498770274898004979722690665563149958541760756417841321980997645507536641655634162422666245841334765075596770491313325194039481252323333614173417925412739708396437249613358801727721201327623464044820790616982913902638125780687005242057748945024336430029551829351639069790646547924371702281134549965276792361331783387432961598309853991316335798525408012374814136840124906952579469217380648165955867425941920477873763122931574869086246595858070354116074114964020617412844715761678212656936332242903624891901222438848026633075104822373191448490383817969997205501335749106733139770404808077100189481301016879194731292903475317706208208952067559725615434893699860078186545320952887469429002533326488923294304369279575851690752051530856855599476816627895435662047114311257018473305316407909640902273131384766971611853716167440736465468697591503159521422480776290587311716398783644185583118049638131496831333463568104847351555894001164054429994761519687439299564732040438884826982634341585994288003265597530760600706430704118421999180489336505826556606642867067979547789319909746200311568733932430072777064080525294981299461771306587226119907846001544795301189517670979087049702454229918108480744602662026380984537155460445538794056952461679216858564913214600219239287749821288903563381016957189048268954357969954965980661193000218031571402278378018733539842037931759399776750441798992092596203958414104899871103288541316993824223655698695132831679951113092834558571098301514238933116031191241553503381655000517936033031813658346767711933298479350624427570370675076243126844479329684162163131967450515772742931108801197510095821085293572634668674638178561895456481748077394755848146796134552062634767706317899017156631159972122072439397073718750406338745885268872932681697241255378884615123534557819537895057706857498154518930448469281505603523315399123076864484303844773714940133629492345428365399387618939704467877103944522497402468417269274943935744240413549761071766542874465810829471174662346570753914011532110819880755179312463452037238376557600796724711429757315645264708029416201442627088710134410114046143763175706822817267050606305256392775080635582865349723788107651004707988538889141422608364225947936747347874785731789104450819618673864053903560732661944784327129900769471924618256463701983799857776663203117188245752460287765573277488984330224196441781517625260349592353602193192701602688042278324791093005652281188828271203589583050129805719553116069549027109522286515137749723545156731648900883338788831108239428129155949328164328201949570292818163162132079404043992020498475490852397279247006785568001320816343256415182919052151560077574964615796443027428682784262550953740667928263228620900386098119407931960417054233713768478326616172791757641261727095400553409885364546738269951620339982625853865525240633956341532659123295259402629858639208701899530723233696174687382603766440084480936765761016281018714976517856486567493051145615542670245567559635241351465114127241957392589734391233010387538530579036368857119073280322069465916455779421724376355048474747758202513041333526465808748828593664002072696545398645629027628232779894282917189903692362197841708903285035702612839811804190898237663154942917428657279713971654758367094509356710014835775870659891285495271154391076484015735133909872116059698438275321295018165438459104137048967979605887423602812971920028798597123420232138968370331553608729892182412897970300011212773733369731286125830311883578084926324059764380530357808628036994548022396277653467804375125547121585540424652076799107035653760104864818317930090907635864022110788827614807549430065284761960390454743929587340928449700763578397964139536973336620928422888481261299423407145056053516165194064363190060946883902042760668045537171678080025861718672152131537527404814982623139536877166691818502985482482716453560766447938744677199686048299698257402105213887522303757339901155885929634545345862955078094131108176871813422127760020451117511862367088692572499933635003338773935858874353407153535384739394279639710587831703278731126961818889702682222985135498449525593474498614363278827010840887571511936398537815733891759195837195550221861963918116954435526318037476844087918672133746526472799778001497816594205362718882982755730315896798866757590769323737361129773894492386791416566306557655245848631706898085699912998725766098454468670772745865299316242127156979337826463181238405456525474711504016225033039947132123364167451793150929628856720149690716661172299574478484977364700126967055503600037483567965681664780984072539963013920835886240486146366787408859554838838960688031119776127042199536554911606225437396696681811208604338867061519812684531980553657742665339190589128743293128958165054430329017220413631925040557230429664259849110714038394349924404512046968891796251637334554705764534598948287079508828050651929165945844900465902541852793647117702986754088390919839843033203928938238293927013781908255689044664412577640691056541784893012604254877797321394313015288628336548797046141977444745890497398069992501673113616086340711704911815680951607231339368565519943315326555496038844784496710972628527271024011111505026384083096423808889057622890893526722239005125403068575463353522496011678132684356982277534603868837269919226150283506697564861779227852826048726429581764105838388843962886649851559062401992003283053373439188268449538057293737603056090789448777150699126361191155032651523043734070864502315101756675574566697133486605539060433963074932078490696690002597098740285064575018683353585501145130183773331443169530311095682439866302061553283773034351795604009951547574751772430149254041863898950264576923535936342872147250691159746419329279121445109025263719665295327598657797648516328109471424749125499604091758467634504448265995734115330662919073800759085730369225049813493445291887884102377663653917827164591747270331714118430863386958417415656588575655571356037472589993924394295728370885826126548898262199069055696674005892437864263575409513551919432896031345031168058466688496841020762598061996661006764248276990706606682928657355968717555666757152108150694162807542990753614504555456074055936970341650337132718866646649329548286144629312267573312149123640362493311772045056703084493565867866919449023823635289696894284815256501592563293794037878542410676370869258073651363834863023684728836560240827288974186036607731731405020671389929797795625262712236095948345564520095839388461360962332794943586219897099517321010369452622150911706310591333288756930148671789586826263343738190604735461777777892960014758181195617077759577038477298629926675215016200876800028719526004661032945193924991066235889388508174133820818884397543222298048069926233982743050563761263163588407727363903059021647278682456052665745401985983793543127505521992184882317795799632194643444586484294986284586314831216438201780861621836223794437155491023412105585836845335844990281193711258848816646616564861821698180359290259113187026153289514954030241388870648545091768078383311342527924695588638521606199558247476054005803563085888140560929753674261180760375132214637395965548424650631651677056449323659624129477365594311672921947636666312868877296834476214703679471315684423270412166924176764838912793044669159265648067778500067987467732784428677988416775204843615364108852181899406342162324679177682440600956932584670472801646388690110410773058173418366817382455884778958114564579255310823601758819425970046732075091347968017133221701772517873285307786981823058057298675061966124036440538512327799926118223268734429085563799717790870286069231071916745030540126224838517569976810528890182335480758925802544678481439400864237697640809075333320095705883145940079924430787813310595373128743636401975524516127250594297242316557037766944859570222216679122051459740923916362906721633761837210229240274234010869775321587740125347664555365622097986186996801319911459067360792495955878295280324991549203841818953973661858606728626058169485232446783444337064827240706637115924489089534098009700500244921379036359848261571297267809204962340338970359490159994799100755169366508062847348512350150151933107989757233570258416548794460256385102729377363994350714753519729869652055408475533879730757511788460043078313261551618019946248721772429194270649204600489363751546627411621322684217616346919684424495731416855498955763165225094977064153566839408229768280026482979543436102325997980342493556882645739889720334847479167511407410125764077992562392873738495390012474266629349449321317974206695817920869955774145792672052675710581778183918209416320109241213208493152155208913695853842552009338853832243240831573041905748161593362575312907800886831168132318716737562243076354715855092346005962488518042187514030545051785319174454867762437658678542737864037568213296785157274189482532452568489521333669082120361623619157868196189910465625570815900225474814036184787147732685491910951975355403346986618996058070556373753286188080668125730337075794938677960796011306821400611577792638659066603951608258197587704637530720181513828117999060113587228860028942319909724610817641714698354272443545535599727823121825126833874479171389012707153715809698156678069818126818854945039414472905390863111861178654169420240456932436479554247789692339057524273486725702988421014777746578115724986729021325833059618285559931080535146611992477569793275784302998219203750613168236916906517946621897633083823454772625467629302591789103728855517579168051342248461744570552623788683991876057777426017026211873097012048301920298038391335648548415059708719567474581428350895382784944304356017646658356867408205935049358790949652118538134365052868857778049736609123402181468073686716206601463966040614133519601065532310716425465029807590404156377430165999575912090030524911048263608883547871132607761279488747087273985007458228562802324067877323380999638194686397602913047796187535309104946450475629487204710602688081962544662406619486812190523267727291555953912077499232760405275692484768372299707902263432508045541299435660975122756719903852764155351153366350718196442143954806213741305275421473337525125323935935335026513337184697781553553299201840275561469326979271803563918713089789756803225985568466640810717117162579366227109713537027598633479663463429405753090598081768005058292669232554085063446436507271163905663897017099899626648620391966853536530856613974154411162172209233077824028305146196649361936298654907969400857871074661197889460444599147112521423255741091302322126066425911364174553644813147468448456005144976968419886513895273438641696429783073813719634526751989241333264938097823311442114340162252942049444582593183190195001578215187595764976265892091321877982309701012978818190365384705251516868074407016197628685043756401737164678404369320126983583722790795828655626245185266588094779633344519931361946730380224746238623532738631920509544583355034337759422219292405790624304448071894639541052365799710213861606987777400731573684906907518189552068434903015581325345856326773639309382876065718400957432408326289982765793197336004138546832013268718745363997018925112454090250007112181514068118620275683761996949733841313325898427531449589937698236849493581895677827679659860976097884316169283854999460228801278456204929229045687297223038241139242426652092354089863401223368764320316411478264833769675140404031036443728194747199001297024388476797080672499221139742225922897061281455732954761120796066440147030602868446876564523752990252733292310292943027481160290011262038978984766176570214645201677701443515435534842031161651130634447634595243509487090112504386182063803672287373748413332741767444529974355528220097455442608925565157976077150317906910368273290498930970065448217024071605306022244390989751629410712765553473616841043574828281923390753203171070984734334712097425312359634388992756226301654710465518038049243049960765226312766611167952013681542682471127315590561126315978757553491519968588162406730611022994044638492691090161195698724806886015705228991807735380212954794398878247705775755456870542851011037086974146934829663431825670109902329966784800072319843704594988669354302324218559498597874668997929225179670976067608123067544670106793193337509379569803022389175076648029937290294590053486302160610790039878798490369656424355785987674914007211572381490340493970609307417028613616482204150809836464849041724012906554661131974253647050765572887813234789083677192305183883966664598058662501088509302929552210284843380220203319243304622708738928999525055257575965958081646565600646973426595865379031238740465963026729957847032879854181966005238594699059169590936863884054304416211455008697620175474632753369689055291881779224050429130616487247704052916463759351798087790158738851118038895297010771165176817154978897210437401749149157250380932168894176836647497732684699044715946718616493099114584054644126029558123426251129849682288835526152254674090279801669342542443424806669302626813446420681819715231945474151437150032752616484565379510627588319435542562896529374287957771432990122084488744000339589999194829060228718742508490109320211620091653182112160553470138960560922005245044935577579025427329553073308258976468434763479539108199080437118663375116643005489210229031316623065231790712730113968113258757751620170226035098265500956696936569946150329610118618361013752552803554103116075932606221630621714949258853691354216794719370317843054445428927320923514783909491937593839268378075262907075223410129409048568839993999243245506725288397443244346258379229721755766802359889840411632228444922781124220416441085667488996903995574264419580143378158394785731972033502096085022977585768324979252676890228078551555561765643511917010486146819310839081910673023957433905409163439051330189927543503036207058833493739395836561444128090266652181510669887139356513696576136138320645169108341751097592620439668982669782138329630868526853026509172237015569458981757478085202502697886292527789346112739872975539334398179099511958888294297647510382762319485933898859965939485495754975390877845871709842693307080767434237786947132845044153691370399283153143753948836327508031382804500329633523256175814719536156449583082745090647793838756791705614497371749431374707373231351244818789704465260536769802106871364975338061296266352446847126747135724443040618369806522037133457108106422479291177047494075346811252773395592947308247689019684768029951631210204537851831810753092425104230994046604314311337509341514117312736109100341178807404151371645053300401070477088601235472210805656125828038915502121685309104145003580604530645591133063489444079437555905183305127417200849216244765896706115507526101211053655581030755563410721102813158454097182650334438190968480931295584784587274648819901876897742473079660186020748068283590123050532018975778604578636675644134638981298642906939760848123859478641671102322301746039170423098867974822147512543021355723492834450068306827506528484542139654867659964941298265667707985009484873536862221554145335578595319428313863292341224778644388511225309378572124701077931701572253013624079673842660562056753370851295018553664546626685031074484492860690981309026781541750952975944775118493191101799043434002171654888242609580290925258096052746787085514285471563036039157371394639898941641087696008379840989810510818321735172027818563504073707863589969584050917056254166984498784082641389425411936800880935648758091711830725480614407793529247170158271806371188010647218394450764108529846023262227467752906331237843919442917140672049776669757468228842647166283204566570178789926425570924831833459297074715994544940772431015325525991599770677591405028855799728398574684891117010314428615382939499781034607044951307528690539054990916440364800752298076258688217590957130273583307663587980801849193840086942135076578709325230817668144236245827835709843365605073351263623257224765342520879943676011299256859662794112013419427563694240526236857808090872317359396667760626290829567072469184825633041049797415280268049693099615193890972786315173453695755439575475366970647257621236620763851548896928097735169687700922128742192157592941401197137811138603040039685610735040454228165792604829205607174184801687520997839365374205625322014953367482620385496747265542241583790548310724469002040612738804399482954359731989636878413259804538658478245258554475939487398436729636696042534123366291843697798385542028424351118551505479779982851377497316772009614409262053600935505693407701074313632511345984669957584100586191050021827365708706667695610577202170498207051921012281336321602501822762096490708041376787584157028398929500135732745115071232975185534184809555407623393211129561183688263679276387842723483823228112695004183243230873091120283147996110548422296357745116309619293506003081121695916449420135948509474844877933858497633995225378147300548593232800564762540167512891328021679554221578572624886368874946329001882143768938614099938865527306130817587522311751997770819172729663058545766117611718610186005688684921517706906986600306158814725055024291214212478820602682449844386039923314102116492495164239673446092204032128947444063394298858052722144840478642516522349126207214817541230232456718813230398551739420288403629995971541663178043550459095506886641756262047136659060698916276516395654839285022897334920270857876690832987807572889224905260115263218507083667365151691514405803209943504868397927422291106796871595815975948612599812612430919264933288395343878610228071941693530272033926893333819236427394411715095559262657290785542797459936442530435755293322315825005255327323115147217516482133094291069237650766051788471232582829120686155116862724500794410719811521340889886223621681371898090621831655055281396349711928447767182213899748086334715468175204690301176258335193415258678397029407596701053249391624174143244762681718382573420119571148485662624325175108321871285703926894954091632625356277580038734954764295008267850789844537622869056311573731372942387836816981221972091846976154236907815856946867921423068859303276140660732651157814700897326998870329175462717175178748180835454034738625432593728254387765634137171007648349818300748714847813542873893001222410535574850510653799812605525771837177494963074506527044272547466826962529467776157099197552000873044657212660171256980296794505386239580305774021910800618373717122036471751725758069630738621989436977945839456968425954076123888078635253957753922134329490538328616251647146222252620874748295069440551580110732039974131847870897201788234041843737249533045139068355672283491301233261283776839777172472852274370904764193137837022055022735026972518640055357502966781540548048652784966880100654912972362357854639131260273766144446887881011076669056591259197473981434226369337876753269425729984536239503613509083123700053024092159725001249179613440635036900673728403785499901217836591306431709618916689511531640087613087245253698181333613281196890235283984977619100586105067148397319728347568919276554071947855910418320529724941855212519064906037662474816979275733087185340649042426187110562166360087792044124153868872648380353934082235457651264134265091475318597803764794210017896743766634861311020133252171171996094997543248807138087049102844670815151138221897809513641213506545842409493158301313621216928653839902687388765523034816672070581336457736929292011506726288328376284206971100032608926754622197879116983208253043361385194384513900806101579462191212027690772761215141230560343415970606653008046443112223267591796073925456876992390642086998683330562590374212578365881896651285614119762359404307607981442284316700985689927217753917440621109160917567923640658691646295426494783560531316148462238856084770970454158725206011628083292200889604196449210610065657152624981138284186125577526200434888568391409571651323387998327612370037463194087848294857099590466731440540449716935470188619546338837868002236286520468846088867135777392988028109856042450867848771555458559421980908681547319681837463083926045044176945942550144077187957161577460504521586997485906135160584767284989548714574826438822041055752719417783790481508206183105693633944397383382723508910379866156891013960799499049391647593113644933318943781063172448011811016867517747105041703989771055087502957462390663645643159779616364512774351246639389773661447746721974884080705336315973305448492332813138797172878863013311304375369212234120850305330090511947786050820944474831846551218667464191623822274710267321477103573266009339196436806702420706545568573108737578426329723337256754843155854176838307514152741268782489321494917914065530334118887147471445237965488812493029693152594890527384507385023387010657219674912056342494519362249204083940203007491088454338677816549241825167425730637470334343399832213229571367171107534221489944790995573302560079028802703092752281152125378720074916039444462311538397348440572332534021511788035588122317950649830660286356178359189705569594001519186297037790171009782700280497111262343230490309346744784289075957473650012199902621028763297297483290062933164973266586589154790203740522301686265274058726713507848671914668318645124718558628983908207485043274132263768663480783928736894535860033045216968162183482896209226908362746006790933980991120427670776023418779304479813454301531165490748057555636124716625245333801708238938758235806688782811567657095448699416561247609908314093054204019934294257074184573262957934123850347487230898267717984304159143114019269422491218742560119176531330619221830936409681488645945670260694190296183886266574873239609767743057527731932910837021126285695894555856088717527043615158466212643952669458694654371573693662511363316964960488766361545688834917472803696715060911614862941394879214157584429911227357042646083033199279245817034310922548979720396510227281955725348950557204968790027710464151388016317814867680807940607804429082422507805707452870571097425502081884701507397804001729209948054620895240009321578896628390064714791278022612776525256161751200520956419665840133085880570889804447239920062141203871578313259873640514476980411305007653959396091592400947683739706187714832232104026476859848441983526987762775267113779148982442834512871702795371180201780254442338993575221087461163219962279360940162264137134273338311484089617700048647818029683456904512707761359991705824492118842637265162920086699360171244192715822931390992991273030089870652858234695147429420210605558434224906148713504253434349870603173719200207839941333494519728208261502047675548335870524213009857574365769682178046519477353907564563242920733679901818637572355264161075612434394436448115600559014258437893577342685211619459240450183390601489406681219466363902191505728524199466387276991637131664819800098471239502081847425199830921326139267241077589942294045471690047141924732603522694129886521073126580397831019835137865177686075162614513619152074495534339067816673077724310301904547190296284255085088928837844353505368491213021915636733431069622487731824969922221032641417093050042459963643809439397136656891900307330352757898156248595278312347319834225999472719217256729626408591503921965835383580289621805300037087959037585548926950084999445997959382415989016228056321973470901158383049957904485567813811817514113470622137226406338322773163543590697831126755258843916169760012542220483012337348403710127904909372861118060987932518520531197041154175788408102834676506298939986173015318226405912344661467261696381975030434161618463505785220539812592590629445584773963376468432855450147563656023740360184222894146109129895473570420987340663240850459829894633307761063157382578174412503123915851940488471722572431674397856057909340849508315842464020059586446654418692983275025722229602179704133451595696679696798290678063871328569376603208509724300038405995190096207811275069978182537335832223272307652420799756385572455733190289367001823733087412902423570004129010031777158276392204829761670346545603156393808037814472564725442270077375787800278047123569811952060490984489240742920385886355461309829355250399011915145272125502521497333800945887744974550695481535254975411309970178974270000131195317881928044027234086510728091691958311851465894863738012980653355897155412263711706610085789547039755661168402971121882709500225966193088105029601516642156828214400801416625603556080121813917840557688709551835906843020600460104800086282625995105586364376081645978933237004717204207167715249542843113464744690574189366683496081965151291283003616227113033444788221693157815569551850700478182166060441669949254402456852140681907852687776821090987624175712293621038872773950676302334314055783572130498469986916288947697228353594286908772905939782844350254036292360605775403604004943088503716365663477708902692035391706601710686892669423500863438055318263138750982787697250664218745684374012805810281647441665996382373318356025076643773155473093418351490147543722896904765424916105976687826534102375626686854151504829145680915841619128851514267796436200807500192743175440764606294527405614580775943522259955843394011113467382366938282157877553379689934286687088068068029128293659431153183703671291355092716460614603761042886331308383941695664696558958174231906969581697484657529539407542315949222480631136624111385605933022947628077330407858442638300821913049671181080292346410759498988597488050950597169729931739757339386607883778276071533448315487733935924347958765702860876749405213025272544529739057131967190221217940414292815425106717623774387742005517727353273846317105059154628209071105953577002188004386450026488986387638753809207721741313530932872255078759213239999391709776911730978687558253228826867668445771028796351006544367562675691574653000072586280727922269397537758035652917098742725120876060558143787173602823408471430785116766390695711759545565256476023540724071389857153703149218092154255809643813578227161183043580605265450983899995638392440432568491399933382574642874363634867621754778823305416118529461206845238216975677659170226354864642380723777138558840839052559977766756939816712839900457720828341528306723486004827118612464864457792310457703676606389838650712754512475638255198926977283276967960449801170187200780903435441151249831818709305329728194257666872528836462135183474066105427667787881131674841578093007388122107136308738348008749978447856300497361030682802573601362714485847292078000743356587911386667545706217170917963562174076575871362371551415129078620425518803133788227874465619843382332857334158405663005044713694323028072568455055316206762181774552273568695100527008292622818576597215021719243818963714739201917629616738532856747111536811768825652995249284733909415574098138388410180763690691961899442282517273293678858998968909856509955006345896969040981584165443794522145378424136028056532979252119570990859421878674657011554706125206350546623455067969163905581333035519898603950338980801864657675768578611067925985656895174382969102430435457147727207843928356717912079319036939822976391725613274814114056108059256518710266370308433761126215922010239750632633374756044835310580683127516895816046109541171475240622634370174347839232147439976487084370657672022488465526320714531267586835256267142278403308901496924565453791662597165161012200368099873411698281601384011962096075774908891618207212290432220344059393007975866834843131214819344845350708372107190101018910265785915961935816491561476726068765973985664875549021633722998965579653599540362495484452958462372274136750397860425010005745941348355785041813941400376592900656282710816948426721898635021174486028410156492851223970799925891488097113645270399689879370029091355583321021235386574159858335682872491896431797784837220206198371268885460609834517274336236569250444916220805934963530760178980163075523377523273302841930304919772127438286422984800859436883979254128424644243928237303673474362274318819311066431905307617892958715875441406206273716658056705187353179379956596110329394473966178234283591479440425405364920180732574645786049707069996713582320764124809275343254234829732943832069643289055570290494160996300332691807313186323889224064007167923345402420098536408679820198328285577827023684617289156078432906197475788850581841053458201893909138682957645868214455466409685329515335527757948336199506252716445062396350495193003816635638241264349729130167070682373014424239096073831491046687198300866192482163013557647761172607339750777131249362464764624426282237651926275700538290156623817169992498106508812093219997736819400691124155214286406489605236484629295276931615092710842906910669364667482300557698009195799314264638521490803425351269673247419472220123894186088306638563805264297148712058623893147590935106582195007052563727802142418589757727420868668023884984880411852920910653662133441483899399854467963904525913218441060797965249702298434032014730291720126750953994992048951327989873457328234377329612207705858281047147326429907628544147761506864972095451635597209753093377410769756751867561909814073926782221053002272387971081489939787036186170885684921722704315378774220106981423145923275249022658047142767597332676585403527898249018464697592536316158903777384028457816285656545133586080067316789024287705994320975979190324067796490015898851628108651805048918897377665838676290421805641362044526151740735303787785934500978024613928883470249778050043705929582228179043989941980658628680072909346182387486366678560213980715084712142658981386275140823736421745811781381701961393847359368386585418205118539685760018470545350620142434000809089285115552156651351827373001996005965105158294566473176741012046660053235154085457020872612281512184812245436741959621125930166256710824998365911516579845706587955458002203902495402916198097982613992252784062636608708056630818310616467648625359684895029202732870876018160507737453705448272316437058540499890739987054758660507186701911964494591123630347574375224879852815309799223536221030484950893006756240280068602032689688964264966269492291084915395045265429978861873613659547153395122674624695745655543099127977939792725425458836174524269605670880482144702258328756863562581929556874806112186214026528790663586454350693435820685919650140263323139380444293993966220839117937581300116503119327854299471406028790709165846644015288946024991423390942999934738669807610892296521559349594072281645899678970530006658417912128592714929411765091924706019053115699831088992388980997592242490855808164854158554906933901464948723344570424621579444526875042383692706477971738738573798433236449890415042603618918248676020036849441941409653978706441923344491424964925214474646018269311292060804326185203734288933603383455771043840784012096526909365173618211374280407406549660347487063003787316597520222972633673680375622648706084669349384718794443116917076799652346391166568181724398473303144980884867281889630010979808706605767086503079186430234206048187296747791930792062174649186350289270399725195345283936840691064093657722195183739768262911586198262527496042714057368435423961655156737901726167388044100741732770612256381395157727272071102844668167538092703824732161800450582203734429716795102223058935224632128201589952813189442980884757395835526926588399628434616257971023607256649710166526620379031351674800902299292943381638804972096253587654707622811729831168121732379527633277962746840915918788354271367615808276594856823720667496930582094703267649959005721555141087162775783580442297448963347599607154652635713075277440632529456032561233967538584996963824180370629789661456856104011547653010952066167089859038969664958647591432918205439062137637993319231256146466996989845125838867481396888410702785604454768315851150455132271327421021070356355569590270410162563576302862510468352888296807675912110686668976476008353722431162171159717624970924488502487819356810048142052125243189590917204820426012123537229174836392711605324824258662975976239136264018383650707159011329469410577447899996161196107442316938908833664349958390788388938956718402591927636053332482481696872065562925458884137103975994385795479541720349439159664865827306825812691591992148238805401670226344533604938039042220941086528505133557014199947617228455544802871326472689700055733457338279749962243966928681576208733935701036778984404139701171297034642793873561065909654592787672230267526248390308587255072318933026035767215071400761206900115420887794935478702402781208792442879845859387915159143488278111285937218290867110548261417482891329588842768160963238931253441479224768012339619927741371968687429870750654199632826974836316125751655810020062983352025315420412692068529337772800681351396751450445683500059242846083219876950929461217151523540555031364503936577640093525588166534814952445298910147743899426474276483576897373509907280295280157680140091987009431632530126777440942866481708450252722393733716063329600414596387146475318027003492293398812977545258374799288275779667825940252446187431773108310621171116830453064080763992210997778356794044855777007064619818892866526690941122102548212284528407420022923352598465690698934078756434645405712177087318434596985575860147513580131410139241310576167735994352103025445239104553692084350934984173960729525347818596936720000233503493503300851329623586131852621067099346123606976049494824654060837374914691582698605728720287001878327574518668179064565251019703283346540767408802707234020701448741672362579950776155195111727243227654673574851251403530256089399598383766305216552550866721319404949319783211575686231824261595861400528322876998765323933635914326656807963805557778780086129543392584927974757918223934981626189966353586654756151894812001793658856105617556614764861223839594959382486232278446227307510990559115776236191865301498398752279475570270084197398556011592617343189986234732246987730849333119081525171992098535972074756649793744605969232682003002289929412978120100937198012408977778405395937488876177362062886870313772945250815800296530946664578501531639286247105573815629014164600697315981694557456260649572997616400517098795755392920973643122139771073162113055443418259188757067360502897741725887646720622933034979162277779473777489156960051682110449297470031873345108919535411365570854883290943528837401612961223480472484712240488773996118357540184676283933555033368093018115347322525956607568844140543813047379506646921877392161598162421454532112849008477387375051679279204208082315085574408979104104983187531644027178856979846130323892854049691325002676060736344846178016296707382600955174581180664139007032514106049878119818378218425319692190118347298870836710310088816898861974883599304182327964097949655887015151713822754378763797722739623471764842043001407598459477319206768626133111363935031094834297000949059884254468284420087177487189418202785641992520618991560731766065475551579232744188628473089431542835635207253276662462091846362551629525817989842659257096235260460802788298318705912924449974414766679642042634153091125770156613455867697965879264377951763291921652881648116935249312048699257796736683163791012450590330928806229579681504376813862689743065191173930536544614767268452884265209539380987537747731489171400743248244697671177261416277408242169979093476499921367175199690145931601248107291548755994570305625856524361639282159929127741909801161844449051478363170728463998797433226396044957886822551116761987304319504614985882914916190126526674791720616627317693031840082215332808974825434705375606515883803262811486768262078965526308018077064269754004885051066560125377609884698934354307076457219765237534351303838570150791510324738353168098432955795010658481303528320455362477048601595409810189470598019662714245929672215340210110313257845702298707446660023850139599222609327871673768583501677566813717802144428009323113948804750799521675773098658596497308619228185962644981794813336941737910978828302625413090587589549126676909090153954385244253911112012602747127316439598431842542221739269082748090901097239977932190544815515915067539791099096652307328901230200784260492961921950423848928928018569613925009356543737543791747800024594808497445682632543174725236990148279983798220843312462533746277243787748829157476920110140677379597971715794299855769036164611380336686526817301686310259841834344167601827192118154189993275249817800668291545127745509727648104040210130480839254007748799471642166027574464459613640667782051323647536629041484382448620923657943353210981209581893650889549999960646273743884839621296713333486599499533077983845860291228089546056445158772230254365864246195956045906085085842941761140801826002671351389151309735821203503541085146834430387268912436386275067432838602613841056563401405926526515665005353404663852670895967529482409527016962628174508855302535070535538056204096963824299100708997217821771977389777279831874228475634054155742197119554220502425004759254473671510910494801836655346936748865732297433739123084081584213880528577530183888546193552744122646932479045084723246352115504962067870349425017589829615823505532160512883494418790946274637131538677479381377344436622070421856809993885849474389600609771809395141797825927698668848023230533965271761165217873472384792579100738083211540351817968762190366567549562290684097358678769932473569762753229281056368921583072396692727175119475821948349820141403550965417242216926435361587275606437096370111130542178939455653911400733887421108067915533156506928139188926495429953304346858651882314848073107481308789531961069786946559463465173907568266086832452678697837482435597958444778672318006021359640887736183195168660807465947598547936664978605191735700841249365195038215994986095423733176744500981311736030065680766036095019423314388905604508053289805963144748475660111380175491503081281945079219375641536687474713921985682646881796928725149137420828882203104118261112885598310811836056246239224377107463267599261498811483352380665085308696725866591632747731845925539570424228621680795675086314212805204080110703354687946442994764385268573754874566664279402693937156722642384096396754508289388762232055744300247774756517250582924820308422670546032133592438230212178332416064200758190321748851746340248998460591409092402218756576615647521514906505405329698876376326512024723103724348810078889091461798505714095678335989259313217690786095055675097909694250976671367057133247584886877826248216005004148951023287423897194149969772671149061515492255975148157460405152882635670259487518539719712778161529261129967144573406154149809308444914515673447164721988984075964201681278300809323087940756712802143626200698898246021622271963614339377910811183272597307970754501394182822111188106082868172167647042614490545350371616467544914513585765017301086815071049386625659068473395099630697781884848469961543100505845110883124891869386147759785356434171382794473769400193168264769066299342375485078421881489930740385736753904915094199907623613546756969956185749912059170455694358255063059276540229391627263703875728501887457384975607926958302977921690011606868229962938712478019786960508233007977043523437516242773128244968344484335727549051102740723188835100948824368658078123833420045411584010355745425911855796220077557186464388429430192182499742894725484326732133155217620569239489728775188383285097614948477508513247283477845584198975358200913370598299892994925694774899257569456435740180664878257106072434608974128750649863263636713871583284014890567698119830440292133103086951823183434204809321065970502004769519981934849471436694131141767616813121409393734112571019147538461905928066019866300946428849455932997068940852400258606850054315282076149918922160370446100990943323383430981028600651365746182320762182197490201507505071236762573794638893915123755254764628481592340289012256192533979931055694862761117361899164781066750959579566514363442035761571469961752562921733221495130130798725519615830774699538120675436803345947664110974973281934897827324962434774181601051263421096197534423260257894276544073179915683661123816937259817437896517573729739850336153021344195579588525904529986886158215602291631379854292562259305294959130600603230341052738027820581420064281204369007086478574865827410413969806273312186541826755936652119887110389136326870949011731139810714184526230544819771851140576321399455500712867965978316314434684773276130138032428442715678717175675393962002372941423808082651830258285510154902136016506101636809266640455055786347042441887949796361682561261597338445752471852711662803066585549601395141596632993777660745826267388108902555590831153047902492222753406736390883437085094900421713865054508793696303578685296553062908437064532691890768220544454927787167100196033280330145126302521839968365074113295218698073631688910311320806071890151764590965355977459122342466396014604156133722555153916265135138416460178821114480469235870562073810445555810778007369889286746942726461755704419776312247576194131813888722246224858065843525628698715918721614316545581168100120256917783168131397328777284568440499899060630228924963497824326413208850441032652412329450551926565069518759110908751012077412897892835046372400665468039660373457033752401228842871007402889897790763813040114286403082334077409135207980837750680630308408278438753947881529472653005822103956275298944762516705972606976822754192789530265462580762266902884454676660576332553935827493283470768725235216858220914745981539276431641220659717826933798609033480602410147974359778234208790029468744764708059282990681437018260964306641316509649325456123879877416812925811045326038176469207068149558638981486404537456874707020716583665857456433462102568054598582656896665338409796100802105474031360246622457255791768080714136331854886816896254194582344343307132064161331573807547329289889930792897278752877320240512305331308724397913873323315042497224652502530628876680490519464130733756979256378160582069373894062911133083931469553179082663691337092716891228318551720580061509285089725488858109774024163866595750119943055126171621546952445635003565619598811040659053342911745421502715974247914115730946967946695093265273537362411930714758475340387667872128310614799331948550397774741655307999088999951346613100811771293923159251039572261299568770847281805353521355793035252965196977595469243545968569790444884240181217390200555656813654291486482671939873084111790480266676049423426315459017004334377340253267238136385380467262890471735148227543030559295485853914429869164403418888277224499269547219449839007108769340022882328937830169114536833567413587651901929760339314145898086220744705442087895997721197503830822699072893083023000778844814147199022600880718195605335229145782683584685988599022592707550552511685732670403572406900106438730729996371465616288092343099357276308615564202188784034708307690795458806894982828011188802018617517489566857932506561826742870540212459357305252748987970836337168710451874386425817521659989873233286413287499421265350451248918470496194280306332941650008018069507793924068512373749277251119259817313330297492333010664134745868089609373298765208407794916470566366173713496262909314167371773096818803381874745180903054776265943315617897962243313831145759480731338866545416625590289831351866083516961424733825272000556194239189304386575996132900032180440933978732587696757836208250005210560033318892077727361275180076915993328262659919221239708723472710090540378729946494255836536856195176038296374193542455906189966035704406684582051167837647379508184677659252638590906953978451157382455574028985681993564022201877533126473557085298598145113496353417482987107420573171243499482008212810785448040037525338732850265554859349428531085141028413694594993558224082245680955868775533345221025856109011534177320800020121081905725130803705135642153549857473108280426245503639603595363444777185464590030865527407017337014710614009593791329630747996428051834516802769786301027733822873647717029158380724129273522493994009212616886124752775287396596184716831440572708054353795724636324529363992135303919045696259523449793240268772004632916488969016171534377904798275079215682091392513387130277494845634677790950997543850776340661824417706449964672665860586907775920256395727545062925876953759823229245450007304172417449158234954943711822962290786366237363622951860981507765347814557753412187850228733975374264020023690026898295515442910071488319132888134031635491031780595116639083173995048672374091048304979687493020653477861325957469308694213905075403128886805875528821735898072783599980309019697898622503550120259639985692560242558022115877970128781101747944064031303950124823269452748515085450704794345780992141783274103468404995368635904047687169807555218610296198127609254294951617736144083098547865905252731823583817422498945580474637428815896555907580270329185239413181148765129734991625584631717495426669006472915389063514813224735491041668482227998264677715588430524930809107332996480425533692288359908306490524977170147859825033440486884510421820077637339520698897216065644829506611234477451846896548630896592871772521437782978278680762581218485619607282333979728982363503336161025082367429737390372633692703425942442576500922685901152201538846858608280490412702265475307117017459257428206633428206960429420956102426013242663347763598946830099273717339439104951873316212131238294522464438683678217806824511703170963701709066741827856600386455137154155234671843971899694162702126551611056773418318069865149787048974185381009783397401851839093728356916901130271213941787096182666090100124229233891385229231818475139169629869000410692906921534140870819890703153488227001171073114610752185228004058063428452748884595414018600838057758538953591229222161200047704023702359579245117607649778787621570688629328167233700550904437313103944097395742474149628283351951252075950386506670210518237828071820018937409357960268019663048512420953067946979185355666477087020202488827480565100759338182820168476257196846791196504213083220244965928419936336812310251718629208967604062920912202412947668654453925739648771914884258254845525466131615217957245799574692040602912913741810894884759015880042817180567326496711661829332517709402953827483147091139897811459354404925437292727813059721156738519331205869839571821970628367411988295594271678332912656522433710358893984807709284655538315116585876209975009716042710426569565974897671414872322002744829960897994514661312543284049939507294670103334008380613355762769007540162991955954707017376486882554118500099050116831549177448818091880254477566471045537575915324008099588841691184389402937812173188123107780526445510237792908090160170930088033905264838414861791316707093204696534060905429768727656901926988200185011024368728587458178944267933705182519356161495349326066569144227012658547789077478752178105119625476866847884892567216748419107138871239246574102197609230665688861670824093234621326355334748185130938380493151883583655414525455091693157012453327319847288138097477443504578476821492975924374029528969562117167439405501693149463988404873300919789085370848931734604820502984117812345085501606566198893614075774492066384837615891586375545667316236449438212262460340843974324173860104673272111324941597780969332941378038697319381304807851519164202103572797232822961143610224461617394847929291300672476467852549117708784411060572497682285325001953277474793830917451872161619881109450634591729302916491051319549926265358985300460256919187067654951018413257244186066143288027528148454163635500330514553589804050057237651402357905257714234569236579264033920398608228694131037474716795892087455541017751378909287259018561639928029088452147984529724704522175514452281908287684420000347582780313782740542899987307824908762546149596639401488985596144485652055783362064990991190363191923249857802986869232637469056428807565714178648708138760794578493238653888252163424236489763490824272753278330707692690575595745270211449767369205063510873162196929010666619216659453626097915980682808554182979018344584123906210505932237472760147834216869726708377862479596947124105537164567317675942092560219126938631051382593832130139143022271691740693312634955833703053744022194231066736654419909809259784080736699670253321063331890401972357286788421796476519081543916715004809124574319927721190877507922578864805425287320278990610702355727074609462526938497245539790421873982250010404940292091592928575694232759860306817399212434344021812931761437879568246443137612937484655277584124416424510850388243944866254135532214616818170298994792923256572149557532473318712802091262379846627437688105894326515293963620734399710871974623913050037394699131644871145199380833196606475187200140245118051138696982584881777520892929412469296180187680675978907175235811739536409654813749938559811404424696536402252428619784536586223972064376853912716355330410655728781748349975966507270420457065916092336148680686157457949940050808519137365045783179985385724093669007835831684295496912717186311063364717808172553390745528716381509964639539803702678413007448083291088511743969235699396510412379960798484954328025918064505334505789303353461479757716159766233316140853424391998883327759549352299902668050659036445405710883808136365762177941624182573015187975478993881173496504976860196411376896085054012972195549416717762559483812340543438583203136307574214175061335868963178499949514451210090567337327806425794016968204336071275301079176428902310870984127000808592673676038124869139923306565786924819205782042293098275525365507539014915210675230603117277650837451734404491230873898193948381436370419439303988236553059532311895679151849434789594953837591938507270116073702063240653414324613293537157939476223008106304400847060204151780216202335304753089669456153019251777555314874825116020353003582848178077868745898235804548061526766817447987143985128910842060254414117910354768636012759411243016962361295307420366438065873708571684157462596190550430105034991885692112580042447492988510006621161073085242389337513399334978201486342479252454068268326861747717520994477532640545422483132698915675744804277373996125058581227566002038804167357281643884636889117768554171334700433500571154655294693843749732723329261622989329769770333720737389230434634473790591646284755483140621962280315311528542182846685767653774015900720103434550772793016228867771518639376871530936886286626264326583379572212359700912786775200560122838981161036490276606386435112692652526818300532731238366358191420339690197171650019415767689196475777821854416261650428347744704074042344043145265241345822108300288674704319184790869263790787084869023844408395459659675570408582767404341944485438776445924706662234272191824856889298633625143169558206724091055640403989202754927571604360074289883346675234665825692562513851681148041297805410105577809440052141432854703239971788166197137203560271300009298790467689468929343950267624848157905384882103754821409537193982181689788088264761496208189113074823298804623365371306194657819745792786621221388887958472548071178611082030567628771526131420087945663695812985062680039417950417940628060156285508337517985562632869067610288238744224322996049729401400954648748654243589227797213466332655297419858105892190779515979002222135257373223665006308012382332149565409822832219284996652712078417152141189971665318292668952379727597670371982461259942819613514220427700818071415719895797300177587345149991228047199292778548345943507511050964852981226253878946482284559866914780425942371281437185106951207483206831594957681933366728675384585878124155327119246881593896862418093911869915756868993423735269082592053660644120449286214850813881372166954161094503370325208393949037504217213207625837084963062333053274217296551462260653345157690480971217064572642592294556074237299084486251924107511842905418158364160638607114181941746080663529419476615077149681633149210120440742285993820828502265945007634191995498156942147041534324972664720502833294188750988648445471659309304781799072453199765605717344755979783902864145682462798386693231378778988898351952817818527784695031112929034115120522159404469285921312461997927884616912955225864152938290828874422173423329915868909536752488839965628988895973311329483851342771387313280375180749510613888384395076420552157960099894947608418402775719233953119251365452865735830524389477042841631942747543587365665821382862047167343260694771252703555673894420107468700173231172942954865335643942646241305418777015511944081621378075032891461693637674521423775852119970350963852715061898618402701255458113058335250886656033462159556928605022467716381728075919783457037506624672799437121970143653158608905994170920969244459195689801244759061318369412902517274619126132172474944382467028327165361335261901010976580158993765990772885593454055490945063912292680322470318943549928001257022125275086105472735700668143988731623683493647208242226407384568210290352455756766899367890707594980792627978149501922196478567963658634093614094762358531612869373108465095978173883035641234083991658486808153091624786495109208114111126565796950805274624878271101154920507082821487678302606726986972245166848914490988084937467541418729744340950768258870100526026542985953941143492022306771750081565335829288478442211773868067719850545742260443957661671749068074209636867911548300446794066381501746055926027771135984355434132365166063553879244827442354212510883874214936711256442657567487782786252660094096495860134767031257333188161622342065444469497258838948785066059054935212479900256010333356770362042006308855665343380726477921514737975346372689678647464851117920147403008140360689429810359271643057017952064330720952462773411984859785446076067925303030093383190259975800321966371943214372806943822299783787201410127912671850908011623155578574714118101309660450712220521296151660977695656780404373018497842294314871073353529088794565698536170549764026729034941861424593970830967352893051138764512648671219054475255962958061624033130306831082795049099864026121090668511885770587207871608546062253909320842447233175798898952154639741736268231626267924135425428995298262739738886966964896517801684696035714363385505444796165623574452901595817644190506572320997344807466958143560991177918516672938816983135097077670679639309369912565760342846161181713014004597791238062524517995072360178508903509266341187672463421139377528227046914308447861701452809083755963635771336880112808176269594799379796559810910348904010562318824732367767820932624438398597890479693928481636688532813623102385068814415105477329612417773117746860348927736554015953186960217057209813306477929774275238688962751164209862375435922743868253698088002354692894000520350227398968953903484098443318673983248444827359358261438717266824859487098860939799447660414560896121683690105585558571393063777687813658979692368913529024716083936782032805453776865715305064512053666290716180545056611745977886804031355308111815141333576165949421455820762737251697192129165927218619992806590061547735426791304633724213502891403765390949107754615953501753087310839633498452973780271629129221199366060023006810150058102301693647024021685768062027273468322924509250971314697486965838001369929163447598473753814917072667189558961180901522658463975295051535095142881505995359600421707732903741895578663820826787774909785891624690976963578943928057583066369387157354963112252042326399277386202631945179110005621555623711445251551313520490477347219466086775793877516342228342636890876391270551131178530852829845277363237144791646559556968571905533470773892291638684975621080929295442508111210688207234441182194690632276286368226045184712563341741442610173836039930824558387429558572410738500396752383269674502751854349961766985640917355940487390992626017817011843997013481471783851241308289061696398429563067337338205468927257292640352409254172651318755972998651579654164162953008950894490895495958622581692478879874113071486738657850249685293432147262391183902874764335414995134409884574711393930695656754915647279118208035440697924530623569781555556692170813938691811250668365831855887855693755275733436946528653941638619827522030987673537540127243809904352163759231282376321823016106801611534730437742396741615721368310588561592135459220078288269771091916350219566302573462058432487558372902253331781484091509205228482305540353691371485291907272480735125884950678527507906664652698996282955047598272132344847331644340738283108501967146872342141428564810681729167837595406831923680329482443625482476907421257329101629824408759732786251841100497439354627864284253587488861588327522954233560347626474860579581541906918114846373272313233646627095895150064615313547792034577395761342062990799491462598986987669851104997970181578803083768459455602887758295760493866247594240539454642694829759435976647705322428979443558744822814170153657961906312770153318086661493038372289933856507427556229367576386452376385914885868023278539546932817778381078979190384757481453806489124486233771126515108571025290063214400162519294858632641083663367213035614834332556390205775603214154752742233028547850292381606535549295703925287654080386426053882239819207023671659738998109550695810791648434576643910982932430523258785928512614898122294504279924863071912546486252186211403050604799842494168864459671661169417167995110510503345820594034847866909483557101905420553303398159774788870846059855911852275009909862554379557692426730950447641937756313013584828231787932789627963256755325057061737735513939927330332133938492116259635929278335015256501841200287256748832197312621782176868582294046463421487645855499051768563423565827842784829004702719691488697907298026998799500085948463213529124901209985516237337218302218244816178356788509429544929092565544252437540332121544115899617197451931368545856835401748668650181610734919018349707209745937299372622158673011422511540371999401962653922246346473736053516443205482142319530389123285503180629449053389078895157683159053349549625692159985739578322970454572366132974202846717822428611031601766116727334582819666470700309674449541248803963493757980570431810109814652273663035128047380624993691696328983192875713212226781479948681596903601868207448255192893933773149774246011196544523641751017766187899866488554413963306625191221236127871932311642405261331814692943599848155854846343064399409719499896960518679595166875465454591725557315789377569614179474816858509920968101700286502773184273458962176816538137748101752352158107281622945637884316467344348323694877411811502528352145073806135117877072428474915219291062021415978752474893479488245353087772772577935639965447009240872195386737121943842206667501527245784108146774210437910287923900199016137512750457550207921709864305052685599447145108935299061324600523246765374907868146521380936641525162004666239262980184611162236508830362045314550849396225436445655244308534819041138334347932756005946168245770246195490319794610461096879366771322132650713502460142174585716252421263721620515448356650786811325990010571949925788724087683293140481696049635814943955181349214903329539266875764425866094943494792956511477654881201878798781365458299601401228421929255619289746124985708298314967314244091423197006765101010387123601338235640397688160295333678244673098201128746747335180430193261108550382808220060029857058662413044501904359188157702364747721193269755025955165093792231809178688526682630054682177191469074892953818866800033842654274890741910005483536941767459074995106623186207821559816268923279839858441842545022826105124833728240413503125692232510140726821646234948294831239474789597005427700507805156877322627468044563926251023989276014130256057913010217775899215709776055735585873409788216669954140978839731206319596623937713319821659514767191737618259072947630375998793545700388257086100046669492882132223156050654752428920112058785991276856127817069742380560216779640830260728260300618782845183951035757889973821026460178556939928371345957007196261765401629163571777215290567725768662238468154694947040408428653105502395046221498593294751394017533715011939916421188475194408067247382776021067644562602748669075478266159695922596018274108472438951890137469860901049275702759081047490471245934939535714024073699970820209445065265833718218944147159162227968599136110929905156228091546501766074471667315171207841903759958966347583915841388649745280656566172024667238847066916545374910292215857970390776728149191434031288934973488187954699676345060713805641457529786525115606647868590490859842319260050123933372597869142246682036450707806032772648186481855758971012062934284051153320333171212478692181156258794225923420453037419179598650319476972452269501860347807949739644774493681838377836575778112057160112603684383532884358488143335737479003787884417906320361264886812707181411092669686491557067120383240302709821363842577051849796570874182555427505178540858257814473632271984084222821786599462879652609757055523427416534239453057313988049096272345917847947538707320608305785999595834733014156078634759435832932497090460909875459536778075912586445492973666859619962813584169974978762742908042310184988202980969086823087024036787578295734780521672468804490863498862644305281136974917006008489934298931402272474304813263398062083083239335429778989239931258846137378127424156729110787790390291478954591672277695171891037690075841939167904039579120186731324051108464513799532317055346111759817241182863899542313983559258611331928555723554785467192226041705304966634085335566998860953431828553876333924784753729996911423368814933456391101331670998437161551466067125646240566193866679667342384357436080799663564009282045370727841081886041649397682434803371481416384180787513659233920325940607224620620004610220507160068235054716051882217062092546235060441624244091069997308365944369482094082269125905430199253280976803837315040311035495803547946153428618472719265283802634009455263860242116577700796997136493824462171625691697032267851529847241861826192393017684003153666739074035576033768085532988803330459667566053033713970574198099495649351465036375229669251543366190281320092984247976170185776236553004895422532791520969388835545623906748188920051471360751928136757599861021007555856891524378609762169887101606877357500266083102036172978158286887469567118079811884174383788830619780716803510020557829092060768381764297142712426023909598009188469628312670367682219038832160348570615838334574797470447899312148345392954812036249145143176418585391548184150325034642798522125253411134875134236864181441576295839706778218191607388346805794841089226134939243751528328947115374469523988425888745673713228226861803344080704153966538944238161641056483180000034640237762654874013481863853846909927363796529644498621255873591994183220964046063115349575437435355297707931637636319338975395116377050876735582359658208857124066095751492406750129076970402207233361827325248723430894376441889295272122066675134247947688765874358298170597857100083844661943224950702994894798501267375887901559909694021239657866372829198518966727005274714887045846050168860784436871115793339678744419097622713289561441717001708684902757724523181270268503250963144232245412468691327346802564276499658253389708091577286345821797493651523368156633744088335039624853129245182867787782088295807374372739957806452770400659630019757225927535513626739516289013106407669535053545394033452861802992296194361347292161318856648341501186973029055337138962826267527129529975554217290215808923651990980087481691425107285156629573382327614832689506133962505136660479416818304171062650902488859480296258696853120230669482360990040917789564811711368814564174440981243794199032894135788093617996445304689107334376919408976647354728895863482208709576357553964168310542858283327432444776514882443594370343031560079677471017810366535057857956739629296967421747283721947218225642136578532351389928564639482599696616486705428165735806123818765366145804165310844626750631344787622886334790345775728821376748777556859453710658338818336167320421629242287303468332908825705149800745217952370036345253639270469042965235395580924001256558100045981662954864020373263097534988679574734116861963919616079050886621093744480618349358800342893895145686024332354650965425955786640192368690994103065094825677558762881140449705534498193793573677489239920036875405163369445015436114166781695407121060196980212794759528511921528337527411017744500123459630023666300776940592650555647900473550710905478584400953883255999842496893164986063062201430796919699450624625040842223906497936716941430214541260362741834772014849658262360078365288909473366107566769048802042718323886135820573201406465720185498091136697867096773981108953505335834448421542545366685993638497344244251980557736497109069541617957625307918077888880015960743275722703558678304175099300371049278173111235166118008794083165640609530062476999069523025876147520594446812602167129480224435843576816797137726138392144933026496238325220029201752579679538686109189231277708867521947348472051872174008382618045953716085090954489101216869793043881259668533910252871044080327809043293627241978668514362223275574953792242559755898549470474990585706011723307024262473034689668261063048016501243061372805471151411991818293144643289324586200117556495273980338565581856603564674330524633416724477644986217901900635007622439300108135209092750752474559425371885456999466673016604371790389899623299704073442042297419042615758319580017648064235683875819571788209834538583254922236093044113839567083636481306008600897560342314743106522274705972918662571624874703038200975662895755762270257485348020321088799848176684630760911668445611586971445896289946218867298469340392417188171513338276287286807357975704074011650588038007058617187770036819888989924401588162002354120188904390809296025116136251003102635059499119902465213895486968113013859445553291455266896028911832792330799376016321303399602483556315156756029318174357130888162728667163416598989872588305688680831988906668371976930715986208532954605742285661095792742565001677639210935896315132898526572526850766547104387557876437805541622783180773147294913633011670160594467776267481689460802541139533324031212006233475993703971566464302195650109507567524194144846766563814732527407652713956345141714757198318854860103172940768696492273481631478160867772666780498521990926960851968521425046646515670511872312919036774119125240836706036816588396627675656298331464511177022159967102501626936390456696975717579466479812924741613194272932530698342236495471842955806555499307742193856749355425959141636356553743421902994214845174022682164278791112849046923786499988816535662721853563751512829176573675442898981683720478773604796870040283117006697120567938175580511832997535835207983418706510807266046563400600321265475472685038834905856633466459922614501742466883460567003959959517814069442253409367119851922478140973879486556442514329453419930311036356882195010774772516163291740522479466873745607823297535227613904160859662714757481762050573746300707647945495478024050059952718264499167883579230739912174768758994245051917688827989726977411908130811823889813450246564525613543178407606554434029560345741505938871778107642586088028621633973936465360740974398963255190836093483826065256022779603556063872678934707064430564476203536068836562134662778806639673184532572750126141128789190968059072487005845552428261400500961811743261181324566735787185507202923640556862487245548747882036230335228651667590218563967440077899642245340336256414597362709033463009272860314739866562549360141275247335673539888257370256788096034135422057898778997557127327088204903218485118563472796076267354267130128136762936916058777748814283458719162795405250633521529312902386824847423011913268938526757494650264631246460975492989481237813900217864621472517694726385038355583494342037403561131060285779711810338524232653387173076245975198416965205278144484269694692146616240935518075431986307308337195153915007053978719054700245978074814002322044605717163128559269404537317208781058579385373896084750508835065308956318598510234244328085750149019116585276207296595234442664585423938768093596594759131595083009445288951946702120470384871687682774422479725216061095981213594135549412775990626379469722656414896209682661896883511031633809225860941736354280114229051949650751771886564077014873102082978342868529280007401045707331945173068017220923558701872029073547794613143364040618615499042691491990759312349923158335892285841199374388860540568851321007169878813331480980489180995846639901312367460881270988605020692478486809522153280508721201768569074946518278301207170883815282427948760868672497973778426763983317873105028708702983169012128088711087197250712306010350850468935871745674559234685143527470638123614451746542873905709321791987177471574487581170160706704095180508013722242867028006746917264437920153312356242983897058790820085893208726709988170161829052523997765152128878833551432035804778498092939316986260408503400375469330583203359088543053770862596286057718010471719839356029366952628497511439678849860856303573022393317184669410680618511526808047975288541605776485182820034478868409525172842005178579672683457122791432451459232100161723450430655256911721833832413909781446159347770115160204102979571143297025588590512719776923474252377976588886396372081823594353328804768010133683079780897105661081046693245957671292519270527320344420046956800182809553495480339830328246851081601548435796860733337141762069754488839625151629276189631531846382728942941695478502685164941021556600293227997308608314313995318495177598441392873573670274948759299526015998260682893640416516181149032851442300883930326611767940005158366661581789012566632112323088041399096140408911339523730380608639682968355466292906752145155319128058371689229239728703438012347080950256878789100604823918757507385973842559994791548442581481224897923921987872231061953137704244580511537150718128116954392422464134403434704090007022187442665965593414650088173414865630898606573427360813655432381535536499666873836081385037256366109306732419570085746711299997105017290345469523018654905294982477862253856943477024192476766386983500779311675053240166858214355344239890164826222521961217585083145038171449205326584231313432556921430395020475581671128801466329984835504505897469922441297289292003890163008499060013052013127388333511347723346132524459787087227153218485987783668099845279630111128993827249098387265172538392931327074320240111904884220676317945864469354764746111138770714583702650224348975802415386235688693955649808429607688170975750072494279120393959170127332503361536476410857320970756828008937404211254979965317658993415094872970068090195220378290380759701911088413427276015436557863563520430351972946534533132813688245833017439212149474938367562690045452371197484247453086126430496006090036329047958609524148814257050950493086626593262854335186614356792635070122779771966525867399150485342974585751093540088777935276681060841530272055075410507648621191899662476864916610783335583878148895520929212721524053653770943403893199532911929340298913154128003681443571429410944457194113939838193512270940650785392137288599995062091217936028237188112214648762649992661261633696842807846681888005927222357122569463831475877349831841070002858042779751098524996994252791721498310505994829226279035040738991053492225477933886275410316976178113842692359154990991095658674001977117281661840364302409580807011455996632680300784869056207924444799632771836416738730584663725131184010121874239821317391392672752950104035994551809744679671376882477962438430155764172020284243047677710758987780823276484549802065225540491061249148184267845592345328005997016900890560344388676985625018474363731767000880060527522069937446409063543783297243511449838604637383799305656737391164881103378809995632010992890504493529155995935943355714992233424875276608546085629177459098271884942371758926366142922035571135123990842049860994352212375004674431419077951802630387162449774219643056946180172559353845213874551903449767382688717418183960681166811578732965603852278584535409980755266501180788882945368181824935861374848207602360490169955078965161367833588163028666983187133316879609114376608200505810681055312316059982325350855667306621127968975913490218858376394364918415557265022116500256343720979603343818933358233448451770514323218724046070656651766222910229223752986685394897337854805916382071687798004181550123790934559653225436061129709025225127230944301327916122103666393766074527741879772731024644768979262658948014089025759807436599488294397160283263233530901613453150782971768855070298153938858075090674085448943537884833343489466737961152782081759912956010585320969982222358123174349104991053678620504635973342181919611043798469795405748817635281331414952739768448041918581477233846559578067632630107992015828835861027517299400118321998241615025421925551850184408464300110250104218451710400647939648997955236561545020370530068051113577324749748626112280402678792830122487183203327247972932232365119065672323278948786214929299197446213627789232579613608231261381184719928957118355661293266052068718060188914194437366789866475841268059530403018358941801921942991422442449921019829214781883411549312008078404617924641685015393921080025296585563339929055244566135830384861670237564774901232664950475685043872521971049245543922964308913612972758391795650666536477579706809112433071182492608142094947752511176736900715130371559676132767611229183030867815306342717854596079137434446750172252569295615488011592592094226550103829749493919783094886464626213075830919502202621725111180974203487326050624077926384524487765165216186739358592122409625519113733629548967128064753534156961101938445266910764821787427184994512298430779219011164978036756499660721972839835981217743846931007770586505111226360603983428057177570506315128070306659299069573040717182280674229456835643732106983490368480445517911379583773831271347155363511098875253833418298665705922813127986291402100061709738417332395214908243486451645482452391729179376883793811684675869996902449503211731132520670681672710231284414660412393052863768977427279018676855807144762259117045091837780375238861279510545555153292424049931839565985518293107739255607820456920276722854903331798893606086337825868018639966965339218194843512398180931172721312005896938002842952117946206315903371998307765318597991247848357787587119873315325075067039313868192258921556802065143735755837758073440865984562783261296444282571826484682898952804501222900104482766365029440278105269070074172163614066856657981148302098427616351229050723312267438743816743521537545077023664846209645004270793877536031885093315155026142119710152977206556903681547989127019803258671388726553000665043471157478416219890556198170011687885937965645278389072237713839079118956140794143396103365976061064202456867888908980651899543655423660688429203762747342427288862184396639234715505322095033255805068469633127129744818249521792697270574913189245023807831224138324848888912617524649481965730879293242442029533703507474806569577653110303141007924609942569839021351323589384814368913400965355559154322630075210209674496791305817780311644168302219862661760512434225565659741020837940171970055754453944437011856335882273321573154131444515025059520675143597482343663100314230624134729154486943104106339765720289868420380604875075906614220295730372497884221790315364341121094903233637817350602326688866744483971481721341765843463781598435840526676911566986607770520804047102118535659249745413934903444428220732033390745802974993399122952983562804712449752823587127666938906304735764105429586286010932374206366939070917949648118321707236848551871394448678757138507774435308656227173875814539376136871364203081133256862236162260904437109831802400708520992930006832548753715760118677702434575387023147098428395104124159828614678744277297291685448584725633661145424678428264581062585394575664103274760997883160828953676272087217712519939347463444380002434449535507411758007600161914095727485640825084375306790296751606007852006911401848733510001460071997020509414232635375754577369343393494382908800527993364633389298886020877102149530040073354307901834102494214557524163245910920303739975819717954041286363859579811910868382123052609368435919828312858295181366728157207678022181518379325365427658532270424934970965077992549216602157331326672422936536263949915323999529277614167767549492842114478679058891648875738383803185407647444488727390636791112395518344801503087250301526173805032110298192147059526425001361152880268490615844707415859187516967525374760874349298738537740384837033707720416401723972620649295966925782870338223990814655862463090793514159724322849735389089446931106770990198838626541348121169635648138197163931239262637687515861350088966713319623149854650447553868172300642455526197862679869457739346937054634388543435321919842878605107533719492293270120462561361853352921163262705544042376709647046103668701452918324966123819003456330767929232647461743422775201449600141141108535563648077254501987108338593248062357030193790645190507404746102551880423817977558992275057447369021189785076552471682046066214651803556420740449912920679971550915694882312839157670876979927858422769451008119166066190597626528522759226453159766559285150839227506707345958182739554578650679417057316347571344667606093251516228470481706415656787362850493262580854033757449588860259019924469603623150101138418623152285865506424358912594414300508133418891309433246649595108909717122582829789839062039484853813529599649775544577346081328234059438765079748250014145845352749170536402747423398313472364829798622765957085776013272798493719083500362333027350128746146943741667700231298829787072115947289277842513355303579085159586371337991384001026029660648655439398520615284748181500452525582874604820279283410480302942525984842458366664002295403012092654335360717172781464195045725959868739655188310099652539826253610222998886207689409421752780764368110102762389480925000839999342833968499629955723028051604403018527707050354521736836843778089019739056861936087810691261089331930394438118254000434922595973635813435653627739158878458034611839270096962137119240631114518838612056122259135441538881359916599802489581894462336406206821152555224164331025445608414953462991329252251533911370198257317641744430309306126554962631284827999475032860643434958052575621401368473671599771192257423702338760830255334289628945622430613596399063501928284853223714175884887853503497501400375682718372170415370196069472604174355827651249770890283742979054719306895682901658309749428290244636449969910125504309156412338498554845852446371560836654912084102617937019160212488337753185592872694109452823135970827457395858406006484317109040960579174107108237520285847860201125542548274288437274005707705975407605569823533228150536637009904767113189475723901315314107153926752942435022565641406643774121726955263248450677767789959564048364969714355254754709260028554209541640835904221538081084005542251276096545360918330962674106314419668884976949609539136307097983230005862554219931146629855731531076794526564577249405463352437566353914118513565968896623447489556696375672922777743982096613233226456412188733506165476050100366632092303846526927591134387144266167496108289563958587385940205667828574345392874874332403803974126227238328922854515276146842599909844465025978732350769748282877574802701331525611899914304623268958780098687183562570078478988157474835352129658830739891042205468396218917401904225475167790897408782303335132897509013041603182534866205171683189155744241012969654886312705703974566655650582455739513688295023302136267521350933969550139950766637524588431138933245153828257044543839871893804372960845807412932133471341751973097166695639644508738020956572548060107832652604145361962951222419181768902752724158547456734729191610166448854495441160193269511794945494107174837711097559809217426883593698096944911314340867607458928865902980471816339077814473203226852321072578611248545640896759451727266124069217325122644440917945952195419878390543059327245865151887920041471934236063937663960886994833920754799809101696048818708552755637295065276441929358903172216057898463392964993896399653304019953463026171145619125570557000111963533684824141585638937562647606300319884340419321073924218326170688653514209170066240392686709345970644741989286842624179795341048684508200769880047622194513629127597049755162801524394740897188541949212183133059368776977526752731864551106091007522810926935105902207631906929637846381898075254453902737790997359258572672285726020999000958900967025529644037993470744579674010584811768638850645627404046134092739119197929045320640666649674060218276942125685736978381072159725295240404826230929984261071451678578290973727417905093566865926526518702590926626844681790482631374674643659151889121982755167893245863924740720702235605750677547506966608913151831175757816772066351530588997537782331824932133814253561565713269007315425516954361721756921685038675001594607311991050040418306884531484473840794675885371340816529236431837299920699241562010293364766766563380247661149275631070809237885655605746809589674215133894554057029389129834978134295704808940573416620774810692412428354533096190929043103006499166935041726016099570382615708314839579298535774777129510720774411651101253381756492199449274172260063379242103942476604552554403300053651247677822618235765558374770619111261020907547948119043717954667880737577947494800851674497233054455592400874358437843333117290245616097096652766650879449060887658837088978738837628501601157211661714872889254552175093253695470596084316689667406551322741007868252891738896527012485527918113533529225565612390677579565266218794986277658832619891717826202896288570205181717222310638966037975764444699377080601747509778569697087050114192675243996351373294498812292193451440246119762508167696326615713347897455358518788876265143739385091316725266846830665471400722663548478177226334968259139028410000728304470175303817123920624348402924277349819476566587230914191395735455992368160344316752803507770276406259163205276265747220877624101702981234514823362513267889018564661024908783926262833008639681893433900109884672954190844974425043590864381047495339530152428770356956643964084154985067751935567877665029614624417284295181179777614800445074243599979816577992758098833518460541929262410944827847090126501929393552544301106897517372884512233218740189753724277905362798684272098478578887049759941951553271729344713801603343393024472363158139560333232902074828905600497034306597492740078620613978707147847194622908220383675817705784883049370286743482407807951394971769833204824647906591676587871345844547464403300261362187810370279757762598964891066593116129609526224556366450177749401301317071644283401581549179148600932732230406360673488496190814721606082680843689835951333721337488022229506097814261326819693284574457245960814378870888288483780197515694136804229304721295908870971454862561509880896996522624122525632269159576706577148489837358276016425802110005050690312040181444392331960056198378206403150071263576782171909301100820623887651217084185665763985748404382364367677532477992307710825598042571092188650441556279344044505182404386842247413971956916513428436579735976201987336158272293299883553833541356592661626513563665940495663743465127847198670308981418460850872732861314142680955224531945364098717072290384507838830627833377350011013097141074397320086909832039569063821518696690676471655616022402097465489300294639767444536874445228795046364954088690586167443491266138401808652452345009628317651059683468715844811047386679289441462605096066220608841425586833443847154834455463288340909665847588300305533194160125179646421583149606191826397000412265119575564394183047079831627924792100111760670972870229387727149477837983305097949967137994994840513528470202127903531904339480110027678450743880381510527267127237439491071390949261802786556982286423082719661217994362054065075431193569858508173402827334175227434450394403607518016973116282143704733889118975799336360527654908082319061897733097672626161702083445651160184217853733164260669134377636778831410895429950101241067470797147460134639640946398818499976993439179523320231705167181841783049552775404489997507037168054469819216180893238862799613196468648042984716986855364301138508143483785125428979253698990419590961619688571588719561243117522948398715774554785961759921720685100519636839259412077468930959614345128617355567211769970838025136746409259202032266973572817426569667256266287621782252703069103681293818679771888535178837083800044858648831709272125727486250636805559956859399923988537195936982338203546330722144368063109126162478106845382411290052362670268869204066443921944787222547552172535975978255725029301886448020886273254458158422914626889964860482630293570358656408924373395005100361152029134186931926635997858882250807913947162163919861787430679031181412645039745578413330698536204791223036148894869027150626530322056514839207308179833543024343914190884948469025184800775902418988003216457172562050677957672149494238797299802438396515574584245117630622632369610496327359447118770120629768915233015737065357527545413236099506695131351959192403904444987882479432931390158818133302290243865811624046000586274197150107362216721446856952538582620895344612371325045255857594911280300478667501904559138109551251291398328497351796546939406564400656949169021667834739015251206144464120046379953540412211342560982909866438518086943867468538613654731527195148346738457668053422097905729773054423826550511766423294473652934250420802665359816306246425017440287303438592298254568976109026853027077662929433893964981724550074102793152790884850453201774460681890674365948939382197997174636738043082267350886952841443570260040644969016934108916334017675076743442549785859683933304686606064563143112800857754285677103627247786775724169483232216334393257603185356905002391790100561365702422747557098489837417894980015974726749424232772098788447646489581282579962814236515981186264761252862592264495580017327373170087834514410423674670644987435040564096413624115739572596758228064328584719544691606141999414607777898225118394198571709791011751324556874253532390938815382100118472753941079802607523799991723352757557281976799122161520411488051839909740778352020006108118135478002869452671177467352610612723225556029983215406414410140487818412442362451882297961909993994361401511485067986926912403663294552202040426297124753185705617884265085337106879658668860405177330854942072279934326000032217617766183411671608665346311897206491039736643265485041598265349664476007719260782426716443895525817070108498787097386387849619522051330826509013466342032757286949804760848989711195602546740028389253993578986116793393188687077654655847228435056292101798020565891856668481260006658365091408680011210502913537733346537199816327849539491036898491245447160423869957577360817940825921203326946047117621077649664598224658013239508591609344712300312350432669865953516244876473727799740999297946707325341916815175821699251285039073261472565296293565903927695744195856350782965700760063992914665049312400133418062506586931811187056357681222240053983353218993345843588357757624902586779976969239297876234260023606515578818972462108801691638118433110014970966410675166075590718554430746513315770933170625790640430563984199556958047065294374060293906299046929227915574448634229642529968056150142985999538791382141090822717197927919700409652786933792566332284414859186291619408425524334620328885423871618640733265419333196164204307456148085750714476248286875839431939300037726996531947358696878023902892797515959771404669289108411752745073281371278823225702758241504581927295597979878957445605415970846300346083944631467504629270038941903930390849731918801950113226926010850912507675475292831752228668773262009783313774465355365331621802526919833648366261981738394001347636881687918755466220920886991348177977020776402739531613632569701053568461204386952580486040909936018767341406363447571885542352937826651926681751946723525665614705103733738105130023795318586690205188852930012810365079996938370914188273560368854368527964806546015411508792554826108943900799836427508653421787818535016326233708911021194417412962790073439388847220144319261380621561187713977124069283517147869374957102488539033681336572446331954131112660488489907819854171501498509206397292203459502520010376135670113951611071587020243954569402039442452264082186153663440822641761799622718237256729794868196372543142367618473950986311466460841481994502150956688502693478288353923484519933946783900279685360449676991219949486074944482103033853404491117837021911056991563774635211110259528911706873405565958054013076434875584176096717457781103094651519990483682357637714753588859828656564838294073415745777772699282311288025320681689539751903948830919866574634567214392419101887548146588673183517411714097561871476096607196028616189419807605266839049210247533038558923186285097992222321015243804939284245125200986170714640254909724709197854273845252291160236757294258939151536626394911253751120718366329307546568546901277057801380490909326860443483309738139825555566407764495262498534451555055134791212295490176687782388095825535911038236072359402214759172663838704198221393190864490224637934629835797602349785772888870690309459912664778249689920328106343095976442913721621198524026131304924219743198119484472046391024947835447030105095255121437013637835603469008192058427220087789038909481858139987352439229630421423285739080407754884972824049416981590123750793330687602106698483351062280152525613658068357466396343422026996493121364155878779222435362871714238305204071563141782657277068034523591674620375878512563281206862812917207024984078174500911886852669794462179474343961359431935538890880289340638412245103784159679569639320950714801608271711721331282040133906485729908040764582883372339453220894878368638943588802753323631021031278011753807266543603044297315626061028255814862924928894563090754650916780979416062184693867922486083544395371005974938830540564939005590088349910488406887167031987918408585744290213482079070227514773852131016859217767950099372539475335442101313812057699112916777154441567600976851575407449451931616342119843520820432369088231663018434762819670050503085666964056541755110179400724532471102933678513683529894769997299744291143850137688143309933193515388457011000567520585003621406734226428535398417011858088705531688168434083139576687202159614883699144656242404221076357314897385288083627718286377516445145470389917558428311010810937108562385855276749097458735404109587561457861391421867141145491540072258182233873033579131957706663304993059024396449888822560265260376372616175246431780333764325408446279935246046633826543398554930351090184770723666326056581474491136661418884858074010889828147794453425247234402698698536015507206831575648474104815615095993773375931172785238262011663577752739737472687481152451477265095775278975510025939113665563849531623320738885639898234349953989786793565920049352170994786369491293117666306966497740193963500167157307699879232864751476484075635588751538733487284679586070559241938354573062604782259878058597394677691005056734457625503614502624632795262926441827764992684175588153519905376904023996465940178292904118445032207959370754822210672880933159962686646990554142449120807240458051732322680849433609768451108232101144682812294217420722505349760088720599568644846212100267697474773986396010232399812115640261380950733471774877239844119265367855158968656642596815078246115274582572419837244885419094109632811148109456255737565919910654445760363907154379143508118767017940304957017656984819496201914205167006802318452562922544953947117435784220249975530865144262944834103692859898973183187776989727168028095698539367143419796819360757450555120603347507358784397984230161510999307419705953797247649772683796735009804195461615334652890958627898393532049933918042330140739076393299315788518047245049383232960101958302174992752925637844730493465950444229148811708229840309689998067068911052725834471343941114248045748538497745449155625788805019400017504866604995785871151607442675326101728119801797792532487509111355074874930049186456642624252849606792100581403532552641880123676741674318103415717745630095850711360743043765731276619266372613888205520377816540528522021390035275087672501604372818571693428786135390670644021139813675285596704840454467471913027919288886061741019319203460773896352046016321877763183313560790563031109561304678793974947538139118507691567073238327468609073058957507093928024016102576956637133331111028105300543838729334023213972331458245433982906074892048231380289595223960444354226745242814258344619441620049934224207676985108989190176481334233045687530111868217258943331080324737896550510598677355296328997898769809328966373266448577835500711971385882338993567019133344934931474614548080146740515570521502621552492411503420921712369641552370570801499773778280678037421845923017194252700813038521897700695356432621721861912035875806521285399254527256528890603943368477922693609916223836354104488171064039222453613729578690373087453152223219558010493880047810161574813957760282309999789328341274455602410802674857147702281315284233130719813882732707741611806223358830803691983143778555314726988291948489574348472242530300356732872969080552925685782942398706747689011412678319193958009952341076555427037319703239562510324470848568031292946510519542270625593089941686374045770410709258413491907854833191643898522888923270670977649505402616610677676475747610210150310884903411816805738886664947951715545988565323151303872659990592109225517500816332396090033052145921007149502990524129698302950140558738924262069981055083094479001301293275883125739801006369124471883220025844020756766198524934399542274706920564572251440400919520053050326699568659258789829546564642408310328817973295193754685096298058149759057217399423981618861201710633729012263809296884272168024440720735589422640270901257116157424735722432256849558973912482869706075329264855866713587767746478478655793716765935441339719397611851686564565356468523548289443996117049094681125725973697920724962941421238468156695880472067141429377845593642254174389201323182259996281921009606433477000498163118261861884957162060351239618224318178593372534397221674281679036829438977119231490975833385290735347447666065119199907657874258509892149579909961697849003883269919979191200738267984630343254085597077524364828741483302110404220047345888352874656167305598256281301598093918346551632884853439059933734428007832943964817283915178655588976377733149366534581889711061542370107300552121153902173928376380105777831944409569839003399872644480105547418106333929129010914768919936054511542564375782635759084156819230783772550292796039928731854391772234595855479191218148977283557186254711971387354833500066672218250428064582907232648829312375980238801646872330280166629649992827296113431833021300171101908759901763147702550940344165082087374932639758374607533086330445640107403003642261679536641285981758492372687046236742311208986631946558661078344543719733777735759829254398101582515442293347256783650635577702280343384077154043182238135682897252158546554776652115143517484591868506041342726755518421553523350317045317680228594487966617248404851628472994373728369252376259529234793578602161918401241765575510178967025943325025594394280757221091618231513418042415089304477339116094824951406086425538303407124885234614599014482961470782933511297445093319036430182115349095535982350923926856313457006455261218104605877893902130223798520037112581109522025236542486279106210004538740144280544075606083455933604059042832610683546306487969207284720528321663959838174303232049857312848762447924619816221909863119978777289024740360047115628872968143469108323161312318277681757995692164552074461348237604697510566398168109857796782785141088386622855689510110407228669753421439455406361128576373775324945303967690148583577075336285024186991492515939679966904988430270123733428405225224475064920548581469852214983115954815333718364437654867515847529011459888699693931082862801285216238225105326345090847042999829824945469780103379084412195898585809025482515311757270187462301714944273370696029893596553715757511365202619286357170870908437176913567183875398302703668337613141899716526114238930520732587846710513497121668878140315363938834958396517093517182213988478251272840283166970493890635021743903447755369562588897997128058145158753436508326375802304609728354830731839055857542325902888978195176666415734389626874025078957786693402068897400440904187414545878662689370558251974873950048002248979086273038553013291211786055800412653338761979144256201553863520249502782528760555585660049754213793997241727477933542710339494285631644491420887959625422717425667002380414541379097664921387080233865182115291679694288571385354424293712568218456328300481831491890774322422426029837853516721055780863473317353922740624031795434037620047747556071213609558199196501132062837873262539309230620474476947009227618064563018439022981213346278404317270419630955050267995455530989392208306578752370834431976030367323706394109447850350372018734455466480802393025331342971146782211932567470797920416898267900391986793772392117652214013552336788851415050967931661851566675909577815581989861460925113307950663187896939920849945459773834886248643788107199013553364074803057103463726033379487435824138795752511168646656414794986648100077328402321853828049293928901936481981817122736497598766340139312226368223231765552892395658097053663379865140291640162572189557267699994606207645518916698397168205106608839955134503919896883400822412442255642362812287944371817710011396026755011957809392245229849867279905483061148940094437815500477606881078726111550585441587000779635940456722810280608273035422991952962709114876654022231410180947858372081448847418323492580361275703496195681819387801814180583052652074376096777460682475609259099703230191750895036896511720664260871512839084892388999953854512523849349414621491793811389152859156062162925101078850507188184556837726436799244441578874386834034703833707120580478108558554569136183908712755386681329247469370562264951905211495211236588929112845251106691448030196025999456052445146047468659312543093992604519223545786288165102868033293614910176528882186825918294022804777199043186531236277224620482988730316915503039280985036974015911128732816554613200270983776530252347567516533180642142726375107961015506986240476591574088473310110842577564013015645180353114430656397076261043629600723406033638966553522176301065951141519078301942643661685817281479705747565932736313466718270076579314980013457733861168719274832571458228593381494402916987086596686384106391460613967373988261345872159216580197242787907281341729737963286636237957601066164793089058845545415961807102468571582528153726037860001769028105730611782345552142629968905378609482601742068435682610759723891417940960929983954167783122661481602732946034613629967549032603059173459904816472420672876442396634813494701333820198125330787396051004174768391827289407595565252177671409328417293605633211257613660273344166100808579145186959220682865680763425917816337973768633404102694045034414451467474604208245155773886968602087748472723675647347287075906412289201285878703082088149871627836780468167170256981053958496118674745790792898036540071726232070472872520203988039428426290803635489857937274604939044156778828181339999513708127686152069886680823438813924054069325184532200046471662673404900013274528595945941770641547727189233573174830280249004441518691831785855737846782075225564681310516687433029774554511630092908445820545003692501360516514649245300303370552672332707608560444288220703506720560723385189045904569984581525892342312425592127446004358693625433175492486835580882826748969395991959219020738007352291523996641632931001165909050619930130696924835701974984098941901913923486636398871584651725383617862886822815325377148043094256847615905122725030685910681540138498792435091854368249836248113057257239359929443884332672509578798314643726203701558834508739591831650067336746656693285210046345720754092288832989401577548324069917965499399405653857771720116723297348077744669758652367127565996619353167706569049149537684159643591350881000191935866626954076555004746241994201329565473241348883237016598116547780790684553679979301043774697095036887624063889292241010345899434866898751240342469963045905507330297585422500118277826313631607402671361681607034301191339322182617695306313263783731125878971247312250812399351986174090350766521830145629061835296235901534180815101446398877748885893545952992146870965749169412523569623868040684747682614787629040054617865814873005785277683908101220305624730099575401717029039854207535690682680015143678120961294306840460578730177342484344900434921159971491955102414301613889297705868593401017537646036855226534458788953030086924955698852995904773265135150553639366115584942112309092872834867852856697907791077909508937507638574981535042373546049343280877813647179623026682778499811797137679905610209511546833822452086407867939226724827970822794306099164199552933028375095850049390902371740608580226668243934219816190211313815885243576116704227694688810808439758414396305662388372899529585902241888626741705799465389419275071046820636460766351889664558203107955363105641980591945958270673662770044859848123184279260080679292884759422217531034067673994137694367555112461100798379746370244691375356030486719916463535501022454072793643991750502934562163484501779224436273644502929767855773845623422727477917222567761563970433574635129337556831518057677002074400669762905046796188530507659782138424298259710237677905608594920230909006543371866657652307538456067726657294076931071635724187675601616296003718858996940143594394304951547029938320496066809685854950830565301813395631887824548988920118244480997772653169109335762204410040145250143176960663753799288980212178693968359810310272631791029261523051526375475607405937251678118529807509605846632182280239401207249308641243845950965302334541335471185012836235934808128250977240878163591535655538903127186598365450541925762627419427421578907383474029999117317060975569515042520846843876418092662593297701301493140678537281996370218358866331548134670407200971537846160177007028445793526362575603297350941682309612724733695340999978016563356419360839423397633637731706688533526239447425761139788889742664848815751227131186758910754109556294067076185785095869639468089145287059045203095264525395557888726169959687483670942414777127200653378773267858868843010869643528388391166779747319423977159863654248514901180666642304849957422843522726230490255110987110392965021101277565253635483807321454483465987528225362057499878050804656297597352083325489382908971406364015325121353711654254021040087367391699241595927068671371427519839990400871632377308831234479592890172658498733504089428415960033550152623793073091180144632373565924231714146981970373091719385139588080825806505453984026736609007190235467185840063499635022580407909173982622169480741894835986651040673423926266516795623763494651579276292765249364735524232013371384379951820870854044068748502482918731449446005261363216689867055206474749858519723589878467612033624019119207435426907951563652137542234100228427586859873593510360588867813445754184542257739428685141197926344385818309445136352323568979528022475208485552027240093350323261281281181089034162673981346720913151419628454910065297305770168819774199371901650467470955299859295601634412407098089017926254105144460785455626690444614938540769919223918941234651981816937581294034495734631983012501809624765373663349496274408428569264957710631460749983183494370828706163143270354739244757781146991369499439724498325633274887645186071880363903580029487451791769469368477377302183855585888212137868493301795557520467296887350555934790543481211585769577432441151073113321338248334030664139948815158291591316996661630524034547860655507419630170002323214998554333956052681727325768987374706819964601529975817222305137874864803412659707897558432460501653412861998828064174863043608673610382792774217841994452248056049813287126239116215567614229943510346978972117726408818823362125302790220812124605007881697444431930200906633273491411088135817286766359328284164457295091206097107127145821257138410392950985504533458894673848012851111023865167695819915642721596646593771504262158496654737248282892921245439626709655544033253662223965900874841967356581677635719894846581593000186674541812265263497260996952397279450372572268942612801401229295590354718299770394992179075796728822598794488227084939647598304620344851749319341945336832603509304736021159132634107239065507367103135655195429220268163965561123823688735799607791292506054920260115562748423806596141976679425763325682527821014947248108542989575283292012988215775400738936496510063563540070988276233002926229240162873830201270370616537400778594531235638619570180338981305095462885781646273286543193216791328457432769119949545585458455689331687346021913054604893265727875706761537024532711776466499307829542207589109150064433301760998168773571834221494502994171452044536782393030727462494410863708155948292558073398354871074008141727206535243502872127564321158455533403533177836163687395418004646808458650327511022712570569062955701613374302194547223786206838541309822589334049749566181712725366605221428203180435033760135121687038834338215726473184159700016473932822894288842430643626673492769110100592058911670389973759627388765501805569747019665026351270150425593800728317826797013240392868381018261574323301402072202738388154354508084457322828489185825887691820641364012251455945358525531747965574644352270165945695966363387095867796645564018704420942714591159919188915664334352208354820672682704787251584186041823436388224001124709383334105825757408725219800567802704012313784266229213114597290028666810774714266292758638499608198508280773910390973637058973904789310117809599685841413788071400756263716415987378308168649810554582146026655515101632709539261780119873905823755559476255274175930837158411192277792068542823477756495458139383055028262011770030008348989991388737275509012806075385344127414747564227718330174435871795331407260617194319630635135989823182308939424553129929594210138081503508817706139644292687399333739087725836763878885592990729299055346795936867635437204606293310407371437677857678576990570301392301701586299555179782826728273536401632582954605009089300219115163387194055856469293840854341973849009663487481584857051348969167603962853085167684552836787392508609740966089033271971971809593048029785111797829733541121596185579833534092560602127362582544513915302120911675328935570530406889279436034582818521927453059951007746025228110136028589371033095266331826989254363277085058140401753316728241526582672769097759389063297269994388459500317730887316913255002699687847102333304772104554740754014176094048997320381229611012685081959040216267500290573731534058718380748875039150735893772781994993177690520120404731057856993925154404510451621546543138322770772313021878230261696625816545869219580292691680668588841360120840077547036456557347458328970178018754668259790885037043413235791732964098611845344206208132373003007448226254404447794132702234446038761903075868902558407952580610938928004418213838930826684505480367239154390885763295923792579492649265895309334961489309218429693668130321579566781309014248783162186543511138510218220723838817979738385720427687779758593977727679669285154654005728926062156897210106462377053386809790841857455983638537224400658862217965100919701799959614165307868440360923815601071689920667093034814692130703024151499109918739637670353085772147580821888755961254555758998591434893280736231455826406495194793529415502411588700352412965817400063007899739761874742631229610300069918612277336115931159545280575939439397844314162865429791359866725832292590776615781202192420375648504679167466162534352542616744401846342684026451131774116962571932479595092379876726630807420987623051887910523242074793147153931836348170025221105630213694974151490211602165705217612503236277762143135405861933582957308625810388356453164176225141690282046286480633539953387030444192874476947134711493784592562578645076694927825610299584539362075927275693164656951001151950437875186275791099916856620067150660328953427391918964256552812013161431783707947792930902558716210747513106910897971127666729878479339212361386881824184778951450605534193762662066038109278874506040120178694112157743117219109728186731305817761330935268511201590561314738154189611300613694300399300708570693064755015288770733725982711038434169872338469877684235688822183955632191833785290617200669079243755447847505329148684122527164538577287445542743284998906725934403047192176552590199981403506384303162654835522982831867871492620524322469928349935765204855277521849458493842427426017156678788993782858454874230862532515010352417937593819184037588079705264302708938606531975062633876481665804893596304451669258661874743856247667458580505804702242070674706196862215906166458246985595164017927622429662810819612119934291333268224652384018017553378542842423979027270702251059837208660115458349808241212375063514280111714518116651016753761804695997759330786823064385194474550024637552697224952198143704035612705058870372964670869648704190895451946521535912349198502266740380453455256600978552039106064946793924932781767357684307909382865666493665275055315562372463075039948596608900166581473497221537622231081708749881898326743867813963174401009817644956560631162687202662308482840918790558659471081500664346164807804691721847640505770163319940410439512261146615867822280316059521235993712185284791170048164566618168345834520216669663374398623403023629110358415182737027249005433386075002539117728977789516404828843042232850477309235299844539620129674527976865522731994212174862364497787762358798794124509522955287348394883225258672858125349429663871083094545880301812151598111187534543740430095133305632460289231176207886418295117993819560738719185640852060379660394652754930181978308367458090451902457367732851958150352427769638978833736651408511512509533851523433552486375507706667812274149805892301593217610840309756326930520785327811215669880795391417443845717968901070782992941395852538390579804243067102868769625399057466888017036096339339765277896742033257749363462253767839205403493211010095051867233403604424812186859553143404274137400761442379018366977396385640432151488064275481136353934790673289647420611008381196811272680045907752854741221357960478820512313503621019870300528023367267082357943865054346395270084829862321135475949943295031093267418002187668365340472258717668974343481542116214731238384818655464313689177808716345864605910621551338712607072403202053512717505596471762099329480093730816386054644686048210944074399471338850023606283889414206873278277655087918815214779952207637732181568651754907938734375365737657389654594517130924490511059631663284009222757908663275613932041709353290543664435759005595634495612423848567304670781498592003054063358272945198036450895155093302348960479072954773288182811962607576295961158509298715409549334078999149099207664358341188457463579629493557599222940465479047465872247071456110763790776985954616333111256810170526233620907678187529383456390105056413375149738646936234332157641747221936360405276968474346226267658258155823819975175891649028361793667643601645215796094701665035300149290062361196725698286909774804701962133859427931351210155243588867354471110008769962285677265316406689897361962334597818295828361720880734603107801512452986324061971185962673545131194194725945502536140171078974118185308715564227482077625335063343976010312140741547687817275061985923323117993101710966448725067328091144494654683338388943167272388785498342664755865089248096997718837482684890041793383705372235151266364692023043640578896459109206181334194445062096622297327642316841762156862139193300226186096171041307861228220998523933721539856861666118677102610732796151498534571588368502595120129001919559745710089027442156101131828778641289041082048454604306781550351378845783276189975639422496109555386817087609130916891216879297862783272745756389039475140509079166685428664545060560664774685216119492611897551471298031169314642701468253974167979314224019297002877020586813634402995721298117921528127669707034410203192117573468166898049918001459276872749461375683765764784794684062231724012590368467527372049089074358549813107928057664230875251179663905475945047729278487708864344066281187491402153327748769977283884636966516288066707184873811896770910722402479430189811329249556056815453479908507524511157105881933678724293217918790870494136794255455542304813378858425261049508744456282996246485061924154913380761583193964863874705211562663794195879647636778119564789440101005501421809614043281711019567460123150725877702362390780110131518055121628168891575330161815313802265560206714648076929334074329756367801821794175535938024610889909273123839464495701040758247438239214262363858132153191795391891523287883665205236716657722074909421368170242525771187149347514519329154858180343162781471750343979529933758507167529720268753298783676745610828502967584076824298941621060655823566115454488437479788978957580578573950845337518241877591785447218960993464603205649999383586963802786176856502260018877525618936026415444542667038449363771931581268227697432554004121773995180590415417998578682782274833879962532469014545688450085836598040466856707105490755926561024515932834242213608617028350183732133103932862810300174216343148279437558195334834034075845682069942591289846721614633807932143742264273332479126712559832584863690546153144832073942190957698692196655726350084384448083267980994638630896269046706570537125027541374430187513116517877486738557311099776238815753833199132820466797026561215865711738798252834260268379482531539403207392068605815829480644853887676516253135874789524371783830103409024721284999824265169196031180124173049130764831492377981735217068194083035944089389656895624324072862148204643861953814955943702685549339232477201449951937219441966816810429302626378992015861139198754250603314663673859650879795987071613389925648366400514863340340915421970508107039087407154429730523287860794063198739843327628665853623979978329281456938041032948778383056867714726372095682490951689728051798020398641317125475124996701561483704476037860203974392216340836037782047859512003403638474849429390805151973168009292097601097747037324440046579013399022069496440204405126901051091327608715993574392434254043431418107459297576469923682840107276157510666930842616802269306184823626100259536385692640272089310533971312342892293158637881730087461334198741133846776399993431152504005345008288113036841182523921369342576912161340283866596843471015224900133831289951271331517256214931245499407763675833326482829706411257738936640228882539230419603235969626278751188514653899990811106196083753116627146902008856684300013472724950436150152992907951175230723001141503257176503410545041987827335711914736487940701615577775870799477034915982097312876789797629681647255279936973706558953231340053053941577053396774050839325948867988638208152438708831696587709238926044458996989514782321220898207168188166992309802461406283785299298746355213499943524399127287969798330397562887641049243565868979911205950843680572846974970041962701327300588207720480835979891061457785081306801889851431319065447559061243753579589639401055004211490869536499878187760622609457970349555612209772562129889543897846004672449244992334255582761018140789441123030131230527363067195343670578562310066506132354909647571788213181801339601950287452584140665833937438219288261576898557407828371317270443774211608975863689509458317732252110235866684700720140233082879234050220379352127922385663671666372267931746689811790733236541432417050267565738975780479702725139633315198087562030660241746465280327383945365899266091706785988724484047834941427126329082583970396629709972541342064899778037598130976624538546746558624023894132633410200535850652546019964659457513121971052771635804434783637470489778163298601172157790400996553678421901566579880031694496289418780903871678003316759155233840855734233831196435149096261337057710893724530000368367448518638075407520329826136994225833657114128881157561992007567317134231115960421842222652910871414942039698554802957023428820885057335588941347004033058783166277756493277540332115639397881334501981957409647033757012578453111183622427432028268530680979625872835711433285520379359025923300456040609719515935758679535833179276143717014735854907457247495329757588971622208412890596656451911016675273003773052037742037987906132887822398330631921809253957351734297258469574199034687148052244312566162298825414016069084368133420756141819828984834636651126698420000108193178600239446000982737596712619779305171252914560941006239439435502929484717421342881381855456624514481253875815941964931813143496383155574532068866911712933914623566208409313437025596494043190996348499003431304603773271013609676128136791331140197740102156948980776187871611292569838007165594393283579586027283034411804155447974923786483194985696456020093136788589075388674325078343345040766730541185795208868269601215660409759837716881876035717327156753449859471629501971482268814259330564849927246370889258038636898593843367875555021525269946281927971032227237465627852589558266522440885588506498772696887578431455261608576292073653963968353115777518950858942436617150521879723318030161816073118166503739045292338407763132550226794080190322168707677446649760548846318480507030774072955524390147404498364941789874806399854008552458106714405565518007424737681619808206079493474383943532495421196554914840498943916113107609589670864929095315471516442543314882295652026412296318491700220474693334387846016236997038785898842549606236906290890944398109692892618907412887498350769117559229738196813049827960158303898824480987975785164559089303200423755311908805527404696182154008084579621232834668521676594186909095297831205343931712201705497968137534689294257100506640740800632903669672481739437871379032992330171420434310878354177786268438992562851258419744871054881470899848294842990153489858072351572747682770923981559315796339682375299507077544670072418257346879311672846577479619560377614429902185321544467046088644799585137854860549882996193278489528099449721914391571468366006476230979548791263665556143756941422662824369264955852711523695291941059684359167025187885837459016159227896901696838194166163244125514289087577214797399800247835252814740999405871256235052328395119980051869670601168064649809703823783967797185392742095694972635514208447701480764498416952248963161636733337023002122323541315318413082870221707923460231607331267987465963015389813419652947346298714837074111058668309136649581531944002804772678000172287797869971331108825127548391480918338442997120750644151744548947105326988688899505616945351289205263592570014566391747143773572571597223486679133507811909236074040141314349640112429326239501937975891258932147858971895483774103798645141885190511740711454972288340080662604470895576130408779285011682154448668270877240931636295257102160889981154355571796958461605649453412023657563914450946829482504165576913888760806662955726555399842683259553272535606843887736468260765093077968787562739428466805405878852949409295976579644760063159415978450428889148739211038424350699634064535305043768900463987559300588643543193167187011200159119567990512664032025562252448689439066776596591552268633252402223898094998894120215899869068880433531324100737789781209417703085220050010173541192869529419636161872653103485692165854195831867061286024737663051371312558908676892809672158354009328067068473560538318339388841457992878360634341766181782510015445395391673845619586173839806376294115167539303391057388437713677897879198568605689897883251034328526505818072909469289494118510822089697151340245686602434074156852390575118867749139981227021004988542898740803875679654220447178253722120821317084365614742115790845328587901137724820496879318916860456717104705762460734752511043441347611703947968170440741477812402012792319949661109271691546430060995081468646203668661484323489297980711201481056179107645701779069917871315257219225587534356342722634055567477781808673340105716569659672217011701395929004629333890667961004043639255126500680674339805202907371947127403395216600466915525964323067226194262184704139887915710428851746931852209645390652279906731136473823292210351818403020960249627228471687174633936772202122163629210635602320163716016959304843168007061763390198617870047135000345990637409645431882553882651267086310939516575610021090433401040967162954816386478238613023346105605886547315453611520926471199143238041834782937113982098329368342104312507698661033986480601727410362320634803901389165115979104926396291625001096535333113630279976520512939578302329690106542710820389021151836780365216180381832537641494171143079630428362954497517536043989735505965316084888249831933170013220216714700100589163619346928670602141280454641416470745233808433047476712506881648503195808423964928474838524639121376883703506035636226949684839637926275362745238064440940471380645482835084478410361621928767775969566811340095080434942359550419599588439868531986842161989781379002778743884984306448053680976856734837482075155825162613752671978982093113517279459551836891592498244948911843410628315736837841965878886370136946435733139681884604012721919112053134345714188336027342904624273673934603193499545535973301067205952686411318065070240477307880613831655046766328770478711045786951721109822979274956421405236481358768780083725702795487125224280951188973754912289922589590525294144954818773307172649687695738759549678148915221847788209992455622645307643239284088806868575983426112351046855208948293403718923413297581694550387334314668438754228109130881712281150441156581396110393234141242533379836248502664197552996360662390881410573864771890139493910727267528708056947179751905913074063423934841496863627947661160667271714631172643210958476574397697034502710570499720652138941261944665444630919857555583363676691157144807130910497946495727057125395449301563228049403592372963911411107718922540524890558959800383362721452857732702732137327265496333191432190943774397288189344233041124638436001082263865328466123602457322040403009290637808514229972423734144805956403308682454054562254438112543190581071294971592160974415498971547427121329381307427689901912616091705323914342894884426288941809868019961021118950452568248849032645126704074024227754798398374783815684791488358724946388606755499993929541964492852465068149523699937055569857685713334324284676827019747924852373944622919103916621019612355072289747194928254126357353612137036539379373218438012331104059975821942469487058379945261647004313373243738904009451790375506802349215303004004962685527768940721972757494815614504463651759883306897957405049878379968512842696395751588643873253080759156796135834087077978056476342139129533488881027279303286618631220771200806777804977504001214475152849329619033478446435044724360981511834870477544915380295772989150368231275021654523253160795229017288244076477625575888656132755147045648329194164732609052220328365391677959637089803233683968968392040488511359717522036309349513888137225997302915310556960819012486252999663960146264345312051565623239015541791388353306907468317004017124013009965417590671619037576079174792055164616645559897472099683395919084575393775154243198839584743878187953871672360149622225997911820271027363387516535118784382591577926192118258897398709476694005162851977520087218979993590667929318388268625470552831470804676575036342731146820649415060194866330101497131390371876197161295554757210548296663522899606111693820170240831531624172490408615725437819696648016623131523811881177691699552480452815747764881968407596455592873927409197729908317456367115497977430835829919207359324624330269514089965387996170602963124986512984560018502012724294434250042695051161961078922875564340699680074413515947789987167619993024662889126460880015069942747139603035770127986292051761837353063303872542928996982093876600577401353760984172299666989899833143448763476214362158322081749194061418307396013423676774382234402079135472248930055011995651955244622958559847175129342725016156158720404605984478605969123355036159580299188677994487979289229415835919409613606430076440247221595623564737105564632757700916918338391034005840164655854227141550911337256099299084270609856473048612104286717707867606196572192722524213419713261094088654792952785143752783713630553644471117406787874400700095866898452474141495059271252112236221870008723339747583413916542040473540621259538927524503568923959396307956724230361581094625396601585672044447021249412094019206230405382390630660597608640642304353328610773030762715418685509736769613622404999227353077700120519228338251778354345267242568566372698975076893671427485690577164034593063370698784299527957347897954891804192246281688804595155601788631213652017592420814866057631342580942568602838610114687165379076933316990479218532257424104592550392321989300328649210868738660734430186344600982501893983503223399086440864411399001818373589231805527788888119464731062975806513969774217973088416980500527941419459319489383963661558361274604650205057843812227874678263668543705059248069562153944754546481070978691727603041235234558303883632089778436893378981923342982023422515600607877566667543125681217775256159118129881893766547186394360312335377013584768458998309231270287518385736482955920544559270687442717841443101146204877847215460626420483288693155893525710368201760399062633903709543300680994503790154775149311075895833639632940442574599671420111765831493788799669924870047843024468090109410068704517082439896185485950402662507444788787964059885306082519563491851849413456122459770729772277552565011017912463710721662183915005742324822841527549510644817874058185713280175490345305104985069935036443549826974943651527966749969127028843908954628647686211424518022129698186725599251603337978696039219470679135820862246208032764609738050722790119199121636841801127111695845128816463517287642818217738957851584278879401138047466113477650883468371028969715682540469501157034504451676543462304331236527456075993627386352420899185164209113287715719018705287776660912112860586010300536583176908495522548688627684679811554817467527568009423029782308172939667734828145089044158472680876267478378441059555442219164325880511152330135406416743232808998630194607162471682739289134566699234844613563926880990518648888961070311856210703713742445602353199045759103488036071689260548578246377476187914853211702016548325997069012165443326695112980131468947570679413411882187259863974225495912775957528157527590440164137636774906588846273330336314578464722852129946148863671256153867939191748419736869994487245589280757028945849034279576994578405858762234733304881920815707642154102006606341141540893530284824661994607941461424550164659564067756233659668846145518406426582900565006470212755973277496742407132850956331991039981763606552142019646952116055904497545545444722981952672922927689423939171005424829157653550579121064152787246974886968361037819636809338125275370983521840353277888816808599601866180920685366047882980292842593584515737948149672062411947251671326294105654603656918366620306047440507181399553168763430221054155276118569680404567215982398549616683311935661016218970850004959809013234794365961181557047546671692011428169815449125567018178525417712012329061302483519398231026153919597016891135069957691065780834804319650597708391739585506422158558630964940017344155712983584853265059289080598443051704584527053768426986309440126978111362330226972458105244253501932641875218532126032263903425136133502258748353542050095926295691751927316257809419340451496839820253376878110239771994302880389546259335446117278534211963324326000310522864847591648716949232659747221257026087049667169760932243155664547126170784916992325107535702082812387599560486400547401833172272560082134004048749995905067662497456208635725615686689681813375868221575238017630070895721794260321359990477671468959882490406751195126925967654381167105261866752145903409400095824896055577577396747679565035888928636669819380729534289749146644736712639282846961907996174549774250583382228916631954930766934128577079309585472597302820395851551512359311791868288061200595474187608045380458796090471119390992739670253158379330754963114187480246098236081168766515716553660836013724900492517745177342212186813148726353822203365090828243617143628737998277082286909211252464319654717321051441142666277660238934518102575167589564808884855699740030863368433714308015096195793089977121071090830406062038916454333273703488158588736793137074534985613056751530180098609007091376253619310745885605677182744968602011315029756765090181597262739591657827440700456349567109785816519160854877786370452841398552435422598995411959783314379951481382847478148841600272460543976331734817777012496446377566879494851070118597438282154423369674808791164000797315245311185005175593494855826068194461553017448885298479869413119763608070094276969254192389206112174948751541608902838514575896143972409841358644008107563396500243746691442858239678388169705632763053761794730915289346199137090569633810952123646928282282838047914150174405567892526670328348908998274267398127627524995688407395770107762406948466044273975342631917194550330055091165644842636074917564003259798142549563603020439504211090422429690505911539761998343449753455385646514719312191171336430740535048061356682238339925108458686463795845197192371289908069184549005632671458775999803207496964138436847859117012567125211380774117004961298941221933932407969251317899890751518384222051336054386759420006993488086270740996613083389699941654473583478846983045756672023483131312140000372102164443881935629248223530547477609393831100542012349561119776191028569181512216301061960004066118930752188848476565357758638349833312147427704816818439275953483962684871503956434462104832715999620888095630148943708755623808407488752637436449399654507906728782186974176555528178504281306676817013348804747498737186648507427006287107894658340328224470685055373965619545320762976560846383906195086143908190622637165885392354432571120156501624374112713932054024885232118489663940639972056983543706754844014031736456398353152717242017291892233885751879075417350359764527675049978237309211606816633883610342493249993256307096330151126182011835404966707076955807292026425457001397831343619668951052507329143565365977077912177982052354879316570115128464010288943349495922855102318517674587039417333952664919019955722955570720046235798389175130530510071648846104569484642891910161955275701329998940525432124960594431759532832994820268056691156822247271847073179575530574202269396623952317825306441212493252522890986815187075939347292847812252665362245454828687899565748148924647930247553250498493450110544698880850048010907497099731829067947771582947433697575463199366345239245413362475642985124107173870021438513691238197898886830134632964598233272889448138389558396678019495992096874314255424758277414593636657309284789933366219013151234735727727070140727699025688492558791340348724566744807376625361539962281736828744374795722678043234311063745347309496439582169926531065052481929424100863069390922641191322915162284998933885757293236271363457075453240373255820850405616853356505266677200089384730548259904116979962173476754733488272195531668640388299521555998764397638452480480251279597044773830709042466692069652542318475961595062850847142308995077697068147861128636916818748883600040176916963596714482563323728400425221849909037577311788809731665844749257622797659157980964824678395529300037012762762527471252483569573380024346437805059423995733742307787522313069046552706042872433611537529355820022072317420929163269570240325693583097356004512791907442487128756933016274719892894137403085000824621729065979440594197420271120233522045972192310752328359614363457168423250398043560324455383032471317502890347186395218491086464814989383985993203277934211926267264158199243928811982214463122284222001940258169141958626313993978401268961032838728811380008605345774300469897311391602775268533257793166586659687713938154272995263879091228196019382586932397199026587230490938810157341311803401419742991390702722343053450183075446672473709134744635560282168487252803144329256559292293196336505421462202965141002578118635858574215349901397048437317612938951965006420307630960734779551647128592501094360721316068371318384451614593387570384142194829400691955882437265489535226767184026586539301925003695222263585459099190920782859086776638731705918365962775780429586331963927341384955100590770395100511059394081160938359619015373093472538806487695973614072025237193991688976311511594628636882345087550289054524058482412213685333933527131827036621320239514731830444521880975062564129189797558554623268382972760289813821374358408296353341241191521301412060929973684642307335835743815443616318202824394541549044508630935013271831249536208407655863322993679841464205602199578013871151781163769099099890895519485691328295007827165351806445440607914238585582868721648723818846294930180323719159454368258017435772231029613545937952723131974622198582150439918328814094786709284381764165368200091121995894365435288227877044804240062940412528289490607287935545118353444319227663639532956714724747153596001792389922116623076752801575945800312842305898519421787452262490811895610535201168601072778612863738418372980163413119229943650544272186575295670805928415984696151402964787693579972734474732170946332617290438299362149035954517840028616432307248831417291138879613295141524017228874257735284114668134313608682366070453248639579900738904013843808521797992413436516579653395865124112049460325050872573896665956760849356545839494071694642200919803089789982385827013678930367273507089136385170718352540520265352592284655915024421454247606717626867183912691817627655878836949178849165218386575614195578295105705912256950836870088535534321817144097947401649668052295467237056345071362963552654939483426216674118230151372156963458455703390260527003198520043130189460275024329358036462546280242569725712770382123117684180858106183518284494818511744866273714265244485633151705812127651503833210699330649098318649579901934975844616777004303536926091423851097337683983031313676862213126489518402164061627407672316960067811137132931526992192963698849325149659009398837695593977734062994279450634865873620059391436915289916368418201312085474688980794987816503936286552731218326441856809758781721249913205590662948468296360431707136635720794379734857630004337117274918429208777533584226515521208955751534209497534883469212982693862668540947253796860374417276003597677542108046745347733516181539619961167878838848305304185032312633626432995233173446411878063088247196269604050163892666964443981569723126036418704157471902654913052783754041377793657367098768602642785362657856344998691975771628298386618040386944666829631739583151061343484058394701469816929444171545730256122889169686509673228645250755767107987788932835392640845634558313409116357934937677085126143759095930906019681596536593071462232246446702769115502748047882262309616680387646682848039511519234802984038115954843597321199696503854634971121249721718226787624960884681612002002677072996667513203402406332357874068879678407030158597227191892699703654021176478234282691927920531978135231203598375080336527094905588217138891974226193431016899559319203694564348035050300949754128608896982612580218526327139824388197261840460682373841896946638192855871022320998720399177555673603251376226058449479129023970590923821805401405941099293487199497442167277656266885646519004726403358977144372886923238697795573268236208971576840456378391767794107398381469622476854429915812110981210767893910292998999695653558342998459909235205917528834368386940619741589838488018451085478664019960372742636081646787472049144012832802104709295846516495913118099184923478733072542017926508868284867558484592386579570704216231202374865727007903619682812314396241026888167631191441666104123978754144527409890213169634537587795429827244413385046720755969794691151591669717355569862671100382131155302445815657359386227569810297702321663125581722945141513883856836897548324758458363785741910437167409664943245317266628168536562532640411815776050901982147310151741723554132093788432354448673279066132577880749548871129748658875443219623291717792380744370737287134966475058921077415498097390183778577765063835823569788421118659955242279695794126403540805016690822638761457188544423345788421041316810195339339168505238676815272244700790493650270260438704252260780372016032527703028354541140057836888263018384930186571021816790616183364466891206309259630722626383826551175619635713536825873663302280574902222957330254110071838985070756053791348858752562145380536283098080033891426866352746801794289735042841361644542343088231475933961511438157895880025864748138813067870915894246712923400811366897715084044935953296167823677378593624993104857194243432568229987822722948357649115159585092350410396672872256360091970861073125630065403053506639408754965572053349176002620886073490062275344891399504142364458980628347715174733688336569883247482243045349220522439567882678495647023586327463826654653570340229836107631814483466181251010382802828249970022838467957221782379500196416885586800225134372578254217782428606124679620981075913736583041742677757424270293149380771126530267200548091801255839742597124581085136185973563948289118341972308757981455255518541730726349636079646803093241145367648066481551595736538460175640833753965673979833560037546349959349892775347081761455043515235488725326407192247880217786376897420968519117132904605808407306162129352511596581426435305554478703470058846487972464623860878084494127184652452190479975453833200777089457227051560558083534516064535997103689808575055874447179080862683502238494143035790521701749820575088004601469530693909082795579472042124221728154199475617806207705422040312035935366031865803777122172719383995630782009919673697809296857559817196146602591906410786738689002790655236559026173389232240933210535297239772284859754441223193460588766603945402021999647569258605089983982454759179885531786200375653749280732421750604408897561773019970006489035487647603965848817415526823592963448607074436623591617606286205321506971693878174619027161716015219451310913270816408729126998298868180342716965736728727465942945002317577165620766455084842968799987347596464204777225921291090410282049350088409240626515566312611040546096053748409495488658256445718294205797733377352187825752430659361276724555776111535491820158224930696924251065076021535783946353580081465807341214328184690281097467278250323738788228397446985390043353743929294061832275692798378092394347879914124201977341195933415341418622374181610263353123800793899617425506906945497320428957087139989679116284840496149555017235013342334990526288081313230993495938641658433004032592849658800424424948489450232692912972449933979905000823132606849653239430056631819425437682526878830626828895207107641798618665646301835673223673263005059128015446726268383692366119353617549681375272192065264589770801247473618288297708090479923411354746709748357615356503786589730984217213363828159393185606003971720452809745742448048915993553230566426369592413204897408566964794379690720159305084621826983998101997924680762663617866962733872744524798369443260405178630010709735914682948176651984112966915876902748400340604161327544659460577490411045834273819616512387828213050078517524413147237559203943830445112986417438463329939506256847527789592388193459954535245940448804001120308533107701066621846323485003023067147805805024829896636488518942299164857204376902968219918954653240974766768955703401425705206599190083345289146961601271784317075619742873858745157701429278637774172192801954322210568247614119261852615222070888822951887813056858372539943055124100405261352984342884639546435669690176926036199558787887398165496610994474605358552007167272835012150281590418969989400016095168320931692473985164652144415710967067966790130191758146516444737059461229551399978733042332773734973946691205614519304741806562234330588468974077838104458594937398166058310818366079531516197439712187895465523232534158493530080841812042478664126773889902336345867523936176625594166052248411012869705982220805945645714155769968759375403961869907617320970438372142371626141263081986593836108502067971808437946067644645630376397997956345703848009172811137750306649650147005492198964353779894692015325578895984980092430358635030357686436504511063191322770848862799207784332100073355275839996974107249598749133785934238422075305168153342413511068008239569678269724933414199202740906150714475806490040528926569850305786263265659429722162196309759819816685239415130121468431342303653322067042221399884848937708639425740322447097873203544210220803054957817450125656741059720482592037129551955739550697458815360446041476060965618918775654112767749220078108463631245038709605103444496352566944944591575576375909143970603942329039209757272701677692346730726796709818171202243736413749126972896797966521821061142419274693531914156382167076824966576282894565523065389056374094589379756236224862965145954440658559040391768304312494244568611154696327558836422167666939877663018995772950193955908707993504364553286265400693455487161565891842584364564776967115082463529973291446634842036664958507774570736526155900684981162575144797163129062872224620264285498695904792933765281050174177318435660332376700919968137788764367221598047691589623195885197368520818946684689621061853016616634750867053504637763596032241502525016855136403440517073616320627631444713855615330697267564424131783868202743511852525058156618122420306822354974997142120759953068869189073307850941508415704219815744886834211421435688516946425091612433575963283038848538202342858190012346764117786661644624047121203169429536431853712459524951094079825006951309800614203791537677852572551129782643876511593158238241756861519547488269182192896623333042545481628090042849854341960219369028380413017069445030822545833921111033630788741197497372371482082067723829534449266216480186380140464176677639200830912108085247723334054855336704034206419359488971972475409331369992937755872604348630822899594647641633764088636488549384277352704246639624213260345167041055510375053203791970485878041109849574193769785594750872129702857669608691029271211147696973882104958485087703606980090017787157143502637297075822623702504186693525974403357098010954580580698360660691585703473576582924962647562272500558474397283369858914728670339631853235437512329666707215933659519236017096537229611854245870495228529718640653510801979334213631365960199263310889972311194485798128462347771861986083821919811197980293508353542610199597271924215517736853447229629701420733043580541414007925191277007521596735097996528546573183479432730852654669039849928922997118066262182781235191493660784442275823726040602261694318168286207892813775946136261050159827664611549994834585492160565931491025733987089887027460094587858799024302453615931624871678933558382135922013338464104800595056846850218894936458843929547260145717695573041681984466329843290454522323038483094571237500785152324274012261478856123599910228868263983581364272754230324215064174860672664518634282044659310799253486526015110485014176514742879048050095511467640081800516099113207286609589379854333817144053239612310097982632994880533897764551897142446750834848131338408667066773349361855494388390397707379776442623787762934060218255891361353681138475768213324298738138763344857812048169292219933272635962206798215060509825735335927272132253278266682216476002412737560483315660787380947131091159380040725842177478605266888023763058270693973550622036530319330690660636817268659732979586882834530950011972535923988375899359695871541261601286514211909591424535698631997410201719764335743362668722069975531341021557531704419765488294008643712989832433113176641026858358637017933501724759153162067068810151590685068682744921004555581519385374968408925975509128476068951786694995468526042702225169083212321879883674717029286721634414017922250658294149987800901740949316418157464030936371207573757510429219808322680316409511302685321290926560904463197111815266372317177242999110665537108060668678335690612536065046026656813865841527364030849050401474884072090963512943353476092072657938531747357494895385057076637058759872790903506061638776854815251197996761915673277638039950950899625579606948393324736843877446476991898008367384645337376392248530477866412097815214976693302823996042591881950284321467136383998524252783902994474104805447116881688830874817061632360552094114535317693525388889597148256641386464525751956187703125965200445848121392516759283819167678548951830795883898063022721601175907247890728456021382871419195020771697357601300144970133274503192141400059716398594831131315853145505117349169456173911087036275525048994458432628551274183731809352707363048894931012104250582253169111421066444603283428487941440980439084946127741892545526804806754229605509905437807656454221692636024896928738814588627808191647643780371650371098450710457429535648324472801729597098620369774759199264567627457070990971353440577000319984114783161730817983531061651371161291543179561815740970901226114700834421127328787271182475224837589880504416032672538809441277623383289185016042609509609134675383892463940801789483025726613115653437484240198192758474066975739869319757834553207310172251701262480204361710553911898962688460031859638409353356278147321679963564996959112858140438172937088089890424694096164423991167424267890172994417605003086310510895279669021017953480293444395883950045686575800396414172474434020295167551668431163424369333920439958877982027448968627233129533105517582784907356497547129752842471768721729966286443209686518139123293497730380866560748855727262936112086138173484099793316936390987674684826152512510723492998004166782089123624960481678436427517877677593120754441319829236854210305894633685383035784603345223683439818389730216543518039334231293683690039498361136137021522709477010704820638407036350197443005200082714883659969783100620614455960205469852060703126407176858146953795974422762884562645599048009497459931162371174805104988937297988912144174890710358378890218167110724746166960253795655018666020903537473034979203156587061475963872519605413763036429647960683816197182121422936426225775317871009373934718472434344416292344265476938272893174132369485245399532322452680389800044972917369754089454780299278602389053984470702898126118228943594759079966293992793964100798982026193110003476492354496326370599876331575791221302509963020048876096349714243318992985162993982340854086208314369623794188819027394434915936109429977045874119627298432655631464370908276460502572174656939247844519058429700664147418876156515431201293326605809293744518470408511310265652408199854076622290671576876466315734511431074307117817791032963093702366913019079076425568337303657404063098246179396615490442115758831404329152064479295143904725145765119192351395541926973533909417742073553321616498047958417763298445053676105581276886679630719882018639642713042364338046766124414424351288061282818856821117842861564050550528301689856951187769370195202405604761178935487948947935676469605927158326561202941918782400465179700911695691463344624881707042478768267399843245706418418807140457152563100489844892788138868821424965522370601310486290523332425939236523135862766756860928729836933621525818641084868149780558169443944910486453005362418749167564326312001168307919410117517211122851417409255600440221932504092625145103502919237485233465067200617845384729722230266852985456588868960923777913945126487369094467652705690908415815909878008530579876092928928291652776598533604441126705584645657433363314172662369634896740510737078953128674771943380740855646884454513417378089206450635406844438845579114137176961731267691929806384032942420510587983985758706828108652389563211830232924567472519519151314919819264286591068787631686260329615374358350759600657866409614748976653424023415984959122376724412748728014590780234126264612203483889635458328508121923747126449546955683473025121168475156133688687873016672414099656083582592839965209609541703780628450919964112460770076401098228056565185358871487080404581335713885614371217303073802513932337750729601417037333307104011640950684325072820363706082042349867878769190928395954291039701822030749815871132806048872878092282006616943102821388225343697297159432835734577247135629834739895113983526785605572760420410298478573222344847088563243831960945144470837993836920614169990474424061201160207282459772237206825731818322707046623698366305319308035811182441463373215872456030000167484084535637224633694030116545027271336387309165039768817591750820830985997673788928181112144328378710190061355528055143009091279789566893588630060832478100461324709405081574489779591878766668804291965851887629035175311128070768683264422844527809651209743994094149791324348744578049342626491573107941866611048019048551066457957060315099208526518819719439164605099867579815517059031330636701559331254204276315387588391929449936697669673701121552028090911645242250686112281116142142854246350180389862989929350139403516929561587622170007546479412376593121839087156913402768160091660859949153931397995181487557061604252811027953799574168767318969656130351873793727575153779721845367798066054823027376830603879992218854082610626926962114607037780366021893811934221374455553592050834086896690598145937033880257067077071480672174036576342370573361969983731347336906757482382821794819901206096683165263899478063625586368348338750095734405149873233642400372741456564506635814184732895862357907684979877656734685527019814897510757503333551031491871214321114804651373721527512275170695985922968444880394135550026447353439550540281060169578298388439548439411063611104400063088214111826429633712127355989698329782958709968429015591693203845083561856441963161651692407484604492277630821224488983767032015843061459787274340377709360661284751029363611795627342941466238727337225439177158494575343446871485613228783139530909326135868657395809521157570898062734202174651873481349279166233179105529808008187145551637165820673142241550724917889569667060522401448618721794335040799871661371365044646399980388369093656564094811136195027892805204490932069981345976952137027891983587681245178946537196091189247831772442463178638932065736740495228238833191656714206294370216116964816804547904477297933615894562988769632282585496189519981131558037920878883936431549757758455792194950920353275955315054987737406659855883399220159029063783997192219588223371227628644784034024606964199973609082998924925289957388389836278782868594720826241842914067593782468536002915422380097863063935700386955396940561607414403960378894852750433566615971205115089705658139482210553902889743163742764174276857337007696771242649228248540779650262091755050224135803208372139459373777020040617503565476142040344889032834210784376275008697968894154136234036422032083047084873463683446804983192659213913579582768790700310229824117873088682090997417189352231581604770412408729657916941032126465422394138349028674895071884182801791894476214451976602000960936638616963778516237704560317754988160463387512369456268617256559318213202278113086735030928022968525177703419145303569165354363614864282303737807433540209582129411843374582948821188894351021456211807151278032735788322205626796187251172801233564354060469973130678412416515922232760453751726918154939832478385251295932508303875487070554738923515220708569118258201877903151214472112683509264397112081197182663727641943231897545785127502513804374971907768249109795613505895800176302647540509622035874101504272624303081762198201020903939416845341044732630184609761111774416976641165443763554304564234566408949234507769527159979322012756855496663585397320972904826539948192695674869440041744562885556343078300478007076876856188324412647274381858603991034623143048210926568990867428638306360224278446962910332809988146386616479466727977305439621132387031206084769734796304319336713315747868054184185319218455853968354064990287173893816557125924523949091960924178354762960549227506458120124905939932038129703498561931745042323460871917343283871697342696950338905218455068505463314901610477339663559021028226856397112275318679546981179061169074006888194103974692853509934215637808627909831571340193139182995676244986702622550115498097378698957767944279125284564530720762317054279076298898650442855637492033940869479589739699595330452809956754193198315742986145632934552686654643250603382643331074229759652430105211975151319906992461713181036169015993781170852038895353816782441550353217876449291160117503860681418155710743368921549788786843428118380916036249881912980717723727915795326922571877732420618440376008853508706553725662467881274182335145985081495220683908362276146580158961048866505902212500104710746228059926415729669431816828824681546101278843258222395231628709191859940992356812077039563915819527374862069407394547851123256116082885794131959312797089524449619634174028531380295548886884720964601154679617361607024830241688522114896607386200252879381836020144640427312859564679464271981050528988535603317095755283686884533865857338385658370729403136427778618102302986170117418412783575696898001619827753380723819676830651311079541650837980522147020633016587105259502531779683121545134058510871586504401941434622664987392181800347076563977152306361223200458155156501668899221541320720927595777473716476536887687650631015473301905620153227832234986368108210216777269966869323983078769354657866338313735704751133934914396713451662264291255258496488743994408320246163519495195378260110105766243308367896165260146550808173104266486543638765211940089429557443247637054145732001580212540528883429408443837151391604334828739659134699091440776691263699849443785644089421833792061513197884747086578189815735221450116439804011070827980816972598079559940250320903160589365164982403408560822710961268054602944086636339334534245252497240261708946091143480839805341635906995531246553799128254344276050455415066458989543463663136553769355335924499038129559336186544896287768738795677979550252253810003532966280012937369737031665230375951898224710273808730877698280346386201950308660972727396816423383631420295981763522690094516801098073063487630431865485068858996800792676141958597599322629114496342603519110609074198726238843796031886408457089760649434116304556424602074346008174565155435388720733548193165587818328473496695141913249154567253004417079805739171000697012984682371646342762501541192068399744858905514024678100109736520010067347564402439298601673623659374107744193911915456105554477005605289474240720896778084325202926308736219715504215152285750490199780219514439517203750179402980290903089926234899980743009396714535070829410994483736270985715236576873856968572586773559726872342997867936076795239704486992981166820685482102572160577171614437479997109152739837874134258708665341061109478948218715480033588247633185040254547403685436299379065424722578354034637901807180742649238923321958135751508847652054296687401725205591712382085277616909766083597516010441504116843789830824875106330977231477972821287367126888744939634468079977869927432919560621385692583651716078549441480885996925070916539486476659665664912546776574078270863301561513483714656817846934777369025862328412305772897420739942425361254039730767841519252702341522559125889742347403152816994244106267570222568524256879694350168317210069036904185927866513586249991532220946705699491866352528745882585217765410060291512214660954783592212778039048222162168118155281576739620798234766869278958005896201817971333346631871040307693401152158517143357528979158458022822955001173309625606902579464625397094672046254164867793931644683607701667254712946113875548119186846080952537442827196503008455680745208251182230794903861979691993484026102893603770598597705978234263117216941153914952395433478366133223088790490641858070472931449581275978380109114272489821627036968869526432445366387435084656956263280762404166856221636346268425810177357486294276988742962050725513652747707091469910110937445409031447654250450565991595045346881592522294532099704732599040418864559313038484362108154533120928773277349152292077325873934982386529739322535326788541713021503086290734507882514848235235403690720605208542702631219933947062147345804470777816228974391215053906849033674587859258684159170894214908969162534372951405888986949068513086152524748211409165184773973293215466662740648972681338809074208153770626663395409747709503785131677480331052681462787435046653601065150461031456086735786478152655500494406438424686588135204590687525632875897182214521192934396747300705081033975484546291143508575210840112731873004800242432400512519596348083112515648990640630397793254538916015987140202890727634440380247397621559217972587485978753585646273064664849135290651548753944764958896724496488254178576838771144818068963392314115125068571476785549562971293343548176182446387072786027420130319694493550226101493316583370981319494869630787457038714923787247438908334371842318199341340537431150886051310003608199805874256193873134439103345713687266935213458673861232647477250487601295958065629487221323286021744070690905191269902829630187161492832618422268551465337754532145409051346201635296985138243536683285530720500536187701759204549243256037065587560045106460053634751316670924161745869277532578524921041156380207919634660520403202447556995750309860791715162223174312330662223581041737527390349514656265531075807504847620577050341991700636924306542844075751760097182922866208780114062539635651400655376467691545839621083378899802616917805591311023751691430654043104430231257097459391505349395711951021149756708344259072681551911801193968433085767942350090375362637204865660624786212502602352367308270320543158148460210572167495319535076593548101714327031355157411348189342881864945105330755282927365844906086050994221822112502411477814380665717451452522540955713867166989144978601868381115193465960311590307367979164433353464423407372041226313774341985617381793446743539155815466692562298034866036579793976676444587546110189075552186327590078296376606002717326332514631568631018792388492200773831828625760269447673997711844476277257421303457648555347462193740159998343491528690095909753472912880045292496016122936593727307476522958436908138836335702687347344506326264835789903548599866655318046162620907347710013113873249159370771868801391338083126551565022609543310852237913385333000289083809382905200193511743275355276732313053443760115299499927921784250783750359294671523460107761672330372135702943189740858998201397870737586319821740765727233183780263436102417715123472889823833801651314278834943170678928273742367903495584703757214333872789153691789333730600522763184914384468700180495907634386766221608844809446495345488727450298652676455139870927793759571405986581565246207342352520631520457105657262235229345014382727071189551385132760781478845053198159748858176402718139588770876294626860814469584230004977654832781304668435231295667398513698450133238247568828296266639165431476229978782790341697985571258141929875222826382541974694804740054675705407051501808071010937820001666220540762374430484842400992351615320624841915641123688781969668298012128234857613758722526292870794194527831237639644778581360526755270789246377361552624798191771933594505859983270510121426756853728651140997558051918466374531323924554505731288137854542175353111308894028295380907154318155317283704420132590651917095617191427891578580966933981927017297396218217733525363816656287091730757653392059029701861959328981568977301020941084326258398132815381514749043447787377778636756001933356428582723316884524633989083908127572488446804726662615841252400201462808042870940200609148260587443789818490576587388555450197750994081049627487140469002387870891712254962220013359010379085335230655777386670616537484589978754425969479473386760510632686951111078237805723307287215444303743064377568004836672967266079798436913845139755763893275955158096635275868448169347550247303525982481871600593657520069541700639872221824100380977098411325768377355255502799042338611755668494698117858443552291393348714034934272228765856973641939491595886452165740072949558260099169452390196164332014994678816696439205041894687206399455690784352416911965658835895134398075115141793293931449024236774414473934929468019763776660027499409040167981819987329945152789272677436849667287837745188447387372638817845417648997622431808251529498161520550068323454253865047935784873394066148172960882542152087943368854542340229360939879974786032267117203213409352505237912690603694154446856361959860456077730465982939240271017380654299477980284828319076118194641465971760551169752114401682326150530902145522355303302412865160859176075602037204865856401974247404747879544664710474922452463225866015161142230378420229165823462414318403005241365345490999607085394418860081692363480235746988825385237605233115087164536943825948681883087550366699275691348131965118116210264650903552217697240838767646723311932037777249936822763783874146073129763782105690449364116374776980966448180036866354137414824034997267350029766844620003846015033321804423643390030813472910860632745990947922947945928322825596741674505400730541751526590365367349124218828933283222050711839755180551922242022161318578553883914274668532841591163421599914748939315708833299489280659143888085914717375333037989722537574151251014058260394871648854922277568940514394081112190279164408120153214806000200758021243156953897739982505788164728329553284759469745618782136288955215144093834237304153399481885310700034879151436719351649548439681104564604224086932672829168196793683546890918926373539224381826625837351597562654020212511878592550828400582717525225928055358181921996723976320692212326181197384287362484868447224171066554366489264334657784338395846776260309082978330542843741527522587576941404317355345849858708047199423739762903952489133763878916486393416674794733938412499124227091711009365234065848545469634936614329621019878547743719335883603301119989620452433205782752335819447289029241710902699509619229693117407925969403984230994503845534779001113818782732290889926574683674683618284947846216741005337795883147986806703501491561913746069045001790349198470743622284390635032657657275677411522800811784347016143587103715759114521412536840988133797126880056264409872826458937783222029775518567021393411633283031013398724510030658151974624111629013993644136764161017137728460208874330861269254689431635284312860696027403821191484646031525351050165842028550051752242677154115429064923070923919882416598881284430324589324402468697435244212937315263991482228445674584596383161739014993671815683185976722582086671245576183629488656915560247907804953029223385395719181729489951699535127765675936642281093152225974083100628282612681840412730300397843636092720119325074409590975820561335660607440556689359535301351732188024640651159890376336167349251872110409548461944309429460729911357780735652367642395640266326517919375532354666696047448268368314924401920220831318270147472381349153136018680190762454994805067556372546579976640541797128067713786544327853798291103697108620800189934443115896803633794896993425484289194528984709115747859094833555551412788722981604648192288240753315391997011318562319779560727087245875222672901736576881099842101853705353496512963765728468418097622777771619800547287249866015744279643779657766108184299463042398980021667633050346782703193751168422982887789190659284544177364446137619297901197343531182999472966951083589768394835010324676106058679705045076991677155252294428362440584160047694491450797102996074026965565151238178114619527595542880348931157881374819952470930372944748324888475780154444751475960404714072999310607338989682533485871213018954497784301605293538784499581399975036308287789399775596647647675410874278899111495123212207235112224105968479643209487401539271755741162389648983103558011321778843126296898154874123310748281523961238061095882332993276722113229685144775666100137209201588302318345919740464143265981990089673852233159216477720851560041527421528926014688634117246157777803471608081131202049367388844209876099970967399720916062214347811447897398200148335897310966512963123214372920494399189316298983386693733120357066419459641977337009877277736574362497280116415159570110019227574265262458865380381408728935396331598862009543082297102135536788548694663275082884833233176742980140253258566559397866778638442613087244055005599631817110497078618970784357559723158475590137917810272761848637568904737130672278188098624448461063002810855384045761404399736960101705744848963211592824143363168573210565196883961144620087724678362368172743078712955794750316964662651007475587640095659619066348687016590451363269611362746494857092241491622640156795692872950326968916066211032335632266774206087787764703518628606159437660097049822423275169950554810170473736791194439580934140949149532957180479140251239281868936641577672245679655269105854448279885036872966355975174558872628554448512246238018749950298267261517511912738384827931177925405471608935768710624094472812865358129962905196899172056413517266937851044338904280099091498914294085568763310137944558518329136931128158169164721365567452296603797001312055770018845705759437817815707258035033297800594262631261633476319356781074055729206694062489604214491184983483217999377438997928701921851014109270330175314955220891516371074633520333135872473390323349732087366927626620180330143262003281258325209244934141453397182959482101182608659525751302175268213673146935853510381438210652425997303835056844990283773982527495609492073112939937080138274241372279399583194830266972354468713977519094316754072469673418699294025815234204420549068411555539896531016350800385381136628788478948822080352992541460532029809816812198233407652822321116321859088976419193239582333468863552037602689470672805824571994565671753994329253544143039436957595525273065855184969901363206526670779853303862580353382722355555638052814755787363155439596269399551992645526067193901840663457171486679674569213762946362410814909844913408107877374873180410935978315234886702736276051715729167291800046100903604758829939569489136797579673582019530373630792969727048167762198124488294077111621518481279080079143404432689099973599695146223281794660181393705899598534030670876510218267660224511517556423622529829489105471992651136239629245116084411135374491673476825952987625529012962156853899445166040307046656825347367277536852215019239353458669379287393057943661986841289455903201012029867856830200318804921446008314258993191096693052773946924057519463919450896726197687986855315041118951461046666548489742701289963461710018622709317354834492245738710141975263339494788284451782960465438006839550515901217191493791218777022940452613787461577427757359975976525566940745192150185564084325653034291621368935429909922101926364036482711161248470105761100875482387850483996711736200676103208510794984478564590002009453535737692266023023624332896615845348177323175495455058774520219952463731058355706925947456889988884626712435548812795840633110336505704101418733404200846984851657307290770794300883473956972866469403315433271199881805302051181068103222621738973581929148398179333197274317702510177048697925742308994836564511227399949559959837509909240780641831740825177749896297093559368697288722395632665901223417661492135313539308423787924109093963155656523156625210304551069327975234944115619973760314000514088079381514554867312148801454164378588105376447147617282393005764741381027439122611891662664898572405526891289723011208278229512714160713660860680859106672530203080044803117337911324960685129053509237552548151247789617114472794889628368411952177022980991234121837370783791158225199869336052177722513516100110450466751792566024628643156043723408803921644792677472634942847912647360203537321727057500033879345693725920627522377963066420704288088657202451540192210401805572731290912652330258845316992333401208166844485780391827908072665117098002418713690901925711368080998732120629555309839720273804513547000953626757608235065126299213380571833284790491844696258695026960767835221338605018279592053323700416763468320979574168007680669294481545152835998387273896503266074176432382744479742534294733942755942490037910288677878765778825043436632579572050778949589797462239043320703835434289970295385672745899412137873797578057420222222725282916695263629041672520170118229633219726658794980270198438246905909413247391383830499623140953595732268564193346392237160231168147072507010680130134579254338560781339169182063508305109885128599678532542196657643170133071720462716778283046617621551473820282591220668356253024149577898431824952963043295071575732836598051051280156964962329982426815038309488429433105445306451366730419386533949612250937071113375977932314951500418153249397247010019800729420114109749276464361701434744046992297472422543843955461166895118356308877663524503774462644137714363091401791585956621830350560281937193580271344105395731467130394377814960295416600848955270873422251462101711776362269652179036145126356704834312337526880792628511126415378382484552134133917890295500956806859198817167181943239073528819243316279290170680207043391854947976495451267070906012565614419906422716659070352469138221902716152997877984044387689432953064272510330458132385462016580879609596130788326144219593787992485160282415453585391405019085524669843257049500021551579896459914082704145550512667677279582354348074936802520387710276416327300758627797224831927534548867401524025147814110387312664623006736487023060155727802602641788740278328448369012822628903282720828874184046587313626495031719412453362455420924954393138662755918758196716927445867833550034203263045184383648531851914146821947090490711887892792435989402949785676464751848010755101023919164493785258297176376322358605006892905976235539976980786614432076387731887926704715011199128664526584229133367355146316865007865910218260264512047978723451270288862667991694835827102370325454785142984326783190604484376771006224628294608076579531701161782299371298924630270833263803310752502520180978203953079657779606897807976836266136216745206428183877265648625165149496066894187749486682368198262629831708649607243529354409379124563592023887385165423578663773400222735012545081686711311217829305463886909624151906621007671736649976325099093835408869280067786024063577351693663432683650622490295452643741492604232733725047095811196029028277558525471025258865608240851205078073392295172351123509877764515964530302268049393041418065164009974806804117265402351581166073978622094560204247331545191745207235785957241070354342914231666510002289783923970562923054009414697983534906153235796401327550266675049851462984744669533184641363649114188861879573157856645096353277244008994187262380583474960761137034087025505524435038312843656099854722319373974627492390222257601262820393163472760883662611438610783302009008988479743232580737034051784489408806801915300651033084252523037400149314472915030722633730257202859865918627145905370549016951767628630553525255141776981537941259323552754492391150906971240596571541755390220895837323699798921871185308242707041961117236544520094634749458540410668876345874104339716279875206185505807037191152078170636279885549012263903140433159425630187447567571535920732882875089603587100532006458886541753481004959555797652961711989660879925173455115899706242280997912074617686362249835444260059653249183284942959225615449054140784250607054819533231949162097757920958109019964478994889712601854182776876687961697527704670330895598802768711209968977409181469681180162309486386256552736444121528181701186322626490979647708305652519775655527978206401181646255487537363753876455323879051756431677074476837169494526854779621729850380192992351177791531002705493965982646883048328713404670206324671358261078707315483341038943157126909048977807874270012448562099296408933190884252058175692552006116376314274141499009301401358502445719675125991968637536531964593507128894686176534103051922858517311612507289544191192782131907271355301890798429548805638240182052255327742492054764440603833331951814860273280655035874640817413048427574364503318083695256490187982927290314365598437485420480059811096732834654860327762499652682006602062853028109084244876612838109123027794834554582306299969945340666992309226243937025438956852070265046740480495324283708764106696721914859603915877317566513167596237684538848589146642958777893180634813387105325240478450775161104742324539373108827156592677310530592865170680105201131490918806916716063969414389058276989139356717847814723394325172766846635849746444331131226422686638240588315119461260736448360742706956357193019531730913753915835813110417353809347861768160990637834740339753085814935082079008010932075783487640277391933011411323020804109779514809119683097340185807416646488824423242037410668030112471273604426883075016619905025533870266923059779454700565111270009196347624978216886059781999960503534894138603124034824704836903718878796198748066123277063876059150277621669727226784489130560439860455712892655992002626671718981343341565667022623573996637245088329097197035803622296377759938729713868752671467060505526203205124205090578338001850653665894599924563998160661947946428769441754263494430732219531204724332377852859490763573357907079726887451498658516428104840517920349389721746541292274493067762611946614615769454787507481940355711845493503022445487382493031475411188374927357787980066740769239613467729151080980712342005321189174415812849066299372596540275883694935595091667086465333462046361906185301952972127856393131874798155992104687372976893863164578614769893430194335108006381752027143014579814227487051361160163178827389495583686306213836517459176158329651534884322634812811535023518117482717945118242791158117293235396809863988737776854110235415765898378348658558220263176459910066833378991374345049436599316540597659117545804791977613198624935733222149693068119477129406085247911433945699145295708175976536363191666797658719411746512890108230252272521352589932617428908952066183752401873476503667788034514208773233939518168676275523858919575887167000362881099505792274082229849689578328229106446706752772971054151681282341958559782921006235514504638922537657169635481686013524832804386501884928868944121431492989516559547711690158279695454338324815516845357973316045531973337575260258585516317591674413486864993873241189132382550631745313456649563833066967643039247440498366761641732408690590988980944802719259274457107218876910418843387767903628187342217498916424472635977675324097162775992799034006631161460577006950086023295300056966638561854416249702601583569132880195482686161911764463711422174859687308248604021934580948846913186926102419873355919648993214085609284571652914665977719929093688181006011025053842274115939395305297919117066941055005647547092870092090992903378234553006640649927213412035086665953990439521786091992313310940889050691778189717160479760097190807469623205363434007794017998060280568790551441616994304432561265981146159938387613539706902113450211175736940087888339707650368092998748517469133002835095703265010652968264324002053918309393258525072678965772830353931612927887812129858456210190831267180707535981191336866108707708337265699166936360135229041700054742814349254864509353381216153722502322463179173656359883211440965206934658292152861174040384158061132695812855429519849322758464966543423607382166515887439457659330871446341688926036931402504221728869201756657744971093135363922927260093880114276060381556955806963378963119362748336660639920551237621744683945576201423678373106914240957201620500362786602197595953637618464707741307135744379907420654987382332514048565077672206851654851113804312271293603521905764843690402231687638497528085301005560429725681341803491693046923921911389507231685248484379860805479730124072602365024239016797490929533711092801680693990325077775964245911745875668833048454880895019245381283751997725315322077402147194860848350766055537849598338690909442102237457336967256024909827006685640390074171903947890418877060185605535995806422599175277450230065770820540091495310740538806605853588847824195239924675995593800845511569031573754490945158733136678714378339085950879077307718337555833554089593847998725018613098533740931102517568237603823036408780136816494345230869476759239342773817352344658110671588286600206366774520969263448594279804477309688824783521750162623745906806494734096409560036662289598153745870005739515018879837954512767127207190998879996031160089552393037267825070897475664996131892777164597804560554091804842737455563836139676433754623368447146257824498797268444040351284585875348652031235368968352870347334642964879644926575623447579604607598239423828555962149476194166625489684465749809165040527819733761479416003224636956499853701192305941362640512592578502920146131286955146279714864674751798756754679649516592482692793371137640201355235531281498357042187906070099556692918493556207010037297787056639237371689686955990533154562360051754865053595172172232018852468588252220616065789033168303193004037048372899086813980228796136426719449688987005536056742292861001370950206228259577956347450854975481594407968462418079729824048532671960773872547575950725073280937243777333717748672962788063289981377691439594014663098365455334310314461367789710063325819798157335211412380131243766118108956768623252715928682384709912333008546986345013647438722582102601375944980492711420634264184503989274950543602975618814321004515435291142364736282428438779400458400345647079866183582854907190234176949381730679300772229433620378798950521327598019780177137271065675947236428300646437007958941317392452307467260498716983388213694930880987155095215184747708365152324611688302463797377652546150257347719557187388778576744658560864044826915640578352931093704614680267560200242898701108691858745335457089498847104031408833022650388941118279818064291782283342457841549141448799516471060301811725207775715575725822360966241590750918920511783960689876543868229184663668952538176790590190187256225896520344257191422201238135297457907669591838227422084822551800558877250547631407358622986225679374766088882244280876429458156415662989176545214714797996536776430444271047209138236280754270001369684673705674255222816355712816800734462561984692528410859635515369153625119248444348780854930454490861444473972986529659560273034311448160960871753189515506863648894878501156340364545757669273505905361834129915075556626658123975273215223106870111058016060611492190838764039281551703180067952922581935642522188207366535968722810517869329731127631415557350660251132251051195659629374685355763021394254697558455630770905657117983728025500535114376155613946535301687491798722376543551344931468485662450737128531623464944518808009665973624652650383877612724335039109708377327984550596448579481364048535291834739126585824285268313734958188340061200085056881653944546652639952737776572785670510671134309688591867148804374235211825189115879411125240053220331348701749038659548334366927403124093564608226377862520820384572800158599124452868195428283902862709792177497376880963071129944230080746300840272532713984152470591409905895006592151946686189153101096097203910848256170322348280777077851284804162479025708273152483014002860030861998053348900381711708213438964900409517524685960760810887349511030198615873733739463733564644688476108562075547846117444438501368332759692509613862310848227805480797640334638158897319065065041210944553509145334339243518200885492547496705403837606679690072982242688571407335368534761168577006540891917337838481766124962176023039459508118185949096465659737504776601883381219691492352747557643101583647578656308259173369327405251319143558020419015498998709885297940369960589650311185942720978811370710715959386364880614704393079140480796525384688592604966470824411409473297742158230585890465517929312854379786093656701241713253873468513939622420176494684809213462511265419151052829837530304505931532175819535296742617028988847703836455500064971146160232547696648098203006344465254002423437762778863656918602376829246862520136925377922110935842733035271720884133653819517642134112714528277892682536093212646953663994387029344039087039213436121366221201511626159049057293989380183306391679476849935915362655102124571493163244076283120820534194162900022421479951438230110685052669939408968736338182333575266301378152199798217844440309058833379855726093873184141099304202997919828787706636298714226616196381559812893134979157571242908580068282067817456897570967744958354297316481708941365519649375832077722840016823497751317577290239117558972075981986570436721548244197858605804391236217136587429088760701380793768296612783384262224641603919867558314674469330331574846739620092436271460769413090661724927358349304527602954735083341195106593038034155927204977970543593518211018258023240981554854430879513665685059162009661764449900721816614589130405905187305052824520808914579358952738154689254086999276083702272099300708068186863934297931243558967410588039633583830028793109752204522768893503072151175760115062111808155406136088281952613595213793083700692767754502906100129515213841501844705189993276035939676403600207154655738268381932976434432862601851305593251887032176270900342527667858312115375116004080181071517103837588830612496732909328227828607990714511008416811097461304183887868258825946975746998334951599110334355191985341511621328548685894766518334934414783451345966823144575896250674089753254748546151265420026526506988614076941797489392767347255621521795975327763386543538824696958314622318073512203887587618667471071924021764933761643643301792073346429643950607785908478288432545809297468601937264478455457853383294343319683977302284592944178212888960959559556845603701169920729598894660763224562792723065924028067383000522506008761942862499966820172343379203402133067156890815426647644763115701272040881458931546527190380588621042905639174657206423247350370953265956928830763255759130719873170140765134293354063756637360956724534819718477091271486963441071200753695107414572722269585157233970637907068210523828288040137515816835054135627786777186961300901100947858924374363537688097046779911528576457955491996299140598446533345456228607517557835017925994504673421893318448388348140751757764122112937903463150083312947376878938547977217855486371085386389175743306421682408720435867262460250763090529220014018132263460375779795801753014047650691883554885488871429231796584179865321906302546893937276847914730623010622054478937729460309140650706329262452649344161406102037984756246012642713243611126551273396774673800835556485261064058718248752467297519893901314356859474294774185946892305111484241746965588109342001748540311533528170665383240957646522519166377108589785700939970712202379865941118763728323488548075552018468821286648836965618852482183877905929088174693800327927053750716500299353665222590202549044896266895779978027094197107491799480286023317806436521361833195838325412823242476486461690052313903956527693517416743373175177358078019536295056796974937964113276013014675928123122675026052954755902240803720687186570655594954407122858617817335446388543132542225012278492950804816330641551307693806843279960893914379975224699504881257667543079339861120519154701750372808768190225194969747354556924911832827071319364835812166555053071426112520862207583788350480896355004848697678953906477049645426347060038119122299576213109006797675544527663156607303877657288209268904052937079188381328956464443974241527899008747642223900825790665129276172961550719989611899314412940792527469092892942485718561620019587499981948730704616238171825474189129881562067444395789048241926651298488912959559248188315410897321771148158343687527923945876868712806948760664913877187967264756113811925652304884419931498618786707494986151183396672895037169078566508468054909005145076858600108311047038688607959745418956212759995953825932132431810154696568667391875428118741099090086942571552210420544316093532573725297475324002391924482528203639801439104574187801687757660282579192289177667570841835878229106446002777745349908466940084298860795287133828957602110891747084157924651462601331632980704019177554306454354646325026503853124707273220043317596389238100306110962944013147103776314264118222007070866350575183341052677168892244399009036724367150837452452604342600426775775133107265637808405305834719261362202934770868549705486768960111067008519207552790331708843549052429973791581914998359654274468580076086092545617471908243913093968315643779651808970943924563022469451160589748138318209146395979675763124922384958854840712143556115144719292656287951990513240788531604816673014776409644471385317491397674099604182305884888184195132317279032428842622528713337577534511825454305501340501819142303399588454915134370101823259082522188618688113643390523861539409722513331545480297301213265946635166062184190143279097333699325922290691142229182154012568335941531435598582219607496042267156116316655510579223624412935547163733419705708507838361682398870459965120577085037203731911707764716250141624035099600509030629988965240851858558230352959245387110695169227025927767674348890657639834896007335075073822416257055079715946607449741976634689434893311621930288444682573822303187798383244270510904721244296265200146771341409027367273946769399154741861521397008535263444338524603662719483736391308649207051807651166829051263736291519467211268338518670858812187652339178535008272035120973407875167053224706383246506385699234258775659335024029059199137282829724326349112401185524052857342032927132605762072093090079824170219888526788966434183168972199130456265971345998200607515296601140653700602204938318174813551887263444491083104990736882843971046877424563154737658298454919963899780917003171114270442990484762367641182421860384127578845615073537130426111831312512429783673802358894111162434759589013106329930667206780289748348379617550919204829237160203416256882337759076410094274674213795133379234111700000587661073033358823499829102410256002736931384979370134115125541286731982458346300851758506294570060934143890356969690044185350675873765565944892115763206818757991499423684699397078847592249725038594241526403198302848393378482873646675393444890975683416083299761611250782329237974598939326501398173290338833557924302659111778441539694983786385862123110674575006025570259619222507186395274357697334918881753532879752874484446320530420130573635637496036611455537703298993367676585909580245699304422860947243589024865644847305210222543601405376293236968010878898903205062078794757369321942132140795631576051826164911858603796209792635700458897960541080076680689540235961529666638899692969027656186792501323839112005622549921406790414602922339026252906262545600828916494067592125483287319060856869950333416115227977717910586351526507125617599510766961053725283643550850837521085559221640923648489580180054137503808240056550033554541577008089585249434814113161146193578748593387129540091364551552831343057032102914945119430059576438341111437179263241322619465631473561633898979860017079040131011421218904376682084639566684925917606411924259479196913255912892679637340097349641284650973041209618376313737146049124329270139066357886192631430649927761838382384157713628673879544557605510161355994683703793939311764630646460884053828169199356178930714360276271894699132647677946414593673470873569248248084763798512906531541302844055576205138421628194086090371445881377219766303228431814073244263940740011689643153027205678247414199228572933742977064037051606976432968260667075136423119701916127033995334874268888106870752957263117195397013825843502990415292701595670314327198867734243172691325054016286979802955459554498407314660444155836308677194601605057024247148717084362143014592671563647831369166851260069838258041834446000359113535842116764056108990316454018891195286097340507715697373114462772454649118065611454604437321125147497565189793651392062152799451659571498818281332200384126270650016502027256262751642643097697309455405405944924942355015500531216750689430612238248703584571088159666587650544559430686815033179553832769690062902298583259685710272038297305757798230362899203508727729325049024599456178709662631664417735961873349068121607817746089393959405247280377803721206258623642337462569411936722337781618222924594980075453046982050705939423878091602204826930619792711845547405833232380848394732263699877523614794110869818201397111052107515818469478277395440799372786586510635357821055825550207829740388773551985626562320095621168818703177638769899855304446159404859800314466944508280156829547383243904819427426531609330727023507593358446892604559632615474677066119562437427317361970687349641194654394409346104726322069800499194024706881236043461894926568501037210708797967557538678120357581043534756472474905318396773897114562292647434308676871678054705544105351781518666724407726787213461590608908411501901475386758053649172950830259132950831702091809922646841230591629920964047133130360572545343738599728391380749728814574708965654326065574094520159991305551219963201412975420984905885006347157015218122609968071584029257074500751849006791753613026526314560781355182783693652214567418794528987768295883080658594318658293889767064576438695446803314807897209239806651502156015063538645874338157693662651852586095017614720968970725938365106947188101175927406265308777759923084436280161781985441581975026938147384375192778595346755391035553340134366554735778391741057437675073867631190257276531352374449403346655519672536855737820354985824733744376142597238172374367724374219433356805749380074201562001736475036532938241962946671877730059089766749005150760360036514460066134960626360792382807816807646665180008085490279412640982328282807551401213794871347774666959349949044328616162390515198437278131006488826959141163679719822301127036372224629862658973133013879790220597494522147305636675899389057010728893965447663909573503589712672592280365893341397312352994556085170445608662969782217369904261686249841719976566087506891063045061058470417420823838575721525666921215466476141299250325167426506984009259901214731544018155423683575490725416548467137459411594908639518299216683140823872438182282427346599948719316739389958898610987157762566009541648564356599697469741405968376865402631362485303809014248036074722963137344801424199107344229061506884511156460413136115253962405374908850159724560656817240092283538931757489040354483135658132833095442423634629713146303072434297175402282100048695106203611090351894134687560041990579430013137178312070593345381821298064381427238775908407887337892514401173093609825811700560521589966450541913628699615929309202104300767102626862137333821291590655885568543648699612259807303065233949379919914339216555256681722649514463198390273561596417208987544314356021259844100119073695533441411696166513638683138836298364254147432463870457449937999159418621716141498215545413327782754536611317146824295823837938059471774567381473968789699695891728703985508208569861774550655029142135065393725015561240230016310680933517711851500048584280797286323220765223737409330431286335574016110071794183194611080630117293362045400232050876607024006271938884233364010272565543493717284545014084512238348637766706490792137535120655878747490709435101992387802118273975599454431630472822668889089563631563060520212015030377810764112675598520381100212679412424223037834589990726215514925840381226411053052607452150209413282919466018795125809871198080286783897077118838954024913020263846529763377232566652611578583674629634454034103831733821510907581651828707130712697416056163554197074295463755185288543026697715621837169412470702464351339637957679798866259160132964851789542801975909353400630320006517828930518117433843088971567357379378333931064170655482511563270649427146896291109801845669428302872775906136711878480499964718735633503023201999895919524322905274586064445654326357171498309495350613879007886727179482813850033276085903818688593823102710396508099694431863571241785679999480907258119009601784281840507055176400806161760597095647553042021284898959330365564462184345200016473096409865439627389452506171214714784254697490425601214092075973460920180986681867939918660568677960404864360241815802166516159450870865082741901807746667043823033714050465533660888632891469190331859656857491482495844239460400204343982022975964052488952288993906371200336293185306954699093421373891663660377002825500728950314110517153360669223727443063668969055207013681144613080860045594992528220230477952025361020559064716174134945714766693368559766573958834898677271358485293625596458718707350597248309710875512943985894468345233840849254109787471629448174123481345349727315404390121240113510656448344228275014859419910066956892431341712687100623179540117125292260807785904561554069181464410005467427951403466094465820641745624876102292742092542525455357055654281507890888273386855025140800007465130130202201601900027075581063556476860922516444632206506099230000092682354918896035592056765843230839006076288225635182416477213587973532945018686778822919113585354522086150423667154602496233005826339056765272444058874620956720432868167694804036498542172251458926748211260070811250019378162458483432251044232677189343768060024279707527932349534906608867687740510629803991150575341059244644014449565237955868005988909143182103174063464998472692606201245334298934483150498237619650468493183941782214281877097468448816980624302494388356082315788922733187789843468820746862253466707371194255538558914110287589244133005239337549485266592270537140723652969352155984910817047817463242945183870802196238315892429167045707389295069935986152875823803361685134289385737566772122787161833902087255406226395226201029495007994412772525453671390815989204118156754890165944766479618608344087357417081731545140447159475152877704532258140917746479679455303094079176522870429751822084848915598864804980591368899369648109086817492206710194477433658912553866980423995362979168418601814038492660880081589546466144649956417312623042500945750531817434173745963909009504300963689281765068558685262831321048503648810473814130859410262366767153758770158391367343529829623051095923603615373264699572809083235051224086440094319851773013945531303430940793798392932341868296050426916545245947354209347919335932318185957658218118781877202177066598256794220293160137172936826742841317011832942139174253494811646799398886730507553857322620088665699294455432430560730361149581740143360761315413174112543482065417459493366101975768230487437311590784408906594041153608623375161712384907542301773101534263322005758555232701428241306662678591097132694737243282245922666850211010229273038458099549133529618603295574238326537593948850255411466953735367522332212666050699368279475303670130816301832070636633526902279161287209961255837054340858716344429737056279509180846647145716234951842776687542827637495457902460148526284757825527641925963718009736451372842747252344685884882543311782584211359649627715370591484103725854863567179586953171317971936513790008124553137085587407148544398814577145009672251439850800610968405558244172573560619931612795393710880037502677260267576576228093879068261255877306762252052231838888415740239003551573262222076911434669754513451363541235815960834917452858435058176653720570364730073057935683643289171283757352692898510857731498620939321858156358738084212781311721317618106383130339783285878805083259618854231555407119107007084127446169326557718915573231538255061030341517742087038687667870884656795392838789269487170437163785042040567095146760418956928740426278643515255232404401404807199449811829423165425273351386835100873790688881701475978815272765168368902458248703074382278442444340409048849584923770420568115944250008500693541554697968464393825834155569820585838668344352049592108678204026023901309610529088049287886050177736161164222660801185310181415393597709548820033949259857677988238550352123632971920227423812041579868796872535601365001453847387268866206969339490142990934559024568528324456934064166847834178292476256353255565085456436415047980707025029918720716177992816206805335463873169102983744683305661033769758806883233752039209748096596002334245296089751836288833485658275242154628728674044126510694852712577654129104612591031709375999860962517710806482872535576146689722570886938195405363706956027337643548392589777569149528218917635551985517825778011434905994466695180893879510156011519071238235137149570833617494721512517171976441338221838142130786358837742150024841009630468669103509388141100356569681942401569554146861370777457678829613171033442738533076296608046086869516049837652412288309366496863126036974590282569967228732737116776099713142878639416312669252343470746817609699788569030359693986186159765258100659641382342887264004133655538028881465351498674078780027454168857230497371287872976023354765427116905005710031551204743093264096795489966974844667791384900495765107968413532146598465197531856713922790337272808933744858202763558163449203758069370423744896716778744055809963756412152669962496727691151318110815906203556793998506168399438035479405369887757936610615066779540991297648870723569634904856005673574426090301499682220880979481888920409558131767568598238216598622352367320896370307284995616751296970782097854956074108372836091655092354694358432726696831997853420435528004099117114866372387542256758131606128603638579267533388392949255490415606983410397601648133092816068995710013711891070559909307776590817587276867601058692440156616559741201133283204506901072662522105772187207594853098560064996748934599532038090950881236856478116765898002347601266381245190228215627990256905998332975616569986083529550093507301586636282389442412493497745206411654191576229869613829012346290984276735725581176273984132441238457273886363581366509492746993291239466870547250051472740653482383789885793739744035558264822622889466270237441515111828772336950625660900308920469515466761365204975022966508215987032673323204801092008397487748729041045115776020858479713513451700932787711538051619804196776530048832332801783200141519755285099021555839754341158381315101308420043019152784826501278324260684749951149216770606583895306368674269344537506727584494137327000227477109895838438328937292164894531731851718043188509725373858032792320841920187936286392015552401223077539941035387311615669165922908622157278030716007226555451830930189260281214760154303611915486934938915830699302080984598811112362641140415566870916842073739600675158033103724618036758996683308726663366488077549881276366876739631100882205040930394277367461588723588044855974185927210344815691882529514252672149579042697431819292715116238771340146370675643244579177891924553137650007649849398318965493243707388188663364051557243454288092587409988396337110922720029530836609338083433969932391696721533603082409042269723232944121460532350021284157905445524987772029234453403035180677217728308663731828388087153809567915567556527175855815390911614394573355978857768344272541776464794356695868700979044070377760903300133706279185180636978655692938519348772246550502114514321088868808821141891075631266198278178259256820524858118760512646231506252722284672354059854054781699165266550911401436962488312139006737870081856283087355907470700093540171895382396928123264053150606972231558918134531069012475905554474579480772480800296380343341324853600256869857813755122845053183950179193199776768149740548286007641634638394325482318592033054135696811234285987867381569707018453763349693410409619849109292882757460491236206370997631687329490674127982262771386305344544336065896145532126539877459634229361710589411758517323311439255777206411541981082381351601226588378094502392270812584919362547473235457035951485334675610103488773964491217456924532621709574042324843555308329928460871284220822030609842270960862477669313147087848414827834120745616990380056025025926784824056470641489283632270621050900750266466850843627406806770071360527106361919549092997782100089863935352599449899682716588097947543071775739420321948430103499506153131431661945264438560019826694013517662775947467430936546061392760693711143020431048216809125878041820839522079939544536193435083815856978727943754671570594043998196642307407769832291939836786172207101758690641139722828564461713447885798152176604108615381105205061620751742514615994928963913152234957791951713032450035035982237426831683038710341068705497092362422447660953924439909043387056186102891186555015633416003284835242770707262905629341579554590074647081436953192851799792175917690146746800431763569241244357869626154682770420189363427697969152138189038834767606365074967289116409053372031178835313229356988766600972705678962379546098343745783021034898449577623017401999566207270733818332601644827051849015566809929131415881068890542650017894708353756382604097074184480867626141789473060736443474498543402064514834541296096813740755754270754355600094564744123251961785352131314173694763447595733663203700192038392733043796810917562906514675996656699194330984274606878347661532180495762099943050833933328667444740604927089393359877432234614106593831905719934300010787279350825305911041610526899056610816811776889554939056108575804929629060460220394786454524599883965936888260598109439926241336416477583189514244930863288771539955728079465411006239698069041822553093299833102696883248806448920228617229050409248388015566458235774555548091372203252714127526181721960546003856922052987478623776247093781823060038542427629714582996510651779741494703502526984815972719200844378752043677320694042138522213031022602335632516666712957931951959188629996212068649174104827599864199625073244187759194894595374577748385872452269181196746427646039649313767762390571495678838998301982932063483944638515102205849025023522163811007587959704510259420322472103954340408261175764364375132126323666136584410637684714643834948162221701104032968784185240405078418817354929349059586954339762912344129386100634479375686473920830292334957348658075708874857577296246837483235016931862291802821581540152150924388597736165162369590721521707140496485691550401858596875366152763392581301144949877227417434732700966919611662556677518761505879129251499254034159477312307963253198587726409755659953973728230291715782371674296070744072967995417752721537166154785145772917388171527362254501403103865833605194760068546357320555550915768107687892344820623249154758501404096123924856115180380255191090228010387592303418965596676286223179688150507302169036731160058425381474441921133029736246998597637724870989102387700064932317163051797688533358815741109396487844971550217958590740678153745051982518892992563632278497862586334619552141027449132223462007241050877178186702351544631870438733118733447984274855481695275509150539413190039254896519685697743204158149666001362027646374409274110468536587453731439029758773527727063445652767923206794754549094844736079321045259319761202939344910118877188436454851580830572853892540615985161260812435575823381576717406443087414966937047047028497443857371175162078876898052037443861410256778559935633188032722398343641917455231725920022914930455975506141885445557809582531035174111720401830886760454077058561204347741375857302164907607937405259011966322854236808610680783816037092174922552715845042251052776561434114959902918570536310017456846288935039890833761101644953723973211450035003646845176090051685085133174565107987159619912594859322120390781939651374194371947993466697351381985076720018884462407382079785176376125718447224932942300001478471181108715084297026455125605104537421868699870651185559817993895149757467495630380591141303973186553726217820108511645916525117076664956367279681080411074025920486525892252277287521918552862073444100416373690183979142701970396415616643782469065774336197457434058728136765125152206943680259158870949421627671592550623431130175401990108007261469444999552661247517457596328359188379362631414908384132262005797726761921268784617077333313744142614621333049755904336636102988914581956479967800266875969031444148879437635801847464514077513691778964797487187713319121455260846583253945248608964756217724202202221631317732963882170686531270802907384679202915108786654639859517480041422109859689346637230725640237852868377261922531835609164962980355662226553004632410701886361028696584878582404278647829337239414476785697495728757782401702276214441427505862362640992393271711188379507922878992899422786401590538666075694143913225150120655721457148094313641827647821642208939844026279566219923922858019445872798494189668594499932518069491651892082525030359534958942667218284821164004492736317763608315571946741442702835134987371386544180929684039964785656537187016951692102444070147173280261903893391715758552948557818370274595733059996565055674109775921248123099590674247464615434726216819951096918494343982287552346823325855409717558862919832146928944493420830305760698917064014264184779899693720617450074163616547828918609902070529550082334297215241438180431232685158677376482521826085492291360381979396241651066623179200028047007765646306903500808451239724383756987425338663425693376737058244933249095867982151646245716929004291243991524919404419018497757586510996481941224719556242577447545795148062274005601768931883629713303852717700716530692068951383209905262523260497603642356608879244698072084122764045597276127939242221554159303928189167250660903510763999890836681525355915351144182942339482425691442277862304701115232334269280926498683692008831025535946936339984386548202923544502734040661909276135941998740979388345745978734885275972313740669924100412407084682065844544533370316063188796405076515238041482450891655576577903574311292160504953834785874253533120102682886264440058029878688538944126505004573969098953337221921626391563308010254603392374555784356745321362361487439643313890547037521330791203458199495346901716625028114648186219729164080116496726209857669972799788083307062176548310941747683510608297540202086162719493719011171680271010149775746818111163819495948784810480483744012676939502921490711572103541399948954204943116307491621157304633917950483862257351148695106292562221651641783460915017575289614739852786101807716298978051036928234327461420807503535765233113517643166891442311825904069951696696797426385203082857200339127345451329541223198249410578440435903374345375044244124445727102549271343239576595468004195375011764861972521507179246522489310072778917330399237996827815441553121597934589692748269920432642585161962539264576325193780049334542375977692043847300627630976350849220400947287757701591993076921980907762754328241039689879462559642079861936384685019143859671648132270628712489575956422658606150206752546953142994682362182806187531263521116541995241477809122348016841788150982274100254123616881109872047757558616947076019791901758436666038932230384944821997985167798148247232721584826738103153556765212593728879798354967964757670175669724385230689425559273868626736310107857849506981493671293515105152776088693596684456040144557131697450670388903284849345834294859138907216847651462670379472004724683788620427163655078890633322536835451397740564853999530819229592525269822975134406752040463002933217374029745573503084070112896720113007470896118786773273641116346456192999989389824146872874902655386705635267252772047747980220138641005721523525989918075022337480979962002376368009708449467063669420255094329173287054057488868361119202387076897618973468092981842425731496405188530734185210476600510110229952573099828482192696282697451389947395186532607370267252030530739082362153245156511553422515527844698886053187919328047939454200276987423801031199509368075204074980216314751216543095302578049046747603828432889370350485119473983918970775490451135988980498076180315311203453038059507056940081120217772206003311459213528147529965425845506779094527896505661199068828361872749595001529676454270209213345068135003057440959786279777911187441739634044111451179829955498759874139481283026475289893404444450166418551208384747229605039585507440260381307617223840177408088531044925624793006212040892746164168065378611039346417651671878151349528131079797102865749320620595067584548920747531118465319155275121573392890113627429181862350141139914226516467751809862141926200468727179843830578288810838759530916384522761209376761743461591864502165051911143828734551292847987655112689441753566363249064259384408831627991558132877284339426229364985796269847506486697766297908780241917008294626540785745233817135094581352778971273597227385038837267091550220848753999291814916261552538965460118439916202399274094559561441522868239193938586936247604056360049312549668149081736259129946987881766969798602246644892085514404731942858073501973300891626705645682784617108419463769327938385771381269359491270684165112294098520471822554799893378080891863319975366841870347169183501917042124027798095131742663888891036747175604579367623055108693122601540702317069730994553496579126473683253713575118803855052003875252766130048971206004193721415755319231940614324511687317761490808284119918719278933182303049292246362589486108022726249634570989402430947277637942758371548864491586030682038557368575101736466445337554347172304825605992876849560687709939192751783202076812536147356025378200615584881844685932355473856297152061907117956664243127813301872715241646010579591599036444035339444979159060177468999419192439169016718844437621938617459078931338309638573666325325556253424401354799188711063603914210040190013026771724496047049039305236564669761436910150608581510911341950921293689615592315374840574678715574136714141936138269527285804019561540553883873242055030067960607897198703437808247936239248976875412966134378355788870220920127638168631050577783469351690028732977558323241926651580959248908259644089524073012823084622515547566353317335767953948935090995103708062020014029644552879537859183678694487480765863767438436016642353770728499019460153977891893890351249539414505902350939001072368930310355137564852615942083433784422376969185484440306493681418433083735255962575034109324610393248146199889912563409854230610164090399048864869321413374644332411991781578307879583343734115459954700910496323821509498223697865826284876708172979507019485124704686542954435695186241390780996743070348013837126505771506018916279066719376318302500498531801016898092372855645504240577104637855018823188850882957379069010235045560208000614487114037580200040930740161524344263655668983621666682114251177960469269689938346667826877786208868433362790185487875648771954656998817096073300942455174468164310581726795445705843960542950609349909153025073403868411199596230336658352991899568707145209367105174841755761164308294616754188796104483886110245888363025365277830322345374535961813105473108413242717622900334391237589798877343475247183084868947003421217969497763464717785446722238900598529410043384363578655960097313597965490516028295099336722914826944638286082778318600981035871882830680565774566237579094394988762688428531662939343453761352674637088390293755470932901607417679198056300990548503301122305414059878489542410128682357738672428494333101931926711344062511049905600703608492115499155838148961062887302177007411102287294373441852875325890691122519137278397929616318255294747233976228940720138046743375722895133852080444854065813456027384197952804086989955955401214997406966364534607310324451628967778778244062219659028614591232812924523037874403795726606011826818221840322093772628816175007831676495137056585641225391669951694684988684561184861366100291032971175011383867337352199561017655744471941120903231404316874069942101478934257664948838500326613618994061899952434287997411485315347299199615420110125446755132871143217558902066536291152744233372596456883835079763177004737523049225414540059792318570975811154088265178556809883534174590064081478222623697205545061236899342691723000684724928679099521125216551380813064444060954023828946654367277846917761751331718324003572763134730609120618283165869222471157276280604988988664014057254522158593176494177514141429599111227251280829917965893091510700280943278921610133846031161205062308239552669371568037070870708417652331103906316283706681259833635476063896774212987358484572799211709497109534967894005498887344890837143694084955532899417934713815914513171194908910374934224383763885045402775294676714409965568137569869957252863955064274537536546435510190126089855396896391597658044925494577728251827203306948273509938496553331238145571084663074512490519962709281829404211203602750585123059534109585531923110746404640888646145516499212852204518079966716167388034384619033102264541755766845043549057056041871065318495445612865890802121409221217128184707148687213700550093952784031906389389575646094967928118547949145749272399672318228532997890245496575950486341249545528446542233822353844380988384786766717632656008069449366007458166948725438600368665447409183996800709254130708684524017439328052187974375064838093376214342455457093394266088218096972172742031019867362737342055351438431219161422494342911909600811004341755475006277558045576542885566267289419216870363406770851151269844283079931472718000551202270990905969467256985048203605275318966058095889157856416010472230320339059916792545408985797978855138686497953009927980641093086925436277144298032877885332228307722246291945191058286153399789277713916145234415599853398413522782676539998728133467609789332704735527408510614590547637377908210571415985307302969311151610753605961431188199097335038616715495856889860103743701216264731143617038316612182507909145009255697641023274288272323931627041169903667672410110614679332178612543795042033846039812788279037514469266696085938570746531466450381785085181118069792137819211795460230896304295955694309619115912720990566383121732795850698966591460308432542062493687254598019430198040515433803517800260912167930165323287319781386226330429462165732603531755479810156465649156759623290774598407947370127042705455130095424873189504048350530514503032993628228692031631009619101447498556335431713009396806243451405251008888346440620488855826150081018170820096986873393212780659211047277389739767966414001769706922786879669292366902096098187118514195138248449190092083001373863231184478468382460179376680068959316252400297854585420221121070497329788718904471817024106189584461841814121277510794710814103656596422626551613723525412649672528481835777012978638162522141180612071674119542350934406409526797946513280172020492914704866820870583235488875097634632691625811597023292182329727953666036906915445789019545188823192074826509671364701200586507435091623038277152666969997944698862258804064634383181899683651152430811096404769826574638720832774014900362780713207295740128306491925783932639089968816175456109406934376320678649468586396130086123214987928013016045196222215466748951016060825582510887318599947062197508362853674986226824649596078033045700008117663605665509169433449484979401511286350629564279975105526243690459283884442997430619900984305034368478070373767910909117829417536282790509885328608214979166949432303630258315307459248446594244105696539593026299637275014597176007672924920734949160107973790300288409184981550515845738691094204426334608410251443551601126154802549656975834591542754038658509320995608981832375795177441474401612303516626214709719672935897444242896142306553943376748512047134235087617997025104028917648550921514040247444592981925645227496279107270844691074605173885602373053467941507332973216125889302058389485060518741264147333399933570992166606829109825753360790964523441418238059076943284412556118101820207113859581521672697577662434159999334280406503682519071057368196605709583251214774768309717981749010834412746372188317426874892102900406367641166635126187538603175917835979145607362915840180123718831002792391096937005854133463685048612891076225951857279844045141555045627405892742222259393412260414641533305325130162474836355639565869149076911383822329830637617164104811004324856585893660635910109616791104384726296801827340186192718787574905599359205647457843142240270064931310964214876773659050392238400054919367141283376263143417624783164574274547580674534441177592834175642947340196950708785862420146939323848980734206620451292150338772500224363584976683818484704179738407128515411890289332163023919463273090996166729198992838267230446978280409041150601236150970361163836242294173942480696080147395439783845620349419082218556351734870976314166561716344623825078193263440725676343028723685305501339373522814976621440897630093183699104229572725673904699345021808455591529449447889069543296208827754742424625583851770731507579167897600423343600881226345872884214551532067650940847393545505997354313158512745063608065634704450781139050886910549272548055296462348601580954555501172710459272981207766762591486841309989870912275129385032738990603154846137737555856704064907628271983500775193480333378829228090459217555896707265016870619476554682827226273727669530807492713008143635753376901131137065621779384404674717384164219985232027952565591039719029520955503768992563433074542080250965605701872696660335178267759531861673475066429212443237303726467564212991834689215453123758619378931285337787416947347616537291297126250770519945240351005014386903300622024218657027542827278959666012179559799011128595751868506157916469337140078720850159046909817921657987874430691922241871981303418550689946078701077601812209106747981670040240531466322403321609923552416770273199751616026374373895955788344525998638444156951733081243227414511950027917229688658575604141271009413821648203297974467516667139609844215719073433032855654516421301794663696316950635392697496505640718624807011805971198773679161768957269881206453159997522001940513199873691373219622116462182149598695012046660778432179346395016062492184379246632110855625399306736754641549425850966370296919389093415445186784414918066835383026585197829953708889549843315735489234186661396838049905193065616489298391728664648366867315102904977125684692980631059700444612976787060166407755280620530245938217208819472794803008408571753217348107222763442283065762212919838126599543822932874743036178983520354317655893253106641432773503578272549254678227260779248650436852076049686476795151688077318808319115074785938664097866878704709682733988447601168885823250125264866780713445321401262177879237422872010842567926133413168886643803853743430633460839606417455419645568345527408330599916318319197034262465659968672315833081462229294910293256398090083198666455647090895543234362399654321682333735616476550188788434369245453852953180560433409366855131054698248460540290971284151543658601973645648034967564941850265171274793614778032861837546010433765041740141041158813810830800776104463169966998454668091250064390207543933007443143286623694717572206643568747667526198290878631945560110339698977198670549033343917258761105908168170455953262176888486207032395498643628662200993398456494019551115696312351626610497864950774022711306942577555558237364531725382929634164954795371117583805760253961235832524483750119389999986247189120486448294916420526596590398489711070066658033896368311411836678492125172423438876580554475892550185582443139299967958547520075603105539101466910238903200921379937084949325944306125212826659016508955326877859040629796877890490629203690953870536578104591793112207323770649904872786981698473677123361441182534771295903600832457569261171722853089483004802423236612057864092560220402134016358191193718824202389373805284183703870145090098395491886369417748605286735500305158440558324951743633753139147277985844762384145946247756100290267585681318783821288103654395615266832691639554610297095780793242601267128563710573967379427596346572238657301021601145611857306861818427587913497119685031894171643223883051793809884628991303622161447393091746755860083715264363650090306909313324927473469467253168040757118488285764730263037117842964420085573076888338662681119611119952501234057246350334073926940567770845926159189462632594322114015672992002736173769232158396718330298602670604113945968906409293461227508847594301500834698236141376467440277358019388624246108545117466472777038506324235176020119821070415519359279857342619690443589683432594720359488356049240068959232879722574381082439909764972881052157110347757650983234574670901968914411195776270552456668392304336212245912978630552492580128571799281048869914052220212553498490518437066094057172745576579163612537880447574660470352568972430265710684584670580262572002012302019457732386500774773241124592642647612115410608747765988375873631287020332488165082117179515441463803017774970047021993152000490030871167003818551019739476744579836783023513383544765184107831524832959383820902771273789103689508546556990245621944100817729445900630971794117716751554407665722435194998384702491370402501005902582983186351920000316555714882717781711812862732661908001573263890150270425315996478383040065533375728984043833458941067464489899535391722053195358821759314548301862468046703930930877032187367316669151143021072825625739582418545462303221081856679927232112524603905128719762300347950202639453923817236619708343487938495676818872217016516398751419289155935027272064069125658070801130116952279745329033029797974848281304441478590790419348001358983648232606194673483129000024425212280251283251286530046877753089917752446323544522114128933041458044633189788502070961608652992505369502512998987203001868440915799136996729606099880974752761511657270131833039258350739215195369913072185598646442590886451504014137458272113392171923256554866690762908255984485216576730426986987082353337293256421753661654575423830186544617670172361749613707499050684410145970813383355899407694715967506495368751288223196064014986610459966701052524761930214800118643127509544264385728592756441375258332032531012731757657223826245306236474777391066870644859915912627816256717163092815954859672448778175194196863293005451998233828472068499904927852001916560640648326769659263512077962570311363590545903494597165171617887885377216713625390891497958823550834571492023547882483262347069903530769574511094713065334562430371293750468973445320566211159136476264682788048680632259121932321266776442306695244793276497365859100565534467668401341206136115670443653692084716341874538061555659996520667439964667182503287703314094971654575392836223276663200187011210749804510481930941206652724459788411482052558409191205157454798208581331829792614768057296447874205985495061597749173228760815308972130281388640164870331585742016840287824093559780049365951185944052774095656875861702728191982486980991805567454255297588749044891949944759015890918357218680514915233294458361060247799680555840836758639757503677466814321789731241743161815458163979450973098389049729257256226613374112375066214233928316968061820524550089982591873889212331942782948810588904175479472725662041211883087152235644636515692517260771803075907262587471067442656778452265737521626935563436093104438483017904094194194161538869987055671134095954468637986964427779704426515026525465294042186874575708757400292570458970220596755023217718534940739845059157066172128205510917061642658362106043871748249306127684858196353198096031716981084873594493886302103184887097064300046665207374712711015554583161984664349057209768719632941936863113574572602809773543264098114882680826918024432660941258997579870182246976703667799662276136484582126917442101815218793046650010492505749342352493011290268056572984493408947558290099751733254384755575183489174591152796077060033629661207400323303997163495442289316187518065706089906811731100971508642330951543673937642115036058267698131123681421147346267304529527519513087186472144676800846947363506383386678216041659236744201176113907777737327555661805985263847574291143193230386015656784283865406529872859300807453527358322630959508944470859183553867679699624966540865541114099173681736231653876883869970830131988008042012894538877997998963798283020248781418768743260426997205747152714058161827631428639444808433191449808219664237427587064465611246289124378704584902951309681852224608921509670138112200602558764385738874116547414347489783435350756495770222642008794191509072822957346902595400988479554159908065280309034639727391193337547027403623898010870381036563140262837249091858002202679425184446295768974802729258089337819536277145905486268087861898119663603748688842848542580791625793174701339371462558208990976692920362870298652117050962693570950726803684844756279663538915480641903504474043607483306702019227217273275945872782201756579844778758521717381740784038621538253411381772977259416486595807747572819192128129127305683960017995404746766521921925836158986700129593455721158680611346083879610634420559687577951683636734372659961080002369102106133429701253001791080531674125123598585827257006456018712223904452973277706374912900836838415980622760235124218565553857243279936364982790915546956553833036215594466223938519163144509338414367745538832405500120563610130795390960564836464468167187079888508410495136567675963917392319406857262521339856266093705508453273320876616865588915309505379581224896000745369376837980603165161964689929143412815714743525473071856698697501556964914250314542886321559668518580499506197967148273683653314759902636453225357973455416065616795867314326078412175256048885346347572619586638379532764253076156192280914355774928465793257269865569855124545568161863061493467108665103492195218744331949534567445550006859808007498964253039835164973914002072846794254263700654537402518763074852609497406870897808923606541351707304918916435671533498221851679699524221529266581333007802320534772478393191611243224434202738135319217444192950392402038748601033436729062667238636359281646380732865562241730682687400197556302634524848047761870503325538464700825473546114993932668230140899660639419243199693749826566958743589740045070937721215201778373387457056991626523352304393997883703683694125718668777336022552989843464201022612330848562481923072114747240302691369990667691866870559360821454544032165203368249601629499136769432081498638746909112140207020563879097718035185847948052688296869338841790031887099499145603945011186078576361048537544577943456310095885816073701600908678437950173790840631521077815628651316465720459876692534789690995073594247618318752046506090883112590807758033049740737100949171742629332970857577457138762959953239019945123468201381370602302555764754625915576943347042715967680575565186976068874916116855897359972580515211686779582730631088526702442072983849162182018379312389317088710263911099401380051353441802239191754693059732048650560061100668013862581098325318514663034340109775487549308601205317532766132697777902499989999393197498854088120148171621653548945746271728123253751602146585787749860512564606154486554214468225571535367044331886567582748413598011744603366435320262916401516990574469722694793816965757088235646220690989979591681693973601142034877290982810226165053930244041840417532711115087489372398150217918547398000361297725574096988359318290376376162215490891143650174180314502839065507951988156435460880340741613951248915068564376090004791196507353927003566902189289093808471583705598515358123772873414908802323176689880957159203412943509313415484179796635537549523919695616144572506899572412320234618869578980560315425717620972891853344800470790537950608271584661239044843685875717460897271799475950205255476708341248775274915385555731179873555275162157198363812723869907545063665156251901805998000388084911709648456823195954678739101405468460152263518671761925585453797407407153589478680276577443958727353315908623346907783303451975331121483480022256861827456689672329903941229024647799363153023799535736540512803103728804494747567859697550781643292196893712578243375232125895763035687551623511437432708281387718201026732272881060118318438300090382946850684711118914602433458144185549635972478209403254602479429410137841838176276903272793378410403083934692438607843901320716967504013838162290986659916298569494916634799411706784848366499057520428149585249916400079563141342851979856413140636935268234971789537045035177774776406839282557370120625822058330228537100906997254448410092516823433878297039977782360009222844278668893501082743513383352472950350840569900760282750987289780464996959960229520087087344950259244897684986091829240013383110832072165351934228005938164750254304039664062708660939051501802928667527899774368663779448739960162895982404587289630108643756603602723934356254472111155271353316928371841546503861229819185494334214714501496309035724724215909170191824741477328523534448462234429103760788969030519093932456139515961587280440574042859661841220240116464906121788247685722889354241140557780752720599806027623548733583731949556446122555252867648133408494401938238817849468664063222709804839538755483588760110931111478240400854446355351569682810012100753094523966980586619297838610983864606087624949130957022152388911640227809613548478709191782889400113577177558541152357959227452107893623864573485703896088860014447007868127211095703157015911517626523563155657841630747236749531608616202377931894889466017682428655931584965815021175178298743422891006632636491992762122970069364790991555933236101461306144425853472015817882867664521406474177477989991497336824826246737043600531992694398918477934562276121667290988090661188782243194167886243028990150199164370147738054335753836636391851957538400690361529006099328787658967231319704501997270389893030626494342626576500788320701799720424762411819002381012869361812925479163223801770895170584136070280260988330982932730310281589834120971238984576591896808532294245529555164007196070184850065012716146196430982823291522469033208182967498786348894404946161121783640513941436452032386640872779255309981375518237762552797015831701037954030675510481473479614968072363861274064738076566463775589833810787637532904061996999394171317444166499621064503816940421442025624247878055747824331475885640622400070746859486469470739199831514201782236869859219933945965341640455818968655620689003523957794966003714450332200949142031497508038137430210927892201070717508220563190449161499056158554064647188002454811183142174919276187747500984788179412739498471808565750585581000989133232413344294540456156463511521838495304145860902040823141177607918220965056438538798826736586129443692389550006078623059051203628268303514593608339917861445027818101474824860367808770110698496506133824899805519432579369695886288918312527565838699577895442423631031608831819189583768056976783396508103028203436332822413398342314319087235746943227004549423607319443862441670500334702881342609593427243591349125796888417171176910786535597948736242237345763239918098898363332480973331982704046446539135876356425114618671751195229892700203922445521761601649434912315710852253924657143134767219157180132081391885302658759464596325477372847886184044904147774138862546265995796365664319355009104010164305004774674876480007129223387515088198954317292233170290512380972959642694564383949762950729517344564046460149486678976709117378212877484720565042303497093207382640401859565410789122288174971632616908328845125917891363337686864662255398828978774069574895622094910190761048249032382295815100412444787056874041807217964084650050385468192943464154255325891983100378546860962432139384515732811559266877652966236096884747330855215823142828051883884959906714801850306323893460693380330042184084707384314978700216867757382157893720876508640917667812068895231760107196780143009396877385333661504193322942495938465100232244797930886893467108899273526263964907267346167904324727762374320104436714935829479359893622578290252467158987268948268311288450132646124697008346277942308728953051293192817384104292430754270209000251920922071208417238200974566512975644760757125239960459554012465014835690814413841420630466533091465999524197533711600552509827209510951198981221801649000975148586592981536908101362631313206745031685447741711450855232026104047200602425304546701368786957411857845254257883478718085200764906971747539330807550289415870133372536876447746537245671785346499552668370402909809991083016513706342632545025584490948370462450239346565856613198311296702630127817037345342299237737914683174357103660642826881996749798876037992535087532513674453851742108790703205557118529004973366662748122636767904714724628105298917966008912217825563320931260486555268257267447573542124201238701330986308545334667118796693821499206900295636638673795993622687169204034914490433403665043697551684537420397295022606695645983767471477019727290515987938524909481959696131856076375215432630426359775286758352401738022606209871050242417135614514997117013387850732884534767020202859672424786004412386850311405778811662769978833606716715833714246056269390889052911097015690787947964229960735908091803418146385973587826418441260619498051408846409499258961589012900122209575677368195296982975310962091090112999413330134435325341386559732440298022070403875579109630920908328901585128123729612850664055947792160080315327379440596082377635397684638245503799550412464202161593527491484268376495380432065388095703722484934212033582556371353082591371712436473523249193101897403454784574910103199146427457462684826654831273265643681737207236931147280791231721329412690344024881384930722651992456956582037733303347774695526873540166375385772182774110278246478162408375544547524611743596365814035053353250138365825610621139323721544288999865585436626656593878932349671379910456322794513207628653283885661448017108787642326416453176048272897433783336034872287209026086331154854791977658015114075844605703493752068406961439074801585524676101289831794794042095070405569924783175506534811589505295637950721595249129058610369674369981646425251839094155109809453034294675143469407157072038767757783832523945717094910754858172782096390646232280849776915147065230426028792025409924044050083588288884038223353843488475499966467054860200056092973680934758996263908255972599636218637751193139748731206874816396728907664613737985354513990064196761143356812490809797392629475400287610058041805446625324083306083971322967367602173875635899765384938951811873016281176168608378354888433868159828919621362735050831619617035804982395761369428032853394679499146890010761661080067644203968979096984279169222257057531390540393302356430646484500076066801266531921431077227289245003219187761899880342421847702333996159579760125479009901066890278548670309485804758319730747827586261753476581238029044062005664422044251948973171084726391502548361390149499567434748916211579707305828298878786481224834508775869476341942212198706253004363117115854083041963076988222590698706026832354645588671224294127375866035058793165410405041023072628874995118747868560374084065721118942675042818389454827838471915394292986016545611001324167297761627242033382308284688581348392142363282060918887053140717366377239070409452922581999734187461942415722322289672598266085523013487135273659226084755058487348849712754727639567217492503392262580488721680528930378547550185397946779416269369176593188281214607775015495058617228711403605786281484656820134104292093231879496289918722502652319001905824653051344324102803078729746386128184690108675222976742993206360901538742922784197728226195012033801126365169564818366222258264036420636952277549395361744656326829429676478429761225580458229435260342901687782415774438790377817585349698085185729988621059153204770459013280782725895982303118942379828158819366134212715887202352828064622878119400507540575342345153958890756559004383830893617855497160116993284845353705607930060036412944186207128564565091422437496250804655004730948599246298533296042549603108272995386219908272511766436487763003678757384165963542934143079586362053111663393406245929565185391412200438717909731147086555761021905125954054897527532209327925910780066689217529672068939640289232182992689703761891926276453631071693555273343873582506903048646051930538569771506612049579923110227073548958552458113483973862308046046439102107658113181169341941970219252221786366465476334190500608091294453608552828092095439657014170579385221997012024183240870770006953415658300203719647909921164023385500574229690009390288834299866091129730272444973952937124688207158344799267692254060704871287161819923201652892711016952734287410135898084968526317934339976289988745256267252262613471489048788754634204905763196292302621391579930769446899428616664679910245109894291819984110810299108591372904575748774226882814250599687558948473888617883093045773976497581182699817101788221181625118723696951555826223464965119290048440114164719391469437671109547480391457347919564116665579393964369391001753065091162497636385744217859286130525041917139255331243275763644243038603054423829637539661617294463104462548730311070828547413243741688461893903316252536688602237569891755243821907049407274154809217339761983502531271489172060503323114080455683600214001471708831074310534156872570934812107166386426260999697306863755604008099594396912047160731649746268514862784068129366901568256157989641541295836160809727740109917945750618899582596032225602066151514116920674598409545610524458758890688665542684685517076917575502033479275264164554050802537610021756810662595908639665039483018114328819510739047143144447347123747229917791984282749702720000975608460537328306966769928821032308550621407775186642680140165230341605170675345786036355508121089830183387306060848359034146131860249435732216133240715426865829075047875685080304005283122412292567982189546758317162251369660607121305377288866100433445297541572708725726325565485817506263353131843420695744759184510910837305355587652949776996122450472496077944193016027705148121008757254456187196327621807443361636623857660024139075136692889644177504138522331773432753935188875084419504519952804322060112964013261739196024909737518633636704204867615293447458412387128380161573250361617575579111035939091748824755374760173092591355137274715227782627320690436889942553719609132628863814139625869019189548676651651424423108432453098383036602978656353650111698915008293476818967398901585281190375763916076822869670849465285196870202942758019746463264005107283197636422840720552651700230552754554878661013799737421526024350827609567630873300362348482441053688586311028686549494475887981505012527638136585687339735561384000580751566800534833454889985571224767314993252931422794435676296376510169630241669050066338018662253360832885548771428577991452213787561960759786669272193387334019347009366882835717489049748092901682711876227675265359769367518388034480390604964954293501458967123967154652055659526384309048203767881352656293468840963383210768863680112077895141722698312093523302834097538476174394426416141147322578341736515308198928317261069486871471663282585523137993594757487373477060519917701136563977955952609437581538196533707044499132512456277523704204425663273582860162668775757982216905418201244032227201270431839368881014771953874049316971273134169529914270606796923111942448153174034414996335661554519506024571136997767353171103648385692455563509044994738365923866035559667943343270400309234453288446075023664197294814593579476455274619297511005253711210826439048070499153484226567159387372247165364706102199463514723006061436213719817000530604183859645901130006960249737343936701429426313574929884012459497835857748081912705688753289175189952483173117683042620851313740805835721584400803932781453550306602682147576128717726930073732922114730084888095474657207505478790572970458140502762696031098905709300132130140057289351825380814402770783472965239149245435570289486175172490156938788226168869777880478676814788534099488683411534089753231568587404182539846845826310805621105753166911471781402863879014237393507238811227350646153485178784868778490110781704996991566007120614949738975738353501861944234255399477975430896256958434394907253215306384005497337405200607195114369962363564190998848027549733780362192150699376176614124232056128958487324460088636211732443373159432848249882271884516127285209413948975907133733097430459255431385937634794253484600199016549540120617962444036344541784053456112248670168653881697051426389707415942916796868217559218198049303109793345880849498107179409768898764424347383455828277907327554736619979697843417648850836308131120339032860630325960615889473057601361875937596663678237351858044311108335388707241323667114693420363398342580671378097410546943189758402061210095483989010284606042072850621402665169868191538865330918180967568661726003096519661786897283283296230540527362152425309105307609135301755185205973447204821258523154195538048624686021957864558209577636544364005683307140872233389010520412389101601960379447338186668574633764675804558947659454857693652508064805281182198881919670190443239973494360762178434605975504211710081537135284879814879074598427201511673986205891664103217265393135162557555091756062353861231789941860100827594417987430598311770777757147927731047193311158307448503977034238530018725063969287277241637951032009914522758536656008788269298601951492663583837449231008430100191343726495315800922270857234616694757231818791937657550921694771213966194151834385208647310619345939857338560292784809519035608038103176977877750709055559986328146490658678413457780127114788474071064046072127961723782931252918608845373434004731683851570338861306832074599071957919030484755749978882141413525441326743988341071974806091461898554187909436892195080158721112484308455490885642434803786375570787973759950421399479664671554961902419957921782304122664198694614976794811384495612055413625984770203728024477549668741972589807120535138671419605935053296943643469312200128330825483471244399370403619200118232584466164557004414933002451980284801444288974953130827545142109346486610123841887556722061468622903399960136277814567871563487647055030754320292495967010358017983376666008992905923178135024223456811388469792949406118585371944618301050748068993297520622842368542762616149361914188651686449355788767202165712933912226525653894314374237514435635527243085453079447899283337161331885363926623129315326298840574168196941593094274528164100238607297941392211003766330075438236218527580737681194220854899034318735541568386766425194740679745674511477246903951895524676131627439588111589194453496197114251450498772907370207480979302574908811203723537027803832787107550393376854799685768621405409465343277955109516854831284190770855343672318848417499250499641989586059946407140992039352649050519944605368326606608271080750876421467274301346087402223962679216676948590889092354966428809109654917811021519591667656780973366853375849407354755312395988507069232149726855080249101951840556942589264719050516189024431379978291370273806749222792345536110496206642084206043754752220460977953323066685916495307501275711781738049045720030536010983022812555662478497329531598772984819247775338206027522548256903155489122596203249590161078832747903870939328671349812405338081227194319216104962336795168312516602590794219254219685345176350693024525574149604024098456654185530203708149608269103504764114804518004243409791700104103563642451913945115948871379179934079421374468145006753709938194617075438476856146773782838182945683051414087593587379692300655347856973888042237363721676261182838227129934192103953897045656556981217235149508163258327308688795397489965011710143197599396669145575293721617294552339045257973591996681383154786730490302965158067856741011131675212052691066676739237862914858683642984957073764121156822459196987343812927348167469224764434220982339030660922181135463996123691499820374940499082239004749273902926198644810150457832186121721179488606586355044830551679147302190144358223826369821219340500459068286080735344822320659008466423193005851686449269174822905488433307117561488310802538333662457586601841561586441890937236915191121290357748443456024288088902191904436666026052079771105407471520767566649822262996064391626315716676686088996905942330799876473303536426102916333544927660161170043375203148083839426094543477033350791218358415642146525060657618888723945678910105663237566274589531212066107867052196751802437859355745231898698366548214686022552192509370331106819507060085107818027829270081581578461038359009805608376691920660733106700505419896221189086978882766946636045662524706700011391378683627610218658238410767362184751452132039076603982229188334687944834212838165289292777815047279743011562286471000984700138457063340427565095357932359747169038676721515790239839612398928655229522087601991198756586726384659165260721867965284425533770993462035045608822575114155593467145249150166495707629866523522570902635726819291931962293940049024467527299407069013245583771787819950869282764333822676014835401463598976218035937082343485567791748828685040227421909257957338799372578058001554236397810558576670499476467380652901512565656157684999362612011190719047418401460845202615362025439164802135948825955209098087293612281284799013246904323917433346287823888188715819513048215840820870691572180639718861723806479493298228864839363033471811098027573621177690692008553813414273712057949496000235962026707853734733927189688068483548101212706500089482307999049071309115378444221398368191600476206609691043964481899327170217611708855942460449370985229628522291955201665185117383005464805210807948522058621873490353484626534919641656586751945030322434055437613141932410977436650572341105436258488646097243678449676465415707566544482988893413671929333158263530119605868733877836224311253565750023813232999693352348896113932343356881254537631202224591232908391339883677314355476713220988526706552090286269749391863663326371275869877242533739168314967148019839885294246564941508224534055616296828837630995323598687088777141713904854003766778922004721264564324861916226978892529879757479204537670941863042695338930574160734060701012616202667289490513890915290739763650077036043894745388796136725829886328010946192399581584727222234226835561379457780787439715170965505785773133308171012375196806481840734548216955446240881836811907046928492050781563125844619457041055586497026525299298613159297094534925973278248651027143081034861701632558396204458846985510610911235826364248744772225247910848368876530405423985712212443605259689155183619118318186783040819440892548261241424816439542359640082171517045087869753390237566336954492305230439592090755850272354428029433578903029099363333268414900973882324961565649885228564391918804310273369370980856839660263698338428910681193366234691277940947504465426953553572635092422360535564496617541292869970822849762697300256460859605336760706989305738352873985412754937619851527320882022782762955412535392500117446648980467521214914073606213817589123112676689595741054518239120070984640064902194516733813144149882530533897870530694477047881190524118645905473542541302897018303046688073294839488517963542493423883575168935844338941368332853206075327760799150824742160545647280188031111815146024163416778482201517343595523830024063967761855333413679605921106674794267870503669410716458127726016547625183080755576376409650287011215839790716556700381805845264130433093351522318642996894687963104479637960331964632857310740263219198774196926814876998554814708617848320980708092540492189902275246927520179360084485367852646286140122366186217378754601206560793832235532579615869393303953871439791488606550911288084790737518996589636171679418394599580418800584875576822025514491582124118626710890469143149077568204807628186535062556990356651096703710174829891271653636263587201416317492265443980751384347546873811545840817140562487433445260522729771450945940758464350791412494055007929219574737921123955371198095145140660268757382043602520982993948420631571653030534860641116973829581436785487066567081784383625036058793898208116494984819249760639020114633672125413372001329789882139650658149859571803070932852861729495357092314126497245396210960328783404058495217005437026940868364936373860160640168464385807856607189050260113263794243852723517935276440290745524111361467249307337946933460415394387578676436485610138544605273494633037107200727267206683958444838621279761016184879405287844783332064322556035522237165249903667995862932237713479435700823128622842351509750569935749209383667926661837726629507718140034961521079706871954132958622691002159320018860208036222453842996407738486374067637999436470736114422645423249552548692138378703175814622004641814816860791808994214516582270082666344405490293278577318638489481464451659774937248575161029035213683700004614881155883866611119756886820262655838175542934399031717487980669810424659641427975588600797820707106230916083705990439939790894417504064304969999559941010632219691366434591513317391392792355948050041282210624056555353475577856593834516002665255822329070771541281959809125892264216061747651574379249932985518081762998969697841947562688527473916428741873487020793318167167791300185822465626290073988232634920956831192864162468298926331150663763853707324157154522394891142059426721627166384304246190125472282346366876713038117534496776920995119459000853776158051903394820158397649321553375935795394304870378440358053463044952261949714406695400869172303351584003248124042518608221161583157702457870472832966427790571891644652152288506486284439410420477319086186383005510499215506839834109587594532962007670849056396084425049604592977353618691954512424275573350289544789886607403627153034987355811024347538864534913770911538807598488735969323310131959551732439911888373687985899798502182703944560300839176554715594531978829894302238934667647462148947433395115521004626678370499888388298479031733183992869207059187322795593054028279370479868092364850909692743592943502914159163022651110291888553514082495725973328700985636467229570968237805267163386902012230401359153284780902042866284376217841767378655424279454737029239023505170828586762194202893226075847222154299349467277810889786185628329447124878634891395559778155856192864700050661669206852596041647773499762292382229328236617213453231077084842747084514827424435397725418570204977389477213730503597491725386469525388572695375715868440094081746402963681972175762843610154131478016384627374598357105036992373915844440433049534143838711094196926838904867671811361979453782984020886246801550013576820385563944331607223165748900065481810980172757579554316204392625940546889764716324231778343898876651799804748384583012108669945601332243393190183834771062968009101133671693645528874374777487577362596228215634717322189988361606145919734672277125164777335968195746718300910487066069106923230501170677865042304640220892834246378260785795778931954057660776530765042532147201568924406293013065333314494297379562830439322336847718164453380164336888532035347852615700511828988022048051678260000304417996633938790412992100420025405217869371728935656252129970992571989507186523166425098616264269042162103688154350338563243922925669786828116968630462275551146699881343271503074335372937163819903324899581054612201604438662569103892489769664174375259916551015449059182030782141162564243226080338967055856800026421121032445042303859147614503026181030750629963154403135813019120517873344054161933599775348272873691103183836678959813738772063850429222892398923060282278253246284603200940131867069447810407497511522661281031882962861695524853050822057984160269974866095471409727734202309888892600977637843290752500000326606735579936119321365143845898834551051035334199210050383326580438349077562334404071292786669413199667949139781478089727836493257416631547233249362207594447859847464600770111921879018374327575574027677408337746823879885169931782992639316580663324557789443687450467686950165511924969812468395118771796367895696549126467668644754690134097638777801174205771791932345703951440092110036425267649393577152934268315711473962721871221809687417543715718276257922341275528824155709038387628946574158698076294556444446704957298237503185379949081113853805248704753085419512929528185532034701733395863874567535663430652364138130929441160037950708569063977097756156004325297039523971007654699102144152293460991498299657573965132885057283852139295493199569608300589664419863516920959325794122574158066535560222913458090037632005841948499944130396384288150328478412289405144342457335718084804079008150524790568877431109201430940502217792508646423756368606963542518879431384186332346162145536786395300046904589293046558457024102720651907929982619857483996444567302701041349613358472410291779563197421424984575144208633108958187151043816241747604245935740203639806537655563218627752597623446197634078283140413142980025358893869306826799744793548319412107589438367120537976101671046393799740538607540118921279845553882999391682418484243472324301585828355328450238360163439057670822298125734584314404556772521214432836732062462205593488352211420377634395300968481441063664420545911497662140223574262649147733957637634317794645497453095562440114529016602444006086519676242992653843442648459154658646274033453295224202621324309510646333504744444410420942324761995054529689535383191442410209694920301615094458699335055277620602467100413845780560933545683340382584611117416645936001552047803347243264558665869086341208690583656063590622800346831756061316940698192505518765293253608757401785217866344104095130583659154683731576698245191755972271667126942177457091401698775766849291898921739424800308337870640283693432137113966896141322646786261067544398331184320393563501428488201402690013564246866940636077196976771581565191205224927351653925685409957831085876337129089786060450581832396086078950731585310444899938219336059372003720507119054764083446869258933909895595227901567623418896093056751982353591871761551111932265917231076347668833327964790510321174192654447863006175834893220272230886826139152230695363151140597535102315868145299299960905864060611279867671035914325158785050646976697449491177546902822233090196252800708234303172697142033431699235884412048010030154863065893806085724024301466845993913296720404018291871098962464352933315636434484199943562772056776648960629427281410860806994541434559349170604160268694244400623234718743128880417466809161040154087138903252692661059670561207882546891830089010094772844091862000882479963313698612497610306305109084458727708354762793472217902384731952962332138993770698855239945660588234729759248127852511619179747634518005764633765208355856792293709188165282526491380995195007962624071398609591144558059557512139667941571554719273968169600939268942530733970428566145554439979279104893585473273498769379883877832363653094105567551723187554856773811649323014641373439298206841958267530202011533880135948877058436929702878136852435522366623733283791173677521053946501362845384793189161070908870811684745375852394308511713534791361791659454134778071445090107893897824726785838146058705857922203022095221743630304236748727404431169736744053328096553887156677089498346395385417421567655504994650571741398108141221659159190454080556069682765846382440867179272337131267214297099929012735843733270163929778764073653675058866892218596981564052724750943310250257218480955598404767314981419672299588452348301431932774220997497717766437465387305434223769619117863161178571382757064003737773910331148297112149941796823537837320827028771953819543295466935740431893419135829141896018868967900465973969866624516776976340255223016897761611464049964832442147834924782331374126971944379266293543776111858948545135495529383032710922083363774617636029910122269629667714829152769443930255341284210648378950101626377847409923899479778944815679275816522547084310096753972332907520647007086168108443589933310971595693703035636574158832086003810837901958804121501766739291984469765979901298327780508240832493007423242180074926578649229856309324261378988637903857502641788928537210912843319975099285988944876568043565067564514968296451005768779841804236814318083140254273809016338186132090154500774578299284244552601977569895562370472059211461806211774510762089675855605047333665810012922527012341717483687804384739018506940168107648572544418954625356912029371284651015293192201068265490250988662138421990599527182201440969637435240680501559050229233426993869403821676660383436046859589898314205727442200299195372666936623775277423702555611184254550986707538617773664895374009008087034445723315649382590428512195938650123988277197591347326337185193320602029321817181309555518009128294000004487989209814602370079720352598302041188194425118614763485778063472019329325909113056654318417863435890229556784691589375140905535135527113839700659288314908445073691867650049213884794131250207632719318488343492984732234597628998488341251500363269502708753573847377997007814375149303710832542412874469488679517372923608112039849337102862452293223646591520950350351125883428916336655420635974580240530070261396874134878514382602950653055161281561998037986920692024999073994033842488701930346673390699081411624406502526172221630165956889469141387570259602577633723043194577992638621041274957108748941565853376969863628600394000728745548133129500287087058437567456637431543194130971820270726433342820955932881843803199286528477593568036607283867307063555355054456199506003782975589029763663101855923210369864167376799195896104164517155593557948360172301982097021427368346804168270201679091851225739624860243287743587101659084007384863469148945015056396743243316633233353178888996091179940502160275098114059892794131423041530127583887302200355738778402211267386873724377556781564055180513979090093316622462313045216709376411871229108537286963629205741793828102252050337048420271479205333254970508890222654096606692709045892255203947494169701788114360180385887242368739172909198311075557679095761561774600705917912581605887703918800212934811355628111074316226181218496598363984112024646081307773362417551920494798459447965053193509303588118517553980401726555088690638046208987167373470189721244841886303982196937348963434734214857870109702279879920527856104687381014054979932466968995068339185541646178963834655012440970750945910464427006386306328947813568002624159210460059688682636173055065217245611860643629045479227985215885497658823194560358703976524475723063796374677112857838631342551561076066181500844968276310450248335199357374855599680711488267424887895654759361800942952030224677610645426487141770406003250187869017318684144614792041195840660932338426704894033241141478175148750074367476489942522872587300864719437862191423490383383076351924974390877555133399274251385470050924083441967897587145931935886643880392758368832473364819496059019366250125957739344410505829638906734078272890777803357711617802801538677008547866132771366848053559608603189954427460394239211606311492391205171345377263416823756563439861515108472232394062070216311098859831687498912755709470706100139191394917151277441221401630452160293575985214096285692618539711354759976684252220777361849424746326565028084872142230391284404293914933785341035871189940442846532795888414109457904840055505167567686959000253707201919293965445346724716753253517905823879445692721533562420115831666860986736494673427719200680786882453170674216313332980124665833221370462855575073274834057209252932121560879211086853813026067459195012837405220731826537056960785067971297745236745937780603673465905680464974515846108850218056500512215605366163088467021991813578139654248965534069696924723562680928831326021466039636797441351322517444261714934278562960085556495691780594592776467845921259594686468493080280576724678073839915315069121221909410581331300731858302564375174881793800467103347744790386791207615382689176160850801048999522472214877458318809422817949023877953498783162485711096443729832610601928266290490225079237738678111021338067978685278059525100119633692345820130693698538234035853333919674654399894991146108341982731281037546650463879955960499067241319086339612773724871961350171523612098498778474036905061629501574257609138924984223003516979553174352999056607517354308696066328453233469384758784568325078982251507907001694850433952647160694698368260665349032374740719351226121217011965365707898133869770844270963482148330119227487431933061099782360771798251819210568497593474877625765558796980098786127809905076789093489923891697968293593022187394847818883963241983465416465880475849858776937200407829851648098937750216016932800539467855310727569269420610305527843407479434351315992881105366160955620101581340557698578092079901812866609963101262932319936034065270287345418400543985613105745737322548592479545630742461418284399461887504417758618288309004776461985274746378579698793194315671849185610691260306386464979263458330015646927247557128248813334937589876136517122192140548289281281492941357563299454995982174813600683492304478829826068577978385433364440425962788272344076027373023378887272140598707973686644033183296729106952889130020733104763928242471946828269832670292445181506997211369848434439512851280829635442875086591485462124549091911249198347388398501020184864378760074109273264013857131697813606946012539783540743201229225099728007125265082075635016832989597557046193200862951440384922195414194919278249979141568871403201331876393355529704080056750008352750886242737904487285658474536619456331735153924465369084174141662338356358211167878709461633668461409137145601461749455598244470364260029356608550441732840270323168937648282850775411110580152190804049460403960808189571176946185235407266209868235801868203810490633827949930275344522245461512372364730640456955851986620668168008888804470740592087610518179882588841944713255850356389804171207146807914974911506428504739379915040544082970738315542733439904685994846831665127075620873896237221758598401171311492321607903366384048430879847765447491070438329585540400738008622855681974140987579809668054551890568569074954256013377354011797960548534803000531274256506882809164514983868438285515461054377798749106336250083379450508030676327647505557317867407009970314575393702698508403532507533912976012145479512947775782151635453550468390642786695740741514446966211430919369341038957924442432261816360979353175632529500244734786031148831693397577225040243324514438303306728686335306477335222993920167434843435048529304922940251912594704946381584119880788615438007633791245363236410417729299836395015065772448387997185627074179632935620764287481112602406807065288348593614374093597142388813639029111280248049934083888957609986746369602588298068874136805015564843555665761730473869304834553352505944927630772956358370485891602536685786601238600350815512056186874966783260184014807885759427578265429562764414937815627711140877801345622607763905493726974113605392896761500274503395629953921264525299153210482406553320738801649697241254804442214109041845339277160182040400710911375615121011866399811075215612668418476363969564652001549279756799004576922370447237620811930798070031375037252086173780311635313745241135721861715324089698620960759549487880697969251720061836978418680712365687681185737937657875305746397535879131266366436194865782769181858203534132767623609537351348961653296494699420540210679227372848045681960011715076438820628344483920282574010330342185820489847763272755856871645306020442073108110370391759056015683361768875600946832199250336860778436559794555662449644395905690484789959603712915235959241493437254486433887039937749519401954275700742397732765146612128585096179863122363303606705778191498717847507997578881237078381215899363240193489102294099188766826870772970846602087307673745037890170098954222020511199612786807790121492018643394413796606085847738090163390013916424109514386811945620572136069516903605604400287832246048322770628828439338141871922529676642881039431632262806265855553933816941487081823913339250731775733163067688701056315230759711080553024466634197817831229429555792104829789985035974553924297094577966480827282552387386804322445807108137059202561411270274019331047164311163879925213744197146753711956677702778676128490928373124259771735424833324053918069806828836958351363053955438270070084277099044040130060676545903091877008149979415696344064860818624696402391051474527801552310079548118290530404937565644894488406743307929216990122564387715109575807589071460508052554220586173664878193867112719855465657673105848116701707457649320560443803642088944765392171154101823385755046709375389843297715635366797964540426221271772255724796728794451545553695102089168870365487640535862914314520077455576169786757120417072686404862045473762077893753880091626476535709798970415631170150651684577679906879638292748207789079515786827516266129636537984702606465828690219265145023372435332845232475207110466602762708915711198916705628686235924312696290160034743173147304570196585035960432507136682641101527635083575696630090486425650368850703010955926558155074186129167141342915017498910477320495723761143768014194740557265469408112029339373275346587336251638488742935469898017672975026308746082172549315839832706858867354795137063410681596112987510207916407676243299302530447967734227237380608702213069400601510135210277328624730933547372113392722021794623061546487820231033039380354377941975279156837870985097226081027593403011135817916486587148112697903933637794398984331368063129602080842521013095274915733630329489615890246147599857022594116525201971521179126514957916783691085217295596092701398923619560430662805316989958483885069504481634935828047593906408077179835272639872002388009426606645851291412884368750718198416605380577044871199168759486862701096201801575363497211194980514190717002165498855496950356732568400212166612171761199655042004728046745546403916716174475229779879030377743143510044229212307202516922788552524331889268851332782379138386189279413986699403798978509460139888281446406083858288921848311519267235405701826469958465116527815424354208310245358793867547130190393343296896057962929160805243294103784989855087241597052259095585416158632387283241251779135949265694311310278180125367417301218925076353102098546099539832459197225161658922833918883321925152008513138830205422237567060236800192069439890696212767284032304652663039767429921295173050974587772525334785177074068495829675034421376377420407358794768127743171580841703701733467372462312769106280145319127245188667433111427858156875087329401000096346379924051465155997099487896823839307582525953120468868621308772559251903759151703780893931197339236853791431692098875695879801552722446493282072943531885519828602865521917853510864634990779074791209514231384050813322768729609126828922778978511266560109811481974857912796599508093044770892241485705489226168223716974633146400653867533307461899877729353566895443023940855647168480566755015393986445542137482652682397544316223570456560692308341502542341586989573747476084885575711815872032341768795554974150903873028125816253269978785351239911366039982612737929187917345303022864857559640849228750212288463148186681815502014724757494326430893918159618089014930323645556681204198673509549242420690426309214333974073403251573870125624652390737923728447496742053899833962011313077537308948517060759860640523322536971986195053910201414726802669307183255752062684065029046504623287288308183110036756867886041706381096238117540813763354511783092839578486429905320665508861276149309188987597759531016891951670356377007275970795681947617436136138392100153942403341012274537732670378816366645588589216084828761852887289785641372190006643233763939735807935490175476602013002519269272793492768137671916595942221955091004949955433604603930073177329269484440778511956931043136174040396265820489239629987701342737344903875329796923440108912557377644436262856727984832043482392964741377426066416876533594566549641474304722291168393140115021859625857198687112212445225980361771619668630571543445917920685734860672953421828784751823268721875161049122279502134305869282153055434996310133334183747583016221124123442521267927871067533826194656350334603633791204139146167206130648841162455268896250323659507606590183820080140649378155209871954463923072035328052204568055946589407195696825360619028415542566030604307376489803371395636103859628934161783976229827404543069209523138620128010061822518142702605351434124697001587039033281889288595923525576658986924072074748441837289539088753266212030781694658739616352816168173401715987125230291729570031096041730681786004040095787498433121914036298380493771223974821727855066397633648892756018707949927154483088994230748286657633078945204165323319432763790862017337662977796473651490679565855717076804459851345764720723127791842318935787979324425615003266927589274393924372078527976647048531905287312926906539548690348218468983455959519075354625059446745455626018819135284627544109142920138750664557129127472967238388450548790613126867500104290394173751363689427534176844027575447904366975806147862305063436257876238304925711014987162307381661888218149649733525380154306266526386645159954869311836419168114045877031136252625551626734204116985725561180306560496657890734786250055381268742466273163558509819161647580244232751398064788885535156848744354614323344972244803545900531194745835744873404159371242321885496073389615530298981532273138833486680149929503124966638997146648664374451814109884080656926081944813048979624484449307083239567154685373256552596111145885781001514606216473913015532339592438223163881743563759264527224866105350941809827607187323187021612037601715100941997666728167851372742845945765096315024832857623658362526338197817355170126218024115202748248511102536159690549937478472685973163747589496916111651722373789958284072005165515118875560147316306634508911945652836678370735576698003624317790810021635278835535114422910656786090247925107780721843197145952300079320527267965930598561584649425833092781619284717174160107124044161640819347661198214921275609359798589341728351654583907697210353023940942585302333694427429648952883092845623249442770143421588153701731780686749494036097925834847294352142491464357119373146516471134042972857922874666509095902461635765222754576487153795318122110449585771650902431610126040517020607354381209849044717072635242157716951380595133997221192815089377791084104887501586587119623310741286355098672419444258397675950446591649082737350651494095077435269856873609902381953928612922817221654541763913945781796193889744724371411738576413706059163919090363078289148504798563509984049392385375703288464535468252709754542606425948086027635616387762298740200365166323715972442831581505573685883821649630407755720046978647372078014647170882822884752466915687885784161929700534501313072217827311460307923303621636062283307414524599304569112521887490449610111681249748451268383079932008474241758384164239956141358814881023858351068160075881039013803750508477980115423359457352019983098898069211367393886694258403678175389543853357689944709012432885722004046739581290971098306802575510938837323784309824990876997451380433882073867447026560295498820277371361704280898165062898025585881009224320952353875086722806552917123240446487821547916235259327626011351014167370430547946364059824854121955821377352412192758974872460191394555799837150031759313402170873449967942013724242049151961179734281292953599506009477803571889459074634205902619037523583688571565356701446873644333005649608652422542733010454898368797351141879703925875146973173110895875281667996523205537216914904372231489154920940641392891282561328880164940440823036280387617782302478977087595860138818785859433598749148552405774758010210783870393014768985735523154960159750451762014402319207169366785686741417090126673079032721822546968602094160005221595216522197949315383066903826675474148475446592379529135928698491170274257609792925552800541411355318278100300896501534215804405341102625239115891834505202196283143886179774811010354121341336672713403558719507461502543860573962411497956556046057664256072249781509250944781388177755285507243804312365964669959933872128182477622338351997871163600115969318157569751843212338254242653866790704043448530423145571221696310861106787457048251993096253757129672219356015348920111687459792573730246791566720392219400437665410709340558015729474899747587410758953708986463721530805225135824434765459597545791387880317265787366664830613538500742059796980806557535268382014431510171451226553404473795216945127713503112071082453502353440775371096053303429875294304623422238483998869557916056856289810576822449010326434750905715074589345442522986818551494597263296768686077916489770936524813283256613924625667918534677350774207481393676474098663047219630933942945675142239584056033033010403659325393869940360760688076661876396076943546640551766417079931660315583760345731934336170375493587633422044169981571590784701319943236357978549226404757375497016291113286563041326240245863047566007277968985558021149218473039845159956294607293359621141644289169547574837313069020736918228414126291804683666915989292802964700682925396143438841868258806842349509738605751421680734366919415638189909509755948158931487261081589417308791032516403871036685392121426647610748315091132400593844830606658270727068476065397618696196533855995684861252883688520893954567505169789172428634695729359226539709739228601092541482964092168921681170123041888514286359711038588706065240989042987880762222731884885950510843914721958196277091373690832386986968724306609157234219158526518684720854791632627360447967052856325318279633145978215243123040746574846270735578976797709811057832153111949733817940776840680626120545103907915799542868242847102038252686413686830719207292097756381707803699987625125605997841693773244453243709505142314208294461839253173486341084715318846857520781979848664712062493545980197361853384018722011882903645765754782755119900238072758698097773385054450192514391359390213508005034899183516776510722391637785016885527595747113843063376297216070963024651289941946727692700764279146642507216954209688378264415511698016622174619079506434002845806818909208048970157228220181503743533974259130335381761963891996527921823630104244079803286796423343654561245911738561395694979406803431737121304670621734403216641641813640815866417011439556884203643099256209894871075368704399783397363411718611850437121105966396644908983026556744015405995513910831225174592138285077906161893854861757079677975464057237242302619513588857225459687662637127768936552499867220033798970162522154063826211820849715547379867350509352641601524488016464580036132879073665207288439997564234361700855021961254092355235703945380192140016117901944426120446554991680160371767362169266065629577451976534669573850194791145140329066022129287252099090980998972437919056453415603422238745324513201128109158129208627923488066005127072840364344083522345600467579037110267862072830833676266530271104514826809728439924376457021591039527656444557883756300523252236534448370167864722671522282888315050263722197489180317986461627904445443483124735991679975637692195931074048822590774944464276765456390693284385249989348538827222828491036214801046717115263875667529233601439899132037930737952083519980158945837359803123002121287487145836657485088344384847544350621861183535420187775049889675096290456653859642909950776611834613190078591295170312883951761689700983164289644219877061576959141465635394686129472005453721445183284720157832070485364239527066313387126318704597793503090841410089891178172242221252066680359121795029944895882597885597180350168544719202308075393396878230137929684876303108085368380028277890259846399482418346336150104419691754081480700802876970314480000153504576599947051763367520491102514090429025561958661968434166297628402466250027708170663014058224922179419928418368181210494587545150767601710768269467189379604541480686832559320053657491313205582228897104325988531320990587280072130657203501130370698339950977141859670257089472705768009272586367937177414405314229250321852442364515317809457669638638419249669781725814992814156624784899281709519177950631831398227300843456223920988083558825601563025553896291055846679379186555937712371714811119438980918003298116255907053736610922555196900667340846490320592262003871933841383828344024054817237370996945235339928613634186414079421656708964180132879764242016208894891643084079010926538750240241493567411736622337644663282855246229400973489898400252614525638870434411648658041820555848545278971612684977043261334795574918000312155426032198477508278732093480962170206792748795620385169753322853166660498965435939922622108211884348460409862812396482158981875623870899627948293446564154558082466655609972623041923207761817899333877808227348223978122051141044336196887698610400575722049176045244814357545595686754847544030266697365509439841214030606611994953352694837233430810033832202612762935397558069864922439344765549844491774761291962304448558338621491385150329100828618587275456047836991423252610843234866235014888099458384329493002367343072856884037049909472542941500580426618786892666745929256838017225903406760795556650429981409545774458379897374529706947613008570862407774625949063937622969044347385610595358023674224013333716651844546388154612400630978127356921761964063394213596978488425140864234236418647477739634538724547398991983906675481734766503654694854573397893979054866243502691874005804496711931517886352444456951749644403218479070636601478833573138021496729072591053709882480442409478666721143594665928223748198713429612650293229972660662375077277370686930949084006426325914542885554440039107818693167540192229094455797863907205652497043727245684621436703272858194776338277419738045242300746480154921991105855649403438228510696236325264112379461063884890110092170488325378345241505751474647088778553913761681037319921908031293884236377793810884722348770269924264286855544108030211636277322906330982798845782416254439925518544821324310935598059421295923931094801465555590245860561140865928912645855202426378350976258209004566845761302502964725669679309556197968546627809935208251379672260655812498051608103748222038113329672378117263606591956945109221750766879680454476570379390481394290952043328608618701365609762384736381750389220887320217721492336187033580082139717487407397001236207805888650312049919942256901512137688451403445389619796052787847516222540855305481200008285454812082349884038958717336585319318050678698534296538011979764354997722533067037226401176032314900914142347701059502345423818524433862339374020764090750157740840264197581445195588291187426636335061800592745066218614880252795457874280888588299076401304583618074188323713457176302176588402427715747441816275459442245638971413142980392728766805253571734742809986512265972053950514641393454872956242723463220137119658163550998262575199422668829800189202656740646700645386437803159671064413867651553559830900423349704736407799576946866667686783003081058116637152120363465680045205896890086966731816803866389041096979242875939548583957578274979414931803902902776343923858753017879304067776228945976178440693748243492858320203270264327627722531947177860024820770780676385574010768216083360022719634800049654297969579734739638802187086060543968536196793026806864693989869892220385967718353313072322013681458674064041854065052346523157276550054131028182574602573515425734104146274456435132820618370744617105908570123961517361360803332004699791120534988739545698408930052291511876350804523063116916095358672876031339238475869669419591811559216885545395036234046995757954658254067564033231365370550557864347919989124443082946905162537394934170276120130765619178492171758610213267960461504699425756281316986139669908309441716046118190180615883183853318414662578566321833417485517232741113209371897671629594489619417001549049316446282070586070349180308842444755421484421834041442917248989662305120196832961679433571242292039714104037783773888331504937755001814191429482292844236762414143056645289073214370188940077311340602092091551852497767131513467363950398326463828296163008176672791014800047879666961321761659780752073804222691748931772422870111114672626161875941321160301249274079855065271072678364995549416867454950453878594891093258495773772499189589508546979497479760458395670149107408967030178536251824709597533491160227007092692711142911144549361095773911739367865221489574261893233826500403860945092174020085059794162120327103937844839018897899594973023582068766154097899182331363911043834343190801401082142351599628252332365645001904419473798812647639768042901038083946623444554560140948235243410627529340917004866872924385696310600655376881962460816503979239552689828161528443357550879302645290270983793452269219100887265933067548602546514066264380026416212177837930627559849498993707303391299893965712779191204771207472873610689366153502512947771701542896210444937652293479478203466884594481826823095963843773964379559029695877845678562395326548043375945197904380924227113667103890308771968779590862444063578026290856093349962941600747829154724868870991297833629161929979007633334356879273394101088721628233500700242542447036259983943455156352412652685194018117195782699113965175901370517730403091481867430796816126320470463586328416564524843072728796838708832370388535773753628682021792426374931260313588456362769183068121232159432783625974753626841042923174511099077842225160263218562121554262937944578946169730512601843100848069250134065743206106778182870636573535502075277356010866144508249478081270012974696501881262414668420082930783349334889029383839082163959546388816761141699852846943809028612875589578620550797442591819769464884933471892091085745334661270761376643673337839407208087335368543372131047789937161878341061144179743983916022815831539674718013812901958060391412656662635648210768602551577292399138155857698962100306437269745792714491894689966575137094994924188164092077239190907154567079222176503078460316391270394712208091802432917009196815240003842939523915290702661894789702578821685773968329597541313891358684940680286745120840802892541931339170680866978030646376011845943623986414173059545047671744539572777081382333041427232627007852706218215165821794241629425562318917324279195027374702690580289812850192445672166766937971523055764069557000420825777476502091421771761855083250160775990614314774487541648910954939936752430866106414442516396891550736313853218200837401249090356546656341929024583776218434920734890960773237572993815253264327813429501396613746548887517504225601704393505303841664685947130289429673888959605741649122635907061339828120595676445494064930681067550276362616056978866436710568709553172301703117605294622626865941701222717846576593373975983057998851151587432718660590392339928332392949853495092570555801664889620779979866199277356355475897054050275300202658622526635586877654184304233845185986501053903546570812420698125378709253721631755174598374458470562979012679871912297902909048082218759088796008659638626809441452586927477663603486070113295807462320334908392642005920106716263506934701537072358020315907181688230163352969608551894289757245370390775348249834066138295624894933498929371335247587811591733937074566703676144330980666697867919656768254941736383805102854143555345229472267165980409041241354739516694054440984404757066082933468050194949222916793493191133146789275471722657563937994150675391266506964214198225228653923087488825765942140766488640274014167951123140925540134187013776247737138367558432439903972126896951383650534145011375259088091395971238080669056655637110711474149315490471733759825876812018395643579960407603968496645659991203939502832920768561665686329409391952233733108213029761800079549925229255778617810155658594704831660568353816012696718539117412206288499963910921373095734579923014617102313442434251803103368103836124022429662223935868866384771735518214255251621949930265990452351509734753548262590815955530022790700895394616566766118218919647654747796215158143724632690350602379993207997038972724658859981226806200786095370935185869125666915069847074625922269387961106180994895125580734428556932478339489789665714107253179321414582244739529518820020354983670072876935513268888552771415846866938456711691196289489913202143879567653217097807199961198342709806958690575060467605146099751438079064917093904063027575126127796914963463150166527585926260859210992009383308744315783181346543506311504853839838075816082735569566534466582204474434692563319371467507460865204149933250457883409157079033414548431846250673581751569670663877887161498746408442748822885998540557155915075938545000907137104014176204449491548759397382662842176631291549922702828731670804439830847700918223147059961017255112696930979626158951096156449481868101735706949719730344324496123028125271814660778438172068060286400196524640418759909509270362869296731613251008602341634389091139655355696121998608917862638425327072626929854422782594353099487606069619188018864482983063629626031489237998466168616172587232963721502822304517887919301423459817812246886852616750394315807195062635614922874191970706070141653485030703740986959366057519911723359103874615471351604357813671554559788778729034472723294622021194079526811487120546640680747098002774099005026867964088257817362829468088295393265555576051694574727039070188970936468620084276917485498479532451200457160305780627989834578541354969278074942816990954495339623866492127404825297190984236017159113413185161579397759279639352114539441352271963244327368683220329901738023368325880241163918325946413307311824710136025039444765378443280057937904689631122722926139013193041169544501818791143771249355545521071851492687248519791184619631773512360823504726152040420631487382382479462885320753786984015727254279364367777064012171160695915587703341939503111298659911441893568731990252769912627833146839274201486946094233790828640767328905260360651167731683640819320352231701392041144187522360999504786847582759851690892497963838946232434435838088247944259718025167684646537563482198657162179949539036562613658733142324998526306599311955169414378475995152256890904750042442310601108838010836901405407464282620515647867097089635590699162649840091363201037952633621915427363148393901888569716316271556452933835252868072943379769073358285838655694463520399133042305521863883625156920815419874579491861969938929187699392233659481525601434157354072054181261083450593624263482490543141346776317322632954648936230297725405937292849927262643067530233422615845433974478222314993653962574670067543504012199462269480310427073859722099092110756404143222620965058650008970804968601564350513025562130009510349900996901594490823381178784928522457104613935071758876661616110669431881276813146602778443588458586527667258890559918684963139193571232590107526062663145566865859054832129837741737025104675756030809840459403253074184517193687058410708044373809103653855349214022003542891881731523073732439334294267299484687322573727933733052833480205029616027174858360735704743081686272262343159130271447276118624828934268487583747399194120439429192693480746048928817997809330273793073201872467618767800420424719045406907275868058264884170856979539046249823968400828607083916783539657123402387616990146034775224522738711944942892811487525839624639875963821538027069040714141207991968723038340259299283670505841100189743699654746722970463266842046900413235913489583981013365270345170822243434781903235089166479196899547136837311630745649947946144009653500134470784979962942482027955910265318299506113629612941120179543853806425825860398676394630984989005231720035201429732487397467586756850109393826762720021316487635868792973498118681883817760555130856542401454118673050585908449330104241826596087944579021700645419516810886228640247409171563889520465223422006336542125835433187244179819020754987389829077638899861889031766418239051697421646463874418341748743576875030720245602184315869265967207171788332017124935489890473973559377487763190664602206766403565866079922028434274346429005228356678957226134184785170199754297479161412927347962423790838025262671349340626256767693296807741121979576679388149137655592078056259284909191847791498302557236334082771189512104579616115252273050927027660286435319754915463021277692541947397646055636724176698146224307842451281491826679644157084650425347401622230802395180351610072945560805750041739540785608118820332960504141373977019770352572853245068885823092203875827394936394638077954973950380222475942744724412637509930663372097885659495227735693356133157387007817769036343674819055992348827305003509959127604517159041637939306964868411752349696844295684258505709681240311072558202053544856790431190024352697223246455932918912472006651569844735806209551025559433709322107022294357334248779649059094206445536084716592688183009114348361416884372519529958348344738596936311378769423643069139413116901500988515070286013229779988885043142399545517810892341876377118872880110754611690512471844319396953833867722554712782252398966900990780869192265119559337771046701028068920498853250819775911229186392792267385213471807470428355796964437103805720620632290846302622961896948343033321616496616536228141420108832759700247482531951433874836074893439616694387200700098768568052750845214223108016066742930732289584363662182878228125085369079690548834429392862063468251113593557445568460265418958567000799323886464116446073467076983810775055769379871985655053864391142030969176086987807087323047523998635726027775107348996551169053573274862746890107526358796224367200099120184699199675083493454552676836529481023645600126437584254265448502643391972547967701203021196739645809489795065882848338031996401586206955350148738983812307054674252390524992400330946442511639062532694040289779274040549363706902413875434637590544120678457659499177548764842445605422428866811699286066437877003594236457022421256716602357353048116761666178857228637532783643151700831572991299558726781592983478307070855042978209626752112431434853231243795747775645543522377251243752772781496159424153140231016186466904332407832613858806648869872663933083162034090554428179909439434185733708016445317218512357712219906152986020491676621780970705043173955541907115471948240138781181696211576230129822967495023511318571493127271387879353632814049200359848699447939735029408824187739419357482569163676683776682987755248635300343234963141578929615015790804924610469744384619373445712276645730340434564984545042883214725034112504767365630027855116781615207000299396854941620271110557088973649476419576512566989321878257818260574583131959686967638065638165705548099297848937155195766207700664468397610952179133206053093789362460951677225964556098153836996270783157396172262387665622492830067127638537705267522354114213887032755556342570138988992699241087638035333776921382994589660701387076639647180034841844802874617408183314917135551828554041518272781408822066843054901594835779364734176094249759007576253670823362473151031520550697422929859504248119119823239001734038779500796519183866420029985765751264532995834940507167328293265235666997563754855299748267551487803964686760216142434770738561433575985541156021843681930257856778101716589584003513903282019430032676754114504301120801156351053550386103853832534567283657430993179377067991533723791585366209264058907540888488665740486234098069743856783719232868569515521559351114301771950824972733915697491122248425811392069990768454541022348753019403135945379455210192408800497600573687041774184389312738709011913644385179721067347915307843901635302768773368451697163784318228614244410005222480906882908973259669674719514831788171478739188422288609569348615048320212271115554972989304973667229796967351643581784552960855582434460364721240670557365446852472204591727432956069035114411352659992496391836904461563433972392806775519977557526554357904225618062401172794691777365577696999959826957701330899614373545499361894228916829220187373130200839581073018212792425779267479026497718494745607563585134189620669231197186837429730419248070641978953509422185329910674039279657376757681988511877872206211119453335787910751712726046323437141771667718950614148930128760366317258213616867204774297237668910113578104044118993806599670528203563633964206538334475466495801811964013921397579470050718405069136233937458000525173172977688687132363948699113114668892549420565585827030587601330878041806421972787276994189450008033158320397237925198133149690555322675723837454524338293430157249370897772576545063569821943431088871536022625464207359951313439628819854402369894264622811767770150172846943595989701769253920525947217462279353975686903961278062171341060708473262598892564388136278882182294393381955869225843196661630539565851531339659991784278569753279912429232709625861209112333105766206037467645846655871446552896947491426652262760594612377985103328315210478338122470724577525336652108569180439529533347937508081126021795570869211405546499809589925379569946761749351663763442079073557839139369935113774848628442166707055866386067507690943378580796892717059042767698589639006936328415353799777154528234635822312941500733909811836309239675179584355114276752750826724809430408589030951490773041126528953988236734164852696704476218327570882988253821087604977299196960932811636613564810443015699796407332771790623144589525109480666534846794423083727938295415689509094166216768757762606809848480788928061678179541350275907244176504668145802449812244405921574483820597011296754963476749114950672735336526195524762010552960969674544912735411778941718200029836681705571061195438178999132378449654930543490670554568553789760997264433408367239130168510465501969960467098992072876045335015168958377640006060754722440345808328444789343583348814579590467687447460553277551637919914330796731609419538853183309899567450753136523468856909325365702585789743927898133564679962406749237070762914020635342852521906866585794812083909951659384311044070706716303843977746871861566557787608025224866826455449106322717810269789158718806327731410107321193382780806120634058897430090204477874142347689907552153818750198970407316547351526412932252412395073013967977293890760120689233952121911846496970639771525844569204027016405508144675764189405187857388907037909413847118231879001281400004366611086361684046583236562034436245797319678567616613858205766665810930617284625165846733012541521557095521487932383991473644047169539517677370455531725475100756762399687785775740413725685861355904660830576529565055099232823273174192798781519267509958288067810180460023167235163299131622993481215725793384202144403395841282334944184109616512265221731325197196412144113978606094542861462244278968372492463320751089426499231309432641814552192363425539874344786372394061903813235966051886786971752205966352926694393815272206850701453000903235058909208981398836050034633478622565224712490083118329127694326085684333212589720732794787552935445654294110000893062611027486692073939843629711847149556530387389615753075223131832655644146802750678378411130500225593915750723472951681935262505797983388316796384781216396463902854769575142955980637725649579619418366272398842411709717181115566098610108058170697054313183181766235442073485989423252786397348182269908142842666703397613380518819717587138244713944834501315369728360499185807108615250265684148447048379043470531696300476197709112786905575075723805236416183452785639400458550114130864668685418255785234039738189253117165563166521189432610653055284561266315153865810573752738649300793465288863551476892729267853908870438781232975627377324981394053401778773936989863128797595415963496568612327324076668154003448738620466101547257986283345371439052331903741406871785163569719723244722229875478152082380902824459985664005482112008974970971808900841555714809065693733255131696575293016246237572403314680827915376014492773900308144773130615477980616231672023503211631205870884447964725245538621289402481624473875590569672528034456985479239350701989644902884065329627828217849413480742638352742919152571086424477912236683544703390109209669885929406314611768019186154603005986202581773854636608032796714805663797162154040651000494426046162496091741405920247414041858747954996430534531324582115487606230229419087037463527465553665839214931703127648803541435365094401694820323190896753622863783141309974182896994701208010326987256453114516427672489280448208159039441639763773050337884061397049419171401259540775140988038998553397022760004673659853773781171275356325403078771087863488757848103412844993893393260032252263678181521722594911201172742864800454236212996210602317126734059160137996695072998683048235238501029253851220041097314132582173621215553805521970029965024459620546654002570128953511861727670126350266575016130426300008524993390220364384633622657096204881167420074542174044083546096310053845824023661840884655075503797544286245822120774700084713957819478104416413625984525892651489069535125825911585402651186018355144093994747998350636612150160889945814504364296046295225639947582027058982455677117553086165440767360721159204410860879583812135204223193965682757416063838287036443311164219270998435982014368132140314801752095898264239485892540195425074899702032343107196093469834063362271802956912564980155694467627644817723023588148751486292420215006411587133705575224437488804663621271434899918945312366317768304427256160001235950376878845531197892672153917332315808017718485446031101779942751936965925085573924527295680036614382858030675710950562620873359257463066055551830506918445000401225534693239876949638283377323141213745546305403547169127158010448725444369625123402868357206509277306344551360259713724814759809821192819117141531922555858171260642422314730169536542600778050481328970591611109191849826767562807665706149004552864655311329905372575253612025897094496586330874072223176956624537513056985885119354337021331741521433340096499389695304720916962221573173646766289370372789508349195114468289189101014629788260553928437161392393546843007501820505082974895866189420812320954801153105610111414559898863913767614057189080488558611586989786225179957731368424055216328762885289148598271627471747856776444638715699318903374799321610598029162829634288055709590330400623770329896692838361046110957827452900987297232992636964068846389436685260209576342001739010723575290972142188777483594227953418583137291291569407287062552028434833149194592381679165899310898440800817064330780484013685072758588234469506882359694892346487172537660053013008382763810445172911018852781732446145029885296974796084733198906975947703083657785449795839914015650714671884978302888536417707193221433836040281963294899056981729660673210656234300720565880939252004542998898474488951583431002153442840014242032710850535199269343295008324721803942383963207288009323358094780792977391193125736589287934030412218230393038031262056310969638823333181109198319740069071368049385539363503105578608869489366125939062023438340867999484419169463577471241152100913677208558519185928450803664622043062848697185065190695469036917075522618592623098179998642033923213130258740364528390102789652783281022773568627506382574159476559349677097416179099466481056296052619442935221901580188767111487875594281277135154878633867687699538874521286825790971014331631638683461024762579329027602546219489377547736960935525852249904838911190527557562632881329993803820884393731891350205883178171047049389362562278914603840855680465543956961764785802342225943347159679054948463311720513331361954875025983045617130895011333825465723890510603275812647867057721413129855543536895915180415064370078129259624938178072221037493324100394523366716567455698060433319352502665608903123884152144763239234909586447179335721907836724552830124711354499550735842607224105929285653408140938190118481364867077865870184949847327701823730217545012853495273096361301096639213570367049481654352639365914009136887790347291254102293785726876333700117060330252233253347503137679676881416039454173376111168920121402939910745781153809005756715173111031077470753230061199203868913854575396119921409274776059820898549739690698519449381681354549475609538300956879615963262404972199854235541689549699613050937988109469016450664513294425736534629385619305834052293133572632370359399399079635111181109490225447034762143376582028788510846513461355526463201187909514774665870299544926857468724853986480015100209906033543929629581111823290212190804447454880724042946067597934823876990946693520582893036638717284013675355705977663248660190121523224619077897226968843137627841858730389471964272750085759226803035604221345462526562546066564471726327633035681738669546068980078972175400161775335851346660877649618398799727494170658106618962527908329807625794508351874225794202477135066230414071207072610198388544266384937536429819425430892041919135520776871338237364907700420345470390240737195412379877903215263655649807886884636584865192855455620780683079850317020700338324707996101338560199859045960974083719730478955447018921072639653259326990621816063556574384241801246182295162902214067022819086397689923522239114930145373649590938277664060297151756937072843514139417849930729273234171189249463494669566968819227211432296559250488468854946471616832069777104566214061946310781483292103553652950258572547631673798091871672187736893793862717222083476160176580736581062835574664604507190439397896242438294925641562929111443113376687685257023237432876942357136991338711555544103426733070491391081699845641972158573085005005827230741490284115916674592266370238431814934610868048291151221843108270284501580149985301948090414745375289033816521186452727680911861159270182845309013709233369218789873950887599684276302043801701222328492003170175258135201138431799467866374889569578472312824434112832540763060488758509220252787977711084408250654730303757330628702677231279683091912018290429258497922638647698514139886142571274732737667164613991557616645945141541920834207435448207941792452922546503712454414272473649917197727562699151890521180368853877927438726062283838459718164435366631511148691676215528277776511669937634720198589874694393641987839635487383860328886983014418863743230985157064760088385627367938199839511666084746936274475948859566770907235827033300835247559806095324090714984373709538892827477095360274123984707006959095445123770575066369771023300053024686078837076937537533334805929569162513455005152918297231597426129343102915560644331495754083882632389105177881198565712461425993511156647780804920543438276842035532556527853569171212465694730040740843801687089406039755620141037474744304671127417047582534594891622721611214728025352529059514004276068049186595311624971107973299879137907416981589582676294074404389822465702780684478778491638042619582851735824510764053531181074299496977865772982226973269545741585335826936515696249799705719705336475000492474421951608913529370624737368400939282455202903144599317793366166212881934357656614160067743472565780763401147250220734019364416256695040345036067397037528479963759143761451214462080922427946262257939098485275020143138850185009118245044743331355666841801406829701640360513562561719965883139156845773935726725946122785572105303594337725129572201083715206112797268720542456147854148570857529221570349130112320410509771117219511279626325218250265166018787814580034917728393058134397938274625915153320043949781736593463597590459136554321993926307741787312076444637061431912518354274923354523108322203924792775279496234355585128677080343923756448362505725602974977475787587969766679470285979553689433424047055821718029589062143726156368776484088048578532658085418660633174102647650207621323311014603306791819636739384969098181657202646155620361197865576285458790806563857113095448445128311752436963669399301173699649953993571426025155798587484541136736872035472084836993001393029304767499255319229568080345104938550434275673436831841886754814594845674192479021589190273420861523203864563814986869388299367652297619698362768595009619953357633350239019626571093652368329432175922089861615347508548920269252921204952319423942973766316498207077634086121391484079611399598833609818929124136687394696152503851511894453620301810008978728090090553781638734908193370204068898365080837512354591962701672162418148932541505173631051987152405496317768759080506736044584049446418261093347797816391098305473547987457892652433347593380344199000104179783075346652241779837519804442919146462923896555092580228091842366942687364598899503420006737109381935253401545542070934873470839536180097471785927466415631842811287839317757104657496083980718431015151280951332014300242600706702902846339863680587140271961044296960115716595325372202029104804072506281365213547962668773305529637903953911911087064801563951365223040169594119866613137140189794190878855228792239099338009266964883952326269000189209151740903791899321454091116455984475833740336119237935527084653026782090733838165932062923425991079212793223689423529407143571551403860073358668632617255937182713088081458800077065722428186538031917807115419128264314374996992413913849889151405485823326782556541236593881814999764673224012729384052278159508540436112104601486501502219902101249341225158586890625981413879633461170056061429473143271068082201754826909624477628412743438887264296650162032551272961088576062545202623993940488533546496006343885414484225725986190459307896614402560570387973569018430022546415658035893766106865577596064388463826953774912211943422511668333269209531905328314392654446684860230017144568015340830850604001729659524837627342956125321359612842145915388427316005073213290736328373939404538369141220768345681289718393366065088207222551535497105625265443892273300232846459759424062297312567024906117142583247652591724749638387360069310369942010852369343023157149775592447361450085356802574925685118335967568655481983422599859401242613578529852203614748518035621508134156316456671942582635396683418884884181416730084665537010251279825113411592689214615502481876666011585261346638498550879821729225031985397029938182173585947735201827870347957269105042521515750223538833537785204853693373794778976898413085138269434256877546146742716394356016440228655354466472045024068490962268733651417041329858100291472592155748677832672765942178189929884057950257837789650211579517915119635965050225906417730849738248942044689398811354086483062828594934548967081261989549302876589056012272960272392347030389633037241929198271384628555223367389175572611783893803749316988711404583974403431416024446308138128131769169840628319879040671017827541993446266609389997476370153979512672150791782922822508305928703190728372376757645856608588838811497769242119387966570091323216235370907710578857996399917966459577724107632877678335965801130939624820259057934133479551473203188278926866748985720446940331606774846157406754650766082011847689921926112426140367605788931193006115425044817906972770726611392779604314069066289056493494390521005073053301071200509095128673758401646297390679031260859215764945323276838756289124242215227082988373842373542152166915552377445468476259002594809523392222923997085948163215779537869733962914677419973070738629110002001893356102299278175961254462756909873572291163483575807577374107741702177959373573283006309521469552571398443384167876537714093758176322126580228652432626998800544474519208478019617352870920686900906715210391957868239862086963171460223062825673361711368233934235895138753229889075087656759732211056209027949697987811595415652412213966535714169904708401108078098913930486998334661385095984462371271552859721585147999682495577021508831523024541399555875846254958976993853884272845962027055348065061243472467819725745661050598034214896283778510193981200600090571213122947378242553757358074934591302640612479835692474459308869828527638058464305155355737924447368666436071019873418613545161486297192650830936695889837164059455072029917271695627680987674836811044463835951468656947182146067961095147489005094531787030709627182176650011544724485887195566028436279614141256086586919128960518109495654326339227059974196628833284490070073387937475691164764235069701260814759679652870180211599585153934450986167267100457621843615403836378336553921589173409259291727033065808030394086137595982934778934197498050575577028111245122480323487955750825966150971618310181140969828945272043797081784602739608682632519657420931451042630285333575567479192887812176511724509189706192697918164985078196575737185251186581071454912599237946454044560653633952842602228658700103594857988172955199667877626618670097922621571333254605643354568874040464969123403521527699542224003317285942481434214463974768685701146723213825477837076782628690604719058899229864155715166780343125040673883075644486899188005844111079329944825930766633611081794984169327195705061251276615656368552184396279965527683879398131186851960430824288209536485266493054170539824807558934511349619791863990958105003975643261145114296715003264672634248816394040880669454974040213465316421017723356028102888956961520664399809020905130042654225463603076845199482888197677016662423964329741972281827222029076313100161840873056559842558532600895747296341403489156340977591948319057905354244891935030692247609604355228183536047534800431185080835760486054102184722529578708335103263024193065077188385518192406932161451513392484730031233185131707441445019511030092607941635861119388330486421796368059261201861049531523665771177279139634154474329544482507438214997160093692948318721365892344292285671305835130565470069107916918551170072868374820380992328654510773900445014737051702779285677598675861995497601220553212062273662238844905674618096862977040026374622579029396096691550272869904462847844222233027345746819491429718998275402021993966892321931616613137445726848773634989161972840592680401580915530198052417434812500456532704168399873575654656317788297713733771012389696134925061022674878414078935137755009120787801493777260071989400950809079166080270507039263740113024647378658642037089080216155029793480964227989102605674109073831602055865297415191644337450255041565116160567352349041146520091277301041259628781961399716522628696624421186337146389577071174933224421059639729384731974564136406573441546071255619564564633486135984810282693527456799787242254329758801738866739413259717604777465911084306285194173183800980630609947437282488501904977842326363311453682161547896539716955097075200457411192033138468468504648451120709743761435294335340462256457969619916613533119231847106951947153526252008978261341755520257881711963508269428209748395620215558691200534454119360153835939683622475165177606792947044007463377033561675731737492697227180700156830419787626694926840063578585193431726645273595527843292438942386622976899683132762381801569873591377488512381356756271221203085159860173470500972052319137802587251360962366370964493017372741486141949869491801864480873447277823835255083985640752230071843580668596417857423241068741631158799703558687537246555586969494575051730475803304074313122391846719374039168418427727362196329570428523716686199503234581301045383027291034979624487867895703369429525765519865000826850270692154839444370875653087039598476568901671700634729600342643438578899992064454589841470037624398246748983560199887759178394384205207754880525787498753885412471968410015783141029146778460863030376208858720272352311294048380627292364600476385363517573619909290263017736846515757509265880320488188587919028581552620331361961800401884962155884575511882545774985903883685365545345958555360669465502704137885092925638531921614469956086345150388579360235234820885977291638530828764520826560929459624820217683081074911691105433104109475765383738744095985610237140363406064087805592971632399838116270500833482554825333144964672137385412788375014299182251920971668132649891963064266161572909288959811050245924588513808943810080141817139330023013685934643105967377175541448185160354672785744370521285271101282290590069579537088690818619995137742973123805188946496962971576913697289786496994712753117400749690964750683391455297140977690422736889223601371283508648289276880218046954478431181296659289572733107868410990400094153993568910168979525943921436060985398232037454838410971504011747815438615242922042003680873870971358550790899453526772328127736073078341354539183634979952433764652851623752838476021444142612899358447735104988780857463450865603666415825694754578509669119086369559270048974712379253001569950625648887967302915449350863027636957785848377609362895384670372503735613179743611146023095601584408855239415019957685435457536015745249275032805204450844721025599543015320305309134314366776875031949743109706086002633102818668593165805700795334982738148104243344732884099738718420627988006371098363301984898534938380877838798231194275141894286274032986408530604497268912237063080155121196463700309228764783997434336569907779186843920010677985861319076721545324373116411721521864297701012751471927328908522740579435919803296320757671191408709897924802464885931855850648302594455539199122368785312379643577286135155166618597821382859589741588888954657390586863437223908330616294385213918978287759674235382551568985443786269797707197420846933198576641622210345324973582827957728500880170121797960235906999620528130646115053952123271295171777732969783870456996542933531312117564810202625105890533150672644421836802339658738677299015667051653635065538062272596816816267081162579789463606042761317006959200768808706494416121761324097083411283802701786701392336779682410963292393695897292861818225569459924128169198167409937386868866162786132604293916987914842413489103972845598716177260458417742485044621449201887605564462401920289844285485607355819137323387174573757675584837010838085922503689258280094624043676121075028956098194301604655340041666999214964127756572090448553182665260589382900777290019529797505112257202068586616311223148490844306047580695224377818018511218075927135628732054769889200297599115316461857993546485047167952033267078729813162108428673117772366290610396501347878209699198529375143760990225431665617371424879317553293052783713342113724060603528251607233560777034551193381971407708373513968213062011766269253683169317790855118869158455002091426347265431073753357057171057907768711124630944632513799875484691903681816760053052086000805828321302155364521661208908199981562928053201914988749004555183767764027596426434291811274967634222792735468627514031983248604928395140972822801711976947491549974252181968234400477376607516012221134282277937166801632168646237717463283880657359638872953715374434092353825964580324137708199487873680419208943722168074237903970550925239454438103818084853966354968944500418689794495597258988378539930954832085548919072005913890727966254443379852104540161461608798477592129552301294924655104543616975515405927808774310412359548742409077419886516476183346917208316829428707403257858872246171197159907710656403859316628022853770642206966747998959766865627594499565081959792674200909199918613846417105733331754512369509126200023358560889924551670937331099148534959381979174984579174149609883618411518590225035046198587463300970671102506009592097872858347252889938834469977872342488292399195273223252941132605644229169167149262371284472611679376953064131618946687512539266529665591443273678281942423570656572336528024306528308410270632897966230798340351894544932552431974127162405345016022216307133428883167225366985833496650493026232347213240069573098320938208545854313915444365515283433096883903894419631519591704899836253658459463658904343229780110883272243518243344769396545910009778464877051838764239895131563423291280740711116706945368467585394052632787962028496289558646904387966843722881901069378577142154622819097225095188824910301960148207219710674490845640068972843883597651628329510879725466806070852781690175018982359617950241702108712298251629608050245948976486234138466318624263772944478266271538561802677225045393920500855477629813473748751248385858003399057793654126317752957533264895733813989944665368856298259337709058883591633204832048415398209501354215706279676138004774098216870347956481952693050362057042823875650900530722444792096401930080997476757572646843544895961364839172552009361636641422983873178542591826753065158288215003991028189154022698562929802164566712586917719259298826695300136040745174069094831034921430819695249457355168460250380720310858211705627133266703327901313045516452741977391406479334975923903841083349549046378608363981796838406209851814777681923211587360873503501768066453451244610695452999685764831332758123308032037754066595954833887268450558603354190283666001870388560478383285538047358490962173801599313323330251936361773453062688275231934799484155683341449433439628000136879108992847299000395764584408332307391577494500748491338861109614322558783262870903239314517857375974459108503253672320465197590233562047978757754607034397169510198871122840294967194276834501814483953086178898509812676764509866585896434409550324053822164574542897823154685646519083642438202503481024884074640520687635672656604778156268659335741738014723493566598040669402094717972529854879317294389889352418708292476608542708747128460070422047995628817356535408079561501005073958080205304858442772304288657322757448026348756740186863685077357288790340564249782338852189730543306355540974353897325185059125842217138043242756466023062352386815350182638412125583897997117609543089251198041055079279889830707072194545506126272711248691342938871302491242032942691776171708176166854179464447076679479097469259966994720316929144420941982839422299995180623413030479078777126775136909679928102605916958860458314520662902732324484117129793830520636632629375383387614870205512424095623967701862341476498804407792965437429946009189776478254630186349887207344252092318932285405170409389514478628110724736129032608790769369977692888030335304829857265104239121450547229534689177926529270174483768446838685595078025889464627070609642870765154029086906298944110738302773897810876854177489786163524213428542790245903042740765416268373788707991031814089309546123234449816712919304629885480965523264452849164493556928390553850005554015827207471312926685626984187455437146106625057322023630169171280694080330261907986666743714283811983873677827999638223877736404794165241946637895003605230114752679745131396090372101692882514847258896713782297356895563762185401319527390122327483596682839420533802444764913935079758213937121620610167604912331680511061886354800768943081053577631259319303889424358987689811623172796729766478459853803447005500970471109525503319347057390088826285096473978162276625115311410132475874028137398252063777251399816408786033783751448215384739222573758302334496468185840562191533541261631465862309251165066311277992929652005009570879362513050126262826399046658401893878165758479764528826435944982617114971363255631708272109638204423893011082971782185371796238642212605886944376608811078354156768150311733748860798581130496687582588166899834273698735524999567873176002862178862444015868483281346376553282587754990685837819322452040069273117188527954926103107800506457063980111597284263780191933571323601818149070630877438142206533659585437206414939204046365717564411017100533358995717183697365789004318333687485571092055019061114801758549162994500189686135710415936627759434428669885836056322884795930948185830843648646764498825846908287394553299458590474945491125582325840314190079158695558482177282293845230678301423016677026732926403836191339591952795837033258503274836814180784688722712485246968998788676070058457206623890960331142066330717762588572682396843518650590764321705902041410179880944089955310327580455477645306004389297747434320714348260467085819093746381915316887315270089083305675384031693435725391564299318553117910296081173965556850932675694710574707757565604565729460908209712741207271772137454492375001534922021804057842842667715484541952346356950878219527497885764559809225636330132750361207086573133311580976294209140524609780209939815042534973530042003169580233216832254024426999331881092653845371555993578384001518795141259745588154264338204214660747470790062586577641947781578071003180942819193780618639882406530170357793046367198621611029048155725790786147486750476407129579501406492616083509814662340545035330651157222086215120024085600702471862884196531050983812638591272677139788134188869046759396836511279385489160271542380862413888206035934484571178734987791582144819654338880752264432131867765333522645836888223502938514095422200452894296331109528252091190154593902867010024066231681204315572573083546735434363138597416176794062450099847339512919635233261611965504088384186238223628355528595133857384519252724061104961427508421277531011992545440624474542868213067794574672168335024538897015082334414465792323473149864639155361386639389882515855585015745642771676234316367046415474720578030313196636193276938295093529992278857969322487583085167572356076157797811491367916130267444910703788457721332354967096265352254228353155990255636466418193656492926228863764200081121501067913654606222463589958456509482462051930231988118236084270350737642969909357377451206783885136963656353689531076859659236866684214213737948982672320606342056131753493243461286064349389450028414000668801917099496026980535970937467103415243061353091361299493779138955568584343288429890921922021128096810609429927513681234493297607567694768753349698696235823375345474756842516716499071166466011003551977091203634651056196675140543331389911976225398805754241833554904761592952121595315133957026179879877367213880985107664510550712556497127132503351470305416544126089808756931701512448010935808358904721745813413274521528633675381010601538699831493701696584120795552151079671866395969696151054156376927683965312489532529992291864200774752302116647558227256083295751921516989736284536539199757075497640587774766934727283710496014044333050357537801248181788885161797608347053217213239324751960037422159934958546224996507471716659358379662302579076144066813504206137148275892174228578293676896675361936561737836736100399277002405977339454703178383320631210370432714287929609837133965827133520739461152078209849915242704723309182800281694814457322245317160003625058291770997263739877118793451516071631501807904691420039202394008594655435487472208051944531492314034035463307192745972589563948256649244527091546233056367091056091317473537583238577855742756040481922286984816073733107996400524996643655520730139902176533875460343020344400622977773958456355438152114285432721324155015607232502515813024640772035778641133548697609219670022257092575887283412197886488877435854783021840453421442407301058777063354201271812310184903236497150674413579496490454551820057121922117526791481448736290271387452891801724035739978889110819340516705655850353411611141665107438470521002016722793366660479291403226131418748877199232114505176583590487102460862156309970164371203889173136944209645891215269874805959494228623156494160313751119463063571269650153197907172497957029657778880021615184002518704577946638458336045179190228275794637714012827019572501957379478858026185715741736468261318005621274789191531440147116659067296800510669283706285507570830183463649266074578695738027691910526246512754216462867528881713476650500078243681583013262001779471838643963252988133914172235803863419046180087199810296890953457889298842423212056297307300632241750374309229555301119323595847248302362887634687263509753229867147783436881454696108798097388999819651829175714565093974853349363033067079493363384922944820259726227763446143038657704177548072175468077203617036567493903046084034542190615784773461487364407042835927621609025986956452347900209745473627264591777509455788415210633999192602922717881053246768311126044250038136887347211649640100729918024864672316102507040000346248566731577009186611394321895929742844193027275827471561866756248685054056396388322302107390321272561737430250470651936797360628292526098420391248779511010296586219696947346450215614205448288590046587128011629079988998929901620712292675108393483481794679613090548073608851835218466030747194931328816447409083195432987724902049608017714710741883504720055267540840414016857396103749171962979647941370459523080001940251305337875070366209297613249067289949774857960110899801959505595092030054906924465726514469710083100188146488861210345345362284923762146203838960864019700392117577938894944785811372823834510198628291103067999683645407333890794692965915752524664844124124446143534734438619416320593218834663724747241989941827193530844845717605736043212798859986205135925029035584999839619169967704741917357432513958488771144074962665194260859884340945331875411988552898171110867498086762760915585361586760798175027708152626495252205106056024308343424532246229385644158491776653439482543755493568512101426840854798513064937605344423761395304474208509908087180192539708656921672001311123664764177458514646802625731462360857156684885767009002118798633601730661553837432239494869612934040978556453666837826014695732644549959103085154880410710890161862799368841426104422916332680995127328421685251515231416137736012357805224072655468301070364869155137275218665708398476832439368670408475847589657785805214304939960272529609212371518589459582386472423229411108557947550462389516974170397853429653285566923943663804757479735921564749845187073011159962356150114381687337126631614289979303852383301736492397385504404767224592286421948231937447546437863165278538392142760545997424513877170970914714354706791299349087098573591250498152479971571081090317024839390295243079076082065327551274029805077160413248584592015754738124857455532033350204514206711638404694355120174849316187326080908677916503481003833612075779247077648760904646488548732898845770939341901784015913146776690234119938706073088925458192233053598542825366193158902317978905656692134053418202452663497843452791178413121355666118952501771091632763131343326707670490305432792333324884835302785061463799990090494966929028460601578530460460561660905660563200707907361356349837101563933558250361078262080008367886903497917392397776429871368396248509294424193498053929830438395973233382007583614694127374571451053996865243828393990533214671183812122383949202859716111649750898914484531566231830354382110913283842872659449203921915841031201019924988884973469156691912529013291384551862579996172960830337462868143364719464351966601635730958845244946390285352853447810337806907774485640759796854431712724328143670543062971738801617679216274039071863705947881423232136493585710551230480560643435749501340396217823704301897557466241465929171916930719771560530370479796823569293445236068274528096386682541241069922436324178859332516296034164538263870690627831636757024571509349060495416534822982680888393489120339589224699739575511507229629040898239523876932906676483236309373738839197389781879718883764824102683062225736622307795016268926499005135172111240202093780790538718485536913464587919246939598877704864146596187119825292027384224449435825601679982545767294697562476586651836452484855464251412582106247042014887666811765284078749513001407031983696170110319377274952556686541872842132566558546128248766874855130225869192192243192319326065854620184292411816737379509590699122777359475422700729485370904121505554921645238454964673058376953659455444132256961539620066891060073515984826890318261667863601446458174276118489917167070535473975156908125909781536177077708883470015261804139026359486667646870415026824718076953733727955733614562574498024945360615235083902295584620894704877017700734740538073187698691120237593773941869571803691704186985027852671801100583674898817159763804466866991444634099838850132305773260803987182393647959726923001231449001282908163894253665546181754781667183486832529892675041656627354923365947809312616194926598555766178482590805334724498802492498268708877662780605870072479039840946668809334174759331236034153140615979478300221395799432594927941377582230001775995667215749901782473923002213301707988025438105328971146406074191700741148091149356709513526688855045204054561397358066947467260719271096122192641138365606542389374526740379585390425455447394044856286902620051102912652164817344195246579427378803824307406347669545959188358342385864149275641993782530554513057562345538644866983555783398665568850779132656042340236545014513539090758071127153329709144725000943969999675139136865651873360726155487745646627363329813209508789986949787232282731700518184142765433401230387200217441785502845516437470098815700950522719189086673290204675325753557628913252467263826738019077808600903124825004078468743098267253778822347756556635579758696515684677370671478705132296663606621189632260049428558407522934375725255176367490129655434053372309523276993265334154397567620663963394577838829208572722282371346324614227301152760849423286210515584039458278790976903500227715485023066154246832745340001236095867141031850128838757784015006875066931420084957880522461508427784775658917265716053326811860422578053791466550186263094131227764941613402504890833005177195272267067639482737964091165375050800277946127448910844325058259788168525577948700322487935094761350989492670312186497378434227955005472119214408108441398457571998596636551649949997755660819850731087980237910602351467854682574219921596951660236973496459874324132099375044277006810790270373881242426561780648833476640528999819798191938812099777873915618498371899750133086596750829835908151699069730267238607225813686536922710007263086203941777086314624606665629742932690431424823631822027421246366732660785772843059217636332125334506639923447464326891352635073438546323708263363939002661687144691252857265011811139922268349885246081318729036170247411921787951420506601552518807593628547285759638925669069318751594967701237289523379700684784852799752382068375832609078799900441664585945210542904771472543545831720452923355621288451881706789027076694788576828307177862828881564206101207137745347105912733519836927602175184498130946119212036889931856124286773026418725453187539754549326302483278793821001620147644468923075814222269322288683922926562867172787635512162675371553141298908371836213882424935700000839459925594025262456166835642534430027426643384953008843433121314790676143237286277474757008913159339386965579125063134186715324175276518218740475242016856080787863524627050489308864594051669390416170816995107149790129412548012981190384697048990978835854312953662335080787664653556749445201494933752643876639584878515030679637567753119073324675836355362661623654702826997923964038591104573229825620541742898597527884677870093081252682394690083121272605130142359274600735822295500238185891412944057271076359569977520727677134658329618723658862002643500315747529830178520932406161632677406483618459644483772288871603031276442171685115502677842870903273014403056623065011266265359344581163674645814121379750068723085064922844815686481237413137863330799880783428627598453190821203295849866437710660853646057581501592727656500575506090912586166324106831054565878867764984455802545017988794430195318345288195535923591816287126664162532352005886905028906859846739491910647303209700070639539141980306656079133074112046501434096993416462538968480085522783148565898857901105182560496554483159115397158693394670315038738784228878339340173529775712844489226030480310478889453777635790515721398895607157569008609374737366178357218446189538268442044604800260553996367238695773527083077047799486338590259182260220585246191853518657712012397107227850998461243326333642501638325350781443849219493358461249800601565965318705301855224640977008125708147583239475267752368994675290189178870875345768133439668881508092428886616972894271651032438635296166189493683050379391387760282170194176730506948927181290516593986101356330533531701847940310625820114601060874498440919408598178800012804807123880231249612064720607574446018274659889688511867188449513722590419110255219619103528789174681287827365378102323606246925790412230854267006352347016631192767573842374804884190854931254254020668320553071297000093197440934976968776154260256263370507307672235065904273582569587019457626959738382960129494157168429089061173718086760341938398238840587631060330452443679589275613020873168700002254326471982048198938628779835025113160551964215924026059880691260327731776490778593880128099302523945524346669022515006041608542688874054787701872529230908619805000649883759187701509225419579537327386043270222884553259902838690936849868547451997706740816197111070800099807042869498740510285874240999815353833847507993541952994564770882854311405787575639201969519786539478220536611340879265483634007703137904996607981898495840016593714866816786589644202625524510678364572666926128579471857513971094744758576041719332767912814223029649261305775449467983470791400227874607877344969020709006566843770697487879153719978011748828755909331397980672091849478652236732094465816501300755656460461707727387586408387649969092502072093863573076220793442109211488875491580836485184383639700643865426088883883723741088349505326074969736905960955727645223750546747533673228048219403543935784271196082019670181453450767093388729024516362491691788144940371060958589542781467289060038715340019427736397865562966024847433752028035881926652332639274490065188630185189212736527099171614590382257815176145549297732404295586975262619525547369458567042244314532625684615955260397282830812191779803585576947891957192365183007469305523958909829210578721950103582380590320191909207630595094988818460609735836063920818512851405078994136487979572385309299830925993517079776642202729834019869426916037982360810973403114453716923134681117095710579955286883985041047118164443712193282055004871029349839007960297426348329922067218236903589561477628050400027596681433842662773229220700764352568944134780059173257931250748938969791721440883494487504394710987763042939571217487947383563897494594954555444115021752843807978313768057494539096990904236534484525368553237132891998896148547436251586758591411153037760931438884441363421123404557519597244849545985356123694718649218948993361884473779060206664453237625864968233354012572863665845601249428507979828702658403922330273046648347983681691745806362082409910203958923586389748251702872979208018639074817556231943447090398529172388958935040128841651764668725464275698914488049139391365527813102217448810607737401340039545890279079617586748434042076329637904421679228059712029589995969406677346378269356156665598795075405191481905142170685088664235674085916053021786792192986392522696614855409446574151650879972237085528466868556304943605742266728481294522088820771216357927758257124383044626713593726239216107732559837938647457329510617787724106005134590031027011638811176203257506535663036051120729250830382284594873937274366097812166124153221026730491941259473935207719166141681832572780587807389328134240645254080466435650721151590064551273429232327585864448588124809727195997694428043435004823401416001268016425593388225296941679795695375923877802618140889699054964857918315397641786087851561364818195626192049578598295314930015453761704096695637972010033592387046006682955045093946640739252389435606362505703023605068901637904029500142509952570220809808018075881752352459480530452928436945693429537098728770984154309130966824352894817811717219811422240898527070271421522647196591002032242311246046770370840246166932406491191865902522904260966009519716474170112810714787942542456712500973186806475778237767808758992056098231434148224743916040441473011989957585886375201942041914871016514980185058466702929616685192794368236697636609121901434175369114301341133483859652482557360327004821463794523251576624057286892303342565960105518607533083102158581257916197163460822250834095702395600205830774621425923006828630640058018604465761079352913416366535375893616157843208170651077032465670941272062086930888332414955171220033325402558547769453108944730976136822915636855451608391742943203638776194369777330792640476664164535857338871796235936685383842161493649179438069967207880067698320815388508691400354084517620876640137726019160145296870675754633925506420009206212062901351920805123260802074745480720841933711908304572178375660357475373844401130869170129804911324708824039408678655352108453758547806398572717256566379994934029115598651876037748061384754818151669436600020975411274087592700932458518164676567104281517529305771963167002008226605059054674515978783158332350407715307612614465193370193604113065928257897828659312685361783269740746472174884507842204097945718566373758532034276443059189393858859043724059358668947253001373633310197311735081033661505083914845887185751814133356895636314817204350107648640752262148696898254087298056504709335583101215466801018036324351622596188220415007475930562510643352182480160498699975800968890498674607335732160412888235024316810844217307613291217939082230368262759602761494733987853537806063033277167444539154794159470196389867309450812468165397876269118264066772789042061655138597446588458234121918899789841548971436903301365786087632488619146396646170961151512632572522984977361943522470365305929407640812352864104258672263481099874398805925128589949323693068375379507110404835755642647554155978408180078965637765771347346780376189573470255805828864190313353387741976002351774258504391065466800214551832693109881727431462179886207983792641622496137214884944442728831451450563890312483049737643782044506020073267683789707745286939957092092830097232174406958585047092557037157278742377465774509438600677773536927794966979223277069209063798817747855845986952515053454592004831546501299145645694705357315714109179283135567693236950673708476334485283797729030989232811853025003284222630070058712656858833088112013933710442019938473015525546958307067344021155507198045705468873636240130613310838804996566931075419848175753679175338612969374567979762526423379685555721806556809822650161388793374095408786320446875899141851022920237907321561607303852105563661219770138136112422094988420239268686652370181284036575916733425870158979723453136953201917436739780608086162113575328302557970544519920033848496526371215993310956822163224679128398836142856010515788127650406638141082114650663220125682729392894597371289038440351845459557527439391550757769199957802875361972733812041547741211092545623349996446323493576706794832288763898483311047768549627904703214699103500798750011294887988755817003331861952700532379577295614251716846242397453093948944845145485579933334682811586349652134879282131987461934800487530849201020531818035041124011418582405962798786359316626598231658499263177633373964978218069392780218710027473523741434337454283058720854211955466609967094984116484882181740933867899496608507339961366056052479381738357735637788410420246096414540645388379593608464712579185627989673042280259462618775266894312241124416602519695865648229530305584864425983568165249204678796486654814816951201987208458518791274498740613681342485899597835843781330631592560957027083917699082398480478262012480654552114825636515402541186876864393497100472933669361429561384331932822356402756156104727402385217143439493010366935946727787372244679792000072380358760362245866944555535245584654550773585944684480064575013328652922722570518645896552425386248780198997906394279270405084438143526055506385272626832186097183326632308763284128418618269020730148211210454579935859381226892536506345555896008418464655746954590951629140242453350184205039254153509176185672447520025337275534629604413232925060524759810946102959185794538413311292788866937639837605050450657627368845764442817411185830318595079229963082084596620306536325605465666224141150961286769633568514263194994997480870849486430441584384242071641084856751708063734815674124585970293482288808643337466253352658119032851658201098460140180460197693688292317888066461010688817267382450564806732330268301052037503682734466401620577232535424811130787333042596158998243306337026524842220696272015186631847402744518365225303513577273769724331107380483275503460622859970348843630527650200260895255822457754115454495640168781812275322897215775211748418568947165080407361398333149007395377557501247073784388121864963876028224007593887905329128501886104936513548748266781751868496974059679364927691154115199849198015065079069862492064927747488674736510538553044951533800539415698575403438438413544116758471319773931923349414389878543216362252846662062697913143892412364089102705476641466990441844074743402620129168348321526117599042383997474364688905989855449114128840309596061526390876906171963243586022200074210289070244388634866245033570585300145259217401519470949824669699451163720333373816054314736999774724711245615638080843417853197817775524959386218411527656115038636716258194183033504470205691797487018068045493922860631417054683375046124110489860193363637481101664727664626194447988238690286649419843666702615338234432453991779854692935094123836651797892135357345876930230118769968685287268831020186595573607524266117563295995062203300564053781602503059162422367128752160446738812778716701560571125105177704356614750818357476428025832863620010333464873193061548754565980476207982892830821288634315710660648882971010282971088162041447205021464509685156457359549905204720833455499070864272121000123297568639936220037239383731089594164796280671659815221694853029282835522377163365982412713718403540205204849354249602186297690031891169825991002291723111450121279330447747704977886722851669959193535357467684156753601383489382624231086223938738717855160054464896208846631066377386853325276136789937329779581956683597482957813056559774380036265472086744046455226281734870854183518175920434985003833464418264951930205939095717207269683195454540641949320825664713774401012861769675769941317123454167560931958296556744666918723047574061013005652352402013090889738109569827616758817681680110061390972507715056877069337895044366202660123790856751096475440131833295554269493850723465001228315815783217860404862917747216307133757949325956637686727526237222237296276120999956405855708939238375375701944762269225327930551828987317805986685140661867866582875323453021279566981688026378916756617674952612117032803175125804493303438483788881924959633159356111614826488148803690180037487505928905645459501708263958142504847652684255843377339301591379480015756062676645371477168475499874711531136309912416766174647122312816458450703527397079499813552276406143336292056302087678671884203569181438805630335046578173024204943544276649678583981228852420070588373379279367306370327965750186584906937310048720618436442721882922922403286982124510098981838826207245266957540374181837867999466855261559176182423762836132274046271569807503206182082320487258650927892204418196678955869349777153426097493532475683707527356478819973270819763890268433697515135815742394462939514730746803061098814329102194097193732041884237591217469468332344152273428777157480493848882824315458521642466258967496769768749897935364459079679634238213811400348769475895322889181167183433758884654268108335835264786991638756652191762885783053955610170882446074991597626572376682219322971969369872937413567038790581967551171886027716200176678181319118519241909232626998483249349433331156632356907361337632568411160002168277980579941530501929318772396139793673340416593697571593097190231212025725456846038489789044627376706755733253228924995901092881164799747277902889972126011273248091532657343430515281222557430863872687246541418345648236115942153788923223520359359608336130316243576937960799262830564386596863664881447555600143778087054011033387133351169524961891519749014818292368105077302863500016987584504848914488272424109144420213203553340856158058085997780944575154875196163346161073091304415233723236333031145184354785640751815639096486726309869375118693208522557036690792560237761937265366310447197964116763269838709146405852384328853157857055815654615357947231978773253092813942997966488392164127931337738674821816756063173189608874019962557223661434529087584309850527588544957521533430397500699646714034993331058399860288149734802058380117731462337232506675092133739336247284775680364965559768569106157165090365433432637120568905502094223949212381414011628424331750585733260145284250955818775323170480012935666958582737965803390015170545063845403684848207145340957864625617545024227798416400175211350536258149469603899388800075123238775903456759476717984774000763443604803552484949088955587680638128284973621802820919760182207600766494099033817715617439066296149127864602169979495545396639862361710653320444767999205494964739225588872501908846386201730555667979055575491643251701693091858535797398494446806610857692642079537340207905009717991633139414378807501678650647605686672883859312678719417601042357845176768042485044415311033991450447619677550972325729880557337042651903379489605313922186893419055802186656542479409644954491090149639366925326815191289206371133783638161327888075223959387448257888498835435717612256877350720071172053087167553048500634632598586541894050123907637452553694803411876682646917597600811722268368974659227511168815489580157492062024732005240197640397969230080997795927426959049451242888954042356776172095722154271986974011938897355783899243511996724333235806558390717633215267655014388489206610270814046968008220055180503633702750693856169971805467484762542612151003614787073543154985863916433893156413755281291731297009238884835994785813972183448682856862817392469050383670353879472926270238262840726131197410148472334875918288192831264953542802735951454284529017979892627298833346139380269067337712901440840057729011759037041028211102611322644584540786504300028809134349893103372338536915559704063551062662256430496837356671734374350945748834265348790487302706415762895118450150942846362670387244253307331103627219846252221718431752044327651090170816107162543672216883067217275027088012396946923741631891119890663036482763997740771335239685045858763058802839290365950463669439504777545480947519154270082047717066865213408006865190508176296731345487287456055625615021519681348950616938607816139487269480758840174025461047888881210104242427368276583459532663372625325911564846051760985810980832015062403439546165823188797207330342408111834056243276585246409223488596136941843110508012522974098935222278423795069309229481225690779558361188456188257782292140937725105503494722350043600952767062952692553857329352908208762556798614514997746199334817528009059053104923138405156363714566360162710394791417443840812655051523453463933691907703419837897664472867624201263828013044586197381763663082444674295426253481676986256432691355654364571294822327588275212968680907159267114760977708143330869486221830711175082518257788591814942816409097164472839263522922255455507254379578986236633485363164662166307956055285980230537132187877862932755294270180366018071313228867374817557690148450900929501471751358448153084955280322699902005634499270214695254464581545597645133242448990104435141142555062932541581717054127927014628769707734071917165483419531512818150028430875593775110609653042612179313444897899884738640771454482876227150615097800281476458104556988562442918494586878629429276489505475410292724034049906997326076250788111799920093170091732318256714253633834349932531023799246671154788521201579412425940088569416407716208002369018099547492038748015427760329518542447273254393237187315134980364476667459979928157905480265212625722526882796990636432545199211669830641694190344549166168070711314494740463562534362775669549268705280368784593858606226881147954981906046436317265969708834496023156829074668167797414272286438115629646899962553294280903232711214814747106111853763952979517421813992098877912357927630665502520946680036543717742309798988400994932994702418051369598452259144201229165226208432817340720846812154876140213104627681057129497780300822526375937308637892268481699212168540919130220479327203256307020107361619187205682651291475245030861993719577415299480739902191358965554086359636483986648553651537379237599710070575267762197446466391360871384699181100777927975085732967281021715723815104878786340719885693537136474044670237739933879731687572931622707781567665780821410825405440524231297183224378323537990027392713069753763282373397082487978235357869645861663872594001040663828480557121962161017437442440990108717641056038197172900174015618581968978114768613760126049134923008950057696876801054093446523321492341830356265217482673194458859861646798216824603610449991735328877289226761911267900862234019268525096922506781425610216018029228430587314312094994950230735100372873402570504762783923072226441135069393787793894030683102871431029339656053698905488296126119042991368625934248438644181535208390886250301095689098254662736793075404205213450407670562235074981012272260751695368398406089920279928199729247236611213062074917234084919181449467860453226593130787291358283926484356079307122916217863896536946174656346789904722237842364703176630504591020926710608670450722300098473310942872284295307357224856934221222235912785617581673518827277653563048063146764277985260510593679767753987526915372171819088729770103974762070755169953869062341583470525704681675363727007613330915207771595789820380209389156548235942035466486535886699997646012246565178573750905710482443862484264604382069360589170282980361879384074631840342334004960959455088391181235422173844520747678980627664650145116242626860164037401030178013061286580974776493412365841166112337462828652147465619208944568828946997667778595610959724446750620026532923357305385657455029658992445785361719213923972456284979144179240562767992259290038664872978683523974962550596776956676045651922246245464150807471228403155985259764658840975324963973151073844073438334323247167333997221258349410308611074466594443729099042304521794439420765268460398362287137247771993926950379397384931804646565860215665351161995968790822036088202405413460190010717754729464844353368456967883502121164687689542774511470477056300378606705991695144243804747864898938660515529747080249056083515609541775312060763727055862153307995060688005451732022139510335901597039533837536032655322784836589296300257337825335983780976322659225242321462545892958581495280846634972980203496363870185075671014488299152893827938980353305962534155953017090021465127882502383688597848750670859691527226934216514163223591945515984970926237293033339823969968953089995915073525705800787588536587865186129664293083544143791337005873676629967557892487960763061593284191217096689511225751866515985349323167397834464320194091160690218009072968949071276555129879114438548491183162396941626257799281300763106871292581271037560465901311449675584642821998971152585005425153089451931763972586231043108343794652449861753596765062698908396335939758299271087613794197342200946964959826523657496193697385811698608621126022603153881635219437286173380906463354372952385311406836595691794489995201622647242097351107852399216373647045774744584805709279688590490019390989018417451504731486930250044837341887718694099998552489859290330597054525868822732113913172838773695125667205100044406358503403349175063121681836007880222980225047454235479888623534397751922536933781922850573721036755776629340366473924221717123173366989316049818687523465239900550216566505968276614000559104493972449166441123707764328168377299230643043165728979362032504146721882345957279334737510163666220978661429569465148224624673092932798490779797343165230653582272155754052567981200064173294243247739913848638457870145544031067089197368162077429765377991333341432007563213746593603245086954842713854487655704710686606791516231200382427208703701711719337385635171931790240240493842678973555021789116350631658006886568368225263895449340858858792101189379386922223645566549212870709234916113506319070189771011910525314525713505328724129465704491592651605442737063640440637749109645425408452482597063419847923067090506213275908055517796156040609673927942664571461461534254986919984211386962013187916396558195616108687309897911202280388634727269219466838684453101372205095814721564866654921952269431864950220432375566078311656660978469506038461121976392693452544313914438099392132250575626470649931186372881689551516538659413781441038639660194005878246192944171800369340110224175873043660171286068476430359245861282986540831531631416010586897495575251498005197348175478686560107626544442728107078941523818809481334474802776096399452259926739694665117037760199069999930750430802218148157233748268567200621747264675071909372215812602381065555503886908412511130754949132905305765887647824522114209468301977757477069834348322649343030936275886100503934068714887459483773444717337400322042342418331064995505063270587895753223712713916271371546307394302836884343803741056580728185524221254833388564643892517116451519912629874749505374034049750761589190815160704764177242023446317121775152928453744728922979619499327982532626086690532457775942912406823251328055045010057866084373641634954917049449196902293651628550593259382186335942967018834509436620180430465078263338359820072212185524834860611891428401507567797176349788167079040514495450423083053778105902279788021926062343555762764468035918531663464697325384080034162601416652352306044680736400133113513186472943211607654588523085536451831097430509145430827454821367081797237122759514064369964598448112521030698774853235003863757503271750565708817682140754223056860314461089006871084319487623962694869961773913170622616555980910680293788835021282742265696578140015587446910974740834944112904468078876556912097870842481480147163315212752123327848599997837602241215805168221556921326085892245860828043349281745170903737034698450435563274049947245717185733014739872704494700008387041637589240185390725117850044615466940554774812751561151417275121921038274051305712491075765504713332831164813545317380132266585290123670429293227649261497047793191120073813741027648874739383087964958221173110440040491789404628609254990874820009140418403974300566967996023403348703323782453211027210328025414589488303891152668579799330393122155375236137994716450944863140501437906106663410210490245349020291137363637043081613937562814871794974638371341211523329404372088504395705086535976575648632641764216198702527872672523261791248909408754928496861216253297641802503829807811638194683142233811252100123339592180282965477889587397940033434696703825283735171092006746042805195287667126240723394891273596289308773141043518188995008780182610747135428802778417950200486219440145745494856690005210656497736885544690295266523756374345996264901664787024947092258940825250771101091508090261509993125898544992864208177389244978617751201210620574672315059246719309806227129764447799583927934993352345189202969822648343385184253140803719019854229459631869599697380708143286973148785517622451828698408224212446089598383765105103575020229194871798982177630409775150792989268165463226700381021869960027834050529351062380853143072218757596049792705446052789210709081628395516032573146473527863828687881692986899480819009991398937077217563881160334359493259193020695347098883400989581190803239661878011466493434984314223831352245657497051644369608340347381622496652971490264607418089216978638867139739884884154301379713753469716872155775228488454496684246266299381826177784718732512032556498491744492816568335876486087018464347539405350119725743804689248965166960243877555513451635791853363070922194336291980006849332619675316837627106420173550956148504147137116871619623764166748124350370689723127691043020629628259901623877482996350004355731249125461183614267422989784125719391970732124803852108664073598580181515686217429586488554117661790782917131115288477989390407790295237170356218110200289842975811988432345004851022614695919853409804236930667752879347562352683499392607083653890957260902139637606327540679111415492450629229197202139298601191613947329765021511696038776432619008400425038070571949705467666228139395176324737766447862320267531736416186411297839078534724894069750477988459008773363839741960942012929427686087086620961402900329580722698478390046381626166762432973112749701104118576373108894433091296287611079312905132032267232972539737217557824659557455306326934184090154167731978124506578167591135537854439715364261854356037416875334727972217665124833540757843497260940791695452605296923365799265650019701492910564820382241778791441115503120240671693175377417915630787933379706078283081323322379517910837094737271113701349498706959349424775435151287276985362808944687880340804733414146559361399285229093456241824038958011115487753785762810478070131422870317875481790407558581260397199284457053380038708128265804967387210338392691753105585186956761430908397581376889035388454072088221349717847405165488243667210739172359029607784368187972612911919053100803344280592209040258425160945756904836374957471640832084596167662115843653015396782163154741912164967254361439204346316786809699259483343104068565610470547734571229555771637695287203896929016602260389127655573178376552191281172396115330646277476501040149137868048188695734525707023951330131658055246601481854728228670083336614784333705774224731274883592275537308106678416153389608119010689672627557590492097906158387929098076629597767083100400381022343847131034802415289390329063498290971869517648617528583606481665249714280367422766917658989561424732776808196593019028305171092459194383121513763646107707673555304994267428881779100157084708267407807069969050415367183179712122368257312813163909280910888572705330892626272569356237629337936257563153906332702706636593411650497760643642061186789771322386069043324975244608995905367996732659138035286821972417199143760380345238335453353760501415181183484472505292770066910928427283111221062948914499178653481224403058884206324397265314506340977282919553493987320032685669896284241112011245830035393359913815641080327413611397896126594689903721228787812157134350372693160501071316015852484319775142330418198345607767112382813187835951732816266104357764040333313251620108840172736145791453230881288172074331599563851584280376260760781012715842195921623093109053027323778302303390516456603837515631985235850060987238979785090258107501420696344585122722450533613948190678740174693050247821452973361978407809457696957901799606414678932356555401861194039635610001292413302581752797760539931299748986296139738200910571613413311539665837586925460511226252240107355287619604601838870467701089746306715313135037311943208395926050277233263227025048787281192997146922006364544687540072404117102873479360315933861659659219790311110906637069298708148028245171179130041570187491593451580854481337344040054502281482602198715249252143709285482848439890210248225885910614332540547504228733912315839746026516384179229056415434276406880225515739872033284338463750282396513864245416104636540639935993639257510305448722503480678878275810030237071799282690434119476569485733668243026922166679092149040141318959208973942230039507358770607859980641291856242595344275664736279247808423222867628339730257053681976294046461713270679634753341244158407082538289163321497537615106714611779602691502432436622994230340434612326685119446639459984197756688360935567278797766361509454691295819662645743232473922666595771153567395637375315114965767323127784553974468537029312839968281840841412297305732090087665519609617660531880294713275384587169503496869093306160226433370803899893291074674258691182271724622137888674378360018333558269918854996669923418627880562328320734239928476905476871235974651111643611465565627175929208752806882806860571733475911936900875043353592678287714291397736127962938088709136206732838347418438340820847145363271482556863092302272738377128849956672654493731413197585561229772072330273332471917135124903400104301375864686129557545896625645464246477336169879342622567681182756097691205159140580722758490678255927546069820194089887536795261831169435809109837246065759200631167770877548003737783173845909769539049077532202613199367938345130680460321973631202632883086007571007923568092591641477909484349978449564347416521983537139052613232371532087284461847964626494405592404196345223038269060668814599316073321357791679798560390381133470392417923274118175488296239481647545708116598407556191006123422371899903958821512065708579263204552672910620926812150092235196621643426682725987673326667320901066586718661467831410893153248299341887954805568100010307993591343253260955853668948196938266945306076382040782004295359421649584914653164814952259607691891571325183099378883465689980947594882496176302974722724360194473017425430644304807525900297172510658029863252703569958240732454023442599695133489519207299765715221878603972054950290608257812114610459592169138091071536774554387688292521965715253960569192531471920539962645344425680800435758941512779066343005203993042565588356538253278557572753193388431782449536712519559134901600254395418806512965678946846674283744560412865425421106610395999357928956363157426402772964636193372512117602909048204962419834165801387941860196687504458173087738909105302023597153306739045788214121495834034070446725224794144315253426378843392297535281416962806175783804706523275802331141750122118849164508197395948143478353193328055933193064799224691105037579796047663524909069903112725756950401264771381900123319730503787476645650971563489984702544069910799814944137546017889478793381311853185011738835396238837622098864486813090439046821324091128062482051884097285876471879269529688392289831516901554137555741245164589713759379263182563431965247937967920760107095233153913110218550506153100013997182352673397196291568539040393070223792703430310349818928072510153149179431000295241079106404896612842513739145008378400397773695127710172470244176752110780537944335227953860808435426181633650419635894871044449351535967694907432204641789679320245026282732590489822892202125299482413996975374387090441888346670761360481328318548667287856480225332082924229397203666670703329891125849897445245247176178011394937197750821492747131746883471275852723274396773470832063808842450334223013381943565113262548791056618677454916600401743362939957903766509098754626841713788660402003944727785451470151891913241067130138978872831857579459972677714592308449527916936666650103541214781030236541964784587556681779241612677854595847032144649983180226993217891766583915763175726831905531367307107305291910269469556852601358827928427633995297974382325339187475472854021281538912407897717799713301356674284003992778632646704554904802187891373974628752641046045110426230638754997735671035413058580087477676778806675599618170200118840089421081382085308593665090396816488263562611977367804133911582258806197863147039539160992497772374794197163447718096190468933397913268800050784931371319983612906355684593407947271507970278838521530525966898914881554717639351007604082562587673330317479407309017426997400946355979722247875086790857416707205732130376552934357573544510228166517486501592749350911999254680506242488150994048572411126384372968012979606674197232092929963904674475646655235086127075771602962449534759846742090790918557830024073144344386878019484942893072462753901906045335989462064279064916671349562584248269060267050179288632429111106523957648643168350621220942193096037257207206612121463362050785604361762240433690478461896687519023887364230889125914501531649502302298861214357472798645753681485460692934457634155213377436850335231939534174938366579911573463474740673911525464873482214156940738559904237848219694102965198602074242155319477381254438179925393422680384363047522472636822278305900316421952476825427538015600578491354305078902553597140618533135067022014385673337091391470760969455362605488209650203287121996206700794853615305294910995752854058992730962065211073150789528417351927309086181942550746658742081417868749048346053841415004816852965439652740032146861407437674548820621324033612975581980019951168528496160728549282870552049576929800443648329965511179892962536931514661772705685202409138333200710835436708136189909515478123549701527325473110627926505066315079072326623045680329005579707694225851501154175829365173554463559277839375739511273129770251212867371434236630108550937267702104214326494557397274515440219454748981131216968303456077934229614137774149683898106978477182014476138126920482472708727226831053825295148595099556277460842469667895524473428140243022191087595459493432541472298598823421656960185108294980416482197121291154845926398228220377753772157444694768536888395083138228549424035876825857777575544329470357548671088346235508779132520362495040174860939845592060520944818310603996704130455666084672969557484768086012628202017225732907595454098085328284671029784911331715203985249732119073280554099513917816689602028451414636398461783145128084843258303869598882293237761258119733411310072188116568004571137388638107057714039116873990768286939908240182720114201427992342725854659195335361167726922062694682236709568675497762858273264218257317941333122539565383059199882007289299195055230649943831562592409895854840537956899527683292162328262557987410829737493869962365968616524850109392130760043370833967268670230321867398306136328283168416628265292227700293124662801313268132901658601153662119136305593538332711445943482721163796302137717251483987255057731611958029262559195642412146021966702440376143534444110882859927730812102544618493979008209422522047628504856415346226657851558988526789867668452263738205989071322250905400112201704683805316475311884610751586591853478851782853685771223355947887668647399722086701701388867504593149119093907771319856453025695073440072482741965278846857957796692785951858744250588948902734258658094367150418047869351001314905004076452177303647575371167143548038414806225230574088002443476745501572803629239598590685395597279891833430270082153363281300767625033610924935801935486900347126420485206793148392883522074292605105429138115928285978699429654303645921293951433583686889032482481210533939790588087910024276423139816670987248458838523975820809943316404985000420077982496776451097871137136715617041237221391626592069736031626683684956040884632793877436431811242322899498062300177746452587255240781141239102303198718189974500290695959117176912670011650365537731473317433895876553662892049427896952511475430441042075163833915013959721282624892175329955100491425040285737390479098891743427158106787020700951737838615521104170613402601546324796727697639129021685445546036717247509242648831900127326096175142341894865451132783892455910172987409595344122174743901361461007718386799654278906769022265346990544935520644542660947279760141208432172402976904210480389156373150336312617392930996466889077854742302269501246201632519342429666833887654343753506757886620661815308788995855329122483161448816601806405199178423914611081863160564604354634884484213467134583981287671745039041497579125830663209072719057259737513907993318271658397837101967846062952723409013188957261066294580950033033932429266008968918613684143804513252536407221550272771646446188997691369926319153103827850563660325604173080179933862059134443117332302376519842528204877078324880663428695130243074074174365964192611876025164647798142156055257676183512501465588219910439430022072881555867342179496426150532742671697375609112719853628083398402377950220135135370284132769244905801991705998348295914806960114442178303530989822903295426769256831013498470263361846038499541880626209954041962094051711985709084522373454962607049096921398880660171899398810584973949150765250922361957003582889048375279902182505664370598243945067537547096845212476697514118451509962941761921421343402759796566772897583460456884456166570659552784714943648729756948845548853371657077836194299309881974531946783897222178173886167920050918427099620693209349513897396910896137343362522237260292036311375922296382269514903686166656592112512594120108710292080377253845802551386310794726329593186543571001367466860991724569292515943562549460339807602911370709284317747308094718202349937090179596776771829886457288606964992757258793408230508559989081073662429729163337470678477012785801860585648382578949065582160032939860120128200833436844447713217741119919930344269257426018905551676734384461090752620154031398235307763492914364982443176636180023655756437445207095121610032972844511041844751610418554210719421651396665802160207778572894062729782045719508009864108832813360298362697635731365685350692073796136928961155461953971936148687573557092537751303936995018182110206617621819793706896732241850915808019935773856667177659698056606366753653474508295863731990143082426058215542503617318542510424176936198838320034517638170297740284713797173165163634945602488283370901133735605915562247270040414024315421776674021068592316862930300530464516514813398560061724633481685075138032766742973082015167479650731441897351222066035992460876358222132896853232046327749979181600324985973543492848613215611586231644302143072194679383423966671454152481780016900095150426660837529540492353237744081403647191702324732447877165589915173688398563010975385365044621118826479836792924462548958759736752847629536454954934429194425813003727817204956360295565753355362778675471572481977481531501173908578649930588149757044337004603959226434197802293975658476456572870432629061970901435628121974971955655707200754780529034930902737199272492789068275387560679850263476029312725189539422020774801740896888201205949090246472849727967883961769382168653836089461490348589370928943841200130355891922259515912766784784371818542033911183666311471598217762446431986889603779816356005767999438981794769592810330358040880278180465241369285900548866851659665848816835726803241071306491078115120273964921687056707944011632737072933918842089267541929447604420533005099313448243917308857442173222323466311589962143175725206181337531439541251024847413312336435905130839376933562383060873718745679187173890042055254775477081595529727470253493787281088479975482161310900402124162913993478366030786689490208153060036839091556206625600283360682137840695757550845783416603078712722649229825554054394621289311319209107098467773246900357796464265400909804674327151973330515972847750325305180604584848125690606993429044511866038851093106536791503779356221541513124604221423832737339602251913637797119215660388381769231565117376829778872690231046224592394602097625639879298149044864020616657487854593478258287414645554492324342629197842372134495532683982313696029105933436362492644521333329452497314508195734151714226787593136331050292442785422795014845993487561859726183187056746144243616524445722175350518886626213183047423218902795024265914151320882405289087010317269332071352211726108633774176704444297575710468871992300238326048563139953510939945069390819732060806201970017402002139890442327102525775001082430123760842965947895401069011215798110806301279227802079215549816548512094359796214217757969812256074882048952634087699632640001517680703752040638548702039483079711607729567217416430997284544420503735165339154349715910874108425876072396272319546008778790776717175398630735304091715443392595095148659571315637505755027215669924714811060673212584826413952969398389226205651569487109706900460488051757471758229027495983459266628508859428986034340472063608801881477598490557792835266567011824225448219540567927585947052530420742132536546297870570101000997618880227933061439949806797124442165244279012799995866508860434530279734984942591330758486129915752464304231792166202232219284408824642435370009436730223880485435230539251487591275048555946264521647751856801385665071188795986630544449877818368644087983031435264993915040577408620125095170317137410547260597554224826783051687324594761918693376134085960473271377102785284297697086734126454572105728584432376101414024568920969388067779457000041723629512086672951415680023325889852555261753198298935298156503525406690015941562005429330502722062685295930460558868190433391441334323256652849995885201926644176373961470822442839980123018627428785542965995410026920306145201487452713259268000761345044825585682617456834785112979244636172959917933194644671474858853500822011163405314755212859001926296566612023849114226936516121814563216247035473796117542897522137596648675015712665737485496676255064295116908309403276174318513349710655972244354653747468294147025701818940614873770087682188357403338647450143606495112282887229924688882850233252140302845972161073252646303189298886184702181187918781987474116243599260759818364386275347258494768975258240036628334078360594304937341882653320562473518055616399676215984954538529394435045921265461141422441390176896951209503279642762767085421779730150656717881480387405655583000760546660399998871350037412257693463327022626633865299151124894591369074443267713886630021560388155362285234295575865050887052158214886809251389992215232520526121517528453964761455668585098319414302274807730222205880217107263111135898239059625906597043340967112465904549135924665427117331613277202834928998185539900659761275049577454483652072784101992663414950754835936868804832760053273342297930604182954779428005410020076974734897943125995744851112960455818620893793261365457827493553764411815466479436685629668319927981089586833802680443373840944919070901437548969109929256728079163408028156708242862373129823981888381079494064253917122645592413082297356375885503086517480894431004051253251000537304623006819353203924201694342498825425748933375455689746125651451729110643685923491655931451175693495230702913560453161156547272479248232183808212490712132569395562760030335321245719259748843671036723241368536958209934787652189589463342272976357031198277557317950840159820401991775228457368988324797701777682817859272952581386250505512374083513371943269211958392488844738146711636924034285232582675100600855890612205268515106001846983453027549988745888785180993946708188616431857635047524428415002330871335593009574897516445068490435810957875690590880263697016970683668110274289389741536572482282527137782941342837587725056778432117349314595471737921602107710783370561791451324433772579539324604523911123313642831619776650874104785270918698484933171645020182348685978854708189659812298633039222322788140632012674808157943884662286621984064783997431861396301770355644764942992303437398661959062281679632651051403367916319872583401323361955768025365935612678774659245708375722431992155923131963272813652672853986996197636934757085057443918195678432573274558110907781949565986961039137640629067173215148331880959204474448390636013501648889848154914645897599879331993629143499564030704954870363687696213696273976753821568902860938267818765827076706241891039702345369703044144222362091749791904934731880320039833979365364465309045635508422063181687844403396703099271404545340973816276931731999862402904410774508228600530296508726871511158541566634015329243318547865514719294198562152858221640155324210758523525518164624529623510740074188913259227420606883950120788468328672736358065979615585633738515370113899329861358227322597793818970309461154626719430891862019857947745434711923431016870075074643515994142530830116726886113616085325355704694171029426297254064854407558508795423190848206402733287554700222740303625001873635694100314990348268788293263952467516556094448754265613487739707348545148766586736637634762159832251295056473418611816765944889805597442387593011404147926258983055228706414887388396189106617872529727916908802509183853318412049224748984745936015306698588362537191152709087684032086163470775211085293760767716659373763608366870970640950395365875443616446753611050465545339334841251444601312319792757292516248744664613151980150161650466980466930517726363999331834653245169718356058056342361252540769967227394108439133221751553265009768349281654960868207761749998961856421333715096100080596953741748273344701613822509640263283140348579992404361360848861815807517150728426237254237376030451622065160040817853178501538951797665449881301662567667152498661623057989127538185368555664687884999226983475351650883494147384431528536534177962086554606608220659397000800768218060766992525898566663131600140802061755340993332962697178102100268784720171616873070810842758194057336236785102364629955501769024744017783131817765455034853424144817063227035801228654721581492913324461808515974316301717241392975488988726574342600090206286604263720393258242024412359828464452436381400429511866454987700960049639134782410777098529996993279705325595627726098412905182852335781103245694988771887839372423463003119779487000533159217296581685848007394477395261896279363300999099765338373864809038167028255084278633625445408012256550620347261349937342204599135825713371678813901351057758740153025439506089993881603929656499494602108598421551142881608948248060569369652302193903827521080051696165361573142879715063397855552549652800891795364735234642940685573907727536816499554677813690237077050328595446963250312232171572704995222876138982940694891934876638809646911825484655713209702719143155754713100615851640886553154342378900764909535811033082260718824668159358580583833214968615726125554713526724524293210806434708099980482541110656771836652119395751081084329205128586005075201779686960546586472750900657662539882170264023936387052951622919343305334130583577030377735749789608619046120850299773472155615526921699324245818298477014667922690408852898652176770812283555426518256502154509293929347176848969753335020343575525750740844385187451569407258599491981393235408384390951401125592777528705917590591776838611720282844786342234447726925020113124660667309124841992145773159587673289224317415453995639476293117114376096451474229898333992832227316140104003629777130497885682943143377156815237071041170989062087545279486685955602477997632903949412797685511938445478382474377940206524606749282874205237490233700278374314244958432370935171580953347851346988272547292070374745937897829372381421400213168219653915726613709067723313253038933800489296216878253423585432262184129115419538595874129919642504160882376783425029702271099007095014116346916934376487299152394105811165835198354036805590832952389981061100492297095171244627441792615287674894887206451190350569665680018128103342299360116193825651059856338836947985220871454097528085470800963770011268343950488447346747442326161547621860835694167649823995285247816874613958437277916963818038091231289304589428040201392377605055021681405671486741463334661952737270606518451581263614286240173352665335362892239096126093550117136093967544574990954343227476876408346416660938414988295545471864084451904697392155511147164429575059722817425725665552850375681653777080135944060177258254971582862154686781663866715600853982663992551546196224828419432926421282959171264162993532791070012486956708619339765658812611146061659288975528641795891603418413189064540926912268666160931751622641149122888267351058748598006421856580757404477002778377387011467606903019783661124200047747298848156812224119747429464624620491485631480188634625612837303335803808131852009912985664099900775946233485391819299499479321393082750666607701657311541942026573231055407106432731129858324364077604498554018152765214400123157955074570394787351156872542346265021281260713447313563621429967329880889670536163714877965917393973505175944553138095704043145246679955027971464249257602191251369701228241483066077166573069608776808810657690299388042337461757339879498768478445144876039822482077316173722429028542102307549611172295706672985235021410637418875345361231509719364653427200117901088405385338046885235286985491227007172593956611148071745951609565951053252913911126206298906566335987002315012452361344910050023901170440569758447177392047427181246622578449909957731524541568283075642276037265866317209025717018021454131741413427612069095556538176470011416656701747678143665776266103514368345650478815846119179935684581529420269194632487176864181721135672617281297874435280384812776846802286050880086435950826322024915745628963539802759915056600897455080544618239036088691388437944420155944694406975337139317612764784117139613035984301041221634251601802084160172314736512209680771488318814027059698005577001477402203015276880373948786236588329209029374559197662462830057847747604757316313646591627968411226179710152043977405525259812538565268675136559220169040976512818576521331874576338813721543403399608030859918168956503966196875674585957332561391059755648423593995526477861545391809648464768943728475361431480776460544256847723472371115603888126504569882288834584721336419065702601885688196217838329807497196858556923234173955477370110424322489982930137814028195813086040938994637032859189064642084110629495575299445026577152924205893098418273029599963675037249440991273822123396915860475459700095059157351025851947071215386190799161820975384219044792796779609256311864511720841821926003275013602636693433639227314305332735793019917074528123883189487034338176758988532946677140857248313985757437375629015714862760424800314567286718003727610409796414564448137251843019492838568345984165625418701100534902259176621718543321582194095541968614518044938894585311121004759391676812756741022007014676427018389191513495101076454203122611636035692207842968180906950404387389032304264884058355988523887543868905156034988412849768006958046776894184597806878990616587194677457399439340747651940993048637675229121736353202082429479343134293213058949643114411862389900658411909412975257285192189058960583391077997158522829288393858048127014989037824461333940641826117369644261576248975628426173500489984204009704068574019201690998711777883678156598437352936080532967847263460702596281371851758068600787248883841907086186560998372968208801156092846500397728616886523348597090931378762669242287555200406225635253479167617961001019324375694055666256455481853121581610788704246476871891651853341457502147274846574605209502812682591397023052418214940453805471904991220233720579601642974036036224934806626013663157204744794077233574061971332135236159474638359966232185709658960080045469349311571452210925359170278795746238042980050279595945595905174282979448267765739214767256109787987155275583428858999422514589540092912196674203840092267050212300031569159193179930772675840969498981160953858944564200341599574884334799890212819277883212354437120441556313081008536070111627468253156510233473913326627545605204148927319946553745833568367381916923362989437118105862843652831469586326190236491974041230835716012140392013365261523068318862034917795802314801114802303226086310291193116957436611686843859969529494742987712595227766022068631898599775555561370114015496767485469544511341936214290515242816379396163046082687286420563435779154616875854646211735732096995250836019287666221666982262527976768681775482276352557457480863839835864625855386377787495905570332033231815451873595899211267878662552501505384273320348177659786482719351704103554654998101570587661855283581915886775635296871674836488613004292158582951228669690696280441427830050268106447928150510268260811578365736561157708455596207186609461992121077838256465426438387484587474966277653206732158721259231163821978963708838260280859680828414971328235515961120903083749071227065601072888815032264959284173157331624888214323955589222642837309369189199112740836592743375810497477024181802068788763080444448058498778478161303178345118064730872367366629750852863430235108557654335828072479939616069854257890268044195172129217257573876304021513872556369730449189754711363915345608171653638151062771103635314173469221347625067745889679077143933288543882714752660390046505167852280170891415185193601561588377910939871605294598487748922938949874549892096486371518940986083049779577541635220457784350495855538737428331425319638873368109900609809981888467050977387540680793755254173508808985635456976230267199751917776176331883476117120150289904991890761776299376836756740210354818141732567135606014350446284266641992133312269156033987037378424551724015996341574525969201217109943269689056870269499071983598096049278797013420471698966463916431135544863312523932614735590227081283696285272372321676476089697755601230601721694895601861426104232826069716200869222650760215499194598608293878143206505081348200805965252341599931732117561012600415334057943738271686595760309970808942798446271649905061366947767568712620208438859516851168834360960296156606659120584167705495656315375921599837698543980334211145973155626514383227597281928110200723565588082392621944713992957214527983942912125401908446709193815999244659678486789639039860291530633600588554494059739355953121748693261555555724286186496772773995799003103625097440915868394244748331042264371760099985413883621864465383289917114496974385087786012560591881574177337941850992906042900734520327586697797565081172529021827525018717327975930592226827575153008429925364211311226540299211816677335871900628379934478063680000849737376666322097477368933144108316409886333713591444202554121284071687732798599125819484165335794928649031691748622102217644192500149974032278932692195410678237048321094259887988550449858298596542695247970312029460179856197122293447345364860401525449476279169860760238285969488296787906099440732156837046306740875309585363293406217518203250683851873395746973286514370758706660359910697603170944564811857344779464804426282117395877324743223623787672112867564542030723577193223071522278074937256489577189911103674849358450651601466732679877589191101049334742906617159992318856543724167413727118689145866959153229162478026981449878695741551563313985176429285999451553734529150567624244273097912654873726155096420970880527788623711801536122487285938425744378567637149678233180329598719436287889610487043962029587588872986792148038068230369958171574176833243749980572216202197091772075148856505152439260080490407237560472794409945061352118749742864243111888760482682649066942419181678396697866870384936486481575835651193349143056411846368068610278426324612956592990118269908569790788701695667747915731696611935077549451377357131411483908613534935398868351605125296202261586503824179136666588107484818866369585603077103928728326583570113500323699308413461548244122282263456313277900827523895711319084282763491863105561792797569772667942642183589074976478795431479119623198037980508285027721865040356808541035160013719866724020981872038556905904151038903951144197769344400703784529973781404182264329393658113786661967486047614208054975982845866874064903036516206493826584655048932252514798071057368611783570110513100789001400049140174061720163817502398629177738290664165570624743143294371897724756398452475735634158635428895304649602965937368369698722535581424437108149116674929629425941835956677316468174115546927894070126004576504015715263642673369361083853557277437959527375080658149901160722587929854190609506037628019553483366568936203193808867686536575534577695039587587929757596937496387054365060309980516532439359655470587181340351695546920770007118116670761150263915748917047181914462817072230321192866063105092063458511360910919413504451657008154751876796853123099788421168520965449236105462910759251430195195529280944869346710118095658507716516688894415148495489639933028756306351269598238543171613674975374064402188726911500791476872709261048026665254022063610174650055108703400854949299861659389735043023377859988296506444464648602324560054491065921655812780561555333360091850079982902672347494234008743925196865051893652809737366835775893921836182787456496134145525428398761733568795335435363215109596956323328417187415420123361491278667949616345111420145476579152356459700185708255558057086641814595603703101206381819362084175613856106519422635991490523067810805366222446951514800573027205115789012179612774523489493274379697164403736138689382172130058241655484488307244064386377453694039904290892564881989932387303258431589428915023726934372342348777037929877156546745788776535853133354673681995964680153750108522269803549142397043257777657537047598817336801700985788936327034925980781343504818710009528074487361302058412525163820601720002677014425808299542082635416829271048111660981422335660316404460870099729926457935786100350927624089518385896660777687716246122762905099239372466283087312259671767343811077450291395820308833933824011927774380880529228803275126047554587136458910099880736738742108030373305185865407040191707800461302781480244478827959335443131080226950629365988800112855334864772234627814935480213540712910434086886819838347404990865158125962768355404734782956465056978442334527844437411883774318627248811329025027712749442241351382017426119709320435045455343024617024405842223458255477828583901578073468001573832077956791221583709839112561865441255154807969892965923000976291275087645643047062887156236992561251311914997464075272869997776191256345023241165888415814233852446007068631940740710059714489755941130078386615682545261605460421748468336326891658205142872766870225112647751149287498802428223658799057195272109173531368395669568838552195846208446530269283120673727777037900749833832518114705186950242374991134692777101951371463870084760045844727795890256936537962381671219932653497727584924747393548649970221732870456447840883036838197256697043547317715852608563523051209853717963493701701635010592709613627170448711672012506018060268375510197607095676406806522444248056594704323459116992538706141909776900585325948624964242361644226102204336976472054661577122204031040438695349701643545938405105105776588539150445986637779198197757778354542320835025067534687980814183567821535713950293384484366035033903608136932533663587285613059512149716610756252144022077274152369411952742090219010437365768510448277301761393113793370023823458385599326027560444076914307880531330109862734016197563502281591516420617996969709681290455387356512017331256003377302701713307106152078875171329055348996850806792829656587623079346716378922537394240956979938433740585589526727272882150182966935394323017868388488567915410254550803568272581101613180055851250172134538600754178539232969131524948739899472980280683768349478529847708473673637072501981006491585929158253474600454871208276720604417188827831282059559219338700715827979471887342656415063944269703095771019197358445264488861025223034328617163724928695916400829299692227735459946354047293880944333147329529220553177732750287035247369686544833800083711864175020623726113394826457565899610631138666503912677374871675074449581690092452018013275978854022234616362405428527985337984024674120893247756618382422258846487531084078664168689786172796641899725630266232673930876856215019522642758755302571873012993377708957847954314846223346602765976074721513263584990606272639871118754044554297016275495226471201498755497581877911498239499845451559956316628057627304021423744905665500845550673754064659862615021223013408292781637850773875282165109867711923077113480632150882455947440691836514388040284326743785626847257534346907797956765640521079412894023176882028429274304536407994026215648376648861191412790738121692590160575631935881042834927236221376188743388461123486651216739158648614145347876354797133894564283975180218224170108675535922091086787802463476439642355272698425590403776476994470724057740656638147997142130014518686788989653145131314302088262337703477753647086614333005047309393179106791868640398056493116568975774404730426827201230290422469479422223257372358105736643721040909172400812460425842270865794628637827034641941633353366405508102951159631600944009673976685102451853378939827193222462533269402408008374637171451395724162742690736034720872252614906738350298347470780592095869918304997082648909960680715111183243496765414868218005809208572942317614641204180806019670305473180326625123755899958596666397890225203498766571194029186922472087378498503572373218753110935375734626085113216993170584497002826024897061732120002620122120643365652819247284764051597740049725819996786053246232967332044486041616649802617892321260278888189729279888885623099445873916210642350648842172542978695121445524904180833723369670123817800383707671925419336248242402740434695519769226332935898283620371866886581208199496309832453611054126602168465928219786462832981195480993210619040159888537433856927245113689984767807724675317912618622645262624771189919009058586589940345291689558533842377275472531616419251223781508719407958464813897098260082536068085490909482607203153289910072073392076458157268934635338253421757150369212059242955632508101481398131182181498648005121143953664702861308141205739171147133091733432137360485824578597457986729640871775522537825016171678924409225831072262584261699079045001904413919032893790507846837869879649051333679785976936513565233025728134911403524768355804542302846295350350738117845412549007901567229509951346740816100185133103507279054174117829807774781786005542519664568530330031401409328696378725232632232643484962733983602759921408927037125397983251253028123115484999431909748460924797801444584791972159409990672229585339741382699472728027976733590956891182901121326647363801314288867990050078311462502427541646450573168484788021393319266388182371516702685229387613947581837610053939834520393758108438385922746230241898449534920477520453404476988699587120746025399160848852440036075538116818987711576928545685709089708915434054674806238997205977189456039163917553441616101731062052474952618287468619502601582961979089151597802601196287272108469538218993815160652643155489170885711113735481132249630081649377194365769150659394296861972237701375388466555282490908747565272747221830562353683783947334043802021420929222194732580124226420141064625588762712079828469334814657034247979187276564626372746175561102772978517717163330328281167591159811440180913301087946311647120288494808169241571216855836817551113992299594142647796301522500438514933997662202325555107001081656985774610745571239371453376289676995345630279880987263372843871814403889404936379355727229577544287302333475718673193559034041702262792159246314327346570943422470084842800556294539376616007022761218657724972880691336615906382656677601163038184593611227373689258890248153973421483258700915400510674742586781156750138541875720018524119947668635182414600423751613327053949562425805847574428329436460661904294945782515233004533595374989480127997284097069708693151559900739455415149468628765633066595266174372794122843975960504704369350981188329728854879811335928083897494118758146471415318944795785445086279904925331641219960167568491164112590327727813424822720270871460222781461022165391563859153499808038282158986155160749826607163753499104161530627099092115694042975984310582641151024199035380820896967601912378537412069845145522465047792607492928254315543081562411705294679119009054200309224630539755075252376759593659498028330466052398739586940999995607332345286769951585853028269663715248955505983097850627289192141649343417039400072183734096968651554740849349872453335333721952852426630719195078973667908963307990734267691245680917273417937697254656645428823750722886025172639695703567368032804979833162503219036244145578509521446330164905976706251902662304403285936942848119998209924249580523148964253574864674893319756328767001219325373012211880491189368262765022400346096399965559257075075167227362860371280028039781596280823410315120154309591149777947695997668398501167399454635343340372379074358381329703670049908109973663437322026018623761051313696853867313645642669252958655131233718985781272818086965903584747578270446086373450836224036552969343844036024949027056483345293786847911738982560755552924486985388959977088452164964715158456253384708188542546636551909183165610388016073987878058688840194405658707042016148442661131584002156522149705568948124052406657974993612814906390614193641733422863687225373844565183569485357224978838710588879613409309718596783182125040894244732242873414170484410624290390226098001435017703935403337816723280906957707635839776056777108242672640566188326077185611477504079466670651154860332868746990124187459980908806144171291121598258934002092067469888139198409282354312647131917928420433282925872661988390710865429610356122370288683633795636651205511750876169373063108705644486352398024669610612201394040083605659498752423426284480549097947258235535798010592250110814629822053314981079517980184948521363772100332754926496680108042916679399761747431360406973053734299289246219341753360601119213029273576959266376546319082693606246905699999906602024484398005696539828354761406716058027009660497650215405535596891769861252022662658868604707708638321482734974986537362636359767417817922582873995514734710510453364432564532047579851064429619220714319471786477049965091432085843376026114863516621567757310377689827492159370188584126178417761501532712508260011126204164916444117194410324951342171359056198823259508908445916283803237619701661801582407007200425377676248570294055728966900315309642715123875121408580713876689730781719268895609174134546264606695448822690368841175878915479596622053469124676743238778539366861818333928502114590810663293851434065933521562147676694624295405627667285574673053785669175071851981507420331993650517677879056165260402664859825527343903377241840251312226052835565160320410436946321305142686564569035825087466228536410269912696626836303948776674699692146153501834358491703828180236665041158730744720504867262829488143682176710579591635199184226834842279653974562955314990827678208147584478678186098264275413679188224844142152755050789158886972839991541501705891756069199271870360376434555978818540368494096707110230674244356099895062128171079939235016539401924971729755881237888556393318254919917140221245306187858849189710916781278555273814721321885798055916118227164484808912754901505028316588755652347891818933498869664541822547706234786754715110605544754511411895738816742020352728945696043179910576715610947125420188255454323887697855999928990792517212694852845188171505272351516228298693180270134332147858242514145371509423527727674086190120943137775613348910173675204759852049390466160806471085234857201781300155593837355476074752561711665035869597640560955212568393296125825319562446439320444146676370637499578511358161451890323904347972039691524612591767967969674089230137422806442368943074708647987257297865161770916239220547890677094066667795469119529114790250757558612053836831075567530335925997119652137590498304621797917521947603199374873209795625995404266517607438683734906797352591811796028285540841064359404087602684174985334562329916356841660895625471679348281974714282585855258818415116220491930590341813197039752633083262504422893251735088908860445689552693381140389257505399550249156456759666598355811354025835079098543912135390069147663203393916626056756138527652977223483970220665899536135131224453497484583414013983848632147056032008809418823055111796790389102346544417684720722326174065712341151015524579495193336728232891059977182082776332197983670736998457531646776707105093699812144727048160080950991533804502793311787624340034424962161562958416027406704863119963922332834633748689956159857893424284184750173052012866840678088238743077079709124396402285330356544327149337787222895909590952170028187723902378907717793266123279916216998119537027198986655948115097325516032286225156053694087152894685388506557481416052945828810911068341083303042165552103855667465168160987226262096251571323901033606640542926224595858762246734156242856716883215225743366847333303847088338379979274235662130537646936862018198642174734468677547164536247454272915122978679401231374849431382487263553503278371538482779071949580823190314791339249315779922871954386489690252670579015084548229021420561703019426285682458369863328803816689753333431720027446039062540642908763407240433790610250849907572233677866170133994563457077349175924568267478845169853038746679996325461110165641610148266127389285916094810734280303685663071849779349902759070893592977518868052901909073397082024744309219742161066352646440865760291291504339592471047512283407963280350658799309631049177156192472814990580520359629012101625387116250949671404233579111361912437009286902868135799484644525093518211744296509317276470140014355388166633107638057030293507948407244419456592065398185888516518750339495399563115938357849241168419575810101728448152558833313919511665726618913276415666012844263702036980204907692656822709933796279269273419735907955923523702653595623291805498083031653485221148290847833152077486840842741575208636468839352225829207890219185887198265628084713667142958340681989073410347212664610938750866112954343797332200847287213144464719829739526594018469821625353827095303939949266568846571510200807674061999647398728465355665492802000766299874880157457332879617547261924723822794747608666722059898970147773374088261310725563390613164669754236683439100433125751707374370117452564579336549455803825501555374067036853371992476608607004009015887056575423775906234725259840921123651791821214611405763662443802362547989824783342391271788520587688747499862938527890672375045598642013647837685656410574199976225455338253829162040725945756554145979443868946402807510264138067830005285001184029332053838029725820726215427395952378206276727255253450154133299004648553003212423904298748198198410748824986401084864744037202170616545791314672896641708626730345187630726562552379851068294898806626219350533337397457784566901975238109431350474784263031814607902566019756224813567908438367252076141358781358823581434743036031635198796657529664798635839956713829505868028380243346837732368507667370087265139446263382278394721493831447748009780590098313664310049799371308536932936510555519199807335762815679574617627780469608534105748307108696998737421504729913067997348123976070779204081812430307648904129096571870858166095778827338127481996550783605707699244396236509290863641342380060246845279994877282535201925004833975956060683994747498345198611681944495855175736063084733809074763210776030533718710193196412883867175726961089395723180299551313257326240451607805574034743614328612384930289215860468970022541731646021811115015866690145647401019024306522193289707192581894471830083291561487807605660070351038764638231895952711323885037763121266599247939095682030728240276442349687652276851424551305861426518996514569004092773674034934825550104391787256649604653116552435640203269250089561634504935164766363515886979122520850600822361688746398935060612404308193281336182141679521275310305649540175226976884475509929216378728243391719090142845626260939466810927332505901830016692271726830352091021687306528933841985699422996299289433765748834832791081278640923250535481003353816139538436925031465288165622417441719050818691574446280021530309079654957855600399498553793206825534708827343265770136707465060006618612473487031994645218962709387740561386631715532824401254299443738465114409926071838338885711903874478424382867120164830316149828597814797467761941236682811956518675240946596603522736759557684150030863547711177216317124004988440396344616711466675405290676245675846571459582356108367365014431066382667674433430007277933259687510164557704364985347872643776160220747095884601871717080124605530225842095189644094388129149062571111115619141698637681559703947280174546402168186357809727530286351201043581993757339241838994871292975801529538362743035445214890479840071577942777612145704659288939074828688892649624670750554825569903190377314467146855056446240710503275323683590993480797115684652813553198351454060813858929045506959796320748452954160732185735065536906844963693375006129530461306200812362547161377461363568845378110773861010559669184437297157745560544994633045242124964014944484301765277087828437942009566492404830548915298196320373094315506026278399455945303534863207267808665104719167853951498661374251410580528973817663382308651010961095321057119260384660282618116883274683701901259056466001269954635592521689660347950388498596727211414487173614767792166272714639633435410738468595150368838709479229316697317832755489462543073625686161876998587773086903764174206672348718170149902301140435095819954219129408828463750440451802715064237415542631634737687350954896258424519393102692100959628876394461127874809494541244059250986822812925292126711981658091866859578883246380150566145434017770118148653001523936494874732609335169254865942761628817173686806294268659603648207865913640107085476885056826372132888903266638833499369970428800191806976212711083381756247773721131824132679707356258029663069663530449766653239254328505000976268210290685571517085236631344934447156905534885928530728664631602783893028256366625005304631824679335703251390443987826460723561524034770985997236213380001203804082737375954670990320037371670284223780154644062588598453950936048059038201999286716974446604052609824038893786673133417069375409264591593495759656860156843080618103754828901519347585432325256200600124098791651709597407397657736734053768742435014307116809658211588537791065922222656329267614811789896953584093686383602525557555345460514597637828686036273731585696969373797032528930565101479123297340852380129215510458191556432416503872540119781995460073735884626230947828226653007946447786539882070243652840208945716738859049638219753324880102681572944614389120412489277967757692919540610432571010368107885723479769972239655146607813872479377934763692181301511381963080399398898912263583391820842196858348137337371937953476236905414108971600161161778378905991616300403277308718051734694520352811327589789354936958417504158903022486621473154591380310370206572631182691063109472645833295656588876035262093990473287874233823280567758268783784709133795320497177717305555157418556689394223308172749720206624519163520399820927069938801285731088005196139236475384630248778507626669660485012642601854658645117782333268835046698282132157668197021657015285920777825667880947800652388489715157864081882238738472756257122917095226078676393101607053043109854220371267281460697304432075660041553448677765793729739152754154309552143436486098477393199010843698972970320889090159961251933737880623755692568470331694314388987720185778290391431612415540885527464831530635533151300045565684852836546742860082417424804122193843350517456769705678523475302914166196865709282865987028254413296841090964746655437814580370652991143141539833140436547577688168925204287345738690251416987021306570928383303268876143887705823479865883173069627120307513078990606755304231116712783158678965969017656393457546617221619653050747869738557627484767764287344635244432060390453179521332802199333851197014005464007556891574970030401522766627126215812082268450005893735035235660214202699547927267116452603001201870570752048676359239515557985988706164797455432695863403286418610792263604523682342972712745991013197946299116407708018975638906210654165194590238171750230507532865977741353359167400432982483701814371141442191409112540842044106547760741468175745715148655738576274216008123094904244628722219871453847199049542470530782869619265770140598874492195621967369765420578546777693877082655287013714420341837614374348125325542110554835453200612903231062619418902349079655543955678375979088902407799092618246806194600428327241434977869650128721202025552615529609658326242380103854059497710918552824232126057727100015910564220120010724667021899205226012409142773006255760035731198277488923495455839551449051248529629612980233255828277366267556409975948110508326949477040374323937345850741061314217817091779156518138010794574540888231364014955623569014535155024558422381955893459681374982609667275968337114603221347735313626708471624047434834391648146208321870316552698818006411723803130665538683958238063427457523670202902383859689073680688163989940581791143726288885579916302465299578293349616660533903102338160170463872336420638337249818393531003443583304145461210469162617381061563275213283817870845738127488458274273316955972694107265328151283077249722015832742664400911042144702133271980985505948825906431606091694988913259994295536407501209503963859915657697584610163384400674418791342347535544261642168173938516482448010070516832517330029227712709106917699868354986329163140948886835107767616798608228425794911662676920096444005540584210108927473447904339650759408248391592000522697831852150534917686550334903819466498138671395836002458145935501853950676491198269818680312714765939397024592305300682437355238953752541403718233809575241235001450210162215131804932484643345537922839225300711624472728583853047365839242164621988244556769700050254153470598567587286757957749946417784057017819014093822158250063610408071889613397565003882767213113356129623386834965548851930813043555998603346260518736393064423243299119498969145335606714939498363103343304918294851371512160220359507025320352184081351457590104801191387481383110118722216321685116167915544807772219312230016885380483116999381900961961345308299380144192381015116722558268596731245259723194509754561809569868037396787633302856477278819787944339884497099841937068196054050190473347106304772618806853487963329738237532720867036180520798335898953017177698758105918326672987414368958821035736815901519424540857591044111111928931627494788033188216514467471492598353659293363179170592379089254299394480461722047133024957307918352181346655404015362321364475631733121293783177419111612415344110823589912754996316119852270558767527274505955449366608432752376419984402149185817818971136314176884405502833305479815886696467528107489211235802174714901670263986523935672660753326251116096262444727915065648119614646270079800664601701287934891892423117948261625969451957557210437726022843005731880531078075635103320310982360587137715494587159765518286662175083970993055990345434809701590420346604425980174974666276492940714626804036751729060024559360394840533252112430235068122496140681483158648453859692099374624814653243820333136532531323166235528244489481929513520066577867615443576196927228381951119496403375103052874708848855416971034890973103758450242403088325494720979879542650175209816004976208096498479036691853254123140235802382254199883501706165787900312494301628410917121115618348335069743525568169202939769803845785425109318918271775104546235875938395008216706583815770427439536311070134914041669276977129102683647600209147406155417954688253381405494833871353383797933659687392494153459451553795482904676389550129838892897958984591247256565655224769425058543515398508210185884287470292583549378311141370822475316784495260519003002713761470391067825594094281452526172353680674337762870640157135250205912546958530865139547330667241654834673109633352550862100147836831635674887126277757339834270127953959265477174530663036621014399125026207337312766856678780357828132551576245260516303389732385242091426398888376803169658798660782464976022609319860959678213860904118942132937486411084508042176526672010681127344126904518094307435703099066148322287964003764385540790843777459482133858714854101931004450033222923513120484235437997465661156324754181829104811966249748070914195412523536607282942911418880121131373791989307547791891397927241030493429674873807010359688908019069299682605340646696583350610808667582869179977904779698848514551085672376792217393968474822285131888767853776918083035206665768908365207382925239058036824438069693342334471062778083651819083553280337234709977093380909946799772857062261639948486510185638043657247714305644294756304768706520563066110628415731949204448741578936224334212043990691288597609994460663765322485527390406025623138335400491453199916432457982452695697760051049403274095133957652026805912112111509598092089309889182291903220291324028411366725497934691809087328554243308473595347963756084360412135381527087514178824074521368612688988550398563382165781984678211600925448932142149717782953045071232860958003038435662997328865945770223448961236413623659700982192902641100430468413604925347890323240868409371380136241911830628664228079487447741815475199275539919863250764009465520033312748129895768466733089255610409819655643069103654799658609129888826636925280722741500247446841912468346478100228800270003712980482378825183129849681216103447127481322365268947665418695483103323927850948458641483842190159338122436844892336371740781151125837082393737318677347081263414551788867762385363089099686044692894773516633381236506169330588782458506199745999429582731513167858392402373121378240825989091769939651944619019838419877260163384627349751220036850877999396377018456627682268397202886141845347868209338497572801851409883260773400161230431421096915679135217131696650673191066067990317586806424368028556206015514810610575288612784293859890360082001380456426931966057014498765045336077260481207528709076000383426358277858994028917969133332503809587246405904077596282329385300653183172766560763584672368129530685423105055460419567983294843275704168846656754113672309678152591113514171085580027816776170325147621499170154584361113466845833005970416765624165613999789519370504281903673796937233664513452692167210800910533542775266848801996351660475539455316616194936987341196624215350005231026922373581622506524669478842176283733345566559919823679468316796284492409956239989135949788907729816390308137876842538692107793911719260631491227458808645698645576623235635148141627036113502941242239411548884429603094924175458635645882018849858985714654761212761525462974968330020542241749816610491917160512752877607867548305182682040672226837069556932368312080800061647124257763177935353791592106851690858807978217008543710285571711702673138894680846237386926655976916912583584577762902052551432030836942408349486915199917057729582877696601536829770928542951701639609191310838695359980543692334806898002301195085610428153526185129050585035721670321345702954631956892207989759676487784325574760825090161203651809578130011626323962885535225825412274831043505476048092155519723624779432011650143616199350233668697638242724022782200698189228422029532985156263846596976014916266935733821802019612228645079904114206809700610853506087215181165571127277755199348568614163577492699266235790761485226726025307216516850993709370980908359256079233929848018035874872549411718079067343129555878185712384371908325816114906901531549374738322197243675529207034526389677146218847470022752888828296026352730634529193159991756347743749964695035728362683342869689068613567905106320681138405914705699145451083821748082190178594339565561430603935997820818390930216956690040674740432563969081849837005771346136498484475507435768354530612428098369445158133758978083061302608870255435560078486178629998351482587004583279600862499827072572653209718540748553605368323146284550859017805367333680520330355007485359386000160367048753114261658349540457739214319162160772823976901081011305658717384108863923617564835220500983013745640658115379954624283155526373920707482660182586425923246827603119858180806662759196007069830851339508105436648054057338322975637285059324063850700190111474466560956051635043362821264106985979631490418012947690190020790669184616732139940663507368685739150107984599362549115573424924877491944393257041373785066428628729517547851780497543576737479025420083178240138408370512041168373269282055846888809580493205645641424187954256587413918881786338775961185703719392848256846094351459930870819431352140904557974527971813663324917695048391952229115262651876234745211702926803652158114966321568718626669500698478096590784216756162407646414484542243683117184371525011128157298496856825858118341656830772670702807817976721764655093277149854801430165850275975878033047575745174708094005232472357558564533509701695195215087739649391607507860850851579818484967376707529757306890743361696665875995616971507287071928258594452094056236611771802374481877428630693516312361048610216600088927226617682874393319973625510587253042121753368639650153749824465463790416520619653690785011676153207643874769432108932605288390007078195856889866973412473813070214160297012617969221267008253221073687898104799808276559242984168087446971971011804589017505413209997917953193894104157926088253148016268004746916957345447861697540649519706156063184166594136176856223553075191455127263862146553936630884230138461053057411344768592319555677173504358454222707793266246866760625180685060053748309596137452045355955979698030876681673643014480330284168752255180483220695737990418179742376651795920109761164924330024147078354596881808129625040079819235968036003813804473946083688005585004869247556320775322520332635816216536658474736349583625829654134310543519642651110714862366988579735534875686131406437360417566549900343822455572979606738723604438268515143308638746982528340109690093219278560895687470483964335983821356213549406876128848310633138977338173675264301891468914440208176371318746591944639356911468714530678693084800024846617570305334815321538051928300165318528736646485612505964835381843727254848474459744087269320959195666020908373889214664867465714351971367401828295657832575224136169742652600187038786970807795429831499319767725206178161852449605025012322536382749291147439730501210639979728186627013918888352555401526436103426722294894389385452301467401769989729429364184812115386297447287212183495385545241286859758032184482443816017053076354088073330997675307316388650442537024112631269790729129993684416432289495798091474202775889162351259590470855540399302798022557583291927480585799400890460891791218151020737279717902029135011519465360870067831906562131259033260910997612634423739402690377305021432822895030186086373697633197536966575060915713642198124423220527690592891767195994980928904192379117726865775340033596697895132083085081521336800435913619394025152358002927302951145793859462160176039023194667594482547224058254343344734806389074276393372730877064748293631425786199928636513791918566749294381168158145137133009220519617864954859145015942233743634104410821840881763231334248192558868104065298663571500726019295064022070081457633287690424430024524166781174883435126028590754289000047290626976484985182374488353898739836750894494641480407561013305074873639147086630324731037710250368943582006297120081843349927766929737621818990709832627245534568972738377391680742062786952240206124658887395666361069364223989621067883619120760665495101392949783139295777892279637707381583887393547514904502666843464636530627706345087804149614431808404536618122609129671048507028011554660525262730742372800608617366976614747535640626589903315095336130440802015375943201918795127604215984794292502517414417674079198272252994324782755109148870722863729147881824644318851131358404838040830638670618905294148704211620524536485370167947828148154600260055405441982670852379657351687404628239591657361792947186212632357602042446658819988686838109669451943395421014664137013322424665954902699965424564440300469143914341080452819730914246582910668724335200932662315062889771128821962783071815433335575839920813996406220879153776874554782376726152067414200617645470428542154929717751989920956610501921634862198142516076797746426894731256703770733123519307333514854153466199214727082814063096554162121686204245471678064421042517390912074544252088213674282673945615574624374306417466222069392295100067878733723432174701297269222756666749512498220715016957403142919674842072370503000943718422684488982601591139157277284492476271489947497153891253643603820379606423739410431434664714622401406786097456079845237434967041693613000469480044656704694253150537569659367622373454892647465852060384317541660435372821199780952866762660561869287617002685208894941603443267687340550511171140733658982434932428699582673605203407144878274662345580424958354214798259928677853312869943613841045363782124450844750036323278011823870497763247387041069022060316124399618258610110883071633998842091089501136803684969990786518763319622202645752313679776258515624004641199129084523653888188416253476357905974841579417138503151648163133899120852982868021351997368871781725833280751002051304123003117423589413994470214756805379320077057587954644901535017614417346885139603381160743089917054726586390924108313935476878447339271496620989693169866885784458143720704567200796433827786497698965092653554414708160011841455539755958609943911246897554842235018157461379755656218442238831182591088844788181398854889100114222722048431892652926179608924494430861557454823951277672261191324989196596838896700084945237017844100680492530929942730548709497460386863344298251377862981431234287728607176153038314647301372288675589450114330101682219782554958799973109720142943584500155139421905652770625433853356569753309196182873281102212806013528625872862207405159918401618835415569607431552929390231239162288042703200192582156491069667558277991517355004117509505659726593071103933521135974043171703418507038215269721731732001290498156902622240074450068484813429531347035947473772915132580465001093075395082145590927338509000114523653394615455251725319077453950883161524730852627743690579255169693692276590184651656794416175484067989648679174426354413140101454593344634108871576467660095059954227837414793068659944314241680256351323281353536618660386178666240279391343168323887977805356743363406177223235105809661013926966455366074855825720215546948964083458931692650521444993595252909534286183083224729530541510503965727117653775904104825947843770878005269435188186716721319970858103173240736411279116876962346803851318689263919898474887598640338978301019849025981302835925545212943212747615445476753361591317414604501851922721938006162107028310065413137559269094348859438054378411298459316090387764645627709242780537457704012452991984142135149052146264002954187234958988683118014473805401072586250637904444149654749936773209572102678255435734519840520801392781302393602130432910483068549481276335322238385882264928725520263757597835462382033337687300268671122201047197939511525803446126663164764856077251025626561694140009031626562048239325439273217435272212367422908559659380059786755091361645730934417643881712777458861792901705214668540517517255322765269291532986926032306556523079569793064946305297297129130241447161848012178724000296923777737801552499901657847760832626268366667590113848780420561347441321945503072994438806783970963715445457112493779557305248539195079773752557633145691294601721406151836877630717051020013953068374797227596155573248646042951931943155025743716426465443547465695882644181210432492326487216918656240446053708614815434542224311671827177219613916598840956210597117213728253980158410591737649049443643452278317704163281612791780843592336527550785787205794394857132916857435081618096474895847096213869087155856848198787925058697688711893092622123622287548379193411933826319517002082041925110514609015434021317468536508467202024178132258387384792767138970119111548619877807556473752244629628098565060355102484279408179892758525360545630703613121564838289022955879622933457414001415214351320769847895272787325453435504075750129607971413995117534541747572437402274560265095329328651844707446140335748249809045847831124986396556434780524634463341715657229437197797502457250323975454725564965995613994832258505858060641156176414343589207394053564712268671560448092585721824082760750567225588571790740767031033165257587017289982440161997138310090431222627757536177969556846249317269730725472596245094519312822904360037125297595205251405164368406915681003935126895362016220503416297958369746601321924707987861152328365436411288552657365867633431995151132049913594609169566766959370985054488685402541253678253882732211225440475976174160626039349303688011646032010868003043983716305893687426324604944825258577170903868735409146466209129743954875418451963881850458235459532156187514025613184786940607078290840796333525161995349802840142184236514372726500587129521182359594598273719051877270561316203031508143172277022008687870503189120771130582075908167664780298673353359805309472009484905212073537230854480620293402557916726726577658222360693836308929646572775180788641807906723923150200325386493227108966361680093718090171921137400675124046849847830176820831181100168788682652659312359476315536683872808170189736580183144024366181911225626446624145542004073579674120776205488336784743656534171100918987700998462121797630971543317891320379174297449084038369208280655249435064223630812329208829473721820885227843631349241775385194295965221467435597816177301049108685439240970337963214454508957713267663776366068569512788334560692418163776564251855293572208774354599308459773035005043925633499127779758164957170207980146298408179630407268066551574644366584859165974773666212191325784276102592329087237488038417295376456442747865326666321433701154281204860901444007282480159545282009366763467036660793689029030352207478125921931832485142398329330711674740732302649321234031790884323122667753239657807581668955371189922155267005507186007116454396345577533773451462215781485758155724199596325809889660375277314524943690138417973002877734097247706696494462482933090635320072277076739218808078578253045606422583652868185722193835423799864749343202625091887740180327767321953737866257591779599569637623194557590217599623182954259248849504456287303433153433920627968046954646519361513930432096385455731053052765938262169407111505769301774929604161312722306764134963931514578890917462173582289026330401702071896945584637019864324403944198981156978502809105358062849561139221169703945168870674211092768916034122302553217217971928489937785133378677799933896311909193199754933105708404136887515996174310028496489358879458615019186797725139253425106009645147400456679656743342322663186113169764135132212869792960170103717228453947100320172537371632685626027583375589053856645252638678835128350758800092389573842832255001908495981340420697414373793274591520446937884795536277582804399757510336800420495472615458505815432121363246159476168208962918858272447330700523810031748676797242007770140376520728319515826842356635344864269079519111961614212241365278663199547824065366522179310664096305665724377264359975489762478511491619813142068079685206760209344643314848745695979643067311858886442316698506036347921373041824213052920767318327414276155336215849611078782171549723128578830110231463991814677498431746897410557865374747821971726789075845393626519707563916588007154025048976737369689082959147316789305293435328441276726725448457625403011332060184384550532260439563526938891241055166514961384714393893918734288076701116501148671820596315349374324754708345762141715264334019197802979159101391451868105660195495017246307020399576528047008204555120257373101202256275826442283793612426230991398115823109890285411431161961762168617921650942887433764314790883696036944614615088835453566415166797581829345409971133983836375673013712145852042053548189245144233400476078916143600367629805424544749050474560076500881482845144154898994082795384023365696531738748344312846576740285415612163640003486897600936647139480721290529948885199713561012482685164417010652676720565566470030725185678342358606071472672407317226144946584406355426107663988361275751703072600917589399429052718296663561162225348542716160561038763153974328010032274615948013052032288826697308472170176478302427269684464200490685634938832510260853962624548526670326120637318682257123546790463998089169036601645969758327377394265928446965788430820720494268292073671243194124127033531952652713511760024950161509286348573749679903092458125039739368364670384057438150106302759091331570296785985133911239396517862469440879118061317613252671511566689583707453556723323391934266290611671262241310752860786711960991351565286800059961919911119828573414408599128685588543613520039810332135635495804857837557537238957332089140075579253714164175851105380435995196916296666988050482124189224206096907677497439056349542004096129361059394315266244441817082451147767297200414534838160325076602972553119498574210320333244957431587158337264651578928453848967313650995945122201318962171033770206614191401682136396789035573018564399087119232699741507545880892968112193356842396724874590682845289065849466872902291694223112411257181098756529704420425971933001096764345702163752910206338681169827783284348410422747850903671975859055867475723812905179984560052755471610803917308169544122419627437677023088530958497374407537732369792469660697987376313740530895090042000794058960696736826626195465238545704048315663720943694885394951913657241309407600897794272861486791943791057097007672204191276512078169855771396130882562203134315780688136181278738268960740943053676155088777586307437096634025023338702551332129694867509890343485553481378393641711627372588876604761131616089312689700448431137460310592532883437909409889235968853701440417872843244971570619830395712193654618794721535039971292506464950865853894940757009333775655197457141919494001931007550681546490233444095108261244374134638920817586594894316908674647158090673464338674690171071572433357257548330414010355761543706144343159070931476687918682715302030024693824232614461063141322444227184653885424802718116441298648044409038296794273000087675329914911995705368031077696362435336945648969521297222424026811382034387765041960261155636600773756419308572764016864915599741725907914071707779617435885598548612465957297645105757813527974404591754948071837364674716819447211468618420448037706099852625905286596710216054773865185674398163638837430275113360409616602383556564894455889608259804203684468338252962298991568534760847209750063413485721874058490231094742023663919295489211548606257712753940387186104716039038158053786747131349133064869487670218554130352088860820074101540618552967544871528180957439413457566305686257120682306265324997524388352496629698312529553317369047613597670040107204087326571670561914541199345281440606812755640256815013310705316517579160378636582898165899349076792405615884332362977176739324791482742722767179057855707098076946726984663637038922797101607061065305847763368506937510852846183643930879837209482912748464624203667324039762319043967940952231534571469149603398184446541519420330433084851911893600940747743210560267109454599443887633031615251395283158511843562056186774550095506701235762390448583870640390240225435860955260146790600133412824332111964957045986260948807866510078120898216893991526499109257219383224442503645959632503069585817313936870477095690018181819726188317070987763007403176270639912182435098758503397522259016023359657343534100839195048121488830188971177752112619336849407535566513367159550831608526216405327082488691372157803657175360474660085116077069897476450770131400648904288591194222293716742920624976536190096410696344182833907931922595120918670383888303948333724274181715739030316856550414341715688301940098141746182919707858842328697413140603603241218632869496289478539120232797746036232655485977053580636890829709137525273024064578568694530135567742545175233693573818273367151926245695382323696755273758155965558853058156584566089797233706948802297296081887082633483595856337603212704631921776062968409027363970657255420422652195417895819524909056635545053433015605354423151370376638467795271536176857430144900353014896951489402296889840157271284589906855961804566296788149987821026534163159063955197522992075111312469923976088450511054346031851650079372218624443956135124394828835241812120379092520168855436451648819237978432167864113567944670868942521175831516485126376958972973577163163128320313882098880709428742522041703100572624487713999044536361490243113986999596315996234056439051210052968489814705456610411883030530998001987742527925080762580602109253033690764952739278294737195501843745384730571702899155551451970304002053534104979708622437426268813520779225576101204848210036429399950586909701751688420319027277176398090916959647446308937593564301140113231615046174258827732479470725831997373858417304884051565735862963106951654278695754296213875199856981865721949520617113231307679256227228462475714723282750701426581046616210997028323053932431563361109514365673003585761447602906675529435199692544389421516634620222975978953649050078864469698613256914787084993667603923229474137091096089479391283574875885829847010558565479806587146934075176297594971217236493403257077347810907889303606300088436889878471452556602899496478272641490983175453820713641992194300841336615352380216646450468493810113648085907651448525414305574079075302519204296089930205690806121789139244796743810288496762372579264450940043305630822906278090774071208074359022214475082659753509903114543719279295798405350467926532541749722563988296636909613085702296646930400374996578770345777910860606806127589095148279285436084186499346759725688813899493110558156200876930457411035730126806986803858603440530971161633365169722956550256368847204142011573077797112512043085989487389844029987519347599150701761712037951546296993596990185735273717559330502031547805395555192210168792916395741257492448280518943792575394595054171197176020871070288086452398656436029944172895695999790233838976144598662592852709167190340558850627195774159485838695365562150658069584931310311442353100139468018735558229580283429420463338647546351737118125112394049604129427395819294686132001889682499814573994271851374302260224057053709450562488457275177012247259410654601250550187191184107577537683816674058731931787142976919779838949642730155515306344047327460452587439540342862364664219589141643396062640442060818973509695224682676243440417229905883728902485599887732241921337484082684802980315257758327434817280093350564291454788376727310985358948937856613228152124260084504141178220158488479577468250070312714378835706921427059539782615593743132675875811101053675007717154488094460054962819302151037921092760473776237826825341982754454998428255643079152088531690575439094540839154265640446905589312931693010311462230170269280904736229252034198905657476100825091318543804084938345605045754692291315278687041650302057996616715346443052779430889470577889485436138032887932015766229075286111071222684708472899946444701234137631942426004180421133817249095715230334741080494214086885214017065710947519737623762052117498523712609197534648016825152373275047922091616635063849039683869640925588318751944796553077767125122139842681310266530918945088121091917377606345032594077545351434643549163282885677683047581714766930261349431003316204825957182963848799177922200911051891761062230684121015205481929710293747850955134065192629365333327586122488543603774473122153635578971710472677335469859962791778277419566942409025557588496646856342906909234978952811116528745363692665715454461665054022847947569128616207827125231176260589782387331030364771476254542957433462202775515878236302719286962205781227816927177837813109930742268124248925361292532715122088954070128935509427187505433464760011527116112216195769947253755361681867129162772729655262452860191584182115126765998751303824387176562466124801056797909748583201201739837530454785423224357881688900268458871841834594982371954614081283304198068335235297447292016692603473591524722530285318437109682004536555078906904321266999924110948508455349789713600847958148760669719074667196193348313047404517616566327090810992127945315413901601191219812884213815729694992038250846850469186079445992896777917634692432583729345110785610139094174353434237184754105109392355714938556698305255674408372801903734703718390224654383467702064486341541917562486914622341571358957710328613477295155659783466574877288286103847418472990209566380021543054741426326950255720708661036601428101296668378622186861829404882433863374054959713516124003376652765998083862949174981154922399420904685678286315322537847275163265944490264000117635404519297190394963722746370341444818215418447276811313921336968979393041022407712312785592522539344159852331083026994356064748653614870016307801454123955531846397705530545783588290899778831945753199707435846317633505201117948597722044744754070363207323071689053848097431752584757012962763667664027314500596924344737206074750003029316527553031191049977403994641337619863461139474114265508405566156424797605883417427765486195022007429439095855650572799511094461794338374741720769281293983535916269627500665476604577162193051942736049567941188325973940503062639918102935625167869061249902167936903823791234468930608127130836768614595566710994413173622000021953486711210501981225073943770771279698791528204373670887947231212235531734418838203751713413261557443106035196217714984702362336245355547620736903392046790105700030908289727913915328082527931319142864021287420871677019802085896246918995698656350817359236622990302920388946985820232444597759726957597325436110106985674518656470010064290401636260822449889910660730181671216281151615735118476290960661712057336640158039572941324851732834109748071041658864694850939560336231664783233192183088583193542451031615958864219434898614783859021024019930249342788570036481545153121479107766145820249687820666141509814186590222134339812191181109881004030928769045170947716341675354246916236392067238924184491030727793921301549105432085162090568711265785856352497138011522076726935676230535143550642978215493251334913451692086940977619374851719944761232348421723447745216532702785675589319213962933879033580975285741110179595711299418138664109387994252781107244677205769392664640054198631790251325471350518848532963113856271406673908039690211030255890249981566778316977916405507037661080676748741291535846680017281623102660041385022584535751320184630565861818407532490539502039780365423741604121823930756159411074020464435027766255488856588850991243369658603111032749320753146725191968711514025688682988676134632547262116345961906447203034572652315816130432449372938020655154242380691138955568404472572503094870859164503659037682800208825181993080071678331419867206939138779571041500949182047195198450833560036668794426111325231169482538478799268391998755540969328314144855880548977923197918987922991347479739536660453339912976786196913992541154159984883417938638507727372368270227068466393484861485828080517934554073908744875740754271310718948489082607995700359524653976992652578764047155756417885996847593803912128128226402689676651262142668837576425256580188139790309785963303259189685191949683600938705404743294242438901332196824730300436897392951254987319986871392963021993712529299841847153775574245220140046927211482114030879165633275575313777737975890058053671139530496952094162916385355712784209371957667672066689917497841714965535655635840511980612032473426587008371279683065917390427146980636209749373423801975521582368371953534553336354274996079126000547322490158372143071888885785700802114496716473776737066850925893351473313462485611767781152084961965043801183273791900838354378555479931199725631158241137720759567147333198893771349247569123221588575042594008105497208947426447490522045822276059868728506740124619271615571094543361468506376697836826050591610941923274771598831127826010351845538095827003611378382210697478274181214802952482217601938556108951857711638410700563107890240427105150511626151881334775277888871784093317805388226276961446305686373052428714777822186409242569043252988612375693013888176408231081982775416721196155275081081356513437367756840379852555947400840890776553143848583077466808701229920088083420311934664568513097529020293689650189888611878410140506672865653546922852978227473923008967758960906012853501331094780732832269605371843236459487142512960881303957286870943887189824352999871808001207474845508869807660823462414178311558562641727776875381401648292491372038277935532217639426588626630426659448726638732059051323908974192023501084573864281168969826228916579288633253611822793055113402677853712972839818274483745954205693082429547660935668343194865094922468938582533979744220291165214947777599808444741658837819467339601474796179646526337276986593211981156847891245578134432426124642623128657890399644875901059798563803967201244751721333302781981752773949169177002018134441850488737374048744178360788616788207201394193438660003427735907882018171383463959532639872954147042525960356108632781298475251284220138304990980609891275611003870353830073230720648205177992998716804075754520666839026975295579343446231630726320222764297381394917702739129757425637864090710905538513290308032997993420411409847629243988813703513686279871429288955704407711446686582856822924982102789805437984003536226616535721162326266632869463746517681290888384277414351609542093623131082986709139646613058476425797005952167693263079910096000559908251151127542325132864933907001083950690836742170708654929803350108778374553187080783719638269316438895959503053270116271870131109222373758317862695170528555504528195439860094402080514088103248635646560539027580097452291142287886168702835665572134370119618203773220048196316734743856999032759441734687845260344743925798946252526533972374950200818170890190166559799368684627913816114420453321476017240003096306058910192497671454075691179838772007777421852961574528301882829948373237653706269753025545809684594105558627864411772482375304071770892770419697036817526534213948495873522565075812883146824843488604681221979060958369159171215356668209494008362769978647927578058674755293789647419918481675445719986800473483498540491887490826068867257789415401264010822177676393461025555973371341391700354095237340920735943869057236014916436239956118168804316017006931850197967685959996509067720651265303925705023431503453031405831837381153315554756004492365804042457791432644766196122052055583853048825276703496343259621732318954430436164686480045038072531981251969486392811696645478296891870641024903796843234732487488370453536975408352904084508408853948173785478461022125548518843916891804539543981056755054511689046217649055937530030959016421764521673293485033548553756264580248092670968454662840477520043575256593763707047034642155204211944788064986308713816785990138311765521248514087555251224952503927718526875513090075450454465767535266315694627849093506264760319715610797892580138520081111586656548599633986622508770754067891733407405250742063123682469306920768285434767988679363298023513695538119670087735780379647797522770821534698659654875388514854950241743181841560813002634069510740068379418368561701889684727000441528254116123962637030325108786066733184104458630129890375930853795514873566346534200109008377492158642972949155295475364179572603279874403941762706535649691722515755589159609681613606589412388140187771588271468302359686239800931923371118803133132364786258397149524966714262513303265100678832859664915731569321648128523666835814298812696392837545566083710703594682237274894794710134590340572423509603049073811777691510249345592857633865570881565626374778291220260692892746386095868332378128476307689020888281330438367117777012843598057234534958429922286289552047470075317839574299973702115000776978903130493573553216986480875753105584715592306255100041720404684288999743299569384901221228555218275179720151889627199558564261054459943688837086446879769438032972616618475827802320694693075625153591354705218159569904305541377474272552956954167687235098243581418330331241100253175508951497937127994689174130894905778816947118654675970729682661048602850008069651673167625157058671496851906322823726462272726037983722556013780741426106191615705797259887199730350135530895802789942266165567150374136843708224868858859517911569975387843878131779160554166622089459650444774566738898449285344994042231516697655850636392314850378431734417969916355256607318522081923118082828681395296870161179138639989828446121374542275845055303867319382717788445586697353574428476956170152357945114960478305960579149568143921301878841875268488861051921379556547001180786342307208179046547391652418940585173464808025374313865358535454650804810795336627901522805066249957851384665682695799788515780983792353578019710330593305864611511078707014616181025117013768317066119443911821813522224898052611278799680966396293224553783660797940877343434794683916472931138241057453181179826077604077701137398092269330043297492404226959551719908836476268664563130568634941801591932351107187489544166001298065171079499033273596421332629499479768498132651341759621667107501751030222046444258178516751907363346325515083341160726597907360728530330144639000208262767557102888158354572081625596572600840743561484828507687821612044104182175624482054826851775783783460966435754494995491062724443416123605875641257929330906658774358669072804148252439641700380984901692169427404160856301463650834468731918628867998517573404346443775658633931536626580139287960954129209402546901115925594978902504286284443217873760490387985758691671634629408977060832745934312149469695269521051645444190086219204987201263727760066092647641949439393675540663091914596238835402549855135120854968909693463887028950649114984200074510622829347048377062454602876997266351001695918615835698232751508171259921177873773257111094289299319918006562233062167940071288615194942762731014792156056743157249146231647390181585257958175773909938647384525474948364115562517721280601689285187319509967161429744278472479575178614197374479633219649178887462577116216889097024680781800823067841423934907444726292977906682562219476024416157219337164889703477772320683034908684950797317543096576866779556034606351727907185878020269396089874677004531498440691304427354213341710050308030895797849983730454107539562249611602275891880598437381057987035974945342724162917088109468949605550320156666423913276656234112077698213071298942367868287503736471906260169832680459858912488773115031220031810142568312352154973856035008655519196347959165965050377102045051066491298110028214008474791853645646629131908718890799992662097496133398436506490491700125141400138168669952025600090268465401888374974709150607497830723507610560183965830338271154098487364436051148969094605732491794104089102521072941146252964242919849564450845784902699019430379465614964050967171527293963881112823166530925146728265486287305418335224139698491843110279662780441019953344803273186785266970223979901325805838408744392740476319752593510754698591946451329695151493457320077761729973946085018722690476444612560248823477047568875001434668333426506218601691080856155690129710864464374006271898347468759133856056057735366808473751278385481415762750821192273074709683809619168361287992355762399259708261883003288336186734872759892364619763009473755441295587841037826955156885620608353642948865632437077103747744539066756085924020482930898818131379046047944807247498285736910436697427149424184656194052236639020213453972372068119127326173519309681021811464398962440822555179886905803400326000914253148670259514279367214185350493039579049425105335762666735787202131816376035837317929465443572061526940967057929985526344769378854558873139107127291678317942609617460033351989574716548256421047739242046987953323791186028175246548250263735691427164888228065763553962544215969952560736674849526053647707023888982940283283218555337109372073483204036792537697975725369990937474314845590192955445215010134162949990526118638689678833867690087494287109867133881038288330851843675664441550379635683729213501284424722106267457191042178411096765396260588429512829722950955303345585991470175613940422433877010347715929985600064523695564094053767378389997268414936838033631551726193624876935825384530238663042601422406461394509860359395496099902241300662258422353559845776916858296538096178860057027039263769548010758037889870070384597578156866717341162852989408526302579919709165422210701006175222932622044994421303319875597384540086910329054097657571249905768589352527362429367123582270185799133592048636710210742020459205398814631618557259236346870577068204629863247165031806646540951223041827349237524043151281725192281765761764117294443161715364543417222081637273870105633176605797670734159288124807411129478636477660505131136761238108413814229957442903084102944950227659216275965606367467669111460854436658817944654925694758221744758809702791328678065315178456399888835733192914120504607535326317080775039121298140105260481889463480826526656149247786383702544835355617490506743616503996051918660753179780234764782357843187915230863382107497483595352353349808828884299658793368003294095193741034973176839107303708211088396415348306702146014716210555323233835653397166428399484463368571368474644480778718138555891959562526836933683707371828908584116732511560730944808907946306888253867822570448639152165123667946246267297375354343472882988605984809853803411878818105661822571874197094295031601877531361380103560344741966966264687609379664408433975029135495925817151470076230194723816103819317050302265705416840910891459952288671061263960012949528386520291852799203309477667402135299018307812662885333315920809552249143893929900873862190963561255940912970779972223028609369464932893141283607454738063820744252950811160575635912593442680958280542524174602813834597477946938843242339896629447294518558597965304510325423323881468087834517411601210900334653223659932810682703443640235056408210396364708198490296774714777435068623512660968537029244446230796656991532729399721162260749747969926194505061734025883929257896833081904181924552806443315043589871236813905546474646024219997784524095377296945998804300016697309040566700130116914221512862642890279003265680349889170568241898068042007672930820762158646751783034929458105641828330338856878101818600773983210922576796330851138508598525180801700340923827268926050339320036904972792328895094739859779844904063176689850088113802811518609606033152606062676470188914599952723151006973882072847321749657120987215704481010868394229940075791861290914930280953353517159427315369400692610008761314178430694686866259031932352069187690082351899623159972736683721907950829014302906443813793140434329814297482627138491704832898206865192744425272836959260977286847926287517856362604699091778655512651807788441191669550435744811467341871771271575446181765065619624328128251616452400189398285922209132543793017023008315400396337516990305122322774699593479562087612943465528679126312573084112586238577357127698805012183146028255056866553913413013686447121451965177915873613541851483360847561274342254954951892181797548802008216660278765351468091460190657456930484779350446525895033756279356615689936764242394947634138757624335446907790130686527803775161608119614489824337574838581860223413581132964423054527402110616110836207471253765736215392903263413762558377122461812521261034754118877810437675213352941409658375551274180458174354731613178415901044073299610370125751004896200013034310703329306505736193399979460357575358326256614103979928438005186507220543135720634036420354252551377130883790999609971440431504177642591003965118743234824368253272735482447016035593601365293729694793208534434463815699974296887288086322183575385473325380007915301659761483084486817262011872909943338801189505368238727937713108583978877255005046027828144239795011215530918248496585947203663947217326205855409609333771607295242561077815755049591377700269664834754882717277388159735336864469331231157001204195754036229476036333332479699972796306434196480689729789474046815609834547948947035041600328025776375711297297445601501241114877293952856293296130430147383098731329492641767997388972532545965747476237481782581469088978848388317334394329588665887256865116902804283006586465355872445238585330885287463293540252793689743847157557207153206840247975441687294403716292225769844187819048309580844496115252690684246259350497399574907578857283759339670755183625784997665404905813783542312314666890471440534572932321866415792938691311869265655143671262393884921312333716870847162877620798163642971906184842716484577300085012540243875014185564817485836022819241004165104571466460303101887885665883254294251850934313602116437008645818224163720087985436698994498996824483850852136598867307402769835669826966274605184013263009883375989037633623044893600463754297118060353786367805172237157833634174944451529127821075165840525938269490740839622849281349712468581879387557118088606843103686274512309146254342882008902794293583006548533341621209466029505157097922099603501130512606535764549707172889221958094162471952781455315235231759483525166917291690191493685537290375906119436160041477960919454833029130235706122531171032570263299553217201393760709032745478022641799459068362926516769366817330424199857049479217437281610353894682815800571062361483955936805517623755334757023310988295222347853065226094666722842024530727955229618446061515837936411868090366818088540548627026959616220291674524107544060263605233393430259772146727551634134323235162830423817728117088991076335379786565679033272025143723323049686145118424688136085916429492598709654693758518846121130194483147346046839641020511357215149945204697911892639202330884854958654294208591325775382125676909679866788919378755988809642447501413049938234388539505725558908662259625920933240599025705105211126597539370268999786735364212500262396366580534129336209879201804068337440264627296601669082503890930859587252172026058888884021118688304136381900063988840811040261745258936298308434630174222521119396210238921452480231810346470712616998622065598610036255910087237093890746923782416763858294069748400419359676346538007275332641048813140325816828934902171106493380915850927665844204771899104616897265423854366905859820919407806043387200298164493525384781880608558236594158984839240617923309346600321419849724835007789182106453050756834419240031847025380487922384330148135670584416099751277842906075093319245980176251396701201078093895790198398105521890603252378382002591000808053118109232896256207350442025495333954017590219711197335545685818766320584934575159066459182028990664384579121480783409143861187357388135942761335000824229615054398084424823763128963585284264505561258809676789527211656290766009308836001048773482666022794192822447446667959943527513240790521036086389018878276657856632738527202487048799954015265618568609191396639430550534739788962366710435323158751692121780465998906062014083023182045468501127063924502166191546413285667048655643847718675422923567102115669228447414713955076018137516062773909388418731337945360245294276497325532495265205493356117121351332398601884923450663079256156879290748895143357938554522234565508153607373480194253084791867807790921640224557231635165479442665268723333655287689223841365745563787583717756894127912604866941636507579805997643145844904563506222414665835807198827396691476064136779904206053866048659083779671136723643577637245225288398188167794998597530873642511941381091100961390633170733034824153480494991507581525940612891443906634065144903916901046010820393419064654165141050698454605511712332719829306315547163706504908325102633594340288215044281398075691101115830742551781386582168693375704711640619583386523481150529392682888272960656092631350074035447383850415780315709467298773660443818595793613301125719445414305995097831999093948634961900423056658876914913971574770052837469988302399448249681360843402164170249420556689458833589525993945211381542706984402209621785814692302496047307917649538441957298015046986797676379537420311640600671400718532200016243484302501885278423557104103037472417985612178288121501914186863874103278970715903839382739599932137917262321787564449874149105782864551671727587623931158223189968502082265211411570444461346926422660599773436700848174375525003624111126415771571685764909288296804287090106132261771084197285049312950496343375019189646180878253144923307522747133197409146504970174331148156785286055523369256839326804006516373300081819468889672222283708490634895911768599088829438518282611498554502608728198479043413985248646238648934865563238478352035142811452507798552678475071978557981366025484443769553960784076122007978604150965092096217238658000148287578443148084280158946332568913256015008068987569026380316843880482307621901493147421024775894656039402800084154916087617716179984970140501495537631305970406584490547586734679062779430317897643421737924201730537597662346203741139805628093802650306019711086001851749286865195256728588243302103968012148112711677861428130001117012687104621184773636613408352749429459652115145696251609462127167249799293268171824955378605856471264790401993040922728563540014755656640642915263506045497495633724049728530032671192064339976582880773866134231450181371694526784828656229909791938501811257650019810474253198611014635231668030595302262615123374397538926613379370683048758369806421883224196298884851820853141007497189043905197622905365508409217086534285002168879299492938873131059434150561041254212015124563824986689566845077261493467414524827284156305371463625959155201833677304964885130441685943868707662443099071030061861166376511662216157403279119058982034466390806970263663742675682541878771715788112313058684270077421961004052131814783552609645219812452136288179510275514458328406303105505826583510801036978702634736853390590076235548590394268645350570273905235056431377271611659675115594233802442931833601192585556627887804862784923572541192093543246149589683132320315885630800229760890795313971506579089304727306355681425059901747887298261739103262668607451548521600831743891020541518409063869220544817170209178207196430825764189629876553470969753716546103565861030923786566374598314588984513301280073689839092662966703328211041408840936438244693707952176501970846788172496008951197090983815424838417245859531351993187019491223672330138357517312943588302403366721482272737809784260551213309870524040117652993437468291919098263391869870907259400227541308397202008871556386052552379582638227332156873329921397151125331327214746144921920228746381353279800461011970701672048286102237632937678973999035209716146922853131465703356332370884020104683237962007302607785266581204218078420484252062142529681817256212288813750890806783188520708536360258480502801702551836585873335477183726576548374206146471079777677943845683552972559454030207299638922224142510748241901844296811651978028319273289300908233720670312900383216946714150093476385103713198587599073145382713947948181375283015025390806282845058747579250885874242252347682180455212650865870773660388945629551678783096035788561909519527039413048062578953030334691512480599796085394567077873932354734826627187657197702886513254917800774984306305653322317328548294367938478099003480737630890342751827679936178447505047173082465662987313207767807968001454943700540330349768312738356387859415803936237446843644162933738833947489342284452561502656413873958056380427931551319547907976814368874721904837061338539840995639339917171503072110982927174924816477424707065764876844053776740071236594289638778303121470335687742754250610532625980606144590222980850952629213999421588453339253210571451352548337022448594759075767646367473742413371642384446990109415491171579015946505777111054012868161393627372347676315348457580966007735612445597827674504776366674722327419822161697534381179784659552800756896116064092853882920517849288290903935860132121548373120904950866848163173216121354287742442811352605886082328051427262262171814149538783336702102523398701332116091505687034106240683561619147587343845812390007794167710109256817998127848588275398018915339036168398062545884247382722298623050796510000609417907184567445556283008531900377439843720835631130439587063461715841379157431593066103378366295093184167440767136970684944021147184985097243509137428491464475650584857726999839199224058978406050107883393264047712392351029430861766230298341188940630267756666767746249963384019015699240574871720820629746515289718554490854496883215706429243838421163582363741874412665174928807598474241678058554851104942403847481803651840059297870124831542226105414586492118298371353762940259150789806981495618703247945455430306709256998953525491882915061558316085560159843979372727933319508531909806224626973993412387501248856069297494047061780565997621490711596866450800436633389047538471597200131798052640454838526433733430190471599551342107521345175256138611566710037225244834218349385190263997490999323015477483550976685265673438020368875391591365927071831681842003579253037779758287391825122409418448995879806338586112599974960429324232918185480023694661754396509951261935245574179934592084458720544832030643898431275068572192217631552951473061824849720659148949475990070848916495712397833869058086584452005905063708100927140649916526425884150099434675282298568392180975824789489547065355482719210069939823123995996202495373545563551249729583289776862136287406206416149065868407437500680218262200715512109821710321348140657233975213034267435768286381109678247004101148186824954329760754386415651732001372634499671654806432448810853322794915796305316775596598143833700667229775019309247103352584089654573937115977440943513067766039896969059692296401950997745533162492570249227752179245079936561674909498557738511629664413041637202676252895326316468627766638977105847151841510845680352632280633084498750393616171057792266254043261965552144198086759226900608388484099829689190917217581117395456177595098738574909864457701106955489246314136557522821308341282736226003135597405780778583714181386907906386899477947418650850574586143346614357485800125119285710198412903030649298172555747220488436131419581783766701661266244279479308681872523388293921987224065972513192340566967730192937378500962282927897637624170076621319332888232283258687680588383612289795512366213755670558371687989487752447700741620241489905091227303909376665323079500437282177903540422820444325866864894385957265109678899750828481874349277952147071531902392290361752352556463429638736215212586892203089344464189283301674478484468095745578430717475796560080408430474037991101239238634936991723659504900726616103240090480743925211355255186268452350168015691010454217796953051990289240526263371365397645850604695926748746015947536296673891437325531297581931099673576883968996527440994563468081711877092387717021318492124687586804266250305529574304070453685644063126006536840519364603914769187646219296490319507319601362557960030798716624804303470541921702838179258090207486806778322525500886744408923616691568892912203502242540930215154861879937244438649724094169591124210073309878307204239234920170504666734136123526400212888602246901812420074932054111071399661948875009407026654623240497555987834278225571899181264513466557486414013554983215034298310037163974252506662385518279393412347074111715005046235054893031096977512347294690105938946051941551559537652283796068772504258306594741865172408218699582144011787597271797452005481454984313554124957393855622261452740896340450794621279024170198653083351390844522240322907491435088537347903336431599568191678375608054048626951204765480580405689805964027347836136551055851274117018464841870574517465088541331583950535108030798893171946090548888103040876066881955596685996129007730445569017520722767562357470402629065308601133006925097591832311085075337671932353629415908619275056978150146969902975461653313061212691371532733161298793668253039651304268214313807476668533431027392845550994063975984357260535472415356962718102501645838637308923410335160123092095704654643488460062546083377503676985997550767810385298406450291762305765442977810731054447762421994225102077646245152449600905608957906814997177614935776938047955185194510834308095125931124774785907564596240041968520697709867527998967354994177622846362063003970108233871458918405646481788349111590567758199152782941423064449876863646199970192693564223811459224588647267274952233166300633646381442415819578207051821203807993899631221542647621586332732673699490504508580322791627658021881895495813369998216181105191389803422418437546551083964548814410107448246071111913485420105994994922154426017446988298211920848964838803987333591757292256026683515441989747595919467174667585213026428366377454351649260342302459017669768937667533352741664851294992601928993701371959526319277289974317523912890664395506364710539729303416334266061629988015396043228466234242442877244996664867052278906363752483276605275441233971728363972584718966041647001004645514573437122897525996862198910574839662167486697524328327066059328115981102232322323727318443143680492748733254891814706707878068134952164788372657175457880222519576517417260266713639350184037920710158623792193341567162204840549128811609735658304282009633544105418813398828033190494440768792160511085866413533867057073786707769932519864901897774346607739740049305931111670686107209526275282222366715653438320876086848279901637534623523980671769379314626269008578525867387492780600005470075294574300647814609726310414323168564709743645720384477366159063139926372524607041592294150217546592919112433736882411784100468817593536969806128005976996114432310233367707781088435663369199977042103642590787779690521878278614359893642639429504983523601891561817265175044440307116859352354863642421092371398769316484873706497452976088028189353205497345084734680301993473807432441165404169847157337000993626999751912707429701189885493566374390063364295096111874040237163615662077641282975928951174450232711296808265033066914348088764829288906431519425855572138118845286780907613762992994500507705308019822090008268924044927106317954762440989357913317758730492048826886742447478590790027821258787922798497830326321095058689858262000061730097325892251384266455672730613591162945657598520352615823169979868008037227788262314465615888752560651709146411535130472412551896006725468495607166949577362035876906093273604917798886287276419448599023616227142604482181286469306542419308773614534442398598724367105013431304337845280323831296889242030190389669635777893727835742067835050569799401881245879368418097023494777144023304336366442728398485404523745747061859088474101125469500848182336959074989045801999034504261235957396096109572400976914954163494643508694912805368978987944320159842539089736582992129731197691114459779321704675305420685152337413307222168102255013468861839953601944004453308000619037970405367230389143774457855215808889703051267943661721860712125328172684965365152152648091429906665998347101478858024883075097254437999884727748883025207393275279164187709715392945515221595960515612520661955891584555930476249437646428082475276172177416714927978566184493138500016038036880625588353422569928492364215505631973086340483477954431436484707804463348157442373954518374962012462273984607577059825419259540689249088643916984522515135069531765034597269023844349482775732527947454711016906465225286841818447058128052036640954587853512477211055901521461965803229348157065019917480543661000833222431622153292737138190991507604138210434713338220773167355328579087522783637152589894144427939689066314753833805972344204589219991815514443224449421640825279580684280199846820096553322686167396370259518132854275169304974938430103890488912874542960912191179253859578513794936892990757128744229371975514951535056809054070408825614950729511915500488075660850458039239465371688323318205382276694151710924947159387925276911277062956466246169996657425367672354367841299040196397373666963532900987797056446290426460909775659431091200500661582576795151117062269756299532612959694520577410152094400152241419372563214936068994578086193935301564199470780932970121408593728993422143337439826556082676284305027539314488187332141187036009797317181671535616979969868462600789291882779355623383975916043925451760261915448135771227164933874711900633056467181418091104820383043483115461697758438529306140331161495739327061471205366068266664653188729646770034696308971170933037413650236505098355600693122221177565777370480925643360245633642506153116222244425478610503157196397385654425597307184701882545676142338662646379299511260365550510353574640425345250120329685006878257434069308644633657492713179838076112328124862321366349376250832870641582464199886244791446683086627762462475491411138946071245892354003704077922754885342011677674009221196410847029584447056803389037202038825533143400199796717143682328415046223307499566406900047586410869553947863678246862927448377147246638110948482007891083089422003283035945816906286542289156363337224541824943525938676095161951941381763465665393539021102712945611832447466780322154743456127700188424054394443378495031656033802721449317043884095651064810691085277786959966003627222081162449109683105089230212702572314554296580714429348464432491300565665040944812154337554771441992269178557392819389814806271855648926610514628470177146417650956573974767888926587084530933470528044621099441302181728337314247591235981377589231009394811154481786599651061047712272320921731812788816316627411266430500271509289149002212771658775078529230486673382416634822423134851186671734806491796598053852863686638293836012227637940848068573105585204242140702595738934169886839775662419665296412239207887410572402528826788261499340487029639809917897291666554011161391647677910004359201937611646853125495966788811189424067635357891052058095092152170554875362069661920186007488723467945088909617284154187716065491605798182536587378095112130480631853926456560409815681573294243918883288636195189086217811958317211599900600252188930818325555478171149542623657711130275403051917557768800626929872997862443774364386605762113025767397499063876498783387856838302683847945611424059119488976791603984284329665849090263689948087251716422860140847963108175502853449814078636348714481302497344325880673496695836925467680738309207824964327875089685966082027011190335911881213709629271694408743800793588184204633275203217389907323914203855370461349276723845164793487292903846033156330109608848303948753269549578898233436771746439222866015976615447195590825862489063673730193140702728391438734206051632005950830893887709785642416990381220991762895741308763572238382404653723019698627590633245168872830422777050172670987451762818133102405770152093137499185521030359561948684953512443160969024615789263291869210408370716010642767650801445208101840213907810137060668834669237460908509109526028210557564434660750635238592078487473787340645362832381422497506786034166935822229888591956518121576096709858640002250348052311737968521617163167001195619418258018433962207660159105440073216102848419204471653272898651467850456429620079865252918308607649823659667758172131271291326251539494417563234540073108141010600831496124271871373999947784065899506407381021585584960160716971237817652266074311444763567967177823984721702345004892737375141424225872499990621725920597679118887216343194159599116945066131797287739729300251815100151113016298775426832661986134968146775886383696612487357071977423441431646702796733810970356840036288848536571278402900896290495650775788922286829076202094135457166679802114275884766331517410490377582839502769260567680039202719272257888196378552874639076902344755264543419091095972078153805639905453783629378152670575619209451958713357634308676524986484977006406483741642708620819782341554023014620233365414070120166004678935543525608879173104380312963626662135116212735687873685361832488291374403227116940731097660261901227647311785776881204886683657045154413862372470414117433957367666970649777193592414693760110182846986256712046010880781544866161236417567361081598493907499739937955034133013861225762559562251505407578634793130006141023912516045951681997767004674847326527679741883880483130903205300923336531394129279416600374796396691274455609812431790017500768264728050245827104120013648381634136345762959323051102058179710333838552968923957893800448121451592122053187317947022244574636270376386971805266426304202278968043694912505122843336283390581282439639306710189781254673982835279917201522468889497097081939080072251096096773293104384082893089352700754951070109240913992708436787417576554680490882248341181563393373792062124968874227690016006422250605207396903582940350426977300354542000397288905241303144994280710565863095887204873613616367305326540201089590069710865545765724793021695122855682539469773633540359921802042659248379943724783942264044889150251535635250824776866386005797311880982152168487897142034497157768813497114091119425164207134490110262239778246016800585388014330661728617254234363347873429489679311502006630578191082317777557399857637736866726409032032267317884282261782078192214090214959476550200721159011850985824819154079167262953721122519700035871901289268981429656343358974824200420156235479036138122290744419377279163129715700613386837137448484972714713790456015905987284102707177999993054344037098668134395263096023579986646193868860822143250967211421116607236488198376460340337749447646949135587321786088541796307605021818630745700368860978607560834475549507558310459332506706234636465483130774931176214540848739083052999530090302039722426519892101466303492263815432714119797011999530495058345167355775038322952744812333504844418397068460479094128699985141467046447297517736565019829916239411844727437832010831365806995142633647890154654299097693613752497075558102808033146702162933476875004788669285132146765069410671829853565609425020407536030196572901758441896671488533602932928020441799219623323403757211301542437942561849245713966846075693655021425544738928732087732822026351753202653824205583880387526229389284727799118958188176352266478414471395188408512892683317008516224205474412498221627134045545916651036020210657902496490018841551049098498212978616325070941156143063005429217488396712196407098027287933900283722915480781585905581006036568398772579898491778578556809658728546752661099177414460373956575392183372078094245326105600847083582658765219601823958472740913746830590058282369231570889356987688562458048247605603826557888176608744604292897306922687426601965320429125115279293004109769874316599981754590069404459534532128548274108196776811424580775680974553830266848003229324465426504307007436242224029509677704296202724316020365151808942175740080647619675790235745491956213039077295142807513300163348277664240260722060450135277573403999667691734064549494970053003022727215224276006632538253928658593962465213035752695551751939289547742316056582921798519294958737320970027256495180699562248312189250550331676817073092501608810237032006762444150178575715208262440656162084046798997236025512725636037718957820365954641558763843177993500196410181303417534548156787178359746543909161077193177258640596264296237232936070111793735082235521534673014120430486785008009909584836098827054477813974536882919173055786436619648059029130745729873246024446254353684430912891746273387599392458381664750264786194543485787953179379243920138610928766289451146215577829384506404665037527491129121054805237862317817875550685723377182016064093887646233393181744894875333042828651262400667992235083796784453297743073606621826249636952613799625207173594296950606667039346589478991080251017864014817188502446451093091487253228464046816442763107863954992402213889459141887193367164635157835003987228417139434102815509159052034114486045371485752592536618070051120216714403930872926054366295390056318195727284308694698516961679275239737253733274662393211764431767502765430000364410519136364880764768433367530050260296663826498302961286209938832466178684951378361644392741376766408224214125904141372919754728130012547922279462350678806549299214766070311426702484241476266244002574779082676696624385424585319233198333597782043587419227865864455806469169342202713680881655990018280287426784597443541686556473524714353362432517333216117368287447809193884270501765376949924722424954393234249662537311293008964421227516755280775877210618030977993756515837357399908371388207795006157816369163107493879824388609485243998700048206656190400197239144566707912319410872344194921126548916169328971932875937615581287596477677665066453606200376820259747707612757117204158460728021835800767651750381038041350488589192842851142317944746523846367183440996630002492311031551446741407201326169669430869093461796894242185092433753546333066014126643320220731518615924234345830865525411281793323437317750723743555877178422170786851719932785912209661995730996620976945926268489333156522693098892153616779936405241035420320984654417469220373313195388817068633594173866688115085664966641182788606092513555689348693940853474939667564856426363647013407692253066853192686332698112006043997415477157124493198267221298454100513991677962825744398042562146481839388707400889687177080613109572768767202876651128709754366136133535151825349009644244662089564360672702719721740653758723636159752337512992701059160323394589421131099567706039144138370221357999325105936181028521654809110243372212635685924194594477619443475655093664038681029520733447383610360421232593488201246013751360857574377156441386777481669454285876249599137143541966741529103681963727912245375827972681418561501907937425351238090291432857600642069437641073399503179863184139696236538703600385951169616735041955875827326468281041323793565183921784118354726059907554976648869834961348357010126037345667906102237615277583493634722042042569675460363271093153830511228087048863862577108040749618366116043668922739988343422527214918976457611594638995208361107694213271427988383667919465002295659295067895068998077759728236945952619395156992893407352833191445390577741443086110059332088699674850505800381643382775346501326196998912743571284382970026376198100937964863991596213003869574442226257513600959297450648179662233638515096668144766818133169792040013150915144588733521646463007682265285756778983029577979733004773052967688012001624703704177870594516309156212699392160659820223694820531869486532782443867701780001938321682454584745028397648291240120828666741834185058991077809178360174737612611880864692331464315352374107551708037387953430783278511206815946553443800447186113960160812036661952765194695407376159568243568360604297544022430165879730671760890161797427891857898781888021548492043863204591650252563428478477624686281490919819562951213659263338551690186231680929066573841458070367071234129705059599933983485641584029268155927575776025622843215489466590262429473194392876841397229201034549874550934655283893578824808051649627460801942826467358168996326107783255178189027515716639483909823792060127654888829864608281333389407999294203957686330954556726486882581570501983498951104961140855656966874898687186055989628083776457602772109207780067164623162602254963207481791429686277784763292694768417806915876074624053991936449967018265441491837952287988596339923849131403866434718991904990416035278999925739476630766071331987360942779575781670314248365739847978255440111613316428301066270345896671245711829233775278425588958916526571393148679456974967188712418398432381714636357886016769623956796446830886143712387146532221451965223604523731079187369405491062759785076709617093586670576656922807725753767852397429257871084544766664953882463153873965389085520648147404177917764898982808413415539493393374923094019053692820730895509042380481998653191242882850726451940581224336638614846139183100440468509694737647701441521555396185056840961256068463441625665027909445473892098612220915826785514212992392609519613762641855725644589974826685868692091988675583346404600882158177899060110472667685277565940759235891219856878506664450796481089230153134589864531693218929155622775933995758263236307633742612612209104361935983269815332267341953622409530920323784536610938614517099794331087140099517241303613940189647942733595841461817494568155534504192133568471094429501109632997269920521100500598445710263663823095670412239407551014339908169724002794242673474265710086006798060659768034029227300734601341917693494877867408727714930081549343417790169000683361740192039357032991725408049695929316411938487999933070766777510207298259402816646361483916953076356239853730202094183112170303893034045226961990101394355374820244890116643802123037485845519558695245881917598168471052825031563563098016398730938428939001763810847773303917001270428296137921179783843693642103041160560983270248427843908375392389319252074347384313821050500488911396956610736622388551180661032086558028460525138476511438979026336090946962732165868394877513932418677912385416349117425427128183406366167735915074584316432717194806353500464650043516313085489519174723404858705589835700477379480644771291458278969183033579672032877788509341434168647126933820989077028329603678030468853779631495166290438243090016123889082587630488045115845184600696519015646020560194453271495324408250195178270547390864528269219377569857007453355524643864170744803023433603783240585104717803037463649684153929576190832910588080487744796380252227547413349260038958754624491004604305063077808795999256114392100761072950822633488227885892251807679589540258558351922400138104402506879534166314218218997071196665569911932348177491077532096082485255058198355272569315948360105129637421011166032448216434478170374338271531508974353626966349550488065326678308927965420815927000711842656171697707886148105146048708786469531487474476607349100861928349620496355900807212158171845533478625068833669839856405555039694247305094250724907250207741373858394472356978692018619358523290696310754601109628806340871519510022464710470590134254379934191439038581907904279384376402470711211886696884017670630646732027617249581957715118437033581823189967402677760980731568489213908767188494562585882385900136254421079592083313633597445147330244605495817629833745143554463031224210574621697056051456341919841894312156027596330931558706961873164596891745615325392909493252079113454332194831546071970199073832457356058287334221526944074780504228010031925290572467007030303752055462532948246540232002970563093385698686555621595131882585335050602998150603060894474021961682053264417533409055475038692682809304957898879036329621432941200082326257203369764563623122953661336366947609916174345583717564819608274842544888654192420955150242588159163054415802284852116209517795061250459674277803711048046393492326826527774489081885975987369147153751121910540860852718823811739319701636921215720773234250009265265507625220724647954378347845746621706472297763283677282471868355799397960858641810780376347106142741466760660511975980782455447818884695911718883378103381827175953854127389167332260473245901865191406963181391978014112472377336500726914509334972860742572596018051628085617535268022029489580835738880310256580581237167893519677849277443951782385011498062412181672503189982829768674864610451163241114556548084760622223110005310585754825464038554106041464888388806592847151613979736584576315165250167910200730843249830982596154002644371933093533271086561505152800859244939406378199718801348792938521837869644444487844824676152577104215398207318790647265491759816949341222091305262086286667386696014079828258879377942581130063325666586015705652890206386649527337620087850080923709081785439696955435411208528277647964615200885391241892520077014309539537258942352596376757889931876695235719427718251249807237858684332864379256565880657516212197119233563838362386175079296986080031213379093236922395388848811985551903379630891803824249983769852019430226266764084201526639970623701294632080711566328264549496147310369771308990352596805459818100680389865050766886301643855202318781355586943113149173932515408691862289271983769693659942302289445699743260736524380118272975954959584428080926761693027030465127257729363655833768429233276333748633457550407136027648482865208954453983166964152152981854042674292229111918514342058932458294468261275832814076108495975569801937235529938876281128666870429537481924334607278468036344588310383541338320245929409104673457958940880781099364818070574715122582583352832516708495963055324627531264671689587468084821681880016156328922567570704920075516133419251093033666350648601517883280061597733066714246419498747432332307777734444543576278385712422330624982617016000961309872071927054654129278272841856968687629395416222372201816701064865420961832686303216564646119309854463190615651792302391811532604920422420962300023621965583197219257363499096027854792934222732660340248695243135018115557411780727566750963748260096969639221564004149585521934059127077270723227206631557535055836670505742278310547016163321425736169786989668244376856864517158061376937395375478905677417319890386228884925715576961297511680192350424220016069201900385907118934711021813479330448975334952196794986067708031420184620974889982074924820838970880024456883225677047973065192050127067784175813987527613347782660241839726349709368853749063577868363410056944882367864582443750282882718674017017575801511453395969653767706658382894271787078966679035097398266840612612207133243866318328787886786604501110264320757919453266821897831554548695068685726492151420571777278969193570772061381229726298682337960680328403738249425040316510119971730755824409724742636691742440975297631855683699332332239203414807996444162520382485562706694757363225934211333041106559524600492536652212845028078168611544223687778811072050979461571105406030683191194187259640643110767498020310452582881619366878383714672055847401344268636019883349849746292579485174779893624807115118382853940644996273407538735715713012763706962211654590458238683690549959956508271747901718975432152590769868190829080445965115005170425874658837927431813762414997697611207653336879497784941848179515392143101058224821403488276226351013147799451533140029566225502993017621868117251321512157806277161132533886988738229589810178135482064482432625100808030621284932091707922331613342022180685766055458876217005646337890523229966569923375907617497523434995170614324495424929898171995878252770568432287475947227974285844823184695800073364484478741958139551302017037216358006085882103997815715971420854504840738764935590846204722557237045153151306767327012165605935470374653500455328644458439681410877160248672727131770748161871919316791775451497269801710476955386817803764913188073339557558023669919313817132125991198071938235858702763991718476003889293507170432300645387815187692218066439323322404568387908445554630009039056801864236450821507203883442578830026076791567214698869258983174697506538859652334617861869120651476715663983801969615219897420621341061417294113949996218203221691912676368232079021701293002912002712290163041390782559163371775160662763078731024811926970417957555621383275312350872103309257068314645283239537238903820858670233045909429521756511410647988017465155819564323615256776733655319636015196518632798187595357597913957311297888270370576566914607898631834538078606537200872361476872133089681948249348691768238717805249222619069557726738831379083853883940150061002353798215566832727944376197237279470832437015116782588024680847880140512702885700180110558763896450537863145997040697382851465070984733235716007821960306027565509645204970819248249783315454689729408642349694478931304444931059441626245406842399563277772760972102642186797681515475867704116256027160964818508852748544102146344278832902610323089908918751877276603964224694795095081244761497649910231683819408843001378561737312926453829839298476781051068186662264301566641102037900295253358465068894254895397077576869605929739156644017307228842975134777768418157707922587564166844408297377292996481851096795481554217765972629213933854189075676658046613268303818892246551245073815935322407583014754328592293762329142494197533984786625511861417864385497416181774543646718482888816920729761599018855505315608259066707979919371542515318273505818117667111678654695457892083773043218846592795288189714640024665868326983791996359731440515907595634002175451490207587225555290526518781158516335347583661072320348590372134438105545494085801677891701165069031478129649517700706168724577627923829177900420811714993843596162584358754964970697489437729678301650969245051693643566118297959549764852562933057818453036436973408494317518375878656916585194878683092777992907197636756326450174946196740386375723138581571749301669531981351012436054193447506861430710313648636179257737432649920959692358185589624071583421408179436173474311109357842067259019488910871186018274942448545551407275650959990189167025442429782098301083079002981199052975147471723562984836716878067223123805708408212023202114889695744785265637909660126980310131740183259696078410793264651230323051860612972911792537015204533837467683326738790889543187087328278945040922026370848685063142459576667932218476998239503668642998467056733910004907682166507331433739822894579853598227383666307018189040746841878300108355692094284939313184068080823170106402243247742480536171730343624210861256954187739593820881439331860973923289528787974875403716947984646551979252428823188403236966449816315212891494434416934246334113603171804611654833751302711822837882123757090491129669573374632248699986772194081898727080156080352510216830349106614288057447923940111740787780435438419960289475393827211814776201433728079799263471714285154025948025998125758918950964750201282057601191419644341916327172086125140868986755620021875557330240915681650544851086045111450997657172784834309825783280439717325985984683212443843001983261851850887049955955215090497571944525053337625255056552734261448144832159662443396257862264008865359055786520324922516484438349549374136120931108268754775069021825700997886192675315914107884515496954872258640399716624304004518295895666346273431015823512264135528475938756742079741296957887903592182094965166005238768485436056854584690738607286588688910345458510557043757253006219904445289255712234425231087645136138791850683318783673972614970584737297045129340948421435093519404738576405719879829365259616959041115317502205370036416303315330466383082545692055969368012672368568743512382509491886565019952575487089143743785414337420151082801536700642327170899987266269427967654924640216670106866293114456697729513857398637410275857224293999781424649993743755028476819921074080510327496593624122818751327216597691331647111777157524216170224841428120467368851618783266231904778292892863878838674561779342466622645436765332392838661360047104496074679605714516479164189706431081935059776636170933427683707210668818715034835364464506193223842332685771564270156385803515975129379584798426266131627214911900580483401168250414165440791149023181568773211572634828448673369936068189196950147542701975887845948995682794422330091785957529034938444330835364863615041898609302501951790740117330235148832039956515391440773280344355771301113679956216318545564740357540330912532125403917264466759935655320422782277619810186868417533056460693011513467567016860485685643823219374744021133375309431258719070419252695815416206530311238026405238963898753979117758882561107161835074220645479667433768597353704852765301189194188965617140954093657295978043576257111950075314254656740546312642688293050692304041828126731108983056312319769171272437282734803763530369223539257242928051128109984635153856033819737493819174623825976416898525614332755509708308557468593581204261754658037353604657796568164736886738820467101920367973759068481044182874925460843366900435393252647711194838010653608078851062154056855569585215757379561027761630688155038887135362614094705510736534112618331935496222458474799603250284900254741371795480646223744928392062072626921161411799404186720048381726378408387215165605295512816938751821691000398625398751180836375345910382302378084708924833169007662131008186441466545091018082487448208931025211542830095577217761709804330480090699125725859989544934191115475075477299583250173461621407665401571214145715005700372876415184595357551141764269545446569007574519252324266226868456120065064517747122988172202384894551022613457802008053053631987975370562241866009081130252175122634832999976906688992060268141562886627659246042892024845515804983248613471804200000060508467979402829617269620608297853982626465181144693751865820438293995322492872638099834310609252113926338406973450891032919017232610442510000527616994286815375336372604864928176589674134499924074544186520406352680973916539691733560877407632969087394832609632543007391938914159665232243082819822197398396229939779764852812881871711350886904493676538780360970014413666905716975693605435779910930350683607969130554657632083461368943832480561753705419525400104491052315619968359318154032437636098111013297304503612384479544498791210895811272538854844347352686118393046212661021319071572495384489705013764829835388550381938882633910641970570127146934546714179444844283908966785681285654035015445297193248332805496765664045348248356813221480129384436908285809503118140012793067636564983452187857469705015355160383437159113306445602122440432999988088713091425080143341707882699927346864090303455156162514205974013590994379502757091357617969510840090751260832821122979086845989108611566500782143974756670470495682339175811064942373221352088524447625590173264413329706574427661242021919678310211903211054179048513878727968658981214192863825683296032709479507557741284530884001941474610842815138542293180126613206245883475886573047196254648301934166607339791815828769176099463915806052634591254054838952357730941252550287439126954220125486162624385953914770979675606937141161155604439908709748335380572383504668206415542339976136205841805169857881455015653895542347628292450157823107356078468819930148579760097919677089181982034135886686250896166015094700891801057509481124906532277314052260554506006148589693255363225282730753167506051462570596418142009262991987070817955577383555010714545466616894937110416953103504161308571688422300577883985246709249444280502037316876024775119584503067144993346383197978857991450140901195973074498527885588052204574197884816256559332355273647995894470147399878165562467633374469263156616683588577501909584668536548757520156343517517776614959891795769121993157385918159119259783568597740004270003018365321437634657867023207085450195378128520392345736077713173770675276643114442707784566323069508331356150631705944552250658883444846293970705913052149122249270990710171085475364952186938661679503390595451515635096391780175047149540829370146868958710768785667469907052242414848754987446570159359085865486355139479714650484913730719812517890062856632306841187820571696947522459342726599891623255847697305044149165825769638446896002218927168524523551145380901654717792162627956628863657869837427295965824878823138934019299381601258317203147119557991534339632684341520460158574014310225671266930136247429880137802839071708795659440637397778796060181489515519080319659598735290276489671269003751922755903776454553764740044240162432548131053942981110314142431914292017601275505962752691526610666915765379745536251068523091321156341880902805649460029654104631299395258321933236051411026533239130422626303610235741862959517174456180688654892677985273941552627019973854371388166222057452405488502182789243859600815953700335439763048194307415414499947876773780235001269569417218448948076791927648473217033833678379783449343923656544589066321973966187683253531921927607924799255696563324972238464290135782464656694326148818514032508761848569896362830618068502199172431714482686155122066463273705614537950897501644841496134084949175566462873907276942402181333483709657308714428910275471927642977234546371560343728261127590364717518365883454667436648331537721799283280169963728824685849180606031093220800175988437169393999114997557088580256174880750512829041004510263346547773403308552378862030531681169044963434364962102457566128762594166309064888060461635105031388166517531577126313724960198097380729592837987151683025193841600031327166544808471202890942371299980299774094821262407777537280833790164031343937605203872859510183289701101817037519039105744754535878789697853695347283186230163959133802488808677934687833941184636163932211596064337575176864851727872438716738821988280392742182642994988008460055234006896546138315753886083034507916858424844541749559096157023274279640628772381379732648165920382421302192147652755667392308833807585949056683859945099815142794004237611852495888785405491920158995914116697465108999769927730850726430214112570065161908113171252152323188268205084943636418701430055132103534009217775147785789981798298253021553235051017304301168351503117101568764138229091875997351414136936635190500629632420453030726816811458854596054540786927954710079854790493042977350610496009302263668288917738640460192482211213488512926859467288037379394823586771149156039152150938106096546051884591662761844705864625783030556948374156918476761782551686779937613420603431579691778591760214659488689964853556538140574285545790723806896095401886901379263784483625536700486582408618681166663099801906168929367893039780002389121054187342885055614042780328957050910646526819494692081205136486574760963588365499994272673567311769022161679657246350576468565278342014008594345850916081084253195019153117407924253970696833392230387550128377818479981253957005670249889429749054426404102719623260445056214226783179407418395663656664856286739322615946428490910465460062098757084682566792398366841753366059063288186763476741998460570099073337878231943502652003836208790566014873770951918030773268629189249357084210873000951822556036513514192798151066368495502849918922011047537883502818368130349052030080640491544862102125291482536410519860260192873835114459019226502722570676724253342060573359441054278573516670243673638078664832689779254860447969810306313769918495857308508971793899120226622173344059958302436399772474843093422238183172100187244444944893508044452315281118273426444840002776460668618796550120389271065958845505597706205872936066099334921950170507660927439291634184754294030949594020667834333710149021964081738625831726288396393443005325783158158159934094986742098576065136040686721462246993804977751248713712189111909708430229073488334919747775236314393941064988277522772018248375947925438866915223355598426545454482185398554644440554769951646476786910893187174619748554806191997401372031338016979297979411485139780933613315875865297443291828291931293340060685909497975126197139982703079547150749494065653062068126557383086634614963630636283698930612356442279668954654097520926168114773303502234506133984016562173939884956948357593890122760567950585225784865538208511048368320252827616474304351312159688830670586627682284481825631754635716975747106485833112069576630634340259374123490924959656289863600640420993248121197117523420931941085763728509839029819904565137654629280354751921238529409422865471444063700944695696151194736266457838165094001058224122079601497458152595576019464340461133311327767710184762799296571986295047622626661997602071293038374703779988751170318333579348445123879773795231969059123813136118949651758216137288675751915621990286021159814565417313428388537558445599539289043662474530249252617334510582010891923803073446668041570186442093939710627406738720228519678558474411656225538985144209324710616408265237418421950357543387509653190775446713926941138626827724795701831298900892281774903733731213299213641136310473373232354267043863406813457550621991813466785016027885793385445156394135610674289158127115325396258044418071068795387589254210567301202593024346958722042282786703620567977934496826512976722573943565553856033997365201833508599961480839614926158917733594270500885916042492506403546721266838335468472573475887668333770746681555864410080897690826250929012261850284834049695889255468820997307680054020372999957653900135561368929837470890645013659225154488989177904444591719229833274073506242806031746810320824002465979605376483330272439466989992245710525816485158148219336943020246584342310673041960041596971347019187055882924180331253735026956891350352609580907732127884997922987840122513976626439953793829132793120544423718441721635803319840880800224757653192310975226954031270780839379814551400320869548406810735606761307203518412256172850466666074038396569124666000317024623875007927930810011834471484178963204061609056717490200901350007416203308936512923437309026062207429831293612066992794194750512191973754628689287885342878283540650370070551358955135679618898900403548537897805119376827363659663459322673424133485898760780647897609189825105020321544084108374084661318830893898215540548052656150425464697825030379379353257721892572102823276107562004869480980266643336753881323897618930303825467459528630537853090712430751419825577165793490599772497598712477791665301917205508869930468636828959371560202406434294934291682487056365464255917481212024242004529569314629283137422493700213896670769704772049732900565696534886723522797126750436163301454802795780215477987450147885500529819106953003487867241121920497637180764720514647959576210114583703821737420938776469256850429284014068706496409906907797115563811907113695788798316292926439073012080555429159021650988038468972657847424650484025127608270171171508513901238929030727259673699516645118630129232636626685007103139304271954663908878633983852268450782260952933245783619284433248400954174680990757835241568270311530707216251743324771348986578743939916625743773242131978966131235141463605250900185679486105092797220887574700079637738887211719518864627146152494262458689272618615777426904995292447361131916634624564951904993000613819353939055364583234900045686590321036964770606311311350798756841693003335681393204017193797220571721943712238716983985615207800046373407798167636106368879088411698064158912640699827777066328653197409792812335670004552942477559605432544149650060207933651394607611142288440563579370120612525326527439860019473380571504197602381099207866078201521413099689117960929635088869631602955513182807528352888537209364458773573367887017982376359204065014840217806813349949853786682358938077243951507638301159203777474075930221016816328859267723176404895015874974754835024898551015600982345689860297130278456585774255395488158021694138818602257951934730478598636086339435869619416463679400157924207785152970546015330850561632840461447477379900513984932990234997316696826753596560306961566516557603465537523259272011416939572309122943703610510858967198813709236889711691022756600072475433846924101488279090383415369766561674293836225175317774305039693303957284475924824211846425230788566585000417983211039923956474925644950296971024885284184702615850761547246330087715300450971547371936738052358117236199181556488189454868207883353482273295776051565699878218984034348439705338175946267305415948779892109772012444160093250899370820940518127111428737443221242295698503959256397117719663353077946532275050280834765220813385928087402915589942697839867511532528219044014934713424717796582319954788082723724721086701949303642022018975787072249295869784493175092063410735728904614970751472262472408724629391941595959836903601773565675071741448377503371631521523950055184388011571251577549247069838604398599473873546751526087608293923810609633413704583905500950033893898289404710528954257409959861812299104248008841595979569946135133432541050658548092092422389605193832057699367251398109964484438953309252460391110215899725745977556684100106460863929380078036952884760608058167442257047644202193698604247531520051079738700638537941973015252580211542481896785201469171714941031076902545393000079178370571974129572133968550973111696983031661318140842813969100359596390348453947009167454692320617489190626849919521977108383640653598623332855921982532246506670436561549007810795781615788563318635475321366909825180333503599357459888234285911174929317138942635737330516091355156735881202244087412537371098681599135911127792060458586730769869853061208959590874301027535154856954812504251515120166354751787318017144150353309359341471811085023364833759709250854886603634610865007881378884860189287250665976327615529644843940961778777818930388395678700521214076375866938464011385484041833164450092847464920168128430227734545927783640928061060388986316592148553537489530672877756778687930602655120864729922726022281222620850532036383543995305640239144589299883042672387547408450599469054100595154770261434991557581156960358548713514541884088176246197169120961672976013705046658755741192036845366393853361031153682265712584846583699554353407786076030566124897747635159984433012219525220821316188911499670431616573645913471736720184157409478849988156457108103680293254228668911824017324540425331093943886421970566720924775784492080915457623800344169927326926439142809244333003084684278180505089484985455948131071380516689413540218800896864489722549661426166606162154969446672122993526933103874533756919101997146830048612677513687759331731755171412561199137101087918633825834376836704667925476583836396015969978386426748237899262235318780903957248104279630649522618945606535715857913506526512169253082296544645550876566658853322822837006971162485003541171302433832534002149029632730545501605533291328219253677084675002936261796553236130023383101602728467862680007490165996204323260918549496250155498149316772782651642417827026861317563898493658215617820275072488612864316921446076426105785406745672328073211383461738666433744928728741321945525487609780480667108054026668397729010074199258288655458613267375540863153972517808533401385825570633578736797664976703070758790058307882709464981583198955440325224068955659165688749991610566878744189861479504338824555215017097561531090548044606798968586993500027803152429961252494934162638841583215284134983552664307900253612112569325744945036705026596578341304013857325880852053048986543729549093636896029864735262308643398523345873761816239246447540140303438535772497852754872272775579638182860145233897409325452829128911877309080790345634734124268970191196844573402080873368917230930858468959873702875719995353304535956085729360708265876321931989852819597117382417722424084253419420898864735109551355475701832378863793152397756385682275205299786882098058129170598351105144778097054389427958239386848210248185534022758416595499091133866188461376061431870154935608250040188906992333694167520139871640004592633535193524962440715840843532207317566495517479193924328569643763165880710935693987352471339515173671397031892413279401338295421216597746333117428313246515847733045463032113806765506499833914685877431911900119019688402638770718288936715813611311727855318498595142681974887022247197594922424093321938636769834727149708595836851045809404318123279428351177182334372051467864917105710685283365687898041862283439657162511789168679325285185807106153239094600501263517299751330840445342053183332599576763024560227691788006523127055167272971674406057065705151572333819468575477093357246774296362382514160126406444689448934138603752621137769270313937950068320847273654625370557832458587337154985606088835019547918434708176332824546782562183982478166427596225541444223105333147767620336136078413506610199457793993452796518738033758933617665403166567179540358782449589838000199047780292877364416523080942554864783670151698457923402641847645426854047567994518557857824639384424944773503423815206593776563356218836735028497844800287249561689298016963709649113082097191620439199617628899939577327317264457083440740145266398521108904973610875167090538436748432731536408742172042449428372860804592017084311509615902220072121552822467463001329761465184646738278982272187601037752698765246643035988300092881507079257024902086283306474878092102390885023803709318180915339742703038137903594144445076173953246956411781066761604317049001146632889426020047044774406684621784510021573963171094326856199270369955841977384335036929991694277889891684398479121836937321882578478835278630080126068584143857418021071171080800142039479011181367490871906011747368653272657336317061693665978970656813275699879374266526193990945804754312325140440752506280688126901458435223398907379245431742513910109925648798354302898159873046104339930213603675732054859086870957483236668389516695560591361765842170342305074972287681056378739809792128069914321380641457585736486360999031158291442801757604757329305779331227460214540951578367469077515326861575798150100973356366079967056185352334208356665455549723786155518575600815944639263053090174438525403338760446445505980486380706882567527407124555789878979835866657644311749026428538864201484621224543305463464014003814200438123456445476268003992159919610414084167931857965105346639508172998382527786609340496841121809401920686172346298625765149168887135219612472549920567457213924907267409079208413355685453625532225404930974043806766366947694060598486374573774747036178710687658843205560884552227214006092214152045317045315513255729132987155838143714408813005757035909023111655230097160600731335780382247220535517701072753146395723989987966413743475510068126139045819115768220365822413044035090736847756231043761963356966888307214822808936299797928758761949583052814303915703836310685125528677658896343486927838927793181452162402239729889681708660995109582322341813474209341717006021277257645286030231716350397918359103342238400074142656013369365515345433486069493958018136198904425767435384226141919222876822184375480017584219789780690245698342669670922007032115019886399759680207082218503159772437038476274669742813612826765389150734783134618084676015217061288480451098258698770117389626636279452687423873252242230636969511887352057942338793466137830995795058897478040738326663343157378848659095791446494177033458590489969939186803937283952893136348774768326599065046059691199161189243995419792898385048354647033558123983182828523580357455256189690637023376016010447472846736585932134577542322259152158497935651593470600600358882578723896431239505375735152541055429993451149364809378662197189283611444980042673716766161099758224721774389632973548288453658879330718862543708341870138448242068199672438029510343279384414839287585591803658756351379808551011693947541667693963110354791846651623373867241549241905127636087872801046113461289204345978760469774501379256079394162265602884068428502457979152719930794441587004972258260753897781567644468659548559839785514614635458684099195341999688742497321680566525404032714975693893007875692044477676015675316076179046306552014551858641515739236397736004761986013973402947667212186906256685048424750564965390288554844560625927082970853502710969436636317207250886160506686963189572634380576429374152956745494384018113651148911330098793023902804495084870978165835388391327662533009440662642924847964067696770488438497488174105020931776961179668416013021759843891136553528564598486036681821740582006645586073009413460044829577940816053110279597225813887755422228585125799463784373211039777968857865357287216858759431574024803125845112763228456813566819565639083419010860457055225093795898500089678054060234495995072466764572430344222768040303292412606946956901661809380450143653597334618883910976889805016796071545457133700051134312501949433064925754528421957867605911800314667400115894483840301792076620453717009087342505203095344507040225355198276632746839087519953455128116949566672703310436175035889436305872070273762897828211593930258377839113965800174089133639824343540012808009871843381442420810830068920750059337062761699130581334188275605626860438501334618380829693592248649801590476993723449126845968642130157096433865436935855131628100061205654258972570000462760355150005436320658591726864416267004335695965043383826439224187297771032424750661040286959559039298078143565058572985226734980597762225618571149988071915020910792554777192182895308311052579199883529114796559764993590752915264637869761709367318568577889373244275471662623905835189806411577375951608826539968682284136060915185113288414581408229125719131867447012291493594772660761848154176712287971387341887208429392019456688019483262885643648734315727168073552264390828959200529172335686698325025400724892791960096562078266488306613306917590066522417313999578828481533682725866702421095205876042718271748110474252941874382796913372871857268156435843992989223577169657447482117626107037420458466689321479431148780202066905955285788972317218089660240108306860712706991499227267306104155226363200114920941781706501175801285184299021689302355133925852991912549462559492657862639972641605668186942914413406169599233115379870885290874682382570592055133394846973397852881185926630987932242803420532175484359451994350525919564658685555040406315121930342067700550968805637081383504062919531666953905905307702848891885445565070619920160848873347765845320467965640952552065842246912407729798943884412757468474031876587000089358300017303287541880358001333625987351706249454946807181231223159060411709834626239006420023310832952205476938195224697425226403589874145961596858361577894618457745791297151358812909094938754091022175107857646166046222151652801664072140785125834988336260493429646610448820895233541284232771932511723216579055522935248810663042270493853652588341855238704678510319049188294442022588370634702853084951378442433618113271887996835587074514441770068710566750841735307325155980751825037922858665794201861813930019585187691167160223264384243138031312042696073934211984535024766536334528095117594855205938534343964002131545391498815574011302766946194337948843726246471050992622649130175991602756347211958423178385744059840231903885152290370913759087446571786756819574318795289004300743080390684865173263752375807960960946264543520285539556115151342286437641382614276483728800398519792363978892061032559236828132540991322228360214718593589299620556731169581239690874945154301297896041969512294254288354171233451262497406183519581160929969959419999577984153157300707932374888112113303880902314020329603071043424544481543588126472661913035756848134360044734413511683607480587148896558010014316856008967794534306796814167434392879605516986754771276372328386511788481482320876537270448143079741807834306967812067717572371166239476236471577016229831921117090724243661888224907360260689247224201700141152357998934206882983906888702748243697028700167770509342067643762427574330872380668221346146122303351744609097510819412451277162409533315205194313906221517131207572808832761304288972888338498359751827609807462176501292724661737364349375485891100529598251265334000773137587407761871483303989953476682895423995249688711929500263762372906967846790574611213146786786976497763728263388833274327114109169723380231304908884049234543639508476684766651102532521021338873502893514925551765478835706454617381105956386181808743222253567441907139568412486254479769759861102043243959993559550971669153766292971361595241775557753385702225523241032217606612775730165330390820186906785514753990492657989250589906089947199060046475430088728135556658748328481872128421131969320535260896935100837176267506435703165795857431934942843059458410292963734758616111061323085906832207919278789830861054973698301172010390379840147609306078725614940461502807528455235925896138001972216082429251431051987463045483093088283600072706869139099353306216438612898553656969779416018032653564505299668591318820254832685408342959268702726749488969515594618139426205682794671721187579846601917789893692310682120913900607426095161255540621010427730743992174265444917083790078331753332861434686675402128142493424506952517797321032514007823617860244108993861474126181724974938045142705093329934480207483481134149391398789866157018724057437505798963125428423357881345090913345457478724638124956836691392189673589524219010034622089783970620604033301247867654355772102903446448818765929105997901638508262328254471055489603407498921014978959758091320656142438086528368036322496195259484925534050625598985938084792063068095435790244280808270322244934407203069428468087470949158289048015785268401125109156086897333742008835726048269847660908831731126951205412559347689402599604133411798458854733349467001841315958772232876436246652736342436425838805558579968994692067157293644245390907616107132444410348408246507867856709040686837371936142926352147622944227690376273710411867310594652645861027842489732901563201985218656670200128463261643262390088361742462046693604561602954116555970676637480497602695869690763387905209067979449353133337495926631166508299820142226283643628593285189739888960077149896349114922628241529022204961958321351448568936608841576332782198285691488635325117817565064024140877071999396692629608538122779568640640681311201350381363494047521819318589851207734666321806371030953610044430856104567376831437600141263341179952630317605930123481308940156721902256322236070057193912723877309225019008984476347044204146841905114638417714019457386988878991123880936156114736393941457216803597210083283994263347083889858824823095638236811961290358308448834060409241974745258564558128388127412452570146190277356728272171430522290650555034994102017598056914276367659408377272554787923138379151860423206178660093469224024345765710748940971185780209831712586323289676467905365714063739077847704538824481245016722097518949561084111884961365788042301482365690454215787122548079884954569691890445980544413554290481273487842802285724748141569803068910459317765896583428421723590097748741971311942680585307844059903169710677478273648162661721677863088806228348409086424419003247108217732790916365498820728773668587930590640896827361426525160750719450908699193543398936353959664540910321920198523855674588920632403144465237529581789862725505225508413643929918196644528554351148704807247107688988495908781136911602114389670021386659347120248165512315682272802536785898302360779145731611480962152490538238960483245316852119576372055793647643287828978138315875501804603413665165980201289318716950559348661032777921018650100029851697915243787129192321142580356287817164629717603399414589569063295025387201724966745441767283151862685454495461878031688605582963210117314363496360349556357524958090520359358438863640713561755635682711105765253525824239900683999261147794517143275966508806761246184946606810568088783632487260318935868658744166706918790759103723442628291614283949259949115653254890853954553173284963755225210009572770735248127691983392399010290426114746414685526870892744766610535330999845550702808977468811594442446993779261097462766757430179374191104138713042714522082529445743779923757133727876056049816770525918380909395755740954923834986703296941912296055171024317663876149092653752842144841561644001579771520226235090514499312371138702183251704447608353140291676938462096073220397500841677434067492341184069056615388225764439988235112818265127070175749305604769538356669800292100205559220459423851512783971135254606030486274224828465708730802619702999393495484573398573074700556340943777998499865522167781460247290308276662492359989477643641146868434802064963992138421910933313703284129067830298078662961681214187410046451540816906769065086349167225350874673936786342440492129945627989133792550013764419716664730743685841541324510118675444838573876834446287998512009392528637666548023163286939939110773453793264529118750401541221597810512606926998865627015543667459351484237107822378235593444137427606364893954020425311664993606594156309845976224301166350559010668480840078511117707162478383845365888307905860241407448400038709277316713755144281428466648617415630233942662677489773566554389380710516954814411743516540844597700350044553467542899921142341188199607693483406682009556046344248582404918151705911876078310156455884500415867096531362764687613634230428446458316698114884489086359674903647090529685677323004844371172022578522399867212140314041358979251512519297389159509110277836662075373064712863290746553065305355601297037700031053546526995060708139987297257817643220621610359877477740805242527676260420048985708943700738641950482727853376835870118878366588878433573633391542485128239961587767582585998825147826201678848642743333257210013361067302075168691417366717135545961672269285268773657779238751506084417402891364966879163122964553857228459787059638831778740343601945585236162912934358170844177112713029932153719378839604994460357419716751554798213720188236971731995366982237759160429118952219506166433570210484476699293921783100264187802775258721801502389947039055107902118708254924125630437724680069267011256130914566501643404970116232889262333428858386158921362226067207693851610829010156004932037444500231400713956032337409619240895767775565078827138092716591619979488153436954003449675408817001915716314804786656065198365451067292336910698476168443722801102008178754635504433921234020872485353704676980548962379789602358304647917700699456656462960407457924375996435789145590366698478337498154984252199188379872281667592064064822959333144040970489358764344241049952194824718466364794267962693850248867671495156774648555537295694378803315379315358178969590083786773110174327046467204356276549588663861199844747350928410733634957092986252219210296649751131301454110758829111331548664853942573081666608021001624913008190768084166484975593934044330567685904948151529847159155596430918596667737732684410086760956491267453064036326008576432558836680083996045661350674842899680075192457495330807544073520197884853034999329663874349231364438774520922376664061020236073694025847930030218701536563720569022762040999092506287175836224356415709089867205896625171935782062295106286461942368328899490856017990923741469211784778350745031017422417057046783974705301167031898608216295144340114043551415472779449874689264303528666543953913381034774220325609691443906635557487005383832997346728871379010414910292879012541576113640130187830413408643210796649371434123577016214583175715433454356934937044495998834603182825488529903655114355725912118880925833692389294190107955827954122535645832602349362009929340604610379350198015518060883007833613636685939243324038806980432035157639028429198373640440280287873215500617696040516202557407451704992267217529463816785832568661385209389671142500669463195956589284340612915940483256382300803359534735814327942061940805748600967825883142144774785828748783099015808964091470103349694951722730211354560916651004644145535668927992505032475321774971180839235498813391907189829213601267990359076226958149239278113443656245146090412941922245447378916242257020420773088514019950804480006545004926114625853991052845535877061223439692745057682768082260448415228548622391257297137786259427025083014104472175199344604871091067099891682031689442104240480420807628293070790416799603839690971448145100884804104566042338258607806620408053217519132420263481635257326626369726532289511652975652514358424973167974688425120330456616162955633511448908017003050528725047848972469656428768292361663340481858845895201761295784891342849119788005100767054427547340665410552104652973308525570289505267027979588793165668691055441951213621578658440689117925982790120878066052632321723176417955765318419974875189860198019162701094655670149601294167765040458365724453363061240373267828564430682664553490223862044448808594132964644734534929530424374428958914219210076761012458995858277011313512418627464391489948191074666489620476435600151018525847323679500972035490981340093155436548096544088176356887960458277490806018203836469416415328165331172330446097824156239706799704053514036367087773026285543144781615136840665680313336414105428586459426222628061148794833659588515381567265090252352938992121973254137825733479171293822109407394752383775806082626898825823893231048897288529031742314426387641381509371187318780771658780775850146654248305258311800452479766821277297890944498884125733781899183944504781239377426401616093316850863719419503845913864504676733465391151951412924777777788877784073845360208575443598225228019966777083836639243910336979972408359695116036529027966714673306499987161462976082423616504151178170872967900820190061742881776339835934541166229017220874474627218591736677217338466720543159256352387542776246709155230879343113404963074046384690746174807913026214985106873694581159191842033040988476188450355874784680915777078226174195540382411343328901033968969079634230639786499769021985454479122271745847019308293519392636413477872498280840244183654646365393094324086051730517258419108462858103024995259673171415575920705363693570678058886475373524656634570397910737217895051116020350802131957164431428984458361775230698252040534552784867663888542052012702064086049775369671063997329149962389640468272380133788373825672177509357990866177293826332023590895364552566270789803808840382160349091349371597196823033436651657559999505182929425986720798716323351967449090711819566911183004651867070649386695782702269957082849445666270283393075694738644806086390085226082811262885875406197917887306347209955062110158628449090214321334727900486657251095462111456847191399236324425740374826919489789398020415808051013210277341430693258393191369235746564511283299800843985098577906241560197464818934513443721990357712834008937448174767694149566061813993072629118933288515572366547521522456644009826388268486517555467584946365280459792031584860272508587873915249844662366226814587652205357623113755611842804873917434907559425724820261662712835659416844743878729864858995549278758496095665580119823917058016100397397972921153337667052417367743278499723409550024082319988337529402686216151282263028807692767710648759318940930156684927383010384971493268124021207464412205160429767313404752223113637659070260117449362278933430116223999264746182847398271681699584949567822647566999469944020798376328016290982850673824715681494104988665714966427693636820892202136665444237514055855958754530516937513325214217231213876345887300340881945517026274229189011705633997438775046891295430683121710414947777791227150093119221369940842351328103539731663057293773676908094900334235314774202904570347563481812272369545574591479859984142119382736579065509164649902128632669522537757605437143911243852601926598418461111457397514868283417056949497733879830829151536454305969851069352289806155948720991879881919931707277059511400438165630148833604533971329626208968316171315268494160568135822189370884407198198665127411534983258887084334361440655232087227521761303668101596497762779618719934000729119973592316792703169065350829011432091092415828691055413576923113685146111881704869246285248584301514022314210423210185825445864788966999974056457080577363399202701744732431567286982045227749169063047035065693889258990829172894439852934222910383041691343908878587182383019751419985599236637169528410197142553215571298872223399444280808774440976458265291773985252108788363780056565127131535435138633972196357187143191285583426660001505138735940912509765912492120626747926827116863403617751908463833039005326606669685018191375685812052482381787553547538452741804825399788175508103317597020251720957812717364656997239010804114803177829078765938404483569024423671876306360286867034995983025493262216681916543879168063672758852452689479451287520064893997813011725713808475833376998613264915175953687748798759007534548412740628992694344593417514238314859054278686406475553943300143307793511079423122385327991239617671099205659134956458915713520204690649065883365950796714458043859955873606033978281645323336230000315385545250749306000046593444888273303385713006314282366801018396799145915338658878022370716250424723987250892468698363092889155000885028881288725346133429630827948684863621642351339475433405106606391098466504704682784558954712220641082905067166059509869044406040561720335178072341264093180403338785284402981235060339389180616205395904368323339074978956154763484937623080089540977443301489731982899460567066482504044402485196097552884274072991649274208804259001647179164840536455273197802653717497518829064923043265248027533457260112768534215185687214805655344593669492179061216062022127712714935054645850643739732620436600872469618771994473667748651821728343318891300103148211700227480091069934860499574640371213462914236473455834889019556319073875437485897232837784669015383513027897419539896317954581251955615853533167337092067794814964222787835396877350818651908231283729110192600474508124709278416186113348832815275461194762955980624182562522672012430393723288150218521880032007497241580858905187999404912317930279043695019011606191431093447765777312872132511463029749085723609700797869201540192442412881282123786344261693008093867289142729803368120004095841332314846073370615114042697476507017368966729547597710441370127492526875527488038076138562665891820247635425364877735762160184213224234002206013058783173810110431472849221402138236181925182395161271114930124884489918209835183256204466480882105021966524828224991334306384956373013038865911898513663497142157563133570264758096913875173576754680758740935937963334751815203701742443015568156113979300147810541281636446580800162834127039557114702599704531514335730917897681444828965917460721376542573989747018598040243978744645542730404119455326414029350388493542144157928615388771321383015688832874470931100976567646455663830653686475832562538545010179471586467825218130509706273661269127036730823531460314274088853796014496127966185255742675047454985586836930383444447718409422088491667325575134582386198844782492780975546228126658829492809307539804553330110409333176803205055156973367341097359429228593331529243187519431914918311444963277891071060505256035413359307139340161097105207674773277977033410899567338491950125593892471443079525820884544178300575161927844633412456307733940456200982846237286363198678547631158786253598703087370019323909807533792380602555717133188611406137232133373096029263435115605921788007088872285356551060663438432449827344552501088410341223972957487030832914124766929502364449244274737400876216930923950323545786196985269291165675444809382290479242186485725491856656553024864108338309821907886907033734366599584113748349231318195079027893737385960019750880443118041492283768071632997826948690956820236107918330819113049720391057506381186880701154929050966148167560247558527344772389562966874950305060246602399260697470590816644639824004713836357492241912038361437430834932855507714640842284093594662205663627541270327509117552944754268680498623774767909475729223107596599072818259135056194975932734160626261581289244862918156712349741653831057900073653886331385256952141641796590409392031753128943532657300777061950517607851750498377033210622363656480496212667407133851649344925809817836960534633453765887566461889062780130597047900165488563429355826964970352538061661684916115008535486417266172232868211790418196775841049047189322340354185511611322452282409772525501197172765482221899869284790081074039884636502386294353692907841272249233232633869083985003452618054854710758273553661931535123042570359259132243468337644002661465275014245194678223795368973336906598471328058356969647066423534290426201061123530482327944608773438218500437314857184379484912221858871650975680373425016843615492580734328468878582573955323107355518916300920472064272351225131909889053249440712012031723199869311825653399759723288030809096226429033523000748751381415862595366594860400129092042659209007592846973202737821717084878228894848390659947344419831745522073124410161150481859262732317599542657433614817604033738588158629597366546509443624511559707381988966575690340206204173983326862936213422620171659870603879629600100453217626702964437726445490329556985119486176896118807497379729251117910352945164877086929831784561248965150232096592963737282704202896564177046372954929929634564199850098201958350265450528057731736231278172179878284135092490021153161741845079760206956735916642385383643155636405313354847624770018348969696991330435907557822836918350858192581648251390533732219541002046598931054622414466317683989142382856475757723016620069834030776738681600994610591945415067528267207567207738579533096438156737064933080457576591683458110579067923155101290760739011338010987086436019681214091822873637502772151778111992512751891900801090939490702237268332052909211887468650471754074624724480310586392520833262520185768374378954459650004103761172316871125938466909147327950846085166800928518108067022458605779987369867494050323466641012373495660753932233635371110429736225728399716536352599482440435993937975388086629280419396338066594582836282719471715445503006055596557902290278749512647972074729201715408170229249619048948876997545934054092732862152649593529714675291917246666218633899287500453676969847377485398814379192903668091151556935851752358851481249970335752066734084057009517746509917529618459287227848427193478682874772074788692739793562195335217698460051048200796695301209138558498489047442715223456375030943264711561171198640653981535101457018886919201662277485284140665293668502699371840801881272741514309791474357906397251637179587340216150544952983635814112948805357003117405865347879444650556032339716821071159505938116671376564422679402142889509953067338116239765070898919228745934050346004600093002892788527788016391524645064083332232505766702955587351644205873333097347811227891110722459402153291788237086767357092371089446639555985155960633442801713797643683752514784719789465071437459147412599358682170914066126816234995415601512087915176482588627693405002969593477588733458234997540107757999116041935874038177750694069582433611761052718478224931716238113307563539118620077359154396452958311498480955814390440448114757468966078067760212711504765432038304091614596438872808346481220549207853883198148990952704420449366044378366704701231247821388879361358474462335824684350717245026918675911702331049628475783105744515823814509960781179903909347260032431265854291629979031818246527487891246557646339279943652294777883663186535597197747933903521914089835192483543243146050731936355902497410975863806317904057204339216637083166756832851194326645821964341001247032804139615475370768231698258929241594816892157355606244774954729697303419270876254947158547239029517964214361668315014429620392333086046502535780065794420140768167923905675011494027932997342262621432692985957635581914375949313842441805512098953599403081226037152356591660470483287924300356530449887231651236306077558579682053624061682210536893572639301449136642138628548826586822620513857955874860479819436115616526378139104326750801166630178346498171397683074448895780615542764464025683210324112084432412876297962299024030454946347727975719113492181649734880271748267609887485674984502618739728916352522395763507308798419146689450827678911447831520720734322880192335778071350473242724701022739805579318870670617781774919202734133120391809645472808952774778044489720216850145060371314609232592856238354959441880214626101915346724510114112800011645600004827328871657067407227645967408003784460457525987708385287597540919548517388934745924483471476502280678531015226251810033326200480316062266989216415765859585958553592091387127417318665551183058386847927443869533770617202193705670661097519623605763849400024928381878384207105416425107543596602715876322957154330934429438784833473368178334713694605540057271293090259085029528990379612037819027237303697305434011541181829968103906592534885218695526255593303676869698550617811370423895648853629667262406647939714975253328869724049787653702895854560668238139765751390356739113488538046311103075710695934593845379091418085887176960841048670196735762874093511508153014746895699800690784993277598186487901870979844700159248551305623807505828628764615360745908844074484873837119295348465699131121906010518694499714518349829285434901986185986840707816377972220290323324559202966419898638067461609121064882022681946255625228089887098057692160804801725141927068076236887496032821033905804596791679015679685933472780325246543925155953180617858017546512448247798738181847592934024136091772811150890943835950520359575989191747160057977237742934402230415329800029878217513866066062954448584132303627109935065233234205209025096947454075960100472075865700505411901420191635836262504976693805648369636501930812116543635631745908602583362766253070780600657428103106223479656261613148158021044598198785380804146651815629208739006530523219631248706914157632920958779488089339840503997016681984939194596356580643670043619754249417984380045194826572798278913393955749339892078616699043324236454420803637054065148682261388536135097646577694849738801551028149834557188872768499646220163999626481900212403660722640835468010682376343335425701595471003112080337501084182675910167021750043412345404205414607875446340147020986397203731558850913587733369404485290753985167963968994698843341643099667492136809323077648030488784992493941205749225958220476128197939678038991149942843462902740423426772566456060810886609243872251793502353178737488802285616485358925179995765758418908023949502052270463552100771269109564668919989841274062256872305541757308120176772919733077121794249665563002371809831470913398173318024132446451235690173746898681858203513902071350834088798225979331438721126078339126721164747338941815254356244176264314728174077979981576418815137572796597174154472733677466081415923650066897702085512861581379233877851045785676186516545185781277202762766255553912288839092470425637359370920796402136701226771906027029689953458114499291043405764487504322246040409304772416980542784441344456843449298449887308147293331397982667877914830022760883939609813030619738498940802754823557906944728953278711156106189334930114177135175961256156733262331786967660223914345456241358405372296943363889891765487118264271189983273560756288785214647617001190680075023856842914611028951549066886485435281400208999018522309499065284590724150323631368081585637941540790489367655622649338755546565554729667717362930747943818702089277635847745103427565932996894636287487978502613506098996538349657220041186209167480441675395367781822055770122156257482823142609502566012295927495401631536803815046252854254909909936177055451432024426998630723180778121571484366444825993098166766543751784437429755415676941528550910199935913095723196854064476526301619873423599180327927152303658364062790669935946819315212950220867434135849126818036942904920960361769109910580917940999857101364653458659693146011396114651269489733113402551534229627547668705030139573963603081773356132271532410701364713424401910018324069315748389822752133088051838595251849313593762426545718914954661411598406170566702955265699354039320883830947067453545612985034125912332204233610350392025907113667636578026915006958961682938015886295531186609810343002575884938609027029599589476548526897894787524799837308070335525923276331470314242716748723428643837906717179059402137976366781565429138095373119072793321500945173449093370151102240774367215500043999398330996933411343281132948216720454638299564893366880349452014949655602016834307059570569617917366021133718902050394877129632744946740917131280209420997027853821178764907999838607625773162373100366805137559554260356867886185589111018483982125221853894044056707740595461026791529838895363600569081295986696843029012010782882017737963279580644114022072599844905274943479267350075784616309520489298905012404044354354155770704966462429850649421392457990216170874840420497207947659782220007881386574569718942681105825402949935457253670258055080180248104289538733206456145740630518344743857315956657369043672376694280748136975980069610705746633400342051643088431555168149973439375936629235270661139609215774542190560363331487150718408768931791400796829087984790876509750633622240942313105027102516498195087135437934727882523668154493852467131318879043706912755998965957722370647829916549457560793858434199715997971388732133795323371541449559556644796418550732726269356610821215151317171253255607477368803392112446649974358653597244033527604722465104114022092287521050715711055041802206500103572850314703693792732927844378453230500947330404536202838083305391703439232951503232545910142590236397531072055435016931886610228307837253262427277265194124016690180557569322761003851372540688874477916595146306126536805244311190953907078129612210152188095830563880413522111267860940013496906698741018686533568996987258145498819075280402496334986797727002936156927996931073416628051299138351606579784587624973996325002063086802345666598484311537734306565066874515000189087904676032155509129366240059112661685684315878877374586431321229116247211883456393009284417293245758779118990944977313681361281037566084923884412412429224074272364205614425507706228387707404452526410720184284922599640099233093499571512939448012513983739939681823055758441447662581922466807381611940968454813287973509019628595383640158846775005370567936951786758921850661006382035659869277777812462353520271475971694454145917305089782017302300294552737317162022408460185459045156047730378080124766471782643976205353414794521493579687575420445093416877674304510484005385370482765779717735471881029954101507842598013016224723083908680606908708356091591575789756191112067997180027004927537511462015836853536340922592864812745544398780326594397653452992781541366047322486900786465384613307916577394536294293458248924087809906927901544530014467017214709160360040720458102316597375949895143967142721767590690213786608825263546549928759436678570345902572534510452053182773119248000958268813660971067416051550320607045931114302287376717006935378074128452400733646277300410406733274018636435521005150418220224159664203735154798009201417558357051533287361038087233062737725610902153196579384157881082582896615745067727768314847214968925015193405299296103894166529555878340331779094211585310689945682844933794334911306757300187974503104162548527973439929737651585257533659097770828039634280397094113387313192060694810922118050982672376423516703303734150036279330265933262708809204592016308815323478203178281114920499056635892341347715391313886346831505929248889063754309028748745048800224694226180500477515562164620481907717471494003883204080000628547239555802147852314371820195462586460392381090408581699262359370135079780629801784001995836019199068397840518293339124616347973092312109281883556366621940655370851423483076029797933497131728421847663400469157613250547453786285361443907743934203058867447727315875983167410102355127157541028858942136966784922830405622194508140934729733950763113314600478310353599660605668424410788555830636586522523624152056909714365548485438671050049897993104474962692066515851798758139157589632070822165938916515568947164272593504595857611371750875735194707233576751712234697577471122066781128277020689347686504962209939894667114501868361169886636377949298257642634387635447172064575683765202831257628972818804016911330409702197166592629048425881516216515614116913162940612634812948300588638718532955200962540283316176262775488468918672146920729106050624484953928333446030007721074600435357313421253151027193130013273057293746921415137982102406220533120256175086982976610774502813908021976122282832144866830534270526027104451513294326622524603720132228972825091647619844043658000203636484380827243710207454081567281086414731755898607585124956272958804601264576102672266459832316257363474158695388629444905394308022921193336910555773909613065332878612821670415070549650397105282213104038136266504294275318746541316444665006616611419285894101380339534120095649008992655514718776007138901676987745053833391015334278089218989355046482370733632864512776407784513994553610905340453848715329424402597774360989653700273591635016356050950734056727633769790146962333503267291916210854099583077735424807763179615204965857772446368854915335259419255105728786422785072898995133866776598941143991797670464966327231832678621794293118488126383030175640098893388610780714970941325365474616214780611910678819324834647454027638199997307687993610488220335624287160830002364314288429757372785980366512140979055018110658063699061400495763497836765387980228673471099641025065263782221786964925758896691898633291284433462833526646775512564479382433268137636315720847108384846384519238521456313178292793250365308219537329462543079826941945281192507302681178408631120537427371353620685248483403168427900368333442263363008039511666920207857630428854370599787697259751079818415241247798709473253617821802774085389992380939561212661438064785166877123801351570308225348389966093799221099506822681935757407274956326196774330134296291854714277376767807478546396359329141496619600493297710200946633169769898470472797000937015051983095406864035093787439909618894459337811819431266281158521877409490242239436106868793118012012894869911390930916145025847641676312361552326280121974931404131257386225754760564174407066029650973249286844567848470637147913840702195908777321513635857483285024456057215046406078096267392931075369998549520546952623891632311100664073578544157327522991914837274364974479308504624313179036594604153739885622859763402638081986668403877179834091465122508785849408184608136718301442085347076713553324535207521967083842134614305847956664113767922923931397878316239534069517021123391530052964836378372033993082873447720882536632339675980813486350147661070650100304912745398309173582251192069183659173201025671590931608124008633357745766545487168810037773529126498046008237092078089367026933438732086267287402415884403997170789712806581221081532548463715873317198878793176252504454984043949874560067682234065789879617231167469599244693593004539511844786967799571757123014772997077809662832122111798197760880715034693607925537995085954571134741880913666260533821445915366477834655678754221709589174420638611796924080365915940553675893474211994472914538917875278342582917791535048941366577731613612964524241693411435918900966375516786948817856554063566554061952320571896445766753567113998526052514770011789146229595511057383496039984139826200324428935061002430843770967256242566315770548466337970189604978062879696404860959594443936296841903738073067389766399526742945623886976204978193267448870000303586361115162961037730078202159663615162783585617591046863228872452736826656904955902210209854068495109403649047266867961140387659609519004041881049440407594543633199291011146851144033413662610870924844026951576007059235471302828893463151868701475890350351022571590094736141179779704237314144113410041727298912945071387514560322394746211610064597599858486136582290318456110615836334131367621962431141303349519786721017678242595435723459661456297464585505932119270075969102353235630427590074723085991456378479136324020986971165670426329324721674764655062614030349081442352462533185725223363580309160913069880908573523257838988965182460647131574220456910599586445892865643926667531807276029258461053886365948018997953889772577644736996560849265036506798225153056040070555191531296545478209499528507512277781501532870111935382032577653972959279533352243200370103250307952045217677949937651217764461133606925903390529393674513496577795452913296192026329749338342503134983066966389924757258519430906833375579896840875503544378730785805837577819790109053861858239105209721000180367190952482591698647057562167877926082813269059091952887690900008558518796754905081611367247218364746081187370894360289611191105534557822025983823753041313757147724630173503826819455490126007348062729955496254151785482324705401342130310949675102165033554213064113146515081610511718838694300452949487390441336190311486458267582983005947648343566560619028083025808228503819079052924079938208894511656833360758644887839073571976452011769667525048911068559202879453406563889016345208601369603834869367802029142271515431730386062281936846015468780868880074234653636962995916938568077007857467028119423580056405652718741216765797707883832664719480785580894148061901018027759923204851116640764347972838217935827072731349513876683053052212694302132474162048692170965324124271955979176419030654004750364662690481975444205915054050617846296010525905612374781897716866629645635163026021400803008486958472772758035378823047671263375178935495120564722774296290822174345871373439143786819398844995245093662620769731410296222949534782484475291504154937405939087434570677422695683939193833047387175442440725752749289470787433079334661918096664163626969616163304332930483564471956301080909522808481663460849022542448959596188844877564427080151913749538655103137869918773950400371677730300349235610330654341047170088896984140317953851545736994931799557437958496370813793238467145858229440450188220400033680914569819204927806540208095849228088183889757192074738571902173893830083027147731651097382033370390765970471694907436181909087212289710847504154776044768762923033242402953565558358545944882122425819444668281006406754386399025055022960087885465684126478925628244214712153792026449164674073266205680043357585281487252644276566836836128380315955796917621939993671064597828025775038759104301824751372056531158725493513363241491870690848938230399920831452013683149849746901141805284037376305406602383333023160250492074446084673342586144922327433345760362589936030045203463037299790659619310223901817962851372196252505813631948837676032075940200694063556032518510193867137862110233077289790375284406791263091097760517036117567475988427798695280230658549362994114564611466208457183261758694634497877051895964247882207073443908421773744254341027246644681098704787534474392677954997151745622664155109612916925816694623985002323107854183828548110325911030045927450034064770667878334394333655750833585413372149234097123967657946849061637861893877681683575433685683781966488956587342358909140006876109755768725086851475327304645520163145246321029801555074494727715366755396089950154654763005450104562671236658627738399834562366831319688639563254289698457201535067643651110423920083210040267666534881698580580538745146565234614000605482605759410988809744573578892652815503158266686652265393042007384642356481273524177553213167090856509530414335237807752984053903440637123199306640978164884816320526532181397691678974975996907856651272335658776761047045562667285930270386883062288480228068231719650154197507848660938891071672384487930873110061780631992639431540961654435305240304375004654390076036968055212239892562293608206335556984720777515691590006595461747862063223955242914501290982298181817654765340754018676815042621041425129506362030445321392234067138927815630510463600246467034473643321940313040291454378586800598889396370716322848755033950343186272848353035755583665809977099015363168274595447393780435933056469266839426042125832590728922932720443108232214862444210676498544679417812422791456525847578049043747782104532403638509548385399198233379022625176809821211300707091201177705774213403855149721879229856410095567747859288637489446675304104517132554953387643744434372442644494993569481171874421543625904220377969138371524936066281733245870687559270978713572006565834987061017601542171221144675802492631593848392454273794021594180600469569688572095620194613481346950184376993439459616057091262353299948000081372735453696716386463624597289377422426191875507345571544706178985053748547742085352810191477496963042153144962086662804818895955945275301315428622658286807767941276245262633987834022045157981066668486969795283482491598947362311274877418922561361375110352696190608073734095610219576311550208294534313203825006328451604711475383964476642964151004405659123515404075445835739655471245104041100495671445745312636681763294495035379861122549929917964764937999116518570459971099145796650734004324851430026624550740936447904517326561870375691438427936380287360184213022372411225943529165847078392440689576884280038473311332964630950060577453234546526451003057863876465323512725305114101578608008086774943638065907493366731469253475452922432753657305611075734097348182441578505379468624202986185721001181565752230988217444780800811509757781209690807780243916739889718561810457019779269671414349619025471545943989446321889029344644424740363670813188417220371556738720202332276149642263883081111599827094031536048233648314167261565611334323062496183351304481648647978732767416736120881105924945194289461387570840041174946857288583378383033437225146965650613541353517598853938709191801089381196990624260868463894430817922717894075964973408852614801058307588854825491825862895955029843632838506232318147651650798834677918614303654138992259093846582776779600293868941236238181454558731570726653905117752722714244429774330433030029148602238401720201914482059584971136579436965562012555917108809873770604956968516153161956537499833971536259100267133654436759645368704554744031126345009744174019055393708794248984210276245789317516909123954662435317023893294627899779851697430327228972175808360662946247974309945054820871849347117469801296481370136895921498943286381340713745514226300051459030351246391699028592432526752129126761860517039265865324613896017140323375757845207034083595662783531595490725672988154967206687468237115842693298674662829016537033834988166175447731397303340097379366753569259901919735434441811136841856511800490875443803093722715825204452355256500154175788512005021035204205979484683570846841534161407870483964295707566646960921273758534896761150114268160301739666523553052829241467138348336907442410193709225642574144795544161149455840744713713330329992304636042286646852580385578389332976548537303148857895779391670930308690306314146841536437783056184918276210505152245078287233115668950148745843871757783736426281860127972145760422024317885719437925086838597766796777796999700988849847425012862188930632529452555114195807700912750368184259918715734272116602344652016113147329641228813169738629831208909608333978142563422244025861250921507347990882223025408149872097005714273382246329457261773666372333857423636381523944681631372935036327627336559010714015236575627955222970701058838822487087564647537244379384111734439537006312115245067442977328879000085531147515545143621669241355246603695615682886599114181829285971258702903067163008802483591257665023788099912806734054124040235632905011239325574892790631516268657736286049298261901123947149589128928568461618398156039626492039905143252700773507111106353074286955682025875062490789393034210810745070880516123539707521492390899414471237754879187968818221925525584322592102119992272730958526604007625984079243373061892519113005238037808459488719935227645440505362596128539165067076366072471166970948969669732786557905833080377525871877647470138485998749161711575830252059333407424161707607350260404895054375982663879916694372040771448201415807184405367245041373669325058094121589154948874432647636795604147521105586853127959188514164846715668190676689189647399644327107032037614663893835519926382987375359169633128038555204231413780265639848010420678751548628485262089992622934979673658983852326707496563610007252402987428257945773958932006984144457275123922140492209951838373434759908932729437108370721995303705232038668793490115020200427572292754937969286022641180915014471731374571524451551746826850176558340415827651735764027797781232520297148247923712853993353501397548144718924487318484531181887862683846096223084034089738350928220549409621628247016604606732796751049748901341817890560706841737934791469188267681254575476505553711401320960393999770227514593365474549402381865603373824683845504619807116744965745057681830632531817692428804896250471650445776173315097188390649444593653418884287653918174319316608923313439343324443987539194649531678821860539512413298744118564612392202668776424679268984124042036308336590996457902833253098274736572328301194269406896122730658531080210451961508099598871908480263617990842873947542999865753621549500522263172206240797573518473899535129831048900739583650512973320307209847388182321171532132528674310325756564694109739495899368367843930479361058625878918183598971370115056091668015840727533493028164236798552112979976156918510282382166856144898553281076940754229076552709351763077246215057498307917032414673239509177849425092469410917185203186346239664529947742921226408310623123548928468622066371699040252675536026989059651220507175831575570999800631361691093668032720612990001195722474028515333389833668889641985574419734083715833057609620091988948626220601445322424115392351450284018317468901554205632120643584349052574509946297832932829843126014415634985806839766275934709927554263332247916657549516745229613873752181756456544480931785328262060823408293429254455003005676416945543107532002656899674811943043786558264345513312979831481188873191565427910995727995099338423576799119623762739425684335084444557275147812659369130563955267519688186246655575619457864824361215438150036425850858517230436006625082211113765579885133778759252883432470704523687582728733589814800353265340776167027461924981893060887322084093559406317464469852738613388821899741675669629027612185980545509013589697501542658267811828020236098045512584692106967730792568213026656076715958854627107477018573871056508573122735740568926751561387253614618114678393016921929039871454000118189417450014411999004426856767634578193076576706394231931159593744749603243430278760422328341294085663394327068021277581561710965129723997297059546690430907389394368270107423605795615069736683506797548740113725616980225225707901493883446937165666599186864069813124613717331480541105782372042169306882401150378198390228628288787307337564481392011458390365099545640271020755731873870240825435742119988047603284921496121042161542030980862792434722739569375094551387596567961491237243721962589790259951397869049748743503552189151802817944359284430391259930059592361528506335302560244563632186205322863391157518975778199409237888741843475146923374061974086737770845494015796611441800932453424251887110947037751661573344744654062220373391305106801198077290197126807941102624523369047908584458480026943959146987652233441259401063468539453026153615280717741393773271571618606471093035366339453277864332234550004697720316514327510130093710453656845120455611246250223437463478779195437799553565304889312469083319310880593072751401194728380258891513455577203697169668650181535682597996839563632556829481833917939402193311485216049469493979517910622644039302238371468343800852036644355317326280037826468993964587524621174461139701611724249523376818751731266753884749536716293051314854289465145647441782992867738235500530672999003181825330774861685558408611571565615082381406839248996545305445827199105895695724312043749657502295661506186034599981792260713792144829148004488151622552751398262238802333448040125675606038227729202134720527879799000100815890649540357728920936447165361173089874237006912399579721762825030354607356021495062067751555313270351819350103142888432837681905561069408698161658423698302278734949517198876937962192364197733482532131141613699745364823828325377330012131767068856301041031267864273031023366374077133450713947682429168285381221399294140241190588525529509047460386468102807957609130512555725264649193191165267007681542034330970836548935398962180090355370243789745581138931899780132314845081438435151515376262257658703332614180714408273402176468861016176908037375726094078065006001902504562681184650567614165948955523258990192703325148723105753919944187674842088520769397691985352605625310754901301270636070918388805624398499208548030449566403594845668905391217374644537946148907920298944065278035094827296738031490939538134404675650337081250509856336543891629707019245709192615712743842625334937393480286697668133120294155339514638859868664189780548958785307220981206670017562467398265345147406886749861730142307469302919835861014345705011997035390228319947229088191763838260696412007684015594916912697357794159412242751604218657346642440799521677408768780463561216446889725422367284675840472533394332338673012899126723978599651409466246380582738146454879069156579304917309369562688416819563193331510206717299657685714998314569569512643654726177331691331147036596467455502136494312142987537595968023864812345800063372054420117916586725897996098642816571717622275528062662856219716554943898704276235073077712623595211012087917887366596103286644726247444230755177271920575931033740805970435845854426010929614291710323670317671294781855497934398682513467288979415008231520844036692664684227768299711177747383524377408042215941750318918962649023208242128076123375214746001918805523842354781456871430216114733489176295953563310889030213777031205701358878928129038081345033801938402330278852775487459166534582658899790321725363402005981115884493242350240470994417852684757294805950310222676119040907182820076950723961243547608037191618242030198366262767562737068925698577921240552741276988722040351406968763717972585739637582877996071999557308299696943785238160194639671283965710652957617501094251735198298392825651894886893853947849808907161817487189780774606740572585837618366588257646308114853664812785202432887675952845431186079819518443896702339200728313132768227727588033272488895481724407200145944471579960061875005108942500510775338212765459605480776740644889645279650904722490861384742240696756312056675941886718811245303980571755771329423890987462042374910512019485643930527305975754245832400011695807431409672743077646744109314324487013081191495477066894512218081968749750872383066901232753236942336254052467633132394912575592596985308925868744415977389829391309977639957895348612242201447603084193217846034752880969147280012349267140111447656925286764623829282574827512616143972042695856565890419140337640679460869736644677502519145859420448316539656515641839761632968756863968784783008351250666832366911357584806839296476096809664165847259189684731164769847339685137338275453430935190952368296455444186185408817520070597810105027992716254739445581870982582614981486303703902344575993181384330911684156615592466276280211334269732618458821911301756820943994262492749620072423367455986554988982024312627922367134604877061470794874727381152055400767341623227664734978819155034151241043380525886110612188915403412662154009775682589406655319107590711884828484666694833103087490062581428733117227962209372997906776121566637580761222653819523247128247644824643140911194216032883572913181672513172985855429304703676006326995251456241315509866779248059623379799165289986532045197915709853162249290056349295237557319203512283030562829987081775887434403641507905465503886751232384526231008339960206090907439437048396509658407730258332029207584333970237631148860801302654295969843225877079492703129177914783596530253940313483254029025109532220893438739787747130941845532280427763254726790548704449678144747948354670828184180053076319355767824609940390092621972357292819914415650715489125361598871945885735682111307121555311430256709896988574115675166623060140828044095131056968813586023585426517859598998140410068147911343949740030197652508964477609143058035794551948071636802193311259805236923347008089457964093343083524719491761167611089773599646123393762810690633175045633894932844133683007889214976417563401500558922476531132603676771841691739068966575896725424609761581792569941614949253613142405876638634346370804481529313732375286181629632426204129985123165587215241428045821003276664644359901531514660653215382824142427453558706754920308279729889200907842589989784681372403277467399683833034100241828869116011097924083535358046819150514035260468405503709543523019285294349042315996206504939064452353451256397986791483553253457252541069151150671206657626729996410524422061140608177685494347582078038033320137247712730789162236460529978202862109497680627753356760779101559105118872682129812926761650677424809653192121681749235763730471990201963290570539741922548940140454352785222303324642126226732830309481225797818879812259448584357872334825299364554096200777895398528291297303524204472962309622290622491472040861856805632294105524321551995704776513385467019905681288345517374010226911535001576815559367761120711047758450314608300938276961855546538145525540544874032068350175657489668042394292308426552972645711502707300119688585050011237342113823913113922207079707568431724862434070018403335994982035978701460944178757604206928430787463367795511574996912048046811070749931103115274732763672407365188265933687259583702389472529759105804694820286996687819903376372792535779543541996769121360616340022463859414588215497699168450682299002352771124999813874356247026421339699691328446818403065012474427423614626811130470552568154832966339795215901746845100247557713130657395963463979323306249714250652159472482187280193888971479451073518787034296795733476510348063991586885019097864829179162947438225161525786524442065968874612370712041912183620158587383160070690815693967796684126000526980383534096740546772182170345709291836299373174718978417943752953921464889219374214552367652179742591990187097469452454240520129767532324338170868706538989127240157722367435829007173252700878908017624854420378630510036244477583694351644737029448736873580046091077335521971246269508634990765009760302729458775623550797728986504986557180974194751554338531573696823173123429785044054122384211570923121304069601478540177423065947657553700663759088613022838567509525632755592310236830805930871343539751860413717513320094943155235787145026183343942298942916410287358053288741639319275024465365849788078546683222011826726190610111259940060940837383480276286619214524320030061810869346007061239953591012314991592903728663850058238026161779378807544516134980555727406330410173399161863797912677224332978266782419505080207825820228684017803623515953991927666799934262646111197420464865477953409768041191547564895486439306026423572636625072616685652666603481502711312552000918024720086326566166879381822514662871593625090347342542659531164113485311658551965981637389317416707282481119486049365076243278733166430018311237516490075340443824276822007672615268015798949111480475546643944366302932590213584453011326932291757186000877353772047951591589272855648048014283902185851400561298008155997007564637140683467640748804363075274048014745737490280313124484432845773759386720057490249233825962397918069191119550001984889251271095363057084832230987007368493588062259780072505498543284738825832408485936407143405849528791888667397083551078376457706187984257264331261017279192129256183700414793085941832437219584125255330623487540909269572821952411550365099061101070858405861454041463337340696608620774450407505213020236598343670339848898937124715890085140333888503295560316446783247718117896203217906773828857316726150973146215264912619771896068766335201154201689441608194899430671527332112231225968538767695123379553344702376610047676610461280023081862641919532323698127615546448003777474716553446448182999701947340397521942950886253031767031197546477753451995495197856741923082481222480584872349469957618925519142723719587532042346646017751649582674778684172488039437798177089553030285170292163639193487771733488869667517149219076923849763126367685089217670301315092338366501721829115543868333283817119023967207823749390704018827257964535979001474480699760684962160883485169911503632078182466900455699129944971178687247361395862162314633033070909540417490942669971687995936777278319180778623944115753771805030970353162684574399609946385633769717553372487229718079318259786279579284231974211494577499864119424130972837938106956555854508148864331326820566303108205060098227631431630163582312944998176077577000562937937787430335977412722040851539336262533845166228070418226182443937807312639744410398046762229250154596675559231303521882479199362572756023818018111953388931236813483670963289551201156958787187642087161184653704126075447531047352790576792549335838674123585965560458584459554480904885020024490707909124080110227900782310013447588253715354389326688219640633624463603149328896958264921949931543370326649535637400801498740457026285304877709852770825332712570528736012884465840542850284011821575546045299735153881881715998401349611491862151132667346525704322280468126648664876522261084580464964283306860898605586820546471496009204767979528156509591221640120496507404554936837513119899785874584974712844837109618181566408675419312685255927327914480359656633437985899479058190621705530425572822376946150366034639882063091449890489125965925857847697087879567537069968848736538924684193044489451870598314197176681049391444158279587834792630553666885574189627358687012906378832853445440821384150189312868442283378756403947531289116178153178796069899985550415280675992614538017844508463510444646976882914427361162733447065748322722497897652573383027254028281827943761387459521319947337791858811701527806771125507519577080221581468819848554614428990591054967049687757612624427606649054728753236639422316326509103955615891074196810533894616055214235211712925794133626151548988386821402314934245815157000616460984644096265550054256034599089923506458096660723702825972251345171915593587069517670614067938733260306165254977811326269735650463621856526568416680019031184640976363405769944367306090575099201364605616370261680597287140019002616504769096119374256740738458395928766742164858744009459442008072581939402313996986618218317348741420575336373294138167436308829790689726187992512815910319640440237588928943319085579818908567581487455765215162902493258965624763084537332769242549982101656756151512142684625906419558161138970424041509805087923899470237844154000077494950039297644334562880451046365022492028204549699188465835909626687071254092273018875616348852645088333174061487773304760069030754965028652337789675515920832656160486512010152843200513320492738850025573800421982749908950240050989329943994365138328984937115106060124424706623949424804330682735280186650490936098248509485540069601458703575795295656738810181018210483263085249816040585363386708710922550874767984180516761532479730764166626969058213722907507672736441293910165378896874441902469660499538511738482649167084155358572442771123514907074849653822238826004403164787746723652118918119275955330042216094871128331254837113454261121291998261347752395436119846480609871400113723215858665555234156105844320114764312685243965761425950601682130255321563499995550628437846409790430071133051173418167324389301607664756567701634884499512066541057967724902326734631713682070656005288012266394953795282704342959589454486670117583345081873459055223275447516699487592266692003129805891463290387140771441110091322475331461461215593316388687581610166120080377606723057879917595833785632956002226794850279641173846804599815471309449230485125880905321910645928066063836441034629183796982722974680846079167888758501765194354755389599934104143585182068345705931749539457967461537836770646987221047843012058021030422204668249708133880214591395489514899540302687968123944054963377129432461279147247443478843906099231213156088514378203427808675198201541208332962619965423798587456416552417521452983557901227828629494927234121955461522876336227662472664227034796203753225569053304906373138403882191203113501016485295051496258615889416777621508556911746960345462926536259630382098482304524804360583761807687432113881147036505890316499471435088250794079666713399911145518449186864638796629524365426499956541725350793545001139726856360678486442412390687604827885140347546067162756326086218682445094484171844694073957142223861283377753364599275198073778704380993687825281853135912547733849022094246599849095860846745195134188186430674947633896335447372374807480509707272315021787260352381256466511813395631664332349635837311007224530749761424651929384069307784658831791954974576251214532298683215184840319875342527647281837590755746873828157832288780189375963452467889465735358894420322216575742792766496661951486237634827899169877432746445642272101876425851758151088645559359343251343791056718335687313440798647509152987421455096447042081685429125400250483548160514045549551297833921363137941593919004365653156625773415807807146844530104458114394710658348391658019652183295535887968648911386333305333487400641963110819501465426319729940995773405677349355242498130417021365626935380596485059186291956001116811599414217683236702257379742540020194619187735564454431367809957655751104141406491279574423858784416224862914990628439789182266835534961275825129482385947790438376125369971104467256349270754015607864401128749137674402968781523112497906884837055198850509823498054939865893191823395952596646172490456397031363200561215970907305865196325770995169715726904657479662558817065442523186746385803900663132376516325321828778929973802946433463590963758560770807405812499420530083976913871367906207799407328907216797309346623627986010976846031843973571658014853256553022407330459867976474626619440853905927071965495598266197603861150783304865893749582769634277379592528424387603671239242758980864474653999624979823251379169270776431644800543311350080987449268052150513758826537973632914589399546162751971800985134095486112329532580549567462101482331445578701147383769176871176295844423352042998658117761079805875523332443708764693591134224274931326019802831754100651959251005847248722860070407659940609949256691514837685505983639903171046256609483473532697418941722186500235102437590420205521959946988022364680417235831756065693988101466021220022674846049936023150289914504428424945005274542358159996264808934250270656615388465774501134539325505137227601211164144728347741447238240479455407227441787467864124055719093999353232367693149692924770841941413364995716754800992242612662124621735614462246143018883047852998822588723758157048872417417320298293418326878220485646987816845348163133209075430700947914603934465597236656422921626520101539852915496965413901037383768538811120376098207628101585871832418732356572484295483797908211010285147401299415488036557369484742949992465262135759562661068296754753255253390118695748041481892843200322668993280015912183408316136194350396865930722536168351192526341006418545613178242980286861466437142710975160451385127353449789308425072380449463586248547324572566849144737578268846544031400233243107454973115807460872979694102062043482776911217321721294460886280704354328197271146816690590869859674881802718752828517892905760644530506295486924180249700014727910855737424629474099711157486056837990559213953705314135389383896320411019447850113028782079610344728731022994285475342502312640287743533973314838441210060501636579810619024290381591965708952800399797596299268091707557361682821332321242623927920918714680129993627543965426784210370835914047568999827335382319670395272450976831509708231678459181776410133359912056548675844394870962366828268123503569428237896152570100683779011348464911631965748474062210946662049806840981663350948313337936854803832929639731766678339900314118636005630724061630340317166329983125710602400059622293515512376997340287321625208786991151873558083579750968319690529052695191981102851222557189612932741477342898070685412541125789078572099419626327416663658872254584991184422707628096234837774484994404184691669503379176801554881819753129486323682555458647976565511871894317773867113480381657009502892239551675028028791457211647454198226147855675885387128866310507672725881253048964399979687815869423168114998100115349077001576946066699422626365097489176054005113945974224693588237620130608525971329266173222355656360937679690407727014598575499826352245590386710071790224733171147544446360266615116395884049711055628892322288706075467138851528341681869489307955733765386921475806963677352625801167005862046303342411649013734456760907447015813152595190615145372669222853400279371772770309794159168065800060837660160857453013925114128176988592670682792901064241744870782920937119170675829056532936293050229411301632209602421580189351836751901130185099444916007847175691256778388834470130057350721400102909609177449795249838898652634817112232682306731650080665585669209738891832273817874920098182090711169136516228741310117038638959788675060564260865546649125538310116876995213301801764761432000339420856495056653218560642352948290520887616898928464816445466851788224237750246241881667539487550812338689917665917681103728396989755109580393376154435371709201194687804696883095545788791716081627486666074061618555959087054333519871975957611343268828490817968081368149663578873582275136811919996138425761784273605702113960159980888979331985979597588740382332707091305912148831966834951626640537192123661463707857187283067744027473325553293708954544846181912878306666091347609725143023830059107423211810302371237629995183430972620694177533404472820294075938429617523373096841891159263893139251023202570424226076457939562898343929587165286551294051008275879876278893468764658176016091986380253550414252309482163481478582548898743321605738625033208584498205280269212695173814879585864115924237621953416270600166892249305087284717325162074903124635773650052193577105055568867457795624011271828353673010140267476083167135779909886565053434607355495194780696763949197413818503319310072780334049296191406330382673068265514223423643128647722994887473039754129246286651679180316293863439019309997772814253888589492868042085390277836977073891801707082976756794346011398672562002938906778755299922015086005786387288906800542178741201896218853597651323890774640306317501621351725745659019373742509464543523834332880711641939789066936853714557588851085178165701197958944232432044874634633287467217082232339736721126623935563281746163158044850355532983568872796077801008768872665824558192882930993031145311805344275749979319329719774507818452494089980536297297284278627686723779859870981205542024629618518153802749508331631678183712241219040869226146038168087462756198729491366431670715092029246559649729772198441283209432449387403660177379368299201408048391028302685521700707711737147236480126517518137988896644303509990682164166373267466049192402891049706465317927025965603947691004252731777358481431793547073750572634911151582338710106790906619787166399284734362428097229225277823968019418652925994094028636467096697884826507717180614625837649191758011177221560199784285653544264179948084437586803098702144457339416432175219833566631419869995622305523321270969796316585817662222523051478406661069048666340307965829599169913661572647185018742183030516285864230104602368381562468555197448417125454492153420418833593920336823589672562824604844971048420747498875432529165469808056781222035265551247422926780543564682683904248784283946016281362360239754955342510801122384320399024300060698371001675581227995051469404641918861685970051756083679640073126125865928981355983243025251834966001571488941407552425256676106108575877707898923089718058027246959314885646449026244701114194282704922164835010036232138340033525507724909730730482658826717168293606223618394139787446765734453456448504364710305118376403865049632221664945382721640344914461541273366435167860058873075886583252140011178330034522335010703080796423933843595291934488593763190056298838527377586175298208696771318086604158684727189465130783176615875059067559794926139231034655447158987551339128219494165672253621970913823966467108796254121851119218294484461385761427343156065619675186765194582655201788693151218377463360158980030981235441159510155870262795856068556360818109655080159299459408963660742837807077545632564631025539923762783395093387634729764880086595030426870772454186804853307939069953191726250572422619850144275269050837539071955457054621996339047283872498789227698921767806543130089112385879254169292213462681428971010625026235842462495719854355533724920081652517173514269959335710090137579227567348479840061311801476430804519348943914459943007801252624075704999897387650548660156496173307712894017786329793414104884735216129982237243401436588755869723454292354050079670598549970527645326345393236344322018575166174969586976579460789420587929813285886883824865603223155426646033642119201681149619574894662095209074311606278798862219557837929228992868857282812639492475453069913163808430176370247888669020674681458589626637519171294249137637046586285738033351826025513525756738722478443007570266144175708058066288025082960075123494777458830816984621971636598931618971937231636380473684472425046442054032719977563669771817326156589499472982020778413472272071326172266484541852655151390142981579485500440319913914908008100663489559637382666570815247305867591472174844368170510173424546432728084630797469977953418395371391443380137020224009975435971223105788587554804745457295142004897402037217245372876510367105872472015218864354252641455196921837710592036284090623780123281930600435881785844850272728848642933082576706060809094297837788836971384761940066623411683359032223498876308884837610799403806578522085227581975541297805437833189030661443017768213400728263301881544764237626912602883190297674487461724173290976452410580418560758046328425596027189845307586688779986486045917592551611274962460744628980444176587805145515588999664881021429698514845584459079554920287768169992572212962565842762199859172848362472713419116907160155900415236703110183524308711065641643846379123397642763613149569835316206852496570962533661632312748050940178812298901255550296696709747375200301204694418128420383620174497191906454464476616936589125202989987058967826234938276796340104922463911760247023313226399205239482533303027102754730649842816420802998410422371525443582043675612824420353562173600992313455263198646774229850844826843594855736755625902878208954239290813603329366135260485645195281503638472616318633740220493269241324381383788744143923847406417247072258529819529538247732978758456652847674455302352790550253359322043957574878780421149159349206111470137889308016353086252938791483596974277720298490371963643809890046092264184135125805984742574768234057367618543361982051895617064454005524574347925193981925523274945743263445208748330635343613057695800270039151144050898794398139650614362114656605002073422361432580300109694485285629471174321629621111545775266653220811084504832482301849208960659561756393528513305147936492407958130940840117947875141345907602995162459194277326672290907034819264255409080651256361186744633722111862412946817944794923039167787311840991496108194871204952228313546052212746057259322313365219452697289127204415145095647543765321853042623025081239818968134093156076341965092060505820676233944009763339779202416393445308076102141313533445063645066407557718341934281732525771463411268574505320723512304861587399078968494630734106952014504637712124850411120996383977956075707954157732176792726063730679834243428304619771068971812579135310819538821197602059676474568308064927232799690432101358443610070258178563141478118590862985426487048603854464735081549306068827298702166541088565447364302989595095014364585989354733838937635164442934223033134421409750258138637000635482882282243762760109714390241384138613527589495717213732137393995324840726255593034042651051804513134560468930927291742136875041896934250492292851861133295272510651739363262718072317357050833793470646600454069414380368790327075595266806596798615305294235797844986870796013771746353386207270943826000025796671894584914700073159379158999296258575345543315216436027074071845910545117419636296960174596259887340525943231161156214014922905369177123105866639680475720737116524263054108318378128692692148110034269544844924383298384012843319032981037240108866556441824529104998926000937743729102704429135599030751996288152142182462466255098730225829425622741132158319394066808805057423514792830261165773606727844488230211146455846177269450953279851768836972327836096519945322329857789767474369483835156018370858418370144748101837820534650763015736748502824846983159673387248307230533073456027262424184939440554853949679619483727176262092037044661228309790723298872580676287334424776543334912319715339761308723291357319043334584462831813517420285836051667272038813108482457516323785695939282491475821727684823641012613806470312611791175143129047707441527273873181365228906796027705916033054150749638289576860644071413691605277043689721682209628478035711096279709766696699479853061532003801990351645305424431441624837118334106693417385947542653378115193985206905667306766394352923426153237625986579781292109072255705760945178346711503108408114669781901767352167233964373867165089799017990698497386474260355168061824588977587974251970715862204205904925798930010809385507525403939160627139332058440675814032035257979199400028204804840028773557421930356984856775921113266463857465684752347305972351286168614888790478116204221287567687507878342713587243160629887997554615112346022452611955540669477643696147355039869638464510172913416681380173713180231461150591470469322130407398512229820138431080421356813176640416767215553404798746320815537853954496738695309601308050843663571706426405349246126101424973875850109329185728343235208368525826783432304292023113964227817180236428436321458389136396683212997390512930422163502700730701965395313259270445976163866950167918691523997322639435815458972953285214581933961362503720656667894674441283390734657672958877553839749491997517053556259821137657735261102080462673255020464169844261939412318702169318025705232326423318266880481731812562736074336881033200089984032831305936164629063145012649376024770424048883676215498317719747704557738962300637190689738401088866433804030904094628374024868287489603684938022834222000850424817969929476896778015084745196045670977379823809806934236946759030677416161365745693960741938526752366797251559716952748415903092024734174935476283895673200783260200233448302254943030836107602554647908999325041047863955804121902241795345837258969030628785042070075881035686711103393925233532404806437243356584789014766358695541003510213589975825081739941266304815843021620020763798602217356663084608571766113432449388244782943317242945304757977072037516681038148235214459089670899871662655607598260310360533453836920000135751569580339450450501741616281054317134989709134582131307639242792789132986839117561581161077739771734140984730535258535355714213296292711938324628222617503985209914393116843863161442426409349365213786289389419056167753209599508122619151099303781916393558221961350631376814435737701287499343795270147297770494997070460159618942856296661707075578653499787269543089757288949892309283993169209840168321843631562318622287518730247522939007473211953210198257602714671143951995512812911029224051188086825386390081046491325766921645426418937876728946250027125307154200616788703057631294692164357472736299759046538506569964433515311719125214510792005382449898842960279513464307661357852402083042837168537787387951420272344214605241674293495399103070616923169286934897950684419977995749694751388371721614403936688035798588820872324810163103440302244616500906153997952417775186753118439583216428407023598793982812212207395205219828414672358682800479510399034132998094462458584991074633569886645916407601997105170626245051538699483019882206464244216473022707866050899013491861020624167268687761966328249735242072561393608398190859587568709816769149244876585963820734187116661471143755732408386430561460314551064476245250396761809560100804248510775901554297798307820475686397204665989032319247416194258133390012957087506245147267920685788127806336093318131417954855155013936378736716713499323990338143253845175842122971920729218721561078355408247830797154000295755551551909502591698400720676368362732901257270903750865739067332509414740757144558184885656070695836181150448052128582274706902161061627360064075762748162581073391475094403301532627645914946950536093219145238653643991339300389137919766995742889510855225207984524795542723635127608444237968054810657226168569318251713871087474053780345951871633722283314293082830493965703103292326047394083199473998389872472143012367022515280202678478151493030625995160018799306006978884321826308877752732093548967389557790056730945512053366324495354172695296249699557088234964738360720233647172732481391631500667068728672427116754748560238898850087216985784617246297280215891093103301182798385916174824758234395804669106994848409828377336122166732942355198866596740959178909563258605595859237528099095419080990720796847389819885899525547121776150907245031785302320234325324285309494983240040754373663144628419610709424582336446695476096948495566545320691058458942569133642528907477814377957486554617838108384295203381778640994585233110585073913653912544466784642575897890269184147074983487427500374324165320001862208947414226532752335481024258514644833303634611234047912524151411592429853631000843854426105768380238996931337454004110741645409750185551901051937390627254091348006608011827907373619774411669108269705191285719302799983074083670426837193130872934006281958945963710263004198332545176966106269213075214027765165289178583515424953205399766900132812633918628500960002580742093530473291175555522462001052380118471026662079175171481000998851611319330880452429857640604192922901558271292507347211908246482926912829349658624526871897238472031888204841474192559073577070598024687532080435277038771452845781620350828881186141421196885624654855281878077491096903655301975461574301087629273268299183393138737948580056457874530211309273436759827603657797467667810399981038053432281427372939534418309823157438604990218432773217457614593353616454028937209933665523872958708034222939461716772348951800660145047068291085308498426499786362304068515581954819188184253973603544801030994771690111376768461947940496377204448802959902268390526484294675519910090022426158434299169624016214927403755740493642172947209583331160572891223082716747907675639978459607873194670026927339322721516709716343424764861098929567452994360264629864141737522803302625540884697611996818267778418098433683800506904728346179286753380509711056913465988016899178570337968707297225108358685856019869349692994497021640883687803043832204627943884755811739195407744739954904070387961491849149637134501008293616813667958790285558260547492337844738600450121581447390592368555895251239782976702830166559668299482321706951253007549519712838679787348203530510318887796462634572726612117460739989187095298000433257211068937786917859246083958704023034322543845398634065319316566660490858797897918474821037494576856962521802613194859479809603864599663079470284356794775177158420064522284953213492411806084226795246769701647220133472127283607201617467969058405518716172202979699953476920731403732947277914944539060698797553120294797853158814567692464377208273325751840824769142384967220606327552840212800884089542523743996412631255432433122448465639910535214699252174009061098648099558253868468226493521501911981447440113676953558667616540394953959662806092371416874545163698551483814710979546264317210060862141692529672040112268083849892123018947076118488995669081605584121228023133289625294483203758752649410735414756781743716731796216424174722198215493490267871688468113325613516819216014527506789119092888775467301989023083440678222500210759105955024439758227234127233204844012633250224596592610657114941675558238441789549605151854892775633247771912826520454088204624134017719868401273851512086765740931549487971806118320222021115248792750661746000817863962157612624940432514037313504580879121149870606726318113709885465087741510839195964595967121612865746252737570953928450267253489578493001863235277314577763528069113775697322534278393531637731894213893377452727075046751980657425832198976843353651855347655868234268289641960532386040141427509443733913680296253179241193108034153869684708252163803983644390726925093821149264572940318769488478131024019475699197072463156500089494900679807885114820971479415040737303787180037430974943203934720711232438526547973089103439732059519611098270188579671319592949544408614590184861686172204902025182765519000054635852607297219419166517915443357982851183426731155022297936714291887211474307760152994648139410137680987204152310255760018570773621188174539090846680592040141958597762303267525965631599333358622033407890524138753054220840283944759884367591393825578577799666126917542103693746292661037233021937806090659309379015719343777969453050409004340971939628315430951135072240538275392990779447615673340378318491369251182755309801117161339185038580898987748667414900549097992004668177830076985580094542253376482292389201948862750145155298092329963437665774677571786418243084139479037792464371152721361334691682141969949868343462015135752834890139567109146553080622064567528936245430819231065580708345971018707393525329377369043754605902005428271989994370190351986064130573728999728929677853899304736485511023817320743264901174019769281798594781411069472438591279565702697256318874418763352103989579480083281675384757977441538766315190636365920707839533530072064544845087378628191739624458404224667127949696929685198436460153916242188785978888058572692632243452163173869836943655607882776094970343237177621463511246543962618879989264424635356052683520527598419511115574238797909603709698556831714327826392757226845252755327392920640327659335338409954617099547161210519152552789833652586681804032682479454088309508667300850862547124647031545426345320676289160345684633030450865150149099831317091282190734564402962360575613596784920103828408785172905183937211150584539728277485452084297072511870684373379279241429560473348656641396581844704707456485459310664759232662744676557014667194717611035624258299771516260645071509516763587590536444803896565095192359852005028542813079033846828713482361690838286412697393344438803908014153731527886057327670633052046936192810619164071156712389611700892048912204099602898293426566332674124473366416826460230593629503926558354671689133331297094259318719037033756469764736741030935793652195605703619962178621543463638884918020469699964129417743022532468442555277670935092160491476225194122374944942817493694295449284606262889328816048336702045345724196353835128400765678741664003904467036099496268325469693344769808012385842550764303516892095349429589781093640914794742331904132354525435676417830411067816044185790900178702857770601261459561897604325238910735903242609638859605081113857270744113139199310471920762984099393472934284184126058940034203718300059431148754084364841348008794886956800170755583857632544737693641261972370563741588034336512125321659618938804998959148284045833667748740796768246329158111135868148463206718930771707883957473344046129187526921464280309840938802971813777230204110020429598100054513285345187866156109459634201839634437279616896367503847477814136607791030536836706523427885713157613740662440483055838048861950251457195224609645231284328264158519945861656690774251404618809685206394710480699039810786192410289241377986368965461335541041688138668236963711071328697977439103175906380654993296876580608505696433145970091518659904025685520950220403302671996783964042644202331035314842612840072068190239995645870610799745855183826560044686678084330127324501759051727091935432827942648509171254023534569596821481432212093667254405147779097583635944119563942674566166956341866188942466856650571458076841349656122642742962838954132523599948904016255733711653006313932927662883111759459539453562464791488937373932030974841453333721671301257329246434031834742584446708359001397947841576578165564548725002965667189672687053663898181820709866154951198805812026211700580758988446762303113830887807806738407179202183316198040679748639332973784775506667907561516784906902769143883007180412841845696939674665736701922878757986989321271431042041462816228064615420564065702420913929002439135034186632875686417189712511399777522478691186113826896816822372018451603633158074506950818117984271386737628695428961267244433878110917218251478088243614526690943065022130151888623246891238367989624017103268646624498007074473150488196935792097222113693206721611088759736497207399843769080187701355962535226279526880321303481217481035650553471769732999715855415399758284352589567246684287465672630573154414954356415502122270977067944848784554519644053027218932752084705674275868129483965203212502357962046812930084562515117925786201807076957065862520059911915915988207437770521485813703229673787792009428827012918600894266282631348109678263281882522141192128376194492777419088270478301539934645914730339024165926998071905806819288980155545128658957443153374266161885964044523048472181262670857702143804777195772341381797597210500972387197292116764797534165941474530122149671754248661935749862885989392141229235073139084495961685570802377621748220377655323590146332675160642370644913828210496024813153576971537646283434912846155695989616350272933619673881689550985176933196579017362462402248266117802783276651189719251511013892736647757703666801078717667191684235354033899457456806588292584334775499961588146965782478166209259318540918245569720091740363277357964953726970231147342145869871328121050229600753337288575948849538324146612366968603293247279455155947688605338229941316827388368537458172000125527139643183851203248483055501742097072126605121809986481552113929535979202356268714305093056621287170306027077393851671845100068042249824586233904693784696708235639924894104793718046526534973389488513310185444113693427881510303199507561011039465947092355256517631478841168606257062462331284511720909135018652697528547265995353991544163651112443433140587479226530556480952632300491293861653551197456071976935088603035271840510257701882464146666859664878143207516332238320118144516500810893971508111229704779056241223530113471942514110031674673000740482358425883664948915675014646192044639256436319421645539542137712621897832862675525269400576362182898059041871431735670975653305170398678343065728493855075041590302096467280714665961683019623646851537673239888486183889497476341059521242587849646820244058671767491318344962828689036134904427196243006926759050710714789531098543698687305752102208039385337244431376711261912107501050994511016986375754462767063047044744188575694487392002492074509347165094026186476076552100987307401704380537589581728808421581994850910102566229560262922451702640040260034243006726681205312886864801992659006487836973709084210656406299918259414814784263592680998416781968063900063158845697810232771570220090223677168951521964918142540740806055756785337454063530891475733348684479411709595101333104610237571447683737717832628566573563564782474311731229912190880686933791797900267526607720115989598518718659013813942867645760694942148552895748817208473547092034310429296457955199679982088741986072774650903236554881531374854547935947182782426354672537192324317327960822658026050437677727916858225242077854207411666457599837004212920345363212345856650963257209782012518204586225307754985935481694507991068527424823398403335970353589281228340473225862233262206885391074275227087094983357520376505246976982953657663677106051034290700319654999583908524084073495904898860136474131031663317580871869860312276422433957857721073812151007475033462643825059488221232811017311729609654819872836886238716020846636037155026586351106579617264831832467523537372195858474937539583019798214729174758638678073516575894943253991099493690210163309247850444018396439770672214860950230859794176147420912007620106799454050631923371991864444998048945302997526319528051797642156265703467650714210561002307042658032211610723832420881609204727247426500818388953669848171691274585276097080124515889050547561784499504054466905548743634881819612188960599920249779858819826323557148442909533134677383350167225283909914690559659437317113006422872353558135770372827244485466669321399117231688915896500695150683048900808171398811776038083412776650428716665879308021995229944036376936018282515233786817161712259844619146281822462996622780884660252811371479862256775327709503516576400671103268178703970785564066641324399853614108809073858850388524677044976444021885986138340882853910373757425930332172567611397789171362937974496692138158127209748203541512462109167614954539480308020279468956593033369407457904981140296882368014793194691116838353193287829632754491893273152221906565368736213305489939259790024428009525178414183097952041510519264839427503790826474371826249112030395548629645118863391840925125665247425308917007211623137549984885967315533551984966288827659584930524974234721312383981232189393194459257386187134549095260768253271378383173257800688818186403214285324062755814299351563544445260488325094514664465846333850126183083070466255545335022987190882383143551442617121885684463983597951727402706112955141515770056212364270121221060439030151175743503210493143655470580362181554107718190884629007564560354350321940498531084083986030053718050847120940769401417885498888439131857525645610352182200875575634440904464498026441832714827472346780950398821318771673909631191054879499990364739652554128703007390997766994003258536459340733242638425197256860188956720741676105105695393515783905202684756012739990340749830709699776354921693325138780038323854641251886683031141014933817788124497878276774882051121536428131607715753707309783244025133062231589357593992309630119183117422083383677077510887682682552716651478128069436262734683602853130087299308449876249122396229324867205418551176913262577874616611737254800972237119514671675030769264086022261565803024935676935226308680009261911511976535436195089491459406084160733808688050925552878126863851524233820473117617022078769471262738881852631172593101326002053030178189829993323008467020045319300411894010013498228707321323451726991778539569723061748062220741118314468791035053741082834298889988004492310201144551608943571694993475133214302779573783273616329724505365316263695018471312124263330522800379714967657231101710424145455343154932361124722161213707743413456253586220405288321395420469359581402259607865075965684226906803100189184118584123710717313169410972244410127016188497926384632734260514765151658668834685663262898038208570751352709747694473525732046859650215222482345065522789870870922816884095295676033590365722514576508371165811619209155747302712151504836428400266888028540887363014585021518578583107370689855900712529939019214042869813802140395606871805957550096153989937385784136861287803249443753595152604349766502711639953535625808717676515879893394605141447475315321963123211402229775052631030788064958575761696559989409356970386086018354696226032124037393434659541900828019988252426589299141026637364623824606222323263363841589239549426790855393276225873745107359352366939841643391455884464373177846293916204913264183711973286033583926206931390181019850458946149743267967645577993709063071017870716058864049860844930897490716570829076230856081158471383106309767187806473830193072304211677759170252120048459169124680301834547987089614830205458722473274339793729029452817751832826824937811077101828919597651202050755365602052668891623457442728410676691021538756513102867676745711352110759928752422302810204255863027045181187317439754797994404971659828215510419078733450755120907758662097771469922469515385819244012118978451798475989596635748849006598922596788928004895445742612742359275909130800764931555515572519525679804630985252299024724584141762576190734209957910145091149746681631578040821331918315933885399978627540822647852269790863995005673863609697728832611245217796303674335795084403501804066835588433340661637302097665392041553164024780941223681251265101025957230261251943659882292389653775351985761150925846686191342290641735919513908927998578897096655262017039014677479492980116881783274978009087993237943675098579832714642937308626644385514328267847441738629427273145157261236074766241479620375934052103494688901305278237340742884600418984631063855071086965008977849010100745950956863748820904106602926561150460767437897295810432677727950103328287460666385316144556211404588978189910001419761757083171807976665315834027904318809586514168450133694891105167717715621095592314039535658962729226098108336995512498354759918349468265182035593311616549432831140560906514104949687330944684321293917408832342071866614747255148607359540904696727888346214581658339038904491288139338746972093037605053600007144066742025924294991175948646552063175360653982176371086270737386441446793084016262984129994118306222929408791735269194365977744543023311560877750562016280478504154219834684116409922122968645306821375720684110645713121811541598406323932425719377050679160305551123073149965196249797946378618310250446235069078025487394699029531340714777936335228770654935763568298571319199918102938245312912062993089512457934364657109721968540399518838509755321146985725071821700255781510402781042040616991555944733042692206856703996225523813076701628559817635650416877862072081863948516625341491227072908991577455485341562292382659413950730022182389640611891019370818951124741994409275457606124003953167425334230289328138995508184320386636944550391998363362925843723150996432221017502910999553414173356033030467873868241524299804979949460047240568932306972325607335574232633054732336359136083049365700390742454651233470567919614512477264604957542614015185847461448851309424071328776617866348412918279447564874914006838178986687608606793059138379026112131678710815922367186838231907622703258011320365026397870147902474690921064304048487048096682916563434534817230453288567194756449392747801911631703387957771284418608829891514829335986428115680849066110682499616317721115759918598947656559156334828708085038651693784310809863979635205040243469002627785290357642683866349574015414459911318270814770683285934894986988154873402167210375533695699117368655010796403740174539506964827850593709802080572379371930231502268783320602356439840625827317755751208125961644593263629775116321603188882670937875472543685720928032395289604833990365062548712486256492766766690659422241710797163922117257433786202915959669257661417366843241953199708315641774565632963373502536024024107714178640745267863388638101376006784666160208704034559909083154406533877021337602925651501124532975459632088104226446552692384698374670726952954749957765586710433489777253295614968663103899879252866031321414125433849184481523887715286590973544917661801322449234658664244241328218264579243383978095894158146937345973563329398495610256053443514408636815833115806154801545697422494568251182885033038589515928955854683566875789475858371188492231769789290506056561796240276358866939287318039111941919211809311948759015847220355203986544085029159986043733567519480458667602899634136773282594142737844682561288997074287547757643372618632327191350008080958506486559641663047146811917513428594353688474162598884113833102217854198212618271335868319043179901989580885003023219999901777850235309012013851182713725666456185531150700452607992088062933604874042037745069717776958682554522738042717992027131774908942347780975499094746688004448974865058152916403073395344244923188933733565161414100762039815032013108733189140445716987783969526285629872523831480393749556306054224451316619015221663253320223091747530827784929427236417893176222433758649334204338699923550077405830884269773470220789346766943077733618566937242766078185842547893628583145352733791464951881755284418630559151951713215049838910539308086806262923369978593757224303717241289330325932833056745212306402927378834508790399545127992986144019260575444007365742481880496907530491596311655927363289807077330363898947795908177624274845131559103620518229243589058365026006195840905685542732209170322694436054354254311357878289105095073035973897888484229080930761971510356809728049831951138279569570258552768998039677590015707872369830424824188631792412804082451158774115513001844896916645145169979222529195857054250979776927472639872285314949796501130512847023608916396202422828811993803479797284816855484796079845893805622697495067109201149971234492439468690142061421350613195229536564532030712115155186779499799422391359071981475954412188241059737877621450639997779858472563783442710549498765292986769745808635281450028051309564156131162781134427531500477856167596104986191024352500141858398534911003894078064296743370056459681438920403262936246145251151566556810155331649974431683690527547067244005857641721345558000771086581576371227378252627845734586684793493542008550611607856283077473048073850727240462281959347374686309524882017721753670575483123909519118363641709734015253423393039655664244210698854825845637814416154723399771850711305082055269280708107192227278620382742157649487003834886123790163398563925522387714162434521735463751375610071864678767825746128427962284026178382441206850984847809799878591507238068490207740088880482282371890051763635713236808803602197500065529042900866473620069535697975973406555705792121394741516200073819989138755018713121567642426246756314951101463690353954658386715423404582367072146774515124656679250564896301861346768316479238789115921203121648962640725977308470157901337696964140187195105905622687840923314055619581894798308829588150878416287864957497090669820049763189965194247492383641175223751235607446310862103435451768725318084730567747999235810968071881534778295490558395126492480351414767629510585494089615152123150944878128890359584948199774287289163215704480272460900412785633264908806743851026071894656249018825940441873051665735320559829886018774447938126583100156588786377062574209548048117982136747569683022359281986394518172778809096272615767508359383443440341366018421726298606615242614719581269860788104470658241119776434125547712102008405661416848414836850266590260693378586892711232170320040090672177587189399278406767550736522790181536527804141671827502597666826046174300230827818682941918083606611030947579816739574412273316130704982250966476206566063286344157131406644603211477997229933199958178597290801163345035073511958749456352935537359035963796428088258741980922980932782654259124865162278387046761984912037463364553912627519032660315985959580193146938545785877443465067880679714445490439623820588801731451285977550101173147282847562845570732461594259215030397992593033626973028148558860552992992031798034049193905868004570738281037762539659777909417207918311939486920749025276301749737055291000477237267812148039752645878825219486467922238183415864370703852779435725037757303637256138199682149189172895322116820423362732750627661336652962701740204220967773117153512418955282391327246246686329578294184570189742204394955764130904858038559031087614207350972312147749190021404224263371424560181276287240475029242250078284481398551888132118864649625824139336135031100063672613043034614058411642644550488321465580923196861628391333292214009705665377554282980126138659559074616388771540813799558741293164844460083878771323157310462723413415249143925159372919920009946572897651679030854176488836315109075666789605659578048275308247895074604191129957302273202256207413789658392106807040910284490132564540561210321420692736604707846103559620447130361629029585932598391218784066896083191702663849419960859138450045010716259854992839611492297939643280075016407255251740024286529593587883352453672349105191697140769179283352209325064880196826637844694408625203095529978063782805815626849546739174833179176343678458657882251485843973363213276451333696058156568740527831989424989797401217107539936430874886695979970483840633932841229948857587423628305669588767586014483962399207173220768063177025399666433043326444120542502624296168685160404547844097435281999137921436333006507648967473376716071770905131902678162494154448693004384616264431893046906622142269069575530340190793734400717568817791543386493872666738612092731555025404549567751610909771951015559676521065495323629809237774285543968996177923594283823789479046406158989355724702116642818920056083574132652618657901751926764360378223608270776367918755387546653853895217985076081585538604292687490857856094563480479072935381317626017792167983977224446617245468591780573079792886175870424771164388340861800965630958258230759677605582641405681421733928655798005415072335076267700391901859644589659381153747495072500595789004156296451253660278594552193163690848475059794952394726575127231274896500532831528157922152838497712536618287553720083158186411415969976719913577128077674916394425944700105093930395242082182118477342932935938521069272314047287294382748013452680911270314924316617435620447752462251401090490916634063014405901196528596330772516726559578482997883607804261827618398999971078527932189804348369637501485745125987054601838781145871757353733672124148504268396978426313947435634574694340278495394047719025719540932195318260416644443849306669496960660028640243338621662199901993580515902433309843728799523750025541300141247156433134549025346103607800373437652435811140770339381556210252352567090796640518268196755452084930255847572031525294001280621845258927715757200462475929740019190278530832394847611197064743379015003600050584259174134059306337377752146041400049518661483420036079023406061150085781904877930701898284771780226398778584310219991642992670035477407075574008784695672556494522975363970049528740536550189100202466672249986260727526074062414157641701769621305839618433301119866975514357596380885107898638324043020537914300663123685519403030173502802329247346285941073692197513975598300558923244259033319587884466993430466746911592771875750206082449418758034739425352516408330574342312539747579616337101999540093806514673937910625524486518250230279560776483202756774864859977509815765512647269529772596880295449803968060877256749972879355998360712929024490663186571108110892160967013669875636695411741591022581636168782556902041660210477907258103391549383148419634707563953145582831840877161083094163866382858535918657257955471245717865201150177929565572360276329901094683739294808481620952448529260948233871357840725414334628495626489719692321656843675517216116100371069025280075604113228766095382078882647416635260068459201669587402940481194760610407126122597600527401577483065500367848064327888800148072243820089466960199701260839321510656491936042640897161223658975102618194992943832961028775840119890733895853926682004786822267363142813392706257108473236289571984921393481147466592860053568788864835608558741578622037432032238688724571479874584483949996342011876065292029412671478522478798644767607078917210267404962430929594498860710978075776179434001990868110901557153427964576400400708496833020762577845848503599348680979882959730175702070586844945853997657227377002458376769618641971927189977218558527014580762159747120811392321787860290554704784949213267049254379276864689767629347668022585170912296129815556883273061915186703020373174736874075488997818116879582564279640527396803139666684471732700036710491865072044779336208883760460795342601113246986445122696362463743099340352423952931468871686054039055509955496336420099193584687886459009699562541524817688701616586020876943341310730392306922928307117374401805972426045257686989022193673487178383687613883544688884402388999991419327275770346174965961882086561771735683808740119233755610461300469112834280371964912910256168181483949075532657443596424653516425014491009950648918190010998934718902705908467901840531855458778944775927387781843494200205125504670061655461210579204805700909221951049049419165646404003653007646713261054270895542145854753683651688918378533269826024911153593262017046755227343689965718761826688999705632724113128048745775956824608051039383460856518364576202750685495741059093612686433620030686302543229179000177171602983585564409953182634175304757000361959832961978959928733705509823003338165280710844954686483954192305701875902935913812201976234812015866952831663528916417750897609526898270572502101547672703730632626813596849958191940822559333939859923973253563561439843714700773878312274480849511649339852810565031165132224768419960349193746580328400317214047564423222295174981876199071662385407822949241677194690406746282583485546534429070341052689958545207378754593952096965811899041497009255401385788251416588670947685311324080054635944052462595269763031430947002758166907857087280126652319350928420370184889097795841669683723651954340658821644534519136934872524075698657007075021851938940344126072929876913761898367278667002467668740114426803048606474619287073805150227255518254058815088802171636392247436406457078671170832104865766855860513865873592346751947381222357277435994731645149041250813498967013756015131884606126448550921287400053606975310344536033884945225433271938649006218433942273554617056528360258631434266405269694742600018155500740339355226563519904402244246936683244705196704383698092622446266433564304642461521085365506800578057921957673930081209630325824891793487019374566180505272913967540623266096920011297056944880693820323897595753594372215600015278311731137998364707131082310846865268026292372811851827637205866994602656075492680393994717860267460645025453074826935352252671357172455104286803676661311848968473856330163083434413509401513269035183118575834008634163484077806833271926242386392777265069502018437803912373894338798286556179703698256139465095188768688213886278714910410884954736218609776410578473963853800136942128666308568601772276894019178597312017166334404445849187803172820317750682482944535594713078443912591552994815828128786428329480876809767232322016425984507413908354626402837849800892703364706632744504485990928269508457588879069612055721832941750294308359702920576897507526469827558765975294316736921968316576490794025766592596892766514143469449892365449453813860990406757976126716275913071478435531083372225503758140932079083216792508169252514503297203974995137404708813965642459129761152331831014497064143093739003889808588149751121713425538320886564727344017710349988181823888836530626941828880732430564070416573962490340079581060187492732308568604422585708670660850475081091026072535684780684303988050989958518109620573699294037484264741688376551843817550862636014190405554828020857253050565537448948211161319988692176400510090803147145073932071556714871461119290021278727327641876959989687000097722428470198906119461513327723141695292354903534526987087898531388086805570386842564954551337032964363929532507436978314870830527191240253062301277630108922364776487792130245295978365400522595766972566131524927345177599681610071085633219420556916214521487048976178279322906699436267896685272338765617253773028152245838063777024005258501786803745411439495509518090151431745290792156747963960858472201785070419916727189718375401224824904849707511286052303848087160644739715191055355713546222812206940901972031694797356256615356596791942468838618234029684046389056761978433323839701704248712656005030416779504154260583276682676777566548009931224095701864415961293565582077677972873575478834489100601412507461294112038115313087245395113137421534996730241206545403826076928846412773042703166219793835509958737716338019298303356904989251400650004896562319550981410367968517655750206628996569083423877091324602641725040430481358130014436696277255404405228619880557362508817836388970518101783274627757390267725557183513888236862321259120330901032402763814130927193491574443682638247715374415875720966474917336945706487741507408528461490789549616216426090921513562086737143096899178786107480530816444265007358507596883677940962970457630671491483554590110398212836312699543383586849085859374226104588866769030930031185534887232202499608615114566102535350049883245790304968137041061397903937115982760378270898917142552648735530333960528937399395497657184700988445084185194854279429779811539040004287529354643735212355546034714122653966853154789156112389193435441648345094708242284304844341688990301882593107257698716676478151795646491424590451806468543619734075955290037937610557726645435388529324564023038594062054119007096171637477213270589052186453819608780920580874755359070814349017023216885860492750787458665663101841685399921840857979532428101747148778861712451181112029810935756993248302556995776270499260489911334649420224567966902007910100070193353521411358887303764676434172367620346882055624804309132512700246227673755214695564802270030695829731379939625580928681188307569092749439899277199656963213093335981757203240711825382059610360467236040398098361889745835925071686686222413254467800450837667041076337214345564569758229883386881849677702565133445787782050508992228963017945915074855587618282243171719932611008211773806709721153157224733093321999211576036437909363862946921664128961646586061044615391565263221977214140911582516728754352047414176612118248128500277510877173785523486782493939505166836410154532118145691147262667837125278810729153621286985522376540683840633093463893002548447470087079974812184849553354825554112022927447634687399304673703328717167609887721689091552102950746695834088813055891553131270281244469703037938190327859514177617272456240393463217631029426546976387424266125525738618966338664855813497728658370157293568404749115906806772329073470106055438261258662446183527533147935456581453816163899400578216792985520055195228229630903888191180833143189547351757346444148801244701529408229914583912513016216299376428536123175706949568297399953196891124989593829735476859536989721634645052035777460429195260128711113976894108707963542631992327243263718579692179832622873375036511922952376234388409033583233920279460333964305865947398825965934988809342973716648099918314821032241713742078956323487099193448024923479998539974386941612816519536157761560702258196850471817534822624255257345403442314571246411427672645520636433781159092016331405652941250133194585328560237387245175486029457269107104383829933638166499657595876083215080125789098048458317869606453669092392500329985346661937918678553494901308036329285315647658999093921999049630619183495218887095725818170867368044169981567207451148850172866445337722480201094077485733141636517250494553675719706993739228463640387823522922811857526870439941684006545455182951675880009013694705162312455595328085501685488343860724486125144510770952311292749737243186373350216152995605438660744973065359275936358193699774146738027862912060292571591229832777740467712214085459871032619904480232194208267854444060045358705310390107022456044127859091292280260684455143941171385603766050582626031819988863160024448424949925337145468329565712770907979070278455857888974762100792390694044414072918642391164682730840248491408120495136563032175009113184026195166430047548955827783368823635755744392811039984672208144416588686974884906122502365390981005746259318563451656089403095072327827614576410319155646062286105026084075118786522977734577919490995540001248080621319111240495900742647684376379348401361909095665170201261226362329948549547379066507976144539060643724042995349106384663268463410108252086125865085256560560570443176175212296482221433216212531596203220445712663720020277446485578652996984163243577809523641563958560621116550521486383901106138956752875073866177572565399165634529958026612781658320309046901351892482757573078168787213595979097726840509851563123490938355934891997545157074413689570256392913552376057415578250100877091450993673963212527295206153030552202285562386824956395257774637844049150888322960156634354726314243489297567539255363966198052902322703812341378035645863831181426433118879640010894468919638586058603453533171230576628322294429121824564117785434476570593048014480456427537897201603217437276414714776072286290239204868358498667990520883626815670947656646582258829794318823161065409677403468664347187822109894779345906254624922392611479999811265252678724138292728530677142147356280672396625321946972896144030771329074553487993158535934465208593007262058353848732134921717068644214847855829609461293073625938408412654020061973505667472716103516002623523986001699489909736056001490448923909025847816757350772499284446857483931774984354951195581005656806451708804358964227756568884942820786894267214476846640956811741422155211693929618062001669360782402547996866237619040679117856679337855039169754749764135037128262286074531048661526760163569053533918768891478035570833504047356909762923138348788417865035943663926678671688647114569716207995728835826251255948835123534964463203593086516038083555566338550387686986220814658292287528981008309305273570226977090135790147953254492211019435493394480342694963838790894510545714748944676814573056501896553599213613247688078360649238304795499301757221592476187798928240926047673395590839432529557224509398261153322958336282259233135288841929995065286236740904879046618747159445061051759223550833801633981210688171066865868721762244368219957293879109766519908443261371625665880786073327613248847659057781629401264070041132257648205859640641445703651301739923298010473817317561058246641183060235826396607559416616124490151867535372229160004912713421844710371347815992034784367267179937758438292647170065250359975754358137001206914255412447250229335787724549467112450811003275854402576438251923908787863209159313778190468279664776252748920862952083205169453312354914490907198684505047804758891282517341464969451023518882458040366381017363290937648454866353375666142253939048104793199263544906821764997065814194763977643936239084597307095366405859671294223982119576126964526590989290487045374971585639846601787859237546758555181251463992962555587843412489580257036454839859267381757943739868795354320713634031757604494811553249991068293233007515915366801758520042603349018258687659958466757853287028898284566389808940683474971247932987373999722490497018277207181411339480355975552884026785827474046159772272077709421168406646975353037391949795040998596620411875443969424377326584893409811208264817811105487459643227134169927543322576121050802892158437483642571663220567186777775772936447881272683350290125342017474663480821000354346234918011855448987407614269752922446586363230883114496998673142196901770709889486730821021282529661103079539957169950671848069994684337955054162391956413194197676955795575671387706095387935616029070786540399130572561246674851416546863931644943428635886896545181453046026831303425821669306605285534876181574057749401785110485821028508622295862530165770453200158636383680788799417157887572705928494420188473320470900072117294862308853927117246897922781531012366273759163632720569085046131984210996884590566260127210925145928511363654193102380687975220799631640177437851233270209873135094408713321508552450305879842880969929382775184296257159581853070106635440029637962352839027494831312220848273267971315582888129238890420979516256912735248166935401404573194331300573315358581877116528104417640831635956569784864785481558779559032629763768810543395128669602489048285058129238830092830991818142239090804845217758760495512225093637751047005656475054524613319974338897687500318148684235013816438481942680985631130686313683702144771191261040168114775995298280609431246594106040183297007287213541219215262779283997673071216396569480079824429123526665101770610023229614950550004551552930312125688342172996457836867107295177130730524726314071626199769304723123200980660009806209905888429185439627886813963351519171410373339290401772674360525443008469761099737146764521862617192993139429370582496831613831022256686284868315694723360348027849585165049181345532640354813081266169401126946953594236638582328367531496301525603521070376839261891916110338343029334509539205763279676934760384828765108814937615821652679606504371657303252079326092717997283888113290368335404280007412193647525052351023407896683388973838876117948418222325356944184183299873826227434384984383012286663640397707323124425202361731334802097881999689967669931823518563158358835939214889697318792387271646408263537311688062483668337541640098868419048310473251400307780891510162153609136143650904785721503570401889991016329841819723606558983951240301581006254017344025994688866573330474058342323249855977666655473324482087231056804626315204944419068766284348470813056132672363391316203791920895965968410637874201730172257867549750113928017583840531992938148363540423951834865685622064899450801314444460132166585700635378393757281822035543865694249463430625925330000148259079053197726674801158142078754077374303566681549726860677799025978637004366080814373667790155979934517720682654856631806984649392252147287040398680755487549564754794113693949786148938762260711319808319747947758595470050683908143385823779361700675342591867285474629791600483696912380610775915149323047179439164939346643748964664516563586313576429434289300375196396322456738446685416114807745946083821115891687063720829402004666784991299145692066010787308160932009712641609745957143846248495185286495219970065245360164609898948031305214145877417640140367862212491106055250449994031911277198765202744167944725650051103135661143352276020889461688947818504396384919615130454067763485559802897763553661521350431055492296457323402242576701120002256223486296331787994680839717119618652838169282228417074116765558017835071296647443259896570885885991671143833595581762345399879870582019124420055109091451863594641416857773172717406004976438562927468892484680671634747303989645236721065761960939626228325294249255897981595869644031091584212851398528872676624293394194033238873525878425160971853622752913112100096970706649818386161000088936195077555606098361947759365316327839303650864676005849616927137435035277490339551924155384381712658013787309057242489854381516005567905213247422479151548195063748911372231035164178633407275700497519587074125886587133388758109855740522049807535265298308435732647121311042491152395132771629202113684332354683366989713986699714143256880699369356326147444761838659748824854893736970099803597926571667503110489968386526420481440647849658629577043161671816141689045886325014724506044943448130004888770450006938531094254430444988315780203461046489876174739746967006719972449456663830091697891775409764302151435630066617171735701617983051876559495300711761858948875837258223153651571970068208081019049640137401696637028681703749992532752033138349850964801477998832385640916562118353842545265841462209704887605393398466973216121038378080231510734385303651273893321467940600723043666317998280843401366058594996178965817336063763218136802276302189046374191959216189254066625356501115546946244792558401234614668578732294866972233788441753675225469470544432121050408287404372435401847173752413890698497484743111901767591435362463851339612898465921318874891091041855445442437126192609297492517618810710879670132566954400215849705025494494732882559379513754088859691810823907314190322231806233187851439942548661614295971191046209069288953645916095051973277915646009398159594698175666833151500161696413965692090780123462569948420385649116927221658652301873877164229357030636214632044113245703122130388699298369595502697620898484692614132923033655694582354784653340837097202777430619053283064926193078826485423660688775126320904349596788230045426469177367435697417044016736851775741480723672572778608228983744270554125388048268658390074227268166002641498668469039496967371440731777930829569121995280055818660226012126561397219393887455465111478946819650876277714823570462486330453113545737565155775216042480045151270738423877355973705627302147387003835475427925852776792312995574411318797739781291627079170769518423557300540203625610529665950859299992130845182614765618113937608535341802859498466496428666581007963339746434626383872893103416509866473879478698867778715871646777233831708425279193015477095870363683274415933679379298167411361439527131938207904681648263415347882734838135676124020354819401121073685211117526439789621075679434232783187298811776111200934966967689243799176609887722479296489490397694746913341368143563048663379605259143556679302026599281595932904470989846727788946162336282970649169666723482425304278985044361392387130811907247259257742863603323359723763180246257038758250416205206262975078569588302568428027431348995503204777530453325390794208758383985146704375471619646985320945729716289285520584912332958211607180592647400061274633051812233324353161736764729368157219642642674560706156032820498519963476051880966186930134378336730130214910897573092093989907756785303938005587574311834461864180429447843806714680769540667716356170171809635723961063675817384650030087473010226944182877223844984507496853685711431996238418315900735336813587772913098225565163447270452752419877754237360375681025252089289605847108264488217849225635085056889754259279269435619996244924605842758712439650046963699122873724743595666909974680478968554048433634216598974014681364496085423607781331341074562486250651765640923100930704166900043316340102465498207759987866538026157368430510903752905398039665540606447766593370264776311343242695415151669394393740260578628338353502873783305798946359919585699609835740820296477054753621395218517077708183256843161505642718446185071279959170279035464841527563172592256888689876207310915506606481234623354823689797955878108128994272836751611094493912729723052344632185987347322993188120262838790309320941015548556540699417356008835896712026374992978787162537631323540549780470697866324076654400360003182787457346734886831703531528292396745414825829852676264294542002926516089882926626084054318318584526624770841362709728585989143374958021838693649956991418106931434294318976450793371789611584560741797087660852071142877308684908684163022497718501748350406154224807313985983203187518713739463941180495150440317402062724411377058348976919170963642561139056088107623329029027495619480122788511109753897289375267771146067851084698609803574801568828619357333971509756157895046751105826068051797949064652006175790076861844667567594281960765347371340336417626825212813026132564726294816139931098962551462712318657812217770554775256858318848595964095832049478982910401685883786962246724317788897986872422352923715031895088071608437440689034783391595189156985489765037821162713054798926463196470771210737235684740394535244983579090206547532012746692344135885750710951239772820262708611406956815414632514585426235013609100620500571653066548075206504067749332112600380100474853204984898177870835107982150879249360379818749097475836408402981108228320259658804944034203168669836603751450021906198231522873337091295898351021208505431630009930909478533049229715575147566323538937887139678489873706045756979441625082058431660266112298866746732779723322708330713391702667296662977910453271151470748977664336237131097097409573670540996838163028116687222372826606297432363338715062131365698753846780358009765170871186829195337925797797222185944456049711955765285591660595399732081905961623888132311890703247604418821808822646499728983729260107024848752176560220603154698575500619223034431607752211233717553287105362804371531685870622536012535650894358002755080183055899437410143126511594713904812502236935367257988634699427497161942136450137226139532695567215857006174092530886449257873716992994797571592864013343760574773867836880072890368230245399915147926598866885053071119059538040134320406415985365277561430328983657371538311599779792489571041074166917508263601318353277930843800469113260533767407324699236559019071129098923907236124824550978557595685031230833212595733625332935858002408973664023963025089557041216774062410334634869212753671379897035320578408383737136489050120218187276784161205666982245058402726106913859904719263371561743385200585377572953801842054585755781342168719745115458976259234073632302333685624188922807636486601735207749308008661062850770829214570538536992065819937605353950709640008394992393189682807603374714911997860536033233232437811941110389051424430005373533747548903183963780656340010400289076462665639263845712634623825686630945181710601156703564008529430955082340093966763257066849476417373930327816831746087325754156633786937714994614941314235142043491868073459887690490256730610554239812218259266867044046430980856805404247337814493640861508766124976893307423451457619239693507585737821029369992347881650689203957172325958657264686243058514698535140543607559758407760705810836722929064752148199640730199749646813438899461608545916222853132551421011664364602861562909642006855533213876520103375413143949661184070675759869853191510687001101625716813286426401564652936512332353899623217858538602378289580361633111697819366045459903317523908480480182999718642335869917808643270853231167758699019464952063866902367819708719880828907801548012469926607581423223899029091514831893594964603753307312698818377592104297214692551270199493749687415266069913076612773894052300832815062631038055617594721715911691343775133426734634054070540110729055568612632420668661890553137479044023509710822616544850654081308976326558819431178073291631705787656775762254119122627133565720055361710556827555884292809957410824437542226226652525532314384449929529869158934218022969748408047871873338354616159409749487404013566586601540694833110982334990704083512375836435482372237731993901244373292981411131398429575074793661423979247403181363575047207350152958965195998499775438587119185086283344093562891150602072782404818333341496540855504106330271353228487738595028782708098015158909877923287856041209951739422475220316148614499300775142699010165190008270253614805652083288365616863488278267908564866754687117167650101520111092040695719046800033042612643654550761899327792957685417736547413487572105047636875216162021562680097056399192016728353218139433047937698914357075711815407057309981252246014047789307363578938079227102200430616872318366508665732313173523390542919808225434676475899639076664016256444677987303031761094327954902730514508820666697737889748207607776131197886947717317081091806610652115019227102703025241623501391817053135252675573723996985147867008110763627569122150411272581364017451620262260789874919297588351859200331571512630268687551567954318938617077583223720209161484381706662055170481193147542890891298375745087898676655619966810023024395316996691209261812931763241049505364831420630402581343301443737518758328040934691918758647510193416123672432528558186075756020459282707401692925732138527319304227721342922184155753357479865307703427956930408187872342668681823667485633393893355360603218165399157559067754233763468103045627749730336811660683104485200512820504141873656583500330620615481008411247067066261345992167618291097964846797465482513995810686712284383572359583198070515599734030989701417198744271855914368588587424680377768027681671877730318608866972500043408452448959480222646420674299354413664403180384443826147854015510246638571906345239038425772493921742168096985108428892490923125287679100958125937824568527626692118755402183541038212303449454204597710326555305748998204791170818888857659142767501523894018175778272990984271523592655447266757866128663013784039069232789202454824425064992024836051034137421794299858037711937990766025970938144838308479730219693971388377501818895077195397153131769045499187949607457046672444166120708043429535638982727213568898151529208268543485592023593677330726540351868412241066050626376566137271447804860754932671617041042538205899450474295158352490488777994953825291250680360865009512632981883585016192077725329108817993180679817320389485811764118703623589226448105927399109351143934106816438769782755385189778096445688547053442446832732718392388714392736603709684041580443767434020701728180975792862221120404547054741305840346279432026082048239851950160002004186656661189592766488034602172932029432298484004727586346314746647099555480730802925400396583091818867059744770678552978492372377434307344693341392799557623145901391599283260984141193202432390296287741228376578320329869858749104764915342989645511070625627688942528962023379936313254159315105208008739175130874700656048675988405203230321644257605098908092219487781231385087223587179534342385600082299551361203345708656706680075201605088822871510820142648645538943830355319882987950561497555185343979831077503409468334279512150745498026744595605019331038186402738254726713873767165101651918384871799142096929497027513916051080403325032637932133882355824699163615146740053000227403907875369417928256473160651967993749531149065307189392304529828588558123092450045133527133528519272235322365375661171447862458451263324435576773389536129972657100548565301429054347721662158494486798371244661065445357315858253077913277748246692460269398643424547241043230736305756780736897556361225889102071498504885487803231998848201865384887627736040185418346901777829449707326168006678383744367533401975737642707808429368374526829755446017630912940420462494446655573744637973277217450362765587287048583057287041701265967504213575425638905290747383104971693083733485185998299109286477334922433760395877048136512424411545245627935951370920719300122454308184325441104864243773572018916702606118166519993367075436285176921692153681518811603297450210644395402999061804749946528109703395218315728884252742011368294763950148222565940646054529303650095268497140795842294833882982867697123916233730007516670397927523943549704912892454695825817642025106088654387050605453784691450695782753263578454652322262324484065841738124086528012332151902753672071511045207893653285549043478127731805189726774815115354494865386162412898415108662053850723240149689818761763870042852761237555942938065017224200892267952152212643336707098716443378423207952961402440300025574945658428044160130484654913661965170366473816864021465625067208415127013551004436264692061586387367068415147437854288321083420272523992302779971472609717157040566522981022206550253745089190138392476249926776882084863420386008820410040586321463505005893280810190546785862417548989570856614464534755965946618104246052768921072847879655356042565926053708082681876223895130776521340978605143195438743922738819976347435597284486029449209059509783653826608406412849586431820873695924417917667096621979241598792601682355038183294175795892646905597258377951009497968583579034182305468892673608948744837879228144674282358286987722958077549943848754003144712875581312006810554752530142842120338318846005695970058476379685328821595422091872010058995037757126901113330875668372418195414532039715881842039923116350650914369822275022188540648774985023359854379066654913739366468606331976015017306008684030800645868968489206590417752408695546535641881963009822013076969053160455864623829820967203621447372513533313528781786852560101575693619385625205134678577860937787128973554833531202707157232504260475677143716933373221713131974677965402404330569269425353237623525436420797922303303475386700755061825043636915716758120288151565519447987343125258638648403833724741523245595824504049794671073897014804573734014376415146681929893750157359472090427280877639372902031003997961271033523298210333450628658656907141118320053960033991306949032678016963951848012894346276170114551141453624695439195286426709792436908781673599232353970091131170056464215787943916420572713973994107346593501640675827336282622008509019501723888874999106696090063941343206917421517936190987552970991504495671041934456846059550973931108137479039433444941009333855881510288272345617431151271833754878232934377538975749745145699996233660561166107498489802059110127832597118111940392388843707883223222756019529700020709011267915486005429201267644202610607284069260588283367790740365893326944111379057836781771379425785369945757117816816857119540729691084033801365389898973042577115851868526585821974761720555339455608675169515298148873265921536705681563403298501277903493514838695020033152912176446758222304740762602090626424082185229772079263532073831477222957447602395557897821440115368499663839979556587283443432622716636371492918782300012774379786794390298819028841847066747626270329198627687655967329009371562748544286540258610174687285558105247907326330763126468407449714322952092459031745485083859142078082274643430931944326925588534880822969536129047661275405572571710548885224935350792569007991548852360820315585542844108157718336418074008303930691040214653770539941630722843327249389362544590331438824499122108268514791319354665828827128867934586538190594884745283509436779903971590521069077311955822520109859636710031193961987195457025626395309241189818460971234512107946492578613411514550013392908888670749487577788086650039392262952728800226959190457889548207744608248319643464762712628161959218281734065533094159612090894614044154231698477108099531691814283676168849155629226335315417965594799234212714164984117462938020735910138546451208518457926533225729630875161861066084028011520477495487554144838355249574067967799763649015457806249009496414827052106983023248319629659323489261607235282478734019002561448009140334002546753555881532162845555399793025788057013609729610056708703370937847793783753556866566585436431023705925645124827271274188721516556109016557081571133648984635256066197327434489018729317590386577167948596855289190037997824677806095529182352423886709710766659562490162048149799103923168831198136927314148555180008740043107035239766210363589511958107202232071247680431381953864211049484170731510123820340936708933862236176894795654057792026102269172344034215069060396157350960839434407519844163817126097697719853854054023377130576894643675092368766460006239297247724221323306845915425195801648351919118670630660924635351838252554791032094972935254231398145412283160413309121020453657277302861882244123839949411199418881011350668259261390624023256431965548730457952232868562469880424546832206099826291885253178952491294949851753524768762566707633352456142234862046882693064807421398439812218166877810345621850206166465288657263718728405663397007748408727280951936114566805725442059531587884676647453676148907688433151576120938747240113230819496407370567892001518637836054206592332378482607794395409330610170456415141013945766430266544826989091653947372746890363508695970077774029740561732198847200367614383890786918815778475801249687477029238718338723007929088984049035037090110139296978028475870962295739472325646880750196268273112583241715919961451876643018715534731557202090502497693364721582857839378908024564188228028064362003947963929286201780391207022132426088745049726418539982297147454947489296985933023745222796666763357087470738971692075001118140007330228815072548867451282523570958118679147292524396903857462568096408697050478996308769451412587853797253851398001825596779021474916562680880274133780203236098738532976192251112097150402651923996041255831748679038679843869899648735874585949092488930925872375248760790529787280368412445482318375237388248096420798421969686148496098206043544078922452638881088682663188362143010144880881234412251833602321657703093831152628895449710626560437062269669148611735118513705645438199691013270044650078601120766307021410914458912725119232091572551036637440827433845049107957730430338195325778071382129184550339338219554835778638255315207938629055672621115881095187396180266904847303179010382394228105392344309981372470527734963876080173292124301824644954891163949583800733549206595872183172600593980922014307752004816555032629744162447077949723750977260325247700449350330522648528502197493736714774454983236088904415957437791552076317653753612964238255366500684415246964512274682900377119274402278774671399607890021707716203090464346939862140980666433926313140006039701047146661610743594273134816668490413659445359390765043540249153701074192568770339974398595987256687800250213676110770380633349772820302190037399317789949548947230781185584511797517921851447840581095701213397228446947330426067308599498722409212065037400497215950831926822160080414884333869369051536624944896093999050586305624247296424292615718718486706025106958994645995123256474847622139743747522670202470159232693299910199736491334320238446165175204687755585835150829419098515016707244946178106445583543052143124960401814186960805668054563320603508475443515095494066819723896116607127059486887729241962851589912010080838249009248672187589149010076366856977925063552201768699540651900437843256705813146590007773380447897048073856412868104324270511025886081029222921794830606839035415353946025249797509872441759624853207513559641601962549449292021185663006394374018061653979285266398494394482391535606235583456002029311449401962642612718321765092206902914083428419971942626694900541179527434943566168446254957521652692326271241002847371383470539149092063801144858257940112583440391391283133593099398637950197113980978076256098635950174280308098631395708156140653007583469321292754605309913883154402865499854792834002826018525854346603978085682808117249589877010960308237726026703119736832679366126631412510664316935746899087451233115640764291172691292808450744116806949214555447223295949553089969769878531390836828384498034585903628133401114628998284903578407121590902329452422531087675868551142769291352765325578310009125404192146208382059609973391828063693021182791934568340723464754069196903060493150545996194991800598292433178455591003498264935822258162069848704730634979264815915144043237733049650603744044222221338330637933698484289282313832894684124279962778717791373188925284985001641630444216773611454017719328866531797235094790467196488796128394840962610856363029386945266343088339512554148631715230847310330823222693439006349934988338545469047208827733823421814393250390897302952966503637023028337102344148515604813283899658157538123260462340035285580616815541536059868111198024053329372706617610858879092360534986735281388147659752662624112728299937219384727997891052255679219288366183251374421630619782919681249816047592886691054798156793108897790783601188821477120127429332033145784782956208378795039355972869960093297830255002639585377113917704392493135547632011432190643506325484320005127250548540620998440520487849273198964365796174046497350580250444343101805027895172648858067471004993489402298552060630818367656322208725498096164861675198022469477349657111431910716498599137007203167740471178178803783963051166106720454270719480758486134668081542854658927903150966997139739740389435826952697570386914781362336037679641051743621453827905541419564289053839972977905653025958683027582880181198330354725639718686577482865489111254135589540888572282423265854681369980192913668269787030368189475732373000690675204232979152734522421119549437971752254393580683134331113189742315056115257984782015969736112647261807981966207679778959350651124084461268079009297372841951802142005646018791126020344149239335185769239342870401166016043528509591861577751436188842015270960618506633996650877605997092357377210505936971269499304833069863308247159466628229781544023531074119583699929394337946566507799214277035777856128261204335520100722834339942900133312586644631643769201181855243999442399313033801547024450920457061274680580888976637577812577848264466463563911442891520096544724539870751355774040910012181970039989348151087398729891037968520828437707449300060315071921775954360155370598197043001712967329036912012473075803279664054001457649622747497344052436826090748038503660174635071649044196260678648055625338809467955726898426005319368696747664272682804441022940200837517537175869165532707796819058714427006104407671631523756411076456642755942471963368173110739628870874766140785546687372504549500662596963821296420136430747823127735192273200525632339155977390957808033050916060424768014929062504420926602304239255890913132179932536375081833307783629788409396094637938863567235521946377790069590574907162964491114343829506551062076668201655081403537418545728291384871987246870979320575265214736747578463058351431140171955340310027771011003862980337828383547725021959761161254424681433806904049881807945227768805427084463408822740797520477284373925015241508272877232253814378743774862302361969995205008611458437820953910263164925675431756637078527345826679952241562068333764356827482775114260225711052807693907572014668002611998806825500458609924478186290184641628225024615487510313143080942780020437852546610034317521457748014074967053380671970522771463186581802549276057037655481176401620065250468157179611542757942147638088078876584987274554623873344960972020703030129207349521895505163322795470268236345449803948911540763993482005766695372933511088456451820535149680846972913135964926117953721048248850093680629602795672345392478385671037269838910290932130532849398794729064500545486628552096189771576291632317399708933048471548329634470605611692314559265095108758359475188968130017879112878269876075808747027935332433202897642680429878400057437508835473034233940944230943051077310563967001821576558300482042608103802229568607158152473585405878311368374995402005024139668604755234688531599103588470828779104827769996716969882615868312028136804127253729316081065950926493540877293849712261835153576971850235388811384151036617046167825922254273047330146727401084316031662657312595768129446085466552520621071555039824514245947875038228154712529311693168493413648840673491634971015730722806231062587826284305024851301671517628016393297241740584565538159154183967198536880749241584227825289551018715874216114897524141100666035948523068507106780122658902296871736364935895956633916697919000830710699709346017108045494336166529039278258545929602527166105814993908769584342634628141500306600046356404903489195572559843318739561578078441345257550494177441259904710826046113490369086970103488498020996557768576876829063157689002707260754883284858543506104861399729398075210227444342060531801811622788760098141604435634520496609292538054698370889751152793397936416403065492810186081069792083627591910121188493746756477369936171257378029162212148854027012582733339987422336395258461625143011949211909372167000053471850486222065980842596599367491634318626788670459963267618588064750877942696664357085834386908030499803364911924551316052199608085866386685575712828053765041568818878980125063401514304570291356016918165202359715052104802698573320854563722747270349839924606012233293022644009536630856007378770944446228430512994506910641951474545593114279025945018573965496623303301261893675657742650658884656642999113242579782450567895741606629826972925329025854910273493909431690569712001368754333373445186129066033993634110835704259410012785786975314267990650861428333080752614709166317007631595474490597046051814679172810694665023940127529591452338816607075459365721236337961775906235560510458031877116939624531199776066798376278802493157131303443342594167920427644577341961994024865978284130969425105797891639171435971090620045413506769105919899609531127019683693082396895143421037630517268868611735764456027707158795851316047433251187461937714453140273701467770472655705449642913642852746839356106406488094997518807865005044890032911714561963436105572370903402946724949836797091258173396886094181009209450775389837684730727533149674055148514172091104689359582484995012176770477910918706061288282909246698810697657287320053554098127252064078333250339447257381808247010415645506126029126571454543681396061443114717433045127043484900609461067149301659191595220415721657472279104750804894317230592174553301757352365130198198845723568430471808615438644536364491433426668336309536177691362504774042633911425702483640289651507019003609160354625686929781324825242334188748759079784222731194867538792424692992182372287932890191450787548346212733237168723331877423550142821637622923110355985350133411184147409407974562532291362808303585773013439016191594615615150725499384896131375649141999506982659509930514407624965663250931977901728580155755714097625103109382470428188467568298731252569233843470298942062436510874888868767765325819687733395545366878151054597713897043200676266596390090986589463464034056430144147598598971119325950407377312820341915374118033888745052313498604664795054054419742662940949739183465655075339036270897328239004282680325530618133212949997065567295632163871108500674174407651724749343216535501690364933096377566403244625680813957340376299009648745163676840199175613145735877340982748216466042814673598743598567004844125491341685142756124227113688208121094277712394686809771569361178692035832151957667258500064143197397796561396331382638721318792355980137043535571615933578507865906187632332876039767454647562060029343912255902746072300193104423981204810562848855639719052659905809740469688115018798162267481842725467531840508687087292280951810224303299332868241809869367110622007429108091659237166081362860135660894012636809271196084586444228374244165868456150071655629151143996922245875510085861302723771792772880209538696718278182837811257648134332090231966209537395125873350556790509796950461442908571235707037677844012501687687164554656796532558973909221141709101692226160947431264014043929067788641450847014586117567726628626546767789217332841515638944669732214776851445934175204775182523738641316224444523555834575255841614283352954178353723547476461361055689650995842715602342494144531516947250352326384399960050289489046128536749987548319272928893045337125102021654114389852736431789285334113093152704848380948442581679480040709194604927381922631611310239585916215292127425132222520361277247929997507743105081154031651158856679878873610134496939431987053851720692052595570712694003614361139191259510897368272039878050497602398422762671198068829989262425507535376264748667627794774187598556909309914619814179699826392643533238600515605606176778592187664818109127498490433803619188715333662646531681577976394874408564041249336049428145601786334103003510003227314547062795008381851030580401976955426226639037385744251488467742718217644965003471779855239966276061013409333853317641706575078086260986770294013004943733396522437081877428733354573689596954638401110023263173904368255960308689914758678455372234056444874795239531613035895676706017409808851368987392812250638743400579892869100527575913563941475617950145253933433835036021444751111070593078763859218130813307401441614195325620846405310961042252415469599684869526197550271221173817456318389318309411069015874271049486033994205890715809328842399728447222268617827845236707929949513466373865013690068167877855309456184508864639582570723455991836315204542208862757136832940156958720728970298704567227461759057299894129674323645014956785485693012705798835095583663838764677003459139251235456408351202807078038071004274408763564459127777348485338551898288566301114316752026906352775895642944458041389041641802469100593449429712956208312741466085484544466075848196709991074865704322304804508454139484664521719586360518670869308679382069092701843650996815714503809165739436181773243070376946483693084281302013936088696690115056690566732383761109124855363639230688853931547454341946454018342815917045243166874492750785473417764873514895260478111406242262895861007946542287194979194893247853283957983808548498753598642066358572965834571230546314944363984236286591060220601372896685663504423707188751810823859613107649415700529650951488462514865603320512637703281038488604151014185616981630491785726065366946912393958010214206109054246120884234706085132280460360657064350384208560284475611093274051655079292430150293205002660981693132829184236048057425359715503637176530882220115500800407228527525179952891837669249814468440231028018422940715692500866714386550621569396444097509270139883657537607455535376925988595352143167917331011522155360488883940951370981914928290904535060125578248905799890235827198088527944618976321343581790933334604492242990522143402037852712616269434408642001794165556837674004813448394439716919284407859563397782781575451645990415526377585147378359738043793662867932421600664648776757378732289621933020741575701506124970847387316021602907877251189026980168476189418810434098136682618914304321607691465887995678405330018366996733865322282608210292687991568168484992672194792102024217956088311708106852472501087249637909499229737712952392265551558391376662395144677458774596767166595943702179324864811104469993858976148751011923434534670039260212952081984039442825746256625211312146914017805539302769826652649057743739557331240625581694974021321965047555734171198600924492501012942934498822206930915158289841290167899325677028591311574144997296357307393563961833884342128914132048959689044144240398844567826168388005086279558438004272772470911193809502674216263210745718204930986412081350965333853474606101363491532443818229426251146871558330516875903078085863796079288541636825514866161812549793088779067993980701724252196015725040122881311440982969180785938403663455448796457113929944745129187382552347217987462190932221910145205424168429159892020047889208035577343011662242043931656386715920693938714552878865230644987993890164005440941764116709690090368270147104963493015644575381213703696747591250796696021306425449642320841291598086377921068250078593865351517564180768627869112959689854687169191462460550373631906351860589265895001498762425332808732554732283902113557191327351613508344531636329747780249431615368616108435869915886054481218397676405251327686074216651410283900940070387230314233372467400943546755422662246562366374979237224041550659753688714580533147552660542710929260862416718524226890943893420746641326595578677796550095381753679916979804310559405893208478319609426505999072843525137427457930771191302624117624424360974472022922609684121372813093580216736234008534193239890228261462901961849175809752847701556931889219021993691041102896056198758913584435999827553274846373991232381966646104392694783784760956951221143567065559823742351605712455404786392948988202555151725429547680845789643567701251887272395529964690497011052219954672181862984417219649864681708248310737209705531496439435759302667429950927430522366588480054637375400671903879086914360119642706859124458180467856597702130177950696196491165164150278116592113219750348272973543616252639664428794837314270588545193670104008691712956296897623122606169000960666162154787354827494774668380765479645402045519778287094149345506896489915551278215327435910003946773095910575822681587365883051090642593968247848754431166926379750759525962054939115435291794045922214351418875059965120287889713499788427668962883801038195600177174748730244572005609319296470937957572993571870024828644848410902967290642140703411096748446761380636313135490002614205418224936708220355713493630110021100089393829911257095030237967280944530061738946418943673625551601591169158313886768167928347911663450137834725796324973186299490481479491397036124627026125076960716740677006714021624256802375057169511870195651778966870281720281979661716839986734878149220691708040929409121993656979604300696117402855471815978783830311789031994850534550356519329270974979218198797948925198456219669285772577245266684948588547359978946029660453383749055805196245097701304858717097812697405956396251933301220635475536382092639872829213680175125341049317596562120448655247125971162162969310059584908797986822778499905672364386701037245993073596109529197108296132806742199443190575671696668392932046085197554450282964425407152487694562241932113109285295960339604774958801052289746133914307207479515753071409207527261503255116890998340295101196492260247045028112894368538655341555588032606670492089169263394047179947956372148650970328127835867315255579139353658318689440034510497488235731442649066875783207630877304767381565658481399876305350374027374567586016351407703786525435189922035214647634298695389804822152445895852880529403165568541048882258731291155981027861426981108893495447373877463228173603060051287471880968503516795519893700411607457590455953761405787786395230903013699050322375368918703932702139148912429478202886670323567491982813901576596696134352209057010566466381007811999206092021505449405032594189991521630274233369107674886732514745051578439532688014760972823267501631828314826539650476402829571686155468905859418517308771784977505026015248570390899624334677364499920276041130101694936370253127558378469224578621884826758550210708061984309200625700332246776523696370514545943895697677925229244630719498362548437667292037375348671343590515219191813060786185097495128608840304983080148322095172770319694933205935911178833191942633406784648017274616244759238946348388401408075213351467664423862578020583558333684990333367732374639374350713824115308468769351324605272799846348605124096850644710770887169012150969732799661397892903121363431071018777536120981214349159021677909014919316106701760814236703264174355587074661810295528741990858403966686613510725871459601466775570105863582233078388328751311672357901868625716022003272061042971644268024576646566580652769683324700833155073166581835082478802593714200608557580452841388627211837804137055244353444877920366413951617044030444225401950962502929866330469945950542975750989569164291442420749252828196575302185860123078631399698684854150566249736696155378467469739543819978900459305141695887499731800131840339969748547650764241027423593244470813512949186449706747362850230386961047490613267722220200297177857513433383409285490075940697815302283195630752810411196370512747710676542148349303426160083234149768427956290460943888087345176254726087392171114835800049669069136747036848240797718194759863872491749860828200094628687690864488883266186300099445149289059306352466731001946021096337783277243177692062136820304459621616439878974836761628463149999679315150812403448242186244351269464674104897872255798019903264164922149461029664421711681199108264660759298667300633114978964266011185786977323217934575134008200515977086981255979306226434240790533557495618621394431311483291318791584012969694798986007041826357226603172676513554588632646762361582113943083722549953265734397005639070153499916801487932525728016345506393847026468784861041811333645399275834176765898974819204233468180640386914288275572052913577373940160534538519190907143963517983749418219955132704010956778911735201983993868698090610497350687614573648358020978415431960047532210635787766426813257672256654922814470855069996156804335840097404121714470421589495237144947816589109127522154204918028254156369792351606205261950949085725194902118389855095373147903441660085691174800951078320211026337824624382148585070340000223757913617325275088503499010017070149792169415708764052720889704199793539616454433706248305317569829256207970716644481317896117947057846124376672035264225576073785339687651675683583473146271189186594220335853627761394376232639278995056912397120679503631270196441761078357649892347690884289468101357475505716459775178297880397589274966952246397149282437505344282806881245944196433070078247034847412492684872876568794246702307715450043366258502792842597697634605427790359777099168826846642658666537223087999763019181246702308859321188641232137979700728582520458318575364562949578574668306141528381846877521605797229700477610166533041653490915096201912408258063989359428422898517430722305255016888386881855561522983560425331277415812432068192775995900552454918351531915005168204270529378416600234703062487048629964836042782229735245862391784526640685623225139595839663580815904920416893243904800572569827803190599285892800781480864027077749910670630531703006749283972937918174178478398271810094970365400138609026442245764541198742580397952554385930667082532873926254839828447016772959964858499980818579015001645748627901998527243249973684725381358956993345204389456904750944332202425016050928002770958782881145782467267162778173892210741040557969235480451772255340785134124588408024687815213297479984226541561341917297597593323724671160603734333484703258298814312067539398617356833184998200424669019419291133569228049621622045582257930376245020852078505177431763804945841827430452186048647495068424294276312502398566587585261227587941724130600506542132775923386518280912659088239846264468227675826409404338151839465569512914917393167222665950699709555667338748778353063708813392196115879919366726361490211154095076717675254278538302326660731009968339234189268626882907441651579022024282486692425856478632609127129568347632117253767915150057901924099696845124648357519237040682162674916276691826348711302671649129263521581925329113133239279470752944552009603497269601370454817330646419218051538750606975243185649977129367984167133750028468453265321575926694041250849971598092118884192514962896311813510892834455466002201650248348556817096732163720798868500499065513622270032958506192564129070003357537510361455427493091494920799319417257299600278944275919338883792053002959515566732794421599292220165989103989172520645505269555825141452087573524395879231834217004974071902302368855017287722198324938481259680308540006082137605926074641604344455648900917346306916450455511081257783853722235276501041172145988495592190114821538823526287843801460746033132822771577833780362407206768779074012732192240173220063823226136788278743611745999601134664238432063368006094438259443139267175207876808390510609093800002328513261721291865275595298690539408408795761584251486770902243025021160471722614161564223670102208173512093473241270267858663288170019111414853772813004565176576292805621091839480560052890603325570116739514514429528917214325841832501946804302135830041862764172330968280952247626136889861231459127228235234548449583534481117307157716950312956640837437673534035404296414893946619195389112738224226951680543101300098029209310776450135037326052123771086413461167802787194089443094566349628449686053443892296665319140855399232422091806675007638182635113753104758275600393438013218219705406421604662055776874457933131949717661554215074257611557515393718022995504006528916877040300476130625844232984423096518315678272808007055491865019493762415657647953671371948037877246262957701416538727636435439289380269337569712949361329056545743947954216307985859389158965198860653541208489340689645947725686538988943764714256155455923301598938656343592630822996391118369149113562203524850442011931791292641226966416596240018844292506866890307339125917608098308934202656667485281616996968975920413552070249080679311233990279707508756124445503494480941988745105053454287299474633418912585939500743502581440021366256723490308907698975802724784028578887208022725818873583113361366415234974515227211886799651924348619018413835611772197710924052750344536601299704298077444832183225031001177638269026012588456822958780015910387959214267949701059553271578659127671809673535734488964320942241786433720075919170904442737843073804874099530925323942071066183642273781647215483090207112847015578914174940182448152794506193269634088314984576571146679008804314754688931042181420116492728209214825221061990967118134551731642443741873471831667926626036706071344984661220094290795638899998068580270687687369952413194493099990623793366282239045148777685322305731940685822000797121688463869564927016431410674809274066957393114006362279714236977390596778654897074895547763566408946442641723650946380253522076948468229398591508584485199099488466160536364918213949371267935641552362789635802980211238962772441449445391358622476697167695125317061866916524419706978417692427997551126886623112527277196536004278349718077501609118776633658161327821130559177935422357191108620896282799504349779439453266668596023961909075556118066448350005232602793942639632935956841019974173866520940904696442497279452793189584183122021424213790459916749507079191472068367121851939484444101266019326910657399795074524252833054376403550290022853568787449041312924788688243400028568031296642390659358276502782160633623221611973286905626507473220127287218327305018229587126195897475846708224522122750473122749965517559925598356580812526224082845569686811185393920574447507665289933684590170436072189170926672473649794135800368902693605025865395796671800167321594287224061536933399573843745751341362563949798559974621254854018048521983780545696800893233129586753390272930518613044272985176489442205840797376909245836529596164313614737956251113079618628268932978420211580170800246391187195479809545934286981119596555970398394701268882959534634955074419146378292590954627516390288146454757911855131365447581738908617786419629380957011518448868391243595653163697211144848608732836865641677131679246705645209464693230176221862357432306093697618723728073393097378316384339282539694369860801748059633317015880548395935311523786575827096427115938070385208466655865419722006098279159831208632497130088252821750992160753044242223533263948915290096635481948083633399692056845483360757337295228957907365759621364688158745505294944554635701100663875210601692788526528369873802869838433020610183761869170677808398932491571627749549734254338758739453095964178321386983421698832337595776806472854149955914244579963512438996762722359496692744726527854123145633980844442502790094341902444611988678073273898429743286972833839015290072399876687590048910109300486626959608492028182411178122357817486705740171863910319535402481663414806508161893582673736559122488293894744887354626093877198744058769456177667050902880361955082855581103859293485314395503104530755290649174204531870728878927033931027686971290477326747146164249421256192207859746490812035910343761606630252406817649026490337003627794631608892983236639884680877233183105914734324417975130413368136039414403776557861614467089982147159701534425048667851427498293015996586346659679051259509315113043297084485131191871383530544797425148066417232935122356734314535765031419319028677637569998379557095116838603363815335441127259459930380612607371961922263978496411338031608749524313740136692812280765382762514517081129351710263047785558587444945104708454789760061178878858633313309453432304541386476269309877713709540892779422640962233104214704367584572053952571446132839171713264239498269429123948282304333485588580660993881650379298010426873444056824628737667813411111663071662615610897969470937836761729065177971936975040130575888946282427079002631138876997217188286933497490812265368794992936007292387212421808261451585407178757953749261121123379619681625491877820326839839252466103034939199171779535130125916882101124277553714534515030246153078468514098514561848973851734506766692051091577043739187506776285243354520326681567980740189305374335820662135616057866226808642508808198917191609496656666242893227119220433890016781997032315516572198365508158728651186326592471390933595203494280460604761477915971510865745668525449070723251348791899972850568685330045173333027410145244531299391588393794988285436142223454838212674127224721501210091420603929869858161325183666262328354777354654584006723245914995628694352725967636488512403537388721674089604348193568194255524461163394812630721939782387691930967144369402688883811597676921810412766605381727581836082169355529575265239768336450187656432049837792004214095469534969124744532041057128979589759649874090876510904644850491299491731063743043850442817711818224524529137697400936409524158866857493171124803453156220809728580499685947583885546838191274282434992632272295729459683456328035743018448700423448844902990720439527088608239967114508440383850846458538745994970205711495586622495943272792785749641016148637067881157071815182196473767276316723285347152536657911119753486962303683600955317262224658620582011876407589552694281000900018367036935076822050979506183644052420819214198519915243310671237341912779318288733303265782074249084673355980417351373770740909473137009330755244679958764770990386443791060552700962675703335038544987941149601732869782265039641163673528434668924450128431763901376284223434276547037814956376027918836696066644599352952515766584341968364039252654536888831322338959069496742694743585970433316125384126101403875252919838663283436096635433210539697797342699482975065922328200692910263898035394542116662495264697600014981627815157112500940020681529399040167401200270524212718516359588874917042342073331415439910480642117024199559850977869644082939022045195557711011660508967617226882626896691818798017562149919423619626901724256282410426558483003908443397677119423587708821815579607526981148424496638125410177058312293596140582675224675991441170895435834661373516467101888933308358863873587500990875606503244274599475341125229227078721648323062810540330898799136934875972621417046847527929061451457270124744506841487425577426017349448646839552582799435615191440974194711794337854771394674363563013156765739077100467726645123539600468296095363418445941212686567242691377406491703240806554354877413445832853645633147003510255248898115249131111644159865150076908772652543586642132409375143474345004728906843402486926224386919375667837275700011439210811010173132416265168875646653299965302231097159584342748872759449101164111533407153725644462904551773729635482191423961426204953154039199615117715394918475815445042811297415976084481746770590442945550674836049311259550577849330140371675229836100539772171923710373403606668070372332298376974212496931475432117177583718622165287291766565433880202741491947376724984694336917129466552538691318155865515332958357029415082090920977972120942345904613756694987517633605568936477717227616410279701692160172406305058300166842457434022343583528237659744977570216595490060957155480187185073681770422307898698250055080085196175803087128286208589002815036375858160211481429336027587812512176671860535114847181944329528580379079377431490802312608423835175573351797482767998996917807099841668995157490217262253307199879870528919021680383869077657911943221866472745360690017162963181495915704332239624601976749650411377636169528107915543982566641585291180084525122961541911834737934810610261939079249109886907069795489948257373393350083103869874455781732695834486479348296253164444134959927911156076457855233581371010920203570458796351897027289025321178989849950073936690630924937422553851841780093417812831580014983674949490037699947830470189618334822357866354584094892993436611419330123092031643499938730650917976775957359922740941074904264441471062346430387715850155837216410884371805895463774005318841778609940430603402089525954896732035200749889199932138203757359309453527133889444039941937819545385508013753080633445955025097176713555133654342155421053415298251067860371078966862567282797028795691293803302228243429528077757578765308757223423341499004723180664314156606596143710547428929351896530883083535512719422821654765668344169713846323630168141911058379524451030372798988179007339204320793073693849499001219800375808650923020272932155248416253432424318301302745873757625899417169280278974594804043918684737349909259300680390414326199101766750952036072988987655003682766220732364634071527664648217241315822639528473139011086068362569023030680650481461377076520843501669526156593400809893982358250581137341010753995423159588394721897057517411722174956310250380844912241926885894173301865444637812558162550995431893712012806878927082722887574281791736932592208736051250711165608474416490828966201340014932930121593345072693730915399661751336609025300679639609599255577347532913891638903699344015016134109152166616756405193769770796198731866796255171930622894637938247998677378282985649960596507700109869196229680332001195552909388057838319909424136204523509288915910430258511193884877545182457142147486363920257666932396246640829926619884144701437164067646648941603873490538264093009427977199547498795981856783499046647238887098465935063059594574935222196572287798214001700399132357488114611347987227899227482233274022002078374108881695850463223770262378132161827794649079150746717774925070922740269823267964500986101399550602308164064052328081228765148465661573262304470317512216094373053757899440760155315053189677028070334064342049125820408617394082128880137420759252566207059075933415045758648915153089452474926656441558909733060213816477593556251460403799688267103046603951992287081233208369799098850293280127421795904558556814836441133920586693662675339965992635850245744953553546918405737678369869370726453875773888585955258019081938472851447823090506432336554341964985725719436188835378695975759327449614138173959738874401779758871440720111733424116941545623708738587655649073054711996750880752156642548235771449874107803909293038132997122561701199576774151470420209597788554422063449356844057232474671530628193893693735582085789821528751408401179632718693759263269281456179818303252479374250716869860689102288101687875753226932469382566719309538873694317651978249922701050707690340076804309144058506003247992306730689628345304751646876764655965913767466910061511716987734563792819314595857024038900466816402226423491420257862824853282867141303227087961481174855071389535701016483954390342169247533044748213569582105994541694157225486281943621348425228458348733534749305633665150918103111235491234706115477015165376406129292687837931497945071735548175314210361978777060041279822633050716448251404728848341774939428456784746210792123811835290214444569315966041549920373742218637893149475452730728012841002982445030159001455603063991106165610738388923831453059975583126476930258687590719362648630481220793408882719956677317107036242242193156254314393567668008843516179588565947253924370709820302740861979192450675492658308898149195094749330232688628122906565766838243960148162487785044475341262099517562535336364572680694901655608318300041974193375695653959619335924794713643936578484148029766433626186090893520169161166242211131221324076468698694772499837705548280557589100074601072880891817189999062207690399434642893124907863634266449949247032573202789263297211545453090095379240390621863415859019362011935168966618994532466647775285588384299154496599947798981413569754348855216810055860478226326871933114153277425271207819485423245363304872004613902080234126525286177817348276450695526327844019358591951768547889828435412744571960115786756648778826781193739623439466162347232516130228930382810204380549895253292063461251163649401619887447308945738387579176221905756594228501568324043149413232416362172727366035524256984339405267919398217075197920896139096589049436723106904477885102513003269050771903370438480705130595874971933897474308499213580116902858887621339440284785422532825126896682820445266547548230826916014192664914025539182625827517853311599627956357517098661028014436619971531657818762284423917058628987821062972306656142211417227684730492160447427737163109981988806158612964659386822461453107456147180839096895892152107891365593145598775537905346925366876074918349112851052648568864565194724427017643355037275722803687462404114733974067343545108202502930017813924788343110262623674666723972738209092352781211645725530089322148675843125971063065641865423399488147844046832016880427894212966335522720420639110010650554853681442751854260481387950872964384974127082258608967042296547328998358605539139694961020960963642427965798892209894100389491336891903734617891130048448084110220752247410024050187985000498722422990976003912510984363842841141390727083922141696507002933670381579886013157114218980553015891604159100228320499528810368521009987446991173303703769547840771681540690650320371399520690602976386025008429322713349782925186710983932103691147069557656189173387721728294495369111711973398957344001810406389285542174228774268818463019084387428718765549480988394428621087907915534916938793948527904522507134806047050477076607199468182927977507293631189637784591867601711858828607578832507910256351006470396649462342890451231178181413380195488759154631800349970005960168769447889652593342343140113589371708735607299756229418900154933164977683200473711491619546471074292288376228276052020546612109819067115892716257336162580204776582537446888761067101327278568912065050719636942903462624411524030460034640506078911407478482419982541846142038220793175774128753674839521070159793002183528353208795219353614066614473169179294486807653095366997631467953702647490668883407585664620782372619638554021698606863769284184192428299846267216494282414027137684833850979861216571771504533396175904275497874343019839254776453529197538069280470948747792186655868206660948767931850107887393617829934453587864771186475140048763199959226506867529254586142542003629576666801505981944970469670170284485844202200149663242457986222046318125778960813697602016561995908491888903088331201438812602914949056284671432294346859700932920038454276920603432542963736460322529655403393580657168862695453258927900540383025378648066291432451079853515298085383862099362915504985901380095836029340755100554445823635971003139977663939090904475268106117885409781870476418110991825349127131729762897970478954327849443279970246458950066192834744246518969969885773852191013574825146513676235314074026425164151819839093622446084017186872714420473144335047736669856950878911186342621051269172918720498937088468722477932611239930526962455647085777741137845000456960133644734326347836063015510247391448506422365824865244627027898217823502147000403371204352058969037286071951926954675305267597923629078060329246850276052763195142335779973589217116237609768477968415247350472626657848648847964337938058901612967129005215694757977954593846837998513560892515145616924416506494463696288799176832900693421898713050920251083554450837156397873567655151787154282325937999853612843210943551612451363936677922844940777438913768750704868727422699441996414372851942574477398059417731194675953462723824225274474303808627803986578806695258489313208344998030357657234985248068097283699426905516905342479759920119501197747431035052346807218811497818230625727511100252827900033575563476828954122914218807678116275984779496290597319371898134664721853894659259935082278851229056088074590291950381605547012066016494108882126961433763822489834734069073168079748384137624486964310406417066182516271075982976343105022184816718669095309876019327207216230250796880784426969013353220070522127021002600241671083330169139920160225575115542856915687710600076682709145844121413246770049826390909839838860924548681747257030445895088997534348039765229531431621160525690635633612472620443184110657270582745261584994672278398189163537905927754734833099503097791290531541802304627119498089876958626488566332021224721408948604668000301454119237690439051150077436769724165448508312451052477997754099631885903752973215778752248924674263921957075616303171509625718524972671574463752841743077114718397867330288886617716651342598001970916150559251933305704039888580844448099798208033827627609674293984161451996388553767788833403631539267157518300999103428189636041256167568705651700944937110246952680344211619651375502154072852930486567720244223763997357071949898919861151516784930181302191845831107503093177022450000649029829566788603583690174463245306233129641929759338390011616582113398756967553622620315160781025137273964808802116429073294997921615007277548359132740072030661604899331551204424183206370685038247974445910332683670213660483595942115668738671524487773942975489079925847247973721113150606742234640085132392919606512534064524010325053385399106303131076988450542463422437693564358866142185835870068484468413111483081911450035428371983955107782602577506141292564219666200554329146970500715001865232089438287608658639813576220003538699916835217393193628002986719742580043152293184605659386012675695401713094984444916494878807346534594817015109378766410227384216382852266837502636492991733198200329697789331871628198826545538249874578038334581973893235459971064921944848554351591778663795959558458514771909620133382631683684282393611923343923154307647046381645745893857957768717784543840231707245529139024734604936903187145178202354340063756591313955055593867019806773886917883702266604588160219389439365564335031812983635336279968699556053378985874019118185322329718509112704332456380390784952964830641884464284130839155317967835879717438827151547819836796462838595453372389100949885787984809468531807707589292830130886493818748299008733028580866638859122309002323740991490299910149229014635209636693017019617348342889162808349099531988079937848173307803416163919585937790890334688065666887153536467074444740616894163574596462724924714621370646516650489469929668469397576622477135891440021393339943381295098594249167666042915183684820035065481507142045238508487111278415727913193582285926585536680498161601058866232494377358139144993868533011203537571759459281030102578214883870966930724719002224990842641360013335368376575325219178086733236855884654763331763278765806045455615254648337160564109190055366585417830241989295193886040554374516296660827935640045896693727794552185745676428314265332885761170893562746453811073696362737205406344347080256457374825503954757474474180736686501508277174620006553445973317862810260230098811717333963279584520126895055893127458664420565546221868119892102373508008940214459507715314010856570922868214435931981741595837014176377051695819987637717584646141532051256770563070566508832228448041170483190927896829226496885220355648696045236467610971856903536079577603288512035437517910123492786057577960864898692567029422265744682436207714428687921107844692979964378089921492580163211210277339591012102344097423476551005784521460732347558401287919070618930092675257127713527680883969875587958485187317225016653843625760387294291510427093121760283916286308211217668542022171258354576042344695328332072082296211209740783261174777702025950648120700937789699244376792303077545514198127635850244576883328676614864055506157032702614435642838888933771538752926131489999876901313444897775495561486223236925984672889042805156818924551657637408051178771241478267483964676871412766675067327904603110444760636926270218615073277819735829899774692641661967977937609272598834882567014809548152212395255912974674849990540555357350245154905818990587379342666933615153836625292709633068907441549991906629066597332273041289302274808861115980428460920901838539160652224021186847573285874450780112778246634884475622044839524162567859450567321520271272662387793381644408512579371005988569576547066466317256666278166909491015977147507968001375919370474090378702830342121239865577246723659293962995424390287174598453977018374188470233013334972573889089230861440344893579272230628402026870353993606606046331804781758595566359749516107843383840767796109775625229033710508656905480433701396546150554581828807839882089722936229609521673143731550694003827829671181740993183016174823860060860357213191374198686092559534762025675785626782304628629583526565189385688867760703957024419083988585185555580032295338562564831795162034080054958024803048682345909052564721955026529777328136533487036244720505375857612149218319822162344575816961706605554789030397850388751669209384613690785224315908700850596217137432719473600223785279439025302580032046847531975424993911327726878613329824232033701389019017600291676236926761983776181296275531621176946434237197808647029105613926302544372338613500230934219747087794396510413297255870145385191053258608479509681423418369484845643866980464171424809243380304546038792164211592968176906258245968506853786125851638538582220300187213568170831419029920718028570183827239367491575270228595015015723018247337400142414579743474101728894351867241940763263583063078381685997577369541413621980509708845529155452276884451909124987915218979439857186126970589322002048623693789689104901519810676035916079886980760586380235548915633477606475461617230659581946729702481434335092638786212166476283342115613109678863124326701461440863513226691307445572779646090424084723953466888925959051221392394854010045215428004014553559622366027318220499220376928488076600222810227518094152258464287779952185070838946578305031886579890593537549796269601344971274439827507171277251102456674800465803537784668501735489786818419996361334251242962783845036828709734160654784899932074773590304514645697183874679755853741316485938692066409754023982376380914518004043478985253261359662930724045942054902653849795451307019033566744348068605201592584339012624601589221558683397869790919857125254219817432792430220665524208671592191822550079397728337814486029465717061615264671621767283539020106695696487829603946970034490624551076420372640829517938678370320186205400131631200806253857382124491098213165337210532528636989112156543079919758333191948901494609797644690878806107405220086714911185555773240101223392460295102351277527084719977926019187668262481042453378445944719834781501855747780870076795116334426192312367356167408186969298942282844941112448710886895450503185995981006901277512272000708849647733731928774306325090676294215555481430183563898159107105414297840917302181965857219476072085509049715288048089085076893510111044979181207721676619608358292611404728241440091887810435985673782957773282673445161176096708242385253265629463690142262007672401085088187849332059117138904795770683396190416785155552703067109005978501590381952696255339890913811264010134981294393358686648568463663514716782528978282249312931319303109920125595693201544637155366705604656636263453099073705158360302657824079761880098510125461071106181679669782590471874187971184455159586488874621148864579649714592362350748978669344415839116563769368213719554650790582229147939281466666713412020637893940875604970984976177533614130840345620638722312041483743718105861202169770711360049164681917928215859919112305354968472483945035144547152406692142894557393876077109580926534236968082820363943476497784827292899619622119620678785761242846159847312513641392227618868469171431041583100384846153248060887169626286002883399638994033546442970329418782803726956846762284732918788374524541426224752258861120283645507075335693711080228165477590821506538868790445118815165303133986606276490743926871516143089422778655276067587027412778053922675816416288891918630701475193685619432406573557423818292866473932739750029648902426874894236624683018321328348464160594392697477261261227667225328083551687436032639301243523432622660886869920661370811023161908288882728164676254226623556556934064803906051947694719299085015810690160831396469745053566654861777578183345647354230968691345005269037908984426369028561549818517836071458346734372976975601697791699574034470476723605538785266369149280536342100293918427387081428893855814198406537329613013690075243715860443267216498850930779811268502782881316850483628347710725021807570175688515317436110211319408972951695535659543989658414910668502959711660701622036273565533340673241372167153951439369996768613256771347291518774473801023052962657802725355304490636566172406625251118244173639804065547078400465896075640462227072930413887981667514439621545561207207466018052744527405771958766317783290542133109313050711764036142244002343076578560470465494617857809168032758235633995718674205398758508516462987380630933194271167349220515164173158088965246466551741637203732719514521882938960939199986500567709852572228771323240587676340588581775673558315897396166107581289177119654346733025409996762855060169255358456328718609256836229960796791217648608913535404070515903747037784967722118406889261705133736198304919327361039013817066378378177909275206588959009117492280179724393022069651928149448555785448575466014599897369358608200033383075213882076208031668139598551560344869711083072832056848291417688680653925272472410175340926994381207281693294591262109966209314687533940301670842185628160097519143965864484365235322360085940419395844305463846385367616070801808496064536223142500856639197123642636294565581071991415744645994731204088942726684668922230368555947139346415341260851448594753299728959742453120911264107322173420759533289594111997572812426352110319037337750314132032076629411232770875132078498716411605132710592480728276229681459402104687219028606092657960890261589769600395289395448624362308503627925352330524786035221331434657604185373098750823923948361622452978855130419546577772383448005137603374247001791006864035352156700538231250020874303787186202261960012256426645845949588320089718559296801259293290780236242670612740790621962631606994292927941745533373261397945961559896723398312743732293335350973301901073931687940487704699470216161305461469336112316739216290530660913255316698923076186876083260734050366206743010042867293209738440452143534575033273214588789882504638102270107841258602331345635513215047124195288795324285502185440371483892370903486926042429693502718882905422007366549510974387307827162616677538701014265142110317633350735936171595949604315028901929830649764459115351700955917081045385388669242312274675295941188227197739706848441465586564945797490216788971268843014900040929576356129484641268629755722488139210107550919375186244297545867095502369831952965253995404618339197978133866827453265105047083085667768813278356848452833516850454354569239519861717965452703541405431379775609085231659447128436140883599261993139158926674590931430779293241018806277822421084553424808390626029323656817231457450817684375533612178686854078139587330412162390100893245526601190398335150275298910934884751733590911144749824221869407602041538083897515573968084604165595654066182427501224873048657627448354832294669433266845417611433474278966982749153209106211362322105257088615789323228736634722121228233074468656064049646308309684147261187204449480577347227082499400560611032352140910871402669289240421169568464368149958043830479082869337619820338753569825667372671421344029879485953798506698689524472704405154461435395597062095477674175458242768366991196551452588053248890564627250649314614434335396307505207674774184450675788359958218559184696304576919539187763537685669669011453104425070599451083036887566314640806053020049813216396943531022716567495325678045284718223345596065712626745803856366718602384573043916550968595519023269832472236586975783901494179513896331633643181901699484291164274633048203083321523016422237011961297446667788463253382984540192292033541595050755837271632451343050653016134034143993663205649170227393254031943537976451285370891222889933589849548865635983886992094843496530660022290292286187700346489387039627739766271350535779599133099602280335996079192947381118124950438161332462774333862785479467811675394849277180173117868580517041064366837565523101169025480409591843403551328321009360222789235438412931014303842123461421725197999366226700366603838751478440628911251964005704256963667979999015819758781508478048147168999501215275165889851330037273026346526714244270698694947350461297237576646708154538618870971951204076667898899168777458226818745001871704347055949273940234660282670005841333326360013116000014850252613855762281364275524976822110558571783787541282549861511258904011354840533750060335179588397533879756527785716175641692424773459321432575290749653943813725568520893379801007880514535019206101875373302101776603744262193668791433432052825423276862880390038179035280463324872119598604340822214693721630976599589058235824330579220420024262721256290959555420563612060703016218975931000960234915938973517560735708546395498770678904689657163174099612292969520656620807891494748877570587122288835262259773815926838984719396674077222530737938320789216827912413016275971276565749060301092487966927906030241466029302824615128608250990556159875950113082232574383763006201482268955849644722986737424410712551991191944284562694242730235797211119952796164798263870838663185412208308203150532795057783761757633379959514437008830666874049010134481131010880355524581598757084866778370780842467177411536487194405986641369363210381706623769537458720978274656629342711072031927060516530706506146829288335022818824945882293993556702370636140465087386417863620742627934397145634393004806736878606325725292738401086797344565631909392388871066487303544279190304707628306750514074012874753412780386489590927254438707150670371402265634733376732539028990539703136651378871480682857568987244855022468333084852985380415123125331906378282811636324870686665698453143470544301763935972935576830218303889194245695043091028987109499615908734612851315098903309618625735484991166995710983517654927512995710967098692625058287740407884328705939364911719104684614789790892718840403474077658089620562704044633780770012100276371596459854692872503078404608538281465827699176162711685015971171687118894621354393279866740473459004062243397667193713827843267671570230351335188082544670163821307739299567769608840042053557468357700096931305407864570490784929601112729167075215189324514493416171907856730912866483066816658405819879540654402077716283697691312266500966891095121312581102984209318555711361615477832969341320392100183648583374079460002347686501491962229385362944784702268540338343063145751015545655452021473453458624210654753286930955145582316186459176386579839388783050995711100671000922643424253146741963808522948107317928601718393532348507773435637934819052127155129760905859752468702207231926124124565852582662826271500334913776235403215648182715011448638467366783103866415299062765344967492624779265431907576778844449732285966683084784958274533610412762632258380616149040091649993781542370080434028612311532708676193045713974693957827537555308820845625029421192781073542100325481859498831889622604567827848914321088621998514456870928022607490267781447717928322565601189182435427332634946359020335389995477688047354508580296380901976686255586795474070851553188099298242997686908541619447742785978318988572774387488508188713625540014388843760241240029745703409069155444330103755758791453917257679690164974443109651487831042097572074742461678475077208239614951337907534441343598736671963404920676564190471963902257244442919913077998503600772446353095470964048155322724745381837781406020008387807382070590014716675667588829741172483774568721421928350742687649266276084656349332384502584982383384614695411088700825880098628257190688223985933498889530874628619554631470826686745746941604937205278283311642981218022153686625380618747548630314174196258583886802074943328899271994321406250069400839245565178432699434338115166075140832691480780306019184796569993090368779902380710262733055480656890254868004762667932920649591002609357879191185810638755947725903216195330930778913241947448086577813647789031394159442085683024633896400896960521845326867946233592187832390753562899060479437550364700124830273090178128100782269754242440535568286306573082051826505318674680515501854136656838699944131230510661682369603391142148978373048052922367681169032287208685175311552806894083176248530106919475978104655093850659373482110282978398635910512252403603910610876344481929535845336989818479904822934339285505511296525781233241610534782059486673081904015320226360397337740818177605921452455855909096510052847939915289334863920386882288834239460453431730886387486241589212288571623280264104910757436231224589023653966228427193412885431741269076772784908690480268511828270784541107000988413120450203526446043102730853393774584171601308927576580974224696930090096869197569457398699648045495043329780399354918440037881723072655344014920244493609896683190442638640269738042045241670009253851145859087753182100017848962649883989835749438757547557455058769854450378100262786262642921680644677194362245897505801308954893523470749844489725086043764195704157559348449142621094584237867476849330783100841859131594751322488766267093600602118886888276832489990904217979115691406027376973147128345504382182897287181981965788770395159325275865303058735696088395017562930571595910948606055014493574191179654235866922914536263849428627429734773769860751950588138064589180722458957692606160095520676616263976900023911227460530516529370866025212522028256984230202819946610846776513987927239744253183764930278410098519538045420238723631560607171609536718588618952693266715064437024430264308175274175548571848328451603895663903269483960340553732429257282036761943995372035052536274567569703879737208110691123814446170852511108200039980543447521549666639790613340039270801327774882768632782436723300550972930200870280874123304307793532601325912766455609749279624977747063647918962013336248376235064349881930045236480022339002170064010496955326098866252852808717515582760893689013556083424126355935306918601006673595329944581395398237679984014142114401667233385230599275779938890720063238688725889211006682993454126830815514361623803336812129543438805233974733743024716170593126598242005378493124471098966962001046766116996435835077636383554322681987451584690138182729064649640381061197878362283933827471540359313340621547594127950151463578854558630080563243758359443732267313051839588414550309990994902621791432045568489037106974768835873667236932461906695862040661431756128347906867333226741654702538913611366449035210700194216827213094861894584438067890556114816922107137017269216472787984447587948750368923914401349949793142759423440201673560189934680453335773219050365956463064314619170830064432919919636332483124501966872268459207240911492560525367049755764959323812954496687037040125899084300126714410035513055753082896349612598881009711773768202629365639396145525170627730141861666528285568336638792851718071099358911812820637515810041475838688171612901564024211932567508400663455380507359785484922454928062855612719828189378743459732174289854648327356947520032925876909835027161504191924816255601464833076478512169011009954827633370097380986820104178831069718039164836297337044678926079654306040699144997541968554332723408748848938815485776267473064178537075494935959535837324670359953761148860111333778036387953006686143251216326448146916531395234558367309092495827634085758439979565839474023981360211451998140972915347520966655119033087173657078458431045455738895626424006375915766244862644682031298687322727838457208125779236553121073394328147989817469589138731163186483050116149448187072764438177209745360666230222121210528952913514169466890925726928900216029857579789223357769606662282637503170043682343104419862362420607168008930253607756776737039148667856212734678913742298082819586191124488572315613062574217126760179786552640602968530828331083469119765267228243764742823130652851589343976316880038869406473331094759753178426563540393066099724594635358943923356295293698384046742110535793376876274400108930232768730771214882781091991284483575269966228205128147105592523861932450040567010560130085689530043239014455600052609098752339621307998375544969418111406165743892022855086072371799598226116323114108314090039053014415144976782381609386263483281678602855312265906969685747310381725823391723996516024381857221918971900692473603368654829105907027753997805422264614082723172339360646087634621892697587224319706025111753478030748823926536739265855646495037907521198633179606002803988050580472956308581572716236018884297806930162618329173196532990148854813387171119673772951283436818773345863919486585210427465436231178407735907525778499850801848219052451425458808884651849045660946984353998257742363917804857933308915246488172808322032330278409586474988701762396037854240986085687423863663936328130710596732152648095421435064845735560896778341066110834206935278950748819404337299535638213856937926666849252310275193824029225928460208607283390185090330873882869453132250895946377584852561856731233755171410206493264884608866810876811545527131617114779252989534167449300869675685803110015223397966159727548286217411019730932000994430142559905865805979026715259407626057004021882249356820715260419172699394753325963594195729485039477400401567338060732404392240674525362771339292999886861148908125286057582706165911612970339630426597136200990507802490089567982545954500888698118366900981848744527718825279405763136695399654391386420360036397191111459708454059504236028904430800768317426416969486229867118784342951293393918397894085631849416472214522848768935063053844705010296774463483402628912707710598401716909675477959042696422003363601905262082064543503941479670739465631940870817300894567676759035353876698852613965838839750140924115325174086990481246067190286722545360065047842546073786568193234265396365830171769840868347445202667575337538449561685371768870571138682589835309044679974884341910318874995484023702486673080125346237618248634144820932699343784799753582353119462641995789859998053859537013964515243092787983550400087532395969050009614310447353926706947917324873407178089369784275014018585470752687289776061879174007298144228539737471262078484612284067823409542846012748554061228265089169202995271629988844454868482746056459709988859004337936608420431997020598009243991255646054452362824214396385158732797693599996997182218418147014387051337124478311771244627985345014886970444110283028107724310460699363705375834528916249400155333205723232568811108704841640800747798043282313102637205695362917095190676797282304509512332129725414192787343811439186738894193296916777217901007788311878829871139501329417450629643267298334347923868165638991143147126216493969922985051639021059773811616312711427537155107639204049573255618385272920928914457960310644591248334809681533495686317933046637415653075446968743903183585328398199676444324703146142594668913070207791141217151504889442478663095034158010862903834317286050560492406963242082654601518685617337421747620736783056269298338562279979571847991483761747603671004840734156476234286808789541268226668091032543458731637110049177116881195630489921758116395207619235408071372578232036629334167417522186470795820236516222533425077294568694953443614096287566441157448293059464850162725318540241864497803589875091827971308136210906533197192426259862086935726585432466314943350728274674068769130731861534145170798161694948930965970541837262121415850582659955718487388991819052462814697129678158413894848683509087894271935827974183489964392397524662082223060426154877100929523141919887391376816358906435267018164384730243884917790884335170070415778357943456175187870976085386655062387769456565173060497638655464641506883193894609004779988511348702618883597665171594691485445108047572045548761179173902115605550564024321543885062638644862646518883819036591196185583249332712087139910234864707233577244757874636735735283040730562777188946092558171855598523554671892649830911024467469734807795589012974365505987782139265855891764947309418125235240714220317653879466507362974210141878701627591988378420506997589975427667014409818068635644133355165377238509917626225002057265981196477363680782047533961390582659841932075642084260565462891617189803304930392279976828004304613475018888836066575908859080437216027379992766159455077006247776619053678004818661615916409532177743074729542633595933673229437929811128199513355653816434133574583471702420312622615360672504994742708569127023879258368804434940018683388245471552749392909776264478734816132328346033066148237103147998255202976574237404656260332101029428734524183836240811722935425543523961366483068536384530806312413614386837375100701713579829685836720728867724143128831722465430972636893202112898735463672742182207650760597687536375523679709044843030708889241147980558425439770772065730170571315801518261447906208319920854534099282584622888959777492612744757657408636229985182552473560373636013077219393349506259640448575149808315845461048846453449565007714295359899095387976993349145277130406274441827729497334203963407364691167552417618574577204242180531590752419899609656757999494014608437859046823648549875468378847416935118373085159028162041618799042513880099674517277066858186218025617927975710463474107651144002564821955605550929493700549135389804671663886739927626388580846657482322830764769652687848722213918177910734899757377709531724812838965816674968695208591064252431279597724955883459557242926212131061220757173941324257032999103095091262213377505412365438369438775322976372631141846059544644872281345173817410480746459686104130336372817725597182809175919752915862248829009199419447461165231655224985951767619978344991993528932802108802628430428662277139067922941182294104517155369038028467056555706898246079729787023356023475514446087189538259064819427131611504743379314361454115289137142471530052087150259676916620936767281793254686273987615982371378687465126426693250008909292214282461696905413358805432118058881855784150633276546682815466761805817237557695862565971841628199323760588483495615779962059009142899303538549360686544450019200624317926344184254929881374071159904165083900752620921676152796959288481073648284625169544966507916476835071893469761786406976156405739399223526518282302518228519092473692747681672851856378682238970975434280110422311747715553787389306187291843350087942634352585062244510273509509737712218931085092605633108213251505820358417331616358341821250322213926201734583986649882748284279324888693677241283843671621285603787136889134054511391168566201318392709628266137989719160876468062840308861429881051739095600854237386833801800868161195418233507881175293102371504865673577127736161851066797546163733419865823184078170404432529005006709493252424248068883795535081355419670124527374839170849093489367538595332595858216166645465190370819520737582008140108778379969768653529751923988605961070569850315583659259678373731513640032647124265106188465412066136220450783910246337935956214669004128570464053061790249617075235008753869330033337943415568615968508636750692808626115565276948653216179325425687474085054091703727176641919621619584881710411911891407085412973071839638276040387416507870358434042346553348652579533691706554636108392691709286407501353792217239027461580835812366966162505591729376723886143052934757043237662997506915495024724283138879580487425511552807294729717816907121893362521296601031490685405634277220860980603780440902504533566297697549304805417428111793322387811962707006724716724835522295499887966003901461145942384285912850901696237636526429553793793014458939507573943469649145979447425673631452446377657905977626400066815119380161112139966260434022864057109017830373343422426428968526715721481202202379851662249307637017228448159396029508916001934004073662395959671953594719959397861884564820768928129558618614195485799272623638251841504537622045617346227785352851934204515952174746171106065739161366054254455531705177074026022704335984898636347877842846401878929399042254908381138807277134048957037918777816044703869183343435439091119164329915510406032610613809933339742865692844593778629814612748276206172781465476417726601189142889258853085697615573568223134184430690653703025504733538080155760334919590966428511900378713332682954742934618831694116397351481705537327210107060582224618489892765980239753299179927235313996524121833032823698621914275788599995085821662791622253155933413041012626680005096979648013254125325809967495279906343789114742784960147029842170973140236764107009166749139568483865392070720056054406523411198339834871982388322273851598738195620286965499387780411980506284632992889223289496463651428838492827358804161457851636817477700946249817622761237869183150795636654467301736271214023164745188876487735054905173653780247658610348322986956560252991091398678031797095412101443851394289402421295534637199100779988945337323456789588976156293150936415100557279210140644032647415451467762028381523515535600610400507237680685570947691568018540206728653316309851834991289766381908275679046446610979951465261978401053246851722552103642219267818135296963617048159811223045376624997046000134333019179928049395946252004083228391768450394422413971350212854685124941942863320437334062081195043156897901996564232327553719507683884094565547759764545161967225667566670867008875418224906077502294227825790703459664118445660988488039295593005223108440737633269364001044973300001059303983191508443578168745993252074463015386780322364125331608025813808008175478440079192275898041299828776052959067093297535648498692283251310284630344685728418166691363817127346851163747784088784670427539816797655962538748559117453506678053797069409631361506055867787871515682163277865723049014576853677712996420649847668359627512511193915442314867705641108023328440068508661660810214015154573853046993743294113955377910566157192479540955306061078603854608392795556227330343119857467671870142399172216429840647086463619751931249098294868607253777604940323865201270905527299969571569695006579053237828850051663625211897453392593859111947746936205217778512041985092327863748774814769981780054218171651004107667985968214349422523896748821674760978530249635612399073305693785208138168937063597364551493249145511698752444967377227684021561318303792677281670929658674697035022381933823439215562388123758683593993023550771703622115821539342820185297519695887023189768952363469801230236225776713747219008112330988701928798061180929306734701269941472145937480936890017845459425416541758415847890671748908490908465021487924417604278990235654085757493855319993713957489349079815117132972033915185691117214061541276625704671333910297846730586487982808441379976740630387708167255041685387539863074215057941069234797202068861730617807784181798314162419782921323863606815622847498079084874117309432022150849706012638700576173840228430451257539158322622106034224679397974343894585024677798559406188171325255032442561247751966409709118734489059483266410580544599846696541472631931097623316255943497242385999032612646621827930769302777735576253562862066856399940511686096442980926288816587419897685873295819956090781287981550571770452219189657237739417627994534026017392867873289362836627624538449825792780802526941802938954211492314611789707286025520852132827609596476643751391692269408532503609331622697659721988271879932796062211089016520683959573428375636123884825553934982715354842630792936178564529677378673142044132706488655013693971255929769832626525667970876368006808752272980701585553786092381159407655885891117730536502455676166825139783164214846938513789118269198883657689546010687360832244444561537895098116103688445540362325714257738999890003456928856573643878988770419489992204927266383385437857474607249356243270353550112325009980346401662149217800277185052236635836118280208504438257911813625929984658201543380122497285162507916666851548708628674822007706776477077113200185185133039646858442060896430446011820319495004806002288441179438776727490251940167128728704257111438714958548684279377106366599538401866791964156270483095463768519107328727739963157570883074225122094046479076365947012235319236986935500816582297815409016653246571775298315126686108391757535331242858300713155976069798935361433469725840641945973935623992372814097947952260076417362585278518437557895596185207918996728432111608845334622797140298652432396506203388425300280392640689089422328271416279811647661154747633404733384212534417949827553725209446233237448518723895813846194342988687567212209360620418160812453513310414820054002540673494271188973562168972353965951858747984153041464497534834862577884218182436897426046583306278504458691334725382331449236377437826901622272630401422395349491948604044170221935819270764576796698562404222558918819252093003875100387336139732820941595070580579132887835229694450632309623607692554779601410821451523962541847644086774437169717592478323846336878019414994919992834544805031086375053780991204147627537748679026632716022961629689643285087827572592320660954814726162155217654691577856975619322097252371580116161137262179155962146022214381967901805101277104757606004173468743137751247957388107292610109124852941391914453373907261959705821056590059591442043450753643994039212277621827561614978095177073787157794721651038658867435887278870992166492962073828378982204144018885958118122481708349604555536515335738035938205247349272881048141028842657164795361435080952941172549364606084488389384455622536425576560156962203268661578086080605918382865041867556386159570234137660602321637732597954122623193605393962568370837241727630398368771794298281479671218501286849237481257432307140885643257747350128574382596075087232799535173268799795708732633396518211498225033580545653868885714895826141355806295571985693412348608572106830827473682171594961350254973829715130087616839601831493941774875786638218306398871792790252637712310850261353346891391099104605706101130238729780714114298892944993046040812067815637444791142434447557808036703371606997989622404233854416007115205301725297339321841107843173818729939389276293511440955159855272298117010765805828740686899634571281785111264277154366176604931938014350782379713123143323459824613221077071686198115094003746580634585155890294089283719628714507690799946212928477303612475746345200089883706034259832638539059030606657151522698771089736113458741026465573424444970067044001104093054331320123467506111898331640632318854783730370617119711626881095351675763078144707259884229502085688754525654671799973112499998225640987959799392299722027244006396626212905034295320193944592269674473315538767616878902911898606039373393819935388868022155776234082926815283836791968394627118703707259696037834559830624971354477154834328448292379485829406085566209314370208863967915056523608992721844688748221858765440557951531899292059490712645433081091687237201596754124173789890711215525238280517518209957676711921201288889949035676989610946562070226889082440474263947345852712879934347305524600529321960051953519885634597600678413368253455146123207568113524540306880618620179170667602575707423909693615437591135915958438458191539031770125131912231476015766558117674798016856931079940855384362005052074171918772844703881216179227921204722590181904643522644552118545521867223219269345675414628117559044391452543618628457241480663906893218147099144917427293642531413210447471384356074758598204304071730537512941714746577231200526999749202225228551582314347120845755110534548514675761905611082752457166094804262199402628892774575361459079904160458374228822952966101569206737605039471876980396814650405459137414543480690572043422947248641188095719481509606924349763002644880074901655473191919019558594316508781926559677612205977787734899496917010236430404761678260080046381102331823528898746245307395023853437977088577779641838369601538444216801885668419604361888973341399826669816161174967754676143214548182823925745287352431169666773263932196196448547388912220919471462269354281039588745236631051507633952978192643985606863486579045146818333014424521192222159662910166762827641948630299237995088633939868278352993096265378426238577284862197844424987022166345040463511902141032104423072489957000416222625486600849251506600834331846514223880603650888867621040457877729878635666233968293211162383941013223148416790368154291264119216101399901849934058255158396975792923621366944880164093229418267338818625092649847291573060324607751242604596741818406891840120937482312562166275067922056748018085203709854684887022326027690374482114172173555336544791924126751079654952917382802413788812026347712634716947905702562098701986313069174671482917425731985917601304345931679678092522824713678862866534905066660051510512238405378653472437642579884189841562596487704548172602887765747393414777684631211671875879411940923942629075509345756212375580983311525006636574210146796241721044014519348093569334875684763689048214671242489922685025715067641569373834845388103471806316270152184717345602485707304288341036969529309853216061493803088757156765315408863333402604344036681378433967602952191770280843083281718375222984218151547238221206563902524654306236184731575815122387843472498255641685152219483842404312132081612952983596419652479771158984756944132910826415631540117983351926136024161534858038378554232897068122560495746045145095624123344197482865551207674901830870240655428417498967813833459971062818084600042091077758617490054979968919654193270775409885449362322203477177498795026126532546023553566256257407531287110318417083100553761540326669463026120911845118394297824133291339793482924324174081850449327552896042659247248660742525431519895334179550586004072084956494804056639692827743382331034812811109311742800485472096904059167963933290607728667851487034627599530008014508543347050560472198900002380304455382127834143427890841558059400839405261873163964361369505057003419113906316247360046779985956906461223318121870059850724170594376406975603667712797005032495615001391196206501684212632592467780515121046392524818890116930537482514637016146596428167369216821106157686635270201310585136853266853906990321584948073920555684149999967981321217183784321110846298347885181749696217279488605603408952346085289450152894588763741451206755626195045390263294569158986400525377427074102542837704772260500152422657429712543889187650882315125099555238327710972535099476466732436829752106559652808911831157988048674027238078688575947017093852820737810704095509253112613459289777110074711056214752147327302218412557643351686366798596719874046498262498449290810399654360383760524031530650956048340128531276690099493037675354411602024308107208698379759534748340469573524379263466947597917411377074336236075845456638293327591658974996642091138133560826799433058069049552101240230732065518894170067677414376318885666210631252206723004431913193632534488705185587325614150566013612677753167050123804392907935687355149861683781237727322439889754391088504973864942224788730034487716175674100613287185980866934357600136295044009757164090985464669096331835405571283164629713485537245165105667191418467399813260316556830180213899387236576992449384773958304415494583044679281861446157699825133903661545877570067529468991485076911626900604787288192710364729101814716616111883630345178414799152973511255931045813913958905460725320478209443896264621057721942150481056857497816379554092635448834654809959035025905358001871696275368221755884798855698421675601533439167669072556846895408719793475986653985496309776451327899614019362403029349907340226026568586492123884710057828061101911024031336625808829226263389967494533607329551144778222111732831524542337623711030224902984546772684494287841020592775676573947713387263528126076567039228344569729711432747539478279931179656826621720303490071370946471394416318419904859008547718790982839192287572052037373877471204077655660581584442323919979710165688450249320810457222367128998521424667137057084137767580645162046796624232173788573660798402438099760988936716584007631754259290506719210099885354886366730473345034581750527651069445880376180354514819951494351310160270349479056906049519486029630166130851547513951094162675943935115169557518446365179873558772224315288783070491520787047266712867224697150206759187322860340874516268446332508491407212976601154194542236986276195860987810874041285667992531294502422933462973499682478899733477407252192751022175375067239860309333029171582522311615826040240139637553369466087136377760959337871999254624970914470725590859988047314185741072461042315571197862701771796169770546585959667457842784153390264304018793180154480752922559941067128973101105142709198885656454158919249399942645415799888760950966374155391398355167689476642191309799934603632061966899295609942533066495842393700923444473806782642933112678736748318591393074536018628412630577137300128909824964212361010554025273100628042090944366408273929463721762762799387916420389164164231850957767582706392069044579782521403454347402338305560929165789621989155861111658981432323030068821383861354457396584299417066405284516243434273586718929952313985108596210018893275190307715297247772641317563847086139314386098588307252675387581184595667338302912792175462837960794611849968948715042936628201592971830041699796342428832188984557344076289329095380091813910499495896151283947691772604113542398722461593708418889123076788546654960540868346211044335485426323600025402206283861121235793397911410576887044746581446479371187051679008475721535851426211443147278799004030160683654970644741656492315452204644848939881242831674868957211871424325572293710257185813465912083951191223027042868194468612863513521902689602785589337514959346749145015188541604376221319331166765045934605917024285256803256392040624135656791031456757623684035216148156618750161516942402004203265533618833758716030734302734981056906512588816333297546597289966635444728603619844799001617990004878495883078243005159320122508486045130592350490184106850852646611292423733361756973249469131590944351287903794798649868783745211629799357664180439511218245069849641125893902707645073294397556495497750153297727575316731560262636099343423723670750392315712167850896695283189168970806970486514999022217939049207652758207522154206273095849790187679926942803603182800390029984780928357533759154471062262154053473068456686675602922924952034863438654222600289133382544598935670315048826337174343209037344626335045884903227268302438029086626783307871053676585576715918924177900509054973189960695496066328273474159294881281184261019428403623708907604278202022802641986569459585803496028542420313488620850075312650150722220784214293679387676492142364100980599000712558793714401241761701311411965105930986218225568317443808447667935604911600787139862016451502755200641540528380103948114941804063629372924492833203593675065583882479871868700281924358316681078386977818231114474143834385960807705195463770984895112095155806964643929322428157348973153252295110557675198746718732121558843684961445836282090862670307135472316410994484588463152484782524909325784458908330570862183993732705927061654432371882228570119430066036776841536865889695209247297819678444685939177717417024759274289331824979814743646234678425322091094945289711399183169872037937310998784002339294504935305464206281594280078668033948813887270897447232821700952360902229809756047313388784492457338133479469335969852405396803237101011054549005604775024928362260968617550294103211159249251880931894264950654516711317421865632869998768886513036128836880416409841088387622496128772828136398706305392884569317133925720200885668976150997989409173524641450478015679579740925594054575939224537734571601755139646495322243989911640204212272539471271139024129559701605429228984379685044319102057938669594467595215326303279132870366907037437695681128660077504413278040302656589182862882237910642442717406556664522857098113127487967491869415165984639452057896718816843603377410388101554631848045683351253457168978892680574784789020797297350138306004708861715912523991861709386198693969303175298051674769562930570865757779645306400312722236464606231637313188101259522575229809237806235345101701527931268894683355786037337438816772683973230823586811170825767647398589562560909265455517036278296866735966431499758199969213854287998817726175101275148751038124557842388669152710814337904855451052740290034238136790451100541021108658700386419490312195620953358434476279086363916561113310283195876730541521945389937523562654643503617475300363191074232279777986253122518407932020382733424987072045024717164854750058029740949556075555888826240024034400111829426998827730388378782230469487040865294941407264330175751198884154720264503728263204579988940766192381072580558404044629644506232599038561243560317161081243239354128554677453812839085339474303569799870688520520454846201744634656847905433007926850082746243421788704903788412651756353490559580815016129388387958443367023252123283043136830212532568622439637617565180664870357020102757477359117963090856387954120284810473452486091915016525269288269703127205695772302979639802224363532559743320745665040631450427683846862008590593063122290134977951715019366809653034347968992242468390928172159758189454235817554360209527411447069599970278837061952148856697299648496777764079191633687516809653394751904524806263323907726660724193430352208598000543338114335450006794859495958144868339379383554358535674060527055207070350591010874948702061633532554462613833205121684056070450431739186935023702729431239227478459114740555672780421585201088142066576521522096013236939751867778015428571369378448608581318319159328480612958579734667764283785024537457214149211571365876604099203981504158148996754463188296414345102613438315274895045211743272562032095042269072548179264972002422735917171665730092082273156577905014180114064779944511407286430026788630429447677540890837869581580954010080825820758641564775740742495247357505248262157353707674008216812209616928588101585444049158757655652506197895393200880681687168077987028608547666143379517563403418393431191064598782018285309914186499054892983778600088190740899787915541589467189019438948285051673077634157416663844021200110590958867036333841170958750934362138695264272251513084296356221326998471323542013877451491442917665728994874093890365345137274916908272601637267905830742604783689000562386000919674540604339645293027454956179439879412432693713294199142423154659518699197282205779202702805692046735934370517792692518218639371867705470316369621896221059376715219641642540615727871655122976410036549068214789398706701184500725303310476049809948704518718616610526655738140665458521208473525603399030829672052906208066709406068277378378379494609519643001608325541383127579323492265388138671629688033186315575771330640199549359690419814555695662565406084280223359410062139914971521052869435090612120899204540944923131637483567636462835319077824604730218850723691347812712076060957305447434572638641319854219358939208919867869410712058420591058099884733255258277625952776218502137692635767329197241807872650154888399011814143520890644522917716103243227966119642888352713043513828730015567274841114445203337520868953771445485782611088663697335253178364186924391092684562315686002383574216480468746227656934501023731478834406480562762873541543730907975334102798289305079169090668175915491987409250102458120131473494011371155542679521257706099719096184821648285588390001116088656759966644493706586528567574890434817978947021171789730981448686553817572118816479414098855915019007925852332520972933077016626155899688268116108656696864043381648641521945825022238357698587204501590715989405102060946436672464497657595030651724486783743592826445613788217105276408188607783142104613652384078152491190815774355805926102967688090770421608849503175491381354336853156329965801123586497401855353044881120128512780558688273300432293371271023309353329574129467200915322238343757268876833827244823730396606571361967074218225506968545960226200112339770912112235817432424816226896881623640286294028414679411186151766699511680782980855655895709651366837074193370559572105648697019958069098526376680187058846061497680227866508785688268885401019291934749927583137454576254154299935341929305828999014262738718872004687538324988745544667688025404336204831808586831884685806680901583176569812849976123675995446983501931703781125439161187570594609431302539954547993043356672801154233180428530984962991808474364937608560570631571983652636034971153329925971383722419154777668313210976018421278767961960932972921110445749881796432808875195540737983503355305426349655378534451322951907351803047417919824977540449755227046232334662058977324469542047479895609227567845229927684048327012976855045054467248367662381732929033386520825905963053846014372048795663019031612615847626395468080398010266679763706945358192873411187792682949108694318176783277706493014019748989507603572452704148206273357459322509619335397821226339807043117905416697435285584276191335436057423870297050853736346230478766011400402677423125743295792709239694621465227055055656233563693418085543701747488855866171759220649157560105926857241381245666343995688995226674560272105489847017146837159085875685435267727854541287086102486265297009580613124789056383386535818655177759880885356903535316168354107454269886511078584574489924206636785730364452195622738283805516847268976246186741892939292432627809895291822555280088341518451717371701957242825427759082558434932879144836101146387048584401774524054703400222654461111687691019356766748267783063152175481329325365065622829558077304741658341182414665520675087128202825534514631824558587814955404030458459204041953692434227229068299918926538673699601053488655055051632744320098073991455548020506159566382992099331824315905205147643677645992812232992373126383722154638693706657650564023459868501196572059388787652974244630036066078548383522200090733451037560226538232824472459023945563671056043916781050304787600388856775579428257700078255984869605667089618901126901472123838721406153219528704646730819520381154432325546827817727234624481891333634831679712973206069972030332065354197614607608676717732816187871899161937873825297997817407347436982792241873021430020722764000716700766167647889512787954811895628954597659010423927035048556010136699024821078235150102856000059183889062420693183103952200802629095925913514930527782900439532903022511336636340664440357648320679369485563549920138945425007442394853748910055974746315479694565461414877672245075144928252313325172594128925688680603841786290265718740733682392193521170734519355812965338446669701272332499025269281784529557983438769248808777519737193075520062993129908834221867708368550643877710399312358442747426539100204141111895951396549417135778095124319265909200412837641237634829055293301694556493733321014012091808395804590913886771131175909523678127542459351765387194180015500495591741462725738747695108927308677327193730227931788534122149099226419326596686865397615934275963123350194544009329189898201269147575229204877487596508149502951015788305076976464649904266987155558327445271934142043940468729824218492771516481384405337520989151729979481838042701424140333601952348478561615305381567012651746305261470259758694424852600601791418009455184565652877242571286742087197690270062708817507471111155279764774147023609896499616862207550073554973585661959175324469552031955857952749871914083067324553276315491821200856609952257411574207589572693503667165341251907295738154310940763227686236150754101936030167196573886765876127543389974077114071872102860972618808612904631957512979897964432711539851698150830352146863333995072967625846791203158272296442246690520073675301205399498926343697803257965859857501189489170186257297908302807013188972068655397299772253293405568718991627138195742004429195076937474028921027567252042400183536892050785046919296584592288494764404003288762903747942327613428251579466377982253287096784308418093882011826888170771269890328380476640235657494068759216059044786536298013120657699664864080698933446595727000797798618252983605651226523257591181966602016855569110891672399246487978665392811465363315349636606053244302986109395642796139983480503934418318751408718984390172797504730995313013218449318596306163880827857532565952375441918292802088467109993287939767195800778094809358795285165956210158331239839953995335202444197641659665750599407715029338863928012724799897007312172517706377676300152938681472227278206405212974445852780565921303976975532195107981776361795794210862414390169554671908026798577663391455977699939172813616172486130949696850739372783657239735144469554004144324759655278652912324738687125165360510868620639972382507096805452316013854425146463054082111961421466121169799862061856472117625941426449067371070298153825414769840531661655327943115819674539787145722922968113765128400523731049246164303992918314262163533371761529000498780735138000288899952207540829892736667910237032584050953923532746550798183857787659226392425072666464810467855099844532984913021014688585132878977805695229928224256151384019997951041885953120132254844332462787223520236486334828216654390172728535572053538958807376739110509019083568878404582484208117613851114553070872378794094627908940324834220099303984325335280835750572027153866344780557465583209699809928319507403844487104431806551883144419147756442141911504799949204610981679342743639218091204901768269222231823126736684226736723312699865471116077091444490901844169812169502991592479642823641527686237244529036675366286923309117406981348050075870600018005696587484647750563779434608591140545221508605969636321113331982853022802565876397884125557626839840143362359693360736638096570045929507091838181476587981037859628872282850920585172651398765305619683251406806100741788312627116739809052940272898819666172595710310901316152987554838809511862617672043909525301876883446378808927650886198494585477873227780845396846535135603648429654344981583933046608109291816350568370660278947650046651358464619536199384902117505708646880428491333796889850940565130211692533089746658990544502111932346730758170517510074361335361419586104334005063457251436866696264852430075925462827485295576945356451664094732318787647803534670869786915209678324759191326466802148597516232409275185231300288782484697383583583889756525473021546378995915396912253718523677279876133149320482572758137239823632278388965953041085804270421059172415212504102702244278748407076239751174741522398390816203490418617935630649258433850203168187363691868769606656729487986143439803433235867912761159973917765428025440392577458237811039170339031611240793455038492799329412989818964180657125110833080315471423195616043312693284077471389012786009434607237875378467628473280896533189110678263806434976511647227308248706867494432781078471371523549056716354438906449478896440085786454658230810877512352980597082040472658791599353460477631024733449444833100059361072632708258569220130292383666178487837779528496399786143641959550925095933350564101362870514071191299766138429365457049465027135031840188598110009435095083243287863975026967544508427577860368569179348672597770630929013953693677117505131847929615956567841655491040902292155232516581261448591870981381794656036247558904441636664864382691197147708480223710059173154305942927559904831278328185615605945733346703510119530060089067450825794094424984972488814814237560755900191763702877832739301935538112937858026231129307673793070057289083314854005450172509699729036802106650681197675353969870508372805773036232121187753628583232842370739654611454372500588634160339553410248958790404332356800978159372583550610300738552771563702944958535245567134041356488591674665418413549780038963849294775842954267834410664143371689344748718547698055906024803826375207084305092488501375265646911843507237942519150162939921478840935717133130398759436174769509280986239572386325476727305426046342589991543432751397122644649093118139600669588022467480351891338301899777464787957664541441959364977647189453415182286327524191918111740970682791398373216368134279119523658059251816186255888763695411765903563755539863225662574798624475386481259491003724872453013542322227573192789561491862390986223656977093269300647945390208480212836208012827832121534320725027289816468134125744166066993659663240375298700405636497199618168711143883125577940487671582021768715201498780371981096110185383507008239849580169159826486951741505857150799001635789168675915498313610914441661933920147660465699066162938942769172004324550472847412158326123252447408211348358435305899207170462290929102205601489036330762613854875948242465586429975111061071514593590455366272723698114468203270122691682098624112854224231142846412964412101256201549620133650888214897286678789926639272004718732958826990672813132187806559190628595408062846746220178773532391861186232200446949705575500866718621299835120434736173514526071217484084436516195131414426991200280233517405470595076626174906082034128557593654603578006306271602463825708518626984330576158555006185865153764388506310574789616785283457683147388317121537768678647267036738841199357221412783405018348195368906350333588728970101721141714195555379460752408308220703814590244312561153870907944037159561760576988344710716947222573266709810232979543278817186353763851984521302854226827572690709029810325039441867917335842808568594862407463902920569144636172251544538934887558948025594670445583566147576828918566129458704525360722939839985641226524968254612585725171409817542998229880872175142861242213625831898851764601282931795456926836990013602880546759213504471923727336370068045744125551291492805764280857432002439197224742733863114900814795501466826518309975632902178104142464103090430464195573157305317000564584707532945729255066266910914278723921294246129587697128975393993173027111421698256866219821367766353286662281923842401916569294530860243828310781183020243212609806976411661009936505189413504810375102076257078945971731845726362810379341919724657330256494699617304531698277581325940304355027971470846307038270500001574023825645093489906341111488602572111810870075561301004956291030347328224634901112775637660516709083688897724524768769970284850011330088678466753346536522214542415165557129873192295699318054098862474249261821081838958972772273829890838962508657904066103759905750317538462537478708996282087937692871934862250211621994349047383295021920566009446267049341180369334303788214066624087984731244290602810044463497623513101105701204350053833028555878792708596242912476122421748462741954659067855920523791647060281264948125684371131074201080191701618812151339131467634882664351633297581069506977659954454988287538953457011370114035192204251029103987218194133583576069636230223045727425022245941567925991903126851060080368597643831321532004528692849578406442559591963980076194193255368175211296270775816220979539257254136071064638512793973237166001915473695518590649379846847174873854525808320781077940886120455814210474660827588973661176648962263229406975562236333300693596356429810064298843880962387332341078901139672944529658816312356977106364224842623147950336392359729266033104254553826173096495027995106317688323283138745405242441714475011336694158338325207368765952659935537779849283657877351979358845062118378763032390717662344226028971375265616584233624038243108013067932193488876494225520902823261672651292275376255172126290666953463265930006464483036386138791521041627131787187475256657883957591012665733406883176312014226106689395161751782711320554975401562223960346672740086025761610483785787278113708687522645498440265859134729372688754597906818725007316203640955769355306232833604514709501318274143565304478798606277368530694075216417113077783328751478716898569659892491040115554774828820590839462317039687318357407533152933064608618601101630763062035872119412357767575977817009548069595652571843086583041645229542004166145385209039149774852370462865224072449952436397465294891228722601770994480097017682312988043647865853527728104751280105140026836831071998229810221445167147718811309377192401067524563854123370950930722391092036547593989811303856050204827856653085624880585674444101957040500218216468132644225025109184564463435537475779661165915238210402376363866926477149803716659539142172790155785737716837668492470513409215638857774863228767402035563254175833035314121556780957197016687336884601953226368563481188670316529363833770337868598068718311073665403344809764535062376163061886205000764291818791304295400788757805616594685978135597929092391547162249782321532998388675718285617503248611982672266316058708826154370571863416647060583627324195838493467517260297295888927006232958052441821139743570351169470001427948632419895760346621383067907061164745188536488973129457628008391505711240495478227364518412124236080403321770060319673987622227385590511627116128598943539792465315830180807370283841475051956687718024326996249379157255822956430729933111107673521153907968064088852023600970055390787121057128851461276154396858868286620327440381202634173417762574341759294002933663159148656706419245285403508902228631167145406879186198401587585129660778734552090717560309596601247333343321591849983395935439729840723573646192857236770723597047249286066020500366894798650799579872305591565891970886403090135893997584497501667688634667614057779246041997364524287690088612770133041042293880859263787002129428030298406914844616770977404274888157324240696365322725188157772844108319888404244955487280431506659983112114010374785153908340412871473309158003674715446899541113294524765193477058102017342618647549848964082918888879103923391923978003882561279625028087018401890904027422996538243328782323080479621708575226071017757372160444040015616004160443080046036254550528148527734671132962915908711857563032155853103354331801279930109167575717753325877049068213266355653387199401941697940177567605768126209189130687823834197873276731268890611104548267104546812336825757674607216850899914425668513883930775918399780925583402559114962615353656771775922081213885824710252512078897439043204421907241023360663149764628669145006361192393360697421336415582721446728869814321145206230687022865614625770571555355824750015914522067524226252665616161779174624929239696432078031815374301133112507221241758966360126357291290923944701287719538314254953854864759699640110572745684997871995935739425743120688100085424342137388361849419505373177088725888542565372566544902424150383918217011183152324233775871769966530561540838377715347324311725584381712093763491216974718746999299558393230853369803040797217673025930773495041286001681155942949112104383502579071790348776588701873057331776862083694505195088145126885773458737999052241520808565297117216729931491814433281609337843253806466705118098769921352491961145710330716990728783981233866110638986988921457487099722693266617331793841490963892400090708321637550344762418453372697119278816521854076851126088889488187286170069180574405824324339871525990773536655564119275572177774598101812695670947795200235046016278290799866146817552835409674505719155206595943531499482362199751420934921896379950842855111744413179295590338501259359096574183387440255819501973399975258860093101309300472255248448069025926800506231520796268964037346593006882707946507007418799412360497176609604909163440589577644777793531404220647044895715666187774068472791804853198801613180917864934963210717915642514994908283272135473806953087638887602733740153076299090613110388841250433616516556159300704366641547426144749298002111846895938059274126542190708282786827091952593074781046964257109243173535181924538644619042737196094993143183958367990332428175919461772316429571157009781681139011725985604360103418340639454590230680820698545130850833087303022016543027326306555675327066724257854106840885598736571611889070858682567184472388893101338852762300544392688841658757120948968845099194065492970683640119503291578156012399349782549656409537726773506989442296169860613648098315998367746386231564258471760495160059669677926428899558621655297207368638164501524733580159947176539500591627992757697795817221518943537590447503511016549341564791367057491208077196765477010020996152853575618028777056217604715795962755880556969836918913844637632955280203678257995327934250677353469600331145866179231454470996499618466734806915675716632231026692710606640546933143759097506503019842877080188607894941528219743029869382180081329372857037213498320372056277404017151953625046220713266497844150415444813988611075293978508922133006821945163568497689042149277665731784626234212831340034954398728382654443071823922880506601527810441212851897064463547617423327055180622548878500686863728781703342406615816737187580866191210071421779901017638986970554130344092119036142030598881891224119687203939460724217249041651640329377349221277290650648098636883627874737822395958123769861288892085399930164379620970769059635883090806187687283296236529497735397568642169276264766627007687495793338166055678932868448249622052709634741985148840140866664515948915568644038951846187052896324868134867969049524771066208272378895375385799638306615573706836283075342895383969171066178644643953149103360208793230855076145499507166332862297494444027954043062978627546514339726326425880218907068764818844005502830798459986273725172371080938839262097330782126152865245566891662160175337564846288622326039827373844377282208031427104010661598946538743011741290795935996117988498185264325789443771288713895571800370160929938821981391163923069196475320473794935005233807497995054987165676709707685091470906285622485725733174574382347847090495246809523879298875988602938501858365728138948712765146889015947126471076144987858664775302475404713588202945441044169274179090356041800520770223164940007896686055599453547430131551212181472588194982634594304362011036266264757430636005219953795543097103512202216551538108731978815844083139474454325240947097801104118375237683578137252977424902961930244045884454271156086523310201468363143004188686056040100442700422592734813787145274131686868571013292916452503642762641378601934431103531444256985594091938441136929841864533290052777783340069652235474821231913746990192967034442332735323175168784012639887725766828001090510820964359392178821677044404081105267966740479694492234196818446190000985796679669657743539292868155248025792220565924723142634486635679479419592462729063923964149893569749291393024022460698994072730470163975003239854361757529879090704040479513337866617985798400226248412961482399264305691616205627364100958259925320727908858297501248241210314465039123279799457703032831002063242609903615840856665761072933739985018493775970550939335749177172782613965615784507738024073505720269014425619919917211365815764112169190522843031100227030270050684666324196875137912115280255039800153207802733108966419838734526394315111468917081973628086109792384293488071074116841043973152578812030411759419983772182424273225383531230233806951843077141129740647304212752640843227500706761784258589654054635261582799143314768493715032071663845128759084676961525986266140974483234870611145020212635991174030692816658536032599791073288519328568005018227637053960909109321710662707904347349553107919023591762730115199642081635304565719342707310514359412977231972177063917653200173818815858318721970671671285614036623970499669177532564737845561066440802853937530905863834384047339837465447796468061316891735496926679783412854184208014605665179040214386630645729174118248641598777255507971072056328321075318417048087330638226752136304007740049596056235401440030064243829975826101278205302411712779358312056065163497433730100056450878787133941754077098524468214809335596323570582932114386039935638975414332825977852379297322295435869522500191049891624287868744488558301382205750468008442169212327388819370213688025182054700033355798249671289216652278704659056559359137586608037493656563460282072102173718458332488420030665873525162841902990355388686221523840353640095753952862282406553552282972910446641840341380895976939384636712070231503726160708043420818471035212810198056844913588109150912016332635010688133709699502780171909500075757930077700963897648416817755691544297883915496487190971495718951119323035426976326076333099149120204463457008623019476324844870702488816377450051048444814122491448294104240055732581942323105037352435603471440924245398405018301013675985745190760997229207446611012028929602773448483345094615968817227590980011331052689962670598882557870569485720577971280607683779118200777944278506113557345882206833476421242796006583260696987360820666237240426584636405110197955873515053152544034027992703123277408419717813146393899609924423033516470996850393653814237606096782507466913757744534163663768133437328277511964157120950283433925190961820955233699436508265246257224071569199923025443874124248634774861075079341330038261568923111767563129296781093755647930308355703952246454833617111029409987650339127153883571253544264592176602012479690502855225152809599058946160593477549611828996292345909565707656788494471646468364863258224628021487888712271027295441696899466329609566239075122599907553478510495114926369534776528614642078483828496762428778320707171133581157472571172136172941963075717222072382558013565744108904513147530869889567825993064422071858633421365907108668021376612543129342108825543024659850587480002053662955704526589382161785813210971821174660044838307311925649243588577162381030945544986133844971180528984497177944616548092238054410805805346776472406449465866939387586520934602873092631708435029981575452423233059712146470999255515765027750498187485950543237002796819766209549082980194215225207874359457946755642603909671076556767523503934312252834518874125224317377530552541670923391068973584911787858667582046613337531251844864855975570415246043550694793640205258580569032808559172743643580841844170871889938824750301930852564363525929187305118194171471799012224232108086748090587101226647778076405978505958179173949225366051765302260648962703876927804466424772919585366788568090383630031441906639952150349011096706599815201052382249364395419130903521909860065000753259087838852526575621020253266044093572438000259290406596826442806365917129767465861169761557968579628955513420960493896261381679888825173565109315650882347397182005118791146834749233025424499331873196785485193026309313904931394537992370949245581857670073269806855072264292915405549585926224423160688080996145720132408527220789569571295148927581590136447683559954412537818077574236689241033577488969511857973343103145188440350876429051318430869793484027072439319422485528984778982356888738162988492341266339471062031339232424372545430673904890300119678247540259142135141375890654645874404761324759977756670892631485945029146779798287406675992773738872802346316590401779189451641312954359429066176015496146651372909644631928443782647842599950506164865607895744163560238466350039760094133243613952009981063545569771217882688179909654447768034336895889722590059230190510997549602524332007690284696055747629085356599793523156191492771772510163123872833467055517575806396876506093227291635328150960881934056352716142842048150644839479064567979762922765296664642207040772033857652881299114023704037053927921450585429575714969082297755865812016726901162502399087318022470192548764593978372205736556464960427442603312595684615478342787979665494332852742900611828895033571299368987671369215691218674744742259326195180244634225109508497305165115127962716576339375788016035263380121128091454853205992237008705741627904072877798781154054392915247010138306821288717122887895993337065959851553218229420626827707177850534601639472030688666430837743040724563493706475246597086893055261861376317544048369673853371565993851969670908838760331820797302703888502327416185185078385946222870542802919189824847027735864673762372760963001588820905794140842228629023288346212641649157188023637719830261272114697679780735425274455173300197975984193811838372547761368387070385584849411400882325865317903639080217669167626386479004150261673854105255633502477894686509092341715092987801535146804798264118241399612421022361917891295154422091878598115558479604057471018909606514594783170951739958469260570608428407473338119597451326930605350012088388519944948098558404426607150550937267484961454539971414956324531120922646728095835648323953887714841699164841703513313947766954550159831940227517330647119476643281185084478459620149130801624130021093219974585758029806255381572137256654390001170611361018060195575664818193755993748520093172641446968912582270579923550503831276085841305544541960970563269692041946590108210165962790152910103276156705140721335734167351600924160725012808798743728146548451586885432738572303981277224595147909602914824056860427085933944098720244723253134836927534388736064506293441768109969048849005966478107820567254407806226086892001892738336642326053275271075191800827391872976227018893501331580554171627549669652179227853851096697739423877087795848420823719388846951779652055949157008136749395565350854474889636831823310995963897066409699355217708092178977427342705894181054585213087109728087854844411131424572884938037452365450035772271498447551166347443794110944814621658215766269711868322523677268103238274682688159067892666697847264587368825200429028429333836936698382873176012988373247060307133671115107588445969490948309037229091896223720835064225226427129586967211851037165629738187667806326583748127869061921116017846407696116739860027892962759880876459366511747077159746717745985562245261903054187030692895850661397435888713616937217820283072652343609459039689669231077680392336797822710314079024774406583295581308367485091693929571498887605963395532939270323536361842773360808637652747855438918885091292755502393730924165212469110016059476209913379681720329325668954419172742348664598641420991957613712820420819132389841460638109715075217911709188770407283832046666072359195674899246257397433947379190873690736574781577684925936299687462149378602610686734102365950089903520706432212180813791053608850136983480236257711862513437542397539123881310529869624282012796411553290686693031116683213583200353159257715517734321656199726463263058357665422976722902879079744527850550021882158700074302571266206002006438132919159773308950267664349242303195733946236856852503562629455791923937854008387267075424280783671944098160714065631168243822450294520635835608510506019849497277800204180785380602912228839017802663214302294843221174609670542160934362091033510197074205138085131953109268153611527586882806256096425444738688792968804560231846860723986717890984064460744542987990851173044538680023442929705421273014842018807846297231679553826883871502458271505893126151684944379606781193821460081681103648163458151577250165514313643049474674414459936532295665991821452541105256155189805143182785593933989324612898742125442488085761396105897267993682343322086086596912051882599743706020471843999941599966987541902986548294166913579412083188277725134974098297465888823754684916064619006819003177523736727753760448649797028181828218892480112789349755302432697480554190829947415737529625901941755958109949484644552931661441221487430650809160505537274428925486033720670475380901993059200654104126524372066870509324447572913889466901617450698562797529830112122291305298780381337680905689441167524589830878894461859330525931824238179759145788728039799006468851855420916951122985028405751213546877184594268469030324750222795053850603225078713608090898977069708605728891374814307312351388105480454724924975559571783455678533007111543910909343957060684868748771119694459551183516125739769925903121088817574157730636203294106145905475734809771773208242214325876530385519847248662364032523197323917191253022852727874931284823928084928893941721052553092707574351514537612828143738277088097090425317007313657603783691252242224202018894771451161828115673090620078077850493102971983809020662492158772028395275141356896996414695381768875441991743748746425660556469075546589193233398614300897748535108328254403750398267094247693290070205991156919527584933057523595471270312970936582326362348916661515334827986649245517695926924172644320831142308585944712038239729512202292157317591181204148008669904969734347041619756260959513615959606560686638611055041098470125970429976786330685116647839545272895174090734732889265558840015445692459596622229747496175961909096186053792022461458841733351842684959907423143513027338608386518884810375834722255043512655353293629294517966730672808732406802665717965582448557393659133018313342590268336763918692426214451099413246905840001423643783389026629784780842732067422969434491448222014885863726205812316011139403053915805271367845792467271976139822984586344302205297761472378102691940771500676626506264240195151145453161252063507062434870976110796058055621533718088297240642527355722771963978450262086767530804353739448616637326240728629530160097640978080734596839942896038384596057250575079344708424058423248742532606070289441860091261515548733360759489894636208609206144440191848754641245695713655439212843947492328466264080454280939810152115068518294676716713350313860982599015197865944975605834300422594605653220507207925469156502352189118769405924515196886539968991554650432430911854923825851695323887066186274539114112829498411514636593566963472786860282174720776534685814516781260570952817467482217196332561995716107965228205099712596003257777218825432727369886986952320915953005790716920881067719524352361628962529998794212282556514163169494418787361357798528274301441908181716966016862392439086969188006396746003450746609212754635599533656853172673464934383225473062572682429499331005470718030533233778481018131911982825380060305449351933012820817801848239865374899287572382508142582454636560911314174827661501883395480271606618810003504887723965858565411858604833759169702643842789489269896927609730261534988199838157006402332810158099420893541723736110396777175885168977594540922324493601561357163556128790864624165642594129170469293290415370260106309674609745518575506836873026330180873752478707784287708761042475887742328023422699929077537409391613667736412587863575862048663828755961160347948412617733860370387759812977146517359286741261849565816971537341859997209954289946571320473597710779369223396759849649947598353044354145033249906988518037626648903187939023030863723198287702484728658886180254094401289621225339183834290829292042967473529518788493208777324819830799292057509799870345755759430571189998419979096397289362165529552580848534754930417575898051614063674140483168442122318909029348405421250145719766998451298204453213343412143934274866475072949905989082103206010868535124779554580655792930767587312594697698164062660121001296493598538120815348218654281834392595179143699444433737799865552446729792625043114263851952885806059030163032186762246902124448178945868000661666868237950329848297611085676705506819548910389859095972546597460929415058516189952242714114720848361027210213727912379834964266345280725117085130076232417443429067320703496841973026225236546970139664872193099372152886805227240797591808018136305590428170380988388950094841247581698488251542454057908647009241014951671266986008242817589064080088597756757941586990760169613576487251025403685352620651251911006602017541721708236487927317324728869085934746730568975386977861961874122639272768284606393001607067914978169995930995874462466775136059743729428054680553878246948383339785016091595031995131562974141391745716658679258540489953950562159842463656605446163226549180757313317519548160504680765239802884968389896535076521053678964563378473272248017591644986513060670692337931533411711468042240577145366178472232390579532979479138459780329778846215259827384849060255662064006450282091939396792001249776993989442825857592339097621642177391154081740833123775615437943628689444972297135514769516874645239623106945147055074568452199949138564309151724041151230803894162401447466580736830313755922990010392797571612356253829695352061708850569601922027660832223125101057681248072705644572153874296197428118484555175151835519390402735337626092859767328296364703108124867462619857750291917838781289865173020488807152812297888326165871716868291092923542024691327618757084208862121104769585006257027236041893469294866726562156426834203250449137664478461855803762276549106000283956867309341930718452930996733105404772378856130733029742935332859697466117228294240429070928626386558969327215467761298048298202753077219136235962796171356531789730748952643458678832439317904049172863713019683674291180407135424125887111444285590737863711135247747641396391881013751287582832837413902228407673223842818996887896034574819331937578351109046354348892816366346705824793415220273610275615064913143137218038870162077239088339404303766370991317662398474900342737708904502680551604720978429629229170484960485543826802039816280625796402832209282856821855998893783268760252303160102311293546791294737376546547290004143960463555899572758635779137326152894287300392670381018339615255238400971420065443498837813767227589944558520544595989834594705260981465109551021721059923287510831674926983625262394897741961012411223359985597995834571681949719860982858430902709629960405027503849034170642510483575833943050268215257395191934821160585123539618813625131919372125771521113862181717360998076951955310193508360162642975698170841557942173951450918386568357191828513526622602086459852706634374804522980281897441360824294827053084996253752642790729320184581467076164824985416496493802038900627765760209068749425614408515118634647924432735039885805542809045289498094028302059201085655326320509173504433315022789774948196231624166443180117155901473343014797224518911687863265756973292301234697238319403677836006910562484980438323172036022930287109596060952905213912015840727365935768415619305702324307884529916333475866365873896147706755972811800665737275124707601426205904496221484118841662635412740780498299002235215951431243563929920300338748436805187974470615658331726835276587852056866890925546058048545015833968586811776449126527412496992641542176609325523205157653501848388282635667238543219241038782771332253733195655520821555101154618183228119041376828540529254500580673388758694575630284411610406400156508819499288975996218538190942734395816969058599308720979668808920289894944392058807886483204723817594965582346518409818349317604504140004775080068115665701261135554452028666454599562732418287732683335474355951956136488813633881066954583848446341387837493695534685715483399818487315753354372175489926457913034903086813794571536708740325228598304498216677406866889283134796232916902468549593383528500281337586082079939720800546700971168481518977231669437744359956526131066364849655276998081272859840925970553717843141834244566053413967098096854013036108939074427823102341858333108281913501894288921206954940846953219300255976143746491670596599802323477938448292841361626020300896356352368558145442405527311245008168853258844468440273625808330253336921684826872097722852594785319311336804222855382247642935322128414007399417656745381807101714159430541226673863332753455988291077499940450731881616328508387507673211340390622973621416088299659081604289152341216698267080851539179482821763039606695998641974826758452157231113727610689283056892907305966955141599239708372137333924038754501382777800031124411906377040762084731043325038876102752041417407946327525437171261454395789274481467317809989385371055845353637688703780843253137445573243655081344937923978695234939420135779418648760015119260698729746920371286595361324132009195048788171538349797556414805884834779578486190177594095829182329212580374525004549114339944450379490897379605352017012246117782378122422407380313553453879471832623894547875549976290714987489908218685444216980385638174520707943236698179399705960601616296832218526924477956760777273196504566879112087128539457104931695853295989580495203474195329096144927396691753249717292768495245191301727246154495133367669605884696595517068753682858166686850540369819267468386488548275261295248581382322301511245821609842643971634819913589289779112388019859665893704622925735237951661747428244105113511897214146236573849720139903314690080537523917198973413963675095046349298349111899080662017773434394860484864884758811966097460831948914183975275553867360524432503029517319751707860935126147221099403177960138021039353262945495246872690885112351745927833673395402518212214217435500354988749359391627164601287110082686786551638953508847318329790057770137953349261087374840230832629766778181084530036434761096682183259550550960072379297283705968986036873356482308580880189627296328015856848445052766767756342454581411711365032542669803152600757702695587144607973128438292483131784325418709256541230497464745060459357925952221450480305617964733326583828297129357420167990795296622244715672828857935060540543131455669584026528285172018398749185832861870688922240117506343341261680851242303176010560196245077545381747471481753911195754322959060700358499892421262789879453762998379641339145162555038217351126902356027910501597775254700696402966650534171102259798767455071091188201905131341164574088718708675064504030320394466017648065591034023289164075342155731872154106740015774913301284553426698363278023320804443291936796925533821237430412106920938258613042009923535056736428974550191915071144637135810970980780705708076862148850701631944321181406605615872174711284797911800386618442471926294897292368941325618217938413851969313204341630390738688463267268692573879604836806609879432087018458680687365665132357820367343928080549196648779678361006677726009754814095132710974325936668592450788308956525612886124701984916897278560543247003083936658602561322200558998558489207264615437733503444405869998876632861501890506992939418592570894882922479710443736284717805169753155624731929923163944620471190914993996912665616311212192690020519346357290177902248252057323860001115788144126316368950514895771597564503431544632029280224353316164541563457707746319880510260398100203671282543136402645417679669532706525208682616909321826440958332221430889704485853789481979508949787269067305292034091326389996237810505850859965310737115265434171703210384896443034358586002649496218802453952261071996231082562731825761080944560136582786625382565961376262426744439364719974835834410988363718534200602354156713308982259674082015583588363677677011498421000920748774957912187592779296667965123749973455596729561701992920505944355735321590299638552297218028816902164484791537972307540100614194543673041943864324139548855175246158857381360712927453086787477430035956618559693203442160469075052394668550884815442008538452862451259626246372923209875326851245144210210635327211559666976131195860816900435919345832606260010905719501730550118595452427327026190203723109545578939383637381202097525707232151416055227017265860469603688421330299686955287853310397520542279249531422232717600209016569143160639381553526738393417678706303553223297728176844944565250975586135011865075963708126882281518908859815361630605373569624028531631567181016286075760789656838353073547051609778945510907081584876249406593355626124885705316210546439399453837987893636882360514008093567816156481962530237096365059625704247179851319144984631221394926069713671480567373330023927992278036948386303463541070090492418291524765005328709314283301005330857209132673300026093244402720146302947077856762939528795030997901978813153115071144930328547173380745368017907450468930903323261692908058879772395766126036884702875046633232184698809172533133021376692520919115699120384117177302188721338702761189318845455903493001899429499797967763487479649118054984204462390163553142118757632878475036427706668825688547232186444998884145915697210451221095856866145689756968114283906707034753864329696097471912666070912946188212575111532968696857772006982872377260061574303470722337181826372820371478349361718432684791598317738403857855014483151903309365301432117774378015120319023680832770191803275143242766813406582152910205584764836883893919624678643718186206427391664028112583552554711790933117022124591244428150777759171218388435867169777812341599162503386557754715840835326608086529546176079398158767439574069337949150260928045025372510636743720925826018028746056747642817471797992345986842305144965774114009092458877729263613343507726004166818401185987681838779733940001369573811810541099721844619561217156006642608612221394488651418813747050865451143091216320115622349984013809939728142513314726330515104869915581547304342464817686729631059935542031886392339847399948273212310049331399047559654728574154635779421597783146486458885155127692472585550668874147164636241028830059350481324390919874986225523588929694717105793914068007454019616465746187419669562397233513132956444104655750293761003711106942896198053677847943182832635852019313189235235215226874218515743737046456139926023274148108952029625009435006824693743170175926166195366679824423403662586792246004321390454433123570745095676739774564421883734039451980866418422201227978248495746917468619692656290914837657474545762806759753623598512893822117357657827443479902971188033636098015495252349377800117447853339258011561012843486884761910777410794316085300895197170846233575551514153945240211214488732141971385889403143870056053326925549378209651633407854579541317555401578801254067974473092993527527088693498301686822311752178191751443158488644386880287634863629676862332637471293325303982451003108105505402760906909677461093141655485647364082532087591378307007914116746136712331736575665123388288421054333098171064951213522726328976962252903084451588223118381806331341909474718041317550520437592382287762391707929474773528167547728709617507323829899969678105683757925938790713384502210461674178693126488499732474313291388166333937276507038091409495486881887161578216721448281624256531848621625795930265193133722285679662695016303006616447389846298917373241758988221711520376435306268423043403311432061732362736656928397836643467741854103503807725875944207679861581007716876569749849926741422994389342579530440822250722486647738000048612614125911080431586083868815040723762325388542973092321544015734741619668167578687435724031495388281880322677704958013773803049800892847071616324478920946208065964892067919302483554127742206672631826433506013048543548534237479542310361401220585279248917882275249297155923983686519942507995635521506938396340797918794705511393305923983187250198436567544157264658379889120841987361052444570045483245230922001871699097542233528303047117765062700855781146999376614321976099536074301577974256227666479026431134256559747972127524895955841924839227465997268126727959907597750763356264656756401992953458200221345336627978906486506001787085319539189711622795709297644610767690248317738572759659205872604141278732174997334584450849797205297388220280737100451781317929123583598371589959276953671212664070725880402615611114455044893970584625057080734549453748743144194162274112007245783656936691725189120457790077130752160314606193589291270609342146718476869028970566465813645342013189258344911695469364085381722664730926988864939265561890495438248848604180949092874571394069204635217717542851950580403797748523370295023000538048906990874997453035488669121146273754503099838219651180423526839117081470609509705605953229197152339056586793730623862612905878934542751354225963503364746494013139360783802878895244690965180584719067590239436514934680940219920625243235316064863534186638428133789798513819165275153858843376425822764567164235793237502206360294876894860297095833440782707187598826111240718930936523982404227464350677113228365056433792159308530328882380374019070034128631064538077556353950003527612616391233529767317230676595520193510210337952034274923815822862463046277434457301404431059615103971885573137273017951656259071768269082114171926338261029315466051950574350406864593974396599733325750523412521020880957146888907110676793542503227659257484343804842217012704722962190822275620258683120707992458874408299192808833088934522496148708466930903688051928505235201086732705758676731853579573725503280027789368255669789905109711226007949744093293430045928659307184984287656879493658861054017939898638784000868779309908568946991876602050877377790573746006759950183351181885792140553596278228475757680990168253804017050086613635133183357021823415162122223663628965516597373620347835592250614936046811968925801451683320396028662270452974866080455319625324134337094718069967679437570994730668556682974844036850887671895452532148082013072121413686226231691545938960383743193486968189905877024356022515775677387109311337211050909461179299513412620622447347383556881511620696668578365114543455114565435954020218767074846713453636305892057854092471087050238690375973578859164817888315460503029107903990147543923386315109809177524794803240425541462594542658161880278202944981893392498096584601669594918316104138375420371739754380380736894861486241388260528004749961875671304206448624812015003972617110736982178846035163046769368066210170239981411215263324003910493065773304062473424098129733790126111214522628137169141401854785657556128654300345142410889049700913338101064797690656817985062590281085741458355697985309675499452788525162917754319577346066710786577893659790408007748207810623493745718611676413273416822847171744953640301929612553511849596625728494847646247055622012956355821394966090820430743101339386476591973790292346966600738225035042378014369145860489745107740811388164609909334523412918380712369194984851369569321707621887247030557193795011798392226137326871924058268026558255191381882982295832665469623986742039573846604631835694752198410693861426449702247762008576494281173534590795202907258284315189574655590008570422171490234829841307483900790170119164641154590663823939382974505575840090809989576080364598643730010190391003866132312215830604769898868932803546139270146820632032810293067175526278904467712828882643504749565209872208368717733207687936127648730303707711850130030859535254147993403306956376848805682510300533500289600843079039184082549388765879901012315908837919147754962360211679016977184503680737199324924499243873759503411399619946045017353572233459389648279459035218046818788667225560550276882497350573064759977903953446816457794322690134142565553641690494761612252966173851047005893579271349386504298034036351738878649496690534636840426055476610812733201095024500415090431358403357738029702815943342212880551253539525449173051554476608578409750851651085728954185685943145709258714334544241036745815724390921290892642786845588373796553986139470859500545345296236508397600412209739156338863264517449466040222723864924056308511334042842824028608483370891323465579307820409601637181130517318034061167770393347634721413089642761253609772189385195613726160108405659706553276655737550468660739379763549928124238742830155411339934644157645899458278425584771832948949264625222697122704141651471598818688165744545840408882858119587372484261313657681007165148899006412665344566830227359738668130913763424716223398579338917726166411490368588325789979081750272033807003223180413685473970927379654742446804128015402203876652795901642016562832585394701477822914718753274133748310929905756218036074642901823239506351013457424015103823927294523365668892383891759048602148571539890664260603201664510095988378753523061646900599124074622481662813998318159695142541727042945920197970508074792982498574018846651427430755278134756408402674319430595655737168840301610842844607321398164511710854164285805635935125400969228338372176445143825580339586371238942549672623194296243091624273062745814350374276479809678942218795405733191745942830094307770510086337871648993365985098777417863808543286392013649423562230097707684146913123183318363799688454895851292692608100432858736727334038486753320435514594815801410592594830091296115158110831335313568546532091485700727911594190040492105441007519680932849869127025886280696706608101786481731015204909937986391258554284926282037461002948985391294550932980075487371851429326866131703235412933715710387758686898925811643584909697662307283173009244861234797001815233216188719029331754830200952272941962078335738270600490509835197862543544396742804435460028048489822836074215605802599763846021419784072035664188462415220399321909778315255401848331043836018009124714641388332598119910800230776870281680856912058562972930664228571042539018073115968359842070184482404859237900809937688471871533330816116656390313780047029439382513432941775412085520608609442074342788603986100066185727451290362138858833154200432218651396240332623735302127939409712200072050817279085818827604964804448702780473070737358225404604929615438197988062278592047777464563760858798701599600052700082228131561535445164212283098055084142606954022868957313706865758634762631881696156248906442387911585274312604083998108854687359007305609811153391047904337052061049185753659824624683458219200089633744704203072344523433069477326115030613372997629545110029527406551844374227150940176597747316823297107447918185892881409985068541254435322767212714130030475020439419508490984433913516366436518048440155130105889955941575370287111397429886346377147645759543696928370276236046148284437259026238087288745986737467408734464837785342621250460554818896034698416722395954838162987970835490689415892303321563777612243685653877454087420085013685774284670853873756337164487464299506730915565451235392779972133768006870213707667339757764455008037987872801902689043799052906506130473847465989450947402768346970631611672357119888872133263306256203759403411461643564476640668698137640116738431230976395574925969237173628288780797279536260935565867875367028200078308442462961450385274005221407514625563444118741595412204287499991073156976102852907743105994476676011922095246891738906349004880817952586185205400853277593922348842385377127141367065825808167275164540041209943369442555358359577956470796654785078907357498985841540075723707439217147982843622057221727801710527402326679129929642335760359174610435128440098180216223121662577107214216076694412812607155386737766157189996408134924430544586007641440673252617491879121818495024507897758668078803870911419307576297602986489991172522178203945747730436355117840246041283346252610709080255791088246500416448357605084504742695420510997018077406247965727941800321333334955050693715953252868411830953559877937302481595245195304290094331562222269637075330826715593041699083043482474338770879405407536730460589916877038351129335733053500282874421326954235877774384780071548186708846093673981709914591673278573425311433243199696230464352676624134287556721489808089087409130878945909435542003943059216176865891178919958665809839089889487158122512346295704839015532505370029089113170195263434175542774720772424231626507336828317990058194002601501798975618232241306846435691086767766320798320463978663127628289928726313917975936810516600814876116304666264145455650540116046531003037211949909758164284691045296949776707479940041769122709856014644505130322275017321471803129638082607445947796681564070120078427641451074405177468291413481003118228362695501749739624408896914246699979229118285125001833919671123782837416897802424668234465338992802590270561545101951597158816081102971877633746926862001281262736582329778836209198483527355483551518650655605028439997223316638503443587778894434366571396355081386372485478013926299302085813033760396692979118887629675388039926237256047771696714650440773557600935976728214001727829365616559570216655651408822117952277461847855771899873128311412777086342262087096652267983333613352892414102751890463731277379980469986361863170797172651056872998197248348374449824036344893698982005561512803548593165102374485723670480085264319312755013579355217438494596268439191433990978934885626348486959235597264633990145654846107240627077458253414175299976936435525379916616196685327288669716121399943728013985535085234944155345524834553483438415045357853662257108371589742644097088375516316714966607853149917750238440299966381270795414073212552630479531186387549717504831279650640171258506175620587009597894224280166291447444856888263712281039316403088442659288960435347749143362605122626560722932329204905786907219167565670638164241560190801659105638752769799013521717637369555619727614358575580457364917324556644841395150930159993633503578208590690186589650525733449176449388561690666334601737117136711632388962257725571001905495424320643071087642933532577148722255591408870768102347933069552205610318507804971371726930848664666349056144413434249503627034328409717797165500156098933929773455065330824917217419628608568109564098294283793941675015306338078361679178116553305184109026289603605070258056490526213184219054213657392701851200676220378017713432382521889975156393423533213106330832565241000532832852314470401495872115900821424874687715063999947324710010019273285077772154815929973717900605874105197804211712416984657509374925152289751365675171344189797762360574897428011366135185529872808103606538493118330804882366059861300217363121104821478131776257920207070223203579154349119522149190805670291691204902415837793230752759009120051092689685271582343529658934748055882482497173580976969362527622348679097752460165821625270174208009987109469117058862555053573629385874534552475787029192800013114782982805164883774064755290293011193812899996934374020294990157995963000894423211885725993450237587285915328236575203537280809858568522727863940724634662035186455295858293466028768126619225649527656934160657985669161984280419851850203296795754720020629682970511804781046120047756912702423103271759272642102351343526742553905370083375090309080085197103332680127299041622895211271679825225259169077828260859753927399337865249779680596386795163829036662125425483743800841337697472396089867808836933956845993161418029684107867748320987904505783541466862437939659729135043614997393995087215828461193107361142631358228405781826697022859618253287306928263616347555437961778882677847251238709013955281580553968116627835447331423539673962303433490676683427332301738371514281291303534877229543848917498086493999006631660121833384485992379043451622066626337965680046665556342164498060454455458910228372046118381411217599417595132008792104566326786349718496497934301313959768086665869298860586298096234570937725729462509988574549833989197968406132633760099356576383147190976767577170777708884696078851934765105975905454591196286487106328259205108409879785407100214739463886421866060208588396976223924979882800761638469275812534796601152059524905891145763139269130060665417787824869901040154030919447722720124153453233397996698136927107602089359825039237206079142274747512062263618543419446087660141058294469062855892160919772394107105842764675226175659950350385016404759039136001748117689418330485603727924627684399880208092504217025402592595443860293665872351554615502653648540870464085612528014245596756731559851399924704444531390942649665102777072776800640606383099187629002091499797651480410529546342134756719239080166459833128002097087771284884591318653121067910580566438259273578025285804177601038192553784036839051910299725498511056988444480810521445917001145973921868615006801734960634487188668295201383100845015591490816652045436228880438297466174202610010895271119906657870308764685455840597402808555373259214553315765622809131556659859597518871934798059095020331359484630109263832966942330230442767339567120142596416430515746023309887264595993115457136666599819776247854654448739566126811049572272713145031608210961313328252305378678693815667635884200352660327534746953355318255416137059600314030200753072608738509648044030386292206889613560331189093561009129739856216247738362890224018123864913228902594722295015521977377084892999726808859404490231713642008880975445250881910075218760859854458958437528590994797125995077053900343727676045456233944026545329498013930497741237011137855601778834635199604316723902277645454883534923752030940078446440999199825243175585556194110465914626962582142387605415374753677480795078351325960295007000177574219831500674078951556682048003588816959010834287909470351721681844874035256856773335097150594892144764238400210463154961621837575691313200783674673112462091390032466834130688606587295626329980415601613995579747452676415656777944531462837340185879010355558955866734198082307077501436259080090258305339235605435896664803459936109079941636793676502325274542157602149782866672877403197366583536762923851710261919452262178132268053529399773652446666943498608243430803399179392580338393401439335289748088237837165242881295223275080939973620120004790537051815762561126354497656163988571906289380420620459900492331011940652834654187060672534968050140073577760499521473891453850958855735485610634518184590258071615060784296892434012727373191161099495363558903908724198114829356179889643792034738071493012965716149420723690091890408800474295751656110877345464534439759793706298906584829654295699674552060933626728737901868310492829350646004361029834036111200499049543260944725332179522276581300479660983316259078677806646108629640427757870551296237903088309402803715029255383723746377308555010358430666063296402183872473269808051680655597186061001344413001262837362766173026703469215890734517890406180519119770548103927947681091415472671314303808340524683445194585767664672809639427097261861824898771942254231862522475848242041937659891850374829797777556025704148514754587122538650495433753851823462756779041293978874632089569369739381328180941575084300224516093246513166448971370118485147721946120338475572720463264507788706479203076054382150957075210790495921298355056486003725933447311317671211284718347714886845239929145838146691437574601280689081077201623143990244495513891242036052367255058724343521843442749694264049940085450031425386471231762584867244635521734960352032566369784373074291586883462909413952416512209984984568592987524069018169125873099975317167959219196740457471053961580220541374100831649467046629443440670532070464909431795643737348272161601446063782176215545227907110013095296085709590405171531290118188698278464909025963571462908815182973359317127470011715109957523056753118826935634550886810474307436261840760031802494233809994396472798305036040156649814960131867605326367744062225280787232445826618846479613532657161154474523175945600054115135240762505533950789111077473256827238277326753088682317697746733382030796442267358748536781966072497548728620554097726354244639061802530132500591009577886302900604484215453770374827388811112742762277183993769367074653508662759888454587805433101565303327282485575089145353996675879469973833258166335930984393053934247976787628074935721166629006908239364370914173258084603382339432853668385627112519085513192396709045743209882716202577118347031125346620557043456749999249669076344622905535994589239926629073072184279335732505708416678260240397597811815573324555561964861752309628458005814222791854618949424832835751862372132658706043541872125287401852426916469709849116736127286320505277622589269970921871057874455369459688228015048854282222723106716269386721008075892666877847944947750579216000353893649346959817462133273873078276353961025235351358855464949629819832898516905524071197846055695509483655375848614535210600737772542154038908271479749372187156240824051345415605552451095513900446600423842136644560313568346442848287154272846829585337742571363861643595694274564620886683104694885675139020190319984310395412948901608870676468768675408321343019903926082195177574679822165209768503863729730545142216619131814518987347438002474533225188991296916844484572087284380002129898240513477142570106404312924146903837746255360019070080313854108857490485887318612660643685696247860530147595478883576404476477895931370415484146292989596735652212603567626071445286355349935846949090016382301144556172616593007888292066327179413858023151233544425896438468879009668445150851470909402505278163312092724662318373644417191950299067830702187771927301243822482335195873160030962733520795951096183193707721860472784462152740473382790958281786660398543371441694934169668476830558995985037633790575718452417735826498174919040390237739548976050769716376335284344122266657859742267798612593801134014683106295544038416692741030396022327656430935749214396051190353747126483266213859637174645441002352221472231927663555719955487404463319889935718085068965470980928105059178090067923588035214200616139792826078116439563890316533936939743723846730114399735170332918793111029051657239078901441335940325362147419395070697691726546065604843319554508998138302549656823035559698870303195502498283188528709830667271158144163720450538962026087555103062419742474231681825985679169224777518137565753879811550184283396589006062063796180511839213957840017835013847009741513075301436464669854989482515718183606962513400376218737198298843954796998370676129010643508755109584722828088726740423096835604324907249586341972840692433641888934706186843181758832652425650535029457315323615200346741576613548316038160808014370949662533422318804027437791332659286323192688619727967662380774483347686219492254694852452642282798117242269892445697722008160863335878998932745701292515614946608547531548089003834256993093715052256840491360549929680447942943099020122743914900937218320322006424480905377859130311845540663257304299563514222388182501891256411344286331464377212734327003479914709354015595523829747973545839275862932010313075661163996317264326644519635690179124481215105933883553581226451433627039342960967918471200175089184056514280681986758515842826285725302980754791149118135325743865516290914473659699776551415899435587828319539419636550057128723480997491776578903473604755838876310771145238061348179840582140807377383201255701814934237023584366726143119447922081464329633281566160890875548523272637313819478316805108964443358066960165288581597192926910687517832718121769998815783202522348487730482801706838708275351553487079100686024038699010444672458048458058252039135000970894214918061816460786974530719709818084623639747543998415191826203244378028260255236584274157519484147640570201761861002197152986744176804441147585034091054306837081439615253125490666375458887611755464038981153547152994516717358376853650186724093903716994341274732345362458699543711624049120726754663619027921252832145986025747820559223604054632804792248672082818002916155638269666485448223079809418573560442472251025662386653387645269986112485549832200132613303186013880354826723524065567862172010888765783686541584611307447898987707081438755203499266223936506969527395410052892556232880227708802277147489144008407187043645253049692678760345218711564943071284948389148466571492815176294481681067104481125581635708188158578307118658117463916012549508236709830961972562467839251092927408771919082195799865804316386617878393379163152765937400164591197188865210762383224964564996332616671740500728708494562366862308631110164328124798772893713175665360802546508407150128012671006065989415684308536800037223302467024782676942613448856474785024675833326544511045606553910206727832520792141986252758816302883753337120376049770418315883354059938947746720976770938967267737941307882055779869675182500003587258171898094453290590784529218090048463175231733849439686285153548956353537329694958719775848450372693767266115995032883660010671608792945023717369122951604833955112590442556315646761304643527824066306905295573661726591993773423403375418254886609067802285761307342540663068722520792517412409790354985525742446669157178583224274213398238750923796057261767534499390961359019225870021634264200178771240529247073705862087449933115469369001180262879063756959732346073548567252216980664491918567752934757898283979243090059599283175759070035394592601462221866336992113592232023566717862261243783983302811423170377466775904179458229424722193921416046587707416211093036733206649074706701873812017618155445314723360706986160516797575087442752015450145521932765699430379327839288034613133295500604734822794807393424557890782383508266822856968540141706014153032086375210623012039666033394644499715633406419831243271179810356997785036319183785879183466257001239569987720293212522433538800241311503411417982071512382109350968655901801873708665044622656192783475948352142101509580746799594459516116563440988642299203118090294188819859083886863244707233084303303706079594392687991632905199030142707760785574831120822561732295519571629210332195231556037681102434769661048151668867743227147496345894851071371830339232207350952953084407742965403182489344289001561266635689168353031047182882429389278384244583250270790612995313462024459641123995595388083462354588070288851113568351238187136140593434961594890140323938159672689591904554259180687400964919223481160413102945219396665290390443908110221119758021913294316710957703609104034866427498862995103400103459211425468943693497823336007618507032543412092855688577826801953858131919236529472311398698443909724463391412466222184342688904601255540038103354254298677931719337326728700024638565473529533992031808953967068861843318553627610501398036136060920136172126997595010220339173514942833286194148051744010547744128438605321915776201031579452820905744125468969314667319166962389294128474713925756359614822081979191766618784363552280976991595779796038070394952848275491541016824822133262794807045738766082612707925003732049021476449923546961987779006773546444446817479761195822683578463329045358660828353700238294600801274424441274241742505440445706129773978785554759918895408771156190869094557778086856811210863442478980642248970175211709707409335254645576601162520356679597418032620641467658050772395798201840832354633675561265623215879644217638132336740936970475897559742549035266902329474561281038105674121793919209419822694157913234525453811251449762236905039789915192773418893933486805227388945225907376980514188730358191737364452530045700319590582307211715032877455007574561040834129007683130676496209976894801852129300145248977220271736923600614897669894077215360966246920821425780472241115298141881504068522359295771009931645107485905849482678509120961468158271201956814383822565555648548731008223460255127759224181392078256963796176798290486570798136556328846755380635350060524582739177075933903670988643000049019364147530420648830340465791742294006702120637468415787119429791989761466985341993444654948195032060494984574423262251872947827973558301490432320791070938536355562824521192738703384527574352380736209618095237183361925781860330358899588652376063665913508744920535320593175381138443872921084818838608972114795954311621393355622841177680779876947504908195421494272048136082210287286089953617706171428016855556419891202061215701535052177985994237576576351115226166453133761809019386694780389734946207055916213735310291455508562193642643006984988117642355851352429447328209667025124093258713723505720100515110429756829990082371214713717386786213753486392131535538363863396040666661962943799407029597258165275330147928542957416915447396797603401504950504529824636334082590500925244606046569621264737811258339180667339355453187906193189201462134605677486449069786905779566803586975264977104687406687397440624375040268056890716794678005842960722748828353249769292596874793616379589134082598872757954582980483722587480996521781559409516942029226707640820829008159531949434090475850229992615630491528470019156538325103327615881628538774206664308977525484747420007226805787359348683033158220872012883133899635742867648246039337051474371737884237701982415836880395081214734259846525265271658159498650168742080965203011199027202539330201581133406294920645163166188126243757294233188770358333887959328173701606760397600328527612396097511715805472001052855719535433980417037057459757823843222646467954243170588264000665221840922613304714322328305569545244945259798269414713962836446881280206726311008189482278486671669759045967160553834417800224841488215684487436792195640029694744635309748322894637088690887285359819039875723641749084439881672083684248009572594978191848151637228845398185061077551392637511725051084059430840383154535189614387846961450229187270903672605474523221907081054333205258088922142658512225392454897901108626587060570810374299829782377309340323388191992152789663357943265690438604679137691008599498704677926209323489677439658627638236254186271265305217516893764303249194512332468862039610435724839199953139096542464410238730203272315081593666429048979021603084980524039493239736396678931156911420654984680489470022997256444148507556562147250366945180680980664859550561688557674854180469718166678228281451046690964021020031070000214130348829238415135491312332108998738051812688823346667967092881541331279054817151199554420720456248507515665670285689371398149498335851911839163336518040545415074465312352352653151867204873893640401937516828857259365249035847146776437420272219844572100355871259845655086114476081873894692243260767599713744436748293681188755154242824080710042077367502710816600609700391882926983009676800460854676264797075267402295871189136852118820438727747043467981528362178524525247278993893780355878467216457738234110044799999587748210089482920391674426834904386057365002318593666135954487641887141691287385508599534190116715217083724987907813864384008783020224107747405580550563681279943808635262766123267368426775382804321937343251919174466789682492248946751422451315246407376019203040034589301206855279979927163571716174059469887979102454354493252549599392073499469674028702176616238073202867211000510265305881173911143119885805702739738380699842767328440626427067555737020980767175868111191606595557652255003913910040968562027617437909189188924375558631525346539980872324710324472337922775523810816385035205514152365952102773166428051644689350615692945161351572930222435624275890693100289631659450126602302276765429127782812096689528530112396691468530716825222499076253443668551276883314231910138119922946329183231523412928573612632293614080228923556227589753359116049748266309684786102144795001376498250463118392259128381300733987143088441877398036370693840617764808515435124248114164094715048378142841590637069864778887675927619320900863134648956634278854170932432712449147658125990634014145834814696616999284121135011683756472329326821811046075881661825382225972869383940280654818609078506978223035913821107214534648952134498920750193200381285600531886810947502809257540872085535938309293758369358985694661826852604681054799464716025149462105926306994613122893281912221314921592977143708954376891654543410290951104694783330548110045013989130998592334245503298326787712698413969655163917693907076188944387565998352761284626655937338491115666842890565243005718180193087458688874346501085642861995416478955265078420967738764287546416180063155159242344771824015159856257297082235501395264290545996900871942077187450984364765012757672937558481367074309789449640887546636200855933742242784986250148413535720537958677801190827876214281222334312918189668681823594843357903272593580417031964239677138694794617626201958795687370259721752722426318928627350071214958731920925975839053669595582268953755610741027674800101903226638680094018131238917970938276196959243282335302760487328345943339951517009577674654151989073048674809122436415567237302900461538002451695048970387652756858616316763421889909006344154130091592431740514395584186332606729620840330207022377652350183467263188928467782888821986821869567187923320782822923430644028872312104706265873109060091647996954354422934409538647254680539448368647320940778027951694825193468038362675324709969906831861144816400974010254132978334187153159088937494985036113060647102664223620006744690775456785939374816869785843804256244220596633490206906308035511119481453314006311599246855325088005213576270532958334492849758963513501035036972504994911991623508647770193182713239275957060642919108325050076591704260642804834734080913036149504551616366020437633199359444930979337456619344901121994450205061851892288720224250924834468384778097451385242858619167664666805522672955232979012636772781510848896936870489700162232921181431560900672385528517240079492009421675201353373384093341730942576192130694457382873683317424479869401533431024287416630315094718631474390269165276596740915965761480974958637664513042594061510640650324759510226472036792069525973869659419028944587494885086050710621034999978971318197537622040984713271697200317145435928905200722071712440207351386797276753546424182209976464845474153188304717693084281571945994534150765733576941840203648221024543667768796219914155629534823798856676879618000073306916252630152901964304577186527528646579251473965452969474690410453891472299942784389438507689155034728052481477394728147514446586601572388535293216237319035326836209218813033338022563071271796603449967339810694293392073879978893327318443655032098250206033364879887442423268793207763253626205228612593884905672130027867041120324030788080857007362710664215653102832984274517137947269147309513411891786120529096847444382151034643134966796586630715111739164618683852120303963546595969985590284447154803688453763723815972855056677391499563943021128287836351257539414267924871263955821128819247845291974241876033617741332807131971224106377168506020151523546605509839731634783866612771563191169614167496788142578924494408923227478545911047809082322557448267456980305462361385642321056785961197459635985319533724644326507268103295761552407881767989659407495484981173624891604856162859664627884303712344643855019742950177841017773071596699400168543201826266757650594455516118703748216045425742063480804052467114472946737606431488515826772377697252045497109031467935111150347530468136068294668813720858830705438434678468673895841660757331419473019600011722070271566465743735175706153185409453218675902356844220407410701919899484179109179962817943120931326790881323859730711150839092715655567025537682500582265629546182857770344814202216178381393760651068184274457995229099107405906932537754350065313710250440663526450642042564546077572082177906530303401850582482774724882779460463535741166635298848076291482744284114903409825008541538949285428849230996665184344434958018325573445386383888615072453326065591254442558574342275421343837402883004156013506127893895448677290734035089236640472678543098315023829189988512134157251641074771111042709059287660566865059746826374464634914655184912988734045671447123509538799121335076975492856218028603315086317457206579193577035541562556466121107005006754255327891014339767038543147989685990180252437506660355280456156163136068833329298485935090764030841767984827696889634568908967465625792685882074308474484758820987395470928818600713933793050694738974879100063730861632898534746255774165777450412941373948607892568911071886948889022469517146404313169179983094422244685598238545463431132776403567102724102722913303468947487470787093342400171670090998310510294831759485767127535845479677402711321314460244123739733256885130957845169774921838733983647560973841055943495642186047480470063270703868849159058725708349440248715727779126037383414678712676574441954127657499114580177052631624277087025235355213037281852715506332675109139906000448168243125846480223660631428837371695760712913896842347385441678015534356390757568466548772913940585658422050489305320881896298826205968369628675914463883228770625568539031752809379000740771886449503508154418668692760436804420351636392613694578062551775506009110864772364591461742142382554014186349535495294458499465977803267663631411728061841967258710386594529339254357081360039701675879951608561990075432147328532093012965397939571738017055819321090217560054401671732096024024689582501088021548030152948371686591822518257639141005699008934465524628483044658246457823197426367207838180907782291051494892246443190902720185966369934921334296962293860654152100322339693660240359186808028407304036084773344623242440684134687431999056795091209316183106282934029840637352320057002983022616710443462685927900013094726652324934359315233280272786386632065488359065519735270834649972555843781847383697895252580512031723565482519604311972893722689548842723165308834689646444165222906950293440142451063554275572248632994936199201425950102182072497732750378834053951608272196538141120084240075710345970710217577885597588026513146866506084052263226859293104532549300824204082395805853485136742153971006236292646400296507978904958438076069062741829178892394328452384921939621655872856226689277495325695505217001600501694912804425837712407501721139861335300132740081253302345320990062523609729755328548615271378071714457132599440518732685940867114110872125791406705604692210208837224280840657525766535773449769957256738879241503253004931366141476336183346171911248819290009710378855933195682774752816325533655115860781805890410558743111202501054954348789559139709719364231418242684716194947183005165685230834411530644984787968198405568863871846194614820000923419150099543405759585967008439533184505134384269209405370127533239642786426739333860496799948551399277515797898481336422007383102699078234818709955209033016367725255489687761362457166736731783109360137919386121972748531879434608875880241661245322956783782808066063394022201290410896477681061547177075274625190651487617127572072643733643576156715316165201004309328026341263804654842805420612491021385916527887551707505103764916704688685535627663402675577408548000679342686219277482968958177081496221271141389669590882833028925703169614322483218839879744834577633980020698536315022813159784634143551776800396339214339575348464147997966197197003248963795465121147550715456593046863596013190883544101141460100777236490165836960435898092140019220547247895082419135543427220672527100054712845324803458117506711522653769077554816685034774764789065583012423532287594969887352690235822230697005475245316754006789261141928769998541222030700677287710024030215327455946343861394726151973715667184593509515423104703308119493148086182750996502996782012223945859432888091028125207960895062122654054827666726541827942499122541392870774043615119772713257530544437673865893485864910777141419781866384536393422788653602778513504875268020637963149166773645036970869920632838298767767272037453777119665696217850751323164603841769856394763711107282855492413138839465176851604662267431170364038138648065598351007994754090560346763159508602460459027781430255303013992841331679621431963263528426534818105277521696404522628596259520672563008157552701845151292229045252949309481136305977633011154799900956452016251019634047617860777785815409647755103448504132159844409527276165022094334253384939741126392626225852376016779197040820852987901118421649529697875113372658942301059461316031086241685785394190955308102872505480890593555755653186883909613105034395081651718265193742754098434433388796031576516064104745735092251788556592067147084860550042168854354283347507059791858339583691962639298535377143757568854332961176648361347063208667709619384901031120637118872643935917788003001844470095146685606995122358029202941500029769398231537795052833133224596573133772511434291260499861586373281117709694298334976025920571013923936646184108856270866875681483541613219311093751298509062100373865892429099110786786645574486999100362119937627904865852554625678497472837000202634607226500590881742694908734882176943221551965557076421611667998420047471668292121181535975730764212316896905117496352372800564428481228335622679265383326650563805785592348044281733056650316761940925044016666772446870296027188581510695237506549457555430160331844179348528383666022750161654967817170921682334869411077799472262560371740710118690502736971348284464888628407889291772725157955972598250931511456410900667868806540166788845144935490737132123554552670750131953440471735360096096080432858321272664056284911149992712655923060806000168639257330696164915640031120573994440257305889809961457267452900215406226411869272589560071659678651390173829801066833345604588157929177886034777914812124069243029410262899399220100612443323505721428149829344336790506024553002585361982488422681215568676295651060400041102435810523523700235773783569326349988120886096411020475980535911856336970653831074755929384217988401260524813421350561637734176046732882545035363857042990919299977040413753990862120608994008515370978245789867837012929228646467581790831575085078761587608154710190953436798915600856277033814189729991329743112276440085000844441760012316589021115659505140815845065280731180506117685711574287530662163647817147124943590971712508560371441928437389702966351360995132213601414377912701959724031824654002234658347369322665823544007282047318058141601628183765978165998054100636855017076371654826532557638006628352359793744533530802848611639863023964275128677495353012730962338641775806672604414787549306340671380324649355986284950815702844545384492537413288853088112402108270521843652976860483214822300650261341371197384888688360470639344452606283291041478309860447723130190557156139439881536628985234079869033301677838640516898803869471782078995977345579179442597516073180094059780753779240416534673016608236399827175121321112565120040633133171803656547817173325485901005169402706116180455298539154033487518481689169974803559856194477298928408413418557404824755216000831616762054013415640947661511217456458376811784165931892350504796642838479060409886427025009618146185083396902246671695462389304291087465409836456146947710868473765778425741396644880875537935253310610057502736273027710243051196980614780401035180906206651815304175472085370010633708656938719242411208837676352470927485541201652313574257098266474284420557464609497143866471905653014197034238221178409814455086222994226032634984804890262110932629954671010189632335810235430408671808711827449833360413899453734939225732916659475322973601160505009661081618093449125952598627188889522672523566202904680085404448729536750344171760871357125181740241558041107779250747303042811296943984988715977138726836044357221537882284826295835820584295155347703839478935780545814567019738569171872197959843747311144127015917995925917482788350377680005920326066268553744419698627482235787187720443810878367462763817925750405316663258198119279119987203954105040639469133448116025074774011890554659821883082532452705505710347573169484674054730712405143794088117736432966975192609760235467851192522561094592862468202589160043096881956847337421222683609962848788625586671686092206493144619644311127069796760845897884640061761678497776256080491753930379291970621016453259637240691674138975624346583219763696931211579225073364802839817113075720291490127236440627468442303758420170277776626950478001348584782884099933849807957728282249916800186319945255951759604830923199810739235481878894897631215487375062214629848268399070848621504431618834594830508180510810514279511246138355347149073905365236012630604499859957203573240684394677807150492765219675497876200863968658212205633393363789620874841230892819975852357712302115990376551947939584048297626597215149264123433034116887739587621363168978973605171719352454130813246424990002546080188789932744323679528538214942888618475174732815090318192779783942946924139394916700128608891496545171095675088567295561939164212360559588021208950486889332560524545127553925009276345452139124380833531499647237843111517853440037384960201971629294214783442816173126798434152670463268731070799518323675353626032701404310849011044488853600693816419366330979136287167756888355520525897713706120571333249131915653456543844556422556735505385384152149588450057800125218065158687911191698424569287741242161886287979006736542466259529993377411383784274042895518252029705158490911882116148155795965463924986846968933680954127260089072629378021922691581887653667520693279276137579467005452844325677203986318573156319168988926400194567666345728435216149388645512784539336105225822416351792718556271423271468570094749970675953585655617685555353537181696213183576105324914254291376745414855019866692780785800998781153407873082559320177623621894181885645383084504502069159632222779055146288193419881757655233823680211601774750797848650381563356418854994116514675816129802680967685918655219078147667207112856006287109048854821330470226979407639296161013079292782992341367689101689819738665293621086574847477604335168008172304664924905462550827239552112416700439479636711293669147376203719974206945911446820953477684542143567601899553932047266722436050030748114237668277110437505419203537636556790575901872445418917630086862871673044620397765477646175448909866747773572811250369130823326887563716042347661610211359355052493973111159664313952085299377907602679682240846139801738150338618256028919751485762919094932412623806238577927140846594632164222794744115049419987928999775754631603943383305018345452548763808709096652466103837640374316707932138915155154884042255904037139094349561590287649733603610213790382969099119870790176154920862150194804658152828041451492318981644960294304278502598697547714243640140864798416807829695187358940737498795876223872271260105220769350875801727512185845074337494892728927208054522623054238854891523767008010307060568725699873539087815173133277959815852209808671101867409895332246263874357839861746639661409915702385191694378075119910736519761071628450623308151521700887621290337873629084804931525464851941151338564630274946248214863998245451518410694175557525543881548246648086754793745264896797823299200349416665058280261214436961937308641408950139052749420884849160067423273576314947992738015063580378727453835341158199838791744991175355619595342857864496602523504860210112059055141567455327891821608379205851612645026941751500157847012695471462201446757570047780189019026190174746105558834332692947434605505731307443323887976123818650017743508961804638077506197983104300060007700695026876115866130337296134758851289553948024667366277164483358795128168800356804876357569483724811697876567743578547884140159019146185420531484367522193072688942317365166490130786900528867464061253098873751830064084800240258835757205183728925083680171121840588557719554495089349360275854441710002299406543216292681900988671864960428769408974724412967526451406239262322423713520631282965148182987810217733774302419301119250322739380098124084908650299792398147098599444790216839081982299193986030248813336761141793281436981892088745090116210988435975984247203614041663972046311185610323822134313724875250274849694747318182374716188273233699173897366065609779756466479479837088413796239730399266949852835776037574651881717144340417084477752406257823613743040951020672491182931281519933890514356995797000911774564759838088090736082722535016153544702481547115135014532980618168206597583285877116642382848129471684369985555894854816689737901672845257760049485333240892585069501788429518565195714796039687664702596159599061390038030435183854895788474609220152321605024993554455815017669949781256522808705936339429486409812857945738696785941327483474798440797097384523059039075560095446024931182460315668277080084924038666911570888785567110908786863915664256173955610612843768848760246550136697700586555136760272328589856310018735957313368277848289790993917891210190177012644063625135482519558358890042334029201388183593917073630130711872215174090285847224790924672838291535565241674128355242772775894060780029089785789832087798361290384501081259119424548490809321970640985232977951424198168379725334142108413453516564360467301297215090775173330555649199016918581828902679873620356440011433469683932182547640636633277178440349451992201654673226281924695665216730498091755259307206470730940061872566476308888967897338476777529100854008976382868876251700507174085811457741512130673519646439971853117582030466423611824009033541986242764312535385225109625832917485299525222092589546582378581315157260409022954787324089381534060882992878081731963662021645078140461760246106168092669189158336494670793354806751375103257835274304544816050476570289217781829349805910917620742383751817219311192053209070886991986769379743279072968860466151754409050088015897494379950666787681168503886912386963864889694360578393709844354685492575219463091742449568547633443566706474461424379361960882834013899382166131861136132047007662415339843352506554017495705406306180524805159940136884218299295904912314386530164879459570842845811888788079530798271022117273188764588801457668954415989244538762119467251369345199329692626414056168694328868947428256167318983116157236993203329203270979268713297733273840538902185604086681807555695759036296808522428206356839339597424553028544702782301727564936557309253000854353604135698820526289184961245659311928154578187450965682723327584011039403172235571038422029768265320650444715526567320023657978265670121811523161341577819806093275725172089743534878722068022974373148838390511992219413635528999638862967865337038021360371453962393072867395797330658338160045534619986340369942307234310315328116679599013486128058442790593437733974588071631814445518324445206004658242847243225401661977166675071356771169728084048942761393601809343480202189879129678094843780631316327371440816404845759395753745991726874977561251949037284146278788145416574095567318090613108142961946392030619457975210048745055207975598001449438830770956143594174854663178807804161762749794217431167650186753794593459911685776940693411992397359109446911535025601774621201539228012775231099336433943007615988859909449769957514618400753382614375309479891501788930133613821302796119778550115686567587511404599143558235631981217851005866519132451816946782326929904609167497029402717919951993443704671849043497160428441416866027046590410657445886308742706508054195666626259158741796606224738172622085733334623175898448980073075118508503730667459852104772118657345196792464345053911433182827363634982372440609420923764967142161526263710340749487719412295417921562705295660757944314691121025653605934335301379930107275976109466538638933092696712845272359474322035233436367503621440138200346663837480867887921848352248819461774247791256593916001199681223346045999138043712815279585410855793545874723884534323103994747280933080395155723970896997583546343110625624332062671105856238531981772423818810444036834725394219803815294293583918286403476762647448865945308723297815716160890440137825430587637613514426252498085336526303235691221051668984780382693482480427564040703366169896487645867576827329375977154454514821211878422432060842050329754256592496173155087046524778681848669780220671000562975069081110954338276192675976966670207310629491120684625937098209497465044664618520504857366948643704724295561445949104463347286678156446364431994010266080808561868801804735541928312561907287590829943770174011195334294764938326345941598503676433989658725245761523605027353239114359758429277801185703052556604797329359453602730177331779382790099134210110281501990350355932798710194729247011433854337342191175282205130043606527398818433077274964038997775649565313893585310488159519036142992057203314397205218638156050411288238978193976321611665483321422837437613798690133343321836335633348250641284428781059539927801035557024588275728954979693569160094725110649929775221027231840267868327139689485404459544901651059379171985463125953897558996488746184728367779854846034652022887276576450404616286408341467985069394513542917781954785139827608314828810167686487938807309379234558688937256948781652420081249621105066889479810387535610318610182332793837010033971697033717159124400117265341789310952569549397219175084619387188884746938073576484926580356939998293397228891195343083716673017997146161794547697786988588688389476577412739487922590423386828891822797043284178454774276252433172560946799130433404236099736199666701312980243878685653939552625474813980300223994831483993500481153085187827398630512144499053594087979794591329452264797160660581013590009272617363273507676185641381813048101711972645285984007302388667689497506508242753969314830423741357661527948588642090937325570101813910769581159465868175099707739970657253801566942443792626007965540335902346464211605263522876510574223057677206597612555874404965965647306067957003705234717363341591729860099418335850241957061758349486484903817137835621507135947960334932953022925398908324245710745924529979234927237384786009348401078696240883362921327018502254020425101706080767907417212461551233123262104595194242149115004960628827552173126040728153432514641261571004893638073663709531681560311602717274499957627903957006767931609353353811001496697013980825007397775103964102261466271379013820424539010318081092453909113891264459231248832183737715716953184670843757069161403726411564165678020616049898220508436438987728692746507586680826796186964508624537358026548070127902281742849308190350814649228663560326973600105359711172949424091087435107963956541360724848317563051057455337629876751850104190659632824841763168261968301253643646077331886047059115577363971359290759635318756608177717989941610566792133285698561889369647975112569303074143388926956143693724582194497436952111146523699650741016587009804556959104775354189019504810707103877424490956529890005311558812216913483164782079084921539209914975007094471611174645429816353622100296515500471396466312806827846222096030316560873924113683826189541556883399444427221679573609926703957256392958097099461473002660694750409318726607484648330463521506510430522871235619983088630108781313508256321502677780340792572213635293947125908855586687051818954734012307829372190760754298417166891170821608125791820838270348934898132513351260135789315084479001137334576346913319735254354201752766871777148685239279073419320421175785611849479081232958558118920925657296172061612758380579169264641806334874460397531599472867707360587439303585975765514275784585369798777172373825115966702452985700383713920327450294117327343261028894442976613907742549386143602713550006327233504759871995888758244387488181317586215501793648601223671343719708472486006264913072608131947358591867878815269095140515772301593053944443756783961826524207786292059670452486534828753239622669038564335594141824658739173991024516719384408902138468904409366702428699918625926766442972816157899073163556122285877316838605053926201886377364602210461621815650176616555914461671441723790509470612004873777931478128550474313897098572236143057281806066345145335238894146444181752022715521108720891503034049956089411932673485932910867202798000734049334738369678263873114191774910880119481005911373403046481158597551613562747026267477648058204887319333728773973016070684734276868016702407308339015178476695330793983938881470340874268106518832781603275125351141291209829128355042843762248152375593656848526107739397448499126005902038277676650120919125341918072561433008621683499769216973948044501505815504000489394817381574374013420342848609526611433354095183652966945650323986250665175089136797800664119336294645337338257076742828760337202309218484520221308643727215813454433597793151592795847884267719990189449260738423448384172370688820143632200336482918084431566532263524826182251169146859001775943813298674926042879641599490160179354490658431212980790650092012915504013884080116824340796209399970368031619250874935377917870678787894143249320379396713555263028730480249409019521191977747573312505184999510010558327540735125531289347778846407276449276967448845005574133760337400431001821734521911402886998236810918402375455833723976294450743868303884143708069208207982932710727661190719127298592814597198957817219181609291285606945544665517021151561693244184619650945697944396334360779053209691266974688605862741541195905471020707779613078326361080773115930790863518621832790754505145276626740903344561635875190932643945375521785551881948033205734648283468341202052040949687482856501540299125828984404683686708806095649464836476516531152471822927320781792220230646188582841937206814867201692492519243344759757968820306618807029156373062650492319340242044509134668295832391552908028375906860002374252885443712319976884189961389804293214359272581662534409220966085112474723239025888133535841691417980811601584052693898068870655312544372744906025544661450433603575112907921499988840777831625784879684886696975681679092974975869142365248146153261860187301986256855368026310063451804947545206488820388515157308562321481096993846951883261022715241329553513835991014359169803379442883700956486026056398241424926941788311430024501954859989053988240803497623590302747523761379669258692117603088543752015084781208849927851638496368880436981130219914911035165363027810399833544083347204552518245115078077986562294425881405540128992982711630277678796613684271177155839312665590202615292810491609580392615002185316153804638964292028453943187915289307541593087864756507424264781005402502594732280642954743242001201623521479364513120393340536320401448502729913369057619087860394740127073500994366182098577296677412996369315513051969816169400271296274242724105515884201002381534787724089720143714572392718822152491315675760735759200085573315570933660555177511140362778761572202182645378564012988669019866688051306077026363946610433039859452714976166301391481077720843573107600506980528838450871608829483287312041631534227914215284126615342328280831222328752279397972344643914516547060141972589510975107522929933103211284510829881522496082581708425272614128196833458467278047774745722885430511415531771383991018205558000150380805706593591316269126803801419935821602439884032657076974041280614150954877882472278186194950777340476827030098681916634775913124864562337146806244276160452129587591457621571304947331128025524086450115158187988372471608455467325610321195616218813971809707516496264043772897015798454353012498320412300567003612412072486579311243720947588894061176457255715111364181075523100152785138505536503569429658236970554577978130476043626766288860509137295406670862907701242198515094167062559024301440770219682021339556323619905039878658105709276134740741739976105098551237674199186975743029055056305972346436358161944671546369990306839196440074490557641102742487478256229438825802172556728824460534042908427431683667641788877106943977455762816103449152416455452023309791513706426109073441021446527106218711163258660643452660397424004538459402435055396756311960010206954155984773855600468565028619018743894867567053626117247446231305797715212420009588712306951176776840269360389334607176357804650569736726000722930792062336303826079019278487821676925561030416598256194499117824315818819340152400443570314314998003171575626220453582913712398805789942365739341325376490209982644754949927892559352660671518258235934845740234476158796037822457408503253177433074541197002451215700373091320552441961400571843122545223792864158206757177836177922504775455329757598020126334342401592980257792941010008101076460892671367163033926804948384559548372809581302243092789886844729445919434309195940453265097648584035176329113900036076035654423108656930250411609272957984733647733927950273368530827516921611992964136894673632143629914783943499033922608736756887326279853851371725152192611171524742671504222194854906115666814602713592472400134028797672234652605010714773342025765776825180834512174157035683868886145903213026552084865848897786650439502537038823810437194215570811197754727546351603248475206939847605907834653100780814435651031966399152137982239581388493015309620319547945162469457782973027716423635775057303261941969753011454887152899331743068093332289460189854936173750391105332472252184777789566969492059980473093559799852716294674156705217775909762286314879043795809546460125837775184245483425989193853972407588174035141144060841603911162254249632377709397967265384334711971808658244251951602736280192324261475905007974634831716228179966148151674878733171423124072287170729508124873305647887330658425213325710925905521123538062578437449584842244087104590511403339125151185441712106715893922895644318867021270771144628286960482922059232962649374343859924837999273139699162676657751890302663135787264076672305037857545256489345251426701110921471970757629572465727081862630756465610137353237279428808541034013979756161485287162451495370388311163434311727431977812256166143968612302384192896145241552810705040072472633538482765732156465429619674675576635083644762570919330003627808811284693733592759734630101898836146485780353282603745772175772679543034144012407925333688887751352529568048671190899930272932250920327150244329660646283044049374858053942287689605419225492358052664217923702820925981397798774021763950588943505636484859527121510932706854697066469567794804355617053817231996215008047644877692571408958320863533709114776935394175468731242157308490749548205177749121080013179677056063767806616366094838755664196188886223624220125717232749149143814072502736800129545671305821905220271301034147157261340059663228780865018775984493119573459027425886251332912736532519427728513111037192994340237167541244560583589125464646216768374875836654341403209326306114436603500705878867739708413937454833076641046293458065617915695863235845522746056970720142219999418112895688709086003962569408253414316803136226679924473716189808349863669250962433955226769360731100660644283966631091010361974533377034666918686268832428905048667027955864289572665585390366978830554170573811266341612597583641071053535223613119058110127595931735848173490510880408968245010583413113934542044396003182858678432643501407388252395010742189335197388760207668724344672360519021023435936063865640364611780072197895716204694293090805564714803961918986155560359234060605560174115449374758799791376056782474525559199828340716870748635183786172167165898767638824160227965002664287711034319315823057453739769875472534058812350153865841471717713796912197068243268640056160211108446067351756635767597326048433566719716314102900768186562890906287588006570850579810774555392777013964185916749275755386965635301968162676218971563800601714788973622384163002544452980408248876278288344732851593755098377535626292815467607777762237264643169352696923484172989387782287625922149797783314113510197115593314049439926641525291509690703206509522012017330645802721228578789097318909971753711124819150626345808756992052622806327040830531042033803692404027926080255096321968994480467862758732311196939596412108776137097026018149895722638043000903292136442335038634887159787191811487855980293894449592031986981010082987959151315103346173722628259646586920767237817286628298987126429631963767655180667334983476225669667415843467455754736008651151520330620927204447150594936223669995300913412419760586590129993632307146276286135512661169221173534494201580897440373385694721439494976480713487795802917971390790383632034505374324971669389210659825227720800271475055744429076062277754536925684128016276419319444884498642319547485203954614150937843997392982869400513802290756216557603967183147433483483085223760665557981279601849066143575222428214946509344153707604924162736334808590687378649813550565969918214598000215112932297319944231061545103494933595192135104096830979012610651641832831249565132821150719359965722188047458306889582590204904270820747501447879187581076783206707746454800794700362255313781288922676792648952346357396402930438220838957280570737543146405091733699562126034671196641775821092028823940621934817920832282746473844503209261219775450660594476965969425903712890716043048156898876195367801605248395973042172458105884153660260827336118012741256438045314733513191959573697461800167104285142883122503561384777818268352171893432010375085130493573476694873575066721246401520651949898206713531173834542914804005844950083354638457082202746866702933949808741728267275525578862014052112600359821994246876310267005725897087813505399760146751030425565353349043429152236956014297000878530284282698867495863142716889342729587646268227993159791838511864267377038595848599446712249627687963837632846952189508360973781918090272268863265590763622971834194262201737350063566608285878585806520482621961091157358950994003059915538616620189913846933543272156193534057928725201267207738453720832484642717754422437058907918075824642974031911980217281391526338418553693011184510868027585468995456707511327472371038439353951837201144183717627034872636257925472869344941295692974647469378842405338475250815197454897591846395857807848820735553894759436689925171213494240996036527011909536624874042669945582853192792745798967578122465164093929143513683068383972902256198723280447297444907458513506015343750598028999811031309769253679924620519468903820409638852932771746621386228888129998664149972909535124996424063058735303135373133323246337534349267324259634627176847053364947774137492612021501231667069035534111595417685083792778729829048995818345130898825545290904126874118261281853734357359522582026588387699193820003150214851998391187927992489730604873466992772301822725780563538345900074487867429329631467662297725932486381317829848961446713655865686393436168515260029484390009187414654041847872151845864172968826953582712707942820105132808481253643175305534010824278927196345937048376105193324778778645756464309807297238931605477110292686860571306627743317635456270009192723142360462787620631329782779576269761377674828268879294384484766537230642644687629801689165537754933257596891774558343214697763204435087233577173171439246533460676575863156349689872714117254634636395162802893571398350163666271556227792155342672327615243186363444686889824381579606033446808890767995540275555097750635122010043777480058810436574950198478073119492868352325987759689642176344043031001851228393488167761258752734796209360623652203932235888308004923392479934499137463338179092534285150959083460882346513278193504521074455808555545093052234788769996620663745599281154833257433930429957148812901245067635664628758227141852757865632799333293907775146662481677102974016294780547637890659922407638160515476526521737855822036719516243180486209582260323480031449465043646850273524275314072336256067622823972535217745255587764277586084568332000855114719197297400365683011340497244522775107217316530355876048259159054078932015485192597782391645074905552941220269061437154517719914100806924623063056487922743469708799974730816143584202330482673793648592930416405537042630640972181670011133636445116252627826512410021322581096460387898053438311710372701598466669721428911287805847561885752239082236107020762156884734880789290250588247357650616343493211554093226699784008361156247101855154166206425606909789505300468186936173802816027461550318491429981431018597751996595185804032807265998276849980558877675615546124907740854025472762597614605261570626580668195313074589818339454394816153141782259849671391426205951611457866545519258938082657470526408771923387944869723283156438763729792997964113681232531903493398905519913153134032785843297983785167453153424141841296644819022467095857780533009474446655306811613058843264182940196819393337244379417463786621573763464665082519283255689336360028447387806763230834285218733062183367269456459474057891084793952968521843419500617278026062191495263346779363083430177782887988545541386546290506289539962359574370397553594736812927809987161982080145651591051968576491737842645950236505582578441343665592222717214981261857659773832432899228345410948071025545753446285101574520589259278134301500405146380918641636047915778584404128661902521035673981010175552362834933657865135173685608869986701016518428808625494963514823707885553230225361360399330740618736656565933049847499329024675941972211852177938885234006558396065397940248906203403346072139402770049719202623741125337540471491357432237794426196399010348317303245426845256399146473433839680894130962876464079933610022906168185114301970933901728867550237158173210284721918050632272500828542090687771460077912473580683548958363437096294291396109854931608918678181030659201612094871023448286133548889867045165352737610692514227300860512295916842790466199660895811646805768664532300655912498301988427204667095136138959099281091076706217187705307589649395139120404057804240457690105377558819841673592790794291181204684897672445406976210291611318651852120150976047151824470164598743047697866934802471607349891541340833852472846632420842594046299636376276625833062034920926423362345235684131654109737666019715115506531767937734516307581249203518912516990804378858433092903325032962783599086290851046458900822745072237616600016980216961807674613546424408773882223044514340931041689333587812890908397504235109653729396917606560836582596883926597894515933951454285699543972764450605566427711375600226684083780684500564613765486459670726055137845707842025459479987103664764035007074074461994719691822504438748783830937042002365171699040823623993686450766115768945176870594655300571509443537296689183659926154110282856325011086298295257691582644400280729444066036745528449622420811414216410223834741274371248820592874641000394143658403253831303584792231522013968169167844488039969501933392384445438105939340683040783654614540579363413978385668840292189495441338205841177273326721378956987454126682406678407249500966587697781522703936181667783458529527464294730875455219181890025657841710612346505652119292857039385467628407821011481035947049675821993345621413894839419426643384413482174196552458688302701017611940936776073435880657963277983196696748396384942837074257361730581925185418757417000808482871328508762764036694888315047565266427375962835854469791431961998054482523043092854383013244030417015077260886236295543438998714070802761280887740050025024882617171537391480772446105678117537309449953144607210881210494486429959952157444152876139115203825218802370646774841471754787658593153287730037504081075745222319178871986700094169962319799207279368113566772435101862436062202292809516433385999086464818401000737861167087600010950634163681510767478252763843888803554561934413841287424810172221766975406596710937518277786325807229255875309405450663892258948372060385307014289386778575988338947870337018861029066188075941698758868947846029575885767104544214268261812021509445813584743298164822931674378154878572012324846179932517967512068057578949021347436455532458129614801312980313510821042762172265964707748405699357713571073542249729312014130013052217485863805492350446688438142095434860567309440069411319195755915508169687705660762901279473063695702902038124181501999167169655223724967681194107149260498008062434887461148464815641502290263841184228442089346953328148086252712150389294268550217626014297206979430933018422835534629862435647356768029842043915418591445545569764931358018891724540204684264455211165894317491658822800253176340659333125006656478144710982397142271129863581398167302248734746249624206219524079515860104648355469923204789919373252704278406468489725872020524343070331635609704171870683988886958877453606625998963075454146045163071501802187220371584344528287628349543280964218136492822217724303146322142396414425502575316458062750489313960128427008792423907146166894548122213025110364558599215585802581788230926627567661964045394137790196065906140648195428200897797313100155376468131707884328666054341259422398943991121333290837670501150575828167474766917651265605329884540182949990282288079846238016965102863608604131326773480552485142630414229105655105367829885780474539742281620505992155744700259443668408425097705665115928232668754120118522942901802745365102345597903120672473515003661805019265396891801937423610590356984399377226635406705527007362192695340083064639767481418598082429696408012810280442776297575181362509880029614997493132346804245827081101938486685199350094548020216895702137662999082785369431235879255924520166283951186265456296111006866751548478306283546120198454062302798100489039439578335181877405478940347751907682581922615153983910037191361682703041762014916478355154762287387183171025444933130107249627310121307106933726293803840655051493817254591239390115681006222590879811122450640051080630321255904982209461909541220677666998726558279602281353279899994524162098660898268158386808503177973857546418357960695268359984272326861283726373921245601100831335306272094624525739075198151865832569959342787267633552513517248725844554023378947437973893145394508491657437757172612967811853994217308708132962727022171723650448642580472596367089860242534634210846024814472845890046847988073271151211227078181682324244152977400607555597854005255413051805137001249959389851467039668793338606127915345426010359889513587446153509957289545155351228881665306595239749609889973979995038228926238034089736710408334309293475183939221062592383451051735883280210648513686179424128582298793809506855044600658409914507965725553881609775488484898832091624820867336642657635828361543957176370996232597172803371692036789803533541471229705360643768993413734476871200894125398863474685826459528661933002559119329544157547378932464942965209086070522897497792084255359508538081477157559631798376461204452366174937135264964729692250225889296463519069363841426954960087285212935623244050914564175670910977047334545611838930355027101451851631630549025905984951219712911392810256356155085389291783964653398815672805256558344595202464162836609440393537489114843334049590408111375121072864135345304778023907415453750186846813424287359282653928152051493448216770340061587764199082282892572041990402806646748867757309271925751874608142680007923338213655534195241715073837490935126580024491262275426125382480156080559498191898636908954053431477608335647310914333003289820737778699200978389541982415695068106025040823326443110384573081343377832370099828460934031870262442840439547396806413877075051228472310326935225900758244667706055041008352301403610041936133682388133746159424196241732924646730285363308897136395509330678312558716049769264209757942568461278268229339567919257174944773010850542126241665180162013891684284198803316569573774676475953434026605546080020374575449425974039850763804265105047244335234235797370220122890084867876836054552519612337705140765126328234101645407032404532454458912037813665538534781372173460070649837714499607506081874856684354670918022708508038626410705727007657677264647998890091899321275463591994799069508957226601364289077978190821125688867711285389686876126027148573642552674677854011262659751339997116370530739886639557502672673006506225919851567670316708905007011782303600220189108539770379305055786449288957082936619185116891691910629364706350652197297123950197726751912559808058742562670630342090082374637252956372207996586155574898100867194876054116297104674573629324976321121314165683279265657063524645050321159731599931063721656425666073981312024570543845288060292930453619755428524170854208808788304991191903749155156139806020421776199300165425892951675674744929280186800267958928584925836389121930057831112819206183297497240316620160799813875202704672303734396890391807181667793207807982405644557975146632003079802181892050785387872658909423247712504467663133068904774261319405319832590562155611373697263206029125310506191738322408636947834845879797906794916981386277505349871834289659940339686600030397243552951249299591470626385173580942990816088114613727591012537001021724233149057133618552787775265742860740476408945145870432335725784723206472362706977823884845250246491442186439487364945848631564804748243560387212762137887761202960398879124376140016070627795751334528210790816392343427289622454054206163602495961112936955370285714077691593118213134725630786102460876966346049874625193024649423411072037814953440415735677397819483684641785772181937046854574545588187998171453988378707980439922156849218177724115775776017622052822230234515047897171438390342046315978465999564194671487415339268943779780893366402440778059706621068697064365731792971054748246326218268246971196751703201036748191785389056994392318127828899480347494652813591565562598496396385466890349900239612530782045027657188455911218667669872397278911271944925225936299103021611320691048646460474310997239467632506511082440942577238396639633800299200489847138228464340186633816879430775932325932176508471208595225176548033847561389371022517077808289425714933343146076084057044048533719012586753218227929076755318114928524001238628676321991631526826723032770692900987579863516494016556866413658233478852747953605513926137580063721597474600825034724259041531705366822659517995249660735023923614670891787054347416427250102725966202210156361516677009062843387668924182575927329477864380546889923807312758459787501700757523862135422328830064801527150836925811918893538203093431045326506481075771078152436279456443206426982937392269959837977557734718762084495961297485578144533749637155920679429697822916941313589122934720803438542444251459621448419750631950291273211883300362822070339180217982901204863301774366760228903805103974182555988645463844152359436799613669590831288207511530581234231565313271189287716475978845084406068638071043849611584497833206177132110504509824661243023162562607560440009371043085124053311757794345080477953416829146524988355312695000408650081577401239554532502168610873423431068899682529207453884765864705263584141351073760138712855867587698564795562439185829152628152482202295630052080184445658132777257505592591091388256252820603003766293412716584096539342916574065451826575370932549479962339173019312941384361168712954617195150994480891841770766059694012641846668653387320976814530483216524268959549913907111818773472883346488622645819679423618405188345926055537337801015523152872944428722204096280202931313296395364180915028723962419455013187191242510092261454608820676266043846661279044937481658609658321464590929758585547733460409934887416020843868875073917704814075886874045856670222329735990986718955503956059846040275205190040115995270167181552899579426927992322542196172402450355543534895333990606436607600794018889032700479943306084956894570438985197099606141705158324520159143814082231342094303446679019679412802804734595142111871199072150496520472076243854133864657551655803517542183283196830654286873988973008885472749570123278645083809891844309672616714884172687088227215482313287590634176441307074373570413190826872076837430241006560416565190341806217461837957152206649279360781852529031684282252051882126279406064388210816260495472266490899637979356239093281202463522538220472079373728627932101152786984594364737197737236133117015515891490885232221883000167825180820841677545753749632744965141105880425196838356066031462385826282166974456988690829986289309776128342556607613866376075598136582238952529103746043874999414054129553457834956361066058275209162234567000901501347172503101046023860690284203590015489998583901027998189805781122710323335123392119253535042295969329049811149073178986499381987926689490491386957482321511483213503423290005251291727916828359171718264362449376968242360727609887321300148346850496749340592272368221048538395560773625478227470685135027292776465697959261694639455890428000973221917747954667149604145466104277210960947586527077485343915415963898387278268642583090061482523582936623041891860752105475800819883689772217681237667288623399689596955287552924750176058904472262660143274609228093252374048960266564453815261383910209293530795849505690440246765046278378532664676941678584136746970596869403461605681482824881770820204638718268820051245774577934411855163453922660798739269612305182004726271880605971629265790627674934540166434342076779965672065588542739836622847588055826625948122722377423879735635012412109019922904087687507528318390008383948922886710323283062229831103733476549092976100777016510528240825594261869730683478376823905019204787787011905743885163928599820125255116966857593149640213938731764882752852615394415657622140948401439070018539603161260988298397272847752960584520609277627328017134839595087676207304231812088178262097180577275907762432007247244212087834332585910129712671873150467000444650300299098958692793177237044697787845431938521475924957375898072757654338490163117500993557796683306268334706482180460407620367252034296912346954764737024154078520229944916331434323636064641308067412346486214857757839826191417651022144847676071407566179495576626012222962608597456217429871814523031665765466503050806670562056755593105257627457485224788900731591156331898738186388848187135148539053584963790402312881280996855939467838277435377518733681048760359140036079858257899138981984139446603964416064525968302388590747733625216009211578777266038220161502284977529011237364482106930425582767284619062928539301457111308966525681419632413172213113493202259647053444239823882292559038994970165786145879104143255598267263424396664534380299458203474939215871260223915577241758027788063304978762053067233639462653681130110117450930826954491248106833348763494226519717841239284683216638234108233371957322245795126656706964363176147955560761657775133549655973200358227706894900146148667236248795070867685005061151884248481546927413010426934347810947084054881128394162380494244662653829057009690828854496839388790858910892752746769922231242305146593544630815309515998606373563075379543154564612922473769660074218878757869458923381155918113289707809559488324884116408937757760159754040961404995414491812777533323541917588877100978908670018729054960245802253550792815735684992114795567036028682565658276524048815201832628641828869703004224505296036910162105360277668722419877454144204884664273486525100332097447735865810416705539881609002359614591572830905201957000001504029585296613184422392795252788918589196822959723205098211481488651302665378460023850206179783353433472049375528109844943278654751072824116634272799080036009205299906671260222816597437758390036144660166833956006920254364856101692081864629962003494799210608970006269450519461900955490268362881590691542473982343328883902343885138447972629795385570705672732884162146117314863429160149033861838928467227336416243751581198362233941210648634977936465831470747628672207916753913885618970263310564140881036188521850209122595043791187707828073437136311401599851565518434121707014371683440551529722814603643775258387059825686773419101922283757844509447634759010598111361148395712506409563394055023452416092107674817448052959226836150850909095521908261208907996994471875503024740159362993120691231830044358142148196425049446324360658609876759636271399807206490892797209306950184918807598136634907349309948139576928869282182360206929226176693892464142013292133641180512906422814300404634520978037248536939863887221233445106898889371626395156966427605306659041938191449365208291925907428517118047313307665439836072962698946100168301211373606985532270627028803638150498802081775005157160474959671932760747870821266991485090962642127373091810981192427195551031606545485363509529448283933031398683899339741546394919187943857226380762020125896097766843146332926969639806169327385369811624321749911666378076793561385032484940001963830287800235568849482163903009969580141201047374437655362318688300849774595926085392749591965276986196418332947632503962121925857013819057844604253282729161885486669906001924739694933814879802709680231647710555915383808536120875003114415882169989134662900782688319171248222286231483009089464623389429606587612432835426714222437470272801435052161205114999543033179911414113606289790910200589098506766237612233991517211063705676037143132702252273091007248381141967102825454742007432713247411124802697194897338406052646958731626271405675182763911432965542708040196604663717486610480527477677655856521520752018186916691795445397709162743095429428912875359763600372381897877747752496208289811611582213267295852993671444248490887706413545964122383608779110268060878577286522593564251627367953765417311915619682323806144351910622386109006711775699865498163756726771911655539114445371025277547395859147686016954489931230531068353360845808268965381988003524538741090276466645186838834413600893235264925186364393842424030742333081193805489148640254082094386649567561028783400320976726843226187944343876249479425034431756219667379803265295040558305405419738516149287729936877649967048524586384884987816155808295900933987788458615417098378737609088235956422548673639923132373073595294057570773568318587638436271862929630052253825395639467050552177188588932108852426330286077149306522098985867182433205437729413016487176162112700807134133879897689281172119564843708519606894950348754048690829871454018525908707953448192284767536852010836412353745052039748426718572835123504727462180737101331041074806885022874249155157918559954896860860831255534446637332876168810361613194654856437215019007118408198532465406182955605600927177994765632779446087004190972436772357832349043539220358108191724205955220386311584618823553223266846961302133072801087744577238674668351522266799161038831210115647143138247355290504280902059594055124045579910399914545386447210895583223324646362209674899416738964629114740409676074090916998406079132396396893639916916364906726697880015180307992299578101268871774812889599167896391710371265885350518120281597878324350742422324566113245503064672016874914498274716229979014219395466837720810198442959640665072753432363545393034166569280765124944747654830552126759303991072915798096838004747732572475261014737860506017453914677948625945498169415689021953356683939968100666795585879616662672986761384906501066310164909950595948009712506159912632144638030681027568195951318403262397230996641745667234956887185518231216845573894864095857800420640698736654801703177228411999350454418459731252768938205939858794428777502617007559235757791428121112825945143241190336217188815495454085485840065714758874743872811834164304571590358743466392902287881354246727648312290862409180211116856313602072027780527755401075147069327091354182492026227956410488230201995332349286947314898875840262711043661095305236995201631730702126290469968215012622217352580637488850247693516738832296009138789569712173320449084572017919041181390939338393230302485857571301308212704337366770674908187141061553744518867475748637676494458652488806139878986899081806019377173805505023547493965706482292787801863038109851770400419651574240691813766491953856207585425695611246347894107920691557720128630371094586184512969678549657750018556764815469045457648304518020765010411505482832045673050370857441256886647452313710138018274561209679286302346095748366368638214244685824232651841334320010180652353403922821245998515360539687069582435982768100133956665591509171749478041659684334293035783981202341669851414658662719453449259131227858317553763143889213024071508226245367141506927550123239012648862710463933982492467828079616842310705773367254261032693245203199236134032590661095765703534497606013614687343488625652492003668025720204849841152462355395208930236176966210238615196515908196150992819792222581673012784038987966073885949904171275707698365788191713030745020484642271874970517052358477729884645098737719406938383557383805695489634743895924869919555502333545229012815559573711556597339111209497907807273862908243150303575225040388131648447707873477683359272472928046552768709250514820359299496937770921125614133666564959717695771435972782078559727544460470522415777972795786533889453445357495271044700515940473908118433839192943871931807964879878829935809176658671137517270838505656852487136357265944018044133022988230655250119903396409370660665619113754653252134887550357554424992251849726054419985170327984046638581645480415714235909941180286517809454761279272285066097197348961568528912322636237847309515708264019079212693069783890123860273902711585229214749436010940347340440361871248861286270134543827148804648483112304571524097886792944459499065332635698681662158508936514983879956630857214398650467368619242429742048424223737925786544270882681791366934905087072285808154416281965272345334114940700609957842275756327725935901458576839070127316687029071725552456135113018660531420594457293255657400510135132557641519419579944489778927337912213531132531780044463755837919262571860889174465153859693624984482245136960221473351174165632769010294263691981440696047661541867917561426475605893486681143033290195845507794482321003133824501591450680247707628673380280057093798897255921445443409765227198127288151623878031140565081661407844299194400956455833261623744362693303751668376989067047584348744899163168358340166314359346410259610966863766778453748679609896983482841411705759177044388158638435678764665643496264197749658029986073171550653473128949669110967014150724896743298347770524188302686721921118780491931551950382605779056351299888472850182831666165495798191326921357348896762843001020135879734370030661402493781771171324778244386048981137240105231897899750578939977049020809408852673451136677168801865410978129035779622437630153943747294154102834039965929758382393358034295942097672610428027227547843968936622462117715923226941730988528964991663658288896505777669101557175866063136880592897717720685165521022795060505960043357705807262886219769282843175673663443176642902395513946788107998366507104348549695372876658189144087695907517024054752264528945419634172860623120537546369127255505465974184841175809230263698643372125743884235223087597496646783984051101354896683899935258540987006039467069993090260976434473453571670823150794348938571790081213638995404516561735097200230883648049033046554370184011285962270052029011743779264200849687379750759059266896075233741064748505278816495795970084578379912629914514477710374000216788937881317396596537654838800059285885107741758066932986214506256617200922547992319484292135022647355405419926070762591167596786448675380647381934008865350794841831307528097823701712278541244550862524430084113277331972293911810617851455378188467484475845963663410783681970305091673485969720079414045292567541157220417947391109124138806089961659971815422013856902904768803853314715572750186791754184440051921588951876295972736711590757296364590058572061871134265480503410722909305844526172340806732919587337590557249234536322066765774881921003346326345001215427238592522445177124127274800203483503458659013240351337946254126988156910285074457394364268843920866616632809900117029773681035203906515309228568748121501932727339892696477054221014965358484757107792853582969464430322767834493213759058525969350655730930938259510069317614666920801004513519325480327458683077009998411320022561598941013019520972588699146285403503497833715718478580414377934170794937609693016827800039608289967776498717750175320648298656091329358374599201035477374585093229949911568603896907622287208774045675359344446909366884105195563371410574524864984505878547119857736600296577156929301827263615216556497560178294758924499524791765032385519779688850260878451309897648548557343842013014221754216527945595604994798938333321709286880858107839177216214097428467217880119525601866265624333373772876797324929636616239263280868429321662775440439135993373784867089822051298662861457370130714160313260443922928803582206552363205218949223764215208329463548516714752089517670588581987148643548917238229054727967393215392656976957639750025371269137561949071870309856878067964593734509266588632320113263702574127965739895920293056329166548370366667132775717448877071877067040633798946991696233134120153435936994784909316977958182910593872043031395248727436047161260043113754674694680524017124746994566523045273041795997005065127617701973791489264122584341642455507396570839307467373268683194600545882997421433156150175829228925992164299490845953782555205364306937618553481635372167888606250958053510011948413395739054223968490981739385780137115962886764490406746717534619705843439801812381567679245345200471561623967528875007593483440700754860268620182078791154244342399488796127667490938678534292228885390795910797496444663983444501782136281780629695519940415904206605842966855922357153606584033249025483213393558486739142547416009392264083168390921847708580887571407729939735164998533852065206151631341959038251090176149429352104986702016659862389329904405154061542078976102850072742395536408726948792861749773870578746668793287210365254337657124442032075253955322705030344342980802344767862208018831196459878662516114537993571800947740463814710486423934437183449662744138468846411823454050189487554435862088359786940700949939907447383407912413647097279308146952153098850313784685869399821630281054463809846626189400519776518662264676720548116970479639793201579721184627796189322894977218123136619404430737870837052610443915337740648182816981897333020594007987236059956384783515294962940309424330256090037313720435899527333180065188378310476603797607559844733567743914785172374949636308786989884820396462279820597402733202574139814819921837341207223520820798277383706607370904916286243711319494490759675745430763596667169291716790599493737569895822485333898308630402361869415898363712942738347606697418223504780437246212037329326348204870735202065115415948653032956289771018225549413096583237993527180380335410858750952078871453992019139890243927058990040765250256922344571455179816030969901857760736019661764615871150923225200261148324543387583593598866692460656107129310697712134638837086140623645933148009518364821822682324916116009692310320748582761701392874967209942233156828022127871111866206355688553386819917572279362457010058848972942869438801330945170525702028253340362883269436909226932320667344270465959391918319614209689157215533673629507029083274392736246083868096781842037307623808381463308747984478064080154266033144912052226938332796808272127821259109870358815096105911435736685787540467931732243037026945250269160352495575994630255726453933471763407923565477545044395921991910715193867746323737296410704294432751597063276812196250978717336614548750816524854717960029316307664330228758934291405312924167564106723153459240649130463778450066278418352648668575411827980886951605979941186854160234997222061082690637135769342089903160696293536232779362828497140860967471057433632080701068139444260550115898974856774510200792758273161377561145105253383792889207364937358083945323073289639662671570266011200953175709244557189242029599938783710665941775234261943897685716094866051234522356789349364124543897751401915491115717459630371802647325361024809103310616259754398257587276733307593588084425468741717020129904278454137428413454240482432812878808385334833137649501781227172642180461944352604544286559814987209345585511968496456388577406428010064854496416746253213705867224145615406792892299915033422391301866013029695551984357356689032454100870778076296602461127091177526143817850631614617202203563536899563312821344272088997189582507913915942867661190417019088632709799132013745710957498191372367039261685395453408550096907680664025548173849132180443021770065191342103506129987729633900264293569523602438511755550689474087338730620856485023060022426547694878008049496882006548983697168001492597076857740036986452889980265044810176394374278019259540270748319438974451791122143702659582503546050574848159812753078083571442575039366551673707895781356704867151815627185784429208386414278138310642752491831342170251738008380232087166978351515998042667106309244512464570208871123711387571222903110827160476661443004598264467874856799912585194611982704176792623912444747297770958258121438436484225492918845796043837811162115996435424059407962793633597619975980156538290485556759404546610036845878572042761807092894816953045124554347533669299933639870684474819214767476490877412732973841720218817451260274564362922455289645001661844539294899517425192288846813295334072235029287451462806302390894360840025429562986520286982103766379319012870326080541075344275740870983598874442809447251606536988240263225934508429635049276330730232462932937538226445380092420075176262302704121439732219925892677274304980709260968546518614933413032032065461594905704455908017203114341472117926796401784424154460943302823718705926417595999941627712461610742335837525226826657197092760447449111058846241739225620892549397301108084225194632066911617720651838495023353178910400651897295076065034044107245451336813425469211864755093232884660576635345754761444497163268140864462933862878402213709136698748771514842973041831693643735077669916100459146372664407375985030936123724045319230765389531637339907776613676222861266097724094103888903236860984906665523559881974380022792406614963556104065136654762501470420126755947151137004875234386156223001984756158069045608577337522400173680252789892608743960597893595323577288183403669568042569610842723323283660343860530984366818872749473798079572690226246296949791000118422023107414817048776466979745558785037008771962040203279457143932216503234550459701308870512005651374365567810887582943095672892749546743054738939467225675943280363134612783686860906066174896812584944322201665086306376476385638126707372186659178672418577789881911631707406925264744704926931105062922623960691878853886071201934875039700059600652224770529591382642757823284667103625377982363661624987373483982354352198984036927438981127809940131229561085283364639476022442601922694879262226957069804674151040157711475858806729678324279343902419161404572831554676882751751039744381434792321131439451987674741850155540614959898666990693137880725372297038608504448132025011962566490597252985963792565399896276379190165746362253766652781587279903436956477344432924714647900829658898208346941450804234127498863638847965175145963485935998557749059272183665397165558853452566159480267329173883571371924991040806667823280195484373969917716477944093377789855448195561483670338861100733458063219216211847808573129654861311068064544469894514580517866936168137381814503859522799184300459253330359829944018793277707754831495087213185077689672192251178646388189945466482063875312533742595295700273764690321451320059930364099716195093216009640600966266659062834994455708351911596332155745305894654323533623699533013270679058575895365758957511171923706551673002007404248109366230268520182576421921774685876370291646326529597372598650213304523695355055381789546621163108501480549143347577491956405264853634745484915574219592847434569260818964840097931764749442243169151525716012075757383479446754794324816322135807067265675383369798402841026383261259371198164617681211726161632857908929281037061441993850775109194956517942962377617362054729290946281557176356608217986317144381991973864663750922223299195777411967934818206314657834071511317171099335033414866310660568025086209880259025552727137257117101187141496100733962368241496646205254175784179873186519480266648042539549615581941933549547030412554462102095379875847562623991111357714954297094202635697282339448807364032773197376804787441240996370165684355146679919055980337302997094817725143803707360074199877520253181379011669185712741719804615156082607608750846869847965976459449254972691221785295733912881440163360061036203449134119402768181890906778898837854297212331787573349628314011541625717237173554883793897943405342771578962389401074165886504955605078398754553628094960124353193768012562091014155933842015852935997849593670086130848212427959040284918185578479117144819323346858948314374153268397467214654904415167357916753651292692788079726971906751328174911010699458715098737196566841537364151309855821181653479404683302279985446734562296558231869300383781782532685914830892960226427239941770448207906808085075761228328016988574306186985148098678425420814995101902390638872490754485736372116017901397629920742674118864811290702722855347607041039289776357714503083853144516845004561919743050417115759531583707227573398625191638708011162043810181129616046089066686465035784153600965704927911843381168589249972376975338437080317953008229739613490475203275417938470436330996849866433426136060264090135602464043911513886539856548178248965034215949160469022121519582481908076234799169529916973740735207348576090957914580178586984006384487063537192441964697850104614191613936713420209634806739811822296737102152732233415174124198022687646489238519008712045103392959584300977566022813962375029103123055333618095944836972249995148902291175871244412782925369307454861798513863037796898663098502450523785678559826237051592410445455377479663243676034519963624530300670447859491255414519598278804437941625066067439408007850375745000378629730654353859013347285490679954815314043651310355175039316445514221326445663220149943422730339913054140292663148042011181891752914517265608386020125591409186777397815766803348841357224304284311125354961622455606383846096983419809624985579614981887539832253826806984744780128180469558341694087857881944578740678210653043450471384396690736835056609782015611410501169852987793416779046435067255609155208195128627545374041475248240840773866726244398659524662476114424411880704383249664708121634681005832304659529508861756376997416205603506883361099435501234206427186294002328447754655198918238454872904802393456975204244644939534041871725469200402187897726768373689897848928588803958614421518362032768703073130733575180464105286163501233420434934856003714525265193302620017145567563191398493079287830080326885133803950627930724591863113029877998960882951291899395689184631726125859721585070157013398485910617471731728836591892582832952933445722262542009804176200214233416512627857320015407573980316395905936538238579580885973748018189751975806391396270137120605359263369238618434343184587968182361426737719856227355148325038993612061545472714374928477135533655919340977466291240214877092266579312387453892512465111058289229631915773085200129244308608645125087816625706989985224863102100177497739275335088782357821522817318824850138593944748310209395177490709761597835348216563185406023880865997822241115660163821287372832034635192885452157041521218228068761292339977089150104488294053547175426272998851617814193269258018916142930428720357210492390292291068853371875732402844095576904943834157403135542011957190516132946403194417562115090490230635846315635588662268929117791899445741189382999102351626228211868990966148244555692457265456490658548727261850323964540341583294744635421743813704449408833637576512940795383592873674793187918936384986545260064204797128520346610110783964323298132476550805101312065290231432968496468828620852826529540446337414212716639981288583976255138194406213533673951933979730921816287674116384923612727793817053478793833470211402443282286795386458057733457706082349656903678534055239806185430102494832763925208268673702507513025282911873228566464448684916593804998617144255220163519055545080797944284892591494826524340316753923677222681147141098020284311682858499438049045955297166054777657019714611386511202198268187037090315354087058889329967692380495728025966565054714434534798230426283893127606453740415948796749990605967066761282131700684244589811859434388382641677671864510986048358627716740242183991043608450180446972775231008067067116159319730872225282139504411648442453561870688506065431757668381292750095219127522659311963127659251993484646150740235283103667759729099471507451589910703431816488408935279528241491206258348171099715653053065608633833474192774802597170977049377305952930059816264295403982324905035449309100996113682251184590333215078974300016314867964119924599355952128805023367356350486076085054433310920813867170334516028468372886670221090816508271454016618753326114543225472316332368300200287292533902902924632235341615522508910847847267312327858898392294803245550151076999079540366743437321245216028404288495175966673723747008945027417642735644348187573913647524011179753959435931412448645734841618974755117429456234792193614048308209756162554137777036676209473856700099110656088146587026446728703511003318707067499520812900459830227081635994372875963173463111065991841304715496819156846064560986262429646301204550839917996887481221307815386388596597262410648641279924884021210208240908839679215975410462690376476246871056936633378401775766689390916932259719603891963820372815476284594080493994951738458448977477952598931680522181187426800291663934714445585029654006228982148216295699873459578218329249532482500578456050604036781508324901452737233682755584579612114564394167673513262950945517925481916060606916183933266546199236033908951147138197098025420456465795829071129210931269265649156001292261620944531982448905507641280277632266214514373067989425760128953395631127131210275886303234526975291383033229191376041610228040086360955507630523408390745581444032273497200875960890940471814489687622028187447359561615914920952070873107369033955024123934656692679766495387572300525991014810258984558083474888223767698789295584256245024365616479232966795254666589940344130695640939206071866849550345199244275613915353056135480624011452423337049539527705947541711060134707458912204049068879335107198801488039973688626070173842898513384335010829233582609206249390180673502282093544346732874873778167588287050812382191672211098584962786909942744172856157667220216863399774965667657728349966116522274244067183279082719213762993007198435445233858981662011345196790350545731159666382040920867931765356344793318322059117304988681049574457814415307420739044994222896829538862433803219577813429672732365222466057976378227141425910982205537625847610581238318255833025247091627513024507748891087479108085273626445823079695399154543099103834135137624879987395276568593583913416583112657861725268673958016050957043584340892227330828575880531445623914977178147660859509498567873279894206657927258060729613585733630216968426492927826332500828876053071021642456446592545795057944051008841944797660029671374227457355823719761311930814078123242451763460866942231121341973546347040718479976612894650120375230255635327517331836293882103085617301480420972791030657881691602224153314252720080354593664246262910773515394755079367483746608022994917011704028839963751992045754873154958646377680826996070758159391519472272527819576854696873963807131452197220173830035840768512359601554639812212632589565050290690490101755813362047286036366203311691077934033016498653384604659787385919316242669591544538501312749581656457055633389025743634301573662572598834020310735097460413805671121619593282671402714614534905234662128244717904373664479889737732108227009312510323131375057758652694595777292548319911130549204155365222790724106339284680258358112177473842998055165057541054098679594225609375299374164745539229436380064303818420603823806360297132223102611694216256942840522911754704785386464127279855945124206297344543886280882456442565025539047073970337509969295215825773143768317555442256887788643750064042105978332849052129738470082292594510746949134410545556684129550905023436567547838663962391184834999183455174577480984719662701028279029932196951415746970181255953798500190437430275937219877110996534381646314023058810010927538478810233670539904273517883398390443437872389872490529465220081328840870288707198868460347475633758630340778511133497270915698142353361706657638939050769075496855133673613778953585233011764926215452511755599818079634244624948075606221503684395076393186773011538310475384825278645370109056040072560011137123806737965138483446158076717776019827166341964947001209029275039338720002160100889622831547234936219739758710880359137813638907232927959419341366087290120457967398972114003803474709903589110554380847084202222810116536241270696238842310219526856989032515760344391879861060129911813191799482834465553053233645092829639778855216314633809569482242269536147220211510357876426180893297464386257444880709376309749588485125050476239410875040236034727314899256176281756196052992707639687954738075487558803690545837244473742188414626313746335136564782312455866042023723390256188030761488366934729863676933550643326998939190868025699863314245127624449975997608300560996052207610483055770391487552654889557322885957124419117256905749390119871317572074999864463462315283935674809844110159152308800301452080046463090652468277179959585418882328387796152986651845595014611652338437700063471770282936002893956332389334305152324946024973192389708700702912142206619870445304497473026992141993439142457585627776923843747710803915357760220014232884376822009041066130367768534127978660448824806202510962562835858359503383374983095290769675247914571522002153749422014860086063602283882160248356922968269712496541951005063186955327466671942373830160259242984765526693080987019671249415210839485090139874371830913030423677570632109867385754997572592835566962827136156146656293329985573386563887775750094406351497060870967993072762716067502847515580161015546409500321645913054776501161265898165553497063114085232258533144783180593999809494927541070727553282403626688121862122235530190408632531094847375646446490493413127457388743245311493268870458874367220083943093108972121179303741813368702581416942953234292100983129253784758769464362158065029656848755014076520555393404542180729358712614174722251806695551175734452853854884071144634627352365656956528927055057026955666363767219447749091482160484162791978211678349653129064410395671036591898321176249698771421451630151144640466917041280025977963969592670444350814655042642433143516068864383007236164451631214769590919428530689344281436420600292361468404520262300455798175936992220807207991810644663885249859082142902076220372921333725048081025310471807646648229682329331442324528267146010974030460955985207372802418626425574725457751036081616547514200182621831125797681398120404127597802541120938341777835233597371907637716990419508275023608336551352770820644782157057134209342105072964717801438193581079407645773794641364897948614448052364475901055600907732839596790649443497743770399440378096354978873063342059570190976817824560278924676230017334270698742295225959156234430032093006212328133700687387091515401128472911827669421685400041768464207401461734178111592549869645702975409047682536522911880109278149835982259054416462836363358312174016263502204419122542050808298094012783326048791794347426391387823523003011637713423921264686271334582853425369400986281216689764913866335079560065401611100490706205328909743396164276818082107192150528045968304965489053557504104951604743665821952400679193106689357944981958502129429001100701212116665650800171722306951936622797572162389227445361081305129411861270129525884871149262866516611305393982240702358311990213465519578213468004432338159322986528053124248391273253167004122454113870644407370779465798381140036887668408531711212845171627871877765108246416690571987277221918594515615456659256325987929014613429534587836089114800994952246085461188744464731414569228192379560105894877885880974247137450459388118133191173182321460928892178785633793377894494728314269712944573426997516913012188167937594374390483954057851016423404380869254909067411927569937267339174638933391468538320594301750829903106490878654441031869836763820352769963001309251424994607162453006227466230529793676639639080303545796783776954309291786149824810303499636860407893020179898621313460953344033003116833815244028177175400198472122295403650140813340683679849386601758404261878916824952788022441194666746427160892773432122320558489388344508390119688899751700769675426228719923988382637391427587432024370373960998699746574183831253919223121557245701982065971051128716792359455263999226484423670632649931419251969185016982130794570972037083325748769699217329849479111576387479636065079696560266336811800619416553495028888336238001880071518198068348198026470346515371270589565541860986796081031746149977164887828120634794184689821223547867587272529691385841626387932287062991145640352632497347437490924041190952197569164114062403504108897290925496945908700292325948083161360416163180293148683753723506855248841908533768034202841883642610420154006098741534637251218748215799697907674359733439418308801295942535980649087194683869282064897418884303693104715660007671505678140119072283534851940250061681008330840413585959628725401273712783468549265794572425303239470999105435557015837950718924942055679293056564037825509585777634015794230729874705698488151427641717132780646530459064799236297057836032508247494923517647122346646657589049571963832577147571080569794431835575811174352842005071627203229980650555652558843604614192685513421384813035335312771436146643081460118784731879288286488106292625913599569391131773706707919603214723367897673389437612044336655095328286886833815196659974189693096248176032917203546324397298436052269039329509730514927847027004521712079900625555432412592173688747671860415718641481442934219488413102788354247952958255883329212463245689168569250418233509561309480706785853235990426919853338135530088071630378409841690278928065211415900075158707843566136215304889167792793852644324809135538989315432244603830642858166355225551550808626497104050624537045514347880871039139600925721780684085405064537986792568173707419658257039010877514104918161586170776631104289435742046755639123200422112312871570633273034838320744881373015555096646023983769049620807603266860697328717910926460845164826979086670864307087098566534311422896986236731131410038764641297000831417328865052229961082271800412528340896301565944589494964537618771664029651780155053857504626281081015372714825448333940546399192028413418650326002636223557357762902152108074501363074814362330884255232888918931187804324020023363427131646102003570601320392762859124139388855584528053229851101786413559469040403364167186864161067390762939410448646415386068299110215877833861945981977452830260889919676410666504877011772212503871991724103570350595437226525165616225068863907052509266335474201891493834944039562027514415561741998656953599065274564351227617905143556576347910653818204435010338693985958352742102892805938435110009953047329658404670939040939280372831398313043710131766758645183353306105570777889762490687508643880141935697628655572857418246606675733938179963498566050789411350311631255152381545491677182858959921695804892741815424633563933760099334479864094803711529005030739036388933093650920767848785770647012654743640797286299857278553824042803932642864565969610828020114784324302233875042934853867864947190243225803066230248972846926657752035754184522057015612440460360777949161870301794398923940824390153514836991709513836202963622697858358441684157962595529958219923881635443675941924123246479850910194078203744929725861286903750199887463600039827856214633513827033416161140561487551080006210156487069109375538471274823128003405054874009245083843199765542736471213684038639982013276203560383163077170495281430847802902633050574315664112034325916764975413991347204897991404769177383631662926403848865981811346310415084875300765259610831583891913147204183844886581801240408153338845303239483334084701865038435592985170958870883674886416101759351127988948770089596523129710404429550967817152506082953993935476555198889035103344907257209155273125672282271175847207947896061231286461610156020063369458411601065584399950123104879013228260364507680720313753317921238398741566452695580240097047381136951767640649143467506497390780805536199966958961383701297447903019630463599832146077765262738907366558774138530716778565790990572605402645977156632405483352131296288548554472875807469413562770683798107927416029255902153116427384980095549345558894179511103536123563648075414956366305174374600927752510307626646796734621232470728103712104804853837876154199644440628531722579032967425574112145944942212184233146196691093091626046363936349716407718428153637017300306167274006869182178599933732873730218091821013551286940162922085986043927009036070992519641517506498343173072971258303247969040468294034360589952905809242882585705966745249600583873185733765767043826531997666023440038340957402216627526682705426062246888900092460577048675690249237788740315030879976563544119183755366454745441803017749243856656851101951207856812148899169247852333295583919897632937665645646385066592529074120321698321244435786511721403243012312415544404355866933410549918857173751859652894201900261950453369785571218087532411026257140421181627986901256484225645937085224291856968575821530216448892078958180740047360718321014066647175702897686034242663001983935706489049869432389275023548827728713833330842386927209869523541068014929940371785295106379716172257463453390695494160733387608608767038635910332722940939198890698383682183381187652535254712999101202955163152729883096081015683774147337787974910967006933444938993011557176285696090704889799312648461097682116130852604903937351869541281597798433094038014442015778618281822924621569593562529058808585480111052048408150143658632959684864783991341781160684606067378805148137045736407142307647254742054393094821332100400632046662168982343624063622129497286593966162977843043009931407764773679208158555795144160364850528771331063073033141083429040720558207527986456025197675768956208506920664564903507700436621581250455479719358457041362390583331448129424846364304063327204605036880298590491290464364196116186618544025031370098168179743025128960068745707160557375750191267828874029569873178357071323157250829742456040051971421468606751530826169490848592334543054573059802145672495432874664400123521340697694096503366774167327834894828448560366711326060345762474829900198884101461678512274964092650258980650306892979152376972612937414750458215793365627575699119601159357635487133261465326222980529505402069818281490171875718711274208754790417593164503833658875928718454189308470994426257768160065252359957093816686868166277818235366581825649906452851506939692336692775601458639475386853411525751940107602579903209668212192517546996797499201066788611681535604000610990966275744526462680012721560314380502645520281973570404489853397384087444368583495933026445487024656503963671521933836287272790692175500451345578311721347805382451338953653284777572043679206587949770385231302800166339520260727970799553492534690894538491824727021853321575485416741440901344507892152963608609530701781541294114204626691970215867904655709525910055119308318851721616143760892497339009970710029397200001192210277711419863876117325097808214162177901901540770714090117008847045027317686771576584285064130456299979782417676504889381070180627003392967410842317537607735507966622194652857309185884928986263499130283223065754284177370011780927502644161643451351374192372575962759150958254880598651681478535844351641352454336307003593017073400317255901678923272433740816082921261172157220414541066688790206795404790113026489544290138104488583193596548489501505696943855412475353112092274622551992036716029465441502586140977293879015951705764711729906240564210873147417685110028443379035530155523683676214256735811686753899978584286618454114953346121065286985413590161316217249436722341050228378802038954540235043041134677239882869784882656735409719958091260702332436860027656731025132743570205650353114909020421423555343450164385544950424752739687546071898464967025044575095277519741667398982568124502249204108998731790491944162805631903400487915453910450965186554495257442725617523406552115267061372276508932430766871174817055323059308383095242704895650016357101116534168785988574043819372658599981740459521785635512000061475940656085341075289714344270172387796905060931257122682152277819132863774672221129398042400044957629971462813562130264783811590243323296800742091871502553094637325236708402824247155723519332866242871914864768282068389878067792945799037950769511590622497314039845413086328505054758041131317809574082958793224299766647398273715849881997449687990314786797803643889522652386966100583416837865743242121964779543124850652728583135026736491895912818577601292210520706868512303097176551566040977351573152255334458574671650876164305209999783370986557507055728211381364714867990771951851887487676870686172554390558890545545942608391362900626525829334809218448733863542896780715772293643705165711725911640300543340829257604510770429510334219234600070279476929864487335835776185351298393242640572958298238778674356166044706898550956211845369268829342612467401137119053791817993570782454058605372346488670763411720427150262034572485256359023429759709611674931280134965472499275745970993024830646276199849981989360866217395678109414739921945279035674523397249689653079379031539697043742256358291623794151107821657679858706583254750263146249058097398084881960238327418057961077158493281978788969281740977172571884848520049308200730580424900252012998844319878002600438916729004948662484544321290465800927736694945174022569388310619702612784017109052048708592799096571461274948634283087219564059175661097387964405435949852561387021216548820053070405432498063043837032416160499880950708634982883753136409594243048403170659082212351001612333555111870041704655772587524605259849380427071808440824850308449982919389712430761696992556297302491707510814986798589773241358284133355950260636045948091859755255009000837481208021098869608479652925446557518271015800503960022877105376704277344607747213935495334801093760882663065741993759535152446792928236744378597358637048931493674741281505308865186543046413522712895204579429696234856567233475055328650605294921970533101908877353791929307582271237090206258292868754930307000242103398216971003347701516091076444326270300456285766810842674406144231169171005808433845849190524305606017043403632210740212697113159391166564076378664777635623711245368491046988062797588022249698432333643319938543421124158977354286830036310590999825881637371619168056193868511377819414344388278720143244508473756397041061371829232420108610963027613916554308314664278552681016905472212998837546793140096486871540735010434171667025481301489865979897851676006854769242712235282722304425470646488726783159584441453585859110831690470340634099739580737889678803100014248544601732452225932680033318724111102539387197896800482889965935963145757566046596185781232370344397548247423216103198845275460993148205606661170577171222767916486906203201945140507596193596855048701102947428746375840848214860208702208435707121873550292830555804837992516111216298376017595336852594332356725338953825549456924664274969025900359892943955835834817470081970331993583331752049878575993400218055050176580181963824704750177767770195191186657706487433911163571023712284753331290256530178718765382617585417470844756374120746041571541748636093087304402266626434075947536078991139390674847092229371436572428849070827311796470016792563203889025408082139852571067699461077536166782324805072398690332154038149382968480548101364571079234768408781649052456504641983274095041938900409425655514541520052755051315260799726050852865746480743362173032955267773920488178677866538052175599561873198040541789815046416157733201200634307803736675317929001376676696213743820381204323501171829503902127962848644893097622452530283151183468032316740105814098719127953519568111356925035576593042954768280687392594503766650998371424093792266246806726216327393155347871530474721775845503564703507841297952264797293593694289067451822495449300017861088702459660430821011478279425274216090007821348540618927507460792903863553209023548598942337036186084484419109585273551181937926356879478203161757994650527844927751925112681296404584152872635849108911705719917790127702740968097154286658494599913712447648636849549009631453660580182131306968333541342603912667811677399544239207028885584408501999546401202238692440293524735301210111240520621532041780199375226130307102832691455025934066780850667006716430402521262976154763354095246833060946860834743728570273464343321029485948009744266323607492107847080063620239218791000718769972187363271332168905298260040876297389598316088071448798877210471604368971324852607563341722451660436155919025120167347008505686933836837132153070234148850562001084396095102491962488030664624727603129908738990401796648869502604127351728929558908342356200521769870951814058704561495142635768377657130440290373109615557656363202167887050925171061614738806471645399105515225502962214851467761383209219843817186776677421529650710501084991083375406714732061992621706082085435617671221377470933419348948104846939545064738750098619911545520463170445436538804604811606868994245334441959476619512546332542051355499400284155054600896847967356942602703856076927634680876563025113644166635103692874281103609468972166919451518773397198553878290768251102488269905128972753768265122965883408209803310398014459363586137634723863487221503707096493823611959584641148228023536444025223883094694563423100331320197087795238355302843881946435361808665974758418567816829873016843956830404043870175936750750665550640058921810625833306150322637521908275359626415449154043404196753832266992652439715541686337011350909301364097508935256685179956292077386409929003661945092616787084276417586021439488383612656448289749906225309324961225730567362472189989466279389184991896047199181603803094457623351429693328230574079821894839991038513182051788788320614525208094868275233830868162613193874490113663176425353657103085527909721280484888917616250615460805761027250809263878625389417657223653451053586644833121833003945230398109550676031704427031304457661123634684679305188406659963309739260223947737665196848658793257723032390458354413378167138454217604173719699531482613226620288587734898106554593937131493251411536201607560947986305493970474845103364854079377216693712144296978461783438160368397349362142870538569219108715227799594787595207224494192014270810677613495335714646601755853126226239367376490719506363700368005292799852864966083834221605713104181725666666344581281152357110641518999481054727852521685861429371091168981125541507695084875639677839925391030199756984138406343730839044471116107853267628392858700420404418382991595518012998194494883387470360166417826551259690477206198298264098498561335061168383701307572926334410926080705770398320381675235692691385544354524557960908071792810031175692884543379441932755167927360794907450756761986437441472518413378092566110216477577617715051181356188241051558003029117254259128060645031638449988399844697942895011243443127838419606218735883221233282582639492714131945205828142746925286412163378438649531591795849623920015415500896442986303582921795267134941687063776879586923547070602832568306442294679892435654648317678189462078354230692784223653357542090659120159634934252291143911534138338696747787988976384719220584805449688246089974712437658310274489637002130736836516698253590816053195990410288960471929881041654623783771118955066940433566335892813342205675597763787566503895972807968080798553073300519177266984638944767909923940296319717117429538204766901980154819504745029412423711354292295443507037661290159960390742027533403495906758446202228279135450398849908538573221213236611084399259537802459909681253655945914070603819868454426910933617341600725289938390155354148866668630414626445219665720568741357474358580011562581688861131995297467098432951719407825080833126626866729390593547864120848448307630730057799148293728535239732769538898396147238324101831703384412556433547075709428646277991608300976836534101047078875507815601138338572890796927626519556378626767821001221730966415317932985988492856021438597004981324441861168310630287945146986498894706788451013776095293256939425844015451582987281591378680775820628742583455238461531165831757789858971301524297162876962510222455114441434145312472375373848822337328184289770577785776478391595308413055640847786805866184957655186618911172673109946126581291535976448248927645641497421594006944046983895489044243256253646336482053543531455278294626077893054401035346313068509407468417614306480625881371747489470206927707111874770602785524147916264409880590559779394439153411722171723559775473402499137740831923096178458502745675816001216397458778407747546487609875423718081120997045314597354655177549148611234979953970496840188779439894354438025813661000217073986249646059816475100809362771053984082633090807330981879237318509448280657113330639679528538732087000183509625520468428602515612192544226619742871556624599865285008979651409862155205349318542968092474425846440815194532830199166913210490201099662374675610264964543672629675627647978452661940257327943494766848479188338122368459920623130656386513125555012639227618714064556874068213279840239726707786926168551958414306284619362159594857672714736074700439600986661477431009062365393612355249985632813218367758185775856252539140717664192668493701474538444582521891822064293633424365739042646620370288960810046212470947326409278728451514662004164002896436846694124804147208280103374205663481213008425412257495975564324103881890006201789444355846335417499643972586689864741550147130469647210049211394594895783863107605799008174472418759327996938438518234508451104057277328070886690428940224211657844018693931321756774897548153178438203690122426576586414234891659899571208096831273887856478595818437087923822020767964121822938611006800195402706066841941780978828724164223366020322672027861039727721337810030928506405383616296754616443395281707017788051739724322168229948859809876328338123183170740143488128714630582644463653521535701902330980555929460324024049704740062289673863206589783296329804872602454113897400898210558431191261641962067457666511242154108470689093736381916929325564392018639991015625984576487348291750113309321117155563995275258535094257323747109709828747734592917356449605450964672477049405258545605307296389908356253567519129109285847885040656475253172380534896802308890318984172115636740937690409719763022009576918968519718258030333371433779053973358574236728789938145246732121097671956467362579318357963837075507441462881253393231890132028500245197769207883461429534232918439729723567340744656569654365529779992768976725186414608937041149740209642269797540974109771898089146573350974530805876694048870461103234578804553919560508047260284730390055791068359455991058574132919934482291881389834418285711722704539021479297098670001941770122820436140944952845838876067820949370868054750894661492065929946050231397457342831863938611865693815190532943991805883260685014496558250144285947661490082815527553509454395329288576403915731560831396941131910783750129389963231041375356856530446529396865001609272895188979603127660910010409195524438070403313406170006393767988416380898464337198823619073860296067689161543061397050996168280368982393602925015580049587429117127333488676193063260289306900604899878011778255554011333420528758477950156102021276110905828619011623036839543709742531915293908717647175196492316935368368521575584768627695858233658884926328322176681354879692507330167260337973917735264813089855044136976549242159280177196023470372957259361239639061091477425373070749855118011170328578969765260676642177249213334706814797217819605178406650454420027076491907257253446995771755129303998155137180853069556286573751866356522043697005894848117130845322498910584799017640221892803593521417188745216992648640594071748171641748638029594832248913704109458538360124988124638341148180263689574137506609587857097237944121672568630896394888025996709439941786970280475572767795322436151699921501534256911648335211521381448034406619621342464177839401599552463087085213764478441274217492646783799781811047691710941647063348404675434225199612437576979317669340060945722218719547672333050016571597801886329165199617684395424355824294533926475941858347011392142244175308316666193354161753287086935875550380235722530028680650128888885724152189574553251095056629916194183983724701309062097850232558040224650310500360042487924766781066647569977276661465614123113923168230819228126943098067304665426086991491768046405238598999606586662025145727301167536335591132403756645359180168848360361415364689683997031982373238105198870909071656388597885936545634559756118896254187683490976461282869605085520050803906087906439508200659615047936657043683843729182106133089028907470691726952390605859904961301538980057752947357079907596636744836116885652197421742970959566309790431609384408224802011938331255625999224836857109318390494045188890673444673511357123989833041589488095231531829729625328425339235071483718165822928437985892553761312240703944273899539527467012313437087089552803520007499260155698960732372741984748475623281081095978545492374997875623989948257287506086443267268030160925698837240557633846683605568515503417848877634800936878284231393448301605268203701177063811851115158336462244032536244907745139907991046059823072431578614200192478240451396331555240191763217317242236457738577879024970011456024808889963713168261856838513699249912461350792357962534510887258392699190437492013663852590676155448481934481582698974241864691363927903851834721214535630085417560560653341814484758514172765009461919506480686325479800386275511249721033767332622152174901501628326365315100062433441774952870341627602169177248045822569964892081564875058126705111863558303252598731369855749863224796441069134264163709808557170654015730189196598391630244971681056245242076122162296168561967074754552390066570168488426843596080359614176483137075398967577675890862674115406278677094868115278897777999390401137730008261213803097046054790775849288754781763181977545327746912022981222511922993886718087974315823169072640775782085994615410548205719017105156980512045980573032697182450278745012506014319444263625744740593949889905345074948767481861895886438302172501569040650542229664722257192777072590350725054171387970833395640502263443635330528441940129637370207372805550473791850276498301890118641686399411477923551086355539186695987540247505698954143815464437853349810218466702854601474389490182597280198111687308953382359851407827153358958598575802209633251360157130826202504943439609559764490915773935152545260877883187841701202665066645182225282267076771079144596479196495027915220640524764217657272098964658936956020580081948205559564576968597989926540043128044569276097521540922083776503564822586328512530554553129886611914162608424795089886432066327513781566573612058394542991730384880084066060969290271048198095524522332618059315490952339638917364071426675678243319111436212244682470215365914201304008340807002286779645528607384890718694991040035184906350758470011888031096904597100996479414220670574514345916512127990468974074112281591546810935084346953662299855281856075313083559636038756993050303383452340502896651459000475455903616632001842012302993079845876675486506691191664397763836450634209483226261110855285657794266404570709865178218642917549139047719249965117663435077317987112124571632258526549051330225337673129091716703927092164957901763519257705121670107296266423228869702174069664901742934922582289474972675830612708513762267637809688496024515312590812642366345967084265204394255603155473392963186371767497962145485462809244815644651719745940079668500244939058770854840634742771830836980467846993934402606159434226525139344352370398559314687474302266449513299436804589991795981066099622503951134255170966579411946555168092156999362246548730291442928403900647007813942177444448404024119891152882774979186315138020074709378384500950986735505924394758747177540581055609643679986901979110146500476988405960786614819023349038889956041848642808546566362599900846859936972183140599712686977426546497817448379060341591652591697155403690604016604137562788446022729278473056640440203572301767375895439223794027953111910712225855466788464337395243731102354300032758990867359423655453003707414127930559522024883557657563028789673578207654893019061554388764250774162940237739830503392411855538004542620568652503207809236834483948304595976587738863663801510532096471324630952033727225469546462285564997630233316862568111967131612300781586045601837781551172550388113809247208248142734144735528896790886209160393817423095076155356734008325156644270468697078361882483485562986295260082716073292463079070034848692979924045811243715509138278728758280768000326970751366819761846237831875652744799140916319285923038866955265815479938585277294192594340813342835288103790133057241936764353777499911216211467769507285957356944048599604235920980184226745249674279765471500766636462453022936604876155749341463791936539832978087561796570740199118139221584070881126351867998021502779983565705774733164621214430491720292307955473964707794563400590220476059144950506644891339539346411296635401403230603386119437968384670527825808389659444919634004149938169194453713297547739546831080325754824948663284345867464098760728216680678271731537936829444406643511300514378050454698446490906892317169891437060881972544873109016601462666657927062231256822969516789382630384991614763599570176719698418316500608599600666413457395692132712211170535130155478654022954859668144242537530388259896956330618045671597513712516335137138263717867929171707885735973842891249782764575574333451051344056037865993615431980062956472514702316260706475483559684136641300764006681090361409344674863931526443446293202054981964529347263211651789995498265980654026290322391823949585249943400783161756985744588818971438192072261654290970809956227747888755649338465798754062219238342655312737504473562879027115409381288152122407652076550432753402533903913459712413958412223138513806011638222353247130128523521852857244378403115981189053758488755488943039824799347520121851086604984287446430685142528844685828790174099191705739021582585646435734312376037640693084452127489100054762200778416520376677081675334518622352059932291209818092910682324204617475968055086539797718499936227851104034938964853288518030328448197441334688701650057989889221513528124786928377072967938115333484141335759657620014335319586660622761438971326712359913090207025387626148327690230976559751679413805885418738771592554940784860581721912463931951533793934415429741236672328601249043430765674663300848091295373907055673800197559122266593621264448966351959868415879670762701648951340068094466698333240482361499038045326252230725328430733756202067918490489337327610245913739723746494939767055791368313421689891951125857644945415970375255002526893266203120507713969982929058376112163456986221423498492580693651934856134875619923328316320113266841578471052422421850363028443961739413889784941922017279133012703577856184871568243443266782966159640507012143455322874212325624027790839029719713077335988557274502228184462818615006285248701163814641271795330087252902205620059723367150484450618528195433513062070491237130651905247803597909810413675933639844305083037151011473587536909656074870009308248624616904094422791904039274939842238725303374602683525902600188753593382404505314059589200463721889524506454749732113077224815787260978160517784214124304214950812373599153956389429030685851593846855589029798852183224537231922197371966623880979392141661507340343799806686085137777605128032509217137573881982018843001386180287183295716894484004060282336243333812812559444782974065358202250516254232121055426211324497966721356480986504702099652542468922488315295281167704820439583117234525568314962571973869971010487735082031718994127770789845682332283623240379647465590786170044692366803992331565343035140380510220131968663946682653142685256907456650296731391945823818061294194369228239091630473213950163456630285477369805406076322819800496075914438983368092991882091246194016779807324014577419872807843820943924224523447478545684320224598066741576907992044106775700299962663088738465299540081563067954903337869375078399204504898825694250965970482901994349254006635401131756728714418158037730951241432589005515882470921182400788230240218481688622324690716526499534990589681553807636861466342371284536955666564148666308479693199250015021366951687446658275620136529970531819037185869942546556093718779466011872336456711411672422808276397456778411001522784534234559686463461840680744496803115138149616587546940788785123318931339841935616919573838863951057946042896932006471122575653809084930521535103245963696050118005906317984562378771346191254096129182579591977317611926438673230664745623385486297504272637533424845634316348443726363948983240103893198637283545051387734064630371482554664826272802026488452396253846644503583640206697896891634382826815250822680850993847053788966622524735596390175139491155144878002327962525888509389492367602919952823662001860955563247285330257649164017956336403260232538855759232689298842005963668831062485990859690381541877319846022184382494123639240515921562584772095875993564492189867585895948182360247392385805475678056789342309409384236680027849932373703174927963369412014184837795621733264875120447533776588380097354745948745453681138326744896974783655461659641591223911052815430279889666492697041149951518543385123379510029884988114302427983613407093854868939036178929840194292732686690387777586881205267035883269854919416848059226226657999969612935295089706055338519131783881827591569948954723886965821227265014918072414059166691777500952764981993344796949571329167597784298225171649082435930352093747872993913235922414446281986359646760970982584887486316246409177993252312547351428896067821087393011310231971582323994761399628734662682239386008065097142645508909736398884198680206524765639136040382220751223205224156791877023989480504391277619456675980134023938079520849782443254496800958204932027540594995110343344001213757602162938928567561268690482847037761302196525695871432387656679585585289409795968319171984411921585110258440755760020291726469420928191117845310055090501724332013152583704293322170019135306798046860341878401828487941979662755308519175423134436701340408485020042276312575595045753658581754317944599622382139259142040921492336661732919163352730630649647762135548710182411096514012674686874687909746981226381484658473699562515821901807497941338885496301758864642703619387535494656352448793043717237389054446772222864032579725642287771703796115601114612620746878175371156667520630837767660097174223014457299479074720929634770955712351221277015845811663566092124530340424644158068961406057335275733743227950402780994442275560190427690158771737502067773922160681676412047921686009102732715965883738751334986562080466958935974035254178557832451425135316946029013737939983100568850292391548063601627647197924193534035386831264304641410061356326838551142009386441901110476213025326466209953888470745522808603541541422334599061895745434667594834552587667784599680224898823353984980484440379818824541160458475062893959712115952545960813213881417443345654619311913998432958131272074011638692805593456349630704940011803290722684758072455441407173139055841051477048832219440835664223677751915377302951628051637823431853495851014876863368870027974683988820788336358022712790429845952681125458628191073709329442383708667521396877674958142205298919095262793291746510620140603906816964591601298343138240176357404323561977286301466644203088525284129959313122399073703946880707111151632020138675911282848787715271314242411187482111833419881115421936682386537240496754694896173379037424315300125761213680736497073161457849397715453203156778634076806573901381223171492678738170401770820539948305537425495343870601569407667425362484846288396272699726487150520350609588488960446925782620781525369584179720500579337974006296992296501438451332712096753880049275163341359506425648247010571253129970099910083152099399393731507849999440598307537886124408977534307325171296224019706910465717402564122486194209366532028565970833768481714375300406259243085293991963608192469401770681229895314358521601062138513402848787793064322148617284963438025108216278370031865222711899699474233140537433642316201315009482189313871987225986498696494178776888164443655974727110640642857537115643610007486501244611840746199791350736545483065235687508873451397522988295079274535342307486780075041852039139145824346293395412618359438718310553553923545480188123334355637669252466871304353827221100226799785605076348390117571161568390089123504880075096625001667556932312225739101020987945326772809689214606014409690978370988637954233664816924535255008651987537318870247566216406082793675377818182494580014089497041171938814243484641489554390836217050688247705206120650347838923276237788525149425784281379195865490298268877846235462479236219516055423420693912984099663722769292506252460482226464119641923746039704550443809242372592161335639747178315672496192328181169410236292138139879823533424523220743097813110119849742549621068755199013100435448007245588334400463025079631218997730243673521541359870500597346620865678743568909007840417891920499005703080129718650899967982337267622515308522896757947249553696398857280933424909723556758015290880299108434308211099824647579407743041689289928182788915724135172168531024985845839076184065452618379120287136272258450704446648212612132308630672446340701361628312922379800217958926476801203872542501041870712639033244674274585002787634556088034235076549037628127964708850894538402412399916879187083512461439690013782139853993976921227399398301054899446913432257892031211558292434831275149750706817082634574522561916845858522418037661436027895663596972553524701708314658715593706379999882324021610276577072560348698537149763172412488525305602368368259586286390130741164444314075463342763936684953683343715476448211495365715578679144723279233008716432652385360919011926027370947663179069975693637735236406544612896055208423529517259361220198456396935918014972541668999626915421954160632515374564559616110785763988689071983467380056464974874871499573308295881418714747302639556923584810684040623376257544962230598823321396895199271026124059077114572449483289010236571429450355406571809777683769895685340050323747740746655555243390296161420749987983334144073122574518936968515503580904315504457667128186037499040161379401001627921429083021413607651543432903460732800529542250624655148890916294947600852593913055998508489167328202176730577929299321777009293191736847582141751713449631547803494769074573255332524754279010447372690516206241180030403567660218380130869844605049913217354522898272501712092118997385160124995500942896535582961409942028491885499756801563565325588049516393707357881107582309511197022468081200038387182485997873927993625551043820471422832794354302721497416193238861538777469527810867276573136889621392184157488197700834276063241572119382538622876804260077036842623276766965056362224722806418534843064108497160587537662305762297495945601660972113132070814298504245512622334734787692362744521009694240716834411532741020787267094486163567786455516722743113812261762549374431925235532789481268804774213022596844057161836581993830953579894530128824428718226906461318141269863817282445418011362813997475852964658230617486564808457517038261752805621039707512256198597812482950795212903560613238030082348880659277288250193015792255885749481704613819919650187857928468161028326629783869353671330034327908119615771315076040783139563670739269814132283499261849639934136075452497275896505896756339724176257177063696097383598320314135625233414214531582653336900061258482923068372413238939556093801941552110822850747408798136765347282929068611599436004312064354448882555562430448796063321825611383175361156168883341568626148419469389102060674563401201322269321224308592729033213657497370768353275474124480386724700471672242994927166737596267015271622830330726934654742660460140497310061784001208365113407836252492749834786764668957889491426887983036937407268437980491082705779541115214427988749838201747161232083407519335603356358410476139004424147166184369303163080186891466155437008886744729897362443250120825301400262355460668985827022876551594772043406487433395840152264502405409472333267397280179048372595568388328572885877798339660799807135957509909018290124468533476027051573948538767307093413568778454848600049629354648505497159646143600123040504035530009496483663395116028408816834578923158647070279923565351465760634505138099011956563438177408699874228311265874607519452514131481028008411090262192678646497714027344267365150307272446360473617604435605778347968044654300812568579688944276584734476303526462868042918278169052601756461328268142771829699603021979283821075496427101441480977991821127375328410155366247524974838337983398144454626515622267972197831752398662227056803165100376762423580641651245433961450474434097286012371835064811535359745602387398568879410576714020276680831642995344048059578849653001245136153172862086706102094260478141344056580628096788825517907245464483005488005887438839006700423572215078664931322660204185498824292863327366860446494952325950521998248932843116771850500491442659576459229484127636695765252084469710769346893808247200205679522580447733138233127779988743480006148345996710243650702839343895301753462130599993020275262743455486177598232815257216427171775601461300886801717308583840939009136262672177779395628919201349265344096824730530290206958064385813093413666208224655025351686672923083399283472053876826551347179741113977172647587014478162117472054668056269608431574712861180650796322473014614207898554768970089150227105716470121927374432017136883650214196515125357439113464662641198937291915850781614782694427758328466853734132748494904047726478534597224865460833574863206261677488426544090389950987423126468902533516575328243552667442140055805634258284879997917832527243088661591223855357596934291519713159443866485836893675371304197001377890335659528568419130926733831783800207017169384188320224079211691091638619647826556107751917300226555284489589519901809278204131046367504080312191068405176485874140611469410495894130834862816414089048490354659908183652420749116691050347011237903285779537437369247672125094837563763591275340883689152597394106822836089305125176981460996904136456647916555780842598678178990723484805687035359278252235417346804600499428531667519497626503257121861373137096794711185241773784375739056564890503151078535165789803706121418495061718786671020409871950399102323348260599467243309212356697557600504199439031711730876577799355409114174460884156197835741744890962261945678932784707773672557218375714600341333007900078000708382604592858828001642482586983450874901603821018907880192041125130438105165765337057465689743017641233351159334423357582858047423862309907485406531003304713023397011215541769843869400119385520467345344334650214761579484131701113245138437241037846007755115366868328034595963093870390410521206040200792579800430965321389730620533241124888106250874200779452417904441601759415509831431057476070992190363470208994907408239941258750577458980970077198765720488995502101630855400662809243640137072828125432314559833889735374290357782360982000031755980762203261286747183151595257824048258538249097564768624286111228203939354256348428229192369077575809149248815290068217169001704242775574484807509108315533123035380659084718606278282900760266877337515398347553035744111901274070207304503648172523594026516827932385651253495664190605495217752010847324442668755778122674637191879095706446790226290745083344339585322975934051347420770703419069088660700633049441808044307303457184640836136488073886361309637642853999998790878369775088383884585985756183767823111171889554555518416474735700884417988113181905598671030846871239686893852528683603367453037726756483935612268624922169966069628151597964724217613293012872831442944761391238304123152544568171587588785427717190826953173168710564438153390250496097486070859594648253852654755655367139706019217189603002306999355138241910549127702422107578658419367935426117085941218467561056007231546022667092892565006531128936128036095131343995941647156611897972914472451359382655904899870908475475550077520825553248001100353124456759564771366100889989924014882544677743689374497131511193036941878326779796952697148594258073594967892701855124526636890743591249241595112948669666210762223876354790039319398000061564634378781062285352690994247083330401444874053202494044807150025688569444567132249616552074538447837703790391440567174141929590826028935913116284109927203995386672136346811514718364212042071860869319687670557962310688212768390488607146727458873123160396738114584027556695695348737898326544726734527163773756079995907614191603951799414862463923306101050682567841700077995062720309060876562665433269745018009552339192309437628689035675572041529409469673509729394027399389386018680645200925418446806950891967342848069627604409131640275269268496459481648885280027237068706940715879979838827210320743580153129505857225702827731704338789282204888726246855771306149207029644158541152435594059262057337816874444573063145830343123209435429207297541556152608192657115535462796040369419736450380570316710254449174705784055705095421132263434783697864612157257609720007967132326394522321541316172339440218071995806356701091194236803246954943039655625319917862042369971011190569225436236901384184825090131706848983573253999961242774844893888963801000557003531795340535471498170889551511877237292406673236798000854713536841039719614445421395476118945901599286541977461943983759125629083838579487589081087418820753025176220454981789144693185855983756542312853256172631967494577236733020275617891354666042799980919963457510526063239794213372933596183865860914563424563134729367417888158725624588056178673040232973332445932911619431687733754712969067032412831575961609099786699733478086676432299291732277458658418588890500072752093938536665419747992471231650519871914007177046375123518049166331329242074979723498249633463143052757209308778132622229685089870619116544716650609516608394983126885413725972210463162506990485309716636136896470286862475952352788330130901113038936013302499248296183460005590992505760197552308674017558735989267759874604857891845146052359932109558635294616140806850253970556417320992181595650508257287548328771036112453774472346305094501343118228962988206461788124952555361865870490964389767419062821242120487938721080569658118191065084077725505614965746594231598520805233791614298399571809093428232015166851578155128470335100206233280710047056435616997842385217509447519936792124687883027893527581284336599115300667292443121882616872300866546077373274437081297975622984093774059832460890643229092962978034452685169441256269970904308083928678226476633023009722237018383423062488627100030396738637773833936451358515235516931556185376436791766636688164077101831662317273753212241322249940801177263483756051237755945391479211152021588050834705534675463868710741668101784821668827138284343155824120774000987551903019509513099591502548505744705569820196991859993279376878414495878985865088094393882294415226742444423012097133326392730547101002572978748515870752149765827367429737440008078779353432380173542702412162044294047429339561168638206795055100501939769592986427393748254161807853523774587568383675457212253634368614337255746009354210850890505393003763562898423347316340318234866550085418779426295930966730295289421865837221748571876008414161068889144740997640122681065085685902788687470961481716876899010463868685096774516100671630281880301157587079598671597650751578979890838908005307944822455499410149635420251711019993131666750639890253589679973559569301257754296818137227783695235464215999531324305136023578607421039284287623406992419119132548840728771533253253991428328742699005515987580274541165726086600638165196435335793437692574027510989237521315379093106846726850168363420912153088379293345161345456040316438054053602572271952118386628969761238631361192333102814744951173982794382826002178355349801414609443106276537431994230373787198408371751007184414776075867873292416939884129338502030116468315814188769674304360808754658974461006541636382953048953814475785907322998982974927005575887898110292884391933046335974151277929815908821820128047212130940780205426067055156862100735508549736543164281067851959322912755667504231927346515094461060569288496930357311028818875939621293621837897131812172646499326287688850955775871900283513691705702018114007945186841743072273919376165813841055350109744119039513190941499582048439238446511704471800178202953407231114880628306272364706793149507486302402641030608915685561419400005431605531782211308667832995619914497469489694964239907092978416554282033283718901217616951184771202133632879913082041454138269726974776964971965969668277605706985245976965886202651944799644009371159487752010180635190408508821713044216072519260976626557693476283059844598016802159626830121841520872969924333193262479358322154385508795982203261212224386897813039607367818695880542959688614098052035638776094623477562663227971073558287913169216609315071572480165502454360521481376980693290780306660988210566185410097017678236298571586880887287501394689296959694437867934083534045016105141515793129760556632635517062038488645252946711871384946454854068868122650117405792616586580540965396951489407824069996049251674459531464277731703916544283442057311664828118888712918832863889088568129470664547981327166669598087539145773733373134201090545758360182079125324205437727658489095230182432745727038974818796777397776978513309364926974979450055168842981270287703456573519421179344461396098150453745788994560366249418281991737899818113006984827953278628394845574662216070071079140695450409306108155242410855072999531235445557427762077007265052323267635372438647826081535828118187489149405380234396173742831330938361741168901281701557804203535319875966958146437918352788636637509735466623413079852999177197174111313714229649077195318307793448463457185495312164638333079359373239236133207405593390313395193896807953687688150389855842493794740817516232091140659338160234001728796271565067310201771446808764382285213702068540278845749429877093643699494794277134471569732348033202244363992801833176137118031233077068346649210838674426441070827587004984702806845716748804149014625046139690086257491151275834655767548190368165476557484162232197516233880453783962891657698985849996393249142341446776043883043524726002725242601330656768526297001644432411765296316945893109357206146864275897485576124160280930969681944718698551736912831066430755469132753976855911911359326778714587570913827961635980393057942961156141520105387575085654766148091356716435868894665489386255822319542237661039915574208055093495820038556865813943558179009272119910972910887280716282520547789494875243558607244900408854563965423166160378971005389796572501106220181671949280524980318572987590170625985954200250880086052894424270528517898763443655584490434774360585775434483163163027337533480125803052156815509138346427528062207969409676202191593475202090415159488234312213536802053051827530102008463498530312227830217940704691980801093754856955852500268417860439864444619728786105201987259687542753321558162851833370458789429620067717699551691785708279274791105414102330048858831504321902197385594218853182566165903316495317392536466759131584512393563360165782253883576868751735862755777322796318590122320786818739359205640169681189784305760401423398189151206602256956449409355379274520849403517196031183401496047770476561612514039166101650984974316581704202377393772531044768536778903495671132775569511134195909955049464811062162014925588666435988703302641730553676663133201962973843180277633835176022037192302381961146466404116502905561130799185643780309136688864803259615147702360087219530620476176330409395677476416611293222442848319270848183399688503202996643615846617152304675600669669063250379992815361179781158985669468018022923944242665840418643300396630183378804920283488508871427515280369315194864293846144858864736222313833727304231782375433914143731569950643186526890131142175263525574694147424907287688698966696312225726436035555051329372207089133983537245758738873927765229933449680053327828754367423508876773940706928425707259950960767199427873728471653771666676767914507716725914884443009660977243913099890027482140381423739652906928252256233339057981138008414177251680304879413989944196238714884757462724491812618737477696741395990896226108614775618702868107352388829480302987927356022569094940693596117330215983920583140853284002178068202968601939195448360881372504839471494762775165904907473860251447575294441006408060303015474828469004930780195605402511463154562526896333841576904842623177952385453682316430283349660112711877032242476227791737469153421720708592668144594513242565967874593510486344143241870221957126096099820898990477691601378262345703497451746153780194772226420699313809656202572293963119034548011023207288239460241478635293673733302853614258403124815436024287361911991208169706644550494435356370772869492580116943122134691665659568287211468466112884074425827042958501573114834402998413533961213312594559742326914028703964428985887524771362342376188406720852997274439364558282419957528351340798007790343068806660272352972878097608706674857244174944634456791728524303844375999455667440100641386373196353104687837727540912055886039116546003145122651404093825288386262701141685909628264942404438777131715366699141144128278486340333998655003266510359779244771314968225676797451700532031072066062937490918812313947858457472310367155229880429478840622653501946425243952759210984667116402671958137220795650802627159263202521880378383942866291857472222182879557261813388678942246180742913382885777515090349022709993536472728144812659917831993397898635711936678214328161007398211887291554978090999922188311549658539016552164377237937976955299324404037489270427716730672854417345859711963949733579529567121661199807689313825382306420735620453088843517384837231765596245591312197845028845768971932184086072856500231155460474866761529439316633662256298889069847897268626742807067701126068489266245703363483543662461679850108925182245198051830022130429148929519040855522562530115550544020857007152563197092536054353264951760921814230276523491661636276610627018922856609627193669122379208557315335891127446681767544382343770870415487153989062224582987396789475343973117029906416814529244621043439533771269685721516960045409080819274725153029400021358032524377846038926383923614608897902436784369000118006615367879467599228752194197671921766886780670858588653746342323524668767530325264921685627429633292248126216002062504961784587605628518897823730635727436307130921415908377913613644532234792900168859097176289680586704347915210077356119000174635419888988373486413710294627281360429235035614218867755116110278177616604342216905796093781299561848610138333723209165643725201048398382685456954252154537076849554473817792478534271577049498183647063826132657930117458379269037087543852406348300156723721081243808631935778213988830249196570899218185635857681515794908386411777471223515161110188506439893001458440565259402901657526772109172484312028976722325768250928588809493430618912689960273659327198043524393495162411283743371038492543371236753750223175701697564797383313577714608440955709299415392014018757241058444151990845180053662817091137193733287564815920024056761315206103404801775199288885861147398314367466608240999727275599592843897105050245947877987477286034675814245698897908255836358759465595118139646283602988346710692970214018329455761574642410817588323762798841894390059571040884341978362438962550213794860633291389673173282088074799003134413375671982271144520524956818438950436341213330878585592856730750657755673133137976055975692976522319935552719615110358789822486829567388756370931465971626315558692597247979020752061596065923692844008280217734624797569501646499024091302606943602717919749634956376284809992907148376002539985829977421107146239530709739885083317065376732719142172829385741818035901892787015484118285080983427487264287590051281097145403506031738949982683220291900275748557137724878156904790552338888402484875087325896674660207815543343465851374129102784592576081784772952119162271120060480051578768543600133879440455489513802777674779809124138393874686993296725822380619775382320165668309877517298913585766959714644797029569824253854589269696571586193134159005184952858852758760845043726850117199528048574058915678949328227228825988631716960068679146392249787897322698199861655901661929451424008465203622835365872870967617310137996206869974163969524129018422720576153960022228892706551035009173264519711278942307068095958815414709954276212491496340103724568599513047024882213501777329629156862141820433476805166971908546600850662780217250392631122569288885602853817763902073032524222894444259071959494248942092594173215343090956963964693241393191185505438446154957726126501733776685126845833246206384518169907868757607718646148856875223733897781164109298208466090443067806790364398321773956396559119751754098345217235976630615161101556950002144271361336912479510048159354031937778980757919917845224235874221497678843306735256670869375207567322820221421417780111701142857900799793803990355011931122150910847917645622439274299308600762148205314108538759611595335890754523553741236383887425116514239905765956472615372085075585430626992450641261707730022881451387615651539866664167209007710070716728675786176210037851699630699931572366107575677978228341495801705594674412270741869771863137498089208605585609015737957878340535813983041275470504005430076395454683480980486977013140332727481059709465423664239622162484495025672596444755783105272115918385809582485048259799255362793526428845043520767625799257206614294255979551073854355955376710100292954600440731915830571374011664048810655249180351309270945919234015072861322355748350117914844290535741733734961237300265482151476617592910561942617238371030530526339429138112467341933378578932842875032713651378672442184581430903214132635400565033283440655313524199766709634996303623421494654966391509188623875576225484391624318346424150264239073269015842069628663703631231867515881285043196896381300043502062452646416669524998219331594017059298862360394920316306784233231489324507682180992075739562559440982813075169485036950071330054063240398035720287957320934848459441174100832230330649956775787260087352067528317496244524590751127452079218847460809360735828891235757318821363121967364745483666142388984770204836930986594070491277657836327583204870519600777034204672909111433562824432034990179823201491309299358113097574473298819806448647806602752916992482322198287406541529590755974751385855588116380301570817862155687566697580907349185162796622936899107864559209828496601028968992163232963353744278496094828875119500513663116778033843612626261485766668630341410914181860787475371190242965183980925317992624047552912794675016396845621056083727018703059410717456029266174725494125199558561041513743788247515321368327786858222571026713596302787093469814813371944845134248095092842798655204028939498561439813125248070534894241306153462793589361798067058365447853910205408789300484053562458778543308429350882715804081885015117568836873103822279314872814669118178740962896397771749572138608651352961682839831986790229752617398691107831365015725435241002160976314447916961399559807419304411060490903335135081764133404139294302709438874239564068414019909705402014251095591126455815774787365687213929676046447482831995081051300504663348614050324180096252268595604288083184716859326549174895428365641192704618198572130891493021386672013347665798439256162170159640339682294456277746597943728891564853640466084203530166266795968321569108367516319364094639837262097170320714744796927832136019940362457843108984726289213064261337056752619816500343037949967768464690006918525471480740444781577968510810456427215672667277958767952087408719862076666119628282985942927786002838127990877393455252188094751739073612660239978509270525700710269932456903873733256996690359350742042997165428045947853707191205127675243800193359350119417924395807782220115212247221589757003245049122925947193804450318382843268662827527527194659169805776358376489736728550370796897541729875799445605269180101093509690398262645862262595770226448919099384966573877207421352863725966287893597306409740708282898513165681600531240103831156708249532984332627609010483674741597379623911974778099715025337580522549693647783949439788966764821086861724642207789760606796163194483035987277164386416963607477981087143520194591969634612388251072292661920049576788828065795995618327738899842679260144364251090621106449931387075725696224478371485216061309323938543101848940599886164477461247565710551830614249807281846868716947596014388237786808340872495125001227678460883385457274290389841208382181671540587797665109734415713288035980618993790253665608874755714588232281114639699817071384758833330064834403639445350477392751442425305622832598072947086015839042301016227266275141556228644624817252088670479208630790386479653907158854305298206467880709429606785384878519737852999289544924516513885232033602965904180222730728570251668350571554877386399769726490903948977740694814110785424308016149194256748243348044235876696315117567726901101045424989622346135733049111227387387397268960604521647971448535778728672259387021239996253192643114791583193405758256779989050322824154220375669159614103325492742897988266929279200555894948191808072701301257500630969042618437661717495532465405671531253513155506343127018372518520472453179948928352505453148256804032082349812696903160150598938462030610507996195099711942703450762296938913675125207979888379639342518774216156267757350738531678797500567674112518614920330489879039118964208336027015502619705205484651213634883345174293605186058678285589682460949975909077026244572943438128825268741146407775255034392410043455038683859439409353742981756916547088197928341647986762871719445669857078270591387694255217898630716468823192343112982562573521446439743060766263135950242989337310677868423382213553704060641487057278987367942420795140380300133006451799452263369477080750707145492015209323584575594997561171941482761888736946022779887998462168227666862207390447694405356933512263778073587358911805797321834078797376950795550334316372792075776945333276703199502454192365403218159507254354144202413980087519735000352291323109382752861333012829393511701272106552158379496871621980253719451534049006530435101726908424925452492306103406527752035977844929673559497058799550283175742099229611607767438022702786800732370022939710171215764121272443493257729118424623254841952778467967401680012973342273162948780373088604435707827985840671100339063736783580097677327480452159225276755531647418153884744702255795063624646359504256904520150754579437253338527334038597802919451387329248536648320298793504140968455721658393980429378282587886290304700419155420642560758893300596971382582231459727185948637356173599283676704356900319004931436296137167125111731208691227251929047595517874666000670301364723508481427061661145744342865894614318819752143290684296546870425359638314171661346467457494866712986988909639113093860645496580586828547563722811275426433452075649650986310427136734904649936722217688656885746562409937828061440886446777689186847931932182739965594729124555811441666272173947993872139033086589569807690993231091607292729141439289836929789133063639274595398490253235115048479807119831587908879160222788933206726016133349583494488006523137196182681397712074966413206356968357097694768238749246891167183096755632591705907363414523203346717209975555245239379701817574429531237527972801492912547640743082221753789296847087846555092936383296552255399277825431060829422452906726780610236006902712352185601868350985621940649953241500755222555390556559722840125384130366808223917517960323418644993728941772372244904276994078703965108111816703279199319375718045667962980274402396178632260480153392992748186935290722799370594853486238974505297998991740639083886948273451693161395370120626753941027995583770233489673780315505783673451726736435019671439736875069800121682001513911532346647842208064031105190851736474256428924197478259161045147451192865006972359767971826708570732641040076322673169228331568400429289209920710543973138586360317597588660406790349121032899036609109973626867162246940267043472697301992720829452702922086223845172973587582013643133319293960304878893174642803879256764041201446250542995934813176253089349595474319939918956269565847615215974581633296674563203663098837296117201233806992070469019015530711056763142411462287293708568950204213855223109768274454178254343839328887712181510678370715493855290591576749619439698496779130668208410148793539909198979127492385511198398178075521018219884772895541589162700273968338396277069671428110376647595208848383667105178437839522550431275336070260319308982298095404966171379527338273745948791276324199294779626289256109300138460697766192299670399428156022261195275719767864931197492665067621916779777686531914143116219164024300155063670530823717081124943333913860976648368162654238641558884933984006720491353220056798907379041659296228593790558153580662372754964730509466749143898693547006781636709245159454660822262001796191670393600717374387349468508829533304726912218050636907264846824479690711700303155820781262850862510166353252011195307407885398854103252475119853873536527617445040930465985270497839874794529617847823266227742756925224490071492916053227481805512450188656615497683516061036234314828057831555484686060836060853988865417390936317309330191461556024656603565196897549188344837161845252692386042401367740143332065918282457764266672631936577377446128175690392163862743684667126637445667684949216730712577617466503536912314924072446532642782072869378421269865668632817791761791109137247769533354893536335693733723284869221057633574568658054084028424820944366408624522999080867296275220290957664613342394606211475731891545955541821560897742651146561638719768492048342719851003747545388068997125833173104562121341461231521596885208727813558344711033573522962367453730069769954661600426477709470928604644800297431478697782953166616001672636125714978928753718143924508140268398333272977982292336205025698520965629610408814802231470671229516442451120713244584450412178285148166877757689557339913365254023960084846959826759707973435695655470954029386381693368637562080041432887420461843896377349946721143313651084896599007001366481772468620759826887664968146621435728187223319573936790224305164685823398300181087890732057956430210558731541402164473124179135179881502121258754846073621166779025303107255205487633294416442555919779085826808634702105335481407767597908357873677245874811420566521000833489189453084639586632112059878200547635095532051593208407830606693656230564034930125234093964718026290625803211349564554255367864958331057130458778386453131358153332389403291834660382273445752845888769845064890608393702095619570174980172456957374107037526410989272699734599281205361290477341023511619126613973183915132339183167790490148417365324751740610357680655053300260512324183675753459335199985606299911675942816708050440001938628028459751850695552674848070855172027029621044368084392967282777773075936283684739380265791649787251560431860221778037135674252408088303368222938737586366366135093695594532568528973202808969619614097209436397434227405747253555611655571075193435027553260221765508066329518903390831178558431678966041935359165616846578638933757902605274430004964189438549045658260691508612121688193174884810321987785082974135004810742316218599803531253163404859504519458324057073084956791696930996211377055356937400717368577032062860768520418707570329012284463281158923493774461893762139492239103994271808344432150742766762722804586512770082381542790112128963844165560449029152833072867813503115918908783608360663805318679143298547509096894670247254499161190754162029315320399401634251082255741952432901611282899079531129792245256804655783858813719396527875532975365123244977591371668413670968616767638791096203844014234451028775603730993172590324083332796622543252170898203196277745817939156186372539410910351273690804464450246281382405628483010994818400719557972400481649001354974103875385112521098972985496146878023986561430958227336771499622471819509728295180062999250828921072072232985917749203411695100965614663039961958217270467754328087641570996946122377369772087600088864412496780655256981050214240052023449804747875342589518159413191077696755951177526050598707336920061939811373776630951718193138685196895138073169342119220903177474929483373876350632054878668153977190504298430090982972644632745555158118232173713953950808980173870828709168051632605188752189380224446588452217911366977241701255074055981542047783105992129768750768702211101339494288657851544112945844056753490476956134300456408338036890200372807763248957033392563482078090202987250937649259602591592244107902958287517145292037497850865435680766085785789320427896158185125606625158187950944404644661569101855573349086433968758429553853156699928598198061916533311351881060145167795387486838542371802314909651081170955129758230974027131094121666061023707423589886567632551776502141124022456854818253740184954217535599451055308997929956077069026458888257615797189127291474285576428270007684112139775482335517010488285519522050697221394066047817415825707415739622176326827873010753759793338685199518120688665536638423457922833364867774642503003838136559479810528355119630211410648823118263144976454597707419579600988300461637645033629811209792851395998834595674640438520481608350343600216870555964630244807414463201351907748117495936118032027015779793266014098302554416717464355298786340599892166315594892619750924566505551387534548146347757993974796433545088672814375524846099965674948379594401435727986835807488779333934551248658977190475495586459730072790380411088150388902147016997813617105327367090321610887020314595530961248874547659138376186814994537440064361845606174945409802340153664995862055573779604754836754946675234028411362394693785752776285049698517597458002757359046271746067722337625808712761849380970085414671483319099579962019087105542560940201189237170961463313909151872481907768754828180052182047754422934662895774447438421854719745187444022712329336093671800215176395022954261376420259581350966681270223609885683062746054638140545217560965877204660023918020447045188769622920866463182589861065149624884051249521369330541819219208658688372206500106614805268131005495298164992581755379224890678308609661985846024445745855850862273228381096712293828182289962672518696692542534344770234751851370925085672062173896493468969995158872883556387419180033119117031537009109398906152122344648620516464354128450708983638473405830885352438160376367612168754085896828802492022404681688406415966561597964614365447700110402584000903780419466407949514988470744814831924534963168438221387971009140221559483801997336150316869531830548016862916791846521679587923727019243328318457553934378688309514307608008925795301672426277437476699598756481351573417664811815939915946218876075499346031265062587329102245210650652262176374509001834464920045199280398896890508703786239361821170698192802621394254115587937939501403778923451560993547653471457189960517368512818010189663054953093257378871075048474467694205398427003003007228288163443174666267521473300649808641137082325939467829291183522564272563001429260231720568740283637923553715884393769597139093383709149583558745469616188848564203301248842929466569562722797188350104716357335413796174851725538346027534512510358698523796429188619553234391091710088085071381489473237075621001135882634969206031915243833055669683048268358917792736574772780593662470274351665454845674785447969221954160148840420133073931377800881840463214105175139054351280424251469956567453208457247904247041623012801355204306930683020210576752357343652040984811474796729932900888943133224464811929996541527221717014373750988808991126306439433418906294334797636290870334311739497231667270497867058617693875152502144925577838921145034498397395124041305269761795123537861964282484849553903923021536101125791457403938815732444510191529944808747304310245515435208765727363039836767878331234123347880293852006120202430812383910668737507349114370079135414624441583683932281163146602867237158929305706695098992686298557290309160354448957381756649525200347747541201873659165968806804722031773282555559817890417903319865030954964752564449965790732020975762108434554076116017343740400170708415244346514473657595743768748800615943004386969658925534779624005388982491010534343030034528202726902197427982535266941405289504997621728965907233779471642471926405162355356433166281280571444397606362583079268289030403167102198525439839381232110588781642433060589823166773246633659042232231195636439597633415505794640209055901860304431527239065733136619976761616715694350806519549207862331607806947424816349833475055008073380655095462209415528489387084955133981235013534513948641757590373866638915201982746147323296761598177929866161948100211326041141978892095671073276870825563170238893710567507532962698619944524048686826139520316302388289527913634270563902790902563348297002868498159959576937608927855783812150449938520342703530836133236569005634516194011862090026888740733981897870244807459954889041122337693417707340626969012947327161612634206883971615217598996770046301584993707526894467877397482645427678987817136438424476994542837657611485261406757317319825473537031314656480530964267493288995103751755837368611043899024407925649201757147143952117104651808610466935220516861981976894684976069846897812034858267870788908200908308446771756558365329596147752327697819618315622158272626330944604964035236438261573433930062171734915283874371066916666789436718574596594140727194767725581958958458489990221794216492985010428838915057664184232485935961046961433818199884318698351634902110916607288528430335929381934961737521201118546911603587649865443546105648118947605469822229448559583787547735573082850884026389113372760240596116636584913041046331818532097760180046459874395565367256425553634972607192964142079221861545109651236533959870213783316952485257286051850924177380750319336777124493113886692071512472443474762071326467668834688662704872921879403835377106572220581441478472219190356967967635272024349560894544189588217741683326065087894331210483974568715126241589011359005270591680474002583867160482894234624337527336024189724437117842555105162021414847411212304272760138649298529689312769421150737977095152198076343471284719536070579162637767618866332381036388254591349334591970805636574363618891203432833480831482788588417091306957071468048237470770781648333281387595726139337780636234848838573381660994518970663426535661696791879037770702103854497513271358298638559062929737784898606200151232355122371183725297021226181525262769809881058040125737802494542439805346342429254971018990341068864016727558902244613512091930510964819915410244825902031400639283127465087972850239329739045935291227724062882876041204259005386704904849750802410075085410220036864179108240068310915244138799765155491581364454497187161411319825398718949453006807670976543855789246512854017446220747063897070015165966294357887016191080376468548912687899170305542045377828702259290796967761859151364883906028545508383977545403062290527032012951610735933764624096935567559196456093391725926741709259807462845961130437334831414189698568372153088138102620590759480879644335380273644865271577086958298794629698459020641514002498060814786815483845636700548492045047239349162719094295885824050039277628372327653128558635748843936685036283069455623198814942174042807773815029800051324517442680509273948559506578791660520771717324715305063975324832739967324662431844602543182780815269531632861724406332198040243632622615851436400335977643304401454692431790708366549224686388971202908929780812335743451948281049336599054050744037911262568493315931309884391505280212631845218446329559351925758814016956581903987237259563631315646603320360033584785711251074378159401024176990542973178558859537812759131314629084522413591311669052920657150782748953550012256222071987990835572782832147579656150123660106038488252662950987023495944780010630410192444263352304026868840819355624740592562284936686359642585651392581408810023820732781419596146588946784479899135500766574000300049574271123579325430089847211489141897195310747844424977797140468914198684683180266820492859481817910255723186962725063005408849956309646869725027127806135141009773231071861176776083864492967829152677866698141598267680819975746044911254232954314427704065639279950692557446926407452048669915116563589970806477002165031938899410165774801033897046458342730073056147636606411258806615406863901922661983553453345833030167046909246221516935131208165099455178655331234485123686062060378649567631664612064413620802945789243343962095687632423794459892930301328527669026205603519341403240728668683929163810277875711928982400558790773461863022228341872882191078227191180301436822607995374194894018679477539277635111571953547673271570894949204495955650853216867793136101166837052779012640305630316853480692701691168430395700972580796828206356539324871238498369206213973295557581219298417736316633946442709593159090039345835224409897680422787524545059089246682057074253499387569789022572874716263859688448644586312783092023947268511221952074321795855304220209737779421853720147707903053148694600944359902926544244293852048697338991408936058986101521773876697814083530400097115943461248178272451777185990755202295040730830167065906586834750502596391986863496269077016035764233263548194485784620166604289211186947191676698714573483870385988134438196408599075467723852377410523643483843522543622627336572372791230801435981569175295547522883641084796729205565558160878388978848670853092727179654858436627427565864093494444672870279106771807503682225803666945648575317327874572990999653874535889790367441555545040446823687663667091460967278607635866710093324749231387924590343026800260473604906515713288822663006844558002135765050224937986759572094363239641725054431619943894014489138453445918958095955554664121720561367400313351714252708154481394023983528278105755757593867247450014535883058298498949817775851688268147796526388530448123158526393213555793053455606803948333837206787876988114038663790795714260971895925471855118951755242087179985052576453378999390739560943968551144045647164287554871045611487980311181597782520566210673137656687334153738058156744452566461174621355058757651200790732623102738289022673440279428603098901631519631714952330296614206517922536147328492646992453159800883984256293946153150127397889838195924756120967116427036194925591874056875959986471102496883080216713328691631059677684146817075590135774758545114398772925659549082184272887389841196636035669717195805888848780035777438084209171431395422560329754625310140799694273200136698318005067775386602271316246817402289102466706675067001361119887023540260408118631040431669520084992779993192130091687396449534095712953016009208105806814766997297852507281448825186032275410067005002019463805867202037488675596108090495636516207105049030094560052410110693932720053556762008319037143505753649205317344362901907631865227446786873548043943890792302246893740131018000897564168210193764871215148695549473308130113462847025603387875276104424194313396337492097330686800120818738729051204999690399656850586525837748414244497670696262622804882062007297134890916312378730367764031336763975842980749424952126187592265815707777005072849887088053598818570615334365031574339668254155664885884801192208972695331051200353061069548017605715061333335913264349624719119312581735822977531265024608464483002742549945005069938316718791844983578225001001083612660002728550604971756971485962763536004842797421874533944425732717702562658661378423603039424400630238050673733363792652954300042305459780182782258592595258669784445180809271869900303280061634174046401670769865291387144070020756413440655402112191403788041457075415902764066389223084318288896968767481291573224574723570423648241524376247409576985645837647419001416176558214751337572131083027695236767592445402144882074569374302698422572797513238439945958828932954263312516401792544008631069383397311456033695174023572036361903702697818584607529402058711202779095013452063289911595797620932836328898089431365706941879140625839062804833204062435440916879028911752526207582126322072130395960207295367623482520958018304945761284292128273137279467810719792948808123425641685312886616608481333509298400660078882731228880761511315471985686470917272620408517201608243046138820746175810788333550770643447611602007085424779991869673087348199872667526504825903860307502690035194670267794596601373267923610189407967245817073450103882653207703724208675797883494370678219890752689249888273510767877068478083502335986783753050781045828394930107658952452738695808814100793484506246533507905019598370841385049173222325953415279099338174502736332564860465961105614793348712552288183724151149594738978007731954545677688288220167282881667033507965420092419853040065833427268208111045193283284464451302902945451416534716423568347834387537694743145449512713528199837068623090565364911720632785564772980962912676260205176326968948993379266790596533336007328269973255632401921983960024863388546236868730740097587168560077990421022107592430414283566567798214680760855349206608651995580792905064973309666996282636809558613917641968563325049697617321431775556517025921780158763662189725891889421916005908803402039835686216976901136089395494878155394718144571757440357238986627501408008806600851387976696124219655243439164568607465828602629815842295098186415576028138381210257288963940026533845419067310011173640310167169197199912595348718026751180626671198432157139821913043830700283264878291956934374529712778918960732453309715995020902099533170719544096156551432307688172388425446597526284458222082843896499614847562615018966838823942354645513744851794633864488015859223314142868088143976814330609950714622259171856726608243781885937152272555700436502324758716752707372274088159786379865104823733562401705304478025587713184691445164607218301798823714128736801986999007553404883167880148510780198990716473285067636962056016184638468859216179530383523733536982806019870524788359719184768802726205978299164689756428026540404886600523492907752819903529807088609551004394501901523146650796626435749976672451244381431791059158258013898436704670656124479480620196371275433637119642537415748452487236692573366233371456016155812937739701804311823971491838670709268546254563251164452619828182227576814603864991837815708884334430860807758769101217255498112404358707850059956466199216775188466156709769160014237115289328078784745047249320355483554396008107179350131058530378417840140341958431916065903381282487791747770188309773018153485036080415023918839948058499738533193406267984799654357584308049583515320744794745538645055297437381278301377088471738277108000933325756153492902541663225656665199843375903495617417291911800311037203167543963787626534764391496118168676778727719244229998756836617289503492468731008725390467365285837614335846170140798548314019869160650747679865050055318469527462892991279770174968166549449276066671107623497811376883846529917046050699299002389075640442659003093832858979523835200664361529892066147556597170588492272461042563047261267961322805925843782292868755695245397601630575342086918261052771692638847047797817777866672494564218485398996882675593932119577230193697723249132499559771955635121027207402197358247144582762785285315537649804433639458077591547186808135258149020930685930423714806992359212933907173047178454699318836462216808215812280459437166212023537045153376850284664003156419966983413296107052934581497900045860971246818680337053711666207283328822982258429897750411491808910916760728168061561608878649742909926328606473151379681663627260201901851883412241469123855259654928148987238356199085229981008836225680396187170551399561336415896642271742034522466493654031360314083374588726169530185605918115275967904274074678791771733441518421450285753984953657136905383708012715784128507427005760539463869459311928661353910125359308366525941323059099579035984471517946341508802664949727187114578392994719617272305027447431798807257610803177670235293464596016066708837881699242507548585701966737956191483069932424303792288681743890451979015610344992064829342690397403160823710926701281064293978213817634406759789218301698187198752766926003162253833066611143971470767018028806149346242266484693656220294804353408093231763588299352641974980903990082618842635625012766265991404320063855840001779954014999173060109434641519589177113509262627735186364661962363491247941399794713905661919155378711385392564018496687978323598774850224597424502082780552119727708137314314544150131677612694315900617955450431067686666098152442016848005087779521939227959098592056142689378055700035669828476765171870011275289452441728615299411192593505500532235364190189711548650669625890216493644986547285809918115842820749969564793376119289681312935680678635516105135377408424529483224876039846035688845626086253716217561625491973432436048485264489540060737577094967006956782528800220826082403474691342787930282929888483769778917651858512663387130822182649777847924743556501810047816846303407733248259560369694421538863116951613761314123762184515208600460842765500414939217956871644664405029722503959495054986144654417348051454169075210896191176202489860199988387382876727933835134543121158918903779748649472604833187961584029307188001990120594884239812683259219280320365433578999737954803067863802823024848225358433153850047822801447576559758371813186118965767371253485231681031998130098162665892581131103250596600097841423069993454838489752542130053265135325274214323046082180469150267030411327164551006965792956964930280737323360404600870975190985997635521668974571536171016483859430976163007094757276081562603089892835404332846551961253523125180242573783846461515210475595248581500224143389859407271688237524305284115828636700302104341648398607681172538011413613861302582859208440089368596251795393838495640382781428298895979721228769707301302776453140648234793061083982119913076363609640690580143750140347308988329900268693818752371249012207854302197190208625564482430739462050488269666162725732918551395425563934840853128802855690266887877658900164203951238687093138301542581461467981791705442197579856648284296432275365386435562127117791766701958204550584078930534600486220359380445840669267643289372688650134485609039011146298013835075298724280373803081114060441312871411552600063421128369012386305890544243927730831068224531929043959798916295850058692814069249958100419695711340851621664609226500199546286885695571483756206722580098724492557522651196482986524052748563507737231268347910724083585764428369169344906065562780497609805805087869962804673457768089394966517981499075845878817958175803250655046605823164623263543057864357837954762583657973734561568462012587366559440289640533781505097020976181120879622521157541189473717812782406788345718048542001525841291521065245031936158004987853908190054107166517567123004598477750364349211897541376645531226252146288008571279743788318173834039979948344087985354673673799053141298541602389961457788128239773150870784723621792936259506836907433018080524345767425297519726939702792634330128554183856876249863915303256344838809092666168403148732717973360038093503868746473174302707691293878002412649174328133912575823154244706208569161249304791822693699031195485597409880429381175338100220983460397182843092658448223496871214961868670818026357960112198672605335578708894253869644101685213557099719159496876650652933349652800060203399377727456159680446969291617134472085643633483976258451675786975878999141411478306567837858463046073515122472597773538768370429549044530650889164032709021461837477274697192968597788141403486246104507800624703091116057029992510172244852158511608320117822577262333632293348562402668372468205465188657508769858766706674911078444061071634348911768920035297861502825520150043940674515762308199111636579690614182834506414788387342824592660105548841409733118015503622703570928216660159104468170580854201781030723095031308941483481600360596196070782236257284248636403607173380494213860314849114623477084122296822224923386450447400676960846121602568332341061465196755344976661966214233564992953597789156211653395638794448713516656159699570837967676680691862350655935675666017498825137765233829037952394658498251788480103189213729804006890834899655053441723319006686000137317720750494048667104725157844146511021011733253552730254811765637427231080958731700074516383761460091094839273675943739345573340390634446695620163274710300037494358084797115551657952700100479528346389506760597625041779125063432171276823586431210038790691291881871868549857503896864063524581429670063845426140357351958521698897441913262759743275043092918218605173430385359334887073211659574220772856230276846516111961145097257688615037966578457292403751843086234510013776770371139951849761545144501151430238184764625281615033580326876777705567119462342935320883258503733844437683039619017447035768278146274241490398108551036084949194832693882797414735611730785042025457432073912784244127427100538943227285074227056394981976295731161782884568675967731092066778662342783788307899615982295047997933643220097447953454288506798190021147260165309970000842716795446133783415504568616694162422891543857971712887080929202477421271153326392904240206351915660657220479409488782261155677156165842062228023406889317265415289040813365537424168483089114249691420929392776858480427736425025317930216271500454908651737687232122171218544827022755996711309790986002408152279753330933672962280597798693346161429177243146217074131039617877879780023264249297135426160842234265606587732688944688592803154018953540413258907565745303776745002063624105028743227903699976752236357879555048008588038399231543273595604087045291142931159484685209188656212683393366287793793639127187257047240363094830153342909362985297510114502875542238279228077911617724986906957878211040778222329198100883825074867822118485575903818013464214549274937506930666503040472541983326898705924725774343550819251547926312668563535761236312994408173464275455689056500630886718377809874017646851569565023386782368814635182048394105240008242635542979014718596028844386264700303649097388695979890540535298708610344594339231966227426364913635758018713150924849078552985421417420939928172308391270559725053602279846505199708072715561720157297164701888963515079410065616360481406911109088522290960592566313997630480798356315679191545649415770167793713063331490728292408739671634021997443030826625963205951812613619444462128330819286758840694634758969076580662625934602865434132016618372199160441086263537365280549410841340512127525202012400033325116854380320175447013250538602635761229225765179470274566692585971279274350804661573921171621231104855989577361634706109553768387753150220128311604821741309394980453142769368169385548292640841367228101511724280811978886374650762920336304237182651217341659889023876452117309414405232905776268844570097805158891618534829902839470365221753833812853863706372844549160581937918114879448946918669738132785033695313123372183747894124965764008618733357660144409682203834493088692322107317948417046329191947391311668166604782833811418854415442875242276255390649365828312085048413630567168593118566830718373729747660178079868898686450121942170224634363007590304518728889294446189896962198635808476098589810148673634066635112475324961480321155441567652535768180053652182318526208315251215904031562039360908897439177367554315487066295408616609608029556055652541652571794881919635609205992238955414509939028114530339788841848827366081775081446880481507198076820915850455226957723044812833642580207572389874106036374842886473174118663602131748788967955623103833185167906750090160971779539280520191242072017281873918295104173555298357495668226889018451911084411355876471033755348905539867417332032521215940677854783992783744343046355540503450941798920255024068123428872794830184032058609519955506216369000110610208578111576673726803962743803704694031788929020480047489636634290258308535924619748316606883446374804286633163600559923421422879508293077664772074897006836630561199811936594887053814391840622358063417142333824019790905584591179128706232273212309028971651949023696102584620326396501845750590997972086877000516162289349375794850855344545288739944016265853173467943962254990670812909765215104549610121579028190266968980404380906276295878785678651799142127686976117264671163683039189346552131593083868018182265656165299602838556013746205582433100611739898816788167785255538615329344306287458280999803801778740617500177522667100756053213269977351151334763548300813372030803903807515678336295299420205625630435259616930240561699079663141891236332019372547979402636789020704898828948343088215955319769515845320143515438013054852669123953983480096003742187202581460396340350406581140494564711438884212978483429437501969115659132419741151613752541926995994047880771395951928671784492257086832282363730614719846762928411179531546447716742892526321494269492459289793355584629488912357163778609065379765713925594676034692945541681916320504593183639783532558027532609868783481654454416503765946848057901014357912690380422959594272583970620492852536005398604894695713541139344592669198495000012800770876246404255140203482013822774520497153290642170430377578087313315799516066252543281868683375018785737543663858705828140068276675810538330380680741149804454088394660769030986895316440066427354720834189296147419786718754854011015852173756092222129817113101805406333681759730710258403501570207829093039017684436311878578077103133502466238589238089226478161987992305191890226751491284063830944086569427389911331860902245972498792685277175298276456025666036694365495114812314371639821900048207904810358104702960538058629417443773923266445087612790066172871593300781900701997970528738138787167216894842039077924393451765639652960472557874713269307652606175992534646841061812879396338627842878527311488434842012542565677512360541031796048170646832988443798181122828874665432578525191033334791276174228818333386259801634202350428321725671332620297525893065267381663535273155864707684102992584471327128439190947623698534826921957594836917732153946418849968372359863428884365601177567779636649496991678513035898572623660255734041850797718073264691163680484106026583738959692339319057289448655933466913732211653183561852450734439074744443079475705606181284866144451609047167894547101812835376187204802776233704526434724503462202767494755716039800147917755153923550783986308876637790650840027324078050462746497098233632567640399369367176781604908669805413254246706769101421703638076994329983838289041431606588799856961671936887588523164022927848260500819674061921938757959531502910147995671202292391217843596075196291305757241939699432727809693722872476197139805519086811074977137386389960889946376570383803304609959140400087815450195313041389786552065630313331454878704656846517656109821602513451961744874312750184003695476151537818287986274079367966132933523641440504735090400857386937227247801872062821649310241951662519631335147652582958082153517390269084232178735526185190107759679544420645920324592324830046732963558744879353152187739424135078280796756226298028040478836710731306599194511784038678679196372949833396492426667869993950441852130931027016570227544864851045669515286784610700753699934026903365637904255152211450427623695796323094802764054066773053555716404924456426558241265315213888194863250155749804851704834273872207509724618068644350318758353101263110424308236438227280634367126526282862891021763374861711343451899058927721186576705367353338785249759363732355747973700878538729501416564146061584165404315774048898437602687097573046698315173136952015983524495863432279151095191006601198901369347755595843325953371155934157518909934454801420688259547954733566600607765173060071173999329045428408465655683221113660850848814774611634399864780151795727130511984455186346675697273819554227175606373034902657265610671000419114255176575792149547056775166520586471257797567432987104898602372178432047111138224336572616268715142078880747436754635881942796193424495475889203050720675145634030349653895713373027269841920029905537669474828833086340725110863622209321817464630698239903123057608698727581247123844600836770319163109034180657576855583179538255573826427913985203044448957206460975371747195448543325459769271023673867733230626446667698795271073796967709306132416771836245411663732492999497735854090796310429208410718611055254217142271697412233992472125763789518902026405913128314834114076770758754053663767473341257443272962222315511762404308444037699168822541990914739661743910227497836811969035559000925903070147286261216154264326386604225706710075920065986513200169845707999521652123608581472783212038374962921045942654704606712830931633877467211758690137075542463219507137922681584925930337639455510139682841775820689085634482475012696980742102358345356141419832012113238913091520922515693870192388142983255231995329605416570944458860655029527025958546434593851158596528892505453962936470045175319802658023765953769769793366453840047131355734976968091896087601795417280713940640196036100513644380933706357033323814227943603899823035568672163339456469281076378761951144067119207462920772064781952963559514152712535746481805652195370049223681647686692660368490654555994625469923439138114394592271899568670917978811994707679138258497399396475002265049039613030478286563155114646687176109687790642154304638441180398886441375252212154102222128468479275005107041478385442932448713859494710969698981712402401243321426778849562243720100894594694450396372991434404110601248442860054924687970276183195013647382658342160655724659270198798086148870255866238050843791692768388305544991587594387283961389087380782496122985974963841057025267897552677144048961651546042449204355601713349362374765461924641376996055913605513013980476525961435837469151923015384546327294060902637370043740454244754336609200137175990431338047182842247478446652333554167871862128124607270381665074425554458679294690865932747022292972131720762030798861646582066963432216559211838452697732566870376861535325158228982363632747123067490755280036828077353247961995647285076880600310108047372352168920890343246805889930930265067539096255538080206969582935659238804846105182459170259681053463014241238094723114165114234678599762418985541974457068213232590660631249367287124481648533155675043911933046874882619962509797245150775044666943183444698307846911834928002479172791805282238381771496224792756825955410476401248892073869298807909879102801848626320535361710247584432749051729217860572587302829599907581360242495078381111186420709492989239302535098946669844373061385044101244514766279543566651753956036389471930530858883102421029464480572494624661034777296744618785090507499319232258525586196416275938070325921934560322131372610358067048847837521632157990559822682209281564900611001769064534974749097429950435942344101426160800955823870904197100390941916264058317713080244450821998137072125716234523890113282101681592843540834343301583963211816680309415424272792545273853654443706329714983092954101569617438566607906413828366913583513437258574899375916338031515401036170784250119214576234529421801228874411522382938361633771640980520713474066278777715427848926208513085659152566756472447266716973388968581445864273981545326778717505931673468271956977523702181769312607527358294097608280981248899701812614655121232100440796933967612473521770200635340070864452787744466693585667188667026595665894661385057816803176549558113742643558569887479447816899423600274394866960017663419102222981501110672547622018526969633874754456640153203491769167874598526998585603177482739050375707713431741888653076231008299708683302931880629046810881596877508086050557621702172154323857105417669410502533686901244985265194570522382784868950895142150656237385159580873221491014980970968503753463748529245797957302653054150310258180933291919889172129291948664080989047510500003149545840710701906797714977619595958343569090509948322881344001704040961006424486598023057945996435517322651557505446084258500270628315903255088939327978069115373815034848728274327312389916023201893820214051241094809878422625480123903454174625394281907499373944724377371784808577692777773179683388082283709350312927902978907042992560843193644162044528908217826147875419014867728079223106151136788552675117707341656078580532630603932656833963425750916486063896526621072891830860231588363822297607088157997081515935978470709064313909557027822164586032808766297208827458975945493227649700591727964758819821488099609889563072134205924877874432006477671492191991996201191213144071807138666456148470087318474512857613718668783079342592413369688467293901743415084635825590125487520626045515430351347536933021384813923616141628609119717554137683536503034935354817465307687727465896942928458002687901520293776645353220802846585104187577484862125996273357097183798777869522550190453126197328557236506766346700333663122189468529231257486916737160562500122666496939238343802802105516870734228905790640964479337668478350150140442569313270692460556193215391417174995821111428927841043354231648011634267043265617536278797539688971250689680235360997339262034945678913672057017214180647128963510301135516630114740525936869732972262215531991178959187978440182763563820884678273620353613198397175688489370376191077658042939645038247178208620307911815069533642827636372895369263675319207304717787604385352458361961947532461303464283611921577900235007726736534290194761573547540332807745488320955604035137027083795828884687597510771878164723762765865016820298032177873597460686379588852248862148514719527252208397391361032993310161275127932305881655050315728049697837275332805131731706112595213016254239716991003709871902446543091598155619027572825167071248255408453311915161080993768481122634812932593420122674965651082215501395620252747929962371031114866392691301017308972006604724744977834138628838460522480040656384583706401089689924017270186454330249088884737318959910508092875456582070878668318410422227710786226128111684159239608102326522207653744530520064911677209389854395179636580091851594631055472667909657094540261478874381351695357214639999021586003469919035573704217747687621604216088880740944081987652977131996822593366342331796792053716597953855101415524256297861764211301351305010028677517163864972965929062105438915035061376158359985537863891564865709266838495935950250771807081323610613815806315611460375401443857674992614631134273055077254450699652120913118625452472795095990624983361428185665717133555334029411451444227880375477979974499224068406213773121195545943691175651828030086547129931553050490127609050261726079240842552266852068019799771082661635262046718180414799357988164945033418056815986800473123749009361160618020972075944363957332111636116475675266259588599542957372848036568445235308019704445985928204818525664611204590804778679045221376602425040761759016090305354061584272126179684624047694846642742139709786584221125226711304577827051006329814632786514667121584622942413899625720810006975594516789943169652500033593856996368584357736921539916708539333553383204233201115794017169112918117997338282688757223268781214437987445434475531308987345867272531038649483269325567483099985372483527023061228144525704451364798809460284293121894024894655342980298363499213441021585805478874785538664193447988804621212099494816635302353816370107752882413387395867979059534605488762328750233447655979999420754127793040118285365116139252887647576817713438595479084626856903579468562820402391000947704380882897699921077497591051264885734459893163236485073088303215408771948104554003101374809423120917838086963734196768715085906727546783737624101430252316341633824577169193751410000293089446438072526775649404668372451295722225707313110618567293283894160557715858411321593170226220967261547735663677841869933589456886035387074564234765354873646961126747614786800118851570032145899511938157531613954168656063650942554617995580554038172800606905436762377657747234818137386845209011275793431494008173658428430220651849142081964424455712964316124297607552891646336935241920142552994388290328457989693797876679080106739704585136744182500697171609147069492502696221381310208536259765872808172668532247001470571407828875057826283358068482637449208341021937498697287030390648938540034821594685358020730457828190101127275974567017719534834684374214418466950725740192105368550338619461505547248488703965353489493409607555825400607278219909008677216715226996125236659728080118997471088247764438203644851447875570354784939188044211815555214824845705603716035078036596692016817885458784032037997029857657904468976797956455286459988521209105894249300313033367029672456363881273403791695565011557478103448444124314667323019125965224356433790982792301362151973169175798282483887026801272062522470200709021048200754952475300774683735788668473875609607977397203288384498503743351095411291938691748245897747313942994664001997034701205077252641516184295812757951181091452922498805591053737366587871740004619871307610359788510465942991545801575890275708834505064811475619204667490308223664519683285039970915492911456863726333310899318426243569016629971348233107063484898092096619174092307002864279746347787094949374199340200499742010823396334444694711686676656231897087464740433099337719648053016351623304887624484921305603893214400573683344429505580479851317956455962407460428156386767060542190327469980139777681600948957092400256880274197599165788527093292322406563916342535458832796075970357954536755918639579719251284333236088519526881123986455621557359146803422504494297788427718192297661458981864335621613758594629806390433780344770203080679262868400964963421988570884857259300500880873429804278462781561103420497494044238026400435077372379236974009919181661495971792692590300725297131442119690276718716964147504872507362282555983706789895912005664250863879000044891382644546226812339875971465769432565460751036668409043710929487425724225736396899471983986206169316786275187566018178205206263847403923903456459748435471637677323290897437072167672780676857173377506513642892798875459259854580088712574144362432867874156099010416335358850067751541459431728584111133409043351665266189135710433690113754677292048008485515700967158016859172257073991224919797626550637635653797595199106578522166085022507806494542655762873532915280249977248282739562958423123369942271058280397220050498584728463988323102189054872473931817135488752745277228342140446420384250585051926588532772392098897229941463252242990965000318711714443118896216994753867074545807436133988259215326204000875487790758180280565221925660167813296142185194771978976596768460755476010603930848334176822439599246498331819013405130228358598934823536739526932706448336822171285261987606770974438098557901302043656587936064518894651369276239214244417422642159254368981558551455344732145744145098875981747599854769262521565438520955898147336786690056164488880967427811731811245315210666209546667920779248534945605003271378651040627022394868737740113689780875732500330252814684413316564029229586519867910093064481779696644875437813429819124656962082342474725049373345507358652163477673821936560910990299683244289849157292561136396929209121584704488274458764618827607170994411430416067598870616798589927973034706646005882652319300358738895975485946593180710654829398877291708965412760971134226225491833091048284377759077962317937809999948096692117787026303974656840906928372022388937509911517654882588205778919858241753327755003788273874060166631609986511704339621858029098264283625302384169423518188670310349856380779165778429581026822932950625297274538299217528444680473802097352003966523462683259533836791186220727738687379033607531388538188815052741003686845665581690255121482195902995748064489193838809988831171252420067677318144108376776378495229964706331421303518597447059553177032973521521149830493455397049394394510272382394527297179548796130447944356716798884258763306892295977996027721100509497144562309689851217018056654025278604414012752603054284183717847973141518637314155214051479513770005275274060900098782774491548423437973144359657017292620791037028761082413774378350142472376376316594920350107704126808150929936399887083519601426512077225219231026005844703644904322882629681673666209049403947745250678507093727014759127792707329497513148640365299097874373660498743641669167586000306550887410507332471958536038188317998064020672888985347333755811686884513540071296210213238240227096485956154066033208967021410506334207758077556255479092242224206964718725910277660219556178306235473428498843378950459389196176134975853524738449971993816720729264539276282156996265686283514663036942347611643106997500349218876619815912028656585831903343188437528083999722282404101266172577906844484303162916683199378026646396381628160302978537318240611103964070850348903364760117448625874922053849619797298680882983700257687075061259683671181088056989462816609058873364652288427396428836539998326572490453767784336070403342687279335496376060756697564190393636368413877231054975035360252774709289181196635028848027870376666398183800532566068360337832041930939253833562150176978684748844686264995274581090476688832407325083926538753285621378910034158132312743614314853425656484938276170413546740304927176836836009791253441660780349436150173008438897632536197596830219677880544378142584756775660655263055123621402267954660290238404760698492151237464483034710524560448910501423302828224709482911907730477444140264603340131523807687267722562902963537352508911012598986912651334863664470062543658346606002693661361696090772602824849641421050309484703612251134341062601365147053534085950601449210013962948172993406268379446449702966918646950783305564913367828774163530289706378124566444331901919982743801846036676497852606610220496519620459490178389457822478293154439869223121039759712402317021293388922477311719607690370567886171105926949781298165995708450038549790159505838446435283790963418828304233458510678393872235363606071285662164832492413745426174718214162278286250601157710269156199607995223993908892327071168365747295937924031241766874106561899421185931778072649226345425616162834497411057657040550416237250141744706615825812409969131845787698602965620235112539852119744262234903123032334360539744535606079729468238047068365152449446493344345889117441222188873644312973158184319436208022256585717084850592405944058442705166611493982567677919964112617065391701755667503720279508825299649406378835162426699364676506426397220268770158941022894233106627681098028158991352181732469358218636050930180557273970513763122002120491614134184889423866166575551738229944681592941622554659667362284630868951840305553367466227786551699172959832718836367015430278659038011227502355793037050088522598211547469631817550556092744002073118057098680357660160952918292673602897273029136674099041096118761269865334916844347694558686760517592309100272800189007880881701838351541707631657084976246668681779365240920063024538768900516013242172191296829891179985580490439211836229328951693420594123151083932655686828566317490364360271968009975961226259606615140730513968855305188416855220300549557546272887662272219949145082080791938722613810413181723234582134692799492997410333120170193688912912755322016342176429727733846021731657612285413593928020555288323385047557408824793411713420235914376927231076869913460044776916579645104718613570642863421209384692716713498716315669254844096454177103088162952118170806310980170601351985989994411481372299711056453887334138387761567940219792543124201983010106580652230793437756493495115988834037292264634993188990014319363780332292669627838975720605971394752545788007461468788755212591495804287163540494363722534940114877476791410751807652568207823196860387739091027494539595198850779175347120363632294964856434427666942793770502207658862572501321797503240052020158684194829233487120884062743368728581955409417103677101600077636772733191276901446369785966516432967985865070955233841190735675743751302221681030889692998343732034704054617835175331815646970442894534737777769354439830249551158323032103902400085994341322301291111224100181857735141786993183634481190449718045033962483178314888665271784771510468874899769974870048672953285601671062281723429502425318288883529148128279088374247487513802230063113044429299606200976046203078109037145476572821244994342553104461328156584211455853587564902646014468350281492381673696525846923151758046881046009669610738643796580202513998072681612130633772808912588424338585128061022894340253901326198254073188578193251141833556545808716977533272683310371640586107201989373567306077951978612278097838391930936876575609658549087510148347593550979886674122385110830910681498068451456609784008501870102252550247131611139481341955291204537407083796746954415465942828365872867768817018741281173320492935792194888005512857383100642152638823686276709092625165748290259313880517503756925767547573565497139351120583512849830005020356572224295965650797588741890559065556530699645860925630214058272190359234170616222175955683021367815636708305193895949859791186854590766512740566302561509762617360616807445222740805250960909848566036872584732290690597789463282812210325568073303643237747158246807029437909325991598444971972092577022262879451119483370504194218168166404105664994586396753572070034107422037671398664340987180305959018339086662583710202779726400595088349984967838976715654985826379881335596205763292448429403494100867634724302668090705324302458887917891028030315454689915259904073018335289470604903128865888274821925021309134786145842173056140872817906340895656109432896333281241553686147566378921025415378075948623202028341003330352795613237183248332057749112915284111867679838641668405589882476179102607560787979706264958648447253033178381313606073426122926454273230944382179885624651837256006070455256724768068859808064026577073609190226364622353322109420723354569391174746058597919962174788188223736470545159672563730571961303920832722045784536995349121444009878875834733167017042963070558776886052411995607004662726081377434403081220336978821531646814493945720011086180862424204608246885100797791096435655159186120735342187484459544284088222696276444619916145795253476739134698086707711754391545870309542265579686023741161805486672223146671631613554096550033591287239846743327941241145264323014314179336641373398647186086805492327938768969091079947192635713276049707779128410456929038107610694266701525193684351202699498136867431395320435286739238332825741907437813967848163201841910985860638831575763516364565097262487193243738332026329014295637464993008429090373667091639375967290363064624215479685115747629532336929470637096011518488825644639786931680786696069274899732735658302345810582398769707019590552303907394825789353361822221955543312108750868194297408367623123572590202568220604274119987704891524990333406288404602419236409512646691615244259788281420630896620713449141970011334169527394062785339635514614279947181882559702543507722837218364837422963714830454336489451490489224912578480938929057837343083580703439222623643175657273925754849859142243853379842450547916232201669103851014587139741773226457127911929419570748400426476846738803573496280976677410467676909261307189717965935989315911858072687560890177269458673494607107386387184888271653924896535235757125190054711717391060429698518043676299757096502852526264600416498320353972850599775028310782610651287189185395982398671116930658903208172399540542526142046070284650794320009422748808397600885913611625523143053409754101429328625714100537964902412891134923098709220742730316512194491437993333508752175767831954761958178481020404727865995904166475819705579993998254251143920882361107783654621380285216636414702299373964952722722145767760980199955512920109428322249510694083419642890260709713274288371245017824834800648236410712455018351964198725267055692345476956604567012827222410169235148567312617771885522042687474479036064396818292537834975023602515970959268048190739973765220602677750838008903997143073328839744567005749108480230593178977044326962787821347499602304492758234063496132113508198254937038769009876473503534239501416163244058087187135569180099133687727988501703996261697786933996898378007086938880334275636650853661109975611709904430178295853562546635930405695183157898682266523815960708959792703589879582990959341164282605394478347222875554804119085951880410338802471438222872514917474941268703763097060552836429457156657935064371699904362840723467852483320037203744119415584464606433899924280065136451015150986882480210929245943425710100124611033174896682729607106090286779276534682060145140888840786814064874955985427942332217707367225421076704355883563070920746484881069262416874741806722112513963648607694710780132333779574315825059713590712695348607280717333950871566973670830613399181257651633626784676250809984785154256045896080305118257961738958853776630364199770809713238948580890921063854975194947507736266895708377734064495332443305308043403924612883710585866970575689989220541218626622398934701690794530885221168608329945987385955357375742892013445043431482915277642660890819995421157958161363258638512703045900492001425230232219366144125009987719504405397961587157334589214523459259865284367655836775621202327741751738485143156931678393820267234210556381075571621762264062846659001346335416108351904642503189327257025218102488107677366488523234866562692527918277983514096357763604044736314997337876840230047390659302924988622365766167976423334734532234233443858018912859354836642999354741635838236447501560415132986101262112977981133506063433111844706556460324317237768044860056374552515425407867159896765343894347379396270926925924257142585540029894924967469029401855422061474285844083513476888537848458663300183366605277612725875099919402309346173467334547505309471074860645246441761174584539935736879541812422432411939665559686124725909868310504627898278686003285334091076558577097630193826021865348803971560867843517348454845329651851508092146067138602767628461059973388479146143878934869027496155528093540931491771143025738056061014658036693811678169079627739574001283859815829425502013344665670965681837159234984411671226470839543518201827748715599834854285831696186284048472109920583691286778052098334226132966757412340629926818191495965081838205282675657835644406694994874128152133064190904875036282795174243080699875562397915573823653072428657286549880546011700779682742941795815907296149805739104253126333027332141237394275410686800430071366000710622030000422670134296484950985833219541265707177458978182079954915444178352964142344428192939240706426597192101433652294529256024046238167285249537935175535294788126553747538004214974012369982408274896958903341727992731204563617049455028339647077256798084113391597395088630246070985941304207720821254457192952063190454223101363235921582209869365992841405840906332271973246146801664902263515940284181220074342554768566035368024223963873181300018268252930336873730384957061310929727335841025311843152863321647655771236182472578762804716605486662645718116879022716492621339901868345055815564642365591734377389053622793475357037361762126052200362761660390710080984306200339033860030010632808932905049974287843827737380624304737602088420534118028708970371756023777437999884520537510619951351599043627313849653542847460514605773614251726780929028066525107983074091878209557175712850174621520641381033900877243237544692094523801545662683433406648514323748253518203568610761598377187389363700710329849061629421345976573361426287464670121899686888499522119785259802349228769372843817319361843788954372375979285808126061844688840596486167413581275446188600842837507909886452933429625843667099958190838114515984483182461133705005492720925583095729745941000379725533189439872103613154594804473696707846348600662349513701179976953695214685066967329029964045886892948047189049617594607317530652705594227620700481730530656482337162407760866466094011145757058242446350999353873004348051021074014159334204098390835749645617750253871873771800870878215592110312772321779104790270960419505998277989181931371762911658942787537880414116681339040030346138078901590431507121011144757168190878561580310438266986887619975524507236275491969885316041533836742661919350742743737462630880659745288440053079025413878266036906733415732134111724383714720137869738776451812175550498892269749089390516450726901841728130483791458355199045476494814595076045830701250203801667578225002218619376096101197437419267446814880893019793268383113510296579350652509933744242151721618483201201397707378564299005242483315178396069302263712390197289672533163369186631794953791304771278751375970574672386529233830677696815127167150593834445412503607254336421294413426442665154716759538410890368154353045789808546421263021676597026563569669573168216024284901719478848036364093021091252741639256097491064553046961602393772017772423717422472209565353156286018469503866481719246998428612789536775517481352066416381039343924948575823670871705430545040398185608221393170870008586683257171416046642557556451943555252699493715778800186601324415547425545249934049006733472540860473187958310228457130450738756169785815616164564887274234838950206053011465282371837545349839121893986170330431089394022831370417352485131544317212361607153208497164406852759162863038836937797690514554333178206688786348706362857518336631606228456318445029083437438661035902279892100371986910328768663675783411026405386929129402201996655248983395708530393915299861344425550054558056674750835091607439184790202252142528946489108165829289667940696038671091167157537436868049600288225873798887089530368415793797678090665017301772078373220983615211229238793151661213782948498900421446162640747554614216530943805364016533672682336014474851803701266360152795475941711555420990804877565616418921247351105333749555437133804364557597499685177308444055051438241139072630154326675183284401732380885362879550255842995670938060332848636644619305594844111369824754098454622802267348416561622373579860732631864658464988056236811995524449897588178436582616645269397732800746157949370291761651837721363266809414095656089481084971191900822517599503133704711144701476401883560874094670944898909250255296977960011360158525045697162863954796246155840769582862290681055294912051568232174083812833947905575478730740963591415856985129951952781087974312423672641369354736312018023182308532745085755943670108941138720861110790659111930278832641408025156598261383859096785674358768686653153448327187894517273029677642303977431361471964193900055556684036625097555154792667231992545639737639947071439325062506207833257583325811571718543691662852007079667283536498238726866546117184041013852428218121708151825112287684538134765845187682192477666373482855827540817242457169506591157961205251945237246329371732851456319969350608639345868963834596958728470301848398842722250574820851899880046000385324179752557161904598878334208525208457362271154633527919620467283555512841456244613120210737294675217658952510050658113994276935242041351669356337684665513684503463383149797640614257595023920056765803746262970089267920529570207800660777095335443985651768984338373791835287349851537979909411311983884959012827864495367362534537570952968952533964281176585488353923501611596146403256840373782162120348987245610452468546894860127418936385681468871652813449604038827918482374013148180272334177436502351511940328235558377982584640478685096516003313463954997377677459526685189750694653042808601105689973251243520925877016727058486168394968731089345578224051633541745112095187909496571208260557242515256537979104265864953548243880244930630155970667991628460967814683533755237835425473596535872414610901273986428185614120786143806725681354929574188746690329591056366498413290271402556204934980732322739280453732438414025067179071479923465876227470652438764497141539026669007326536240423507711247048931835112289485720500241741511377886120484988451705940221930484076806079275469576313167801430174944825302235892583249454325756382807498470227344725914846883105155880614126453420603639476373591644017514029582998471834081296377648274856990196321482930592410575910961556041800115100316370069939098291686324283657707243701763094536862710293130596707424380979679406305034354158845339808160813994387389235054885678464617969460442440189851577330961196657384279209679203240067260314116622624218733973698202621749907524560257432872037114839483844111321524974451234217574643298372348023652305361364651363752501055645590881927128618691847090403640363498946645565323420526538936341017899689632056461113805958000857364330582887998996787046219025255737201650074067981807021942512820487547874937915111591710995340737231672846435313568010871910089387871810275743099740491949557560798881174649481677964890616314244722159752099537212718275647832082108595164673829128354030919106588612682936034257089571562423643860758126388598253887028162343707440331972848614250421031001074484815287496655413859024577537822801207787202925965264820383581591977775590384197259324977608976631060136014737601513569006752482424281019661704359202641941020278972191800129133675007844974239715536556981972535773699136001422188684763061990060358855326912457797871841025326605346788772947274782494720431042456475786088085725634138083373671993219605555070806334555252551506440309925057271683973880757901427547571200448910670854764249374727050187272727474727141112196454968733342316450616823154066901999740906738393455203139746223184655772595840817422204123850788499091890336832289572980344011171323459267819952425503393875550799521630010851411923699166312802306583232615639796421105563731996759502894487977660977509669740915267061221020941390326633071463438980606258099539482565666772409228884458220931782997633977886829959484007513776537117715779362319096906711600159860481259202017550859820451815616712381604595689665735096919434679825113700354678637271049660336821435135177063133006506283843722410927203546271210015089446268343735370219448298270860372899012719615304548982636384029705094389296546728289392836081502881163353844749191257847906414685150173255917509598787121631471589206160482002577282361110710994749688368451009390526367896186881382649637724505455805527063890982199750725717012540707506589807498996538352286337611579199078181697902979678784666294454421495609096084618340882332521991940236117273360289040312537431181753024969187598552255703886261584385998499040076998059876933862738470051800141679401803616389395067776232454531878353402104719702477925593986461934810554886571065294261458823538633247476588449576490675818622546267223550351511130719230290416423987555617041313391369955983519038628985693558075248874566235184981951724181621618093847423920827040843975489432103034732376126576555135224940434631444159668425477553011188871754927392299678120615909363879997372183594747793377306041115902142496633545139322398062189486869055469999663819136089736633956773429738053042977545412814211057192025670634132458560408611006565501970880725766702332987727671323962085025162668900589477209546985540533579310969102691297961941597999986690902852788935436584270028922418336095190124044796967675377820219153876540741312903624082653980937662519330202827159244955341657946664267274222625450416384065032074611942946539754609916828975594103295733670338119236801327386323756870879442071374871743697706059644392607649690628259495431037050395320102988979068493854847146381963577189205892541196603564629126953525289502075779816491313026044580446314541026366497218953082054378972561430997918299198221656918983484354639892688093538989778004374606318647859826581934017575832662748568644584470300839512027294540800038657442616933969517194998950661696960745929976032705885511634174007936527012828805550547050602473890086279965576152736437980428127472678348054347886476038261217519515429173433833381464157532933369368247129976570110154878319156158924112022731446497660879332447811835655717490382553633487483957915138710894787226887651355187355950812532027311930000144553343153349386964877409705978786910695144897793880954980614190702657297155241903327409637814032347327984561973228770402151001071275757721391031568653951704465411129262270415296303036343750260564964990737890117098168406627778647206284370843020836558718827977243111715231356939238186751054238862993646044605980715682992660666562762320068719916431553290621975935527350151358182417783537316352515111149993744540533559439361528068964641653370071362735925259241820426216307686097136980099486761014045142467225681091146774896978565311802848850098351801378750653646825248687147227567207943514987193180681464390570833035793167803951636736441666364269926887714399512241328264366161086373266094319967439104463881428540608264903004166123371205325763808551807210811251689101394727880609298677590044401247637943415305502605103417306937945428315330810223220491535822253979512736646529147381253687770758410284408507305458931010658825281902882668529365001016947941722449114697526340557702420623162885931122342903483921540487878523071086126126487523159845421240812756269344497444139850945787195875210160812863993142407266133910496655521822698260016970278260097247336899889674411591429331261678627312184789737023504181589527722457047451785042092857790417934239752304120368534298200559697002388095358679918550179833170258417098796923835184901840600056121982070226820190110068394606375955429917042452702324891885609275363058474559101795285905561810554308995140018506247506840914356312003311261393743988117013684602657662793101006792604810891364154605986518404182234192674156936600016273059837110692233454069017271706639833865382936495595730611637229830684225352348504001613413792266436346164863001090148996011862495362371532813247759409472095347070538346055203602169243506228629907099553705392739407208562089828454823765023933159462697667840404115962709724039354953789098819502388231347233393454603309179802085101841179277082608842555309327655998370068914888158605765584869385613313951842023070697733491476210184473139342187713056997467888368500502086347904901032638845469510242432689747691184106226116835851479683818935138594525011440021860739673793238877651194626984773780633213665094509719954679962733649470333089365071584034440000191162257124495670299001855158703933035230442945453546227703407640253354843494683658827572112930116853472833188711546051430005840781744804392721126177429663824240253514862437780051159117476009724876403731465841447928254958558092185435633917412422917546586136531260979642106085917920799384745934611782378760252937677855766255286570756037150617808480867961799857556893675339170352031699515357130734043282523361870131543644685555220705203926719519139295018680305788143970556824885120532980420089218235132206257244033413086040601222592223910417224180702510515341962002565280382139980304408112116586025653619929830983448104118815388491130603748210129715117130121093690527141009113035715070117259070090746128826708029296640131257715181964764819772640965219528819072161148946562244440073363118780388946109639557291978758304054757397826906474497175663566138767214859120527601095333632573715606086828766953063550233487794456959258491998172316450913879169931293136576246161114736106919906505061865272084755615984039787485183537115306942653958944641938249272638087935386511430215201155141731634537712006605360201256008666769490519222292802622588950265442400664741064482583184975901981621975234610178077462189368584498209050426955668302283639750546136071989825062861968706459695599938673692475049258997540856697730498321662860946000186056245231245259424054996928206668099952304765393309230766395886505587855802700282686555733272393509762407527019197887067115082136349088247089966899773080585149304680331263818709665485724092676988002653234760704343975110640135720662604367830530333237847699686971656850977734029972507112816653396522469276510073556550705603915779571595003151355605405647227799070472262450805747844154824150591751096076295796750838937032438211908115002106725600421043694745501880915166900664999629670820730802371082116986912568588408390177630704641402358330360894998041479928580848985362698678364012959142362685149168312024981095439114720771987961429899121376880006365788986272210679828519204626803569881753007780974301470303130985099762129572694816311834636059201031255873029540991269765883912794657523611156533054714757409844088852450383536673070868902456917739703134617700593273838190354577122121632148660279332798159904966282869433832025652104015842186765083823048456715329766620785970201378367054903025612193796137935139554480370577686963108279187531550494003230257254989475953577012543644979955923958895468461684454053263319412043784319138760940162028536442833265289791243027313607058462813083717951067884483338606438304099722925308514487279141273694530478922937563925121586244049228762887911342150517606564772306202625307970194710780865480170778006436686187459852269110851059502198293756195070159722425353721860332047249169917911109343334336781101336984620615571579621199047588366519002003122455032209916287790893839297707593039157368172763682858181081143802043776563533572054512415734596741308013994708061974946355862443180498537708599539111278807991619923979851134128207955545411759643048314043291198852939249403113757306805818847816855731601318207646072315879514694898248088686846532749320449358141052166936751903711721148004249784740316163760583339533247142651838157793728003896821864207225430468603965412200815696087041182141239824798049469950203931515311629053557718349196901701746016661618435659587156236839461074091060596120287620973071593419729398188826934966471789539777254694241686426573346110995546677543539755334320731438725552823979741670672370666756033247045350125134671508985849220108793679351479788768713750630651782599603271877811280018922540123304617727724502417075900863646136246863578048030034112311492075106795330907402462968684133837848394077481833122144368321671013106659380840977854883660664585343540965676890174222332582127865896447371495668309330918583500060925135673831835869307175205187297522260972346996439055683101318442333448708548898396330206596211962542805190690266922701158247020118413435159415468436132871699817877135533436455682733818565456930276416966378812087966479949020267840713282606056353647063008242897198102887072347231983849709254337208615165282020077803563838159490948219589243915581595154778197070090589475215383439606581334748691342054142567253511479813146576085248978743179668221484762975592649072511413600460140226254460618219094366938337943137201293065001495611035081919086075743010361964593408062408475480943660245199083233903041768509687377908879130529074203387367381202330608088222671728605177680782239231865034466093494250635193197787550099295476360325512395066034525757868482017769712205242671587514135465027033948673892302771450540965408229860684461626849522119904700657432676707372809496425430808533953608720322189125184705317188701082702229227607733632538398012526031182948316888483502542281057847623119872574166281517052352954937241484077581117266056228073005563753697239273739124426399580870981872849838504817187726758843875486357405248226805159816628332616801062849458919705700966093905060102362583824906622492213358419945042050622297998451498060646491829557906997417413405852841809036288382112296437612658382210868448807213675882081626621727582712661007388328902225658785078691211303520557254356648807660358995542924181375216924646722594630980588012880950061385048758543484932902819966395188268158269289488828906053896675226310568317151526809365755076349779943254967387756623027658994712397920248372049668136307773895412709703021587617610041938882345695031799027587395584545769435163023528129491827043739382907151214881148324320064945171290277397855220696429042565774053300369439054184347364558999052535179983561075400837390254844669393374186119502560391167239392041209798141521496726802402075809678493781307477547368249229163425914114243440452307463788602954028568594778077404523743160266816664845458809100327464322218204370649148298039132599089980069806511073543224277114638147777812228004536582428065084650795733556841922837607368948018542555507590358500253599486664252196543919888003624512351318906815565609226310918776843428504436510207755408940933135775755886312221066595132484666186275262147553819610821909678466719977103988783790207111624657036277733671053920077616784636559173903440979093611259016974383344561050670730989380623859672288953951873409199603369724721262705091343921228057353518000378406670787863279311462813798893288267856477971638747288207110310517270667081158634608854364141262303813820337043873359992135434674681079089538582158848158426838804577660500822713203898232898159562270726289447769742530314059468139039211184608263433327372068699951296378981070805373698867647225220710237663829355465116217757547523241716879989528840192210312339982411713734858531214271102390051144058512250448634417494077607277850251259305451990346275940267244986426358306510735151740933506756458747793633730354443144902454413352115067361168004579647238683837886908469374919319773636935712307364980017108070038140982022131971212749589133035836292605307614014785206296299314499117218518870577273639632494141318747585491871284293997330268076840299510972964126795595828012470055320605584042332392168128770622254636877308661070811865922945229163648940675211544972781842017061783781720805326469099880239640783160471002889460375791321622248954982539534876720316465239801747854104622121901119736018612611704994398017042209529315766178558572838484624561496027576911529675805800707386895653530814720048578558566055657009743355065492145085174235851380395210918783745548421285186212908427211522299683314802353425605583807619753041278538927752824853554178681597565950656264458968850405986948699873729054400897234512931420676357863569442263966896075523572183846556301147502768316089796369564859785515451258282149647024114271866255287028248595977799215178970786451661846444856708967883394817908928798423504104658379240950567066152348525127465932509132644145226991382823030776601298599788021479261388388946785804506642198487519175146573338968800294584345995909328343846822708441392214068743961650377891121292707657101204441819274167284723649292170721218757419432903018932250544684632750960147470589797932620629241573418931313468093438218597508937448131740079971739194996916667213285203523111303511415166310912762111980096641475698409011289934440995585030238767797964522220308447237035922924254824115321798839866309844160003265557862203482617238211782806101701232610718027767075423469560737469530421710555966779848877667320800219678456060612228427059655379533760564667774086982014929047669339214760696276797024299543188961672796864363121190789389338331954577446484898184633429279944687630870360053136144964224057123728577395671376724283752571846753107653073354996051253162978421809252197158904953110884676547324132052755018554054019943172134700735608935898196088232332952107546139203999042318370630043774213800272066674319256977077208863731065976445195799321615583624658379151759626537989521737929048772691028853758328774757839441312145952556834300823928160162607357631796340171224464636920317132110493123197753176018837166064493117695541409330049548544859069584313310014787783462567554143945527251662123921902956039680552663799838116931228647728778105099483122345368856319378746942854637385966840977031068815152295078799285261660930570407312918988304890059572563955196394945984850464232501026969586497333244902241742589873388353258188283462247166762297377320651647853745883384916683399877168306425048618095000686261462504487591081664154831403256233329126993790779185304370175615490196116768397928003958349576717323962728835603967930580948346954432779713999399510582974894439733084000848641615618892949650435534910770586844772833850541968024004065240461406354565100308278181817878307370851080581937013556551574875874815498596268345275982653240689981012465282802504143635571282269584563734458675562650472390311409847159954306350540861409208971032974881246010677305077133853931900217290108567043141151312048476254043187033721162394793024850845249542947550559151740293196890565232415095801429377647893935225804923151160588141271037842956151593306579872211610671290081814984147162344766032414271040246284149173157285156224326053353823737841541672928079777801157279758376155633257428096501294933231926159371917810660498738779787805830823418849796497862869556043265277143797215963510625899596582516113111015501464524962233723574025075290264391685455753576968025678739496760430906195855938702826589348254920970554031168134082348006125006057777726196315629967190618208111281484752666064700289235719208848474629935731908626809473069063146764758313923895166690225920440401207405442006237361647225857268104615864473441208892629751898609946480587678483231707403780373312722325885434375865052509810402397403352173391459618824056213315106099168161713454915939781348781853851841389143320350620085110368463763864492229714998505311023807686408058290245579397231154768142290575788205999207481634013940063612858212834439230342059646136288767114201108042734145344245776409263966472712723897130542355063000502926238331902244957592668805240152407079384976884636673439130441816403378871953419470366139870606455948495096279241516180074174270468931775635332712757735139769783651288802053021681453393665872312982089353867993957188267176461709415650624477005474600659685605242233824775040965715904349949062580653317266388672311171634381091601179563287135996139387284607229679250203011223505515877970363222474662766917305291958506487048597481704501765426078440917861199704135901260211559899031570480913647466743751439295090547826665530192472104196378274450719260516971495011746907223754533833708769928123908149807963114557580380352960255188084977224714825435341212801755287241983779457023498155674004707154409173183545818539288350953546937108447891885047867246088850281959840218479396508242166558609950096750647124319978386940852659167419313541526807475900059307568929114925788301603378583457576949588560675226583016005877704306661547360333502055893981892399525209230668231624202167594596281536672696577027616544268292523681961601802017517025829289123800914277804031691176423864934976238103131870225277060429020910184333958214119866315158378873059012390629261677878460297012897940011143662273643823715371632272775054264134609729229868900402880902317541299523216798632437368060733759090938658806309295793525775748132722313967359854950608787775204102134428680528421998786565331112616039286331037121943260007255480537067031548931921714655391640650759363776185768911123807025766488677990058421597033066462405532528369424204087534376739936566817618408689622777314335969990705386574009993889433087529908108520022532459199483929108100878768425884488888596741224418325994388246842294037712318368713438503231118588118021131420111332454858574066427587727657592896230666808600876363447094290391554898159231541987010980145808265194946896009848077636805922962261617945201242339977781135545873109198976786983506780761053246004429467791747869536234580642498126782187932698075402261856392130814074161579899697971015499157206662494153655770268915764982476149504301572352170583134777299039971892027700586060001787853728872872350679841591158199662416348717801114805669452155680002959696005105850212834949150737809537271910402957430275840525623382500742108047112227506048017961843064220163749646652371004766727880716070775119448438575493664931348420466766314983194650482117846932399650139751486797655748110172146558202548954985172723473959460451232285330113580088205636117057841719746153342211151079343920784476134644407144173262314904067328774089498214050292628486891167334503058907208155703907813851639715610160114994820076500322511888900311364682188751643354532809754954404492748476300159330078160886325109964011866380132705302621985550645582328479238957384250843278017299822250076761264476945540232525124990617024397853768126739028465457409145173141975036423095090823286987239390367492786282987776903667141123551172084839279620021003360569913024130183574379245480686702416249656727354465793434128148537490320358612882340456640314567871030396233293568203240966484013081942522887598711067335864914333179110425258692588521855089480281900813994910565769427146061416940627672224096704128772067220210028808167652363974570086853243759744678588564249400342525502590536652164825095242908469510684558432752745956164666453727799545327459436045827431332904330756357110937536331751354697729840441422869500411306748549123044790064190676275182458421612696697526943209904881888315014361663676397409488237907704890994000525406013873954741751978644417730962299216659933263943195001803405936302791229231451893762654541419230928257258046833687504613470208548238572682685455906334608406930207088067100142110877277506232138070254886298815431724790269036111411752713451628126291404185576813016496981151455653157557991092589939414040439743936765025623585372792162154195209656187089904417334444221090608713325101564047950217375601357357365465935785684667234375029504758703814612325715484016762576758191144654254340502418813505420272995953083893633855903682435515440849193293250293943187555026015078598999241745753056162448243241111880607344281963285474172058525963719125572044192700500568234949454385263694709985108051762101016696765666479484005207284640328714706269166342331924494521440991189836264216640375962063394679638224594663841127503430158939017692220131229348909699066706111958365400062330889358802167151177995848158872614855451191475938599704293015605897405593911170378760977102050815336057078126938503507357665960917662738756865726105182592496856797096509893851704575602120782369659620084297569321130669145226210908119566486741777886854902555970067700384871620106237225089963894877721386708580421124390202338396138581785548610537409249122559714993964253500455612033600469660046404505273363922538452185634016605131453176138414615295696216734755940378910789362225603618831330477618675175008496151534348732021634644914344482268443726069160930615606664004376073093690164975387034837395156289782077617356450513601776508980305681193655260889972200341125933446543950436956718327543001777371692335325389526663707005251500990179273358311711386367878912549306545712181278370483940052528489901858493662391057274406680746838817579690775216259519743431375235899725161180453159106221715561711937185511260385651777782136610040198436757183452579431907803289702383655359999907091739692816371837765806450666469350267745466351413038590138650875382674947611539590469844266321183413316332634670215909051191555428124105092941518596544922784525130920553913233498331564367039317768006909773101464715791817877765105905873030020384728238156132544031084662774175853629294131917338328182961568488733353582504570097588270920925798869472163282266841498302621633394250949176792570745262453740907048609761838018927552553099994217027414800173906558212065881282138271501890143425049285986439892260454213138625154242676509155178183375779296708981546115791227195506149372640965334279224436215515760963185115236744286727256187765475471030840237430072261216478762858570838450153765497768384818595850369685507887675264846711708425695044762116165546561408799703154941325258697632747742052527458781601433165300185408459843090001829634300793185271668543068721781843652770097050134866830382600452802312424531153770101639025686825918249499583762106846595500626270449923624375992291721952065624627711002699370836193780930448659070491056450190026313677966666987509026215889189202672630486015179071047175056462956310669231629116319329755735137138677766158919385104287595315068953659561726742925651822720681262725189399328558111507891156560019442659445839899012738878417094742874963309214653674220763074395465332706286770168512360945764778581258447478226295982734035689329401960098032690730638559471017725238161507237627427264100055658645610296803496311359337495269914827550659528930733769445651908960797964729092195198354123337414936843265338033985783126522289509089231216565781641945931989698195472544814154488068355108541319964557285004384120296868859153825592696231338827500455765546529369677163494408245347382958758523837308944153440201232944223407107654147347736643125677192664204403935828510280941256207572573064013964181597466790271323144202446267803262467413933765751733978393303435126323172692503032068145661176360488398326251262363233461399720755635524355093491724102930989383316124927126622354038816271259964603187532187267074500841421473062631253505358765199571906271450384024959993380739294446047930299741087483471559243854896321168957111691042953965901440574625935525011338967798552831483277409700593513550904443176779037178019047097109834922454106941030531255193434487130872455074992714388104279445515933265294169554615113067275544606467190835149155480299527664834150284171166678538448242782102952403343573911760487390415170414423181562220064249965985531014496038896911484619784523563125472555350000795254417462368238368027744043869967174221392683356900141222761732963367051387099014970518420016747983720334925773181414837484271690011439923649567417461860996816909970928074445126312995421249483881649803592761362514980747180391419331243729400493231671624968256019741768313962258460663809630752752332756506199022125567759704400777900812997143311184314614365014876129024332963129613143278905994735430294327524674235142234379146981184699809045732684877133068290076289269441850723879970552109811938745654970108532264600558171431419283985129364246939915126298537093579299203585517898950499540401467441904632127344641560743249226607636435708111659261051915913506999315448807822603831892876401454763538496092195517024822862838356458580676944084301363707468887616905414486362120329852461222016935629174202991438675945905083042151131360491800218844634970701260146147184482512417966424902006888101372379036536738950554128292241311128781155580855563691446308373724361923407768860413329662556365913725117272974438347301218643850040762676659587541873542950615484638839253704052929849874343355520162075393833291039772315206253621302988815496061597994142898535938357108343080531060335069852519891033632720690608244262458198097040721918947836590970586312023882490175592573736147460554402480059975571077228677088840190189755975523744949789198789854085588075954573264023804772598910183991581196301304960652695194629283927685696937204619767711737515047437237168021615606410150486640109480562833091288891617047349107156000069724936902991704383536428394955872011255868860484729803077394238599834037865175879872263264228254401574537798845403358794636931269775906286788585219958276728272778941813480170846266183385979537751195700093112482323730935542755230290748957594607695805269987561923829688442753477274527271393105340749142900263654679025873583576890933222059062290358670852885497752549411959796524327071220503058824064342377993564180398677849881389004769499185904514674425618390338546651817337678666466556871348170622259742550915270232322368147809678550621514160909589498055857328649715400727518908628218370094759962697763873332560237494946248062348733795638752044092042589024863420876585199436083259269293257830845599944659854882130841711341981698807946767558713720557627219536172657187990490201793689823719153333118149572466821062963340754498532774011414269443699204361205213920074867118996420144016337033050842650648996250154420437224311689833147625691733874014451878452367393695392583165696366173852966113115307990370728477701014143377462295618437602316799700683542994440137626549873050673463775528282411202957368753811795606942978122302245443402677129044881705161103802499122158748965786901026435805604148493236837262531426548175771692141833333482532739266486249211877184674565800706003886208107605260516601063657007872636607149473899336772646362175679604500056218768239195585081336439699396654741886165469479538233758908649674385005859735381115159192864656179135156781240832390895351997202468437086383535659230240229563643868636243247008618509490484146777093232596019125309304159681339396119432081281040426920068794025100208432151539482994409081815262328461514736070292207529369608286128835366392479719050457914900048725397566654347086537557233674762698515105521773472314673400064090645711553255781022738247314437715924393630404386337907588944052642368825854366476871067199035604844024424088155601723019064132979375336510275574245181342627565079832894075174836500042216934700492793465461997363186013385605783991314644244417579658665460386090997581578609844718809724343836958671287155967776302290359459119194678552464466081800637160413400250472711722765719219032908808181682368112126724219117337542110848433223990219628247473535613415485185697064315781982264924353064735257465289720232268907310942039693778364631523584481460299160781627506847868377467468103524505948230671303295778301201294172746748096965220178456955394800880804785730809038614623854175700965030126457158307881445353663915180258330816696258553149009733796380099247727539790695243722879197407255715616041041178242039773395130103950430614608742522322563176390468372514115834022890661162518167225900350648123979691744849126454138809147164561280083315997942602527325888511470192094488780544804050630679775049829955168842529251873278399581563406311065146668718630186801157014446207302353334876353820523466027595846831111592628456979951117789523772098726931514125535478070991604947591796427554747019557176574485575618490820258863940407180121916043513114054279277743600746255098574247979244331098739011288743162295135666909922438771132313465005612140608904438174776142713445100660628005651990479532498497383360748133968883949291236597596668746630243765861310668450859843168481206711133721324431771747269160963405172876415437872355053438166110738604512941267227865580670909057464409071938888771538353972873877207215343186448722799548792299982696582229158867932551112874909690624875176160007235059789219132133201117065378549832267003397525862701517339208578335079806593725700717682745809916258518224574122988052860289601876061114015049910430927255295781303193066283012831166399139146024898265179122237906551329560365218190564877260672339921461853119121207713112473668881806083373335765239329759704312707257592150183271914461611214873726755515980602021262375475784334100790491455032991633828441622832882394156479193531764386104828776160659090032510339754368153159918641446018290537214438394631777679506872873807317378852681034279461340162874631360738837307566068118339443140046879076644532178026754992185538595089202694958517570742640669659613717667424746232335707730802151123831962049852848978957824499768193483704888925621192397677493777497756474697685727210637223723868819404877933541231217997048317072171694072140477580056696943690905242480591150148982281888953514849189504269687919826003510385237549878183474411946621035759625854189096728919241828279943681687411104185264962525327032367586974351041797892670073570388835179984940976450980373721040682157490158180335630705261217015409867227712407165074510210203049796965192707279303523395917421600400479042648231387051298045114512846003133850031286214997720789626692211669481643969257714051141613506589341435020381064427293697508252817870047342881498617794016248501996726435405996176066564030091119368557730238995369869537086415116597031201347149130555734606141493814294649154800046387783890834154599145648943932907360065663401344143916115148255865991154398722511545494149203273759171419713554950663304611883482767355991698784586031536543636369451321874518494607487405463815344838932986343441610302036082353456154298170555972750386081526943590182980324558753351837093268671102270694942185877649883879038800471601154378837501040008112713227312296991157226482735757051502533507463043252057925825982550569990435069555789640185194364193368555798245584080957126624208463439346116984041928490608402850119823961374828529777237999902254993441075744982877714567641966514595039694262439760773515311926861845068680977482706554680855666966485696789958040888485022736847829326109765665409478160890306146549185029011601709498604647646312988309824076968450499651079057131522727023902921986062154018352608647098863163211852897014410779670154647045517358406506327240988089692022380994806303845575455982150307081636770702857890117388422529278632154337321033727202914247913517814380875462675133536581618186693433934554958643413490041494672532730966737819278929701183703247268551637352979397766413324063804526081609221261208652423319937972622848523069059689291001084358415507304949118611496438906343201580075833694172823524402562321618681273200777115168221126606104943956843589311569217435584320929533195237334599851787102233017368133488151862629717100191922426594888429805742934360365175144031261857479002024296501061468643287957101401271055729522631497794398716826849780237491796316011848094085260550995737481211554237909500803364073506812510465299158068316784395409923903214447764219715471546334813909352464834422633620589280345575912829223418010077928390924046782568939546682278814552902314113091140759715043974865439518819023328673817267032598448361360073945558658766989118636767368759516585271365756632495020906336432503034546787762818625628000140144192497195325996930232372742573095904594369772065066932673730441486893944790424605513865958554221749607472655258763671837557821059620827830818111810069820246229266799633157092824441279766870037553025808460994079173482136020583488287860734342350761704899063884116495515854504296331629930137199224824052028125913578424550177171604209818092020243925832378377870103144721618835645375620745848478065873241748133561762683282237411969836656101977277481704406089960114205743091603883097406468935550629443593760161853878734322568432518887964230199109796389877757768635558492420985599323491670318786032680939733490790531584393084457349468317516472427387477032684854586374681189787549298836513548117887677300772331551324535523687326525160450696011770628639699698881461162772391961101885291673736343123686814461913862470032462663685115362686095666762458621704462572725698194560878285662171366983466978636352231065766856800743730431263373481256005381163180664387992625417590758489089985290573141637018092119832815128344971912460896230157201483428403484093411828897735280880653350040542451130936544563101975045062380686403547522019564696077304995724020239558935743904907431924718753438924799202687571746996060104456524325148858798319141238421605799110521039952549429332843954914344370479842787588864368545351160433237913695322793828059545009115997157251113401769621708989133453845076372714849964295624318836780790832965879594034342146250755650971862612395424722188746707369948577228014910392998819961709520196920907851322512152708537660166758568087882793060866390096666220023706349230062195676662753484160502767690821056096490822281106608292300710715321230475906248460963110753474242716254640923822186046594662280530019826533422504220458772375719681969415871040226803205807857869356363076277307454889689711784983948662099642675729923854537646103678134604140883068804651085030511656904509966538611188809098642996743484352321428833572311830570615105776027427085728211167078094127454937201911113291821871378267760482926698718102476752377882580978357856390602640471040800692145897310658238441594659182636388756782981678711820736074503022141468236764835433083406674918961293635569178457225551437620808671204169320217985598290932497846064164902184056611361906202820620525242962071064083698725049022808566175177303401668330435601414158415152787334118575487041621610697446449621504736114751037376226703957594213569791660921600481695851101046079392745922234157424680185905273887231456684337106691281282368707296771531726423629424335128138167538151056475665997816037713310964374905273756111505253183122667771974691733790525296788688841085350516291588114986892285419468470806558167933366102670477805486801776718923003895440281044706396421871602700002670602561795467408284650234405895499314144075868057067560863054123502553340697396926824536817612946148674185934866268703623655969428028122882500577188908759359509830269112890206337779642435612993707639798338027816652547105010906615270303191754892385667737596146960087344677995708218789160934501417462687615520241145845943639653884076686324268927264208790533261547432686652226772848965453810519861031915290814192293457635104324089512955633815769162197925654761446999605981605011695020200436773554639123654508902937988534957582882935126051264692713321175387157976031893243666928672778968762684755494489611646587892869475369501145257544144747403913753928399641742925467743751719632049056072854915169943350153508826136555659847563547580484019202988843401985574604750845403409083651947962064169477194092391004828319360501514348057741647052147360957871159149821268489694678128125644405865507958547046369374954039440759410882913021747206383067846040508654400581190261644150148419029829120464989706020776373420036099878769261618991448826474089100771908442212312422732850035031437667073078708907094442739452662592534837435151472954220282188759039817784949175250514738171910473046001427984337843008565686207894957219342345239771965683520355731472963814995287035383211335522888617189858932952726517732159469674655628408354266545937278159365333683582899187419007611041789991559740359600609364296873588571514806798660410924369158937767250274032171704943020855700704190325442256403629895054243890302433694522111588776805607282586842073103634760198060230944257621242915753953589173722602889183821875992656345305001201874358829800280934698186073211545727294912437959069799447881825531233411311850777768070113640668473068237163056239806502526081640639775403165183731513635029764055891465497271640118227234546655030957296574859028485418844659699468039935394147026189167083563303720516963798064477806118899377247903075819795399115411319873442605089995994737397338339353271381818568385927096812878971805684173831182828363648999049960981896943241372906918523751439258772162223430564028977097665209326914517239775951617176849895534117180561952952822270330582108064218797799113900897310152479003870222026646341361342553055891229455905311991381028734546978233848097138374336267948026572274431446229435411072454939091456681070924476829314203398682636826740421771383586465915208808654307468310972692427650255238889433287622243416028133313662456636415408602149688136295091807660707303541218508915892063639548450808154597951667921326387324805590618558296796939233036619618285385521412323331625209266742182968706820538689977386424165458754472577779454107714013502090497952281421710408628261961087721528471749655965519306997405649861442305442636480297204735927650152646730322094081701704832997722406812581167659794542045894491883005801514168406509939239437641833860076315591803143685050103136598390620623249558948309793772383673692371629985178426635242843086140292293713477972854085993632916526104212504812869495756916639759394499746124536829679582228281855616869935465536161421516446896881876552140229958910998451977194422549594570209638783916624249105183527720651132480633629346618162112294282581292991731273517350720227067085349103272648143799814940960798446052430508525808821429706159027396710937955245737375142146221165977215037602400014258269250168440754360850972745772254187668127951118526829967074486206800910939440062065481131049880657036934684706504540670889077264448038009199495920606596064735119227068268995830891048322020709347164488900841547983131525138911374780962370307934764480159663841374206191558203015660888807377601994695866956536109550311870118979278310335914695936310848096499848035025482416241872882926633762255268900888093495047337867349478268343366740019151420786740651896416429158780450921092872208409485411562691025822343916581443718343659522348996707773460543430150419922467698968090040494952501241816706433440602004501266004015576620954143346753365983549957751847568038368606868191385671470215325259010168144391688342469970055158798194067840111877798025215232233647003113253361488119931753595678561096845900944126280255864555097868603948556093291873446040330318615416261292129908905266462459987565756603170133112753311796160294838311700327154140662101685931075798111829969489679049506086646950465118003300853152587166287639273808864606029074310033572862893605804624504851194315724225657807305818415235647535537266117713082955946464158941869649285330329834569986098517059672759711583946791172650139795796506747152684080488276645074615009551579194232479037368410470153271672094574998010346753437999746171235986430242732513345971510287670566879755044099921953546016559676554804562195986534082014079883701120329816951898612653987190958627547372831163237012109852152646808485323440005150387390299313775634338329661258147520477320570608319382647090679694498947784848739792568804057656545648577587458564973366999076423493131107165966420112524285965050608574385812291763694298350388496065463461569951704381061328218918128907811800963552997469102054616703575323827450386324779073098963928323881327501069344040597503129843874022960656508490540172105820630967968709300219502731860605508601754582573029163509840005743384869283603245794274759354918216339132922892301679866524022679397024364083019869887769476324002465943184262732601378238328734949505710101941523434162026886099229027626667594426501808925050027243729485047727128017933170209209781825810344703075835222409866571464607654460034075110742793966048014774622758869259184524759478424745503505275770355757402698585990195338528258894581886519465845918651800562029684483939469534175663836115969957663704090944475851002767062074667572624230770088730764746814835342349185170172963566110962964862524930261867380579068078595341802707819788337414637666680880129788652708513329680803826188349520434285356298439668393197182818690033338439267557747070607668368707777077246333358722029707289938003139660253928399438396257809600641613132206920425131978174843151466743397155153542712476700560185961348269530280796859976763826026973067478734535058132240887853799076972001081558849720632778897733785875797760518403379111781556771315187830939745081434983169233019215670501170418070944994521317078703220714780499248181820447851407325394230128136561533996093873351621661126335078734570050065441476422185265975644184046487547219342697196301534302971108082515378757974499710971419653772291592486701009323142978289549920781874765072861780508018500873398436005024164805079110167182528994169344391716199605699252970280871122827568274273675145220206786023955233236589189862703031091237274070593118871118114451458580629955129285004694249419213790806036890450266128957406444325770652961212085459873148695864499864165253281741882006881852429926728056273316940149032594019576971163968548183178614578681797198609786590387747967027245397684546105069672722557949036079004957353535979058649797489272056013807768753808852596569039257113159858325439047555890954401329203466231235984200249500966717288155358082080518967470584493806445409969574202729377059139934940947188951865748559284832820647190983936901715945608729123976336284430328680678663635783145216210537454769745069001943701042509500873803608077641536503541718303231930087656694826672523064525643828076660126247680241438696072120365848735506054466991531300913861381658878469609458740905854637289777533743380202269558558060016844349144681384765459763054003878854875420136625903080085328962732441992702108309887644281990640014110023092565966636118388655958349838094089379286811115069631967995965373354660260335477794328983744677744790954317966612940381374667828982690625647191619714154768060523216997225078076464209715733270585210386514836676807942908849002758638364502797042996785079007084005578451935278565604638349813468982854128682394846567227010139279243122925049115407892758568582667528108323024516838933945889757666133155332329346581965227332684606471381700001553340591427009542610613453238394425412210232538438069709928187199618561824953464731430920725056912690552483362111224916713054825410096724347548060481575620580875328802560208179012786680249831930577668470139121374263728347403462309611573590401592596889544932454504189132093325915366503923208359978941716236397953841852489094291929545167202683908802206584449540850670393177492498129171808743552048138166362906336660279628529532928328472666414806558889009168898896287782301252898544889730847214946206834267109011354923036010237965902656760579164491970326925808069754384337887507062208193127686075558308454564601350581154143647395004278219221717192413390889344283477812503525608180987600960376798108686180716221334106851992781732668256810409680360250549682596862001599898023913830581228496189057324573357404913705945201176623057937334270164579682363349463714848562641666255405339749149309478352894384340102811036426685162932344030477220399627528890946506552241339455226828669973503773218665849087174929845219408998283690878739304377923171757216251658210810797019470396613086239983090776267574927435335828490868729333665172509086855797421298403858373154966582335000276436956615079281678541651126432447180263496786633277013437340526349769128453959069635023631261679021072042088626634472088673983056620958204962995864201842441166991725267437574921462403597369137998456592143360437287046728709104736262510658978881968666564547537845495771178262006741991052750786552012348696902775788588901856092011255240580760025307236975736445347715205795815544908934590135960695600160159364832467403662030740502329949071204500600612887233411285547478665841363126169140442926994123140380232183559374624693521118899076692331424780880303216409702772512871239761608245246197621724641707352058147510872680949981349412821967157006597427291345709161815525454815840389809878131063970232212136128147460566631966671841689840599243760104469186035498314787903290967332531938998792036634428968137853328762064573205836942618887487442714599536231875447909619459465959965584991415610253453880307492520954245923512958311295675116902955143412300188938770679598624185937782983624890642036376759809268808112701313369311636285175424145557951285726867410441883868737462518635592706256516348469128292142757811826278484087340245324317631491722747717221727890236138795766578050458615050800880207394335394547637817710546266750062752588606097902485909199894952114758048610932715948392411882381267308792073412191041217951364833017363513916527931583117359778192999028542303048885986193695553650648994706116998056955937271287897302473717752666964002278755247167376728941902132743260892025549864095345989732879733561008239507620432821151701908409415260537899809005353288919358753680852099667687364226500999092445949374684717449037769822191148254983755600104281577648687466860166669130734025792694312766556974701362435492840395081102635664845416886365421319304959138959433781834692093965590198761388135592001948900564785489836382575474599540548417704658088567232270382747760708872044711419811726893722052894325986520420544801538654670215628398719950321295304706159699796518648543113855653546238815442374550472746707887697172035225653046344180295620021500001512829337791286450596912419186917253296777902839719955161240138393711626314056977882329146934884111392478394593677742920188640179990911680404615705971632747067557578249652994829927077682452415233325517582667185161092085916556614109679784878112455599166743117227817204189443536322095558392080608284063175799248206866895275277634491844470222008797069792646438472285216081658198562548409986489555839023916961886951043264839438460413663153981676875092287611432010700488896443476286162792224643513485914104274727618323251876568223786363094422137162334131208459751929111496895796933449306354531721554515329746477952167767886718416507622234504655571948231377236731207770056372638949420433174730778583235741601943016497196735889873669981877170863586448686252222165383086715433913433944420837756396837891611681893505355633624124451582300495797079277575048697113646157272257010920241957198385039700905062015062562824839823596519649850269928843771688651974504789151302363040165958099129850869612218087976845034285568207277210885651923190333443013407841364896642210020281331280184593715347141460762996183502599843303146794190627909422588656412060652974646718754663288009395767038724278249967527155833851941648845152587325985141507333286263148320412776710557713543188340603624633024172512453674071780509103631240509562867482213531418784577374148103699672530461441386834280378565744614146374964240998280485012139557878441939595418003572061543347161632537608626059155920664251230666749637624039393438551696158700352524580681285797397769365003461805210289143205855365431543330448983679587638459470761303672071207626862537168433284290957745044421525036415803504792068894823026392847747971433984508193944246055244241461737976971665008338291737872224476347551354955532257942364788056359289998676572037947736887757807358155100256534143528726772314477005562487935747372396028050119791926089966421930996438619387403098040644605273931356834723838478517503024855474990203348040794368128176243052286395097896226720939181115875292769337953321652167542103480837810723511019157504721664761979463719225326901335253712294554510139465861248554036604541113153520344162985731619049796524311239962499728952832451519328710094751148199505924107110234032190699371623113614554952635919802391406515166535021121192410900731397157528366887620407647643565893046835734025817444627490019329999621688700800194551137300876100309569274593295367439442417657113925886433023049838206865937922939602601321078045179065434984490662591431281408491272816555088288362546436375522314142988484057323327673472167710010146500904443082104207172937384687100583132031595819278578729604530103841039899373645045982890588493433788876106259593757952010480299585056889879969564909934023242297872929800440115682916707968266048125756362980926549599999982208577351548756038638848230538050054259594825500157739342101086241056052976155303047455476751272365779798052987392920543929587981091667344042110411423535377536718517092164920052577170392266733693558193621018148161700604996022686921567772933013461097894747832379066634072450442554662744655586753707575036395105980747432338240609015417114361859924521637795024223335158108993221478433731060894824514935639110714474397306159786015712640644546872453036833770207578000883548496323631762150484674392764476989454379028222983110850499492450867182506132947119431334865981581443805928947157979585352786947245361796442393138934579209595648659332535949439803015955005051768162296608600459979984953505387239705988485708569012099097310044964765500653855407618017236878625425076853159040540309402421154106979243394929501876895573260423586293300216474033903741828747109915143398280086330151458055138695784734863292502846127141465951571896298783557562737174648693532778102996250878509474400361552398172250206810319008620534188770215931727359643572632395206958568787898917805601130870391808540783174707167845446917469364372969871076636391750454163046153200060126185102177014093574515133506141218883243326588489153366690176781432852965644390626680595337423303095185031896814123800937176208265576818695358572041426550342607383598307958007875895212901342761855375969627753244057582890802950803655044741493606908404680598759775171394745215727192308782419501162833067196354001569808830650461421297371457526560571280808200239848132955440948821225425955797947372914366258514171340836981920320133161543570558919059373318013057780128045709861075798063204505037808099025091779798707287836727324321323369801446833847967763133361085170157218982782866702881371909508646679803511542762995245715354939130732084636530539163312092984060913425389958138040417609316091845438089808870279495553853753975800724426823926954117676618310708787566592255051505241542453456378667320510264416441953768557651136883231539820018395697545684798827835813304083198944942064679139947898168756688839027546187549955196652067208346897884501221962326498865822951402957784299428917589469731513634942861573688927228140993077636022901313441454523812618157029175724011576224546146675154556994264711690328436537034616623364682959528280677234108855770872749378852384811993890604022843697838819252730711989243539396423760729427767461611765995497179754175377728576726184438162666366464372799753750766175852695971365050129725954017583046342602227353827367988874797372678507486753378946308611742918830639579596076552966631654294067063200296641995404728867498268529999071467477496617275779639593648324005584051263564553965639494194107063764287575393839270763154815967857249355684476267780671043181916033079025288768946995425033590623198959197492587571005628966989272458903862514755502338770458758177907839090907963582844306744800550144450516648746179058636673413067589938392440175399730294081349126996524924482646038879484538791930451223815831902595954498940767778486758377472714236408979980019609468379474316729616911963314255072162810526651781388180815759081926241403404624096490741561283769472830487413098565273471055643674309785383259978704404334404964906415341133281869218728730162547912634949539618355471724133098684313675148010475434716858907350338983670673790607786129661464419018895939140981622334318092611568849512631650919266993112019421837396455146998776455555405981753968261221114884679016757008807294237714427618092487375506054585212858544485370418257082965329925769162810489388893892335810830126871326953108350634475119651365837986136990587131224825078010774724682551985716016028438510113071348543391606126107333070704456561339599399810264887995659098636730464500018760287091095462016754312648335106482581432878956078925332238008479896282607917502533609147793210764996612225222181332690139220156398195779724615820803034343815306880938423190811680526968318005681193126933230428263782798829898271346885919628304450397930187194046454408838591705076985280813679288348486768092314815112354748292215304685474773625730453420400792863404248772727419600152702816925195284832184657155321868552219369198326931694732907355568144186624356109847411806014429753483397100844501400362568121668578686515695049882646927262569322735409849016742804440512124476075085337966683631533359414871963341074098356546389556037760758370426001829431882813159438674608657163288195205749114725300734649787320755518172496001210501375653507598913980890477788214864326586131564747783137083463996832603532178202522844516210475450447220939482337639555291583440248138868462469980105986483588467515468260001586610262232319566119146335703299520788932730559260531191236705240529554176505662384507050039114195391538591574257357814654310223665604929847786619308921213946577348248017364208611083206313402387661682102234465993870264494465647668005851409455838239015885882953447364891448649645304183417129160285784344723141040953099476381461996403336674091736711660550484280133139916902401273990862953081882066001279734041771267425095223128627716781618585161285856655230975047485881767451899991041160777309579043307272009114913200071020816744953153982772547022736661249867214687257805500466524545041233364563535091258560323101411107221847215876083394134680777813236672288834106146547629574528591237875100875257134110763999112315986692848653330571270221900423765354873611521565428510576003865869956433012310829964825816766447873323002394933938240913463332657775904130516155318836672590958475831483561569534323991951291095818848828907531214369475989176866354388616018230862160088673220010448709081448969164333928640601989877929782402758247274226629693558015296748553868925436390568710339868132912418260406630525431975469657600613788450109469774154254557191870042730763583664726761532512893736078143371714888064567208996313967420287386954186068916793273068376976350814174211190518065401506628319598153180056239033466371515059624616741480374548364911920160417027625539979301349968463893000108266930663224745871470015550875763188437155866853456933036547919601947281725051557074074856603151096475602809206910149109943510643831737118947854425995391390402384155757746304065431319210807550158014434968268297344424579308083276368766388067166686802252158282925539318069807544599358830981963737838605961755986009926938336537495820254321640191879806247878710100134839677892620858471823273377841584953676819547049613793825847454698379245242194451607541482292248404938900917306375060262480817457335068023709075130363613202774561088242545802628741031821946120938906421219380419314240934508342271368800485851932491314120706661087668290161811683891182371611481327400933375361210497847444366903757738942751487722499355073109409369720143106197543421934607831582326256353103469709217225500570716330705351503884022207677211193038368337918311826386980677138638608157196534719170593902282237388778589650672014412348413893144000981129524606812582521865554353367141509150543098143611994324732909848424319010305250478919150978519041715279262094210190291606069431088835129204523108880526349232362213774316709615151984543883623207976461536844139014263994443247579770674817464925751997113086747119300961313551010349349781849169096141250691281727583286585790582248750315712004648408248572873432516740838474760325768160245775031728644864239765562257631074370617866560827453162915469714733511260425338832028616287804118141289758474513219851204059300327817617770054242887855692525057900080750429068361173925760721573230671299587832930317648864910471778223634837144863527704124593873564549262295993824752182801262536650940567082203504262197632323789877791519483228952558652121378028734870662741801753761530447242799909632546569169212798300871786531195856142380874113857171428757775014855820154121527062122800473726967898871179363558290645426309026904327286572395104052734299362048643152375533366159739105200326064028576096677618612891846697578508340101420372768919044146936244592639564848943296636832665757156433059025694046247114670962634444513029075365627919813344338650640196156356716026333576964770790364471301014548535632009114548616347129014643619691656852535995854160412191253606074488384035541482906149771811912601471820724764612692348745538699231957987590377213432242999829573007468264779748593561860901357665235364142565509566609393437819786603899235706422714787259222607877006072167184446644340472540499791910359386715459896150160356364416357103350926231373687812586310642246574410646147557556891151346993627252729589994625164974931382263709344142221351954255335406888717428651970636051459939866236240214220746103810523689133214734927097648210154090160510102571078495676067601893735947917316528683793204121401992101490807839555179502995546882929971537162811327905323439754212724788449403587657836541551471231747823512770824169159076865562978737226420780778130076990514787952967488816170511832758893299254910115508945902313547373700792670856037150997363496336759615225578588273500287492550479892168899192331734956448854765360992711093626600795315287572750272884773660640486701387748573289234972956135947787672839968109741806733083635935817311807715355590398752002029824524343895631573763516772664211828163651673123645663745915387643676453908395156117044912507455463603405865074578873117797712812078600851307722252614743327005853384791770840900834265821179144517647623453789918284181895796130313759236264919581817715176438821105272795313375342658804311601761921926130192099822432735125613025475696028699642555754054041342559148996036181305739402878023883279233281937730263728990644927956195660035482077337042533285071874715987834080197095929779001933857797279178710648973684146245364444350461165365258591683056688536301332165263503401632608120068136645110268234205600261111933203902216228724023404851936365403197540279732990255123714238356248868155680292837602057619480983805174280715979459185858750781135180727238650259365295748797922274851409818591613727801604857107894342444801405648030247012190789469482973689292297141916408308934827165850734112305193873179492415805235287729892432050090207098711965806085171716220645059880254623893715624105852344840094518397750047317048160321442432521153979315685572444485501518850162506754696358716185693014235123540756783147978176521325066584972820562607808177644640510219873648175217362122282565091436554215808405198677583346958086264818290181758165106656156453990061417671365695529455447689338343336024706981547676064454779207228725433330318797716913861545102466800678434779295925090348677056167299039585606041456346762641876676992372056753323648870144162714611545229475258899205497895517994753038265117779469479333205990471897126614481385241722397897235586889951066204906433245859443185744640238280351636583089055483937622665078864330558224794091720568794871904035254618450063625503560901129179176250560410708182223997084421387119351308113447505953673846231557296754374065030446959279353868012963251993448421453134867351449425705184061863432054802400549392576557758778610889393772507118526415642691610255272815817443446390304228554103095311226935965213617108867880005985441411419791399456494367510766827217770379783005674397586344459852200831562668049850418560661804159526006573858591140469823173441336344247578376942830327137457650342444180825877031260891068187094114471093074254330043090142945095462098348209707416069285072336844717881576243901581305114243548954915224459978942002932619304307310166320269181761004076426728914614366768866886954838517679748448257279860701155725388221490398870035062619469495196553840695128025862859928077012175153534773865343691906622647208961541635717903920606137805147079876300489363673488058157910079806646545196324807567479757155528098706009322737781530748353205230320314403221129503408146442072078945379601362693561057482008064791946190091088341916043979107753154419434910750236370614471845243824150989761231996772270541913175068349957928683817192316136264901507513580365034150534590981812706369484893917920070243677585065767138750239404196069542566029388123645035149957300895692104675953423363688871225046055503726756200107780259098550309667693313324812114240468441605140919096108425813922559349210110790668929075723267362342268993898663096792180669810728667122523888937759013172764132025157861659070375807674768526202520771692156346948282835633739051512898314722231546505650572565317270208359198444408050720571261589049193527833723437156487960500499349806449682799432882325732259897151080534777988284235302838432188224524367818416381615996564947515235154530510930898565541997206211026194100646721850298522081550817305336968173415659318645066657982857253915910552620808376930155261253367083964601422437381932293637470040930686013417495162920190989617220805083911788871358344212658113226420283336276423624411388817281732316549609299335090917946890896811627136510100849832050098284907306076149408604035617692238257884499512063403040488713764797417922358404226424055839508233192062779134106621525900259151358215794809217900414562376948155385939367236362725928341122722230542552203785985241382354781486346807064950021798041169390916963474108791006686711863819391812020415034974044640942698737957860158183206736743174743442719544394525622296568851376295860922326951191444559824489318994633873990823809366047111935299719999736440939308790266510539337484871271133561428520638686909849676405166803624236549317868352183483240618802464140131004717527705556842520299579735773738831086792838936009089225527885674123227821717817021237301569593403557974984574756399096391694672760387805569370637923108505054227914195451421311638011291569937422506218019832112025676594818278556360068832008780203414492051932464069588279679209108050703051143985842413085409129367186679170172544007371480941842205788152427848341553606485913272703362021190067004681106929035064302111010080762510040476210960140788286849639836274933416150411843845152398282390026578989003768086764812044055512861510216196959268083266197249592146728864220930736430977260776083046791822256135413999065652201691250144438478222820697646596162333934268352671684201674408033817515607334121202621862841077764688126382411109009618285018394195186454550390715758852605397491003111620658168853886147886273992621749624795541499364064462388440265097682614984521086174787216307508874304412393265430193850071921913962774956753176187407622662525249889284787142935336058523560666445768456487703377519201702016475073289963100264584996207476464268037190470726318431420147989816329049754688137854291858922490640034950510329441667019538191197486596445973458178520752570416981625645709939135226307975044446736452834220739153738690519236888063566030769367370655019397465050759134436547087592060742813789079592148814383336138132986512834588618136149808024351409419822109463038390992045587395780092425300811203378484116180170477379995419347377545561721981056023950932218761117715650430322290975380275531134328544550089108342970826235478732823451168229446515500794088361885366544874944035846413849459641336095296629949242437134331367298331565103816618246534794315894177553879627123968684275525451052090315711409007517329671240703626888007611444940024150055227081540336306359770755405358228591908950729521061179717088224422707528219752439968478677531139130323648572294446161845007772071574659553564365730810815013409927709607097527767575530780466225119603414572244936072301155124891251053345736147213892700284177487960632362405355015417062878101337472952533972782004672327430428492818102033288689673182028941486366945736207383553994951715608189571646438290504562233974691438104207476181849041768400069802482425138698427167113951014416210772172587581239839915783953239923964848313438722128475989299722372727569535368311653159856434065886617380477878011549105229433104672869649438259276536085287102802797470564746018090366302775907915117238091546184566848467342671456329404656702790584767058282990249871269996105982048258624970272851393475270597579775651738605563797728961254765981734522867661547651463197542718196719659267971983779986969939591767660750476989374022836111573353705528938701568381922784812601598391564919948234013421171899092960553836351384177261993367872946179614112081598017074556377946628310663030074940761785412597621259713266154426262766084400386445049228040220177506205713067340997225999404296736364170115983520124832915247263979221217472526998681332941460136404618051125501125110425491975473142905012424197109411232246941375206930245187783129245148111128958868892999055649109887225896165423735162524026001559156837163030625754728510763056062976549472979879968491932805787725226411610701066268416148598693416589533623871200689858766467259719397925629789362755452648741808450262285583367088685941853266208847099606831709752943450579231324115926495513375998429187679975416017259226838777615715312341467403457940762031041206869429627818146493373115428317319418771613359755700506866207481198966106362663595593953812336231533141990785183173492911866305502153224866417766632466735324629000996037503551511105315459937762723520771496559840868064253497704858594116628580555112184847334037532139663887688682255527050814057370727031074909345766271687249809896057906743406909573149057416042233006597899905177208421230708465302454923864740444275820405558979416310438713815656250437826768077315734713307759007363164600369610510986750671353829658248715840876277436113580149722516863150595500559024460158862461961569729490448642216854147939101370919132401230545475354099389887332170477569384588925439730960767603995935984462660578867409119118332719065015647030025774874567234879524250541030798911983047360188995785303550458191280457225201477064056024018994481749913618775261512911708595239012867734293146220628227543538539147522348825962352225580355066090040144776660966226851111356602548514466543127232524508240646320848886817026778511977898430093452100086034608538840433523406864881326250718971007120303173966856992528402369190603688000638531410793898535425572030593659701475047861165821333423893906451971929578646491160922817620847318995958644597120487607170152940830895239525846992879171204484952305259726730400637527505911614721916104354424875475361975440650288800271097017075632925783879891952259906674223278202628821062386038510814862751400388520089854579299838581142598144194627683748904543540678021549705932789539483692553755382551910503554156147039832469752624289958355289745187038026835001089687335964896383073511270699902343444597487457526727125620455261590259207534754593240664511264903437955438213754590784280252893041350411658695517697186789912825489791194811791731672842235418816485262271890129593019439095473973291591708227126881063352558581921170497998380128211563105631455037512525511086692551394932186793263171251396348548818846748472746695606686229879398159547860391936849564053021002060910195053467787379021058528009114721652958949827853140868083251668850900702469879324169689848962462264125870210971828889009880656660499786150558717914701078575132878660651389245910251011251561911394924711692788672671797971375892288611871363634612219578908047736993764393579885138906725047643449299965425858419605403558340909420246984625782242419078593676948196217088847344900843326994326649498009315133442938165258581347793532823475249424373541350151701290835696365211433153416738694419217573743761978413712922327556657202097806829904675621530765515498195100707800233269910765501064534701659544933617164709299734510172270661430793045248148774321668383963227975484124146810276679342298819438088466548069337137507735718092462445365989698029791628748805602324011559326264622174977987959527769656589134517532787094914369770621645639431449063201730868654799237266030143739436151513060282119655520344538554873638294123673027563578719617284623949002755919273356931789478718595764373868809980440534158714215702324026257619665443010707729801425197748810393958808787513281099357433705209472292775348878078012763920639058013956590292332616693269691950636676170304871659958229556312955819656374034761912124857824202333039769043721020378980763337229015275133691693041778055156305535872189547177833419243765384999443115449793058788149475648118084844002176206756193422560166431430744930827646585349638588365092531089047139897637013864479464654626723192965649126690150757915096825546479746312714852837691784194337332831755052043034732374245653343740198820290709976431583827899190268637874419949049940694426207031792943063587915127055580525796783310084605579831342001972011629516968668839753212604810739804165623311538466034239200970126122705848424808481313712678730821495151435812999169801262630919185646750694434458944791393959079184186875522580196810018091312126706072249573583388674550376303031476468165475524301266063539355207740643895241552192417505065616985924378884136667898846588659741134896573999779668173396910770200979004140980855751370000660099104092745315048266426173387094706896034211103696820587908417068660370196637848276330361250942027954164024951107641021765584241004819376469304726619250912764348919959512870977337787476392825647124889526625104836941752769205414406126718091216442150333458226131113708650212381388848486864943944181244322094763117470000759582289815678887623893518486090741056038530690016817074702666511431448654355814135194120110968966077833227821783219295203231498552085389341483495656513192550901156227842698471220040253586567407388161948062340779793679060941755146020411299908923924737456276220354328700707633343045669740224150298732849678172976207232438888131795643082077777980414868344823493077602210693937417606327976366939777599524947843271348704394321059205186646331075666153421037655246675882257039089436218878226192084731241573002462455553051736459336555806219207908193052528921638993471625243891059212834287462842707173517927731514140771111503674116588683113317567160391080376430943170195706489168070756387577343806510444142875605628098238295632906798445784057299374061413522615777862313608402691980689276566247341395148723408827137499571109186925710976028696794415334835914735783351999927409213157632445722864158454205181124952512491745124801802231482559940289974629474508707699554717782649251463758005953970340358707124031729905380257650981242310650737437531891975045852423770332061457038104371888787688477658662863252416363682692766632318185362067399927907056047800569644371724313543636525005051170159302811770744150573763564202800554228288054432783072917068525163896887434557431830360439838128850347068099465681981229721579317081840473687514358123071301129264243647063582028666125898893154751008120497959717526917507529599002163904406346346477941894962721686291318155507175051571611249019242577349405458237172928746491148974291181411524403578265269902738146598541884051776561773070277615721313109198731397429999774139116944632564843252827098843193147768516785290181964305451381779831988199369506063042744024061087994700356932236804741213167719649730246387041457897140239357785332997667896416717525574564764831835956437275995849612859429782790344589988551124027792875683409412724346266477863860764719677088750623895087566688188784938534870436319544549762894818214106582688943048532869486334271033677280292104856057713819629408783278362165801647310858987681590659382973076860211001415731095928044488733134460719247189280746021984063466007926877701293336349779339895361073297048372762832039940044569714317600194189118820942362667703938574160854819911535487347648674674085551110997518946557419541772124457173136499239356225839181180162798907776832882384758078489140895602514305455906762587199815903498955854432615148798539733160475509764631058321970609842976914626441896831128241761417177832551790968672994912843076207195313574426401227910935786372577481151542314680469764629298135612692615324467860003941951304833451698888526482816874959873715912334701596647406428149766075119913606700501003909800445911900246130567692299436230306633364853582358821157297848112406507905671956772193960884612459579087036071448218469513286396503936159929191216237404641112394075640593610547921314052705248332120819889681661429937670551556135907628085112147697082279186960220801989039985269559512106485889036803404644285282413749831984422969799754013706783547963110640107709582687999329940536724007805731344507646662297343518137546750854869593605114976942662750831660673196586840630566645058796022719879313903373754976837300658139934050801023182372439329697294172798269545957407332792519130130513470602276338595126121569800704879596405774627508133700363241834153657067429999803360952394329779308651495008297644369821217672411391314573471491162499130561931439797875659023234198373411047485592535918477880832767760582023556968160929100349584945139192758309473711564955190919873485166583016326741008363092744475172346573452215200035024730291559646715075719304429620982597560673488790392171837293455385007149532924229726756407196650332868272979544045336946535429534744068122604148619916978144217453468526808890657691013250838662501574706736294144921202115185236060131175899567719449808149759201469391627020657892779981441931903187382095893923811237218532029564358734247490013596290032116149955975391897390609278639571897200765758992266907664718986477699985330373022436298516126269665892586364315184196710816306423868107702508552729170011913448311978038299668122647348873964500900963137211184581467709256893515933563693486951849691572188022495153381875643122592356749100004516995532965984019630572256113539137675642703834436493167431402912152757077545353509430613905496275473394134678893534242326592947991036863687064700286243141564020227123748744280827384329433701752219836421956378105737374909086818832632050112122924983806841056500275506655638298281682550161233792718923656576461383454116546237717922090559801096359080724824457484498411478875825641085315422599336213991437898515056205588733350539889447927426658750369424360447075918144224828286956971978040788849889218011608135027519443926920725629839069319140171170101610723388096078130895886960016279948988959601105205012065661751158767925657213869815988845420421422719826474955112504571806131368592775100297666370068927274098093879593011703700596292419252068886101049372910903214013814391098246182837271831628402141308403212295513080687088272223406505091027457331087230812337983517099518975562491838366097344975228004722480620134616315538152051944462638269057756746419614247733805154224658558144087660464468115166177908319149502318223682489319818588148238603964904149324521933048504661914282734325865825129689797762191479482495225648170743783166049756740009641006009686124113045505961323243860554059834189014574323551691790149241981922364234680891506047974679084785007936291323765021740221623603217021718479027668693643795438096064454550435918350729482707228403002905437866016289306988316914169127448612981487732035728471548190328334937149758454407425512171286954067069480561631930493290284544296722104569359657966546146006178435205620356901380169929227866332088506365685010720875653296619788345820850038783548045161418025825838796752077732833156991240123888833454982307374775582224545438954529932160681758241556007347918518858216263436129547927545129712601508255914784094879847944358491399458985217221111520379222042357160645797171159178148145331598226664908235508574801346175056568116935735922907751295311761163678497124036454730480414448581356745056002448273452382541560687560244297217919730885143924492013677470482319039922448476314054327848975481428464991428652699389744207044291896834080231592243054805965367172908482902814822392278119767636652640954599246416104497499526408774389148317833044327881254722898677625030106175065977619428027981740306603759729103786739607247195064822600727723036048760510008109845739510268995838238360818836544536146037197736019043696933147204168217153901272040626610046107813468960537692989329243810366977447439708605913295550916259236661083866928558847125158515167026918170809826021556089951269592562529319582647464336907429896574166296066550548990967048073979616329334934347738740061609721366875442342156902068567529386393763025797598334772222148693374537858132109844127998371856399817696821788525757337981601947546725526864875109009603635148820441337142412873603900026259516723421383872840689722248300278990644479935490527113498559605607731132280663856276491609620569415437894361957718441406913499072085033302640479082891745655509196163240843629144641769335593458003756887991073842768826242051181493271103094259546317656747525428449820482718768700777510977231514062371690958758909969807167712720265500102226660841547388772579704130013051300181150135411287787164693065071587256930200771383864389866667413354190374655707222773429800604864899660944450699429368012085319211264961217168387283171681461983329828562562167986231861703854073574325392958020197170018008295184711749456851685419762198085001513789291248025574259243363867566792420925848819631984921297051282024247117118194730342873671119910673581028779995899617035280653939191885703538850432832713467311584210394801112389898295088759410201714136444060734645892540846829858268659296636431001281865040601367436141334477399865800258303274972880650161050698684658387718156529596747734717655245673453239529179402686174434066381993468564580997448525612969047909038428608221161679456994799562042587679382528272121433870877867330774373379433708439059769124405161311403494165627702727860371874013460148862911806393446485511030219349202276450250324830491268722219428500985748560709304170774899311131846469400005941637198672102143334735443156071017690331798877985847100707896072652964772399880261935563539910926642364470793735949748537924131079677163725114926832496120809657938187604033611716023762610229141866273701601588025962478561309747120796801512594512435440691268493657545024270088596039335347248943385523425568151393952504866045391514356486030366340658684257506366952047566650387531196337396739792976966431488324137654637136181884385845267629392903855694901503719039331025163701735487640375402293536292998179685594475794556595510752154275852911706636175959222562370552910557286287563286173752458621121775759662163777984820027036956006652433112198578628902936781717801789190363581091213526725385493660854842301393702845296847580646413041221122608903114734029725949624808754691674127472349837970469990545996551215611486358309881054826620164936204476132123028309406026958072507278458367955743586698996915737706148518225455053420486473022037686794915947431189350162438967151846053194652571046244989501005627292260624202258405971957096801388139027700895239701667569004329282406126410171345660561591798672947670755339085014773647065984636785402436463585839962867541273061522921375471600969376646107057956050885384519439264442449123440790331557135892711707860954514145071078026700352154419391225292400835422968181601315815235243287403275811568706239099453660894169892468372101347978849460868851917272114370471209643316642054383941180687190428708081647221351268381677766792687309378491708733655246495894197763619458853039355925796791120334584698493882069533383437573970159269984451283245745750522711089800010851238375232069290079508365336595652129520162452978950139280652032297878001742054039705094853591166254582415307289479062373893619482391304527249608873254746693190276975688517132755944306259183238042552608001989704021909752308515964796237252395196007190079734394032346236119588561063373698097581362079772845711136141439654520383952462233396355116890297224908336044419752598846920642536107704041593096257790141800196415135377118226078732272870075368269670134647505843568836678368146994223106206562709804322302298148801608991750292990402305344273432955906120824796472002626196692752031089434706366008526229598631307912728104190567207809005427140357793549759710483965283365289393191353399734643905102817899826266905930487960525017866373215185467973241253269486022921437471399007811851856694433116312201896171310517433423144380977519580773485844342942539790365429647709381894248399025201152035968223037089567463569239919679399057078503242416262255316989129639903164685758317647254461021654869147774740028057857542904540379698088989398985593518936032194059302554704157717089752192436659645870342034034322629539031262551185746915510481766975819814990435562596004098312571923919391704117991437929473193153772023667389490732930658016414441128895318030403029054231453012309961839932317157969967365906457457837606852552596829628501460208516665518745178513039006813535223912142653153228625970282909035198840406328548913272808823428959823454049072381312140020671045348310368585597122794454281397282796327854132917527327725253250553121577493615973853016414033490502542453582850224538426700870908439977434795781981088024128792378067040226183543141033578439040044942506269336541146863353670270409302074812306205247261857489623712636465786021093782502175303463278211116395723178388962405288183534451881061522851620831371346878826406704895960288299186263672077485001550536622037852974185778893037773398196442920654266573443097042679777558508422937055421407491168840829605007022566738313536712302717707299738802265158276720111324711496676576053394960011230209243453191830168990661533211210808228231696438656820550591601012349349944341785513706716731289804840757596471981124821936176681244120775465639909726549477576365524417841097343450988318379665294839290714969311817184793987300475723136148239768725700105659345906652038050671664236694425261286932103196720972836811029098265386811162834992457745236458138876964827902571962452295928981698526456716240793340508345248605200615745473666643352286348978614741443092547151592664626158584824303002182664921539867028178740281025835240579956722337883937755666785567077690558759364507946267808474722249877283769891441163065643901169640911838947191322276215940420381415646819185216090718961307993909204241682271687993259790631064928903870638533218918984602658469063976062889241449866399165755134811980366137190440581161769329000623561116550737950266291005922878163599529410915986977008461877884157290441987128028021692001894586541570464291218255583943382910389885957095127413143156290840546165314015975001820407758637131915061787077161408752583038027843233297335106946006495736471163490959696454180643480535414932416369042191653360344790211766398186070217263313427626149879112919047983595220778606068605566620656287978004131537771278155305297365034717651601089262208916040706373915227905420800835691768877281769595780835407145112012591787891951996713787430754516670481613896379459512015718017470419211297248548919047541334691028822492380104361335817307071247201219847536274729882452613455944128609790827689830161443288258452594385402405238487444185058259477428260429596911797956637931681450764972211520758752118662577997155394459325478858858389885890810182976967757078935328637683098474139100253371200629518584495665965480890547714908732178711693839458369251516163589755998718069045952675664821495950963170383127875683840276335462467073460991478936695716173974532788370839729593465635613854297783472386682058429552944826836070558714022066275731827467010550890889515501106794453175106239265954095196439713222218476967595352990150925959782417631390833350630638614079019976048899770462607438998936479081454101752017755566676675859331513856495932992569525966535265492801209249503975971771803384824422516207544979032320524478989327957644547822280386430912202803793200420903065442939129344103830302312562814243026957793551338851867771918709582001993049413101759781385456399721729003025365102551681067457248939127450893349850965328617032554472521760578285423265749336940732400774709369771805106997918589049748991474030320031500752854740221651021603950143560736581635994396107957292838217873185658359320779071226559533431132787543623265132507802152400296173471827787631542604668161444438282343392465374154222724141462553424739651922205772418100015535337770211805861004873987872045973690341913726801643316455003378437965723034559372600496288056780879157153599625059246654578559713698105993439075147261758396787146516446140822538303544165355422486905334762220417664851615820345360549051437216727573485644500650447516185932556126401534429000810051085256514728004466668406465564303295641052185190212857426309022593397747595044569635561731020486481158479917768852654271726631038109292547624094721765958402827249668024577400657962299092402158793009599530232152772883831292073937367468887475174030539691826419539541322791781591240355981319258813812664044291985648337443643014509733779777816331678899459875801760932525505287031413378702233674983858339217488277361779559743931185607149253808322614729868625057330976357533328493434259464214890789920604112271173826699084978127341117814193308147354489724645426494685063585936185610263826412073628607786211438063291567752957016023243482914135581724903181660940896942283618413677474182067040963884995236647061160177560886118620079804982403302975279971552368099957102767258088001843475919438084023110230753094198999498604801392466906841403329956577740807416655404520462972585374140115428932333837489454971878570775260022762846164247501274136388956901841625046045532595177516906760783989873050184061164869645536985250633691429290022208119007906908465405068296588976681120808334145321055348250001781356216603973956807710292810827702883516182894204891690953022170954635899047215001118908385207239587273150532438421568172369626298274399502901754096309021006435593517097741196515281797568806491770414294501693038449931509115245018996568746414969534482895040257773417519500296943796643338401047948821920656591531506536843983670039999488344814157603936089580575730040667916469379064205159165013704327348833057249259381252191874196606924157627014738591486888521223662764640705553624785177317050045237117859915930699270667287396741458118604854118926805346315628111446639153732992678068580658485667317106651544673934667001352207561425784935497910460574670403300238114032849252277647659142453100978479249709122689552098574107005338765658423134079598862963960292015231568397272272829321438652389799511538169431803895591562778590345301612008256214608314548878879927502278625663935183305404793410960492122170799393736965589647228791074589125148165856066952823527558461318843079871524048402274521644002061502135795864411212781297004120476402105072599656555134848420461846245574977627080852518997361387987950462612783180757579683062285896763793932378488596321940820331155392888754700846749685573266426774522490384880200726922175097963955465825058349398498900105010878646671388692132524804421369577403593198087260341333964379300024052340028801885468545657953811191589825907096973658981772012542810361860833913830175028903782368011064790958829898186263531053015413106894394446361744545367681158507710434932479032534913415004430069757900738444255972353323925406994269331336165306325702845549832924035615890570819270355808402733976499856576102440318973707005231032072913398929129256387862445372374920606106458362208297723191098141144502592274087122969996048766061213146668073418483440607488559434787051414887048063981103029612155234474725298079020972655238934676661914270536924573781658067195694089948640507481600916466138025743418136587124454061060079306869260034925178976314624379053179109538828941019499190333811270219620686594854684719714758967040625543726742724112494304316037172628241189192376781242797977318596139941507776368038168701395021403871067935244186232859525628426995226234662950081758990955365005257204736414464529483932464747991827677862971757871683290385047019139454160873621319399088949499095666406853810224150966574544813022361484149311750615646267116935270351057843446826843604264255989004524552224611845275313856016795272234230393965845129827446370081943096197867944636123338138342397997588176441747522459174938813817371608825650160255783004840411903956058740439135848817377939671083494864804883776792230858801447362960990679188048058546867112646004393678763062064958375971748027871638854339855325279013350524035080035477287431910803654989789832596768663910815672308948838622998998278581837445595032591526401518046524812141898911634751043346634203373681660947680952112958962316686454391596575039484367173544117653279065405906872529058949952944931817190492483330391394216265854165347966263877070103021860518637435417989200342528605611573693730616643540114201339657777432321735110127595314003482138771555127489964802442350351651083148535657406464180137675722058048334923260969308257353990027479677075520209936742054532690295486484987377134079660221095950733769689426812360338151259190085196397299786007338366002403172845371295253400753423763606412063247194133280980747302277583312372415903586527857173308319673814039724544200111854849068462779480828311557368635626137934489261238674775676990897754434999076066859849462333250509383654878861178900693942810402402371860792025949781590570597067159580106804365167322498318215752164175263743514786863848765514839710296378960077144656336610209408948259588497091550529572340944311570653219636156419965000657237828545862077892577090742359098651836222169975764821517196597390152653743318814265739360839007471261888753213728947018897932578294743570653497080939200014450770458415870105595337281091476281717207827337915545098950703163961382305758326173541693857841744826600176854008885560221675460772316993359749408266944864165799084351441504177018832088464169470252593430866226886463667305953553681998124722883791863078569673406588326065526219940522637958610040711664460772902440050917699515923718568056964772235786258317935221175401999065006267027402675613972653637187429044640446128581816029244010236421469307217027098408713620074650559164960152317659371436314981426362789537836359805175680011269064000689467523954883174855913868919082098075035157918160536718397892799130509303340221596852087869931676430607200004756926455918086250713209883530706389756970265389431061483494077953919780207582866707921691765916035705518945660381686669256411569968725412849988276439865646800085403854062425839905319903727463947361507707558681212519778102995566777832294580673700517683192428949993657050369591510214003079235744615212773549571730666467531812187687880796339776418590913353712374547806715746722205017710761271581681247360120191322014086663809881036474647584507147832228664974421788300946826424151536049474403727739261539908777490747023159523013306623002552466670511248227355985793378917097053338682063972688543878710606318496208589364863380189517455937122059051270833983708408424404979219102027547935521108757599014789726946120262737091492942622409592647332294495408262558194261976931124350679797697802372608546610584005982715623469040040500143496162316580165594491829846022801933828126162390089354387121124754783370500641186048047982498340259623012344899491554431313063216921268455183676168131489446211098894192245996796049555572960614184927157750411105716837868073560683918043708220382098475010990543908950392833928150622135572346613857233747065455377827268696918583499019221921871902441431154367913848471093627410052499346247402361382423240140388424011424628964524670308294943392099616930052457551466056824373937727521090615430511775717699954231616843364231817808911405649699351016576846950697881396917516037294684683623625075453270111788060228194204944404115906868032571886582456403904886719159695277537402153061256213960851827008225620577629160414996620727510380581461516684439923422407657837802524342628172394568613808220061105783541679427967408546542032152587275892270100019883242892709079634600571889844571524793442568073367562950376668584859450487521324937035061071076983929124496336117597453586968424592398113650468711289859833398728324616478659055131377531587884209450279242638110932560389334135931050313123018502031126449644442721298172895432160970814035245324850612590369644623032296189924548608000863175171395456595660068895171479916011532319573224954298986320514695640806139311868696912168746921383707314947069280421942717246905611840195514849195433704973034893334462510256111584309321644451037569271310169473653116038667821603598192024315068611140962638100186006699801140670604119747120454344629051277543009798553183064118820938739720267239173012309978640740911317171733522421445679015815004118397564282248000339768638231891530463635049911104162507333624695659739026877075048336067441764695885499986833450359340193722306631326348707779466134854126739378606062682751494886836813608207534529989468509974842445148158015615543544944070835609763716746437787087861773634807799409561474420116730674153579932653902172874310994977792070418847802635973724477515943692945369016106709023990782278053201513502731764404551163539670875882152814334503254663670137238893531400545775804612103683341058549564858387611750424353884210192943069782724468445790188931994878558686948642386166889753024662100871942870983246833431784006469022098044102386125042783708726875390168292335377638514397316004954370962824362253130645399126165881402515675108132077293099830381076164774471146608964523243182469909009818132779685888145308736510056629599187754587573285493686783755694746820269976525452931692359199831014674860394154920016873841371840300692736869611160336343027852557794770835747725180530551305397386675449083751364642449376026265860632525343666702840305961510150720995329236282223141012253216860455806446199406806060538910225172050735301683318890122748658734088729519872182106094159781523325642479896910984473042878568209562204554772027176451366039778381851177027196992373013369091432401383656971902778686486980669903843245121406918576222514098939107907125467497064645717592096729321136734076695894129250691395417717144490272229373336306782778284460839372997010965906351993563313655768531307531209405360917887828461322744791121498276013203919333368468165399749576746602262159325591360135359740774171616554502489231149803344125252414771530955281668960103426130540211052917319926568500726430086439812306255601728720444219100879258498300813466511301071884658700778999053147874351940400020997512009682049706101992728959698799746155195278228889070114550737505763680186611793935199744138847720903913155191473904222221022605883139595805850372753738636103782930564232587571609747310224835574347838806330110025930827832260958670621027467970402770272840304648764525353394471845112274603384870525504791188281267681914534054385669049848603234503405602805879868124918334116731382426315501448728904593117544811127704940280796432102487747725070399000019307670325076426751722231649537245421286628422761576426843029175562925786748744320143734599630292948418121332552206565076211713554031057071694005648853274330314339029225468687445376602982500948315538402289520889485440603792809817008128617890690257767361851921209179641835516338181192354497389247236182329245745330189597853123113399865369447257411606981896852124926425722795255728530177994746502300135589029230859770189959254547117559144033367549004858596459264108140633633907837651125555609498311607098232120100435576179167753950760561804125210895430878641191683071745952459000558493127328374199403054022432631838823232647665112757187131221268412311006659865787205758324149824409429049900153094781060858516652173107296368830482265432805889620012093854761009109137371124424257876406263601713716663037650669270872280403508258995558440175372022068048786569208657555306621526223781609193979047806100243154976472939028208988298936305658292399073969938543013060924540004150980616260008227780799263752229372237511007767206573459995286953833065421628725797751855535898835748982473607613443264964230969673998670737713106372749406693020158925724249449370205746479857975640827336573819260399404898336230093483515878614366099665958003131557996876740335168672231290729482068668401149492476561179143693845439322649923542347721141454688570510778647904940984170558203434197581388613075716305776397976706420942420210253770320068573249005818797393148546719562906441791745085985141414939523911215291569084486649384988315039344756834078992489037496206741736364607799178779753493947889341383740186708816048050388480548231816380417061653880269446335385080831988350637644616057669377312689288280594439612554660150696453418233035930622425947332331939548960313698905567587679127891952974324158615837970100691256535445665623729232626007359093130073476281016674288503818468722469817359888888125797860523231913933096891411684593646582856057169617778314664115002138580973916808518964310237443800986828807830578715248028816498835477836669657477319165536197370738982571414731021574956332443410109860009959038897060059384503139499268246876078183658229657523329590932812017576902717993614454144824482965681146060979518486417151292100147113256950963418049275515614727056842858239165796285564444004535080530324556090386172929209422379921614162366423981712409690630804102667534504461724163753192686744023346934281955655615528354533188950028209294013745790855160761800601734757063050415015577615646860510317308064929468446734974149103361676388417369939366353917244605976493258387573985690113939495733289270189878173235502638955503720614898176537542686654377256243834182865654452229420839554836053907447292483303445502394628526738066892216225967662088343406288815015957947732340725112177752580474498848030732813753552354466314300500214677962023855065063800654617981583271183985809971744674166633265731312650712976850626727333501900441580199038005114524459026752447455940466189716128194268705364996116072552521523546980558802532112054314797125526332662047478901199058953341978517160662660441834902914992706025988571863995655620737404396605236029637271442366371228052714698879603643518375838208928659333544717158238093588758301180821304887294620827221635239940352273022337568607612142273859541277528050412086769190297116018901311437040877696451839041521345679309272901640434433540998127940124168625965317631965946435237329175029532898414296024039219321336429761566119037103644191297068133105266089755516084828402655368424278230350383866885368213091092175426134482593447110354904683228946692186487415495393633285305460741178129718141660117262558919338184050666410768143983580730465766145056135592487137973224724180998641630329271883934288493442763697123355891327001653626188116685485402000493728745236418068118174760628383220066444037980558834758435883657648384620063652746371532388807592528299128972657519181578024786267342090319145067505176035141968515280732938084230446751919845725217814968844388795432526294804193180737966616192281116873538660899774117104722051795815392660814861664411959101156003705272628516514286431950185425270437722360904229357598560862316516735371921198131139823757570916260480696876596538155689732705403625404748544541555597790124797459535658306242637356555880260552845280000023416551962148191345825605763077445807391174938557144073488457542670248547807962747740479815275976369218619118049127365831861530670243197950666918935631572149881887308084643233628740104364167358461325429088508707673696308233224352482666286087922413635319746431533100912703203117547811563888934638018841994865416452603739628285244791549691736152170772517147453643209790720926546282219025300574665200395119582919794379899382064697755068489281700450185889299306222290491605388652287964623725052011165388473966789875114225477813247973049766690439394694731525163550421508119596964008324390193225729258059817321113200486774609456498938283842561810580536240226373895709002104677608991487498575053129466751535381540658813685360381807805060198564398315008645190339948865883615129886804127904975320017266089077089544417593454929376921192535838102761392767643011462385114748400285820906023166328724809175865936238091098585312139910658380528212686734778433921999601743622602504725810669618789205058795110901646720769275250601858138614210295367610358040711710399362500923716605311144027787011800196933823741698776429631249018386123921606638842066312109446203073749242188208648280720852917989968711762461928101486390602898837584785176519002023267092667011192860668401202699466454468133266454517854649871291527220955187964990216677520275713123829777427465418963489604747149789063526172077888036228202415653906596619950987514948372966545985014022251332178050619605843318343983053107035538102622632192838028196623584992963471430818894856518374268910190606840628475447909030720420581214659566340077315854154781287565022016504902889246981403637253976337317126813876987545216842955992288274162147640223888320164419752029684669473778258449022303243315266096715906161197820112617162615703077558133280856105216565909330927592769415160334622136716386586986730238204351487140786793717345031132987016117101324880462806305850512814998970375440641869110462459038408700916085122103002564065511923009276840343274468963135974097704081366921720012740771986667240620396931544011411875959379029772913789831744088992629280425712251905718319473778389437578156485596400187522873102891031702882017415416242208359083821479333644708344612467856028511050677331927776366798933665875946258433442941042125344579121454937284347772728657991629781571218395101349357950528947647537503089661530936333146196856866254909789237114134826388135849190724897733151801776824206316964023161590952144870481249883317688448795247762450914099772331496396267762255024231704503640042710377659776964710817633213517090640461733459889700472157361009754378541303151259040700086591503577306075894538245539199420061163556037145546947760726473484015225247025059075920900635809288843496754134606480662219023974495522753134426886924308178146453210393625076698691220607414050502020783749805321572391929627037772862971493391943415019749744597389627235536048903125377938846779856777255402393680071486893461431567507834250548665062944415744433607125077578430619381267430958939455015491935883181865732703165429687905130140339164100442785302748203069726416180638759940211171935517651921598726048340755294034006567400287251182747459657618537364783186610384061918220534120713995723714337711198834816969033834066743190013174793783227168651788715729292529230686554034667073884174438419673518695507490255785176572999309715377218586855918170448757079283286737209646215005567212949281862190540370212014819339742190252972834225660984450256704821545729784657968575752171300757341618686425270449474704194136584507738672609903454377076104076361877406981645192710452551889601409555448589947719951167003095837419068226970794343073675714917188474795994896871122526087262471010325721908355587752390874240159535522160378095231554124611702027535815738409241561884987652367105846506371052275762137663996071894254166105449780062417057281161201842282569101379073753269909747549027082595678540965904373742937205493540979209318389982613056116720877785295233435175099640008566560441309507638688443987201955372375711341657575894932492119061852222886450680385673953013958835449665992137766398546871756741321626850739069215377584790506350139031077249861100967327420287470228593666221320343234572150538230746492635299201192766586295397098518750026413372917785797305722661150545965497345775713043669242509939755095208007580632584474862359699655730173505508094905521327339662554760742383991769720784594014568952942566365261391714479659499586341127192137960699904720148423471854659166935637703489516816452721973953574733741137359555379500854220774440176238709333843542463402782553488555030303649134910808791054703598065369949343141724796516296225383041109509259255502220154025107699364354393447713497177719531481079623839089225748668047892535230947149596518473717283758061040018708367673199679033377625181553010676093158173889288435956137401832467903076443909039154074704166157359320450408002191426928639645269587817853494738493538753296635890928759427787489333551241295450637514243682557193209668399599473662998148589191206421993186789161532971878388250900637083411198651550358273100113274454087295789439378570400915175109490556455487177364491431465907298095280732246876106809857025899386361959617808742244339633883772769814564069354019855176064933200473132093942596770578415466869578668000288280698119669417846003019261074980220336067070007368462608493328754283074038840871476420015354345052310923814672163929404407625012410569958347403757926696990993490387037839252829325727182122434797164578749201237943784190115648957334192685391206455423615096492668409986157890117857959101567726524077387215903432212518325887125486250033201199694706367621872172889779249638144588002377752079632055392248814870671042665982003997878473336578327255982143986872733983686752565708927287445756098860391062434062206335615022776798665444326594117768674216738099674336489190640686497684010172787133925958840548905479495422887037711051457286932665566606043107343665339917057676341025459298405846077369551107144829273207594808873819384643609180752425421005510812613185047340271116811102961215239102433629428151719324903792114651131439860172524920010741061508330690098777900351589173305932647183505652301585839627102339108432443633133177971351773670439542129881145998878028979279756317872523350112178076415131966699928201053940419520461305746587940914593520082670627565065886363804196377891768660718404754876921553988097309769689137812940092348852887673916490982669056227232247702693951177552443040946178951731043720674507602722028083663507497885956999917523184670911115532232349180128140526987543027280081985307753095445862150315272629443735668804403582533062408321201612865394737061078982401878713494569475361408186142652292018409946754800702908322806018944840485944343855520764953152858375592687389319856420412652687517297874968356348504306482237313325876402480449355989435224460448812173685788106674964296460529014190004679131420366951632994971467396712255827420779459806091408946287464634608515728229317523132151507036104131040549951410248892156195425100598523066552060040338470200290437372092303895110830941720377080499208661111100370304328684569383262276080236172484395246013375923730200036419446149220015542576114871286423922144822615820396859695081481354354555350069296702566530380453329512965675106977245976495115276198695506806548115373462858128942566962079614055287667099602532183397857044151891099351277745242851175335987717071980097401285126213735453310319577001334417691202124181946587549564073793574606779085733823596525095378057466785439298898605661722018013801508226156681779187930618991120317374050964159070265477820207571600985732771342627243430695628690816859671307503552392565103399515639597314184087527603465699186984895758454491917402155683435092604375587628921119701741141259013546299483936590702035910009558696743543763897096298052062932821582277024366659765645386350474848693769464837384332146931090702265490847104123989446462462779653937023279387855312418132549276395365644524130855875587130995420374598776498455374943417814369395181958916742368609974582520241286355744381133216571666333968263686229617996164101415305058007129420574606419069613908478571449154546308107188225170449227803548340336940072417182132817804679563000173545497221432365339177806290477068823290049593270994663728874846428524305332851541803340443202593066895874238056269086642721228651768725357525841639565066787883181900252845875632352240498400167398408196200134177252596486154548606423033804328789539474367492055265795850077018060071551799626747435532305456021239335708041807231237734643791771879670813564302822999200099276667881052134642199233321374694471536227573450699155720852771117723434336252075725117577977898142244379636082115265024347856602891382737739562986425598000599672984995728400475876901354350696909830371618445435561599080046252814668495968686019942505375041354509805585807268030034955066765462682651012548457050282163781119932075518611346140884260375206559694416510182618831545817485593930006964173757957395776276626274295867240587408746118014215321461513801920050231214682395834631349973238751390360290701302908748985936966041137505614089038295359989613950520483826843306302915444983161865125834320868227986274649344002664535477425306859988836758455985553036771146453062672997763785310126921167932329780727715936227272265100001859565196366582020951580430757811765273208954587241492103845131314461333193746277075487205510798161612664961992258887061732588814004050068384364714428242770896257391906668603812376534132748132908610689384941429409736017091327787637121579044765875110261887916613936192272762203577075638376986236982275875068705193494903878439177033638968977650227074228488266735958315987564295010758957895148106311400845401137173812354173822227809984204457255337041536038859181171961338545056364983636496591077266071820686621577499832095408730503144850727327042082570740270554019413960924703968370801543735588844058540372111012285470726579451041882336573256211515860630712589477756737468656141316982166051595241014559122484173574142124432269095887650914143842799088775427766448667561484457345982260396290300175381291393716954301475560264553360294154141971060162129933450782521919653706097497568884047352909661946244297886640046917378561197536321303547328302407252246323388617595414859392122028936626230609981305567503798345679051217152907809784480468405786980443007805384976110145373326014939135327168139057213002091334855841770490574577943600421566259024978120339048112264708014600638972041921540815466577762190641041008864784557589491342164996784435925565866027132757291856620782407300065209551934236336705492947270330975318497543256648178549638997236624094068554298908998192191666381787099587348200926969437089292988906815812795049694282766794211668609910836963087526996087057320584334926841541749043708770213919227031474236488034216362464730845119181972271760728870078643234866854006226241241720843840964376673168077761634517631672180689209995970948907292219815804992297707198101692375434778005331566923413155258359618939761963607537291147792218736260384155435794951176569400317217592591108100805996351104854836638877243730107246062610077315146032442362557159119825309271596480808657301997706419945626592842412769551323476898879430822018899856786004006199978019005068493252933299014114483186637065546850649079465000569836814584850303603901842048125121442747347004628884895938556923525382259468735780174072826205594367175611936873419884564543410555031846994838689046313052825826489338742016905950745188208814367667903251908154430209082120737879994838292707210139736682262445857958398456199162179261763057815870152689582048511554507263979672381622427542776894279163930908487144318423056398390661545613110502134567193740844551470143385180938978283632262142072614439909098740699360243024041233734543946597556089439182193706061492716808914707154087148371355033320103710685089596281373568749160034431039278236634411448230171483626449475464825506272858272683544326334483047165082169406732409409865948247317809746063664661189926151838014465773083915191542356380642507449982775075056685087485347119833517538975060189750326664507999678821433518333644229085880208850068001803902503666745195187122720976124566579166828195487674063347154490022433520689579186141146265431296586068028551292151728710160525385863621624136341343926028540155210935875116338595903550498628938062417575871426445509821029468464518437920301151991104217687439068052428373984319081977921426431693241142429541381166241692743693637814610527861660942326127191303224132967506898752363094338923350917475082211233916543065773842091071452364560465053776198752932756300797126448782105280005183173958369761383950459915967531469194766185369082526153644382155383452725675320053097518889867111117374605123038498886304202215622948392677839445803116041085426676939531763242793660758706825965718304099662353770441067149276301885376216696385904986235637875634171816221532175988221664979112711054259966862661085887584761542894020776021880447427603437121396206933642865740916474632191636868587808050562637681688306734606182471075293850186496147198446466242031588062339850428533420238746770298045545363259477498379358214412815283048569180850740532178320840615110011319461576846413743810442321180121323862474088475626428121228583556220611069122267170508415397652559264141594625408392686680348524392188752966054487071690919725438798023551730988878580786987608732349277765546147304678591250932300886901885729659041720170466193479082901741966657010718353063119053804189349779156245931790588679598120452718973440776168504040635684849759693583507507864529727319818110666840287824998327051378917477675977473782949450495217575188849614851616321178018483956354835653799162561373774045879569522813599077292687898200122862046015828237797512444125404082466709438127503237328770632330042191293127027950248509815592767788757154244612492730259598212185058565363662517992937412716970762607864859353809192324463703443923266515743042399969695997058517816839076900821172556098252518151331353138026642703675398275167885166225276801895467140508520979358073180741666907044935045415210640496300431168675765653471319214146904971122816028208052721263831051360327995257968179507355227908612264343489258723126294134397441729746630198787117773502790269463112687304255440782811401395679442795638822507100969793032846888062689669935042968449162704544026881518495390925768129732631486436178472495476974106087125541992704609661232136390455122217849288473307289893169545464970480772360115246590541680791021114311597194812149893622896969676600933022586158745204880529580072816006592929697662827707352466899529319367040797899470929570343649142126171979076258247635673053965021767954963084120267480467457943990565662634678755841793615778840224447213721234033572139180839705489902046315812753551073702653427989758647711502177189964451486749385808616923386653868344440828144492259294958832015552266414964853275847214322537265648075742648500975267442143921697796547120450759455493436355482154909796033611008616779484248549507834981493983464389114232857140144791252523454783048315928633972915021916725686530361493595506421634870522616065217119490633795781377461543277238166042218880524012219856843359280613484313851556635273228208208750712490302891029930196871225685137183860668427428989533022016203416403968217019501472900610097805671649916792180347643435148840509610521286800650422928073403983269503403867265205149930091372012204996518810159067985689180669357264575052855474053250094883927551949025725859978071538067147931273401866621584448029532692101947530131601550996574907149489188289632876141799028836699131858370339264737660703393435967589230553320330873424048685799752175129859990924873180310694067284388087232643410143714741469995083572973878709508990247923840789990704444895467343480605094272133270812925181510418367985081929511040764203681182207916112065315328754233055352725685006992342888070804369341206053488522520714372911339137368043409390426172155267844241683653752914457929837201448056904230689401309138586612094579002630953572157694836668607550943519637616741582912979465682119836981782902603531491053505302189494592591666534667629514733669458654697810067979600926169412109040460352476766033759728348139082919886331660607484830405081142308903004168222669769851371637276062279975669478916954229879283617560815700482869834033825245756612184736251145587344150312073272474672107304091269921078219550903642225899421345689155950329173724448593225254440968270485679556315003511664550926906874901334568486600315551336221825042172932615006460150930031635642401980363495230088628173181162465892685711344423423007010867458510590512245684823850787645292696110224548538396470248745792369848107010927582016588252530262903082954464748994335288978207132614238872536222686901080909093505382190299130067549590329519079332151435674953059192770444641188211825021393464895234005601675828626424226823778125209094353202362695641379344672894856472235522807831081681657764945020217627108382158007380918270541797350219098092429508050989813575630110979498644409416308886478354211274932898164284083427128547484931649254705017189974482290511992036204866826650737889954089287518164135394434101088125617874980237764208193359606988594799876146244164379115078125164782955454705640970769795259923985391179605518021772649333918575483137287634327241637051277693599035766617994282544632976151227082884061177989313139405550466759353925973907527554448798784303897840062302536856766776214005666625623593758999604572683105967381723398275331673342036929269798119175203239614566222129317997559977716098278322831535189836959669475248087656388842323980370075789681583436996366528685058911826716891292751449023668874027677252442807462776191934243381453542390966844327231321094242970935255839830551783237549393150148976768577781163058872204357844050690683754960017170850905175098743163821088584282497565971027756771853701430865321289198576461028034440160029396972295651366729789860685067836358029900917579754886373376029172410791986445555348745241531474130013067072431226680449200018942165130632644369522245185284343584054558229806595230602290117446188101994754808198181826035700439761311051219122135746586949242587451954134997832252927325423410526218372554175767047736343839811662792885513987015269719193488894355122785107026349055598732882424011866378394956427440364178548242774976320843942125131531317781852743001261550279936268802337041072268100180735914717987776366547390516578611023059975766280858405659815620404944962885963600289251735610774533426621474498483242708534111164724260124930031554162255638335158978345387641988182258237745523561688153108951916810441161007861191987697754491789325253910003014140584988590662632332394331696475945885700515474731346511220070576829434264624086531082727173402508785362913972538393983321068194834145587429557584430390427435193224621012521897240418676441172392546161757573849042590564337784074670937365641336147141513270614952863776079903777680274348883418026888193937802865933490744283402849505832501924814566470193965298027056311298351165989714781411047205212816445316899980681168359923948615839883073453582622887489670172740289859864213170863684753211645627022018022071189995298488743053579821104582477348679519101798832974674370513599672084568865531641224199560509465254643278409898734753650557575653093822300900526608543094547056915489385159417249620919707371588715475847688529768384766347017501555807081299125914867567300487219198593226950440978173446293645203610135275872304539794883052418128207808152973271826096844716017403196523154073016196691434954356097805631098092586070359732201638924938395541121738215662245681924096852975959277588949103458040117936541403658203260042852936561159928421240585348044483414601386996726676462141308686181891707060638182324911799140439739664931245787427248895739991968131531991366547133203134238088501317274220457501006269205686193495428364891782396714197855510039929156229141063486682206755733148627120389862566968554687165747240731438588214309910190906623019528228509564997496178312205299453937182914812052328425362512695317777414012661609713814398823806018882127517167776103255687483575869424445331159031012089189143768022254216808445987205321252487572582666708764598171092707299199860036525039293466745074701058845834283443528090073088509782335638639533888554985649292887320931754878326140115433420634411641464906484927432695770440814637869330167372017016942133364522866270919225037847214477132861871507499006591127682361823438233464750014825959070674133515973271182838967409442302855392699159757702259908002976604088184535954028200542877626943951517734750160594108705188616217583219472760523425207661672221053047084679807313043387690843356921167993470927208618637875434481760382709594942591693150167312913423850505547370499546087554242180444886529891761360100256164831857053200345975946677638041684008452952229513104422041224682748917082350215829251395791170547963520978018011532215599657886429057440698629874903577313392054934536344079255862007668948085731368717414361158390806150337433063809900823201673964018601808299850803798034516006888155132551655663683775403810455904158411970263958408729130105354217903323105483588066199932776262969548119815891457041010785894041604903879840751461408384071985213491598770896863433697399496629779082533914321585638962380736747327592968686676454251219044361415324254010225609905337357605346206275030700999199311766644484391853734981715038901857959941017870136036246140346435590244448512477319205324000068010511520866733379364145537438829363928928743819612398297069156840174385887663468763039826937168506332948485357586534644757572070321510950996948097876921934219889129431007559141927255885998959606391559478381574505847558569914555560549043479809354553850299561518384621840340633913262404089159284159429269736191639682010679332847851284608401844596642897831321398847576145636338968614440298721261823737548662605630203576359271767110504057928036354043499220131807837318548745269816303638888581705049355929412724356159853312654457999976594363730332699811308441031227876511781303267020826461827825898081350567762476410132769795969173365691014877370757376557843188702976383944089678541513053768974025756642001011024342523110637551436510237176012199023652369044499539766706845955346612313797557692900719848372817670772319979842548316026316915451892007652704185933213854270035094469445338105886807632089265077165898099840894895700435848837829530508631356660937454065336635193475195881938284162734916891845098341474592828079704781557144610800246055892135856027392000477631848039066919824217562954900412164709494840557554024277542683799645558663377307070716839853285711381647804040230263872397569341645533660744118986178447668722318526217717984457377106369626474849280974074972043916099641981642527300102479662105787975668139839357403709838747428380014838922595519860464597846757641062561365583579025938516175419021176955112900638473382620265554357679109529714788225697663587328537200147967055774651645764122224010519586024081419753041813022589709641064350925189500238795021032824807580494802408753457984528092187063229922985285279016887373309726824737014866216209374731600100261812456873025181604803129340846659131428668206122904194356585296847833997403746885149236513297636544191143628476940737030277799392905608835795612358468275919194970679896928249294118156956593679188874025800928612014925481425395634226365171612438241469247670658033908819153598735562570048163768187784054558886933649854688406944381983431483172952742372893860945938235075681939898934606566926594834823216849661691571683505196870289537828509547255828505878361501548509505420197586929064067578595942268021261658797271475651526612242247726879665286348403721803824159815279215738614373714010805102473332206492353279343780008987479289503136135068321987871539972504014623674720105380230477039657082421827059038427726099514399679902515151076514093382763923273171982968024546197372910165026719945349923485408349202499919473092278491301294658225593701226660631207899626101146433546060536943811101229114168638168733599685075849961629287908277068974658841573283275270613116220420062925415516527998110704292011373921994545265607377669463164772766989002716653394539953704088663155355586798866616288824559346554078326849880831723963743775229020330661934912376348109109299257514979795560210070742899322522966245197335502645384102799753895847796145968846018695095043743198777766867193921699927667028783684159304781055583817486628282739830924638905197249049423582491495517726619934469892891843693471770922403972893317836720892598890668843343797283269746170438378425723240225371478880531699892632888999324071782625384623670093099535100174577802740341681353290595113240531614111693002033929394962680078233957240280491868862070822944977412510520824401391205902678184412228971568099353262389120957837393322845884670124455013041886503885107878777052651951697430586811351235757122585513795253190845804867230747992406549621530795549900179691373646973025187655225005112371428575284239114029637281816992492994595972670212475259683229811900422646990591710075708409268973728289714541549311041758452248014260786335004262990256109389675878966839023718379197914556254836611178629438538336009598976833250312989433467935564373332526283450818793449775307718358819650714430120481715086796796683298653733363032072962857324232460528446255155154620762878215350607973715519252027758543349504706583459656818052169256598460866288876221005433141932362448001051171679474506397998321197674625293193901698092302525298903623392888820753942048990460954554582443805270635636403017014502739411910542460581697584855746755692561356523056425620386188753267793104427401503320639766780516429798074378788268978101626276292794322215713138341786544536716265079957137526945481744868273852759758479836509520491360572853296969403816029041480042810488571164228731729260080431064820439474618496725705856408364383942690235111051866111822726411013174049229112514816320135532787768030086653512419367871276966529369321564650114970711572487089861766249032812288944329221017616197007352670424842156851034847407092609597681807265512101207744507683117120102256862973499581853283129477922153303499763571915881594616307695403001366171424529899691361053829194018565558869490152061326250901084254204255316762984640602110490740064760923004305757312444140018864425674477960607390030061393767676231747205688250655416433785377443168973588908807299640294407118521644426351311279314473398787660305686098977219230435265973467738572008058127558442281410997513097368854988600997130890371935570449813142233219940533394420668032665472873423369071835609611193493783751934048649782133400075475720515006981373409779221075155761079650359833747617418504312984593451338381578546862852209278811827855201768084456726267529670678632014271935327685970561625086819657650772699857010717963701235924806600430505127387944696916770545666362930225255325437974177494195973333332915220201220124066153244509415602987533473619408504150271692034379694560241475273169485165964031267332907906232245126786983250068983686032532323212589177480640204489769587190742495163313273514201381443070336990892413227302738538614252826067857753054477497809654351676464199554502172813723414508118549810295992807585061104192784226763356686193211180979595401707578541315968056383194428330249758320479591539173744636882539398365405213865684967233327694958067643388077393417225529100136507770834044247093116809826304054921817957709379270049618572384631867107682164374449381796005838410751802066392759532852266694770605337218893077304180821552128052105442448911584600461549734944796981741936102496313587398695127604191005086606225876898968409267283539089038468183486068083182101771865810840949542857753012305552229513452827113509866393757107873395088613571097421395868614159405658220015395723736484115034790648182640943117161335409824085241248337124934143515395383131391646114597658538204736809107562987188762996374212200275992250606563824447103016019705534428558485949326334574365285386273453022116774995862531998821214869470954691448996936978436712218081613386157621131134456908935678937910475154956482811104370235883372835463520237034973009005287088547974478239345940679605510948581527585965087260799146485581242415767087043978313837751785768178305426720419113924365108882834233768793903972386684511674537625709325329037828307567995305753878984265552678363993899881524940056282508294039504635769779522452993518729145200299172996985646662296708293897544158575477985437236373639293928248310065591686539890112797968119821550590489605088656374256047388366429810225994908550490990183038250534023477309246965747172105998932111555714678519911905893467275457789431448213136107773334802635063526976017462571685492275508274814016928875360891410316291976274899185290252055817837166833786792133711808111127036986352943977988383500464282319903118973712281292521771083535305237884936917904458106541041982904407567821357740807359336021236742423609888695901317393364940876481523905765864827396272166476790884820007237466926791907278498576627725148509916463627115171745978541381828271091191256024495173043567579911983803015751397679886443593297270591360996090976136997156005382194036092957185351905258477693855692484022720465383411185547369777274972427212012042038998213867680640903420077373847783315053668752467114440948640755316485602668109517781291544906430221516150212655528749154575058203076380578637280643062981266418584050856547647751075377762728135865363285112026972653132184498716669020200890235707571822326902025108113100556344938278382822554002873351438146074170038531600356267994400363351452640502042926518324188673688562428532993118916355415620064821911592493908697902069599748503682291532486213992224054598981937542182714611265579043994582439009946632048570852326088408068128815366894605573569627805284080891566307651435440840609370470773968928987357968708915792158583752319212688899487720604779523758069844543954590127679439895481889059384661709696681238680818102934286839520034141786002803817906626278802743368276732041797815594048028659847986813623137621910902635802785303370330209880490724734866365776715897121362064969380566981770958462247928579442502280382219443154411064482698042104057273969152378589189761126076995769541713839990453096745839386889922704866862597861553089991723235493212610194002440174998428973684894764281608192345211543479137503855301141239682704715633234879616586238239598017996266983567244725967641501373596914186197064591887621783522376602834780754550051690427247238996850959138241772559485104752694258934242692476403240163066211120027967093275829536744206827299453979076344259850911851382927287030955489470228690000349183240975864331754532292261852933816579371911825659881390231161120415293036374816825028446297386912878951112799063933285011634485625785657599891304097189671884125164833993409290492931901153387127609732181602256497756749105286627462920182067303021271881781142302686911446946245733934368948142347936702957758622075380286412798604673946636520253193537976151600602911681543951614507253297994227951126368645447091627888291952203871801279335003615641241233912036662637566935029491787583465380423214852149402675107131141340751065383430178023216263729141676864491349070577262204053647188514649871745942111850328603110021755420577213729149505545534127293103254849717569987753675972974682780701269529425346846290345275847528313816624799648116931935695930248778084273413758135538303016159178832104696865692832440858671015440185997359088933776756418714180565169651753194426101835765458609695522573234847485031739745294478295764209602691545809685952210663843924240694931229205292315127433431861813259304750503832663552807287818843923699516381297337757123706484178644729327059874481190228206462789577051176531100382600050053897581307457302152424706159018117477826851957423831008634973795750970214061225803178112797357634053080845369861047867135693338951574039015731327163980213770867763638387196442641114999125286837939625344757221211692216915680070352335047464717303820949988672135837998311874036981038526387357833714108984025318955945863415451209078573257821417465192380449182925253057908854591848798332004320658422090645189240670156365615454965287327266473228713393813160790640835699945271224338141894882522623981893688629642345564989821265019632816973502472828920144762829745878352449321988716279923465234569882066393994311185891075744047648426189150302391976924238229508450502312878807943481262898620863445477175047308958976079630748624464724779201973705112699662718053299726478098542222394682510530599440089021590182633624283525896324803163873368361968761812903064339650030936627247610290963465140312018598691785610843946706404848036286001440949320383962182525668425157904790139533920376204962572194306964008035978114665991867094228345125803715630802521854376502632328211821899887583426584647545849095284731507995149075818955631879370334606774002160865737195650168608207495219970995469822359910831920443502930442883536842372378876031454561316237166607980194658087139304800963647238514696565605842541080522389578282508267453246837320334330106865607116641046924313418961455731166444759032299977794809914802903365971758991041405010421317572653981420260733041383956453190396195653960083191397317698942621437635141003907217088742418713659234541941570151147435263467534025723575076308663280421647848765618712465812191073358422051662327552986665823374531385695839323669018149503674155443826434552032816621360411984882229950993279345082326891423882743195774726977565244294712890522742945876021352462974795145181569230721886741339555387348327973136930596441166563200805876629272347880005281399533938558716639417397828174982590209348469770703627101489335920464154585344283524525636647286210364063992844466710621786759659475910052430895322140254791939989369892899027720092296208188635899254341243249923102716992853635992628015513892529669632983878414994860023457810001970185950991023488683337024616884124278544124028602490535543665564931100630586177523841402957383894329536743517304412917070656933041463194099225732144697146926741711000648255364314987487732150136326552124156223146110829178589469855831188742974673399294301629915617524726914553118295013411548872098977791783591151919204354201781732155411039606831612732454126981734653645948514345606175128925011138146190008344010576419063662350548965273132073828991768910100489565979251114251483904639122415610245640809730604179564935375241862384227577622525297743016714757750755430635144232617872191497139964170218401807879432114517228307810202765583472198232778544969958649930497607635323761818101185213128270146036288697966757746089353020655560899253008490473289570792811321017641851602341010175141188672465923786909574800111953272635095373690926194387995052970102415805264466748407459679511410682194841211122198434951117431905482196688986966607590284483307168356542622694766069145100031078711390990842289844607720976546888133184037031795180460846843716054680474913960450363086903845330342743431575127193841106092376353937097555776236954036788625667316928121810215029767065800849642530361696039577581559851899938398387929003291506464284366575318481922149455847081278387811453989642942820483080123344028702445097886459260240978302631182634807127363926907538389021655449651290860744448833047583406359129692990094121733730118967282082801902588419387901650127407110147943672070759993698514577379977387922406268488721555643052127623253544292245525689861108009660752464737101374856761426905908957233819223077406596263066647889150776295335595529419885058142315727607530532346979994343953547053320176450512696031921880912068836006786587752528286734738761697794816196291832722323356214884868407591791376328007477411347984129043116715203782843078551342656421426166486926661581178343656490726266549533031576501945074446040407609260029637777117547352569151548564945638487476088180108574817769804449395069181864412296905033084951599905672051519088050752060126915577225186911640853505924526051323230776743276017704457535145488485401190435551901363389874022241337319728469550494886942300805885707439588250620803578419570799850451197448252215601637057575327684265541661634135625097805468249968760336266290793629631040333785155382709474756556799324885181024486796489550353190464322486619429853832119929194570460110577313713757371478512854573118864357097751780368775442819905326256284348953939624560879443893647720632982108374054208066173492995262935812569917725422940546715211490402500078297419027433229179241102260545108380275986855853616889102312968678786800342586314210953685135251856555303855644207468797359170187556230705610901964372240713274624114928904147600686182623138151394014882949603864301585965511046486136322372024849903477656946660047215460797455897400945801802394202303358101875655483029011755527983435111207679087260452018223959598579915947358758553335337853617048814052845359263642336791138255547492449979927696028646165072384115110957033793491549468960182066498394505418037196888691162938861168706196385432944452981749310670323489276180365481717697431704760469382354497389736423472019072664363883215336272356353137654864901832790676035057671152762713012495049180295328559185105190953323196916313747179351168539907863630377332955258550762245894934994484478898950966866944569801299690293866534783634407583355468426634460122418095475147715424127805028661908011523084110413413443683996687055456077361379107033526878383336359412686641738956463995215272423918658677542938632525124006743096525029907184868178199590178148210349000240008130363108208430480092800653317380413024502613799808083368839777707903864275102590130527298463464109957929258937329540536057746817574651781402345062186972025265582898850505625182742419938510131526227188655673395254534561695376220628941533878732793244715129811104472269086162510180919222361941042521354752888272200119504845598705979775545541753638270816413718591104707148668996873242338468186513445687857087337042966604500379490814447107293186949949658882922967559330393577426614716457224417547987540035470386981061148266721686608245075555635892556959755357629043755952674940580797107014392906767976407729685336520938249697077788761662294621258589943348824846071350975599397308110168724252953778818200038642514444728810827658443194506824040506817432551590510358500762604279775312540720256756058766844035714499655908059609738031702054873774551553628479675217607307826642258811596816166812741098118209421595544232364565633689208689025525476030370908943191029340173409688543821143918548697389621180458345638973213585718005614423926627312204041349244708173735264156334912909334828308476470541105133625757138551815418342007860521361929984827966210556881348389149909256398712653650811510499585556551089553482520935155616950063355533987641112520179607927823885952326033976938119451059806729058452179445785394511903717146559133961988852687563318258600075498016337863457449679839020000708004369658224681478249367752330022251105629370716215251004757668440449653109729256700785605788087513193375992499914255965006490395389389969613244209341170947485608664413209386727765591366448161503703590441913240705324656315918931685955526299544882234754992963371788484625170530465607732224576188080933111661457472682312971595044567289443791036544585635494401405441006117907826487234600304014141850864779018818929458119305276869859444978621098735583448119665198537168838350927137242645661467691894421468603501526201432301245322772006110150883509270244080971194099535825329992434740961417692396820270991912564127716512940740022452620578960441199826144908691816501386088144800470873514301666133816369971861041826770818277091686818520920736061928061062522173805958798412361912189062701751458054253018112046342134769902105636533974674107272317538424510663535341191577641941948166755450768369191802461542453423444525199454431891687708505050706287906959014392487119949394637379372241362502108659016927858849298246741859381656707013526424230546917808755255814711472784377566631927564653203151121693299119136026352811783655470933636774337746603755025795691602657710753319063652015016166537288410729893699438569632150696114913372073626824871265100953458743720560418600184848341106035443363328853260981181051221303207010365236575632602377944967946227009000861752587828137849092202631472379967875538499121042253050674842044505876270200370920528163393447621877722097842129054908600487764797772529631216478388602360624848270959190510695556720463237144394872941814091903829385395196093137076673552716414423413605060051340591558300645593881024168193696921726761634712024991061877239439675860727813868058908295064797483301239124733770920965693549802099701729187151355461623416561328650576013677880251391902512621883809435444015417289736285025616275072462855612118679210832229725910073455042159368757371009838091511272680756886175239722294104764261229426402425788634218384907788657533904143583336197323318681197173569678075889622366967372350595138588768767038155072184958422986278957526210711259925462850261804493679020305283973251423428115612785885979753799537348969977909426645247657117898424722928144715043840840308191054974921843425889160142101770644414068976352511346591471827178637188464199122473479062753602015581705501554364583660055181179676074983658089772954166800857502500628488621989964090969890965268537953578590622125654974894845775571330789662735634447710561140717086339942382515245860727064011746140067146858796791267343170777547315405539163304245432489949829913488772050010552642156633179960006784136003337114679032511845480048969477922361739988807854552296376736999639473838763436628856706041905933289257304634670456582166591975611411570759856700330643149729583562295556838448123185013813329686915871592412441124082947679753741103919006671680572205749544996832952605255270298680826619189642646728422870566054019120728219647440289726056948768785704324110864619486519886930554643228410473635772212131345404881243806118479163400386774349630071646874901545553319864081943275148360502080800957159945700789987021319299695824858549606608986079239210539285535181667574200324101680396104001982276113563478613215440518777489499983193273759828570341589888401971803683984121455141225326891862413685399861046570397276439170472985669510129044538379290594004782260267010374404278104353313450079169123303966954459047076120813552818913867115407431490826228848201687027414574188087478110048441636350948164478627489434454738832982336868542252523930493555076676969690291688637034863325180011393578813105843924858115322330163361668767257686365342324687059347491436814113081473570029901885673729598094854481229605926098023647155986045463031010509338955791252152796660671124417583702990826090978118455084410492070172348482729188837290444965925623498475187014596035656806090538073562545556965708556062187818556794859860535417574351151699068126216077180617523340667991607060344782159900190368115969296960719865396048643461828821918480910711885874105453569252933767375639454122741690150146303256514389528673615202728333968326930355387717358245425018984713546038362192478965711496613782556935037577717496537000557562451743007959717385076942965879524878541926759588241201683192110978760291334113405797300964669718170955998901211128008454364256796886285098959248143126681631974359557352805980055560576476602411145113182170729732622012487857312517501783863788627116005966196757183985068462615738106752621152217272927827588928116506785002104571548966772185294043560134070885724627100360441175931427904986548173554878658018272564372051984770231641727482872430302188411477865554921949179225424772288639942615835259218568004506224979253023312736300454638631064122959523362117281613600188476830957738497426411394059175417315112856311458017415050447096968013714927975877076291689023431377126674280334501433456247566970180033151911506427363710814866669907222402265145872946537209477003946185135727942410048235066323610726172468275352255069445123199905310596189028760006194868167866928867529167040458772111627915106854853855586986909871619771088309274172882905998849966354162287513837675457290937639338474590525335797095616370853462528346914871536845419481945388261603144419753058984812939812241990780364692153174067030587633419703141680050430205175894137388784122069236983570578183255020772528559732624341300971075963841310710597243788715812761825333780200800876029739148064303345071778610206437050549078179772406649048219493711550264218848082275549022035863259450841082438989630745281968444446745356752840418803360900552092043268659357147558840736405698919736395556309914756622271817794873880497938644210282369570081794219767915824755465227730308864670463104314015557648125884500040330854753739351776887368951532474141155558282665719856626161644446604894392814184059826453251182634379522481332998749906889588261651013580442029150984977789092448437002652377778480782629662072133840002403183340481486274977542909385195789560114076684643220287283115497349538580416342857674829423119612855441108345889578776517887659619664920067523642691095239412704716845700813590854653741226315998426494955923752998470849591593611116873886433049869708745432451922581174927632154426873937833884328561784859298638525095007269114640971800782673321144643499175411461442419102178311815406554347961494870251028723820683422955456219064539432884506269131912805674493290653767338092272420577794074980564863603552770610188145818591321596298268007999848270463953654759034442404201202872210434238946997664638932504995981567733064325227801709969516015263410844179766281102438500175623621958715879131625010389421889235001466304523618512240844513867042979283619632275980705820147827861413575830919463289745046021127982359511412279323494268826063260158136830375474141134723953339123996893183610581446477255979611381948588760695180495817809691657192436584438036847512785818228104957224694567725708384332933288434569114866360458599597979502419820583361453253114733158295033895161560912543208779535867950761535102672583002503913007493280982974360540847900000088628190992177812228657794543882413500947580214016968991835833963900406480588022687879811521548355923094108992348613213065392596458305484623477835861368930317958579233073532979260452253967200358791804676303618108256140620716119490637192377418950158150482188378098402787981784389585186689725323415541149065549162846699427704823184916144982506868947792159861006539567768435460352918974826219794206867159470722924784977677331281728878962352529010231265440785578519071496654423411497365381420352461474162975533990605040857474363620569991372671521306729444479496893424278127856619916713384314604271473403820904395282785654907835657840606148852460288541097832872160218093784265576065853374508306542127068214334328820166493758522772109110536244081584231434838936620986525463658687102189275024391445923656051530342425702410201574980889175268113039886351554308062697951775863701336603595042521182331851243829104805078047067976191375560378216721977073129250857278397252056033017756430816109845450909925541222395536341869004573418102563449338822348924302550047178395735615978594633831610152363143745447647285773162994989011204217399428899201598052549207279285925302325551948918348941494665342266824172214773536870970613568018687723067261672170148495294390606820685331820117919685922288545095885074792165309004603621909991104365690866621961670340899191199803638832046500167426279595368983291098239107282278391062573736381028035937797640544808324475790494420461227252777444946083534217453395488343435259970155495537107840151671173036825862365067196454072856018462995495108645524910428269551971278898368100762209118174585322918213380328212861653467604648988974569116136864797929223052787094682400992669089122135766086638041408569779061872991868146372548833501436375828871853719032271305373120668432622062148024824817599807037190630957143053155585474505815522089314021203964433655540847081586293993511136206528474392683851828731704653212322868652631540524521959557142620400678867475047478865740540776887241757781579308806488510353840906139134123077225864273580108487342601487799032961992531239696047556754679948868693304561139426600231197422206221494559907376333215309085132748401147936058726248244265888316565905004485179879492209022653846589420244242635700771177752023975509669708080079885004036312567360245925515759228548176674577011620506011107789450759126895591109701360346038491087649751195325177916584127350040489639655953482144165758506849199017320492837183984692447227524034865671113475177500205020531371716507645564997338593084557497363490801698018356814263579305418546791683515801052361169330958587530529880042546586981627289930281125500672817913979144581830030059647969847419646614422405011879422470850351249473681654663021336212038014356175311032884303381755124338030798696443209822405856397861125716395628190795592452662652482005012357395341748887774642044591650738278174631087593771608371655661296296175874315810594009233786633438172955078012358027379767551010758321179710267053564719120864026198935536382492755953399798679913082309412188251469217296213191157872281801972634939804040811792619382973026259150605512296649017247050556980945632141427853380671451153862705258498780644156599153208814659155078170130988912608776110722169116724053738655153086907485757279420052012491615541470876170743454581043814208657296021837795569407462902750908322472701571713023309574174742314007432045562944935416178344123472101888705323262516043768522336005062580344020778797622827168877074035901812548909620060090172215668628973407609385911241729148479432822895675025509791447069418905555508293602798835240484125041063262229773401213528287033575450807106885390537933931427413682155369950284414100460267110839886881423637036243600318218157814827336034531828452120570600278814529652132082183160791345354388667823893421285432754502975739406820702254222174513394265819979026011712986518147040055981042211970452129622750917997513856287689303474990032587118100657423951669910357422104980423101518713601201491462415661264865822651065087815177393179277887710183857184890512922227595535901960781546854247696357612141754467527049323111193496625551459287151277207272697932839740807484706905134501218557057224159826568073599880680945750211669444685883703427094341805551353438083222360082794494497621831351557157550622431929236229034307856206891288874504252621749161886803862250810377155182616768081364252637927516414730004270371808951365051105383890665734905679795411622859470120803920496283090265931017276693848480949511145899507192963825530210230263876497967363624228193680240677353362711625613329067660967191674322251048460923143655030847438737717018298650095158000821810374080095590030781320240320609678290911826527282000196269431809087213567230451972803747293688208020089053192217002040155429940853676122560000403378804854513641758909913127804614731553186341388072666209752171642277797518717885309572733797237500834833278414522698409330516977800343346731747315717224325575226554140224050508420846009733545038411946418568686068737683275810719919808808879943052880297085829684671083704386817970111685758897950326378695352547214590403631322819267115832816689611585602658060194205763849629935277640074598941280395920212975942190192803739891043698964513028372306425510674299341684897963013697454586219308516667519948416946548637252161156133499059464175255845314639587427249849620263436789727082308921526349557576662202127698397278013309783158011984788164359836142028607919963175563438975149556944314295779986169258616003520242172260625334575949523844431300404918319333691755447110398186589428673187390164077283571324838906911461102120006773532648238655197380114117974459365816845944839867028756899933281556457996892756370254292963703957049615496874758641644460353541881338072105745557423590254898492114347209346754354810404471329332225276911620481616557090373477045205791014696280149324662633651561162666309866819050670654617949191058125245971091956709556947795971622811111589140794878184449990576394342174506513623675691348324678514015660038909677539310517207706427629430446122598242816145149045796390619635978969727433601383997816637322449549169515218902332116425858879896494929895068226016209357487702712256972466905096449564934039781361230832368397418715155229614550589722887763217090903927399292068616070733648838958934609922662683501274333122514263116466183609968167620940116614571551976782737712312373515497493998961785842655176197966204904747266438235586515164889162970305287540147689050653444498223031561004398697810300123646234651568992787184081781497708611644941374351848868333378892564219603313118453732349259953718788944331776008157527710062635052672692846319320237587811700322155751063910027882328368710924542620915745445258666447488836777401783695892964569717652124513662310686061712942703464011641149977314802963493723889902302254305563096809888495399024498594054359708569854030268287776503392018846964377725355105349821101421001308735442440050644848684397169007228242311586312656320918660795170425173149504502738612518078728278044798283807834045349161171694763060844182633760635655188084153023464940496228868510491137753462757610464924884957653140644774596266944450296815624679551423445275824822164233169043879830918264003098670952798333893662012033506958763935365298426126110219125903182499482765573106715473534288434189832024932465467287232624538723772878010494597797929052042173090486472039259741516703323636362231085907438250697576551785179496250404485745853260747872437253131050176665923252059537600327883200999061722669962775364655282131382943914234979884404290941333788619934039025126043032535313060452900920476653325472584328178309857209388501549936874547307282642937373297257760246701634261266876675695474695203854141683227605937865634836463994160759014111815609292505204792471651235269346152101996083004737204471302636897905607134776620882752218265316973544761517761080510871454198282698998322389636242461880554604396531014579597853140660859717973067400864962234786522045700403743907059365575799966356986877966231497197177204381020801827228287298231930398560090490357174684126884419212966564490510737057666843683692577592623588596661824470055827968224715534907044529684603089605182521535685387288667661936276914192789929340779225234371946069900875715886005217125513313191731622935430817912349375938156200035962465470469620927547789230105148693276894203867177348690904751335300703573649860615063567853761388780670960749053405503991133850485126813005325711356043801993454357044393282719548572155850888163395137832291022396326903605506361158018376569915413985213911150138682139759700930623203687319484118388432327829106684856672230042933781548602900316707970645009194835709237298348122880495356920333733247695062231686832710272099461848034003647136858795710641714405171532655667872232979289725216150395692197605815192216670096348129977942692721420117786593534478808085922525227213980799597406594606310237533641192318119421241931926013409819173829408851277484328065235908795253583861965383711572210320065739182870611212522105416362509300291270952839997106912566717573106566138017810716411357823448103002453589579082264282013858723726970351084262710231824223332993213442959060313519064342023993666067913974079420867136875029279361034443645875838400849255017956134008361662125966560077898642269919528930184443170293247239929596462331218697026310018481534150242002894659092705397259627315164272596079808525536962637915263019699031184725533421065125682312132741834207112347459607681646885365797807709880886081034338762066377114097879964067959411098635571153381128134593010991791203108840811918967554304484262416758265177031522199616067903947852029623895715112883224879689459821219397653502954650339682689111958195503395105907493958007768904510133583383014116855230915295428192328008325501206783405385999830757928610919038321949577423801084402500294470386712379852322667457079787433195879496317518388896432907162607309557508861528128868967169580934591163580572873210675960632223230322888097445004889728738523935688437022680938169499649545958503184143714312582947932584750579870886331010073722410727615541155035433184762985394578639235433683138492979123921348426315223030376406555626703448306993500019789991652131912543989209293248434420509873096473491338133760779012592806841056315588288384825117639032226546481084707961718672486162627415764678272530843813743062484146806154612112783375725124570943531224598641774957374513250566372005053653857879225509626347562070541094514422559196584062254678398453662636586231693107830857032185986050412832642950256182232703202741202527752180474550029316837393254164817927397655729190472237215875812696245811571362817657683137743591537664299303444360940019176723149618158360499158024298589020076139138109667329720012928442212087873994917795378610037744663945094593445304857770543437379956347562879875858941769219275471569575041648794311760823356146514631952488626657888746967148938581229833064662098044282584482483795097853740199379298158188686140468274635554354971701853057471060469967354806391311552038392496989213787908518395621211841629179838573549729124317445880691264589732432010786291859772704547237434966371909077872326722392738809931529385681321157615314901727705515178444540655790959663185384860404024013945338592764839201242311342181830622302899340227327573099962603696545799931944880373240003353750766602492235823759816691965706363168816018320901664138773919589533518911455695449516272838232221646019811153011753046719878387226363622721074222631181463855558463224582855961653918038790533535687966283304386569995336704824657097035945887423191536357710163018059748688007883447766744382028215437051954466484602136633913680828239773148659140655022761069701643308253064236662841535034073798665620581870229095766904609982529237654223307240571588119131922181540170924989536572083682315673171991454020631223735995887825679638813271657366722348094049765851197343362047358143666330021251124117720286132566307163016014597023956413852294082253506968304175516004167310847379217860756275557204776405547485375519541585078407723496251849977299430212086684073832196657521942349259958398431626576220186149369419366844836726784223710154438156134920465783932851366317376960029100309126025674890377106134639533679511996894555085323785277901238935621298590343067715761319328094790247884052192176827524866173817736802234600744761330691500153546469174004686068347512020602857595027717576805328476700883704296290780056701305194754096659861815463760147535742795286247394968079770108239833665613590098670561471433288036844293106992313583759474550442764202572026756224234077568639088263779283651939498358665811033052440429912400112377001637032378101800347656616268169069106221907975544558023512510865941354577772762218144389990207406820669747277656427604808363557519812117974398818894078951811015691526992366921006105461069937818376846059718270802541584372049009494359895411088197548034474013435071042472565341749922175662345099929190613678109853946958652168906527914454857069916598087390545527928398160836553177007644974232191258049615161140380838906205809566709689216015488552949160069511238932425955732849676038705069258780395609143599170102488424789475115894615754495883614550870419827490670143830847253889664951761501483447859547929442510800882813812601066450461839422518352681103211454197359026022708509564434052023978248412773355336399272455901086407696154043892403578125159504386694730203626273046000416133042247032054036785063909911297118931347981088796013620040816383860211346991339754116170721125065702825802281960631463633101632801258995699081214836832406624711985437785164550812505041928978107570093038046410376432304181719385524045293280327015067142076817728979568706867672062046074915584607201662944347751297693145464646392691132182203523300867234070557833255963795868725056797849077042300173472480715374538176269869244785323654042189903190369894959492373176981590311390356689162842890997513621433830517888231916904474474812314407491291945626365423004034980029515364214226025398542667163883117465673654957463063516482374676433733106251247891749999408358362990395609627440674452470635630742758590030839801327680185173246554053996637858642301838822294102343486629991945163251367579238136498523175446296138464768763071531107172107498526606329617901837977866971874884046844648251779412766608210352806528961865649920653871875568539883527376770109922315295243047984809974174271113998823090075048413784158879559925700759642169073721210672956464104131496050892711243844898250876256338583141728178459767614842131750553288976890304255499916489208988052278166540380322448612301403051509977018996555518513606721642045342037964913661341011234641329857295090259673168541906240095483385780940865639482743672706574337931881357082151344595626857740623363987126564344061309569348680425152505321645960489088164159948304447850457837585029746529938461987837836890475862215434066295270496395004712054244378018288676607846042435619876441463788205504113820023542367952252171193806502093447159830319804741884735165431929703890374112633003495227749074612469201653117827577657857242124553725304535598480753900984219619605211366692069637919718122902386856208605919359624145004276064170470425101596635809475340565522299468338191111556739851569624927012628369174538994393955375182437132655875102771570832176282704239183637116910091772109867860951466410376900675208444155809699452943136149449504201922111645034727767911192559483118380403701807987237185372356066521901253845110090460358533445071522916121866316960050752677820881916838884131722261138085727378763042077858371863715927334036938198805311819877505749106211371088806666541908345706101807864456710048778605881547286567253187190849821309840300295244714045121724650009407433393446996029960649557287088130521125065768566989504944640667091526172338824208864965812521984982362319640174904175214711324414263298884694659382906223026261561260043703704886522970006923186183870249838374388783198478342273580226770274797255568719481814308718601139346922819610398448650169218763034267209372417981127557262252720539443327142074490182350961219312155854340347535176458981988806923962048453103589882927590073661192749826116201522540895444656689293938550886509569856111261768989001633221281255675469281044322750127945332325359614254750280372286588765731330787463123450876320571074298459782493411258837815463100954505399076360380284218791944294669846452582392145030969140742235508403958330302068491955749288108957087140807260289506733929751136474197143437012577343799253149361246294820306147377789807089067117177831624673687555296351236300581757070954590382896334912776481158897611019364966640592935816447087353163472935294435728146502457762266613300737219036589366958212218144633383607612433908872450997062722969945288583272303464656657638882127426917597127823313851670492854709997726416040883848022379176065375983446032849128413065622294628288005423421154344324871251673559660220857313949500987922805160152632152387601072443701587414078849814601363916255139836729461962797371694886494187984189085273973645942197422473038418694937146796018211505021937057250396919174078765644378443352635642856063605771211622270086893843905715043950385202371711181783079264111624507994165327477993520955952959139355599954624475578713074687015823064267486578749319142787589204502866174648476447696457341517232828243280502240615382877867143925136476913326617586732859952764430222204119200848022020949829257658780557174538448838348273923435834278827282078327557711448912212087111456938365435790429686561670744409158352862316134419330834337509939466496820066782305438619631300129355355251856756995311726008101337939220814758375884217236999816682891406299817051406045987897684292463639879364510364769338115869764522795284407070982529217065809423199709478036748835912612299784687511068541696122936590339229777307027382993305578520878991605398486978934331648188176667631873394137017779338051814227493350040928012641173772667084618858466494608929813909795874538087780829040404103485825416487874319263318508461530965387103392856071955796638146848403298731606413577561564066009524335426328899686473224365457621836638284915229682979233994501267263493593989292676742258278991177420050084829594043963510339292691889206568122117277463828922515845575342986766550548711133778003562067885292231224440166239101001787842642934962768106225841383930322710473339683719402600910898876715163553480172648022818583311643134113896721217299581101183749131129685711619573258339279506646847874629825927732666076998833505900331909349008975823636373907255116341891398236096380731562567045563595374287592107345111468556102766091338869256767285428920015664132894649865991737022563577669571098351125280548141566126668973682563799933892745102283159599369444492293220663076408007685339314838589015217375950854720790702767861266995074604359463099611407226139897992793000920893837616409058464623178223031982356904772696366004253420639627784277994819710147222657118096793343018747669719533667077707497327162396326936989387017841699029625049113955514340743390760633572567334367823895140238738682747878435152561497163290341824578653359547686293048779026856180371712144680537890889859063625314475309780053477215040366843002207058119391312999383409320142115008791090934291296855302881628360062086033005038195441703298353249194370018208688332777073279413573749999548405573964408000542507027165430459447732118712747377021769385308936798985185637468269395461321568995484967274854067849281077684850154024213473187274402967447773735855404048412734075874023697042618638327745339036015994894073689189547013157834305646167020482228869766117388080452421840730176803264171126014256144575334777681431726038619010272621173800908161205504601055272894478990631614265054944757508247817757981350690620915646662867483968251977637535491128634752179530798692781348630981739895210442789700419766026514497066390685757678863627886558847369964165880054254139447789865610303958713389440271087573321238489834579786757269129226722321751013241793575502821299639230357153631833531237958437808711681046422686228141443380967481753516391589885830215076060924576640375639482477069738885010969137203825254207386959721563605169319875791510285520623455305272810484362077727983673989849872218000922417282406534812432818048415842327547386420712118296484788875405432046872333593025848611065886822049001416307484779813933675860247421221231993743720184071751270274385482457927695158387937147604154595832764556221554846660047408140238946549113937494902653240684657106229407214125742296701212536055484477333398713793209370128289433456398205041941711875411815821543892624867245295203248584901488633901343166344589311622165967180582105053817842978360204738843142713604109472072410281579588769379705864969467958621512817863781417606349197954927126663399474092173586440170911818756445485609404892482896663693068653094105510639802894259502247002302059454232731661301280342571342992989644608627000666084310285862202347225865705172842826554827283257063007073107139951233829074818153966504501338290055288525219128614304679919885675008231928963708140204783778508646435590931270330095949382246894761858885941780456584631012861307712862937812484515558750464340498632932232927775051137490235777814484004622659030352881348993807716752878966406055988671505454443987558833526462898482587039733300711120201613174969286573946722856146380672336678705556877277248875105449626002100133294591962113546359912815595120773524956546649547532559898108767964473890465044076252933232588959467575470622129192151834231848426637185652470734016675259260694969904861836103617043983147635784267622147972998542338434073574541436880081935086381780074648861921903991512420856498073200789907017046740292802238226475393966699305156142053517221433071729973567694458179743147448433094407496141686279199288698940450999403758436895350539171752005512912541578166651811772266082957401409628949090671174527042798357692460793409346280173605611980119938090173932201724291916477431714767036215757043747623750157238093957390808817760285844867991309067986757192608572264077379515444080416322154189656569555270646608751182651724503867349752174300800262961774552284224282503053986797319401559373563642537350661846207943662705700700463479246760781054545269340936285921786497525609445165417445419341540472169984395830721020187917357956692182416777476112278059735626533554648043208535384836168587805781637229440232188046960868722470697039848599262816704438442162643472170297445707180898597903204643098798174995662388184569296958184378291319843805450390128696794711224225883500456295581694580453731076013400219596489397131909025890532645452486640059790686538442999684204076318536553363565930914818320562370037451794717859475925270346217558181827037776259360457756925780204069772543339969503037561230052518194617024575631138628779066451499483485089250114126012025213622290077332011934807633798902624880058626358719108992398491739107771685977356749663258233613828195535828943743929775688319132711740574792519169516536869229663706593692931315799685727068296051212120589345103427778924532461075309404491728560138250676098902493487770043974837909044677619305754255933523113228277122433022315159924957534279718318284812743015188199409964303131583222120102707190546268000405132977825657801587313705713328614847315516301234326656815323038834042315906146015315230710600477212411731293661642157488300570680056573720778098748013287418540986013705255597014430444712835429707129276519129241819106171578749545548365523211039749520037005550584422705796396237258961122267184641540527261981460411322820130816925646675039044975451951570996976866513058210353961150732057775191173005910675872947572008801475506275203588726200742497876418864870204627165713879703249244533976430692113797541049469362026256443964083526251423421206698822941587624192111625623955050744319172425204091389287799300754489111732142570725785205539401544980717939035676479499930132225330312925731614007403754270543750614522361229585083564844700161085974188772134271640699836492067945566653260321004955381833145592365091161022629177444749455804994617632596888671172074608612044182025562321492765205854029231419076031213460964032400047402736464790141845334705672816705925639105716679920936050836132457857211953731750406268974364142353608114923891839948778245522551634202215730521046913026523290783773064297012868878985223825394111680463293805787411346500684634491298076636286145442046967165861860275596063077315302557988635096918600152290239053479826849543276383880566995937549451484030970188025242580188361799274566474598511112320584857864393301831216429721605970953250149135087855560287795854442131445800477566941807475985359357467521495611347705222464594208304713777973132681871530954204562133068318005420604559987057842616618014277071958747345629235449499745713566383513673233905617878793390161558109288771591587709765944613091544153767462636644244847812822258156917593245001382244414669149148684823249905706394970861991869788338671166751142435732673570674449510231245686901548939459386112055996233583468556798092365599148334006581795854424017303074222102253124112041088677827609429348124507856763664561079325970257624997035904575272431236937536978352528672456038800208071580663687237619574171012434010925899323136121334490719356921989358978183888703501692740073354914823624155730574851315336909322423124447876944824277216501678620665653783635660188145948832396389798999700532853285836151119146527230874461145475499017363988923847422823558787733521306713283272767702381265651302548335657986805399560198717494180447796788441684954989086394725269118672892034240578541115043546118992285210713571426576814239786145800530938005392644548113421382452643293325991150406023537983128144343075123577576804559977852232932373522946055489736112481466648545480376635173885997843220990308015829393382941725697760287162162714665591777079915914483250536007944730141648896257901740666300668648484867361588153812320937362196001500704691105220850651464476492130560049774223845628976625339027028511001388785470877802926609244369111519275419579563963097800667629280474508739822057768925783641797585488611707561655439293792231848976299217650150898889151108649618970746767866819340935541716216789680863983313471518632240193833002553555641773245143134755877935482797143158191012280789631702139937726725381904295174617268444978098507805458743848843382878258716901598683751483760806662824662658301998267256808981536777723189423663064291485813350387393099047788630300728534747620185073724020251427405693314683791114650658418753947180703512061006899347175941001684825672322741027380641148060759927847097269517476807906274208353768541617200199765799743626757293079535480041349444509657056393754408600326515975043525923153076778556708880019502065184764217425888834076817601311402647779498512968876257499656530104683825988660628197617603924601616723184710176595102400589697790276443487360099441270921771609744863606673525456247863896728690196381486973028548213149674188149989418206116487561102043140439605000796456794813300414905142307897126156971838781717541173455936878565021173241209564899895641492406336805629097126712768933788720074612468370453030296999363436869111048027607433379505093969227216137479598682553363364768651341974230507988725432881910820131188882640807824349734549307853080066209779313449526119584970159127196579153065427118235726780882522371645334755355213824207137696113499061214361325390339465789475387495166416901863061782133619813166898623283716400296623278766477848261836676696070907180997824527387507905134720817603116522455580489631183808170491130388890197025927275775133488680661962505805000053881188176957816302062460796123673471476479135244753041464816426035366761162842808188141798299416142050203054129067568294629682955197656915931082850659503568370589025319212376031614117767939153052746901832283206731375221271083778163628312367196308031490731813067464120903759396112135070238460490788050984655117110102453863894647617474925129100604807509675926064423319021681477272159499219324365996034131453436540299195417079725188004004606737561073043796849758226113700570544258862717623842721537850288491449830364346363153892444528937860917927491483961731030854526301620585788327148039024268594474479400684262037727632215073072162178952256750495418701641815735023759777466324987542881884304192902009896971517303206650964776504375277728700749064299667082142668968661170634155637711355216385522503678095195308498271232773957922493195967127580457348414022829082063322380673680224496626007951632458172927993919572786109474648355264502855039010778321687314426526448751690495563105820367834895333783117780757393807186274871391576271530520842233937501872607030055762122334274707311479895729927848409360833966446975896166746010977527044546915052891110220627166734592425188504923881084518267997846351612783519367557432713808158910991146994436369685810486171287876616356550424327944671158200272182797960380877191854371652236734615864222469150480402945870810089581568137195925929332173144930824060227810540101125479648339356434267642583547277383312562169436763837986109599739445709745673703502252843117202180569460754649994989113567931775293522852571594842067542975968323593076901563256416714204587472650143853189987119973674544792266110615918804393082592314650081751436697354282813980405549135197050012955206653422684407833516681181952051018471693401287468094620734991716833413838052219917560427263086101752922662028184989015619028061621616630624309041220765972945354563677706118004312514246118151897019319100069144541126726059622444800047873161936030098944806609783021743360087258438704746472062053123862786532522474252008759257249537622236531730040690856384016222101592212540836626628540085158597058761404866398102438465006915891319621349185941504592156934606351808169839646270670332793332151674614226444858346280531196031380672952507159127325497465363492824496169622434071726880530654187273483274754156307714416282108035395512840778311098180417577811209020743774134220146093745329377084692552227135089064558795881414229739453399921497869379583571257139653854610903164254913272762817049637189072772445927217717996446128656159831086399559910864391027765687785624703066371365752230509804096063924297019801489539617478581019200041537554735240838935286319695114930705436831605507038934274497462294176910696625403040546733934128074098726607584759342005221086496932917203696083630312255478108662956497494690161738407976780355897113093591363872169482676537431132671440569323061538084090526962084731364448144394591726167752260563060799038593404145517736214348613064135686532762555308003460224616114854495211764471367308578566752537336963653700493667553563539857267216536601110382918088654149644041007406324919652503549610186071764683377221043854726036107250770240403507993350642270023476190895072946456716922185868196219114112713388783637226856603814067626109176158213533861592085213464000249066651115169947281756156110095352399402418575239887976709952609694295850371858272895967670997417741853646973206034966891022496772619309109106545167367999753911348576488871133054341503628139966842153431056974459638558023963268381304418489401049149975315975861164620020052082865869196269959215813723579178670967699659546454017290828075397077150669929345878171730831522170570894593663560493976249769562937612506165142475929959495495127366420135785920324953890452428192543344613318357911338458295140088372768622510625046080295099943826987674669051985276225031679140868882356570549248611891447326275622941701780615643726213549847640725020702520737198796809264926298752090307106497767438472423858105371108063217422351563704159132497352629027538052786403352572545074312150782263216428186756523611130500585260819655714776957044533586223360009798375080626074503162085225041741961946915993957146459203732766349736141581522212099216967870524458264431492305282107995534190733958930137419916619514300680679942601155747168328251976292551666374242736794294811499918834267213784363525138073808729910022023344647115676529404735809274253461641902188685666721356810466855554674808675720914277619802012870918156052319391791197909826015785417873842135416968106534905246092683929883992986542698535713034685509273454740577103969794055732908428566904337034244118386506922336020261263457549585341706932044561102774252155629455271950715914909671336709549983949069459013752128741243903937577936665930121618017205733153392120395250074913539441923247169047071255340657326176683856176154604874895861513247336109618448572239534678101910632622951777137050606808550039517444196762407798153191011932726764143889990394743856908020108708087870340705947257590366489968224038835887536423537489472910213524346691885319310204240199376675882850063245528455568879376644289504116736372797152906177663350574937164263798242045995216928316461626386145764203187850223586200322584475698234803012205953142830269967360448218025450859068520241069702358043585591229192469395146291434205771547617320215994698549014589167864265433896019289038642765546696082955444206896560653526303397379932078642478736894152718529484351494099262001451438025743406779731780758087756905201081171453516257018505535331988621257918033548246963526783954104980425586167576038665240157371315663457344241727499004139071147508391499720059345195946830771068291253377343651423308373629677651369790249088598133399492352503750179355367275604941805147612852610226415960635951980089411668283332563858979478658991147012714726677717079672615653163600895248396773899892780611111795590658135834362502894061216946726275058616108265552017529164449436762716771872691139627182094215202541938142728839269223197854717625504867332694874301672451087138360999518236644267186260820323426634587023736656036861820973339872369144445393389940500124334878881940112536124995478006254922002496524917641005134133293272852740441227161270179235259438652932609253883802965241811622521685241077336827145069947560124468746327181400033774236807694837411813976225623595481069661444101262083140499345785097952647765481706850299610611348674540191743844855029142332804500279192966352702589492913823023279353707704000319260833671551923341193061885996012535209545168126653488870239539727355491366334201269629270387549832299931770454101662038898995671750095550299567272773215722036486949659974451636736360300798450505105284683187548022325324423191057203479715046400117360110647515126318695232068977019445693335102088866182745256732995916813531336948803933532212545141349293757350300679774615899142131536717276919202684046554522099293394098820789455845043576874929162023242062406203406308861837677540784402460524266292004133430334766709224958414013348898692222757822947337561359126287083013100964587206098611697834229030876022482543629775206846642983618919119732760265800391080296662085970644450035317139210695316123513555934597321760275311753993033231499409205397109679857659484035103979506018042632642375485262483996184818265350120046751401772165889696122978785551269367659925754241011495389191771969787542876805957672968905556058829874526322529387058220856516938099381868587341976221816185160339582382671637736696998201952479116034863418202513953446560214233679032404741305363890455483672248010937903965279730036063122547386658208245715031644405930042675763361623444411256567479668639983923479087596718999794282288913724286495560477257401657671388288635515663026951258170132565963640813693728769860920824511413744898679037166750141306489059847608493560187863966424449414870186562336542316706576633796656952738687867100841379219021366020608838020158733363114060749855563849257998597416384952635035118741349026647338326308867580459548795150624891596701413965179009055268897764499947788074389368745137735029285309969999453167481775404408574758609213732312953189873719072534074301219503351064903413451356728080890206221572208765921744516162613964764472576999783721902672884000273548148215556757845583338805808092340322895091708760944718416458535081233939326762169087255778318772165392884702128120134580620658200302858996168249246638810528542740812559887515325667219757394913409545694420337485309593680506684434907556346057902833090404875238384021545184541104907883576649446802020400835430650318291634765902319836969966203832866105144895515561311181042641985089668225431745239393159151741225266750831628963308083903146716386241074646287761705129983758726780746106945154943416797212873490538143341574128124513128984418840938509278102102537889235725858528771241883553983201898666809311543927908582132837203168396641131972193776809753425829789781833825283914476468840452969564451791501931820643098266298386413383099381277880546917960219025011593424261695801803112083114657937774927645217550321131203166994433201810939036182161385682382139387013880666630768822428441951936405955109140652917305507593672888780394266233065622619212725129421994022782155884889797871436294719430421801695840638140993769825193324525999294650118456377117717654580800642295111770076069285883270089052106805237936613087662892116686964672680401917132265218003594644692551307535860699458403773520623789695277048106497060554222255772937556036417338134845607949303786965238000011264910624639251496633782478598470292012155298112380656346066276220596067385076225267399043636674971043795704159956290212524235717802991788536758616980362044881147691916912162994871515915479247254826730163907860592999108667874585442626886275453274090173465249127483762471568051098384440982889662129988753680529457908494845792283818471630437306604719973560236756962516786759069331619340770432032861465152998474814733024704309317348639986769609294267113994880288518607523711827936591695312904822222963438776223669780463841364611209924708713267160242396990310095245689896084283403667876116745879181338032914898985502131356297705179876438554796271741273454781797280250159743490737604713511779426612496682751407286038635940241383274950868164929376917017231804625374474841808896336521818090843967389280762135034397308485734532348090115251185418999422005083488982993636662707010227318065900814965619598851540766194685755448202030302937850880242651938125462096268100222118899051207328585504332087880933281161797596118815502891674281884846677975121489207559273679034466491236936482469494307277690900830396854218883127902614216893234405030489255955222011605945691600201248331862950375273025452582691707812126047182181107890896172273427930558126279635142388893638803041724293173479725541308404108333774675894954342007495872313315119146144638743563901148881752116138709674538429613943575832258915867795214046395291494746193618702559374126749774674745800495711719436136422084055320453502086876045133743405308847697220067122069387017208187013256934544591726021688893122068948493948891844374558319668294499138539093785550713767112889007014647861511606402132762080566196688789213286410571241934422329963685705536531699714128279735837288291065374428584273657377601196785308257567383921460083414269555622979454714166826801346475092283529408796752322012537253015364132206648273156769597520816293534384586521346340730481504488524854911487946521043726487007541503653495048390782925017951307803240700994739886694175449422752145079753329915983620106994001508677596583704728114688847159865663517220368978109328739129966749250907484299920949109763330903563550386465185058850237246823990228028774799598194199370758678047741982422092993748666103278155334340833382467915631950043053429905674328206538103137905830958198042227125218398926029438713887550658030417428403951413709540839021405187933242362707788985525872978540808160816340596903906504306248346861242188788330554907840954358135567093340763741020382957107265396173459526160860349280461783499246650361607991558821460165918707986518766467854483357188351206178954504933012694502887241511783985750826815668261246318256533485590553415521812526019794786314566407343157488419650538479567531003419639298679306917874273751063940948293614679978058245824554622098730313843298946049581959314719437678633513682465496168693363800812311088678154649518629946165247633830139509187693003513181190617977323717895621153035942184388895655182124011522106881490337309686873073424796851291556152143461031664465881196145311710865228589457992858754024442879697762350083790211196774648757691898104992522292685052802960276153081456393533671460864854360297498367813506194639127147985461537116940915003354637266966044657653323913934504137900752006277020681571651725006904089825687076486900113326085262128383263073269442510333919491910609992866010721130016151361175125772823242703673262368918833457968433563894158937248694691179601751239949321671929081189827424889196819727872491820809788118893051722295234690799517036906966858815959300995452082219882263173005677835761230462619771829863688211121268014059901781591002383556967579525060263762730167553986687406015455398639574233969890527692357130491310465604496516273457129739263815978228203276407536641919944056535852669023596154433688419413121103146635606648098238737700575887436610466013436052898076100457207707854048603113352757819735385558281451275277437056470162935592595233323150736133908187607837625504718845780068127234482503457273385129445346707075497410516482770294918122851247891384921316030758343118034647140364652261634278269765295154359583913329295186101731682491267877159514019567949363398720030248314484215992334284460503641897503302552309575427323014124376589151149616111947275029193014770048364213588454470696440459423216711637445957418600569024714613287141255694063278607125975296592329764018986337480116353815847266117435845798215972096795786261735374784499957335945422439687976779400466109683400309943843599691567666390346510478125933497225519966143711338771829731842445986120675078641987365824491088870767830499454299155347669408611166818415911464125854982964992658833247983196616131604430742106686058579613237209773540062613454709292650385060691693474010849082853399649387545340054162839115582217019064648072074087198501893943469358973493260231220634166001645310463568806954353835033279021112537735222790321725259895489458552985032580890744294067186480795688239334246197805602921738548038816406001210496083012864277866068912463631415992573468350308709213838565234352383867636310727508543269348576053130404834561915308240178810597867353721745127829079665244175338227511124417947181582776649040842639272940836323669384983820161635040715376325610256796861760573644642629080336651914687015479742015264163866621631236234944418884985390705463826238966185397553684978093408103041234616397565080864252784916925986140759346939731811323610254826159016751176407404048726358756613151975200882448230523105059208917065158677179385166288840948984871489769330579310768058753150527119769694127948466409318016326082003694189333252945771251567773678358189789658399798194108701118227926257641977240753672679055040437023799636882502825196994673427189732499531017461950510252632599914980036060733149042769106253823361332548310477411667691086152721324703422944102706240492365790667764538287402571450086862718228686237451344792153760966799788836812021330593838150908982475711173711391992614552606596601597088983206448866382435123884572068646894521083981286212137885343480870886972907690204822499796251804847317264286001888757136140227439148090564605159434768017587532191693438893478504379143851225189282759137867152242063819152298921113624645525669003533545364861852956645893107699882540910119545094750412844650184346861087771480908557799934555757707444066669261633398357887369934087591858997094850577551732573542011223560412937038704822037897369214775870563479098503524953867338601852011789890955028129688454230461789107022837503962478312271644163099150476096766376228036376399514797435786558910074026039959663889372637379589218078015864704659477052770894815384555733169278763171149751480160355899379645784160829864708533936298776858121617097187546032637329130062923352270724273151172178577398024390540391228157373918266370430649590965556609305496585562584532935558505372206111386960187267466614617860432674052552321423033114103905996593905426648009201444331767095256635387522176280758127376283050591941066187707140702622709272413102700031799608970790738126575063907080948898029874051292306971207668711995474961864257969104866909179746913939313311636191496757948502061362735601020843319115941250585802544395524754569487960579892247312078010343419070908763695710218893454763359562336704787489625771540176815517257049959580394444856059896543336670060922607186082214638984290199231765431555762118044644351671278740788806393768493286374665993743549537297631865418665962644209887947822223113521403018108749945949708291367496516138899904472984206600184388082768633301676347008376822736554377075207635885672046932429264308095911309683102089315227435876461688841514110945018011237300069980702980697346277583045505865591865883016892768938011992654161359895836511106623836085482735744785760577500367787579661379711514081515695804934688163970752983156845333096625425325160870103976278237701993563296026724754840496775073771806716760980492656502359488606265688875723243965177417788928341472339211178630673972132660276776968524985587825204395323923526055446111220797401454685780402291112168519434701982953461101090856543396626099897712278244519595557347163744954907892723682832100373797302114770513132987100385162511229146382205252958217335856486868852561899108449698524498282005193310591540288372768330465194650045190342979771604228493315132682155814564584419835253577921738225250404783851403159208760788116958551209166748598278083928913696755498884756023756335393367445943383938196708856009290392820785758944236826320438465279845672318970866180487029104648988143502208932314307282208916196388276394323524532164555760548826559265788640633756999023261203173110234247900694497605803834431615339962355193406724566587496917490022446391127057227848284632890257494334712241274344544036547541030809370540999994915595850803746628378831274519393557419996602930345693271202873505334476428372306929905035228777245972021001923803969088236569220363611374268152326143084152757598147118731575301699599040256919861292254322137840657588580712784356368459575378174210388858120160781308550209161533073313547355752415793104303916690134317972773104899204089291181004798810830924193390854335747931469089245204032563178613881816595750405310237105667539571087955533636779584324182470593274008791343924627229697321412289628269869595414236017851895038295376764779386599669445581003909261941426843364854325012581857375899363334849370870937651482304470086441096028705332710794545595674066297992687944061874173839627771007364640963676543296145374453296470926309272142098995056859736407384636305485083026252990584048262979880280824947842240374067225270376470629149404697333726037223175044351168318247551738096820435102113969904335066523506536721454482386746432133373962288885739566959821801081133520451942226477176521758457788699536548329923318973711074050718433016103324257487583841660518513068278437345101387863249894882507501082301856350271079546902818410565842978250703196993317066067891136823757356254539224648603385914396031449382350760263999035959566578548734416494504957510107242646400459956789844619960769519841222477973065899769384793554559336143637815617114303701413902984441282111322446431281278412178045826866603588158683354424460517977280002455360478368484371971512970269978696864784225919350403717590255789088981840785149242842071038900086768775318765458439522102834768273312137752221959615605099987001221958387997591449345577097615392804142381136218272580369567740365514553171724904705458125384516504268048845196882547830337617872889829873604179486805517077724148522815417189698128417772296344113661262956830077017928365161109702026993607369725626874703496183539616898276046658517098355636433793179006170960817053653455349222679445789877325416919924059583071041952422097809681625935357908312316441960788235692364024291060324846870956330621077877137883899209494374733848582564660914585945768758765830930251388972422935954162397596590361816512395402008790423575884161318722551789799303972219266396663181802719795825152415430431833250034778863538150813886884633397084321032904657564220931624117421835371424388022591608720586306165005814489516066663908432276778943856902255035197737619807757118531680264138502169545079107882757850841817651059479782645370876768491502851305212040200827316151380152763087826481784491898996936902387643399188031137103897733352189216685865112784294042586560414394632620954700093329135595114024283997332906541733902056185993795213988801446503422736615417284029458689958651828070385583033840471648698721392911014986646196709113397068191851954063879472516280624993706633103764487691770708004293486820830472596746516999688099432230859299193606931914952140487691436513895534427784318892462000969631220444340505973385150723062440937056275384058501401843115940442092460302260928257063808535604006205965851434079628817227000569006877890223529735913707649667736880939635696345811485201168421154439557052907879230378893803000229415583178046762267098542591531671624332503478076891595656469118642672704918257904942568140459497088658122043733200893238764661222690424985545310666309224139187132106935429749121853884714349732075398722120601121523302924043729723378356180329735799096260393573652964825248140171107736494357979592194625432177704389945073509450161585492617767341461808164341442938202901254003549266176049510050082873505193542451270444930008098868270441941902323224749781383114151725339548679051843999218548119536306516295629639157066143277956559602956944862372232126779528673703108902956792917344345586999361886860446574554104294669491288248822563013616108595882239977909285171174708738540953390845675669673120074440166405873415287875627724199591820627801789514383283417487581138247438498781325583359830036047354802528464259037895830266355331113511023905051903491701552143854197005853979104725677865080046565786590134915410961322247729422204997948320966594390619644785013484459902438734916017122074530211885868581466559382974254490187224908907982474167838059268964078794952648286433105304730757456256160458572087048030765804420828760573205738476160872853557995887892684304636469647235947254000179567693940146486641677905512123977318857970392821032396488042103283549622075676968019741715120611998380695820739452716389954120453731391824362612135844892473792394620983728259483162759211250338902387737804291159576062199519629312482004978639043554980225974898292078761268883501310221457129901401422999096190895217733553735455302692638854107728008721884432330836468625239461621406192688124175142699828180779678067549911856004079261308425058548391963999249910851658757002493908309084218853577718491707317405122000318352388291331583473238053808617207012583730802576987374512008935914252845045649922725019039691405696733864404820604972042156342798979637512408491602679634536170877598084185749300834850882353234553229967915707149880163782188620089013731692857605422775053769481956759896915644930790550048480095993697488230027397814896339885210091442870684212900155142393322822609412729395590308220984624015254982784933318423610138779507299641961759336497782197024912895703981465760218169269518546588768491497054006761171282370628873883459349715144497175183612693458853893146548756626519742209642121700418102877736904519655240727548915641239338888065602154022320867912989483712477916135442045732113726429742725022517866208084361202044955513882832047009402311542225515922785108936837103906235333534654375291435337808275120248703488281782968792137511822054525480926022120035520461759843780030449955867271689078785670046092416263349226229572975674395047747138858491599167876135485869129012483076182568119390121526684249562106501063042131321717784950885772556049570788983930626388541571755588202838245145490864862646726696552841795071259551358568902497297483573116503239755922476727792797946300176465824302538143038211866047516591733238076522204254738599261376178863016916701299884502136115821343000981166298447434217047141527179038784706639495254755084143447681998110080521932694376817082240665097486586504024939023438636846718385036422748971071811763106016597713795433650212896056888822206834462169288655164005939211929902589366477675272918683388444804116499695801377670300619584797936984542651383623753288514766501400300812326358008112490869163744941506855376296150116415349152973862671044207837655843379062444429709741761279057330389387940219083327189227126520693366234075942474820128025257555849092187632380191830627724714735582195893044627314451858558473980664034956271146152995883100260494982385065364533455816370410415233416559025942195524465457542608507095119851164447890885444427520822809900185914365308781113914723400819798105637059919923788353013501054962271033693998462718199433007099719469210517687682283531501914561644941221292185782901623917041774141980404529357557232472150153766172235168699609241251800727571306552485393792695577978409342941277897747934017040618600986091520161149895382151080646963324273097196649129628400329325490449653870088292254802683517880263459690858298369713901069629918347993579784201932377768153691329033294812224891186897784054089694024197043832732303525360325454453008914319374414619831055948740599513351178308601128709573719031624677686120487294153178326039372397554836600768398118603241699874512807381035616936918590032954523266517855089661583602557405404606557437782954260738027478805225742429159367507053600558338349159623223080281856137687845009951248137408022987188913369788373097623766285157117050520764487010410668093278991880515098993913295815539917167377538863328608793869724385497546606662148194056693546953933468927259921448302761197135348148500089966478737996327605987222750291885644147348977422396084591326525684441663852923873522445378647686960254660223271622777022491222154531541192013824938076341527188325156192450013799442893894182739888409260688374194278409684772859956939308023516942164970261920801754608112055786377710354058259819129491133148119018978076420056657336006082097956587470929328941979452579830407819864882274202961106248275046537533955015706168887392742532447928476955164218696805586516004825821719747174296170161618081133957887728707306718573640328946885950685878264729906503306859363527258684914502356988248661174582725529221579116945906214379434201542776522061974211164086608934298745142658099102404403542130557768642901399629228175779321090185029130052483576386784862972633744386430333779925009367796430052553455675804684294725780625947920555373841661354041422047206132574833040954622288394000400109573521470865412960187938027538765103168438899735021974864883223156120512829697758110163990575338273761332096830068995863548874126263020309980743362325186172501182909013543244563730968649724344701317324946496368416504699035506945632834877164641091788032853317270271275456249316343041019221718826432503277204861097717632973736401321380766946512009012613350647084171216356370451918758220188727005383065052395654441058658197797117541562298022017393538977372250210224800658126357823080157358817188488937713718404583241343966180779965287921979440438223053391471729205607481187845458299024966768936530589838445047800402179105155596363196376903043204595531429345929256894851883390534232682127549347378840736446592740959278915324917919855833040648666076584297637090051283589232925415358522204679687963733970884606887686710521653017505567672511646574757557629953845039472613856657139658888447986125479627468060054297163538895307524170413394427736707785010237252860922970492835234909345397080498738480398838061177433667858094399176014897723650598769110209838207012976593561845347881799484926506100369234430289652339728407839905538247795696514049568089732615406260899401851105919398210518812401159729310083936022106636963081612984408934827855386564511070637186198890470662565549450078673068412658392847727562874292600997983278223443173803046333866545880352601780701373136705363704961718386979947898549332966631833993420312604840138609737415667319415328778290905058572855459172341967432851221651564034590068513450178076291755690924284000110608939904994270145524849556887718143557324079259931234204959719756237299516701332828322825601712342103811552880147855099254807320644204788003737194034097935937055730345208363110407726094291766723147238262157594004653900723426438773822605032230240288371605220222726049188624660466604767462019976798034495319493363882415207660845615853592423487364412656239125314791302924438848214338585659850145684246432995482324805962540097166457178650015849616199689890088109662841559697392854827839872799990217525766426076250254545945024074807790664868230941105723094247477697318075186375347221806206981220504961690479901925804242942040922630319858710796241192827657331285369640082693216916645459861160569163517670810097817393741800455557013406439752310618043246532569004203606968575370942834791794625121829582481189250113433377007097972237266465078855237261598091276823115742085469879904079787558612823919520762721867009127716520074020556457147104068520955379949886782586317218811773085037797919384486522215272967627219715972249719456095951577462311224772169984031033047480320126752762859541997381235832953758346070522793366015006441617380731863220298291164846648631358217169869451931159366494790456518538225642862831687094894032062284500188454722096314408721175258845352313127397120924199078751859466627828345520268609507341692724019357418485416038784867115797447591937753174116494275202670382766488320604843875345984166764453112904718071598502727026621039861028124131574278484761359763640898277039920144690323866750192652828974647819841727504398073718899879225316351898720256345422296112019684718543221963622711822818624083323082584137174366612274574532258620718990662179629769685105194356048435339057464027124889726724596883823506425033467667162551353087013306196588465220308094686662368807061944510865343027859136492188476715515725014962898077522933559496523366004251314969640090978237949404835525225518834138109251795387971259482573563535462194739583127117819720476969217441632308675302887346802749246864798811521374793771969025113916244287882958487727706387307955518914392473369735652878303403735794534994428456938836509324852006044883288428059764535232366870966280441020494760958902948297198706705607209129006616119063363132488707664231476004279466837758034031052551518689117498189969041260576575091373346815008821179709987093827570623347503359428224689002234113726601638003274019149521554232905966564143286039712333460689007781480146614472451478746310519636534629407179190257977835994848685680147017218083757571174668150532926191843153327363809421145611237489457480459856688745094629500152420381219060511144110985772045677199844932981273679058134213539761819862300650748432190807447805870805450995647642852594680256335416600376616337135402261559357678741654063267594017754932781173137555852389682382503816957910172609209073133200811159335404422982046372347942127727946317476717680988941347845160141795463523196566197846001898105185027217341188468157108819607310181048088931022672304600597462050259616286538896104047081234009910648197880138314273048515084740820920676302834330184222357007763337195016872686958055321080633311581193559751550728827396398305358165325776083865491168826021695348627796315630639583986106148728946812793736122579955164694918879743185524116989944299446343861137229520132633262115362318373416537313787767245915496760348908540177331415952328033709883439681710159886701739654925828066149936426821869135652313544455162108148286601439170137759394676090355472832133043609413422546235295679210449197405995032995675340387162704673735437258953839391722560762549609349709706647471084682011982013885843331117577500083931874851467731119312005400905955714420055062796743071678844451110336437447077595423923211618729292474887222214485079172764863476051486018286418363111096182767483363751721095202594051973813466580728306136814996052709506969493265231589065242113661522112191838111880963135601648060036818901129173466913427041666218032534158876339429825702646571532080120894873129921756812179650809837220654602759299827081822597142635827847776796952552126946681530348415314729763678929570070784783642978499265222494198050628059421468403048252387173091542461160310259923205854435082605754204621099892901298899937345928497792434386750060837863087656335216608845455263417955313728754472674895908516132267760153598308383837274818179397509470507246737485108065885229126306151119373047228667828851587555932952576121780699023633730952007332354523571124604547780011836150787554679835977309803599655337638983557060996578058706605413561422171539907225049195736736985720023002365515202055664384999139618223765351296833512979575837157747997455592774537277417585158225550807622616697531224303470832645861098004118347774483264634849704462084278030166589355123700078228287833091456826798044924797468586596974485333626310134618470596441294718179674864489757940413694346974092204082307896241809269773312944345528893044937756403326383480762141867901551834271026321048640532967372527440620307664325535186947833695522763686363145461703019252819576367154547896029147422732273585075404333218655255428569406693176225164799649980703947659464742376900861835953908835068695537146716484684783658320931956481812799476076843786366944644539616934591498283091499088987642765898931121879543420061706147921705390805478474457414564618145882647315953185459022270332653766917845337780236036729581447585807175936409225968790796260750181207923377108808799040626107802463820368594234404114324470672097295881075022716375408976085862879220770572922332928628622410063018957746088019798352754949158355214239917638086088503566005686906500412414481401956874066782761656266632949904178666418137769032781868169878602996258285452497417881914714134919059898936077206817637986125777110575304458656708808013873263318435753146396640558110217271198748411675412803786912237049079153913699379951480560670896869558729143760901898661797082330434285322275549001861494942358984682501031641083457026124549938989782594686097074694679486230394680152646573972849706030094359650006552905251081548447210138961075447817809619859278368446698309260533843920072685298510722810345031169300477386675198278585367338808259590284707177046326478621618144810017409389363763788651877844839101313118717835595143041943541534141282633489642035653741925946247846920913163012717032212694059304116159196381951629399163192693381424014794586892739033228164305300005739173529429941431439136101132747698205688530453635603765036112295472874650299169440902960530139593198559081578183384126475316874858167638183823161121891685444814357142217516551780131780506818615068781587273891749535258318793729630635578001984976406635935947331990547353104602984272962532512900168993469707872876381004849508115855436548229397143275252038416552840463257506578517917610993889202138849141594007478395287588905755901074632989242537088429048093254372887230415658429500176923818616348861382708727135775442850093380255811303594745419898627604542700781489238422371611851355192240628795564303242647765697489546697673412582981373861192496383491906341374126819569936439325643668505043695973500609589968649919047608546190632304578330786394433259605761158973743598176889920342679098480690710437415829313814410481143468316197753560538428413152656820324578200348881572400814074869815326438666944276269206380975255044223885905817276787791231587364233103331108603084352252266673781736442477152753808717017148828921548293476297006458137917247017808220993247193042683290634107190893561247758208087713382621206918630499457440817128481413955276922265764484599706850779482046631219237354182325858697080293660365697962201537280043716970303114113727088007508798455798274794500406254103775347244953006368571274641436162176838471724432833995015267419752171067527769059438791769558846119081603594239405523668194162277544697537425811853341450195514364105658457449933019138208835452059710384376850230175543512608281977966034716272654669514339863486872253934652338725347779108323798650095196302949086931279615893347954017898084794442510666092397076767188333494791681752775374112274240239671257128426317011466294064037647245560081828268380211583106212689705184208043136165955770153461131219378734962656444996619527968009477198787315600540068931090996390689755393654933073014831225233653815461555028809997332131225580178439844891811754805669866864485938817867661624653009600314246043872074381686045704548291122791394155478065141591348702209906954095137136441708468887517606770669065005238607081988437849729340790830246065677645312633052362478982891933893053330203970034267084500071174626224960635453843959133212574383520374191508950231942208294080267079213177927438913263256605676337982360676036297792746866797781227148212391967133424896939442436483203421827103367542512779250618929005362349488935948997028131089808880629645712780973836312468957109030152296899022435287466695568909411645123678554913263466259238874466192318029733531709849184878672854026431847531758810859186901807065219451838336411380472530336506674103039580615030977153623439429566971106188173653721182638734938717208654980628391538615308306030119011606149199214846227683448571006410028164346316108064085961657145159291364905217303304975266846259533998621376750715339718538894411460729630843416163913178749267181448336004756343619384785857233253830897858780907596574765334658623041208926293566680766031215890991286911494742701511834625783228018269539702660256642707536720528213627817730455737821822201071120738522520594738246621522886111152130874694097979716087616605200144350016891191972591047754376722340573231805084707900987201597065449710448555511965727890019029719949708786059734460163125617456388146582021113282877278828189066982115044782998547742999220685866720896781816571586472909277213903490367891331265986052137531041869094454295539570294071663318444920853747371579043407096697934909855014963292287578621095631863787399816424479015853020960142758038616613636493563955630949420486443890688612070763041428406826912755380527676034627958563144675754206060824394024075136059274180689540172108744423316567865173781577741936015155799420442703235856313698621031657609249983748171574198618304111063637079472103504800774131243058524856970674062319952322544770162198812894379506472435785211441559525869777109583880658041235402407413032864776441718245314301118180424929665154615678546708567927362816929550863336790479003683334617617802270565423646227488053374333764975935034227095726676403816421371380765995991858689655866941633467694630134181293068602813924650713966978142754330084377891959987587420109194509686291835831060571745388392706841206084378546787040718968528607761410827114331602688752011870177368456197905963740281567952658099025656225403319126804624207861604112131338011100721530308689109489979045849174269656235516149293158523843340097797700840104205016472037492205708817305040524056540009600938833671877532757879230771874828321336857033344569434143805827847273666419102777367848206195730213897747069767264671760296704885847604479968273204718983081079614432860538623464174587368466208928159609665401559902697929206117523830835547904235361868125708276438161111036709869277686804203032185468103142292321434680304035484423076090091480674260020126429353026734831340943114880568807065679325764268941159375809759319989381830622031291304803196642174884328475624289455091726518818183140189367928681846390670381864562810537361437538196051794129305092821241035894763841605365927311046673948547966570870282581421335492423863856566539631068911724936426285250793812662040733477687503904463424214762603775825282084718292634438715443108187777123162827216960717892925699535386073376342329527559402040561683563201167212037635180102108972894756315364522663844646633672355357896663916714268137504319962444824424110312708408486406173382939627389258474226634749429661420097201303835449973762803733161328391179124688409848456134755295949395964755731792295782017591180665616868278689706021640627334576699104092496610605032831774224268064653708582996088476892354938305618685722119745380058783039047958580161127451790216336756900260972123410378595686320929565909258358965261748533586078859328907672271614977124773844350989686963177271186509530606259045537450759172463759152019318467791434563452541382606403077287674732373960549039507221481407707458235006433809928823458136291490847594136803665896520138158805088643081014376321176983171807656306780279811259378870324898618386037084964032901612656270441294687780260035634660698658558588896509860227371725149831623914719277916672716950605313841091384753751739617829280268291586794134146955932586730706031001201663730512107575912366310447650844661246480926043994872576761111069362609301888009281458849529005120834201301930676886041040140126843103143020799261711740222481863311295208710803316442194500241629415480773271453770997752977887469234498698612651745284960919235291892054842374804208070439467749178623103272244918880471246651350261107162816569312570401378113037668753538916014031569100692969651072735530062103558356738891957467392521857076851312810999452323608394366354818706824011608508849845598310945015283690834052095354207879135251870171114206342577959758581194835724273638551092209965203897708579911305463196849416500943172065802624031258837716609974625856476991607307920774158116673726122716017401012157768082258628790903048536492389467084302438018062000624480455470528186693236753669902303548024827777692956660676400007172771391057560555720458336153646446593878706866299798864771654643878641189284237366103566964717034986924385190089423520671290100003269769258960185872421896146121593008759002786598089267181877537710452685516074343647817768290264381944235221504928232865212672433145635042407874980251144020784422932014679376189294218750782687538218424814199269946839333380243105182883168767989180113621160680847143517234074248216407960310236312982120570385139084273082838646925325195608386644539989060112696953852539490260463024090183801436395164607428880742587340721887754892764971167743270870336083884839544729124189283235858020215165191290797205816065714055970826636048865866899394231871508425867282871330814052562616047054696208272224650132706813238877444183995086316923313827246675678631392360966658932204322734782868042804831049280988401666151681042121863236395116826385800970875798660800232393919276370666950611595516435412312864810905033612488741503562002064970096596077295487687678049162672107164915409556039800082134718966677567197500130320962822152784627457013207156034838626399376545784648087888637231493648915658292778584154091516574540699896011641393376943844232856362799052201478693003229076485949188366333552671193594594051783361463958307271115092637634705654119783004434761772994436462973222220738353748158745225920195229494506136848607811756781306116330854766508306849907157082059584324593414259039180756164969827534090564784664062875501171706564876651962420782692875344042209087839210486217750984242868899085130415764526807811740253671933526851081624271102736585922864838663906546189237076692800233355327612483571681874941020599058735259785523350370434512000932198789682010902337878145019309801827861496693280099793239837872289290580011804831489201781269550334043953504425712449347118736224185697128164678458064145518061077012303851371234789499969889936047030716531927896651343488011676347861472831274882188669358233125586108428802487747955575689590026348971670372749486974140325434137240009533192047856464909273183731438123212590296770983540368952137384305473612983206241191241969234551833647666908087365857800051377512561007361423577979889623599587755698474060332997544938585739262992333049153370703492876786164548218101362140552137085904483052550612043009269550651835690158553400504791499976949796946525702688383555999731205190952654957665937403323096431288050107542951523550504620607119361063688195286790375770585001929577607503115459407390530298145127489251057621210514149482498313114114056484666142231828901979531537155984794745267960121805112329231453608656394217850731856431238923285140809222545164572781294456488502121763783513783759547535254781624967534957954287024724261656151177395968798098317779675634803711469720451644953894321066891144050134590286855573885610270352895602494619296445535029556029993566896649218636544977307527515002101327235368299054178507944153122613546330416214144056718272782526436858978489883421853850076055141819014129480369869515118863544407871765246095922611314616877832394790822275584915453236906760750010950026983010166892271131391204164554761075185865130330632786485378369639264656469548273162800781003213275972518542028690912491380059931978265676747333304979011646182335708696975650952353461829331572892237258123060376222286624634163319642720990837180201950511602517618123940325411430106094524429309105949655074405268631144564048535251714649629316316916757470128124444212080387280574185556072129108058218738818963102666700023861132098341018085807150910983373850511933105720533310073851785970786640882472631770190127182691268131042442528763153998807738214145503709416719629879140420019744947388566081729533501186059585455185932179460843493725434550961477098842836950892011295756975245667461105294575629760584261890841822655588919731349570219910244252282945269860777946134311501981556962777540412913820252668541670248815632026323438859013628109113956285404279936253620044925499408034599785110398909570616385237125019280693411996892728770415680361270002899447949227652308636574232320715377053763638196227461743526733486162882950009027083721047200983281607826112409130810596930872148679509181902534456720976819576365648457442771751414930271849321749650622182283641121268679922633000858253947858557983353099071107058862887630567836440956339537727116389069378453164903005552280068749713383616084881633975564559930245183542241223558874527763169370631097235254212300777605786186059652505107005094313482422720885237904338431526626226528904650434109960956276880211765958771004300057079965153134746322674784952742381974478287471495331362496687340626072275805626101712537861696123364120702903798405980125620778137122032928051436085610377002396593009555623629525431013158446964618058902645307494443559129362755901466540981142405944660876104050823372151861592746193787828646679579971531983352840295966274775636725655208917999632978671967958637922296453626348851477660236317500920599433301098906540614468529597530773139905308416116193109411967151176891864596828329785563475191992870439891306010024384187186985874810687220267416629709153541355120479329719877173740787420376915909754735994748115743100763371351441708159183333911029761635686428224751789984030234555556372275471531758429675564122503197826582432867519125268278625637846191647920806417259142320407520461176842757245440010773437403905492843502634918792870937678055691270978658126791833419915695800748161570098727689128103303965343058838709162310613401973141918212465498880653807690035672980139608030447447912346436437917699977137745650344496873486888201889249648775188615297348072701683400170089455442801491857698501881872670515545705755733705322432384146044288114144449804174411181615529080318929582855644625505509374771229237603512592490404499726918633957323756749666785791726531504248394327349699435090092021281835075782703575142567796541584502368142292972888539310390561377206699859259491212577980425154004961740777179175785485446262658242901788075159301187805381209144874300193592893312794606102396581382571701024605016581867522097985976939900698051933625966154013210617692251929141405821557745079958620582744863980494851701810082035214221391060994293614829646108146813775556091873370392125101603517812602066585752563242366461777621083303454871072018690314853520283629581762856850940238557374722543190295111054328398166795373761402494017081356636300251984017129592230311671115660576809176580417424799279809094375384449713386465724207919310894327419158090363951218806504117131182880996749892589802529101157469867356396550206440195020130117236560584290693157261606762463207743700132367015481411572649426912889672092259292396557968397731119738898402122471075008689431664513120463999902923392222930719890574772137487982954035779265465321473115141787755584727516606429053967321077859186515307968993021114068628263931911373071687720190006466636286912202794989374324879554033763761535690541613803607725301439585879415629792073882171376971079796958278867807301438535690233777844399505070184982919303867069596458828090682787790602634333636082512532061696726716151257969509294520544845927384253492325188399785117543419121892072935105442269630176091867938198568178916096908134499102526972053759672586080158492681543359929813955204375935950533364834475846726864855316749374679894710069588471816676058615147137193655196364425807497023070794054996934984626571590542184469353924877478407734859817857295710154449644859300395680492117627316056669266383866803386352994864505835091248045086853572039641738071315942540330590202649924263942775554297061778724920103013960791772827835182404642872385896969765684875381102356505967005453562726772086973055446208375167723842052977010048297683389707752364931358037275402458152516172115772384480165648452627085464609758663520293985805370710654809065224120322687402033770681522475840130423351140983124461384638264679566363793948763754914043670241372219357355212474677394036173161355001865341598238501620131945856371498513835152776616556509452310439394117598088056428215262934946137761326098942784496187911629418316210626157708203019991688762976580185768516818917138959902465452708990253505005906938897327116037896732701267837436530163757305523278648379133504299183436040346936754876113070065487390056718707465032264760189077505196778510494307596950564128416379608929676238915708510700705125594309283391774011573045283108385991607729461497572233780203825522732952532112759736324271820442375133539377235322839397591717480742719157545119511081047220356767925455266934772034239195832440179293546487941287424301361120553969110135922379911332743860546793821660571068730999014545829489073441816108974595642994423232116473172127435207504631192000168868945053276252468562221610976768110486055917029839176757870405762272433173877800452158114916509593296896593461548380997330000808166161926938566483112298151641589947168232956070812810154553692726833579229257839422796424599648677328203871282156385787378182831469545585532817209185944189787817901313528600333299107578651158538940030985386781374144925496126171595319911414776232268925798465155144470664543836622990482529565225154825798514567046750050224941072986345898288923321443024835456932808539553442254891958657428346910579941816889918604934833609289856755530026924235229847396171308168042174814627144410778460445720714787088981827120788164800935852283389427942604832400949185830410047167199078877677381609333584185537130547631076866318163592390833881714180882992000684981166859123694387415534093337283943398148832037342161611663525921263357260812709270630288880101106658579872616575102316699835278514007703500690865598188519336338356739030118984842035543854713321700985300604178441847396782742461982786617387295420865638950775587343823330864333615554319328791388962518630863267429946179608600958507759855192626615578399794690042989832979671009041912324900025702207277237845469907862350974941921174557457556422952319296864481988380626934031178390431306825047574098451852882848681905843983886039633654248455434278815548179133807936772232245448566926987684707728220753386197266556090457333655568509061512506605862752442988190265518718717686891085767363453689845946688127414482859027708327732639849634354714346344298757906444788950322188483324921655059215936587223394964953480470760517730972021618461254107289248176974240871137453009062962326818051860055256649663141943703106894007225357872293699052285584934549767586443948142874180909373888451922915432988395450409465610719703995377366819459731094804484626569541027063066725356004447228864118081378541854903810954184787604705981886285817908494918867222606999844528808495557191621147853727969372917437842603484259498090757721423685695443718406249295986526436255891868626783039822424061366934679315782964298463342588762744758717696156830767416351781299860331956734535910128459248193305443744272342411739176083636955357958089330501956661681332140675646419439917059639987745904426333510099952745746417510484389629622351251430003566334276888286656145436197664865166631277701291869141497845998447644210184112894059867031406979209416778574338284484757066838381570790051504380365237555386578020635300406406836613041785349929652744484372511178049064537226259531488422925146347162220266128113571721457385059788279997963865677439736475739631251002116581347692298394936402098656724481685447926490899477284658835866798914045243482880884777060166027298496753687405581598365339957425820661476873788023178372937657447812355821235163932271800995638209082706585529849931071813766223236256092568244516492038856375142660199869726253480513710004459061956519711442464179772644575396877084103022556165752992612508327970660527435142641799396910216259813964380607181331089613808413104836503613120988374657703174540490030639228657847106803088944473610578605312695872982440073516016711311845697902925175768247054153331394135963773938414388036175228650456159042246348594389497778987736596109541741813682016059872058761144324639976101076119341889254661688180377958997018562457584816561177975758495669482042363067673847053487619835703355931522336094779330594828470048433280632395843680420329527563806836895285018291733886318403932018653589450796157399927908309809404081841835841745302825913563056101349477759322822254039690246770401432994645112951095648025735915580910914771628289014697794181582106493746782094296676506905638163583285073586885820401100849948980503902392849662883105923608472043660967902844763511213844512136371695740070830544632643617899258927612370818640248414042101677107088023692899168973448845288947502882689893260390006147506313054100037349580253048956422861190633120396901060270372947768923850301292596487113383450712955055883954499349847642098792752143324900839387818747408365694387796138803057283331200954454277260764408988661184954746421472044344249494502045718374853327084880287960017510365863830285572683272053045422589370627924251092119610644143401079117387008180051000526707666138500641888161135288956293406049762157190230288187366007830800086390489825969256213486517380837865153132340850958069401769677392321272265227042130308896465869478344854074178396861044109319983594705191477222583409187703010699039866154281547461839369183937476158419069809574196878136891222653641312075926594541058113081462900295299952263251096868231275080031699248822093315799402050157008888844796594546801177256182741323600630756389364710189065514413001712726707368112979235669980868502477950887208050600832343417034665411054675555630001072129025190056247335575201135513257650347100592318992225456878721604314490284720351592036952627895797813175929010262944086529944308699199182504386722716054636956769065304536421580197504529505229283155430156079045431044589632883500578477101069047654947472354047840541660308572768017508881000031409635989742866167955313477669049918482941827956547310987382720761634390080996998161839096237887197435662283146074689743290995055515349363127205879380134553762177912758085343954824966012123335904443535332029786234819102231493189229830172841764140382245171212502180016303934893051060030605908441062532457352463714438628559131555079962364140038450253935389093256822959788190696076938308597843943748532601642249381098532897529823374239668549511496201029164790069711377511027722453458081513798756323443298198663323468485365848096343521682077365922892357668940456756671407951654555845002695559409078746611890212851177444011072539759833068341235735056615354147204899282321913961729484657370842319937758256549920998985782196746729852044140289677951646830786548269035701627103700905842807336073882348235695806116603020186977605667290513504933828626594072260169511489422747536409438030554805091938189277624288807705461501602628334717122873930513361468841853443809670976237583194264445503489599424894126574253027827388039718338826145623649130463553366472669784899513004594759337998212793285729659255802531583459043399818334281774253011998454921626338172286315332199189227998662138581909009931136519547513445801460451257702941783474632170533586701578085194394663933438595165631813194624330853730721910777842628386811061953462686992961717741914272350237512019704682715340792537683620307387132193244342971955902368892474360334428696270998242628853651015983517951969975249820845005921534174665149053112620940843287972861596189734563828527175843594256338783134273901617981444071695802492783506444636912040857522033861737775809433405441188174584790234101257620965789964257709906042601406403808058195013214968514842927268291382374216117781696123363443031665930799992380114102658270355067711388889468089794218749433212422543782936436903776346388885373540146830479653045941468226902301318092771956381451785066775764828629518446858493627991500192588675631155520485460395080398488935701427826284589778080736087126856695462640234544776578952978594051052933164763725093364064294091423967852450090254669891733145526500059828941745402118182039399693527567968943094519667797597439455928524031708582939036379179323386043351378133493982873274515516796445815116851171705700625000057190885786542870000088815098880629131623613688179575038002829839165825579314151823105832159452362875228490748062585229761103179822421639049978412134837763187028674743012890534058885525345293189050104573387081534630966483930256173235051977782697220198116957117314136366869286183891616094719782822230235767168093685219521279445281042167652914219329852258281471790426331588798150394775784873054753888096199947030942320407795346655878313430196378032327661261247521797379714385985054456416216279621176623361343890604490206329271567968589071938757517973090826784159577175917281917637514692094006803092428612675972912094346406060052959086187391817305552093221682181811458819616757657234539619968718303736716846251483896420870500141701270195825362413412446642084810658514915749152014636944178000074497081784314966535538665759521499538639073556381416222627612898068534851750840218729684340263536618864959972612790152698897582377190250942997171543109008145754565146824718249342477457445379701029957057194449934103594858142959884828484675408934403308263321556947914597073877156030647020711989301527722844238165162454991702020965482693068115234083541666091985595167394174403114252783117257791546010733355604884045535535685393705055596505911216497707842018593153827948914721758953119366450119903265056476968145694263428139499329335472274628359200806768997437666911293601038885799101613954256503128291118985296351769844044264331532361843197483777387174888379295815254083631949059351293610994195831283307192073959692604550460919693263762614584251563962947021947123637541435082111968979576587828412465762133225791614708032947299282103570983592428819590521134360544403834084060582100656216488001198232414974454401972270002993276895076035808728275079544621943637442021883668894363174956293031288426572595308010082540342127511948962118040951553363035161265581396005106054656386597808745125105606792816348289790286746163045868171903305647168928282189920283779094861379951810510275089241032699006122010405642543587146111825285703169563714268346726048477323993130128205541779891255677221047003891803360719059428231401201481773461349366314884267316628203861622619714726521977458469446966128160348800658051898194155384715892174715425078347279186401285778679797659022557850601583286923288814049039253640165342305150371601868871101281031348256240235065576270434794395089136610667637193246024214651830219327037000122501838972279519258144833441718774469688478574345958737500508581061227791816867948512667225789372037518758055730509417491120043851048527677975538368894267127448127252638962727414831065702032984304077122707986233703087248247891368825546984560279815380163250841650442662490581187495577060618753277003136930985560056822277699438619626620858845418398400558213121037879261579450374207610770527840184923165693479245499440627888422858072865410218203176319735686323346326714276810456507271708169861984313625846862016192026742744508768243413405270720108476697962477010398333617459531081895291777856364245062440028194446988974040774896274863195706158598833907174533722345227714294966056685830795586963719398301593629588031660600520057253513953530327528745279801966348800260445866734555774321353119125973995301261717245315419722730540122491121173367432005031825716838520649360947273445473648825253686121984074700459131379561992494538598917361269718721275588229426441113323761882921099619331793344019398304171837547518421529396903738135613316440848770796445647386128866759260421528534729325097901978784395473589741497772323053205197467334802254568467063798792611842059306736240751843542679567019358656332887971301101609780517339141683267612509558801329882479401208293401373686356885477444558955444001951794604031999092728378435942268975211075591811444459699529333515515697296262967205516119909965214678441830773557677020518922927975914944906987731059686679353919372141445713341213078025642169459106171152779352624767721209773631247114821933634347861449070755167885784722122939369205458598811116984667685865771332925082715122153860557140870205220095011379113699640473302466153313179237891168179449080848611656733677373628318994081159113567704408083965454110981310429449038785301776013614007491570542312745219657899261396410750315711799138458487889337955879018805121618179678504595452188199125329743401718844425092992420523577748424650470773994479565465965152615214192323578393923310063114930885482865688504557408690082777117395417336660912237926231883162065271198060549887488534801499681852335102775231567240018556068991835151367473187599817592078244406094328360719406025095061652892589581905456992902980847580355927021051747419798014067493408025987992645604090922192666090236334225729860558870823251577130223517637060813666379284379167588451315461631984377937103772983614416767752477745000344702961960395216007423893484543707970566974976157120985184493126310160889185785335598203894930904826883425180099284149986062932756765263032707220502146278013018045369524218763296988676460428039428543126112909710369748171101553476811864225913019147808967207894448906888258999511145688891464267331407304592453720175889656346453502567588785655783016249912008086229349062790712424892090162948670159474686952830452417832191805694603686946288697913725159430039513417300563083396154184770456740024708449335772257870646276283409074736363383908825543793707761416863597864832542463882417171544209299452207996026281969570781646689951086185696245103186609481726833806021233963341808433253138775796662643172791728837664113197537060840172270726121918242208410354461706251078765139778928008572939990281266999100922253351290246197428333405346708372744878132239758015353312597359843150318631027954435167099909415356486932767011836167683032595766964504667891255206945130507125202945621794246491066715136929444238613248488598504853925128422987229452855688375536963465194890032619202749427402346003181358351091680384753094862089589906908408955074919422812436584131344842827949390758605023133162974436228394368675788675913205637134150597326190345650939161320579781973366113999913887491785701587177361695304387993405313732435599536509505028558294150165715897735318921050576685767262989411382937769193173510778266951786545022240165084373414709011668870855034970036412251579303629376900397633624974245336100283614288177920889854104668192996960466857475398540525538702976196714720577376863839351071406522108757460070938813584882214462465630022401096376146530268335523388578305000962373257881121028532834219370656628466967125172508408834995678635148762981786051383806200740669432846220400199237400909155603850750477316134755385572647263156393481284311916594326256471871364058864219959391910764598917553919355319338448544929503920052302120464807242264662796723484760009124808456405451470651575807320867049642706426535039972215981546376409289010354118043579064616142792598093885488765005509461112391621793852106780155480134138919775836692845172527782709330024263656330686938127593005792823959882811218111447748428849897548207776222072790428163842076867037590183129917154473612969464667149048294714707451784170801951303704114784247510211345453430846377730232846751163537257376565930278000130495693183159166533017711615205014268912517854851520288730094590110649860105620222651681307078253159575343309216916825905288088821625758705052536520063359769529784626599561547453082716464212145819787054539885769761631797266835269842352819920621395007260930388007543105575778697542957297764953917550532084508737879950447653367877244485561594416467897100664152666004986534354306725120803843460935197119672974836216496849656935294395754643968522317075670735196220480171521136109697576379343413502820204990592379168334963850130921158521651140786974208253790547176149108625600130498313445116176855775206349502215644269859626306033433315781028647694999825448131458617793375183448123874593309570065640367292446934670853192940832934976899836486850747154751149269702330512784241352503681908527500598939922188509888217865406868475711963168111442963170382682999049489397175017900305789825111081920366950000561860153844699389338321790907556367773712123630150806215572327421630923209353270887510596394673936527696276003600470700107943498355768992563921952423343334754758901403411689509027339731020797837047652572492739618855534922020206206639886286068908182733007871666743861163944580763613271914301870675609053249824601149232889994399740806706658147564820844793493012714671356048764314894608456793147147128063286318095629120617367211459204743870978187876663602164910749306800166451642343701293754186597546306751005238775896558130879764365942782367527906036424014004677924834477904163167692657507153959863646577205331757833878239627776052875887570029650220641108924600691026281297698570804266086932961657327889205828959314406753958465345389266278101368869458025230723224468310953867273157618739173263551439854815203284454903305687302390785464520288778200948534325602085334694917997329341874008715230578541868408753197895209546850651914698914235960831720307117779660134555261089070801919378738961047692803379785295541862432570321606342397989289876945851553674940167975871150581689872795535595142035238575890105391615268617670529869145315890071770904736668696968652096951564135177794840573871797285842394439694529465202547552506030979133985400536248911023501530977600533541728229456968495651499548625961519912426931833775959040128806744411942751934205327166396921453237964177359333874599809391112638972981421023488912389820066458786280741357513786264705262123160416525139939564855558270060579231179678986360406934019232122649416654359850150598822267555731720340713873504129202543687584807094409147293453734897911593180629639609830830133759651228690814033351170766037988161385443747203737152061203771513081863604894678813594215121547353056367269526113420812378393993594288672013273791614524653722167052108187064172818913598749540002285315263071950643783315115654073753833233560596498842623121894068598221561653696857405519495804130169276236927627667790136515736155425916134067763391139747686221853435320478949044547915707896709393208060026752763201431978030552010610524982969683009109562802776197225648156977872203504257894722298551362753455493233381333961897965946574311499925305083022645377533684763952175217701211655492089487292230970360251348562703110672228380164439197580214982309206929940086584248180931994438940963900421736927626417588141686957190321034252304049302812428454249847193213818373343588734824967828861698975950559768251963284568233408479399580685591285034742444416605439693681661843068119408544920506699116284493569519768197867028333988751463821228662533246803287587161794094731142702383706167457134509080596071702661158229568493460363403491176844715445576374451321590000694256745125627532206335274345636357586054017250314121299920008664935006309665866633321458073673225320965849107650459782823337764447012943365235507409587546699279092255386870067893000670615648231796532112545461941855823774876466830177846904473072971564331989450842598839236778447922164031097278013971385298276894095658323084247754896611968615248040815195695689417588917288185192387569196877660293152055032313697179275425909971294778722865597836165469542941653673950709395224907711630074016329165674108295914683829655399329642641449256845135285892199044826770591711302467791053118309502144926645003550155152433476765548017434761232221920159412357218276647799668180280562959075813407966964644009276735074787555759598249843433936179240314375259942861690490023202715325139458601465899696641999032203951162144834948453649282219369242434984585883302975250860662142631534835372708736580377849495444943345169978196274977348072756774148207330515987366109845189047370555287865072150905738152283695790380639512824623139357055659882146805022936721790840480894446091055125100259873116920078356358658951966913148937045318600820975953455860279138303675513039284804997507487671154164383231786556334273792226881446879815430971092476846085191408594895852440420749816750985310474874846612777031651788302458686373475809509678036113110991673979726242377314305003848272041010209691777108108822121054592478249887628486137702748314164549083710105534003109648462761621090372715582880761539002214108782586156468091955252567996889605538087279983406963102652993587906659900307791621708889357129347629371209136040494714706820961809209698058470956577731348128700758630798896302763932905771566146858644427991284782702193080328732117453170007200492467596538160651060170730867833896777079004044194104683536610325861053193517314571173333576261608654581229337587499257365141324454228562423131799508374053146751700128753661850803504936566292271836821225528659398386068454176181842165980673532194409845819952880322899575579620234917354109175567300934308502458722733790450120594006219790174534699186824470793758915133467243409293676055665391400195219417312694660482439581301858275427668889132512477019735110353619760202864081753184326067684472332074184616067479929913066652640322576902661949943129621888752129557359964071463909750192032054431044141499974093496579128626603819075587910245764812217488488732943733432605142101913690198538950832262541831854438491500295078569893510177729201468918336401853288331870487525490037918536032983728562805876448597104086128978292122406874557413701928413282225113732560647018597510879651210644150156370738758118001479277561284064481486834828868688068537648242141838472648838388858078735749231771057643436324760113061565792160564927670956452532717825197180110353143361678011347394012910657647851033950823627499114596804623492308199551139015596381973024504026017474478279329625984977909705087816131099394347222824500079824627112735215392182239853352456316851362396846201008500262554580088479622773485711590542989493978361457098157353038069058730071554054740059515113675907190692765521912879438213135787641927773236522636174532431285048000848095859657771871235240751665435444536142479798116917474130076069770698501069418289878983594426574809362056071501877097029582473562223603028350042506818096335563893969809917476037155804580720473455057302307596931500728225179674067794735988033514859330851143550227447421325360947695473883674181909279087147907691031574918526499191582448887129043344392736436160078763016944218867193461554721850233244378474898756215203778667728292405257317168113309645454262222846837715115221439598951306543515087107745776117951052680523995438240179599890642710014949267152704799759782810016510632493408656130412274753071670872605478536155093970452879582691683312514040930591294648858381116874797936287566836288330390119296936892375139179589241877568925583747385359453390895021413582158810851317713003158677235901286022623555041343716425238827491320650429442848220783127424212030170829531388540372518174172414052502742950914118786792784991276147358352400374140084648649976268299320783597872520053580082154712047563693589566493292234219229574004729927769295347222224437793020715555072947602330905785682226274414509811482698729916745829235937915762802462129128093615758148726023081943295179024624294988685011106505519804789775270122734594807460412521600122479206843129074186385207573069733637883925010883553342560382617110946546540400431602271984825921137674672828804434747207537383389101697432349279188746126742636956272362540281728625532121683942328758402548894686242740228934051339392554911131859870587089083015742785190447805390875776648873019361624218272995923970092888236697733249512990887885050695666461207026138093771973366212262430457689979515144825086771045003288369179586871463983149129543312118960895090013304670726247630474678485875100295962910945332342147881178933945023579208596814423803858619191037371779467858376781110760509260764614401850101481935097658384460472060267425590733516645417045056033720835208246150835776545703025299779706984489000726380680870475257799537014454354650534851535932169081383109990466319548011543767394071670596839877545003179953628004937476338701615661660230099647932932968649740484033362946298149260481967151177167120717153045806939978586713549361022219841348495868124361434091588500516537119158205453970048726629656653822384715861052503434859776602133331470580015542594103456681404413373971706736360585808607789880300459899882113987399314189369684512829228103313506088253780657833721516181775812288922443354736408416367190470136877966818354103838208599047101556192084589961838770517478884229216531300126896033090267493189458325545109972607994729454688515723629326380386885476021775855079516353202177174603864491049103118212570424979153342166642781903072006212277134794083039704532495308280643854280408982880116429841306875248583713242865117617023483531464787016657613921356601337587244632174077158108554972546997004261170268753502866785248288469423868137053478248891796003797681345898602728424801301150091945035562553986603179995664870980094146196658187611518841151209888007640769477930871834384854951599216105954543053610597243746991758919250287056057430765744678879951293940094718603231576156272538972322746826408050030513611111981823989263429931883820814624630056328052647504657784461882050768511345246905195194787408598934736695912886830148602458616488096469193893650729368768882790996360169824558650274244967330834906793265320281951800399585699338185412245485268678455784677745640072158056590221380063730700946776827099906719824080971472408216479338356080938874229296298274580730022215450484811540937326385352288647169289678871318624021841501463808426980321459960043939168414934845333775658564815016135060514123412108262737346693957628561259697082428936259615742225200906965139839694560901343372494597700131890961072487002891469970647133056886029093590531995743303969521743994020241529433782385489488147584201431694425100028350224811873455130144411154703962644388977056560372039471977964113167761086933264442118505880712073896994831676948542979917045330022405526553635641840023296724122334171811010972979153319876788347920499396642356114172344171773506671221204668377273099216595731067095305436208503686586393631902231285086494630658872263766883969615358804925396802301594981207317149468463764267973736408890548792618139467235944668953278107409102347795989092682431045560003050854513817709495218614462244403279748043785136898128317037613613959675680426217932632407113761651421650281784329193423157603918036201553836728136283807852255483379301103770350640745919812354750750518206671095420547709079451750111485179250444790904588725337836023517358375668978155724048664570261064425893019079182460694530233583907502334676058807677243507190044311131112494743174617701472584179813213066412004018899127568920755132026877689109927774706655969102206534018774577965992734991075642850099282477298593990289887042899090463017113518171885992223518960794099085899511600456702643453240452198231215497070457733657615148559659972683669373136110651902417661039189024081590336669134245089020298984071350662347507782088341375280190811094597045922056800495405573909569662013362471005364406668396187335334424370158282700599986722182661164826878836067101437182513308612222293732016764074477233155288317533484096846026222645904006604644690049105430600247830326460575054714629515982990954077273460809145826626510027750887259900834049999691007030850248421837632704006517353617519056292977009646529037820738549767629896963179888623018782104385991535629192219334722254911806871939755195225408052149800898183349595235193532733370481259468411269412359721675398152279095460472472808907370175653039423182050851841744473376216038048084318805529537074558171957173429937040702675222953082400550537896818136072453007932121172575683243074347817634494763572532433662208224018485179197197883453581977705907636343052318042293541062939215854934137365688872211630766593208739623942953136093128709766016485544709770719308497126553987509448052083058421205097191461006915128005951303143219928368962582713365584761548169876088706586633119321239351369017470019433380615173470693547459305120905615201553790981030867176383437633576642624021366955543367894525276850432063755111050477011802186285159877238507109891368343027080280187755797350798161253875748332937013889589023464941531548668184275013135819960883590669036103207492225653717050882643572743890779783372581089673620210712047383234839889046463043255746962981322807630835552605568003633649430375809643592436873209354950136192201902958988516863665111820053164334321241506679118609858512332238431325505995745189828521019276759528562130315644187672658095777938209477488195743764524415375838424713377096237651045253268479411402797219621785260100239833719291527774117043632123418745269083785169644129698515801780660839423681021898888234965440012306608465552491402604258493994911606325152864215168175872439351516991223493432107079000458532342451731684083026097273759433925323446212466345382993752459962154169800785182166951481979799536417635260446762463760363799356611462952404534999205753299289588575366849414782089254173053839482447138249328105146357624438204490281612682406085944269989032905420135920752456462538699589239071508559441057558192485773206134257339626612418893439020095510716817871194470452074996074684281151504484618478076201427887964324013653750520333516021640281336616797412853716236881739442738581157782073988471457032023167901612835080545023958860009218629719843408638434643137244899118930155422289484127071985285365235388109372851870075859328466779177897027251353133193434649983589958833766186666543431658711176251577594765768292392535293742677577057199448017890642506012452643803335245027830200869537066422456777421741923206050312731161174265361459918728570243159133029010622589407236789838742167898287743295912418447261087658100995067679118244613906984930484887991022998081535440438138324229845248039596739805953506903124663408531289318968500306381820227200941533339882015809654824275614197764106684593500891046562323238308176555039062192707029855919539815176349363188604136472862937743792438536675874183964151103573894912917110112959053783573322427850062676916460577751648893534169444295734108443922506562597197427678410995821550083675092325456725519654111976129623683720451146982206945520467959833662388946676164631733797620720466925361201289279287095186723396189273643645430759150380745505815771345822586298206153117227488978761995067889688495544568451347290429889434266647539258208049480755634181887386624501075607124677674054601084347032355011484950594527725485774833866855163575194196603516074164663567845010134728449852668917076527949638685403175881370280658463044530054147663653532675637529557242959116475170637401306760496427415948867788534407603845227849581665183239182814889164724579607929849551268563026492811073876827701373688651784418451164320919895691062891848887657383832050527852108747007860879524509925323648275978392874718503647686522296127213633471703117129859518565488041542534104189084471158667392920242795146432400629495992383470281638363898671897774762150291812579034496399954988643921401695573661220573296325114347933844122007809442257371665709891106181899003441505524475387106666928698383054531988750947787253634894884108554549260551249911700308375534271618394649922317945276499920592194957014345932630183349674545197396480955073051073964353778626391094686705857670347382840708011418632244762772811740999547487929622303406872108493334783134683100482098933076712155735213256050879313148215476342813034285939727919914254745687469982647118491482325489487926411473580229536664966229459867734871945494735559239917990780044798967971840597279462594106325078330959213540078887719543560154165253155725280335838295373414324108631036207504231786357704766900002643055956248136909220152610437527069466040217085969999590153802739820433305598832470656979704976568041080416819987060434803995387109901845778087643517182273499662444301118245504271628013392178251971074946083981984264255740558555463938801418799964378321080101270890869981906623961073603453335585183663419575831468971676251187327598990004721039521339336355013712882066150898501476049288656323385273914208719562524909425086732290290623606227290350911121279828030578644211019320194355650127556452466696794592859874678800835784750644827253066698621574819216481013347957623303042793654034302267852983888740850423444545041582503968421332804438276563065268324703307368863677622554526957285904660003831230322050886286112423320218974798539854110083186141969452611359422033866290671890968399405579275231881907221868688957433619414919540194973825034884310983924929606105463309128393187194717691739120908750748962198932787724164192098218923248137764181063805172959445946104992279473136555233602135404177063180943536524168469809103767408714285135343643547179272037499895861222817925898596009543605429590741041940748055090317639056907413677456046921970660202342781565767545369550948511652680431342660105362545339519912094260204752297295015909815763907902604415262398315465226733383302374099147473056250516512322308703924276116588206900237826986564874604591088236268124099905060150973311744946713654886723958779701297031082075932245935064002814539548714076553269825541110283008597825245278769786185647439449896066759540651375809808627425842009542678920003517561561035952967590456082644144137446003142936319170729695529540257179720579017224018302622294968442112092987896241383307320547834556817577578511030109827269814214715541138200792639949225887863937489237689693467225435375595849573101062703807404567176637561729928242435267738423853921918655658460301893729940460565450713031497680750059584677232444441365036290373301144429296322638577518754935678562616764194147605885083098576660116145358558198688624503460982683396182701308306575304804671049482452881532847388006300948748169773485577339343756055575810382514561755001083939617855180814554431044272691659986356227132964174424926232376786589510173324931048872935665591932334540188377794454069687583453007710238930572466463914579356545060088538582552794766508113687145862579211021659182097160721976262237900772521987093833598243431296113885467621162015970594132954637042141697892629184093975386861856664740092378896170889964620436732181173228956721320100214150887737210025781691192844531608658223538428936507359081356223572073521691681181697084608162090146890012881045976061777140564971987011607230083529506918170646362311485521724061890209434851287297749848667377043362045727512466027599033330323276484163684632144039009911778890700120807296981579807680125096873375819663800508422526806895010657439675456690535484138739740902238151762751659687482468744731243885549102893748559396827080242906672194974158933852013729859112717708331093759787844779864007397000230319711314056112500071286268125426518655905695229368957447743113065445616093034781106797635756718851394998395492074088256035830166204946186301518675135286180400324829101579140670261786107781317761680274619204376169749697665282987090988055346639918747952692281369214951907933712564038234508514216040187986900506475698404997329144115494361301982921034241959651006867295917948735817158550543872720774701121087920363128310802295385393590608168343761414912728768659135330790651229963135444258910370002917852777671733668205997989149506885195258265379313180485374860668364212945782536696065289066973571714598233559725411786819187034742317501551316328519226573516110079573788222933124151886095238896030381496162261546232131545463946531478989270748661687363827275426590803598230515583871008037636708821059328131396801096283867783304529416828563604861774397584534009545358687138913452877246229274349899400423125680889750052347469787516589820915143204858273436623309735476729465278400302259318588154272909711782284504185129229269960636831125552399959278818173438926184646066122238769920534190760036108349419806383783993086762660815197229030976737112117850948325478899042253532248560199422309236542409266103876986904776186373291542860358455009286776010796128799410911278179747867017875129273381895079738830098333460813806688597823284904319843372300483268238572711757515542394401881912557250180770120027272233963956080915127241363457872684050817064307456174481355655397149633024643200258728949202993726297132890821849970238454670262265827964549231816499133249382243145624456376415506305272736589413693854382974771644150978153720283173836752671890254075074873924278686624744969933790759464480462288512199202141747491319863868047371276948765418071730969699599120530834862871605857820700898779514843943457408686625187014344456028244664125784398277340794836047907600393319841274612745549374585057426764490072874497697876019334522480125171289196329939485321288788592493065819187960894455775543982312142139638233378449735853891273011397414182702507888103104182236885535843797494011809658963609147759740467511772886362734385079269308427926084684391179841473101342094091644978696311942762855812970436320742288395088137316927706602494608143365543314027602325612357406700941876673077984801813328192262295839231858069450226578657458424973774922612556203421753632084692777983638861933659732609310341733351651644200162800570767801803147879871825083161011772880196677370268410799887584076324049164135299558208626518636844559292515221369572003669924123260200043303693793223228103850363846221283265616162844307771847393694495188781226723071033611176628894543389614910762072748408714900898938622896670143347030491108312398659325743266860936873507805638642745361875717408359998002419294381702510041745159574382467232551067350166137900065733405922082697535764030086579285378021837945073226582753954298269620357578184987402125006321426613358697651638820687470492638833328759969270964345651062638812429106407593379858829471244824477309473285921922072308162933350826366196264546350421798350986641351493311120875278677507209903435169181680750718783046019550284372577317422973288505296581762642450787410383459078795931711792623677478437362740812052063683143133114670183354657050210554291813936126281228777403621097335339172946514839071268974325811126491217263043699468872897757824243238406560577955773603438004146288574021418993065635212032895299522176282472532058052161342181570471879320903493748257869394414029399767039645548197000322794964155506263892064579017212356915737257580291486902079474713790254484190592400940178544487622621906947819530419286669015506147214085262822119376226208885534289747591541851054450856025075838691536081178798221025346093611780003723861994848394228899338511999591420864457147232407257516397270355535192280842323968343345160141921335708189573374495118023161658294151710380393195879398795657373975277227696530178234958880607412308180285998699163320842796495757008783704988651987785638986884280402845789250671855042765158064470668166228908601710186394424337890184959711670986591109705843892759946835116280643598390907557883086445818576121535906298607713071494959169231644191580850556772946461206442809220558905004155331640737106235206411676702215861107627422035720610386024533486010101230204132598968134634948706165664364092143139639586645872096079633694198677878951931478802808254896631132762788412663215834578190118917353827791553153391258283332995814882703388255297665444270013544063435050217551344357151340935927118888751680867105669159775979513031441676779404785288567808626396875130502389665131695414005039100128379898736944207360483590099955028746818544100779226929897604958715208023649599147234801893704646587593688038798083628322233413906132525799731932014119641865670135637191501368677851812216141297367993104971489856836944601268753358785489832859824731759704864585063480624439278761227421237461358898186188971814822263626158869264705389280381716381436560743867903668906496047132363265838275513789779689901336705389343867277876646617966769462599070307215810753217447213941662324226330285902389548374413600814004678441035333806492044319820270966789123088777925325606844872010660169521564546913680254183205667131034609219830099177004984598619497707246606028372876995961364358215766979269170712909729938215790186221170011399209667803909804229034036390504513959046313393481179526661928925790995164821543211356753995618550959840826715983081214085849936595861619485228422560407632162936080610300146055405021210755416395950892563407638010824363957133403264670158674320572942754316202426830943772896017699519490235658455820511130395442664739256017973634224528684671186478911769507677023246641072429386012522599456705149607569533092227964287398664856450910017129016393019660660378402321556057758067776087582960547598666599601907035055079304767384892922636374443607575186745259417998660120703718348017726383777903192306805078982685530710570841589939599190506687159392313443104986263406339332738506511327818447288671338908388019942448145978910889110612801988288976593517373799807095084406661502629421989795919873811835356697204068219222982498612548355364581759671643809956716717866402231980275163828911083141865523987554425030362244264726128564536359665462542941413622033109710736442504743369772993733928529479109971604187078248832398181439699710739563910140524564266790029315059854778040292841292800891576108556622698126567313402378659271666339928503180756153304536496746902222755344864676402556083562004189274212571700032183184879170756578554610126928185414074852990388958595617737362078322677547481273315686387648250004735218634797069350790280087713657459024682679691758104399909787570712716974446228199038139148401262911245093431490884018147538528192116913003720592831622548248328722545405933782423320547897231583627309264455380555897335533672943082366070625466845122319399725422853084556463423259752902172602904057217450737444451697203474914379044296304704529073121335361052336343879639993128282961282700783433275666432479633816984423149592841464986513346590376551606576731831813117029469970943130048522943417012856355896209151121125876031184975892562854345253623087506961701189963229912933423715703621182156007692643827395099686071348679007986478003067978867064810569234837436058434045151485030376527691778230767250425343072920465511966750444984841369790132611000172364322927198431754535086211438442014092163691963395513793784199192411228406618410654352676837729408594263773814352700328566954766257992998664926211604241084008907657154725669168630594795349315985435569554285377263199588479204598988428774827373269180670927458883116274948190133583977727289567864681516697158906172377539943234615533968351139415673598427150252289170378559370640662358229260271841034231143580569885317617373296299816021601589745069338621053375362946275758040909877578642312906949865575362723098176956322080586497486143624021503900065421889152088989389906222083476578657054338763133291054364247234812644990428696385598273925711502786832146542615865531531041192915828514289949414899208368868222908244558779434481910886635413118480193087151868594474727974920716643199140401838422494811037356063721600803008573510284366271669781927063261369116818219121520227880530253127912386589759292704390009000765523923403354150827838998364106618423787538880546298254368987465776172192260277351815370395735085955894214679595389524778736382663435355687431171685387558620219242689702076776988092575138202598744786198693973172602197276348777249267036604109367676743705752745667733630364048643344758146968469069892823506300055503673425849677139900288813513759468158350792763007808829794343575848970549579485758650523501140313017723179054957769360276745077274168260037401914806496170947333890405103934865041689308201554367931575108016763300102193649266719327249617421772563945852170573730677968523984110289869113360479686164425705276644262310710708152636153864410549986539801322956959591723679366974138369563227314466004375586643793086919262016102287132459823268080888631249863499862641218879649655411185214739044945755168415067914689475493020479157804730547032203820130832223164395266945755998888110905208592933272799702180890509324366113198168111772982054419977652066630335684425729035046110811532790792754585341390433577113160140886543291733141303819293743553399460251680284228014962879884287745240659484856412648373201905829959967683061684110846883998276279855998223242122002014610598143310878455791525264737681669268556555598949040543245943692466180628316579462551166296343158842920759028022775449327440518757992719936325060404866161193162761304107709097297210534355087591563682801356104995240082259546179730647458030682095872354887107127675678620521611134623058213426440599112605711851020571269355152585734368163825249398475020221050488070021111091957935806538218617448493792371616985741211443254523112079652321288985885965271512164841909557841378514236001438937493781891302725029247482554815527404378835257258442302999006746086633657464634977118985693102552371112858011151273743277956253629129001398124081808030318503116723579483759767625040269077056086809413226528122148447756011335593196639447260885691283735448756575873415335415021038631459606649052748111010845445342994853102742058413614576488160807165894641358251542391778852056020226767668572495637286894758635466293011447508619807394742703840958133948060049159329109335659321995153331333322866456345880642835825450224396450953863402410699123202841261407407293935927477837891931504879331798161625638601219926557672346238280316324226624286303334656476741454209378974442668298506256988549350386921585188887539119795424837371610742518484443876529477272911170426799619267735089292784955411543092874774392043807239176515935672221118305133355786051606790489414499649478691462577001048221020349288063780436490602843718945465490487971158357507120713341707880041027732973947239955605398359380678843862414932984955841260135702122568427404784084042511447689489138098457802254251533206850951150024972291787623589465515558791941852460826430804900450600248334775949994784608995329248986014933203550193692094938068274733796611276446219963459252171716092899825961165241660540596149349382254702824479045917440081260520744583792352198515012996707862035355954548359441613830577809103643325703616483779940222876540358073619236826667035443936885608688237832104857867761074770372029647631973595283152535877877847358981064064335171099903554670127740007095030830980034996205708852753295975997090026509398113657030427702114795660022011154948505274819344913379821325139070862137821928614458784682679013748845604889836596484452057231544975778711726789763141945154686295048738477331462528606644494708870169035010179401379182949872744508438106259087929610745526487628597404848617142140423513870255071164695240893358465436503337793664714064818959821834807098630272265085082861841525114037930202612357338267554815932264176438849776040341476615505459119450923653895628326663369363716509620236474863380582742168932607046115906442008309681785208429956214784204810014239250363826599612001715219380568147695596916719555660614229097333398521707059619808823056462616413996640652559367998176890407828564548734380838210835456795494287490885463699616236128389707757680124969109728280919991837482276989349729460257463915982630882515176470410408471365004697785633035986965702978645602762550367371049306468162065814103318219888873257809020444124969661813747309506880902375260273128364037825002570133434230904772186217283120038800800046061837845156098634521608334290586523635058780223016908584351681282217443425713220092656626612956792845561609093734393233741014358297629753195851351585425438707617433472787474337672959184292884922560715999278160270316252073131041510830185304389623268781356424477230777796513601453023272558017333516375522524148129322835661009249598326317210632866759422643736952508023826363412611243020683088592647723489797258320503959483579946859113908665352161874304273069262566771847326431103769424581153680622233994507850300776666337843465375112352348186473537263901480047913700933279954877151514220465804175336959988738122248496419357182804949790991516092902809392323322428290343926877424173793899776950457538214877807699537527877368271532157721930781031027196054836367619844396715785100112150738527984756777409540212217375647302506965400883500497588108709799562125760778293838936699915163087481297092175366323986661677326373647417435371734723259708414388842123939037817400661904680057083299009834048879669829510980994156316058825777646720065787604569818286898185959720797542236561659912092147178471350481203307731253573010788425065556027613035949270518704181137658008416687050912646719392287521530163338778165204938886706434903170098024472081658269155580679896464742394113341024417034353991060672280565169128914305625282961190157715711232540456900803283635487778455692840629608769586575093548566592314287366295787669346344314472824442200489500228930550838310085982909829921104705969980942838744579347039196456960750293226342983037922673770576551999469508280068950812795283291651137484613708278486974312504204860528982225257134787694459769743802185809141084695358492762578599785532447076458678068758760276478699651034078988565313255976414747026899765729603138032924773560645840506681757101299053553533224391632100671373845090873814317634976887921142219820311425660044986402451327360798315499176185481708352806083199529513420190009883293122140797632200402456544872065719898823958504751402573726451292787599109731188966823184297386630057539651020145244374454595877605910452954592234073066047769131090393186361943565773787478516590836845548809376801400392508564670797250606753863545574628209824767394765006518347217159036331725391199944978557128281996928175264512653569095028656958388647604806026717313000155191928824393183411766100538683171240519436786229450265513047400798432136715714971045932393876192132333174336232189321562862419241828079506435335611070659532716199326410027372363475783176660421520528655254151371079972921092060454254738429855650021840226963883764249409827587256398693494063983408852564307165157704781519092980745992910405390764118114505487246294393751846750492434526215390803016684890492201691374136567739613295803937818782004846613287319065401776182376443187122278143766929023364914993566228738471933651996875937026786485590056398709699308845346907155680543631024086079260337117993284286137710940585347476953136307108552277890917919963832147350360044201528365062155110643663071236671666803203209827460119391256487545281485169305460001427230750226979395284649703767720514427817437737821770885406860552936024963147269009960328848013400058207358013606911861750943417166521254209891523535962170009498214680861029492746126708438772896521432335859695877502950276415852078441876959413880538498614097171045390731617295687677865351533227300324983677466889100288247855723746096319416096452357499578214055960795705770689696314528927789698446751009653996772205865654615696608512684106197901808840965503404799892901394740002553844222013720578486710809149687580952398466437939473550150656556342004682477499767858895795327755994166150554219667426791063500452606996794064702201163576729008051113562654404131496112867499816802830306815107330455068970141421475930845824601956935769864057961839012932189030707735309419220677939428409000928654032081256385458687687381391833655898931030336353920179351616655900630000830273505800096956478412730876141961902250864264940080246875522651512023630273599408828467367814410430259785622431189893097738963335390324296384822376940887332712326233657496276255127453319689289463897475679542499648782670356954734244094436971855239346591428992391666686415263098932471070559769578172307122844248530181816310681246227681116999542580136107829282565574073010176050403966036907963633586741002113744561370264349620722888889391893647747620921694079813803780180273027446634503985141286420646112024601106599800329160340952302172159912048014993932984635565243030516378454765473135619696010626216103812008158452817445576437439888333430187932800424381497731013597831355158547108044394926924091372289382893935219884666176659400209436242954388677113441744329925476493724651780877628867607634948857159575780998902536115359839420968999182065893720628379301274104693557812162042286560325437531370063852782602755893283300986552263993112960719966197023051204994827984087511650134196721085978692697669642472896150605487021726257006011924482598752509760962380510105362429917088930592639663260860975493863657612874588310702421126732215320817134549086922532823082547367202704515672150706703813969681936377292773973384406170966226837204037410566575015553219017069531937645138691127061105029130509984429729436115325520237075188203832764948022794097652118510958172652125616352669573461703151990960664271654377890562878982153196917236995505858856772270531237076527872337490310465061541787337983117656417930467293914098799355590605202957625220266931473327909448494941864700123813887925168575572843006269960392722198074621093553085171937436376999195697550343760858464091247612206357068365793069287319873318333767837321131034121368477343035932902521117803784514233537920257920990419568401928249474635708519759793379131501259580832098090511746536672121851963563552008403320943841081018214699365338612308033886343168197367960802907234946985736290050569046463382799264844153687475408818127680057753132216749305386827487501342653419676808454245536970582104644724875251979696209130336972088207897395458703490524115583989310911193237054054025979546500495454931136828925007668310208736252161179575195733108760233550808831407651644475784301001282611051600983070127032111566425717710075183647313910290548273596237802236278790056825603148972208256432395896556585114470447923434445453376500208089911834334834662498113635565151323106529164857242300443625211596577195801634590376613178605297010366401146085477999439872706725197158492244514345883637487732673273352750528256831625487883166059302360030656335661702947961119083691937603947109089828224763668216803316528345668619282506337338216271610031322290217113451450818133300215476667140611426431403223582886001442838101266658918407473549692878084468786908988182370624921605295923251563814246640540499081947771700295838640168835657734283922407659028711413128131066860409179533506688032515938072058024581441265912845688611398040618016776002330919095083744856107770535348279745945524816309171802373113674816498797597065158788164748810649042615288209565553735049071244378996855690120906886696335341147911338036356117292808104204017287418034049706560281756644742465277700453489794977140313334738142416434788406776374150241518843726236990815399789272436492442605978485388384600773779086481874975954111535278508876064315900056678803561476552701295720798657589279185075761733557594247033924956887649189414371453802949931364823143924835268792522814588815190331996334945079274341357023171907131186961683698990784085189093156866710202824667000273868912385457637664183273892736544331161517391618779785871273392793464317554351712276818321751185994652465906792002899207762833969957059623078902607404150907233315301483605564223890733686799897640066848605870701768745864608126193249829206789297978850849196784665456170368161474866432956520465989687084822536469321556594208127034208021422972710633405450082842293297972301645652787615885132339132454751864528495145566048746883078916151924776423359982351540157775704309396750985194565643706506511808311945833088427743725599866594982834463801093811111470178545143054288021840184454210460156189098247502856231984469123990552055719175879252721885282181000450678675901821633584712374660835250784117494429188829348368656543859318623984575497954389837129481589398899926547849036710603257320518487858437018271182036969584101864829629409341849762339160059403041604575099090907405030261118400410185658326761099634393740777691258991179852164673215592512849616940535334307770683460662658536786997157076858463194124710390960964936605814456062760303487880751835200045306565768016704332029987945108074761007021040893751495065839005844406932973956537072804684607649781161960161470934565853849676613411930407089209390390791177928920166243292067001553584523180334412255950381752667873885067992601756283760317217143133130634295242941176776170120209030923982315904879161099258902791657466508337633210008166359721044911727596639309896821936486497404612150037299021234984341205424208484310262135176635768232759084617839237013139518932374048068352068065633432462996852645632906569840908950036131115740229677668820191480955939166424160495503942722580038582446159365237390226632124967232815352633795355310166100259116162423943184092480901209874035534886909979155062682431445737793667832451536261887313210357669886943592064618404331053254508625187141438692119319149741363026881056272467078665147439945947701360379453570032840252368922914402155721360711992097380068827959295010417433712446051675662456691323782284411460010728463276482924077159633555491071706092504974097895210678517119596239257980937555010814485554848951614035826252614105228874653035829886522776309120222179032307982053481661900381985751873321427382012680735060108308820142685112705634808158062919156312918083098142060334625750899987678905170452442429720168777988498852218364889978036824328850991633940334218751480153080448602084481824048055178504613120768424811124327637890973621037105418651733824409341250824009631588200422012488163229700136567547856609236799042238403916513991188419352893442311574255010169583541776994783015744209630390680823181803381305269638637523275163108051260394002758531667341488661171478913127503970494981208938163183735102744732726762520353987353788726641055032607156809261067045074299972436258379580729209327928274286033550410107317043379799016373408420886919342946172976970236528512274896839369319133764983556151289794695047972813782962120971063689227727459094430606303391127460606101359437397496017016790330973543097182494616740955371474828506178311874952805761746563626301579677817742776050407575714526517924900863730276071649970034385041896270344456150057923787205846942044291776531281748922443587253430135200729929986215344079043247581947563672422796492276075338537697355667867766721411478372891250089012295482734279420695378269777963100147160526852546626490561285723553810092120773399935106896550460709133091758554497598063316380741979760869504592794565401607283983751474494479955664209224092219472988894740715617382220007378204936047773628066677333298206189051124846446518527088758568148391925642643031752812026922302520649771384653138400804962147663562711460590872967950902329061977294275445206802183598935456741760848842389139831130710766578923238036576335657372495891957643544652087389822666460809022377407646630561453034823832443180901511377534962155329344196339025777534404321050002178901081002216510162267272814771127879264860714985080087618540895543829122089675582058636422624512059323750814981759477554764983962713063497101141925465473538427731471710148239034191056588486636283055111302626698424447565606437064228700970325069992351403554811674127562491999297035183267959350896017437475059956118871048131913724903576818335035911048841826022933171350231810379945434096383973146566500713535591703789879534403135198706114183606670973957238198762810181387883009273874253533168878849415693363048892088876541868517145083381143466638241639142924546168180633977585239281628352448347949222171156757526357099122677056132018046658493633705635248686604797508116977187249010872516607873074355636393915231285341785061104743439446344786384044516976348543942924098911695154072724211997254187354700738007559383478416865724349933703234279573713401283426091544358185873783370589095218441750491575416569150879578885308983753360326052792786910535996548101718316972877514056444634168746827812385244720710252441987537039549677441477563944790108522657820167216209151201113526530531400250566252211934899032616531770486889332286624463930695849469616486235738951473106722741479651874161564727700048313042149627665592834978844851835310913421180506391243389685117468589756967034987384827979490033188124629745816478764313070442356864781314827205956677896274849341121805141272376832710953052737380099737002198714172040320255449008413089511761580274681422181340694727806581953549176043508538414822910146169624501362885836372428143122766658013581904853575771658257100843482034795148241796010894273970892986920571807734708936758151130514052405498441167368238254293925286455293893693361835621204659201216867720895024872320986769571994675790922016915332191282785726192850349305043976031993018113555059625548102465052822635673778997787910787190913348158715346611233827239301202969991703505069258124046351030926469716457957725520030565026657012027020247461701068874033126346463326190568717700934392240386670932116567064474214614538207261447731391524258250273945604505350447294385518920954096416962902264874333382849236199187747945227320077820914108910041586394976311512012335488815827835730047571918922531065457173650175442516959223671575464915413858636618945699513141770195184846570909097609872455385552114217716528750483759039673416589326277165936943438092351923699093870635452004852318742318500419685766226856215600250603595604216447143516393716856731114819602810199447380828495164681593521687271194254842048062234165803305569645718573285418449639181574819089045263157296068293611204439860679085485285957878433411342942408020440302882539772041860716892880950889651600793936587905849491178200737443605575068652107576882360921212087982293997010314228532136901550219173240234605879018146291997749545749242156660669732871430176362886600655951197698798945189733740062853817163739326099071426410865502939960434299145724072810391519382879677048392020148897981275929453527657323598600708685730667188362422294146395485696616767948618272152200272952941998318978437522314867959677234793373846080486092017438430654337084008243942021698988347480136148270625288180091638550800674201108068046932242097321714736367431624234124847310525991818882327331702980426419685124908137777664838767742102618124533315386758100029120699253561276533005685730426875541463248690400903775494745819500414101474244358901819140269822491721606283853868294098914680930971157126131023120501356561728679666189657725149522918173720673294283561393199145091784536270179708533690956405106127345473995908311604297617116812567834048118300995931878241176649710575775942964631593067682254914915116158882955487550728159644163353513187073806190024722293001932006692721625202749150966987033834224731982798409383069598063727423370291470704518932568162006110344991776358350816345244798617684242559748969349282005656844839195768073289454733760107717841485628530247280685608847585833889879544878435160836702020902402472299987870040927017904222881232921470969278837568334114962858187576530110628504889461921866048701039557685816039839988111578898108533894300696953128993109782719487613992060452508751500382229010348294417679555135795538519261182344190414164064814145119546385006166933497997005791848984720848636649381799484351546230008227987046194710738121045240821841208842051825028234825697745413852283227113630902324511511070883338945428602210025008935881510414697161680889045456367102446876274023188700513891736109091994588585972563744008416471595637127872619591374336603637222023890221032116375389915799723074148272761162942297927097301641496590821236366213577952801107622937702134863178677734137506883103928292003280715939699481376408949417300045033133182583133585003455166577024972323033012172669777424060170080759555439475782072319737683593267018612289286028084065906021594135453158828792478657306439706188293137759563605084515546717300355090491617735951027973076766310481897212997000622464325434460661206226606515791991395744148373716028419625249972395540114663706881335855316418875487821391272341977912101929728383509315100907128937407278912558203602512384569656648673366480761536232905272072420110179697449076644973151850403772457997181609125022480022317881100842211934846232757068913583095915598649059337735993186648967612764958683696716032608600259426757544408964696542177851907124860259733859188637131312530837459801503657239681738060269005786228798758256993292030986533887105691859856869351276064679235124236134253530315500772791036953929989903562095714803650152474719838638311769106200951992160818879814167815475447974807985359307183028845274801541057440330865769646916284431142108924862603435961967911170473665167267310325109091031580309832310028635108176475695394170929927189086209617833664460861516156407822182268876752064212417038790618876420374845318619429180357629951003290820928083096343400219876667055437862031630360047232010981273740352588479879128823841412511791920256365203283702354397825255716224639939178978376341315336747075544285575529194772556866786763481800910251886352655924270453816650896363977294388400281654981036220262665668724108111888454921039580925542799450762005294240850508447759403816877355602586269483419392154103582055751007369539369678655320130800472863017638372701289121124432657629847832269077855912564601626521789582229312087286725080747138651558287637272734259877258594670565504383984448833699044275426248250223023943785658162674665044274494873895978030198096627865473573381434422426997747853688231158967414786670098558516833284440404212721399624808354414652448343853118276838704657401047613851534571006617122850342679844422863672793260161442992181155913798681652922888008765345103333754267993279237500776266311171711491776444506352844632524608938249302843134911727611831001945314502337563879600912537515755935733798529456666545774724180390123402343990968865756088626360926584666664620290827681096076563836607765584174131133445768142540043579723189254749792485590488737899928144857406358755465059190466141318617012012843437555615163728382761592972590664397811321158155784412762963071753430840738752541902545558534561702242403502237994284328569510238503887097786611833509460290018670324341025081122079570398538948937439789876604307156114291858652059130478997575574498936903165387806709018882115864272924626703804665725216318026176975985719093467699683637579888794770321428201259906836123887186646347661508209006813678400325581338293582561776289323562989953852059182031460992678344588424110393570186210756970653597242823466683301152640524397618005942622267596401287320196067955134704839318802479742040199597986698220411977117150400017528346783709423001131527904311150633469295030096796954061774258578683009697334596384631673400151843234976875882770465866264275462367147661265321622214659092528245278080982594794741168149684438862602471156723496007766230511010854222463503791692959913581228309779217189629769407105534071707042553282940918438887461570720943851536934432905000771423175232497144919413778329610110421358927338342397155385358460626356315434933572549242065609276311586701198058174284075431386699143716036969066804991751165165647149396539930876101700590566927670431619901586871284918047590275968346717424757416383219326319637612075028609867879303530471214694075008740806470347165833688256204433204607633640439787872021480129202202650034472632783978214609896689100308325692065779698310125621102141585986025816199648666471943453084754096822585889202909351446815359799004756223416175589838045366787116651116089433602443482319605230155451688053524385545348158348366752107295036466816564889424785264767416850838574399162838730279225753349526767299238545454011237919113728109538641804962577539745288093813908078975416841915674954325511892186412168120005238958228112895069848981234737249925435671458317459142830002218543722733228854461435344314220052167143478360213515600891745835531310271245735284150926608500332063579733104603641160094662588798054375031299438347622389154125118290713393005059854265435175906700662104512694872582077733375221890741417603629032971146470327203701080638818257544200483573197098545814839959893502715369512888085189398208804388842074927127014349289434025718874725026182589412981741865619430762753381114743300138116389723709683491170898652933393626871606609993260510207422639115686203927560777678514667594884473851956323782333214606170939314096839549659145202407692391018178265874639742937865962858870668442389845063910195398663527898798890191103964653664376010495264513706522475721508071265868848688754037183632082122415101811166310187215303253110278887230018737747916629008063469524272755565852784519292014834662880106230389066254504128146665197603644238465551413483260193790318309889493838329283840626240698745087324689371342182317211709775094621562281554190503488321899935737779414964215742329421000027001093821557822276081832433054646238907301035951455835514490975621776791261829743332144580997267859459473023137324746215854855688886670260464904005932240553688796703881047170737249893464884352373135420476613439305210794995704108098980986878518956769431298727864515187597487161466398894751152459055264755435785682944996060719721470910006252485443349838094332541395906084596262258463433486620535924905175286155104356159930099606770255137481008233796896013905629524246723161195630940070296048381671690051671698365320497794338373934105929840233262266982960262625276357383374053932685197377986220037744827238013257146607138975837860875737246130272330704368324604851514148961111762570541201536411720248182677473486995323344055938419047811946020304287464228824568778217733541009014664737654612869854962564635652551326952742433874237640104346144959776940272311584036308277887792164572697784424242780693967283623189975948221759213436521675708761255136487604672153854377144785646471155977098892752911344764048546737585086639569333332941524691949779280278891921864151911492049418957076627917501647195157574138123530706087545904448921266992702727580881588387086556005207590013789399025572024677468117001843890051221150295004687469020395426222717031074917282246968435274090366618049471419191947844231096813408723360977990493441585745685808705732934904937119619518891310582730540562051616651741433091870009758457300131527132381912791197152922725141232827880601340394622264700933337831700389711535935568704533062218101951336141296405709492453200358385264841966269885062473943290938792988105950082467956776245623085161774523284528124927985262150910513461766818298950649065050126466273887421011951162447540439083659913046893535318611989541455477497062833977228384865901481289072884960671009374238562387867103307066325250384765371443105634226418951094517810235025837543011476844652820075040913965514751957918808591636124533376807458129464255572673478785966087588416757821214302637069006988920173340093621115785224145507817792019152895200616811285385720863330018203506483930399907797904577125081400197540721235706839614268686154660533589207891419969296959388049914572118052499183957052523157097268905700608563794969495807338563079856398595910861797191170598566500882444370284329146590988582160231813079726923120035243733033502559545861349909434272942623530022382512392580648122173459316077984569972686867262410307068090963423607754762646223283836919370959945394181463336246021659150293643119052733883494431416642977542716152391663061214626821834454840107114568898049848838004682584666059683477600189058793010188541339468225495059438556179099852657087772404843163097365468911434558741792314152246621582335457467374509833617964474617305172583112966766678696384076633983739054841874211507357043488576190527938264282769481909439472705262020824989974378954904371310637109125401312320075910680269766887195137810299902661934177948909047581109032285138712544958445613402762248566703465871320397869292786161181504996782132360419506677574726225734635111851178908305232329171729260852116468936349038666864155336817620980571654754748577202808756446345670875228949413022125469293790820872808012182535120779978414815565512728288605112667978299258027734517612117161170086772086788557995795788369260991647586692952708416319710666743996523266748927791875113955811586832162915260904546323664327144155500857029432606608440690436096668654903059001175663376064641544828256724308187347183743774716201867363549807467928687862920307801434092088602805525419773752267732519369212536474219658476293681224262172755690168823880585814839885767086114655262791712863498976732047666277627092868565525859389911151938103411265142211711456099201644719066277487984548212996392533848482369423877162954668550015149698459475911985373688321129198485492563214544994112968699791804457010786798000979562458830055844896000987986414751284934160858145823727331607747842641241198751466046665461155134481679420045620477190588904621415156493068917238117163964783411846248828148307795245146100781369118723311345274698113738518359833286321618531520533412199027349443555748691608124254581235686256519880326490112286989665622496615308988521827004017310724135277619931281108531454314749877272770177550931675261343851965439257191872800014201177304266989275807966643989962324867088451968488832089883633049545802029450820512636494410552610041113255070013016771484173812600384140652414871061473980896613113587796882463840723721570296841421040857807104170432434858856913792375739873859198643234154948534429279313974561902498250320921462455021619017119889224186003029416477138846021278275124685707436100690464218894207734991455557101914470653236828008230936452920433126875928572277534461934468404183857786917720393592152277435613193692178369805046020680574709850778184222981407392030438548844691965593526382571982903001868573811031424328495513365817703917135343924473042690649335958485132717823007296825421765382559788407797609009923476785481156031311065324871479980566564771498501686331493700392345869428267674994697560643670988712101002934481320312663992265689024521902273588592426269890928704996887460854717020616887621302365815470661394558776116278492808116433591523831258109401086431143245628047979327667609646765153407876215897187010262713803551992682930979988297940899914644702253103164907924227029625951812236375577697793176665831750255231771302012200256868075812964907503131722146375401842420745895989419824112005434875076871099697291047972623603210600782723611917154356261794047258130867544111646749139987996258781944360286250234389837115396649331708682416170108036257959626206864518002268675222048955233183535631705001726832249392159619041182472414882406216300309770253777757500214365909282999684192371784766404439936301249073376419356122763282320246304605123513442036077374586104193478608734961878108630890136832193313711413542037937509058838165351947348219797341153542463518183602493365204930345485707511020337042570467353333774869218039312485131668809507721233834437689406320659617925753327926118555994922852989272165033250288770481158958258175432840841431262465210052287969181666969577541707695998686700372138432174126794879266740529146628307230386663930528125140196643359373025523877186551461256383260247879476275249455732352080283575332771218894085572622100409002212641484560374377753156707159924531914048983174411637329923961869327614638657486213399935278450134659817503114599889394530726176220889140888616094415830414044965213213715470866852457870264438379374607396711334752674786063390703264728101984950128040731068741994659388301263259637211430341504846909237882434578792347303209845259420594039960324932914176422898822020884842271375241292468876728565463277952420045590662312515068993691627589790365974284519587077649499759370347863955302144375183823964779578671298492815728582395791952722837750283685817807206374865019001798253189923132097615026464983715618766628283967456370550225709129597130632938244855568446149467013449928725852662468053094475296017285942318498476322865619058094129362164582862800924197426070867781967896074846570453407723722103994677773877686015201304382126599581533807052839304400827590493443194906775507825524866607758367678594973665672234499318982079401977724849877804157940683147662523917704305722642685201213708119245449857506957688846355976910387076365333089655377064847651258051983605073791308567103571175624913235043411325858365182599785427143399631568199456510355092485642175423024199135384119424596657328645909317274966058516870918795421980969613419382034512923696415709493927364992752812632805689601463930955949942215140060936723387276263211989216846658486200479277267665858188030490357558721406038582198197573356549022795201455792563404678897937676448313410903686905045127863554772993899250435408256256308113699447884136289969970845923003427414146859444911200099634983888574414203007793929957390231143471174446811286506406562670764662100039745548167251365162234628232565788674399884900287637435760653241974943341943452704647726907810891665077137893336985504047554116361889073390551987387580066112348624845565706828687481207032486339859867747687235448129603638968107560495316293104783472912415568039345852845073818405137099394043592199575907230995190678398825356852883360752556768714354507587320472779933998564756431654692607063022818743871425677106130721046358943699024571039797456421968033385433509377919289965692213098351237263832386607970357006660565259604947957680339739302284571696668306294284179619488772447110240678313829374528934957820393734106069710882046165308081176794155419751470451217904505190325673468368244242202737938527160161123122244672130842791895849517142177003081964884395048287860357402052114434699339113842323155070778100664919413814029027807776211302635964637799895772850598716476466309367080528120880085139215558865624476646578225362044065149540742486922654754669495131496707479769064765468131286831096416067230255871424001397868301314117773975121294706394715922174986007196909771554135685765081201624654705823390807431604139148802698401814448216672858721985370764966679596079724069905392814018734114721481060922642442377318542405789926657685984859860263111891781592850171149289195599951256744025329098929670475297288848516212645600784176157748009395774986581041603058971053022201675378435071225653895331624262840937027159946269164813548182373957995308475099635296812513200542715646096425649497028391647057997083845023734709680109510219594856704180951770668352829317579347831298605161576215590758038470055158146856869957700192417116774406324139945630495485255064205915417773500248469453077996982173022166317503977235832147213950453082540435950206899533004066784777886375156961159016563624505294932219413661916970003366179314990262075540268804471630356895515238710908985107200595494064923023577556715429959117207390618789032064424404860411266713797634514913965933001811943868806953464385516585493841287803117512686716893101521745165156404800742429435487719791390500395624082123787045955249331923994783376281902468019262055726619739706518393965124539025517344231706779544860117875548922712560587701991255148159762998664521569807587845147149000569462928871833687920792832756378703390352575387007207088348642588168269421924300181817371034886795396007446604608037402550400545722144694355772183028356378257386659343742425611703621234393727396242826143743267175119082994175125668642228472238992897711101670844741346968125305776053282170873660067789897989603513522485470732520782195746275405127605353586235784248904264259739242337666861644066224385069581714822652220082864639032878419364412953146228558218791963555040771125875250374275932521530809948982483065029772816144188684540012681176036090398620525624827026538252821241271575162355481261608403766298758449731193386111001716064009592559163942114748489735094071575756356177189702126541049927083498667477207053528276035192958089473783966003410845444611497063999436079064187707910710400791238801079240720596028323488058216514763257933149708769238881688498129399521300876611250745672238077468503819699170933575946056093820192154096990885998320867393980080185851188598386427697644564133953423266903201664813301858329457217154705729080461771745672007005711347179672363064814395630000747147669478755816125160558428523225049706497957563134807048119039091672377287855605799016147140261780292169584269791792910617161957905295468204734248765811067316246755579903009045312927740697609558270582849161758725031598255280592907890525272439583231894733380523478934740409575807650923868171638258362698883033320056655917468336139730280070329943944114532416497987514323023469369532493496188396030000866563991274958795086938779171749659505736772664519109854976785162800648496138746066493790939120320852001302784841737027832248536766975258070558530733947993946751124853432080822580584481295498086495596416877331531116031806017221803735107506605621282429095755216982956565913921066537707200737615322013395863921995969476532435105804935572371842581682822692541508414314065280676036432644930774261370413375133235814109369360757676178553300333638052162917226044635462953522114011491405461221790804331005443407429272621180823572780289624614993937456778452566759650273497007035571270342202019981331519975821774831661154476868179191262396562083964700760953418165044754064350449830498111840227707329557593810431342057581174552140765320741888222233760059570547340322569017724050373153539364963706338538374944133819041961029957665899433695557981383443276162080938533849402268388258240940277976998233173387606596202276298432436761409781677889598337837529230580238485073835571545923949934966656066601405965522907642525643302677506252780744920075169061660773171304424194707944279560166052709098876285733613461277937402937381843472303750517737159855795769839306959072127525225479393378836096263184266806969956288298778996655167909425274350921165570190580572767425604730480744828528878051844873781113792240818711541099452454485054546941868946129985596569996681670505259597771468574208237326903817502690025553386522949149482827417255155722185202913487124508444586745155593815567720315642855668839923181052029980150283634117383001222903873627426115327053907953447468852990757945890387795072642537821671554425161097592813489476804230785488436303313426668250765425674133564281118272220729621595942441066416702354690963462963581181306475588146978090617998230097829204165497549035645227104156564176389980176159668175839294225552257514077596633135723687081748691470814213935318284074169966952890540319566964620930697244112387809851633435330098024559905219663542177163441476097069868131864839333963417149150573468842682006561591057356033658016737064766162934162807055826594309378998287800988050466047771845220849191981407552804729237473940539250828631858025052947670859669801563104401095378338740173656867910282138855662504346060994378937184189141188859238171404077848954787810649450864123911327060286970889104507078844784398616554545472159835689954986491498603597183736588977245315725347293442047347034463453403758285006345573639471562275003402254716861695559460837774769301056080095587774409222273079473991242986693584093290917627338823838604693377542414829172082761810731126152861435437402586464538551753458034012559910013812125281515294665815431943395667633495762217748002128304499395780949728956029160179976372798796968922424519422878507672981328603778333251612773202245581774216426315979886685761761047007929473345469713216595433508439476175913332351005005459905726827546642647323090010540524869963967214287814873321917429950329305502026027003630874583645711604032217183024862341976628984920587176578359572208612495683074120968926216903537385120601440202957365298893381871696049143025312959687702136185502872726079755107406411793571299174977487026473117786582909855314373048757531715471701037478546480767712882529990731468280101219184095888591132989995303189120604414609648338605058015969089581440081107346607689012237401385049188189710966281451398678135984211701587663922822108823967784542708911738922720959940953783878825790547683494196301958946036453034510492713540582326543557278743494035291631537978594851580450026664962728826620748753058778377348547326086508533209079269717679674644524612165513610911814433741968424175287470394100973943253786574999487179928252015822007638127239923858410585090434043707790431243801497534185232381614254155820991324300528309233294518593003686903666879412891676340480543634709718321162614208756911197632112511326283946755993433639591298934188111704302605387649049527107064033980547303927769781707975648343315160559268152321859001841173487793263177293969919504096722160337140658685083026921182058380900741653703056168522129191600808286174012118796331801244796398999570397757166277758821100837712700958004752867461495966872637529605662070590304118180150611341895424000690950370367988087695684539196787167824184617708288374981683177792239482637107526077782524498959023174791919716277954571653077212110123520493264774553354985748049720173726391397938239011903659592015746579286545758708730908473771395212172083988560250150550184097971729646369142960858264469247405250281252279687913355742714467142737469607394814131515972188940249275231215479365723497624929390642663598014918070692278330981536202112420914144204644862742142435911930570714761551467139225825595010245614994920619299579278956964069303873439218035217175250941492055593424339831247408017385722146617199632613936739737610888835411210806162346090064426670242193656608398303845177152957342763925275656216531735396108895988258246943083071303780341439048217481938494455994556646028463653514998947452879966480117302148349828013504975288774071444738707279738995519820555886939361568596825557391576854383682253982532341786594127790698971256655084525921126183191238400461279959046224791531824414783165951505350703819892208208560699836846365157741545718563663057452688016591813472265888343216549490605754087597214130502406877042604903263086431216439749054387292101761462187303587063802419464564793766445025656417555859737616229234963143462093733731250645737567125377868240603724666265000441821862912730269153381626709283697176975163184172973284152243164686243836268235712061115826470771881996012096827890667521847509915251407048495121723007517326254176345764995671696955310254172272818964439835079594692292565777641306586646543318943154890343230276985588100103540252579316706847219795166514511407732056508653184835822352186525563861960783718738647265808414687351026163555524345883497465591866356798485098152413717037725531711845475345143673514824715577573995003846606674686461038373247224932151812729793252949660867103482634009568601794010776917496931023757979499253750277945195285470133038316541145124139864379028571621249799292802840096921994833895204595955453619020763094154614478420412313775161419434882344702302544470077549096039931423377907193848223786149426212802300706535111723448442173825846620786819167980054893244532652891691882563202649057637429510388123387612047458846872430373145572686047052094259490460372935600169297265352317230833504637026121128781359226267695899539938861880744166287543767862619805152375286708109882066893011904824656541828003552813969289362515275731689717528816169746402278101300101364218249003738944594320297403983823568583430706304999023761497831383564265820761289657294246353293916741586713187064737926240669173253280573307099333030262353432516366688968912437364778311048115271614320568300507143750346023418875559983640477630911208941043768983683515121192215272627883013242578427023322078691601093723545461054326283312219804282989303288425525600600340874235568248860892704923275730701278054091847357120456682741135522636646359007578533094744954799354594369342573712624783742079501786087802608752838079701491717083825652537450461613954328462863586729304941721157529431319431681867180429886737023876659474112750405178354455865394263799635415609049885242790476569728672694948003719521038702885639814990762338172222315734328723671782230084263142864714718100564532906772740971259534820032030995934448963645388609809814328442238045399471590403792398776531709727534498705654959206407304765171794953361392791254814634968722914718639375076653600352399313209331843882587457559949508169720029868005514480017415119065196916531699456329200513236589790234001561182624997684636205031316501159533236130089940918240152682206657744441626710058806335080337906000613590386496902069412417934865572549523985744619210230988464005680026360207565560855873735286433340061611465406755609315061571701564922404489774753751482066720599016104584562479409779521707781491524983420333437186300981985228629081611479728219678691484097335771416842726649616801306552604116087607570964274205060474076041569142491653034469368949788287314087815048180758340724779854053572300186141331544379551923089174668282711872905164303465256046797900678214202480950393482693063275819880127906218814966087460036243565771417372131356197531485871296862233624407222326645870259973590263996198463153904549026606973866035031814397445446448868381953624265393896880598447346058980852728921871392281623922399636141926466384386080674945827495656668479192476759555353974005822923037558529686226541419048711766272232334692640671166517684493543248977654581664938321133664547530491893049354558317802251123643146720427101845024742873946318103250876836824818245758410425810981914980980639391743141404890666746683844973804247928623450022482130064327500621259549690966561833534107392859750735277425497766478649708766114254508903958262920293807635469346328628403813334924562669068352563558309403358534779035296303961102050472317735264108415156361053271990382953475722213129650025617757922228589350585760927221079549967630612605431600480836900588905504259611874665690600182822029984634759685707421278745554462983559991796508824329975727097235360524742275052230389962418441773570237564045274393809378142886925007887857299498210202932051076913754807940518361580766290262386507829010443070416622400443007552430597305611193899116745260018246152762580073340253191498516137108378476928741923848721200199656626874619403332643893254481109002011625242087626135657521480372370234802417796728746476886634685743150723392110765518836971156307901301440104190296722675372080424213748824810998186325249229014404621016606170577305266781577766196456761984264601234702003328053400377018306409944066913997911438068153493194424446419079066769406944373785437563217728234248961224072917873815227861382832853903100000127513381768315913457317047646031593439426411817426551131817093074426758758707690168563233953271181080574415964637983623437107887631105562312785496991910640613672428500463583281829491914452234937249539377911422598142261850714798018853607503556984767490900440424930233756780180551638666097200531025923364325776570572800720016485500397336359586119667700246154085760117667933896146547905325583773423626238312341807767987908133779941313404242540913165291814233815853330333740623026737896036222478747387164204973667680821826916718451380669332067861784856443247025361398610565833467571749727214340653361117454503653016572817340502999611467276229111989405822037679441159936664737280524097276324198857106442492873206448816919072767887120639430000508991583444761574202552094649267226715478925609037264828840843908338035605511660026875755275632560835895299228133381488501753716600348628946045798994491697245404241310490350860665347984654900721837742246580057341729142598380719412617869393424428939590394850493454455110449716760821212127495329639625505306999549767201025265536164663703723295217419898116843620294504027179242649914694285962059228842884327961345301296967804539708090068563156734517438018211423386754775305349089483537667784953976134546721391342775224008405455007273838193489218337565226990726873679476155839917286068554504168171463797000464413232531930156321784116252953329864627144263940183591102794546333684968413344951000373654903006991434676518914552568665461424239931004632893529027420062066175258792984433257322457708694987058599305996037093694512901348386999287060440830286383648802503636477300074988160415699615169884570901117644737835527474727391757708981022692353425293702171779959211130381107212028929059803645186397357249628270917589857116029314709479518563171353096295146920413169116299694027710256988225652288254458956301793917627476137747576122642835560885329818242019231133524927956581930413911037912487675631215553240082211737035175973090998156059392011391214506889771026779325362055354846993197881487292598002754117778851909383591936299770311383637818995657640386500213711901916454456947803375537829656268154984161292670815789562073696261122438339986457039831868966393507363644285079917169237236837954226548587773262695510056923068924769946167437674188442242540531165039200728296620756975449316482791797860951454829375971440335256916812220974447332338480014267989682887948265097701365157516351674911735298898391515156009093384880725717949486690005031205424171787503937376443509457212978853704153769774123456689265374804327004149756424316274556025115529761547467264405216613393974568207015231578704352635487898221870907429301419741437717564832862265252613023593234254625784509481253973899234086312121297598533943481911202140108208461181719876590689614998922935186699428062788028176777160055137177674991333622034832887203161267993476502886287640000477349372265552380184694108655261117284965901782059252057906755270523879503369957694479593370553303079749571735692045107089212883072893329782184736951932750187414200279248250007437235397976641791151596709592727706517271830236647563193924217985778476354401814281300521292812742903957552598926932793282507353890285834342094739554946140635272316185153918868448392379871303051200162072153579469227861521097170108727177808649224210435534961499483891333731826492247586384630844607746799209659282315826334739702014888506582225590523274111941431011536197004024694266645050979376925943437896736173565732079982281489186485650640003018754491257720759286900093867755651430463868167997108730374056125116577128330961662872831826310449046718190331540083999958723391060798761214860501964003408524187458699050174943508119149023430272577085679010131387975936531122881233977334524499799565283143128376397530418948777107992124388774902238859465251586306165200750207308124037125871985713145264752027178435210114728700695702546685039851427471606437499049555698058032445181591635462569971191093730342780030533263933942230485576482414476185294721332588753546273582698490114932818500807209540441140821829565639055859883622955759465885919168548400330980159906912073922521657327709583493438340420000560889868433123461118197553927219764879446663505633943278967658804322345426587523292851688255489128439884295400953341431136377108982545757197578504186260460017629678239357525451345476052082806613565792126432746284427201673738810361520752792505146993755034612543047512786827767683769959153522530379699500533768783443208617274469336079091154654026886558069635987419944448880724204065615207158856203632881079169947263821569981549974143396840523617812643539275380774720270181064192022797511749795907656948699433647716523303139860564765047605228338423469650613695069936076271701057179106245790816002202731761749561073329555812846468214601563141539039636050265855990307059648896372903012067132173838864597197991029508974503720697978432698047624842289362883655008604573415518079164672568385415847068357416519352369454108114015160696196339696380357122350340077052249861193643073746735224193082815572603199123197946119610320346838595018075122628824667394160607310333631350549936340235066543468899414007174290026180720989091263341353405691325335784542098745409512883834489471875222563689295331352283392606065594898432749768358016843873441171395008870389147825053677340035762224659992957768327170516001052473200348662815007452719885113701964310050042281884204997209826202901177414213511769901030570808052566065348587170862493993708016074654915916473200475077824811441222235899215109875887688641990950265281995670020059160487804507151349035256866002476139543517797166865706573503837416338831821600272888184714842728121048019767683067560867609222262546160688279689442600361824218844440031704023520407665288454081844070802708597712113508650557957225181844668943344279934761501205911174800567518869083632878135355840924242648290000597070347952972580656709968446475752536086248662476457149844850248925604066964372342911338971216674136246703392108290081764706804311836636468418560811036472746428586798215557121653798658118153246706496643512347412330723251057997900881019350950380703189404767162920438322889864770737177885300790239633706728382358902229302813985008465193195551839413622549845045557484052870727204414842111739810896205677616225051801806953725351673868371644077607458223090273406994321010046594890369516330306866032855045307667032980112090888533574711812197172071020323395315636036856727333070482585767660239208647874121028327195101581273188878694709008649861898314910415544126014874457149625166847501361903844578835759881689037375879019459320720647151355516256905614395784940905143128390866601082111583698092097676573248777999606173626682428367094838029592256667365183021520008816850783641728055859928371941841114668239468110075958822744669315983579355373456939676426864398735691470128575128172201133013277235473616372862139700179472714946391290358445917024119767965922350965450951524463681210647213373686408780137275140979764599873478357403457926214368167142177200261306280277064717667941204092186989465689184212628825454661834110905484173407999330488576042377127898264450379841890481236725659267136081758756303851237936981139309717484530391003635220538706195360506037510542925365174633048749094146041168198114750167235635873634070675134462481441025507358178214201944450621404848111655309567391797834095142444640148178376755618817611924508835646420873974389735098483955177435079251518957523688432720099728422952362683458012793996790030754641802421296988493842123857114971636465452509364585772937128527117725347106410879150290699982122517998628757636775682476028018084329216403759091513197623085626649830927233212246168187549475580797248402820551815667648750135496236555219734113504280971049269832010591273853884546447593237305103162081032033867505877044369354054330797204307098161506798681029161839857835434826970233407589314751157468843843024790973672724948408008559186024077834522453305865905405854044046620227916809019691212388260637707838531867868226189910657326904570466417204701825769730834232418264475252859900344889418270881882112562568865332879931739265162634956774080828689909473602309977037612759252106767096004478008431702240365376008347849930818192165677276189250568855154452991407646200919483788259613395050894344235303182492935162796293687530976744699243789595952182605366469908240734408725112678035292568874622725977878642351475802054041362750094347320067426275960970968848982911854601379505986597572514082074388518549296126163333584977648354781783118989757092181762187583583255598707557438141554319776602088929181495770209788177023787747273347114662470498733979856972508804922489230313688054510167164419109373085464883872299234933513253892471345824969264439703993317552897941852721694743789130094786106738969021333231374629061882858019031834080392080170458493170133366644682117427062602987509759944546063137887886026615418549216127186812055987960183139956671331010431212295793774955017746490102022483830400734164136676280003854194169664553339159951862775194481268169677606345999297235944092849430901061665662083414866233447635177652154115631431317144471014242057873014390966405860338296880708201201445876373549332087059246363478003177444494620520259338888153743680235948196005797308850191615736486796185096740399307147416026886170296831476750096306938135972742749080001389395367430001158960229530803616284154110064916287338613693746672053298126012513120019366902228418609634165059605160116324132748952182880106227199902336364334937914809240566656586223706153848318570988481454549402182560643420030477090513923997971914690384528457200748185256562162808975983971794823388031139222510870138215527491448148972911184705436865444108194601516391052874736999812830393493081762823842436491476264818450486489477355752170476174204170906979097860836544665328607001224303842904617893816737453167813920709444914636925825996969301461841527340564609769744416402284950391657662434875155000515768746106666092406112837955141369732304400214949688986998739254866440228420459469962558847182920149808873563447936316414703844773913288339416235232647251429475426586108831368564566945466413737541628014865343853408920779341962819935133200517994094617028591810337205275552620618693941994453656953906780395031107433296507088760563229693399171686521428774414854744639471043711248725884989332944771606845511607166084861025309730937234233691457377395435890040175627797460090732480234741643048925783417352774038398451069186607781719437981500784653517556972764493133361967459527357746485437538077609694079336697263363244058195684187117581922083213550715331232279422207160798522223711908619524688673170744370245851992483908408914693448602393637256269474443199311311310880424556039987024124619893280137444089610001683878263739181810888704331825790924853597920135343119615711043619044884727795521477238182253545704160423879033696361512838023647577051794408333659136704471939404354499616635688974131720936428334377105875109902509706653797647529538925956462951259297352865342890954935314141276868886141228167522165960394975225427054730743071526087012001308647830687695772445021840835189035983386268200026574020309738035934969178907669421964711706836758670056595213298037823126177155346783752461143945845853084819812894954578979341672492409579684088009639102058484511030730802749776796631065081800903560468561920204544295299383025772845208827591313740264579257788824953308445151068365755158105250929617518642475937025002845994538506267795522658408591670792933315690693477409858384612136934187576292818890844791071621853594874258788243464982779772986381241472694067241519233638495582468754179490792431233462203374930144840750550850187227699888613100658166219489843849306007663121037771853955736884813004318982832558123919325816849392161869836060440337445893161103696603616568966868538559866025597549107510051637967149760262964583725378355003878178545366128595401819288289713993832649491601439238824726797789308523994402696180744642601104049639112571804088895259555415344726992468398401204903279843787398759469073926449400688848080656970236131378730657258329172833907160178732612841764652478018955697721785331538640906889522292567976489439240198130480179055688947476005029153979398464550892227734973264735120238979265770678230788198894088837629921838528083331090215842905751281278276551239273546849143249064321860216956365011112311020200689027714959242268618231893972454776683611791082439962593237895289703775468528354697772827180548407917816023100248487649592828326061091324635364551754527401809816658010454210177181350910158292580929781713606137320891293143063638119434128250392441885972801894839256701807252265821201832282894305511319241810918719572779283453981450817920275706707084740929363924053286226876753525733271647661135281960549337675051835646466560961641597175415883744872347130713611957219270669798708570253378591746511991645691930870258291862598687487107647526035375854225303206487119234269668863287402952303761693507714008419179833103302961016240349573735500830076327977654614547774113407040672847989807576842630384816996767798385714184617754703417160729460124711990188223771393685747380965005969879966168164332118843849943791278526054097259907566900168438695465503341966596333934707662332690690481926784109604421471346528307149576035201902669936818936221534333635733864402743049872307033373579138515764832624250778885067123378552055575823521385859871555120570371048297993461708774724642424354226352771971073446621829512093831264205740803449833394284601997588321221161843689412088746244542334987945899857539804514256603600814371667182898663794115861517213450340560658669393150262212935938252076367927706124265107838002004797674061062940165496089305617590805169561999239870271678173836249078706373813722907279685611365611222806065072364897208174688266784673286674623269963397839493529128981731275890797913897575271902796268531635722317231982602785971788759453709217065607424235278185368363869850697829672613907895992435580997938222072088720950326185986947688632051182659215463831070437438019248412415193975929624138428568859188698433463010739871303756774707957223691225936045639829690682556689065056488329510771541192132003667241982085338717082962803636870030720176085746120844936591675531670844393387069210406001493070604844607891078572634812595310698768511249522938646438639806910158668844927813414719994237914450524162742692214166798300688205689601384615410867238912050945065686615114419376138710543714510277595393107336111249915689559922667711681087691357480036889413529248482962302856044660106112146123276113079042237383553186468730875219137985733805330790756293300763102569773834743871112464035122864624778709638372394803417644559645022793273750336003850207681022849611352159167912328647450324268657428604159162273539485400299817622967552914643995669773794089058720583371498110021273695481467831284119782238778969536817927783989587607188523276083106806159082652716517415415038725258242074310515958935495555802539257390346576302126589616156988183711592604661164858866360050437418124587600613588486506651503877810343179588007429617500498557772236968808049962694195549660519617015312495283182491956615097148082633282588977085682236308871495086554772226281669483157438007310451131642748991182918129546071757682909344937088898821177516123303226999485602837822282247334580121369957463520338765753014071034891847550288403196643270602221379476351473202416560046729987549509121891602053688327531888554507272277037431344114106968139833588261496797840327594886508566045847479379835429900582225032219353628578926691880782112579220087469293891891104438497314379976901249786549357044284331671651031106510073294984850431916925774316210079617063708666403249014531486638358479461525457969456536275317821209903293208504479006726917649102567777745120900217921077762247923432514178992968650223523834635990245398826583208976546986466095089990144263812577917274515092968146305890703171569821938340138395180769297443548277070483196759424391785194822057687953744589942346435181048811226219843208465317315978974310598332717966293366041279912535304892843609755108620061156130930399388357391192868778177657181778545282710039375579721210714280083108303959907272420385726227423041127864467980797409432954667979024623806025047137449199571515954541642765033768299709254965481419704239022201089635737852844933332878171322562760652858417687219960509389241589093436728689326023141989747297079953346592252203429225447170059002239167202761994189540105701677193363427683207461594950728186069858653964681982871990739907528831410663115424274035236530219981609214758068591570817019816739062791515197351731401952084836509612376897553974633704937934771159343677429157957268713630011502442918872972086001651672271383901510207841630181527472209194277576295531198903711704400656962449050933342081722719137338160343873472289913619498458314314957649494422622215325170482120405250281336112247904354893056410778557354697915745172181765726746831345978027803906068415758074483605352431863939055314221799762643665862444140638393403149942420466656078390569842810594601094162156504238505928903874780541210318022867294507687285326718488395608459734856049841023643174665475194567995330234761840755569877275571891006464651095260332693377735520471368426632874858972333609795868684204603273462788723034637415200802701025234867373248305501902908605066979723765998906900288380060809499531934239559395446977129583409056605179833845277556138756039647829915051179043754358397045621465337803046583486973869879454649252081970360463841404531824689117407298162658206285431374547812809337244532634999847584627532969170551334395045325131748847761278764635750261831280615087419981620785783567841517044488723275685754643584003703716658670907225915080870192956990147539185942048623262691289642835888101470379601627927247809851390053958588412383144882019373758516665265045528658557593799507504391605336488897125507684469415778140255583509723092119872639367724772426221994401646790306818905009449646985285030132802932030425100809573525132361102856324468394340347394097835308460060178764459103818697363056180108237341553305508297387317307686783709757858014192563189360719609930438760455534347577250807982581182861529756767810175205710970659080714633812905809080318464048769905739084839362480615556713429698513562593176761556821892959046000732018217180976693201773365641205529625024832732878912251522644179382172245076685924075411449512746651579943934551185228600462803885303877057313440166408126577982245236705669977128387376059775298165053840647940771378417150184550065840526565687321444961904349854279706117531526630708491300785695969264877016110673224279898718972238590814839525041728451537508379471276177244535364234961486213789366474589831508465296124655513828796600979348374178975847638187533362648393184076183828914616080044796975879469778157029631966163808341087215274182387774414969515052095643975143995728287452030473043713946324083856322193410459664870018950662503293239634814289413662509110867657382403708485971384677891948205375158163353034548034838130281140644267650980536647332132915168061732746027869430464278005613548613512731058063016864170431464371844979568219855268288857132923126369536885190132215932847124423793354041010677761490064873892997351991954358503090579326306422743306540105796731931372354636326339570691082075585089934205278300786193567951981897884195274349511369953988394244820912724022667702936314729560131318982815151124200568351558146330597281778535221653359921974493775426051592094813393410012906469764085628404160055747064843966226395141493027795167597265149712822446810181991790753708472897101242715188052810288623811604635255857107014864245964851191399800165440275613296041087925554517834303304330585493297482013388550849458501885674150912334185487904543151035928841073958960667486020218617149732030531311058826852390557969453288957247837061211661296112039456353679520927648180662975442006949338847366190786282845571378126885399102447390461424481167454860057812990175274585148806111890403026931771432892580093510407132322729591106469329011577326077645675558120764335553736306916338837575098134545258234826176810581264582780604379682474861051863022629548163817618398292831083820916684404942377028438352343797086973041212893016054061823303711751752331263403788216225569805324368594550753411185514084204995580857503771456901910739570267901569142341010252380907537250015701385410213774923117694584085135398591884341816501258720281692873552689147796575767360631865123198225633047513597215675023864586191411222108187239569159895343643986502942788192617303822069587748210541510615515923720309134039822899475393861732785600694068167538139825407921077216494646244289085204653686917898290804835360259549377182895743413751456229418325882107801180117301482834898002577852422368805648769866913377530989225886646615294373603973985599539242698686716838830255815468399240922985604190622237593384082162273143205953239466900773138123455801149701703299431281087161552123399780555190252447085749451564926408098023616411361195021196430505813995272383931575073376407353777754504954872238194973169536483132930009911288972343050631496856619883361904644269971729937473540948693143714556313527560446649355350373034561382251304958752176401338685210390953629565057820918092764546924108774549068532662293169748836968401426521335311731553536863791966664185062408112544898204253506455551759372560446171719019983209487701696063293432861899997073270782523582834345876614701076588392605084893060218100692098614932991600473365016586408614125911520247406477396467796756352617377300214516409374987669292912359182777338978524786850727319678528554152170156396539261088477055580697488226072978900011957385011173088533626680629131339275956234210183221279227895328920926473228659464802314171986499161993595877364485167087394259520332532619206228218610974874608410217490147224698264677555994764475876503110350232670726599416899060708715526906891773092349589886754964619885367154139232267968908564462889147729827238161452126651461253357361748661902692126200131210966986674530655512168105902756199682619585659962595221223405318783203581448852102261555891863830607208682324936811944372499954563371538517929216532202474766766815996553510513326770149010500692336050126671902275723414763945563016146202764094647669082456228888203126752854823773661283255130498214984388128555470551781715018138853602696256909489469571802711338305249395087504743831493651727538690999664133496777196996703382517259194053040717784560352942808400723811401603853261631896982885265088480488175980150844594895150559290668758237326286116132485808772816144744321489081752007422403661552920335197425128164614246846987662635144537165845483204028075143316771063580467192993782748915677977494188337622569583194998903111129395732731979525608482906789528540145632938900204882615253152172820488506429541343452247858294109778385791113384190787985717832987086046021504932510035400000663378579533081656797056076826408318353744173711874507759758705014451362013914209471525074394899313462294751907896583739510532669736918083849202319490126007813931760470023621110412491848385485020912371896397549450537155835397407931544733884033763611507670833590010209375278100400971617946337353433046817383612297313383669865481418097313030615606832674889220346455406912343400536054306578758462207807463230660265007553105626154811463849422636121314384359888067903692591003992368981419484747249859252654165662744367406727954445189558689695882814629093395101855285965464039980145850337798479960851254151284414514401790448475485096438803318717223302639975830435467982190110751997552736868769087354237491993144353582563222375747794272412182181791618988916403603395525567981232702670939265484787598559843417883695721809786208999060419746338454671972541078056446134137062221366515019787801427095010095208002480602392637159092910913829204474347311246968367736878808923761000025400708127446006264232395007450811348214893731611221972819586039228579011329581759347490148137185965680071272414727123479005927694806588273804405646863695879283370068284037593523600854618248659773881488580598492414344726134374447495663035287667387407483655027690687746084155376980218470947565037495455367395775879840758893670365571164144199484592776286742659378930085711025407647526581918381123078304758804731666115849020169699258570951188775269194829883129113631823529618818225026896842995449279938856058154281917973329274095130649345272771049715467343607084440511465031295274710230917514531684542430468780052463532043704734840661494599295212579091497365646438075011630934363840820691768802695218172342549755220756853299764240924950281020655429559152412869776054328327763113429753541138772490621954825088017162384752230998754109087366055732754067015202355397453792326405507702461683556774418518774080386501876132079085409655703865159237616326500871097232281865293836858017720537823853629892407107031090347073782326255235983626603214792291755516719438060321231328814457560884888022963841715424244255089293194924040110075161116981457156935559028386958542551842535414367483064513070384923510723521110133662752950616619191885764821702036913962850318872542924851908754701685068705464459478935416847043494329822383843737673387541379357575785602042166273739214637861441452419548708050720941954943811739802111659996646837786931273778877609865797603241735085277744781527455785920632693502008138950916947388356958848057633343923646578167874068217894118151360114136703230491824861813211214023083412958099907922789494120936376248035486023546057661724689791558459218821660309114074534689812653123963373919692055887781862712528664717933963943706484110018688427802943203219797498346965474546890650350007716072225109149496366728883303737210138418637696219716935721940364303883773805807569991500481357806067863824150477422254236294616290832257158030916796940914950552014008700163901129342465214981046788063879909784246133749238213333924382403465611661925178900558180654238118247846968019673314766715442802630839166033059657260732459251262170471974881026957894713144184897968501319746874068787968839491529243558647320709531451003582058388106760069844516916635885314728118957968558161422959139148531155552719639255471507136385226974980229501814775058494396631018032398585302525958151159142532214287665829562415786659068115136020453113688932472007995704224121007913190398930980653509427772985537159684163420208272626946028155017666894602245140038823777669985946821759884496080199885940636888050728808968094850228721478201017534759419694695661775616702293670283228046974624353342076049073614782194973339422522646048601888356945113770903733091808977902713696978105725342218458103780008508870526488762323524643471281375326323394112305736301031247744615771996281449199457602747776335246344962762667447366692349059895920258665934986025097684040508990366540850341856764451970665669785765541415043000494420053965740732757046652565107178515378739451519327338607375235963181038311833179883807523475168153008346132160647908865953981910163096737317857960234170428555795788451547929472175504968910839367279123201896941097394813410610679216349442530552117252145511242362771300361857088579634679067119954913894459375382778235073701734876405702822527782629118082797794777787268811091908253933276929460572219091433411137142295030341477285508104534082689457700323221424822705360473719356816429264455936579046253797986540269304134113050767795211071609176522148467806022206980143671129178858882249898331179985719698449486183311874202904970187762425699480589818823557579154142562747206229378612283600366471121420659797882690066220990970661647771830127634313486005772773069853274618786268626706900639824027070308972184914455477152754470284622174302522232173527216808164269276211269156101934760657576308790191095990565227196133554970335151660831204814537285299154293237873698511185239402268137860537462179113134390358902560313919318394693219908624801757806888926384187179376308557821782633428748764871407956290333525704675833282501074401049270852118945515425137793437743413238144957707840240623643318825782990938948180127926860642970336864238224918211341276004232747171385773316517014710568920645922195132622027469667028903187478367847992137604390259878821643803666691112885547199547939555442822899996301229703111603178498996466670022327867584862283371617594779359993653224099831952977460686196935443205612472317784714534595748013392979986987519687640059962621037320654042871150453876270855921240433852844540619876276707021516894182374221975357196557066085964606577032122317075006303636525797046361515948648605509734782493024050031667453706185576868211167508075417352864439208403772784485313429267228353360156223633613516149471546718446625897215383225176035740038974075275536237434959427970660435191538301780912899059895960536159168156289161241588363527760011227467244167728803685675976029860343559488432507691134235505966520800850421923050999823544112564313193134658537171495513159944686298210168465154311693397085969474610362801679875201971496841200317480536457137636036083459182795381005440180538606825310559835612210117674881372874440153928532312817802730639915706515039135071210401833339897452675081292391771579274705787349426194501319471663050145850422514429280932099762958893138875831984072531484546342059558822192295446336932823062929001080025965753223407222234176837445051349389342601249368793604475409318982993381443570686024520307064251521853541336293581988756569018186217520825014938066841547162679349734200971490351482026996186005027087329779515953706792355433129611201658950002868378049300332889693920165346055059624829190987519392743588812006766697125869722242304395034859104761313213129166796587176155552609591153676726562116080772557940452671516659711549897847111192829013944185835349524694464126783279889637292774484051747978329563149035082432128531816673875872888621237370303977203705194658407677562506695931309262659272051374075118500358924068029224158253108703583111155020034391499480673885466946460592725560782539952527947483066523972090116269943100823572502855201435968477438569043847806455703644451246045807376575708609799322544035591510599988635135111198066325182149574241105545011201870078069856771040434592961482327327431726075334272695012165836240890338943738472768786661418880787007172575595817044466891311926936411169289184423854625736237040995221083596095293426622579450030082415663860072484217150090190483699775570490803537351146117236896520043157564423699045873827186347117468818589890997439666342067766092029451228830542665988641660906806312924604260597168246108767317856255696130329579840175186412717740084481732089592493528958395922913661147686721751878258964719674717505973728064806198774149042555793689821384554214445713577902117819794507673762071420862639239479080362063377526418502003609951124077306979039625150485606338072558262531337031876786242894082809487249181994972512641175695810134560351509862704757565637399478644830368437028326071142153775785292993130278117195293403048548808028981955073292805680546127343556049079364880980301177042097827939325508603301918818279385392040594569912615773810623449539559282186862812364359625235516247226013017133381922680292553392331825174201444662252214164742925055071813396954620203993515597150778997041571698887824781294531601228877788088072686438053185733886237295663277004951098499234618930153627632585027627129251774740037627229484144056364542264593010650068961022518093359364312633578800603876687209528728923354311962628951987392758785212288064523431995605034486582098353262662007490826557701852381625944452719236506729634947041293298330783561988734730763866829686314906124987540428977780534094185174464055143569992890711101905638165497607418461849347839494570024457070178435633137943947254907519692054225813019695262319443631581335239416261490587019728733601385238504228873558565217786121505896737297485819224451407741611796640214531818771191421917480334639135828185698681870600387630678015622188312396287216057754044959959312922993024683683488181099279424952539917230110711877149379371377902230198201396608915337733599984227433298291078630432727633972974589667584071743158660856139712344872534886663444114781948843972714929217978664068059108161755353882451604718880103591324555458577727370539782773500683327884207735235153789536749726617767352906878739242684174301441053990039206490717276452206512928152506562410753239111320393071390305651617205313625116653943487000828855861258674700204548672686055443745767380950515073484417238296126888269570542544687347929271374510714631935593963953181773917649901383514404115054428146953142196330129334895297409599849897321660658561990733816649668424536715906675001730111735502638041175315335340362344618994805068268910079510256995014276777772697120002589063127903329587868243567379325703012058061426177088063664920518442400451770615333749719774136888856959106548153891030325594083126812239860358211338653200718300855663423013190380751340146441997534694418934758521251425843288654513683711748484941567237796060278848761954177157100754894960806144357371687225418810557869578774865879983124243903784261364746847755975693829237285300873148220901689208015417035452459786688975331636705138189106882797137264741635008502125084988896134806320212186439348203227517392803337301721691793853885385401985276093408161911450578667259967950328141757729477041483752079104465629405059270226189297649515031643365204356259166631991840584518300244430102237656718721065128449063145345178023531434000117045547769128682251682198300874448091825361569712582946967413390195890124900772348519970477606450158495242474164223921509015129920358649922647867350101412873454912328132253407558597266877776405993746005609442163551939873983667148875861943235545241045730032846316969403563787149424148407430553080361842099588571254363635583756020201908868177419159765101403195457223236925721899354787534068779944504987744531143561109442635617611534698877926301657045152068396966199491289847179279644019334839306490475961772142883561904641987011497752723602317721836954824021226374850289503982108079853513990994026763586858507875178507245566512715193085403347521658158266230841577953433560034318948271359000946351065159106704723181349546114198668159505424772300862219670888862444570015994971148263074170824586436619329488989281170077857952711515798234603627236576480773044784424737945309183361143625301850974268480939528432235390471986726346933622465644660960552714158303765067766547334519138009145704359710189606845184604808150466156101856044178609757653391786753163036297477039985776879808353554257985953039466245901801611384811269929163560335464908442468589649198829871453914093122966875757675948705029485503076763209561218333312012816740268888556333101885890207193564387621935619750773622333979051687292270554791500691641773528876627832352438954962580665210499360962589917113710900124183184984848929656445252312705621182112085780207902919967063814264267736957175147898450704623545583242044475789925838883147842795526184365418314626681316891447578746851463907481263596960857033179358380179583490714604614937689721320557525494937111810549986502921039623803726178427874532183675093439048058495421317261059789268953577071888082005495622392046792963570891573881574553025493646139398539422009987077016643096865227533906923451335859744915429067952191163442739547800547836636986607874564351500435100239697466910025277669502194086257205083816864243512204621730960078891906861102845134086625407041525221678579166800168989149719499464457952937949575224522972253090624389690320218498416110591199658467045048197857592219807115855573311644973119954283295918173963945554399393608898225769302482180948042259676759157576224474248330937266294245180994353382881419838296379977229218294855703484545525298169519962612711946902684839964061010787242156112669416573095946464801719678473196691348066182791582329701941163310722812834466812935254530967340238161403606562556606289924299310066545832521538979312549036593843724540756558175578929325098915255094534433162581776895894398589906476215908900772183729439729766359842880970154787488531857770255934383393080015167750149854168634021438022616252647681387787377726701192810787127013830701521011432834137551076456644738943402376815404940596581634055766350068854013413649680312485052227906312408467372404129400415858935943693424111251471163009538443396938715456048431934328870477465543552938575258587093409343883811935525868896428408803366029415767744086239868147382617612729547258911375443846527020297119282764003909441341354214754662205027755079829413197136326229018348027184697490773377651979606352267222803627936650536241816024348213564423476899767893940281548443672942132847568167866157113095452452130925055861025449514896626346673975777184097802406986801749295959108575501926575151362859043202842266517535484305044712073439005080732390787108851359276059213102736299887388293753758539453894306549941076253529924652475100144310726111259625540150529101887266063852009754198790167166587431085103925980622508920735096539252708046426348497567669423922869924770731566317961826627780690594596648658725105310521556415418322528133195791400395992636548585817030664879557249801077096386426057077318650482409613592118513457929134833019453324327665765832344002421972559113272144953219190753008657130894344855954978350430710941936343053306625368151252476404257152803753392614420469094109498593465692557910001173221966426818012289759559107815224839850624359667494762057223721921651753623296591531536079885373901200115800123984210376971712251301649965876831139593913542767263998006041904716157412835360714517507075439591926628759037345756463241874766549659421795869655208533753526594290910712926967954063890040596341746668591315951155854774477450604380623534166004988729151858456611685608744462813848428333223074870145949914623516087419362514964674802018780715789094131378104039809493717391772681844457327481598808168519945899422271074411443276361137394231981989355775258759994363574823184760344302874165077174753928301214952434161683467276063335835255126838784810574164515214432717074877506160472156006063603627916494161384299299519842083047874731363283404240231834339946996815242051123573542264707919165111450078126548713734792421583025099256812048113822626422358664750099787594851467301238956484888612061133410294435614256435944974566974535921225674455160159750924465206439806786975929079816470059728282230776246952682374995387626624369872171905531742537631941209928524785885718038531892927548548816869142817068362549046105982138198503886473745326657047541634965767476292826748205117040255394125281097088269103592051220567098642960843533884060476092931775735874452337378430404190289412309620065466840683937709695947791106020983528097008791766878667351571198724553841529347941799018669702202458265379589583940150395368586100075491657834654796806460910849079285417894374963819651244442133359106525493490747998692481005431530264018592825996466650318647202589001043899208918793424703175008177077774992790209628108751633496536897939477133381436404545591846239712116525405067597272816918995033703098565421473981241290632391315027517851453616208819930914984608879062635131477096699550008472525611393498431364419667341157393311455047171335653217439104554169599079374694569513904453112785673731901579604580999501136846365450390129613168998895995662043028131630348252719888380080231644017304904287290636295337836818159484659597020723306658286715755845080095877420217296958027480725443796556700569208054802541632433469004356348890152644933608757287914199106271585764536065907129746499779572481195537430684976087455223441825189268995030321509511776311717020160987319964068678184867558378364752493777012360444171103369051580471434725887858802415301184548514292221826796516890737568006546075918850049112167770998654380221193454928467485937339122122709877787880630394949763989106030407878444465137368665200563070976390014664002788328596560850002381377088158248916692303001074108169560029079981864900822626018840545684116196207232686807437389749884414842380631787665964118235779365218886117620287403618566562463923639592408043521648959440559876813911362694033496180259947937417067514261563374310528153146654395130768637477986760367695634859744916946618224736234905262161316751973065024984926688171277929774492281837283302104480785916927060084348731432782820080449368911429656001431021628910028717273204354100986009740224748921948677994601022325278189411870480213569504025782071510777958923087881023050771865797051354375527007583741172494459817335841921164793465031994732230625757340180178453028654791308807719541764316215984835013593020232631958123166177213238121391625043021298594921564882048961431531435000407946521262476862592976190975513264139507440222370640675591723709019549662216445328678730194553788964738468811205398501839521780211700737169202124991407850174079673960673881579703876046007750862572076980321201878885128825420681222142107143494541270337106261799135934468816185230481285570412312305043224296434411581507020212463892406891744612844262724648354360640803167369599525098465698487325573011941500798294894572011416302499186440408096227785617831797672264252508852812271264720610649465747017780714033759008519224065461641281198866678188781687697529469733561888723913422498226816573592098600720603724870800166922304652919538974489338609598216933447631320783545020412935090653943145512745062474212310428769296163277423678304598102705543232194905577849953683596979486117841144089782103175911711045655885272504213923000241885858910813387187796469711096371980286568440011780735089739260931945959782529310592002941967898732352494285498343465128672730153061916944242284189868553541112798146620365360890416803936995249166473505398636284014728538106138839640998684220248285245696901026255400323457398593599864852040673554930978086046552306028660069389468146639798339298666095763057833387803094666176206334783101196122854880201432976348318370349123262773584125830560683662944694327634706090824784844246001374013893524490583194812535856442981980294158313965730955738852038224920699655934543390627078504767790933426672708526752313439364628131056603407868449322303774503958942148963772612052284978349119092739254759911449994148442822350238869495997695714764932353766540122326034905512979486558808566039946009357607551532261966030556673954050007456149992839583869485080867165048205142801509378776078974749716523852201649647161031560395332096595972216244466037775302379711730427918097823432621040799284353021778050809034008729475632235858677789341754991903294849325095987978586334397539500775065206831938027843994316138803188920311693396381055721816244174699645762628884634134142859430515093580498543219341464257706042957084611782587288020381999321317001208211896421148593703525599232189764043329175509252113332305228534621306657297178006386371083867179836822513006146985795978874725889855927636306126068256618651098863082179301529924528437624004060027129542868533697292449574374616772291257534449712399792757462745742969525073772561861608264258660448559057492156562183417092570805965202504209191659802703584528377685019281282523059216676453835035573971007638652872811177356837333106738250269037499776514184818519706287390846169885164711858712696747778906567863347715843067513614267496152871535562432296978382467518204335798052689415666088053957349670421446472637972241396459563855038397063597871906028141448350831433248150817874789856180153656391626683572762513988031739464609974036836298831907666894910784836803929391014944028466094411285805150218766023213332873751957814486218145936934359576327449812772848437445597273545865836135827240143712796292545201244754209623470127506459555613795428088717423483919528668199858951911280137385850973455283266575098683225835274800997175969706412844641861564927135317541345746372624194196584575192392919434221121217716041908807618749738833516755350805653620518050241260740440974367052348504425914411291659259941955175776190138856283289130676910525136140750168510750818088592956054384671831410538954357414172282079439784689237002286526317993447394881572635101542906066794868700960431277468684843514394002277598166686252782720702860919785842786963592089601345497498753343730231872260036274104237362566434873243282154505771815157839720560274807828051701786534521297224460238970857275156356728264154919091259741704004280993698421137726878420152007278585858401408945092431488330384661135433765990951554140051628427886182727320059385850628860489716758671835565030236818562058361493088001185657388331873527342506823663405704365480548612357059716567323152769839481131450408129475922124230386203814321293440920033068879086351969920619302487954758656673114235897843974847387920193543555945665056900725274126892338664187574317022997709815332344730007989576619709024711372130200041754374789478864814161905817057437059269107445160454662063046572435950947545053598688952035263401348958999788130366336645296411110969144865726742111459577842137623650967196743658560220123516718600312199708220033773637154648444651705638583168116900360455540090415952243348045004930007693840708268890357775852789029563781991612891528103981639360503286227096423224037543364389695182491808082863757143277928526386935321340688754434171089723071133447411191412195013849463651511033902079107467003626518811515656740425597490964713029674089267658395531969892227631212848852140666869703667136388996885505511127354498861062443853428930645248948096475122522905604320874201133719153848715325315668909102441451445915582847395047106627050442158111632027422605184993211542018965122308555084074132303642585218538713534998725434972414604949935198007800557666850506678463939330317608292195012060933413883761897457743843828723367796708628467171680280546490213794667574401057888789908954272385944261579958992494024797642272083876754928950212086366053425248199757808598292476702151651732967955244996248031939311073976763806423096111664388921309322239691035549140974609683015699254793609219100290996808552100650983851569629895023320556080302091223684836206163903975070415608142119270260035985105107798581630184265443643889579714854580107489905219861093179298619889347035056394010442335324201248711125846490844794460191150975380543713492293517448294322266980076505475976842495471134629988342361015261996586879619153616675118826616197883274747006263577183929409840162753849092869272505759739612489264970273668130116776716976344731624046178341675757471474507558098355560471357702419311021041185612390030248616521247113157270215569618855664704653150384249989998565608605657443938839164635659519409082796414514914621978692048910741316519356965305409478685449963951712334055784247659671527697974207849087480305161095366223671790651730995364444185569530425834379318154923206723705638013659834892590515763361384278194536763725855707425275933202922610046285237725774850543899019523632867602572305768526078509456468461809063493726624604686986224509254508009897222812598298371453503892010943128544093046539042055874530657188566673821724178192590331370034225088767641611264542799634995507056483082256055828167698886327183946598445125174452475055614368112124959639459645795667211783232845806639697881078142320707104046248011710380959357633755383721345029043291225487426666702136990776847301780841425352283954839154528184392359711195436702231707909272723917673405068781126213245584536247757027257412067396034149915315741217390764934929365264142077725263319416705110148108072677529751307227772246572916739363133446457783688614822408021202829444474858477160070760843611714171463532705559681013288868693236095685777077015872769530161718095130730065449509307136463584456305248000657478514081548860489844429863396860200950875138245004549588970903909887451253827152891695485753034681943856854882922190681805314162000647017480285575511261898396711293744903819366376653855378089275795536356499605925041665937707127286216614274744560757387722398550011533841226317965716242786235848609901034535005008502873378464627484663555150276057586251520327470423487674560787658616364573225716277504176455746821546632627334100381037913892502650634571319789054733442638290213433731627295338463290139715369455960421352256473299224169493819801702144648320229042608156214687860995361921896610879765642254660580875093873514242983322072445316840138838217843623194997988631496642561467311946560385165344254460551181674140772821841986312454455495339080946978011452897907465319683659978742989346740075424268564414826343044461568622312094817055451014715605401121617937913296920320440023709945242304239258709196815127452710347326309558350811784889313767108650656616900240568850889323030700678771228044049932683450982373945193668151449089421481866174184499778245887002744908359992676894657858724196482712685588543065082056153140129585988177885535671382267900260876114489798981520256009869352029263350925172867866507470197501633447529423795469229156742326447804587036951168967452732055211936545512016742585492440221963848298390023412480474752440755648299009344100491401637775490190836311792854497129986803540951901835180087314911363586528874425523031141887581178658246860664991282332113600674223735639456721565418965192543997696572320684203723037674307798392946000116243895634265022703807128262230786392352045912632384221858190065526339429728201519870612915910625046077794848333606952315455003526701484711702600846546974351540228753946419745311196847788470538901053699547194998349992698132769346907447461597714217559797862969304770967169165934420204443550823186965980913454482716749247264488945771940475117368776992771302988300780077867827772853383072991185462339345290506786342378061729476731326321134096935802123745514186653206500371783062474097396547084433658064770502829986064436845186778628858390551247101669990976346100132792229392754007333224567586282607016542895988732978935604373776489005667421852527929293942942934462196693226029309781708985883269502826951456729735335331502840694491452878066518738467533450052886271212245122408802652244102300059279645007378300584651989746087647900931313148244208768798900990305922227171718413369759805077939420370988239536208662430422153473113814503623607963674619184920900245645481298462103949066239515257530132536889457530250679993620409088153101870401419108810408581896802371246573735849047977542721845444355402060544022818434032396192603887368258385445706784575441571489515061875432610023947164085965450423972254498181824241259111094758384590022337989977736565169918049206165510548662458191832433814875320844227977527286191843892825776607115757595434173050132910322489802361079094075943681762343524421969183874356044497956137395956528700616320389005447608059189953619593719414414539640740035673612185843605776375226268554497807723062874335178802837617358878333498940610325853310704228492311727856090705404546102089614069075036684200790552561423875468286427548424958710354821710764176682947504784871237522395622981853102999891537197008341875737440234601886959657125446541965410334082830390593465076774654300975999396842264482221847519287771360207959362331438424131794628524382866356301603620821004108841502050346864310589257882673822699766391661020933044591838034253761004287853555354188671219206280772176923891028738661069338944412269698240401150038293192945670037913894269220938671636078868356062638378433013433064231415843140697320718467646625655043812554494884444839364529018417814673333459854614625218472051596606757588601408461394786627944906509908836018577886150501086436387482223395549438215240158109033995966891173140296302855689262452835952264698396797215057089005488102882896344995151608514403284209355632604538705945407083240848688946546407905584373362282099332314733937252553923978785978813901653227681677882042671173090930209207118638180835797184323978952831002682400370659287195488471959740445556343839580238363120403280073191402598360129500635923525606703805386385573752996358177761589015893471314404424426631554223350041733075871894552800422820731172469732929729167856806471284617207647558459295235091542255817452281421645075709831489645965149739556754665924203137228166180070953294753737606323017667229067286952639566371576343026815943267298333907116688314484449093244978291747609699305261999686343593199720640250461626497760024800403863638774211294662246387390200739038313276241979929198287162595608638196475973235727050429900075550693075448653540452756552898370975022079853885671934024684381991193474472596874847103156911667728105001761547568381150989399841810952065810452796348642032799016634630435578484800836626788660909944605144801205214628251664059499154115207516590028717361681026707745655576299379595307471098858578544927252144330204830116628459855319787207986948824460692141678698953990977604961779187669297778095270864299375498119266933165265006947788349443011149368189584797511858045293942325277213559507631977571599557856407763533011821350979196581094209585966953587648873885826837435200033239983854787499537518582845803604326699134579546784677191931428282308926213210975446619230133045877775008896142425744973899694378584425370750928343447892322495734202063284069531548387633547712087405244360767592762289806656856763817920802349993506275504540736101447303179885078000066349098907438378173920512758692758889816948164449574391594218634280039294771845317329980557230226490677813514380911612121836286879953049753380069168237176430942852809371978861943972522582131453544646170657167942625096962092382687193030708094247181677915017056466883974563845191809920212069353434552435594557934768537575003770702383797931533219704387340571297773776124409955987490601932141280759649465374671623898404086614880289458732007185223734055951642446939069083766711511039645382362492297117597431266425134774711207950418418195093403357996664351086351377507063180916097174405702368024537251901434304661875830289708035971252861708641597565936251353506217907926595636810261383242863358228378979738478398691531240554986589188963704542242615943912622257567251578072043348775485157338164712160387554149188644438460553805892825772830713259240070643910300238989774926890680095987358304454545596765464184385661062432014671753104468079411647810498684079271752346245204549963962418641646264127387495867075036148529954459367270027100482562921990100499135149832967436943158238580375159703369502826498610349044433116267436239926562747018233968161951894474029668971612019484544973188650357091643534073831707432183070534775978666138754669364430344695837391255686733010827550662550307728585451341600420702580149225725662930322991589116809396088267339561031429566376460849081602010149211622513050378816664054585966321661440617111856568891169854526038288641379394561903484468083658723874337977250174397960437085750127908663590953951261294487115441129380072697255719427366447972649999917690518540057616343676661556788785769952132594124096025734252952024216745191767814053850373939674233997512126786613451392021789928730977744842795250787677544983404389657031940917476578141263421987980850918421530313158841094711525394107637171857913768054739014457153112847025667587924627548825721105796692210060955885644458483512617160566630537537905013953414298072733503091162746527731911538301888082546753481983399844023010409345297102383979935348087853474913342039158981449687233537534374606812332690289226343791198924408271703497910388209242270270950571494395323201473800631314134890068372011821542833753248429591170314066521746985454129052037335163013905764808426331739834090881538318564565548799075060493068249944709917460749454851476875682847475098880585246297902620896525072591445288327725285886630306483396010784102609855559752376738927115503993032564225579513528566791522656477988907370131112687135041759119242779580737923712563525763933990635705364505975761690731527508637774402515938544037404879988414138511099046792768723120866096840231462695857577301081925431173038337875603257807998669380746946779999016581914400438868636225936081137628242334658720673351703764761493302069468417788356094333839241758955332824613570237017470651273899742994956367944787950029589564239714138104878011828501386921432297774780557620465207540794355854392453953919958561225386301549304704427198833033022546001924455380878522842942901111686743039701167323672274249582480280024054862775566661861023747799492901333991701356999496972799639843404650465942213741766049348461822580082642131338202543201445053154259457268127076055650174709163183157330041893572780317726545215660813310336884793106228223454361491088480881112964766448467299189842625880802835730479570674888038581392077366546358905358331029235606949368917148778922758656275694274226920042358930148925323711346698152431291510291115366791750150742272508495728600234375399589825027784829646219312992833627713829566758212724022168815991512013454546460974230451189110588846074413753327495957359950890061030561789978809624457314853941842580492268884932302551621225133060323631402284079529701440368686175700084878310882188427204226723183465473188916405177637252491473831605769220201859941006209636845942975516229040686577043546111980859245609815058993171473977842855552202155290921310790477465760201792102822257705846678487061421957052756016260397882079815288523543024507913551470227425627410520619884889096398848696085940019976925702346600361750438992769109164984204595931618406015085407547558128412337798663616922837162319999299430733913035615566477343336276759872544799878677291023766525187226032813909371951427033935464518732065093218747439425115605859567293952428559057383972613603917375041218323630316914791642364511602107370525005085655966924857020822811021655196665643040336898245034365447911223574648257366507419000901667040382088778855847381861484740963438339450437957212110230701084048707452513337341713939367484791019295460050869987964233800009034438451459823731707978349944619670385369449214431731976848455727241653456817144337337428852211936494991707611202688621881000148919856482623297393942893786853838252200636584058094157076831974789046363762187764632913861917734931384111334617248631363093347696630649387929574252788633543917620974725468206195459533370773805557166634692406584977132237137632713650357380727599904313020775880820246586457237229218941594933074371447264405070708342102445394875687716157538139472782141394712984515470022887251026892295925503101072122116067989869998927860638200844274469635091236082586799992216545091387248769435806693373302446050870649123094189842489489391801703147004182526011397178312017272446525960707109433628124687696668827836242105555228882433936348619802011863510662473594879213806620493870406043696149236833317340023549204381768008119262902967361941618288680918462617885188859690163998540036823474225208119951161150502032767116163465382469573371865299444489434198727794230309160932639272683689417915205337713582049748496634822818683219219588873380944397144514415170356229945516609323754907668942153151333533012419268316370583443815114615884755894712012709209386320839313801765894358983418345665807444011452133623128996831746504043602104149251576897124539593239226690914033822623891812679688170578836589488838907183704684193539573793009250528504632854842915478392806288959329665367248760260112845021476935745378022352667091093070474236571587588117818748376864541919599967962839192632929607069561114709902548533219250614478613103482532641329912092602186407433046067389455123161795242563574857461114119987524566647062384708343437848529178127674580801743579875941003804522432171827911393170698766203705162620126250045296109368587349071060400926243477211371677735199044593428696231222329239203138119114058671471776676574074898983823430767014073209414084143907629454351379718095975326643618269226895471964286492119578667649956195101908365071030480253862624017442974518204837846162433678832712643133709867918487023834367040100755433899797795042706525653973184372690690492668640932872699235460746791379889824016494337015082189085747023376967065015491385806527531921823866466226419877512922338893062324506569680869878319745506969056417643012827422782570983305848554666592066298980238644387918668562992211070926843950161696646159072252028960190763053001964716300164809982290532128288161874647407591633526110150307070619598467449326601878692770701485157072348206134628343904140482803201109552630048175467158556149334742749382774269459550305320265925042327807067328839024627123918931352893778487534966760893532090202686175290004111041368690715550941359542749083476533476142232263774059800984217595392602718983597786898449263366756236797871597378098914988072334916492101630997607424676414286355056196981356632760298909966535562436981240207519488082844355815165726540143875261917398394128036862572956179870501942078387594779238040713550894124634104857832639400139840015273114664494748064297006693700775173125706498990085758672924994444224124714955163136235418276672556652045041366209167069821235677245062963845072804220958806689568303061708560368770061967725218809578546336464560915792364762503090593807293416637036054622154837607782573960371262921226792110043227493916278052728859127097694582947120087820793533403347924883772903855087647350800105208311477461395404664600699928843898839740676435838930535812324660881687836041996495577005633128242499624402509430647219930984286496748671775635158612081306913900429126087087745095113667691409124273075323320737795798980365369438905423303088977342942582417396333620306839315765996973065946857657510052004800644491522834217292107715646154277670953192455678346082111918672002968084259419885133887216123069541489924564193306461601067634967592002428363698052358389288136769735836006966578999221617412855324255009874281702940119481454435555862203785182396292418768029509845574976212355686383973242248352630322136550334944163910995876468386251528833285701981033617198407658730099595339850371363873624600504770961153183337468682432928607893503228049817608256510995962996183420195358762983316614199971174870722906350904039736311264320127077619773766988845449041375244403448045125504336540291535432803842846250887658274401666314334232614708656214522931431092676967611532947433805880516262805651028926483876554723598863863071716755092759840651363367984581514570509082404681335545679382470214700449643487162633434689785866621967541791359110238750707201263445404363331229179917469497762303150428786960177288531553179246550501254205661096905185183658620904435514247801752608855129232898357978496768074424554894586700573344735766042545892769739114012836764660676993837245970660759795873387251473871432355894651142853087451692537831194970193751132460692552128237302973154455929344924693214335949614977895743816213178773500286310352395091156593383194617414480919552252770089826237791465181388359089356569795138230814816846525332158246148227058245856731698634755986223020864064211478764529267341293175896803917511044103801188767727316072067500681369061199917893973855991797965967823893351644744726718058769134590471076269265806868187167272038133318249225635070189723971090424248103141527975186800404206440158332672368099071633020129601429371701293886355556385459065128625516054675726944838722587126089528363691516500866206868768902754036258864288299992812401253823320073490431340649852926368323732940964924390890038494565040164729062590214494491563660295258829575844985861411416292445452838803256100918316039715742151440585813641239503745553777879839625523600487296807154125783762576363144952419424673331030734159174085267543053545025638191579947640315600376546793221452270715198977337445263502148556968843205978359169713733788445746078917818776107424311244914759730201611202595448952698450286246494974966489413359154634949024346083246636786215017301549064332262052720618294284535083125399962743883675564097220561170173967648521324969424314529321993198925355179927733434251905861371783333024885744950235775980001902155939897746268417784112151973750551534176648011337252626966924739775948464799116738904489210735054771460822386488672615312618321420778912787623855618165907260930865524958994996486313437467695584722009229105285533226904891817878329480687279416645738403280964935761744179542386855691702881387931160806188481521768687857713125225067132379618257232106782153183007418592605581810776755116959164522661645747635470708563215288694563713607445863262795474779420389809640286196641896165542109002545834229838614590775501150135264161052749710349893831300597155838480404922832820943197232961570632113954180368023956826116876310055242561135801823169887774886032744867004767744073804127911073220853453576815632448395514236630468307811359984640277741014000663131345481784475275362815902698801861506116937929372994250185158982399619751503355397400216112482675125999622106977137511808963224902533955133324458149600366742276822417829841612783726346280873936535287556157860558580784848997005046832189917712964290388808478773006141237608924550945605252433108591104304903615490652364899122412647141720969200987677184907971491276191980707042856402711824744849779324321763124575765833061290452428377551335662356892199787352548811499289381824663026008075670930512508018263430870171299621527460575586237488712893009237936248897925604290833284037445879388591096864557473760217178037640697250131390202556834423801210911415656346829735656805045423330961343947894033457125682216303284981801466917695832981280822248291277046158780621873533686065276529471109295010745981787992098396252423454708190903403714556627991258080309806495736405431166607097493138883069964602111749432924970685577548611440708304284639382456745287853689140165232209958184935215048365104936428157231505475169022145585310357349309037034934321217397317425496452057178895424446192526995223233539315452130772367688869211143940745705158750001312631610292309232457531386767030613343238076042439875678527984062395582700291436677944898400927573194407350383808975831554176834918425872769776171501479533678818001434970364545888323608611435748869180809731713024018308289089170002409915138545928733761417802334771679307552531333879498692033888638139145719653786219661874913549707051826839805236612625641791753755389925801650030609636554059371969261194359198384646631039935051059732102895679599989312888591463853891085595128353704829637125541902137698395301941669103698465202655929195411055966012216630757495002824560271619010026084715856978718273576249136823905455020950394700160486198072502748387239074007938645192677128974120583600893132208801050902786990441390764387546374433269977949433804789955968902829711261334442226584807903961772884446967448269023215930100735901908992404675047634695976295194800557108518572916009936246259868131227523486036528548448255809705849620878503543021247468546159854005067495274570674962733007383032113686079873544311528207466008270761124866654672797213461525596705800205315048261804059763821153509445066216007950673563089053988279091113674527491900177430924834935098918167061532942787455718572722427172913514498095567209339974256660203499077899410130309309799112091128087812867411735723433027076249639891909908204149554370881200522441281651177800268806954701245956009282606319461340730149054366922449242498156732210615227324396502180740540009911828499241697814895001558760199642047416304639698917869956304670437579178527866426930615751352601854388402358819389296283659737733754476448022295738142233488928196555912985691133076713251635684362812373902446287539410578378158667798579299712675376522163694653295228517949654975877444571699549664844529169885716586934153909782229274433125487257034460768513479690874843873833033894692091789796875466136690836045894235255162898079081892134916870894881636264937509334581763981185629448990107700714267954229495859490666410517704314311080672635739933740477508939984863446873000615600083226725694649347501718544744353727284099609402931156483346047117631507730509442095449733252134741639983745674059190346038196539081893045155844015401367871101180862538922009747910441391680531155934118179096439260326800585729566977350028951417903882742631115492060214719748816668297699278026535443066600771005227237113173794712461485820157811385066256915472374106014798538136924003930920717957454281990899047202976851166446913079613946402181218637638320906591359605127508865891452884191327795464680096822452723263078569420030868021343663593026924994427128554083062747119016369192021413127554863646023300851543895980214869829678812181149447202167811063030219355941008293537415724328660520718178473717741749443394160115898256379943143969365779152758365987232659358806212008591706006335255648834995720082695215661536279507482930398125114080357352149936022903410444879261362476560312740708037136905876318032679891045735749195696037605537873550773478493220856470781878128573635056571537646316647970320581536449320983202597594951327252738939814349980130609075710922531086191592504569110988193947240149743558583985809354424436496355091116312862675204899699636047982412414223937342966126399791656335065597871200924290528392455497568166887859564627797865809468558667183680657208995885447401474679989411884771460862019149060014494807695310249638944353610040417765901632503972250577144372061833004453172577573480131467932870817876970540237354365289557840389501336488073116513262999278290497367805175903280531252292079958086312422239070376614145773032121792056065879784024973191252476419897585870718506321540755199842913233819286672993239643029203242718100026825520451541120974686665366360185815538527496541230770955285873289765294558343798248611176735049302590127847323547187331512364089510472301783627395830390164701943077181250785967946470621818438301582078055308307453339155446268709257849800072047269261184042830082889006293440936053045624496146751873540607627111495946677319262260266680246699605668729162759780408364475806588907096185597549205482466552656792185863563172429615735028427593413872808186402199949227497555772403280317350737027232555538749656881886163064107536415626035401930048747870862377149576690124991624652383147863052199392251293511693862349679934477315577420466226558118762155416113970899992421509201782467442253761503593337344931753728880570981263186343410218415795774958355720503163974326502082979444681140451168365099574120838330231004200005492849925991519685986035569030348887697192323162493198294007839311386079261803652240110099390390762911114660763868637298813483662378441606932946434111051218849022310406105766443897801205889243973678077972137031287922256718425965266433280081540231970948313213075057473073771175691619576966297981279320719037271260383782378777615597192213762231586563921762125095273237958346102095247786705022788151006622257391527839673915178030738619773276332454534311471437601066920851814052386415199517534159159382898438940410495126058444774068925307005273905142648743109985213902572136700452469958856682565842560598194230010238819958769386472841684703455083743245702312095330200538536098235508461056200220817846642199069582492292180771759186871261440951691590538444779606882670153720500546586416023749668690633085325111680639671855774659930272708659307958980551219173418200169791839498297613939401084000256275193047756355962297880608227405071700887127440444559652048285069891966408035493548173554264533157387195583832390953926378924256708101507477742513843654226985196659412100030460149756863536537613979047794415405670681838585825411788101016268202835566060485930121906785539820860546291865082703743433558728717396729795340279837881636832732970524151867482150444194147051783909019365640811425756422780784210463712118931193262667397171890488989741274029983272398939003686290145461684478869912393686288643441369038308964944534472307239399482732339940644797505696588933650526237976224498698751531831605963255389442515637049328773471011167219596369836978190629239077613596400697068982983015548957387699476197827874441236258079157912997704353030478811455890344120455472663825141986912392716690816676375529387676066859786955185738856308617252457423387250130368207653961698799078559567621320674148187807650073259112845981259386960839745858034149631138093172565351982450355610526321531277014687198581944144562456567250648501907593806558686311113317678850193726566793023609945096608167803840284441897676490340750016336244578421486436655509411251502453438426743859477745637858077928678925318916779053877894471790697248978174641167437749862141575929775253609322752877760053724915447013104794292742425401278270671509869755631947806451255304620614835853374823989994150161219623773018843905238750439748834447274287725844035508718327640429203174505299997707535750225949034727663949618928399773011786506101301782289083066402067609827589339358431685463963460433654156476122973015667426438108182005523355628333557049638248586925796841854611848113932491832232877630969946499279235741665431570754988883309262137513894821372739623638619098902725535489891148917745790071176603559044829958557263085025222089904774214404291878746044419890045707878137818330656282590958526478035502747489334385584237209717501991563501963066265375381283145250927699050999341046833331339109180658358119303436665256695856119689279454524024829353671851321931751524229315496578880745355802306426458825850537007575350995024645567662413876370747901228498377652716407468467901374642274383340033458657576163020184850648282686623435890468595227857158064903028448522122583210511078256672960194542953098720718057964760499986676287382241664098448770534843218753686363572614633331561086007520473967385242627107236428089803679075506655034042462631524148777432940478594748592028592680345911577900023255124690679938578735765814520808407122158685511502093132839580257393112122213037955516294704107729883569372888683734192515020594487342797738985215648310174918491593407902875736064043331177243556009531142174771265018044179081841970624493183331867305326373939817411203139468980420204830481768183069546178305963871050638211985574951375695173030721283923479667616247520319526233041171193000437703128914225900791837502024428668756985882810355251676719694779798933166748203549237706708084989059830864069558394260350621038028008814393799523426410124831488441112733818396140596828296593989138125200990740626902966763069290570870727322612471900087165378509144615803138830524275868705656673001008953988494686491193452482401328155443803082305562814749000144880573222639746727199465827565320754481599226580443032476607642755428091884337846670816865667998298309813318330361187667384701159571371277174020249918967464340150119441211850876494862332432544950640312616967945525253616540904934059668859180196542811138167208368444887084560573912407163862239006405194110893037276112112123305417664362737434762212490936085928281339627784827926800446602954182517281222649844119140988723576879855384606860374818068203047230881509447845729194087199769529015631239009566679097030814426580380843969009425763956100612298935570260262749475487217252666221565986563102077188852322440056560739444957851956201403089715368774927500828794780528318929469415658670177758930898559393312067848014576776717695725050928708033907668218954404212175110523541543526589879438214096555230115721633772834189125958963584275132078102875663142271718920508268491759827161586804806835765880638936425810378613772408785237210008058133932240657088126278551173835052544617563771817337006809904726710470705603662286105560721469127164696977912626034929374999384404689805190936058287872214280768827998523598826621079744597219692569343405879956481942419340624852168670484640041797124910150088723034709247081236245534404711619077120662804337956718485632379283773686015355032933089007785707994347510045507111852484637662279696465361635324061118726900141159472834470533191161298043423331537039492071318527765537617261685530611440988486155395207814213852742838755920699243990721394597719120323255373470304737717129704207660130424043888967530824344025511434228600123249114297208248680747009283303020449794092906957918465360818910940194882997996295567671886250918263221398608191174581511917205376982041650096899484454481218358625606103818302435667110293024776319507315214975821728295631261802206577378313935777431732849361037133174522701382342204607748204092452924788798034904125342036659826333014868736227348466649674780679827569890186893655421510598176223609751205460728613762559352651124164217723550815347866262152648625235278139209281517216884234512691942107283481289509083850560303787309854843939799062996768524201750762586403942595387652663043985243165044728209217282552845348617845412652492160664449534803074867661138797645194305087613726097508537652332929608527618693136802573196960477498072379143362588565063091526899289149612867133428467616593130241314719609584893160829278620998255356758662339598169874832879368006201766059097662533614671129633895416292583557984123378105964975168168381140935338589826318260001998586712143965524487046202600578836168777540185737275887422164953806809390140749541983266221923927604577650912910794240290696380569732734693580404955874495439902409535503798803183940442208637438879893135173839333613815127318576346224192191631727643816452551234657931570827982730642302546772104379527657028278132196172375510763687976513099603019487851333482855099823023044401908925530790754166897180974482543805917407109257353912072202271068037093623176062174081894269111018528684350837383282357103538834326335092660182865689793807406559624337180682860640410746296303851006198088555889407705721963241855578952908890884726852902460358193837796374690042008512212060643993017808440704753164115115228785069598565821396440406890930736717387039098323802289796956303837594384326776914021227658447850553144050027133222944357764466585168059862694202138596041058384331232821758284255111626294593744800624443590304655775169901378337204466957505937011551525582574873243630182379718716219894931781857367533988894949822545463851439061638505240243698282160627729542009287792420927022117717036918129416328575223910912929979221603789513376164172074969404227118238527414241906813055522898556522327804421318268972391291729646320177037127504295017818482818408229882089108079658039830543554327957329060994654829946101110928131336547016487133348261811938096592151635413839454970206899365378263223782332728008784446087956530033793408746095777919194860971163495013161701169778156453562006190762006504573286309955345592440249230886042730374401296223341913213272796876280098422090048643291365063148865703064530786134162417666689683577077975898355247820194570026413687738335425002308009619341581551293809037164491841400928696909957655817198446847469102593079017509932475356609146701903258472249879112888642364734682435244696536524105367093016060237915080127110385690403943143623137379135855938901662820085349677859246538207506323737904544941752168798808063279742996939529734221651999183616429465293056253543141934247359144376769958251018715951413533050563920096714219802721612261393919957957185511972564216991961214536389640424674277883145811408795741811665707292982863467823453454276904065356538797897154852029362348516641306355749660749559865707122558426975235221927684847387554340998065923130071710270459298293358087840463488383383777286254797725624556331848073770374232440082575103584504933502886916474388359403609890906097246867744120164067018450044247289869131358509238308264319632002415871334160852795001361927003821850244126648981458618205064341024276344980924107316573826350891966603981608643656683844771525715356688469646797234715102987968402697344901932980918669448123881799282241832903103691847822179763314955967574116323562852431587003489926633549213382613381372039758633946003693393340215945738488115101998509060747534547369149973997214239369115989992032388608628268543148783148215150079074334488804243946646365023541466505922397053016328795277756320454219525851248349849573346692371030297168109101517994874844768037356249588081331665869204205987888107246285160962483681178726371488781136953829204002353026730566720717428151765743543528782102701967370289468419320748133516833385467323886032286518871213367799518708922908868807768086982282365593604812354244319597774789847042811941689219881656103251482032569798312283487256374785506310601096693277065586307734804545600052660282548479293661455184128413860300863259412999008462780911985003439748224017399833889967262863785068150403601276626353701551972517879508465918606090433145158211264427705040197170788177982974411498790861441947347809783026309918320157753384674414278297482029552728367836259821585082720957775058813431130200789361477171734499664007067638086145918868518949950604366545691884308266185826601739417080007000674740845470347723754728847634669191071725164274177775758398214504185671602230240675530316681187695466433533712216987137736825428261303412223422321145469423175106167627273123738368579118928214142842884170345089602110504014252441348369609901291128781126358775938469651903587915283863680979940771447817362216049469336665734450398769410704351737122316684861812988973930311986924310807193931853505930311136976105204464396254864833668540148592244491684864894472975675638852476449367810651607447521226829782056872867277105579161373232587376256783639981366571700214019427269985732911391422154277140791177663068702411849901631970087206957316419173768799278040554240271430084067904981211775447889251467864075978229639209826486092644936577682183063504793481782246128554568820556523904482402036022460724290310538927570981234032770519007211632604214557389279223552897300406177360004772270214266816244943034847560386946304405585020345246226907172607991470202941424880359097517778558220492960172383878959225446710178986007941156227971351295115655321018523549482545189009899442670818541898952846999012169390146360869918073966095260265803755046180140279774381297402281911844515335783154995052178859040206321984214449917367371810092845946316927933394037908172972417240474181300781387903695179005115578491394668817455101822277703684807547622947381038943527040713608183289072586579004517807361965528449194008987051117113238376476536253188895747224554334187264529279381903126598275340995302584602425539868413541415880789240077294002803086134074110710439789299124616907037356473791164135349024579587997728613244854695279395530212637610636247452079185384757609671401274556334306897116866382649794643794122777307896648750862041520859349692099402690553969899059800918896546592802190398472498714987036516770589138693581309931070547135388567083689880281158078638911744782427319405046096188568085787065332806181972039219394867305611359945061384954490924051062295256347408443904040721182523113994357590355920147844069929737466317071205484375446994665690233353571384359949781420636794359868655233172654760021239032011466194332837528797930865505100184941892709468553368578525802477031635822685552162033747751822101214227646662792232187294162515991403575298393940268761307326863339104333386553361849585232161692562704793591438683448979937952822434101690909681563248222028080683509765283828047050302083674719088773252196583740934424731271489465387409457332619405802589825754007981515413169005768618650832454189230975267798144587761802899881737161915843399640083801496345287059347106081843120204968984672738479800068333261078733387655281614215081126979909058793545377578169370172272539220023602519495179927614287085163486734941581290927607992638559382325728074039171558228383976058848678531501628990123701807536590888837281809955915190460191670377176833146678469722957570382302873189591499011042457650845829121365970232523606606954928316595618503845974382999093252693122530596415691767285676659617952611147932769288120838309015775296602216606809916784352621536241009226761830975700700341441904143370817359825139525685368418247473735065354128514640202685006246747369852734324085270513743346978922122615636567507781955810256980570351181285948926768644826359199831017428833280560897818693209704090504785077211804434586862522620098329636131974921862709900439649524092618242227617148392102117475949941752645249345702711513349598119904769901215065854428710279030167933851340883730961292090967186016069550850932951350367036728804650698402832725083770754339050798942250245147154122141568604860510498252018302664110082987672735855203073079169830751079862815521604999145806861882852367905694578241339250268853494187894596771757459709138928865386429449961470939643042747118557185343504086690894588890160777658474731372400090886018137505793931961539401533556491468688121742473289348759545257505683944723810134220536133909949144704626988129715601494744994082572744657395644079316908219797779568536368954499479190576060999857805494494308254828324648062186183211529864876522525729594772313901302409645017708658342403272645140024491775331474546842635387649883384347981165397167273404139375560223764509017178069861360905986150783550832618233654416307635125494098452030782085627843083386250265868725195407970033393091430169392639527421650971804184488508806070081465148777610697447755723375141162118759143796441361814775581691409522501396568175159019145885826202097692616194062058771438491843891840226833091112221398867693723401904822263299316770437668990744654908285851468248911814519873811509076275333317252527119150088085406249597454391433042686097180306470102701772058665284057943689781291163865691317734078089937450632346067826173006920660517728120250241680019542334761319714765325623548450183531090128355049913430784960029055645794650558754379797940728951885326709785132190138003572153465535630926012810198032575654684841808966774186348678632026631667573020824081577922374546950239902166851170176113175677451098157988951943365551889116374735168073940642352366679353018740949317897897249717827005024133660798502801744298532721382424594164150704969545793814985568504464203421062910003021810802202324005054187555128439429388417170287640728912438058944313246735799174120814640832705885214000393457359845952242110552350001970276349610777049826558940574815085558850724127648932742015646102524760842370512662950369601126230252058265455952706932713667362576929681385917472448799890416366065249799872958396261069516346387239943931319206678800549384953283451373897047241625205802009819907616067753440152052133978627968721895595306828559998610697191867349859134598688683857545700132270008869742269704490567616762926359062351161262444141704853779457811982194156729984983509949479784251087766113615529435613786568360720136751751603509803533139417359721184633525053043193549402387936620888608678156053542241815821036226559450423533102625012988112574494596779164254712312903056941093352340426145286637477739808468450678477158649882163597045516860585079547261601708876611853374300657781411035030931539188768886057218458210334963969025211825043234869577859859555685796331760271946119367435641369173250010836864182900888822370217010830419495542906670828827474408598508998550994617389802847628959345342205540753177298001592981024841307113988315577551625012906538322467789918077803471903964230489985114737883935748039784843889652089896693021968549340330299369033716479906723636256207861189026707134199471378829054975957174234122053531561864661959524405734682853647883167035201167719418054210276628022781015460593116312745010758851203831986115937156376774995894452593290282853233034770196581378493460603909625017612460966994642123909210937765494173991772682675737292415054384550213415499619972558679101018663019950829061442057686076264313797145253997900951405477031635845934520262399081393325326109090249492349069922191498772469806669421576271514929686670514803800408218999860730466423165504469028005352413148932439318297261465814139594780338289772598810301916748661415847122527741298050216057002704843205406203170520217894579630232994529884898896337514310891563322031093997669839193801073271762077543978768582068457248508059719709102479497180513482228144752694401106339770084339323264516622446344399639052419429014354709339429730574824127582923183032194014007867543218021073949748418985682719264825233451717576070967568638009031431283474984001238620217903794827056138764439128031408047006129286763821373744776951453477655222634166506156027939320565822579640384819247548970598137204100206735067146157725703430509864184936045586145491337309470328854624756138868255158648334152732687239833560469538018966451547489332770995898494089394135045838240442040120943949173112223621030973880498262650295549177637338082161411358220619654898205411385356475331538298480201794338608932324293816405411357446537573768700790155453428758818534484787140394935321363348832958367091358603670716050829744559317285179857371693752946249700300412605453584451916747574623148497384616395459137006666349842023585275840774186045924032650597364838669438544028098914703660721339649125216502642634664117785724908111606544686171050199146565703081113791009455285486226930570020751729627590985685713425097125753464757777588040227636997740442350314785425948368510090214426719117703083754904678068853276915407268618323632046504625233820206058241942994619717766664514763877601318979828156549518696739672011313554240218358190931669314609427813441387007838484291975672982530148087388053910833565882461854660795137959766291502727588515204510491236032680247363190573059890556550586931454320232076499591019289629145897336021686218877002631989127111701236387009910875362169988059327379883951187153215477000350874220946326528190997592597834734760999051017067146176315605230238775185241475472566832335178852999759628223765278145760224651381149529256992863979511962126334078530636123317403688705010590004757648189449082501154268366093321740632846139342771523663231688717800262982987355196219162688600504060974198812756833886983977038173291046570732853405060074957944289345385189673338250280085800733645698371593740787914669447173488503110600335670495698018004968339997607272816296245703792941780701250186306740741117991488442747658041239379661079423850710460867200717350410468646704228829468547797899577756263272106551914058193141789709599342815619396398572044628047712129195004813364680821677818928550379867297728990463295754955366313759646091569822602563356144692367887051775375744507962803853925360446300281482421602409974237063675747736151758086513513110000458284893424387428456140009727353784826273119472037245386011241086600902310521017445412463069814057759998386928285584538290184897899925854183409413807623740638572756667068726940268033193985151761703368716112106291644055576788911126916012487709042003272184976643494651069112459243296137707936948522531058371253047346200780128284747774505742117787916792459508801558571220560690462493062065042478977861064525097144404281313787142953063133419574644231652426137267765096115770147119850165884576220714666696445279697525461993881240385808193609214402447597718218505585122580368341933438462890107822922563336596124281432278604752243492789490701425659396863035499613342544700146463028653201320801891436886255749609121343505466744022531950988472373443523012492089446969092521153842316233537548604617746819231530972510992644773780013632953045117055325645073059205526071881058305580616807442750462961881154202715818998579514137737350410072575563811913869683008005840972770210285808255254528915950030107640704462060782748711416657702271882131045876001669548286229616583411181218467623963414212979061034500976867202234585107377355821695925402777769721323849225659401105442733830032927856652266723611138565625790637542670412816323285925660972505022010440992937491913501523427074450359300164945756957188005696040949477736793865124577287838357656988925602208804967021075818830884633828691036063490103540994677667659172830362359673879139984537474206254950866990735402552943566148555553361094401710868038706631280555136889212435596334660115172912448654766978912868173810797497823234635830492951520050541573961489548393315436325539731366387500922944267969973719405436689175685038774339549994404152893105368076969152228602121293096085600618349147934262916880194030582402982750618271219046081085623752568946008785531320530338022106322362255737011154249595860489192112182333511469612035257054761814526698074559072006107088049693455368860277329049764498403929764407495366074009431242061904235032411162553467576321900718503529844587271493319318935739357921601428790686224620662955995348919071722999917510669380048532379376686390296836555115476885381497566106804494375669528166639046537671961415524488781427678125484825241988785559287829397688345770577855348586359640581956435805558290213376815849280529356205705484004061434777081193899483109557585541610347788324104372334409299372255568421431369988272065738179536746883821448806102498192858522413430119956150064916186350554264809732200124534021284917759515431176139548904151804710837052009458303362494670836089875806872298754702790890675662765160114959069424380369981669007082154196004059149385573076636581217022556773954333747339838695440086640057553770220632181194278425501554659772206864902461315737673940559017483204358951688505940693596508271019613143505844621500731294730800465315228253143404512066140237234891667379116015271181297706930453331942759338232627187987969864388556928242828491720999370694694736426322473445825003484551649529575841937877930732167842043226675854202246874585917064176351958906163053820014877148880138718779851159347802842877213967490483715615937584295850735234718574370775402458444590883845290552924303037058778662521096976402876908100847084019168076252943916365795525052100537296321481371996475719424711643612795578585453499027536304350137616228965543968616793780642812342113105898301570160574328496512781881188762354766346527671672377268967438754332054656122633729651079918733164058612003082785146462599911185921414334604707509414839949689243750748004291321069397026430237457282114058311710899476687707353646009469247160850365215623464065765173766411039731818962311936341871869960580248338584016185127714944938308537991356636149664487453610973784553026890773428874516805940672938107195787685117579973343655141913022921795136927452930512425570885587603145686438787965525671274194600388074794659916749890375634752346421353515553075258919367786474501180282198167910489719606740083785122097803006398733455417603931703700830362067353246995045086596705980841831776638880661141104267551420360419003848349942954367428599126984230158215417751742654272941480998265455051818160761639544583311235013508893598687423854022789817059085685297906015774788675731275792219503295932752910656568153312852355305350247179674163395464910607547466182823502310111458998615902454592845079494004875116705283278487824902993291215553969801966211541334136943717948686082448759438688257392186632974150326146903490726459101242408859315735526925467368857639488139458784657800516610193381825322033582381843484930754166081853067121862981329626775944019689297875361831618646266039696172133908723212072525535544305666815568926522872589786048120631793194457118129873931738426981717464586218958239200159343363768979673859578971407226697841546094221749574208899193081389086361274744136154458741749127969715581561023910859439655751823629614232065441437675781046429237211437160405160548574914740396160194809847704002280352053065709932713226285959924801925888706553968633053496333461882972888961808930645986482070621618322642571404034851918869625412808659873013836332463837017084496559207060121755454630700815962247440573408686632237788710334649999533583121661257217215129684248450347393789805704850163210143495474399588235189394119400422901265406742761038547055600538342703589584977310005704984068602765953545915186217320022365921521450703738298839361174238550438748704760653478185534453732895704773984845371398964774339851383156049261954859920049997797320530862072080217126383765582940981881745827908312247940021627201268156608466030804740999706480043213908333579417785644926143816973772533531511261524652621332060675134103144510058940944641358052418377953802962389521704305857697371402642718571409064352396058725686765660753178286835246025190464708059203841244017323953471898385324720901278319710911065422275815990659092230842890885319626783114884520272548247508123091266470188721731796750032966530256887202542136218586423065987929763280499053360399747903528570883065707075186584530763562799072347752828837459086613449036075624857865294692250635152677696287197122723786048932360795318755958497989230034523269098915772387474188252076971973764985696861110301784182783185581672320676402256813770377853419518165818033696867270457265594535377878452945777297613595069513304139115630558477132893087433278384726134319168953051693870947926140600272008991075640607204973104654768299878752288318300936976845771838392658212302079293737286927191649698587648062570433105572632946553131086631735779723726751974332992011412616595618272113340835482551722453608964735010665397934546692621266634222250496400252548316888057060782031403170189304810811126129896421288081613783765604744014618970532679517312721074144693049024543776989895701060370555423753813032183623722002985750103720615052042180804196412353661967932652473687116748622609654798156935747543942662839851466967962416848591994061252295361295403700824427693234443608908683164753248270273305457374734285988975865102269900382216229108668566052841287545439727955773784694990968734457058452138116325711090502640866095520910389486800846492336041241996218222799181999860972493732524957532563931825651014338813919250450768446141430798196965126044589930979870764960514438336562081784487363700680385183352544870919233690232611374461118897651932958894237654661952218854424352421995136124544247708527115448953762905101326537417002813814984549403601575672014380419488742046221055142743804107677084834455858271795912010192162544332171332739500931597735818025089350802669136730605943311678279532375120885847961688601150854467077006422197539763278220103641789557967150232015482594632896177183586714558612177923837727339506180513201764005630349812798722556858864920919955049987606171402007289202011751515979470614372667056751778931892081790146030128928935423830136356646168883371217668320372276846180709954124920170394292323554210318589837122334150061223925598424358301519886188336309415466320245682370951430271220116978411634192038555401071980767968315869899096487725322070575761982832982079511612144526440092217464880295040926572173378041642918332210112238681877733654604712026823893066858866042211676119191429757861429112215074106584783379266851514701564615007511113721981740639286438006332285993374948665384167131626082282410358909548754919822672019284922225410812191285207866446997793505604820400550322593180118075873858380299562498367829865777541206001416893216989483547329771253264532448383545293184034778424032380184161767402761795904767253887774564918910492559586147027603471445904757220883780841389235782295145630870976605698076692931204020996497749730311894328804642656065815048839471228147697357830993672970727554865983864725709601133390601022139836544503658860721529554367252069690309759830301150636856983382863376805746294939072382005055812794280992206974295698277961898944110449487724811501386065615404961246008119115822219633962380521479736004674041755344924347911155947920500405202510407170448749653432200754830536598882119544271583481147444491458722462262047239382096443185326278458942653076886430230740353806929371032295924513898163602797325213391008423433957515125742301518899670898309446430800714634776433322550432960540972193045312408099914905712464548367628062329447184125156622980275548919218973355596209751472771363381556861018164798047557836541804230187795851242035970157703942078129859115860919612898506454024334379083363215870316966808556563607240328461737138025419467773684595055218763547992119314546408243050720633531026188418038606353724950658587446084264940864744891802552444271369527271159034251743682407655688823415912764959943574063351025407965192525916975172498273995244175839405567169418700834017575426973666357127218801813947213890303993658616312114551936418421899266020592081003357610817540849625379896673216417732334868410461856577682923827066308177335954945290327518579266130413518750836806544227429512282770254189770565544008845833385171880108831572919409369061437218550013583450584026024890351395772425719925969263994561432560380498735249731029208330442617111168859363129338319406697145680234854171454366493775259994438616069147824479975767818256241048795962746129331729175135887593638336118335497599588362613916496792414841650792458683237991670905893313195070594203176792314898321801872453684502328135798270057202546025600108094461226105774630368946499514530044921502770505220022774744942889805275487165644027312273121223849997912479164554343285061417741010295591140273800186035321416873890317754862706707161933302248411168435565223541740061020836637766189280308327721445963495137925448795152788428705327481218874238494409069999035627436974045921855305202046422969917533948382114061518492293229338944965778569684484040224163700126297709158430792986069809116445824600558004516492914540802710203016022965021629129417922749745524560208867601065381629990308067670086286713179817313222109791941801733204957344238858628832686074396201560382021286795762449681452201947881810622652554354025421732032286082213640150948442796122113582986131590618520902989054093847867440546098390500808596721616880270643261130968572248321830528995565371586690684308206090184696821696525118706219388768236946579923016262726571570485085493217963863779724823889207062750992899853981299650794568623047776491267820267253718497843953311197286125488671425462794695764245175570781289813584284758109771339525688833705971736554763592401194692392145759914161492194528444101953517184320093591877532013135690003413932475325443258235914152078395218900430962050799727308487736115229860007299062068658475516263815764048712042080872615278655817130523303930594843079237230750123993591778483624684234665297528708630731326576699237382433576238212274206992134683484050106260115083566385823326731994295333684056592349250508213576282632750963782812913290482373537222987631887786772203324111124156064421330969968280086198669805008491750294062014545180237769533294657599667539100114055152285190417263547238950029872970095401476917704758916535382170529535216176427468232644461913220291167913660162533780713294402543791188798689866135802905156464579874865790015634446777630302680131979945765218004023367396563513360157551856152149140977117804274427393091786033395312332399920287204044029418767424868066270518865097963821956569632872507775314710672380798419380099802778281467230072466151784523070047696619537852246736285595671107786892059949778661729793572632902879356354485329845893939060455128006608398827761442760604941854367282698618435550933272789679507455675126355776571945026417908275238157052624852543231088425376159855723102717826042190910252653890232341168360407962662875406791282348002005736496506741655564985584017541769153643687172843245815821086619208996080185225032499902949386533491812365891339650436680148554232272179888905503669038114051740527976182430470397724128744917410523619384065145149824312321052029626474680377791544311318487917789843081096634630612359070894133989574071215057822598686877829765539968352047540550252842900636356972936625976296443126536458836347991760253358974001730703495076996869991003853714247399389269542306843663894809979499501105661171996363291375505324182620876624690281112901204881896574656077961153257339329247547253250848120570647208307315027911365218285459199111267917257259632994035233457923246426740252074138254063303747396895299658545994163018718507533646467959444042189168572850543515141711717117854574927800071019238371331458366130423913556205814345785876541909569107134281388432977678709368544082080985762716655995456264671847215405494808894359206622254024570090930920755512903276668731854091688175434195691097823381547229518172471345506049773482731246682665975829773204695157070329928776459267542027447263213245897250834387395266466952203056662695151769825180186728305638322617843901485083034909575809079665677955752772854953461449751273598806366391375899810086790143953519433554896809743661105876705190804224472922716728636191488069007380397699844343475792905019987323045234375901565104514096479421700264652464365184937424679274091210184070007252131329895469911184073348500292179623725263796512391907274848784561767113640974329919209887694704295298786536666494956294189790415591223869903796147127597949077663778141662244061250494635786551813845020456843957804878545239081862898892673707173888193222776658839195181884523738489960496151455268966701813884854075095196196488865633685868935595973621062287024648333877244304261097426700985387780771825728568020251388121089923703701556011076461163868879004640623501518648600529597758195419391866257120436620808620378482060454261588553996797548269091823158574497715453592021759353702599727530562225775298341979737192441676688944433425737097235697074170736874192330995967582519768753984083432562133708764221336864571841524350854124476141130704940462869937551088942991754890878665708136876867410334719452976860419978351122744652959946980893096875280448479183454258983547001690237288975477077965867580020829541385194436622509018011920263748926731776024171293658845605810594386305379894935477986471527799048747235324055294722628312128803040026819805731777895261672638050499999389535316236336187379224031665139121601738683626610838398728206192511227104187508586155741431269876738759977991649190364151673640369231304249399071234415687995603195980562161426965849686901293253773447957861772893436152337714546003034633602475740177606588574957068995950936212727878010616778955079965008756810805853040299329126756243226297730697432955818477105586170529523003144760222465251225212312883920104214565551213825021769747356104099838410054878494904766823418803562240640164452117034443822860301409532691310903450453666821158300311141981731100511735569503420404709951979274819411231068060784941599097266834243030871719577121256990604780463918418581586787828789649416444856457065154847263404089674640301439526582996279725504730874569416705852018668221215576899474599403728294568044147562060831249227512242998114070990123608252207867995260190922584233892212720190041609221578322720550723092622952589370358504822668404207527879350781421101868482748735706891801523691991610465786711994378749113700709255358630812784368452700472507299171424830048412591415617635551717934121189331851090159794177485675773980276211358590810692851407890592564625867994767775835008464537267260317140884572190192921247238129715159849947947181092600015404946799231470944062937459946717970329179020101000121191740617271337488673468103091348811075007065839066511756169460530646087035686301973932869268099776321763631281380860697121997455320658698790230017835651548764298233285355373221153230909976244202291914489090378190794066817576554376661407631395116719376924154891012853590288723824033744235079329257761554015923733159642769059176337964576392658773898293679592537821292164231404623561479401320805707050624118101883395128825176184886604832992447562430700862633425069257124632795497247211025759671159366304716124397573410033854843485835320148156718338517633909353985884518188743214477824753842065208991392070193694540459735003971243764821129351024505014254328101654712687502200151387321348208457112800180876673564409728054384808788409316898780094589704101651294140869814953432554926861093949916393028679464698411769472937685223621376628414881320563977239955275017715473452589858750204743202525260196753987464276519129559361098292484269756074791396021756566604044633044766325420860073834331409363321713395679824824664384443077228061888847731413889806200973466822679651677259314938938352383511957245393337549757181278273493986298452036889847105100206084631892140988070967760399069450523560044519058982119461268971493392375934392864700443564164462393263462986818532806866388842733925133567265704871198286991719326303299792438138971682548413194936069821289904094757577250944440068301668162215038923242072517328090363835501292881717769251177087805028405101415988174551358610824742940796096185488088470431054431168025160943485343771458103734954494712153645343495367231482716360882257274818068612389662748763176850786248352011654071842177729754854599208519064575904366025356466398238097566078656740221036157691226446450579499460862791636509463854501399345366831391320952298468011601660178519609080847060402723917151747321738469002332445384955057302997893426975857025636809699553338276782158998635693748793856041829022222706313660911344958329542051204473061012231653079623177593776345766914403579698843048192538595498487929252636304756901651924684261663308946780175780044052450133061252130237422073529316252749633238480412529142485319809382754457483387784455682746051081293182363524448626402892395984094043987068367683240797329654640203265131294407101558934209505622125216814844198289911099912604934850810009007853639743217201664646452528948569054441868107120210273396754834008926754773456433714361278057002969617966949059912230142487662601591356585158308324261638435853278184832834305396726811800780317713628486423580511906062400809638376801433484960253650032193466092366597355793419469612934680106303771643818941012356080433903779427393178098807922661109384372851897172558151618250988071543206973500734691722558266043281644173383699610003970886563817423711950204220251111943371906976676280865721166096461906199261148466548074737675611504791831357360303156478271689799470382976884266404380688448052024675303241282472820659207912785469721863807586489955315964350394970246092583119091440209899961674630575468672031118733710122306397485891740866218627451508478453451562626071277881025077791909392440230091292539228754465072111187205912903904294665989094122367452649993158088109584811315180090443191687875466160232205843302563110080799700780590716625338880841123591749627714187745981651950586741458599152205882673431212386409385112125966641086203987912089016773034448969522465218899862714350628497252020647818692014335185521312393297529104046706072124351717817871293890308644972312147073881721865251015083009333927962459791112988120965945078845573574154721273246237946403989860736425072515947758970620948581865613605934217988696460671668714235082708605713223198599956589806281327726036387700568267601240279142464790589809916579505764679280900115804524976473564726581959607423646094488009957990784314711441652914954042373465313570484429434022226235810996441765962860079590369550537459713442371558634639206213862242270698491932091756051832520975329622507375187833134913164365931345773025070892003192864254328515712346921329634298747943098232590130451711840781008754369776946838599116468323586122087400646756037100625752448795171180417860905188761240581069162231463693907961403833603118344168711022345191786691734240906134211109318453383113161062182429799905700606135744495850822641491386221675734976347428286373516626404533116013255528954988208453398961323107334212592121848019326753320543873806311581317184896027024973108666954983836909522998313735791801818092975587114540844167048991477978948638010258110564888240528275420970364586227294761994829184946008628694281706076484962089266588967452824875928506214515343442272758385129990537160861642781262973672398223194029125121245244205524751491075492605103730850823558604314942380302606623439613449296906295565542897685670572152553918705770968410269590137367053343938704952479870563726724815182630336344849461967879314612767484097049624061556957580415338078655521937663224301425595851738850807422168255072865915283998435132737454936460467576382806298185170584376828000658625218782078083061420911032707610404811864735132215798034722598774963402324663666734730734467914652381633494945594370623358586603583185597900626253729946109744037116099135894795958508383701346841449247664823526353662713595059310161829410907830604819940391783929139656377454730873945805653777059039205132509870146715118749371704719300635379851625092846165735801524458646886567197164375382848994769845949530902287003182606665788614817113971179872839080789171194605895433083044122942768952544236088323353803191367749024408933911305349062980742380043685135490376377825683127647943981566432976399433403212502745211240731815528232981891326819733898950139462912249533534577691541570937583941559818591087483817417020854984823626251692677576071611975608321203876550406676096288078811944416036078965136743198765440666666003622125905072469404646927974457055803339513498439734995524727083631988872050320406896663582144707570408816072727730971441192209910930814504344903427459392234801339267355064074070168388124461452233279267995391136761397774835282165473895150196491043465055419309316976781578622116884521799166091255196860313812532142345954598741154239432481838245994709230597594803361369283214122329029884408831282039504924358534764683116089714080507600706382698940657867783828778050049019347125959031067050430066519802889026831202837819925308094554669744199934264121316077731124889707921517340176825034420824657157596424745521449864446769759799461220951676271038984266745465738840688692353540638789996232695286538051965471917321656604594236593879699763799914595352955842083102068657116124750654322643981816052934723856177726405434273940327356635696726640375868229585564398642298856534411888685302540435241533722304733661000533021276759796821209339216588244861808838607412500024789798803827474091454463713579741494973359971358036697987522880207372057178280887930583239037522934033894821861107234354650434706679537980396409967612159966805002295402321698093604654757366637679816675421269469726890331614142571194973899594698929344837725279729744446927460656938800501887799305424247589280802299756006181327201443758319449100087326170661006129163623842865277752750658794531371717435931949166419866540167886237535077131857518510142304314056660686818134919858774064260000417280403800914427572352510925506132531477457677786956217608666882498244556950097200341054189275473753340997615493924276922135177498635708816452463984607749553438134527291701786780843099218213644662025805412991947464450115481592222250649316514220835369304236401766274277632520787021457713040297411310006662428283908513264405514061041835318471134651443103478201775164078985217659737684356720653126077034605180463525474901631067998098718126906448857680977591725067732634870548471031379675352812173583407096427789324171550859854024403644060313945637971192409962070262823365180694245424072957232856884831797098877467486472245671694394254710861337106545159391833594980498803201038570909891993105766654606815431505173065732109905334916097853097291627422436264913022800946762710644965093890972138754985575944875385442655053740919057258768598479182053846653491731667272696734211841464787459881240206682143186355776474373808774714643275490353916802554010475099020977343198399515927053559400873339205101576383188549839950367385812666711828448180936513377606670343357968499641682608473586612623433915957199378159732297409520340177891818148174111065412630095566409585951750664813561153481157869134712982710222603768840956025638776649609781172508718359130852854628930473160993246626090662229973570508972663742568778448025546683827994526130348428116653859933017655913287325551971082772010090410827565063686333674053586239181512597340184775470723073205860661018274750848699389598567075870516206069650388429073354606451535443417246057931011507787544593836121197749406380468084875730615576117026787778044159264645917654143570862811760640807234607807844678888325788962667934037720753899161542218775530659576133468749934288149643885573402409657029606422984821536275557877669393357733927444207499250322623714960292416816511422634137395779952842258808337799399678709772826161212589515694830320045263818336402026620409577003522463053009342117604238486410665447372614446632029609469508369183514172440286045175347740796055702555337517168956784843377504834338347351804661316936366300715339496841416033126174177413550570506375899113987175198418831411085272088998099919580842417782148716576974837710578303738231679397105855782108607498830284993679574970014211884803975281699374428988120187527339863561620378390347745286835482883620153777333115331774074809283560236683960877398666538715652965258671269643015568621108660829204113518548280525721393236618831126654287014427178196774189664530760893029317495678965937959690393013431785035786531231165634942625355640174066655237231914627973988529391496284893049589750321472092177683489977312822455990553120547597758198829461024347006143943824786477087610501246350605281918735265974882412934711285745559085954518199913160198685760524716388505554473475825692839072657240213609249577687751066261441451257465412648494963434269766171860319671161908402707203971159880048759889696816981611247787791515808109426411275924749500477065013580024274184766005449928712083167820125238697618146198498242867091897061626047048561896867824270343191535477952026075495264851742099256249433829967007210547185330706240238885670215842000063804152927090539384860729922784635891419157346261515326606105001897894984348957948189393113875254049328539996218965654251947855356269898446960228476814650750684095221075267202186022109134884936124875417367245786675904362602670045453622761133551183660444238604722428798998706082587660091432267020997501630010306533605145351228516378163378219390561984107378215203745012693362770918290601179519002449430481874382188245742205957915663018677581851511985853226091385043740136071241276366880691434653040776520611212130831088533460531021411435505879172213224971269137844479798508045293968818765276994274202418999951101843137571335922956952155953658889845419533244161596418852291542598409911865936421718977259271136673011660323910520069994511834314563959449490212884356845441558361607767142936211075020601917704929665093285839282760437910047939248320915975497980333611874821062389642051909709029743467196446049655385170538809402242527818152704166526814176354891831912981141374756743751121084449118121942232570090277569335946933199269228758175356718309322609670104366321951405362286998058130169932387207562733980734301188454031796557600856004239180989602191334904917549696977389859286196527338890573276951172252445375042560088692989668008464174271740029960021708372239705760148217313544003966440920275575504765011996158724973525945428867277802791711982869253125318931365956352891680593679983837221487963628533791955870735743256125859363424676178098743309951718809773927581991675000711015920717284892683319037872678882567144945221987121331003192675983986225762261224798447231954096734340765009834176355201411427725497738550305898863980791181936134746083110603701284075646451987101578221775028525552463261309969867833302507275659015261358924097244561660386926863127863470771562210197580135441894105442037714200264935318591652529513055042702644128695147673097453201060483352500982052988361788189268914681408117589806640975364297751166983580178941481676332587679326115906165400603990005775477229794121050611071981032173320176904143464333129338302999769971873297788450741263419112797177722230018111918425933896593412340028146962276635866093645090307967361984157519252574613957579023212598365383513569788854135947245796538535557333599299445827795538908452970069082605101545537974896068015810275525976470153031765081412493946626091624774423336117495857243223345121367037103478470448206688930171204969249153461775220240904286471569843083669889080147148690854928102567505372266966634624690892580856329081725307991263127317751117445381866142742665197674148307903733624206130085512465356718249249959000077015390566525936618472805589020366096987806365863150327330197663752768770165091412370742826894194844831954020907964525739055056800097698650984397645177996969075306294061612390772494746932407981820635905887901338695496807483789115202690186516893116674908109528036263723378558936628988661682766455341697530917672518656340255959323032437556049783583295203341583765726130969700686522094984176482722480513635814590726675463512887927608399979449890349338256677831439172036957017919991969552528018138049837296684088437236532021709399669656205489596658193274554506449553876515724714290455716713094418135081341812934339718565460352431296736443983289168655384286875541901393855505615280177400163560641783294122573052533870351369609428448286412115749105770214144419745311076270581235291629949091838660402620658538688108458031723972602620624541393467112376197047669391558030947311759526309247667504831392189425878118216110635071353903269691968322433787997742575323607273473023178149484182843931302503547430610413299185137991134579076683223183122786389444700370247423899229990494406982192783336563330727255521387712716250211780930816392222058043510712775839056511697048731664567534773617091937809491376179700288388721921254562558361111111085675855322087610145675087255955672678099070690859922132317375905569150518542191062467248405622355308700838670215895926424297679634189339491816397746908119205107322028512920285253169489271094029421169890060229796442541751324311108482396742401131741871124115512924146780725770303221113489685106005827153420353816887730562322341284115756800902204516075002715499864194843688592975477527060190676492660704621580090392567250053970498173569322552802598263293395917235238813340296043936868416307318862107338626073365075204230368415370960356488668039731788727268438941287657002066432054371790566720697821155920461362686038160046881463478807428276784089964694288539423675609786891199424687723108674923648788058992006352354056967168041876327617558099859395831775417040869843227409333599512232570013513152880142268609895898335745460052160102070091893639790667629434659190981074606062195458736844507973393829758501308647157646792269215412745717409028294331585468289414908994033576581019975626008027815861377751015639885556932813518473353945187439712397083281889737524594502962736942026572815596959610432729605849890301813650196071365680215252851300311962048956436574323833700471379042509218600681611681194157967773996798995001301331275830190558156443357799356514803397106085096507944056840771003072893010608928961720934959728087112254022165879726405858494133716590319644913431463451736535646032114965486117031849752186988800025929481352991126426792116714637438293121661723327032305916465298875623250187762325629843567110044134071531636240230983425533822801266435913759536289867757312057403555413357969541806000112937282120899830759558796330190892179217961156367219473314876861289167346157111009829766509489550951347156136641805065817581434506454708111213831126903294700679055702739222655279855373688352163269381747401984009419467662146090444552480649762622989284800954919131067704345738297745038789048434005912811841295368156697959026832762778933578089307328570251348335507973460913209765817753983683026766294834790908852429187511236238519647017921850599669114497113901072325445221411125851301262861292185168677653915645203998092799075939946030622817688347630951126792335569522885488308969809618710841882318038969771565307069748542227168443223051685381612438382530443885144648602032535426808362765917912695454893285783914157629095287854402917769875837564370054228800039748334680420570645583379337732225816800658078172173847875813501407778668284898592339015941839803970000600004732303035032929145903838636156531068203047225270855226695609190239273959729057300630194556183874643453429614732516311417845106535148059586688412061026593618789885045000895847869615252946038240349262412987723297773192195088350363682419511339563932862020829719742127997723342489381423430899481967605721249691875446100728574410411768629543008154790842867051625915608808716059221290070361116453399765452452520167790720159392884751474629352115504309346726878499247693592450496103577526138755309180722709246964695475286076677758557280800733008894633820668929383511861781523552577238906150540869741686980585947445885377368424454817409563334910368258875917494205185396736730510881785160842963486692381271498416543919811284682996189755722857110651238734637173308086995530551058940415397814495731278174566503804388136705095772256675344001411606848952214149358025539128067413827742336025115117417676069255979094122992128706419201846971482059834288458113713109393854887941646627322665776469819586841881594878515947673741453295183983109821253832098118242244800129092750754809125068275818623395899521503685307741341570328861534738550869976765979987191336050479319842772522069235065021620239633724328115941804106769057994632075995495259081121096469036973926364187905559855640554503712182407481887796007905550470242217623253889229521122941304637611696568688296345823609898777032946608827734501851061099200122904109524113798981556569236370808118262383716731788674293508953751060449157700118179095664141435059559789647900545224552586540115734935534304239544009255834293718586112279979133694268870150558855184458529161553321628612477205155655220190792936586111586180832325803139693724174863014280124764535006478678611449683136623987112851388017033666521191262777396834526672602756249456995346493915700973973269841960584494589527176140251658517349211126064896506498697363296250410787421434459325801534314238068096060099973611582822717654297374535215357350903628218874541925544398389512684471230585331235422972133720513570292220954148570783760324351432974549402588481794364668783740720119672148027405319261115542642749378084219067479894163276891273552803058188484663205335957506654968021540747187594624203585254229327211932017691442747224197086645033834108340545109567103296817084669067062644711471529177111433206724422477005394944436561102960966395147389573424724665639519226568635151771376042626654413106909727588325759677594420707329860615626357184774382445126717646878199415432024785328962686561492221620331954473949417170884081819072518823619040360658136239478459326596376617765987016229701013644983251365222978490262026468393483955054707032255726658327628769135492739763007057878932795418511002336051593344585724993045413473168813856556859006011343024963592371148769433583422786344421787778231902127713307768210690328140563734782843552906021332939656100640509157714178423975772500858169660502434826245991048281766142086068696284512355771027040737026970837102234712322359013560755773339427488591105516035377178223659294738583692690688928465859804654435600973152129097791129272345427588895333229200263431566308356155829418061314270916309359777397211385116575863641155044610309744899108782552006955709035972609271309488286622244450425434067662244984776937230747241924925283823154088610637344086463073239805328821649665809977130026808984981115124254373358852137341009945204992195240580360969533638220450774375848533490259299782724687866866838238485439324234439590564470344764110557740510476422806718537267384896095551803097600886684266843702681167885631819271165731513461805749962726571657669686788028355205801186344814433024918575686070820772890127207632380814987792735876001965397765499962720199749923540764934389301434113203844755934472698048560695566530736555308588086451990086297723784750258679417540031074516205134720766118772051597317067919998245442634919203910164633767076426403205345451894937095510666033365385447002649595256743488830282501043291840623782968719039094597476868573709842254822036154625108865019537930925507386033103772839256809891413915781188631208994029230794667768599789265882000910876296705382009789396138042344155897121137898327846119090114052527460946600650421357639707302556897496101921927719873834795244084991039799064963922561209635741401675353076017738523980534779981407480273431686683433106648300491772195242629169823581332716524025297195183128738007608328545680160459086574389291441309072533159642335624824642721680146099410189665888506928143140270658151395205000553899627844100828371774049671719634796403300602777394651494007279347634550172649786598698776987455239386966595296365609852513562308523112248317802503913225352372592479903914043658760505314456954487547574568466393127557841162648172010359734397719492542150099937490302215255600882023145874886787448004159984936908034149935701705579928653396114085573154182281036146824814872450909687915469695971832812112201852709124503088976447772085029989988862196280732807430317835747847284309674887143420776795474232647863413941277092204689287266423372675303772237302909038154773354633444501536096744166208099383064590081351274359964711082450007809641015234656526806622096980899256324463641440098842026746309918760100751712828355668263442969255590080617359839002437391327986399977385833351970160258490416845552013717116136156651814101468598917053376678253875711067270000890459667223316220974753869240396035147886278192468370728262859659969496780476114827340745720850442464896708725409888195797546240061179605870442646628703579236952027925273644459585924996957909433747915658330376016917664491689155678246831131840019801595447290875788588418441828742050647898507205779926102108940643911073909554275261048398143867228001656650545148856752327533994893319613931137033705356522699132197891632928110404286497179154375469491103271285252513021596036243591568360456876513316271693418900307405353397847141903959767605264640935280301577649576105145793814588153966619930833395284532123455543024579279992293530862658572814352463694531103385600032353884867381586253660093259771084737967125627105124441756463912691133305885187026712970424889455184905120371933353893479755268451625469444846166773675722514821298239444977422580962248423734286158702209324689270905683800857354735029896213671603209541260171222909858252376902990444263664203865840513443243219762309577496275891209181006289670097190267066836452928776302948286249196453219566654011256479421285927407343057216644414268247962322334831876332038614157613942028822416566682947122227366387703260388872764612690787744475338184041370483099376582365672044969501669313554118943555212714440444820454096326531498109995230512249723900806135425935171897841250529456425534068173778425726474178267508493600236791802379395487871357091059020160186152017682453004458428270451738162441367183724054704007938448388105197540203801917618744483152483752454501097763310295296155393807001222990821339521624839566919964187135118787390250214471052465041743722890228747691428718945007031457018575534946621591040128829937239809342251329130995884909749848133983486688047106249606116788486627036189993920145236745914549773249966805419513167060473180406143220948616364585127632051331780472652412308837988117262297943431219152137338561835368477823708139266707191673878149569158353989724645222469947320153943670497854259133447445043391999292868006370535664141941298164812259334567109175487575384211777363297490558031965468733884512569337525286399144980968242793006544446501787755767218611082579117604740086162229557395490769536524809721265680925771884643761621006077618035897117211411955650517376510702444762858249124062392788924352783354759073640706594607573719010818647362726729167076701309946122156910782234691938977573671017852157822199332087176834604763797873848228430148931034140894342012406949603813261165691634309478366117475138246197473632647544893998024312078972663748485169534114544872754104018211481194349155666121939613830445947605512659690291668218716378276286743609654105315418080122068856922329378852035966111735937332006727202444849001338444008149710443102184256479836280637437445681537926579946391621359085146141909853936939722360241154607649397252545327191104399413796862308476604889788359315779216851375532441059929207701343965964210177270611637363535919957590697772228538186755880833931276657683391530253185640367497105217070348931114500050490964701129291259658167887124651833702296362039360740830215022316292968232702242742379632859328390908439247063289944736376479952988432280812791343875075426096034971018626822032919318623224990242986591027000468661248732659017082845955255904550283344226740100476516018273916843534687395959603865035252037074969102001523892678741528626501017297772207152244701361794321382850304301702643138208425160628914992501930720232368735862919169210706016176985019758004938948491906450045815686725459558615087114858363384557597505580113766082216347360554051732649388738688480287072043869702975211815905864338673810082137697877475405984444830225002576955941140643117219197768423290939314046896313566512814780409214022487104290229631269847867445141127384314935949438195408642104346232678700206073294623450879986168661406307197149194911651737106267917312130189247901350012206494210588010910922358684473465389720588140466248145006440502224324910880847111139740126078255361975038866051522244414612956619937873095079559685271328608863519572038505198805020948942084317312553760429538908803087536440150314604430419059994130321279863601869785050799088205211131927784527407963861179131630465537164314619909137538775729082986966738756446514769959871991114494976449064884053365948042721422017588929542914083137467331579122899650598144663231532040343681280160682549837009283067605256995523582687120879667518246198462795280996448688593005258412238788270186949859638914924181212366545200675661496694352352521216176363445217993133740743949005440527035638238119245630744560208205649678733917803957743443930898230202062101114650584742317600032639298725867180186632528238906080329579065157166583925478618857310565991131380901754704756771659533608781007085627462498424272939951391868544833649728122530736562111285181352256255896176330695911908208674637509554675339811566916309902945005064590319308618232568618050570198781304726673687699015804630609438806128530504825244693125108342303816809231216915360082860990551065105868173936955199730828107977338507044789470209762885614874970111213592731164315276803617285864385107496299333511044925366466894776622911474921010969857443847031200926628883767625172219697372346047561349125946341012806591390853962767345869584035178377961471779936103734129598048947210427264336270159683684222815523943685058123110618305121663987154146783641783262720171992785507395973515970737669403088627598696848834176719981239676623651900215557657781466317326089483353317126536084831775135257739892481499078716464885713792831696680575314748261125993786424378759206985303568842177183360251049916581859518596608348538607125571692670956082801104820349311745395767085373353265151995130476451005725331372012953780710130284038812621559975819049555078302093686308661289363921166633370303996119388878427687802446001437449918657263411192368700174612158070896042914466170520681874396921807988188394184403156446603955986671142067193069071290737505752109411714590741679918191706446958045094482251345201453353380717908865941249385244636305049440424068143021089022103509619572732654428439074452013848162322079527900626762303720889126622928504292602639017564340228712319223148178424354798726495411794211332534614458502131158292840256124934434651528899665355460884078939229505108111957870999008514669122900129966290951832906219272700617153572414134951168297417005240957352796113822542998815104573228587420210007548948565625275237980760117170601215529976810008608024375202320009933002249557451181206513000831795717411129352209980438013608255079482100835458443605500205355184430528857055416030522763628001548694922827047096240535141695365695827218290869461262243668924523208930275349770281021250306486088011532830336723245256144529921107321559341262976542983052803933907059911975322513132942009180022989880588799283348314672270722057745692867723634081064565947163048810973767490486366869967357772435749430211102339105422093047937423545866007388563545386114062025885915135889391870864204867305223533959619932255233379314580838194255046807202963819248892193181466073889196488682234346455782854356767087455424701599560138597217427237834931933751512183575374247379209137874275353748743689811777990985516453424248691870888382751977672190615447948123433678567869932187535702630058487388491162148925150346670386106276601046638619412464128275749160346408977291580635252836568057098178013205643348737694033746295907919754623775016942355615249114792538138191368642324821985928352318986248211046688729339740132683102935335969926951392675541053851414407285865710904054987812737721353114979045952108141793898939504501499175740503745919007338011523696737049455267780599133645705439065796427956389349069378540156325834256252940091421866935981904304464434312913739451188658393974742739473983434872152781727539081067453806549877314865428984482206171349320921937343528392333672528456112839959723834943852138794473164215016649522114908994583313578974346736897428536269940960503899467205009501705999964681473141963156622885547654847515736474122601838750680045176386336766812843436240269072210276867873198509627144416383696195007259392512366440827330043300890550402453715962903159689782981150694846978396692436537953229420152590212235131623900386707574263562317300219101549644650058696261632994571965369286813324300723898268196031240883033352813374522938672613518639081697765368718350342688914853292236839079577790689769374340256217806610519001535556262902197699920676321201142895633904672588921479486913170400969515912654217766284185892477943860696117924338780568445867639656453245745609338618801402002011295797856966281437020097586946566035857326578918670837455683473975041822316724699688736166044915784023067384255268014117943132273792090719913923309010586235795803264647803203084458941517811427553803448313780649244919683360283041841174403436873100794077995058317582014626725079347591368110498135250421383007085330533607983084782597509929881667936648670519209642776436251763595011083801467268129210320582487694354637659379298481457924339591962458592350902076978267391874999082076433006186130876173699026160888404531087862566816629771474770466140944950167634060003746327257512317715070896740722098683724192025993857104818372390117118774912842647563056189040532116577103335136295656285601651513451642549737622073272388868409029274500201149662045169737183166594765634749727753389370339662188880638096336208898000771098256550865422159238406064123854912856696609854632889234475258181004692767235163215980999782232847950272226392625454209384432117672724394309360612223265916083998678094925968173069652577772502966356181104472377662900541143746693976148805813246315553443788851509227208195325327344708642337272999130568906119898064393002497781457092065784344617515290783351587996377469529893546089407025947362933700772309514507410151759694944478872724161360581469985434190050776181970997036391829761017577333878904744703043870535960227094337117169137954457579753485886178062745040052770741699119278827558626489786012970686806187801358651749163564776924388008983778903828741891888333424494443873866079576336636580067500228526632890990628587196876016552845071954110279851411564779025500107636357795053333864756664482247025868093015964856791638362295941421117184023510261900012179745449130863942899059438534385722950922063877307093583049749762932269715438073587511243742834757662881023093235862023491695361491720640026975037849186132259420738535629210548803825951059796223345383046784599650205265863957717799153736726297872389434011944372789183489900421388781286478863516470458403506026502208070279477367755466225332881740020969664289124750782313492466796488543635208785651102348665160691439251200555389817847274141967935898297741866874189849312545473331728975557947022487496084931107928504508709673281443840494853458587515674240219114234092496254016754320984565389198078116753463221397896895684275710936228143363919242453646046742291513547207023817713758490141257291850786423515904154881538256554391763879499446589534177543421358827399576946368503262980269197510104164966526652574765926517070122233179076144072544977829387882238814594626659260186678815699318624993280843688445411301291902206956168425480824212589621699626849339268818834623002397924664781009804938340779407562009483846583668751105945208131521293256251117913289836285203414534663103342295395257698841514081024448439550917412268697523117293444240647302356670602467714506747277678151409478724624958732365077837692083917181834331400311093225276439892759157553487633140128509483496299201978696488173396203743865046686797937583755530749032902455940043957500132008825023538918241844990015933382466749620270630204952995559574899610964404224492377369714099981959091601448110538755457854972651859443347512582448484665384465394566757511153344058158979046144215316058276516419608218610407988728133788992469579850142583439460104963509026587847215289323777192146329723817807979819629853972342046422468826380844957779268733439083580312869327682950206504546581962210442874275548482797686414589003051526792499147547921145406797829449552577925575413265705379849243005316460205552164105205179631582042243819302111083557438173303212960519766621603703961034090616033798372294421544609160608014159080090450811248534193537575022614054363434058568564847293190432860124048513277969650018363823215374381376002619701099424583791543359553388684921839894592015686202734707676265743690201377263078636846379521271110183748173860994625549663083849259318722792252251116303320826602784021499833167771994145095288754117762535501575450773324200985339121546593969694187511838473216306213528286925129734854805823548064113179803971244506963172013327607876600118039346593865645489632494400833572509102027051707578757172461622109227873717000762885455486678721737717425165573857380436861646058520405994620088685007248064603334129974529510166513155057794012358642748823291745743393860626720911135831813631433124185053344667252890383845766638336646059009780435412204384823201572630485461737777482013006744666280478601606603709354843994384948902140174258660435542317193533394245619739833882411154400987712577244176044666066994617069654017892867381336173726991198831543287425133692043955293961119467634617305884522538503606318719369559752108210852144735441779127774093299372738835906835991017238743277512563667373838181114477509031025456104000205021775582093326719324918910268431909117079504747412172404307342711655397053289823268114969820712151998248538910577830259612732707398836428426926197114599894793147731695760440104251194575041645316607155814545374480863547449490210148367237729405821883988031012791533070704232973375698774818059316558754243875798262253863002467251204193518672666259230566312838075670888173886135442721073212981468112697021670056264483427816732255352824738789106310976831009545129136900266238594036383464779116901143775966087151450117907560784032541029918892861077027067322352287922497312788464926306892304897374353266945235854566343678953692911606032289866540837469030512188882149353281500487105288232284084100524848230941894216399249927890268572729521951891839107129619063941101277617655467758796631426811010052411226889507484230942612377688350945488014811570919381142943845668577401689404223558313135069222380776253774175821328294589350600797442932041778353200559048974646628260055244003094166132352556274242895548166306307163671639658835442028078644850844415538150376182620201068095739045051517166506569084944041665813730837661439301044971425337926952075210818215971231280271904763847854667400222730694572687632886543497785131494421275895211331449032027926234045910118745532282534803425853487130089091162035959966843206589603180791867020782520777519476284694070022477861214501302393828904028835906097979684912613474749167966496296030214298123380216764061470560168378123255147758703320490311753943053855164940164831473496015697774553225600772811025044137892010688081900480646443128751900269933737290277653547744933387800284450559847148713855307314573250594529745081083238133084238076537526102301791130305945609131216996187483181998487186304727052171267411544864396632353666138268572497548493339628352861591046160558079510627142719173284609906983255076675387232123716384020188748991987018881432874723521153166448321778542353537552779389373242370623302725962011115166296888277359284696295093040586018869225241146706538643686130903769652783060216038182142896634705462953164661909061227621738854561161407875488897260417288679007952653598307350944346688551863970652870904290316382720203004759842684923828172715277367978128037718448319064147070035664813831176466493990732885077538998501380908341679475701375605858520176289907597941813634096865271374517555632608590414708689445389334679779693225405545443084392531709009699379869303802265950241664623687657379252159445887269576369680498078927016404183660402892137044500890743712629598505617807531587942518665525124280192135320588066720395471008357688549732785905947043560370549643889734248439704864115336120217952186207060001608962727706239126138018105207573274034289885493655194903905571365082545375534181294448889995911955998294115482277964127340613911297375811403999316261742267763043870658392986891182597341844127216149984725618804895047104213121751842331943720851463234491000595387363845142345852961326110386203146483827371780835198118570475369069516840797185016737625721957442477738449702875348291225339524391396543703359821648524517317166060973223933863278738474090662371313525782862846776809099509587562652432331487809928071847526366485071320195949610529784108759905063022557042909583935558559906879709351030777004756092194007392105930142053214788035404713384439659304328817084328464411505649667708128136227145039706167626305371304653757080098326329459549913266233393905575016477247971333296016304695481358289903101738408709583673381216897803636918510424649671869080909351494052873220429050863559397491214115870120987541000055505649414307991714852821062500979843415520338207046808639906591483761786288496532304157059489699300156944328750248321356662091740923741309901698215609267559380241282362284055170320393993929277691586590239911257637785520409352193218283272168283213823512108058011489612987139603918750478087203047689639724378752616985717377160935578249549338657198857765765726551881507530439723587775831922202735774951271901482866107643427684061630524913491813096632405341839141596268114842645707446098718901163627576258152470683299018943014687678979662334374137267106720418574873613961397159279288800021595821009443167294493533819484494057782665188668401678346610775645888517136294101364181416862225419144902485232612221852729332722582144938056319604944598919950303359051285921613024265543574033055019086961965246658202112290554644267155811787945565041535269388086662168076765476072454840400610053439932501233071013014909998704435077423055118248993023774841405930684417977378929975733774463241725854064758204768638647150766614726139039156314796854284520571767641559626940785132822211157751495713708204681949257741910261480898588436887938647555134031558635937470707628989528685046852226078952375248739484619878287000212274302346263574020317071939870153280893997647795211473082290754166085108684332904514702573926548992838461603175349221840807699510203369534048012485977807091787995045322767538802159617941266306759917759051012879470558537270448114672695528771264723784142842493141167356875909316876241871585140585928826225894400442729633947985881341244332768042471730435258995707980117809972415944650868471344221271374625286613264741499828949312070655742426590558904094214508205876200794417113497144434269319910600885166550367622979514459421683766433136048166379807082252396896115036431472629196543005631930477182988973143228863236199842807440260578508060757080650048206758885921839569105005592677747202564696235144331913946390747322003458539713692601342111281516464926450516130873473540436207582699413287409695938853588370104473652293250244455336836927230222488793276765548078828106020954430054855028875288966333697970767663008130272928451600485557492761104476445919455078805891022226294292267113040605703733816241556338177149547624904915768273116392339923587364086175010519573221291548047894935349045431228107196354748863395084194225741050545254036020501785573190356529868619709150079612911597590344842110411045490974802466551718339658040840868003526170154882997299308349658193009475974639985257057667961558414909506059144113675692003752427814962013877846932689649703397436209202379423204372554567712238941883634917530039361096933017285189727901753461636688599919778310333669569304867466339503722387338260448033210016240575732297994601471938054654984810859964200875891893840302685036088539346083893986196788382596340267844333411840694115618019328633329533112002538744514990564656110678826588086604360127571892395072817786056220225245982860163790352193311789775904689907449481307328008325881487498050269637995437685137723216514209726182171549339757683405381255202543887259246976668469562342570052115107464020945218179185909598764433859072318918908188618387866061769652233098136907174861280655306275046465559786738817372820163703083260236186723525765418461612733707022100787538163034062480536750953162826764568836795313478324778587939751648110032214585355502597719242536139344125887663188913453768048179658168875869779832903723488018255987025968888076528798154350094016141281626287119084881623350417315305217280213767516373292677357691039586045043193965081263148269947504736781674726915077636432302684107177896944999068731664661172793276550809113764582953776550252382293123384877200215264004446376560375774868514615462134182306827982165216545786392725934427963025756039894985259604068104382849768341277010555423552652525584438928760276301910314060422027047669354791379071077534740724037315907363065386676392162416627839555546143814972030276028918132403323509210257839614910945891257512391943245551447319470366354086755571323745990477756853438048207020292688301943059241289428930118167794130025833164544359281096927505517719257709776062510115055697521244550319825441261076618115848107488617155025598561973614026476628210693698112813607765587934086645458671259423204938646198870015475183270539634766683163172049521076407795579943742692053484504308690503522638795118796597009317040652048076463764164382424050138188002490270232038381970067107331658070107462329636123910400280780525232862224293857528949780120560946948542417857106383833530405441991458761903397807058328561611982687620244063426272704662259131778709496594944210980545817214446216119075722632556565788543125594212297247733299395885476876380625212852005311593368810286409159977640164155344622051491369644284399396504874449460091243293087522917459213253801729727115451111899752427688191523392080280212543356848431071022183325078220276827161820075594981060939146330914106196757307322992645575628154628180113370782032516708902717181841688574550760725631103057687479026547446677050478376638088367760613854344092360473521523684942026266989952654751097869194482201226802377869674838262898614783675300219909783965837129513694167199090165196068665173026910786185008502537099300463660667868387125802327125216983085243875956097745463223402743338047901739818898723354628083241992684107905797349620697104328644087170615015459727593911410830685894436602483392556057108038107166294655644607842079918937379962648994383636204990623938376052186718676835990363108724840351215222426033984708816998423492464514626877943462167395390491195520113247370922508461076090952510704952372169681950484402520384727056748926768914496927351285661431720690884125365276351390865778121399541321667368785051696836686013115076308134588456611753181983362509103828071266596080106897651312770504545833964999216334144338612169711425053161085488699204539108864936140293508262601505716159691414137358962185107292236016251280163366310592238053287840130142831880262044747906576601733686158199851775341864601565475306139146520001890649105095238809135777235350450827842683399077229480577428319665077303626074713941255362857210437069163725675621733165629607338720139161102273702398053880255807615127574808480751389702985986303277899352954609562804570633201048401826084949403978476979175422294371573565270487893408402073067050877818736521089124128723669099245830884159601540120155669401004006702299932700906814529286361784699675278487899247739315669178448329912172814574376027517561907632590841596271802376117429233298098228539563435901244944064150940318919925633124057006067226738948508372335325976443987788874164809937251283441616641723096506041563037436008261275156719649642751103244538760835693100217386093098762434739310089434192227074164717875159287987644778120844755800432426991591245305021175011236477653098749400528291208147006084770260115261984781709363035444616394862854032951225234193773339730198516407960428563566608300252899569029881728024383961707117357888389030475543815574811299503303393878517177691964984378479061804399437207227305411994505646298034528453449206300531464896569432879828748264010188862700252608111567975640900407448522815481884158221539384979262385820778649529874128339399545966302299242698170487080542830102958695022519201173177612446264815371508296982379856185297361583711779082199276304405273910971719686164787210554554690617431027924821716528505346892336113786990012108237956450487448904775475277656770390022938915218220976779516272502705611735989853854874338240720531438406259998457140243875840783286925620070959436783959634844457790473174120061366746246335314598136782025544574833025505700362329730542230723801765248875627962338359619283650043301218770052845532442858595715455426337019426718788041339796824911997266745921774679011955542442797118933471057702313977316775768939144596182479396374839022845842368749077431363961399975743653420672114487872367815119687033061116178138707467681119436427808393256201764145959352211566037581176525830629420068514875256291245317880213776575999858429967606278203191871256370004237262205874756902531342947410027521429610550856386559974513668237892909368625221336978564038793200193644008486595565091889047763608327056471432426370663336142022686213160359901981017363826620561805865539348869882574120273702702017428769942171158129969015822627746787854192815357301283856272325340656339735691910551597113486601444923435716219096451292548640418959021178235203630320291494845198628049123622375921334902417523383062156471550146666032267552479736435890513450938490928264708279732145117330868078203963324190660204521929784396201189645854140546972004584967804793591213800359460936463768631634297602107144352524644935186351739633395069636023264209928507935520491865214996583970203680979302489585924852139783353056031898532197662399958141299762667051881320225025693477097568911657027830634838122920864782769101518093021671933894390734377478290004179784199873304275367497221542092039802997154232333921456532829231241299638068218494949670793812717361825505299071069635014031266602803477804035796070665635793383642287888594855777590867927675811237847503179385408780013857140054805819891238772149398138733410515705485525783421428124072467540074192388109336946958878027862631824010096254887157848741580467499202068108962151056718708024410738798215160972513221040092636650726222282201195299838196706470515812030412862886342411795297108432605557800811991406382901471425008849968578451383470261138141265971832085408513795195507540008462506315457845020581900114278186638384279052447985953950426181784548531972337330489196105603903107857807160619547023499434349738806326784970632474371047050432019496776639777829003693643379354081317254328070727583293851133120197160545751248356679361578518526909923431129830154921236945636499432141240355282621639991720252467698411975143953905403125770880641387848909766590652069074643910682607611539350812959397381987435979561773156516783431346561962899807467165665857921052491492734852428894394318916717807654397539815894460303502811245656605954033355296155164512722075466594769555220192170907760232324501558893957204072911286765015720864047313732941652334709018803882742748300228379627123384705257758316883084372902158387108537945101623869979221864227379960916366024795031151043629601302749909651970244371846360148319627557298193168930329576289705833682266298333262352631352502967549543970851840226632096240412258889411041273861507243956467406708547925706114587699366432784966015093722460340669585393408170371056551712315111240814127842603702245604486262602922165690128720052917843179240723570055135385194735194079935722052091153522718233242893498570055279410796193050251844945118314203703146101989754732269053608898402411149301521144855577039111059085961858264604629442304776285886118993579791366362485277806134678596295514111866067653471175348418007004766426706203394476719291738174076530869033989044533175540971105291200777749560013167236678709072838837808074316384493336094236398528552226423233362738652511457639073000367084597876273819033471266947732023203841689673346536706088472471496132223831020422714409110464588853424520181563375294182597094110643034840085528822697838692225467521908079162993291491649012949967942923262289169376806324713282398981004050892731141397728117973806991676537903351276496958044059534652735676898196811061961074669445419060720989452164038456301978060515030406241725374106641800905851057044750563275857405849039607798950041112520842382776171525282640112892891491680806266264614912439467466069495944154129773908651974249889933449047724645358658570358593155120473063161493820163233760619353419961779316115568782926203036339660351771657572657994322784193041300886085816635852555776269070854402372870519995925855252245509890647910150436471411021839659514593464552570355985579485390463332547236696181165137619464878641640488557894423715352951559439264168973898167116096059320358416396636222270270105122096878708967322320976142685680545057745907565430035069478876856677819096949937223796602502986985032919533647858454514941874637327099557860378402920307059050855691569084887704389591730116815467335876795358664939330708706845872357101559610240713501660283987126592473429548407008369929822617993211147212126568772260288654633410580155620149268674353566777118062982551655045478245202958401471541560305878463785248118975221882651015385711071217424931370830871923074725322160153955072853597547877906785882033821728109555414341924968862817161522501950719815201396732811711464136552607196882617434241782756952294674264678146007907388544660814304617526162818885837337047138380138257751256833931085969725136561873173838909002079323565853073988183756455839730560106397227555753279887702651054327841192121552463014327886271202167359877574442349421528439498600057618755228779237081907354021051199703453366718885996014418622408914123958806261660736242177087842134577607334661650365527256851570906072798534782218987500940852070125754003369494036602749798010724588927713706114021303436707409894940082634073875296118914846038070285885506879034019310704186065151066139132520587210476036709028245825021380588587363605682884590290041416096077077018825516061989646704657522292499160816450530688154070209284220113257696911401243449069139248355071770082193769069447996904409379261597338220444740864769291673462718463954938535755068909264904809409069201662166505181113213977577323064390450682459733076091701666484476671037364650649945550892386052920886597310512643807502162859384923593523673618789457266793484311160001562947863720935163470208802255669007035521923298886011360899938224523294974024599858851744885953535219407532230996527255553823245492493952255085776194010562452312546357586476567367954636489532011225979657267321439535194037921674128655089346529982045979635600120443036848509047557007016167374730577414558371761394129986399574319330359503302110997570882524252431110160609275763056439578920980161736068668154710717322133353677851159723839523824871888851184476314553925774227108678875829406279283740351997069846812342307019844490501449678907928423955427656079503175599090881616711079243494286123130787237703121947983541294186775924806069328382015596112357491150126815393519584590116914196394300546674540497909224557902019758310371971135629627936634743899352200256418891825807601182044424678725609347925120885015829103310608456950389970821328287182751332998855775033625448596694585685619791312061825342397724090743204279897685313905029578619969953102905509738617693153135124369597587567247455153398750158413709293944472995125202189560802936243309396225147483401364622397497172004802063602035860700242404258818425093479961308164630058212366272932329560278166622214490861023524628682388805184379081860783389433619315382459085415394045990207729835885144758139689202206968497228255981368736316966141489513620774268114843592286449827490559705696022377273487177990952594028333457802328686158355428892028022431278587794825897414515202924903288921001579276666785816727226174377495739000669974525613693240385435868975821765480686141766019390107852104682141691448143902649162825983859231922312244042058846714703547857855818259600656064459782535642728564833085651017486593184843415572350891464749274560241053625606392648756644337552525059164831895377926688962625560127370406432492505138671879206942758225481338945163019562656529595112604304256434458284686664710151360153948927020082731184539492038036880158086371204557371144127095894221050109356456437692381403333540408626766956582477837166408184918185083235457589105749342302556930666690626273428376571471626175454993063588161364172045890541932739467402485912426882590119244231801498256374799455459062475185893539097346993361175121923454434273140264709048652704958695577772045928113614863712767893845546264654038058737429286638372490532492764891784321234651270219146794163045716467465398474222698190952479213128350381075803377605366072184583194616093226435739689568793588141560118710277343282925965082630272254681540042837800962809527390053360762931469265274025654527178160701832670644885495880933428103511732804117026505222149739132593617576604004943820914286993878750897235121269283435779014895213861495491724222865371117758388819911608466972367832032441997501575744139595730909663235566679931773650671537744306362824310755171950624274055075944955258231715506357823339569109230557558273391219185863376064701934640941842674001504122617209845453833948947052237641195387065571164688285520046282433623427731445169581449385102543093712971138850307421729026060219389525110389654440511958620714444497733931242995894225702927747353440642517527442001547278662107796106676082239708262942993316327404816700455594824941090915843109562878166274363509548086333785880190535873047450615792757361912915188061495704418341667133306978929678469205070362932569684753187595317767793083703718457550124525540652786878651490280492526648059797372527352088620239317750456075776068109643989613347867493398979759150105621834521101990014860301838411427847403651825362233483767382120061447187477880826734770211371563227610309304873442719565936462569444342573312241422188290474198325588808289017204914442479896012061980129352301449652945878121164667254419889503231971361596018858477311310023066503018586878818467226385274787769470854230228848251625805760158958934600022715689128462359826705534783013749832877472813443875340201016484870476078806490739847050532704538916900691889595545399307669803502487262011297733830165040407602110423027066131642208044296702929859349487767852054227700387049548526777250744000495482038893980761667527869213218002057454283496913762438926880368615895654157386996367069268937143012765984581139011522378536497890555796635624447229221401223193508385443346446179593487959238912860499316338905013779849897552449152459155305935884835034644031565223096563224448940220109820760880654078827103766821364053244937984913553145437232889837005551692159565910565411253942209194542479953024779532567473299973133614908334870669108569686629220019901200400610500284615773432684416881297223652235283947702862499087606565745394050057840907035795896180761533628163223070660898420073134319479631278672829657638153706574991696771289217633008477328874734394919962437217050713183534513181900185474308510173463614619247199553005509378003110859571226876947312085164536684845509015939653106784430025105676037017311539836463314201454915497126774164067547320462900365482842126425348727693512094156252220447674886737162128670857295766436519744546509535484830461716376746527443858618599991498549993008262881874227497781230028830091716016944165345713421264097642390657443448786810601939907951270331034833966400287866638792015696764653506724043904341274493106476032810504026542483973133846716664164854456825745750057388102842011637880676209539625067207320935931804553129873434321192186624748293207620685528729415733908631336325307726820768845367923214076939480924082488127289968542247238064091502234316604715843952334294546399692625746756378872398568771667128242869582123671389175620189345625908659407331710220240033488465863857753473676014676357247257390592367302043219605678366459018727846883180041668090262351197437330123458028860468383141564385177231166044162717033209443212168733014389634047069671641334570554273606581296346094058651421085232042556654009924204421252084757292800188261080262601647325118250273077448950916794754112253106632428084670469144644637500435141438764821713746562397314816777365695810806407316812326597414563743948323085960720872066676109194482590017683843632849268995805783112019295101638982603918885255971401170730566059397479442222011677687302260504327902408549051778970802855741673414164699422119690277058551591554667256417987130344132813257252134676850307445089631618461181108631069650908007902239945424887823422259311854384775883051631171712564669171079043610406053302200593457981108203853222054419900890197301057314015773676549106549445739571223282489707366759614240464365532374711964426620747497404375711168926262307756748627963589372491441179908731788931537130223286244399850479377000369534780335847024026788125205731656262126601494894859059379651584603894912116265749978002504835055231420624098347932115542216578193290442158389198574578765163383201110183594556009295962828962203876754882607759454092347295372929568236761166443218234659205341641561101551208786957349868291631255766602657148156618606001136438737555891183239367410676199622727576068091197065199546072994747817076985181822288774256767452305285957379565471473624530452225009241649126912271264886032359106118406463970332764683953952850808666002853831157149509679149419200099717120960164845056986176575439494242906338375624424861541558359318040706395804071660917164298045267937573347486814081529551346623975141639546728934132292476366474640313399496125365169706864527367726454507573579795795165233877107127543533588220230405152522239961293033313919572993915813182480396098523687101554018672123533279222068837127317578893967341512995697454882953727877788023776328576685070685336810149766597738911144581422023793606179670415373443720044554349935823278449930419444692359530022003324654337040567030512094897678582736744883469559369471365742307242082223263579139936699184539423831758324467712257171848645362362300417545401754762424384790044298323104402008013391341022944864218587577758491536582702754213672804341490160909451296977473710190132265439447310525882120209142551543504696086230741808626347347305704299090111442024986592326489025144401261239589387376689632886585942665559538773457217455964993945183449513054386420300299927921934470811247569541371550412416763131992453281345206913917996378952272288719245373976526493764764419568590217878828080497791710045543253830696674277206104727472477608487539143208712619178758413827356738788880375697054704448342558112965125571978762355962506316382855706432446976918951040533513103664200851915484146931008528515579402612974256329436375653122549594068747708483937167525750750063612579193391552637208028282012030238918910825834086224834326477084461547139860818666938809062328147071324076631697928576904066581650986764460243629960498093601213939879940714004941431472170957376978942185890629258254850063399078394513972747794592306112511113275705945822708376517769991813459584989777994555061036997464877116667004245836039280564107356109771692096860039346675623174078143407983569041815470594326492678644199303649876449929556139582256005334671050343007634877095978449922069395325150410691012467979670720418647409560443743508198119682567421362441418344579474402916254836223316071118761507600618529326450301182511498812682721562651595270242345595788064424687883323044876211309839004096788567165581052742780002085833437923663114270797936007797929642301614693262075719721595303608774000142234045219059133887065583918107034970036981949267811924770201938635249351264670621403991358687631578918440363947905808765814641720769403274626081171540239721240900097948545562085525538395747075859935480828227728500040370944656311968723685454614875094193138024840795005403724184803857270402812966001221692259428660339143456818265559669365987458274460045796047734007329499364646639030922020978725270321929545051934972920501059985921383221513462423659180017441407112468743516621656575883075738498278974606525613219037948696049418737263636789353582692535918136809282101402215037526885024562426752978210541507061494439673618371558622249721881181679329143369512795146640005914860458100335133179104865816275717931363186023326989748621145069773081584431322253677387985943973418351504980119284017259951833842372832116351613070350160007490724092127435197391995654952760077577295557768263748730219498406610914804405229050175901684106845922199826929561879592975354790448141597055368665859158099528516359531198122041952206392874045768319321160308153003329662982385499550974724914029510404299917382935531208761325990630243412378869267042049105570771070133820850108118678797186529207309690915463430686576313926796048216246718798558562360256787757426409962195520818519521876786300042707949738442529663229495670563637319980828497686337902947490554561977014948325695482754966889180291127710853302632655156893720898588042766199986034409553397395786717064631344077312161862969750542964986101347654280755145785069193007399088189907952704192075417257075500651656172256638808290978329222105657726911845009090652370561594450470696437290204651000817093277343760152526237991463473996920240108758730291755319428588384359861560217523760708254468088101616001832325810362105451660618556912081007049288811050419347599163457227916894453452807331770495014666723593317129774368675152425270423455944130123584621045774608077180231434969624311812733641057360827516216632155224311161658625925748701294346561215916365273519595935084353531464703964239785875563164495118026167436843031711291746867371139167228142573850747903670462949106594082570200872094274715299353640431420731770779196256630174377102652171518446021951932728907764972391280008825422461694199454555217348548713025556608484035399924656917742656994407825060222858018417125853133766447122293335453761482851908567405833124932781369943873826631226368839320162163580800982643222973070765336764125962168025026599618787857524042400879334155372699466004164940512939250557939624683399905356553177926993901913713700286080695168338612305577088938911548778510282858018259981979338675980219870378533755616823387571964098701942343083427270154374049899986331465726001636297229203381339709636784990296001455332190796759258032760272487633166311952043073589738392790952387294058687484215321461099411753401020912731145743942582217071937665900949200974649321190249450455876793607474036188481285553196812163985984919165523788797905646334152249385449240695041195244717405782911147752375947754015133823433576073490634904458359950653012513427131316306392544215302862074306945342902198807462039362550391953612283291401430974257870696020749949057320482071233874916339007929666305930719355552804181600544784145735203870989281199580573094750179278313309530517644172328085807876503033706072951200711896423030959500570478134863103713528116948670896254251742133815772844401037863917537385260919189862117145323228864255525899628680900780049092384574402211971990943380562205275785904053822166733926259021896121750687136801943983124000072986128385553518593807517169026069224533380146361837551929322327569101209678663700083203370065984439642144164543359054780409243008040963198498623450385865845919918451574815916053402585923145104801335510935302538065591322438962496103977218449015168887230041389342322882892632258449729299655570755565572623738636634640446493644963490749770822486436041039085196920507804663471798405043739035333244084522916478503112611612738803758029480370075161657862057033126208271344106180944978295905067280885608566846083050228911777454517961614335791098714707534662176902792516141061495511729708811797190026824971411088684004687183467082500349383790986254885130044857077625696895660609916975549964695776098408125943077187920111963240655357157233865112985768363216025161938490025254421837976134965351436008783239580110773924147849272797583296283787595826213263442819231190566984050613388007672879678952323899075047052113045658721864427949359566311944400771481888364927043643756915873220365787058120204882728025369172149459511536686938559815308473804922864798919945880956399985884730012413578390084215072922895760108289223175490462004232545613592437054797111497918442414808969394761004759482099363462473053630529828423353299930325777823594682453191169319133543078380050979432795650853939612552859723755839469938374671709348801114867514758567084737488238937656154809976584897959131687869250012407768582822380587310134474048353883273337964224284606431303476791325283877600370719044005086200200610601457944977189491323665677938891306309205811597205729471400298780010229688601209915202153826494032828026380808569709740932132902981340383966900839596889973059050914165986120668429430252430679724148868010055618802772013625014997239995182244587764665800851747299780459524544253502380840828187989753815398269733516209432312441093256143043707965662555659579526596515388117057491156865306850027911351240629957947517322551555001972369648646083184646699454999586161392985341165480094468167355452421207001468150963730496483562641618363685585691520503018920597225402874609913286034707498659980099148102939671925783657901141777886701219675411599943971713567714929654923627010982678038421866892123271180040592831143288703677062824417873757462741417342720675888544287309673621922529030452927085642953662244502588374389042732826684386911999747415019109412434176321820185649605236746628292463188137126072725124200425238489507326572960246475443355232542571667805940244964883855638966009473921978299615358075664223392440391259870796574131581729280284316199235099334635881548074301037797049587072096626088718470418253546792013421360160623671687446510854093166291031900976421571877087010340286068770072653329483541960645769303650586094880863128962864120686220172541105650002220332975727649308563407749802529701932187328143453095903162493825844622869627854783728905953370374453157005744572565548039326740671462613311061390453412294494495247316508197887016859548237457793900511626956074798259515275475668984646062055479222707075020517235496530256207284268460577287646790038881974386871740885168276204704506314895444553744435983344665172392871107301141742769014806700339363211786842176736672786755541089753586373991083478465493623749464491097737447444253401184567521419442173391707421964405342694266795954495015718290656834859946448372579151882334361837149357186182502463008996132090420133079058348540292042928175796801810817842290358342737816418081784316005830859673316304366073732834547180387513111355105263997473810635157084962547645268047299845193949757765059895043787697379695000612285514574146744895304884117919608252943507045608154054396368395390488767324483995859066983404561228333336797569509657402133048385467999963757721669948928409037945344881916713076742247160151385235047587647476786082834095812854307987223313036094459019106108826144536489597283225573012008943678944362440199737445370173440158148708954674078561686135819327420627658303109243811875295788464827631557547059402837938531972658562665258413463244463778043134179468541654977819672331170913584311316787169232618239669148248544965993709732684418165302952961535955580089742701386058652939759396283906767956380863330646791765222306308384738104439311753701097692969947948159145331631729891824114219735274773294789054443841698429318651261793323212094394737749398612907674859578202913974356028029380288735284780744301131636146361555470460475741603740973818279353507226703288002970635163150154643924073849578186292469794697233667593339627046009923500234528055242610156909572049657974238343678091476606684593007193541436905960040430240209227363353688381902572469872081587214771016911454800959749304650154498895939427388202284037770114863388959537927408602084320182062339524692125636155914878053581184643027244287416475074586731355210571738303125103029746289950663646188088977073252936808665462547665208426740621417492639280960130055829519801324424938303388328047183314347617090535795078830473495780684478207334678858573287425248745056750425482875010781782906025996414576160536539346211516663624033631953451832003859972304807113257017604396062085337726717038261659301340135442567159674285574608587510768792005726302672178050302262573402326556816378661399466905028396848946823304232289905350325822344726488750055270464922349509980795389795359947902613719850968390765487983754660924512774790605690787686204606791748714430237120548274341069805086317513413421386907256912068755909820963130508647259484426984274857398562312487475367284758668514819620675744018479035178166963778669538887629121744478586614187043081757503133041159585065009298666758579367794330951725746068113961588503345357778943310798286097804556657024061182372248690513877236149763155337760800731272281904463077062896179459425622116749850381480350701784040486905030526391797486555275524252481703426541500082483625052469592736102554619882484469505499643463616645822977770821771616885655793418707926667170282032333788818184615929191767126348726096944306355928181110720805720816783310338173357121015445532663668601172420320549932400413568866792840145477462374763965039584482317942063295068482958035092377203421092994362465548911776005582462551604925155438116794592420758525916413305869887173634246651716307275035942356353844836780675936312317505930917268687930616251279315416818220791276447519433516257753137941786163015272137505120034952852796320835678939455196823341081915242514132550103923448909482291391460949497766161972089229916831395048431324776047843645788630421670817106709511214606244457369294752852720378934631214426628133070366364420341166304282023018471644694025434495048102141405272202702993007537178373808613894468061056297384229430778760254685950667799823889550176433654726343887497048161935026915612911889444395719649097016358911425726088266339461385787990125856071840759851884374611655105797304953640355752127660128688911037865109828438007692692210111232529186859539667846692357060634077071443530476215871694205148626504016759163700404275992365166966465284141858470512594285541169340427565427812280300513798622951000422477315413946608296726104589035776455730104107094280290626932578196758950471389672979841646058752269204018952076727320687577684097460103242462027268179517603026352457530343376344638964592409279667691688564241481268142770553061677540926723379313327877243743775454504794726187805198566809115550303220057280202399253418033979768144712674292868754629750975253320141700276939816406547984239905701593373646308194449305405374858184024238158973418416562880666394941548276484960859848061447674033605217841830698157001236750577893228773179514965832856683771343746629542622921949208756037377901999516970863721864008996588963405393810895115945424709208802706845325151488909281710793727561944538983391826593514335591251507701616850146294848119126884880101549981387159387435917035872660110810310565323061609078205388479901644549087592680752627355745670530049630541423741872118848737655508909026760165472377194613152361360299757583720094465878392006500565793035513131943608284959451233375032440676493451380751191120640753643801193730195598521987642809993240141943915341633577200736599489906190826137795027561225190006464816175232961773220372214054937246036568727626784107814114512623164916711139438624996766342676929436004973398788503750929472416855819554164063606151120465547486766122951969322112507807770734849280190920027511910630394888253406244411153539378532224602060543324941427565929005812382675418885922126122810992806172336264466019663796150997828854776859480060033127277145256763433659889105652663980672145167216709195346407169401032878821176607682755813954485184150255868973725994364811549291900050956874939394714769291746611684003601363885305729462162098865967201980440291318559981311023664842703130399562637263020924553476297271339701492527760333151562631021144377679525447429439287972688230943678414408655436981025238788728876691149784777906350631560502189120877657532996331734822996268952935397262387660252160513547413486987175826086350964167949795240343787790167576806445105546805491125401163394256902466870038498813054498746875164421533754094224005917285341427232561667686024549102957199487654567418260848420816617363556999984123676486212927476828934726966690223641963924240043631466299353958432218835360985964434206996750889115487123038495532179377274359626165263907177755613712204433179028534432327639605563685680454326260242788828110493340386699182753501611269919501423141219795437292611268725446010845539589368330861743814627789782003895494421320981418705036560742314568179476828678272285536540971617033761589171530035069732706565717744465104353299392897297199869085907563183602857718290894162089003202333835457378336339812611185731496127690957994426918368553007469513771934125317059950607878083427179413815159366378230015487736863219009368883605961190559233301520371226680281374759629797022951385169209571159908492002441064775162352149419606898871630612210851543339622807677516169139810123208514577364439370427332437737476871735189224231795089677868202662321707093158769971510937817604270122443724280925312707019933599359907883846839409960151599842255136447768738809329380406845648116848796576191305711897158018159916523759339679732968912525623242456618345445786416136200160970030599081003664056603833254018731116424378549531864736072141247204451169348343739220715262032817416994805248183629093897086398372994085597203610430464039293973750081374859976787921701671072988890458995045691769012415704526225494869532912427922210193435678171224369275159746822849071705297964186252840375630923806274551023866446889495253105252696995249360384002840997625258537456160840652138742419221421920701242375673681835767786203121736870317274468471061201725902694671195273645318832790412055793684237433263952836701034031755616497005882693172058690165674444158073641138854315469099420069923317039059705222356240877850727598806557638596570446790547301786653208692126639864011314196682296290504883056157662921110257773334279187661023694534788578863592961909977285083004482205995526880541038763604032278250480147483619123902027819780079472970820474633924080950652701450651217711343441378777907197036649231673087167275710582812234115528026220935454690238822203155977401001738816124639714585397247525398661523994787786033172681088944179165604391788946273225026981673858985163752233371150675847025892434826002033536210183601957214097604807582772224569129389279356476681692717149471556443859871543573452068676401654140576204934796179236411693818545275501151222325384406878035248560611433234877447962359972389875213962423202479032843316852232233277850828269342709156318736987913538460393722763331048509813071027483896853446782954244231762603341020576266696222979588959705305516441582368704212150351996374144189193985813121680943934051962737429398630027693359497297725798178873074250498596160411998016114668144881989918444971928943026229837883179591300256428702493136328454937578324687980342381318744883559937571087234810771806113285378617578883692451297540308832017787873364135101895216965584223012211939016066191741530675652929709535527656780048742166098529772835771083747628937178684187645381697398093880240521867992886604500714005738161709663065626518626741563179068529898311835511571896659609069618406938151663892710827092147167966157471601111936090943148843876755700234890883186840494149233347770670582167769103522872989152547847052899400220323562804811571951362513054951593773085556701713783880776367887017043145957641645772659317415013755961768349291224322675497790204976671744258420002808511629757807282306609883019728222952354593486218927001701905296452831548821669614386486711023966614311954358073946986637395042065556979358534469610313366836119696680476409048684771096794630713845311902852421391290246567935421300017050327639074198228772544094610302560249794254692248832995174379296551218428642701238415272350377030346969129030692772767225177365638117057703066023046359093755068051931355613028607804336516662702926222760262365322946066424084051553570502650302470387016827746698777992646838187105762343618678077648381930296210436806175365370589520154441750746108394270362795368214833574251478192997833421532581706102620945200298544080008476724288680925997812580539005267964414642661677358697449509819719955443099497749019722086865874738064554618434513844843796737238325871762859171696591845572742404591694051378546488204924826606163661176217541039021898157994759492510586705626834447542934496734151549017802168631193660888520230098419567499654750712475409696380105876609378842261793055956712611637367628869901882535605956088478466880603731155204142655668309507937557951581901903743083609194371550484417947638556940739789792567294464983145325077684397058932634878086544357311474881084138497389121569899662448310588249249132270830707186200060868237027905745504054596553688119918209775543937871323013431127185511423059754281947381784848636338872143344141422348753289655366041181404757746324241356588353568474332771853589110452903630463424067861257345051191817631422536041145696776989969280965637100229089644969149036357284223157850038475911236199823679441679102308391498857835257718995961948594131980069802195357108585652394057198985644755973792080583728555149949843101608521659846102701383204961741822358307097527444865053473647817710802916117352745269721444698649123244226546752381263035669721792585329431109287740967949717608826800215735636042573750271448105438596640566776464776431169480773046066662867033717808698320252400001578662706603903947537145257516356263267997791083663070060835018650091053790140474242850159106661510955243578819253602587745262781692214666523581009597882420130958766543389705992651711726785490858391894232479342446508534046082281548286327624573802260221870065746056959095607428639847928466012883200075354539550750657768041726282478594995295811761197654990040089347765825340527469407515956729103773689572262437392228069385518211864718615201486591422925562545764380256813696181131505368358358134717792821216412986169802885015900725314483608805430843706227988114532612289125914049741222156999573781075159214894225878647095198515137139583438435822457763406470945890098198960857250117057485044271330264174817518344118865835958130205013659627498842210561470247349368195791332768830901079313520981963397755208741871527629648837226128098915207356358038188710473668264718576911788011764546705258505392329660708023520731651259177531578310764732288405223908746595997856324408294731515774475411544242783322842387921613199227925535842268097269518949010614805772936545954023934229399292590429435554910798890332430619433424177514225965975886281968639923420639181685350999622966513300122682221217839493029708397365817506279672891650522110495000408352441367481156814587558361615732872939296452503438850051073338944328550054472965646253396127897208446021804732894073516814977018948800524678332975372835355011110968814244232697096869237934681112497040057291047832279991894488251203955969506898879601700622215655243569348800697321827572180906284139263594449572361540290389784166817123446733429042278826515415933275738309252270256175731084148744898660739104427277705622577934773743791147245062254442729513843331374166866800402456559544156419708800570905019658036349145619614545075117264600114939756629602191189978557266913261586685245978715810326287812198595113049511055531635428148493266667987260111341460977940786290588248129810753024823169297532769220720777143470294543121299131183342826032296367723514751110255070874803685237907272139024219896929350242741925340367368959652252886387299686029627682373643957936101686714107858992216483148608584676917303345967572525954624494947890607844569769988349565192985022478583987337896278219529094090528862230503327741734686023128125859181750047080650244947665289448795872977041305772823458410399340938300177113866885793857953255820734924458796455812081325347104593411641461264493808879986385665743962477039883931882659151179094827364117395743836281643389530425311894805731713200438119466104132030176062217840512088341757360004304231418839566531124152272038618718367528330800195790577617240007710204542270855594450964222886162305595874214671949092015102657287536907063916763749315731201371844183813879043288927717252576067075864057800302335882038589178994171292185324701287945748028085612616578538907066933753204612032351482081594140344383342659771099582724494360726657389239253858301106479402870215821563244066516220456419958096719781481789068216505894737943052829202795680725879414557793587959439583928080069123967500897209304564474592892350449433645124938157953682492500578774134500596184408506435467655957412263084754368854628539222664728144177608201223762610193954919232206622605077685862084768861410706277730138189163196231483594988443158861185061677138331969932950548988813668073111779135104928588324586479813504282428364152772214752090855517773609608370170628087010508047268476572908643609291722816934806767386377727304028431408257550547313810530333840995073197822065382175206061236144561393943101643143936073110817873855001390744889804962319452481308336722978803354771260852885143157311369089817299024571650401431805346753631323255646566474472849309211860773448961199989596359151221067835946232063410366187152184269067384464337969799035386896114995727525602026492816187411704368328076843791564627862734250679772767197102236669267413221999649261889551749420538150885680007773617203197234703361322545070356444828874859190943231441918668693405438834523730031002895889762389147509616935731236825100452480518608369671072365307818247939648611611199020592106210339302104241138140931156701585259139255510384620698998313992986875270120051706565991246669073930536961445873401321739760071858860860981222326906850476132070558806849236156487736608766031263922683543224642094343083495638946654054612326294977401943737790617615860726512934882293684398840168142812392569978514578773883067027259682016741387529109471459772004281790423049447357131691135098621804290878209035738993476415665160191950178366302407100007153217102385822902358233140438879822948068256034573217482971222430361687743992275735767026417276677944786116900820494379417466086040643004094955335303763975967611862901492267106345180631014132821404674696116609357951011526863225517801304000537677100829880666759937169363980587670435480807827454761926710731269077524737811130398359398065588581589397490082916144539479385529757248984779782981173662367834574117409317158572246282045826619345665683239193840404607816556262366125818549165853735344828202601529999435114164031892736706385996105147726316253153042704441943514807645156476297901420575184027015811509908767967134544446648002923230988725925408031705720700323977520951177815702041259384291520193458735297461029554727330486183588096446658286562094037414481276613731085191028593960100477539378244055460758109386528279967603733467256543836159417333614054961187305974520225169550432270451398359563992708795886383709140785707335227736545382201097506837401468815673489454884979139958821298721761472756439357351421133905781084316572128471344887781323195276829576560236636924591238548763574586155029330617260381046885389234932554704400417572797810264981025428974198906508853430239040627521422762387820080769267994718239951446327421550661392419462624555198311130964259878107901152830090306061778620229134835555804955507374367842594731774046966136111677799399991728059621417477248359886522719427778503872053981920170293207529170809713128135298568080625159022549617394037422708805180013038912741191463344481776052964985255079425923513009294080862199965717578074968278324429946735115524629677302262235508124948368016513189013862526567112585916504661989632018082732504879823141786943080704253853000519337977461196925837794450975624660785642044542002687127168397936772309014041921341855887490549991218324799523523712599776903695656300313848824641181933678913727621437348312946732001592620152607124165069084437631941261748376131790793719092205536422939022876575853895667765582581837813021324803045812380592180983575374608913975974497520058312316404458568726739774340897031848845129764033930190109889093091419413992527612826140127876904552668094693044728644281484620684296390768891084792148585348585308017182356170322960420841005348113675106252585729113600650636444681491772733978074706723255066202314481599663126106434084388120775438892809603696916719103160951237553897473941970131237937470933171500277061002388978219110838134027095202882098963111508688408837218124420942490437868825164466677425649652754832617558105424953060096894601636948276870244760151901776007762646922881746623979799201299747948647978180050618941054462838691726009447379558726894545059804694299548660740744600026299922848664546970176031286805510746776646829896485005059895143609754754784669059397740729845126763864754560112478669057483738145400902349243774068636083959547078373414438684412437434913951576328322439747268902511133860600694892522302367353263321659322244382481081705402055447119398462759142399511894452143396224398017111871459213721467574000874386784505978593327431789740944189846546568413849336254423680271326539012735617156492969587911683482797051767264990788700056298770747794855202822195662954820334521174872550644549774340290158131813500998731446050540341716886341975639133846569110184179068959360230891605183714134592619015908125512044821117215010207230033062727011416214188187986761434014507362880616964592884736720476122263705672798314767382922429898636078965600629702905951015873271836739158699882959572100427504376790324800380522304669484993738397653044057583622979513578188607418032975040355548018873790280737999615254945224075101784639410539108644171200538424132336926459978214003332127479690011072374091747715122240619539206266587388208427137906468166285104360247787631498682209924743265338980380836782634156414090712688979235761371956695249447441683779832406674605739718923984007247914100592422835302661024464080471463215951861181100376424920166238750640514743680211402663055717539351448637277514241210713463469475930269692513785579400475733933285556052141920435762723652356862058685993586990118857720180161281982518081471317258909937340581096335805793025539514689788230654244074645648079561799688533323473821434889055718465013095044728600707204594607385564629539415750603992337183115701459990833439553461845477131942693172441178214056649759612519491724160746299286877981556128586105304919739323983201901051871896601439432896973198903881472078391493911064901438099241196058568053740385070785922077378880910012098613119897987341398786082904101860868201206027553016330893812360567220540103352222832364572457984198229079726594708464652371840192087448036238647049520730809708611413966546694664205600291604744754213965088228868027350712325920379357203762486545476373439964771855116392213360231553071156220003814360765616446888123295323138747169522581330688264923653118413954086342252256983896568217438456609127105566179364702237120780817955514673145709283474464308736804753839142992703379297919242573280505757192324289217422723940363664493041622118827631412145390719839707047118010442785561918968483195112237800117667582247087900655654891526207311928572949524545499182580050135130276991875732111880222151418231709539795400396257868243438336019368652981104650392733693843229761612073761091703360958861823048125146676003599532277121457869242767710211089376248300631583594584516142810833937109765013611406802427324829822995959790600696321763924038215961610914260517862661055468812792045854482398477938279993185241879939899818958373385672503982362223251093299157506046476037490161250840829843564801863405098339827795058399981698091373108689105944450457756475974482660483168737899799015139961682535530290140815156425074827915881382065061817133229569964774445004955903280411731547464039863731004284813384544218906700338363658840255672156184577570689502256993231373049263291679274107650932115324921442682266946309325786203211335654572098583007052448751846273957209723868036006328836134635360453671243986439297176600045025196984004997433093777448486823153250525122084441283305920694186042373830663017813194681408992273120691701743727248768733196659083815716083182426611847250149697486825020055405284578739040373021482150138909548410405883707780707706650589362789815933017379175889240179120378895539312839195774704009973861477815535698502539537406658258876742763762149626357312073868388085794371826029627847269670517268589632437127058545089976249685444627988305268175343731549429566673891020732386359388508404063694474013981953933351578562107178505770297417891829496718282587027901339805226194040457583013346829114215605407137199592139464609536093583027704196468821415131059055124424978972970775373884479807527906898679337038113978864602778667696787927864511965156517260137861391806078701183304862577062840946659628985658015301908701349386843680772860988398454131756591398999501678460004391439362655835026307755356824171573761279665554243390654493042384720284207398609184033148373182042691185585345599861955742008998005249537222469891715417016989399155223422143790717217472774236496491252674467597368007874878900751510367356780197002152317329304161765021072028333506673884130034471973759947374592365888853517447169077493905196011654513430937765587994987177244628336665457929635821835572543034702937657075600236438451651807314697730059334375287999302753394961901716156381001127021562238536889672863019463764428557123297469609288416673405055043924440002087381673531832460562170702767469130848232931742189745908450305495151761246013044817654801031038132909686716217555950115210373054326631703410971675444665478462016260908713976796175805365126025602636857072167994312934141972155168068195231773869984238491218339423552548837303635549421593043219216433599096429402236424078228143635628430264673287675712339278971061271826461292170624190377809823550689493971601315014965962843092168898455550038444092321165993105513466626468981826392487219963003558311662178350446799849556964623194498154749580450767837640980141425019486784192176902256060211408591055513727835307479640558740029250834008405891493688170325844449797898146436196359705992435966558466212070518377994607210491217905796031905699128646043207223266650009020222590051995378528525495161752364369246837495933158361244462494289837939570330934301838017210474682904109365585583359356742867058550143072611392971546540246892677706525842292249662817133939483676949034777345447733143801896980276027526860858526655744257066819958894611900581905668951847199538767211005046852054458978818211232922006185842493989909782296323074236287330349242783591481934286057959079565592866044278677648016125250272174675390788545496860764064011877538176819751350250141728314516526055034552666571143089451346179981496970581654002475007380684667357260968746755149408098552457657247717291134319868825661885659811402917091630463173262618953232799831400075498415262537958070012253680994326433524763321601943997189635631712057520223767235886168118936930779397911395957811784180836487050300869475722743053941080205864768429286221304034349640430053516216330443483802825447807880214472878122899507274130135398880381617194620710272862597093550952945439642521361327916497003850522418831986251015806800681601505710245766394755291651677224043757017426303191973983947328800197575318577354843700680853572248887517412519408460727398578769167243215617915714135475304444098448074264381169975824105733013497331581603978334525891009554449900587100930614567283934229695649919335587758701788938081198246459140171301999780031526173889948813545301615119318638961911855599419605796690433913013989024100362975480070637923209336224700755156937226311354542218130166292395924632793697503400858047765513619386155095856517853497430412167722441012864846930278664140838089110454509155927752194726372457818902433562608350120789206918447957708363864637665067278161842978425019595217791720784846052151944185436732107577669398554248201244305584973258860408333165050154556856289262788928324925794597567068654203849604642800939185677889111593332858944700177752533690897268800653846523366447134050728639757303169548596438671887017350233274676547322322046016864850872159811600891624141026259677892832287044526866149858672387560130217825273715853401470611911944086543045742904538945272284211354450153113964831223012462253412862368488192088049380874208962134892413069919972083426093014761041719303740906198411272436393829404323432170998759552905947420611918593176755863848122100885840142836343417888653161504137637203149243736410398634046916050130314775359590499441774585304797994132864581691024354130659018355675242408003067001944120473257958840227404220830126963952761230140091093609424209305895871133561559769970810878128056163464789416396133033676914498792931922745644223401481494722896059240360089990347354324552575950360013186221515096316969415078108466651599000197682062690494023852776051333954681454944024638616371870094245334546972523344245758440777966950798007164582329248410889861514414893700828848742356056065712567970455992999975702223389048353374504538141938505278485687553173395283472438209703294771256146104935950684462192106409796140193176194844517759678438331562869987073747261384455703696864425486188359604271225657641936357207530571864989003027910737530235653609790350551928526293575045842680192668353957221466727938269152903252478509207587166364844250611188781638485240256379291103405165604480320227848477581150073963005077526010623068619963098413630569931543329342392016864790862352587815546036293924505322206709521354906993473494494252910047788517829470674810128475922301685260869704947024581027518103732154564514362229776122625691127659829056588756976966871056492682875438514682115055270741855156246146836768329299990224374354235627777343149701757143145393365259126420785362429179556412084025796935282364211560327678446507257295688756877892688534765149027225081840092310023662212841711623614584825679550954269396230331721106758825310890428114303021051645890634355286337776873349407974180077138935400606173054741543985181402945961803481582863778313191970397168276673349537236935836960962603840322577563255107234343146373698120791600846852619529904036355616636084072090157324199220927456237359937412249507197252396739701420159033899020004882921583092096419418954418238627375822367942574739824966131453916934477103879374572129542921477494326007028153765534836590761538532857187435652138664576082545478355278912375712254858469695608399993640209604549617348312482593888959784004315081489654915856443336552306100902433933398548156465902270859478344101588866362040820818950326174219536562401009595865939396643460530129479258095082485798414645313437819509347622249068873710995182804291052852568843510611297821466119731991412303660034415534986111710380170800932816080860169107137664836098320843458432561559350024955288165275861504971671313453989727821840863793315046940322061677521138914635704502366988227003106709353204231282965567274865080919556702227974658450264008220115452025369768107812107049451948392640421348862827481261573470469734985257941799048501424987212965538893350732033379114218827525736023856965337604837021870803927166317315179969122810985848432681390743894966050038246877418514080098246182803632239818618191953272153736320899596921704128620053320650971096150882285675200824557722259631001471603861977437260549113836333173374580697031668961503637044755102291587936416846648554621643331438220376486110630586978871831094865428215262060913640571656326309167692776120798261210425794599097944631233603027554331816188749735444221962333788639092940097680346443388586168872833947510276498963684774265499659189900231183781046266334344285714792596319702391305421856625381974326199087712772432006313010020923439307543425919722536207218664911012933366433478233868614389468908026652263088497665766492633316383193046601310098468071630225320721105093386060183918254419823445968573424706944832603940443539575622023430062312667294971627271684520982995844942091806116966347191191088188792098014361129901909311300299782751593558200000408517173953291589079316227619367121225956713381384281979208998010137847103725135211668696015786155079226085792760947856279977985635851991061545671067041649626513282340976754367188537143141110691420429772334338746193071078721197722648548669926045272513922186692880055806361064264576706338178466824227153223783815960783813528600966044288111153974354425123503408128981430564358229915953326866808327728749934747715775556686892845575379850373332042635307799397587346363349799285948943102821521196761822551198075066074801500240876173875530613988965499003739204647172270452614546225492493637641720568200810676013757511839120826104972468076495916631410084724041496454418375975607928085258242710478029252690911917289298740572564063530043425631359005630222776329243873663161471621565134890397756264566958101064299161825333677849079447199199088868078888754380080570452994632445679174734130372222001764234391898573719029377121547235393067041993623354905163831131551399371549604789395832007097576023555468814965315205031204786252435956972323773223621046397359762594483394905893782347502328448387528888941126142008177828124194259103933764765018136455496845312610903936674778806342088127075030936257528310561567675728504035874651477661370004387919941982933846828629094044738191527142225318506822307203397963707279422139136812049883052750606288849540994091093089729582127470284566006251152690896249425189267232383355432009089503281587886159395484902087371345063263801332250012744794494451180194573739130033323072707483868682815214870595617423515462712347212889676210477705834004172150686550646573434040138322412902119771860894261717260556860578817446006987156811194658580852981625045891331082372580359196225300197422145320080053068076413011491921223538708118548933384126003044434210086057768769653720031988162960718039826242043601946367291061567431383008230349660589599926456641490811024733360359150390534200406110193898427620498784763024499985728973967941509216951369045724160419507459384880465374957336095129595433320928600340835408484701936279960546300750452708370989843462761327962929990873484865013468254158644896939801842292574655731906681184856067959164634990875179062309753734485233019185871605738625955652994315642534766436969622476936170004398969831630513318733172888729727759060586836897170905997577004939818190757461808598060547351166675506333838253917795749511871732167501681246225439977919016735339628255218630465471689310015404664265358433078784347457870313396764641877537742244954721734248215573169331522420167046876746536982227135177493678649054249138376963797999581991981631800138877866700033869749243001289537219205993279181384535984885435014002211849296020140802866300245803995505430441913618620433437838607794878763957723970796739894782108811946862037197022122033558757922654341331218867129799104850124838412634750395550879848382252617219761300915082985266122766311664878453035794834567220709906260347418679212122522981313436582633425193867956814063259536167472292407810404521256569925574072128994717215015598123973521311098309270658616746074674292885799070002892445146490941858491024316650917930887513036431646266192162889206738312515309670490663477514279267530628903052965301942893165806467154962707951931581724190839408360191980124634617919110367013325888114782695051237911152852987272438014452602571442831011108267027870434290347379129589196792011697961676103791607238691751838950736011621911161252714866940414668194616263855048943093424474419559413475853766126201624227418548803290262856052208753659368660950412170909082470019581930194439011103406488370694946422711090176366161191935029522293834062641521196527743061491517427259280886288888839103911227541661607733984141696305546723685486501848328104091779807549359894514559071762927106994620578502425044643398851616732059180590487514492130422389421957842820999093250953335597394625610493534185222154663241306466984432520789424828364245560668838832032414512563746629779786836213200783378534812564887350843944837689425186350299535407619171439154965066748458073796118643661700344457957892622797989274466695336466575688622459428287452998091266906141845380405987873250355502397953225684536177376312372408335570659318686014567268289198687637604512088737527477544365987793873303414227230338449259792815646235626919964562324008290151783223416304755780350669606409673596601335114078666829070499128934007264737924959392672622418161864105754181464410593069346341742732550631654483638636360123982761647406092258272137641303762549948661640436310144793543238791325405062269125200926977295190611350527541435026380846605671105864849260396860410287247359820092720883030992416908116421719529119405411649910842010498404033675404162953655793487916840748903738580593181508150625101379011376149549908232219070407719243132467775357759597687715767838830995744534051733461473738138515763223342851538855696939361056636935670067236353766775419903494921807408484578552655683570108805728691868445582033134691651506860265788307713074658338555801271283176789812047631354458499996346476006920887538525768699900463043602513386253476140226332549570848845524187970685292343608120137086725972115730569227932734461256767922441130814712386640517058729151385287795610394201490257396214340098938640144418230921531596275445830137300191548846682053280148995773019970206485232096943127048946351564724813821783304230808770631414922710289599414207137170495261539376040404086528120308753605732783459199426609064635273559331385985811279710881123637503540907926518958216468861575457639008501774397653970240915591997485760535734258295805903212641164122232621213514615284520133707194605180073128967822946248921462248406553771908887379828492416841289751120643773235658366774848716942971560573215479533544685384337703127729595770500952684096547660702129695811669281721074153173436079668375881289681379137152595079099929338945359941140312088825210405666912662183000010108321456305637816695394953664461433848245452197109716574593795086943086271549500479759826938806906779806511040366311225304024915002934116517500107506191955483339489616048861613992022719601420146905832123231591030425542500062409540302934052643072785670003561212486167477325312032469816843755844260480774816588963693219983015324686415592883818233521382772436429151672807211979564348683909234051780241782642599474433211918763531099008447371225977300376797755899612804935232887901404959412117108164961761384964061388985181899043861816789329075150252696660308191363225338472069323871621524130341881629236139989713961770993792220052180394989487956348927443180213685485711626089074546383208096966806918510082214956122695341859184317154121860678565536576268988287233150833422351717473238046401480494919146142103895174868096915165077402575148465552377659612108581531415048270303849213558526435886387643877404858362119010438346430668199022730822702347994410481957082595605141786666154101958768210249628643685164438933461950423471461552020729170295511381835229392676214929120478570597615128997415505212489160271323904559282073780681409938095757033400467238567043987198906478767380125853706978659972587116453755765519204587812779708814395651680701619306428475553603146232072738443247820770872780127126796906534086451390234716342092069247314874909848537773843488144197143595761602582718094997883268573163876290508505995387839705767398056553213898586487339059640455194710795122652885684213562273313578204962097493536348711617646407926765720920730831174930253524853228856005022472000517465441930520643037646439573541489251197813936981419758407504140729008974667161692513959393615315124231475419091100566054193709913202323297937426450957316411104293874038324639164038297432692731859383369643222203661787598502219270491848153712851470775764059317191256351447920242306286378551103680555650047719809723949818501972282576274349257907140498666100397634186823740670539472004519229923674748968283423088918490136737980942201082148109941392667393874505157414057274074929921641138760954545262047413463628400716562178046280464184154617513795017314794928565452521250257662750519806449381775431297961096448873775297006638072243200736928696330949421348163391427833791077420668170460747229402007564862554587494845115361358465331950213946226625399244475818016547112309938209841755154474828540377004644970131164319656415791534191295734061891566739997500906854965094859750505408870784926382110239479059153881484218989559222957830623059041980135492272148564653701815285939205657848320150756112697506927349213710696124885494483739300342026775382901010329373332536425417977726540850857520314179587939027700405147626604248412536434261952728121512078959987441336862631697941620930779086094225841354064592219121582709921175508667101015432889582193088616348195987905680241125758094546969198138409315363194783562132849946292786535871093367063438677903075912833774160067586282739877364237268005618942471288452485146066647290024000299748555204788569992169649823252217098801229795650679903752171860349294333509055812482161294773078834769123389856553109159715845862280502565704587236305624148850285870159550978686701408704023312402174233941065384714435930582567118410603710582489529707999456032915438601464919394186321302621222598355678638180999122455026658198617672021813350067348686223418837052237918077937945410466799646247849711879190073199118632149425867469940771210690278685951407882680828364538431834805021381238364382780942782259216512565773073762637635445370905287810562726454378747018748919133813561235348817046033653409915753047239727937435536747432736113609681610692152290005275055531893333771192705648266867445713831451992235794050780735572319186383716990505306262864782763695129973935669475950376286937284603799119596462912783649060276593531537657226660576485998657068277495812457264562211666206252429551068296603313233831623389259202336690180247162909301858124391756803514803343160821784639377147810851717079347658910146633099131129451041514225967491807200489782457156661044933858919203539252909383337985451286844399155111210253436658022680641592969725658827386297845077075137673890688249433983873425110485776509369886427499586948927012543959155284775043058877541920181713625085535584746546960531442916669630113892584392939992284805870599596070700362646319375897877497466660043475967935530324887207174502601732263017200212108549491668808418509360259411893079485562776887148205188605610764919328596922575985251854669283994472402230530830515239197183171248229702889321785971834097058159220370462705116190773033150944059974144383676782059770041653561719465899130141917154016598856617848273588816966847254090827220215127700527093789977276467723112878272390832726050051321916098317214769095544287092987476603920228697893211136830736212599663493139498254041153227746103824422627293186101489020953960098182706955174462093691440678668514923470466069333592789617333322937606320804722345554522321634321341143421900749546887490241250397665362156901100024402339819088772113841008756568205280550494129089490293224862002540922616540462019731764310975359878149186793631948970499487355641986818610349075609697381494252920501771892036875864802954572390256649907507761984505872880446244511574294726146053958490287466739671698745322927399132795520516851155428981100674462786939870691073003305548309077573572873642628831873647998756355507313089374755419834405925509736727871072065631787027251218351785634784718014217090580016611037665597555644469447617950110154122451036736951019874366310647506804325294540901245131809832762885997641544637338452499599069546612187116350289898789652612096524741683594360860132346454986700887721744949821977563535849696752667712762152873599912148269555330807608620765591430526495687076486918241148460788725787221115352141703790058098949958074816348503937113151202318775111903771332298614415451595675356288890098760123870626586223584528162548821111153394080137056714884624385197529583995727286219318365191343371770431342584677100037079217405406256984013555309580186051861513247779222311095064945880275780860019165413572887170397816643031663069434483227516235213374116570653034538579187878936934071580790725865700701781231781255011343176426016075614600959105835752698798317248593488209755068847697607892562634940724297131027184209963891130681033016984085346622786025303623376819214981062779897825779955315619680263615089211261052827489213158516684146020353178501694241604994375508538745967047404792437633873232703495368783860719521968556580607542254896686586374451750414043451378744703082710618774147249551149959113189078836164782073478936837975240697028263768415203112599926517370162347772054702061146069891266196247501151288402874199224622941078335857468447973006676012720083899586008943298517759355059162044606178867259571587671841991061750702992597824523044489888042517126380617434863507159678533938317420759195550614264522330421653270650074717316321110553352147042349311221439374676378150219301838386503930956075405534491955822851989921765696017434108343957165398106286324554812149403716711248035406314356843145397780445852341258082257233164139864980290400338587460567014090221105144449269525187872206552626233291064064301062665051086004013800943463467992153112545435994897101464424858310347458238766420079109658329166802393341926520371653391076762351813459891457021407976898791653537062306516602009772835756716844814734861797499265885865862617902125608556556501213186976782509871320422351685151124856013648039920512573025879371813442047382001380375025591589162686537644314087554003169378818523503583489501053381048320184525045020446201040020138193917162252997162392572421033008710289366323174806613067652663545458384667189751427773023661977054800590241053374671141032791199627494798149338472029492760188227641451965369931903855530473748764162271678002970557901219726238093155253618174771422893751283434627842026055152413556847036168159574078840933588519425907005690696451988423057468127316781196958017331554288593758499450438612651126333246828311539133485792095424151843814592000054111141873484858447260427580403220165821136644214605522495996178109615147142348737318577898482328193022700860492947517905858493770130668124854159486409814772055287124179895326923663101586732142288471792316078381720963607112010349487476454347439201757574784339855896759136969902933022715529528261269347242990875102122396084437597990894942876061152442785958489828883571372963692294675438845829480371065077658008574670909086087424896467962074826966609324993467642413023018377440981872551309670864621891941480217645227218673559307379963490712624391289784173204013155604685407582184230079753395812094581063611417639818712461797234840265781493522449868728892664050506760271976023483357009179229784299317855355228558495307635546556693063160543902349265911444802830767916167036258856948675393659883958657220186953438025008068975086498944148822040650762005491643139901510373083233333728280278455516484893471548172216682045237684570654508573666092632280032919283432743339361986285582351563941740952147989688764580087370670061056347443062087483425037878286133168536816397845028510040971655436780895347980188526370804496058058284233915575267980423943672017670199962489599315152494877405916336791774339461734425297607884151507919568211930041074652404812537890067350282767749274129145246781908981016135519132824917476869917484341822285746546796450999731032456330037043117132777748216799893162128585023607710985874819699750427982528980952629932042323476723029953928907361195671232210020994525362806915385139869139610758298942673581966684839046094347274538812118353180793885277104563076413432855292690183365970241355386669839596059454437191596710950576753819623693766368612112681164094486449034458945330785158200763064147215315001152939760267881704543067299912463044079055336751412983978000187587298608427710841540489017569967910710258013107358508112837172069236061160205534846178274139879301312341717309648868841297508250391263371166614579106091606748639361156201094424463379215085267167944259022290849062637825375514302004823211953530768572849334020068974455631431577598806258456091786101362028428123568531386570485368703039648217401146345353891499221768201929860865552358878255876124168891824549541819691254482628737327874278071473843446260903144296494969855292872849604680639571948538867473963940686090474329226841548513998503773271380898245342926142680582872039752724416806077986148381842745614352397754275883108770841272438155806307920124326752651137181686711624370254134648064435914958580536290073412037166454462869854082267641582255772829832630369769886845534712815788881891651308620880713323352902982003419291802472828120227222168226992912781139105653289180821087236917093192950727163046754367501811655564520477910462432231338637547861204738034510591788381048994932682758127149375422798941440744537875702933505410319301259519085821047963398238306177835063983694748312694110979352491778700142025879664993562565713603271425364188816358403913745171559010068640124104546468424330075922578859166882407169024006877569108855192985961661880049026605374846878939118131651195302350935812248601695019668097917650189350216189964059319152005925590846796068010300205978781602835416123471837944057920178251368204516638856492667306049704138258863508652883365515759691764085759771789499843737983546867469027499820109456633001992062271219999398462067422442451894366527071902677550508347696964774494144707801207275717438779555013547937493942965496490516544970260978119810073410316064642594940248600100247045723024009155119510692002060744672295133376119014189813432609950679099002297234435743648653050352736754556322286772752508163532813932871224497443166354237316133156580121483332036141966042805823840799159144151884506788482843270549621920381764811007982251548469375104187694616616855865137169804838893531743362326567514002388888933364006123965463505171794106696293681961461422046567740576927786249496400995037586898906543391017562106375931593659991406899511530250110862846681139970939736929897991387538738213791686505714094237397016714709762827352107608293683791797531174758347501011633552949978296976955789451657282271284005673547887664595892049475063850456860774593222979553019288653427458704918816081610770445879720698268735270992244580419989498604750588306117110630460125887284559428893575694305559340060173784007186292446463153376275909659149311917558778942497683471679651077898863004495573258315899378291523734972921896989282814885204735648502027882814652108448611531574106140210298274029278520029187337194053213675792908607454760429100508420684527540641841714225027590611476847211757916546652655979133584601339863437634286064758657473398758890303318807336923525247050904674436628010929411066054257678046078747168658039322992653085625574670798491584628625057986047611277119808688051774794665289350038749870027895189756883510714796239881271732172451612207794249581640006033452771416740409898363921007338178077030599719828541122307290212447244924320663128425133743550971403352152432960375989056449131892681492044957999092894229751647772891728389993066744639439388628271295413259750911944495776820306355462833785783834103785830417172193564585287927391299397654546993504850093659743507828458745948508614022005350367569421141307112359154010613240551770364963401043740641300232302910572409441502059683320235325465654756288868574261940796170344162061066291724563219859319582104893903034959707643645549099012681434960390493014172576071826411241503602952398607587807000750559554264023549880147303909479454508338682713885585325785333504292242453408803003439843814452180555319684385659228236617106485411780468098454892606183804368897296910984330374880812513514171729797284150782213558331093890453821877306304571483657913478446319581014860314708909406662167347452993862008050369129672069972734309755715868307862163948023731264809461606134967951127826037741262698654600125397994451434196733581292507870990486567546984410851883977175721463636103585270761325916949252752121846534201954015687693132686811401322113087507669029088924437400125824601357427876458404798709044067002842988832758793185828470432548001263910523823646939282617226729464915635566875658865411897541105394963320729324090125722621637054970117225876698304958769676486426134352011117694753858760908946258393817067958166124410150553895467858973935908500548260702199301782672138482230684193882686896422445496316578840183545484885505643119561117018148003892902282096285843575466546100789311003708323335669014543295127001505143419278885969129600393699560139425083007530033252192108551107355482901229403657496628824434802916712019278522018721409939268244517855031007484313290470997000302755445002895911880202057389255311565420134454980249084231458129015912357651951884539020528735334574443956422131648370971082263922922265387072220221190694209690793235134971965044838834305825794806123483568692711066855715325157901154404874798016565620039076738320192352945251633494484103522121027410659325522300600403080389294456079557171926839240907395945623375841799971455369773045799130099392592115062282364222797797269022106288691018686079216524787307634953113716185842103159359710182925574760159186490457151938268852700539282138229638553733137467876601668397290623886269222515949276873198217902747875846757884401753174766520782326840559009393415162477599196141036984057465846447404077912480460415306932188812916917463553964754584482631578881302316370278705140010226015766539578285717089734891490237930241118868611318305653126655105976060218959135562859875635390967169104485494402900884311743143098740534001644491783217880285403317325359699303329510207924301600892656753848835245478351882018379371492346790495849351107092044288415649999647645252117132638158208664063807543770011035171479964042589010429244727293703189707456573730759203938929830800923521010878108001393875862398161003392893752024968146691509772770042932408462357079478745047875198905287801795028311354007354703346467979711368807324612872211988064826709561147852964267577082514860907574614680490954315095258901510099960527477988262033176131625235936966905930183943026997357009521628744895512304477679551604327008601252830710016061590927565463870652718905879699599774322739804532929289111218478078541561496057381508325832666341207162830137146828416836765194355941263092023566675032452387163956615714448237297129272000650366680858513597640129640072311740076743578327094758630676712391458952003575179110495173239084276723975231613670589577365048545028614085616117473664604045774544477132163667692420053237194284940388888279566987363924902852840380226600788638040599013948541029989768521242259114613464665420018644620440198283913182277640365863790921251486310787509045750305987172538306410910303886831811876680098171512724476572948948208394747020216001480129640285271069960471651485403761731893616906101341084747903425744727030082665645188580949842029356488196542788666545651216801992270168504715729505692446372752084840064449630994555953074798484879893073207682240324642877146530234992498832408336027130055939630668921263851405742273001905112199231221101527813297601182734637634727743382910759384359751505140943384785087592628487147534768871893228720834429343387105216637633110868231956941743196890278690060160596549589194534148668534537509855448102813027113100464119635738785883726192754032151936013137279574870688011734201911836571950146857688218491893266826919338845653102324887746948789019640948004220880763154872755508501607097119273674489371426923699041162952255933830979535770868157428655894712401182317997633186405923099040912432148937628990142453116366513516509251974490479559468237474909996678997145286167815758292825218358349571120600663681759297160642348371268798342255807216115629292057721540997434158386353798478107186349170286870207343899308548134263362495486430083889507749620252665288725594387528786537525103332889363644835840089139024505652812504645540773770648893374158186513803894546260095993935517340587241743068434344036328635214561031775378097735599365392258995344468461455337448962102356720605444714150302239886703878586749512122125866672852499971132100588070367319855321974209439884310138873548559643953573570807572980150678192768030820672329987996148903437925861037381734085886465526806903738769923703997431795217921031329959906062782055276536635392044465067380856096365091606327721344090142241743231993523551791591086594144691565946683129453576456115641091053894018484242281732263362511442472521029611920935100675226553076143256298623455546998646804310277748711720473908119288109526530329321636502686177511021645772844516219005793679558959664169038937618442830737117759746861987101731275384833702415655930488587250586486203241035434371414628505491029583681150405218548261802133704767553794730466425597794165982525413901380252479226876713931515629589823387521363645690938987325509551659804798104769272306467191193430453156444860919270918116119053570160502593850382101837073791477918213614439432459289184249275917828302927141780055613506882353354402166706624625789062889594351516340763877855676978216396904770489240205240672458254452516994753195671484862354938380205620873300964015101836379132349250045470075043060588527577369720016527631126263036296505643409699496812223796362844990144355174288262168159038011684115693453277495601828615694045776614148541989524320112891557067471830659370632774799104922641687414372965928285638308019350288494379803364916794606443191090122531922157318211982791817464153466456825623308469708666512359314967388737117397586169759450517927214361106013875801595559550478746467716480015745920480848181198880897996451160579764274500116072116378270818513537975559086340782631051199961994300333897062900766711226342820999782912445563566628146292529716977834924179351139422689765409620887902239871759974721246863039723181267262113135343103395027931074092598656513355792387241948267545045572527655122822015688646511086868341848657482957583430376656166521404082493689654743071649759436853717834429268439236342884207488876178125754784392636116674099927333378402563039949459549506411015755307247146973175785572951973096198534045160954507229874807356606922497604231946002386045598322503047523104249614957275075990995212192858372407021796134247058145426414384631653141521810146224439974428655244913850570154614010862784830034457742842760685603774697217550270562602287598270615750216734743056151605355903544129572956878569144388929988947543703724483294198862134512360060755943428712666530322210868236373152840111910451644906012232927763134016769639676677115680670376653618760189245950629095551457002473080311345176486238982868368479822426393821795406610129451569003560321571471365731427639895344453668531467364975472600322635529924393092091419457698212621027596087010147652596282467613286264233764634418091924197015509168124235415439423907540993173842956609955355625734861105632883178159227841970487735500432125404348339541549283027129296284996945034462784593608088873983022344005597100452379091619348512923634197558813603933973509354759371497865295939419863401393466366789154031253655518264615640255128858283502876076919685048768039218347596761402597141000824618317408023046113435436830402203854537104008257796165927642003245497826725312081428138784883732861106047262721689545080098759047568191372594263284656370313000500439111715289306729327225752181218853644088776019343923445466589355298607472481894694637271645655180059803897299214554351916161442965019433164144239206232664204082688174189651914599349642531744685867049601276201303539275042631480478329536649405101923165512100504021191966452415646339367635004519003424890656153100571145278873835970673570127079054272153818638266240870254040359492046750778486319762178755257081362560106380774056805360964272893866467303999427571844790206399666981491022934499105025499722821974651161678861956879450430530889838938811615257781210273766726839738307044532950048950581782068691790432781207515219812189349012612416978764769375642694971174175311129432050466160243429730813061814066638042372473757165075950960339381794227681488138438496996159564376386069898996637106553236886985003152503466420497193910367291834107992431400290791752329455025323465162009808325761603621397147067510864175635661661142418100622246335934376380110533049938854600157448799706505527821379099097637415898656029813333712593402833246311928570221426680681263579321956662499888361016868557807027005550603578177090724742665668766534770848679438107677509486630189863682659298412230012352906794861770310576013050675138024813365044291590765510450553234444689283691546409654837399750805646851595720387189696162629275209696154884760945121136784434254934576427497377476912664243056663304030870409069026137115573599394478040776754947032568196378351811313715125521688840313906417122042476365891770564386375889705313735299136273627454477251317856130948944969751492171180598041537438073876045587706496337930458292847761091463318740119814674210489044672472169409279867657460438207002111745911778518267155660055296441577128551633004479504905199847977012488730061002325382852403834153768101823867037705732283265814799003961405186899993228974083896100868862637699816104198816643156193752613423120653370441928228839648189848966837731321232964639730827991773932695248096275716480493723370461710954398245292784057642522607407843618462487155774805257743889522891101774644893177950599605155078869188185117219217787422460247454416125214490895383639596786092377238285404610044840076638254901920848086558603585302095826259002749828857353060162072700672714119707984707755349047211685214291679546767406068282967634114653202431681553170015244593963813604901946016794133167854839145830750803275449933599542991892450017260244431323669686449990588358606193722223671369388286885658290385440759414101982356192221740663285132544729496901238531499339633218398693181848250367202639765801993718869939940074638541369166813606247139657591168025958353237931858945777020079227556310282574206270301961246208127341792421780203922110003358469395363123440580640684523939309446010052497518581464430287482676076598953613652211832946488606480028433579654374786317983307933864000860715154069568307194072208572302655596637581733887976617750492398262998581353703434935360518659849093594756378443200417478269524966637755234209421265040325740936308662197272240584281435448974273497603895781285665024114058574529164438259866355116861064972457010956594568027110260772672186839922533744716586879646253741311415044507242495423811912073101932374971369676950480697639556041553576907959595353077916724035000726993613203968703209055346549888051809684671382058778464409566649447439756431949246721334587087963886297949936330455900166234117929921310495895103841879126631142827649146154910991461976727227210398887263701606909351517362818034823494392112526365742528127756000299956971232317658283804491092511258561708807378593084316619642495537121075224680991227181811852909154823526235315049405355266530171021450673377633990596382361006189961978897389929514213633924807145048300027473482955028875839756580924308077899068206036175297930681621376954584546819210305764537210333573527492589779474720412806218955634009362620477683394979753798528017625069870678599424048616202600426537508813454036488135827193266147316016046932581014288319444561564451279436104900273483230112721758269700979846001562964535199449695744424412184097149686431755674911669436777741054795407254478723980342638536662189279090332803688110425519640948541170829324082799789405307383852380744762254772752012955821047127061071108806218575999129261020101158330988542058710912113339456685629350019586548976392485606926785725383890982187082320457288670817471074718691589684756451797978140886861629325384723676257236822302698416906798200113671442936922692263805715457259604174206773675920564470077930751766555554530998637475016236340024124598166909056526869798713088105106317526810867581962507464715411597838619137863681323568389885462196758181312591895151723186961115455930155157571876232531237527166269094784278157589498881259067733340304740869372132648275472582288000071885185718789810892952017492127085182178788008733531673421242112722362896058716389502589304707360934855986344831257456950828774838586961796959595285338733221902603443755735992046549564436942085738544594353023911475397897454919079216004590910652635351575461163185684538095218643246663509041035768564575656238750909670199469215514321380677112497154031990177530587199357546443747176555032709457289170577741481019490970343600101245494133872017205117257669638650005552613404620767671054206283816590072111595832129434070604302028137455689131447265141041239678071903459428801591911602906819600841028841511739533101236254916372426253368620167709925639164355399257191617817951059840159591900097488006761583003977485733306167656995463429259983666403288497412942753279263432967218453444730320312342343656894429611476772478056169634186161217720103364753966996166609144913567708973209016191537178227262679470328157004503039025890119581058960614332322483462219877288156455244681113500140256155831783225005647784766291410174606613114356407975857318537634180567250413766341365879545559113054639158139651931726428631760761234669915230287615469226309881468902664954384582575637031705503186809603802283471033689915541993344121933331570074612899536394299939524317133896644493152405366337055610504321710035095334208434279367805314543243818717019261298351762460450805041671966844747341128599299930662439306950612268971231549965596753995131617029967957009417032171222097694648934190564174333091270730591920077008055332556135285106151049474490354133279677221519422786883405511098008279870569208881796458209408615796765815290037291812019579876227085319016117443103912556772542678888655702511930249040318469252348941793187168135306341062945445543137358426545738347947718597352135102136684714823271424096429738508632447673116742404132127225822653086623863977876598097792227183011191988368358080033809366271867327834941819211393130595231151435872414777023933511568050338010716849575152909083474998358109717985654600622212651308288924029211845142124579795188267888977934507136814820372561317751684156546480210578765829778443237188587685779372067116732228081191126528518649239971162950908531282830150850105240524856796240031067189727098859302049067398630403061872064675112566334975394565064996349041081786298424511418235222634306047452629423416175800884597520953541094316626549927980407657207629470473765472939988166241642731802894379601508637627098596691294204444495514127283508889494016675871127760936696172255404832175879581716179221468889838883566539106008461123931370888196414346343174580855079352964424247418361106636033661890755763746088047981043902214378595679591594115828484649008102074317609784097227695475122322559180711843524101535335259907852401986609013344210238949644091059315699580774641086167497646517889506512536018635577564270450580957826976384248324905218827007938441160239898972715004579889879921417972368061024182087240298097647343709163287789388474410785490237391120309081973097888724985345127401684101952114744412503728560836720060755106661472620972244136994656467604650257214840890564516806276469109755337317778863636002265760319991620982363312697948077761806032547564799979044592152097763424063951046078265012669278352807765199368761532510560388483976122019015709488742732527285325632310695652768686361010516005777899101975993656460508898688316648822354941701024865655755945338615835681936578998637555386372360435740480984015428802016173683969735381103798730606451518749868780183167991519423396975799976936590360862533823093391960756157479613241324665349290979528586663231596391365039806051622000869522414395592337369443357270670364399508240734020061460732655043463558714470483638102597663692875521112816684381116157379375089787127930039821036974506431588928116543168307509839277360874454400631222688621396181520071955878834351562417943708186315914296673387290565660503030911132518835981667894450769564582633207754252478215574235609956462231751407977163608797884819788109820970415220004549500223880652026461936956757210258598464214293362388265079227901804508297344085837316145535026893373022232940641345103963944448379421405271166231380842904051229422612875822731185597333775218085451574707277536594299616306807705309014583263389111777167651391061304246522938803203069721998035118739009333698193778506117693992261422478272602921746597107397230025358101595719190173514155330111750387829644684329135872393234876778098248359650605764904615428208021054500401558615199079598798327174030477723193487006070301022284017127376326403069698128504016604616604769532523759931075941927944174789845651668125338197274991094211108132673752399302875165759810039741675010002695432382683828939682235428022170153124976743418430548117534105694268210260179717390101068422599947457912280761472055387143119253627864591346160059109242944066789020570868764583140847278362672060575965683425911144292684441425187569726850100206489354705723216039671727781216041392290006585456098017170864959570156332278012313023566677878918974304544462458235987769360027555649623145884284138085391349076185245351523946935392964734386574999005760933337076935270666033308733155732610268329925764169345046855841885100064082806855256480471957071361702137449708593743175961049108959162977619325843426931837863485126858947791733567885945368936861681591219359779572209578499393774254231641389063521051858155607504128554282663156603612260638173877754057390080145014564199856501204213443815796574991570548175556704783826134174370491077151185627484786450525576942997186177904326148722778990112525367757574929556312934320247756239718061544997986207356717366896861288899146871525566672168911878267844676020144950176261160323403421971816356903173474013676415672679096994728774456982941289866766153771280256161181440154623716293672448529349892992543833547186636854010842920618049646429295191404961718340647944312235326659297164369719162915880830346500486409217912412702554743648064646930169556365023303294411171709235197921460775521384855667318021383450215796149269105894657830576268084096087922044553013393154195508456958615314796951934457204070520457953987882890901926935969723586679128634830608552524804537087936389773243794600113210170337684301890688756229164552990207960664930769686000162666623739558034879233429471285515918915447148858028250820422168758500953273727679043304897934533926417671135202047645185955160717000170212691002151275842638454319746293086844182374960233888268958537714437228631919085424984748513288690392605830958137916251963055532260492682667776969934852189224261569898277653907784589299579458559495282236563881262759105074414942526830181965498814973409703285321493300611813106854645301807626069861489813733765602404160473409577359436456298616254817902672474693944295383667493493678578508345798029065877136661422421856969193552807065957939448314217862573697207731752570892157470467890127920677835844347251502251489943807375041923940447801289290424932598057611341211625315208322611782137286763866872048408863142872558285132791616225176887991676505212257614721337529097353618514687097959049906017872884723532552883490199979551946104507897939068204031738230076143688605518743521762521501802562300026572754178447841529962494149513512128032731545109076407347097641487412246562361460136947575837894162873048023625486604976921269726041292614905224932596047500328775132510223786736319423230096834116235899323121913788426068245290535141540268879116053866599376639491755488273377882776643492158534869592305858496971055090945389984326970480241747734000610917016919379920659253748335063033944909205462119698602756887291239496040145806976109600032094312505647524973949658965612953821638047279474159174519035388422545580588411114069998138574990204811151893119917903094258289998929286832606203264822553711730559696984268081728015498232065498414001687176812107973208044826531422154655407937153436965288513827538381581648319555323565209385685877942969711571277919567292030452427468014240551646205642519176837039411855945962412200329532664477711268093062545877084429463323761039313098900833313856337307670278425254547895139724283041373803767150434390084230087278968445127982156459199746054425297980449090649651157397743175425569517616143992704497104517880495436356637567531856603682883385977273905444836031786285298146755737272240464268532954221789086349381479887022922884680025385317663738083045053094764432438433784237782702755021194869282370491835268481851865594650714755100227397121002260362873421801161464980927239558238897644042548210351033077594854824413939699844176585537954511367298698317972484157798793486156620452234786148784364134715448235149737896998903094108942711542700105564171141760108998778883591465852740719647804248212197631827036162141633865497508598673236726153823147468207778746618828655667380406593815491244158242559241751699878670164265776938368096821960823002612928090927003836466896211144034667836889608359007592981588096619155858764255153455510155768700382303475687531812407934423963162634280945846694285171864548796629006004636510911891001470984239599518857521125198312789827691657304760608895013712093107549229466836490314982695318647206748614127632858695759559441449231838242588491852843101288158653646649242943701204479580491353863162934280916433761840333448929721090982504478073275580733407118831925000294737143831357682742971701269162050251065054120035322360130383116249422369714359463256484340620477772966603959255153065582675176759639953816140462895033387664293021615696883479630831971158439815370490015122616640525175018868228079821499132401552313019325169273244702694449352212390239432751266267474245270535309452840250212704109675399159937654457667880868506214677140235177062547317431966659890428628536354892563190833485450222625326136720919584365315009870260921967596900029573338618277682737954438747171399029881093575587984395964015651693491772803747061725338414206529846966968051682489872038144095611435606352197527565364230392113268896638292396464895139960461710874401776510518197071142262177124277019224869274795648854532921058519280446513217546910331708605225055847857605369983215679117079425534481449069315997693330143803477488023332950784602359164379856860442493631775248930781313137899211850822337970080629435527992204655049867898021003978670365377551810518454285146326875614980089911041917719222695094898902422336426798405354251003312792330256992791561884360630674433228929231567156546148881012337747822017181276923819747039821799700552928792393829787866339029292258854757499381161912283923088055172472461495386180135661126328768115411604205958186068882677354224284210124025473052620565178220703113528818438824101661243195091376379796581454552691057294816636086458887750600561871815796736971131690530869512005109706775919474013463872045188309236406678659740974629396117319171168225129768617214503989439445842039058159250597778549005956258278040237620769487853107345171341665420892975416093281653224754130868023674223179476434396773504137282377678070335715496987194444657593858833961179459977120647447675775217088005004290681709878232956972082224224059142027552310002633793576090522089049370596889909030124362560986678916515389876848165486738494655216594590686603680792763768199738514822422563828336850680750934113062293201599961871666384061512922223529493588050505956098021480635766297968276401514821791842708905161418321761807984963175986951475727685569557125588730029719681857800791204367445391045558232084237514761110930041979739751422259148437199689186573401365829237951419510587105336427453885553202826783992853732864361085491632107847856583254091130286016420536860528984656872500847585114372845355954930461571788954518232140801921112156449093416069427883304622116652531186047839919551829777277795777471011905564126597803092345096689825739685745070293350629232604856956420594040802927132755630166606891587596688269762576861443266400636023099568821186353117087204274670011404622587591468159734447263061900723287134251237430959915354314121082905294757702297829438464869317410748908342251307997377569319256097421740185063954432987400042383611471535728613738462385724035999876803627236300977566252676175333929513527560427503555074921914332406273659238672861437420532338412829643497669395548949184000414515386911783443269211284812129856206108332096459209368949577958121008672322482795421792162031318892061252529467630614220632582814300969176463490674489914127352824976871700067401944875521888473617448613897864442610665802527294260365919677201399197788314759613818933371729279103106096858829650802315975390693843800023360140259398430921144559149487251394924885932123910463235593579242339880077520046520656269186573291431846866420739907240796646809192803637440610259657352314126808289372349164639969973756621139960260116306174201163257956497944588373993946040376398182478464150792592922264906557347554788821025748591203527938051798685704199177498257935955563036040279784943311242285014939418035033605812088041759225821164707203957497850389048316032267458821229700423725373216556263137630842467442807578427045224610765628597034539658457286152006248828244887015660199385931439152613366833878285436205223619782277888111368113108796341767047160297805724194449321054302251497937200508243859091020730244813552627748776911681151758448968551229386252841325029353775496407768299328008202431328083946243704443478338914055258977402471448238388203939122902730223617024320016884125957449858951255952790189472045550190982023794906287842913761023818396441440033759226553146584839445598841109136271365930019269777805058344536416531147507835095520406946818354510768751468486917759287118746738940072633818220974802348792180622137283827907045470202812063042400698978250528003671057356843121172864130561804567313936304335337127644302637047954850698008913026191096325155431902880326279936365254815479639077675746775431648874852003117476751537461492743013899686864131345385208806815040844337816536277817463813691168138014085452811673245299737419197308123100533182600458259243723163392216291094669618701478473876443242895840074209313052047183870884099384092254212704592422178382065728753747060403862872716899967102982834527034024608843004766596446311090517524747542123744617539414096940267090057716019378506497788287916399901358509191100390823012645632003346790749614190964655452579124807922761051640466885867585441571768862720528733818569526622628592493937065422591746567504994566109330022932813067387525335518061101314900213217614240748101014232851539879962136263777885440385770821612512948002150226265235207943535576576981926350116989528597740541031047591609979698093804599580886905761323694551624163419158690204069841808161726559107444237482225957250880406812991969016654437310639169492111602731282818473118444664384977993220611170790717664670862677809513472755588816056251645435107318707339823236858207357369204096745952488022967560711224345812842585977248041473514589406116217046343544883433672335457464935793554930426813461278798812396790816335369688414613348081314465662875989633372417034917198273993051202969186366331305592577293608174195264954976969019026072544256447320536164088508158149759685753569177029931908150377670127538898708297210799727371931141503044255548208858264181929320228405749509862349383773124142719030384012150846016583475875712128961839072014798849442482565421603077646603641544411389901015073723922422606489038821537956961130780173792589116800269256111348151529133417276941389156265032680903208815931506485795210845258441729370228624066460096383371689288835237293694511861212192789268451066634001545158326909813800957604070952265334986279943692427769228182077333802195187079387569089731804296869871016482191261750110575256393285491812687231322089678867294969639625890072409630829046454327781055276001988446592619689066254645980259040054787531429724997350415947379827992315933944653450489912392998305727933548939392534157810684284937142095750418482467563748307656340607812529095968369768320654633200598946657616926832849638651231754231654293477300242296447891217929895486723744675856500063052138748096962763236582763432716481281855787914339601033298662883399950683062975448424466120064640529947157428972340301867320450273942659856273093499309716992837096836328792399158585679275479409579871590743316278748936294172772967222064824163478631816856055273081499086523148642362099339572707376720224300916080616171217651432082616035231633115250897359809081822808078130825517464914077995113361909791563158311420839407656313603075728537806596050017605270379800571572275615167970088331336447234865045373458606581701532784441301012686771842943931866319038410946518618640751197991224395661833151825506867940674854574307004905434365193799850857654319701582826900854336723288236305699310987164245458099422440820505075848501822164582746947078694613428140207117635968600738118626818273403276704958719150008281532182996872906747424827016693164988868489945749108565061034734042910182640966079529548868863877227705864155370862585349663529470064238184774968073102791550362984148579475677918180062362707767471615843273759173230376565272236442841987570444536646515857992063194711863145937507854431458966002741463682986995801887317671791697907852332456670670150886590862522509723045364350228479028601481187179849773327527038546026574658541806904272575590864114063886350047019553169940161831542272566594976107512130822650163527951133311466307689284192709264052779164269054974143156007736608005053720452950736231177375026483910908810003033253074529102368400582222270234541482522848982657461181201322064408342909384536068735710385732709225902423798245000439181142298432451120015260258352748821685225127019831786554941700888422946732332635782881356938942169269169010729965842143962400039054071501539996474542356545341493377275282242056321094526229907800891549880473425283955473443898091672260705068869553907100728852272296706772283323070828271282246032234045607748894333262204508988985595068603143120412339294520044072894873816212962324476239191123526398907902048077247671089049438449199048578394537856991707566486089716814273539244206853480700475436090201533585767087436538349566593094298895814426317813959323539869267022772556243378218073144217584253348883072599966977603295667268213221361556561149911703190173991635185443499763313304578467456023747484090560506197885841912781917383026065058753081013914442006162592031430766570342880536605611115506013795658221434769556313586395691390167335999414999148284933674759586054894334913744485800515753342520318066761321340437212929434864077689026996338904611747480447070750022452096076346125432427701506477261370476791004985685581992900757221402862183952472961520939323989450989826300056008888614389211186874625500678308249182312057695950980798512470893675907232086338795244639043908261513350235919545295500880673938956813343989695583900041101915274645906649925573533343174313999899903580083834687737523881335605649673426181373143531615877709231528707741709168709231998751638986615866523557346658786159000121098939285130109798323354324461201345290720505924171729968910721220747184483317671448882577820274060984196384856158325997451698823515679509251015971972633733067344291329306256596606993444172070771046485350184032385015527694085326770952667481253589392394940520933011910962418195209156573243966472430813671587221434384652258031280496660404367442234205774023719959115527947386919300311404517893366382012266055004167591939681959093062595159268455551840037927097398974205533340087176812917871085612900891715985043902550434519128629553907839482159699893286907511822861250847896502476062295186250268194691329160164691616010513796688425705402255230452766707031800104815677250234453015645305311545031019067863655426151509742787229114176743333367700611829765543185637063882887987426620126360919223172541113268898918371834670727837366280856735535048331262918738757958217133029497007858105638254828027418001158609869498104987693240703073958997390795931040660345152526299062790440003224161769081674237673074701644808751719911345541168004448480199419009424545610918269011199212559209632381671937092140116398070795361854095236310061326169595138646598759353664622696066997354876381843362514213805874621767842988236338227208383352854474109472563165130662112799009547702957824613442827334598952241942827718838553200018291456488094710108072431806505387659510337127693913569596351063885300415420733437452758782182947039538340610711953678011530894031141814862824645975251754698825791433614653419009256208516601329701720949066259236703500583475341543543089842952018649419954429380545465791583840515337240322827325887950895059771012900623253089631372516788951055989876666229477787800955388547447912097940264576178246948511868042623960695010594118164053694554369547789545042268473852127678293373218337426172590403217764253991829850142296736731559791804842451651758894757398255593173848186833470262859019642873507749725711100662834850763874161384357979040386899432930412686941402580358174388867581632150057082678397553570082393341366692066873176660652606120606262830373586127527345178420935683239758915798212172713583703093591862412691602470183595861655803430332115929190454139923452099289805932979801672849293783264435035120123023548551348443510698675791471483778489457032411828915195970144043908837613515841078866673960827128550366369335164909987187941905336381359880636255017376869371789514542681248082760918463261585271704631409793472612772554932426172024931543461043520256411736748652710748028062426839184673728361227965845229649078786785257268447168702568983713718290554185495703499643294373329785812691800202620713151347085183189897730619250986862291954792612299752883318721336851567281344212427876964238890934377661492793249906863877409162952423170071381798367978814156346684316323199952710169260913136040447519288808518521343031704136119822584560949445311884116847198028421984764067583269990058402401362052930660648054145522778543524207072872857532155634022689225267638860016160418084188481035946859953328382468174533459011323223009890995116957397826443636973032943091218026813448757496517678869731582071388026599969972095247810731113319092016843899994306587886277365611956493213114923780855093191653577246738833943645959833650728391446078643343569597748510645590156875220633697965289512836256481661444728381617962203919597005685489459169513159535127414780519219832810187998571854605136393796192691661658941195250765245535394180978293087007026841160287864876393282673557496400337640112258680888245971736031732571827766190172163192695488848055949470642559377747473562479664105575445310052447804663841779544953470237312312788048228698344465433863542560176727870653376155838919872479982259799423551361440138272835491137143384130894012409438995255808820936550514441615352516623523565514991907918270006877180875246451940985270193919397546228543969874741531901325306190439498426285278114629798296878926332036171024703252056317212575206251038732063495191527677298598065911432786169336480736776231865578525954622885729778791346341254769579880460648185459166836448846880319761993512770714217956995001666862276442358134741382730720081302920909105027493189687716716682740747464829861701454885509560777889207989065359155044157473295568305438513770949969891348807489811525732778915047312733601389510046842836669556788593693045075610237221234871353480381770904513875423371425714460901952853943498853791360997068116270162148984987641059400440992996649039097288386556036445892160578777086744872377635523116767383362364614833424868024287553461119895121483212124928494304176857906278920189197683543892241950666348209916969121450648385562278180782818935610883195175794444303101059006545845903178942902394008173749206948066222942737278766975021637986819503284955393169047874723345881836427618570862838350510722608040683839485909301964372374005579472788272830692248840343427999892702431049192650784798694054858347624691019183945109903478075106374023407394796454289052886154806624950955364602289963570758379455904300430542105049067023023739014753957717784965723267112010137944553066869995659697268173431132323374816619268099991019192843912095104423055105674344562754423392008893559181207494088372716527486365959887309968207218812463700115984003161790760478914079676562029578105998309915839724688410587173560042862831610685994962991690251093142468729058914148100226887961562715541332567694644916564857750552953764826823137519053850963862992884693034886342343499674615731236655286830975669040618695525003977012784391816348431084583016434952382178343112941461787698525298514863299780941906303141494485539952841761735962604723545517680069111760516035414609164097103267003275780279207725838170540830436497968198602027453758445742235201969536237284365434216454246349417069411931786458969432373553340959724289837293244090153740534912820651150195144735095166223331852166731512646793597162436569250537754863127171146427272468972072730700907322605259052347718542778236332401069172203072310649017051439623152118393015205977513147286418888467635185202872592228565670628819160628979485907937349232585352426317166144674275442528864144339022691910380073536531848405378430763644417405181377878539766986651901357633681439499138643042200897746491722366083591277253284313710181007778022055750140567804122010442414058180790626479558517633351035453978693950648824700908902147818519974006975729921007945567385926868282839452108665483734498702997435143519985043189169268359137049167686625040128951988231750070297448121667430137352435234435608527111425865418939872116455039873392864841748126944577666109661920099610054727152829762778050422029706851154395773880265886702131876936524518199639323262336159319855057566154088515702431453735799022853202142119686356704572232495575804343033328930821141892987035682536132186523450061130344094521657264839410988064014861103405835560393845713590410522689272343691826577072780100839938418033844023901726343780791018114399589783975407787751677701013809530056512929336408338066528339813578827676438607000329352573517071301204781345247128199086493502651395067811915325941258865766287301972439327075333484055553402263221076850529647677077423538796723797871802019143479399302147093118454676901636444837678545823819566718022651190242036475995270144776449041515646040946728474749501588959389757672169983512032778648102769852855413289236269251815388697725960513116763375908003544568384479920735761665924516149186295178407679691753113117853498477802754054000550010792595426160595479466793029367970492179653578067540915975923906797035844543975344200764068672474704400476275779088737728580475467439743611522000013049084917485666312435743376882507955273932051707864061880453739560096211277365750214822503514909101935150969760214558869521625294352298648522922837395368837153946645039812570145648492475262403113770955123536582690480084045378374230079621497465115900849228410999386745689259735606781877375295501233925128059175368607669494532155171436154549878808529481095507435303094208167276794391123407780653268708426910699160730988534409306843440696568253396397230672734229568035713949057419992521323258749934283288220877460007801795755679367079089641824836225036719212631187252880630622179736809697635831633319745174487613739106383158495598362013261258537367999422031488583238170746925638832214353706026428747076365121278703125446160553997164475642958640168475417847340563089621683627905135193019946441319656374499737846644842428698311049667349942033181216313838335006250243530621498736771110651364107953103447008558487524484951718594100355702390317577394378035265334051915308555180653881326490325725829905252623373040572626974515156658151323386179246222072332820284138520912004267379811028623927588701747746322515371073399570985865900847935706465879895182759274332272550301756280621156631226284616247207243209747633368317115200921578690395999515455324142196540672949984891226257449957016479658318968507592337076075930072988223031650254042843679020939946187355232784398697990117540059717008628961343745327321689157303899782530135107941690779293068509275568605462230204287010450179076409522411414242089234923212471715529771592245491177029208488246788695876169633848807871432175762651753505202941226236133192998743502216189162754869583062568056376597521810876819978619908423097665764509465607520661120162518213225669966265737275936667088005071178697316587601225827746412763299893440326100137147029875741661200575319247647856749222576940833024726911140094945609084484428914966621332985354168575703344411702518812301007475933348670485606154819976879737980883787313131758643783512754633777791351500138279156622702696786073660170724833076413851362863461303649292834722174211104706822857428952046094373271398197378020088454139461923808446224102211725729345946990845075172065284744864421229330718867050013980159764704584932199423020373555519790732005407690179643541871561827455570206438833573269117906249552184330363546625478940780082986711646386608425820100958610887606865055862586254456293130142861523983904037345153595443446695559905683951540329081931816463495407483822540122412568979755271854470201103018650242706868543502928203672781949068165963280421477375722823184856417378936512938346420435400067242009815832175092631776904039950421021028267025745896365439890209029223897872333814465584492908109380760252364217473831576403518869701429649917119992016751680378198041014353930468140416688924426683354829058210086911069286508250217223227445327960999990733517872392356359840987608471694918602814538785589671684703075862866201499012090100687281673577666430816113347057770634330433426389082916290623961654572360464745779708720514712753476726267297850612274423034146994893021347597712897143504016624661093092461066951252218209038283711124711646667324976956608132557212604354213279118465208385553502895269694683590277080375571368613382604463027190919058573330512375385401783928938836937651862728133903436425172896059460984603122910287851044347185717615822093049398284843485718073164741386525681353164420112176987592762764325144968804412199824222293907661382620747472155291053196706410254896678467281360969196178021997291173911465093401433538517536738585080696005904549370982742387466856899312403053233691471835936353076119846156228866006779374453475091110363262142284545160299930679063425686663157195113612193437910273671668820983252789530155786924194743567217519985320074267122307533901458163202675295420068863755042407110720434492442326146080371413791750136006416793256227697674834443373908891741455966772814177796928199218293132977691552544562732454348940279776236058144021789226836088300198444143452554389537768473767281461281883581204064560640292077417368310057228180099813167435297832377660213973809794074543146608147168173361660447814692400348774762752229690002347932911427782185352217763994250233711609425614598070948163211088067347963081334751662320368081222402168265487602196458658624029682000545544798592889732810739110816531053310913279118646754274409563591286899656420944199403813448107400259488779041214306651823975251228352169900271197572102781257978745836526805643683599329066924776270679811134078628074803233308000073283996422001025911403113513234823457833134798976311003470566663087159073369189622870551405215657013664610222814083300774789269985560644260051751662903055142470946303213691519251613614871930451682592057891089563607544590125934859978925465660834431694197901166300774121497285824012116892271286941029934623729867977470234390123676082814998864951017181320009580152120780240403076326360151030226097989969004244631095462551617015458717324428369045089066190820573772811085578172171412528644742253068837834849280550096743554673326460984684876001656917898115440187967342719629222081035812038548512243105165195884438710522807817401286558365129305018889704632488972321286044680941370576515906098834672636676124986114758068962037958336564358075513979091920153619455896126464440134669505284455521885391867879513076312342679798580220993246892551347820479000575475372513106430937244479642401684689647276192045433753104340982019011292106771068254101315540432691867763766095112492465859946076608123091862498156160577858861064142343045616511300569292427282073535295967621702750656174581496944124817444075661525675999801589005676496747772227514286156751828106382465514485627008065198941813321275572866623344981479657968205877674720933987142119833820486885487590473972902783602538843104208268186366812817946131748686119489396060840542322239026348822027611973107880521863390882879243806331421678502588556215052080866227030148352668279210795455029793747294109751202592068485599449032145817123316349217990191063421848898993878347170845240561379600190789184050256666213494191060382017730386772530676460673502022137986210456678341795699553430912619702956031798512008366196083229227094862805256450241496804684173269145356809955870249903864415063434094817930979673954342978420542311663638576482446274447927761095823790462175147172804608453088026335189039158723632676994133612876191242125095876292270169276627926677307365148661196116278719517986590150465926441352608888280487234704156118822657820092165619016491414820331442663210156915716602956931909900168890357652546436690552595238623699117444583465117913596976359954838046718605912024769612677365493123188866657987726627373054432331276340287174685956389071390491340862827642111120847275290589203351291454052403977594986188045000794434422852510066948914422522755388169414170219013727331839397602627130121287371607712167098305184302219738348483906136453106279193551343326581483189620971220389016235574339712245755674921075682489519356435930193911014065309288038192647205983908852658058986444462978037314696960929596119622158494161383353108505863898312602595930297650809884320377520563360553993267533023481725754910297984202898525860642947753207944986320319880894281628395829166238015835788340433120353321733462520698605912388533550452000918421321371373532033455824138312384512501196258361756664416203811823353893601404501469302255533453011418428384200235437156972139990913155124060669276664340439120548568803069212461417124989112440053638212954610283453738234096690978197612861739463997242725359671383422477251730621321042855688153779463738348579568575240564809961925318583600886175551415045621888709535230705546013009523106858928139018009587008402518042482947451391822258830497002855027197700828011413012248410795410408621819919509557344165177741184254249869761218755208649755536903434703583818156382387574823632479437224410721500062159303365841165631128079545738028822420724881666166204938812244919144334335732052131453959469910041059438648683910735469066954776042401814460252602149683097279418650395213380262542515445234129578424253971166962536625008921886528244458359353077536730272853636833243388297304841940644609946850162993000438198215312241705370901799402039625282826368629848168145067055167880133133152540371267266064782967112566153330431406226216219144089702803593629075764746913555494252745899511170788316260465111275179473102318803159546478242360650829980704482265723905420216271166076003137391817141503333017803340658037252056023368498060326259365779366261633810414039524562851164823034956344742036961075177894583374215597665485284303786929187636300929638139184089346218245115156087349111314687080159659511609663623591951865235881144377328471053650849403437660398521059147481436709033973340969299420654471012624346336675640130501942463224759738983538178469960070428336486361444400794913692070052901050225984998293943876121470050090915957225950052272613198661884791984281556633698521153722921377175093876232059058669559203688313926826185844616111906849349744908453506942438643150849932005539359308673422461856993550479442166786030395648376450787653365209059413788727229381288284043523320264878364080219848035451299761194996970463707889920702338675876150876024085082564532938166333451581214128297628432536970099969596718464875778534143231590162308900060077228599321973029276582130467887906703618891471716711092482080564125576179529969818610814668972313432037898353271440930942273543823111367908586746958170079727372948716526790568372830712478989125257816785680468379282211425805744228972339157097701988030223596584681293064100654285257355065167972773358566198954272112463836952215132795451908748230918382917533513437408651786998969232040996184423550481064336367372100686287186104424795879378487419304409683080733638500419120053004774983480409737690575714495424267696901532609825557950947226289137685192496439749597557022356466827748147130210153942528681953060566366905266914694259795609212889300070277886079975255573343555158214160287767734122936105152362258575812594601958292076793061066757483516151596160051763506154638945679638317179486901146007829238358738489458353258294843198691240831308851965343592461806953125584179134512223941400863452139123032939005434532918905050931323911807063176351511127556889966934210886124000727856178114390219543302643058634547081111986669997426100764701010096186500491610343936248605384100960585425360462934111887193066910242016666078899534387835151081066615696216798425826133517827632480608050209497736666515407592181352738757608926423319462439069207518467230226436901658504089177349247689791422235604141639090452339240910733382987316921992600033108001474721457269969050375066971645173111488054060715855686158382843920670359690625726878354173911472358727784718454348043269562835570666788183682609040191436915014648145079646534215247679934197734920205633303978922838117162907393880835595872654297256389606595378214665249300405204175326840407652473018562345145275637353259196587133786734332461243987193977683003311675551745610276093552685172441465225312308867047893896187444763697187937541037983219430516877784784801790512758830390209382814187347137412599749849774832145603901348552901268607700195003326223360293820246507333550385914790958441893040172837457467829202445056646147600479084306840614926307542664555991522693397818585928132376746367235019520476225874708625163458260243588479834062631769584730020086326035504716986914038249550979936780833008842453495472651708649444315050800295059836605391485140920937936604255995444071595613727021959654716284783072155842916152890248554037063887664635280141015012853842890750473382603050885729011169332933951766377557905136305028818447833613584435602448142991287673606014890666188916639585117392017975150194890883628803290703989238629499493742304624014832990358229993100005044893651406751224021348848457687892059157751727429871076669743403758695214242212201711322923534812828643694631489728502286502587597426917334486783661353181868737693252885471121155648103173525829767954514395987838197895740247263152808977052744274471723494460019960233246646808634334085827533996960466880992905287033170121028236792379882529890458838468155248214893636583718384819545781036117235184930573864745308801210099159370670365427158310722768825153548769098674446549752696577001576358427557332895260314868095852299261024315966110108962525236037600355406739257790760744063545804476252314804327686962930508208957991416620445955558585537473114613672004680352301369069431026952076919803271948815677957701469815239350587248361533009667751684053509699386501756023707546029730669945190692343145463079631864521668447266540457677879767707060581395109461627887898014361028619609703720503291578523672950037896318147990272565861423164092365993319441223347714769312725692510168335678929283363120034406552859051720481707400626722932744382521893667841259477217067750513739822152950720428428426147481136085669536653350785711074111519838292606638059605751845419535109364288476095392660907411140703496884155149752735387323378658967972287277519245559618949109873435166725975280325457008126564936545540428118451090882899136330116381104568296663961557248821222173533048753969021867638751761316310184769164886507282585289644697074079529690400435946183379369596284701379737684105341919006621063910764209639197859255282948373884845713469667062760683094907718113510169128428449066276285240811401059613148000275244634947873315045487055598024257861510322914550394592310366344100018164073638261796650191595477719985174930531977519167115899084484973460132227457265973183171348003374373658013819500410420505426239803035293368708266579756877342532892057074793197255530687258219697540002993997514835201248088460201519847301844689860569945089428271835108914667670960964898678136115963439167422895029352751712269759492552303127549396535183149440964630321941773214720975799357866844351906598753892645631256002671485057542316166360012968636638680712410938415243100371277921563186624026999866588748892338170227033266424551378377228000375295349050191175841247460552642287262554189113269341299167019807560394837503674445340525597453262070238596153967373794184185920509258168052490809813449225306459197375203495899864486277897227308289045871154747601329798549795635276428772833444392844051350745721683963855099601701720118927323058584304726359373131462506667686495675359774731531515023274667215533051457083957908494093844465685849607054894720194847311109217880560291648541147794914469812526398515624602862767967645151744230252847572793685293565824005127714389888125306287876679467615864214433701256221200888205918252000144338998250985261126700250717682291585567931988231224397293513285488260745054150719023655693393208857769479774529647732942956652406023365689393988446399428812202365481350528774937498121098282972357493338974853528638261683819737045372419988094977507344568301333899641091255404867949993129368811507063152906544527691074393455554007337959049347282077930595415250115451096382186612278141153847902909794103259299884850840914476338261554387558213343838335131871231493212034178227886981676507493392937319992413903005865464694184393044161583327475994312791856898265272371492214489878717701174625806384288260266114745079294327376103589945559289160654801525985063663137781444221834914071379873199651927833861593999661892774275619968683257867339445458088388930531645109463412963558862998055061719957808444704632264628161815020902085889699382139245607876082102289694717408118613028105732907036446785583597970801382949684681727547416112201797820807630623315648002595202666654704222863230501928214108148543156610218287086759128619280170534825832756438271758856127347122818044743050939996782427096534380484970836359676454662195581670850629975277142040520900172189695086671087395444662367871480404931787499537572252792882471809131778147328261283784330969593175872860193621043970523961169510995150160738105900804443709184352135333980246130374255035023312239298804802513112634984734536103713176055193089575280469005086094265508904692432500276448844710524691162756825347089954732393255486063841724539520091540602268279447818575669265043144844119297050766943488034558490276578849017790220355023489572451777152377796981395531244767259312399729141957883584118363490326822597760937636509785591619833667965080355923702796829348393565153049017360230094978354520405590104826162834186709242626746522622235026743893084278890424806081557658370900636507733103802033065578387721611125371520670648690042807486514619166085106731324446722463390240983929837376246097728076170279540096395334551539696883601149354939030685894748092117880570974268046565215452719477806344559425702889532260140763482189654144479364305395552558713132138420090415498692926349063968592299156633494012901138874873912131756221119209756166208184832086270092385695420622480086873631712538773310732879138162131357740973694195266348721430740313102746821449184478147532988309665952664698184992283781716831770264696409441619594836868202373076947300449597003023025528127883484229898787423044203277885727005496031931319756902402680676482950834620275506001363199866852741654485123630811814414876007604165631690597348746629588998884688796128119534918190574396327483915991367780207987557888596589304209789295771319195760292567299608649137693397062712243958462852032342219762763504494406924564569520909089943240228709260843762098166044371083120713525350948649504295575507009510140839701917783466298261401075495609860790353840920276461248153918876718834475135337217483983827617603612884814359168216784849239423929386738297384148044800339477249338351719517930822036664778429852113137211978840847780050603636062175752555008381274263767919557631327780725316511079004287409608808978431019902549459492622364607649967625351676544030304117572699277353227852699689804186721578184039784075986140439098232826847037969546104538773431711016871903363421340085185582669983587509977370682681683935550637965681360153816946540544950972966835586163590184328854644943345126557902535395505128014450265960245022887511415906431743074667825929351321362487099986286587845276324438156821113742077848172530344554137109721845952765925483512848035833255844132005334532999244700632571638436790095448666925451576172696778203917514111930525235858662531588286130340103248153434820663370317657860651121902016680694645578833176275414404002760018313835647337672940172768016049439211114785099346145441344970319507546057743685571706926264834391002190731318048518979755389486378288936245888988264601311927839506631642276653774714120544274012068901393321883779658386753389629805410523927475670731513642378386637959703576645599647775418397657788807497728828384067006426980428655049469919077612287691180338494153420464547516810622691033130385943019851245380496931435784837690666608176274624695242356196675289092709262779783008114614369559800526027449869218557927165170351012778550176560654896316397041050796286287925932928824929610381590282314721520856679817389575927532454486081371590802289757516449455210026831299097229862830970705149232242857560168354184724034410611955927456412061270350221794009670261424594483970344310421758968010380975118840204024771811583418343844850654471275131757469771098385690932981623994052875336157483846127689249856954099608848726075618494320625361566213203855003237547534527298880040948242690524637364821358254317393902765974576233628562764786749206550259184759680088637538291747912928657627479222885100508818651933307128189703107702749379152780033288503985066925872578739309576157650265380754860308905424862228941413924017981517496848349990349046814462078007307337174757321804101309793331436097918555904765204919176180264121079426840125274807774531187467830967352029273514450651777084729749116966091679900314309674794485433592774180279081651201383946940162873365097192470025891110684170103552083632186163185721562143721353241186739060757128294729542086383930200828454973295214724337930258211503901451738108770805440939619671614474986365882238312130617442185432217439135255243771371105621399225049223404557633846631232254199841299613183925333496832860258582553648178163576779194567521932535268495206765743114634219721658994922559282780140123724216975085429268646685315438110932797488831906081754873082232901060901701043799936562391214292534759011887608919026305949835195116896515467258239579733724261664437529795016281932918849675742340159192936369307687122646611279086812409220778066126261087921312842705615928869991809445215014697385074240383013830700343146604567549424921050819058755899701307592653244837451727395150676560989082288793672971858267719787668025700834203690493524980695829838365462507808285798559267148508380943008256272620427341069241865892882314037353873409531800451467234646613770743532646643982098790914200430281931432558964328158627309713496821250854367773505543616131113907400226449608237507815484056179942848787186833432195573438907387438899787887521713815481450535375714167132447742538946728581479805285835079487942745506903040855100079187785673449727182495298207672326479139894707409095231925570074163123139127740262145387343735650303724077834337573401385381101314149402393509597596174177587584556893938644858823070682559410515069383702526044363171375099860984178479592294409178841439950928053550436329704209952467137596669290571221298109368471741422809280925856988921859976763024471014068266726085652331239611981924558102337335611392931952937007354799968110926097241505613751224886145212854479881739218134582544787225816918327677069107904372235769405444921136240389401415424189163166725636777805427170555092817963677221459203129472763446798827787347527656464727177883417468855551986416477589987751333237527737276285819855623475763361605800045353532255011394283315535934570307589447486499706892676213461778760494145137883944422988140911260887506315771212613200799393870396001413522366917541484256582513312500160297946762608750567673707929999581830862300226835030992409801747726456003952553729414550282733675311256406706267495667415559672284665670531108180730790896119036659956021135967852273211983273250438299433072967362555787775453002040012695745730726471204424288724721590326678534606503648393948342128749343055394248001621441510025789428366354784591380168631257099314724205475978196276358687377606825053529172297745896517323979964060117313096121754753148447702276441458352313969131188784697466971108434881636148009937394773767567313836843281329224733105328247701068173854057548024682374921925605334112227522882211749313622155239829122605366297993460249636034807808715181465658834423266127518931677862973360320096244953313182914503987885379648751431845837287313692651605430231687580306928138249643535815080461709124375492228585161682582038603207290952168061264406270474455505015054230857785099661235155496592654753358517221770949280363256472732086688617114680777009116694415273548295912983677151862206724820550579232580194078671713244451247077036792720149434739309831015041595146759623831282062692693769762856318700217520360544942186931013473168260874499897914966227798979971864451095435577117552638259329828543140610148933776255165011247520638141640712734205536412388959250286511440980036809316012108019240515230792106473583676846444716539580481819956187920156045564254212411278941714222144186707724416131125125085841807254255483219894253319558866409094699764776270310242505808285254507036035299965115041416781819124683327066362227976584880644732183376252326663925443578693606162477302730232782782754104902573240287146658942871526845368721819869992873705422376943082821333291242126745903220847825971616960465219413796794353121358508498210209904566456442360860256399586105607240612882014425654836895781125711783217033266616214751300701828142456525782172442694086548108111735413542569324457979746688217845215422381910157082905182216414564212447734459853189448128491153969411304847854023837302097650778145070056643455130522955987817539297125660634560841949751074586233296445908105984700109535786313705206097448541807579442405032240455342281303523998131205479289821362826138942810488882995379466486949759951056658421155584540553504493169507456342906580542882072280229255210898550881301077279163572214902050785731211479777821297221157188919758966965954645371640803729088303908027886113768118004381256650358257666289098950479672827428277765751819720879705342184796019922843359909181555965282421526029898687920189565680771932167262080907767056633086446316510636852438894047990423654309932150107740355560795440907815332066648586993869452286187043637241894589947101026605031486498460962590397044593992149923603857695388699176856431782065465137089907494962882430243275506509538863683396926125347931890314558879928939340879811908973368394856681242514812355031256930496504894826594163408043486798730357270623514638579242981693512073772139811369496979560855745886332302740978064150605902224007831038373607125338981688631711577298097752831759524849427957144793025073898748958914770940396650274541183568240630963258446410610696619035208727972944412072002247169237353719491605352618274873125146179180605612209596961103335384202672256911789240345952133987692392328347047674910073375254164776852395191551306000074594345311993087249584265613569443311193062282630057932049715466808292072638758536429537343651572756870183321726136422617570693722323673284204763235037777779786778933829241453033434360470325439851128275903669730083328380294156703094182997810557940904784780330362449352545444523657068561657968992828031117201801836770380822125915110274718328770471093423916831489335664711833388363743099041776028035839080334063369111586284160256834158235491514874359009175780208325257604364644677461019826953257214011246798411714092610078404867761376423531264662580352798543172852859677274215237474931805559342594745310264419910147496973546663554468968250313161520012246012011822277423095200438175252013051074317162967536120647265092269859067190454106172367780057931820112223625798121075649836573266834025795531900513636723291864258188073335805078250030537217846287758312101935097571031181611682085355817563380474291721497939630826374605837450595349218559481727179069372792588558188952692826243146335561947329584480590612596963987005069771694138867458059583688027035344427238779555517074372925145992858447864448748275185358953903557699353622949369429496707367476672328495992744320049176898148488546343778917909070338388889108055406657035369281593169007766322458012414795583914158192584031409848087712190760294625061411549642062579628061488484774260515481181729021060350400082624585814304417788879874859457665083021789148525167386406470748693631203310412629067239097042870180570526038176677034630994874091332540069013228329264361045973496627885377551673201660695194352291475473154277367324471260629973970194219719190147474270907250086716557403447061781598645833684445670334608305113860107974162120306971117672450622120786878153927161682993866210304746201452882619155813491198748977990034196472025649708108249764785791864096404766936464713007271795793615955212364565701709520083328092534985036012911379351577339252560646083621898983825450984810954468358655523155014976157641913194937329970284235741124741485686519836781092952795603113151194532435676479140872596473695725652058674013570875752285786764394882201476015387061395321529820237117480679208959317196186389590379584650054321710276656829266805188150283117766877593126171902482671493291102340943096823321394509120649803703866096225942130315045299769292351829045900011127179600858760361697841456608094313644672359284313758794968343957681430352580510185633783572626224736936068795296028195537528826720397070291026654300716858999152239769248681695227593330604340252326286440998145425718805264188550697901814172299400293591921921819806662596404474644183351964099555599868400400827153989413905283569822267337744275899956336340766518880270073672235678603616363211644746976005605620914538531444614754965719543979521022586865723821986086875696771071877045893384488220934606765548664692596503297969515485770523808065456340135693919586732869342918081705746621521112951283698501193758758655519625312454239755454276528563702578586426407212399928173176055549847392547737771486607903299964731959020523929005456940008467274151842850519601742706041624887508344195171027727985467493004650536499458788078123825259462427828865240676333250476473886557754197211458107900782361710508117407788651880553177468223852438662411817367123511845174336666079630251383409507941854279684696523372696081107904174684619885854604628133786097042416843991749254216462376794363378046175750687920288746458713231614904449001275591480974891491533174432060070830118542500820822820475274562103310043312440717766557714803062041252269527196089502412698752467370377079751178943494556909217440154822791709619102877464272291666619818796762134317041587136683393899003939751573458553904337310986721426706191405261038163709211137390069955183059946874635773907089155222512520006552704757815298959450655324032766593154725268964590230178597308147218888313236931767187136300479068307631360635281270553334659294201620615198671976371437068973998370754819802471235882500366248956762221452787788247999037147581045174021053610564483857958094272460569523518762628197541804291351900649897926003352674341026184865403542505647732712703358661782958244760733130275508522820664123637541996812865133412082006814234325152579279666794822457936097642050258797628864333756151536031691811544106952354742893700561572548274924295655094765057260086116426455285207817422111195121795391959541890651034361416734010555389196593163640559702233209860281172779771600400604676971359312885515013559322504809328004858683964103096169349072483440106175027647441480211006507513527326617965608487970606160671237210898050369894469994825789698652154166478988484586527712828830884698881539863206168514458190421943877576618653551201803709148599220490629517118302045229096539071114312293148700429688267436470145853155254927058177961963310291672461840155133529870267626478471387833136094410368719826441120814661716185233936745599668385487775312312161775446672991622471905745325498993413574308954798337494978806437860403686190411810380563751422814722601623072089459312845203705781470992515773028488566590076502926088662002225318038891779476804500963556469101037553992365854425747891113986548214144951786874540600267979244568229636902692775668610342994605594362088446084042629008090418217069304327491727873240779018472640494435893871988696335092190211618304357797983710775337305035841282750290633187116696787650360451662788843873879884712376180794562820065897719523880931313312467963448324199567707099380612773960058569472952184025951705320083412679299499892323080417547570062222887165610456040348312316482818977196059510820532406209570195609652718270568435873638722946239892112855117347778457619975685878766006667893932467995126930194941116237662736269699941369559119895799045133486853579599542154481955771046546054920873651391098456238985630377512040898020908597131908328849957469021759478982686215746453487916397396806040927558160114231223089700619395912751818805674768056216605363205415934230816227484114142513751272825965644002542907287311149152100004531231043668202865859790921706319334743731809737499274110886808307807936899192946251235399588722155726618840424456507168646462389405013356937521957669044983431072909811267657230563455391307884799437715298510767912814137779136630955480473243982208556262773453414500633382720138464103795233660125840113294903795612253991594452190638189613883928810997228184637755370453854267786865065524326178302875984348313680428349122832692740385801262576290650232502204510541565397973516610892796697461584439381505127588627426529806014167142403073762083967857786666097264897216375553618078262689420227078772898412877318838525446189707571743336863816767843934704999851045147661459004670897620708758901734424808787814020408448322616051232250364943674344108458338242026541896899860119291051914134035828660754635881508499155317523001023960380610494466732895189017053261984407144249922702785931282960032475088695166934471890987731648488912493439834889651229481108012195180055325304646442938698367517069573996533447540649297350682746620566532160462457053225156992729352997459782106128459467342037747601217985231234361232992173466393435212665131269316040093647978490152001762487653483823685810314784085044669538838175288061422856519039605073434308124859274862149943693973739543572117283497445335294344334720719255886706028605688585350979876291398600970341730463048981622841393388936482674267525725014515860968450238397306009654771304045680420432356732811495232548132990755552643891892202021639648344182592161953626638729174850729501579402605326787366887444060035104935215767817500337936053496606801475954147265763989020272184511939180077391521923313283883372900114711132677917859507698686117239440537203140696289762211079908706055620521608878589634696317445079828418944255677074131181657874214478749492545837624074224736171812278624496708074170174659342534582381802889492728889316869807377515548550180692055777819861927893005907077216668555476738458024999639343198578150026181631310447151695792151766001164139416675687117556994432737758522052203013803759595193049190761617253084836951957278052792535398900711957782592980937106405306321382194652988155622407985047011154056095490588096773203256422881969755372389626399099352223283158411399093000877911878683451534920694359643911349345718176542584627657903503376424289998576759476404067288189303897466490261155102790265175758542823961757272698490091799234391948828456279535353373595903982585681442307135236922542550938501065785882366692831425648616411073367593943466891218281055777372388581443288711478348707878802636770449720860274390388953338951027233953823355737259614619765770968259588677217688309646218069238604128777358820405006075515753439546982958852410598674604996791008876510141389818702768928160760326833346289221048585127670986756014163582202420725385965550539896017306396600865122691321533731997262578184048894883676083148299558391068758890523223244070711350894129774543191138863892576762708913672647058965282079641914021291385708278526960942496614579493812949863314673791858121959185337094836974003208750004479739710127256942439136099103898487197324965607761315996023050804359414263054380004641246676072800510100251768948948396614118715120761646811370803595399606864349614029432416374348663726292310382405568353600650213418707663884597064947366304046857648719694396998985338987990228707707720287570233419252092899779395687010842384560185072208157974768556197216041307532216852611684332487534894433197042176101189290565038236524907925832085032817619784571481395772815422696564492973373135139675686779760243949891392197835977977644129559366712742520920409410675839486186087333083936759173141443575635710342739642470433895408620049499034242986206739445571690924236111169095263313578633595003101190995536205784873430150609567767170654132523247293217258108826567502421580980682871806647089880766070131487054276698188681645922983781503816490525154919630253068012727910275496371536717122679803072290364355132903067115440800318268473156871696138773515526767821580629057109161967051274291971275000515893050330784670989476849599736920680393233065267003310716004518953190281214002461076069750139490219909963507735014858463373884151728037906880702648211854854818718634981390643769577265556078244644901321283442016782402748352506560836121501030812770559260437592883929769066944543818349702720016777804025125936078261339285797490104022854943987986329980665008892306538241432608487057623284549382179519018069126652961107583624221612604153767198690273854620356738982816070492480499098217741621615201080190058003902057415351450281873074437708413321552858628735554667158312828011221331038523014200269045698042105281486468616239167780338330674481207063764317045287782897807021203409052605755766442567844732828661433286372549789696000278054536928014662018147993871784823487157633524617695227195492913731113116298866070294860691794255042428395940360119887617198127368915752173872113510378065547377886062309627442382469511327114906338344480573366905216855738210781034253382963144840546134233676690954897348922227475676400449101747233611223149231331337892350079887556504294082864421150234337647335845648326175036381779683183872395732888609531674588698602665414264439127652596415696584874011074344263460710030843387125618485376434424084599695225153850148496296341278027195325632916119060910118497057200344422287750515332018369998632607916692000890336653080694560597623533163271485227288863158091908578403645758564306325645912057578903695214834257159977329337404379315410844600670407023388809264920146135124642878746029039139165940150019975234983690941140559739466344141677076369236301045825627806955417103849535325437936149142118935891972343671335131535550297151750880315222334793150001489059987248747797844548157630134350793890014360022859580775592334676876883907375604292203998123194999089458774041004331006379669419150216541027433547744907022829676597193298574430812653587832320648741587396951664450498712944084926284596418566381030569863710593128344219690706223946959647342268085424960769022443039949204029998151426503629335445073700690321337574717705944602483714069214633034788835354409599960098658616781559051800649913867630311716108002295494547479647556897592725702501204134209431283366600471677304450923760551640567646090697448888599587312945856591761476833975977811579970418083535503346270152089105521991931366317672408761700086758880480495907944119666207567079521239471098120470042877779571045989748455766825201450125906719024177666188553577054332059918973423233863650176495888218838325321392196862637264258623097819622612621499116567729449913535696637650814426407595329418904009510153392509704484035603039968927198355432711925562825011773021534576438440558234510330878102026316593026892191196829701204682342050653614408355611109187532293739844303663449588574766983866835898747619570739796666374813955440532259019962017382450461926095658574135801972791996039788232002032303268272629633555543901550388552681447486164179431248460797984392530271074283114374453779261447000025346998522460549639392116609525236907354468544370797661539446041316792797487932389575043502950856021455270346321431024327473785045827851141273585987962948434457893762714395838438954096870342188530453074337466328713064719618356370999172542235508513393346487357058758771949466404182374734433453636170666997953056045972561855671539570131633260458475895053327833732816701117372569402507770792012009238355979218444743842721378692154582604812824378294903090884824230353672171254716276970150599513112673875150850819101767627074753659903646132263181285270476893897460999196885168652708875095141266885091539834644582494051594552555055515994929120646024595624980123802586561863964309254112349111679126627704043408081945847496346316964957221347957664652703930738376262717577993941443617233086296415504766935062815631590315288245695067002437220646291902702537651653053398965022276560804498037839117197101852008726254239213269011907743554908258717747854028612920606079492228728056451129232910175562173362002461700448843043216063014433663673517287738492925251327747074987364841115568172381294241306412619930145636482053627376070197570056570199954565466049678103888482026027045617838574900878917877103414246823235246904608063537396757208308570136727470930723020690644973985909599425588898530552678886598356537700409599377966386880559435575312525767983576859509305947180102101725749404047850723108444695608422107558569496041753823263256832841798212576418553895860944807423204442957973358252144482710377472565382214098852886644531773518398782926552489502648886002944408949740036303630258188027909762644712324835591362876531715846204401845344471996179921182127421002858956706958956654321274342893887757015592417888255073444326382685023315063888765785033324663622011757497215992207873754631474745538843993401973111944196518842345551477624997967243689376543743142036415568559183040422033139849367281548814090442722463810597626247113792522694344228386806443979487301021792372197900211663784333048106873150834689458087675138517137426068143448928760818171665941271858793762093279468175525542200258374974014551015751125026313571131855877733957076522926925553770503462947534141150079778997309499161019250506874800070098580853445644183979637849040564027709759383636985859077648037379278906836549148352589256894935311884550849891620188768283213869922376757730797207459601703842439670138213051424805177711063927532344697058286146815929533454193034186073928004945132790976380093848112904357743839795506299485245693934289675498093431360520650515693261074956535333128013009803756609980427996675500485971058953792314907817495094641328100776404938622721276474989790142118207057725803222106919738307484437441427582514808630035900123655053406955924455493842530761823202927351305689697337688166474839940354213602586117879713522298736226075476398955846786947275740104375567114198513178435157588806001242256678666529679411600133740134533599543838926977415443562655707061666402796736891580408792372638484736036673360443334130809570093533465017190847985290843706300724580268765897146933486855684336397588488375510674829829570372684543779530890037426897430688725153406967966586422721363432154812548621321657328992878117105856433195210062349884468014705882675766849683059420660473234932333769616354072544039128971858542876522335236452811908739561224204134034565827475750462226111353650503619269240635852199301901442871235641951195038967188038867724956821026032977576894339847119516252157643291346532955577050722593267746851447466870578378696810563100820653277985151213761333569344485731041726774024352445980581922252595944357839085035027538928469847967416644348687621115854742726231982626263003510976777907695575722161227261625971361849437176912822610421650236062153627824595375987113160689294730792075235795799474453220720847473674757059451627058831643280470590260423600960519892376619634858866697032086847599492214414838235022128248911802660646798514943647045519528490162920279421179594597003029206179980356637457719797170999954107022574031297122439455924704027080506472196663858247773663935961461451909457671428675663287370956423188041702523117146517685398556020847599014822464956892686663488948288165083024074682000888264801070741323971577389655243843703506526849349939505047617951848146894903907320699723083938219690518977491557539152950020266967539685711687647877144268980702533459944221925803472428671699880675523796657948760012270274425389494365663418678326832607644690454717004785899089093765595467715544959992887133728775682321309003746898383095675848281070894462261140961616479211712808453688061981093089795774372989663153004048204376497416772994351197527033601317965796060474184045142125714352541070187348630806773930684250266531054236339845072985963328132229467500253765704748956915571756633233809116804242818736999077988034249049248595813348373248618219331750243985831445906901962480273368927391675366635211971848038173874189172563385392494743645860469555429849985841137910902889616542656951194338634677869937633343927060564634677454545298807132446158537964727129253309023244786577633731813113599092949787489818338574663525525129220019921122319040951500955860949565644079863017484400931721538253176932864611455508403304915253467933038172271252655580266478441389617539428556536910174145386166159045979133353822285528352898891845604372382509997345160983591665290345333452615858625788746308065941675867049139862741480729578234258738204064541860638140563846890974947171513038479527337014349856743647269313274159421758739331757531037637653719497774999030309523615303197049603895397735372253809184273625226945173020842200940921435969850929506347801865475714012073983033581196921883054843644613610078679432855772554698232363865170115121864729383851571753308794693330556995819310513725324829202011186695128304419426057914583173344293096854885540819520534974018750262164121807884056479718589196342679966127313664913889381767718140104297770252230816627396026108951928048635377175677559497451725799233004673763843079539374300836433860720885608429290302338626598849915137248554118965727905518443298677316843299206552632785212724589024875063082512053740527858105369283255404527566714177696607795818568634547290448869858304243054240164897475676637088411863256698347150754705606925313731894461439640566026389708010814603489881985590532162955406449518344325428561250409655905713989813487680697434935744691692289945353586431651814316738539115302524835379709751492321349697235191211055410133851479640952194549581676732265799672288678504272498709123834461204865727813044721976076674774592999536868074997038955764536989120388503562006164120699257709642021221235939599837299691649357156150387442223744063322922119489689283397120447392479009341977063767071217696955634244417268828340096279759741749623702085205568165712954782419409370841566754690336614237431315325625823448901289885849625134046607430462767691461902562195805256197621675509767303495300872410530312328370554282273738454576962466067821390411277509406226341808108141134789049995183843986007997269993696981369780870614073496548782513676337431141463757310412012083683428309965168021735383513901855237325924405022628228556716822398735116383593556627627952319825504483128121617553895935485606729252902694676956185214399616907375705798722725049850196340622685013081985234854077920551323299584317717182026318137146440019974810857668069063141228285759356506846638697932860428714525139948102801928519220096416180358004779414951765600818202589637953305907380143417349866467697355147861505264627937836665568586658037603696391008427466964364874760173772580638013345676917201443730357905345131761486006542659939777679591248119970698756110871870259465532504075305309522028879492920369862388809337234415829047071659375579759692626105831739593238698918011758259757152996891203649928216555786984904185376231714400177233932778114987924376028115166040705634962923001382293618588964360602766082299613431488169990142507771745274763451099750123199602267605881382152275691427325926200252250440012686055788054237174061861875862233645501507280462555357772790347967937202561764913911902165239966980786119330392755957956343395474694412642689201673749306330779233329517971335663565679641661292191387894568084628056287061102518692940795372434683302290488931032144178453110235029743224173996222933764671560195321632176833658494629973873801604438091461280634970723113056773231303490482120875270549165508957357579161075483569081986148021874781275539962260605853351725187604089071806477185960710452312919714556021148736712409095473658411196628405644645588085915553289474951739956952171482521298911259100528765700406742399369200960199493147245956078962679896941407354255107995274463373096511274735813600251048231682964477674321477993603613361694089784575753271796710926619915263414130874149164876065209786583340986065375675092878009746522287677040484924865155974892406587999893109067127619981319143062076433063565958488597258317878817013134216572787352751110591932292692170025800491535739627329296467310663986791378666655393085221041430480728524251137960978027951113630577409116250722661290608282800756372048986358591006445040337482017167549600377698140538538313618159247861032050969771693130987642239090121831641464455310436496888745549521784432260516805263165704772690949934717043941844768031164769099375538903597293928313002240191495397011762201069661213910352569230443030334425038543593808996202389852854118208439364778022658168303352426791793341149575927980213284908744066190834357138968523963698080287239481172972971273766132492053196103911633376855197454010029966838223392177022273736178828014942544986818312063211167825326330487242602576186901598706337804602834909536646561891794010606015012475021295334607059146009674178767820149893171034433864830753619129044334500418731867198586744525670346660737634562623084105800445537242393634304863386932042659223097706881523494141503325679803902747203682932494908166164352406681502797217829317546823374253529337116580133783320543780118300544417291639647576330718839512335847446777799566548093086508460637814259019696995352477644256459942599014124748118539642296176091016808789675098969496403169813948289669098749957304501777914647502531137019259920634061969704744123621338282677288568646208644910218119877004819304639138431026525131099584915630077443452681099570739534178090202314034673484668393271662175091528819970269751027138986247309673066166604716243828852100979210166528214838275440811466845794644397149068003750657180072389334088089573600558894910445485978653110775645073349204085423629776105908972876258726549175015119623926935763601267970985746966047974771376214127103260599083400538017066600204077346635708169291748519745352415905058827813120725590200873780809611537220912605168900496411280606786333840907797196755049972428155972458288014146750555650556781522037050664505761874703275977616117820821956765967723815227747385826801214086397450514443316641597131888767159777875680462168698512665175335782900137547896628348974694274134643240723345016240686207080377618537423685203241834261716343989974407030026576000064204718825686711766263548199427237667663679421865965269158620681813684910357361961562904020532575385217853502819306826107764758933715721408449319398318817664311284287267706030728207538675563056135250134223704576920918431635980116055420877681004318462993883346428295924691203240862274390601400142983895719497519202091116253781986742387508852385105589410915165496547768609357607485334117972891292327678935932073003464282826419933526575140670878916418492693769619631679070223373072911722360462882859579851323494904692732638604423999281224543142900114455391080589069636344580479235359671186340805459679268235357959384214358144388471887950051201074720200161046867311758307470529039578292601778986563437177198743296475481764232490748463871880163748446214563594248417922111581998656912469332912680265971487870235637988930095143228738260615985497499264346214969853388643912201319599898229092262097377045048561965235236771867839875434715929865709619364944154247117992117725639971696953671998100975677914231911779610050671693109107490525016383646135129835380488432072904627227112428531781310605714208866103883920664614625111626673996838503594519840434117396032024913071136246812129026560402023939821490800083400003599088630107929152420835281255862494203818038304952091028417610519695698907464455583414672692804435866423411996520679667896219773949132702046632965121142383338214214032431577040339591951421979719677725302870069255574201007409668212303851967622050771350661975452956586898267922413194264004472192271830261479705459109982249111409678593887330525714835320382659894197943481372032248380681697579710378849497392336756224577292969896566819070599090565661552988132871765052400360144588580589053710943514709885170615262060093853582562346827947537903204264013619762432421065187507459606990731744998966948563610933658193995131861643521494980446684011687486343342732918693724531591105301865598831652877222225681681504878144430993077334558012949484520738812135181410158234985231704102515002197860664668558411830235650837708627222159475198688379674643614244993065443501865673939180939570365221656554948563555835193096517328433098099161994589921178532370857092018920432041323057578194203776545372760767555137973602431098608898226865834231860684661022421540219877511561934454381548671456730985353708124190402989209357415081487522338246854965875580706553174300918870848010354741317335913432156920231114786495115017498012003533458369440049141104934891634699888364278247250720666629221143354124279529946752400966999750091633369423718407875177461137244612865974342692940745329147750399335802040232703477726343768641529397319990147992709495010858942734599296787593555354187402811130557350128870661275460066320068760451859117681708392933970251113926007048979908498801571605464173001703859617551524309368729900906566891471935052095271369240219911333196592288307156665191273635402690917700304083420192980527375599628684514140445650895139780080501094388397118813438553695587066164817314927482133638451484051531767436569458669883202369568103282472546809866910368068417197456940989932888498497162690619094983213294424202236955914546533352238102778304448620522292039895469939400429852217806046097746565395938855705167762938501124563615870954707936244796459092930097674790698531254645257517653272449156083176110376310393725163394659745467787048566258370252389739660359920023754493936822925833823301436237217636485916676209664137841789415483118583649340095162772054461805625945959405133404659507586302374894618675055997002981137447733398161321877508891709909157407101363867440451394541390217618870426157994377075108909690267448567043132392920166972357460513527354732882179790251152041221872318733064417306542979187047387816715249070164655671776780325634165207729275896629963674396331384856672090346667345794872931958259115260585988005086437950649139423502548071934354572957890144733732580399496096171034420017129618299963419196915789275465532336816072480545082279385002169768229011088043570722080237641277971426013626488010330170109192654745271881849582386966520216099879762014179087560529985444501112106925446040480713754966088989031557030425520875742370670332332065714580451499855903172017436422478890372776501357028964984580802659051650967445008703170755845855700446124805871016105700790465343992128012606192941150180774727172642139653262624237520864701836224306938463989374426997912982671496670178298090931044151091583411112601970735542047547055123214409804399469117021892938624240645157618332535201093914974623856594161738991064432569366995612517886442669575126479265109124271224718092299602598678635857213953358468030990509141932992573259466803731217337448424337295872645890458115613574877130021806489798787877397318801473847523124010303702255501496372219257633602048166044033056576255665390293099679729215167643109294039414560578364078378030198275841614290839798745626491795693197911263946854930348939789475413060938738776552926473981468712963882675318097708770909644155158046619306253596269495419984045783927540259705162114548523285121825450433334387889845517407716429302885396237059585828031359619078044371187158855862528298387381217557505182060729403720333017119529750184119374248659426184111028545670903991235341115714659816636099347160804601106896790940855135454956428988889580905720044716222928647986528085847989117639562998126455448352794654514726777685984186933622613375341588728291941396261500224378892969442381355268892354665239462680846324540509180697563978272799943832750524968274963392424235652247983146116344914735558495354849834699944661574032524489371099574526117576657728323167265711732717220981021774135973120379569218838982780656401829543890844254686092009220236173206416070769688530753944174357083029137230932756314021272691191982850277055150001176597934908600920178825496962893780384429247936764484521281395820207859747212848903647192677596419110970397485251598748320474096696554285033272720689469326858231077710774814574328221669737911658772696790220558384035239502267153952281644547951829652302814779568410648336826817452355280773329997555453398603504254520986806211300541307332112871594350530182903915408379744419433008006365170895187985777816808733463419690031489325593670439187643519205459430035598629522547445412307787310390690813884261499211294972378154062160165993002873215325822733941515345382506931037183583357712388418832538871555097409086958047669680129757933319619628978824348719860639224001354943611147754157752919292262731255951746559757914963491288840550768775559085761352683516510719375822988707641090213891844816187046406792067731635571777995249428596732525415928581431391460676116972900397710766695352841309017700769336015729579497895894795340782558037678325700215207702844600844871837907821705367290850971318956163858493173656823206540530783193213876256828249659500215834728922071140777287464595383056771653136020698793296074972510116912328222815491628814061808526533897618233120883918916880233467818339233264077789690891844641500528263474076499385445641185100370552869889633188797951290628380444176537197708622342515449787032224194163305917847399332818673727516871803057020917778999277006758085646329156018377943333967015974420970388265238789270182237561673161582462893650003077631117572919198575974693597317543938506147473826277810394379365403547897226696921440520463329588348778734810140607792121631519526429192068253720221931678079125186269877816368659725837194378789519069066346442089895482426615303339695827370270167097189357460753905638093388958463460661812144493158226054036145574721337488420693214556834455996323285881313372931060853503235535245611761318971545399152176349688644123616516549199670339614320121958158302266976389195098037129601809666550604876197497357096170114788966779277952913282594066274068971043189042142737642789412601613572669223089048066641269261570373928175896695466005380563011425494939827178494606153814559422340301733557627044224860814629386301025668544997638748585028966828980177479075615023929223001314128719660084640293767840438578848050124638433741610135888581454275829486026638968160689482474402251847519389757452478985251634886499305127398819110120156755269758987646053204416593568837716423127637646840859781186319057463226389351195723169549163256361937817743270662564137824984663522287734112894763938469419126252413704567869615901168124413851835058913064381876848827953342244926007092470737438782192532090882485814091410052414854299477436157510571922620190417053436434787434208020220688016344601927832903289586235738246762939064402483618919454928554811721301911612335155352721398385424861923470613166589890123680839380806995836474362324968988005945203766939427712911117032561150071485988979822790523963215549990397181925413653965842708043003324452468222278145033845707058904808186596136502253484490512809703723854800248052060857217105803972490288608957461295022493861958123907711485705156389812166691207169172276331260869998893166523178751501212793228999155206936588633592618378923791338118398004303578102070465114342339265115832256500123897246573040148959254514232773988338640658341037769390339573288870847757530000518514578231481949864723280629542447038433776083408098684350514259877561313834421892341146440668551355962416287879463341206791973481253992524541344028971537411953245954390095670155302130178735545318410258988487582078847557779585031245075557360331464476781510557462504927660947880742500888762145230507819898107516069224144923489664177198560297096482342054147632297996163398399431063405319449297610406035308335215899757473885283473089435578845002173213714688017374425314434407398050804093656518845418308836655742292317143176640290723283317834716291250539281251296844879142985741664996770067196971433799690091117258386139169319870780372935555338941698495912175937142744677201406143067583712995910723604636088981613764267045162290042836323137758519766705752812580805654111478158240766882511257351892176334070696748903878966758966700189459435447736651573666805917282401809841278672403852102758843352368642328631549817389816332448663186243226009042082382319718422995852515097687640419724207786634774937688133230269166835595785161151588660644548333632570594298878034906061873380164958168673652336964755971330379949510228761385353720519882500007842689604741912806486788205773018911296748821605476606709540010764983641758245464048816462198906830839476225898824288422439977893288352110538521916219004971181201135615061883951101863229286116825499923684968711277998392107984400576065246087673420941166370791890041362714932139243425883939406765239027461730193324075975853460770149839594387240591243182770072351096826711838180556111804178975993512169183829487957923978493857932601076711747676118666097135605144579003009387894255677441796047351194071813146479186698785063355061700498162579404404860119117700159231558972268220687731019602586137509063440425139050080836100772513707606063708172676091426535601104581042528419924493227426270637417917762854219211925472679880894416149940920805014640958878374061581543295675607503874535169801434897781226303813302494572549019340490516705058436215521827108276811209659324037175582636992480929707359648740398038921419326883410509836746492653914300912011513806001849949753948591670779240012265676982797495239203684743492291059575597081153745926861709783718073849771607437708537682025387475523936038464694097178190599139650643660800129891681627235722481884883686919045791668577332910032761621519877014512213225638691974152328061764294569217308591465180480979003508943622267214174520196039930206929247278386540387233281884930538953786721697724511340090965820631604374673135153774979395344905024119036317831154538048837569436345101506546637307368746992133610604811062245033385050349382303704027654499186316906141769761098779478942055270923165591572685636800402730690897377534212125984824106935219867159231696053382070178160022732003406235285150450412926830846359131679027996057279324128900709441324947606764222547412861977051773685933124680968118586075755449993648730900387975392020632007456146406192742801622197013791218925731087513513180249250805086112322722009905183193700061673237414972478542351616820349361024469740061031732430515232627768940637301968593090671646119251866379615749330015624808833046210434289360837682660448797720064694055424627644468029739287728225677470155799344103783535006407870863061330206559586344869886852355019015304916545276929297525719896499320180717081383657099683959631511106952814328503857391797617160604046004922469235235152282103476354616898995267480507643488914137540941706032356314104552664600491687403631647409096764883547709433322137519054610234677982245082041309862293568432690436352450374427383884667946705852596077976967213300355148576375770017606996137610860057175467822412910383574635030551522404078772398821685931632152703430122603429175140895174151324223735108028888717250247642622222735747815270542853038987254432670921031634710064392586185748061165163551958128492950032811422698755257193706080258867347756081123881656254664160124273359496654274831730126670750136565097726785804006526064369602310105612850585318533572915270174027158618042674840994917126467042749019928417910993267092469395782092184528895620177515514560102759375398800991454182326935775520792372816917470585491975857553501465598569408183071024550772788643603765615097067958769060737730434786307938743694391712060192610613921066380488011032181006266107989189683116358517431293568755756367349820373890044640614844193137120506128480162806130628913143491136505493749680154974023369318968039824307722300630546276110984371982234920736165048601405947823397139923292685493200149899217152384547777080794191959545102370601519155314630721584412404204924602122860253325483118466179926109904552285427228379018113161498373924723963115262398733474860784723106418406721675894128279595770928986562727069978908774325530443305928730720121724029535538354164752717488439583506963266607769515889542708309484211259626660289344925681894371262708929503282195666726369167417988782117635137685911724725151396044092289813692018917070240996286355682581297073081679982960957886536694525395108786652756554599559864475698626498709120439746349967794435024250712766375660730392616897232211068808064503530351314540753945383421604886603973044854063676931013202693567100137288642597890827643722326146056294268249500599583402876526207982470282543524875839080878911929685134223822349906407088720081073833464649894902778412921870134901391850040773486917437338390944334992436035737295849001815822100657787496724607570976349725360246540877737663298062700332759831503202395312828607450852835235025225526877900222888646261744511317240451178155961835523587653437053530823089518590627376502098894573916520209422642768261982252620917166762423282149845660842992712206319102132317195878194771186528125570560412516362503087171376921556879062040733875362941985186205656496072612281498141292110962818718417887600509054713948725578185998122387016551434660833036460193949165353148682482430345001537368600112646627180306572048566911656260900530808481242756889834229944126835310828546908705270071865304014534949699944379653927978575934650530699061296539197460799305541344159196448070570910636306465714411531125047699087161574164788058324095859350984978484309855716745508559583153840628781548582540800702850247648181101723168109422036847088673360805492013796885154102553584830825959498958526275632242587494381213477767657922127213399825876635968979965453802877345313690850619411136074417272095334957874354594754636851405069110257371933637718492807222189640521999682367880162252548286092141605267770493412715035123841046928934203044766250924066434283468622978152266535761291890763217306100871367111500664433759569462611846052886195253121772572064646146835362092986583376879751139441628172698954940343953603875777978898769514745723918893848465985987593964366122804137451636789677921285533144083645410390473588821340557786549045233372669216825685966055339336885055625329429749545465617271640045732970485068833709934729616782144968490233985780012752893386419789690761890743292614237423445134347451327495902606023532058089704084205777258074208994747077508282780159056743203415198618842207922289563980091217476502890505419743728356487240453449458070184029078382973833600985115643857918696057162577921990823091928196004403681891759784396667684004858712331482395337297565540170861529006698044279015816527553941010129658330308217153505059340474497010142961750153590070257951248013775235587521694482992913228909683392688652576970042002605927299971737039723937938620878877561615819755964513607384577159707009789270083970828092196820614632992837921114482064896226510137603990835636498117595654612070008663628582407311560202483017119189382918064873337464970296252525002614497234953419266182387301285001126591043418086422365917249454016868014310863497725120979450135700657228028287785832576396964491264096993530063826158254584501576597241034622796116145943132555050233794376309428164615200852875190043733373967130506721388341932921518070890069005995317737144396047092143427844522020696805334812899479073767862879288783712015231744620049432351649823418047802505180911997562218545412405932911297599401457650713613364511889101031437680046968905622225272017267691877498576482691226056401969441540422867828911573187745763396417411688230545821838399623597597810888944907254812702110372334347230067070909924001523312708222328329039010185963969346715323114452185083440014896474987169260847773396355993309669524357742225540441120149851733823231750310065513238645670547084164035755697662050331288693136355557103695073565023092079096400795149464615762320200653089028728639239996248386232670595234698622485882427513959121071097896177089406086620666275755271678372744827083816616060904556827183903274934169771345919146673224018890426859536135841446183574799240241238001009869825701483559328642895168290184968283756173510976752152698982450984100787086627606456655804479354431329827930881805217970401775194496035032790219248801506378343896886546443356873610624001700145661479587809692960634966741525584788843789539493023271432592576388600239935790224375535646118166233869118137005171603280348696530349489429950446024626462582515323336352028329588734914016247406032124733679006801014980399757361519640220562079942674278689191480356219547423680072455718587924510269164623270712419198952903435980209108642273466576619646853834698995199709565576075254565520623708324421730485540080010944616661162230280615221623348571707743171794752766849763497996528119612320509803845908270630379283701355658204975434343680578959432359333247064266236243507078842696494186921108248832197212267722998700089850365600967176532348308406087807049182671125711349949069892831355856583892014732949895374685862176979864394654300605533331544006867761851509029112955537821882246337177341968194184044743889544479600637232932250897382883907228000971448800266260868148542643725109874180829800981360212037955393526606463046682657420262859862290592581703533866530827750515197095424564555034851468356108745946217473250388832946253171298773486361688097413558899504832595811248744489005210117587265277624385525667317424786424720468711188153503085746420191560170053342947749490075017382949252155169136588927332096234252408129161394126366690731765179499973298916321614374503846070438699881411281794175033436862161336535769911610632817178926549758483445975132950801265386178394628282766408469399909021494128442595222789813669364312461553987842190144955305664168670834644900995899827966407428744483148610434929900535624595006152266998979812374792095624585277180795602462014338561907714042789176086725440228986001927025141025507156705023601970893191053020402191366839969371503290680010389232590168016453801941977931978093210655683170930745719279018916803292875028546130852395974053877396997727522973824637783078303056725743448704541210873219360570145684851307663173642359691345387499845942664020925336694399879763417239561588850573458225730682674925682843132399024367985974083849991731154370093826715124168640458603213657744470062451028924136102613089797656420121193054352694926452199755985318469187326731323274472017382653981347394196964949541051599900883549267175386534494343280247424128249126552840190421187039652506896209215249493439392365221029104308615283406749813068182939101804095783890899312119970838103149636196628787066402853540356033418499349780693717738008476640347847616790121205729408835189563640335358964866084768717379884320521289271880316653580673654314111894267429568186590149245180021995818663118042279594942396347752972966616310594348377373193785015125535641636716210798542011820053652142790250623330882589496059029854062026581588210905047003621979493527384222063733213873974154246704342348878017169245827726351426040100704963678234814556390547123598204051961603981312876356082933402177453498457657466451927929503380818324008443558139602122261918938470870856554142985013862495865303747602475133849975025566859272598892826448704256553277795768386388186103528779851714436445621849511167301253858614142334738925223203970870639069809707728100962494269441700050673290659866816043393450749927253072423909180945538510378899168898155031792328319639469272967618259824811511572166423077407720058232269454336220404546097287495117715096539648198489026785012591787943558819364744123931058629736907596925948272998200142284243175615529447980267117601336681003240141438567039249244702054299114194059074523336662026935315159847344923736560583139155329124805310127818854913974046087329370254963046650223826573423471932086661686670592695261235264855078063175512887398184404315507123483201864860739213127932650232218206107817561728574185669836601465198948324792011916620288129067496925394638877649582563240629281768765380498139295360508798635518166639882290982329559457222565173870218112399299883699243732887438254240471609676350309681248052023613155370062467647522450739478933317874445705423398482730964728292132672861869443363972345607701056960205207678748973089424641942928335480673575706704597459618318798615141866549845753499246839795006198922773303239712535880505972515914689021802005382091065343900229906672038346529629409660250849919106332126233920948173685990082197549847261169107372197411956465069850374363068221753588175801321830973876154563227960815781796410527058776406760887349747294695809313522204838771096926864382171034489188240842132591922459230990285143069616154555127611825900947177693208215563131901817433671068569720265702539232801542070856170905787344949700814789415583898227722392464366932872023544688278826576309259912350587795707892202164420504272614901709267735057073832745942926472209292538777463868816299271170343482284004740635036777433294845262562700614358675558367202374305828091771142163544644668901381655116399417241818096447623673123123410474175135513613229508546090703572908181584848177775476191120592291242386064827783812641713061535409865347840597655102656428879041353581026532940078491898446580858089375287826899117964733957854773488276090463814464592717865791258146559976944345022996071806476364409709193245505570163819489812045693198645917857940936321060596583410596148977056963407702441948282621788087274273584525525155711399890299355984597022846287433548618272403647961673011829239858376482809707378745285838363319523711219537579079149107549816349604023545085642791331420279316129970939696261568846506841851695826943856833645610097999954988062552596602091271413384911063889050937290546524351989292081252011094041565166055885793922526989299649212792132383261660607268452820591572164538894487783457994541169422100091205091104930938043761587006155960095845156174166316295144335980808258132039269844370848977376899514271537011664683451109344923211404491060593627716726901053580154753743348041633114584875863473676986587210799103917248053099339859920495984996419161482562589218661083591044217670030558908138174075060968305086740476318984020060476258887239626661098183666121805820609750822235841669709420070759228936739881057558302581261545514370060904107140583415036538331129301804221845524302699336710502570211582106937601545340652073755379710977676664049807171840194433780251754578632528181413176629519770183132088728110104999967212550177531620713701974604460046029619461302107073967227378499226334793825220570927737956330637422346839640327908277692188793135799806838471340108045061544453533141854113844583307929983353985748824688208315214328930522084489739467258492188890862460769546647379228714482638038300509557435279513620305082333904229599535029006403976090860043058360775279079239071149505377544432379697361692677023628667123836833099055364090848525515021543596896340349619599623502818470678818817290099597501492767966398139560321629197598299318807534592465018506423998400902501375580317513669733524056066141185863880316820099322803965463639818696316789299870842097462794092551973977850656642796173073697404917390298090795813287963025742645915105002940835979108168643953718896069009223870933337418329901343638012196270682606131556737545997384461735289744383031038457825915676048417923239329815727270406395869175918517193559856870928178831395293266846225346876740273624730313995618448000682952220063313445166490619314667301338663170980308631821838170183616050807809524394227331849841356176818499613852181418903310496891918477970026926289312757611141295093168821461836952439479854144325410146463673933200187144359397194838969406588701771970412008529426143934011089013264379621603367962436489250389614169137634064306745200069131240788293786962702963887068600304540794040952554610193532820441780230930337254769826541428676791263534005594739231808019652353701480375904840014381184830136370799617944516288851053326292130555954139041349856979790536001928688613526280884897908352931497659549590111522011892483664249538749752108195538807133435997111644199640610827939074524026032347620445087093159889833379069456428530468395280266429505953692651334374479978406072863334680730368904681078548632002636454087457489974111461334969157597971081652325599790267751187298092807920212489575711771500645068010896281877119390555725981997173750164199284922427937683086287200523094061050766087272976032691299938346626857427184590960962180227283542048991369634644169983652297081118087279321175847996265360227368385183937271262171210835251906891246928695885836620700866791494105504686578350089235922790240327198515250695972042882851337122267076679421269796625904890798424913528164888322600240854332768471617106622306838406743356308497971689065001342010976760422761573884213384324855505113912647287133914712168396369975330236497266353994561534089625628723488592119132475767887034877105644720801692002593424027826317446075382779789306890327893725052623060532275435734213133236141207634899731280059779023136128249806544749015854533893952037147358709271900012358586971320434377675600725389141200912014548559593489764717286672569173842742860501300340364474206079404160449317371646866812351654485885965401210771729393968867462299879610651865629773877977072351909900641763761464519011134802340464497747806979974131922805608268949924188668870623343928988752165577524496514422607707020479146823362472508536424199756678898008415812761220453961764184389089835209964162629629358036283571975737616485375007721710908244303144430875774568215776624258814040918888832759793741190900780202126530955321443120720648941158001769200079811765946060355499415021559830061964756897342812967870347878177371430778345044948460210921172787750649671028923175642185560412368532445625016645790754984459471144004048254743100282016194669308733527077135360080777177315293348092819892109401930610801910279887357604987994395912152082704006262707491443475304437281023056022238312072611144767854653042694304391458681962009206869779413885100404944056932552066842632402003149099518264715884184294069060279063146755349311530513294626279810527627859286569764176993331822017491589237411609402766595435122431710872213833004051187793019554771273035959748240394792371331700603684335119136151878550100144121412670344485370496466983297063939342550625793353194419367547848299244288408160891731049104702817219105384046188571106187015367510253647302580030402299469604286581503204286678713899467513318425724411797209505621017463335908144440816566649090582281491923808662844737549906366500012498765170067946445801419556908978388430025961914176158218336702052287157575086592853602889297686522151779808717605002345638911546324376156293275628082279315537901149927673536066907592657168878388368433746371696977570276880941339696426812538880537058649736675341437317438652678375507353861728638233899662708057483533546169421613650233276752689718587548422362779063568346886785967861629203819579144536874313794809254986342109473568968551014756177346768026485763799582352675327256532666210794802620644646625162583809591154997750813366300544055432450952070800374836539245766022762012893224028800773372464209584144486790148625296979190342856967854854961008486712678105362295702695073775910554344530100960485476869337615247563383129013709374288423823913062009932850403353056376156563210776611580747639193207504769558039185479110485483694659406636927399628483040757402677937048705063411516106310729162268666302914702900568731062209404749195274019597099244620847464761716209814588076965742711774427467180429959103417108516024005587152553665491487713480831127099380171697316561497860832115542613439302530861713454982580508279896336068020830139392164226672692558728806897625898836922488391143875488231587946284368222255311651002892800059778238717819717686868849853942372302702974846312132900517881409056589675244891083918821661628476355952027148322937885916159871746083645968637392625157981285335455192817138869993517628149214029128343037132584711303813743338938264811393802251297475902738333200125917201298860280064978377238713102581556930256204100094486639020595509503795572799932525458134161352308097767569398825184192573326036738563069866207654781515748880668374882244235914506404200428758562144601585983328826901655983190753108276195366303724934580239779040724961623455376817318280612719127703966395963093402368892429595588957700301567157488707623302668850264005279036598220695363925568554798489811348255236180068582241469230923599725690374656524172287674424640161136958555400755107789968344188636960278876040223572656709007878519908052577725632280200205048874405379397995778556912542631842186668316982385741389970991082776148470953705581013166181691169338506892581794385850863690765205646802556240019485149198692583449149109429093688943591947734913638425358147846861935140695844377906300747393683227415627636203798827980934494491550418189991293834537070857428576103277482086433739222281844086686235925937117564657051644087919288065102431957761947145175298473440882483502584101776757764126292430943393050713902428893851698307293638251956858229738852760843392023084043208918527576520474524118376963479702223065414382622512428149164522520780595274509106458357165441735836269735218349172183057634311189795502732859650245691776217771001475667743685499467500871215735807508549022774631353110061887749159638351718711015200747676746793712874208627979781865682736874307374668627713179421524782478255004961242884373468651332676770230252290922337110108903522561548859113218310936386687062716068850563053354233895530771444189830656194613237086315998555557033375173890761829117293911497416948762032604059466757202131045924303568386309355924737674265608708627710103849315920299895402336349276975284794935202678491344155091781728873669948842824669871633277913149095437025752957683748448385376996122742118414527909206679169483363995266560627254113369970119106745781484618234781971809218281173682456549313714235735929164585461827808279875823660497156857813393253136824382538563407913535934392029688455319916548119751536183327271078271757065577517257754884340952539761082368290869335862156596428933426611919934170299699396245141298027306501108635199063712530887061296266933169180804459988310662641680823786257293051191240391886753956114425146313260994795987609490236099735215671333473389030450739974721810139983576878460902876277558879912958221802154420310765931808971032351121253277274677643811223644910714543920662888735861666114171437246694678532633668140163428119732077111083984644556141782229417611373775942355136570066152230131645272479635538384120732129867234176010693093273705490624799913757358440508343896012117100160942933089088919294289573187770048023938567864704562737901009028083258944725964101192100491217427971813030714804089763603678810184881642256395295817747303128532062231931264583522528592998666812372045554788446631857600376979673747641336051742250324555902347552236007338601029933326127574372488192180930223219251903093157049512435996912968365886552330408320093745984999782256839821093311030397571079197262471043441228431155525345238440848328630565281087163035096473397857124667318277413959284072047283557599288765415481028346501993561419826405488904903612617970887179394255709380625860547382233801739001766806384245333753260935672944274742774363682405785608501215760013479840891780453122902506483908979961065815753209130783987174448937180805296566874955391385097435239944769657481051386716744688958729401123713839822955049458493945136588869810453043284328956923120331261502409475200074512575316101828632745738631439793186956842429821834656955890526273358411822989382741286998326349400527424260894201260734436846996757156077357382607448354057956851080486950240963710776470450972663263062901991985767681748282670765648943066149144842867423825684292004045176591352464412193492242573329007701721030076388653978363852767962082233837772767560269912323523863802915165431110631378803198795643744039304566023598692224985690547160391957540586312067150707600552779135386817426909054572583169882830322336330143925930993653685538901480429403026790486592241224824755469545807395500119125166742155625423173393886997734685974473803130157078970573975290604974119369762560466808969435987853670171549525014334963247199706333861918200840908867581071058843885764762710731198333792917969346133221332494412808838184059901166847532221172507179180752108613000672421260446490481548409323176037279937622925212756224076653557315825391078644150613367764441452216090043967502716832876934637183097886693192096317425250857404335152225069586878434365293107808494898099026807379343325507438475089027986503148410074819500766582693328308682910057599087950340743347371340830912377904394464138098145803407800952349339041658451376243287447030396149230903012231470225449646328215832904045079699034690319634934100279560748210649458050933172270284295473859855484618515545409761072742413708097680407572282464903158844178487405256142827525539360634539315222578999142237636780463737994871998444880176748422481673978194353684093252990990953926657515280553450263793841016623836998711045248532440978954999607150694652006909699774174725074463088128015428781514018483739768041036284511037461200660352051922630869400186544177135330439373086980600358983320221652507733326183077257697676978957116427620203304474771777455781184763622755311930965920237066076311531968625529099114602615071056113768139687282656092256672285687562419516556760569544250266398265207154783323398439388654459393665245968473169175711500817843485470470150118868277467104870590876279783171325155247101129816800250807570612511227815619359032526638366554284600391265171399393603254325015876199811840237462524389409634268351599914367332617018727148059607065590927833448340695018845595787412851560432786838438936344535330894627013909190522209227057241797524500017796100865440768250280938163999868675685774473685373446637238089010623103667763499432104954179107746267272799755700052803514315473498048353151813849077363319728001447521900160467250019638140356856591594707234484435490244329555554552054042921566184659139320887954542667597439218556463639297978030504240011155348809036240709118021782036629383907900002207767133615631458889157444454775090949228671138886919587666052811572654149509363858785526069921014538046447301339914127644090613008679293872162781236161463106126916368135252288175956029219802818078984867674713404692859982229739077962143149268691806016579138044494852835043959935092290349368373532239273319690802657744840700665402347098391422971457846981000550049080154501203237982666246030413614924269705610248892211064670333353402741949885218539608389137533508381955345474548538094507342254087275724402179870106633843390458902888808166703275119069177317671751101086006304695281821615894073238981489691391832521181947465348197275813131944702739232116295828788984805384717040927914992914067816344312961229431319926199406249970375035063661925228344465565649005796885106826286874776299541231234795049113456614049386678183177930772457555680163559915379484661254589668114795635275005878492402900397859768142288166179775330983305291353791033673514584577514902020651960056358226772186648853033528367902981588251131234087639529972681490832009867999519143287762428640233961229014150920526193436421166852433584417233866466828429487461092908175483734284789016353221662704574340506606285825161209961153182287489250120637689306287443333220887202911871239801081983735136792221178762743793488216315236966728971335594668211518236224712044829869787661357331842687832522809567447037179008710090554731744802833383364233701564747051946364931858701248885573225504767177176816970657704310350842128790252511206593932452723058924948192961525677539858826600703438534412617375545634009574681278989363604648885799518725605267262638619619471601602775933030559288811640964874861864036990977620481153474316980252283531855012047109899979290484520831833353081006936323590735585515879410538210391341720935330817589273184655922188426049353107798452126605524336997304115725257971312066190827827179335540183280487142340682107963906933705744161553982043316946485395802656491577960785852873931964400227204009654746796682412091600928049899332870799326375983771353479791294556049956356135139699580356226415040110911036849675630540397453430813704121623262261936018786841294271362601781669004849627281290181677241964211605110390393798453555096596340584922569451704146677190799433763413426395148151928679774688466104479493339881791673641864909808249432716742931649737469681009921933925796079713060998289458525143955441446389634006598952280908035974304705885480813832920187441899251117776092131824227038854415392574548607424943043804596780913515944937255945322049495645619603276626408835965789497808613181899588838004179754951295953190331991671163492968280370673490687858870883476092265344712640495583992687744318707322365386415779930331244566595003609380561986119381467909827124287969247378371034002658179633755229279669509009337873117735967368326902886129483431740984326186384021181007322886967428750345983165891252372621417258570597086329067338289473463565737958184935083774580026127227149216658273423099617166925624049189704159250642492638574039256375211211053302995243588993481813867399255351854231177950660535635464264939251851864036599705995972664417138120055390782999346652453978221030611967522897550948570771253441108832661767642004090517045238692960117208666604406284823099415253877201093553528286945079863801197980850493322080072335956447074054716990402883256564385808298560712361448975168854913385103860677396361900152517904339304698140274213445766065852533795450853102591331041863172394605358024637405739876682946711988554881426499508351167786068595447794760132560338434280334873671507652367103890164382705994568496679874097560240762811716130619877663375106530683888177201882662800351921742361231065744432516357457317891707030153157701577486147235420330078260787542274352013788487514601273222587992356405997198536434722557516082963026248397237739073059360361924652241661518602969412426830043885997884042208473099870500462658966514273815826564490769849607717274199398056305220736064080921177681279104269889708369862091534218748157286026451062819629494687936837419390982433710997141423869174699000432869084636723652057447968559379176985191595696021494753096785188543652175336425311172212449145524578213214707716634670874219559812658951105017071950894257667194829337279323774178810297316590068647039438921091389466595286239448022202082962631206037504293656246988987880393547697047312600649275885172025251242152835974846664033034780232470015322782504991363413110432595747202883766602450528758643086856328287201556231276119290216330184077066871821852441034279336318396681454100316182053359736858579573186331701547372284454800074173352856927971101275839072886959655871380206270852993607965417403267510263212462219182872929144746170253898550898797791964725696590824749240240955600800132864871658052307063273095872203163846939316025510062035798455908560399584720777962430079328893798532756664639063559521865287298295142909090617392443753797723619550263395971687238598771220667574068720775598829546448800282786547433442611656575107174051531523025227691423821375622021908114134727675040420998960373391501093598184432941451287216617072317004522509822094167801730347684166415694406924876274704096218076695583675041675488010377142134407321917863496804939633286503081742485198441739950730631444130600275675150834492318059418232558803683739143753853981116628435804286707932433149969039028407906785054071499125687728701589895330644662324455265155388008366671838436427597954040352176915077560474520375789902552263936981747042559426538407861229685560411483459183956410782666392836672497270125522329195516754215750496479195043228714411190233558715743485103427046445676300460837816458366764865052321054661052739209309923479867114892371299367301438664973887128743806250661488606815171629275643262829298337991875833143477136686376213612300660290001062520410179310480433679641732938354822222043722632062652092700429763355270739198744212771909115495238692117049978052219230182505380993843389852426675750859164887391181438432840990222239762639064202570916501347190896944727002690156388390242698521485669367119333139153542688871780056391354195085071063024374568009723238505476234391085222293917056144003960286192485635075215913594332374901690507187832807547905760968560973974674038449099423540129130375361167230727334321253010765562645913648700893314022934264364744706164311818819825587229750507753363924433813691607181154447012732834227763998495225272155689566727269168642536217305944141039815819129432736316570728999133347468584229896024766521096373915720583839481297136362438720491012036493656285057169486488041108713298666057949433311377123567832313313017598616574706931059686049592152325655545865202874894897986347741458602852164303643711353510322115670105989424169958433707416519541836314511310599484694031460097249884904291594129772837026946781194921762084417212312673014304462617151684008491050260789689202912716851971383363602373897324114357060966454955783697654160279210775200935134570389773049586121460473019810862245924843610346370021175353601366597456655267163780732473485264225201981934720871940136877518670433852285316532048569518243388098455298719865674574503107853540894973139663302174685869056527009581410016440286597575389052052789406378234918811867029465892867781733770420807657899705234227213025306062987117919505588836863369888261046390064046195582201627856257704588324364993220580380852911994439762304004328404949237450159268976309331201645922821495853600497393678834458634567887934900726375919704096778809005485741200549608171474990178483380696917621034952622562203464726713862486977364021892335634571723827762788294906187147392374424412282591919622618066540123085655276533652812195625372372599594373162664070976406498701016760131068259050488154141295795437441883739292321707831919982904078760930693433663929558759796761573491729953896708762575779820077105278281781914450627189214694134981736817434415450588230803459549753527128956839539343291488638113829951197090616653324320566319610415465160916008942830179973079064602572861535362900161750529411799474158665623907733912968813327003965312241498845249938272712990145096538063599938139143083639220550900880549670377503209369435076885910816495326086232479357482365076172689022060118434967465551518512031994040032823186498537526571980379117319995323005593654417955097239192759787436421023280810471092539532859403402371857735842723968913548821990394954153318781643573394224393807877719843461061319154265371241756833294675504395665504428396381347353081452301913970233280465868899584452799706134534063903239604327081912499777184983589025642786355799668666234884444345972075688786280900244928193593292625745374100157569377079023905264624904575028154536038666650741719596478943430812173044420335581052382393569620900149646358777750422146584752508162896872467690751228334852059440836125455597391120353143144174257330914517153688922703443154504129465744510747982374683684994332251885951328498054784049673278096600119738169344825113330044768004368665428016012919887932420340349037684161850458193850835564467752118373550151302926457606937856383911459871140444008170668806245985629136904490742988838203707518849058239575129330948191725783506815050665646052951781559926131069422612652888597940058586023106774706467507461474430269064598144954553612680223882420318696353152114208853820668398484035210340296623476614148021373776821022260090270469873559530217712669836786712368263499938135358005171742090448397161753311564620385629532889514429937339788118632927954375623958714335341856093066293184592302359134427718670858673441242501187919456487832859639636690274468814652030414134633328056340433694918705235668104183830517623809999512619403389259296770535469552704486262449920573380383553271358366551942376115298543900174452693498479116155240168755022558343215976638533115190489837134668097858839868946302133357189029322207694216882593548839488511150563595332105650798127760862071539229103392662192993069273860417497176169858480381993747642134914303113228939920008643581573212893583432485023406436622313040811743481287070315936321941526027984433925028530626743493787940594817627419157657811667318076019432930785793608802693360344622562346811932056781020910350218085682353738658496385309302084254709983630492516521507906925663143250792181357780113874862751826786191050331139712864448323434678091394920939079211010973918253373960755587483911054536791491518978583274460003787936003475693025411228662874621243749350396559864663862277245452138446112707195879433949396416825953674501480639987447226302632348177931266387425745206695572807690997498218689965120063071759536209333649872668339290342956648065406074655641682516340356706993280420909688030506095261863818459156743931390268177843729943005006096348743658678789109283748851778433722435322190611298753754568733106692055530032102797109281061918882053263822384296194299089094333446723058043073865426782231341740910118606499268819975619446234727229110365592739747629975741631971641461941468252184645514207129366178880048066645236628999683914088432445796272367146775312618161316956224466965672891872992026152393025845888010907264887289160025933104600861856940791173672555869510820918671794866900853298121953773692686278043565811358452944627043771003153568472644528350185795090197670534035147883106217519802819932475861757980483279163669890278765251316740563588637385586722130600083462695696503729702740629456932727479358319440748279215230985256925415308498776436668172368123102242259456037882372839001625624972818149254880668483885050862891984649552446091615826860889817216710151169818862895562302119345344048870550727848455715308238967658152478036683198244189142515528514148046945146564419909412994511935990349903150817328989644157447985087574818149303560339026268159512640784634139421214596982016356290783670192515483429188123520727086987687711789660246721899406018422731180950465443483210270711228515231164818686532221461722437387873126252153129367895672925974228211986936985495401572409174984658872753294546668388139415133128286586382628622989663991692416409652603613127910934509752788524588912376701472333990768063909347564312920312992651217552442975125591177484761549850236617941355575276887997667157684202898702357374773068691932785056735745975603004083479274320794651584670279230523464466450639603248131351548106911344542014380483356749731232525657131701836297806900701574623380658099874204365170342803052723759205870788247800317630059697534415533067308944838163896109072032543397538455927272870306167102267856138898418406268530872276542837687357217921250173002081310757942540195069064806320424626219770695008059160816814496735928772805020160457375012252687596287395882342352790136526040416436645735203918368151505473261153993903366613942233523347920746812123402768395090431921012007757062604837276305675025820470769557740525402392710867087144955254340988694200726078207167598348624578432499147666404854328816163049261186467849042122069773731908309341553261196493601504103634971333908711857842253718717867683008188881141078447563752630641972098984137501540062216867930829680671101428637450908569419748259580603712739688235830321784121781061441210554360901124191065435069295003794392589773193512226226481506961079731661713333489839599508949427437459009909827907531300887162247273901947215237670038116934146622126601808011492544760159260861332549524109216590875348762350289681384538343578430740177355799678443134032914423935337984186097583219062516266188092623168328509303702196112467161131945086657624011098031805166657458635487368266505185929254241821329959748593223682580446906766339498228310110744658529727556947535473378324656770571930856665930572586594126946749473352764077057513214277580152497400955321869233029528916369023809521936058916572842163987834808775879641744605884621838754592780389653966732510359599152653981922743855101438774479951115064444298664854785779512258563984815688946252206314205914306662556777700408016988932092898097255735565361738394870465837592261444721137758772958417847136932669627556118396499907061278972364622253001509213033789790447896247322565531594942801858529936177451791759948774048822847085243972485924549247246415872540660769763455338310871744592969028226883385610251075410261166191317497907404705770337470534057978030389043899349619200575576443736210816148879277400474689116038254215276231928352480316229018778838930625370338657176007210326070085580002957297056018710160032924254073040778184554678077266679002328516006387655533705106530679799241268609216407081615101174758706206447897584924029940981097965937491551757644170136561889722465774770323432255719613501572207829942407612904317321893092701558342821953597451667072362909739832487824930062552889628499062418716462550820532351193954087696832828929511375835012983342422588696683894462541432782162951790935014802822215184161432634132762655206414178423030327127648713708288685543970623411728509502165845770641991840134307041336088622568544123855572147383079012667027831923034701993373762890555272454367768945493177391610513435795134600088789622923006770844395592843751778041121526325601958201462103705048012279581958062817481741017479992813459507479859138316195030094895217163142615695844410903430236960643087894261881003099460808007453047759011908341474276988120698369575347441813785997023612288919509167034336973088067650156028329659285920623563968171795659653767679205915685477405161892399780105449813908884607776391787233527510173273646959263637884274034097892606898080387545865621928131286906898360024993898535962378468364381466969616521378966567918978961505503699073862948270793718119609241601603725997797883731572592858074639622178423109183567062300836016561012348908502543609811001707549099555411501677898416758444075855765276154244413813560198824209624840758882144173272236442402511804148005498138209377024361196606270012027915408838781997918633789813891095845426197953604100656972000522143617956379359913031701878054028447994907378414849090810942758716058883853537666541386217469510203381479085456091545816851637617004988163151568607892703121369744034029539191451351497560496601156353521172600541759886111452227421588049059820199674053875093664167531723792880675820650399833438306632005694988692241239783158653005369096645430654059369377639049866976508798361852397033010552136861305889217359216375285463903913062757799754788695064402660661943038850406340545930228935780711435628315674113984438022119077988464905222846432841682786483659064818826635625510301605569625639100725268157945479557703235426151117041444921610460401087002954706918337764478630111285439939810906144449036828564199568347969999688386489027954163925237739316529153567326639803059700704319062423169192027052147222126445031620395396216530858365041813996581347406338348090722025625578797158792436878351200239931026827242821177160862116906474626784548917808112799271820528806663782353396716550624800229202719402024972047729164992084176676639286641540904927405760824987579945669364964675646175750929965045239865015856491591404194930529275877475269988246758515257684903456672107236325532369377503745326458349026615860680100112745796326125756688590915992388128800068797914996275916861173775508690174987672416531993953491075205708089809160884562733550608723552590580256282564099845494012185305222544862608551928498623454094628193954668708533723217650871766932357761689145342483757682548336815136787586206121824098043505790608473368036687737398793272495557807078350860856478787853580672674959578548160044534566325937311472345779688276300299381511842731792769811864168368391195158822312984611006077691595407124366718228037450556814743406482999956491958442178201742955685064367768291125382156221884393114159656685777644360350522114586020013633084404883320931043337710705292963322777309546886542286798241178021949488328975477460158327195263033695833296928242943034431165724715088891424904389119806980070413107822261830531459194174399612998415386476831057193593297355590760786311396842057016828154051010876495251851674255146906774758845421273132813902537856381600801772617067040602849112000366538038354006772497160016401839317557629518739522614216805139563184990726644177666589682278240554023682684629283785464759813144941522656417777634550697834043691019148429733649982850916283908777972936240346956534383917994583934762406193684452709471121273639845322233732356828688798081157812583791948013522722797668969523607459160288737741657897502503645414647347184766234082296654494628510970351995721275363021439239803042039105368572444886012739607348063937110352963483976775084168957083817310696799539798804086719621594423054317629573120539614367076241149034951381633815786018269414511219686935074022204413786632554770199386556743363597696719658853866174943896429484927204285788052768346522642014992878276778067652514244715911107367984853511885865014735418438863700321720204458625655735829501183746845448002000842740376273457857547240640388275031585376826938082682986809205612784483959606733847062384838797446194939301979910205285448296868435993997594420921416843528392859079440434813918516946838374630877196551301173234467827950097004682920363256525504152462571411108838488492881009569374566949178964315908116704547753762311699029526947548416642498511434050823026728527840032671524152413393495082563190103013175205807370407238119198092347771625626056289017748317304325445481993031666842775652796405817890930032622776002199765484213574955442578629578180365731524377142515757460119416171852794782630461125250293451727897436814682858990284032999383067952726402274921442034992890167770177805509385289580074647708426461864732781467014454030211218935556178398769304859903855634966423260937609092731033283928652211755326658611155729507949888396501465880036774788245774804132488565070063941337117074294675046396739927028441729190491344085960751949750658760903808695717668014069985888057964329057787564422768059820267882748272892129950649736566444799297336192186184849550019302040986125923001149204187570891120017666213278775958779496715926581174177552452266134161113501689450244946473362355718943480998691069866254066237631052262367586212704213100851261778597896457034976073565003921235473674850689818195700059091513665321402365532375957778858302370641048693023401441634100025325688184652035110021595901289688155685713318339967986761345870680113639186693362046861753629933727733478683775843704374599735269167713974692009828182466709209817513356313012050496344348636526788789867648732851567573291517877468103861412673593590114084150635230535232179569098758673744869150979786612887134421054761233370156424915056943058151500207647344733403836409529901895038282259437194294444960221638919796594379784576597602480359511926130041732608490671594641894215584861220169617460951329911950852388187224756148615404321151489522031795415031525476500857611929187889582648332808361353419830861955677194107966795301842957509820715260314774884116657608560387712118311964783800871869498007600232731987562521724507153340569135239240318215862487464073110103224505206882738229919902032567516231383477066043855250149427658418986729115040434402249210169704866918733762855228491821544309219708548776425598254707760075100499263808338137972378370502575410796249438242461145004308980868029026777100341052454055430377394262312488461257014125184202748307118761210468820020083523859770463269444665187602629190198232989698465342459670584923960581516853006164128083139783397461661653571554509807149532061768249025765926366538400399196172855889227415303753359836495890098780938410481601754991061646634840095084734764069706141545288546243703908504316308346296235911056749184303739207033272865671204034416589833506836845706511350464810340852800915231864126730692626440300026591336827295094750522133022284677613142254654540458594579932933170016542502915805941075673150800597590038619051098332637273714458123492717534661966725992762290559036233209544685126910593197840957761007363744231086976872284119852134515955279324251596316919918110650314192353327453317716423619275838246098508941260917930395708289893592374196683779446853920831270884989849316673778217184689362168237018826269363909729106272643291402333046541979145805498224425328145338629400907139548218463787593169423908004076861152981170975359744530384465318806796844844243271050400440006653467706679563469861589099809365673617836724511277680584669601131584932897550932340113715554104073738847035392484770089780082059671782709713462638297499501329217549033812681086108571304975467306136858131864772473087698002381500967639896976772692352481618176365403024825480604188957854165569408651523950341148645214082357804086096414437467020252110890683866239437508233363248536722686671851613030878394942054120630634827336353268411761308389504040741049385209211867265409779182531525971328151106223213758922092130054491663369342684364099284567200981920729945208519708790876328510570598664263192365596778654693258358620974823629690668192129582359603145158293165421428291753124496674190178044103045008668924811582164202215029374118201697397519256151850207383915373627306528232872863477725571926201216060541385171627479074746806845587963911928021973650560573605300264960964661820959180500213344034683832308623410721134461139148902421817154382487739705738122649310719208203954661995778603973999416815463586016382730928393478087190451840219384584932742613943868642866124348203091580313589760509150657446016453890026728442776992905173440474893104552354186223748768597673040496663321635792290400123373746528532479046547678094448226291634914162335250465866555022216979056437188456398541849208640980812661765623758688213391347934577807247146784444702158914229804763636894618188510444660401338110567226126370642012179428196315992059067075197677190995882004131587172936071787237876750663827248338813888323484072946704906380030027684556762320116686642596490159636278937347384559544197489237007332296911499604398658799625660584696740211257182374195137729575490792490075248681890890856775066341284137777084436892512117899377397484065368636359037650824943148633614313029080552006389334320819947377918652871343129216723440844863530066757602619474571132153614211435756707973637567374677450468708475358382474015612199410724521757021033647472254786694955214594290116340377575366791076193931875132694158412291905312713281013991009890179671211553002838000223518802309099226069178083622754452664972802567227970164904300962572863326558867630238362773708206428011112768361205418326878264958835695080998222841205691448719564555664913173308406663596778368521026924369674179991813759493772450547620977898253061043285390667997826741469112044892830906626024954978594636205025420638093439706608690375610364603524220934605538617881698620575034930889735594519082037188559356680979919088480067697681985373113557735160480277290697789687721233283651009927416211577958010417448207814025591840523394141839779215598106690355916308842432978611068702251949024896200989382852267863571239522364907813173761357048208624297445207497526171025821227919482748674555669959984826240901084971722384017530430478062342465044243937679661222193352064272622336713893703019942769949672825554625663358144669877285570244689646613250314430316854687168428422495014821534082148722754063011681249859510899254118246567416718207271830024947778599825848104979171416163970179601562566657265383979667517139435502782447152234303047365096392747993595776683440862699367121586577420470689410255624123571725034839482366569197611676499981293082629786153903452094283108863473666263780072194920229043694573622761170170143513405618138405346454537991089195071716408578905549032270209276896472738708448512076319444043010271311881943181784061878724152162273719514387230528514348066120665325447560113863748898179513138589637512536532107769417820864199254545514413009442309818072024361550452246211492140523680388160602382315056699038473301135142262031049314733063484950117613158317906844861273912579104156410285393876705935590099629517156388276238494218071018826342321574504744778221128363192803005506760453815211377436691078284688812106055905796402581696413299792648251091515004106988524907023833028107052987385451201801412531666518662930591959939497618369325225394282076503185514446119856935685718226724798224968073454327487427353342572186133135724915229980436172029195219147520621950380279397232056139009531293724483041925392313988832327995259796300816933768490163908375664770791257415914909031625483327594584179003817385041880666823329885278306979987798939376942304495526722008035524595706127291013619228465229713993101100476420944392674128965673082472868750049198338821073835061037950785153009833156606979334689012467758058887095033628345105061168825813408126373462492530700900372123610700426072339450685626486052217502558924711682624206030005364035415729829491145621552198295617272570015862397945555499723164488516720678238986265465951567090906935652300809871407653446030335368591655642312610553926217588126275657399517133249284819185944678480529390021060366577792690178917291338377003259395479665312687079887099410195138474212717853162469465135804048306706057244612258974725748061540129885273826935307667394943238625867221501045293272431702708274149047326060037934704194313801130512480178748130571288638064287721067037528706505097136233863706883451805636660299205233646119792873971734161260204554798295219281511684655110714223006180268690985047078329535699821802988174650713834861473969823319802893993646575314950555924631947883380679725858364281127348845579403420643820981129852595881453522458983302865405387097006773385755035820506974750901019903259805275619093562721267112984522218401545261232641239410327057531631172151773255281500822154652419456729915510232356873227995058240667829507126382252261235990877309731213035718452993231980244291787883845869854729508071666282327165859744643334704517729167946423528746177143218659613672546840581964102247385677574926639940659656599190340504750134058070321781741393407535504042008812281933241091103345241793208150378927657902980568155596188931671416698788525845885210824282868502106682087794720859135838263082075568718992350193467564560136840707272389645146461801309008531373139596173244440234075048302733748354939342941430921063920711575487556023393718372216162892437500568373891848696428995985934588411890276782622232532088906212053201653777526485643311029960276098592000148735272476831488425846589029307742793620266119628650860148802054084755196620401956847828876799384276823471712438453760489651273878962701809009045504029165337699013785904783743263895601639086886403706324991031553462700180545815740330298737623691042549769012893417803020197045112714396236151596547538501526269017384534688628637425035340885326562572606846985306749091073375037937410718869738052779800736687674708047214993353179390490362001739403656384962648219281488152294162562340378987488353307382685157288981479398432569552844276660592077207234419064377233623485950537483174375554500430613190042173426359828100803350634017186106321993719791156945803779355904929963505002990867609122716814444735586266744409546176181473844536853650692011102384133628979630887811505385375050146852261759565487236883455137955664154549793595565395587806719143451226742606935427200490645017154787755963639009321137704919035583548725223821728226461757204130485111492632531036013356585373991145064212264961866513982289941035706882776999489741887242191290337620684592957760858131620107825545041554898692489876310085426980350458473445468783540304951087677280697533462593942526094780171650999002328893338973094868859689996894550632999126398292549427110971374485538984077272997082575653130615225593307978412141861087465757902787648774061699724729114499182324935355299544648847506008720636565681127815007611773429754062694952241748653666321018513356591418457632756417899013173585530414166936223072259553257389324617425795444582497791968650920214949893883239616751585903697153707635387831956163112970200851223220586451927084276645618929398244886138821823844035835633792454873571400719232219496077729374908300599379189254895578708588963539961048714967463761901523171987281929538557007948805886652262075588233483730854422839471472029530317509224233289912427044429041469773575813311602756364923915723873312979292927398203744336433877180579452454008476654470484319515104186859341890119603868374718476790524445518290715379349670499956451187873806742696251787102444842563186315439794446347797914232539477116638009954888735071036909509110983938056130908936734788799025553389134977181021418817591379499849080823722569587113577115311383472086203551688511173194223056081117130823058046471327462297845952119597918089276580556507741303906761254586691311673942134934458127615872609333171685134410998224204094718887323968964048823928442381219577244007107885302971595840262060472689864710026652899836004908324918072140730948011834796690641878802763339922329613604643214764015659658025151185766969472049236552852552669714913660044060482258702099448906005556346733519487472583641929307739148049408758561481108882609702518558850508447032092720724069123363995962870609562324751753419336145849998780410659275086649759526294797805131443821055935513775637715902615021827183131350085727977791400743147720138561118341959011816614737486195343833039645834731611762437202219365258356977936489783054895293513343598840254437407164082147761868405937366960054581517230997584668326500763126217051224910717265934596813942605456204633160439136616871436029295967480400906216196895231049449513150091892159512516021818943478499430068471118011379956301202592633597133184011642462833416546421332788213371606865482698232912233235213330632325895286671745585286591510978728582082402359197539059330602853534592028774907016142838259054105153538750171678882497260332969635143591168888229311384739442074051798753612125031404964658996640196459636721839651313298567707289862335155081889479102801454256912397523916958290142624731875424811056135561415723085251626678852110628259445730552315167573597010622875921211322124234601214937487713115328332098052374093266178378290426743828659285492830761080408215996460199707861870513305815898980084469297481017384745724098842992496211621732544536093923066375754925896368210613671851228539459640598610802596809372853693095807222875506850802459189928285500856490276934749035918117128918961902878265633805635554497185854199795390710064079245648661383745068965706380347604699651587171025724988195975855146436783688782789671888479105546817583247416204376328930618556262455287845006356427551140611441691245733370052749707159574871162563391288284220791947190875871145588497311699581961722093408324607480596470808723920643899165647063680822001484359240549920701041188791175556650108166545434849955065969746943911836160701679482496635231636356091038138945655370168116527802641401690114885159112568247947053589964484621781559632127130995116507969592887184350993292736410183378828912558506870996592876600716506491586931640100816266134645881122479041884748412781752254697243344435223662913525702942260307803819065044161748078431341998708039924556215313794466397274638501816545362655679233504078427544064456223240778758730410628239591876601915079232708281813401206806732363244117898794497840043940759527177323006425249044060884228899164873663875383713734655053982430743662592574510291932816576000715817906472278033831129339879622891094640471440012158933601372660539050483361924982175317185586930617019095792707798591415875869688517196848022848327495204847006723092996978706578319067050447945661761001660441457407338620819109671841275310332962131221481731615937481675458908326844880121875021492230577947191112014300827489276150339997016852554272519848334461700396840042126063839836468314139516910369562927076452907964015906969327650943111331792705208787219437423094590585560136920758134128338465955757054736550196640782733515980301985436568666540677564226182892473157917539678227017252118348297489670108641593168083017180657064597169012762632275737852726510944923592903972775109187828233890830941021597542985070166849860832145470291276706919179380031075383187026298131929658436638586186678546787868723125620573173580673794536266892071298863963220041954087182114395878895767794488555856003756439442396249503885455553569727039881901060256374697332196184095854856848729667809676994212666952324199466395879378245073874719115144489107805732687438354815776341415131533660858426282631344127772437922176083331845754394801513458128353576180376968215887865564644417457233705778046803004878175800591883469562051548170478865206271617394689623043745923775616658430602787647607629982980369789644485112046407707165439864000662571914272325406165762409660055809956055891082599336023584351120537068219334776637914873443226548363484844957940909963028426935100501729998162585123769783591300202842626188254483260934110242364279813545728836555981677182954308347520793796942354311425796290969262578556441791683175248184225283573720999903941660018926753943296548135320375369628518847093480094449659845991359889235937996748177241206140863027538898545488406837368377997582409486478575474963280915533172630206072949896828284902277654835452072566898923249414599685633964897570797570536766541460661286380141409059940390707436553223048805854607339805602319047966441804991423323535818919388320853149675343852443560871308528171463218183146043707072927385732712273155073904541994208707498857938533892159422303656642864009811425918425827764127780680160130488640005661244016724997116227756039852187718339077980507369681091227163851161470258229745689087068732102066482375757920096824804640240903208621653691286801861942723684810676669781368756518624884488230005711362886624275875798248006374017274349205713972325540778824903786992894325780594671242482617678563999000292417878360376848169532856244036376179923495902980525005488566133002973797485442779010231085628742832665898716782274006068886041178004802972094549258955774397738124236215278387706693061486353347994341802743231523227525819618978734819611238718166692112390841311652643218369371346514386602919291516142425353707867049969670042069141714023944941201322186313265929374762576055905316683759736461929728846506309754089195349765184923925123127600387707287147139888588005193001895775574257525812712699268943997629496253553217039776957892031446300697959268586635027364642746922575869807849849421381587566948121911401535788355186362638202382619444606418339248571194657567376658515117825915451962436889763543930646843641041901204529478362217249093013078514424159114234109578680180688769671300628932385588359631682364926713113052720699247840677442768273314471320312081763749582200808867176802707126226092201270423128253510244135196093112150702963828477106354271630373729670606527195057084492516852786610583685680339545029680523099520022640649566102272143642208333117819555262255012077840329520820957182693734215883072601505792106946327716045782952257796002238059443749460854667859569997078379137426131007900545880692424371961685346489860072365381098315322945820234665074936610627695784932812778134663835812269400493680262421381876718245606076781959784146589716269641413490902600871686546077728938568165543535985110546823695170680463335909496848457557044969601359315767354343072788104461615327873931508255293922219633928571708404055985401170023886961931832706242574498192098369841798231593564898315156489255287777884864165462027199711133583703685415427575652887757201610519191298297254730965137999272799739577765394261671824962236277590229461280025428526495233764219585280480947924131877838286061817686001821775432992842030498573851792324862350097004967444315519702465849573778207410501193604204855560711125604741370723989724968969685364546035125624295042723810941151189017590604024736118993483680814718511874963884632731101942644529665435496825782402972297095711337462144845998139874825337154272580015587708986907239271785018243489739715557050588686588549056588834161095849876091047210996593537344061423760510837076146139819599699622332978997644410750234697641582794481862661914038957878022425301476607435725191561554097278742562478823951592735944312409694414961009035158073158233547025932018211681518477204928506119705280865066978953992286090569144889815422488932221318765575884192985767997235513724875217120460005642582731045997233073876621694978113785582062495801818796330572752161354153904115517601217820245673549149755216899863588813823179481066037011314814061388475865448334126138739408386527827273214106931374802658007892388828368352824364542577624530674514250464531326028750129703680923658864041978877888232906380536826458952452025585167374283040867237913941790459250602692137931069787357195941607366064302629919857097213244616697759538541126181077210319063293655463901351907645796362390823190046647910189456317862149230888453165134974808293383190853349525178911374154493647213668957642316668396803171837177211501268935721564570609243578297275407852846951683313881750076658763519388344621193794163354005912733332715472825869582439355514919914040254785291227004116686575722708647413330509447328027732016111756183347941938885331842061939175329075148795097195160066265517828230051319758678026066637228530564188570830327406054712647064094351827644579871318409699332863473960554144018383504107973072983810133157707595126149602884157465038826496944506907339591787943491655484644089716308716950901634495582603587393094679717702014967707413944011012361409455708345271785811456710494168426269487804959548551482240251128029303818652133062005931771032019769288010550488589092856775485083909856000373492798631077305626038863140285418694609648819382854252871213229855089860513696166210732994154830497472224085856601230346371013747495541655355760520554863063500799710454461051551907440872137324278487831299498100823173305683643198958833032936892890629785853414426660039332223212287842695404246323935718858027963731465274827706419690817046962651099599414524724685793639345968092882114656965440097042702144232611484570790287948909276493666061614235798268893651955721501729515695213722989344442556999978919246886338731891751126142441860364422073386538390338316001438766081244331302152871696493726703586565235922258145438857099841121317643130962126881808136635965064846543708043792768571518785236797804847279960672794288240377377448881528030701172397769820986453653905380480038967610984185303803401947059884096528936586854149784453436665238985466474981841095013114332352490672371920785628747537860007572617762285210007788271483744894401944153497337072729018588601689459928903216993715451977016195259080319885226224151572924387242877027013088031955077934955350664029076912411602966048130194978461544075939831995868845347647649706963419178157494209969479376837436113772376355726326743651304065286086140783169437166933769878639654411510089870715904910200110934447549419853579032258652109851498672867204573077500001754851770862789836340678548452787444031100052171689281458649319067337480060274241464984668202300214251073470925227031466921380651852342334989744456520039911816478221648780624043019002828845476287390953572305483546220037927192804188092027945064713186236852065700421865476001679923539153919845484671684076987491399825337055698632112481571065307633113913618605406239491792606990505170227929260590040273104806757390474413904318913158873982080727361786426700503548879050789984106400091966937176417410653319649122309812261920834542617825953499534854694841155162284566365109343719815087405576528775892057979459669190865165805234722085642280333756974247721887651165416349383061960258681293503267344426398399846627619870936019015179347441277998313741894998057580904025256800501135470800724043128510798750009113026073269154706265645980033372843165634687326423746065186748688726786144818047336444800357859432810331639097772600737934168963336597890515979326781728367657774254398451089151448385665320410091370761411030306427473676423675571181272545633049777887659742251266019928585157533169299346662440305298979389335167557182494228595149241294520750409006371376212390245658008588329015441699281105681477120789369237377101559226541582919521612297004193739835899514846721236712134515118519152627434997128899652404541995929725423722034303067566750934143010029611866438863316711484298865434019915319125729461440499646439936829377960674412417665647113318006134152953445678575310700288932299695536893852122573911963697139866164170091802616932220675653333203604156291725442171114103864960850845822988277477241547876963674695111885995061978791231610337432047016641428214730226147895173740004075107399836624217571555883066898368934863846708079976092197805914434894236237318978296336698119865176774638641281578823860261362586804172349660993658519661952209219577998270370394038637658607385221081568503909418358181820895528615441867414826579692508231594514064854921474884449320692294027431627951508365904139245057100206892566997433429431954007579787556247535910667825126886894844741594341525451012128538481457114152352746951585544293714815801741999446507826163876321822949667471479294482336321180117885382396554392438488483919947132735854326964278179694134419225981573851685340468227549997372573685580153581850523979287193175990843713085141334642649823083816372321572393100997338853888730067737010953760478695059653050109765279509091189679899585277086881213466002181462936507772507888553782828940068863907849270232329856270852744707088218422994473560522659740316648815237940352914848242586986487386759828699778933578572464411767401738202208989368115241508731691627717373811927198677098091028349864157371824411516723334585799452454601681892789626202016041029370494241546048671503125241474470473124040162541877728948645110388134708063323122044617814577989236317478862911932352412917366666583934516023803490547021066168116784004056436964126344599296480089942057380422109171843754353849749802938577294091279207515319142073551301466268377914215339336111467130531934081176983202361566785962246831804967056573932572159380303836923156572791943921827583940359292811278272035508635696603758300096828455874800406068919433384915937156644561253931597964536894888923126988609909332523766723904756410647573585649278076524539858244799051012984504173785327213344990851764089808297982982260266191647208047098369185967135531204314443643197313002027925074648700045967797588382701177993230270771469154930451784975785723281342536014194996641950220437941643255039232119123106616349023919526143139721457270561059671278438248451795765876199359451732485207105637083705284050211600543871734855354762666556482396187346769550117818954465904171650782167660602642251912392462662775143152193829073157983859992152729678521696267665284133273070427670313880408000262920029133923757600710135332883473333663576622142741384033003052835679683751955016629283787324268820772868324402853351263451894783643258528453809195230012007008727127116290530188970570400664005694478277410561598886675224812287438364833703260715344038580280846816715727569591789716810474933960899325145059929695547456079004487046011566703742216631927439140664118049647439337905393353967430135316937543211791131951498000065121910469684858007138440275376345118680133765727619605786308537129757704260882946250371122566432543776630756468525336540507732319169934832180349024001929038123327386277160963797787583905063619142256167292847579181187146713308850021910632040259158459763534012464609609408014867264682348937830071895915394820810114994937931623942971144260030838258060610887090845435852839447217480188237731882142626888627754341841294036943373791508368381789803088615738733460627988142927213433705446474701522616740427177161173280626819982275388678256068402206732471861411843550850891761761978137838203221948344877897195447464409618861173538938859618645750223151322995553144843988649132360725568253965728332960802794752706851575620516299502275603596801307245422793789599135771981342016756442046464508893635391145906675567787353156657284085209626568737376374797434053856428393638448460540411863959775897941264979767523006688745055177232263298170729866201893364816316352977826249520792587360276256793967308379340506869345286204578769587090997626508070341660261555281467834899060546428627606408660230254681898864692503536328814581159033767048476618098043929536946186884357538084057835044814206365171760356333150825608438219302693803954815124422583878280410006197705491218955807616481255150986534340038124664914978380308225253324979959950385504149964562756289186806412284661780485079125660710897177714860235111173208614184016946834923950775254610655789250912993170570728424500049004346465760082713194956250803620589110633838417046817406311289951487891220690282471252286913626264190204128639369433025015597270894008969100527368210695823910948357396666696444040183492430206117589858536901332381939820086692334425095177318596468610190218148825991498629097419606361729899923286385000725685375763390288716130071857528532564449924040896487759164406245795500491903841977968182916906055601701913280954189688886787676674189299432501121201901190333971971808888761882161717779312528917774212563330727609415216751929157770734508431382459293254485073530854399891386128450077074763637448973636843997483636802635123688264010790178131831723653638085411968382952321223997494301834085328624927657307480142142343715688620366335043480011909161130643849140759403173339011834316715216887074414336752436474400393546270971188223085306209357068351077777694179641088610711567440476564222383034095193388556039313656823837518155269865669600558785065431658335614818420946496594341668475668401631251149009997759660746534618834111281343060172963866305551799620269794211425996501010665315757667953109992846915718474936346769336482916618855490277285422092695766039127546935394244155605289815607113698031550064340047557379449951324645624981251149720340258445573629452665055900721535310587115843739538087927524249390626023767917886034827687893977426147138892707263200115751518337857335337431218274479179588320446554397189130445944303311041666062713825046242317761034933004284532714450766098069639594984127000626975122011443019405907908732902745040991587240177925463488655758290173498177286506313695079419452244035003776782444269816647256138088495981015586432182809719634150464596115132872994337302749676059873349265284323168993897575215426741607932081011350761137935561470555625017187332424939824339871447212747956177599549173457449981348537461570980525207605278731438883722633115275261160115561262737433960360184767459045345964865097721065144487765495591586953498020093912874052472153599467916448734392676384032421066167476353041922485388461831552563838108241573486151567560590654449569927016743516243723955596317019590180596093476785447910912702830036955214929959236823935545477947685542663799811423034494373424679917819412726578806200052498066315511298396353556168436511181322195839777696985596795008949919446603921553065125325058716250633479514767252005771685752591021296268140721619996188322445205559968865061161457570978832249645713521746607037466174589770575275223055668928196991410433948639172800037039070697581233564272666458385025784849691526924654592937529229595487374945809100783323672086140639401598808315893571735240226193507751403571882580618950036841170214247847141739053991374895333475537265704047891892002480343932540727719717617489602597171543370364032897327280221627041814646925737784151838982662198385627741646850107981124005116607918568968538036047366360619202901008496978365636495078286760716427961154589667837119740524640994246408403620539020159253884849709672123057665250775947264668355913050996911722314266382540784803331577525064505228513586310023481598623940641201307131768066469106754050988275404120838490992091690856108482778148984480495731729060561886643206694354653672958281472382756184549705550154035081300495656553831926889950310344809467312069572913467165298947546576913634926511483978508787212371870419534105418778125354700964720513813873604026695594529181399289026481406189832210440780764902329565899108232935625049472984388842707596947261958268257598310777199545177685254293798400946304844631294741487289605529953774664745256920053098485296162044328481292565157182347181546416544808554768880858571599640014364387310712668208516578100703330480300453825570687911223199901049819059526055971759458088434801108768428169371635025848784995674157880734581939654680303320479932841184172165826548237049745571676959470950603229272688741148136827317984833295632637561627146254416896813337762584917262057496303726123461046549850644236518245731975330119985683589446819444992962446112797456999123757439336391886062126833876475650486430383166813647338857810109048421912540758374423677477287676620138756929814863459151947231254589769872822208692077620230482043261443144918457417150552057696570068522886241903558965467913948943914523217899202231161105686441299510527479276082683824377412876145915148881969182779937797204479124941678194241496505206696814564314212959265929911970579229790740575171180373447674750264033696974970554515010335083235867384975859460303982547049963887018712423550593792490900811726473873645674728032625723612794383165002287086014687517647418274377227195302354488595423250320269294590096503672934649162290453798615844142931340455907064063119679729497714047681815534222129240104275237237639259993576660372261489918090873886076089599285045590500642118557774070401757771869979069912080262739531587835922955649419580010899075403112563246907188700348033722030239939481353344265162537795412986352529058126662381365216189425701339760916058289144436156976645129053839489815317021824734448122664202092209295917712834009533253008197631655733567292413382570437138997973644252096380791033003028295038230270363908533662594162336174708718950931097066258600707218819622901439294992656308013509697833266533336409576086577952571375804215248907326873142020079526170358002702611045857081019898744779352908641299598393160916412088422557187529383372295545687928813171753954984192250560890668052544390499691624612110325656289789273675450846382408971548283506854403821268398993774923182240186386631730805309741030575383195925173443945416064069980775968517201707060253932055412287795025350818156551735120089198440169668741335497485001455143593861814581062818014400794863265309613880030571994166229930696996019492994155585251664515638812978759033940598892591892015115712966393072647778278517447394742717095882989284078984032718449618451564028669914198184676431346226339934059969891751999322765629757544822776807641111626188763296271578573657960230101551119960214038032726154926949295603308460989280192732570482688405327066968626640797196887857659965504327244947399979282323811549350050738578160189972985849659750798399334957017997775925160988468413822201955023702183174159448517654297472554840900415931510152873882883206442538119289677548509641882945023275145319146862261369550163877675586150138783801169775578559992988786079089200755775046544253968484631163767252174697233879309755106626506239280943973983722379541588596591905750217301166701284642200387273936659087870331120780751046580436919909169935550365220997092885914867797855798051023837346252611498230385245344699721198250889309624144948411919950030834587495386679763552377628504132520571686556024503887036478049887629243473461621574292728027432841194426931761529787880821900010763276028513226316779717126664098028102103906685076651667215594541437283421489144054926515645077156214463562305816686748938652631661437046368536127488183202567813620607512533685486578013136264757204188963364684849674484571870974043597557172176940445276979666115474789459545801063163789255672715428018821654842064545747255653212280457694758021836777365172518953713297875731525173842723113525064881849467231621481052985079201867138080942042235222277091060146181924628885316816267104672687094706791637054461898367129854739268432483190215799230117322463271205590059709359849293542188566859295890936807795925862303757487505560795436077044520731407285455350144449037132532749413742531610056271352049905165578015021421577911645665222508097087945545484118859849998308648151651999060333371087833985907149679120181796132205509584054463765638127874961874676189336504673373092062579870154964062312634801737148038070450720666751877527436521951704608023116989472580775252021319804398956341371987341608328897355100399655603772880409137272146151543483273627771233256746661314066737795500128387740594864027588574846494500356352148619762405003087261922520909445857726746467278110217867589362052069659120645440018387337242406170892387758141289234546092329613873616979979740156489035334162137318400506015525086336969883028736063211418218192713976178430413601211535244671430892492965135019152232917521855482987068583919232784103377340730265522548640126788740291012623162843338472880578406543144340914415308435146119585984376545566682544775949574013153329929800023241633123487494012289236767730439875433676550214553899176895126635081161012162423246755855337646997300578004248831606375857790707927894913906520263790682757870675162700299842324624916149981462638083837290251237442287369086350225629852075366433504304327502604475107059829159822141949298365474327004355306688509808243140058517755495306994262150656414745533356465146096903899984789968932475506668592542945725723108722048182926727238118430637969461205817627938229165372313771760600011529980986832359053050992251136360477143126620666487043556399478219036294520360835675508986396081464969017167464157825715521045081985141694248986895977677834650337749385352252301976569670002862900146713942348892832351119213921213362256837625769398257222187594604621826137965502575639652409337702232859341243267529723031176666682227304601016689066408058023551227695667700367873525276395358138574041948016249361592717772595555973019523425221660285658203156720552313194974382859735710709842414216237966108231131128910121473366065218292700506373479098609776865027747230130818218965665299416119646001184880535618750330759123434276760061482799920050629542498822781651070967631533289906689451001518590611866322871973495841974533702189313800462161213196858960469473537401684026599824034786306322909095354176686605437529805128810740158014402436647118856526179295705993513882583610171775363805128850990558205308651333813136993775458564107579825377732375573295828029788102683569309908606303222510650266571578742413524748733671860242196445898440917731666058017465987123809603182605498934357743725677498575092335787268381618896297836656165529188672861281331292526396969835051860352577735301387745278800907405565616084286311216745821616997699751355651787029172325587216376406791303985973707962815606420583803870717091892226152581878852465838224946696248549571331800543715214786539536775215153905885711420053272480802251476046700643868771555538575511850441948560180539826152523366724178602374718866846396469265854235778730400826319179735053985630039467215904723899748972018197815642854779557467541272717024592659554725366823819923537595301790614490777728735715973705353747375461261119102265665674601599521117164561016541127257482801283276689907968983523448775653838166868958898106524694201164937843222252547203496557656516042051046162599689308962076726299631926632165517740427825808600882013308802270524960019198598615689029522887508592458181796960514357988557892333571914296786186988734273630385737116327493828661656294244839573667320720274772211980851698901093200523072336780900472150192838162303235839682318583283101123142788615074901338464180502335678355672995050540801047758516599141989011331681521206840397104843588732530656525333462358794323996725199486935934544034565197140258841253730022484010710410920401844403884040383407579380216536555610789233395828929750900754820307517196449344243123941449249224110946103294385548666949784626973807769903706540250152826884034000059349116353662702154778514581281332388875385717194460627017898751898314221635968624833536210276008404240191814447016327931609141907600176772383799785194634073693918528940010564355458976158240336473613374486141671791722593190501611321785800885555181063333360083264779066194750217739119624366458636473169623602116472083511536892391608159827681079204157759335233151536933113061364389913170919822232121778529019139236740959704328749641320980940062303649301053015513254980313687473812016476014350367453497002999694345848159551912130004284173787724658926995085847022720768109990400823711266648110211565004658167197104212499116198396605211582562055985931771081651281633129283361783085290788279723775158654366940623095799865366553722397559392438059087115184217661595202140253787799205451488934683456830371014036658639379643961121834610842669423283570776603702849793489732199996951165561486507068474431046409635011285572226901950081071336918890605455418954873107425562981705873176706306729786174579782748281363430844793702323021853782835872833886379589467811698919638739421262758671771051210034128515884187977163864151236352164436624355959856940288615627451799438443334950841970643604037150756991781553047531692184270772470384093889884425788670314327097934423879780311511613440598935710312724655272718136253589504880776899682312873667418682510171754616675880766037211390097748036597020462506414696808936412607498763761559604569300777433063939338068480353572010172668496422910722051748700578930727271014685986997116041731555762666018179584302551170412148610789194889334231646405430562301741563028067803874922309558600925617032771803717346624143678888040578166686563067272934819688398019560152766759008268895584808520131124881185473038762917089995512034647148838826252038925105724518375329260589292129973764175192198778001467538851963922023408265294676337950258183049501195970374760996083527909171203164132463677046151979803348044496440180668672779900648888554278348049927162318754634504171670638021354624812344084680332208435660657410310816758635339838409228275620814788011132360670984088660946695447159741781419853590909943439914855558728202921184159976952068017978421042560869800672584168260798172468465915620065407579938074797794814825471001868494955868897872383018143993425306804714799549428968922641366972225282402207473875113822769657735378842218527052542802575928846268417545823492811594895670296165243998150246348719045006992110952198824772253463403173429775224103895689974114943305630989937990452002425146731004276409812318975353029038610667237145336977206328092260868096170517828508624080139588664097770307885539508941457238723003767160117260668959144373608804351361013816127687664485045256367528650876085112595955296688706283120295330504339692186939118662029015722390516089374328444967690547376255174757244443592815855321247518214876606577806274948854064748477156452808382519931948087658087041902082849177136734350612705396341352940839895025815302608411717601013248475850545946586325591284412497939724061743259739536137810650198029136783771024514537265306581869194455384551176552752820430792558074062967740300460074346498878010916706277015913582563007339880919521695298198086386839260289215244952233501865356097831691422374811596806095320062397601304203064988265339528778658834436050055180524761674240225418425841392938024640603524991881710595938135063538121858771960578129854781125775344773889422931770053868359478617678710947657096504796044120889451422233525787515445710369292993843529553371150095072903472585991287392817757161425699019348562545095642340517865263755936557470978802602011926275469540851781097252544137696686475523113665473927664817747903386793048582993732924032193985471638305663041091445161585963813009438975398203017770524250092801037118716285179698810328711386309620007101131702544495878666486371928157411561930767270708713066094900304017250196886986128173654935800820377765383868071604107389344004720749180597044126530811604686239828369330288291812571940280344036577115125107841349791216381744116366462080120510803942935299862068620388053210383618247689122737586623773639724398110749604331000521839592923235181221867193622925507890667272232178755904161787753295486687979107861989697130326138991579217953263803054318976316718550346414808201024323793820473752825110222551879361183989566135702864026880910435789858062609923445656763993604309150701503551115947011772028455046235025520164188379287506716703427312151696984468511874489575112552121806801660386442032416679261376241551031841970635216078990339494071730456615047315296824094632960544225740462411797828152706126167271902335231261217573854399855551306660138698853369555423627404296794395399177110350504233579693598669748861068351888104162409121116895399308181779510512817233934746968777944666023854070117223411458176151151390961406958071580165885588372827299220115124422905941314868161042837635240775861925121431300799102074082866359155194262807581140748525725299970923107857372085504902205611737062868298081333368648147139949781433221483595581924701406057651435906381691234793634633096740462728052618203016925066706838024842398666282562211699159352324168509856804378424580173562576715283175059141616945408289697869405586665268443307319009005493259994301450847762042450660208237616106968416654797265668330827256048621342869702693386446143181891485799342210670341213779853977826416763492755120132919133904632479744517672511085593564787080669146583922450881504854962351306593079490271551827469644292031697386360949607771162869826824033842663599553503803417992723217724451414219219666004487733494042581963090458021121896872226224500893387410674066072438343257756378221332420523281628657049564675923118266168474909147356623638861491770388985963239487592491550941863048569995752732678435399525172508872208389449128813830387783858900959332674341926048607983350179082592755568446039355486064045724225407773033051674923135888218907280602845628620879756800801531541621397806037063796784228726969034684760815552069290701793725728585517292183173479521982778520692173512000340693778680557337913183243561942771619663272554765133416233670954301087537524919078990839332724528469028449256183843032478462784667317908500959893435080312959413217214009332228843597335007599524837646759531913679792200197328964632998767376602986935047880600617518633638120754523647526569722277787251990031394364343393359956549280003308207104491632215785416874609746153689917740072810988046335889110583074989701927267975690921349790023403401322411631040756162184366151125218095915327253566599668969243622163777896902156253420470374629022094679583439402736862736600940300972323937970241309093330626585896904704413922698622559031400376682501486800684512084440001984500524729758265304913570453422589115985523188937323447532973760600831477973064232047163071801529397397440896597087514728540997301814327759635833336924109776748242191677542124796030292443496382515890902416671317019494832170498994588633594430992570857483450180478868005425082303492355508517516956694921087592516473008016925337825603901414401193031441745361959139376601551049757783978381972190869951274015064776080047042802747980702463972069748689048567216238795514283466090951155707175244140852842286112127055129751841103948876555105385387672154758612641412017768181416889595643842490095863866301115998302879856483264910101781608533308389821739744971772964604181574063580701290131292074002171621682605428900146979426918107060015338140085150095046484326831878718748935123538970298362492135342155499142308445213144957234357638478030759374647108132178275926829879667805529806607602134407215039944441613887334858202336524340553555416095963764344002404839544023680608918810776907613004908298426521184075472162785870154127924361008884816990587386117698151360704619625743252329635065354117120038009953265161939506640193725742201175333175204102808203688311709355086297103660590014536979047193013203120961283890429587747507296759022026406463265947901767436428576891602329054340256651539386707941558692666725246584784795335725608079190409407171775374154307245329571305574946715789415305819677674087636482520288237481264118609433715442061324231028330288927711575665616683757206847888659508933119891910465613448688788625517388776962979142385639096987452275455586035795152385829492718946774150081507067622437323720074144830762294683032328450330767852144478686488357350740539444312884442964881052798761810947196338088630515262681190465797629599296401484290474217795869593292145734140933584868485051634015804652774065639040415530001636000593038154904690413599515775976072310274924715827385846301756329845703046487263607576317017235776046175329846902335384668466279160962994341810810034188526535931215794163213555213212531852372186096031817694291743734079246515964608358516403651056613167356794900020996043022498265671398196279843242919151611919720280832946155512002631982199000289748474809718174949789737375332522100982549970865588271215684657244204286606676570645154858933902867920689168285597036278929416116361996841100125073730852305393531104345123585256558209726248249444677876916962505208082755768115812333985499495068346634820871016772213289451984181766065550788875935656449695395954974458904792211080667500978882424826488805350081968657325424843173386907413108655233708312543798678296634218100990546869746061588545889441266474298787068047541385368913198306232421823993961738098888200173525413372222053344657489906044039813896839463275299028391253784041382533876665612396228807889481750961227590663372523130175517054417754600737700568855698463648026837451529230778894427066608293724772952071496772038564358872368761864507452616245984006503771501095567263059367362763041789488416740337395034841786541948929003772987077999275757982765950404089714455069584448600628392231524999687548483465062300643522112650384256096011327643438583799291992863172601825978208329525489233278861360565445380317082258728706879736105163314870665462126980133579971673090564812114236547515130355421258747438878308315473880839264168180011510537950997944951225901449950343874131152287525300083635922822102194296052482354874497120860239856225545969890541169509539636666600084578839501390369647743297704048881469162229188027105185104424774913664320368614813459965672178136749367096083141886688984200492928445420738273742943143145027382730183664582022607043919945035275670282302965528168024458048024890982565371781455063524004127832139229675522317867067574089645107896678793057341953276733942693348098285588222986020580028884523150119855382434679969736606850173094320080892467274237453891879463168239549290740146109248007521036919856513371940404915966834381438292026432360219261072443908489655084708717872013102674754772317937682116555453723407614189540322599124462172186909244484436745395936940332723637497919718165736865437951180810902742948879304189251900597045339793872865961025678920684715974087102006408600966385791209878892899413167186188083487479925436622579930352573164724886644058258685772180226295015182688889539431998544362819341630327948226451881762517433785943185735354290457507697938344081809209439450591753314412029933213740766527671254216023554401803998406823785804371159988144300980108778857180585708273258919199051808316660311090440155058502375729253538656609939582420619983293972444542786847036943712030445565632351147742672030290641145007037923095652818406579928910838796506949400100889422853847204493955744916441131778209005532031755232665784433510683758742958780130966671912945617541912965841877658579973528960780738495803663688568534129615582295506616671440532568640992886476370087568973353078085501256914259485165062999390636026160923195170741801782790410599748665787269460090788582743178514753761252032308688225046497097843659539494198611408304305649959281090380444715184113305537223005570579327558453089943808945909527953581859195796848640833489064015363935092169255506998284192022362190576225097935450647951344806110315259268928075037434654744927427203421462470824127403170863009794486739074763410732326210146623497564738560243569553690385373220386874795150865209827081625580394018643801993247019766037224698956047488521586072483270455917573473621424755613733787245526267978825028653702820276532257617265807164072483441033517320668243661285202185280502990459513514060618660058756379536758271092909500851116563847099740787345388292771252288945912855473486150126713560195303020192268932384125099693501699031971736886544248857835121911613726976573530152272603594823834006478568493860724296659420738122160071783093290235161575764399813740205308627102491011474710006980713658160670948312012152201794727568377252937072481113509014072186024290806700351870287712118030651675691544623254404919459747616269619240921701842419552620016029780077871709724390155782245388390488512361569691774361650216048104969565819261653291556124066980808711258433740433603835227490522917604016654683397780657602354037530299831120003159314350141848763876530649072535424580102971822329688021467503545968615736309862008305673712090443688230892584901787660027690751129825748562239130821855684639322245821022783140611857004472255671934942913875570115210749358065655260062401995144913243109050634881643018809948098478698519590757325330316276976339821540320496246563654317026778318623393305922471616663465784560048413390705699622495485200570612698457213584846290676973831777486178056656478844838211341516929720075278910333285666965483368318777490061682155510460347631341211098611119058990288087892135046379639078020936157701689011612951852098943656014816800205160362317659517178759910813336416299901691984105036239918167758889456786729627253788591927960262517646528759521659678157219246081110296045636147899169334309401896867364838481491695277963115125788506765462179146833823896696927822677473908071854219293952323731567543615148314745289264256181601659157364544386513100628907263928169567841709198231232256502035476143733370607137514704130555975319441075174866258249746356028484546418761014660603357453657049933125760120471695498212313437593815552917860417867163644372639086199239891211363351462944574626864490637990881273091248538644785520263857662674224342742055321640152411360222293421598256886785808864233315764688284053159284929094995507002467724284203908917540820130796796678369530201647613529068383509685593800241763636568228089070293967322709448113733301355929379205786116826528325901632687019947102275748755487741704054337522418982503500887708457596048557503647757066364771946455020750286669198558220137067285072229473160890433982134565398559187248012959202791088311049983800094905142245374875252705431929555759696230642843283956643505500854523044521596477501695929578116642780902735333197478492529412099486237726434135212520299375193303656870860467409517221243095344842552525770884045824239593386502831670273645545216185442309942919026823723189426133961570361519373285517827086169548083006581610336780821193510245320159087676448145374842857518965669788197359751285488078821581164202422739339043763797991428494410320031642129742599175848154703751172413720167174300075353109788870083112361762969946047640404720258596095755750494791370599288545751149533840248139007712233585821619084015782149931922192768055033670226328823549217667521327178009300811983345999924767799337731879875151778201592565464462789991752598138842140365073137001231913680482556712112026132344221482876849588699402654329124487442219658799132251540841119319913069040017873247388402287476772835462718560705199361169804731611409867984572821593107689673428359311949129250190170867453660618572177733367941103288538701201206664754563060810830857804119178339388984885745752207404649064245745970596847391140479166865660706610485396735530975476970011276483610501271622491101648397142121707539154844550095089469973991641441941427354730738133066670131977845116498988414212973342966420711441250891089903124247488542233143626478872805747771390363987755984213246513068946205326228522948543125284742680063043939106428979294193012251509416533698472873550338301958902896733246664677150223379429806421914269279196692786879380228185356051890519945241382217347707890994980128345185077040819062749232509929260359470463399179990211976305044057690314175759069346268135076827614006943898523807772143558968781684481381593478327796478124706845424812587817859734047293791089040458460032804017375881796690528127330858746179012229339271596612898315301034101995339060272599672045882202707086268374696200551159108530747466033343498732019042515266129270255458249936090071632044292685975261445638347087544303946101837466419446227007667796532561726850922251557745114555114408992406517195454734890763935590837394253941673753993674783428793981176795223471199478616125598627295439431507536617207007122200063282107008410297678078743742472657180770922547089830090107492606748751183502408633570701288572670488732361624193909644969198875455474238345711592745520062988862235279558289250137598186179079464453530514712881491016124933961018398297951337796549127251101577945358126914404880312516474688692726345938181877798684223986236936722187916463974280836025124582507014041601512019785369882978393263978605887207337504993924191987809985659669399903462453256813816348320198371932569746029569242233009965564669972725327041257471314747653424466277392965536687133455035736611443260705469611746698540558103122392149684696658391943150580861350808900534810404769262873638142300019809001151215019675630227709112090611236188509402643171191004072047803118129205750838914059423758241725527693836405577701373561196354200343435136018214392456625481793632549756625128687050969105953821838363826128617779799097157288581633583776760485277349012404750431353600954972806132186677890302362204471221981330357648250766769733513176939086207596838356227086403008710561544784480148227673049272959257638417690604107138651261547470072948851184549900377497701511390664658706934795576438283050716486813805898934220781680227828794677009450764638689176708893963974294767170182472233457919089012631924072040900654899123364023453172234114645819384085669328277117157097673428193964502771929808161264727476262680172489959622197146019863763486220217644012826338025633878389837186849619965742670794852541002655370767528108658414620746242466642607986849609975114264698080329634000913918180167077064076174605600419685190932972118599765434255451060303050765832206900716123325126721563795042746878063784593330729491267659075461241041571351478746953496615681038959182829432922628080155004493086913147406338441780338387527053305092072837730221848213163807374515645909330128147760607293283672863487859144795770655701526677443966418711740359079018006978339025757411789348648286538803432640515864235826697184037622685811584885413635755045575784219341942430514088236284020191726091867012705295664943826069803519803856396576032601160390880042667813965113553225292075756891448363791899573637277473412161513522023658197459074409832487421232521706832496650731439141094693737506270041338611804091698059618641308969249976158736306849102798294361414538518976038522811748300922512782064418343584239487670317543962341983354230023093242698344316335325904486698458851857479732323791005692305555462933173650349027516055716405875494227823264958581213643712529720352850086686096301657637803718151496052620286046395677284531525475565183577204843839297518679850088689724189861120167595176296509642296115453258043827429673468339456952041171951712294790944661050198876020215824326399499074868688819869421999423805665632051681712077243881714672492849615582139253645668368510787687973439214294398457735926816349164722767731636425512538898796194570213922884579571731488134295213341297196019149394727517448627010605606837685604430155419068595239227009828045687510439933180695241533489530627606451258102051983421694551460837613867957643272669268528378024824373137143734660062944469177605329005336357406523225701073271000977216343011093313210935009676101928706063217068498153433444230120228342755493184503102940293627696108034496720921302518684323574236579938497247785003148430323764797163196364822214770482483979375534033527934143356366072798685751229177441291495120739925762478449332903345425660873765271878204007133165891000322114756321504385712938744891866865328716309957952678970896991192237752389252110907597932094632222715650698580103944421619399662045320464535332606699648217762237489229833886922127207271042721925396590664108166949104986182941730045874106375811749884514647789965324176106594058648578546394883046277765672843526636525957669468532441881798899762950584370035432175682792197923129577554189186174888580621561028791215874826593201991117854038325730849311400460543740154795372702829700096496566710274928525287365184093095883538092571930683537965236307742125695055039308442286291922313202918378325605528324543942446275392667070552284088217373641708763921120236319381062632223693060374188891176486854933075660960966741288395117262949669916300474448369644039261503521197596332778359635351381768472303397791524782594211408432332349637566503206947924402043109520989915048098258075551151685225841887741915391592298903390314793311773953840088596580111818695842145752712550831101145828842187613556734463675765611104711427868956299123971309532164563839497019648978669519596133048969715553855998284269904435805395754052497871120181570125053866257984275586232794134274373744753568161504760919431372945532172332659094432769195122880998568380361116630086931443883738826069869142422404544439370238312604709257525253656457936338034024100298005000661239968465684405002702033249350078214073019618714495157658984726012093856777996615536801458139358252424297266083204903837732046179710277662209787695155826337782933150403977066786301841152331616309107808909890652582091334489944048912821557240491358660446163030397229246637371156106503562728240903316028125086953229303821353930332950058817909699327444521378459513886297998715153894300948617008011403596467458885470776627471779035092239616864533835718926230893164030581007859812463265704996497111525418651576850065199374523400471076612333011571718264209317509812138831725878333726441785001180413599067371269122527853900255195366129270865782480191202486442886904545810484005798860683813003610278429607764911632334503607363551288045414908689747130915827564053266889965666221495890170261548283707210962782635044906642675785190234257866808505425948200118373999135872989456928578602983683765830025730562163778425318413003506209160580461275110290616939582985043398243643162612462865561794202500332679615898456156641853776109881281848011884056152150005353353668077307458312600338272505112478996393654087523841980809403364388359810353165557183105833755891591917289473133082083400998940939482196632925976409011314422644800890210137325720456901021983830755045938490409994676971966282354499365582877448629989051679403519174984556748234325365891306101750906460995006368876913937122668555429200719920914947427177356206765392408307210295303402761070222638371623739643816199019808127728876217500163357126531730978344150224057576597864677697118409250110896261076874934214654335937712060998241931102317556588082258197410580812145603467068310300904834229981202704837420401108027787964283422029979716007640441124364176715996514892300219231291663822514084087824179267201495756418382400078906880833237844054924042197695577303056896630226213493497377616453207777632584816045962791622308341279272674279368781018082431674003113224727392549466744603043056031674662543610756416450219256120729772910066094137188647724640916080654038419772377595926660729893699049370519651137252073771835378076938896884659390649135269063508194274840384072887532070343137675863084239377495373102767909209565129310818606072610952833385063684272008226244925777957326265233769588120573322641815619920421312107098898926220752157918166931480546357037830123227596237778449169123967186590232953870140506350063633676246286350334184222617576040396947112517973967926824712909009945732284814849959041470968783289757128052210987929276536811970060952224487978813579729325037629178609158564953391730128610853571588645373620937355312299679985034882870604526182769075497037202835115935953988334081477849659549066238437982458576910613833258728501254223588584468245688730904389985365614908875265762069087128584891271099802032334817264868466312925690894948165396096347800647216329010314850648127135611014662326587505484582640116972240088508143731517099660245076397266102540767119073863680515903127351725913570753303523425042766649720144622263849486670910670124794848243057324676454668246300111228356216355649944488784645998909376644896037690016239160656242621511741770773688422532972214450332558872254582190869017237240843358649168598194010769350895465174486026506112708498208811727580993861002003559042535529655286159639907381927020352425057854298378540081146121933203653739029332429978456588878860358882964929044976637773490375574181740601445676026162424032444640133195018109731790268346426893914396478540501295384121494550306124104192892484797248129696043483166935902377100338920105122990999045750677473369784451568740749190308484437963095231753005357050442984427196824557906237294699120946494601323425146522680036759420956460328003024621996812022533662313916939175025952934114794690996177958628116522697661682450228244639142182068876445485466198758536194246583996496913234945597271501221518817453247545588094279182848316342422279594480846303728110455371789843866869303396120489324201614757395593504831813290257824704607511484891981385483645280721898747680360606941066110524346612554923689132607192157610233274907570091629398801491307350945563414462385992278736776893993820897912558183022724947492772235065859572502323142219723823420829798117147129131557730396424708444045482961124188792238710100408879051893639198285749006991869535679771275366519615737243682470225542701371635951983025044671592822334873300284468418503352119721956854308069177838945642211081930083834514745024070699364297370140292676911824261371669198183659759577367018921158838832868193712159891811304917376305122084841808079761872883260157967623355629546818257432904519222453174931627125865620837920955244303440407958857168254870987923750672677640305978188043581742529653003203344110043286333026211017346041864091743031402409324004923344340872470994508529467548227381572061553960493584528009741256998358995965246196610820340991115315869473050751554541715430491750254053014845176366318064932401405017569154929008191061473482564621530771078449769332906599164616778306326375046308649022198242881991577382952464552597509505322176331227555613340317929558006803347397969739604654502778329447194932679969185504451629607844236891712363865256185883870339629932075433960767983008480270731419005046276477131354592141442989435151801055613287346992509538770667799730011935932758369578959838796864600973866006266137574846050566814652175760305045170023823377284372388560013715876069363587189704998384413830020824758581804180769429793356278292950068677547059192521197732950625517171709178195190621389409609640173788290457653884454280551404852689507174325245487945230169823589456535533443834645598441625905635044411925755100228112825565639174826649074936907479981671468446057745470532045052817342663730137739400960138346557844812278295818940681178325871254020200577610001770039125277136472528647255691997720463914302279681751102562329748403414177577682020097854628329651895412075839077390214726034267733369164221054705978541312583437717867197493023888674834778898543491309977933778954020863227674379785202600043216671367743582943285912114336978670809104179145822994412038204096122161337990860747909170921563760281902657618957290546419877787927987011948742779191998165371360952995962805822199222872419565947981579795328111657958032924576491229340437807762378525039366667831991379842900425827378975454186560755461388448462515816110628637017385514241450397159817921284140472070413520776416742958919527870839273777873604773984777582847833598119158872522293866150142055810615378943460379423649346211685798209007969446026394814493542309387622801959283046741989188129116441179290498543239352690649932546657879217879279227004366167488563513758806327777500618856922104803369685758881534636185406831881654451540018621354138237147996227269052205702194487204963734809073788707923026134080660708934765550570399244917248031685201287353962623807903845853771906005764708352725941164466309672777719958221120688687295387077617211688839292026500655590045099883300563073966465536747171041893302370037744798533441783466431261834520120137995483205495987456439091927558079470825376415443126604871516934033745357806585495198270206842383837778182836688436086456629317727463697424648950265085143169062917959948212506023570177290509752683115496271153163591443533205135742240204441199983478497471855405974571081679585722875659123722203382099059130418612221281578676804710976295741888889041168907501324804046276233418637201090562353826711521557944184922025368603713866185127175511347808448904222897209628276894980461671453800165211346614140321111108269765340940052080074548738150061785727262639181682474839137286898725182387657133551687473240501690225571727419742744892537926452236740892791027705862593142692802431865257539653486089136146020979113799961378223061538606348946134209884596781018462567516529655880069185673234247258314443348251727592470817061225660964935609059517088485629095697326812448196475798172962467511831113216144576002154019874772903857994276477761338615598402448271034907403616545106297899696843331001776547021124344738957109548393864952909130012339475971075656341834280535643096858631465830978196053262169994304489063907721564963556585616029869060412971553841971762220144016726161279289453364599808246277821134891778343760871061515722573087358814345153424393643999507929662398329018910818872107298853910807281296708740396286859992883202366920479572282201122764210731623132385580447943664504082838799370865280691573545696445487242550967365159588030370002217388001410196753424805273015852244064797207522861647251283731316330192976132311594679793730758860233649756198463046400317485816839402703787619455916432362885922846075567252279247837564536693611796613019913638754732860562107169535458087240783536189466246321234605281518241125657285571972335776331739005723514294789364011980196818266812496157888879340827122360438560901559378821932644442356915489803006482372405917157214101768278305325352772985980330638958087205519598047703846763852510072631582220194334442762035335919132798485794455786682099371976390892349743431966895152550867220126412861493731789309584627783883050118213158621758904000990190901209672106552643444466614669692304645205004602174079073629258920429393282878674110062202967675480879258703085141707995637020778712397026569479010921682663943284574490322579295443785421286671079648427882883082470109914806862545355149743739457174576878089042163787555993892068637346588819101814099964334591560131680859021642652541621566999013829745857211763995491253685700819129260324090138621654221257071012960518301532087528742035006852097983490897423552591130612025933979464359727435782171920447788165377291960533019218456018186577301983919261526230468073848413716248066642110731626169545096046469445535631577102774515618072237004570027938752840050471684667402148687554245644045646641369257255042983985355178776868891442071699692568301979468581780197952500886061696068666809279788815277558847031343003134414388907213196273840544871163193871213420052133130159295187547784424667110809064269551421553131223710440155978071979276988615235123629617490656523183789478912277370227473000494215570521907155159583596052213037453170966358175642205969285695550015783458943428053407485587624608016679866207041467264272584082268021296395196021414918598309921033177561391745048726885446520188348950586979417924887938082277393360349644678167294873461240118752704485918610913042538996726386265632834954027454438385006429687403734510434373132179834418872929088798136529985851627597594036956671059981037841728042496369319114699443066338210107294233064995237131600326767275400748372572995906702387230154529335444725406906366637006638896444807587610248355274020427579255459426771711307753241599763752292035490163813853330492248557728226167168839989476823157251566139402372620051665635616220689993894096546318978020352067314182945037164887771909400484013035982550936555112554168995769583148231956820163322849613110616095149889980492358893569238772796441007740735301926201141206990381256369750674229708696359802431394139672899486966650487505156958269868369768277254815504553064636228782387079437050361303193039507351342815481373550784377621726928425413260642552741173900693229168620929004784478966425336601622305171383136940163451389254822651171998970289793544291578792028393480075208883883313008129402139063888442958293758846684745505129336034977636714061833886190994748762962367179477955200480910338891130451912634588592298230385504520500467290236294207373186939402812724843466955744909860775915716092969069204521106014439805144930731441441566252890814414764108982329397339142999896605230163870682636962130087578156375557232376177679623566267706684782475555000012059308744293668559081701914894030132950457807028703992873564783399541912799067750370722731119855400813752641334418228755412150890743884972809419839273614822111544479552550926229405855070066069958097602220261017048691689598632146357837984389311087841288047980785479089653582249237167594038994639203443359379473097578801581770287105658413851974536489545352067193646128902259289398603265480696694460811380880052892068118659926192789230953110946195124238917987413663222451716187140295702207792586417301452811470850406050072936849007866478400957353634460242079142949492010775463362609046228159321442235689706006890094379379337632900106629645376631912298214223161630719763420189056781464100934800074635638285636834793495268340507270941416276668226863953022408788829639618043991237502712856179874241635482618829986659336688549642941195296030535340213847450390866563624509253906203285006427191548394904653433078548294766417188076290473392656025790303289288397708741366668555982481123082890069095510055855393262388184593469981250720206905044210944548972187863596244548150761260501342812269000155535666381046774335609002526058093604880793760512850539033886935460828369694973452920426008367257236399412682551955097583637494208800996455880864271137847610357207163850946668962148641300278217193406315093484104626046716256374580586616987578423022069043037471856924299542150580591657584709000155696644125159441857268967493085080242248089119322661131575719594476104556046652330602202971444486320183594478292219032567924362495945704895284974649023378707870380823049657983110853550953799102622952324822716134076634278293370204036429783494577329063868104579971463998994546702519360680264151939014843088708343177021052910790121422878951113517250995650693741651375889435725973843277542671996743959042714760626574764943717180845923601029878910279111754574074494304720886862344026629038794098837818932470630727612058034410817643599363331904214126375342240442213591009385344408165878006573105809621361083419761015379689864677055544906146301212042163418930643457812872050968060929424678632336346824296498240827258582220464518032902269877245030057137613616641092007496976308987982821714294854390672954644859317656273485495106528616694558889610915242839445055550292320169483745617719495444267406555099053552068510562808144425333002524259171012233996479436889531163248771894328182871350924021452017433869053342408845447705045205595551926098304239162942338118069282976215428352889731474896041487562465788802146307785284203699971154504877568100596102220660157851414390546197422772055824529227724731093804645082049026676509646519424905619453631266300212340564410805563704872022580249059221550584490937164328861173208450329870050778126453436811049232969545125090673144492343832277879044370475244088862470837538226758911179981654378958843486366425957957316607427918271586401248611644078842513134728913252450618859238710875696871619905786671093904264569848282779791697420356750004662043262726114827588356250006312225418713627205027774723568091366454473802184135409779925009904427634228443922857265269629821249003140094166447597462446972809897829789740095423515709186470491734710413607185208585871111006889376751755685248550791590566299936059155764039014700744313155706837902721473915500374908113131429629175292864070984024023283615732832456929527406839826304918490945729329593262886790447287062107260445566691218646480272854347312777362220785763768281873469486228457368819716526237515677217543109148045515746128929703752061974200704195574928324682126816191969038202782303769627063064295304729089392516722609468685532466642674814800690797046224511657104514924450880212842542295739094321002895697759423208003234561670488165805183373075362809160263417857592481698908006736431539987360087747822035674839712720802383404220111452744557165790020801983385121904739195658649284919566868624141445264901549546651139038208280715086588235701526980976083608375509339705327251719447047223370956081344317978248930248643436343814741308603464453646922669455172625149524754406074876073793086921447731931739321255936385396037327518590089816231915282063204581663345826984218102972769227009638375531328962293758064695021941997708401109606229626969078038105545385303733340696314802007331867215490903274810786571815364411607291628786074770787597346119656803944231726579561907405476802372039899002441885932050600663075678841739713577082877574091258110794246284706791499795886688876286660809944875555763161729100938614387721873970262297290934383784077854810457906952081638638454190924589561424136011232313460731185350538049117467704277505081803608355340199429218276899823574474865872570379782598464049402612843571752165790281606660369323294673757957719612520701000594082647040751487417928148492143425386730536792998940196924050787462613639099107498859760604546944047991208411304569111901581305271990765090631190071785414848924606898074944786962323807609920900401496408954558331062173673829599173810488361501839566502287381756519605800717963922623424705801153250135834485301108661495014574666657009672830856831093780832963459837087810285271922445333973349963223634506002617790147157549658255392466953757783920398756347534727836185416477185087260654653674819226773924550103327786244597155992189635622107382249089366267199769299390312720499302781116473722078719861068377791053302295897871864394435937118811217039255637249954456474567009819657872206208844135317076275179953047559281402107360177351129979310591228315574198662118232692718366631751970495003166752080330498472700768228081277965981825161838972531513922752877749721942610780301103297861925255184729038887770627529680644674255412179030013003522076402080476674792583706292842848123832678106921521720976408357203138668724577290262373048909027766573831026324251176426563383549286489701603227662136751868784631490501847903665160159349595245360663157184433221561104920867700505912430624373120884822169419637458736381345215197712812121812473845309590816611111305199764141933542093837508406666228968080378824005265102745414374083510722430097907086968889333120249330155762993054814066436345662464188850325762769541374950631550306144573629668308598184341234166433836313314300833367843196073662027368048433027570694726800398630998705973188321759818609419048592145799737780185986810729277556625214230923098560769082452833703488483652231498932950265224984011902632712185636214769593443107286440611383209853334951101303307020512966512675571437129537131174471910987603339018779490366029543245896564872855296578550264265807293625215151050167259058839046195422524927518312347119422647316860249955875649156210732692649511710380819498749550879805980896793520447742872028443990819490396727683843053511411077490697556213533191907801739007523484538581715302269467785158084195758984965604712047463374592991971432347095460153637914876577471560978736007210474844382338010057034022305004675765362416975053275237939318440385558309618072904358031854659813318781130438433721951528214396288998378757416121055351384694484326892959002132071772686862088535573309143202419761408655118057048682386290577042960899310733482526158990729662249602492713665085290144856114440575553387026953398954139179377922333577281023008797034073836863206789033546598615333809575250875419868495571479470883633249277877218986650736934763338646971026228506517393636784717326730462492060943570219967871407881189896260175429125877149920656608850692575813099225635248182362605255431932684095333491418028715473142559518505117998862535406901183338521690490138566764244039576500286524498316358048364041837589269115400987749427875494360523339006299256382596466002733562337989372136269701177950246834274915657430656513263105345234471973091907241844565365807960031981482732215031518946870536234648152975552681366877181391398354903363774893940068156170802709592112975182639497900386503665524451561278361021245645624190953984023244731686165623795014586671388393988815357128315329083465757841612263669545238362660696823180712120373928636865449699166412755230360438947544046054593442712931748864462184143404445134857203731659856724642603826912499603763274765433770221714805572188430074375546039304643905534079921109203417852040959735171411741103550669338704538260989746701251243707557076718775827571616346183247354717311802155149847492769836259412116303467953020378664683501864828706766265902039820734549471826808319171030160842453192338213294813318044861839869297746995485909598900487017543365808672911891008651701100409259233983918411189446877077906547222764952427199616374138205807614248100174220596086765016591328294871838863955305981363759934058954664502945931380301959324956533697050468615298667305417028840531045152260949046474692807627595955752840621165489801882384019669075121852172195512588881156229500841512211335178155112932619866757619456214166963937408159420111393451583950439564356878459796316132514420489072622088987586659096987413132015326477531436329095216103893828743757735184962223977069374365001706540116876452160306754706599674853959579033239129893761348409304750799067478069715619711902108302126872896002324213122040460856348030926276575259770247316540683581273595204780233421359229934930214532314085312616898685697341770783858083949862614541568540849253031739379605289558363742048662387941307179570742165491845949456079782411700041735187154417820516516996474874372673947908122005780913841550441520313050752030535533992843434229441274898624453863281163061102449736746601729803497653340901727798623123305458394114735181994732160021254454204168377970740314326594644965872249523941042908989749979933328384968773220582172080614155321773847125651626113466947989103401033129468273859023417904173850572998440168480418328907960363144171216443970843816977903709648074715570950079441208150914945392337794934346783883534630392681115130250606643228551274930713290367967244737880001953380355550517021385525196961958101391503165123496538887161443664810630825942037637373175561987569269196454024835532739343916610457416043519655036213289384589676637294924875605758868736593444629094158002679493783598704256378820204325569389659105648337165737087999068493352068274572173245692637976866828908866076041000887702217686518121219185447674925938459525677569014950922592618770774029478631297397791106216184898535627736988589084329346486975142067598619036897956138289769692182698547896614567895882439964032642429879118577077754225643135889906905759383127381775859843033601644249264912002293301676616484401590150988126185036906095103222304801001366125131806424162628832253819505423731349892468607018640515294820705428084911985023911069746439319562955722729520882491487404074455154806713432532644353430188881976477397229327605892719074497134190988695711546841339600232581032404417637672701941334554262162459154526793754396586402871376100451923825070318867823311767643717743082072416997783898519462482584384745733801943041693346637924678855843580665354708798834724035946107877374197995748632153005762657151623225368151723518471001053645827802866789663099014645752706594139619325293400624417919389064049620420520650197562044563974930338243784097764822859547496829143542367745520545572716144709375357380903499712594012939715947450933923703486027874810337659101461906861823582530784946449175126278119444465952500423584352437978538584970369100594269324693045506283243453102715207123775009253887761338081826562666186573968124090698402667429748634519767284889456700495636560515523754214029841532150808148615714652826840748776231987678868059611708970565178170551805205606999889220038082615447788752188195905023716213501375161310524427242180050962479435065182293433957202620212961812410835783684210256705151469086609003977638740559493775966991060781177824355368663227182520746305767558188465631055966310852569957223039963992253616462588368521502478930991771509788369673883080316947299226156259220372817048840073278832230788598315900486137976372481734845013359137268039113418059607682032690042479582768084022640905794699350272389169094543406374458054394473339832813131173601796233158479073844756153943549564447534265759050912501768142815391380890820026788061025975784868536512318664029775869080403408917655368583144878674144173315288288651813152077707866668175303790165464344760465187088438893829476262100229216427569404208803654229457161709677108911635839481866079784729708495640618712109346426421272122134134777992493390595490535478189403119779383830856730226382041167589359318009682381482141350702803233004722730558213325114938337738024706793222104690992161911740764043213832454006924119461188855625698432177710860280592507354388598625566697843711319289363525695239684887633002030591314470838223076645909388116058960120440626262281690781451929414292666479486935907311962564751194872208463851406287361846928371352909720004272484308194498453042519590913202310193711772657453532439228628389081312933233042997268833896318933536179209219324488005473352030872350043141619689735625968368770775325745031793006505435628621291687735496116357339886769007507883569521483253675035153421465553515196427061862651963996077350462067084586351198317552112097810586508634559109287723459680668704282859146055352020933872288419522766278162611750368843571076346829762028635617357800754697955603186216799725313038544322984429505852838391606721635556587709101086241613186844276579597622516696484264578676125334678749651946220045910860986392256620276833527957244761125734607789480124528418099036480199363208257372177080650795669412319421253877207736965809733792060143949650122347470188164898051496423745316873735270678783878805705576650574798072697598158108676653851094365830734169620504153609782489231480201884566935397744160860889013410791258095474573971575904933927775579496024754797300383076008241733818552833942472494563141292151621251010165333427075414511877472773057338218048230711681640319796014794421938776920737168247639110585233978875078691998425720102106279467759515462441704237881422384057817980692567455985633532658767152079343491203861182202834514343423764732783161075225667046133490987563245505283676001243832881694161609054848588637459743640742562050593887541039151665873967103159765480271444866910036365512494722034706986162806403848118884741871620616900086433701169715782983605892881820766907853823793922045601472378084989320512924002491899290306241187776067243802795072713536877377609735541359749676260071345620026041354793234172206481856882641315112857393164388088170530914981394291870066028134936332295301047897221413851598219937114163415204847960604468737294201969708068753965125843692886763006865550444661087924725657530056342211632507242672530667394456888465676927661768419500437734413823756391954268657893306594062259407092961366686169530135650906769573972099526228210551517155273464730210229426313387988031658786383088574599550818069943077576404427952972085267692146982017842007806526877176892030701310568683407253172470628049088618397984931522846844123817431912625495810177931055923548717764924797138988189629619994817473243783072978094643232297437917758734756259297069113194183639372638467031916619909507117465737494139981824279772949878296645945074470321697783039885681824602796376399717190893163871841097451698540363213585193992142900753653041369697293294376553225045390899032766199342127012308310924246644836964566241276466749054659298242140109712452464571461404770620705389326956826588307462338832371597985081406099123243792408985811133560931505010159470285916429208651130761139789716991262729713099757804379911095579407418673303232744628365741918673512342893659972449098631157468012806077185014837677808953968260823995074497042377943141793021837334427154713401085248788276765122667881670528988595345113606485789823622766659761268664851961630481831966714040513068825510642782996797808228561133310345178957390744816992268195386484168842670583234727962375986593915976486114777325607579203485478807108420051600738803896244214936949290908717014252188910247062456193389039058906756831293870087757004903573436006027047909529878438029325877349783152687241326937423088311103659570569284104621106238802908250504005704942713422913632849096821471053980679728448019859489266486028950126313288806371854488346709624237991159235722192485019767657870121040942838652638375856238394259702016372181962824901625784196202058406845098968082130633208257092347237782454037036185387287004037102119943649068193171851749840305194726640332510707054844628623845543547937384887583497975031034166021155876801704081917369134317616277770878009758333097955120860401897331017276479449741929366688319397621301119288537515991127172707543319105237556478461207651821832039100572552074089181989373198936809342410068328910312476059141689551368101721821670273726535398154365888584686347352058916666755087430366822781592100391753855601084657028476330166380343441784387178905675476422519950094666503131003930352919480281747642547751359970065562883178552387999939733463927264487549487076811599210937386356487640123296998340995401079897536903249758744966401057059628249666718431485416125844802869203147044483952014564490564424606886709048873178211716666516545989173842352412415883830149091094353825297489217332615959615405101279999469921289007593817151516328149452660810030763865846921919539117324058137975167687251351591507942524637296118911665298144575090155175142807956054315359514199755769441088433394459384073264198370213884738824111122888395528979254937589764299287686701895713246003927021541044235036345824132853984023072333701800373485696698786219707630541745933116629644439615412912389927906169638204845169018372448577389339376683730009982836807886777732205494118411555546497440489515078513903931213266121133686115348578989547852697074456604358401867169486665603815844430149836360868428114783030786638276461410072928454368884215837440207467843282334401565504366025756106738186109888253253675315014075399297753968146306864839479067889943204420051516936343186142928303892658058276081420768036195943051563516851807412606358593682463534185544239112231456835496321680768455522094831690614542650881395411900372444831312898536426822108143411394868529995139852034861828517457223522443304277031461339435584888450266447638888319537398929966526835612175767345650595814042682657692085580816076081528260772371315183877773638298930403700534505670207213881132478184453893082996272161604731883857811106019785110023753202794642458662007258861872384305390753417010343656887510774563173114471883606426072402982814736866686937360394921238845204190408454103382344439961536847966585474043989067212267121959613139823447808265734981156661250137501848249085859378467654787331735563807889681794636735954454877772109220991076690032019772804108263287990334785429484038916913635078540236758019970745068587118997219270211514934910006801681125719094753662447556462353071660240386585900259729895394303411308717609145449376029924982859605342304924077628291373280158036991848325062312867683728296139756979148578540420793571135741866214688174068433706401406976962331489115632098795630206174852291551251476270735783914197251066752525855785499447970493853456344679910928824007488995341242026152533935248959771451041101370623174920011899887844502159206613497945345342367254833933511503508935040561068665141909265424364396798746125469645994208252898141372039641250006219461468383765276248016747041271762966809656900769419297304774173588822663388914264152177749360004442097874980460076908652852736817637614383101728764218053028589842682260033262720887516467557859872953404192370130340378984646625702027315036314125101911604239836862576311110890753889549425995596618355473935174144642031706587032803386275000074923095950304940185863371623868441357464763091572078889206449485008474340328958584738757711904787662182721620302436448375943985792413746409935526814228075474247687975444286045389721014209307060623983299968823136276501632629652475588633240060321353857653168004059880612082261991300869231099254329946750851835392559112169482930233533926809686339631550916824884815323974887390945926268110323518638881305526148087147424592877201197815310579287089600129281053458473414152116231265520468756238595570293670700347817096770563655963924212137725224600210720311310020882837327514313213386335525305992096040525280447885054063846420989534850242707108576330624464760029515146760058380768820985157324825244719436018328283752138593285005908215999567806635825682965943615817715993785614285064519419906816364964186920833624088667717215635158714827770794382337839233395555762493648953932380282352316485489581405538534439008227009862059329951249893161822464579254080664331079126295421101846355115760961453635174589635079603420058875979138099765007803370233986958497719493489165367068674636882290044037804719437598898953619188089451506580295301307383118684673343824874149882645705770472455734494840611110103134443762420976427788149791088389073108882543540426289915941575086458703291720467128053888418904581204160298342115205051950089913216918496438338512624777956135382779796675674204879242152017795993151200570141029805435102420801302835204911724440135004862111135641221877231052418873233663220687852151703239407560569038030741265421155526771314101065592519179148690170176924550493119792463095380841373843902287781401109788051835585483739392795930763425964682239194831743306308067692652072221459340584551165804034566910809761908914485628918070377559522726904036651268995861707089708020296466205951388702686171858839472192160965892853564678575854182695157648325064473302510930881203940506964301531126100893690820112985066782119531943403428884401759571385415137103703825739247644124045677057846456083798378107585560525182156570610750748314365655328955765602934073285956312301480027354415557325615938657997188399212362317986081187382553939520903616127890999567960018020889381136371860890210181938059227959449280991155034790814800733075454743309118487581039847572644947426476939730214815151440667529522233705052187548015240414419391686455228275653149954135865212453750819567924931838976724254229513530192056792595228771400786349099852516029240432587219859148892844858720440344253001835254867880628926384006265783979153226393404102729356876161811769540423863639600706132675541600054190803282668066559694496269438354035938610396402608680903094263440269547469152946232936739108087486878027618672807209024323813237554319513090020447328390318878714351640850312190307860988603120012275697596577566284784631730875498333259286452108073948660618460486587147186786798537119578268806999548868124339269287142460212207200571234440779879433712577162725379522327696373102937195283649186235408054887613111789015860840169165256080879974284334097051467886679782019733599085735017973047895912281628936386462944146196163735531060538929606150717594284195992580725453443017795982411729249798377307337559119598771758044346371101110506145514265944096543008025415292830790153222802921078815055715908771448802194960070673997279583269062889597863765755729653079532951178076845281031463682982489294011578448221591887905614300805004563709012257322201640547252798300596007059301789630804567351157953516149525752029696717690099145387380845244792795049525645262738013332005831030409697665064488403597222323967669838383430041564705926289637472493360991890181838657335816625071283244319386877893955484344572142318394621702394697636482451830091969275591623821347403324061138578444487055583484108071771439104859123621118671676269074597896984980069845378157386313682313841621802282560238668744588619942042788968766778738650565090973075141883431849110803841064862905934333898968814554119782767689758770047681992153002825627612400628643513984839985214488356377166436759222978673731975891020942049608491091972943799874306837666725833323389460012177656554123667965444437840469731257649206570144461486137822784316366629669560997557872726873943426767594305206302405087322875360816284168257652742032408576213286039614872690852129414538612958214473931864210310201017935576397899491193165720719213850743277225122033674889327844775678327925272316552112166742840289097329351188220366647021097641412482054193636492432794567445799206468113207270921007378556372295835924828056970544475505384887562521257621212662844651597300099417438658901148764288156154712662859186862367911780345702791151841725022753734860899737207534933223168668651433498918724963431688741623279330010487049581981132314989325359761201079782743443556094270622316570983601644263344440095184535489767652522471849295361505138314589462046296552011003592482500752155129943395786107268596253768212806800117940354702991780817121017990117954009176815657011198729562300634800605554166254898738170468177116582442977202030696121554481107507431354757302852367658636731941635262641435200703370948034903561012653124532064834485956463430462566741777544488515375774165564556990013519503551392217388646792568425572359560290430165814222847138125520503769234333395908260360456245419354747762066029246644723566339487199180376980640511766772323379932955487643130206821535186936434378156611102857971082756988641961335546128737594306857338351572487014611036041849819842934671816948548025451241248097473062366477303370438278918996734022835521212156007065940942379695468621374736967135057467710152978671880506671349276379524998448470694764495847494400998528935258282119136459119579115161046929450214838017196065629995764705498203591592035592451048626964247651471344891655361955015402796231009860391034381824705710511387922614553613461395973792903444117752181385122156020465769091429909741229256149628541795084213131410335579373045339532634849230121859213257368079621345461905146495573945657745225361723903298266037494461645379088581535963250040233090893802016503142099876124312126628268016256567737946737662131166612042271007514264802923083024800601646295646672355643738827474898225092471777815840959135336047042450359577967461319912053302211936855696111669879546289597316174692451357290285037662958076210642134669747479003139092823065010937082104181195282804391845419920626575182204153201022808751242613045239701133933720766742217493945537298868242193422194462161278860749104377417184030796382396446088552265327668624578258534537927650640186869379952438060380181184766834724154115105062320948717815721586676433961516926115503501160630631557791315657801476465550007546298135554088381357726414670312628443267905473308639227740672490327606338286189924246623156322822071658363258774125643892829605882634371680228702012974248126319639518198836192289960755939475424151713918659645542586175638700074976726975041813676311975302789871258297412525798650534708794112309843957769817419045831453355038237662386503352146839419763582693888138792363384097560662784327632938209253278796433775522078466402568031981700118484461697509629813500977493227886387531971341130151436914750203871722577494188263809886461251810113777836376414893219080606703836095909561750977807854929045459866012611980964972515700320119658822976474180913430009240336875899218897449932504336620964231261561679815886827799490798348516278273934139660561090113798769962197755365600057073452761273330032581015831055634729428217718156793946973682210879383270853986838223382773371892599387603024010817783515954060987110174287168824297461320305951821813424818803261923608410039324189826017787756175522654466622855879590112440704804925709114672314606237051083256108802214350846308049347360171624334344793951705634056680464201672917397326019859025951217580372805221447638155665395972541393657249059598144287270682155361861958481516834388464723346214348360607116292264634811264297132612647148027870457967092259870986026765745909714690974334645153285755843316679748248162328897660994843906111042364105498295207097608079704350220413561601366790688577001536065661091380005810773251308367381324091290479216681474379810673443891421652423549116838341258034987947478658623436041200641242566057612031181800391169204290725376023411828151066629123930741845223568832206093431856959139751646141182503973053460085801182392706179778299598099949316054058477139572355779221868735854410998672379988163034120154646898656466886425024599916730545988656050336687375200922717610977372010251085673960997143292584740932263371151241287777715577886762914668842907788395370589366431663274904962611767539362168442012948989692665756695376085407258555935073335634622181382469834454848743382821362760350723103913865341892572017081775140464035140370794724557774075187685363529207086316685207407441203872144214958905935417048693155374188793066527996988893279828264383585643127215159693937901003488252292133955632110946975145429250318914631569030285238516981620812159372402838850220106978368100372338743223577432966630831347264828369668182343631951573529455885418902250085609113025339530278396808100604732928654977861597393421894156918781444302656221614096072099605367805764873486050347266899049334932525465552753596886650383022360941828786215560671160936092958228612586422908928812826457898682509273736665699485369800540628631736059598148240571401553397496436236157467383407654290018064530838214020141925015592382228947756563803672608265572645288834746242256581715632548879621689296783712492700401808534608849725355223550463726658580620164334726820473528387870243873936715238945574221151791801237251248688823670736075110050479014696994837867887137183482203627919878149548357222505165558500089027041791183520469437958287361434583201002325287570415762465799670885824302205381384362419604182820545342737571549028649992529294407907549328486400537590514643726296386759841021644428983300244135207236420596077936237681598070453777527638950359534228755520516650023580893533510381618711671335852550123957213082940257340577876784006475747329735193324506426782253003614555080592631141301143632768353204120393862568975406324195656199046655086421264404736307372762455646405236353348968429339201118467060656621757446198777210977994013190357187653589554986956164369619049398740044965529811987211591664865229876745057871295631416539286033446463489529013935135145876486851052325019531957093325870391012238386745358598522752458805380827271934126527935930616988119434635367336021014545794800400123644005662028445045456766701318726374603361368371244677944343450801618783038845366490153748238691514369026703587256039130463274785112232879410090379743081980979981333961340168574914648457494083789793911269868300694231508642604398852158012548461209891750707666701646782473718206643028140235290294896185908207624738446016956333061283350855986608582929266649069108121472105611672859727067606826611113450635747680561181169633857488596329619537156323717317813328274506893078206194890425250530353738976977041787997695450682315270378564806877330757991828161147375862199567873646054561681948594038570198459900209732834391446819250126912548643788934596684859411776998901036271431185218793570342495376456194917265671709620853287756392188968507646939439641818383604664247331687796559506935258115503678522074719226388623006105942444364732685677021172275658174728339940498856113697187888714638265388861120836890018690369727361034970492753653113938853535054188441116160304596977594951213925822128112333483459931178157948896640896132800412840976178722265471100748331267150821236042986526489527414489937739257490806875058487905078835011431387865265487088016786638240256465582965999006421328035508398674509232758049325340874311809225167881941802190131949724252472260420181864003871051027140665922650025386137757171135173878738642694269006804505519482352550998335763346531800802742831454228116350366639912061452255842131660898324075304940368325722021121117045264666555621145381228203549623237462738323001925437762189267156359140618690116702592436728457228704408947321759831991674355082983842859438872479147762117217118487313219918991289784008251603222793919764311132788177379398796833437752791200474267081846937297657368200271065310449771483301044215421090272317710651828888161829357164269031230328699674652758963934045311934932601741943447954283746154792906297112654309229557684103172734477353237320045914331876632675914455968577628522305491124620065542252464619592674847958315156531337226850693624623531942141247134601229742838191950605413059641610489011578215596169294335717724470267909373466732486519718490630226155824874603664176221425018558979715376768542578142106324077895919018909462250945628640075231903190623515276790902902937626005164881061592152403672578065758049757393156570991686070047354096134010317178583575574783153238712341040479610286303838448409028157342858149458810111558293411020384157813020896129313290487745488828899834296901257080802879480110802445574439087016650768184573728945666424476240709879486039540640827327777959390668556110936445737322853895792887751815745650074252130113281200004043696904494301688514520625536308574618246123685655027202749553572927294970009261402380791248334131143639586727440445778380647299735556567893912287378409564471270137986246996040788433359304861285520506726516499013955670178893325676611272598505986007811418143294116545622876385744419065160565701669391572080920161604087551559363546632670878648894013634455057755693869527366300337623902605507889695584786783491483920199348952973859063213567738908148026361910397064325600091979378904899665769996378875942642798086344657358197468867926027401577530357643830695147183644921144524259466113130852267052296145297326520970005921206520999347411251769627204012369101440222092949955067817228653235346826770933409376678978801877970678385057347737802677948421354798485334134000774753916299741052254927824556271027488731765189995300930314245816958063513573565716765186854822617858507791921574151436017411061564030565495359029489808245242000742578117911570878007887428110740212689756673923132883777351647166846934395453476558476516501258793351828247871676384017039953100432069761705419016537351736270291420688196260238774282976533846580539940013795085721842856471438265020281226680836289234467383361551425600801358710910268363717983392784392348708160473665868919294386118599614547993781017048856138920713705978831641125556997553574444376486828259181669793793611610363986261029350163622626694416674188394691911143311210215582594269807658646390170126642250540146176136653782917117370044075152539227408200431057545332879000744667559227175911566229698952756268407042451584720566714834929200614701472725673951497218267118325010488196089795367354667506788595391707971198517956929516206741502319092113706394494553176001371714443188820554690094752530846805917759233260523302551143596830080067256072416423537535519341093261362996877620980025096899692600563554431295470017837591417462735633244739039494888767176264385226734738951457256377302082816068250815761410460591809204497677806506580375167534643123524438987175111022230960850363678476967072934181315946845506270229701923740998843565159711894180628745327243809951866246913332748217626815119714257084805894915443107971866398737545446475565644935194919600501463370367093259799031003820045692505886871642852397991492385164000306754915704688671792262302248912967423724940539731850592083167321015842904238119026918413738023390315824510847592590802944382070703647645600371577625560291415844478871362417718507106093731159159331187738673067188759140389584999085367184693888955132643195969215692385270002063258160345259342447628157995526015591624442787327398825919864252471525296855019677090810659095524582731945460254700841885047056217760765710465462257828768979935714149013220227100190419269805034470094435191177875319019137180156885858566941959686796827072257940806102742841376390677599011893528991072799616176535914995934244190695075363712811316407956474831822402740641661687186631579056231809231885393232776015730135007275571402170594189698451139198916831310089535498563097784402490220985630928242430923957047007798729526151807002600019384207763113504875919587155147681194622732944009012172808909001781717188206199142775697382600635794310006724168379062715210449838208019828041231586239758594593354572047903031337642461673999109178747958668241396913911431737970302287348071046115118534974438565235437137424224907786424242873921455697722847386685819995985874110506437051269766751695532329904719520917943281993207124087065186559245618242810730796530383749148582833394529799522210212090223169740876164321709786065609148070647236936392828376023231300644166240439427864564509456188409329454282331990786421428128145328236372062717082482494591777854145709313767574626356955345931428397173569158254221341928262835711993518633078860968015419579183118027204947028197340485829044111213687287002298411023056045846723126035345638508374763502540344171562590104384132428110874608551440906294894611562126890320242345112353567128728565367335611943442629243238705325794549767818542702138376453648747904021209099904100037757989013603956965679845659494478921853932233026988368904987605182948925290805817211199372467166550187078226358006891808027599508791022887495530008395483878311292906217467382332236818328527151679385420327444843592648543694153097899828204855637187083243637514437307838226421326655267187172508972973771533296622272538333206823325874596521517246632278216373275457237962740429419533855022753497788796391837761066828369550215324144385046410233606666259934965910258911140547873052277552049497635257968712208223534293424140670627783358964241813303924149067242092175340731683548102422247583403723340774075800010760048223004852957418000920291532061577176037976438858207829518695727051417136935055078150556115034518254975211022354226304923735646416554404353232662980018616661926442363962313489474987054246720016010689071721320674530406662213471253388975889579950462297588766650769516492002313511606865368910818848539533723156485233763609572407125735039943867014927797905515305307319841371675616766226467967417432497647641126932548835854288678594221579014433215811812113208617646668481862941434341735498531877185978434981560883313607029033865882042113655903922674532676024844844883567110372349455784493446534613782724522488895774047301728134359714117720456185830019056160930858092526431128399361507346839766396908838205002907493349154048928139366290467207076659191133082805271566319498181718629081737563050594824781970675332058220879855385722442576952174235472580523240253299171156699220320470001048800297634869188511335624156281519026236218260427662080063263240104908202138215553724403429864219760602423707456389863515940148462640088888229298339539843008284465912939146644747966059248773784228033936319385229430462220033544753262301571694868440771441270666383643670364293215085649052227295265535686795634204942591094598397148299847828429382261387909385973616008673551135386399363474429892231958618481940117667374145231081583906970854085053460522321176655003408130834402569889006992565329690148482605979598485798478768899852384486446154900033699554364750595155171776987558585925067514494014430626482635950486259239598994350707864481845757008685339030977217848825841176109889122403098842821227361714189046917265050723238120662886913529434434933999390263188568755349313705099705905496003863852784004192203943449641119422242250403864974882476929871620486178471053865617248699824620280557112822999685013271262868700145504109182299232676686165013842910765082639762686485189002345041068525286449719996210309564730293035155423170440636845257187213699767840725000510824528068232566109053311406826858016922407232723012620864246563473912502305842204100118941003721924333121491802299070953931861950325445815160434090352464577502659739223190757852340447495460814699489223303718934291136527956723071798132719082867963978338827844866336006577715981869475061455238429339269437401447254231543008911546672067448784136536407273557891911680452274761916626638951630776321250005007640950265307145458813846968576077280823590779733065691676324806819773465045732586611535065471494403639682454898523498174903291700518474965643979035614864395950137192738249484174483172529598916837070322314590718656844104917503464587768879726827182814010309663504339068876214892754147550249762673168349597235722298352268860069191715983536797540032811379852238271560806756544500769705496493265090468961683162954907530237349351948407758341787336058827620628996739946197491208894079756289748096824850928598538977215118198802592779617768938911919312007755515684326782774882626051668994359632994865906489559808259414452714190323850237972508183528658566817698391730564150175773888326866340772719298347399867083744077892942231940746301265487839069404425933992155062393051020209555336151595094193567523733952607423626251679667089068904065079955833334714553853330305687939828996414273615466266102103989496150346316254083338656495475710302513568848718378303742418897070211214710261853269990002527026748358474385118706827651916213154296570155243469888556918767549858926426310027937806001594835375249809144189516926904595724351758274388985800865798196813814443133877355515101309441864475712215861533621406379442661083532832816834952901320523800300568445656907673309073536375280531934288273625811488299321387363579185435779845432079575074449047451342346645168385151609248732488153790147697203399213936861129139717402827284082004375626757906502922799714188751457192538729778677704959423468223038157365071919211551363486083824386524530911709902865539056111024489337847216485657166888467174000357115844371125030580338711950668991654024109283922225243768937886452055512801414437476993320626068956470079371798825671124726186208938636279697364199485820672568501404415656559696163053473577419687505663201356940222721450610794648246642079191419078982757897784576070312967300333841867636995610379491023549622978056778324653320698074758404154636982396021168621306406974878124248229204414339979849781172258444174029129185459495827336857915012748534562593566079317117811456609784254787697741399147357511931806179059517893612347726380863895457510775271025240324580076907579204913363415268178397555315155664275882674599194176979782752042582680689363751095118341877101747781032783451562737694469875200478189120503470969692121439015611294383396365453484689594171668266064681867208118228236199422088194468519698933591067516686822641575065796565583392424657564354594301362640145451969565667407642719490315453772444091400000935824812939895437706942299395028229902626106853606829699635134184716540474941131697172151025453348662221610890970859627312578592650685753722978032116861537296125621397860873522962361532210700645322386517756042604821516040030358521073842376889013967808334154414414882729277959005806037518906192291415478277306237969772438057458665413203060453036256316203150165689727855307447564531146630911702865871739806327821592582893069511867652385699960839648775520689737734737108802099377477529612323980743930935615305961081795675713964628502438650629040757330830450673681640314512147719195120390119579212896447021074566717776795116760464691922853557171538637820258601633056607650386698360617663610093700294112846092396990435940723055362349111855109024257368428585459037401178076394564398909842338172445363890054903333567914908505938767738338361864793617669247379947898066091296709527310391805756012808088174118572326005852367102819316821802631142513612897277192235425349941305708429674659348917303334143265218993584681883912228597283805304316586856151020802721346600778062201575022581861998676612090478727968516901355677151583636135155467718674083816034792067239971120662760463490562851024725917204404039975420234183175600610546641915004488472379647368358038040431535532012544430973358925265369082609957336003156317456751907002662082181037016313665921326310744401919762797305587983127660925826808271351638270602736616431271088693541287492147998687332759767043864358856894429642881460861808392698234145512319388405303473634696340671716898740774235476186432275478609597214833516157272399140031649142637497624551334087745397349008639297367496023982295805754515973259892719414515070956232055386850965174032618921847579625063400641354846801795376827403028052648315510353332909692080407972874748514019073185664447580216762886839764545154791403087019485018512227653611041938865392050811103150024816882178168854205887246210905784571635217740678737032496787718439686461552390159548118420767767547483971903324727635340681695645510417603361835668173001186318911501849447216025371111287781295420002782185664121611757648018179348285581869846935201824528441389472754309767714343239694698296221836601920334976411086225208325607082309125806345208708983704581849139604082963980539025924896279076890764765923000532379259829190552066057834062942025363737134967047607389458218612436421477977343103845179354853810183153654447666348449897670369819094195300558256623664680476795984395883678225260139785799334887465972725590798034607172237853053970107116696716139774070033528672536483603051084388713102538879744003317921150398460083570790481777089493744507416314048556951590291130632099887639064112454358152420395750357679476381051959564712263526173125342624658729940242792636425562315918785632624053683578867687883669794310121335039127984669586616366707654576586466077882719051239178985179906421267835776492814372028892692327194000766025380011630774709653894530090462529760466866086708742357486287321439708412521118603166777062832859516972772654359753725405007765732297280227662723380697954775393458372774582698093767111602521696815460412345733668115445463417338931284820288810377504507965502857752680375657213954611526332145956482008512459674196231539423270954290210099338358716520275515942344082837650789850705644633499700505848822409610657215021928388564254978765421527453111275903816995771196206371943736106342439390744161713623423485878190251366855400344795626821561920711211772004394394018809251772860840598309772769335332647074163086709863402755276974134074860994327656933565866981238339193193084087093164547725664384158883967653033240502108092150811695554306772569333358295999140836803889766546085989319205636979972253704096880466075719944209108208092206884576965955943612451961317630918797080511619521050434559874601612331447819347429209958534130890726231817939331660423484774457478466493666605786929337149080495044442311401522646000426236844993592451759288555824897308011308571526141935514916384103675247869317328423948341643389261602377357576121742799416486629452228974037002365054511242515847905950699671846637803026229272546716976314610110655678956285427525531297552689210535026600055673180968039341486767524255192050952155406497507016945893468070196233681042450417358994359586280475905187191668878191087400789065727838068805772806372515370287918128959629917875343782813459965486145647926720564347810545057494199173573823673579389107521643110160195371282565420547784688073203893594408043461905806158124481476025228821938107013275007364724249341997229274173304994280994132529456954398648511543848682277926606182095733965921056020420211446394940913728937732248954970667956509147301047362819699564833551902242704184539739670842347917557934959491095056946682830064120315295177340893552957797784264959441116264836113007715788013347890598544105223158487742477131642952265805293689060605599813926741534936484666526812486791876430480452476040968734172767990591253943559345883921777874347167986479521591426125446607933371372893099794638135467092377656336150885858830984020010638946962049941782075700226252406458842001118890158410885550721542497531462910202263697528376690378783443576478466583217278994516750535638230947243914152620715708904686097407613179554083474987784004715520458909916073291813641715714312660367330446870404842133127772630595017402862697250020972079306641813048256503978900642288759548452613710147824498777682615159101941080667358249503698582728816283062373164747968143572164391131135409435077033044189506855042374453720130428469696773105237642828136664313239933814532939896486519292850880389329287427570186783380904515284349245393670664743918227341533017729054702027060431435447253923956984965839071336796289799855498282007848560545525629624562035234994494859081770392134381829760325668384251634379910870573832610394620714356438160213705189040133423056901317135753788148669072323127372958889746681605667855496196874581774742892433777362124851470128257213408464126783425598800066800071177511430833216674237857525876537633311111502095808805706444222790841115483759617870381378214741571238931216617472532324586521904827333265035969764207009793383538021002642480962396947319474615637536610241965515764536383288745580973743266250306202166719426521979743018721217815793134058361642045618421477533895601120101246405203744188895932881692178058917456695223469827066749496689262960042818949395413641417732838036520192964043614445324331287389945669517381688357116550777642083303759238414461874625711098437895836619886458753476317630782009588364992337518310372020668547095540639013228530865661640629289247728284778161174103050818127997192394635745473687160341108970958438062240524337683539744020642975553661489823166441127509997354321382394576109700016588043653123877245664385131631185664507588381848755904078382708370122887683840516049562037667514937936892369742909202503755732548780723885919015453852916424299267346552051401271476957179164803606548953842121683033828814777079379888148444377971037492594776378528146298208774063008556250203840317181078908186402355551901756681700054157133601462903880541029373391798189006667970646336538818439154172243424313581067031073637420570757562383750727176101062849810888578598457454357025270057393367711269965324790807602789770669365467727182461480207775361593608068679641542884180704699276093165662826342789597397443632979155106723925135932500333049609880121079949815279158926823434220593798406741838065627762091496032628316784946426979617834599572790144441462542730399403497894616006181813582984206156260020998686622803032485899895457253013275124019499044978823592010656363100863629317794061771426479475179227971656187639610657654919999468545767819020921330176996638258735032840921488798530631504072644702332631652290938122840640649042143554855515559340042374006431122145906661828332691639450186405813352262318301234382106688847919035922882268811684414727219551169737792285226512912712874947057184924025072417858386340349139243756801173074256299887156511478601902167711737878713508422583101531925946479864832144289530366992999989124005573673042999821103109676262354358918377862495253078124889775270174981133153806646397994052148323127062694178685349814882061799528448845573197380306966982147405818677542276610043729999343932305178959044894215771553082190465868280243574741264664800575892134247643664026328718380029413664504176542675948011447460503277294870266922844728102359881912161956173923842784041496463654721788426229663842831443580853754261139546571548462970111179215270463622779662769985136386232927514055281020373838237059428244916514252284442607171562821684722202545594796834711335362805182480955989925836553071415857987722423154813785344350982044372189645752037264429251714013170921921267936376558466896191905431185403530965711155763930266512373466628072063696257447138628076365528305939784590604691611776374769631178665076600253227860553181226247491962390421823491218156002479714315320288660524371227989779766698367713389234527732647769896946199131886268061691471779569120731505235949262630929349128481321608152965407705891138029623125647492610970015355882008627137083718348004747068800430211297329834633638477914439214153471915279862649548924221957137029677026492278577815720906365576665778177523156036136870732414434326084276718449912155837648348374276637020846103483110032837776281681321478751402975590215885791813008378845406606229153081058846836403137475823104525662226428844805502360159616554552046489574580264316956446861782419516740110159746094318641478962932046611188322200301013051748977421174990762909805272137343778297389478100806072658502207449099489250144050687447231236081388382999252831391779008150925620431301681684662999646081576530607881999358857201117143275462385340711173209048496459909333084540914927509837112968054618892277159307075452857857299353918868722534970264514117383809005900275967208765788897467179000409252840879812163047642453646281112609233057179958022082175513807356908635877948892823669281954973261985304699600659797291968283805411872541096420373517878939400544756350215329923260472922325392468183818283416235888050549587033873544107166818857999762099644289943928118850014246217910839770795724206893857406037476059677629122288797454992183247330748246101943756092141442135156473006046302625068029746763231492844017312988388963960496967985992865462388012854204355652204915642112180987940746222919020951035280731628730956821268076108624182187393384076250329621369372324932841571627467960470380602493897962695687846296925545087403142485988743772671931279219118819903621947662590625476402264573433322669215987464348273503902521114670150110531816784127607009983513222991752652525460711691796978587140158504613294156995320598314736757576997597955825222245925720844356949736803369336003574585250465414387776865842211021489140786578307503919201034192716822045488073335259538240507236468021008988882695416941067345033064699546448241466650849413421663975479977556242051096122504647748206390863658079395226573216580472564951034138651145004011744776084371916793198501312049700813694457470054491833535137251194882351781311640880190164534901430126402486202740110457728724957139129895458775748766374778559938645105618257693891541898573828062802503685940772019118431594952627993820495142961904031725378657938756879206675167243100712114114258644418227532814539071321062007057487086584785589081108618481089988170207311832183168351765380227198208595412703989984651978911853044955410133244959213621229477115658423653386462165235306821976644757774957605022596912293408669886848327915419369194834791933651935109432543844109913545945202818609533971028083223926922357710905938235439421583959381894187636186678714095335990991991069094180747859150050044898507487973009903384949256982007983688778183812116528575188202581996353645752686848598613497186605913434035556870899810211745668623396921552524218239023191594989684152648005219542528859008985212426935417228209842773620241362044190327784702508152316104695482051582394719009932531207320886406017255230906027413716111508597932715164526661781747185820809345154448203784240404494297102191824028838469339264277877372503417043567612654427351252996252192935549083494740157951315468975464945608902351748981346772126589571556218727367486388637625709198376816508516542278633364033725106827597436248905407536157545604970139788924481741694932531585309229670317871749579127957319474992925977830908553033032521965098809497322282084522406486968220343057172744691627366139266128228225731194362805684843957052717383649262505983141780817104186463614163270289069937390748074101631246636831503143821212854313861321248970305309054702933496723543436044481856914815874117004272363098720598141004886261220336758294638309242809825407106069688580568330862383837943917469376873437972504902302390481966772143317675625037939503713255419427841037910211378991694668325681578057935998569332481426730383892520291941276688025791281347992016463499495407731868758105048765424493482465560142352544116492659740679279497941874364318527150485135531871214824423259031947301892788487487237638191765960671357846929509043756586995618133131990820262644980182400717244693401122322727633168971582550239136029175561842646414204758017530392886853386185409510932025737961316390289968659774913224557330949565447933239493422814831358267844254487878646246951992770999732003165749989001532486320736112834440353874089373543492447441582209292284557598276359053455864664310044587108454895558916204807011024919164147713624014494822167430825162865039171032859118882166395709923532329994338482369914937636421606012871011265882534390211829296534768470320632835992210951661626815114937524162049979491891426379014050024302324496937938298889721029957415601546655215046235975719463495717925688294574724525973117342839768011400685442833914577744754981115625585511137252214319678585229514041394735898561639071624494919113044782969766221756129411782685070638796773938255522102000955651013926978197556906158907175980519838308871158108266419157387728620284083754738801954562240100701604499121838390733785841861339237977386159257706506467081295155764958598194985562664786957529250691906663267436953960774085669622488822364725795242040445494279325513584888797384677850825625521702431880066324937435427616821388919807583962734355520798758383460342830643189856603307547256787507860309056121720643560928461063576489474049759728165566449320999812526003211343519481562920347394287222803771224932274484454440072338321181708776815461262059879708568655470365179869479468796506362632603531446077684951228403482822798951950107781121830313625519710770086123740148955071667417086334039587255024669145142881288855636141827395615395070466352700022570926007923899833367515939928705272888819483768333116983480558869441363189243154523565399297525746988772860124805650264844893779872205438836511740119593446045532114063529424703090352441390446813409515259469975873659972880632852180891324593220738564022838746232228313620856421035456827119593380837949091014227405169267422232561509732343673420150143343356552602308472364624797503356455948823177325885338362448822509583425081569557949270120522150036092899238220031123216578510974387727457625367619882102178235412446363408760899581317322016069493896524808213234029330078755094430783714417304067104776046299274159361330985262454886003991975523855199313784080352589193370599480315091270801953462804146633467787725508170443864404694913393014148693595269366271296199829816308948532662008150895226169638978831923593997971946167939207962469001210961774733875989320967424549683132511895642623261107126000832187283292757959766885931384641688090357070529113227018119769751970982138953920661289188917504860883991547643078827731228619799606222127356826140077758477646667947348529146472150735922829415116724796735761202076013154869778779360247309336624051768284954289222434872402997979134176199012431624651370304265537160928072986234660008828342329882029786272675415499798830555212800818983633597446527630952666712135019138530940009607495204024662026087680016608869772958089905899844496277544497097875963359615790747666714572288765467932565873023238476034233109145580955606333711329952388991985666824053263037552843315351039095044940318724650923119334214373204328610895042063602321296484581884806944875079034072735427166644391530352654353762476783046260403719781282726802240530072525255993111103688986409507392131881531034755634806727453554409309179753009431882545228945350171091822923765640130440303391036503184256712224184233021933755752748345776814760655829967451946036957757624976265449880756355442668511765520294034227990877882474528968907023280796777473708100670979446303504400277140532425995414945826483725843805502356337497024550384768718142053681158912074296365142350537612963195836001853193172474411488103847576920124831116855208943527252585004682529151206466345226473266984473430656201988260869467852057515361907684779679873577503331547692614274681097815813874979668334876172961263693262120626420258188912985424999178630387303874132563321910596129815337141030685759508375664255273930202336160440137648666854514146035927754910795256126948965945159532223245939529652936857755546321871518880771282155024916613250063348728612996276875744809252217462398155606101717557280414682071964574779828942576126167943420014829037479552126351459365255358807478673579506562713583814596892421139236738899238053670400085480140813119504760871817121895542762192119869300959870580988744304343779418975709766201176439562629603725436994659815092280732480445677685007276210108297386991826225979984573084267344408061791487327542561615308831491206403502637110477931388079023568948396501655531964793987327823500780256675862987810239315868475315596213570749283086192599274512117789154756740431044110950542720523797032045537769471511969774154533795706775446299025507515847750119446846774611194141395525280494030729139231430635489852014232786839415981643759847122116138518781149532432917776454171910276925068454795253385251021709990948778900875552989167377006845467428729634791325992777607257211587541624830232878912530387369028273154109603066909481850475071567585189033919687666114019697495313165835253881166495279369385594928799869302429677038610569187938517694164107811694394924968374267046782930228619122653179632811281211125837621987382378650263272230688167651287329019454242120497790983081792895588604838955314470218685038766652565151339347920409510105511871618949033793084231908724254411502049834140308849480596777114773823248310017714458187113233199881045283769339736434451387851584078933763911016355212265458478607523752997229379118461336082929547259511018647287735273877230135206917145519576588222262957542073567088696442252749056179756084295927864289812763119211138837717876750412812933161378608049620313217004369891412978945618154759301183320414237861836770982367003203080557551544118046012876538412686667884603729580384179479989493537178473370066693070067672542814817819994445980149511127582618128000675476587034435353286417150761894062550424349625269221014880922784557281753373885403419270930957317610990885859153490101049906235994984693219841798177983631707456362512413106077551052308049738021243072585322481080088176553606979845956302315827823443520552086481312685860180736588714259978214050490936587888104251520590135724131790796561828080779116885512935896610113458161891610336854519657263253143742276370877412722445563879460234750030235395781415293989708300085351540384384657786419793152356046425006607646981030235253750219306571945665416931311421786374362957387174206357556052005595464005282601638691339988896557461647508490093887367256647502561891887003293273869757509242231045121857182428757794359285178455768086805409858798437331079760716564040995174393354596809553261406993899513443146973774918039613568868466194443273032066869811721337359001235619773662798513742181181268753210668088500102565751021536064826163001859860919967084612104064928550067362580115685042637353173065009898774634524167269689240702046482982916251047950626996112229558665719505965458817210480701656356909745120126883240848460059587329677463904153140157859445512364920129579604990915066001847833362701552372548444968249663532757116143268015716445933039927143683456360736259544928265405470411031951821815044582099418118185001416156521410170105894362247406012983827742038776503522542351685103199879008195887246160355269968732590989189214779875470701472346574045208414227068749717257080842129127744314939426251678859559103622588642252400518883783088839906039901125637650268950421963150951043131822038539119746553527809439758569090019151619894804942970764838831967256652809393063895803037304228924751124897590597122277517959908066368293063635455702632341067486728868742267432749683102640282655203444839104076536981003847321068682703906351407950971363565632195988311892332101756685131236907637366287976912973985744425422625038812233966663797187321573275966288325445034379567395126896606933184481315629390318588241468846103020816799244976114756522510451016593982685123708528439030689235687922977253620315549664991818395376186786703705595324639999320425617472231969981143842220293433147565362517947191089954322518862994809610769391128081457204250289106172573529466591749390159864276655014395121872024853354268152485870681996837508836974175419280340632594930230195242803933794116874244692862306537252053206939106178201308115614715389896151284679649162412741640242169523343951833055610304019093844235139459523114558492551044243731294330225670917330694105541138766722422701418116984292134379040044743927494347768748392096612369150565811989828593581154387734736611290721642623417488686083182299369224164978252167062667002042500616041234343844462652414660389658449470066915897784689199524895458126661372627586980676509133095490680477966896592545348710048226569403987074476117289962344770047364747568986984478976079088762731069724956846064351832638079834172373382571904744433866767487944473793973246395825150968424534465683345441064142288006416869592007396068390865748934969955696201593595330933935871246967929190863814235528037656648149490332205219717187203144094071689003805075663728260242422678235731175725445525635825335438024180023647696330564436645285543245111139479052911609016093893340884306951054641991147449534524516013161370471868212438635735663146373048349620749705459157406526837060262833362495577929333107781412914806802849383457017198862685188687745108225042527022642973842951473372771222496408235497247733184237766306626703969290058589502756003115594935068352827686728158185170544123358467211240185860298572731222571979773029829224984481205888691899603317686951171832602449526129698813141970748464830589755533476015551713073887313279941400401384074976646791647463617349213830371492884965199648935390616811772562762906317076467192794653092325527126310931726257506506112551636068774919900105788824939140957149419482958206120775508506348835075880384830821871249391512142259929065647696842912859246381629803622620305530943089889247336278462154557650093376140713737329212280762932724290732163197455494266740849719923779844795270886696407831473155676075169382895982134554754571541599204300231197241460584899009245037643209063406503109053876410610012271599260316092744784284181615033591788714370123981389365857745695985260061762103998595562485691051762923628453870839499759475307639449374180279639126157137180333212243511765349566266507039909423972082263850183539199070640061075093214806104975852448855622874837445248428323588951018752693560011411450634153420922644976614584758981139628458253315507233216615675701551250503211396130046381123355222327466618658100876629536088919814996147393541273251695605358301953832036783644654312129984999493964470513741029707208135251194141424435334792906174861752773314957408428348812513964356324884689859532889805356055779953830102143166526469548903149115718504758379145094738201375963537549981507716184443824761221186158932607069609983664161731496569132718342214623223914431375041432960243204486432808683914027727130765038336103830305871812191334563373620663169306027305181503597774952490940087924451417227466464445410313400976420633082207935616272552045955349557929980772612139757868656660164835979678965170373555244961401147063249488858097637604003865602143036265698248691688803807505672670290669160878044566484466908812460922590469604129070320537763267001932397104453608419286617262257926504837636331449970323086974465262500351106465237348326945670683308127010685080386442132872409159495303365096708480762438432434377715546995233326173979203032088620703913811206956929917812636878866069243880249270313603178714500147828847919826048485532237803407760912717561389877036697459031174866271125994129042012603461722991786387790259118986991776806201608170946075155829346884041108699871242189511789417049428186704304176003306661794184695401678581120947250261559297810110759014907876853766326229072935982703028588094750486785242369083345130981020209797006108343197698373933337625940355022283124979241885528168766932913035911459177997274976441521754351836257693349258641551492209560091025949516749089192733481795621294215662918991843201699051670571950566924590076972505209103161979220355991299539110051064197635568202795404849441465336229357529196496221140220056259265064527272270395619250126772404553550536824723065469917374950250581908468154035873170960248239207030767705673597559546997722080426706276904635531853731580924420933090318426753213360469326901374610083613240300005570229860857023117627166546739696319550789393395530337743706134822503371351476881572391166286952015476713218892296288017264414348356931658177761699708065097629244041694510995231641498897028620675943939093895802635476817090068961634786117093813292382160002063051062128586611911236279618138220230778348720795745880972919736603137485161213796538319671192525805181918328945720541351098773629350157965522417391456626806521076414873475375110010570329718003918738047181748854496915830446589141261584926812008151409184652206630172067316552703086969299948512329534927704599009973661604077196503321709078478514113203157376199800113093797227878809622732745913905796798636775520004616722986110578941528768961292061140507916913848040079630574325355523265981170005705550153188681649037370218696723236645437936643959143047384190735845078744665668194003563512854513911285132244845521707744086657199335469919566094026433203562749120433699608537689615898550003859151347249347661657648805196447431566658915635237442073713453109692014574905763015897408356646702011383810647641093953156034558069789748046382578602847485166125011883996800029723308741158959325464058084368682685365971137714593774345453774173375134869329046907575671368571077547756587677288762204677247087042185814829894098685846802774738664695104261180501145974069579066474118602078578023174564553206499614091882614876016401131751184485013020229850995304115317976739122214712835513470318601225939172974093710291883995653080920570419810383910366540164717427783758926236268447298852095767864559579224368133530890295611555064788237459238806951256190490599080989335878088776684120203118087188792143215281664592524385959586436344877420498040347277891644858319161768424862590438603241820143767158441048322917777077128186537302979455342424779345311797121387628589410192586435270862136242406193093659939264140797698955683477966593449866391507675275898678940972990378515467171409603956604180865112229643271838197871907744051789327601469615758708426700383096265311464791909843103248492005975531188535347895195896677275683965265112783857822350322164539583902146173620188431009642272624725488492755730856486043737242584451617966183874696218164934824562526716460452389941459439715088744070927007628226895404481804319873576660926907188406359650195482309956610863632061814266202541174622260820530937477116856631528555453621430486251868176693386166222313392077117488508613087073416889987435429231187964057255428780319275168794222111293476612214719002491525964895556339459217355874240211603261244311712430262467622970467019286632915881379143104370048943861768742060423587609292096712726469252242592443663568430665918991084828305336108371838691505859427462941120982620943529402110584008173279662047718555741490014202878086226627407286122359898359289190164264185593507808299634471777847583240944442581931306711800508547745272342194399835126038054423105085565982829758853588252804804301597655363352783113875316800291831713808006923587531680277154998835192697991248331976214284076110033416843565984059992302155970453061018673283041322557980401919898802605812643179084816623980667093221949934672215386025222298926973871265155880944466748497449668525621264382922186540698518606293916535636167615991540499074894514961859901051913227295366758075814505826675026944345022735694560860747432932406883360811291338267962442968937174326320720616885402484828244173158286095206726092793778739499811488965940726742516807533926424967503254998839238451155174114020697152137214597563557414096119178090171018993454396239325087226108826579864856928349878197974521695269025729918892630313241243313804002914262710761473655059263204585743313691623304948577472653664104189337823174971798401060445134164031859802638029018761485715692587421451192392594681922904186786665542213877588977521854873131323118491334954780235183781543000090064740931700055828001409653383673596367739762817902568703205234565268263186979084575048060471750063498714020960229509862636213419790342870220852421529166888374082412015981561015525580261071534635021158850205093809009656878601229408175155139359065879187239895634438211131855326552924670397374792100197555290111940682971281142203853412262335978253084438310572866569087036199219230319745195137571416096937831730453469797111773917749249122692282417903874111334740492307040591632659618274887766853001973927669983155086779645265255986703775822105002672853393320990588547791923948714446850278221408453340988037711553801211165680684180878753084149083235778181828865141624072474963707709086029226106670646571378781669236492145478621113947155943858994397156247616021154786248564039556509052186719993252851930975246650704067140929757230892180087108571775441830177770112922846120676544677037401115605205148341932693953915736080304451629311204657811206561026443447582904255113395538946271474990182752898020692929324569203868715992634133642653829563024161122036131373714776266181620885686071689102140742699006742254778969858338827575481023268715616166025414674372218775907348395864977252628458046628652920519360367023481331486327758120084986499975948148812771099651149825616506555609145711187961269843010793422087949172042012437696294720256875172424031952426593895897806338576456466337538255128141247561966030385105749284655843418897353738137485580361663302642124201634076979166090637643004683302372814380269085485258579442023508911814388682817623912702858950189124889160007315311130263475725909028642534996310421446653871765137920754868706400548277736232453144545857508765781279847714738439707801657930807459809269557808871461635067884932635194533617001593925675673231137199795159153269820247476044136577515023006347486562929955418685665729960164050965089815880179382167996526799588387452139127005923847318936042821308816708554753636754121297482499482996760658010979805059631087847885144054191228412202083420638356261779800086166643227155674688276692851237491875687163310703793794183589436416999323388764814866035693558319771246749316313006493736760237007620220526019313340598767327815860014882899945009388027064998368080333186755187730184349088451548452933823981019964529454225784043248829900119586414841634855889658301030591471647317154983930449027940294413253261391354439159575007195019335053424766216921448193518491633874102559269695810785207695120434630818591782764665454718249955571370864258438777243515027890419259517364888822295644692988293262434805449164814740370580009344661802979758860260808941636963103205658274030950509421658461535445310508782553979788489582591683263459896883682024874737323481925246783636403171034521126304509209049747367573322218365515179961698784899084591008424985164044670694793332652499541098481929899388710283877920539039158210301114253186056791479531893459808445924930080875248535577099370336996216716809534093481386978905661597344181469012569636241204919369918364891432582454759345805143390765754106726740274133754251797348251752567030429692103543801488056816378251424375680019744844594262802348647651659696632652592948208667719416424636463366685772099068986524261021534241675250086436236689490487779255920016668220663305178573570095547330384036431864275865218691442402141572540730717979251622488004806644837065253997726165124870505893785881022057488361519560369126752205661764182671795034484778723364988999285733798789170162980067829676055053834482029317797432618556907342431447689549474229715001727078230689030666674083463784621252932289892872447964906608990623835717038531617863561600861909061106916317404387317845022309838193858941749851152056781399802119799068987972987002814632073497488740695083530530037672514583269537396383255308419916013624812695836611851565871419326865321860929165909300515986606370375455062058582126688808466110960703232079030874539598590200870306947478158262710561387301763275421066441777732808956412008673382477821710188144980013073669194123129541327401301091284693734000885184006098043769922955673657927355328338018608947454965374275234523967881953462075996679333505777974154931827329664766800602219783377723117074643453491904491115703760964830041833401439329503463377632115989053535831726632723709062795225408498961943962389783863914593680779179480104052614985379923192308760942986440586673908008020466720075178155771611940061421433877740641400080354420328292451304477357745218990014906366503400811460992379848566130974049362579954432056801873813065129141030860319811763788046190259855133581374251222406243264045463959052677307328817603787078861402462617497710697676275139067188863205307806697888719180861042665678666824363667727232835547077347103663686463243902762191899149065451028702810194797841961461081914957507712321850269375101883710688845640767277405369225318542011700857567241956889203519455344143402773265952762220525034804061172506775170206978221462157907060461973961512932489099459204111216635231095240243373333504086056093316118478858978148060583142965192994034815226607771133652652953702335595774415740816931153327782366869533046427810649743831695249476869919850590283453961976361306117268092653296182097915003204753839147123298783517772874815284892985588197627775959174417949747483111194244398206956805935599440700112374247545409989381277883040238515750947764653444236931899188197250482288971155934450935139412754019577618057531102549635150013914405418830294351089645878862695852771705169029385074367566239582195938663556320144604290741213061565578165667490129344238919623893848966098199194393065649497091301148026360585696025828375244358716453461409835266644057742250415081652537870214624034706984946694038706073157452524242105504507040813562190581571444592439501700943494635559354846249316447285211660439316110564238988473999192650877096947049223984586869198458191736322245397463018443874078839358315171555430426253106361722061386304757864874247310050524518041851294878344818125312543711790080797252704482992376859277443044114039538258328926768164977773039333513701361904887795055567028916404527798428252557862960782968383924120246951618568678962217371358431631315132669841532132319253404123942952455688423729914715873173988497554689564259067568383715576037721942517641511458802381547054368585984955799549767570122104333144711399109079346914285527488311791833660194256285430369733877066779017167203963966305031393940038627833156422082610022715976819694939212883756519253375386053773528962726636777942501184557442781161734932720603375993963887740521234388767016946294546564914868462037142418459160249364090323463472846249215211313009969502446718945666566545276079586816669598784968324196875833264493131574833228863040522780526102143103664603980062134198070172969664711873131963526072628975097484682167649782362254347554559982665595970692660615731486062814676906608437033659469600505321217699766783426491770157587336929754578526262469932282494584930368416752859728573161239647401528272525666398635335194581702789112839668235906038605208150505056038664802384784625548438070372397297768537423513947724930976156925358194199370401330800456712158346607686731628222807425159103104525669681467198626022808295071722787489714636194834765954476847685106643501308109507101581302821759005495080874540373682223793071795809226346192930301327257560200884636280759374882978960879046684856146078044016340729237333668707785829408629657298753393451686979618992075825567817271293648255409909377336092735378360477004955398929323279457552877506467109696306060703846517013712141558369421915343215705820162099429195806882977739185357223987972753624881858889813741436718080804921208981224638499526011682987958430888528735612013263671236613110978667784926592837085810997949966685944458892415313487357790895983550464090326117219042784413314185041256670318211195110515321761435189746979381830809892019168770703559798024912024207616536938999724228843201215738169906877785750980725165267871355016361429790015967570104851983314654897750402872584472856267562866288651511885411036356604141044474707419587024261456146860777265251724893749419813743976948183237801003092305581742609695733051308804494603071640426453621558464517419801891964474240516298597105510283528794404588728074937586253538733587142463732664035021827955929461171403396387346103575947467724376893977109506231972422276413313414890552150750423855804361329759320756284077627032971808913988651504153519863220521902461449967642455138005347172072003200097072796569034808982917965819294928358909939509084339854211223581254968861088136039647851374761122171810711752169556280372612293334310977842109502935622684983514585374592547040450109640067621357470204725022780113362805947253857215329405877726675372853423189500784243831262217141477562875697085636245998325382254295481913897363566399851253421921598192671869328850919375902711412675018177641362575294896933706290280206490250757650016799351871095952583483941587396047274699153165391855163609844157224729520136497650305816918706496553148599310659870910412040706045999348778050996693148219782459963441261927499738368462871764836370523362439697860114147940141914758774855161191537302703855399601275502187736055890556649890766623158718112264634342851341019431026160277782116519084537645671247940047509325300062253527117453375824526655659630352554595911410757453246550909103995884078223439482172100136466290996665927339978759185247326700206537854390089618730041163247670857378229115662551858950274222544138893897789133144350117204864361238373749561423337615754984053422029552787622551871677716191490240331388486318025637026299379380791457295727421070089409675156296944266642118049165955431419279861450079648664024494170766178812433989584282753235164397031407153430363241167842038558888627830727324394393304653121920511101816461397645802910114782830538367772105438663136798751108366370227915183961385074700103631637715692831597202980764496789961266018574118336170111775189245309632232347949459703484102535060579938697055408672589304378058692308095102409193273834985126837042501789415758179789740119523154978501036066180963555575503893005802309430341414866185073501304676379686796092073379482468823873524340112870997677117369049229925731167824110986548269419896123858419150943259050617922182501121789614685581697824313428964774092095938654194233497648457951668956784452292937985106535030131338817730376582377427437981583968216722704533838841022751598312022422000774373132331482934005389912358727007440193405614851489519771157874906475920172134738399891184919076783373456220869741012813107610541063048304694540133057876909966768464483107593105904799466891292242872704720489258532564150001848426516689346869819486342960285125171440085622798611838987605609842036725139187149716147969244214671628218736264722553164690442841061725305682198995721327980413729433037959119230833292612313501252871533515928121591907407527622564376267628454899810024250751668239246976142139105610016456370729351073438015916698069143946250614127262944207714162826790494431879404763995519164728443691100844460211928477337683866644196236793764391044689330871341003429011125134510080467166117919175279546402541225495259538571132161228068396902987267214756524380846355601040252713229015655405925172511544693145843290448138185629884067356395305310003548695357787197899951625353436370418791263312770172366456301120654324088241109318637116999053734572035054211826153777531498850660096658120468888621188998636826452917041331955507815644075329794714823522753423796271022621024884614217275264949799282559886403400592348322447712175657699472237201671432712796096815570438441952469545727740740061505311346211883182808872405783454793887010794020981840932730521628054303995399367864972458161667903396525581716304571373612173855554103942779474925816079681111992225748223018599297139137475748268128272973168451903997471727822815075284592954469736862379325788963517130225462841311400133969031949443159435489096667402020685104100212882799810061091873557984043842434502598597558444440412298404962834639766174056514454967149935788091896543044007928014264202138029957559686246002734910194536856947674640791098259360285771809260508622917100226570286078535796470152723464852729420640237413268567712361271992457356405779405834660467890947507211688229139809797186818676308166000666632706963551193056750518269742611471621371695522836661052983019679910334321147035230396969698725580632081683891971890941183020695093637926052366538266962421628672244178790411840923105919099715235409308214890509302995565998090927289299415694050882981155770626873870066171773048031727365441003918472296376163424637266226254398356856395740276423169025202490105341802538232744387520268974830990983977744993908191536587682663970775954382709951525309564678533754984314464733013853225610891213294566868303785909106597258321161368840597206423163039890703942567044512187941345279276852305705039942325226913939669017396030154486520198918926147053844222575839220669689739072023810137940983386988169330701531242894109943353197782016365024518401909184439598663972632391285391930381398135699915709148730946671263858163213693376571573603498318109851728553691821870017908342431857605200979626155016030733464276218965075464568201843716298721228330730148856479096236634980394998204683432001339235077762799856345614350392957374372069646596853929822422536870425913261504884692633367439912334036674157029247437941093427626527296971214994732350809347328248828231609455270683152608427743434793232308228318599166727083846686124805711344160458407401830168071060004336556443200891675339164989178220586255187241017910920039381230392578875700790193182362094943932111093001314816897375728009547285276604363409691645322260207872144243033367333720397301268446302787992003087388604555061863308718491396015503897531194195804414007060933532480743657838173851031133989024509401973769288996286170575520840507694490527899218850120145385643086671977637594624284896094080918482647733908260197106888256383595973664165578719247749402043911056986613082531815578643219015774858377227987047481789240336502062551049900488497059281400625603592259070456023411581447409212105558683255449414021383195561672189107739730691449114908082666473594267906776755445922402978157967780177971409205575813072431318618274178747968931478300740214683408101946638946076140140194778335840122079170952168290657755964805524203721504194211217472098671771257052633560884666433064691011157779824288962185015402884259100538766940194822354633371229508551443253535743863992639078080164646299184789428081073325159653050746121459397816114308506511480115011310868480393784548764443649319541564356173412854316883682615208643622128382527486379583748421538817216422509245165245215629996718849710945047613105323417152964085145961840474369357838480876115451151178476130933097358842009389484047014172497421955237515671116462150258580383442378744709982103973691699657782871084773153170464042276261955320539135515063229995352644037556486566989399063078123462891470825097189704111263331740564328275896179725483302524502515045253236477922332323062442479808704693312626140613063009048356420748796761445749425989744912070790310603850615687500379237769556314847456715343850922754205758084233223801586841759944080598313120577726090611299418175663056704995361143424430379189399716377161007370133831781031226387648377922643383795475795900561613788431646674271101051853962110542254866884895545319174203144342612936878270794430425537604380160323470790857801949387373698236136274461456168528278414576969823088977819564151165298094816703451232083733568011320967476958178991863126569431423669294523808942877996922782945169584663793863377157936968563491822104624910024477145525890991538751685191047381920200917388747788722786644220131968155681121402540782925019947416571618170616845456828959009387360761934250364289749872238057007689934810822285520801144833311522192521440968525807077197946566053716500646967047085569392045783640649089548107223123627068966180380975743687201821611154064873713785677627808418600594378517695492557155636813169383680806531176762487058153695995985881796942561753859646178205146180004700237498024576456338125412706692873941625684643553559177702134893369649225811791915814893115862529432782922500094098591880215381966984173838355484358302565159366486201270105352473649765243053088106607192490132383202418404616892192870569702435207873418393158865324191303311064852435118629497471809032107631452933737884299518579180636714158133789379928941926899266770192811170339962015075873468569979292098180952423529971026869277059964703976157995317551387002016316452849748954719588228551104198403726350065087857175568202493538184891284523996579822370045045350312200666490457893147690856322245378558842297359696141405624405097984202001769703116778436721279812097743907411343803344747659467126855099500476562314423162399865350223979868647948545295890689966537830938252388040890457841114440063461984540248475314193983777205325794351014651444726687313534031091430626089432939593360668263995831451449817932367395737155273065608369852421466554169442189393896634192918216906170911763850592184633289917869773066936126491195245042419412588630975565403409283036839420572643442059676772879911399262063010590833690577514211545084186013826926984203925608974564603101728451411278977138981380426994023302312386594328399135562778547458511733404538009377661596730424665792323508574928989083130744594725632856477018296409655360484579392730565725496960048929419332934592094567855889837693745711898109552911668530178415405296585956720651730075103100548443920854762848702378239663899390663742911671411224526243263820148350259432109887102724758755872122261678314682628747742350574342689212358890161839172898695961700991685404999459437303528736448170924408641887868620043377241482278111768166253139085185783490824046643727501052181811652700780806060165650790179315260331770423421853078619584957426999207372028902221666004231632111554359434499523176022418711190035353410158411420302854273082655895643840909058649131164032161568273831826314975594742520417128415597057930047079425644715990694073176192047328774200362889105688008675380987927524112611274860872429433929963632210022736220161950237174348510500586538205346683232583313004689577175649745872128710350977766747272917503237335652426515222320593803072831598244907717980515008979944238198341563322586613557346412234502184935139576729040229331779426849737073222030397459288975237494033425516285949597910508788678751123819011134333529364595096346785383678706596261661278956086179771626185235933649048690082261681017073929387069507715777971099498480195073894190000938622937352039769008490950567578933532931197501955736927729770799608938970568631226132766791450935022759914365325294586074032936187682752656142158063843634392683482815609687023171956960753069756789755274650227715954644609070122466742438136180479722697842435589294288330147666155234082155721161486481504404846491845800866868699514582633713288498860274838820649468881430099524568041091819142182698603378028692634276875128718028578227937696413635316740880972451158313084480346097892487469227443657879018023429557142411339896667303758230766904169761621356149184948010667878043716060205568666323317436810273226650916894991650860071720710611188241738869140467025168703213218038137026142185023677149391745182885585934335893858276582511570824632613266426829897895606791433955021142790846959054751405383273200730421138829613536011469073717683738167676050873947217405919906902073995207889484772830070118121858807739848825100044654431066664147051254054237672190569343437108139034977251417543203655184028145089820758688735304638731430621456411795021226741734051007458142913740777699663377282169289751246391104355854555079428542553651886639604042026717970197024883163938057101919812811088644214094341248069664002102878008647787905611572188922538129386053916564003908273877088688479179120104516120312115921297288017162365517862533731126552522808165557505997758636142647491415526413861303665448357220547400406784208708419340358854597458092024007577573578061990460191347554583272167479826161730294182776208470085388222405952518739595979494320655571485500607379888508377814407490516199370587091756653659678778784712243374338046185296398619375124361049097120798786776520878046142123494768176418482087738809357055886241217416361144587552925775070296886992957671385776702567134194017690991689879652437156956825638448185881150821164450007530427791451614954699792221786506909968099531357155335107982744030463565671961818462329932248814013286925256183020738946607397488349402603788323375385961951349888983272171283514842691841479214469918004122649066249400228095909333868210815661316346400510668402125535132194370226192004503628684538907987906460926457327625438705194755472094124172615795348628615801243671153653223425336542794338145129946526050089274335477289412648254471422821533563636085198104382593396644924647998192541612515862933953629051464954787953757258274290017561433633786683329924275045121886606036654958803985792116909397014752313127883035579644642747046899840568719009465154672614257626258197355730461902693591516124683219318988517336373328089245929840573323431738342625259653746927799265717135150834171377594770937265569713475971235315831666736496120039406655173517223534327193232700923238974983422912284061535014259955814861954618253976340552127919589013343012517627465436731369503624591756301384144516963800340071890874950918745908373721149219992439737560315022826051443848927479844887220198217919204916885279443775640499409359323008301684921955874413468866867900754359032753325029645396746044338109140659642829765249564701256838798961799912849074221170679177052427009413645283719703620344464400929500482520654622538149168038677720518970646460590492051731398279309987526658121584697353565200334749893860391165918059653985505564156051790770147798990935134145679936992538871263164041746052590841161344104118058514875280723537197099964682857706760689894659986857199930505893864385534496497139328669190459698876922972212171506542017050399988508603946732854936958706175776214744170349992213532423767979414714799641850783541559373831453225397242605213664019126809472868851933168039991756071040141173545569018643623157275254397463646699128418466337248279166115404427160500281596432162253068415401673999089988106223693600059747422056270707536532933270611490319479025632951348553161105656614920154131793497211970952119730785147717326459615346752834335944663842467275702441666391402707380621511124699923910975753330025829445890222301249953518391290499331507147087064431624686325102455460188165243091793846323312252203154280656562675115869267423426340800852882914392913464280293183112228262473218633505220684977795021066917440435045874193991046894073531162709075932547265572474442220983538308741129919560912075841246072563554611308189941303665280610713372587324147647258941965925391124771660848043940049138423304374799145499447178883988201073499197799856403919403979012970978039354034446464779196704229043295829600616293957570351945049008924339706150728592516007018843339639132306342036767589514486767493856488108495664398819143159778583467685306208056194251144563530676868787247745870367133414289293829339109466355392339388963568379545972584025527804331575460281050093425763723580684956223661510976356483732690625695777897169233766497727999674730782580192107525607252374086755575494881440542569545605769078177084655253612174095251460475292060985247720301432684938398546247118764596112500949318504910367102835380783146670097367750717588179009393066763520760366553913495747272648504639904792216264619670333333880194877588706799301159443328074139896111277532028511577545231581615337657391965666023509723972108548069998341626565651466702406331799118132132843815587509160871702485005890047947897038142437692466067630437355398580083294561052706155315231939335608045324717524547405927159652776134249768544044522748157232851403308337244470106899601409821197732142856879997024090381283388002689003088321522696265965453467582502524464420650716948910716191955004978021800563021867143307767770124268643999333486215513098702656093401358814199384882705409852743641649920537248212315892111463546306229467252751420220386881310017708688343008331953146582452717305355363024696139351351562350556270902433425090529049497334514973940412047593208384390750637163013636684508465700517453149194341199811438877404458137785250976132057653180118279276381653412788321152587635436282560302443932513739013224848814341235222216210348812811745753333922021602453851627261495997727911310188412089466905930047097391719984198108385566134021547242927738097280821073229010853949732776903295870752760448688272555046549652007575053025395421393491691968220175416572609280679217124264400662296411531001817582823670637118650319731651489752904947510670905449985834823222125967363631773940960963613158756270583860012011009724723333032908988274080296788296667732401511248807020331482674860280881436300695009757013505283365619217274853805631297670807306853388541063655391350853896131816156531200331906272196206912219924278874380319684436886661642850093320857790679947663267219388628253462995065238843392233978772942316724979207969026422445390575993552756410596950586923708455785137852181019108982996674355384480004693861718386717762676149895488728665505866737553251304390784485931408326311565693890547745845380448450840568247207360987640393656139142376033322996041928087500516612285676294784677879099201093661686529389332913070137333147885034483093184258135516326436356339675362831312853576646922806300692021254745811185532122255008013738514339551855514614297793825888076557787397031261429181317636998905637853023409624905150870143712014657255129225745785503342140821128720821803087337897086171472705703047482128515407281770628431716251558206490628377887488600180591284592684556672418888532973638062601324014118796615487621704229939927429659410310015668303745961552652104159013936036194957729594260006353089718572100880104556059051118740029462038305214787734361517366558798416142804410510275128225020401401621335511217820089760890613164349116195142318957939682640350596617127599131734264459958036023184313937107482642554106970250995574982005461414270234333591769026024600316370212674051164235164016317756452020245594339619118018034163388245052801831610281119671199971945133534699451711847044690112510286651414413206369120548038124279820791239728331115135997153811569267216572575270070478526720836890354021531612059391132246140324441119214282705034069580472814449393046698239208608418038860768613438568033625413318209097091755296847630185139082603737043884016422447391790117147773038678214050133502625832549120425048312029890223264331215757289279013761183959690976019305602850373320327825311533544366004574044826319121512454318656473348248702216038633800022002459991419273034851247705970866857015504424615287860009164977108846377572836551298025817489407754536435589324033266788116764504491530124459263052930226625344701618484917117965755032054810991857109853409176435619265413364101106061042106926060175791036660189491613311906607859986455729636406212716225217964711246907490116814945410507622965030295638821051697121728398244019164465028052001920518628377811034775210920459175115622211527640195713401777578740691734406851247913280919979105879802260293075474130861636597306874441234062471049250257130701441215389191280446514029645041378573812980768397280200399058679879898360344909253925695207956890121030881978956233040366339059298364728092389919320227877288028612458960095269119134082062988184040902023566375552193027692982100587489035769407282279615485234906358357178732978328346612727592442250796225092072268392611209654156537206074594172908402586839415653531872733612854252186834349003519419510408261652453958533190947228054031056551006584178602157242262953189040442595796796944484359917689950811895652160348737951569639909077734953731410163839259610525364721555033510731198475282322363198946616099512072469842259676458145064132834934951945620235079969225950177692955738074901397465685699374255492533616216067527695367385019096702582071368603329330615996104916788043670002669190319998549855173526231407257245767059341672985039009708293801213454685432082403300309713331001527588750184377798836841923523259267182330603668358843179583185229674888111283241787282635604074866026018486272297134201934458387365218119448740754482760494475800114510474081180214422767883688386929765217775024931816449802080602421465236369514138725737152014374082146258226234929377566254895290937503204201022860260436953021252080248820013465759361599727259214545792494926759779342661399289978132330987306629549774294076132898618418442056112016617036671248186124898539338414011126818426229163667262443629224577412887160656862307448094796707099118192450038697692946341216869176963388262015190479872521161019174810237408083829665448618012039195732706098857146979150534894715503611552296685780079106241790802540951390523178060035335855708651674510962317695403738702273066735861630934860360684712261014134750463530380564244353933710804080617496649613104190251775583537773093876611593192778971775161474327582668566519865864350826586491174913133241408675959622040109667134915240069486984709903087678192117157583599905792196715907098526530616680626680095665854917229022982995085085104916566493238555310941926255737211942482127697387296457676561594166141413638770161559844705452894774212690542057191304843823928823306360563464858067161674411690777727402099183560740748266831735105897224763445250059626281507610235864057690287059822638055864146118513261220561867619968884028475788155149477046204257238735244714716560617858974170174578121220005058830502065105480484047503265921272284681231873472488213051272220763147892722105555031131167165194970399995305350635419161368850982027486716556179281921419246688360217662187433484476477464963460654333305595147525132334633653877709857165247030555766913298493081790741627073949365199599748246047954269688437455315107973006766118207772312768266027140468469190964311704324772170473739143199826109175560065357419603413843963311515102142672558635445140320466207703151186260552190372000565449174347236159755162919437185112965094825635026303091333142115972709423778207383690307626249326364886374289256899286735831372128835984025871891227920813613767943597288250807822977877134202231948569480148059714752203958730597407316527409658790712074769298059665290232906632939682451047876006852473443368422635503882054116552761664284663025693009250620810380871284768652717926371873015902302358958434560597821149927843003299809628062046797213499866702056256621146909126916065078168275130105247753284016302146636582504018342926578082207312545839068422988726126382216520286023689010383239708169861315316936810592734035099702228553786385241490955075295861947427679771293536853055325355262303719839895826030591985482528220677859800277144922401830383384429334293658656152052460009937880257972169261324409290774777100099178590442067880513412885767624978592830425943252179642352617918266007831128689452025505921559694055713967013520826167690001248600314360052060174804087855335169059930861906478963328799367493391194095701790236215958654626363149529743577665764381861717412705647666645807272504609671091451732990917950090260812054019814597858912186230166455207146796458083713329452009528233511862907794829420592729060653200281959734105126478370436465368113399607086196004889325461490779217775212683673787002603428299021656029295437093905169621943872122552687367787091041020749666647025663437612613172319603027390056775553782614978103550530087641199239218410962183061651929760662247228001711963535545874732184807959698758503270520569455805730058875205277848348287484123078204197548860053664923757387630745854042637309931291287939330064307142757721354609511924001210702677315011334413280197659688217876598852518740062614080576673457171458143864567626860750755936815540859733299561618356975316281606805552694488118544300837796142297830539975437814460752299951288089164449000006308388393931683128502978998294934961746133523621964809920264359451343781988836580857806942036239739067912136379564507070006467426889034697544765967391742411709369814044329569080528332552516873535886179173092650087189981086772471973007781658205980996154353288164691145966917138121004112622107187213565980653284547875159735433487117595854331860796603758010503823553587429947552792975705464870395008378823139575038953315244131175078785647390501616897381577251721531628959725413921021601847147470408512791413366577953134709015848263678833256738647108981149134960293105588711472175646689975090506449038290306373730032295805326915414338890065306803467550790922517926015355141866600160277809882088082831057135027745883721069655967881111045107730997527615003439186456790641503947255178910512554670665690486892655186200670836215944217825858523971455202393418887100310946762583598945150164708226497471744592829186992804385055744897825683430156061359863463686155386671420867503545475589098951297435812245291199367708357329996007395782558373923193742839960991083245974068873859591111116851129487268920058739025030529683429739518043559918248580834643827038813611727565528385406930631384745291681575674778011527210594485956862211853399443594458327477774457966076691001400515607920539235226430017692814926061144724171875644125249228115232140712252443431304454878904140570130466898534022003741444620695031834193602719797119695455577559259166802286374678003154517414259379393281156698099084563931992513059063992032716912971240317133934763205294477122681091309299663905684305755844956189285144481477299484888259908138529144808878079492780325049751572606082546879389537509815848660065025690523727145853101205120124246361639391890822053264065219758807973338543442262445956865858242844409375074406613912976071688209282596295487944073317421429296953063527312939834548900652316087286049637583005476625822512594844250631264905937996975410070210228699643761062678070757148518390852582714832976192114927107866490194247137563154163024508499361644206444836634048718366408501727791845807019302067418399767428400945710158904872047486612016310739995435626192131867693692358801634790938348752002806713959223979236877511012441767246225388306421961003444141212967458293209572430047600538019428961124995714058770981160713729562034101548884128687534848171318627039182958092472146349294643804860173519519933503209453183190281014684689339915750617026003187884388663609875222250448061097341065661461505528234056733196592309119684497036883568600360643150193843030578927416075492837185885365090028276479306067324459839677351048276336951432212026349310852785122065328827717688507238099624663640418042527407902679328548146316100101414954082977761426323705801596034265968962562986366281922821146543263863675595070394862967047335855460432907689431784396427122034525317047187934188843284622678905368681705599294923237582765796139356095469495989516960755733546311119090304367394794118661452240422629066613987565511209144712089529763017851502673133158415347797034070093225810221017849880966419447558730354892678484657088091595403023856588687226917414632309374019632526939972328205897583693595120927551508722294372687991790279238760298581352425096816856463040215408994874548143026453467731221226886874171677345873148758735850485673440550711164764151750381043607395825243171295852082918979484759520977800421029016940049617359873943931642896370492732983356913093238479006461259124096010481041746623008947284120859847662511654991740411717490606967218622756351399077651145366468223803724911770005204543801241976936258267631418848965394519967573893407145252759213417171489208776064402407144374272240489548693482259934269641358490403115291959493614200356641922458603415285400694237279382464789459687829663164991656211098525677415010359968796515574459923283146134105081752481789316486230183806179814116416166911712652543321669279411238634730315143603375336043577706902266729693318048370380610973708391368518230295794021553253430054075698859230091326379694079387706151510711833171367854744742751158349367645411512848005527914351234674368996639633928082654740254100282848123503305284751222745923903142731339222090702666749150549316094252993797380789216895432540031771605339426746652655078584171940457668835471511975240404385093897239488921165275846577802992469204375708525285285894102320457944592558656396208321888048219957892398308529187694718447330975176701902238491574915932740919139218915185218318417255912721309890204613327569005476670287389020486294558343449583774619559152938686646706202166716253209574517344995212770544553347888515938679356713400134328043191797239490705754239979583517549329229141609421105827748587001505712737446427353139538121341691378093551845214079365813586639772497875830430470789503266557010910657132717856978437345361785853514621247062103417784165515408448433026664161134388432179618869955076571761877759932960453157283828814469480291175473058472781121979786230623637092707289871549959847464787612563386725236806249170868648238506529434174745291380130347810761177355069191674031338328738632644069072159267771079271302851655274150134549780244921474576435798580351907221920255614488339807631661688356994409658877685902031715911639497217929085327559315424024013028374061713202860690627273270230598930161766145932791212717443782657970759521382053173194175817860996859783024001691324481548467433573353065209934492581659107149269558173414973797445882308973186578964706573901931398212259629998796296187922391705595939862342666446839541752296670894712490493648275608804017025796724249294931845331334556824460755459820860648907199828927222074352904053297711919748191435102744256308500015647618320316057768449970215413446163320982681106762913344444200330855205498434995849986258141867619818672866881607347703176488326612939545054711150746936846019911018635552581623872217427745261846598981029388772663958042983891929719333719793018779560870156335422630888532932417795166961529856997876443664460870102403071962984274442857754417991032376774394416459406068173675744035834945929295539687531085844301494568758787705787618506068569788137644996752994624870994467264209464012735046698514759882482204365560099620590194967473535750956898520020881876822176255596997771097061990917078513799664552693770716592652420778783737629485973745627129536790679652596716013777736469650083731911837763671499681346825872318116245278113085465144220245148594356807888840450458087990912874493220459215806959683549709638649705985647319987367043655667929184830334563074853672417437591981997476642617239164391583364860867600263740700498244716530213564709941803198713896434135911572972337736733667776481086325122464977009447642144752417170459445193567254217939503012552078953174284109930645031271799637229028784270397593834599565524393531562350007231313623679482719578316275363681086662123010581505691932021013081495055882446389606605068371569351062242377507348943859022447890410723683434867056596701176955757734696569431587944642504104379241950556175865628332044285446728421763758917996306464223226317864882675043987970731979278774536498962937899117641069645338334196143602782478192526043171237321280922435302843379228306437387721570784660061257670190525005186847689545120043100809864771912564405941292678805170078133666906289204440884613298618605300670983563962877323451603939685357445568615241689409999591101319224173256618031869245891911947089367593209032998689466253249255636828927686509306672791211820282381815659342989973991004491383358758227099045278666196188513277726469951676762781263348664416884491040716072117123461051924029282675044747686319399896934643642213838472490409758673095166657406475977751397285873389621490265207075240873884223376760294529051522753650391106778346110200885114206951603862354419933708573082609027942106769189860144271740925902720444792122634269314448793489190763837797123557883555191173834814442167196615359185323566714740660622420801762592555093079910320682769066982179280758071924570813028712377351078560524842504973451989073739148140249367075604091944178354350528268177450657839205330971865166924533012994033531885190024646931798900662936811762142444232036822765720836480237146662021261562665330827992165136120116380124499445769968931914010328821754168886921175790408247277802515299382117164074032637350940569663082420816176184773427119072237200520235584792491447331891760602529080525277590643031082170105645652501472498295752987146240737148363515119215941023813651764512301635949963885844148301756657287095148533499095535936210375020606336315070906789305723672733137701814825830529736479785337855043533197113708944267788171971597905791079909857587800101555528100087377745032935482207458645352253391886819670505569426465597044875585297176332166965016889033623942065146182760409264627795581924355811727725707800778990069310420377051293774882158663256220346272163964113459404994782194793818513097627951986449067907550054757381771263703959253665969389349736334182135614382326168643640310300626561911454643586188234304378429001362340899248307824035651586814113715705445938530621833903968857608344273023589148537937539090352395896808652721564928118280159246812937715182824020833812836300963234332943088832746043520439338654581960455095154408215323160031191254079504175834988774869956894721279676273655798607658511245040366267185620212971574389934345928131022939358702921903298906640638001421707990176289875176124846538445733162100330330607253948035425057661159303000771279636136959466713203296898219164323189830323492477502671015800481318798293072874093597682786410417537166212030114280651073428393340774429961740425839482658134236354693318050297394253852167694701541236229836279380792997576854968607245050292388763169558938795745675209438877614287551386880675494673887356477326787111684481829684529917741162187030716395563641450080746546755305778250970050450747705848695150388085146633927431382845663934515082463181105592545893125124472346431065460385232819376024658812459159232889394954586117229151395493167312776489487345669165401025920064630292495348686595170132889636362252073806732758816100356952839563156233928407853091480359568126078450829529292652063767534535948882113380026526718934452648624588835740361680814086145838128575551749502347974683307266244689822982866137422211618829592404563693006270564954585162382370809889234337591534947734278327872024301387263519937693734674704726832529769186701243927753612812779082771706290372541371590905968588849879455318776108935296017814190988610374719791907868572974517642286540720746769007841047992086137359946901509609199309729305570605063738778427710026509542420136392852431172918732607539482755237292500986537592022051873427516245182459664469252804650117681775702289885465754102896704705594004467606256575024992166594693271394766933664848161565244870505198876628627341099063825271034874963746152923125600942561673026259305063999070891448037640900127558797828884542134337099956888987007480991177162256280489933141055276707343958347684719293104997765385077304880608058669392633547757279952845409013791188388389325040731072072760072815018234638369640446367150781088607030455815891962414871468186857682222245662796174903385666284043450252643295563715274355910395167317960082187321653098309272460202377180280198044988471275068962926332287034849686977475252341486386425727865388160151140521041957703809272160037638923247969690538129541645336847536661336005090461240517872140901110315702157542310665152057246903980482426898037387162880286527107468278898645565135842075791261532946698657492612483278831518623893266491112140560053369291224129115318955377839613060192619385167580774219645139580701282560712015806379019890533392444656326668207984692878541117411034639267419420198068377843207308830470053343361474480115025277254599187884778073743625998819486668831031190334238807433054245134362354834579766273526112305789616353310891596187439734416671313973197150860368048120263273307457759521877431420625103438227445529442606638203537523543814095693334053076535515824204030264147547238246486855891707221867727506898730939811473053515189979902595611274190605428235362422253239014391154070754281311478946736154586671801601945453962293083914524557680924260190651398876859308930826381761482843270159524038393777812152049946578876800593962726001439373629138506278291778005989096018780759840788022764051219538759872522248206282922133298510195944768344790144660028490636765003665379850328028320842450362563145062050155009487285782183557637610489288154289446619350951999928022351632867653788354632550917097335236641232898875449559709597825000865173882502118882301910530470516038584586457462498226422677741337505832402758871282195442904384418837908381483225942679788018937193827707749287702789089019602563880291797184390626266206722648131415681934641452536736923086429480493257186678413195239976056639890638295362347223525507513438540492462725229370643136141081702638175313498634825388664283071596020843564443677269282503402224357075997286380521103074964209791820019983172086550819935754120393413433765613456450807805311804477784506424285970653102960097317184578723337302850808180616577972613093629100825579934109826006142660570734099079380794366784484139489709820700437030976465509447719605272958387144295897001010103462357991009229166224810810532190458295884593222425779724528244724806764751510579091206651462468305640570044186698375078306905530580073974924201674927388322005112009302471454234591941713201133621102734455978147263484468881584778718923610477631781062041742195942900993333481298592906395352798694542945511231809046616735647598567539594340998260732215886911091042702863078500477733929360725324448216340909551304437878702100806824112005422935602149813631486045223086344023215836974315885414169809230352178940350885154004731772711545963253595644463979406194485658006838442215152956811848355081126338158350207491677997314989519510300451901199027462367028202869091495801700232809674277960111614839124045478924275260663890253812541937814813045822969593115515160924903603955038508664624995568038505208605159597410975107723092354966288581799729380475745243772255605742185254607594124895024851576846438384577241101792148005620835490819943244854160208086347792019681727773371554103992162961373315405935229715464617503392409461634078718593381002940729769806155033742231890122252424880958391977553379492190225746306690991845899763255064551250482631016254677499625614826076543727039164692038423716444490199418376374671948909734822758957037727664501762314298302256537355200550501671045935448362175623246589241404393914728373576341818252574254967295961194064506994559914155754552515780042563598406927931585871816205113277808144669259552538898341496204925919118178846866084514773857003503962969649878318072633900088606176043700340810217547242903283096575291642074291782901689948405004944839577392238412379245264032665061786426503530361395047525168931318159518805361672742240158159109457673192651616647174100769221861954383665451827414553272517170125595055767648791636425853544504869464781924838707834425413700372007102631653933475943890290763692230313479840954914394970162823386094941581438147615648376509482696432245182180377853662584232998794730927432881703319817039731310807554603162753572295514793527695879317188094263288695946226932781962004486579582192437851643570844769340654707556657758241747624338279284918802200820322443080596160101843368044883150137508337361467799352227743444649114006864344218379565469336841634435698770123177619173304278977344886176571763846221341064673080564011375640485264800495635822415340830346307255197243434932966692170371830013491708877162641667855752350612302448075442830957299781065101044923984812610736021636192439505039420930614120085692877733961437876692040878897005797834043005763542832371757039787670038386916591921149983122738571032433006434230462069203400008706626627407436273622866972551383598487906320644089843515205062273286151686083412760693382169136617215650231434306308277041861509160942578532508559179944832956283190573215201644569274789584209739011592366483152033954361012729047199820149623651747683194936682310271711068561190586522438688087368670450846557231431786433821211166580604010451994719340600548540333311354401633272470242092656591764489597377912783892808049642711631117197659369868586609712927305808314974392560881601972872458552183705886895590988936851593431032074531635509053547372742485605210662222297016967674088015998354411633147711830740745865827345836916495413564101927128619594467147613992858429599862345586990151575978861647555875599564304263624674912631854488930216295792938959064995438053207498052225197527045348437451665034443855268343929356354535481427588418864261322829247508070232871582135046428324447351144744142560340127698737937854804289374121927606621535796997281637082839232137654495620749722465432294937531527634297177301236886921938959326401181333403510834955193751863626304967411135042055699282675895942057279316427179220743470219180803485363259175747564579228855316789531486942735320755658193334764589723746384817806769765807972055131685410612214005591031611297515831736843708130370071175523596285400079395197430443744968907751532566753511687553027015336923705861113972026703261221766461148558170941632724320755517742112243207496321735903743686495854594099281730762766326656127071781380504717976542600892858648464754514404079816648767858593289165233812215946378107088173160322503455352683086532112834246879211485321327545323085691015217438162439970099281729852141788715219891731389976946168713671330463102448741405723047010697159867205714034743018297778703246787288141353054130522611971887117485552025983151691756779434520342935581475469343203436492982764544408831166677715925043084626549448172148946450585812888043600554284283552283912159318251878866790567514575873692722611900383462274895556265446551293301197454318267207122543099429888992515916651517314968818211710821847240394862399484402949589633454668093582947679505466324271744715049989376483074262621889623528203433568410413147517667886338035719102084261653433513729669826229778339117720801005931574413677712246498892155672156568772125951139015030376859889711085165890209099135114399842800441328855204611931332976247537891641360089675683222782360745528104502587601522719504718898188638937139307443194864931040427069499398832994349927711365437596209305988123471845466139643588349126589823225978301946667728485456732962184488355928040147779753489471025885003692158355620318223567825238323715689771862974236903791210855924391218210472350256147783403141309284501366819297868705499849016338405230095570110424606555154187614366113127802551089354352259626365752439469762725478820457448953179187475060806409311957759999652020234396626387162138488982200716047153078957207401487708986396003190351154775736768202044592303927247980891476754389319568158161286195760874663850320814950574309930890650440375921187034954002760309581044540507419001290085931760346727935050222837827545471499250892423968243435972981749092874532768287188467680619959552703840051150565462373895162982952431296914505557616362084568553638841470882177737645882406843818184475066804905059319727644444092126580901987692748258618117027922002172315483612240384705776850359377149561515119402295497458923059292116816442519332177167652025908284314189158902360379063952021711248503045089311340362157029220608791147944924290468334913760296447852163038778793999412454508722690570107294437507824255876500458682395181467632090291713066309915496628987014985429819831653410517410107131380891010957237694786813669914330852814487551133996825128570057178520693067166593488843780682746884876562874013168529839288036551579741165584340207253348187615120588962766646030970261332916321456003575877455171607184060517993023549851314532721837626292725845083789817670779808104890396179550375620412764011668324920882646799531527544753567011018478628209877942404553570842336583860390894224324711970162013752134346372312402192035108445391049830591442786829126113711916017664387359178354650341477312273710520086729840360413040882615689765506482535027577479541439449650920703774010591134756503816923342715398008231061228191043884268680072083798648374564574766961777357979198520672156185234973099442555210497804267093557313848635237588338112470537013746464180297686281749964716157602044966103956192366049097609924091435846476028843296092801074250094083833025183929236632442469596639653388608936378594659453457273702847121118391807083579126163658430380930697091437490475970529848972427034093288647398966017581154897135475115139605235101535525337379538202334679598409088491932970888048900600641425677027746090688593952883222575028387179322811071754060208038873248431781246083421213722508801446003467499001688559904051603805326566787110228711585624357353478371880837661507271725433334405355207858749956809978005922629931824224764809799496136464343069500169552185218757093702918182568592306305876275805617351757020547384177510606152632570335509475448914032272654675950951780639130397482686411718720570168576223647349141733095230040425414607033288336655770446711111192873442789958398048643934571607054380591451058635525500889363728269254959957324261700469071637214728813081164371363643099881258523174669958558336205109119288339614084880793703253417416015278617204524563179661192594933182854466661794275200527952549060665598231863621247273215631853687004936961966902578337315126124969909647165983586721774369573444158650080827703678707217976341110479345518403640968810230112593966025892789726496669988279727301466008677259797515551154903020652082851166942253217803130057671474303244559811156157137367592505790089582549267006551326531327041254800255399652254386614975248984753484113261704531123816277290865397637637032359281508127481657265507089679389379208747559132695197043419031359536132848744981152831233182105092730825470981432124757564344354504830716926155741822782727442176367511076308584391510851517039513395142267603148111391533412802335055214746400274899481301211010936465347010128474943928955034808367062719700956945005625761102042930301226530607427451468513473087444366852613831894653421335700305000203161307879901464281193017035606081804156121988733349074687481244392346202043965441102731651247901848685803756514827409032689827465013685313471943397491952930871206002069444220135613565368073752337720437582537164948754837285933912017919463321699702782872300807931562724005367638476346615941818299968635507622255440310003417302392341154612480967648260462214678441420176554147643188556807904170199290345165029532653985331802216425994794799343726698080648364049111877574488462742778356081864138387187447363625692880876564038183258232062203000427661872734725567605665894796850460987527139970675875686228881178603782059608136569474762807522320417025537493667268483105441423961665567178803926459187498915549593095718726429683349010593772732857249413820137825224320328417606861059693110003329278858171116795773581062486112310995792691420594311659494877076381454102414881557107948719708614897367352056128499220953764516394695869717795346191474320675634241326149949755214496693894349818283462617675818151306408831596622269846788017603123297890781795777451936453898555133803392616753989558042254774555071102029251638028917596591316795406404882483160050902039327844536112323774430381773952610196375557040911806407913764770836253675729908179035332850825225628848432513238113862616209720177763654512764833081017068706984730078365927088027236743110594679969511263816140443271013609657544304566488853656715393628404889057166566286901138157995739644232125635730329872785382826359699778117250288662776463547573481211649108141698900505253606678917975824936833539624971032667861610239796817458646039117926120791615616900462514884539086273560899208082568251428260260407919397440505491568464955047414589963445384494648125003421602525980901396412704114377370423045242769963358783795066216681818055135367050965496863830914371186437201071452578595621225037700498549426902441741037973538859621626884604418792867285411644168933005846967536575422791641723851338380076740184242435687383800286843689900909083879949690050151224148015911623482756176561725711848129115387881164061456666567602118139621084642376754320492127397234678761361336913568164102649247381816542044427620586399674290181290137850379775368866918537049570698256326810531322341563178758711883274969994985198798140160597332201452882910502645051143407558835087029575484025116368359349794420805085709698612041132149721979235541026327351910199483176002921539195127821372886993493832180018852156881247489830550721017571912285603363825062310513325074500749017625548250229354194916876135636487622598564111459702277370642735014811912368303129278626981502566326991788801621151431628244599548813977317067430225834093074913784455982333297528842589579560339453707508872126718665413001710176133639862915946800225505562874474227820288100046764549539426701333308109736502433255554243059898232110001484477000887104978332315011861335252763541472636384237478210472400579814438545411951730173578503899070491088863708044536197533963877588848228620052162188778357892835509780684404379121527007708435127147153495538628868258103547828301099783933138844899680391942026553616346108409295228411157925051297974355553079434591499763159773758355418265884088168992779896323497549532863172430244338317891623508227173840125899914400225262740846167354174746138885354804041185158388176637933936072039456881084234151887236774184987253975225281526201537738598924557510611362897218547005241613812294397655506594190705314823118466201909714217480413808807790809939978578623395072216005395909183079333429468938335990581196837599917196354370310560215653679703286678357965458051369372763341255168932260316395976861951216883121451047248949838410235691639898697207102691975231592179243786929534494277470548927284829033230866023892716436176804613903298894282790369795833013255156384830315378521995845142322167516597167525759322082167361580047480561908295997739142923365390840165239119236016981136241817497103443336411876809619402676365393483921078829234080558802710827823501501967289111808424741672165174321291717530881178857826259807543696554234665261274308177758544928350917492751542631411839948821643776562152199146964011401805690318489615136375490087620383453193317994501856832125858773844639841823935114040252925161772703654926120774922197893737771756958622274476978076375352790774180733745451134655963244881377964917707621849712605131302104331492834061068519805591580633624586616122892037445464539189471703830006295897111358435311983765058936625273212879201446579391380605486684342255455056183709322048847859683715569511499339399484579684902810046242529503229770946821505843939968109430758717042194715784826321066961317660817590443932236207617459413702658569620635385314063173687724720351635494370060613497471664994627400298809539096752937789462804624067036757714151697721633025398460478817316165621278656123016098518491527110689755687880899712199190137076200601020768145617189516782720502479445212309652440922495049713373650484435172140398039778073660244885896669254571189146403184466889641227422838365614822229961914677531743804226534228198155188661897997836553500098192915973067034509251650426548622457158919699964402273427286767186824948865586527834672306395375254271767313671671798263418576459200379058282845555841158748072325011878208970792352993799980611687179083289329826944231836622208011300416119131981024542591017275625690056588442287059270326827308981756532676277370420377476713853813235879326193225145628798278535565875457476630678605510810461450765487551505347072418753433386974603080974101737699226219194977456415873876762902939012892499692037104913314844326888399344707249136811492469610232298611808667130384621735970279925508839156764095362436698877461613920943045936163054302982212947383794669367653605081588793221064275662680790512039709842752877022083701238508357100514626000288388678867822172813645854656000809473598578127778862791594907125356818279378449699681059688204413523147793446551038672435848900901127797171069134977387908264123355804539364703159314680442181687785663271844508723787006963825587714729796497267212435747429080047488674949188788818471493871508476809109434643713897145464407465520512659426698808705256771121577910406769115153630247758371672180901539206176080093888235735819562198068406522391425481572505663783511309368237008507009757801934669245738563117902941797865317350200005370453412806081464501945541643182502226519255832455209547146033743844614437382300868610455680173137986866124214773136902841432113634303608712083526682030975367745496195555090955108220359844133598268906520959215624385703610313637508536829836742691720518653972552056400622117767126383044941385248156974481799165617804416736286335943419340351642675857522413303083414091126846747822402302590757511322682944346799723392384068742060996555847397247107567748587833127581706818456194622258717384968070208876567122040318263171486287706214018674007474853114041400865756840223604415179023081002184573373320622415183659008469035666563340027698365682918825784301671543044018072150464658092994980960553421490250569881928293636446157354344463676922799365368107979934348793104978189477188024255580690837115361265172126090832657847542173428286250758023949382444781695268316684871278308606192039975128013132750207544698250409008620075279155907764070345186024651784202158591880671100081411604581917701552740764226438998996121633292718200149509766589275470669051601276466626954778466271812230057698031913309565637684954460785659483272427270522407637919742171518602152285343164248995706055262781563938900223111867372626014727222724057672150332138375152530013656112235169642850264914438501563144658647416411041899382589953753864116206067631199491750030717928070701980790406913894825545464283277823771306276478236701710570837076196703384551698198023123089135918254281240077295094225288400162969077645436134435697245638270425644617820369106297202965798460620417663298271892017583970828866922181124906829668417853378994414730892793840445100048460940360162343008923659449825115726600100736687234819245719990861063244493625681542141280972977951058189012118023209355053134466606264718239947030782634889419800577554173961347229237156369089265108513220748462455669430560986234855007773505467121330279887658715041311757093033493258400656604378294778505667981684412953558948526335247799044253276443969458668750120648992129515935799522509147548652108469090667317886893277129864715813573995736698407678110688051167674969791376706957970420752077545025777766574087927238628870314274019221802372215510555285973056300121521577204607581170182594388529818963649858883819823756983943408985731704356802796849148880083907841757453460900413305198298758793917228304116353783419413137342916225393830505834206853656493453307139870457908680082494607066992355030260925389713726195003064297745054695579818464050461979690178395405138144449167615211047331738133883994391804624182532911529227324288911727484156065628459822749789520197921565613769069473285606881489901919569026520352545213558490979523966283275685126045415985923663715872249598438161203217382205786570231548800171614585436014629676720363573872791903547729970105088440825746347392977490819810282466593881934937214367098644413889080773059617332468948375075832890502040361154256877080597695034479779024786739015362908754699363122092484001040772440861493181873089691247465896445999922093389601680154849244637294902215858764293550404821785200697139721112576835792867372576009948643853271756649022074429590956443689202316901014253633052933761847770150517614174964301976373600701159658757983078548037137000709348119726639646397740828357240433078890968616748662386131575456518373334237205965503454057631152068734803737076117807317373846630338023772057539344072209261994888581581077167927289645424485633132970793829410509536839147518564457386364309061061175593566294619126501175385274229379050951977626708888723600198758561692421548149386409649099609023275219156120954966368662056768040289078452425001800712992302716391739739347770636487377600814852961998460274446690921347210398595396811041574222996623981725142389479890123890326557983241375377930422871688169442973464370430213624885817790896284659192263839267728790460949895896686138758589301278596067072261219262686667277360925671148774295792500378616162098706399916716280300423905981858743329226412698960140089182933235012325333342852722002395115999251530526526194461465903977882373218713849739106857648709372485467185790929178559614733462465188170312595617290546553508987444928430223644982988957494801892409064598668433507744042725628966028488119904062549077169633704836889318899130307778478538620854219393906149626223302805649503834456611500683289737518531866801381725207932054476000882909746101438608486654269918538006399246924924140899066092505881385400757792578516672554338250745420162923653020419008199507224078344737114173648936751798369381316218390665842987029758082642129777184083921429824035740863360177340309746452022879326125542843899655689018813018991911203600833297211005586130720957421261909447161472917057423362383268649835175949138169230048547212723112792699155816970657639927894898504857695687483075671534673154950749280076340024107576597011312830505455081291240450320948145174356252106157611053355769491295796379598251007474930431571232766787504969561805615262195270037136740266637473270131560478067709527213230240825923656515895521929203534732738125746042479047212316836383669751547039602697816815550505467979085660644038485557100211144730636350225414001895227548566141055455828201254153615952939887804177832526723792313703381339773428102306142225165090121784463275201956787264006252870521213624259081539068638966632601372055607758552317549033669080814264354196386226005968141225860024439383208343413647677686137629228685920477647064608472874132234489165645348286526444524489881142267095872147179544565224706423574882201674851734953295386425207500388659559198713130777469472569877941323229708997616386355011154272292464146001083811853997924034372368220595008782163676544835024764329609852580057645569746932078159411027290843666558873308496273138812886343810674618731234099618347169374886265982857552719143439828262766176611736909055699914904574924836083945190671723807362373073830584213541154270578964916511939053424768723303563381555462522792146192082291290119782113640718813635182593297955782026805330291314590542286025236888850405088143718897116001208443430598341257172501898058247779394007442252891081263362618859080391478641041548070839345335214645432168292381575902262853499497592549672239612017434909033815275259728306612316515923709628171712547168670176264491209275455507605507574400877232373078736022326507862723249832671125102342647983019135894824522660992596396501985786223744856235701479332105468236130295334616125485062325707487765826047212532920747889225816080156878240606266692537025385323823471370724274114141864594086289948652948135664905902562953405027488467407537616393869952509167140534011282571047524206293700565356192579035179486653539186399886823616609228981711957136582418183652731967473131909787719874569540899824573232403205817466373721330435278629869535553248042228856904661279777496736537589053777547059958762036648383394760706099576328735820238505112774557006568164845998214719041627774430457743294267709781578921583879390433589688326557505340410771898768959024558359609689938822939697915707067705797495935059439186334714686704327559930458600758649496353928919003279903324679467396735449603522444043133411609734317444995463563647474270774110248226397988110397140256493468668344207807445731152995656196449640116535126198164207403839679953327837290990396389484107834871063059386622406555660625559198522878158601770514212934533765811539603091578976660203581080129486168929995473268286614322556208494137336576220770232376069318826575638608645091211627357211560666674210647711938321031905811950942597571255409170445305033230898949343125001784692742831102581165073061611906628400692645406269434312024335973527270089720251279891254309169829331843442815902151595384100546970125837755839598600065780924617016597510274005023988054554818013622465680129468699031964477103031730249586843263297387986231912462769471491108780739933151959406776764301051169932174166439301884190661179064209769602503766532500407029362508505658781662626893726549944285211255970339907579317884274572217352245301134650912626628114860902728861017545496921019418643095868775258070376631550549041013308504377892395571682313058362289120844060543093643386082109715754899496196542110680960886159099933386590400771861703568883166287445886338129006415289027831021060710161213014367350927271122633503461282505670033280443310626050802384518196365587839262957025220376070358351236276769698011615630805929866021083465822041331157861371152469071086427493021809197097109292496135609964656432801427037075275174545170277523656297778059150796321100660086193294552124317504099381531657202723201131408870705540193118734113516750838612177134490266291305939810214178018199637493939226769387093401467012292437387271216797238247675087050650718954162225798793097344591891190242014681382374165542046132267215806166459699719725909842982473746491119244053960042693363550870055166740211030789444767438099690285158803996995191890365249955378055196378730540350109703307983859410979960918907085693681228031826995899501260639491519081866691713769714432896233261085857130867944686708833766742786629433133430628884645771323568591179921174767519871588216647329858996908324416855508301962034929318686134360164150405119970800362039187270382292656341750742895099191804514806509892029148110059620214053934929862202144390650412245532646382916313620643961995103697007546733247903900993118507021135069345635981145819936540744689558862998174618384035624811591311037050544067906642116103738986411995185254802040131347031533744126596002410110479896316717555231060766720154863539915581539547329664959032209742223614201212790836574401749006785005696874948192432270028097863859806148039248384272413511056730157689968107453960004195223848747604334099967164513955527560771144200229749001233753667801386427741078112888346077091201481361015378407877005106286180740703729288406068334134113078540636919248999188047216838400264564858990152381755554320133737445266918762134244678929660603402318683364168830604006637305183680830694980046498600387438527163600384728699030460797056000276596391261348097804066366987180946399610021590613292747398946227677299414118143990105451283230119174039541154215282982506573545116486109862772058624328007991518945850917793076545708069755583527234620625557951433372366967427690969466148548123359167093909759266272255834662383912370584289591815389858670602824717147259531424788680941654517206343574396131605712700858265695609244747082611587603484600866321220980641149762073415052628062917152057988347270467101544854447525044714196847759842790350387427965057051127445013126994994433301946590638184449327474318003007380724180339217279634875991125575667590784533588940792373626031095912052243287126240155640281026232584345511554290916543760984612997350951989820412311168461394226821354119680004633557520959114236478285941117620912462943911504098833429757636814802727784482448496835750745275660852236722727780572614556394872547011211917432648646021061428277747982350776012793038519015422445579023911808823139916270034832063278261458276201493106257598657683606244640632805336770312634960067058347835011150842714415457147226249056158778102920236799169896337019297679708844559848591693266826954188469273674710501236274286740612776561233615872701646900504777187412948894411355813452442876412362124623160624719526914550744157090617973609710138636652329967892051317147510279546175423373727353478985967764731212611273887665365800219441233138437779423449346419749331264107024511243535836978450729896614558204972617822249281551291787855886639776563706213063600230004458959074521246801837071712740870560092201804017258549242982202002660197705130559973426963022273589201280871348953335285108479443900214742479295216568094886162469440551756147479581760070547633719184887492095692301578852062796359015961180689393901573755064296558181586522193845508520139635030992682124762311071138623862097845322871554843931376226440657375293154678309020026043029829907456692472837810469490359994911828843792416588767462300583079672562163879787478037950974190155666021030721874676326236049806215994606190724085893968629027846228737547515800967196726413475532740679572509467221934750598748586786196992406104080673512370515150917680582703762694272187273684498462635176740814149258608587122174008556075095340493602789504058027248545950133555089476063830470339624159472858396816661199189807224265453218526594094972157006929620060344394101211184544659288344926733881877296877835637385460204152913086308631577349778024471639872149778699451003993759325785314306732589113823006715807120724605150935182917923251662060868183731870252733716423870795207206065787717656801871948082727107111549712715478386537117780118566807024850995170279639883694591279619348941480118371999100643936985668248702336926864133512664487291157059575378712719885857803648588768655400076965590425385220284387191496649219458011957474337311568436862843397254839443140417077597491811820003086106966160010307619260467677926737393275082739895190188609267459400577394225312395593024717338277967757127230690792043366056387897224330006106636746152548679695622219792072647695643964564306498027267842318933189553976156176650588902451289028814580576910228692475202842591639061946285859921121544127167932233104157713932744887430539634576210865574348090097274135092808307343588197391161377648632673374004899223835099152739750911616825385982769648743752118510619525931843901824880091687859303064294623796816708454853090330371041221140320354142169034196550303005373528064833746312732762101706065170569330456320738931963025760385049464473511489575255847915065386790230102341451483244758803869610720069391830674431401921686737918929996877770937523126312571620009700514357381581785692518139125676927553525972562413904300429248024051304779932532358562438956563516884534316647665478025124719300404535149235688676186682301620562832979727868926236592159753436283282843558797205869726991893508064048338802812838918426789649055965539951058583193315002493007311930817538741680277501664032977163085372641465741933657597905641049000365944842825083587734826373288290946567158628484646337785938845101135313870022021008594367734551266520414328855320690649692968118777482314253963570029347068374784939674554020582148269229281036285498893217130439897230535749692227013150214930001683522959189259898347093961237146509590892159157036967490298282855413033927603934936820760979773931829749800785059466113537336288818971482461271284921932793830154317481560262558700681038477346322853764127925473107818743006601494182371897261015037824300163341322225122293180175273796106201191053452804915679212911971979802592916089953225911004237504843764248038439616600079685401710902740200137009923802081222835638548741997570766021196585179024035368205411362372024238571188623852784201705601836882986155376103620937682657965488214038958075800111400492722591868198924988508760753239244491291527004071942142551098284037847528525349116881037928887298496493746667970881486239576636272241796796421885886859574706708683088325488639760705471980254549978985777191197738733316019772368590113091250788266173057793198726654182137725341691422941093420158771989734780640164418807157603626619176081259487217955489851101619499873332929805007273000487286243843176745449611225205863483612575409199356009890584684308235660566385667428071202625920142919812581804578230237862958366999490731463024440591417477722331558606034474776294714166792708889110755748663499771885408281568575908412621101576727622382911348919388791707265832097388929479688358416719784024476935105073855472804155703691911403315567500706326399202933861569755082186979420969883372661656636413956927008636498398092456405178410017938451449024366167465229297788122469754008666301824413667763961989593170189377668992451206469744301079498096643616911187032165575556592772860708497392893790450021250223407404882645798149693307017374204008232218773677247956764535235080284603082945335678183818847136475974090091537681265250979186774328135395355278593410270291288615128725489290051718457339329672163670684064785888788009902808700172665384245879166278063254641347068342116617007732575320451161230356417766484803722317546408522930033239300945105008328873683376482066851331283202266470591126015037278801047987865656844074827213322242178920894225396463471885152567410079183960313621025881162204475861557767645608564838117270912134041922863772187470313850988630544293899741470950602165843320323980756035645054675371595995047569752352954372361863228620642746450495129773498208076157438901342370416947529240477398946230088052677409374139938822743366576426369063038519479722685355671913002397310347217738195977682327171646360235925602398192400058598972493435942294308359255838083716427452657209302627362809733440497904301579793600866632071818445024761927975320699614243651138014578044340344207702703234413775031905883435247504375649981706243186768668842900494962529837906081405122540391675968085243689511482415431076783291663552566140641227584911154657958776838300622336423849547799795302688898370232595117056310129209009149256775077323836975249378302504479266498622398334473476417385374145395247643938239111634994432002526040758742456826609177861775729115282758956376981433351570310595904539792062548142345315263941049501997055533416571711067792032238021552617896865476534262362910067502405090394976374335059934680287984724698374629717518316978824924402679448052995290167313126993945310512195641272463441088913923859044917215517941678275218104387972766944369627945533059632866582848069298878123466446832976082417877746289427607254406576598210500725019014272568292994320121233939060134324487368286995073934002902277343206174156501717566671530514238337749604045035434450969525558327418536536903140819512811294433565384896327202283364376371641535523214665410034160415808140853273036072167401606414116550192692158878974503900565659220366702125393489326596579289326772458234284328327762022668168882893084805239067424839517517978559937944431493722720905170203627137033300905795942770872626232527475518053073597185296282003850413736514997060406232671069475310585439054800694858550418250191961987304372157179031819202523080043031782530668279404426117032653440872801831537066004608096801198189316198987081763218573882457010565554920744655111138713030866302061203635866247383516295461449431892877508137288270236629331577528533175496745512438367006343519728746041367019420365337403992489614450364169397724573178347200815493059075656011755133402499897399164423253494998749576412172890289542798491281237962204010732255894811255278096758713530607596865427538397302272975475262750837279763907233147509916414360855888695686942447813157054202470971024166829099551346116064244660122837415127916029810963555089868449641369892925194792010377758720243929994768706908781581640103004242380411886241943724260120755216161993725516713838511184144746682653201287717309856673677526137542221793231200051571844078936177125837758265624659358113275671450191947155776125331974583194999906049976895410253665166671069543760252966778209763708989026143637556329725005318337168156786454385148309960662277746076597596010976619960992502589788003948343439451419067289295795749461577707883334368763968525713919181161758081707018307103142716424368219927453893450275750268190582519197190610772705480754447016967621920562881983317547116225103684175958910325788129076352284593769047664928616884432140632623184826907318806881398269461751580206086852085318962771178857181403672422901103244291898998822986823560406877189362691366392006606396139774139621806929784531282941571288026391640139790391110049693293452173651877352687230592746247550499149778526951651653433183808728090206546687857728971132688859874230784898394622460372524925481733023485317329481049771927211795208407771548738930329237083233599974166722396726557907000622703965803939924780880581579327494344290227272313558004150702389503706511561341092988962996304301797086681265149193738902914265454901785687663966075781838069379167134441395540726354536440977985956126541738217402909957998449047222641006986972199942875390724170392245860295768743266314229619577894261716346455089024380543512349336149385136226141837577487799892053359677075970406913216596988159318614998091649283733697268553526412143893595973694422374474240835912340627541680009501013738510324075594403269365262247325437340941490741058513883361451931747788286132616787641638917697494603489876094492504572713282438316616699202884091821801304429142512768671317846795350751183859236171762301939940460115528250470764959125816212977640500758552889104281734155053992639545853245278833368159425656685446280679112617459496406768244549384422607560738209220258393971254060483307983067726450325281957533269629300340115720493654967699230962807869205488895659843106323588425710043895492653703926804333636131476587499200870451613375085345326289459570282720311790753723521183936879260494111127489489691164939690067408102367762717918497547588113211337239090610505619411964864452413307001299777191117902123666889626299417968701648324846231903616769848262183927066690261135211556243295056256124652140154991384858393253072733665800734538593001222443657973013564994488629287741945056773997248529711879359736879247885111974829086358578809298209271455614033411636164922050582349744429898781354147389651115962906838898776143381305203594597030610916912757604037498192887762683867357941287180632118999371675702292967972734883407153394921889619545212550733991780761516987675918086184687476952660633522000912595586161284080321482948250333015770223685005245914454976168477395741930588984927754716734276349580445007991402508199065139189532974362287060745573417644998283922319338812380105270837842189609882049189853290846566362626981834262141276435662607491778168218224530156389039367484741961560811942113410013169231745486391633420829247937126430592505227917410525487344700106073581783067882673316477707696032914233448950800216547371708562469251546142268908294723021868572188413822193786629012347227817822818614392585937096169966234338280435513792676291334321807832748344592348664727219143737784561467381960494544458474917886652882684442646284321051034348594955077388966706669354528048119804382257081474420437284175944415553786806673676841784105027527387593987568119598956198686018378170272008652349119787225014531242500402701336825825640948490759999103978107706436548187297885594255449692709861900614307112626663253417975054430663835777443993053068109641566966145681480959146080690489511499877205327827381189909926885283755256067133539992224584783542750424265162183141494273939068056726902466755379290399407095042094444716799448421306854087496132258341639431298568672498176931474508701028806166815361233906257435351157380400951341519597849240265144346111663985025349438029659143064812525583305764034646819596069301279291858664037801706895401579560420435877695368265799733536841253996648290986787098000913542763630289585717019298847704545275430873472785975180112418464503447976617111910234662311559932233623576261272556677188562535832177842988600589190305780912121600243209620267631564777148230079958683794548365630605276648974849873292255204192169541610061347408590693233546053985032178058920525234463310346281786719763609673897832173650425939697487550718296194861100461772264080218644122770262709312572519882856151745314569857947498289542635512883929330909292241076464055595088032427049937009201275550473259883458694409897240524239045586297670330030871667482372080573830397704491300992678643334983821502137730810786015667605923322056394240517146689014155915480452971813027354127591135863537632482368383948226048379855148512108659682322911604085706182612857128931885134567669222912686445071430852082264593664395108961028638362286250151340594213857267305271144474530397086615991308985160106536239963709882512172157873972327769047076966846681676946046264660172436674905796895730315310291106416715697576757238891566723390022737084980395976785119430941279253125794158220606704662546892501466769048859737319087234555495647660531803931822331203394510756883091440753403193827364336816698153064847857620532098412923001858307869528168918690483151374035339630701675593767209831444822403448694950546254332999888575345150014083546573269520803447940562906863930993962786035145526917320995372099782136998654856686918830522115344502991199533228225410648469872046759416654154162351206623745328862553813764994405247150569830602776118993360161731577603983986840307535904854916833827830774333295156447492802745092858208927473814141752466583281237618570587446498232673900110988780977716644809463242515642217688623657186708414607406163283178966092634637496961799345363440713629416439339686551539960838502926414204718462893738339376138594499960614895162733609504963747687735696806320903955728777921724765222560308725257562505558500621227119204509663022098302379797902345633808472957036558155859826341086559543870110068194139769419642573272016458199236136747611625580849134132939337329682471428989241371718537852345433704286047586312097034339750668968738303212305478628613425927497487262686273779897005229212833775511063742655813708338884021346293260405689894660269835893201261703196450953107513578281734049036895516477452253941256251681396595879289568303363084840121286023817434436837168084179761093845780489582759106302194231272079986079351840673246699698632813364333100119608249418076060571621031764005189268743349550321474032967205274150255083145293831000020784634576456798881654581062681858546251918906449810471003285441059016816905337311594964542598424653723363513754534334804850840953057270981485980847714058545531600652840411900681576540538988514621695479181290127817680889748793593194987473500761888687090710687350785869856057926232313908130383111792665918282174786349074898778027890944601030575469896560445154933850018869426499857678569288045396113693687585916444192861856163523445851777844361876669671004294376892985159491418250979849821391107180155384876582622975317434274138839510795384961325579934064668171432454030579495930883807910320900810034869104777500807783513082071504297536448682005957994022610943974450695983207625070113389341901629135744072474069871218589218344846843497778251006438604391515018252481408115129532914589896504769670660088533200652803691597070288502299460132831934516212144664374610145107678102691306737148677025847658104267551641475355104081402381926177140362954196046679285010457348752676402117247164830777146876747640093707716113176123111789351366695749967453431868604815636125503147118983821326572379440927159937418037458491004115639103937944530194647420693643975966176890443374429288477531065838402212051171464893583935339258377375457292173063766726154322138279295717414194676247890093205469638490801323915938654509532796034548308228956876124779925801131447398625813685041099978619188878804028047551304627665960367204435529179412050666377403874044637286621626182369275372844735911014205638650632959802535864088845238440471708078853243722019153002738329974569314138014171280417456539838928547988609916248146107771131774007374437178992894013235122882436033408608627953587505353606343542473197461104617414782446639856728300275111413828389016854670800528796617359383498115494916954076753590533863172870527074947724872353943285841399700269811573851395255270241380732288032782135103776806063885323440510242760572582103585010509563406988795193506692681905660461948749630479320804896657269924836729925373719887188027409408449195182566311438295464218372926192185834979946005865315839806083110796658409988217500227837350286178154122717744070474645013886034468206594503338745213826207335297949279443113543943848068709030993379359959582986849411812568102854328243360180876041379728478336162255013966865228893813920351525566080093020944545905079008411925622957422121950324082274638615749068351245933920635875129980368670613105032327815140922711082847547138573214031002045742182538581152669798696345336059540559815806310906506656566845264316168714923356473986697867862039990124721160462660798769563550997166788806468961274742110640853373153320630628870689403321867803573276698932637272822392675289389256929462349719055378307795214831682637718707043174046308256849027281192764501902419683904909868800130208150408630599863678151987205373290818689760090116998703364683984125560174991935064505845465330555445749098836456060382632252700917325882651596579776166507476320642329497747382165719711892939799393202299904026723184490161927230255276329422640534818477438028728421270306730249965320421854456045632837794308861634192513740215124227918400629074974740749099453592260876528967854422367835245441998757195612960185874976983577240309397585197215595880724241790483064571287202663140856768740230242858369703005267790350033689432332692348265590703410726318744714117758457448236439710477279303445955543085662952933357995957819539183889912774919314066894674983307898044783929247112064674396564131595793565572084671762917506378027838565736868816618092873960289161639083777652639092191315998532238873998791955019285858829985513232752018650672533787424437313129996747565653013975351794558745687124972094868013513032205937802405113578302428500025825804760872329699059206354974722830466129196663454677988696373108338670447280766779783883299491346938195984634975700785288393735819569059340090477971720436541341033944659085000068237980197928747188251965254146650295612179809048580771821294997909425921392628689235175610032791384956065432549186149859361760525918889671214934534630613383869654293710252196216116506328714655673048774391407275590396991561851060378595519755879730767703423268317062633727252220647796897115081489501818951447079119704860791211540504098760802869243752622916453219939518794683410389183024961084710423701560560366834440468473808855148212476582207967665039431185737425126891176780550688013217433113894162091707496366306045173576142336489864562047798441980414235244871919872627388819294560659871792716173777183694391672576071443624244592851633031019544386320463096068215792016819754696179120935038032921307258994658033568336182864177011863679721386939057532097372329246460415161678045960041493037291251154701860752924048110506651181466090433528387818447750665789413777024488684509215234957839340786029778998813162992216714595139834630410242532738577954997446268176579133627242485704029297464417779572300311270661734786806870531805470103229924094550663968216455620226660218620687467698324477734294197426198029588066403456210563878072743552972877512746277886164768721710410001818231216491817866141733732729371072803369978960811659841452591691830315948495365156882590013465188394185045287367132016963561016580029028523538764351060819925673532774668879234936248974948695800088534335097607021686028190285298914773807758120262875387288381751084847894201300750651016776593962562548936934857579219301190353572166202605577340115079681369745984313122887839271011194424913004694584339756252523499367078311976146263259513761490481131069405703445594489928409186554730260974049680448961676737174698722598994985531035291637968293754568693241593577313404329465885028514647761244602327286698974276634538403353094134152345364891847509046137538831215383819245270608894488260992687763583845088367701804873719126667462624827464157207653856533690433259345879030037108827187310233804418048326705729957806143635584413392338363509176466024701074395497426296978198419899601021831426120798455058946278909938759885779372426310242054478346637435732666638200872505931669124109497629614175949726684270238655796722956680123882064900398152118559604916812626328342201854560884823627166752962338058313757909360337576071209880105784959636745078067120329315024753016698569234554699109656792469571414945191254203079149113352717102059444027367625749583895720373725222723338778861843054792312099806146733832309933566784249135806315271242651119497551017584401588215383250159114418319567188051231652299696123187636097133247806510843604680038263469032914163505774873050958048481356192488128390805039020742840929824897182889081453964848705494611681904149955635479986821995821873496149824406237694138208233783729960296034385299465783457673810172563892466442336505788064965212031596368357744340447806673922247663627939645554845022510618092730111435898148319818474980320275305977209969834985145180828368731977292819474770716231511847815427977691544478691806647253995522440397979930545565392357597066993495474981743522937569021516234503808436889656797116635973654119117580856932333237163977690715614418694242276514657336577577754660902804318040216167597939654704695223220169676257934940711088710574390671340300147994489255678457863951928618698840091270018353715947310395448842080631006411361083727048971898314080450683794645376657996951203140996623236099191719451094787372877820345607715866188214552349831297497952011181580279460187733948119645096228946752611959898791173157237614271922916939879853109796248479435554269384818181751145218091933798578151623077935417192759171994297953015193601238801313862971468309608233746961397635746346305116989814772983076294074839787526579631436963740462283605894595414856741396822917764037898259789478554087714803373835160783642353752893414678021837706085110754323113193960980559533705942010511440962679884725572241975724200728127407536733608316276357929072923084083639794028041019468213633734567545374606855622716252566297889070201214692255968750773367972606880331854060409470007943491447890154646921679658672151517923182199550722800796861831316781733185910916348633120800911356332160669161196593083020228202583248423287169583074020885572627076084459417773731582997928269333091936292479146625188414717707597358950589001236298324346001633823777391501549357606812672391285475211986908002293108050639620101826060600551526460013769255202129124337211134051611847019357695282400462290324330593971593213870434603394265311690595947455200835149730481642587621047717136449705841305043958158169336896954529091110606312457691563289339165403257702786245143775042974135164030980093172604750914636569758212205973002898483877574004570116337783006290724721268769098193569085860641564327141257065254700355277330132634893317434535945035452187727158506247532905648193017396560400665522845473811745309285889668831321862586826867733858850130224438119954407389397234723602510512492603421853579238724902381625381669797804293095499216984957907052426409450883046805145771903960168987154492786805147896980143743794131864504613312351939153575552184905862820347903126923378109438474728287966681417894531370947456362434389516258218710045460393712928893166003824309765785490706533232672786454205539008550778323346927679678265817673326844152941453254274420961458942620646512351937692443326974565838318198678450766025224643416954395793624941964691248368147812552203417239197681005734467769508248040610561805427253012102895575035354621814607204022141307029073714962328766797012568944367838945599087582134606392313853376495808441047386082178664296030517718181256316121289061425652722497745350805946468013145217304593439207953281891756888258638394014592517246397957106700217904213797125635111008684405550202240063523637229306139670092418521905498484124552463016061639312943882907102813951687496183577505833827581456894128549491204719145023333536775278237158895385454765191957578204644665620001331475336806928288862645363081761609106892087578891782967213664891043335047596724477703033636597502101353607626438005811482960705822665284703107389751090086448236329583922612487051208938579964686217648985244513527117375841268935373232766548985901366449767865983166091712756289166177521069510135262143319317474350593256646396517484773732602241047148549681621566149494213385523887996638232012887953495366634765888901068284370082329256112088021799812149970992184113292309981664450596537243480275357885905433278686859991272505696129992907822777362781279496670542487160518361822651786584843948071326240819965617363792455360849738827403029572077062715474916342462823433052648615314830131096658572275157312266252962311449750194402116211909743130549462331704170009162319622946791159294877087092070222910027748647021218930996777208656246446027096420727482637825092940761935188602751283773671571015888879996727791307840288666421759059754193140207583386479901184178877336010621678653045819781407270293450521921797751339195601565807546733290059467362431505141650832761088941169464374867333618369684203846780513347271899179972500142510960070834818282711651596983207099578638714053911502607738856421186082519399567658724084608730428853823366167028152985047945449125787619425758018204234792538633082380318064820257879204958164096061460613951538183551759220769430920638621646996631876219297528827885387464989033398597546506979687018700240700010328866985023141767660380288507484185526069283303659263338040624722707156529212793287636149458405830498991172902659956211072573885398384435912250335365646692036179958006460756999514284942142578474297208043653034764808114541898181498911010443030520302103625292159541183103009257874638985337868896265034815779650386221498347647220254187141836629781603414152840595678596513787486538442811611735340544670611668293082916723763982421103109814146494131881117816358268532854246979622408771087557286873356192520887076948439279772394331048402284699139307212129930622959162340954780695481590376470484880463609696634865382650742794357318624916172066548218639301179721622447157806673812913935492531170078301200659105688235356238622641955911649483869970778848738397343056438133139245157879939041506253668917423821819024962764284272655152588753570097541900411879721339961972989528037352259628346865143002340095092326136392169799432484631656298323356066229638904856121527374287619597483651861624396871788593030745949708795920032726626521198290865354914989221701336356319825968141779281043714652347667543226031585791626569689095289042662862734158796626302240326578946648895090927113638216707177741510215681267342916821047719432653220684370864897429660359391561070394022120417591480466529684748457530291012174119668733256062525809001739184674664674142864959721522836068017155065302880226741869368448114992637051393676457579879231526500758572521327711490520802594066219132891255859292306909215517453042706600755619762711617236296595523684984459527032603361523071797971123189268084061181641416682397624228009704228996700625511492889350533084018004382581805178738156068500437175910821892776819130268171351100114871703961426424094519493465243361941595300399219247051869435553687942742227699655952048622505589265080244320817744531811674506145460847042148967904238865097491149044773134051538295199190479557591816737044191415843338483391532019729256229564802538465143494500589227310229154185425176551068426021701594379154896239383860270227191309772458866647594962422945393033110173225027033758831514817064688539922483627866213947605891744087821060615326960261115399123656681007241416779523840344684991008287201418137799962983983444808542689677181852836024987715508487695581761205296630403107973710621549838322219142671723094447031147609752665034512380078663758174468214339923799861733485346470598874144526271690779369362950371302789875149417906321444279418358978200845088208214838149522646728492379574142676326735247795696659828972952239698160221509382430137995688455737915348348880948488443038598199270441583086005093443745875740804486466939027825297625527586429689453067393589638613376295399500881185423337484050986105406135969413371442168269643195296012099603805076074739488347826970189327425878970284564026757768092950527236353063151477640089311173447392936212764845433062766351334290477529259610906749196580959638021767194081327675423365043647953445337781576947557624599946564717347004798715258163188661381253044843094228375655560084352385400943896059653370176215498848068239365268369639917551739751903160298428746050258641335682554697449101600433374795406410362651107157519301442301922570749714878628004274748371077586719425820636990262234038826050732414635565456382587377089639313995041855675677961271177308805732539485966419639903534609402954906543173677250756635181227120036733090897764165167048127872102090678414537416620662399718691589418415176839137789101474836117228134115531858603268845392767962399043690335206827908447228878486650462167611952569035887599178240338070644382194390821007593003460569046779729502613728963684456223029472757354438410750950919419638004822955263042650896370124599200833148923537530476428106583617604401204793501462976923483052552483605051136111892573473801148385641985185960976461641369767771079138697150215373658971031499565561012990917521064751355737980810218210014659202464491811397070329767973496550720609943412320467845535483752550199516494231010130877226010267282211061196567232576619242596190135786983665801950952960084692190801392059662623664040105167306895238852321681872987506319694361070081577665368853349505095814313285698182217603685452717291596373265832573970619843554420296452072959823800704868634676078224195297454633537716796084937841383023273557732427483177444753718967643304065536810535665641757891586966070491143635931627792968015999353835222100905965549115913391542813780779969034111770211448316017302338337624492923729154353326544162468938841225686721746535121961998011688631241643115233515541844161982262078321112305905618549010236438114647961823250219202469037312144572117487115731569183531961443115052377879054491799270317320711846508398883843174146285533348545060907110000599432118296539954926142804774977800971136853701609617702548638443467722050456342171566152217509150156809887366683781687895214758515081267928725621142355216101927691211115260286712792013366046786324530214394227260607918337324931210503561849515505951820861115759216618716495718359063636934380252359567951651832873640680692615283549168604030032225679367772750938432162279589509703212926150785715204965048452610043199943620396127572619946887441064243719693676744044781450910527910275222606413442867298911428279121611652042762024542096244601891218149795570339229830020052663564051205944057911150041710220650993149158091282237658670454092484589621040839382370152153697384884594280940685959712389377535429910533686231327969402620309702950075641413669416257643532581487037093983789030647280835108916832560432380230778670051359250907107314139592528572573113082665372577331089446021691237244491077232170620194931931667787000075302254050747327093483130095074865941261775953306530514087582802048396987371872173488119216062864216949297541682515375453352151756847672958455784378131829116180530667082033560655653428928381613514803021001998453525176226126352199656847323179692277752717690562055334361645450356579366973526579581337444854367171502614507372675256350855228592715643528672184261957111113315067755785935639238340117195076733494657910771503150585425644224551452106289513718606754495218456936004779293766272847388175979833287416659204271787694193105260757792958369691849775559249291893841730433735677432785237376227921944676893653135614259610262645847800885580838197703325559448386561509607002842551253952558087301950019279260845839165942518838225439628021362643366662274912457963244969986077947583882744477959739223195872143978110093815529104071761823041774493857194198881013467376487000190409720265000077425051337538253186963075869088483519091020784771803578838379331044371090808536470807299277694247657093993166833065921684519910105607870798433408855297426105513714999932914529911662648342340253036498529852243183787420370716120229809314920470331669736783908304060389285966305045356573469384981981914469056677184987841993110210609748615969678985521364697609369894775269354151635014069201849322740123166267011092564241459243868984230505158122230746280177613692464391004277874311826749289302584702322411657674609230935834407840167932948064086305652063274922746702641971341132968701980139608899423055800259766027727796164070211497751948891962449834787936285474089067936920169727911659991022325303702095484364809115887451045400941472185921069378203187274196184749021844546989602481696144065204637393606899526754102021234407020268784036027888878688736906607773446161384225942759373083674014275997553633690723313629428282828542437392603746145884611343997982922778249872640904190455315291866269750702274646799108485027390618004776680741932174256816320045844728629934179647613948354755213284724775747078449210020927420616531190182091808090176077724495361095860663082983420161462785892151579381355131698107377619043786221517108973961757239559090336303345389372425886989433682566413969883245952493571186627006585603575852559542284153398243860977489438022341065863537423628621388105160713891426657230050577961469551167451798019806934707764938031145453557144084240660282310263107494206207174811984973060646447210503351124413574275448566883728888362658212738957302683237270744809728326458887692481403798523052650839227276379103803638411118504354290111528170903438341348531695309643555327302002744899169043145558825806704382929806096214542969309240467408344049338407967174518657733898426942853302551686343098826165816461041169655826547134097917612097283833861128360416999277692271433686538206117753720201299775895973251032376270373622942971541596036792547996330332985628693608434769102070499154171668985172438546733119663838207576366517715277990591068504910830623103920491908383426424094910579198291727987156435912869988019341961310581719170861032137025642266518163870317943336121501412855498230114552567444238251414611189766745750529552158825191190470875707654030750702021166334971265933537205446518027435471319985057769211944219909711342802344724115773489048981685701325361848588632048009858213960516587764797803800666868015951096025625293612210015899194832534620123147249200969729106872274090888939266258866774975013968404917433537004216798313127645671816155276046349933068252078843497166181682295089039908823669454022077946349570829695772267724979323769517120071951196075511708779264364365115711514752065729009520580040447625024766913534931255100465871634942013113369990452100160205449110892641077153001533373446547967796085836277899493125307972686988676735879606482072094793153670729171001644976654180199561899694545589154395973509683437633770512293805004508106272223933346702795148918934286130999934900896858629066372095268779549008521365091784382065732385591791695738123283178306992485510389255208698811269340808841287779628255612496659276443229342363853110830477671322711546115594302793351538527346302350264497848859649486839782408482901819189455616769338493628370108100426608912967927452661323803376427940243054192126678147777146904499223170908140066487867703748467654379415443205032975478564548091628630001276753928915716269849686094472114177948678807109876675775109095891581231698716240453643418361614481559885417673728647675735320371805846781404107210057674984935616666364888216321934217337572140005796788895886664313327868808814054353328798328352196826379415872098089482785580771302407849224515924650933540346279490724310088784206740690744406697603433015520372274220292638143326696530102152589859597354322417751120585515151588111977594364513199360737911371274127822645819978822319316399090564740562261987249688354472504248111064518577338862770979297382685546882985343943555388248447293986046390580849423184080674615534313407476502335521515237700481937610060695635680834807883577716502431732718072126046325785524615710993435141130266214651909518374830283063463079004197109735345822447464210096944832584980339432130543213784465048089974292105194454784946883294858157103261197338613195612647901543186452173762124178464797816658653194931155817532661296573830043219534905323595889194519639180241090025082736015492018093854357052972335057717567081399220874719277922908997068434628985403326540496432754332424624001076704752355910328467859894971356501812121450238448977945055814359653786517919608302369362669418948948330626138960064909054945521434726161187401752059298276552181542917869327154391475453406263566915328306822365755196621154433608033258100793809685286478829288208481755116354492368848897352426117212824201993749110098772947809990366188076715119812433675836813471190068147988274774929816286050790475232079641522501942317645021996511218477071194675222342614008346845991712580310086081713387388303821569839376678127732331053036434308447715799615469356693299547560552838145967282903896638280385255872585952538869597024144172848202345113511721691853680716067203476467849305046496149058757130049902588022827060165953147219956831255048330477229976397577204142904627673880655429470457486520860682776500108314107484230354571467423515689333070937705647266186876572557171173078936889641498906412577630992676758406915481789294684616802956050883714419076627181557100069470040876141985607175335999043555765486771763576864967320425216701107506527293580758177510689347776588031959139967118413795547867281868963032443082352235399389864283789330017726313905167384561190526654843759243255278507927804194713863747168601675716644815259687674300895453237293018246951012745362312265854433973734559146399733456973911762529800936174432540058843133322325829052453435729156173653500521806961469614662872582028103670634548823498545727368819295182518902266602905312836354988788130834732849213995831551264777537970825867962540433456939688436057317770259552192488657233225625001098874252469659159478166183087065371314697110149226119177426983486105407025073681801330988706091204131548596621727923702104533366955899877380551813464181462811459374411794831019501917108833070779085049071670897444494373569548119293171344998104976005217977146561194167354456190504741823788930167367343229363012408281903476872857985207035934979506364066232754255100385294686436468339232167925644019531179445065979450387533272150481249040866691815908366839561543906832944971817780797835024314990803027874183986043806787031326148272719426260470556974437900042437043255710844652067704548972665084774510544784130584408132528233610016713215567610160902109024627299847021802491049758637022875729324089851711387180984810106860858109715429714790047872624418773744717875858363055476748321596919771672776902814697311249353701993303448316735455758028587370255152182063726599389607716372823401431895614878540244077607358292101521506929576562406596725537936208966044046960322854853227038990011093321007402448555126730185200715104095867973408345298314681370179557679472602179211660135005013231098066396085661968639804947407128049108091389535790521456910940439448222611459156796922303300233197802455404570436347615608865964159998563170856582121769056942887817335245801931202644018094652801931088124290663558390025267338706421177137766935228825487090795145801910882433721820400395656447194775310700157826162398167851483966760293253629842485709053353656824739905122070886946876349068682953563476955983249440595557208023717788134936492750148053056186066953751123254506509069984639359855382696334425593233456816603442961657784594608069834856304119268288777165591305555567406634938706263133645537797971459576835053001042263449128143700532916946393970948621810148880161789810124920288122463806565647801575212623862819145615027104834394745410195858098248188594930739210412479985692540252452303935503748361670307421210764811281643961370189913492253728205465942463695936131284405515766935640392221767219341909095810881559076817550809659702335713357789443534356709794469550562195209723336088791690323356549234245149308179471490352166733503522425537473797540322499208596628482128095746206228348653388846301668212294576990899658548279204977468353232140072902087028373000726051837296453928813714270218018380412525355695957198499160811544477760812699196157751498695862827770106688509175682276827974548562595489539550539426025395420059585982957908245990193348947280353576311332544086197768542016684411304971435443830499065928881663594213466643139558587525600437268433484817440523494911633831246816417007924656346320156043266441514802464360793289896069860041286082032695643123157424685273122351508288762206463767445481577214416576180055492274109187408926788421660042662908376743162120592089649466212177273387293254949826566785770441234142165122852696832643395010748700803178040943069211440332546383540042643119347817948761118949466630994676244201721532308654335356801274110807304267327866936153987698697839381773896664076428705291450931365583245374979811322311789967312516507799596990945996827302432319038350703490055964092268282127931606409058080211670198257665028288155524013090835301892528655312298796057885090717526163741021692281119759271435071470804787674169809709877218732371801086373401582254823272796063734897164731491451976952853344723529114659580835693118028231654143551120121090951389509896249871048607295480536461486568086143500382391326268941904706343697109361178217320699645130286692280680213817230421724045831216264241962207032466894603858678863361281205202276129150527326819626862140902304774549908338736410963038530190555027105785960930982544791161621893485084788083157018056625076737004003886744954050827302626999803451930834929729365246785543892134865561802680999820247456658537192973810431202286735246099919075268934387538162632104634426173092300137208842593740358570658601984853327176636819298876046944564945583742823558796630070269666225131621087995496100841804293427763363901859028056547565185595891370380905171537877738879555408040897521995034688440046463466998449780242364668463848144836163066612425241273750834492490215135471360037148222385214747291738260206350859102408716946792391669061221670494953621498816838131369313437044202449265535476189530868059638764938193119833689315264082312007852054857454552938818960620414501664422169425692396125437599788272645207721750294125553444408084556624893897809034488111891566862693128162026863171181255714324610985216329331297246644695051535172473498852040523788278534391451359224219360015590537944473442394971863299953475080139952923244994935264225778979996983710647199862240440448220075554739880646222968163250668745909672088276743754655827002986538919044139524845868974487789154768237391997598763609817043685389147588762992930809438618580152882071490144885403593700593616180883588140560805684668359635935180687618150462613185104803255776612348431173774154896559985509954247431145670568493073047547036433050338991900490761904204652982158107130692598407930906924058640525966952896486042645990326174420436234394937592071855846537294863908901466396686816987488009900679071148157425481468714091873056601920825752177735281611504344001557241187838160416167647889632832088579189388567284003356317550014125704536777481228932650156073610322634684613512690744352192971648874459437547049788798951862663289470767326070999142991984281877958364711575438111153506137121705789611731196369215376385971049673104536795855760405643159745740279546747283301390169946642206180151302403889386595619773281881402808337904430064237763750881970204991514691484424478023568682970874837125553354709302468941259032060097572707442230537713979119901160277380746527178613563952642173500366441920907480303634949147612478615274184875050418083639366745086325006248151732006675217840563318643311883223395871984021439037949199281347063705931286418162445483181760006388024256048853908409304374620186786391006623513273111836226723886317607595467990518911158050989537248874952420829484283833773953051147812167508985176153764835596122249881602484822998948408902219555694961827648460392998164647481437337700934939679527359780706381671371503985361210841753209084500209519085990948674290239462718646978942082171464331795058591210096429788152051776146411305555308510304020199190596186708237017790138344535841292719431713001184385156095797437941054876951374316407689658035883576734363982438327885575998881602066854812205541347700029983526100964703779433938301959183904094440885586954407090444381632825341903437794438127199663542882282109733562157051167272047509302039396365895754890573966659851991699482705018717280204249697211568577770374186110473326075012089357613983230636515126985002898433434815657185210229992416313196279942987926738651656303893364469192127229379045953050626786956301587007462413093392138735660481624282466624582025009762748269600199276537164569412828367958757607340860155605787025919537794958750601104314389544543288971793761302709306991743035151055518088474127928988632310808475292613948003575046777683969145230564033008938131374510030625176153733556117350662167668172722019869648653651162714946706037064425710965372860503468093136026351310424697659070999783068199789864835740044129156751533044062096369966634561663519481439692825992840264640465168999282477065997967120921587916157911721970266867030967810918395724345684279195244262919525988565339997308817623408460313081992017665233550772995068659808302262475630013650333880693906063389965539934381959200344181488814641460481185855616700048055022006552124456845169531975338318396433826733040664135876940830527199982630835517394240324927350095167570483829105084396103997033316312996671445753028249358625575671177028396806394349783144633912925077269495859162705172584718941728839830145668761850903260137018149612557976345409077464515644800700982346828803927511323692741411642395833913511955644584145728522339431154410077624676726012756776954234399040451679513300737185912430791048476299058919581969765390070592527624819537278464634514211324958873781630734804846404374022814847169682888798037427915683864235497186441472869676866298179375626459267196852870298110313677705081348938527000205392489864722157794037074270465583819597624867841284510764114594643324194365770576792149282910511257198471558481440815148844069969515353619500015942246104816381073939492712455019007391227188729290167159995806839768277951621038352301407043469225193836405983706022270039526501506538045272430249682682494180852862284504517139261736126310643793396179416686106540216632043656595444857137223381355075153809085405220171738375064059617520147170790822403998934873923494124518153053395361749600659781741514124391275725347324804460081877753927104832327420158597640980160384379743475488667301096960211325491581747575969663808370063846644805368526785482171765368138182429274051795292016577085355862598710313130519461886295935709543352317450800707780215525007667675941191803139627324095186937424217765079795875074846632990524135165866862448001272891410055099034693221664755301925548531367569827196460199084980217651905518957345623852926019499368292718707029981394932583434281852634473539990352782636979150300511738217467690133769080873749586341432664740468809033719990059497878332650291257884909354159148572946984751244326082664432980710615472287902416780284034885516146036216034402671621450293124020992666103062530158514706804062637707521751200413530628846523966142998486929840211970332401007468559088448994722168798765849713324155893723435961104609578450132752429306390151453009536342981987151738844015437505342181962785590705381742939896020212880113076375221687942840667396439861784198683952289411708027065171751727853487869122136582818446213366746717368480577501175007093460938117345807704075747507254024553793754065233939300241249543159944724039144054016328383920979069455846087917988133613323444327104933362144747971210068148426209241051777900107333262275926246442249288543409878563855433687170147446591077383566007566823884316460479736698170563449308482180623346872006326183104107313432428000922426925424028544229060548260161460988394481748842502141663551365483488831363238690234445244981184225255139952216825416121157395480404525987807579585557532770068901093954830139364760111877582323482929382626481973624978718484172560989062755371734595442269915927745605677425333050924028351682815290485025703666334640274558194829239493028228640919366893572029525211081514694361531199290937531483631136971243698231962952886393746167588561313478642894807807764266033270766884606617038835635536239567516912149692349197560037374958043703977820403363605931669765314532787523674428492216712235072393318158554967745179818704969613651835743237973845982098875612521544521182709629449665066465538671680593312948744757424574223662897445484880434164022103125671374496637242719004694894304535085608977227105474699030062630519617823026196220107461751508896382477075810831959821328981763187044999291250587351026505357256954664916318198901855057579655444883297260465909088326390387209396891191656374031349640977987671436133920966226945688809346257782692148231436452313720552024899912368862311578479067737522246147318804999674375567514327547121173225834871675232714156798315575398281857015002819617154815174307388573679303828620255160404622142283911344671545282293912302692866338257709576485061936716196747389492763949327866042285580025411412636168528127758491358452475481636181220718480310578116401217582466456510189576036549995935257246756244697532787378142291721116396465524229458004886752161313961283228488573510430616568982824677002223630068849819284999245587106063809686433214670769609765512704318848813327431044347963317575135832258853266891000474489020435337888306444445454027170996209826724087090225721634503587698947591002753672046386103796655449612719049151365632473721670205399802167175393757306933115543294096993253044396041464967090821502993699661187194735348621324322391298207398403696573932054394325762467249016773994723584800150177531909633819105997759110979155047518974309270862547092322638151054228458832878357514790093434877297911184188438416833854792007259350894122379560947478585760367056312170518558658259819151786991616962776046218498276336923500200577072570648777644494911393446716335794336262932720706514803666781162562896211584354558966723078974963027574463432577216653377534891819886012884069106315788574150795075971287833168709890222854650310174140740743362696975669283461234352584004472686110207554534700398120186565189071702603383614225925764528960012149504509035550506284006145199137426916236171606307742580700309002217891167756605801767183726865141634023645525233509459632405449630015555977633020648043501322930649177000908537027271269650277050902615687288079550266299560632528295813979242040766384043355945693432660872627164943031969189139947113469514249096579322240249795025944794080490487975196904747414554394594328708138689733171002891188261962408135880731675115820217731914622002939098494455694106045108576148257869588117038073204526659673835562177465917359453925170476837716026619736207597318266557398655979516216243968823581905219501995603358305587751735569203448746530857288510677931301747688467168216667188678236905277068788978402423073991830142623047648363475841342169913640569132406914234107053674233832401735920675694705394697454152383068795708226549750821011221226765953720084814573121500634927595765641015368922771058007204407128046271228473657670267071239095253409431214512568701426753602309398148536558229046429947763069953554176384036678512108118015080787109692318597366780055240850062347869759534385793271097490797839463288990451696857107665639286832661045651533465144006298840567794661294239759414956394280688954156813752077883217939888299699894063363091491317458153189256282144590570255265412080423869753508697194602314807602491403464468958567368729902337492213698339615893288727554989893058806917070598453790054822068392021125446678311839869040432640434666615033297911862761433268952220649838877028757881150868268029354841086562704384776670666549879352640731126157407836592226733921614775798626359617047519869591076318949828125954593116044499153971658109707649818996330016379803916004561674435402378980802390115243212961682619199196536558292155013067777520941367281490981442291399181779873155600349733456909343893691264453851544102046407258283566093561882288764689698995092107675124574346322129803191853389852820139423656538772777273151796955765393151837928482272867580029829710656419735662610790357128547004515467024616962486107484878328871030527147968975509296450861306284784837920933943519344387163533672184667265591971850621604930534071558466580871602739799315327690180652495918234737245044749038758156439058120460604559802142449839672125549618128856168615386979310385233568620223027035160451529283017924084514917591583375098853527620746816358070291006032466106243165643790661565645359101901105032203606131802335825983824519506126583447127096067440435596665284759822714107686467668543723780535945832876005713843077498741426904959720813483612255619327982357326631068863397578424804208516134687449493652205590254090079300702147386910350506317635003152533545357059274772465919541104442075853469749654841183113600601571053005924735975768408213394209646259808954832477630362720398897914298101773057131311838805493433423647972321976447140455575288353495250467675463165227628756307279090466406719903139652759802861893277851948288087417017202862182354422150629210193762482280518748346571136216563079134267555009111498647816203903226478978067535708332731704028254426248374235915162477970739682843204820138152545588618749773060953432195665955446504451097283556178235641516949157933910069345588111916553569775347428160470456462743371750603449969666440458522393653850471126936349622714161986149332157956570381929600374334895557040066032267106057180856195859449614566981906266393832999412792836561420549927119744835560301726732399487360701990142157688665070144373581717024074284956925860357886116284641106290083110803906530920494609990056995241709544144746315691446257261239086534734591756310653840242485515985933437510136441048357603517030708532123943154050155715748772560486018487510359256458759637699093765191844390235951508022506299752789656794250918057765309645440063519183835259903203858187671689006790551112106866484083896423200815196312799102262137963388778844253953435906307188200978295229663187976872166827113527169059308468417924560017352361991606122923831068097092660433171996242571423487603850947070563490664150990714267436672757207004837715861051208471623141243034585202484886031160331574430700246309870936877167656951289863227192872368587467533959135570453562004231788233597701224901879192910346544019916585435940636125806377446484815922262416276953250961588422958936077897652013897304696888929354133733937934202220483763364975811083910290710815982217133036129017121264175407170260994113213986617306174247692226435828197608310956354979159311239063904902041198110992406684277744760696284042091247389037742084135682464720206304847441934969362331102195126795261739287886632835010043166632534698673343548120829514486205459321325180462796964242939516081549811618969222891408458609689456278555189951864506700655069680179522648724343256533385855548947070464056501755767673619618362832729807712327783389084698914604999308653664971891670980537530014229497330040462855967604776416056774253350026836590144381810725151728340062064131920178171543008353033763744161835564882710670119084542786259926188078672682698819052344771715643272654933153783953030568410330373287665672067120868366342912121671889430349624588703296531343139240785564141968466208893293171321099560121197016990962267583296634289588951714612827704794257715503992164912527175193432366662429516042915228829301616983438226494320166489026484399239448979290832282575841914072477110660956644164484536961497566551542195202432321807016415835319070501348104245224126127046037882861806236892377102435416011495025833755669927600694972013085801520533457728948965076784389341868146383416964434028457659802410297194244472938574431805268999983001579937276737396290270434037641057879309823130810106595866916422005251154304646039878766550608340192275763616645678610299522221955663993984881763293175187676521530283609563032010071855172316291161014854529068367184953886179960615225057037964753703033224643794129833165925416131210917356565863140424999110980481397822176545688304778349988062989243068192383345078970416936619787158744702762971782297727644999488295381036773685985355091919102150747409942069381201474681465771039915143662305468634289231204721270485252409830121285884141155442940775088314341608827591950847077587067319446342084103387511255566368414981877987665061946649539790385550071666699094501322033636238523024671188008819163830039096588007656817361440566790904167129221007477369047485190902696953598532468141846477753694131069027181750826840618602768158283848676170009807627347822253040113647611060203467785667616751342423566987887143957442503246684733920337462517599410183586703380141880583265930998082968851730932999377266707851181151080855876006023448313198046311191704951158533256878066132286586849006758673679667395547868576286269598274797782530671995421608487470327572909704211555725127379432239395104451573049472881708940677561833796928983682150874405316507615795984376013396106579089007479676059573358078080016118726441646915596088446413583148907481485143360417168555932864034385308398492805222638765069940069341871739946206427369715201796105016031277270105877652009896324296910255819239232942160788723649422091169780158435458252521912887616155293256854172830908559263442909930659377088153574900845411654446644130199189503089942324244417174551110518702651026542703237033492782712053756668223230230113073466260776660924261311406936383394804324132894169653067487040608418187989622852329989144749917986542187888247178936177661059282193702759333709450467279488273164457394550647246683344233693635350247121067028332319559118503416000543522914443498699342753817077421082407443159369626384338021411145947370562103893603642453176757970687205268241134247268860826187060676487634655187597048891487200527226570086866231211178144489567363691327064396570032305716615740532963417633196189760895093872895999382552202924023346359149848815834048444497238950896378670602776249125728992311755612051542324626586215831971304410108490082341261110576002222006911789972061890835439685200660494611670901488154994670050891380993053267642275788421317785178592090776322717937678592324657696419647366326152750146950596583672754316350450986157103375477551894176791457148940276293730587534675066008690996409300122944643525426377154570768959528052055477974008692337985099241545310255585859161000423947798507804226524898335842972509726373020855109690608001806530549945094239649111913548959923214840554212578446168838904838511443169710653745115024681443145250496062768059324835508264301787358041550435687149036085893432179694878599510604555338437965762970379402238144614304870682514941767082089553357641460778749177578257818194149775400450564085388584676281108754927938594098015164136135124735293435270835011051156141846933988530418230858546046210711806375082692410502227140179472837939160657194561062525665667751182032107137756769528495170813914820026985856380372242395905870170763240760096883878631787280528802659091563949982868044763149045110533767658638605995417105210426903406646530481009293358114955385762741252511227892458807930476745870498316303881692652173066765949898662932108121384321946966566654500489059519886024546265374575843058001407164350228051119700191159980211663273272283984851544628112764897231939514973832455496276316166500400278296179980803415224072448117079413450317066999480013737402707195760064254592133888776993693171444552705344288157597217440558258330212885239738210008442848504282451804234784628777046289838923050592137345954261258585989031177412655579915052933863136877169227093625687699189359628674353635638571916561735230448687554150778794364361854254192493741214947914199679318877331635457913474938393873982005906236917041818296262846866973821423884256900625347480212362540170967765527119128049015475839431634747530368817397598858436404453275541125310382863574026363750141367107642674789890785571762612138783741358943061679583972581401109701690669189374047199570547539800402140960883892707547075985321860363337119167930716279266299882468688251742474660257268915349855290657411811082997517363121023955737379402140221184951110144920867629923074189036569544253447601272238239345285782050646963857254915711461461154647320442115712181349463045473051896722040130042747406197608812224666190155898554498654159698482390736049940719902990933210977621436445672517943696514748361726135851332416280606286736066215583789565664773497488753324079823012077831747700114267063364584816052826392691419501033000773750566462865876695203495477219611041088001370880465189628956786249952149671095829522431683613993298213258966197947187398016279846033641812387068684604053455962326618018050396969654819387289814325020754470624832242819723345974656541842182285065227435737613777028212125946795304195404275761506643930376958691850862408017382385454914425699041177453790313078692299926820831259009025342208661603367013479292675323464338847712917508966511601816609602861803662064531220257491808688580283276940201795814427334025296900386433333440432229631679540582698596727129138618761225919437433495637118426136015102666521429396324622284622657365420574877705718516030937632138816476325460409835006441675473319578267981759901142417791591617166111001126221946656557339095637243554811896828567709365252658810657957191811843995903010306726092776709347651209353161989030019296765420544133406733199336092821158585589666700393316643564001824538836539628197437084289251439429925322812335921411744508428749503460709514299103059950061378341096669391261890181320925443455609815772638945149498380471380380515598131644495116038943881358671299385837275919979701900245196708842162201384390361668960094253090376677241367064753189613639579152500368127843981330316327070548834554968389458592528321573754288202973594677654077172334986791327103727240409609904537636908795979204177002563582266151539345725113827478995536189966765355773236224548981412272673819260735615781694597418756208669045904087811287755938783314139434334059909173780528278321733587821332039630113672009837417639113385637470298335697561085967862403648426553627620749725100039029449268632797366405587299182329101098336900384820868745894437028986030164180511648235569247922883095879920844095722612019977501851224828963188898484078000128923936459424164828082343378280520319937902681192372810387146712759845805255514053715708231174065135767278704943080712830654478839849489975842178260479430757225632958492830590145618044847598455634075711750569494737343356637017165915662057402654881448478411637514759836691861610823372468355632701334297838515127162343924437978141729003545104375891496898047088408754176586306741820681775631970373980493603465699394420761389383136132093033758398221172566332179553784899769362901120978503308133677065317446517243822800930392592176504005952616871171170707564731957610997871268927580184206610803119144568990373096360568597081231607666764356594887405450564285682176081198994466622795548506721013385767167729774041943194770162979684497193797816685670340047456163876935514966627492770421408667024773914313441679759169173430307087972621970967623118202609060904783284311601528904177825599594801804020849538551734540066649363756851428992677141632228224817674022190981861598603269573520041530882888573742647650367915750224558460725300863859863023803864151905750862762530042052081493654041801171604091723094176883821733376788229675205193918848488531278730143738086234802636094500481762142696681148617964550535468391351164455169754275537597128944189445200961605087671117878183523714141585999972116633122068018161836638665558817893307758431584662569665383506416459773681999647806846022756927125599485478023757809250178397928362266047694027669944224295915322245317338459354444898019467796329255156219583122195267174865416246407884243770413763020527920884664296414912907091739861619655597815935409448140189381115637795461477079506691286870902297320166384313335274269966411993036276485114583509997261303260659799305579920300102230191928774790663914788216010423063802975458162818222927462011076813644177184780533928352427795453224040385868127571330696014103774217202386929741458225948167976046989592647367102991195842217348460531755706903877974834595136175679185665012973929795852543860784483660988177819594275365245135665292706931361192502318812801930455206708650287701261729633821330115215654985307788544653238132875935351363983301314506552444194463234163764683695231280754757100327835562927104692063117355996585606664321966805289940524614094098988158024987767639815637635483264686657417927619081936546835500635579414829141051857056888694314857577917995661676169091236891524267387580287845113024218722085790084091527937577454128829800046451560581023711529298388421286534985657471286191622774662646465542434584003432260094608408632027166423960027818051034690210965935299489058236330124364356861871620368338325339439847662811710491866403069272758283866207413980851879641346467663985404683623063709030383767801994940365145184434712765790692981071726374726247529223873439144746451192193448149641365008640263056026993161557931948872394903697734664198057349093742225549299936211707814058648957039175496237469102951298873134410012369866363811439489023633100685597743584194684864681375576789890048326327325225026768377507243636821826546348154112810584298966791758457389561784621282226733135383159296985277181284925574971484909471584851400748644359809875958887665508707806188057115625772863525403241564374790784915054692844922615629623096386988474414718046654848806974452819173950637978993558238333264054085139092163449432489607068889738913242925534929887105941613590686207128455163858646676431990698362228133579245746216344714245068466812818214219420134984332720371931188301109401636048528274349355842396245889001616020629558728344915659961847201824722320795013806843758980751225828334934033016127197592034659509254015047957235788233100017008723703438578246281058437310986035256506524781655659508958623362753871993310082890341390621280941547442460116824514875107521033281509414087132657355207642725612294038587275190665769634500788532431714656933708618654367658508584367116475190845022958996148884979722962839151036666326456106358834153386118561746154780944978553203997415966311434826407725490054165018076907231780378369556592541783068796213133238664971147316268471574622355332906616441422504628135645836425527093071584085218960672168688638365520224834324459314853170873272514628681403342871260892601153822454254606842277680590786721647712866478745946194999731026165834022513155875822872335004050929014122221170938375686371292407229525776209104178521711874166360895403821797633499944736376636102922865524610196112598807811903406176991145305261386587546846922181806317767998898691669893547826580179999593182879025718139050770969435935742761566503467995334291419363523150953523184957781326503228096858253126868064678689060863696669822509005096790783596093263339384671436356142824468503200198091020374709798680314985804216070930665568342707420171921569481017910089933295489150184311722944121115685160646644254588483618207001300318581556824188984724785040743596597207248686980151241481672357992352992584154567523073216673191338710332587904879724858994258389468159005101554657211674898472233540251958044156913501178697737522695975772368791148118398220992430329813582577202215337474125891527440573844588656403508230635764118689272625463933959637726504040267109033588451876821300842101957748532186774212987980531269650918081410415743700646191072517208081400733508007763636875953270952881773737549669356055110187650506198790061986240585950790164484250353832534783985983885504035072709461034733841509019901307704187688632862158588269697411542965148602826169298412498335546145239125257064057567165604748823905465010244815268348061720863654284333586059694730382525447867770477632445889273914487164510333558912299302432472969984889484580932053067150343369702049507323050522789535805950090574531658221152953796867411461353212421972205963335235877217565826450178504866913618564167381534651311306104501892421215818915453821683922602621808711871458272438618464277186027302232341799810538075272333335441358389395114075559129610594835630857396061687405051786739400003873258448341928760181577042548249895036828914006244637422314413425578538370920719054087374046303650833855138517882447956777081532101534338437465583788547775187694779678816607172723965708387354056474900791994572997951790175042903916141229512184384934907883542492850345154065592751796129911650746681057937198459892404549496382814316377203855239068705839470362074952001532427493843852407315539978696885678885178407935393702097278479905629708471186517322656824764703402211569182101103192110285366483876555633787461845441062648068324359684274492368496157652156954985733119586392484274855155285687401841897968651258015563465642848934407009477350423852431571884333162758229224796772031755931430448338815923494708582798050455119552547707682042954485952663150184459802691273684524941262336354276001304340887321157843134111996732371504600380915742479375119390532058724727863924819345891711250544799627103228423693044058020773600220838065944338971063841277437180915655211913658876165159889998797464396184601347191187593456654859085837134099363733379851754116507555664247972087954100369742893254249784604822760923708114968193523413817755325276461231942598794686062403694309636858659524986172993246096058641227334383733055000253114638559356762566426650307839310918418289110198549469935668620795607731463962939122474008574863297814559588633791901860974669959469527343677087150548955101230385377766896751789710079788976278613554221334060337719912819148266584720933449930211621722810291586539028285560981727944477353833926107523148411514139742390442320634334738583889557015696920553547744721308104142539920923009743076644187442592725240869712053750401471831969350539751051338191699699823045801280382653451178317505462841409336144762877860831349920322194785865226378754647519520007348628876460898359172756329063060186750824673595927581989177120660117479059851281025854492021400009003309142850625997639540279915644225320553986607669921510819629681536432849283365015793695776976789201431738591621424088352460198952886869682104364046122477823895780953428444639930417138254598318795883387084717627439241067865349157455277896441999001145462608698574759164943094831617774393862197101664000667563704044731177408582739667637556191813673861550385994484721017151569587411706609412054231243294244681377695395346520558805730801257084278732193150499127031787500301275067484014320541992018340644933324536355931473003557614357826609668027595201694056859891833223556278184306743154473311925712131099834012352216189792553838592218808015180779746154223725820185687886153812653218934535939215600250433370429943894766006102706210482914549053075927531733849967876730249616575584853904487620496995741681727895880626222201351397760151782945820334910648898033993794557667870563083662872640304958118698101789218304671428494550564345049721227833587348214820359489695165830228010438478970051079352123462170859581450476909587243286081831249269510002244717768454198746729233517710731293840668635981738523831365639667754268694782319094881596593144438319044591284350603644477597360467013274688300117011685330516583406072595028713178040050462736033031998761490243967000771438081726354431823261244289470600166643780434455726251923091317286693605106089570994282546172381563485954618668267454430202379081639714593178105381685683806021047883519615776125266412369446029239801427784955230961369059339262065737525625912233190141031228946399859255021764679053103057584553447969028221950813510227364107391770002715292920641686820844194474641286687290694181807858306151711821418419015668998756741339540581040951129595894685652202679858091494857218916552482155952764903817404443803084065460611070838289260632540640058886764295877454347488738828342009181342537217016162145626729530518596542537012906082363003334792694274094137478460498210655229773303557866425814344979599664613199663408009150976494462925701893072685182504696145738956484970297706634148792247710630543032689002419207199352124070806381564545326932001776865134431363046630847620441984300035924232058338425042931358962605672961458362152742800495970577905374220651926358573231166034265381195217000504602561722364013503179731641791591235747487690464995320121499235234669471322073975826699010951701653525988422999648892662546291924776489125915177983971354393185570228561811348037154829778198362562102315355906678118352116033490927493486881133020609669880330360733585259037286829519697122643632615445645935636702448284223717241063226522709232307121645595738867808681394343042513119119086944462885735655839435897372522113209490011907124060177909587657084939946338448116265280001678742462706178655681844404528582212170397017496541457675757668667420581059314032131527460223187774360275809899724676759317016751084272218022566828633562379188400990297667348662257255573892925656441131397165248544823301881320282365446704780408743084692959101084263835230024109246527095125311458826358695961723800913957321994066480957005402654525694612161900843230405305539393007577995598185309828543130904139635144780341284395684639533246788349605238189867006279834831379851379302338265904363160428249982426071550601025441171415730758709724746869596730091538875157908569344530640560624473205822640306700938422445444576905004464838310769818569339479313751981051393691307156181140204441556570933857850175067739963277648306449307936622604200927156247077311779895976210505748927219297526574144518561462292295994385809748643016999607278634070538792855920538393703801954590746355072400604949185948287365301061014635151231508742634321726759902819970439009732225346313849743225534395694077375926484729936258408885870233139207100435063568737529887550545222048017477072530910772163423602900613372617967260154247444940814922425751153233313340613603148676646063696791455133341320580601759498401734498008555143148268138887522792993068634345216079279951940491731456278569945652074742218531416534639982550096771539051144410964750519743006879557275797629713081423874020747293462878235189281899165166006278964387399609313477453397755745194794601858182846711170913081751197736079242630102209785506570554081251280430683056844724531879920307532896775727388705727826477695665312714030076286533236435248201771667487161893025823088829929610425219733372087206241372982676553449132546325245694794897221700977069201635432825836613133860048699547694792163302912828178773840084831774246246665531171157517122884984236118729004740714202728596546142388863895705915564327964780138984422428892024522826891310221198490698618402067765681050407612917501565337047477092604193984602336645227409031746254443818215429563652668623780578991981328821429781082077665403442066360410870218282845741565767889302619560662965454953692739254784412393824492440323452659016019152440293830653935220403920034268525425004120434888596814364121669908985096194612195385152568947066286937626770945499926058063498499527502057166182863775117229641049872294303375358851982181852814090570121078191971983178906830650360482112005134520705576778884438193065781141385423492624626923925847961491010288104893396089626665840352019831292230540653818393072666724367344842678062021934357643966982056424320098163120601206476462806098852549044190237777916783610091034956882611515999893563223242297728447890415491641581922569147322815147666627053207239475555636924892797689803679643607349023237434038549168451280118460670532106260350131245434861979564740433144546636248564664416674924899038714238626699533221013844484407384428811710707422054774721253602519273390989967817124028583937797072820859713769297087515177879481163592525922814956084084889541800462075123978022389059209116867196480460176417628525972219105377554637133150727560062514182351145406272850267105675838014883645348852138014261016521354331517004641413695886639099323286721055545049434845864463320004848322583883121957246265872059895526593200917441418743396257723939494301744668129881834044609491527148568766978344932454713406032161619826471914865489584965759651154180796482523282263140826840487776709217910871471219320241232042439465393848834393955799759515307055702613257819066320673653484408820668957615756401720221410497178490811993899781989022813477026680019293234610296767837728359483497374333950746263290234105510106910820015610934155051813726599682262434434318526537823080469026432550042659673809065835434023972221561268398928022869231442524931420363023970910036085796588658257258064419967408537057603259297930236653152301324816092635869627253586967494079263972159075297575799436774168213851998662450943094478904563294719324152456938677171530607146177525146879812524322276692594877342144627924359313654499345628403760324923955764700274448527622546172914888824042442300719754154930992793905745175258155908165744501577163890660898504954179470805583144439925850661549276162801868393649430236975957088157537716813637698190652420000663439900477486844917213734869638029061243857082387983437814838057533662408595900230618856372428893178838000442045012211965783400838577713350326346576374787037029485719367580675378283348064053367445264324652840136927037211790643513008206290976691819254430887515454909732954428257783915083303876961762358292896264959725709620857181739805678816019248750196884124188698959047028212949722658802399053852083818376219805424084043341863968270240068992651261960620257321873680537149985278299240917323536136368495102822049427442274433970055941629902268642738910326863185810189104173000191297598450392250455250520586922625871166341201846014312322183343206463170114455296751346653586160593653921109989521930028150802754471167820819671346383354942037462055162522969438625667555019067179863781961561235589724871892410457503642372455522144063102299980907875034809425613523202095125848552924539110447744411214912549146686947288390178716980027042759238206342572063176435261105417993586599697775515103807732797096161967310703307018513446134962581337045315802839703195837764673198043968884064740756258086712220557899141469812802958816540479534979539520274841131205872656710275326370498676272193410799806110015557961191897408405236976516024046522209810069882831748962573162513981296653117325159320889417281703560421029582206663363500707140451623855397754692455758103657293982861150289288935495537676317954767557569319407733872017353745228515044439843494680233060147183148831779151119728005423293862534421235460078038011427147924741257617366619544422287924236420788286385279587026924322641455331325485573893258324492417487560893145959893809722400720980503099847244190776354477394956165798765827245099220458398073526498012344640504032480854230931771803825817128011003618371989372720890673827237782710065789379017821481732312378934958834443672929892754133810624480938823643907708891929633883498385868977348111671862461321983477654967118698584086237192832036813816621733484273814061068499526685118591969929208903747703617199432944786228001178580258745925011289021000680030467928156645202785277292315937078562675862400475020386601750336917087279342283578753657086500931407731613233274057700837937972543493596635949344812207593646031568353764379577162943354189623640432759679897179997161556827241651111835402466018300282803183680459912879839301738879824494059977211474680762491417345050800553887174835684062636779909402389141464986916571596625381731646626824847570792131415971625144873417812372178532011696331474456947210623329802361212053278764735574621077954881185791051111843745829001741644654345181509528226571571054394391272322094996162209037203475598692062486321062376426344993568114175919715172066267707859067791724858016649972749672362189120071953248331127110487743359705191678825106721761208216878300794191104812331988503244947586123057852511048015936363601189772566163899708822395809994165580020465275712927925801405362861328170546277592860428289415074156448064044983480335435906535947259784069082018318758415964445776584839249002212943479485496452597608512429635203441123583924883385880442670704587365396105426791468050447482900018799080388336352588995544771874668127896155213498449864944200251179081990799162773229550466352234541393772414666419605838381148548318006340617256379003965982144682719493487268554607054159361686961241427929633040174384854060908763753752882475118532180129902697934893244895063511830471468170919653256644874016476182048143221775668738919945718379577345471655741238566591988339754888632851821264987544178780126806982157820531809684951449552003809909966334043516163602589701472086889563514880656628268612322505191279506597538653114781893227513592031435305351019685102238853843016377756747754903171473919928841227389646860139111800585309458845633271046510964572796979652853774275961938423052098696993992026033798533111470489932575842324237150327885900840953580520270217068137072679120062223142024240464726642930908202742800349290625603898479761002878686719308278435118020064478186371070056310396781873997999773412763252564139715322602599543406881953708916755380083955467129243695050852962732543241976986488162974959350684267235919337486148230289932851027712285074584449917244591067913592421605808736989573250177184594444406671323486341266504213057465728542798521031582252695203402230924937060331958724751650917441945173328792539803157411765877831940407618605755575273839890370050479609802286167143916581984013112543837872358149754150623522697015240491762755751674085383991912623425745449232781655475419923971981932251003643890403585937056496175780510123772263410775056644587868326058679580686964258588127764341751931496340458436749765996187258215767118997184430699905355190066379950968100218379285841042452967557045683544590939350845650497404460651435168097208732336170552226609901116836795944389391334392769536210700309367307994198259809433320159656464631107297380861869573206318567347639621972778284472662230016541117365156550322791207591885140896708329660543612882037466624799838029398262638369495222249280974854527473219944105934719174827774265522054307230653919646827161453401623475564600327752868834406544198108898314771751496827697460580857964841270647251063688073277873679820579149071135283281120705564460317234967090468751902721703612552436210083452992806601930813810986902074693936341915730943894286364633287928275895829030491190092839565011103940707489570562043908789360868986781767326468378102641259270800441810465875317345085965050722127837658119600498438854993456364345546882300504968573093839100606684253945342654116228913135689321631006094173096517220365503674189954017428792473361154199335485510296782110326601465829095817010838830237704645447365853378864915870629697195797476156185446860589626776591051834006235072549091803345059207816831750093351388710523576486330540809892704997884174567119323067976951597456763317186799396875644423560011579218213493777153217898615272804067279761569213386240577021009516057111941114357275160532664426601750004852437941517602127534069161322537727814142558203549716040482201862707203852720016714334015187736879383260219836461373589106660202724447894926555616519302206989996927235608387191733867992782123281256700005393618298920596986564700150414024898405962751072465832974724186966703485376958347633145818951188908431388399878715900665693914485042334671269882170882541587456264833395709916789429231338127796269024298468961763669000283539909102757997184425225964337726543027269918245355175589793711515532724938880759686995434786516342004662431742942311512908176115551895404887493747679855322669372775607756711530319338150702086782540592255113395206655056058359045747310641523184511088407850429365440488090696248520787741291195877019244550982181304391965272691902245689192792357693559782163339666958700465285680758173137278143349907300826938283306790314897372539131377748329333267192020773330934697271679027076448544015233271472637507792285132913443631213314917487078462209154845078479677156911776145319581533901273464369718514048646041828697698104225253047934114788058318452233044590382517840430678667781336904526018856716389816138413186759263454123693010875535478153117097730294738789598475391534576527455686101631441799546901194128025912124791881759792528445499812117993338352788981078233617769493816575386886754715078796609735519323542523554310627306698737461845345062480509523228778368607163728692215326026895242272437499235276072226013570091688389575281118784331975287052338015266341351467645182162738388246281754058900026289717872172426861395604899660250274879860143579035991611130740983814716539024089141713144422597338600041096380504886664115012467996389407129816434130726255962480095149557907535099806441296566692320404681183584959248532371432182320989509605024684073776147271719510711495108563347817378070292453283458982409844126724429763592308987865616266960155367442435602677830742430599032932701166506197804104524089809853237298409475407815623359803514160006202317953153328208708865999750035746872532125661438003982587954412054189587416838290710446745743712401455988954373629418395054859949672472118509882253719959503865992765019364242206793204619687276413679537300114863957387446725828820617651326541375555633021208866913514025597590360947956904963263328454077071473154322589927980597049153985000507789945414182952040373870912192029328750220969037608616502387828174720231209317309686794561788052979997320334902670411840580449431780490217791157158837063862072722138511193950778955491316343735043470129462392922068476481691686813135958998345323723477255221458977417043100122774075412332804483267228000167972840889589217565418712985027856444498450731042232513741227842165203120773713730675793089140378950098778404958082982917973348471994853553867259699535957404147361983649917934193405761113156953889233823231049683745189735862474485330954210980960968654735898336988375005103723897974780303170614969698565900202588745570232808137907941577813365986171101545805237530965677416855118139324575929574865638334500052132612303939225830540855354767887131679483161492179833844875832314090387431336115471990207258168966172629710148869858794852644571063187084929299524217333192436705709164400240477334184189246663553389452783242381707756937667886248442636371579838352219620943268997902971494184542568789632415130956437874284213042807715644451820561899831354948837110311962091307594292715638871549997097953719563558806075927174984032733131315995622394927318206691383608936375557684808855612717134018520956397298387769212494872580920017815136331926394552274689883650352792277053629949387615637488550472255276634027051636753407767255765386440262816773920006721066277142800101882276689047530435137058167694885972079270279633186447777798389691865232492977621328443319188084618280758565560033528152538255165460305291994594204585682166554053714035900615535317354651805396081647653650536322963459910225522290729209644665158233825346389208742585988204489470521519497833923341404286837436563145131443848056718571324946718089845758862308108174781968349791503204195980539747102601833482688306007500822764798761518254270087610972575585298032341326968732144600556282336533647564381160867655091860404765743639378983189144289639792750834962734125375718661664731598101559389646522933248381588320965152383086533619972337496175690099150590465369715043932186102109028004839649600270557956140356308437309393273539314696399256265221957687835257240449374450970671922330174811753668158792490900887188066678954037213969294499537792244888625170263297685279753898249356401570777314531447584073830004725710374567322591886692456200031282066689364552428597110640045374764354160962079843217223992666747808197927352529858891135026465377804608466295834233276227555568321927948263674134144963908646431736738261435555154920566551041178714853797670223765034573730903412886434144727614069746174599876396240988011589241640910477012553485633993050968894553939029878496386211962795592763138035945072474296595661111901344733540837972361475826439351234764890518733947433179665368392431897371484451641303828553338958223269522583932186864665970957689786884645550903403641376398047430844046950210851271557836158126083997324226259163255780014283931580114859735129465939735043087132525660422987406018934317713680773047832318323830067758755620450497156039522643608675507523690094944314336341794983397876941495574666845165778955403499613623199846198193379730055127473891256832574100853820474995519935137747595247058317156625861662630270011913507292072747731336805490300956282445825802839179102092615306542392417446009101187275364151656133971721224990654169325595569637304696152215460940868388019289086658670334063669441268624257237384001968037357403327449891673890419934269704227506891496211060295568906711501359793253615416223267830447469230106187572535256251351044641529611981481517461751967349090446461356281100153298180701184825206796222285971478703912944561967255509056258952916000207226553933747834134089635132158438567164041697789137899384883230106165308809523701747896456346578666034705416481779224257659071898319683814465457518702791178643572486750418151383139301157239460662763184336650877494713116337190725189050171567766994885231417106695414692317750972592202759210212481361805404113720296463204382584876837273036314740347955257513879018242046608940660523543859394424039172931607827019265130856046765308060898477399440426994627342755605143611514413694125817197874628070052324330809271390115928382346434404625276458326483697369901751458175818170514924261909601945753164149045002832451443023948639688092223257832790015786275977522390689948301137927059514254013869091424433198078869852014235590991575415387332422114596482541226270086291302377535141187429180191107759462678131235100359591147035286658661452523368388531878979978343912922478560432558109306292263189682156407930649215561528972520945307277766591034673980706777727072783808776207206482831675086786157593314782927038321070161570625498706987787435768321309742043069526045393567239085632443394092455772764168401498756718431147954365394742985177356692440699112172103720626892228871883472967814882804416092969368093979739877445615380160621536753181305315853608981392239277932734705777125904913147864091065613100276435266192538184550966468846377388791330898261072987127449001235546159935924944351342040360945822054092031518899123064070693823836419336789477530610611769135386071718757816986075603340844779008730444120307930057299127506288424988427807778777548533383396011453613636005307073765112337994538955392444423009132328577587902709183531860936408614486033411073979633253799737683464430004317094949005682583212093450704167499095539513489427023229406905665170959640015721601017914031358849370165481530799392431478869604189345355094705756522443635188363235792528026359913033991419619541721326646367391395081006027129481563187715498565465082136729428279303954945587543837556845175574636956833112509200864483204474373433121035065756350113640561159043267377942016980257919141875780006219677141238636695054461503452799444733488794721307647799292301765656171873713682614763774970925421389940599446136587945520789681305427419768883339403174494479737026873734335824078947538569262540059566254089626725790457372653580707387910315272811470698026317005905224502079650459777612174326817739629694942024817576007798137628175103060865983767123138807043010826561745954793791057988438822389581172821375226623038984877495159725977272300240249065766103491886096017111510923416241087808081137037410043295351219329513645057007986614262757185453714493380148534474824734472359296927551999073648529385991334169468996972523568784821739811907778245104320262184520359666852869920204348876444954257322818842236651447180497598569600739172590176024026755473535365624401094470262864385017265500394144836041148046689160680449045034900449395140710944153987312953034443178112928471929933516040088241733997609608757732452427950752013332332096232903528811675738935902723098679100793747115042727976541554784187335930952779946462392804060229127033040845991222150742058526547919859387113450387365299857189256118345929782706937223469444114369128474233324479694150194598536049134840673158049832738079467385839127605927029953104655673320186361700138112768080900583448649627463399307146215694227473698412674969373185642857140607103817627504951376065276248991085812764230753395851305559835509819058058370207551977503662311402577648681367398062162731975955004361586330325919700087803348468553213566373049470794687842742097367702571026589414152465587490441194822067859676036265211647830892529805087228622833116730345816750195913108720405673828288453173902188169745905378989000544674355949902613483594082039784886992713638426630889093640501322466583041091919382949063361480990352655250379700960363638810961315867235644803012086889535838210104436777510439168527533867732488043970959839191596808415121344503532205596072732757854370225215806977353114678054458337950236292546708951618585778228631661515148938222541083346944148470541338337738211478189261889129717785000069195864131897217198200759655420091051595308003031450024432809717451081347194884055005720716783724329013053965438239838870972289682365882086510938182276904574900513374572493033790324242739640031001524431039367606859177698915994334963338382183741868990468090179866406060622765551991769077759949932311200441974071937562754778072241543416013890574437337164021384286618451442109565746915381651726633703837111266749611104184485074397588558868206222989201664004258697577047535424500195191985638135051176806691817075214980534682274336757484908134001591088099147494447708535723384202983945748621746939813185725016042035944646276482513781147738454300531085436662173464375327086755062582323897714435855194058092367623775388918996756099890531858488709282463545273584054741264189510613232051505410130772066067913948238705495911822170892305832459414339937904087013283646186985728344686556135732624361380170350549686414556397248427891617821052509181588293792671272640867974056920225769176397794766703415556373985438553353360570240536774977871733375022206744578462101622940005454508526992938324032552901829330801343920680169533495705105709101071580692134614477889011809335985543877817308588826919236967990305811961218179434543861383773361255718210566520985845862957504733490810021936530396013872919776557243029084587235812158973933472418912415442136438018274677347360994642583670737484981804675474353152782737583442605850940102467975071334181098829853947063410314384296250032587709855245913107170297071125731605715970775906443845378213596996472362507679846049049375708153317528613212055550607464367366183535847575287722693502539835034815459825022108020628642809585419487318276574175932495606700468250748979694370909992774504272221126652824398163264437406994931114512546325757985533800379877841876139457140759737108219063930203442935017809452120818529841392320641440958718730243432765976928978007159067709155797441398769185564959676363011131233445817217235461147064033355954277902227506499058306427291149704736954822864819494024488103410854868348051070230950958442741291367486991140308747750567396037406377070516163921386368279449149835041699009297633008683558069236057037436179205494719027117408511872209643194270613652118481889054862461965127388583079626757659658182993761797378660055368974734396039274776456607150858855316913990363687306772584211380701022905304823369757072023959106844656647314860847368759244059030365086309128614841946301511530077054632310325632491965321606365508204493025634264693002566197292102067334883274753044150911531143642379392433201696368377759855909601704471630526938830516330058251193495973108835221520194616777704040923469705071079755832553163359251354017142653804622016771272356796454319110234321026046153082138840507367818020464022943037738078231349683470517042699130826448239281384073551291833694185783056577943967000248611370320405617458441503801011565742034554682859431809088386380982290944929874463977335229561200920419951481075145414544091789626386051530252440701819135149351866071240187170528811054843110963965987362359053777014559480193912596578157512941111141460745539109287511092098926139531870466884438207283401737994118097754826058988797496271054127558627851979569777469462333524837800535887848000514943525375823097390286554979400301382262944099627712172596402068519992168666607043585256276235832559842765521550382333761001381126463141097697939531901996714574492950946050330958611491844295346281291988586776511812780320043452855384515459648001759841046596839531489294496030811563303376583613811442770824440318490755536554494457844448860313388712797415467645754784544089316697113367491980427961041592298721866710249379751359090986621263421935987131827045397265384132147856015079900954427502491148899803912076475117335885733862205997945636358924200935494684908651529874119882831118318977149099472591387432804711956426883559841506373445376823711914902463215618824729615770038945025703249607017062342842050453398340348639360470047426829509743712782358358242982866080557848108044766917487085021020190759689854258297496431685684598100357048645817828193008996792343654137022299666874437973007068387572915162107563212623194656755381363986215214287403252934196234177438166470920519418785755257560915072816172114156356107019291494485188084762656084234045614390870692577664482611443727274094335735913577989936864696108701841335520835545818424968443849100686090408864185550885011268064107073274630667707047612810993702636805906580862149405559693953068944084709638337818876198983094870307470421015231515030867352156894556429741962024582534526824594224622201670841079639582514222274720200137906085047638126845877427272097994284650064363939001946782082710229695043238125880511798689517033623715908511125081245078058582482211623713394538529225765718218382628491267391624826355395835665376198478146365685590058618105174728671631916745939836839480427364473050457916868452201087876723987254433518913914380992868158210380751254035661087317585690944734574276514227533069743285801069706692757601944065629909649878421779900801237856929230801733437730910190620216487024097570680297596174560648286747267575422696214787956627518832490598342269309487461513512815787715037594854598620065193547997533497257467097291023938019313807975075663024402559226320555416991407240764310333018662341222142599668183576996594901419891068036195553201089874242013767366823043943346294058702938604181329023511939400353927681542745247997840981963848937634912086436685172067944591985322550723744491975511628853352233556140242608716577726786077817297633243746846213812126507179195065811223713422929783349029941658193166706756569536425184042372805359545248963913550669201535089882888420508323089934919932883869535448012401570711905334653609492247418729526892741665427192357634883277739056506719564001330562824641397616639147960845595920688677176314735768569146687301211583716368517927082649426829026739944001715377628266249183647037469201657122392698752962173311134712992614071478509800529869202222914834054343445381694109511619991431592187894734374354423526191747344039931225086985141647566758082684893796482362695126197625502514099213175849102456153776590550859773165597103486448435462442972242910635957732548889243017859424602602167012512216659446049339022901455154760953824927933900710541227231432290423415676777243740727896211466753302635961250767503762131965957735670459493055063023501185762328518401821070181309101331692827333854629376688058170240265091842676431547878940337180741014326356859768391490386394227446776451698815300842019382615237408191648485174646026065397724970796779513235017479459782044135756253874020236490055931229079735627536281683460820330564830644408778924617395287984993023955080467409820947691061623032966493093291261813371764719790833345386023452293454708187439703035312046302516525966624580021047835280814083179737731923103786148110454076728256004208294685667505405840454074457704848995622832419908071187190630094435810469342448928452608478064687847566459854997220242857243540515041515207257874846452978670953594628793141501501476311959007703607366686642591073057821785136996309441793665245878207385405456951372356531182425803435954512188006026519468093092948444357756190031391597836096762731427806608826022241445163512141462472123399726867313946058630720651212199246377521680618681135093524081158037328349168578261258422690501805838749167321458460238978196793497530108086748041821896537697651476873310898532973254450425084660037554883637249167850602075510064426827211497965655105274948778963820950720297985671723142303778805607645222647029093925358138168428802630740646913416602438484496608988863253280640668331843494664758976707359975177107919116261241912398143981141052043112707819078594757025805395990926932768771253761674989224482930069244308637362144235901598310124907827008978549626389837180571870180365261759229078280463719151117849975493964993174756227413546868702999554211666010713016033650800208866282179845546520642599784578692783288104469000903757820011424113279288317110588704851570506362431815364982192430751810076395015045368255465751035750584041500715948115309545334841116558788392059959279275655120122116982751503783820792036953972370404275666279538127709051454691558884062268493383122324385100533351131967798005221024897864400487329496028288451823347232846291139046141041877549566358295659618287846992018604296766344123447539714417647515431199526248908102786144044655590514403414414465790829969168408466587658882341770545198112531137409503069309217510500050230862814497699393129926608557709919394167650740266326814725335978953388178020366848882438710224451875678486750075420594972399276008805615941522468324246043877825918159268490383475179013841718143733606796686327794517837427339884958514850684441695171257275864500243329821682460977522474663533705466001096813001018066641589021459757717021309451500726187821116541418316711860294556873414240121778911833360477480866767475379394202636715616777316035266202267290438964982061284627653426324454120114954470735500251969534132235378044321255534445778100862796274459889180607142378049717356660464290890908489632793492400657047103855057239662736430596112747296574997382306007906461929363243973804455333707041900699406819799541883036555337003580332718736417684432861573466467032517045933905261452194983993335825163840989287209181473329773866537527632362702691759137862442276459817899046696069846712225998963746785062100817613575121615161699469552995888671656563602871132723452477137665797331328869211056576494930526525786848298577428231581370651819350407127843577729277600666471153237266563520077335009283603526533358540128008913949730198006290907772790317029187256944612410167686525034488267656842049109721352046838987331138963265432970872789849593495337950168783171923252380965400966548828784234050184013428566614417052221700254171749460381354870461467023095703445919834827486622976681869532781283336640846956022983502359383020097822266015237034688685519286378939197540097385082946908834013846976544666073536146774502598854936118774461436520962372241636260219729652586786719097926837737644756985021187894473095508997550667987750614147346625467672457145538412530469989300101806806297702040268873551569974581274221238313752285101336086400041962739294857955058148987037119083740699355350712236781500221746622224039827927959764658834273130837673714282738774917563467690217574943272263008714484959177722421856022486994744675035925107389692829597975518887607374488042456203400309464672286697475130382419212134901151834794164285424677312467937979706892458236185675052688596008935764837042083660068607483481194436383054980614217049342483508190620186014219178610965096149007879551076041684178257068160830304312839240909661134358477396074224476785877748349294039106651407064186038606286190886120123693249835259575862607097381274146191721535437413439395911812572140380245351944865669908133004970022294619550398725704541558639708888660532534294100630413161259543892009860504934380342295108415943435032269923586030821385000390465059231486034231843475931908478010374223446507814126141525122446002843476202679603677104155381935272079704882483666878684282730267987915823429251097492577800289018381511776452678664122439123717442373294709168969751763609725173499556435332834397884385860309602422676126508733711075657339646291798663934032372026428869440987968692982538201299355752657101231599122317613966633593337044873818562730656653693479730668159956342214596722928590012140898302774938374519887304434442968828676814297268130840254466419517071588167356209860352412998719187651818664806974473492371488983514179612990372551473782082539390174608222907728288794912495481278740878070669083567042044398986573595678203901393155169476632213078297825681914909444456025622169845644611638363551238477488232218731014726691659136185910725049127735073906803402509253649974786248044737892297714319649812347841193247205920066858774896660154587084072368289616685654764357149931215056509678189181682904063514130687620231794617053352237133125580122358325498871595533529814921675376153674262738083129456252378495397370258987617586766898412870254829707800960593918847446062887859001753328085260990365394627805972311689500739500064192943310580409307469720652928999426006506360478397323639715980238998915889523973493348019098465970578859657325933265350923629201734311981286089505476459879833945490772109490893655572848779057459445938513399788027445455696169134877618024591217891409313380037166326761434815957008095985350395778309803178913055565364639346429478342193514481297017909731668205495031064948198954573554386061656348704014103200337209096806399932358796925066697557903879377854827308766166930692892542401918436596270582579327257394771013439843879505552626235558439641716619360114683778879775019667030992795251890941392197315956521010770379951427057985958665853334431025925607776204225116492210733906660230191922358706589459434129187974873467146454543526639203418857026738290598416457980733914828784091043651294762997837143172204630992205873807360421135093406377550637481530541009616529673451932367272820325036591307341530145865721241610160797867829166328810537298169727525529181705823103701954923392915421466217472833598573887204795816652781161963783633279993599587914945255928659102893010308729478385226235684012634355087760539340060399110323116883046440571433590797351429760607701648304287925368157287238877454565992221160773898905617577522745861817597980891836324845217368246384200692086035556904255803663967732823816779695220324838418430610016012482504825318485006102587767347274867594157891746897541792136558229939350287195857777381824326728282979406808840387986968597543254871916150822618800204690701000580676939443683701631866422458732874643965087901736446263321834520140229528802430496697366737343082621675520667422061370837965690827414199785032742507872395870935452924555087048719635557900164185004013636649738942716120883293280802379172303332522043419357978651673090214471326542931918933413084507074246217307016970292733872298052750102451387382389214278974915392649360068614442315821052786056897532069229035871116717614624883967446856183212206421489485114077482880669400182709823738263702042755190763425717959042489936245421074914971744252438286157027886027003817732392252487023330251128744346302382923255718451536981802232559696182517523418984036804275634839191399511278647749588066328351920758471374220215866886517134436291173625185251938211122047043593711736938465369909260405359329447246879953986119570610698528881922916927246195230043609761581647179268495180260161088496167917805665025519619213646228341043146042542101515828824369462608012779690631708939293733702825667474978139047260286289889881470786801226072586295374314693699984051387772496391323211246226034889746916769163140051646542497315976487460702488637923647202665610914549888621156232498544796636975823873525868201655306800699223318625086195281938618386022408932021039080046121221702901542269181025607134767606353269283610920944225341105852375542386594902505831999866637186769409444286387056721100950944146180048179855830325935034557164861457092924476455279984749822184282369660419157401533531574728670156475432697754374019096986290891415462324623972447769212053147744124001301788526782204782726346857766608267517250434804288581810259583486287018001017666828613603775813997132841063299139898316724203220175493369881333495907671435297170845573915535542688683384199991180862909279065363202560136221307933899325191834163151709818916731907668609191211832247214156991321766443924794673749831398196944313436504586662208199209116799148155762229428497112524193709634643021205432913722267341359731449511949085459448641592381853510845826015084462578704360146381078507381018404043187005203978211161646434131463490353404516507179352403607305518479092917977157587848853598370611332097108118007783321421843947132874490972550720440276650767653091832540236104532023862408380228915508128784390438200576274939331293530912547691175292707102073051889723655466983893366407621659564972416818411584598910213900700620073256288079038763108646631263983761186211137368565355856038680042866323113706424862445636453635685895001490063851623583633310599442168191557434834813039655009736183916818398093666211424057652232876209135931729296427008382220568157223895389639010137898024722589492885402657748777789544441934347972170082543177157552198179158540206953246992505057540197372033496097488228837117426852796749591961048451179259464407786218685179922638157426895972240154730114586588390371337809127375589448735320619700634171167569399238271718947122895491085366720270348195195363877911878925157831857210601595722060088483792812107005013876965948136635773107869077351367517440725982328559648231892135531461088638714986377248674971350795885240477484642991727073501721659106360615409405483411582311456328204966237139236486351307184440956712633832215235985645712446116794681600993377130092150444892571129800806428304067134355597268070119582614925278444010253202968937733335025283892330590552759944045141613668506900601206014494286540739460211716067746295167137021431180920406052831241013434905477351539332512448396226407137906127539265860075497103491038353644017676337298252652458241205177828847417051061405981498872161546383997659114098846802666111713151747917170368510525022624515472422727664439772588816039214379232821461699149081051472646054231617197117952344123224116727179357960458797112983403959514381519825043502815979824121692392976872309397270097069452217011372890273976081085902045451043444673629015490565962394800927627760296286583116815276624968769337185342057732521470625830684122267895669194695971282332485016894658876093474545684945697960511853367505139282669649706109150330059489805269927990293896771679854370023560725365937038864259469923838869749649734495962160113091122433944481573812061644062661387749398585420601119620151526018070187681603232854978784722337983859090106758293195712399335313157746801516481194870302527682253635049994366473164136750190449780563222862907648115440702178160543980689429247097535387079616496445882029570321193652139272731166714624617093005564547867144461753330123914094800779749372464529070968247222128030691600676527419065354123197584297944345620261475991422828446287345905572378685927434037364046807217281686908152454354679437438351082789170473189359884343873947142338084191959037130097297391133174144893443061564273569577037999635242798147856779143001235579893817281533282909124275761632476854063197716232747442612150210537989773711193554081786354114508801174515752255742747452280821229655197073940150619618666673391308185577079269045369906442832545777934514641286426972925252872009633020638923924946494242084760617687600455103332558194527821667379333397951894155652702480425364104072750947780368383103802959947914429024384794128306916159778656116147225849545124664938249504456554291932889649167751906079267615044764626057029742658697992568992132576605295231695967367778249773267879365349731547053896313769564877113596819155059968517846452469657328521245452603140206334411354347516959352497273055962377166535964973731656227569167682088949356442399745493916435657775465504182213676353995243316501172715685051459615230472780866302921060769831492216347252266049007457501729158554688334513749963232952056961759929631770262626169874717620583821062871000820245535468739928594140236568998599310929945868368685563588458776966364878019893683822327730634120553795841985944883735149900506664145032537744320584670540012642952117459353182758627819519357553355152921674494471692993824867792602779300348330004688295534506302356294468308589449777118346547413276851920952889533169265705357312846012255551455881872196500992898705877907450691683482869746010873755050538120156387998511708826185406313354209347193003419717615190958249852946508491177484291678220674103060753789113281795856742429661749238011642727438825446115528130243383641242013204884706521151497442170637219174168556570182646543065906946735449114115911575032381627949507049940123593793523775052548242220575712275806032412869770568912339507012925486935559443529000068913466976297947431341238525319587950958723263221529819413058206058303145870718727094464360950763200378023853366070215693799554749206233579654539956321964530501149925685959803094693866628573630536679090065134422962301235379672442042900316638670127578708392490586747529753316567109877266802589208999700837163819744886439342805964325754778578565249878363102914816487032624992311750729446029690957733935370881902921347213215306008525878217258331927335659733675312357106179990867320009304661244072393252483155618738739805188524411179908892464914058585414578963842794126256354594341731128588146923041067962102434244229043348600025751444124373125235678192912490714773879495307553638604999532439684025921976820916963256961134641758606680441368663956540796787363304725963124761571489979858261425239077963225198336820950918141824903328421208748178673109186744285522567246079269865826782041245502545671676820437986920625961814832294668240403465822299905734326213200112606507557806649978794320837166687254464664572026744825994648574041144065800201213729140362812289923416308779173500219718099341068975641189155937932520076216659809643017263591942149328805210359900155004535172827673275660446541342643602658206373751865943513015926999766529914776966816976354987175058268127366583237264232478733769223313199903076512020106980328908357751516517082154141440973760019832009954445216664099159313659984403699901490738479098088099884934793481334994127685728343390403263455913244177178185913284876413305002680596707614442395369746439421819346937373054181210998977483172871262791229595585898596968007112447776770808631249026706716139230170040951617385617966401022430786163182321354007205322600428236642315674822312038199082447870271580314883872983931683430447325796298645291319870826944010149253097021447878575102947040245488710592096241597961595152776990533829907556145629493477027238895138646012246546403772890061427309367707373540948101003169058036638920554406915163908409860963365128564978103480677460886935359639196163653508590269688294043954851271250265955712459218644989494912472829554841737274460778444288984286385767116659828806762912797559173723958459411444090117541773775065055824021922797440949299173511329467148786200276175645426387104021728858480210286503840899407778080412715777770636721737103572981763375814387570867302289818395373983076931020862203216906193833595536674656759319160356869836166973716542170875317126230165887199111408026422148498060129881638233576851576944782297398112303986746608554978818596575259498092431613461027254591208151690810647675194960736082792671230240691110575164193874087770142160278384284275810472942592615082183591723886476056523713494335140390619695721820381650789138402087942268427003759365386442827353719824820427396555118283074520414428339876060355234100687467795054890642254336622306295255247944264982697888626797298225537583118486578381268176717997167782529234310110758841656998296270166497992495871877296060197328366637716605390692120930126829666446168657686997403818490781788256272362640909951701933733369547198810964373109489050181156119708885732383499705977155423601590995054267604865225207691936228076391482931631594752924563827654811262888446333801786854447995688455696964117228458582680390122364989818165444379655902862474991111815816047155778099447849594218070700984956419027210991897869752911983979708462867827040455167145458655199955394656366633456187262573651289022129420434710938527353563528267696756767557653135559041912724893588913196307298800855516095767496144645659446303185150809029610134559814963608772163899434699315146664905776783013416627590405504352553328398536349711109395417533106416637901815124759712854419748311967415188134543452988041919569349285847705208608588887687657358004709905699780297193498396847626996588194821312612169307931361167761320714414168984970015255909714247840006703193462360293058636546968681897194244454734502326098905882924037636051421519184090419935279719186602512685976665102309406839889819873832946724046302937735250932425616721455391871327573817066443550856536816684207870946691109127406503963460640892234422494893692265645129566017411353170725393478693900394431654698913238286472895517418800108586717974470279327586415338025497628855323982398213618605496207210532016913056715111093440529382938702557633893751512167730228517517037895357375750471622436573149466253204092562280384483134904850044406594362971901292750279675201591803423778749975582199824380169514468979868583682504131012598870790011835246759748013075243162238638047047956762937471657608956858461784167985621472100965871622207591806683946559133311652676844805644587545701514465725713000859170751900010737727597299088814386131020039921019129303586809795228174299975129407279343802646608498829197956094607094339527336862978969215784368898850819887014787260610041415457927767176479232382783652678283721012249607707981511579900617933229434535750499421449749969340507820388758130148723947856658388922821573167698399464645504574174244402395407412611234634546524838797368421947364578426492452294585894700387701744204787912962014204569070176908547897086853044431988965899380079783305662752973969423536857532966770836580018225746625267969078823775223523710053336186827191884573967830940649201452180698556218413086879610331819067258820805615348674858200401268434879705857498860617188411248208860088140599354487105322731367129537290197702468085983113137922719834273897162514218672541400123616167699206059282882299636406242491579499071245381992066670129189796970273669886635421492767519183362826173714151740297997664546252259358027408083766298865029015847300014755787549826842536223099525849637189591395974360514522737019741637265909718290224484069436323361472236240439671901285455443269498730032859785140696638675291022139566458876576197561964301592078959499759914885258467992956377225703727114558605681690998673668916101047919612683118842806239353422942246843557777268940899168014749757629174520549441859223809915734219458949761401464000528345911751963535500880875809198919915349188309441463867194822320673278683442222162293135587508306600371513844408951724429948188605637377497654828846844703652773631531838594707254051283799785971705109870427212623212796937820603797333851197909707266240543510271321624017098198587004484716920738744843945712649971051922105344053292564065278321570074749259674580674757230133453206736126596723822914482714680293942377727823965113937207614258366591547916312976863834458964434048472885460389598242985150988307688136820945702974937889871639572207744533095813345699289846064085276116717299010590708509748763598730460129442318589077909751355204116003229461759826947454594174781981517921513639227424069277781752856755329790609110117463656730414590493225791678901605947526593007558625632812120521799193217216365623916938373900994492395465484616578571825021905726788741529343770310992430452076920544961302658978754694406265119813171180282850002210850998317256091074591674419817524532882687998455010511768117379827847762512055123199016030729036183739227580764206812892080568865222861117757600814470864182337661163199965016034510260730175696727604422974076566976043907664914281624607501121001479797440527575721217492965192902444479526569170149293242624670674193192072710535220081552389941299280797279176487719663508264712245937012946360665073291128647480143399498944648803593058793119668190376164677411678011843833223500698133769433782194433859779016369094444712822892501517288661177746488181400651630339709231747879556465778196747185686075984264078475824666841323845364210507379548201988782356923568571521281513661125161746114638211443445969342386571842491944116791462329375178048288133571442204543568701712154511262732019791704381479679764001396826570329300036973661358366579210796009961506379824087618926378417681245771517926818674930393482349611679512450501978396826751779691808017877629224759923038535064490058414773696718007312213706250711338238324311769561601886050293227421383464464455266881426165148493254632782409025305208719474528973650765655706334329927043050910888487778616259205688533949439495170108206830171350857172889908067076277693077793423896507574106522468595592050975934379357483829385487135812220336638352828640860125750457191826017762551437321217726252601425659165941998370101597555250366879619381623409928719893321273920734904042750188970096731671353701415794967924896523367218030420581673381924062771817954999929015188669848279569823247947836585813347243834162281708974378629940710195875849477234399320525918498164683815522767805416987588891333648446565366409633279334623497753800893581914961719053865429981009123166121771294472041789805040837243187261265683295090824089366699174496619657668788904595369869158374208721450110256024095770060803131186341381380145909107339635295505606544427589574358041876580284399785218299755567574681173881458461139860822814609413024336616870624157529227533747682681253844612329755340537997728488687001025666385537890887628321307390001797560417963548696302904837556588050196248845413810173404117363519785482589790095308038599783570550406433255975749557569665639786547488940592558404056486450569837299854251685429351044066552530575574922665554792033584513748331404972507838464712343553295984899925374061968529298682467805278315292526885866308637225069169346348181766392524199054774185526610382162750049937304204332788147373048049253913748786385485100679193073501612447260692086404346299622371259529254263295369824542925740180623820259176932754736468585549469910528684638126152615731826053081618256878729020810074978528989059330877560303406676383661507995448945169791311268345332571783325927911018983005114423271891569424665573921910626712641517503260099526815663102120364810367928785672504672067778806566298494054808492889548790540113559810516441590659247889125693394753917889083432064234103249538911557642496435265391423194296797023399228583772949942451362143618369121452330008922591666231237050465582310000384996508860618799924675241583924562505343936850274097193980550162422287966330346907996755419698569756449758354464834210973276316507159632657161029331105192238871189577088620627476878330548729906216478591274574653373971721875688644856369987997492820992360504137899678817241787255422730031462297544234997129940289793795146077529565720562541958130529617097894192532054929048272520449811990014335449048444331570148892416008423598249613765095822007342710601215791177915965821020414111715589410586944016374167715693670392451430438656238365567150610126216883630751070096278822566764461515141342797505083848819518021381620818621971937347059592808961004950466468929585285537623859460621047472332595343092810103304037449271443504997463029734109471745177964515360068589157061052490825649369851607335132391842613484770513138300685264279865941607559653376362904745769507570696604153219555424020499783269831233451085285289038197256051184332126003922066509435073903896127558065339395311948904957670930629655895067034618429625696972025608876640741405537121237893615483809754903107925911463800519210904792890941860664582173713789154102264861007515009918104052196736130816525292475324423555388159780378020163432144991951247588463297702233773351944856833530157835726607195699015876719285988612076787027081422088954431077433234614438504900472564794456641064498851117645860178789796745220225839584446250959046831244835844602190567267648851729302572170596711705987583412760863840211765982347675621860504489364154368687514815706418881572121896116625757911923437207872109018923014335724354359236178004695933613665473344947827915651860274983676304219590551384910137110138699224337958665915605892069831886884882540551578402526451185726823059785387863064466719738746793486394161969582827034877304773072787878636467010493040767307306931192940412079168242541749052669941947656480733205098097210527559036333413514185179735275050002696243847499692034697560704099301770134058459291646136442147744530256093523948939371278869158615937540020049287828879270916323338933198519172506317175453820106246090181458231461616870395610020881656588555243294533140844259194419320604266715444286632461922061292503230223787130504269698341541442598483349417498661924371505632681265597488077048055103061918085993051305943581965255150075863686038928910125618922979533501872427790146203062828249160259626771387338259279560688995699426197898461633725915441063952022751697499896541493174878197993617489412665590333324701845005348132402214518069101970340099942781343698026127863920381531586633564483886647510845623883466214300149533470990663012707192930316916323707295062926537496293047378314624326404508025107826463767086170335457760407275520485203816791965562413248941958255105749862509346525369134856205053494370864635624770016759383072522299822640201114595335969044407277214684217734605563595692376756834995757383828142980970493750907498413905534474335226957132617742115768703188819739373877149942921245836516133065670175680143935167127917785770927720652565829551341625494697722705594866319218577022786920221490379060324844604537054774087097230565717266306841668297344138434902604093103682643444207952690984942340369292166338773321578573626310361822343008815419728717493242022653680627347764267949182424758451075286474803638001450442705538084946272722352824580030532358857598039483756658079914535764822717411924019240660335767559655151164772995669175708094555124502593645797235189711425010975412251481368420160499237431885976019510968356753135931625689813628972445381425600339518613106872071935232550864755277592605168078648574396437837286154667882679716079975677652222354906548686744301521220399920384693152393480616901456280896825753485727629976700657391941685992185212068927347574239814195369997777277890285024802578331929144921428211484559474962695616982483024725114864317664125497161745478067985439849184073756219930618507429571784201128516783308475046641263928839712324832122725641809481071773241342894259789156021183172869551168136468772411264207834498884548788482931934413970119776821242701247440339156428857956813493631212871512024886862787217537408433028931544421769345800110160673031779062279187134795555759001516227656940156259309641348210094730379045185089049693800673830883288255260963203334807844863660384278368203500201748629971226329727219072356850942892191980212180180195387128174999658494586206384496002956659935339066831788726880527202206773011158509925561847642207124401638460226862654184718590703744810825002933589671787651379377443370678771374422789515090403011208022123773039856037217970741914879088165338659409872019052422312172484013051801662279140664468928810472319045376281456821772178179022322516691820304690860191294198631025187321157941964973323761134158084445661301011166964331388093872825299476536199769926344712484466937989208992999912259309309981980988090676888802066814735437818778901460468169401087307436816530159716965649653776825804927170905277280202433274064062551733822291715433074108409261356870521254014742878932325502536019633628061066419118728730375065573304003638666445119088514445985293284131064743721709487044828654548630556617154076570879063612687708916183202883096636127185788099216316013325718818883992169275717297089077978239435973071801660294839283170576704104280399957290565296525124108281010400264955506682819155109331880671291896418918804455521973816968802888088394943012527845126663423346827959529741370890561702876898171999921928552960677037936238706978456255465218176597065736916948018179842555277867822264214373820817057683457992890672342102698793618899921028192346994878772699083280727573482769607178054003592278519328817325225651838131610356736403793642089891733877802719614847169080304561999867154490367815001222413473252389150475980405487427689527436668162873049553343504488112983088200537033396823585688710478232809072379560053005870705121264548629674691372871333727562797992656333561960041017026518630516620432381057520001779688255803550815327468982304713605847062288663701233862025783770793001905793351701279710669255627570411838562886115991383326946389656590087725467738720991593035435684438845601381592814779996744707501103228960342675467828080543164279446371402098615498380180408893976820800638561544791560437176615790605192274377451764887206571115197670687855477093134230986578545794457869557766476299508293557769950382809011545738037744829915987265149346071764616313401531701825885201028262197789666006723049571297870453845917528496194154691083917837266187222064505481059927223896337927302196786365915276780452320447684217710584453357447419084813385348178686165103290581196260285801814245325900738238840848600686716261828403201721438811554517477954044740271035012029116712916336544337257504065202060300987225057741692358430601329838225686298657273656486926020475339934297196582789694318138291129912443810803971242958260002676420211135296154411728059040019454502367520896764902079676820460581401407521458564635207368529418361693142066953070309423680219718940723904489682800188486634947367286630353296450501947317861878061245144948883043257803029778148384348056304431473656099882777898596693215872668011377957836064262250874385239970189289491772583452778059487660844873509499812917628607643608684189223305102145234681783723835978188704381271375457001921445065664495558888920146758991245959720440743165692443269126544748358156881282172935471294867729277031218196743837159957654450520712426489963886328767090503172578736325829549177393580699079429477479600741404928401172811610285029597115040959931342868510546095880860206329486081910686533061946173224579752800634641621674473062396117387196523134586024864694212105813941349322772102742422214992914536111898535855178988987002188599622895171946200482377184383991973379053321271340580743842688735351531283675296832969131045632446908339686806164821527571421877396088023327684950003928198037846709245459755432513412276638156287993083340962364018831424693193293144292024747847657462957787535610658578971449232239152581414508228326835348580231084815866760175679829545461219719699216755629780630017408971468892233540916705287711483882056535743374008546749380559254277029416840172500884097854879943435521675188320619603108139259084165092129338557770153124757563553793562616612480430427643799512354922769700187743643207159490672267930811799132997432493356340190957863769883422928228349366437067323726019903965157539565937867011749414924704493228813608429972648498597472314309158346393068194881116566785850219113421093632103383359721181045371740820882543693172466961238721649133070152048721923180139623191449821634030885797394812144541941257481829064592341995139547231464376882385071029549513425850212253329657349531742451007029239664669192176645756369492520361758137282052820415383685556935160710376128110947069727166355476143386238955435152416411655854998176394605184680697277518211919008668793941282822033395092686207730007820196229699969941902102362729801090923580064123830186078361284087634575131356875640896401274039804511465830351708476823983267273851488498763852714594296455609388776636442217967833806086152860567031231933706413987930399649087356226718729366000060613804701922517987786635046292504665151088968335913666977977444758475475115915320573115573387187433271763006317324625971228196240222996788803628959086941874953885647745938569120007529262102958950573987557612030491599975280507189996641093112585099181915107402894009966919521311929863291866332150474682247702130917695302017302287453678392418915060826861199634516396720253731845020510041782730897402514150734896008666883529488004168519056001612214880349628902817602030542321987449013070059638038231324501589019601633172436695208423784689396177201174487686006388677585378934821746772957954252473084141453396727531952482945285474724210271814400487419518839527789515274056492705843170717182419024034488388593178952276407667150507387447626040957174477129109619819758354283994816724158895394731467669535782835016014875322685735799004486225974527548330970571857509561184972363692307866852858903179158936859293737509893946633710264993023565813604979376099613218138974308126760240002249094799751141375617268265440313303434065179319848210010302300627657436581574477294510929762162003453104327896977769484225869287322186246166384197907010435096635852312971617278879889835041261522824419150727749480161970128038991776790583123292026701315707637603932206913453209387997748947176196488645263694457337298778564530213732331336229708245487363221699743540392315818753340901924606331067990043839479426493861966602787356545765738285034592362783089816687024328051972081487924226238974026442398874521688254025089023271222690973986101978490531484035547432509973951222860887117894235673201529320569344205238032396690886589556158801989036103001904581255859354622866265581503045178441524688548091849672379761851197051718406238549177226576229680463880927039909637434931931657280882354625762100534523801916783417544351509343634396884552943066567740026733102058629603694869195751729700628551913862058238890966433928982003038827825161518224198303319218104508043608405422386538149918125938518588280460521592947440826087515361948699251850716269225765712685756952186223976812232899224239531765644515252014678605145750287130872214662335005864206539464692031860416537559096543074137815509065231043701800109455824929380648143589102088284917926627817370215363672721319816528632245971162732430844222339526608797228355436428450085060213321223958949061044333666615729390500676679910932982039087188228939082951041739639166930726392052203519728246367038496631976710449983255171865611450697049464235676004706911858084199032192583481769143768359682120629175670992520824698001280873299135733546696552122064788237252193775091396198833262030731692767852084029645801806488565981858440254093268673134920612521192794241261162267735408270851138497820394403311673493639503322761033023926183740682702288266077498116238378254452570120893105864624892279090711532980576364505868845736021712880979669833148070791908318643300807753730140460213851297719906067839047498625901061735079287447398645862610762310802837003838739816135040650969486052443300186950268200501584190412161400937170710037697212117507408184779115356830056871536383855346595879261009436623024756543485746796445087392717062244340244529470636038861735097403341735077247069287725088542423864240602431210871368334187028594275743163403011342764132616109262419251739307806311929137233313941072249859653697541217074478968603411067457269540280254598906473183826010640186861880727053266474352282166025939422867624640032592330066005833123576608240809713968317110667192681839060296903465880211449050871118772212166996951446174304536682773674564179031239085706148610270137768392857250152082013302336151654421051602603980336419280469062609692868566836042119527941661176080879364137420757312856213039841488630645219672984415005187546359222951674800432462079714204727680476624158131168994346505523503965522375950544507837308515670497078018069416835735215740101805651335625248034777127913467500384612216071532713444331658569860008547717155391498877480414453740593410844823023800902027470555880152697342141350649190249694932987500029336679563848344365770453626409247418292796465858082460580352848988889435678711759238210381115417350683443638051671478924025194600271653562459236239471934249781767706612274561544494700728113844021621820692483289938342946893063538103781567758383672916814734142507499133959864364843397535607091105509819917024768757869632076679437375041598745525010055649060933953565920309072642905891710766850445813745426101287297819275993100696783781012720541281994798817562901678582045500926761145531931327092880720272745373668780697482906336977896821618371658100563750220090324413609202012637979180264873078138779761700822749602523785086484064041435915046795383556500251648103045246440946499288544854258986143904174930313141227653436311651903986987710818155189945774543191836358581725766590910099462855362076595709455220024762599396950187541936408238611455175113090812423941442322986318369748807085658469955082740340673149281458539996287567630955588999765413132608737367661609374529723936436174072213283343488201683489630134440103083591943934709895079841247618512563663812426683615797579606434450417719066615928516204725915136314714732565227182053740584655084283687871060649750995175845538031080500166512440709031310034539792933952598972964918520578630145551376912292880544531932635617394627932887582437921238852704664921564761631578880949669197398909060746649208433819272399849493833404870405042969675512809571230650672358257170746429768333528988472016436757689970212073382927838246809266597282952780659501642255534143893732344700814967549507278110597149013882396653450062369397772436091127228534324182103851569471887606169981318902091604909443258603204747270706320241663003176864202518408927529869352638099415383554969995633953909166224923827620665129070164811482306103378354845948600000663890468594992210752148822737952866334244614744959434846245535022619358319314079586576733900596213984468436123219113054916176126601204189416614805379499624562409159686632124729668402262974994954965766807317564040513556569651631828650723289639861317640091269705071475685328912616212332288361435431171006786471719974707272609456531243329393627206690729862371054503086678226996556234601588877158671227892374323335185283771002746287081477464126649795825266721753364155050421325130726398268576411030072589705271325665160241769071369314720239697413778810552822730108387537887453640113913383732510352497136931717522277128813358224264774945500965346803298332840819398371584089486949605135114987574291752120843024740834306488519394678536569345121155161311177369425662197578608021332319384762577925950740774117247144902270881429680868972729463559863021999940678716932089688292006142757083149161294114911255889822859413211907631586899413439263946573895541776402767502798424688652819512711374299451292539336585197944369357991086897407413115336758022144336740385488790051494006228716656456271099632673695131669370935490098318480419057777305979425424774358374348510268773231452987439717425569376078780148796304487373554756841582457351434163942062463767016860459869223298815592021838205355864687602526096428871021935934985526138010745387362267964213980681609917241436645805985745973791015428820538623359225909595068412540509153301097009000545819973284444503564664378709666759281969992954739278327041464102116497175746213534695835653320242151829118069307588735280732045103085522588342623418074603436951730727086177535973992914486324000047518932582044214365369086021014547399120114835798819267107470567327097014514856341891341267574369967774918887962572942746856892660649792875017263079123235496478641318437197298500668189394442586954071156878077703494639026806732326234523133282226166211419695627349009281366056063730768382248691223344874278826846103839840783593935257948189173781743937796178336005941470584425664209670075619856639727881197813696719148360660579295144178517887474704992966358966216130384402392460095388914520961376883278513092498241681207194281361204718657290275624497864483433620896893055498984229460145299904102058297259933773029944817621156566472638144946036216160740749114633320152483524040789426029648171702410368143842759795224134628626313035745844212091512836744492732731655223816278827151801733642478097315966808859988416605146572717907400219287254149113750288359690890862503137996792381796619093144207765160671201952043153009908608841640875380389300116700973597118227905179405879758307004530945132369440460644369596286752467983279679222323136450295829390590372184333701476378353850409007353663790294032050085064874406418515510401550353915908801776044889168587908381829787320019280764226345619749827972463355989435800605758189058115294366231312852759949604004857073763385662671890076500250841563663577404489405181178312707716580749222876541877304755577968817394366115128460307122999312110848759315492212381257486252147773167166177544691368940829511898756646531511855765258632181067883475311588352760922675200462947659146310635784781958411186451187646200125037662033150237599418927697045899792895692026905422821831259857608216945536524014397191165620714748831791043174930211325430886428600148877107754448533894758699027704286228359999150650270515436927918610409133744663229843337749707339022780531998340050920173144096387612915256987656482550486793761923744318985098366800167265188331442950654534663315990418286223421212123601425749754600657878507805858764461981592394526492781613658842058788651631071171826149564688944727586780822558583769688210371557485307152532956853387202466461358999302272217018288832827648034206773350404022419556870504805751966343904132649056935060713346008386853845823280921625878986068510710658675766980469714653425685229945489010776072388688651158090019965293311733697066287410575731562092621351867773354681790262432270978519905908084456612217209700599490863433552626489816080045778366431221591387862127943382366452334741187239202737990345377501427583295959416142704956948949170321760561508384964583720049698146055676414972240637828025578440904565205110735143837169277241305461972230276807987471210345605686123288129346199563505342162471673119704288545650149986753099701931176153622414403633093813490872009398553865753239372950035659742480774822299354349445364523687131561929106141941444189276873526737686250081486594239161658786056828269928822443132096318281647857618256080095489844074760228072847104202729816785288667781325539215368573075705321934325367726170550607236219229459575250010064615060509454781426530683314229105120390105172861292455388492459444749526845812483900888470639199566999684764282150513496612200202425253264342364150312662323284566123140048538899280419386585564500738558028765252018772175424427682972587599208854150347629501468908118506735632702279011854718347383723365786977915849824535827381804840818054641257520100856893608611877089610505694827402408658064413365011737478696425948262352759265285136056279548972818494792422234284258796310033728026788268049880891150573466894736856350890430679231846808332663555274020114785997667850275743560913779480749798642629201545682388601414562178348304910528364381845258433318157915162599942135963861378736386066335967088887664891799301848164452532867040737054621841777889480151896176835694243816663532271606119257626307077682541682338969745516110872437960211638925781380658409424899400245912683193404985868733260504211451378752265220606164485378248093138943238478100023109268909696552907849596365968064222804458527842511791929811335797796590695851242805217764104764360754716796333073320270910796966692690035255002087915653925095544847837341004493058034395102816617134492937072813110402139947159706177951412808669334453841084550025314272861666859745058099701019896287161786037905491326340312245455404613257729090786627784865620681011873676625884234113490557046592136229272376486133734426925056190215243263073164772437161314192184900674273372613040971304267713704460907379428839653300849766150643628399344422140961019128152558708014233059265972803177192220038337463222002258138959614213089641733917399268548668977481800280199905388657861300861070454589515768162869917173963516174844110278336288652576428451895826673502910100332481538824871958227043693503449322561494795371453313932393725762996661788981892956088109299820573274688940777746935656841440506081601727628284286522317989377598542934308301029761802433142288255898455872598092374427996649010242299947653948223613980510324623195683282730805507407156078848100450065790058866667681561589221010913416783711625642922251047534379872691695478865109767841909543789039228868110699279116458823834531500115345474050564393104442901437764365827333388600929321590173901424334352917187857511433909602736434938450248028648043618028728587571809874127050703701507831486543749034320608545672442102273717274946746789400495719467490184641996120871790475876051396201910728567266712445537655707428753260486949040085893541932176719932506202766680356257102807053169014143800473776694852687374746354891629671196022406340715572435963480510965607570037699912085717720039616864027956431759561014151305872404935733334460160020826954166381613089844274644164065518716718461800535775563781415487821697119722717191133824816107432755311341773595213134684347683111098674106018844668715591836692883812439780932548190659234695194347249709395114478470876196284472777702054776531400971431311830923469001481557289956737194642846906096936754994157871858123258914736455038750139582817323408993694179281871003082560354987130493376679013268119660646856594473481051765074107983152800366870211555432141454654354356828001140234716396795307906808577038983127126313981411461421053020182765113092538918477489344567017176533138913969395522989003816246179039765456382866998765028566457117800092999015322137007171286832280383627056925004875493485196649768911595165950444733752288048401577852404857363086549282895963118616203842548545280556147844518990025962294734964844138458463613117111176035236163339023880774631613316225926875389649239757335954128719719068413816540844820528719879324866774948313231608902219457063529247770233729197639330644235994539537775586631943005956413158722222701229639819087630949367254606197192044477701853890036120260212478562306608940497624707259436537058256488708703186479549509399898874001244113740074620082234826783301976461018149066918507327535249777522814816119852596812237406957072267541568815892860255946971607054137271862220597307741673337992029766456768930941655202390121775858320995698914644105556502304763067649271633232956609566480839990759006357032253400901418589206344241622986190759515942768215179133688172893568951261115621067277617574263511487434819798292151903915890442172794456740650967064929526689696336798053217792943150505076103601499379714663657350238503719698664016611027735018485771020751600386504365502177603087496060502271129425912860100560501823747945642444206155435050914083933192643588059689959965054269091991791313621825313402820104938058850352981397506479675259227928006008851848529441164740375842346049524233606474927730951291093976196072943225212114800069172329411046970589534112041920841312932028790401795405824884348919964721495701102908737506000638686262918468596860384589316335113399954867341093616105978665459811498155775467371916705379366326036466517591160818705806428969588165275834330443501090043650710923290352624620325722676305446334106118209536083277148769027136238210097942386903667303001252242058057629064421231230692338765162607795716821590595671087321736969419465641261680671922932462667635800787493313973344066457693817566034689948225770117844539647142980982984664369135782555840115082444905303259650446661714243266790792533727599775188760245286916095980665833144310921724116509382911555918142287772802232729017182677776057260444765614426218247673198945908179706863300763051835045364838018469998737050530196834884016105567653230233221901619792581834464572208925262510121125289731907198837104869786952563757463305246013790074374792567662169375002829843890150525478486546094182381038362752058815749528104390700182392734599771317967409908061016877549349419590689649076648524970259833622643578073954318082685136813148721307052252221705114625230203191459491789772290389417478134999039704740055430400131429693375674043462320452001008537403390279244311517551872162488614255961505360881685431776383644573723522535837484743869102460072513563273209024925132294606348819329442552716546931641280075803665866558780993896128927447927515116551591232292714087062018012377917999308829121070771960174275830279868936541016681965998250392926244278337831130263219505970777112518239039178530787941379975828935180361387302675351939842876041140335537262367456833783853258929999845544915730959070570072904707784308827200539044201756391435490240831877188750543651232581762765065684678367180988296976825778759233195498806611216919778742850176785023347765719418679379595073548012567450370208953215017278345133706414012781406178176463250633389347426363227737099952285073950603063399612797127987348838293265498863331856385166913849813349740586959393844049591679073225574860224368400347637055405117463251276382175629593149463995736430157122526988794431017844783452519361792288783884785487250271794510938124960241398145493036914130377802646529432871220185331302096168663929688784846073978776155708133518149354907383386938750846671615804115723003538463097398259088179265227288701728118678099859801679818247042679249200639299549462494466288441802798606119512375978408203397419003731424942135266105937578498560096728132228211604987858467973856195078388436632075015029417075804285619805164156431593272503053467169281270669874716833067581947447818631480854075825286391817418347659458065656322348681476595043752447837836185041751093621205427154995970786301613284541014541081934201812873714158695873464927696676751346121069999561228105165845419707656167519692137886268519396962616499240301234007713770650653178989736710310608573578532896446262627109871529053230675778855786890712794426414059099776299851616792013705143653003525259117336698920355694289497961420149365587842783437828838334791247147717626060734285555271197785200224154832818926955940777106677426132097701249676485610943141766615262604404602724090302082055585442154704841031501143043182447704296646303757840741935331674180836887309158205062764948784727863736624334330482539801931900490953898851403127427398039539586938595908209530723008011697855186024857936702074884363828282843167612896285434100079497510438552822478436847065124126824178530633041316448359967645184895310378389080367775537827529045194211387765805412504530923441089787142551939710364251380479390348683260994835844333850278169842992558878173206378675956994117241070309957264342874630543257284483787919457515575182162088941833645739278482744757638653563295002349359480838183961339989811125705298461406747832449801510245884834519042256401709816926005175428466514053906912367096521624373649426445721902791801832625408817145792304320901267785247486578420963123001333446700335249929896572042826860457543891884193748780977276913527717941779102929931516634775385677690859988562291902997942369113112981295036192547143043683146141974830260730143889417076467348085510201933142920410957673238833422479815485582188593442291479105993441274302510715536222052451071204192550525865281010739323287256542851304267876424929965396966759363135705832568170374925802909263582689593135871851948450929380916625930335149275587153560049154406675340375395434017763033747607553516222874347309170762773547700811346534020014765676054723163006619827397070515886333682254826344734976831100179375797878822702724509910529446976160449111618578350310363772894316742296277508032683209585800665168978552133047192704592720086876732918097146562424198308022699692346171361276201974902543310309639717270337233941904249267606208453973138662267453638023418205796388981368452852597698467468088038140384942195969286910878472094493550714934684332439465572897949373060178612472443354275333487700453460237935934046794243541945762025081033115660949024235601043222564676814825011939089900203982224637413676887627917373239295517995390535253147054311085251268632857490339720282979814816161760101428233600441179026096145258432532453880704181905773400711821725103019402853322978700362126889189638658855911689175397631614276874223013577913919944047293115601066448932115507115416202592997642689995252051750693018004384855935615523787825201600936298926532308531451031111785387252170879429075473890731709430135518202692680983178370632598861224425299942879323196013748241757989718678495054454803311498073132549836380485164185997374364744461891269154470262715013282059881058875250904346550907073779476368354379450028794679315745619973282025580183936350097794456031589637243612533998150558946245692174757059880599725948180281256878999653653921912824184048922045573801439715252925785152351798342245684035477671298501260080105741941273544288373498984338500361012170977616380923369629080355843064110676867290212490124002185912011524830021883961869517476598569097700338431316938021692841155498313381325921598314212470562920066840033532605951034426507163998851467695147632688279296002745236043383118290512521215031953653082501550702613920899578072168903843959962166808224240820486701429862976965003424638337073251294396473867409291321685582392048242817698191119331525601307248998744487474142000831982962333936692288072763742892431106729671245066323148909260086235755010055337168951607686446103094350662997158400279017824166332746394854571242964782228445605195548697745142648977818346061090237512145750382713509035232947284820392783710567588918851001515470570538448982021640596138796555095443585536187787114856466712892525277414694539335802449452333655825562966250821953219184351996888591957651973452234106638863550373887501130086560633318255072768962285863794405291651894075458592293268781237354533293292185858794103318488157351473483711169148334733148768661294460063631546036600398015461848377146566983606734482567671811325883734890223452750893528216430611266171069080136837944097591414953282863491599417966718955595130082054615420482996379088096694116131464645194109951331839356383590987790417468899254034123611094294875396446876252700759560320024947651787950271552430911262598304321171319239636422968462293725536235930917585846280153630103178456710715726734880525357518015768399867990317602875680991396677954311859802701698259448668027978929257175115683131204093102030908579561646732537032928131180517717710984665073627925529082928118266668113865270622889608149848091359367190053079319077507497191883806785610432111897266810717298722800444314962835068364067977142182056761492583375631483857722752101415330530542033876738949586171696893998401031253867915189940859450744599138531461741068929519170269175710947446294689748710363091414026880942283673458775569730899147608573153110174178070035635642935459562102411236996326438448241617557490310129258243671993149101080618212547947738699313257401888196790104851834036354219792058711823940397739135880283475149617896096258059466008508658827438258618568084829581545807593288660581027219120095038599541929287253701575624929149976946303959925803007049219222696875290565634937164690654036097841884935138806517684364342967962070758607505943938169898682617817916215052821992931966797026147823889542019673441544691591144012489812333943285352726200042435637042563004130266305801149410542731132483454600291266915679966963754929765864939871037632604238084122240908021648274794630274776452779261675480383930240034305222309215467352142923978333930295838165518250382390038038808966121158108726728038528310679836961381789099975505955791553309630915186776080719290629718254222268701350552032639284200324028650639714695026128912556992567381466998641454018077469977284372768136690112022559951326084487543745726929215579193747693018620701937789654007766251676205344107303652021822623184630488386096020872812905164867067855018700240668847501480176488798709184215789005236552737613911149181335740353764795332349136975781945222925227114709664519909708622812183434010325553324739974776977965072580405568758249121216854555600126907800500109512208250120067706538591395453794227446343073293399032877332080666496169801575365697464595267905546150336655983055525011567060663371238779632010613342157517345591258661640905558976129825941922131691410014115427405594499142248081771732310047329969303750990652113012997390487263173505030843241105701649676490331389388926997307748700203767024603749247765296989084750154219539994782689410489101309724793271525424241796860893499449932795839670147834094111499919772263398962760774919746621790817400142130208238826621831981144394838444746318538281606400770646322334730060685993451335159520436176443305668369819175574716177332734324667867257478019122223542123181824394616202643829877558032821262833411425216577543333609051756569211805520234487156150345419399205057067421551162665969002822416443418583317123389655997883308972507268526179112147032733705653139304314350544637599690686373882567915628183338491998296336965391390879260856119565372525332845510223268029965615606888448172891706765856629187765538688234456873211564142685426118616748839704314829444116654207687079032851761290012535777884223057977611193686559917558266753859933691643731112535029357847342725817805430827403631036329827669821454155461756588978720805311546894960220158421578997939701179506639619962338272363608985462743555453350002841241066199673522491536207454141628766236839622420045881966698635133806814234955340077209577024589346062732243880433015036923363349323926484941532639486264247895152168700059990219550747401817569177779842480170375235438238951887666787129517887354663102382450536089762459897299119997648060467380312210335989109948420304261466959860483811481962073218164882048644111819803185984906796376512257190619514965860757942862752979165858372309982434896845413279330242166873746113584621221284404953668851612910496738031965978502670477389746218484634505335162976777781230499368232407902236171626723150197923893034636538826177547983445091568684572822718738630449866407196742837349241950387877210508763861759262254053219730454948354276394240715298945866647796531796712285853085425849971062471506540614628093936356221114902295599629757095404514916047304526750137780084234198591641006871664598643671765172488535349562873345774966572975775150066873824249134232187221510668896189187583510782004579264880622235002472067896480523009196430568260981736152859934006222573154314129813570038972997157443734328970230385498713934229368609151693583781723860375445630112551085292985262856785427209099427499175093862680524469472599069308962914974914280775033304389404380544262768910530453525138163863608109371291112149701779970477173315914756210113302599517739263395007527959987854699761515185534250167020536915732537610434607089584908362184945904145295101805118860301201135191389900441624595479372216765366370633707420043128411026396538066255321924960973258678192417065291333069039074966805829688310704428626888469165007162404282343602229306082901302940654487819805157504841817605960069513348025557646589582514161472472918323524076861562546038589971836591212885998768735409130066704857964368461438170186216520638756778342719522373611730784777759532683584513787434964542568395901702528876764171522413808514505347832049889790349136236012006313639710240852131380888205886206016706411120566695534968723560658058049632636818085602974203699568912002765236306524094567755799912667098801788159153015168593792552383866336006347131407170914670809587043345179113815640029076395077952495338481228718151644351244142201840332024542181208698910446963772609756896226761414601654513863796979953277919347055535504120350586058245817131417857297491892880128472703838989797900943103321419061439851671740466168420276794058112046457521753389114462096269636032428204107337018803073828198966494409043588340218144075692682794122456501688891728472813724423062662968707052209077435175534147561984583778687222092736808284207733289801453989569067964498578164257594048543873759495006274127462646920934621897853310630546069126427661700476036762768216314043226661440069570296605554702517899651547042218472943209600143705542369518852438278338957170233087137475228916358879621658917253096418620058325798965809075021781855935048613162797156506328305258671109316342816291562215890317366456751978517288540348105766806421969898219706512615889687794940419877083406047926158291605809377093214275652279771387713033783393395253377101561402802857163936728826413471259097820720135860767065344202594537059433038528420168916653928248774576767959071271687451425588954128973874507715897346123993933510395092241914152374614852876838379883599448132660614566398222743535737149560029231119908873922685762423093223604190788922068500070588510756204388228086563866462480681290867530507036881669307769159303743790383523691982378035737981817107124289906399459044224686815645821824899279818729268807174163132447095019619945054654643622659998370139024377570346794075675555354926203445109794935652467783667299434466278759301320875144551083150929601131027244050969225598305607788671050207838838621230685251006840549207856676052648360567729546574201731703370340798862440338226764331230715569488702691065063128952937832315460239006759657939013927598785893172757963994616587439988000597753939847521887945449914675681655758870526469119661738216495314130346487916855663371862411450377865575069702733187952281852555264277190516982624635189726683265008994968034076668740141548873568238326464687927247908948620041094507020472708912854967183858557475688005404781911952938238194654192300741507127752077476974346243052185938766372149832806242705633366000187543217311059008636206391062121127996594519927948224967146462642707415073644555873594611525906657234600120279571378495157843181524175508764667255962526210505078821048386509581523543176946563539440231745759880025093699748382468715296615767138042924684150667929622322612572808512061256738734410309598138913584004551656916750658813077531223387292948562439507386673640337278705258105693849484187245394027592238447516652954809553592374899784810625175423585943225277730635988428625108143484946593599488357816631157673114467900368511003865156369049084950311095687431550656794670003858004346484490326216784577543633774588229601986239403526887882582678909265426572726101603340978043147807163220179556826773390376631639688263843753028750249090945790804933252277370109370918291774201831343440825618380158413402162734369105399857000822794331513598138281112060756977983925810166309730990907703052997038534155147775643268977349992269928725174302766896905985025343159657325400093883135660377088416541727733489490622742940865836246384943248039141855376341118183961310413430378692450770889737309284613936689234059281564112731425271059649867810879384466447069047100666114467675045248331007339020323045068720726151551543077921536504853391470834637299936788199162701125056213742669307029414507457060645879879169817866785972737784672704132111932905361179095084459770568756606026541588523376146924043136435491956232876220766685715872053681291588990868264753666536181407571668855056853949808259671588481327946260159246701220935855723401274989982392292931851530462795094003797513238426057989683840515838294593926580933194374191852483050590182729646297959206232652414857672871074926253035138676525901562183913242595782984184503647006212950521436760833997109999460443820099793486113511674060507136339286804081933134057348315118966321974180477661151085430449296926108319423903605429858079667986703295781511547307753401048333886056456427349182751608529380404642283261059699122765781331950020959058703162802821716474439890175882436048755388222105623401429790745753980748096459019453618363539610778324455293753020314933561793221574458247871129072200412052558017296478571560127694011503518173064997705706228598864255904135620262321497195446447526096728869303567606013228681245558815835118749073006548374275711456248100007430302972736161189387473685694505527088307324014965210678566488283183027030839517792574420276415393453965075137043732593777960405673645931334931005715949608626302292246893311040602793765134385235248680368350255314823670058424845043781334246118546549031606269904444189821793446995388574792012332143283250842595289868179583604095949771200933552561341869387263746306391415231397181177397073811224932334024093127469827069196534052729902490760627020807469818488320021489873505778721137572865548549916076420100473248177889574307964827688740034998623866483694103375966537536658320124150686067823272339545726256631793890374061682397589748874358866447197051596773284449682175333741850221890100645551365121526691867094869615690012811618212391794278292555968819498520146762994260605735500410303199713793666959375950817203901869868317617032956870528354899328492803579539767544193772980656525682682642608174394486578417867666833893038679355245882981373440175605587072022844260345678261658077746109180309674639707255806234874224721455481681262194020887601713865858641334364035100938241277125958289624489806797889704275382352514748875621670321937433767459556129658920578538607884723756835954437549527232284733823324530220275167600544429674589766388226986973801595027571670945130204375508239476986281644718270237228655297525190457253948991658721854398789203623306995946873742358646355329305293724483810044287362804936396988515927512016640231325429624616261269185415799224602781581557124066851493684647192931984742016761313452476651135247352630237823157133307178727853363180646231229242691898647893811808859118226362915624456845081290631065330724496002853865743758239495678854244928329466117623332737435582857951407468203088164311459220967387154477746146567807335775498225208106606503446758897068883470693166826008758320037381305874497364719832396039634142660601691176385315989583230613434044311444832750525360342810760843116022853569923177159933319472324750883674310852287972160551111756129020773645239361258115989608801715433025060970807539187750606030384230884080292741428237643997151421213470222305957364769375417185181381783801053430214788740315167640916636570241978682579843523096279303538470174298386256206663233016390838725205051377818930360016985271520614661318564302759867418868261920027871251809459197317258515763335608535245088720261151452279224459290147437496065862369872252283657616389297276377712384962828587629490886227434436759256320388126065836810157396040581518216088393124785507723198326227850858963930131403948962219155071252943536297400130887620071809986475242335953607091115031248001203315068009713514787347989714315810009359874962252400287390791905807179963128768624812839278209336002262203966160191633212791213180119029552722635257005953967182849631975324200686217878948747185002323994101624772209154875865036990166992602982404290578520473349853057284089003840022812026600436349801367372819225785446185696009791999084399815620446306820600907012240006182879685810566587202455426398689227387574971978443558674140764668800732149870730697666484045962024327666261546047448309728864581614241252074925370333712526607577347335165768212108483962060846163622439905699919125067605070412576145033373056580968407239576812465270093757293942320138399331699503628051523849521108979683227613994674105688855834883176335131083843905765944879953035274140921224076834525121676768478101398482550599336087164047876018511447604728813014247423073592664326647152983387593488731911279018716026032789629734326186272017955085665169511001717516285798045763182291982833151202661570845083793223282216592500860437642272665272404238709553752046761187348638541105642301394922922805348502960445226382851548501466471130351406447299368607951941699655099387011790476533465238452484103636905842207814658556396058653755738160659240199296436487252995824528629674502886411488287442059407225443332579523848909024455320662881689171071739507467653491724182510527589551374827247236681789416491002643458521595458112430934254917548517726717313887040719595251402529089403238050577540403400956935985499100117695510403802361007413156621314822301138824603617720863991727136039641368869617272357438956065499370139528674109823435351399693852945023745635609137227866533191068362695604805764677713739880664071795351833085416347339030482449482428812670877943672112573772465801725206042526802100712624759984690812562659530990082232664707042181977217977694460085970951777903257719739454173429069933187661744175438415017100711240169765799657596142353871773126778401723720964438877940819290751526628413858544077364224250316618004617135934776888255203801321019271332545635423174742424928357329955881091798866468200233323358870766087971368786893601320895720433974812260813611971347688599112736221259484754481311559928795166795551308876956780625673877531585485498867706049983945958017143004226863736403233034071591564494366979059085633359547839300265915088379482538096205631166705480514821567132747155975976146913690496638218812100017391752540958899155522277587011281673901399891700683034034008332283920986404408030953519797866843041185396796824293563041087993480864599124930475302313206019839667004878974171696954543842272445308199035772177936921181252415208688560566337009210285051363376088660882500841386203713455513688485029622528795591149222534608474510356322870269532587952859333070254099091207212413772436850453205809323475467253207466100084898196591856048047353945958026459782993774698673637793827277116660337021965085088107543069818334615647669610396563308948679595476201831571098763777522090955609742082291966829021204650961532038457222413672571794813985455730234712587461203682991287668865679704387589478674893890462821270397032063886343037969683293481401682572254094077502917789439099868190449858641865473490289309113124901168217302372530243678488875879239958039409022006189919384662653309191004824502585651581226062667178172294132402704158025751486591154809195523016837890330733696607044498853296061670324374950554504852761508497278098487834163060164451478447293980170574523208748862850922056716485348578749379435279414779841515348099279682751447825313249017229632747323588654326744683623159478535113084626984325160794456399626226052581337515615867318218064002871157943802070020830928330849809223577067662767944744271912826722251374821463047869006180573101547489759971184942221894980907762587209441884618609810213580653219351649003894606179098333963912687339817849671468040229200921179959049274887392623397297757651468053322254881455771674683719218500119727236154138657128215890739094394201663003529160617067035355755023284430574156378983195668391754626201145505130966660011584748807073725037798144675030530172574815440309309737453340646015680361978401157639137878717400263459966026600394127650620058117873443907517150972257807411764417122124112993425254779227652010178533898593438420608819864315238062071088336135126075746293975010198951644556519892227266658104378976931559517558736405877743304359472465211083747518337131671550288051173601272648339875260085276160819493098100588122393678000899063971483831950845950986129108298349372366887522825062828083955502707906901734596956334569139332861553721034626149696489388493846287715075428728540592548035092957156233569034543231448413846306560289848893535286823304873163795125363337970331000388032507654470411513187520926710068283030165852893724513505253641116279323440083950838819143551188996649107786902882435250082097493329906556433548144346085978087599074292759918986767134066202316859126124396909776730520021171559317691774557268386177995426669929947652950763092177773696249553218516866296162935869513413923999051139370258182847941970019411015331893880411281375274327662610670165457869872760807646115687998791955492193633838478420801560641909213389139644076253373330940322291888022858796729030329564015244358140553643179404542412357938571716321512266929420660986025388995230628657694750830822455135583858249939586004303678977095175990975597951038995206864612397926463135756237714284852796234770092491812770794560746540046031951468635459099208389933181429945016442721247994000040616651785710682225177639627814891553391897279497425357869936526387506521502552626826115600293906775985916728141893037156732867165229785417638157691451933547570361463363908069706345576797192452479867634887354148974327954375545477028933388555477896350965216169243790935249521742598611402943501906039096747712574197795895258187719955298577342693453724429193515533010854748187187757917502916961342066380581012923298641870779088962172250262592927381792909987996086197902601706455338182515245892339782220865219616004342989646632308887699356683888009030985557826038402778620203729527282064886792222150554804667169890883411861074433607460900684157936277806323692092805682320157858101754993792417554275738613939916312606466221497869213485014185918260028800489060387157411651825134412792662562208832092482360413731790849792783036825769875767406487657670422709265847265879671147340740890851981713498727116684390135726690644127944247497688674470769150930184076005636333607041178975251635603598836595593787579948798798128225276962110863419626306216913445461076844858539042427398082317163995948008523217600486535897089222197843088999052466328428112707819516574842054957626304437007411264924050310317701109585437581733009363013362317836049495974827780283007253985063618431334252872044310360776991291837652586900135017577298337023966557912296426358402605048160760713888133661899726999511221123775536131205257588029749996411462855229274249986607418121433630275464486975121572902402585068198934428268466088488239236709931817853884874838727304149241683444690821036640843209072133897241266912643111414706334315884155347399025453174498571254474977986444713172787302081371774672717648677165288344819200374218903342314970018678675620023915848916313237322453912361619137607882962567167495938584042892805258898948341304693167708637489831111953631000722626062005184472714101754476977975452976542983650784555838797631021040184705050474943642973396672292166544599432542471938760467773232839602364825458755635420721295416980427314038049277617308440516861278045027538027423792528948883134137610174440087797824523303410443726001262138823418516253312172811947800879376863586486999743329253416318646176895171443237839662132603010495371013857707688156896094854152013885628809074318076607938701787905386324686061618873409567699585350877769238072098987680895947637620551088668435100297850785150680652885986253323880327723089387143451235445386935052169080174306306366295065166123217698927994430008705260787540082320207585210914883796681503298147753530655994827661481815271921931059469706290214478739265760179166506453571882111382020614701244025926275741772180274594631038736335506493124013000121268032407518680993576209524380832112134639934044552651179965756656978208937386614228991705978169176123766749154993431863259987455332888002140665588523192918384354486091631680952762436651377265764804027538456766699352678252555502636067337920644594578254841171008663709544721994924783319821055965593648824052011974692103334864073321088236692442684229689374036040497223034080017379895579514367597574275891413825456313467573661811734787349051526756132753185237964427955087694717844754845308953061022851549706864920485848939049496467789757863642709211168791566753553133248330690355671411992243129419710286463280256205169086547545193766644678068174162038012491688719236205394127426652165131399030807295008776500176890309525682168208421143788063406079078117785498441379436312692596405925915158053329582757987373306032064071167739400606663010165642975731881613948079096065516888756208708027934505557487149160475682540640450249031968505733852434588132685806745254488571213541629949097690689443168510143519092877619777590674351601892694662946105437709734565275441911135116880372521037282513142758202865395080358896746392679888219577092648123292503640040987487829632197356230034386200402128026471720935225773369383648333924780674881286796080668898638137135142951628810765887765604794188112850247278534646326068852374478179709732626902970698968942939587273600012410150310156532847143387363901017609097663545161872848665783842767209834061505961030009956964273247797024333774344339285913214771717048618883890737368495226336439329060505999626912167989671129447291895917407924221086278191299253716925360144893679923626243229576907860028879042198346945888294879863156281299080572248775523101148125773388822127762831993755137120049577352571046419216484475742854357554832962165665977831928534436262047091589331014363937240322617415272419495086696395147023393540084472126823885099764591820560905390235579908295219975238067065320679394320756120296525590306312155610436587677488408312670478468532989680677848364571909957476878488280900074575926611427065605276257017185440791567888872961137367204137496372970752694661233980989197468438222540925623154540208876296852006637758209606413564542433603228970792911502127857792122510118008411825476097091427623530369159434692767731550561276253580386485007776635541914230091690260358990064478684627130269374781678149688813504846836931172001842332398675911838235148029352409632399050078667554238072958576506592127832351988387969744898918295848282848830958634272257790399686678194258772572179942095584872526732156939110716308149968492338195829992276990043439800078864101127980365280814721720821505577367554246655167523842177088816086665015394385243898209156369809924292885663631966948378959358212785010969066638910675262328962173163081524357395323538068418176694675634301236299617329925708565100916920378115980771695825025735465717072220346029033148469302124105942817347188427633265788375933685431988571179865860460035645013584934888723287984510038174966685029324754437752949756083629187019846687086713960191975790048131120228906508235145733808319556327813751809866383913526338505607344200304467058477489575158716004279588047123220429538806727136321647733650978555934891239010562690869555537762525298486972011159796644631540817329936053024674901889227470665376121887793879555953435549905567195684724988450950160048801145944190778897210597817393601014366213702081964152939443285688239352950732986257455343454233627674753177706225924872784232701784818796411985678237392303104880676930279805104902748791483525185818749765002352618343895004314848384712723897733724862597377134777903146749575380368030954799961161392031690484883469422643469162700202591950086424962316665144376965018399132313808447111341771273080481517576814450093503487025643532665775618670170018342698163377482421417220221512968939132971326776237152402928830665166778670689135152759549774063236016990937097252996640972574456598372104873878547813378100611447976885089526291388024313151650189594969076772583683909381161112179669710957335347162044149844686570225182541297421792920641975585472874770662877288345187737022855213387778693522060936542419088164015557233076845622284028646808527528918290334519054256848012364978198329610210681962998696366557602956648335424959887421837739555837317574057575478970373790972894920172039964589933462025025896628315350914040803053342090282553408051119643709444032121341696918604888216944446740922209068827146615671711265917711093913098145064805313017899312159883963283679787041529502077564656761952236949324010595988367112147897100829810520538800951900485037416080834185139867730423481700105242985199026861352578318848296642668035129442497238025826439966700523880754289447713199804036100706171395683830673632313872045029705135328164088404822904332887702524467952060487609860894980382983131584970282717458154475901165589346215260500253589043882362258598037296069636879407404590625564697882958460454009440070320491131340213673450079056468933640983073037752662255541955037779594315966166932979229652718805432874905032207363707778728628804546528872659406786970697017084452502792166149859010789375500283758714282114252849637340571611580954911815325626625661530533186857889044176975987085377730557976293954447184525969484298477355609788374993289666136139151078330701971544265564078232223392755050273668486085694505091610881421208660765184197000885208371772456658861931352917607769007154003582998674298535435331849074943134283466652633354547070190805667203695851421736023871648091380040119800691084908459721697911006720226018017671819402495750937688002702796963423514598878721147986565994602805847143065145114639151459797011509432266892971907862710633980245612858632695541177484747432532033547200717775085054568299475893684344567914805869651921379415533946121216266540436817416509813571142679172983054168565316402216567537149218136469558443065494930662736471435894928112620564888255384585670102995047150829551576719036669901725010132252941340237366181684714265829940598821050788472370433513494809164851119840562775513746402713873636271801353261333899851409573909700249939925941870334689900460114014742404464218908288650036257849128525889780357683992465085235882454777176436784674074103432294267310839089761122094238941629276413595720126965204523342165157957512434626327505372402460582856566508464706576934591044230483870141202577095092037974708127854623881131031711620873995935293450533940206327061659152756114795891378458269262307924218556827825930624946167060676518378571847901122557454310255686808700402817988056209980797869922311420587073941499430368577484566284622577577393574289391981575532315432292304592458589032874039006605285456069639559434107243516971889383339298359656398123391562389535427662579130475511823064657381697102149159155370979350310528861725998966805570947405735553565436426264325081702935214614936362431155543861662441340892185116433606849536993471692399077354817776411679987624141600068528484373100893707137279627903079920053672481460437872815883806938855323402061730635104918180832905497916773762803844561792840983309891068693157197112462801021692885946316260151638098606964817307469145698817094638919156213680897611347538419565647683050418695020815578151157685463554045078132178256261392323973637757843154062381133642839651192540366793954688920103008819814516726060221902456296617426329171114347318196244691625868848880268510537643863716670919983923055066490855827521746787108591599124741980717198251830583858437187889180043004795810908260737743463509955864139393883577688583431817868138962952949087144534568073136497396890502131318004229665775102938994457100832235102133293957446791222979497484521555554688742933231142451726731819384908709873912474054715492893350294685699811157108938765508444751156792008414193541686670843615072466480953587692405794515959364273385147672444304026428631008140700381624443073401459608549660838582391497042054764829780529347453064062081330069994045867193905807660965523431340338920518510875536036198645795922123242759373542893726361958061493322567499312554185925880518406288003067329703969271368476537952234258385638025134887385184377116218772223132954478904653343340313067732268880685432693046890824238093962807843519633138793428562219521870733155291878125209684513441644496798930004033520094880614026305248441937751308077833078441691283834531809658968952960773488549472518119569860302532728648195844952788694935811811751893529808337848019794057402933123028530903768117582297263059649252302327348751378085140297468689643658763119433770833762389439375697091149335535761610873116816954575693481387329859731633984654436212152195712450931902835236873027894054325632398447418272277957628271167681471747171824175006584412964443649322006312218461954683186555929647239026669784116476392675110780196515893203305811778485775454187128426162351202036113459940868355139221949166617162503944830957657190992904973343045674966276969163788377568183952948606145732206126950977012084464178599308503117126591047162676159252276580141247304549936583619517982009644195805739585464849470574629061140618572078382590721248991547477423562186007883613790924610648916573034821525421982360416594112843110675799568627867210462775603271920928949623051239398986378491613437918177283260534905786045056728342494387173000696868176318208381453840771904108077828707294375834596803047477917435050129157045501081883248352485525015313621269374337503654646402906350840401842841332414653269205308523605529456099884461135708915264377882839388424555228800450749077611284529941394626822622104148605434271322778618550990822275031917474209405127016281344855932584573640747751657325185673181556523863604305796022651177161552201111193877181559677498373136543671008347052088247319828592565135829386219313303568115745174504929240826932692127780031610697495876451448157590360992706991860158004337665943063616822589064340456378170114986909015096441160389406186959294339551789471267569889726608521769235726672742221060672495045133487034820054719726640184521081832654768964495974980928850482523521888912841025282568108260115349122520416954524269053263540117525946056995482645464065579333597400182469828713795499982158324047830078892929791118601651780237383371433692486830163580160038939244929928482987990939004941139714916155631280503607049586476338883939892979014855920148166446022512458492238499063387836005474805170900920199099881438685699169659612629249401858001238322261441355487994693125372539192531715932825197798806451765955028412476045956048272649754813929193636603264032119240024306229155281689675907056346289020828934905298491694714226702028965739837491777148231766983978135249371714219029260419777158424295691516574029767875650909172718321882900723554388996911771678214120915267704309215598297796792909056325389323509127231418820958622950795453200884033135983181489290633761780220817267343789267388626183011388606294745073915298504787159272746704976855705513802430966933133572532979405191071074147254605757480932690307287553277936335567368150478447530842411227541264513621698927290743050221000968223195935753521868682268528862250344412186242079992893837680600896645948829854052745022886074174237957068214042919536391238825733218213302715723124373059010945668938204864849461013485757913085526899366794891400550086560065226375012090420531052504261448351223881743207902166750324530332807250387518076919276700223341625545820831789846343378117509768515952872165126912056886984758722080921148425254022155786040180637007812403793878020609723824556061423661885364450157650318891609427796763088066825489911945250399374700665017485522661872124236196129667766813202596843961243774550513945479536224978582018855893652141594781105040471230185082537307088089621789989819686647254779173972510066051147941702615428227966872797909547298316709588035598607346772863486554801692031821711034147897426582230921392281564684380463233663818700658756436421266673824464039844799715873088807439359793266709898375870489044969863835710482315354139800429012074778820359862229337355190193886302823482494120770220024491892554885628523497454876267276213294983249476073839436300690201797217663501677787455210871032332142696706127649788275281404970716909766026997707213616930485175379334039545061664765048823894406262895448165727926546284105345144876805923054733256308965974014521563564865924743093630765407702535607847680313748349770769346126267012761605779474524729146187173406228736701125860346076441913515969953465890389788024220474604241106143414112551718671013675119941551170454824770938712764048200493019459993247651713631735717456897667219285689100761251595893140710060786645766858759970845314596475604238989558764781044386303507647122750378681161724656344920809204492872371941696659271318862649227609455277045514350585769091147286584061820101526006741308544222740286008076494172546334286519764149006878148774897781238528357622643108315100530004819310568478917060787141431927630496894266805388967681448018692064182759934485373713812319737557016477706447288799079899839391954512354639001186906092163973399799135880004757835006420881099461293326672429638929750875402307781717419187016568762347280803028762656076592056730078169569143807236695717585985222331697242325715948602000238133984959503561114368691346630514092434755559688292399086784493843724939950605028964181871126274385501959185362360554562703632812184194603367845198709273849225554778971293839031870644705222768038000608455804424041106746586799877589672808406825059213284604334794649096733697391537949045392921954597309419880846875887737668181188212092097302609041767053331041937821292695447263154526495324896520790928468816713170130461927782729096275266603548449193893438635481600584737846656128618975289139872589680014990572992014328725165861968876281538740435900766196703830591702029143121356659850161995355676576594954231317761667944936646197687710763730758572675417374045750547249853022454918786972897509653652117924043277615774834703000746560752169005664330075883041470437215375574870233057280456413103973712639204212169617490286928858628803787372602825628944364828552458700477821410203270009747332211223706012814931305335904495398059403126724818409544181880782925510109420666357846545011815006971960691661650713604923960635695095011708897200213874557853412584184729792770556832556399482582501184841106665553746810319201246814317381921436113365333665206220353436941096051029844518029741144459809681765860362832865972917164658160165202478836716753213892680710943788724362888428218301022554577676465171845728660290823269546446027373873572401941705420524347336837270380621414776802574681564575459983457910220732573430769872236038165196902546763179483294933311431420406569453550342155826619727814314363039976045963285232975093309135706842038384341829855072908900600372396883507501317058111011663645890592139421537426083453486752903852093549022122336157252003753510117923310433138831114724247086502594607261591210554519656899003770339175590223821768412026032832858541542438971581340584171189109725315128437639085245545278121192813012447667548016532000320188766972308181843865599520047196072788538395483671346140434556566442447108617005745989580608723128598919662291016792412953914680616048519124953191202259915217927578116062539484477918542822813253306885188350349223858778136292185980141761609271269685791126308441733944312215440904942499308331662796820277763744197396575844613986406423944617007196424606423655441657454377348278647962550310173720114791843488525662656352334615981527758743722373267961555838865776489425084127986380071097570665270121128894213992733549668549934164345275324688877584240528623850048765354370230468655872862685622511121331980434196081417807135700506022264526573183435945022929114309354074110635145570875092795143181567804102051706194342091888401800447154353054463646846762366525462153124880703162809395521619095625134693492688951951173788769538902260130632245413644653160298606157811238797803267973418813390983362740135372382320846567767157962485943970409309455233970858921081451987585707688077113951026599766463787691887045053832837498912709013623703328619774450521066071991903124135062008977257033766899614458001110415381006459369356800742692513516306757883290159074699620495089273869278361366726904156097210563616164504783629377884976452356981253005035682886419717196829500305845945501604102234613356699920637702413486424799409058612501471786112406966350924933637339157184362729947938044684801087996827147668256457287870630404839240479447370966756738249400296874545630591857789094200894486172407755424269449345947311622881249180143192174316824756595944768580242564397442948200796367718063300101760130406998507138715075981649403728168888117205598457060724991683533167943279261766162173552194671546812199628904534811045889777615380505793533470479315985025534001309406781106560466632373746671702423444791362643610914055004953596802367580029431732715441354259194974979316821929525767815031131034456454296393099260920338953969356827796983995560310599554002348035291280514273496393682718955790843524294427516394318810320112592251322470083516886237215973707658970857821826648174689785808152522810350222198880515868453029265172583651779488188682604086979302197613651610995287683629834035893498785162897466496092391356453674133245673733692263634729230198390415969997417699445086736748399381059184434565631678222689261190402831518747006130416117115590904755623388400791455501531222314350398950095090675035612842945304301690039835028059071283818672151193726454269389915440049295585428230474491470108393222451032368296765428430329075047961211110989620494483527143736883820241049719379872369171151939916909666672503387211670124882424002603057489380122345727124453126231286883457655367503687249152551034088820939457925541415417611143632618519272194491498169687242947730715420899034828280124489059229701225376641799717514417868340857057960715584080309098800995418115561754544858909427753565544751341042271432047786530901461964852691429834951557241726115203707800720466259490748639133849175926633204506956766351998949822930954207256304922357357018258896078631691037302195657909451643267059045214168176099534609098363873717812550957610062422661180822582797515186763994799528393647213842174000747309212676836859829190766369297422815935130417512681368720547551140984477209256246500810462444389769171917536316594050029408124882146810819651805597087411999561562106213381198479986319772318067838447353255978672157324359880520476922636112899437869569905726089978965045042190666978184451729947428394303033731740653915240424379010688789126667981379944026690209778966727075239386349884450690607748290604051067702984017779172212887821504431526864991492916169891927436713356945063018830687497995489624392467100292394694304162312268812777448044726363135397547047407792695148821322353804794165339985095021578006617199834577368601748930859586426424217124244215414386322386997054425337899634542312942271741099993570834807983154300943177730212834511673096291820713335334192985440662341732609570566754549492121795552969198564692790558288979516189854485480667274847330410243948376231457029461167146170411640483249491450803553245596280767846029565155861742773270843478800449635135761170430299291404731237032959604815521359665968064761118090371079277903322904062912182658353982674237171278445708238605549529051933666613453316447966704371546978720785694565407638656631874052153077129181584248502934108800722375300781540975076061392402167977285038668341800205820677917242301292251436896052794874843381633197615539194564440961906083243658445719292171914008898063326108380698019541382825904943418932122275870941579213572659314156709348883630785323869719515853589798130529967460103264298519189903173590496976686327422261163727188448973293343000206369022560880092456082044890241402132424300678184602998041238543633693547733717473071688063267854024690966104734134723162945304499888126778632419705751344400564959904544413941496817676807696093767570371178023270725553708014301357544554445482786455665635657120644046733049295729821159591480148460027499741148564576090214101960032656516922637127587353661412324850141157256775594080897989951924958817396073886606333178597705624372076765002895203920545676084865563392041785721970535935100735447097279793721508084312671711674193147952147036070659538337924230447864886787559885912738286465183981276419153160659314911751447262845033364200693624649313175519673736868935481504119990206595930780542363468094149515489978373823655004281588427177597239160042561991130839476291037488723788940115113350455714156745081658205872412867304376444111570462498220390352680566367431130565488809595329228804047056077475690079446795267674819343862047776398967270837982218529940731725095915807814972468857588478521987611108084455959223110752897272121476302139154127911473450500577019347625879346166066564760583636308641591911814550665543881783882812385786658727929126917293182555735323072525495409054690419340531086523097971579328431194933551828474923029705210267332257859349309209384931717969362601016681377126075073195961214857143425398847460348844324667452111937223760323413451653834996995872340272445588867337177456898850783647088879552672576782613453437460537492981194999944018650226316538229102303692273052816760311491644065433364480824643017235547670704353404511687154177441843397135022763043508509065883279184443835802019806838872333825279105097816968938063489312463504482359908468231949373599370989086107739033831068286330886977150607986763844523070499945603032240959654455689470495632331516205209181212309564430256885376778922422561268239246774390224443132181762040893870752991673128267041140009645992049540172508286291129697590342892738285560490044210245429564585280577213031632269883203372422961903494526049871893836795821959491611213043622903612276459585276486979933534417813975028076187968312126535687756289465790890873439595492088220234292127845674882589480111760986520077777681165471012596325138360058928357154957565536778598523875087370297356602472769708484700738138522951475384712100109179037791960102626782664682311540902716842126655816671035443877092828001529836262778328595074200114680010035669411485564182212478887612139611994037366008826387112308010364643001820962807562919455329421890581018473627583117862010140451838545652921296918926483844004289602451045540727510410273682928230188235113650628264300366373504933151666095183994821185665131222802596980689823527238700515850614613427394691971519923549103531759504728170968540107413852847450637495137638602023618559199947625035257021683935501276687621704254646214961566373773553636076449262719135698300436992489134547822432231942156333158628433082269035766986174317224172341838641727787525031168241279654929338953707319755796932752609949654176293757720441565283579511233016075411381045654332408077189837221943902961534208644758967752852835254916541877279544797345090354644433728299195152685470865309487271540980988772173431244307892109073661216595317377090460702443371536020988056649279456938825791725326098955883301119908627359417012867034567670232817120472788183335299981715352528109288150003340437979410950851329031399470765449298881139221980153497026728185477416643997745117562567496184318157113853867178272857429097328751563103659684712191601602879538292135818707483084555189836541604003684355518563876821922016405275629678612947789031576291048155430119944931289918269160892250014249762100652905859691000046911505532639983724961666268212665687454635078405178793014532118916498043582821674157367705529474646664577049448019133120811936822197212628067958897386704825521353721470801661264052073980891479854255541897087499400288899962890439700923740798127059725419872704800526079082983172208610332651790844926479221990782044885725556943123258770524823099510357711733769484573513380618725357553585119141536099709182593540798861437115809070054272479589544202969952842505127137185508125269666440798858900538158720366216768329721497939930161108092013871310961536102003029791698141742597495200218690181112810125812864193623860879052827235197099528210136393320745457826216779666540327679251215911287798621475929905786005119359808749574233808391923818130066690515867044546088328411164571508091116757103718516680928435713396205718639354910497140254365702796813130698800122810246579844325325609601464746278563426642741802016007284458661221759218656711293496817082629103368359469858356128685218454271217464105822298214382598760955593811830509165263121326140011595331819995359437340538865629883201592306875786279922974265091570332789530982326898950552891359994473489060260790063465792993818848588991614041166738031332974627336195746462582102678679600449321209817525135516811502837734950729325135026514892190447814705781671631316198761470399431142310190618064290053841063530445653978680784249714898357404280872064082442694523243643917417318949627222663458492259514360744330353444524443378171017684135876950486551134329189697343689208986694248513964878801940819676424675940543573629739293902920839172708489941125746845770134661630667992267274330556000268076527319929774930439660471831375379874095431402965715468480756256069109084564133366538208700637034124428300909634470676347845368760310674210603546899580147756211800188767066740751025613663960336890542013726975626270601152980201786530136883165372706860054114406926138361478093340609653638851419099540654127741025872764104788277762125270815830094307560562629947301960225718970711646371587619481993752967816828026053670671473789839789176346008902267205632780941515459854974502710092138100691112882089635600757236647815460598810127402087345000996645685515187164597436520123085755696257590683831584211830337338373594970348630632023865149612308387244592354871136492905418175773445717977166319776691656110404785475859104721314648196462356637965044165118144122992628970712555123208038177395765005016810732568322883477476779691887562051392905318829263684612898201714143613046016525203808717196847672993596838200991424277094056573706369418346246251288996090001938391959799166956685675188760341987983167720808403875015221081314307787837845422846892202622847677933197908808367775721744901423521791294075824102063988218885355360006257424128787633659398851737792604088900656653858741804993916284114865732441120822097637656924652830485068052812130357216123141433982962801618783000028628954584658922127766157947258410683110701389640526730033711281924958283379440055333826772580810829114659142796932229616524316043088439424895381471296036032374299241716010473167334771175470349986572871265552364306350939060719522305685352882346063849606967208314927462767012703070417483853605868190889499466296051965732285137293562948555913213741823619953635529048134657305711140872838087590765676103487816167288475408438193670543316710934352791693216986567172700488938632977250499739922797624728851188882809337068537401588345555410442085455030052815837516546939997887548238168065465513980000173415887365645093793738409282947364262254448666826543578782816371442864057738899711661252017915378022899354177965517997758652720165149067764897932793534191708436757294742406836141158941120982919250802327770081398280056390310598318277552458517107368368022163622156091899354017009013630138306870031416676527727670522715744306299893945179550402580425262051874782032144269495913785251122312920458168651068683702299008666995308689191305792078702758869402117780565784251978207088770504893970870588595789090850552433284851890811269200384069485690247610552994283210946602457447195470628768147460326594239359820818416712814671360405690454042826163405055123995107201556452441969812183428852615220517935068193484801036265318525634885899918518954981438779216814217626519893344896251698100565427535246957449941296221963820684897773833287395094891007822933689908826560525207934608867060220672601776806746402474710385545196599294709179554699914405901531913600812145430849037530060098883602296432105906783703832086172138018471755721034704684899362200965242206169404657501988855638680613962960221253022090088778088059178775359895521378154977250629407553396282768226884858945615749338323058348130298316869294596022352940949494345793820764747063192877201999416763176648335523523681615960288165130207887725199198917465997224042713301742217883360182868072482522456704360545021566199880788856133918147709557642423914610798753616976872985276990477571417879493371561949810486029049586357484856884439942500777811157165075372788104762621497321101227324121424155480618001007974145114718808510456855221739179811823752399582816316645430185310823437272871273155902287156645039271804094669458996401481835007624842811070684194593791805507169967294935806352471862603552189233960258522511389843067239039117673321636316630758663698377156332492687612896324682837349001884207866777225492698078200267991428879707330763013229818628092442975587949696316695634446023079971314185230051275996234830945331999910240425567589785056876026350993002995858940293008226632280377595587309748954457091406582487691690522599456412013185245639052677207562664459862196367617954382502822928659345724426756467264340324305703088595828724386727223933823067174339055653595127594716027502138194430792521969517877204710097676186150099196196139108922925471956993697316501181794035436363979113940815513449271994029414490069147838049997311551929860283299075209040725563366675727591436991457305183759567433096603669539781785349432374084504174909813858661977043737770595672528425345683730827193086892049986932593584303095338464132008335862595927558484846240100705149839798245162294864058031101934491524941148417191371082060530439756213174874407390571696153847811819038261189871010156598887848907836716598071065149661970852389540991552479084175476705557828922943661822369921968901135231539215830720819206685117906178754390858752555917419316516125094873884528734770250674055720829121319430928877412079428114052105058623791747683040602902769983225080855325536955873140557389934772406668991051224645448818636356304783604655859301173726696720009797721590586753039652302769747022702518934864944290140055090627801903132671499393133954089201785131495652061701204734488772102350729892099198486572742938764868556029215356852591286716708224600819726924435549032518477963811160080759832814337847827516829783336686804496532102305481323781816178243498132157094796417157793241126130809072547986949606216344410684867775756428303970908907335910782365050541150775029870394750715430444140423459231040158636152624348686597061440818363657664162558191429399422842627506616812067218687559023848152339916215347133239358160771611335746891786308183114780306209331018871570437622254600943089828254050048841583590726255300521654642309600468485626178288967083341404569912306078684220184974147783163632143958138866547120002907922512798056625638629372579514135056920925359049484381082866480629910046770130368815674712739563682401257289974399888724392766450783148762829106506013283741491077808747499690658851322732987114953064753373794252181910746870449912605470556701221511498667338487892552956821626798241540776844138272610953133546220702127718303666216879416862275959877839635366526843077146518326354760145809089563924139058249638616432554483568409321369490789077903285484992058298307310037626963753706548069805877100553237491298659382431614179894166899077249305978562174054749806779920141477331989328590903386180510301318480124608959001035380530020082724497374762809229774586844253010414806073049868454613693813165523729207795897659009377685873466337895674410382998494247253871361526224258448514981761506422216146593022394224684835674162326771042842323128212624716516232856199118435371198923970376198696872675928612360414295324263132321716025878401934223587111522473016090868244100266941193848973330007343873302814830601871848102536229109004194385738242563419374324644268225790330961860549587536465841272005816548556066708311696232343848908902534434572593925712135013657612713380941526196645411867671024653768151419644945566945386337449022787299621738830005229612108996372203187031455916958027589092622019108800965137524939147435577474141630381486632746024001012216501707761075346131468187820873584224273522828642569916131666635218122152050415070850742335542667808345799909850692363046891690647120445331274878782097467927283154873451857586063891318570312847448013032811734813828253152996887117748552857348070619276578814042911846076656537150191445289948265125483777934292461849432082565974178063089372649608548753670896753233648874335202028660657648883711646496451298674200159944028335629663959111188400511177162536427611773479810356393946122159574129341909479529023416917970134921460278187366840248579924454479613030966152156647044672905982798557754125944961949395085183768711121192271489262574633925294295694270000123874529595192826373185963000092160560602192062397058895867554369663092393434372661497440609201847198638810665241802251301594328690140268456865613481959867871948760129860102193525141448940375856402884150971772420212478469743023928840142274170895584984505338439330861479053810019450710660603440923340652400673015333367425756652749988700963267064409412470749622183164016612058071764703393612590321009188789208512224672682901015646583901299647325214706867369111318217015561472138251745726307066968651750503214093857586640294372889376230417108219337291713280197965801078349926005260580224458401013016815557383736324139270647135583941103070576282863594459515943596793373245205116793894597475517926561403655606166379073988545927856347773354979158409816834456621611901348661449100324382938145326134294377096253624619007395229493616277955812572941109080096642266741688226353164818107639317645174537951053896470556728568305242147819745833200384404032803558358373307020742133958986431398404049744129699260541671449734919522633227201756608997798575858366834441787699031650018730290612703133076304842946566025894471462523178090957809631524238853028200966628359725657990908191292412013461762505234017858987102620059803321315418088560460246729347218220435468448376876324839166584189533593577940671768487346407963221816884120453150225468415688408000277528424802106329627817510013271240995127960725253751045380827039030868528077295204355523159662381122019057025844301401578464052111010136429695649628208258123962163585716540212337646936096133899263866959906643741319641200449132900052374140072168369654265653149017306664192047445105989018308393142866605077876678931982786973026633562181429816041415671846818188711787854718041201783941434531117188494506470424098084373691161760288967316607652958780732922526387261361971454440022627680392082178759852838961247365666352248804491914738415745222583060525509400868395320858494443649236379529107047737426885839793476761379742414334751446967242578442637064294192334886441229328884098562782917157673132048212764603422316148569393319131562585418789059135844626288297336337976239548246312617735502427843052866022796040843825854927941517972383801533130689564335324601894605745669483534570211257760525992615170687466545010837165365638958781981331047138454574735971844341402482503753167261544080420449218918710176486948201947551012356247180996793729109164644144087502350094552331406153244128223654148325893061220037966656617283264001396534694888809624320541428499380577240469485060326462386308328717697239719794210757970807062981047158161909928116815180718035648689383005441226887158381475378186046243020038076645813299561165022144665014678558994331817719401464812955670417401267774921349978072978169541554604946206291011572085836468980125377257142132427115441327748206364688834935669002249860931511896626887711289578505620019109497608266945195100720977270437125862489096961971569057340932217886998893139151551304066039633874415962643216544046437662099479394285362658575245970098814969171733464337333803629873956437116451576512588528639050572670608543240774341884728346189303280229347831691356951663119868291903261129797462009755715963154117140600772839890952030123077369723705614264530364828771636207601731028712556677294095725942366621270527257665294123477057446147603231809982299807830289297418337702219162094289334308826824999811886202646829131585262609434187738290853575620583548433992797451769740167324417098075172657805410076102337231652758656564309256549498739576552040347693931978143001209555208655498106587877914813415206942778668111289574175947950067203755833411070700564542407838393145382223961586755627884839625708782165924386720474169946570260692907455952195991568931768027165505670733087695848432993496585148949269095860982154285544521694770719252530237728056060498436354566757221589800499840153556404529656892151559754632886374619150120298986844703027174652730338495591312355782820162372904345154790356174037654209721105266321028541437043320788769235891240744243043539457159245577672413387212487305171603147756331386166541620750291275183613180020783229112088251756847543155580946505182147547029567454225496916106711438209444323151485066910518009380090502146374764622080632033311386529348478495395814246769675545716332402012363339925025948885990558158811205410580704231108593857543429590686403510839958187774810783617811589404131531643053896343680083643304837317428625982294464948274802930846357275009662138146827172588278306009301623923988745781260916344518787380540657843038748903374169742463328846035529140915705670997146707238460171167521457367418692647875884082106869842891691038829105443702541560071044491009810237771258873665623088876663660114408176231873257573870828584064348734708366687738931746717637764465017946651497607010099192994914926121575320987939575047359521321304630307242638202977562743464137705297769993997291206857215988188346273325459778136342450449359609587868411697989521262594118708625492890227752172008497886490960647745052111570898055478426074649668426720237865102924182877811215418860386927186828463718405187637442868737459409160314246449261357913471066232926495262951597338729978108564598285783681908211784996379189711151408450425470878590993178200764988460139667247957058256034159544394555018216786221883771820753793612227396387521402942922407235878469462626565214999909564419482127355584592196890655822615796960906963179659903107149284500891613761710808058849040656015186433309666489653074909386090068608425345577974422053371459091681871546803106022388966496928471588021923021839557408934251432492026997320090649986893742609395356585483509819213443294730275287628321615660822114376983856156347742154728263072406306475310119439491786792467383623075964781987360058672034012526658140320362968438629368678618211381877903775759049923394343174193743994854376480781810249073424915785044512412791332668652508388572304145662457473356060750368355960275131461999015565524504457447537491351370752631111896276044750683253727814225206138729433036337242012084044795359673599940974600644105436819680823710624568014382544253060649488157142405005469393892371539333827027342857261724731197076383646995842753898679503145294050536468125041831202294181648315539867419875518893140156282717236297135714548475274135307937600763982367497383195982474099700439003446363654535421546053085693826958448893719740371934857053187830281424942065141392287674301956414538936710228193767731581939104556886790662079931700673638646126490104971896959817905949476706695952279445207604943122987410653846111599759792288918804485955181290083425349301695623047901958327654777686192657036406344245622149010316315978637066994111971589869205535972048647137739026957346907427317519112620912662696769313422743654078685523672339387965180120621717776110517009149832319614262708855029238787813115611677308327257817973242699012534945381470581280181760765017463352037967973512720453989305871912568230594849906285119436796934218798374983319168088566381410063497096439340140565686354711314444818829598251974054851340582409435670605269324993786949100988411348309997905710163865518019716208749243122178766382624002525445681360072340123710464572861105307912069329131100370771101636786516726279588550982132010118131978614698282235284342266032126398919581085124463324880289059115849621813468585983845566047409705160369475430585576036856903137236836938381280181469115697158922913894477586426776651568411524933084989378367158905396083680634326120312596592552476338054532683147368168724892139189533098821787061835358416195659121086862293063365829071582871029254240457604914132035716995973705868365683293699933681532907959761136184109674216871205790420939034382616666986149325170417017573399935267584765563055960745884655571421899431224373690964344111999926639265757081373265737448905083154113706679082642938425428150434204917819473390955908859655600842614166897404893641359335874897318404040293536135143875319587663825588171647702088408437274743488447226018601497528242179289178813387963454291417721986154056644644181182225376238490552485597804690770224461104813617586470339176555768780227203614274721450274298645477360443434512633446893827045648920515741673289828433130703954045170123317188099540254757992368054234744335708929260245989629985506963164145546064780326231937981855001283611535805078008016990632749329532783998969999690706870940448170106670700959316501397232295239983391958174213785876553124266750612337711266315424772295138853222776388785888563733303951093431387603064943067346190166068586608788146615844421498809877758808717653483794775425269533235042532285447232709448569071662382912850057919009517891358310532627967602969572365845460792426760266107782444360978456411164097364249882012128725242616125466943395903301386777882999345470054715618698061374202765317879998874017994230974205918132309379646357856094433127783309919065187475656870249064422436257994128396025171904373386212848036884471792778071143423388412449032271086683906306092648002481744339114320468167890367020827764321333875720085299802909821293233288570527029091570376582221124473547441485863833517452194787967953353840491991205589939071055146131929625850941886224710364580527916837325421805883551315865325628230599239146456729488170582299905643127562030011132013845913488789662733860209951491704104260617906556921045998284960428962980151743930767367202434721537007976929427455436844638607877065901065486304047704472850022114826316404638008485945655525259228034483994195208587364438445153012712501848422298795344330738763155897588111906245977884950260622901545147717594948027105442550172025595675892995048909112547120918083625064194123282738883759022700297317443328181741031382149058128724882499511107477225861172887846965178077655583757423009468245312154840246262417705642679345265648214286146619128156060229533005075923617466125025392843904097455239475218698891310754352261881662844358044292855579528258757559692164794425399214504012116148847693143939518966364850483684634730969953016074759160845233318246681951434244765545599812311098143629478283157591618888971483051283179661436803525357509709954118539608733920937366130443846322340208291632136594535404717575220093851029806760118075166352393326683990749913252935604153055738476385790996530105899141333659692127547892577198414314069020525285208761433408652048086390113372449673514480809675714923383921635558406475740587536833594484894768517255143789963479744094122595109268543947241280979726349124800766649050751142096437236688743279042102611199700491192154739035815299707665332516032928946907360665534042694646045406779629464533345824839870771447770794780486151838213380467888629705499762717550180048115579843323764434806145611585514320721318602156813773357417874575642849677732975921711676920721001910951168108579131087654939730756906120107285453501136304258044742565173774907086445181688831544102414959973615582006130030237580864451296894456679432250306741983966765705212071168068580728606258410063259528826815885355813539498355001409651444685075513857826425528085787688876797995461346660309954651722847950511661415628974378685984262940727291922451012430545551678489129178583115816744265319995137209359658118778945495982234883626133367375468085491590547516188341641862740573383996025052607062904461405136557136471503428673490867499101835736067906462011686146511264327057658297560940385814827225246568139772524553715437933649108377408314798682307955756380476923267111017447768647726789779443441460493191355367387293967814802468739387434204716275484925670485159919149691285235554043931979935342059644069665887124032374873885648815004532618376152296943917183683842753207789514170692135833069708740172740446520294372003890988232351033617718096366993215546392825310127848095208067821015558509698625820977577604647717767790888339656371135966812240012266634005984026701122880514458550155612285371530120877217056513741525124421481349000156321785412676611222342583911946195315810270998220072096401534343988920586251576850185002555057335501525201226816921423043351885405586232488751287397664248442820123878474037204754011427578842935019877407733418838441597030432549617008934942154622660288785821477191735620744047983528698581650166484563581934464730565487671646718453420205743713278587766645840736123097665478586285470475893769651750320002305201785461841500963072180274417548128640603675206950007187623536743872489669492880580694380436270269889614647460331696423375950246596455677081316509920120015608836807728612157247270219363850634869640745255068719618850432691270813881492415198809245568581090272660867734143072645898732964959988317968891375886821131738386377256422665036576755572305809074659361517196985275907922609225938340961753281679206727629723371346969651367554394720774119456712587369775656113403524711362522272387638765202427138111434696765646847060384585827979896278682317520085119442832396394789642451177894369020792874964503680338349834524442447078012897773850307468625061677064300234034501495039870568137289416144096395232550552130639856055255257143016731488884178472858823751560012931010588269533757255384635534798464834313255279715086954079452618731068172530283961051015867367051338987219679378047669712580893862571865831080864505839598917997103472033903038233110711224796995819003086857121885633049636463791065050074570676200386578995249610508901399182099438443469093496250775993784262984501889425302866074769936564864182342453208846215972452215225968110670569133011695549275718325509039767101985196622497566322808817551846265482361592814999827506539935378754740186050535278150010724486902409023933136335829867070445138786233767140204580853861361643005667709418745375533965202587055250670178308932302785783961298320800918784806414123921196463609291417809296044475382038221175090651460916408792655692462851306143952002995883241261093152206967447184811067428500782977893310118638445161944933809008817393270615016159321120837230766651008837094412215160862643800026432750020622216067110386752402429634185352145395312691635755933216575474605876254802913856685436040492504800236063542531141625949512688402956982781908735207894763722852413977368612385131674717764516462544031897515397348003659420238373236827007672311711545908846628956139997561090162267911672605001490174288107432156990276448578028942877216741158885242024565829825001579526648146871140520360347535567889229604634040837659266236573139223137548774842253429999816639421303845862796362343842435225089831810593380998963608011970142912690545703814981103977305343311439808466606917754514140065452496760601382514634451087723661281701170154540917322820680467271375516338954709104123940544474743366443466908165203348032404138434828383501882157550248982073351355270230433275550941232035413135810298974302297525687425140996405146026851029081875785326967395429356165305726511797598618320414238294768797138882664847514788830539377243939476588895741569149671619513729035898064434876522348637023352751384824465400846526023055397104179820980691157352503371200185476912518877272637084852980088827793059240488692272313556700873151620155463497115212551525052690643410982619493300457927648756619749262534580697474147879159585585006055361749535318851450337120438882793998894690518274647083724811805472860521245446168592097304726594248188661357738680148337177163538580210215769704438418476293692502523781627457340116677102402081360038485914995620776843561279694476859875753115899907082565887131057607873973804724942205210944826376108463576884452023594513942393685692618077365643860657605827194573051054310562622131420879167167975455229349796096654668263637986668756552178326326420853886951238979290283054762186954882271699115116562648692934417320093703160678697684841958507889919845131478816191887320919133150795890553956931406090729642358550177935821183265142315802181877202635403283505191435816524208442663565276523916554252546266965601460987798279491319872110526948520901805012438355404010673599123968419247491355679173057385264150122373031082267966592962619207338005234201928508849978390061816191650235331308802982035985394804682999683205078701228634948354592322334809000713820551459848900160467345196791276216632455439264733705172107606978244821681528613222567489203901479355085634470075550690276005023004030213660709475079449152072680707966241154041067759194958829585426223866050427439990949233356728545226552266615877267769719032997343503858834252553665949376601544157037312990854993171406643905658891742561632518903594880468044740596582806909485514752825987019035365501668126920485558051141886274168904120917304625316639141579500906483867907923699901070620092358718626433934659455654779645118887110008486316717437345268519169492403780646498669351922656646926694501487531556086587708478538259028891490153400989705243732644438680590077223794073145938169908759286539790150334622866451394392463002401072467541552915663693481655730971829678982867448345828407018847830315900948587023946051513753419276051878202315957598798317370375873458954506734990660702353571209089725862343631014075579165869433246688955651409713933683546565125624008732325989618194961779821391547958274449403424635743151596383529654891000376517774414080468282572140896027413007520252504366342283282140978119414396337696678509877847054940117723272071827010434502846681158930183037971318658592896408775773082933603889450473023859340316953457653624260072228216662038340609891132741187045152832868833846023339152447235527367096622177725092240481278384263456030112724008675413280071753923487636261210719558346567479366968531567159185225134010128081614976722827609049203467505419433361330582407741342963755811524545596923054197786912052534255444342983630990809629310808054697619669654141595458588426475860218106349296087180902773093139438203452803171206928666510328798894314300334599035234879890407634451967532896433365814476466931648786549861366563588199247561340979016932982311737846283702467744497120595762996912164519384540102628230298154532462346349458970874550208123225343064000467552758509684103279333587286029429685472544304150227910286143967410583029477168139300305059182999469582015083427185509981248200786794725051181243803717146348373983443337904707121059518431279179643219751710337538577812158873879120034122450741534521297236081332589058392535000311039638692448344172482028477281228869063397715381533795349909321895939134490738307723633349174139582410930550774420878716710137543834572665370035324124736042067037406391346797390970528323462543375520243559810427135261624166079238000303706807644352351574946745820500374135179848159973992611819775483161472285058375378910312115834010697065685324044049352356828871018701194414000549580897588407216211312427861978318410753558578476629759728583800004835480963827599987807110382770866869185065145383590456216655473834298323985836933822322276540428864167319024697888947387814793905916373247657864062003776990300915634334959458836004020224283039156919536165512983335098638601003802962260424227681053035273498982189337730945255174234998267890149048750499671726541967448159567290228520300303447754851119150979935112622211653696306214844174846463145009207158194929743839666858168641694776755583009902403176414690397923596405658146088086196061760844745064219861602545624103710253452592724185294876155352870094094355907976057553800586160219400435320964126953010063423182466948657355790227449461230048491980781203695286407328380584170457226006007633440821847668550787959477248496447429613933627506658642685085430901340211270658170596950754757333407285598272901216417333486112106911038961439151029250106312961351845119708834316370341554267205856865901765005072542885082191743851424274621311974500600236676751304109166982867557255078136283135473985827200250262386290323377422263171348839698061418409717589633278520805457749105396325293170537728065158651978277696398830357139190942262831333059253116582291239871405268989710192584053524257972018059895549150842345346473745563286967372813631398678458742970055307727643144568747358630621032879408844514365327259632766933650657222913401432239459043498482333226882388150847269875497746472855125202535395857156318963946395014320699128526481420108018479406041266775539821471373481311195093852652848868781756460364319699833385361832744456616863278909864043824147818908002060113364410953233404514404256299515646237322672443093853608232749339889919217632997058781837125825873117378612585712689656232656004784736948959860093775389511230960594523961737210040160640142132067427981513999018332526189655670884522696156867082907270372368573421885248744694271348035036247711428378529181755774848698400036344556434651937178440192527401582788332378949817108810099801945316207613740251047474868280449224869322184803877021642477626366285673239200466515647046397137776785424702499329779074596929774045194991638759114038074858869288945408255224152056596284500468130958946659674045786446827723927500388145113234388244269523903981362816537979471338001344199901497262118626158658615077090899465475979432047334212657971234353378922644248650359282279016745093623053333743153303600993708851113673057568593096632330156425649410506285636720420809012785437929127216554768263833649135816710975171425186908954476108605232022508971820410018346531436551126140124086494020603978022651264881238183892964978556008276143186292266689002780921914746780266089173309893302933678206256405666578051961325474099924315880538165360772775387212876883965621401478917270451542624880857677323139756096300890570309526484390714795336944177907183154344297743748301235648176004054758903076150655947136524867799063063144138341317966085160832312460203371803021170017180036681004753437901809105836311402504773267854311378874332942460397122595023028422115427696701133323031129460814556163481476444698814734852612711302963288212099700984050824413115994928224513808767344744295836600227875052331075435153737668454569464102412570220927598901258327562825963070509351726632624982970023158096741963583809711523884880546261556020780556544888165855626513751655060408634362351124377894400520692738518505292687647057926853365223241742746607953388665677661293019699439308271093772083227357359382883253636658426337655609188702176048944332096551857462071427238886654122253260921290139562078427254810287067069798747101325314635246591712327828285689341419459813725876587108369448620846039506875092947026323196090350778912099898914822781050836974420693244518047465787741144219711879208920397441638467966373532052005730023516619189281536469645618240577056002869369598600163789628142819044755016642578049646805123560126182956714079417288933605605913793849003889230438772152776970888472842629527548932879017706072132663567757173698167812856608121865861560135564037690308641327261244586844800712890712308284272338968467649162646084601742824755715959487911579433939200353877724410131281913405991678079912294893351992189303255698575956097522448212005442501745978632434689026184996198324747267696999364528292977866100758382780921333501620167941193978954819321396619318891614270069534997466658169690788293676020773205035800770139792177663936132734237774419155944004152890323894560032068249956727772589701843489576161040354496988913345578711978873507081877915513752244893587513379340859962513355776389971746556881519732428681925162450195283287329357046331746499813895087711147173953954795876388066714096141398069694208559355676141409555654616990098506060675754476250958682091015929624900542892821325528168960095858485315915663196144413638043041871024585034431262399415071288346584768228311778296920650941627653674289627771169730029518376168323019854843343180783075277493163336022353410520065367740545612252354301209668394546833924312958711893881389924617580264033740143127094799919258816758096852914778031654153871694085216964290774267581955747301169928213033641649019827110503977640528975835049439102281831421524350740227581349328949169462181950076397990348675203844209602884217546117339701727332143572814589446458205929827285766170592167481967644052339375673953490642040304176615843626978454730883137122757001057019124784509224027009895983669393572995577592058140025967649913450322387915533097073483662372562207969846421335651474114877756604374384782224209112387779401593105947807861456928788111634831912134853732292503148103175113747657040971624737208667926062903853254786194451222326242651349965350146487781523157239059913881253321270715899863859781498134796304920767114473523925467944645066799533188644901756398889050579747695542412425588016389605642611050718858770285001222903319753750768756861582646465488412518539908366853677587246451516830530289170608291395543486154792119087205421406002258255228765060473116652155088184000781676442471131393586722342584145277965826807607048723951548691463910521210355202534827594779239442279834347519974888755929459616574967843103305398827993704236973946654184812610383760888697389838771013478885318285360932070383258192766614865825410533032158721077111924685816052410583678903933585041210124993527099921805103882142339022328605138508355286758505205125204554655677374253337827219106135548740547735953197282487059061688927799982658513059745152208958534268022432084969281446992016962811644282674771503296204106665985850087077985729271322124201061056503198031065593410026189919396828978764776212731298156707784444644762526742246547495481947620353865585566346620527450615430729015074525617153588370130023516675055806798033831795410987718647672695690962761840496717018554686673585035813213619286953876846978868924047954183114380754177917996167872635468882566254530413180651342929781406632248498870541367719911016174774069009318996754095054759579713450902572642110081270468434447429157436675701085919708349819297238499255807661040870268519353320480057258877205668983176556214520352862052759473124741977403584671834662485176399701382297632840236404114216146676352084662899567766644545953312841572027939691230857527973230921136668677448012690092191281154738417792364911979219065187936861069303659872177061895575784619322593106904647443117221699344747126586761195712682735774909308404989702503783599496606151838646178309738335890287038486985911102917718384396740664370268048223782182405236951948949397255545750956131175182790839571915501007392587590868150628908034188143841335390421604707859037109472390547787296286907321495616822662809381032847367606930491941713002896658226738276977962248943566304617679120749152688244407034748857199712983657946425981813269764541801687104608416761776308287573651996666569940954498547631651426449256042545115652212347872255376584661381466168108219023126788425045834122302876249797268963832597327812921040156236460177738524696171343656906095798246516880489599760353919510503555523833130461995200617003644714686307764067357468098857115548079634689338002671551867848059826551713931911399326363177152696798508138471370953490718846770981723286109763822740810021514620691822375768345013679454070033339723588105617876465395010353961383092934181621973241512282089675869760464072725153528957837813439426826522052312901047414030119192169985531782630074392928171853648080205069304218986858861576147797712249747715396255301688525117870032499004395894875318416857821587507817287403898392438979958607254490870432066124498096181775243574249033472981835575651091395220000819702511102767100617805534765900024133340952907424292263550787995117199010485496708401394985868784376720531132641195985397884175522410498990557665581846848294890895794997067272472621629447333060081880905572200026259924239459137735663693925197593379333231055972652313394723514870091872747732120809377629789282165190816714752380867135606009832481918015260807412828896328539101184061041934353939730184654234097659723600827206653759577676317380550846997560737379249821635796330171525958100521792591823196464575354585552796568424094814121140899291165203327260494755339883784257232289676862870172820855301317117476523917246402984749057393763516051966175755413333332435871800992255532597603760249793173508907761877914828825026637726560850805838518878905935092061755854041216220205890911161337256895716066984120398907557544319149787750438403263980567804089345325027409442421133409907288476882931897527424096778601222908698101915615380170906858445211347153064741495221552931594872937770293229716988200401900753589982124806345946165600482273388240796127917171188409875880435921322381527517342894189274430232341998523398575557880274170131047774025387256011461574437874586371212484598757452466927618927242437542244062395883519482150801109203295309304778815676737418502991280751650439529753291760049467201324938036609588408873708196635245360461524168966183825412013364865650021003894652047884065182134917313556501809886473432030428628734633831295755000758736953016043370934027033013246140176169446977967068542245784208175221849992106261200668863039588357841514817599357761981078192587776855623881489153531591784544346863332020067089675093008013462505453747106699349548229127833276397416793896160798994938709510119055516512178027432164212916247959112046793031253726609231771279040400583759986170176419061958111448841150436680702753968517509131263000055773723128546316337275425293264831899637293253334856514840771704313653824909876643663391941238489574892079129767612857871401544469755362438606405177528160455144254556248876991312394683703149392439483145517179519102871567287181617596473601968968567373494025737005954758148614088768342389653852859254279652651307353619120208037074334050371995461498938152889799728011946400793775048348847232629946900548841640636605291141393214415289821627718611832818527954564254878666680781960761832795302392710743779159480772489160558369289578637529529290775736074862378725137033349167474805494264632511078480633326901564664691866866269342654919159653511078543648775251073455969022884369801379873310483733957045484002296769431421057557813314316386857503385722873475788482633123573290307056361176229573338038574823942945202124925592741142212490482701292296588223558968995397928807120849351600144407982976782797234786789652860570247819605334197673163851420571750938932832529479563036846885673966531083235406347000590511540078933578564626814292577260552654453612948831173821781623171679069307763018098371746434951706817187271458464325430199971746337019677984491408351941849547012466326950482731806047521268063571886129079394246385604592499009301837428210234457393461601325043538271020299905047025466427915872135106957260364078362173947582423182628038015020904351197501596221645413180081089467624326097560761837291040743904692000966439808690424090889231972358393098125698812686518054866334841625655114001430892088862707301946547397175429257431086301670247758610820095022121312507427637300726016416275507997956726923293405399764641940257529585231816099142250072359193036957301027723557783091491357490771917203022959258714969271544941956177217869370675030063203295509886628421986795164794923694338006194647608649912772494791789125495254815403003216347243576324139270220951209104084135409677040364912516784290846512337414521039266659179311638270882574380649932171210834072607512030718418142249597511242424532987710971080152522197235874143784759575532755883237474464290374001860514948855140643568019921804881633711957043388147189101997528937350051531096482744623476094704137028793258453907216295566150790397516666096751563485074626209703780161816230403509102248812127125230378634663920456207130984645853401633350078967808487241054076356859169756616655476099392563584276099078818545233834616484171539362262023346045210074855887900935849498528164969565825007306107042413156648060527705688804282286394032251644098195909554795466281418490490320047489570037330624853945346161840028008550735673903154916945421003578151097637978271972457136569573253247444787849657926657054072967366680677598487576323568191782111155519503761868758809447836503322806015012187650320747435932197257257180702966255962175638935595476380462017984268278827907700441714733075140009728799537633490599766511044534191850235998322877431852098239994496016846474718986006218880246228437477541829721970269320800523416180359928891410042323212445795660066881513302222735089517450941301588767923372868381376790208695407055050313180497469756087731732943726898047904810010259574761951647933688856871055543026810983954529826421273898015213184641454047482101915011326801389693353314393725603764898117501909331506869959608163955884529303033820430799549433352675929689014360001682388110469202493176443663012351700028762836166077924716860130204620255787760013960523644967639016477197868827234752861544027090263280825262891764202811477528102986775867757127269294999669511759029138041959399448095137786199382847407811643798872437838815756502201385491509514559032080618117221927360584951300533711209542430952462054388914686142819181308645238645525197721345405129120565871753928104718838951448529546128345211880769347384824919477555932126392419134804170156909290150837929069259763197627623636964099137345058743931514608342338888598374141975656406228995086301890346381954342089623752450684981201097890008663079661829906347207926100576812717264944863135218703041619951456551743495984842232766625681782875078373543646497128797398482007923282909620455682383548222218896978973532293627908066136227888082492702331433502180404172861485701840924078205589325776694324665786589986742520101694027798372581264718743756218265225289577411860297307673612006332695589238087709288185125472370683186690898042763517413491345688132929608633824483614002969246724219970982880468991724058380659342483517676308566457402701880001722620870140694282489971776765824554565033799635255234002588477244285986901959865144867131783817746244838686468051232893988727528793598083828988025419004249509455142131063609691910649210009059815961493864910491129810106442109231231426124389055617319677585813456105809214341176455338199308460755057608214109437024840766191128535444401024023110425858278493787712492626972422585318949548265050570440870745739798545655944531210865416080447818527542171306388355025832084810851370977011113895735527981676179112572701152888973356431870107564310869000039979861692229503127859248246885594407775884696736279796296002562667731912405369788757493870521311109371236356297037724600907403949198571225232049898357045185486310949759870848470601891347764695444566610229059518449721140342712239821773447684358813629566385590555883991179129950061764957112554029524260243146988652485673870000826563737503595829411929785137841431885715358272532593667240997227469747701671591080621811470011344171069955322495337070923773268248765294908490592694060080679882006041958643756956085069207178814057750887534470292278051360092451533222972197851256646816068304833674751857530271710256756627651847260336272709502767044789956951337514359914035554743554853544223947237097325714221976698641513003333800750120514108891463805900572973320952458044313838075892879641761891832006222122955089895369090469436418343950756411398336246591607022346180485871110532566801354719789145450849180298508676422425626954550405638898321812513207339578886902104666101251417613840679685591617945545084925328237770471588282149380101654285786161437325438036904495372390978780387380241988529502306304881369857904657881935138820811958335123689651834234318148690701292360584863687499719852917579403201736891007991296231018699236182496363737951411774441538359155216651474075587737922681208002401174864271435809962113676761677280359350371000331129441709552389401224338880759971214993346632126914910493458414150526758107711298557934161464763112054086764503798734476565186983432264505997709959791133406710012921334845042840135867656424482251397173427811418421341001845808883089809552527199475994812892340410457724759500099018821154678302061591432253801000573720143754510468917953639473558853385732245991989492287695463887721447502049086557680281345859665885020021967759330645952756607553759674581020971026074927657385834512056093731968440663964270156259625239207233865924145667834017541140502727648595351256095848207754669795618311684816571525405011941247294458922635159139693544248296320129206124166406079489212004127674610860958977123857586644969793518650565523723111762854679872536532115306909286963953553937238119437152700635994417299520889047491701357474950946230251686741472450996503703492638046022919762013366407480922606292076860781243668451476309046813071068332966419179109703328780573545059339148979451405093789889421499348268686967221220335638526848116686770143521634066779053522965838780820531640832347268489320873726202007112165433968660845775886767704446108542300524106367086457389326652608298661506619191681139627641188922009285541477685055291903434109466083726627406326351900538004178529606425124449568076698414151415234906535353330861541311992074018165092190559338989443021187663413739797543702279885562977942386164891763187109132926678874385715149222038610985623542863665246142795347893710010240880134989891884288484110772051425727100610034592162258133012313735223961584068142077500534657446713819323266919206468136080139165658905970495223383815127168514833517520616440876787464778474911713834409096953807027610507454104869239599310202183607437067206322030789095256063873341909009679271867344385645728334109314142791475302492220928963125432216033152004740170830885731679117507975806110909290784564105041524040916425327194643045674164701761676770256865333141849840111475324047226840419614077068084564201887619639801222998423844267642654461760331928716399101532506155784220620869679857929474642715214481237152853931471712132829883709056801918837687184761994353322343409754437562987351002761540550407491071200125516986121699594182076237248039640544640319718309788173992061641233888231575873251646403324298652432138212248315150745182619180093077919460119110178304761076871180493577040560394977448633695343084244682673252773819482021370007158813508823863977098657760683160378173103730700631440426972941712389180019373605541369642769453238960448485257989334411374571552910470717223233857916811780404044234592600474057683937513843375965096138982420177830853660345393566177309809652103152415080725926301747329404949607538456500379410704026408627686616103216253153644832845616664994807172250075400931985939411923676867083361079005096631293814808467021189467648568547910499856432221528398964689908711467251081792055515369851949115866076066545795757722589965556882724188235103028702337992666330611851061977003593912013043515508989698874700266537276054790220034491859497193172211190104528965770319372594988526493056257227237924516936513191589012223494341859006662355678867375891531583157449777479734879053131081076427692165719465710479497314573616464080749910592337637582584572197747921655947243670629598863020621961181924381694620604835537868379630097681041176078821630360823846656911716503660420496690975506664744001792521535765877250707621676115401506155565308195557379029765701855975225228737516822711616766861831381955267973628251002320368140055777275521760932544087203404315662208492490066266674024503240321184088857890098108670857069103401689132550728900779840823675436091753454650513656493717905485910063285909364527348058742995426724053402688546104267892659459549774747018329543600931625693475085546525834064420811005267070101223781416758227556310266319768663382091955367628502899402570417690462432621302719791634205154931159475967647160250119206777517036531220204795789749656071337428121289894839823072191832898235033645222337529919963391386623988306310738976055967697651144028661012369393390835519697487057237598351766250562548342380034907449668385361528961298083821172126316449256762443645157737133732932856126265566192113720334083836549114516121436172027689267269867705380566842434483511902871073339462164184856827592230264415441577065243426782084023220439324077487782540176260454311625572088461762645391123288421297349924309818961765689997201007885202475042265349006072153846859399138637204360514041798623420780411039067709454344803182087429854317287720700405377113058220879539450256650263755768482797885883453853396394646563525666440368446104697874109176276807568871062631336602325959573422921345460655172305278991814048274391434537749983339987917799829770756393160172418548529930615550882738530571902923836066305824297102280373620132423867447482110730253042716743912395975265082992358578811235692269564250228554049056113065503016352491252971830341607401788778359976732778388106124530197503220492974922394902675947506769664743061299930501660656982519746033656687322868839623250246892268726755359853793284815920633076420621799736899206255993833506391862887031542605345918042559938664798478668939675591228861975428987073844219167720184331749011938027891388663709381886514157137351087804431464863216311479089205389962815352830203044980296883229969310525856705583166134586568788491164713183358570167788648224449862391639431204012657433728557272062554030634975210586979141991011194449489705264339843463383251324586298760643386324322947261705541085924333224209651636771432050749986211065277758229810934192131508897882120387805630791741868476526429900754617073198838868069501277708390772675670687119060809880271002695598313479799837923149177283470866382020364396387563910860040797224457210285100649321559154652777028939505595326377694567916585313979257448049320960426409488290859416635750920081468228325413399407493461684465320473387580152152097343160062229017747544593156415301431306988211984942519334860957934944351594018329595198268725439904900544101256939036294362338551900392507041003051257602003829954581418076511281263220594181317492309487769260934276470811448435305099275754233090938512014830152524784919158505728427023455708275397561530353193217181752278621633162112089100535984937765851034202942634418309763052747438350818007419723617177833001749347019380726862578841028816341503508167296115826228672871887472108651287610359733889746292574949462435341505329616892690873767903845857574605739264886166805501680412142880068261311067576481753277212353230411801921233506956298067029860507929344820196013340237380526535848567920148915217187506037609981506179995700918399031150719003751405353261816694535377805441147708744183991134297556784733325855676751662823796208020474240212244186604459117686706925110942520458796164239206632249229145507971970037361694156486689676861900200211373388868912181256851441755621444084530013598213716393912073337193949721603348586710179373277249364441619863056414275057304903232911275194570129050721334217191203720462016781896759575865025694472881147728414579203967866017369545997003444808602847327893991595168521716268463775698016362870955380708668093575894813714086423207940388814825737346563140390012538989183886010499270700637679128855369023820959783944469513650843853879357343282485553272276812602142764901729748713153428047933269363440720710335549558939102635489614040641688563280142665154973020850131466244354970645402104254250576251553458742261916319632759356611938694593358150140128058901971275996454775015532015523509390916172388224019201589012271618003831802762439429108839682231399631481682090753845872923388493252214833462840525469129339920105377377606494395359206660090804261850162658370689254051675505354955656462436537752602571798509442561522066126218601797528538439141807694835899217723902622698903140462429674275432253805803022331901652439068317336105686998988422674704486535369801030516629173986751999963179336411183437769969725657532036887232038053765537885148815056245436245457265316764800236720775328880182679355488237918522124158978026414766100784969060742464993958596582357458234196369015196415186730971182798993499258883641867987283559629959932217338375662645244827464661122347354167148039540238324860068540169252564501065623533044786586185508971789203811832201657048835117892689996994647000493342917437476929065961991620703912424533214041979551609546800078842100462985189011033811537389828379503252121754956061864023551715820100013815287285036819263303430675017250288859920095088711476984082522966025571090329258637648129279848656643540228603135212090213134205333369738056639319231773047588568526437089056803175660314278764502968842157485669464847390866141087774308579241786984248113702316820576420013049336894469523033752676303205254844493229515111220342291528463352090433883860605807895672548259474735319844287435777806923110680836299110485616122762719222345924886337081001335017655167392259066903269672733943986831089203344434258935122325023102239682265318184484761637832380051880156335037659872280387240945393098373736273525602794762063606027990757626586949202311336321216874548986270610056708045614901064082857773103166707164630587329890249373092157537995631230419477639150923303117974105675027463074289282140634989174402733847379727439246603371660839643743696426609652725185603295650555512386429961709638692077929579807502414751977548125126245835333819818103980291563204977465590025051820673758557582734857446294830319848685661934007137537073116202019096735930107258787020041821254878533528206739372671171240736371109568275512477286371097218487319190904426357308620417431367575081247500918408043450426535391831498818016174503719011244650611564424465175769881871223472177692654627456218459326913552661417717251738715350218475835837498852139045560878483846581295046290028807253306181537571541287624839613550105345919547430200848807294203932906141003347178677927865049252908644646141730098299105511150800742218884804726515864826894961687791798143453339826661449343921226073676169325200500740835962979120431873079086192564935198673772493039778706881170882934443746786064883861007311442103104673664401998953858792090200852860387620214647942339779808452797653516610715073105208989154369951067499487614869003181603325480854192312870595087318397606711344702270182117308597861006190525820808167744046650449486351444748899304600299774766696558810117377075812028657645929940965375117164502423921281105061666721736744140170374673580949655422377955437178459306750239732994342849618078350338321644103603758141081732326683003541865409088396600050412927980794218909250933966547484271622558139405620059002161992359602001972727493576963963739206113815922177743100769034657097806069798672198721839048359255513600558427670728737336275683775184099098350618006735695337971115201921577917574859067540466641819335112696325566607728971184826129265405156568250513103833028093031726743188113802808469941417078811107874779811876172628297204517479269866118365240883512231229899214256975986855961527599288315559619369890127887100140512832009793922920862299618288638454593747046697694404851257274583108912938013594200729396183723438664413355940144760799039598395008166873514690845563719900686094132436522905392869075911938731851533760042433016193708059320186895085017916544872811101638218921341793648211131732530807458299255742470381581364938055713824508438305512349252225956556417756248401008270720392516212678150201094260348221654684042404612600121638843477966191201221554220304302590698677152242113976777178584488354549977107824436711157589651854688835680085756464210958488620825453253670092661118399953439357812925469965876725732179069767716144589979145362108901815418948599778505391910495015798101130052165644857326020096436281811750715391035174534255865860362150917944615000265356257976763850290133846253959138675772314255590445335253912694246633708171527644873735710070073152537724907056608661376315111185139763674390308954169116477032665038043059970106466809871059371557002712934346278789948557135891822101266246900511202849146348088827313009033431617610757254075150000468100738869245323512241421966015948621187087724111804004440334941673479727267944196778572397195457516490873290116903088919390819944588465783635927765329555567092828787213535392840226271700712364108792329439850148143454048083557523244556226920419780098406535076674158593862987602620627808210559894769021300290534377679902473221144714147544160426611340175204794444297440400939226097586846551189723330703161912098945730771133464465678377349346420971622421233351235059391889040116205403237582600128552211224893262664699562685460526873810310224981405178127023337948765589113034869237575849445765224702011372060247951595685859118249461596837522857066675279338560211202206801905744334188086042889748358209601861406101558290622871907649697522955418537942311769313910101380783169042236085453928144353025759796672521031161456964778284092210935591012057372694848573522354018662675078631365911264354592667748197003024529772163026706855169582417847050687831805284773302107040470182685269231744244716806903196273812035904750516883031844633116317480070332962158536047620687385836826462319570743063847147155816363300087527395354707728710323285955092499831265451611454236040595378264233658095849302709611327463472733136799438242481086622799396982605535928424184108609211325734558366902751073093785249548395209122019946681521611121259095764749810660074119927487834119252683406977902907155024971424964817679931229005800608006623273350296507788927086745619015178185553133093097749982435994950660756422505211506108986474533414573360089655886651221705447127216848727114245079911219395048142045396557079579667008231761689940752042689638750290648502051729598927103095628481419690333125522752909237301722837976364510225768370603737384674132779503801560062347334522529653070387808753265768787731969378762910849013810037975770856968499359052197743273541700222076659581516792575957231579863678129295033766544335725089632254814559327745707804461771063156709068163023278661491857063122460357421450416060275685843365037597882206393820748020177964198498010328867327607949275347750735675684634141445476363488821114591293030817557570634448008335933740003233825926611037606805743422368304250237594391519415016939615421871635268223699700433888194426408106808151022127516187478369045789699428294487572596520365899912111308524729913158823300611578454889492906767950766823118955881241171903982129946140936684918867400182714141583170474692134591532143326873452439627659861909590075834757772805870259125411583022645027213985142363172410251406480587202508917168834028950628327139492696375900871173612034081535778312699884568751444079302584146484657323920210444768747623986826116697022486923094075940191192159209909309075149769750162696103979473810351944213297719781925987152484740992372075343671591776825786756079951099269556672816767375335835155738225565190409982557964360206908326722628483130167414605444105673572953726372774908550903066658825505493742085798635721584848261292149531130657115667028482087568599454339056100076383188511752265925416139976708273093850585798268937648553640064044580117498647793279619368664734042522658665873117699669814610931841611426347453087286489942073980340371422940652724397576613155657189207171317470340245547611919302093170685484009117639671360862121937522512914086432901990078304540520598067798417306052751168114568822153613927770450772410809724527269822043490292693595271852516557245108684663714349712769048272786495728343678630838103532826570882777157897094819785227742705769659171401406016815053031071960707326099904134022860554545245218880703597108094789588962650718790706364454165735087942078493202475658579346281208253369345533615741106197523248906977686527569827405322467616122984755662632029337976544805491958562690881339009655646816039136113603385770786103670530049565681363647227681494394105989656683052089304786512631381618582933051808894470729276670991832864165020351865148173077892165079573915108116597805835804796697075829255933213075433981768314990218151451105922051227394670631621490858234301956615120968202785705512517049290081561944757099740156677866649137989143746258086008117917714655733018403087095456450395393995665998957455205029183129079553783765209604626646839414353050857455718525199424866868049786912346330907330706150349480881884292257683335718747597178709834401800248237061875559670922188202433642140520612387211897215702560762567637171279964816285212079624155144385189247529521674540380863860586157340865671741449236230754955647906446733117460995366277519445539124935282646757899235319818492896651284017147547530091928561244182061904722641215741367792159712533900624982968740777011298749129903111740354880429531524039972513034863660314464265082895988018901574944235909395425624524046949314095960960944054308063073389952439455874798512457980308882651061654656206786273323225642910793564514318604136216909682011470441667207153342423648414478478419705461016525900260046525262621691656586633689418512867655547614239374606468816408634875715573790694840370047732025271637564551987664085892290902676287002901062798263477237241802120572158397168851933716408360254711426188570295909040423764924236308436717930995539638677306928158989776714844426564285626845612289669795206285471484309979006369161219055694589433511837409368888029909804146070111256950484508592792094120550994659588937207410799978715735271713404071714932723080277214370275263744687067717703055536785384929016743108762271998756240015379184699942267405385192672244058358723082032933379784140698396486292595744581864763526637166562389584863737083675820001984199657730666544699566205118118092278905580181950986379990569454918312935687234930237666630720353160835693563138628733591719379229547533685791679457699416447348050773332582443839341303307079511680208675428208540139663905053532687641216471755910218599485120038614054370272515585369330570044029143734142969960684401822340220847565453881020803277845276744944762031016879473579821966037992079635889442873916438497819420892452460284046978965680304654791048972519708547231488574623503124875790456235411144475696723287247195975694223438447487755241545928388085718737691367192202569362565557413046999460240062876045831573667150123691394558698967351998295972656560087019764691587238504696014561230824672777634467891486858868171193188420839748779904483125852474644496475151123924022421940236511551583471419056852767589814568949837567820883732394682595654714695903659268305955848894844806583618785487942400820807217512750476312691879888501605104869931378741000064042352732757757547288411877988912196504355001244986803738420194670899520646494923405773453873090392474328211920481090398118946970145893637783904605791648907859977764896206817078499987807178138198366319779517135517666948299040506390154064865369007045649264804534518721063536115158785485793464962587335661862110327801089344339909904194740683169032043887954798774754599317721804636168337575229898055935514277224695719197390860438344342797776910322223385417221902078669353202904102935462980391047532544918987674409340451214571701247683883265170689058460051107934384591147516839072660903200496447917167416237628338889924205822347275102503925967344180335381038160998085689154207554338368638025293328152930351375443286286813122287109840150002922064569434180064616604690944401594555918248766628982921477492020959032887396985452376141773575231121965055851818283851804701285384852132665221399167284296889221160959786961559452596146557559073689984672287713729807183016330763222872350885965086149148136431921177367596126051290008980134834818869505161374294837307805218746702341855305974123349876091839985698396027110464931730691343403341138358875242084578523704459963186573894816572526747212212839073893895441912921230103834436817039330550194616608598572215354705909776099621037780756370612096525898859228898459412128633947275846436423889941270528766417132690895639975325666724188763275917756705505725962347141007787527951182084590569076412662086548421335627000658385417408804255665841746040623917146347889024617946268088256639939390669243444929140759454200996040257829322898363349373485935859226592587695221855374395794160732328429947879229203084544925342250368605318946330419678119274340427561060590372273188979342394918990232355406613410974038547421213677536702455143843256969350418716843758162037212654599200575117847726958511649881004380560926396785202319067281137604023502371252920073802459450537299295149933081612049459580813944115911173867989557123225533233862585851130105555291381208812651666768248491356589636277961460079105074050514803045658079035813168743633940607834243538981479523759291559146488067693194820197867092150896773764990010732657019683778393563609297514415854038853614493142343650668112657223447653704486969744956331154300900136802679586548152301106497584396129703485770040524915971534061358778394703826852334762610068713303963755761740607117975756304146033842327822242097721423766145671331844664531437931261922579304455498642855808815322431693130359606615735036245725575565441712140934968376031209621949900139413607102515394456315201107542101525901754468298563748865806750767292668116661162007232529394067969924348541481617775426979626629932351149793785307101815648330779207279871103954796935950072135575133552399813298366771929804666415541145136047931436190007698246055508657499759040299657438975365467489168894343419889586937743305456491505634086460440255632440863857001878615918845395303949912727042313269232546397909865393100563223071432528272504269915953120901853700191836172730988230109342364061088867927512275650292175474504192751051187568342060582177092125740078494321220309715523825904403680843887921465309813185064430897026996122683522119446458440011711702720514254220396661251752244871291397086013996433286152871236531264521572032110680741169409574507392407213567152117337696275264777674468740210488885335541283968065727787563970837548186271930447044254538172537485012383874883513691521353820675067251964340298751853537285547134864048228888735725735370642948634726570899067923315153056951366153717712103450981084769990932150121227683453302782217579172761043385506752626948825182052081532530201612058192128408353139373906968141713429383021113827786035856203750170615897716128246474481757026034087841519569690266265492678138820416817339459336724215835083046909891540779161393185620510721677207189360738303767703856163503986410561061550522369141211153107911913370001703019282382611561320874618339109756802372283317807919422795385688520135762826176206494847257075426073887786635046897968781468626248784272778837232056827875126309736169805183566621522881098462774236048572402766025867106947665335058311166470065053101202138480953452806847219266222928894611120263865664354204304106734559414381984940614376062649512237197988343179621848986248616445019994006973665453649318002407193367295112824670733820470474947029983922178132170686922357589344380800512856793200513989731921374788676375382602339275660743972407394004632215471831814630219357658588341546400654644858266776182486638208997215074837743676945293813473163641135824554756500692894501360212911011083932516738384276392756791075702242395947737051557391120733646064104288268410826976261712878678171555328405476941717863516337122972096884414581498027439201086741310817280763706866393796290671137614775536022798238831589062514820870222735880488412805534441113385514145837911002147847659925558957886413702215565778446487750373079349244169486136792385385485061819815185759201799185217757154147992259121804616623200823985621067197707174964092177530980707420783605281489769950157033135803253054390044834983506340361145026679234329333246651331828159445815708796944851071276884221961468000112435245745424184394871398847951837016430114703013031319304849245249748729143321383155473222741790974904900628300008083279388667314771865023374238370303677081337996413204900101133987678633277966711494479826223619367155823763558512323405505135095453666655086767906362121266255396584928307256554991784853335582815021928895958330984132520362214750884659807138070824561065686316199257519683714770476556118609990612473669006895446415762497982664205364624759039415338146099316287706656918990889476551739694102893711893575909010738514038891773499208325000965360405990354354814607353512164270260414894353591119437175771684478171689978615404887249331361211351782597671873188125620021434528184287676690445154155099200311105252671448824466068971392960964043850921438931772167938705634071409915304428547337464459910030351485855433697863989587817122776537537923389854147712328186449645071007698079417223471716869458467228205944117078350303534050993560657439360073769357644071136975083596210678721935626895676986459945287200605560012562240616756782786641882009692864541914025262406788433648498460730606875116984303283378901214994943382453582047379742012133302642724372304170192159331574531359219293219598314572861233694310470639806089900678204389081256338185131314852367363324977603223047179286260094240148456885192903169377742980100815557178086500699385717894562723213337883431930177459408869523821755995882005807124700762380941968464513823331296910386800055550290811509469782021603033626460217582473234013340145019684947354062533589285607048103797879416910005372298295702291128527543850630297035961805607168132398267644815184851090083291041775520801720257960622546394902017835282965480692792482632244481627923546746804988631011695465813265161834408367837121221003153511952992628658054764308954843669828926520962644903559779819918399336519908148450679472468955396766189007522903738908581450180245946204185550801396898739334901246451258578875974551842701110192409868458373026612273790185189738495507791844728628972552073783879858820061334237508254663662297408527562067069629830149521530606927131079636032323513368293679581469840752399922703369656391096936660645044242123476036406301069295453390829140350193611711199951512562029208203257598287412732242849371747570930272319501142786047111391637762293293251392557264632959010670773698947582981929947535955645273201246298020382062418508277837135635402869368511727479039653405979589166323058484993116972059180628192870855056586771103356917387184547667947184400051401747264013484343146974247971970403932825199446357703410814265297058219748800811856059801451111201511907803515052161915904809540935571386791623938274474776951071762341604006904391571432714291138495788984611596430701154039107746972558329581924784980336321204211526760673071912087577094552511164828656666275382666668552746934569236260756825713507549124700995987126059502150557875173727983501213724339010761466095831414263050370604164641112579968636254144945580815510287721562522315668011929068541985578592451357255721552548557059850184379449406023967622653822817113755827447706047667998954969607377002318429458864542071062114340948749342265169365264318313921109837980823482292569525304475747087150963788480367787891094493032572196021957887012683860838063514309562963013584052319420275810986665780217082369043405053010811779708105263773875285206104366151753639187761423174292939048384675602933737277893008985256267848027437826907526325965817908562021605591081213717032546664791901782086103632351715310079022720859392057925287033327593841235842549850814364342594684738942957467235904986693014479831812327140665601313296778300755605234160736845089509492845772780471152173787982954036584028997436214994631199542593478208899818698155902109835035071112494324148667256979896829470672548950311000410398317866654077355800756134823162635732471402797631836217472346236597924044679708708499147185883317683546038793228608891846559675617830302144216949080695005573735364880370710383920664860359799119994162261010125880947107633664827502042222032465469060086431987732624640144237993690379861442327187455636238883925285104398563912670349880871233992422252519019753420847435997839478823950370332779219736024326515035962756152933067201595744851331593560837273370738275329755784608443001907852218468462926105677811724529151061077309408372309272884046747585951787480670158629323536224725769639216191635939124631477279467679598486010963681475793486843118026691742701953347831863289854193138939919768776465207189635780180871639925340708064047955984122018089292665916070185576220486772872107520361574393779506732382237644987351751349466350317577149732528417561547548363494770616253974342534660662193194161061633654935598561319702744473457566255538558988015392605611932909942379412416581800940868955154533464388578118738484343472277629492758738788263887367233635299616259355468200839442139790240182323683313684341304604158154853298478499412757137424612935757124300130264279718891304129038280202437498965310913974030358719914434464612628294453314664893216279202065249058005487267059586570419200530261629939355769655010040983856585240765657668445189498902977351509387545395051070289512501397191095934877190867240088701713728631659439077507022145452481631237463057213472631559613422927730644756578828410451094665087226836207087343602088645665038625275728530877058107406308116308593654486780302325936233737232033401972073676863702207102014302825362398488745786545843961905241017961209623646206121644994867220334894991932722581840803600897813383789306573841806135444057709590830715075931983168104053025999950911679126378417300215417151281131078407546576650679442648151285573221056127408786925696525214221420469980872819475446315426167677389896863666026858497487802184565011459422207603464968745851311105108955659227773605223864370364894593307633786514875802383041046056839930080450227802411556159257609289175435343391562198319905798943372141150806067602868044457870869692233801682194039232123667870110458561089954207551298278150546203420130789490213445359372979716629602683896716869234178982989273355994639577002210820870211869870950383381229713912617776471437700222909490052114320948457252715637021897947556356101062643151447164520099134645941401151651760854582483967491825222173822254143912956822151508518397067044119034985740443725001961824984932437167706195209309942736588844582055501219433657159327277903940934190639689197042193934923234616668413571351526159980985601491393851992161438519796286776122145242651429438542465355121100772612187269036242479720763234572207309739129344040373186710655290005962543803835084984325531484444985563971051911094288614404091394741082562473750508142669143453451117837758434293818814888575499334014084078925466149041995450980122411179490854058145484086192858640018660059673560479661045132726540118888327075604315528182319545184897053204322354521005407173727764692884336550011987667552421515314482864221879802083326314321541857525207471563692341355456446272207777550532320941583807675593133357226914655465798079567296097213283023519666919171348960069862935508799909855006715501153749803788113896850559837555012486067946765326014476843272197557946007852207779354215963347527612034705377223297923052997084531922603995014178355373516317326580376908511061378677300206984434229900204738076122011225865027141945561765521043369528524715458416182655507759053297945330945425821639446704703560100628809994799151337068150225473265072937249320094115033062188427469628284854809281039038323987290176811556711287218193488247663291627524823195678428636293798585242524568459077037034607762823133735055852760952283691464523543991884791973774300199573060515279935963740183154708541761963717994590744815504290282171088921520308465400402601853148958756833450511428846748131535773375436729163481565766766381641371345086085152734063436291983690383605745301107831765659311379733867354765383521992659777781531061794700614626747068121298067197152176008684719277492625749165304926820810565601510577603454803914245729034085542603611000710177888702753344686138167221753882821997198416338371375486068051860494621317303396010934989316932078405326766428050048965202686590389361500404280543248056597606730238710661023077288080259549870956489233902822282447631186832680496563658640976422051970482181350240227073837399911891099986686861141556904548683611577638966826369490772512742906495049981570553892529029744142000018362268729482076840947633793612981317068865075706572100844019396184566262825100423500252143178734971645026376168659959548820830848657188731174312289340548610141979054956263039614905340403707674726681046560915438180184826920491527351773647690681568901420283691272886825183400646642060790109790537795940880841661091303263626785239544536751866225561298760963256721865518070213548460559684750861197708629114178014598135868634314045438692601828541065855759711732836830492137843496324596924870315385740177795493699943641154403462466205119742588940380415390541978756673752578857259152137570627461571765241913733441240990259324041353740884184315850873357809738458655509370750280974096233092341708444679567729764279415773613703186810310751894739598178403462731194060393415804864096686369395643902852716370096743248849776939062076359862216123897905776642456951751202970185930339820990835388394190607179582691667100736747147863607840375064638780390948754376592372071715874738925988768872137572983673971601015897448625738712337143771153148400415398406710631632030417176397909873169678433949653238104225906986989726264141735461757889106945901679015831292550669531720894744602045273468038883072558223584896731883803182968799102513990993610781960495228111675701986061348763199817865464482500063360146737524690410256487589256217354407664380531561045521624857864060065102574929074007604948857680632275686077288147507003194188728791340849923188347564679721721775197037544077278234716741361239789815152267468610526266627503850506571327129305610514797808419413726301792264960576365454221088433285394893723855517399348804665048879994756149521832667644318220983184471675476643644697551699765073332580230510753733526860180887845892961477716664165986830379115302377342374671346257056853987590264406060227241997983147675195022671383029983446517594351844743324577309680854911078758667419803511697689204067273768715894876751501359744284078872647440305051801388093843012702025983178505421738061480284529489157923373045054236647641130926204092783333262209468566687868526112997485800362196624764915239208387227878347581200256829054551744971705914247960145073506879510198549573275241346497400606816223274682483293356451602957184846191689715057653637536463544261184730874491578283484840010112790328532657188365586882885221072144999986851419257733642199294632283717244113676634320348395969330758856287627678993887502164339710842892142756422411236283674614087157713704960757982016538749942413214963198536269076080568321049615014438058294308186382242262781489976549774352875007716588522751936539260541904497649503236818088996387461743302395722491759830036227648953060688016713555128423815211457435613763621207234931422287338059647836796751675734845431286652164285685519259765009800555460974904370723962647932585812183398689401458029835043773025962737252670182074052689841908769473902477409798051638993490978414510944759599166625653707432242290598706109352660047673094982161565831704621604384072361394998740196506011064849646317109713846964042183085119549375720771894826830525655015590334839277701900733559112501860980782324069557356385992686664262532008710289199664194418106538509566501464227503404662976038528916982234868814423337531839429449335803010737002357106254123966147227774254765551574053656778684841530708954512815589886478568668995364196038723951649257448240117705589837039806144997423601398731368813842351063611464903090526452049360232596068400236901981614941149368877846921834788152206841702335819834624052079852183966873753246786370841153101376886596388709666942496024945510851677623500652480435591001237748944007709947671395899427900114321738585826346021080629123111754440610801103469565464354817099915007327411389220878913840329252809138222924188975831989692338137881752163416754619554400975301617172183201682458067997604682825415398506101754047577318834507176309941428691969531796195404011478491077170004622566859777998398860332650053828646847003917009996500293119416347966411102713950175084455619931009803377952944996504042941069714342310433412269341848372376592779874312104922912700295367035141344627966577428558574489006461681558358287497422896822106912381163805133090721359930112098080151386317628480436426520526338551684694873622619301376980723733636425266293836565029358649088168736181697848077979746887670359727671088619666563556278409809869419444035722816321954127075990330777022298116945060033555128204735762104086257940029742195563680447491283022689548509357956017520138406216307372799601008996991807750643861163348706080063655709498586644105612799961538990219996225581301811553539899086217412322974883539201510596901658579025521513794796121663947802415491986182494999383903731066760344935009757648676435952656750813351524299593464214185424035466829497402490390773679459830027706940490827191935537051600103820380665713800779428350249656781660533712194188568150027894463636457252576263515654627226125260789321981664230869075835894469486094487738988004870049360928079277851231610803257748635930600807012718921003469401369752892575268655654112402737181314190166430730597814200494382189536970299995749421234018441047732624720641271058746835889021389998826028147659375276394507410590451774795171678322896880432353486525156331786208712506831256095558412371645482918985439125862617168561636605658505823919045249406146408383293230035896328273463282725869988335677813952181447088081288029977972748338150004747608876867401125604129883063965426008521916525978261627318580502616279998957625190509656522493348974594913431729925609921387313948329004438275302672349381812240327815755432331028058386727036048621384094708442677570285854590356668868447202097511742688783925623074549317993667880918709895853435215548330161239497257974910549890291737854113536702293236030473278688442217255800649540265052006982104554676556613090657331291421179645218973595659233276018304394107452980356778920786295027691098233301291713132413994426555228157113116232189657627760919327822395973609403938481438506692204441013327563116638499635582380367497434201680110436800447771624024972093222044401263950344546241865455410189737571184921279572866713614886024832198238772437640083927687214350255835876770728825337071140592573907782620085800873070620256023816518300765877647279429374879970855316261177043921655528862027433285737604337689347985038698734870778426124138130820178387162737476771569717864026623338226343453651487742652438222319582425250853683944680376269330029745678985135242183989529628215036853258900154086020073500759675962415320600016137961684205109738315001123754787419849869108238521085319247581630831096537297458623007854091458572491338835658688177100676901505628144953693750804946608919089129566203009796197791805181981765004416074334313188590998556623868851090181059783022811204631903278700018193969138487902876435047354129927565698614732654103529814187742486747758830134587550047821261134913621218886056917711164060361737184669242685377222712953357812685739658192328068053988994834950946512603978036198060127402371756281353309775319223748886401262426073733065774266701605915676961983972865346325205256222074739692082580410366502259049899156677600450608517739397395054688365960129095684595062611088767237976779783843061689334030897998339808788441225400394824827724452388122287934072530571104218679935811186573979748032008243919652418402287175185382779460700280274888653378317147492025248464223152503847628628014059185116944594470080185868908395240809947095288309196081871619796227251157736214505306464510451599734093146740321600840551768985894769662841211769154929964363685599476108476145905597397757735165832405658808921263960085017722845016405750928852641713934838350396293611319504699312482007212438073524074855649650170192008749657830889172319671075301581270410081146255147036495544028826598491483472250856320370646475206611481760928473588371079532027895729844876803604696035492429586007098605974769984279179307071051069664357240205739016187539474609139654758562322904916068002762051736874280196077115030365996985091788135623564298806764554625363535682249087510493617917801702859249317709097020698603022038737052519876277378955098269233572200917641043162629284103707160795148867271801318604196768584113825154078448635073460638984410455054371536171064404433704501492092671471110144417437676996080093297934588550436195537312778163267324306722228010666894475291264836142944709713402750342355744160744515981015559604803199134438380632842376159979767996763122634934729754924231319615695365438261542002675395442454358445698615548854133409480431702484131836389469433495664920782883415593174299230865331738040773216962277544880924751118359005919799401936139378123296274839360058800536514866006376534071394405386463143578572519355262014061969762635427160764899684741805607289871709037913722862074834263796114115904711870595469282758478607930817482784526172077925129347861649760047335792684893569982574588324179848108830248133177857221165012858714543983139568546432640565381385816267447053558527627427781058659639310121646086414911258455730507037857183895646922075261655343893265271529969994693171908242882919507542189051663799048601613274675428335213807767616767458206949732582335330409996488668218323903560103372092915037980621840459369776130982675904493841418656925784092822038361474804869521228160563379943532603078561027729496515219342022045597513626460062399914906983359281982166205805951440011531385490070937438296396718370686625914197217733841330462779576357367207021713001948512723005834090810752749058967992104938109923284594283494438428528438286196350804227000534215946241765485065252286526351935886158451544618343742467264717144842854497624008395173622496173911793931227403853097991684438523903381600609575484772219449911459098781101160187121263893659023685464378498507913041875526457602038163373458955111959430454329407125286640370910970162738155422484325096929417382276349856765622529522020868964066726270917646118569130870152848517626597787658364305639381112401521249338387147500492448100811866566425233873704035172669700989112615002504478768163178139396627772811659766328497618446533312607511707201423731660369222160625307110425791762161946044028194652722583085380735309555521624722011569779458529130676474035999190352493050223769354703835182131212382234021517759338711080359498626131687510989599749535461805037846464439621148685846254682649124073098953798305192898475418673471335709022314333404289846760225440050106142844866469358081606351638829588504525261195980618029138549730741558825109541550308414714275997577573204578786461388851221625425880706337553433426638201395616826560935471021830877786175126243821719811357705695542216446829006750309146860849576732571420022043803128330720634207957872783192055146313401285343391800505948179494058935009597566593853986751075727604877130001089891006870117278856474984176703385684438488389405014737721788418585749928625548634244735538000846993280735734534942873686241537322635535812622510773163397151147259913262964789251907963460923798763682688289512090792271187416237455136208915200250379129791749762310617344425120956329234456805200790440616983405854076247154883340631689187344666454612966568340523401061649707349338378901287794294138779482090108695760253011757329934185713673707941748609935483199396163482053186249871321120510506562115507319703052687792336671391902260325535746633775223894962603500506483904749191224776862001673363592804819951941694290759344339938251258883656191318947640265616770407278344552199364741237360574409739467354505520549744797622632195342036502112644439850284078754137087472936083064737981784283127504519918272409408819672711677109243221077863999332510109853086501929802073237298486433086962425718915862444853135807300899437023695338584446361649810086179596910445569767713291674644006267297950692823072240684972836758419604690033490260881715308686177143211782156090813226290840258748135951519527477420321619964444756842701586328894342976511970715267946634748553179786250012714735940619826975359003334511996731769982532347135225034922456960215154741009971932452362472705527652079467050382163600812899266147871383586558001799146837114655923798691001233822107750348131157403563346249938767470772867274653223291136989474234493311111989355411753099825170030699759181936930927884109441146878823984518379376333470204342951481983655311083020391558496476396875558204671287537033601100087726872641621275911600363792400144296463635608634449191806185446432408647369957524149333411801655167300123979358231146236373057696960902029901561341999023448505457421174266417121193285958136605469814597506402024845410420845775580734065716768013973914680554820673377049311968429833017211870723034571755536294271211253172304798186747765723954962248532515813111640505176873618718266497302782224489682277466264158331937742166054635165464822983959238732279048719127237250777393118676641333506351761637697436139974702323684911066949793471928663165692061089386326633087068553044295622900349596593572052621774346916081798074078110961248170521020098505291760682528513545097676205370066292153160597081826931700873081736727519789031766750293345497493656694920715317438517458832036335393854318981308973998476772930502326561138352301973460661166479126437488092270486500916123781498734031298857550177481802163333087604808033528357914833824136328414946413275708177630490573717654116056795064644718843060897082361304722786337154074750007147316782459294275928009577461141948466243157158099127468931646781423026857718825777274251760780711288030736811600918330276969714183406375812405265247082612369773330508345968667139936182821179256657417238108567845925787196447235570116269947958819878594113953202185487977719258185775442213252394114397490976747669176823048185353225988832669066474813578630879245467442061720875839197371134289573124552239822726818377519853310225198195891453067400774438504562437036603754877923536677726881044524866671792753736669711976379564719100088823932209588236909605346718278132616176727231893301745235460206619939214457964933116219893409455703990019800791115880664314402286076601146695814061799491132009413763519430743906698626751186657226960291028637866029036512184757114848515762477455936402486262781612962197926236660960705504710840549747465462394570432133800215840755767180982394876768367342998176269193813486761890024070344252803183652014652860633441820819173837687938716748532188725476851696409396428026406277956342700643210625727383257474264819790657681773388400834090796718390815313057588163565450971584216416998597261200093879414472706051830228838284271286013980587375225317098276122696851314917133534043406393176675405113903883196965976961807032094580299312335263197874855988142700403364647687653584852322494943399924322049613398371416287770679786607059251251007553082999159382912895154055573398863801732657778391146153681942552076341966503748373630954867865285462458617037993194951727511546047472976537203666134708232294720320965443411569157379197228068246178769875444416409045013457399098438993281602999424829411935691595395972987049658818562435816700561403409089548537249907497596537854300109011788824013338344140620012231519549190693987081888859652005186525254139573409424241496895696295009823568551604278625714760524119330276517886845883178480388246581825984847052721517479020571205702091201013639655642099899860309468814889380290893791063446799905304229567205800702928400055842989876705435933976082065605598365059930791433434498382054130431480941207121816428193665631555535942292687345953287657594400340999348646764553103166632554137673321377610012434819520525303387691562548372542587264686934539008168765158227679417228544042566305159171558578173315137492543224974991829672037000587758344676395563073523800599130419001319099297374390363509586895763323128731742410809924296143085914499316404786297935101362290747016035553537705257379225696314418641718007811422760131724782566466428751960621775503265483594071482189726694014089269232849070328018500570163202784993538241778521569119649212910804480999725267679938051307474837925995318637028179336690339003425638588325816882326211676109160904422074132377151270611303395518984577125375541017136332894617942910067102508373044561816020124155420825095837351003184968368977112962591235047283804591081427589409887513572251483396973441209131635173679629631093897301203669183445594438116982288645787624295255360687404210935996403781464280374299988083598332856352176184234916228604998125531156393959458831998619270820869473274038054370255101086032725420737631512639821738647600207118927871844432581996489417422644222500261388976221476013593656955798148563554555731809855814131244672116141155534470431725867179295698921603955449806190895354688503567011225582760940192978867708146760590542529984222109552191856193695857419370764481409702178454110438239846569349449715892225629750580869789077230388017970753180600322539084827646483887575423358075620979638816891823406471983202689241220708129254793628119495332066687881329102237337498911563111536012698063207912291901675668314126205677592428562938137428074429062167914855598226492295269297388310168140305324342212301011764400959527341835223096065652234954745815789728798754541906768907634808861541846565884432398312775689218758563699362294654695232745640775156595702860489943081179235868305283033711049331948585421865634501104841184001652287698334841700355406996637159917275935869605206076220999864517075244382791827487780343629338826103213372089500650426061942271757196386028013734801575428178700516902816789567735224703036064707695683337176506774771492162956286472046504462231592221733402138173374939908121146390539091401995464281398046860639542820571734479054046181755936389205040856695369143922655528605886822494150532943000918692334845305019812243723733167008026082407482477722210012925025512767617630775896039855950854802068334937277619859498903132066250136001534841313617699165339004789174506575043138048430438006455008679601858964260000528231218434118643910744724676530133722218544884934232871363063855897407749311827001287889096755488481718770492406376420620622948380856115392325352415214808976483283266373125360691250549770880486908612987519574144752092205810713598571113027970925447669468042877800995316018680721346010488947231444743061109065771997364324659389131795150848460133242593102117370756830960228732994952127082708240619892928269833836815374467157490364736792634612148584950421052958826175243222480448953440712421165111673573619574111821645462958520308644133667518383482398555825792484579412794550184291546059191461996258431654095437178369940937271667586666760295808293609788067438006747350578013629993629651972651066023513000656165264083182878966419725789631223038846756800235406713511830862687623747131980266512640051084607497190800114463733156226403509077253230460638197327684906421988603256049529165726231608545972203152831917633369748455053975761560149063717968116094102765962626745413574457911296735035586043819791524810856828682421985972637925449656906242283711833379941807945995879760795913376735833366869642942159813608491957558269211257036959844716245762273701805058889618260090034809393699964545209481541603994684813960671066568965619943588338078079388387635986433675949601785119158922335390548029097138403000075880035228520609572919745092127476433273109303241108868072427887570112970109244639069016344410607933499852889561277272212082795664868910928050950623573413001631541071408459578158538517060386717548840790914780379728084827439210609447791462253652055717255755849957040964913757540021873488937319241019234240474888011956285404870883315910343622620719917085604935063331889730598264180048416049489001696514434084110469967501543022111731916843122354774114103335936503748068386006928430869703278118267964894672161948962798367272194771615327479277158272320193217692025671009177267189917426609169575917179684520995604728471749049617243874773551509464738284648178597732926244148191209016667805657479415814260017405416543416756810154947800339908343862669169647401537227193520624093904749793629125526283338832897732923976808464932783630480272784431789851435069340093978685369329611438769847648568848670071773595751916936879013813369626040375270773393342619936709772550530471217328752369191033224370634966495212252668293842658592184382326682098839372891782406860339291949866842278026573748953886155427214330675262672421850487778558179669229380997922523571461836152669822205352254846278414111163947384436713643475477542092516836546271219259508007258370222463963773129671578018375594099447521834602436853767474149809735950165583370469333333819057492978305507685892754680050480168783896701446199801182872083940628069856193807013408098683796987855608018958792030094490664854435557968669838510859245572751956899683158497934698441609220722983203195062841110679286181581929571445681797146203875003409312377798031122028698461117697011156891063193789203593294343204735292597262184894979473298495763695805533651156457397948437138026267965984488397751536108349587791563045584007885920030647749417536358643390467118656279049484354416029570699467307341659973857926607614033330949873013493290077946232328602377054616723052941975186272281056443935525593862542172921478466545360504335338188421454713328855856379683606591703086399265736753261943013853446214756258696809973227538162216127230606015525577538125302322175479485361460928341313156195044520138132260768748448579974854383957438404284964630364689490404926870486856287219293876339499564910540148245498976821000372971026073260947764248105895975989790295233434512209697512096784715629018591687397246456182634012292015470136861989128818893712452906811455772032360210809727730176552754789095970052728634735399099366252413654914588520260372587747491070483001458064586517522960466083139864528280817245870324033879986307811916272975289164915893690442174470360301224948633201773106671815765269633420094008682378705530942291843349285804251047708895579658407659510418412853087914622551189402382024106638355072598908866265703315791242094337795639799456537472630294013167020112971110030591881798704147136582853382553793341347524290138164867246701153160185031498365184669253181768010238408857661408717516430827847181765008204410117547009032472856085916420250528994691238449830361607669101673217078019299774166714179447425939702155093523627428331805540909769076562464638921852703357163520053319248924854092720711374836974061778269777347113751515736630568218299818309132457742347589458354880155204026187230319963479688462253029284026352605285330027394976775939946744670105831607094135316539306110133188186437045284193049591325195098678530673103450270617813894742334414031175204146727466692378602311153598148666614206778571191373238242464037371963863094414276755285454232044562905088531323551939737401646018100531105936626222307954512952213137092865905452332029415625856423899692708881744187756060099766857846867568643609438394327339620881030433032954942664315146778379118658450853832864726272372423076341229570187598826786495729572784259627952838690207382157475390233495539149364224289432186731058854424443241493857572223068053808950810233468604761850060058177308578708459421282750635278749124337921290796481835647688980528890014558626595694062537417166581702338799408338366336955526799093641507337222379730566794583477916823006350975884504369694292355814059232174341811421775871724130145543708329339054569786671223482717960428719039575586078200484424955103551620178141506219683613122104712058106655113131262772280608433415515742024322859210704363696316066635144096423292374137710411056838338163718726927119413136781743086892756472461254461564132270536270155073641948778469178284123130059222263494541537316587045986218950441510467357554744664165006398512232754344597152724017012049976975726736021073262866830384879983056944298113654725073650336930388587669183800298830494744422859426236805248287909464819973537827390800277620980985540963952364649056371523064109433678819711518535394205004258392265487574519568413415659040502409788602084352637232668086750290051796526216961509664415334234637715040095948217177576439585187258004619245971380750365509592911021784379448061063128271919072864291045926893491568035899474509979901376448021142635290254710199353253539595072018207189382554832472507072915105016556009552756810656532908003105272702867394239934308456295191002345778231798570266230036857475269708028845922232505898105109741692255121436953788007463140691853041731058896915745655220063582646661573861708224921938954309742707958478573834304108188060793072263177067729003522571864566996626784318094521300771203046782856905706310576824841224877702976423504009057568888157497380421864343471831180571108839607212584284906800649441135665757644811565404266810291454025632831864162805735651989519324011534375086912058124846153436524553581733570190640495632405476988033095009605505054497038766730492250339375459579199042070094023558685419776464218730635566051330275632729310127932462813553971517087558878856227006408827528028616076735749579988894967868004587328277970541929140775505286786954392671973586468116621703153382393591634475060714907723500361841269544612273641106891481976924306424442948426002299815848833763949779046158465621539556038642928513596110245296637398746241940745075718645323654738196287985369533315324075689708327415081082118067855751346672760390009929885932839108587425767623599705830241547031024133646816353457085682680616656271128678495360124263383829459872798091026859772453435311050327794813189806975234691718005367576101652600957256384319584374672212192393237652244968103385401293670120047098280693000723098863344920767735591017439904208909839507449217797265594025749686409974854216684844438945406517801052544229436108177214994436566994086603446795363935385186746353656873568541233292065712823385712521492439476916754259096733483015011707178397625597208937040411941468108297783952411213207680297056375611242036646293198796519680730782605677380536599630503622824961628711108670151686808719278519030558785079823668152876342301298519788585503711869768525049584580100107201608599180686723520950766477913591872675970706834939157082596189546124299873042564103447257064697381296156367354547109436803970382702994585264463922845090486715939678342458319631791782133519249624689457119282523920257445716575080809680273510533964853693849381535726464461716542105156829547987587795619617111542711948743099117263243972403703720831366164976092692276581733361284151187909109323231190365281879248862415520431481529944817561228412149112967623218842585799823286710180958271390801437751095459036413087912786619229169155762827108225404761489065963020343991187134204847700947583936440338053807717003890628010683453851240982607193454935730133678496794093448671615602581831699800064149975016751741140637134320657102907510145034747170018236786080368030037428890819104191442343903547397936611962285063175885778972413092527852907921521004512157825318070579818734811821781460204287602022374262666108493856068026167367565382761633563655189330963122729162932092915719300813403741747468011564951432407928649085237914058731976035299749439196626292528911837675519801388940815065619204950057762889370235974611955959410564276427757544171775354097695468951239716942138262235137591607220798216329534629320720353111311624298341281445391866400044370922259460186222427459575167596886143308605816823255594791487522399605361920405082886843956166685720666338588634983533234949903017338717338859056961278887442569300471072009467032058138714767298491672158238340598358132525351437202548686022166314081867255097157706259316553504465622241185417681409360491243658488806703873933774159243090408967784168342420018502099489656826449373825827595110561565090733753776527722454861362536846499570246509723968589898270444963454685541335725285485538045514520312733349473741278140699848050149893739017539441345405087304623648025662150783616327906038065551986133831332665044389679548019489001123748499227238242215976707762834713264822824735602065621102879188444939645941183046476862205958267579210957123902881124138758436668789663445829648873148304058863916754250629710058745043979199137566969097327299460952577655206470843494021195699171989783562060896276773986059843610420240390250781903896933889860615495623174146304575775725607190448683693951514341431752170158399359867178810907518653011502547332951824870574354649687407710446752268372502960209122567359400445355095508945498725987983041459735084840307362599419573121140562884261131558315319198094725062639800437554310851713206483266372043223629354342964233779284022849355690307781611418312586616975379768321101255821792993650900107674849587325170629340970077704288275221769649281872555656976634720108693192266886600489092466260570268336694857783682302612330079313790819000156299965359443336486323792669425280444976964944448625922786793905115352202789487130679385254227877511144175468517205055994250497251530596899304051032472759957728138480522444524193993870395104311976694073083829178734051974735523520101083269924372949028674369415952584513751163960818158082139736062635363241513047099284785726339259217354107409613289765766631172768257777419080721385230013407059758011286474638135520736959828822970236472628660515083207741392040566512445490113002049057027774972158386436405305034760935597213362012200913461583303124073093563014360800158106905728582174456348121213666356307125383453271385235073929074629122020276812289160380412452523665682875333812308013341183029154844548494922622273514520791406449571308975052556582385598427584117022914956095682939795790737073988531731390572206080914786288999153273652850652974457783258409549266883512505943357344463562246538444113680405024464689165594719140868506130560903122804078182206914344888701513438829650094302526647290492255837362036672775194134822721472266917615657002204094544184319083121659411337561822103291335230829818409254728931364782755617141315100752030053707175646728501136374768275949673328706455868089319225700604481107570502390176759895781364627581459173251393892660085260951852561217627518855195009513224502145458058648346144837578981258479239411293967649986583230530111859006226662542389868253552333392736848149870862592963945165703111096553703669234067471365357911991743586766111524588632781461484594491106046897120320197396757077016024399017874114662537118694880474347838073810622323910165210030966155810850524374577542136395512455893760447869648700902122558332924028603132135839932966205524081534880241667236634319534269074678040942303947709308683417527980307803295849128106792337172509099975989983791095083431401436646593551595922625841752178641019145500091740978609884455019109618693597728989136223440367890555146111012642425549175952717154187146428226131191646745672880424002324973984137352290541794041523035213823931309197309658290950550318554031424761882048145011843271870265030058831531888590854057135733110855995168158361951731774866828421784331657999520854092085521011285560168685100888111867267763690975037159074053742693881265861759864486852982888774175712693508208870235402860136010816019020987852961672123201822447692828061866822099158634263656394708530680523107341552551420268596083756618705952770562418159725561875446909062098833586954675209821760633689716056110728961412626055147578639267240857011299570093440202650078966048850574197492536738655648247609440145445579280538221669059069308134505709019142981585676151206644954253230046440216087235262295597557534013380347148252870382438434116033334569827036638416081304602935201466704581187959471210493483283192661871522945457756585563609928659437115818042879373421562376666223575274051872477620207839714502673161007377099247729171485635110651458951621021139672216595016055920110818748138494633999654046637194649406705763424114071143696328706390927638625516798578694769265005360998692287533017665239264677196338537297366073242828128247910136692101673207615347256041307361004921790181862552403476142273855233701171482417127424774424770957536595895526799887609893166403253544020424539104146399923973832716258061091977737764249662905703152629458144328297563106564505591493250563195019634108886182236013694141623880986302540193496544187963087468068142933631804515673401911235516236714905092330643298690016155614317999251703314112720654425041779985898099343043121468538187354368926860808426959458141456892602110769919896610385987284691214466943542758906767107152480829342757344020392001673131365783228793514751966051361936505493544271906197095238119188221741701691836423954020724313492634130734825624935031160041587913220971399314591700659762013738751442187938576269224487032081147239979776432177027113697246839449708007616928047828699680268066245730134474019064740069485854622715366327327584735574804432920548988406686770568726980951733417552140111932750424863115685238534328925156720793756626024157159364401717878380343920146357526263311277814860728071259819234575008546510913783715820140578775835227590356819122224901912388615493500516031437500635077249538055692680621176631115441623057559604664726337093925119525030843721421342778904377912504982139206648995099650006870456917482475978548012377518298783583867020155461617913645316778505297746305232410188973527103101829972871505275185357871750325251728350699297575739355114804142627050654345789443455271135816131863693000473708678260592795288813086807324882547462645750148788605618763512731063840706980908851737055969278018524926739063785551819436324944439730774259667729958982516442722595386401105756853227362395383089523946942125489418003940287845354696351919101855449490458025579702172557317350911665544678942671763763605067851242634390797984372231366500290993249706423284934134889731457610732489581920310295885267065171352230712581499787586662774977047429348815277936154323232041791935768098056995530365572947350577517000911021985568618267925757723043006150453302570418652143587988062312466609119359616236272576100089417808023316151286287467486812777636277275591275897906652446262227285817332936763085101710399133452476338658530692756366747351197825062200817623758715277547804933878893219302563502006246161448577809056069946818691918470256405242822829277509813073353869006676964833035776268427161070345529260786770287411131433756186425099732000254237349328811552652153031857744885738296547389711192808753075420714680350782799416398909080552624150750654181448617101340189572489281791870853377504093144991303380319749222499639837938456137652972674975573413877654220182233415458058862999995329554483968652091269219311322457926337423251376122344013468159116817447853844922300102162771567459041167732039901421298650978431163987224376379347858017121793108812792698040481141533855108557350403379179269422278793973142167192727466603654203286047171134779104497289813028826577533871354965632503587426093240701322817033596579147072755864219736467204797907789583331381747557950773205616407674326727030121037941846122932479196589089565254423089990890968704461439835328655294675741106842412433994466889234516078425558217381812649054940405937597086775766759334359913547468240733507943044202360324308037307773755907121354013737399471630249311698784955783188407780515713580216156142548942723823201100169078975874532653576906002942140997225365393508319093193279010652406995431300880710222966249243884586240372670165034844396129320330178749251997059595975073228643748863520413536807460966430162475874921041633538066121745328458244585199857405657640601291273707694161729230072509896864132603916079589047751746389594975525160869825750445176273448483266523869981421801247091691555850904693035046843447785507716430875548142962818956330452128639733576767742489106722183593394075764358838163606252171312113510308038946522918477916764324981071209193316171955505188759601792966651294435166883114206835933152354641764466748101421539858329099140716721070367333962023166024327694077429672593677984952493671531345225539792348551880062315069326741839770847740938861381821134947312152259137578773223448814456816782720480429735365775758199554493553065177473933313037079842954662486931553683098085630305503565793491422569265827098923235931616480847071463900707532284421363707548632660961165683500301822139269244615155057016608751507791071737200347785135494169630705884716419722225787133738078922083651059960451365254889994197093841663977258400483270121236968697722683805222019824011447913065713816766863774828165969047498859884143273170855934093053041996460702569850934974965050473705427904932589477996126727910389074192374611307169716693975342100296280721852744683377363033673764076447979944073943096842572879871453546226806062326696392469648507302904400759922521723737406347436455769797202243203283468001401696535970956700821418712046840166958355143328997702607081090434267506826696893670414228497189284878391073241109448353687862787416558992359256156549936025561069508830469278904982073621779443036433359089364241886114406340432945695625284301616555197691917660562349714223386503908125995104089106955120294896666767403204523427034132686986137904491801836971662273302517902322345224769896558262210922440027167749608618040203605809307726348473383761419442457933154431527968372187662208405467502180503191959550570261944973888158606256258315103537081185194424067323140499468958100730055380335089315754992602648971141773392272869644930019668609669598678158433206861644096114535879089691047044011168504614312099394335611446741929254206215177333435651193293595540951860598450065294806941545573734010829268209346296762915328210255275579949398923229781448115563759541641754222578859515584977336151309127965893920926807519572178623933494937060491471837709312565740643291442180505215539800192094794955208151434021053278736755693087762202074225334299084939038848134486178515007693104142222205352911271642304766299544013659252301274430260616653641513853440643085655757259327326667969728046535677738845780188689814677568833071617268156660869461242809012507368281513813478465627911615362398488938353225821301037473013565933094118548358603360037022220220621930152848015422001514761092882254031381904435092007422946124642730584670590542009617443219921239282569357973412514756008813298142835116236492938170433324886896518222108074940546637406024337696600584206710813035836967467631231450120877297850835201719105715464003219046439599578318348764347002353230499355513996317231608777376103767401033590863063589748826811920745315249294176052217076776350101970148695041068288876294200314180214838469423210074581265072973133246867980173055156623255495651026356219583628009211483872532857215671802881204189960881548468874916721271796087805085414995209372476790082916884474535455652572136407265254421273604730608627809505662928504916463824232088190661919285102953419000767885726941163504502911745879375165651366542850386761153196158580471388241644419777078767938122354971283696071935953958839469505772747618553831892454420594272811713464072240750918108693544567292078927911165432595191576584524664224428898059317196893503232226487911011141796172777195966733707385816538187616411058480961059809612486012815127473531647568521565451562573331404590728633404302556103145836687056274884609612701755085343984355229109044557108573222329078865243633106923643914988032221553471130893806461848647948551318625847020668588365640166925416497419281395388375601338842937923865457453325976235499027318468455930179759410759700419841645197678369441782530447691362670472834778107611550587392599903822226713003496636193163513399871327521249793612391989311941594154082643580513397407105220244173867260614040606854905341926967273835238933786303356951514777464311298998495334768603960794158006021538414046594295564713940757582952442652687077473677126425593370918517686478767359408842509714745080463347147852370585648649238823957443396516764606307314915421538575908714548294876404498728943507353851986848466921771678211507992746927848106110363290953259647777143428979583172104744562442900968687998952980120121417732241476038059639578841895631916959155399458299233609329427159675377249625424352684499185672388998654732700411393332679547046257158221600248074798281272832142292914951784946026704030054064320877879269820461125616904089022925365132852180818922171058295596721291325458557597355316632487673102127781150436288191777818608844735762883855156766444601187081428979545869609934746391155954179187497279290911541354655115801136188733213670829106148620794747960657166215581721673130887888082833922214462912707962507304226752362355144609227389674651109861411765284296718492806866538386624477042743366411742770218267706099907976788895560818876617416929525510093218648621006664840942944182517389473549265590263258949940299892040145824218998671212750855538683819314334508126485025299266739715383949179534060328601114911920108453771620222439908483696147487728051731074242477241468166383021396780004111680939105984547244166647686126441068622693113985517072012628546741723409168505392368747744681995570402576184096372612649446006550643479630984704494754013541056889029388609839945671297022382254072802024382087936216682458020980487983574281084971483668610703236683531174964596332257623045780709057635496757329808192367366094485104608828971000305029864682957601736370154134344587599841936060887912798842281107598254003890007230091258086280326596191318750217257284964237407070289974070630924166977890508172205347502632166964143481952909815428229703241313271983379726381772518481422619717998006501299200606181850079269701056728856684602469486422156527861544166616149315876885743359263374453439748689307307512797352986506637634542930504144129409104030947907022554999839348546860388095631736522098396584939414525841041243144908515067686446003169741650342739623157245410023265885354092015066264329715573212164967310022939764330606542892932368382755911917262810185608594312008125247423775483065728519598743550282036957348045908885310220553487369944009949751225201595316521862252979882323476326687510179523700888846283407947419205730942767921987305063180943883104715628439437696452774152417219773885122116154325781270003608408599902521193619030156845386360444634400629592868710226846497658935343758939851558107483449477217556999444776370457733858969065600179432071385324188701650355017167843604042127596874653964333493052656859547262558126184522880864425523716780520340238591930766350700471720535272455369407318821547030724708295443771662322793584455127930155802334687658993825770910942793146978669812807962832998080442783929717414373085686333967474791792212414081577195835964684331807559116920566687450780720570540157552133926756104854079361346473050196784667700649089878956909087015607586024484927050459011372218471963767989441076514219460404034496833943127511595803649346408297081418501052009646957312625756682679907424556605141131103287814186391282857201501923513705212762968798453567492997799633398172247858879200930276822751511525512065512515697924499856329354867503535639000969381068980723000817500538531389787865359958749121308123122020138435011654498671272327132065087109155526934687469988814897588012575889763685059279388941706780151937730003587982342138604752286855534157259438040975007548905700724225864744711680459087144261859104794404332851976195839194178877372636656577534575946715723375474867198086738725668284066026636629939993392567367525591952362295947944378004149747698369555925746887702835099529416979327672329085955967764316789982855487379924388275268137805604663767318090872501333205558254178476403042984656346296509217598686624759902282858533663911023300803521204912148302127466561604722337509814469260580561818654479371459683729499916877151765570329149788997962348037849980102088842428196565709746952729646731685311950821270665009229435020181501320009443481675540110868956234989996515995371406822876549717305094772675816317585545588916582881220767497891338886180565917280398925622307502497772630376422722314115214388413304930024970860229973590907679479244611086847469206291597452371923853947651875984664077042918005932726963195393188646845296626683193389159333094666333644392858775244323116573794654552208496325703455230913920692752318121358799204471942895579724418460410054787317022749223828616064899144590037961430409311467813959425929172923174503622043911868215314548040391167178617010715173023240074975603357965464610117821084691412981414384221687505807924875884705932529829534468609362882320452324875609246749047670492743253808042540613834432825578122733743612099309366286431608978603680968339422390445491928786046620205411153289490334450444443995325266450304490061394077798881795759445163104962027157783766582709863777209204757091841497254614726081898588376306063757317665826759008169943958842224175369680106182624910936161176391538658271889165993992093192650359496732364112637423472496750797823042776249300869548998324097624475526895028201205184511864756184701710919095130449242699201256775710300272806932806527540261540350286014213789254872020892600539060419697691602542648067714372972564006981502988114638541618706428851215194609172129242737419354887011654578687309783331745925282179324945451715937695716010153836890345234857063243745861532209274488156020527513564633213502968753595788606984246279137876065111159744072061802170500536578458485807690713309820007437508852233580141272323878020879872779343005446780399280785442139191060573001846939333991922441565799867451158643275230403828221670852586987087048918324850520631224868529726402310211595102436035986868473339317806981884912674466012086831922940887394524820117682833672843416556884365231484942338247317792467204456627864825146765436100737285637592320230703536710240781413322620631384540953588034776087080178385974702052691999639884922606752721855501915283347434397149810836556384187800192635895335587358214000225979609280335243100963070995369997102930156958620701802603600167235729547377897273542344359983323320680592099055511816941610805143685595881120042357586030890247150422707266227226064052179079339055072303172748497094434164226442559021137384262454279435181272532350992289043251706576580286174619970188306377438788123428669748177871820409491924026925649826520115513252358764496284877864269871201150465246563898503055978858940708476319534490396867796074432449508389171386938494311433391779457608674021353727735451383186533625955576815922556028804269383290356623516870826350770160472991559682025789075265580953239648643955476689908838758067172743173754450882415270457739083587692306886099459911474535921170687897766520168677497930685929166963236143126432538927016141746174794741100549490452615789183909835807173626888235435549563941337945436029805154246429601367301889403873340603372143988155750347053533595120201370892041517150291055690618495596890918479955323840593669917237831369833781222429239931191411587009288694075329768102099808357798194584220743178066838557282980677425367742066969253985218817764968581509725902812157816729055961650870948142705033650664775013990377298452352937308752275031000113992766450594588430691014063117751210679973383022004251423844291195067413331566647422910512672969950437651460342714205351599426597115563609243111880152868619591927401223614043154471212163465178737062838870225860971356154856168904831091905614032053388386860087696065326719133219049680021798124946008064152711269101034798208794859593763893156055067813420008259835611785472586130224886374859464510469539030696450492648314220902992512582425301411600998690338081175581790012817635337822932739004500274423158645930575445224698632199695678121558484196579867426752639305311461063539192973019947184290544665135763468165226172098741406266408667064595627502969989111181294670158708735919273027083763472748606212909747156391012165977431199208715364797946309419387866691915818108030138470514775532030167768934810645068281356275582509881616619851140998381633789338223383256127322894497249570164042655704402938455114639955789922745652654534421659548894831823827286375840641448917792910481412382860852978390341184111217312044697554403608966069241082789193926233444489642861505780361951114264558249149702545481042604219160156173196205661854543066619204988189964291875259546422389110978557986153118908275754448916855159818358387305029260147181994827366131401444370141800497482314551800327066377690972292916210416117179732047415545699976400254832707330400161385191657838727462612822086187911873213652298931967286090639218334788312892773731714606678841916549501788556651842536513531443647058204406175750749100578885330919252810463475374110595646200125854681771892732836080558876410773284811643611021100857081092719129249366544314500429866436861311294388977413097796671567885492923173064947240872122923797805810406012670235393068181799521418396230009367039614012120464911000804940367507519705507828725237890687488564759716000628881260089005354893859843164169325396437471088091312690396192026150755984439282680125753706122105039878844324439107563933349017894421355335992515059989789233103402486912609146126352064538259796063299729196342996255568829473441487064983947185145048650505909282803613982568343254048095722397658400373018433365126305258484867021555935726330380434931197966883396373011782312902347383035283829982159464159204178880330371203165212518895873279558290894892464985876898470373322041979903362870120347697629164715596124400919372212038526237855571730101643153903617091095441109375275456089235479809692932803403820466320742725616004412333145160746173330487962863486569992200082623353951864377789416933277132149383098220212219167872493367370632783030739608450783196795371855519718056180672375123982940785294992261612602068737736705528663851665671938582848964224840384402392189157384746171112477496536555934587051879104113681786949494081345319566298173965422970758566971723835054629142915902354493978374928961522166198889668627829929700637647681894898115304994110759099216011077208320836924639890823243702198361063674521849149025714610962492236100259588461095004488339236071165706812583400672997239325769465761921482255359974170697911677645203277349469351740052894809290743716217482758768135925622754633966317737658281641899396798450804567923512555333160553510667001746526991274576653253010874953852729176318418618345191117259321325564027900371190227851239447871760329626319799875350750872591935198765563068688409256342375222349309631174075810720240807683677011139420267329876115299576838288213281534409002180087697991361951451044138268038686627141352879920175453737610462503754209455007784100457747440562581967061403718866726323496845272629101186573524707212590639372558892092157159133254285730372271435138858523502851068080914338184271605515890354260801895665123853196432833486261609286380828040602225428335076629116498660475362411028189000095143191194991318462572752171041978673430967891341645423489276587243373084491415611698397481399809202599711741308753205286630750140065499742450020051159415660765517361082515081511800481838529656616494442746714168179452572442621694092908967768063340264776428771155649475031694368268087425175983290020392057306134006683332359332893733334717424209415258140784891648668109359193905564623844972073398433426483203524363388769875955672265043172342048566822029973344718487749671420342847239779082766067848911958625042907972224139684778852467713111681672509671615003527009157434737441642021365054522755951275969056142484179675114173915508085727564670297222455809268008986064564453177685799893668914453917304713341036127677622871727106502286254592397418357943961756292863929479270031094414511426667288738318189586068851303935597558201593974382468405225513886758587136705301993392312156867898385960632741468362269894738460276644654753706460161136835177574274013523267864832543553793703627100663917969082369140314452443613308447627621318137712709013147164496966496887936326124051556807647490421982628249459885835562220462748790745522713480725367182462693416052489177359604594544402822553787117481964948584766730996680993260602857325892604267621942627665081456356244604758217099195220505477872428144797100018569715422650273494253283542195300717106477955397925518391823638164132984240304428895065758399575583936780062896081421666141715924178945478806481314478830942725465227645914428583479375394467483950075422398393263311869668960596212417903374845409358327056574275067172465350213120320779887637429426745757245038506816328076162783509366412570750017297799756080972248639204830180683222782385039830440839513347454717577673433084061536110935789525933335349477502631590032712599254534896794551781594966417231407133016625973739228051489206560893311026944535954010787295451023017809827656282187602062651906825498424852724747471214923166174005729453878458871368767648396319728497417148215042848636723178852042313460720282397034095248698719237946256068710413997664099292860939700239603869031238471832347834591878743548207572884040016846626855429029594164694083828704273886796696950658622714812380886688669406686367948499301944352236082511017637773818222977253911234967428494350751863206597455426288978576795291604267158143728786623499153081847138764538907743921189512052622199043227362424952824331910459397982576824171349509428152225539333644603132113466115152381610338618524959495841366227849348078092907910989802178045908751552889469766675342130346419092499367135993328451174004294372017183429463680855654887212784026605941273347407305836383519991431303958450825574581836433764056683208026692217551869459073241808308904625736482881703044734145494514906994755498379408069470458302597928306113895867450306587918819898937783382302472113462346212199313882981524798492672556091813650917203664786410557973879492361689981392647056552690458525374671627121289114822947238242982725555101263953474173236955566341425348901391639951092062411538848032346632517298319477834200783277773177462442422836716724892711278907337711259430980101594895109620892431388469806407420333622745066660695513389947886440146870937976089742637406042383796004546417202002949154266197095282913686311991938432401665856230804171503297348726620574771104620119372553790759287595547760234420785256014291793288824644147804278897311132665349850331095495686363470876772203710065691290394512508248835604399339128915311497926370225620411247341245305437061902067369119897028202973123949307369409794570849630324936138385012197901791621072296972573482588518964704693199533401513086673950131232758523529356267176419406285059963366334462997664844144920858491227579536668227926589449412498189944694763377746271259232971580308137100903567941850290144415285364014361617164394457560565649817102704793457918000776312978467904484582507046938404410424563174747758797124833242372199317582924428000885552493677371061259882770534090121149409965356056594675185728608323504589311780830808143581622120433049364701171385180377742267512513111531822819319710183834273278558670364532171681824102493734241379944738945078033110598034123930912507398990142455901329666783311142543678046829972730901639432329961785572023442809797165232920877689168992156440366450295086907891279850860419758540191639870175515459362651812983611129423306417716266909688307312233049658584281919364032120813969104197329577637165467297415113206574094673679044165141069685548211330145227126024467812759674288805296919822851607083475522824601023621569461413536486244536028319435652569779201640786836604809478943312664177128606661145437488877453966697200013186619679383156882039594041909618155896006712022316781189609000104648365394574367902159155429526159909143165976278244129180315335139345105381516623501691698344679041614543588733434480663774773128443303322184847552597366594926393165866100393756946680867750914785494738468139544292981819115742214658958334231081569549936920963872332511852649205315219960784604979678920386209297787877798855402841598847773087174607783321357026329813297893573738866734584651202255838076722366046910148983970527416402577331511182139646436068776079963316411677198860647988063336594108033693916710249277236785518320044531141358151473433568993881548850544833349794896127642017685474084840194491533871501942256131629046241380505432456105315297173002526934293172893216506318118408639706994909012358408809788246100891545968643747473694390779688550933248626541526357735545242867987398329857307220595392783047740690545371304221593138340987065238657464971090051547101819119875135843174242392344031936422500605233597881503745744614155123837146205552883486058312198387721388539282136141909118375530696624596992390454066533126143681592451563185873811594206373107210549073141274254204302172980086385437555090547854923549443508903373185644579977254014609839104134178639630796760599830295015960405515144311543370833887956917004389517718922298140268650950125416641242270970195898878719969789987666755855038718710565997732461476472230575701783465351613835431499771412799192357921357367469099278136061879241689425947706954160141322562413479934802850843912595323307153050258089795500764105878514301689021742257299644000739266254564695287772453564496277795582223745042735735560451026645898767342457058847058578613799032213857363857084235981177700846066044919350550360607126849257332879796599686695547330441959816734757915847834882279731483067053463463768005475366350343035311080937763710013495392336676256165466154470279314739044747526660705214056707071239595114180493166088267090542416805456722478709803779480384055668782236887064377189595710407257574936835441388291195216970656343275631472360153728094266692148431465674228054243034793000992193766233376030183687087961987903007000110069270197139050787799659327218049034461515688351596032943294311600298092427976004691478190874717653613141386341043136761079000474894438345731657921013547773735238166548927470446886258899540006371813384085444334199579202328667528043087801725900915274721150609616916208538082463454967835674055208426556605007365831584967753177275510262987947468833051478196680127698451106928916167550480602430452790897762514740849882113048087177376294112987671441079920897371296532797040093544393645750702721625381539930439280222853379173456062282767060623266576114676853555164577590015870938693833347945864565662360602422770059845036202554453252132121113670160274022100165786042876673653491642015570590964325172731031490318811375242298773722558500732632143785244532436753367949080418380820210005048597543640894277773628463954220747607510208470390414844986813805072231832219523501678013093779638772357724810687681158455922172303461287523294130826289518020387112583374201242317215735539634632787891101966024540438253767462685615437660671860709762707474679761215429263940303684203107473414530303396539074371312996607234256975559482075825275812966154629142848868302139321921010455667926933653383160931746379494811593469309710953828944631190849101136103356469090303707259001400004607656539019037834355029031160071227907027877991852925208147243579622440335486719838722132586324359893644242911382576851347682279442821268030954458201576443277988217316012059783818534485879628447959415937426508976138377454390569644640764005535631328262438921430056190643971725985925147350778327274155362612404830239466907891264110308363920505410197506637930506535209032931959632975421113465696231156440811802451063291989713380326175094732201245450172094793723444046953422744893752585723619497885221337412752166314721558697782811843569874968947149559793980059473039582536968156007106171653328543535004425770290173710821170538466045402030949534549286869201406547871800181342686265573297857965267418659337247866311796145196343476088709570091038846105406467682402387759934453491652753690456352529654341854800782439304084387880611618535123489457270469355393284847657463697034610453821910274530483048656085800692051762424771128973774444333995073978562913436303285131340054221042399738251736375265268244884721678913161060799774534796435841163116140839657793177490183912301691956569920645063158233074643041579131316494324336683141147997331551729310757307723855914412206389600040510910272820205528506069188727499933274095058071465677345284680738434309394312919134398938803998168858752929320862457353870647389435071242467327154878590414983703833631973708098621177061620246170426152430993451690180700577525589444582585759587853305728567297008313778861154733945001295250785113753210906881688078881125865233096961144968882859629277151855121838494866231883155045025522066829776372466669143635810460181512512715347908465776735390676376483054079971662654612341403137986244362448578500888714188720566426144857345167717613588580363252443700694192732669915844219396347926375959929242845468707814806810470874999450032314085718462314235428288389372829822640165186363839288589442756858124704297642838074756065453388105712608894553637537263816328711112411773004344415123243593998484189197129281827641359537937770183795707625252521432447329990127030148260226599881747146008872445847820514647805955415563881662284932456791926517958923049926928669535569093717777537312063688138821906583901049781433894965470706978453677505049552998287835976090314167096634845042085293427491341371912115357071424169802539846301896464591313691347132285946299858758980306537479632076079665959460502409708006835826075468680501645516999927540471197567248644747634683894742132647010685712540883819057762472852116593315646275875864851861353442935539986555653157107446421702810616545070108719028230995149859430620654062698828189949921347166641515063293306406993637776733240866535303089819241172294358281746702007015669011586744437917320160041424106474940754111297034944908060180410842935686925136672778534938097484970020378073235896902163920549660490129556029432193644994156186195112197107421755589719022388810331611723880034852985734783512841925050223204444214944513013580774311699636191982960765103128467135288247274309501272253806173098230067536563918242061956315101734577460388084087198262649423771936849268792759926240678061129907762920361114990639094674348544469577292368111012418747214499534097722569457907303871117116537938718199458357173879540666851071245119966354409873831701119298656620952582969978617708371357780583088808292773512645523754070803936301700376650726918463903317178276271315043971251346987333267586840615091048036852790397284528959499632680383321793042837989735549798641303297454571517456568038006231488010652385552960686141437561115173421618154925629582223092246482073223486247816413135579437726929761230276205788478157383214623607808073697228379770609086607437467929919779803417379106558767588631080733090234350019574599255785535840848746446377925393202076892461290578715263100248810869366042045273387407293891054508963736721723649293196055190745738597687817815215435463838813283426001523767523861983286674113075744808473236138472000348635641310887935260137880308873311687227520427442864473139344857529986372739719232834982374449306710571580789138398983086130245554749449238718803121461148369878532771399703239277678797149711185104511898945303791831888565860308409692731184865278209881877576239669210059930850282252010345904607607894589425687292736556131838567348184746107050394162099515226910280764893479785113750343856242971963281126263454733104630596251812249540520396793433331740319892624279328384382240019771083348428224317582361209578552366502492846567947556623531965269355405483275051553229642995282849411843962089021708395354910769697087327901799231943774788971458438211755488631782699924522440833343379767034597719277984884434461788928170059586711691007864464328721020386743362338025369999745991724589300704370818182233041935945630371679941760986001422579231365748686274349038393747115813485321208811312992171808045817472314617875454483968324794829382718046079437881955281634293759425071309983576146251414386246234740410285345330997777819080481990139205159932768847798929887200996145003489839158113000635672598366711689764774323795658686454906905617233930268298197833982401733390319439642049380152595762652938574986581385618420369679010622102199880584847607366277622718140270032854257998615683747048761225885231884639166753105153053190695877481036117931017751456669586485536516487989019704180322698325605776674040550080728944627066671291347487138671007502719249797841283100769447208625628942872883868215321935807668707841140217056864528051795827410429340549433555651180410262659893929699525898345935091796638741068311471352687008103006420097853215411164673410874245484260703867588522386702331704906373270932371078646273573134204584794574750582214704505828086820174191127007898730570801177396905046769869523955450921295494339438232513813493547510802906898392913606857468426137983034841006532924765954288212085370891836352279000397933422544132267686301624446726590232271510790057562923480769159789086647242133971141654316828536704042722900825589999329583382438945358954554376384924089372004987538076209215510513553858941328714192673349034075401605216130325985618955633577020113497636346031387663975305159151938770369276119287306624629933476649731132216770573383874368265129409408731100662414421344046342380005028860274054048730426985914433607570909672832074147622430554373646572457171227787488280218698900362510201728909018016747179623331801248752966468699032215144272127522305136103908758545095404683465263588852286955343913125760143197353580225938798958929163236097165796655196291790456563983943572459134773270321794109885910593909583907484964129884348120190002389819973249984030018484337273269796321275289704668445723338839044489539866146001916293780084967524830339654956060551199289843804835458324319138177581388245244009561249957303203337632623137087452074231711443635668402772184651546626673148364571795650638158958759510960619274015345130752618918533957087375968513322106568738024160838740625738427286248664067888851980614013696665567286650301321247704404400369155260491094525732210217330812195742360627988309546046453693593932143165851729152391181337572466962138309075548511117398051268820863546037849540836084606060878591373158793632368395940226936653863100168745526573117538825812339549577267016210579458541501323451860985487567437731527417172666945122342854655897003548628039320475297704527909079071954471232783321169355496955279399378543490034147127687068445723492805276877998574783111334650374919932760938104915279288954754702946854496033428924876534640751110537088196186874929281693864527307589276050385952764691267207562460903262670909954828238172441862937142119814455504586330608036551824829084731093997319918451015136520286112741512388715604568741521772441520174470728274302027796519992014261959038906561277617961707181608737659836630103540166019404001140883487855204292734578174016615201827469739036489599980663577830158880045979506836591662494544344744402188897676830428597228476342315692923174942863529002170653054040054756140808754527937609038176529448263623553418138261358005209505727771570863607800156629904443630439129982337151782318543913633787098596192327980358395282121792566252283529219123792295496218224224488547730844352570567149902293803256089517168722807737707248566203558107705921858607786375934872887321765623006603569324178010806729446460815073804667737472280747302078337701187959351962787042878418883659417283710163490620500487309593414771599091978658715610954711721266449120102110030275260922788822981874374187513825680657878494532458258613416114172036684287929354853127740296189214305705965330306831470358701220325909525649817327527503314763806632315845207843626517102538482983432722954524413550188462374960216875825584947148070159380419109428840526082604520685514324497699275557139333156525699379002822789196087756644251063727993238504108085630335479443681940104765954930554752866553846465531691182844003564043515505293624140204148699525110156129922332917538914668971746152882988825979779140122353271568277301459426862702221450737813285091515674821019900077610240244289270811149039629305434174011575088960042750460613471114788946864878238922304227517012684015100000996517535451920215190896884705365566284917006147451603389954871455158194427249385261052333391378881319915273015156859681973301778001251433310749135732930913097451809583968691763343424202410944204208541803044224585761665276397985805734091439486240862129873648330215862014274194325267676831995099974849982523675044415467723690461528556125192896227612121550502126486446924204240649981862809423468471711457280155977319371161479058047193055492352081382881006772149545040566859846888636886977074232681125353756547233235720636623130139211668288722574509190890313944989002746398018166797542404039764972233712788263723133104442984655878770070395487848285829130506942624874101524645818836825949917949829154763711959435483025884428105480527829047388366490588591907865039790061971006991962771796430533547867264943528879336103042487634770246033252294292249574954406886095670600963615707385630522027565659831174526391113463667846427183497777937077133137051695600422833246065602782254095774659783952605236611194372982599204795067752696560703981877188572760553180739524585172197508379084630607006655106443307741875069350956503952676747029175654707912317260933167105025052546852855498847365814544421860601389877490769275787708667507797538060312982911734702279426185382157568552389429889283102067170051727560640643990680655031247378364472975342524088542666388088325828249513857951457492563102257386518933038395312562320249241065550261628499725774562255854215342585718669791075506223679859525315343403687945779171385580337566131962401922575655526522015952972310388834666302367009122552756772843724668284716609685244509945282886500054863582559399536012581897288906872408209717564053626981402368234645032006009261371047341049654128588382487402336727467599759473403536689566328833907599176503939734313561190791179789448298292636907622628700280979784037818953662971625419452168378971823884919974621328593642380767119851340625853878504772657977952549735239674937987129476566862620538502127876961374558979144553735895000452359032590250082035019555129506697042791075194899965803947457150327807147787411394063095842972232814462781014164964557512563484689425057199589142058349821503499636486361262548031079402245797306524965463801214400024311580885691633293945189230306077076055123970837374014911559255218913352773941280059876730342091288971417014939431326873437636296396339037167028378735825133255690874325173188982574655356679167659658913259467958586670483311031711423366011955658246147168228289494544824495382575738371237059012440685268743607611416679727195452187820665099114882584146261861959815754487229999890703500767129673941505416640718051044175700336935471853991041443081126936360025890411117473916335195007311842702793485309753451612820446161977618372794810481082713841346195128666623618948184115186205820865006529083919688819674376803594421552736340041038010853211635599609222920057702833592007292402684970093025584281235830341594853810976928922344437937867674371286031186338721305334731069445175554339598506228446117215990060206388303702358937332272942008925928694988143528680717832875561093853472610162078746551288705979530914123897756631953983284215499179970521775705760979626196723321236161636810313657495145386339769051234154246937781922176206672869010105667572578153107734427263709145394587794269765397514170579510552786374165256585310901956965569730914911262296761330834762413230858967093911443692545673130282469941224202726102733997227684748445700962635152218380462841909335096771200015558019115186192574127438771205497568115197824277043396926645169875466942964571240342153163076597635843114513833804056545054173222340000791232441589337065283365300652148350569502948183376607603719446512610021078953768013047312048413733950874894987371961055099798904084672555603558450354775112623396561667659401413154663661697685057820026350675745135396683820308703251024424084188673125910328781544786485012397213710157971061878042499446964923669204677687031797444083939502348274194696710767275904943406791570622088843350060359583373074216990249088138335897766575190197741724846962940123942015505319115529312581171209511929869843576812109993384036200704587927480556464640539762294638857256037178198140713603275166068089149557955512866873169214274156084014391891414364555478421460817202834164584056807605708118953857374440080717147279214038247897124618141571621282388644992802037570933946602652827594248729326469989239139287914592256957315117984335372746508837285473586594410431530935300758709894298397534467961578376283613522262177025807130627553059358250002723775620108027560082772234545423651158229979241037174177074246481063757445393846718192278237692441291902269607322054115289621454695125683134880351817598838410752549523285168245979110081222423764768458832312103086233573607623124852023949322031715258951517700459829879778056744188116961081397459860187259043061927536661804658386571690260597586538064691146780713383338415942199990802954231886472429381768618172442003509900997349300656181885807705660185615752213589831292702359286479347152708584021358550481295338140899267847296011101390727777323284117464853081376348819091792924888636010912093779279850375399680087745647245991754408851488804182769887381107799963425210962041124823496524938501379779344651196404494975830814031180046664034287130439983632840908905326058613176455686122595415238167874654281319791139717093713849483948078370611988064356495219507979062226401859958243288278616355329223830677499543132002496336355162572818814414977571779062081211855114866350792177926538197856204966729358009379952145970593240147703250688064652055001500300650717807024037556195172294503745334912016820396508891467478377682561507207573438955387481221788328746813296211285752696422514612091350883531967054505578715151801480591105582959468912633075330579446261085454882695781727178632916669229586977165610652594635756024961170650941546663589428736188970275147315179376182512065874585376663316582109551677020785800530711755662057267724080080655773506171232106510498547744776184741909350966710583406430660222254144036487983765984918548249571556590653944654885515229217763381584569933248408198009515956274510548942698616471162296204686204979184058208775821666394431335872267503190998498997937249960961163599756108985044184495307756504657550588073527515695686957588988251314738569831133977129591589437753383070836942166680703477303624250525880459972327207673004418836835827684546777122220359252766423744399397341398295291026576580498833010399932811124471690655258736315452784099643622272339605128942071450498775578022702821094433327126284724474389661327173386289519808530449520376234585809390084223018791997148810069948837773379869882966471191940510049216115890204507865197426660291744353052714642594842580009201958677670614872416560592232872361658832232461886635028269530139604969572815406990423804739355456519977047186409034626307456008864963094381051082186413106206953548581134258270627232076370521459266055561412267337463490096985005521356351889117256220892382341297664441723619191343627697640783042175302687750427723720572078768349637580673134228576070725385367853531346111640531330559978922140779297481298073755869664790389584758741245459270491020816975002181060610027778175387957041042932019722274650030183045485142223652961775289124348259392090937969647271070305755279719233327524270093211990439466462081107287253718034689813657050364453619167792915438210840105116519207786986782830349570074116188741076171580424254113863186038877014173652137859071392380890706890774161047359286132387640988810471893122079756617157235159862426299572786353005974860152861571769238877298045945772798330363210868457223543004939866645332280805047439941500825753878473907994552774767325826649469177967374548391260372582764617434252622156716333404312098145736588339737974958619647920597455399791591035271829799816168955359784960769380763032404431151481156689228238233016868811741891408559548887337087015002226911072774504136499201565447682371494389216570442176489719091332687034874576585552799256532480816045888615789790442551817983847073856681387495240158032184963223854086079046131426447954243486616205278111285570086632394490814132188459809166765903735275587318405141364066165669933561005146286473776322393382050414836510150589460905933518492965384123538575087556379857293866814506771402026670606515112415843141233988789722114752790202713742326292928155092838474729908412489464934388471050541769183312647312194005073191725477876269566795596919946298547233382423751243580045832451824765574853827297898862242854145023154481510890936411192551763410483016152207537951745851804847646781282298738667849564423354608516986464087566288776343697526087566375107796952127827297654945416993707193716036454291892181974463844121642286003535505637550602749671980850655851489341633933132528190571462826055043233413890511634611416354548686496146407091705826859193534144028569539473084447054377221385397382370718214022023674157774194304971676211216498137076092957426911442034833299075249567347521928021970804893392140616342637684742199663291436023590168889387562273499903908120729889090428443300713855681766828784526064086626248062868705012833584817737807424171955418753618571217543674051630536794722434103840685811230138469317145175782196618742119206918390794386575462770071421709782400599167520175736658285616757670981113120628390529142511220166801366942374334080714046507916913764901687375293561559829450962867590818513961683664209843433565375452908427784121737141392608574268079917959819274975204632317645607317905570161609096775561525581005874078856301090758540335117625349016793038077821194284182982718168270313429464019025283355347868072655205391115255554666480017211874532508322871092487651437631054884332340545194765646243525313164910182654617536474101926439715659795471404923561344019553347888608150375355671824614150832218069149031943497037822818146877953103788150411029500796131639987459205504859445032419403095207371793799561098134042293345717010387547926465822236735984972744719534226037988261323326309420344670471198158014864521942682701688769775266701223980578140220871316599640412973609880364583967385436696021468102985883718863244551875860824428475965194770415413737547921758304807953765016189908377472985940306603014900253756788476279216103663786852411779585944217779479592463331866225626609628907234634635293589155240816184393673714641918887311352551929969263685592158706708723023141874981815645316066061366841849211195185103287431790633583103404670031366144763278067914265284976344090273546735126916187303092423358722869382765659691261952257153265645959879755958964335273706678218308789949472494366974929358590687904892216092009505873824810936283730721522082159124072646279932390765791253303549387625333822834395669041031631936912772148746250515176200216587299337487155006599028796655698985873594075500256234611236422652225245784134963818563552694800652202241644814765355929620353464358951362503046122111563972449247254337918985463929643322284859605972713174922429945329156423874963258458151135120054133600834238892527167791296324768754422839553142711290203311656759510002179592061128003637811222495488106836290036326380436789146978036372658697497879485651489976180309008026825762421891370016518165529716463414877586991549994746073209518244635777439942503625776800135171718981822679155234751227296210575281730929079489398673223509786529917257404293874952299608754433078544595470070960535584571344516867764977291642326964955984626187349144078950246200730236181302842909922856641088523951735341465647480534014204088223767065403820421282888878726251481221732230122082014078534564624600693830419927174422370832139746779570390745378571703304373452943289220297931675674884642527032141556033017222233347732094645018278602994012007436988975416284498449126847027940924717764976431003742843767728246536261914201410035941323932194439325636134875482620081742512249342708270483518556167721166303028302386572669063760197110269106698075781173717446602423857666395249924929447360174384527285768588445855937722046993221641028045444847846133987559885355511012494470997660077792387575314267758544445436022668153936798898539886220295062412486605948807523024088447042693699017366693052692085525332905977949920351854811097187757033694843518383923024604250740661411863491102530080424947263518332351899845571865711651355672865648401290901894670121099047677410220648286738822130423086257430817186655710455259029271297912164769524108475305542256341115889085289382793338006170207487942423504849765338774075187943907653231722953244270054619980982848158525066672700246223251736914537887482781279357437691604620077091200058007300486602566189994175598458820727461699494729216802652972633211379063145408155170273269593049233822265130636116312766870113271485105978334858609676074527228574316561440790278278392766219204232736873632378708525352079897033886122005707731737439058385330047999940334369635700985011583025914786573111826802939018881864042732702013981614250126694921153449044889759684886139973574143335212205668354526013746970771672779383243142029580553151467506319459339753512930193080900651094776416263911108738996337416234726833724609608642388282977869192952747185655340787682207310128815040351793526848259993083547298599263190721464868415709202566731880993972349007467591840735791146983662370647901904312424902351887504433750978668643262905417861731439189142867005168627297453962150598618358986037887058121386190982682374772609143537730080991431803845376110994307952276868047880709812216747016547588768823758441623639569252953445348495728896223332355078753479872852087302244250545490432378570462684485827134529254129404145999380871288899155413438902236422075389347928833723179126338721069860485619490731095946440183575363404126865252839700383002868564318268233785487051243230355967771102525679934165687698708074057920194368187828274822096857687153009711505797316406964214929923141787994134930346938611889765054456643695514300926490625812079864833557091657429240705613454683043685710652079809698708383941232548437110770284674117386289313923614574990932315810007564843590554020833294656698160694191474095396906709458526981874528698936907667261972682198758145815765938566626338537988292935211523473097851965183063264245345374028576547294514846459504517627190911423662121486786648503592022021145473554562360659047150002629201270285772201703458920624168633018371456795576708937491310727766624108209111552229697485405121084079348287848517025848005150778506514361355080930797009987444576209037921925221205188679109690464369764430213681561828164690943071220402110740138462903768788149009068860354739588436948865682475489195438229162154279118937509177006875999783756111017974291348459552470423356762855409468796095985681377566345868490546459028597463204653075837634895442851641345360466198697441288005533051830468981414410753533968594186509239948826548312015007964270099559180691997955389882598441766381398913916831956093589118061707742152834198953391757405062303499552204646993392874733447254452811853992094433228466951431288021932219263666339487969373782846438345323284287288505032534719612218043219582045615661152470368016707774743217028598335184051037229830997032012151733759444980779664892337030072429863131440783987208192273060413684349692798669823200794947815154981522307169946267227497336465441560825494641464222438446324216881371920614119035328864316279427647629793863439706343398787822667052664083544331580324114772462337135287648201367540832224624644037966879135082704888293266149808096280466415473199433174798108251216037069397793557564905705529287897171263239442476697178516740367306341094665980538759094305903001149022738741359716953062330510354879452103726411281024682075046432784675287550305724415316859910103966997514535132288079430672985294242209183846686262067364098887361751486822563136377770289912354267835292135965904677972727703597507685892812048570695855153400911322516677964648790266423991747453572772795912177923211590892419648354818784841004160443995205159107463950863483370891827679332544472683771461020807891051215703868230221789185864342168155804568265893413330593864587776037856507868083480454297557624776558522120748075618562296976857342406309039640762161049990647081925990948470077343046501768471492781851281225760885862792194327844666747917953592897288501704706372124949562438566702790203806694696295068015108204201739966152550821908695327848202244932025918002665757983134301099669246131750177028560564954034456289003893405599568123697257959787233413960303750580852189226084429188204487631378817151871330220671820660309531619245238181490217714781963082935923932796117421207925795814484419276318316150546904401762005523848746130925525884079444744410917000589595685470212631640401772430992531398938448182175843242588627814119514551937572479158763460048327627349406719925583006965284632624437357243798930236506155671831541690374819673481132156007710684453225341277061912390169861369367749408229394143407394221657150750039074786520342677129253431793398378149262911321761718805218990824223561728726284649024394255325691842468521021099843215556560087465166090825969000134245204537170527870153847234079994123663246488300665364926036548621981517614798208577792873189265970307578925932739291491223474657453193731952588734412803822136651492023499612586962480877951042759601954580521524111087187996927382690055833299586698267049206870656215079293036515145148862436695308511166135830947441350870022180242574742601773747002686517774093268114344011547927528976481040703173634288769603517412985917457151761490908269003190759655532098638986565094665757246182068482820547391022932726992586387425572712412512506478386839895493424313556285114259074155099025073779563143151425604571105919906401443398695444898380942905175746070795455597812085789476395836783347595814808802041993375999504054365704413322814857870048245253214754842624639581940330031688109780765811655477914268708521085590731407992962849433647143124372948160046378332371401046302065932396422435750417577654039246357950599153353832845098476175605728648301238588086828977962577214172091381904658832174012213882319545697146493509969396642345082833944490620274933991848454135174000054926388959561499317788087086183705096882006458324703390228528629078742001541356860397275958524634481654274887598197011146620648015976825526357150269329838377701686361844181586313087309346433174171505623078177401724173405271069501511499110788340938827656321830897749365060785729287851043798640799585269989344918629641627680873060460943034816583383620916796496140352910011376364015228571889768712990879936931560421841523533180486699603940866458286536047550035755735080204648529025661135739778616817266179759083363635376781240471941275136647840486970413673660545342380710620656495534511007111972848397751244854231772856315764572245163064691207039365091592272556573218469977457731841135564124952730518360574474730078100585259139605170003295933188819877365370072973742124574919169803296989512604800768303416245452069587277506733181175352693059198981162328612413132294119414764909755580408941215027205141405681699899283066384478538646518088986985581218582219579959769219821725841058554457239051638445495173969903239028321528594801673304873685922181755567693603997936253884728154813551722136222129763266416388745334454754599956604055191402182221628489166107562704661585145410665452117572766885812749438246726387634833845958458641974457250440719943285520832490860315366594254638114078601459694491308131469768646465386255871499028394976192840519368043314592352163832306383937416389109929531945039109854156687938766410463436356865377033062119858987775768362300754748288447822940115869619646063672037671284564046195696820654235112531158798353398044512162325214454069985929918041041703627626343769155457466243619798731946862506261853550991601489065464805445014501234757898100273386947638966579552291511613622677081581558938901593405030750844503894165885400688294468313113911079464887182320439262165989196913089417775034062842770320242075625933909948578566863329088211995450018627781443828505042830120384542405044773774325131028113931448979845156788809454019605261756908716868454396831430975927599852641803817379034453484294768165559503633296437179605189597085615207685668179926600292507549850225523839955552857614160928722569802300261408226703173546101552199957049255358448760492453790869172649045086337584016985366929870433237356732201899602303612307447434826574378268427422366822005275489341779928184815455160200626734929567907821511446958519846092611054993525906334959774419556182407151953512176089830815654164420316463952352182726454582931632377969383988818647736472172398037393700534368641634287376341274663597919876416722127888830232977161951941992984115772577599264535507525296506241025074335480430400702390073377844946964850554566719062400380966345604427814770552180321636186141301306987436624815201820924819566737801664031473195572935912781251189951283126980195174621405614604697870424838467472569482642269676439071464541567674693769001458431512899935647687401552000793532854318313987560715673999633708348621275026214513275692990610588991386427577944031358864327780791328190370929953887453381683775389320338349631351669422023407234160076967819232009553290083478204624071499222507707874482692601479399985360248912193741464336380464886476774083255693819650638308001367206657215374765548012079830183587483249373122118304908098754987663189889895364339209690927769576859325762168326030522674562209020561802889140585225251717776120503599239080485619439236370203089777771403989201602401115036385264146522707615167432683461791440690150894772327953837181606280406419115777364864839005520844947818085021315076678275871142591658397203679401536602908851283624269267198150548843332569796045490460512605344686730214240340783247524940852395831460857809240678827132059050610983884029652715375444866331351443822232015439807433529248729261103372982079369961366359712852041637092213515361890147701172755626704981264673414624584865551131337468241674557025436317421655632256302358647573631414579285473020687367448286814358516446266609173089304685550042738416288529240166647487773991145255495176500584615220355149388739729582197634028492594190548890034713821372617807142536658170626295221771827514067516194291194195153945998849713957901110256506144914187477366405623229870524959441106702779616143764872614763075736296740021293425472407639308130771804962120875711748596953944406838427617450622630551836962395338234729207350398110003226344696863403772071854368592256835975837609258187401413844064792355782461052447079240851586987241108929167823088374221856319777007516723495151241413014315705480911661714548789489214354619217343557534223184086154449667537732446941078984151217563203513010756266001100646292406289909669309971459698083167002059389474572579669649819675507912951003828306467736052829666081333646279119678631002578052564645269777741820909576761269812272889156301068489137950566216759419236455468396052891533864515968745682304739138621641177752054310114955684496520066341869513601909536157737968356071881920894255988748408962468092747765411813475146732332023705918554480063011536856113901165468766140260469941568529047010236447511849478341382114731588071287285456574893901074807507224883713708054326798949865426941873555214223164176304448958673927358220230386970957256167400988264955844878951232480748289957984944193818445155920057055255126959305294326830068131610555507179295695946723007290817952930789755496114093953110410659688732982383178524798466333486088517097602541227320561663152873157775609471246341923668569075486384688861074665091032768788204314848363322046172716231507957884192834299721221619632608159533959755471666549729463100439441416630914768927494126538513235827807261216043770554811654879622146476245404343949130357011823874673438935608508679937198638397150593618151219129133869726607444423730245292632330264722153541057614986173694502149573133815655323100409348279874959238903894683220717638185227334590680273545448409519018889582251648531947438311674895971729803092484628615840952418833300019020421472082891866882816092966348348598626476891417464855773735266709612143191911700240904583259189084344010771695252186294198705883330724566921297064637540367700435649335171891620115659823024206717137622061434119880684469276810891124317156841139155579728675210169558419144704729849294159238418103437684381655851698774847769791452681548926527428863178969888361275907982502847851264240900726328993333873379193018406673491105408011923310077558101166735405493460682817917265780775379505413611142723264382632925390188610226589208613360265311144805778346291000758627930078483535714909564537527385516157866160753019083833254871720693309358923644585275499061504720609196867612091453469355737617445485460910074329602256389210055850174434937377040023989526027581244322585441410049470372819551819928058329759001051671424128827208971552497980177449524032380697775663804896068012254751434929477546685818636786604027190851614489099783541777271669686595350746022118379588356360120079170798850884771157377628642375531823908419210966790107119221690944933545684898095964040607585347253330958624985742090548843028626629069576057019577909193086932943746910769735249662334910111357574117626288694093968681067712927698250530313670751891858420708921895294682827103067882835232753610197695194226486942292309593464464986119572194974070062596689416097499264074554040562195701379915236779584746301866600949648382557374824282425490900342866249518868109103575751691377320203450315835099159451026353920737289694969157206645708696502846606049176677948677855963315384232686935462368752917186656912492931121359758149616487095507028862132555356905890102211776787808321296468765998564590506679553023209981732718873018850884656759921975669881322902947332826743092161476320248655599725305730421223025339206461997688095538854628647756662528207712179127538438596491504250089021147212101061972678376623117152151221701266168467395911694011894058345618622220639293983389453814804673893692712935234679727173885673558195254240572239006607649313897415689871058835400669846411834600705029415765093109614360905600159450353994247344508444226577024335889771378096574672197765245535458646413933663330912034058296217919138581583086585484794280004245051776609708655691213157877931224155262069114468458656274554716266540348429244506659368832942855862946427567196414344062657450402000679715618600207258880062871938256405297791215960662157519237999291932099577251526062984193982309679773869593327506374651969153532402733954013409408437877423110264601463389778821284282076298675275853260237379927536378115171111753152987987531014268942034673427873112284916438357245870781944075338162604806015539743683135622088717912646373500507684826300341406551171430134025812469464651693937344004392834302873991630734352301811657977728954675261508645709435636304103279140425558736268991585961405526855719869179306362286049344829208253138708915652578838508296715210998776929962767524096896741798579007588791723611919290812929511023190314004512472836840811010740770154165020607963157563076717222514585686221546407038783197245507364895593248369239990726009829745498947582169545873654123443376909937274718611028723459215415250841149407631907782084258959788321871630962685483506076405756255337771909009894114079383347414068540580958393881176310177497742934364575917348056974775259753434020778356700323273289011468122051129584921773311391534141590228036731388441569509048392950312501237402724448955214475674621601582793680463825135954341164887676914407546853775121293891589383957644985684125195413513931985275076863983036202036562265849808930456970233656119985610209768458505293992797584697447475818311805725887952054311875893850680513149943618488729120969966089164096120980257615451058507136718461488462206028371986412907479997803274516872700747997940759077542148609089698303206004716865844913591265950062748738448077681696313080727191663663649538098267717947587937140462186579214191176389307258247453879642296860226722382700936722492159836807316530888825324334295586358363566202185207667556039897774020372100512637161443959353188308883429782464526254017772804460771459998877145132855345983922376486026599214225759382773672820063653679422438124421334321988619589589220522248709045667363461490463471863065120628912465622044967412593581725223317023946730497120771011750535967207965089909326595581650646892397762098909965701207686998639357656734169583302353866200078872020696603413044124221054540814816042431754377635525743983036289702075027798194999750650153421650233549648948892175084258797737858121966212319983787751738835351690560170667890848309485964592121270080065680615551559560272410448610321003725951993629523463472834022131602004949150692822153301059169707979006082008806638012320284311969698287338493310945367637787099753978936558744617266708185170430602068054462443744494728035812995831251688118407936053857211724850858172088241103119456203293942712080697623113618430302199717896976446696915779532200736908349207884224220755200368083598417169133653646831119356495416690219613000014320710144449316575099790916065994987211828372696333396549734824016021216454069751107439268038631942322583314646536481403982504610718722177195823245138700351709929373343070962632621112975488339084137175252316925903024099346651535050623169846140985266314663502754625824844223606908909148507174655051321553135578782494127899952437319251965156286808428827872795570078292261630187724719544464695557125031667802898343744909448064782548566420915318216552635696969616080883415728323191192700243322427769198123387716316271027811490950418418426616719570219142135427492526449769225491941789684045291040215450168265191674988844539920743427536200024245952722909532907311003134564008479195147469493957457769014979511646479394830888298633150680301914699740168266247040004662109854025089697817977628230510635502372333791766864712920464987425675238685025595850446643087774481469893198292601696812023480727285031319064782759948374872810475173335152264309032349950982012334048035657501646295593528604293102974199416995958309468087153125350095632105021912166324407066316167102556479904380059551219563632832951407419387535726408462055951066274505983350918769118259921268580369639362202307020703960583092716163753984063721386905089606712661968739040195324588964379166338182452259512837817559819146494537837083121793746579603759456027382295845767300891551987001899385122667842451981833461581631643457003553507203426075572189750337367705020059023257171308235537921330386091686741666172251371599920793035634741022294635202905913155964514469200025331256284434782240544173481300962029589867335882367419714991923469103135749676455561179058345356266669137919407887996621123662091661330289069177561350548897621755581294358836946942807941730910502214887520545029509896089181058725568747142131186026503504807445705237138843655801777189592488386952779175532745661387804619218721583290051146098053853526943768176732000834236990061109944288460819070598977704166447855813919845713590399741647105740085453002743414418075581964371961554133756109423477569977834518628474358638962682393487674554880444087746924237738707795242597238705010223877649838977622455292684101674554903391945820194218687305584797953629263100199087288560193451971662890331981039820927631734576078981743333681110168225899804732608200737002899277620121841527184085627929342180613319020877072236762970039329845737440866096342359218436019603782269417027282601199228255663540991085523854173354819783131009341120204316659829800795139810272727321753976082485611619442225345022362744942817663492638527687397713540130387644552657344728550673721193854710894039623240091542249833672180430733787436044509937564673533152083713110934274672237298481121427989906406204875820253760361936114487435915785947959456786549435737657785979972383155429301399260209941428438567057173285338437648994538621210062693923621720330014611467799992250770785197362890757739829333212415540597535020379443370627542238007489169573083111156978642228140615259643739108405496579770139281408357766356833717224773115193683194003027827922103819861665668934523721180368563798651298061189183062403673608760812384353095495906015530641328224658225664732151201483050629172535530834688257354177585357768425368641062453613240264090977867983398621042179974701259982909076645675885550516966214385342222923660613996802462427527339453388107682489825492762135953910369051073364653368181880014126594308884622417303010563715034643390049477701017733887431787102245981655131349106289710831431007008570311007122404368010820663066403745788833161743734270560573085390970419908647359419426640980091574936975383947760502631597795911124192196212585193274899840881654095952693042026175872481628684447171524636155590877511532778218436695353594672125350777466558685279352749714011549441603438769830183152566921128437907664905484134120221182364695090851314874039645067014502659974941456898224053531699021780288200476765205019693570471152547639701818143200603045411749921759104674787849284358732401099023130836339960829208686950977063371852994690399996669868204399032140188220721498028748130850704254634923413381510540093180816101566135967603378141123141897040968821861518185538162391757979759671886835043859250970591007074850218386995918523793198899599826079328747639726445281992923522780267131604564093990147358220667333783179533057564560701531357375106403073811647737588632480519915565258079183023791717261474521278115314856578876968196500478495892508812982377034277755783838502215719349620107841273688133669514195137515325573964262724033326413328015364203087762504007786360575784432448345328515985109347077939705966111234729385292171590512589075221775900414416507695322476523979366282973314173741649000283516980048292749491996833047536772064081083619740457387122517789061739687554134881956032214292675266714797902839705162599049651657527091558130642635154901026607765140783220722763010993208318866381968483214653885450396883235786387541715917304031667373046529009752716189197682545921243992265382478852793248859591928182522889273028277314116161514898042481245997870474704476090907802043499614221302335549364491979223049310213091013843837511938185201978075437220000754076538388559818104615395105381373538177979291738717403374864572231583928267512671677640577442694558110734881197762624731052974339497778475036389085764143927573914958924126344196852801951232377429605654823648426356341357800006591200421860595791142213893248879199016166329516459066870630845970950283935361494211441034077677882084628251958987818774493650095875141141775041171794480203195577752699874067261956790520550165874635377384775414938110803910703962217522975804955828711153235945420178709614233110509541426976188375177252646978915493465131964521352288290346917913608300913465514151634754660688836783897425186379030579064870612788441792068936520800374313877313087728589928635595787914809355962685686029989111233050268866157941171434947039314351487124241112306741931810503558577319598472627743420629193366403527326038608873107751066864392633740478801104078899781719711726967995473453019666563263452450003382759143093498168086600551199534335103602584652182451526133519372372333754586987380829778450496073314694938730597447615695033725728084084203692460223562543970573935656474186557295712883901387735419202825159314455563925488019584202582281405369254377002820118266030779167098788131275089364416283242030036771907725045760775495115374716051030133447440503683356587969756602536786334913218223178747835493105883169410104043668680886340253777598704765499004646066997031455817974134158677383513747551636371946828802192910523552188822954923087671014281958186132986523117071223872919357358604693104289499014343433315300440135589431499606958097706816161130897697937203146641476720133483676027520631736631094518455904475075379908240227149512522524685916378126470081840075910637050146435133384619448605395593450462254787006298000825642853339555837716949562163432496179295613701347581363163846398623498013883240091656773555817458917537997616206253813973649934768653047611372509338613982527190751097133969740142364006055045921104901852241615216177157169220850730079383579367362390332522003440228240968038730727280173332437795323989129018051773497530782973007402859708964954942684727908662079860873142869142164690413127098453877819814908018262297258064833016446578474690824777217470440475107338090987980506189800186996965011903211387275146308420837111665776103480234792495548709315565719485638085819431616034010362119125380229845626782346382399557711352131552151256156536424449205106939550659028421687045617140501982798730290922880445593425471025232388384270592216503388329067559078525167039497573431197508113583856771114182603837238193023375355738930335652058488292986764813241040713487933803125071725248690518834422633740557426269125495634602860613510983140992417488861875610012551249010124653305091292042038709026088934044894514772112680434451903923704630679571607341727609222111034234218566003955343769392078651632686010596650246044572062002290130608821575558435294961844039114468237375839612324399827155368355572447221324746257501578851503381404809830959002406943906153011203129987321195470406434869662671428331204399674772947687875969481843886133346779638322860220264836350723969022155392027336015623712389043124124698255738199533775134323084620154404096627981331883672756014951363186973449309626974422784720749796083046741909042613557645334203064961405357045650363166124704373672006028040879762969904364355476653204410812145280196568037842418335612047426582344196570222048251480927399900797256222365337892466958870414664420745417934209334446440210560764350730565521910335157544185392513648609209254454711441870382357142277316481395465937202773664971133533403716321288073036626102095098052752885555987797717740935477416693625910972707446552569475468570558138442163732245805579783799267472399729996876535572174225955132748544842329189744347596571200472870130711269438873160804276172369521334516652149306077043223147458929314986771076419891694991821702940317911024567024836764825964438835043274110859758447045195581191259318393440687699152053848189562520345346271518261781205133921303488084125842437660676663465074012378103859265890548542082959212419564374460099737261121188885003848045053458934797471375061291800462527765608682973237947567931662371163960619099867710075012867275551765429010463473406276297809856241274750888663807781984785835282489601226350242090947462484030722827769610005470381675477367059224153762511708009593675626474899759865702824134742781521707920711501766617617417623641763338483113063293925378769680099640196730568196711133653200993008390667950719312041909347975406113581713899945964158377108574997246678080952782701092493382794699580056967245212778517747708246322243316444971999668553266897753562835870227355562251395439131457556517186624067929795513924773781123383832498320046037152951134421160455351505983162870314073862216807597660735466274252898947995294405766196026493360056526929359896248065235563827135515816704884811856386166545438140850664824302481594945909721055493665917895877529795145677735802977897045456430869946174448440330060637454052706551970718289425522630259441495187250648919592945405988662527512469826085639332986056500805549261584876363544056039776805942695004979744486338510909377799188135855801152570918362527225240408677167678866808764482584563992084750586585507979268326948150776152671793165470637447638254485346147710502392558701741346553582315400017871342891789920778583258031363664501759915733632149045308089506466066799531438006821858998288702480613786353530075948365794033254127220910040292426033284648691058930299671854384784159825727292885854494910963748213328132980848874753124752953648970415634425788935292337099308676189801022013058567076107225003601315205923176341326404255820130379382057053650745145847840674294144185340828411613203849564095150955289487693129232534184419900296810839746361848002402155986640410839513764038004700718849435086769362502080895095509819275083734989376044870401416620435036213317242837491477251203996038406745840991692839124458504048898446088565511485470111235045576400264872988033697464185186970692843977517191772315613252368613552920738040055608078776799318570772781769623802465918247536647265693163482088659228346637932225645316544941878298068536270854859679384673314228650430879617123949766505241713375799545614225851804068486029050859692769554340071304013319044588592144629790501231186338368005481267332690691234410641940344940760321780678073851531939189749012496344904747740361645878059806036155096424323520014911219493028867272009831198971504595214153948756231370221639760718797334811025318952987633850719267641790645326579573617354406348194488976274690521986106341813511359779648232216839526211013250008177431682617114814000174058839819066333139900929344654796585425182700063806184998439640137889831516041739163930706770660235535222890296099392160355166992063553470146266833556437117730477768613946793253088155922206351675852828539293612821399367248281804329299504360623058755851717929048809331503166374475647681841845684106418147007506603085104919335857705664286189813030527056841069604897584733798565305358171918492083598200970362295869485507287275510592592577178431556535432299103226916230631057582912305559413337069936990433695102584187821747345393764464656461149903290923796420884533905724379189568635773005172116364522930911550732605069904442136960403954825808688661838568266657225698216895947985561117471068523539073074652892866626335197201609167224871549251617549231109253017534999009576084518299006401068343669507289228961718039368200844482740704722382300653812154268553101172572913130427629079896391844930007502987558073411664630513974604901404470061850251471231658901577064952901124670702766609787509695700227864047410205704298174174161561151421095465169203629633654212544424936201365281076629469317596144158935851067532431980918737446452680908134562259192035600030214555181860695149180093878096682472188915522663048803403897304135094770423292465102716403439878524008563971366412402986429168766268373757942474263085649905563131973457126581172376407010295767625621629996050880186975423843855797928546311747175669806896563250808191645275077422567029384952519486444676359778334977027190753872544111852014439632987018748613380074580874097808171697924782740845862946261011221945864293317071770814505901814211395128149556363308870705389068711499033385576188562726494594270931005359179110595159483650823019473531355557959904655006493711279517748061449665811606920589787531131079091220460102935160313539869691064271978561291183918415671458523663546703246221627049080164434323363708243670876886977328455508816608365979265077691358034655056577406532789390348691787653623670703649031096354727234307467868683742912400638778941792396686819095174115794317348527610447991210714234109900749410529226730258018711985626543449927482327313525616105056721365628425592906229612491686494319812426556588625281921525529378936788415136488844232760550146231628868684123860380509878029650801678873994055403856962143541592570710989284183952051001152869674211701859056648869052025315596160778866700090825797742444155229984652164176974847692948622137378750599535747792735822515067560524651923855026769548869692886089594830438906243400303245969270610551054563302721915498681273651076545972830341834463159790688193635873889350961951464008343233441050261939554450610115724337924791815926145240766632357051362835258824134581861875909886979920104029757850820506750887723166592153430868491492268103381455318201770974799413677951366242153024162075654165903700504532337314071928820122571420218366216256554750597661644630985381187027540846145169154725214159195571037729148154962658714615529655620974099545241342818602515816208314780245156566023716982732716514324220202891446046848450462247698768913202656903627807623783912135736187961303222455388606397749289374167582433095447368691549323070731808882830163671118309571434582619709871941988995249153960588310032005356691127425048042372480141214503943937562823197975804366811657958398045012896830525193898260326130959458883437044388411261997403653794917723915201188723497020127142390197850261254385801454151179761282561944137886133254186640132295893828398211095883425831553831472326090837923785613871355692678528119929406504766703826199973932544051893953668605050794508728381373742528552118807669272405024165627569864016706595914709339051313476049642406416649493430829404256971712976262369061656276906772877746903391038734215754112617236450401671779851950692026068685078065577791710208833861579568807143897961680344789366027573324439366130072141737153121014854242060749073628569629655171819695577618089904653753092605710881237915656448111455303515734900511343752340106255414051472470395405210566987028102166920029621774426930787230338059954362917810829183163802539055422872821331161703694879661020377464395915460016971666285640798303981656825263896018382339798603463428941853776464512165619515337580911292212352469780254912552209211225935067907510233391487252995683163463615182119786377334368754897115582226712424492566708710035984916043549113352759210530540965286200331344413995244307378265641925526998633706050414653550036457669411079591911231832328991052453917503226722397183699909443213813556993312980747680251228512012753241152261764149438541206479071904705171105065986557329531092955413651881004431339557554608260440355578105631961997556753515802088232849408769164425924558109914510161817886367735942260366664104163681549919632539867963732246753793299131942434419553196819922906052027612077713043671212041735266689329810366884220262363924749102976922219412596046877914353419072790294407233609046497192135944117165399422972854147010646828774249543843183844759360625292023700601873375839189036324100553793818837287083411320612237100544213461530060008953432955540852470397007874952470649906079199185115490196672444478097381093624738282170633911125869724943033632017972698677014461738242177505362440250096653563108234949631338623650831950673920495510028158605886992181719182512020342719159451748996653807275310662548678876370320913755991086689807117536741058662800703814736726625993333443699593109891979166271088330357424162869817907355407376977827515239733444901440337756384888756501666952474221535592330972426282919305183846824627879653777147635686857930009172694564622892043850520712407063308664451511987637349133509942103498489930025012551999012796850425083290731112863479862626864792630587562595282707255986371616243537933199123741568532628551166869866891412422164148213172932378667956139257232318992049400063185540595976529678478725674197302013059937135875364096946728605839915701490170353791600343875117978267294351571969882691431396830579018073262981059897262018639987027876192776286498259194001255890077079402331236500354271201797924077768520399621621418883846677266692333768405872964241697773131209043349730523127638491294444423799694181176465502590395772372318292476175687051543962684771445935170732233048413409787107359831479393384282891760374520551266039189608209539925887800214461577487027819014584445217003664003558372112279189053273693247733214719718162457942299319867655880234116018258683381209128943398924977310651659475658792101168061316700656972006305349777661729591984341658269250842045581321690055652680916579018006958611215266466770887342858794900641180054650784362464622579536616162056333949714686254121751999189528530846300600473565980491701833255712488486350662425573375136311857598968294979845643105611167812733574635553923669478339421430653433039683063865185907344175753346733222229917579917044039591690194351153619370179804608707940923873726418527247965934952357431801091272916437618654781346944488450791696809466828266439536880878071047517688590130952745813020783323450410929256124488040827918859737296698268949114131909632827509739600512719706832986802595248223562623234884645879609877179848163336047647998209515704007471382808611120469088876234414731051220114131588875075080678801084909204518941404591277145737968572780108868195275861119591303565542350863692199120700750518335771227254854356124769208433114935871771012903915272824534392374485089248783729416050073465176207103335758583472333656127288644904084127830207483440587548590921187452521173674266918310699808519060510262883841425106268026602202437518174403928001069991753827180368733286386131729005717317329437297962782275082937607342364490575875161047274137754159549490619925923754984595697787990526871183880833053635438015465775457265348213804278453247203897639332760827264691299707182727392705563747515654998514131570632586175788423455653445900857179143205259338542122717369570109814392894954625244836384640960250139002027837152650373766938024730233492142276693853886018999368987511175716527530852708408651836670371377439605317900487596351392744938572941065671226879260651340929949745617026131086055016200780831056887429591700793387628398136669011156167379030381808993543866579241080060500151388238193293219107008266688196291752863974475714740609873578526011874835153811805450006959085732246343096058120812953318638520800963913123410086494450040281490623782096616975754989176002866933407781491708467602740173909643606867841466204857432952497904469090062496542124894149459881946842129904929193202022605625935903368361484268393068542566432677150186060846157254592336173085092025639646528013663541502911408988721930428656087246313489520526103106067615155364975854444961512791161319306609944849852536209693476778312613143207864231997070308675417226904069952939482918063852003547586617461361028371000826257425649097419439057821526884608640135827106670452393005786167564757193402506796231416233616363793103831317852828130099734020285210445346504801094686379831838489327241233220613909168053811866537659753941852074491644836342369003274776176333264136172179417455428005298672369070974327853819470521372626291699232922732156890649878916919990547087080571215496544523260604641588705874262701927225417780286345893293820531112941170235538024237854731833840646964186213254082129691533035314119111181816502274183544724196913672455828741880048976867628023127187354727568909056033782152412729382990843389084816893869952349542135994372086840429123209070706080343128589637876721225995687344967650133678687922802266452426670371606242144912667314204582811796201522663996749379371897182815134539525468093940997342778411156770553369979936093860185235254213754464421249402653171192616984878628106595547819077784578171826503193140093796731750851860313356264888716214136858282022171467503845974079561332079759924234122262011303668804349451713993133173806353407848864839473237267868729293150580811733474881531049552270908940440610060251217988607222998124186946699772496399311672064253988722838193557692689353834126112342160713410072591922542646060108451935694034248182006296593371342487048650210360524614383369741075063111973209005668774622292703680242258578636077758896457495173320060521364387996925581666108628698481259260622812185449498632664818704016895458989173401122850699012163770720831230802648420233343552948132560009415740644541659314371215571424604538442171524377251368049874029491133956836575310630226938505037473535462740092991146598524672309272925657730070672688293187292259255797938166850991294262937760300582510976133480360850795325591953019020414434957163689154229818579145846136999280797956909182249467460230449598403943393423521741638042931144283305695154941343236144249396184047962963003727877565947435672744229413837880910043280960346780793210051943255041796258257024656755770898286296793914820976223760001416797061232745512572481447617311615152182503383586798191108881188222868861966884767401948650873305769478563177371773335440830854986866327507479417408280792377599686501778610656301159712044587979836660447317018744699193186618432540934918868435203966821700395549857621909060134312277071904387448290786707647195202695112958016124951915205770630518546868881613085053657748492175070798578023774322281138239520128596808854714782469050174332123406927585827457384783551899064555192951466095760042432204151098419367312212246806976356655969826675542618494458679741623310576573936579575086645674155063645988699359278599445193110784813887979147861222549048342821150263375740041190270161004448701033721077779854520947426118368126516833156634766625119793256440834831247596719461335131636400295040008334559948492151987883109873266950405459283091218911852808423493155114061862120822525081587225298684563609467601817351218935104818030626163490946340710609115829772912578383966042355301222570615476218523519422532074297408764502884903437666263953763029612388335815356332953363232629546496304420616699555192703413800766073128627071555068126536494573632410704659091069073848955979646021911007895375444194732248640705864557128510121688796384169347749025077154378780465010287064717272599904951516775105634278714360577007678353673675573239306582736660850834551432025214638724856259651192792529933799057517671987356576244829123990646958755547410551150999341543084189972196334460171909051774365621249382840686815572871774914737169887478537654521903408676585903828570138577795829773021613370863372078491084180170838074881578843118622049251203451074013114113727501278000816428008980221991216963892929910750923803595539160312495296056819697039710066441115803557091027972206339553155822702797979303215358483066391207248599837218269989016352040461984742629129722072719441956062745673000355353048170893851529378752286226553267028985327024180372714507565968164823200814096509351290682280961844435364457448674230468094328610872599207496176876886924247047698056067000253152400626832517119997966681233890145363139699543898426533927055174313646676719759870569474597190301568958823589006889708823150791983104357119563964205812960367483383208421179958051534936188636838913302576864418273147985327675873742409494944562705889387722970724107541220985887379710013035844932430766874371260832430514755558306183785995776297447912885406488440978526544167730778346401938628290298116462962858539749497025187020005032432212825488552815402550530647657768390448394045471372800607026026329728779676225808954569507656360655790199191515020446864604958136737279988607906280366557863713403662258077405777923796589369503881936765054593980615803584033800911894845445890952898011552498333358817892219791220388586339479226930111850065814069810413570294412305653272846463288451390438516855280029337545399086525406818195002267007412139117467401520421184378770549525062638678869649741258707107352405246778806584442658249158085536690693470203247942720900154417455756455732525606132344135807554363008320806087487461957283350436573860906012857203845394882759388651924805688105320796242296665901574347020740187321240148731000147514869667598380768112757919471616397740680924893852863949969840908616790032689100361511009656391141557510280179527162372937009254612225874999936307753193401409941384110197298799136593875140457507542915674805776302856581595964405443545650150679255673946607918253693666197715083044560546748948926842257553465049768640806463916537950040865898082902339336070722017049237378567626799200750459299874962108035531077546402254004422733485083501737698959132792535196585063879960010706603549452753836527575090185881603094623416486411157387095009897955161105572946092944561567894344301988090293002849989975449571904748890196739295608545701061104498459710736729380175946849653120140389341153919811631030322487888998528417253285390793383646180833403597891057731441719607237163307072039663283983380967554975476370733066755729036277836106639379847532941857068003946892322675510505089292431951162499346223816053498594425254885549604819658106392102938342586596651410983959349768371061285905943908495333250198674648263107008481692304755010413490896460234607129269507813325687789358998350144431430568267540423093771220624272012410361897390034093782416295872510666105861484860002676918196931117779186711389039891226910943742656240780036565749762111272470085772252325745839035263017603219519487612652729002941720029113970754635438456742189400663866253817744629746517570416930633140633865813956440578351433211238937587643814950293346929244520941742275550936118200796072208294140805748416295699823517717262756693958403025582576518575213584696635471487739876503449298500571906778755552630258326715563317088902871783659775613111411065457800348455620195610212725470102116396207314681513804330841617128710757870614520803882075126945714415093246427646841269566186723584415571628840730815883048274364425100498881776852041295384665252405702064759711611780567509498654614720492545210752608757860798646741602715248381220004278497431272519036901327612804458256167100989647950331741820206306291759950722393569059662553050911299493787835705090908726708327503158200085151492291951646939722741191746643329029668384360214464255494305004514953681460533860685453029595469184312690487964142146940383488135060780021450879844042844060409034332768909580797578632492098456887957996648854310560659104776199974157204784186246335848646600058470460008218725118853653374779170684041887771615301790029051490877472620371480954325533000027674311904266940687060663643598218703728458518595705160519999444720569933097581573770227159375967319809348420478399655141851981049017396969813269597423279402699215844270817867318026655253384379170898821058906326383039278108052807979041667021999816778997003850741480729090554572922443645471466098161487661906839874467170021876797514338880832531770330138258958027217612392920208226459420242866584208894141024901820648992828213469125679633254940744805369804782794905461015920932863793970285059487805127124354342154676178363602595472635150353171804161922799702697120912078667727324548514563679936351519773169272699647933822956106451080332900143534508905029215658193268048442292780607336092489540489801622485388450833277189242676836291095054550220951544828999591697476849605336232151424335558193904957524904416211857135220820604679169250706879948843365112495315185355454322844989511744199820793077741748658763279068753829445202734528863201215043152973542950718122369663188277632431819528613596553528389508824629528334774103293963102029346217338167839795747726605759389358206145475348104708367091300652973593805901344046512892671226889464032872703225335816915981870318679735266676706742764803919917184100856524395991966143179149919766090375230929966821288514480564461638686665918369857535983553313414992633401416424047640945842566903488051489856714022203224095697793051284736352406393761262612672161105722427258494496567613600967778133901168820064456336224159911245381546161061374909615695391098742973141680257944111589119096927563201028335869281695149549661091581969301990871361759696741082614793244333690953604245233275925505970122115426746347495061328466197297491784400744412679782482020132656283307862246211916386337631841780055690059568310168648703653318855250783173127236417293194020177957290787296840884130001937356207780819492167076997377798328745826728817452965948828435761944660150896060446395216426333793106910450030901101984018287459937631266658676826092227491525232614566445226922519329365024367242777515022447344047236780538453901148661049732490642284243629668307682056196318578808711502670762765988898494305116995966235324459476987313794466768159314008683048110702441631969938392255137905118272815141415191333261841039576475345130106408103442276653735781559262582395744187716650209221046179045945117917310441601062674322798567259405938668403144246187880977560026815169752082322096349544334717203163882356058244943055666785967185010170734447063349800640068467478557838344317455445927996391433388979032710546662173585320763462489034485367915098057744976288100040577730188168637345212520654772030104246011044919925967957414059564419772177131711842448385036443153018564185037050334754576642385373752787670689218878058273003328224156551618545198667585331834153495233144169221149978544033444765016103469243750869203414923311691077480798676424302321026109017757661673515317742003622247822908021384317160953511246402150045102383991268120412444583741568957557094431850416842533590465492947869351275576541816427814642137940557503464497014621088521633741337156731160771080270992683287936767403038953099179281047715359507879632064588124323254480028055825543271087955112036891385075656001286771105466392976398350302052027265518282671026291575576075721197895103115881667958977431584806669083214164358965740206142517055313564597966070200387821455713504242955696550292846737974622507429212705604021825603906899076200515911150439474093770283599204725081300673283518331795503445862893172163053636737280292613118299006868972936718739944016392933134102159939951986781646659479828606638692194099804709846158151397728067598493277314990785165869481960066004036350664985648957594298965578288227222387689500203642327690556074705975327656090760257385706422760640279957502743730738962125951521596590327799326771835598106005138764300274800644349216061822509658643103723129682084782212860657778529797512689548675943994105630938133493648260050266764490104799908516799400956315445070534969223354592344805824538166776800430570323407374264303406215210785204253567478642677114216046507125200860376134859702151075276803825750457971441387922181216083213067750078283374499665842951343077438504181416395609420357778440764070185202919886051662510357634395578107182155621551153573059312075440748544624235181500174286557634524090573913739179453958884429874536075239345124051771029119803003369130849039991632606448090910482512247494805502674497829802220430253932781809502776893170571891809040973765327738016800657868169594167070053434273265038588967258949008435539588536530994640651509242812044749535872268280613477461057998520653620384101387266141765524401277556632977272502808211355576749384107825269221506337939971302833540195497556649130466713787108608555821918988424422883503948319781426677094032764237709897837615102124347924928524652672386296880007185378939644485448158715958501213263880072154982903647537481959386763551387691093724378710806030231175033699479574336847216363906382808196591231200290037907013953886414610700402165750166339755516857862418778513552573002223593525366647084685972329872331456628516629673583469055797762842782907733014159279647896841955230260695498902603436580481890654258811765843027795330619742741987473102051981462359192879260592795561211306725613350345507057939805983293470976735789677281443877250821705643959850285548375879839964574078620999025273083318225689167489689683034498485356830899634808062251402220341734236611216980266479915317668585667097543452335871101452422085249974811633291225166632817931770293225782126997610600837148526265709462613072415489453015121763311645991367566186921315881606701442778116704270372633821893218078840991980361007882552813071092690064395816547259484631270840480311217358492688295983252356788196365654009233465423983006365982569565172514502215916324823850850348847817982628616884791352882694598147005852406393591082750872228338369833198830385165736489263555825503367890514746316902554946342659109435797262202680750491615331096292874124027356527395563515181877607373326704680965876203728464984670771700994554164309698734138942090497500838695542006849639417863330861597613959716329973127220188116038574861202192412077041969386936682467025202103922651384893332618226404582252193512585761882962730685820736127530301512595172969727416517335284961841705059715221490193108701124790607499928040237231729295657173341286458875161004743406664603994070993593432632689943280452801707859770873578113695065407493797084984539496981254656795562229034222956567159779170466358107354087081628967460368462093482015703458500168191707443684993993350133993209119484727101322268802870078195240220441101083061293857619246955761596205134672843555435219295978189726443474802893038569686156312533143921134446273233470224444206429504918366563377545066269416508907983771291423501200066682173120652504115939806154012111581635528889005552064717063837681364603324175558182360042386940999319763583587347311847780252523110087819616465844561115572363406929130215110642391997434793423771898886095675100980636222282423294016930949780295707095359606779880893907123413220258460394652459646614824219651986303924908895965860015026828351010386034330049336116419630544329936812153335684550605733515425489692632494145028091086475141807489717678190486461285547848190128428029434204998619706523594210965670769791373588516428121200995313240425607703509113191064161878944531185219187552361909589468153981918286225704127224261799555680702831087433695348421438414779161921124075467821703897253363393929192333709348541802905632610082799178470417105043065679293944591996460269143295665084833975248957002650571795118248235869552579559885785080923464333486934860804149047549063358537511963777565577879588470201057984096342514398989858842295622741931557701447272644895118832864368746101943027447701725455072639245434389271544462029067486253717969528977368754622507201960967878393920650073424946432514170485605385657125603816528563600273173840427506741444308559425864124103965997704527255845443495503231907868627756140846683182353145465128393798281356369500812737968032250328126087492638952878520280833565599701369115747603188981736701551218151347818950822770484914541044569877259862971518119525657462329994810031803747866172262070001789565012794210590686676191954837138108417697930154605840372016865709655270422068840618252343075062571645909399970858767195704441053595446687097175920511715058965960328298189292723995827442524899703652447074689795931252236097591262773713153924600640933710627319762510430425494721579273740472425397826882464768422902141183123736314387396814281387286619868614806078378740589953476533556552282703350318258994880088245234758685142950282749762912623710223142438943478495442755454199606412749421634526465861927413648316857031655640721441721044226027870304738986045262215037595400924072427268849582027190133375770630157688028779046081786555942201437312880712447405095355791975053347816873139802756130799385331184720449894484982425276801349126988984830520297987671429127897969553476083184324795734541580761123505615202010010147307513218764302583662290173094556444020824031030143612396442219309385212133131147796344227936980659474233477994327260648855779705131557607564448208963947957159045239895871453771166848589132425936471857895502260243430133206106929661011665038161311185231183652591864266276684980624630061182777196287813045182714694291328199513758872215142253426178230888682302869178315305945639538057869333446096289215456784503861119853960091255976800202037140934268653920789015368546152406638483751043541465048055930023140576691010884430283902231679601926014880402752734376516186727160772913483229862216713021056872698717630503344490466918802012414937874296648590005364062017074493086503181084908322272785763623723523114768609954478091935107834204386602856997139935130445689925553753681673627756957304689925540135694079884500093310487391793863826473737429611860578237511372036910405568772622387056838652847948348432468555287107914819323861886489709187659449318809133576693006686324705098109878154557330930669202842508393942535614349071758519345897577563932788045260106159299099412296652835676052297440977777104764243437275107250903242095356871220435771992492501924140225251021924570631530245714389308045627667494774401572757490768251208484921328458303581526372200045759200482888165507819232659454557624007432704844791077607637288277439156249092657929290488083215513016792057773499071963169270221126357867328482323803801108863354193821205050115963986602229930023491363136874101332354038619268504786381769665221784809269967830966131729778517064209108589861270387028599053871182306418003957606356996882910756179188384547475229030552092317175643526299493838678177944495359941825373858219379192858190329266625939943605198988099278267368354567810039341393370026300972268636172848875699927534488177359691833318881029036337455033246647773905141572181097208979574238912934565261188869226709304383990800737947973762062087685443647650627677241032114339550377123420820193235324309508395197863740236673209371982190080332992233458529924718968481735135710276640597623481775789689297197316891040027084329151180120156435156858349957909807975041904631112933994229562872169681303451437938961372993933185276498281960599363221696897222043716088703943338392393483500487901853064553181253139120733660968690795169472745285823122268388453598414273873227057265153933969624699784805850086688857245584005932615628575744813052918917080193975539469662146200768553916581876282051584424170410878930751457776518923270801762806938711634686698836328321538431069832526272490228921618906691847447941919367987288904284920837072654831703184292531099013936542237084064667919901229040795554809260626525000749908337270046110208728867103287451668453439277963645943929669761022699472510653807737237989362860685923308966553512108865298111865712219586810024155880958997853711787411597064998533893647112982123518801154580251877834577436110096469735291068733831276832374154850147000827401451830255284805615369499014950941313016667838439997035243828846314389214434299713671575778170575359588291575150204688574346259649897857996842546470530973787313353645292513710477442207973032087412710649025574250052930364852754600000208859860758988707564104694208889612144370421564368047859807073690656388685315454838472514694293789930839994757149532918477565343183351632985556387856745021310028085762676252393856370327311402493951414021891885394851057525055976167692102101694206583734730059539889317909754454930933884038460377827705679116263085211478792013314936785387241785823091117582438306557743759381491639339455336287126948347850803374936762397775661584039578429280466182999539630540463490037787638984906234964845180049861505209725487262929689337353371546400898143813208654546968566681978429632893319950922950281432504961548912798720849201722537776950580310995165383784740875185348284666483840510721219777702841177323149196079740251498042908952503657205089443182415374710374268275259868818128969097772957814834075413126654183658695463227831435049552064642227748392022803523583296665538224124625379101665063762204478962913614080888707609641717392022632763651306955437082777191845721753920573836896812628850791874843146556311073005808685819640005694543193026867656415294800393515198756076858898848025919682958262523283010468825894803987572902616915420238556523952384361243669428396315055778647224701750975836832978874395527248154163671614146548384151339733538433676368911848025432273488527408451956715322966535381024709855203384212454504172048174635463814498429113745709305680077722754291025761915631695567043096379010178102445518319163732558424309182115962039605821656497009980070846371274733587582559830851700826438534217141440390659267950011988474629331782527300647586377285469694165798705035847919235315781734412651037292576385355845615817069627211933591521575464943816081617532148003247360152334801952877732443883666881430925771511829148027855035068503716776316583284592422071526314864536890113688671366057699141807648392600050220197920879392487674360560065622910516710379362045776827367785056746901248326632994297079695778077540811033833753847285916379168252480564855688107973584408253734725752140958140112637945993262569088007272342257770610372084484511315923393114276574760138142528485825200977646471729177831505632405697638960631410508295432015572142951154081553460249659663120898630771387833570630571798396183270888423658500432136036294775112053410993561259981436171640314777478339060683504697320438526072920262994594499601053401224131227219887026964378776981680722720185293531770264050550706978895481528267926768959750979523026648379597429373918112744425094928223107900232236942552011411521046251890857344505860787781068137443200834014299520490556887862345463060009049726032773168124041373957067057561901110633797956778947080237710887583659101631908899418244437125631405889102889560759265192197107839002628821431010953784577652494755696747429014544505648586107034120265143428001310071167476445771495329116636965141451526977926678014953501143997882842949241364196355601304180076548029104648077179827298995762559008259609215668213222088274360838234492635909449697662392349732515008362579839335593602978304387692213159905887455333044264391741774650820944220647289736214895082573312003163391893739399321799500451351423613394371484201436494693418611975776413103523862687573758613412903666852656729499232079993098545132108002479559342664915090158210685251469280807191945498455852091262157209880229061503156465891878568220473534942292596338494568919625437806183577341905991258618902359292902069339890402129097594648213724149703588509990929994149070555538649846769590761910407589109571047751328019265382158564912406284701822705436833878425895377344285727263358363908716289633123138336991960433452223244552164245519109001376486794151246194854069753059699223944061946582518530807999071284245557912039003838808486123009065328746468130970409939640893273529725322853148037607069644416317027479700915463645021160946768312992473775040635209655579461199622427507681586759687285435113839431331625906883608579339359786534834102035736219675174637246719637556601328785890169943995379737766174811201320727547651065996611082933207901458672099365252662605747617009657562808520923595032847964308806495886680093701787745598859810465365892148572100542656525595233960013439378458244145597593755346644746440270528458538122537335716375276682683661170945147074805388018669293041772262106416935921066546022170641589189965216417477839823103185154667398255218046309208090432698236680091560868262942474329375022502068582866457734841128833217257476578914154407907277075831870149050704718844395162179062457483306501930940945406738865687015195580706737273006789034206477363202722659758027241127388082073935437731432106106940311728801640689809578979893813206659839708556837464697919780897781049299510767343443300710806535736345814200320124218565683265866847277235062291539055052761161426283589816667390789663184675535214589499092415133077526084489502643658381219212158699088820630543846452250140227946282679341081609599693995357193915468170226332399612134368569840925266087637309739965185522130252355247043460792914712741947585782979907659479953572413831347177915996400942041305302182841207521711295104956178461286492022791232312146058895625778068909331871006987205108948346038507182030526287441826748567006829801228898942897787992664605183015861940399612517406934784490012270271564168762015811504065283557555829074381344584508258717903841584623696551442656796777215384554925292239934306046677847988245873108529592142591256317701903696929004117367631210255353936375193009841666119620902516592247120134436610068011778127978444913650373725818807263206176705232803431040036583135461651943518654666311120263115032281310943277923638206751981851002006686919243138207200438569603631511527615105798089153963932311290620789804870242933146842707179184110215235627944498802747291560714026581710913629946242379003025128310190564652288533056241470820435944220778769984157004925219737087535775329720239307964461278683232367235632915752659277113971580245495773377842266677118313241082107763101105415256203733785423540379680369387877809716281150443889035823600969455538437959740800045186390879578900958114209131010312661405936025404005063168307041716138368514380552140185785348320876235838993245886116835913175247244892391760097132563438767715146014072152510782470489560884428934396947803656992110939788691144016931606371422602575051656595367699153215071943910052475396299253529431708871776207446914629266396262803556748203312305996914796249961953488979841155587878440022900113628904987686733928774956052968478303265254857350473748077694332230649730055504599002877509889699355313321941474828235682076429814889777807043259667192936791943838744944031868103841924602798627733717423811369631037715218602213254708019449913244396249009099003525321993128014322112894807960548020900647251091582432352153543385438490021412811579120507128887009587119613348882190106659522964995486281712308260177574270413083216692185020419377989927767207393843287099442944898970446943805360688819660074565763978140834247961862901243499557091919976145352256742828638830720155184545359745805608406136414377081265154591278448861657185315249048385707911731985537403713184666292118586262615652298460430733372429911254995639730602886008564296236805425429070288149669715158300857393206557209369650797834059551431182906465034302240516623045253783791903690860881290779034853819642097972329699447296426731623326404526299891148776211673629261582018562793463163694593263944225145605730434622641509800835305944181640365791908845889809840569071474512390616841820168513935921168369855979775886658410540829443062624794285244944191081679130176642270329132614764465106800629852438597274234789500996828411585144832222601320264827239716667190616487618104093365548712782039873918342465713152098247951784565358674253136009433137078540465638021333700677713440892867686123707543510031186486091173186420328192753192563573965139421894298671034583072954910571885639904500890879632869845719354888168419604852676178656079410250433874643248409101418783135031233195675672180567957275276722865280876062423381040590836126973322446433731820161651028502465367707130767236245278239452501185279675520738367754474657263912701872635224634991984596582070258319770266420320420341306007866361488530082346680667529340556117459751543273789131985859496379319234337294869744437487160632885360991806143821669187752545758336069155618571361831039769702577707601885659360089719498182813807323980399449094501280638124141190827238557204198679010833378450450099089574697664001259371140178504517306902074193250881685599062314214685303162467088919717743905620218230368328749394898960060359784836443690002633376420115697182901185747505991822706433274357276201282958110371418808224748121890472232044238313240227917375595032788126933649764330991256349536441699706270979370021611863945499554078907990374822397082852007049487928787408746621976017292143800140692373914408192926037167656186036603538998965917716056903444192483316665465975656529035228252705853036608019078530973825143914988297704516836860972845203458546897828353661286882509980660264622144233981874001793692448469060906205839483948714411589649382716107014352353094504565982783028014941589596955573245113878816571717443517400690419841374189544710336711670921847184160268607021246437670847019623823769704426719269966177342150534857167400802452485470728216665494202919208324411276079230363985194761812609642833981007112429783762936469212537836377543678022042029385996321932355242199256644597958601487715302202792112586812389190264522882545217498418041600277183379614617171232892609475977369355566573410560849851772138816674203770204986092101857543492668382796008137091940455269848380592232404987211485493164746440975292052481115082727860477463862521917549968529731754752929221459343362039241853839209855635407567491531842953198225966156480847643660294113115048459143480239444288634788556623869756092714044234086356911349047289922104637191757476865849541281867647320740102281473914112135753924569226437933350754125574102378035761160939819175590585202016425962660686622599855606215844691581699781936456815579892824579056019972749956709756802867913065102041815150536027970996330224013647438793616825400843581840657288825684175351797548953946022735495031586896108418199079864398770846394999132328962168318831945826234822297683995161128111766234663562872343682405542902950255701831181818331611031615638528147089596049277098525933933184258941710960790523926516172738470830193638727690872077393957407721897724658872987146674537104481314107268861218370339348252872121047104332649046089677698831876054922867106522251039819119152772321505834893103153132916929249833489359288822353341575051473236759660675840612620141968008698713961076914256357395175171616252416301896403693710688948194782637965122245991172637408004007762086718580297511077184629593520721199283202638703990370446113856519529437821606693391288686464527691279186999958677688624136582846242950804361107366525223830503849254564596855156930033629283977554637366035574075554720056191977234193542954810726176965785421805946669076188864952034871046301183218244083490845173404508926117257728818464244280023293921210772179049545504650818659849692947109243644843150077543917060105728624861304212411754479477913800305901164329579463981816804168745779416525796084105484386382113334758039073820767813201216641444060719599052832613431478066383450285520126782038571422262815968847466627992448036062446744165585272229131106009369523784640357425688617637327851174212212804001585463418154701191524466112100812614130491858592536479826552807605990482540628769945641152403202160018595777339034369241399307820761614611954073022154964942297072329060420584316513189149646716773637318497690138358559170135396322501235193375022683116109999291882077690660297076574207429226934348083607632782783764737191474634203000908985772821055832549845835443632277440250141333710043803108048758077397655028621218925068533292883516816667352476567762397578576214184273478717919012884114559141390368617129330309747171528531711483236872986016662708896739822714968522687316009772505834397643743541530892281920301234723502186029702546942259080237731165396025612790192254839273654814059374209058176827505454739671212974671840076735168937987360361601607084334345672347491079859829870076068114206161627325042843377172074815563318533689640768643178352067092706131442356187190185346786688540970617724751559276599854743694844633620957466441172163245023981497437354151542376290988409912601539111288242104064196732710033583509557773542385327795984693270140911730572192861855210801314364272608182445140235143147219364098786908787157248695064970008328055846887485082926958970798281465056890607574928946190184731133263859358181265998858925724230483950728644396079908882990315439176665267555243340828761838470031265513466853681680212379757067710678338185645276485889954611614160512704007345436482272847293944291703288754701303534690454347907843475844492968111511496417340954129504979174180579611784406450042143404128509514167763348968641085254676169749733238217770529121156248898143960997259137549620179469551381807994206818487157337575076526502816422226612164883213281407748336442624009127393932088253988680685899109717001507710932665165336939911591806311602476288595778320133522964132079932247009795406755387961610410429086259960670190281811180566954472741672128757488811083327300115835669212209264885135501995267461294848844779712542604256020017930697178165166631230037551581112938523572817026389209594840818139175321213443611278886715748841700486858143757651819369528852073302219248621647840627419583956050004947716300187433767326112418568556982291053193126814674464615919653817273025555387193661228730326401366886992564726312724620848951272713942023486365328436357634053914008119297218318384738866839372674715118847176096805150349303415321877823786031911184456605268424327937685521518046314984532987869617550750823247859492167524135661008944961525334643835306059989329752098868416723543277554648511831564584685686798001165958122800248439474931233532539930989829500199795498929503014980027118336744069842557844696582064210573426199847729661658832582841922364079101677581255011400063783279240909904140077674151248835003545274409464900150991986941423659335271995794694594889523110758647535676862812397385071990577976239594373206576660307783521399336500414768797545914971597272148999178830591514079084379338695803783173437922822454199784706121635618166473032618636831111563279091572936742109591186255365336960945688283427568909722499083007823217071565389254869957208531681073188899576986791191967958874970606801910063601840514556705825939553678322574516381101334387727452703915106917763239863743760097671331157879774341951122231618859148836411048015451427626137851881402274119675770327939596174080745209322639113618138581456561244204716709332416103827794207941624811080760852796334112717075777442545511019527741129907676623615817252388915112052711266796170876025991364208827859302518277739702659708004744733272916232786386446734882481835973661654609657835888125221513671350862352908678987915660719978142252081173017541899274495514805376897335091323975011929573716694088752291151485254424563681898854379387548642233202709534196387193532094982964339675658475040497400710228351528741252350168747012568889135851292973841578861755395695138767759683575841001886246602524033168628042659063751678698188986114952726225348297232113930315639239762835518491543954354036257950514839447931967328290727563498252980955510371830521105225850766225926226855334102238826815986860015650078304057161524979070021728845123367412620578083392347791678518243497028242098638524143003629361411939685873451309867395849527818630378041977219916343310002691872929083858997295184974703618710096642440769645225567553146413096126224574334842973442522395544680596830411561006316642328877773695474894751000077013844455906436721052180302936838626316736296926769363526288530395890177646970704451886864690680576706606954406426541425836124324547371595646531610366188206492797393306370972303395778812794832120783775829768957619426908597008881738040967763019542836766767340639274099150102091888878360966913166661699360351624645898742560045162784029851809263918119603788245105232481640611693595149173461369276249398989826768120168486528316912568254942779479598961425458996117206399284716419080109515944685010394425939332933183016680990800486445743202562800389097299013842929944921314396234846712994233862928927534465111576171098668276727241096947707928597157435659702272353797692573467758238886383972320445297380651524903798388691012574997550229165153045044842940178681475726514534496278888689571068634125828924053247063604800606043914650917369586311348727952090675089199838418948291354055284346208293586839968578068677763726328413170009013692770009751886654402782610799422204785313505684505483626405183756365585858587330189837421993977957840169517217542209370312270744277814647018118717117584193597530381639049309286732262936066724465674016037192914176004216029718188485600021004798894957564347822912538239736408952716007202286187598256275572593243027926894573426546864649716368549152597142677602828121418724820967123243693996153942239612021557272008490158291166687377971771788144360970939576379708457614746352058403603640038633899558275687121860273083240412867032802415158699780279236024787676009030429996412270922707205190213225695706876239356920528383352470422155936776547778271753944476644189901841944803608560049176262048721554540995016627371837077263760144426260924818692951054836926629148505250591130047729790932928592744201772867391703939906590707787237705529056506625605782511006603432479198898822624249791165964678332779126357423932822831119517163832009777320865614048131665227862847628907619149161976934139519607228479054474439031743704694294884387294784218959262826679927160470745771572727544197612626979345670815827265728393340911656014684856290901596861834560141496238861252112151617420469657793696046484432752143414773381229390620409475163618362746467583124526490596106080882491976477003106089768512789174059202171488445109161288098798939932593279869692555610377252337807841022578367885670888822162059241999885145724506042353513219758708627521730602432668132557834228621315661546362817873665379253160033295698454858984748394018938155936853996934346171555927485452567374834423045485631341736466558029425134852613207212573696432115053744655323491927852780664386595264414584280511222474491843833443035823118384430912902410715041494310955866018560415499605173468536341535810810970205491937378014432913277495644351805873343347399219381863880080760117107839062535683276834777043615166001140916211413946276773326615889706231783309286270583911162326559693803614953740603853097059418215292032351917661194097749444105910952452504286231548349983608776310263206951591467943613685930499611041279046796381684673477965327867527537676939179426898619592516640552108140601924783300486048237317298180238443082571266407039180186072459921136314982357537667104184679059963860866106720501380226853644712919561481040238248298554937640432690092892275143641967673221904553736850789136450089659926337431562803164940603967052897971403033784940405935531557002122273642345187370756415794686809505059040414971145636481982279963499918195469379724745103128626702860180833478893038236477398186057408548965597903961991862415741660885571336010735625009810628085194708706520176672169417805438780097209267299353476567985627914477761010182769419130593301365761917406239312804501945234897202276168256793834445357373070383207427663607566275047780077268860508927382684975045116133138372223107911955176279342073036631653145683876834525915601321795836125657950681378076908861136684584428856905838011855860475993611515774080999359552883477047375510372869118704392686088379811678002668469270236492463240444868527585285575882971102049532760069389577316841024759797859661389052098658510835216869545922683259614242736532969630569721050798834168179044403344310207764893275730502329616206189510162922583225059070090656885581910786995831963374314373185575812687885057329750536325742069872287722424112071965801014484221953222036646548140973245863294508334613015824153007007674039324359698963237529442770913204962101539823199731528804290434725512554807197658050444854375237394709851205761436544069734006886115285285097730423979336856775004792457016425195283197561874213083305544340179054711884549217764059813606549967560704922874842282989598994989442748480764683742715511673429125840339703309099445842883970794552455014215269503030022517272624063358028153725835481630558648979101131325862819751361598138834979554282584961085366795609895920464284312881730813129182944100660233900140051384162439555073881558248957103505672776809797564173734196193658178721655585497096067408178196826090513384594986452732424694748567567267513562416211687141860853100087538087629717896662881601334275210774026915534736429968875821818864047810984146609349117513025866837290231378777624126963042571218017960084160621176843708132881860535715176385163167992114363275433713089281011667893810536662598173010365175592826162542655515637770716883817394546188096828341458380462248320306042598759888781137921615199155964351544124049983477068554947739256576497175058199516905646152345727124713556259402757427420801955237397123312398985881854727696381956003490241871809768547743848106402382200300191436923956233173990876520715094344568389681837334327797131333523648857127810786929265415253964282667252712556553967346472110765820447370855624333659863183841999841247537155468537894410275398380070164747578310422355307324122052022942912630903952571674230308649730489680172995489641235061103729798042425794539529253081133435507079667446861704729471817023710367086822149216147690759790902505826727241080032470805159330255004752187101910413024546015150836098003705590603191308349945205300460550748655296227206443213624708020090454518370077056692242809514161693751712191051960691853796373732783178217039218503339363452942574701323553984843503641233427723033395066964847813659389924837453014524337482205294455650282531568921222702182509445803402773230379156078948108438412642361562804344862447299708027136749320126144046388894409894333713614851333889354317533251743107641051296829541238397872198637386685173897356263694172314414009289219011170639793419300303259730126304079671187446903800327898733840470410807514254533549796203947313268939131189512640800459210384031092818798718431692003522783015330609188882426218145624043795126219725387724037240558125883371583183619530965186558857911299459615224582033760576471880785110816186405734618029019210193429877836086165813435605829395858861545697533920637381240504583258718102131062330623878838980709833903782242459725320054216497011983900983574785118841451445000207207330732442080165169008551199086620127149897025274350884818457613678385966522452108671674106802924306112399896721496441226380099540255292669668800484872391194456069928012372038179449270413244943212662239195230215035908444972399204905172159946534802239962766254175492009644997578384537920993162398116069531642067727182105697533298104395116501727131569380375166393395536678210744562030398707943752777819779869022898407021088690476300279881612874772542282503652685811858837938990865218445290790088880843665216375518223155538718175690340979493206184633888957050411353113940082487868606080763620382989907425319559998966103150961656255433315624861550107360741602201245711987504396817132555606177584474368923345244201253110502493093637287261048874942822741168812498441062392958548063627137513282090761674042743406095593381202413570683628078482765279668737374371693363936950101260539387220098837249764207663424660471272037241065392606859052953029623088026067222303203679317395208362438985820833327965843057286160618312770827630192901481679695944117951408789466297103852187734096965046436845494346528192813361479117003783029126638209668144660521662745636546110276639039411972103427465436357017176231421135836457622304425852652800254381844141034926865282191840577640023387907089922424954695074238658815518106039887336635636073113842194066034515436385282098505202125293934207453398268755517213613484930893012197912562340998668652370891708768951404994391576309029496126788295696095275837723863388313033884820348073928735559244644902748373458768313114598220011518626737834882261037209241847301448394236977347351200652686465714979426229313179385934128796120307914573663878061217149975874604553033782538826821005585803724947304272825689757927606057984472898682776374715549727280448794108832889470694884041064185345340104118680514151917906969217228667833466383046643017332757860945918104175864367502019335962443380781095515073635697297825044903456463215544359632079561935163653432111598772089243546643665954374099682479379098819405209551975329915304905009233109808205997528269899825343311285234645923150167427079703185443042940314104627886300915676791667525394488182248643653917794402577484292535952694216171276803654421432731025418311281074740984234271068353233386406433853710610295940549814592794340672864939885209076989990300411762920096921993453341082739185829254373702785032444317939413127112375594052014745746783577477553406527413503449482392560520051850600951004562144473240694003742310804067867336583982337699292303989736198840710156217140956396395538246088238627122857411277327526795689224118856031027984162379330936374990665232167060242985532046091739152241045333154747324379251920956148458132879852416076680761232549931709511828651737045179167061886610006081846927500093806457931091718041802704250537030788871640270094500638340618989213150439609148757776095334988458152522234226204438715297355293196806105734461927249771040123052767919690494327006321881283383656109157550680624993535925727397332742757298373936743689487281554784441593463779467970483670957489553542539658844263114523350217922398448265880453397382198745030240284972849560853608867931100301501184026330603842638872739549244721507629942693885022460113477272804064232756725280975088468302817892052237657914404289530453698236632236684750554222343554291992207800136397594672905253675878236409431822889940378576938844690012948478910432007236347326138721481007329979676286317542816064005987086111433492135365301535219887887014182094432870019923071013775083961795926722965979187842525665470669577192928971278587047841542796891679364754035113997357183485466616457064556746482976900890439323739928640070878626653546519395574017744735466703571432018931929843025942708318326753939809290010528775061422573474836705329441996545741911361369242923467645872230720118448646881828019794723764120065224800749129781561240253530308930089513999358481009360989249777996256843017147588487338406928035373138858535766396815462597307393977388806916510408044877329911311270062346097498128101143147640960660309495478515835701950190469270818381132946988151645515705098421025621119991173915809066158768257229849814566132691695534867924229277153330374264849594064225476211947886232787122641335369856154632023868944202014414551714577488604641152605276660451811463515707842995278680174460688940035205676503215696303740830134240016698685468040158591679926835173032178493334954941337956775028248149180813502810005735045926844750538614325766016114309309328880500097267317458712379990696528173913899304547156639975184197996805019307357023333752379076519322997580407273083661384772947416176486444134307153870621387364155315165073414989442537308210604857314872484261593352422878753335246147960787581189035533745738476321014702716046154885838992882851408010693915864175217373138502125354398226996554915697838049361213825769993342243554691545149134236530315893469898049072858980409104480041511851199407212939042493361379071552600647184402416279791024646036487572645465406081162150176898339346642553030431834280010484945530445269459725941423371010638501640496178572400995015568565592430951071898519142378841511372468430876594407666002548928715790269839278769066068097553384702604813188584774899991846896521211750579372811530636152008215865984006823801980095321015009182560348279368614225856980163636838329314273945875347116364938868734306473759815952399929877805842543204335929718475540486225066487912759205848088288820443174673420136289701602521683218236111580210303356938557337560312543547967588583914983714841758267317811328023772374112262303124389369148949279161367203858211334270112346518615101605309282655222402456127726710881923300500042387220385698242091233960264366436406970910299618315123706332001622861077654175259927743799051046796550351036818737022878846300837182877968653526776840021336039834290357014643559748052713275425240922597149924335039580673797170874114541770684796165200839097318781497501723051868731021054671192575712485509073478335173912415791080174222843221834485138153293273732149388368058210199390496863326435810359727995377063367063826906838581721468490311822914024928769885542989044156391352718157061317042426419154280265173189967621423723657636478798496589809938646384405590109731588521526509410984412004893687531167237988950181152183546893897046472084877680516266790749027875142026063616405867308608376699590464594772694113839737823301684934986452162946237192736479930769744618716848736365288091350814098105071561024584345676511965297977272084678463502239217740657394892362692521379209054881187798972484931393237614571481999547180696310148161052957284735839191817035672916975362124070687898330317647586763331843024341527940077481598087306507424599517945316003168125218457074852574328871241764068710996633566746553803433905847686087248113870325816213495056855883178448079736451580050876227576350484710634216961937345297954417077234462178725757858007022884601694931004160886682389257440118781888316850742193755420573775783989725528683916133676862998826765617412492105951486495347941992867755140030832354649343075207195727812054169080102201705594491038768795423750201193216280823933277473490732126705921934004235435964139906588469043192245361740286960711559340620903965626229859768618930747600532137030505130851540109382358024375829335958212169986897299869609907908089247178148221879587530302402733533816850252454037184571597040074282219238915105947506543377123515287267652138687632686398676790515616588147657128004247531596031030499734821831187207525069410681800510128559902412388191948709158191153388260988239683341145508582928115064838961633505961908923777736940096530449691304391873873526051383080688205625932973690595002928183882657879594268313638612859028040275702322035068919173751628122456607232580973252720268119754363717777309113818874037583136727424842836300637913385279162117243012813228667124286572961720181154985567164818027856139970651589230585537188091666082312293160409168120506091784594568499814157419269338038192559858930638737672033411626545694014314057470601017396426294723298295232590243034032235047008614553231638857914001128716031311502061658175975291996988469003866679226414667844676037231815472193825166626455521759640464911637189916447363278069811911590372147183129706010473727211985614519733733617358646273219997772008402166611654285367629770971113797940464681356341802416067397148224827689892683900596547257191926410067398549059801069150852782373042107193849899283548197133555417772080931046795450162160240528558230944538625653937103456512382819311060629729971073603204832525054263295398580698963459894095324003399706343397175307001888095642123972501982528131795751634061372781876284876633247686642539859610432405812019096239699799174941368089620070265060813517835590697883804210852592125582601077840880330202890986113366053323167028658955540150656697472130947559170475817523932854919359652468852448277869205269801833090167527779907735595092376393885187772924017959639595499755464929577957149812234504338733349846888279213572699018098923615839981500390342510022408804964739668121754484525042161378833167254591190641709486660905363411361786877293813977049446698504039878341531817922994633659922012055629042003308164892235899983029730288030119265070506251223299782036837899185854682390665598141868439980597448592572472649558137589296684444071298214089377010833897799098058654365306123406266811892143360345148361842574951583732581592475925783229587323367479265583275570928386656953199450356714501099506850625537568026955357156764890090342124364276748001880468013204565840755612859830134934499748184744224957600317492511219068946989082828983709210263071775928427494371445883113615524869832166149775351768971103392214110831540490013046740107242693393368547115169091710228460333023201364636930266781804552825109816087830578882315075150112195450386092525970899987625944025061603072693710212695249604930315025420287200957616927254464317437030250841429792214252630283089363415392354725990719021065390807207820821412456495479393724465178492146101346627482066937306737165084430242216252648259134464289526098626892647264209558670991990345076751183061779138275339609615669862003300308186051427582014709713077228718867719094626544949080805258182835292386968204210060988481840964510543920816212154737728370310707456614737161848470068656020964887621301008375106871196069984913451450646007449713996470164825119462474674977473118885500765866117017709361791500789651462468414712511710473736504317035514147298339112121821884435724892203324414122726821060509790383735626746652510380898626846157993839016986633998093944599769802779601704276961596572698993120499498534922798579589278377837525208086509753834847599818939762453212484299084268340526021691677105487780524813734623945242049465990844524432701051453080987606482500333997183578338914853300946628071852582621173145166113883119958488534778594160552177925531194068747532472312554200784950803036776658752906371025464952320995683822692699381471147575848492887069874897510738454752134807648109638025481072218124693890049635860744517066955840099891623732365025778591127500533238673079986465489659232135877677775703378831584015657939680871077445237667458639964230723737835014995893940819874626834614264380883678800911786591093224569380524559796472894574300059921592770924890351309186324925292077786028172365817209130069013917041223798218515744301976668084669967974177446117287853051439119140546738597750426257076172216911250903052185564869373775489685350024731890876688625083117165596528424319140397979233901355742124260876678955850672799065181215898192452511917380715421882128921793895161357692500226783801663152700756936095978916803236512649467938302197210363160314044379994252323910038903540220307353108633124542686858697248778214011047793951566394597185616495062915222281400393775913898181505322513038275773693694891838589048321127633381134207096759839915128279002050282222801903844753330902723386686153783724448265965048558653037827430465136334730678108768368575717619591284960136349583482988420424398343014398623606982988438472939085173871094365728535939082134037641524428178626011456649220476424824979817150744358056747285657620541430770584237713825815482433991496941875195863847136044728733961733739979052057913615650112506674135128067615246083744974846091489136006652092832971758868768066451204369717605354916451753014618339425497300443096166598314376884491875733513937895930776539183556811727366519457219352796826195346898880615534783174510774640658200885362229688436635241157675542851840975586401035630192536195550659131926336677964996466356819403234165232313614853916565076805495409702717421648508570197149651353550077054751835419976085519576008562327410949514952976563063465459557912608499131734390779510547878735414945554699498955882498386218229731450055997741079354896778400188584394743026632384425291854642296998350475321220248408404603377360760891683337489172002159566506942268720819393524075536899460452896835292385022321476937911814374955925569927981722064935405504315326045878252046728157980599689447239062482533412335160573569722508925954493879742227358900654752195706801484749866710412273998111609543001691484713677308233604751907602542631714610323475986253461579718172513469250131823055271463072782899085007165367593021186226612714019396854007753854948876157194534195271314274374775151444115342665442102278931536573160615274157705244506687172351480556171827986733889185608995609517676989216822401235455332973472901994606778114277436501402384659050293346277871960253415957560185542558549498318481704298000387961683340480701358991020391244291209559608149197902343768627103223604434242917672787931814285828958377816001694815847242077932374090583102300066047880480745379432464229357273783362708170079412969154077068943787812580452661479535476229281128613909755562803138360840389867904674735899082095297972642957957217827249197969810860062811387288858436556267032518215197058904283935031597068149425212208727509688986092375578069780717396941295410185433290704543110831659034952261286468539331555405938491203432776218226431398273697184976527215341697622410435127400543483564621263389235432762763453825524114038555486765205433250341772935194991819936850300353151717630025020842314493211148975698046635846736624285067449434884370239784007226081560821207931849323030253867094904899136120628656379997172766397830563934863098666885582124480043111248146365103688054383268389606977442185110587876876886380043131186396438197630517719596445595815622381202174250851020139027002824087888092818322744274210757367228416268028075984688878956397847404088835693500835028220295772913843169125263392693431160150007619533981153202451192608928097048667548910150059441300782400692298258406625419792671426444273530200293113835782234176314376587267469241301427399827852391512078879725585972076745232364959049988332044207263809805433281937897325103611667872878261573873423947418689739723355971837744354186060173654876024928385227366006542334922299904921468897196120889018922868448275890538576518860774329374918062100460899052641501438323286848893372166810314105109479322549267453107239104201025289192609206758848493280172404352974523208826454368741223921149528189066057273852672076213484241706418322185862653182772645235890144727188565589484278988039129640737603451384208001351699320305453764263963237653153957308566231745492855569593141356476874447759437104441331725980680862618845705298823229736060480878013420527887119085856150116123035853914819206977190387252228237302718874650155413179483661243408479363165311334863059535396054602195955297542645591378069895543280898221198027125687882638974426997009778550291524386449035463389957762229427439817167382561234380496056743256814873444284237774074805051827276261688406627974285486879876887775759586970130019230786913575107350269077125768225586341084609272101105879675654535136344762222451367416201252561196387809896134666224529153161458374414998518809977051643364578824154565248358384278610480704591419981382104191567745249150897529156222020280015733569696764275028661549286108766493463486534872197423522686315839354054733259781572420776877682418703792318455586935290823512739710405273213633180820459977610677302314375872679497172224710075385641038262690193955592536338512276256163226950150150754827274799486881997596479980980700988930410256377069058268510589306445929859544334165159268927643825004023293975463628916096808674094895854296737883592814404241779526107682682300296410616334422757445519530673487284624782311932487755442551972894106970710430590510207347060235169569677494826072232046536804258527705173536204626677459271350554211660524303830621273973028298062337954065284315213956416307497770155588249756973180696927095993431052804271667584039172715292742501442726968727747313072375887699659526198046941858947808202308074780830682930921876533740196533516200803564404849458048990901164265099475943905425093530775311019188161788466045857405331094978846262687113952608945169034294430022593518943401164557821379748344625426172630191520113140976637897937603191390406904225593936052791001359355853766434518110329515196183527502537790875012742830148522286200595936343711301753495597703528583444921226948309086347498195355635443903922600420938363620989363635854387761865995410320980177976131136722342872251892788254536671030910180690905012560499271856567851642769167871713859738692689276470627613032322146768117459749014412400162954270236196125023187144198698206622313201959307078615476730220329661213134596350161641799859784727922674461401427163894165182961140208926013184110128163959073890661756369541048182403817301994188237574476453207642577098174793350402811337666799741640899314783497141844183896061751918259116180180483406857309095190084430850565709764753029437713037971697628905142693696562325511546522977100893063519591268639232277344197174102686216823970507583862488845294498456542025387000056034719855208599746729711350571824473271303097250249635555475812125608424506277689979481153694407040962140874899615689296755674456176614900002934024458291536014718379762884939956862548640304273127351232449368856128855871907265584615457080299086514254316973983851263289816905137617936702467911738172287200810633765928232677745741808072453270666971043626827320329522979215500950808061119065234132358488087195350577914537283791402648498237109240130917903097441823410741188525977565396395470878437606732767411719520237241034284579360249529776369786043120200436441584133837519152201783722600712849131397117529448223503944180172451505840297583682039205554708740048758671194668510524575821004035784350442039357886818905126064922091994818191399577360340126097837173400101502503837636245776555478277838716888338857721781261427140283537470178252370152019097822345745290698786022477977126060725349787447513538446182075160696410787129592012025947412629127195035872515325781054831855126296454765298366680800735518094977067889888931843662140198646651700603877247779229392967419477502274225405443135367311570908923803172522831650977776191921269245976763308022484456165134562097731937780504074979384176906210499724953942085061008797118863551562302520429375332993738005065400927419889376509423066396192401344285773553477920998578272769979735391693077832581075892195308285001263461555272895745365721504974862349301397460359253985567797115284825585917667299992029999058568986483053620270657780718265701332710476524356707065721065559816432957487655925616012044173262900523169541539536235861048206785227502174230029861787072479160370697117131835126737483314995379266941268460149014716573709706702175381079180152079597886546949266874944281787999685126762150233057803141591266057669971798296784129947180643561442159022442374119597447905829898010722868803815951765641898708896044955080978533324237725504168451038683775714215016337771020349073812054622908230131209766030163300460758753399520129663847938675782726049686710102272026371125792165275961261984022346823029204352018004860791917669502192607114527074518818643118357617474111292080954378693855033113755016705165479389828731122843341234562550059097770886782789067373756318179812987250179949527126332965551934267124860819712377325402809837925787405899146447018854040635713971324130619024518679193427709244788003909144926450307854289768035342590691004313336552230505668608625581475894016039926053356910161522696130441458403241705970466092758496503547395726752836794428567162620818223616019941459376239553424516048166382065851939901681158066382733132544607176620997508474507849489100162798417979134259533498512467106325379438668780303787916606956916438542190155663940959968450339108247615370819529384229689539283493806454721726130009649277098629381786447852108785782092789414716728293779009732212093277578048204863577079789535337205354723551607687334214624165783390246496278098545021854666630531854675652938700056798112219175495844894985266073466148649343539026121981964833941813275309321642965829617523387966746045636485829077806403929723755178400213560562698247517434143484784321687619087468681485452914475746542090538116159021297263357893848650811611152799773342831783866090322461164512645153457401190461309687253718939698978874399696058314018995097432760487472098074330585747722360944878401510515401836820993876319760149042854927251031297830921915602975499044001580545519825985912531230661730414511035924511858001097967308963368711524970767637138019628931021165787762709072111544808517834344166062196761881496446342587303236829103614803209512534149702758295192578566799306925270168196441970319089284786653703703310718516162038391046473072766677748615666029304491101659309295920554294903081551945434019792430029989103386734363529677404641004627171673874881440052024842309522306951544261174428731622654701314923538689110250002460709404280574353834580689095372111596987090634901128484671408397623226449312786811144846774270697777774275551537779686941778879873902148862205455287647055085442051651115166506902650979633795802552515107439691785850246969941979900758536694161484166856809823864929702391935496738530119242237245649064722508014865313545299071745796954004917711414899523667153900596869442775242762103890823299314085159309760101852877133765070970543845794170154469790810317031681578770160486891354151648052186193023740279939980574820203260730211187919839811117320374576432448564060637645765569851297040652797334129946673821918394067076565042317321242271411468206426866068061047117242985412994184003304348896452980914835040891949195286844650026552654974488811976832835300039747578234331335549865895479120680198943998202229194677059979710991423153194195467938749722233529972893649533048522498898556127275454565907498861054209884363644645869105762434418132271586237455402245841080287697891975653406308788437139242050648364795968669333797449029775704185731154703186584011741475178201638511996546454025906453428128547389953178668982204838281371964922777056463156386738843567156260070735279077844583417959433422959241491852206073438144504928765874078622535450146120735358169177176714265277679280153169346358965047188416113626071609078693973975302344214839274542905996595158966211146955235605489070407777244448650740186580232075098904223029928610061555250569515293004989812129720359585978061679284028154798477434597420832834314239815703075694450388524620312073982841447490173949929990058349332668273065921351061140911582389465048307372870326607904530395820253287089241069681120095241733869878922285481877062211788765852088143632540055386851751586201340149656983889166575890026709340013598626602268189524130464980031365715562868045601235055766311788423120618066907733613488477450818286642984505842739533315644208495397289430126510892420334996019277867904448271828079055380547969243643686145307019197537002859532287463446094720466215922496902135554295248773661284692705604558316160714119558648071091464844916410602383979113408708182635553098011135617144433599738671264806799004333808111733409632709376022043107764717182009876817970884312733361056172744633080661638870963507878863714173606446441569336038944741371373135626877796456527981482930508188951513818225718605015066236450181154604341088394544065324732885298568241644605673864136396505748870153323030006316072866470580827323446014794438240986449648542698665497674279813135197556314792499522000951558712788024361609623143591203995608679593582084927112207519956323045859102414406245816992536069214279893296968598655767969680483876162895949193484519784362639537487747225601209813859119725123361561380758095191553899686654641370510443924249801361166534735265877197755551469878563862663688140476911778282564045245243649116271372574822126555786913982759063346563400602826431728860822812614446517321338577340024797646560117425517774217831873931918194074244181118397752327108832339307195703903611656076890651978428216816111640066250024678920641489768577546932327642880495212849111224239338284106564613272636368601981015007817957295049442436827018013655016936870298320518293975486030743670120241251144808320058823787893790500341889216628344328527596412388860228446606269030598723524719082007854754205063022976742926040637920351139999828428811307885468169454900940388444146961318866707239358580530545979941309334224971917572886747924599104686711370370628730574603045487870400178104525990276030579971963051577115034047303614594004519339004190129520393979654665876619084320331366147386948403755756908861497949872630181689544050074017295152485527917538514323436733093915129430807497574925266436815180871424361007635353553410994346134729944920606938259941608088442108628875920947487167092911777941077863748837222497842344397306350861533589390504514881333751773092119014769288833506463205458212267600694992640670124245719443352945025505040837433469337715042717592533805176824362932765373988350521211600189404498251382548656054246619855691725568331991741842561126510506721317717829748860020671533925909048513836962549661261848285651295682322376332957157103164238080200748915238164880392146610709567689074363687604351942804660139786904716375951687131090618364899328640604242096852646176864881296818192357709633702911872081181442865632717694175731138762403987549465931648126385915980378647512457778331723681678395257737228186561378447033356697984103193395648772307099759604331060896260848313896849120525260644739715519750990026190558659979239661798461133903401489995963242244142455889848950473354429786162963783585280308872551793313039573613633774693299450001677660279834637693556145119378690854518100469301331577719503546641610383112311351567318004509569826143161484300093490641011938182594208420879518280283290636110236433412692375293510823841873499411523486464201921585676949332459906490932175895404799705949054920512369638985499923140350132677488620661156213249317520630886504551671090318193003585575044234018599417763881200465333528006691120679763646060075746151740530094013655649240345075997877929867936025836779752735812422766459241947413757560174514755058703334026979400780132254187804637108032404741654173792472365748844833944528098180850366161334863098374260235753755422496744566488935394204279074710221189136162926392916280635492468173420905443387250214499015575140575851888473510523210442781192155088335113966532699875603781677209064135641489735144238836718751660565799273479234827522811991636193144144861835644412717603213361724052894000197685978583625876204937726513012079957527175158342544698282066737826951536041913407720120611532958445237233831840972314062473394407375374468273753431877595732252110096343956793939445690250673743521693807657514488625227426776428429865386613692977782135216234556068450597850042883935947445142761748148132318894547514098956445277631019879651239992529171512840206292120920721705760716385976575927317865410494133750568407963489726946700074764312998427696323599251690795221649558702702095828894833166540175954642731806847783015580737157081230483421618559703724103999957719499117178395429700244280008813024364521175186498159577315768141309850800086160844290775115169800090582076499765140532321801665797705880735260616049905031615640034664249626365511130779805441959388890683702103598907377520201200043974464086152548257023596883868334776099956484511821255089795269564780290379968548882463702011225923948288683735829336349464591054096130000570550113790645776747691388199613707903205550153312417002091848749561492581057553887109737742729961877941681128850459066875117314114485007221298681074241884881003118344336621585436907029105155164557854193706751041001574084463251087359414710740102120715342880448694082377677566810833622428692617461394187988810749768141759001966556717009396222505058915984184941998130922435959205763600794824713819477040865595250312707236295478442285020658821174352755019401552636665223698185281031615357254319774268635514579928817453811802208514198483316852699492864930428601332469354216703953727988556818743428024222490747361408226863661166091250742760927227113926293381814093459765364897689516329842660455274554489522672134698063328225087125953561042231229843462635472094895600838787441172094438601385805148005620364999462002822101832075647025883995169670443759949500452535404713236519308094156875465848623676398589897323770335720433289942961857433620812527999425713356654097175488226791930158012055586132459164658210048129192545515026833850657103621061751782463447427390185779105548154128950595537156620638236596929681457631730731652308535568927963178708173646042257199216775277805548229719004876727825131058437773422056928586520838747437467687971141685039764283734956442294691472082599744856585469338236714687381072914810212675869852769161477747943216076079518452574752742047206619654345235107095411811250244936654144213445660625358748472936235288412725226456983766777884123899320985521656213063455292424513257413045768736118580342719703889687424530927399824832443210868139756762894682529740575922614461921948433927465246272688850635290796306467043506450168046252196439448481824762582000656897280327145030581388061054137189305738407219648855135869321909883142553446000305189594217862896274470249768100988160590457904827158451854593044599702094673070863458101567369149153346039049100391277848846321924370077195539294213909592036334033100539443181730836123684462193630144260585980354721893049925716492964805744895265454136268206305864966092091758402790881267237731048171585628839588152906986650563224258219938666238451856706652233633940246848924241943383621701620475111293981341407994421148235350192328171601625619523991226053123219826741929787993798463266481324780948553111470566639940079986279774738562341965975180461905586943282022063809080910802473011810488834345250812385084294603717189987461022672151595891298501651033505492873184654103376198181041314223940794773142615622849925347132233805736138839230310000270092242038284615772595648297624170993808357164399043389817887080322767003081273210649505970697171997756194557116564815196551656203406652217793055785882018718880147490661230234275306082765136715588764311189520456831010949896018674478555353423031830044043934811728822942671064918107830228449827576416909744762477045370409100999780201394115716155858859425415791946072067773802914244884138217395755413602235734531204107265593479409431402195951602908923293503039011074103181369251357997612922385502102719674402214518054297331632816760773280500018454029938800825060857440250513526381355714773533591760230915416303631492684617369523609286958136604227963037945218914468380684718450953604088544584905228939312685613555557956776578943699847803283254136380294462734921866969944102573303607017361305918724316958924378070301977585521421591272638466465966045986794087225601683744995586917220887960309948232685580394532157351328762702297663846995314162940680211074694667488055577700704372195172218217620292658542739719992391882614927455683803357843520496094135345914629557317151090264162448554169923888045258164456912977705528710276209080715153886973177560904963693342889723422492441791339455452907497997292842902600081418860600793489750316055470522708100683234715086227389165575877874391075440213315012781480776182945998152770791826943936707894823746008717653618310158017549882525747581238997453298831279953766463262095807115024660077467067842868632812871761625027705906642464069808747382374987934377494317672897990177233011556177209304732252140307858268950807154768582643030903684746451314694290093474453655136975884807892485195398473114175559559471229897470542395890749805125880313308953886650160372949859121444243215398223849859482206365153927927601806930645717408917102218354664910095273044618031891382943018771906671703608885575721002737608893824340075568316393175572127021607885614419122578730224176900338037187673773569562841794834733428444602316627555940641506539489369760624946836867825920062989304257822889297295349553249015904736531014592709112216070383237969422863216142253532510459924058331529071640089876466821503854364753348803971289802401648694683139408456752025411174004830393375460087067016183732545300958665658996031161344350317778955242783912095957927395888500337066621649943479568425680430407021032796241458467665642297807090111719284772954281304949614871324400232347356544694060207813150203355832811797345847584498672178024711147298379097799290484196860444467126898406578552701965230640330869519851285477203321547976789699027901903382424759219816266310441960544975677907450361660114933314437481057574003365341473113842438179156260747329075062941584958509246178081248035795510451957139686307852900327108000446199451579517786788490840880004101995703556704964643281122553196953884361378145698527323017733676261501580278502567149687182358432304471415710027996957887025343879232198863796025800682491017508717115520774304838199769180744683777070282638641545593099801573089965737810114825287499746254140230562542147903113045334090950735885711604095424392390473677600092454302163004205614676458693072852253826105150524144560342119344608298942792896549440802122101056160975271872928261500277251211251245121947391750320897774280260347526209116004257641985164743195344906853685280740901176714009747966383718322691056215155708192859183186122239710810813839790076996224475065619698297744530304567647737020567612414956018249903876725908046148196050473851251167102043105069556237510439080032292639512979455433685550903248177578433217380644904117738195177238807216571973489891116611706687408021346250933235488258043799447755663531786345917969224101985030359567309047280323046652588418264189679937966839056664536797596770173689099180497731876458114496371795190151339266170343023438073462669199653130809588492277195601409927305822727360911082680385769673878015326177559409883200917796306780620282272671568763300841452048993126734499573687364327502692547170551801464331455732392763789202693313348092371338436598836743686375364171600763070838715072616225054325054944013101981224511062174704718135003936841988836099452224218732483699439961378812784148790916047810215260746588401330423686077641355931926523703345506305192250220326984169166271881158842190232140243841545280361325940387890308443015660107754403159831002373564730067287205276271442733927100437511216575682226216633424919559199430443382895496073720878460443216606935323529762709348200726367859499540843958085408647498301250213758738017341464186964401683485970429246636152096986266282089844102437966867070500872761002421127518447501797580189923101722056845365491612092715753377908898832022118227777093898212510461188085530512009915962300765948303932382348940281421307489238991600241107577528974531915463211975954608339462016481736652619634272546784498450106914187752478899508352120150070022425729366765266768820166647443146392924560836514231088290438438156372557511114875471527252438293096641805524402065898865884182653717306986669449334112978821076177691747027021088521967961632525681210614019497568945341831995354335506473362056373864948948011592200648455656161868187909424463222488659521034760506186942404641512513050597695053250551784351634395641830828844479792656965846180060634433626997941780027048184804297191259551331474130468652148454853652445414639285526076878481961680202089618544368744194787524264561030705591271116854871319601409735307362078734456140461948936614600001868153618946760481521258909245496391710575565343654865742809202772073223282259499715030690267216275066634132092658113691209051806675283400965723629837645528108236397324193753303593585715779093446037157844251309186770056532745907777279433067517619446264381494068322217553623184698254793250195186127513318071838663161428723112239936083253123511382600318080786577784559355739851959676428416494666753384811486345924610302757642813283212116876997944801341226987923704839760994524173168608115750180098814002573839433755252366599797379903832278933426727312869418085488599633719935984159115020100331004563040213995256977134421347092821816865781677974156879004973712543547864015677623892099927254309466066934020088327114476990402597185741331139825824291961166328147430837924639616537782434075826843207103798335629072247049071257304992552233909268249354061954995917977835515585900162531859641482648410452715049665072152071253055984522159937325681012548231946497766708248695332613882909627818813202675163020330583213912271345525014818271702890768700829360730851855765989106144243444569527307179388071396450108571508174072674959169828236554436166538878023414524237552272999965294648258338201818932251620173799505402925538965248927666326054583492467401227116122965946301248713730105039720653584193039643536818584756021463601491260895941348215638890044124741517511967324441520102250352167226518600772512191400063237422603096078712284482561361904654478479693303634755572634624231192443345336024199403417714998452180283535746659395896908616671317759262044119479701332871599782862982791259567354451284555136768878462939990562494107325774384423763153989075406602627958854878323153320234662783761075779725409286950179211315632378237096921153560392597845938931564746993660987688204230757936709315297729168548907684017470741964631926532245844457560443858580217238297522612063564848386133144660264026703087474562893935164863123943399940374371345903013181710401904522123037708076765270025141161482034939397608743914012747313061660318919297008916149586741704762967258818182338231578990944240907990614846031094879385275080471254929143357363509900769034093382070941342640578719465049910619757182023443715651024577406442774712099510042871039652905497119600530239954168114060788403902394016326086591415450981187560877756902555593272154546830544210697832360680762411603182731984163569117451232060890458100034680185633433291408519198852290699710976599312512013760198910570869839527006877399315522464316477432811669338123273317049543445272300247292574701284190811916466185647466948928524968166197033474851961706916938197385473465459615155131862879461639538407320314148184675991156496022448359578543322452723779509694804644877117749896669132248593334039668186373334420247630610495995277734541156433937907949413796508560845306798071754965055660239049382302754662712485317908366621570801268737325699593679193426105415281452719959096451124140114111334065023327362565409832881754665983579630330179433119142747778169021038845179345894827552493464883487576160108927887471733441766555501576297873440842362680518199571159569702317328234934001772719272372559370686307065042206479636269068876306309511535250918326760682556561557356258282124001251350894009629271558333693389285559633657973874502410735184140886561884075296213720362035503999672027116125620421766072502557825927590855231828474080338488774357947655505356728440546431647618176443250941163118485970631341984848635183350850471984775208447002792076516280691511123396446236624237065543255124074461579785553256199167138217842358118362265394107565564024486029322490638668244114844343876151219644573576232735711646893270783104692200341057692204862416601768255234998750077007106835375037677525650986045066684355804493819228211098505203653767661449700491506156502796584280446956431775551961244373512868947464320947968905249300532331936086765930365446374759340191145573462623463471222430830475372843934332120826470717277818599622222098179130015483556670893177515920240900209399618720579632813734803236074613475692208729408241630060362542873702214765012922583332774527639452143520452937098384382945940877595387711795541467803248505068634711516703057192697411821031178461912462583999167111655536799738216952989473275652278408803548875336646734515447320953753473806611449782625095282869774145650784312111519358096240545544273741714463696250056824078326867613651006233857469202524767937902754289602646789672943120479430096038492902924062904031246044690778147541279495273133727872456054491057524089953262120601693125595290874976976458106593059612544090979928079206795523487395699537026708070516166550115019531239006167050680736962434011323894002021809618589345631263221559629615893164085458687162723532908844002123483948478575094536376292025631270543408341882778644832376961947612047571780265092266433858041270003642281990753143953231858268003288935088411756903056207427685908349471637933970633816968447729172554370745737036885047290024731791261209702061785824318487896107523429245238853583769367425627873002510999949727620184891239130587776029086403792535988182026074553556334711282296521485019685596923194503747420810380992268004993500089104286043869377820849085988095818427737363900303347730386254705460939714192862144937702282086372429511694714926651937058312947738742563027955416436420766424864740052507467870740574005432709990171142950020700080253030671278057039659414630477630461428976698143969939431774932868868548977880858134164057205809655064440422723267789030414979265336402292514692590498973946710255535234575390176906580039563062241531711818163982671030351882445332344524398734155333326935222764786415042244610941539291319086210450426061262595319704461099688508718927341886669357227471383331089603778734596014554530017947308917237913495768085386587855283844628166109479306235698690537199994751885527121987982077456002319833664578663328996477069461493146866513577735752763905117966137807896876883277821796211573457070521493268490859431015541720189880317596224040208625240671573766843968162275100673898992658742632997044282156579898449371672731811184243943770338469574471367784057896493508729706269547662119423352411288726020882018881967824107350634691430078220766619086236166791137724393883844774405858343542453188546423083749594402386672281625865141918447849435657158233793316298494670273913910325922372415206770011207653071501901397545836439975499734747411531655447446569764675185969863165943967923892763598791138546120505250832052838782657829585241712264615911271370108611802540904070535465258219379186189816230375157768112230260794072327923883076687997441700038380821963395359740154612775804734067451528623702590009550820748270799150488100636703769873943315724416725087811859435649216487375497197625698155633916162183003454458070380048308037040502089178950231408396083326927557631083675976640105525480496371617198920875923488602031041491620397053893744211373384544056046819966193132380998033545533524319806419275481624684259589053078124194152312079155882193886117739146180084792202396865019511304444992951109081955258755416204578409709291526905938732729622844192122169137283152851883456674336057336545460487837461846208749872181756973481174131556953090189580131746239529863335678084860963884284446399927601091286827496227272203314987157180411694347975025016341712177436884935936624252752371258839214974613755890158300436149867570826551881101606502758173756781855912521089542987935643285451152530472681902742160437452398361790479304516888862296991931203332676257238962483160690793850738490289725756712077519178672078546649906420426261137582382171141906477282117335588423036840259569914820743360830313046848882260890917043289082416026363292316280629268823657517394189269940557809594406762849376852341166993933649045436674304950485867069235881808297687436816564497657726024536915445335862360669105488723312983331899512895333219572006207759409448577012566762520023449498266211868716909371063769719592071683292086009273993045528976273411441727119519927612299508175500541455862465818588999891067252223078400076031614866897810032899211814028574778933956289065656595551401145816740962507424690787942346122957224372617559566360614731531601402568638671806638439668069415798623126551027911512872471500949544983061747342931794286375454326509529669578782848849181105287174297581626052263228802174582259464119276280644180104476003493690462121463806530766012213869618432340098134619950892702057365649554093524260699722330063057756246793002905671267313653305868786549502005341210650509474207307392902973522031553627688015979563438014683187184785984938359909391029147754549584750459111379115616014805192341771200377221973469694172965484663631941982564934637857297227686268215695811538235916024440446644033070667221688560922193256484755670870999281798849354298487944529598606483104595850569742281313654942020776665625939832512728395711244711562717122047351115220193768397488625775436367552077086509736071976842111357427485870935433440845176081408915942404952075538046473357707332256579839905265594437518133281032934364069625535532167185851888941793582432166292027744777261361865249037169205591338188682795807412128948400590487219002245041578007048874517197141208600288444602606624589360968896851204992235619799040096942688241399507687487840786824388038203590023999177161025630993497369916979945096108054645313071581537185378528505358804171337595761617719725760853472643895825956067481596708642687292307714878701544118153611400068444143024284242095638299833421203947597200824524152774973602027965124407844558530419385983517613216205530453493965378665780918818099132499441731476527156793885887290519219553645392116010173001719812063114853569918229940249488696999779456483704468881551654603583662141240870490558631317010789376376234500724654691836649026944454133759745567204990107842523764068482374410239365518808111045602543700000444329331628864558515474234669379174505915846790290296491485512973058824257214205556079987603050199072395623936328180704331535981950794743801193708151637049179459494552233381559319757637780744518917871930070907728295586027918944054029732717314712333279448719593995151827330381895099704355385219152755713209785106772500321264703642609085323254470739278297175305182856194662760735899322521610060424046257279112501510129773028968858256709316118364105532924313153653952259309175731580355800538003969531483103864068048243568146636666106140053330636387625573531971370450663831162574230162488133965863864453076900555325812274070635064339856539809033713196586188926044234720999480521178007224938469578496390252413500213318728774313944973213287363008169777491686506858373010647526719357089503240836586545835518685669575049568914015575238904760326573015894353496642002160471444230354899581346843662692850874186022617631995736124740533243293019187196161509573444664538069332313819751921743341643352048478332122998682069377277337648633102574042975841566554466403013565433129482241498670688162873821051626977216310092603200892729388001268949848171370376880694327627833741788149058963903175872248514734871848991855880520492840769498881414467615038099067720605753322050457432350281259941989361394049055834303384075875069064830378815142396474136164518051663926824949395432957847861139411309628959938895812446109020230066644060625409185287472537771457198318196109262931555934724324636312468724284869020931464611200893684498821517699973498940882378048185848468861917625946826359328172309915046194296012500635330752029789357135806505247224453711703531652902256614414226324622661436947250701789450578730245556046119318538617233925714126519034435472948076793514486565340268125833625111463962371229605394880419317002929700306773115770589382039329879734243031279102960347511803041480887302967007267043561785927815946841260665037715654577384423626847032680574012359036145910177284505648869793093122416796938288028726042696861125377716286776783137958503293058711207889971973005007517772600805402027638928259780266676209635401760012566354237704080806662954300677766151657311518773713049488315804498245576160588169275080195561180523408048568857057761192398061857103295145924414724830476787997607048121813507609749403243830888267945204420116835124955051316081794803283094927853842562975666357779707286348943706883947630231989838822685171595346985794917976014045417313518158879334798037210088300047638117887332638169009944015396393693440527542640763041240027323624923203191227138390716073179795078145341154852081214638528196987068255633460973907591055362515472432861596708840947894647123364592396819868507232968295147587950094113679740715925091261006053298247404220216809174938909441958325148006924693645420701449247069920807543981981785654199247281263423322951799729530916596586954348270954609972261601467219203594176559982149264231565667720917753518002647603375353961272737561864420512777750894185689650419560998509387494467347066782376844014334085037385404578113990864202476073672604078702675041953437622827335443945753393566288331966331655021763853564129082869812062402905526174715073904517009121642606137120925168314333996456347787451266321261971441501310097730946335435982968217919389658824562540678891052675128055420614747085933779388051179331116226005569668567573640066267222145643492231594435438082111175823854606177649097399985119069077122054798575930114399257148384868923797444534627886471324378707867544168331577555967752601056323052884419587810435195906171269648394346377466673272580580888832077724924262085047519522522259407497326636293864310461772809876858594952238015327285336691478534251463224790391976134931774904587191630636841960865489769135489028562408127713776093279848582605465512493044759821271355816838183338905487035530801978463775700331348329770986919027882265251859509296898552993433102220646953400220165973086808651083215673935840712193492185727256520450484262297110007501090133875195572628583129497490547659710395820393852847854533390308500121104012117063693700023524916543669196184762334689421056999287010482198299461944664057225491289421923682425278099762533490342968220953346286907915338827814107613140726697436430702390145216726570368521709023901545682355279999740457116721789554737842723391828723455436174951594898262287411951697952049668601402059327650361542539628977451280084304071122051141685521559287596651796055547845831533344451927130653060960425684324766607214674193757129172217353922985433815510152833225797257084608974667292396176094667599630582472868552130742710002501940449807069024160041086631003599969600841803024536950057951420465907466794938115107381897950202742346825829609879995730040095778122832019614880138413318030581002272221238343640550142962869611898114040122110016118418947459633547713118498666026319163848002326864051817074105460285736506228548466156035843407467593660337543277349907405018753692484867789435448810010887886099285270680680738885083369185037189482513798278149471745062210239678508212692199125277475081779081286627901267146545514351911771773377596722523408266102176006630541992139447599569383328973742835080328359615881213081532206432115281944232387107636251869308671050090384679559516970260133746855085396851496421056968917100797628936222493130649760771517365126238445440759636691783533892102516095341394265193475347679279047905159921184068130683147139165760254626766376257312111002179816388252892817666455805336698439323795921549983307215261508546900380728634015944749684664657323686239810637874475276552820819207175114883521858107376075632764312647947660332305623461541411604071264556072334875791167661875926717217764862349132183947802305476079863026256107626519972098594507970186959114340797757078227475689512531986903567313811910131448666454025263284105826471247091763393639989349038075937709467145476692462536906805525588201980065925033486169908831949895889226611139846333107685401668703488604599966135144719237607164965722809821817247808573914491805826835634520723473308349929203016459826441058905055122539175024025747878977106133103670464456028120567940563872877895030220758195261760357632570365514466483147465057830387073298754478758252478895574742900244202630012351757274822233619306916950681461401755748237395527853290180580100909167364044924797703886173007759326221595121255596817168709742059867396294518603001678325511644030198040041988311109389415894717994003768924423350718417574721603022383877007406681638160075980863009876808633798421021807300744936801662641114508212159148190382583567492808359961708452610431041530003716946008079015926515748791695210579415625959983066889097154535993144945017409512934801387427770228154338233788400847953010451371781841069238825692003222701185731271160483183522915326346955634954779514793343989828494820193494143566531171862080457704269968061441656096044583176338077955253880935603081222234505110815069408414055619363798766724673075156085080745944384567830144309495116213144252770973870017080245734385479129119528394883189320262187026580674648643841954635286894918737629663777655718216050786127655642056730932394658334122929338533267838279053674837471400855762938621708458204934031583604840057719823066404736975639180072038474913506591451346783579585521044734331616424110031022968833419080645760943000183957741094219962254632052180791248310153934008785694855544636723369784087156272840792479812494247568084971838649118152149484749955402097685482677556975305096746144788421507274786664135506609709385431852489195679493606134491002924120644303195175752956230076428674517277948852952960636807332478557720665805496136528950763735379166437620883979164762948021144405329369701128173469585128367262307833381939425767210190338920978443601783398860272268336536525655224715814390988529270365524863808993259710349157629797693335840388362516631541513558966008133194012413280145368063450991791963632294776330179086787521861857898965870740322389872557294586785648848734738884916560970030355444522681641361724275993628351994702461014411892533629168773660282556672455854288868572442059281869063819435576386018327666747603825396300863871773308151543094859112094320517055035792330283193821114612572949681632536384085294520329701332077166776288719177878422620096369045666771230273409109391366573854009786365582454149657932254686664433510795176498535498854152701973392488399494482444645336199332892139901214970259735724065822208502557648343575758219027195196164549697711359467912021047299594563828076259429831259256432227843550753416420451755398406726517838491090919527561035553102196259874860249393212598905856147197220272830817044010049310604745848388674565123379752019699763861852967743294195086116575579626045921560943234097461401020988288756578782623952330554465071849360064981030986794445508257717666850019076524826632089486385414454738402221977861113920279739086295259905348406969127365760180032971375001924297624121185444058905113225231786638948163840798358682746846970276024245437212410655472299422419088035238087273097812446379920931093771905679715461349444535426668977184986412174534836028212807409973295428212196733567227286424891983274475075217763335965234697091490441864515862053693614557419912664898319244522891045685349113407278468088303926952664557993967275145532777137008259735662893636438205397010489252943945155104311858525857052780931855237618214137068347884653076640575749844242005052385326586185534584355786072852109146535701079919768362273959406569764765626889670576821268560040534759251907971302228987177739894620595770430882594958914653342520307993103168902717019642061516057561959055417737749057752076129404740279754809797469393214963808507735178841896483304165920547703800176275055346156682452726344333511140731031405336939697819828526536520822376830848398832745080960198964734982003026594233683770775722637446131745589898269289212566453142453559644956017620516957122538462616085439406410161802861580051233172415097682858087606980293857114563793308981266720614118168958224777735392847160563597262293804678159855046814365805718429533300994932038988894376475802938723729824028804075456827202722552400399318538339760917183939528651117281474893445319471641398049934782962092947347372554463750490566765337484365964153365796988682745831200965879054425329240134344280494971147698189083632371350200700616452096007875167746278491390863461390554231345919634978661937104044199238883433074781170065910226900432296389958191854915020233840012701435907935504279859986198587249496634744707693980860069063954190294637332716252683819590393193392223446437001939020152727830170196788429363201219498610386093899261149874521410737232774647722548410107726691448145454844440274450607821291402593759118232247143151245575552981629016559981130854142158452366443022548476816386925674706423772523633302379943970547901245416965878540122782578314017282552115735972820792107603340552971807905252960922039758069004212860927128246158497575874735346803202527249985627307695621468740030204481395353576026054737183435463910670063336444103202972123287748933740475511670779929128479094431337932016704180272867825406121362397969307210092565865091270146210920885031162860203988674893258189703395967799297913049141965329536186449344470123495398993845227817680645294511805364759432486008320887874607966075719092952966761167612685771218831361258205141303379678550234557217540962761171026939179732006964787357826347178905543535150118992147953704749931660766273949952237829185399471693181427789948975428256655538708130207273704063570685659626401360685072205103972322721248178934450847863267473937564652550681497596624234660829058956878352484435630565913795977848025729586601032368191280329112644837740650197533006428480009368717508294561216328495618210698843986759252822192390459370562672206589877247969448546972497933409359715633315302101091479745120593752183818296739476985587172329946099811491809407265281214359259263010528261455704253114736794832177881980859294344665511808357887087676048438433494456571034399886983729275420089641109804382227997447444651351943730603123044775836217760452468323933077603466341766149111847370801297606111398954751695930804538756870377234579208615974984558530310105781235375304395009950472276279421909510318295236264058492153746239998629559992222753333661002478589036023548507592588371854822405670464484804545134145352209729431371254874204435194779196553169492368012690438067610016908910227511399427886048520006540988889281845446717978140425760702801766221089049643436839734786739079946344843829412746138382948974671409731803537174148357932932083817105078491180993477830986142210464379089527176926052901989171197556657688590081178811199961988754519555552311906374816736207811772883740306157168845784919788801150649658479433506850295683032582831732412080548300902365244105125155891575325610533066483299571469793553315035701419602594218837257636751106799395780277309057623033366567073791406507504963491935731559802400507632983516183099380976517159675754524831009192596433384984727330663308464453652118068414671830756252962053178985665110193335409634931215497813070346669738082854957455495363678460972803255678086753176655831460964628306125071224694281614303385422270378228198639182416214445777661763411930864822615593586358268303579216770433119467125917401884248551545226663339569366923693998380427960516944139628735931911392193735751193764848686354068061858674669857005207538064838823947119648442353518722538703948319485559179604293844751912135385874444910700751151085754382151473365512152549961030551168240497949604773505578126339504260772085058311261374020800942460239600532521105423171148817093528328198940049039010844574349391823219163172894591198016111735881408065708051799517198374040731824787084638011559174686128018808930432504589698324940171604293149798388635283896353257500646269577281345674070648693724613093383864587165186681125536828202479963001110892177805298395472517935602308482258943869473756026012935351733887188549605882449570034259234667600296773591551514669160308827910531118462803074879880317376378781905790059097612795889316051914315912450754747274718701073212429192067055791702719056922697270778719584766834693741263362065874681243161679847098588581622693031555133945782985326792093531862057499969768814063334070144128764869503182627370493262730657873359405427611365257021277370417007367714828744536070519246213219292349764431403973422695871814568755476414219767398919978903785470637067540472981851484588708383694020341666828417154947050026926288164717776602516616345516709029175464748687641542961728759103714396446951213400887005427554586616357912164797364824659556705733537422139591617082728170954645607900331261931812487731070621803129660747129360708296305433733717771795743232591614864093752227009484663701698540892474762050056304780718399854434960334634251576760579973876459576957378162885506604765868308978559510242759803166980092336189298638250122462184875376021258194457631551721884881511627506262959722139352680986470465380291310417457006574620717403032398259511806847061203491385565368454107300330833383508734408623401987272038839586844619720497815736474977765401289901232616173337016962113281980401901681445730479865448080606594983595980588661570169552492412834794515197990585506632769582975415803401162513659188885783017886828547814917225265929466371070994666641296537308813805833002780906925441645760785554273162895387235006964031907338145914627330713083200281147930610709150807882321963187583114636518503855252403344947781240806352825341832695057875824355619305399182225746083910609730917830144661540053874184183810459629412879160738586052915064635732173400095841047370835167916556280597221710547557322545135669642765122458403068491081968123034355138471069738168901397794835252335238323504941863980098446615581524525442185603321886851014148926990473499397330610045565235928132066711135889856044405751165766910239866750423953549574016505317336335161578038956568584912843827877858466890990185707703528892268355845184738353126243647334779352932175271848050967304476423538121080277360631799452569011599844622388241967165135990161932054893024457976732141169979836042776413691886507111227279418776209899621532944872576868588952131387785347984778512713200641696140316422962821936431274900137467065921589874544131706171990570515829674613722772117906507997497112642395606718825883044960829566911776975472607825583128998024602881195828166244207098705609886032424343977453847539181205507246892502003836114311039146192560837669133583168010996105206282333228966512010500270352116842698675135655350871952775596708665006210270414247569330858352501649594184421427491993370519208301713638328369665744497389408969157623554152863981747182815568564019303688631826427370309217817385177585455222588031959188484565779209755060065775958439276886467222548860012957357229869497560288044920193763824204410846049426417528929747218269697898436087275658609737817851367442162727564583002327964175612112236068689782662059528324782987937598520576579489060598461470203115019627513026700074626532798807188961176809822870168949317063089653560604211844714441761784107015776035116563383777093489849398689163394831504985598302637750903471133462460939303684633316735811337630023760592072624629989699401190223945970216301189622692570715735607137226892523338193502208189999162854730911280281772961452604559125676075891115091555140453148701468020889867213573716134723543513987492283224480377410572153594955910923052130285785726533014470811608062709910084737817201454266887145298845918612369286353572053413689487622585261439232705879774069178481644855726748336190620644680650822598672810420333306828362487076151840078941597919976524153736297229357278969754812109139055442061256600989668473571359186452346638860279984714746549771358096744296367007249224888821509764617367689250508130354244233819377258409088598650137704904635809013172877675818564150388713635765833050107587577011325571658582072617343383858066704550611356800902222643656071231935134727568539056561083341880282884687690464909477696264268006945755190380107798597887124679895665000505678325871320904542001282691430113993394466391911870381886246261025355505625847114538469443459758208478828396534172171785877248375168079861387266138707453412264814044364381695555108659262315024486904585780934083716657031263712073606010938427463429571152883881600263738587918674778690393567443670290656831150863723734302249341090973694723487786123046909665149831406432257444923948484340316000705765032963959506396823046308808255889794082910369155176332384525801835796629248610863994272280147717151427890562343572890817361815303327455892152096761718299579371851942674051297958957752975991458311391552878741472792179549845862886130769875280762227810780720247458625977768543071810961293351352310528071158566317433192191517220845825031001231515741482553723399971810887501101321101617545156855758394083122179445983882238650908462562050451013941784065476086869243580659803051165040212966643026029086560491847073332970177493547407208865884771437966862113939300034468391611408975291622342853108822149333265029788550737772371371777596261409912509948781438558513694706000580717092502580479753539325043418968252066984945464164415825728724515359853017718616395442468622252422593972353709378381732966080246160917183831238194057049300017821512203022427122526300357441622819128864621852484450184334064879990502170773046975507070434412805953033498708910701547871960975698976631555173043334662069715594973062291299756353933247364552226838692632883195616883485932698034261342399895348798951829573032438438565811518453546025646709543874858654406596298631384858295043646892332977965265282098071145981152812681864301289622818564097636581717629990413883076608841700124325928876311295993778866030547387828411204995145965137151102731860731093440715402708036107594047780547914026660273213085322384467580094395524204919489530821900326967435340527987685077034250221302024096177851659640261398304977610878807354234920795242322068830873986344980459536415059519411869210201080232644085633603841283591212435362538544417658384737229611646551504166994207180563178202697894680460648068709535957455831660953045672629643842670586672122670971528375882803380792497857395772201687485746234550683977220133718062904908066263702632944300643120094696790621682977403077399565850413129342301310011773002020109426188422644560898317328572343340081636676864765875210739794999081826402826030016910951995488120305253783500010058908383918764329697517283293322265526134875591054955153602363026551866536085518444514003537490728683973213389753995880338230916107752270726814844193319480743465077656025343883548097252519041656130955897500966127913945793798702326679590539926679116979182685331323731563917963178954196976309883952375314708617607214318705887237610513709392204629968321738672088899158919598662419439278061987265585464565816994369459189343312612899419666243105082692785917730302681518147606849868489418052059321185749089264168587450601474023852312564733140504722798446787852182317668813968558693678218036486760111415226338992765479648682610938235967157385998636175118994615493364739245115540098913080454622007246619677223669083230159233904737040978771097693896920584659289024744134092015473063225542385699694047254178158428406699296963959580913731866404058087168763502033960910804513966031613313726535143359036122969055974030856796288549793712405694190043709313937597404768930765057478468478941465072156874557033585396343278554852309300103852721270892610584868045642104115905979316155819002770901666115947711063976898479242140942326210983761591174142818622394202552520261077317523469856050533205203233302808436842068668117056150935017940910024030795611789996941280007471522007705507591548176864707187699218912276500008166069006000220333361140167152635286216085995743343456296716870715008998329407123989135367197786555368581353356800562427153060192430099847135236391593586256122730063095409260699872778179374990959190210634965156639688316627243042224298008677251694452197077803662167917890936093890957990786254411397566366758472656576359766167427240075990267897895732085553147651609920540865067052532828075697405075678353933850248243728475946982612565163482286695172862260136966386587690302329669639008706206392309685604406502091508147214442702241218033670623871810212075280117118668340697850540981118269381783177239976835128226406901466622529691125573386747378889796192384121990353434068942308101948785294564661935948046180030564887895326397067082914835864728206077153102695041357923132887660292148902404936540725517713395492668340528079830432269171396383283763218438917531244540801184501011748081559562092667880531982396007755981667377289416995171713880524083574663366260859389737802571869797720411653506785008719173154334625347752462366240003608730559752739090865307256998157057633770547859144173913248270347885108698531582799573627233740162089060718112188160883668558900154649804990222563112414754020871048682447749613642210978345219172140481847838948626683825840821091732470478204969915097174670841291045895332976773556852087705343076812728936326570270039582205930873410671110096897785973981605008288891299362247450921245472673972705923215883117277973304046088517985948897264534529006794690302133719664047294803550557973944701421547624415724080666137931748497637631619874424999771864171692729063825659853709037113915330280282859165891493265792568343587877321331590137470048078151566739417297103485578026881870502143470584248962331257121964979909608762956513420089424903900278203164971466186981363162874533520011556794609881227961182655265443506909488982231138239879081166566141497222363577543207908077675278632536228478304109897335798110370685246252505338167261508656454701580495525409650793305017123577410908669452681820121381978179838238124050003973845996299021733202921694961869076216421308524223731550171079965676361047859535981514986248775074649360477810378016633320985126672304894661578898927341525492589812079400253139721874079984345121912820856852302122638798670223208815149491499943189279357110029104123949137217992418664772389563728241128807441401190460786005026586710638840932422573921066260744915742488320267556090310910946916788692338637075350971875681274727864688649202939423395321353261637575864229130107820945809283698272990617716384852627511667176842623245653304395822958963301057745721467715618581376657231694767100790607503184188493495929260404789428099981248980590204432660749923219135751348717960043971787523207661812272272982285377281869482930045811279551271506232966197278270511619923806004017653591591547944402552739486238918455873447942937575787965164993036816572330605133826064950817421636839594916258425544931111281695085268983781813648369100733202729431828796825140445016462220506253519026760373780999922813759378563598829009556485129973161256760026351306774399851861375397423117826862766915174847960410941113974737680430261998842997181484812663805269972795482058798604656319814200055003391818673299794609473084834811908802736264498208435322641001904515052301280714255498831736874811979978069382856075262129356709084379585791767484643756618234424768583709345784112557069791132991064385859541980682589548576578995445457976624261508722384207599737367316896038892931328653821229317284294858935512224448789234225154641544581385870687608671285221314357438686848789694724919946725468773272066869518624307986284781633451104743753423654589486037053842564782919634033422096689608706677604810060584061227172116528130686907536455243376799664228198843062428882069877833304205010112405898145024390866018443669611897513678980494430712653532908390838968275421801260619035038731253131364063286499993409653508452347318963783534189933436309017380194377011508312303273036629497687891271920711820892447082210631266478300571003040520518724867834317529161403881416777552211723753309076214563139873206387078670477566891066536319524954791658375281271775676309311076766441018575677306140925241686554922748441061087602428627844608818202765547934972347056088532018303237345700627329245854116826699689185362024965736548976545900409583559281267771951209310529761498390681907311404525911874000158816975584753233129596001000194555236360812403543783845173667716272144171005324176517135551631395365251601160530917428643542086682253231852172145861342256965218625613319753346805826215148304308456206126868978296442541458947194444903957256943035468492000199422838184803501082887620121891335726940801361188091635095104754647541940285122404480498417167902089253322815122945786688052577163244007342681555734297354803156182569267298720723016648011085372496761295728112230443268762365769908074734726716054233744296815905773348115275344594020255740999655894277189086841667065481154819114123540905108805018444139855927814349079198804518542337055098441467108933264426958398854489947169798934096391453656215116196728211866434692208387740360295085116019053137918581715107357725067828896344265623855104764885426898463128935511489982194972202883206097621505949435838866134520593270501883215109208312162781817425683861189317252848797756998988641143237588222925686708734694249090696791318548167973301429750617905006751214182573233218389090903392862462175435275482948082234132266146861229690876009482329287421894191855733820167934462135322501077099014400052434588725957469303675572438578049792504888111762719909294530147311314376601785799282850690113184733362519139723361908693393040152966975656578508439230986637465083108954069681153106135338041777991897865931792512922812920341171299179033650868811332957098670184519970422395598366972122667986032887486666675880213705843596713953233932490221549385467441046825967429588079519491078740166517865564343208861384548302288829343821710902621988771300590797979361001649832891687486165642170795444641111081836676018189033961822724424816771466441787915632387943505851036276667492987377383720443174823464390939542729669321178711849881104193993709605646948136091198907540076575348301886073122825794184745736216040023073317202826693776479462295385096576323780629315723337943647067197344881923817693491524701065484824813855801945592713061563189990079087842104428516830184870622517988004885170551223092573414109785242040959695699424691934460109108408531484067439003558578859496956472199160400594929197947176030326336415236689968332953436053219364430019279992113993788299966281484371039752744792243525336240416139620268789223323233877890570497499736726742288874301399476075834053821142368385913082790262903158058745160215394644706467634327397967151665426282504928689158747831640159717365246957545904927495389435102867966988111546693384052832214244387094181299815192492735675072678843849679874230772043368265528867422060739247606683222456197374862392615210818162528966078682356870722974353075520889229240215249230609297070913767370354259582324243205664434809514820516412192824977888372102041660289948048584285371572351360332828104957438638534110136950026970141519774565764909784875843821078227552842007487640132192729993931540245644540843979880986124170284466695040614344081704139331988903303988722482251044373433117564771092981532014284351565940989217414799752399382777749276812329333879649697899094580061126403857789118299768136190915345705792692103222763270155105009358674583934252069303383430139056493257882089354711877814203206053684176255934919956312715134213977511203258285442781146635343989542435805272069316299878812044569257779600145006222905839900597023244939049532738685848844658160792530037852166079410686878783355544221351315666441263011934175433648809377437869263219444345320253243034938856263316752291370059410687691256396004931749989097486735074640171678881805779054622003169402781019970841701671976868931585533641282533331689354009143663417654582323309416490152416485185467609168041785977417868554677988104367417146513643347781848910661440372935959728215207174961577951842167772254971375343253456249482943012683445862029862642628189914815853335242696892889608049553755449550194973227168962452472141279784429765828157321358244893345364914410218561578659993021696672775070745338671435235721499126310924377966006996355259518899165888901714215263143953054695645588209862638353992862204448479307366008133966444315027902865852666261377501993473875784566800721960919279857567702787094297110589861611887878638945831571486253830802996217920114096941378168208812677311995026787299449556173921140424862090683897536652616665752262548244321418475082602754708443448347185136660178913383396614697303000734427661399187749729031333070687592374769488570993176972916689070352032449708603698710284873336491584106464188514501872719557511461982200611590355075825872803017487611526593920114605783333890978194876734892488835807031284709427023137380811645505820290627688600116542854925470991424118859915232774149539872189886215975141594496917027926772573904390219474816825567714927212303862116286231770770602045081703140471584189068871803605665314084505394193640424545713132945653184633089433712106763768530024798608455606518211013642050859616264472716311456924629824708498941191052403881585349311965965591035335604880368399984572888040580828787231719387620871252709130393787846603024175343578904622445534581102439238284440984382378284447448848595263602186577832333315144402836005412003248481710264413392204470250493833108509488693125460163670449190414382232099337537442773231884897051095447023555285971137247923518883999818117627610135446250274798387302056248931020468850826828759264018305792114165954047643532636527150355497407928347581017321009371961610991845807373896681443111517630839471894057252926673318053957227916878461797990136068410159413658272917900999319043535959228667478981684612834406979367996504655066726646446537232786318002311374951914894915391930820666240943912186909811501658793354145251081073702926118122643833967473606079833060696205353604951936074617366197193550435870605398480008435788478518313843071894438574915304644429405067438781306232526993157793830011054298197877210441836956327976697374824105452806844405942195421814415055237169921849094462552331154804092681502889207357036979992901808456002513462531146929609087068925403522652403363118476462071349362247559969645457978682606025353301390619568166849400852246582008883779514339943865738724268094179846033497991907327210869583725944472516074718320829758301785897292510863634593474603211351527187335832497698397021995874333441565000949413673743237689956495434910427773224417699756143380963360961854785948094862897178610572714402719883818454690578640129515566148200518457614712568564575004983303006185686041592667147516356719223848956012481712635799677400612232249693820473908884381985210660476461139868230219731660852796036036514903603076228095773498395627053192764413938872616934176271114454101200765372923644888022661502206860851466200640920477208077687346453057597589103254403945078471389835582415798702114406713311166901689814131887516775795654718689794673453736192854411887107731999031735830419250865848957757669750199177685449844800523337326226376049486294362142345715865886685523432890443890675004576479172771875483591675988177738493548720516318235146527815519084356866914583937020814663387910861576849252441207528057683350033232722223826903372723027976647455648809459819749939808027319645082898601209579272341885608686480923847007816916617826614378782133222341716700083069410213405296924749445768900810703638496350098861297134050800799033706315126740006965877585304975881770061654893920194992047706102049399972551223917249500092078646607454123669937886068957274257243094939159873227899956894425326951568730173304557201676700286494995450155930459960967780397050753616707371842882775492614798201044001155815220032225463529022914596050628863815470878388100101560396473112877824583475351271953558744209050371096698803251653573228960196059110909291081878630117502763732652828495612148197325113375020736552315074176064202782547794765185523783327116839186514708835733613850751154036521185534062730045966649123348031195633740145033588665111227498916388403134475213119195173971397802182938646807761016601737185004339901181817070267678224229615244353838185942350082556690933386951235422574496044087136839148833828316553179524484067110541160626575794502851083838013855090303999778941998116102190540529307092565414297194626419868871629261953814133996568369729878964639339390423546284199600736271386434058167375645008678579793411536187936645535895694926667878622205084022413165210413104883240298490978263252180315022442253116360951413188295250724772951848597720321566971975253463089501724342229743224150971681935363007493152086445831491372456118497908147397992323114220810608599657998461641521502218225935655460712764384092997743889557473095544511765954714300483600711824024642421544806006997267634421168147811568282069977304009940470559973250050934037967004305694621394052145872820287787232817096580408517394349074754491482714020328533183577364993718726496960928622121966979209559942451353343651923848530540707578712325982986864998577303594080083446855052619805398851662613690939068342044180679187598358080966242720544529245329494338432803788260552703394248643882120359532627385330016589927176865166230068086344992328363285463806555496006914016734649037262794252655759381981685618448044266870870613115176719794923343518501242481043648830988289540461784000127641652530183026192687126195287141015113699969838294586656153628155153471044113948323523793309961826731497198930235036663872736711425722784243915660708017591088362184666497422565341920759896417895134821322314247654192423126916400828900546207998194454577247949845351553628706005080990620688827003944169768770228889985555068551330824854926083426484659531509070890977053841307370596707866258159561812176223788039319544028489507482050327740735805319545844431131586403946794783213571339416152750615411268643105691757661127144272506189477143820514775752586680356527979225966862827619672831076611245832941749759671561114060391130997341547574560597865001996759900419898068046420798176978569177374557808469198892444504497662420870734489250636021449609083848760981446956018692284114339504688526157000951435322001601634507822693682079131224220682563970307371894750752191471394599057600994067653821440580541388130887499789408033921426099627771495452944013289248535027276638464417847362553034949919156970351152439386268238281894673535334680862894664198969281663906832166621465578042076727558667643730676902766257393586797988076750134156952617703535214033939259429942697819980193544531377450582869066659943241427836749996681160484531488814941243505810687124189780598260252266015031441222379377376623386274572049780350790779629680862109093979642470649984476954456086258525139516007130382321930575843816173731969153144215391211999751825459882232078588158266675798922468284016333052814416292998953872490251152263449336119119836658190314842451893205168412991695305749423253598225231419924839375695683501215239779581281184287622044222109761354948982125625809945360261438353189032739812155816942722999464824993113854554752027285578721599347329456543542008259284615638607357297657353493848679390660864177920526117598204909112324269678554378974569007192393293306650585906847339990430433119932322164377248022325047663448577834997733566974293711493914126511294897820088107099608685653202348495891832295959841557906419959412952901530456492930463013671100087265404357322934922781197969685237671313824879270677256001973337732103352587320606160821690706736189609330097959827779854653108479028008801931829293072931319951436352468624629641061567176066925618805960746899948089691920386275249241587480839996184786380965476346391927099378411551354471601118670560600483623674851269683667474051331240192683986231694911411664193975127166059447562220716300630356270321491074545383895018888952666746718125127236373709156705984720998571082028005649092659574207125461897899694444628735769174813049025713328759327759185626449370843526574924362754758667560506067234702528353072512115810620575092856776340844448713566593449465160541611584932608007564265880228399390108919279613868351108447465327312059890922978539352056574443453432231617142034945347301098892411412084303475279835308792767485789965843016215623796179257095090229106134144342562075105928158716001754861128052632151447702699307939945301752905677663665454372363640424717451254511621451075981529450773689318033280937025964799486501728005392541761983889708468026442421201764079347044030491424964677159308181611538271874898016573067309970361301079244102654988071653859425507502118332331554272701176695820152175450696660118506849313597314012371122951104939307638240528766474340482797071984989318994002852570957519622534473930978164048532118277317334361438301625049894934435347910471005564602079748946238688227426480521844801336674765276877924760902978803042839826582660181275804341058182143467360426526944905631422765637689161438692262202307707679978835634199074319290996175672242126041437758237532787791375709990635486026593679748869148138229405460526441797272402265055630270731669557777069264767391992996505144749650535568235232572103706707761039471775663370692771389469082989716598522472466348145863739266810497916469290227134155412240818750441709045854738688941729286570670494340314595711738492802624653463733721318565491620717731100201706862489558863347963343468701641107472902102588136628559265180210196597129707728356850179674374264915933239317295254129699913717615815012582256048865113519044129510209482120268725455327288634923920767224134923647878219126494923762926233227824010616587870119075323009357249251984702502395846757661150597701141927187830195341207918182207705147246934883379435445196389936129180654220343872645845680343938434201852116514562609735223716275560142120944853339173455401911166026659770463465945514010231470824778617943215447343282308799067775390491006572944590080652441312821941651261667013853241277325397112478989331799783349276606782663531118531593431103648320388399367495017373323461944063425848322905583736730704276172362744354087044451875116534339677902450475116497832644308304603380821943255254852012349853599704074839395348785443599558215131141254769129585356758046302785965577952286743558850714211753603831266037832402185960969369997377356223323995742922685814771828978013814709341465812716446172380153551333745139296954188222827932205079173979854271054594019335385445632421183346615694374700338747596853699301135934267884000974446733210734016576554085142657345242238548655520849883444770814396025007722735062230482048741104071952548597290189754668697577008002361455065495266669287533846176475821590753687541717824804454866606473905344064487935531087481890568500671759658410055410554797732345242592834493576176212095433061613613171030915830880692049066913545084551815859873080704798750317088971327020624353919440335147657345091106092122461302352997429283818030974084018121286975069009479228564187510829836697448945339622726087315014998584600813305820802753740657019153243053304520631789099757014630957771926257667783661793665955179808291426925386169088356487264859017007978619108998056029116428962281841958324576251468632203505522171524034761275583027324543874268185255394455059423148508028459178376050478919427823574397540481003476928134050185008074819862578866908415327911698470767285143216607408790884258290684086143625109827778014496389521043999125381539467177511362251373776208927934942902493396700544445385728159206820278218246528910518633652118495985443576833537866505574629411453468521672386446991840513101490781823961568290129781957855302559062101712964233738787403164342814581425149063410958494309486461016401944635377116655576509317075502446865806455783798262207522935553709505762648432178948960979928115375328344885450105281965616752719488827409531728974171896799380952772364143929998950826166503855277181285436039918701079609716097981709126143455400611040114400569659293604515808514816679941313693211571151646632465041119423435871587809272822155696175837927347253033873006848611086397835827443506112574313319477626962891396944240934277656594421603221011239397203730878885755747998289883690905902031462307934519069445958935767069404848741166348949060094099306698131910565935551391061089427949519719458123704930386709186965032699641776101766611606885574669010295620800089327831380120304728838313959052321863097515456569022940961340890309429329582533955517528103266142287594757808948044952533457225913478633493639019672334739103667536044060772545229203896444787911402684291133437647106708140744339981970932247599843751839158662949293488548516622979578831108823119084264115068394821247020613586263467948969580593553229148722391928102895805160849765860167589105084574982508691170463272480151914487964419426396159229306379319870885905544148621102663511685624424683134729321763597265580430930648220569139589229340449129975254565731203036570063135381298705275871500271976928648272627105039834483161680328186595489109931085606262806021825253312032567277628310122389646222388361674616166468272752491131844135201456133917005476423694706189956935697151197294075785295691554223130527871625849538048854846092535350534538212893296154174155903274219462616347668810422980474761425376657058811795538972270280882081889929540897435390030789456947482234753413519749275441921253757263036690845125966337495755801048025925752030790615125160632260238938526156090299628385312038203440574017167718416577928524592699916973766916263546914267532451885465153249811623888063163531806538285972547550693757611867264384317499828089820996376143970281009794488787515317754117395373658265431236781382510795476993122736341496337338204110339427825269923479101009307904989544699038186479211252585038483339715497071325403182784787081405397100585255194955004107237108093765481549601730375927317248158550828856962129136537975257326137493649417692493520700195697642890021186435234100050844533419509779537518181370961519056344458319611781853508602156723327686621023542972741067438915747441334642319459527530996181372492162102246759673507553129450799408855822131773340838750524096111185111043208791641786860501984593193311213134158314936718928923522786508698085913833085765886147849240534886054032847566985213135451332715952301690775928297373545479283830599485995517728450949591630390025631580838095738705587026392554583315869736648684454157599222575405405851631864807963371931628630595480336501563237711101161074576087747039714234489739973902372837731064735209532994707534250527259324027382197357715064689519098476012913235043962719097132321622743226509390752778197198291423176138818051650014222688438285737181992833596721534139416159283969862144220813939987685318042598913817171741387979997107888662874915514135295679961416932052664118599484631594115202371266842383985390735255304557823215817595622254175273681155524324955492376838414423890810911418640547685369860128044981209432748374190685319202837330582691292852706031917029060128110828281828131361418073457951939466025777080452266641126869181877130857501330594093914418352818537691922150676242705861849286182209038548198598493959213519656692197346866829486058873558368380160064371166667102882106370490058445320251127002641131108049178004508606365539673081669111123517597555603791184153393035661555029089628287610064845453465698929664266349436641071493979058531034297627201066934781384773066193003764793283734509269266066641539130527640254746153243632645456125537368154536942392260982293852117711222076535824851116450189095625953094763679754441406208465007802439071769844603743984345760257781819221179228129912603144695361203302349701127088522264054286897347079976645763026556782358701980624334774669259878757039387579519438945557630777019650352570768632697306179327448183258070122457117176427299175711830342972727847291168750722260353872923149021220707599014796073066347666120450549026922877793667707400272979604906682365636283927998465695866245946417259554800780078646254663857895772050075409935718135360698052489475684027877493083389162781358665826931769363008220466664642963565208781024894880880116386206388946295486021062938692467622341978174131624632908573971816129167696361416152590593961882412733368571466083246757271613604362541945865305936858017233267382119826191639573718738156547175028683226142272169160032326021426127973341827886526037555942283639339712189576198573879791309291439783546850463146487157848600475190258219042804169602443498051049589576881589365588398382553138728576167111765460209686584133675238086983364384708536085572637757483025483544910692931656236814404394230967619610343439002599221179832490747967999908774659799868629866053731815239807381365571354961236315979569634288934961404041742789393468824868962099902352657086752955786432731662536347232641127820370926836758045752161024649001052532166680550679478377048377811810697871758915699059338310377539438047609604285652886931610034088022989310340405036692541242975092540540957901541086777434130597247801202433284470795764108208860673089929122663601973697268518005974200478867843844521175300476268829777471527109765761484581840487267347157945406947378507313393188436598113587371415156597405000188325337825233849422850869044837196991626622099213850361130694825058317384085778230661707609365670192887144167633673530490999894676501086460207740883707046654139121896363037434260943162171181699867629668593169646874804731339366433343335586468723622891105584193047009540030561320325286815445616090584335193011570325961423149160066804051340260126001978942823729988444083600703347992490282197370296631807193670180696865906152549470519995916636057677562484202729164103515321208598937857772773980122936115098570199837743802748575398817438012059425237297968490939922272311759680254947296501433497491983956976536708688919744785163959369979908420604640071517982437714451254149507058934592519627468505155231816191844915024025283817432209950235004740069503941831849198524300911832379207543790299346985902993134578158443709227658403370392016073524278311569268205046776266370806310382444165748489208968670716845489429703553912862803419795165919167410394746652804504139509051607487664778746514929875689079973491080325412205654070504350901066095636249189150988495018870285597641162774550947482344410212663212572530906268306646464375183438725853260145441359312052474734680425019312481769723810812239792110674483331014105214852852060364403571031606545145038021961281244369255880638527826284942396155667726162311261211305237084655612738403165474477592131150389979914700442221471753491164435960975208782128024711533983664489828683620232355110222641126471358215789912065149274216704974073405346192855755319055366808611749454523131591062440556277271971453778598562822466951246863257385336396853104973500854717705036095104605380998316047921190465675508816636068319186205994215697610628384226165670449011265216925973049140316817603045787650819785513852994004986818090259385044067904126504888400913713201176521603804835005382650017701556048801045498703977637064382018312291334431612893728341154050932061856640169118928736921203533302537390005863981312182689049743955783544483150460532214783197027527213513502231667776966381728264214717151143819702118694729157514650655854834333535450055739882897127306109917640735797792796946975444888400036477521007900473044706426183264448880331376577973585957057796414946996225400022043776277775468759583918828303584509012342960549673524013818072684583560933849880776659125697786162480403574746457969999723810542033456511638933749677503972207084027004984865290837108966205583693545588659274088120768217416094861585553956393630588773114891962270640307083801108924345753747849244526079964952662060113745461902388400273214246828360104382226558009147870976494643581756723273007873527033544712745096699851868393369427966069138591957193744557099148753996145621044660967948645164408653868831679167465615919840540411599046832821507176053135173211406619569443882111728223255758018536729544251064171489305950374270686610986379733006940941454854540183512106880249098677762640859605108685465913026562557125224561554570973061200067002101148287812182842082408991996456732710191379838507805846548558490747920760136430204419246569525611024655044531834337775590631919575478057026479222778054594828777094947492553775125766392414479833959609296508579273363143610366795161853037410608325090408458274457853677732820357206237013884624674457565702941138299603016570022298906324966863043511727803633774800677535294276063289905228016362856964824940070246796870070198763838853483633301713902240489354649538135515610234268347628477504835761780116710170334502220125329314647060349456149522799512646393111888959097095570125103232228065453652226530843861220701667485150746768939980515815009912190623580018849216804654294520409818729268907110797563098974378133574861782662986991205646214479138568065971723342509526421171205476370174153132101724654790493879518637024785421068510026278641331213454077369931652584651313210864581729762703254555586023061220172781531593557145566581583832487906891878599750597091723673766897801402970986752032546087555341104333672654015340002973970456627246563716559611486453753427910206597455195960868563278366779206928007779034454309860264063495717357160213075109052542606896902952123914127673538305206078796537730333199744062747070715456769707665642108358600556181646411779179406112232351858731994635407095506651506092974072085776884670915691399754239711106536205353275867468227068572573061545348543533278329688021611603280918131570988040072066156453314743271245704725756570246362508524109761556791722878757783252076707782848017918115809585870130446794980687011669876772461807199105779533319401283668493842910929763634654887561387065823675293405136425837409198501893313862726931362989747696926216574434880925260557609961170912608752620045237449180250154142689821307791094915273203037058826005083486406837318494960933976366505282146667638387429750005220281938088068395557858315107342337653973758488122617806003671815945394988162764873256357465800979608879706655967118116316584564850130581298911800869915382089637797582952042872713960562947550214750750119935329835445362466152719860194840598173447067813071125362557047722159112880263196109717413665960848206989814963548654389697500489539390746363345968652791501206127609348849526180825901234149473202968316343016884099738554235664876842364966732604470315376352774349829700689261419187599424763615941014160692486412317265579902064228554513970051599909818004914347518785986992668667404078274332967146428248562557729700257973202136074885354878710123640381955463655818648848565399141541440971283200774187509291230797755067820026310156009721525688005790424611707161069639533882687118154507098574387466794187010653805034464488568289532380684996925813993606824896250965426582352959479296776649049841777495075417486483755607643586961382721622208708013812515296409970665417982463159278273395281882923777022980014337786518430467231097287533080592462715338500043156558991674200212497139514257884098622849628289136302423452275722369486440841472959469614233495062293520199653082632703176111711333658593030229961015178256176179452488158138303576173090919960164123702034616534011461352905011699098636834518608600816719250007855201057827292910513751487949533297705220427235017483724336979039730129984809354931003366904489451138539193576433824650966712233471141150687373572490779818573495471655520588948032800674201766405436723149243117892746956772105028168127766183482934803238019743013703047704129865296076056594629010257734799514966026097163882942518075649279725547398206273639354140460325867045944604160198064349887311634872778361295864435176461015813061542038049228572756045731628003926094316578089844005022694331045306844005623865833706183964077214007745908412466249593280951094093973606431784256343304429583041528382410452716826986680828657761685727400412689350322050492074544659281841852326070975809852372433385162080297099652436480659280373600443672010528100103460158789810869843729069510494842562972157156141095953939261707700221571647567815632853790263106515031176952863468494102402770569472444182322659042666897723731721512036039517099142416090312959036918105903771307296889638051877028793689268531213193912938906603992700207419740655146483755441042012014075344634935068514566799252878319202719730851246255977420789464371922319959552450978525780429105064029569349589107470343477868058708396189160333203723827219065682446220348954877198250214887490894101256971517031386322046888806847163789413549604488235183694460356297258610890475908273420089693841420462343962035926211477605816419588360001977100448420029424270436865804207244817962380728744565725154216564329778451889907622828615828611233926590071791215385778116627576289570712022516129858255443352299497529955677297251451500172080069667875758629923826550539221657446077975069423504520116003435577498526887851488335900153816071405233043205269374777259952648406076526301857556377883096553567079538250998935371883403539760195395469257816330407286379197075088481544939795382002696188287800383983270063110581438407100107440213824879671756164831438534545911254057426447581247907313548414917376928768792823664923809655129514673892124656856998378610316852695711338388659675444924310804342021687033654899259299552741178895657115254079694215683772275408125366020655833478347957491733681780488072751710803775457624702992431410088889612117962740255940145238122147521298072126011681760942425620973152739794685074286233791888495449371729099007990207400499834724882796765943855541214886970108982177793024796401541349306044762009838166181311351823231520019097017234741419995624012306492183624723242855324172541232475816161037882053950820843423006544961164685402834713750328095447755167070148908511910948107028957726381172129032747867777015156097631742260781636393441372651759362042832695393636492690120800543224301322414289201362975581038100948708168079147104492681904189243423326293800432287586602883299425472162460924576056131085651073492544194816913380506983329005468444858311835713724073958351881777880162876495538399737393914128935932579744601419586032855142771984397084955588314161803134937021253682700805683996540091147288300304055233597768943604674156516453331538173196462242678021284180437695291008167697679686018901122426451713309701930267390121968230112253233719316952417661275570650878489513090901088196542574888872690870317711089630877393752960427949107362120370004479262594653350195190827350813674260922621719748916077622433630515537652451203657675080001296389803954313582090519677969108610800998555384469024441756999969260839418248072826915913229655051899020322783665390220917627106105961618398861070488003630836414844070714534770572892525556191757095353542338995805851421853214891488603449453896687354832306062082783638358120164577325527266292173468464206597374777289944289661619934436018847919548497181854224036527515334794847097889592989753173823624767087690653646946225439204926291680974618225440029614397254915455593178251755620069172285957490703038922366952561258171559623116945520048330880829523449082147476206051893376545455116160398415794397664107848836989534259802195549892653979029305970876665824557273953423881133307118432393192102705098643780987081762625796311233394062778567678861091421823939326230934638807162942397095678028031147924882631980643051418692443444811889104201962801252844749070583461910617506420838852442282742605813689448998094013076432066277747745086137936201874417034969491080573432694608761500456903812615644659567537461939465679433191669984508335457925237639295133265040588648327335126966184486789322380789244815738627056787051653963240143316839194504018011095010566616482596192297571059704126179767444578929951364688411006739485243581716865302000102239916074624368875954620950720043229271524335003428024431767813342881181203377297741793557224122513117207322155232692834107193484337662522999356325456729708774838402339074111695645042834637599485956474749725507633987087398736639782679298516811053794588629698458368241672531354664170262427094609200255231070412216481520807140419245349566415020292261009287289818157656025731889313648626569872508886921786494134241915151812465461256497758893685093891831132572731678750107974217783218237769328072651960996651694236301036395465651694119889541592856509946750358235229417979943182373952560269033685383732070480250267514148171558210706970772100912772788820456019536904535357767139244617893676275403331418370311201204694269338782964022886289518139145866007464281242562451194044993472089901397656052212246864081079927835407383350782702509494896092173804537010715918233325069388236257852135270773210165479031199734859514972507765128528539344671677068612767877464118194408068852835642148220963224256241584095390870219823867137772012046763915520237784878328534420905694834220235200000696231576866595322042129391533728064067129806676780022373546481557327002915530946053947877672580822068787693440429805186742076939179920630064697676439921417090550632482834567677792796586965332114312438667318613001740433142292878189524211493233318204055492204116545543192721299093530043721637202350712381630590633337169653007394695096962071330681180862806607665425692330598176479496679879980780313228992317970137404002446465354774366431010219016791450241742101573096089091515710950113044401072874934908319590809845587587604931976389253033945261453525178795802731471851986137748070549141198528697528435181739922717249287083562346879437246094396699953632367568016574512524842159569773539990474583993586223795265822008056687698019403264897253555772632627438454362406253404311847998139511080906255760912054313230373627645542016604688079129993561427455819190261097592963369946854336695663412507062035656940156001371274881775254810162633634731599997832744902048944337048836685532976552706121768939704932603852664058047212479323752703693161385877427129780707002707871936291336269636323590275855016006534799183190030735489060167824918476066705409448676997873859903687988060944858971829198005250529823512776236531975746330153353645854380419049962607679319662199286439067596673826118636399313978108303459092627693157013940647069197984147322398830677636228967427503367820431152152309949314119599649610132279034651832387065321421794541635558964878594951772565478041017000916493447246301285476120263079730301318057191629283877205044384607802507504433824808212842068687368247104911429336335615567630107141020400134991745995287765892578004979841450955427132810763155063589433005200912716091328717020237120082671262272433439357071616164124484736254989963836925787158098872406682551777213658796967584811952650216578823827256642784710777885087575896139215200802877389003933758687469518642706981475687354410581658464775515488631352581482590480333518426713732193295193018739124628428781925877638313962838153198047019263035031459980886263520152124484996533245539002830874053923053187638719690594006782912372923789253158489420660229996503608625266554854674666106865627013863066934930550243107369254204485925607936690692479146574489431115379314720818737771781932386770866336820212051097481070527788344504748459710954439715489725593457349219766488811401362152982691328010223643336551219188701366846087537463812599709692474106872033148851129765773401387784705759474278823916198772419970865711483873786251038981912682333001439770356984370752561575406287229682878446817516843309591598941732961767711114492035814870885759656494788732259215890421590555258097591268279470849607276897975785272616184953097799851996978462332341145990759923062096029415558835952648877475748897780047694936378452131802734130870709838936197118250519056455829417327563587994734492846233761414608175803648660130845614933078371437313467893349314035715232224817787816376765496172141123984160728559209802222477226272046152360684437091917260603214680606950004233274294444799213118213831373935212536696720903752304814004499523368154830773591340089052613752258251026874249383085132822684658487590358856583750279622152426411539212494802541022646867192680344476139916951180297258543168282571478528654915379074623499078321467881266643578665438899325084728782475171999277254498555095725586944437062132989053613996936838814609022528142308942982629766742908704479419395569535987434640596065536608829814263069432104464480527238053699669098374577637774095443072166849882546500286055073506055092049652271167038715519914239233669478017625780299903268445793908040949844950673040029996856776473990819795291477210500652156934258242456417006922417328070755163535097164213618451193783934724863763744252229423863620040192885391519987133632346379947786067892810537360925585304391706870700295739631751468662771485244297260518021588426109548737051928096066542597042410550294799978042424855864126877368624769051647978199966142656512446513906051398384266276445167267462935734256565290311466055494573208558567267627547301726636856426191734046155168652753021163784917260128703240461968961208753021498605583163670999232580596865109686209988923901032562420037814109365190063540401153392300026263327197290593147241830053087998269815372375160044858267386006901555471637973791170753892773092990195135916464994137127779628192050356444941210323690602735162676384070549019538964117748928906705857888177630683940025834654222341200629760073689518121065122999372139037753458625346724943498956918186948791154682278679889029109777130561366497602752535372722862754842168842287504113751238817947860593472573951545646249544170762708786303719079432725036162723877564303071924238241486992405494885632038324973325768900914742405170798994039206973754660585646489078506100905319438320674891540448230554030970989848237975519444757532248626486223808253342173531851385971477923645678207818135703392428618623019619845023661305632839539861220498059773860582916310359922358183786298444814992420857202636302901267064886524126861788818868995433280282775134191811647908415440678085796294645899345685270027202267167011778892765568694737165815675339378897390486597543362464562387265314979564832638777723646106928626369485386386882520980994038826235030294146756237499024772096670928886664342303228023516788958383495903393007612995425264284644599286347895152080429681287129160177083724516376773302284097610543985098328447346559992724535782224815008044481198968904245098789165530508734050392381230380883032667187098932476714652499328888672697062980248386723330111564764898421822513327982361486888329326888629251083242900173116680872272174907216344923082274792948683021143136018918685057148721359265090085993185946533129592347715543024870464093406450289166862186046326460332872884760031756502299911812773850861070591531193817948792639922707385034172154970527247018008495073113387799186649844124604122625763114037074742376108186949213521345434622359449560844774658272895178046197901159889875576931244299778558599003822176081801184818384316343276844865912820257456655766031315181680650341920185859457272874423680506497767780192737065142262629496252519580792237553348893945779477672536561450230550782714851307940813037292748493371919805248060973048946643651834677003769390184931919191124345325432013673342504270269968026335836143423407343008229268631648544239788531990501824629577829734251491629717110595014026637362601030519750247010166059356318143585849083773689369674923112808264313341873876727092049605120535525156679974570921511900515750047382877931491729408829853741600171931598187959923932611206883406055302985310398760431004063674580773390851832040041640644980909954342015655427958095360725547930122461003879033007941714565533021993518656962508503501916504230834972152852311332933143781522477800172703151552626253679169148332050395320847685179567834259572543938858360863864123976929805343350407100154082857512556590615998487372223639791410431231612501244695130977002057151092560559229052366546704334943643932731075123668377122318650644573820032131659886005354537097970067603764673624775589240135645191701604961940813374812555587205582746884778189546007902381065341377672127672824844256535679408666453075063550896254058437334111794927122391615195028816971918672850266019721148737237675023774804218243577613717894265769173657141336416678756689303499829300160830737012074464763792003273506190884855774644976297911744192173296725562281200839837096828001052737267228601738958511910266219490333362557082225342967078430657192206816737375673006656176662529916775357271923985501087326330819169567705498434166617910281076594166623334788697525040238356901327822668361392976134393520645034515410091992845862847838432136793575328364952818426813485164529960162861550076931486176290087196932296500124267708994629806584259470050342744850800089016041313962019980882541690755383451874688438900276033818052634427174969202854811022697237898429105710589405209711614516939868789741152102984287250785286707639071379379298813108780503493599752354290881092613266087068436120627239989051974334054992580467174585716955770166577154700042593005363125681935264072595544898029053364611883470302514060078192630721476612032560303112961094935851402114918214350617427211283788665631247577267237072139358649474289588632280189434449710724933565799696113876549813075822014363371278797254375053836781219007428962504083508377541635979657615047961132383836943596988912799404804413198009969343435720814904612057861710708016431960237766022706782963358474752308363248646955263137547094327313502108177158810574965542019416384462715687446767231932062410766037982682119514981269523361320275833765872665059675501003431160574098416787446830969558757032561799964977600202084559530692045023742119027577919157996641630825108726192942322495228166246161146138318086519568944030115753763079433159968721642152776869913208654089865965640109562483011698496577294396724608052317983310147131386391302190722965840953078323091167794682031408062705969125781075649298065260889714204312741990543589119001540882133032955699348115030330910502585830994712991936225554288448938526558271148375616952816575166972196203633764392039840198481296082925591729903863037826804232353427965354351798711330606835501575419357397960043390237574873531361416072988346274743311910333599053316912317802497980692382940051061775279173477113367057947344706015371477600198777777375126826386313101040472531919809567178399793613775573868285554611240097285425537667078441525482602649527832095304621335374689367785968337120229428784334359816707812693667393885273451167134154591142157177303879471121194036660712163779906001954010982129639888063555069228491397812141332783875605603661594367919655684185138763313426018283114573955232787505756287131849852319109166967302041654749931352932096752616221709814867786163035829844148316366821054263381692578925709230563736077080025888594523170649620887233077402711167908027446334992685052252506989312257253183720138069651558511515600782326926877698161856499771347541714687606953709544598638413569693707633110538892276139724177400065412734691101584057482843401843565044147406998815580614818120396066621802663701776684417189049571155310454451689104505455060181910528448304482765520386894320601880587201872030778096344500883459496509364119276144263438614693992208614961698015537679445187398786605822427294898585646422558522482541526589584232374489635332267161205615575743148719030223471422585595357069291244330060734925158016002563647721102338816058674026967476338943113244135777684576232155085474878991576700038205898426154077346451190700997383017079982630275761062695546687261627582255778605849133298522252210273082737841037551675528609358087254046914238293528044527648569775348712722467429844882818954690724415923788940198017568698717958374898062816110891411132983143890805709857755122932605686724713882080996124648086217336312296064691854280136224508110187629886139205074767113906821883652125026354177505314871620544938737833115263480421468285389988702970510332955657704375481303712694218644310284597852943295006659539100015243479133128724818580400384592669286887197326584864750344825262289765418169600096836093666150011544727535743500499991035272066140776904243093131569193242477629437509817250159278564781969424950980426459758801190784329225599366093833443231627990755431196164075969553477615930641052507258445101045197162969046890422566123258491131974969259124621586623597876114047911292174274515990244780619536191690689862093552723389038787850006324698514407823782364632015091360985716759890277020590314724675999240079627316262503790939006253867315703995863069050230885726771816408072097802624095801493169729016485340636854329051252703345674720103018272246694572278361273815530158639474596493410084742417469449454757702072960995373298007739933554331564894041863638774274081599621978258570423002679127713570990776337873689346722331259850219232184965259291360450897566750112496569490061250743723469627266239343978340782970446495249349879226805232600974086100521253002279972700512945998479331333588931287514246267976057059166808871520536997194944389778572277494401792113306921636963122852675789705092598413305632977879523917879855339057364668276834619544946173896832592798075701339421652108188860550723782238429963866964829552094506510735732992065906086241346407941556966796921603422979470470857008665178913703246813334049426372783417395779846614735745736205165173612575856308752802953015640163091409271191186682053101622693104377427481931424837996579655834511878783089375289203313681598112028516936254486855876095061977227584325322559930802714462677263321635742518417696675487598628020293049117768836556870900243783700070906106476662699318357738217142427707040485478471745426515618111328102514952834193667965424580483518184307141639479610630740683289468290033179540903921146676832031029766694664513682754729199352875791033435677576464237946055861730755324983669912182368145129632408329763489131487179418564955091049152720696304143121312536875417694036105248845678236443305127817204851099939525670715415113411558814639576474334088344039625570416872107728072048175490824904016135752038883220888294590725442394405500450108197886599774910667603438099100948708303467476694939605786019128924349412081577682685293380028981373646691775409456387151763034334387390380315860456992965895590557309991993064858673928585407338625574016957492388405576577542721933698758403893154630384987137578477815037393197633659166826144324484629170860775896638746420859840409324991193103377439052921476083395366546923762040616932332585149393042601260528043631106043539146517971266201524322232335905752231686934016560613440729524076858799571766829863475739609088350975522935010790238802210057178938004227491460562428094648856347515619530387963970589997751367664470981259681919786975823135841676579655732629405404819258594616529618561667860970669989899307329386183010110362078821638951345962425335484069491988246767626554637890383417472279394100426975459156703325428197720481414197645045102307370013980358626846025424264969124217450400488256676329182523656365301552508955762686232975365076607706222530286171083812543837394697809221577317232472179998552102907697447029852303981648388174663192993307405199158711362238825211411547007389154436920141904297344035635497164253592092107873179787644313067195520724315488016960109238660862457022608675333913894088806126322290224324259596318271320955394026197123778385049004434352919125748031446444338245979710466958791139654192573672991592850893642988987197779329989390834921374105684440561429054285090275519055104000026555036822808800228741064096096781793262735012270360253034835912284578876276072918094843500037499910917838454219542812419744462377690919296890516301267295098626198008337396725101505298645008372599795624061237554401917771917513659410127708353938152807484067117413147865296895055926887609579867413093321960133576080688878348602835974500443464808666087009858222889480064778884722762241152926641410794957971608623724622635728695285870497913533360184851517109346267991412936785179482849204021358238557818096409586173062296937070446475170162135064701602744099564828180865886243146548253193868745486569563124412381965904534560277671070081216180456496805000434763853541056585718076828065494397331645553337805678804113310609235967092198652786334217915749035912419323122372764064906276077243884984268079840317741761146263353977477388077810702469821278924448669040293242220982143370620174286492541069156494599223183800074579172486677286023483792327123230587274878237628644770740261562503608277340839973389815912545596029124981603044167881764681253854181573021640656539170133677788183920806166433959847243088981273962687825352443970869620488111548133097053398312297084358291484855869444518009176031420617569224425132234811968984322250473878430044580818233549139777752436017025167725723914134878815071910216128957559748485871344559732968261879640544895817487961396402283507766439118125748081907343280619008390156644682022843822319273322021853555148940727918823995235514534571943987738731166565727788162621609730867757447762817637755597574611887900845428194859703295643648268453282284229144107438314218469378508960273544178030091539479032611316917694685460719308818867879224423853318708071225195128561901128530530090115946815702885777243983386565305945669766088939663172989312365175621094003933140522835868497819514789031766129676330094589408867790013809652393252778486713920397848945007059970162661642302885240242160886800246276263119789564830392135354624391594088491952665142311688411753888932561490703326565402870379842152364685279795131498240007718034650427368960939203835980257146761336148405264875528221710709563770868164533851147554016197169075381468460818931014802185580375799470110259158362798372493241138968432875609795276003923042728336957974422056386307414607531604320111965504232639421317899944866268850184992610723285540297530198687015068231332802460373680035222550968288498627214050156804555461724282710881445017394488403776361478857349105588867987318626092259412511642313867783386836662594842150018281973679851656454292948244452054644758970892435974635021807887915360557131698673192747168036869949627684949863170030610966971567146581676308218063675452878885314975825999297351071655818862446862618066576741324061664364987036953982229911449812035889342738439372937719379441626665131830438962054683941059923912311468029312587309503732398090907095362886497207078350964030539642794570866989052744953927833632527894885421142133606822591610381549097434877947793367595488769285373645135985140869567199005035540191078658218907905826539642537540910898383619416851848690122472861098305390336338342670958077663432023491915655027643663615773331021745909768959546361864429662397117444556277891532672553165813953741394325831012872287563852986670474004518085911404831264131802457070732623126708787520849704542298867635274755990064951516560532306128526063273192285618956842719916619335100265177546539221062540070564207034315477223580829861601713091696865551115248968920390962038538361344762483364287265446086917717265748954477493755502571716606575760773198660849899241122865981617845220743483768204106482089005047106938886146230807523318688247746363759001999241716110035217087808752276496977497320969726351663427515194013889582121839739731316974402763064807611294595302538370955442958448567949592099754243780326842183293853612749389296914521240938206642947391535941960786857582697528949414499966052985514352912986796972367449591745908283118911553488087341114375504376207504438677714753046770457266133905445763793071596298197505619223352419534721654073150415227506847374971352065174972064269879334369823076624275568949161935189177197595991351245551305138731029850241531690810424264917970379008226519142843105200014158275442837115267039453151849084756178251174899316091754964841797698076619568348628835950952461388871854703087136743913062732467152284045366984621774707427284969206625813756789002389003372148981584107872630208135968617707623109100904957121683291987797905132721218283869361495052894187273892853923603656563503034673011389171105979596061834325223907387712600933618519770237473084170002827308275547897084897800770583358451560546413362954328498754801650196924746337859587682249237097478566862406540475057486720476091543217839959620640512997460863263784498722374527493128372576463539978728305921512832397468752816462246848644446695168859933933890861590436718366168433017594073793203617367814483100457145098410668306597516890655857642567163769960081178838099439870748603266260264379972765808090484097192583099064894313436271167235433547851059998233725725622745727520000151676536760787172762919456079614792385112827332414072092049837080412584341965924037898027779466410541485278272514775952668488575381852866535646819818157158207793048678962699675441877837279144172966909898523491640266899315558636431469840856321379605794898227358680766009225398637288839195357178021972364745848535243614458654962514538942215792016491296698573147096071349534482678770142868135617536608621684313835382005214854512281338714308956983990084324707617816513970412872750766206179062711606969174511034384033902865757403431738197500218750838373715079143431063267420568130930642206199804775721519409190214261475612961245918643907525915356004212351766449890665965720196488918195874280238122460125137108823272606675954838913323244375674651340697982041304345837476299513739870537620475093019309192664474477274490914221988815279126524311066857499490508882048399775228933716870841138534942148669359226898023342553030652603581506653426017706443016012577250032246502530679652180560636034042828549453960400310633268470714352428419247613580346962532497567649986285282773342182465947889355231999864850590256879854989693944707800576729507452636621007407766141239086252813463948961019216480398052580050447415586520063441028029377393802104426674772166506478175806716580828076334166010572693526948162153480460319180130306526264787860946362538605271997378276134575636265411776914872046745614273509811786582005756796956238044335400299160947264050522973900644209875570310403907398018559254684474094386599213968615770117848665740348821411968704637881590962947886997468883775546493456048206289236812588483077367854183739399532141612008434231436280146608229174290272730263919270634675042203627862099221622459213379397416507014932667758260656226401847359487655162630774520815949419574044119246416108073775496635843443490507089128194932693631837234027880640136562500630147165603392305455064965730849804252456143570242218790401074235579885381186301118838196801181494637361217417114309227020621176227274259452462260074327862401513633579110141226651050495113820831160656715876341501554102874249121801519580354489489057652946028595177972736609274680951274481287609450982221485057690080516948087418914207205490934140575118617982702317633082709173520277808295421085929636834793275821993578717498008051371386326336954846858205426970197573236990678888960697849821671672386732645263590596101896207116547590652409346002355289448060118564497846961867279219339868727526227337937863498111411047967047190904172274568179624371792156183233873524048983871921034367629384206943923421884994186816740582440003839411097095113120957994834697229755041205089077433540121869102563369014556294142995427538538658053937626237657295669448170913021817464153671219331165404772066830138610561369810448226759539350419223752264293758803472087910944256360127515488505704318237026412861586225895171753355537939073356626826023154227478606220428288995679707206398296736010067434570848434779223352993444817246281748807277083575247523197778390587457786792830132397055190541347634611367494387632156856541236724597884219138802106790489160084132734836223704050119273790117537202071434842156202285856396803787862375416801315540195485119421519713305229176581661942475601829300848898873305109310826281694547042768015446943754400257828716386917254925961974616137918045207133352505442303044883237467033300064717698117229026793387560777072216614750282827457209981994114343191905284020117420043289746652567937211536801641774026427659088200607473725292319443700544744970670767990113829212779495256817464625541269777299504210983244960631278908772409284433559411474671250139911010557782846290551434773689656832770754024780830231537082221963843417823091210961791590177975683256146677020075519985900743816260576222885989358980636531814190082822569761746106197835059877148900643409926837286037156442565760394423348248619450922822564173830986113992203449233055755091641586530208244160411344089203845038425052335056659850005557162304536540685197323120413700693628835032427416942795761478666104402662593922868929990910581394431270418885152788017478550072147297594592355527746158851903557057781603627268445600818044209405516244641639965032121159608071909451746710945797889902151923266270806649234950378439040922755887956675011663096988031731171390473389747713465759473801446334806524185925323742282035085756355664380959289210953529211107667461037161908513840266094698461007091518252711120306035599930725731547334083496788662523887745751244404045469833892910454536031931596238605526382421038187534607809284183154777071284446114347305799303601867451217725200785451431086377304381145210229421221121270400784254333104491673236158541408221632232286175408484667061925782603992859616388140727090650276596670394069961560611684813481258555796191722386513879709088630865430538791732942002242428771592566841179815879105317560476184514626677565826775601808353783382764403105937737951060605017266827476971440327877961922297513043694513748928514831653856495183362311819956042173971058165790124611584014474371454890927859401329925187485596924947672935489547849917470037193019911427264421731097592961549777372938148110640443054726473617460503623169087567779125980090514469794728963370708401653478555228696064191499813164039490139731715235931412802651468697795835955739946695023041099521626732687697030898011044120227881078039867742122205824464243052439836259867203559832780501557779575554965600059256707645228929370384411155836220278744163909881839415079497926802999002825238564909726311489182198381773921639822398467748423739089347037516779687393335209477388276032497450722490619986114606742179042427758318877676773944855326422406134234352862517771198368067814854208369336328851163092906285008296680281185611302767673575762653126713328922030210270048370586747716083557151289316914580138370172314044875484201963189081732109647889804133142221804839055876713121488429952165755692753681593584058997847788219642347258298747483103206040653088142109696312067736597684892481765825016586076245537726312335353872960555083252506177625886510263542820367057309513458751027580102092240231765711029471016734061715498474799884199412632709406618151505500374724176263073812845740687195433889383201805781073044487088352499020364199647112200690421948385253903493940709515069841342975475894398767228287004418912094252318988293153290946858469160800750599727298708207515826760818967806624565237456285401954669806461243214573224129985158714797463308443042110381193437730819927695516442410575203664884089379994914161624600400543973499544698935585367258895296995219889534502636075122779476666140227986494634803499772120585250408709404052508170869117043716876574972477034013854204709407724464217751211516998178042860697888724267860282917565686890579705226121203660527661085344602758993752733386067289032172653492286534590752551658954408493285909969653804754662200103574760634755769842895775298078479754640680113397500929680594692516829537117686968767436988981086528341535693508536160054791352493205663899676738447747635829545323610292875359629898437715970677756013400472654821025131945179863078234906597132848828971636338919540062463782330581151641228162559552486785547473851568660729531424637200722568188846508914149368341647790716155544595612961662826002676131403673465542294281996618971624150704634109688955536654644675420050792532512607683462556728656463597766322870592234856975773800710773228639339745651492142917210117147909565117207461546602345447435116700713040381404767101137299151092261803384269597179422997689760808526221860773027134226277112875666148962513422429726673130244304322961883581693298746707103376406146101655355866568655809184793885902376351562277954775555486760619542913782418731369891828651522952140570394430624018370007988663983495134321090210986273160381925798485682027268048732998813270352720899633640688245820022504805431982496288711632566173605621126545098824139200925127053886465792694207170275304194281259430322457735095673246990497206345788748856439073356171851720700768191148664818333212075206242771237101676267006723855828386430097729407182360157839421564026067528071531534015880088428155346113787919431376624485514876814560608625844389839629176301948473799897135204176264826436707638738574696324856525044792241340574415024197243724181391204018946982321519778813241251583780933904336990987646111370810594020739531196574521576149287699661220675749593029434975326134972325826732214710918568868694963931001489190492542407805917999674735386165789103209264256857068111005248830828588227734679278044104513386801216818363949887241096006925452225318566272828679278250078206548622830052176046786027951989259804697558998132791303172803226105980380588127077220449373867835796117913176779193324745646982657180069150108535360370811643789502415961283132837580326165552699129308042864370212072451037789600856874793628251497612891675258758512855472693419727244660511837127772452167581268922648263993963584047519523217814559637218228076166001580739822925852788110559169111429394482050050661583450503638082477170413214575284121241186504176806938478883432853098961329561844215069385337127058070399710265618129741427516922972002296109729355202753951176010740207034291914788569871283280043732338098324179934691097289214980424473189679664855845255293016643791687146882231914263517873758993610270711141803384940384808275101563244310881030025540237667001173078344730174982012003947300215518726008189658051453309661929758676984274660677344380063102509388391494588118946114785713454209243563118615889017215524653133487504228889843832623716205858763693032165069709106793155479773913498951888104978976533055385778378029017311967774369803464260119834660221961704168563710074094881817250144367864319768561914830075443741341118535443447106648446390640450423897854857063584289784822272295110774117348061388211482777379731241360826543306391160618745440800557726033520585870697371225470812610211980343956565519294263953510683976143958946749880473361815560916177459874424355489399975771758309682400328578599754497879377943323876620977613260780012009936066960606488243702169242010421441747679991088207061484470282596113141447335121438825482038145255225067078671131411819158590869653528678602439727055631103950108931956309566195752307986214395212692890988009400101454869286264398360756341066317043920458113431118457792415917458200540369326129940859448117815527925204665206913069335884739161596096819066094266376734825340298751673672359581441599032982594655203822132341800960008800978405328993908984818716641423683147558107171810329629369150966377037896013452258917527772956129742954148112844683337807653755480737667856235799621327211953755823091585887354752233608360836185075390189696366004991397866004871487910392488177122854137282499206692311460410916419236302497066772338777286879913092813222578948826978501094297683007967403313522374301444876186422863578560356016412039534939867131348171808379158811593182278047481441296375421329279819266150675093557871255722582528338569010739060691413021206869179074931913714321076817135462189910180841497998131104085752730571230980607330728791415451840129428890672207786617375631567315825604643688312569777556546487955101121103177712896256006432478133907873216839019845548519978180628841657750469739909666646864415076545667676664931492828403531338345773701285495853051668960181850699972249992542269344012343985112599955860562339338210596302377396896789364162638737271791137257006559793818908296275114371710047954641747608429303313222407208921463372452106213778723243557471771933722933579172276432823715428947239774467199249567714314811142365673408647719831870611727559027205269306106282178785527549803167169969630800857380404252686628710013083588612909672014607765269007880593152560712278997386085509902667831824263719477737622616643701164869574575484535055808474901063520777050171897167676923932439352710678527069238924311369383941105063105448203595499747905651940582037252516227373858767393931996749191865029771697941306522692026883801104930940236792461489747191704139022826247848199308384364776097537018633368029835390560506295553961191812351268275399773258674335477588230380659715572464779777059518888599576206344481482167647522054062164647687832404087204633126948364584925115746542773518846601457898363367272399334736974066551557958340401713747608703362440716244011904383193301559920705479263660748058432708680509691520425098139475235566149483472994535053758609962994283531979894407142757981677347168445889328166768328723352792655712288523711542572782243844853472523124421329189722489785041307314898025051873125070050792657515255483272571889624479964951638065961720362703820204581864920546945907324004459000609042295762072034765985357161525837456722328830772158050107810824490538232039668713064747687533879299958811199198697887307617558225615031425801720554263867214559769456785804543218938672415865836454163794758547557392022048047160445570725742263339094695645847913086899368805643785767431112322255536037285558512426344429283910718933767381298730440108525187003303314432584413685532147993573895271957216570129651268611210763407258925817646510966969920819508332200451123890259947978490179218678287883508662152062512389052255300077064139688103059551873408057651391488409018247380093834852666789970281583307052813334705479064354677213850285917395580846200279765585734393719656864256541571325235491753325320326631287717380763181571244337515519961837390447737710062757820365036955579473019474522599756469061868280350378698462377205123243064704146061908638536967513720684727368203891507593262528819913965699220986394427502125697398624558155269777006487554379899526412563021653452693662760454802889097501305284677898283613040249648242902620709911057169863959177182509268384952275562751775561814583748514365264978389753229977669871926609184185020047049147262648970223871413324268963218600357337607341043996699734008405844104772692594796054746736911948552255142913543692573835636503723609173972934779561364746627536002076019244739482372744449054981980185356575895899370099780965365929153683439263549328317703292023027353044129874225006040465301789057651127351234262113435569660527334300475909595257703512952899268280212794812951467652824345821610210570643724992510069779586175337282637388348661122102175167620034681652889716737071018247622399048946303344111412342470584829319782231297143229096081011979210831441891584475009905838055905134870650281379581625761558280870024880101774876976105325466484901155238929295466675830159861806253806713427299276250119072830563090362191007208255831638409917820568079092137448374651812624058946736566937173996129002737180785870878202272592958034543991143925308388524277657300484773363876536893285964257181293861375320463193677508067526839773080551393568746784382346366874114220313730853893473883435407836439080053739800572237402737332942471996266737257137810705699797182248556616324733022338133692410603211586614196821294989207909761817819424607608584258833081125497557449592397945790478358433721779140839172442493123196059266044443018488122896381959061087607415253622194942827764912067452737715576913506927986359637812235356370818413098404200017365421229509426285957835060720166153630528690654183717493758447488089700175013362239979137552285769670316730768614632469429825633041326486134190571224725080873275312424383519578629884707120582800481329171707495244563046236611545072278209800805906518669266346087178922445812195706750518521522815737708864513292374929970078448436300859729429711585113709472338067613847225739906508358478842530440964431574673189970955783639354957124493059711027705039866253390214596787076443380309839096450036888692393656619068538652372088247309037210554551865562254419264582881102728139154858004947906825669084637303198060777486138154178775662904185928014008126105362786451352945212511993821212744017439659896102188231895135748698122843750361630299048276999400177910803209761903466466163639484526981746150990098780535008715523094805944514995780726773732194823930422379336683999191449902242756602344924298813180416086512624797987895876442503622599837890404486736763302193332671902197265672397873431931381857110980066682048426117868125604788937413080808968911437366297465141031601876609817142093620691656634021424801351194060842925477966307837279517691692067392916132503098312160915765170734498847225181514677133006654880286314145140696127212164134325878438209695791355038141893901728763999917137518099928900775957625480446357277841375846518607241843643080349993294196366189175948610296293177324719286281950794648684295546843800589276367456644161758426489462250426806347028038324680276947548064540385064646394789123202544463764342493597127278558029902888973111830020255492288727655673903785562374023556608452162089889110044710683053564699507159502702361599468072476786983138802235686516005793441274673681119652755973603490859365034671992171771175092491257078438076940176806452405619309173627154337914360370522173972235948110898570379341016720470720581255586798883742265311375083022281709975930631686187798287324346228739150404469247828173533867070853800394451761574268947038015797284605287981880635079271849153240086729310290644775271437269368131728494821406231699060417331292834914970212796095690724878599484958166582759387932233464847259908009950235484041038005873435610377716130949176747864718702546168455711766556786808630973519778877834041688213431711402015743579907758067231947023416658689994377833718984276141399688407739649825112167937587202758784618605067993257420859635771850641566707093934327577934787000833315207811444868773707523476276256459530125624813214147746083755761173918107545015665648572025403618685537255908163772889717197383117234850957741249521554798543062125952251915506429134447755170857121135102713269828800308416023062124935963624838583478918165809487510302596609976966853500266868602407629588036976456572971765559439602204656871115537148164517325402104067676490339061986276225561421876249702556978051096083865762002839280535998518721619875214281554340916951103117243856404696982198127095259792358287044099139856064038612921493039140744489117525910667413366794954465581838225529209246071537258211813292393413767457908467024080874899373945407278631529205598029295738583291418331351917182025255200410964991294364211063036272908955425304800540567801275839227054291084993800375404720145316914066483194569004267461973455340031986282835635348816668839511698499528187256376547823313426700022893192539617192394949038172320222239074804233624290747153852264846229508617883389760272842992590432402502518173188461729589827503888023127376047487316189531251691741699959082406342919261799535826410425333760408669254337327030728535206261423839503916076887841368645741283484900757327437763719903093581657304958863546779258413795363181876965317049180864128502478499168417260768255007234262258043912058403027251155751779989039330392925657561472269623533829143333441506756900431330145722267156605042827068886882279362164156238862145386720505398489649764398178977624446165629218009830646718695710699143123757392303147911894999162729505677744369876901157798726732621783266036317876471318124725821782352913948369395454517331858031733691112230243691709606721909170259055401643279967712438675472646433318453429455692778574678128330098560486166947046172648483624144097135162207159537181451892495140948029050766246583032475409501126880566209868067490518674967089295428973860589026726544294262081794553592366328440379614350343211466809802494009980649348069425679402040296255214479725407806890733542818355232014986653386579864631794501093210556636658315221791214766030972299021259925765807154607862190754804352276620013124762101774309897250267275176771680601745627725417401520381382791487944911729755267770602842134376866056559353165342995711869284959095408162834565156700663806467812922488152039188858223424683514314683409144106811213401772483369681565279031422598868112561748007161154247232525692149933463654571642467424787645109615021583282329102736828443780740204037296036344059763026495512339404610730929648206480812696184971740404463028671483876081497088759427772026243367486197204961621233061386484548790722598626523867587548939010968116128548436912141932840189915304195895966713503338451030697084634391368795832830684450630261853793070908511871512327501153723846207388466549303150802424558863279879792319839821083456875506414972669387654769312315807492360521369578531478411112259172743880236471384300853776869371933246199160262815749127541606484377758376531264982641558708906166025822741096078244867939302990061268673393561981136442812504586726808360277524062972551725616916505414078926094777960401637728089452532364155016538305445657169361849747905850714982514281287654825806483669725300222597239767118501338702058545087815392874501105107669792469694856932062300293612441522786211540369498722702631247718361174316763012793616379708134265675942289579678782681394990542686310591177403952882467644078178564929528611155564967264988782820716582150874705244299341553275548580099626914381121527639999778066845430214233747415074056108499404680349551427659361676827473654739557041425215277755405333258244879796035542739114413238611182590188824739367738208359858886517211568810858830530283497491865608705131682466073565728769895584321227989265344135509126709183015245995120398917603132446520382424102773066788896851172352365124072393415930488998783166249726928587336818707668267763648196248430588608457329852039374850700763835658233395501089556543771155510115299206153025129514549846656297088299686538158485098291313596067794693035992091841974594614103391992759815545877067596751869594234748236186100441557869778772450284195895381459339055580344618658712003231769211899713294054510463060760720169659560249920715734449467679913462547981155881337342212660877174961646324143029826675227427527811860218879787461049669856163015886504278747425715955572898320004584736704410173819022351654184496910936632708978911748987356258219502080399322829176167441972321919386537319225004440476773875485763910241930111770715172051156905436130502343419230976356521973676827878416881370559203940770542126553793337843417387424428923388487152533065436800899482107417299530805163725079259540265070417500995717879471976471747749899151695372649935015308279112138838383152659786556916558447241107372884057377191021786592302791938776816092737635774862789613169585844486470348647372156265166596403394927935647003212458545099990112258050578468116618996572478459957798985391343993943136833708088556268567073406001286576645857223492050067614090637555838526975565858130414112078700368782885416428496325499517716417341669962558929117999765504692099350098214992139048071125391378759053392983537725322458901702497826100228089565949039966536493458493612339771090394773729785261246090357085532404545245412001982260333156907563860515217799119286072698694720401714601774361132271354545618965480480124864334707086512002299884716345337991775838309909904993847951764388759917760172647345342865169128501226070577909138618759414321515896921140335326160071759157490231332576471425770920414223561007923778709305834153613625720421697900801842135169941965482178821176179675042580454949433294621704234897441117027435676891210699820360034725972703142456600592953829846380512088291757355456885700461628248336995291269960071197456025993665137789756515151247571027601936362022163094738843318895254769876012680283327133054102538399473464451604605000535369663856581028665807025047271809156952948772632756017802032119605380158332097025083710377125097509947375677948809988945778716141746359058810513006926258585104337216121764209204060012024600135013520475033985799049354387846201125651877214342852184916490962197543234917312596639852431302636164768451094662338096490506214166864126033187264703211401849715349087790704740726596101145196465867846887255806424504078226222362810233396096481020064938733459713317934758807912127758004373987645757207187544205907679382629589953309932177054455496096686498456660267050218877359542061993240130605372244873028426796445215623263937711504132034608258393212507457860979275230545482379956519529514315628137498398938010814965102292726012675089351550048906434391529866172947651470316860575869973804889479226033423955185677462567206898491126527572129692042073015538291372103592327025192592204611094637711493717590430638732053750597065527169813538602724796991113863862158234044131701684031239929868336343136856874431844070698231863652362811891691796357886592105756128129503427151919677877339973319487632805613616158700663240526876721441211634059067891118154775331196906391897501174216471451314513910157552734828368899133591499440221791405752041726980379490205200374850091209780467566585599632643029895876427167719684069871964576370679301614227917649927137238692202247579420851901121143096219510627398612520083944070434696104072257417118433862107696457836485159792477572790154382027059947677582182012026948264096087269151421802334361587513284555714302757540852710655059168701149373525362362461131086293331293354967624643847758067754660571326975380574316212248445938533588492834659147361355177072551566468091257162889575532528432369187513976669021492943608360305477980144506855253236967374301342586817301126846149856515270658681486299557200275337847680457796631426368227237442610347698797864043548458435694278044220301755219057698204411432071487374040580640283792730476472117620873344314347242908490634542786021413291648025370578773389512412568749872152184525216265292686099007381612753284768538419524019236135802009534324937732756214034289595642164949579733913584616771606355996043644076111872039224015183355877639038659177619998095395724347486358514871632387798044958278015820237872806857177395577753162517589949397507623484484403365390548781479636607916056931200465329396426388427461944762105731693446412854874647093678675662373599675584822763714795605706442670870582882940932633845556968411776803780875590370369578969739964843673047388362906961221229770137279859778332869063361278956910025058042273311291826411094242277245124255352948447900517507947719325427800439424066419727180267063460210166702701452651607281177658273604772251320263578945176081878965797970235257029310112581509891260632633798913841516890735757387689743317540535783390193048768897120122300894179303213763895013219858818661361870444142719652616227822713448805849899176183447304849740157370372102825078640942751792893124602171293837180771983859680093806477014014283822526915476138270678866910827696243421548661916751565531435950771177267139627972267489555138835552017145547108278697042292500481862530204909657196070322838349338155238122301769062420509764217814679551170957752733613470623117161989707362152497022321454703074457334296762919157058237232917174613951449881355602821568695157667241238905122692610588583069006907422254121391610511094569027840358614746937148617563744863050407934197654377378182161659351639833021579526948032151751692126671540360971023930506214703598713702530523704273958329547120178891196201470540196764987076611563918072646861778427350415995762864998209212513085751280009583468177211667638318747437593683981883721634677093078048543629431538649712181537386157357201548804033585368223593136785511956236834142173662265271144148073212127334657079562611818680390528990819844842239076978739599156093245539090898853897158896719986976385453339092987884797765016219398199546609039825159530570718298893942243941341104303784993027428983213005645582050503918913592419905589516002749994869195177932514143469178151949655771986617571655825516055411958748625790736869022393675841569025000265410687499990122115983017029903107445090648008769847533667094671127318415065884954711439511273146267067783917739880468577683379325366353292795855801943267353513022699253643176770823366187476907567043008798837688108383644977517802681880501999957061044628530805197746009747142527129652593530364282135169964360431955865221590149941111203646453173994637684031059375827259478188139178556401668383148823725596167618264206060145128947544567652419349941915683683693762237043151344564313800415244952150718270863148247156968033186105988333360859225711855857291532318419033000771881958002186145316955130754466140208234029647384869213778885546793259805113217052027988919026308651931189816648884001673385502570949162457671273493960190106753984499221874550474495378858588671157329975370251309160860613041223107134023218023901862554332235073835767453263459672429797858563681313263011180365417563053473916019678010728867766854142308625913661087410786250945330105686499727026868476433343373055115409020436820576931031607869638287709222345954120567654370524512099880222960517896178895958483201366918124705341398461584425249465990848238399303480297215010001519055099650427716143110018899304720658389328525148153396884766786497111713934297925583741432802175872674425717672194692108523302451554416151821194854213752683216755521122930005037027716667119631962917840787011193937418379488794500302553158021347391246647787582359717215464513640628226660183806635814945381542640912168853675566888204597910210012758599697829514428206006669088622674044287646482454162231215728747262698630051386192474855051878973290152348568588063414229963095046908342015180211997694364519285703816982117112825363535444407618296231458514735333286153286903880740005963713659808050777948449451657553339914304276358928683853791340530491773285414044804963701121419154189908786752042912461032688933464853851921619985154029187217773609633340196475927246428375392954962435436603445481491942991484192126819065918586130829595686191121592996006701040617218801285552780174005109506252089535749660282652034689028452196753677417611499900095004143581645104573334192394845015899256955308726201706004197302415588244429455588554740783408133283491330619881161482725828368418866717528139000702768943585364314380625099478934774560570397082986332138198762695001682010248384687005150672178687744440619894821133955580487603800013375272138938012878728698463432020996717357913454859055920785350353806633001225964485122612642425818109146304526157195162899082600516739382697038917993258954758186278571982125652272751173034495849816875909446559002614673960289592022485783734094479223273369287741119529065684245703516620242257238420994127639461440701664017531098508464338231774844458868997124227972904227122518750669006325515645290117072621195967937678701886898447224041193942051115952903824078736919646552416356005070411724790146702738500920557839943988173490465336032677796430050634909834378784633585839568275623133043530714837999010577800939638137892132234355225594076255555076052794176645472187215283473637947753133772847481831928347233564303540948887506895012353867432013603513080385561617036254048834761012495965799769114220916085712240531813724787699882153586270369856872270227717709269231093221112814155539171535639814386480135136362307548230153265933745998580134744280535085967422125134817097538079710088693507681812730739147709075936717259162540040095754371384687002167809804081731602768663823552259904102002964025584892213764931473941201184708750565599608535452113475259771900100009663457264281436058535530579603214545583249266973482701970634199236596024978818061290518291516587295298375080194956514989857091797159381736366940321032928846246505648995653834889801944971822069304756985285915575434764642569378614663668129426883556751779702914971160295357217381975112255266869923976925077434104362090690304328887803728191383490074732779627364180236460701069632297248889458107347599359487532713333236288610813222736535160738437508383499451039001919498710862326261440891550875381290276736367719212801148695359373590278266358281428014681913590860863754606699302792416075346309052018388869940823999196266425028630363216293270147397901769424325307963015831076514941076725433668767881689096912316194401506344198584626256173334823559653569613452569063515403387946474826630902410950132804265430970138586968322857456714992761574220699157545092050171067365864979782849250962501622416522221439312264243496504876888919789633177511791637158495563814874937521152736558505043912561418320687674410007786143201795951645941752063002664795689188650197992031104980983677213171371338107313540678524568973102807252730990992157623012607740766201659571330658680718008172673634507168033873272384368738849782863872650516738985895589963343641734268866609083327537889687028174270670059636715925414056022204858861290076244759146550484785690121196799699773769623706002557520223232459267394331972087836105089390455210735538043752442844680852387289278395989744562237173970778962483084078178132271707647416917895601573637062706901296788846493425945552017522012829250923503240675417450484279251589595974855850994148209215762840555184423902513891927678068934190449846185496515861097123000039324268160553884599734500654059599529596636277589655313287667379335532162812421743551519486297326005482973027729090008152190374324083465951617418143684161519692983954253236931735443578830895518845322360014301756191037632947842110867642117434773706072920760578534817614334317719519304650331292767369063847501194413731363604850162082904011506367264543876479230616883557426990218761365129321583613978015520058224116502668835738890434790070704961540975236391170041373795849340267578504773235506786021144111189448396138467360288986322399255088851288000394075452055252959581527015851708416249542721850691983519813936048546718059479090275263768826520689376346331272688100492473066784415502298618907728565436718819342331303498840018537842055985402972151986541014372330344587037019817626541711424723689251360557375213967504158600774246555631943581557730247924768865414092838272354353903813853569048424366010263627862668452707530090744108317211938783978009975999412130558930078713671912296374230084337419230535334326279061659865330203104236919131125671200083415472949454698215416657632110599402193808130965293528829482361859139841218935081110429061578004555562082521617374448493445220510200627441571926687354591514309318368908161978462247549959997609660838778899175517312631928550968203595620295153069382341898291604592037111856797350669533065389827040813079471868403148632083908921169159913467445639783650816940236775074582700264247034277049323631518112280875530977598460888923427631118305651788367563593092642721877603486182638769648243278816680394852483416351281106527157272973278584486592258843131840877219044540817380804538599804180970972023928224115434835258171891126193870487131439765295075056484432954622080680927386276566394540868677646033619799903307985514770276410143775766377299530451569292705291500037696694966059776996734807970169600241574836740822843522148209398879387062072936119319119989411855603143157187525489185589135355658095535693932861979763694492642709839836764522773783386156789361741956526667481320412035774640070471013396971968089837252189509681275198265967007674726553856581035426313473339823137206873655266858981267371798028538911052259837896189807390399316696550224704519024275819408569202323660915076628140513523064557980451512378720755473151551710585233302024208325915046251445346009485325646642534054065960893707453861485191265260829592056442524860136151924290405621541461374906347069457521862460358944545301199124364624807184260505163023902738808555275590888080778235287904556733102921533619431028116104232704429440165307085206525291613940100933139794586054784153942407764752065066978968160087773481144910660240561561558568032519653511657337466499402690879129917061789280727098780710079454486319641003658524739985967896010168294149264558738425235284391433524890237048915873157406648472053749563086867891716194702032954665351428127636257939717427311608368858331496470507198800501886256673687877847802492642584901156724786115792652338321359848714848145460656418359033111162212569193046527251113306948979137341382982467531654057047336535299889622575631022263654432451997645237474223669406055750957541721662875788349504657023237163213649813718206559129502188589477855283593236730427481319079149769245139743534624037211392032085045216328163122949066788783292850942332052993128712441893673528701236206735169679806268325762397780246517357475969727114027065134285171430729532333596836441014762683955656359902023645912134043036689330713605158554424195657252301555416281359155700578279542050461590140537583725725275732983455329999369547577304325622514633393617346151214934052315529697537216693633653114188372333505606553791728069554687175543995683519103169308723709130797053112472269969723905381876890114399459064226751221410302557185067737768368927005925234219322687623804167960965503760822723535596424854372187168666561801026502023446885523060976871638661303698354179485682915608630460352950423506262641232448559782210993125594333581785987466798595586043304861906467888211327480322794075755992978396799408630767306067833448262721885809672091423012982032965733656918797199356433414861193567966804442412927226361218578948737572173008448143499097566016445808199781632884989360675252954398773813379756005409717654269964574447193676763780718706552594239405451825927498308573137272763893486938875948641514995994031388935213483353180690006493456200453588182203747488178227817450857187363786517963472290243629535728429512074423215881956919614156467150280158218129433060684908433189217023089647690450406419184960021539406561978147481489071829953314925401716722847933258816098422927201948640754297208046973374126155407817782115420754851427794894414360164150758036714673459162162810939443627644750347700994224449736231031613530437043494424716193096693314509636566782033659417845488021027498386062248215714671536738207516812394045270459181096642131916285488907054943642023681898153390031432270985867437980829029827124583766891253576931678518858641156004045555902995443705295202575265548779056445771887153060516759741772144023937648983593927432537063331407108143658064852595345075295617336955722107172260893499713947597036488093515243939788920726451119162966889961409016270524272925559454964546100941001468418358876012286740585269644112769813189562132161308191907997601023727319752065002567375298140702371806579844049837456251574613222509957633941204777424430276697830007878604707903898984777157341097552541189276375546049958942570494653074568744395706104621473832268040198609958744949085933064426292246058056427981527631651724186469745705236669755685189589462310486243761979602500653329753813658380314950441679586861845640006472211511657851773547880334329231197873521241954298703367010992944443141836749917714854807370913135433319451759111833303284520830188201405708065399072351323907784962954830349211080274278858710399518194607714513615467081775389806681656505025258036220593176828407632789546288234595213594498449123270585347849818688237744829094474910882837982089150033628280803383145048560508732941047947471888836264226571823530762833204878121299699315359584896954845934822680857053244259436010943013969363289766749452681759645129859762702595595963457109781952777986213108550540062585442198224484741509091922934479186302085075328900314397364520298068167258802656363869847750144303758413179145822407925457554589445677584347742758291107689754344225559158822208119613796006628993522906632243475111758850706361006937119304993048037704359977701777298474523030326900507147950623231784501954499942500842559658380230844929808895798166271409888494094562238934338553922527964443619598924998410123162689431405642747414330749525308276571426996584001746394445207815573799318366891716285638036226847990828306629663501685442664568591596643741319429150541109895401835734478588064304336782777888923329963356616511658616938917180058119954743276596262467905563392845040478872886379581747645146769732842377403206820532950889255543309347033653541961565733688888609888875223840668482088738769175049782577247458185552682894587341267823436406034786743210534263626109205768934659263499985780704008736876987767986932627185725159539872072709992267381072709177001632484195704474697055876586575771352896999607428120376932892978532660655829600568208170595567900112376539842873037016482009188693328714017418738928046397062272045210570751497179337665670223037613414697107743742006405434342105735877130223922277546588991161059065883099724057924098190720463193605609485794022322255830974393666872394085607358351417429046489945059427577766014402919809360494225430415292393746481369081721082974634127768625699058802774249372073809871272113577381486715144312215176407352576825256462683003029711031003138993385149531289960814782201309682683125725478250239087666107008342020735823322218535205496282632310191695964917880416203903111428431538712270452447258521675875733966434886449571682372055424320596667981242247415857730804126629999610970995238055072093690916834252523381973301948073812117176592593142355686220822796271470013670799803007560921447843246142713233075312639090661137873058852287945956298424246181451608493239895588522229368898902969391650917684007001960840862344980039794011932614431182353449077471666355841702925660793662416430230472618154918283541552963940595379525231303464467235842813414664452877730073999133765984078162451082510670490474703165226715984864680841821420993320069702044834733244670104296789640025595615882221482163965247113773001821518629184249674351682064491846638138223284517859124453272272995623556190982329042848434075671488698281298184704892681351643060058722084687876425159352463348966375963054490361964666583563422977149613319065614671997122944810802440458372017315391879874420331039413434701209081044505715241459825953409063636084959967830276412195223026294743209501518662194837751049378786192931354758860499088580288509481331919788245978850677134125710498948761829478210321759545215265559229833876506741074591279590273654765800255983697960204742862640147373439703349159046371854282706840464282714916210253954243807835159901327566236313476383472085283329679712519274979908445445746766329889859179676166315779882608636070613359422533950877820018789721143382963938065150148220927278131957785360203246421924197093008711720837171320318512403429887481699769219862443371151863554990562420220028890915701725460252157052789679591381442545244960064900394824666587761170163230506432397584078391865797695130154180986189306372933584283317892625541783440700309983397768111389616842772941120476242213727017488991600076073657450899610232782679875168639634220865834808824170570944575251724947209652807962859575936702861336229993136271359601218258907952239905526745349487434309329134234993335315036898760159274271644097353015881801060426760593389834829859771767147359888353755355750514510318442327746995464016248944274744959704193563560557581408528877136193958346553396406053506016658237853954091486407690156401234192220108717288961056065427896780491460175928458360184263728776085614066756873767511197979774729628577494838647429153452328639631234031208104615201473121539242620642372941044217766350190770417284783762083235150771779395499460136883176706221874124964806728665300612962712487115900335570653816680370470390931153650365554999669499007217559002925878388378998665913229087903406314933314090994749029093055700811747577985899132249467973083758823440385306388179113631828930942076829569887472472705953233081657721004282560555944812451613121332277069827879137131310957581823614396058681813085910059638049866650877824127911523093871521176044008559633884714332126878475831063467968182589591898546471116751730771021643361414387181457720183030063295667938838169097000357114723116011775446972245833277408757445428739932841127489127600767742338194833894826633309526903465935671883428408476081346580343982649417484388253328120369645399220463280794248546369073191821825127831309895451599366388578949685958377570094982354817653824982011349179435463263199838417580933273302116683343603009875188318855914202255655880539836896315107474089815678215617184678292373288010127628648104055334073433568281236319130652104708686408369981674822099661359866845037945624690560653749655332322505426907393529987829673787332761594805554457259932685857205924742849362184610256369984649867208982815263242681695902406579165994117453259858026420733505747625231831972456640111948838420996183072190854998869630707409206815190942018322588930950784989088226510952725429564799466217575396817171507288841730164338015062937130809562402452085756158417062470701731245699012558964502647442366496684149352398068182465959539374900989191406553167677455796326481410647912200259583480690568520910309313306161020469422894293176849479267595535643757683084650323262555595097421296432503178445048387197230960108584741982226646262632027949346429110344661370301590629529809414946444889663677349101762863088167945979175687785171816743874773665019642320876817664375777397390783357306053944558244922893877741629498699591916808071531292656748942829099910537037307006614103020242702851460583647147646738107431168257579497993301705802625913772165213447865056416207656015990353838149404263517840168606081408312910675727101761886059117294513872212691234530658224861927213582933565078111215093121018943053065291073161462395250109526013601214998293388332364979778318314691823132465725704372433877648156466954735511184202499237944069159839672576263601568796163970032075011196988419507154716385175838659337462810893254261907927816222455444788835234302990081741389364478931221299377236843116517986008803017069561285443487835225201415910676222414141195611672065265744823349365054009784996504397199762850883519978935145746857126876994507032121934164042358887310557665844132121244493737088693419530497904943402810394795854997365597647960368512883329586277034933045360070556996575686941185873007990319590519090045709185948597059617618779215362495113835521887557372291316385830759557551921483389607965317076405066393212376731294861675503426144889028577978431232468317261484483627054421058512220104450398427002867876477529693526027619477200741647389155414086652328247259580338670474643728792767143790861083875643763327014082687316275831645736275225994813925881686335639754410379392898482954085726736983527530737887037511006980653145333026151339076066947679942032076449695571140548022690430201123817384666328932277000122860300081730244702489437289109033898432007928733349943937727252389008960765245213163111058682857704864014177149714555739254551666362851972132256149887203911918869229716775047175027558661092477702486072814573241403702690258556236361163117768992523877496561165475513413736219603189625648877374612722427702458578372821238632772483220281908433104100949253890761468531343354257253100374637070393690836894739905730020296268360609064693728606114931306453370910000878979379509627088753361371508349529414733336756639759086172409594896133870516171541637052360231171271667125161614641658363602325822529398301137820070366697812308574986959011532500319864957339298114706613737319148320759625127133500531774821113492800255743849062365989911576432665298719523230588604898044049405475941399708564841365291019442747600502837610593168773315070631566387141903810206594925844467838240642199796850724129235481138678986668723842548357593674148082010649922127756209315795603205737526910646799203375799978864087762531840178248261493877595531861594388230533284714469062741413638709970322810363642979820832171857646892070113024431096483694979193065131361923468606704637187833057306344042003777649763965893584335413352234339749521690354002987937243760278718334331913695736663046064392766798318830274575405560243889577699471928589586875910623212468387808297664108323819507289108564074261555763430159235093006550175311813648648943937960124589397280920132036332966979494714882303801845094226758168524948208351722526922419987759589848712106987913463941199384575247823525937155547798306895001039627305482437817708222515214303732144891663434425111546864717833901921825908835170781785527372736765765291227964963765108111355466610193873103864096010485855192426228613077680092207117990265016832025449778949902871527772538291188777423188086790577642728521301340903420795480420896300491533697239625439018830583963343688303174995039588511412745838351580267880282194839580709931097935568430925331617517184295061897380648410463771885224176072057157599936898368363322800136342524710916549021172907991187370626427459187624286020015802902032880713779957911944988497941275862646586946862348609329944017668649873096503492431667686912251388021371693818746338808705192064557468032705376703908465122108067356339229642439485265107322361952180716022896038509091072222925135694166364365035212001841194216280534436958767434734200177480221689557113240981508295768345485035703153496213351098366969081061088960901188136375166402579978538195800465802004196251941701104564445246604443283114227219690471331571656160295336513109295231505803131280643463126724764185546602133292361492277013328772668418101144516511446362315070350022343794551697316832411881656735043399438089167779238896805480585379640735502428536916137802375333454572664806762119526369354283029910920129409962311788385486722832396228340076016593937049138058130881621780765356315981448592446285836613736923083867274658351115299897051570351078777066909916804074714384829288914802186072839627293070453172439932889659018887163617676791409424731941519074113240754348849040961216767767553219473959726600418496439640365233377326325307755746994602425136232951668671127249632583992036209390260355725705611739359884485148697174531394827798149188410166405953598443673938035809440752532844313982465940368088716887035922137669859757340286556073337854249247208490015788955864215342661534070664507925805053871698832769288638461373658888946837452495829054723204168363211009309064350707862075389586638042401978433879872824932581449516380334492422095905919219332437192364770873458232622532581251879031836288417997078376312016398312860464650288076120373341669368886802386177851807591069731355690271657060404702143056803932978727376465416341920241659167662947861179220550263101339269423102170267828256153085162434058752522994246522332996297545922381896421391620239580326862147331503792939641827624907183389700791836183993374862309375014439003070853745353488117175177748885614739583627738698461061200889895166041822450051684728625254218889256701386222526164550619675090301824712569554336440822889318040781295534699286574366447974586832185705398546573338689532764399645512986245898376861868547572855967833363805071758774833039862790873842899467757831110787815043144498844185088515053492576363783306976946448008987430788974424266753367364280169729290250991283768130918350480519606327156470015201622011150959915420452315933562965573329941608232441602541087938741607427527409330630177471327801522958116340862754508016462302433032726224802665796645123558906935322196806562882013857304749909156439694974134877937741033145478507115715474747651582951846387047304623073234435010799618095493065562185898219567523499567111161450043177560678309396810899621203193681634224385397854665505356320550845255915631854914336104253562119809046496095646292381694849408200984807555008568759999511287245586175421773073016856418143280151282034592329651201977324670271356943496336568627264033223714465478270884767754320434585364469527168776126149161231942829649274347498842570070560277603827856536919545313159020967965285296255421518230228130840663858786109688460833568120824330930310020480899887773397850571208745487191761695551361805033942702133039185646663854322337347834728434080860259099314856217622483397476545576246102154628184931218763370833499498366269143827277664777323192097110064820513711780736959384403923346360106431057080078918063649206810655838202243745783601446493566330410385634041871068771292004221251717521791807748352465750091109437818114740296508584445544781060095538706772810098959859144853617500872785563123860484858882079785651183155404737870372799161528556733811334145638006825647588025057737877020900486913422709450856125303263358415103596691194606913107299261978670217717632764629976411508916323008360055261420255570095233254937761547222925266787926719217397414949471739044460661106723648125726672834150885891838556520609187419059689021648809071674192870167735252990095066583215517942501960900632406527841648316620107573945545686249832187913686290502463191104888379923779540171610223553089296535668929989019737434857657358767581157739244495152801455478639641162828932564852528670220243914446142700442071574308808045534385460203906316662090412710882471777295365901990071772523397689055148803162319660963056710449828224038802739311959672672270031897892859157675620597156752695021522155366459966705126649945634811946160846966065821562961267791099020305583450761701551072120637031187445646917349821924930337825393052093236873581723046708092824188701771601151501320973042326129736336022689264971161311015339758852935940726778300843975281191883655858662317351919477523174644415598052394000226547328891412305721595000921659021061376207673540687031518222710214878742201871133509374235386213954596323361494020363201970929013871856854186392763375882370185016159767304306849850777239638179256161756916431324108922165309337403243852603948128276433213029430280329133871954005177486719324271079428934222031035861009359788205578306295836103437855525472870972598470135061965523070199828770371440346828013766078592735774912349542272373827271404370035950139883357392845790751422049059712915482296070274160657993948551238628201063562088899783888265890563118697965037559407724128175732380623294739502815064309961905334842460280137384086040742676143847001488403566432886849908188106399539399373553718818111570536745589525429338944292026538683717475905410775490648714577970870244658931424705280922686160775289902716890478964298130889914119987150630894479948770118416037875682259814515056671839710568773789453000761294488189627050418554071484926201969674008079593804062075516870203843187489124353808958510433887413755726085617806975691657048500768378749440713492371671488943061527629164267567452063903267803882972686315110599910788699573493468054997077847772587427844776411477003004676687497789093062854007777727529156522120747628396394342340136774732986388503719446553308631915493153343634451799119074801790985554751580429290267179594447552438049134196956196933924729992879572556744306837475644338358589932161994501580952901586896274159635051910567439551578443866775367043077891014238138440967224248095290670993598553589783132029307149105612221376036871155110942146510762476511947133544008457940567859498851058764359611674460384955448917674774121467712426109443131780218014943780496041385216523126399549269012300479413913904187720383470309133213396602948282762998411918010628351633603394206682482234057382641421513912999341982207413239017310456442586243449930292315486235546198527588928487873620340951018339814312905811967387697193524746407728577004668084867031206106023055725332188573724267437903504148871317086191323670948517861278868738277583556065875515214329933835975467664545569113074305634699384593624571097176776823268216611558544550350688692391817931751473868430166802569420479533239122009701854783639126715620526666055935738990410715940832857047728386767304007649417838078219163935339617715752816779318084178917145767113324180783312646193392452518271543531643289368590370762978450937833207740335044788757710329788824563254185491281625678432714388618056699595504353494830775713720669808910737893429752369740108724509030290784563020841679437158568861997057087477650064978645946550458854177408383892997968453576469074033125157093076268535884711602887775509298637087427994918674777180752780209098139505216261269627428204987684126904029081933856404304400285308502832166947180503582719341692852006885747627133076889055045801401483934844788184612399825738447684256767489923240935701876719239588518150663555306695830726349953616613071931632877644553517656458259314687405250075573748895522369901109697566223599989141104342494312106697461081767395864505160214407385363313994872466119029772623520750872431426316308784848885390834402860666376827883289919332442362960409654008096304617864258500390296945759329224897242219461722500125627865836814258522897295146197937934901562944566638576635523300988808954683524557519763269397160588026858981717136526595823730080378240918367477060642228395995862306609410442845148780242329135157957221500266941459330436251476598075259590547781009441369409280618740329504971986343585621741757102626843753044681774531467188908646327008227036845713940741074779424576299018084728604031130317129985642526766219945221504843407406210569865992585025916231728450457487185945228887469031621242175459339133952850151854513302806610337995100072484773424877810946892726581471206990443594244542676703816747159410365420929763999891649311005174094173449428196601507966125143037770242975067353509652073056157268048389817466839651763233316012035305923312252465117652386839897678254845113487223519937791948872584649338801055156883328102867631984290767318685930429969718223701219455464693896364732409746419693269555918557652254334204276407505607638041070519263077369747376391664679305637981359786358499602754052152510803709359421248249546571288946588627630229415475881080260294856553467179880633034020999632934010535243418560878684474869999270684948093604962939787186258385324939869910024785733475513907757883380660159556681073437280392196386192695184538708390380045570687371811422324777890485896635131165078459973442016814937927917649109121394850797449440003364859697388381588867435187268626872310613606941316145170411283903344751078777943463394308130995064999486358855632366957170446273827307155157056510626592050328359119958809250273907776755730287413866891062386401476582102457889905485054447502820744621686653556108111977353986457625750455632346742323228296753312054067816596184604786535602429976172661187889262113709018239164465081926337972708935203969009245821012385694403604821936284720325445241933754571618052406584517999961394879549637893254540314755527294312668329048845623890999866226847494950461929997141482950173658234560049459798550576562118719157780141694046124833331198501925193096313879487018722866672765856920171620110075310294800756356612240657044574204447760257304428397377288220217176923952680333638161570082346878687334123554088074222462049497055153928250618188536721339648043685847877944372489651845871997840540965040616122800218316198185253263576551476127754747617155597442840063837542750438328380579448786920717826883711092641344919389510673544681021341833488147805529646444285429532159303980700387172308980021669084595221645882657833902376227585885092563595301013687349172008431141328762098245110000484120325941953148763822066778841241089287514124475718611921042868858242211515223276445241399563059008060004484063580757736713392356742258172263607377426883150127951210906765882818871935829083445106022859268032129474139527236665156941207631256767960682988199810128279595722962670102913033497099695160498328758826886352720943640687829943845157523909705229571347863654415773935018878670962354886228011681240343068461068506256621691771532616221875068953098066826970979761743841961859421055371618491705027055125465195229120046600566352304549530278397985191891223592476180949746144654382029941750189369242528092907757089299616215040744724044486142459278115683534331988150057206657049540857921966256665635832327756932760076064002776030699793712078042961911985210755355251602696217993690446215080038020887819718253253256905854862983628849789836592705643304303494480801432187820868612413086794353966516509989944068084220725810939822518651562711771698245870671292568534415703991925278477470991802204470555867484859055088771077451660292925197662716829952977799129243297057033044386449862899453553141891803581821715455909683890306376269055877172028572327995733992111431929563613936647065929590732776576442957833303768710178749416357932649410642844346832902399838643062104046865919458047450418936700714672976534067244923963235910826231957645063651302602611217665267264792377520333781356832139939326069872802250605971345842963270295378019427510872133344831786489947125825749857427316935886703429152421339511834907243450388144752811814819963666965168195982487202179276646054712301144085579782398140408541007948220358768003479237472837565047827806880909068514878618592930013118674198867072304844730391995557065605551094689134790875502634050962280109255230779398527533365148700569066188764009006858714928270733075053088296397327222088871748912350918306804010634934380861991694850018679544553148744309042534507630491745059301560075378460055261774041149584805768479543742564937795973057611801917647388907495989728678395433403189787377340009819442503621396593869596385140828843524382099717317993642103021633778612954186965611074936464632454362285745568134944087316793353964811201535351322196580297288303054195007349346950041958599519823715743813608366323538065155666585994783490654154964925573313635065047391559615045861021422053304602240275500479177094971273119666018444545317166906913431503231252733149814242979516838102575042763422461193341722455366976831678894012243417094206030394855137735385799110198832674042323731699035932568518014000216549211441611102777817178808933682061693350709471030251714116997991352849602967697214942704971070781246484763947529576967704435605469182505932518585400050356570961035764031180133479971344920137695935603804431459332363773551647138739310665637457975201216707152523820237171287724566173406246010592100123371149370781971243553123185975040883763441707278603039166085602123055989698390571839057502091045902621215980563853166443756782966326338381871787135284255860700305987679579955065257676509333244591231330319861360801569350092580183688309891680376498301991829907657548864255855145588770185789866275373371125912394084946413607506876843250120824694853145862882271050612184775325073122713717708895193426183132085260068967522105554451149796708632037204393063858554311108904412300872422688707808375356950380809934851411706991531476769542498353062169223336755913394022325563320618930853580989157970341648847980988157510424074475074488707336110080268737862240844658733050953747440611352264059359226799596795072182585682812095987434260651488901707718953966258291945664851193578393870262387189796737831332355029818554556052310719244219157011389859728982229938057100405417759797965474037168492945445306735084391857832635761288313328236607585220471700811307262963860941827133029603750189055928535563232131039833938213590929934705865171876398829075058056636739796192786722344315568504691702885115808422903331486033749727253298936680054976806373327859865318722389207928648916793300368523173818624642949720150643932078558871484504282711914021570797388777134527116725178036372750200700409227170860125858970536007661864458074779071307314219798102482083809737533824867727296863478288211558769432201444628083239290282348088009578454082441405917001495283457648170888491103313342916135784243777042206881623347793082952332277935892056204328904718600307910819794446578171306918548048693454391046795750493304443427869883806002904056961007961708807103267578868717983618701388344260145669809307697656820955359291770588831155445293432948028107216416896524783969635702939599945532170539685291570081723395076584307893700115481445504377229042121602623029342981451740339678549893985470299693206984386190546270253722349658763579362090309609370407099096905490498281011965894588685524068250849038952627183108207323216469578625932725160244982479853912670832301266572546158782133339578719058471701707904646681989598835135304003947320121979340402183643128459986199633016851462045999019625071230184992306405064114799374609153247492522371036434637598811032050317719796891334630618184763351168152355611154527660225267497560304607201556179450916134483123896403134701047310408980102459956171824283621051000676521131225696052582574312383506250123056936513287643184107652302236427051933428890418736196841658991973438083350998339540887782393972382852120328550682740649752653597821757587482078965278486748391316197543806127303480380827319279329175815707509733678483381211322036032306434990060235456527454906701538629215987520165863276664101819347279982065568043974510881462440511629076693530564699863329321812439266867579877035385144310357371242193327060396461190735365662781084367405875238804459294358457277873075239566051856768804706134084196064401825275697428498900587899319233203548178871504882818448536474334718647378691808730074595824616611601672146002492541849052991647361256333949907149091027199898231127890267908825473202219331223820647289409738451942938103232457847316502731692043310654278575322598617669963549524307870232239542919329784648105985908741643033605649393729903689218012597799418611431289343087424840911406917678099144185607409385724482157484159819906216426820021515139533944422705732657513347427945035863302517505588295666421404575239103241508331629290046605599394917251962074403405188277093817044826185705451734207990372249326894104456257351947851289968223309656728157896814240847784290954239534785464675320481995990131386079575104810006785753282780604096240911823009831813576131815819506869481612878379611955984164516379008150300318503177797365611720091506171894227973633209053644084442370266535956405526342876522227937436660510311610301147778968341491573571325554163845543272656437724432217643555681057081100271830452496944979148959473072224187977134530993354664540357303820922518855205676392525979596437890077225113631260513016429362380079149209932665266448354580453648670193332606446840524823684765170553935125472868990458278969866301836642528390968976591394905693018925038149716703102206007862294849164255726021566447990052002136989586985910950741327655064357531556929132275569567149735055650862250763080089331944797557016312472009429117492567120693854593374766423524931872430177165345326079322774762901996950473965277941286906228466161440451790119907942205820260878708255933215305950081108679265140896019424982867061619946167743113322918194944881933855196676471029071376005296347899497363008547176057558087081074354536666691243013670583554185858397807698852221682391888588927802806279304111389857917560841331980301669886399387819177616220560887552473246440393558378348947951128260744270547880913117135836276239044478775915543936184115550633949972673277979422845722305928421447032826931233275292549112497224626216481472747311700461396496013573017302722615592700631635158971941961726019207578481563063852451821743530644466434100064027832867250864727980904334921168374899020661268099480175164946795228182759324654965560786178045842672144560540160494155937600460516167808254270697809983620316079840945632327300082224394397702144155436172874556496652772822547149274187928410381469451707196137518906243340832189830656309244094236233337619965011371685052197883491147066110431281073802484061935069335654248248901035407706183360637693172872452379685439087420588313229308782363773737536577478613440616750699421610077665717020549714342887373717193985099453909102595937291846966362191223118264825893430767956139412062052285904133838396704943187358356310646043210752863660409678399802834618648107230833538004516457362755188717151102388649363138220232290314957980560164855720913580164601499346612292118736084152512820113370152902075273000178180312422898102733827939230854934159191639984564900040696322924900615210249333167541777915998045970060916362624155578431218954375210259166135809671074877089313875778052433747143389843457743051475052393506941963273670529879313939623446526629416816138811317116869996067250862813674257066169220967093838417634470616265848317015575510893463469496978774055516231160952662781170391823801353301723196007970243794290409171273104225282027577830490962988676654678849097572077221813341307053629608480495759453583086557284483421224713342949805615103698773944662356066279663506179351469230477499494676538321959862747709984074253134368107003065820720771151635055707262331414177256390635023099147936639720115127508958490078131334508188809683371131180826818354919546085409865420146019376299387136799331392178947062287210500223938561016981874288125423507563569996393112192836538174520758346145775096447356145024556011213794918667540376446023798116209346216584003178099123056394826216044996555961384356221993862119844667341831582683032977298293664297387598535493042673965958570804021609323578359930287436445479847379051094477836376945967210761022629807317050831347224389001129454016197210965503807763376816654289134681743976609410048389839891939082212832650555426072409416645848456642567506109216197866391679841560327654512592235481840021517762486911645776430739029892840867794450496943957812378222945984607340980821962452216840064049662256203408150945483979324913879637083727765861847872204009945891291966862655716857443348582404909543985869168143087116336815972599698401543801238478298883221111683999584945190454038929696609842918520690677374445869942103971513561374667748138044979030097418594164616518378356860153961707530117539071472909110173263225540458617233274698060417258058177880836905436618385432164232991653801791816305375043769100889261419331453220629013197150963041289367072871023390217756260075106207987308020488834957761476520912368950105217577078370022692099675740147339227637610802703715977895659149298709044359108030107936578093347111164353965317906345067196861599695040987831259451168837128451925153764250065095765562678098496161176030200129117183783699607067167963002550014293953320376061900238082287111187004814122044844157858467342846409267242856788704714653055194082422974211943241111189821257329924159656727328054352724118411226217924236683852115278241418986172470645199388463039479673686062872334136810610865435801147483971007093661451304678578170958055788262268244957829052873744102832268298957142831145007903849594335313809129194032138384088439573497139023111530568197297740509900353577484535883388249462022830964685991202277275238267508151735080643312576206771872161754790413908247366129108177572410285906658088162363116377499251828197005900814171177546603838340090071562722976879092125431848039394088390128625984527874369257965887694295431797928689040384721693835786175407918823831233832187742679599291654212710661051805647614611375130466600291127422542528652999106661988128357569311283318156292954976458392627881064367339835889675104609152933791123000620766717113995532172531587942577947421207604783468685731941254448013724740336435877071490907778762306337560776046208480612621655200906309420886961906377500269486734608428100206211166143749535821958611398938839472036828838093620695928413366262839495886410018683628814155054071987784899760061103193023624727855219431902970892962619048963330152893755728649175858381934500016119872675542389609600086111792399746334134951674735152038994911784973778388210920183014010989263868868585551647999642442829425839198964465500158105250698508795083576038716157347946773978169424575972481460538754090594994168130388565710648295413380764678374311105339679706524753016415698488633544564448142705975114164364760964424790891055177133770787081798285260536425491647529181086183251890709966978843079432482595751142938245546988738111104878889081501323887116161932231761897504532695318876411291267449034144300828178810689483431447174652455503344061953283443811313801673140353484103907459257596160352439653871985668016459625154357141695765467545364909945860971532830477090645342152751331628087618182206720324592479841275097148454932478527774312127333907209135614947174126631879807559777664379957241188508179245768126917735542754487271863163529889958681751071144089338236461071755418841438297926610357349959686056478178264735837480893865252470000222996084071232099276698704183587039723327079993805039062589653287306896195799113885760306545477597406506348295619967678160634015076882033451207095568048068649409144942052556329739339688066564529594544332538078586688393335482648448061540149545366749527908162289785892711403805852690384900972829997667395252192116692938420860755811813043490753330154765269828739273803026848370101930753277771931548744201369569233437074415263915455232288421669619900834632257566682049788544831697541403485919898557119315131431665915536950665396930958241729752637753970179746977570690873714264861570349520802963916252972403930561195810547838370413155634681153626884250354717458452256359530441299636078754399536842546749843188944527840721908580413337626846269071568487829630029002298468165965500521943315761561194900580218435355937452677502250456243289607364754283316137159269532786797874698471802045932057590777324028494158412658035572443368218798655456503982123967609887137028856720602664029817481204418145845172622829152091165923786732211644429808615507090463616032007236283355640829388285110928876791701406345405794216264669187105352737175234431750178272337689340172711885314262500688962732735555468622568358468048047530512556976317643083937750811831915690989601292143056219800845089682879651104676452955407838809838001435693640286178093763867630803230694792389797386396167750290589924222681773902913352972640557096155421530380361092482806946079166952684074194329941290735495995315095401211892264525377807496054364361676201535419255611885529413061952215715448672984603847511658642737555521415288429482164760706585313137319694627268433224572974636068041941969316849047109943843977756538577765646640183915037555354336813457517090652856689427816199206258526944010537199557081210959983022267970294621630400231464752094252319900793920411491805209663836840943180807890465937237301536080278681396315964043568198019988812251837265082461053263428396481348416566410568456185442343968854046579673061043636941651474851652110973794362296544619865383192499272672987399742392877929866344223756943387785555474580063570222630399566802732347622681000882546553325601457277474746376480721140589679582021376431052752894575175253573274360856437886276479971218288487813991016319715616858194039681913614914632406613311995704528021794611722560431456824574017776222360937332733383524201935343517930727968838120767593949086824246930348873560042095295348391032259901542282496471496831684774859343824142654616327136078003979754595982193896182404652145451386047145637057756208461741599660183645988103881697945859607664662541813823010543727920702585325969030039177168872821453856297699947605961542147889206274382469543915601168163465308165015803187080966993616446943000565283687308956549798688891348914406412722919774521412013559435325367123710185163135801561107125272046341770551459564720093674851327675592658232740259637292783084897854381601443332367022148441542055186996404943174116120502838218124119212339939032396181943485770303637469277005723951462891322947551212957510506406014162809563103262996609450327458712810837580719922788628859177622836883143590479832869473880534876989416188969940345006058715918767032422210512413324981580994051264079009752356459943991682115247744188534419414744888863314202499032722497319397728482392913348340372190603991432299509523396297905764691530870704946898100671655166929413136829147572225299705041413030781545027688120584726646219235245461236432004487313064666863371346849220141531343036515339175428928966462480455473458240337623629814653520014130087690743772495837259337005469122330323073928691975873853399609833996270909883817352077615559759834285839262150415712323962068734493173555293056386697600712542263223762375102993807878188256806723675579436931826862252629331971460896911216349245075326117926973346810101866392573880280398171079538787290953457561421109146399347197048175226439722432964432787925487557529742158772689651111212119365265881109236551608272532679223889475647615826190434001955754339580519535768698828460960851130086137678745782820188219375226893591737964891799750571459531932707193189454521483262322051807367021518948069831440416540282432916360819068652021988549440690651643626192362958583200366848368527204587516727126283696438776850703087491782894784934702158274116568486902521117786081021933354494263865376943337779551492649864264345020593008463132542046032651575307055473473308929675789088641308549950194377703085152430533094174886981577824430489052274857436849631467389356444619893927669686181461170042128649740535595349930866693365565848977976803209220838118617498512403378036852049802319291322547754679200979097139860319770342556303522132651096869740477729251345253363282687799425490960372226262120641445196860138157754931734551379656151376247391623545217142877840157731395331094600211046476432030492559838763402085946672981543291594350849416502603473063961875486189608690832811668144242439654048564810754131464230240517162961006135136875467578001623288347189302280179701043617064071461346887259383511886810838231153116601659537820168521098292109453011310357340218656790097415923761038534951445229467079586384832404322743054599069249386208428993157069480599262074548776407665582882994700227372794588969919647898886045195552218011824748075594939510002745419732229229399713431716171018414405498807572880834579691040769986457583618287575285095167785298859690950407224083448553646710355264136426145460597346035857569794948919001539955859492362804964452426606914244725463030858745024008069809473611144600596453070291027749762158282525614845996910594986269862054168657461856161814809975850956067985906833502010887811818975569758316954833999730992141298791261359124512382318259655637197556467873672532736730789194029608579893683283312670994206676268729418720981938215155882333801550389030398676775419484563409420178718649140022211284842514914543499592870357279966222071251194344783717523909930647383664172067186346821285292426560692091043256561802747688254367093522109776743750537361303243836878271385678663581347067140874382973016123334821736636130614622122329714715570144009725995016522023252588876946542262362657093299622021706642969237526838495977200695957564161352458468904372498088084072246598705579858807935569332770229976256622622272781233676559524785990035778515718395204222870934826335488300868087573464326384654254214625935451768662358399759699023755951397037713444583549365483172923350319128350508715186765941035084302298744487790894259914024418461225362242140256691663420260436618798805345964387594586720027784130003661683722452785783799791355282989887706103438595427145750081508685777814839072611093180747112953734101162958170377658162800941507944511723806412365089652572380345993637063619037454940101434909591192801299301115786397427196579345505084835385332957408846543819566160072525331817707323648843645011050954876039594206927510600270239753103044386750388712048157601090345461934677400261829432309190778032297753011636326227839238184276610505605057572870128636336932736268146069616321249295970612023337554835628016325129421680498167851546548867692283335629540946962040804917950361772348448755816035918726507139820742276587975783379114937649270612790105949363328876188836504339494019191914823840657135779362690894026265491709788044190480448600114854092553101770492992235141695461655802917311048052210606167387426118718873367524113442330560990021398697829900913808987323533095972617706447543531763112052019194610163407177699570073415223127686701186235877092312690504373158948313537739614248388002248855599387411906029326936110392954383470042538450239773955308364713215203162396819823548975016685700069393618118440499413562955105311185212058970029366366093477313179272470026703124361798672213006137348709534203367401976622719179033094731542967549995276546896325949081663539813785813600279161993220551790296717565887993421629189919264095303854838731530976824064134767238774672397695960744204029762127887810083101888842190085968955007479879809262876604213532044189825102213415553886146820119081953401114607124681827833721302306377237772602003205677088840764548171322373058651624110876855231963832923324101768715361119993863004738047036190642711277727812554060902523989526186266179362990922164513462898376370381576518368373510762905799359746378403961400651589760296483990314986525481781340791961767825931923760168908672474601301894447620625357105959660305523809450440417468879036291167818589775806747479163174720359628032909940066017556031188245983143150457550466203927615826587365263696316910116553659407741512673772620280222462336155132623700621503648770664436100801997308939210471884047956788172417476299847460702988759723535105642743454205712235190625147605979014694996756409620222090311832033475232590218299690763066084086886072414427022985445931658488025685648520440964181431977535973885434984330963534154406312316286139166319031734311107934686231463493608167916186760465656774553286834323647282633813889688795707861087206015140156121535609848868637849906854071409000057274874552902911886071631985741123564242416818090672658150715791633727382007994920423163920551491029701255590824766646540103860297467058289984841530830103569183883790596624764629979072030678731842389312212172323196028487177336876585704491717129842604931536888106086794932662118067773464104477119096786465201514941706161003254215390223292207966867769585210728828337398910552889955622857296870401228234267486319706537544726397552618658311929480700742750739482259553520392586312068435009527525516390827782382413766943136095902554219870458697332513286943111004301349033560928479597497363177086912002738250021793474426094205671893857250760774516567791179416299784206753468512799930757547533835897273417629520669667415599942213530239876858195025192756435502044577092226423655591056138011473293130390891057270331407951194996808949482102068551603781003114243992154444325339402014303207171346117489618842535573936067520554612469587866279945847868078451089436317208477256476646535271045827616585757109992274470722404227550326813123806348691992728080486993812642658336844165276568537328961762547222986630948612114779524577434080578346703250488004167780185600426772263823977852557221392858450690334986241063120905347206842056056183319097139575838835629234836549384521802602993815167272312786984935969886878290135957078103971960350194906820469727760527262055995732851968172341510911381661382621821714753761157875560609333541658367220875328478642127091475676217530363630613173817622725268167835827451681167326937190881155378788606444928967899705177179282221672440637360992672265895341041618718562573499808579534081427184792238288434805260166061005160251352544626003916925138460461681312570046426588270976688207170004023909456661583046274176860152409175597914183966878656091590280011243728192391920796516934912726662283966070032208066055403908347156721018882120675772565209129834577384268473602226427951596093534445746009914632022120856108085818702222867080904771036698482538806007180895417367888533381779285612682755976370750511380810315767059438634813863215063638257976691456041460530990124938462220116648930937791315916831532247379231456467799506832564986125471042419018786431880546642432634607836869931181574842449477278442180747125486425518887592977248762871184770074419320439368807721560123411329847052555415086181977954900452419174349806390238552195183702498525127271180753575903241933823059371450897801480979168888509506235334396364248074660466734901604590313371432450975009024625597457594560250858610095332702649715442907319005780584255707746337404822252789976051975903475376982272561316335724367061044190860284617564101480783171464461555172975304482253253115669346945222621281777136391648831527441014261951563753022804553048342524186160748033843879289913562236502614356328782899317148326866455124914811204968214294288745456303913768245919714832803149814368585408580915211689380122379222765755729123671263305062645347360615532238915491379583569604839550381290745455376917578142234289808264035648823400080543738291661016803212581666161859480864440222053632195086798623937139108876673726388344167568970460699296004373270276933929471946128354548235798458629474437425719985213629786617559874979841742219712562882276693810350309920321467571020873511338062169123897406963126742801132677095955357039072646912132631969986820679260674097742571127650289826496857222905520647549204915156485726695843816057235127008341318435631844827041614035952038346725379051463066480513838009095168270127245837492122709129058087048626165890721415998319845953041213478479405324679130239990290297538137816457409045533299923881237213758524784545248615431926204086338267674084332980201602332085240291556888001739429000793278707356589015071320177919973517261697741342425125217189347544071335721869475271764126957627729600150975705420233019708809701774509167385648180621235490061985570908040777872720853448518887068435170466962960156446860134918055670745214625521526387570619685410786211389127392563464944680262481602237073930986273068602920206953398631267634867352052585977478959811230134336645529261801049577996268064146990770626494069761214468175933732940107348717010097975723431079479651806731143986007193908346120971280610831051467978286030579832104759716713916724924825930125152298050859774479992152257206645861889301671654209915112903820536280244364725951422887363545870084577958707550919752009576495355040789516227251790175520610393051877321655228856003045642966117760522826373777181396279149125862751319474431571016680469308949420260725335537011198065118959337378406990399032889618071872659814204394396485141249753088764515799033924256288017744409999888866059833447198428583753925255777408273196197568536928198217259072308871699676575340793889405814652782891991082374130340433789472617611946772220264453110744222902352970269492072572897973811883658840836994191440064953350794215216013929721311927901696499137901067210802159333033509794909707541551366536616387216573829511866911119809611854646403877859632261486664546285491188752636911102849555429134059003752311775369398711372722001544087929803175491437980104573819630048221120320929180809880367784919921459882222169988719831527052593562768384659636752169008128372282027455175916291665391588764669901838616913139640692064352915480852526510234293903970957896026996530116146819524866261950402879416039673888800405005465423433745286431642466621937866544060550553034288264878955846216216876896109583077768839556587866539190110465322717822087450415433750713496088731059731557037983539564125426082415074042856020668789091542809859558886293807573153121602547810977346555948365956728610174501085923861351783067578761891704681963667974734920921232618144129536843371536976859781452733087591966269442233620342375485118251988096949941166620772532650590867838375405033563717453640616514356518864487046292213193321806871309694720660739395169332970935958703293071686381466834360302836424602426206271096397669148764967699104512849321529240209350447669269251226718962362046188697131686925454010723280510152409277380067963127271869279055913248934848769754289225863740029496151589908837894654552154412643812571648077280178697923387452360665212983129986539073107002465670875284352494589715988294156743538720748652391694176970813100902569928077309018833090093508192733350668651482878182327400900219475766302101607177843263665640885616079159010348346464660773353096163719796469120115758945045529333938902919328271974711069268241720549295264851430729566996275586570891773890765692664747249411365864007410563883362396169234915492349604507300972804471223951070313785492420529373294742737398389843633397244183814638724939573051558526650210042438930611956540195585421262073753186267484618627396166515639100690608955434184550973686167786663394293598084236745298197093163905827178883091763180221143912992583644407529762594488507391975344180815114346558429963967939657356496253725736840943170492303250429860962599317124229662746732188979151313222804629390155384049037201252438804646248744203680668205298656552263955399558342586360441624047534741978229061004037480871359846760121269534945762604257448294490650079180497671439114148058836073517604824878872224051322078098665302989865944334678278797238478635925096504052993444227122192959139643289030601786795105308139638983934274507053890630120622880632012493194211277374039969550424726694980903529756472622891040769890055686911868999389358809706087915833662713071548225083815982972597587630174495523216150637090450960501232061297361843506423181548794874918639728417951499189761186429254874567288315841902666779038701226934420440061635092904521134661730909577027206023924924461656101010273635655795041589283509874805910484052892257723959830044169497233240013237133693808392833158083838993551713454311246498032685590535621111781353991635567388304515935865711371410234685164766987563956913901135154637674638183651392437373662231866660515673959190697149333028973271780370559452590467338781188167326947648786353307800562859811837403510025838897728078629007661465177063248462041370210053886680070477605501288715557917970753091135135029171805076416943653563919689405194989800066405617413910592534041720610296534280471154360823884568509353494861732369732229845605809668274568570321964335700738975929284008711988320599616857605521139672916857998489064413185739656332326923179790416200407021394169508069286415563854675594768628558233484492505842241122666852431739141149513477766765303025547309370962449180141689687430172009073166676303361800467898693575155999632657153602509844823063681909991442200156709347904125228729456104624579967514634510585964918594935914901356333276806743328648264750568735665804482882651678827039847090668114556307341653463457575787510108787206828504753407313886334416306393522375619071570702404992851650818342910046463311207770680312798916976891322797088000588094577968276989578034572075502545228205559301706732424367482142223705016629170979228497706297764458692401664579936216813346991367915184152750295760054097837582951337084918436334544583377029214913198990267368042782673319163798646739950454424972782804800899409609440296048469752772425457346049566473458034008733990645527907539594886206749914055657062579340854126693802237216956110970807803025126092258444825339717089008008313382538902186625356622811561728119281197642564151584680946976993099502991658847512858015827208215237993724179059853828585960925412541111914842017218548541566102588178592960480430926117085498195932745480631224358496417738628548071043322845529482628787715932569786510269942822105892572070054367279815903214815623598253596083180781793639443322775267981628687472521096489509871098809224096003611142868217845824917365782620621270013388292939976937554147730657501009066818388749200271631114456668874642528114778633991590163735768357436047122819522378136960776595758844610611396589043155798002808558925982462300997799187448083859321991972849833126125802335141494291741627097970786877709709783441825085020194451302068831713779879244790205661860931210485511572795450665769366284650182083831358158693662567815702760423945753819344061659725142390723808225471461312692228768814993042216161281576533394131571867694504220401515365174967299563202621509217852522072944168118473062998263991769448161390323958888698240016451645781501879970206707762256487659551377127508937768564980030199234424184133644748683667916447953201510729824268365365669106333531283831794978034736696397432358701408388526481811220421148114129299000825634651765618654502069017829000598024184230804377913708949241897170453701622413661348908288132150339717484125499467746095099372799526660202076161681588707740732903437396559485399303263572801769805058391111727341417564971222979937881410041141691901214033244535445742646678037767794789371971766983635439308729459184538897175230329333065239445123212827046585129047501317415505487967849633762713405005024287606553154401401512862513343961336525858324867963626018827974492407694809442299727326132791086740367900696791299509395583230046202600706795052680801407738838928271945701213234002846356949533530092206045416770721728444727017335693077740929241447379388010023070770416700220957105080707584158110772230278135852961547671241511302090737311179613479185288218063728633942548874602617563375339361686901465429196145126378176302366645391320779852934410298855685984831187633967308773583072246421988491330925822337163810489310892516949066459162901921152659701290717216892104928240236752502954025266299105204347440786611944156942093766963982790361091320585836926445818254270193644843661335176132173409389723037844648938975699931513363517105356317940418807052838410476070785493580393633684988553446469686209781211193779092505332635072759341379448014011936137851843918774801112101393856103092809217864685787051291610467829399510785575336870548028076036696184769851914419022016447530609954944235999927577729968786956293960595328179654843039410414750163651969586479399618420510836633530327537462709398969934753778458438070463808421588878558728685639755335096618310737488618251296845787634452235848003717053391988171449916586839259149876751408120466306973784405016881983513809546265297084330551304128129572218007428643909286994332639205957640601703453787402402098663972905266095370514665896684894151468295456300814239714503779888494798929409699259277584244281263437269689982517908839325389559196022591819584756110286262769024202690989760289806978769323451072316567610538627645214410482103196638339031533796403529483803782590960245531442716084261642710122563901572008063178156984467527805570134839209153491738576145378232052596413021045046714322040959502472499397792947606567657272621460138990812485909286994305312605633044948043338788426132578273047094686176125554512737930493261194278840921756069085384794775836116807345943548744089720984061050009296981874544966068195251243780625794876622193497141755608891364170709706376979288883163128044961376028380935043634274005402164158525332006009747274391258813908049643241495037683046038362953179460801865866291876062431948658200842864959273561959781061698629555547825327288677686435934018539950044608573974936251761965184921916701271279612057939615963155392302687067333286824693192707645968985057512531105550391345647887322010405084585775730142512431632746486590384599710562575076787363542761921610878303765190441345790953337908673678537776715808594182358426994014879186318152772549405521616217852565367999710341386680586371782634141578576837400652410791191624606096571079769944995488977123719787699076533859359627675835415150873473589207755923962488105020379056463302741006543044298783886667068643556752880602421074694616176529383291498694498476078953549925027110190240303929777468057933763282148565529956804081012892027431132263450500199908589229371252143965296224695220043082178315085055971777929329018246809375347692388911250896320699117178797892541305589633750678702607898169849879801565527945160544199613343540173517217873661586302466457268239553773239162997929261243065589583933051833179196772963125609817766396708264789598266744794543814792228940162440091350062222344237929916279595367872562132114755154682397666414382007082034555006059254481854045453099089549815491418852030878258356598539191680777834704476293832871959138611388952771511227988587481304569066210070382160935743927391466433726011676740502150436611282996654121884419389454951007245962671166245440917697700701399480318407426814994206761326284379928544444245234790348261303372874556323567185534077956229927863755299097052772030562462660638081362413199058232396681486664605821292379969947751364559174534493617551802070392837188963098416741801234372697024626774810434147724919238362718901915561731657586193707250097810249604003559176800528769225920667830113574055319295466991337462139560788428395058322441488839868439037814179104610447836106002578175863673228626462151962340290021216646627600740054531809276737309082691460658684867007671094457509094286067661517504013399400908962457938961615677646323815427613623792749769641689683513604286157259848756329679282250569667109144239856726837941689258659467925243123644473198108010562466652569102847427912756284796333338592542814069250542116417356536072454189849233593338685830092371780597857195063869159770821687303126240108335161021298920468855046886832518310102046811250104761345312909978183914520027778491219082076301669471615036119655220023611621507314387931725329798974355002198460201955240512234069913596524705966117564848031436492661618086667295840917851947747845768404010186393028940784461444254920134087492811660003501394993778165835793492825344370398860208228712251993104023919526712967427002535120908105665614409644547463517267239569966264422635470667708866589718341756353234091950951349863019821409919936170535317678981384231665588941417740308187281800062286779486343666947102752640059432029338888754425892300514609250113969720131698426196085401097307054963747015627018984901730966794161344850419709881013432483871746737612222739395485508665328711419375146735999531142672525160839580717712665394992923206230747609270681429704944011688994150376192707823222278230295867937135079747918677216041842512306807065697557098846965057383502228214927853721219346907051685841490193098718434100294663706648138573006722952733970232570851988343601847549851606408352567450893418487890120855247764253742404679320133506826592879518388804127738096828428843338064509380036149711015341104334158147473877419550357361582628285492443868507000832364476942265932558280173023995744296431546215147008461037545404619035548666578991267817690790439670172735641084323112434402682736158251156985684066290126795961728909373567503806227484324980435276672018143387408309930719850186778606868503879097870779927577069959345356514749166295811523796841957714349895879045791762813407520721852282139547161811340814622126108594664691233055138047831805795672221935751745741302216795585742222253064043438153657199200068665679942044509147087417775581066264401650588395618967844368929076261791803806817057433458951211123985465800499627674780087476117744273270650838154670139169628982159052465235563060468174850880480181056018533488462685569010887938367381407804341328835046140969679572318952647625956228432424967844801170555978694230876258648399072796150560013690348446166066194320467017791918239553489015397272985123251930773221204883886120291914142812908315241802481361852520276253274680846205331914608837044069219457364558730648575367657921397333421654553337699137380241444757284072318485683618179852618883083982243270834367111725733957257381417419082378339968313802749900647231949021588180048049070467711170900992586434226066926481643789751950653555037975242268018951186029763586794642422298456599214406772952414218672711241563434497838409815902648067112708279832431409975784070023160129783653663508669965831301283407245496883939437914195533660934541361363222119612702060104403676773880860359233106339265037200820432955656558006026488240374893896750035970368306054805251123843924698498268242941723789697319679731018100202495119620806453041976123402956520685320172710463298894342756268579660427491709380272899540885319831467799546530445216118374191128081711311364017981301366895069090057884443557430545220100156040199837422563377070948807015571385696103731945554764315205979863321347800188108494055058171043988705005986627807753935838194399668080635736068751679191114268148185356514186407147939700852320872553759008232206737577768614509030533080206469457940721341684490475390936306332187250776258949813901419719389649602387699145259453021931394930480041383875400241200947016332693202008843145749046817005700672914013601892975916176961600988749853384943451339795478485705142931553493684111733571951151502426370983012228241969942825497316145829886962353135317723865863539732354682565171158571579744798330919719395561052571145414499823940109886288676390855722428390517813637823808683796305290110178194202963312104048502336043204203422848112518294124651882117276379841919024225336963715757362396100871235509438226254859498153302734758017452386652620051716427924084127828964809598745392073397550547674353144367634256876691733486524140238491770741835375230068258897899050839858880713605629040283317421825714921223760883290803347975921083370667010793441255055406705720426101613053291134503374203490195760400856028322766586372231054215410362178238869047473310552259642923446724642218968958787665915333573085335172806182776180711354346914323521360817079699599857749357445314927995899245291123497671615501081432012711053713255225433715313864983524047986451931482245750375201653952668412172603421054929814044504549078691920883338190962078541829185170818838254733848153439850876509553901423686925482671151402737218076234163988843881578856867645839396232649502154865728594331080831417421199814522093508438409794535963593343372514412082310176510179935530564773138330620863603126782617686156943061160729587169461524773613588846634332890613767650767942890370866241167693142607295627047308174202418123302134246943396002900234823129089031924638708936495266450848623494783096731701908009789082696951595317585488786204012615563143899581269644487487887932717072197656285447397717023776275512719954582385203253603942243134014119782996494345071326750471829790093502983071818668626710331557164333948955445199442870165219343476720876318578477464230091214471397217272461542243309493468758096615160122855390600547491229367880108271786506064551427548404152848823124422049751542773463898950821514890296074920137388829143307232003501175737101270075645391202788375626575514918531614184108715394335363780343716868667035405069466707140141271780068550740042209085980477834808263547190487142596426522362148211467827725850583415051771769817811572989440462736002206856769598290360545268128063011452717949724546777333364930237727141363568606974162170499695972449611948079430790873103592491041326138336859913505300613417567691825630532767013532719686358419348443774417385537141167347907409579434544764039962530526558261675683562362142448705856683821125133519551328863973852283711202611319687327953223046583304473728460415441101373486545913533359041178946588475355490456586278298217747830702161474723116199610091282015856183724597764097368147014199260700674269659451280682563900513811433533548987619525981598181980115322443317645541566839340186740354856948580763088333452343470134556829376968116279325791699420315691759151466277996621737081346087212737263665172075350461375283569731023459207801349789582749330785634160259899807435481343062717516204908980518924692847540722882536122579982458397887925282466603516511276310483491731386788805551032280296018847437947935436005372561452686767053651986757708568244487681869560992714055404993031513129651014308249628017720813348574461944941531989101752385625874488525604361737330097872900101598328839311574187798051581271288921518828977719467968044074302607316699841503932441790041480614286151245105497163857054508282877140802992851768814849777444283825504540944156161108213260722784901257465796651494679727354757053149734036689288256797736684483117989581303945333402506686874335285769943410251185046762046085923610856416284501763951588460268176950921348992424543415381490564432131844501636171175819561418658420056133494939284138855192578021382090944317379420924659507355847204067275106552528019779168193736590280551120265052791378497924862346409671724609606958379941770923141760835027453153834778332485241363365307946137808926124969038617206783408373551140722068036984708963790028320046555017490836299083927719261603099333097517211161160786759234226574849458011795604544673592409596327660367183805588719164224458575070959328980136339137744714587935864685655644154251715985002739417945946961875028001924897502111734629168928685438387327539605769318257907076162897032993768399275785069958288904898379100999139974818125613062107385541200994190092688393191418869983709882168350732694617974519921328340099035300439320640154496004786120352966184845138302077439976074804051357241955200630356754009877733863865716777322118968933963179427870196817408939458735333448931343567152355109264180601679388853686504275522752450184433137914264244672871803044881989779041753293610707653707825925686854221220270820180144279955310687940139753568852471126516503930689253238148222565600706152898312362573218085427530424634230273789235710609879596029179687479875767470554423923090575286832356833918957438567963261032286528407240596776043238654917946331691026422096067819337106454846093839755539555514852962207453177591822004248930231783103626803062348906902008132918672170295660836976111158543176526286505860160181778230407632043988268537994549608951547668997896854068068240949592507649120552686885027249375478712795964246335895255954495642492912930847531003467980304869242733652039096506078308896481939690960582902674712183952335913795393747114977747194960405309875313007980917538262135412814266598154263952755058092122540311259829598883118415314376324618140456113838455997618425480976897015853728181356111013179456888339739416903098265234074518723931199288562081873159485226426161624792597014291308576087392581604546332680539722039818782998189949562321425683364720771793864978616940531983787692538578621381740382505708693634042419217358073828080456256023141882979762363056717758212083547179857219552896037844617849162798212044636443203660036307571513417736210063165168294918369969966850440674645831305773188679367467680841396043157045410283878542234957818964000902552827332442055916987615140774310514478364705844161823295404231345952713034630486774331168990886304963214889251468170130385003431416454485885108752425456524901958707816657320618574773402761586041838709050540354415764048754429293283422190409970194226761165544013027106298700996160770911668237550882872868689204360456083845773971801676699797937055974455082040025545489895706962799180563439602823965260179001417490096618079899894539364788620732921701754363042109766083214687138906968739927850848477439996663323870037000616200341849938227408286395581259876950397569285526309052182153068532978697675310863534013731836796305544262224134266137687710388330335428219502898000906740223307156229165844294762682447895085550029722117450936540990115897139755617917941641483208791121955563807065644366991571534254653777156959423924998709345576580581333642780526062134372300935939963113076694793506746230726142343137914157669312880530772388620006619119470081059057045212907114551099609011040110359843389351747323678450144451813499047192797698771619228904027581611812273231784453996970474940158350820302588298464193096638251872144216427314862858869919471980486714909459338128239021367309052747149124711846308583064426495852672880757599081969353480174931597536487304065731486933729961331185776587782930701782061676770309493137149126896307961480554644113805180848059669411024854039717309752424192729146594869824623396919754708217807789308997870043881912661180661619994216478990999417124992825221451783165798033116298830480082585470782293531053473541933019414642415383700348616767600082642655959684730083878669348069031675808197084734799453931375785388570276828047027901203784067547850566046865734828589464960843769366447134309646359501982763904691827875828757117909995131012414923261694687736742919733022757801438198642133294370319086629302459252344329611738443292337540110963934090950927732910397863253292379307444391594781691967824525785753573919192592033039779385583709653392161148138600837661280467225261304964790098411422098357861769991881894594195308978675962030600851333407280946672558945146483543113266181678698415250962901058206868086770863702239060598898477295603669141820541317459399233400193490272879029665358244657702445048685761601744791604282481318330217194799347641571343255154276737384039446603768814331848723842617369276890245035154196219259976927982644232501057833493203364134480056200390557264991956343368035079281357233253971417874152787181756436325985060599673281587561909451780412754340898250858783427294331692121023572663788487633622533329408577931103999733270163235509478896520785775090576259640632609080359135835897622894803295156100263160180356740720649086380489263778746413193656356953696500293444400664428573024641315756834173988362253420950777939423294688740216387524361146111416844326935447325775611811943141619096194189134833316975362771544247736033354820958671926151080368942710971972210251398415630485103576104757557103240531573827821029187440559330099671470672750944358260755061227544746365212699588594907004690854672971682816808705694189850188556049384613418248236178405079801470675098646576411071429884024872616107954659213851746388121713634758118151244229200945714436741239105600531794079557228370129960035754102495670820018979370223186460103536755245822259524020729430384123721101805167276715366593784476308171209482131737452628635029137020423643704516621486540765983273401619814106121845610142747187337291731410010820565220950513424810345650084820232185092751446232616596869133064151348650940086635943601468515002917019952612875910836729376963302931552738248088939808961460830785075212829117087249606123238422039685925041331494327610031469617598244830781440434461752372113215546412586430324360302964383219016767456420785548310570225280619427382727668778536351950659071331252058380495722201058446039044744193884405405186552507061823297299628938611177314257340446797616206318223234961441130345530022399699611668735415422376749892715173840742265408818864760135585207103834863325559739092021445152371969204458707438767824278186125710537339974734580356554032622583618952844453300984344357822056205666752111419020990904168701580877776098932680554658742797583122210383098685453441304672205286004767697835202885880508140399424507374184650436045902223177260477484408606245090196948095529707084925936084951232543335617137183298821586727302121005235580951748410890751717942533910864488881185521740039053450436937208790101317387879134995662719458984497602895917144635328594079979223748150702047657629297786923504652598099528393734353046453236668345014780551325189084448988524375289156193329624726955955337116409725754144271597404396015474814640535186342495433781238735810129741112818556943325634625807318781835454078990747531813495391123257295761820443864978862674868094927125558114663260237167885128805743488482829821722766081741550860269266890353269532639807433408332012151877593559062668421472941833658204895786018417575079762890503426451301875467370075469626253160639443485411929046188135388691321127182404358541460714427851991130372230773555024268106793276762971695185686656515824225466141087264579899533228529351564573005408097820770736178869848607509401434563430387944367998127237320456028175729287111816370739578251759359919785200530568412030955827275486923985653221680771128297667984205522354194584584492426152849955388070950643355905180843211691164000668058846666448944775757841755443102979462539634311310080594055860003069472076285228436313107722043896834707008098595577357342723552153525708605158297220928336884383971397343153421992129032814444622820362510555782484472599960246191194906281012428588543870956400295491221015210285216787731465893848509013504148224700853852575636553078493506480448942553848868560089810990922523199667210471989316782685952617172770547221453825670657279585487070493142799975204266464946978896107593191861047255842836250812799659949428074544404158953136807086664786684246461180308469728028925019505265660479793651199890591189835906138330746208680676110514821130034567933650331237477850667162437650076538270361985371940935155426148456255361109846790188934643868999537363881198557320500382581632666420650821752744826610717101091933196525543829593549109200669844897873901163037877235227786770160997674429174701016790050480383366099419229106440908913105126103681579107442441406120979600134172269753716377449353034607463510578101775347641543890181733972460944470171321058314090377808948257727385657020579921956439601706760913404598612196314832048912158565015197414692767586132997170972221423289536762057767405257180970106548205510247177867948635706923905340153282191953192163453590453645045892852312734099809425487600354449984184762140136296045717971685257379579307144379415544629711991165000091626737571890045339690826395914995728041712184434827168887419285910749472465022595016597853503078813625021067419863385546273363244004060724752209840934962646101482050017411810884154628916095110590038356787045204420116390089609553051547683371760769291792724760974427419779823899130042163155199748418143041912198257972373531518961136548001822759978305400208193310868900642855864994571731227710375956775821276020373275285928715404770637451004965872527929328184958521404900617549182841144036388887026499718327093914552772866259659053128336816148969151186353974994711320935023838477373934276046571501594636808169754351793950520955775878092476526143032359305321533721921275078629433396250252232803502942326474566686466235041796187231773461522504745256964521896656504278010880044833578638964278727246530966924691155692648410592311520751678328346906432412447394055934521838412956744064314049708679876406248410223063158313120478164763903962050346736001200900720222963245553058445363662139481627821094882400822758061301295049971169008746053503533430205379527372684730791240050914417209725686195682319770244754338583842092697567577127031961053488233405835243297484857864468842069095542531728071633957685915514356832043727633789124958998605158919428409051077892117241437159102155379943935738217773227763234461321548378309967254236777291945217138100685906447406276662991501962390163565148595266204850149774833455111177586876045402268042433371038541368674054075659452596702440594331242394712031782946207339872106820901694543039549602567162140511251750035953324283129627245693651095841199171759137715441185820904116818232019083045624501289899022344758360513574659982871131587007831964333797244156674504855232214499196468626967367375405015795648477945393885482347063465057059577936742261756434090588988576019500816156216088041728114908809571922212207759731436381323375110285265256598948146984718101914203357858307984951048708907174558934539423021772221790568634417305791170431062679115847855233138472765167552004132735223284867637641014476818003393781943895167889154789650290362547241517546584578740469660847321525088668116386493960255677681393537334573129619365346175982951079108788078228147068773570478236346496879414001381081090869802971246671274757242041007166485781476742642620776796043045009461091171206978417776151894761344771768444069213587429782339314966202973017437504947884303614371006648945595831129150089275988322760293616958087928863127185170830363845673816865873156936904743829155247555806943900105433901104862717448036950418899885796790540503429431029943782192742855600150220875835324813683302801288209067332877672151351960839584969854292823685137843757853032732381558468909149368595273858576625019712370571983170172949407017489992938156701532593588150015466599886169032259984398753484493039370563559698210676171994228149173075220164911402484124817619077754768599854615250839218118227670267710829170543239920585443029975347966392125333593198985827799832602827867836146791477400506730592912391568467006600513405708498590966495081878438783045257646578360126987807545967148136591903235843364756316340544056705435093225684943751666344418317856276921813652675227807453596554034611766226107836582935093491414399887041035185790443384393172131947470108156037794995581546166998345625903485892197133536822442753010446378998000736210166823463900835200369270603163067483653655104334437804612499357608973842348644284254935703401097249359636228152414216026571950636364891560726574723984183313255712190265536340553461719861304812532429484123106998297649776189744549968902488539002459838984260101918948582135603392679302822964428661182223980334393534873641159967947896129409907920084512240805793088619452823253035294241600849669824750496266087867745861069392603988087574797884684774107044612404844148154167581929828714250224462634997405878296294998736518862853895582403339981713519490108579819321369530582077928042823020476734046986832213580138110764013173771687148075129055034491626248318470176665567118948653984441779397205884410841150961070421517261783774592686229364543495715527362591343315518291736869238390090548473644684388409478272190417106734502873589879540037786609094180767299492294500284765627517389328370007267411125019486323724270726960878466355813592581984955456183078296115791994215463444812305477711067434099509251920727773673838454969884843434990805792187156347799814038043766486963079858318953751939133260490834516810648782544810682843788093532203170900961564602745712358694514472873606831789805781351990421374803797452376705347775211787390062161324705980648996067108444970565909361551401712485136037790610957982519179192446896600682975700295742379532153662611412948124806850347152465372000218887032270832867337339207486095464636614645740725971394690969697872399648575417010639191666190095089456421955377810534578097418367008459852385673372122101349197493486250352836166920872843436394439810788016080839059742610374218208752481376416906402989901696917654602702736646021977395354780301798498558779901925964862506837988137397722294487065159227375238923281657927218251166835746850942723596166372385180780443054019777195546291520435069714143317193154446855814684077119417779963334525766304268377298569071862530397896778893876559987023301402036377801354295223470116205494276316566121731095312451485095317764050248905563023804455586444902763818172601249949980362931468460106823492667429623388396127820063474729122675526444156757092406728157799253611273145712406387339249593297323662008393771289400987301256447601780196751564380245878277649146150033669612188805463175309056119007332507725247850743119433868590423281726664262943227395080427926552138957006762424033764217790234947021684183476343621571642708144893437172571757713373489983249644608364679486249038711133989931200035380856481900503713002996570159542033113816575354760384935649053962988995694269568028370266834095269128782205251531661129173461057056857251638033377795408749072030152076842687133595981054239445806644449854946947502245181054114544721870043147480946536731899558889234300274283744624627753559492466340619326582128301542177843149971939428908977455487516124930361692908276198852459794850545242935567903814809092581248353195226529301304208312308244907749220145592069663095304356693139418755029109734297050743031832666663212148582170567614268908367885694270882339980128191909024401840390924284837975051643374278462252186059059938150652256200192417302366443962922128231216685947361392424825953973105737579086925829854747936994505444261525060331767197964185873770968357539992877107883125377715081438827309190740773938442308120173312297359737454504592133274566616853735825140275164060215078933194965089985854927436985244520229441585164586467471538135458224878550159185931845641393490591694033760193600356932219615484925549035745625838593139272372417591006399037173656521060955298374875246075371239467616888955815895738141937180980336023295617631348079659757657880813943482544603839268655944269489857438809754729930612007696303574930053098777753851429979249780341283701991229166972444116726703990574940897198638339242308774489673158830397411054368190615799440817047154607946235743045461909425493067656093909188012785194022933001933281035547405766146246692606800432368856016748466303506867942135734181583105212123516401737157713802488453802742883154688180549905310979977923551145319663948590645961342795751530727725003621534412404595987223323460825984188738341054399856214579286395319319405137235200544085325520816321342787045511748981294045566061494297519403425872480254557223472907127261266441790516265537153953192500848627280716173568088539347080337672038940625103186423102813113255185855463786193575465446961051140287248049145606282267159424559539331635544859219135633798413263527736568639164910026092467455273838985739942072884867062924497978199139494060117239229895783299063149003486552055894554423118133055192014320308219434312071198965030156858586844002484506097563672719222491834199602173754741916275211314053694212205108337787647696224518142881688296198033051492737915692436519895438028817569673677027904235103748543910755232750290945559118307276264664392586933789415157483623736939375922751547112835579549804357388018510307157598889287424990513452943647737415777125760331993864140764645468555847208574283138232608551240080349565778572361089488583768840627052158493532843175115350865308939885169840472587929681185951887708389826681337680734057276236162719570636666250195052709999159831419676816792805246523533553862700238363490342523141871136016144945208006809959760443554792434989336765004132953919992163464353570518440358028407067114484136017407534398185617736308391746152569867211441859725833307371320566431971522906238908346608203848908401582881734592299034104668802066711906528793272193567609416784714539890352502991858660221115736690485633974837321052276689339783826198414243982921278309591044244161814813857843837361985681570160773348988342582812188040299885464105114273777863797561873907657315069837258740396392479716117406954177797442658666309657881633844637020721463395337000283196028736855659179308555127352761317311584547127843003810982397289679643160803762284293725487585821646127077151722436493518918139944026089568444023244215643095335604444890502132953325938978582084582173856838495082074060918296761487770899347419354722266667945670486230219977448766539793295620258669688922120615988768599740850279996735733525626643490773071889833325440774514141268286244919422023888090554694571312594144543474875780579325110846459790748954868271477783498547538162131861393723346032401996372886362771472256727837490422204850926726494023524236190849069776541071746219721597295495563581939904977843251476270812113739289830226763429511697266322751477255742861313816566673850556265717753142266830723731330946278790035331914777940862719112406385158875602516188582758323630695241027245184673159740531326037765095159201139909171073576285360017931055709554548918194621439082522358651074764446862080597026727230848982871377610882554175678798578019373306661334442300233397588689988642566059749742047036129650165612598566342494805899744003476190706215329564359298124707299955848989054340142657510514213024305369998941664467328309148807136065424811045160902359020390983151512609849883013195684162726830401668593171823758400387274338615254005751859176369659468048612972466046117500720990373191129235932213832363729769507512560481608405076146737262571788041004339147791895879462496877806129760586045810944346603469288503848067912351105643457113635845705297250942081988105769945624714355508951474203282251930493976687674526815933370377820931888080824898292653150492555258116581974128328523252543206047764512508881118196686492897455517639595564566025403721164509623112793080248302390925695842140877795982630754258451884086793384771954155790763654091036267506447374968925787622926275225688007949878033133701787294883332444534893702929292005899964365250394889680247219719581849385018007399694246610956731705930791307889681935008394267638568178701234300824377324639986847535089494947657646354668432786626680149933074919678762416990904489067852399981390180510893036677142310085781037919256792348726794028438885618439087472360450544019657321702889495714031748660186337553389056571844064129735469944569052607334010618426176510689810814727537539127725342863319497961422444438362059933606105778224375625744157031342235974795612865718709552806465782288688556917135278875001835671609049886513526652751222493964083465525049033814877410972286891103533798616706877431073278497350466658917603376051019053497254763253413406205395434610790904493679311350501107935526447378207587001834938333119658316971786046320349858537416235471700656106103982962940104950474731094582464463581488346796997067881720420894359108250506759572989743472234558469498128947720459824586372678317207129610970176465493292819136183872408975935525098648534371060377117199425780305511606255730249373498902160942818416124848169500481066385459108221979071515977530086136209278948059500795348966524640595147630605635661621568090567381641087795935436273378359177979525201082006894922501952033518988080093139858499463238126300224889313887942053098677264412535011857215876132959470907534238736651628273752917316443577545694965287765806294940492046992821155165738761474252769305674438592996083807631296946840008416981673087717652339075528075542383393394524064245259648161742625002712206845993357889959700418010791197315746531692098227517977193801740264227442372271518306898007943160086571649156519921327636575131852806245978403795435492184250516572287492704837836247375149720864216622487373638215270100497595603822712310848150341905387297092030495680074432298867365500157083224057822633638587729398973405229831842454402028925177940575207152421550448830934203526653856893193310411509039367624592820827950618329423540044297740686877193670649967083292002053744364420519172388486164789959125206420612757145835178927128026937035000541599612110494055476935900671147320648698919651116445305453869337263579996971100948489269035255067542135583817447786174142652345546009753899905091657803826083775087148618415602877819013968384023028413386269582463991539430669496197849231782232209683033531683810829674241332590039474186347945708624648816371743499730685319268927832506761409751835035440427884206161042236601159453993241462972185446110350126714388623496159016359896279498863589238491556605022310841339320923041486453021756173287585841813455942911735249409159779242131082055122797565911708767539266115593355045868159365766226314772158672429435525706969265708572835897039829730070295894864898508085282045428641135683895746907853851827796750457935155047083307886820137892068858962918910755873759103948607407808210737166844180953668237410794740456586568566271042995066921448312344968645152173676225557497278869936060823670182165582566521952408926358599245222704585000983866062128211039436773912434893576857624754523142887290960918043223585274667308567176693833381237909501885222417202634464455837398327738346709296288618419566511001712402903689875711747935660937765126977541213483989015848254052881176060758956091389297243197136084661933942241420127091233101761641858793186117475192068936301298766126612792637995192922829554154428041039672292542725055373874800214043555989446083772414731938142533218368476835472541311572691083897443364390742612141996523439830461328416610753047760735579634077760495967808896828575556020110444077773923185349035209136442290591129783662107234974875887396964426134051113942022581900382936618558210380515712388199725006388575680210169563732541062202910765528916372257927226526026356311372643105256306024115697353681781611379036043617727216176357482019547242340835891668998807244526819696622206115947679094405139201637831550780341832091176756030042293155966952619834268699560383710752363382810145949280256022302853643193455162309035521210381905876865635135570410931124149310309064419835015666102091369174999080601555737372210609960958669229483214557062467423271001011409762820991922384005247139039425740656091158844247644703740768171537269428622226572707984152788459197385595532718804872039725782176746158949961700872706480971290898553897302441037133680362663189508541321294401256768749920938922683887220399702470507801782301066572753569460746357474660844002139790867315804295109783223753520294340869346302991735247835057889593421197006438134883192537288086042974173691117203597132551678708982821996034382148062734582429087428912692501746479487806950614427654393324798297664991307113215081033157220962998607422074842731810342913616499188622262054232568127115764141798422566729538584097613941864504378697949476894195529562097381480260133703681258527708429160594005762760645996566389562627849525145136494892470514053776741871803308973251196575841167020791603837578179834254852287884246452894572619124420404192149285005948878143591623453007940107773772459010576946165384160526132208527433876486256458109850131327613140560460893153046438474650709005040613596724088355167204330811149786319804660524621665404906878305456131226165640206425362951054375452768765052167721357149260321088505004289023516006273874881641475170570853584484509008117719135834581029112464179186626146249465034085952737155875210608697838640657663449641795609137064948172656127705457313725151802703702172758062629389859776859026449726357869152600896009467609839381960472765242557122949003301628265299916315819764300244207109353817601448648678795265210123785595941461452553320126811539531297284792073248259629302058349000668653087650520307288131167035526499172664308850570860191081144372700924865179912087450299851358875186245617664644856877545232350244840182517956960376888630925818158396728715655139949519511070380227998582569124777166602370274666111558354385944562966412764267993261923590463421672133321563491156653056752738836591530435506812991626964476955616362542314094843482230712652213890161987432780894837546998156156570164835177068252034166072544957040431565795873487803856527854145158171605719132946176157032779492818381723588580244847889750822300143959561033169342774015219794062504785238488186632311510142758141859315756260554592788241540494828204251682260878544525641530876967798181619491496537522195834802497884800191348507179062638149233128542831316744166347491251152738834568848551794941212362650361825231515236823115819987746206608636270245869760730174544498609712054483674684347747087326913459091973475751764503053461414340675473995358898115985372905898473407432700266975962133077539049106676765815184212110670523168821953761694677581903799202977633554139712678342941938738665057203790517719367867104275708532599556602435785358970300038739367059097131745417629305640150959344940189506103591950511361387227386424124644998721006891155285508180622390813854467266523167237134126960907252125208041003134791636967020151133735551364969380717293744634294319757466025059138540770195858888538118565601794042174014582206060646879992854371651321485152523720261564964375669038072686946556133275031150703741741855658162285880118687871530292358265799380925763756386039979522881807438755236749241851596581910135174622755742865640356266827278705060487629451871885553134509839869296119683836776674950222569171892871399122608460551166255401034461794629692057755941189255486735914336617607118415439191758317456540517379098332017977766614039768544668312613251528385792988584179672896222809753943373369789818056053326386898370858316110250132107097420063580905310996673783165622651983650491731481052945666588181480853794703329513387716278446654147719461216706716120618838095661784344572536321128669097158971839899944581976247390598577190616199813837411781598975717031590825395972463708696008314267022099111098952705789420513386672032132009092303250045734691112182785055944507508523684044850077464431542792246544201060008328164892236735883509122373645734209054311314274426747450705093727902930464274074719896196370166499736516931523453789776713128824175663865554316766140719777390108293443882490316390350177400240669535574705609099743499391322708048215957019597010959276469897767849321465905193665977188897083466856756721572510008159204471294966374897918061863789414038249216287715817688006787322278910200688318299818948263550512938619236019641867501453541504382217053097469996968221452696531596126304511482686856826273698195665005091255540752899170301732021407598647195585599858698173473264565234496677307469614645542846986751815396192539856324910464012520678292349928798151195939749706424557667901229897189794994646152113772542041263564272212506585670614555889353696365705572227042975566547082243761556469247423448460457092006601351979641987372866154920381113239346710977595523307411315510587129030097516865101127639673494482595254637578296037397279104477194554006143004929476747581746999262949691604625606050377952497931078115894519572493209266454169495282488347653044563365399549850500676653938090491913763922456967699351301718806833515853125814745438103600179570161875332003140539344087516727607332781320486843389456593741458746380998601027366202097238952780484033503867132888623855385469415077492047058544574028930019630802914236732726312634144565780255474609858013850370323607624073071600064535585918502198096941072242066447910162745883261410248609465450926942643591267360643219196604225345148464424617491599890134767931188000024045444382049948152269108859190549484418625522763141432272727625882100440141671720660089775035898831067542647425958676339313000674546096104699900325100270101082443994286223211047011917487924004032613223715485764316468297850626104013648205281404227658406125304464820964291251616195433997253385488154163636155202795372158781421850005836873246111166323574243767415059129626910681330865279369175869478557358440067208780353891886116976831135861869785614048411044837999430621556729426776070146577567794291749347685801695063387711583382455636595417366654895227632285209519953480869879034546624613735584017142302871700911083851020303909496696031580726354212758633199500319229433754131099919439480824154737774307739606370070501218980490244024862772688624305303728694799741728574684282551946754807790907022472241479728105464832724141074044800618203988639874614420809906938189608215052272051113523630268231275366341499216500702761587972167342766162864542286397087062700941136730256272019765395746752703753858803808801147027406517016756583962959384181698783868708902310754551904244087320941846256775619951194228116813223371184111209373734475658679016885873263393482000177688839793378679006220725201375008116899166098856588314740095331575538462278174450111206847222807641638120096647955814897253091257781723607969854963119318267485284863156871017572926024157214281059765241083420729018005640680256587731445336142531881140914323633111502281369376567483444398386158036653652182376334512551542114004101507113215915784196420272736569258223813905253694764135201624832247981971050830549894677993169353060124320030314687033016495034668768919738597982694567284944822637152120440333375437171145690164251096482938737567609714729582940817940313451482868871776250365702863816303020422147816013660143276327717958936037180533119227936668246108442948445957308781110748182055000209257788413224639201516771840393548957900415349329561535715321228796827891787162400120864690309567299903073296299772944989450632747913513433361420942182084859548695170574519046986043777949637649314018758017333676124448901343973428107252555338471122155689413914202353361076633244381222290411977249490939175468117369966058965241322249519625563688333318025158486464477878389126667968818359786484525906730002782892031994191119068985900766516342154740931521028999432470383594260092356790204228373803027234013804243282271211973832407066631544581337383644260410000399911229019983919102650792959780272644176335296503541950932642068075119406817707057987627440985920385765975217860800134468984365141975069420718485266371676706803234028642082628969404592713588462674826282233041174823028548227934423892049958757697393745548131063878128587845902446893835062986868067334611085621733765511123722571395085540541199818553809225197005086515236100224541973562484580066799464082319084079045546692674153602530120729965348491491612681682262641303412354217600190987529947787652129887710173912442992699069933566643776461573879526878426380199597940292586836693876373604844636659870341031393419707858368588989922242372188757465536647578988423910195786300802604892052631074161554499988221759943606736297860696518907617809012135826096613421037068529765771864592126319151525184346812946302176637726849120792107949583047204402478094027064845840923736953394421321091431023633072287242053664209562403451009875025886363378164189618424124398808899713883036802172572196832547176096703458890318881462289180098494827635212635191183308223626860257270068228911087821764709341523094035205402049683431022675583764501837058325943759963987842828463137600734410177673610769563211039323558873078017494166632936249756109683061710013547213954154415251497844424429457146670167791601271689902547896524106628891065358020130648964901743052214542130130097596271236281013872541420425274922228806539974078760148835161439187750898858249298686387441505273121212039444207955629271079475216216782736975130343697716404321135256831531310856152603858498063454923416498336218006452366657386678159084776548241987980464949393631751148531710862805651237787765786668549369119369662990644147014265592877166621272285933751715458027281667336358829781626687656539133511512056057116504587671163192981907284470176798713713601149051635661362725352984197355309264057228580600903075692314528703111351362138770629305635517314305461197610975723723755939841155334914304335360146453416669355077674629267042071974012187769566800558038811655261607116757600070834403491652757570230742539241994120610169240259802090710649235287760937531055927787984981147289942820691830772170636192545704716389013599928391837243469441994974618962845217882127452010892187873029119680789471461688196774396672061740532442516843056704961675532601273177352217926582621234024332815936552740789526357710183176062517221721320194280401222132299017999058439458832314843740489489812237875054024772403043243640596528592533653848831473876795052333392889244081186328666271075249255212429370552851145698985116870874877878676685683915545323820745855275236737430683593911899853004892489547588812901220212602193865531776209689977249756189152397742913358452007445959430534011694788480842861085136662412500336370291593134278813041818325988281953923923089567423809363454224467639105131063026518214335536451303340822583347690112893176121601849904008889253748922834862581074103988579356319274530310945336141888145002209117388040257998199285959198061073640226162075022472568636657343255184650237241294477217900467065189444343311302239017082721274789907017903484512131713442094053063235361900292209184574082534831870141615488767080679340300531453882597987170304749601392440408992515275634751934810791964925847735847306593993009322476763069032273899681759153762443830909629870088622633289332739092682835946727318991086838638840880796024587800747293843235691298003815368181785787965724031853143310134105827154422541574729352413581682285699886754028680143504704062535887708803633364660045180687801125138392292639097127537756071910275913224470528279995329493170872117731251591826648511398596591099210589085048349584396634563480696124167408501380854780669022260593983171020081790070225416236925523243865431185456157008346929987836404802761073800799489487408739231076097330994690511926401166550182931926480518941220788079503755123407623492243177696411846241127660823651061923779091414816178781321873478343913287588820982276458275046384192272849755862455652953737530379737520651193200451052507530943947645122946200527547514698571789080829273680623176252029521202249687375200852226817856111128895156124502318352726749714604047648608891409382990116630717135377194446856349943843089654783943397947620906127411040360367617550561825781240197821015204726225757822142853446995482261682518217068143829237483867917442377678546781951778395709591611208793180564892621073918062515629061608849532898760110322483100237651057835758384562717274822606925828433138870032072928762591834641239459818271230201003855515451942731426502404162401193480907911682849425079537444196695283175378545815453719993796720091625620560108332601008040453563239919836833752642094172177859879963061971823772468524591054347890344058745995868168102624809026052404255458595730943048712032586757702253291517455199426985416970037097015505290091542493641452154387890892757099469332424633096976394060206119634797274642101246581518997490453415095031568292650112239400713298441915004073622353176744027588409917993346837175094485638637557938478709359061714859339834928801964343368803820584829593092232174167473592570400270180421522065376297691795588530857455779313740468243274345359125995836107154980694664170688400419706206378572747113737108844271173400065439311001493928905939330994980643671487508548734782934744341863610564407222632911766304521090628437671886372558616372823775976976261051220377282918118669770069124010227404492833967548159411638733029806872727101279134052735854985645461009201051542259217844335233311834613266912015409497421499238702892327047196168010156306273317658998696886510623802967597302603546218469811260744490091203393798115201091504973911486251604560386106290913192294732994796607900514093052769983626356830875412141441594892612993113302093012405663707618067118522275539190968409750963658382627793303982915568228383942559692143381664590813694899583933417564184765714939230493485050194471253447609535828794763203197463987149518442626133272817157165085918501013772245770993295788127454276357101510474756830561359581556356182292552429000933243715984433740657652151255561530614779656351145963290549678670603216662759939392897429804302882104597520995077799151441279643031464285856153889115246602139997741271839582409110979061391216728221040035882096365271160712581029968581524186480268181243832064004403787658783518653567942523106540444662729209530771897749054923417467965954399098075642272876103969551928922796924188469769817013781250996306743630825678036130573695353495718275433725716689055328127017397153388219641985098817060955839802831034308586663232362906625215401561378244180698728990425989496492727183103989410922649509203022228599279385300713589666128334706574494906972481523199461484952096954293329342382041705832681239890181106791942404312266367400451984374753223007064467659445959543252933227480690903585813841996580846517073175664896806360317245128906941975350454327489782779219611737411373078762261653844220919083032302770698782899543405489745785139443319717974467777502140712010007890574396137583785513348347193520891146730759867264158940314816182439251092195664548726318378000124910748809686982000787434014556664951389320164457489982687730158641442787699688092129495763364702427970522104609454988455729968953294772121103332083663957510289150049759382525106882654287274051959288296058207110066268044090224088810545634770090834389829438932679428307525470170166205705076482541995856763275850950450763550838071024642772791625315403217391806580841900909446954238859991600920140629164837987874423637209909296737692239876646093417418855406434428643325580189809394654829128194314801197435925182938190115304615999261266915678314039129069350308097765926431258499161372046343952917373810094133600702832415435359763435758416172459320750653099124869986762152533664165243187461537066083891156480953411353174462140435695980164124716400210115336263120715004197482405102334176772142006650078943670586133137023343928282694275754140474343236754579523146948856523765991008480840800123436704552570594456561333913575203326674930728454410722338344991082771175520307567989575704401729976729100549396065558599347184592899244563683020742226751796880930717830291952225428596371623911598878261360134126417562259827791077995138773866504158280295855141527808622199921537866532041403371341210605254261193291076532733243921180765331238665671063351866301433417033157190940661591629476372953423911600077592488617015496215797691706556580574016582539919910970837706281791837111735319979162833979454740107261622150850795312774669513700570702779605493516441121464879007115182113531128828802700042591700400963095687328771266743550207356887940255664983157596712892603827717981816494496620349642987404422459294068787601253742134007885470144157593589178079654839189956681564186998229765702401883445105391698879167311212495681440428045665949374250263440594024597181449663116098252103037371412764049082729709785306232440898316947394070828705469208713917849649266088842530768501921035535628367656717459957671764752883535150079990137698522574601799799483284065553669380966926461385784742963043681429239869344636054225766171628226441438460205506680608255569118426734596908492320327356670728654196612764304870318668863308666774516796456803472049780508261494039338008946821653728455682291897865883083488703700726348021887645109135498247102662589355446392849578828689573228423586389163466642134887195649823000568184800352168666255237731445082879825832736393093973351184814570581639330406779323208588901200426803177865639490312941080234409090515847904929972680616510522378325768240566683496941633347366539239403617296613946674959001819992680232756821047672227168107677868024233369692027400355069119105888801110589887850195694114153896897957398699193248361460460160836583060630706754381485796438050639082604507843221292920315916133583121499698165177256770511855982534946511783178010199805209196253553790720342651326941877150011603816041096552249331586249531153634163835017343003778128338483747979573724506734917473259668977426575292081330624701087458059178606308589868282783420051610485043884362447955817532668491493017075995538721081781658932607005119078730819087827464673794403758349849388780801700037898772400868739931131298678583455533730482033434007645935679580715247334987132885222830388482655755033399875971293520767356824736629080253237683739733907380870803274742125081839672529551881598122942351328980630504825895040887534868803518760713011036983588220203304376387678615532097350812290177470068552482541057346477990469990153899715736131379723469262600462695010261126151143380178487024111734262359967594441030431391039612757452971774712903123007948993291215967114340392494757199641239945158578905077245115413947139678880301256873384682144338501111340681109805252798109626330182180491803544353738098030667828158804697241143341637232462825758245084665977677577820706512035842550093907718075615270254582334939726340928978170680233434124222349523014841465845065786181061513464670574775179630981948452730506292138006531190970907543941866036968575046429303673842042826352530710068919066771752578000552664422432463453784840377229342733336240464118631143931977954238275275509461234328997259002464202438640699592722298827945131460475090559824417422106993240940840554911674770048770979077398525061379793973459891161476181535989249377747505590965263191584844480539194714581687960262905018914089754811634945447724175672806834089989657649584490683581262909042160545575459731987821582975440018614150880233719297577812829304215861515191970380797679930357847902607193643161668300325312421055273280482443050670851909489673470770980477343218285187616111903385104397187609547301837853082156587462551599089796192116144951437394599557574949188177351564438485264376707878125361821096436148003991480923450916228091299792540494107088937936459717560205495929356175069924470142276440648755920538672028582757626483286775359650364705261321755474495845491982561304160536486741484320722993139516055841598787614565152491038171436655337179976242510570449596377365807158229116629152555817290760704883305673800220248651428146653219675084769558186947930645995030811519049476728219450117323579824538286216300284982355238478258857347601540648676352548436382984878397483973040990809816640308812136260574922210461476069188331301352242804156131486622413974135511892692802236101825996274317357472004615841350401532865113123007312879777163811092646210799647345802811431495598605598998989842905662993814237935618059265026484521064818498670957249864049914061320773715013947991287223025863896729863379670787604204097919711569441434490284907926425264464735371067056240173662728234030584734618133427585260381431245173356763526618405235185048423922936240798864991269457864817304545141379637717637449364317232572500651744981095413475781294075380236382364989994728362492298869831934375231798220598638182464438178082952223801682041913083540952313461471882556164716813267428029773129675162988114551141110910764499649750874149046508322348831946318175585486294930425534374535019124813631786196893715080406743641932733237933788792657506105498064153501962460720214226955142501640823769231271190784265946524998216091554222027103213094970228074448729424665288656178984324029050630267745507313710127146386185913144799031968792493572357500628175083831724961516911614310446779013139040883516573323399015749165769372344739014938054495071312073484529049347715720622618367122115977878249072822949118618842142639101362695888234982453933549132548234652757608609212277332952598759424623524223540996472272873190379034738422280285524910166176729990990718518750837654274000730580454576978360710990270129439597359530285532026894325915847810030917988781072151271981495391585792284993816146511672589453901769032282570635127278492904892333202934209419452136470102502103268178658002003423734070339521299349539477676954583671606364712908594521497551625345320905208821241018079940543352039536827762274595816081736390183957199776070573171167003589423928666180092118196230213017613322958764234433823578205337937892423678872522208735159705845664851818184772013520431907767505485818615100974433989271095552846297193095967271164646237993934409244959081515630236813811668125071867394218096599539061892856629096961257662334333694908613835166300339554152695480658002502693558079286801048412418348413671180657774013579864203451367086010244294921885096124748401006677988789592289224057009689626103473980872522360644280702087467228624324376797233716645137737117622744125040918078603219487090430284917447368221266844352205411795117561771364993700483285113303090653323915180240731236520862983780883698814927770802995355792849988344298700072235559873539822137510676708267981947578013730137623169685971497351323641886094327828070128848680583689017062588152829554260359062276116240703145687741914699180367407930445051580299879980518391640227444340365708980232313621186530807543460921522700908767067344151294186452012103394141316778117771467419561836469143021220360273714748895538181932068982245684876459175057651935458742918071510374738502875163283995169923526569624166189482300933913429110844360420606852677953762030956288420918639995324960645456729027651945871860899599069374482329714979702960194579118206297742679732601967263995426864535073550305893389506454195116954336924107759370324174403798197674455656063745700917677937387514877140860074029578994599231321675824308307763760516199728700012373738924976857615881808234676362215471164963982611641484615439356701485469054354454670095538492462599048950334558054924598760369351242703779159824060232042114308363652701639146531231127437909413314897297773204941903613866473952007694875212614366293859459000743559975814229131346471552790450460672448382837884389172600987690223195279928976040699060194113292146844813635714766601582584338670508413378815356887940267347036217831581102042286778375652468440788766049427424520766691570270355381385731825409582135674523220195201685603971523205788999712239031344466298363197547187582296633429167964273295871612010025837478889587120892290700601641261809599709116245656975558399577463597310767954312592700230489070202488507857923073788094098288365776725971637882105081449666328794588809023116487083221232494035769500808146620744354199708940203573141204030946361172235298252245890312109655099575765829657322298205127956011467064193474645313164208085337782929915166930316894981645862381218599628917716999139696466840621359877868579709912917375261057444218791804908595448790318080727024663924311316964557734612608407975515114639643582102448254700316282439441022058439222643295788864361748316097233487125541040340696629683076013804923565599650217110053925189390856595791324159670079177307093479209217666181234202379726015499844675557563019977375065497970038179173954749931293394611721923082888400222365550739829744946996901636252569642786240151829247239316296655985170614806915891195670815770940785960348950903412057919564970671936134754888856034766372049833377712812583693899553377517003314267177046309375079102301534271288739551138297744684241683430047683821995214158426981344441873633785551911719754741626786318475116740826783632286254636624821064853282549937450541779872755720438145079552734791523536164378115918520687870866506260192387087998800024764550859512404906887408129448625925058011570627847756767329375831216801352877394115015284563871953261686845969478737219579411573335860346239818849729017221516471835470038383511513006357491502897344229320578266651191116467754409746748066192942193950259540415202401798337635959571633677377916773927621463450271158845768405208176992218574262312805572965651016279388297723322802789103856053092927795003227937716275343669104745712447140113384569567024337185243393416356598807292033164266500872090180624708309605779721286864266348543094004763808174614924806811368852310426540016952928762188303545345927735532581928577848036134293178985903941985307746766197313611544279261781578549916440148759065569958122321257594428030854250444552016791853513641056265972913634536879458185293575932457989277465204593582415325351156967355292354593124759996278813955117043496108940965353146630043688144392018749235674120109501628800847466011191492435243342466784712777630736710493476844959366967746094873597497957877938464054373827921084850630448284200081777292855886415757432302295074887349615245196087343480373549530557571884964326186734381941457173001059715681640685964776821043446349895980522462070385713910645137373625346241255119406405588786414024713827955534651834610531913811292590126500416129279818276961430627222723076646139673950478372990094169337442945214449534166095003231848061976968476598335840031863509619747000799245077355432331545918305179441217899057884028325331797711027857861930885640474394952894220827599034959714775109287151178364921025105066152430098755807940572174964952703264059464993363062582494572782202563330561078421920966992106436449722415938640508770600380166870457024288634390394544777629692791396842742223431051263341882796213138238524557981760951405137872664749485082755417420733797308180839984927588957439982796102531691967880518043602504742894167340966726350593615603043226207755614981592311730550078371330485896167037000867064846686114575056703522162642576906684276783111493428415797210152674994217339149505050086981922473785627060971905896656540449249507047718067140683613721304530754114137742767307912745929531225894241028486432375360934826482800115202988243038179154987593059926685145968260753001855132174434667959670088793961989741753475894377286871774467650151052802248095045787162991934165868646643698043478731505977097496082972104957052351026916458061997553584087952248726596403406716328063176700324496051331561491647821249519133342157135614200020943599025513999293912475586515619459306714208229955594093918251602032778372401412243224753302872753235454842267290253934413550112319082089705717363549028919896618877152160147420654910753306596517651610962925541008427226267563665560316009601771321176849974753256855070919050122841251388559136478500137623936996665504296007565670469916965153280865726689499552773534503005212864206155973911294329662701819581041215687979458046140568075773662555452685626056686065693138731946841007616070139020624678481684950621865757470812630401362022318629460411656897518064710123710175807648917826280740878982357182319304738670341535139253571741106658425945985990914715380069665508869761373266348260507971021803248620584936267630546364507463641083599347490972325326654525215643261726069462606013288554472124733168888947786339714776866004932787651767124396371943760818626495353217440317924195465110104994051371491163756028464194768862007858914424298656125581343514675019473848761433480308806936910653351946547977741726698888937357857398714322486143715565207414579632491078484247721468791179822331998494656794109663338447303133641539256141865266097567417779209406559390034110550526729294952824693930370375781298788028465351869250909423670160335182823858417122517451952759328210462686186985280908822010039518384888320889011922931401210818118514908745015542498220588703147508125111867616170147904505607824524048429703914954152679073051809574140895890379412896872836788728666349844213805045702730316006904363457669754336310328999142984336034884043749412297854643616938802914619846664223873517913645852757689292052733771724102847425640041344743105085578419129616178320495013758324639771738157353191543684946373668000895755874702330447738307951078622528298081237425529585094971734338273616223857155759436441056847153014976091961211733735520141340409595419392307457600674839773488762975463517727663033394101241485769657658292524889699604217092667473710770301175902620814871804046591903037646657699664858274374469950456597888175218535796024379574921415399926109717206586186282584590073250731423170104824586664847294983674815638593525237926817204730005119969371284620727357727914410499226267208470975929191327000095141370452576212987343336952108736097651765009094733730290209231923213805903281132962039935860501274464329634390194574576023865955789193457498562440814516588390844410991683758138935588216202087169317452748480240983952549938921980273801592670550424234540540234800974606114898838741290729959163312802509162501710332322135515370985137532911628735992677436176024178975841034955554968226801049449512534534020466734779797053340857223117929940646984146109797712956625529587855611074514015738049253737259207458356829924975489146958846252847949108786479379442344184281946482385480379476313860622622151231967437463051005280195384567179602931324044562138047956989619111150164348786349178901152664269707320536383776944999976882929814700709233350929346813533616762665593129819901632263596572808210613205061826088161594109500048173803258769445973563837018937140463168727313719765004822521192478381961088614884205705906469730147568794883958935609913367525893674536228831999702792613090473475904449353241111920551730496326935596971922170930553646016609667842253871107694736789858518380256836412616828860251842240833386728598270698851222465590864973975929787898982156753427174883674392433762071637221145843240920640960810886169727694397198741392616222684728558921363097618571118246001583119598009175877642312018155441867339686584194724189368623373363804539409674111527601701632650114838252080185786897436938238884403176177999058232772563743407920355433235866548940864884186437693877880162771095928274179527397647260931399041944301434930854577520543684633346775279932497499492471995038173101024477996546607944309267749812951897862829154330992103056222663868653355602037797937661480415194426736677344808773887230968450215980672899844695641999355126864320861159386386174272192250135175861957703000491371249109376635068312702544281690778278190825669101447942042096930176674653089397306282680937537233390692184954311932347545345492645939532185315855787274346190821234073764408943369285235448756138979506466205524284107185039889473050868285889576904983433119945141099976452370430503740333511163756742527309270712451434265810005596592436372156167098593029463372576536767100529370617569954826681862238285183550738617865785983834484219520004166597856474215859391868538074274447613110014159163598280278888942620811309095085490851172994819600129192565057877498838966933050125489904888062766750270201713140387833913108598814407550680619602693382656472679343676224968166372719709360815846503842500303224580370151737123087168523038718003656366767614592738270474940536073055165077996187401256121347602720752898140410743678119195972392432777052119563610106899786348620619062484448013307240641059470477494350117034989716120333397890543958774429131407196254355478707274830857260083313919953661962213344586476990807738231164979131358656475710424461903795261015076419816174531843324746019345034585589284666451764671827922266850329303952612998016121325477707147197986708363715556892227316247097849801338782078230422378964136127666439329641248192265833474042626910164107101933202100303432017105617675770844631248133192074977913027527904222108353914231096531727115354498421812807429026753333491982320082498754727081363343994410706722699104090537837957990639547912319176036272690938792941574988000355524321072313183548300513332309944028586722811755300624629254661452989154099913365858002000134063392989606610448482201849165346555754276085274729070622752783947489142753538246669925100248099034960906944130076984002554677725970383316628955713718208410765636131796706646296633445933327607540315210918426466292877064700063531618643021919867860359820348659450340739039393526449159692190488528535431853029607075931852061871877823656422750406612566296607163032122101914408884679814296816962933923037100557524565046261786550579915398528017291091608520134470309529729161856818659019235010310401294060558762505014445866098965854218031282678599207296014007732919006452583397711370097843133873681863170967198274872976398211927901883155911027159547486625045801466634466226727055873914291846085282818369301235154673123831153337371780915511316288074793668494211432788572541372665530046495763682038734371342183808316668485026223801960104016346843111133159571445487728256248819891954803918419493434106474943199860115711454561075207446946261142761250846273525090611044454464585320297927856186598007861474174382550598706987868567648899737984881153870126611021750961680842023657276347058232051484021712784021946787442953366016613213900885760096384525668267848869661993678303464757140584101093792314138875459329366214016478192121886638938228188981031507306021605081121731524793673524712236569037984643397248316559553305514978623472641964457057989964529453595889477818243661185102375160927335325416705659101899931732320058713301922440006027895351497760309983336030025771821019506150566404940294329716644560231527936106546739632384902252341738471192660582118087112424185661457676830111568689089002600642879907505960689048593750523777689201511283242696679130250304097276122095838475618805898809359354820456265818293185705095898052779427178703193513708018068625436081624107962385107074456730982089364439530280309907709983835250315371800253896462959080099041308254966063024334487161401364620698254555763314178850238118853972039069310127479049944854752976037291886885512615870026715627961209576109178857023445284862018792537371309233343209459958587908896640273848458296363799469050980167212432273177762424331473647734479175580666930791000645702049558921066251854757467501604683567686088079354930316451583524349271174713974360644796530964979453416821569355515751680329628673414567966989974156251603834702784695652479352053644646852564681513501334087977644156565640488845498743193310492512224065168729980062054133182464540105072561447989989775865465972636426829810599915736013801419785026492129375612257662156202218650159752951049076058386181176386787097870382940901475567966637083624706247785605360348569061211043991004196045502444394396107759034375803170068337831255974742717426933015572555208982802111503054734897982513371737497198325259647346176577916258156467148821297426511827878190442760309740791622394732777432793738488343407738054404832446234850769181106842104647057125614202194781430727850281527955663018623728033581769578211070474752928569287482370488241225363853163325914184805421104996712661017487274784186596592164722325770459795476161803167587674353702530804243483123040127370083146019706264420402529788258739222320216576576310980232174717057815561001521336825972605001067032076963988041045640381290775129604383820749432875790772382858363396676791319398669288040269670590060440102587683613301756474380510603042909977486400816795836104487209979174914408351201849923423946332728269340536252024623107018059728304375441403770665081876153979036105237182713374768293688899665297022440832735152781621589203983702028015151319269835374693695430815501486967555705600750667408569789783920029047746717390213212275992534167745011546356854395450336721483890970924611737586540561400764740892222693592211768541330195888454952352745704077146010481777861861763460999659883445448866289898131776232549154128209009901984916785331306982117406717379945090705078905316638965763488743445869500880080782598565579053728404373123722470618046689212226182654577283741573550892313753631764516886713808001186309488441685402616370886415163281029508346092124700111979457994955661128982103324172913981591747900216422067634685869089428880358572220201625767192718217802884602778177584348828412250430711573705674257615817028401400375469594371519466097833406632804426094296081776139837774318013199850519435850997514165234545716667909559690705647835366064181595997750142273905029896246517070918357463920412095738452641353787634647739235002663486152613591868684860661564616562137715869563430892165435312345468084140257617287269044720136445909636003690550046114013526163586341127615961327842119786749423940661970767576719299028121171218415053800299570150461306170448254605789901000072916981703531159987749699392072280127313574406520127204177045791009468756089863955237627172335370018970233197684302511937424711512580352959065568798792948089830066535193304873540076085681438804965995465651711971129877306582024458256682456643633542342092965961241333248771704268163690993204585432217949013989029556725970459121638260236190700110682741866595928935275273614599323290294627823935410263956572526534626249309317062473537031750561196133474721284816668995782895338593341213438469889471499618236919779037988125000167947042250727076003925712472560202591915736068284477833236284557698103246391774956675854287494783898349635430427311046555064335646184148779720147795661677367032613635180610096831471154831100181458119178923980440337746748729478636943364707996034276627402018895157863040085484743497703752396220428238226635067176904896213209672845765001839716123426992136151711503118558312099730450608221296204462489330394641531860657078131721334483743727840731958708701215130268208223298804182887744609816481196160181046333166897644975085493174937524280909869446878965079025989943782721519359946125785023188298824096823576897103980170100018505654282428771948873861814025175032535502326277085161392118561229639166009572861462572080870069558154578142469214642742124899586395056884692634291467039267694316368831332100026118249852276925414755431858650840839660199569673579949744471270907256917419952979466911454299068366138257399045641939423668337238049104928695370839741214018951288866461427864461623554635609423745909967253392701952364914885001005136455211287533389648867072711819669814430275424483522015122113502640430529273794327248779627957329789659292682504584703920709857862087941013655981647024164126263052881157068024893370961198999510966916795063010298512809976512197554077180123666006949366766929749850731599743321041533793405582573090783789391734220196477867636501550241005568834760230409472130986745294891983087742795515064139169257933572376578642139530149646391193790427065304557843374655078703432886480325551995817647544187892565590772747372783424994476163394881640494993179330671675288621787597973914943584605328415841735472046615430420405150199052275625536665872379909032903347946799515105328931916752368248965831610713829375767852812927542971905309959171225328298870944840413508994427863533089757076775423703451872414092455389560495314750372995646974876254825904255708306342727605168431633640924086258017892438102689031311367034160619752763061429648485505994266373862991766765044131213541527613010746452640199446465694785995665716070613752685263620665704427483833481183741115396570292717441519844647017771586607992428268296669759007525853762840678548629150705551756713774732578457529948842338271622626039707259869174425534446795758097266980839586789601719336939558236936181126398276612172066352842487540686680619688873233335274058088106178796127693025964876442252870427248848374050302895909193269681156844116905105921497026869892219909010219335045658520247882168069921708488629472571585724476899330570425193321652429024753247758361799574673839971351080689745244657659353830517098006921453315281313283039469269641612594724842894424979253928223491514384899688994354091192209148143735876409005919984746145882623675627895217083892938982882001180221505159477920607761676639250741073568538388948390436236028775611928444785223463167949410221573082185049578050711668421853536835111949824616083496858714076031767772819489447195050134570057839121034955800869630958581257381011280619201173068576255003442958297497292491837525674701819350760514016347520503548575868912602278512759803493112412213736691037865213316362076181450900519691869440495251432953914699811888376640286156376349481022267882580504437540310699934914342823730949497404083826870721889563739107453479706908953784558699312519414100608250268825271219131568868808414032696942779354240612463117602285191590352588832216990916020507741351780780261416218358596562791344339355039292950890824291383366290072613671610059868764486713925925495402232587341397598515769378138750278624664335356899735112242631072422296308351928807467160238416785046925298601662598838434343015865783134269051630716980667278618762471638117581431291204525459738367731229462545607572423782792875118639476319543821987802985551420909365199360371255134790747823039728259540848107642748743130038446959161696921087053829687209394900103600364365050588940828640627425152530430678036150211010861961955483104348186313352824259178613300271562671492962055825972939678978600153522522151144643449907697726291983266806712214190646692826243919417732532233212226379347584083041088185818693617925541852780307655784012767681831219505167337651824867072307289713470397405654921665175036648519482215798670148548599250516312561879536797233907590630408982528225588762227437608379944634811566110408059168003356710188934252836736037700786816335437397095753704646566777875189673192338300109297382590227060541393685626739930819991102879909306628280562072574855075995332933033332370149331543739216098968397566036142906745811453846414938619744038784227106159466335458920440884678732355223984936732316927224262086425243304217584990705650454118341879899310096208033354072644911814643102960891763644771566473843031547652073992942242411060640397478739727283378308620247028128994361592245051383625965446879572764877732051236298927454601990887469209468271230253458066555072150316408373290457066578682510268681684269263177617816033484494368415857580863219831992741967458411547039670774623314693870491485267448015974525983017463976527028260966393940312434033771992524446433403052798424934321039069794775575419882268512347195664320862541949034448263996625302913572055423635042850594909277521723969597472375142180639200541732884489689534067490921281359254605839248725048545796460179955879755947941688465532489240221906560863313119471984672397502375159087410657184639328597963133746512229005255447291415191067164646469565861821731472620916644007443472462854392914026099576659837304901799083889743658293595749744916176841315567568566083885869934246497326821804462616921520377356401316374353747069983636805801522950145403961183314586025058862654178952613263627194068026569584122227549744756628582896946557573976396918318658194496322771589130034910893059476585212057585971931808560178661105375224150365554540409388800361261676929903663284140037915831772831308992536971816775161693359349005865799855333718635390896832248041075303960597769490645785626948441433427952714906721939055536433673623025368581413581520392298459011489053977574218323416166333963414247751193593506121044405525099309879752182085272357422763561158022161315181402162488613881489749359422073754105119813543513025768659933840641842408950527220100173795039806255518178435776235784561096274067204196532508394317746660288077920261890467341758191918591822098053729043706859669250845409287510296495765145566151012487800120144619766467211009114335612236032908297419925913998194459827152485097446654274580541657213616192417259459231877467567895399941020469547983282956834173377991115635617649507692773847970045319720337734269745783073763518433758594416162742458063244996729250584864275704469513497828365040919279800592010021453157112735698219764842560676310307471561272420921196720481003715784815227291109429791354598862255853001310338906421296430719810024252724403235313398004018704639413124211707056480611376491202300417964244472992902392489706489559236351934160248496125991429523731825382432444644757497039342845072079999018713325422365294952959076248849275836145035953949910387858034282962838593897308890822797057319579308993101502463861046329742068734503197147517628010586760772038371528371910096003040475441104785723287176622502892309693738528316197531829310028539402987739088875030236394649314319511187799741453626404678743488632809209717380613422747924707095852571759332291623569479807876430491971409927461055802757072145279084379199539209371845836625802141413288838852716312680095739209857948467011389563190909370701736827511703021417189376638609744386529879547860948964690479276584250424918250961888577767414144678718750519332798133627500610514372248460419038354100326047347170263885978342463919889662937498519770408828945237437868428270195471979936545143876995061242511210908225469556563864550703566945374015053006830721795183815582109310746516782516070525847090741722743153461976426532892300539592574016816536553002114551386836367260722435824237853412678152534009545149146590791304370058158673122778867446516910343165882725902535311119535526121427264423240092316774696461410999403793953476767790014136241598299354292806569465165732275665896902645782761847704953960964682550768784764154250149650248143442250703516641011131646699175606363368134341255723932827751037076440274999972861964008426148722614347340535283604881694220990348318396002693599070455246040132802904796842869875008991012075917230557976285053773866117388412513393139393226548502551866525695864676963561330747501215209407081708840676006460486800329258334703446369610997310942480595559571066292981471210010038122694900125682490626263609801463114810179503636156999844835110456654929353619940590357716211963995409583603581897402061220642405792209395788459912020722509190139305416863341681391499361714095473475421108994988098223143183862338888558809627711235141187349082822065615526514978316547961482495078755933182969417611000746445344936914358214599891290740791417223030756553230997131487418027410791278321815562440649655253143283177808514742788429478178505754114026419972622075371687758320298919730534049967792415247704988165660317680333045089426715633032419881636866041003182144130109544202046516801139467365772143862468957072360304037677536041401483975103937075389386836328922836048976410982782918639906663166484324983494290840863561107314618200011472042029833898081555913256954405822932645358726336056874577339035822650751230526974196761116934201399027875849978202599372072612065096030302534703755036692387894203216486969271659397646104956837175357835237522295538544967650572194863822559670389837133544092510770880459644059235161028849836485964930971352379247387506104233243509764406004982425108973462293179970414741708988619783575416690927213890583725623243282239490733489641097273317449787639267851254672708838796444421397770122585825170517078716341916439572379001110543360188243907817855520845753052674951668114903896730344386897599167626005756772760356422354647737557191445620325942677359910875630119691446772991949286710398066394748506475681595022586665665751590553669563945710563531735892337908672305796943399525311724510330738874784556649243533581674621234479779068771744372835223679218911707865057926787702472717180316687145027608358342480197727863869746339647258551727830006424124818323838187926638034673323691455481972543177818979245362718970545405722557759447760189300327516441480747599368744179882686913827679966142815193956486356703879469258111684123399902336771192083134118488617586503219633496919051262016254723948734467411712708409467590851786824166196484122213527136897453788303423232953181521647163141881554427136535510916292630237012970870680256243144026850744620396295865156276579226357589720023113132233923473934650372147643299570380227164683835534655377621880828436073514266528330668375294174087911774772621508763499657857977224832803086554189530001355951255568659167265512474540504884843223076411643342642073975955431191386123913900328211929662409794163775236669824429584466963287890590900611638493180314728180506445294535833168826054137182589413881559440008625488592991318081888925703414159942391076842520043059703059024524896839336303682587233433203650418518666000806710662277291187254837410751573806830523183959864376390190152116757156101829865600217585884292815469931292356136675761616596645862051231316086555798320856081918831643775018206873318665040705027270335725079458715881404650596580182012526767927981178776472410844198268072412666066760737229190060873105795962004032530962342557734611834883567100798712175275375778271832024373585290801588657612533388952216590928005824182099624960650736514006704955894576223084170701182467143605087107968377112176133546473034834350187420156705843888178524048050053022666546191116353425593363975010894558457710338190020327440833461990766989747435429207935271529309499547947973440414179066948897340167326020010122766903744802286942914460980030238820655934555616278910916447848296655393174155443339452109237862490026841649046467624081789398189235804369920983631102506367019393887853691647494816866043535659768341879658672977079854047363475601415205586373600398653607827281317993970716696970632546972035974004927055787362990374090241192233207069568733888484016487122412240565260705669667321537882114358862235210580570830254543922767650971792476518669179759719565333676323123668871886773967346852910210953500510913442452183400303745343075502789464142833086863348387230785242499805713707216593066218440765267061910371825284103131540358904325344500639732677600108318750231901322717159712289631922816987948000245700585080330838405964762557099278663997958053834623574530992539907947557591861319781163705240429894572366143789742033130373318669904510736073723616350082325502036865089239611498576761202846871201898231753747578152978910527576232556138545261361630042617373693757677319727698263327644366777582740772369277912252956531415701350797291568189023159349004722324247781592446250583454056157255035610809024184049082776688086686816417085272115298280369411563059003498973214124900498039776567030541112247389587073681023167440260645621681082412994461895503735740854544281136812044943458419193777500839906333751001913443257669128822763643724516488064803087905639687788346859949375045505040983581440662460219140051962760704184527690099937326263454983480623974899272476092561188169025699747292983364479273450581575079635331851185540234157124038389119499459366598538403094528551364474530041115388971952754331793238735041570068423441578910266426744919589659872640391968506622284896137061293208682254907007998951962954971331977025018639127547805012940985455828947322503273720955401968551380793109619690935524021246423511052418974872240070422247272523325745946309374161678954527488943426457428518125274018593729211948324212531056550166103292805786968733112018484740516044726221768351904788823777933568900272023417211061906108256406247364931692928584812861605968448845562566794167217608794010439529548718394437065068070628219334749399067056067270667162345529613814093009679504805624078689812513826968692080451617764389559191282336449370036954006760033581586789848818652723190205614996855675342170812234083628132433341269968467744542654453918513918191971012979498213733884913271307963870370921538398643296239905225732605853521233691664926104537175482470329034734124219386163526666697756938180532869985232624014415207680955369377561228509227744039033659101980064185660269871785160270146103921033649717481738189824027674504516608576924906632915946234277760794783224947305264655243222462748051064786838512621184689887227159215287376517062370184214525868625331413317662595181031562831334197714494237468498455306463572020685765566973657024745558424741343654221632562326946458366894791679761758378639580529523957091752340106977635561680005786123786672227350739460856783266956679061074431224964069645122526247035300288889752303881107254872275980444673143558086856149656442862316469868974762541330800796827851534803464386104828436934663352948731521561735783656666952916733391404142024575848897982726492793731502477913678105854127146005877275374539676890849402992788817386285796591031110750193441058830769393298328482420293411974071382047561937524537456336749154502372382852537276469303883547618711205689844160209928529174643430295027278658816822774215054227298858070641780921698384774172891916546706279696441810886996201673822098656727842939547762822940361498513567279939385335089923357812880945794199554137371063997885282010937485221819206782517141303450390217078333890300029457624101583087485756180524315064726202408757825543496176396568915466769560690383480716987719940341484835691570135344138883407943187619869989575634871498856800571508949735002492935936200528528292133688068837773972225327794867883121766692762020576553383785256960985316227108857396836705909796170415359203226119053514133260508325563555491986147296103432964877193941742500626555361981073752016712090048494124839013912191091505057615975419838881825935395087090746674685865809618766892804655710649309541805379385292101559852156175095359713343147167151351221649412359844486275475354020378127171565832836353996291950373481550402620737349052832493521677356248509600011418749831874326181929351596977775312447164400371358093158238417848692007781518886935403094030084569606212139889459922625469599149297174778022029601602079068952790369924932496978763226051669200095399093556300767087613866518283234344630498724633041774088577007762190491259113179067847495657434506660346647593290341860366018943344886705439868932621509022966729358470158446149032063506303049603356209995230796583998008861948292616756659324712608189601639413305786942582061015403558150905328719430745292105626201057336349435282387656101395968374404639212007178981710111216297370008273093909170363300196032050340254979803312606233285038727399960060065995083132621982749377429800495522913844738253691552198276504434151283014242802045443443685786031831758902128522072974678233752330895762367648987848807278194814154887431582465809933349067374601904675456266016397835923870450722955115577384729570589809996568201502071860463768787894438748860670637541776887494721701074729230795465230376077003592748531921767848492526640292050270059703709040895979985750091582814451743687174361077111332622644772325012403313925018350298281120134955770148694594026201528569121537713757475355547933774596325650866830437322005126440787870855489052425985951223545647430367255800463763343063156701464008038728105762143763527693823300716546363107825114531312721285295993512340877741241332819021733135830028737414634945637186978774096442804114742408167559319025729504859691104376222814929873393094250260507988820970112378047820318395722613804636688284728244675033760835391027810721693562284121237343417210432678762355731192131129451349461016684132553547934154198198782622413798273069150278452783311565366426659458111396878704375799987281999680074085535041889966265490607760636327394093390971501409780821750844809008981235872991560147637907505637604133603736759322934254759288522264926459165399856424560456520898332385097853409863777983110902783832166539499305599621834723831523388747474081748770141706729405052137058913229654311221221643592848907193677477520052340189386992949455717697817300254023761687040978176010143586641659902977015562563010528106541652722828728284564519287739526764520659637343304067788869970161112532064803593928900447427219174844068125998694396875901419192167991127493370406940424845173816088455870984185445535999741371493150304840602698444823950172178875492965252859084973959058977380798850632739823675699407357243314840722710847900574153529601691536190904790761864313512937971641240295580304701380364263145625434157365177364831289093117186636090296640901084825476012004529177202990074188350248078936174538916839025246035398514281239434236273567581853433438981030849779680934111683758960995531289257230553175750892869233293833360915728665938954491723201346340215239524280241098837481989121265986677790467900589459016829242334129470855777224886695176922481655303039860677228185884469215169942759780478408897591818497950332330552707400344754519722542643528625498341300612283797436679458194994928754702524691835957317789124607674967079901012772100567063972374332724645000878664840076106058999969409966901233033255137126272478657943050618977905018678668009350711146596348014528653237498260856599318688757044558715632141583850350059818018938123321482838062050572420952288808550889151012673749524452982861522588499085164846964969090063269340967581403912944119522610843486872395552986765349983657736106751841025698318244152393060611359980466987072791620914382558941058308779106076731074200648001067769818078630801431198808069018361037525325278845302755143190480775283770140626789700711779071261355038367626980045845945321151392300191603437840219474072317511547619673748458586330910069834637453347722133647546132596690257835630583767174757277110041210586749458644729184841677702960835953585634019785911433673987095770723921971265148679897541371155979868617627551601621042304134307845051291763033101433851698724360926084130225903145655305615160760037348601929002325669968095266451021908399526642940960666426245439226452505938817859852234508452751599637372116535048137175833820125935031575785314148086806891568536683263419128883055109470337182049096186259053781449233941530455507285003104223623492436644330206998805221044565545125605263612058810568490651433944159550855953161337587016150029467585961133384788491987878648441453804848850380512377234338921401927534001893842805443096375120322102476825871044174758869749170465077895037779930919360574544517222829444662004272557321260147286030732821454170858372377040409907860261972111394066888000440334433385490919507695371730566888465033704996156978501948557696917213542229696591984608338932959191078032282451803981408985252418532339072605547787094213282578252399213931849283238499129199232325557295399229208127093638516396559577985488166947986027220583266161789949344564198140276186520475999432419608889619357776302897518997092836074239238253219271519224624829706006659602552880579854983999001165494232850496730871769115423207345013186536609129065827833705384380206555532607911837444852793433780473568259190565948368238028133989865984393741830816727577485243098750966926521353783702669440545619555586240332181482879638873885121362343199691586429672059516392734619756499847637081977365219585094773891462129761913383409346102021820825839901828809571311412417160487751397540528577161796034143745264699524514087805563821246237887564594238136054746418694062977966628239780227238864547629129077125762243216931008319576207667122713542327499293139674314732867166986754619690842328856095191396546244090471920080260888635961379042297320816791693042426915245762101837623706156441098605785789670413324815091760541412584902125568844278597290460952285646207109400643168653536328447977613760897384149714025732857193329349154908293516151727703227056744011864326800362333261763740462365636346966301029789858980646830962494278416750547629839454691975136724820089304458069839493541817165172881723775617669345239224384450451513377438302795866480179478934389592998322016296480856605718352032115831688487750545661045973978570078219587341976710736434046963649181670355905704029542042008568072391861991363287541901201683127566971215367433005216161610036098241020280513235556399401252609442363109547078472435362836565644929721554428519624364646342019008366518028696827926000209091845590741083266056801018973780266461837120899375424672505780431182324036248164258485662484187984032279116649824820291265416493555492249668182268252614265263109113460375096359843325483838300923602941754298938916690196497294480134527461139728929767524164226372313935429142246225387517360918395673425524219759392594247938711445935034883144176385955915411396141238633324919129231810282204470635712782218778064439214407174467766782129983733046795181099552800597607754544016596530070607717807615299785249273228693957205138804086795685283491097866100994110045675041501156079511988935138413172118290124937583304824624665807247396707833405085450069806468823957640766220263677513154478778350400141094326543336868756678920029785725576520747206837582553510918375414471779592004089146313724564666884570289067286468177507296143801349795838388481590171645500918326834795036639822651269871383240307232628745040046188651206477778086528049659421206034883480220480195374638492909042233199238190180597026085789481458630035535730850238428141382521253040290909134952046620954283278375481294138124379152884701518677876041614141066612438558224701986120825385483190093712720920841608730415190414337250189653731196666809045195553663762868588757876632632468913691700486265473236389061073407009220183882872883408610770889442007510970557620653392610408869804751570219840665131819552133979522041066895511262188420579439813195358428007168631333392539174877474923041811409508095150874513569369409484301083444926661288196830075865776085093549152603082069356642778394715050351069379151965978322034812934702563871399579925481468052661140385189993591013541048096876289914301542414577768820378507363923762542880502846564373921057934287446421678977252981117867851598826278474027485021123828709915182632493319554606761394546184303824211329137980699184553505882896934203917675822265850141435493138141889127277120679854613927284282012478100901676786115782663864102317820844869934518340991824229510090675236242805021163815980109776264221452786244832584246261636452774008545345275387194697112750761311574086613304626228611535729721730644752494772552721976024144879621845015916559480358980973659124326187180563841003316633492881423884818276335023059405590960769708166538651049274386763095276952332971538084820298699592590142128519907419271855904162089315241353758353875300746208478501304789501183779642412751102173828040583949279166588309495932365928435887990109121655016579544156489777394130990590218224450788486230061910233611900913844021228302427399661707782679213854839954997785574180212172901180074911897834269289312161775107740980923990525814673422859946435629407911275006514993112614870602272984460162144642689004495991558206646523995849078229649158374342709915950368250889294900064496620592532396134768111896050643587879205562096072563162774227452349266111736160005476691366242658098522281672321796205971146332624275545513928326312244687870079675103503973133316465392096660633190159547675163239042505377811417687491988243731962949163830376172810377515112227773025512405437494123371536689894496947479913223316871129097468095080677702190960457552591509560958115532789725373666267833993962209300598363347440801053772243714541677397681471679056476893876879207739654148706546974944337058518474944722248941958375836300253469785967758957413183048826131646176296366759881372745266525284094975590179914320515422929236800448506537054520027054291228586988314020058559179665234721079495259746480439993981407692962434067848310442761733657207815758143731250142184267767889595138744484980005938687606255779514776217961632840784181550564552550564913190647578755888046725703558157812578723110335205019587834883251863462012280294349789389997828762902452202748343639509684912950397845994299482810663466379444580166843469689096663028259063971755186629325661125866675197103536636215311422789457284538722427010954386045041292952254634027376618375497288512888696975445899444196517226766646973732861055257188429448314461681559004956131727306685171915517200607945767057522029993235280967606458581824061433942026663261213988369657387720009561252432797046940634454295393461533359012655407840866185913378662347673200988107612397260958683469588374237697886977893017862457303955791893982795813052531673785430113539835239613858267829658323147078341809024598899118939838441885368020970801779955466720846241817446297827453136615154050764502896301549300558768550949742966600225575698401880040335859822583707092449271991189669684835032046421742760563636155208783120558534928071933201595971636348670452155980660192170086682345539770365398704642545590973837229605696806634316763838571093186702056912601185480327796435200074152214071047967351890446702921967198458669731167832003845863051898183294631065320266007448096726178626264589847504346087881030423858882449036700644537628819096438366019476376278721063218089339002966339988307556600371462069611610517707212361749165515946570641609928671736227871301843590119025437055607999691732988389043220081305610332014311075058845990685123853832140052047904173091582108996595985514535093177830247036352881890633427113377173977751041859667530611415825220772118997569365409956212707580916895768825242388367454601298303055994139824585370728090841653949216843275871224482091685937057250385503903661123586632188350857333945366834128562762366907104285891912183820280683623254178302055447173897782536391311506492315334998524907544847225720213413513995755910454698578405704239543843627750377376375271399460121811815501304127889134994790877137208070493593421367703384934942904102704820255655138298664195469892180829584028091497033188854006134737583544058726126289377980508814067813845730156151814751533572220997808902423247595879192466790634393474474625021953089352026847372001426295878905481427025160871661588576118624695722563973216692257631299981833607708272295447830081240628833779000593369682247917713273229263689121915210544048984277452082673037331355546318060300862379815049104784894136561616205807119638852285651741346083134069977091896889996485162341978800451839372877909221148683922114952984073854487415791081438520401685029412800149227078473290094962598209533770399726632425801548952038346225552025221901640408169321679102171334946061063743865858092220805998813199649283365229992155890073361985210465462575690032495835839853519724974185191097552399968145285150608651393454395918614092551847593772193942353078107940302962992879568816422652305954673858708878932321995284113967048474793553668428409932984839806964058419142586235269575129701973400766758412005283141464794765108482892569910202155764281297733852320597557550714680071470802070879876115017189708876654026318191889962084709938658516677206949190497737326553126883366461785685629964694835859574938369113671076376010369950361498661031100414337764569342325916322117389580645801658443367483411697240591432839479776144349030626717371405023458190148044829479231715501937987229457680289162653860170438885906000655489229465271191926212705144143641013934643443578070921022609120069981334970308885435832291320476265514847896051720643431658651185007686234830165831965867418119427636217031940492595419384235713267992997749579218363432738637956218431184109712889956193007917350412708574425767534294839366618190184782980586871239233053494755398649672168425303473216951644096772212974129478506234458466801793794499153674515714126698439496432500122811254796751512101212345069320493428681303143820823949583931254476465126734939604023597624034063357859761402886352094668741523647763914527401229906137640916573164165161144561259721005481180408909143544236266400658802252080875809676699817775226213672927556227031856977020806221290656951403663258399460163301450683510110515959541218835431289131853963158362766567640220593981129406497324605726454888251951037646113603086950660592268406319110020332037199801519702405105565921403238690436765076979233900761934837189300760914818863676515913832425315618816040127346752808112550288830974672525828259256035242261307187035301684512565363849148359105759117049805830729687995301877693007858438762913783247943776058793771833185503468807065336325414435036782127603524121488090818795526985464502434330738986429426923789099781121554109243317002058269433796844094518310690060542638938184051287678930196172291417220160617471999690164370407598499764802700382425756778104890515075244122372907136895305699009820812002071891896731037577451928798229319200378799217026113844079188218165228613167463602640474911735950299562759844707283083836866739250958660642734131362055303347969476685592754582495003665687693745380581777651584985938792749922950885549399515261808841580343585761701699227276975900176710784141616745387219808652554300676647120750040127329985614550368193853303879045634312203113698209670510006265262224257569994274852753682049813742471366096124117444818070676726919248048829498876752944926032999265201755720484383376272569386722996641996412212171458906978616032397679065866948210241494918544194733593335512227589786029800228612698887096373473573348301543817183117576852444709520219086006572769701430524226958471211003015738360462442604495418120014180608059162601196483918752969331855592566156656005158519427011484876391730657848680672079161713181591075915836271014758221822037482995901567977063334202524526496358235993932751720180013737339518667977587714491237336430708163975923463052528209630192742114495944086661899476648022921016106206295047012471692040472753133657424388042559591255564387454657119483035698918294335893127871496374184427484441634157976646640062379898093602809146600836723656920075419557315351478200590261324265615416591159263460766201219114717786212303564764691220511712827284339354256813638143685698820423001074735471503149983129283940304864775208431059711903469942376169722738067881440484992817762146097432065705248569086820182319873489312620134150015369076414510681151318592779008591825680145577529185927865512280146776834575925320567784419307088285023792287158079612582188656483310940660326324680227062071744941105043516381026233430449178594011104701700784040490428411408375072384774044007199536524731157072091797947715750930649374442506660079137624712838980965130396863742703054751035013258167534551910134117975520481515519187149899743649912044892372677366873543595699714093373686262439109881479878061553427162409308328295001828813578425990687567834818148806462714950534580308650964849047845499169974832622689011435426181980322307787014244530901458776253212191622374497070876280263447855361235825323093688720768431037671781367610277931126159772297092883913587667754269867180916195263001910719857079254616184701149872931256465487884042281110041740087143529017238597066525783016697279760961629778121445991271091254892342063104960932506924481437241098776176487206892308529247120914483991395156899202614992633527956880126390750962615624002024717096978087835598243355635520643432089871850958709681274193176835317592937290211764152072602361143442604851273080865593736770232638171947191024170845566708926985666219620979628602150537108702979372768534384947301772568425642069653914723494812395583380359618237256205332407050890017776422496796539971736641926443233604317965676603090803022737190403955459127356447703296101097438318060104634891783295127526489136692230729023976073114939986042026025047066655349315749241662807397077549686916776961990005756465271907490726550846533851863269271722317979426967400333143752377601248137616246409937177168867831124983984033088660195288852165070778483554195381905652294746965245644999717263760339249921546020852241068955030719950359110324582868142067852082253859843883772117245093888343334576130392288461957879042827570797961785572412216293022243517241044555292864496516573776298021910649033442397888852755967318292767085248366998202804699122502508351642925164418915040036851126757922974752281000092011996858677031149077065625318649869500979311746603765988171278672674378991849471120820835275754335620955340870803876737056846442559376454909227547252685871505528253278257146986287563263471593731714199629987846324912149796850854679978012395447839826146027298074943688104291298999999401769577153905586486968594370668974228425019153745540392576692951693251762252800419263066166404157887565341869494172116443618284586077677811484631435343802253988597680300303070785541031098812915899095567352279388927685575697783906879960608710476566445791589315704456636532993597148371387774254457887960709723195890599799880188348161649969375048716094599505017154256101828225594140180026505412201643415116032451632816100825194480085817639573907003477831771109207164450824180576587019847441831874020722807119992967106312777559632810305523594925764027324092032122572045449209139716696975792945674446572237705290364396453287890573962701897271930783636212550368013332158908934322417897874209919420615186584366851195035379288072074782359834168123263573625974833456047253134890228113596291605666333930834820981314071485415233257542720853964436100813700753758866740587186703355196712192037329390904858174814801032129552356321094417248467022223979016085045050106806322485199980785374094812149238620877106395828514256590310796080104358298841972925206691352077617643105867346546311630260100971557458618496333670514051499062639920417098622010458009185705079660251289242075482940234469437886952954618282352707614503793822759964957804885106533842250534844647451650590671140106556799714850233277339217592859598853607467568494511848711943170053752479869849587929527951690707788675836704308684084431232365654830153387876489523090794932102045953315826430238614857862480347373088929541935689961601028936373625742313387371497996382376657996561831224892628724538250333412673621108230717970905670790062262687945678012098291030470676190302673358590220256867034864627288497769177426715795440290647211566684585975458753140775274858157719270660766433209490708019552487388910089813112956523567979962864160869515777353056444834360689363850448293052244303166608747582398423391310958480766420274014321728443200341188326197799686292968465142921734850042073023797034036920012104021287564122057012036298910309814798667732370923936698896878811619294864916608190033056581899909148866881301234994918836382739371884842060273414212027506559360814438119340697578614458985502857217722486930079054373542353411768504727076160721878151361937459955236214464920050088817278851685375174484398200700451938861022383269351306021369914924841504596229818672449010353193952957313110319755155056732715351776686531170074612324265588689976124082694463388662599638382466345885490557972825712745958082471200891147211655135487172179177549141019809130761002075897645501049502060286960484769437579548056480361077692437209772065699676057047808432180437475158538791414341868242161979833057563522735408569077980131071915753435543003546754087937062150823905729675415127609374909044293214387698299917978641141367468500592363105039499315276230882277456968596229322506051916545525686530336275673939351239003763690696110186604003678228699393782800412027399080604484500768188286528481144750155139647545600728309607136770940923445589349598454768280319006478723708180241601426073488868211435882951314941502977403092376298279900894216170796039422545606916276639363378329862785114590644099878083175076345234645756725524898981423440728370025613833407842372227018262809133535125131816231112890739258777934095296988642468216691146695253317467724202428951880172252509434405371078813316129216341142949596637024750189284441211343527028579970755754109970695848230533573663758580410771501834435184502929380717975502511959294542210041012925202374133114053456161959341668760533683670600600541915069267469445086417691508815860803282605505376976160246201420964447043218005586002842426329905542952152433270871102586031119002773306512916364869015472839593010769335380521688283397121836097161245800829197781514681574754390296298060743615298712375609495334959140986160963997111666900439906907977782780123129634215156376326081542367495039629046281899577342271727714063696017889441377958111613943236469888013653544201706309529584226450671212990616155325119613943804004027583119561766735631587217205867643110564022921869082352908743290808228049118734479961437594489441908758652332150548383846934837945827352025909994776274206569196162915244674436650360049192613351856187584403546514398283709497578135397651701723075341419991886907649695371105351231818777822853514460692694044233202926998406588037211968802448169542110374783503670414957278060109620213355795880414939381811764212186485536378345639938742006487044870977815997448744200984808569154405862282113354766969005976732774073631009428003516406605914530897260839421087005206245778324230153397985085258394116293589521401074506166027871559728572703022235667859254508963928556696011377762807038765775340775519203921485399802908328459818127172702068308545535855051152564538386652310654736039392244266765151667481561235971614210066898841307299206737753758897014398334860199132452390819611915377795121511098972056456369354684546390341755461215956430502621348198671290870563914798090871393631599861392862206247676337419944392267830153168498472327081719429334184432319511136629770906777317065128518136782805460996828860284675389706445223434790169147435608920652197765302354479808658394311256697357272300620007351928881992320067472021368250563029441101244882338323060419119711855048539554550735969572257958800361918506443583615633101854218667972891719693770259049417599782201057408983573790116793916418221513163614653389312293854643512871110424084894463096169519451480162150527666974594946660205283673973874280253583704298873909892200966868960745980177789929303782772112152379942391322826487894262636202848679997558773039671660743697316840073022380084580758248362064677508702077205326983841088212388195346445442689429176823526235133209871593756269818003875984698060109971407977618247442990098503053882755501308995631330727685501054553272122866451719761760772655777090459886299973169159116566290891566058825025190239889917196118951768828565486455132464256433512597235688454706096917958501721797740862366788916119441492665588711095041768925046008041153129402391448614122127898402403616180605927554812038511332924683310352239338733218083588349222130180702301538979783009840484010537022087992304027014784159589255875035301020534601053985413751148693326216478052101981992646514082806467118553514584774122711644424710498952994713794624693457363756883147458906541858161158329117743257630575407605016630178712040795483819863648256968243368879332015608520689014186844345741246002176302580869645675676536239731416626243985066188460260765592947936304349990166400719874208030204460168827726729684865634974448747074430263155130618663979426839970173525013835638279964496963159806643297379142511580446420446249732425230774688581835942537344547067549387956843232790025399212960368396701961989398481140188107641345539256941678434774902621615396911459465506265319468072821152626051865811365795958163097502216471788783030277148314470068640346395628236122364137479206933439191294480420776281516369368311522245354513451797373112627595270684746100401911878014227938998701288383517914373679842343159636927535840496528243657991714321750573615658407393553783509088584995418752066394081841406238944235191809228498716155599537884464593447230772534379539593151922760329765711227409403106516181548614102910425231829261352256312073808593246364996340678144713369357657930858272324006327774063138136679006813607131149104077920448201554890865630895128053955273391187331215548766547408532112102490756267574843754268403789624992911306144307870747207327786515749548268244473178506891935049390174857312842722390523692138091738553896533056098543603545993934229614151175924326438340122953874874731394504835929621176371652258664281487023897738500143703360976664924489900438865945302617229483245280298106593919665462698398282516654851922079328838811441876475740200322021308850405186206162669597371274538560442853510013604240566671273040910206253685322318849402404387349550512385995529656118416287755534917702775233872197853621514542842489799436120509727332282894300238542819252820638443305993378713575603659368124924976011238856477631875032339331416680235317909567422457913626113682406967782405323767933855267412959405124276583639669896992945608609199069887450587013806932983041225019218128826014086286701119069727670643066736570991240923522389217517535859080532679638624801854868892587932453158634849516618272186489239262635887845123661696834222436542357299878842992745149907024279627772374282050276590908337660219283663731563950449248351978341741207467199352414690611981329175792869843542378341211434103057318018947294832524181833917867826749853893669634996244832145320870656066830617958976600802874874302790765880397325892359471200323677734759608302805357667572528196259372418601117554143682690698497087612924717718379710668241639123757392331435113550911852789888156673801457708050417075819297431617729569029948725443792886395569918913246359326554903566470270983824299367398180228790589263691082699684744448378981873778501697698148142374226274658801046487220607909538028245541378879980048448145044856669328414653192191801899507349749384187704800320251715884760900450377950928681095324197589189754715756353465660481361177613402990075108801980788861303737722799415127160441221498184162589018422070868005266620111513716459277222534279105808292745407942270058780976136313613599680153417718132777148884495098952201568865495194531257579396924960794552519273248447921451675729858770165536156833530366507627997437566230103927939454765153362587274224057205199995607384565646585184235917119960939491767851339748264064900667750208554061860258603683448766668562086469928637070418140157029552544012227957655688217530764312920993401049408602031687569709103998780008264334723699305748184345999807840672752107479312839861497152270356905268169592763075891661573276271357210295028288682011220120622923759968040099475020388669506335112972236866832593423985444172992458393837559130521597808617918989445993730422796017135758062613942344756509394757472806219375206884823808604088403537909190076055647921842345102233854742810919864731833616213514034043004801001176211849214792504171204830640734918312070313383426542384780067066230582372211205356713234084320466269983122604679356776879044430536665562165416579772320340199448948588922709750344466735841673875114953134784136490543750006124035274325311731736208656543259957230915142248873420128867203447347406733576507579190812373384102038535664952208561525587654010577219596966138965129674605041954401188841578572593981796739965896248482644396808545024852743323267169876759485284351457452295574224827547670981600662660076455042862649628187769397470481363886705503363390517521317925753187113996023283114468255524023988978628784831336339610531956078228059608772563481885446735614155870450751484948780800067552004427436015639445159948931288474648358168178156660331698191298432620054370926335528380567957738476595084716587968667103634028271210624881142518623215372010697487371926052001407933591980615580760428294628182369753153823589178051209534760836544974268872704245438343743975950962246073672754651346767217039411889625449595866506130389776644597054061106387952684639320273254959317656197351308102621523434874100246007039890666553225754435999036367092497823996339018238245399034918169807163009023932878251657111661841737067647419934114603446097438644555257957306628007443130302844072957978365611061776246846342228000493229035595196070284744100003416787622388756208788955974788626733738165985289376179640525795696649377956432308755157970447028010162005339524370587751782272131554255783428387175663812840778629362903848083026727736538580636709891171927377644943510730776524709231094895952844570769809811365450234915186799989450572809188951632586836575278474391809654065847997121272208523567517463112360228654021195243431998580663660718575774188078318701719956218829606464125458190807961211130028290002728280850050040023431091815402259529666014108947266996032503942360600623586661002807023702464881408039300412399478530698511751988886955282388319008459357722302427144114215805027298662796327226491787273043772202061892817852360103434425459477507636725913349659043008700494589366103937274628679680657977620347798156128654573237324151828381752254629488289625174508318965056650235167576384479163808207746114955993769447869701623473098053312567919212722629943654625635414365860831545868339941804761763427316807522860269351590829325918582698475692221571733189008011655072298260622020697811425723530911307406972837442725433808218319659309762404615534185219240352742445888088734937656182256217833423289830443037505817295279939067411873099640605967349925281427313282713419718582252577557127280247759094254256578835313352885193009705417197229747171652432184345308682852493464369272763529488467522219810581578744738890561214948234341676617595706246430743838849386355125134197901874719681509400708273826849827688123906706285260269631562920276657799614992299178212574752303657105629028410333634594005821929725805365335262178465571538640896662563377118706914346052580501274721839068017241241372284859047037544878254066744519190502276959047095043965736112891740378774499023835579530543467600505841287813242404756541584505108714967318607127797229781873511709392336831482880245136295333933982812626924607059702957665199969390103952093962573458143471876553473001638988256315801425284093453159916787013626647226799364331170713489914655181999319221022770454253494986710404298133894010170288721633654444668659119400464830625138952648893467342774389584435707970128001475109258501844748473096163433353497302460980503780966291287012156142399584818934183123606115498350077727457423703871162114437199852268472462951494698712211958139034024521298380783462098855408141391180040731197760977535902868412477867307118790455993442932240620341387373504794264295363559079114624214164702685345823038897695648650113167074803746134354158341905397660056824780371275253640579090710919983840694453388339485020671443744087182973234916564928975470710435973805936427741740527071880600880113215053811164998815041055534149521740194421245461206624516507294907096008081211288400441400285887742230517548471476725265008492814589493659892163370071922926152330519100473859674345580643844424201719074673315168747907830415289970815233248261999844420043422745972799878947603668993204412368126873318951504632554755466269113928531222801285969006305553430813648697239434456583112196952396340203081163036736258879304611532285307460003183284340390064328289815928096476856473503436942683556292519342091834598433933878765221150394575834206366426036890894993173900280615715384378601282921618960874218972967297138361669020548557861696793192260835674413821603543573711777642811909355337522716722684285011370222057206313505626270617419721526018956337803469167273616175928464273699384400601387077631569552248821438450309454478557877376833379474685203181189264658222352275527293425774649145788022500976950987122680338159767272141076127994387036146200963571503403854973757252893745078826571515461329465865521213923278148081447428049558750793680345871235208486768800902534070454555746296407196899587064660675798785114378365374278099631621919951915247227053432230821604073343817017255218909175158703649523353392480130005958285972921797442721863404088918439481553217931764350988619933791354698996353707207629908826498189003451194875382589567929062635929316426795824383974651487593604487477585096201650367023085944288121191947191659023052432177822966079031154329690079178634491597230440964087422115772776669319086343245433466341014273368922581427800416688989366490559500126879877760132675443409387802187782992109826647183270801440882136627934952403313657354184090548536615967606228449896069490837629670053155287585873641565444204050038682661847320945275103529929365432349303299469248397106741324070785590493043150355720429281033509188544275642527361161508324522343287967847152237260954896089490044865122441979334756775511564632906028363855910807671906035389217989337369012927340957283565228894720269533326985380167082090374281635717844887210023569270717879983981217315740440040739183628315959525887239116987469107679194236751836343653179482964598713701778763728873980597111386134949807271917216643046304345470265168498724264514782852857777398587842278833324198839287889167267332844386242953895412403251576588658890292185890159635090377600144197609793355068899648068774736671951482851823608154639605409460237054560315082561556665901096476468108377700263034614311837693573458885879494843154544835671441713316498006497244439616644857387925834267020071892623635614154886976499169820277356904614716735148481411600710679002044050926892515309445120217277997522803140165804546140691454448995280565666434317500014800111527248150907049740257226324574432135086762915927621618984410732155621964477069970033973177984987978207937898439326830215044765918699740428027100249133780580495020483685151583359537239083953917691484394269632350302023194589980211528080112813379522668249939635791573342721496505047457783014407438669030357641287500956566542060853776686618861747952736443727476046269248099082926426880946027888495583997738522603999681707613464858868995431251297238984857285102188927847460828329171712278419110339395150623945039195672642606152927749552968572309044087614213299500465212787457304074698734716390184785300009995062649467798780181431505501949957181541231023879346356927842708364600878574150163810494251392905902605960492724039125655697021704545611517252238937484859211649218885232659457242075494824961667625697129688661183864730439949578286439717011430825209983308960289374100748950516451616051658090464292884252061225083834324757691354327789764581936668230707722671168537379906632848113808956286637417856681597149367267260186519447945676371480091812089366508562836344579656681997561027271765714579409379411008923413331266565686052178942609764712867941056001713435268749250941349164637449889510638120638110408366048704641043294176412139888001081563555572335042563750913969498809395592566172580549926764463431444387761810516962194644434087462174848206382455716895664683186097028260462115003906880873864518833524918027277364559199198016058156459116519147305271259171644567230076046506930513503531631733744940607270213888902554105990248335934656513348434629490204599760149317193236868053091739599760351913696957210746535321669658046149187670562503724975462758528160792411003703171361341092580578517404249649359839437490276697592038573004406963244253434681416891460715686340813525221182805738758207174747936597583514387032781209732772838027882793753624886407946054018725586087541545549286246897211325559117317076272237836795306692347131929929487692466537421617338207420607959851050449691467228305034782359057849087540523153411716432154103673519846925306695535937591607786592626592800186582123951452896341155340655255403802020082327036285543146149448665871617604483149143511999745043240961999049424304789177777369650299795258474824928974078647595579101322568923182301287476297787992217754526682110459037892537836571282832939067504739634468082449586871478276402756685045908653066915893765637607645512240146969509561774628339820409385733717893325186738592130019479542736773519503464387770403335749148308432718987236231298202585860499759695778630453918950809247255904231122518997763034992440261566001169088553318627789009018108985908368543462981085551180315997217059461828586723466789652038112895774808138108542411130937980830143222589685728196544863232206614580150189967360193429392436126897912095574979502839318236182505404674314542945837819708804307701108861759977175845079928256599544717318730977495787755719016088454893547544537164058354757620157088550358434817080106571708483683012183362724243818265361472822179101976097341842386889850000477203387218446596547987068846792086714095241995130448799810625706600592987262276031487556921738663807414900952209375384396370491945006262648815638258887413495517337245052676788189800044297444973380973936904151245976374623320407392789319994216569724190412142882892264488777543650527304494217219418327056236049938057822017196562786836871366378433643084902338225599712452796881300331593977853063971138222099638122108313558527755631347532741033750998363128916547864085857707223525389031501245190829550867593538331595635718574393252313417682482024789920412090604569131508116299267102263973696164646771046027597365070820669007359924157832212717788002408301374219991991240065772533876379106297094160890029464283944816891230699529802881946102405937631361715554035385871310484340906550924385816041586273776613475414050316011595249043501010192922324488203120680111251847731786369577066212475365620638191370485903158221645619052140835121094507773066588705541084344057750625108487891534047666197987530563993164023013031791169888107391483370059749581768012136514256414711303325743260913137701561768910973420574912055488377452846091300323624073685328093701157559694207265448756301069636658679950593737637996566918564356055995844362663945989424802657839870266394882209228432947517814310412045874012132725723301321178764567575055895271446615285938008939542452122096264014443532737482788143042697403637596428038659108278529970915550291673334192020165852374802172114450725090921023905070167108648226057173047971040206105985506102577702258940803019266453293309102062134050400483515494322220848914924568002341917217057640676910376535894758817642111387510314061644348382892259212677916754233906954075935303560346902336211479220796659075272846038323681324620347067266789936498749452312571920639139084533073483432379531311577327187862030482514766898725993100250316188778125166647371871141634755448965508106281228261636375713141053556592223103030060959138314081890331917811533640117769568629627063371130073937201718554038695692727212843794885862034499590410115477166432916443741419160337228212268092830362926962373006584694495493011065141976951072229390932671515824827434149600726970761514112909924565280545208549800016765686809492439487098702238945677750281575934019017834877055445113534885745139520324091994189734203242217106807513794930428140956472350425582375849513320972086005182095246833064552261109182125362269489616854199779372913955736445846022143748624274579045783967269776272581507876646358167188363035215637759725980129990744138428487450798693492854320519842619897644573775109318648310307238571546064708278219116963689366057605610451313542923806931742061065580873549396141996038852113124529802119097144686444753353380350122201643936440628895899162324281957282712522182741186290882212941285064555557563853136868554692069206713627245794291425558885865624764518780299525347990593071356966020798936825123147449866268829754019537205333565014887474500631563409044016365416116425243256224320484790758435761518214424030080599138813567259802046676816136851578012174972417351216632721554570842157797178134227075885961537420215256305043106973839930176027807245291887540868690774628003003738305333581296275597160417180929418534001209280294857774544686573461751226591008412650041930584548293748906365101274578766906510204831078197140691607008658990899773493021113820291001242067722877612367732828589957231693672597991388907246955685817589429235816536881528200039407752583018248711239922589242253801851799760484078300893581571488037342254849870467046491461669408472016879007813371588809822076345192733584012509153935506119221281022593431019048637397351680658322343085032596388902802824243819566530469160308795018835226857986758826942074714846326918826723172640149923404234676350733981708542832741252314284952840157917967228946140094257759658410727476488815274500881206714570642617166148436826777897599826913724667241874118928387882575360803837019635178675373872651464936760744580641246297123028358236598653497749193862264887099186896212152778042367255047321811879924977108582968620742900339843991608897809535319758604231344551866039486208730107063611831048511409596613035343421511540351843198880259567829543657094367336907725024865591694461875202878480884636664441580478432461142308561652560868336403450884945963681584650958380561276443105011113912330879425376599837429616515431917862965870375055598144602418815668812682570009988692954740370421370151303278501565259634707607428641987632973992396170606727097822583852097578744893568807026172221510317417826217397237815132139906100221557882911960382468679743656687562743588677349277717886283824803496950995243964555595511397838379217902117969900215558983824002709922319941894846800450844630450809366647636383347786858806728937174457189350611286946284360647912988738658568182377029377069545955574388655688934424827153715631291190488079314917263014727364987559073908246972325667353156521842794479680790127365066911510394098614255627513714416176505357892001521399876594703069818428892628212647480974124779507225343065914621718260449842611373410924349284687533174069919504593874148618101795693532394579390700301225570858234466010826329562627826644697375036338851113363862157883746890163673074529259524170810257100954959204701215350024601932804567684672951531617813053214215819029396567257503054221287240925889324663653335721022714066902025614520923010524716533605732948190978049775114709267444466455033361415106520554538562633743096588707592577425187041562991433781256875829222571254859472054752338622978167927166158907141991356946292134450800445184818778917256669283044389098488728164298276998455378258928831029614905490588631542449096009056719789078775707956139580363429046599986877761535667701876778781796300875618209327274481160163747955663992731285320556701875231913396619218954888686607925671190476734357836980967140984832651203579537393933681027828430857238131968251405496414586932518510299565813351651305326804728232651390750374379045999409488320371985392896669427168996661408205712220363625522623536581497510362240410944858505609320398270960330015502833694085072106630426261920407438144170145686654974870438238152041774873747961732295591135425535723052663521724835574792870427792965485852688394793419734867056224483106877611021018690325146581967297585497435479302483748543524380489607803695486107033886427636612282145470892868165869200722653333234499217101096439481654769062009514879984847836685865573061153148704675510112017060887252828580540148960878885690938295036873352872795996001718810856289195578441270293824673579250283333555201482387825262881002206418600895046988397623008196647021900478842822890278464914583825524116901164236690789620826071567784088944822416507235031352074795432420646550034720273817695195875235208918077201855853947592935527998971370986957898433655144556164632415019979856150885179588885825200928014987937278677583888397010728571505455474679130391034832583043580989056205016056796225614284611467709348795838978195394818215131714329381042397362826972968988369538782119151365139839915386958715342200813874260915130116550009476022295226360807175809867120538758952853743512617988693534952158892581743549359093731461775138264910478213948779467574847128509600433474071928348324506630277999254253165263878418562429416526237161944632438810647831926783104336748317162257869636108753755804490809860424569435590395483324037912148879998354919942449016810682759996137555630084022014709627256296087331801904264564975962468073100431551965571490399982457569982885497456056543900439845862491570253967128517615059556153313525399676709617560736069619151933669796101003116590977746160843916802644577220438901347190511403738740765427775988171087283600253081487185913180309831651813251371340532384802228257369846590766208943169693571899259970197516212101268262059564824929773712044767314866325484004970571228082282937004530923622363346994140854163563914885438180481316336804788880200765595716440576513129553814358866004904151648360993321390017830666124819916924968973652376052421443616226573699521129035761366832378771047762975595016153937010041779447992308215550187622780806182058004015215261017671518462390097828223332766582377484307061503711006708188733103853241832682455361537468085001459489309848370546077708518796858395145784079598628428053262441677544999263681266108931124512401200334769003335569370957754520916998546759758530380077471647997564393692508215168934768912472392372647239126225344626663215246428178014336383600265904517380958431695490535164198775643561489826074308683962059073617205489338988836545555937826905351318389780047615898393690737722484708238826597562021851548122678216489401525602727162315284548780687191229254539397483216136662126371482757976592286979588619140496061896753905109223576806866075644280297695142351950539014957142547572538164980801323334115227729961803275973805348293530032423413064780964164641404169980673597622111054328009642273302605319498725417686347560900419936054187358848051048276607723356148391896184231502077559794639909178387724000397135230239755633135090741360987106458115093489294645647793283757452491782747091505137801860958537174672663296050113859712391902251694692334455956822774824908699451156005795344836961093264137215544398922412343828337934019224147810493605286278574024745345633053648909825744144594069961125034172192358200108127198399521294169943924364841425469611225253260866448056483087354004653224782034887395228210844303828561263288914376753106930048253469656569660472097723930104432250673358957479779110963333345264435911011663772037855948366282655468433822218409486740220579540927230929755188100269044204047634140245085715760413150484885036679141190429083908503056313615420135670037495253046364629281307431784831846972070815071640774736100984324560139562338411423219684590157618132364584520023417382677421047382500485741606583218111138499514587162571757471105098922211255617238860456334397747523447911624733474778531598461141549440246476867635256970557244928723425920746944520076349381574795386009047408648584893429302788526138504071000187208889562552250916479794238904706566469412737454951604331484202454010308426377379096077346960945423047202321834136981719840457557835174847983650616145084063825359614457648579604639645807264163453503583755143929545483407735920932519698689091132827585711950990948695128912159096460063400442195241057027714394398995438731836573224625121651102956828809825709420734279060048024777448604916661747824741033109768381636220195458968457031850944083019074652601032521598883959576513469372903041932613167923298220596857514371806655465398765473691926874878002572651590241020331640484405226502133308872553014673320058366897722548492465755424754058876858320359808747594435746241551475649528695523932331730002356489595108160265288308317274386481132997258463247208614407536661933790939617847140047410900767421737069656169730679477978215782297785201948211648700420432065155233205996042445114897174353959186166745311019223499180968094694145549851671604982222034013327648401303223130418279016449930839550926195016081561678594667461031856352381579490605778619084642523748154766822270778577921320711032510253598028191511770594339079375739161252405466374738686384328464535880119640698521142623974879684845694198900684660038978532495136284635316727043084947681130438658335384751940258023732856610392548996167586190469564737671970072427783085625285570663127899797516043842307168816392490945873770711246146746930414535150927918688717326706314415018970247006758241070318944873685798517422515849622993202739125631373702847624476328176677994864581423866972197952224737685853468691880610893301573753423901731518669468421759731182048868981536740151984894362291943949826641311167728241286666022189041970905073463718090070226819609499107579658645255871653939255330704311454257131292126195309453023681889367763832758185379790860052998742681439866111134393530269996965265595192021524948028531216051028300315186831278444182691958754875175106782349301530241592360999097196814698881566899431306424331828178250685011051164289907196531335916464729960178163827600161299559093602933234994996268399251709264204595661735486187119390851077395720761668420889587527743364460279835292483016267213667174639820967431566611421818534550099285297431161157917493993193152551943225665203735380385185477540951209837919095941273788269065610460085606524457113449268694448642732565162365011761168656608301768749387448927711573932453103120862029267187043731904178001043832910634257858647632462557149366875717401344626165755261068850045914768481867183378923721587483392333638363003529838434707424720680671362916553630614381042771730338096778837289444777761976768873181799186878094795198256385020833700951993201463558677624553689617104887904095861543311629454862348021320486877806614223612137524756925551272924274292117863451392155916667314370856518181275553576997688895959712756350953106906416438006368367766036920646294892935425694744123218467209984336229467605760671002451283276042478508552211460339749989097658575058517280494176352295781449617682975510669969628151844147793941583065908671396875664543155145102556024129341573667671846996632933360311052005868316757050866174173523239837819871047390839315776995823899934608631916387826067594305994634525633320327598152939426264033101566768788867200884981619558980835694172244816318000787416045652409606204212511172684390241629839108639767456354085516276409642929146843887633477913476620173461272241114724298672920399294009578283103188850557199614178116062497307749253339742269071656991509396161762542790643399988286059613079156636250831510965563444109644364475768849789517136552941226396607472329967471172086721633029275746435142131543378697068993744153413058388085461463038266557660979756840767034591440280531860430978200167824520630258210718091101924145280794944953574660511711618675763637650409952107810434142592368342516625801955590434238669881640585576273168358145161228410147696793403288758312176525328863923569269407360494522828873259736143089472370674419718759769460229262622997639627532843325553350514575489419498995200596424608970633416306127916737843988147608381768430972231741765749924229445155226912682002667218425636508721221764145740883967678816033175551745009402740411187230802852191000778197456115536537777063672466564207967353136875635504059247993183607530511556133716562494931098485721515259705511781038887174997624310501847240966241759148370803719863510474115444825899749026254052761606091872339176265731532122160067417708596029493327556262609936966439014236431869349999161933800741189541144765493246106268435626457640622658623818724301974688450051163752573198244312572448523951497500672858098979488896410528670475743571646120931970425589594094654001524684083637782920589631236090670799396686096975719103443675713306548298642125236424308466541218987486547471542411273419129896922859479261867173661585393679260910175085583401775010288380334355494771672144631132505834557587428740692571786611818584707603741161469579920629046645973909461868290246623258166123572542715769112103857478280509557277616532805652577390216559741085885005120438736861499185842856766768288951564538814427363095394350662093921541154154225808506429497682842609246640330041960132821855639601265672673992826638044555473222613075742162808491328012528456456492988517630453769151169372575161070416889616886005725699236735366915538027072043934118128975334798507754500261575290205974744527601999190988406890915227260843255175039162646815159106987272275362904612438065941817558517523832659975545265303361874968347761326316191622962993884423485938652774763729906244757305234548607079588879878952966372532969401804963074461440841434419216356163951350790018784992325995397160032717669188376775144627327977323753016983719071742967002018108237359519447181018525924920978523738588639593621800459494130060169214914362532671397633407586380818740722671959635219880118729501302329475871249479650730585405864083421644520127814132518675016346212506775889960041152528125171278581616455954388151542711886618158600216052367802217654886510273523209294649951928332859694098669853810861911918012878812649019860627911950672064536245861196143174624591348644626706342913819016735290967777172741651609420948515764436474825389249760826887461552428726504300769215070686312826480042097022876870991969458589345422959648631569006597541894642494561818316648170052271241174989844283456921043970617362681141727097663809482509637120386694228622313236418406206824325733031227910535916075469819891254140494901048803058183490642460937789103485125688441967026606311320484857620573277923969310136153967365285814355173550872022991578239658066447164350866496607414456752653259462571411802993289176279502064685586871106334328720033379216084730405044922261039036450955223966715404560235568691085968753262113702416669611704450608382880538670610143395383560320188158799562730371840277051891969200305372928275334831622837554270940233769150674627570591263186642864647565173468490556694689506935451700591645869235308856819171368638205497214634506590712006215902536500445307465268324307095663376101602889825198282002011974319241580547936547456200895713577148495633479584973334880694750708751241838318429281715500103033657238069495422535611161910200745663810829935768560635937135648540563000350013525065956309774814356088750863169807131491882557590928266805609694756057027772277073553829879192845297731103765527299263520376075704223644849946156556200739001993006719460030170088838471995144953847360191226386056774152192721951324010225901980829562563650577413392424213705894867656075409515861826801827419615031942036960724705067621230990806876965555971636015050858681517180982674840218845296753508116166467368414772725910908226899925468210457476338434635640068073171860953646874636394656946102507540958732395255699274951458183102408703611231657541544292031719845401419956645908944987011453371763237529144906881761186689701437818256967949775000296175280519508210712800685519830049046079850625529344246567180676661093236839486057877445617173762784028533230315021739727503928926074574441772388821893487148399279721081474257246972684913748781264048378870495352430687788716316165875790097209090457818540585680536034921863713379700450495686454090162009997161351168742161194117345051452714937836711805510582214284216643695703049110051068065957876189014529174323781203176559729951773976918401897517068965500882132532089899449071355249708717464302616124501151889619646755009081659494391771238399870518772039714687006883532759665085014241238881669414645225020207137579329820209627741778301143435185509580172540799284286283366013920752662351524928820707442282754152362360826668203530161023964632652442670308556240767092174487071127281960390025067373517060949897026659181159608350285366588067634482500495633447388415824123171076753170377974765294600064066317642780499688364660773086299646940837666855083905230736369127245534979066683553653750542240374861963737282049479679327663171788938723097073187176170551163661556585561644511791434809983609375432233426572773550213785630979999920643325350930481079616436067040833183806845395251797610565487703408319981506792343982944512106420762604378007826607045900918130790737606835929693779197266536679640850673689251857799383864113352393895193048031158030429288098663717116615673853725277313241410774304680278365435559296124193521833053593497686996629418279894869961066812759686811659384124153673986466592494576043074018647630701247590034588270447058803345718739493246831704934582736895241250558855484596674692188826630562678125399034772568415458019761052202451131662938854882117013396800654412048173289019154107574189287945792165367871711194544919188088197788987984210710322713508643443818750067820318650270637059786147836345202945431413914483627942011059052815863739059875117650691648796742788498690255288676138752428890518388243834499270898394180714287866370126158125904778586415230574850359722873660691150369786448411057058810616665479786404029602692286440803981070482040793574945885323466120535353984544015570839543980326301358752130850420495625095091506910350458519032253832525367233361244174544224666618792851456527985002885800879907373080028664128381861506307794559824750499174657152467769362337543169212649268700390243719783608690682784696633089813274243071392600142534437548841007625893494303606099652973736947745254299656715520911371747630063344954845760400017338414351455513704081534169234896782189911605221840920347393953336088637209384147652671845633846071449470776868347865508559010667486538747626473118606852700101993938561163616813201173071575132198038866907514571560690513902755944125509202595573786222064083031201754417726512704331309395588470632679558883501838317606225356093153923569701681162542907498277729956053247981594347836711081476113160063038188061075562850518749713612244902199937165327271947064967500429543083042345445044198447566021490732784444144051984703926060925659839345897596460352159375532563209235184340070744266146484159405502150743469339352586861012340555847528757773007665768695061814336418399827604377215882274970677014228146051442466820692102163383376322472032219233793050016419054219164486784246895463068488040274478871938586990117068733985918622343930785998877035285321128203703481837943154646011324272152572445352871907580775239472837998055714242005370075116058460668814775624761409662223575978145252474072053664962393357166113300729142364304589156265126025241871335805249301631231801916102117735378159378368954565495240181691669139687307365584895564887705736779567284807536738576792086073904275193277761537322378220412024950871400665061605598311970599802210732057983606273455868292320463293353312945834167442488125632672806434831447225136564224697960167958184955930382388328791982591665597837589820483489481707447276736416914459232860855755224569478791155473053509258443580939223576916427416042674768949429302825133048129325349192701766697607965993079907475609443118803710108857884061832971188492784116641070503828539738592684260545203688530260448233651385120280678114021797909418590165269999690246402414610095500461964274686360937782451335275972045768513792057177274527164974584667179922925951130149832195058049581063999727443632464770955831660893981806198711148280180358301950215067829719777082452511869035386383325554097029633396161090255997246006608744592613226694686448238230685667699845967493075709327232738522015612543721593958199179754248321116759209867390273569719927519602931433520663070666692581810901438484437723752953237720214885280435538257584596958494960686418921399837036043617874798948488326572007749611696453081351106311598691556504532023239781450413171813591344750684537387845979301298030646258430712742057072627590682221518328485137623810025424482129540104280913267014162981212950007667365566261414579379329279221678299838296803638819837921950676247891454215597710820703589252735390745950956831100263059413633968331481703931062942836079281119339495652826903398377343920484091923343434750844719858541260131554708869477514023784480832218608175947641026177711117685054076374992011666065787868653458227318407797780050088155530654069760694706619615727030015462095879202869168428103646170791485127016756631327135068505076467473019405961313484667782748161714382891592322988143411861600526228539341160452298071424888761721901650517876152000387746407355980768201611364997118136883120857072728364754346262528236188646972963333574938205891303645007043589048128917356235378739276219366912719223297675107130798497835165918080322599884737940799161931687457645929388820555404264792841372789446440433264411301429586991716657606248691912235290605280782503000944272669489279386799468577488092012545278399137040763400372382269858361671852839662085525768370359528156808277189126405074873168812481026478387977111020366609903669023394960077229789518896026710702332459851297118950521536102732431353125406284629468096190909491929616150210200071913741403393618663463390247521098839747735254086656490664708612354509677570021007716612455709732854787942896437237520638985222990919965834108524910317396575300615344109153003310881312358140965002107017931115461159618829255966448284087777598241070412452018447822284105030567531815739183303253522298603154230237202482187400971364249427221163371475989429905216624499918622112749951030659524523406305217666273994080992596457639871053640564007662563492957467438470154219797083936085650856956219029816115346943252681014652333311466379326106642509348384551892070963099902112147010350488181256138237947241778792297796325585156566735893104964741848077364563315472622780988281768241119930237355153591298978951362353859269697314324254977124455731482926676271010514943517163814627856586633923311680306461495548146856551043421664032466570200359852187287456210557361514195178154765627428356410471552744285302540917627215956379964987331581988591134192133705543861698271723318132484597290992029650492703151176955391535126202514497654832022147127080997678600542325559604692286860003859782369672128816142845120234095168389754842450074190594670221168124209072327552429406936250338362886468720490502796325341832371692663441297534307243687335855696817370815831481498955641273069299252388135058192536039739499451824740274313369221332478176587385007540019913323333973952462693437684122275120997719145276131537445895055117715195968587478820398642673769274190917820160704291295140496111848009757449557550882112328340911478798032986913069461731633003081088737101509181652569050382634876212456465299713003536226743671697066200741440258690729139831513423426659907647961650375401708424901930118337435739942206011655940533992266760426113191845628091913353267835693861950853655748467846146990615646811087730564402185881911450909036942365286910174240262349624962467007937130650674898322477865599911426353809118133373541476844213608749086146439658577010852118594654412618159211227865652816838057449342359206584889689761608991938518271037891116571452394911691362337740445944915515057602842449043480918857664034925110531258313725792980592828879292784275642364157234372672762611066339035392717090267460828833659370321120175711282177322088519983150690808044365496490328984597960674865569445466934934395499088561183275002312870912045423173939510789481688576443661898972871927380260565018963067728713327418987116522664113640743244507649580611894694557284724970603408568885070381958265125524673325761736203035594046665342047622964621960624022124103124459544816927321668450546963698069489778242545018788348917950910644958384412569998139583842546303657590373550322039435923084119322021438074052251341800376678138058972501835426850490009622949812216861319613006762802635866492861844603043209147115128474521457992535875885480838256976932548252696872802499468041728578458234568001036441698866058589784694834091318620013965092605154517416346515979134521367171132036147274990723670672066820254759462335895250237368284289591340669803483394156145581606851638829276975550946093018561693691437769401884696883970179182188585973087326633391296290137948183811902263631991195709047355516014216665892369884228369982999707324792974233578696470460965521650079888428964836043178804661015952494547135577428549276625531142780401674045674624541231704863946573597188139959836745784536495740818704227037973783923397842620253801359035126578265582884557184056820939822682621884986420572257515346235275472081169364433457152731444478194410753884529355199454874936991586730941858264819083416675930201569278978562694050858666039788195542432826663204371854302396986930757090489696542092807034548658557014299992124773618165538819099852449482077190410223020101546940491932571508382315391146041329026651207301732831561332577753637963921381557517315922320240930543247205371358298226463691773853508896734074181215153098027335434457210060351418446796559259470030004542853884175237817879578183600598320298924123617731574451895035869975347004557935034401675747836383476970322679714555701783874332801207958917132932966717416737802293861280844461854796297425078855531879334097727505618551749977006244651106811986713675979536412905663264236325580168138013967116866692430443219772957035417893175520527718922090857130534723408551277279808156021352146425609285485042279493757040180729148207773135239779004063172088368779955723404724151171486116592619362897257328793504263796352205421167770677082775577563496427881843368589352962285168907743497768001674629051442006766527345286688845007592233468184066672327506695122823294713466680456426847659070673566230392572499566436410586590768242709204771474795036940079876568263902470991744343456729268532603958959192606092591465364777092956675055780788245081131700514946904584613928181693921517110808235529510735859886473604830415767595796452308825233832398689491760773796570852029919142784625229888888855521972453810594676043464920270276148963624029500077128278150057117464817514193778876570547506149568931390710097787148092114729251334514038899022799157968935893743319648940561234301044070112618006726947519841727093884437123592749635509410499719228317850061566405111181186208203631979449136729316519168492693594788095488828202107739368267333619382702821651325528901542924955249821315390287618747893385984567581792396717495780161914191317956363435340816618318937146646242858370776278680050006533379575053465371483176733161950192540895861261340245348385326814062318107680898446528294877660756676374643304436936655279491084156509275243445063393814905767467436472762820010076607878511802654862108275266116867140136880866138800108929110067670895682030448818607862122631282521825979064854015719556350755698911318857095806724580805277324089369229226590157968198173628138963151075459795620693468026190404135056092662421835477352647924439198491865270012620181528215719564723871157094297859206910334825216657691116060816551045051383880205268192439782417772422472439949142854545741988985210446783850166412142059623068219103229725163926782195157537065424907265364573585591939190418095526426216954811702741278477366564813963889090191615368254426349773226723899987498625003163877412941818888558454391194692247350128147409620437770772774729375933702404462130427379822612775724127150163124368934600749757291835612318785643564903188365632370510581370975794122380205983942929474274354528510942109605788703772198082987349180486888137533477391679032676994975157318350479785462365781667030378869542130462937893629376853986802262598741097937880553951531657503881930356259560466853721811779956070235099719056478947791588272722782900469949566843120012738035381667144175327871675976802054740083503331586748099899082787527200984196201481191648334690233289775687286595845468503556954678053955074374032592250165982735671180168403022832051752417443203264374241934373452516338251868930306723323703457394429365818784217011637603889114624283831514109946645464824791650861747334854702478496857128307603082058575684458477931284213080582413712327365806614415843121535226880686871749182546493504129784952516191586594003430484702617894655516365381258496070495827890939019886349899802222383578287613021535365013049405528877050638225033566930608326839157409060968461225075394358831932073995767883713238181314571298104365588507717804148683740651794153158229990751068321167937618771895771669281895657687947412390580718335973825013474463751617656137424719134244349374903867703055475712014273462372657859642750072743883116089696355849956682231567844985013507722378554937785523464265366604460029672337854859555717571284395639554945968962090995152500642393565080710692036788198064425363584459689302439497139361694643265294883832984225176314521813742386751123634712087415154242402843233804989088800525423301737344935120162924025482253194021624264393889892907097020351961309077237167926981176883293802369229279016238932538191210395360070927266987125165557258257074879871496662536051126790144047742412160964052161513208323282596211924715576314354636171936469539123741929805153245201516397803271967647097412343904289362214360384525298662248765433094393752508641846997942312129673360585439331536222335295247867216282368798584065841564207837221293606063441347980425957834953439727239743564084246943177296346590670161818692791908668939314540117837101974573407967590789594676638476859809645277897099086463994187054201832934650885402915250712545161765704321574455091602236290450671786090054840723163864819235061642738974675856774612806528887274146616095026739453654115360892413867322300656698253721850620691677558952487287769112572320328608774750599643282829190745392393142979062406836663964685513373079704918155054881558107281139418316402207314704339383236973931226916948688793266620625228682803360983272622825522546672563892152019470656368939763740584394006313462050874301112257470069031681486496750185669658364202304219147056686577432904856652285326470252283336297778699506719638290106945761854528512871605684901041594952496923286958885452400432929712725084103863300042587632827477184573843817771143673826831794369000695699226060711830808101267272838680658459064796438587748059528348480274849007314412010248983363747417696777242870275258003526175882122871095866362535158856397845461872682942132252223351036078909637283382412990142771659603067708385500451679361240221422466224239072758808865784764565409021665331760327105092306204515384064765717889962921400460362091941579547011992312874683625295917749263970509236118025120469516367740544221806901403765424468745154242125591802723705609716197005725118113699811988136814262551762027135830057677857207411074787169627674077382231157881623967905148089084010188859804614898438657696153942505003084705449445683617738272211700229874588917084045318279204220202289337396147756419182248187456529192422519184336290405609909185267937161020777814662540875444444046649471208157262694277737015964859027293672349177051199030757775659963447517968775228822291356480540080426120202289940486764883207924814033934516553400462779491395051255888797239994696339846517875711044417946630817787238053973741202760371996965775133249069465844408774094041554943262911543390270147101344303780544785378113856860385785346634277474492018133020504866245332656954355423855651512470053960105448882957326723016063578629350253239091864269782412622310064033968848717637119176107403479474563016591214218970908615120871014013587116840870818397985360843390156030605200200618163006163636026773349613134346776806254312835643331202284707933873224921683087974095730523158712421018749574320181997221205767595118054611220590376166961907128148116819076942929895228229661011956515579348201798161318787630765432698844086091936109288638821646082722924213677607930149834035521117853738862390230489595675047562243329618339586840528482348833691188907037752766204547362417055554128448166687284046535617179920437528303810176820873834749726798285991045039768788185403875758742039930291595292610194496664762767941520443298250889356027822164635830242209981513114943892538080722322241804526443920644157317158944127298359192778778731724432104723741709634888424889166374770965047417443396116862759547983337265282750940385186113781263868023054044631431075005157631831824418738712185651153069489648018887254176514385565415601409729911471441244235158855828697671111271977886352610693042604319826471035825361297528676213768530041263238151253363934286811177592242672322741919794112294773760566981291668524186723043783627726415336175098815171562975841307354827279402035908730216547656659551933395538951695346958554813144664402145692921582023337952277994303697009092307176519750956108815264709672649578812143868996006417921527401430802281924683996234237890749814030645288552781729490734351028895626833921899913579709008178336684297778297536966746292397212111896045501076350695796231206774987969188139327984890175974424039794180306804946626017128489759978624248052772866407580064703473701648948803767536506323031210879780734029680490924236324431780957384568648595726190785519321824837928280326944297834346288314003143064263394117641629600275551172460730078059289564471059881661217418505810747968823236077499364332205669536761297987828246306119631180689466409486613130877734582739426953991125347585727186460216853853571089522726402906248749846564264556943736158276239266761640429981155183008095226309576359873577295872232593132717236227275697711102435053872286289594679724545954962904801225800652422783617666490678226408573071370486459418757493941617400034208513973061100881543427858189844211052376906090051026690893759092885864232502866020366996643998349852722645174142436615809262568404868581563768953584326766802713301561230592584855984048286275783941789219734188579556148441570609853773271662057523435248782657293994083399769273121854232183988956393432914161105505357908431336073283968450349828089806433086927055008812830183643464142481473965900611086596659978031927357454985312648469653822471567122178073286410366148696111179243870018555482927013737811006939700594735728603380125298792278977562670058229577372579323865725825216895679333122857347782354144107829994691484908852091152587750108354731321499428419538212694342038815715574144538527988222180005039451783403999022259474460710432301692159095619677713698295465439926301502056809996618602267938950245391856644520225599555389780637003037047586682013706914278901263682573911640817944713136898349073006504882773278866556977271932834400696613237770776427431308483280034068952706058843591607197853254123313956674968844416390734015020104690225263388989673161834556381286637068851962754098531969703238177094830702922718855661261330626450140349277548146664160326795129457218727787831493789804586174415447971450173229981572511464808632940608948786624741303754197771402545611312784672361761027912837707659082876087426152467041075326221608311636525406282967252065100501768525358757584700924225161568487355637456868201090207408253535984754052010133655521277372824164270918736481236176226638791389045048757887144094798615216093321021416163192805240746122551578456444864609284844625742292481115475313162886934995926915873051996127161969527334631973056607903908361256696163289835199657092503853605826704327171976640741010457477321515577128407629039813648860463503939169069930223074309784601256307833983755016179907660711449766065777884593575893477712924654117755759114907171038754773286021166402061111195464285808221501860112800665076596315170802716333377200173671907348559509073397310646885053261292552408266822514680116287942083252792157867465503169290273721696594597768230054719278810982859786002721090499918313404331986985318900863542519911551810921344283889211224554266523226430963072750710705550455282068031433456246086430524008999313473507031452230645142003854564635231132664184455193373150994304872724149160160714643201367065918532226887560157812818696970403135485281843062270491877775431490436570519728480918988584827361875012856955588257106097941006548519634119563842412567575049550403300291118796383727330776139252752539547611614409592311601177727170647452045684978898729062600630419804282450384658538594882133935005164689469715393145474134735705890907423538649688092647311712614940051117970617004225312137468624758194458603034478187923320244952398674652354528105505564998271831719079915538004740080440038877864520138469878539131394924229949116959789700307482697260891910468859696650568252607050061057791383354785136634770190548759584573418090629904230822076083351115816478718641149417947307539406009664781194480059166949993074777018224181948629684862066255317871655564715294590266720536353545758826250632132989405061179322967657642246847504551627035459208770449492523038260996345418783768346333555042608125490071604436684029088854248792633750064786416990798331311865547284004492690184207852060178871909598306726990590304335169228161701100236568754704165682582873711844080057596531175629746469230891425841252047898321243285744053231691061153023124460765211332530519743540482694079687834579344857389610392022114457277225525852960871368354039918643888597321765758745284134814954423880684123811875799385946635845871175505676763276446006746943663611667422535017182012527140637839262844312403842998269827936198649375843746643730908880905790043623736640235980260530471532194906704989628510365215664396324596636381949066475433782086605284914783570521159003965008956721524472937227609420194253326759343336511901368527014303174506601712368833362077761841360726270844203562017003510573750749452230369770146915895566867532585503133262404914691740581669960419272176393248633334190453979772825524533302726694616819085513976990747047976263060967177240719905363374127594222957918354744483888441025020382840881815108912827055088544709436432853801493614754113804391496418328887631064500620291011608130436751141819215950326499955262043686748742167594079887328918365332894264257712882097681236182370798988112851381442018610615367292991755078743951216695948901840052177358176340681809047355161932360982351176907949965762086707675912150427021161257244161333094151283387664562121883240349790330564709466697259407547413354566090833694372324742816344046147415617229609198046744709465730293696450934600913415848462274372805386249982064393885417399264449662301002484916260138843609827761353899484191467079751206139994878031075658672699172057573989724788142184283037822237885645435128795837977268387137209583536547564265983791907552830508366408866416913695914979260265575949857561973792432122565098056417807327076279614122754138840711429521165246046726762075575001820308870718880599535943641204659428952829527326618356680069302797829673095602122066081649469392745080780842654706666518586896791714654647916728799313746173929199945065732468805425677684138132995673868256133883658983346471742554668771073978229210594240795011266409308483259233741211709804771403053543770737192228227895769656150300264293115598233574734168706507313792692867894666430844340085363130399282408748829151516156686180645581917571639829482520442829803166576933720967621929143426914583660310559781652721489992585339014724199025284698473955431217163500610411382329264268099536941502857071231443538030235175908126678507889144383939598670875835388616695175252972384661788937771394457845941908653617478371720057396540470685592329120689462549375284411301055983509122761591704939815779669134577112648647464888887796785894736309039537398636117466154942173804733539519174536924279816729972068172887068054694402830396624445359638179019267108691366225231679828252643153376048180096905974679250729167751472415710367361142474410692603908540719926369853455056369725855380506233496857639016530431580307778408729716243822493682132304652256386247316491494901856127612774986155204594794972396386008288859122839132929966413641408447168006805568900941722235400632946843412197549000505127697112181662156480223337891535639476872535638234405223240472385370953137992019222672455185008399357204305357923751237439937299330574686255640322994594874795813070598709154651245041327498683373801561165070943280176607011236603509901920014559729897734776621670954814075083260953828066691428115064324309933311682764214922078148690525108818087190359844512559306761812082596762455315451847798228919041395269065676392503094423453936123038895767638451372913349675333483656389769411056188581451948727673429177088498065700676359388754081904533288843834742884149064801049712278264828086583263194218224315864199651947298466693990238082821042803741754553754942597198618462142954059737825056918950405819118947873647674717711688116286221986636187790135153441516635090317066969161912956269260258862993071263220153681577308046822473341403433318289244626452377817836480166059549051558510179865402233822301030195024377577512503740542270187482526805461028549185351408104221894025420758444608596594518119623154042222959551187822165343238580417968038181517308062872948884635128530295637418192225240759163311629863627866590969046828680522657010484062125039967019385858633344738062556792193694341860542046942924964179542494873032223742654537029619151149014957275463004681126315951753638879127450322652186914834434411545949562419347553199439449440232679818811819827881655256120963516716160447108822720594234463868674520583027601489474404513880078361141825389553589217695296224525398003319677638053856531329727391112196894218293557282794771851455733851065217510736674327786677129390751470603473096460677333676506338606396596747504053433488577981122684770066612518314137551081514338715912566463384508875778445229779626721957961961667773384834511537539458097275695201449287606398830630333623819006452195561042284939211789669211082165459637759696637557973698077528127082559749272922300173054490410393820298837437685820287013828567249794552494286458521640706115383407732227360676870934215827714104293927430141565154422303148462216664238793490680068431799417640417832119845881294920386025221220322390469574159604325100244280526065966200124523168203907717001469252144577773903327990115499874988818575749815434306579905274378463549901072297201686942773159049574682582633208308120049318210389563742621345771313738377931823898273207033233867400227375221035493139283585802079782091968022177386008455631040250298998091595588162302171710701685760561722716823978429501040693065023979358721391496297525764626061682943384548844743559372729730172949927824937613565301989378138527502956326713887888996830254457877143189243376989063925546004699790372522346010272284356029899131685780251443049404904353487509242819204419571986643760511162155765414070276004840155719700281414086452502072143140443486227221032717934896031460460065398086276191476061622409668779246697520391104343378706614509255005307945848788403670533778494514262159955767648024401087856953553321886324767796173549632338017504984970421366250479207361462362365816288778854292263789136227678521042382568037990094068666011190131387465888447691753646543136288026049764783923058063440957208843381313095964675576732530482779188964293816548692306516688522646595165496309978082807916657433892432862450877763353455269221620391830181709686648972805945112236514403550139630076483339706874113812465165628632863808994835040202196081689268419534590938143518420377139107435735338388183474442524780636297650863218709497151367621511251557291205746102363809180910769182390600110314637724299994523880207165398737723258089456532009322829029108286293270469935945261209353588890115626097693037985829122755779396853410414542950755716484718699357747805553843615080796496014637500901117707452861673261413849853254120914925512062830194725611208896637920576554208726831840803659939124233244274841985651814964045132508228997119731159146897180970172293877640976141579728863826872992155552976111396707597823211204064369511118993694578370119927819785675713928380313991916774592637720534543279108688813268203795692732591518477930420335458457829715505728388571653329170815776776615943432106496251159512773820808079216998186270319835742755479209633922370023302562166608893137066721890172693444479120524548765230944403216791226942372636659704615943988486444160844747596862417446053899585270411246640366171553353282605655296387469384150854390688154491665951579433908560414009100882166502030395875195062275634794717468565297207518893897934419329421030613499516568183995532149050029413618645040430428953815973639519446550076747343182649466821484927145731259319780954301991840777182072568611520551299989968746613821603038926439701581736593491819637231107812057054685759073000101091958981107953570083134840179347753458746587818400128460187309218559675323930759216865041751009905242863419146573277638223970028788156684326238660300245478808123692669357635768917420149211469845466953680165808035752927712093836301463362609702363768291018512061540601995108050847017878590340754641190556518895305406974481800981326258827571676344899917829311660535473952955413459611892457175499064288191622990254516802509809552557167670366817665354925254753274178270862847470453056669890031554263360689305744874669092155797221916034295023714029808556566449267483985576192728921412145007853844921119112922713721046402205329495902318334689288039015200879779715483546230718487931057998317930093521853868717217447536305860035513155525782335418253499820729233702162215298431480167834786263389820581031455428069068869040535538376240235476671250125364983580575430259729825094055199794267308038739471216763241790080828364470942523621315932333134221343234176846398917751686405146886069505130466266924680899387734041261662383044023637912819927359947705076443369883174495005546482021417255102218680615645992350116336535724008115690081619413738820832167699699068105087576537239259470593066565301451115306029924383693532616809119854721013424665745612365229854868776723163973776382300669692586384246093085606918072433105660609198529740736823673206869818076658824735358947132795112625319707474299482238729768963849766589357088077119526322636715690902394782631168068088758046308631783430969753201578944992224341139867167802680217332644605469537344198972127750113793378006016074386940164962414862472381680797456041205227801223042520705903195963704850380060681578674615481410395839738750476663040885034044852422230083096110994058012001818858393745331058849816616439309144069451145114623255814532377204958647087951074482772664872145253920722116599079603615828731943798183497672765174972461916843255935945824721472292913255239292598518936934660191443837955258315152753397570564068316298861250954148198827500081631499575993943480145410913124034354085799180454642947971412442824794862066992543096854300433449533850015473070831607841803529942206198263411013612633093064413451523668249852115999024979444454921921758423641564088625306993933497379666906413374851282007135437637407235253471086723187007932297406681627414879116440412954239108390269401730902330223144061607784284297033161478495163493248885762406608675063173101380755633581156394181414633948256679547355398845015770568666295491670782424130015385095644842162677334835611520620842483585715352313634072407290800475434720942992029930046567725110733778187349343336124970806057591726657606888442139460667210056000461297641660165085388618287265332167511961335001826714073500245777602990143186240704132815889666627501194974002587065777999117516801531898017240980198705353588498775079583008858688719007189406397178667092635338944003373807377152411219790304868501373971507007332158860285378843415874329592919363386279170636187530678487107433342319983773008059228490110049023514487498129222527750990242430076548739460277278806424102162196824608875251905997621386432007464942589741909448235553918587846396964404701252488164424711659667470491352584537270626348707779168362068019196681011922453688224196213713679640622002373511708719926954589267398116025943434019511248341887854048006850439666816946786499533683144436601347735059512425725175865043752167867879908711431648626548802933380321047157195674423728906525273563080004087208477257799830699670426471807774357277897517635413423205206312620179625151380662925450881511721914889768694158028460835920917717814878955286560421869609332496975786028838732760397724687453095584375390050974207406905746125801641972909459490854778455104983562680722830693244721589677015378360165081530506067017688724430826893447245403422791331702713314920776233444742992753096138249634352688243833940885232448158306744876728542360094249373550407269000942808240269125156781674914110665719760527936221716967865377620914322789643731012069907207754199527363396474451915150971552143969980703557003850715824550563942067698999658431903700307461822217440662829486062807342557069586554188185881538893828966557683246503396958517603110905335728530652566508437643414731408140354063864819873013511378000364586947528967258893424296815365932026042340773211639218765406968217532409721310192804746350874458523233232251626490038074619933904846198399875043880372713243719999084456059624571050131901322065962612626752333076519622214342386831362687956197610565502362699658899147459634994129949294168838078773944165441249837752447156675726494238565933296339854188715945033929501883807032558593894227695409421019005051784467113619097724268570513614308205579246292625230797245863784871469375821700789727045910344668533662448193421823107405372397445548180528405141892829004865230558661477554560492889958216428222769610109318682182162400757453991253456934668775038761154677516991484664751373783321788603378181942370192829163811386917078048365679867450213041192132826031287002960740126040788172115097688262514125055299629062037563360457343641222973874067592413715582178113032245471418040010355848670092074360298351383574590064544261416073006983979731507669316867750308674012129217455513259541417645731450389503909996549625248084683505060379043590573458738233830459364900886534586968590840234016279130167629996951657874300439499641256542507538363221235413414893400895036177490697517891468783512891337026623532093829454127056953782822412111964385798652515008087930978252498866808757635412602677680353564406736114039935589196692525126850651712430637080099076786537565006951568658450176599342940560586693684159945901823860289345174251848181703199193992361204128379458866919411399967703203672581278044389257989178315986589737337165586324780483832271621987338135026805140396212280683919800185674875676226764744288538089679071602620487754111924419203647752128197249514666315611722355697577443661249816006568292673575191513467347665462813790325685979419296395711421024280201744451300461464070359285798914008646698307967752226468943416728889381677848609033567440227020455343115009255932648370700482496686938262066368512779756540185707393750860851730316271029346641247024880670018584318440622255493214531300770299563155425881939772692956200664767170943421563258937120121705960191707047756551684548826434925728973777260015090738501179013654998983631574776291063683704712969791388481988952344806915434833738475093251550042087826934901615858111008474020371925803284456513668431370683868136672867040411047460258152959490504430349668859047043444812330492830566935939192443465142607837050369324419855674212534583270800775998854290917628415602498333283789956902482404843359910883018302117631208373090064777827673789076010526006869386774305090219134718930819298129001019419803374091115757993226028250617340338228762380105500326040757157736940851042941614181418946832762924351359446532078373631819377083345644632737998155288789721124425437747066558781952938692725035516123532459335851613086917769268221207635559823397297207268113375856623071031797324976208188279097678238004419747848440573315138898704140414498421685359790519624342688411266924816578504994357089933923498415052482326086720647379714582512963152546805811636634189746837211365698403772504981520821331729151439900151503389905858575949387557520032385450670242422817469164717196171721754873281068713818540460072264521163258343625556439513740362768126300030722908964102745239288941070269287956729321904448565979909075084965290875227676291166616146939826802047920103854397171375391929766061891593680205504685726933897323053792109607762513251199602906837232990816859456676769227113587492462864210087914432178797462879021102285370103938193336172917869785747945467380453434252531017758976829242851865332538379801776892073052596529508679540147099441080639249785737389024410765206734790055892193928925614631878142857088019840636271121598964370497645542895451972510151880912036907964383519976415020420931407541708229069140905868348811511266859454564289397018514285311563176790534428899026227856961873070367611211318263832066396307800267047748565373317799203159639431401981791732448302838823992302374090354073468418230751282740772473238633963962600644821515495736247962456862334566612967665293939171866313108842819376382796779267328362057041994151524396770366963359025463247821046062067237695652128420546198484392771935815176688798287994153009801981823868766973795615536602551294299200583666754420964319694744973912627721892446608048019608251596267868700699779629928463914973337329007907089565924445275253053228895773818518122371578674064143172674006392394495519705090385628388191213857236343171167989831945971275763313088812954702235642613043886635983620068648793997834639069275568798478022303971751647729694877218225120318699937958718197254558293717643520142003628148357430823822511458622968192750510554907567667270562095244400011118334559456649103817607386783661483134464668576340543874641539288871726150302223947818348933860032332145821273675250236388212050542924455666895249008174120367128309755294098685350133687368184003285541786250582420445470261065126766446611723649870075584004570521716260060921198520096014514485654608809430154730773922555951329155459304059993055176268339650110881737471671027677631075928209779447495268507694419802000249428914549937143042095486872494775340811580777795300304750224405044689656252748667123945154742043898955831768356655322706189554952577686288312788029565918001700758710669556524805914195378792862375309616787780770321238736776284627485218240013545208103655980786820838223625831428004536420618324170600576826613748639066107336998810219989144381978737467165253089265749800644963620222672793115048009457214806330882090748647677852173048601765782718960381762936442061095564233046266725061237247201532858735132444346393460807771380230529410615390611349892483669405297226990564260080295504695872614259942936406044544257627408290894469006429626250813338818485841933164850496348163889509884545364821432138508950793592285792086671144595253154631119219234817699107032195885950340530506497100374002297558347994499297098108310873811438801803795955322983162063170400894334624184274358621370406238475743999872990574094523104722037029980422438956118762946233536807804159202502158054378096789871167335702821605227341873820090045786693186304603003928895432599161359389403506302158547134962449662971949687722030526748326341286145525454416437852442796073090061646941992275094089151300015277974547424567883082899747661516178964737977808056152735539055960473437608724945831437690691421706419500183528697810652135350408250704771683364648700809323575985329637482643879366061160222855185499482181411034955720184667434276471747660008828249663637140279727206442914349337977549357406778205919332768238183959503992841496532476875167023949068847641889444338205819668313267892642918067812353619562983202362456246001498069856318361872219097866553344339971279142996553960757178344099129350211632570720250769772881298819443999516940870322441027140254371633218747652742780278746300925312762518269987433689155009596180176933439195827936437839498751949786005306444626114600195117130261540472028985940209734122125311488750350774373586197964202183656316664015741659540224432744363769786646537081661144764251622292310560190219230185752915066492397953524988678411897557925747503097810620765753188450288237201189258007235362253996928988923547759393180266285723541261821807421920850007739518256865288332293200858415837748130168048573505314646594112333680491345621546475291447622112377870902047891708975428596361716384225914031025485626628271924776203204871966139636274991260123759311605370989850286245406003719977833560666308892857659655134628935673636138095216159258596491203837044490824508008518927886375407303318358850996255460799391151792527764426338308681604626914220440509361207685308664282798706925866161495898708885067869901225265220894405906641875935829213160739972445722796805674064737223773860798583810370117439425952875683543256348519228673869758527858145531915604608982108081702150063787052631715970561495023798612193331500013736304537855926102453181933542724092445611534641579970592408756884823344428769941665978375874877259860757120185331484181140226770682712318165086854645614308288104674059907199367821367475790213690087609612275352565724346853539041889389841450033488827796002204770694037129378144091745820416352132476636464590453928236205301437893156713224890662478619393987507656381633163275204539884382969814199514439897633164545470959161371600999403822872696637694617757837721696855449897623960184147566791274386215906863511171018995151131594931965053361567405332242222526915722802150367464467182005810912584572770293670811907021159900574226718025411832432119679673278741974890041302936654351846941625788468775047181334483610389976261193026699895928065512174119953769723509150191123174267934448701733323377780175050051608679638734629418233869374894302380882418318125267793503436358819425152243466873492343587774722967183344384412410419074318646073643257803129823709011352838389162007326952433248928956195321717677226930200769580753992839057209552754365123120930552102317668746792234211219427396966738764994764189820512757586711925134008345105789057828729419265210251542677243786474876573079762813391373416924584931949769931624409379838018639225707255851767643100260243980049740174534114148526389849202887360779118434386505138067065008604822507217677859834525116874731761575406813034229471840185100209742750839926627227745207287589771930263093427761057127474334107695347195768116214910329464614527616205083612251882563877699456979700303675962995198641693794223873273724319945770656390358432340611073530725696127958101434416536596501152028768470850998510792631896875900480123575138199852362687949321781639291906578304622852120364636961211118978899940155866512963373974736282657390973011773436599376378170113084065661532557460497533846056387885139582354404445990197050528935785230862801908627088866935719977432101700186318641449603141328739000833134415699123728906239917554795720274934575977299838056611399845428412836235969108279757625243187696033399884779385465728473753184997161299533861408454407719831940856962290000366354054504302469523703328898523570193021302688889635328486579722661744540408122128916780886162667987067915699076309951391385374885303917992059311978101902246998068562775201288993458073333944348232024578454860123407535369825000090123729010083057430570991392529674227057900438295097165594907266788468619251880432253169759172671090616517715351797299844717912740217117174248821816519045355446506168449538427871654214196381640863846722117335415058767329595702623440702273819780573584389982838526834140491106428765469709703261602160789737088407969267002446685512855130081180015544747512227299521773030924364396454198771471881854893948122524481114881078214994901267430859435265016755276767125132556341028546623587364965844852754484200180198204184797482299799339496765133238768279487598964977147191638591034940806868595595334384388898547061270218245853781090966963524258047793773853837292019190815426241864272328899810420523307383530479613848061181630681859507500709438686847819717477407157327364493606929942399067423987067788661107578181195774781544633012543707570427982935906977517510310954938183850973455207822124445038417448496777843307167474256561918291040015697785717275279790665047991937142415172809318221643874289859019193521520018177635093427558813355726443630149476895552686349531982290312190420623345020323346617028013577180739676350755319773786165964866957573635485169194290582776383523825215225201633191516125807857451937548292571641943962770336315383537107555643547534188971314644779977133731979575575971180494118615882956657387766179931502191704179836739241433299734945140526372038850025818918097910643553874647620139398741170390315620329560473265113260870151362048504103353388598821909122515747835972125799714199997797180909712049475542864250599123180044082539910224380397270984599238740380249902738755891678242368142054141365035548629870177250599012634218589401286049476161430731045807764243920092771262346454755611697312330889947754235863060319540374130843659650998378451615470970105101100625908334067637328468664063177196145039503448488437067912669410085014565667185281413409217522088981794030185875096692737434820308804902146855674980291028000990146771951212391792999562415596178434015856988077917776445191615707632638136599370647313603923204727928333774151340189927427601966724737087368894922755076983317939532729670218232635075883682987018120122487241979474360680731574112249384240111682075904711049132354460794247296807497113866332872179103452097821510289743575339773002838500730088990460329984421238904362063284032078013642958263238884939731870318802469033275830133561195699036045488836272194035241550744669199269403087846227715913332835033908518172890392826559136910429750192836688693575293152893172441424026593933950600502500415262650477694011048069612031751941485231442646867036999578433933081461430238277271094776134143723434735007399726947437269101565476839427475464422787280723492239044537236389063840286295750025326915138633728376868694999713839542920593496893922858571173591563267854339683470422173459939201230224112308657662087002358199201199913843912274435648288572356207056979875977819899029608049865551464417218786866810951777504187917790079017378397670949425789396786466187344691156920111084889619846650321092254096712919771352592239758369735919961630847292347634627749389761690280203886099845885481542608847749079372615776537077453090156766863283082415396542844287343551076148573786135524473512238408796165104266484066363058561980656338741517208835880897745457384078157477421218807027634946677430187317787527713390164676447891395425305575326981239996843810759933085927359472337011508222003952853607687105072902705509070062448290782715517279272106287786496476546115409278088881831374434054893799386960576323954906901034827048331468178192812147957460708142661370823637540343582446719671051860226613165070316698239199321261434909169115376156500481251205492750796964465421781650662221747844009725912839631964714655815015054803194890503669237765411303548115579841952822892863356756815801828864016855399464027934371796861669708622734509429513095433399216566231466518986503723231492972035664375212662993182985537238485136285013513675211852741395756121909640060427609522818095651518106986150428188056899977664295169044300972678665360087473951756948585203098547475630985111609406202620397317704977836353743246529602582498690274320887257035660950898040865919627980977589704161851645622720304783262507536754799240525497991247099143691392987181816788192860474732774208414634565445779356447004927424848876402447321355024900213511857624192026800866625820911232544999505695739417158432164116721015636063792066046253140243490731747294157588764570693835991185454937746635363651509925514973363284986568311914281303029213529956277245864140241761289243736667196522957998397783027703117975623070146345356344732798043216132566109871560792272000489809443738416505013836550211284403449472310291052398522334730828608283543957845805874366087541395754916058010401334803159744218572996068328941486756749157374902044254809183083284970582796007815496883391497449955142153845861270908621031529358118475237113761712368468135315964514546346461457185356293888853279629269490058879808815766658266585828823291783012498368198612165828779619804846508417678962733589905140488248501995272077497751702589486570132965260929174196396450052184920338148410325708092246937009196938567948952923481172257475635407226217727516133027250293796982497941960455774569284015407885491388273278123994160466025251601103039087134506108152624696486974878180687689900870111777041096738860088722627875693544145888762641678732863572817123943219093260907905613700334385500316163318943023708330202410997405459709352536584565568336188169817201026337096047923912361862316283501794104116917012901735197758958698384314997730284945093796949014769508875760523312915975327848985080682473671065877450038013064314788443699801915877546053524345071333573670088001795701609443817916487936953011522443604732953003796132590079013367776177777654418744081713720856147018875990047045129481061129298615754818692253279525844614535264208357961572779699253064525034820797239995301040906825208100330811706603138666701127898077072616642577009122967706257203280004735814497235783787773592174739143700237578129736856300197739699056006760630240332891032087591169531376000881905371775667017733505114618145654117704408869848167595610620294260542667410318287837441912580861487421607927483966622838568665455772410368366121608624913611833589750332027512616194145244525258928955537189143418392550930434561620968177789154859751422705995369441301482799199981425848770368918250625634121252430222272897313949906862297323071693777820693748598811610200439649961031942716360542497374698522437785312676851865614024038416787373784317664970293478774842914803244108250938887919579738322552977117103488467378276208078150720707143885318330823557120426205090567018880720314671613686340604322534044361876104518561312046653641742058981968046624591535642445814665930609205872002563796228436206256013213566463010916654426818882244436252880484972075535860381936167702200719470193081726293142341963058834560996452896936590281281551357454986109578615139351959029612419234384371703519461800724801929928024790386989810780259812034577436339768483127954412720918094829815519347340972727649308590041047596048524596582675704823397020009226295399260357432316211701198438806204135124313185315615093994557211028797953821016843923883106541528348882226512547820518164651008797835348035000101256495729997134310916036960256054573379624471704115367764777033820255423390781949099335831351655751066436090342396478713934818883262691354932378529402913649927506694853911732493987787182211344418575014000101566801961711484483280965754770431005082672935156728584028110668085601922898237736645086926075130566562429984995457769599276603142159252380083758517965941471857255597264363470500367217839172850334651747794951130526146198732398495852427683940864759523126891234751704499838083522714470805435276867730217071188190680331951430721575601749388712288695385264156176012937165886333477536507673817813044243773079476390549236808242288870224870894642632751558780329001941031970308285497304043239031612738204246009045463939616528672542545767725301434524189052878154467537136080697372336391761142444196562025632235767053632268600454170977212884905238574154802119281024474652701280386371666290135487495931124838517358672935756153894225661080224382123146535310931248604696816433312044623395387819313839315249252292755404441564752420631863898655298870743537148073201908103921782215815926796618525657208377640842088103785330229845911963878042984668366662303340284038159420884715288926691392304535918021136621996302076011602946953641061361754714612167670585154550277252684110776463059781085876381462985881783201123909815618467257594202894005457068289756030266455801233378349326900325677770894608677656246994382792331381713142006532031637780069716921941888744864026123108028192463314560495006114482030026691066564486791517115091226250197164997224571145186707786904307222341090844520893439173640316791881011851392667201211254173187480925645430985034239697641793074095461990285727968220673063851581293998900117350771588629135276679912952602934330233094109175513945656187389351207558005314437099653088502903910648028675313946547459003088103439809597336346442098199410376855902867558482545137781950631872584688415117460764679041125943000116976076537905491759848944992807936890018102241918791307964528223806325518326401777983292898838366054883788937152910733156649041662005935627652711670013737614108329397846278104079999059617553145454386617336064996905288971892942775727316706169465666415092997422129635934386666896683824505610055074842289667605119107668466209703775393723176534054226748819983450709945141301782740224005614425623308147065492097685156099010697206916452042230182466864541725333716811776520825053661719269943920652167775506343179470007180861736671754067621504623655385593280516072024923810194724008327077952655355513265129010772693351593263938212168529120117571689589596799012815573276543861581137362775958315029474903579713426491316095065691281153362113290867564218855061971649911245216614307539076193569429787117133689237482785162394510587493633601768486583294366207908610805331675862785969248431438347171026958941296648340386551726914234037608091144049624509483451272659383948646291190811959683694299295232212906005701367262624962043126276088687240011857685971496061909599438574726957159232399224412784054669926754650080950421489880069061932446621726770872683560677417734768673036880424529399918192740353929822817289002575440877044468867263163676188375032226684390156606021866290939103360522986249312597854401471938899486716977843066122509435731011876741948165947699292776565867143473042010470360109307964043731708755592360656943640725634487709936345101847069997928740172544279914953305745407126702378939119521943427051556284115476533387349174870716885317752589468805851651734410928596252760529799192383627669430342037698373483463326260075713113165058493644102036861746561721570587183447905387372338066675100595681828985145160950469907591004812594789879901548376625401464535260949014496952249515399623696235959645057188024172340810167652689605259245161413353131492675971948169503395378969789515426296958770739213234114010200867952258947855797097564261031339026959394936578889620449730176364733476494084909778469545716136743473713440993030343141460625324306672002799511744644709398842551162767188262352654806738229410935044832984275504617924939956168899649396078153429605321110432619581698922077905275489701817629228164862931788313698584704121713758747313507597958036951155948934064649120332342305565747243327156108860702377726116916617291840072268349676524223582305632417480460324648275813973558921665986790601741178762699540161926260396443529207798342114457740207216506357835960769017791998213471016190858661223569083511083278476262174649622822540363509035075619773405708380942749434000704770134762213063848519625162153712217207781247620012975377842786897733539161604035361650163939941489933586414324395498354532971632806816060385534490215056592037909684422658569526969965589061689273462039741676180193743203204055057230429552306754723093335707217833789407775579999305813618463223356537429181086201232646640060257183440705893923180522623344089448000614134475013627599117222376582892182001337741488740504959955468215109489360802166107381408201857646520662247369308483077884874392459620439221080849379451964686883809298855663930999874044611600914983209804220688252297022060050008333977125164587958053088936895047308193930343109819797817390984381710363218015018665713983882156085316010821595041338093159268907397490049099102817990715748096043165258826526916196560990345518215050110797068813750393593367121893568996709999631667658969061140000718954145200815246264258490659171841638923372801265903864676452666580795012387531969360731198372813268019382747634415654991002021945218215238245708731182441980328001648415465874131377026818625739678706186190265384510564063430770243098220351206980074847581801964890516746266488422218484857797634370683674147173653522318141528726475589269361923982299037389250979578399687449192267672704112995244766088386133087419624196008950229464619844282469063592677663379957087632970945353258294560328012429240797269423580518382930665258352245842416578069418244342214209022345194447112154201456435711089142239572903974260584684629559023287340532451894834537475000464600277374165450618706444251839801735895191732524900118331358735833931334378475709715108113130267526358359067792219946698346577833244950018204854255831113739236385918776807210728006824335171232513640395505908186622629839563557346430166778480721560464132195645739245171130650152250318961816827168740267159843806141302941039970645740668045975559311856561250212429198913145754300591035254078190316822196465255967345941979971797990216443618704240700810620181196798928095796948888459922448811130769804943130529990722728781130124480572970393909447813718638467830965626626760885928084980903214354609204433192040522254466188453873602607464076746809751886627244911270176148145603068505563442579707024922793511170863704029901638919015644677340947437720013278023581689645728547677153189448157468351334715783806220040825582824064372933457287904506031706005772465275782095698010348647231115139286625127768886824121918720263723874373913151454881416736252269912195895842615308384949829888409522542983812167890832694822564615519783578884114615059917594464130946379395301097480411924029709824332636776119162767076387638448076218991514315862915025513514304621468585593596351379131824529962690889799226216485705970130238694203640797541984632455390177632072129665700330595863763007308155852506523360087720016706259067513469856759290208956135593490479857414258743326804955169668374031203143768102960492951221894291019618996812254830992499916746758281129183611335223347468733707072799629100233973717525391715848032526703350831273494039831678300009678605766487883586514237821762725474652348925948549450720400528728704311021313317084462049795637015444655124005284229097136251691719045021379966475375144113602727947483516059139337611752036811796429191882217584004652037682518040220614296701494952279629133732990004973212477724728402983527953029496655577329733373717988839370195397657277022697687953564488571514500944855161232495640102864737670848519944538602949468146498218733235461648706130666526754003895109348943494161041379573192597678667436445872130799373929802778767320954731594985070813668778953950349952726291071980141080389324257134416018207276107081209082992338218452930959898337846916392114413673034859653780426209720459288421891564939402272725520109694676521594591627867712986045511695301431022484106823641165904669958807811791981365913068649457525313054996321089490906501588927775810782426644307813659703187936779854487757001611682318999190342696633458662273066230764178286603423559991236460215909557154989185968101417779753531037473946599993071894043548494967512900027039740586490176239065599287626017809053968472240265683892187471441867776767888280993999110074088875373017514605905597740857623207853046610340601182124294816311054347678382149647516529046855468438387725453259062450157661108916815361748424239524970468704122815183360155829191358732763543866030303504528926702611286434788541156441403108120263835758340758462086063136249738768692270750701632300663271359261768917167874208925126752618803057649988235242709291920184879179259809739301487189843936574448283677573347206711990444397271811825917283509108502794320039002047300960402596666223985628463734963947615144417057410323274968337539689844772921237789545083097796418471068664113059403899226174823070939673414402594933333763371130600091399112105223201986141716110663050798748075185316316954539765276909031567834287721447731863786463504049942900351823995862876096636591839665301552279860039230327514858632114379139972250066383924813358882824512220921420679275941735679330089213775782864353957485137524613404358037720133182405540311703676741579104749267593489103253312989865345321887754466727369871775554163488909874414903386030547276453135569213459393868662593409661285630159417600836705214181740887653775270331560518201521683513537906835800875380284467256305351473442405999949598410476136750205407821477400567434426628894255130932244780919207812880921238904804200202622617801365159669576638471929052156281925576652919659614868898760883935178008101665932697419663591634415932733878551281452318155568746493673445802908645717596125903046679361712512886600007224398728945298947096261109992122438045799195808957440453653357544553882861390504183152703767450954028295538657418534063071546670411359105877604623397637303948115074686779332885222968563792879079405932039397420624141697124567285910110387508749560578203069359312973326279735612889902170810630414154399949135949006384588955119799527177021307162961405194513326723864793450825049827557810667256599054681133358538811805097283763961412447963891600612809237324266537178887144633360218208895824891101733689673413521032318939736780912757331406828335088112866263033435087126256656585411287442786527319480898946306156564398455358473710132698556437863082051843729240489689768295408124987471717297055924723102754662397143712529273774192691919620399886525234323718779268832021379004476076398387387275323764681770564847630007591497570573983381922720774007378789141952454090039280004203835250383707260738486604999630761717078100181347105822020685638451899202747478947463838347516413926722806228093769336150519564242790918450660152438975125439522544990657743455070721983856269041902086039598228870106801544909225733027545599880200721165536664811320794502774770035592075157888417849985699689266463773630170619243712529701022566832898573992608606360955839165986421026036670099968746919845479284221185472767267405089344821640652971104402970509760698765128306046275237363734857575751951252855794129144259949780683945876095585768229098969796497016652361111713095442985680312154756180626469502208984175098071527454540627108661257784449288542176929672179809780021168856068524942976496291416451232240649346429717804309247018258480725596223191437731768550195478595517806492149188534279968716350989051101728587252842932869023288985712350588540005869561008883772084178369821085681508249535546167032944510116990635801768083557801295523426067722863687826693100016401828760184815518504811538812343278114460551967012375849150910556239883614932238102637800882820697306698192411281430663987122086023579705508900247025460276341565374213929119025147557111370745100192646586355945386514265848643183049989025346925235322233241755588737066293081851752447425433200962124913861563286867295214373578672260531161417315649336993950427335254620917967713474325839070206813851472661190032909093677260034280116569159253694650690397817456326256914938017176692604515220686600955528195223703956938188415654446709359066884430536707548920095314046276505935446658900301997508803994053213174674339489177663327253416489417127798837737161581244213796180379249933580142479956570911622016667591218460729691433089306562119013665049806209347047365560118295186441178815811341829115179840110720107148663596410336636948781969325272504775966327745732153980261749203304623817554284965976333126948111286062441260536211439311984158083457443830551987737046136193564595100960524002510038508095514410007485402806712939959109142488496213879355953148956378794596900411939764582083153584286888523354474715003057228208475234184125245012116841415261225812203058478240626528518851548247383740894500385102926361911872280249982702015835165324189941780673156507870898124530393015933573326903055035452031679216980254201654334703851782789233591253544981029972963882252359940830979152835670749294378885604585933589012471008715345681906020499268695580047324800302096653202650716568697669904648107116432405119281497627143424121768670280506638137698039714042298281884590971531677262841361049644236098198532263645485096709337620408778557888565072595386339570689934749003992274186212423322599693823309548799646895203012778685478639421603303070754302617240138242222643206443219866036028908896128515587920472671280105028903777728587051246213884346492748710616025442250563399723671406487101377432507091342585878779173753283894375470579605747699046770800447796793992816794521510362154880585657207137254706551533534215419265455711300944928078523705985752028143931868690812292632961674851703445983263544812972299753507361543726732276959978201438966313384999868371803990284698839053350224393160846604970484226416862921579764988342624162389349055212636854527274769258865780757858592930102338282701259621662222905639249532435785885948601494030885244323310411334434537720040473168721660248506163230210125983283682894983479013118387931101990389158582377365375269958687955289544908403302197980835384645058118520111732041898539173827260589118529846557564273924770487620139167939931506011303449542184226820399506028338563920803164153696610542290755078263446066277704952312516517378164248083238498351302082610023232476471505574966281723082963161264944687830563074485966814189464026507141317962223605226201457566714549527561542494004280186020820743341849824747391484791468571076324679740728972494989311653266253919035898423971525927139791488795483081774779822296686625261548777274603459832581378515544457125201193447096144439182049371270163175885684715781073153354328220355756943275933028940651401428103450020998062594432517192871167560055983453275165083625280524652569226884190276140364225419448396765170008417886222377041491868796682762856143131297489384929818453337758649311717095227662653365181834156865028002616255684568661610767199383686804310796368112988475726730749723347636838427494911411355720991205555220679856796826340615427432424763959702837904585996492883281343608272448265542556449728519492840096005173768443443890895600667262530712678996976991461202560105388802231414741663038635934426254595199667281019955086341079473897247006620967060204071450046677017903285460370280195206969767437987682458713614907350437173579827948856689846513076159208745627461811057472771214948339757825282075537097889551363983445819351682161875254783267633223541557308694027280020443088109715949603909723597181000632567658801151963869339697495152392258164634299044504006673278129562547937376667485238810867632003133263167004221287495816941433145194030293595429952828519458544504215035234675991008312204221825213782336775954887521539568372771398036333446094965986742132344415620384909046949641697744837178079634104434907235467239694327766014068580704263043512576522875405707475630167066072070136594910645929064843323103699723575252484114952479278176896048010539095058211619275172103048903559409104975206974088199936737583397889135384223864608901330264499895649804275329755921764658671082246257547130202724389547844177134802425996618590467525177083626322648834536119203860249457548450294922856114474398849706418794476958217698070709172959120454600765932261434183406958253961303845575519764002079283213539775288631960376796547231482569864452634554070133388898051059776280174497006580180093159180623487476049874565790368534260655776517663313982503071050571970280006889365268727330583961306427004940769464465174428188184347383304372061474719488196537754877516373729653679964293314906356763636364627729957599294208177686885747200519431846745768927690266272550405119142843642704207433924834483136969186465261521780250050944488500205904231785666897353930694662705073589545530055430285669218226817892699091004768786447299897672922131225309731100315698939245533342536081521807726782900481441416230923934403047935780432793884528949156726580773509917183117448615134263181195019326599419971544338241107554859798038408515131974510408004711351344179034709193025420301893868093694357787003377661966296786371019251123704896038542661420334875616628316413490463308313165121864750985759126953217296217662814941845554546326289414866956757945166235047086822853192387572903657879333518695625970052521564495325886834669744773941555716441061712170977297374566710127377845453671928822505245081799488333761667225640796102757323900063465883687693627524693432411768300224847385773510962384604477179446428111657580131811640067985545167925846157299723381554122147993347576317332678595018307831068463899963291236103918476118095347483012242974120238620166556401064352677007540642336292739282259229335767971533055023585860832115050035244515578799816851688398122789549060883530218219148846327933388114618380993483859168252828311124165024187377056503801212047354259752823478943464235736720515963380062916311744523429684133598815434856966209457905954159496522058903403894144259066893711910388258296546237157002586424700923105060773587263610105818447175267905257109550447667687575688584083447197523049692153668530055883363255782719639581238933956192277041937949504958221977137707189841096112846825572060996538291141904171759719669618472581120304396422424204637032443096153319625363328452014100596236470623363899226163510363202664489125550424348260541749574185036035507488736419035592690417509759804858782281273694667644131180793890433726034266056777298662382142592881878350962945635138589324697265011736524677388352570714905737214584362510838575392085110895218542078746953972315224763256238790942948802420016041145586271976978065473887071720117448608728590644632544119434685257559783609167489584693338296914123810805738207901584266946862322604531251980454111321279446338029893202791831231712445101927285374563844471174514858381604360454592722701270571145737116553365095769077594005724417527064663279421731409205904132256649099820595065450886923245024574988142203759213522938135774485287998799054556437899252525665263538683013905286850059921258777354131728113771666539073666966254300112480116706637786177818017764748618322905522641006241249369461924636965922989474432105548479675681751805952397050331188341826768929229310650993703219505707412502177998990760419360884457217980683486320154739004393975089400543442759289074849219643570069600144322083510222460874716047932377110824427926524672164837210974228671298074276246248078001181695590477313772014702904230713665760531676225700518294151672629955998652884453697342742502113013628204349462629598785646312283662930108933504311741678309912727780895667739589578877807550310497815500144153816627130836318125911364760745670147572973759897189103351031683697234345724391687308874223677226266214774360902811111394722004086388642024064418844621218176322352581425385829833641203600554230509640799733827738061002001317884723072975053865719780276817399733202984183573965431771838947552196722520577189570617837828963765974435407963427985987360912565527798675370738327964361415633807243447859411211151920568648412820210825256541705013206619608619057295721643277526589159624441811550847344542653416150160044674283308866079755665397510990004845696745178335940989010023574748424280016147000939658028295598877250713812371872508714776243501674509840615374476309398617196858568144769498644583004284168140983293355748408823243826981097018641995928144629220514207174993469094290706464769193965785193390484889513057692413935534079595397259033864398814946825519086143255935646428122072401315458118688032175454900701238754462999800437281245876194298304793163112554425748874587241230678763091855928926827715835697932038086994472992967153458157203515263927122700724185829394242009749623500275097744086287943713325176725026056825526118780911182205159663267460731932980244353093963319821870920923438197069434853715586465526907406427520610434596161874921555654880330849283868627108303443519480095868017334100124996141776253720615355447938179630723051424183753017862353520122959279733800928109661603316651211332797207298977220157900599283708065968420130734604131511731713000373095835504333355327791895089854074892781598388674295991423825582134165565612283385733047241001067437327759196900838457935240979927823852126022996128106492350210300776763307637818447751313386639838393383132182415344906241039150233434991868332785574678745743275775779245559819912256516738059295884695855908608191254415060560322616097437386111746401529104899971910402800098062251719624166763078610677015878862755837139172886147187626976890643763195346570150003698561605169829842702752714678000033377623934048793370875001553167182692272015070351166267047883632531100351746646668175048446051594844951485160198355353492090339629746108502052016159806054309384830005610369405786766354616487192131802767755014547802937690421091043999791129743116050939024805866184322941976226768069411074890603870914613472314894330773764743221902073438830718624695312694461084990656384287403203319082471115823369880173629113482251412553921326255244458213924176559250943797608598704620496070804940921913958415322420892331288875794583310036647889344035359241146604379375160832443944496153789993581900869911996050599784310405275701663271438989574161869715827882750197575077995475275524195373461852137239235339994719926791755784198990955505234102492687748268342172014346529516951275076548462914078752356983575322476733286362417994669563077756699365739373342687440042335259286427173335890039100075447016546908655805099128940956395781294068719046852947770821725197289287972628806046711232529834837443121397388191822858033327918201863810266475860453723386296306458605371382047480509965191381550217130020780517365557977069128400754439728624609391045248711906880990884288951135506273178481165475134169607273075975946600201656175602864376391939948072257515090791354304584465608477014988737582429813663619217435351504681026891038708905464045440326192666556167385237799945654061993893934114309777933732260248617350837859181042119423230876146404893134405095441621312980583950766297226895981765881498903475161963022993162325146648622326292755369017515726916279835876995830166671446619259557232747559511797536250853167959486827824573933989210414128686606551883653013695607717290122697519475787431609032570622346638077036850727601399954992096183922104123881590753269341627596355156848812191280601352197695144625618863422356511514616607841627935904528287491836084942046598983796053629670738232870560234118525439757252861556090975297667023310426214432458152929050695860377032389831032779996364068328009899207216881246988899592625270116685125689705952821288392627375203113946475300713662316349931329876724221047688184577006559678488679730120402085058938323715753791267895342785929169178511661100295760361431186902917794459231442224599321861718172147070252922971880899569076456170383621090942626935872664986525849215915102022515362891964155340220530037453510331656579083446823534674557823192039176625277788409802681903007508638488564494491444927495939132309034567095899949256272405091997692176568301240612343442016162538608607537022480499870217172119971983013336691883064614730596339348237222888584572452593798991888985364502511008599845480922251078830098746559384274123035692943983508180686933408956298927681312768965487858668752426248737435678316638489169590642748331719503472208659004662265707890626648513339062063815467907156885080579798235005549860828631869398987833761341609629787323547009631877967939175410078586058911364868075336560330320672749734170434129242740039186939184299833578260006659983967858066230940017736192576850623758254419350620713457836706268406251990021150762372503460200741832392640379277656909271096971251470428195544070273507774891619953418725419960306483966622212782196216333692555997522981662687038660667241744460314667342019101533529182373294807679347519604565600901482926306723974327925556791733840313726906229714155433938024884417140920706629462774825595293027194805386577803629175807133907688578052247180616676339869231502624817991176861201273884030988039000249671506174866795497754959462514900685216959505126778125591958767937912679315954154908944510104912716197526238405417032457544669956234989231927262555917126751234745867713483484606342078608164099849200879554643981152259773879408456818220227355148214709838342304818824872420325582379513261084606441915128878745300382083031314726402873533345122084201525296921928932552382992130001919121649866357178912294710913078180561699699448560825528711829027644864587588211582357856030095150974122480023822177452728263272097605217601114351067334780653561563867630916660987297222618660210750635584738342666290174735059651517165934474738464812539851546260756501569077335123464095157589227372367655646398187533287550018321441504655128014455495306810545807007742601825271431569031875560854896825905249181202570839949054318488418801755904185285524940230989308293348102009338058285722819309732058191559737529432792150978775936597645969356914810468250318978700931105352374686266244580249522563720788931662700846330090354378026785891046447325945169173538408052499776993097693720813628384662199596371179590471430182631881770133462117148443545036216058370517081438644067370204815243670920766550939520423613805257302744131299459990638863655171637697476010747724266559093446645144261835909160148121416108703658566742146222211048440480141929800486504919811693900256154962515519701937547055742644756553343510539042799306760512833570770294110742978642350151090283556868673283152708282407663853862341752832070610180110358389012145366877324132403240731501016230571658643614128119100751283215196509359933991384260229630770747749854884886893673043535061323194534553675929316332491910665968635230246558470313907442619996600448114401460581841678825540527411550565907333424739760724801643376507631486179104508563237525171504429987495412383067805507829589281780843658925397411155651389906277243297651872917394046162888254948504060426053355854352281414768912501913286650110001413395854034838686056173847414072241523029522688571517746066123149601089214693409425864100506230931621026761240920828174818616461233875495134713054809348029332227703918626790213120952229314287248899628503524379502240096702238246324362116168750591757970131699163806898185910858049863312441358032534943438656370463481813600967798629583277549567876017932037747725627273292109081319446348821175930878236898445840866570160747546104827838903443480630104659664347853831489017893201881161132959030746515429991302562525070652096289666848372978381110626894586825246302660406375676821427753942907944656713541247556951463686937025605090583691127748950870596492074372190405747325980047518586975382180796599319136677379696028910108372301706701164009444627058033786243342851462066298975987304140806341230661322933851232563676909699490520742652012938992686290034098080174789603666407910331133982412656259067769559410715433289421364089447499334355228239884954699290687172440675357131749382639078395461858883731571287622459556713438026307147705306107316791168033727734576274599490258113721593661033189049265342868861874803310798542337160451746257213006443521013663352573632222554446712472129955250566197881704906146631203661636813383040907217639502802095663172478678763748930291007312981939112447361120090377688188202627830567364718846738425972814125300678348243552253218750859017656756005384063478815704113108059259407479197046578907389827539650872329256569075670870352486475560586956788766912427192770430426487199587743714797558386237122784501473762287634121458192082283456498079969641769633613863456199820597160783796908110872383831494231440552923807934244388781074150771540370277733842922821004519287163080886052669557138878801420467776655549301671695590953607411589139244471260858353035890792991502735081413490191608676946111928259323859899870490627141092789122735933840760279166188180341289832604007886080834552941949221106837218810031778041543823041418962260961014892446892703891975265372784086060397700600381573688747443814240833895044324402117580222044472227149579249115443198999457023958406562649998269611062241669571671340183738694660482642991602227824997654617431744584599540870501445575879027261875930238781280289661241850449605978768130627736575745556337573253608391349096051007696838224390072802802886741448663967454164402070662675788069185548969598025518625674834086402599757547679212795910990767719829927470055651664249276250471254695631167769684719545165417731747977115796440949336505636117393987413972488789180668448311577289127748830499853157901939647147686728757009916427307355467048062948790556601915371239224137157307845812988158111346559992976959081148412008438573730817632409836768271710280622567153237356766293533507367127812497897306376230786606086406728904790930036917878539133859312752142871585707120506548103225358273869714080654847517625654868951471121997841400461383744952273403980067006966455728460758114797555588073299812742825111638782814628622118372229914183415270199732954437896471056474586447669470892198648782305656354812099164585772414427745294492192471813353613451280794245157301201788551804314413747424638103901282917801246425309089236181707805798505705576956183368608896602821713705709018909575646263927556539677091040392720444734041659546052513264850347467911976691754720671287742133648189598649256461674474290729070184545344980015311035111027840249008167917092629877673121098080097677797434806403931885137018886108735610281452406711957641177936396353918539276974624304675354316164779567120026079065094087302717142764495174828909492696844179109531344724200210687520779739512795104767223483855444080845830482488865523143049303286215079031392513822222235085207944313604315625001218977518879667966420206543364470733821993780747463510619840372159398959032027042276638099604408475899815156449887532147074666161626940581956245756860346433113988200097167279679311948081238952128019458808763491378901193129535881228791142893881711841495321525291164006295370705986670006599730591852188566921278297208449327674148544890657508765046407187163635426608057912694942037297684293769252374339131677359861305393346379333423659048417920411911196776179644122891370735176217121444797050372850450514299120486457628017547741763862269306806935601980764601493773310835029292382074147122333034934957983951682395144329981435785354620525850991196410931223208831001565112646636292440592690811708428640177247467444063493038293419354480071140000700530376090628718796565260570927439735565906678531790851363916861375243064986805169914587728851347193599958926712954621402156745447916748446036974972448044289063719300819353063392865800924285377813544425669131997183362882686638229075483976245986973185870181636598064267198667380938012722499651389713728173608965742414549526463571008585183393125192379835950759625097239963849639924830506507529910616510986427940335914553612995717481655137272100078000270251653017052587598371088213010961222662118475875067196310748303764516228353418549875647488933237481472504408250012966603651991969633198968918449962398301522397070765618633186919241945009794592283370294333524038405126160103084655021540808539831282467741742476005899735562916096846371710942248098272879869396260893655581857459332594306691805698618956619178951713742304697938456514205488042766818971945358422494084140599862954301315841815874068543753000363305767099695511124902974610640327511212414912427851677498132853694174984457354567514301433604528089385324018651938004949444924698404949650900384523922009671237199537975331757340318729138510297947847545208541004467971304695438476654617895602771176213232130710629404819902656721132384291129248279351565394782319179587710755970592443869663341102833354544135258054908805869104694505319285822291136168759661868974255700010679562031493181625547852047721806002332066648134389399546279564496917871528661463417522606422742421045261236883365430040367030143884220133798222536981156377669417954288047509551171746664928255647243664485993519616212685577694407468994227351235738619835566562103370233259507935910287313334398614400598142411684606865737723830680814307819437017254346847094083666840758368601598507466776032382680329127779622160139398381538965378529771461114734193114519889411489173090586268108314431414565254868530250467215925153752689879576888848349184681554435435800546600334347461379766658298944500677027340891317227649560539153600832420851159857083479253959434174503811081466762118778496380396464922388586600874580284179702645590099851177384898006643316046750085783418731330255109061621446570263917671671535684509983031301893601842599239851744774905188374091328150179505775814283171069797780806136455008289007136130737028720699161976633020240689468100616154633995444083968180823446506194381812285269627635485184779042829572365301493486452584988719191478511651220697405019959761069125618462524809759974533707750437555839035678754734405677262133051634695068317168524338919074288499407190284715637274886680348198325519905621505186557711076669304597790815651814521194062124841346813251353215887068439751466098428679062304724092299712124583014450009205000336312953361010042554527190092727994601566833241166573668708478714701158471616666319232695543147677373559434949191260089275885123235415217836847749284396432281561369905669085179019523169968189340804056402404466144903428241519026710535089279207254378044706028738312402442532774893896009757238290432543661869327092855598439394386760907373829929134704970879591972356090617288555648019406759297846880020118498720334248388356643615866974413704898284311389180003993320744657414856423845115789905605734434783514757235439247522661239663522913635398084885091260731468311817949822895234845629655710159616892340124971180828382709609917535278919356008043389894360379068341480921198714117902281853076962778334190957756962184502726065078998911023413548689233016369820263676682813111618488564510868128675595515797421320856159500286648602585297945904658016474336144319264771731596010787968093083993917432606344516335692349815195524007747321254118675288471717496334230786396137926962021192896815795600447015471027728850920397634217694407539086574906466190284858592265122064994880518574114320500291668185331708880080118033314574887656523513057161972711267136658527598171462839077755956035499033252881092364560753379870189307378380383517080640280009865104522489195639376998387668530717343361366013634067647316839539192338607352308835835582870276437964532701330246686771756790003714510124952180843765994831242106500015663854844787276504816133383369004877823297694633696730779573943310754627890173012416232341849213130625690075878826572290832411271738830297433535819199341178969292703906688282609845091723948251121045381445509708255678727294435793507350869881300281149391746794985612941976941114067422130308938145530880698284272527141588598135613854690087352945044754675095628144041228476997605322390492526656296794890317893617037313650818884296620631098092866954046408684923510793006679721800329799745420240377840103480023232573397541774070772417834468074715457475906147095829473734757575055191367562830081171198409626919215268832654770411831926878153769490924565443611000327739216617440301495289631895108592981229645211626102245437089371904840589847668285763094500627213932060679128391067097393369619524257761350734611224795417268551787699470597360702480346463205352114394930428392446569905532409519805289148829192461115223151494505922754405934182538794779414087944414568076164597838654470680321626926976165226096854814927985530556527846627621096343734621851132794358434513533365760513654270679909067535817038397426055700180336664737513570449673875364634190608366036592449720740452534074212540802971257884391969574374087699355064133978945113115096189430764285874710631191473604109483545219667743738747387684173444577142638194962285454274675537678126804731671907654868224048333912330085474032210470579071762199492774195586557266868663589675600491119355877825453126854022504147659657148746870674354965028821804550175336184203334942029883149615010443241161751849522267411564457690055920251285939033445096908577022410614757940619796937158671182023444696415382990473690699038369242566235376990742884490923381523617256135164629975763984052675168315412553194045093744941197534383215869725900980206981427152037240881429993800872136030470170665973467171625897336625342303267627427537016452714142505785674215078857711420827545864930873238781467300971700587166950512292835157119669054685630909412348159209513596884878676519298205901980771915031890175904240569907435456452653059245737943090688312647978615185625728541459067116608228539089202041807765750160496492465294255907552351327207258521531526318405400342419081688392748149466806662909744811089250865907266181201928551534825262306827749020053925837631663101304939372118628373372733353052187054438401449692351781335650562507168819637621803352929725633615516409862809277629048385113127348947278820948426306698184832217279346588955266979376558433317964890989402346076581451110681171740956971562327745825625951868976680074845777991515393026334897264808737732501198924061387958247838817090527569043000254402217278187318229927643124015038389592600831109848886762644519866017664912561935710468222618024917316929878901556856164251908035265877295103220632900410541275398028499439969469595428366051228467403411439970201893334206502658690040300826080925140788576853966141722746667415276932591011132791665356937988362738084877875277645521527118126117528656064638597039217366269298665826702769351689367778357328947445730018215496432029277843822169468610308799550089217560666400413812316340922912994449014415068306404131536183114584444692520749634374617486870385000258118745958333305135127981425907671625669121475076308955018524355897545240609659780718553453856662687872750535851623133979099769181875804911353212291968421681143182168379498837008395888638552191100655950799707636865634213605633699865911803809238292194796710772949396922040845145104665130110699399061331933013573477673361774436342536019481189591569012253644300072634037950556577782255993614990741043914426932564408905027451298721744686478507571169271688338668864817524441256943771347379538178339106266724249968189487203551463157727386779336671089964678206921640081645807098654164659233306697498566675042800467752025120295084264118886236491454590358132918685803533212422513961399463154042706946424177503108241879392526416274576634274375638514512035917810921805530868349840218107666911389848225227116615842733248790555488090059025988455739076834138744234880934433723949156179068193117021962347923122331663295318477360146197648882268539130676440168227699306309637531051085895226670597655816005445676943968075169273097883904338528606428386551004618029044254976996926374654631932793877652581184819601327204102582278037957901095551273833363018079974617268907093684551974714879849553217501293840322056800995800674407353297908468454586528783378104672326400269882257329074849328949206535290287386585561088306347750456671347489424914335733307614230818314850280863545103827758849660741721454866252354266776397863106089362122058390039456558178485956239176051116199327432530057102908591184933128312780802434692321284926115318900303876933824811069871733716057829137528028844218337535678113785034042435026072546465585798048859306469050057043553969553208820371505437476542125511313941475707560712173632197335840572092173737288961013949698443914419784476171427943486232422111120710861795389748024773264838522747251033220520291966523030178021339666370604674054303662879824550378180023731536764700962555155618577135922553554023298266215120500699897526353446483122444535141875216051292674041877439645821720192465848518948168943182214666450840185894845440016720120322278131272262211529009132210085648981565288113198250858555995022471977506616819198761528932781388262684014223536105224870303399145264299037656777172759372057141179729536102457091167801723050945242295146300617728256924542230901398562806226600031456821354978687716061648123728839168690824561325550046580330786135984756213158888821614195400583620265154352035621461553124377323408714270595774878747396050247647269835370546560837439819391797135278387491374905767121147374563733245296066483223012949871834954464049967193378799102314869388088303480587864034413404412409642953376574418031802738370163175652036861839054474747182412929777023341251209654562079992970929095140150453134242460428090740013342313589636227885399588719667124094576775865324318095237266444725818925370595123773189681687754826899512393818440923094388238296919749154972812761058918292386506750383567047741381537591708684243378097508656897432888988243423595774495973337255451447653456212068492444835807941765164209333657818323640590362979500308817653104377100953720279869275957554820699087142977543024335619802281587027116631783040564282845129318347214582744583339195733217760256083119927345984640360590019452888165484242935483014502302453633784814464204598345782667940675072873132125735665397327364043659186085998677935208697573577949817420498837795974927484827578615737785509495654562620940043302587377840880488924421852290171154873608219277273402118045408053641308069348659911836341992782318887094240087146954318808201336098318202839766927525480367266335136816016764501029141470834573344858587321723831004494140210567135316498138328101601304052129536485261765269727911866672294167277316668133356489037134852000832946344964147094342437203849028185928710395132223476408086884041382523478915892508898111175739043644228348662454090149631899629346250827348045662531176738702646654410055944175313310889815346617331482413595888553144254645653649006058032646406034286083554879805861708409257847046294650950885219507833081527132830591318362836562303111444247393859907393804089637058269131417280853469675905895039433322340643911412432818876989181544106911291055101295528869076848862048154474928655201656664751875644948144650648575560819980373567355440258158273034307982971596400550663860138528592620955350774623438788180853114051307676490090430416579911597566375592919664153339069066253212733387496636076636239695975820604465513721560309318848911330970588542033347614382679947178180263650463047733883413191224883640008456111921521265832477559736615529139033131833847306615455628112454648313180980072389677311986396724530780636338699048303370483274953372197516794584978553941466994887925455502830132562897984302565927549695705450777789705077142528866995703198800198349115729875362860974085787475444136163803958111232099585959119934494603815503977909724239568250862814438116062893932054269282229165722229752086734296281849262674302188639831877982250910392850202118910344673285347197334096173135229699826416716443330026959311450694850399603417115985919919555844700998024102322362625220105690277986448782258298611904806996452789981302225819869491473493182055585199139072321309067930049860172928546673224022682281170354980312454188953356647139299366739755601459845400812041463838671115998960619950917456783977834993037619417237190799650985395150613568372452922317874679139173542563510579006039527860879015313783121961728070970820253366397217432769178714229894116861957027246099258182209087097068965949314368691831486738124374276595859335424599265555681432411864158006614993094163261330229351233940603278138286262989037316591160659010927026610577522563783089483006490152864084860355615073337089997434969907620422875186960561908413416781943558566462122127369914027871252613126853791503123094890837350317421837498448141755948761176476594783994309148577114695172806793465295994920465919497298904397633522279157601085034037583959248117070132359230925193715689462593203098577244973807697294110216197733704658308686311387570258225478835999194085941297629003680166347769247261572606466055084605893926442162647697800310854820032453691494948639614594761598409696719335141086527620446196190278459999579339775885578169117746169082898370209598324425278798373732308630754139906264916413588129264421616841974129139574532867141350689108666246774006302392576195642437634801884397387205410343130236412798307513450444967177259759248854965892149658304243925384619911846886105876428853949938525596471662901643983190199295441807328684205259661063259693696881165001590904645174485248264364389925804825418179023319670337045713340120598877387407343853018614523871757195964231674308957264391950972718154854512497689993478790079867917006665054025110370605537540609157861444836375911932077250855114366895786063306992187947574037529150412896275468990708717418345768639236310024054739873402435471783823651823292800219496164321828166465943298223379056242656098792446549805092126794909219211784015325197897376522272451211571694246123501268048725555323733985060570587329250869120649803169430635611204084246825938537845307389309366066048708683622013630895261232805787370740659596392881917180996582650757104181100736551031010991275825343710814625632307832439912697567699001255932099957716644666727578231507759305593139908867398503875481749641790942055581004274809795611609767972599625479599462304080259976838354924443497739510156843156016094080999377359283274878577782577497475046510006588887539634485089472035274301957110683492027370540373386978556620574714366760908377110174508745137482905967537416098080940571389639404404999091380452198719739989823030675514910353598417735588941462625501181269930318981378975557002892453132760872344236662899317917740373656769182696568294263352931976590280801257267868907985456602153489177545130583915028385541475671302060455136153784321714029520242342522506896575416125243882546175044743340794108414993794429090756902040827369958706285901855496711227059268192641657892272511061539218544788978213971692036514280093734678058277507271089175425408812619053837313551682730430063497729324921191602278004307150970381784702036456280276068428199792768637944017144441063192205873534420626698175048871316160843814127814661714760937808845397463713090870390859920515716886798453000222324586579340833891129701086549782661991875784297910585278078151109969002557575287265343189858748523583674076445820142647827282797296777358901697427443747863924140685653503943962837112549398506978918957989186524908274301014886383948895466434096469413266859180476607542935830603379357884560142075073007629253967216867698334879856926237446052349961302343179410637200453678572164225002435740294970987353749335918577807860762199505662953014373360640828888266900060184750033826448846328016507855164702646400676204639978604841190608794499722528765236883190523737404018634849137493375338279610998569317590556217444126083730497271183558722788063294652318386764602007559142699719458842526974927786101738499593215719754399136801597152127581127693152912459426943028474540951690206331758488331014865230248530481045100018407909518003091580885760460222160622862521353426356600872705128867052642256955649663138463546919128946857066294953728099068691258331414152178826921817134552266771224463505667355574692557266615445564215948977134125892091065848753709325206391192735996881590406254112072923961032109514331880403754647282261854369360464705686991756566543497712852499555018141744753802441391492758014113547536680985434011052434488739756428604188848031748321101079815960902518020219200776073176873808971057648789557198516128827593377346693292390914406909604678741736461802371319692708767643644268680078732414476390819032928254563791226125127168377796359915512745369763909868255932271695651813521673912316229733877128937824143581588390172534607849791543156608364362178894536653950942143343111878333396894638025677875338965326078154692534516058140693765424488461524875163182381083184230646349804951342031715073076146301851222118307907613028498394981078680431057168884069812013615774599679653116309525881276058397859658851063907101266920218186468688071737406254848435724340028653959403551475235194176779229492924495086310361342527280409631283802222987314116910387298483056371350789559139903722678978363863203906358839264848301400753463591548053661097598173811419605765823825273719643520188745017999696391596267728835404175879778629844594453893575378142393973213153252471418014324717406757836765592347807715785242362869902860744291608469076375940195076664514699386643435431699832762805294277458553304628625061702586149913756002821033140613281404431696915512443175421949310901157822236672850791111265709355214345052531609573077499183848328997820723131510142895973419580369829626042518139543730393914274609508026022467971921238813652981301866001132927524695144167017879798009415858601064244437867224474159751981254510422472800573694160257087634113737037446828195398534083050399375853039868425155801748552510849583380708919732565058577578353268765770241477792830096390352239963095145604311609263869954842395218602323038195935096767046471262236774808720404324861860385193049876139935210839908584201720757251923879383432369142066402007849473971260367724996862549194983660769165903844319828599839918476706021016953356590587085918418806603028587761012901426231661953119131940217198008138488396070260790984742373104974112480037889659215665873984330772387166899449505115818939664298746416282630875947001692494697394478035881112294685391927674867446495876900591332060848607314861349230408751704353135407439328338316862029599495104357055337446339583505246214005054110039305703729196780203062047630904907421012186386473703641203760959877048312174098187071877421926786678925734928869816932682440128764379207585205780928179804403366800836290469864750033253260922711521876282487968467979318498183663806519099606696080787568520348569497373928140191907872549503832276745284543674119205804384575482754525341878579136176683969397092050140414415025748252604944977919546282758533438802649854620722500054536967301371869516778807628554850940561886120706878182152515706874340822163417845070362630689181302194800060157727253115402507545597337334828250781548714621243053049858494292589781031287391404232998456723099477961342151954096190142391090434149482141846671778913376510902181564803574283667199834653250238812281381131197179594731090214933613820060270028301088380587856739072324505908084180840566690692330661994286332031853307001440611571063195547385548254500205453788555680840987652730081025982283543248261231023434929179877420506441152216322898667994033468527196298119668725001073115720439896106861364029687962512325685323575566702763066957780606585323073888274899052693745002611086230977210758207826992701980479083445509065215408313174194372393926831766110132652493138105858901787932221407252542329976171876435565918946797380494829276349930306197189429161889279891948077536864720521616702128232650540244072112191658106085175271157586486704041178369320655645929548937838330807666500184705818755962096420590966325492121958166780742848218012962183016936407476221429071552804738727183372836470775814275220971210486194557245645124580649176576802157913626098725356278086277844553433824305470981201778959158778607670787757880843997042200853934561072852123573667172808563071704835798054592453388329896022304071567045043288640270879000434275965793844604578557504936352994208559492619877993291800740813373773467921676730473738024344615647804155532775007781659905862828465849396287606519678126472369187539599673693280178818438900303803929276286347927146620881058910421081626804667061429882795398475867908793730178301842221937914141604117883919417255821358992797696981714458933073045334683066732724422020816902404537662274716524810668019597973728774501242969466562500251655992796063186200958453732340220224050132181032811041361161297704140167431677900129012121436331970101148364559105065938459448881244636418413667291988317972247323328221290624299775995555124532305604159342893144739165294416511778744849851641923667142229457584069814021032420907714474196118831513641642972643029550429118815267159114581961344900219326551638840625036977621482446027410245930737495876320911946483017753478908292794412638618190915181970541670055579152955551410899916076091818479436199525129927690356860355386413034810191434424436877770466520684545884279196412888217438949278427953866061434362633049330758721395497031809319696800989876109611513403556554606250035149813646625945186903233960083031907288190863536137207435920409670814990594557342700086576476310579374254703710657345641564386577188751984705450718647351327089592582593805185610357692024568740353332262186236359746705903465076769620808555365257886295589492649588007499505503976761916046885410152817462558164338382906561203727387842333670118104420843783909343605385702410137535230343129019354592498172610296512614216625390159891279544648172053524202137746329575892013164223434434143426198910749718338235578431352314569358485865183548183987626924222573731266458003253754796623770926971047725557027277211094829292909028949425741300131353718635353316692318743238067607784354291955585169733598654351503531764117471058242492806111695833529636189422910302379731596993587376624974853046799559536056840398895192578522843407071715797171669032128346204236817832915149115708588610931319445888117110916516876431412608780556184448045333593795731359059965062002252029695695584483418302670277704678252311726938020531265956256093001212620937199779928118353534202711238110702949374198915173592575729010724926999298719089474998497936788300535092087153084282715048419439870914521364271270138488698674699930492634274823408381971304919847234208540742525694968489499884674847034854420172513097594560040877622458370833917414961591512202114676199494769095051441992313820329903686310197140101087816873129350885029334666008216538568114092394018829908486231462625575802626802617553078709369241468817448035748103542271064129349254999603742425422727126348084363319384032855607201691703699173739280504121354118505452301414454178502320304645626893067364540867458046085388146211304736601181033641576011980002533869148898381437314447009610423978868583062177411469053028485784229333302565928721424742474036924548764429826300189798106380126165902753695271292439541910409355058009379066652164934454875657061089508626267819210101107234997187751745386703237784973033666500524562007134894431850651775672941741398500423740667193501324292778519121729051625858256388370299983516837706632404068747847037149758871652724256667759505354547621508131886097088496388024698243832291420074195737924978436391532808233114124179258870728626170867979794044069126068561443310209167920148973570101195794678625717883318607596713093801129656130052499185971724160465452147442909245513663128300034118977073956347784124965832247339352408802774142820937876245172363693797879201047105553932407260432484802898919663144203851850596514407639478452266389972968858120177360743530187951300207934135376578467144329338715058973212340510473359363224185074434739045422169726005820459986197908236793054445211982178196642168793813418010480521171723516891604643019210854561640694587418764012955245053139407638924571763087623147445945822741162557197785524045217733982408371703087344148070699172849154103079031714258616044210446540773517236702408515271148104643819707726419680147054510809810375922624696920691140192487548348738129285433251558436955680739756152301625496877953741772104439169769283697047689181092217895322650777507608424934596555238812927664800360604642554500434010788197963642847683475439510007987190600794344630995888036753664962788194644312341581876145047099791800857478493712291843116930107598315809786807177077701254984091731827046893562176733251392095058896809240455419378409863438482420215995642945651860858251813338451059457726911420168222408145921552810468305525332524913963802245323566118999286242347211172240429565411476716169646920155844967745110465563150902365707833538316914059855414917516653496603800655773675794420406005620448722470490410394091742140490390981866953938652407695020526480439087533138688689466892840384652085864181819744797148445683134320205490576140000719279090550480892735282267190769258164970055011884357584871424135979764986580248257963056220494532191697211966877854775704201988260610861657999543282136396864470244171337019907332059131153102055351634087405569261574960768665462335459780050626183379096674503373593462891251052911745998793016981140525608281465026823180431556283099460868881345011850923411555134375947466305516708305573369996817073336564036841368339680339928290088096712597499864617927522888452128892257775518723051738671216185792333864058999373181716852578633276627179473847220807957443060587950514735079926794432062519754389469030669579863045373537601137683102428032127400190699546980145425550864139177801536861373768206127685456686240728495592711325948857574637659711500707153310168347257999480696446754964509615334141400315733411864786536959913887649497695990521002398717549805202926786091514084334603770210145413052867289886253828518365955581524309490775399680135246600718348039637443982823781257345966744750578131714221234962904511450543657729125674241497532279721215340567854346447368715952746886657076823803480851292022389472622709803692580539434360247601093641771625912449640394804328272776064510938787533293355432769732982883252941546399248825815573545649858067640708360012870526979646042394861785290574978055373809377519164243115971203135242487861890744775690764950313226509970295071733526117440291676260474207669887036124089185120859372719705649124363190160182932677110889960871716982026570158138928745067243026289096366608374204192099752803867703649158719062509264300607499441353802434712382714613060655296459724560524785424327737743697937499949403770403869825065199861167324700553793958362673376478737466011884562883098447089962000154708595945231917112736727143859709117259341518084449401650134874043880520610641064315911472187139178971369863846567461253506607270813575493566787038211027296219776341680041182796270712514521927183600087780752702533352587293857029058159598451381601380636009501116252161643513679805026942417957562041631681527455916995783502334589267159110395807001740360226778251250984625471793748077262757002043145536125848722545234360703752252545001319770830467635016402059441594197846434527553196697465398526052859939728690373828338498570749991677844217009575025526613409018545418723348618192486738121793003001463075597105308947296430530468420617343602051280894021027875271899134674110393034456222600869472300916467352497594971679441046245377917735542930135858034172867609754039897913229453607228493313285744270642320844259158165741998165857445756183726943190298799664636142856169220493725575448791223937963803563712072943372753906498799155112335682690705891505992133101055292454955172983280533106223985598462685040645648391442013451979241888401286564382798703976458855583970474225386811827847466027484602185210495400970299716557608191559572213830670536160616886195772753785826951666065498769977105500632733290697574218582874098462789142455036465968161794504165919889542623490830535762618512617516948802262721701716601370007815332249559609979622727092584189450687159246621654894691311486051772242687888047906928725720915749234676398726808246635224547351838192804135734825849538048010399670787171171700628596201421415808443704095036142036783710746663261929109356943686592362280130748842439792210717904839987484436572669346722714452298505116292443960817960185438705153949880397658324264568606478794409935437124993045876017253161780808451483749310020059302279050473049024702920991569744045503684067885615711726783016568356246260424884738544656713254221966605873865736237784983716239789745957284237554062280564847937138347817271615641365022075271806869649144665543039860397803514773992071146749361109341521815396951312987007889284388560783916680895645294401226081417750838388802894401345257272265224947156953556631965228197552768332853464461028741565641156426048251488874041095256751879576507419616075961095440390472697457728856513466686174881677561104504297128800957936861348593425215898832791690494655330244524924822224020447313686895874670136213245261587883453731946691370522874842081792885953901301431259883603529665747905766807601850688593216297896773401280133638732842673958114311150484235809794674109250014730341648220291400431376425112880654659352003307247844532843995235258186345876539427681213822330471206687412322670437298054199166846426484198935509514275350543876075586023313424567010249277852468731847786250451229458051258741863644969179399676852747644674453037899485664032801109828755938484791599438533814334692704804786014471411945682286232249368827417839039810600141734942969985887123134226472326378044707148606409066452480044357378220584208467615686073906531339140080461371276511940674350264224521295442186576551547388369560831938308579499900988615996763746465268717458374847996876659333937991854740605189339255868423851373817234463353535330489388924493349585874106358530923640670343414106418597429674012595712895857649337135307281285389144544241207990435577855181621363926950962366036723640990063453142277312932377784169461418207156371660263721510296379118701155611720689673768509029930847352344095823979668459276708297351793279731095081796841298712332067653632720522094650096397399549280188331536575040147273998086470872458679426351762166993079151911472616395573979363700593364989927000441785583547477222927814444827100441102138404612036898180130086151759767893860583101981901911726705378830903148293081080304044090157313994566924061234469351185753968576155725508541915782869326706290685643632150971481924325865024981915995478588647342276553439403772519179506800590630666260076420902157335585676829182682036035701603655720368973221317120156141939740863389997413658680445692995242727020386459033931287721932909117234362927821553125277754475809540556190209738006717631691601332322247227845290959863393451146460476765709684626137095395734800322614382241353175875523668523738170636481174895941397471106418102890320172496279554569532811256488522998219491444552345755573199925900565321744162852491501592892422189209886593525511340855269178443845102586702402153505543416093875741821426420044719912423687257987486476882642622950294054049657020025283372738470060925946958365683209088466802620891456207808902390868983371884351740161869827154259449371527128109501270097403358719261391438972721863280219407010145703054687017892219500584272753820379227983990064311737006125774401306252816019107429047971366223886093415886478266976636486920907181643195121578530720356885397957885366369652453723335954020832065916223203964391382041758886268993044155391107502465813365821054898436240769307671699927623248316299762575795558577249303945352345139372904025519951783276702280141788226428147366131017785299253114336670486863780973119369936208605404546939623174234938523124882658649096286965610211922601386634938162328119992354194035348125854813056858130525745189608881288180304589918617081609753848276583539731814435663338718332343330104352280630229572577018371672752413580810622670143237525310463450367290546261090868691808448384703475775605106677432280809060238269895491327138332426666663055886991777451826754082767406201517665693506619925598888058832264384631412127189296037791388981306876205097678734603167209981225710531271907777449640685179001778242823611164968063655766754703054310180448089669680398528232350325436119840436197736797240084231810418176011724227352097715694189999129680124186926417787842776515741021041057341031550547970278711289462691919978242786090756312350230563975939302153311428793703653068260586330277186321670957389556543593901579024335651940379239144188190042281126216534978793620521912387478578098926560987402702615988905284990197941723530346121397436173069367017290163973461641401511988379278928357567091623946183265111747011106735132038510682207439462803694432467191169183878449256868534714132510186386241991095124205691312084638659111016512382491097299284159492416144977732237551273353244250009907422534135401052676302875825551271372653719757437552391947418011126584613464564307750453312180027194820861605228883065361989379603043424187337430402975931017506166212046940693316609603566180716617930138791541977721268696666733486881440108637204079491488696002844210875494801163329671839988389357629541977736706208959436810965379935871791982428202671990176761967630858585640481331130341849071476445962676898414334357789948913643481244874082716569343621295741756182934913048242555989388883518495127119167389326517751513709650154147633776855735268588005603000626761904251427138021848920125406522923260853987297515220245384044031641956213355802100702194243683441271948394847988024141271944678860675022764193105139268539214521425932759411734777151255554672250937741764912592732008171804826027206780056677936794461513216489535330177872545949976122986640653213276645652626338422784759533707435876226291579539579547347581504524554139776514751696180840304175835868526064332636094189218783017842169098903813185752215007809524748458360133790442209800046538512776216092987674649952211973751274852250370368527433887933259906411567166155501847044775437243268460921140338640087002380797151826299257632615294558206519498169293043640810054944156302298500202264847659409564808155985113297200300688267432194906464674107260212230162683265726358844162618607667071996213512013019387280590560669731462530171142950343580400744179966532706426520524559534881696476609626890009359933278980119183398515630546218000055120784774227058446067666348445733070903670656205543529294380777030321653648897092844607900910042570839782690553438556607582267979595167396785088463909486400145221065117782219745698608951296852814937442295946022732051983072532502613621025540988479592352590118318252735042732351037362852414992344017768611019205517513041195535808391849639163492414807259021349813178458104616372541841516179939606513575000992674604231344721237773738481042660341254563182686297800000924875566912284142483018012688342933032806201376016904166555967342404720862481168273532374737905419068298104398385509370564318162571500267996908306107557719620931830249796381098553041414301525534753486807997678516829171140440989670916225576154130635277100796595571549761021895194360687796839080237734783757054758331646450304673345135669724580957571329518330049704518869349227012717672113693621901414276791022416638573554029845727027168941607822739618486718750185227478769178627583689417768250528060459586907026729129719552137584461487691106089798777581111836653302181418787205629944930110453168422689800452440310915457182882451227807277820862230521068439559544809470054260313017218449516218186013367146806479259695447741024676455237228502649114869869308414660650832668011584918103380417281097021429763096343874025419132281568847022850946602781099234290650799028816530526760784272090394658260379538082961720427005913596566859562928293683936600305150174998835933631624187829977754493245501033495967563436854561007684282830887902933010501484182822681399399556628023136272535273231919773666053056827918418469921983442420178887535887629155459678701918943043684396725658667800453029377216435975390604228404485620938493004797502231873809070124625830382938868369826747262560050699878019824977639024584887136449843522940206454568656026955047887874764209831400619925209821605374436618312178451896452278573187076764151428152281113636579741835860090689301955601293188200950896758988913027072925021399493244090087062206978559439033382966868465497084677430185686412919545257652359395600284254022251629778547679838599333694378756901586800574926515077566431400477633561570464398116779870533581534670137410523076781463834310349233671202513729150791938109246011111387256913404081240355089871296544026521254788270221862770373123146046093062837812173334513553329881542542319899870303897865736158546192625592194317581182088694838162335430391951520398832058562322446145265016038001920076055081419152414877422719684426190435192025842167757734704600558960049397270718166505394480681643847014789454962122458311758620490564676806780537306606908821720523868493368769371901409409005211188832307926935183563980505620914762789175061942919667636792910844547412228085727834144366037051185756521881812818234392946951764161691756884906550174541402096957271331970542269932442057308645787382542814589865773763908863325358325434114514295064107039971893675166289442299366669087955676281096272024076049484246770029711290247388482044889654578597172039384555987559449311041714266338364551020255426199519565381821426763008044103648019624616323132700473179068555108272046831572043265436776358855328011388143031693268108255202597833024923421888673216720379872732444004501909960708435636497115591844531640445296687516813663043773300690452679915344066136705339678360491916848060645867991791818073328499298870908243657956976355902281395558854729846419126226625452919277084559132694441689721096688271435523695303820044533909424999905839908419049493643265937517813071481863678455525262378838461608068034919250039420360540092795161200582992908377611038162585845717222185479666618154103221731744271980046126559044903349560804367340769527099850972091373242668353194601653546246816840542760874517437380997743750573360266095847393197745913755709853338098572734094057747586461959305238906268946005598159277462134587144243925544382437062161612299307350788315941433626192886891806490599061736550078265082794172683451653803502186626850790648400395039393377360187139763482744240536638087135954794671539516447572217940357182927288567832799027991052306919233822070757728446503067721376727969209787770844185515524419299450330888780208937615379696206777852731071708367284666714428941157068159189457668776119050934554341314385806190874979569784433653512098023044267932752677553842846026643599697092281666768191013457078554204175805483416339335722375271405994586691536581581496520043052516095840318324608209374768025284854183199595250646305225380674844625542675776591212097044097137152144680128006409311945924776761931334757038120080227331964448363612396939508436612910441761696912537934105521273179301263188358993302692637933709481683504679218321213511531783807209319119538554809211548519486231038174819728725532168859220898061701370917900511952918513205353450621866115966715664555254846010473450906391949959029093536806462790727610852961248110151550274904865560708436280051581244252875136410180224368998277105671474910813840745762652458705786166058777720839109538905847859327420221105450854303430034490417876138580610113477599938718622564616810736776168357993738505828231768587992524692805568761641422101316446497386122931412686679940716781606631876185627853012323640091970576666967186391177733725705320308701695439740630121235095752956983955300413050106096755504050525404014574120971255762234395390413767145507603456919785391685434298235363923373641046165006428202662240648261356988793253798764126458370610298801242594371870621606930393742771532017949768727187738588110483995562913658602597809278488444815860624749547285646343048960533315281925218747098388241339116130180646881104144940608526250429154120360945699990086231221929421421659692580991126275781197396814004329638747022106895288631518472261560307535709665292597199595687102933215216327715207840196521818884961193446010616248314737716016719371050803429678656002384823438353945807071468114560333536936976030876994307515768218774131297683949081464298940861376750383801888583727150531166425054080502239844403036188577704528560953194584585772504219408261217728581106247323264742491534265882033849280127885567654022638885456202619462675096570752887343562577148547906997822684634660216901189271185563582882690098806633534427005747219370763005194216957519099724112741048163117098797188662394781148369440430240033283911089610701146921677031810316395662604564910060230746963196486283807228252683070397263141385540927536961713182011594399437423725448709896022516299641241147070589163804515199364518281146233036797028010804922689316212817140113816410385679073047876440511857871436998830471109051501953615765347939267396141644081399325699007615181662571388301412643683712137381458448117887278701509862417367234927016494585345704953696538698108259388872432652732443358198681672246375793878027229448598877474148388901776149973366990826203671153464036867304045473004896111864459778755483248075353473748367428895090494361062818050250589865385844594776901806024287849619891618533710686401962871847531472513548169230839391957844123145725160973443251198399641474488826965143400587295502548634915939282595711276944734931716127603441503112025578639700875429372196957082050591828002916910647192091896587542859696299949166960445763207922133509075579907587191395802597119318381361141654268576056377979634797963764057274596890491800552093504581352989105517988140814163963562031668048120816570915781892249619316888800001510034851407919292225350239052064767335444731859127463161616180418560612621257495252532615655556268626023497746976172816717854875990866756634031355880556065493108010157569234136695139897914239909019522075637691848367580274023287229685126653801959409038265085565120644555409849154093358978377030930305188239404385857083647820075380458908716024489903494102271208026083058950208956827370579061956529737175066716391873606887220628243440188290791425857718484547256732270713470063931084033434604135496992159744767097442171453759343276711169737676498704417628956810787652604860095889980731371083042408776148731267686836893457013918737339380787932731406940093424043874242390731859550429556527641632365085223259102117950323593473927462898951847666625687623881450410100381115175015902248699912505308650481313387014236013856725417430741870522814048587645787351460212442621303073464108093276514052631802814694579510961105534881785297148412750278975251529062391282388039994076201343995077751324264061522336991137141974049144986949758628586429193623466819525272405142094877016826307644965495163361925739653442787025128935315418656178828212076292885277773286684294843693859374435428370286642307941727006645442320756909032915060953257784537721759691285406516562497844879590262049040047342738935094271495991216270718325903288839809066650519719153256134201824789657378700673693940283354772883180338144002365296071189365557221626087900087316331349860934741870809973752731214600059010990530488603194642748621339056328091835620284715923030213288581081457715440314753514526798997604499931290680400395362838738690673885509143928528977031060918579151674048362997928698057301653859983613027144785722410234959936835758509877649505434478246343710540972266426058199657415314428917628340738257647735534934569835336417661656918316167357583570964411771608116458002819305672062313070329600092230872769951744662520775793448193253642641528654762036799196912935799527608326449996120244909441300832016295107345102289627037572355787911261853330448330107178225645998269974511423328701002318884117335367445302637779660409863989017757701653394732263291829892269359987961658167915921513563809095559876275340149676636564187999573399618519838313831648636401957530743083945521664728003741874470486837032623518561250303082548797927940322469300831678048268654597365276343788840645621473635176958886550725451152705399206557360394524282338319706980106228119059357377911721968154524593831909766274090143870869596540186025568415306749970846777164930079040619433136980020795306081788167196855229061899088102741777552526269351616069560001240050495325652599233158222158286575606739582283176605895848095829563148282392281505591207430060828036704042239996757340874995503721154804653867584525761962762076695190441509317026725196506572831837517798386573117659616042586737889361983534628262187957213956241330352493290558904331715870860298076331719456950656296731961757738416618079960579881848271137256396937984067133955734145206515854500534139897817705204478800586361815295544495414202030686212585206898409368055045041448385534783036968316422265530437478969232886387166774207577983162994042254960549435987507083475834164373698163097901798897104309773304730132248818826200400637356123530378401080772246302522048057072059531443153456076024082503696287767574792432241113837778296006750978682855454864657486393009402509170745184005416118944288394576665865267253076558527805290016632579940569810480037385761278670640123162327831094950310279013612774419401174385206859572518494432252566364650541855790344803098384492596253812288170992529992887153548082859433657134084136502522640796661210962532070489571978030601160783844043963612098424587590043958475057601538057511696242225186892478094751070446328528100309446692124111515662161977737798961357318379326695371352121899094921133868992165361653684359192939582689946347651018484895760434005094569581924487284495433473604525660327687795520554166247348693853786640126820056332260753065695312094300836566944471877327278943974002960037944809067883386136641518959231500431455957552529140863942535992125465531977877294247352087785871271466073715631032261468196003224709579675924307702529406440229438344422915602905310407493455830459252821226031688038531975287029126040872610429628530724171909616022590386207559862307399969897966291699288386825555195363021304604426878584699361902142978967193397384419328590096752628931054334923069139586672988723745988280063590426332647282617344527372142019395579343781772597444815592450464935237140407672625801990369306937346440126673611038464546696526815807259585225532136668542472404617315146473423524002555940018731065665482133508193541705058747931211297042946078945013637459772849360863223146360520124239363684613349656653294703091536628552860906463575855649193106708982843190100996779788890505323365326315868541887610513293793458921925800243392605520957652605981663538475005161195739422972625955577548834071119567572825403842571792775328488257172870220207680549833975449904390629556036872580176954166484065222342216435500143231697295762111536274507885064453795464679161525482502364008056500860945483155353208958319915511978949085007930120498955246826355246515915068734605556902242204761703363039659978175853120512614374505997053042997572850177481184414620878281843137454048693253963196698931333166399102595696774905518074499090003492114355569717922809593684882158001917648342455466954811427780065276003056553821440291424514372228983061799632201321911222296389723852615956752331884713725442935978164657376147837202780339842763708176290301077817752495774129385227072044401169551620541069170232203519233094952111281834672975293331638020773696801344377793347296243765443980938382746569972019193565828030481929366989602444635248635126589675339651338541015928988098193361743442971440958872995395918922590869200892217434649368384056815890260876097503705571223759037537371882038431942348555770226058425151278372326687946349439243084242264596166739225396674598759824454555119492985366053628904233529676821636859933849847246145460577768697978338494961282409239455052803211682411531845561196459141685565487238437166331439753325210763240925082439253553123166720209232079329889032496606093912298022148031918471026105663209484202774654842191113531670014255236436788560971662267921869273287640066780441231331583467740117215994675626494374767191694707576671248105181064302973440378534873995133104576551645991161294508731766844310067108843015516064647627113034143182369592709768865734198974330530018734410180426168390243132190435225551452355733941670569165846242242202129942337666508636177947589641592687357212760976134015078366806454529910294122972507091658821207366908623160961467304048776571035953775328880489070070667973087009210199139127794723451965771515244838153950608552876630987393535760620889334058630566352789433016968696284072342675842196433680626136992459393034456033523558525161604202775643131483205915131611666510175146863779439111270891996330226605769507515809512953696922791726068071779605082581270071122550393369712745616737913713813950487399033242295025143855931536126009518864956362997360983476428514645306142546818748435366524829261718822502585102594098513827304279347400021233237070704770123213197722072833412385644555450740562836458887156196145649877950843960718290305342515810122338717929156796931580077388788644589679869581092494694810948318073064367410149865637086335726038932604393669279276068080869041803958894477143157740492329044345606926635858605356718835277417156054641093984942019831346192874618212076620834555291170115376553125736988144107082459073938899611325790545887009341364260395344056003927233909663867945014689652355911968499666178969637587753931857839012408016961464050503705326374990020614223934529751315495977604196700269968140443800047552550492669643193751908007854903352127303815098615611055763055763320918781853539391127322408400051129329397015389934745771287470970924681518570366353194221711013465662377124587093193599761416280076535590186177411654664715026249848179573900897229880621601433716421142503108020824147945036553267637904132159519277512399995334890766826675447007576675846201661005038101647137919975922633076858225573014303500574042683815423297425652176364835255315400058902657261678998140411209469457213730892128354429974001830061731771903926532107685286225996985739761069034459804185166078547403384454270897460079146263712040922752194635723953061994321217600791027108482609882719167627810101176058332788408452146357070702788924451922645196182206330311585505256677122690376632847908050599445533320996928753235971140360950383708361686800861730410497088208757876833491076074112538608104339913476526027653178052839704565107055970781072393750947206985794263990264124676894817000833992711573924895619639449255036538867400664142970762489150441565269358822817086695330632925600198847563254390901542569382414221104720461328906555967873350261187822656215671722772845782025480267423651470127861562879990405766876798971896611795680342391375988025541049630063880292198089617363782928514270800500138290901864692478546428568225368856380316933739046686644544662340337010283955797131158283586362375543519852326176952587058807197584070847636752575589949838294573130574719630158007248904131263885003750478789395966969483003994056137973990613827854551857075243277845108788699356972149450358416418119330562907776816589910310144736714314087206197569355067500395218716002124622506229289401084372711125534214768545693497246410066909614697115207438044133500538482128836449051789460738575667056955944141647079112187172164544217414604981235336098612255938939148905229533542130027261817829448926080124530686815867206943952280607460471287171641225323363163308200254375962351484104155253563715680893858396940148900267590512773155170554518250075168278856788775100703200018377570754830243851482300218191868952724434289280161336698569958312179993760893893438852225202047933550766435621080622031664336692281527951143999278045643309509959861636324338229345998370636650041502036836086648842321133072554953249535577647498655913400071532566066578084909889425617012698957791893818024867220565608569852681003120987560370534789407147554534375218430270257396796431417467515545697650484240093074147031675254755474402056882859013199341010755483495312865536462500944795725364529529303107458785953658820606289417126592419411372185504249902879986452150947563180520667824665453605007545337516293374663718797983384350132432508159235483042409747546704597817143682094418274394896863490054949119778579691078073295586062398625352208246525980721996384517726696759578288247227696639666774276684309739799482993152294490660715854744629329393000650473047912456856046731099631431242573535546660933822485089533632888693226859961209468271457823618551230465726956254378760656498362836319687586662412382488388957147851751469048748573014099614353522516550356143720653370119719863359123952037447792013559318250753040300182005541044248645854728404918461893457866387969612589204463887809756729244641141966998065339205460748960302002151028070333815651649115542719732078799462936035435112438040375684623956492279340656938757558683826588535660065431154778605805647039349372311347095358271801314636432731168903410703857296328693553544822373317043294604171479356236262270981479245730643776922610090126212706222269541369459407283975381311264297532131373636782164634143734003951751247038235547393884034262747589032136307334274570046761387146071433539422259735625128331753454007706758246752674292994815448214918844141388386315464735311419755410950762590637611623685953682164463700350533932802087174075187265921432225980864115426959817648768000064988842092400130805885493449514411169960825610678349206433337615214072428392683375962840905545394729402752005616926085466271012989285106877597116544804169049637160236419045681458690618503075581898338354056789399883118774166273682475346930346791158575681864575452447355857829776662524157990181036809520394700221635320653732362036698139515602697254007779454587203354735438941954599001527863950998457818399130051510198657383168452455583740762745171373507455098024436594002300457279954615297487955165609616350105484723535604424549114049626262257061789331368097121218244168558301812044084861707949048306305372989902028285992329787840918065069939941092585326694811159965384495644257455958502621303344035916550405607028780334275305071359998362756577001270906276016830614448801286793948502865419642598957918490679735573802870474408771236062798031638578475775936002778086079358427993599893976724927335870448583899662490478118065485880955426141178630615270322689317829719141893295122248482274734560866859399507334421647050731087049902939315310022307047741314494131879698271080030897048009638624778201229096858749665428331275251612461104851592135467893524747607080641810757500737947174089643072997247223477215793249396670333320725691713896761860311804611223371026162677422940744550917080540781930564829380211272907358740604149096876746619561856010325073148089477620246035732273346822217432121799775784319801257042102671767597987223336969063046988020672084055212582469055011737091898815455451183276086624697089342516119885120115873286214207205167025444340142753135707531755489308775895062967021393794623366634357446884555759935652987017049931167620982928054235963346911970976816653554479051909268113948972398673480633046186140607190018104315459456097649065698633678118048804453168786511685566980275470043401356336211471647626118185330859897556905878203138124696295255861772509065101774393983606445376786170723783122642878684146538292027904274291566699329351776571986134224606753468809909275951152588778404547139464142868558021935728023373082288204242557632540555498331405059187889144024566495993821026057856734750933764989653511741214734260527110067437030840140885299476942096554023567791410679182409703848511311463831751887788374402440510354690559770602795133604973957843334885263455917073943643079103784595015605894789098698323629646784862590381304650556121879286924471795562562931149471725180930553557033959867604300538352841110904907606486466010331478170575023978699182156679863155850510541812363688453706753264698330371435487293676677962406112066052590699854005765579359199375897164650611615663251589370303917607367402143798433438372767937187373261403116551070165140207055552543406552186552595277231297772605779719265018613643088152223577365664297719895393766865622590675736694573791204829151861844397529317648550513467798550086446233177031555083391904144580728949196227201514983849387369508238055204398248514038770467024653416425741819189423711143333737457435239048370789537831897725779419710389099007353141999087374620941174564642406160085743698527972596858548129897160801126587294345477766424860649593147563099004883165622315553948738264691315597676839968820452436590450470052948572317801042265947824798043430982124968671417668255267216654538362380416880365059426033521727554742598333029708502068480783301577380866408361206418005785288768586396567893696768290967436873750095822347871319067529507459343080247970091228149724619594070506386312148356635625192658137155246801186101126845159482419161922924715703787196513388374785252363957584469771391835319133836154637778445718970363534674270608848865977458158785833845963141958237315752279834536304072913764091578345257116578465009709708022727481298798226035306046386311352251119561645123270116436758184702304153339711760053869072700510084081221377870790383988354345575523890871633575625481883587192125836676624565149358245514144602347289908317491933001219145748663858853247260915399098214741390197337366269066545456673150533510353761213590005796042041348961439779333153991636298864100294141426548835705795038200413013636693183096051747592447023672555265025633932869583766707131394901459720067126505610914212153442923783223110130005980331929925429611244542900973756556517238461885355177502885794277467036593647215933778218961498274858897498002775277405519380480797525100372711929805814113910120628163780026838528437575409808104918958999948176522109527742008258130779341255911852668224248724666551997371446007877984137082593837872171861980181881765525666475483211851398904781799362116436009942066982724366449779321349090614541444438054882996350577316575530557622142529757116480424574096147207759541748897339820448571928807120337908819179663203726774684139108233382088610872283175328169455792864889718050434841125149797626505712458174698508293319499552020754446853090968336449711006066988214568376485774164648532883303284755586043003267809532083357285759805840486283990394706935992502859255430294244919964602030905913614052948870222917755284149785033277000028407631425338927671775725060546004265360058310571421797716936106823881141766723536562419507402363488160865667132559970049125309509485137101315763760149230266996604813274060967690195976324063726061529963493506713895511338732926791758660448380717483909162902730799615544080571317683672704422173637402169222739922882643415664724225306937064324195550215449549890394484631486419291245630116471213298012258377639524811431262848154540650584172276559710812461189815418846160923642109901853192053851949042359662215246312206248417909028876696954505444743264698031500628812078955505729491339347433517389850091652074804824744858987369631112229179580897568055072707561027268099689816892075626044475582070001811289910550548986899926022591541211524951115413708129676025937757012348504982357395129733061244653295430229572804202078849171200357716608197496878021310057446934715736455095160063774860197474970527168777539881271226298883803350413222068126579550436540337383342314332342432890805393663782753597774199178496524036344667829970493350945248379085914244229197071211050123800111040048693757004258106251857509034827816899757588195375410443938977137217528587782572229472954331805685323581962634096012679289378568260801227229340348997400176301615348333584423786104251235083964328695093577451072250896730435413387402862948821389152851390918313301522547070445771469211659867382084839092812492259956668439673614692633227310095514020942128266198777251945680467179858522453443847457329903558321429460842653098470562810717064297508858772891082192150493526137434808822787660942774424486556952167412417268796632276636283497297281018791416336959731229927354863138241513680165468822506351755674396280182446464765294573328471042894556648604137547741850331382463091337198690969853493579821231509901152496312767427442552822807327712363701334696017803673136662217611397065199727107367491776859948291110533413903943575821811290275043920859525843074813752004166980530965888578315375065068332864391485298244857879273519090788854373004011434964306539034236314565195036247700702722175679939032824475051392920832828145811079437825876606303028592850052862343539965382673240008795382972410975295686997428597184069253556305887717643525857724356904487976937238210614920254292608659768186735392815311468137163453051202813686221694901130888126547306649232486353702779818885468618158410333182654837934371797428117755995358967094784359229125992107479001251817585339828637885041906525817478596623742812444673446904070778374198929693439012287222763881486042983165594321725838137870213875087078768246962574168694885814061461771948133627101226217983365419765114905838336617786243384869902180332049826035091623157647163635185950837396716311799284837270732863075560065406635025079599870498432325276979456511725223319978663095459916135248003479255141778442605385658241563352256279268036587185031318683103561825071945115734479669181345819189072202536928650967221812464006201346048398097342931001230210462679059850698022528877017294353331215581971112486074308115666799117518669676535035032175387770026160469042203696409410556252486064119272060317733998038395404316521274189464988654295966922265114582184249810409150465541154113256006709986165294779303790708649638169477211107363506819051818534014561420431928225328103973087462065006566557440118705909164381409719838076761532929070215064837997507695346723353477138350938093756939782640294348643375938817034012081496427933297272346495005672788339875773973952969684157047785415364234849406441754425314472936835769334061974052777461154085877492038061885834496281205160112487008942820921234755214106082670612082529694002931878686239862447158689181149047115105595275908917739390790713016878572813000399947229551100760219887187556466974468876292621104988596629988095138050648859368494651283720797972336023271331728756873434239162378806405780154783726333135769673964426208029209470804655542101282159509873851165611171261725914312220237617137089174403048235590964556963877906484538691425492707611331607688195489807273637880254740558188235533889707262118475974212433564005727873914957893426663324022388778798578812090339121306472765749290667802354363366777147298996050806589094461901444450644675111678518485282737393635745022082969633206203822920658316884043957495209837750449128229675554592877744421308740186889077480466187314205629435862803227293628138038647607936180071535040276781688959673128807174921955859794558999901985516017003468057176174677492606653567606132057454396093189994237671540423846723362707035319635330802424623871628998253539646113504250542706191499991921963401718228676534267545612792590072480048858096099531320907030695933575907744855161621538204483406031570002520591354126516279088865102239495323990265866953555132093309048039127101178978584528286028561421501325362530781098482230289751114001296065766365949970480752636840776443520686201507756814820759072357941786331618010185902732214834725873153287777403634233799918958578212676684956189738689752632210516478598321998216168858934166871835171725651629485843763201734229071010199423103745214440995930802831070719280053626378014177117510839061655975673192560872536584620545601212806281109302873576619506425128205766976904948587392255038821845277898464368829593436272435602467941956682572066818976359444166267211975203708246184474403017688069803738085004759850483039649735355073741023993568729858392249069949934043511646623865781698957715761049540833507847535743177231923762695870282962011356955917045196389027304529077624678328078256088858996640728283466284813786720735601906183193377636141005444617048363987001396681035312601590897966963309795783342416859977356150665379376801944078109134189385658699565121096286554759814719497935722999501433487126581806897371816586987065941769744759188056931193134167426936008849422874073329995153733480930950280071295821796068742394921535422359080364502590411571951749134239547318830362615351873301536815846213038441422609789473492210412938859045499454292869756487439479505403538010067703253677219396378877502095400610806726571812226019588406512977738929877123045743960289947368914455703173216535355210221255802912140052049201370908129296583616632088102284585289913985188326789728304408476088996671714894266836674902551663819170771901426072924773194721480537046407271692986881892232263633126098838087642751654522924200863933070458414485058308495126205668499991887345641451384648217124087423419275692590035616552733759807892027631714562587320155784729625281173647504113038679921746600101810605090492654469844085804408283020317936374410984480740052442909116643333458942163248812795393032070423088776643089317286305604674308664477922490934822543426106471225929453947289422342105559816863740604843297912729285312839101083659419297435463329950168659205861547920826574452009744651958523867282546703979893609225988679850634507981335007609542505596327608350292525311844175288795620131808707336480327078508668050152998693505465148730187033182838007343943968981816514104982942083724828548047211470885033004035220537127209188966888333483755777323352319237877255627507164526488050945166037570948343807997939076422516482789674421565284758469470312602513722759751056137037531747871386294236612791721447628220154129180625095121230969469358728146990004483354292167062616239780137758752369894723040798603676850633787915310731038447225052417646787170809772478744552810908791434577908462699641593875963351212179107411954208020392637741389577946914000244352588828490359574080064264872166916296539075593248069823762365678503107813083032275848147593042310593765300440728538829124859487596667529419129057408642230202959803652110448761446518217001428637238076505017268925082025056227616122303684805670730717173849808493663787949896988357142400814376493527697707485990112476848690939068850229476907992295834218283165337038194747029705071960191017238891360204702122160559064362912200257104197209518892242680798534300072354810352586607705483980150732772350952939487385712974816470233862628235132400670495868986088325846380305117146580078394330507718889148350177200669399027593284884866318235259333905162339067657035646836523713715625694516006357467069482772853034674151688005554770041620738584378578610630001239391217025366580423539288761696576451802509610141513560298378925811438630194311167029862797901344509562796718273676547464543641112721362769983203039005696434142315439442913634212655600502276231056628930286786964129483968822866357772530194660213195893351897125782699560656323360116803026125367937979972688419954527634550277983205010265122812287140402338080029677067243382225825105420630420926127332387266795352093480404162398721727497322058163832191919556902471224505218470556351204657172739225153182443294014392103770006953031753704616387430303691706704731090427024245905961923871430943871202347956681178542098839481174917241676297144669192124074670006790443607641792054859106532822024136648748731830782962776712200429742799866004546645775736503688363488484159840656410475987144890952687275435627744875721498429528338249822326944543704968871438853860862019474285968575736752807978936259345797467154183720253067094054131842086170098923123933594429076077074395451995980528710914019687850659798185927562918692266234892102941145758434049364169402233356619995888902984564669299313494600187145404829175052996218986309608211189456884816356863539577107574266820966392145159918113413800435619940676888373836577741914326979973572483258873382625384656583161851479109132394459591370699896283090194670753248558421070534074370739935110735693777065798423867690017739502539631333384284007203902973729728369028512378506155507318497301084352236216071665118010654301919472271080534976893303891984406037782025071006167611580432646760889231109527885308785147622711803325703172879013334320895284882737590273878527897321879656610167320433502128089983266508726496108963895895265317461190961106525340594502079054185031673053657306505091210639691861508009864020859887198938680101445139655241707914277220059334435249163769262684754485185215457557761537315441663639888630520665235162352718729830432444683019453755300780484858268911039465972821013721424785394363759681138983794410846013462815491772765437725065602392050609506039755686015544468938914113726776002629678156475881130055098525307906328712547682165246232772579315772595610902603729981940175924806548372430611150461360266695032782509538769890992860690412809073261339433902344984596945742742032001683494749365788691683477920873099427526327406870336258614811768691482190083684057854165926456719765845642262142322368345663893338566002393039203062420237879578500691844699428128920182521372641826582387201793211948602348799459290167135318597472358345169591190492421606475721006174368555872682622533339062958547968112907917675437552646790306550459784479133371073990764464600405404653727854829290840617015073200470950348593212082572011966841299309297757203789660832420313720372689493839477614253293199204985123105827558354084247726356634505623343662577584478592932142667845854319958150720312799963427637877442462486814495175470029439051888976170249132331836466386256877720607921251344782675988813533077614968758411627976917913160749839230345873607665483347595123133820940274130221013156066470163986033843307877656236817652048598110584061691898895217255021789059388879183399878135849488987067437526406844035954331467426230117683413996624617580708295350644309503701046695423731213578281932000189679039758594482323984796512373916555834468904792991334578972103709108200298232751154761517625651059725835406155102014972413691427322007982544583475055242625061306287504809751230260617726993161121565351304603313009373682560964186811488167393744337721013384836316788003894454566148777098612836117032975182162627416225303185437713806272086587174139735889636640708634540474213165823754530220211801691740897315742527646416834786117866978902750866945995894678406719369009068650754535037243427269791095058577445014752098364279390199204721101931669791075135127491799849654998830368710372601408456567964186548440711901244421997799778033025778744141520547278672201071343327223173881048909630018173616934726328179341581848990911967979757719978823081480220795942636693075837756534247054984218745035912603360756051620523002341364120011245162417952557254640089446839501625235361460295723577476212251112557118387631706899624667053670126700542501378395426722423776029052385251708746298207113288527972914793343868852389576276180618302044979401023101179963652188419923889346828551048237857123132047338456554948668218284536172613754312264581712204983622717930978511597774563815014638819371846283849315928692996739397635539364040113301855416746608607702310316608752489546995077418284743394601716829419531618201379932715195867551767462018629357524742755249896607101629354063516737600287661968359416485921142821217624665498602811685100471144859769941463945571241949566612879280178175979649026875499326206141595924300306620259527162885448020874490502266351963218232578956652336893828778915952265496254905225452987141182779528074756792870276426043634174066303129131847073458004548749257802937224217807508402430386778022424162070565006670376468852830551493913566866080350958912719525992332992437801094808192199608530441371487096896785391878159634027960665775541131797991892361437126046089679199542168761627992156405667317852924142049875449864046514012099752023181943600879609834704454935552543812803849426870797467126906110354013277268267411447093002480590708951096564397296250430951870248256182091715276376275672495175082293395256996874343985261607217366464024347071704702483639223087165001952066196075985289254202612397836378707037027075974956589820546544798852431904424286603182123700883017355082903200358639800602380320746504463089381192642789615753696783525959076036314043987553328227168137617192746536471156791917345248192806889110573977204741086770972668888783898280186052564167382867971688018600813918147800702813827760982651805100630217833329656718833149211413906485038512328014873450675101100570517533462022909259832382441986290463461932544316352093213707517166645121900978060614812464000564395966603767778308002004695045956364481788511708244888196835250059325655805848433623916543940343581305880356391347902806927936660246994047217264899958637992071943122836881211559159510049744384483499353085096483259131332982257223457215297259843617224999648761864303082477787015276957986513440289476881707197325682885590183567059674006149033530408674720373369036616198944852987559244661968168631769227697735142891339266587254076726611825890805059043981688107236412088409229666602764169805490906125851040009665077533567600725170042258469928965220183574645772695765696416346027306358597570399473003912630502436384345602992915360735060925148059580991061847809814240816477816277430477567402219994251237008645095509517854505806495674980821515857765764877012454001616858052346216675888588035565299610680595422928633579485115717881923258858337489255178251308403354384227786454705641934081931086932051957681729987638609030542689527288499955632269501868453602177232542567474498998632228699340429124788142304989467070216916564818343938312850947930432799972070520502837581183733054708132924217335596018138414245060933624505513729120484853676685952260314612367259129247580767598245774963585682527151190114258628391331202597769369043040734564753687683434690951185641262586593643542335479161957458452846200013408980237617320080273282019738990555839841959014920332691729712112128859699412146502656568120328994931558129715831602008383188758005536168278437086345884701505333026016382333853306210061785500741437783673099277133636607598615779987386509594314840998021878723841180081134605620837484092247771108222771224661250232729060896905159631721915868106985228173511384715898653190312873694356819266487378524024058995721868988702055367476936101905711116009083410483456248483544641952745294839034391481922705356770059446397519899668778547563891486790709966837320678409881243210229880129345659264020876470936674036993046565377066008304763868918176258547643210632325765690707035690781902710072258156698677699818164497894632637731594539117354920902997948645004955119705034051084627278235065045871026136695310973960064466696605260756141489057204141056684754032443956772985304134214061483110374153491293262839287464116777071379237881397754319422404831171951168701371022314799437903979629746190416341755787809730894383496740952063541933412881187424676988246350719841316798232542949657345193994220059220953278554689361277415812772093152510374903214154425508998180768991296428408234498341334454689378918828581986832543491511510513916900185463694811681133280493698111061484197845488954128484736589408221802116587402850547693580490376821605251540082808351868740728664641547827642152975572673069217804472766057905658634833444144272414726702927912414396952310499285070854633173667910793190789027512421271760566105447009563086659777062474037238973096507912198219324815169192015694187904879934098613049815507192117064068235010299298981787788674057524223485261501131188124594509637338461396586914980730773802861250580901975157945514459386752272057546582093325029879737597530481671637842009905532401564131770271876567806227636550085044843444154213061177085371310791827264546319526116362577203030952016652174559849284970383976309658591944732277858556419386664059071101969349746155914113993016171175234326679619857064256368055203120884472892274200543662623833694796569805925873445591800197299486019472692511103646325150301896471704886868885262528260418985306851793221301662583820124366951869465755150415360203542435995732430597334976167760539021182233391252796644979800959395578017189743431023217293719186955684765343736251749605934840697648711198964225420753985476942826031314066805083932124117241597870740556725520599943587634458596678030492941274460044705139113030314711296900256445122433233043105211987585411284835968851411418246611146902508681568177723244385343448878538238874490799107050262247243516514939411956218946230237988514964566716842076169299872332041857165340964591355718726032567753065739773497250509437892531474331226281525498583644068184639619683743119003066984856357477446048340073770788207364038200462717936372759721816352360700609355708609227540065044466326690016723525399531357971870473461608973444617307761355264090476351630184070112684860835419722654974377430294479458895831855740561735485315488576335886477990014396915794812617869303706437081142467642109575348314513205802008192436352742236125324920566397240073526281168237927294216449946161340960568977786635063380216625875359498640070404850176617696795097697669807097006151959122665373562421654122167627231619285769163419804131734349891212325067341264215105816478065132939853547716254058431514611989786064371895382940182063137310574302388029689029909399588194821907982853991054678580154621212187237505914845046371996771103404704711057739491984705850920462155500222928630926747552694013035136219039954083578540194585486730420923410126160715191750612891434633842792386488433333424586090393910510037047014391290884060338548691583626260490337288927223800611331334822120234524638363763373670674260574443789578972157672832373690874001468902800838294077867962708961244364505542375496983225654874119458319448667320460120520867072926219233716528109167158363682518489005568177861663576220335068126464494310502537660335221347352463738206872094089764671297067421193640448568446384435052246587713662860797729573602733436564838384948104347262656036734001814682226912445882021805242437092220868657249234443383381886503846285567743421759041420441341751334527439177533223913361769721061504782753088319320752210790154520680219673419724769607521639273353117700980057097611843449150615798858361606263010275407818281785315887364662060225033075305402597407596308526380157706449635381732201155512266327316869184939436531665679027322014253816406567042832194067710144083602652954419361439409284523711963948223347218612389772841759706986812545625805169520626082358387299772530035524280041443145790708028173176609279083425138645941668707221614663813702498164650898094078965390061033084209510363695321395420833334511356623547690554110169047256385836569850880507662345045670540620999828291660161460742597968365594807432353048606847560579575626372036493697005604108676731097064068800145995752796645869901585689639811570605854090984718997068822170300455775568390233300211714186421185552468853448721467745277296544253971161874001635409189690477453773024145571044952698529135324109620578199774221027218206764281271621166298187777646592678472790802263712230857628702369764367353196735506287505091673317006248285628986286778245716008172726082258388731759229114420378313003431132581950359034145503250194625890384058732543087348166511256437632666523779386044286917991277409299672502239972390513235223174782820605197249325806705870711520813208087348884307993814896461903784822405631131514654092466475485391173377180308461250745238717015977870287856683116483370392782098810584243953243256080727495406540064445828579980584110327915355317385418187764171034686231370370972126190141657819771165940621245117220064909306014044967001747352510703581266684967893895280306110835819339242436443993142320240903611065864289127771290060858060974462240670419745414637099385115672681948148163824818528654199719033988806247511426893082995275193304369251616728832037194527134164054512379159693674676629727073706153800232490935051712925655912492352488202790898062320752577165961457705598878261063846867071815705291751760971986365234265860668625190430912514433688710234083996732916284094104280576639005830963467549167618734232703307375016145812427322654872830025379567859520930410832967638314848960697043871473617430900476547048829646814496076209032347227262558491360755868526726634768132999630159617295508123073009166266847466862030363218978104390780201294678752719447150654216098325756126425494477611864147470598996577774783253776048174464078506082094160721259730141303258626187808360720367030427000100984331207088141357644180885113322543627246679151284916530058347218401869544774228826621143484355043015145812653208524391945087987366423285476438753844406365593609785830709685679683792692085944004342434618438258455708621431686546041358823679140727010681481158454969101758075201700764113548347102301064739997247752339711316999447301914619084616822341375296014278591873089133379802655582529204704264612750264076401209395707574943245128665177389727972067235025139319807503113489341351084971542496286855763663722014418470145984187634022556272736739259656833241382686473763313932725717284166055912258166126416873573185120805586252227634389937010765947616889948962061738932785832074236089667249922457123343912828453902430068449482949669457721734388822871955591079599842297869906889588419274118545409796067890214879741408631895424630912386399701504666574474724416649320301297480366734208444150021999420224268805259000709501038589035735670431563786880707972826272017180136401758131814473200761376258720483385945018633390038959340018980003174075721103264111506091283443351496625163443932506188837374945987798123929073324406475132397013475651911202467375069746367164372296057802308986149240097805336209299504843065098078116057137668828427747865560725342788238405214664603524287884110773981337516361039314095612650313258868808257975233771432924229899136508891472099829597193577840635328628735821960569861562889052307684597069850807129831112550576901030401605426492026514999701261599939156233541297105969931223233044245186899644551875844001811421138585415010441614957625401783543933154966962015111640470594317547521232912710363002342410370250134105236170680596176309223313470345983450880607541041423886288336529904374016536464834089487962127782722352435505656833421343947605802875223668603694071808981642739031773814573193814141546030276474271121374956057158685596677177414039634570303897206021365535029990535416661913686945272387571768990255432179903456281993777501420088691449722720935765145009715299608983144034720561789918223232747592622484889214082001905454774288283572688704786233519086202803641214186496034006297915541990184875993335409989955263477602108400759745265614774588803998652356296360791800316519366468338032260903436054442533429026569779134074647280540106031802638501396212474975421700770591563764575768008449270540630962951335823365883393790579668916248649539092510003821596334460608655055035252650389869352089520201108272075891639246506336650422510226982341994447805125931274385348878255234492288780396702107805573830260210406900790881804379389851489098358841877995451409512488323940992771657985193417105444108287611067884372229114549478238344550146652889806726728159643182474393427935639284329618349549274517410026593838364345323772724223543984576692809880938485446419679360799009260692645631824195161995864952607364004101123212161408078862345806293849113106449505204852086788825221026787813813340290187111409479823656332897240789331046567118241705649242833361256166426092762470222473238292737257870441915666128562410228740203930486940835681928355849113823529517057762468551428898521999676321413956490483754691155926589465391381294074441486590597589258602555536307395661231333531603500170924535818636086816291612395421460803249732823982820158716477819938368280696151462004965139754048068962044395265630523894527423902918103317417278312536479049783835250746317976793548845458607164269157492312532701674489052240577098370568045721119987153345205124339400530677346506383381538620995311348885773781678395372506766379480557541643708533225652391308707815608688331445994183102169383969019317441777771451360725625605827206402824324617457408864254970889501297678117268838410628164927127224609227288655361920093079738953906621345954447956802191644489133030617584106452965033179188559878840985562364154781788296354399140433262341483170989194280270871888227508127351657818074325959910460838542210082045251688345520313642956484548518204775284061233608328414603660988025502531799869440713791355578925256288746411364372373876983362136269708140809906876610481086109787536124474770217122854469376605967322039121858667869562340090889690688760006309114792393193689693013118378218768127110355262706548003563349669832947531436078423922366604544273162587583524181073479680318635895235388890207134005794258700137565699172452512214916051984919703012204481976954300671831011151830484102819164462420226765764680690195104071076772817128584090999741516006397024551915674658073262405794760809665505907475526765453822627299227024639716830341444156355403416230989981370161573655069405888228144468778659161572610039688889975128844983825822234997106298563207063936943262863990604743485189237690688898183473586672583743088873889977574511274636036363895252213788969258782372956874409045099563592754813156484381456066217517111211413022590977786509771869729879156005234873441965121818707897424712308304994840314902504926692698755634317468572871244325018006560002610009587194053051173583360705046479827191548695560811542864077011612936483673124968080885723901818198033283882081055884388729270758023859119055737537756583999955533876703258172881615148349840165244388187564313782671948458927417842476913575315006771361055384066025173642650466854670107501988643145089268840524716653866654348884849392727098691355866761130612561691565543074610291442050814732710754668058226344437389473870474829016370767117858744014827613266245806476194817192769661989241635206685256241051408577997810654297071019896970571824691055342121521687910171393204014547678476950402970735828160338141149851001619941807199015030192266269033815244836690544059340776485746056395385709718756000521532673929312612296135296687205442699869728349012205467106488671260722324675591363240049233916673596437273033753146991916403403972239406262874219676659953838341785651377818266704032621580458632339363274319308071159150344278420064751768839107236550076535526629767900560880803737181846388349720517085928300924685587056059034972603993959315285332018131137491085849842159420970980760359167492443502813509983703154187796625940388639266010416436634246404594397633855014584543087672529372957461567689425344708909854378392383052936922111507561545400993729933069469104805752711860616135941018808962579522791228023623081279368461454947056069573933501653340003417937448104760120357744016351886904024085056135710767505494444570948216591729827813094629566049326473273026547164244225291395506270452485375099798802059704662055026929193331608977030844180978167463166013988098982185551028719893388233328773786519583185902811310283158628390936384610708781138613858753953839179344253207376814243870116522667972959941739980942277462703957904518119988336356032640714725692901740015224421645282678673022388790633121566297656067135204188357555008356521991613229112166560094146255239611760854718812354361176779293139922871350418113292888918921065893063481393380865830529877212372225635415639444953645559317167047311210169952284188155230749205066959491021794176865311385726795090667384605718369067098857314330282955798982895768896524377530448202086567999884807550301504672795567490792476534275580669812657703451948981396476858444059092210988553851200400823780389778144657947836269627657216330211556802822270128852193835652024138417520920942770245675395757629563021979630678778576463244064001049071623362932819737262780127749581814337882836111210201306524369499573686190823594449625303324590116332052985319648918534807733282318609367874147138830336541337674881111751929025031442308447961899981741590146128017718264774579854367153349642456541433152795339045803761440557851136430441338576403081315051852435917458826162639192343526304131241426056237803535054873167578581215728747815058390898126044254295980289748022661968867623644844070930150998974528340584710749383463746354261409417208822158185506832623393808214600616972346671793909386498369330649893467414274060502476258015354023252438710353316855658107990020007431831832371231721392495721386510882492858339034738588036301462249728175427224873590727413627127344710560814393389633079792032980532143033881919222468227118701167575938950449730518091459277755897161463802096032969037454776290528653304135833940404106684474721195325968007530160561062455498575244511241685796892298002348519888414952185284763363978284691960364252090966908851531141495428093620506738225080742746344877389255541986718494453459918886956063492070135494422183918902228673498665482677866484515214406424807326234374250510062434261348764810597401915949264811051098874845616169579101446649842530707311012312124779533621716167736339116969689201168756295771277065464242246639915951255399816386616445133001441234231238663645646749243288413413621588341451206719011112149982861788325731362192975105780393634560468323064697616014628057723786831497949513215985468883088684596542990140631743334323647171552163510749323046877532414541912990939098614711174878761071784828403722022739668987154538580774366713630119235207354966850968955249855524845293183730819060229813039189935756216124247476040158929452343570016782698180809715555724023603792492482355074854196589217337593791041542377278595206604175295102442508014689873301893794361709973972763014896182347386829719497633803031012408605724488359341121690150275063098106609536887417305916995130444031435326529799208682054873777653945914873361933493278159307942362512326341400397389396561772760308775548464727988770940438209315655391779158104498387174156697879063611085396344924323193024948658354687812663166119020065342451613926924907719194971977190347742080024041017022613977983995557464167979624122225836015875604308001364246809291800670198218729676674975811186462525114497082492078293311904105815937999549238381020320678960677722447749627161837311775105572179549175571159780141338256136756776002181595797602304207837316083273457773256056460599959640061507668553767667644894256624985370939768016470934000481629292851736382124154554068811917692338425758375671057252715463979690246972977394415143403768858376917138576146092333225488701339693908924022421506265339233960220304206707426672619476799004310053861637561068313256497392880026111074031661445648341883043211865534160775625496323104855842811830436257902829907283930015917182840809198947880276050956059608620016995695502622594843862165331307494598171363409955058555821920177303288476127392496328612614649061381359429381235237563982411679690805997671133439784910349204223118239329772522937794330048579471856048131024438219919730760412492509136932294667543126022442200482056192460300856122237146903632569607307697830286349116423063871618565047315493796867296653835172881096933339822160152736910731556602327727533120354075331656833566070150634057867917009440659459872583455177700408281495547533107497692792179412922271817306485777800847630014596015005094262656869512990537308042038084947707901314052458027668732663926982302758730728263540689608476895476192966255067473264307624657291352282255230636188455629543740151535295725863800666144324065434132814345409021734213604670726846451114640803673274131831920240366217473725263540075118361484273362128966554526155813703590847764351563269109544424558502692721669153516643654283316793613997896005911804720145191085741621528952059637150577907808708477338453460378455539567212628297590197610742142262864006269152691624508853023530638814305291435694595172801163630243904737932648897408375374555122960571020749514367030295483596526421585041506973953531257431865153247809587400527302723306099656836911182297883861209743862896876804426446828080672863120002879152246199029893810515070577072533058790939401468083808473514069803558553187743847967857157196629091197770023999591202639658987506492856935402715277807992370326555723496298526358392424834276614317591689929250052637464877321130742472764965885447703033498568321183427778372685367175422358383222521923371064914651298088702165290455523690360610621265673261728192954412744770821766933027656050574130548485624566327013707165011295860383522758312009358404845875181074494206340127003048423956841830345872482795728523395585259031377813764457796342483433576040712277887535736549049642553352370647852008811671696319300776668412708497308119889864204738251148407629151658429928783116530546348080390238643117047906048638476104944595844925232465872324158625686895403335063412250564396135149071786382757977084591374125126099903354944645806731721264511301367626167868601993358466381117624782702774411789791172217422681358563398363678499256716817849026993176975951225965186194680515970468205905054098760775708150055038327335562282996956332566068743688978385469016017849699557327466154847372481678426457055342713283680155663312001972076540546635601556736268287875281619168717570624327886828028460957909382258111735012109143789839512370174611910679306752553290488885010329610216682376009507714376118065236586901904862882897922736556881513036826820387007773000217878133634546787897626534479618659555154633330894532274500680084935381140273855177893873291763755957693325879339726062898347492352087943226682752446039213835108330863548316565238036041415781730241482205500499802828637591606978641975204683029816089528695417524435635021226038714379183292669907778518554747151409965796106788023588707578074405240687190035342384426831785190958676209805331949482766226839943188692815334670175798436389201293006885845325002379737432228091337612477768834270473187498200351466850017698295613607528753543827213278431568143477383036234593100599888929618210309067284547776638635690410428019706058853827945120492965994402549301614601027218237673813053728022647240233439073290707768691895601641856751861255116672771989001645299921497494019050335864199141318565731853203083970528711722426243199385475764770302382339519829118831144273331323072861711842437123933964395608244345260868095632785482259426998751807449603701056757133153882114570770332899107964329723825199275404228631178685931121808376331481950371093731350334330766297254824002620509693605347431674891087489243552472463122105331597313745002811639588470366077334408661886420116059192666005659393030780364598255677442212822482583285946663057835424028040333080546171116187907112969278892149428341940229929519808776603542195751986965677819106532486063377583175029206555241422788947089225678790130251590042250344390442974003649399975292860599480081059305843459197656580052637345395525690716920777296554243455379503902557456625991278277839354912960057697741033558482947350688535571836706364301431793292481749885725787772904068965665572041751533707785347521728690337596422929916470737995448050059123002218142584087830608020339644773517054864015046934626095522384250089050684482167136102751189943052149295925114927495814422751874106375559504946239001349337888068642533443537541722523612211888373924737119756500198033047949713294818927988922806492451937126250539909091667496264508303967252954088347953510327562398947237886116196058539564022826644383771750196091777284500286590302119339957763443082129372837857408206786845907737738760131656951143285221358663724591335171719534232778107032247828385723836172819179131744425983900136769546112647873230110140076339936110823790511666904006531356356604024951345041795396039790201431835987497724467377228993151136452138134210294955364823413749387240926411709296182847620101021305556410206508583286740423352865316418479094414725619572466622508915815565490218419322284029838824032290063932918758831072369657054988645812999411224658856468657707600805286715312130901301905311456530559882793666773064171278676758126454900480438582229134650156704806427910132940216747611043821210089604239244177174584196286568053473197805413731490620787775179687811712231490691253021939371428359889621746894277340695094018918224496483523947315723104501197117013887752916501610612496232609570638033611750668105619790096925129617835062244143370849138831584769665997315504671253666596809968439068443435385847011936180596572901617341122850241388171110251368426730542297570518259167934377389276795737214578593300408804473706427306485181136893897550948393870245990659476741174638212552427273582026227861648706656392896987319886710521814828067323964004924143964521633452784359933779529741997708387575285389184501161161452083488829409522521571891448208715603633500846974821228783497002297068491700157503628098516267421234248690265597663257167241448096329884073056404235746577363812312077136519654253931861595110145421278484137371224137232191855108661502412689919105185564414655565238518444474133647613101451342996512213264473713315239874104226172022113902398629626262711412286968294968145781602656423526752765988708452311782385822709290764171786862566300990896822766121220272233287509828459618931782957676309645515978702099434108834435284581066360778082288245188360226860370009843870956036366310245561977378307924264150915491352577996038065797259729529701787348941342933257817746198495182500396411478488130186158154295673592197218473372636525062086877244883181527971559002363536596389564043645636079476006628610380957880575070793546130562165345647540778761181385994950049493475291957784208444507306570419017133997834381671287906270661341613132294089833783653335260216314029174010581165369750129517972774936262962843055786903293539301618097232975051107616551525851936246085917583850515031537179557754563476299886495365096080833761376763341063963632296385039573660364682246385562458885615153514192991646398123470093815754713756650865490610682707974686013587440008024550114612650264998597044895415321641887230702977946462813552218801985792048845950165615317798216711954617955561179589936968552566402815652327892178648669780019130548817419664455861806956603951064840417306134488513601440572275082018784729662625496506078405678290568257024251970864208953263225124550242139564284828238412413803593507539286633395392831660462564900676176428233119440980989227082083474997126307932650511622604665012540729401864375138623299558569626144244882930952711929331787549331627440856119549790228503366021340510612215973979282096836734311005596110514184301940203227395175361404093602660418028020839071105675445507664145169761581365938607472732194945064765661272803606972082084240192990423350163499175615727246361794004318934939715498819356945235603993304133465933257638610445022829590946435722940148436904436597497225809492837875915187299509186641651879029678395230312552371878890185228629199487889854505930916459950834876587515076872620765497037347944649396765751605844861292645020740926829325653249915925646850035930785348937782351881927122779184453556072031762481311605699953678354598047171585192532749206698013398659967842908764246569600004364339591440903185176150609176811417430623372590407290576329915824531145449590266841482625667120931376055783256887491672321734895095585149854724730584996869465293844576104816608810622060591007408315412918918686581247063725383277821987477154693892498780340050635629433017014173272395376781320992574391111931361282739834521115651859113693368695267640024271611247552698480223106474420215115649631106891751279941760058459925057685352972997068599595668751620585623679021481138723103939085616237917799066424525145005625913260923969953539746303941047835399369231198513605531405070721732800194878133896780641917836111191884174852212798483007305195012747190461150233289128881158982787086701371255391155983058270901818203897070037278294782767369978648921997545247241978755274669905659328564909132050681462453549638223432617641795435922672768913826848152762911906910375103813113730630577301289062446760198772554914368251652599470585075930900672059019320627876610202745463537948619397684907558462625570877684717212141813592196099267980474864052489885544616264464058299832916815091375926464588708740235528224457526220115560115184331392582725273655491143099810490416037459584714326689969726404736981073640843411094159104595167198907570083375053465361241716058082929854124530180671736855864880326395504824973264753246093011294984115777953110770523781969153575996481140412765423734593106648093731076023127215138171253783251040125493778634634400713109707483728704918436689834070745554147227531454702509736443542276001313575788786163437142986145818853335947584999830740904777968569854060671025939465760450407140539714441427817560458123921288138762879454704390153753659141097929625444687295641677115948934435897451134563660088242756643067652266798991088690912727673404624279617858548186006096027551616402091378809519921599922288751635505209049945553002126363074068512984223499927115631307979922240924659673624440411026816802992971762213990591562509543940151219663605113355580103762091805279328697949364767311590265208191946632358540660651899198231627094194034594762889969576082954843407433589824236998173902564470638904698964943847229526082760313509438911528466832730717537747421277823049161764505300577682149044559355850027370123970979255176560004272543962083258761862543792745446954804356066832025489574748781706456198861759447412881903401589422597361884238285933485053214462769974731407027018948039109435701210282644579246938185369482149747841615759779526020542719948379125928148148840300395481117918043164198037043305892132092553431805155185931654816453562822805061646299771774591601770753811059557500210611464050215904853445974218355080328979156386861694989182593213491935905208098749761287979814072856110065900021935079956269873554142756872003197146208885114401775472021526210460665082762104282947651389102012186518721228241493145287343161600394349578539565856674804155421865724771552952803868232623391192496356934650382964255749279059255021856072016396338119599516138928292009004158810052260609379326920372908229572088530583234162978476569789396865260947980941262588863844147902721263206870431343027959862107909137421333956945169674619081687752288453777009776738577010078504488061913952347660817884557440030283301515184512916481435147314531327840268495986765022583138909443055008167360579443590323923111334060688102448356164812731161537310727101506524970936746680053055991409835002561711466529255897834960801172705519353633803251502753876673456919233308077077668923111200395663239550600064654842405889596301551236251663871654762959959762369738386452250148942993656515986389150085220251202225106521628169427398423310520164823253116888016454459671174165477708933906169809316362119918867739359113097429113800678569030022833939250094198693153367018140692556449872131298970058202522154048706615406068437593767324769552515661755493534331718828953308911317302362129885391838971795718805835226658626671025970813710238897524816715926231059321240351154641364138628283283828029573475024949202812600578184677579032333228107538219953284123975004777271634693294356586546840929769005711152571126626264182947494912211901047873178582238287680902130003013051189613961393524819557283298544389346855801975606058311549485105634673235271016050948215411952187741851247560430878012556180627678230404114314425648838166582594949954767501878132340886050440157240269557364609026611260738707348918336029034575690150015625916915829881005083796947456890857840915494540844301443475440423779073208668052555616562327404990644170256621948599190233456925222591437485598584268452065715108506679213121191864191522940193253560469938645543072498644124244149129307615182424325761020067719603366326510629316450714877228192546555372935285017560613171956377304624666535903476479798183560954432832950695387529467092095307421081391183244560698703288738402819844943445905162757401748968343458355594468558424793218363330518810371802399702296571164611976014695465037943517645694242697988879786631863808542722343100908613044356233865095973500016885738832806584556394116031149176969498307529033056070603733512377308899267695034643515065017471985453566183316458111828299738592384133576491511672705479894022318929212109492953751398704207207319268794129332420389536700406583477982811281377203655057031985986076809332180483185032848142315712429335399291130530926709281273611337915227531309130724382692724359257383873827588527969223074907134211949981430559697079350675761704510966293281373409039472555997927169847605119341800084977208360710521990153368366758784700515686395842480202740295938534812226223882149892980955046204967001443872066385949248592025173898861113447221856991824159004050803700186980404307729780624156615294881595568683272139883534181436130753227566539865357382020678132346235704677391936851662008874304207283249386135996296150584986927066590920299350951511905304046501970172543194836729098124468188340922179185422063033260460438216945982324416961295518458096967823110379655438675488212606417066793036277553021258122858894990708683885529324864105421367815144938681413633545817604450801229055603911147776199848415820162680653930730885339540092067966003913447419014733880741953456005543752148477073812185599628232620301238542748160590568144898337322493473746019640074530587135609411948092029320491627568394195106749749856819877332676024767501800360819980052899548222513330598012782931066085085089847279727517023823559876194618565600015798049478661675196962146812275624518479621980870491797321181991774505739891284508211601689566112036921206329422311471338088967885450202268524436173168324104087055567021447886560420151481737935168198689718646858885075032270052557462048273526904409879495168337512758041671685241080890988779369191344145580300645950773077096740472303237835055039000712079381104815694834157904515838264898860881160171327364050313125579538342942046487416113308546777082051354626196426171683690696811484653129408922393520478060520515882235766573129036998896342943284199250082347779981394149527437032763810260382419552432771335054509023430022448259567628889369844465098410920597361108284033108234888501273648701437707292965334634819182871358860500513818975865055076545831682993525023769841131553625512781248716325238913783295263485377583672316596358520511223888085212815418344030946397724134564587910125293582086569483360859551896316492941753461288358925983247605941572848170559266839443266202341795291890026997992625939164293360300524724369451736901933711994449793020284169914172287497588523715577273371561844244031367924080747174524953490690098248233760885975658982765787354887387518250715737364202559409568958401230776259660138904117107035651911949756689255824791435712096301386063168068534141943653600292798398895009897856699508244996842165984027904881303375371030458347395117239757959883913400823957892592760763384529482429564159738559002690903437179845985967970909005729065179265050502417729037338134499298168249142780432758693592862274640521440194242077940054884922962046586330569006559288322804588735867023893523972086288451858207683216141031442482769552106954353779878372568711193910115920468841742787669236005092195795008668669669699181158122640248829482829810470045400201464929344354700682588880243600455547902680098746962487220598659532957438746746674336761222723915215849183541274063597737018732632189106913155463805368378014302779441604044715553358934463597056909201796052971608039261388318241997166663378040248313748793182290790741404145606371639234700907610977845425032484117197827280577239905195486632539803334143736191801489352283953378264946422655095844269350269466710371593338856859626904133861879265321756136842392567547196993704651640021193579017340231976635988344948334084028893049733669582483058150553939137509863282128058043224082715212025209126672806465492584428434216186172821591855713710174149714329196290805556516836493618189846489412999814988482260449124179694082921140765059647205490674411704084145762289508846835059361796211609737041606488519109604835972373460366296690920139657542135514096974693760923399799043645375798646453740536285274471321244843138445435342950876938255374829251150579611861323061190623331019442930667681660387176130113579562795243792160949571546517606447931215416267971392981631557513210110270078587613219438424753656245004050325766829155504405752452605690766631964064827167494651529108142021437165636133973445951196796951531271661127868938952408054538891033606329089028157794019650017560791426711543084167789463552312936060935888272395198665596463372845662837973147107496628296886535794035227698295537756807073323225053912750255189964434862764472896355860587441384594732964202952508057211706680042208228277151666162660406891375531022995501952285299665244485187927190617074250097255272552456343772960181494353625476999783374052970503860021132604319234534910321648420701989984719012322748253293725440401947213455560065132793189163285285509665476560180448794515972405909280026513621719637442709590349956860043352599008879165551992176962361030566717382235028153174246757208141617189343177294450767578950758412104562052071262871888128947057900283506416555864383775681962261383767737820483265776444214994824771399015794143238694368109274916884801723820165628365913855926880052205847939268461766958889657525105403817972870271909183049142725150463011857518898451289445473477324397608823840359837302127328129521704534414424311765915094211030534790484862121210846045568326679833662603423867989216212658605490020722278174120508148945643076856310939037758642059570159513690755949287330632480346483795857675520943217181361059654152441405631563838241469501777163384275045388777008017262827018210949517620642971479597899972331248477489936560609413085020135434106579509531012346638808444341587212755311345072979067184749587090272119364913267440417328480590096173249564721095265707691234844613406878306886705787434743321303359932103665361287503899015945278434547275863087253572620259098252883781678396370083467705117079779791647636566705746178714612250226065507826497922209730558826321171240387385631447288372706379198636255573052426288804215125818820920046675361259088263271202684642145677957423869238805126566558808277068241164947302642489624032551099526290808409767726065376844528755292265417123080576158438012885619680159595889014569901276059945922584177494710933261772328078791712261110253016672557645319033195983715477941538997904205798837582121412557698587102580435052528322181066870776644397185884199626218526968178677383253924093040227426003055078331286184305998518366445164828455652313931568292246973167110022292511228308868159246062609871095347604407010111457110669571257484721965467448964871794521617277384684220184728744300427970348136891521486174082156012528906976507427806361888615857150706738718211661888355396852566191584757518064135403230607350009800918916705332821132456556034529859921868644030461397925687493613827856188566891307536055461007660345681396140415870866579479070012812673203964676851634306143859354608667613415956863514547344362605233550744960965132682175078002977632051678311781699053327348473747681933076955153110704176474497977755868579419272450947511112289287143894000688428449078654092843520986695557334833805086353155427562991142528080021339456713481147171963529595301136773014037466692010363934552859438629405021610404090333552868534588580303428993556969317719558290183422842102585534360284460012146030349385218796312178788761217097086047872892332040544549586724904715417503366208618539601421297647254498663386120947246663426499184801667032297934894676942027737515639325573492708365487695493563547000718288912520003061148157860797003736877017434927387728022798414949182357548099998785490741669479600316570724218149399883837621795969164837212064597465206287039369947373366799236332949108946221250310533286099777385611062132479469302721000440024056307641462206626092955909142933223116080181796113854360642350447471674609997731175146370843540033143962675783447625802580313135810792368371140116876812502997937687029282349715486002721369006020899017086270250116519723538671919902690040422994733227913110493082013382718475427978770981677189703968180603225178412959887615593394497969645117564343955919219781922121989865998496203884614734432876513389152390041390808390826929534913575334542694157412276850828576112970256351074901615473820824934000693157526285908921891066704942137228617002009806075935653865351585053130496485792008255836128583445221258434034940290814713921551962113571687883853600070910815760246023163302978573986373233384380396879047269791588325144384208321957790303399936631557224982942974716262720301424650482132938182694075537611879009467273339439017464946057572408999387281504710261496445724178284441742986717149020497082423520588900541690865435757123288352956039566831622049515153584347938670126714008888108923643072775046719984303423810742846332809922765267399191078059759913839091489626451091563155111273266751998549262775636086658279513063491550910109679178196343076086946066906127927633505984077363175756292559604821869759782621855306369028700621640785663200894392456584319028264279732651413099164355667161990282632078867080380656379530696131782875931510969240136117887316890572527722825992871180765050211231330502646040787093923181762326671044571091592878024862314477292723924540166982693470802249688407789673768888711527563348722862805330795845371493672523754287000025176524334106300402789376825249822588900694509640938475169231064919072215111914250576930973543135081356526615316996976079300305028341588208980432552425386720204055673709762314468293079449128755696667047527389972368037060707860151853524579796365496350230212631560258203476996127993381357477381107904449864399701722556973713689853200448337869646082086601002228309319812195734966895193368876363153739241395207278196971805593389691156563712944082167764922973425967545246883857939872922705710675173465884195194888944256045847480072825165822930219857857764544896954954040350846086244267463544912934335416263781118036039396669220110766434216073099901862691349177453291177465549584501109317955259854990999371358206844143921675357728236560534949340488592978631465606156587055770806607303848869551101878319091021184047103555101723006131901489197903766763115513382153972656649610708746166670007500922635881713193122476542227998783239080519496787834315804387863139426938874151347576277076144115218767877560011307070001473860716554065828203044004770592982171358148761476629483097469454489385467238931588991414235606299567053026089630131341532835819353871306709271260386673484834393173237721545673474859666722018093882204831417159781369938121000533688898874573867377384241605066998013295738158392616160820899322480855237064659218074234699453487140794698419503852105643884589440391726815841885324368148604318650340050432097142069929954104397590207664224894663039496030620538252147125372033642839912113878239392474376724513994043970713755118308166261719112731377810940144058872637617169133720722201575091561423764366024169315278593361995034145918858211353128417823770473224243024906372980109294390135151131668615878040858320911796285703457425010217297920734782740327930343941330923089302958698082816006070889947560444675598582957529354980760301403801229180885133885049937780698048941387246475871509410474307636012731934282307682786173650023422768187401375273790862874320304020624769340032231563815807140174129296078378145307067527312181103014242743450743695878140057338267137080563894918987718689466466305054296701918953143360409601677526372832002940271807182504662136352130576156607544839374589564248740952313231222398340006247669521010229596123971632675237447239071102095662448415711308645289749809557330799390484433801606629389985688945658431380170971558752783376657794151935316400030301419135733542165210000210600052322905841192996796283543428320842400729731529055191352380314394426948027836935097297379551280876888453932530032839749332436959101995178814689889550620287598602957762690372508847518651812670919819398926767405917652577436865804618321990246147492767606658997265680612080008844151441579370431402619042566634239466574318050762699804627730774862609839566569375338013052334826627806737120709038827254783998618637456417828179766157630846615075898643238440240676096761778241912252069440844662034290218463070702774031360323981497457508411696697869584426205290688148553409663584257301584764329664698156035683095601224887981868655468898138457651788594339957454428333195939832362174066302179150281411726647444185270164414435198694816129392783865913763651428814921698677991791666327817090845682444629888714468582647221564905383845060108682403004278645705116095886409768545376706991763416046163744621782329726423928178939498211653861517456656209815753042013242696215135610994505178629459073104550471943469006161802565343422149578913990349893503249589319576822699062615080839879213070691329158520957145445064933339764106587456374787313607710662747005794045961329002132883663156536132301028550642142396633269836960820543270101099617526155891981604628451102505312452969672288818069889576069285710706591439299004125448078872351221551333067923927512090954841606249239037756762877237877259474159878989718658950337006743568423886055586951850205928219754531346930114543442831169483717482792286576082220692526005448619145727724093897867560970635769886455418671794542918762993774516683873200340738160770204023061692593965495896383969024167662447829984174402877303818192754691973369087644167380469220817770065179067281930194149700689267535896699402884887876479999028886124930495536247039821969511839253297331078802586470876767315846375129137422025312478750812592091603847612509170390363846294030423340474797886145037067858199074814022065904146748068553214682006328611479560505898787789979787497465903017897193846877168194305666354218944937595835079915916290697022414532746447439854525608384237034581088063889895432806398698423182760845824937382834388478564758471865617864400938532440773124090601094068766122831516390709686918864009361531473268381523805316740939943844872499771959914869980156431207151181821675705536658272503700952543287763194558515860933009654147226310839832570168457400307000085598180186232593443101955107654323883129342816690436483604454292159113577501866098365178130535367594275397146076092772401452353017174651198726669775407751710271873008949836707506153323970305501998251887900672483436997923763227390251651192100069981892385394045742659035289852456917374065880733867751832823344462539991501775274246726506333543928301377355792398906032231439801041234546167450283799222289082969118695284140019075252985939659013617584837547414662353794689804158774622612171812155372065369218284708304479437236947557662907357883574663768939854196002802948069012469522684989682406000460315772695555335149085895698716063607988341136723714132698828972154037532378326403356901067148491458959195200982451898362791316432982250528742794038399764775763531528003123656363917042103800996713765027667810932853245682093560256595429235787761494554113642953560070941632249310100692312226638230591262225155301305701862638639452847894810690185855883457320856721945999925299637308821329547166963563749206605461816146853921508490534875645108827082932678660044363108133641708313553877316954152790488304213590898627505790844292794475667970658371813897142680048197150725378327903708515635810430877463070054574663404682709985675263697645650887010621434620553171205766164483412545053202843347733167571477121646059417826878386982608244654192673591898404605161140763468775383672181795208955361062799738350114014507952205414785037530330836374879134893515104903431572970179241376386910367014573492976354741963778071567838031737588903271940844792372151934583087704320574654748383264409594124886861365392131750507565177428459208187205395285411703275799515193327885265689271403199732852272651375105158034104152762326850464682547699469457036996690668244454897636470200907719155178838215177026316923374581324542983721477437692631431811494819489571751839999536013709061335413178000906041890368243779282898901873925829433390876931451246200590186489567886990677147422893787958235317345649304544415689006943393774431870615594457265914528191935214422614766091945891201614965047616863081939521026574384358075714354350688718699915537795303598690147513291834030637712826470988358063887820779266555518549515088198306588075431062379395953224988342192478626690703555258438667137071809266434807017699106167313934928625213323521904192383362399180018777359156890929985622934204286754686451718266250309215931690813996060726084433019754489367675942315233375908694152824201611727773207259297441803919679571054056847972848539895240807038226371000165725021938036599324249364899570364854824598920745397842563682426548020007856518290272455213386887632980525174247064549746980316697066334391571083774624619631782807174143059747834240063045235268607116151297819695774683681421334802105982542074506717285703942637261674743313939146726758849521125960357357446165469088576743513103299494250319576267101780889697365551504506895467540430761154468942152817065645242080726975805752003204605251700077840282057920814213425785208063899436862371257638877571367625520084132879265952673547288680914209745401277211589392240979059298758147512566128052057161232642225562252742941671479836334933205922980864587121480946490570719830654681078751622889233520703466028805227577531170567514770359598265405812603914768309975722843762703426783674874610571602048346417701560257957675656435421072533125530097782476720225552601560448809974721368230777824653243223334775216945410240094492999995735798145210905994684149305383516177102541046502872375792278175510170180558796432099558003939062600426500263967054739318927157934228875822893306705641905112330241486297113136157139575906429842297162887356319697872306116573489551116888848971988376653965387239371685382746731997075052814002227622513773458201572832274610127774294167022025431761280370370350420875831658517069676076898708934732023825879172203904645665468132555445277684847600036260302038689192320950987390485479996279596389367486873720339024061015087002481192443715378927133606030238366178470991163923647196987913924887766505373345237769500674080540641344850044947990159973004926230519101978285373758659920712444543539326410341920072482436237148992536567365039300812156469883532072097961243636643786620829939782779858790585692240656115529063859595338795624309002339510186443167760643023640308311861986175645018084272352551860484151392459136180042164445165515749437448129271083513086453261007257117823444576346664167684198718935805257208751844038906569224334860318024092756879366044440445293792666052743369195991221056178892415865802340598372487816500528316012502293563005400392136837159459080546725664377210484824386155786962817887232985189422480105489900061068271016876276537435978970039575458847141166533479753803917196015724652972954093647218064223594107807024638866503046181222180423124557081225405779449708302593752436066682475557956967016223513185523045952057778530281063133755374091546674335718563579435177409374977232689723103301317630325549756899044335124097784244413719265130887623949548960601607842035551229470452009381116711526608717038539612680424910506487605062530787960301271465916273413950086996608046812904112586388898498446394342089863081414310535561612381648313206869031096286299635414187255589075432528497424858889865388829087412950184456186954619259330887686598242111917401871545999824567786185030712339551096456784485417787267078085702531342505891812005949865585100910096900282427928822425609287726609424347370743471119371154485667334417644720516644653552014956180177477334725689212368840545799152312128292048125421071008794085244291222276545014258649226298645843266184050471587343525361390822387178437460523574307904072512169969084495934191509530954691969045940671845459008981415413174500987415387936469784281064381981204982062747559187078840896695836661579682456955853640063349216117180260076301583185558667298744333148412136017115797842029693560305833313650438693587984772999921085758451450117807681878331753017312919376527757326666161766333478994071405281065176838443590453409091122747251431803518169526062391910480481235359776895642111331148806476132521641351092335240030700249845615213412603152635581928663704830063318313446435836470757085009935959444718926096354630844674896936477751192042640064535273750064772272530794486315715203112791988840103736907803718565817680063564206514355745630812966791704557606864386909071190635831332428697489797664596989665572592201188017815760490781644546639349732724441782416008648912061097965069935188842777442756463295568787421030484856516826906644915930671691450149814535699909713507569120108750308910847908422259146054985672440744683340221434325681596761776837155560556802906513122184707052576831765183268425022700436862716358854716707933453489304546492329751062118205785721152565123155658411927932255922470849723771550489355063429790721158168611119938165913844014346906096510565020632200396431131877923303482111837121524506218744440073162193664770387222123804080800186087573787839537817963836897581153454061335978140664843955688766394971417615848052900250749888041828379175841593983594704218475192225711768822074168910371042496461573912992082480201310849133382052919770065584247208146110708380539167125425939121478588756282361355375854085283681259905940674045179130490407546014448284930747210885306995688172548145378710782371523989400442965667844704168653439319239274341006107721786049445913084178578747530692249216451955759425488433608279100335311424851368160040458049404643261309917418482811705741019254202169651831926792163051130888767677642178930478065669389812753800832676992335774684247697559566211732164876215544467156560169315976608617804417207428887368745975211458613064905852742280923019300503279189776603913533529688319290005623489264979560311294488689682728251442044215227895180837232114321242725695341148086992343064346660192733880332439173138448190616034352994335654620879720546075180834498026895484040785667621972666795990502702466437623323879485774684291522368876132514662116941598041213320076125850149064947695551847650671817110563976761507348544445106126628784313087880388525419305228404246815709774678583606517348119815712050541255355045409632854674806858437731084628790635424229787205236706598948934451466447802542441741372928975157531517626572524204697938828326767073966947034842234688653266362011175288533224838697904095015529957329361816632588912584121566298282289596997558946099218008280868033346369999425090409057372112512944449385184150461437366728606447493619765441921346982460654250417279605459384403524016620276717733314120568583653764841817207413348588560701833103839693420080796432635939188522188263123304937410062136220068285668065485674244078371992049518118854722100474783372082911431476174416809958977401734992540636400320090277795990297380446880411707139234536369023309386342366915940047656589724231283794701727933731247142387285589332282191201829727864273519805820832515760699626545775234720752410747484244759961540177348679119722899907894532864763271276957458276287187503641655692654556876613529147808450786947561411095215878306135478243334371479579741393895258175891707085923666512838588287951631531310506374779435642913551272552060577177280766690118172909377409297630933022750435901622815331051741083925499792297914573518608536650109937547475622744316356555209839791317331640893578655779193176760473846453210761470343065026791846181460934854126309773614286776470920846166089303950053085382216364831104610329824419487299168662820959921833031491397846733556984860474325511638235537956301868053304261883725938031956733766712797732148445821341353734279607710125474549971863775096574131918136418607435401542587466809757392352200493676308245944357204323752942317302401639533504450007189138382451474326824317428291011619225272827546601157020150211799358399170128850044391937566066977750346407527520336446164141517006586848845966936900424755732786961067181390630750177206793740579451269386160457614630247213136668251012603269570268234410426179738893366273556868718620873695798341301943159999568187510791801544997933884444558814021839604916486515182483986462295172104363063767036618988284795058135880895392612081506128751983738052234756828953187653073308865768149922538741022942328198863786418382596321677224561014317219260024593060333692595617130715007034313001854861127353365932199572085538383927988553445383449967870929984329859568777620056744606445939956778876742157129742053884172413164100210561816687293661206686109207344623673950608760359708738629011113761301843244267260069785668218045982079865209314008378627697835800675297057045305214308755203356633113430100900913206202134294265533837046138202913291774473591866152782104304385206885664285619012650226947324655118112494267684968523822602794510406432463185762414250511723369026908410679562529306849136471143655860604620056799000439656798716706943918967888195375471225055311522559950521042772570074709935210501388890687953768521183495992657228685363485103161224225409688306890977950557500642452423259552299459518604402513027803229802460541917390131349946012736231435221731006077796370983707137310720373341291404600015214625906845687427777707937801468334446527320213305615045643683288707207533926977741148777462817590447150091517438079237480820853461100969655605138994410071530253923326363443788522225004820069747321285131526646820789426357511491508274394705511568379139158179631816462549009143532596708318267019017026300061445089472011327257748498485866824952451175440773488053773109127888885249947413051729770622649710760062243909804478362674359106726022320736313722923298781493819319810418309763175529399100667996371921805575907513876354640043646160165151964890947813791296225281158569418103941231709838060603973157643957122379502506040406900351513950184866725150201846787067378379225314844717819221603969129954438155151580291523391806493814089262593252410424912878856309977610438956924300900874519785936903084461084214338384028162482160386354086107887840365080645244723129651016670120718508610040747796089928142793636980466961986723494591233919218064333822599315956662003960007154799973478445008353386350742224299849022074750602118810411629028567945638312395905223742317172015942971660554521194310711198608530826033366190944145407718092734995918962273374789084487964232403444018129005470824183631387516234537542320566480622190542172972741156291484404860800536655978158724990785549919056828988704906243356744222620156205656049234046344761745511562074567526222099989645214401414999839814372993108245883027620540523852881169734602241388101658132832061934035909430247783316759060432746774384008955854547976985136355415545099984693396674321950157143104861072931627803100739801909620692060351510755768361585475299279639576801282084174778701323092776750496243106480802563031053406003737176790535457320933919511614971368172540842885800082112806115381587043183481732755957670592197002770615719089293765041662804596626471403517206702043285214678018144826316263403340741818730641600746223458556324059221188758358290870437477868861973006466173931003293333998911260570371817517124763316077121259345422260430000500109279326407175423483850920963873266213231357115575186442716760062668624966143422949308871141631724143265292018462824937880109186681340833410746430887891116184263174320248256981370743723462806309861726438725519959537123886202768738409690781177844525677170056651889687779103464762549799664130525536492585948022614179399639060121870021350465912152290585852387144547999029496119807399197308937526641867217985514827501731048559930005582211655016141662656557691422725481227859785096751712445736530150899579565348671326840869508264184561556708035648649685903824121756638490206889442597367301346031430550392205188957970817305348439616557741397029998539081605404277423042882593691605020198811772450582338502948768285100569854027951935519481797180307066914412529042289740957372436240756778772981394768846741315800231676695123334742442697835857016807562292429166106802535141474726285431635869851850071524651712944505914424863772278999850361361445433054299921872222285631109928042592716843576722012182053586841930466360774201826579535368696130101369216685318380590915491382640129833752406774365685743036387558136384277686343660146960384262981029491153251138204216897813092593782532623348175967026094610318031114280160912343960224629508657930995488265888907503433085581950868488573352475933758671327591344249049617080671092588541965372589056067895474557386156828260989264850824023090596494001129543268586167087660822473443147538623594662482544871278186137384834395722849021825453666679723253053562813668573784573640822564789618023148775259454997073553609910592124853284553130327860877086390295832113109983130287643816622083463730625653663948470990858725375333909980560849836125096976253011521037846974117439650614226174698940617394638297356755515300552855879684492600163854757287528896326969543910760084104357134170079422467592674190163077299604138578850803339541017851619757818073251466176822164331680453577593169451201894591683341235071863274266400052516745508996675990246367613630024551202534487245131332241779674173232365952481806311101570660806806877313887925052512486187929045167066651821013227361054199255820455246960584276970207939457408614620425464594365193647487453498529686840653025705959354997511481885681210225668130545895883924076796334009969801300137538328712734593970612552867827086917679260656699182589130378425441449692468007290125054136481344630040734721436469010649151824910986605587793513577818158266779345277164868223300153962011254094556793576816428371655515177893966144110360466176154332673090557194597709788433793213843978913323457407989122682468353766093354876353887548667393744687086087706384671260250750818252846887673923756365584439296419761278529331584750089353559306478781127612131630048659435157590224167315629991747870604101766163917733733300811075988190058668382236888441271066837353735444323326848151829385155772412268333888460644696135869696802759250864845608849887441481305960324026743547933691247038877472574675989882771215714751166136158225240923914630578763169597098883719615747380354817256715358203504110053303826827991488359922691692134420494341337319866187974992296152912351902308540061357235733593399128059776291051029854472125469882665681018136194348916317601391807932974306588549423398627513796566826125254059323671576954783849372789718945951396935552580264157325566450919666094899865135732690886164396392879594443451184060468306238192828720806150337365002251603863395568642048515503682897161072515408246792761442083996739943992718877207098455500085729758031738707581006236634682630828030204237657303554498348185462961683469326120127516237078864972690016710787490635560988348020961160040540570272287022528651300965705032476085016536785202101744739457467705849762521073368335654665832410124876922609453089389891001345045518447451518598693471027795941843431357046380679670898144501993970486190532065790172867881983890582859422292451102913478881601020817644283604058545924090065145129541242544835255343668604528148988971576777519847816181817700539250635655420312292202075366134311474179726811177882111457734691834587818070780003765985404383806555174393211173218273353719749543813419869937438833004483560021286877691709359026859717513850550430420006441706574754776366190523337247975653631759845537712337726005568745129975389297739225580240000307421280613243448480275381877866902588254124793208134441986217385072012538254796468006217183724965273486770654472304550275897656557634623424107647051657457925132484531689176832037987730798420038263379566572776983125009467720076646922573376752948224592353297280142179719797650687104889108256614681146265444866368450071692705933272795533703791146995421239897814481410110524389174631532846973338215198872783582492640054169139683266611585528972332503342846890469421914916296557158229710503449349016408322011708883779224346240548852137192372634098311717744495872825255258685868025539165313651474336104395536492266939335663070488649984776423697270289003143495651958779342634633059906040259245342434831935733961083440369740792818517283879977441132980652230879062548329828517002663088295980054757891082954808082271818144912311747097059385326677349544286251846385674380330378138449986730124095358779867734911697212281320978253195472207926121499766265095217609510484950197529428210913828293140741233756729907226599368766516827682909147346687672884550778207743707747244600642609295190570417098053074005360423607131690274667756738479617241586758874615983307185936249351882292229335515607449687396915707510100109047856668095965851633873776689065486746636671717053534293053957308858266977643287783075838775610557128041138372372015923821956878632600573433648014455732842533818550478595710177437363803096999361316374759313876103955417320034947973074194820568573494749574431926752905619566843395483873967973000161195634048211829461697828319220613275417615018077798211230456508264220953838520855327961554162885239915152660789183105518943250101195784680989141943250172552907307871117859086466886181425118662151565241531694442457352695235630697300576158468061479026386531705084918487539618876444872687206638669869823201113206696655573359588695401689465905757940410298034387868736471461901990695545306649414619748245035460559341784142011783106266217191640503034043477860912701033135619623011868310270224203320213855201004835929368048357084098099276998828135330131254075669983842073038842367763875718373270184828052618457437797937133028373464493848320637208488735124989128761215989868857639790987840030223018261300229906466426086546281915015143460383957344210872672785071425512288011133651241304152610976977057388646287779330525395723307042398110675013377909812814240240010554524533914436008073001238920915526140594251821479722059106272408161653786802485186106949822265439763088673772313344883979217122216952078251557298894975155710022952090903780752693746163790238039017105964902731976133129852517087293715434694205093235975870909897747073713963514080802514773810820312419295703108265933976174654137981124728370542393109389186537568231653001814444876076476155365101379520718988600689092854576771289927599211264692244144591921578057168226114355047742673502321612687162615318147542677935458110937164555377311804840899788785772682900849908005860632595750932452694168971819769288176632544598043389392919430268708021318406889343843680149448351665612380358667407612072969095913151778325079175808895481429045333046256026675039990477222061456592438032437206325273876953195934880177169909787454692610053562186053448267454529409509011852991981283771302640738037098426179325839121321134427745124516436310033476440002511920043830468304027641544539546531335587810377621774931833829517262295098108979954888129303468852914974850027791074763818566832116895644771902841178839163975060042165054646467363255250860535237697502478530606664799054141649935724643602508724382961922788830774762373690829715177999868684464708926609314177619485417642031558144423672956208058390347071770526861625345510493965641959896822628048510366507207831606392247743195340239583017684885774981783968698747942326656634131954004745051009223633324106559571385296687452063608136439030182441844038860498081833027773798905805803675183098285177301708955351221189912241794974496244561288353495432373611493311878482266534555576775266610965061476366755783414642453721550609729374550911232737991119400142612358197743405082374336314609843345422727022076405772753625261170284112029654735901383535993373973963336150546834340898315397135747825722338917478389662093319074574789936948676866706221192428334292388294826840351794825322702111636925271973012834044912529194398486700762406774691080370591642920069464864742562902191349589764596096382723227704804710946788122425069387457780035464327432881696482541649535942333371503154836649871235950293937006828993123687943878786133259113083941351305614612556387361696623413182354685931008169942227050772949040669988882357682941828633940670043050409065239414793496482834958225594594354250467915648380209983691681975564656591731357707297848193946524834915363442756528004963812468080028892742293559888974081137141630285920126449438548025428600491827575558539130268162853122837289994151736067336883573188342953886823445293909170350149712032025662328809702726062367649827772895756511380664018271205381138411638624313658990221075446613462514906955401381084665530962059076016359453705270136589867356148025336715570212833904802447172338474673169860655987365165199452354521614357469304672032665728931131981396932156298206816921951770163849692666930506685950264348552487372655332997773321582011565870601343829729178386456559613353887134807122701222364482801238434712453156346952818370789795476781741769430661620096887153892248193849498191758179108985453818166798888536466060343252779555630784360131302793710191074184159517034685305675004332580748588462934238412872868624829871108769514838650987575271955269923189927807107804228699116020528877634165403477750674649012584835204610866092208001445085381327685951622461140023974313706344071882961714455015313694635330672061370682384818090037265678129082703426728156990202047226807923203372332004122693577694412223813082754296736579854007960001142937487999143500716813021855396836593813943179059443721028085032241997312373282823181008902692634784714903477992087245392563846644174061919572269259276673936389477607910837497443138473769363743512506537955150362734920689226115074509705616734349409920353720799377521493441078953903045152597602208210576801433389718690697532583441445179250786027517763402633819746496184142051200798634711059189882973706905126645923971607391230857321047467382610295936138319141774802150249509329466900776409537654690084596541668257233870439143893889326086644151162740954923681234767057623467798186431734811405662314161215650515014617558953661878910516692640037970967853497048153615832064256292591843841848667901693219294608178815421642850156445608302642365544847173432628137644986972632212392063873148749879784071938106756232738152702330809143833090742346445381927759954056601774229411417799377268060078940170809472255754344777672606330095552557714035952769302251227773071549853572221595849799682388642139557327375534863406753496395491587734920831620794322670480651844454300993046307532581280352475635873877093743140047030272087513374577008192565691034351157402263423526643478508616429804549477671480826351295522199059623928538423478556500650941729924110143415512839392318236123186866714590108272773632561022591118336483405593538862639398914357851304698604007485283747608335385975602726304051409167605534917594870423751378155723112583442755082995501757359832798085916737318863013078308946138303119725407659377565583450054907419794687474354064617032098323907097074423797135132597696192979500873431561808103474950344755749884177914751047273115074184628046686941342158761293665788079639027909583953098109226397933687364736010132432711667841319264153991734529553120713692185062730909959932187488400683154077491102559620624357999350283114730182200984432367520063092336641579944749285242168019073234462418955156099262550406543940275916937992394764808865173633154883061708571744220852996479041429570412133959524501362707001540929170203801070123280585779578667466368781028759623547665570479610329671269991268849022429825949620881526782412966568521429089515801934969145729313974069346134707723465041646721380138688866723558770139258900437333319369740649913627702459676904405908800285289268035890597146263527311644229879784320796510742267323609866215083307365563434771112810100355677779875018846021466053806336820557925549306548723860249544227987750951357495216887846960641398500433240671821713003587859412129361242659038285931800486090304273061363343657108728498816762065716533809514280806532855996150665402757822273410547544433404076301273822472383766815481402264884441894246444441132135532656494784557324590890550541750692294366602148007011266789016879348637089128004459694301544753592896094107684923118370088346563382941575214279152134390286092322664978573077654277243306881667290425973620650187474489128115478095850037677826152384280888712131570139307762509215703060141529960631955472945307850121287778500615920462491883100216729463883883027327397027857517601612465737361173060317232789783911768207575107159825729074011124212811238943529199769095183303110673013515402777139453159491580455278503773921365230774532257989836630201835571937457545091867443393619923664590057871747031720898170477585612949839557753696895292299324688077109124414549894521708096262603785905040542477635516244549157658656157278630840597819529838784914833364094471683414741990083619277487643432969790503303304850379686139384123618631315595236644299435491838776990096746001715666599454070963895219144853718951024603631497715939844295734872949956985287016391064951468430988393175459791985184075821581419951053747944705313589261117590407983309180973149879799349628176507552093800993669540903770275886840557284805525543980563345873508545738856248088091438371751064661493642863261363059465627510269307269043657014312214365528594789489319829233347275952292979883031570808143654956088262026605455344443415594868876880542907777909621830867191064947685818842822043263776278830346368829459703277038702421413746926627955846353016940239680477069071138613793291566926872179157017709345477234256875775503919038313005802312924613494164947625108673348158765848238761260241695064419954141322554952568204104071985587761460480708350076786078672068691335217755789369620167384533172765299372340822952696515548746674041628910417532233280302076746851893207102388877663043426591331195339027865027251862148529563925352595087450305932082443194714137866010969516402571436057103442164934019808936105613469719015645021703024912230857236742842899288861753398674387890523609164195567600807439832305795099327971399238789976016432665676024898803126926263069971085523813332696500938847559071412727468547107356930884066166936643214408977812248739839270162041523990536867771569205649295909581631788827283041504265565791763746755669757303017045834649934695515301260325501404305852370712383817619804387673280259377087075436297752974060473186586141807519481165393788781947348165200470980983375322380431310844824328721104793798399113523862839397791599180809434515843949503578536042090825408388095955548746609331453950120000545177230143961670176549488330760744743483291631909650733699571082233073692181022445665795933879765635670672399717491166133450025656752666325362081919965732969503779848827691475283824164255722807758206900053403366408511060985315858200123164423572478931645391512250910030807049625532172531462339702010352530475663057469563236854380706016393233719796675888911072865220761522418457090475276444163408025326630039362672707796848845212812888136130398878543980171843890168360856002568791142483763406448928119722088604803605052837424004480432971804360244959650159647551144832914153218758711342852537638959836335431168587206189333090256535690742758543607707047677035699251945767190714774949697982596058699529366162139669428187554167373211409272212035741325648812529103489746602146497579877356522990782086353156298948704387139192715159476352850797039500660185172537471926972276263877420236627893501008192840061375272594593015824912028938535028317093794910552417071530369218335694442245700900584136547477840633108465752249742905822122769646377489399928916496758102447046301017212566385926539515123765853762334028580245230211039426636882386205227436848092324382618097369074980881714974080065655203447995127568987689712422857981264259109764966541210954501561850833268060925080424689467720319745276233776013605084053508549018408929516936368267523053121938952289106629247283767241763967718557700315830632131235204985708889769470102855186174847680340338895715316826349160119574962463345424146049212155443334771732475370346679993616001380463921612799342548456054524288611193820139360815937968406560859895600868295714398426311327146539819565349036777049841104556218064635815111272242931358968983370804287863125796938265323960276118676918175289801720727300110051181940319782377391858935953476608000886433186330564200800062666225132965205019000848799551201979404922539621467274626897406902345139756029942053842446633819700029702022978981222963938077604399272814701323522998838900561069459374351286109985175474140217516828151483043909296357138003986618457680783209402222026319334325398704899604333174665996455710532540554498563483163632090122239591115722060630045399148428947044973118225376721494557330359709964336435131137639041493779185581364391918218374200654444785767587317520144306964987115379833719508225616218323272539410862196109736485790040532912283822683030619803002456541661132742314919728731900474648448589552659357700857189017958331715773265473081643994013741583014553918482196963769571000539451262732171475028909234090781605794506778782088792626009763376727551045934339189996995688854936851720715109362839369074608221341185175396353572585560394426951424097296104383821658439499408793206137308925044617897743879744541113319507074788531639790419423609731101725395154789570580855102792192755641621994043428100813789005389553289342558270083702887965481823357174226236343433031108452153422739307577293732327844306321563099535453336235363559399130198216117715668117443383297184831492100402603138021909858797753254284757297106992693335782122113183718259076857120554783232024200595074694526362081554829616951885644628966714216796351831793243182560677665522100559901789651117862957375758070088763545566590930141338873488979549122484647169925192877663340498510061974944634610036283729539314219772244316238782858883153823109779590396246497803882996283162732356763522585498199127707554061323044603851158031898142389854114476917046327212738225472240955832566715253801804664575703781940341857870376323867975649597462497096266921410040774616221902548538092821337227875288360787779560828740645483109568796789295587740728758346568340660575225691511759751208738932937555551120516339516450902254746007738373860932135205040314426916958745696576932067720673241002951514698051178888897015464462378806432836899829880858028774811826316950575615226847858115513480513581164590019559091952169153065484005836496689081872401021959700303072218833287557539701969935799414550778386671084112370360122215569554504155379771877072347874820933128176078657702998421682366163040968774421705969777280334581205315461316382130903117645537788643695631913620341594615909794661930041534250780678229430702387214969360378197122318495808461519826478273949978665026691096798991619608706144143400936110734067094632996287267830409397067871553952868385145599371653699124966090050946704425743696991558315579280201728342117980530991250541203199935407063673629199013560771267956045400256179688017876415970168720679402077727890004984107064412260143919788918675424501828908251352578072732036771881846025131723837692159384697582179075572406502869103371540316987452564039353138398973865461027302985038637955780156149534213020626945204879829818566270425975651914518678808249101735043750337710562150968328948591025160613252743724364986467446606097588682382088920572654192945941971712109124549446836311139217537550005287852719918544548177113483952340136122027037439728010133439453250382770928600959352483099358800614580046969994580772893037812293499493228273008131768338450586020154564658886273479030030051833949408321796722157100802011272513525155923664348126342536012636137933795175027138586215818555750081311317745417786388877083003249863585355594542789143012497227613132028569314266664164721755253317549364347445459708163823255887089604088578088861845314390629945620928303729769610121186341633468977239096688287134790808097081204241463019457567155832193885049906013821932954720769929297898342815439119799213100970307602658606926339294898056452025000191589514566869243314661193436812887912742663329539155012798811024852585795269177562087034855171754363005535323700615410716840601076018382247995638346939617578878405319357021009000059112926352617079206623115452645393565064219180839480567265829751605936472528601915980642844892189839043526411348728301392992754265468730169049056606240329748563241633634280066428214243723062087185538492885529918127871807488303367185682020649997642207507433313958361634320082400296464397645876345817980059218845181449435355228092435891146377092302922489304874764592519624007558017876842490366978482369227293899520587902829408100936219230393389098501908814610750499564505875984355276250915862745407702027234457101211962820631909366664657748687140298985941703424666352087409045151424324929368962271250936880828188326163070527529920401662766700079745824070894550065302731999423184712682232785456184249327592038861929865172966810768621111761645722077578632214047661169272108106678859615517449853414757069914529159003787303701168727935238176033079098336589726613306781828496542206994485355087381791565954424427608289365236530995554110168830073652342429800906662033857677022291767563655345251631367528277937990029709600870425109686388684462386605068303106657191541700724547758972293713258317634211708263951459377399329228003080954983377121561547384707031282955739816496023419898052433662638864652553638000937448222591475128086072354176806213436154112145733498131468316025095959680351171882677773247867797788933916101168681701829303700090068276517168840954438067166059335462110122073738281241833666589035395478624532410004263493090110404756184879024867885802147829521649428204972222130988407366243209215807291590441522123496484727579614112773163177474332719686212791183463232782041532343965569978268617501839389636559712613196333734376606749868783938395142905300876023294973375542196830612254870385300977222689355247214150650401493080015343003888761320679749928245211932902476756216299165841169799155958541214612034343720492126512303181528492229234985590142303233318852648800470622372552192624876767161500377736064068581313827325922990940637083262251055863936446629403823482540860453647533303758383495857737303133419381643165546298924383549899012428677442888014321071060475044144452391323593269161287113885408305907598714565023226746361986345759023440751858954179936484847835469048074846741653606998157244588551402136511229971295013513481595043078965827648036246181702251750815170260004520369141939463460470180424599752585747103925799450488774688525009763331478187329967645505787071433747442809772345628182450446111298774703437249018406245976590679660116785613720092169837628550602406102815814852752048107528271884861356133582425731019734572726670834186666072063970125142819301888937375518086465812221705875729486403575414804917284911966063728812346391966041552239907832736596536868330209017657976750635536506354870508203379880628269048200617287426765550187637450514330923499441792122804373631512804416654599191901888259270031486460676033169642153858114367578522993210384732003808439698074290374260808540981615246668606619627142494044204382932407279605669490117608984120716758988701818644363711079402494060608825916514088953524481843157434441355509791274138779394721670191982843810449892052274439945066605985517448231018627805247099754904897910464127195233059653093842911757935535567668794161531490271997105591783159131456265000650304687103397391345892434443081605137559886933264812754234167051054422035849157208036289301188289967996050065253613405973208856570521806690634134515153874938365049152699541971485589717230435861788291562278477142304571251657441603152246724091130288890256494537790154873922107730860760742942246106291906844719713887021413738578518274215590838123983765521437556607579627254950763831837674797920493477464288714115323199493589781718789573922158802553711495816870102089585172329161724586274333083033005247648239783110213852698568636560295767760100211602239616048444129410499656148312616716039584661754098060510756997614723823303828522846285113437747175106736739261298403865382566850188515145589050398952239132302785204587607199239383203079036812013734813960627724108855883615876344376871790546022705837832066500647468304010355346515071685331064982253264947390078702523729152796997796005176676836784372758943759273148205811126961245880546032337457287848222760974816281552479583337889066134644410901642214086489122701342489299796099732562607077301118697759588746117913013968024586932987047467910614083629227927802576483835960531016526157290269763080724007563698223364310036640289962333295528883360149582987102378232824927603452601317037975541903858051945407911875070385492697078828975986961438727400732120554519731519070187889909885931685091534875570101034590107349772308685113822419999829345189605145645790351071987200026300444289049445091189547361107349263701062921548077091916966336240033290024393101370409670249476120507186167791885121262470925437755386350682449934540168366524357438256428911754467107738471237972108368182202162576490330491965531180881698867087882791365860957160995077833838766684339916850381139640981214419316121140193947708389692140751857603561368168848398318364023195122170190068193938716193837880262425907589664628685729458344737632738394026079241513949696038774753380211945411176152564373531574528139056024765580327371951987210229360226965933288208746155234947816400658014022022733068879974251138749505139765658770380783992774699241151386467463651651812479371912806029641227987658332108236152977529097394669550179210850190889863023802332804986293988378458735235758869690777908689999397255952649390774934311537814886048057608315156572629010146814269331762105819818757296811607792253022893350181539412347497578426607759191849587635842937067152829872080378141920594379340097502436659367462056916216783957475937244613609453773751336709058694454098975188333496125219668840932172568776402904302828271409319106741371771094470011993974761206790706962763921695170351308646663116815702006924392100022175277052537989540053673585836899883494116679963862151874792336319597330978521407545189288693530238260849923580183119338156712344818266916246427466276113201255053512661924871689921717306118639427721804539450772466474843350486929722022010993086529790043376393875757577001363349343710687332910258764144784755424663725461137129329967539597708627049375050344075301697255459171419150033531405339995101417932787437731950221299298668672291710770719744603722133971571793387313217560294196291627021234461686921730375157801491041799691448593682340696468951692642594093614335159425051537387706564560719618364968318965226397308779491457212891275485303518077380545302590364960365108853159528311545082065122682565238238026803516266233966212984034083251694454377027832725510923247409674695258037763336607985500098897908474294305027641328534838306234731434981874543136752188207231055036488449703231736876552477459089473972046251773166098164051536144320928588160621905794432995176434626983088979717094527227033475713319739433350073638698724751458561908439785716381190095495169649173153764801638859095715332683689066647730243940881999901025714330483601438476000823548137932238187380827354586625416186485171667794470092507401055073973161299821212816919524738192190932609607640828201588013829049742590224600685731712970708438659658686959449029021166693815160498224137606018064033866246956214313204303988188759162463921179805920684049192797067980743091364606119325413509350037482086057691940992940913031712495182061907306219071450363089094554764401955220067811131420360462220033342482437350001201815891657480897009415326384525280023620434888097089920990779644094091000581325948266622555135302491556058800344588970624543653606040798490350412289763796237662892114215558649036027214924564471973875752413941201027117743054647991576115590826322417406242407750535884832677715020432856729951716688360481681881285370873464264912330999663151653810596649947503055455177233072501008062343954575225572186034593718918256413459939955978121650820352700480292360679596678413728837425623980934431488402967627302721155099236536747234466666660556632441611815485644856927778213790244729507612810142391146749025607122777983879417705655033888352461913769201883592809224003656792283802361246587217357951318247661478818263239486348375999591608500164743922986597841172449494422659762118386006462202118730764609501629439973981783933806534983526856902261906067311395249145005064938142652249501094309468251073514313723122532017342740066483674293634996079689598531930422158506804526410550298810081786346333478349035154884296016742513777412026195132469520316084596749347944607766258142300654047395302591011403359832188497979267887105612187104860595306901972823934127776452373325559205149292523484093364400493768718466170255352515059584555398490536538976051020825471116217368609279142311593618255441908338430708329534896539215954087047892490697024914202905449811585738669935848516934609135170010408491780233647912670789694693529503067183242806326072292068331654640387806036947648161283210752665669461338074288239466995125308861391974595810869187691544745242613652299057716565406013505853568575882584890855203016132594897638827735111561688084882655164797772755941899650619073104135929088903565878642432787385495592148392382258667013942010780284664983284292448233553637745316552891459684673603600653495906589132773227802834815964566628392976210064112349401319222657704655893452104790727516550477174806207022505877088257767918618339910148070801806344753927365225526452694799550008530056508886821066543570049571198766725081859610805814069318027841798292395672539421636276588819020601588379566036873610633119078548093817155825733654713127224891879606052600053906362659964760529227982784276448392950831893093587701748961410114064859954207496615661627417304305142370843290486019585638445890771172770242983185666853230520749754763945329497698765358625459949398037300077731335464934630908973842808900664082469940314980349492224276340739462047213132811557824180875884438957322869639478373021243701642108096128505133989800331306145564858862376247649304235923095486321025277468119321409794226859672787643896156185940759447007506874306174133754113714964964070188180658269558903610758154386954997105066411162364336720833519353477785534052405353563426412369118572212200825777364231257774696627871982912329183853166983962017006743591834397965911021047156025238169758186409013505178717844751561459062390122099287683797887245081476127199567346973913259726911428342933100553967252478881744273768687256664923331095496851289118533571231554524933773403245508003346793635233467588079969140962671899428288446589950158610952085925985767257230069979286563498562155049606647948233683631596198529263901528814614757022650951812733192790362422649635188614801417890207954384030910389628829657231694469612140973331334815793117111533472943185897665139508347762587670804370911307441404838857406770199015193701246767991117436456493951856310050812459030742742707230217791744410749274101601591218475281534478616605906687492836960872608306043044333620018325084446669204145315688714044310023074894992095682901432376853402437924128776271750991653645828978914516682146312889909216690119907998349419657942957896813794746268013556492008197781262393046706898138617760694249543999480938183712978298315750324079703735662354733286446696197069462338419895193838853452034268491004522651781335648008653166616457061276670608404923086640418095843931504373114641906804156110873991398195002276218229122620886538340685721253403695281379473280193608285042825960410706174981624473856951030605360820240329694630624864798584990205531663457558449295260379311151606827923089351836523872379156355421732724773920694890832236622963638735500463111445159648046668386330040465203627499606536037713162105029586360981945930787371345927645437394979679736161566542237337535961162237563142457768996474781881273180192468736022208175936582146553369046718904055768487080244083852267177602154357971054288336918045739446633718631522831481960832816438341652042552005781816214116396842808620192615490776746565714296411478817794713194809606665408680707192012462800220400565487420264488346345420919086476914054421330333467276572776705023573664968621578793053029632851054753130252161431906809977964404128734102500611658113305221527361053873537502691780234933992570657237614961540544096841089402570448094369014860603628097988046267024718506404166318593388487666052972109886845808097214075527569297896794943581378055556040843883125042903147509241298851240081333449089911693695716531235820772270116504159552695046976534821453324008506735730273649285273956334429186624036604457040690206480133318801945182858910534630947272477274295208394050890082893139950563026711627383558735909585377803159343353742595251912154241397706136076747320112330123677426072062597641570680919701632405579282019043946202842449677785146581248977813852951558432349743888263422733174882488355951301877350266714520120766794361781221686404519982918584454643206131188403580257133565575525286706589996831820980325217192439562816525061530418769954681302301513987616581747880316493509078632994928896668879156507810631833647093641607294600738981180494639863494581537615297112438884938477373713827411227708109254239607687763523985967673921134814514705747987130016064541872244362548384307447901887160241395382340144885341124871532136522950433616287642420926404210945993691865290638005555986723172509505466039393983593196542683411712314085593368848607254001503665420374582904590908265516691010759650620703761281305355186484918937026916621509400495391436361437376840051367468183261545691031692156752637205231594764726108597913421249797303317061727065937756290878119651041677818675581819047651875538124859137866094692967918275021424628041166860930660333709026972892911501074430267025978523057615332247637323806817151925561941655049349491682515142560180348214432857074960524686747953020589541449053363831557364938376857625797211337084745775511250239392796436461848086191098662885561280034195148246029004172046534018415481636722491121015303055935277811176832574484700622027888072556448735977468123557343181966014184855841908795718152308604574764418854039730686288376719459129025573680272270187068415263166534851310102723611815240821724720449067694352983856902288392745122240030299595443567093153169671147123351777197053202675722804888966291198775579160443140215815143287283725697501161866907084526443025720740277720623744075514143231647402714755397352217843845696475021734187165043798380043670802884957145012258496291483530967427411160967168515173042495623646352956218671340308373985781304727159734952696476353766397778144862427648324943043393098545904657632357989442744204384793689690669775712276490641301953493385329369886138763655338210919416481875272930261152198966496685753388311560791133564521810198826108122183182246633207128550743899728408023949370627679588546314522861301237962542993679372689613636355263079415875682436430170520286388411139921276756524226812077868370338713097030778965763692169296541592705100153931066677699679182982010787385488339367322831014180576391099409877497446693962244348417435140644854503079030983665583630325357713547568507032429010656740230082992000185758993098942381709993960550276732262536333855436607082667371058024694726596532284800758429474301272373890200846991210176488917606460575220850210759683084532505782921246198478436299852096046477116536470964953600269770015098909760073632844518979404761599904362976504292421502029213062447875243253466576191161670059152989037278654320796968286351862177950779554058901442794579518132555314674982676213800383516627386252363489973097810412487559522248910662884833045959117247736337818583971662612744672781758658068453430752179170158432759906739970301137483917793371647742401363368652537731144898491254060714647930058577624746451853061278150534427194056947846024624684989949195723219245687818562864823877618684756535125421228352784031522873316653224639673466035467128182648315122940800202426175894086072164345646447291052316174594397181370987970160328182723368459537191550637570608386550264544202616049426817597204492848097027973286453632745124754785668017911958197977273318849568237034936903713884944126922058532093129474497354760757988194205027501598299162977899069180327761293673359015821911348191030245261120873660007875557610006774635843758866773344358629704191129416465724392855923036917861373270683661929811471934151239693781583621182909897526690191939860851915821086479459799988447009080750512680432864577274783621352673523427738288925119762031085785322995783484580636984810264276198328880645614586312005234715273160731779696178965198358653909908735334714175578862217881832829004609396950754842013745593367441230698052363031793866216616077217762563900157186890444202974648645459959641356407712106437222572882262673599766842476146019139471677185983514231230949459993869592482701448041316585586981531275027372383083186411975334309520542926293350196705502936403910773789309581839465468390990373344648884428196654312131739050211237480413364646036057413717469799785597729920597111717923158440555645884506962047162113906669387046779599507440384482868026512441243974514019759910407980909667918545127711424602784614332279057217715725736377751692295624270193889246417396065469814158409770771375682880262516363932041841396057101594222545480278261787725412427282911684434063488695984497315374045660333902277591812428041379723740784836421960477909363631564927151804184536545997530258528064166150646110045586060741070995490764445499564235668029850113956178258631874224920586519965687769895392711721253983017576048125611239244588284531155597591598960979018357889050430178906412000568822743247630110368260440227259635578625349771879035178512918531643869571781883974420209518091652524625337812876744039836782687443594412252154508768753569324316127952286960880881299748103604710994832407643677948904867435936132946302962490797972340639121551687338174803584423849909735027497507788563445356359491141186266139546536298432998110911256895083789992358530740696445536592245553784637066029714654465119997704161611264395857795853808866530967210646099415251710761474591846302311919970601476937607216708072967638800539282528783503823754847128190977204952523615776515507299314495034597934099458599532145000378462289332228710614101014431299392213003261209209952915167165786605242349370104153656959929960717025643822253012364347380503666885855772577391493941690258166895505195382834120596147834444468849686133981078200157883190230670616460913761634548778804627440108491648928656659902446396902434405599895603829872908329189258713174491416276925570784152299383146619552710061464211824612274648846259431397990344265412682398016691564794449131169186360167470696565099258783203512583047710415559740560922880474360001595318280698890770956556532930915901991551222132011891640113405985116119929872563452465766412157777429708611922040738509760296820213685495340216796989649742789941842713293012939230391769151092105679454450919522892046223037202568368517275986113623437662572006552674171983535984486748234385505596685156665189622697768351740474824759726946493579461202254823291847222443729466552324983996386274309219660398509232624892132755114515951238762299126658764829112662656516997185826782183071428834193200114511432848348310247195694310867794287772776529063901932166097598723901358196590469972451832366747152784520484222127578341306116573079361416446508065203323497059637111432973092045041363059869339471079760868513413791635903271905206605480468725478248237461428908103978179762697735872743292262098760992452568933941109779829000436864488036527786969318597649662980507054346524214960869790567336922141629743678729254936314593130800378793005552222878999451502364604009520865600568388627855565661006042733016609003191077227992589444648780332994325745116862208769005207467566887241768827040178371772167938525581925130255981615998997877159525476064000824732847452649432872166629322674923681754542277988531906262452188038069722378694732642554058020790167119920997710875016630085615049013574942104043652071223518939215271809462469669841637552874127262325852931075796062541486377316605218675563035867548964794378918537114561366918167717192905026642777675666354867532295259002371150198158024850651844291503331387373913484524366789774713393669096827417095396700595097405858885335808572242396803643369344291901785469738250244849221837435523245800081219872567546689737398772567438917273854451667642891418621734467228625700245173219929344903562282952490756435572062451584052546487601897525480650630050564476112980017915712668213303736862992831388624380373614336030084370541327994314135519937709558879266023420542709145196190900285649390519378711625925591580420042237555126320434992252913339996376171424692029969583861518969447870339198939999120657694379993907454000044085752351586682906344409288669205584797427153039364705693991333162437717448286453295515799241830305297719952936431206358556889881835640751861600461358303547271778785553387228306820286356613257438428767159886272919926637340294393840840767441786861807287059480540287447033074956340095541274939822338163405567525553820190547097575417488004911460857018303565605260633567817503762996455096686668236716140257809745357502970065935734165922940054485104167845814420936371934857112023856417030587159128704681455972116866134843961986842587728387939139279620338290586459398886108090731088701274003306173364637146670673325055261452233740192211371732208884503352354843184676106203865127524738967953135947428695595874758869761959449970764675113717295701674804969093149545519082251489706653173896469789974739134249031190822717102167509588791224823164640283603406870234493101692792032367544072821421404173318949900475259578087209868457142208046239919626179970946763117893356662776183570856259151842324598919491799318625197718916687226370479796061312596289258749516253970631384767471202054388609838052249883281196129373477369136329677324112948574706605169988035256115322294012002793707172684674139294975755080280917263913531826513716277278434095725282371385563755916002072325079628769590579890716201401885474482647689565602167600237922345010119280006079148754107377284271244205554992484179507305085614710629440761594603661367650668342839002155170199556459137322627636316567770030493486007650435665741049342887067059698293207078926384500785107426150320606940264032121266539619423369183907880415224730600002728351651452797544833230774435693822166989668125434883248079486989737827025535429310842716590497264871557428451467680877923093942884604078154849190840136212325233432744143856040496873714787530876502520487741383230179096496015675853198449449802724055469906452249513114897709959576923046350839345416202121033808030660609256634828692346098803466811071176829671332493265680513802868830979778319066372416411309571344686406710803954785056490520774430273736694866422734451270033235928692520424671793429275427613680733597396327777072723569691904236781674759384792675469240937742180769202722704106150112788161837893294251954521822544399172528975219286207683265760367694459403754010692088426720988519988268806842643309354619177203144423132722164424591960442574346712616046113799993466942040393210505186037401848594971566558034312356578427995995502675491743148425726005098328172791515342334068438991610870724239253821680074782525721539190189136495606523197896520139136454892060833208368781390778450422844337360320250072626852860254046090460564999327828684781028957423441290152208507851294665282953942395909909727408064341967251541233074483407282513626807109366862573839586379900360563280914806677364609978310632667523807486692860867836678902418561262554961072251766943107767273987487875931997306886013237772022343717256889272515420738088240805295816088227232330712575476334801498567959242498369733050867332827234821865482628715234067532349898655935686081319409738581009424800901808632695740924698217164252887559415552222363121966289857510926590286406136536591199853500670546979933586143984654194838126663002818685664935660797934328729682335174081088161033123756988742267169268058224224242957073443050223349739774361053432110110861126320704401595920052719614518885191109250158632282252269449846643386463907159156260529387690681567552962211416954129616512278038476558873064530221901974794152483469004355546816011733345975420959949282437327165033149066720043103868192862046710433030770818752207841822039044206916070505800534615241049191436903479117433900283323065881999694306370406453135795610341598214990859451504879235218106873934128516961131893331720769648377607655730619193653846196403981289082479890206764072629421187285416214431609449016367280568880770651622919930254955320110755263826208988397751528794277172089748868995957233191369792446271371744922870975458800043527570191642682339252058336274803661944431012061498270804370605467096553995750872461240003278954316004914075186375302049909447338444951518642518830731223100636997066522622732562901873961947163483400100075428774003593101912999315954745400684852761295115396393462144548009177202777131185955361646375599882406120696989879570617039258725004544234602818307837395757827874096309022776261454738309912355318866413060360211127007033705596189840653877618696090109394758325526463835211581166615438562292460661949008071135821125436723989810468267441378295235779240426178316959741315963451723459784827861562949944445282698615126819944537396170230591450052873888358803863723246920702183845592732670914024012040644493104830894684328881276561043795111983658693774805783221472410109801154615504637670499778619914769098882912307356521885433347242863552557621860238371426344426039231411610201372886302963211452686452497150310323955997075870633312950648641873559146671498667069702999834876470723258980766904031221702103346921806159238479997950830410155272705186561987590665667873332188497327547516576122029221876424726997706157402130075096606948818225682520380474074776739734518119432017931126719533598918680233929811063365417255699665743107882137820205204843188472219981854334821260800356964368280885635965415875372288654909139768084997448739130212379502501800139251960008072993626325508559893480765053212845996980013984728655740277946399027221497534103649628657615718355073006451417345684994087600405644911952618267859421134302930333822249789589449015947998387499014141780061054944126335908332110386395999943404546691460148810361172970196111578888987564471310590044039561861632988549046796506639890722954299055905082182301502053983140731390706590427597453909670430200423531205835736190816208496049828622286664770731354436637407135691713956855393076042241107664237838258883233987559384733663448907244548666620164043711005383108711165638884328231669157639088344941465669728125371550918661739599907320470333314716916509390236924421656646640295072761518742298094535628214174012812780094724450227559132006077693694021164212546683658923312350702987680881386115417654720206955071413058916621185714540011010986967618642267519870428695012571099833321068533739060963756804258334806963494895882867493002716765701821813902266728352812080251733513572638973448952189677749002622306796404203045959793650166953241848361298157945720997377484247596833060570752201808810319008700824421182069258395636810088877653101394687313778893984415306498645366506425179863497932013539887216476842546872255544163944286806683902786584661920871653181766419873217769540010512112066124328879070434190001947532293090794417890215116421202283883826719327755985277015177185851750976790003352431713586742252378447154357320564358006874474260478522993530589168152208375841471287534834137824538602032102084091343035281671694871600300418530674911210199631081212422128542846214619130401415185387856710998200357369984106518034201009663806957805825432047712120277201972553407682371054756751553360072567983316890202802871221839294371201411982933619920720474877355073942121016464379510554610861872567445369080494652661985368984687541971621435454861592278560541184352203805408098973499956338771765161811771999302129190351088109503462068597800758866094239815312421353126568954110716029285820986200987213367526026893704544333170900663897386918692672164338879219055744591312267444925690514313551043750472041669356867080174029814003715651063397757890302961936352340938754650626430462863628195247370856889373762512438905435079340037035634180069634070914622439707281128433003382099854116981564654948399381676854709689335254519071946794882860834148656290899800506891489663993271858138476961181384624636987874051470348968985388169175969810285427357028039129951618103481050705273566713942527576065111930027974739936688996341901608973009738826384344880196712980227792169609474015690790611485359036164802854437660595654878277955687567955080458276955623354673148748278706698772068188872148198510731028497466717850937484603784574197220119296785526310673444698579212929504602264715875896280030832675017057300869868915031060359651780711274960579967515779108461381386821144148181555566316680474056837913795426654830317938386079804260391047088845641846479493400627178883630541369740759678137834330723376656115154979650554795180542699012085408549850312319990012152748027905643382976864186841058242750509557255582598707845912074673612246851880200120282296566169068746265551597223255346195130864200852456968883323548089798436910580171924230778390831421534245658962497412940892475855043082717552285358589386793688874747899707071097708220232122812199124561278932220890720399677350510102519896628781422641716046160807851048329900950606293105827045663978217674498168618782795200025233822139505597084503989207319868993751846566043257658088959338568589037096391767947429101594270114224939459263050937925923443097704245474522240084098468578784363337064286003820090340976155523966988837305052029347368308931447622862050558443609455744778859652958881405406182102958149829624918660068729502006607244556317323841400405772868876193213064659049656875712871995308128222557528977098908553376568094587965645515413838866633498976918652881549656290413609085435868999207638412827197604909290348237481842627699187895975043548018433506118859325355617558065279238126996877566208751346775265318252661744589135137222895720885086191990317847142748321927651449757822391869554165868911676417656851601852835464721638079836613222347234160961688078600950807416902268519603183763028224587828754903651834198748639710969313242484186177729409017288340213792736114589698704696426389006174986889102278355010243063553808810842482515347094716888836347517556202421646207187421626456988754617227068775049670012346194359539245187025869686032107198940972301213869570272436051141295018930297830745445760128885370895017396145589717987885513281287389788890382950091658998806105247692632503421071199091074601557924443884039000343692758716036450461531140909023704808561514063189130138107782786009264985129026162656959363665259228349632882511953326989960842325429177277176202123803150313013073010430989272504543300203682725637427323583035698506070432891823832922396816757662945648288563634013377124191520152947908537188933807111413090171129368851834927842484921684626508334974815294352782216585260047072659887592541910368495822150966449661638076692107000580308787698364384246191899868582614083461383443131919847804485597164978992594039151128594164637426962173260414784028104671220755836141350468595840885169231943951911992329787517520075763155201054096411414569973817561933841737424138249291664216324816247651789481157278476434795753359083992462440546809425545505226598206712946893402295758875214857672110008271575279554717715649322378751388782547215450422089939839934786448169302805137254956426712535377546062480251470707297898945808218156069289649540328004522800912288377904585808903320788309360996989440601954336714888093437718781066664590592594331310547000638155962578490983127789010796942486428005562025406578155503401290652837167759408174757072315595875058315779956588499484451568430483389872428273616940571190181667420345304391693292074494668668757428380675533128194698705924276374182745051595696634485374628981443278347469046371665292387213849316673876635287180958253036122542618584607039256043992606365268123567356108447122947335784120783178207997499530110231194904554374543408042582439409258119867581541208886896560476007937383852841837306495513880622717555365861843843590153227825175583646466133968418081410562914784156831030236332502417611483536647887392685656476206361847990446111637571299483678169617170593697201601827052240627671348022915189283891210759230011829614407511248319765841169766046165484542788013376450537776131576708287673515765706863960135957772385361773215478372223870248078728281234941249943934465188310361682839052303659950326119461223428120755855744136170349300459390419394786561998303824148593357243590198695930072242157912225372252477708262838012354699081804156774308166531600148760664633709006030697814401065154823157555102581113855203183009424556350282479566949230887391348115370970251183283472445495983259446672232749614719057304543583876843216522260188120453935961376897942851355428530334013707011837012934818368965193067953444549613544893763154847055065922535061993428633556387510322164287793250820000434574338112230479097713272128948024558473074453953670731857860093317575547103206173496406621755652569978495196047504282863982875943212014062965207565808222031246182918761952379849739964569606245956139117122335252260850399746667186021074861100816813203365723472307966078003314258155514000843155435737980812668537507957646442666029667359352468192945878171740473871292007649649998007649360101513901638378799570043774574781452862838125732703720068065884689133941739546153394286167618943009861634685035341931924005929699045154581695857304295934875749409467502909751558335178956031873239795242440633169971396182847237174127884399974950238186206539538703160480412537835929452282692446910776938501700511131875360199659423423411130417249345992060033347064979914941209765247885458363987130720097814177531415333478531022590060741635843631287990754883395465220792142982457655332084014644242610118337062912886337209942958245957090462871555593515977882602995845960116578811868944336160198456282483259650269619588736056310272336480512007397128523408674436084010256787739631647303974730102034714542292192124368213629078055788072570848213495196494491839939332387750729193266913045991945975502626673244555139690447752281182481281029923833269223969262868507765229051716421097047193504848368646738790814235313688192643137857496402382620573125242820012958475949869349999698798767803709883810449144312221865449076672012550542891650701764863661866369871936962019283626250224087311009854034520055919466878874843471789114062676398906493700264014105974664330575947134976913276656860803662891818321466937235149676742821936315235279874691987840087646008836166252698316102545396954124334527369256594440827001580654101275816963853831674191729323938708916793734283799768475209423123544283357612654585226915552248525348300195352656443052523711716225947620957782926233524236324290383215106997848513605647545690424917674040072235134043978644542412392918061887582866035000658548489924857292567874655478905016003399186656616460953462459702336736043879407915173090473171032069897548288216498064579915719871281578341177486788644716360554803846010415603086785577951741202610126900402593902349462300156497494928662041596738561059823905200403718689309509940930247420911800588507229358602642223880750112838433182200940030937472116456497907899253415833651140368422322621890467264500656450013184014241454767377472117234497500153198590961922693392185815983833253138091947970925974589064373739966737426124116475433714705246877124877987970571835587266200857781206235319829509827763812579739142686276960040294946245369359551615268080691644841871417020004814923009633328408742622550276259006082120521660135964955981952010170379606266659091438118923490260158536611797576211567286336884782348884428616593934963421744290281753255838840078279220625702301750711753609399996858101814999887922854892596559216221532186658675517497092022862684714223364534923819134263279827513917535590131013472583475952419118201870978757543542320972382437026206304754218470212084451471642900561337640956163236597792989563025202248250992046086200788854284145372369854144549971783673632157425678872318565369841475662531141590719936268134011630164464244561169805554382320703094002788474821712174690256987080716922794088312252793563205327793438356827644509408022854325605737106866786677873138885577884036784324536847676093346124924503903991854233760816467292946347103052889678884425406871810167872726314803539361208750734022390592503577496351792362779377891966595285848092097435127194816663915734920368492078423112985004272208844620271073020593200529306995588386788731429823671946536033330891308166045912023633802919311258856240110570147520213972323651446593216172650650841143838501424445074934656353840403342149516288321499685230484503177294461011368048748120343898974893423018675948679704477003826386760279826885146550211340998282942345231635320938504951797083740186849602211805884669459030649376077627586597092695146729264127552273990060569286795133727259938902669963780356361438600311068405559510747415107221838383099462421010146456488073109845742763515115323426015902884751571994456458415949056850958620866352477354827190462355381447670427673120801995444361519941897760516368314129114828495477883592625082847918789230705577132586745452333325382360688052221299163589113286007683041954220025793879314421888116449344931992489825346905743602406247549944278820594837781941514364537745930833562857215926384157476284540507161253259618230091273064778375111557610638524281025619838127422122615212177352610754827288078520623565813438276848901288743203309797677322467039605578558053491513271703696883235964955690752938431867818962514361120790430762118678483215290091119472471766256383608074222339029931722813536764949688662444657019566489132343434131453138126364081788565780948946260794465569294261345661923818679671683760429094719036494898460335776962902544520467092715679488256592197558152903496314182612743513001470345896724520722355316500320411756972184667989961068996117795651949871148437511524207190350874177171243476075575228058316761706945473634342750531381704120603865420735532650617643791748501120450191360332677617291816894398972904976746386524071157719519717944572263999866410015731995411435398138419208067730310724720816074055674126987709769802721253424165057882550175637404292953978884961494242635043137353323999570039313976007109932879717983893448666503079305293068789234057933399096258861664698462725253027555264167731308278016838382588667826806781562348179108414487328163222834683641697445178997552769412181433506493328173040055160384248158452075727954270717308962933229896386543105284954503896594091046185456395228512814607364278147950047596939448690722025456299596678240048111767499255017768066130053037339016295611268448247491340521876177462845210677362243686686879803116202685522450113213183380864311704438480696964735214791884849079442280310170794272118624789289136894952376586384142864456930883173788825471481998908034306455874792690771764051013341741186399847594347890736445061082921176325105252328830834696102388323949645625215554814865546510138808151171142086143713815105703949843356303265516938384995293006620306732712916142773093884728022174281420892379767655359412223478848072763539787212934073850121264377260795893220610747423665179148394442262925092208020327361091995250018062084629696345709760942039925153836175035449983866952989575689988142168451093556698721977137242251355033535852316053585774191252064394945528829595374711240605104361572452047452721835528404632220895671684060902071042223358099086557151180905358142838677960841247792816928732320338530392327154241263571968197400920795401737755185599453902321180439264065638968089308777189574110533696775830334962448537032978836791478600101025948724950729078736933607501981059684634040035703734290027995326977006940994292867388342564277911461190062236645127560098526858348613477181545561150502572844235001206993033325928623365949787095130806845496146640742168420246127681210903557786223787596073872044461743930241482758615788990525622416966234904269042060133631493040924857119128397079639480033400447913170607320628779571763783145410646534916720596659764232228290160529279801609668843334248762252995527074838160865853653973829853176369526073232844458729327050215135738560363927848548359647187531225341744594485781627609286598960651580677774952812291600553479231720114497396660265158314058769601714881893576430019220012674277739565061128896487195326165346695311758545363765159989764130702893752269384001620642493154434692123092003291544923559157783089708954560290005646092422290146845667345672477628408482584537570109978324761813039673842473484907534505843697664736287325043227499645187985255819458496795476304816371181686677541927981437064888743319247300948896883972023400724212786677068662675370985037439561765396016402686005577224734624528635229720363579889364419963048306217196180857135590215661927762725591673966858053415399065276384412346550886819618217527037738013772678333165714035837096980832139010348883755229391536305690985635869641086856461678474544736448062586272752407362622161113480630893670642327556480152011485561095479861296384408002668303259033573456913146727989418946743937761763741881670495684809239380513313964027583631434310031984326922184030493266511864347729905073201446668666953524109293370128469909967127926226792932919274818170346746941276165462792699962846277854466383251125863788401641173175281210887312612884084029344662793870027021395269434794294263909273281523350596007825670965173006819102570348893084903756700084657515955842548734753562477516797544898605468423663143098044749559683572848954983394044796953575688230381476953200972723862087772592426378383067399335078022485120292022168677569576103283040318203250204563499097670408423924444721937765622401784125598835758992258299938462395556165232563666388094549272578439352391350183290250616704961146202915022604857935798220359966090927180129974135332182061836572504842015429432194659114984489512219838342245382541434202414778342533020706925395762829520358039981121342282251165625594941624201445718157401674807913127036126678123381330603550593871474320399650768377678841789505791452039303225197040525399168247722019707117295588180014606399844296561854330726271255454559107711615043251630913652556309183208666251868526709827376630059857977698513332728820015405824996653337201712229466129907770939023525099871976613455021075767875090425348699225949353011433383937276812662926116652752019976011834329786287724954733451808719241019535193191380083500234550839877987444457647126936936966695619866557638590426982832654934524041511515921460546511534567312255902165080789647835496031156356901046995892654592588435625853998450342216107712572027924148643966317056623723778177118946197094760498284203084557887011552530823940556389775621025997319584075585072353602941066588167015893120734571967675340017821508007054102375683473523029588038801477383264938946066099491330457985254427020364389799641912282733399725705798248503269274044773563424789565774100258763073600520234685206820484615262315274482130864757106062610823546647102988392694527368944675454609764084607338020176141849155393258413286075744412723497106079272109662828260849625492452887460928408947705526506910717807215608610308321611808409871653806805349745605553656187408851985028844236557388242029032712285889004727024440871572303747894695258045208472270190073464104282670037678123309104263298739780401173317324486306003723901108191545149919655927319898257299525725796064495860572969134191916389399699438052301609427137066040147904829160586058219379692091444425460332225589017925772022780858719614024784105608405331597313408423529357036361859479798580079841614227959257482517887205817850110312800353244375800670035344968799928752258764828614677454195223075506279306947057861577081018213590052026959172744713119468604608294381723520363996181839745837633546558468504912695164778028960426668628133303765535845112623957043568205118658025996198175570526637976358375810977473412308176044668867852066608955897050852593141960872228718306189650217228040226716793207098958788003633410477724878269534329993432840952856688712588437681030527378764931221063906224330563019360807678030401323855916069772583734956271271537809442966102205716043667576174264600897268556331438726964831221716452698747107054090256483087904328998740234570485384278881494543729635092717310357659064390636984377575153784300562145683088861013876968327702727954482979859064837567879287303606221647953094614239818250079028744170401353151608978132014723326768082954906715442458215962750826457768582351243193542234993216141231274632970711839009743155085329088712603043698986152654084173382570995117036680740197972856239830864262428814057792978843366356060507283554506044398711258133970341408035541841784901175518279349704068330159105775698039726899273747731132090483524789612952362030658851392394829923450994169556671551481477504271169592259745219709621647832542519832603118001243123520644305172947931572968268849107197557441537431438407112771757398151019219525127813833269874013986281445052786537673237770944898996182899386314020390918465486089259025868608168549019758211496750643203565842181144390984425757672393504401971756317739126018544921732349625823581375268293670988642514065244733172645278602344739502636567403107840473086080572200729317578767116933404160009469449040016528670290523688165290678937099996249678556073942720989734301478814598252554900410787400846596882505354238854044019375135852543208031491855191938360666728968995781313057200415632367132045708118042357051188355751365802005005348130463198854191643902717325527500205914536624891950302603503167327262395712470830972723385030291824162682391353425679109163344729993513084928210361014175273765776545038183458519165458349297240345033540822742781745446115493078286135183335254933336832402293517032354299897522123535312188843060743723967478382307197506875047827831950253961071442327124826549339226944268836511901686122297936092030439277054435364014983280404651683956055031021767465508644038124065178522141803615862179460106715898497773133150544678582863515555804549085187478072524095214862233258115381679584723410819823515235512688157266683631922590908853402151996545062570875828375563630476784730578628964230005871641432509100048137120412639170576324056527143725971772701061100102744730952434492678928705659482844013391486883196466357683149667881244780904856866817361075145838759668714970317690508295202030838558428868992451946320800486112217469966337343987466820439508454969974230469387159784487082594059423568003547076178298397005994578115913178075727988143976758519379919279740109990112511330121398519491401219351913046814691362178913217006757290754132361231528629997342985675451053514632920359155252651245520616011796408889003927601022027874836952474197863638233388587677002443039871350276269668549024681773975126542473073203642118265894264896773963029042141369216118085475727514627358535391587974363199201864320706357651433916711662273211376018114573314503593466448801613280479379724710211292318577478717920446525468611222302231918599620148684273444375096786980868692088637839959036111747174757323234266509065137324755205053791297358701412371157391180765642863179867519943566547130548207730108283983503190981108084139179341938020654610206459581843884611179936500332934357257326945224300671085689026392347176536658211480050690887052197556361982445466954236481423351065827334804135836672192036254312790668868995753797067349828639293464033467139691334812561872003958634114157347334819304350179346561606960410563914562526782074027575340100582913929602123623782346382485212385928937558368420230719012582191040579168725659687131570691572235376352097255470381491162136774147600641474381224733425832400510992508147240601240114724663618230046322499889028973229424828881280572413085783625312421250907504662669860307096942248866354783849138715879425921266527383045772360120313429944663808603519515345200983312478224487923051857518304628521608049996550097812314704413551880286201598177714308005507189789882162229850889959832616475240795100350621682140779263651133045401619156147504621114689344078599427493183725465701274591572874313602794015689768584582027188142192890259215605245967346211637586870987574760430250629316794441928417156564474942270564250081520310254676721159027016785049862703485546160132431472880712566709769800290763983866339584297056132164405266952753767173109020305311841620910683948347744159610157781293050994565070877611650080963249888496391932402552270704602896904008558828884995387686750606276723802075880802253008128555095486899774941315866897696959739744842960235797206660857450601822329713389061791958643329052398452201464189074099157092922333496313064562146534314515279867431201446916494204605487024956808676494733170154880640255234183862928435560424518999294484687165979513558509458340831209050247739687318237071331294487844972766387836705402808773120531378478813510515642297864884603535959608248756396888985086687088330617260609081669298129378323760717087095367221982817875614338579650624422646142716640255702192658042138420656664989428189242747786349670402565358649331269936306522160125532686209136794421482395875402595122917045192235520047853351622419217251717336193685886733157654696975762799783213072951957616145789083616730719991772183282112817959334509755375641269734793913408337650334857071592550532364627924785692598240528464004437645888072142672756193393419838110946917670030831834123650770781088737397421096338061349772062372238542194246492443532007091308941709713802358722361648643358395614506521625784796757465949865132923251674516079919919953011335441046093690649890135660272768896984748918550152591371110019629942997435345015591683102845188143002324624100205254534299104211224602282895982944078176703223492603097228281481572571922319489910106229632505538265287896949883440553387797851442787923347781327373142680936933520783928688443581596575330864634352952095695192613118629197968938118256119123575287982104067409261450276153777425083676173625802317266614057693054387049683705371482632470666533895883749937681053377088702859984422074363919670272523660802771834133111617194323142540252806546393719002410331194034226957138366898485829852285241389038333824543466042398429149412107481768403088334450944140754003974787750551293204417772517027475476179942659146679586764459377832252380568396509078532082250993827118156551195651701713757022214773186419708100616322608864692285511134191620490407622126200526227919446782975250612612079183320970829569603312111297697733627082136251839340942508410905323712424148446334625573560584721818304630134414277553513534254590687633200319184463420454958606911796117667527666260784874502965032367801571198021386521262137494506222630607726049187117155161163393498474216611455038196606689707152388180643552917676863779046679042950758379269142342426024024806886007603715429767240288217961864891376775969169615328726575028209868819184909829095359747440749834631941915632011607954559975779133024979464430570189869959385859370241665113868022501776478203903567143324750379358314031643400732956600666322088522997188191462545530063892239587122515792374764733411165859008355115559853335553234969256759386087824015196402434190961973295924760312899576829159001540825389733071119327014143445981261183228773149963876548437947605137829869904420654577695405658513595764811708416275065210509957584394848682228563506762580075303476385445703387263836274942492684468024762354505153132595200814375585052097151669799032852710829103118040198019412222214328454862843640666378538167563488156087278115577214920577452988076360508470906467739998831362045010103430600393514104694898796470068684705194674835576328647298705905237255821458406609808612068651003149076877239300630946358771399342326274911506829123159056639530645731328598669967051996511582780063787936072870632908183131870294590918300814097982622925990102240353603917065635741224134888000873133503733965522518501253901626291173802550181813107698379146306654637491669187039773661796471262718309507184356667115197217769693020191027813259462864773714017650549148170705153567338489154613819847639070664506193854737755985854035542393871643872074197170781547196992114578872134526670121978114236714418393724289242115815764461879645334445073133998512169147536752903210711175507154450968748879325029595774072588834062670134519434300323260399337219646751206761650663639272492248607218590882390471668084232156827730467629860479388091148258009893059906730146505129567989776302315184622800906954911860615474017859272830944350192555462473744992119135319654768081203273081571665404271759725552373896096363962303254515613732689018702156036617808222152272390714670437144408162015286843641348298418945931476560253402351796173145354706541112543888409578070403671556454309241712889053867296895309505070184811567616466623388976037725503886225895939748824138048070763744782056266859031692504207555621543834057546841265499051214514734218345888892279051826040633603413258985157762729166593912181989914575026703101351216584038468905592406994226855272742956146910076580698001197924445338742170452591405251054104134758761505684793700463363881738294856722522426685179063629099092031176507030115380076327297333094399966041745571681036641965071949946255605243297294003684837712918830443162426511213904803134866670161228520104981939946124672307292118985995507125379728438643554342732381416062527750108217105461691414164980523604026361461180508739979628868099543262214095928817025185024617721580094655829484472201051238021852485314098130501510980772497635529247763273236299988599861366748480333821115293479704091245466395574501819633216156493646317046927506894414018424148266867485635403465104735691652262909383646683458547874078631564897785412629767620397467201269963295054779110479824310454470164515518336293651149797007380253224779436774964254545342145750408835885585124960757373557181652913524963203938102175649749732520244093944132435879514609347683501180122713601352557963921032058370643086605305393742957879691466462390271142631176398258565784150280055185864661873356029676373362620191459777509447723990540079939937113418313358201878453159977500600211407134312136319822029886313109439666438885561231651103169309713690354569905509833498742296699339540677298840084052634503365228950520525923341858604356880407258366473984841982344641420288792061608301826284111079423653060892820215356206661221382106211115560112761678997280491493933949450166339985421673976187724038470122641902467009936013129350332085895189936152060481825484672932357560864577246950829196397288566211540778005892975706923763641711219103678804333959202918641864983123130269521188070326776676887634989873155245111620293870999851408118062945998369345330606843893792067954635190047047702878643550291752822036851417874934114929733894913682723772695973503993581918057145834228118216062628090532672147763349002436538943760326470168453205931782761788047908364841109187924902075511634307739210277485914698977282942193040071513345564047811193442230830759134805484180975991155161360214097019810304367993042511309315060402073919387024840196404136533792020905253235695676320122141756165986199966195113435948878705018234657183836207542488441130829550990599770395996887394227556723856012176103389266072180733690364648352586971731209007378068141438559524349526818396664825566847032232918274491262138381618774391840633808221773172322957759154267000168040908985710327121991458305276967863116662901255683363538097681899590775761599806052495758493845948948624275584462842433725062115505864083946481986227022552326430380386492407407473131299633262038180392403702559453302341286871241148824582378088536685850539130250365332279048924576241114585399025434258153369876247605855995475461248059753225543224508601883617550662048706475962690171379547668038921781684781426765190534992311190194763787041107157698876003647164050725619551609145441661494811221623900943990496803777091607788524641040112874973303881744088039681613376377537439784206260416447955971661507590065170952389868336255400488779106591831343328495242245052160345078207430149115419804812198318280048338309842535994019746182641095672025484055713505105018627800769315355786559236414501825348064027235818340625236743561725909029490015955277996290248457920352839430899238027942987674951290270613530511137714090641922371755077882961194965594342152766793712759566861027793781405403177236579108701983974603735772781827987967890924980908122157117987221862139080017938502899624787874763413828076584410919702697071793332399164378976456248357640455304258962213800266259323101935978973159279819217892975227840218751137992403202796688774959794203642431668132859594993113185532131638001296359255739558690992042572920013958218637410002406040532825376551703367737825775474094272219792691954857565426293045525429066927930131601055305734622779690182208079666779163642441550605911255888940681236358893882736756759455354471933381075749280513042784355812064481944351340604697053598354920780394515333793757389594652129116752244646597413043040332584384955581405096641526207325437509300814335654807710605872870997009805724988248681828305988356312958622845320408086578411645714773111551701696908312647478949754440615084170493570299131561468921007942004236940960487606480482096592956644175654954217326916786584253705087548198704302667912832165134506720169215645965604165992793045869452742230735408303228161829381162033596531224087629427991716515480635528636118626048975498988947584831365925451775149698735977578284188453073108441923586558470293582750261082464342984792839901289155501377178056990199920556544588751155437061741603311621453976845149464356053404177111140301591434244863746333077808200199407582960910591537589803159716483699291340483923121988225891222724662582039426538416928216052725810289669180824687716601060416848396989092302936475233689215366754212458585121583555629604701984619145164606480995501047027875534270805707057461327618654556260643040528549885940392734505343969327691291483804632634386724644611266607216568438944971896189064037386793846877948582383356420735020317593012430590118160336988024470834508425855905382441345371847174286208520243358161050182698160090419660368113466125438535780470848520129921626233400247776744350068366761838244187417992711907978684530488162512614206253369279668397620316602103250950458065811471523761487911161710556142645000452934008288388075765017880330652201985840991323992910270572363544446222452998636140169668348127373506979010243046056845975850320145465040328753735209558632735987521048291733240729115966994051797732935001886876706991034226460742666705315679401072343324828870411464066467714511253115079738868753394810387231451665394438567367542845318431248228664248046676914028826569587086313197470712066075273642436281221217468962269557626686233560795114359185782332770034132894915736406587121860905532529456685781069541633337423851150179592926206206408498580392631230580324414941628945660884852257939268878050874056806576549469173252246647405901413078265623420311354388032132634438737648560491736301969540365278504920868610381512196865815850619533638325215335496689719286567481854075634479204793174840025370206103325501267370532774519975157537782809624515689904863521267751575755381133689450705473913783945036972844972475378827351083969679194563973162392895213807435124848873330507421046968022308167114356448804650849909960129493385467832471182421574802151293724865790092109024152654398503105539441180838414860249252479205418121064932740397994363694672347158433548471474771125292140150220743662993317223762256135058811615776626871107956185551317215348074827168307711715918242943669441669035212125705989371581013796549331529756121741190933047501345130250911206893506757869151952537687625465319798736661523613658257259605140550891037956980366870743949975113615290078937004437978314310564653675796052810819701571664597180227139686151946400265901442686829294522018484733795118983878744758707546803328383386717842955883973845390913534715337071184594660587060637504157024457747942615976247958342904263106049317576159908736456091968699286809355308863011145271970664785299230630271592040902237769092207832839952642476459078294060928847574151303180462010364373076372184263712102284708348793138957503259774761109269303743493756655615227370130272301955725098905714784526275322737513395326622353602841114811867245386867026006131604806593568197421228399040852527412955964496975619871334469663318676049536655935630249967522373488262475552405408020606247303786634152742605227448451432497011468421247486935564725707734651572529476477724253804035255591796179096318061270288519287586221779127275607884627444897718007628141429263995265677375007766618501202068488979613052770510413236804409055417084745054800929134783148404959603573816472883553652885914399840833406562460473293352157205373130271516986026794376081096175422259345236126270591114482062075486772694860178448244172571566782626169935662475022520425269356260520164689402708790843673651226915144015096565466768337183427883614395504550205144776945793853134616110401522031496253365558849531126881965586057848939959294010983353421471547460590985197691935639280825101835041340960320326228376445891805310441437805348006594845991113504234493964528492572640107361660996247410460275855964768730569745089822681770178223449798565651114657793055183589861931598117208768231618061772954606300722944996849217401370894734804527365941245616832659222853346035357720513844986597483688933512488507828961180565467041694752350528483998029998242513774489529683932853359055767215042368473759205038132734406449609540795645014617026544724881156005733936307921200381210649339793699122322707269918827535528322987929597660563501113907340755470015788221829416915957965726564099602424859440533300086977653989283822020331289447028643991984972105280289402139258937646616706855432268250638341733041213862769219279405837484135490873539038633360712409740369361593258869589027431519053619409559364007962297051879679098360483545562192200675057784721245974447307678673602015308924986590477647556136025251711376416192806730739419175395733840563026262713990609621976679290281191280517045392011981993896029007358683460292881370467652750847742136999012288231799168458586534111714350130782682851169998746925492835866843364382885073590344838237785335282083202484576544659222291196783603598392549976280639937812442917813497228096798122839207491544950182388421772363798048271141493921950429327053414382904508326444985317152055271899699259786526952894521507316957903802802211207304686477654168214770360592775031235851034673683057821162272812874472123234694417860456456288279159497024867683064110727681287819619019417897645822353194556533457456071911709448343152532141640861437446513107616288533986550008838362509745940118872385626185010074861304490242930956601565706559400970869438475305494704326050458160290261473321285610435390919865011304290944440244696550025294479573362094541001764663477853098578957063908495416192672009362809036904265702861653031011871078843719026610102516168785854381679199001985143882125346377084559061697011467767008023156878236247591750456959002493049409784066033518882788959378133327981095484441666740138540507686811078181524371081049387316943740848207924652303399031158511731529070227824469817493869119111493883949523981147881500347366877968017260637481815469829725287538186535465816084167975485096794577508735255398239188623600795740760943743104309393839145710926496531558123864955742534263191414775413252712901524831777530830019633551391143100153812154762978066606376622567141713100261224630564572609275333546273947732247719060102973701757270010551947336590445346222003452530313093882362212786034550490330790392925141824636048281995626039509968553383917646311053439061072991620331068559997809287729403527807684104567803869444025850604484475786916485159796224913831190106112664874110327165938589491092933138941438587449827878339569870792982454714847459906488962233010191485460100603566107553273720977138830422320199602658266932545864302165613628541321431622811745499867495141254971353229480160785413334065247691489231413867129139210820622396507659603599768200289532562460737680706742795835809826618403690713283712719296477239233773156983067494210769417054137527439328149156093067950493472320193769217560833772687263692002983404962697955806566798229905473322330586233933738712790206063948653782071023313445365068552967199846189744678577734104441529689810589665798861597694899353966256518124661966929429410699583206389139638260060370072099925962416853414941484315064170808333897132932282563281056263102255239085628992777268379998114679313766464999390996606240596804780182125477756637701834932313053664417310967110271939815417998917373398999176628202203908410832869736317571369265422644553495666655748974244271133542170884748172524474941573664561356833673667121941357952304176561227007925459493495933261832466587702742531532922445742550286058794048320690791109409696822513454462169944604428119879139732906851456285490795518902189264784589764957808695976545836910947898855988876789771448072602605280370717557323653088908569236453646128624159221203469271621377001674986668346431472283820121613005328868873461880778909923109389221645727128398395082293226072627072267838740070833459237221325205321850059205115332878388339736887064995867609755955600347621394557150882474817054692595990748354439568182541638990047464035675731094816317720155261652570739920273694471922226367440447318522219105863856344543070888618509085456226277995996949089824440385562628085116846306312355213827783075860582523550879566155103121184438877455081704760634363513994751228290116192676209793763291006863359896536377500082281180222373841648947660757801960163818082986676074422795088182027191780196151594985538539455407309905318930667110432027487287743915188203322592606930966567608424971693378723240868509636410430074273287394450261534225887793386618407540954446676439120305075110632955811773285890762173269251159063463753629200593796624906341940614697930677797464380453949150267055888172195801435152887452325055960486809126290657458326582109085694741986498978178788114548584421354590319594967398943831601403131374753321134309689035992251730724401616279884008276703807900130526649052447198298948091934590973403469191668138463773404634321884579037983663459076165835137566150478877539611185593952865968374911968735511184989880289532740704295511106761156371279054255066591699864674283475099237983328938146355389559613685830830195875328609765385135784504017255654019206122887169572325059436240316468082700249624493414782795973543567297635205765130815856084437633941841743649750512062125454459478363734423536966851447865255294323617814481777703074505344735839348059020194982839687886993162720827572441120811817180928405541532133043486402069969978170890488610001084413147368203400028494058236367068464774555160376541069797483394434982882010499782366637532558333130741658201346440174409927154660268949354629732626836490643689861428651692262912345835325516326646067798464455231208675646086499888665045388312759070399960720320158265163657759840505593010265331349209053766693989760571380493146948229633352892428530428408018345067510899515757360390060919905113886239858364372739707235531873673529910998266908614135343148977367708684310071196185471037321957014150800321815746863828088959215503869579154618407025808026616657554730018396127523129383729731972130830322379477926101390471382550046439791474870938457155997469985841659176860599633742112070898357984401555009274232360543990801122652533668604704029840910993944312228493374743838402320015613408147640018952872539031707413340531740720285067553941980019680126836276894714682174698691532360550381591240823482697872373502561872002999768284706840987660442791770923406309823917334573929248863549612058991996538066297537516231913178503490221659988232094183468948497594048768694902523620158310163365981010577919968060003295202648491884664023505469483790023467219200187738072314643416768006691682250481709304165745162177709322607546796300658068420358246426904037264141526527212671556219795245492363138271060679662994002709077249610504539074712797737617267228223493793342386677219329117767626505268154705745807083418540014821751860257751043236270201050176124318765484026555706599836981342302838741832352033141604934059426300886722941269686711972558069459599583121876755093664437017774878020946106221345772043762446285050124092232077589432113485657632760924689913964525865784617813788490950882404798202443238872605434914411718742139730279531410939064830125371616630590438987455459664187844408775852864425898394387121201418839564670006534062508089133514628644979303396671323456234779281807041351766835899007246907730375267446178350826188818301635371662225875169541064661267539324141997225631260363111963292893544660956047911711107589243198088577060229148540108387716831133952621823268064786009697523056037934362785185848290929588727961801532667728435695978379437755325521981771817235128681649244962323199755065755564788871272348674057421445682231642609556381735042071224913345337469560013667905275136199675055335546212122170148141603226356580122985008502006686482124767128943721520532197280738448121209748197244136978924971784294935610912154104155338237988820971509313903815495283973175389970386886493091184302433832250154219067138117886548446880261959616610986810900598812372866652486174205594082088940573975868626776485103162175916322376672197236578560458780927393485243820438141158076650341923889852096431352002168690292068158793448863192821606311403111408445944283946946985457011158272661689063847202015407626464354511803978643336769300095617051752726069361752102847135003373588275311783026368040159646028132301655187187170233506513772296979069818663216879434017790860306909066613524419886892074725372849485063368607566073456756065553938753523405735171572398938173436605630741474481943352698020127908816362142434343527618165883687066753889032994974452474018086835426071207311343153458033449671641576999759656332964471413633889237529700867595991138459795289961921916573493176822125511061653469427139938136541406451759071102986699639633740234522307137968901802569960757179557418705087979769805404976086470109920479358751163038920283871928180374122416251602459137470392508946721356759127453260679965216581093181017816052353946957037681461121616643573614681545759186277258305288956910625927562353024354258138375199379951628143180108806900344424857458356527004506147410366710945272616769090415144744678256982320533067119170293913645287203304141257741538069102981464368438965814591698708638332759063445243037949104454751607199427233450219793806887496278758336409152484592567753420131023857938685475087901260647988233919799680471368616225877232280347517605027964473829481795320933680858752923575553962500436988061580959689833003017650152292079512841519111711444674104622755647484707076392418809692133955127712142331917148874515518198681095241256156243735001304820670870434093086952195418675058699920373975134502835264826474308799018897100921792230823230340889008901871967300897468649555701395694296539133889933382242573548190734436832598829579282231907415352204506321818515445631117676498169540676157109839435891174560826795356340902966375384282738532437279911465806231994495060426632653158554137123143551898880209821831746865291269863004384209372902514640225789830206645366676745321376885436025606879595894939296297470601103140606579220443587021972993104646289887825372392840998341273815775999321256444181003499002289882433518650352500636584893778948304444302839948739200720846236546628553273447937850067732422195527260203267686610866696697250236614744501341153303733676294929839466368965578278841442901075139772662621000017491583836077747077231128702817510200709772287388928855027835714971050274688141850314089480054062941696541991441285431275837331222910844987610353626680698364113378159693177726221261682314006733441699018345139442483842467622436750049974519413817950428631114822893950376247227850720433615535997058969955214506658728606187861821668603788072544016332809476182800437583380140672473041282391949832189136542862452914124293595164373943728354546449195264123488254058571797105008719563883559925497417269546818620176257426685904295205453797012068903630426192957371742182550502956398763111252726371761962980769065898863176127855456132716001023311586162648738327503034423481504256757920958095248815552786429470546679853158771573593315362997987950996269230347829888195438021745979155060925887378523178596265273098537861523423127818279935605040089713784734597094044008262474127643310258605371803215298254585988591474740639145657636874012926179492774282201345685557654648862608087185938556027090777338751837415132925954545214600690120552224357408058404385730867092459302185033464735729649588025341452069503484402614099623849973177460141765949426972460998258540639655626943086313623244506830856329289093020410516531826318425956641140911298501735292619151884858535063364683640216666833953710077932482229069048447841211239849308495024870383908864070879255643298740932592144225776548275591416057187789096481791558599308253328326657291645174797166859222065943678369600989368585431352773988409015922893549435782393575595182318164891149988051572893921332165357842070622633037144914676306309870531070517519797841616343843184635139715775033771461942278731280527187810227203634264083665904971085688738240057004245821424292351817262479572681648058079957426612251324467466335620333502902637278763592814635998957231608979825165505076339539685486801734088655068361069794031569076235522687726681037520138016977835177244477217968110179511471167464372040670907939569693806535351768650629017504309304248540157905064961607924142319531814193624746578488818676750475410484739371578928423536166143914231855637496854158228497463682933584459657462283879494649829015301627596049362100051251826401072148350506185086482107087038516304161265097704919717366095974354651760916931994567576832680303754869146960399682717463974335247784951637935503739054714332234319225381817214572823459550067245775983820372979670625468187095599358449030048590069525708642037676556469823420867113058061434270362590544190318644219341937489090271904883264179982259736508325921491560983186827873751190708665819704328605993537517699811094760778938315308477037038308114599031781266280877086037218127143060849102522078976350431291083592407115809045441365342604381687245612488974547358807490845776008801923305570077717305881605158366787303842700956320369086593827988122432314538568696045622294196943041824298370915174066735792754011935444995149101961561939956686696709207625118331388477442293249451253562847575542321676548117587451126746555682780190129124370047861284312725934745364749658884866238231841268233148235065678112029480814789368615579228892840077859974411434013028015865422788046006307034823589441694940498969578028273513054801197945896221845235255686382200980554929476958821995994232110283855784827585046700243386317568502435052051090612152192000784440789750521329045153139843754112496691001717709944480311764002328033972525683852772960816594331425006283481630176581908296174032864344523305709890608282175739066279961625430482861544498456239768519863834241314567494694025374643188833023590531086679002414980980038616446305990067889866195237558417978042730093851539519527863186914605503841814220897485631468753854876495824795912929411168370989143392452081635790944714942758264894672007381609207864639377584666551349259897335705663704633400044746499734297389317025249948634172008976114206920251058909553444764162795717961767863580251202606378468396734509203314337773329512778236854605412713539446561284310505961081305425486044717375106831806011884931987583575721357875250900235271986985324028209874346516081203953760530821965176846845920704621065604719426637447535135568353098114662190688267471251859710699191748044812642893585048454132235423282402999588621221503585219417505168086406303103103161763150062112012417794709305466311717621425288083093783823540605116790950244045364348961604203153569766143676783649199779772368968349067654344284795768128526530682056379718646783945976621188648594149061782653617954208949204891946071502984648508127125264733846119235790037537175112516603880654263338104219399044457651727300440942297830127389755882025105906335664237788756885432377087102781290614687993774077850285827305733239601428104640965163675079765851541250689509550145290062503800438665189094256156695386474944287155944528182724255626680813633860809178787734029048924314346863328148930061034773304077265293282666366903696469630061767137033631790468653160658817969739611061826856237904918284522771108502713567836727067241812585962898157898741862966106209540092479662834824871193145681277491511739250877412893053193947134736108088988804619059470727190194991683007897269958846169915701355748238734659618222581146502846027403656353186729132830623797016264507109391144306756912154902519153384626284602898260087644119819651699017333084881189945347689724562186790936767028304576643455441495036412861904242938282699435496244683321126387935207977739287635075199592623688792117478601793132286923454750339144470402180442310691151969042496416489663779456067682760472378688525364783198108194296446502659108652523381792466872917487692274980725001159278245159884587979982420375278767942014530439645421832230364357409652264478149522889066646535139827432969755117579491902725004305509621476150304181876048194750554417345288993441863554551542609393822208194543831864773746956571798421987873454540806683414686806494800691297069655997041072166959722338365418624488603873033762212652659223255651643753906041185050340214087674360058409560961002281630407680710500982233155771146490179635201087565738571769270892150939618305913115126216894141595714578844427829366242569416415853350374593246182864276932057240826684156863054703664789256844299929338263257922955139412291188307632653995025640128747656095065602520283963981403340942776322732680125822797335274609134958467722549241564654361256277610711460667603594636423759468280668138733348483696565926722324529640599442023218146951713655867375555665754529724354561943400948407659753926337655023101470384722920349698706831627049234394685121896881440996625691899568712431843753857245886148347396718522895525138889869125797521343721441536721022254183827448549206020906262735534965277471661929442399889070093742139368624916489159651484921702220225807484062740765411062825950162392586272503973905109465755434527004670326992317348761966094945670794771725376865641093939097445433126675831481690194288715764713715475570979442804186572438228458184258630345170769886559609729951155050184554535847318582367847284469104123855378687688027099279656201184819478603073353461541163523730860126798269760696580476647648328679382790559292558973490229917583722075405772119900526999356567246634201592214300077538557417160571848536785072112053629718990492808860114650467289212080873818679473381391889535359088876372818736192602000092789578883301302483542516571975938133617755438470299484388368264827886513460141488739462398755450447289736555047378257124382543641051946168272168722161855331289069487356433737784345634545659619865321274785364307429000776565820325499944653797656853611924505569180856565439360012865569871824475915035067759163692200851181171012141454694895173009721613416432180014343521625014167082686866482752742981177135649509272732807755873213421480213875695909187225671016835411260187561605855981416433200899340906649098745451325159733682207203375047055979023434092223256616790454806745111558580943661677861887572552526582754636175969741142300568782462664282856247944791929394966770286227170786743824093689519926012280754530333587038518236844494611593660591321929874496613039034417371330893878067145138167861638032254844379732943092864653748538602198961984306175914391810436716567071614190142481806745326359256684262924477612541953830829585835675225870724252514785311030150698882404731214520573909612645242472146377986096377351162354757759658477344975992809006503397874694264896255532135471332736850100098474535062403129124383560880502159302492008889205934960420700749650983016586818083021139966784732724937377727022210738246816002171740817383122123457457638406003287465755220261932327333244892535794252497214888513849445055899238521519816863489147764543904226088561794382607224453119743544494890653061234224136526159515674465268658411744492360093462285229591778875754667682370809813984991475772345285025405126142279040863009854651830666981085664372446888176639932984223443362566377822614736619865432981081378003645905904449841858497971786147556961846856136611761887352092529478121156100166838354661907443963711079227686801904462520994817975773335126130720665346957323663379893555923369839661120016750872053127432390986167262943872247010582605484659849750949143664826747843617907844556092904343394775820510828253202106512316334757675199113976630897001865918926911220046947905087608046764548241841628160547143823346217646228854335518928050208987516963493765844561608358904393650535895064598591165454730715662334809099416478669964187635992540582573979058148318940987234318042425429520775123811180190055145729566298861975252856021563041238658166115405160204712957384532004351478239237486744190801073232822141947130206197798852393235151865430554114661848778592416028408595713128981938789044679887291183153919261182184497933063132541553634651044076016752311634264402211438277239794506704818854628969375518645986764012848061152555360994711211514330404053556009243331376795932064773444507629206220041413256684446631722198507443873312424442212941984835352633980948176569380001854816872951626221415321704923323460015661872972298530127789592252667248100267677206333176846028119546063795778962308281539104290044264915093327889736765605413505507993150610336569999075790366539182572676561019805703200673555171724620839145890281840103459175097307863400436752891961401567974046969704994661841780314891951461223089708040760554523535392577133659940370210798765517012942164021937295156379744772157784159855266121389008883961357406159743450301867994210707227272850468715186702644011677626626953455453145987921343064698886283429107732315809481086837437120810501987819815269461821438311066197405131524401114558846175852498325692610178264069860218729524644157175692086899602516521756136302941356422490271557838808808412577345130670632316735896350669795233108665788277198896922623068444773349837026715670578791701975677403230284877781196274603065381295772825398335901264332427408703916671855720668658498727722364453365782307537284198284444253135693269660899404448475042407829743732682246512221565311657188354005747861609407817910216869164774887341567369603523948727025259096842201016240546631423435754382267377169424447375167557242317146075740651530483580995082149052518073795901193216597174219253042707627827411714484871738222676063713121509793430588927742849894087996071103480982472459002375793392285421739959265534252973411449859773754980975199821933109310384570590189414305217634081131231817689694981045241166222386515736842025767063455354913906132417605805148116385472484913958627890936735188802968683784013727569493941116954328169311833727598187818877874195164320335354197452142458065881585240818283407193019358255750621534031996891535355496342413770966201923738825042982402966515139931522479890634113421232479045990217772352348360675235245763186883169468756616477579393966257910635395712864776758558684227678665842800825608976943080998708913062640751787999957017805542608729818011482581963792213673888127651539461872799295225749566190791845030458621938725627191502207336256531735996110945582636500271860035086451410111376298440492047578015861541532423449646861914670663655860695020638264338366534190771480619702766550112230808807257928099460947910114826364999870797933190854111550683844690640370872336202781232422596241746702214942400789579625537118052089265696536192403728848058430344414336939923474679196267391871039824642647422299101344116756408825210113510531070370263551848125546509945229461874663093811213459383351319359915424902498133165000479183470895541026912470994050972639042156753656205169307255472048281470201282824833390118174636521172808287312760144569568971369926482862159702797332138850779570924900523316295060026558569137976645276421150357795784191204806927930262995192852263983270770568939074397737338419094457358735771308756871612596035332167724986299824949221937127354371358102804816864762210542929934399745803269487201500857441647396507406763680087246578753838195222897335640300543579670762426039801132826600794392399967231547105688081067084162416832722924945367111558841200728407491942167426662979941094238155820325383789663699703023400079633183333534356493135258856805330332820859915148655317730282986905625996383025598459107406480075135407476305632676241958772086033573668763626764515826063682144013939586813073601864158774630899849400615685657129691746977013436777393083975673489422564852564889851018578128398625689020496145908967439526825266404091369305297398976559636996707078316910710252578884268415260740279051703455727887383646093907073680264478505110490018908832471111228018114337964412759466928980038402248331370270825495264342611617720741912483112812913972100168818675006892754868416312782968336560219053694973819620156522410856722019085384150427583538514374401190232631766123718771900461264982262384703688023190586750522781794685335915345320763769786916619246242279529322917914371568475963067225011515205059834038881705948953932990566310447185183123265093543858723685715440677910240160981331375271618001809160760903732052740508560031212057967165902498385009099548997580510948267494772337586543998251309729134944401856475198574402108473349751878683675318012000809755610417522992399271769547629162817501600019507073068392095170217673533747792118145475409137255946187004977388538980839096922070796834837354972728061962879937738140993951204082549506709236411218430344635030759115277712812007926334613931851237009831745952296370831756618366941191799264599505391204040297790587524046290037766918024852495509056548689888186326543406214286456235400083200480523803896774887325776714033378498351333377199815393542265761857123847750253721102766540390987097115563428573975420415588229077913826962475569154501275880261350664540983203883990608996524460953483276424185214091338902423615315992582679504521149934062331228039702044389963588139036033986972559804453321161654342268414807678100440871340064060616649718905500665720999144509963912941748679005709988968289078521783832739836963271168483910875891641525764181122829212244820028566794090685277515965443823104163017356188921353066327176421942600420898588499775079860276168251875535389882792063128769401632959008545809628657691534910204537192771531870701410163255859381329465415855714851244635701997922621346306942971357984845471468231622401699370906340096516977631786882993819843763943737232242291127034460940301245991500360603047814754797181272124683698858141769767705449829082255695649124825209246351043187251531435662001834789607846620291266850006816840151515689958596484904242251787487323521596559520374921946570735464814282998117020039798557605517637000658937845566391961163404521232935020682502271047901511584704223834748786786847282224998329785528666146928677993487337598561700584106463638056630856250705424349093854371948358820246402945147313582867375206096908534518435317652144470699260138207000107480213321167979810199219366573484518824816238454925517393916110405264070351711508500676368708607598166549277020152904306237927361171419032183533020911271827161129010957469039496284252663592124092663368470984637605232337940709705310290705239033320905601060097984794323401126584341990963731976721095356800540969336913567147921179206357341925254422114908548496364398220347352005220934645432162389308067361071175912736690944377234568581059961286371881450357573714434953178147144355697966176851797068940619456160743346240960337680130860640414052505698472180828558234443587811474825356123058996569407177459930905941739472145111752049427009539130188390650297510698688329011522011254068691591977984141008704460958548310589276987936001082413373812264095567653288887655426819700132135587821940637596819906081204796073508240038059779431870061301330671714967888069233198062410835655808528471888989946986265333269716048469916564549189835396353404682388479144273643956817611499109833586507298131970580843343847169573531936083306854686192266169756786309849167593909098537091946842578891306278120695113853680260504062730632075688565425890087318450834358664401052328799584782899714285377725170435926728296175678604607600036667300385401573048908215133734294795669441177645632296178919660160044088723858542765811703448905339871668848496154415793834705094255981181006078113171756320905381376320450626142286441909164906025950827464534512113769225304566357358904794498567895218662179900281179677840042059305316287426512126118340992701385628186475402904064325125205008763496248196737500767194145851556273647091626178491174882784989157509543160650829636382235870243484938176290582595762580489411846691172419297946633049439414102212690913031891229902448063039697552926202077574314688130225766207482312356508323266635340732413622984594043785155459010813356075900426234292024904534364593093178972195906016683923898109790104727492437322090685837163040422816327172786950475695299866300004266261927378122857926727409575071312524124113105713298298883690406826173301785924577254663954305710406154465574347340685827299066707003177177293078511512463403412599174295362300452604207702458920593487453168676116291006449918866933960087452599500215353136731007222365765363054129234870608429879487132985165920008297954670136682515523315828923363139870376375059893424362144876632979729582465117975584339787703609828783180990621528240238322956428903517496268433193815834959570396978838065629617571437198013670691328424136080190647230653037593618726876890440058728530631602883541440503788955822040091417663149210817111552099807191217090313471386235757574858670783037689015512595873901074313632985752776411721147838796587415760868551586237778292036456214274514427153798508148379926056939473572724532560279515038933108059792104709920868564235113002897356329283956477690510219834077962442425516705304228628713323840552002758891107670424630992659500109531953494134687942750709185094120729427160631266539366940577695408702349421699248311047850877627519578957868516958893730329115882573570316640744568695028097830099424137998400569981408619720248206816768286007253621171646864698573157484635529428568060767951685535858324937950718548685909170653823651259070433879631711846873218004411624706029655939456599785443541748381446507757088301337324345046449990264254164018570364314146905503758708181410867309823444740283918329317022298697257991857310097646496928185633948195658493585942662652545418824224699675909815877030062545610175512488240321929692324651362518926832965367001562332298443419600258242830889407842323429644264935328193801468061282292269433945099752417738501799703784828987560477019265954545505310357662206794570293905889654600190405113115210167735612301815499137867919150203794038114436192255120105986096085986323380134320059838844023932324098471471558369501832552908648457369260175615319790628736605681815870160323507811201249566653114168851800054644096607494693890761101566256749420770277342791272286949379968239734035752404333664334890251327334666832942478391216100069444994108146545175051234279836191470574179940527333957005564416993121519529581248980125933554401608506526136849286374863287694935605641218538328383272179253709224968733792159220512362646582157770238082520183644613122807165728802538810504380530657138733225946194312465311121318604168018584446479565117280450117964097297360178879098281041129120473845570351399055976702354099766711856030377791025774897248119530996635260916154661839657136799780746835746726784488538892499141565555938205214078210356108515981023275540443895513222493003172793785200851569628036844731290991851251710529757844389047110686167484685659236513749960417227165448558357366943232285635217132468402100963878160161846688483613396354892224809984324687391057995970066961766863685008016736149584676533762704629706703756387422818566818916666678491157983354395416132464298957950346927338499768696281765951121940619429653228708666368157626338741411241390701032425997744789729937899317593004212795195735546218359031552342849657140803915201941297036361034677511284577854035311754533548597822545174626455019101435898008295701664063579474417509253360908560089604231146463326506166168315680071507428655712565300228815131734857988234795931703273423077912438341810205840794319399811384001790294743659745588339818350935188490271230263385552049671898893584149322735964558265505558975455198687764473096198851278171973354147283274927843688530340383462146706028456902310539499757459769486008444207152693444835867681058558827363299723455949403268305177820488019838077355070407518867393520575505663691005266046239694512144299107971058083056952883745438420431372944305008384913550753243955321624308685025996723445503252310519430061779499654972159675072880949616495585950878072092707474546753011439677305042159339597910987671334563713940262181861227287323607556783145295870308342722179100366471142848210079730225507356177475137709642483092671080361620629530914922009396756774134403537745264074330975891775977456518449095962966868890217240518591862344060122668720135951634499422369661032717161881395279530025056127151264180631144779178475300680183855616036677748854660749976143479350628922890531381540743413891199234212443940655143878882536600161461757920351444404994334863658487575995806552990316753280713437627625911486097800609509279253158566959498814559231714671072083543247382079565044858989692896441618259754284755523330040969151956288059481635306483409095907530448331099733968670635677894532808923806809435245072087873264974167179404653120168399447904529509633205762111608696377000956493374393012297085153968205146930845014378308406225738026639091996152567356288692386885602878740705886178692973627180905990532164151526101990785395444635296387356368099578988356269958853138546848842973689201182573739185470892357242966279330931067259892069483900249914032952903657652950662986958539182546200375023508509742491830039971678371397146912766996566040740697032216176340442266675766450740327034447396453840920845423167575607854515079398573132794773433502703751834173278727879920475476962346866617467086413988758627611426903047655445625660746589720448162446566754581959355121404734506387046467344375285554597893349857112891695565644641973125972686275156388812315340349841525362516645466799349075542243797817382714617826501223586327685353854171734808310615310542639316354065017631930077280723725167831903176981332397891972016453519929133244110590075929683316293849849851275543239414693138795898304538839556701693731915397637011929105114437285980309066879975623252289780242652991809846439075354712936116196434486549188314768127637547545669629227421140188855916997947865156354163214013840483244851866865205091673786302835717812265431403160938348969068477124091205248779320548024467280976386382451354743284092159605305981308269814498810791794139230708185149863063746911185008660370972235450661823708964573033260174765946313785843814849946910324074655911977288906740157660338878405702046427544699408971007115713218115121531513910586928441575822348835851365620220033253305884368293134829971375016980464151965154376212306432375653939906149404424676227612176011337039014908423860892902887318874625231667642570042058072172285390178578684658883112473053999160681144244333719140519544071684101110601763546619675433736124466991719134136627162670821009744151457230871316034798300527278221988323427049764396233673574435371135629225831373117490150570102020551914016084087051759679249264271169516183653962365040454398149954725524788127758321986395591681194828002344894818008091226236800273416452947938577765427646358145282529280874918230542817184601327336176513804985531973489124152517853137321505680350683972232514624985070997789963597395809006736571418368213586653963488845707314494959182926489591850110963244162773942849045621709387894010568342717783778622541583411110578378647435624612819062355212574326079696272245473615144838741190470750366074266439256854581535282600489212521217378650139628612731681802586474523821172307349678803271940031580524782892932024800473139499842168454546537172315083682710105877106861495648730837087867435571266792516480610195345377082304724777941671392221765672008779967327330851459891750687396296109846366476359423419192855390249473916981246593423235715218392334499117885181528209682437327645450265000135177507073042665433766673410522546391411265563957830727270062995270686276404519211024117703848617398139641304006077585869361909672332745956304719660718657636945981283185481809364491042021816874063687333586864197310691206363192599951547837654965546203593743928259465332724948608807807498626861888942872209149695105947438329144360752909724578929092467417481780367781989480389914153670146096918974575489477589162078021279662713504983961688545659523941011117910147805073693209860807041490706323707486057617795280906084752572964275161611774747200115884405361432186491545488687905819673408838224862329447791837969748984078096920604022248496704692716428717426496327772054138300846999103552325880079591290167796470547386420737075590945589441938380193881942520501134000944691911092247158273455897535614233519845015831771321994209350262835804722594250685045485269568046678784066957228452026694176980682264013240082372164454768382958260689197951178864033516187610012525372439184067820531558826395735360200204869935371467787126651020743545813775684728781486612569445710373124247319998540774725057135688688696948529632216311931835111410362800935256588203771183763278474512093614859859653031293846689458781384454208915531772896977678263432871107308929627972986648920365743372688674405453718035146586579820117627696516913647599434606639746682866704332098315265327407783898041150514414476957537514025689572343977210204929521295641126046538963139317104909694129349535887454419633445361769117062240070309111491245537843849788167832981707507213865378520035140232168357175499588426187138891491160212003685015448218339102265749930410464639795728912083270676402382634656059886434864792481360297040032894878786903749294845897106188414109877839679486809949343347409265473222154175778189724689710698878317999728949598059091758242648238592515108891773518195010844845174622054835223658108201960869777306116324865341291486901870529887004565431943198408021325843356106427209980160452369765017256525800373345834701392574829465938632623565093896359870915045253217987817333277435053892901697206032833808451537541430784134329574059075056944672973009132495418417891832520214691601863207467020390030187555811234718409850452217172127371227640611566993563422917686455313114872677519917906836444260971120165907765313040867532971849524501281335588916625455347740116618623110677284576505874612312728139978531720453757426988884677551876921113184492532221906826613037203305044754626703911053254449121757608296380374864603007972237662726808315490934921399310534808373817575308193065427116426877250123023890730705288983526545088782061640709638692352229102012376773444976430321232868414238634355079311006018866171780512125925389793821408500918334472492577615514513118813593957459939183920096580598796914066243821475912529978002975616844031165769690518095963104655449074889010666533047547063682003185791030251990646347007760236837698838137611062916372884422114798537989178297547911684881890095116655410316542610547406654865260334108260099186121133163686560536505169024467968278975462223972604477801817132750604933437979191455068908752796215673897109709948583514187878221352642094832464554034095141628640518698039861766064255979580000218489695801885582820365208513374068325483559554515752108003883489396065110397081381812734650190211034567263502819606595219668958141206294328055050406065304786025081343720923456433170644143017343387416790495639903780410074823048237574371152109110794012935652328366485831492586340396942888829434292971524349699637626162369569539400364354891456735591594103238237448779448298782337221563955815362166153766322702121474609985891575256536679883583539020386733718369415344738836461590336264577293968835759332763042566618081219065152352603812979985245253698736752273018140735271787408876036404145311504984413287510933389843125764922446780803669641066103899085542338746112132813866530720152816066600522688282714009829854057654974101396495032346035087966273029180725071543581428028303432634621690695020993706875451664956010237305493240276124366498069572688361661847322028741553135009194088075558317118209167236757064537126565723481441160888762618088856098669153704163308787082557403766353368316567720881067072128859779862420969300980334913170156963417530517720676625624979354909362100377383504170076555894201285472821503860166257071296760646970270990539281195682654604130171853996880576362426057404420782865764544384816302296584158042703769614315236599220040726634567114836412738754749074080587602216326881239104485094129976695799094379398629211133265798340505080772725519087132482682749424691057808857234079677317238270269742061209586471468719783118166400464034665684159402713156759881931740939739973583458455368617183988325261032358448614048543794575032039760962856061720497508563536441690612949607662765100377320694972344554764873561098388050330272595112543764145225795944518590503059491604923759339012839335460066621321390905207768139830365107892471005881124492691552782280388738825048413439390536752826362130680859224347477563440983213907384712885536972557710214991400590410019007478872372915037962633794725682249504592414369268562286716403955111546297030392128787738148966124664668587741468762339398987439313370640445452578873707525317527867486371387251813507496726121200414052859252097018979895192322480653234459596712838443662342566065683628836176801893954266106722586123509572398047100681671555508255879310911063286476643712267544680392077738895051844094963319290235349379531270933571442773250278629923826954298760374866791846868223092672506753759665292342048242253103751965125778284789556455435252985693698078040182856669246617498326363368901862946774515954046379648176028068446689257716978318917616639670588882643055066154523871168067583248532518933594978821503120819642382365221540867317263957804227453850133261633512826073337853001252875367766063117192608964365096141134426058119598293981469465991652890917044912899841433581461694940180220660266870723531478521851241091568644919043915091663318580365508579970056902364962478827661028216610372985092841933601302235863917004112952325114174653808227529328652592974236992117742074075500803059602910905256892197001450493109182816861012347068067252406757053673179884016498709326653243697703943966732254184093727867986665720127856923493280370942847251531314873483527687832296491276806678235243641205411300649595564916721005748634833340101632743031221121903767418849468160344247789902336141564798632637670654877444709906438657476367601277019372606237334795073083091343740064648971639318636716924110144273830152455941153720903484657555972902115811076637540023587534488181341590911524014226472252179936465290077740699624739086782992233670974342052549635269252713069258113265489468493351604834110620977226910350978535392912328774772939538196574157892456246622650156124810759866191306903156046305330034492700772107187823411543837239229889212317947663311572127373706927736151979230884443964279610955194945379966551484403341239310399466646523806018176811355709884716461819080049035476600316228818733868121741083969235249224317983924629211417960826560633023052958963683845599482882459351691480311765047163740125165052657220125542071985978764626505988362890637848364516463249775102480467536480572066053458343869679791031736103201157490331352013402957154617460433567228426622672616482224862007979145095202952698581857166934767788210978754889265345420659246597730789272743079466025573013668422580867378924590485143436986285847232354932688444110638472753836210201323718738522603350892966461128729645423179507422536056698519124007087959553209369833126563931611602853843620989688465248597325773594295904648653380524844855931752642407403574787468676496592300833987774918288544715671661210736127325886677184548195130691575039074465655364754599893587383400246818815874512719068750750083066556638919043538664521687772911852213035258324449206688878052449668345836208384457315161119813832242121201755917685764178856162990130471956543122666257022031657402098644522534990293611763680558762652812966772392736119604274398302895555327060998135970706668048786804511263183145752116560145434756374624631982638379584749973869001739832912287109443243971644289849318520080948020417479400667007896766727074661702801451836396699241624012732358532015641059837126156937349527144954575707431652774085465989355502756541243916983900854030744216464096297961283640872378191981220648283747474729601703802494963930581906467942597473377669344619440706152483252286834344340313533392415583464103879492620481251090480573438157908276204812490468587117330090613372544967582521244001633034117005869834836975053761170574886202628420879326187190338831014111484883169632468113320393888081068109078400406828982570245660979001131103856352958321509325117958163115124553040362734013228927950240243303754763579295030758417226670334794541458957933363509585836588806641879620991102751516166856270792106250870373913364855099763977441305834145796471621452219637145579283903504529979451057753514685941894995915305790867332174614929055365827562081180436198860685724011718475931933725686239339577625981879754394542687087690587201139118381088221253775712240954722758477917976649014431288425401921869469363231636244700004168818456151711315675082376101455295473818910334740474043870782103108518773108626010471354300593611988622088849342164017201793314359974790457848949453699829314384335321867580984249450865650728416208408553742956192978277124811217265221680818931309142729979811847060222875929190939387108283050080269368820825300925038305754005474754523395012451114244841677454144702752301117458621603802768994639659703176166161485434840853053246053880783419565575564375506328961625585633638508292382273438651871523028620041796696709414373756886946851708996309753126318831550577718760423695184283237775047380355075772505093669307710901207593714764003499049036872471501594053393501086300042402892201188596249494915414321175288856848520181459958383470132323073625094350752648040527329570722487883664584323085755030317304975389318003548984816098046728346100607668309692524419106882645856872518073798934263120906512918164868926319557294934409142464534471574729087192656239270503707813764854858786621708271039859395923897816674119415983111680813993540057508734008406460184816658838422141240601376927827975360737815186725847176095620857163343310204093486282110219793179058085482784498971210991532287331916338165349546111366169244630154784714919607399025201943781344510724820949795897604638443864391808734018244228240464268912147101819436099349350234988804284719013885524747983199214957834715847299639170177629231568152042810546751423447106971235920927327716779508893571309048278897516218781570043192399428182622244257660403064707139960006882517010367611197864465202186318191275159525126548782949625560176308035241205199884034181880759840828067617967762785144733620368903101202753898283093253840916199643648172261039413017232764537777553209761445254740317156875096060572957634760054387826021317060929139904715108619055013797333900805838273383241505468688023198072530759467772044667705541248388009733466631180462454763594551827225866791516160213951616034821677976126290691581905299206340932056749014937294666705513531661003487040825233792655523485777959067484933611451983588512845821524432894535627579779858360398269714834285400650628389492633944810215153479654301578413391633085967234906408373642659889284425536905792548574240244082327010650160976824880533573025109449222881624697750254479585014264429178150050910417493978265195727169205049542434442837379993287629108233319892535873607497810176201635274647666817896839195436125890056478988582910675095427650650306594049771112349289549021359824882802279269497127150569077204056054528803250965837051708111434301872769943801971721738287249182821173899083641402047702132610433981580634081655978736171303839679325998203191892994148414019192046697626279826101240333447219810274609647793830378565502291645415685930735722862751732563196794785389265760169816346240744887857569765087083304671946561466028295652378911416964917320628403757694129052370031000030666483091977293622712711784454999951820951087524778381096112857119828007511153569445793212080922731873605114285581341848762300491357015823744879111649344092349980817904798161117925095869117180256700470333746109870827615241171089049512877491256421157349456512315102591067288450978968645032373812934805570749715410423567368485058638193246315975549937287052365884474626757167482924753008631220107293342132281051402450921454140500073050902021600753228473868402745999415215046537978928216866692270620825387484699364284602012514103756804826709189034623035195437995750321101600428571069290846191208515395389192915369461686249182609318820598638973313220668938190232921487717108724009497904731924628903945903348112946727221559883128800282085605340783683727934721818676460527666765212290998664794598257507516177107625852775887623197842608212612544928289076673077975581953988901128222833285799247277733501749582504275866281957912678215925155271994125253947268817682136062085618306113511656982525571303704589135256615909342775480463275004554538846084147035480015015630271089910121197167183753012462043708476013853614016954622400609086777005429027834345451786938348439501762741827485028254275277636543275971888394201835706788809301379349452073104047683042743753331557316584114621455447311459383812060048562242773284272771105083671050310490904550525050895176350526661710733670285574885690042284928639192512835946175375468738175170246203820201012663782927059277923557989777555898962921492241777109241102744682811908388126074027688518416620504040658814829327740071238283870185444577374952265788197863923071938691762792048656924429866914149821129156097335257758057202625949493698102345405919937120830203161870105446023444036412691709736968842321448476457253589654741665141750408306880056118776621708927770138746031557752681881187562368943411721592192839275887920606384951176917138408637556143254633116593204824144119682980508492454451406301712635919994382607749460369617023525314904643763669073006949723645107133855267565851271807192885305657214042811106484599519295744931354015291128151629350845146147576865865276353470521889862065214922817011695146115776631216547253416978824305791901872248751459691105491488103077312355347755102210594526454200268261500897297328486870726618517014731005624123732551783715860491680784578365720779738843138499461813843073218097711116211488542335186912744727414201543162730472981932495319556540554520261555700496367249282926117619212449221625056237732055120881437798044717164462577559304336517314582227257921823661942407451874543869084730800600908028998804342484098353894023839500635604846328533455158377809461063320749986118600003342766977608053902311331092940130584305275452886179164806386379373724779817478514651350548531438202602031826824192770603295536354914123847824343254141825550928106219069983062803134683052149397747926930155704972239639866278902911270517702063326864659359928336246420190980860654110303873552923142619827275444745398075436067909626616217901262867279293172326650846301432064894311797725535745132119295785373384312496819948405828786019509608129334379015789734496575141702275632022664855170818392409421054779504098167848018136234637936065408265806257528047427543043570908669116781038202810527881167958231192622172523605805810967671780113873813570150299645250026953752094063057896712301736166635352923873089620847532786442872659821649202634740825513574095049709586981540243147491214054709797626821174290306546237792454449776416868998378275186922962983608532343512408574038672272183319729601936871311792755624871660164598214441526524750376342801516898752370748181564005401591147991493315088677517121471853645037695532163288406414226877899742155482756259004613784695055776931749826580548465516542951972319097753479315389417476685633188363971563401438615994750459172341777527781444739759706319892218834525407678106569302204072315064555596810165383191615411828914362871701359221936640149230660486779872001528652405047066398496119389515350549774035907935554946683359027009056678182133621138510371406988743661418072454721214245002526585282452655391798499994420807655260677710863993178983753676002191248954361201658180483777478664411145749885909771547525985045622006958932032433671205324940580499155926237602107995560927322692960496005136667686940545120773860948403289733774467448570586531125442306099490973917413835733437763524218115582660679520620265656466399011698028961695104507392331248449549613276348781152593970004224209402781602913543470634010600712326391619816897008886737339960843093390806547521263089313886800097576186928663863945963489824362170564890041992565425716760089231258847384030174070959109289829986084216873046099335376061802609816013087076126712108523755709230365173077049592997207601951417989109171603863093540116265319065667896954747309972023361408140319008733509340753194396814671840889731972631373693183100954417140632210897759982099796405218949623439151178671558561433978281185250616276158233437235850192621933580307853587925560563445937790848273486060981644645062652118367387590177480628749461925346551054101920518133385537219189808028891944833559243486086688813576177610115680093841230508658508163856291711286262353430234295933065379938686979275711158103034265079788268693523032939811130093334849057076016126411142067340452875962208015920637347753436135037316147949664540937171817980381925421205449757287474258082303563545459481894259947498410228155867507031753080182146517457796773445402173113905405656065433950611033922189139071064806575875744230418608536333679383306404549775695742649018266528083212641111793778198141810495960151961487854402276427984668512132119507845626625006183770305820925179544407973858154347583729768256740143812874405237068766173385710674666740481686810600601633556162916583571982620350902155771536235800728320052920043862639356070599274197467157301553741919296352768438688163011245095663786777521309533754036944456930419241771793446543058758075043346436665796132321119231805912625878345097106307526887821925225000406627715101849475488149893526664553728639680032919556064510893265309793836883698846191543437097864282232038960097298702034408429474961704966027692240854732411255416023153756342937831696753429066787736819125993500456613333677619976020237441538501852723970708359533372015129739220667927733934619701729969211411258571216876742258793811947734865476373998081834068396088281768465097273014668367755988430528144828616952662067617772492870252456217487562355486905840645559398875106247911543408667833084934217143355143380731536030532895652396671962418113025243663663645441856369389519433632073778801542429000209435673675825420561162575418726773789642753009089374673457443577967159886260766473479014158873822395557552250616592920352313427760667953444653115248819536443890175946106187805967804543889693056833196022216399700050326147138629010552593734522095915888697586120119956498592432101392342107806223712489938064686972697923706807143916737738152978673212298380215840751566849553930814386997524511594116662964112058679551764607514308112614213361833622201178247195750309616085093448343171379759301572016193214371965997970482369825093995464968005145945621677769791279681265766787980134348993966535532852734973692290525897899319528642815385002367771014798154351334232614246245684182458955701538379632157453626604407344458625375543671584659140118461362307514653172765432044821581011073881525984494583196274473415440643072818566521152456113652387552916085561847234861541051775629994261629273050494452736742261522748190567589433507704433086063713759903275557252797153898869520666909600963964595877089359331259004305852252277003576283733868890591396434976396508389238057196014989923811147064989395128548449515240608825057613981288592903554832696390157084082813883695944404504554343712149028164044405213868552918110854794105422902119085922057986550113187031459226731505954578211580155253029841493597506781270432412100410444151528896545106601517111128008565779363186070030183083554026486964895845202655742781641535149417398328123777380543775812731351658124626337305785961484090249588576048115446915456752606725769238338349116937366716904456151435673704395342462354560990191434706185828107887858235375441586405625231910914391825428723228821722584721761892062174678514538989512719365654360284331510261727410774442635855674599592979275949990036686880007420485140560058213413773897478118653594755000348810121088995787581806504857419539099730142127350591945592013742258188662274524664894589069334736439974629382003656087307668565812984896019176869570653216044009474674503368641305193136410694723268906274758370958160056917670136051376996625647640176684524806618546283973903993414231324982796242134784548546920627479204483942806473848062246989645291521636881419513550162959890662251688372589234876621120381710517804049609060122575620632260215873711572651744825629946514487992132766737480804493013834266032056368525786655140393653836541277647206100794012824223105088917489203461526638590348038499141792668179530390602324849865164264112740531335030313399153699609651041097545224857980833132634667350319781418895683205812015812636905369015099757228771117382656253601358991903549070959625725827146720669302421710207547819457960254254695439191042853849086193345805842805828197853521621716609338179664605596342178345777506999382211699406538404611004532547112955423655627736180318442869988998417278664565875699951501390428293517038648774128660852494972071167270463351543259303914548926665175469413243643011685872116654782361109481017146925113270832297606629397756632124836744020741314502839275285484464881470575346125165077141207699625648402495427035931664739149551919959770568980523377555354256740098170459101507792204571849103913319461524291994483866669034244375665710691556529634529200412325736329067806512693149778972476628362508963467396141725687588924823200661635615331603246810700212945307168197147392292201584874728402549331580369919358269040888457652411314043088293845442186366496596093023852433709295449513117991471829329208022768078622088150896168784633770020247390218754810048441757128651178954925802833589774180474265533708961179119259539635947155486134655809151847075567150875902238285699893646864068996566723144940304282172490727761292870602266321780127500703205310504128283977664005963803574289374283432062732321648074035785279446722054968353412797972943856110184133806294480311898133335917365664721403359806113875396969334655892090220671781660218904929541148269965260311633246402949167633439430991430564958635362965341633630032086924882215415802396650312079904139266671587740048097475304421229469030819766632040145295285019201312520216465790449146350117548258066642778271376048797878862574577088327012343322539288805788732110687196753780660101812458208056767715050635652272229157429131589951586521846667141142868700862408336010920433040265030439485806228407022208879284788118157559151870671376962690692027720291719993535405520035831702162293823100590933140011145885241955412558619561804300170035260624448244564574261691449290243478514934929306378843497395505909889694679858415137039414264884777822301416388906218357427886886595911349504106549980746745441147758961877768010682857000557979196961460240939412982444461040045292487764077671331145652411918255364477240005433732852750956715836869542493496461698116343131270173787749898414568392921136641226115643004100422297249546147233964860914623893718245287698948137584181388121406538052892536943715888191724260344442811761079728141302632705003221954493809353057649291769291087019777274757637540130622255845843498451256336659229960158792700451340532968342329379390079649342657470191460805139257953524951622467683513084576031707439187007205687371607407826332044565059262328914103589295228861927763322872406358139436180896514575970603622735974828254840158147463134102754752187864002745252850684121778459695559231456710307461982745474507184295876239498975912240791305457052210667869318918531821133742139673447639951322549940853567159830021029067328782286551508207121017645462905079513243173689521190042416438553964735892890382986717118688141201777032578139604842029593070469512767854762248576151161963965393950772081444323803759918643145260520045299460213874208384009053650382481623543503161367646088847735267477292879827429901684300477033131006384985797671796223940175890651704421790272682211984545540239479654256818244429065653418795709492239506591128766619132614303873292038999281249653149815743586757983966784724851437188167201568125768431388242722811310266366420097522519689151502991885766199321471301719894782239758803344432962402782441550144922577597660907219736697172339071291961223913019815873313855428249369517640804000504357325976064182364498367635749523966313132001046985404666672593087991677980199168174563351902768840782783211912975891183585913865361415978723555311222146874460402785606922173315242939624842041186108717149627436868480479858822933189585144974305717103939091877551254165795827200324388111435479827606546821767306052527906462864381098076094499466582236681144900344071315404058471669719694248374675783421269708756201325184513937352167223997623073685454641470540540878472364180725971218137491161039414156780055723832807700247700540328856185255449395404292814592395113868991769421520384759382136730043209149008314873535236977474931761348001124518892867500026623094513078218925560709893302346181769627321338827023851467746443549481279438103831790131672179639255748997966086570313392708792673789707657521761307568415291289398037786208581726702418956936625842194074405313947546036617904973156995797392884109885392447492441182477896788298699489960301120437378479441735219870696522430580040571203434797891113356650566255393909709557462943828247273806196708564499689859402986688894477696631779254465149619726065493102003074897803085339626438429017661265290162520333503975127478329152474704982647830286057619301897907180277594656776681485195432441226782397606214674932974062303315575080997593898733349859571731788147382580435300296416969524997522804051605523301564187190696941420404013762219906831695661350064959581901855424070414417097442960049790524160485677445415646451859064904019468629314295883349366745706854981383157701240197764887946524700589459345474922432665043236216394553665496660265479934915586932323283016777113211134415412882865755648423301603764252647117732692391766408540936117201514524235662823383070159548632493141052195896393571448921761840823558569515483420733036823589030161201510748710422484582137099532178859505461426482176194094188506816618964917397502812034925040121081824208847281396134483444808850565179237294938849990728655834914120552270446078988243706260462603512536624033644395364456643700812912556418025786073853235492259192542554315398115583161615368315897309109917212356268481032350687965949616949095325539796801320303700918178047057446947078460321800382362166594197898217574169078131480157643614846948448611002001227290849964121195767458012586049413211454533035993557969553034198939201523791668414259704647892575637257615458516739204123029458946890736183314370969709244403765819705676523534517929404354657489421057693482372330585250137864113361020771847701383821396816725794274630394340539739165005699124822695068844625496872389227863316095145434783056184369560809120463250904603567138027979088783750764645043294525482411004720478532434194156041980675754162157923132622470017786867539957466479437938101017234968426555692975466232167790273966825126866767457584721439814968975341486419692102332721726747575523269483668486227214665850330613166160818965391394558381394582402747770598657680856119218817113056003017742343729951867022665912222403315721623479673417318678517470511149629859391688246776020826175538586853518221495148686584793408700949498467852419385718083589464594862882021881047260969435864944034924153560146409832717890442257777000104154343431631637740308852967077184241829764768515604888210505223647036415883187242108000654342171491202636301514969195659764358539988550890089952221285371966163295742277445655215310977136781277423439562457180195021373180077327322821231894016805887087835869203445879290376561079343848093974765509322269171268937698512220756915530106556452190573228565322305730163654268569748987687435334215761102565004862740720201738982790621754692975100877278777867914384370102199196885979813531438524272823596583570758588494922213451996283109334241794632615302936437093699165832231571157105937244288525586287668988415491507319664733762864431969507797818415486720247456802133312140571216818722638581140224376378761184549842985233196273902225667989894330467021916002723950601054170136947258155247082294821891676603813913226312484498701225110945252142883560760217234011804035140717706834732062047716056707774937050972473701158089504927047730473912457365786378113213629106821635552098374499865888218959912257108194486093325076510517268149506242393219822467701719336908125606063937891164653911396641872299644860310495409606122767903138730635885021469718724335564267325400803185969691359435323078929747377809685411922014072103375667961360583804714577894379165591300031204690560797153264451283403760035706049993956421704227453363035952911162484040578189141652695607678624491867784127862092528102897021810834592174116577593033630448502523371519709813883883165170075655255647502264993302822253725932026882819714341517214296471171633075716099904175851029936496744200967390565496166751015599493768149706661375650442586209826370324270113607083859771462129958018049561142136587129702852369012557193730487490533972311022075852401929740684218820067423099272661613108495352480850325049266414700188457647340692800621860666300780897479190418546213839952462385484615467089418534732480971530486039532200083525424193633631143105634004725499721691939443711629820733967367577514067557401748540614438954538173535401458805361225273928857613854898968852362981293636864270742447080170354935825266230341526956741803048309196093528873623880906455725347238364959154920577882174611719682799953716400161375284348982825465729947329248986871635717581370571026439979518247050657801960223808226502737630723305157104590145319099770083488464302895523676193328017469511648243809742144239911967142319626041865171689635950566799151888191856778762475540769328753657897733547189424083771206955111754238569088173849972340347723650175130839887885147585574982462995235458610234825252301729959845078678406300195688674913352065542973716542281271497695376449916633400530415310915380051905505669149179417327824441116782102353434303895070714908389036835940230459067915054065653042892438915050847004741971689816057344555992562410221737314801703197666333580788353697816187617935966732429289944715466630496033910182166514022494817666049254786442046624951758357372504590793514959400160560284399446927601036737511543325035574315394793622852895242598748627550624713358408349780599815489070521453638269484305511605627035298915207756521033579711815952427324218346672909138271796829151951814776302617570849834748887232712250758860912287090584048631784982099314476663069315693343334222027762804740677356026660191814325194700722947055670631104243599945629064906252015833862236049714645128027930110742241316635413282209134177547279675244105576806801826022381832642206892013559288220941864868974591321366371811308802569832458291547256015937688243589953721058637021363912897018548743835995848855112259806281342422470516737033027268515477132574045530990239205012019455936478045011462649101661669610520505362741687578773771540258723068723076324014908493921072713909343722050021658850312287659153396939107415051712982434841544181520769319869621244640135310582574189874764050385806187115865055928070047236228007147924780122979994499883042650621509018317662002083253714393551608147303962921215735948633718396087730542632693764910037467623461040137648108024349016252847826305965185353060533174277310268379465488726207545774840061705694939732567446093264272065030937632487895509634599802198647820445932644001012982837798872222070694408723544768313725305661079492991789190348511253250161888929364695598782013704739283985567274084637065487227370069183932988683017328424130928341131942827530363212893493269725318234818090407483110915163516566931685585546290088434534039580749855609470541091525514425179172730469247531192229246422241882715691285720269116177324681385894250304258843555196410239314153022735779362149663780677867200089969342674562470182217409193479459727090421291322674943010695443385110214368111423873599027119253300952014596564519979346117259505697378016779342444738967939712877287314783096324291064672384702315475337486671724413444358656827896446297108655184669093577207969767601226469695511066160444126519749083261998309354209826591571404877181660716209304220218155641810850915364069479515748773723326972064066131936783097221201427573303947132466879819463074242182513370888771337893194160605807902884602960686817140523061454065149650759959389931470394928566954300125110135677204659243945114983414479932913893412596327942370401098942436480360908597924809453870119757943595162622557015672878076478536601071368145960820602876719016618605249468115135984478724013952990166832451818382266669333464451798139139279714746775489796984965121209333792634343747157636002275648812168045708655881780468809874213611477501100761970626920012088323066150829463757314209938242589613985119695745533666397410283274695110507440475219725791054947676716215912136608762893241999739163188821725096629818108941693174991122787658516099414832601328283922379251002921338957384980096878624222196462324699014368469250564462790721102811994207431691373846689015882928545498894248032607684286757751677731329773033763080747408967897604867800993078131511816310214929799417784907452382547861668029727419959404069181414280682494247260310367593975135766487724406835804895566904052328835758009652347670076241167172482320592576968376584466950242646482189012875974403245800820941202631456124593737322196073246386486071885240278268239522978817362426368805244727767456658947341328068533088544383365641080311999601120731356659769553717999101045090377263320754423933829944035559304043011971058429781393768965666274803450986351823997302743010216150479987878058255618482166222837528857982393070642218852343835262712233561823139987237492301270538633194629595614839987070947830606724671777149872703273454086447539011978211459710350181454787251072917729610950485534327047611617721268328420360215335636616323202493277403752041655395684171739477536936321673456007389051020137343871109991386648904595015448586172251804895625862258295988952661252585178893723655646779813889938211626765763959845736586028820246301879005570851484539677158243338176072983634683046438557909462599504159724270664118970119376499747489589439738928778057144699985233859458165880196034933529044008244972813263098527237816944399191940995363465045124124070751038633705224786587922964645062176375448847126869023309163099040061034988214717333065405895257247511871732702640521667019811744962743185855969968030810381798473453333670711780245157278538367550791146233475715810393421152365689638921762455829965583510556265336650901111563652643405571090582381066657969468159038420454411871824412103509238424188739299369145646754484908639749945842026280988512819502602336233220052918972751337296936867987637103508031902180736756928221367851346477788414855269623492633779059087910793174056098040318579624915472535474669552441312820403846551600761123447974493702847323810635228174722352185760057475159177603719426832280977943715422874293369870964106001917842320305519521327137347289901510640942877632152384573548065112548143636807766351416770175678487173387021487893732589587550741330800700626385422519633634026427721750477131430646875130259669913173440424791673794617493862173954776989174203074583760157960799657988862413879768312866728962039676000728782273005273658671548990791691313111894039731952566140780649984195859656263491094513908468345756366926583689703722357704675211136300394184965409464622825575862573615980967454127778517659344902922875110476369846102742615601633099560172041682154054784430872892683314050731924311619932086044669654367741117212379615437782167410767126245088587090668129623452370063888501491152739213552964419768123846954353751522051595401445301853689857987508484609920662251555587885381153178829387198041511966349022489468470949773313694571536486678587115138772623349474375455318368663208660802432748538776314281321441221290947335832369945505660880395125502905842971264735810120609969749503177657309335344954806613967097810085783961050933918310928239582230410791859232328865829087047493055955945106645848292163459202894411903913352223937500610149824124872149118058634163196796721473400681122161754896438486481136023954031111561885602401402409607962120081598240687941414149850010331950769020782680343327728422017815074821888020038415200313388959937357032730054602114021704612021117329334323831223596328106682261926335645371605750148555108511408468162480026344187878183529744157820215222997724949519800398035836403612102747962537272330446999859421937322667164212067660802474325602115522796787379740255728386222385875393342449536082197630934697799067672733035495042062864664551482748651348724903602454578194647696562120585969352007988432138952932328284181040408227800839030105484399787992803900617140685255560302003104793045868319569983767207672344585033498170245251513989107394847221968170552604109113082696589208808110567528152274130765651518326708770734798866278114491932528342042517536721244687123897906678425091240901451183088868036284944626447805929454147906654811698392819351537009033954054222511023059953472474397654848057813572443171842910948962597466199826171276330103778388353155542925934167831771344595104099920219858657847640018337374134976111220875116955498803444563816356984051627413005963814558597783237702631905304604499190025236100716529289605834066139100767948397292972638549959209674477956062408709386551280522553965849547166727672224906776595693235431155998388228189158770918537240526831860860483051812641615212331147378562328513214032253763342205920434283396711058349210885738146743749685768561012589830848376127667591600993197409906437737780710811782473319447715487053019190334217438917973615274410848297401087746282219902474671649581748583687270811483204699457695892391077613045833200896013313711106138247307454991489367912705291853331681181870749689559701550598457870039786088499846534963013063113114827593159524464104244952009020299472293783195457393884932765244377870332815610968883542181173211970669628448651397029195781263157404561264884281218227100612177568900976813034431962132798375066938265160583815216515259328844912253741762987793994519302786933683972698268354731754044529968807826164688787119098823839289164536784951824163125230308478476528385627976081339315547383614972017064947211208145364617621219265625695469596927381636217885273128487497694768446400452765694881386224444049073258328559009883198694132421443781459287158491189137245094858190054973120841389958399754629856963791283226503994308135500589306790280427640988860347711032899505061027461069652985993258163964102683504261654947166111740447446699658671343042031905290259304528164652785655974459571346086543562935577004114144102396618490316286931298725927470060348136878829574051660932984399983505676569292965454595359233800523713925244993030123361167719244934619418377453263736448658503176078777035870274256818217642622995739660083445163878830705404229190823872488936095540124003376176573449180463389472879443357312439145058217709309826834915167520192977519435377500974661689129474957284560530786281891809883732571958670236680947485415688359444420183999662153205904840779131194848632055658535656133298518769949751828832316489678289904769942552578423465202572592606077313758959236361540050980645409271155770750306313953602938232057166203810762316283777323955150370047019720297579806320453763370648481881583759483966709025716452986004886071571357222069308023715227730099640858112604414554692028880214820134465897727934106835653923609155167988451386914160785912432320991630666876167426789983565845608276865731722260027209114676306425154066213167282843197593763976258598510050088179615445102525776443398959478157337617731980607041620734291375433879181633658598416964809617922807731136134314677664703479914140462507590570435700172203693460730513832052133297071779799240064867423379151650621734638037767788624095374752314546972359027212768342799456225426104032798183204907357920429245112863314022163276074350440164789443814896531892450192533992876828465582897785429129476742235140197197453266439475357688773347823764716297061385927209922276131361849004060452588174086973472317461980202937163089715098452986239545764773099169270424081922880279581695461550966428200376571583213766598532798486458400941224765077679015017078024579047998723683120493627406287370539775938738000935135888868855235052960974010513652989606020580495834163992520126833281029469560691226668006544249125441380998537939466061043080847934917920489714226726665688733968476497532001623504005958620810613633147756901571306089153904183601838120967635511036804378767326054398876004387943084586982784420169776592543640973890620591771261844456119511614781831702557513516182423886493347582535552590828015080965613798525209559240400438124320074081175740325119435668566177333346748435012510808854956811678379949293976766079311097869013271086462360318581462593077959985430361956909384395427488471790294365278577360895510684989457087852582914016828522676960706060190792083773435575478549605914323651217946335208303188104877624363739256332065668087816981956288041187382804137330204508200243674848093137717995864059757687514116542381526811308440328854409134381752287761590939395973921025606866002555255050298578545621217514509290504916299204581702976399170719776884523410703709372689298220545092604655335065482667487710619789195256280814963711001151138451519441863992239517981282453044959214222080527184393803915772704009966014252636367935464897284322839858960735409265977385700562666671319206881177182139372607261173404353269826213240141745701583973021677223465962749376636220859022583032394504970460013597160191030642710702865561839038496039798297094706978037193856789487165332766706849824685383705335857809105984217521728157196710074165053705181849284785206809550702292566112109608590693751585298920629751772492012598367340172439848263863450400072763700419008954009025495584068272604801328406411020430264871090224793393734776871600595696948264392286362477722947726450450185260320878780922002903029898837425814868265581373603404753175259808727015863697378377317322580596019719876148157952797491468877214935473372902163484934202837129574178454586958417635550804945264759517990704297906737617792845940260404851395751168878206262979573805180165385497681352633188110179393740363833023356530405295551418800034093060560438583065119019355997035168704392801897701053995484552498061862764726532705911489281342973017461480349890260929749011628724897397317218562462463331962082067029059711386714590510898661546007358910020213440784420769403751231442841163720683871381234986954861618822191925395630323234016762843193419624436205850154671256606828188375793099377653521196111133918565733663863794336532767739055436417641646016982424899621383896838288262599295851411056094284744034891601321674644803299856015293803251023469341065181824118474808255987293949921949037789073204587969957736267713880495153118138523725090980210580686728874985270601875973858180749322402388340384094919864002538360828153787048361144948449702870511037709694497707283296888712409248883356934248740676071651315996176264817821136562531423123992124568513737597879349523908088874956951566939029381033264435405793729853970115545145905990952423425712218866938595188818130055622405352071463636212851242139097541277555921734748738912308295887186825492099036459706385848898141359745087996552936279233889449644246980789420914248619411285263936278425138293671568649414312526264848741100866541013346569920160148892786632428257262169303846951686333308328187987275643206480409547817331540460154906003572045491642909409674597014797728660832778144197788369468973517024421264415902557083867628208537129046539248485810448803697731508272648794815936406434183917954772214219346795348816045687466525495266203158420962800456840902091332158178706645122021034366708567025153688577708647632122439170955284077144351619817573993141958556182761794195846425234015037989436055294527878912214415529379241240276107873942595398428050056450918429204464098149363093494171507420897707006918270691924769226955491053105249109015823052140150190600919222678869128975044461929421866824774667610524014573700784833305395589491093049536234006741699034983468655250803108649801939417530128457655913102666677090368705823465568509252427254493119818662369933228252383166920714690690779203303418101201314649748804979980669040185128110158630032589231996575459275897638503610382272449990730591994672670010747282596325624405894115097298132963571843759749783075339688048026182054084667904366376177455496882080781320166745696625770651371999007218440647884147799377244782147195166099190942234663902773500584844983910757710083046392682554031275148976522763738425332445189349247931903698958441171193614037636631488741567377451650541320169689442365764676176625953453024318333622597141896356754284934879979171146864835810797435953409477481353229340652702874278087237735242446074753525044476112854596591033811888116795390348873342761551351723002052177721951942653419050567414830037213437970345299919146197960052470771550072748257648706808421658068214567673898283652359349974315484209495138396817351784102214603707249484188049908642561134023992531543172039552423010005429524045476568689228795131838945093287284975824206292038872995611370091141477636509903112031965244997201464929921712386714944677910339716106886732678985341112113239959088856031295352590895012459629209201245051671050580005071516121890785356148455281426945146718627001077181634490411270741602718867160703367381834189563389902819688385379078762678307703848059075011497308369833168699016580681260469382813006625096019086545832447342328205606156784186501791633221732263099893712651572450271907342361311754694718676332290150832534285935977767780978587606736170850187194137631967755797810121120348100948325256464550095473489360940448314995185981135770701563482247800296683779516178773714250002273129091011830063385474084085750071290765455846962839693486281205592361953319824903045242694211338617081903249305505314161868875918229767001183738003069848017633821270440400252985975868782013432430236441482573175292648691552090996340193385532936547921955514477582110283039835685804256392044250276693019452529967388963568413930655024159757683973541327274702532064631631602794558097692919488668633870113777238714070560965529763241923885344666967386576185865771354619537386833189386422051763112545333288878290775062144294120346884012602502342534970104963863298565329991759980669587447188418606328750766304416118312682086442283864023504278145898982344785742420383840459789090840738113279566717225165424945103499535267056296529012064056961515712850301246584384926213199852844754041840454592320029096150077280343613429186316737938013366115608985314988654190953868178009523789194291822565642046747793131714738027770347190065619612348305874979590570170137659598433880173320204243662966731947525601931167773199881268479896031889930769970486183976704550638811496155922651273702861981326041461808445704664661767757832534489639538605839296698427670099301182705686675493407003302509888201389182347070943668272838852052047800668272892563495941832121645526700007676950736589362558157200845172254778680796489763438260972704600697585040762054727808893581708248190871028381669854434411585454909913504727179334621674284446688485636914690030434325153870062701278868483562997989882068534363833225085203738088700532438228810981615389562784149577251018798442345163475708350286868981946364765197273697252226407395858658470306143995193984837999964625758554079899708867113834480469676421397686816062303463336033951291477545667918880123004552636494263379217006921574739671341223115075073112284473698928011246519397395648024375495822501193819752460692688626486596565571135172631253605894328465471636368478378848122995604629157662227696928186100148909860878823870893136003619104049467570616286438056696630471425586419968124357679359878243427487505014365589528357307321361699280715030445673133699090546024526012449921613166672339837839721830802644430575778378626861359092009324361423091878139372144291715117270801947190844552634246005669983951847437055020064568110723617471925851508241370995356999362246362471563528407009863954465209251270404336790382595065680058772128209633506141514608206658505977943089160264577054701642310501429391497714727421702697327545762652467481366400290490175991663540956762830764579277080610101485073123091100734062773167874777634720873042789779635258790577894135335735437828641758667303275701596405279600141257426169275975739008756842861448309757248502404666969885560764716928948151823281539493494536146352709795743587191830190839163623059107355287420986561488258792774603394032016581215970012263818725629003669210235689776549603912682020014743547836892976694895914677086152991566030058488434915834689787414585460230396600686062686868996291947299058807452700763813376931650926048693089014981833662144178831138963107965323770076072911791636421475157871020213555330045169919264619899422314930087268401779583217577145962873107899772287650785359943147160871165948149049216561099648176871088661678913575811385010174760291248774062826488102093554928156909909679864645825303480488598309419853056159831359688538235414420542642089984783147846675596962234694956839092330431920627545130584795695174266198468553283547511547549999059822596756037746374287631845926013431962128163062892252121447702545679156993031590855167775563632290510778005624808462803729889252782926100930970937570724434989864479000982686684534328073369608444143948964200740812297786084781938819986557483850714244433740450846092771212941753209528732948115502462597819500145826219017310526029699087700533894656107971722706256966544369421143929128911492873489960008559487255033862537075347226101189299753812723039461438850282037825023050235832911871897539715677891663373074282979898255448533802708225963686248985056349668650827312122424243963560976485454588704938198620515500901281968044713858608364252180331145985804691974257219389040625884517906060469570247759559197015096207873144549307433891329011912920950645710228650179357450332033802700154815827850271801938080632942037976423599273381768423122154186082660289445456162170374170798237893081755906694870865814070518110515699083464186166924160115488270275809175995947309182856589962769483489254699115249934662135404728768450066941443022419296274647516975117635106663039764105995635911106523523450315305080572846155067307018362799387265333656149919142531400307276165954860825712329153099011109431481624748249327738618891164384144824762939001375301285752795861223288451701443263441905245671157571625934119568118836573262066060033245235892489248207236674134498509814547110929399528615786342814646521843542179160798262123586073440052212586356580509641308714548894647229982654857631089926408507349938315375896878656781340828054146475608977483929271603152927439880195881512620775489627702836502553339849277559392311858458831411542168706967804684111666750738351686907322667912514617946938462682658824625673958163955593476941115323627684436289580276235310170605757435669897765445425104498174920978304855689440497372070659039657468250329667904978424305426521112722945689202002736579706840885559595515281320405814669043804223353486233062844124978913553713122842719234836588162230690102360078412525054575626348871111811467460628282678572705026837994922384434561422448885307929113732177016705225306027642450717987189509898273461047463187230354354123503358324584049697351986635882532456509175776492762805633030207180516773132325579322372405489186938584571154792194833269278532070593325119632021218641212634052260858668127937734105878186705020898651156035038535031919882674172675067108331034595046108488608430271036170194064860743802635529198831172090509188979738307314859143887732744005656668147073618673609725872706920037753640625779856597205869028436686806723792955076293423287096483370175473209850588562370139126210050533748987525881481431071543776829408610387437294191618886016429767799693155951463993597039350601391069386109858434627035032325481905626736195093434099560383007933496017901770833331183436217600708052035696260149965421660857598312101101420656538999312485750183586776116185057829049842241847001579604801359737580066687504422602764268310888610179801302181062983270374137626365605614057178577872406936039944982178151648491292367151087556925108599982250908304539801398305101376979196978412312128352293355144134272526508043179677898247840062797474881588604695285666193236133736004863385832184713840229450203025922667753800134264550841493193859116775267720057230286753684505450376491701447968599294648609902006629151421445030138461590376819369257348968168023586982439086442498314222794768543077738640306281049184369430795712086856047341359175175022634406924483934679288997725061408128582594334257303151723381747304882306240193690082330540764080037145037565844542993995191211673049754979306109558304166475314152659403570536206427145552641988016286175655133382458434018846830875947641213950205440377747437578635089843180563193310427910614481676575062150867965828777020794738414872870331823534778942746148660194653673771135745756823339414796734281464502456235574074300251957491103196829326548553927606654919209378101063012850781710103580546971452207092106592368835015029572970561113572376357066875882018005427590680617095487602435063249003618689631550276144096504193785003023143319311760638311503560079536203665870006408405758349714288087337938743427120239139346717162308317026087303644580994328687009395191019882841716195514893586697479859032942992190967712536641690154816344641046847417109508625869911793003927241528163454018808123149251941993542141658188886175907050095390274373937336496226541606691225207520836159774245707092397368652890770610638693513270063698672413986396424459616886323536146957156476527968903097949817657577675474434166994612356066534034565944284161249913096034844258399056055140449814610570357412627647853296928813330428577565282224162273539137563519655297054218619313864235783664507307007114934801644482549917249894281902503048034799102478257909655889050152054076791266320876789856244019977723094959627835339577931321448259272929056324737959126961071586925371790826687393808971233619831048657689120239540772264452454928050320553558918351745736722037317768047759939917755872481908493480855233011495981485621596354952699618869978651305145132369476324599178628849075916227698069044849910230138049676069195003755254532485774190353621217546917087379644428977111425265520330441700960119388320318362009334661041737105549270434482701872759042806742618747445609007400456863941745406473878321117942213054884482912780452633174544947622706719036017676084247832788402252062919606430351764451490679956052162244486571540425633824381834912664280767755224533659949337264035837959738158436225545444834450285933304835472806361981386518868346312906461355694980218794137744054461051430733824436921451816914366821644135617729077139760516007289490165095034860354319250106069768334339810987090515250721965697057584234568695944355515231881300110121613936324695450869468481762023588413761634515893130406970755170505981558499680811351566104123637481531829849750610759665652479065576353808506665967133887099859695640813294134509721508608959263100995736401503824212445474542703675261052291071800413455246756263993927945152850511437312930150631998029998937208866360601193172600617595796995170160353244549331814506829633472299504642345802680553914501448008431124469871433638272864312875996700714417073544605189185013927733566059546727996219498679147419821046590918314036328977644040325177036427899520741624348411538564238734114694360872420729405098342151127007250739053627902614398967533585344740348584858868911839959192697980828314490341532511344118177616691289804049988196498372631307885502958309407636308911226457869670900505528135565248258503960248420189447398413721782986954680096527474345360155420277391754431284318525974399309359338834259548360911697181283133708882582907001920714717717638191599421396535632365402367911035140591112206550046283537241481025279651739405576072358509417194227875903083632747199099583609250650801966648229742942418423295947096586963663869889434399431778847800945667723701562431105311735662516875467735525472501161668579857125512944158520117977393265558272560531426652606111958418468194024522904470927765078215614355270972901908750142661201846586448933727254794037064062354888740513775368261191254898941706497472261062944080268447432144489430571304531805337725246869972829606083401382284755725764135394047734974400043932021331109580513977798400812466124786572094941741550944513930024265217625828182240225793971400421542978735851852396248040752648118657543716467276647710302999817801092088845172546320063014774709668082924500095341087884239879600661391754304836658395511192942394258330495384938759022041167141165502544690419890650148560034266262858556487119579679766287056800090870615119167261198383371566032949848011156406667072256898712083225594242119509460469493910270514485443895193174471512913714112902111783041586817697831601326770943691920761051111703227706632149525098201044346582209101716895682350937146081155022361786402742911969252535162206279251940994287299036916129871167579189725165504972756819390877074076119217337931003051496284996184263208071563484286698595732173912202538870370365377514283813017309563867626496132257895659099384776987616612866411795423454968244002231673810175416901603655522328750560769954980965788103066718906444193206761046855443961962817029342543361763557523850818073360522922442555834098594859878864644618598092428252139603497715510076090750744951556077475523203759114969873159871885122616168980849330947449500280880997765730903797888280711485216486107970096708461538890798758773699285751621168329275346026538864009017809598163622381084539176099821054883188644879846333538000886736047903000073491939385036184036785100715465464317227478021708686482042834639737462016263686889870933693681567274069246473966411495322826814472679166716548673624408974021803360290088066143011350111911036636823361722685444962540711056213675491668783731895690826933580109866090781069894425324877800457975645188680386068280978535698015609292740873141133216622769081236794585528251383134779269336232092888137683152382455308449260556133720702822606709354861305746385467314436835440363622876463673994483502387759348089817112460551020952365092162893279199604592146230488431499980218303963302593885777485607789973956722181691594935266976096671618818710584097799565378646757291894964253074212965275848367177188628918596325927918968403429952107289485010623019071150035263779251757377958228411934944168961039487892044097059299171959846382677258840179829112458133391288598317772778535847690604201207426660246197912214881564972339670943203545232232633050427435135021213664308037516810803135621533606603131347635995231706092876281977284944431897836294861433788967649007312129131812685665160649903906780871650022102460665458821388548961622127115652511106850037615235091184948633817060885410502020102856906709706904542056656036948129292373665684016572042939921989344679065937610895353839745149679153147553490724160010763730989390203841933540430845975249739875452632292618449037144787430520414878089077064101179886601121257913225515513188275912916452516478620423513471401087845170219535020058306035000998193362910965797838335191635594426614978163757558051655581418340409152257700713414351696939367441624454257710914451040276817445007807982000060251803970664804132731987447063146138629642342907649633022019475628161213202958608473935406376715812956614017984682105076903373595773354627972253103140328352438293547319381181997213897159724454953499848996350363258953951641126042821447118439567939622873310413677771009360371912917901540657411545468996435986852072315947878160136522595825424285481705747438035331362502823350563547237915555176382717826366062633073115947657068648585325472017175197943758832376557373865512479934007473866457453040999986514812787354169710861779327630546251710853647141113386989215567986261325384939197189908558862626485554587313575343306716036260410601872632913583619724854103406023019845961996257883964752739885451660681712968761309625874630577207702534848598948108904545344004362011581857346501766067732541535213679851179729608646074171469897012690661503881639963489809393686440022029015423127455529982609285235182618319760976149251383674013807959095062160159615335210437371870966029392395457187633402263721764777695083460939572403424363712105888116909001999096156781107754025779695516739338192860254253939705271265369179732999580968838406773776448964481559047448584856184908971034778726984073474366790052261586646454068875714536813597047930672378795308435829888826379000752684442811938567884495895910670389962448099392706966186155917114089087927610009021468732743013967693336589716687331756253697631595568909313606654304405626770085556743469293628149513530654583700036465621281190669623499893785365595029329803465107446705048348370634802938478671978749543022134980202616833941172987944444993229146396269408374641298386467675835918261882218145434518329298544674715397562750243042833167784199352243942697431971575814711652137383374478664420571811017977012119876927116492727182794076873163414966869651874140074387483205838133032509940110919108245641372006264482568121474212831498788956463429566398537258668497535639576644957660251432020503029923060793343830868978269818468451340019335636781465025882725751855408664922878357517105079825614783703021320073705925924283438138672111994744637069425392681779764226464598855642957010017265335309491827913321412752336892513490658600515563241564561738295040379320854182605134659285298923796691405717569951520375114200238306634744303083467472547125265527146096600619294052370703222403111607004604640094464673181982753781163650260241330585082826697908180331091537013981717557870603052596914201736921664663297207659479366044920589934695594312117068797251059797229720805001005515524018773732663515629149401845515310317417804174977239816535756337669475766712269623484216003810512666361382102699234589036493360444344310670998871631947621712890142953820960186208236481683210599382386786887255414392398778506468956486137881993582860776558192914113658442412844149824967127489497580734833737474131955018358976447321309594646616821327573099849257770925851929885116608426833110743750683042681399430881406302063355532242881568801669114210284040653901035790805419057748767599891505758577421358830139011351474591350116079065478967130729367378204815474866301878782961371289390201193088544610219202102435672068829801131787294039458182971750663082990472871267760440006099472483974819802520654455491996568127862996484857533408041918691777241731178941896479551334017254256066209305606329248097520834931293300518020288467322152255492089431187171223895402852536181872228475720876164309600656484380458779813921251384238696472400393572033900185503416082440656619407934931273018762994483897119927110911990901164184998921350379695990902040664626227036329852787296235722085917860709464688708615169110266002529946704431017441256331787776464462955084108009084897937911563138236646507245176606966767888498866106859893978731230157318885695881872239734557025564038647524623277511434355070734365551679648388261226806606765009920849103269838445579584186163856537502156989304152271030236191069959393156712744259986750524594721863308822949738545704963774279172999968160437694745980479957627848908767398426499688859757817027486465132420827254457690124556424606428958437509643328201398166932646207302545293007462990365004524408159428236180969749456877558429259800662810857111488314393890029892653323997501761325190565329561542522125331721079265241799575209638689551309889146841065253979063832447145334980502104144082297905877147816380646744849926192784810655938703838454145771408712559948474638711533212974671176687587473249054901051998602015897645237831063785152766536557008412044974769170711275709574133820417353390438079854893786907412405507989271310699075455353979327946975086915722011998103119036927596094406900966762222960061006068329894644138411844584937214345457220637286013258138322160005158986783596385801045548469411804653216148507474201829969421027290234328599067242024928906583901416649308329992554140324107812459813136842506455009347534862686054716308340004000409242289172109714163036865843841626344763138124287366741911864231650435653634587109102638120028246456651541515270374153699304118409460847747738634177466980908905304089672864242395183923871402567141680813572476664459637124609725977671029092766193951398421601745210893895317734090465635700536786182348252968851889961532763406372060001743052240206407587205001147612034203735589584282634725588704860180188791448909581777294180055786844598669074411321297143526243304480196383047379472802092679377580071898110827156024510770951961157026442557863426090044871044416855958869143312346696464241029428233836425868617933162367175301449733322622243956387191060845767153764285504622839658970766644451920273425383378004805342469252393190789428660565875239100867775597045825958803441417476182193429072108952958726671142436200287374775907862743686029708376329311895787754769566957192737142030170304902725026815577365677892980577598597754705071231125726720260816210402219156447363181163007649216654765615913157868841470898691103340160686840738086000768912848704172594460388182720474407046767875013975382465744094319550063929391403918056016009908968675306485590007773312677773233961382903953249504976902685141305597259509477107713900769367577235679034878952954033699016028677493743188289202834336346747621290136193946728848181260116962172770804175278769132412422487376168727323132686810443559944184742022505014801284481214209821831741018000859452910614065891290009937381032167114069209470997661821955586870197208016245015867186723892638926322343858112679978046815360355068944803274098203315481357006934311294595473488326726519786182015866955006312548588298640523794993940264005333842764344340428486313424489141881875705868993330711103573416358363620741287068823189006276862709550705903844467334653903593834637553937710094990282532027851914667594150157226388742266219012848829174972620807804424321426236469457071358731120738942085173665010441489170015306514168431149486249822347858309448432620102810820167483655390463163292590461255289511422575408846157201364886565242759768417857503183967643741174723144611304866406480267581811075120934408421048540603676965074199118887063624673388542742650199583888182306249052443401519169380561424409963616514437871134278872300325096934565738267619083309424177992230241743459132523095111465185993181058794859004896530474231598236354679273607358617730498603589891446696354802913330027947865646430439294484315394493828369238632498697232043798015405413922146254947788632013340228899764062216175604475295393372502221438608027926176889358820685999339612663864801824662211973795619518680542860072374550161458488192935751786338353875555127522096790705353121669245507784960421199354479402054619290755000458257945124353575520113998583359079791016020485642772882193217465393191926388063032989398323418914837996872831169587962543971918882711781693618327997521816248852231372182104865918357755773566286267293480695690307420893943111229727360366081099232050597310654843776535237033206564233078307282914966813136401547812186059331972447010447520142805323736900387814247328620967860290461534731890526033893726648418286833543711620361340129978351207443996851505429751054713396659914000412047565102128003080327602434893224967700054975257453180809840860796476241715444723435041516963920087917205429747639533879205661555601846462609846994084572047996799255498448554319856541422775088239258675423967744806428261657664448915530304797284799654154266979644298376798751973905522466183291674322638291760875627409497703319301239005761930427990360767520848829100852465523724518117622347977747485819108731755782928577698236143851709623708113452001138883581550682334675729084870001990902457360194630304903675965480561908171364240870685571975428513129872035329775180294142105110351986162726779934503599902124489352330914567482953800431829969893159946289594899129201966020131889609876264168472723507267683595667432805114227978001466275070159550766501503287880966827270075154196314011579832473668343770812165470178239617774002356639549906063897870643678275174145732785974571909154614173253227369902414727792816036543179398612620998183409292735876218567098834659215218320596561442032761497217613380448467655630117925360236748577691879982310662170853349037007142876761080058649454777166591237233885579468757990864780254224811299533325611027602563553480339555770035995708003208567266584510107453580178314274157630828259479555301653430142573238407927508570425870228557596208039845666570833431779734603859348378094127154940822038159918622593266135470848439488660059262661144959798064393772579757962943639416866475160823037436772386893537089012218095329844429365564267463139058536885711463195634228566668523940407565909438339725483955394005527013241499754919716898607813623443037454622435887476700828259974478603426695873093764606797113787501864548193360893359516610643797036320503689496871871653506730445350860878844784491436822587221898077488004620061411841298397140814942410698043156885752517689692289109520430738861417039196489836080664468687384979333431334911998065270311886002765981973062950008896069329093307386428058250318817219316166001452271611091834894492897686261844205726013084706476525586680520143495421720069106855290484384396822314464695692016894818833235218693725791811448443612109916826968249006374633259151901837835428200765055427109671192693794635953643711122268501879394000122114469516916627571628424358913383604562039861723096878273743368319542705589388644683240638875017005684112555968462048745620838021735377245686030289810269132555831592391182538223899735124002207862819693759193234597731809178186954741893464775163859234865687131781278498842467804833047728651325947110685743457484029613559281322303257161605220682471111784951580257068005299079020581778238814835955605619784358450280821056917131436873016275284433741716715825406833603933531048288044412755869960488339542604339916995180015255127753328145728656476286505727385153589791892183321421430370282917542831253361762548295120689139688741967279457956882874604406039565625227990758919183477361370070586832042420245537163074794198603999021848006425280132950874243506542017691520293293668825547833405408095112438694407420038613309896814743401582496260924860102523678111150043351218887815032931382826270926230862504162139263424483538310920839631626491493968748119722354738450519000915723617259362365435102989491546883054649379398714851549362789132082306149215952653890105396416833903756627904151215045471810230542366812062135307033629449646091035562498506842865693399924708051727924004252688173749726767979779958562598361256344063052135120616633219623722980105262453591648818510112874956342232646304332825298262710438453317542288589550610574656724570025279478505997268409884110970050343620804715284382986334320348359705707875587797330516249791992387046548445584685765961230844995990397558717048143348934053270204692711975885670408751879921493813772277268017916675341219346380329759306817951996020616384190574953132072877417961354521152068076154217214919994606879822383585331148859457861889353702824165456220005889436533733824731189129318321371886695101935300595417114334239512086838716968826286363847984425704127630533041676942203169650004270889953924334741103946285048188677815354105687413735119051414756844467084310600126554822271614015398317814849880878433605137038562679984053964806970571730025050590675935789891083174395451234263052395927898217407747714829869025171785511617975435562487585302414081064967226428452883464843591361038337825158727483770817297339676803163280344599760479888479035352557063868009139423211419536938121150764384235353582926253533974280097531066148409184658432182916620926391430967530375904547108855462044856099179101287123232231261615800076688920664966242994513122014751640546080403385537164795687378907216159700089418288794685304264754917182454661692965855404906675083874575609424696641327226697282487980983152478749763848308221789552818037354101393939580216707317882016590401529337034315568072944376144058784276898833552518436268294555387350144006670271546204944522120418433088758613806364363093271921286202281751080782328096380929995074628426502083973440636839204070609476131456377408099481462564117936535069454325322846988218676071671812507040781482109221991548877883386382812186309560311443952264949415710324480667186343359715450201375548900360786753789217274941319785527570980745847266698350660234667601882716549374791421043810836892022575744816856321030961785815364252808739555990577388295118800282039311916392023109483511438004793352822654690576951196038266979129004128358436687704693353346343738821507553905783868794420233727826920775818511260213145578391809277800021819034147013143572292479359865879597836276035480292636179503283754687632783018562494035737460745979946697114955016969702811671648954174793947241839371713623856432040831100465819517308066850469509731377310141764473805838798766559637746514901189678945376490984388678064614182749575736662080008557951679208514110587745666631737487202696716826539626355749740872888408130447898393020744994244400574544283650233243351974855311419482294800748030832620791223358960608822810825650323678493338670710047288064475114433919694294685745850015724159682769291690512848441655644828517181162121346696892562599059128756468645181559393802441006594802934963154806950430696951571241088249610408148112133572344312448500367944202814585658695570911195700594410520082964470986230463288911251999063840241478009872594372826079317129872264942548106576620171682044423597857064569081609977192968763817432090181794508463050478946249190455973456940930880615692283462919686774418294560051526711439020142574912088301855902714979981733903524983623279814297560062942427831339816269460651256586781317438927822931416134545362080843500541586226122373764704954649405330707972869950825851318964350614703034134322332279579985769178504087154379915652996851616213062453867522491381364871073248273340088948831652799051231194824204606704130716460019289727170723076127420211531780351309625784110037526145980795999207155826620461077864085157991367528525149888379474907655973886419008096986984326929668478228306785013266354508438137755161696093910882239838336809865725081145340376794835637671928397672764814107657034068404348969650759200850666265947884399710644928332071349179538792972127114140705059106246810408375934462107193390223965025555290569954644589725813010298791060994858944323181866517233683509041310347005484201227309665535024516913820925434356077470095234949182759193188782225384784964634309409951125286599008381073530720675293832172220566186531318546103664995824297419443294982489562774139628093279582155567836356949082344131793631150810760835528096323511451664690282019713966374307622088564345850609554005990303441026370951918163130508633060706261326914289666841702657131600107970139476860517720401094592776924232023230424036910838117104145965340800166850159146096934101243688641008662866046195539388050647729602464108915018013776458644310302283291590863041627056556827032962718965116337078654187583678970788389467802660588890745357595950996968713625121155937696585754661293403386715923916085667670741429697517412066189848696794753305885784046074659565156783218134720900388877805120563775474330405000359659016128762970184846061313857299259103465211022930465018967444309667642997686813521986126385182014389421961600456498179729784722794372970894818639986709848012243443711985478675374090124855628810346618438807511779070337282939623524434911954382312337173126011013414950427241281868656343788255192550036558186995835770338476375787289930061796812181065852367922765796038640147292298479450377615580863607407429676647494392254492466875652080311209885932916106326279827046463028184262013425292934133888222536475829260962898523308055545157919076263215931667317830095917956030013927086537408551600430721954150103188010927305605467919440372836473832262646399673873140357182719248468647721276438035219355511740211533384978901386715408209653827187501206316085738319978950004792204872119420114077301382127584294423538511639292089550151552494999124696574821194698897819173357459109411014564607557345044506366025673617375490229415186678609316109756978959805290048181069532793490883626297869145467264887122005081897003605397537657852251053256425255087535870176824408640014158168106442091282438719641327453602710240486851115968788785951437040235019457228298519221521622694170079339420406868949750512679781122394811528695315478829155821115526811306771151427322500967502934944231953046876688712485762034199680152825321677225918028085827649350000968473220490968696493852419627038299222419041995819139391070873170120692337812062872129298256808621597586768914064243398608109195859833485819688647908713829598753036971515900490318475279656466862202262160778671078752097083648944345331193245281848740425047118176649843073453633078361712955616214299487795252532287007940441196368692769162217475509744097483207453656519354886042321340315043343886895880508464736902021523882062939977758896902100359430176840664667483263567667277919979367879818735837537623512684309809965094516757562968111010390305527532263718084606472280767572838548712767812933421539298873103415225837983547308506480642437562763253551873768242067784898509701727312729025231346263989869635010357770440404209343275804962645506788847784118263304171826679888841701178427067120855629806439007002021058252728891664187916207397999330008600400090715329278441070295341097606778039161038319201686120757856266449331217361693785351167269049637281092879979562598456317155290693365787843369113763133943113992698060733044795717001325139242967332807155216094798519967808814921081460292339891637152932361435462419163941766259378008588373338249169347410259641943121337109131379507749764663079563937039242560418581616658430588957421165115696241704707784994781093482155530699738284980226242007553838705911977571886122205114884138833077734313402487427903169260241313225831377544896481002038851721599154976585877263002265853839557160314707119386442000151650965431700625201991252670230952287940542575064315330680788469673980441769470987302806233586190984652366884103662990446123241903537900421123306310218244597761729237577658799928431033978257052676041850637125776976857502754817843271918874833332066715097442548535129166081704346797367498266575849106910269653538325419153560119541106733358679684397692089735177316943166226048409064678528598869797867603732337122690094173014759928540464228143457645526353218159582564655496656380598328715981195050862374063852979993797527882288194074008348032089788341274556510179764650639150807960817765446557415125346276398670607472336510379581616890156790849400959792925851325639040937814836714439477248217545235357949008746594763795836269633109228686971159015259764215262857133587830511456429152942815456293541335585135256409304064641519772669542844045917816327397882142837952706735109647937436794160411860930973233151006776474741062253967021286657167166128333199245059464012165867551878855027659506827036882685166332595431095103023902423949652590434977176330029114137060460365034367762462714335707003579922114184790456657100797092756474981533727114609546922969471314915930359263751603075472260221164942606947493325343548062318566868464957259307804173277136172939798522977303758476962056591953094572404007873361156287001598537583561289863065420130840907066547242654507227294787868223957689871663900171401376402285189237248430394117846508758072407319025066866119708054136755574797148768482289954926477734871859417548970531195431461946278445256899494614301546676992424375502509097163944929546179251828879105825524853774143046296425722263036801411527379378777304999247862908479597235556186129318192838169418021851676900357554593686808722106879823038543549603328089017096110034670592445464171108935751420065091262969939798630622983363987771554296475122605362469484167260396370887427071734096474053305993457664974685664808008183536708910511086751868559350486367599761330343956259556351300800263938739658097714682053740109195313384916726968565921538603246484134590934023473526861069154065884001396994447006346463588018159554952101651705623098614974960440047728523426451915746899256510333567808563862352933635504634373596146932411573951700308836181093561182659129075002298497672989939809489584574109820375236784223050904136533186059032926247016703026831650845693086623795224467539494371313595099223707504061986800766215467129337775205996258614748380589946030072398495301255716182237190776053086704902988502984583320854017305531818355869369797370448287433842468448537660193709976285079874803466515645862290603491569295250906814650937576059687822699265392129476735193711534255977987542258731293662426312570158596371153195660411597009228736802734287511784186756443853467451557381492748796967346596515705893432143794387114040045428625891662085907572721218293493416742624126738035226047620843286858259159525271639769735279816343172486704482178760187448544609366153908171433093064919013340964362322197451432931205224243459817634574202971934429402215594045132842979305455465748424270167728291049827817393682533031243734787227182934214996186461963789836513684263941346193418749805911245363008550053103900559152778382022235020000681870244743672998258005968929249002241820547787311235859856557588662410313619007213692148549146072359494711268727010784780461079380048865257964473256450388280257850813527072868892699248265494551822380888935515263747423842147382041524466672863118801874433540068440603727481787554177624577724579711505855294013189127626643758915637086855772304748527375157097947552881412110171010592729926822939121808287843524722909393987062195878717066970439673653847147144283692512282867282746806729243136294311713074463913980772741095044978613037182309637263910229383215598194635712687835314512354866868407727766204655674993379870929886266328466187779979981667994284446228905250178472640383135848274268747110542504385969784110019501757865899028769173689413806820775178276399502214767279661091122621657364093271056369461325218836215590540831910831109282913320014525747810115033485299667390159920931349230030370843827172962469098255433394867864574441196905882369951894899409202220779455954341020756369070970959656667299443146138793250621370357329087517148718080471472193334454463765903914671759931058042472360340177066753361035713065012669898663400248284977889678694709994131670839772793977085498884827624185575535828523183500539241529810847386066571247380956097699938609976272637050780538853088157712743357311100994610235382449744934159494691540018165502066470745691665750082303660129873313860098838150518535660185949600914581733642089253715053457075394793021334220442121894835414887063144663586218825987475156779998217660986236522232770554090111138062839944002031037263880591003603033561145240186149547029669909855044166500455119500355384628330866030010635004905739383795932344446847583274998226560600067042688894361342678974551875389302746844236862731474645415008893945926600460782276154647256010176835596656680764207612323539351036292332864150888743054831387473044894675942478664907243299052735204170531620492369200846928786843403391618282466443764147162295389641523001758329439695764444421855657923576688087622361058656567255943043648800952754696724011003464082441941898808071032380085505368353135600939874195585313211605785228735081830279170622726030438688299500821052621439131539297848879334969357446818315657161359901754307715284736865224240946870221534907111971788209657978772763969982413370231014193754074621166636862377652278415465024869838461219649496385649858937727854692218845082784646505786238039334698514255675706728066470345790923775642503933371637742236926299612918627685364451885958884052932712890000456204955137678717936195206710650204031935349604140816882460784186275863059814088988736021737692747283139588384607532672007796902696454419817540059224527262863857427197869099242462900771351733632285215297433990340821637210991666523281376181863350996294237773120440692694257053982318502818060633424964121661421937050952531648360983697811888386201963024872292980506841566149188540782230574903950202847146835286467049569238106309361060953780690214422526803900701766868534200943619061464585799791272721943953574509558422322307123224731177938314731901726145699898285949595585893977804298200159040452551809836271514966971280799315955703465281744456337809831191676219743294538682755408896640704303375357154509643962140275200172373877196086809279293237359972770472856166206941032918210027485967748439300805280584809579275896895299560879033722331608428835247024720270481002401988063842992535490269342471307765136181303854936466717309709386227955970547292824420969286982989017865352611240109814430800004657242455508532831553973927491476847816041028593771326698778968978806449024562205473093081423612329898964187651036692123518260401632144796185638884416972160405362107539746835752626727663344932656254389774707172046746588297123194643307624684357772060359141390069019488951825412594921323532686365841170053992069590643479627955422790791947126301972528826947057060665992257638169572970673520826907348725248554839792354043064633884632968027327850723596387385030177679845944268318185963211141942016027877200852023523677180577949506612062298078748739891879003204681744967021377801744976943331252352073766594364568039561747913037179739408429865065899121709776809476022497852777367104062150056572490110124716802183824053809896920820566413369058041739070201867808501398813353423822822991621240148485332115094462079137262094555493400530531534508050009298748726214278073080091121511494797374939220601104209138899287720291121494843324639592826858567005881986491309249900017443518552419079008294599033390761535386072516388316157360847921112912325549515022219809370311432498662760772846350744591877057328771237334296381821268945044927289291642967377765690594391878785771310437711069102492348279213518597778610093686544623433798254637901200767108853062928849457938204164610684323337575806642806120933957306545349278694519245738196064893764111241473699975137157568591934877853392432479881190361877610112484046218928900031201442682135095871121389231382673220723768555443164056525199744445835448586644282673407802741451658258380720800184991223996403962965032848053315338996667280176826744309568274726868188363769073495395062230507246195286210288699104392180206898697293191367340669304534254789001274745057538443222937622224681750312040196245693343600741881906990356476321299352635210198956265808199966825757420055071995911695028428520318602784984662442371181012260159638269099115136721635384439944066592392203156749426230185385606128278703127239152312252980650006416456959049054848877907527689254789460772925010767099319425029596126125533891858258222092272581305921882197991046185710701399547506287943389777614848749659076803461751466871191330340860639766514880354389225190501814562469745106589997518340503591817768541586863563631415551945616656259890942137159600260920385522410071954116265489632847605951909209125984485786090979633888594398993828413068378838758386502987721442095878374680124348984266150791335666789867176986216291463624161053389118881399856566773059006617975034324630095678124621650018237416264820904023220221834442835922410078240819263547559947797763217023871847840502025565449796042178655518656486139314226918971198947571034576564452045494809609262779455120596765505740643346457416322426887798569051488578740694791495936396323036554305452013916298820896155363540606276684019087922864395823098088408235262085336577771003763658048658182638850314737848131049796724602452554021510309041398283014290391413043369300991742543756904703860581354520886567141175219649205896705387790971560857487995469362454359999903177021208477473119316963885591079854872504208438631358805823735601671087360727838155244311669871815304415124309526395068713300479024048485931869256899098968318434778562787276200419288814162023995721520654659401480803197149786202813069955084931677707166050234071007207545800042332785110861893633670512914397896282778629411009056923464841644882788520271950147490353836648572843323314643948884431104932262206387409731315981301773207313068176833848474168762776407853343822807329526265757152374227831663487919267811045243949278376040751982498905140453075377818554426992761080562299354607824622092903475981310215604893341627559711994251259097196627053928097338545876228064223153904976470494057301883181970420261162729058095134797669353664065731435417847430688703206006182001316855600788154212478055375826043316341178608735249381314162545028657623911758844723299120822285326600017936734035506799506474275665479113307198639594516524334061699085542659053707685201820577748778404519263128601304659596289675055988366752165199363923271127548928568630320782400401423062299863883133271345557321781309792140639118961090961984228937071996614154923210273246560288249451855553974839426372067638155041137023494465790589714286328240315308522421008648743660536033780682980958437684529831174167811889327885747546536868144355681734973654940530038396969631060934946274199601583664003538031928156720164906474953484426572649652646094938692857583587713379693091446072151029903392147525143673208703515702795592738150756752156387876797384762145216991720770189693658873882017987003410646395389022440465776974156506876320571864817216866021859150733918316242536725916516761641597855151901519748296939382320163030313569765200657234085876769075099717529845414313571013127337663399864277997641056030792838071535124761535724318946758712550208744044173751408429274589431267010612632261553839052739811707842819530724405495241084619779761393967417387771895682833437905024533783377150273674117981577868537503219912252651692657927379796216495129602940547816525688836235386504351331664143285328775503784456696964642879465735092127984618147823167607214745945712878676810573369106425330585316187676471584997120941271887953894340065180589414543555876727254217306978406236717322925803381718935546662294604561351320468247382146582354696983414377059569431841626196501233919449595392208214887226500343547316859150385263182527019532862948317172167396211218172006458559529367132537810707551276688334324404780628341120702250491664088374721441109258408629965272562544367319704856451730591606759877672905494926952524804467898551619021130627629165785725086046204198218454769439899171714751759283541057873219109475293518607823835173204137738184036149457070346023953898603793717985862484476419396790626983736172488605238907399910286211692314364773889267891906787361161834680478394918712111414068691498552764349594318414998263493074736907040941786881468846233023714361239995047423739468669284180073346058363050045561947860415861757989270167401233578926254682189525596478657076548798457301557166534247798029135621456543946029353073000446051985286193920202010465614045396822864282072517132436064402846842222787946582346334547014986933435373358514312758117603914998551505402132789127203770105315635293660382210018819438449876189260923634965055116691571197061851611550131264991606042957751788788847227926348544954862207675804059443337037624106447611773885069060381136665771457111238640603016227654387356538386582496793280045650519491458652489863939691608091153378867008531972874540255452205200004784861031980723391593780099201102530336574779600614797797819735888162282714193058615936018366358595256516970329483976786995635584938277469602660651616254708139942357217364277804783634167921026295500289942934445599055153329378070526242658169261557348128165699021491939421229261575332853759802039764798933968360513377457658952897783294046348806273757881371995587460280972603439518101543983820990481918322776462371969356379348784489289962764780407185078502128855211755046687272378916876130372960082683691886470799471320217414352181075441480277637304641864621863957323184297688103282064162504735897715825170585779767519544907932932209752080267644179203876758250605850370985642781843800972404578526126225610948479955240676765437633719868892113576094490803992023295823204820854665756481975076984005663096103797581045675554080558003043448602360862358175814325222937351641172164884973325980356092390056882071617064397373598816747780937391002423217931637106207085343148999626837229039994282708731724859466153566662801672693836876420669607714856978232373245879420878440000824309182633890887552154101905583261422741590354862664048971041765577860565140285032984939696309496301959891934696660402350850888722392667195031588614450282784133015616199184414229445050353781555263854482829805071445994504432515637127589961243765016898847500902450610297847771415899508747015591296166363123865778867419835157441468922776398847380670362503043345329938376104290812822707557826980054263615435475289895321118187984396279410605748306684352399429806142883699448705124511852260022808037351869026170198970257207489474888267265400450035017884872448336196660016003153373109030531129164657862900867321881264622419738984862873480236105716597277793826015291977742502826773064030650076308188267087891520850021598311293961669353517836298579022244855731322163557379588806246643971899401127823524952378175209213454327233304266473940790894796477247922860867082587934153010316909997990920371554299562614560136765985640995521906354709928361354258869954800476560818644179277273601552448642793097152185789527521084927769620890823992344602705058638471355560126605193460218141959474858686887000488394843901281786975589723977647431309607148710743003821823311872371726620592421026249533220375963469390552789411622679783311794102653615181166736042300608722244254729870390221140758228102831557464733815783259478734253351237617941935844394400244488018486578995585399975383802611432379601321162979410466591341896169658165620587630574974791620472501718279465784371769370855146350332052530654170081217513585507703898407966343323876567922288347808452618512732608501149606056097611789300195974317151163096982343045380016715200199101441741568447718001891000668730609099638669546026945515521977714304111562546792902432112217389552977606409210587958879108464156892376341875256408698222933925306273448260762357951238702674015467085342855674216438595429707961605286452703966551814500161006680902732941418092322145847925307103157342620392012195651058931734694073143013040840582289406486218314195800538108749860827427824206803924361180025456033661219092196637502405896193452420470002056118885037335447085027908877197157309872250287567193694888052528863599677717592683077231019274191165917077667397838997314373450797284590908959220003125245698870099353200863662421704430993391061867760085625578972692768059738868219564808267218636392684142292798597475136884179199657789344372734898358056851020389847425740008538544942721815901774426089715981422840786211119308925940408871339498264139133803000150572366074070769312511421457922508912159352829737609480701491801442078659751440010550055872850746565071143270831248427219538411407746221369141474214361019442154508329886730954470433517537668879167941015184923185057800343733279846520694007702650979510129489529029975491095044358066686750763815412299087603762855986465492925891511509727868104931609507116354309334058372632296163006804900762103103173346125587229527058156147363726403882002536299520395028569608553090013771502321774783771375111049958451071004879598835019206503659631029150639134931878455922040012516146335709081182311010086102872686543689657752435709358733839297618955202447630727029533865157589893965013425291398745987585521032718424046938498356443110450265127940906031744297595203687699563544458772412725192621197834818270225273667747590906274063691286739250209285761373752586908419774801898400194821028901255361782340415665934879579211859423027259023954508193294534406307042626402774524646221688684179320453992235932535638383173050699405580656182470715325142491466207306825283466492616205101234978225187819020311321159066151723758621692016632796837723241157331473120184124909728194240216620890186898736887120774973311463846515497853886736807624768731745071133685228365763615070143287200322446848013910219330796139378902274765096817915973557819058341327761765570144406110613155974082144988289470726179972332311321243148541011226132814440831115229193280342987376032067780919194455749827503966730471849149476757245262794386873314371120814595216509466838711890443250225064995396653738014336003751034213169329164003471178157566390914262327920695726237808697538742607711912333690771814985647417441112117607763704624043658017076193124924288926647917261513023775505138849779189192120015168500834014686898053689529454351096491057072454849389571901289854948351420083983552295289708361919735410875273987730955467243211361271218374811428030699075048421392936267427424017883932611079690245520135825341985333653340666262724500553500238773984562745112032938004582074693764468064612163828261157696035778106059113543067037997355325063446613973355008295466624144665306575283640393935309482567483791975796853983075230936937044662308940974180597814745609220723765053860390878077968510097731555063973123714402655430910553407729001693749904377602090625515993366874226666817050284282044361453033550159655953614807458774859032079733317719324941646767633366860352166281291401478221071601336051319259796531750127764334513194361947864158706456737334240333131519051196088980033368807696667396488833901573891703659452209049996551748595810203527834496832663997975365007705951442587571085863615813113638074905270731782921008311841709593987149043089827850130347165079058486296376921081153536942213650284255516135363381561145921160332213009268015799583625304720017472914273824844563460130062917903153124408375771551606546404119067332551623935117918236599711208200417453823538309485979934513974798109941407503350935428930157906256278297367899924015080899073251642134327709731866655447392567835807032214859810268389462176902493890846709124550607364778937194282751699966528329223822016461014595148002607428782318604984069776096041173200394512385056953107381118147657053568819807142706806710813951278588949352247153714870898175832571610732460789919815878760072727153264425491373429586929365581608673916459020910388926578543577242269648254682790326389480126143373064468229364847277699365874271929917963957315949477968180533570460533742342911226837869360936774300356110406724953604105076486327556292182442764358280432089594706232282149115723926026383717404598741046679328329225962383135815502156555769978646745565969203252036050694249011477611915596968875677190674934692505825040303789356516547920796216289715821720080256650624865900650029668096020318164401703228537802434626165649203669630320524339675888365852410911001609644743920331291270072482697021082965204906525994699608279839954238234576034367683443610185350191913175484269538862499022547574014372783240401217675008605208927985158438145223182213369467695146216697722285276860853425389867804533946076583037319233463152459240578741430222033442098441212045318584719621391682684298177372964824489991424921892681269952544604933282756179477397826438393933731665257688167120431300585131590985740731126409321316716765432710838694133795046180008807514087060150651942402653526029587846387371606719643857510775663452679468763962936318337923212881295857658150199759370975914119109673738766835490739956942550179197545821887574249349654845131660282010313621105345968974447183216369624573822724383023748810938753656460633629015155237003983988940004441842940339260339979951877083142897610980054894245025389341583262759551696891057083701976285731722688311766558180100709364220222328255597002820191388775033271441254517214723806608501576729243576491287434360181461152921874832702234745218933699194316110939728156002831930375368065697853672561888675996212338168802640458251928653690647045259674438592367660985958562617121067252002834828392959222399407149848927588005901226695894320676622344970845304163469010607135441786830983029770200329112913385763565681192018745795827719798410545829646677004156870551464446611207721784750779392895593893228664997816245326468683024077261992826746439510855599707294753597580929363419051791951148827111795230150225163997884700676402041486045926688420559496883694812807378223225568488320843872727562284572277212082504448562707583755296516773308214158047561470757867859285678834806788050578037945491776138172206010409564530676977206247878660545578289176408928805995208891019026814789930977930342306864046122603323995397439906550236271374751381571343230331228612005918309707097127631854916452578374155029411351371472569432769188746233337741045826897884010399632146075508961753764429441354468817465778079165765230787139039383827975564309290143989804344203610342808768635019108304846298757007448470797991433516096196600911155719830065452171635705861918065530574377228053847400139786762334293020487878767323040837128889476502483579181083083947556348401477727822408404656598853942833203641060611581687007573499361300880120243227314163817265931270084561364224275879727138994400750374535627966434720493811107325833227104420916296759897097934007709888273356182997749326122579931901169357345252456963609159691570449208281989096522380852567773166747849303293046521799688351533397916228751605895849765503946377936225882320579054971877299921010566220366375865131290998171976929783801023054236155163174234121931732448135141792843168016430193938248352592238874298277664613721105732821271713185734010300285270591652804058611503996871762244098923466627863791745568671004336376270630538759761740629698052952327068198571669132204182784420939490387441868430361662202783194820801874110094978337052672182787221771898954182651110150701284472066459888559771363260476586702428963078981236428687330258311028332166791482858933112438352273206864539433027360143845884127100204674302502633254868058126498308658186286241186794130396922151207024044723072375924060742725124689970845077225896194973988821263153603426180992993653827273388058957280191140439563462245313588774157431702663909166195213999364238461803275265778995029099903558355817073134007718239565286775828142448144391257566610875647343649105494299578636207189292820642411179177523684796924051518687179066653894541431695312855422037147560305014776054748350056438610206241495854882862697636229510342299747078325624963592518598166258222009469167954597358389704235038881350110523692970680515343474740120135669569898261610792245143525233962068185005588542282390761155992102250433406586448991211057005716284768765623002779144334084681222745916948238370464232552695902971071759287481858334293551985340219350711586125710029843218887810331134057417723057568620429715559670484179461447884302976628406330439690851692837843867322724456386966487923776086806816958421612865248562464971424914400231074054495045578176476310014135816085460545815722667884599871003276578835165401776595174452061436384380066689792878747249814073466111017525512365916718210814620093562580239034831475996820130888123906077020004064404957272789995471286791480585786283706175819719849838972599423336158844963319640556567671221612265648552699906020416867829519420300322060513070455981474820528323626537058713227094831217306394890895749179279843528586512702240309118104934482351664386901987943199923790947801265810059003792282253570655273608581410392714897266002588124528200208101946525751773205614741726066760285739010638840364240359004807560722802135776789890996731133450234853012410336456937505864335363710379354581806254792491644736994863511564113369206922250035438810085907326236748809537902515115307481371564934955525678602525337625856056114147468150931845449565139066609685687831651046384300987778067523339847571718565807286480341888613206906897765311148474239009875893310915561804495025223024106481216939307331970359625961043096586668918858280196499688538166945735650357424406360906063166583261218372230890580657628067244493112238942944656546684371118336877001627736673600499064942705190087010819583693399343936286798561917547657218369099699594158163951125743612399785307475555280535078844111659819640455706206347289419127509244839917160023469998706240266779031012053999762913550890206745051968657917331519786931855165747526705592789470893098195719544111471981002564820419172505355149137889729212184198841730731853660197576007610202491758742108347134373169757645502624181991120488403942189738247442637580233517647468206946292024828462516173574283707552295159278837616182568185848469199677520530550003048544543435094279178482486310459709901170559691113241203683937820177007602519180215470022776532529178415347766208394068017947508611789925173274236982324860195734848600465393274485414770966186673088188170916173751372953127994946112740596952632333874132826920796886370872575587299456205577225446000208763157279851629216935759871033640623231798534581876377790996714912231691951497860602829955407597415537182409873529227057662215018351691869028341217630244871313002906426780493169855804157353925039106774978654957712335090926241331575890690777536421448577164083644510757086186781596433113855582691250554235813672228449870817158941301096099692840528128811994812154792402000398098525033377805211016868827306747977238413144125478950834055633889147474797163198506015360605460284724528367323667381966646976676801134675430106250862301393701485906415082820283190077585605554971294365355456528709939102492827733734403126500962736869435367352654904564628195231825826935880458811270356086048536764425344556187630627399203880994717943673759834750230149466361795837831422549394147182245235501517848450767736243319875695589242220873814439302513418907763973355103121321661319802323386554270771392141437520604420635151302930325831435774695195752301776437104893919335768465875556615012399237311925410738243512829856556257321402640359455318826740424674647299072624276448110449946123540696175648031514789804684675525634635993799478209019031376902519181564865157686083607366512417574843516992159276526415090624152172329467960717603216321524853757409241429786571660675081944252663079760755103048805758929991564267125032462884678711871193098881323947100445671264909864847555075149437045206764112339868943279550337574110788770882265963003578083147333322662664718973668091765752534162380506962926903498047648380073839382827995977138131331545742466235841069231624540553373849703283162715635595272607940949214241456842908757391289104126043051674076658854540143969421524855671139243877666794599881495130074421809112416142961732905995817366908790175329598208051504334335909385300943563177119608127350423113403861988359548224881304317036630819700302020113854882805517228613665144402264812656918547517227953462233367202213658228261276593741678241840229245208687423718346311253985007423172036113295676008962410973852234835132815511839364964732615358924331660970498407270978771155258132190185465322282960176250364707764580030536685759428743469150619326882341234414759387934062047866989763911697998034322054315584480215348790877645515603018963438790094920556906440964234875480557295453704074441267592697823940012554698915693113086465244070494942929398651851321729693612835474493859969917113625047761513583417409650575493073093954147937990998988489576208015051094119661435604948347667195361957948457596590071567677987667984732493522047956054431798572820107330867124114316145245644889544281060037839269567587026852491039479810819860195608099456058861933196609367297769538820586027587367788017964798140997899268175874696962363376718276630410575455095892083807958300795355990928949827935523534770575952010558024050074139388809288261029941232895005109659577815340681203981749580544345580062441726042007815347912513996590509372756936185607706142995863581310484700412576482898281304729659500003049412834177110956032111212768659526393087792025481578142616334972723437089026441937907919230952005000698121020010346441007469741235719225252460512708102021465095384685224101910475530041369448075575892778459603492894294541963227337474354035350189260011326811487345937984662675485394591516689395273620244954258488287049661971897044933951773419227302820322915003850481542068216384031141206014859853659515695508639312434275366219675545994923410089125343821485493298132773224430180097991965769495641797075295621215640647180730104928335506948571416389694266023322374872317370183233579146785525919274837581144030961213944313093339076633254302930832975235035229382207755791453136090580423365903638155064727579476646422009907856648256781835512036080807333149895035741341013788265633382902740268650237331570976915364091171316003829945364773529217656802636669499269460386782997157656188079312579979970157438299513355534741480034807284918792230419905220454514437579057948184264972060947266356613271049175320426245776877687822448037257817132701446315548882876188563551499065735269416591877719139615259257901925621923739816638275315202824384408713526869450110854565808800204665251529133455571241003541033617917765381917575150425676560266762891898958943211533007445057381401369921900024632555058352213171128256136615996594092153915768642743090310902287279036178395825077911745496722263034898606053637206041533455655390196595969559411640312798041325867572213657808335387202260706655049185939058430826985639888130807667978296485413558002064877511074521671996069567121403197411687203933151733865769197971855698184221140312364480555004573355008611479860242488035422703559556465591248923646867089027087184188919906317673944476012893828066960629989618566088054018989358078421091758424373526716495460425898461374483871148250084600357658539923137562727304278123557109590314840306827092791435097474499993431119894827842589249217181280461252451462657701013688520041223428417712466696213369772108432615427604254538933028332134020850945526558277873917954359095817265083646765019314640302361541834210145859084287727550758674504221893134225253281640194282588354596520464787859190278400967176706597846946525846982300304874821440809355072703260860185813738185022334946812128669443950475860251246461233888425131421103176609291967894064746241306782492849087639274599447749376766132791906023753424260124134321374142375045569941069599985650706045962951550749040799583102157729732393860949883654299080989948459944201934708823619058448382213817507313654531564410477805475552741362773955179535752375869135083860352851002998743000071181343896219297114916438280281057385928077627419069754104317136376304391996362477366591930994588041905973561653985503829992135258921739410854559526053973351408483668104814558819030952451001121525000970281949951577413723458472131256190551305104545533963411327272705677806475490614789802019530280299868127885576489790638964317935447924306545404774353730487933875757189955383088937084702469062483181916332686917385778441816755412211565095430214806847682512299001546116096027893982601850653394699894541940275230607354178962955322703038644118255933690061471496327296941513670089479412064761145875752153360486829785942256241893280064753015186288290423162309622323576529606359252054216440365805352372871797333038455483428860762672467610815893264521061070398969395162659627047682790460062746000720011448314298405430024204208069581073961023079908072112238194459509294295543996224210714808011755861119539610905744922899667978055908449124261008857100904771110605161498798025797621166556516164130718213975930750067923865796819814303080196307849426077125190781814926428378908168710895788616541228036315565346249118943793387456706108667768393146382437201144755608145758106600354679918584563306893003237050980926335911775189488203731513847146948693351130294556213956012125875108040850036468664797410096661062415139696308019925088534192922275035553516289725507043272552545845279800722048498554968637899910269562661958507821053472703473266127469597968542867224490348079691916121725039908184726236374483611873244271990488823260022084556320457884877121680677725300910438081015814059218422076194284124282807361275279206010473979445283186375586509008934734949501679710376426344814749701226932642622954768809011144336166519676537310256845531114754356609220137007622485210383816547439319374071533350956215268389584960788286941159959792140501770910366962105396731166195347676764963987344723528345564390677439629073584317241974293294400501290997336185790557410342639332238726858267008513827989739664050090181602998816329971662594840096207260094399002069476655588766875654703643555643798622194668092262751093955515177290024245495902316944487445313918925191329339075052722515446014334741893823352213420186941455104794826484399709472228976630081797247686330259056860977642321877988492178627309470584627940447380194292308500629746247610346143956345812652956214969353798153313652653399987638023238792086004244829741299912998255076053178732935250794966178940216994260058994623535443021839344302856167301077855088288927134218806551124433680142071326374690436035063626214910060326862140430619471176543137984898715972075384382136946828381967044713320677145487361262794638964755347434592075405985696173427050464441250864080875147921916150470144207585078069592990752970988073095565730379122451047427018046410193692085198331934048594220127665184051262120388772144043035142723685798003982192045909667770600407268717676872057143869972112673132403560555433661116052232090186611933646049075873734383127651778792034629095887601569702544998972506430799528143142328920515148158163859298102415043174735129533838524589161533252903244862405247650023917587901553345359348298463180203856192034663824659335310369428250538263498290746895276531587043375631273457991362690863327214008979252152156990928255777658936154615443657486685785567867887006247716398101643930982016246254785571068707183086182352436127814602034571507181791488244562816293598569705734075716977878884160944402471565266401853397728858644733615887216297242462257497723514705879862521123787406214840639993077935036960518749229979816976311582990169668917868015089792145310247339662451843453604111948530068347303078151625442096561836525425611430092900880447918893903491472514964154562592000559696335483147139251975707221447722824219532546225563586298260801673910552270710000094645141090335569221428457773382977003730370662552448777519147373622738694491383915735081016993743383735368654787968346509871347796366298172045372131664248031106390649336133978676681653249803711889021730871449496378339684602976918329485666493514082146324976997628668303358002379681274187292272924218031064907862764415086923363750600495129298909327792144383264948939930022615621657002405372023390839884571764098211722754983493051623628576033952714506529748130752063570252493919070046367082015193338165917356427851443559843014983610126781402406309958486916612693271187729549155698651150646582009577597499887696197740747349361783120114736081666363494793631548341569126655262720085953563024479080800762074155068806852911200412550362919723322945223874897027916874626250251229393851445044727503833409750154052700618895008503180823905005669673609428049181346140767528004147944159140584641507100500528066291338831398814691249611337435278883489666012260764291856617501163269370065487002880972832857705650385539607114588897798295777660894453358349721539088924670594953388917214360879435703947530926139297258289877097731841598395779180533797840858906677659271879925118142538984194643028914948218038396488305642770003777469493976227759572029838061980312433673007995051832898632474847051422958469600080942105819214985381641420995220613462826902908637400341584538718692132806592684893079140727704111291536526348335353016818285098221515569816515480724141321217268877469889494606419691641721657884340208983533131730059262312425146480297018314210300737876508308202303250847794219458645311182887932727553496574307619165666823441971311585214526763501248995655047719417810610981143578758587091703362221893262345007353156241398117328011206266136957140935269149977634276151696169920703561875683234196764519038515362033059362486672360608674057872516451757110637393163373180316548652395425268565011438598422298810476415619668781958977505048667064353252423113364202174770924896016648256860910886032240533890897341760394853350843246413608738985931106165565817768332455797534705280269592472832116323897181771395847118045579553972873073703494169635117686872468649014331520064249831992941774233119858753104369084553545330419330435877459507736770763845024815254875532570941197389926973143619062299936692110213435159624302767688477233985878148142486235214100180335896388008747204063789976319470384107969070591604626964504030894359412354203113496126569000258969981570555654935720772759494199743164033766991212273087034405321242930073458338198668817190337149724955213822797527568466192636872125402913811213446165182940329719335287073679769380663306631182936831590246486197386746795142945096991619178585460639128006121107337157338607786192200824530980949923960367025635676374477020269157222737107092105202250097229738307154617107774360091874495390479122819082534345559101415863282729516777295557235039725633267418600971826378543731053494580885945243580476613644995373686767626362188457892730591061488270595924108851542620484922547301947334078779127509823684031381919376656329825609656610752299169293593265516561401880294590559360086308868824287650637010683197720407411373084118273241885720649349394077521992525293091012706584816806928008724408275690631687002662736301038757352706841330057523986341697274839960611588896909810596106313497774798954680260994737468743161098144070120245308956805199513227593580494898991704539308773228488960526661424791064706928520446574615140624241626966107926981120382755585737331421305126757493176190289323545702293400386172038837067597798403182291481180345289103728387745540543556414036706766267865431329864847323617402473139815522024137361246420466175961706707063291213002741544364354227012230102489137082618210799525778647213313990638842937414721550286332733845221192281211583105060553330942996482606462442289146245440818550381203322320032001318126348437735596572386719334245171629214348616802929302546650703479768398379628111254515723770683910488995158277203771092779839513252430864846233963368548069129007753575098450260743282710062075951770816753695500189471194367551818084310547754585169953435715561445927687104745975535796681759239077118287375138190079263926038559293221897463466538006934770688916369083290794324360008023674120274403228089613848630352082519852209502019018640626574341095230448934808617775161152325150839331616771958973852380397248052065532907887158573753722343596476476928856590397775907461820474372260892074869611149722129182121381029379906214426000788885078248594291789404321057659948963221093250750310698720404475876435149362396896028309897142425002181777617454820591745459022764768947727561683600072511605806562634974235430169045625227445139215403058370780922108099405466544483439166057602829734304455723756542630080083362821636205865596299744409318841197495299893116375522281182865735099934809916296545756789958357939730540670886479120504992471004146472729416329671375937907001896908246656846449782299409886737357429693019625301616677426920021974192268776615397463666966407466991080906465691236280338840618397273135198982439967529479246191731788087151399162774892528096962061927461192981621548446144117819578139076462591261165436042056868908122015353963821662694507027052290780777323325368603760811310616943766615699292700474948148357307265545202693238294257005337690909201894473389956251343020806654589028108427677820919691454535497948297502662940931917826213838015459562510369216278410562246262486346406437614964945404605762735786595395552496879773176163572017138559117306261077617652288249343117356991441488910961025457939582690320032876175980454744718879318348046818336558259364829783814588773336572787391681989525331677081593769707729037568519542030907045796733058597068531310075537898874650782155216672259245538469678473808322901405875457017575520713265601668279728029917323191055354305959659814676526194902276389858124504223606899941984241789389881512103423171370365580291644995365218471868946567734592668755093902811506263954424355648908534123653719548244326217815984035592747400565233898254210551667019221501430934338568236587675747670526737784207419237183202618582190351223653846127658855889406835777258960856658632613217994262798902017439097116834771172663654633925410447429218862267410221923097914301141829709837819967213419607295946595752560339081924079979819560502881098530163646549484149578258191661040495951514926734618223567778220663236878421260816745113152077623780562449683283049062178127644232291996873178691369870044487390859743423915381752291779657837696908946742421109683945437812559185163286604657384292200026827944844310350000334244318296859232893793376912366839888206531191659229436787765331232752199356257424486330991385723751060127086997567224652747298931292149726121579841034339056455892155823644523472469738075604766779786372318224405783201027363219120631493693602041865472273702030274574101490889111634230887955666207991563353552794628778382395429399183613400633895968631056482778290476595726196856538102205736151912538064497699630839062604941633334863976281860357943558513802954893462980906279091622706937885328674465380722802208620241739134735193438287418853770138282102710736123480021635527906103783087825071640407679139467335060799726801509177204878809812238942672365487494202021658308341001159354827962633246886364640519381606296540900690029888058301406794571016236529421676990613372634121820198416044983248414974280284275624221604568255515950173920731348193741558749830629259504197051260292473337758192933728733838464730304628351722215102713202746616312341606666807931783154427523675627444712574497250944976125292320522908711369140506317902385703541382962037419706443352926143044587960865370848776133758836054434727752323045138928234579666979893300630262016466540314616742912486522879937866934570739862520292253193512875352793146862430444591985576631848255030333808812447695561542413508848284816996195317273735820895636641259380130973652307992322140903882225180686200430797944728602057101663625704418695592283408613346159908507572541177964000417441430600399474965144682546655564815035162401397304860638932234357911986086715791396753100897681200703375267026133136082790742286530316849402281760329169731059153365318064330352253398348103123829527390174969368711198927058219488346086087917971888745787974456067053286707065989126077565518666520401745110641616709866178177604542663648634101902844559322156519976760876342522320476094476360655570166875232266210436284466314768764784097426238150098667811432487382620765117718438705174993142865674134819581990347041128394508011876484551368760246878747335931766929940656728323293263613528202071358853555350128244624024667156890112904125353475861594124901430081919299997033133149597667694168048228430194918803626472806822662910955295007270195646097184343521090659075271819027155305431486334274049107962328895615483853751095413637654780394338027833944353121728406274030738580219163642237645397350442374295885135174792105754093520469703210056460526771051173860268283576155894309948209762403372362636250557121434320328033240593092125431810125612122620189444180520868946826557566665690631040891437537260255703605897213914737782015739218725802720751099941495497434720675718313793439613999353002842314126214791096706216855247315534850545273330613566114622666811295388511956501158012617032334725037089802378089983019505004977368520481525137441378192522147395358207482868210654183081927690512659063374581117306485141685790361197622108335337540167587244010543811393667469749796439587099938749823037845592927118972066263270565117800614296434546282222548886536188907182979634101135827571817670972070252263923466566356721861940339401157938476100068154324530409777996695902832901103312666028059268658558360263213482725103633853219329475091050504609652616692089750006699385625436199873834947766486383440118987253656360704875412771237543838429906705083442389235630088211344091198494745129023237808654990772207903507180322241721934966708029016636027674789259359793254543400055443863975630254619233816443629892739957547116314614629112141023186822770888587910252611389940890811864898224272048812131901204300741409021806982862417046773911333224694015410126039267744750565241005522043581970523999688867947351960886513906365821300658093399033027435554218671325283031661300724104177331342940017553772503364131538466819305074910490385669523150546266558961136176588948240036621190430843414189330617155642392361901031028151629160116118351667263548379587528287652635299942361219716321574027612948688368332950468308800261757164283098138686185405264750646828196616904505661500020839790164799725836228280705488805098721455632821224083908492903279501436523652563161237908944322001645281480541771595294452349370986957812698970929724991498896438976625408777443573263085850636580355990588395556408771087416154854792571811207265100207243906611318754635111478307092348004485336766468197643187281503499507847370016573849920293984974210811366735973933411469290423639431784050455453323938296254095201011620191770131775340907500147367433955313027958589642824980002250363619534234580920526987668749806356288489073488968678783437546918553474800977859876563569150151603050082787391501298023031111933707213363724307897720487074901025938022138379820783191932370746988913595166014733991340294102814478719008484356841676303345793108961811474318733480383849943818443705938752368550111727127665644880123200717922948616004641552843316243506908502022871571273373367725268596530848643021880958722543167328131050428535909153790008426456530140963136758346272381699894335485803636932729069471927811693307061556002873523004006605656481318810862201608443993179120182241190323961372849966472909586151480755753204228198729634727526252499217762131159089530986601352835606186936698659382734194660724643920407933487335673080099529910150000476568987902907785995685648757279764572888153061602639266179835416242467465347001290807170718038116282536124450158024841819951793319301939784138243394779714259556522818224270372076138995085458901434213637367720743450009667071585324537750196937487994138960244452386503961336804211543743990783482613724332686372243479513197565359523730181828448553687148730653972491548012820672758022309347618426705214777293953245847011924707421805728141785098996200852238069247256820004481279020470307731316360956646573871705755354999288858364736890410747493996849164162657509476220297491322554570114521848301949975044833063825591695015511201265233064649409331381984555738047108738303667866470839571177921589972335688273306314394570233850314756603928447647130390983362068360534497558249776519226942110104956717084884711216817871727678538648352847640147260276870368843569571157899589145206159019619138853848786881395390322008562334165804708326789148082728635419302376780850629037634043240919479202889947778372873130293818549485763646227124417537190897926543214576562562679433887328509767102749910879584311834672452862523893465582261194647273452014399917972973065670805989442777563980130013469180391930193387162085389810084657270278394376312230293038675703681751333464304486689638586719453572486021311037141489008920575694368230288419018767842598788184931265483140000047197384664525381152121453340192792513778804340987523015718461263344601009356793081016223996453858259188407642313104627029194996185566187549509894068744500627811990259717467790202905008312363607124413586929266307798891719662766316250537843460830973942506447025489056593521461254351567013078678784311652143469982114629862339280678205153823097683341055356211338097079861114449691168567484809897687559098476653285965348933081163441552492053748698221215713929398895287323401820629022683624479741393194027871696053933275331653276728994768976287891691467535458880911471636106685830360571042092438782657152840199859892204289973881356385721122470954675257347870686783738301651607188353701891147653193241897462701431369066042095277085364513735547696331456802750035055123758284155736691680091708877990833432702378550453676549037566084242811036202909074665545674000790727735154904847531593590374905657879167840697654457356305516912136540710092045434270733226588543897855510209054822345527254507636797788897780166221087813035818200172187436453835536845104018800472380275474641654683000483040680997679352418859019377914099866315981585653648791712164527414921279909801111123512982562310187375812854767455785171411196826967876208613760422978252262852676685320116550735192761495639224120802587383291537928618415411862836429530848551369070237290729734566503009028182321247307517338456901838710527071815333087703287699252527485309697721212260057315485299433963749260467859431898150842810004262862629259366464804420703007811501374029414874874203518155469666696498294641713510869131373709395995352811300900766823552353483282318616281792481184000148371387479697158470803601965792513144102112042219035548744650709796842562936397252699272703455548380506215819019789727904604891847978140220639171534568234720735308580805331145349528191822003164191710588019092052433753477003006784313892179682428445534233094417215189602024223744948981205051660413827866911127474318625147852766101580257518926787970404650786215138665621052874948054210160558806311064498439563422884887933723889397430164300009595808742326026130307329058482635644165162722863862076518915009909186450799253161747807147112815875338924471052856531103335532582676544295468946674773814348364707490573737722393608041974231538122308758114933430397575779100645408550501693780425929375433276485154288508806949183095163245226303911763808922923110666383054536093767643392135809784242153035775575506013758380410505602847785013528533971546652377444769045227215682380769301393591365468742766299559436695478521613249291367916808914176853646823157717616495886527292548673897505847704778214963772775462039276598589641238423706682657704877426729203641226080719588352971299632449487929572903165753569915806455337997105498499376982516508370725209479080835560434552553442405057909213030765134031336417926371008358172098745430762176132153752505762087143355482329083901143742485717010734242873535116030374232993766038795709346548231018486331620986513080776536049266024010748037621433345958032621566450038692294176759480125658079092928350088213597163800279344560685696553032277985983037879440621048210659702660348894309774187080085304591527393608469307445362507763583916348314977311955671874238327306447828278479714882805030389233597507883815194923480477818778257928403318675070039289287622808816403357999453527912369448836874384403531174300291083230652777107213244210788136921029039832712839484947494588625585203246669746252460010071616025052252175393136338953373512239234063372473088163447609184153495097059162942840383438732653983766234461957683492184389413004815404406063925992124470733725661296733173098508354075945749874091761508692418503741719766125614249850947408086259174229783473887917369373086343260179544939475163789850587858854176618514289672431060611085497815226975465899257722765960047871167064068073679842737244370229022497572136112774943050881159866942851304147722450337343376572010165691128374949561574378910683942195299376909411375546308927247236354744983337433863585123787520454479430885141648771509170273750827763231748832250794713737106265482623142037514281469124511390304298779270327858846496144904494450975344001444480946958831118986742492058068595328493444645237744368280759719254683985957313190242583892290120803642678157993732878668909442182062317111697176282571000079150610590333670691899038214653330374579947397552723740978974901659937144781770943636136725340424850272235223005258337111936062082405365319007985853878115073303057101649920108597843383780329667518672929065046051259583462729686234144577005173845724432478440467220744889397625547469649354455050413499436283836021349201010834185015503371655833835831940937131764204924874372890319645500138254007225549383619234256122596862510439647685602071153454444673742318197661224256223555194230697047374508834569098490272612294174672426128650076155801002748850064900187833449003006356913321936386525318038161271683255608135800370412702798723979844490150423932077716496721470488183358586401611357698439458057280582054683617966254694761606114433543493435974597315543700652105795406187116191588929603727467937360111283214381129164712258556880752918507336369775427133430566482201264610919332922792542729299176753943339511893737945310645887653873707002691726038762894232722921054654062420350767597451470148331112037457095508149335852041772369001308530577231458338107490056763751865660514364787179044982723750351570456575198773762670055788941763071442609318905024255945732295526193482004990143433155399422998285923354005228637867432783426304560497624174989721624792467630391353775231035905459504258712479507991251964248246772538469273346936672545197460383275749770053696234691514769020235898329886789516689670604195508978349690848045981274451437848150007309064015696490616422721090266252691112341763174923293275359894108960170060536639282644949244606287366051471099393429830432462761407258084170174662968082961867276660562961291769253652322070040396858649179194315564504898697424518833204669981930876338457412738746274559623249200615670630711803326733158963082359291938734142848484784901264323627414588227270705297157856302216725358154627118853518766968043513838775957026022114109707055082802166837798148818055520217890654318141491999906000006761264344710267148289328530495735986776033601868300924321284289511500853408100359694483769717445731321460141992971945228328209295742647041687759914121465330024144787844579600633137094347073300614459861878533267229924436401923155463212786452963171946208837213783882011613825061245255299340915911096932233963459297608263510460593819441977811991613130848535004087941287609885306041482636504498234393090839302169385182674010658128055815360946199229382246146020400911465100092136248053433887681894363154694073204721082848570523279214271535340765439591075106269328520017400653644206322290716672785228191796199894180418758461232241180228934127683301100329733126526377455311260511344785793303921185464666433959251556442010108968122828104555738646445843855429175873739396001753363020843769568133672142883296152411383318740683963959092588976054220014280582906893299898611408814690288624342142532892875774748127591204975472446490560891421040197010280761144295341393810765561980337602062133567798762873739123965058259768759598163895643252432697066161509024865692367264840411228531669566269739561170279968727544285041862100822753636608871348010172343879646944403234169677101059548209224326301307423532618482737906234718911534753267963788668694449105836573082800972417753464402149278712503651739829594097111774403507727646009022585866624429773706753309117995394709028474476133699373893717027014680335036894130042635258614462081758718267349273327110967607034621929906953501669152675072249905861291471751107029879430673127960340606055016453880281872220027245506528108420022394067536483744796399264681752983309690749135557371742224226643477971323677674812780655072469079508791986645124076606110986999615610139536230654499283923346360415426223363244363711847409907179168915511396241549881575065169804479225472385616825878343951528467395503808199973574418841119075885395673687121840677683613390504417983710618326721888864411359184235505961251108436774668241972712278030855144769791206457998564428796625167086764237264262275734378777877827505885528367687636114955688318139561225810491773837443226361029350214436853547838722075028411438673660296473434993451816927654051236939445382861405377257136902877921627864165447020378183251328614697763110925242356227789067821106877437946639256139592595682581580058109251421123879356036846101629845611434149631755845520406416517684949888240866213025191352858786142134842245476172174717927979163846876882009472705742899797889066304108199365532738201236706209374862923327867186337318111310084957718707397681314266321278143262171246329512372021089416746362469054428197227297362310279542457141120413224050670166197467370735676965445346663211515974889571655997452678928028201827344234266326898240607531966268802775899956249571791708414433114396529992343639550564879238967383778793167906573420834090921997042007709472920483099521346888656275178236579022527677074204604933360664220794608575176406749085450053703929688923497928900511708081491978690059237530689310660601471794797317166000039831546065299060184649819693071842962807753935296109305565848044505931724060287704380130797376619121795487761789702299052586477516772904772279529406697662228555857955480950520129061610380306898073691479962520780131196668541881024161853565588353137782031695737620927198854114719293512777890294025873611005069655344064694346055452019663793717832717420795433065954349788194037405307654414816923566290771814008015362685036240154900158596183888385767081308784679581157265951069622209734161177250560197237018680074848972442512449338284871981700789271605948826026551425560890786634121244608829032188710992474973072716413867640108882159674440339716567707676068631456969080626877491171139193830706509474208606327068764218644877090103502923646001567353322060168010614606333266428663340117374476375164556474183232121609708768838876046061037966787604077287707480133783706163879220665612727123487206568722648567154130765203683698022263031068031363523199356580796449313661284471130010462489956522554649360632036202471699440369204850918080871838449291528909197003723940062125152917232808650142040707099803170361566802077164455602169541823008166105939591516855092551547054495963642576853023961367882605701692741269044844531939056560431620246254085700446789785810984710716869950800787274185691378657547934793076467177610846528705253921630704478088151197403062314486604332315007386645568687146497462590005050420711085996095170492779239424353451309618325398911423548785468187826488058868272423614491220149662745788437820014275383759641454294227613261788517005012792192131161685953727836283245240043865019229383334549089429565486285805803019248448350999576257015485814816679403572457231054382038067742381608471728850558504252476673845396352427788063682549764825470495317771713013866220091184465353100243018817623860967150639440877710205513138446076927669272590423538571146304031791722198422489965968763551026391266234871795401788777240759451626071793440014272660580970384674049771608870869032228801964938252333356176749873923911396930279314536494831932514417371823549303429046073749738769519380697374842105054087316696378304918329253027726125757719991473107314773769234793757150701468324063349345252040260183616342006320551867343917417377465231651648618879435526681877854641269153362748239753965761490448742245648430645299029382248512300676267433134756368208679477669361134936085297912405793822550600340321324205590146556271259170074890286214775272943561193763600640223757524053496477220084758840043914573386990437731952890736178160934711599688837135380521065375867381953781744074165429887644448531016847696785145232530123287133281766975537879516641182776502648054410417930168701946577137411838531539594205472552255152174246536885975733652010300873243073704390532662754416033413510326818211672479446329434159904146273475881136838755542065175993388718889729108682199363373263966471999951268116852067220678567720872493741659402315288128188289061216840560190785434255414528261894035551839272611179674977689496641135083627390679353540313090159937728581904621487928655618981992391823515968637853908252574777373855227154098608654687329199225654846306767484253293288285164910744173292986747638612531182494410143863613124077413215479617045835267307181543092780585284847016666620032457388829928034553449602167187613898437546587289868803944776176423548949100441049169629335793972133352854746562420885348202032617005553607886554416432456903574461576964193255734462010485302132593801208135541902688975497507995488007441194272532525814145512797788287945330242236025535175781502276621031291520815428885958920213676250937090737714451847592937047621163605196686413044915990692132297035742114321089739293106533393446531607557523356170515150221834954691995995820078083604359431556585289617348878319800249777614070977574838432176137038318662388247012009171925504114498592146922652550132621794307451452339072905780286909091237317764785869204241918536059955792746041552301269358427481849553448988849717899753536862526172834822139806314568974232529332398720143832756020038121437585667421413342155751185668841531301987948343491508306309711970060327648144423650822531780372461849654360338628259282383767230978684249857302311383822509443256354559120497614562610862705462602327807029056036239568567783972097856583043997161993445120010844504496778406779181445557095084454815361292442223821363046393701984118654706327201368052834918624495675692669630234030831147538335999137373410475954473276371297436745209487348992390961062158392253928367576531539229457649198545046860966701858172487389972879064468308908074893427714337823700414484439420987166996175757238885278452009726925319074055918792442465465162816934433637332122898743623485107088789039425140141379307407805228463373991495532785027473494702212759076263624574491914840561839814048705787230162879688862085851185702413613781451381813207165227947739736493589427941185626765434687025239267665263414099347021383043349833111431615726811357805508258959662720242640867640853567146752562664226536977141385087565682611325343146270069165362190120755775170368717540843082984234373979337532351872723053756757661222009236983782195562845426696556748993003189196176191352084214676265676546683230653279031279704301282694525848956379262179969603216417337073606303060645699879342421981126429022696329602302262985617068435475704335095414639503099924194957423248909967272341950520755564698534279527522478782240344146868711760914356652266952758599894822745705875134466735353453263752208350282872246333041879890429078361709384863653960119407630649510341946207041858084827426840668774289497652521417800831345025069280131883221287902909631915603021523822870836851561427725873781636090734652087554710034977428804539921073617664830597555368859722484379040874529191585479234570398919136931215929571600794680582681507003992132576136205197408672345712474022464703439633724723387034006445549826307475335227482491766471184457694798838164939914444102520239113246325259246393170049714983329427591739303978719021184716151538106892152730938297786133481559988680097599240549280015775041205922414490549612397796010464101985167234048249957923738368472505616939500342023114495290504552943391991053228690473656901178802553193712491957858987721908766082792197376378309876652599740767856281610057231089641612804953075889144058377758019139798674356689895645315804901707953126064543048167294394652413358706104070760837420049683430908517144054519923285371928019493195399623838551319514083786042050326620598670893704763670036492928409951688586962881858720111467124967157123112499487592600849022407650206169828180257765889612654964309271978942456996289083612325976405859994033089009149143962470748094894987517501975763359957703068912912936238398901843285717034441722811931388344016384541885581019566899452778111599227901007012136670543156111776351982502736501158750884635977039480567544433236016077711666693647335827893103406198053191302577018969168976707772007216000167723800660212258102925641645230512949003907424623896292091754485932088318201449377804679238173886203993112386454907381106857457697703128272534923380995604346712326066688935592636970911853097863548414329840998087071370929221913941343361448663753436094031294848257641451295685637272650742563841517808056387218973467398706608289689725566493893699842150026161026597228334245038585729420870037486732720519587432967102583846299156224312358651157901071627986994257746661589839304777620796414645372033876580245581181790955026508891411346289566077259779070549038237132393659149382288668108865654474778381401331003142874911255927590058889309597249751253888437698975948253427909442824097232447999607583576867152789372910664280593420748111100380149340293053910873134502761977650963182490852444608365465958393548439674271898716144634390357811892207724031649369011735260757947930996731654517000317865927729181313125983347188376652706222658116163615120126640273843429860073751713751731802704412469483359395604842376382084950736898527353428580051930982204556819163507310527578709807001620193880377428576708367535192393193271604563061368721830026559161311117692858312695032069427702897070582370735603051996435923572582399420796705361778626553381190281149438416853713241868762674746287259746063899763722461044087957584056700530437550643842469922330719537525210966820935333412883892302834928601474409056918012642716875780908225611652202626418587691462774599405822610639508848395768549575903200013659735901217017099417246234943868474178380070136695667971017772658352361965253868978440068657107696542668005007986495021993365244868852682311220208850436338817668065506405711389303380645695659271830380775281686063519654464569340729120929326311217648629909451287343913635339586404029023479538351567074284076844281373620430537264216903381717956816758542437751614449174215976644202442974301459610141037561458289513380268336622149852966816673527756949090468261951393264884416265341583762853987286713229575314430534980880195577061965677485184477298487391480418919505332498518353303467218297070815563255551369178464591724066901852877593114072089033013562857847888758770334983389115609598271895911812168233577795758680162628038865676747589574376727236033616880867741039333857170838212930394845367834690242225242340927799415218117696030499659230447982267782828200392931317966947291338565683134227922966774283808553519917405153536688962696557651684803587031915938690355880501155509164904345070114200707523207087391551728083381466283454019861552466045623608869525447854659095998046091941305156290569324621005010176882645997509157531215630401563824622085812827969639327309728230722760078604416184543288146459020228855927828404826878728400127693931887500805289306249118688684278252232179349234794182383778897549533601432079905047507098957931270378066368201288680296711551743450373021089603359811576734519952900647170416872703050322350082437262395643620632257441206855559878570232551601607577842540081718906482380711514053956883527328603118689382488451495020330949801261329609157556754424532230985667971322709168396591889205701478368601196352637854462165336671855114213058299005650672239495043463078673913967498369689520245464492027639369706055903878301598463711473282301190470275199207622646172373408498247216916000360369476674048622931957875905212488846324996506512180041538149177834275927495048031789547710162455797665598914421259895687572984533906276263741500816323175925192279827422817108491565840225435081907157507415131684874687958677545882324178235574574980874974992642530986157951637233829622880352050306064420711511887280728577747114197149488637640972725515949121418996629271439322162723304070969606105527994806747593673035305612664621821731146763716450573677898423223775319384936789961397042155926599839413525756180420836088169222076370268516884106454714908983036212047182330275478753680564643597954785328744410086334336789709477241071129978563808052440167204356516107138116220814494605708479082745332429599250039598171431774826031120622742559223203262089109585427019996699358762934560401814537344380262495007074888150123850174788148059405687713596448126446371371971889850302785844554546150434039522719398182365241395186703545624224756258910319788481346150650191727726773595436447694076808659764913961083334564278986744363300541755056722437115245167137178270294096307185203672096566871988405939385361540257594977189924899287205182948896436665036297234196142334132679728777912519865181002215995885387376626722935662392320303932066740635515358830137033885552518494735697561026709403205083179428229782254153312527183047133917019792244821091171379677463286968067106795254882712195689817882250944406344315417998426391510276460437559046194937438165636689589446802138160907187444084110794751916699485496674294768860882261580384440196139837653359848139829208497541988933557608686000076527862628486606421089962932370983721819889712763126099776903735575145277837120781478739224470388834796875390379600998835145051241501484777498734374499499798527993393493555439752065945683672011921074317878213529071068643192449918124944501759184181008702255257817155540723296130131996001687968231230632953709814773626404985745775186769703571800559689018355510472930353714562914377994449874265978294358345971826416126865417971420209845097774783438750381027022757964239969733782172557081698895629045537395125168080668385448951182319420026065685700244641401302662519044774434935936377179514219501804326835344846328721198905966237336278118388228324284865967842429903241159127865204785788387881504276572893189909256477719364231795790886449580905614617725348224242271343152481615513574606963900085340215049800074873668916377404663757879596991665641166281355316968355677877451870790068052537451369623527396172011872205313106900105942695253629609410685780856743624456925742212470201325105219293548567829767832201660411465735139783069281406610673284127751327007425525298740390033425318979532215283439665573836625265423265769668337132793717876950328796482538825765751751170566739367889872035706094845422372943973683004410778487597126758503040907572905666258462815597624109971087063960035162496734932284738629509203272889342878631924672091029282042101835330894054459365087105150097088325820313330877133568175759008683930696126568291114387610326744599678534323753008046741902896223071785848747163368261627759978630974128085188676208830962319118158239359577542020875199337121131909823711751908902201749046879216022811275517441317106491230836418015531604817399632510273677159281278188019631589853572197289025666940858124149899444508353514790522043211921799660085529767226057549529262057222785673712681232719411253888907443210899742831212392325284186501303935745117377776454304057579121727547121439670346414071000412077226635330527375044077692806335873857340223903283666071184829183091933049001996039248752403556726809726005107825692381607542195114670307541999356313657048636763834814316863390688142092685021243190042245714901124485270494937595297878064468250565107408921777146572459790294740933006489243975283340809770214880375705713974779585697885660567744796555360538507665877157716107386980055351536542453390394031825274484490684533378341450910163952017528521134682493659279543035977188713642976304477554833517393029360805633435985476304680418032273724883677017674796342613794397305601961779618032856215572878150321443763757500817808828622339552384427548330889244332321190839565810629929349817816470597007017603012106100405940914932244437410799784336820586213114570952262490221709409550792257354571852113393571949420949935947759466499426389120271916064382969901804518979581321142582786626110249115069863951378991457672892602734446692014841887797234436215509944956768885819176355423820727476713873244697974306509592817604130357584792819462853926220142018739812063689518476953973390399078635914965676908076504976902200625966056464562879855559773013401693854993102728642609384845872504979217726775632991572469906162345237510931977517214796995880289933095202664779270971509509857903975834361309750995641075117165952781418061343751074174870172003870283276970343434516817234470923543107275432757412191103116520238357046186722155071117719694345306471200048159764326181650642211301533296741567471627502987045518262781521199523526856290464292177018501601393734870761567760509671190449218279530808359479110902162941287430114951222215575626873635946895352785137001136562513693662603038294225785878864794077408000794527060665576229399899704053957939063679381831087732117491170002891318947383097619790925990667742455573660804836818621898007519635160690011381096207570826031673808755647034230839421986897421272623137681856739094582241379832034026236481302174191445232995398707529147351006122111252456819833473783500523023458196816537694844439343787425400420006424308504396701015527523611338734422581726752720766752779657569163892453175155547704522487703655975459354410232449278067977905329790348796489734064766307794876805311320371078653674946870331468552336385666725602880719241931921061884100495083443352360989988400846252653772033523923618322745768254299654241314639738295354588179632460619212732459006801175730458017317358426390071927592955186684173761891029799539114820997033820418178950117298409088695608585363771222862524302935392543539155589008799551364659146331515449910498086085379617643618789267356146929649480266253714755408533284852603722463095821002068279891287582173233963658239091586978910507251660860321650927763400435804728872633742772044075054863622411768780017882046428364268482599133353755610944451014108985020242542193047055957719649914024916198303145979116316998934193899579997145721378363343642422574942930000451527176569057848130566742807493478366972101383221223433323947915423862194316467676691322478783898434173309943094198762205717544390976028703655333811703416166364333412468007174020616486914381210030316407864553450194165040319787175723013434184793564368057629218943410995093659051439111641075327213318919806578519841920860934863124817720923976170796664436744158763519067318479618351659207101097306111276254112288675414809469001098187471245606892834311198854177171405812190545181149333642706047133443011002818556175071161203538275227974835475615235470680946038523609551851538258583371703871378290906175834360626527503371363914173368735835639792139322238886045956996705248487562092648286796796223175507222619724761548889507744528583242984715212599180811358733042844315226032088998843645166099383708583545461162130698306147473815712050035279895239399914781983578515324794190632067196786475463666105556609683056010296468717032674064744285374309167983018148436341089795970388294598909710518965890972936993415245177199299679410281229815789140567055039861846273522715262391495246458347271566810337255111494994693688297797814090191305536694551016825951302231352152603156093051874314113103260152329474313740973859033857975042353621901866132603732552488017073457447380013654090782827505569725121459130666695897602580519354442711210889647870742591248807227490927872126497809264276045938357028595037642329137314621322761691440263477476266582328098841074473535001378411930863901983734061214805140765613270051760545461967882664267873528815710774288134614093318720279526944653137164305968256181732113731989312193854527159067267480892271600265732134400482431138353035030487683999750746145106737300064696229415622858903581264490399730582814992606749700091120890549966725706183060885684463858253623060927656963908874068810178869948902188074370522062725502690996708636958774352337594858030222385293030604218221673188154769772508328856414165874374542504444507605623055558718587483448102862746735562698839003206897847344145874816017244589271279126464803457208972815220737595629243244310831948171307951481675636434975343754761038621015567784672763805025044225865424608840754210117588654402678590325200620926502495441683127156503994376578590560546062013526601519909736267755947524743107135826543828640849554296278772808273370283702589872739381422410219634842096259915560153212936781122034574002985501452001260397000645757857149578237492501999352768969858468082308702526500481887409687842124571243612904161873057031414196174827914173048844889847349598246345891170904861191388565168516089356798152875180924458265160794562243706463823124984648590949845293128296280709144937662165396909972153710972442439917843891571852129863958278212480347627445038010816852444603689929853029050783014427147354176217725458461142798031295713087569276551716443326061129503448465623316083180553144209661004595658278656987078497595380221895543614624725251599938479223454346270775461920187367243495338662548044511847800974002299929680551654400505978607818592156837224078122266136419694311515150713738275112477517618448664291092607589169210866633163343033277550776353768217934493882117018110667866068874774363319677587959369749941915852687314274590639145869196334560047792384749791587789794618909987346334307896443087597148931083337602494684378163864202316285762945583629361812485188472363430888579659118556432618424286760463682593878680753401639961181456693142978781158308281137572079119459922354661260178329622593371076597337349297442477571282681107711655391944248018882695693988793055364589351524207080063417941063340455743581661581190548345998810519127704541977285018276854372147234258800176567296800928399003198799515670148034557501705175450209449611746481053791139377133116282130893460528411275991127050387399949894662133688463774128102735684157033301319301094409585145328816172019769669379716967073070731955001793934404038771630367837260262649332701506448425993127238879510660135467300823093335970767770974124895147874111183062097564218937021010177622970724247094528237648766205731514839480608651589396663540145367123049200441429451962189073487735721464273649396562729488894189331228811717091332524067238502921996899379326381419751977830140924696817569222854543036315268929694051766406819044139835249430927501324668986575817684968493764601040289616358162607686871403047064357031776058933142497947047702858249697089441164909617885631646338184911233645515963321299727367520380069839912042191268120269041171126478485465265873025910928184168836470311748676988571087273985777749494648446515692983464869047472674530322576998368241945060273962255741623058569981757111425205840151310562777516761078335427691322238187434132354236675991130255656512759138690278909297676524067005324093082379190070241099161442629838098158630330145892876644692267147264196386994454636139875925960383859636314506963053799837513729591237268504509445190854852999314159662125254953315184779462214231549152357683655037619376334518373919304986434992615171280532181846842598838520806077136941400244411054103513344849857033346641324186031473948069179332021517054759192831039410430962832371290757317778326814195845898047990626174602567953343714770607260419722817556548099061670566670119005985991657700556207929160474012155110634461942593917907934894481539755777791890606135349892799789339413932538832640949283324457655230623960261140374499936871560940792688096120140297200438952286944279944656484053488554981032164551753135182381778245579219212184233699612155621783129365875297707178491280714619871264099650024148169197425218579986797920688425814989296887742004332087280678463267520472216762064160660113087147347434172801360955702088911569059785223022451262463008653536098270618895012055433505728397197627982264317625013740865418904293085936739861382942756584076374499437371646924442291877110341862298369217925929045353394373077185366592630507150270634164702213677059968156147710526731487001712163812415530461080319787997379891126621030846747937561284609611930352173308963591168749591659454995972602142746295644138583562146650309633105960890549923356406053436163990007050378262279477891832316959824846049537851804106792615190960781038363182624464273123430893086181855067382994264387127531791373986681427654976988277382135080820250248305353717448951011047628385653982160978341446218803460312783689919080541554949808798817411829053738951804714772563963382081092217063355227101313013258562155704220856103476379594079867591454127335544220154621940537423073620905803073323046053590381815290950283673849996538338186491313894943040276970160801759152038626468590678502146450746189504310709292970644176908446798479044739820550206591614257580383361707175270301304623674936823760939712401023481705944694894678033491596761721847990127652902205535054760249175736514178635748876352172397840151597372189484837322405146699351383839905767458186621050545231907346907435435726861186763984842224409996334926316854024251435141704947918105848437087454650459835873353101170957828418095011378984220226436336183950766775022928553475123283603988803530377049460549019091232802688171237904993601314206469408866701589684038370812106255202172353224790932037717657632319617929583595762395935325284559473601364578111382183306668426205814745887377446366519713091150761287030926899274536462642706728199133369006337207995845066206990798867303136552501605825947802349831443497832874028411277368411230637743693913867009471882390265465320110094196096536682879182899310746697187597179392938579668764446614509832383681689101132003476034022518852835871398906520041906057254552866431612248990111639052495992117128416751701641762712320149201954826175174680171846758899097396928792170044144648477451635728847871745214093118714200772589508237460551009431092913366305823831277729641959650868077727568243693926076502927916414120534823063636938127874506814972498804974316753347259178497078962446148172646450192362315166593357779661356702877951424141165824719304992476610903086658225622221175012038582104524080744082497879929088833926143663420636206626106535874635679157207353489343129951081033927958134984467438402895377004009844509023778142869167595738258931784749651041078219634117425904785268424705003903316555089787819209066152857922259689570774529642375468351042582776185346974257881752556448836634159499453600408506221284375211973509900911350923734078776574470557888004634590603099243937234967980625024378581650930399589148426153348256445699375267912130532256611475801618353628654507882630435072659930721925789785476362319434199210899097099686750537405500124117225876502179525268643355531898127289803739286550732533690961476933845946617918269763886755731733704835383215484638227532156024259787505978738498774425881412107015387574059620410296013289313859923636784397922216489324755236944779003153447746066779652991101701662416902486605551876024929927688821599543268350503511489337968037100334017711116646425805958696869595512048679960687311166488901467679348409564659628559652334161017793928525870225432513153156277420840498020626234033869944450941028419791757923871464205254561087783580846644297736333403767094272146643011104381816944687685217612126182203470332724672162792179385804219779958558994843333410067398416881391913402557733749898671807876088324658146286108847614316514288694509958932172604316546301493117586847563243845606360157334027757080772679720210603841868356998365965882142273529365089377791606542754121876272252253791024443427374065215764293048946688988974155960280023772425517670396254465402335835051251321082636973638388749148760424531391512568170117110918738638926114759260364281295579092137906410092690303063532561380843391954494473355381627429181531938715824174367288561764042152099715270120663241748464975411595793004297742199131971108456410640154480223940118464136244666157850983717291388664626743839688701369119843376446175525481588726873179881698639567280973274249893845121921344987303710583678570645410578321048895361746380878375006873533949280438076364959165002598123823270852181657836212717547001071130847469625062329530732914211440138026700482852050879246703646243107724583011308279948307894225711457498996325821819373693962840127648364341500739010547315204026477358488877900559967120415897149757232448278384301020007831756557206888301142054453683881196195634998622171386945084565235499521462623139249291661464982356278228156996137847999503903616656297728544500574816398647523297479775547756796276363643796834552948883717155061733610459176413691688826926718980689054095076194637895819412126026663063480065936666242618107530194369374141269118811279617205029824612501739986559204077159353661782384090415904809597239097577775390709822259856734209739711302345556048842233317611486509084756240726697304838377792036134223959513965642867514176721875026908615208681087233547013216314482703420091261852201822427938126166668854854409252906795225000582384843878914653814696914680184891080642900276253786500481253376028792952986979600046697261031821640635325345476414360836896227382247173603389182719321483375183119270733488523074961465848651992364985320213688185774047318663252082411382396482889355895348373100869699843955341162650387455195014524643417308113465237881783041073880057097627061437380882839794952348428240098876272099771000735699790169368605602829738062330348596374557490912894901393486891130614996667485334093989386226885555963293557414512355413496221712725242571429766825988314883619555090160379270093221184769190780582905299876166408276019309692551367602613619061257337107148339771432495664055133814665762735866387232135423822850877550575659587920531751592622537722964539895282950980088205672863952118644384884228582049148357023522810084680729701264326375088153689567263428483670087025544728056736731586921962630851511003823143799451166991607478444423974308908171165566988237537158423328100314363101471768491364745362788493637364611654157038393751781218860097144579210043477350785495892211583542063708748438516375299221212803282954781803184303532633245842466055744288580030138772256412631361801789059898164367193665895522992363711988112972931317687190398856105775924747682348570044290148523462072094071015041829306738876684041777202125214836068934423074059765940385844631901754462388327951970638894257308028626748689118856144295390284650067325587550502841615506055300165027779265700355373142656241055176471549234587546700092387763398114336391020941635463809775184356416023618786492953278084036044772677163635980998987307360625404845288692126865298985978911717808464634651091093319515407475799985552719775948219258735097931399831721442615577380875369298201771162534755845579961026781679261575806578615378444918840154756643196216109027259562087479575237738200287367738561662672747043897229724504293092025697751249978354496553172310245346063374846628200416769558750992828056968986822041225667798449257326768978933533913808328637841030004371944262492677102332824883023680843883235343052936699578627760028599405125271630586828873347295919414077547627943063025785522217330351883820002655602582659678132005515012420597989523996388246279980907080327734378499044906557117912838463595670090707570846821054477582361732672167501741755098773249222053995029919530895732385738970750582794947970023842012158868981870659056046154220102049506403462229657783226128228218072582641185853027684581621944412493245829867466527037328929673931662267096663088965047400344241883140825868269980256225698679828776876705980713232697771065883897410155306880699453266227220909051169488948538230993012833702496036547262502492794062353337774420405033540971425082582850567672263501288770719346886900610800235342201684960834008974343717461689924321796744369669845493832056073794346700572733837880858527410850317130474540398181239963111707612573371808073293678836345688843203577628291396315839953881891163866233115013408683592966840330098876214554631079454449507162449874527852583013691096426950519085924233530335877566287320927120175839980962409485965724591492373589702206363342211664265513202092552414518809579893742918317146048124030259791973309313665077312775414601093625112912105870937253315828280208656713642413799562220233531725516844178662224814223832946382608659333749087580066352573765446793819244433353589285042495823706316478756118657289135122615577414511957247569113499923953771539115396506058445828324167376578152842574275847598025351850997887128791141393057972576893307092695102470307451657780480098595915952917616380630174231422235384139975017426732433981355171449934986945706101030440192888432819568938648250834814470606056528276979983951392083082743099408808143526697476197094688524295767759346642228445006831306366744442245818549770575889561135862914457408644906669804687199710228511193018084683645863161253265681249419500291344011739489694259250566661595446296016894601579271858870138416453330341962357183261176375266502473559974788029904910785823747989273956439134164783597924689249190354433868262679349302170995364387569713290393684088923469647095345478674227011343843838495726190329786304040271303074215113280216188518240915701267787680596842431367566628000109053152316449670459452743721990070556062638148004273694671705461211296562778659142650983570045996823385303268280443273720830069959715284572635854804430691212860782988022361103260391075839886543187380033956518099132929067520505938565771049783434644103354780643123285058879037126848136000726548091874031454996400454635574069966998118535296431809878358670738877365249886169644636377964003965175551678846487587910182826746996393033219682313912861023203044796706277798275325629087134513677192657879050642853461550242394316030463680321991153133818544065715196429960834332086436690021687011171581147826507506689540173947935809485967878222763646346050967259969886840095305728034231392571571113670354942256774997579685574263141172674097231374425977050110342757803946257438384849593353364044538202609511536025563367348835694980204183030914210593109579463255056029212382963882242014642293994029170299503781681307654544019966456094977899281991518471446758200942201633458047757194418868397372265589123032639230667986728602943133413760675315659290537722102013924670269814259543466521741046451719708186270314715950672167865491477572776744187052761396833844737909368040224601850647692940864094763000178019606773397475256504494864246830463467839655444139597909325187621484364199996546513099137159162338000932535211109276441350532874221352642221994008270652871867836881806161452430319267506480704133984382040212008334847233774869878204383448298807380205426907157825130218217226101840219774546722531046652736434302880060781935677552508184524387290212133775468370179506052621907432520140918695902778604136725043607622336987372105047450353021426380566515056677137809132739263902443437762988459690683493980379620190093744208196243352023413398346307116781375832293339504523995034106964288948119491577551259716847891721547793880404199495851323086446247564599851686404940955345967624475040720804709873301736781530414077500196161880713311598095744462966946487717010688246377371836589322303073450768039702401113692214181717974877385995147000976413464721290604754132026414993797722504387605237636241802440090021939629037285057142251050525093380356658815750850875000606112413368981244539401551213624953933140187714655975834757747208855017627220310998831812665279308099920110523818224646189095513103426788458480298589937123620491751433314138699475359273535633914399446210855947563537109023045532063107006290378521216088197801033321888043309829820535316568964995354134887045776329089759957544039139640298196045635759849638073137349992555983541300787983405726131215298327259747963751535807650103629842786928244734916554552105616087886218662304302080821399749496516467599249115796636956978562607592859907074266014641562866791982561796626101772309859960946989515440566890970236630581516188788359458985051199145397452105770349943698214363457483007495143756887995893151863702988453629042404964833931975247524069549787654912283989827320610686535503185999509705086103127062312363619164143711354771583362244765044827146633714587872307189468405183296369406682144704989694070198157937738726658073296265812149417283521111750624270124023964023869618650549772942291673344345321315385439905401840450408212854535119159748387672998937266863924115402899500044173906536682336390124722415218552689147668296278826400950259789857771101536152031409049156522923222358264044183126877343285398438845541827894653490247287581125515288335862829896011967549685470331513913580276354250116884003591146775761806064112066686592508551938333997080466881837173388674322752326762421821667829099204893915529138876138230255679764068057356333823123684619276810285662301942213227596750074186799527738203642626645545723872395030324051382419450447416801980399611053003368691116320280039309445154565996949318534226758377792854463241800372531367283001420408423388823635341268177940371269885316035762646814321639185616910303390223768840548714891650528943524902700452936192468948515529766777568392142351341145583136910192413987623973022400936367710061880457767676532038172937418402470223667234602293206807853295644068792546199223478386796093499143119630184270172686933566631584225377456246402816298542392884069608452191829003845696502771038581990204048864598079223396822975082090024023768227703799682532493684088871398982937984932483365845052749712661382249992854025558342822320495271573939784120215301404414739052881068973127965820201786624455204354000533969153189248971064382759525404507165925899988895066344056431680334048904306941641534744028193976436235061995003373294661366185871344777033187217328845361866020463753564926151056678450762358651584520709302787874153362756148269971696220134573584955914151072984441176323109119062849630938765026914930629903941577925720109188060664694119324667739520282020863595549402894870146595499269053596052801062415057722438996074781536341855595162724554329648563101766384363755384337256772538231884141013383289688221746772292998949612451881117090223543794147893066432568565727929627131636867372720580386120978985387914489345534378443594952828989240178421345616229988685041850413325471107317085256072221469709953011270109059723963705975247692883938549095792666739565502012804615041202416136420574390052871642594087335270485112292109864629256278017448859479282397157571946070332228835376380107490587050428794114370623901768030296625088288103547840698658034472543299962243608022696331626026481983561785990788963201258978461161594649485721076584259134485427213004425052580875913145309515072537682473510884094135844257316280260450116685196722915060674253084916974271219405655067774131515041001936269678316821403891761652290753054909611976247729996318659743936877734489915914895105865198252212229380760095043628779088076097810444360373168394901533125763364196653843926663040753143308991573812516515960530339998797784495415480803062671726214413967426784301902767060563710809290223596357044079105267435480879513415948129220134913325883594522215322656582626917751922966838046664267524900204865647295039963885851362660239074988359027382848339663101531051293563887499023160052210361972329444725553757113724482425266553693172211846571273179776892157496564989814031013930100392781607180889082036395676045594122353058333322387035321273797020596631233845975053959066534422958876840245764411109823026409135684880597494278431555267175321815644147967963036008845603674369171430841633245616581278097238989535423151417326427394447674633755564452678738605039931669560019929175283081252737159842575480140331582022532533401001649401323599008173628440986759024822191172679552551261772641018506810192448033244376006387187992234821022867829379629202914393942512659618495132788466720101453386896656028426338625682457967892058569297811146043949700475617413678394396002579517151192973511515578115844155228925186078102444896164239906409846201546290279456735829129914078732047299030138693441499479989171730180388690751700759844282959103395593418306655403056695973074024214810726687690150016821941735493722605527991374851773824134788997915655275172299411657969002951154423826908454288431615815546531485201392496209524264228465407525922012434578032005280738115028667324840383242431218747476994557627169269725543762764785410067633976856273201194334677955695372112228933035735075126133358031734162169813936580286965429005308699142386352213852480485995604933715788178387704583357877316773756794550525487773279477595275736116306789913371623547751959071854119475887743542681311934303186093971725947973639889924129741367878297034546761126365099492206982953536775515359484564867532988612309274796603738370816506995671262346387946786384993078512725424121898602964409604781976478831031071973033234258452064175735762717246547691796202157479747944727829629807404463628750948213190103885795062459317671565704693563149817130461382456381376774531802876090331761072488417041224381629525460929034340979781662747152153880482670112343635013699693341816720755499168292650177654534999574051331762280026400629816031079978311237922805589727567717606154157124748769097480872795205889786331096467831094730530298588831238123999992022039618351096324206016042150849208020177870706350400186596185134691285533485426390558944643020085758114908440015150989072394668304189364609675728294451381541758438133931613621793931159256518855865171114140791978979274161170882918211842765330761137426255523715344641632702540202136424608466782436774458775382399574699640302674031513852739588030221972001240720916220259985793336069460083968881861491878715747296035808524736479322388869786655366302173430259846120174199702604684105453350119855836214294435128241913553789865866967275820353602922593499686973332692041050627513060026374526081989565448214260998561399281679824277221534483016093211419840611703198852368473446843705783518827347177571274565752530049626154321587891432832595685268718151481042559674403713622190487523839508306583448824507042492707539202934150334839769019498221392055076902100645033233158602174206274745344799714474538975969698646549706957863511421570663667375551093725808075103656695351933674678692868420781417634576024018654288656494701329191598583855414418810856118541612275469675004934585135958984525148349014327666432947134793295013516827557508289106691162435571936738655657187213722386020545022473373089984804864309680987846020177147628494021431390385231898210203688844730105564675612069475918167486536627280933505796709456247951010276696143866840031959450951428964014462542595255989621022818678261979779747055121753451858795291397456077825325465912193077143796215505556722128464278499290183108435643472745961573222908289318892511895643419022139254070782669557111576520515395884234367195310766241915212301860988848384184048512622907016516336996886085753854899546178625518467852903177057325094031573701674465486827128334437832783896971542432985636567466553588422533747953843420211703269541001215325072737538926391281261767767954987773828892958363859473760463612041433439367066705432286199511288252208527270527846525103379270278252950590291534161119011290047754159429608884356148551121947552562063643643752760529130379375332414335982158013421445466596026022626523780402633393646359842961107098137440418587332403139388982532824043355467611099072789570313575109272428023632722697118372123889364522603814867857009331952073197110539107158865524511555306721232647495198207001312211460160738439678031959111190697390543272477504615523880794738010352366730158215005748598101442505970385001943997161875595831337449612603930786762950181815179395860608262762444212256843341968514902051600486997353987434793848368792086765329806348055479326973542764811260621909019390338794533090749932412296859794363592016472676498046720670563919064910185410347509813853269390691152501419957112522256098673172752571425646429680165050495184704767000102079135836042692337711187996840732449960929746836409118355479417729623472859290267426041612416805538579303064666429547910850946116054130006664111315279771443302133862895990920285425663037162772372763682474941769987293980642355154687867286979164235274126647225505975449868042780861747746572119709295001306485653881223159957998628747999411054471245163666797354772351780167525582436803270066425382617943423458751922632175601493299011907287715176930976052197411724465344647413321174052749046655976518678201834597444596576386356110890706755289011170608707502813518548658337885765109766351368451622098839772971815337194777240948699469853897864337996458206456166447197463929270429980701180222232605823496973097439923936107392183189406219767394065047810077404292250063440716727713302319836470850841674112613272054807864706888192489268472331774643730362156172869191794332817237466227033229858559071451186006291602209799440682602320451011040498046693320905061510783345393072664075317781038675306798937707802237749631544765027236608560024610107200423444251548213340654490152137047407681958011555824425026586099639635495811483996054773641989596344058234574032074596694689724275518935805625273411343065029504393540880930372024128853984666921329998315239469532675117468550262484225200301695348477509694629677496371669941567707665608048361654682566804268826406899699163116962899193778232650578252740294937014536378331625152003352246251258525304382289690333720681997093904513671669223953325406549470389435026749758172492837300842769336613352054149311315951088078391673415823897751157008137010716554130138280727703360154324954716644352895970225600690494957128544965694714905793821820055536519626352548391526543117455028411919934493805477447475514547888745753262950871086806993781875821906240385820316298264831679535486258864065089275548732135269374959801839105773088484802800917442459979082787385664572734591673386477864198817357960600123325260802696653717020221404784961630320539294690262048016960612676255678128463832212094068686525035208678335303524825777436798745574922384388344019817746623002503220551785091001831109443183653215624486140569785751136879080300706803200079621532615300182790112229346170801240924277455135065804256799506431530265022797847528930564544494228677822302396006065723357886333268450111314745125703435268437540913135155468248491882193384308362492332410587293755801484469261028618884598807231875862372994337526260641937768285800622714335919544174791696670231907169610033706099805721350969702607228408440611489538480965399513087688079162460489093458829381113876514304201531460315379423353376719375749558265499159576951292899083366049236254962022613328681141555170392783620276110324950295820529776493622862375870927334719361826508457970985698804867170619702791706263021583076940004152207792288737950679372468387042844044039737314805859215150396686814537783738046592734334674936857943183740591767373720144219925509589234063796789836451044605204446949964563501580403893075519610395317571403205322780689872667207599512575372070199484182294786604504193167373449096464430743434477765601708496634160415217011788316052813675771131586349674264494926578042000724008167183986539447656268185432578422424709508496271176566226952271478624051483136102444619923698024416848748403334763284747521942533273943900183241982291471110330129421261103279235795646291961494650339819082794340541165876864531521251711979340912492518425735689766794017690436023451333677085525897793458120058964276908594660310115582520467797773944665378493190991072175149608527402555024866991298946016937645544102845778337045324279233201387434290895383324995721256249333242230395327429230959542876837465283341477420238235595040478030390062993718186680077509879262123912076215112765333616671726062179887908738777006796583011261515617028573023656687611722273434699336570573326245647597777718128290119620007528550296317105644530833248413838378146533333377628718477639046778123834531617567695627400813434503352483612681543593123326409203085390289942082662776398518087178406378159508633860492211486815977610620469882102096703947298765759681565225703956278772116367710850755757366590015886928852106987786608488256958424786338109620979993250968329690394452993107629972909177541264609462612533051285964079564856127991943853644957990305657573396832270950030104472914671149495699269480839244923475460426075498096226204583048045306629803835926441058997937362375507269227601810894837305479852852133025731176078029898720784776491531303834287969951736421109842314518932884215294198238483450067350064782412320497709778907679791653802245090938291671097414182998230875704234552399512447638723365260085163977712729049284411608362835038774612585677784332920259189960359954759534730112675820926495009072153278780064657689311368500408607682019335791990843927094631384625163567854770222764846293174160165886349197875862612696812431706190924182819544900920016386704531205738187157512980096690925887163505065187241522344969753329979367129203081483925755358968446747731819291906513695430294578037426412710808529820331577009824281250691031436715519805248514660060529354780130107824260683119010083549272728110690522730876365510262441985653906070562495723084904526099479193363423046760989330210038802564564830741675465198760016302871518486936725843190315445912346414664007311875162581483598630159724094051794474507076190070727286640020317480068210696868914252932250149932535342499470707013909004589582043557481121820546580103361237098194996492999366088220991208888493576070628121934777035235450858522447563081447653823588948734284539478230421417873428684657945720751208848851443546953773171545558435526589577593900983145154373791238211525100959895749020982929176481817579775210994150500376760909482319635462108252620206419402492849468944403611838235415245286140843928027210419687847680738418038530716368859642958695848220801087042147817641025474192746806118728846226794984446473211717361311042550924776891066503305641068394499946142247528039480314322155685799950107400160518467255293894610006635979895865678036699143610518854876571763170140137751228428180762789073532596312264266798243649945553530297561356891594901606815426805656999200912737237885724121295043352264923876847641672000415653238872125787619360695046834100178191311408438480926429962225779051015227444819321106361094113047590237012411216212884239607631548749995942813035198233868494345722842938561307770901077195728403076575934130606373991025843188193417118532654367099898864228623988885427934509322924328621634255792054453567924796710976899663251463274250870796688025984014599261601601815544200236983066640941328192840421948827046123702561334076887608710437119043778127970322375353520491924012832566801170357018240401279174500205205988679911537880546421234750132132317131791313696110487354618848088807112532719592161594647038939527359559296682381142957259827527806582822352565754644597117835823554997317249068762367564526540798797158433031796977763524008354254487258011901431149977697011078857681993423841458793293831496201151887000092951728318833779125816746421780553843130232656559820874657307026000698388569970134598933669976988876055262885063928483026078157943212891647252862146871565940566394542565097952473911703050216184034950703839460420615665205410702462532878199047819218939443528782220412984374343526114157389941439268617765641184311252412242337172825546277138461492118104687499723873682316060667946665124302630327691674999188961916354421551923102359623328202870080387152602526598123731059271519516787770751889914011265371032604940167428365366801913385631389514140734627893600484711084562225050293040449116122986663504944989604918661605336877549959708178403474525473751437643379352667491525846805729266854406021086154611369888518423308876054159940720876719036521812607590714825984550861657918317268968497592928630097066650883270519013666516605540211557093451716289748942187000877916278029770231679963854814624241334843111102231959833141653583028281676453048678810534203917094523051629481119196974922326594462382058958368994449623230578803874922896039035839108134164998740686793117067640354574896752695059852461559234004699722385335516557703199480851796321718223518812675780521087355184913663739775836481968506267772283257788373527275770979688212552330576542899412899584678860841534726197201936433112656353549574105371559358069720584909025602388302603290353449826925428432108772802499947705218109933206414622357790688800980151719883018500952271435018820703689503687204693761322088036563689939502747642954803588284967528125462787221130541573403800223870008352023553648385733088938920156762749305749242445095664623085645486353309039423899545335943410334733880867112831652242227108945206749394094664618663400118248604420476901052077613597048226729025914446068967018120147837151304093910715922465584591360914128111350022914205003955177186652401969562355158453479991156792628008672691178987803842063013328851672640481541719331276646816165872304222982488603483826658950112026821899745526558167169120212784424255054313214060509079524043641667344655854446722713474652230484272020199353725453228404675867476434149006493920237313429981543064842898975442185629953400134452504606479621792263580170996407092961423027124913653803358544544068668718471604012440752154185034432407653310701468858190603805650248459949936121350961289988142737515069677962620317430990444273869923401679811704333243707901574082945186069604190925286021922053441257464192652976920759413596297675522741515655196071937213694854252930473366086705213472958247991433539248763546139646373465882047259834183945381815174628029969039877814235643570992614818541212448397091356319439366752079876070145338342757920669750893090502688444096749134248614607206306415272382780745428105830760124922640389496535931438935989035809588736347976900106821506899746594745502615928886644476986190367595428229471043299561405796969082009965278967787023531480765330606283947291642383746852563339902138395670685724041779709623743268305402297707508605882978696746060476790425546917012535863390333430498499375522778177561726181404220444442241435992741598144342753626942862617013662178551631543775971484537710929148813861631161791336656982342394815570150773544970734234033009895923119104288646224889181641252320617830574683457714404150263916538269680706677656617185858041795522956887641524178898707684265419239302463646116926306955449314769632302755505507853863903376191512566696981997829704155952077073301611474667182485313966699603739309217422796253706740277459293454648872696834889664453835024084825850586218354143573509421921165157437783206485321504109731772635430249857879183119504892537983752588861480740735299130449811563148897243731682201472940658999008942754004191162272631084528505244240696917340500651667236992943745788262573447746235668112311553248903672893606405726720880765255845760183492559927809927185884388588094166670180005370303908298805453405532853696036937031019376704187430422617408948176132645544340921693394094631472443243346562982967083955126960194311495837631527694417916860054626550885173564702286199042175773924120853802153672747656494797452766142371296770610221448752012173905584030834230408306172394360061198384225863994016579428320580699634017923748640896007136273072972742145932243242263229056085069941734552904552353066368355817293529803572744234488518560209743437928157745935005771442935800868931687523575936937972708880724708427258608119968624636004251887196036748393500008820967755097229853376181623484130701491435433344086551710938781829235023744017021405278131455162040586659562182039158562175864946006520227773628599917553933673922404719957031938050971571615965390086964210262510306112772215100561184253104686963653161066120077110760674456288922077114652867950954847606990985721489264023355004941439187823924031122376338381403103037179952862880458878745760015867578841950496605366185665888887426244716082454709585391673004645417643491816867651796037309285098318877018247467551982660879102455163248591622341506633338918901166211367829234997960984455535227032350974329095105340017030902106677268122161979881304544612104808377869285273375619820811039012944099466231461039270510053495320711499103738916078022146528281344380563817138923116773098325161115727866775793969780124872323790812029545083792250219656323860186297478985195418190356554830516382199172362584232534942354604712336204233760753436381764290303450316473298294036904177500466321644125272083551231591413395134091527114593048027413341632733435072568107578457824664195922830623552722332866142839352817370662725224126112270288487080821055402581994368332390187420474378326696167546969809004404714831773160828575835999282287338461646205066970647032085788016945370473825547952077684484781192986160697097939021221683983784996126581433588995077508305521022187870804609069008424981833106962271823886729423570739683291305821745682307925824420507005300827907310305004680253154965439256548834591750772602011676569459256556883393117379262338311064454753465998740495883311135638276415185392646384172022464999444691648391553361322908438468464515753809047958192328139993962988322866855422608548416964820293833504890321480475990496891466440836928067142095274759836863037758053231754242633222217144021171890135166621216803776267277438956291344201345232103620069402272603391577090201579954335386354024356856003911965837072715817522324571180695967667791809272714094070896911783697116687150715034391785961124957690266551397921924296995506869641205245964129637054911463197249856487501162142904925849253381059799380059327828052006484963331563424442694214799440299683445781869743644680004208069191754668998582147217947594940409935785557670085573178347546452049567241397839025109931848529171122315296509902459710996331292429724079974897560515736733791945952216939582092511804812377303945802888105651861321709314043045286230014390055775000047884300770227761755917840489982283598775159950429204739369921892620000003374908629124236912796222441641129635697682491175239467062617327448456902648574169657894169424284643991917617348618211399948148000206054528162814582183070535785358727273082862972081304584401389221412378009008977683439005909128125173371170093075837264601718834075779091797669027371652191607565271204674888525239658849919394707253910184829586950058515558195580598414663811705777438978145290155724505877436178096705166002728392183212146225921410736654171878771937034322689529401528535156707042244424236450117512505367759500740205400081292758419722491711067870627554128539272539161696180061876799686095351236303592923260122870754815777700315678966360379216806537409131699987079202049353807686776476988741402700609490359322061930707842838185450045457686919541650602580868337565024331960884252496290416223413950885415337574644064656251961205103810547860513299433009972251814835427999588442764291545920327925695404006382977586994402798117677611581926415065294890427732685259919202806166270301140182450709518789284190133189367205797739143576685350139402584541935069729067736543758722879010585508455402698212220106949686319552586787576225775350091686902525285895495487658221728225733961510611996011338574307245405360550295872698190128507646837074726923350638753849383808321201840001082177575226385345096476926129472236545220910238687270022006862757972499600779111083432740331394556645237384768864270494451422479932889574976879563460218347682837934608785304536592919908987452125697267582076861481782161376967399884716952954918840494845388543620751536025457386149731714222543747507234664706017872236143712606317723359581874941048158985692210766053224587388071273928254245568330471005001286701206475696873354869066364246022157572298304436048607605829648889356021085502144386427942657124755959192517170740114244153302311704207908083609464132534463940290765231538139937730992206033186778055641003126958896835880811124246000376056989554360249912945809204486001989098575980512180983452445317605646187739279881668245913246707669049025887051120767144898876642003953758073004099369336418442488885087357734823740510587239326879381865876923999936677523586917291778267820696796661045275391146577177238992689128548650041425220142996111286058899839168616645710174954898237847207830145175754352362081972881282054115861867192286416451589777853436535862488896717204962879455305951445899209398114258353673342463705542904345133012016938472730327139659638369269046470884193618628446098816598779833515152556531964144675383736131280051783967438784184033460776227594306678186473756848814728705526252039920797132476897637130481365615683509602323400192951434968121229435490922645956960459404303464408321656965968283500953169204999904509272469722353127740029510338716615114038945886728390820430974881453609824725344929394895822292828952773516508441832145891563023963225629668261490241755639502393902537486684141392195327206757235523483358357715752935579252332588841420158686357070158979133207760244474252650226821104167375978856390902589388705162996180864432943247205007610503342615597068854977722432363955554772184546020465601804399183137097826721170332796262359031378946248850947891894992968325587923426217968136958339581364934214563165483413408766446979953506253867107860005351250945816776350654507886210736539758254961046751907857710902799281705495618783887825025583188103312072801383054692604011752264881304203777692042900329639483305814024696857338665501036313829231217281617225985755419988477903596815281145037163281290739844355014245530649591233722955598236462931728446330874029018215496985793653021924639714894282580292307334064423769730315782017609910162466414727040035820309719760583868874411640060475885077657793502736144317018373268511962018060707398045892844060471563296118481472818369652051521282514856959244083140538219687514559402170755743585438202441873448730783060333890474764261960186581978550679713124205662457078718718110392149884585991695147942137254632269295433956000286125399503640163952548851898131804965341102605703208368300155885936838436245025777595681759499078485747468897019374915016161463377447674831416238890414933493417466469240764657321010081632183751978095632779797700074300307805350255231517309958828321395746534908627834125220320767032547617031468110771024551177718849644770830237687213970225837741849906733116341734813864600540895563226776490588958293301552552081597754719765346124178394929543778849909809263247075886208063865803583010737480115342396977511431471109680055355984622022005799970752276030697265624949005682527767027061049408780984685996191196265682669839679006305288105796369159666030889911790823708499546399672335841900103257831132679140732557337272870621767563322286390453463232751662816525318018887363567437341801751506443522007062165142306757591948853313510303759498177020133621300018865474570151349504529141762028886801142953976586615506478446194221003746750561540680738284048869580342814989570851592355234496449642096687395953825134181736145839292699946903477581015904174594992093817623191302371528925368501531010211074690367565777634057597662474596579964374613031275401759812659635400688911211211477942508589955675609084397007230254283962656697996144337526633259293903889204204210611876831727205185201335983907305527548870397392181505772761330863640393267739406541651877110393960243079841089694459005590293393730610769994461038694359083069040529397331742540496851587571975659013546856467227618978885142782766757197795781141665995025231063221501495505369203199164370399210266569855581304889369734802309723219345052974796657410075290621921611163143364824515762735632138961951570208559995135286691447584884390182627320443185237314542081128210300417861400131803722007351724475182056463993710494283270452538471916565699242413479011777312467920052136696943365950035948183144426281863969707856345146933066203013256882598921065249646137980422427285457581223176627131272870540876766416557905887305948145074564409965573704447131304427380118878475893120700045175533016411926783164866529133936655218501026069858927702036559956702577476861041005028674686367985622054947938721011907016460647307924943227841322303512962323067316417658521591409982105416145503264700519682284210636921210870112147969763573583272321930270446984027952670979696114615925105550665301255646551246245357861562615607491163541063256656286800589830792686955789880317758659939650907396822891088750886104055669561203292922089666014175887230934146308077635059638602509125637545512046651771198021033119828547984306542570408336369226569383249760651868498764552032574332258062230343314952092524428834222280293663405075826174301833741874012935584596198173972582232864337870994094567471316829652461293723521209970174864144857913782527701628333210612029406332975557200252370425857313599529477174797936228040438545964072452355931478470503216019812227760205364686143708373238740904762708336090781791591366572316170691327016380297746896538995439661341926957988397111526726676821893937360889086402805569149228241080398533891757135557683882100250018670137682002782310789083916790162348134854247053938425496080475945819765334510409345689829072149292434994988543259527464621754135347921212293045560200962603878206786628672214163061340899375429494743694968386569882246195850085535188929300925834315157495573355946342513405017345871023023695071531296215950937918621257631816982910915789568274338509092922084721691117331208363743798472217101474450741754507802157197488823300705647335072140520503056016086985168593684966500036826159951558314651714179449921616629936621704587995420244627655877450107253248240564582986049856559230590868264368047251719363597386602853558446528667814260261723128828704230945618874988568434160668018993940231864855083257479773506714306798026489650436796990866361612020506432207446665144287734140580583184562878742384694552086559915173045620367937355524351539692435688573165507308872174981813785153024448744093900663193067942697241875921752307286929539698998046185056744408777030375296117146486123466479926362609650207576598711802913206380532864729025238240215024920885826471562572627694965437363659097573296580671647228822036724230729706683356672740734336358203716932501258979940588344563717582663051474752744729628012494846392230029429792609808716934185021691101301557239410263295436717135067944609084583976170225770531462929306503421943238129124869828273843373687166162931121648535166215758984850364153827013484355211084530036802554950306596798329297840086547209381718994081473790653344309274987392483696556312581963243243320411000382232499694838588975249759283963078611350904174297824515006593912456206090521617113426934443444426987912598905904331611906137103936270049173174217757065964326643884800166622932962340173129737954543528106733710070858908639015528052732716889882370669095227641517913964207634859664169931503502437596823251356241592829650771517017243736922422517336851853248848835368752528747207676765172490023006580745767659170449371282526982418371398704359488748727357990105261394267596631445585486510067114253023525596557803856008530097503666296768788594019404272707678557260893875049396144206636354207803807238589245522018316177950581248347082373666255501978420778800864739760723250629933386115624059409497338355357306204444433219095709502300438797043221418057078914655667461668267896586249935014539453434885337807846306177059783388457350916426758738056007213205268747362769559887170682149981274210052754004052629323338620515138569118793639356860319829005727892552674088249202338591685246837994582800504462394906190795773831420684687120759258514829644975182481407728939209403619277354629627946421451367160589102732030782605109275270793410584908423062501022602411738637386262216606456800148126874247267900279934867463701644593937469251884993375531108867811279319723654548106976134085830974087974310481531968693015193729011051394064154579652445873477465368005939723479989915713716639584451995310287125123363204834543754000711586950929133285172531447392170563997263220327410747067675759077126143676476495337911914357193814772343884640236848334525228779528272201339103488461266828489643392924367729085523665192048223017289673229976568236398584131015924306643209025930503749122412474162384501955585234521693322014835578528230635711174014383167040463590905294091678127145475774549624401154475557730717951637663658431922124789836645544875539973262465177705817305269769992703879137604702370348084098945272226406782702461172753345720482822228666046454407038819219405663390311467219273285628278958482496889572830088648810391456881193072070930464199150097089281750048693645823856744564481236364985971911638748301736099012276162450440084331766061695439740814815602934894987653784625364703445370217578660330464270431636111333019234019289627062466536728905110294338078854412006414176815594278233975533776997508109286357344770705520267661431485660442589446749114382370264306977240579535428984313351950171470253034168307036513719381304433660505932123225567276945215348842943749890303231883073370196443919013726862359163680456083546475355667203591706108923136328479922878823824915371678157352997725414089528437755012199938447244387423541773620782281465931145768374038563436059429655800478733774503188283620670861238815884377142800932524426280013701665921458489687368212401128049543518471664118494418923705605370128492979459447127915978520709389942583809344801212904288147318660081592270014008436625125276923565324607648402527360764602054184909518972741880132203992953655937058281541652413190333414602583680561390617053021795314948078337043949177908094105812424138879992001714093339617261256595501188034895481334048366529903295101563163691781252131144767636497783102747233886535001380400609986278728792265282114653274025437943067822464787182057878552829126922277117673729723509398339041859545639800268362321794667595633997537623741463911307444508960752020905920500233335979701020140610114246177117655904393782729405515063717237550351133315351555764946658687926590492131122887241751210702999598918725035201537507587427454251241294653665709978887141887759757680188713018004184400165487186514603289291460619103327344592332669344775577780515229302671411543970535820177479844979995241214431258518878626804008746967567954906300409200530981930254560767679593351360582000180574310614766232345776842017834135021691228107141935546611130426888590974355386637102866875396272532229645054844499600767392132318306605864397596962058923746019868175736953124516977851973137656321246054162697282259524794087993017141789128034920785559202480130895234300504548682254131056268209838904396890316238747550411667282631206054374547574528475291114922809920293699255203714858571913146415902017233293868396908093313154819946070492599698281484836494643352308016867530514159402539464069887574351299772701690511907463496724806530852237633749131410207742381631850416715828485232627330024459089627582334815606133420966622078536833375470975287639968111433342256280334203007647259151943948772655479646689015798147315850002580148686390984851329922582471467233745364824815054613056416192063473585246537723630334121537698112770131899248908885652393347515814383286793011210602719762214032553851421972509663588353400551668270617644070936727394943384137588113231957925684918796621783095619941886727415291989758384221216011706172967702751999928497047701884410866212745929593976329880492467385235862236545549566441404172199406896372569398549649275790993181520811721949525017934930501568494171240948271127174802673071232918870936608927647347996007016470001437389824256578625862471242356769368978713426165352543531303935232100651080794522764791708983600869075551819317097738142491823930885895872320708674176517919441493126031210769771835806252688234050589445866032769450834123262191875109352397747934284899210881877727073000282085212422175431720638428969657510881311308676400075349879469485184700196054020442529265448076311235588439987789706217401544317440955683079648105893576398189216019489992540535739536592862396766507579796815694635153277634005349998669076497609566149651604020534214901871455847896227170002416892086131279821982745771406863042714204497622346809310854725382392267726379134969009173579381950637739702607117708039066120243670180426455180387025008543388608709213764057905388083062188860027750793741201534558160449389796478166511689010629227310394789666948194110447953264314757343134308311336614007831813898241267618327960014469802284487767656542588658149925773895968592060804666716076149119980264572269359399247245407522224896975910446186545466598301573752656183760798901930119427012412549733050932624665108308807902559702602618782886149960016353171426410638221395140577874143105850739400114735241706964763759049300174883178390082926369972766761931229727569913079817038392966994059111979445969127121281234458185628464756264622851362803559407865759110837288789811999578108227241784366474731471902891868715742204130202134056330487607548111720774620195107205014048701294950514538975617440442860651590743613944466443998695609842510708887937317739846857425178047144819614681971900440283443172981357349467616585788903237289247848667073263204084311117241709526419917155626957604347192397360001211815086536614331727169711981363603564812387627125148778068202232515758930688768114909364604207341502014043391083440093848793925960981718941330416625757423499489419833106040061850951656938608158893299308173785289906572632395054599531131053651502623269936380273129727520586359961654011095494401713674832027223601081925186793373890156524210191136930114447612598421032156055795258640870584748494585287830449650307713540422792276695792768114746091121293088998342447686684224488584714536798306515156802275793886198054963141160564529522603526330322334464174684657806665265713292220920645218403745720209124768753986556259678256268800406874952616446280725855339378228752815290047114479074310266663786637606105772676508328948419220978600456400599632483484525854219825678082965042809798541296495124274256533899951060864843344562225509831606573415867490505148313135053599067349868602046048184023680213381854199991222649369059130075453320131267505663168685610836521119967049413791104215200471172926284571398797864178741058385561937977446743625657227031346863369542544891294343491614489829768317931524980507942345953673028276962555299438314491352553804643657546143384886420092453506313401069522611244822544510976939859710691040173609645841813919099577020077416248092599624367490296591404838717120483264819139215929156824404363303626645495627699641077845328901610277279457811965482988209978004185271735904348690704682293017845255137699946959850149736672754725695594927395039709014750907209174021481981888515210902368486253309561922412408809572361831660076721650750884876309214743122808501225966161390994668118507291669125880571894436253161349623857104776292978445618735499706547569253329738544231192757625346716987996007130133456280162578712898018127583164215336321502469196341958385917834650633949648250097802130834443364899507551874890416925244724094011352360168049419104124260872392848203138027258002779609940408624359149418682008467215831581600443336802112497576571922636961443512247073954284261583561410662690553848418981560368845419619125255141215262820872471035808368573822828956916493433195702056074300949254894380636496091619566460740856949935342182161770019517745825079766091067712639814741642617566685662491749907707665623330295054994441348165441045694137720045289644566878191598885329132684997037984610747000642110918299139460666974235388521103755323923611133548216731533703418259050474752236079484374019097420056650793779019240182908104147907652685885944694911282713578975388070395513398583177014620154548063215638648349809224977842489674806695657019301362926777235424394036306662266842118707084354511216404929426476043463805403980507691114117564114952606482045469503691182489828183972360062200038900500424731164134609820954369093884810050539316526930418704359538187693413525025928924248389252561599907016848827086410431137603577988393010944791521601181967473492340665925883376204079199169750567414725795532891165117332579208294942975249437327266603167923829228756402282516203698052591309811003552809595813135716023316645653795898788645092292929105832029314242426531907673142943814771850180954326325561449110154957696294322095054102238401453710696038513812327109269541747239700056555743136033288097749410327567161793695701839808134215700921884920727940194050866298813919589439944016260592575357677085646342318269899189039954411380076629716019883250591820905759764982973307877255189079482585077823604627306869205843985727550955659360741188976823271212318499642159003569087619872039019724870913738368899715106467210538450155243990300210537477607078823693448433825410700732891222615204008174109399299119593018205465479371001189609762844435085703221992094947299834267309622449139964214513654883265510924950248934007470097762220449288892163009660449837600503980075873908332474634844922828762870878494863609927360175812441647484267566647265863684774367851178629693628836298516310739767561399633971537283293715708241669539960411223108963707296598024016604728192526556774959234250759494950000532969304509997077023767989866195911392966022004579752812629341600781271859689254309872771877734490282837594973998271113490884719548494199881180443583384669342190331681571009718040283617848012777917732301522695453754780804675723289983424616691098633694557910668970848574370400131488351426552463141838096454426657848718515645264932200934508657043666493597489119414735000164263831346072976153889593169565948542578709722773637667103930973332453995075011796605195713452615083497445949857796998946962873871285931996616152712865290512056567541311954642080320251787318252324191116315580039879927044268636439991408850743233283479565629423993981391871972828178229815526526436351887521284118439842422031611179508021288290471563425376849801645556732345238784143497713638051734389918721018911988955626497090999883465359909391770916676028283715263664093223004501723323004329133257092212559269337844414216206138106079607083736185300415751223534395896111855470691804341589751115117227946074007665559994056700086874006843235491764471491968269628181393799177871844654475321465934797359932908222696813447200908766801872205083307827788242794765920217129252369370160488371734495747602066434769301943396908699740120325724411461242610227831047363498291835927997454936533812034958456827180300775108303153769787639785448175178526070602197541867487266852245733022495302389940721180611649584886930356600120617167466941784129904655945146153447190179285418132398254535903457865251012700730212797170351797270134974066061784852912651860817558637273315459411417083992556166354303686718867058849026689681491976982612492881345745548695030679700280902898137947934423746391549065885300823776227142622432951901937736794452206063892267420923851157084343880062263759732656321802230182409663546582696427500865461465848489882745428094498972191829597290693011545655709810592975970626252173324090823531653703645301965206195545775266792672736307470465341248698800377256238880983238389429569218416003564868254277469958227201772523767463778621993248130106110924445278672036214174077315823422035755889921457781198572538202433083932807658422478151219625466910732094670965610919862651061206841917159947892830367096763152142552516094786235469890315297469861343569659089970445914218185245940659237672594121325033691603567640605995615009385233732647731910285776797621161342684040349350137372282651142335159517133119991101586542272763161422648537796623245097125336052964751798023125524782263888004295649678246868828051802140077503370503772041940053932626005521363319310833326091412455492953251406745169908921135717131871581488919680959618542375594661044928315612581886576292626614632531858728449870149427637241785439959525196500194994901538505332464112797434233334723870394737926200128592373093494220258512533555859158608285857740725375613891525256905044458627977724658486873719716546406101630100140688697373949604584622234503960846596233519170359186079670074326771951599443817985979640023015671749790842942708838524087606335378872006832395886499158186637761931853129855275629849517858782079316305291109780653746189919377960390604424997669571243264105635118137000458770092927640511518358146003509904027406986724868025402567860982045519052385627938685337895497250850380625915332422731961947741871872804066079567818273945358038711584489007510771739031688514202072853507084394348573407244019359461803685027553410841218466566641310837579728652441274266348794861141478249538318697861682319552056916775480747990545975099476084466948249242992451353564833099310013900313568663090600737637650589919510848786042590137860118231308256847432273020912988612479786583875396071625873514511877324383363240690011677672146740223274989918817431785328870717849161638319885906877591701648889371703618396601990901370188989144935336144093021825428099245731138992442757858820822638226907963629401975803824572604385591254158226910669818173999296548270648580766540055091249914568020400532647263885148067309111041024197214046309678655732671510888830240685795616201493877818732313905645036407367846360987522946954775208342225088636896514340358860255750631063471114062324056676542939409436084845305743631822152415215568926572953327616328061761023384983764022771364291439926900039085806490345422787277478106029801816543302453757045837022114441871545784187915700061034329143476088695214208732944873470819282151415089709626806887785523388997320879287860584271398938613457536711796082955264448820867114696789316454761914514280205391521835184819509724610508515457237031932802865906364897989237293971000711152045760513984363340711696388689811005923227613447929368247290477221220298423767096783279331896850202403330932658910646759686792043753131303575716927479627398763326457451715490060487966277368431574001126792621996301003537040181070484051213103183816834146119395788359246830284719472403512568125737263743031796569647430529056470684063388686290830142744642048887581621130912075001487927448259052510736348113860335966965782503021704304819142571104184479326911972772791921652557078135801155911766673825584740378647173890883519889422841054102631234434560457493477094495706006991005356949631043303085847428682552812889597829473043218586572310730709574144572264061301850392289532929593168361674469674809832809385642177827115811659200982397092588009452806240409734669204295035469275147396666768348741257144640788971373149092711835258986962764352892302540859257862946481944885097258244739850348280221728114522215390806845862235966752874577678026711677473658124351696430023305325957740219065044358053468157590151580080504565411540169752469552073749408916552963967926838450305676467937161780327346908186465033459294560788989675854389242356328141747988943677226311885770514653160973154500753685463973309877942479639051299252157788607045333538023120146978812886297771476521116223071932524225812285664135209229979046977679342367224906671308123498735273776566889249936840471688433922632240408377030676933516457048597472558130141624175744766533054855746833875238081804674790598130801121133846317468763881591323688360283465465771813275069891882216614665300347938267323964396993858947241714769949852758530510404577826473743893882201709157039826311717781069902479304950784017817158015867796203888188089899439903972330664134984351179574239070582407436076935809523763043713703329254596654619318365610053140471216862951346715924004676842900433655164509669264987614547742732321206876306785519186886204247956122792003603246853664781189047064480841820257680027910304662866835161560724151322072341522066104019231832393342423674776233175444972151250989752144846248823083855804157258531854641841838025189199092484876285529631518034891733946289185415195175923121247034203234276445674840038370021221878401067358337106483694788792890686352719610314843020547337850188140672004297584704927836700971234032016702782118615844707372388261886209453932060978274131491310415263975645052610836744627709327688309563828974700347623528282109803380223169408015494858765805898320114694556372788217702109260887251247838587772624600633400417951557227591942156016020661730609963484609332839825397252204161157236876590049311739712401771463166820328086014981308578495542500191567556042498392874841016191268437293683462353592432838287948975575951785533652130627638323155811178880453892537713727077981245392104890746839052238021351346520658927574460543413911381760375580691741724437268530651472342121772679530593578681080206870684416506640100006275848565053369322789957125214750021886180762886244446053753148571900848455807612528348701887432938745214621663570061191936757023303834549441710806761637915884334960798610714735318459871414823675101092302223545973715075734157371711746961030784494435973998665829739571181949615917952836294933833889265472408927886486518077920413379382852509019079865044612473357307122860979098701537071676592224881351285109053781966440870613393741950442275017983682578564512346149448115992597725371410270132992883021826710327458448531759181634836970051953658465490457702826704328015240105745395639044005720893272983344303859625714800597136709748978559356573131966441047789021497134244738220884845533571634798578079386496710493942037301771783916557873096148746099782214465414382099590759613981210862070895953010316857014960664675727086086527343661170820390689974807737826933421667644918919588407579575849147679855700143466352771799729547572479711405748422467644505007972786937077702935286385356946290205437519863615534014857479202403168261219118101751215928432743400277972414643463522700533176729669496579797753040795404519319976992280010673799412087161506944236937675780091174529418897520250207975009354023900747572199726876026732876100059602304814978513339047715264680936243527388520264883057605275571703468761031551541305291513195994168794329456011844814175161513122461736966191687684100969156046874102975566536766043682987727601110676376609293713511642592652547997809928499430238537996553446232314102730842862091480200864273725387121796801637330340466842947750565596622798160917555735605201029629615323279770965638042302931428278687612824597644691187774717775518083817823238632897003401096955944966892573001991190964325740867007382844956464073002388486500750772871398918133954580253677332809995770533558651171691896467889190742735472338393443314038107747335829676628573548384717391037265237372623247976229701795758919374584104115680645236225188064640278435695075869911847202282877764424314691352362522843593639227336483939071815402479336366173245180084829957699380575642737130088889284917874343997516479469891079921482671576293471327258147832587160244144444881944453478271015634285071432619632239916383217991949417719993328152766935198991964118147262892869611687923593257220820448443850294914747843920619150062600853356919222677800575098030045694193045837535238251054447960659700668082748420985357109539910149913509012395362099566433017093618913785775312771245769183581055426235760831715115354196368166559120870652476917017011995267301615425444257637664855229823476669338983889105775150066306504742800813154049922017365605059921438838217046494808431792656327158629499935791632416849143016912180494874968293619131157914429357582434458027725404510256974833432737522334594454461138243472238312183282891450666671364757984856926659889577363644660195799731343207017263515935803046562002061261680052471779672606346846873880816962049494982844190546769797701631260386998275014955488388901190403871307823042400191753902369842228359175804123796247250173599333473591694566132291555417038747050691806361257560159295296137989742158232284527113440703599394591379291420233273099305802683869586438136553190599317385765353523574874066758500938672607018883435394595352465875854885978860429744930071402251574552746600043813786813009983790047941479317872309454769205913436846521940438563466454679580790651420377043879639207357073613800126326702906168885107433525114930321533404637183901576498004164506305342468874345185564716695401543842266846307064576768968652256223329841321896788094155950721393239001185788789835240314562012837431621074330649909743485385408417839248334320751863329569480293053979382502617479709296424943392666370811876686279404910857427380947266469016165036679784533173574985284447415401921837411417820343250478183473025801870348522284733884148596699854720328901875420973394010047307998591876343209428325483438275867044505625624873147532147989133408733887358832387933816840607603731588186317273529730065460337722392384522056637245767009368062308403230782618812458143564187281064864189032592263439706417196787146854692134282341709011244521677441279621413240386107021298876784208692643004111872755808583932342430872464274552365188097761581153121735981949470556258330333382087440742139583486990431398073255427389036144778519249722511833387358253210385196548474194345542431359707516587236253767015733184274940635213375466773280882282771556695237556733070101137543534429397871192487728150510071634839172167485193938757819438792849737813774587964781673426115854597466651826893032185420313826373708128445703116781531021039294358975070058711906043181840896660897377190751770682425864463288105366517269149124806831740806472608151811652014674732679041338831166041172284859391698769762304782744062402543924449117762933616959208884122771548116868249269904737166260015676661142225351362130770360879671402564184399472141554871104354473483081662827486899896848364123039475077060513390668386103899247292121378656731059017306055260498362195452265940911704120641427826167402920499982342751096038744260940888276568600236170944847529160917426773959294927414526065830391281551858708211406359007589904002724860328698268245669847539805913502365304296433427285452163848527711425329493195988104317230617661148786299456835190250108501477444769293802005782454586797684679228688508907267397854549996043078301312151542840194406270191039407887509512280003884473017968554374400177477937221099553206268602975237087947859578038884188701502048871373105967568392810311669724196097651796760482555340717753376643809031325962012617905310709637760851601495934598887823079024866472851710793250190596125606035186084994021073983594541841802515351958779221653378015253290146197385396997876160083570035040387143901871409434983110609033289300987694961657537545741695412835940444533769918835598573363847018706798443290445149249209372444710025145692159299239038394026048428048291815333559901834351322062210828930360080915708239031046504915777293537081412501295862767521807701364131348930581617539710327320138329371261899840630958849524891536142301130240704636493333593689557063973160408871073235634069121093336937767407943632553573834207045488462397177604665462092660430711696392486602730817115754531487153053804026769759139232674028446685409105106279210170147105581070319760314692979165616720895143392511230620713055811265384708411247910412914633365738323382096307248740208874613585753449700433793939068396398217894552682849956873661287472440419502531587013548860305180554891905420565220482995512297865589603771335528389329004782068791987089539864692661580857247329238614462359094079828367673664041079331626177670765515363278421360413251975137532777686744198024819083005575549777669562029364250357608233423214758551024700712641249246628021049929445243812305699524220908743684961567304586211052044712180325932506177757151887674432227656265155714624372960742070894756196262750614882443290575849812368710542274203034988735524345127520636558312647149367762760779338503185044760698511652157313873676101475495397924540298596118179556141402327936768063256202976253230243657652859184055751541599569706024432657919593129427807033423207722827102187555084103898050466936828806125572757608966656743805751742813659034128526293363701179230984313076488994664459933454897936639879473267784974881635187723232907729180652785399198350203005230335596894749399189350145660697052163171570731510329362727930289728631954564208241210836226523226130792669027326951736905779599298306772707790376070371319854358286283436177006957195968772557304755508897699380103435995062160580362448814642236231495169435978355835124399814996071033815461198596415712601417172758799565130843701345855213457820272845137186942158971961301026401830024631633223155043667546078705059671536718691016997201804454315296655159982841674274935478633860335343252073079002868526807100946937019799171195137458943036262678512460529833174524863792275848546641863749151646322899826455338819236114513090765801583799171464434166918095383594343446117450106579852000192645496961058392659481396781611940597277129201872543957847460505775016847198871032477308204270870673478928565894392996779695311202658508865277592179683232349097403448767201015959348325429664659840161864661153667437882218095833886827200702390066176247890064168969942702869185915983223937211818130132361224786265294888153863910948401481766645346465849989258099663444201533270091589036433992713242915720403734686679483899422242393935906998893447436151811142104515485190369926384552804143424849554947636789002550207916455391015145438001909806912147772798405190219782055862482896533040277012386715780163992575439761416395975542722658150642152068968887423337974089168589637679723730957291492461742985008342599845286603869021329847648380589043995676222903495357837007011968771868536254516764202866846262053885113080248814726145436888078762181956583620523075351840815821370974257261956671280376314594743315861537878791989113866463297310764938169364779310014070502240496759790207942536145438130035329493119767233172233823895397238968255970049902187331947190141537979152582075914327311802311704307430128704990918103652801484321790923126656247670674928629236829054465304905966873995354904648928404086335429018943593846922205938137849547733317273275743941159016901782088246214681512616605306058484290198066409336004054179406424694368825361055944716213259454642593785509569333094797268726342363402702518618800808800496110330456068318598790885178982422111520927046872551677636019383279613648770001518230242439750798832179996992130855145315481222384616534128833160360842560346602014154214568347294672988262409829938260223732998171763685860314756481789988259478978215833990774038033005047606436886938580434310037444974486192862887477655339046260957091969638505965202845818557224253204112829983302358717516642453427275786265349316346309890907228759681678697117704791258067307333770714891849890623913520831600441075543579187049828643997304636174901862530420028163678899062067089391160305584385395174382232163562127054893702981773270448539776297181747569120844455434874202433933269937875597484170356418690005290316814121609434235771522245132572616263809370133297103325557473663941459616352702135750821162676740329946422227179424457181242244906293785770184851471448756903999480987549081792878848175542173856973947691533075146528071834448543253944503912564547011588442820079080332133384834364868171516765035879022534056460945571300615415674451557400054390180307898726820595752161031885267888402452981411031153759625141345034854167869200965813182672402797142115391435494350933158123074638021938827386403135092459691516206806910730028336078030726178655639584349935690507525180527890542845211433160198137162235222006080042367180232919613216029630262352806305429804538372656191426652298306777034156944148776663948256138916075133391199559775331050517033778165770170370884273140126897532068533455638689257262135186419666137750822781480686563176352212795209871860962068406289052027260738678860897658343453562601527354507978185777783854948944184580058004171085112700977585331501697730420783492008270062031356549355064231953724951443623414635942637343621020790110346620629788771450228102628681798375749105595640717135800543764001052212589312419416992315263998726404636303406889520552782731848937436770271039592491941364804228345491574044067761101545183910215948530707267576715203187912673053232285161157162500513668112236553161930412591142370846470429816613334659401144130320021283788420671320142062995893528194507442970352026576762434023262872548886200392639032468823212567687946598691345736966073234262438588814687675753522296008921470244911136029082639709082934394758529999644039436544624488561971231962403277047851074503407461577752362900796468378586835128156657923798200562814223367167370656305977477093991106443700400082090616416883609243994985843285543789029399306212095665613315189408114839795601577189116261977351091068456623897375720868691443884158373882029355896489389293857152411040828394158776576592571188263897297431148775077387616636176196480194792095035219430423784582872446556943137673277304142490401331197492761780930349092738615121078114280036702938053161753791309003150271121881670602556270429007581908177304913893021055785647967062026968585183370870300685978965236187840696258589118719293551919684599417453311716631935638631035590097471440368398510277804111455509839070171381088168248076405590443844096629133398505281660106270684542049555854696021161532011826407806808994606224099500452297026617030464957278891538185836711834782058402409380822174153142930826428746845353350228688733921018528132629484035473331284064293829922591381978846213805666364851967621562075995862773629027735979009006273733898913597299599565687631946900062124163287667850525705518809001081091090766607218562077594956751679265389899812832654385850414581651404357364780948504286781949335526016628309153595022516998884294968534551059490462988876166332193338502203183562638404337762226422733521347424636642824166228978486344195301695366587574545606846065452046998793986063256342105167876759863038341181563988690363005710618330826774296546288711941654081246812355397608717845034340395700430775000988165735002311168871753181357190014496109966968113271946904472775935968921179918955899367065607502978097516350692281050411247670377599347216548430765800082645128110024230150677597163862394188521965988384338407611159245139351717877839500786253716499984212849139971457130889514122394532234425465905659415418827046314505318062142003621952939792675851915392032493119748266285156773867678786176910457176081182719149386561837066493158410118419486775063252346480375398289487259537304748331161469905466167108549906316377924657666179030702341419887865226009029533278359549675024625228337184643960158227244012234451900235222529483823001704081209789722610858886748246160259789444838827287815580148057966831194553693393654791194795711135161059302836169417526446214001758774493725548851709556822577171735501993342749479312327758024283738117578214989539253391540247509201462026063904068173833609721165962744594532356526686672913031688928170463425000065282265170716903667853700604730011260544507668043653235458861087993988985743323113242187072220744034594095027611465672625465462895017642492373788561825469862334691297007153104399965737160578899044634902860959770093831407172422042139064718890323708377490962986556454971694746841956466301655916561434293779390404975180598730941782511370332308301051283278747463828718834293075081234604968832821741687979643008780613918205055548639085345595834634149271304025032596159431764453330737769564030058783814926252782679998100950139133116411555064492389683078681545042740472289974642585995351051478932546266825360783099714540677351382203736772951839573936073481317962958513764218698063734407937673571847403403512740130133860321977960832337438540582431891790019386386722560273979543791591463585462702841518107708342598648376809585250159653689117777964132498775522656641086641502886960426790225820963632243519997702072980222453798403394590559458079419066470578993794889036803777080826905600949591254934968200238213426790360660388381623858877835465163555177597496384454812856693813345861051452309293886271090458270229262647793070334894761063616735133675787402063146530046711865997829108436720818925205273079961808396084529580872062831047598044518254249590383881994625961865509992137248398759371663266839919951425584003051976518503449536000595218228365769186765754954860221057305622534976039417807003264107358515214350711059975406030896543534673079749418451737228044433371361351505286980918980036887163498447361832460536803827165842529504486245952597305475992706653032328560828517700132254511786383946398161395532760494148873277794254468816126202013910699365141597600090965584559818257307501388627558220060070074058872811324691785981592455144414457673637934951786035596566683024475054955962400232321730769280173144748104271860489327208473814673753115462943099707957994322859961231886206072190997321913222259000821345152048222163279964129416378237698467003885304277438659737176260336466912344721532607384638303500063639354881373149200240794110437991296131833752189117171896434998924831252837617609339504144805081543569563135423856942251983496378541026258744108811050736102035571120134710106049024867985194387330212834479697925672018735371686707115922111049927827764715221984950745553110187971568102333577149624636337253972774384029287497705667563635270392301093295910894146459251694731318581578680859779751190943670741597359776657437471284402305105318770674378836682125605462141328958247657846231802838532300926529215650535351706178516039468400693195992927619646449548460542768625647985004875872597564767947517301981033112210812672001859022692759944528961741757532001095257195432017964803256348318927372888922395937754660454602513084152683473180662024599103171641905789953349639371765887191349896287698090977659789152051654802016470598186565251924894238139511914680296360410766850988232331176706305109013626376422521587707240707288609672821273977989597896334222821948494760173442667549042975345695835788467391428177677142205807876446776233623229027370335825125520482281615135257131232493936332946937137738812968692175732388728034203291993257512806137124515339241317451289953369921159128052014612123002990229951413688701562091157692975382028160344615124217197782360267629356236279706791624928304764619280259033158865491982373092469448466512788568011470806830757672379156920048398115579705748032321259264197386694817727555975217412689789477756411636748187345654332097705268621225910443983106414907648015945935031086508351929087852021843791374100202898300234091699908499124998203549470977596356825244785803935062175085711787164559263394484825865504580083394701404511918648080092446818530227965200675010449516997182714777262949240254168232120496054522947712206986032462710051629407204006757632495172693056172245537802652480544713735900757925643242561666703812643183757034423757633896218293465196233606112676602881662343201020300335095401390030658780998437177969579652854475724160432663447838258277739923879509855836241898072309828735839455323153782698724979763145166398821010939414303087069066903316852695423869312091805462800975618136310681077397703337578023331809004541383941339948246128657558044913503976766969990912463791542827282211263612024718202847790743911840115094981433451982847670996877466081488101611539330365439407212673688210179193973597224816929063484592327978780980602014960642473492586276126002674383472650248662309225481626063297137557290474831534198383024457511594317363399295895258609761163606615097993365965166638334319480751054445547041423920922786210365199014427914104761214811324728037805102368753662285024377550518952655168074972251303748949988226325853038480923433956269361523833975451953769939703266349255220993747574574680265134874618585140232253312481324382975523997186372328684275755887247401163832016778804662177892458948851433401571247481673306282304017538570287200284238542676664187552025142552208637919137679281579890360458865824370526812133278104307697565393917184511209685721145893183678704293563371476340328381310971257196878731458216186675511449602651959256713101572275561291303750080301878955024761221483612396343432711848688647306761443751182263303718011123400662366936568108824773085763498636829552080161209954363036698661417641409760040359609692764007890691510976748740773359919290359962436779978191380376907750769010298141705553220399593118140736285914494467561034168046308554410625162892522260696091469926396731548276731204397380562209982250675999670139417536733963492343247706619219987631588621758617076850216460568011089917592669234471791021725488991931700725429069907825899703068748090624537340250563983821197835209947885725916067020354158450362485585349024433533827604513278416767042097699673614046587284082571479937212384583232113336696060663469228112502780807231081479178296548006121318412248073003335502958960156683580568184080298503184359133582452380048572311492685172398860749136238821840822978667329871874177029960983614678489986346509583451845439744452725678563998407742233206977111848965520174455193667301065390294272497457055478819539185241166804078831260151040520420325345682339259585781079427517512205378172669794677799510309092033622216389598526491951263029985275625712139117108611413753927442429838089674617771771037528511013199915204367862310786706599856014914489802104270025757054969940750063837758652820738100430863834544261124954696890337518255212789912215637484039920437775820665540412101625133693303734551654857855367318162300282464732367630471525754214249587098000249928061410931345630882304116430110383429788254439587736386989492901840206811311871466408090844458138559171569372171271726638712276213095267989539596405895289735727455461458049277677571073076726820213864365976923657575353549614081153037781850964311477119338544002237626736262168027039716799908640142519572666552500873175118054023470122277115758457320199139438704265411501946340930874523544312409429663834150321008556250904983664670873402957079313581694400267707871847240114740943997986048297241144997098886197295869234235336728775750796861662261824497076243059398941752665278105898090726264090575819229650237467884471318023228205915265986742831292641051242941839154091847289820210229835921629711836534243742892593647780014054289846710066468683558872056997826900978314666678550293767364310500849205387932947509011883384178003653255030437336488435975418101145038531400015999048606366784284376080088756955989338654396540058909747223809723972530761231225396642535566012719481437250607605907122617443884211070794041926019619069445923798684624056409075214062599619875329152885593214854361066073225298540355233245969849534751802884847078542951200879798079997221650302119579723510282534077028985629337209925352847907521520675375112541450756540995048549046164587772809249200268525699008480435790794178254992141359038904167758869626329131871193800003178590473717322642161222624090686406581164161503175179758017411797975191033288589828343528965762935470340867514775871082953613464949003180133707899721757068055417462977111331118974235311930988316047355638340853845718729812596031725672833831521763681538013712089012371783429109931616798561308560229569813094900434222478586363185837382481753021564099249549806501566430922351156889491360168485035588195212394995337470397299218955448565833062023738472351726111199936869916022079485017622435827562969644570634544379578913675471374418016035285858250885304651752603018482033960502671472466283818835183804456142504358826317657082944850479522640431635784411308250839326115318938320025247999669318395943098546919970642816867047057917343290765127864459550126039215278681925759526861515418319086393083663324971212586742811831753427053212172413006794855603716913758372424813376902894715931020140299903393052292356076875823148140519938102220043389800285505944015626834522829759639081971630292595739144078892125873410547876313069714908089714390181103802785106198757423262603577771373162475706146726058014810808576378096244194879157400347170952187871330443908018940860018024420093269478717350794897195076112824517543671255502124578935942665954568877165805931237685182566184236998195580924392952325974066715321229299260183115413087048361473436156236951649061029952247168305740716918677831390087934490144577667498594574097293750819725619367371016999776501398163076336401138867302203707913628658744858842281028796860471715225221228683924685267074269544457446130732776860588216215525118482523414657804523553829265136281022882987374937649783422158725558647505185894536512528818211858822879846389310756513623111192126342146800295818245742843320022137688487267307447565206037797488523136100339253171977757351064515858938236646190898821723508412190917296115148773416687207810082184098253308000911385390365504777823310374256011239891041337943803626510613993563720064989524904595442577655906371021282835220159331147938293640971632349508609170652212914582759245886026925733260729797369200650497761341840441102157885865921139226952131102917712087978308613799274098787741769959803137583458506485733156007029548699676357097344373214562682706917411710431712815820875652050017250597629715173739750757539783630748824916625357618376101805273742153888127022334188533116518491926995727834480121494972825586576494410605577111851037153225515971325132253416568970099856972225483228960855362795527208459507586149667024491730717529376065741768455768142868258841763122340726665247396210860484222884751148930022050361721127659492642057651225342870246445364129408877343787473260281418500428313553745432980720864641449993068749262366622695068138640443861481870317410204956469842565655409131731776426256376037817051566806255194921104044529688131827787785452026794725090143221818570119351525635559986599409211410315436326054747582980635559377547754133926696300488458344071158591113817150900034617534456963952899117659585371703503574109903920626385456105497828388091462728404403070939241267736444071470487429159312461658185133179003257621486357392851311052290079411679801617699468263923080085726729786979514392842832038314294193489800949433578823701238921835714764071000049323425777035373652215997585998791986063644647490814158974192541997242440545194414477505390158543489099897495665720840526191083743380072573841922966843345643681351480858399245498922643930562880506427978272271029758983731882836977594358775864929377107988092729746145082064663900820090979326790639293730303759746953834920876026295439967479341025370387086086215238940976417213274342860564818559023420564076268549202191023755777813483764968705495728747286977382555041266692062935574986833665114333230935795444237476722892990008335753226469873633729121572638694570664411047635172844799529390807486716936052805579913230644023310395591900993220044578174024744861114484371627733879045550391769363600384142271557493841123874351747980919779635742193687414430128764508821691500469251648784589255397509205051235887607337523775282975109269711996312158098593589788122812574647049147627695172418593944617345628922413707276672106522045663436792744209173067430371107893786912785981593217488629681551738661195550096751978896396094555021698978878366268265992347834906913276934308274818427352130811801300401746795258321835903519043773250925730559535143734482789320591264147360823951784596143938412322946125207627185319106458822912492393658532004348839057703181594429162396352787120036291825307357029919559476872667797160118657933596440433873462502838972199386219982402483121406766500552101470732699171866675042026828359129033724237733477478291306615790641912160702574164426341554776365939971092884015874471858556816684907519847662499446134724536522180062299240758733350305475838564358514797707936851061601697528757297385957882436926103852634217450062923810368107448705347603794904805225810841160140767711515944462391798308314593824746615982957423943720518880959541373234217781617998502238676699009178361429437291437686352805077124987591756413147540022261393729027410721774943765271264296061338990087922951685699447631843440561231497000753008083117997106294885871712602713932926424188347749299074698662750970251275279709326676887644270589160554889631656678826514420950919036117039242823146133831815271742797622398381517250144091539078265762437623066187861356463593610322299725028832654545950754122631494263173274730155696452963469747508697529518368744854489404984886481555136423981622044607034065978241344444537615595322552668335038226486101546453354536004742825661614086809383123089942876017280974024649755219131489326741070252391034922263582948137315145485665384452191376812495299478939713571803249360695861624327976922287215069702659861392175065194846251095180226378571478017805542742832014157797337671500485162442047274365536055903905014197042077053869101488997008929345759064698180825087832602938166639236476994155135175405272296686770247066630964756826041645167448976986105291674355482842328515311954124411144166748514941090226298310748269387583524986776428737778910718733598872900864763526921649619966850886980567627775012484999601748400108782163577494656281028432983667918033429206206053612972956930561227470661356365787865632375936288931010217618767563579800852616315782164727094659398087637398469925179283693160839536669382141438204624517611832934251117838245881544327092444888949270624019446544784020866651164515071503358402169040087713405858686804806822628351047967953457955990934038206050435323093578696072543224861508663045187486163574754094317864575346412846721136424728944756248402699770914883651217216491524758791169653853967826437407464884992332627936779563970574463837408925089958297098866423973603808449588734863839785765349723144400990928026455757252096434108109472053145404039320851798377282513650489850853029355483532153451137323635986909936158970874009876898525667215771151699414494166224897205755247299343225307625935667158910303055262130815566485957006781985753240632987763443887167643608471372734566198644451446138935462924195519165388824991020794573389468148531970064394543879922556509298475899897984073846113421326471720345130615208946353734109792914916073045093755577695274390428374386829078499380302514351510563226799472017218952667778281874035108144581353059590325286105749155751638210070375534506717399695219138623611208618060855156806385353289335428718191193175869687876342304850060197536793119260221604848558286245572137941119524688719675657473493913654261730137049077316127361653784126364590118243711729169912160313519698617974880498906894013214738603276354622779752165668381097735338807358178287874780731676284435785208088632485085040395232564067970674512620091131138791670657526941148105870944573227449097922827954451246174323856428834196617665087905604563273983409511812181897654208080553529204905108980207888029091818686525141739350074360856335496501007038144565638049736282895477496254621544258198316925391153350429214931006959627444850195552247695882310355313130492578974467836735608806737340946521941505348643127105966162949484957131556866878894936363660805796299423414033092349304076760149410729487182583647320151584886813571246543375307813440566404044007114173219429158613813350919166914407923279393975600868010947205987202170970457757717080308632243979673007888404482385904794901312012236341121397360629810693787629184257283498769624831887705667982185495706058042519213028101339147901370921063365678953254227262127108787296632284579263544235556905669740920944811003593434560434148033179913503858934920775851797506449480430554519091031017694147565117215066876703769440283694157968509667368248707736047857051530132080051799314722169230893592985775165371868054881266147549168897018764677506553002118437910702157532645699183754464710104993518798108208938295654315154653475190466629599869472712476206923879789700453053999421164118112844160048323217030256240549474254116853439620344002690453397876097378306538588861488521467888721499606584050829360488420455718192433607630655575846938799235922706094343112571571983609883894266856751829818293478426054394894898087411538980894019266529373670633174582672283886181389402828607742313545868177722090107267065298642562156827357825519862029885889147626064208758189318404664911326583138680964005059155820629757770972340503205719429707985412028039750259241357118387018899332486571508278441087563414039328084407088174050838951211145520469984738079515751509438240085229797632612219632975535810577307018865981091295397076405542320466605671004352382103272123588379607279189954474498940182180436994683637413663925940488290532901375574131509928051149887970506805385597606932774182325964974845489954964475202070323689059607234096376613764020073246504292707578131715218169564038816038192001482064392662552501751741946672606546148372725318297290068196761086330842921826639383762077801139196256686955390567626190992412802367709636536634487413932654819814029446649518460562222488309926348574761050327038589451089952385327780591890178373186763742444330197229473586130860181950846402011189911395106013779304168523345630235012385944860722398525955519495971334821953622134455220364323444465440400176679457002443444767901591257665824802138748526065148067173574091679176810686530356835131757190842110781658579843332315396343585440621960189488713683408438704092548357605790000230050925223933589823604781882549880129968753608924042852263700946156244978440290991919497290147722096214497122963795145561494658147434949735091113010072283864629854151480534060434030168210037188395678198469749964742782430077514356452725051467769344054425775448097252469092027532562226728504940623464139128394917816131465041806957058821168904134450047329319071358310462250600875128991702341707574521190584144164176008989227139081545254131364342723498616666068873437825753450176862037853181672376343501820585723362043895236985523387528306092045521225677600450879678018253074349234707937192907279927242175012393649342258006541598594680508444728542915340023984367755769682013347538782850301305085947579809433200237318429521696081803325211031933235703158745399298776832270316508542191203716167824602679496766057486313140865780069859203186428794469678178939152759776309967781550488415830178601827160210525304955664456513015052009012655797279551058485456377396114799716457856723634531536735664458691207931408369453062490899673645759045048525688207732173568908390270990374051591902503453788750287427434460525482191888785467926277159712540493851907202329881505871838087772882030337826589962747818428092522864476851822711859766219544665997977201506846572527560109066614493396665417297059891212659796773423475232083390411345468721643868704277136848713381725962743351733589177519753165807857914015319980437322771496914571435517390490186932848501147303662331286700569402137576662731804318223074906034651532713380013511006116737669145887331912898721308831455524290269093184782858005441248147010733937822654781342539504575488415287489900701543215095786543162887764330401953710510555935407353835416720500686843182001928163989958066682450975209663251989576949301701531616130370189030106257038600031436817099135151787082762473498722032205245947471802811848906147649231550210396430994191724097032918026207970073554779788891692882376888340559193364949993506073386740407384585940709701945688786840237084058834179854028950327972407416817994253805381661606603491284392694344065298204270670885440511100601297122564643692475603143419676053867090047918910546065241203116310980575604321356858170673224121968350542983393900017468272832470121721231334339509195740834290997188891748839235485473921948948670448957638266031834775657414506360467839841715098100735641463097730772743219464180025474736862627186610338243897148466596419838990734259324155439052746605878059634969318518281116544491780090361414776313132579293196653342572022424804558848593722699413795386838363841422695930950693441172815015057408520667972101013797759857137797322109978664563430950759154096779682534725322368611393017933070258510956422438094985375465399849598459042373797684056904853801771548625474724052679828479758887271688903269534825860296933294086580760426644100772209634716400745601319034391361495665263118939037471845514144783093645118277619183872834299087154194511157523556573450587775771830067139343565386232534797569895224974753839789209939336733339388578049662816875766929422104847070445591428975929137116887920288219382690868052396742127866733458077599052498858575325736336595790710840764773317736178760701587506119576099348197507694718761848047771137452050713727727096562531810745123252591449352544502200172893920268115912979668140748612769403587990363753998053849305882101748732560175669996836875953373641687212490366590016573186352246784802817693361481722534459840399343747995359997689912176395553411567991706233132422443326438638946997351710397464589328610286659408797128323606696699749926107384257972927409169841010641767124407786065788953659479267464450080923291584950418873971572111439008887037841040260624440917889510411399529689757268215669200919432228410534762546816669455982715882315114393952810303375713288733929062801945008809973587232565136981562352915105860670861808154091254835410707590045565348883874979151614197626705584188256663732810669450760220642423740237467556918583842995518939882290337601848594579535272479698829090887766956649252127057905439182259290347340322936190818633577582486363288383665415365756393801060683652780101088410249006792467822499486514053140446068328673719879206055430566967024877644963731328414960992688127453629075954758668552113633367941509856721943226408954051885080942329298283559169066348284241599955993699104775069810662818089846543721142096928192605782170999451659560653019172493905846872670608999543543072347401523500357403908967087871377169395219668398664616970125904730417057179045720708281587069976405275583730507943886005761077791958312356714294589595829414202349619265241225335533362988899132164539382216896866226666557938018248153193755058857043662677725830428734366278690111721427796363158017153793713729941320543529285752032623927752215018353313913735614923577671150892970044563295820074978651521694458611470413869843569610222749832991591109214663474581493278974578375161157905333736498812472060580279931831186291220728805866420596697079002758073574880783503998367364878463910623600303496405740916184750831993507656341635415613605182425619554131408770356859746753919747139044592314238669600476594964517279590557340092608045519922585343164847137542909812782046712665880780557755179874657924741097307571853877702665926251321569932302550235387466753120011118231974296678522121532287649557552282442131696192811821634981446798319724821684657388441233902909527277750599735552270620103288113896192573112865843461064443374378532953102968161710667719801891037234811040767817935580761933741730667208562650345189949418466760511168316351994860067371381212391610612596654345004755900115009544646938228618517012077781572827587345539466872748394833567284121479077303546647593764868189636506767909982305821309894820510572841111751197226726402451174204342190825365190906693648110606621055380245543661044412074119974810291649755071579164174004899954534773306771240430205653297049575267825790936385890922321806696812973486892204153456887377100382552160790479696865643971587503758808685441289600589541536212281840354907901315022197044006706910288783119731577573430765169658813052529845232166430662971535369387643097202707481778524837679530970108875711146295289141030351614136693155247332817896441734444245361659205231629682972686572811146111076318671189054811920094991597640244309452489124775685593968493672977055952674939330582956628568744079289375986692829923460094054517988175988975330149820584846429161578032733601556660652926346128145541706515827014904432587364585782876519729867327622546988085650284223031986077898152731642051218231569737320882772450982456377561787714185846796530835102139928881040770359952600077583106134212356475019160303613815533122271050396583387042714188058377786095100572090762043791935839986216995503093833430614362497894901944850885936301052702412476546424389234584365140407941708392219653404555619618971047842786461696763646623015856328211591986091061468700749646320278005134804566390319018115062480298742994702210701092525391877554395223885620791787205211922329343628264157774892651489868034699312202649344710656705767226695758612199451556236228909798295443070807884266103914709049850329432289851054076420778097969817281906408951514996803149030338308226307167039676917840950698152320591950283072225391360695809762363334461439663761096121828741917901235448738469723744722225734948227373398700775957144459974942164859609783158016225671059684110868846781181655755956577869638162289508381380561009888556401707035312116922804768400613116376973005343084773364682307146931534738732322312717783076701437623066738473267214121577919474402755020131699008416654645282517621345171137285842670545906585228489933995472243167821087998303572926011072223542513667021635987977141621619360951415190342259252466145343340941498666848923235022970857264016655003642023414204039167976241230186033959348132670900407048932065904718804333677263954728209951109168337070417740741560943711069210352638859319251499939558135984438388611852457174903705263636063327296634552506659573555287297081883635990892485339207606497784984010981108119787109190696462078802493763931709912937265418748413397955443894565859549497770278207481342699646860782065446566527825761731313136874191687390242614259802715949936803239461379214865514759856977515622178688592675308240588838138981693729038752466684949318093368233963841891621090059168001535275876534409250677279426495221129130263287651680497716381599606712128682329880629311320385140045610208127273928377583317292044783546729232268521861192222126880009750927356526908413477849638792564695065624419153010361231557639115484868123954039646959130420645620411625953886163772468486406389668458826323877481076830787603705183130474436985812250265771033352189308846157250087242414126418502674020792610520949390301166009518605766696009968215337923263974012199884648643674539731019904026878411391506031554979904063878004941601587295238333407775522675686585443840926324873880138537282727255000161711758250636358616495832348916837402196325860156654297864468791073435199366236613466982429241541845910688974401191274774999499597618890069908204864549929860334064258818796630857965455431081630111440245288486813211824112311439360066811913859409286165768473705493966623277986795368233163190796154788332035920604378918042254082974306288062228997270131720007905744734080150504145124236631896599755616232585843689141268927837492538548593740878897533427196613594048972420557021830614464987465456142407780464796412497036605157399530016063165870970937769034928984996842755478734566982870051072304547042412691173258664656625911925604440761485565529050886522986069637006219892128804001689872358479380402228633086663598096384777984410804365901582989652787645393738688621765350755368448373842736610549798257595943211910061452093316889734238316266289976912413281476976102532656913102362382924380568489872271681088543697743011091714023889699889883689471064947312163517618512604338957655218286838989071372776786296172947283515119024100202156989898301650981289683201867528519467661072320013549696912410122346349055236161232507925809277239888419830829203477949290669584542691551032027303021512335858497244259407521412074519476289090556103667756746900306885157975314352807942888172778250864283006503160958794302643852351607914024552738914759760278161736179185311223881952266925102788873773172851849402144567884054282385197923156347079848532923408260177798830192296115454654388193064604613828178155981440779716146982958256134710860199441224922321112761144485385362710033542998078854678665202118973486368726094084565660198669969767741120076190377339938299931210881103636871109575936352043503817973927360233591332368198836398261503093571278343109572565845724415897037186654213615952506950898818125989419756770891121518381089834455242467739738782723254531616510599411465394517398460003921619681784939579620801729998350637302250665134198915240867644401770002190793818399158118155463138415752990971490396293280462749616649157544262582586328393433743680922588560952373250683366230626334421848175911232599762994655359346843163274777467350231813888558512639903129630009598301621913307804594051669410598147327192859473131281376221908724835145262625153222086379609948116528638726919548082988209393270118568062771109323651600873780858364106559293002650671111327352789600056530262020114115007113179279216346404029176338179336632840273698628357008993364957997601363442841201276177349621765997915057530022816552631812370603230557915400994603449920765715185060493772726675711965173628543067090740005551683298172072429979332093536872921470110916555850068794999183125178761037938992134941267722358340948317549877240754070746684658823734361120056003597869012693093402360083056706647069484588027172711005464038604566546837264540384341450024056199659982992433133444505488572668760998371206554864187538904035388593580486702727248832788363485957381442796796643887660419046879508832782496554074719508056094120419424967231334515757617280039402753615869305983042800426853639164292874249112795176432090445379971764524329740645129323016150424464829924082068002203366303131507941339257759271267320044473440922204836450847777798333890680174219405341930236179138576533778753064415514597474888422575994715989178779972509465514082580261082379194778680288661532837030036049896762055422770338985182442845981967527382235260223596352847949958997822121461648921478178385509478740089207934226257197324053148460872747972184543515933152141409150616588231357198719695303917975339410568530075138065103625102879346325171871130633525113837757902233103803341802397704128604429374540422578739144659323080330731216657632228654706534096731110085867830647325750798276712442055114419533666305794357816124920227515340863332337112950728886022427074461037880291971128052509392323137279399296186559796136420109306494837267926014831835618814877937080392816197700995502863464261681091939542961378263554624174286746146678694107301266033371748712133579329300583979134782316614790919141059224713120725641467553117071631454891008192298331044094421736759201895343654459872307229225305508414313400512862797300951915488962699873176341375601336521689125230127125074295695359081598747069730265324799554745177237194433416973099144140461836917410091674770401506068715955251626265037353682614342439786767126951906514951996878458545354619901086356928249365469571616599698576242791047228209369264184798393101663802140137650848859159379943593294963041460500171431947209127888736364392827942013447027409465593845889782441735961850883307513199579320860244555813915792481254757401633519152098299995860156379612518427204157134887171077576541435819117593101125289435826439285249490850461478995079391623809858192933288360840213966230440405608906935768993856779705689190764593860915261624332668105932382324392597833269574354456379814124268686758532468398587116245296988349754652224011604876903060394449330112256863268236198335073860281094341216864486704833840583777220230013263161486809716431037452914296502184712395748366921174161321625116841747318368304869812077309567858242675310797767727179581121963767492721640751442414975548000598614274664050202237844964358985625420858162560180228060858111439109048883659613738074617417912653963930254805552005781318738072394598886314687122816964093012150180451721841215011157293768425868307750069375398539813890227222906383816933397202028979015203332898650606496062106806806753776537396075302075843824793729333303529185835510981311094918604664731559396396319476066354019249461536565495262145597268717838816567028728839262326307543590281985513195133314676503565566748658622906423110779528334261844196255495184725900110324428229483572065256309894761141870738015466482320022409919480187490594266363844291489253193425890772137150329438215692098142975634511377947913224581105860437025455808298755773285172527037678108394014423531535655600653811348972213419808082062402398223283152831253622498000099504368241497591539969505448589014221100092927045016348393435605762521076847705204675168686467974583728637541642702426034597644291825020175372944932438230585068339217852686070082224761640435610161204800428082515972481643211492927505097054280755952143844436168233982123639762948480898892505705278476963807622734352366204856308057995838235541373570101909385510297951608856156430081868242626701922067402782379678844038242646495375451193469488977865280976015633580665729978397849551083484738347871542120783529790700883030706786376835469388485133310553859977153854676896379697837205465946631954412766126396281938331772293220041236208357546552689207539192260533574085499820956923753718758785438521596648215457603800248910446391389640250010636888719081344047469355338775681067511628280653686106845840400972372191264872041180950165323962062093472032609358296491729870445842705950460674254185474555680265295772339587315877542629531523483356793569549874915597352343237630475262454724558956679958455380996498096755009828663575467697864919887803431337567918505549767248707542132808523707022010017825406121353842381328810807353833844080738945496952001953301084227364149358737188167936713384447529193619734509733350004664211001091969678622102394162189775403075718493788144268749854576573122571041948497092411478249775331828321991016938061004633422828360928658840774816053455605512807518674432054338659506420123919844179773945473099660053899084879716381218875971569731286896862862147369763519624327928341401111969379680438235834590978933250826715018872622079537070304930169482247500586562504044121440375021190464321943930262350726982816272588328600024622680488007296805369269040448726833055017892247692823014247720408020379806308837852291809549612682973887891409610081977332603902282587324698427973109185795468670679313567972825160052131780209951679521737113691727255952673353643531692897367352896522293853664183622008400647756581674458874792497323162463253723791311339062631458281879279772771537131639360896951955905982215728495331047627812774030579914335900845059140464091828011253180658574078516230563236135072636544704326962311542323470906160688201928886778170032669752602464824281558431013185599113825408275681642169902034243113806861391551580468208406809550266685893172363199478775458828169948450408293203967721603173970752499976864275358435793653638945491596731909069473291901850527734235937467663416170739363596730594870594282787334181755438788601572838743243931554177312007212844399038287502356767360999450900345706963960586586948576326307870480832384164342628051664817330296520653895531603126401150877063046507034231870884528206254196124655666271783687721170294677883103099458473909701590590884000323568985003808781175291701937454259478006723031051216590350652316676898132155350888640571924794904453307047182583910912595191486154197119367347215482827980676964261344166728777834459301398217734642187627143196995261556890562904653957456085807458534600859962631999747180203707711947456146313193322408409144484752187109103593141181328646464667284595223644206533144874750218588374658091139264399568895225383073664071239838004922102053036764931442176023901523721464617801828127728966335038317915338692221623473670033774254943783361196408473070928319337433681357534739424611617776658842623627277112407507714778275812304944841476028336095352265485453383613690839934831541999145054560667697025638695332265755974869733303007847558448237303486147668910432177544342029733286117487026174648917274053048507404209089409302636976324700689639035293862069637421170911903618660988947436199021018334832564053231435312715983304299194458672818496292996049867067833465350367095421648016957822259636882955941210097822565410822191061237577729756665671435935775694736189256685355117071227927593486167879804170385288345209625688732088972381136998671570372601296805336153403692577392836860539424862073415696359989257349869851828358701490968555739951630942842299462947768356771107326480906521479058339942336332713891118345965099574549491984342222592533351253696653905337232430489878534178286741475586923023924015124639517874822282958662672752261076487980663194883860683855436562551905326437424160762347137327435899317045799476589695455096641597954467313827249566167661115433178062985536650110174067959508962576284220822957128976933067057757282108526459259342078144201410101913161797503752194560234030280163499536613957396315715829268483468889437246395167246336374929910572193148118719366153477986388628209820828653511117621383141108050809944017080012767004524851192685107193433906998257707980158039355928579665630688206296499181523525758121336834820442163164321312172985748568011474973773176095585199844751630857882517816731153005840507080047073154736202745741481817095966195601064464350528442318139639793279650803356851797693893222293651192968055267938400389196928832269684282106389491979238297972962353706731814358201830526238385597484042401483925928498885565626950486695403588580299425478758537834926979592528097870134526311559971254889874453320657135199370339958207477151212153887747386715623112753456707172912297192183797275463825644793771377011963133035761322452207136341250144950753920469397569718831196293731411257817766137088154120372023434495419867404287793348886180100937167912331521619184093567414687299922526991082133263414663599018418904835581967502813110204964743216809081770027985668178732512365450271610010011624667596087125266883244175258886961621802337304098902503707332945190339521202849299547633071751804127278162917816615625199290476917467793111682228659206599219722749212888076446558315272461527955973676403174804779771661901850102687750839383870322227151188648273413769539082044141693474136540434060774769692364149502117000459312417891706851042106157935385741664856276403741244332296617202905942279517038524349600017371871083207694584910640894297594326929505907159392055476933419412799249320273060099461822424882058966301436585149083937231025328823154640495811806984292195861985420983508510649132131879532240712629825584343970487447341995209603253473554179501001340314668541194024256983099840907717322235438381212508704057900362923640172425496226759117963951047353622652757900260787627743847255209699241134457170791355398166523948156692029706026211848735664658405855101212704092574023255850203209043887202792291882015926343881619956675375336403114229960507805741417001503264805571476786464257250477055436114624811876137152503569755243632972522332371656631568312294446900936337407461027271784758688179841976225020228717578243624496426175647337180261787778114417286108683343881076679356884716375911085772844224173642896267722389249203090477728352331753468385315748231890336390153812805000292313866822576290824414540597492776062300966000921802883200565510533691020856393920570007523821778048974386328831375749392503991940658276586892603760083374951474309757341798602347719542901697278395973011262788437807773974788962257057126689397332934740219521121459931769139068009889891053083284811591415690729209684645721440145982468285957417468600860835747538321845393282453165261064074945981886812471496065891169553155029618309331674651797858176249789837823520210743209804613012676209239013406105478006605810667505079004918830926088316861832275472712115609140762020678501821441841684413893550903405156479972444643583678819975080315336840599358657262985630390026307266341156302066295727544326829578457343611507384695350403233921015626936287504863122598991440405460359787633083145786948589086380443546236303185810890008551465248641730556783054182179054959749615782827358452179916754345447164352812119119544295752150128034737371712009716879446777037043199682207548915917330814417309004088420721314695507466166627424858523865545692931094820188047468888361921100061423837164199079341358470459959612481934223806561217747249008622975283734037997324373479907400783756739031482788631219407219155286370017300454589955943674980674351480368001216959704902525173957297085697574403808281170915508154580796952397945238105250392561936752794609170067529242477039165740642836369929102974588402864279062562875830443342383921879051940426677507648839861306488510024417491893621577610082962854209209035727462550332794616529162698805857405804353515163959847244789494428403313699081578731064154879495455547157144248919640548191280518531645931430197807601032596551306180416456051486233364438507169307002391080618304934035917750779403269913325162634497395721429040040550551292235640962239657858452004956596436654332776663947157013136044746759462887795139215760366481163186087661997597453265977482371049836039232678542122927210909468206533430540544712952200393251651250877553114491820540029624893688354359583046157719698234565164678183753450086299212929312823680676335118158172153701057205252962395419196165595350333106378832564745557607757800752813961768559063825153504560060873098291783062772975585953694564919546922856832145947950528410482922303766579092051758404472277476970120476012553389488960067438111545790611300300635707488193188268665831412228545151599290715559642613545358232354475060230750621920230436230876197343627248729965232576359822431400184708402226753927688386993793580858377937831299200658473115330276546711267054255732314829283684640362702677796822278685064447510251084843898221919337578222325049033123720255262561425920142921350670611526445739231693296277633284989720859389929400236019327604404147429228917695986675742483206442815401696369461244186990657555793430505359497840367687907938996216784386076565878275583231799883965482885138441553934852998778583178723584316840459929634327214561875739967513762102422150764418173710014519746640093574472941913826234126330185012579145915542029279889226432496746225231176880513224580173780422090196096411108883624427894891908778014036038666606705628152121787422338138212732098689421857159467697345805073430306704175810732187347138246692072397364924298563601054144090236323376195541602883703019621265152179553985940166484314151890235142020142880178175867671869343632785180217247802335656867411642417751927749424347791019743366578024826714003562851693855969904939064748184080764426515694469935651723938451051009029176181053674654693820802402966536205086452636592696349493934669292701479873534583645196954855990947369835499866951562406599767784108204217978353628464464268584292272343298709191202823957457342397373935922729380767895214201836028257751377913921015277102391982006595600859407271920045216719620684010871434935586011431497316654403007818930004214046423932763833831009809401297615816679712267845513737547108635995538208292561020224736929612415991911343444451096739048726730290197013629405136676038406203546787344311617071962485003010018023637194093355129389002934885115885768535998512607534918069902823258759238853890438992095157285222804822946952266392787627984508929158693210222214816152508171169180529723585402134763998408231340709509335727349984124794188050147148156411188793275533441805363189941985172226533290606343405617507337911745957464971324965254523109039443617637015126309750553461716612273851391991560504627139448915492859216494883872322353906416298143241933856088144850931268225698356361189142416414329170532845474762000832303368149561438578641498341044867743439794435155668980199718052533809120319066678859745630456923018143552370287473902945375723022351298531367295571839168049172166352894982213829955791620737693758548482880277528183584661521500601248222055602546061227781468581305882920487981661029550488802926715998783968781942242769228360187283908795681863478858486811116437273584448301781568301920179883593281471258855610157983628447299127629539849230143014344172426143631795359443418459064991774837291319556116219529792031724166399433802046835013888790393523950006506333870155569237292459609231821452931225394641768379516833998403555400251781178020783039609726714519036067901509599257192811288338694880441595689823485618038696675278693085280479811191265355819020530395115887613388365057269728413431384865060468751911133299805587327989888446046533236463046102464971590336091402726004745811428028279177033440381148602854363418008750418536269412951088932252137880044546053657273790013563208806921823283070995708272653535722424566433563005734675319346231039174784265428224186932266441765112163577484897262902011190353436641029969714944747838630377230993781797140537825656525664180561368288573635236448329929605415326007598536601942927983043667020407938549818811540138849603706690608016764324438822316056180091161921748577135407576647798175431086537408129061267011363140637489203056367531234621720866263070590305843013405763903824558444312343308799478928419941417034769143197139270617030701316816918648841912652806952400518092736134294850922235442053156581357894487217263122615552496976869728266735730138414949928929542551792307929713338522712309890288300597580010098287072645067091386011326079026580776917796972687155632607426168488385397559416643601235643514780169847960706960690678520113678301651137835946026990701030527673230865146244441585854490634955863309252597837397166282545490884941118118893164511904933426051692757661188921509365098734015272224522622357886362396983094440100218207912722555352777072576442841095954693494793801138415250053589002814061864220814428238863576103802358236416757467849169270711966124998508208382335149337966073471408142515010622163664889471524579999138283404691027663009975748508494533615744496887533457088752604751514155664742020818156052457579807834862177758436696495896612524057831984102106694037383578745638930214009481983337489851378637558315742455651209913249088360883336479445874864011480326466217833556275579363097797764832103916606394109973746734013004066793247216411890813429082364486533918242392578382101642176039149920433090466961088884274738805143634719400594471804281547020592085220507155722638471094251511210041883047119799678727831049901176212743120973070584572244587495614063715138875524921027954211187221939091849595091849282099405887375191449029631192802685654775511091019782611962800893846050459833362744077543637625848382236649331713947465680485303787884220148303907390270220374953282367325218219298251117631827085041230860468105451843949256744173921058838358464673123191291373935016758886580896514087161391854402933114577550639266581479936730168671702250947168999677551059391405277977273088025687623762912844266486475106553486149261864745578292510958867501118194093343046034215192840395255942172299904523746469471657676758154164426192135857984283496831071745109449049885257917937839574112005381721379370759553235339835619843596839561789339724812739756341762812507051751156996695529625015448765760490071203870641179275958219818886781806553476449380956770762295128191958029848551857928802504692381267130494099012817956502060834285450803209370587432626271142785885615224076987164904418256319584930348981280573951067491706327093074391751346341858191444873125426168138690201776305058010768347033016376098490754114830008420645725941151149000662546642030608843494552726921625062491525460629302137065412877912715703480030054083024764203822949396867980114689342408342254935954113296904406237341773266279321221631096447374542701705728132079619164046742442710803084080574415396576406902600655673399419730675491727499463546895481863952969060224763657056106339694515240171485779227624744291414134807603367151207462154987886878381561796266878489239973869328666684313543050718468871633621842222174865332866720268941321646118384377417687255730090861287130524652711580338658474673004557754524517295882941753271204524286808130322228665546572517743562425782131558809726816324194448572092672732010761298295374438127315412896484163841188156272120240004989149731204486762819096593373015802788297902883684838587039553310596075778005348356211390062047491531012274570563430467186170612353363636747155643819836593042782491184222307223515075571462845789447380754758172705239359460275802396314043733380671641423293016968254261788806706466101957506601251162996234714573474842893945075446928844906196195683874871739822256528423380247038347686495088871994942313731705430461050005051268153301703290532843706002497102183856144300979415154603721382576898339724915431366193648941988006838476622289764430899203152339187868162717929562325561420162705801739049030866381531041123295072766365723437368387130502108422186280674167145127563710506076964595329680330270670140291456403526716540008678337184496427486610075644017160845831191105595168164263161923077718219989906460989194824377766411106040696299518883566948513469168696437534188158895995963328176196733795545444497628635096232126341326220949807837535262729237746359278620426596792295792716793785512876816828543837603708678639599861029476330638171865562730032419576041308486628039866182108324313790651603181338966643154582726712462222907352130047599837181378276445255569376586547400185663384303353402334739876717371416071550900408265161406810436892397231721962704859264016507576381212664147733508075761917904920659643799042224750373580846189575853053946993946385526662964864966441082098962699640559709517411612634001004117606594208599109587963996503747051086650008748633317785748201242920944493006248388818914602860957526480891442853820720054763481886873249814742169010507693003418260096464128418887387211432970966461654487125112069177720718178883730942892500457595694304884534893259151569428600006843372377850787530074663859460383200355953056416438852907738671649399925981734728961081010119219808106565270122426574530029699157854386061571887474750277480486422223302001864436940877412737494746440460137681901773416869907462590622288928744258368716743302138395752929381125012793275224872285975803301054938452488873647472998479376425904114268918649853583299885037764113518364382490301079557071084726069788447694733941806141142450159442416075950040280298443079319887761706734309767269176934982991150622488586986502600059742600903593120854066669171299766615145249053378242782659156639893169856116495414454963718334594982576605794811255762171118541626567037778192136821651483493929730356855073457037655604827558286538114410077461906326458678073593895200536684819221583214786581690622542461987195484413093472561981975092536628197814677571206888595868848718796023300587835456491098445430899973989673037210067330712390697159557615967228221608111354742434724529098469985577269237596415457525470358502168381340947456434572319836806756740208514672443622824280322688829619888753330241897800661182295025269268619867876432839795130274084891481137819510536177577867740347312587173111895175988355336266550470926355153457951047781559999898483030895705913364371761602037326035058850267793236100548712865187422679643064490399435316748642468178875061371550441068538412197474402197033712085848331749760917012491130170109655797193174912107217276546140689356595749289377472191802525841063922876670587573132482709435124051607717598167629780000530280441610702445890896690101625051124514276483758830150375789060155560072612852783037790276916208470840949158440117642585208164431050749535592261940852635636674106899858652710241710908507945468929053399606771894999924650385267830961781178429305609738968939419054981382893561242364111471740009254885300351516940295423176245954345234623928774139139582248417961450864735017916579895145822293108297053396503959232407650195917769664087579907224019073102211404083949392924689482564995636881317395603261858655166774816880756581268188600638665848554157821662612904042293430669115397939428805983268370698001270323439430556172669409694739942605823580027735130267468000732966953179885714330797332974191777054484740387121912663859103771444831313163893762750668295336862513326373290043290747375720765495363894145290462829869868288253219209576107090653739601375692483160144100552121016580092400449156490267826682711523962522502435168001727723610186071602267246986652943697334621047488630250988527396559649655976517888628860707396005900114323171670665329540233136423484898638423531387712058857545488808855775027644153729049947901996508913901997794376003833494222170015144928398533094265342128816107754935868785656734554273752739320954604630396635442734159372183310491777723500531903363095696420080209699954768696257611326415654453745995595407015636643454598369849623937554088981370302449463581238162514522599165652848162114697023293583390260352890648811070209681133964397671203598826461250205999468672365002368355202888711224744161868417940841953738710405502544485239598348976172343167558477012385590205836424617151039114712568789718708420068584452275062316870504921578341339091924622680262861001353140232253850064834059762977231404457771668350625285952704478766346936968918753975184789623447064309295136970948027630529484093668126886975956516467244077968428920873223166900933837465330046295811866470829441232465322657585059183587735023908571350790348593064934981491433774669491155867194580471448776126549096042078869897391781632064405559128139841559401843004367123123222981271308789606899082572894481121888275088051338404302568835050183239713901007504635819013384135203522096895544362199412391100335247186829061460942534270908755236272368116371227185452109147888018722550813785892221162313331600387629207876555498245011351198849032760340502331315039057630729368252300682846286537180844572616411779332065030483497987139432742334199767036859007625248995883961936086925900602862733974111862305097849182165522516374471525161035313731218580397404445449070947192766663429938620218966213815504861067951821419435005348170602146189287686071131850832016967807548073247542311072723650736409805726139584323306835345457660593308400016368145497589760529576237289528971256146227784846810855378156248295241232090136263019891798261501183774818930705565421272686403099305532198862677447567195856027154923073697601730591969224306081794320482880888564926463473327300715638511601454922616768782614428226913403489766798541814962685503641190076062404671340687161805821424378606978163186779410406342014342346817647507593128146705013275574819122451180338119445657249391244295144764563081678121719343506942361724380880469224711276600842333063982404916217419705253444933667264110791664356853795284908577947605095406131778481965480886098163986805313357845444154547731091130880060249495284684191055501639812895890737821834455974520892697545402404702933590753907273001818699803769519338507063380355116008415715622627568786976774870927422691052343847907478727471871346335192169780229697692606840429090520928090452605724100221442479882904102723296658165472387968103060304510958134649810071833867506502723564313070164098548221254282156052229973228196498203564384100211707320448357701429005289984600557175318004664410704432367089570970516341998270248427047286823052235783929775941870669802085970216645848623777795456399055643793041634137647556049750097468672843182943161521866823585799535481940125350336967438021334350006203161302250308078130191729429317147582794408714134031635819651621335861070410555182095005568374178053901103804260633697921619440572339419334113992851114301934103967892216806538929359303532130234573199452028807026446898131812882782325719027460570450252388566951533666708400167135395337064310146398718324730792735429304778562021122595361244088749025107509385979394648946404926191975689338875204164232764423959746403739924487331485998496760348945276016391190092241925099216597779722319252242298891712109876108988770597771011925297387802964843238198996214263948692531834405337543293841074359629169281719407799650295236021083164034811192221584926860394626180228837148965015657006166391721460684209211886683502210758980465223829387460093431209130865046574015054481902651591656310995385070547213211807236091769677429766950060074990848783006043593090379380293683245644090678125627384693456688115961572969436221266945713742075725602286357163499844787508927370280661215234557580028787603330914070910607474184559839410878986377754813854783540681744559307211471141130066370439580163550120913366108729978692786634690782359661910534022747011931087656834668362689986994987149160970474627842322830934010233302658667879385874630775195353330344028012278523929997086739411513982767346904970902911509164700660968955967599994810606414528475621850804344135086198231231602356885342602801761453220060370374697043338666759802932678802554078566844693694730587797950944984831837086833077576542810131720262374542921329486385670116370244553743131006581636811950641362645345350024403760719132997728894609678578302116132931970063716550611997248799698674875574692415795289294380891911163119390795487380938272381094582224699165098507872594430230526442966188646930709276245599611946624815659429121372050348888370205802673755371581289474526387723318176083472286892088277771623964859060426463204423738760187921511160866055487585234243472735846102643772528902293828931552503592311651036292105655047110087521345873081635904100930285769468279795864272121615165540421011489637081134859912508942985386432606757470167931814574441761490252253210602535583568751081304589413725852533495043460640558763064036800818379218055603398814134904927985456019794412094955480034241780888222900629103576787294510098727761515567464673320264639524757940410355369682188503361715347904539204773310161382564826087149900573841068047120574792329257985361655069089335741010501286150439596796705179316197345759550188701429493014125377094010196669571627519386428503334134252809992773547370629617800953268020994265569343602471049499604702804400081398578983513164911962231686828232433680732729327189149358407399231401014376400894004909663743428635984447608336086445324127106180472861772653921656183304239609693255609586754529586187021609285119920365767054897161917402138059668315324040144779354317227703761315073523987673239212860611611068956293254137815619287396673668955184225546443730953460499403205223317430822376905990577384654438396211103350025489743531383109253289688225512897612749894204595490627157909532232571702933510511137343305934972177999889741252166005654164018745626022339745566834800261224889011371249688965791021567461248475303822326396866490537823026480176461297871568599680967148803781578454797587189874552703889123969983062588478005782370210103330979007112609268243213654869996303699315320620732384171438804959605955841588354063003708231428869427662526835950288764948808806243422149970787031118538377699990528260017621333215126447133038462241693796149444983202855105863185163569301858666532647162484613313564627087692000522837325253262368276080947936701719413191258307914107639988864150347507417014892947052194180112915228542105868849406915625408631139621819323865945103511930241410158605065675485504396525021678215722938273830784373680616318608193403646111184595816512967149681095462203066848017578600283543308118089496165614674577494175927148970290801296057243942812797490249689229109058974567362081642358266546576232719798876356270625678058963515394834217708947147728156651635941858488775650919629055023681184445634149744053083881012235762696826128552355368377601282974993914631030184236816409785466391122615164792415717471024116547869955146500741013719707391669152857465020461528406973954738768453186847310485233269245380021443662215101353790757565862545105357128191656720165665038093035704602662208585572324013442924379191024658389113738009126709030904986878616165739391792718403944715646490074960844363474236549783396516121472770976294842209944080010999112056555746555634077605070372236588024057651605502088275187052090077250633470473206710873056415763911252381057515740226101759631024745757596621970034286067552700609124891284392762520909381014480835696041984019499140228101098922149480909112588649665214405074474459110602446102322193576129773440538639234711322604159948003505896791789710876780356407426766345111969949528371977205930465363978320272620204891252946346130785163406046979445224518134959635840368411184632987194672889684988334157040868483827105012306334921224511373753923272007698272728559309017985659120036063644640371662882278392265927243017473649510569131487163893109106075857910664797002908007122658229193446520710249391181556387593372167254958834839930001142910576338359038903043907260777429106103137720167080149225616517458385742987965033964164760129086249873315858867416450754568425360300620347945861813476352788710036616899228597221940341208207888585883590795378795518103805187589325658389509763841562762978265341712502587663970738810792398835425122049115050595744049035256682841025778075272544675517812496965069493004211248273031020598355678427525159202059483414459934681813013485203966886494316642706201924391148875809309643500079174533691366802534157530620819337729113692284246528652537980244705173081367830493785585599231228909353051520134653975150722085076527085216630895073637431346314031847266780978609028774906422153173450453995274183078904824238168863284268168779529309745889822722511018164976216515369612604348458472805834766138898758764621373303234332241789472660757668359178050987706850674522705124540503850700996501532392243358710182252593295661036120539236173528692601173747212287798626216194174699039142922060004036727336561718534500527181143111442938851449453130642448241173317352438759299153965029048955962696893051335000672734321519940705484862769147557169963046519913160014907567124069232466066139741456853676767685237047992533907574129963956274735506346519372452733280721688723248782435933817532896273294988559827144429090211457188009243224213176886218971187808934556869577775671585179119083962412889820465896843502409871351747278045427568164427338746256035509886251099859686578705543034609792740626333379157101799705810330728813879013851240197788630956048815665434994389136076730016581597106743889015523112513913985607370029253670429849922387849902126332711116767462933869571024060242522163272188193561385643790329093301126811281051349849590076039351594043566587216770348868941774809721039948075782100444020530070693604041218452495881967888231348276543411768118274260211088181552465152120359781060100769556045266186269310846366791260771724114937892500099663347435819424337338815035923798113346162284165208876046386518495187021137578874527158986476886121367912588445554715561581572756780433076693240401682773358940535766953547712478730694732405132349942803308404104012116610368728386708228990203833739596285171227021701248935284498087599860034344696995051301155590204048740916943057500624232240980609183091979854731995164177051493234296333564420783647422916239065094016458819321214745196357245513936511323848242015757184126613813460545480860898845223929870397233803708786335488478252991928191691442409546706679893605963392637992104740362091714948695058550602712849403483000965769574143526822644889452005300376146935942554804019064748316323389049629296703269168876130278972281969249842685340667528579116319796342267545599043147270997632937795882201132927738655510993188257928332998802366692876904463270095626558232718794595027851407640641132044488946494360154662039251987831105831511839718877063324816049384793615030971037422496445296125012950707675893653413941191730018976282007995879333926443141942795460415398718411572265616958781881509531895126339002034039966362367096674178617457399235624728058764175860958216120122294317033698678102357338733152143659372776779846124140269521029782355647677785511883938026921743254618487794769356791172166548766399559718651499729053840813511668767281335917463366428741093912163006536346523881612541010834703603313580170380465132461480725125418546461023901191845521794179646531367432875667169657329214081853345473379898192608593199162563057297946466042844671576540649630552942642510417603507594090182556136008665157851885744761711501384593389248793315571610217043601148657169332522855290635451816839181394116194650354758123592961087906151314913705566876972006385070442754283154625541131494039352465315565634806448097326243921394907308803398598392262822551552271612726974051030618939295078824057619595113251050693529016084577847613140286030062925535021103863952834466484753882980299887384880736155869519460633059884645649481992499945861836625367723869702841085653369456703823443174658476230870115317844208571778168855793831541715505023450515932024518668961579455581183417248513454592304276847954029547203805508185508353379573099799136125000419393766971083800414357746773291045152066991987183784277101335877216045077191848482939787232905642928040029104377721072229825055487174282346029257399377173618223609784635842488454638477309658889165606492899146983727899875811043485649195544268544296336428894406552342810604499879084660060871895831031521062511831174883846563444388389189687728073862498200410118884193829411746699111523427641641369662972690325499061304612718254170318947015542708887146886721263749669196541366094785272967164459732649113817076322939149436282551827566647761890479615687313475477706304475678712358399341028297152952188160741075299476804509580715025078051709126514107848881698430049006823064117395958031280967776387128175668766474139488241692382876370052779841830210092992826488216291131312273810211176954724537944429697361201367720757625678991238513287524940402236764308993504136269813669166725547857089057235395974546014161386835147450828764102365630413699679253159541915585035565611351563192971432221578901337775105561549985816099735470372592874335181723701835257360087006209190564917693627834212317629948717400592940789389488508440880225236712919439079062766974533122233991767679239488700449385409379429248411477449366528849008019194946380896310403056131322855676259262601380372925753768445944257485353153531965776389061378288250658958655306934561264636346260782184575383766400426594934648395778033379876447986111294702626385894022512129665556935891701326542207443512439291696559146377916601502698939655350607843013289972637315254898870410422357942424373408419610814772568047279994408367048895023870646952531917812503776867055202337342173168858201274460514686879095160556456485002219284421090418514339910270420673450135315684147381799480021364675836040795754671434246614381156605054385253198913637690506790377146374104233707595889947319558672775727001574768733008807651245454325522658787535397651839986293397925004275127914897934135321195260002538035914267567731174268539794471432337063912807191033787560734739646590438723159431224082550686149699644848183915946654438227306100265526676996260648915939502500902862190506964400151034371514243508646994211053190939713011174253384491002782266627135923369720051145799679954077616290279226423650736709797803788697710019551505368200345557592576011456715828420037432267649211218613217625214316808778787246414712269231783679133577871316082062125657631676030785981751563941231705506634916338604317152947475801430652605257188156501167573745811612856156577967427338500878357889453207207072497442530176213807137383195280437542279666830630303712929212531849910526975127177021918556496435107079469672246623564884139518408148178251769022059829129253233071418965731275031868879215901016564659246654499967598053763069374353458316593424387472345914210710785548112793842858156893727200437021366924726612881479517624322185604621545867907604499978050576109539561062903636222378808913116099862562368157984063600407353822650321318636623120577192654395127435902769206540728119906916472015781294081414360866133028778494569729572692461951172403334722267582032069052588089441099395379174285690793071083140594437759177145226885321360946756680202188859480656828414107257451314706893883303142041234730969207691631170879229612217254992324438834930801115500515172650034802168570149151763660237837242427080006921487517205800306428259522659935487125969071834923209535452080596053315386224281207726091830439015368823783857920454876135909931975604166464507261958711415754471378561795967664031009322388481247166719547249030473052860528068085982166036792210036854841887635984507082841136090283561559322207935658607713267116542066581077311521437121530894650674455709956758585499239705749155395297363777566416272293517780936399479241271920734888745451113145357817279969393151122065761126629783521408169292561167188183823704127369550935303936129829787715902871837783676411073992481688510095221672982944835724665625672281785138816533256147795946358753775640739962710264608790227950505231720813029939090866673453395517982421474811122370950906193163005618533724470453410847284895017229149073391483803112028935540206347540503226348023126070179422143330272429102745763567177485500976340979318794558561124221300448323988812091273733009695534958295012159025715104305221723997124516760162827372061556238432348974659527608631954261973055846497216556011781651517384464886941852652425505284062443650931417569448617205938763629521373606539681779744393415647923632421090787761800631831264486055149104644977820526221254673812562666431410532056603524274053030258926871716841485143492822709381494735049328613242365055039416489364975639703321249480685068490904258525306868932518927570024182755183839086632162756911343297894171216814861228832021330281212842320135984000497795471810445448047789428796307771057616848192871031200978540444256314968867887973180431968311712733136906870084215179026717969885247612632844691947221743782110583172254931867582627366139558218494164920907847400282849659357548400384075695414589039088123385637190465339969862562309560049081187733645253466024097152634310779776242653494571767605734941235482096863328135856499924204207674795650379822397997754439855000561347984040701262432137562337496595464792592341652093931468003570880983210984442071091268879670937145719000136071131186205338726525780444888457208152891076491105268545953918910916891662267473478664346170271297176175857641556856978447350728427782395763298544129643077851222212153270120626950024044813856343581142948101633620076554441357244528328548462769756131233482995395237109330141621003400928696546188459489438956422676741771400347165402473786237705812191582872628341719260118098581096038645952141935289135664114077460798629781916077419585288273293246060335159233710462534101497465029460632278410643157275259762839131929433637572530438436200038996926845387303241700263602536578249544918026634160733842686843865891073774606537315593878884627455010975377366680042546193094616076033389957766355414450751397185332305326535475340335649326316633568685332209774465690449543994360464798654784249243721031358998122940854610904888319056504971125552517698876321470007541660269921156283021804859654660220751079660220724075915338616115205895869523605300540000587546390798398385646651478461973396047000385386198696803673384142277388645853790155880324711468966988976246996498168630082951849325737586698031503943791096624168310895956488409546222039501248998358967879874922278603326642100709064300496291539190411327883706797357490520987156190475423123292053019751553229150963365030040507179265232666391153764156371326693776277099726542743030537366047767379149438408401620188876787394807867906393995362077711346239415206519493940329610434219425474250812240704302444435743952918807839809850279196796455119336078793817882602506954757459599056533535178045977563217971628626024976884607639895858535508306380546969170672624352027376847870320211851489106577251583218139752920212191122626409275147922410514254578206650312992153661163121417105836090075844944212782619599480738125217421794392443285293294469097230388450878312101449886232176055283399892930807741915264011425501038275771162038906669899858132455515193289193175358921557551130870095759602897920270271385608975439006841010654857853075843251345150020220527018714852663250202548768980985951252883948012228470499207284717282975445828098269985257980255213115578221345508637698881826185744543329062679030583009114065918966060660563224379041648647531444495552641461064209050573388778242669561971820685459930234173629931499906862388788485960332767078963596087513047963820759505992405713412265709719429198129770882368335743871318285771797130789135927698723368742270538746345823059932002512245875490420264501008957983124067015687737850874473073017444670256404546778775657200890424364881256294359975791671164711073606653111268610013872339332576751696165372905328954918853494772220661100949592484957177513730684496880285427345916937807893792844098363242839423169546685809365007560929487753693278482132968894515564222146127536929942104548512003175927528979423494597471462349790860075097252970885210169098122355910416792771172548696598367433401082930042885492782419550189226199576862724664682108607041815931341904078204060532639706607007294842730886618566939854202614997392736789893463990723593159065045220679398991077187654429745247863887958392716126245777455419567598673802616861724028927790233802266045351995995612588573285213115761499946170393460763775802392553316209739022044024192017860829196761569821770137864831306640660350597659696848820645075916655328290695590184737108490159885475954232810233809836571006044025107339154825300839168044732528130703377044365791156278603310908175416623598601849919515137342324808742224295443225982549171676424869677768607616125926001992636563470123085509721546784355188593925296187360604967911968458831383638229606225277346175243096393118157390363718877683028896111092022797132303500294781215331802684482718138340867308122304827833558103904703172358326583503446076004084731042723761611252747394031412622183398377919763465689158927180430819494932479055509353916155895220233427880971914964702732559703663556990050344094245793204560954337738629445338695989673772233782176741341876576993895907921800768482898042625097103383189545630011295662441657551131285156193170542381676565607357823014848317034039895008209965756133620129928327563215117784237583498562882107523939742140776040904052352450478677288726014568943339252748476001856160523169972240734039438728067311601479642269297920835105705721298607938640538395040552289492529051631291387856549914874881595173868137925183699875276960308368143888863835109698323365490710390921994824827097056597983825974600656595034902419301634180287144119126556403867732085781782889506515307954180350846628619479893784154286058796307951660365013815092301477016624245301799712943202417566658515149137120215639193807063847488203142848923651969423830815147307033773984719731897675435833377093829539550572778347743565810191442900601256939632759619157886709285911394510856937790898139714790151842614966004949672284217962492277772413389320379608890632525806850566062291548612637411494465358996261344962210360880724230835545589468379108697115718878298406708296541247365560984456777202906336989649121182569297405524959435624423942128622439903281901586864015759608366289939162341269624351718784663766850782888642539552665743054163383429983523940794702279598163213472069727977996280588029148367970212363477720237447898893275007517656576575119722821786015924355599391518599627141698461861139124942424127107605369402913690019351537820482691520004794886202948611335890965273954554095002189876972622876484834064166149155482598249284190682376492426374711163102841508419301296373649023034349739539225181175670564792754176998603341919846870470976911756452088599934128812739179523796484137554878767434908712646877054949497859305146408592743083263647689328813865690667935774495694949353050826283431010853159795145081719491514335301604795920775212208095517122599171788765795321091951330831201733665644857396190455057791240655728439303634419588722430582387555470749512949499875078790627864152052660164633239080409517110516088993550038677344658089827432349353074796736416509421409322149898635702940293906217411989180514001811167962323866499869882406683866323504077886043567617128936219619684069030942013403667594563408167326755768066550565429736354847802860151429895400934812911270548524475926687338491924396922357518500539935370678663480907676791147727657768779276785250833975211167214650646269505371824003553864563439684117535314528577308701590668436310228196779842910744119757847039517539482820238123434994922727065375239971867652584347615889927174250350648100300152830641837146846930602145334189046625735834635124655530718058597058417719417464049469165855085502262860362662902613972609770329376269677154627356361344364576219797433837785775443688639833354820890305932652130926569102149254661239143516992766222942563684204289936672322787362688814716765412881166923942578688737694030622137692194642004057536335314664835402301466380693180646332904372313922747079099584813376345750300079437373410147396436780097791858290839433315779114525799245085942022001084701884729341541228962359410770211446625822477107780569901930743571284214390748323146376844702053711480716443466054459517091290506000714421076415273941370036074377288310537830076433973862500412620388748930887298262112306337220461613027782935656139950435146174362030884025269399344289238754926543987854752279378539623282633981662863789620638885690641974985728742070957216902915436445534619138364952547774926989922843526836006710495424616793703516264219180781506317490217550663408274178660978447806868188104767074885642564054826547979784452207613457680104006261690492183922690692752387130771835746343295918328844572044928215584092115240749644928781608904683186917058127966589933292269065004282687012395740029812293143984964456132391499273355673741738626242051786611504183312808976952734949484075063748322751403162102919884204255123644089378749838285587536865955659690845436184914871710452137692031558226308506729404940139806832933432642583034756544114783574761122649622680462304635873552549041123510289658499446877567486753828654657627695232785720844377906522381631772914381574411511024833285397339171834196842709694247218321266278943472995878187553290399769755909210862891915308404971893671936599011425813965662996548874344722483180879077442695926358095614202971132670785158410929307870263218056008982760413294441568854748728243967592237206119941118056215658069199916318533659311764537065757343973251816974045845510971645343946183992585939346505248595750152616055233131370150562281779373297299243888905970319830143612140861315105173887455178199314519106330795159229964128189970936613505750768454614799259547240541470505282734982295353264248298778788772395043167268654006798590843702768696275679967715075484199048658793902388382437060795400996247624181144885861455321532610675617922716640971119343144620471485291561131609647788225734444299677704346546180042698004900530866359756615519420167575228801333508871200830088898685454539087235056219916794402420522040188241305426823547665479308914054663654072502095548561121664865003114049028570666650230546490377825238422967578564643193534067067776880173639789477526769936525074524917593598492181413208816158062658427347223861496267226708927807607724606013626984878166300648684269942593520502989363157183296871291773694481156221877669991317619406559966453568168165699806103493000377303130488524116436979076982104860622448683735392936524107544104957557779360738285747739121481764717588057035398461503915102861762927977084400854236723641045133277423277239013506194493270006055917274905901976722951370200772460805741806227935240152742632086784115492214143577704561611202234495170248502952340304350544670561496509884424155557934576503667601584990283170262852807814747181398768209692923993030126944860681289445640392075480079386307913623341639915511532497890465278482230808353479393681673985506979850233839241655490671429050708500518896940932844554253510483752794220655536603524796095236441891468306703434462037437808541023051751480868885699919994228396688398932125365473580564474746269421164679455925755299856922892285728199861660213291329038985930732345217868102540380495309737578581857495212268861389343888886982102208613755288205424244867383109989098043410099767840375954779488368495405160271449676263350821685832299041053506321689119687593616384462596385074502530066627389469145969789928508332192678219550937774670194545185445087394434526936417421607676018624300251501141535973305953810996485560166371478957842856699575418361760771973475102004127285263938668279794492720110728257251463553890484833559210524489193418635198125385985615702002532401271763451417329866236174477914542616971318717513502964357553306311481640613514759701749602376516834080660109888529377794221318807298497184337721235561255747648003365574501910688370497565684977185482790938502818133277296365735892167538173735111963658742456032883920703554311418296226015681082859460277179857729969335477641133783772977249672552993978619249278889039021886419425624688283855855692373439263931553897792982907542105446225825389011095550139896364006567887819998234394986964843545303433753598155712764386685626979595797387562508641756057043161950120014710182350433657250129927389026425308822365551192698331295088497952113280165711286282650483313435445596022312991980731322235828652435246941040170333198527720287848624531191251860113203367526961978712227926853995017372444677654926286813665811577961298967502779167581437512188384003165045688730857147050017368811671627479924866826769631504393005300347329010560604504478160901038511641093895181802409990666986567826673899664425440456061078298744659711267357094728190801552197015450900538576788276201225743790963257414030940064193165527853089497241472985128402610599025195600958410829758474450602672413975298723747877379262230602520211882392049491066550267339375062813821234998174021750194722818966335325670997060177717953296621303149107323780161823712837213541134177046032464511328738298927023943103571821730923412663616531499726607473037825965683045459800047110181715174536383527556456857332409619583895028464017850743691133767717638052715971596540923408477504878591214992384666098064761638716343214809862047345804657017954407042835649526806689455234221027572543402109805650746648778691970096120658233983769338511599824606237416048145330188553721018277650726066299530053004450602045419639998837339374585756669339987288488708459823563836282270854441834333776598081316574798020886490259414859313250593460327777245582429385747641213401701139535236685618351069881901817388773946721146191126949869714413515596371042653093776535774267218836342225562462687685421103271436425332407263718534707401707728047321305090556984520848470597702376030106911718735153350411454864077052044965335812770970558150263749921725150862638358933953964374234541757163716378468540747302192360410362838085267107289845779203823084103544264462883556434524051691910283056712194732811027862307330443143540015176851196279572167528873557323833109097721240674100695017435129306465712582745830727464362498279964894637469926130855578858911192566027557222834507345381189564236264820455161359214940315587965833881358516111931427233040237864729819556683741686721283162664884148506852775391121912608948172434879190206427618549622679352124930447039708374864060580377015199203508418359070423427509381273200093965664295160310740771403313324731220896347214387313852141136028963804898447738404208488744926703734870915358824592453755538147420705411044297370098250438415015580390363728513227903958515961538621237858697987412200007142288414361786864138991510846585412898345311275844297001671921440956833347448216774522116980248430904585231543182785557303071959485524646648208851869802394309466153357319152603932709157590470856085959843638789022953643830927427738243262345165822818585441416359336955452077340570660996247969887116477280521515092319866787592055613719610472631413328439282438272832890709190248934640700561746158387714556280226266449855852435599452556562412671383173690874536610484539694049420339782009647175118229788869378598113955728717100354724826753876110708236839938770099428764833105379605198424236644442379278028774960336824886164524003797619607729433258419411977249934236383489787306590261689080515033228942971234001833753815481979656272530584941472338812852753585128531805015497188018160217288125625734329176557156149823038134788118157243513070557745402082986829184893922361258320740415568589499273769480923808518070179133326957097530310669512658221893230588297194006104206135194955090421564215794254447232904196586126539829560623264977059386368198563849247966402091486105743944526102111553638172722475879470598508547583934025597887288757858436523117133632239628000264037768269589714313072078806145797544535893147460899512294082194189084444332658700402579687965324698269910832488924567445916870009217966913560494142218239237528595158928183678280684277291677911056795725355461051256735777593226286034610560890454582649592256949501743104633656625982166015126562799138429401538666706885815694174994365671269743437463840301965650843467819025586109582047997896257954088288809016023059495151226754229032073255912137798405803211533043702721881885044391905108986639599128446999393476140147549017257007981476819935121182393514591481232888604140630564995093488875199193218429473614039907132276199749652268793803407712987712589410664143871986748592159844182127516103796506468319353497924981415758552219394915426775949423347048995861791510348453242548542725950365686744400956271206860119809438081732556400586226365537644832669057485699437999419601235066426319226312429223227898390998896888739545532709697250409396222393173791025329425991556397969382160363889705475394146236020699202509235908359169555517305362400137740039457509829896466512914436210043390441828561082508080527388707438209786147257868044412021227498838983379534065461196394041671277593538134498953984371478402275869131131550098287704797623504065952103095612591014942480834994629520743310523349258622854900896507842458549233334236342861819803480718125745982982368004351721061511259175527243719294169410553977493377018285402997948223708677277839699714197248397044843213262626718633542193610656990166148730061278291652047758299696699859734050607932233296642767865400871465822793449047889121220463380811494760111628849888736990300023898773726982644686037172308229003122952829448730588416497163776887709883157393194272191738195423241837143685144110737335527356076405108918931329937199296705010168125552940630230499914207504538218412490860237328162566407191989182958347428435215667403186497874256220276029010106538262075446168858669145713008411516258187561148002973719953908492227897938889987216397690881630088765393952098659748379509992519426865085310636879396553473967392363228900393144273346473230463511748623197442314092345488604249975015557695587938878973158958362077985664454129485322318974364631315520514026988539214942709562382947417258889392040147211007911304249464464874527562074596410455284963521459097292049539086551518167388489441909837220697794119461418108627062335187918958896903737535879883373463206392117995883260209230430380131425190473031449165558765800647826822129008570243192055103636649039876159209027401095866210913731478533421014883479213069170828240388310755356025983578138476991421159880008747803383835154603995172679758060002143185611463999096655200651760400062490756681438663103344587131253683587537095874211529867936100038296228825462754922192343836403510207050802693624111649400343749349188151856239116404342783701000692489296793639252844761402974688591875691988478779079207398009128825737738026267818522585164858443944922742557955563282095759858638532136035980316226783123222822766073111823263264539155740501673051238593045377921002038910712144992347216407167285901598750743801741802258303893011019554260239578788710734409442010523640862834580111058414055623837368761016808520203884204559836046948753489643075335572573730511116009365651541536612204680542323142192840269340150015687469840367998571880215471413679976277362147564746922179097571980153711727356435696180496696852844476581840382915588081438993071341945521245489241780358599655426822010578055483511496372908935645225151625051994297625726842091950666780609965309683271274643212373373377578600435189297426397702414550803959559120557667037113739371831771572286240039596002502198933735813953038813468282839847827199526837486825117591563290863955026032549223260863367333527478932951676597273409712170340347266368484086122588069070413759674646377089785991838352915012335691742254063128275416742152701218884295545959339004598775954277387518374725228549938796903711413689365336201095232653662915153103699778060741191002821042356680121993018126300181248066856873214502468274866760603693868932023043468880634410584500445260317756686286673731287452733296981622465710015699646089372450437596624238342377328145391022385763157297223935431880613727616401117485668782499031733448466595395321147140382394279074308278983585012166629037917967663638883568723501859168400859507665724884503505870201125282235282038655100543040847014955662198637290886969204033053921114359761113612259933098804985697734941918267104925186334667032399871514739543569339521975566375880517500807542334247150138873652502542515660084360342526412341366414738583157134112689991649575639324713225448432612565869365301234658287685556945575413183303522709290227321027218157858702442592886871416392806562024012580573163739833279979560311503549940160804226454498498439143340291865020598001768662619295148556499280481256551048175705990831394054106756285464083228447016680158303656623764510291841458175739379461566465938005750361034625185493830208065793425787147090935436953026923986100779850311802714464604319398987834501172584422153925979279921111900041889808898954122884319739379781441037830407304552976408212366270573614629139599110800224498659831157671633710964415064979648447847593347226787569854731548169215839303517099814755429464962084522853184960759417744797514621732152517514631212344828953917635076404806372886660061763773749644179232982019711025288159491153930832860825020795963022243068123918795668334050493622317637683639262913732819204501851980629038433668540118420761463810962476817284311391178881061753325157870150881297773986638087758533173735315319083670381809552573363366567362414338737979768904051004513149256918197223366930955498813064860188054143684791828745436614674875146775438286687271256040099447444939503107545680708227702555798549770020597763771632189128479836567829009934033024034265569779983373043373063106923730123822385744526483168051692381386730691872306890304643168305001620455554276409540196868570251164726402695530400019137954655040404550047481515454617107166617548736726796835901291787706404329771927939817392078357228005345856737903639272534611156801280817270232551388404036233385807743324825647881991714848383518721853598317665239277479531932552209324734311572492016863883911912502791854102297915848064370349641520430295948544755327993833423836840155159638428519028076082862797451757400668196339681622461894005582835701665625790224288464156459045284418089453829980742150768369845545915574361838233399426781483440401622545631645092842686798557510399017378028540273031582513013579337951567965027142612909048377602238098125533428059275727923219875227438716483647241234460236325933921405425489753443987550944085469058792377380870513776868552566277870799933616868102969975352969012437729439079170746146407051034532827287452983452328439065669779408483166504231070333933588123436353583151753130256589879188403161759083197183702110151617149855532260343675765618141451709585414772308718122303205611681978027499688040457843388183017826300076050646219242578704625552948417468724972095983859672625260791649507183129195040578261870083178569467417274186405226424204142380298363516081610402257549263820917486057641538142887864592204984094620062498592654019739109528310621248196292564615288135704952062034248117323900932519441273611069802357895818118970936275842587726794276070730877590387166164965645281745232154348230616289733169562548425323665211318884165829205249922108780834649761980186347187301640149022849318728623961868535353418970393398177067008017117190685798825773642273395047830097458861630669176691207006673715684045382461246407775518919053234716615644570475813555118247775836291147615831997631083291330360399575881797860792194106825605807116443824551126646531792935309099445004491077974009484096954158286430617203090838296828415830169369448206184009792588100269531835407830511649288527616551590995266146098084511372136517211972606036090495738411442781538193601739358251551843772709040701385160352083397958477693076487155142507324304806029551683783460217834429839460571715211477990411126398477521431184463845996625499279938096770603357292767115091171238019640351380674864902452363117944195536759858295145276139132618873633416012355253234954135678474024864929097175955734345198549753650714002125233890460945963092888563715225149574424826031338102167731515587290799534807132830956623088501318920935094483149359391911494753206856228824136291334895259415419893510714760834365134631088823564466628779384323420829706630253340042750433919340095270787677350074923871027562545836456106099764847049079721202827157607835078844514443608603163838748866134842952390355181377314313767019065417674769262671738287905399849144628365246193178496148476379457543035577793106005433883508672009923683823677559140560512135794747136057826499375889528560659411596839576209240871118131011143703624174457051406833355650440148828574461998118228119317709976504324849585933464859833312660781012963797707434740720554700113389393024298062350331569331449844396231351046666641010640530988442282635538277041044662632537785954584141871835585337078576397830490742095113905033644377892989524360725361930340039296593227442098880803150210779118610241501472606387570239083871727940111149636633369499570662916192861654389134753768333388877412464879259808732040620008311630717319974030496748784152016967213834584467873794986164838656184542161755618646658193389018569331269866782873587308721733033836696529941635510589405634469919313543385421304143168404708840050900224105506464444422434861872541284876755091797612913622905350699065397521939111350883860205429501285532147423912705252723824103197294536700621453615263693373644351853449011660383034855675682724785118804534143240316670957846944238256299568970921333548223494930583391001330770111429493655110156894888608957213884071329362236995362543373814860643991871871362537490040032427790241049872041288137418934855086154355189313359618248359874692555618641558174127956882816366639103492827804375682200836463355014068958152291732338038766319710716650400154805723482328183368477820726630594315497220897696523760691967501742647056393361756877056806392388476766788407271627647725092493560091571132781035103992001936004401862949167349590530470076761033299556436861836495924981232896163935782186490190813400750885251750467580423199637917980889711952270277517678229557870901008404750386712537781783228777411936744216575502610795488108646185432322649101691435593956145527684513162709589245287712722484290104494686744838989452606430282377916599030684848958896714335565897786600635882641719964028265619862179167396999861538664182470833920518050115512433690815972294467012420989255302066343092377119770082008659331324508511646024330389339023299312301895215078833176854876759007743596440654346764071882764043065423808395400704339013449704938219554915794792693994562822510512180068635940440004576089948303439872602918360094612214854485403242726380999305281705727633109532856279904182388259281286729633309602312040863791346407204878475258542461519892076250117150889770590301077645178087407095177972217594373181234145732366172096020470173390195678759341243451129759723172695080755357939788645277080705539597999404397914157377476273904078153121083650394986697202927969064194421053449722808170392705972603798307310764829082304933712310679573844975668961633684732547334005059423764886382215150971364412875544475545125248288235715215149149293768890916874099731260306087532902673439574594963448297199434454208592993870688562396620419431600830778550336452406642671557672677793586332876137881883601015076174886319143464332611839488266728896801358896191627226320837062865947207065784804325232680398024858501630657042770028616270382991913460964381134235016470395194810393484116749856236289255898229739099124316470730302035461219368109749495942248153566220190051307743833899067605022613983697349188266622403289872491323147134861820245932054905498189280437660798739172327043677195532348938593628317468554538987671669866213600482084151335044474712379209298778292738253076977048034796965796619195030218792495306972370608065191175936751121757673101185907063482205512614065631708316854705023275349178445716694895532253476836813103518250666614019647276321681654673688322049257332636985848356504601548311694948005288112679283572152543660679850404490888743861953388898867406947093867412535993023392665410952221838503076872912446225696266025723123086557200315248678362327636124482711924028741420224067600955269101219683589257546673760635843717866864761861627710715278993230619960637726625971061391576945429186582309011889033274268443684285351355959663547737935078131820760737594911184093336980328422834897362332432351851748875254686569245440464908814030127119517020039679577519976002443492654758258448836259886907585922329999055432617710967747116980676130992002290311774628739719454009161014368207989051221672334517665866371249516219950097149826303572478142468375491278402963114062479626313322338683601565897392164182609502585832817007485740942233564101816035934779651494215810379616089041912479517402901615569714210808735210625360466417879338075266798795057137767444963875441361346917126086145251226852215834764120969542391243543776814763575643882379869709969365209430539409678614634849564690749724012739909465644675125206247704986728306708964606648767546916642971778893160885414364683895194882074382848465251556731035913976019959306153275533267576990909591317080679514869360535807658251791318314627962177080077439633588867246455511744926093804717736820871290825974129821871998578126026453948608618972397902669315866293963805653400402140674472603299866790191608018870144730205568814643462952718935776497021798064238541672533111139921336069394958756231685637111199095203943982054654781463617286158211161225120701186008750208402940310473305714324992309381116684739055154110908059781743550700620126654909721490152094666782777766436390017789042162812273543791261330330798473390529503585792408814328647259808631731071479714387364713997697433717299875396070503881641335167893154867145354127800032066278094908140915917473742803193103211801394244138070155748965850860961776525856533258469435550187924699700472555999035744995190661744307340257958820128165821162429934319205295196434572333815645340081125767778150819801870316868642350663378081870012487288151659417775597983279695923347183947180477112195482769959858441138966971324036702564800302576914813422282972459508291293264377090301402873741314424138312897647996829023489639197381486397904557989221390980673378866565051758345540968105928273247040136862309055842678447831604998006465690467359267759325969459843645600855503784946493255622652344372689949235100249672331383240493689699939380645372900060994513573957581954875610510868953372042284049974195680584036463223652613630168940194886345196716455036982306566476355331556108801712599167117504901677380083860094632680124718358252706860784897073134468184198889200797004860243308469753366161166599351943577656962620734474276884995284779948345179002647419839134350231935902370524643492799763720989401099941993607363810647310719262110264971965292382187387574671887804098169199229686329743249169491151043353950253786494072511367153976071628533274295679109871749772997936270037737564582136490028839995697217122440275309308045205961169790975806233020980540152431538637594663926495082691134877981298272709111187383584032649271997559940529060930779955153835417512674901510063903915290739678239197272346513539929101035942321240354702265643100963232564946651533194623994799423946669682101479657834046565760499427485799624859330564323492838293564194045298543063164411915999860429856981534036168629116355255200408218765123960236725965744918762950911559038573759725283757613198313867917389430092911145621995875537177233699935706376410349770427305213082555156295140403463426918674056288269594297899079497877029015454733425876615466077828083236424791763316391292502343879046451133256215738897192459869759142434136902885017948945712254195715699908163458630781706977682215486271593755302713974832269706380625027912039280882846635852085865318491151256544671169755043148149548921189693096859408617175786035891561459148170812031065463582467938448104215899111318310238961758415970223796479061689166500931999659697637695337290164573512589768019088862896204431006561899159553254052496608531912269398123072141866877919033405307633564452856327206505281978429179929215656449069681336123031327472611287452471187214100043359204915813364232108934454881899276523295360839605293163892953914472049972762916292009590296394925067186818350171977603031308715452935990974296036983153909673943454769528570869606374553853657385812964723536768272723181182170072054230436198268207042827904499174347810149092524805848629270972004339948851313587115668595998084772547275263834755498690931164561527441229379439682266869161063226355270565820065710793651775118755082817211234777646867572578361076942056770555795927143381064653461414636220829192313349758495545522887172780792482552840602371384488088694513972623724604291928424674343160323101125493887988403551522850435865876253544535736348275567608857280709309289356303071689241036291645783628932241167830114257829880430637730895774776544333554274768890250842692487014052263459369064690405889811762804240179586579958018258058066344854920749266669207183225952001204322262030040872054195614967172097515012922906149926633648585632204417675205600042619515608071833544565130815154204434800325921152101029528423212512971343675217244985576055371979949391886798735160382312079103906750636115509679318823603397044529895238963250741850996575781048226520527581689785320057269055477648697458075591489997524988753352751960376781034398916560019494657422453785026995656833168967337222094986217832824029414460622133920345349415299825224207203745034457599881742947374399821030254436811528703339404451853259141684573506692073696888437171360671513202819961613586225589819195784240422441696611509770700656740547836950348986642672510105851811197415051510803199700065375853836749738815341545358213371403337900616720919901656434587333508075288717362675564946286736940542923806939856462205809174064313997956200410199011569962771865175774622983411485414117271194339563580821383732227221291001709848130029486550361085132858511959031697053434610107521746393321070901231633498463564884530648063328565291608991081717147244425501092897548255478345040026711704780052333254938040113946247323656979431756533964079893102166953938235262576250795575178558173927794496738056225325245545383305108200457581013951855584423296607701023339122751640653860671745319117264621863341821157582651084308421372097332407380304177873561417708554402839607414052247904652720457921528042744053039346031509194046406103846812691794536226803360559491047856771313390581458071751957647058886929149108436639503045182099744588396152608245049030342872414377568265581917149796029213274827409634443516406130612779228470153789436007597344364818853226721031216957730091529081462155150009633526766515312236821854556350382231987743989154906801998350986286317476475510034818534446921406983846620614706130285076974661712415095479769001921025188852418431898177734870302912594412591480755319037142736000902711948380580198673727068909683628152536412929478435266517620530449652222103394206876373845768482114369433217759928462590601002844335490697292613071278698864085267289894384212716743781553413204666380352784138067665896436997760837957547187074780868906807576357129414473665021612543632423828108675497697792363640650266514832001621785275711847458926469697647422039297596008207072361703034441882150134640705221084591436192367251511725689432851623349684984945542646316857256635126386345181715802422835657798887156468616889608098789496640295374603270304187960081128942881981319067821481582628737842547471331268076394197016522884276443930671910963444293497488281937998217645916491935393460108944609131537260848008321110152463757369623690136689543670922308842772249639561180404862703961265590746882666877410871830314570079017071865018433399095620519586682359300018579707663280365759767930834726781863012717100497852344835281890433960410156319672656671409232418297476748083831767416200475880054728314572732882085722888237228974349283334715410998319891597293907281666691937331095379711731862854771187887926916987187223793575757188487704119529479170057731769970658405674621601953502979571756514773291459078207549790707548918465891391077546917339664336265725657245263222147086737229040590582571437337311571132146820535861873835131197276020645215572378972097168425315876143510767414614044710851307883668097715074730087705676746690196846693539656860584103964859464935571314642758154753350435881681408216462150188561536294131190725661618171245944402423337575341956609046121852632600469757628613226352307914681923073897633809193759986828393280873756253454044434290886259490756881074582229426805070925310964382364244211214685706741319516172813199485424697098460681150374124824720688981868934314001684390565379783751421192946947133882020858184668031476904095134299962433067846770030968712305316741495135847192008358343890839787139234389155801504151258955601137388194419797805064810066968123684298258328797994222540321788741515858309311139355685839682375336914571811089009794961859447981487765305307790071598583907912511959748752211411974307042276558721577339525287282494702872003624236729877510753174238963282120844959418101647857445888650902956415160062280225254098518538261047252680303404531090881776543032700470278357014827451688924709691914965053706903671921421724967982828575425305140070528824436667790321062425084084070832550282197149957261805786029929808169317925521349526575360270663985446933297950751749843822440132073056822307445777372667686978670422701284423309104855900303706986108145543795129233498799363967165388382700890650312370606192975258245903937773308210335376679479400504065275637801456995036243076232182302955936046785875345955175679990473964996403580664654300734336928075588410138190927230232706571996280897873305456528087506156372064288232107993460094451469302058584691469140415628737853181699790386758341818527879283331240306736679111429246337225006507261443836248695501389577973692377387597551019033159504896871627612460408509382593323412483288311440633525072494896813141973743063279299697675463289675093144640254129389264683367486772385666791265348171184107892929264047299224945080428145701240500101580365206367902335644859930699445889244539203890266302560263798310945643189186470446605107877866602088310596650208348864291183214083564505605319783564148642306049805116973472811576242007959733175309249949039489204809665952762110308995012533653912154234065866274171145495793153377863094950605654215294220631679250237827868172370551629146307897360921798693740869072475310214566634822797577751945531629156726113926943868263625595283164109056913809023913577541995589492802761315643961942640251765099228715581151771598047225254781324009221424927745269537591026970822582330419520546827411165752664505220590581759011338639445498931215302509444534857284451907030958689914984873280592098804488673273488915381025857511079705681354303841307116371044516749873054114289543670015017025223691751609997761168684123999800668975912163382972333080291338548567868322101263857205565955306468930481271185528056935627136380402780150913925843876223914478131210409849826050863803294397618714226816782359350137061247920659482337322980746534703772976834547657023837282211305954134122567687171509067093887896989683620287322455422639888985750175461036064356003864035580312747842433946752129799138655439177401954990909832287710687406637273880739071005196563771805704561880673457057937264291735703483601085643834755709253395098494111708910305047224217079091015530754302614758966944509725479481742245220970596772993162889990252209391496553132696871191661798493091849946810237485218192895639586013623052409136872237445614737239062522076197334855785275887507528538847503095807766826014868757671169941042612345546181805845732486189837950484603513544005146951376713885651315197614559332984749750795022003567641054746377461776435337002281073666996512620436078239991041031798702654576228734351129748844178568628464161744381933019901062124054743768110458872751704706796161694867192361383198895048141199338803194193972867739135983829497072042228416069496830955260283924167331055716485223644839163241063654367439150969472574909119086655698082711718430056892111185787503924852406304365765503904439879321873762094067377471185806776594729417729031111378732438762871869800270438584006929025002307907687045490168446766711019583826242194126154191857822562950398451778907946322130500586122893070877823501043334844005734148395390444129985437242104649180608188442261551752233862301274516174602601186042414224317400850610734808246383801630758262773894666117090162091542150140811601761536329764801063942498386384688454158026223823387763790161928750085499563924430895222474394942058734217580867436064659854364951664417231356815192155512392720239316886068907473851088298739275907959740959818486369533175162048931509227630449465202723661208181735471538029062321651462786026551552642753453319030922553167079301478742105620418927839813566375947000400195694800929818611841914289661561003577949498526276807275833164351696726176680526526594470479130124693301704228994727170628256089772420827202084045197793582127140298068623785500673366934556279762514760780717938257345035887788680160039640563252104082750966804275979829192469978683806240685627253873763888935669385435496332065489456073204990911112278977822815915156813678007691528907241098227162984019603348680110395178669969940381364163788467487413541075515483442954411919897445817995455969821685222911156969985150780775964305068659837489864842048340224409875860686094029813093570890012046416468599608004462871570867247066444754323284264800568635955119660422028526694479672662181977097390447292497011035216176044914487717370684315898016097200381492257359861999372190166514290281510445719588972034413768103452490286138184198184466882216311614812044698255577328874216385573822882270526910864716248654843289696443386510786727077041500300489137410014859515841339540394504384812760377780313818219958589797862031795322725984169438445493433707185812104007939732370841436082301812535430558476782087274669593087663479837295705541137285826310546095703234343843731012930131935737028442645352190237029441238569495156851636447834852058188032022253905038650136672474754984489757966095557918291225219889789190396441370669442134338080866178616523583273987876825173709575156600300121830106781827897798673567854989969821461472415929569327544717730982562602822151656681258948318982549683542146650927549432082525003896254304386610055685044507230000763689985672320878726214841759248227121316733938521009316984391363186425122021349442819861957076837809248789297514736465623539297140816713167293022301863919860603231229252769164075761925173925171059463855353494954203729839840572157996474461431298545880774579023340280653762791222227167145373393603158686931202268479983605981243338086472385079981954457177438527590465128085616949412773198222314676967851296852656445101497549791779949574174345489632513186926454381458101569914031853002204296327085998517185038584773222516325319407981378956952426028860098468684159493967982627049713595715327104627215487401423064629847320372687175496512698758224320901791284521206328705134369227010000761802581596801010411162973802934521269495573357639416116199420916345304096634152999463293467577075388675054451848049228274549073187392218861590118830159195333817822088711237984547286282836302643227813391734247560361687615850627280316583930885545753176989476241621707059673086205113095121700785662218580090709363199559185040835539733060297503180069855690632946563642285850509670901177570743656823909912194044777611615697329999675110388515495010491940556771850714904856989272930044250568492069590533183805961473492638050238933907487853175654945481846981928404984150047854026090898552186622868406028894735725256375728406979100482273126798405383135140039410322349586811768743471156027450958472571173606511554697480564503300028070752319230059470360440859940013894224944465883189873725518709908113169076585170924323493978413393312825945826440519037531704512512229145372598329684828259189768298090370085933064616504594447335022012579832809673173421797870692479477691768763510666094730620004950206809652366575303125147892397302834306790440626821324375895600005095317209541184266979833996787905201496272329648876758312034485505547134785159894802306968160112485759141321394775378534485683121844359916094006885465023723966827201985391130212265177847566721829830323735113455676197362745228141988475179927559673772316784912298075674011768186707968143717364838175113440114367506010751559157709404477777082832064063914989061855573829778909943461342862015304236958502115247945097962748923263650612237634829119368791762217705994953049338187091843298216045847390840694236513046569912248239178131599581195749767485025728452538493098317823017397414889634883486400383621818979033167425610308067881365391839355660151632860058063332864986208844646780422697419191654259445353496266871302645621791762118507901022938963522665585271357438825543223802317079238008657952041919895206606158673528181226970781869456747822580434093674501219904066924489942660593698221042487870015654212723885195311827807433777856316406889017983399748087666025389551767333783779638769035628270149882463055061778769761099735185364400092244692848519483860639705452986822268592919905240119094033548970810853765333372300421202281884658240583901680500305923855725849883063474001471017548711958110147601175799340549691640866237360404774238463383436724335287856606698020513414194029710939862256009549786464606078901059843222234137474525289009138867805486488372013847626877243819749359603428876700034025426717060170087070457400336990177895174031892946234165347919899042665650107018972546084426984158836140808806547420605557597681740462390754406756447967649412067927312355895044321957982605055950530646033743616266380650911796760385201856475322863540220640947572583710408374395481871380987406735120884312039660437588735470456584023195087753358944745359186638733935157052329046716291945983069522881899114042642285975677728145915560307316203777892209221445199725665416262509753125650553520704299661419461798288701686485421254348293963478370498203597823172396716033639918276324616320759566033369419675085797908997302722626552325149637263199377601651847543525749342189953208831988569637083118711123990346251295936757613595429256768519030148068595709624409383842294777329390725298239851015297843928399195972649605331678430285386233565308448690686019550558060067856034734587096865707049066872748381845549218579337996088630337168288709004162158605428623652311578368183687997516082281765328487569298565458474648285019604634414550535033492863842914624369327918608918848804712522666735743875956714429729891899439978370303744967803192580120144468819603484818260278651199313097048133010484842771065356142823453001483065973533569944181760528037648284779846516005060319307260984026823406929117224410814424934999778379405572089532113208699249090549005723617396401925849710301124590839942459573253573715642937066340409874082286642803977968929999316524800318598429496043137425249208673977646793330919034020001445958356166298745931038276231942449467477504851830051857459523705867477949192863644136168466968316816021714591114546723836833463044772692092086077772315078878900538502074133475857081163962096826305928980065520932964596028893080006251145630239614455082718227816338351367283715084071040655404442296094212443658924435452769280749534687489458532788275915879937311491244904596433059450356940147996248979549345285134199771632350621497616532445202807767284286855052507302583563883707732274572590005808570296727327920906394264716569155491935105529070983341310750612491816144990005866392316808263241937272273226663217745480829434305786985089710653002715877898801889839238773477429742804071115061041448768460147048593807755157643717762292770177844474728490147965880501942503199167990966053262693177519997164187804385338369194099178080191000256877988441603752452776802746116256944849456894326749327243529575950313537281084566052501346578132927200409667678942823202248287569714139556925678787325063997224024227292529187425218940269654860423757764913552923776857925770183465669996978311537338883060199680745931802552729903659432124756393580754450456782400951922379489209050693332404027511210865378578189364593412787321654412772690295501427214735164888536036052957399938987423484929758607547222536877651289386235032090043509092114881579780969944384628173898751920154825336270267866505690722479761090023570860855919828109876889187362000646064812066686873016540601785096446893234231397638577855262889673645444457169999352767059044631565803496220655373038182664583266185517384464188447663899923902004982759457609382478942170645271413447592491371782862756994366443618453640269954245052820891316754039556626201697574441878530412228409265640683661738129166392503450473763293717767048726553610886354857106611601146246768621049846591391854560884378184851919418774871909155182654778381382737791780910349232759706619577761414707926323103425645200712300384692222891265121399759811175695231837213484201744925837459135490918147042882269626678821073248684701647612165078868051099583855780561946230915763212221035263389465659409498345838256865662180195428305376324371786229589999800967475983788905879541614759305402447326577540171632352095832279989309250453683790219146624015887409500956769906433795401789063507910227129429342926518201381406605831912022736068885518732034330515796556895563390243962523581618132236642471915978899709493793189024381174560692539899923953824500367571826245089602438602413947070486091664092589197820503901778858951376218468722370811289778439838658509632999118410073660101498423681599243501643002417351921609263268812133101490881236781362444092473467515449105480962017417396879060119795278971251635215573574033993264479758554800510276977126619606361661602648490192319799965796939365238646222261115068649227197313309233513443468346543443449462027367699574587181921797044620582573111753280503342627655003298327657079705699932929098463132112327591854299191413872276713469567688596019212879459314367022545492995506760228183400867224320284480257366750675355407051540730803106334183489771406267034723089376567091367063600457327664798336815010404480733175821318984384243919976015056692637279401268423139511080311452299014972189566009748721897533593890514693179904589050528320685587143116997712147908627393112869381629132116261898090031582888781807602744929599274426301686348060280694039820789291563941401239449443414419072833754544075297848217467536068125413782449303405028897092725351697247473259612760134188409115834736896050404049174418275521508892186762892695876745196492783567936726741952752718092915781117615704841294021294318214034193859681922629352020446967235931456746574279718368974356308183797634209033361336085915480114655678342147350009616728768562724012943719769828990314986573968021447212555262279593499426675739429620346052648707511488003714211739772089399179363160071464776787983893853829545489382188408635907709476803498325929617596079762721519903960232717151732429828238767291390866767261647897676844808829180781421828783514054304470385236406367936790116280015049384208239633423731247442982116054372404617714939335547938818801845156680343412049716377451458408183709575953539701369961710726208418814616381203430148007729838893458612235525567537883945858494411196767666886609282996785914745048719316241769691736515783888489466527236365552513405986701285609509780498486167654259302907598233251235383628080114849429395375233695469101883407021158153504571697193963204060579041813200735330668223738928355163290119933352741013107858192066572198940815211969178267604505401535295371414666233093727813777406945681661924579311016942082115844956372784640032486747308629467840747479953489695226256821252942077941780068972371480171532584895307075254201008781851933707632318986226826108881402391803461018974222685211846845593979205185883898318274417852102332545343906163061456091328834317687217972374657445385170672164845964740640246175867628366656246437936349612195240657833603864042856300785393228063166654382815559935654760982930542949661871745792063072814301927490549868196536894273916435155932776459836374621117760722836048199544333559248876722902166921928892207418447751378484137188291666908027136844463683442120108318272865978348693651984647065027663018024853686821465575047368357210780660447369737565223203012284754893530757691923476866436526043457536717863761184113737561385353877955734526217773061040169257786666629206842066833212903230457258330736100317047452200851541602948591839707097133690255374697598827393350183238270006216306251153055118591230860377673780551998585923965723627093329876420517140428457878669417080953635761353284458326155365756389061087704131975676458375659513906990918782214860554588118029279736749892541426942339180190074938339093178163431667419016592611250553223514447695225123871882796284549357937573908374011222576284086571145035715053219394266155006473051165919455621790862463681367736449780266772362105058091001430724047733526750503849212370786343623061471775850076838269822117142498785454210249047183683678344987440304395512211519423500619719833205692921604789210158528303504447268691435768286028698699746900735045565432270358261792491226529263717159375765539758967892151761908674937046528973289147111844685120625325099546822769419915966087360827230880533479466939877892557119447074632875259563261686132158974388550919196773972943481876711114865702566412176930090915232514380778040332197135366679810140094899053216737079536700074209449830296498085455482737170496291310713789483018514643630376157789081416714999579949910360296799214883831209370925287738589825585047508996811728048840105150881909507868149759106242452615504867113407362419399395924255861907289733933348587003555369891324637744852617868418685196223015555184725184672157233254965164147080796191251213769697374775892413792444356761579456285538178793258361983178536974092647582098405183934417008468619172657509616004529063671536680133417095618161565158083178781707217492818596714386537888073549147430254982204865845384995278712385595297202847637291713838485138761371832902643197498686623481611155954038824956594531152723005696851253934671879351639461091794487508155866376622436974662605022105591418885956009075563020270400574520019930961109733410275586456330764943645358104067578090017375609563628080632508853880677966804250912519318339507979300684570171690380042984077840884863222767545928999007310719545447304798948337840694043389261137841907823426318151805250452029314365703939848181621836898083457616223944404828589432209151348479469224093278194687127354275730627608293243151725346849578050175014391225601362566801076198135098028332721366653204156598770216301963111818811275687053396667463784668806573799030218270246476740198793699338271352989020199030276126585945244039206377093338309714088655923066796739211040920777852512259448543273618960874000201765376518986666947820899099597612342765108381701398743805298683387569634338988589994756345714177481449149735920114390282930228022342610916210344493335793972386567795241382937598070540659281774311212326359153943939490727353747347779486299168046175428369095404062596233845768221284125907735669151247487573667293240071541500510940029843747248038849220568345002151677180905616114393187693621375015228642328685157406404875812192010588627751849363298830057706025849513902319100251729462162136371102001533429980679102792508805587161311762056635463605653824940556740735090301196342876363355940688850119281215084288692039318884638638240807657342716683391412041919127249554138765108476739882081061930712569598459466469281731108559796547127124516848644964223821959404008158634551335810612984758489637604405944718620790706637332833451184393594673723684010802459660884854186436769132319232756026980555598897653727823830857296049874515504079898294610601977314056537852346830854251523191564617939880224936535501684194529654042188015908227313264634944723469406272828318667235958398025670125515101425451713505256418592329230537970590203711753822078292113666128764165742509532227470665911625774973936381972399572258612548633459742312698728007686901626012267108063493025495421360649550776248022932158409355201288411438622834054215758780667931791972707175385593191255746914370811498069973641531752771164188446307559740469703794375074691135395246766933212111573315512738944999134473141730642893661686542097184851259854045334822740910323534041023520540264710008091871989707258344497510390226962572150219445920840871407708306864577714845085920859160344056571800941312627884927550931396141304908466041769371047319635025678056438688001787705382672889234636290005835698877282699840543513231368525166225631876669688949958158528715742065599295407696682079336440675206963861681823378307889199964704583722407310335108688413738291675372035238556398672737714688264032041213996794370987450218426173885249545085342643779420673222789042819603029282870248817925671707347170107302391338978793921974462724808136534615573740742080089134756245749812561415836717377704203546355502069651813041721109653977332045616372428574989168178588120032693303056347664316281652858451747319315177461066571188226675329942767942065390388461035035791366795350267027187639957154418001686430347315391983340393196004345824511739842561542766818061802706307580926781130027707126986599843393837156782067553277723962266121360820557306621899960658162621879865472198779195979401717273352166327570309411053794745152769203521808158609315641677694398012262780748547470360271606519736791781975246209354143518048551640605375756698490258808357021757959363969137876376158044214420857880495634464846523870829102842751994384929806842516124073539847284555782920993579558951433975446032826190884871999432009389587149124483729269265035390782286899691046084038858273589885662435191940757343760723634085481440891967275670484482860888595977942150706915082226022407557187922353790648139204529987615548383558836696236415082660162948814615992579305203837688510973660433801150767248064025026543652158918805161742513559872177628349658382806050512868769071212329504743837108837812882116258857229361667975223684121916640240083790693804242263476512243977246740736485590901811503155376250126830938656691769884762886534159934754139475227631095379283658962034201413865191757846656478911549975798927598037830192247090669492741507392268756329510641511935144996598823346066804202081962183112230715719054488203884705616227292304208215089118601700549492933861853498158605159314291987135650273399000878050131835899147565413560790471838760087548806126748015961037996873353679756348183766783923259950555322689908942158682360479957815245834516335739474938908852733221322325382486996892953433800717350448934493810150331490283892088601671066798275676663735786252754763253741395204676567265664044539221117161311852749506225021144864187125011491815787297752026089114573796235340660689738348232345324589373981594334638110441604169519003557972851176948327621462971788206231334723901381570799079183655029993108050947983074281336013032614747228456857882909020109775099756117735341013122982866614143005700652567878386907018221707219396078651177751855313591346850793131691227976786751204175278547279388046477749356254764367664090502924756777958095385233967289387651738921568274204292625552462120862361913891219975609369769710828667317837477593004991280619915369347718903274904580348089291425282468156053647726682279340536418424466006601123980740714157579111549520695169678091899247651416113694443324856619329385028021051571845793822043075249821313742374838261500186963717547143789905281094512861104744684415702011741884885404953015719781748334030390651726894168749423434615683565534686510809439112080421338023042283549891926675260794257224319482066075153096072022447942509927263526291248839344289420078977788520593741741676673422574965693213710923355594350118866606816286422457282285001639529338887967368066813189512551505787491649696305087591996596653193804457183300240988644320204619093675538311348707032906296288835304877409179407372042603861108299626467768757015476424005779695931599841031653588288133370517343384123406589679872250296982214644439069832848932821975417081998043419412905516489102513803838959735187277758908785501243380324327360972599989042695743640958612141165658218976156738333152841202784828763662374156018332917173490633162038418040530092309212416862154648845168180567909258238813982088380233771532514915012610637146284167489638859714555168306742077452601740798102079885333341223430265156886327055196403939078732742944716250128423775302554734551402880810225412280865505602099751893645618705001987917109197652339091810801192286228810378256001380261970304937318452098516019771827985028477837484682871536687742383411487521055345643112427309801412637108932298845124083519330966033779207104977245171214340164186567497695212693213902772415383914645258966345886336524623642088949103575733193795795732151336026545186851348501639450766012717291169681878116611179195837265220196559633977608060140710177375026614653029067711054402700225978799224155198494693463764716507468665705516201100496890290448085080496788721082871619854557006909812601069362216165338120249693883116516676502388475528837993615838556697882651147955485920396318177633052909961982198019515625450302324807621766454449117291182720113135124816188307099286035404803260700248769437821636395645502373665982804466529642125480105784518348805673865053507471689235268674609518116682099722469152933606859678577268790338709502940622357053822294446828799427364078340219198707370182329386538853371557682354520970069540047511363950803094094639475378274205958187035956124596997679923432348402874595856349608267532966687388030505683378992783088255149532718825147342072368260108570682742747264575236850003968812547958983641476195069218558782793348750697968212699905927028413801507403582521488757474225859333780901798811403411700251311779264603455172240804643684994220730321793301808254676637437495094693804588576828425359354924965832376635771255201766453150476983909582289592590794234077345770021374125666501493219452143328066254756879215771981012250355040331729973798259738663025446611741366373487421195243436649111704711794051776057356395416115674989514338572965696416857240925586999036989050620064361821912904732368729692342309465068814803940658114651694684772528049410801929406036732564060668043387493856581135157714640843962535476538267764634858250088502101738324063478706719942447288498931302315545583121679853285904808394232419459202683641975565051276822644717499906037273054784382442009548673840689069829733131344965646566636343285661893800529656610710844711806407155312922201363080714869787999891073531705819098706300400173664307006387304290427742490521281430570507110869865051135804595298680914101611715044334932901100706033703145336030961264917725864475475613599769782618174397222750481576885412134947435692736987525557754739768178058252573965834044067757779218379719183508737806748670524926250626336479581407649082232516595811507691393650511171466993477939045887546734165305324642497790459545065976711138266774938268498247835067389988399618430566679208412546847468951123447721422179537937352883071614814305304787111540803783206074946367232893609786834878146494304273709250922650241043351449326619111212985010925365350634127889498009659123868962210820533694214709975504959080169709911215177041093054545633968415446035990805848417968263814303075084882911762095732298733903712239354961764834905806651945299766874006641001122297069916037138542529085064052959225120401127039887152544082617145547712822583112438189367548604705321260194325131684814604904253414193620468425570238276903090079964905777932005156024029380332082368689863771490125591865473047415115685620142757786922154534585476991593984778349864131313809657266821415962919404108259503022168135535219120172643360018222426441045325767370225601815676593539347679635246124402464852619412513671818530178358826762109229481204533361323108672875313788351085378137968739288743048181154238265343496547905480372735055400211569968555921190351131968323551365562925018650933854018267568450209064521931149941711554064575195206207009621122030595851281509440917451126544449672230044302012763081973742190656087890190688880183611509996462093046826700566637689845120301537408652248310947769621984450203998641729277470015227717928750773212417554908408040999064081343888672064519691830344370838456839491253307826189786241786348890957539793227032253150040337866215302662438214848380045911493837017761412588938910255578511885276110858530059302149645254220170422330545907485534243442812784756417854061256822773791556751969658404533081255263235432612758628304470128666795158198186228726154668494193399725445863917451093629681982268723386653630317012665777909671765215663662597602438357743615514256350223591132375870158767182631446780291291083687462200015656423951216581597052770073088791145201207522085477533447854118457955489456549186497570169370548018722597958457720491238771558657536729512816614042249824337614960606935959616996349183043573901160362840257678865486315979472695046479097889030960103774765623186412523339276246888502250754466231121466064237953751713096751685865726664635292732735426942417647216085327288746389678745903694766191938708972837318910056228509600724662628803034140652328738590863402659614835370355998656435771390631683745878228259795523746455566887074004570043751971439737038099321651099823738179020896450594035354115980007529903616256179578540357600493204967527600557296605093052985834882818061521504627585601614852875519876643047938061076808624544052798198004808624629142880249827426970336553919975079696200258947635092001988956096582127692294221634555178129574347754300977938459584348382918683741872887515086326116446934844513818828840603149072456808520054963161117102327794759473027827052272154136516013948770320938254640905020800395900846118210394240355362912809279510542406195674231078309636065328692477603502652810271150327216134803656070711892241435639081984525766013211104250480611039115387593626043650830826938756778066539211236560108467157301483370067993501934180898814383505851466854871666762718116509484916624969606264521322316933855111982907915023274199496189717160869114475005994643642283515430151658204406752635951203816091767288048725711195079172385277743097685182416916251580313389020865291377791868617030103486376563009482357782403300776929961387721598567652218536443163296311355384209901347102608721478475379499992950627166265878473510241408887012061513701501310933923282965733297439412249694807779181804913818141638600718605728080565092744952231773545460737578870403991798326444870559388660493250068503259100807490863857394174110031563744386170204470082748339837226088646507745389191858654140190679095972315878573872296689102059994594820721335003482613757676071843071088200381279686947697826994954806156861977370922928137692021179224779891683102475634050516600201882783281552078459952414037413524918731070781147030543811306006958466118480340285942567088320407734385236499726499185895271658398459620904752872737249758959866088429513216383788123253627848559013460069080342304981764790021039005185497430284319348621202157768511502691627741624917541774125612706974146312547458435722612659218319620105887883508960022163258713480352936723776510507846618755062925660398434839033615248007190552279236122805162243228194788199166229863337084476395857339564977772997710126993486933286485226444327259602903007953468306440435270055378570501483317881720418053230989150632215585797106899515554427262524766046575834453560703914842564121711171312541929519866023456618300466766148958234841780478453420484105577885612388654878479164798314294527502248743517708035596083443250703474834133736198397567438488294518283608467440417494261506982027329943337484174310601385047832454117229776678915679824910756541449363440911791922257120822992255080578231581957314788360980455431320674518975837812731409971726307182600130641756916810196559757025727835434910263184527664405463228747498589007702661996602539343700327535053095178289172349403858319267407786262323689253482726033300986809760461265678864151656899594309528224335278194381802501542302269183684620630544350073485248720567559736950682977747829765395730240698195182988422485092114423749250924022857390223898283332429631503255595166092722117336007209558453754163709555961031964717342618212681595087849718509060259491024677276464430667872999706993091004074737554111352694745360514834431049777457242678987838445394594152394103469702108387780371957124334826104560745080872141564891948258345627231422836526203480541857574786960177254261156593129096391520403980249001951874671979137499006987430674774921855259120716383409416592582754567193067152343363305761188023521832708582800750867540071403680348759283032154765246939246177692384495485394553156329791484290161516176239513306184954603548102388831742026132177719880155310862292509843367279173502130054036494467545311634492206271565863650284461028303676870759765800680397552188610901105204333082297585130476367317576706085138967826729272169941097129002110387198910477631568815589326419427115754081820086508906080502283072482591416815556434666188222768841184587095517022254453722199421786703703985039221890767984196710354721540646115817474343797875522570011517880915430049793686149676543648833046863384794391331579521945726282130340731434933880049309443443646335815272817531035865168001212722333810317117683681305302511330285846031381928236362103328518916264034889825251312680148376132807277810918107803624104622609354541078283105561703313031576736464699773690182260154245754340729257978021445463156786794068745034427605306512514698106164611615236573215934915627323506824695759543477033090164862547685221220677421800213108024328593411241172743232708571287504707595107432903651463126126807445624447109575806538651818040486912589290484238694605908885162651629084813337094231394615412055340073140226366001882298340421119456381581123904178160699536680434441270653784589578670266228753159166551971012375376074079335517893985334409607278989429754740953873074787848713694638268674790815720288469109057955560886360743091960581822715397609451423351892202825330108782120924110324794857617390220745664628467614782481361218672006726030099010380643254944424630572752395522084087281547359097481864469706686299020836083682689246009545420363517318620245549315115394587847001492673869068803142617249700541065482887842859155072914872349710493857409029690564235026123903465365880257074140113919302521294357617159182519897228458268607882110522310227987228108262934227685299640462734608420403750460374016427631941564167662640061818952316246354752419392461828439171785199072834963416498827620184254483441474811531324783302502136206260345462251578181980019746510945632189694456825138575918535014414010322327295868646177742603018303465542463481342596562538353952232769219714935923765923986501492822505434227775052711509393542272400243891777877868831300594069221017359789194802627568082590274768410800156969461098050545851836262399645056211710648501203623650039801234863704238043982546317663907885511121273764600925284289060698746597646652271719493563258638759531652760186873467287986256884768001632939972661391721299430790397212942720750703626665874916203747246490587614598484173310009706737972382692478600838787511066164476904965879703471704775794973743568463443485572577243833144944410644896632513449637074010838004438862906627713458322668966681996563350330672712993240250651436878293914126175378852022767179539122091124771479028808658734468864849766366823073430860323811467651210920605500171352151731693643912060538016387230125842832594315383302311565029171139695792502342342730419642979112025031774156229403256001635667289629481549306807218566385344917617321689370680199562367035877366664812585161548676374625065125914748030911018563767945991491239455751198731352404480674024528178989076768362914852231332406951345519206851429959461657540863920806567208072353741136611179485522085180266578049225534802604090451945119345046345505250786906874200575706499233681107064226973010489514902550435915358656186465678638219662440418508989285482335838110852502842219998007618888971895199531900484372838632146719987686815116758666635525706041915353272543583533675285008091587239626786920064807935123143124566138152177976167621801820619835489151258622235774421497319694494550734153476141063273230550178583418560879223288578736099656254106668279148339968534133296811128734868619592300624084091230583228425224836120308787893941870354552618132370340382570162971526259045979795227217861987903389163032464229277353969721857265554626429657361488881376380510520986355698352770348730367599454880553703829463727003043768334859460490727857097632831056884859574193846839150648225903862027726017004916598714830622785752242366608709889916529577154212197826997362157577422034871444422691399614813532129921166363038957271306581040198820997194024554102857864935348720512770612030225942554936505441457554271249854666376682034191789358908775175879007302805773774588766617758441776626564727659736137761291874655021592200781774745882698526315941279222350838323277128722142038192852226563760327277740684161394981389954887613630198841520772767187868411973683660668158469885865628017772894555902009371960832431659216225605665529825742559570753499640689788503220276417795361349975439019406233389679720111002021574145351526223576026579424637542066006818129191113326154912589276846704388945676696413520849850570807501512181737556382615120708795905500479536710329890864599598308444759666428994533218175693600415337165662156900532659207851122292527241245528783900037569457730942600869366349907995648493364971646012197920436051207528487223619304000038106543433859840712065051363182816699187087522778448397867091713266989828022710559789211151412465675683499985226600716885702284104312580637951902754390918153706975004339944718574761153704507374307467281000685404772274906960733034289317014535053394873342473467097609778312724567378512358048341558563886559172220998547939744955269206275589517569528453644275839982482069089796045533713565831062572142682512530153491858376934460963093524685268366308064666942620520050545836216942755838178105171623880928523347808123917924099438198521472325996344388025762940301451249252678751626507271779083716995993796148532245544504206836369648730353920415559820118167347707024615344921259054319032148633651739658739583058504997586430824237927439307601701595909884833835758261450723893085947512406211558754643779089771954778228771684212166099430093289220163186685565323012215223562471619857437127812892855109485225793993992597586283832705337423059998641557302789872508317078042801951318972092459860466156524131767658738747832295789676601818306737974228601394446060360939412896864800520369775560064834662626287291993671375082203409601255460285526578213611552597169282977341977279644038688839994605018701991812715875815877836379830935476380757930382374858922344025919284880140058722392901033968521772893814065486504135173141743791035224120156221612531112640145151284245623823245472957204885779271621684485202497911782103594457531013144303815589734984718495962220726636111714903082215180109593088787962344419615526602832024078960318341739163499849392621577349864296228275187726422311499029441561358758225070687627118088494813358833194876060156317902015676356521135101372881817269695083272369453880859051324838476276380141037596310661897964272320995304761449696628581763011551889309176018704194584313528167181671452051089232053613133633811063278932089503483604118284241313854620234395205176090232608086427590149021935658714339492269976006007223223650101860162009837774089676204245398662951741294688506886795916143259169788283374206533065057061196121747666161107428019747504492642780039118701049756992487945628658618250515574047139757763356019764669587076415205068519490084892103768332974281414874049103520506697360720506264371340335522337813087152115860437443990266083894900352201983058859486467186236232835620906110331392094449003792528786717315950954786265609321018729344518221000058931721871152895739629269799395238533009504924523907953721893347538355681307852031612084703583627197077352666068825553562789055315438435473055803057008707792775282895258806729188200221723408882528861713993074218579312039969501582697638128527920747607481103114103663572369549785575347912215917029189463804522096833890086162549652021236138429292345413569899302965825742829162658369662961751269215468885453544078155866376344558765998318985297618405803197459101631645781251007985623180540781193777971150723789256286316360424745727316239468870636541678351145434532912983918220563456704274303623551027633535256676720188556622978414045860992857604689636453310865920384690572317673482957727917295292791517449859781282807478709030777035813984092122898329516404476523764393600113179647001400700812525044767732952306974874626104170236904904723187678634263931069278501082100889730773530331053410378243867355613123006595754569582260667099114626868394914701459275829979554577883296788845413483330970980775230813019816896874317912354581575828689436535170800125538797000086749912527996948755857819805730981514081221770538399706719777164049996540587526427679784609471240323352291431581118198260144365241554624629438511068026582279403064895311502644020797287413143844117677521003369564892259745679836258337727530085157911037973932239302534244016975846494212187546762832777203255787406913799478646582961293525207353917047283941503735050021493637661875748538482445128869044007445187655108854459481613791555152527722202245587517898845907667121173816154797137179538576421132584576781498805821583822239647589665730734477062445485835273425532980601269435962496913723508800890673486011315280927786555141778402101886463465551170199812953999950133371889218820045649931775144835016378511412767801084228641627935601081053644811456022845836507315912380168141223906881501182545822698022255548405518854026282112727851550985509189519930192428449409695200231788009080317178082340627032954594712156937287145913475686613191366663045835830709411004735415436280619354874107958486853110828598203346778902737125776575095100271959580235056725396284985616107970652534126304129435095564374202299372313486846659033637020418698489833072126692238226148531546755864445609229065896732286514092555775272596077106398436518354212570618698154256389423526497615938427773900609534200302007296183669946952905942631244962951897920525164511984966826731862634776816644482028838688586305195967415413616805145417048176308407780778392662691033153160808168823306414579048252270008355357460210187723629779455341802812190232386143397513208892905020379760439943094983932774924183944334374795890785623139915022684535439856736518530136529643520485067789633700911979507769610149732378359699874635441990056333087446499784941818781582687177335479748615550965685999108310373344667049500247323487249820062895707661360958920216051311749408571751717401020123786740236181184969430187809577022138505224007683830248481339995064444013713961472190471780662162707892294454378102351871713481219964407975803329098375149802556338078677962211174818879196748389749183265196873803189332234945568948950331562144774035741444803776489239716886460462574974151224653492099796579508206301726993960499594945097040830954139865984229890362767398205782419747150828500304854042091373559418367536867265281824358568854968716915338739092000713463883771465810322624576482588314041581493298617648419346046517893301288431080530197446559452836886394370881622738859228356171076163384404273674701196001960173236682408295579579908484319251414133978365844785194110107661988612387505072442620250454249297474415713270674475483842447046901018179740508428551969813917564045318825504360385649993308618274102581133490058497250992844697173774421506114667161273999833020524473339235070927784057305811033378049977787033599627327574971584354099925583988042533578520025672710736343156853675654596908877485938533822666198684462134903534942720497106203081112954781547037669671619429468319287173753663225805943095836886570296253400151681249849074360385704969024989452617219614821909287260803358381495563075551190205763577692785582943179823037347854757328733384346448224150917393671619995070967165850175323299478118361792582089317940010892540125948550400319320452925354395613262925077030121760180082867373754170137351703574078286332352378578556317362710505050274753872318843376424052807376555905202672090341734419246515014511718887677508366438870571567236749484116243561624944485603620406812713552107858347609152107864408801369745973813752149687648635631488496797129449275377944132127085113729825405972086278948635447062876713136185704579413674819198542134962172137374938497747448138889460945277773464477070547956579480552306785436893892438211734448289012670961280529940940523706983775415833851120935857796354613030934389318538512014381816533346282622985498950979229659193188577582546989053028874082087193309034062272925712878092963659256818551541205629852926358508187132208960834433649523686972092394275096935609087476413506809675027787324933219860430100915842794736935895432453562049273121535804200385806536761747465678754951684832236301988841421345209250819137849305867911001140230325514634622862732146543349262754635050690488772168795588462142838850942620602633808023456280164718536517286809583174743182222979930426232850650195216105624688405941015631068717152026405444592743696737511761464704216922791021178235251000618450954844797442775504271329722844314907882838914964059021744349178882920322654375787104184468216410561471618020612950342400527796580904764128453401511894305915766940440725357633615074639673501790365599108109212128939059209334136885940538561418791276474990333027814216779607146454647139531653679478183779497285450264155655028661790906724372724347024377075537356022090633931370884868026980921977069672118119893591779252939782935457242375167000209432916663450896737467380011128615343123515816147385442092178858524090680700377110667732745145898198180151681896515640120882409733369330668507326982476098030036046876549864267683592392035343017274637940138694441346956456010700581200760334084122473805864526923782131221961235583326649731494636093813905827057960975021022807141211007380380835759839260107511893590045981456657348307157442664460540101586529521386694783874498875728925559670361652858683665176911962503215908996506793375513956764445794502742544165130314224852312599331895829413516919303212990933451183780938801351120531971211343849438228662437519728420895521817295299693211641609996975323624302796662666852473945002979229282118531122057055149473507547464102061701577481282966956178773007204541286716663329013137796922219659115503043193145103515398964398269864686681734402818032280173791045166850547562800097587302881504705430102088577633285251429685473990609564227865053535131593618424829719274199367194792126870887149740138406217675330993691213786233594018495060170646479108031087370008657767107400601459246094393248334063560227250972454984382102321325869114241269445331304389428092456776991316328745646047890582237588132282809775920592140010398255959101850187191593167387984992835299235727109764742831062014586398075608941745028361876737580662819603435028245201169704332846173378592352187845019847610083410102003451339702161182974886305572727713072571200571914743682176820254560827937217549646445728351932720271965527880578988329637725244925133324619272292521793447397310416972154630151020833371014517558066216722490020210816430672471016152366123783908897935157516904226044824809268111330188732755403529576438805746839083163017174898979824231608401354462740601013877529504399701132112474351589701547995623340748197860127715042415557071008061935862786040288522448610035891246179436559252632239711500239385067990256684755338371893508126769837691733507822563832439082179893407888594999726414095382234740976113084822368696370212506237876420567469916949814703984281732006565185477598021607357141236914127580151622350778043398437170047111871636883906512450720211844191271554442604947033420005723067273765644937631516118231517911914128943761026304130809452700848000773647000124237634136585103999726358683437275558583448657203739156400923444322980995189185662321886266240002416868184984328836946153516782896596494399722200007904757011448383469947847911099831524252526544018676155719886005409013961757455342563989228962037173414672728605977400759633104265862596812270069038104300368190249476310021984831946435400095730613602330396608481785961657436031291682009693832921341903435918425708616290135088243147633156552232816089209916503641870975397112390535910037252046445443728861708468043612530027898125640479159312183973033434349522788755918785809131070140359708367964680325767619129282263325373884115447046205232493909362091816334307144984622174772930902646880709949641929846500441558086609755599341772299635824663146311817870329139072108874536070787102762413270750330307758396199718678959584869826611254301196480739798761859255405492974687082464126527102825707668435474245860355728344467639445184226622722976915159243440579151375917995596417479017480539075551714253427892251189535142999207783211553290816034838703907336276745655585120021479412241455952887366609318951036982346082243187040926313908564379447235921207172300851471169993452061691462700334544998524727054574056713744805266566530654942266961167234196878496574775677798064738146296830530137825095151992055319619956295383629309001468737244736503431848592382328037660690687996852466101726348587458481043748283843702307251813521854722866915831660811422561656661717516223760116398580474237327309097390205145876499424349611774404867178676832338554952068939885624734704784544168865840223663584747850761229034849164057651218804661784990013763514885139021780668636001961075893404221048197788591673359136924272764170950571508128136128487889539479201338967907725330440146224829439104894793562527355081304924775051134643669523736949611491922298216259985933423453534398441424105215752209492049484744924560069330397282174869910263808458003988458760727465651869025585227345796305319025200931240852120070422736403773071751011087029138612528366979980921440724745142938265680532634176680273488230275739123612898145518110705004003182101989878180259442430902697020981929242455687570326313577092265708544008888484872538856843514694662518733269905521831121733547843627905405797185103155643843098667248851548985979017045816738002414996486141285759247551691258616001790736015144580294705896879191837315970087631424788050054369319246733149833620764318266994959983947284457828838319237539730851074695873577857119245410101418091685418828745464800028876805315727795355533872035119517143434291699982015085536985166604551428353608778994397842853552349883777686094119145880529656831418005000226483437330177264762346957849853791410848065217091047980824519617933374467875266204512683739069875156609042926355759703986277949708855397501827294601082324285637660833901963140569350310110042484255172741336291452603749691694576293128860186942860847470494386520328925902073392379344855419122842004056211225457990252337157909636904358115334114300987291440122024632418905067381701634698529605746177716913016232934645312054006474095966501308022328063278148190818499649363916456526772657234338202615954235154626469243085675792559261221335661958182776100153986721990509719772661832828914418467931223023434875519438893792766957502869231876823171158158175104330702333063620347055080005331709644142238538759962233590901384460646123277303336645328425237889486759226946153738028575132246722416411798657820120697911944337074379453837354644334948129232839343018897483381498812478533932398412978351895572747269252780549185541992799581171968251441097900336535350675664482273367554133955740608283089360491973617033056039883933384368397280023118675710533817817806029431453979990182154967252883037285256991571896741476898492448800673581350719634235454248001625623883468129747701292332534368217357258183378993712893803095236119557504001714220684327428282084686978681803714112547226303172482637650591497909177731599084799375104326050531016972299109937742576518618703529130982811589970763680443050591391989321798877204430601530497411321861007422183050614997033796033340054571445940036000114551222273613244507002234011529952599608951637488298864000460431640832992087134455245241865849395731262435335027627688746043140155131197299583825314586274375959091541982918587218205057668769020122414405982217766968680282521036485476478096164235791575767245384224845780759658675878684813183317032490749580046629515980379615339889726020661416837226214573660508331488635058373920553325934717386850143600941478299166920457784752814256245800677511993034461447321556601584721752383394419502335077296689114090655960789991279819562392521462889505514929400368482400542702267659637462440170431932665826335328335607812967410065255975154605828296427725772786673615314862698903571476797565700259633133126974661251691151838416956935311580672448859693679268598382154667074518154921484198917018050732004503589050756774898864746308002561016549823665581897652284062246565139781876948522141032772218293513194287140905423227316405942009302150762966005290350902810857802423546472124456171561698294866461196199471981309520214253255564100138006978666185791547517159140609605192942362297480038059798854585667292952155922060258519635032499545146856250056106710474074901507783256075125148694691237828817929686015522876158833211149557700595510392973417958508906970230051767182159475786648879866849862912903238483327093669026654899482295565120999072278194302097654510617311849495314684733205770498635979826813608896564739236878750323125652984703754008310958476057954013099618019420892522952772536426154494632968243296636326689960039135610410713741204601516646217549786338655502235530829296864592142374577924795651278531142432878209277110845488042504527893410134578830779107849557021908609580768715993920420214756264826173864682797157888813683470867846548330253815547905601253972306496978346844082741336136312913971655748026098115480218580271024228739069472128138592473204749923603916124264706955260298499288375823277623103659945452018827458457849890093674414706232813682437951038200095383366540459329227911142982478241854187638071936180450858720804662831289615114622681543746215207364801970790679148692803902857139343692696945837855950741608744462208482208445405188251629816073908363401920726888893568244670577263455030587889594055395829088686396185473692007025376453021973928315246795550068404874638765385544881211142349535252378333947007343137248371700554431531967216578154688560502525373149946649749373349020813825065135976878018449243616190551565263518181464238198098162454961444226585555428479660648183846040780217272323796348402111575500421725452223600621959915722696535424234657382240342275557075329748178677882609498930375928239816849261111656150163888936402220227390696355951807585480350512048395079930497566535377215437263050686454094062999232837454992676095507438913196784043331993692254384864610978070089281031494142276648128258197653676606017898508520369625033532161741918496011024503912824887613728476281142753065092487298916565612031347415412127034111423965454341328911475311663849976323007910190379783499745052242182352908778895663136659342193623976213983838057180310110162263432179183733460361062924243896645505086892474306250284103678038430368325233534264283479534909748546701282792255168500804723328929990378550375344122307104994014227285352400411872275115238755156361531818469580238111687925466961151746067377635347657403227150716235682256104712498216030820623138583105614444801962609178006119409944771000180368823586671727595696626610475641340589369246129044125465300592629025262017709244042966509682204200680337138045448437974345889212064395042485635500837126689086592412421160428879488861316349990338476686361128985249598669861149280382522698637962997290285284687149979628880125508946156595963795851301152643933924462154652689341343275374628101911981231673874211678741328566578924607698112652141481481057102035252845560184752545706569950263061813656700099903695424309233498236404486908006988678595895975599026259419820125866517582375360417329045718248797013207851638568008680834105235065705403010745383257846196417396173765668646375796371199914055409794814371781410935031476561224790246621041570842338453273819313428009755616711789759636973815031135368599901291097049015172131913567989624111621160208697738281159895241932646818984386944304852775125794975248884137767813241373574531427626972431734065781081452860128696262029546500141615753973369574588380077198656130391923882836678808151338759684682720218685229826266394856221810807702365173960311613393480734637755681040670193977129095872858276545617605500483356215023014605698125310511808038092263261744490172175344439121207172603307966841302122990314098837315727927989741034593152574511101872741961354638547162805854828560566066363104598044372311697950879827359603182615135620130956282673758163671890880909640966455037225829936547137590345818406069494549377189413564171414961531625326496647009073522819207378683142705788363092322829910832930039553098873350929855990567105223582058265958072345787339203488751913530365444671973815710983323919099765415292702682876832398231352472223733690396897439657453440966301663033484794010428965722539266846752183355429359380610354232133463422069521967177380097875144127028347162811997052985987155016420097319636163638302975338670704910194583472157447640727032104716063309415367894411832083078448974157618212682502650982803348825895329893912632211001664639473131341663899714576376215644239193360107619410016588174614311591798188225168975106447602454379272445519246226940330342887607356633485544528715213668312773899309712793952147251079503165433080845696540960159409640540032930139357515572693386931162692043671855164013768740523116034159001005125077130623640217296859692892672195756799244749259365489568478598478294738046257035549341558749659073233186623289671107233342573503128308653585685174647261242054245506618672785465863997130633215918346015069753671361465230310064555695612026647227626322121380007838134335403989295650703712142265159145989403678293935828010598737814435688935345456980811537323297102744896455734909342304719519381863625893103560856499643583082224327504973814864999784123080092026737193135112574406332936166518031874111074343094034445474926600722320066942121020164946629123383935638708036347271920106382967371558401612190473774022661957983222658216325580512369175351127806731164157111560799814933100491978279526614000702336331457591533382261635525540823752314440477792770796360809153639191716192875606565740341240109172956799301406466709230613625762272000418399276983800553193920787869673285574365867372783047848638722499148344755165153967475047160129764332265774909661334740057846877565565521259945860495296759917728793300745703628718514794760131216753958771022766449002392306696997010285787179125009631390266785364540545602886128373444012689907283689827352928884905865665630852416511879822798897857426094103646095892986354731036600786091182398438918066855249617646995580594869441533894313335333519947448708818336417271674801223769337116589480096207928852323257196581943510181591686401043230452584495532450069998234883541538537914397561304063642656056686622140403635760448769002655457416036152288007910843580175884174537424157692249320054152567478059513068130094036277737836770955606393500095423219819570225035516087411529217366143986951476445869212204925397807974566329741589228483352465276715932799133167892116577218843420302338851912767594399867183643316579032117340375329072487370128873863801948188595877424745633935458196656194204933615075465863940883709037352174053457399229510056613876484715968799283161989500688421041795538351590448612930623734273773533447362820597807830891913405402594768604095139276086118163777160382669994442609689217824863564035931084787059639582345676362221767108778806914059439602890116440848358685849347219699265918497356210903334617304275091601148435974086123348651035227748712411824445729369949013207049095765334321804983684558568078232229184594187188196983213874827676089521566324678350258799793355921041696235311481198260366701555794467706896314140007783794625429623389587732740691896333301899252528122928911772149111902318377520925683135262730201574232190871646900701027305274380533574134563899161274935087327268201557782268391247398746557156615164167432724341238222527986405056710227058924298430165089590827207556418504369937778350965370442474593387139913259233583869941956946762780538487349804187487254522617951481653273149520839374979769030041279241525278853413206728553738325391397089230268196203355864825007683969649407446140157350736254529681073842573177525638602110093195159499485509172526009681474138530734266671933715011212706603620547801533412196255436483562491124969111013421167921248917956414452902364029794998227677241480211233895019473050056683622525270340941380793929226420215389848497879781212923105511353696413861567434574809439127259660500626801466298193594537712663710698991128981728635676304443143930702657727053807353220711201665874635413695427185393498202061713579117202385943918811892693202726023477135934447286583957608939666199177523829162327643816389788655168412129951422704268107073351696110043725751426148625937402031287688757939173456843365519903878953573902369866139683022667058441152415893645600383811262292678710208991198753792852359371473828783141140538276058076072918089254501965241472100397779339914392640394760366676751069658469300634633357644583972938520381875688399065023176609853463066712856384804715753698666857247367591771331435083125716723089252043707725531183869587204761104074186799980861074093636372888782597030313565648543531952664644699022352517625312306287219548011216163201800001385781560514822303043324303644571839327836451185682432686498096042088589671629117068499161298541621707326088691828218217518698073791470994779943575517176231716802414978166698201499062931655532340924370904713391366279793823955161971126917951719219483117491337704366987465590296117395016184909546482547597945887037843808712365079064508830862400697586436964028328755930539292231560231888792859494782533993408047855700320344693122320837826800089103743449537765371805435690633096945007780521330831388891392901967614379491706048183539980851792641481415316358884380366192327509206714503121700928742083968259773347260226338507163895937887948872984100563278567058432896851274050625400050130934881517997245113801649791211163200633185945599146927831865819841137171113467067821266730297206491806464436200942322052891473797604895248995943757403666423730901058357346848105844592534709880619397765930301547797236764938894138347184783284592485477462808102236738249326194793724245638891790050157946347269667702121862843060319576197559178767041741547344976259545708380539048708710658168393136963739611130135152808062878596496093527137895553581726882537139962199429002861872592552648169992242845581587078556683008952573637546203438115167756423748509772374645580807669094467954590586157573927403243636853711678454972207179615935834647086920186243588685947876973174202475678288470519075834864132846882860477807973214706795576134213773170096936944135588807412335724115292400023811983912939781027331087402095976325612716314321656746015372461720483037998051021184850507438961438587885421483697469284464216788865732444743618661555246909905337806824178984594363444288770931629578452005470802406201367200903624460775512128054227341994323101252908808732207827647637173364543555979961419839571283174009025566585161795298694402462079799486827848207732369274592589714958266952133433118813167529131794180675409612423151590903782638062972830524820300315888432047234297828794412725223482364867152340656148414588740256008061237359478641307194571644237882938633637328068305390711217071597501740801285795181324654499548611836363893113112363085738641811043512554400410828045094472047993941754356778502529100550566746760410314142953897155224634634218422306778261012830636216531768752374069821658517934945448552744567555288544817974391950675294939549849344789874864054039216824198890390925409785701538304819318413990821354423902779813354047253845666215348109551455213474115390419417510248620644336616272984312771339577940562570844979693661294586059618948015896540581859829805552294876857716396148611093945444540045126837437522882755032286296883273838558873562133643951064619791747783657217834467884627902138481829225691717086470470445569388922556175484062896381431359401323478924748507221244087474994326758481845111194134892245199827767178612247106141484291784418061819541474932990962674783336410411974897336854222564216397900421487088883972793922118770244032031089452056363435877161369753566972605794528434931210682385091616555612187092011081168705978466679976847609083901196678947063958486509453701998614757970395654452364172909519384082575648862698322350324924451589702545059120512813426232306449759547642138384734537437921021718699199596187049076653119722341399520043886363995214527512819064234863833688479078862042227672974179595049785325896118579822787783054458866315638066042149981976825082687747440536995517256072622475406843530514197696354377600827592068231423424984007881202557699368120284770355602101676929594480403500062239878716527491461349077858220536626156791027628975774186530315826962029971005372323644783320107091098743245397507377801692678313317129889543984007152953126821860037056707924636302422568375699637395905334425526046697794572493943491985895114023336040618167751383816476265735369369007399358937367487710685365560359950275404157914838201706714495658409097457266201635863708345053338240338192643426518993609405083002195748952733797467390812441567013691328857144104804801465934595440633101021014249322032301294003697137678637651990536510711520617404042059866360381608395541427946994461916606086519697163651674260442613178682553976573459440987394834859143350865408338097944774645770153014249954360682847045208128131186453814698242060384384104710951536684020366071567407998100729014330445849141091930805475033657079272215862127042936387331291602353732402024132679308735282120779563283036244345548030780695398051170454451426659561739448451951768333838209966747879938301943031828930147832123575994671779266836969782719793034062507075713446406951035060892108958336920491034130792670089166476697918856471796051591991067428693633497874696297480527218315721870361679876672418514846735300638441546344969696064750693509366294435241475144546760855965883303152082004764444699785888363902480472615583091922201206070516285126059139826799694592935224099579954663224545350484953476894240538379371900788289262422497755950913932762589675504832916252706939298188137550209541180538806331493323511346598300597950690899540799439027330811156044606535319154080002390818301180111740609700298045550184516673278942067500249831346319152905037861706878274524112507040025219228325103977386227338962333532973951641031462264241588602205855262003974105681409010825067984406748536695367290272595291160058868149351000627073198215396209934872152750158017599447440619611104652552979329224574597483468047697549391639855649116237652996168677622369381703918687516947561926869724445591602487984591001153519524780619621034618540222604588306429483395919054870989794070484423925775404891220261675562345385925283782527961316419285989849102637509564323314057815759729562163246663091335430679783409073042839969366486063325885765123815435091787708948622993056353116581007299424166269033022844356857625168395229680773653928207795135782742549374932659857126671151221736324731428764781568103495469386928525576792051917137209036549802769968068789447164946432151140645425232702037358592686488344563131309295824364584080923827600866003656293144056347747117356747639044018199134034858595212639042905097738259435599950267653931622960971120482734670078093767273647514013044003107162990681094588503772719917605374029998682279130179536378393037685777107045575263787637793940063343390111416929202871825883915275493231470053269865193125647549355507611528374416036197315099155365631481151321879666947133300894798988256975307371576234901734967480520618515634628514413988120191616090238523495223467910521928838904046466484366110870851863391725781335544970623828202230090859251741054193555990952279828638450483169545866783108824643032230495633902663460784309539033145554775197187092091420900420486039668596196916688925636879909169995933244630996493462301404715292310013824401658285586453101423073916955331812188614370908984858905583026429246129486750171839856484844361832977794260647286262144443734194851898557356365668313865610002038771548106554982236982838420181082349077790388896941266073560535187200686855774040643024359216454476940864782709139955211290556514291984241040665069269741245740026299694391492322786513971666479502677295290798535946538759971217031979694590273837781461399703680814042198738177311416439982464228648171179828482911139138468040545064394504140218207699872105911237120040211193068828820193874541830668745825249551217294562335235892453906044895735050593090611478360125969284792814196290479841733342433562706864889541759327439833273507111486662650603270721019314136666821053101876895778360911401462049187743332532031482039195258891869165264141008606072685833357526839654997510888266166617246348935412912712243919306173864386064453676616028598449449841052619213397607210170082756378844716672031940026414684042914014536957038511001261375862558419428041344745877197345787632366364289395468410734884698915994440124964288318402233300633278390757592138471654895453759205335508162223455732760372058504986419760691045446822638811851156343492511013137276367429885729728416728306563194582732234643449886937846467532625531074085748563667510586890126545832655801904643980010844283826117325477310900073179906413868460024953618387575636728860725095077658132070290516395743367738329294731558122195115845355926647896406757600952096673947980810629147604868929284626979074792083424910662888204092533210643240977511088745930215788327597828216386063705305390227337235435835806650726398121509523860882762975264062815803240512960741191862705772453469822862150063783012221488445193365125434349695217552750614663851542008373119045976234434909566699391591115574704304364398729881954738736633754130412550629808885853555449511247301965682554810450790092125258109194646945394040844525903870277616988522040947925739948797662373794665440451924702781618496802896931804010620984535875378100975704104717805506276259947988323352547939933084010662483866006382695225303782500191764363958871964708174248017328455989158602041090613593849122941282603740765046493425004108474507721293547130536808314679965795126948126998231333892366674965821940322684105281834425158767022168505500263933502871142951706687918635993942132702798838370762185202517165337547407829663240907868497736133853484203925675791721525817282454289718431645898723525606691050488331210873614490488301222476600263221173769707787682485679695654899265097193459220030278563504712678436665149935297303769687675098078583300687207505323985855611022073273361850374992149769385242567565324856134896127022492993785355812534139359315235223635367392570451036559945942421934799481549476188108661117505289306398877171269206904839696147215607398620609060984590005517512159299061356329259232960993560337818690796478593430608890827968604857496234596867320703574693345230826982181327851113076441722651769134684531181726903900156829621584196790676894491873313341645763705192832691541440286574729950798314180569256264059442782098807046090704256756532443429081700289258061228651440534679822309103837982896099509509973071160061237548290071894806707332086760232689073237754608534637731299605780828182873641507507956801623077289875501386046919145718014804991089876495712904032241012003349720619300743803501721974184194552528126806550192910215168043114864994984848306094430817768467328748734149922822481239543095904622295761499165024959160428228076382426617968733149743650829989889321083806940454837598008023597127143457497850939766101523746654446561236570993153914875896894784947088338175584815346560265138885816869859031014479196040632902922074769372154069682976136683406890959203206633843803948269709549606470585299163177725672388007873710408448941989713484166286235010099925791147954384167622362276547348718859149307887947384019513384027538926131751200184914003706506113397972972557184605493705851695630730513628114113533808476473361690939294743211493128787115148840511635643786425651664944934582777341326291972398307053523047266380748160201145477267564416366019757235221775284401734393110757568832244968092504237654382025952839149354369650837964806176470101828624361895168783151436889349708821612741311183998331227331415509983470106851660111234810282210089837594079648194098834685717132960205026906891185438348598698643470801110132978042225134641966623896815142143540548920343583866041531605911935386536293068169864233964470512934162850940703801908492685973419483232108405181134357597607786351285255601531161862579456718199064475107285504924822453994293831891275210032898733356304714426803664957812592296672795558205787531463874129776460249399086871386443762369949579485591320741980717353378023669974394707099038057699920279172119769689927661019830118178235037223122854070636492247964096049070187131537682889166443228594404031453535503783001419254464499170963563536585960192534632885977557309156224161241129785093540006387017361540676971992590080667274435343492542901910671410544039830550752805147834541163032205289462100996391976056812492553665812143650366596736422030469078896908135436762410852197437761887639907072537290960691122893269023669078598008418653079571520511880617664936200731418480478963277730764858118390172577576484872954371396869997172156865985706627411785270438216677751859525790264367498424398719770981388091154539683583046030384194274310674882430645725668062378091173474601703597898864981836212234690901183091102734780148866934579790939708983032707882124761474337668351270493616690985842067888789848137503729100551424709812613213739539415453490484982365575452035399461500434578202493130130417293723754002808915068965153453812600947092375265642814166179557555961684927588486336455545689737310166681864195072432408067975304526075790724727495849565223193806385693896590314143076671626842835743470444027089936529441973420321024945182080718722169133662462999642701460673201277143516605900589925903303000050886210770843406698470029806355424539064152340728473266118441974206225949530920339917334483333654593394270669848742606377114414352331094064796687779887381979125898077866971050372560188150837205483414131714208296335255302877702959539246503081077294786360842420138835636742008597910436869500156695900875259894474722942940063652215345103742869430502719400036311457371978725268471162370588177443156343302363424860694486320489871706194089004701720336112952057812027631940421482452569507324433603436594581269729849596578047966590676855208090846263293584189218896038736952487933525231949981063188046019894394166260442658000487358277983825353730785183431828950942215183846566854924071953010439560297992505592076265418680032942429728667292468685232016388531362330552958853973466188232217679956543051967194646445679174698347990035721436498724571225091781501535111719607692314292356906076196465201404453016878115351251699557828271707525382093915911498675406530890801992137094228170004126357200064523967772933012423198737637419816523063195301186657018903547253113775397102801744395524676856296731342474838109645486601942552551445806708444654074135558969815394103896120297130511616124881678379350546600611867508527741325092433758350865037985053842185981639936331145270887990713742986110804165469778015207269437676023814936182010947104542829578975613553156564868541857586594361971550957256858357504215711705946628896619298869181428980704878731530693277187919344927094352459348767006847933252583096670398470550964358920510147345210880518119842484879544097798505515596067760455029216672634241767946115929401528787077876050100851918175293614880055461330779109332485714195753245674787397007993735435161284890306704457343042479959826965989235373304518835040861819143403726671220455827480592792428495648963420164336808716958693138408854727723325125919679801038565804872084665676891350444208666804479011722971326177216571320936830994319398277058857117056416070201483000967812569661694053633996680560690469152596713732959811531511476490647811542666018952159503710390316914653441359945468526986433592195470495988660471307929172161570410448662062070812613998831629230410853249621671619822829739410680228907589479115388388669826443166981469354307649822883051187041160629683973338163243796570717406937885614460724735216855438897327004702131214785723784125353710598017945136862084267282062388986085797291474589081569414064888331971706090905721871969443134810779460529093160976385392080488851021664290712387865571175281432192784275674577133797707100047281622512787577970922701928018801030034871915043090145709969639369992959716407852046560921552455023422374589822774637128668546282176909958579722670585128733893652525293634526550195762362148087798798557602841186281912575078376821016330874063729062083423854837995480324019307960878894290822762458766807970236019513621510887800851413486130290448557938339219407791996838198503287184126723416171565097506161691777607381576725568521694891480656235043035502718939563011578575409745616758738213645758356947812897677336606761442410555240146221493868517732219913762483603167343751360534075547825136122048059162334707925157918316335420756053287749436139923563913797474769698631676722414170507553733818811178575012965490738448782436946912028352678344133699691283721612667759017598073116805890762280349619847810380277782541234595641496247795501649155173529948505022987346930892385213894841386082506681014385527072775232641593639398155114004441987393655875992420079286253778816948401679140934683600770823026031841071883055811621999096088260737630298436464803272303204514455556944671239989430744316103027719860334761917837069076820428556418956176432932822134873087924657028027910615003016755899067226084960775433705270440037305070808655809898529372047994740508033507675529474698919139915226056694216957981603930966154165579138291650871689635791684739941443089936447480204627097401370860746450007205602611130447035713459888236214614100801638592597189277840248960867216739068816596923546555624107613288862621686843767751234203043076250943231868106338641329929602088662561808111582537966088342840363873251794794609902314444959206430507228933189571242958780569376771285902165912402746888592980256257641885147042828327236759709327811789248282708855848555142983158518902413965083696949167323747842661089935712103960713486568601225232238971195637862187341556567476244533423881725062890713661351917680206728136078200537768492375968128014117389457042270590092740748360611115526139557543936125209897469654969380413140345777873607648607616432005625554285940007984824794253805231291886965450845861470437851652905825749106579054521449762704099952586453091366839046624447749405908514925082222861434873487537756721339469334236507958599676053134075235934127915593012644153370560117003901141773412182034281020094858544339491769544024138875606623951488548240453433403637181368938212134258341955018091000647671894714433974067439412348797979383412406932158605969240028119725871777760247375965711085340473192460308927412794592173928858333349071372783855287313058421402947227159307611992045444008942424092049941958752637351645505252790354797811406574184489420346540312868784892386517016647052701861438949410935574458781927158897058627363702414156580032781223456726779417259398778516073873234698011929699616030321811253790740427113218253530672838213496492960182829301873348442138301105947477670740347381373304266015916191348530323609270788942298309585368442910248382629510314222953912001860537209257463041984267520839365676910282001310873278191126164834637221575303826031600020874005971255666649661452012670411725375264787678569082852533712491584865850861305767066954887897083185552053183267399758365070465618608216858546982475856808737881774865436791682183599353723444457624899486302584886833398585855576729021747152557466174395534592365582218662642301680879425868892146189508571415953841470136720322113836456267717483614810707362235479070737733281619262952229707915980031861724167919511705386125045621691234870650705112562429772551708538483445745610590269149508497931013491638512199106431566667848872332477109875675775199329603195949870930993057397897773133080611289128000099687723439080982478292705712837221630382431430625277788201267404030751763913954821887000233068385393047133221750407485744352161303729024583730558919842206646868314789635671409944788288911688998823134751049526276148352416875535512605986203531563950435510647340529926649814101088799342911490592713620883206704125997046100801599941082636055383380530839201347535683306546781597773133339881731596845032994291461764161747320530017237244168749677151025769649730445827911836459318148074034243005200035770825528271511113497282815165135764860917924548440787507064425679052669066983189991327165890750396454551670319327838271026961629668904280364714817910993288438146479711517326171243720439397561061663327274758078619448458736387489387641692125561908121275403509102086861062165279307194284707857245085417094958533926088030513948964665790693645913033318250437890266243880098772639777244638842122137955336229075762933610009074863259847287098541365498169944792653684389397790488891831412738659283118227407972914697740678251554274455891851377228205099875384451241533591525871657782201461828710508981669811422266702498310792067424399002884144637654979940132694899001545266494090138511011987910771720923085599536926895943520452686811978243065763178912519122857920130808564015906889078088082936540220194202907557219279133119449052045833326065752484908131512232611658531593234631112548941426109551996966155108213971782232447110908645722584010617219003149822738783874075493975189963474026035647339434985492886432394970981064015287302501331586366934999077700841327813128479515013658063215338160215822944785616291443444363400069936546371152456064024097093418713185018898781963686219430323284381704955876974447957849703867336728537351793169065226107292510633701283550097953932367967870021522101825151964130250650304834351506121125377633796007924198392653865615604599922675037753451779846191837004110508884464075834794301834938110665684358690768352896128616153700800293958929697052763657239742477682580573233694820561095332054775867119958628274610700249883975166997987177150161338571901724838575532617749735122766324813795628612342643575328657058651461821985316272064755404459926143386963837604653544663443112131465293724264812385435538825002741340662932678628629828284798001973866847141028977010637308358298585249376573200552431725935662552222559797816827739578288091569722287894032178368277314875730156914310189494741723514845077555194400667184251374572109394379660550786848018271788987873095053615820891744608089515618555574438510301474853470043338686877340177212625312007087893707791010610026586678629920633862719040355075139130371246209248433086271540368345999255870227370388829621266800256971195013979718013380415867158733791742147760617339351455466715793569504080042892731134461558625272863555113757735212143698085181546021239263086553311035477725609130374074476097149773147155602965494095496888071331997741502781149456317998289915002666450053389879580192527774016316723209636733199938399475955853461348168257885810614116638155588156937984216169416239341106201836770199670319708233639071745619181668890883821024450603741507374549674114743246784293140184426610776758039771181176361730139005206664996028665926821390225057618240168403065552420489091883470427643457625666088618685913671570763523924226838122887934653525792563975264378176646800075462540958524468791111775048736911701466580481419238321556786677330045812956370560381688295887363377918795477842856754452537156268992134350914520220403402385269412586598241995376805208109745173258476301880458969734164207160067887881950310616111808550063496440660409149059946977974787590672867733209289947408704251769218321997820346970141164622843520336022963249851341618259491708466721004241501875663721032020967820348137499325232153988889517324226766189665447430213723757660714285208011902930031891925124353053856959392641421556605689316379251805538354664149894048720030525488567674516835106985413217649648537280287195694172346828431182253053051099317053493283251795860741051350821726094200876505014649425927210570558666909185110121733022351201225477760405079454451143182037050016952782858278837127872642498369718998581532659665771594496263083630028273132250305599653169036845102279540040375585454521148011644190323196161578474773645483956813617654366896405448889943296404424527784948992206914707858369034966605253455330215858831280120170793747933363584843728291573508153901558410902472657575932242926090901138641631411477740454536006398785589433163658490715229586661151305443219097275327455618121647061321080195937006829586627181533935858354014203555950141636509336920379809412786419114525145841569987901163389797107780248192935043114751358757535501196233525412406256733127808860149991508904885237774131856624830015280121982381423103327492970455592084871422162001578894824381855731182648821600563249203894967055135148164484984813017733276494775492952141535351524745891580892396698623617384992776863149454590614247809724223105684320431976597540639474661805584496521496668110687923293803068760928475807306996026108329317022755883650837667269361581633426711401214579070001373195658037201950732784520946414986155932099687776755309024309335167648274381682818599328072945251315549191474014771745135948641634167312440795958498962274080071617436341155794271072622974890148348930473282787843633383401976229323917288925321779718288614316045752252277468436253540548751600218822619489731050079821963371954158058403048285610463348665897379939217402043958175820958006050885968564928325003391615995246389450595695866000797866385188402696603328318289099480184230660214213197706768688796361354455007185417640836903393033118625640370002883207547791208525488774070461284402344134230578085001070771851157311551118579980416651541779903581447654066447683570450455485321792082937972888010509283216557332378628716573028095872402481964189807849236909187750397218170197726811887070522250461096864010194548692975673398300629889335990167465758435342842737712351391664883382465739620451126953134450156109511147106919311323074646826820270794174355255279280878233527970918627412741685108982796470944611880315773124223886736491686576764192203926168219899520063459579183539953685044972214450551511569102963822472006004525182088649747926016637682777845032732828461736572599122441633092538677510699849357821845657776268552449296592226395774941911967008312760010099835512408478876221146285261765865446169703320100511108745229010749823103370137263521305762034280382159448118338984889976935175658195778812712896380414716588075292848896192528867181791994428867152370389963329640589189710112754256304720794049238511100585117742010897108856132360830614865501467026436845946502311980144641578860664739287434716977002642952726361948839264372107140957154427134031930489089522614480010428092257324929129991827107141960482914685524041337296800601534784399109502325866199689804338776512357956512461385373816741526747880359793699896648585922939987269359232949929742399929392877655558152873871502428076796721005851469607388409847075511529877532764243871599148622251771190557585899357461737712851248826608070869602809517071877907569977421960495943368346359718093980276309131848258464706220412359490770146061365850913511352371855121355014162769085485723408047304252796225350747695965622684237993229444008616159273087183863958998842169411525069411251769955022236400156200697678357028553374934332918326307681475314224610769286458991770421359583258825930502495125453231749224679021319968573372146755926615091858881099461213618867663429374337681686938373709723518037724606110187910164933878455285607961193605804461844384486475097445707489870545537258644604585324017048890144572169630356704508067113379185859188140389054660491201710195462151983237594898027724231647574193964092057419078907084470055443845070315212514892042123061292980291704859521113298225676195101867238733077568694060886186259975851966821982710304636947535908921533559968261004685502624908403914815418885981195165024608570373072621644559287084151151205190159996395766219345451064191321667990431676822827699981925909723951431609898239784083477166546869253189989559277835602544353014260168634184134019986716688625721458298449324695005562413585554542079188635323730905763189980581191151765463347180868053741731298335381523989693646637070811533075746084445993036673371992480753814960117546516710686853250561443626487951129339062075422586102076783760147051057904127350947684910647489226960975976739928554096246510058647764227504049127059118012051157573601865875150660412450485618481365986238210057640160006199038163538008740253850442607404572946030816952286562476724613068639866607119375267907883205894809370457627040718217194211113383693876223446851061605406092649071398254438683851084565994962393328099063672650601339062489811660945171706757744739376116911119876255106138750182349497088346584856464525014932196980268877768022892923012600740146379769542338145070616752170267540557361227057133019556417887091158590181944116609482162315915440016097688295768531885181091939021019027733903910551045895896939324402750599979226685418651572495853402310717858285897610126016000427233864260364572114967162178471424441527936191824722890430902273771144021541171795849635519741750142059787672798274282091394400231584805350414373148683332752477462679344562616125354253038039821191597082091969724471239268336397515571380409757230710476133584863432111716593256058998519960474008300670072856789291897072870917063141313172416468387327442105877809225711613346802961209168840213081280342664125105789803290079503989795203528291127292853844682666892714993794681993097024048999713586922445215920294104207947709966852665115337852818425364976665665021203642368731492592264004493005526113279011128580774835087176222286042104384537013067705817022665423517312574126884140858569544629116733885359617515884459110053662552483617759155161838575108586835039446950722760695810732847089084534458443299513420021097145968114182588795141876372990970344130493019715748688536308029653279281058806513306699373350010402096732050270267349915139886300017565789359148703542478500121651190354386010189343137351943739309765904537397839078802621077708714523560723776799732026755123248382166730811748271128087628747660104923980452012085229689780002831820415892642669813499069751315308993653468286238426124631673305199935905950244532912718683529705760251556968361157614808680211475366315149127201013282988004221791525147977680264240793826460298790596614639761147431586822631115087679111928357923030716610196318499199271352869578853260627017998078237062007756978918779704243402922203496409288825117153515954654054016830179233255826937529398643058509951307184049035681693720205813978672035685641837359434248929193473660805216164410360585026900695118327182706376365185882983599004571805880903466002876242970220853332181320792306335789210490748546747191570458912504286118665617649002460306593464974137850115661217717141892413714602499845071160285817369859574219048455531575134038871457720415967423355741331966870274542638297057529106184470163612968858057179621851740351938560761848940623185226319603524339792019883415603716130727538462162432934812055009436006358761150614708578515160552442232229493908991790723834764353563461362708950315208832104435794508162722476080827843681820402753590447261698756921839724730269836645774959333566698218481575189085993882261531644947942874927533764296878807112108390407360116749506339314430916717018377786841569415320066831244541227941149928273241898556356914310642328973474375653292362747684574243063009302061029367306895150692620121368871626483259385272454203919816729143711223680048150291674958097063354419224648411377346684992193567913100649258667138094434962736635848158176793022768310522686985374697373520329855136835410009367626420976484126276276737661115813548750708550085061724143123333050506943095121959317718256727487589642702898291936440062691377523219099223708984470467876253655310208840768937910775482883510209367350709231023512730885176734380833989377544503600889173216901302416368475574366229521838925345561607089777581832647454940106405242468106352826146623119412463785906313460145453761418345633753277785201375177553272978218673189490904642472206911878356422436043040466941588664269001011530067059621315687085861743023773498764718527046390812234123400498050905458371094625335086919860688402345099011927802301603503697669797861546516252683507974064267232484222417410043359439726915146157856398747985332381718680167321353587794942637716469171607790318619339210098238214442980577128516180574970619150628620365020023946718343898445212881138089597066047404163545425422572251204376267341089419023936913657573073150298642644977324781287708502319226845390048402958802332543987041003015983189972342774202057737921012600478698636529408313032010962324418982018558349404592111561392372133295150898613655741129579196059212075879017805171625754908148169873927847185648268652109902859358706332017909700473528979415955436831794746249229344282035723686996391118774149438899120164430838607616794241546401972729918834878489053955248836231803881392840457485116310895699360488721050621811173150807122568048188087002335127566063995195707574936680751714378405877004879522802390992703568439097812818423758295644578581743802966561543527153515209036524344819703653518080759289169766828116997439758976786396096091346350807633853139665225759787754291946161079860471658991337298207028895810223133290892041097410744294709897117976413133777462133777733905430201473542530152534380596714169680162165043425972927481218760713025214013301883634752887796770095604318365503373972017674606602977144078973861136216878190256917472500078535594658091821970055117020118785406380340810329689553716346842457740110443944724327731860503834680381925360632087969392479649464281078749619079268516322919209267539301210282140633110025909947058121304946980032363380469335746475843243451729589309167729987644524762960088243704002446948249725710225528361550875280212387227360067285819253925389791538200573008870957232404575370824791192841246549719931380813099439429004439802389623052041185884759147785753527137574604211285238976790131159395850372929588979240256179981650471331472174100243740559305291678696974795818721093103334034605489190046276396733292300850412944037899509060953176951731635505434130419971698900070937831611106854006064803474206096722709527431785688214443844017608859642913047290917095787608307215891969532398180344604612528250641465429433945315140179894945975757793519478233186495483067116099121976864617757661714288745953793411947627867804911758772547727848861367295080159960776735827002186150376958911502148699562261910423258786934439490557547955860751046847929173042093361493697045313127556305761551492425983712907150785674430738351429021522227331164017605311889893651797969663465733283209112749363782697277011768426854788216158021198507011659457611286079355431658560310275492739383563556757410755147803455058355750284309265103460733043254743193902746103199567317679042086970056310155261096639303388759844929267930160154345905931684124068659469444828943319050638871329355342811014289145953865146641286458229048012052374598561758800649951775013672621767387247635379348705012195766100352677758389481845146211259464550042339093798381355552034315142824977780346463609939436652836035131032357191544252529780978587396739885419546867201081918998156776640543504797517659420921814710535522002923526564617983867264084989001593959647506570676724478313352313648527416269486240342654172399810190847870673889629495329505657122966815311876437560310724409081424997641959890191586500548031555691443609567497694343532497093717210672978632569435192604660913350702418072971305556655031185892428975824495432974856508495507778183756648678172464218879355627784050721799542688535626759680747388264898687535478643977577679129823128647200041289406723403941584310656817587877034540981388806540403830828331420905576754267509075407892727195679477959705443732310452197508734500810741606061165712362364911440713966215933935284844386061846411959971646654220937008735629721168219655077423250960477795274253944983684281944138451658935550285432862889083005820551104281099290153380464340083543000595604489455104702182975168902068715654642399257125494050355955150860775567855270337904928428491609056433389753492618611510923040500592179014830943765725350936481857320001087381379717088038626146477808187002986498533186982972452379160564361800658438815770713164644347947431950754382957089194916897999195625541365429707613308383618183128248871217381828033210105011759174789692297733808343912752914072549380176092658068025345370388757689557760066888197206793120668077259582039297625215507707122007916041497700420903658087083056917337420769672189357551959512447512071305804269886603345547865648450471362980898188782816651241975367100359251078748754042895861134031901583985261861035826823306057904231570486175985495432808024463798777102699748036516378300641808691590788946733340522572755364032606175329350996110983431213901493177715084376452837421340274438691839828912883512017917655234740169867570244643256154941496911194022063566858363399884830204053152424144946235950186540299991603311176512126779468737381857761178215748139200780696974756365238342031206417280614443387207826920789393040119896177843390888772556839948246872310049935526003146575207959486603621656653767020681533173564228781736416971988813630158864811206291683786441021517049317586629451919096822369083308025882294493752223119162689203800440458949079882142836389404136643262931430619155725271670702150245155843893080770907178300132175280901957850169725133527157810690450499507383575018553040862402559549124393113216411842084046304701992665092801274391895294807982470693387194872193037961071160233803610159487074595564785870823728656829128684581859629345866638357725220323302184733915120802486575034119001460517104813888753264746401250048625597911971043303576905416114815156404473121220126485327336958625289108879789435088046535796184160563797368203282791282322084538677575316119260296811966838434113402668600390520969528722200109526854602566009186034134812862653219332955935814949438062955819217884509917833509270946918147696173198820328062252267140332804274182895029888152468074612222616527696231509546096626111589747036302290300994021488412376355245228133614852842485791959256828504236214837126762929818803785966381511856440759627069604523302900820355475074396102821034214106648343861527416627263581519574985586775928533555428046307322607167189100260312583672999029519195338383112293164149892716969306169466026470146490858019222366393799609884091356045401760052000520508110592820750114002303972327262528585153909330138690904254342298932647820141864980168753182287486276370020939447761898443704898449171138570049502270354704545042267984885328050702641052449919782714417029551593435187955945009028620471855455017253282996268148161934578778832483362213014218071691844422589748578056942836526170403875905270785874138404677641933036257051042897249994987400078810232083177835197615328892238460115345094893281849804961834325714763634162364378860415310614552258777764428411348016736538788567222027235261165963694280991027439815867265865778541597486299857831702743267549672414880166596300346645674011032946751256809931944041664669146229357680794919311767386475933082743431189834059068108475590290310571447034764073864069196631014047265292323086123876720270915499205462120333701453319012292291280244196275586815392516242642957725434583016196924448957167277016862617083414360344006104147760086548204835183743874836774617609959883271778845205445234543846305907582908564999623820306326264448672184843796181439746198956716357605251092576669351959819945226840507885598598087043402042967438280484555958372237351261577906264511031229752638007699698462414499363675763649146752438668365643081671575423179153926550334094936200671823602441721752755290423585112399036919436709994017306770020068280392046295648336648559203271542499338262494635491800845439859934773767777793148217717311982294601184224273883303815884291614307586673071699656049058420173915271541918486105342299470635551839310249472983326462909471439221462693294264563551862343388941248753032533704927146442251775433295951107939918363833570106153288166667236424462967215786159182898958700976541176706995641438206214563213086819962298771899707498425133087489861901589736087118632858253706198151666339407244758606181910883291214050717990439791628217466835332118749884890558579817635767936025461092830121232628135819245097766648247348847853908317562455137331356500623010387659571845040710267668244199860646267613021128371118981681380633975299305695378624290672446948028356031267141796385794238920593485953460266918561132958881891844948869106107248288634716734228346556316720887193683082244008801451966768688862182481430921065301035367696831666848468169281028732362094710963992936548969312825197454928100441770914886243435544220715105477934721159308020712545858600175963676903292785711352294151979437722593468368491026377925306542433872851776159198252187662397354491218015725149676109194088593981339887323410843130418497983203668464617364579636689217729604299877856518743689870947743383378664374967409425233648636143701675582052859703611274592936526726350084715158709298406552682816468118257876393162470699594669808553731424519180474166740545500526652611927735499406537491262329628785256035546517065133450710176232464772398205572029580218533314737687051144895470980317901915932122687633793844399795979463009665548959250338073985682383304541953625323822256794510601379872495464446218283425162164911088274169493609494712440807734142407139782306345293518524388135026987392049990402544870572508837822272663185434336609757555537825442596756772982929744053749243961085139874212034537635128194031533631011646106896966507670824595434162392659241556289595873982962934243474360913527083774088867389031642694195074362394253304936002957286409067389881993969235763468619792609466511542244560960282058282565496429764989277822667691092702863008597300980840026986634020626719717360769877629310923750195669930692357145396394951142021007202150152833106001934615900787884040545253292356922164847882798209205300209575157095629452656455660898558650897052091033334339391059561148699644877792404214878974181740862942704470321752638997774730015897676064428474056796776148145575469625522824053642293250320281439992811581847781717766396806492406461081415415908533673322494373922472370596665501811202658448555575644078264848195312021666790674796307939696820450152250730228069576162631423629877346202381722439353729439072358467083180765178745792913504831526172082696571043376598217605154227440282135279714677432576352863100335976146534607005229038686457025187638768742627365693118963141914049699131535194570089930104785223937435822507969574316184569107925153607642192319163008766842654222564625003416348410232143074255500950634948343723389191996315832735743927694080058695046897650147093876297037951864802587195112433419200525871733637699425265255567295852643319185583926343973252793627568298518312136878383362663138387265813831945449309880819226439978878228021041433637121651654386994690661809507775463647604012439156868952804747468130850281749521404170059595263356420726448190565263381332603936325143253303077975377161797324895193366931913587505383436209921232169931056085762164112706682747904402429507865845116972638783919628391503030825326451302891888904973045862727597856478982938895318401176268070236528350301915159075816020309559169886273494754351876939500015851760343591214615215145163522514360631997769890925116652342732040843325744510719510822677266448468191444337661531547011170464112760439206409739925704599924569351089483442177882228479432005376159143666601161260441638740263186552134110870747670889677461901425952299158626919111828299811198895159770472277447839388313547781389934845282465624917464395396166675961833321178381175457022005309740337130358929759767699305911889402853254006398978543064915194520509908280047770859693683387988666994764191113697166764202195196290613443626190654550027142081692709702746542579153712261594483232818397679381975824291722412061375984940054241461765753367638436726800431674343353551897448788708147322488828798029238816131756531390997649385196327229639187193532458988069407629183208032237761428802046568211947457309872410510845925073130835570971572149424506600263186693261762542368542970359386367055839008729648915170066274973462642465153601830539285536224607847520482582077724637060637289147768335304927108893840765266665472195672386729959160289352210992587701687263985726031932851175789977458634483931155247710916907530512672603101749852281463022689296595571894011421111719021445090521560210856767872017650442859443050450197913575038704682598296951054922261739038063771132274978719076879832970245731961012930110337540338258102911237749039603422271998683215720117205495984688402884255741607592148035536613841873035345445725723434787637793894354593309083586401469616516858345291405069324197703586791631720490432654380961875423412204558886530037164743016227953796193783238832740371280293678754332980629583346318502147107965813070677687730417558711712384035927469332107945590997322092094706292369389809242314410658963258825843587329073472368952891851174261100931960936646949380652720706507847623756403943633898195167229612591760973123866735046253016330627904332453932258636935351916310958528066533754233858646654273347156174418039225468781858001085043204472421292058188552713515319481045678213045976246747246494912965881347606241071666303287944156587089255801842919550196115345444792327990313894277616917314806747564918946874652816882885272056164222753075016607640677724747944158702299563691704534164823336080813675415138330409961069698287429271733965683898147615401782853874103541110326027486445349773667842618826662843913453128273548672396936942946435054102106553703310820499003659139865639229129853033712593970067718044190652195415141926121853509904372750254979210673759626746315167023178089153700299673439692234452941496732935375066056900699519939595700261191063888001732561150657115983022261312482365824989330892289612600244508818437195443788031713570997004801814327329478413386119455875891733411208259201906316982874855092606039907739588340469031791135713051416549638119940001968221147961693352559909795801316627890431510049240987109801600498413483497072685282159796826970295029768179778012672557228552067581138090951774878816449288010730889141744479241317009424505486383984757457356592221934092364257486123776041489614656719117003226524815073254103154542233243685700684474880477446801822379546917030452028296836177440341015415719174375096017548213920238550860501883832956365168936229328507036993913176687385153178366063142460519143372188641076793567203917508951729376999143944997073123647741039644775958987476355206378978573466911288067130996457005218823171949148144580976412619624572903475409987678946235327298543513912001519302122193480366301485216758725328463235111746428786622001077093497579034048107520982497860588557757366188145813384437141068927721061626058682789867621023187877029241826407092727224385670964312457412441898803166620076924698732078002523142272329154260214100260815555585724600548820859356686404542722600900018572678356609839211727389935774061305932739418132352378539729286500318590487004409063034635596372799662936474369824154701770706292676453550567655234797600487837575298571785274473797470592719864847059043303009018968684196423910196760795822407466054173488139945236573615958332200966494279127523884828695061129638051322461556345478764567378614772579631532051715493861037268898309952663283012209823902473063254607602136036184534257973544001198714723831643772341664919392453102902532654737499204555492673795175325661829075969997640074711809102448470255986331922994693397513907231169278701163099205158472163385053378013851651464739659678731890675255854502371664572221408381922954399058253556552622032494994713243417445767884917862738298690990894868357338301676646424540106398509688240553631308204514376331331921365796563193511372833753433105720182823607354808841093362516056233092115831446711752637892070906537782227765518471778785255176295962612479945388938395106811806786461600489792202735634740210031970425068582647955510410811421339987236771835512483968208105210740348436605430621853247684362814286262275523898886791434739767827859917210879805517138793812229182918945637284928818211268122095694402589262946992365940315725209341938656311623781356947639510083119359153119567287477538136605589482906808847180272527244815263586828498981074359832944424769803918851042504749438383615679337431905453941217448716098871463261843097412390003777836556555380422111621013084049955631236131526487140499270659602386094584667100852600096050492949982876224109750054455522335952137323377896694480874448333695318725213108085151464585368844210513889263369740647630227895820158194746891647950628823022706018443053224727759413069175680035102473439142980162171193793055664917970833846670627946326676415895032753693444452581537011394970618180891829499806628583897576529665163216383510336072582933983196271230166010049373428779374612073666596492964921368366250092290968732945373134587027148651863140273546425746932586790621434209642306614598768999680990507224850075372996391149585476071705907509947468522825728948028807058733091297353706310363539619534443684775807330065036403313327644353969384090105672140874156703643153435503133056951367285585490768766046183841386320583111414269007611188321198310805858860225945769720018935847402165815896141031699363560396424544711326840986505128518137778860480379181535286448006674277311503678677412015540396403362533239236437244264218761384662044925200851848799249587865042229591851713447838116746869361025842170110734960155788191237701485880877541966998987566492617879928875870133164443584531279260903582229103435859955071426018450732749114131535669023124550406584447514679972622385480377887775132816288335034271279016185993263200891760392647729273935622521920710311756129932236206896602202507149729491490019653399157727935835707222607669487550782729436247765963683226069396632553136127173104032557592789732915655293401276651405191740712514292344230232777459757546639283609958078090913711587199093898502562564347750220560183531887313434766407913636377644219182121438633378896316296985403704084740318610568352124457495773779332544182832664787177472358042443253286646913145741183270311137780036569355984023941081839184116778188668577525838609272182111791708028765371285036618660760043105638419782462494062553511572361262121239855737249172348418532885668207984739251446963011509425028892664948535220408147686151957492225634408894336403366291480407564571247399880791941849059690915310199611179810979839684782250355587267815618950382080927610434380627946315322804342938706345663912984665263108284019971700445159941147855038768478421149494091417800604958766363509974314571583189475640809176752579226932394847661547957138213463918585473442395897836197214800808203501353706874931395817111370105449356929381448442572832044194648895449820032488103049285748655756727699366462450552844124937697284074232073457312147126456295187081266736031398550693028810177651815573238542579301212308856183209689044966044982557030221841224807445901624458589717169694745073475562270442259172221014393122178659606603277915829959533895735982397611746495780618668024349469918695241657282406519263250939573032019258876955582126172445435432455157921810595846694299681560971422546107272995356703018553198046324063304216600825067011198671900369048629030282290355361791805264116911601753263578224950837993548425010756555550456965918602458788449050572352989405480185031666313269749207098744509980293833364443406932133867390401332461505118196158009846068456905767180072057194601610554729631865654536862967676077862488055301643938102442707865599652524795809851507570026341351234197662398260907451272211528026601132531932166965339224894512102183378484981485243951027744343460995381119467291079504192874355234886428734172431460555403876533193612743429022700540634046208236247603937412744144970281091863489779060476781327805223863194779453427376718072598625834675124011737521968975103778133343946837709923592221060130793181327190619965171396240151336630072452840223127345484515896262077661686974479099179884078385173563524768862863443857822069258734360613196388870858724819879770590261396852554962987314643183554934746216151729113357811277840116540848051176921059602388877450368488055308696477616306419451429619201822132432662695729381480211420189491491775025797909417395473571332906691205031640554235283104232722244541003851307896372285865988860825872728893448406125748318480990057105339338192039647532517403747386017980044809808935312314679302942509377854153405048405867179783471845411902303822571549738675573321306515747627516255752488158019545306285458205493058880826564697249074591639329299521496451251573676549848027672691250799645844489782536520732346573414332497805254812692887838830278481983063428735899126419650751815816352611849233298772395895210838205272029955316526017151681844544289727726295195567441353304687602779562011259151457012331902392134645814543086380523302403867320408012470819364085135064872302184223104086246006289039718055475363282025205001924537202300738224870139780751104396423925815405871510490219407269053482822810264387457338345724376989345149010164638750260163773077674383354980970444790066988883467351033826571545070351089204427937591758777819138930189284928140818359327350049156356961189179713957068340486805953316153195869016912466264548784444788802083428301627868451515848392161582456058357248541199356175532811209066446509568778497237962410832763946160658569819120641374986453115458529677912058154972374686013467019373784585512886694724550367059066412641114454131322845033465676814445942314889746013177424441350502626928675493027540297956149242442790708908348721262525801052774301716034147726712413423072450335920204484354184738614994283868521029467340771530636732801847498095177430258700892411176556468752613343391326677577094251870607887951788056504798617977073001202696044489540689905277944637004651924973739688969195975801353875891727487513331877669309905628289432842220958179473690373488782939070907583511279334502399050983660455208908060578287220961400913186188720445176403920452420849583443432325979357391580012413727935173546477195349408633003081821803692632125845620628814295232371002709936336659870440375710405206624533425971063852908370101969137603899406785273183037023253494974802542039260611560479877282225557303993928855567215499083967435409087145685603729533855081942035371551428120850440281666311793961571396699904375498506455665751725508795356247398866020618201288970414359687601268875594591942963445722698946971545531579069999090803212728024852446965813255753822191685341081465468640353808087291913898153324770522740804347025777316947666058314151770344997388990045617051660699715826799131750482504186903846054970800904636310232321834783699995562614138786047574865541060562377393150524851600521645436544779512166123878876520804657553073652217488748718270433605454971408532492778419834787450079287258421519745252520973952054069609182932933988786780253952807001399190186677926790012303579386728302941258879702033531135586005241617464977422467107617445167022734853738904591995670241331670728336887831885940347294455062913272999167529175941203868317818995488483671084866042201568745997353041345399162985315862468266852177907598330007344409600221710275904820957463511029933868612950132082407443940256456547184376477734273190017964323604222120807029213842861755495221129221615205552066548002378091657951830254256135350807723250793152873874391406500630184879614333180752995248893608151491047041848484419872818688514517098575744335509522836501645213480579394576818708926420972080970843881434110673599458658345982398709844561062432412614992537864103778879429686942007761017946627135681237138494659326853799379092280381388154193800802638802879008465606194391351330229699103844134722642951921920407132617062116892308589053955214867121103319344593640456633777282337760518812982529536782261680653122370701278251484435780410328899590796591145936084321858783773988221225920438886656150705386244496213768487800822677027325657085170680063307192685884301283854476199434815542717268527398855670983979403865935843160782563326726916152800333158282923904676522972552448769640836679338882312060555548091534953463260635487679068823426685637119277515986419131863696241842058452149525106952100141515872342652739075187100234697243244813005146222532940230460662543658677999277650285801429911606978142970669954886481719873828032594040300006127058917073107419311134217900762087946803575691682487890348282969766187801449071450073774006254085832578755322505954584938947684106678291588793125464714472016218855557924268893354619340313423331879180168157296041100429383253894855741076572617390137020822040902876124476387453926997919078076317932390485304340683053763994434680229244254448187003413739757707275087402956163454799713580451847311406523315865811066648784114285808218518078448895381123212120012526877260159625387672002647779891857266094828997469717470499453974131927374382660234106965240525250114013514457522799442995087484149622882820967810945126338710721479655269762395345764748077666388429885465166429680757734640941821023044074774319437982744213844868734752507139234552919239309762503966500063481119634240671372257525840500604758540835368730318130905428220508921195408227084409735618469815054119341231553689237339540677748982956331820054305895746962564732068971013807123702105262630059247996920101879343212745171056814319357263912682499978998845888832447673164334673359044934530288880007223658397506610034621969307401365393941231183015822548702168998040073926558532239430468032934537201725320261595594545196066035418106372332630165706981927421178997769489328908563770237800214112782202790401800287001091333923770193197951298845412316264339574068537508644162419313299190507785002373421391002914019072852772823054012049685204968329601968439980933156391966651011422450746635942077964038143501393207910255958033290445058596731007003670587551301685790329736910718121742172940672539539889203605828810539227044297004057192322916508028600584574583755935133650462194673204690918008222814231425769102581405035243684844095570359641256251801070689836944348277118886498451729627775908897535755541585210721766845046792631710203541191118961922413471841464705721947145043920545408017573820850010215174797320598584888409623721094446413171210808138801900026047501132816419079122807716422388339378520393328477424158783966089558156963289376196792913462192711890730085673175154518608055869922923683789018680799611038585047967719377649863101734479290530651249051539811984492753228930765774474267477446051300770962845444699718770424085582786606755671503223988130787120219799529758267466576573845401916893188058251228459177194231800031548376875355235999510475397081326464676265027896589922985706457605347694942786375724416055279248135719971765665034546552171375713137887746983664792300048399405457658190956509699658655182403587943556405942063934578764462658803063208222295027234541052796247603545497741501121080968855777573050985877333500477415579424513058789058461930373515679651835838367446428480808632783743090378922578353902843725973775605921486515068821317766687820381428259651963732898987498464458076366467766613138277621139527794391553859374016742844469339274659205681834396718755871162448373655263547319819583965924271718652751345795550029839549212760908121278428138749638927686598402350583050911613009533011564511510239688476553530398924614045992785601205198434501907880605539479101019608695157395189004142424711956311464668617172559028319141948946632900570801957475433584952077331353435307517865104301859596612102155217215623448417317060167328119207343575226179969314063988650844441309958362771939920426596790557028124026706163541555705205234637841935544151953298487430128400738594391001367823818435478147734060253119163505290369316181341841478315728449786593150935343976843516607466684355498961182261113171246089418672130592516401861136822952563702764680470083244268037233067308974719707719131423618321465898238135303459080421224768670849061049373388134797198810969261062477885948833659898588356394674766833537529978733380381302971655788246527167395343238575852453070805006053664403341795522144229295290761190765076967549693842229038880956708108801255503552279293814973067398715452079061943243417047195765735187296087577197564431126695622730731180688218271956734035130371015257859246626078705988747605145216456197380508007674188655544929859113232804834991268046453629932603820013444723474440300693562996373647184375961114615231775895717772783991230765836621597799650991171351396674084699542150369899107960260205316443031458726839365298561952254101185508978320314616496235914450325140613533920291360528333855150260959063978699580647701400869419690960649586469783355429777275721101366104267365367624579550014207801254436908689216799200194280857161228338390430813861651799380328870381993179009861703287529416474600359225976857553142317608122147415746383301052686897647672212789037643733212946380729945036192243284833092339549136072335458812206494068269764302687987331303563067003352088466393132793258555696179820384315881472247613204265351618765395934787589108570028800932725308366655106964250507953736964707385699133691078760318715299445861128771132018739018064827705820445699840581993431923825968316426039873125047760706558937782442266466953458708093960526644847185200101996090729214534839772628243036088589784452089546416394421565646511578398916651511599375211037938373847724737495716651207526041598994162502454697336798912397052251500722789821854292777648740141600349282568878817044306127012690005728566314461135554070299099588853754017883235732551543736250958366950606659045881491350095156272394466845092054529550716630057149719444471153631222401512161449146268107661608548450053019149800479255012564875409409189851361585603386667482306270392641319720558786008871186656872188776252702953616524605305845837368937264738366794764808404159090391077107420457066422427133804966011498866833995917476097548471484012207461848035658173865213592993066548738710030125730010107330868864715798231346532641582097066563236058775214468518959011541899069860886048594627682199674899268551160369533071070811498665110517378312730844524159030114483464372534387332893761508450797797459892470801012607472201115785381519167932163278360143954292933723162780534452913940193123342614147638603793670600891683063567671378053425042430427365438996322071917845973258007505669489434367178400956755764594741808205934426312191980667356524282597805776210959789162401975967852199110826354901250252577272087956845212235671507850059606444272809696998220166941823300375437922398072851562865688465097328996088288002412708636681531256039424532346945979446009509003847170942636817010146315605371677280661975351791729396650312379891474319022566468603186576490052641260767909119429583015573028348402696989473958369639828567057720068919969715308542851691281219540615012416482090403537798851702125551634695864003550291397971123949769565724330434044870999005665817889912949040785591590248775000854481096881300914832596397152179313072506888184110601954619497173086025258124429081004148958444802619688439825722682149358267818331364511888563231882709831886342085672918082300853590137146888334845806366848619616693157381978371397224620338689780325361658629460019547753094858203157647536938654229808159480320501774485289712632567803668553447633401695777168444036689984882807117333757640443129872088697785362825736067940357443210753557566199504042201239875697270067263175289429081412748206516306159241015266624523175893957449685106652314326578842823142080489701308001862966987053083526138396366104136885426626121934495529213418235816878789337027177490335777545883156652940471667163978276991028802441758374329438852877551951439856928107801050752015259768227665567509239655645523055398960737778711079120600960072744030696573499958418292333803111251525270684889392931604857185419692093149194934999055028878118281194431492695133797854025542777755670095206690631589518382730709334287637445560746396532592259106797970626846976886498405371593768268338081182184265909504406479679736329020362005275973775412199707322466114325463273255986210500178309269851197596654277047707975087825572042313059932745719753657394081772874280769234943569801041691543955932694266410998257217444823325372170944453463187479179575172802955350660726624232575780562987652575633982650255271402306366222391868180641435571685418922572547749233017218951635366175457679396332306661439704116333357831922510630393759156939565458691412911467706772127298258909126706819882972108180590212717781218714123199044296027459349717323213821370958892369322548190637637037262331192308345378611005044035034408164968425746456363013732831306595294136301038203913408668525473850133842225949999880497209635269422588489826235343097463517850625677920232407615884173533664871091623238675236426860497695602163394290663804908142808481456827396162345575606334547753384887127960525323969057375883511895129883090898687377707695367597489547102124952491352144923257089011165220285339174715202808212360463841169535760054401825678331380282782055449870082067469264877999554357318309365187723905052503182853609933760290300754120606903498019963952933740753562702356222412463334257601369942159290431956624741419933236844798377735445421069896043489324652290222648187481145195689956659336949149200365232627944523087373873204892545757035288575859525979917057572059758307639034108981565844652154171560305440480031779513941225977860780878726294167936845299184295277711664772020844775014967761823909366449194162943986568050717705564750993643015694891349820609138667339523668844457478943437370431964164570336562990614495683434618913180996069785445721019293907271737084721487412761476839355359965979857813332855717688323145378732589084892367411331863479506282499682142933375691623118739069275114353839084265792113552558841797242489393775560232867350614015400361933412087557167330231012983109363889942862004101486773822887048430689495157216733730025719332008675455809585535069405278510156520022863629519226611477326934496940780722860418436588120954094354846410419467188847009745869679705641225252524431269669736792752124772273827933046022818227085473261211230088781699678439368151931391996792085826646282690366505211116921056999054498198930485444373713627470571502816619808460350831192574046177994671330271778753891005683099239228443891224558122283604288224463330972883608567841314702311451818200787513627111947002687093394102454007958937621548804534981026453126497696760341457106523977255561178453804352303451138701457886276344930120442686636380172683129568468381301361008223304570792614806572670011667780256491380266687096052818978738590399529152693234002816124825327192151835269970585252207269770565386440231055308532452092612372622410098130072497976053161100250471534222837533662276758626625529560567127657289182582518423489044151313367021911372872827457262830204667572334076637373347031528850699903160448562534146107442087606037121250621304701892860951326650634436697253772134078120803181909179297032038925495899896417468273285775799807859523115064457696038120427921868297640273662046913560548606304743535195847377068073749673125058964226565049799952730972232629511351178153942021452657922411044991745769176010630827564470132813731868078696423773198040857118616555206081959724046753206052618249118809459782726807022144883983965785095484508792741219946625925416975677143483470279364429411309897741261729359558034985355072399299400481996139452502955422599389976242175746461875954285504775178772637071463300648120093977373755759015503976881850614813223134683001972141127877499944642535378779014621582432605350643094942300800328376764732493417145866034838739883856516426743066652775999061410612925991193390767599304534177636754559850922886893804424600911897844546587057771584062893471900312144042777470317206154467305389806255512435466775620893454128663301341889134847067640958525695965964866803645004233493311969883583904718944101163028356750313130644319583173085765951466183746312662947304939975290924571592520627050813498234020614561440432320955636942945488268520833742470266958118053797091731038252749181963034656021781241203831063409260045212932023307002428021621171120108992812009888490910659639440241466116329336335085345965035841618420773922763133356453746009597272635323004779452704085471272714521988696794167790496583184505134912306089286910440124604058074726283336574532157688789558113750954694699344419433699272310922225557319547428163176981058985588639683076404104121456978127226363884559564060642573021336157504330866692765274258790050173535273826547731595293752394756103393324201436293246297907024668142276341746101614280889202288029414935505376339308064328362887476028112809080747449979731436127534487311396199021410990957258169124480557133633410490519406435611994585675260024324650417303807408834841275465591707113340771290889414200292232834644565549303307661098072805003851861245683377342604093392308938869911457594657575147711150440974738077294235366384241006845144686299784590704492547456086762786889727543271157493173688596469232103972493408669602421662397207107581305501337892518682794926900002291319819310142549055652831894254902353847689090702313444031897173030121684894171287934100156846740689487754941507081404457911192845122777207608438406051119351261141390433450991053478067545758255524774328403429944038345260774463945791438224328096079978354890179147812477157267228690306568896470711775563982001955747405702100220233840871705060928019397651072562074135039509871861854459523239770096060113954787294973436746065517977210343402418908209851390105172362976101386269486281674569435444329254308808741943381994041697699791432936679112093648345388366701359178015782926832413200474268851176959682257499897975363852356635617082410209101902586725686436961717223074561245560649643932954460743479892374110811414149524827039730781016313002794514004972933611788663976572183100860618266380769762176847474890476758610027431967217748205371224242679943839362583273477382785468627010031921050032451330633110625436823091338522329839260331310494510017645853464682869664517234739783954213087154220264818297149830635103861348337660114815356882432350255447370110864083698794976838320428787169413966503653868074153179080202951099892184959137556007431843954957047564262226243587659969736881484156124333535556560764458931166751850989591905326380686582714231569305380736768603479943579081581796006862435275601551078031118072811539959917057906454728474976088573974871569387056034195313070211088326960950658270350870537327754274594903472959428186087056437011005742345314822787936417479266086605118736381238572491154830789770202478532672288793693379534811494951957576442532902927223527707171646707772735901329659667673381599500736308607417240849981364353382227477652862297247491810686664089992368244930827528804313294697474780664166284978406266368881838672302208810819964616777706167413653809319990869471486002789226310555751596379045986862693923256340764731020869477901304803641106692754916926319810033226489924619354354162742838566207362964819554270971621282323521550089019177634595144369993545849040587882022055268832238186438871906192939588307655986471782744629810824067223989446163832302097853672191259158495146816882471983581841847046573153135613186910295746104917133535462679474219206349070094079989086162025626339665134451209686156463182718486658962090886187355987874082192286817255512114431104412865730832689578869416583706208252022038208700457948190450922483039648847600592100079450384686551341751422517504281778259115769186168500416201910538527555917779216958017659175475271681598553051412493121624333874015676680169601221812022801619695591136045281284266273939357307191056616568348276399661528654092259255175325961038132931258923012266106891571344558358706998944517449212586449339382306629486529292227020193554967479952899781298129633171651381377466707783899535043632631487619026214778302847262404408429535497608635760054610541060788957533226594077413189332022635512938476276839531771929526435790964304114420095491921785804586152409676149419564139947632789069120001168205211922998146260187014422914759851441714224308595176177201348676961843654097600862714037199544810051739125286346467925621457172547473563553421798982911475260734108868074095040464778898811151359559020533109869361509826322181843500213168740362936955397379632705871477673508619484304888936149588981294456331718352700282403437850619526801749017523945051832315857130651330013372149880029314454391399436755107068357287952804066367494523762147239466680884684981067184698598533876884772358746005901680690508173057243717173745929758036501716681905019817400589620134257770574972251657579377217546913251845681028633760318247411795903713054080855984341727571553343982834667616677729745957003675558824247329241668705062862804038419124300677095571208735282553558662454688578768234129084818459878096281396790018410267934648092519505897905560379816549237547079280281001344601083545434960692822225776915676950927152725077264634477606422058856169164758437733901635464894377947235914394197886091657518334225192497335116786528961681587729740772674633161658099197644618872526826210874312057272105517177054766650950849914981378125211836419352813564525252567461506716360736415573382214897322867620118529073607964635910021616347599714452376936923353235995011149054886727959072919343018773167980234393033885665456726844249598025075956087957396952216654358366567105215325055322662539611846019961307230944831617191451804996024086800163716773090276124648082236942441506793797586389738163458691069483041315359578532006783425133702196432269831115334787744818834254818280104849846824087760888924351729396371701148489029638051735258390430188396740294387202721470381106922880683044079775964611665881101263535733412975461380764004436561250259385841582148127366295455985462720887819220673234448899426785392187106372019532724475144864576413017699546756542517001277629804575162651508052906663016056190247313816184074854377004320173758836061979085634347830830714570877087737297244406372405830408476183171892107492179001707854620492795397494325860753566142435409007710284096848493842507385731622140384764569329277443865908034915765623331515528446049248118345669557441867405176692843789845126571230587135425597136710338957549993531016410093866613199202919658244228216130424327701431266803255890828869752611008588317996033901617262316415052847198903444463793597095610933731026201147337913336107067653381305955049185209764255469239336966350303808456541554420566709308209371390368495858077229269312488970095959558284042375041896077599952458945892092820377416317521883089300837246005777032928484886420412637988990703819228093816585122180995634037693848559615151220249181787165086441954057831693596642663771493208210348025669523072346799260726965124377143837457445782169503866971726175458056560580258658514555373157568276799537560800908260405897973779045192118395278993044826854037723931143979907282028234699405898807124880878887713759035967880519396550125376294900603708724235860448914119171989270842451330143108857209094160452968811515102086595464570595459210440087878301557443101420501200151007061966948877904318875715179511487620155826294701561998756193982637340831851768773773658579632205184864623608835965641673356555186350708783034807788166399374688338057787384232947911025326979687153322406906524859402766854622953153466820004130525879469501558767754598334602690404090731632998040184256001433099421799782143913234259330139500857042132902686394982157778226761067378174893074226621485871591573653240155724720598657624013614449987639702110706289183626172242164502464639145501976630599474941419283162730323376688756501654740186505364930072484058292417786916654564778078000600320115140595809899200149736022516363299556788366142617441517341003284130481379233907386138636881960621861010493409175718506076540371666591578599699449296738663765616784267650783701087491574823376386467459635144294883827625481480713601876588921458926498062246241056640056723353859245078020021417999613750588492697629394533130749159637218461455647472268024829719684678637960064371957584177554553850850618254648460521623769438842137951742929170371739168509141783330020776703657573923149803405861638787438411779399790478322275216463353106834972620042939853489740913120761961376618993712258925087905154047118860204953346692738213034140529924217259693286581223110198026095966308473687539844927694777999204898853002768655106473471426401795617160425342205763466390871742003250026150180999699174908934957878254788010251827281008641370751888699452831676332455963446110257985684951703761999917415796565924119293923023300746298719766933472506963693200320012289135887821915407705378355163134643524022958203041287323435525545506475395310267327187465572640980322969323362633319252889321557139201405052028897973324492239445286692918484764525639948273515423532182890970682024957060991116105785064081142891984045703194524668501775053291666831307656344855436388235441286131148247661583411107254799735497864094616926379132875518531836427922494878540251933088337645450605652034841093119310108952435939047602988182138050213904306519274141541518559548083482567764187497794837152317445489529280966390086398811704015176718540092223513311973393780125993593101771651377345299361787240409784586438566147804192370455139072997850959643366639327306620895077621930983975654379964381952596162301286418848814816693472986214451002435368712548655391331402660261821855329765202834800023384569471793740497718591368762536359465709264667871636854322358927065661013896262648678934077664375269747973491909179627463133475965556004233884552768031933292116924687018261357914289014585414448427113528885923832802630620450569649998493339894378790572471618806101820631084898335178485824871641140658946565520700604827570530923771415406383575873426962677212436649253709230050796482030561391607058498850690003604414829004184352647780006768540376236742727659304963585589343689786272486583905057583506193340781182615572566381283086883536636800879743640128170373919128829073140688812867700791420180828399048636413715393569640141112165008895077519905187324392521524961136887662873576099530936209074985520215729476838730121806232562315647548476438984006970266880815601303471252751243471912552819950923479199935124072577495945944254198437675561664934616693732472110560088588650895374720801397336150878880176892715088035528499289190762929326565230389092746638604835923263019103116183708704366074608008772977460853055560740713267320697488915926476742394614638078002719514942136171684182814336618480179568154936769386483109744671565389986215343822036608963778413459321069563961057370338225434275464631744885485444440699682929099338181214019599776422716386499615689301594959118020657442842101749395437899244055589187277830569118390971386629373253065980535407077941366643105731510865849457655359945009647528266037376622386999386017678315593549655054211208488112891135714461246479501338022535436752333475274507590029423968388736218379168768421530662802007894358393844075124554332787130362442793149691159078135474191930577307458654147955482819143121586180311029499729183534452714079840694024341985047694518240122630236052209062514078727778082137709790305290860218075643058027473029330744000939635674474493048214762394830250203236032598169276207011342165958373280563050340477208699425624288617851147611731243988268753830615939611527447694805817878854075004782880939692551793922686334910319264077033898311945797669024418662978377816614277146580454475906168781256517909058358702123754987497249428157118534332560834855733313422177015306858680176484325570553739683107817031640656269865913489286777344864392282430306927043446517092379646143862196270342045731017152464360734305253364939047451128550420173534942343690554828854107970488849730543740469616827076768975226868446750747651298786843578740262521607188505738196322056358493432258909520058324594324361630027975882557356719481613066445416525271332877881565589798836751990977829221923361681005085377222641132228743978938244412299596209914173905986912924031045034097013364114469373764458169104666905998486058892930763138639500346145063964513760061522389410602890981809160918840879617487707497844892514951379832475056588346384360103790590004612269517058561410548486685917623448507830007536670403779450422630033087623913783624866450597697615276018057190233804557717688799749661544173644655916660129706923426467811610231362781759202400980693663558481170559469198274319247848520930944105207770060281291132677942512823418133226980055284647687441058822879598149469293297710474001239302303170215728509154435298589386753804720437022464324498337970289046735995872225932717730514008401054716948108644869977288067250533797951832100668020412538286665281592779290058909770328048768777191875026116752337315824055417363479760926574319489360765202511936546479507523113734096965479050998061709590972190681782343842151624950873895184280540407651599182170591907379981061876477091361021843292423168205037629969551309139915022253162845191641057867011879714627566081360229013339780379046257596156491924703865741378108771568460086998760859213540531282526727104968801562528901872830756857190871150253489223210832924043050538756458055709130038841093518836429559995821892116289816706088287861190937609889749366336019959873559134635470151123494758810053830206834139295569195186073259794446393787800879646946674885399008442762935053508436390715242980038202402184605224349646701419718015202097195576305225570421077987574225114271067781293374660793675750890163453239217327021712553925428850594027053608231449298719058409777389010120273087304836358500436505131995878408131284612679663825405751224839069253233633469350601353698392219881920245442686654237885927616392030023492821743646928211759425747860419328497549497149306729717241661282501259966844482979083217026683982780814058164891135324433392238514766064154327591182051147784527051649743154490193024520141504258405522182524842238919575004127945242447870025731895346469431381010569886305736450563782890552422076660891865232343551416408467584642373560339079037877356994683803284319913342115262864154543414651086599901003170297344927999744300061186983331930051745109972689713255333250948611777948150883944923547427691908775795799429511838949380078805446206085858850799483663510543282308593875729870548405692100544230001100423745179870420095463036338714227402642821210203471139547171487984859937998505614623767263798084727037566403182855118387648359594855599392734543764658809122878602202142190067005130453381210831924398127793999429660866462682381308504810499892674586799022951463461890874451036125553918471151077943666640360844382822489000899201379016606222408517270059103247695335465141731062341706780229621070875800259625613624499186361225512824918522772448094708562321441708157950939920087069009365391830807464460188297754253821614121430214805605102778624435338106018852986942791826193073839190947666906167486887486384606636996339118671566135443354627206737129043160496138508383818772274134619461192649252683226681609680798474874340893031111035085049444391901987493073013322107034509481268206680504435794911312043761832844739764719505465939933060752512981270578724369609219094806075077490212894388266944864919741044687826146764817822759111192245490478493396610777412722035585291041224200559620584775072159257173670780704589802655466002901368146320163718596726569373629447595195701922145627014224417727676516464183058079951695176788933556871190969964250975416520678417850133186240899655601861826491426804637703373301634737734118586889691324852740272573378729667122841862826362663466320273868551127740529184254177098774774111635676196370092492775561851674492269375023662274200302931655536305858270192164068471832791133958126455196734669208483094701879327929486830510996015662123097506935920925712914433845054895318933451970317055360836270308786341163822603515934723285137748866688559176763478423634263285625809896794163067635978033000657275411458131207273475948763068018731355066248814971602219901934987171121079403356634382833038811987303571392046810816175036653490485119729565159184350617865739159073399250906790796092969401585656965691302222125019217595870789351498025678316280432547772536892364940999350910588722417666273497606455259658444902644892277011038280118787421437125631278285693131144957821816977239731611687181178027503509985154812565836051981408124454661423010711656291836265487029045284147896126398616517060699336440914587220247947381479343464719044230533887775547744244803808932759036118619758552796140446243895172809804461139957550816001130106331176854575051691497996432337780131595255811918272972852509379206241526991608145862394483078264307293879287699614919667493871240027313834683846503312969764668257732933968755569181115784338458855201087284760265907398144408584821508816254323855747891896706134659169598657836583134942927503087427745300739039684235546330604416417906254233529296602180805950164994093269181927683471966153963583883337204807949370431206142140857730772459071299184389894682329172102387210150085904568400158816972847659078152507007985017756194634953003683581178309158533091191510548925467783095824715040430791225363597048512862432237213398628172363976471771521011259027834806124167364063724695029154878431287296422494594952215449150404124297108287126701603257732528781946980452542065427506035413198702204324339150239948712802097474084184718288799771215602392083559754359773038704512652315617398139802024664415256258556548079228105494800147157924965940570932219132923234000870534646365756158496062360654793398460576082071990303925071772428917031584545602190321429511393587812297495030502779003603707753172135296398669320891396636552336024628501506700802577590658617200683067576075805935297632212989620075302983301022261851921194066798294865303771441707122287257549406917705854775668712480580359492987752429606509711862092739955430659641129350358354074922267168114547288411450428809844580918893788311680312555345794022186710995430907785023904689108183274220128909600029353580147308372065498458124318337808930051839756229075934404515167311852474070558637341541065156919986286090802801581711200188494646796997775303065594713166340701959014780091804302344577633174158417296860942705691308301813833751572498564688258054437703745913937842191346925114126923374005919682494156985206776002009154089610968472236683617279197687849242735025814058724386876925788512500243428185300424200872543816665870323374473939325940533188526421555796366761846882723413808009983105126795782081194100942907836197789332978066171635200881858312495968954602736915875812526618951018946790755780561025158921940199510229694066150555385246778127010811785679733419926080667468726600359238041661698547224081443250379340505547447132591066417497384919299190504728736930504183715325504915518545493370355178884834993502470401946971233106126737006203308950325663650274627771320517073271708083992361279881026602945966031319918491253950856545591182092765134716417952362893191472675482826040870823961570005018776505393133296795909151045978393394230450384656415262864132080857483657895177539994143128747457371966804469769876139096041934487342383454313502671287919961401387693256609063839160594857997649357445507642210725464317688544109831697138845008708398184624292137099836467861744093390739981094331153911711543098117573533371077772385203116023859827409695169717375529211807355047542478132203712054813691403868872143905142293411852989429012623524316366393309794595985975296803560503439725907592386745067807127238888879065835422223783909882621066962645325154326789495890056942179789153826010635686869530964184331428458139876488244063802910746417777907377741524986296021245674882365222600495230278837364460088000194442267581269977326005390997792593314008297851694155513633014770796564553978763890718305791321747920814301929414747725999653258871518420332360624495136325923426186347199985132249944166793847162670891721344412956161362855966903549060438583298611004680710774148064256518419576473681740147146790536922179161696999858508965231026111300623153552200993658580691204947102778332526152371147574491992832313405138433401204494503353238485727654336840420734756078908402306125277520316272258052700639483564912991137744488394811559378454210875830530699688867513756806258907552318447660561967384656321024418293958726276020185471060024168908500473190511837005916425670672823892668055813405069311921321989101400239024472991918146055380249268631844596147169931709193244771502627313720444470021450084734594964094801791907283928401570431693288433702610849212910265509711809535359460194839462825081707852725696431252481784392887169192558248907286618727200953903143682402911567952961972339654955666004774574622063746106214891480256334302170974439432397826531794549986104349430927290298532960866027219603567065494681277057276136860880886292024756881920679791016334460457984853425705731414366545783729114553593560120241372038043947438872799089256323379082192594253104245276420971906805971550053005160620831648559192829099866713814641171212994408515952978734287438516024668297972807736234168324432446206111011310552401433526132326108582402933536425417000822758574723630266742309670657256519197150770542522705526455508764343235140842078677684250136409571309660878120386420518359893426256070966515622273465936561903511313796671359071049433961306005439710604866714291613357319259191690007541006471461382841462116363818229122178746804348761818716569461040174135833876359606723751428975641755055099719973187205125289856638734045459155188793293729651241895961700475734180542456063519407566220644843127761956904325251316024610459110528451675724133006224663180725757374634996204094042922116923599020624962700549725967629626322905691939945463691415428967037633273499246668440320612368178649911952684431983387863598461125821182318897256756054628754041587133586525793387703916815775974737353584333627086703270371030539840496540754525927987908832314662051964899451044619478441328936471813856924196440945881543586769326033528483436942494232696535736515375923275134919192448935076826197802306421510638173060346452002467932475501854737568421031781142866473185978433509695991882998848286651060392641214574731516979648314220112135781219669818742347724099087436630257051146741035981786098093354998035903271975791512564199322026516069709984917485620303239005012503801882840015619522387341357986467014522300531638838034470673256538329707579035040420555522893180756324964454779621078823336203461763591895784433143975660817154316417128224847780375965832463209308173719558000339949597344007359875219043885594647577916256360809975713346879666527708852310744970367399192874219908027839704333902579570585866739202114764224070445273896667201745066296687245290774048243815893109300198335506897364742342291641592605156249438635121195969620285108857871510018029965897892265263615768423259097595685919583760658634242643869672505109019733852576056682392076549675802977365589702673775323603766522048414879143478337409508263541949516419824832080888465551814109966995374070830145753782500580971907381207531353441422322460741590944452149127630430629293352364506697420756048154576494458113802677699251146593296912491449404262767111777396570568282315451068359026192130620552968984003794092393152568879358555585157804544568311156895513273611462776191291274350413275999941222952560266002346960277432783720336614087030299140320356211675724027349228761319871606392195443561058068705282472387814805571921866257369301745863136753886435853806225834502697472579239579394363886356818812018873975991591221201117921819431778463105596195495895268806077717010183363586125109988181519915639951236120203385118994559310466147273808315847241735283889511542694009737791499806658934691321734205759339354068642942076785975942102721011387747486494286885792824436539049197945603504745118129720686906168975676207599996236746404170923982790853234741622968591294545400253381072234735344140571739400480143692497706355296009304089432477371269184799091738671986891709431224501384370904277315167762609100625252091714699082456371417398211721474485113121488118620732893959255493013983531703238688638803206973101336314614223141157675265043281623349564648971299820040754759796717533566960755033549162141355040617783637065967174890717931464267739809281451107299115357693081531549861778975343342489022730579127948110839036713631484549368083865554618745664627515886856873263622078230417616149354388123925855989885205197347936361563269277740424732300804196208012653342923600867202151506424149479420757863570554359997001116515467424352852702991153092542139409950157600214354763815661405866898306711646541107517540398117488469405937257247135000128787758979395317298697901471792191484272013413443366037639940669708833684369020969398402534617804754360888149095057130654970236860357726133844672761102601238823534926009331950088116211665407209594654075635488972082479151382916085302620985001638022124582060293974115401933718884582654848792997708320068978046555812563936449628729328976565761814354584921028094340611392613961032061267584864318980502456849189654628410109861462836219434017229597535668567891668821543050978844559740035542782996983910575483091768740865818764867677046227943705188200455802956238354790234578963794253376225998886575074420073088058338194512028651922296350504505427910182720501952834413842482543818858599249401153147968681879468329777943936416269293869360384026016694055273644347201292723868021045379100615904696921361788654102090158071002982341252897212642078032808586074943380620139044954209458683318603321925932685134865726250799903525104153628609386024949583436608520431583854672684452087590059040224670178125267948598240656379926335048790937828946802330632823295986771188916153260016121976385318865884483536643767170207854017938013784793873608991816728693839131909554638632387958713350386116379921801439520014671189615166894636284928105639966475145279643153738503187646495640415818567132060394464708698786617829525974717010135823710084537016506807962547906184833231483661972430730701474185064518480928334859637298701856700852847370648260387131443605216387108047981769722877506269654350829474857413262610429738137836647348468330472625255231789411900059513838292670010692331989348672157760914546167059694234483555021512459768679395630637021090498321023599592281575044888422570773825495353031022655077042873634926604047127893135488353683968171975206409217592780848466536459427909887045402855815554860154090821882150750936145684662595766965113188769618642391312075867405411946649206315246382706180311343541345964281103145207933055474630740953042207104387506219117815438415503400523908816953626703691356754614002595764191841120184332378473572160166985535999963910322241400299582319687182174734866257326068519931883694719206435275041756849056379018256389499428387623761185428672764504656384870562008185013448239055578740993460629449770210396940889389051343737920284809374981298485337787326196076072847007659848410807570099163022631342871676105661445659864022751123686038256786396110990556174805574880009967666411601311724765881522206266191768333976778751738321016579354971340002849230095513544887566084513067975370360685240553250758674000337305025727559830585539261899229630619653085815066053619950484985157091985232843181176661889243284453473036803254758674668835354542192950200553827015230702545283609436181690722641018550275427449738220117084636823809212689931989650139868315446400591048203568819582377360788712888938799890594613594076965805781139901872015209933208746869639884075316977032311836394842418536871759200666495967798657195043994178440039844859099526640487431596018674659712270348167668440061107614800342314847439396025327207000255707122987358876368030444318373550600523507800269263364827659554092292509701798028929100658922664728059479117349904311911339297232225345301673418518631695516672406784288532360997870100440216350105223887630680277688084017660286211756257493247805481718921701508190848893299275866621244540217732683133294448201299200780216069104235251320676821311402640807984284551551396435929855581796848375864764264667489408007648655666149018128681651899692820115470519518429907900656865422766695632768310827399012768691958769735193109799118914641899386954201720767967027365369478657871945668752907721122969577911197914006400375268538634272505198130789464940852065093045222725520577724146470441950256163211059004585122044280404055797874383832541132328323836375349695585243162227481063089315367535126921083009090312889935295534992947571820952855275082546780412293085718268287246610642355053772400313990939331073323915030625514466321434375876807517462088718448822866253049930558091469395382516075306974988815805201620359952265033248572322253538398719200572148766674632505389684566262862163798342205064211229730276348008700238340475707327356604235912941194231462304328657628494543543013067067704924969491440591364774290775368153807893614925625665528399354251180455913370249969486072828231257732837652793169526945567043832042649295651891704973561025884973851555398405605765009158576925383904959365600034857597071604181924702728185953267055013591000516989251452440721230273044449597550175193012561762802523726517225929125643882909078066686556854964940617774113945371582929652066034558166393414621249633689417351468410415609018547019783828150393769524463709789344084301283269801732761712496591710503802909146654938421282727120979828177338923801122134239695580301032643380004294762712476329491502673290850722002099166224597285214070390544336000280737219480580636928472117118919410426568833602172481552042905021095137414398310914226155069970991894320127528932138698095235609291993216007389216759791176575271878046202638059517066621230872315201474124828489846127479690857282001799821238885702713374044539352386879565758591890493043448153124516015552141635679306286789927492355369940091580770795361553951710124419247949703771597100012938874503998710108872040015963321921115429634350790588241892169930661995959370937833755463045564367968980181424911934324238979543614019789243076327208055757025028132096209515059108017134568475875764046943715831333503576004763043193995571231872403801857898502064791330331777832901919402492200613603321677627311849458466157450675669006591702548726807874248561925481764740421035965592688686046783384207456665247872499169716784253155634648341014046193116468894019518886477128243985595817508085265718311568748705318354610635853135365511766731443310640003401926320233068694527351796224911354944402830148704815102205299516719729815557953740739825601450657512776541998872474718776763931557273013325896263702334713952968926206482859939639742144196123139317829507922069880589856444478073482522235626272672635234336399399545782659282785513739647532689435346654299068606471011154886310823646189811666200899679481388269934508961595137761380095514264181449013180385865365989364351285458304013121164261485276782495771328603222418799177826932545532095342061750015049789834849731854575573735465267696062102379760796545437967261301848746089068263041027053091097331546905371168500697747383541542332102801808673003794073918335298341922358507390168962348777608040845524573824778714648721261476018129725857604512414909701979091911859616990883518394033176747336680075929788354321529576159414044338347428363887404671533468536466128884299326779005701489207658013100579455151383500724123497827099791342730114320422362541017848802998233487399581135979142279501537913173801068934316948068346417480978081649221571825676602922147317682820292641004548980892046412522992113704837512225566445526880459947440674360247262925972364963652388778248874337699121475801411298280916139030934917627022971145125000099100582671619528561545684539785866639363549985046614305423019307235765700476720997385527203289042240326279672816454926340552456473674526141321369246671085379709853252854961369366815669901626788290158582730706910460669249487525555016718129443710064189862040156644349498727726795776359677455521838905540867296883568209719916739809153420495129891872398469314241219560261396049727350741879950320910552169816229115338336833666941974087507598484508246339622372735059443913511907744024086822486294974883865924466380779885203707939220611305482586988965015347130214529302129677438593868751812067777101680265965402185100976713028911648124834320330499997399666202606047744210375623660975817457135806273948373055260145119589830875746726569433224824411795372857268005538477265275665007839365849087855846306046788452948390428078455780117028451558707429027882375143270606690161263933332203334603223845821615009042224203108984743228141638704581848977669646701497972290621944487568636427461501999970376298820318332348361781195863109628280794724936233505827676548123562391691180086401728486164715298935612717512179038830035908862406735586683897203144344048413513567763913276861275537288479348038880197460087432825270688561603879018087450795703772332556092555176553932032551503053760973716466771339969876417794656890093043948748935032315929811551344401295758214740081426197183840134210682004352125638325890273299671076497274059669853684092028623607519447145636394522269878450623894182773723075810058251027533755519000492403161888968930414209696087339558929897882304895801481964905824367069418552461361481464119228854381392587710697590841131273433192967059891251286165591659961335506462523983453020889148858292958657185768132367488364773734525727884457787513277428838376882124969469904817783187182789710083864751950565604753427970501060512603650402259445193198915561523295867607907904492111038834263647875777885362777668626619614705925019410740110176066807226107013115931591863667603454706016652544791841496595362091502346857706445099029714921733891859500089303818446423514179120770314993342039622223009801979937240444194937967551631605445439365811184701063028706450323869956189526775153068172719556331351497557724770919261689019612278702098135329096273381359929102478489266926888166454261300445928284307929842864829490148995565211701285685431422336923025117239141829198405012008951935587766609825715747800527355324298079480010459441217861432491671447342367633973933616660939772117234886640196235088542010475960066535927634870460823581225211380198884364084322359564218220315430895395421086533963798514131190977596431879576434801995636284377580374018920155246809346953365597836771838489498160451542860742093340530134287374113413203593085643327152139176277963111192174859363410627287111921108106488436934100363849001518404954392492501532642591590110686889689490765040964053808562216421172790586042669594942168513987298013633742620726756849520842643406824197914239767851922689158074460192327778437029869744762633928056087740273241488961565696010341807486136925662019550920509589510906342287817347220308972878334720575427227872864713257220318530019815139611294161165449868820258213499778792410115352927615717176055244204378232315352132065507050213728901947810885441856905212448559989217363755507549504110682345508820905796575815739442122497990270407938474706906834466700996251132491713805654584564461457120549736639817565683867721423209017684836947127011331664563715737476777896809944846653070086677826318869377467201197806169772548097009040216778730240013964173411426262278981582435017870089213176727751336248476916127156534030554809869120913032764168349629573635786909125594213586250995395086920861845134094706841615752192414538105876616329463257011290082754511262633784481315826670850358662022866779463059727039496133396843479235414027343687251568952830624180085593251007867942214488797117678000905268510744746259136681286219112792371994191494961424777052621738368312285418323772135330580368787638605453058568344338304768821758718287685828278404372264266425850013331393063255256657349296764738184000324857611168558093284130576513704964239666944827900521028556199296389469116236020466584435678512003089171569822479287966797360422796364433206606685941340603177100529533649006345938358598014831260659256906739529191653552598133934685390340989346638769498460321523557863676488707238884690147411586087705096106590721091071998367619791670247490344146288672055285606408900345227383535713671327331841212848581905787422635314205617737171304025686896725992496116888619645061404734508889278258802928172896000694199201738889837694961195817633985448654492481157497104221628178954686386180048759819500009940375369535050254618012904125103762531446221571982943414007133124466937790914211225635198915022615349155337504754549934206244075729250150871167922184887406377298634824891550739854066818519125110419432847490859022081325475354934337024821372262091386556499343759284744099938872498184521925551073902998335449409372110322719821911929495714676550880200664314834718031272104963722730760683542377523545536117730090398341698345891862982097667311036381900176594311480659618534094725427776828179972501463178863113366429896808429498157669428168359211658231034445254580938687846711340528843122398846584795915443969760108718929317900958548266923976359101895432973570441546454935107962603626971086050794505681990672541704322965814151784798904194036424196198751498630473906743429318633120356371482959529995597472673042917755606876493417806011493113679873073200056679218061715038402013349157376915845405192938249185107522430909851404456551513757144515820975398269201012490448469026439523443842719819203278876125793304198969793360757208833369443577859550649360597789657457715946830285888479261349639690930356323440983585384930433927581338849114653495596559103520468389763469385178548301051226752897200517465332592386693925436149406540853774897337217371329683333502354098599675254352024815797650708298027026514306394810076758773543052564453464054251626891832073715541173703396877370880835558862699491621218078921366441506292178819801996631252834830951774579632426018668112057581862090043810678019172901787117536973382448815231271003319813722869266714101870604646803814927667589130982919814326966609821701444039461445407344183083493228294555984078723581254584130789146547667432767628316399988954350585613370595694868735793408880592781505860759217916156428496213779816407454860537440648963703224032245419476135008040894240566639408986580375334557960521174690784790781172006849140481660886410225155899793845483272941584654029840920304882648592309028920066676640086326117459392898417658551002630652928461440916081836773098095050523937416715901780874755373540010581427158065827444115900472899430016714031335567047086640638272583421464174844294246868282214643567996139442846236211149060693712601720724659482027465159047242777475315349811308053359326272835418651003209789534407587196532398909985131272241721574116975054263142742770722616928825464396584632177545998064384899832839368472281521733432482916811933974893804936966963509200152044821183449951173836671065999741964768188717290444735148044666824640051284564853105616271259018840513575286351479620862634194943784826095524267358693002458336713107476048636911778591649265796483242408723156056772214367647849954771317256033590104247820962079031523116470069354769652608462310973586289241857917598659789028373054255126224738642537317278040328715596056688019456643365462845871187328995218902923319722946747256916681701345577549297374318659025004041317367147082073477804529504540566996910842633843505021238362291944517588465319402717246671661276173570790348562791571590351309687605783975035612214327349785132484897974895676023284933395923722002953535228320621821801212591009702825215719455984575544578789477315048046172573945973230198249535015345061827832892524443772171496588936892188288553125569874986701534637518539666373576223495453780235247075038340179050402552346478883732523369121378523096023715170138981234388783911904964639121823368535821540060701623692721441886850993851897222151871960041368739132512406147087345559225584921332049459478231611672412166388097965510557535218478198838547269360366607404151249925403630945524967051240197008087713167506942380617803264263142540000903123062413805147795119080330915303675113291857201116966896993282552296581325834949007275891447792313164085302847328788030806520350528244593668684237085380827074348323120778113111449269318508146994755293535888753199381523426440653791183108369123347054686730514042878849804719475811193490827434507054741394686318087707811103478062481860037000591890309766592361384011272235198033316354071330048779494597573596391286531689409222498066992029083266497008774964962218181811640749640629290076888886804424814734031987082683290939262136426923026447545961664507351793853561712372794544186630398658759965683932326158319238377979906613535271550473806718049123586868598378656907825253935013238468842325020301173520625309514506674856580859982485148085739083520115507904469079025165636225206709146598745474183269216990541895510490267975377051701488796157487898093100338621049430244564591492588936769922651617987572258575782551427396561904212561027407109652737339322794221212443130547132989994520735908785360578785762381555038542619383405528437916244653079567282905184811364205678749894824160396759301371239007533391346301425105625261641812109089031205266325071196473888123443258807133640386068493476079793640393397804102417790473625665926888805538594101755986226773626708164816996569305816118200878721706696858612475896143462444666148836363429908204331070261749235040294100130218450116205898184549024027778553579222507968721989487567625022384910262520742723147063708961719789908825770377822782471742665805639118588241182099917289752713788946800364619479442787432916847542721870623417313326092112914700840487090414860834215572765733839632862490660166558149109041944288244611768810571340241513078763208820798110433615643623988887146395059704171979210557866829065762403459848431862371459591791783269266213867289683687935023960083845800588717057875768853829013693557723994967244579618198637110358589498858627517760513353865194310118279164914672837379779271089993441176205530711660448885749670260402213367937762792398950841807017504805720473444631611892832175540053267949482255369118355324245057300770852628690350385483639028085681594874752071346683523496587488400140655839627223512292439504371328162853284266925597573539185429482681036358700205935523615300725850648506955933263211669455275388237794783191843869851663374223621836075833781866460859166031086732331503374430390968558841104933037939429599725611099028465994643219790532762486853029176328873044916017039771725512556061201544879307680626652287146085387936043911134816210286493334838992362740985031889390746093301524524936974697356442043447530099533038904337018521238767450744917125124924591315143433244929198253290003586239864072852708102348530464253220329067818987951733161869347462209290898721843461046177439183117906417794861698616430320381387170335556080224744341019364265721326998650057858039555005519451193732521988775355571526739549934437971939479038324506686886283598687106451016236643040456831440656961743568618187224403606395214424989575344872163560233300988978240724055860447602571681828824832662149464695717378351247972800112431934558484061965600857367436674991149785872740408242002865369143200097512800325289145512167678255562015926760686052974632044751169271072285294098173991310667819916466251772231695543721383272964724208240141325647360988306152798242940166289438080695901731296828797196547864489154353069225254239042582884159720455200083034798018059098113221190095070379570962739927229218074468313278914205200893836336727942416291713947967033655062027102320586602632237703991212462480956478191866026641270238586163630482788846050677548629358822972204496957873971640440146221233369731341152808405002645242120566912201577234671064686773049068472854160274904444279400755118506662316698671072957376792979646408766937858473994864410659610887128267520278831908234839383189292654007594562804329630363021980427312626728110335784759954508388386998714938440563108355080332579958492196105582396757569539755289752638871300291681233017620235975666085340807053996836810909063002366019710327069621609774746539730640275555594122556428550524902205828839940442951660922330776218748726069055486137038545464933547012907098775485982558336890411877250832109521551860068102195346672057234216487745483047991077767963906055478473099236866414218902335630654016952318495729260531208891995241560423605065112970954355027645695939565814722641545721632529926282474890558665112786406674905659680017710565963193836584885006829206985327095036625462183926904723942306656362701571913743090224766441498522315998657052417514982151982466845920291742514975507099726954679052426537836059535622522270914476625036078479335549790807431572026752111221527818572171311844961108117338309740030634735779529914472115205566488256817212509592242742064803851994590735939678085421772405013186539077876607558717441355294628857957870805853366854759406528210876588615843296633493770592526596971549979539899447331436613524533684424858013032847716562513820727701011874578938479709162170138216717090562275460566568480108828773575890575422375323212406659637499476964962431738660102502825063195014893116785425627579404399915156967278442447734155055880538910501644981330871894422784948960997053425238672562859693527206540062586701503164065274708761884888403070199983104763561636170712542993883732379468064340764008249311906779138906603051306582700045870753768292942529447611922671071791603014629411809488621778863528103795692392562586430474287195251271261664183375720570937867372471097501266650606033181430835524286602125507118538282144655068225820828763315399269028854826813292444387659356241266230219044382528027414713364854356999055818488931004094347248354257435749720248812632106083606472939977242384251786907690596151431419986732384262835435413076427585585386620526625707702814771728746667993142707059895603329692421497749418930184111696411698904122372863880709274392234201948638907292018553110042245566238183921130254555783609125701998304009108806851662246755355685833453490181476957774790982836819457218795694499963726076808203019154667430037962565331838193650622048515641577206847517407051367970897623645935317647049009563541579796206771115658685887086787870743805530537693491356377640519178308445223364208121831283496714894390159472965367632565758968662519986447698809359735070570370399069606867220347173002983503931886610075777881642653274671581524419987898797985516990705768104339990453558520447063028614215540855745411760601749385216687321375522034412362250656061454694498361527295159289606028723749574647726594646157459461975929620683291479672720211440029251481137027366637033184556033305126125026189812298132040657229626753632232283796366325788038198862133500369684128986579387448410570767069179884754625971158668565936768678167993570244116740657521135372699549515746857602648395616986842666267933392390405017826137657029914110966937691682123396767167243965830269755630014329241153280145307262456131058647980629745002894483196432228991221775334778579869146715689209246996194112863746816703261851323660948946392723723259586968631966629367392715995263983496596483710317553657138658494330658588415786364206169238021775486053202101696098899056681686765527166677639669028977125582796688783363820636330491925671796067119996058979526883067530105405838957156819613001879293836587884454135753663759336024585027899209218371015290682333091212405071157132780444140871956906672992536858350268156577537181463066588147978637201117042197422087842337404741362546264590775207546855247412738631220140355334135207106355459922907594782873693888601489885160858584359354127001519559351627917229437623936539103491819133400982872496292483889666357494477790307021688406348839961800449011810036599377664403878984531767027042652963412002503715828921315581194889394451649975388305605482100444968647227755682320521490972054361979451656876315359559707218161720073302455388307620457497021772702936291521894450694408475864802996281949624815698492034189232102883816811757323590967369225701862408493852647926554124632670375510446255830320535689062384245256380169707141841683116317285037554240731436005405126044124043371388522617429182976531034605482560287195822792385586749719267620979234444387152830996160814311906587171436887715783020365442896173261644021482069393218927619068460320408110805033726009057298075296716890180123688007961697552959501319615402075964085900298208194323301191624337863166643123353743887954498684373970659748550620328988154788975480562840871144896506153434604826569271608041124588806736282480109410395192381745958052595656753899212942831489388087770808786828623567520887644505911586942610734360045365104380122179959312326915234541622404173798121688130054028367850137025824398195372516412106365606941548154399206008344917711937237032137667755237841753490216680221112593137674546700013671749907035621882995906950858205997241412313445763351746750164087230460413664456335671774701515644664252558084972492465306819746480517544447107642744572932187910181905601834254220914811897308192526850609528231205233651398552569677037135819522173903222291508135037286520057978344525540149359464814083882598283537004708681684203230070821215477706872662051682668093656224531179993714707021597146364730583924348297836432620124449875682904621665093988684722299995579643291889555918583503662022655138460273231345519674914915152722637982017471684605599177001897326148959942015300035933625829904930046125968707553371505860382900496539390476944202455926715685568754158147713348179751182631966682283833517623193192691487525938739467941297164034373613826758214645578391901262399455283591517343602571511239709929335927001108134226846482146458641480641043687613430616625367741172036892891691124787489136213320465930619179773763140803279161191302828998212237414532155345256821838413104925162297836190876845114293859972282801516379796955428455407713529836744365574528050543012048413087238025415119188280923969727316697050620350404744808882859035380135631042336019604807765679923759256871083561471879147294724554079339384339441329230626782422594535719576469446201777128758975139513026759008981211051394732221581139905912073412139988716029799841946510211551594342724992577850682401996856750545272857581146651410447002422619716553039860431185823534059498837892080394686424486963809601632595473145728350427721340832212497604356026738471055600604004600394955665392635663569828681510018428782196738498108270181821344111850479297034036609429985944360757748828672231251876229722263887603805535649281007020965907126080137801780562965111395186537099313074665788604378061762664213333950141940273777673980400338828274649871191202717103477833710893270359971966475766447600769487756406499206986107713490204555569420865120431595903696789085691582769631737615950030617157090447603650129662923488924481172498131015525611951201855711410151128165318888444481425990762920788688251317381910081935047076095634721700340035951572752202998390882232287552976941915901915991732721564182533442676408992748982682474214331536168887918064497510452051186391425913622472818516127870067357010241522947701729353482332654063135630058607858400297785915753420154039999665294631442846069523784373338837514056079212884476805571457579993902769366383007070112709954315854775805884489018458251486693701969124563836589465992256192038327213602918489939900754513297174788714136459773978624875435167579418606108660941521974945699165934997701029394741581560978080244130261010841786467094968105350983487901488767513854674719111178287204994573832507386115148453016156570648209658883180583995015098904581453767923026368943498122888454405982664449881716121966627231782852873207825941550661101749469232284124470654789512561988770906123264285045440910235054509985515323159219326183772150369229106102476870173901825605671475874148577384532513917829232683285084426539748766569086663930532927571808170260794792451507913379467906745412314483681064040710111239753991280408087794833957770792623077550489776095605831472723498923378122125228182200397275480001209547132156149072394206652906024636430207639675370930642893960981593346267254697079552395244280942033434487316853010343286138194859708739050250287181235218290601520081816673493010628957828286836683502698796397703802154095919682454276544003181731713054919779556247660946114408805491850797105083133340894332013432385031303707952892248718900866679830529945092558171911629665237179250330198721281929064742826572338113467240767290714352879543327326890803865202713865839677437751778930298951961181203684481268194339813388541431343813494008572957098411510392328724051037060059885234374701354101989222846941412989214347153362800621980922195481305160026182474980933051763887175611415747764193343900352635347717305347174559820436548349725921895368419067467250929716452161781310593770787630040617426375550376125779320573067745536306487047181766294506033860369347811230945431469117149276151670275862619209398094901613841129292083728416538410641451541691801197479543269553653266366582447240990388120048072643415965095359290895692360445108880076350040363020980486117360756229435921731809326151047477555580810587423680890283026109707393133375324678711336865229135766610021355923650803499382217516412129143503782966320213692939464144251698931706071825821696076520025987787197918998622311344425166203241559728764253400609155192627864870135341240619558246853270127362701938294979701282652682512138296733321886243203031185783138300263129986938934698719108966661668020243496841686691672468377435076356855392031088267640189074415899317584425762771344051670582414379237345097740779155005161504027597522334457215080301983053416198898567148983679343014302683463938789018756332309928577914298711625337982744233378981894728865037741035386835207248431790837027534681850274623779257354382818686985900515544309686936418979527271924407327366784623083665560872486271496398556371296604371040861497853711707252771163218014447011167079663655988398193319701762431682269200752208137556558375381325974694952862533907273002482289293356460128032095137739502123283905112793417219652527054185357119887804969727619848972014017829987428450383221137637269192140885936141921063460823944648554893276166467565787118569486929130262530684905781535577531207835606905312015937399585488594173127472325190930644276354068431127055449302823452805707684552497038684474319991333693725909912529396549049594176092317974733854330426804949315765091571919898466705240705494264844693269451744684624252926225777922231015115940817263787276170431935545072041743557533890922737519408666118474810685420476094874312855921809116350143210100861895062659022051537972214684244989223332944221634878914572254046647230525277660807716091578581027448344678550024572856989687756200060433461902455016787614394784978667600282783169158321731858581726248020008887181131513681998714180999053931649062587302844684712028744112941013376772629521743407264142741285899154629522471263037114778778367536051984436958793940610531223567613989881001220566982865839994692644911718083701556289935189016496183630329204945284392607002009774782463284577305470595352780061470153586538528619195869279907926544065538172924594713561518154982960917386924394555858654874104404261075979388278806070141136092543323432801192525970293978231073494236932263069834316053704832915095405030938590058830095645430046389586873162613747116933546719635123767851055798125522352092618031538055602534544908715660245659355646564522791761753867151470196920376846485337220068738446129607320965969829275226579089692919944914119075985665558419080364453321615370346664983241054770538489559087780258492387161657635057190627942557793756156080878827514425810837875664143937044846356517578370037793240246940276748328081010923858014096686971678067089523439936784056109363941832756282822545885872248842723517410999060212648665399755186409065324921932323961934445174211625138947201384125036140933629404610981737208220253169053706230680786083442759890572445067850922510411821342663522192140177990437639504082676170065789241265741450889191037384192519184074096489423496743204778590728799008260589697407681521286864297264535017682232178880576282556020466732724132929092508525748420730710761580979278563321084501897803841199042762521632413797444372678890934704897132559196466266375410209139453887924105213895554098353840456396935745126874126341317167984166810173122063289497415938309154627275769622955163110356629206097250768378671845027397592153592594069231302467578639948199814644543776266934587504908598661245242724029088721640461309935056032019669858579576465126739813997394670809868471148415784445504698547637051755269631795517226625529651638465565863821394247214962196507714636278273845255975566717142142773279470225182903463842795726958404410845829473408641467077975982991442178268877269750582401514675934336153104976327249845826865202965545460179152196910901340229996537583169400515495688324320842107103540627207611853676894872603613614678342059471297955721405800471008035629057387757469979138412703626411625142957524927776145974849821240106440055086523114528954505943330723268214104960159966474225242745881521050508121152593285851924091156137134137572373465541711049725350832762976812041524123646597472561858655933538919032388815015725387012447450635467800531199645121506891241234396655222480588174748747623399325762042179431761826531892907616659764846244661640100458816532845457989547622299141428420574098430207061709709712677377130940949416980908983821322095937146701622617406921721473859883285762663169471665310695701543287783337312460186522027265627118092399278043673972626017368130868327016404416915927561887550232936405347512367262687404109982773767391813115275029736477621826793795177158023773235787676358582622364571248038189623066609869075983891560535342195264148893111088355159006772635923245745008373787634570680924630220731226907022653258048862608908340844863260796368948962046435460565209018914898535552570994482600449028354012542886140150008671778070951729627112320686135524926994449115414439979808599051579524073284085050981571560761453766783452846244530465229828549148724445400848746296696390611560039499685537906925383966628303073548860295594016087381317858448923659820123002842775997453021864291637308430974685423625228287077547469881219580622965668462622270415381601036481137039648908329041415004184557422367164299001364930719019083359602679883424598132844727801106750558454991947966501591548101605861354270460740118088725932670726557674567676003486614548426852011796623132436296079171413042869365596363194650499676009971826261361308865405353794759641751406026437982778641276608174732812761219647601075012759736937524175703805228563574733676395564977226182623019490908756736076899765776585663157896835665310374825212515466299333782181129376566458746422514308289272453055183645066272711127930638001347927038481671161655382714913080006094800603810435764644730153826560527277180609634394128721271613141204059906006008630460451759132586037588094038166266010580265904428979142101856544593318212614427526620217622567961852593068782181792297985307843033929380688811598183892075748031731183529664804921743653691863494128999221932370034049958037776979005659184068419256740843664310790251530221876237885961786495848747883488854529274815162636708706412153531695159916884792052229515910666535394365354698152250556275352920779398264865661281929476958663944782787802063250179611907494828895873747124762047748247412124325625385032107266643375161239219880497927846483378730871966522446139120815972882843223379266176267593262738784739785461952208603837936546139264055376888282467285205902778222089154916185083566212858778502527546862698537832646122356193175813315825278863098730994940093269838960561186833083524352460089320246904089709170912202445471743895343381272893713582869400290831691552370562143862137212746506952808103826957865371318304156762241605445560774129959745996432100530907645988858430655952373065277670564860045437749056884399943055349357082965895745042890234663408736481475898045315704875980308409438495797095023925364287157522270618136358461896602800859550777094334601541497172054755807218275227975735268225563131629156241256610646490140788410301802218479766475780178103625939510517534538298735669729600379519457574348440565316212420499908239765483571210442256659310110368043613669473818624517822862859681609953483705290276653210373462996547319434967303554503476124224049437764104510998665602669601558570063124356252748212946894267630485742560541932117064471833768052861598029914227245777695152279943123604758470485152656501878464218721441096070776370780522550004529420135621469618478810411014128353254824407338173662672682645524771890743519969998529761022440898730827724795664985557181782105348527760654152471958319065862029097779904925610462724450711027344340376355417161373852417726250998934039940589912593448907140211457940841554088163192184761592685131237670178004978658474163693252216987165939947211579853965319465426617192024042239848559570378858686848544832842264016672156531300662524147252803001087497092091663553641556633221346490123591125252720522434379424928386010861171959212115506228257887138611058715329596163513415505564071901501065833265573120076265593459003772332935141699539925353751872306315439485439757151853122562966152083627503725560107709759815511978773334362486983357528065497411783126601272515129817845355048073918770974587271894798124441803794477814699810115388485180911323325293191323114034109100680524272897442527054272356216317384516369357917836253213961503988674691659833052824921359374164815690538342978883185776686665677356967944744322205351242774199235618225113811727149350065132857412573937281902965911364102296121446500646111367799490618719343995246446354167893856854553306300391679202383770467711289139261625540435348071438427838180091542105098270515447162447117812179723034884699414453410160861908736832972040467733851744412628031862902399780662145541413462388843342217076684405054173301856391842267232176418113813633224873885475997254949541989769334170919002664695873729473772438604084705291988046885434927458185372188345997038287450311406064922267954554051408468562399342289196462626868254193966920848861116960801878356328165588779089198201111467075395794246662347099982353509310833304586387806334623133518379670908741148634475482880226213821776131103053196027846850541088521709196075783915369325429054306616860952993867250266187723544961608180199650334257205710793598985807364018219440396247461752901016873608220425000316455411806971817403729924055234625786538891955635554983436014902254085378004317561665078664058460171905038951485917168750655592556276537929817538050078665380050306549746824967215007558283970529903492375755556637216051810558264531033557073339224437224114496797586408957930928221940780164967183723926757107149009817205676176673906907116400126874572740529816953024099537327118947690027726318316930163825760265527963203246824875840327660215894717104886052724094310886897843182595576831030861102004198075810864868027090973543564022476689111754494751228492779475410810427651730602289136771930619053312168325857008617120700113251252191092300178363990197673381277737120691482533438471837801387710807320419361867869822576744805638415946354455919832934837773160497923770297489942553663738420923619917860052783115427434741532742882730399469955125694692361452539630240753691059346510140460413937988640924699330930853462217318991586394651091530939520395261145881990222842454245922721183235505960017052601978192405062859588366358652198260144486388091903712629804595130575191402107800419369709113397271128754540483729590755066042736783400530971691247778320606506985843529539022500697720927148418816123286903451211641090235539199730725697931677375854444789652502074694651017681601834360628942788045990671165610554510372097338847208561636208737007361006412660576144092697671796383048293290421706484099136973307637091142211279772572529640126434438485678158749487222719614075043224076952403696978482223468011882056839091938604711661671324807504966123386923741999288034385749008260306581236888279679290032070793652831140535548527151913613691669892424452817936397853262414880362963196966488873415707130538565591684990828912608923206662390466732044946830494335822958873305383706432140575336565996910583862249306552109063289069480095140294957510525145543449121198622880887072780186543161752392097550081189940968740588916725911662721507986747432336487763181851545112978007356873907057967097053547193493290050962582568120307914419730217541241494449616341769611836838474468069289228349382199954617162701209849996006886839804147908916416137791705996956057777592281136857803134189468340593086282328672556472830043203672486949577997580529316724591454273791415981924213628138388092438636178384809733955971466334817522987808740531699425984422017740618948445548879242798970339540395861149260808061157230872040588212827438753860160829248707349703596863578080945277727949063407023475376373824965190912542242625465966614218276203309629915807463911651986451278878862030192317195655102382874099707049637408931814893303040327975080965812934365121035793834718815076620182253180419047395083957635018037605207984907744209680444452044775368436891836184498259891686359918878561877703699807206848826443500398183301831008798276446803916143603790034604997229438381194478062570406466292076311496089872123852683071922479044182762922436215669710844081775750325255461463294936811441306531448489135058135393898972977629684758211413014644706279826946915153895082821327308687952652553315012928407741342915592254017796039278736005884893561649112931112081149108973329813197740185359080919746156247362968077688654336697650712916104397465040584356292562373641022707836347781866332845293492895912136631927617621735251264954427490504829476337607554893293601890437860445668976148244539488542887402916989479433619502728921298800359151099024420555386408688872496576598898252988892971301884600057524308091156188515585589601517528033308287523596153126180202944855969516772201126662007779160765474569155719331713957734742525091505435972475861382992636890091695131483714722022780064839243200831634424759491408592764573868456448928708660682502882210746580517709807933166632030898906647763273008264750646998270930799608290399264995729694729356849993231797342730751879773559948630925916125526264523847424122919281306083591516304005925324833443139581422211849380531015898700344208102495172899883724209666462039550686515240872593960144192151391287411084269184593946737010633117997011374489410037495014060405664017739908851445551939593072589380439161037639293841687552381586342845152631369329224281913812962807441665749901525821165950052163178857722989784659844867934647452259902183138700077274684901279390271486650783059949580884991922947724516391746912656380320991415911708809945680647837130001408986143348008698718908024020534006861722270910525737833428932273437872275142493409029139928775815890700312551392667290763783299832183079803034600887610008127276226018878338059165618056861553075212040555072030215958008061080727136411345503865300204826552969988917959239510901208198869670942589121915156800931066696642616551411280797620631619441995884465026076244584085019378245719257782382322867670465683534413170403873836023521394316034353905222977943769019341980807002978300122569036719189841327875847937229513924219215639857269269381471219941627015183795010994297140455513634972703463515404359951232545592488616104702049903908276248883772938969536763549352992366998878128923592871196626445124362912406715896351062056516337103454354441976602888346903839979112279550343417985872702212071835575656919012394572325170765217351068958337137562574688081781772291213421704436085612306157917221250415807445297048685223032535817513530449409414788101250709495655930472991233013733907724103164801479122197095113538310456075929916754152762176458641026540335864291001861457223498808752178542029562424270367706851557566411309088866565010700401766356287477018776259123914730685007075476969392274335674253096469659210839873218784182752837380876063289762769470958773520318207936073273939367983967509118515979590278851853289891684334514790223637218033711059368550070279234006139067632719810461521835378314077555733183283193658241816813792965410068615039464120990285823318206721266273432300692881510995523494116955473838860525221342379638437586629861653447240435811984271192098398504002085098221045531933141056880728732336521104940331118351150726624357937169483841655139217720725394676216222122418639360252391899393159704628153546219596938779831003700065493751422796708975547478005296512338387148807128614277479078870039869698275238887900189472936975194676506224571262064639578629772581076923004856811397217481284072902719857569031221119916087201681463752464408625609345130334581674109790226264076049592105283486468982653591525003503150264903142018112823035097125103847041985105095050511398563092289741343168719640159534073807202598368279766869548591347210700980852473830168051551068268964154686587355526425249592120111772843926849072047608797568594934821300215174407614940323065796944708667122895151679923519113142509213983871040087070284269489658857113949788889784705506368701716960884754045120675084447001613133638250695331233744664379540903207589858890971114741047230035330715929995510728835777056761129341017379878291633765520789477612670649616326033899557392108477473361094988342061436025486052515601412165351823019758560116004641005929170457912200977616894486090233448880661938143650551072742563861176497239530118978021358761826996014073521002980073543793065644422210604381646178920142776154605059811557558371724996827688806963388356162120912922056930051476804756126057709926590853814517883886826804697377953539452212691818530507040876402664431886853573774093854160777508308227884830132291056326510935142843693729043333548373075700042687616693521543238414700579988255212552248148393748483857160314922195135074979083182922657359993941074348989068482233229225296783989662467532721835981360784731104039633934467177445742274209472354346249397291342501135724726756360497261044670006294213915666661912857839092432093861096964474394703418788519708352616680793929697474492542734703428127970507610742734262202458319567163169612003889736672245250885101153593108476800967628107239472949317977751331246158572853815304737596396530436597219245990128009547904995377851957586257517905956292281635746661712516779074561882004425829292557556307326892203919682553372035287444467311197102972791305310108719309281481703494500780286686421485400381984754810059177595128521160275668732056445974583970410613710595193044462282269747517503066326103067130856728349095740282186455996328520711255790879581485438729970476800481090015271341738102784614467577507912346736297655463352402787371305714416679263047439328942030661057217722362642037381921356841225474835557075449995089158747020768398849524958204341485083546045499850242971065109813383582404284475546200714940260360624660400979619748674102250319515218357846079460763365180259517529946884956058648511458255242033086389444314590681322500891523219787931070039747325193624986443615449526356396161184174310605149818491978775997800185417977416862249799238414995212213166097029312857226453057420898987776703940344723489010398846640950376391656905367982644596099565313565737705565478324938948961916172078268720599971693285441261470063747344428703108560024273064745352886976853471489207099594974884022563238576976607973239747047041830779036783917548287130200924097455860762997293737354060540300055878059117487256609541869675000726953474645452150103742516340890156243120604156721755511239745925082545349215000654281513473450523140680631473001778426390696419931337147152112588765261383995526844753085620793268066485318838834358914623646697076334852142545863122075928441099771978348451727713889916609645619857511256554155329357800764629951981324134376876882102653034233724925877476978903491865796110947056215524581477467605626367772803505386679072344004637458716762105710529175919669324974889074383619959947433376762714765976605556331754536628654564988689277485967241903252431523841499589527422890855347427422931514237800807078606267135563491490049574315897376272909807411864673227295578104549598908851966960873726975102247586559243352355116311528047438840124257755735500414445632802548739577762737246739602511356285009315734024508718170913405775215728025046701101479265946819864654524132071715710190603955404073127235169956743880790087789544660560764793989740413860030384485748150117205732107043472333156702537116375299572584168424213502675409219487970432548116718684900228599082185327188100676947248718429195274751036249965610574532756114886474723199366502327316993387423296896259482876965621743046670491831111486489477344278217785291176416696957689742510942349077324146359148406172469831384443071797418780101206352635616722759904143062244734671345019672041389967863681183988216703691437193385141314010931835173212945387393480342113962297868354079502410312092534907745657312112543388813171356277471640136628056620583345101786336039807506582112489623167737247022761750809635674383010006295557066156811549550763302378340115403903483636710961198646047297175772061229711409875438601001167399359626632409884198529136814145760835687869768059010668539369774571678403038917597789087114615408754085518159962905083452345981407599453290083677153803521877038173013864634178463967808778835541316324708313580576176949680559954773373033230701112216296297209586692998909256804703203138046154487824577708551684178509882956126520886425024845195293291988740321650664599280329681213191821854435034892002510636005420247196407093349363493308369840723963409391306238308587854369462867692450874664297792737483651240183239951561401925132282806631283860194960142004639111769886740905975443400006279626494625516933690256202426055554333186416184725896297818052677297844527682555464128619506717232387554877809939552093392730179334206489515463604998235096989245875158503624606040526906424677338934211425246495503908466421590371628057177159077192284218540342248003960272356463668345084471812148293729916914468339238525344657379375408149940089144409941055677932961908047923274567983789481423594863205864960767971909224788093717760548993662421021830114280120035819647308568665379000978638047125604571685651472795848433902276556342721182711639044764408500312171682366443183095138606823455466852693306276060954125583960311858590266919685167267071922187016056807053452683564704531281728937556649664412282032076745592096157526924366209595520661935682096124780781596532444024308631562744602898244763115788229774144105120853009459899381432803333151475929178289464360964596472258941567366879441464420541701422920053954213055481094038378685033142593897690107844419177363032514172534989372486556442453925947041969499760706464768089314025686804210198673542643850909920608237417445948647668524633267112519356905318448205079670528599186019803944959352941862623596800861782235787796524563162804819924445373765476305508976918846648991391806048793425421102326050964373664697574922231072243024891529164874369795868025902533716342262704411725276732343903081882907772707929308750264323461581738578919487858724764446884179016483973130886510051843256627868726531238526816282978840508560798620959218303092287200307978186473282298448085815550208016543032855525847738948587337033099318679508162033518983763984889162227807946907337027259592100440143099878523091563503823580926933408905357361299739589891130480308416131350605611650183053440140907325812162585223762481856354760894176238145022597962950141941949365992675461469750606403263577710427530827050501089035658910075903399458639518050110133158858570193538353107292899152998502717254877716255075076497019280974905250157340902402346258243955421964796309933510676143471281002331898471146567688092284807764036695366915341244188949961326394245174875415304960750912540124898710208349719867508967991902516286386746955829936309168650604645076150997831383251243680539097803332944128187547815902258481025097913544411588961521428480122378054426679544321920632768725029613225509041210272419585444912312215986716496930345301604623888714098304160124795146290791910539771795309338663230525846670019668497900227272326658057922770928446494788376869256355207482195644185585168473509606142410185354276324616209905663309509377254842401433020591510820192942696138325920367836134743638821506260055396860191748732420781680188941617999779450487859357743509583263028254868115586911455465002207241655510702583043283282715568127147490507099624333276512013408964776008141911563530039137529704346482296223331764625986038886647777834802562675713510782053829436855400760451040754507059399094795861906238102718333781577571824166478594106035266812598269470867754417675224101794686791304262454331589019081852497926370501723922992856260254660812912707239760655734299408203849935344152750104995010707479094355728890912543987054485522947295446357411594712997090864402512373943857602424378683174181328718775263420761128783470462965743178439109127611783654615570934768111727827284123245124866986780655999251246457385359500670106553067403381661505935693328152988596994755577245502343002546409403824742930859723124776855776033665994199791962659851943356811917897661945721046193853024234923275554491148944367042700310067668874661197340481413027370523724464026923213982991665856356083353761758918037537098855537376008453601797504385010782380774301037499135445082214100364561223199526833353383090346949190835061565002057793212422247591453480919178653889454524735713108402881393289834712788405327118507045593633230736765517956471558170786152680407621042590961839248881027998786896157453102224222079471230376891667335636345831042822218327549935165410079113902584053056919808212267565298122079744525947117560532092371418468617369416781326466293644652352655723874866445471668879651589585699359203853604526578651540165099018705068119942017346240546092347095498269883840822194822361164948323837139500071942604291913032901351270026020939016281498415514107032506309505140986766003212865678855822596571891711794997036001866648044883152194885226014995529486582893396525969564923082722475699446252139614944590181798960861204086115792551756439538371190753244624988581153192618794380674738871730709782429345644005289085817737399470112825905161101897852698950441926638531569235660611952100672560033049667434187600845380826053654930282290833310388930121595242643810599435869505086959989567316412542301851990454883612911218339376976314746653633470557228951373185371000847521261281551211369394034671200427663888167117554428745449903641540861680944702268434633572350148280126504238652971937646339498059013272964691128907693344305604007653669687279207565819707876802058382917133014364329363297552073487313705457056179886401440313715339727355614882974838933763863078229919532715872350710699380874667884899001332589631708951802093338984857863456736741659861527725844810384212588329753684715179294887567094215168919286255825560424246300395879660449147338034670676613590438875237031815103975834009770937387011803964726421717820552208890117575152227245433269235087573513149104669563307490982424066971265628957399711619793239080046850563714006083211786953167877567100840844723898671842901235255431935359879191470852490886472061602279085231243203450525246316388051268986494944512579277820449921750924635370265337352074147172911652703300493830122743768974732499656710794158528199556155378612907088301918038862462409488805468568021645249124076994408012059692045167340145079185263433906013450922651508803303692172861429228471549897962126415946115473733774954542364263642106254165860924433973945671658800768378384328860430121173148614849412624303970584980809963022233665185603586154162460882890437733398155533920844915301523472678011670367087388311478825789482972617930879073419255563325859370592990201647253292765072771856619226337163708989644353260988135701169199590935760392597802630157440364925156231147532921813764445581117351766697820205792886141098233823966143255590470204527132398878356548603418664883189982381598403060182432258289039277778665642947638830484608757937098583568764117963817833059378801000680513733590422109779370875422103240681458415223841577676432696733495685216317627823760406102196823898066849607969181564187800403180026154401342395965449292890891469900605029414530934271914431949248181243033015105890469210506657906707522489924763753886080279486957190980663042307420069044371490883926508775819954196007921008770274213714212179455402848769761693151654934988381483412454673489784262572848035407314472505774774677369192425481054636506420197528761690826974250934558738090832584605343763471861779030065868640205574302047663078679734173555378750361089803607227210047063085813292732588763103987376007747158549327321058221896866070136897478397694610598664473048027886813792507157701080812780030637951925267218014210588621225389473710668926032190975281188999274550260620715714757796122224268164048283653070764912691721224342761636825136660293645340274831076660317884319134768325916262418009166456864905706259571964663454012324537753008182287034475339035741264003151310931636910431891786309559520394476396740557409755579633766985978844967723132877134154918666456519842728506938192465139580506792680163395768457673018096887169989976142122850698469526011856097822523118845584455298278236861968450439997037872129232007179885084807487172556402814523769980414417194202671540033959850554314502301883497082999908880266782962766909201355970645021791299040925394677580771137338397576940131519263621604440868622626646958040810101668464164835701909879622643955749608803984294672129657515049672061680540561179147313945536493459358106976605537942411609724807782116339329583488088710891737921952408996003575826988389575799215600690954432563910718430142469439568037968228553734063822202777135263541863805391711269107748779708609322967957569436561519446293356815069335261856854884033194486873094193089562184815710589897545805553952241837617304170804894544922125307696443295958845869688082450001901938363645964878070550257504294685682656319415316588045289973928524164159402031299125747452516656234718700069464736075767699113416452677241227192776837506391437433917672590565342104287100444894262354794860200453075242697193025855026489539730584647695353425688694262813494801582763352035132080677085958308513887600744596627147447282072813728979608790910256316290530096728834633706249048587116244139559359326034522230449076916145275029678810757650763239757245526091603304586750868712017128053109253058560360464030169653901748612493799690893001695938973989024813618171617485910452829424389749637899789068462864267873518435784546797010944772109975049995580626769566588477291267143852555646875764498754042594629639522127473261941651992278877638723138605222202208876447977032741165879311567129705023148570332296761121721569202002957426122068269037676821768203235886513428669110563156131168870463641556329842746761904828913670115940060428151605135892406142114269455485625796806098637592288739509966840739168437161883003728763683791470228350126265223827670212778040356448030199850740333145114197146054299562263792839880785315571938464190465582749983941458176468783292788293946708966127282267995435256571669946824671484920645298693651480108518468129340885838295580051956824717550792192356994833014646129432543413774466327887755191660226988441670255369249273981728606062511865373787814586616078488855228426475593089170498426751960518273114693474143627866765195060440082045630670860325289650941387352792037145425141962132608797388182103092351762825486306935848272140595439801110544948315351385718101878940200917066624892719397485010914837023909185276449367575787605779087111036428560273870576749896744176668081228998045135019230516584212887181712252232961406543711348450819341315428402930704574133254528514734231614553188227836160279108282847760618592544515696771338182375757099658049132516138936911156948673474358855113529448383020556819978378931253234084170869988682713629144992922832393100636480968678203531765174644551023970233324039763530787785744483164420539359807693851307523482646800378708624470449312077519023100120418377363327003265192180611732759994356111040539941452739387748094143079830892348365680484176348603029771179387179614267582874811329401683414304067613397680105037986013683417742557396500461973368505049686736901214319956484244625993225572256406258471987445642738408313296491401149052092624425067235805374602534065070253665031011435876243949363486543309627256564504837582147453807888569877431151912531838578058499219732758930458971091445054340766050719436102988303444427765787545459569562360992693731162707635735281963723390809391803958122967262566937647190270429442678554259573772840183658925526655009528497251354322174437750679559336654728129849206097683250381494915111926769354585255356760309306203263016487303987882773102108505706278042464626674445955698594592909186520053478059909984187927357770023747146032757503840364591514582579445728684549965510842297259412565147488784034888432383550872016878102830483080338420952776735020113392411336927964232408876809691476118958108895081131306733340061122642235919363510666340409903422158000814126632626683358466114751646828368937185765288182674846270196008250549784946936018669806579827974836847705069756788410465754594812027765740432352662727908603112766168366132312606700013371288148573120108758917886386436000199321741530662404512620775398551109883440561922848490541975451394299037472168348430447877841373641836464858504836077466395068495838473633897116289985691827208610018822286121159988534632381589626966633558334522836538499180302367032471546074379791164784321002832247178333957960346039033245445093863791293700247337744646557728619876559371893779588500407049521505875735226796990954973408393500895302306124210559755504290319147454351048955196823791251395616456776512788671562020057011966474874552535486346086560243827342009685359885627381849595626101533848231088790738170420286396463730667228778371467076130163807510546185902852293446522702173497255029385861490314349893977656681289242505527298653599898222002345522987088117550413792278297039361991545974613201267412899574623844945161285060412824251352510631530389880022553356958220189716009673527137632023595760078568885599247122689255266726163255012285357442640783683152550132786111445902904069874630337205399557556662939269126140955983048822983538086595704160266393066268845274668247938577798936461662718393877827743744147642367064455721982238398290310131840147820714997845934057507224367884177872010094167604762848355791452320062614108966987377834360815731927420950061370710563910436149634563837824091330395613683803301581711357009226400367465952886644967303794871534984019991475003986383143687455936052610489130851658248804919455259011699350570808958573181774765368782321565724558239112821546023032875200402602678632390710541293603839445744589413286737530068156825267377275741882712889836056000179038045140048605202967557701421108647780705538020501447940354684090685493051244857329627647332658059301103296461424584206897286168448710856818814220442481451577042609565688088841290480541696077617374411074769924082026557717798056243666568700809480067002834219541220412505736334831541812381684148497966907134944609304266092694500881144964757607589705958367681300608623009188856571786860101278642414311689967809118487376069313708075037952937894942648701810678615532362146712450125192477776883106093398548815015014345331913217817058858279997952384545674548792377594532067887770403358496450961925843391309791228466301312644221032434550388684937570994413481302065795859704853183021809078180894993225079045676334448238229797271950004943645134650711903629639189175746942354531978226608151268650504469650200809588971580980997050890253998144062680574267591516047669712961462420713016796034182571768649720378520788613683651292015196203854622001080945391288337124850123835316367841200130060477928008340676105561758312564040819787889681109550452928356859945205089748522831735502760947938498899258077737051075833223155393247633698771266929538086969436850836010153877749170436401882127629933101473219840582172680854078150859773303112546181403807302167020956316217968659912160039860514848269862069552116208443773841969680333226561274336913133629420642124988298942960731119057461732134795219257915064661845891035999411107404592330533391967189002368494162042971719673757120881810451137228952887486880774834124623326719919988032580782062481873806690816856612435727563327840952237861992954586031754455202956590664164524042420999455672378547416307629643291011642447261902081705241994137015548836582336489897421958709798167956292860762073428120366301873185057381805865841323717768483366124662346496400626249052163184596505216796700892863697962731100924529455446062522746046190023934070107141325047771305394353354409032352574945931447827341031556790111030150765909932258537456384578931924715208232508713617043266633932688655088868761668447236847636112782663003379865066810795586120927774574199791963413194458931882166801292467874958465218241963669430856844561323508560255065137582776006143197305346710158101133256215616630312955515062826288269703238615529244104276232922086089262365058610335186992878887941157350441805370081570637940859022531305697346215803864187425667386435374137883647689874877015894830319471881305340201907801642687154738877844884274598096961186572179776724600499951740371164805223792685396174840039084587842058480262889733585867186155816521636610152946521584114714612972485231987788920814432874338433026309182885366371013539089737707391106973928194321486986009079291668843220182733463287201510553510676389423388281397726835302361474622731799913528810355966963624874206388043918300885929432403519322651483281631761153560186077795795286100715077765868756561950939339663152940555271063977593389826850776798167273880979303144180246611042158667308947606913100195036407898261789494311103923586605742599249743624929140036466945376338881657764121788501230579027637675007472640776815769981961656964614406297035452691529209657064227315909662327108713636278566002914784400037216942937949434366912501880666806851069159965619248948872646013294435928739877260754023643290523226966598320235411180159848042878977877248449781486636520191632004959251580778950733694887947433839512181315996767678528160266477383469467111134857685695596355571257378853156361136442761933511055965814214854933404597879570113948507967835261893779264905463328215511180513611976088376352101865614130831533736851924365426893408637847818589507905754172513828095531235048210680864287061948354223596567400387697207683595747825690555183892413807814076257522102882007612750975662011247582870431114952152046857608700303403420931253942401887324180906071167054537599015972638556674601336118541803943155989731225901426084261403992252624655893803886942357835089489201041049437963259249598471229573090538289627647015090011961614067115501045130495093509116079557270096138858817401025234126448887216387878643132114627637651166696553444244802489489561639705518340908152306090651826965728360212181517305184664767834860753564064287732919216475725579868203933192836315083929664704915667778766403986246455853664207560647763221938183999908124318707511972903463936607649281684511276596525781751233258703294364479795190168572922758993877861333159607235275246750496006309248414867387913664277107011022018160168641856226086374752653330243776229117559563189426013282169009344307109051967141443421151289241739032764245290631085253642203868201615582018469101648106397909386716986532410751622013961687090280416666083484402464765468722774113599546721487760259618897750768187121882890248011613564146246454405988246047449473267040463945242432296205267223637090407389513306379354908879389790854714951190298824188139658743758578123979726531127058560321404301989965647320380292729543296359012200267217223707028186223722269751339155120603250270490861364416254244222377422548375167037302184052012496869815379505813944033271849511499591266900834451257715288643292891167544573657746448154356429014353340828908426230269652499993842988337561468712000027655537191437174341948391020018977815713144854371643352125464597078816755318171828299257547483641945134905335470346097785856066864080585753666487574273134489615301928471085923387021794082208763210021493322713066239625490916655878581353622441239620073986569205156553865334580684673687951715332765412514647672590448787210716967403849411609900061334139763491579109091363945947153314513705105727124422024491240245706346776404986662044947896439062562136198554189147349522891878378792246138176060030724739851444990388141709280185794407495445107711189802582492162037482462540634405082224441949182028579222922235540572842427988999473702498251432210729428816848134588551214160295079570256920620646144995644521478261280503290546194319948484243104678187833426758841599234020237567762717440400920276070764780830093916961720494663957594436210284488016386752246607162050482118600335472663485781168044996884594309918136236347053933074961704019151076157112788701553698417271240822750080461178537930527705626129832017735108819454627978312400150636926640241470497212975551992071743902193674643525519347628683784512278926858980734821010002424101662942007740996852622804766006548696446132505101730153789544078914190868405803380016013965413889117913065289685107250276008120695778392559393617049921299407974134217699658977309822681620601608904571652015296746668204258161209549698411069283247872028529882394362704072870493626820448530084940561121181359687257070598789693302710343522023433385191936862049754620872603914173415541745081363370429321067359090833053043938019107256679175734170215905442088589991132416282595942078520876163408888449850562468218619908782810080438522738172095133131260269987873752848426980189206916578634347388962700148443813543274736934576428341246721484962587849630293285548913311974494190293710582534892427982715089004893706646477656883049359180152562512225055164904303193161858237110948957094159490117644445542002293748875824420915157622247691710897414048687573932507539605475003585821527884381595767232758088992133334161283158478287807694390714140136352180128107673781612497206728083889740094508678699077461814864650547100357555850683874561412617390131943739720212429962296344551264212874267429128231825857343611137004979008505926872645271178456943749698326562834806641271911602004795775956581240936256752192456362061664373145068576019265846709803574172052498734437404191741629599336213971435226427108622522372900733663521674131715028526629671912816656110688470144757923409635100240954050565907950876203812673755977989013826096184816675933355473312071974106503665656809327259234965246622878889554693350016014019411191743135902452885228435864719645655689329888932106675692547246598128600788974280147359024017582866412689961491038929575702289291557946164100012779736645783964546701869530302492345708297657928696051918254640303423750970507087991211833441329901692228548239842565286205708997484352140959898311331171509084783996979293056123941337387827764565275274776233660516895388442084063164648184263164917690454234654556882431692566001346452032044994123344344042482362793076150363620647110105110983228874793295712922467884893764023330741971366358622454142334918119695429271343297334066212367654895753526222989396986145432058164044387712398728046887336008999497613398098981759063928498360077701345015412475117393338935099330014577121094691200467093967408353576440795020573463454370289196469469675520824574232507089221032594535795053165004191871016064789915325189010022044055874816471166978331864226952582370084213879704659902655306723611752286737180513195221623201000055801289154821180782000703520678096769267473763532532166603806895684926088223972477698548286147766733335312475582321924026162745515452942419608840849628726007403559916538970985838015551092053649586293456754593750497537592511293265793704294781053168850224953279301122170881577201771700676209426666132283212654574959712917403893487991404586225939911275845920474576448398040793417352210943120886042165619576354496168144870882080241936144028371271494944275921644564722973927400430789381781710735486713041414329367903937097350248078560207417874004063263757124533913799027288977222405098967090016281133950640648351030046299182519977656715105949674481171945092467697319089077292771113952339295031004014526674369122508262501339851076236784867473954221614660021533844169562971712000363927194242203795478656375363396216777757755018771460119209526230928747070219043572568013763865597434435473934055711001529274739375595959693712694594915397668605309595479567109645282454543939218967178136584105648520927214399532377854799799018062106370156886616555128656993777458763687528803233832883213975934746497222463575771657839998545445103116931646776576867189199686850341476902513573453371144858922017780807102919824878510105585001896044090552110607383315859790043674229176257240983236014689471734683567217235539470349937390955688782391847944563857395422017225237749441873996105274671750355094071042377861997893296372717228957523963158269742247417928470037189911032438064541488508529556055764576038688134313730165541545516004618047728103433702850716383368861460932837916886328054810262111611018238493829195487588413583803338742459242295432898868104053333107639658898580648200254541825005722328348752410391254376445091068776999697965413439742786058935478906338227010391966322499357933980998434358568512101904950695499475926740249590874518997484027138912564267104610281489255644636376525876718304099139375000321475437045997952692760636616055103692499604335116221536900181298827487329035727926521708771576495862611131524792663296639380863342540036025426573007981108260214585243503711525167449500443629861660664134315973480964075697354583667474811179961019513083381488667943904679449690943096499659685945423435638830295039201382309795367020926307304776737425555133966833978335513940172905350835628263103204488062786309572176525732669574442902494379062133859380647725677687159135465387436888574469377729743894785835773183208457661429601271461465548575546133676048120284260740546595393601112941290627357065581348789530745028878333495722001747429574356077080012616353265252324213628277495404473756102309317139542461887206372422163587288064886744182034717414822073202328091174624485301173144232223820994918965851399453320346692146642671943286499838925733573306890454712486540855843832017813069172123623846955765513120425582390746920345586566182078486017740781720124949897990274689094718257687758627713188297159705182589729947966690830169552674879809564064689212867634372108653519884398105489873996336328759865091626297142895131511973582421134389328584436847197435901536875671165298973718004294903561210002210183763023231387210055647546461681009920852762846429203667070885490566051371173875611751868954289441768402250967282530794164970390615832410053780853160140186892744346988219798572277847806473075304169060687315723714120878476349963817008901266927133137599012247353676673609041857873644595691285004742901722725178819357131409717536394794316966388395432979394495253098028566325202800265639620280028211739559432206985207802372157189549435703467272485855175661821587627804211214054986054704573947126790091489672733650774840971675530015858839759864966973455905398788511713731231400284578892274494029401807395800282766778487073246036472340548541584417081529430931166269757751702862512145056470539888613737999953486690825178550508272417897626560890753399352469079269507570538162434597765520340463312358513100896146608198475447317300410755918163384158363348884460275123579843261563436603737181688109962005268422151291184874396041773214621686353151004171181940904908162994591240442568795110029500651754029681503607067190178422312953927428421782622436284223433346117732881755167057936066341184925100441809918902521612308096740357340081040970999984604459585840799830751496287796567273016083944379095973324302865036824821044677404143612554579401801980305376640617525891284363223934141873705592450018620495285379126834288643103212595253821439068042044623915672757198363735535973893828836877201621300388254215409920845329185123087950783209002446295634135503080334856414339154252450871230620710075599314273951383555115376548218736185281112667578539773919348395486576493348011418500344971320061080315114520383037201260488866223580187289822529886238501264266284342476619159736153895063298414885700551705134333605034835970341960141391669577130040901841880918619274875990420561281063687639432960640563246253894246304916121244974562713759073450012319983069333461874589082734177971721314027144183270019588463026198516762769042548665679289870231270344033065638135401802864206560645432066299193545635782798173327341924316316656429376140699250299077819771377669649624491818809506551443792425565828439582355736330437698999066523776742620658136252204246981273865899689931743002883805971111861237013644203039879651307210932040364470451380130524640943255664630917969835135995142938253970536776144465838387751704125384411343036629389316405609567661945945031831000624864342458111962361589875723600124110895390796161681265998061221899862986959697925589091474490290065167329673569007015540229386745257580807361574740047290678114571436553178079165967346387328158608835696224932963554886424183881359830834011947162825408666818768150606127612751810017753514658292879964193459905751722232936485401127661345300000084802154146564628940011908704289510345985816987680152150974558535540007852791623003880864902603102230342015488062575469365014799119965643029368442224169291045486091405640315423769400322317829949523203888486991311630787666287593752862012424432401222182438577540645891767947079012907969917477720126633802916004577523709805224919249768685205755781451546342840833821348115224069687530279356905797226243889720591404825579098272609987465020660655837315254261448737380750462696170924921192193545718714450935904050419802427100188122427363333516248436441383658542124880033216681849115106862601233644754374935762537192596509952531579024623548874276428921825609704595986661157071124838898713637519251089887498634107451440487977713843635831206979734635417340894606493054296191145000087138433540796424983735548842156145504219057957368731418678977755600852101116609140816020293857194976765576641569520228591873404943115603546813563406396387631062576761084219080305368912535138580298460318674146875744936321372231132585344810023648076336723030553096823031416774987732073885120621401934992539081436497577443764707293881473747430569766000957332783869933891071224476991525365856093550877617662612219395525640455270508008996677360824021685153306085692081903172307267634493574438764868471971508072837347782431419446251364066171147407277635890524599389824855012465988142414281051873092478095985186703062134278198401656234721715370186241344898306117211471114715037657697084497118299995188222498743638091942698206269729763899274447152153330658341328353491687842487553494125330945817288236635817893201957499078288378789414151687136691756650405971834811521925039055814574091912507932553237878448387776333427301438115776208485630011678073301517120976005944720791290171545496241503129163000747841700874059515558914914947302362552318776968406674300995527883146333469705335355340013322249682126410050754549327467309776290739707143203009075466252156617480104932247358662564231833982333729555899005685339763548050855657476361860304806399851255468892429477380257154487510908322365497950012165981967911910651461570942056902100422330038408252145266860380334932617437209070220029338588462288512275694983508748256308223036446243632613893459430196616361281350718174039161668696282976461401743952350483961666440070989660561049544170958733881591123220669396462004169032745546580292280145317112082220969444981777190651686525266619818252954301859526639368688478552057192831457520679556649665122373513977961626652464993367798597523088996427573155509406976411389987969980822865373740765069722962862126044524145229348807686421539755131402566516555141186111388243252716962083820670872601472458205228971492578248278668801840915547877128930717158421363426450205754758116685380462451919613955818416849049109175032829133134923344034927940916147018945461296451581793544588738152836616584920380504071687007819082465270031212890329053459975581619181040803861090915252010680731909286526905377294528477909064574853338965177197617844350609545318514093520769369041117107159372201458943326314783225891644540179618802334362478925401998846244905913689351483284405401960064428500014765711243064170428550986467562367255891696472250900877080223597260773367331708421915347225390705293327080355425682123081697176527921400814587858196420352991262269017028080337959750020976482186044206031527879478506804819517825209368161197731553404584201221128168262306875626691565036069750251710974327702426752994386340510817103825643575160650611964692673054699729355071192363527355200061196835187154935408852081395340910852457628616774198729409835581659482188602963675103188921253271595611735797175913173525933401003314284908865491227768851426237959562512886498543192935134617496376023988048584518052785254483400393381300871320345722144097817426349753477082685907718449401538356877215652175806481160798866375893277686952857433530013651491100758309938145754984962942247251248276120997884580833358210708607503095165604925889838306682134674984774293450075677353165097846834127396214498402964654412054454469788882887615892910636976458246288430273969233205074196690922431308423951080443528911970345708705440745655258883182127762269270484778100806082264089710631171583130978680607284045471113389117249770275425021100329278044304479247853379205569350958428392896438850300565387952859981689205869541817245786536940406872602390646324089980404133742131370135949005477657020984901766930183883684164718188574982142263963268540873881157160036976654400024071113421238948345574684400717588081682071379669163055203481397189325910921118359049298100054194074697452248253585584646452996513761686039913278768961838345309182815512453428065447384041547159985143522468827244811782665463359860621721320330861605451793126259251278541478114974614503978346151054981897054506326818031089810205718511401864109822812352996234296033116702366705653588260914535278847999343948343147908081244101036467300930855357519629399931600476664785567609106081820719741821837726372823863041332704676346903029904484121145124562180310094223615828534288390369425545550913032878530142128384299598571731633419073517411892947535815296491389466161778872250425818537521983864536937844399433556898230435658506881453475172921148390715195234035711566486964763454103620401862406105305508623184912567093091369806162314577691410683529880315485438060493301539932915293166550084052918285156999789482680733098916164402655249280523035419755677662397083592808304827712403300778868730773600754556327565884882829366103437425318106574054279987904267809582904860913863310421596868235178713313375662672986479207168294363461290899739563777202023537703513327156035749979362292880188771858287457292863574195562860852724873792806104395234390358574961675823726516869800639490352128339477103967405233782686584573884954736467319968977956935380223416251426230868094147127378151948187623761987689229843964066804418204838896777243567112093355886992636082811338456767761440006005439321142685942978354498011784360150165992679155521502300648789330919654195581950505341632109300749976888511831721373315311500369642593084925010110802604759922929970633492302233298402550847597597332043403829494839271820188905329528641102936284978073681235945202377893879950876675029160435972894634499694772873109827312669246201981076784440139381315374808826139251857009672533051387033565143486960284454747297613623097919060427997999334702994978316866106655577714137011349544852995983953743437079125930267912874304667332075128441574727928911351033351130258496887947457244969998046109340337906502812424531945103827157453612388740739185955782611702265032564621509429306832147300851828636505199347534550013163817550434817088920774286115990561125728087029272142225346401385918177898663479490123126727310321652494710868047346839863374250071226183645437507313794779980137579084664642597903392646442038877184549701467606915574418360372446696989997047970141507337502325061286885691484079327465704639343012818076742088366680005217375497747321808382725157569983803415750601370693779561961709301321969404552238845716282972252210051864418341075535964182386136006540571795676219830219478280649471697769417617293095590646448298011880102995309820785271178833690540830609916573822244569771851245531270613762318245772446444538209557643268522611860374488565971106576045243397703204949302072545936859741783918782812543198344934388509499125057632945270795439969651394136335949162118691183974922896407037281907719141044278824655711876451579767014754760783220955337272437790074603577805898432780210600919708391545433852220522428088558049411751915425092982169196254600696080607045385043687500230945131271484570649415504787370102936725451791661956859119577436274622470686772449142397839974928935234076368834205101068060585697209998894510536917805213786794523748638798577699217040725943802478823388654674583571174538908472319672185847128039052858319216852249769047760360489305422191933387096016011428476093121998152632963025913378984261010711322905153241980771639127681708528387375975280651780786389348910907630841703722358222722097661857468536558708347265625635489475341871176799249538178241257792212934764110622610798840154214911316549487488968554266746754960507850174012583116348426138698749280927404235349679204578028901768150260580647490888742541389157648551686283770592845816023910887027218652605045260982738645661533596900638182850488177234001327101543425122815537651598781274405433500150509263570613074054724850339010353467676003542605684449843040623327913188098757180221091154570405054061743024834767588448101344430976842747597022190588623467810082300187398347385901654409678890885829746018000668012487198252044496533428602710171175004532301217408743165809617994498763963313000586422197812604337448434243395411075885198770300583955143862397686069155332643475029718794018696718325246527743827583044288798211535542990110992379617989480313156051207705366148887266807511499378071788034361896371808241017536960208113604148997615370030044205532212013800498283112932606063840753045292737973338222819862044788599512974473239729194831905084545367108710744127998761259893581863762113698162946461884147155560141767775806474404681567185152869258398182903982050150556678843931289735433770108889966398622854440880127898351701505120631165122203923503072781355868187436248700118416114086701039319042595820514902841436982591339470906561411647689552720517024227708393902003203817728714299666612006374397739028661655069407760262201384829331344905131329310233981570929878853288676720145931633857459138878941642523306193816407136011079999103696072378857369269552630747380967196232600542172178456328327548015461239164706433061984764669784294624945011368180691287521277466482255390027422082531215261155170344891452583508276933756218265657411718919187559442280352574227709612352186128776529433590778758685351179553903386616680858186696433990976971915388155769533711134718637604963589178811207627629919845062195092384393069141400519877365220630933671719262619033149308151510323417465248020342498510226196852516988526786184376920373738226601480956489586196160204203899352351230016298060497487992928872989342990868808510025269483599750823591431769935519398643077217279178376176321532420546522812913819017547140008227975709937306817449754979158887731254293361770412975656581481651285759341385113433684790608965113836263828692836698704266790497974994317020907666746919032303591227251630387099425766422986816671962957850202720702285020573994756830031825527822209084765914551614770644710970491740198584130364504019936540856510029149825607357662406970275369871855003897404393313369612046231712640623215035287566788677226525382321826265470250075531044292091788786710635605252941014478017533642883996333020876514483324458255351691740636632369709979389775457119752244515984934226213395157225082291669031969654666565868416728112233520836777391156293121518097363671382148533150528013224867361740347981000452568902047534763603341132879540368924286469674896696229903466862185009224136282716488073831671380378740102192352469981683449930333435171173077658086322404108842745753241270969596988438921876872258686472135117036936515755997016114762577505767609178613535157888291626461740101850698337061793825751277729510489390296962790881842105139484530445720635316091644753954193715000510806426786617300888847799693721184587505771193438855518265656051932596944856372555941566363901186373678816542227571023048836409540257489890111595803177037300987772429159371630171039153764918916855397873189323900544797416375508834417313494822554473504904958685540142896692974982606449425225627499261991640990331087562346018284144947723850317963109248585674314628909625290087866901468021875489139393171382625553937907574625516053405652963264829730920628863454278916980122855802191504016612965864790119121925550078980705833420212511051658274643020898103064739267000853446611094577472993910249289996502103400732657637196932268576071359333880068996309997468546326662022476741366489104337251595538437045768465621893086765164231910093381480027503431043739866428417843899126778948396047240081107298697184568357706293757566839216527601041553502142029956319803642926355719181768574450901138784989583144910321435430670407509412391397522439773521616539023906335833762988414027864016217643399509070703013938886577222500282793287825389315867479314514219984354068532420815995160813927412778561658830214674979936529509708247012970062119818270330512141769884649834170550988978234366896451228461087889970932310095512926575967697764661192626873505472282894110975544385447763114240542472630661163666710621058152071633333015718215182095487744636394528992706081829190629671392260422085241241071503947030344228174239690677718488253526172923975090504100535746750813999852603649796699281543974951506095135701557623081153410828774092565436823516805068029911822112041868357379770418517592604901544367120947157235143227124053394737388393190883561321897515312405732375684868028448194592214007382039160499140046841445192672436141928734973559076782652630365704078195141054127544936068771345817880414946698559303647890162617573778908468731734101317087560123650233496239700857082092827951807767662100627819911298499154518398173336350442061704087883621741851660986857375024379990134411149075178272704675807647505325523513002049994755355311100646178243939099021135171518958957027882147432509611610546121532264921512069897137290707615933415164962981848325882411587445952591893859069493449808299217733633514326452171853534730468112679833623578380799553098070279868335559436124064065158718904125561031646169368244720729559750272989632110677095659257930937321501257669648530987935443389866043925641280985060772635331831761378721448118812341759845053929644276860480896165861548509220477697985460583236015862748987258002618497476928514899967293799100786734525257715722034539875462765814024949358214021869948004074724408004093369296816696817927210348569783593279137024571741333858576706843304415586559976582573854834022304498296043817384411408228542349129926652097937320086009568898600302602693235824615160423260498060091524837967082446204591508412959011692190735886718684723424574393282636248672689820708487647138264056058690616556171538775436803155914548969507049438793394408058753995501797903632725457709409502897900943313530053840999793578285403277980563738624013642006539950836766682689356872856325323752533333013212773942553530602012397708870590629446644792736116204259441297067095775929599279495851423551445570563919573299242912145918022744365141131867719747468605994485193085842411851904614572185930921310498074432230513911665068035953762469964690136323978968216430275814588988980824819935881224811125362011405006747885537200158254259651900289658151603390943750119874767541923908424505293124557083386708355241070711902859467066957464900389500758979887123163174999312993044472646091216550201249837821125469820779595895853566557518486695161265836303994692491911996334250637034541345798206825029285393270858647765069831322103841358272158417204126190131294789693641043645735934354100091445329790609137175206018209155710098044283834791012070977247895524653354830062456720728135877852375216728223420518836428876412621886157018259805467163785850183491984423350056976746038739129712061495822235634366183200433329877479783665758185138251851867171640587906166657309270995719976328552620486043184230244781694274765407251265650720539146332989756238086575784563646634691399291001115275020855186752693560718419257552043349565417298257929999072259318176123075758000123201771248643299074388464648053687396431920782617228893016779592150499302136052561045091850612049876011666005998010100015544034856235988800549275924476984257688285993294700156966570583945724586414437261917048028310713857803248709346577053159187948850025707018664391086919884410339313939728581274126059689299111825988706306279420364578355741943691585347215074580112689626898194821529838290251645076211208490949673084823001465451757953766544005433498226409648520320207888430485245885752833896642735496533539099362014291846384820880024712298933312361643956283030209795224293089080713645914321080707133762860262290438434796506483381191241619699810846851421716303312857390681690336729528553584942777320592161555917096014299722111712333360324105147925264438025001954274536201050786336257517521230828625262893005337388039343562771641904347159177294377033480475646894651383651113601547518797001567755746923220027552216598733178476876661248511224792541700153695179043837712652133711599611858770194448267100242587450860396002476246241426344874211781644153645944795934107264851191276939283887271143563209900928636100234238322342215947678774831162984222544976105306493024105627146846889607966652026911917601679097073010402826953247386065048057433450101943149831372765704588902941647639544156785793244110203105972034957000473748841737909065203908221028795754140001668458853962531788224820450239756828749591126516150575449952548839572354685818920210286999333178474917990243998234434996948312191319170548032536721465176316095381064189223052357045914369151281872222715915639025080012338773057068613823151221759005299468488701165950760454614956703375513862635538731229940267206941789820026932917110961155885779314407693775779081547954764733360745331066990673846729407002256509007276351268214122639993723277418876548526828250790542463353008534933265641639340396181611104961440555889549989369026442195687460134456144066658087644394590935180894384420139816405282532474523617829101432032095500088244748051432079868839793046600037743037838950640121759595124802258836599759585049165199657848381582048324563423425157033449434759119735904711449237751447170668569947720297468492384245243611588316671509412510974494536553049996253307604444760706502136203411630567297625775202450531207574991581990831664053675618311760472212671935124118414946775010091645136694928927201077144783762976314434586330162759980389454851285179317826527952977234329235275048226806642497791617025276106444985937982146528190816249996591789679112826357481064167503063397532433211418201742946292541966920484504286405240585546583935182921257964071128367636918943408552998390428023464279626654191863111500502629929884932472446624243618161646744048970122767549244863929775888894084112875087266231791677914187375852678741314671174356893180883604354493287124532543259978743579687067552049549865027193355321481437049367173567173065619465788861089089344787109955106994289962422314931848111741314040751948801917992698729433562092392649113566870678008621841186347354458060379171424647195304132005904249966304635722117656856484772997330485648001800423708653238302495347280015753568914791390682612765521143473650401168321846717649696215783248224438186666035483216788244558291696199671913120416617196779370041260357455906931779678793446734535991839472257069054618562917728945771856214397879468657713935620400986192728863132401801424938684117031478047860758176825174819578909421516195436220991768636365094201780660035770658395689032815095719632263577304395596533475354599940840352032048330333410697173834721073769018977409299947208614473972189118055481029360064453093849152063354721744129899464475011136030179074854382212798234114583060791273043449647066631130043360658446711176155292228624790600346935563260588658079657684672490796900206200066295154773106458649560771720096582806428161945825640287006097886237297146084366661664664725604129977070139885331439966042624621864051524836523810708395395237714309645498927195695738743460569022244356255884998126311986707255232371165677532478104718815298553839573682299795295047674784472881145843403775232544400075054137309933893414412664948553100246184816909851720496508567442864578423624966385905446463298883126326648584331161086878341094290161740604483168750049288150289200290684604211741144891335618092472099618023616780556640630892896021883677056579119025782335748993677653407935205820536928055109377556092485899742684635445406428187754956365471902764823049900787106419064142702984890081846247176076948514917447197919351402423650154629976512024999545195579031350299899062315683102347784118025194706569176641940911249706961535392889148807741808726337227793644944490283365975029096286920128226207594402555141150958217981098852138986527725049784876505782405468783269602470977517157538220119001903257576879422523516292221027610428040934113818027490095061539793550879908943039084653199201476092713792171996669618078607497623648515400253789891157116029503560446135169509656736902510213804870460406753841645171190541851507094112708260377563956649149747198985958035195620409097229194597093837747031621197085562022011767439064010956161374600424150724323809530637086747738483325438467797114975870154437385301205063716091965900442116070594031585144064496467774743066394438102315125946003196682505542366059695145485415951844923627776933546182731915923958704597683047945281765984712642649884039740867587883264938968842202004980573604271956458297897724411495959431873602656141587535029500876143120413831825660027425239178607250740737503022954117585809883050097440607799998363634675797723990846299541876277458285286484471546934546144441121102793816996729740251578223009534953776381176044546674867278946252423747616650882642496129713544936099392615259162785441806477971467238159791325345010621161652227176749952558087884036328448782837144901373132568390771563030696902379167659301242794411501295672418994209924944526997045337191187878718187123137025004054803121871746875397608027512298591247031903893858386066007213429340356436764338882538504646159674302169202616305129733465215438472550974238143514127211185898709107832408288584164653914568783262547796864383400184164697975945669815324873984700773443025554173499634004579093576066000930208896425946805200179002440493675995882049980376679695843654319955064935768862578826246985705258267823630212906785382974094589316298638861578732297126692739634965160243440805325773210249741577761830782852303083043231544273358496403182164974404888567704995259317512710163909040797038914780973519105935591418959181016360324938159004840043687301467099516322422986025664055350804284829606345041312258026299804040631563208353076404553890576716475565973116367151395479286201690996768189526074943864738977199453266788831035878745641274515062861044583752862982879135120121789624916926044056404224123396313573276906747785942886405479835147261293141170935102498254825708796402060466578950010065929900862469016654177319469220636049437682708778874859417558546549372599047911359782333066575724120843538994649698386912541079913734866473703948200461608467830340773428121807058263301281627838062386807863901322174526998548667577720225811167564419368072302786352700831515832011496749495310488073289521176425060914165157707341397786206760627059596337497709490237278213529428011246655126087897486320572785175282189479580319806827649275781845474705765978024220656452915981976570571408552141694601230671848778708716409751165051572525997101262178424932716107158704392597321216041012117856402798831392268856413473268110513155761654060637555635898542814426299217194705472576178036057716851866053352149862531581761725944396694510171882231612254070970897520081390009217796674202744660522451254654247239577804903744426041779172089891738927225223262038831488728545462357959248544924867529556976309406737793126224354043862351923936729990171446757307485431312059077478732688666053834346056115918391164531286690009224274381402206898930500404361235181359176108695963411594185343713270131710945734539954200191905873641830449417200500697143520218252943677840528920477257521677083895312834733572332004652961507097740520763199608187565521670650075795671578998828341312121983646666439120044917445920069938795739448333139207869601871945170786352411552979062449474326843252477163861045512640036686868950560177166478481013204541689115320107082579920866759862904080606937817564261286056785374251133688672833903138603285616831888131569189720330456361624322788232523724036237377137615318152783309415385835862311112578695242844122118900000133873234945134637628687259046233324596533698029487285285765337746567844505418238789157464542085768904707546445435954500678974327694045019034169202944820080759041317302161343824251366934027067497431999719582361388132862370144727120785464146214401709329413798455110008004818697613427875278869854328667120729745970181603067093466415938834872531742781457855429790055295740719896554596223153461970159535259540184162895087303555889290574475130841050057799094531587275180024866861503340998571728563802047901759015831312108433305526758381702991345771599396005153879614555753539987362440049335125608550331889319759140846261045420859531063860710653754646448794839625779745590898401468645299840127772567805293018538728025645757332906274087425430725690899594330146758496395341302130006765301151785792771717929231651906693841896709363199748595021729372569515341566759386663781240483526122602884016544739567965116890106028620550477942378839784989889109659631510411013914951807393176436313268124827999431532050488985145201165097875329390720110076882052654749561815928985814195948258637683095741210756062135353916163731023145424291646041084673451559057157463230600474843751125169683737576734377671608893875514344451572307492210939995464306275655595099718579387762832491030023862078495655338015772204772550226434747552783408114720361679554705869147803547632541375642269440407454312658372223906486697477523345990024176218433353747432121133102570589636226033297978845368594076392571369968342761844988366687316582494766544586880731195738858864158541401184062447995824798268323829214343728651989575450941064446148732297389062873033392019916437869756754313626898737894140445912569558206319372718091017733341723935010128804604713865384980840136682666971818342529678493903730097472941531942237119521456358109897473302439600108335648572170549472710335288194422411930598714126601197654659647059007261707055305702752034370374949814008349954278602249078075006132841158392303829699154881343370863780978451902373886448083071899528175012465618544561748444010694980006799261054554961898781226030446395020875611234165727332150301525079862044476413825068340316768065963390413072095471732503503873961598704861823713980906090313705521058805385704897622465363379585894012533485623626916883689781599772089041277781306594391548479782950032527585625653036652992796972622667221580785452537293611388039509130277011202131543505844712353284958087892490629453934094953479445304822651912501891611682716304648795293830574671321062170578896198270859720170395133826761034812035345248366636691131537725759638451779722146791626910985378187276848987925566131697506556046936336876388488513879102571996302768123734035699927500289300549012655154653112223908227889065300923830891778200233511545762044567302969279719068818294940963852412871116947823023310341347808414734860670159886164999210134072032645177465050692397892950053326035935573947670751503549132066236534180284010763245499204508679834414414038326782477153414591983587474322828992020284319388553969540973413804962632201508484038517861508276041243515298263732408177705710656811920007226442790682665481344480526689056237336390794740596513791033197806815532049191825928137045222887075253982628294480721811986969705849902673331812810561669125728476670170731256256305289322893678294460181070684293668855681668946585025524018032493224580122041820883947555026505533774814631053601419053004852634122389378938492146751740260878723476020724957339356136414518689236754240575143274247923439488823831563203888437090016283134956967640511726353706915920329796285076679856251147394921179827138095131876967308478909699814658642527251527225719178221799280040091337471644539278083703835011191455427374078526925642280879141351868624685568591952570073363746374820298427517090475363475179329971514717537023338245670801493951858973981293332011454999356873083709233695974765726910942284687819832224592901877042360955706509089121133375730606842880709873277469311837623494187521167381087032498663033435769478604140601920363546085726081078365190798926061355243170972825586496209728272049475206799781173019674177689210971492224420084689668820011297233728629825277749482089050839066235913350346178268622231275158517808780231758014953598913084477802015908077975113699177859273115458301621413524637593879600174225916896571051328052297402207689196766675911995100020916807848271475354436002397167643907801281267397273234553963042363508328438084648564468548797124673442904245578287293123875774202089088777447862614015801444292486200587931765328986032036785803501300721347366926941187733185537991073036001301728404176965459046857921175335107911987550579160913894461484354375437684696471606074790715321211673024012532894037160330531540842668953660647223520571147799805198104147810679001395366632508056342100014678531534926725523115072142697469404579155527171305245131547417382507256499963866721084321103771115197804438144478463494979374429725149447751719271707606913125010843605016373059573139896234512006559594887030608116643270009600472623797900724364973697711865127382801447881439003550761960334274174187231987655117744658811185537550864386608802830060780686716458909538392934636330097170250020941252515787544269716632753109513460999640066314106728860196326273171136934488823430004010247288504869382663710021806114854228287301894247172522103818482485596016905280583473884941525555314062677131441488167245411502781296933265671358105856835192630955029335480895821354372450542510602668533853584563542908814102661907518035259496007895422381194699017664649980211023369449527155212666419082817817779195800300101360145284496487129833150895100007323379304339674428098840058167085932574301076945507253999187975664077579673347555841310194989077142760065454661244323004880100147474917879616152419200578914681027603058308126871353552386046512953972824802292125998907324704077498392410448204915441474505540471385272984200609094732872060223289617842510760000972409733801747856913417913714155876607294553592387583651025942531844856636039520446924210170825011880516601088856073455724116718541745975553863725256141608087466126440181964272828586169903053706554174831344595576592318717646344599981817204355571267484760226856592723201418208080324640393706171380158069362200436264015693370874687249622419508453263155124622915136136499590623681300834885268859226028530847523385848597858591029963011011673573694758497962498159483174299547102373420249232966338076908626359965644938946760286637246103373658238604863968608528673634308938024087007396056640647882405168796379262998066485267965777467029372602346884185345555200012492524434807568912343497747521496618826414108190486956033281303217280105329277057182999176607653078890673436719528785263529856571453123984825568655677951780164839844476283821506370833249359396491863026783897622548350771885280053160461206146868119084025609319645378275490700384200650657473256282787265221810755486093117567977248295988326589227684853419529751647750087806209974795443708392887934955991086663376443924336584790211630877874924743263536800419723590096864911541760558122189790980333302740332592449681889432227155000606758166566082156239725644074750593582018612749096162030334081747355840618718475257231357906938271083220089203488750037945247974808060088120288807173263157592558127543854195218147368289278454428483863974172714072861954846420883365732767040426819673546572097359082105358025247457454660129039516556447394038482850419842839505756177311977850502418973371622739368357774595903663782573791895882662639129950804813631181363168553206942189451683455803361608209957317011502446866427027200277746500072505016009277044446007380286979220288549086479626787048015466187471238822656152415013445073853974812201108535821433603908862789427213201183577866885054912551548415839072374815072097726220340006547629302775265429297138669393863558897620125048259815176054929340847977128919115155730651873380850767283663283013192352983055835279716937333926057402442318791180263840079878735593689871689726035500422019269113785176381260906027418362543325883094381601344839955408562872459986129784304098560716625131238598048014541225787163243010830230605263063461222481192566288499045772229163510520935254542956376975400485320327512909973838363146294899348762039121743597528187388437190581090240153231062219823125538268896429837232235171154072772903146747459062470456428288691673784992632252875988983741073269910659848961812667386136902659748189455829417495400770262181369824684477089052355553738747493247368580983781609459102234240592059258513177607737803943226925139042530339381021600579235933084591175206778491771235848232074919914969936583320630321623750647469149178002197843453046132466315054414418056973162088258844424345721387243105867007973858905392566108171948903692769969025929967452456556656955923559648395760589511799114649807852957535632236626528486232551305552561598028114183530501651423475270836877977651821294937117041744345682997936513069543409931455425345359789140510189708402904269541173635943340088130230631729537928824566294795895073814743673001784265199290827360216031985708626374189672725640156148527158801900196155602743343459712031442055495213148122360805013696328054643684248184996003746640827827794446583367748592156550314537559387990355237824293255692922600471916968645257402007183295967078539723424833569823085015280172871680809117736700068785523566254571349996669002628502075078624472511691551037657865665585089734962050091180053152322251709139246794796260393939524027888118472303882521982351515596817837667308360201359278273314781650145477384934019024835016806961312189434257149510069550867696477465283462619089803793423069966335725418850307531856780255080033018754745958141808806413605180093668981889495787775032756034967113780550265470911173604842548514429143336591432619173021959275739840361762313616755828860010743139046992476172981717488743155845696244869260534327325326483205075074221796873815805367265883203756269039200230714251446686861537554255978131501523346215867674629918452685486085911572120950908373000351646718937817632400844223447932502295441651190472825083241538894289098039183636108428971149148704976817706289462428442474004123069426152048642886466018155966205891639858218291522246400926443468617245524063947079724752046361688250463731503268616946126212572460520598675612960324032668578501319444568532896108721521342543566488688266920647035683609796077689299921069378092604749174966644646642014223470441958154871515569078466304771022792318743166132593502885302691074766282941270590855000346255242833974433599495550229329060535545487998804460494734685363473003880469589503665876479006360609032308836976954157844108721846925425345718196664412112800417789320789254507747581769297462827405893001839421088705725925721548125664977693931283627474824199504645097930543787128088264285939318436748119359140106853248344524427237483366606437807443595118171546505634858820456395107892227527616943192559185002468470082316638708032653411556144328168936193861254082053062144374510110448167644141640346804733531409458845870470355631967755442239732436069944199688786214269025103003100576048485110575022474531984277007594092105918893921061224940438380917031528568717413224081766524159220391865261519018504089351043474213823994747049394943210572739674672426152672669007793104866434033488698609258149522026073991915199268519079550262682434476911915125011922366711746007713292941048288499431540614966349938306645964160448702800856579240203009413632876589446096704865237387747846831546778468922952915591064021290162500200657754130378083648571442155429715904047956668795287646123155022905129990206534950585082237724102962536615413689640977523370808122609816993429668603561791402379069605578821333161021269906044849879169907958842366303616319862789444147801541903036792817676409161751103081680902973967644314207039728722244084208948529151033755458300364487237310852947568028449505216600417953394617756931798676732166677952812024777169221452989592507372160819426299236879778005230219384401500388752764278824334623242648161229429268407035445820092040609899830298940095681273985071790290736876501586236474914812000941506834232825208243218362281407407852581667876131834556587571399016031578081472330962608449337704690343455702370446637630943310512036196085398563729012757877044114701903908641017541868574709943531768583412379537622099206783858766794335130187393834475333161545214363105571066897066155267769922188309144575953097555699902389815182578691557701477861655089776872467312675332149855678084624111863595963005825675705490172384751125174593941103014830938706329247017828933661848768949247438483573486763072989737666949612418340090951146414392490195330280823992878147982790918458428526391019246393767126800601690692914551842258333311892468910761516103364889026480835705515837870142659717730831872480191232128041650658507962326538527247510601006064293583241218216426888237027008913311335025790505825823139700246824687724984816256788455605213431075686008668110318314312250538696289396309759996142431034731374222633814450921070399116118222210733117730851208001810654112485734436639360444176656366685964083709155492017076116411242269655348220265768146236228173489242198113009780050351195305416647758882839134361356422063614904412556636518238919681833652412923137725882529830291506641951999483774112176079914057314569234974581114548819152066526352196477344620508181553388125816132460150978813968397850407515904179598042495678226086250107200984921428102626312956133906130482406563121846841048959656734157995731859939131069460382853744914073988448760529018074797456246264420211163856408478329765130461518109494004682588534205556528249642655953906341582526621679217711553925218716800548747256263116445140957591540360789595328301209744978571796528266666114603481059913828229785377545317475760893685278639942626863494031717445899090911720933424961858204891182006888901488063757094023955084205137312076039130991897782490501868104789688462923973475509706818182247992483533357056925990773585862354977448460961674827365495185911055305661572155039013034804627524575470923582406649390579971641065779883972342798191898406686452976533266006751230900039070122097546605344198072502659056862826265563952249461306858539371163482144422408686126386827455941232969350738247706189135216645564436564409686520380912308127938563783254437209067600649354681268825684809818016667809966533400256973324588527421896490422996230877142343559654734336016815707369705199983142371589062676856233706330644060172813841243575646091393567876449814586627594420280659787537445602541876406125796925326187862222294857653933971175728356838516854601956944661558747175302593885948080898041459189243867439790105171900529282157231505987971205143619227640112224532398746434333419195041792595601182854099962519757052946051515183921437777459761022961037688726807651752078348461787457415790877079186096853641270988942494153198391826377062872191601806573281579934715681214446416497826377084364337421835154235056053743974853195830243036099646074705742164408237237731375432436904075482562512530904611517904811391093941928149235347218356737616387394503425438986337345728163905213410318015017354588731430583919466527720714919356514395062319305961637566578265004477867740557573103190631467101304688716612059478099267650912749905735663062736084663972524026607926454685061682969286119257518058932960359557958471496177958637688324329702908992460733865869098488283243416363206377789768282495524654822313754415362495171560400805378849373999929119904204852876464758567173130439486742826154932207180749877786568051689877781540012863549945734442041813573592402977046804661790514733960078467498144842699326626806670919071477459881420695973986382853494544814816973101506266420724543008708283446183068250170514080292610526867953592341748412584797027376710698300422477873245970467257656858683261286846683162389009270326329638581809586047674328291927496291033062466936687758913498685574144427751538430710664817875024358353900784688909694695280655661551678194582375486184196046507189580811035713509959356289214979534417213998918941548519751614377562638412846507422867417252942443213078172123456811231907002051036944333706659905314883685259351145026249786651088308544324061978136875571451145521675376023910974331992078011957777386718711004449530858033510700032133388139002819372387193360701431464812941286634059715568436113889409114022110148903876804961600928564750067641354587166896492096069992724306953346975368162972349814808914402032048209306141128748851929610052302201853334622902942432271431352960402942883609115503044903736577874459218634700765582212499162538786581841971072740231029778825977866156499302296729913069120018720185376635212073583944749839748820691401883083507224314338866981716198495091335275342392912535574551109766318269527423941471051619190211484267306427663727085846730925008369209472207278207226607375473059221949869882010622381723466631602327294991830289919304030798590880321988626280765933717918594864991676364402893470777257972121881434135970737306534599605302501614052486583390786845707771677532560342260616051745133450422432251680128180845879831095305932532812171596291963961025962205038608176768481241777151429252078338959428446917697410450831513218868007890042491364547419548733988746830821391345412914336327716136272273116804048545297889055713535365763457478244966120991346995297316653714673555154042928409495297613331099381085024743114028785295414279698797270282613933780802879470531923378761750050676575601423602578989258369222972283565876162157193022528716101720883730717042400857656584413305742099074556951056662632877289207430375766158732444886463600145245495153021443437801537192653467561409906311833033846300123206707506608588423496555644007571513195288947917186723739723831467657088215600566930755465560700994768557590578103066257517193791628026155943556340626684808463316438351922496955991016422994628602559080553418445971603902575221378531483590561489078669411271461936391126291662461541418626093546816152060125835921794923752726523641860992240691188704613209685173428055416742906027733284418378399900236796538231594412502624894992503086557738962878817001870177604162519398281664452985187207912727520930079155968468466784070584332840652118556917844771960132970364635335729235727394568259511469521594802585741413764936469315513967750165240312728764650223790581725563462972650254615870187809715894208541229463368937862304077665376001965623100390871720780688352678950327992914880037928916360722411354014672912636248556619326348662658955582267245937314826727617207616337609196559378022115409439061837345383877021542293068341691142896331102124843202116962678045377475763781496554665352159186468009470918561408217730683473760913523957965844920911611217885751126751514786918603098121304644093015456134597607479515318857080927692106078621744278975720457608949019235217295507758369146138627476589002350164651940915970413024347489913235101073954105316835161682164809139519465972882769016965669380535458637856524302243440259409351049531085008980539712771971085593960470255056260273385075595170566700822536434562035645320951341520512959269903721541802758548487805909503217137168694622764271329103926608347587272008344680810874576690323734127409564440845481674594464356217805317848556465852223343604085258897799649451021808944433673488406518017150108429212161777439860149513702517343278354035672442913070132202851632784365325962840011953285418601546596724655889580561814886468516706055284615327802270952009195893561803922378436880905589102621829821368603099053544230374095763091943108623030946959783454345110988009851594244104788208212118914209404385307416843144149829171819803754795516912695508520449550746452459511676686402197861159950099994946441424742405741500490539913566793812654336322581904724605493644018737266787086633638419588608089712917158713002521671107921174841057606330961264094890991756563836184017808232025060735354246385779614374134510870696036959781703100705615129482442933547214288582941576432363113304424983460494473438918617952205326882516343641990131725393955468477193489266822392647516809253171544155970586883357945072942780084281602979705817440666459153808151822002605779377921621495409371796394500937432685179742283401945678396268478651005917966005728650545858222067762150307373044867922660482425798047061553167131454938048210010554641208319154477410336187038320570082466426139322566616118902466761521034848541681810427050671483888829275984476709900702568112465286962985662302817795074227179621911861454365037409849135143166954341524629398597703733806057134033721218982948727840447217350399808545695366325684246169407431723681290973782719057739705081310005759193840053980925117598087508915934940838513292189955193834161676570144282396318850876430771274271457686743032897960728290912932000234000101165703004455275732021992695123879612933975067774486346608166379867641714970620951466365228920908652562123160500093531730102093979232777414262315945540553104980042039417271170773419385980936955227542533715502849878922645350028513697479013053432155838344772254680219852649038848754036890481606516041871547632707776507972042674999617651103118593323538498959198016598276790416709684567467126002694777863195856100881073058692528267236538381519068826681436642459477682691456873172454712307868355410175742694581443875153846491833669492046616966060348718767051318037077331569035925286865131358969688814612658725846531079308190359646000071926833890049089553036793720878605977170378458868428381975966927930485056645195896900832596173401897490132508165706727678689804677328826460877921279785839627360604608053875510186332321967889122498730736652037515580339915256388314078317728190854051903732303222837890287886118636737799034872651026422866878887876616075412136697263384766687390849902749948767523735634566540445524477133751563848186882320935180242771086716404273964398087568457214652432276187197496668071279473112377543994791803783672009052861270633830614462285873588065196234729051657390508688659519150940456264036181966259314768621882477193454697813392752268044819012554100860866138161596675625076206505809855103264422614749479302768390693226385326232320098054444938328544983361732096758769345298669527102589031100580579895996494911041919360596449283574502133937821890363093878187217253593903883096049018913512579213632329070482172653240059711988747270830385806718606645211876724366887121404123985529211021096856345996731330194074257086956079654525320210448815016526610893361232773799729683284482060223862936179391026487212401197954927682188867219548403280600310538037212603540737550553922172832568863654477987344337987568361292539535792235467125482909645948639601603016982378058597493101345349000712956391687475489514072190424628648115320435450720485705207246655300804000817039075847214396542744634059210843052585482843600562851128887920955679584288925665632235345135964041268978609298335261763400603606800847138347933316655737490332877971393410000931900691451680872010923901716216887317778282653687707133146092980190602472740231732288377932914963245250872585959065815276830151590915003472225370129454154083711105092629367756598538684202203849186015700517171450632621674809731340430984605908781678013751561915380667645310518504108287112327244048521718951614428085605827854757480917425038010983192071156993659804103839493665841621114597992925173454599464586612785367870857482239746298410782917280985067048738133919643615850697087980844261606728255433752208839347846714390090904388754410979870021381432817823026868190535979554330455082622121703425996595121785079971062038080932695449085463593113748796286894705653080253931808743646916720157875176709020101786058004060595700117305936098002424859417503932433663616694027256960776651694766226647859224662325231601301843214460526571940355373096516061477577370068747052831384889945698900225470653984907746844382892402578697737649385263209090129396907791313986633455871144644360959575187139542214797558622814903214432553432148865813697009397260022866080703895498225225245732708147802416264860373648086501140623544740065332024565876182575933530070767075894578045174650200652630155271708867344848659372888831230669861291437904692848132402265894936851855994168413930114479574472245300336387976356676907423434602298707805112738226481464950961461857831654785280437854132894123936125223512785512770626075935322311541715523862722946488488357684860201100367661094378793773978519114847357953594015863726458172873212144648718823331117026387651545281416982492982278444782352234366378320487750858740966768308003686684492786110379227045075329106208606680146944652693679370932227908671225700429634122843938269835810101065604600854244287467665212137606148423841913725370755249379707873641618764676164891397030154983329507682871921923034609790125499036427526596364526137532240104324863991089021220360203718896012013188463126278660814943124856554810220751571393960997821968466707351428943993949574015248136815914315331742209907323324626190646264584452054254151139726525243876393330611247046758919125885886706709600391411291462951910468771411976062905067269752788190055627487387061329454554125699409723645718583291430254030806715791481627256012400917034800286915476265481863096811791419710288750513705624980580041016090357721624432217965726685660451959629385765813983624669258773638227667003505582137636749435069856091890115063677672086564082039178136704442738961626143150645423764687352929375319601088501066713438091020244012649421755097587379268152225655255952512339810764312309230236345084601698169157766112986964194999972314621209591628678068439281466491594185982882594797570168887850138718413296349102642824877509257999797697334332656767736058812818013582342870846823921776993792412863642592310561099952698828525272372363175171116254824267001132189038390808163684317855645096665670455781582470610063836570774185554931251856450733083289944379831811640073708280975048839529761425198270262553476470215790289211866329435590108824761636280353159684790259606641271295243384786082169624774480017009220337282888013884372635943977305026566874224865454784702442530955290003578777665271463214272094816113698018302468855968291668151972823957019668249849062948892503972748740838237894118838614511174090171357523857097308869416094559010446125734279261340396916386461684294205275464653630381201365573921938973727151355198023002476876849529672822026212378126959233868271409659272779904606871703426393064693497980962268123629240326285935595126280731798551624433519569662973717993949038253165265628921659734111968199965968620530705191658953516873447239863015385395927187078255871379705089042280208294386871880682603003299256499638009517822726158163236965093485842651080460015304226480223141501937601048387111162941584442253238711395922196608080947847102739739728549997361416080443256757152430702709086527077307419819528817662983033937256907560720660326496820520450718717381891827610999565091232830152449705668279519888644847365385744931374168049720597981868437432005293869927466834451897907728052901825503907608188840277168266364260152677177117091871347716163750229922813057163693681683159704089306245253456257944169748927921981532547257913134886455907713125217461659571150357618212011234143396831644834516235120707921448557195303684816367256878896254104724219320690132050803504267211199088027722956579087065914166580215111986426319060837910889815028620900930356018995248941804973319528668345126787392927305390259223952312649536502446073701513904950483972997303178004772831989976561605228307356908437099961955550511971600462735743641036011875748236898102755355673392473003385960260762625154118801072465218259846874495978704587581726607314537389120533938606352098527882882945069083009462372879600643944482251944705433823249605892918532936378625709974497919784123680205779915720494729111894939820287094265677576943769740605252252183603120156943206262460369364611566740541629954884613301741010471798316822631159536782023209207944720347049628240823581286665020416893932698620746662347780201194171722125426292261683981758408144358424473888941025286638711566507689441901568739378943966531474656768866768797972543810943372722425605898367833977152779819290061166926043685464297012512505065681917240346827665812604198761952940182091517535372850185389509503264965180725656480266712543500452002317100888781335203254809942862157585328427033815076251073344217301964567335487604702168946958648887395992813023414826275038379545950137613830762716600060239747364873643381924178690139966973290054300859932739474511042293022816833769798912285115476895200483948453715243821963655851010796680292458668907096659360201599454207441891777582492760698272844562652976786624298794633359453790223735218679437165851833973318967787382139284199977783768568376128505083719005845457448080518984165319110619240125520807707962233258172026775671104787050053644908533092630187605817331100141443740551359856287004166975094553952524130341284807161527057221647246975624873836444722634909253075508503257239980632097687417725206513739965731649794957899921211962650993521653642649053756257699140148514065822813614485053831500742470566903444395741858689269606682068894293195213119444306492922652746249420426759856221391353062001915449072201553793127428289001831447947257956651328162532325318156113158970647415429171149722509500830805267457631394049941405612412167950992251165632415890471567526929441549467485732928713156627350544358036053016391528520238761214397689493713178317377732970435173794960963512630534048114015570211480288484656040298932521332967544739532665358843510547439189909450348884828726902213321821879119489226549346577332752659997932128813145347132550015005531375086527017003349503067919264178860962343712593914457914234193698911071702374543151697031173587076309422676548707027952085465465761419909892741564022212916617504981096449756089912470301612916074955230779530432294683964024805644973479021545368891734530345164697509109609658695612766370730050234988060651635164949361825375167515873317335244317284420960809528920481387579946147643293847201834798282539684878729555074443797639385141665862107589337921114954595538330989652146430134822401425953672420751171160982180296728692224524392175135089857973976574349329316149725618192995125899562176847095876124813371815625491139956454199787486644396752463394456802082011780797870712312982291396913108230592027974807847551502141005749843378230813972404127756395287348887572480227367738156411102697646574460352392287460127174614643256627271722326448555556673543325648421880930482010484608198494982392386312897263738378610595780835224574804080618051924196884546674355548998282729247220608273586627283104972963222778569758927498318037163307126935551076567926736999954453005544687709420898700663222709584546419706069754132869339916184063036863223367894796735976186276733927733859863711384075664906735231148764445480304103752180330240521170007208203447791302770388714938240885973980619399630956718070388285245652059285904830683929516282761395327583045257492778431468645268411482314660372009894388858910048454240263017930083382666213001726564875889246887020438831762759749135122553803512371398683964819367349463393466841655191400949496698432643148274905401891275251714920597289159835104003140153146871429093724176980383148344046500586701283442520693526601414922844768105510519073748857142732587903245493686631752238193995744338317643808539096412544089383258134052751213202028765748044240730342569993440523915655951061181386768751242356470100115257272743089930488377486975945685009426533560844468036666126264290103702038415817887316240744213015005750342243482699570533018509237976652873842081439503075878369409632815973866200536604872655067884209929764780170170278635558370881909742980489663090616604850842867923601043848099816592880449789969318536066651384513761649629320530177563146414608831386479729588927197067973185547900740215694431268737224578971635916728254055629700642312250526071855756666953988451672518981762788969873747641189014056598118435625884319416456556002708744337868910044367162087186576161614286824025065075109419797391147360341095938768822893051387133943749069721385907939704634454916990646532304234246812607155072655761550176311517383128974001313883880052485828316174052704013861253250550217294057465437531110067687049289127584185006984393317504387475516076118057639341644708118494995624213952921263654488340901194805837322727409879943355325073847615316170885541264166755170263564130184237099732613908950789434160202749093779530051044919690637968210502362995409052274899530649871526665816325596982881576283673150816788864985371196421343355666891980317282911422413821079544667250972605771021980111696919672703976841011391448658911987951649166462108966670162253278619625957424438702389784204181632434208771326309821457453088955001365858095212711255970213381397100559474518111016098993176102127437455003721573599910427172574534809575012142962630926270377875421010243321614903637397078928268574636526739444588108059806489167574677594561294574755369189706927949068720494729257012163353339808802866975192809575066260801444194171111731739703416198921967286574797464293774163079906613212901212017508724004033454309281141753549839038791516543743264981536672398831348599514176165369116011721524118037538440314032122372762245702535350593525029781499297720497893857796805962718772118528826853049637326771153639578459122853801576888994400018873766669954572650251791506073042030404166361820926471506974444935407480316536579269999709876056474402194674772551233562290220728700412176237754292987556840276293560141787273633688130215752671147123664436145685104303737888171600686610548249028292221195756728024767582944275569236643448386747582040947481193369820072306882406103890576567655163381178954700330149370247875030454813973568277656929860026884343686516834167844540673341783455525833375759750270049386340569721054708983334557873236886177255669813339974171128823879441457840578240118917295245252054632944955667795381436384423040241974735931429192180846066543311066233658992076545616249113985104062886337380302739860454422065268427687510886319431692160859506563019565689302922606534713229044963388078865118420748378102860569852733034442017478075291921711217464522829815017068118724603050521662412170116957748422270916091735003461362642203683642306217220944446160547731697775611394718170228445149476495039147678022583608880154709441707454665352156760035528411395675243679283239127162130187580860551554296048375653365177605310218615880886826600465329464427462689232440684637130631952026851260489471529576564504941542687278891696360067453087865971295069890346436623751131628784391082459354830333757943527632462984883085309812561996247859249769299537710482182377028988998183260719866123099673619383190016518801468648043084652570376667085327757232196601348080657506031004696424391148737053167484577557608402450201653348613621581804698347030095510460041120050581835001886614540123163761707181321029598037662001456241261178305582375982146625979597538974381474096027122425476597149035331549130827401721835960447618089392312536226781657881218665035455521402824375466512818903039119981593226721208325462750854893497794040290648819367343613003902390214215887919062070643143006635185548614156102250695885820967388097891953879344136532348998678615992304271656839319713764719622970397914531259174790302640192701658195886595425664037609065787743714995359517465797348432452858999926606239579851430855128702182654668075755967934538264553695871445354000239244991395897405076710720505197482223422399715283696522526454968642295884120097371456668688277660159511877272259145613156684674980299881929717774139131841640098257297074773933670832118421829494436207716353234311352103099219756681238226043407359605440800197505234233680585039670596367939477584666617805256086397264983431922042777678005864185598663812408863116022497678263098886628774982752309330249757222617815926288624698121905159550186799497923052531798705549487960173558044009161709855956005595140143339005544586518842242342400516763061735641639672440712535932661653651231898620495207158001559867296500368981766484763022915903337949246147392004101983031598976502532892565204927993895506106419326789258531139132548702318443136232865153312195269272362158896144827435198165119345376386256142540305839717655674661253080750833055628592412113875066508687834844132645695039110723207470178420217775702243772223111745584429819059827989463057279268120754507405529422803921262388298040777703253769338274349282419790957362378468877037560530375255587307768914453662782476718205160652609038186900493653888013173284184864871390816774622660189159521172647618607873008648135044577211879178013241276216759225616733217208999201982453249187183403878170952333366528968320765340520352653869123706681954055287008285557487745595552842273308218048506119798583298921577452676273346777124387040076189771142404366472602121114149703135809905336182864940015003738401030700224736455384129658231944640459715863724497844851557636909481312619050096223732688220866883217256033231070198571587730111806144516834774849704462515602751495626412369726131542301636705897584613062440369205263936075107946666258600528159066152940830085517712110644184473302862837306355544198701056121939571673761657445455536953645205382689077330947318012068089668236250905772586892523252139147337824901668476729992281197945110007904089344431327829182156987323101342856608122077673722716307938209365793062765193761756146375267048275151539925740751222867576830003360934942916191649704261403026073163530779263511608118805954333075904726071968053580102165951379524166998761536652318005977844866049214624103641442465087826504460613952630701016912416378949844330275387992922200380991054040276969388536210997200960665794101479437106808248166017966458346844807688442535516181286240933349597195655622142386762028926029641248694172260283219976253953938946663190482235733518736881455066823083906381501801622621445575926966043441394197528721461470990203062848272244951395084271633547779766987651287126470523116487333157450734412881612022883979887066732203638878077223953535204580487352786223901511474768958705643810917753234476956371025397969634178912884690404441706148977927905625255041614795727958342955823363159967030893004286589295645047271906418349576157271457205287009970495208758611539877680242400814741782698902685200056130676523885149521522262972006060186315824921561001273207764646800654645420707807969325947459349293069628194056830745035776849266756311965754578334489049936029378006952813116520232990297872187717967090139291945478329542395096399446154228873223066804337930958935667417285049671474480690666884639568650147096904124574624153319107727053944513382464672074936320210580422753790084535267433807487153909818157483187528179017234295008910037151396222120764443266662961482044123630638208821780675586599175776532288662563865272966269313675652910416886637737489579696200450136443346391893387449004081344348605075942908218735364156479102904735734113025803490796307129225599966494512325943982502781485256704737277223208987565968627497466749255275104611304140473648107803662129294876542959491068759571340875847338022109668814570915455737732397144681318631786005534121195177096136901969374135332632834526224526277508480713983185217291938918008727693490336774879609039330158952488887364292169743617819868688957987903493177580319761082278397179674013547864550508610999448005827003624146903211091876622291097761190173887662571010237744860298292200287691988489303846675676292116163864311718759305329364384824452081752536139528930093313494613256837610971702397962193875777966968112221528460609638157936757426491643338495309589550147004467268043816438615359247808919131045074226775507219353259188100387759529907041360176214840524457275951213122995891373605125782318018815499717636722226280307951563685840369182804181474827743987760296137161548800970373542941083244939695941808091116881931574561230457240966751627650914355921030575838478644354717795905727151140767578811015325298658524532375782526549404109000477215292462195271930348083307668748607303671810377956571057428364165142154794927672583733740385119872757559468429983741934788886555539836717835039362441656680347896950145737097946192309084071334252874744824864625671598060891901675521144097734266302056078914681060919711677789916715195727904872815894846721724165669393557371471666584014076149071883310055614229599256132086225618578624201098719594093908589795361878768402243795895731455389652056704264149553049238972041283181503350680985378743953238138841113347655061596007914919739151098882099087689689806541330009705710800517135764176998094783086897112313887429672572767701762285585147562133565254978096017780794317057298405556315135313502447800354460836832240754783795293243225751727885045898326152635096423449339802584403238797967582537367797223903091603872227240032803276576118224356059558983075594550399557572019522337082544612334747426733620082106960932672160632700176453839316748719168788168483737802862100678319223794957692685932469597946610754936207601018454807998524195317184173026140771761098462691953941639109507304301952556870283858203771520027455093792517257962705773120030802079150027492568981015684588846598467535854780939336998001146582569002277937225741827832971830394757743009193825467516340976290796935929223613221636175835899022487119695735514659513761647295608993773847088003363726824172213471379434248001223700973361238139178121250042452371504456333454067324595542711351685495205423138975383062203027514037962655262247739756451341019725378920264705481425184469683365911615131728905858220554820843709826364353026903925623823649434607288898932583093697112346700906101551586357961080341434186634380835899895944772692411399043629280078748228904430395111497550888636252854736431445264587236486188960926616094431173426245903782160846135824312399438485970828561274765293558759591963157802595436761724730209314019385139260902502736616798819095205892979322774860938164150601788047706836420194912187094604540274184790757618857699133330398249859952511678036722405903484381740754430351648515733772631119097016703535830279553656085555423188668592956778952342455963278598105009845062872455236524547199237913988645551982079402264019022874271686937036265728242569376033787094214625670785950046387165045082695385231935856360480845306124888578642504883473004933201442990705913446665841534696872687807722960920074366948201983362794291498320988774684298485190752278474996387629080482409091878715647688891501097451863615202046448562526174967069204974270511280288971971938067920908568515075988268743576046022344128178213664105731829896208265994964841584999583505109819147817711933705070513983916675401459407175569657614518327253048636506871680864342955911379235134801257405193723555125288875490497622013257098170219311566021603623187587289609392089502514097359720283681424021310868811355520584987281699736538018845248577549883893274069205309488730917904752911989041935640328437788452648829572396639778326922790323389974175636047754190300607208906014007684335613895712853732757085473462509266658463872733081622474313011480057579870873228518480807957655292977846447396370414748973874960986309660284369384691942485895572232752804630924657362684459592950882102297317859549574660015200275387077397569910046140006550680212723019810256674704948998931609635122387423819979663523315992709744123693808287923558260783523843928731474742157271645327273321351196355079592031454272412002350188029004476234461597241212844768202024212374246909038085793724825099717731444196302077862129497454913246906201467645830406577057441257204572658629170075981952084218330862667147500235206291312690489059185254991830549423613633602566047696468280450826252289636033342004638732045157817820600555691432791629088707276777535258744702909415273694995269243606104319133300134711466331936494671113955214793990688284972891000712480462526638429783048773088620726618228612570557186341909968489983795689201438171409014898092146678215975425978243043315216402108570487135427327236595616427278595022453364877834505546696253337586095533228973609583915397667430945207834301495799947171013398407893080416370577828027122731309262470624654257862848411733110658551638316232535343855153572087070567789342093669326126319142928220215573904717990412892872856462196460157690084918669382874467775063922201362124497653345018416828686174085409392252039146944728506288598485955124170847333387779684787289052588899430974124249792077929668259858864266433909137024152856777617550642586374283016262333002264712050267721434036593555148350982215716952376692826781355329136429095829093538842826838000033390779485938953029726614473550630162057180197446123584515286887329092761214173537350199545410219740169137285527699535708004490470334654242966371553645538807172593314284726891781267214107923438823816652108367466709274861863910146923428301752375724074378076072326061563872401149881003531052445342443273305680294709041099677430356918105309240772089585540234466933322498467244693051258797367194447480716792353042911979040224400313290003777339887982978090990156675321338166313046548930128684461215543446457812260516843288415240101174820539163634512187830881089406540858210041152273030543514671245685353858461183869692576045564933437199944458090823283422502052681989897624521034428976514883390517895709884263675118932137234985575998890062284393509433505143796221987136859270770379596485649869291554911472701324242283819074665316711523017634990392806859823271879563933489143335911462081254449515716397750492230066970144031761783877622364128968207307716241788492017342083089886628816241340312824423594753597742420691422606569437850867002359943231887170514855371805259928938543351427756188139688210463650729662861769165342786782997110682764146677269427637151707648789571339703201446274090630239313218946355352701894003173826307080381503982504012068240585317568764281387108887007832799658353722899389190129787480509946641288413411580501246746919985423974134962729953551930535093226350057938751800695968154432380739515376054207806261711537866192264418310331430071731742598851661805041065798140377106916912305243144230428234679510149236460406556342384685964266776588388297311007879179171760987853302235253487892240444688263878178806034469019571239678232015747384942355235446646302380304015431531582094802333778337626905127145120716893248781686036908316315826949253118982407130092246032765772416476659487347889156345778449522928575453103252115598998463479791867935858828948731335345066188816427145065919163864882241231698740826007328049820333344925221487562163344958652193865313867371978862009151224527794184899527427160316943772509458166734192190776424821541020872462975656607141503022497553236401661642667918050076090100724992085645038783369765764827413625288800213896766179646719538484758490172435252218282228579632832603296585203169693195580198221878038884017688973988219719448583615989048664747897788544656695900780629148050580095219339229398634652493318332160496101499462994530749446456800452504595427152133056283444501041877025506613794181360419665899672449276295423423979317714426688882912744743299451951946677937169146893638972441597045278448859639241048528969474238964923348317101056743840611403440623173825957264839929513037098246702064227821253810358575919749932321643685114328406459644149202199360913207777293243977044447913469642153315163238321974380820626456158326084677948579197700653832142341910266434120237376110543572545997866433357043895818579643628526809742789720209153864296915378639028863703203261412074861663050429679631825111803632831632735882855717411653644080210072790009567740402935289761377702852902128976307467942117429806089583907084415840550566719105972025324112278098110173341608549666725223081786124894651602490878376725257602968214313750192816417767710152387561543672987789171503026072444486997006819084375337741505863593535872102531614426780642371308028347886828817944256235037873027299074741659500725689650907186981360820826352501997514718642047145595054984407957961345361200140666703679283501826501230781817991898779673725958769707244506580238639716883555392486253776023759639866581038050989522436642917816681043772064316112960165716205149101986580671366480829612449956862023264554762497799728279631354385399255523393205703264693215335741096530558044865023840685052041760817871562920431137991428706311709081552888057506731545110150116541962856933504572735864964611716102817467072142756886860392311163748940009585914538983142663060304302300501538590741934708094145433040722218101325269689815216108109452088946539174279482315219134692190094654370109234669712301866523359986594756808892011609084052417643188927062084206983112291628899856420668466470746362475137064220917480387682181772064088351671767486690249950104648310759311547055564635088377123087065756252133195556386961853309454385760912862755877264844420840964167673025716267507411173382702801122899208185778097862429322584102098986650331732627170417150685166337508137441407966612992665568534288393365662047126380821110636962033466185303668580036189423498532977952953089557698827700061429613923028170340540286243717943129888278308109450609062722647012250009387682830227528202287077621012574383483468407952875870067656294725116030105060227273024093431083969624428942231277706166853863181779761868413783579233735326980600873301867236101569939002460302706986368091818819996252474910891031149335766978913335858558046676522339302372627746909077675787265301979069443168517046436068840861573225870737444165499459632333894993568070203955052344576791574125165867700981958630469180914932886972022743643111534312843689928820888619016036204830373238577638416910675855679718756115803272484296784572217883861264727589368108577455023315132780701526246854061881672945057980030258227183915739638556074638780481425443350335507610366219872192253126496077014230395909414164119797346739649437474303248276279863997127450811710118941096900124792691427717404329251500027239602502471891522483209227888056685461459707463838988968245803012512980133808998617041370133201434553243545871260560700938347837757577270494364299800945528110503539192346461768359782892522202057893028362265264398088716027495769730107070055627770080230000155173417522587240141551562818300485258883455168179258689451706191464507803559691948765775560511554600180052353300388349654309536156633895873901306757350902349170801141212447732178696290568533260710455918937848948233914323112180292431692208139045919595738501747166769037453253555853176928139125447878338629144089682127127121892145901259930894579603285171769394890457307263512156306490657436917357579606986734726675493613475883321431840758722557334737383611383270481082364193045953962191900523346446788867735870817600889508136404913486660983626628492938373054076221997265340100411726443163297765103938979872683534858207791468395721498207919405092354832236441694585634102400074419548426853398405599590210748923258374736607952417672285557644220349166158533303142426479255115469374473884013106694749321568632619562561465105736305585792010941055676765008083945708300396506680752013798905221684332645083537088958396937862007037209229025745800268130142984894250723932465811636772325680658700520914410300311320335358494330486581750245671918037497399705941440825078346804460927000567631434361565330988092733079681547222749525446835863977096346257666055048852317094019140349447181696028268499001948066514604002008089402625111336776792666297609155326262512753664083649870012962682394127203768782524024691584412861998197203388702093440765896976016936516275812623886403870661285537622343072052950015853893612383339911714999476158933293689689566962805021703023627522458038981984084906625432810926037061358272351508869453381685179150433920623151148913109345332726202295451397972456916809468485727138358245429723850228149620098654606163374365719907745596742661008806504459921187377835211422555815461849316062447526901008769521119555001131836592415787353471847128952050518762201361343376156352334824325660904724372433202570000718575375737591286365418051778761216374624890919858231792474335195334717234277287889895183419014039264705661183951172976304174568172693375330547894008963155977348651599098275743759432321690162255107282012395085623150292382196879192497513936744211648797147799564917749779552986630617912815598740511957958551320209437666613374561874324146138424665428131750506709763826735483695152329718917146865118978906366344330511815933916299156643611491512542617997506528551591183049951293099587793425991009100178622359321828945897469243051708477368418679203422107806272487659997403384797651617498467031315714063040109982189692449510337112867590172391534517448692198079974880719364093305717810863233845657113003198246465943308079687964001591248484348592220019124666392568719394004169624490794682648032521116021429963049727959170177112237525853582121045283672572441221053611115245096751661700580230565303282888413433420587060070539178603839194054317854632011653712920004824388030484863127878298389738410014312038887071432265114903323124694995952297301939141488127914573721788934190118312334296340404411191469906094731817520003034623069017245341765633835227219892961696563349748064500287705283786331136159587268510265088545740987373618356741735861808708870752033803570519763357225304631231693608032343673800429291486021662820607868011014673228871680658037329116635650787613850616250023854240584653046238445264805145450885969307896176319047326195633477591762633392273292640270307066495534972092199422650205869591901239885849522988527789771641460217570712980635005000844583725378413261434116485858614113729964076918336890200468262820079754746466417981569463768214174421730389885438955746126021669959599243673346787842329250790364034650485530084707072020532756305893337435330065959035028228362038681743286767931580239113748753535806050430986808339435645443409866752703000940326626998030865414633735792791839782915067591779698193595907887378278916135138754599809078247914003534468743636224119498356830403680893729406731567491956922490542829736345738095181328401459182048610763664214079967818612173734534562560773324617616688078708766082964768590532056118079275597002129733670028242103143136682069068466374465736935265814461680649527410033888470828256700759377353251692665218682336610024115103059624947667325090880706595289430444719223134794753177240118997615228804452873144893323665220694892666284330842717990717096218230597269564414492158283066398639272576997277092872893130467040382812945352027665539668256039259830541021477893495810406057322356356179986031610227244813765624091229828640964792043369098369875173162659385925666124342999547771557882553139550649162811958753496256330405248610469952385554804292518585366882584813318215785959266615256540416046966621763971608883938358961431038608416319835481596968606090136744616238602878634019694763589707145087642625051030949647723371903217165847005118431672359310671737592840111856491787984465377419703419943751774448264877741304051721597502410053158755577876195211242335121779110523360305716969493718388909653985414427243877037218831779251386890214183140111673792117488022636377393010307453355571632931014156738976167603044781006375361298210654292117845255922430737539885011584930536644638707725219859498605177967698592604721945018919598572544211710668985339955486205171536855101492949950415173314156996455023328445358110125486728468218388117389145614702793745070529008994023853218501122920587392479535690350140323396622791172594501585837817775970454963277393948059421034294428070281577325446861641497654710806069489441763869458176425222974803871972040597159496551589114040031986967593047332307177660086791959840547565950083585698504917031120727253629316134213279233204239007001434286877819901758712983982932258234503493502636219249312384127139377862372503191654782320904602918078541083856212070895980614350603768549380207196468766586531583433983608508666386301477317578340108330868152072818089762931160096462977373885466913568262488124868785442556887509706774928883944989350651416112124974784128910936596654508595650978584280960845140532972540987062064656717340725736913410761506940736973071084739842265140402016756693729173573845540035753532453643005458139626535040666248487839227552473923218407363290581478070799729110705123215085169801139228570001063975698508363563176283613302961605869261627402850183361224086530042798648903402754280963736266128359425924579919146628473042730205436669747494154212741700842073841779069655778223374851737882355066994023675976704521817683514159683434182044318745820471220029984532041893571712030224248951456392391382774522563874146221587686636798630367918629622305459679847138830062642055517731011986632308927408826162021120411548626294017686574245619823360547718388871632538499138894294242495176535157786127099690087746670403134581296268985657744321416169142747290314701994558545082048308508823549003648540944796167391596641457295416265107504584940701828075665298674781387069524869888039412374187783218709284512771191526206653722069834996951283342467332894089865213014470178747291563323846027586405882819752782753645313678276211189918522678252647851387480747908375577867363864938498388969931823599293544338960433222353981467277591191576264401024302031704340102498378345062149446692386332815435215178511316323645873975754850826719779995624937332363883384964976685864373554693003495841989959234296442384036300220130134593181404390374608198206905973546840500143328169787152636389091538079167425741085566639508378969565005837073075414843118038128435538447588545579449244577783910577231719634331749833077033686652713043067166114661447377917460408694088826707182193512393765489934926817651113378624845908324565225565128809371205377225107335797953684493939743887833649381028713392414177552460978410077861579962104771222179385514127566167909677477851224044182452330803667301989349392296266646676813276080073112396665224469823478527988859876481193575417521000107735681166316575860108195710971745001999517475186094428054228777249887484949663606624429463716802904315033642109598306050134915286766206954545673997202271772988668344925608634709596586438902770988596488324187711393265277519505378350671822942429786486214815092520962801914478725120138060585173302719990432939334399485446529752818290222461536887655384311632495284179452833614577439071585838719241254131798365999766813976079969637334429134463317601170675541705306436581997907779524130612991236112552116423550838255793160537258879126126093598944049011769724029868112318472942041069138963135010481402644655767818854950952599247615295327836727312740444460736764628467330836832168310780787244581247959961231252793353840198260188607625273444722007315777154926863531209695826448238042169304698420420350505597670091081919989235666668361058400108240564001364968133377936523331071150174846081611987482223793777195152542577061122098817779662364192679830434496748376832957452603842741602708177743412120824718625416925121187433006713408737484149088784421818876883014748172313658638015166087171593710394516408271321323249690507028052688348821282305891049999074829666480671405607842792387065225265696700603778642695072014085104161187943724038473701302603533760887508343568848781018378704591653901211030059243822504558502008469239691080201494498911044969390445555315654323381667239974674740673394594776611705965363497143150205997404485998437169084025539790174300843419028639533713915171302578168468559303158335833917029012210754079478263357450627202824257097749076730686863583431486018127171044267339165789074089189402861058294801926793190311836287074733081823285109734028814308136462915663218514287984757443972641568319202447145233249827303198132903758322126110284854965641800328350195636717378012431225410179189024323353330454981647705933368155829556089926494634844920719619419023243861138044710207777544670598402574990794129898186500169769483057487570016028768936590564694542610406921203574865609692792346515745192943798932848003389287520595162366888335732120355490889272689819716259830333398856696531465168380418122230177585361765726710438783841160939278429064166358960081690269168200192144420216640577748377279397604713047738428036361045411202302394557747825914543061218191387609312082459624426472352779438318444155280660585617351281091666950957371390961703953740854888062998294800496617819691257978161627694354902399972421428978206515379341137793447194719440744671440873738597823543752138794494487801279665928913760392873912938887619277978875479699270463627218572821388967903196907612379266420842135598067003531354637031888271370810519072634268394222792549196954293373277458463815818382124985216006065274417030930004645459959869704571450911340239547887350973825829010969475442594101150218411608501049166041278022323580357901602189800562506430597180729732542120690751556595852946452127864967975831384271163373627099400225717096338845953212598299325679511659888094681567774870341111070898219138950595884566103014807596823401276927656225881551129393352883977551476201140424801586687011704704311209668630363734301075914269639402152481491573224691897813112395375564687112554669530864785749349383748033686343449465442547081705908323523806495485089073363837696466587936975210581285355976199161429878329671354206270136206855356517064596967988352646260482900789815281349087246587210104871181144467369089457922168430892636172048316333572428807906802065626832415042294370042159061026736340597491944335464355841380736435965644655997236714624843153954933888941523204198434274357771541796482043071884883932210229134394135119452606835534369594725657248674514806127828158143548804330918576925077038957345183800287392251692682531731143884840286041953168678709274612093889073392749689837143382703416595387015959587291434070275341998438787671616234252764239412873559554840437986153548908448646677273479769320723433838043351063569989813897706751476611425315157765425170981636567231471212528081711084099749246337773338523880133180430950005536917979816212056276723305847378670992234424459181527804032256455164864701692108431689776907833142916840377920762930350007331534011559874782347398761283354997028062802155161570498588559158241939206517682356601487277312640452220090448409391710786346861867653922397769854858213817538161722177016362774772720812793371860472620418059375765451367600890194952288779404370148885377310666909285922530727151286767975595925028689411294649519050439438074236944011037580938144188338419531663971774955338628549164397778120996726256179490561671439932839776293478555626690463562128551501556286630351478111635663837045558104470435267075107049746437547471766115301025618656093915873265083173690448410932056809828740874445277185053189086962505322781166758591252363670124797680358595922395792968571263598326475399354919889042829049643207348512293233077268034427821695493622282695711825813135963282178002381398097918578086080906239445041042736411444193818040769278016250765928893079976099075415209889834468409211146068560557534948231938487268372942700219176805184828855394165529057516063155488159749485243105301251714735987941717387689871043015526393584270676942187813670895883631509660234126561604783603126203035345473630417954425401085090606426936509750990617952235252710214670854424880725107558796644364536569205612102321012345745544458136013436663121646681867277151236226927155436830374417400251168983942253318983607087626693475379020371396616120029475909123542567589319716313892042523639923181946990881879059862598131501999549272487403973804896859668136219902298819030092556750558107546445807115488227807894265044645882424688812806028387853974768635284655729215959093677427521256423136729829884303843087931343222754551834468424951393716317735043155606768302909583283207156371909602098100360398087595221180703311008891031261802479473872247951361382471307603124536342693492273707952025728821821146145781725027487964327415847637764741803693700968979820227636559785128925245257385791939486797481588113024460671529444548661358870018963901367701264266031287903756611935947434188799830842291796746448124067057343589775992841738069227569991530047738975869679204111482939422815199877057827924169259668321162468103632466577291533994002458582634011503959348782085732093650690522268981472058799462453564765826996918493282520009901520019819902242143743223800814911418404100804510915869381584759096088835493348878591252403098730502777577656434492835517677998769466947807489888323533850466105348043702965364242406118377582419139628385578771894761351639436388364636612453034108045813008798808762074700965506339292333847163224930358928290060551353063865357620855551923360726832095840068153681841123864012077441978537902595546037393039309061164857153822222940002864819867969087896110421873336801620531748499969820658002039197381221864614388063168984647021836872601792425688012627808441774313091781535790734625432013157083563436880692497527259307571314588453822759117310180387472281228000714167660169691553756692434308712237096190597175978151251655340834284696320380257553199229566573232124557660323233186411456931441218761133171837681626475234860955005908367125814144578843132057484395177961680039233082341030411339471056618587246605526625786782492395786401370437516952771845326642170368892181030358202768469456819538055955792072211398349120508865899890025824919931415813405489721432687161399015636005221440504572963623324095623894103173901251377050862907435138510870680099383671760470711109542174432064855056794260117744952547648707234405467402561805896751236918055540355990271893061275583919327066538075970383319073482805746733100797130536800239564104937611840386091906290106483550182823689310398050844688853446436700545554363136288626292021585623360197206289880907896639779627253273788123838823702658183120741038448820487969707560702429810535919848098177294408945874070763506758166600947496364698202997114126996383224425531167584057066037637316962618443284116817264608006951056593579036717336768644593190185758713026547122925141492164764915111096156338365783767382841566710226600518918634595794931427471391280227568232935419245361075003918449228991674057528336001333917946514727397154558924571018523091532072378365065778490565267302545428914275655944172195344272877351676323847562316066779061692404696238754441562084192276309942024136327464144094122661230061724262742752396541356941256182475832013150146501804504370074939942172917357172502902589152116995901252470093439733343639980116802414125899166947948145963593971688108235829239082478324263455369083456990610198520112001340212036387564013291565209540828907486620882807763727878257544867192921702798638401572619517509169815091224298578833324459597075454731477108707529482145000419428750324826623552556375322797844810778580253954729346785409335944440962849033312567374954222572870242835952252099576648606965213180001298471008479426740967163604816979796409416196640252218441001371419720712978305965088497832644536939436013420303030234153210090795381646212994302975523391150933761011760830110373705541213160455455558924005247940585270437451870504434269680353767470879561936729370237494100093045071749430806135387987724720827717044048026087161310393513079694506552692506303529925979721932288435333754787817903853194304809570390686849292219150323933916814898681514390192047873796274397418405921318527635783562548783354957363686610815501761474222153992343252259512889891484156165408891531694210288053989602515621255113587634997705574165189221458448527082902086646879409603432700392874696914558264019785271242537253853975184902332054707218304298900917368702365639119854567270641879420209823925768696468254895883461350569996726922867301445467363728894904669491118558777574448900961612233294456140706316398626099753199898506765966047633879472826150716144249536616587665508244168051121209972058957084044503989188865824143042953492548229621100286765439936122804374665467082135606088842403969330058144361518178369145826545984922166741749902733926409471357935999666266747192042855921117964465530194661663968326758357252810491387731939123298383051918825252278911035752914529957452097660031499109159778125762841921827643504105193386224449608647964701415661919710826726332486054942130610049552181647484767355892402356854089073288427636229121798973958680909775619149639286144899293741764239042226132066024826341829908643655757126467831612675092587685381374096619609066037197900920099309217222528351804718593137870270013248172820545534019970255195558838996121296374325727564668080872858342119406700750434629633710364941234562438941181987758165803132403059461162977945747141099665393497252780097572658589814732831417699212022340025425450940949960272856526081383992915041190073928314316343914795983943809007144853097710520842099897783502302863617962782881901243696157797994112646184920826329430637174820518740498852251977255536489127309298330687756902179135976142346319251090149739155458489331344736734043252901817652408545602641221112895181483761786773288717462081230325267249059630852985920368832965253065404050604547575379039474275403400053830844844980730634760370001853225162596006267626706383973526751567609280915590710662130390226289133116795049946345793823401166596126349092107525061249570863401008476373420574423941651168873402579598004715629314050012260183235896348681239904413679246416035208121425551096014943323182901337808270901649951769368346219255376708798035013471276742282870123538919266195936673265854302109664436540185523221242847105041765009569121445279869923887585126274077722244623107152321957835850879294915523908383714704429466174948095448684393997518543730598135670504234759344272358765985635037166176759516827249567681381367532006485255652445841625923930015377231625466622456763294912218062372159003613755152049948102732733516124892400932494659253022326969116292804787457230994784994671381951959267812792721715020383384857724914353172247483731467378140969526719916634761350254321540361418102674241732807414860794339901562073559230717833968127966981282779595930548679116006404683627749115414139950062563740915965314549312947005292556419490286018537247103460075795787900447027915244642830483241259154883696163895363582243202441721775666242302947089401140670289488710265396516007320120618814307952541562157316347510754605939183782077606653387523106623626432291914427905076236585757663992864572777926725817994400101595570318569683163457311801573499701596893235136355726730052761263290683004662432211932897604127538432159351965890769433065188737573816010303354343971963343471220558416396726332663535498720800393547941129818436845273531714632867444039557890686038107991676140472351381658083943934007525215808767752030804235316670301046204586657260804111396306035200155629208476662595266386280584754214077135635432096091057915286735593076353035487318187840556011439505023328016795649146365117775650456475505332208493340962161417710968759620843147895819353420582029702392264841986055043036247983661138393908774967652435781774590216479325643079204652873399954591662018042155095919919616219049911717671418287419318102873539675138849138840590883334402774133882816224556140434586283443888911098919844303909401773962208763944701414526891557668978129262738530962923677860953564132785052759730455565133966619816278193730269825440727935715949145498544587727726154379850355983447505992268166573269413187073790215915233333413450224599778668023012633025056945716939784120716187030394751885525876617082035876467190786083191891012393308217539593053425946390598443251508698401564740215098765429820825979199318142212469941705605981596989829477741417077770196207031676374408096853149549270878114492783335870645847398385576879501213402878937562679405737370832254488160266911262473224071158993212767615644774046126278600962020057356375197536763555032195011433723716246218330103979790839197338635285780185255711908489848301803034626004075971949373107140744167111197177302822877674520395046382365784605912787211547518246873544617539989123609593010169261223624119419164307581215407939338944337391549740738286134962654939464310641150045105254982116730004903318081098447116912758836268931826255471875872531439990144937759689161920765443784819681345763406090054713838132350170786921638755688808493464398673972858777865131187184035451880983314491218188594813060118928519843002353247666233919990445207354738479262031335418702289658763142776150582030253881407968887632925067022133924111336988753546886859956225860931907874964064549755860889144894012837131177932758652724394104019423303504720948789458324840655779542520574043479533828953857736802109175465856191055343300762131084081729739292017747005403580392427831687639125378180879885768337439096458923331988969375875916427042735610275433433063110841450008503136453657464738001763904437853346939121541091013846930627167079517407418804116927909188749532899368438739026978639880782508688200786396645743192128888548580519064924603596788670750258229489037317986983178476405309297836554500924443638008191532258511945663648201042593184753755892872511003937778025878692817217730872650585451642263809859232821881039725443166990354681494233921530245792855846497503713797465314368895787317036963899780416654035216843330161113218278486161679422040693939670824394517278021957311312003267697288397458950406981683379803739720721131921414790687025085493183659653551994616815213052384727703648188286173275921776845862671179866422928293148697119169067984439735113871662013042015476980256475353595072243425461821656275279887291766105907426705739667489818519363210235584489541507275521887797628805894923140230568862476202100279861232464184929125071589696196387594265402108431786441797056338948209772708789024337910316117176882884916726184310842906697529739501965921792266238898878329003795027051583017243670612032855545475467995183680312990836857900308205931842371084373292955802280411571778881053838829322097626688836867957819608028166958990125040112483158041767934349188248899349713872050247551982448145979164332929490142508911807946767556875867211962346463766112428863420169788624429218990918481020010770439550863694355270509348746207263626688687177008916853309312573756520049042239037299986512810839017780865959174249959429081543321788602002249844875791047764650025733492349884242353703810212561089112213338778889332965666300787316265836337195170414337998785591869590211425423545086998656838133105174531112190799886681027106501823168900507491531422682802428936266252838144979967495700189560379770142413289233093581908927635124348484440294668866594305627470768732541864845735896874557359907766598126929552516056145146779139133433563495582180532767169098154921377028916581964761132917934809820931154856433260077001354867737684391974478431000855768565645113460615713338873961475968734192598441717583569858756528809658604043461130502214862280998295671400676418135658840055356072190065620700356221595867134318097196730474084970991435211787136283994189039037386145650891885501024145075766888958523758713604564347755198571232058050541639250522047775554365027989768073293303841986193574224174871355006892939621381721028923133035443425668413614276686238015861096963259146646937824192510345179106016550749823898497700512059024429008196473590959359476216581188496649804894195778900947879041219632240304318748572755322135884182646403860744560089357259320847131351999709798415502332948626043894359140222864163515570242243492741611591022748076820890799210561741463683244094145620823928144266913534325908529123191470753584040469231314244195871381725679935935515355571584857043329358523846668099315392919582255714442124601328070109343137061046933664452722048671528275584247182113862568385015765922306633968801081464720267681201896952070290425197926580502417718355786256601691934385698697532608489594886615090404585665946205338790224617936664163302808362893282330100923495385537620979242527723341524174057154921937181133330654300833210838640446378434937015254231141529424893991840001145835337550178786134246633527243719959979386898791138326507570894267470102789173866011136324119681167568946100004598863463773676327977325173951917732083834805545009005376458765156417978372735071753549369339336742764392090818008201768658783670882252068283736309639584183522238944796904963628614616918493277829036109416318385201980890760721792034992786160889335882180947352296960410293046955962055612865714194760906053462056499936416596623719169805552471969584050866815731612023068193701530042230228613822273139425234170669409645023807677180263742105187439863267648497274843506477357628226458738124127214371931633600132313732067883386484305384100139933274924976645875294341520580575916692033214110214925038355452601926385011080612365474999668646943626991843600255814576155933014972485715401468963407608414169750998282586869017658275035979708525889325559828998316766037665059867050568798351763710861428093765581673782114075777054448590679643149478933888331583763143219622407673332450346456491548554819751552755025931352057873290196798134943402144135148645157400877675752350761862003979452668006959969197375608898670992998213087859106990036398862865476718619088590301042438832557894951380539032353748182182191729572120220742023146796146437780873891934825078608962412152319232036294630614828574487947032015490969890576639214209912886699567639592268231202983903656508604522174079299595981356143894525994175520929111877653087140809758660098465233648633288640293753791066662450107100233699365279829025225026334630533425173778743202685444330430590782286235729513744622663561204068339590005597112640310906238695814795266299730257135990140030872481379768423771564708648541349837205013554402485742528610549190532488140633534236595679355763048839769427849406884236784621349567672151202312803748170497467872209273069986060171721241849769621210406096601566079091488557534351947024399826274452225519458452670807880559511792170825890462081710977935648780737135526730951110774810740085390983109404359521281045143844175691749126650915357249353552135417971135033879486038349488266356095222174427696344687442401562679309577543100386365034525366520071941041789345509694808912215529413604841311664495806643095388196044522370539017571652141984457577270088252410811545365612346156778094225661383225529710925882143741756927532712455086985949977077098524783401866409433878721629466044013333944871229679583911419353990982482804524902611709569883444796100962155921021809695710415290636854272660254509589129940317308931172748207420484471879147501773362678018411902153357004744535982449154500690128916591753758013417087493324844938173630982048157028254231367843270128578823573992513811267029588291056998228036114566142686782504770391258323663550539824362049427982014979120681874108081512950558972893536129139913576179693282093203698311164612761211654873391895223831187753478342182774505404314163377121191986644134493070703873487293993236599827414201724052758995400360862910977183607998228520653513852515218385624452342216514596472027924900705720881337787933898011136557466961925088837307885038479596317057718683206830951638696080926796108617341494582996690054795535491546157232579518768098870758454158020829353375692245348525622204872668887587707168783521696992638642131165980091488574984075323104816830426257581452677230223826633249870118517692098767682361280709697041062874707894734103185425973905557206438534427621312180934595797380043660039611516884887251850180957057828420281684415265015168991120077186521159467594960404885805612785682026497487443214650607378783082946490307292211888088848798766963805110663224352059509070037960723427742073206802063714072300601206861980380938882629938483171737255558623832171514272896426206332103044510887267536342856959367166159973972210064046167157305216568903648236241518173125288591394137139127653115491126961186944986943245599049294850580235671815482784401518034476007014658119247020454205524915385808652610008013158533231774201871156878302649639521466359782063652037155527396604507523579561980645189112105126113276150256076613631692760312888827171656336377959115608095601708932677661344624244091808193157142889793449540639930566474464100655203083281786294752502099384450662644954727250119217707750471323517562556809977367115725086487439453426325542863691747329847408731182084639389520605109074686559143547195511601697028389885045267623999173632024341395611382363973191653668681976462458670113223890902020815694417890501507529270610959564977711815690037133250043888376885642232262638809346931350434059811158587290363140915755021881667130262782899075724065391472641323892524736348972523339997085925621092717940239439614222348622142370619314810936299549345507726736608753847913054958508941853082100221795475835846349121959094978755518496972920236267767353331121128116273834069899061801424188545840467620424418155631320320898645259528925899686102364926846288324300343697137026567161521191912513270658239908558029274623048739851123978234054914598331555163078303017873682070905123895264445284237631385660439425926422809907868335858613916495988254662252732819098879493516978180500090280273470998093608091768719367124014306454095917747035711921630438476190679813433678046408506632146978321398845661378682342258263352363654322747179676784868336643433352281888679907158784890335822131411964856383089137501154392123154248675791794305499656549791705009494468970280741820701215764793854963940237960645568174580246258477315025779618247063112404068329035080843786970130028070228411917471159973564463484123161256751313857793099934927769427482428092456480249106751046867221139731350621176504041581404459157456443209424344682463586109349703812941049710519288434688402689198915376340223892703560970634082636360607123964914987697310901747511395702417437926942902431871443968461384080292712631501257164441720082901763259632512300852415063537644418702261547440469177919748116344098652902436750359357156342528388898756485872238277269079371798043486618325250404291804749565449506686327761884131219122897405513187248394479360973776510633212711082327266655866610476942822241763736968299039818818429576921666427451527670153745496751912305236398045884448108925836427180849343436366468479570686478882677821054522952066405613272218813601442119806376214477453052760035001201919562977314097012602005363746146486408129963456645648661377196790148397518131807304074643767558392397479634747382348159883723983211364266012200383732292172551442856596504292052897990768293790572637310884365291552650195960637943334546024578467250939420424314437563095773195635773016305326266010831254070586552685842639870194572219476026257079859042815593767296815755634013419366215629490417350586311057109577369052935287689740404829184532331897182751180251408188712423962954378266327914764532983085898282580825306732230328954926014384253109548012386870095747954951454068835408410951597230273057297976321359337735392342807509281877703527172825134194722721327394932920648875708561739607042155125390845196382788465921816046671450470271004922087046275522995613347837027843392319653706964337542071018919783667430249129323910834019830484456879875495960318641165132816189815580106556591257488217019919314565696144802979664769715891616335346247592206023442963731048177425674445057593500407084019965254841858717027835590692651547614983542771966127831045468682919932949643129712635924390712648038544077645797182202441947243680859565677056133427739008893162480894304871572403820948275122385102567216652427352288115737264737487860759557233755530812939533966144051032716164602213311260497009551526478460435313950618955362704295944330903415859369632606707356968136434195563344017913410821683005462547994096257142905543319696709795799697298518691561290930201974457204196872660722495289885069214097355523198954222269368496877881602033579231690926484852930292909088375874989158275158670019891154750647587877254709560398990214638891188871621754769248597640908153352866519027039078375154648028077843883701529209736003663919314570106382793544619577742910243676583763840631393135845852657122167057657870865165457918038527611911093024514176898960971488626600569620032816646196195509111048327780262226972690672740273606802638828160048040643737515247944593097879473532247794479716358230652544524881610305417238179744212083066069617726094615833506012800261736827178295911570153835454384853564437424507003190399153773917833978824379423149802984046644376607560497902787872195987480652632663190845786768352939835996098237334886820086211209395480433556940609561473909984217375008498672365974841993152473074000607492221923509801340047915405000764955147698986135319195803987596734396182351417128053933397202583768670245235873339304152360137708072232565681832217094410864060430444280927441136603991063909779544507485697573945776368962709883452388396277539426448080815790969460839141329646010078193378794675826409801410489053124536226056748899253908729859657857519282598699709361476852884199037168109825064326611513353134519181246562919542970831035168059303423141289923546846120136355269309558713925142789491637926620678162162737980262176812639666946975515278378926592927737922442875511935632128006948679501863719698814270550165013469430149681918419999257806783420863342956511684048506712024833665863065819740396737587998198292728363595978006487944036706074784170355132289706753503873981037159865750255489033105520544507293368669236032923062562094343132516787273342854091139995136827012593897179457337922377359352340256371150270982779701710906552725057379626334354181499782867570468227402059203769673343842278814265075973670300273340193513245478440752285861395706010731466530382301921471312279501280660856582629008471376099840313731780130457489313469509674149960982500157913607691364680817795721651199547896351371135150527608701190963004921358904003042718488371564288491716211700008992216584584327658455271311774051098850627114302570480576351421646163829789750493144140313420947530659483954235645330699541136155349380764365274636138123083946601237324676919157139937323458467327061790792643236841846956235544331568801895802054998947694042919577346091318167881615651436703006892640980588120660041538198527734361918082795402302046330963215563557680767085094758089195631937495008964822398792819640271654887072342260568547731295233587018826090820985584513708551294698380058268344044044670331663475945965995859731768508871738317848270658427050499401466813348772290648240423929994034209355419376240241825660873146728085825919878032480628203753989369152418122864857114720899361876672008936740411579193041260645859073329302785718707742975792491271393803324593949499972291755569596190322543759332337403604988960722376222422064867842708949396255231499813530891365326684884659163045410199248252047606184022932570491616549417014658400262430396303075402374018846778506065824510818532977185054760126394628638592202126078358075025462016238108136747205046684964530914445499583504350166433013536795832925273215380376508365190422878073746963265161599839484593797511438891909919907501312162137655885035034669037038876603418915653578486120026716083501564941690687487493249978231765476264038489731584776743847367653709076531644995185235669665626523793706306468443367189420820273605080112661018322995684047360178250597802185034145958818063051941477582325905370054176933288438913235853883741315856569002682408513983499474860903204283662594884948015756141347063093888781062995497858516469303492548766093699302107366851413374556034780621547886369810048948412294057983435799860178608230202348143068507391483429427158301834355778023758287350266040939815782939877029943589283661538846172752894293209048368044967894744168999710736253989209462951379329507899262809978578543804906275276499532829058139957927639493494606232262185513137982051058842583128280880760993133713868598261590900676762136477422556477652676384246405837499670476535459996628991617245012033464827892544249966837508413849359716120095243548470706485175117373086598185312566780018130556530085575355803386324241128621182687498809459270515758693580824841166685451071665527066841920593717006098676668066278673813968533040943836146674154086759711663276206237471451801579906908734144406198442345807563556639802385154895782107489661039191633244981538551443259578276128888339076669397156869524261408453912672969617479436217271929980260648484134502861794985231079947879070465153148212618849880023085384925734668601032081983218265865761288606799450352565083018688049540667147486594227129280830012035023800027277539599699885851364401394380150333145733958856638135485196677951588496149790659010061158501602662180204053564821445683021999639996455297262413577010707451276640344292848069198720884217535861467933719860445405753561715352133675458400763325941587359820676907403343492688502989638405812637759109553452433794572331380788106295342138292723836615787484964025925762336723302260909066508167131860594200262883650502525610596458842280258558348700042821899740316488998586945001315122381102405432193346695473957069639066826019832282061053328941798960707617329716401840039615490783190687174364269732140551894366191361249350769382135991988349822179952360914930018950427597983010607642036674343753426726015076776338545163921327718376245812394925283762699574994524870177330028232817150318882436368843157601708086293685602178829853175773491587956844077742492022616138576043698592093739205018389683323590707522425933236096349537717823789373526751938855583685112018218590012847446408845729100854011112868497547571694668293155111870191024392441265195738479268569895453936003984427703775669402864056424950268347913041499248495731407961886198270535939347932053991496085401927346602121306196337457131836833595336513707352122575799635868533282821820800795936606863833502751257183082164875456433692358576042461096812616737108644045384900649820794120562125649500685465668219506945485144611848733500099818019391469704559575165986592501501650886777736821466516898767583151152386093522116824143624569495688911165291656855071061263854621767042946563756192056122851311662838292045001451439050309192823095282801222130308474365479041526312421488656986743841578464658781221765365753685343661698248719816472832567650293603430522177959237561889947044862274934863349590636179384648000934287421416334754389986751170999514492875415186114224531700534968959493419426259721141540809257339159697878133463878966813820855101055548254914243181376869485740252973067474643198091934833215536977410754981186077953555883465968785708880328778435702584583055353128837810283654137207310343196360341589029061515770228067266742142759514727747681978148310975277578426325305888126263278678006695216352157204898000415192940365148079719434482684607305327567297101124964665229959834454626676279720744279604783827209829593887246030028270178180374294516092794577917733719006913767496704820698084403209299628500915838377172854326314868648446106054249088709138471509627920245996709395529040432895719187241164949880057517545528117393664646252684905985503587296191793615250475954407941440991733769508087672742808042279967031816504851082327059626294560280778042912551476847342413519399634558452549538110943801004643703928440230795035202498382346547130305524875699344661883141488866461544916984890435006412617109320068057816851614386599300546980911322590244003852759696309515180719764222374022500134607646331762761478066224891347708029375693005529671768844842510371612994679549637033228497090630896507898885715587701292116267479792142601101457793371647161349621116755341837101962773668250297079876875602464876352758085542550848692785291981810292718727191369940422539303288107046423272986643443316164783372967590165143400343887892746619043074108839354701253327981010426736077734064646241889847931369318033914080411193145266247415461493175186884361810161525996043443621596119153653415460994793926462603913292070527424322312769007527117324607162752311899727358311797601626776612521195363297514846434371102725555973039690214246015044275141159341991100556317324744175068585858184335286482119076077871083439330692560124269887058233527539840225303545003830661404658510218701448410769381988503815274912010366093833745158170682293851205196089349954798789313685111457713636988466171288641870153365745546985745493894136635225039869165266520954197587681376747827567948173485325020907743138373894904723285356476222349412587528130168709213919884690903904235022898508222631860059854217291853449010010148530123949691495815705355918509846452556867582795951424917551445233364984966706097440142422259934073454597236315592968669603610706501680402271689203464313190116491153709431548547673027041993165323970746372019741244030177963391723764248929648771583795559183930121537776294565362352573443371231985781547295514240762275344353681518560626502365765789515839601465712122790812481871518475005175222073667531532803515835976169019191171393253751026942122855309310995554533595065264289885693847852005278326670725020247441192803190014303421032172495233504585410321328967900011640296397766319568707098265442558361379670219851168857732909905150966637436827019747808057600545309596345345857159139590626537177146466735698646780311587345316230512691890668105881205626105233684411346242415495210777887605277381739649194968627620686138925291783962257207818338691411898538263293508312873391013693196238751764585999435740685717113997607875675691785737823264980220714477377839013949489517913337307221743968245595886869827748778223365190717250326945903288111478032699416442169402185529712535298912077644150554850761795110589761650025469280810846891988535606461425845188393166522493062040343322513613405164327849200262141302031007596464091121526471574853931456577460173156347684619044514730888845529970507331080815079956667032282363855289178077647829890246910371822442473923648695603668545266512890789470755885157482787015779017487953874360925603669930124727603171268043422599913832344144152668771816374166067055503281163086773479077706384731091745853830398290254813202628319595669708061809661262104951888452409585686142999682333832492675373173225234084515898594325147211094254625228967806948534129488606685981089041257095078665547482269491949064406768687591312889243667939719370565374960217802845153205713729519753984354978418938757393469605633388850855792232379366547763426632831448482728716491730105633238378986425232578758259874934255652933129557028166941332285480719334895371152161138474324184666154249349145982216162267672619915996613369204863461100225787841918898387459843351548361970211088149509158715282472540523144831867571175766968661190092400397816903464286779690502215592490186693667893165391157199410955362130226080065079327500395902626431400355427915264419456349817954386898612099627978309382422598443107802103651411660015477532610292930976867487680055556490562920038457840087357616306297962254648830932222029109632891209024133795810818956544876167266226579001455521416090101126905564408781192926832430602595090349411958355417294168409172453126895075329456391776092632228956547592445891685191476168624757507642045967372186900739580197665161719146222245655038950224603813370477931906284000235663747162138683631630365894462426629299587409088676323111443028471591976390161171749184641403183181750649113635140757665964599198515010017170915771688296365352071452548863654656847826954834157730522080710470053009685615929992598983813332960534799151195435696921561205810199945391506295110704157924240257717205191977127758913300768259869825776412784087436058394475084082697199051098944796368528311671952094864567762665612512723268492681243685059845661894273867651962072354142886633086115346971745182008784325089230212294625891045488644073663590812735598940733458419078151978130736038788300798588498836226296532981805550230740351491310678190222091627266516990178396932189121824359286176235109053663302786942681338600475105055598226925775130625615910635415668622971268512002567869262705308067018291137085654368107240817476492850798235727231634083948380156071594294137759529076764578044210445246713175132550568446589264949059884191283153966755147051358515220956509069850474037828991611214904192102335770793703611808861232814503052933308784217609919299531130766680403242980544528410684347541843072909909271001779520325569901208139661892100682392135173320976513154414037047509800369366377339859568583784868375116870373246953041511883020212608967201421108691616260861553841332799319535162975792115741949448774385030252016874719525433122957749874083896578027495331494161255706140499128137242008337267554433912682929538193590264069880355978923897367000477986952390349741252089891486666156670485674488873674677176896868256731388868618860780438387158689590893912495628756440919594666718241444846402377793777905768444932515379151037857066019909098186149053155175679404381084890985444629584590896262094219853107877257206074006985800033868517830444560196367327411797084079050940455537899879855669954466126926426993117102236913224502358037846065668803057212678654246701421697568427183672708199298599350600599184916974835363441859189653446986721754322620714188416983151150549875547337908956096115522632632507193328638461110534283673072979799769142062077543390225698420297003877139646977694063451707790275344343981086234016314939097316212594580768281019525174958113299612040522194427154634106088577905894954055844294549834677902132983532439250737403427628912692360459810937290861342473681698234722325100920221837625784386112676638225308682831967221104134886122487140851344241869978736139412867828694285101782844212014360425748952007564813836865009670555042765650690409779420068507866133530747728792458353326734254606560705649349940490589507530144381720196321193827533692119669306847620866313966769460558088841375961155801306404769853316213795240989655952771478555688120405079523006747798981342643080316355648251969659014228866616460189369625337201107986546944420633369834698236319949183502257265310493116812461564205483576088629947063895825153512809697123982938754633155113730187739890199326318903475603766191677341915278347174437098332227844203352488488675913898371612349616118625624935786525969281038297501117927334413884441024825934808613638397534723940986678543077041599472387824204093103331867345682632281651418390806724439170137836697131887189711214419687534627222494173658037702394798360715307917293044488254816695628595554679189007797138055519421337923385061382552649520276885365529753676120656406198496936460919595939687738204899490435956625898534556399211486170854073712575039677281381534562473017173184746139366439353728968891353747419584091033176093108452869107338285299958229397243955983404391827895167413635586683088482335203754574918689272235050390827017714969374879457116660571488004934078002334970251679878520449526060317055526582995927455313253998499923503468411182266423613675176330563978981491263183811826503765834366989020115164406352012182232645186457361675844317036119758327584899739157519187139270952943408634587609738464983189284927656498605556167358127873686789984273070588221227927070454305351798056450420448085570409015811134439137860186408544952280595088217786506089697500331095187652470319187795507055466375036213017697824550217577714079432876285070346018073366560162749939681099682545790481605872317089387567541696375832689878268685113566461315736825985609985532608596931123285948413608103100072319942784764844892790323213028716977235302597834643343184906595717953794412801011131816915618774995582996810652888094572158591423456656088245877487702586785729922735105177724470559416365361623207250149172727135926685047493506380354340828515731016592832661016166854054515579169617884475687355924985928999540112834736475482809683663563770139898711984042958145617757232607428416255703492211384571042954215788201248573584744957447287992131484568169605852398262613610334552460804833826059791631730762258910991662148054110464475108545526144288341401233270147864722093944348310708351303841551411488430063567102415497800096747435919975946651886453701638788917995063810259857024273820213439128581972985988623272996650676277310181128512772123047971781602968261274191561197143171167370566855960139939085242183242841559189747843051464488908597342190822994775274642949936071588106569934492253473107198127541286051527409177654066304798455385864968756431002379536740572977692134842525022164731280913415736139785142431917368546900845917401814191353087324266153767419279517693242676657361065180573534961828110065172194226553757798107520671514898929378443040349598718045071302016869386184806514100348826732428639697804622148504988814396908400561002049976847807157491091762431149569469620221644444345987881729115937179546023931703865987920519737649621682349991318435396755558421382022566197047697680828274535834358725082569920025435841983953142263023079545806163704176520732016442130865604708148892251091615128973706109281154899563065284151898006893414207001482883312003992826884585968854687298592561743206102825213495744766231331022953898095856832565259825188743948677337794420261095587528689119714152704933364424584286983229554579958548134016142626605658303141790392849478865923248702089359713871332716078768850573774023056259636165235666235161677001292028975863407024840330815722311708006832077926134020217929492072504916860783783493917015846891473150220447872174487285300678527645998092678463468869906054375587091213107210965248259795712523984405951446521295164263737983323510288311589172998003257594870024069552647308487960869812833370269754598073946234856232469883026710320428895812817657146164738717760814200299089790258676081759756573995230488961542576109991347488747575361544993911766388929399970340881695887238571381993183740420509714208352358060768623037516384557419528224785172582961781740470400959310483609932714767144762858160101827398574176776756137721542121574667586959259260882476180882623794223422724740974089366665975776134743156844454361089263076225925707217740202163339453526446734767966943113411859085751170369566481781752109798830962338614627840855120043249332731620457035954960550207137635022571456494809974673120325802712673980928943327811900127166163587947065702670708530702441693721619850868203921416450062487621071337031164957271291019589703633792961949864542031694733593397782197707188593429228320350007049679457683518890577233661496786481378959480977271796189780490206534624313074326418674614021415957360928765749134958571623532991465754281492350160115221195979595917960771190110657624848914975219510217143981391470221188155266373607506761127628763365761463983378368259881089447675952017559633476942758174977538823300288662300964578761135804930052279571205918912768596585736877010886738020038980812984557870723536800718985004620512581978311887964583656982904695106808527537702487358346605768292336561174237616206842381738708911064658459011694050277258301926935272403613279382137007974658689686688392051669782342284404259335972308673384106495264612193137396411826929753503060196583737667694455710050229535625535076521434099977179333010620127080532265510058132902709622151206978882465675683756763539091785823224629335301813191942018764425882728040582484962780796886491469533332796205128158100709085126028930102879675341891795420267799982197445373383568653389913861883216828658158623381239012966224483794690801880756978256202984853599622846360612193563385642995782099634367979942471717027460389959546358080793562981558330494197590681458598799936275936193613044488004222835464156522592325767639671770808393555533839132402191634769884509032717274978759531385537238888128173723232026049854483601243170911621035300855212134586158469002170463879434121454237571529419201635755988168529074486258355795378957839838069717561707637371719265554861509888138296024434639506812136245247574886443656052956495012813220017667777337950042638452294955545296801810768472209392609332541008874402588755033553704723266930182609751364097611660167984540981707323546410338047433065627438868268368421938335971936793161721648255546108322885343781117208250050097653487306622729658214347339119806742691060972399819059013721233886074461579700488583131000390576038560611410530749153027956361046766401627783458037931380421607332797602199776205749429747270239708679417805472029230449068269282878817916181607827199963835230808357538641226680168333793339836612437286917373819783670836535793690168657790590176171747417273746714078498188907683902320824984285584689169362212869112670031224544052647388836143642626556972674122984688959669506418232241908364049436818861156738119656850997754135147785835612443059972396961690923191402736903759689546227882596743514588470041653817703626213882359988923931876269051009047602291090818576153857525351268888246260690769323111659432763260361455931200660047165367579753616966073038338242122094889888303951069975166216474361387651716418795008404875589910181185457438887263289307586468694100299835388908168057667783709887300405531929615236897850979086931994872406309284957010054279259252369656917325460285684142221066704122364883111074705884002405166553117978015854656098688858745795841275428092426609133189661858743625581452297595415294816659479745835887751143243849553720161869929889709086140627573037623044116466203281442887482883402107629177497063751624007829420965068578332530097002206081575672008818619852862039019140034856660534881617037028045566333204694726402891041864638633735245722605482765744142083851171873303141068288625708061601333321831919960070183921326397016664866561042854231692057047991009082655446365815830334281909143527543950357639283293777859927710955927542648288542183082010405685026423530613565922479467932090340420760742592109556710129322946088872746484899942326757180618615817343532627704479048894457529441812256268268754742551732750711409188888250178528761406209303042836676347500305356614200086097258357021165440866843844874037039007736976577250177644185193116797636457632047431884718298307995500407775702177629566837747448361489786608305177631062470478644207661728475221080443021066972250120927258812461912811281372714903487128565578450944918069833056397985378176471585355816433677367166230169037750740472450599062580250290443752458774443210207347504279373468329213233305302541565216964726857705417195341961595484108660444424754696127306657707713396011521154505930078905529540918154930147573276256890609071432998101331863137283839498229354820125609674828040280140272105186444356089553855095459836524423335956582097720456209903423905957051952055872538126859708296981550959200695004485165359989496990342715703469737431713076769405640987144395155539137919308892049170639406001443376719467072583830759581292944951675239351603942884997668363789475964077947227402356343417637659686657821040992842440836992209436964369538226956463974994907904475878589326456201537334095927807347970298599857240463742535744568054592244402590838348870623779041370256609205907008384565887723642274682567921896774944190869120820792729777977966789882545437736768177879007657692871462826395378833854833082760113126466114672383036185928066352737048744044638803747687284726690180474057453224996588875572920448276406431494666925017202158556579215132827822898950669428917914612538769874043906997939075917278807863422649914492088642093067506610403750615218251069453180358581764880547069258582970810570473780192191624181717229729279936441245286293448728820671119453600846339601335088792006550620440544143087824817500625436374389711771806134695132815069993898503782715376123644879867402601111740927125450351967353659389913043474725085364593225255944774334904877686438674089537268578014135182701793331094777626350211232454292334350815527947191848525189165929630736024574863768269563202132395614890282929784259508137901984062510505113376173059945842379719911394099859226417819269872612658963295067962503229978272943601857173186647546140886441207062050304628960103187770099804081579585511872331463269557247024211526586282806145322284454707178745430678709397972581756108043746845535556776850548447081095564410625191836385967894618214645222073748052558868755420820563467901020928048785097464142744151653188007575943436469537156676834861835002317884045663964888526437317111690517659403541196525707406564947485988676860958800438163125437608773998994488115916542414991104096087301255460563824983405968413955987935291726259131292181468942397815926654116245241286083878550098532129872341901842982612908434736224943768210123774634837243277664332292775615305437451277605927676792552658170896723352106177589066446455882609417111729538257102285154786315529565878983086231629774115898231134961045948299630549485526574410343594574677750227998368075655450420474652848037778025603086681401232905321264532731004717265894757135179496543077325092848379597392494631970994819745002661872089279999252789035942365131113342943652472777267392241430437906905846340524495982057077566886581956587485465846401800016396638096546239265704876456197357597769500047954275431052027930606833775196458711198516521273133406710948126613902729179783477477387776267240484067276140306073864237515968230123148072941414718551946527463236063103879956870788293151759396767498451575575630293302689379979015277574097389725616416978587808688384181985643226821578839100919723973201812402277338945389313394025528651514600449869077911384090331265628770207698300369613000682523845501836235906008049899711986541008189514719098425326999903398988104511701489458196202018182505556282155295138371607357998443702178270625339719882100514751132408615261935560269576674882123196774324939211185515023189434378941984632667754548859499394627729986178457816468322138358037746272698971705618351939724973297168299574334212333019623400192681102378779999075806473047333695346411221682223261652062967678446731942377513950974077049338748198155899768623637525842677612325474396074096115225284293890865646944883805651401937049993331351205781051703722712609167695183695802318233565872470100035614149331962663573142948044393812813328847627981396121049074600348769333631075490378277109916236787416846828983974515480622152279856813923414487090287658702635000444857412622165407460615618638550762117237458709836429816715449880918260187542162661819076440507873084841536611700855882751993940834808483504893484118600398262384343358056269485913353580943879553772172355243487431149939204387891131551156718977976072198410425416287764847350023542307165030642379297887579500097151537699046467828693099032567712554453025615756716578507092756247442972932300746236405548851496641526744946622074102231282538314182156928916057881772665283640974198578565398169410660971381455733464959490949671710368802341184788154247179595482340488507573994851330485995284455016003994672779267712676216588847898098435011407430302192950761513667578942905834065705004458459215252018669287149400044090158216765124970576085902705945365668260148852074020090799419033975835985947586100888239314808243078860543649968248531073822281308219456052695570745431699450257741728779707797830999307491593649483335581671560898896281526645211709107138629950097778359616484404948956174550170012723306834044547805194638202912401630650592258854787319968854921083522374371069802501133267825120776908426009465486530716557741469362216818500660608788393468213079169753709402651672183644183766753095044080752844711855517002441925772298571127051097359149759523934364286101513519510483135565532531414930496123581586744726716621709653624411540261387224609329174842086353433566576151743100421284228252633305568980445945682977109966049528310281503724644158198898603298331116014055659900903053700299860145311065205363713155179366612865704793847040949489448938685902425717021983916446786969701740496776592300704070759921269451218390884841210820968395896514097688035324963580476668121462632805975453840179274386269960998630706360487684179065811144147233264552738518489116566978783833135476546345111461594066209764481677974392601694387568315459942863233564146123311992757892120681718530533380669671934008380000319184037614803417855456132805510679221476239987971634453185805123317924137534832825697953051271595020452174288847680203980273118261450192125724993549782842568383238016188827279442151528636729531955682868862356416039007775566792331982338643459840729217369142325461543344733197149600093429988524019286360495194186040090603792402848577296018548077354113258051342400580683426030589808654100500127584038053101895297378809476724096544486446783584046470211710095373781053064936439610800433440587569072482833475052423348272297797464119386497909921320641173050800480552567959899329458830000127203505312502057741436624298304315653204759282850849504483807333549574279166001230082403399192922117375039679600485582716187039859435161036468296874484855044638464754840604519090353879984257251602538375755106698951909717075086277060010694607864154522429381863408079311800669119281296562223334912138494049489710790574708629180437315293727721989379117638752863257378387651375611779290532465392270989388302714257288420003034934729736848025557860398028308905768571630512468484331903806043740310694453345168152655683021966049026359691584232153951810878820397118770675404952480768317595040992609727556374535793734940270322514264536292973230221069949486268493958690806369135787341785355992228754878465990663853768930936578057165780012833520655260673176340674250740394652616129575846938476332673946785999067227365783810852019708838601593806734390781740330845370557627663173388212936767627084204335922999795870943300835270270053056755497389165778841310940681691809350747418056720193038773376159757888143600832973025132796851348828901017638533717569830362430093165637682251272212004417723872152156613012539631752438307717663715209823565689903580529751898129095708134999903635890059611714793636954669601286143132112685901589737915034336859404512087880442722829911658732891414038853483784600911833265561490919354053702713029054089678013546621823350876251327813375454785236004144360009929630966643121307200632764893336590086389342432008083022379625747817804136159768448876399265284712749484171437204543250157239499371320535668546735337175686119648351586790693959572092728678435679615948447421001286766330611327084242880140682436159432484145573653879513220294100151537609481891471643622388200480917912868416227142604641015745255788141566821713879975924963266061497941906946745419583831328118553600145081789112655160816598781976938573086369474623577376174159189306499123916742456853408788315981657746875997563572755496533613524044422367162041170393109650916830359342393756115583654945715532606740029280905793392470425953128184246610877475428801670580122677785330564525101192267199095323613943385156009456260100287754547015305071756296999056990778498039205580451588541292559712860773671077463699798763464860696793451127965318606248325419898978156137823883753138959483505064883168987250536564196512150974384571042754284710369402324050694699275109555814404304717120951465107771890038764279469108619804962043513574246590614937924401019340185248386630447724713102337163846087308292643663282307575341897135892480281653945486755239086809806309309251152236518557673295453997816380830256445934460389075765912087564662519841496340745501225116149780376298024700448928282388075161077176235232639123505637413333196979016248849591125060262334711408857047750873316715346840957351710355475051133276742917402276918486079570243570871586434998738230336603528520734962619886565386205098700201659482181490664138687036484312458371377219356034832193676651644436198691302265540112180658036633901421613658842447021987970927148625378319011652464732212663513231687262734869877826481890806512407571199853606213985071897420790629968578376947272492987134581796806174668733093993236935100184439334433864666734283793400452984916381078731509153915025885708978851711766754693849905069921474532788745567774061401628188276610931438551876354198376850250296171813600220098931879262497879662021217926223677061746624344647364911691756607591086520165052091705026741921127559930586124926661998588120067245316945445939913323418705246781861434273597888674339117568479691000622767454263464452857959189626077923697136843226730138635052449431047064786461237729367875047360560607284164229693260397650542024095182530168489718503214479004897983603160199413892534433140335848435970276286043364976047293512704499799066186014687107799105650169805639020233219291699626378332040407594017260874054952018093809275979809657260744944527764630715980941600174832634944575347354087930502333498074589791131485623850050448468885573259099608804966438726381775042254248398152422855807992263876686677134297610542949461750617678780463255765410684643055975591430287406373578374429709039355531338447337458000813061949166033354221647028319013460941275330684366562080094324076707795610829093654483225115234486926551879705289753173167783510890126700094937094568312623071031125042214676332172198903265170707061501329638739316837355827689510195722081009503382886124257643150620315434825652186190642954419712975242756932670648971180075490782178066821564837873104497895234217593890451886383837729351074489611842476021912326401981681733032693333949437143630351412583268374692305152352536142569850901952063262478383841751352042950014175423682446192788691824368231319023808168401258559080372342829456590609678427634528025007924825844228694171930620260623344020554236179531121274872900913170413816052898562674502010428910219026680225054736953030752157144203529620827963067637090835044855879349333015124392951613984526352174614968523692287671259607038704223102045037607132670252849684646882711317047482349739853777882439136816717128551638812642857296514716385235096711810330817004585950625899729306560351100516550061110854169708803312343091062836613778167389612653148468872817289608955390949249066604565930758066666259706510352446682212250898016999603707047403970493166344548105810425331093819990863438893197076814497265049499903023990610970791125625020390411552310617375714377746009680374307537817036611902870619701590052599263159945495674909798940392064513327632381929939677073280097667451318383067884158594607242589487177652544394531176873948426947943393392678982946153829058730273780401313795845038700914236160095649248786452792016644361431594731299279846008378295535046974700295266786764988848572667913200832862364153102506031756381663811178746966925150904870249055914898676574319184678216311576438774814908028818879042151662255673549020426028024463436717331543044741435321601184414909931643392404285062240632128798213040620178847170988188296676864306615217308315960376444058325641845469282060860568140946707252239954733485327552853999536153461339462883945826413218254129259004344098459626666632557182070676473175455658778390572769773355796988111618254981440457088422459442083976040883880910781928116048029453193230704810753991601355983762617900475227110637268320937716320429473850862235048390288821255158191793802197927789642134190505158305402389097904964853699590007457939171856928088798521729373346522440057149064960698142736062632211998616565400845834713510141759238143689224786497071976591864174001677510836201709015562228370273760739311359083996695759861004939464577389867653949944807165051017035107485928614652764866465891986636095434383545188005776819311462208788689875342620519904443250261417563841085133486517189104086290021939668944179482181445718755906566036880570542019197634094966438849719908304541674524739946601022228125602517095890228907624584652891903644750140423714355098942807706623720101243455817670974487842332725329621524975772399363290537527415676576596465767296804019918599491384088009713205572707564929034381310646830981560994872534715801648429264734988119548975838665462622322731918137300771899462266951952279493555682464158253889949157485135120137354881953236919518505526063026434817724659259587156142501828586452849120497897676150297401873912083151008180586619539347365577562972308043805876909379278029958457318157335456022728679500968339613568519600599084006390426920075523962784338641342543970913184192313896577901026818281359816575009395766542184742223550688909258384929148807017210297028557811835948363944889706214892200936406619495283415778009380044991030596621843886271494446018926856076778450908024661617127499107464395267519970896028361906093654446903928945957123185703678396480886968706684564348013209274982983955706089301780891946001130122195084120779914602552004696431365742999140226451105673897625329707242137967034404039941521791450465754316836012512595547971516969756028743712870942887769302775779035900507428191201115685611473519569042500056971949292015648988847018068688578733285589098469395816116792454279509328560544725842711655555296691028064319115491740607846307475613905237265717451871062784352958789738458910158150183089894730772728215315879956729368348084332540869751513661077793908460546205792063614334169711664969319064597019856224410980799902843666200764969262921030378170656626535942382512623006131074145905923918902396412469847377343807905375254171551136697064706263569390096800451190578214471333129695016189123139762851970467293727268119658087814982589453596781704417555719105186178144375006178394546198167260086019716593326204159325656528814121258695957505981988250868257230253374758842235827063633488728029616723538599754235882599487979808725417921983351989609110988305053616508698824675896872041658962966488140263113806714153727890356497348737870785431457905466309371866948812623461827329263418571190060681176025690503333139119390277829192361221224014557946336520360872582577144386578983578343676046991497646625923437250588706845952304040536195929977322071994749084175259951915769692855978594389718672267393935614477527453975175112733040828114234372553012010558592170128609222302191325218421680571115604841293821585130870533033934678283538895667710257432363147197668649142002001740575695799383943367737156657381260756539946188812861605833994645888672280760896896724740956854468833110770435431331952821014187186542477697653274469112658855972798481362637939561469119356409574182215555639689614815639285797001666657211497494405270503935993589520174465197652849505495128105459552537194831781655471603575956402533831363913769100772236042346056105823198250487334280814704454305592756881809668568198451183610632090289035330678533905814954614737679357392158199884111253686890629616235237969494733664795836283320690378267807416295862427014158642856661279815460847864157885574748361145446469672249264152533777391660827938708499458296896600885443529109552509259777451150911578611719409479132129803721432269514868719289522289356746471857509080204232891319624353132776698934923159904461116916778268170782713839416757374362860422042398389789538636903395907820332770697086216555022443001845453365634095725760352268860412522447850167063328721025658028421264129733029180007767979369192048419618020004186571969436329471559368128855279715154260815729473527096319333096744244931461917699788343957877185042454149543204296193242260616288192354568276234413739776760718673701578323718912826078350510422180113304239809352559095097200708529654880069360971304940815653915851797204483472347287005676615478172892190244041853751435836785553990901243346157858064876356821700377268296707044365636006166676148903562468006118150275060133307331897431174895055098900786545149675801508996232504791316496628833168400885404771501242114396224640455095463067980162378067209466686971150099979357642243820513797622298778608600909111641358687675440657803001736358958881102001327390032542149750954136612080353757941481301757470179183868830027506888171824874649926593985371635287411850062229820329129661926976123795864912125091658791204507890073539497296322329426130666023282670784331408286151684322412438906354204237409785488506204407892687320882770759752883705716035471391320467466894365234602342616625073581862131465900742466327744222630658175104138640764591126289426922574889494929973720250472568199323666135170718722754697569211379525407625630700317878441664871995694538155216010280490769930992690327300411055035131904450442813264825723242807036881854993936888395790982734521475669427480985506528034166074372913681098197518299690169468379034612091183047165532571707679294006601046074292430686536156089397206151669347046155324238845965592695445236825642835157212729384443154675736319908443156381124454259448230331402302019611011588564733071189591521981923858490917044854945040910272178000029426278515405541506736094676383276259903014859943988190768444901478961982381402747779251545097611499979487446111758745694139319242689774299686633321629886655646540667252382667011442678022977265857549202342195466521272948882156243936194048976173017648769443593628617353141035755111932981417061161669996829400027358367602181146772982309520975872607466623904234138666291679280437197070079697829231571893955389376765629081449978822238014287422112256225669372608054289613020724847901009608775704880298403536839724802521168959682312588393661248652081339572666478786866621898729831761086035722332221417958604568228184708962637187555852418633735047170244590637993802887603338937043609522492402935249712956811140000200888322274157125106011075072750623476322140547829346532801519229287739510311098007664900154582893531058692002171825868478208411384107434785430423909619290649523881915239076976249694917825189613555828804144088369176358516493001601814110415453999837915921844498105640075376467764536250321315021166233745921183052357378029656658236418446136848699704929309310141113902019406221916950646433181152553917160218505195003000658726430941419297114030805685443978863659605186970753457363677898993225513668110624418572282294674089613779173135328988942745524548435686661445954647644968515050778293689823346228229156212585657494196130554168689706418186401748726042146264759797672590470570255068850089763531132650221319100589387983384090652482769564804317713938978301082301255971903056867879769840577883343713421268343638596542907826390655227416890037999569825699092271977296567870368060584928297239786540462222568583921657770368804062700830775037603936069286161562752580371949523235426363900497711203452255218054473118165904624514084745605906642494076417688801674017011526574084686581086047672471873932641493006698041269318840671184110694294655564685860438541909136316209480758718722170524324117779708020459501560794319075899163870048539513920455022882436536608169838804495797328027719218476840443279186583816341756531598792465964095185311446013419313770749190404986105862556691715684152126441262950930614525803652184072174679403888243376766132497521220027101854820069440651945885776824874466379946117249537451791118901705799165252240707022973293878137229142101224796886193158686856865800765994936995681443486975907423595306037964771510395421498835732202376568002234808414103769950773437548165389128391203280117130705100321714739694481885223035516764279100105704140133895891858411155824849475197841281724390693414932798494776206052292118986416182424173521228420222524857488195399486214873318088147492456831146232601546362875375934706363322165766555900326747726862379950575788254453604417530633977546979691347887084257321087961517289551301270124246975601746164536862266746980649757780998726538756850112687383745910576593678930520239562953035325173601777844809046501290229847651306322604812795179425649643797933991282889978767805301660374831163089727244521708627582799561495715224684463671986638642285167384761273295049713259699591098593959256472460469053028102019182059668392491150298639116576762850053129251871610721566449566587329489329596932219245367372728571597243686534209701237089204576528059585975319515595542330293638893198573725402263007540915449872130749422615341773141153637858842991909893095345553493605154660500305546764587621360513741065506677039233664211329997425185728846694725068499373916424365389964455548141604677195602430393865111315104213456490478824561871502570473706041075685054358197076534232406341480825932340256005476541000175103122401670121305003898320163844472599368364741996582389310642417663523505920318545975096974913680371981760738806562945864432343732730466343121232367135595440167139858072083759732693643686884469906846920717087675810581745549310180458306261252805958110395794414592654946895119174743962568109224334567314835489580860889322865241929924753438376535900334637654604395283571077628954862702312846243953657619277059867823400883275633088695449719496911490992004196734925597990551227565007087041915395192592925467928099408292945888938986418102962834293196292317469360810773612913240981663720845521701910745765964792467045456217254379342622835859976807371058390426616961668278817224872860513391943085661191664940371626255096382282406758523735100246812114447578239909394683415017597062701710736911315550155204220206121404444920985532146085746437304896937243289803994775880840285310011114314859874984633678947807904319554084147906950314100533335803468519542180379705125138628405257189415647084752818439699486321187508529551425014054817672816283713920715569350795534274913787958714852069965582724217128919453019313146525134816916039912500590243505998548097212331287614067184081337282864337828336514937976633562012444787741269903086961461511683067877276776343388359747874514346478505836675465628248994820664587014661688339047255926726593867168534154019954872111671026936677605906731138286450840791513392219529349513721071481924586835757173551003408227664190214844707346652876400086898587753317214570529822929480435125754839634143399957857377914454099241768267656138591757336384946494528134373376489499899432174880352277800763936445475830325659026899100034986793312858860911858100810286856406235175196119091401646969646331577094826324088828934101526013450642107707964966130900764931203298889454415107424177822295141428110340912902234660725061907146098210025646770675911329834619724870841235280770408170069717475551997241094398880242689103405701339278221462888821523409235944878842217405184689189479146403495846472701007842229380129887719497596569428855291326384145375258735206550544526634906434308059028472365339655487474099004242833606829935448158756389844321782699533360879107757846642631390803927176469408820736570154297124016796182503277285102904260089973319842921802144002409979953202777930452883575246556992577402789609059609705065112174361442814778309484789512182557843667902863964098265747555759962784601515891968884247612954513338702287683493557941652631329274646088349819440589652789753595132902223077333052849899840530641748710427557545759253540120636013360879918732214262155803537609772645270041053850848141345541344674555566493519231668398270338414130345691455765758272532061284496756894055553093854900275996496537135740339463633965706956018122498156336714553210857278392752017331262953712972499664357209295579943628896815423897663146232576279679410895672643431262652674851411406907809347981078320887079963540530231908865509455937488250158637918489135780624886037512681538340206290559871000569649988092755689036980646396107880954698231784600570744606166057726849458827850900527985227336672608687729285238478895092129115258061489279380609314700246320956585206340448900086670043462532480743889713481852731047544307340741230560882264622037278289531976394063696571505629596781351735776221088892541235037640373642437914244277539326142860590930622730155232645492001324658984426568080209163756467462769480199261678797506959037910817018167859214122233583501103395136767051548591339458788262720705896633053422487747703039678717604064123667755100888447689277856336217189123076379227852605163734093456216080889644055047178173603984467641369768325058160758073788439488795656740396975138142488987719255415814200284153050156261958774630927424250099980608047888657973399462194473149311410752441302909948394182002919314164745308233814233634871962069221643192091442043958204880045191042622346802727188100828840989195757139137013276867200467153341276010220253883498918166554404539458869090807318185482218982671376767843480884592056594234397945659075603424337115943714574997531211255924585474054370412979780832007538708686880724928988072291264774541027104836648497155612875766805914170245699471813842756831621710750721410301258979638368765830521448304631096842803821270612276865553190026057792759239206031039788817244270163671254534862860402271057086448386763186973725395500222546138562911324107893435883607261425599633886600435643684573214173896349282088059592216603868921976575727907808359895721111479318723857252764098425827685579124801932060425424267861786772515752091665796600489031273540532665129203515357043292845018725311942884730313352753541395565848625141004933404395039366125769855259368224430222274614303462410752692385910091597461966924189353798396023454736297423359163247715720641884674854338445297619760327803563983909921856905691780747837524338233663142982878273663723402927636706317804536210767208887947630793161309460703249468585377620294806721339933714320119829562260597042245898972162959851869098979594092604412008314818567849646672847603119415728090174898497639234473968697536050448175936207562372048314591680739294325489970910596613663058818219419816182448525751221155774405111969488320262440795205869121679658823447590449437602973347067080047726721651335140063336090451098305746560880493855008600890134132686510734387920754703944681916817154890277650218287546659886572558214016913841826413752280318617701715335993178506454516244912341772234376173811268006801872519052296382266311371015850301949127251547164674484260127084724421843713180480413176983750881826255842230481669987835464384717320455911470515564700509677659876504662411757734457357397946362241798522505632347758708096000941836348456504531676859279180952016059366907171713600454337277240991311804892275518270392735001060712077760479262600935645898029017519219395110878856072666286036416318655350541963428825425389863361685580061931418480119146547584785641934932363013933688973809883138323918351664023923705374264797238792947477237076193701946968840183051576315868669280742085180954591318676184993161935785022852013698503396183161486311321089547915315313435364707485678744810789770327147160384677541925807129984662232852515312241049136101815507733402478236810314833535757448503414252492742846138421204645744210664643258954589981675152707476598501490321343389591377639813874348784025928187420646295866692403682776693494730970328395151048336622892448589009647232772137912448369396119904132258673983039226738323714269907331620738809440765763523223980428222352888470734310495332445792641453932815261506350308596919772739658952608883139455241677979080654261269420814769396800881355040945918520462200294563283413756671868710943284639153991344552301699155288916613864564371771800632372690490099222386619401245271499795142475258420107668114995244985585341770570874436862619956701402336552934956504454796208292070317259107246631707250904162993794085564323941120453623082111553791383380903331669011954048736623521778991957655582995946844224568792762879376022948498533243046849356262738778765667726989214933920424551965021150517311732800825751484944406837670916580577811131289664784510449242758108597881187361538019888094750709347615028432651843185317630738545543740916048869501315911215079078793507512258593200444638127398759665403209832970058351368919114121940846041526904017574247455361051062541702345219020027760642086902246064892766181416453442395492127628978365620639079804694364318179906371814853482181115058267737497492281437623788959358227412160655643065681680381482141465933833283654506695171574167037342392859872027739896568402317400642323600697163000574626286878823962657078598390137136773529389912332466632095525088782875730580344387667937373845201186125134138189963672954204667188010249486281430063783850266956754561228315388066015660381692809741259657564440319743494724340266912781344848557042351980791776137740013783111264587165864659952497493787557332535807816535566704589367545290442941599173291371847145222631391487812282082915214546646039358702291902201877945938362987592237847502218006582869228660207507572831903724804222886148721890917879629325110927231620076704371085276425176780580255993524727524696944678262188776843621367664969271778381920761047513679047024726197449373440610418149239029910985943919135183698987831723129571083248004737440292818335808416092085899364033363713609177708178047059825463265854090285627304119058070818889986624596056748884307999812735373847884623293677621734889628569306983270444394456960090935207302567844320210766087003871750327219870791716131141288983543992497174356708077731937565919419353786527856341857630248006389551371826890128540271839811733810427460315127564416493897173990047908913493663661054670219635169369266210059416857711970896407143260261942115762213361693079048476661562299289722935120792499659080254363700337570085326868206626242248092962861814551827918804140812214858814076055552702223938905363727137611039705578624074643530760786868718503027360059325320773841306230857280018436872993388716424533652112098840945483303330784156307224823576169447374767658534168007773831107215284775721056402104398882256620562159194149655053378446273918971347192430816354142465151665491007491118180203069371459596529953539787996030198442367538789761620430285914988323002144008237569729466656532632056070958732612517024645373456828586932527723771151133467046381607439112760717401450361039799154549964812720533106194168560915326411160651265688874859412251773434951426002278242790110475957344498681450073321791526112846852656811291492247105917693343111734680231291262103276662238247688787381069076632007481965823087278119335072206898214344466668745325829452931281083658574914025474364250173874850085749516357175314236121460959494033075254450922847948776446915498733176589578640957970076429915998115501978519435349523155708606227431471614094472939391212892634932745496035781870239942603937261192458991574734094310425389772159189815354210792918667002511829769226407239669071954341146524012655394658149734781940966091430813262424915655724147955533801334534257057541968972651259393288446220484865117557436043839988497202959373718951496705490551943609659305410009387812371647397709063340399572371945360382091019623188115533102924459238192149049511002246576906553554351111966271130949242818151276602534034120478404535299406659448752485926558491692105953622353920522496074658566059206670695652092046829948613881325657349943842193154212040518153025691538947757020667443953283960357157167034468040350603447693282671425127806779549935661913533393423496266138050100544603560557864985788678486558380505788060679030336035566524829887290992025800708853389115591552508401871348938209651479778154166468439984335907938334265064940187843506760236034347046832747695218562356304504482659868735091650556367651132844857005652591658926638976137085914836327987560967771495455236791352689099439420229598629398252612485956206912672228459476027586710290528118681346464411487897314111338482191639763406235435979144248128594203001189159473008739952204900454461975081917008406813554006106494682362142175123578537962178305895297529734393530255734766227320176760652045929513445866244161171092401875494373468744916729733456769247652641693760142680627300330852289665185804652064459021846911667392358424831563866447485938591538982219122756945280284454011145727080286803866470240909542981579022518908290586531480623442939141666217554792009517761734828732201152530847554185805059762904265547611307750772455617021188201135913483568900327995101316148232137950362602853663437524427374554425375339982422706620331631008495693032138926302686404555135208705699848201280851494600861049685909001156762576936038352952575576656938413218958241591954502619656795992517097962516260471056528061672057433498190616814388504989047707448985385521009845440508942064590949933170260567555631697550343453797627066291984085395431002999426053441734566273922497344375058238556537279717900876289145389220867783980690947723307506869975395536973079765992979125876201975413429961235215670377165673865883434622736183788405261710488955271987540523003452157221348880935870934851063178122291114802209242311223069357663629310580079495898189783278709492889112195759929644991307605951697973380025201384154511312463629376781618582151585159257876442783028498218800310722334889667420419361274459203225119231306061041172935503281245061367767408663773665714630981116816138076767983258267721506468792601542271427264876213401429549351709363102149669371527995733567551299176052624923658268740372510784456906277074883739870818970619639749523824211419466105141804085401044812616321864221622542424429628071126002239786720724461924519043279589850251311107620225515711212731507344481502791186619256873742540566491891354852779613465557503004844249717693919300940741539521433338274011027718254984189502873109115978705191532821090242886980854925345218863892702003451434792270054136912753232221313015928787643194367769004987310245956584667165667698392780648084769650704914337461180591071443912130917553089257367833303105168011726275905756383284419208743393601090059512757230159284769991076385110736915878487319166614812016106953962604270324629093323638962422632146140861425530280101023069846733646874191981429744033081785808738259137550723219059467411678223386212897788429629700842177466283268882265531674439627674699537798879692867320204255791959343997105550438606277258386597771877826039203073314746385386901362376229288064370949664954406018510889940663925088696581230135963234814595922260082442471872259148718459224002770922414217989983601546250369853106264802601268727855247259613943568147890719683655882419162902659348880001343912934679630563147754707118758703245916098442897564867120128971825177977057339986266786367967002196262971078265161931708632690593883600562328980051957570008547919060475209559832842474080891401667695356873211272643080250579833572318754011485322668563321799668966940302401781940718392391316241276219897890180397568534844890342252245353288835560157890030290131269450340872774815084591616702857425441064968862992166702025463646305592829532287918842082162768936286245024144127986292911773398998842216478465990616334251315923868378728533535014364451706952995133104617798159552360871069306346216330653117864594359108853301985752250027906918321096653867269759261111225621575960231603828303579656329430499477215892359478049750021538331589641899637489726239116562909402815918623520597820235760405029976393616493944823324512470081299433268291112165645363323432786428697796823093931271675572099836959389698124339470134022428525752772427155510068454528234191605389773816320765492015339381575193923867459495403098179872679095394717163193824246753614297097732159780190851273196684361273244957842604509697948102604723665633606090374472007799081864933748075339125995044316023785596905064321283405265415478211426638786475574786780420823431316879462659148383297243695854831681198435366876533191705136731637335390558076497497541023458653421494087156917766605167346256876311320322963711819020261970518018051393046512848541768046288967323087089235708859403814668689297049027072002537886702276923573835666720606717377018669618074189309758180297156536653165419368618586301436181050106717445972632313631230684553496620323412977599183168394924991501556990165341668377637245908258008610348397085892942107918379762889351880123957645491360707621324477123444360353246739765077329094161269826808431934316654383267639738590417342581677265559860658075662779514812583824464168907413986280558045512650795523260961869370034086601055584753989953227164114702944609219480018788502747795624415432062854781305056213818944588440148546899935824358001823444036377325529457746690707934653691610947048769045000775963272319386931203896949014711342721513192627075224632315522447223903227704674340609641269766576934484294785533506884508825971565537447438433224441684720091369929768373069063468682145617849288799938241540051187481154423428159081441968623643636205601689624467753273439986992681731802116142984331742120316706764080230805468632863984345114875076241695285404627170121920021819731457395330204618248623725797921484043754332088726194853532067155037555730601609438137895513165834326722599883785523189475826920128121975811901946977583234764243254084226796030402838128994113340342926802098760996612789573944793999141079405703248274720672329262936184479583699374377967729797836343218327096066690523296950397401450320060491396266047641339261300958638274295369710966534689101345048142726808501615525515709141496944099441538832668786743410835213400030259639508685608007043932922282505316321177179396613499397829064652067998646989801932013168061500636454804645105908370924055253125513596104217883569368316401007690175820328532505380773384714138426890799298014735631447685912271307116091487393172762223214040302887249612383372906839094867790641319524831918858497605376502386306412403963785266978153954769970594224221251365134195002025764804629284487044211301170374992686771396115283592951686739494919138733878544397871703359096250810160378549305556285013355273510980940613587444950462727598343749259685378765735778644672220313645487496359022612758471171019276262783970033021753869963670085304626564406016489670117945016036514188829019588379295344294966011849369016316390595299755714466783719643810354200910391720301772545881902618239642231702077943921795807788356057477900001660805848714326969913963256124523535983736866793754771512511171199597726751641620409503250635053066816370341493770967424292972971593200342257491248574345068008114581157663517897812491574303786072166895053771918692761986996849661601783863023647279603853169331195012464591852362935496043762441727122933756869775588099715037110358110268427557152964873602018568984491830211284963333352738423396575318092336099628469797509132499193958924131636336824559013040613672069030313981130629789208406082252068542472688086528346364323099853440622061992876938583610014138951249790216206684122093456875282626344705873109765852003074989615840760931974309619849375501012716178724645103476917996507529845256368529583028590440949673955095791119089108350005510638965015636063251190890113333302380665268283181923180718722579813555596002606282235590315110426530735381871354973144640950547800590458960475515077271978573621711973521439707129621039797441398443823527856811563035497588812278243791126931032058781450507552161235808856931687478638694423404767915834717426419199367363309627708107645865087667827752644588682304151444110633993346767622645210516812977420968565715369662038375807974580123330395900115735242850643907595772479623081743135072016342616022313854190767784094283688817883764643324467743755341605414901166995485980524339527023703262324314451022070943993876512772989329407749139970520143690216967084612790730950576991540014429007846221710322830410390218270940963267624993928175714708259497014882808567498422621022970718623966890503738153842795767772989745463069155877035295254811015665171202098047656539880478255080374002903661385539577524759342701705554214952432410105058794074792353691376285869118661076926662782941003570063451718867518941933262970641057358573150387438380667698185499100589962826184168543466928201596487538005696137261410442498051908054827835519259294982913990361288857366657385047834537919715643642625309604941780710712137159254438994094224955362181099153812855767622923746650798995266945469653881714609669167063492903004335074479111115677163526074787685146649296386808700764825926818258153597465165858705105932008410238836724730079739776452705025785570583453998046855449651543430578089984240551112039036876188728817277903123880348296713199148340948187599984492852677033268683600895712848620239635108781342811728567628396032671608302700489884593758878616841367896982111839164507347026204140763339504252745965890314116404285739536196343159934586118335151552999411411055836243077975080982329578455568886248069631076023954964580117979994654353569808489504147381389968837991100117937509440696279181324355968058150749766559460335691534138205340989483826306021909951816112152488006160154174642127795300567762269121740415999561511961009463156275856332527612540050296474126814757916257737221489982917378407531676098168350932199688500542825882815490829706141674660171843367685250286748947953275673742606173118024203831085331147367277074619083572950929149763466256711146708247398956581506856380383490279501038383060907866745451817862285909563565077515122605588510902802423204349812026734735378560835941019349552809759043997478165102653929651087001841803057169434905806375608058144174464827706290188443905484095196733844733550457661767257293180759407475818267922133079810979142917241151346898417370110172314618673164182850655833457794688277607581188906405121415197151562366127582686051001961726279600969503721395591941152624722863387113874517803391268076760306005006679330899875781973094939047992245788479444555221390230289519491282154570052437820093408174536325688810766516487583484455090410935676976044277362253657819613461099473253369458825236612136475074180826805821877558297283378327075404672565461665954124009090824903894323626849463496200165256347991867890544813818341313954719198628186131622047661608354569920975957338389449915113521094669283764249052054545929680933882719342579768899132623792122008793594938824524179081068026442983984227405877076491294349714497791017960124650332583160598310428656199007288455872258443980975445066255581241456049101216567906260949426799954935653232437943322827121288279728806840968246150562567175690428553087738579865838043815507964107601122162136455107545237176846678395100348629391504630514594066872711183214277697163056282916638758659502521171554001533464553957385433147695401291987992084542003612985372657364125596084272446707446489197812448735945061714641693822085883007129039501955541820871711419317850589782852357522079084211440674780607343898621608228161157933266263778122864406446090914918753104830850457840602620026836978008262971312865092630400178502687287409432762672794656670849363080426799825035307770627775401981290449687520783724989163071446234836044586200266998284272510182139205957351603889673215871566754244144678071363768205727093937839292193321503371141693129032115274443843261353946706302626004995378375073693707205157541500634478351539257196576521871265501903438150762507761415174962857314358629687584312948502935111982360238713616226043025726837449989828741069168943349478926651366539224715506315817000915324027132941439730324233225993132820771089169842883921725860646014614566964632485262853762062319993543318659196002978504015442301366822811447233692109645989284516583810718702749769688648077859434870140705807179962659763934190425687095811767814818564904355317644088057002281854042735599573712504218126766865287978003423478171436508975991453753361930618566784442103084758817004744954557800680589786236459788139579432066351439695982329072045927330654188456710505808571503430973868263583274496146235981517488309994739044235294242539933319718975635536530660575756193770688585778405588625295660785638146366381539588981726254997814861724217500323828473865094539934245271049226794339827162411066595540710057290428349348295682299847900476426381349013631214057811705327264505741064330534341940751136402509056760422777582660428182184666031483182511419643512874520544445709206974251301460222672907846467571081648889017694237225996788421048258013049310271537104582405144546145076010592863175960741466852659020303271751169523482466246085571451811259821853781402519117105424236442413491802626733576129448663997069614590329787285711186102068304475818783157209675966879677418346102226797890942037649736781745038207758963455764821098723558587399815418432286728619847841717725708304044191534697007591353589595745031476178548937395289106499777832586834787511568297598206759699534181940265730441728040456795862730589607093924909283690213777660155244567809522087936242083138996827924612166548402653102421400291617763270811780105721723851789425394180013144646745042117896310607649021214538717644873788546070016933069320986240937156874360292670695025577930755599132365738618778689373751857382891779865394403918577912096232450353528677018575046952255291670749412632088359376515914005093276451535804151231572114235507430838683446489498250158842309031839968991521513851715190032655207573712016983905246044366878446082741351355522065218993616940829790399026766471300246649185660241963931237906500314103361808733377173838044492592584761085425738673448706701556548377101779588410354852055511882473822090375042671910157764233857452817361049461704759424558691515180436941632012668232127575749116486526187837464078225960132772473258353106317715023973709116962972316456724200812539491098506529487717896159732748715478174030998642035606790045070138802446074869469804184318230403868595720770385346129674521400309175191829391601413603175304198938719252722355833582470076381756435291077265177887435894555946122393850361736285486918491274294888406603692745470459048723446741676270884021232666088864756334372095831791468003385766090970920359483280595739585489830739172787812903622789182041415474442910970454655967844133352590569548601189707141492603964400751707955240959625985254987965956738830551189922592620730145146848077497233338907126013194983275701732199453435050479207363002367922963411172745953881152752699593654653409133674358531141280865457416960997417018341638606324161991833495024747478714333867361834356166082341319136981797631834014427295675203277430883853380381477111433100063618433589236957005816686898323701537428034726344609973242386597275051329801676687262531487814720178887027292443238200751516573385056750891230413696003013922667866393779611363160756304374986078415228289785674133366039162037500388942002233224865754163372384645969931848778728474729929615925467771850387289163447139303380401970750549517674850895896280699063884974079566533054003982915389284913956148028127404684067804830703993280203165191440262641330128882171483310817702359481064943632623176900275859947118723817599849563358740084224227057140515219184807489442187375477650327916202763895492211550636593515027355962412530375409793532599246187569500367025726642527776234755925455500335777134163316796912752834518332460885212832720186362474936985904439990370857715470465434592102111350256299742177961139588760154299794265964186464558438245134505815192641730538255813266682873262123722381508087427826183995395336735918433054082318272483313935211150303502604328771267688168277550022535244905828635498424581910116431198711608376714614298993931579742051926164539761510673981059420859728667933554689702245177969052348995421368168284365858276289582146825061610838491659503782848419064034684649744504365370553011144519846123376749419532355915239919598729780546464858369069656486769027974988300573065377255941647899509547779162468629689245574177610012921704755106051342775888001279567405908557471450335895663190914627579936513727145602967055916779985182247034483394811280993671851571960836759456444843555822057650315175304027519918147340686475078849874848510296673030358331798790634084500823331607057443307243535509741623886177494692508284203754929957852908066558260544635374225788335297053567371939890635467315931789110247311829791154566306897580644192969730073170839446578036667730812640670783413107782996506903199995256157551165452102532938001518070247213367861019022016973443155562502503508770863276252165799959137187250703121095354771346453511435275069766573658931757534620847144467833818949519375615878833536334529998859091658850442880758246181075786978863533302898843368566051372616630996928847197642364156753917913613117940534042778414544834237270638067279490819666123037207949359261811337901621175122706246653817088060863282247878265565135744146928209270914811848135600392270125842944611766894278282648351936421917998372914958560396521897709981941850191285722815149691749804058931380741907732016208161872169046130069510757488283810061120402688421308091745289195210081033992645941755750259752277522641834758480618034823510279547592194135263244303653614326268200350653008705998897835819273255013507626561734975111748668550361955076116844342202099824479446226941995380897447143069298228322345568265918197241219054678673905241691346083966978583884289134046790482187778857690491570956759915801599556207211038850737365257635686127127684870247272673469680200993037597130771470280222454069306083799251397995662529318586321908987785537504713474012096158653079807950478247777533715212076837250209680425696927429215936186417385436272398554029805664413472739332166857414566910688819123498281173389661009231998146706157094400921044490809482646192775626013289531056584322810987286323965026040853527951449113888580525847523888499376704550837683294661464558444770957666060881639014386006617460515074025218448159258394583879326301147782286640090269407177077493186053112046868218192900178461981019866746158903987208011978398284491990125411616374440563757976636659981378811424956158105163374619939267791749948791758459027584531789997464522578746790678894061581903294423379340856679430639236961465764412488795529681519150062393197315053592075500497432433503925892468630459861937086975628000443116176842463002098118455243269711474314803875573978436506760084059913318097296129031141371647687379753465728850349916352014212493415234323070229013426055396639638110518385596346528586652843056578267767888651494845392755918774445367930232025391471876369591089856872791532232888595369610609695078868739328598270306975557969827459280873164162533745467626761791123019649670995317266682045719673906106711027402041853635265378328664758182316441410909849188462981655364496249635795264949741651398528127444141444739264496424810525620070498691794679410894381504579946401682984507947039865119119491464753075652279593370403228611119646308175255784133124308951212264638904697845070576170710114835967689897839779561406657301986479446202218584427863541064905664068879718575915699736722729489137073874409162365492519745727928750619863817419723707536634847136438613342355020954482268853384930195963444810042862368165329965398107052625263537637299198741117400581399682296710112789011595304539438294270210526899156861470715162367906655608233334533635484660904875830939833697164363923095272866890364594555920984119523225830168947733432831624187389009249540578628570882672798606476297131713853361836993577593867170316132912015199525523947229999441536287126434103957002719061698560888516592465491663930433536398114695811666956146555115067682556611728515204296324146353147911571902758221696403555857628493926175918003227934544167002121642042629831786454965593092602091037618989615014267538807665894278701413246592642161223409274659303821200647667995147542887855874622368160066808392912576724917486720295334407334470947759783450464086886332286300282727870518925698738879817154545193998846246548202135095382144467896686782513404865227377288699583774268499298560206869557621583794402579931501338217768836236051970175288029814103610473575329853315561157530878190809074989426288070553036997823370519439740212884770289267975556205302970747217511927347004773880386507506030721753323381192501609284909341789234770584208163309660529619690676313201520490823351849568853418999004209605203348026426287808262382770312299112803972296359075112026514115892593426865995752526767804696111019095262506614314235775666070248949958972019440023791697537725285193483668656420449440332781427823909670801998230587300880351538217305420529871216705964691808269551509987384933546344812613666878282287905920117752362878018073562243929400396448618479854114367221275262215919762385429923486994388172458272650173138918271067274952738022079678772559759341815996508248127772283867243229492794818756262157109037395521468302819624678726376375857560069657130468928928715278560587955207818237966324335502109326596705230276322242265243030097765564355759761805713327196412848200903564911032091559015951270401408889899757316127702053829458623986791628751826895574044941652796139445235901237069171072531221175917523351146218008901555775543245271923028877472246124174770481817872103041276665416749254201539055904118467297204957765809617474681452734732686366218902713111573705809958216460588889914529783180202285211996838056528212797270553145318940151838247904417244387929800083229058619249068158059492997930642813381583624198185134862355110212893045580950204189598855649848099404553031654827232589265878109897862198930050366657728284284637882538648591303815205346205292144608606545489241870116036072243397837842350278421742562437694784009682992537623786993285942974081735530276206206407543724762351955902255354336996429616648186875476042335810336624619130305892161955799266230193553597218540897805983489029995545689836865995937704804687750654526993923270203947774608360217125352757081338774638179586240297103031855859179303225590953030579039900771251412882342193546362075427482133684816624753542982110613022887839875031518299745189149483358567505344659824707647692234572749744997081286602039931373710930477367258253532531274748295700440799056665288707993435529147420280202279478312738542317438837758148137771043107396243539942197407731789661451319431154213218582336825011301390311475415011559167303601742595362765683097016203709112909191399003642260789242933085331476007370503465965345212151938553101642813981636297869578610337528028025920884734873774486416606433191136075969706508675517414047035263580938189634657548293038081290238560246975035545749309093861146838888172519694719456501066933663821845479931117703763187392026894379081636278306782171510002178689730130409716769191663667389448564520596516169707201615965758991244888390378283112873859195862721110672731845602864485337679824245175750822293630558361754398033824422406038886495034169554851384451519329598535453265268095462495813556776998163734152032084907254423758365939675596837092471577287992215292452637429368210028299035104493222499181735037906064461368811164971091269764509057361477754355882171204255178662657034196063384625625216299915202207025551499780206161123352646900246681695207874501915228927891321208475122303573662218614011012505234819875622913221804190752446570653849551168936490319357111092876890164778291771237805807919468779901126011506267330958514441848043632789689110423941349316649616696000286673295516684150586144586678748341938827540942666456523394328538873955954222255846417169385505501803136722090080705673680116743628233962898276701307230006258876415253597092859643394988661029789578506030001467973571738652912385789929282825151774286296385874580029645157988447625279056039997543392323130055081293291038554446883452648398674430375836317956362365736767708385278993285741709835341988038594089955430442664083436189313367516487249814815993503880114234250688764706724325601653190331440169764033870965186249451567574134228456696247236210172946166351414982409234946101665283047503725559999593785371097404815543133904409547923375481245214753802772580440119657096234687994560923637511784496551636890729238747684144235962347423852243537784542281213495640965238865070838357034314056725866264980662315457747527701823227590974866688143616614746794799148008398109054363682530983907826022267980871555064169075903202610431161903663810293137067542528517664073077169797906027604282561249412379270844393151368763405710093773691894878486620333582921303071833392918945883030986228404560435381458255886395228925316055345045689411307987872775520553906101530821796054256053843188925678218247630711257039237619409966881699728796435530343209040535235275296844306211406296065398254289880879757928907243036034457374109685397859438896032509951736577753707577424819935760755387660985003069429562000706420108742199421391326863288125555474107395876259253190325050628066709481648977246418060977444626940189933533276611741007202158509864063373004879347298659513011649924867831797192208649271502132670897192814627465880082712419250061646768804314760581867459896595691066273066309654956320121674769141434351367853625736658535236092622375451931412373077700605847143358343315109341507257841771024918947085558071951888114707554371441925230848278826448687863689684868158433748854745300012847069187120967015826909463448558822844010093817360957106290700553705582646661418197449793515464600210904002400738051348048435452599927697721481062245397394180529917622679530197206349125001541869477243472002156699913612619085755659399435135587015474865628749011056878613122538623426167767897846171803140141919528586463687976488409890848738751864906560177437447303957624322940830837298960588923410280195812065924041634151843162615934967584287762376275228281502910944581953452029308251974222371569988899877661782873423161838431584918552106912320534894551387830268447214024522261354512818310783953251672349506960062387399412923236817593177849926306452894957604884561252006778379341692303731201692618811037853507283414927337524882365387070957470679377494369670387227630460591838313772944928466490643523064398939174203394132793715791678741227309242195124443494966852814115283388614402308409172393631603709834362290471566790991603474117100399882383682786001545888029956930641296485412320093204860610587638789044296785366475538065376286924706211424984480476504479901334867277185060607529706154546485006129876284353822797685843497478923680782061715437214372964351822071141460419302596929876169029998409328229028516489306498344543548607824735931571088514970486662134064060476540841742641735933529698987004387947204036455839797183442514492359467370099087454723830484031558232418751114198555563791442095610161253897511134567929902604398799239978661698932335629130374185126443191198678905537428990012674482479078544905325471834382087221608268454720669246965143963185768298610537721360164658367469338903914243430979277645650989240715534232430788125390307872809066794982160926300688638416236600214358271456676451702183221570739046803735711813157035155702104939647527206984607562915497211085116205292004015005171639324321146873372417629815904068903414659891052408774114262362731431196522421812848550309216709089653013010402083752787127356980698016105021167193829634186547821207707462122941420779617323482376502089640082251289408912725090459439554251104399418603507948965621122614786758440234495806925491130031793934369598422657565704294463071628145240875440369211009538755427396442619077034350577062712508957712387213141912610653968057200698377928492108742261031951456003057013646861964260590945716479739730046228792194566775680080896386902593720407145039446355091393307516872200724967763576798863738176915053743285895016458690670666602654816421254364579184030967688052702741921238732913681419960919546096301722812233198363807027113870220498862343586261000173314186658674048850094684212491801006815521678274035271854821097539729443460231334071787685581338395501287882232261026424909934446661461128976716032415303908885408249747739374333310634203926335441198182879441453383367233649362111053419973679524422576154174840356996817550602064407330574252832759306618080885706542744907462586599508584817133258768902291493041587960758362020059285983865879268453611651831145276568539734113348019131988941198320770080590307519830795589570277781938978828502768020005654778046320842501050766695056533808406899615539201355404604339217845100435401382209718908443413296787834843452578384862763603187529868691299551875590308116115527982882935503514532821864399004521491173263546681247199036244177440449320938942618709412080543348510356747039827288474858063249745520332732997889638322541903764971389596449411525101662350271033100675560225360554127923232657103126927309542262114003811070441967841962744924651713786612005701881765210946048592216248300231298845612472335007600078777460502831321762111595780261042399990065504652045560226152190187952642456937261523914608126967192825933593749017346930162493958633577515440423484723923654577190628893381864940271421215310748263130124957460346879588251695113338142299903342547400161146950080470344844606548202808230923871474197018663367758239974889278793417534115191785963800855621808789431849542041085363256318965840303270263657379403581061121442829009286765001024242140220771479095416125162254218495624958795677971575705277964732559853715570050996266192474847938019324272409917870421136118799792252731676995371720614240401829700854025283484645520981945657788661301883810412024974906825465627893918284723413760063982895682219565569797879984256086750610469967450634230925289634352672933501194729979940281971001820581376913689157247473465484365656587142878558433327939864471004411044674536834367469765133061653162748397890946585054559529950289660366982608502958054285546615696362105600686162224692163747011342591180348525095483371164773125459123033746011058658514283793716959003718122819090572477976065011418657132666945761170763435790281254310914168670428991996396151908731003648107604377191817769754219693714986924783160838624484934813913399323858531229257360252241927413152630500266012277761795617858176281465163565260090720389483411866660546811361817946649733746839431511574155700604687703319421179505765304492687568263699854419202253568811686890969772455464288413957903818990350335912004152216620521864445962914999684461024944448029993694833907329746725555032107706124382820213717197617554025919828877926337851101481284926916734863461377690898304510945289347990095856046825585158642714059448152034865646990839137169957455364964169199860467823894555725373923100797813366630464929589530367859213126644011967545088079429107325104007613223365697850305859514112940827666034555729780702131887511584297214001713921425337688936579153395793328805045468308772682981667738832382331398943940196963863713010360345434901818278454471100132909600305365137296156677940353007767523519763039139038106020704692142424508000131695372376891701226151954520828720695757628940334769914121323869228284967651332939280227856559583300882099689632161012002623087311586037201726817561483670516477727649212356976477985126784768062206628102518399775305510350349035716592909601956085948005935379131657290770822392765763056503426645794592514343639440741066372972657551477546970101137241081561471002846850702967443026705039415176895404091585355330429808761927866401938522766216605067154956600233249851266435248885736926166032772845815114666350027912784702827671171840509338026890743428653351413907525167272261039236121867479437688655730859745815757736467341166186201005462683271047396866565691453048602340751688765880042511680136750153525424494453269585634629081964523428841365267430743536052963760873709158142314497319009656129600380496619828854926679295815424319252238634392102935647412034123832770555861494474284756387116080891029726177065054112149282434394845849275183802637006390694608538324800275427634231435698225770949632391215174287427074374548632932027528572205698022222720655471689327530017312572909081273305575823484823591251542906822853557572474905033280338196447572441493237739765937447242889932421430560613214285194008435368648075370437032674523728732521862109110013285407945240905198801912775975373021360690393894168695707613850917833467694295617995062648435147745310383500678965303297592334573026541573440778479887724658545759036296552455938991123317180187666863359400971015674758928543885970579806886325936137303025494560476567426332508281662864370887716993786551230125682210724785095955267527566783242092544556698259794526910845075501343334372831518489756369271156501392926669548850173538606930810420206050856079251036625784798586874549996314757584513943092269056949432753012613630219835742925548494592100489320637399010520279357332119217352026124414924523647032269814316690332858888159555384348463778142582490886313184750550722768833548036324107073233345063016743501659909724424396905043774635144676109058948791709294576760493443720759511857779452710688060297450811989798649150144028393533343518439651172823657242386718194700922859834168305075236991676900384847007803622832051396404199582462844883834683158552410046463721676331398530647775161407664979543699911012902586706120372844223740825193283153572975953190669334441567217352110507803225028803886055075329915560705703227660343230097608109213581722962568469875365029852071273281599065611734933440352670407264814660962634816146602775897918033826500091246322951451703461141389192048992868447417126697501229535767811067178540421371167703466249075583134269644578951958238581483259782716044489378626574228717750854519052824001636796632523945821009895933368275935535921821026086416617982060853462355868850900295559716763176691291860370664588162250568559583933280014654752822152733304854054940516727844733058474643954109399815820588186121566128264820633479672468825812941246258693858899019885799738579588660761915533485956804189912091361329070001117845080016838201494295189692453723107969852737108634486667805250700096338603789193980648773544502710887735825977258388329912757984275510857565105220248211434637924999678211885309092542879323137577825180789124730631307924246522029713916493981324068987408389835204605749746916944363491268273987790377517655436264807774465389387926142371042153783714481977825054362543395133753950353387503663384742491953804903199862467320030427600614578549212750593846052011550081577935931509547722636430912797919975473919579192463993531871506468829251156601273138896770607175064204522592112890162539484089597161767480013804728453240404362434452795753890377367524540348542693039617897556407530563478283844178287421862960653710905947470917072719049246763948724390561661045461321310097453319513973840665516019621382445023791673229414817501733903658686632411384104158201111518703798705171907083590799885140624214806501691889059831325044311481584643073515872557666997286069889425518555561960139874405317693383626629813400896356298477678145302666703975908498848223723762795901972121118556914846462257539111599028218015097873551277081184470721211569381462051827874788087824341557460861947362828732540042321852644615534186248346948797670410229084267722340730918959055862316849464184940529556973768599722460739703316274371886449448783937891825905899149638375406141050675788627325254802636803554793971893189997904749815373728782180141827648523708333714205275332722911486322958034245998309942481523650547357364906587809278461116982916840040257808047298800409497121867820596146496306875623396780207896770874281288093542931092388836229193262266029796454378903319673133484851447380789345334086109343611703218304719702666442120156000835437164131796552777310209530207433620836989823863195898848484786567332500849902884491078995406831026972362991637116609213049653977369976694707929804846160833996243209366036981355068778785152712153839341332864331543636052646203918985275564796600327185361824388924871203894665004625284975505652762205656087805605928316444325456644935769551421416038422583422312976890608468537378924783064909967921366530970957461690230117808961194165152177589377766299733405918532875086883618827393641207878757972513384892831798231039405806623301561551430584638472421182682711472483956704204843187587959674385080499550555325501600804467720611870701582780361908830467645677693562281226710526170232860979391354682356648061949587476808844386578026242456589173225702086952895452295744130435474286972183427641601736726571236516247400485245444888717839417203432652206158516607709810560671996273232203302255695661502350439058142470479757719337950992082033950837102483659646976985115686874777740102172721803215662299770839452023947641052826567996667126671205560750752462872449902896880620356447321860616548957102128216456940979228667924301360305794935331382630801080060926740511727928830472261339741813232185337234551446425720349502759599020942975067342883102927453135277220397752554025547881542268820300035344425592954344632072268254045881141135814125573283191601802955245486757483756833856275076193621550167299395099069159583031857862389797898910655770068879713676382414982544002656611895002851698215204293684265471951217033650294179346046705822337662141013639494461509323419801781618158077690135804776085458422162143962841880830092513317834251456687071375365287551200266335137929764331158297529347912554914374239970194948323470573100234048756558273484142308616274816148644702010267973679262928716720180646101499817510211534484196301091446080932720311255513445282316420093115086243438986928832361525065528594347839505936103464314022345291323793803729436509462967340658142489924092568865993163790433113725270003500526053800407727853664880515228529975543999504360589958699068688216437140130690230380434955118627756163631699819798242632745869363476364318773710076890761087326228962174311348470356757687938369841803573539956256761201775064724459732141986853150280946320601240500831739521534086335400974288089594740260759168396467141398170326872492636332048149849225932446443180791110403561361404787842940831889692983202544654156695764498367948877416096044323144864213723647966081188451321615649011411832524927287110034519203130476366342988582345281182093803559577551633653234302408668442330867804022317969289344323406091279042449883329919983289804277933115372393595778504905702650832889877964594336228830985612506917418000534340842372852132715961109708223776566750894566776384935054936856271871487727975461221156197360367335357313286952626838545683734591442993927489321030899888691852503989653006156612773112452833805556968521703499730760996233706070644542261248224753170683594913129205226591175758800779185196684419288802653238461797120560950962036489694181649956805509772147127807571888392544795861613950106117063086248923334212716659467136956274775066924720674929540427164710090630159217280032436299380118581251893504390821734568799784208528797160039329457651782038839231941515958347834240948612109030683195329304519247049633249060840263875933524478267804951654180479718476813386884119702805441967190207864197060354559396296485137372793146331817263990004134949200569305949015862566779432709987928859536120845684594132447698295290427712846199135152692805985785714180350236275152479035184136582613313157162367474635920422349020285633412643229740818570700698343767712398288712929510138798849752687971592711128724602909511179996555547849763040667648731525509790791816281332774171305949658782047365408526928543487004183722325025142598678109703109587394675419910047723160730068736371816619643651984679249272254892304602456238350132067349605155361345348360577388752946942411575838746948000502102995190565313111501757240779780741468114895144210373296871796900008038209707134954536878618399482826506640124549915677840156285754709017869367887361388971386266704170935796978695766384765283851903221888648652416953271430265973040276052584897154530935533501790243839859435284823435814798842001173637454313965345302451884564488637794630113032384205842087867674884471984300157721477900881701385342189942042956566111748172064431805028912013803838680683900102814279616263794860824659189852352531118395857998296823195723858709154131515821257763681518690867918503071917816482465105394452679808303618586158731802978244998778908443173765986864131284249846853637197901052807318545664558556035515496595846892701236118646890211842222699846737730530145591946965690162764051099020258065979654477458462378586996562145994318851239751243634821278708336450295913131371336533712553416913071970590575262962947698283244708804337154934469049536718498834015541708783043310571860937534267034177434536756931438850505625195167408954554275018949346139594144249202348898641307919354409302390228616113085898997887069263839000393480477811617728120471510144117493651903382969847606066995128897621214115663307548645068475216828031704939322529934722590148282271880166506456420720710973258499561240072112964333980884664289371660671178644649832073061654394208203678304342711088688992557917583248860063492395128790764121468037816815760326734504706934994679486384364234475118653347660240431952564754059806213533164554153984334004217887299428106843313633582934596541646754018673649047713634110096154434224940749260632244019712904492077386662214507293900710495511550633475059057023950343878915060203397872989179961986042934270186853270724709572524684417741679820589562279596761852248139045975592454750331694329234741257199231514819866376281687821798919826170464770475874039941631396604855758811249182037837430000963690604551358754739150663230892339907979846387684655354446479576056468058002526244119966516460624109242749468438991647761179231053318223544371397272008801891211040004219768908404639958126177956677735509022238212988316383855741970654483759838848471885805593343808922512198464018425965242325852149394218163103828062235651233560076759137819729997177930821787467705270155853275181831683285281736484429843306471196791328539355642272636961100476349952546954205207481924213017807281008073653105111951825156939124470937766142236553675230579756287969180758368670474189115415870982863977400315467264480418689842195009183168011106116097050836424235730267055736139393526583976500049462503716079321756179611536195096165282235830818988650709965146683880572508596799495142786323857726653114894101045730549780349099161673963239630501384971001382160041464719487674963973666223928431480154705105048698881945343482566581147653328189609694975284325998758298700337161664049480982710499890801478514061859603731634633458164276228021615282982827492476532386354812153831145594216952802778247170007866093452655428538985749382614510469659917037166175092636630852244934449454833215490860322941941784952302613890060838265216234189786893400798739403437157627473400272222877944589453669780746127136034855172097877486199757093873046952393092362294695715905220400147302716065917586852246423012956785739166075524452907995539711389966989301701231134242574028049666032559893368627367320412706503259407621000785569194818695958146357906529594917338548350505365843245100789372091576769926495453669550190931016582017553466033458194783446925640356617398810673938148279707656074707464462445665473358760909630715763128839429162351217447703737768667922859367120786420535384042165342815570652749788880581570872278699310388004774781963120569131610434043127338896190704449078411403879470665310333339133398251567753987459102346831101957506040568757629034249271125094029228025916810997176860756612867700736784042333905713877401498915404822829934329116039183512451583112896829894214880989539396150975316476488863168508554485910011108296551873903105257356755669277812910558100979477316486298050414061768417264190580073606035036140313235309964070669610603707049155077867979208121805452921352790909729511960973634185456122204229997994087022036853854933819314035217558725660318744877408693974845272207769262602871469017705171994769463895857003929851887270442199004172850645187600131950163051709721796945614732054574769375339368254221682212146293986181045422394170182291010323612156465293657830112082502447315303059220706259580500135730315279552205227254432370161365356833006967518500092385221973191005986277755225503483636048153892899842149308815542316903580231361071641722795883983863596351985115242955950328567376893315007506808580029169263925024297233809396153317386492564536166340519094725868046083336377817536456920033819166825043293176147847879136854065617606214183183971776773133530168074180102957689624432804858263673522111069089275855408569209604255762573213730606733248061613553810683670472021238066123118277548011698576762552164590744525505464987341697438557732832072457352734550644568046712385375833840586174961345549547286897757084058817268512353598039246874772287035200620039474375126472678174153213754104134150314881656901717819202665314123064700643020385172185278606630912545498812370940763479343459896829598632915430498083007732203351821353519278227039546902675823347741057446971369691468421677515850980841358238798417631486103946425775801657541233758418345011772073740889199850145310215228844426962304561378351717344158906130295813679827190607334420045423506965801625486979401746391348430621423528862746118813109883859686769931061946839182220135910541415444627630547677811983766656304000880772240914931508079660255005363615411540161839209081218311134436654532543186146991544240388948501735377855576171328667708820663069843897604280041955089065001050326217580313201041802126677478153403595774590233061020750674448866239472632903125485107240373539412232287951706890111637659118208736580394286383596328684920702904423028902676035957047558214873267407563578807845002202361637453984684724685657348451363710503227731004743354915735584952880370296397413135153318944469311387262437890602722258036273195793556666074074361835329761616033659094067516554871316440514132341505790600306895887003361881712331849579644120895904765733385356054348489176947754689435863462640208508181251302518498750034047699539650318413131140952933054480804955733451595914522529705966685774119357020003710336702932767401429411605254139146660667849598011211257386282370056057935786628991324664312290927657799798303679981144223333427715027645034443372923177416140831758292425602250811292185817246607822798474972448231900999220756384003622162169517770198012579484020364775054008939372917016082583677317245986992719648401468420448435670402353827194779999694758735008564661329310120296229112118968480829891467331709293587992028595615049900158363519269057415461252576376998926099080782840076852011699643189801461139668007767032729515692219036773813164641381288631356995310176915420191369913806801509191106464781241117003421063187390386518101172246954409823842308702108023383957528752994206782043387866713285565171240315974775106886726471087265233135005701156114527076380168276489706663053395557465436728188840529597750215659880631601456767488100134060778786339044864124289897179452197726332498261790001485739520777027043106013746830006161466033069280389879681853680635203954877166563470485081160317223706701065282314913637213421919889012287365651701256992784454655228872787945603961261831778949092763676923291236517798980836207345932268755961402540836757568966206298404247380953288937013333482738650654432969511065319249698854111209251726575812559842512068139527979536585576180504466197083311491943277059735086609267964212638942724648150381954868912608939685090443484949803118715220462278244221450033956920845305236435207626446935279035660651503766462731143785469952361404692904380449289657030425606181129762664044748345893450073925530982378560117083639725284043412943977991025091795971834398120876991220919428435656081724657429903734140811158020062513117915698543549516756147924346178837170987010003523149271510356005106939127917352689674435025469116425743106196528846753357029959029037659369957871813216124080918244128748354168323471445731852218039571106955248337053237301382173255988990707052801039566416624981154877689355943613729580260012632162283717767031255881481062558891252373000057170080989392475365781165293746198021956501268672251382098848729062699030915889279143524221649250677253779420084167413958172739850948330914774660868697089473160190925626734583681093855276632710889796313250187847496303180184804331166774849730488684249970336631666974424284877456597030096789709667306019650937705831070916725357370587551907812045584163066406044629654106464215643290810019715848118824770013934987377022768330889099129673652058933679197260017405076547918875428355392134326246376584624262074370628253024384873190971182383153110404273036663674298786671114933180005795732456507613177449133394451300022967111597992054175924253148298749958262840621260788819013325478065158385371628660437112622998033289474077821642370946401878902871052546943270974437738870118405365034515323415876584268911309081031225479072089396356691485519583565558794456076792344989866317603075524183015436420891522915797415733045606383124074871912984258858373144817684059883220171056440967621267272956292492485886466802812327709416333048854600813018682898653286454098027073589382773097725173391261343267743958697715846772119555010427915900058972121259461717579302770829512672721676688170063362617454723817437274170604306727782778796622996770066937095105626524835869648199274254453903836026082431083354468887736445771272832320364559200316406328034375744046829503954905402523788725016265175808931425648749225584749393316550173162572911918724962426096015011408560449281094127201454595867452984368274870935561389450492598737598627375180742314864502820046577239603111561145810382096486710642726997004644788135624522285762409852423653637534895731430926064718791260762489311453685685790609465348266244364891407381393750311443845821778825361803530265492436042383767262170907337503273704707716271981638261939512316974213268743342044797153879234552575064996834188808332882888326397957940789092408459786660306961413614046843214768380298366923064050132983848448724987041829045997714934673510482564749716767827583507204669416927088338917361489563477492937601316750287670229419389960149894155639620785179083607504165000308260656759569633815846378687142801344252033613322039033657860101069386260223341373328280688937535818809472690088340771218336875923308427340671682018424278125223118665214004744313672570365928401726720789395288468748052648688641343144368647495891058350998339972246209368695076164370541786109940722827270320960548045315194164211591127221833395129162002779217450176022830058997535009888632700178120629001332653980573238453609952626276502032637119969513275441068277936526383518637285580189046383770937589963250283883523569043310146823138677288039294925867510139054521427959883832939116100739533741532905005578793559233454344144136748354094538471640589328974673939660495469906059041928056501877375736553897998342639597718591910779599342236388405360210160214607219723105496919370891898800931810190996685501169505982375173875463754793891958961156044626422851963841321814397394431651025322900989080343674946885460219154492300146041455461677095864888415977246435217176226949883992291901339773752959428597513980207781416517161903456802973609514495517222265509069606851635502560606549642652049451356881167086663283342336151069480594364059841743059576562034972605830806399794024611054847003153890400771153224761107525215287203655548654379442006804082073431795051709677984035335653343051401100781075510511737324718127338132171832627535485371353744941044942673011546345567802367880046317037781014939894482529315285614940339738218620537201062224767393822314057071249414060759621070032202232280439061014412497404165143774842366287504825587024884997640504043453741589425678387548691447136187735633910596459635401853604635250984670794678430473478037245414355763725107410503844891493763138291652660845967879301653440696937513605920689990396471220175226391414056737890310881883047564909199179126214002180375677710843529264656812538010504057654111797247266063382515150443344138455086538881490801684255240951274389732857489538539956196072292291876459531369597242166938636011735880510805581844904401673121647885343872725551676049911483660347603787650434760126388037127185873069688995057849785279565506306056611072206507043999871748510582806016125072554834764571135916125194289037924893442642664230046635676523271698171232888560090816970474533579910512586753708893573138270944882428465993204402501457698663079945938058540283489249268044858762222963410994108386774882788430323853890247640943248583407158965443768713146954853232564699268322476126408918607084007236321292607698044259739791591827393079730846033710449963931878061779911657811785063019465283352234066437229182820867445104859829980702784027612070200914719790245376928019317921633041031440999960725472505849695209406957489555197838220479274330510108155719155644483414681744945302635215406414711346472764005120038301892202533754762605606334395229844011300277810973531867998676616834458350961889244280257352104491862792356878037627865695820316514364448795405450326856061042097416747092757680590677905941907451288574806865652535838090912979102223360347568774489486297990668659153467448850781537335432923768423680774154519913037245506952928013154315472487714629031916525242410178715500533582675206876114608612190714430529399434343949945577808203286545049712603126847614711271398644112764572042905893622327489718655909144583689156621456435487803668001011151834060399926470125859541514651458599473431214570516675996035912784865709753598494585398113455436704066300643569769603145780040549268395243344329584057261059344357717399156635339826547320823793275125285224158492231676453349208909983559117463257738759984276047594120693597731124641596723974218714965022593500123514227514636103483751274961361157661492974146109057281422691140145057402642909164783117070011422149971384346296062818070041332303071028763233400241162901732060238026721192909635402443235425381282167321492785949125867256343627854536541515233891940380776085356613284870144825130298181509376991306795287516519041689037487326596368850349318610976893817885012622652908379612750651494133883726494918016994439253061860298468696042439800048069938477551925632971774219596653557110263400924844772374664990524863688821486125011299700610828616272581262091613681648118565677612512588416882244179717520569170181494351799189601890000237574720393128676993767700191732234504198132248320582320201699529568975046041869517566682029609096912116443421939314751738307063229087322384650776239416116532702201752033747565003096343051225665650295781358513864878617781611706397940978299760073988181748667521791359560960461564890545778547777406439257350921623003068175703239597145043480733222555840693176021443272080026126048094250277985332308197862413403636033148062222858959099680870681284492887945604114203592299360928597883918642992565248115976627289206891198974411764031082234384175626812686151042233195068803730703147300606782864743149091343401258357696103237006484712946205908265739156070230825510041899011176197146580568228183363493490461453291970675708085907457567051573131845126857788849425040415301022011685049573407826631760827906784341938527844770061187671902655203747674569097128199544990973545591410175367588256610361174077508080895786747878829434775444280887946240799053503739473717365923366821220915006991569858360376964645230851338540221273950848209698438231171323868285965714704102770303921066819847105876986363312002073177686540819828288840005455823263678944809302102591678404830110759130845197848671847259597974681900916834597844676649493922672251424878048045247829971652812049548963510506989998404956740992064830704530110049098115502709092660575939208583573666776494758889983583539781115717462379557695187585930245992220610565076918289855615717688617977227578786324209835371144122707409912728610572509060511873760034278558219992118789776118846883198598185456715290381691037033039967667932907633185394604503215486411430800108455861804107499319930508423347183530089078555584940468415524704663027713735897207926900487365145212462636480984772145502456907324329176351604254270671998887795891320259405356465866072274887013216081719101112634890314044089299819275947935563150776428865061199071279390000480517354378374889573919775449325556536682716260608369799637509211620263362752798832047713283680966613988700932408057661631757728644505729931351686081039084824814461256532537751384357626650259506242219887657771712082014285425369800296460932944633211266716670754419587945252784341652019004644023437391466749372277962627152702959348697962896747445650918588140772144927300440845977764556550479753555375401836209894309745006904231844449633884768069261542225646988718815623034594021558287287540481011155453902160336321177788150893434573085370369720642425795371515686602761260678862235686599101417117469034417082921733742091172607093908238293197030185487296702822453217345887579140150639654961336286980778367444938711226759093991582955409927611266072322403769409277130744484780512555059520831917526685068259193157025134525531675158719568118386030575647526545733686979754385100955593534219763678832686485900579981001645365404430252657055771494816529090550665698115242008873454665983587787726236149437926752908007740694676042670535445460343991122546464378204296086219040841365886923988755387941298313354778485955306192116021517455180610476761905743987717865400933651607305391543279099867304226666627083070513494850120764963257563630260627994174980270210991155783535232424870111359754947723597485011794122722570816022508138113271844759490425405298039560520018002630520536348876529001044757796626481055587334480949609199067364043510124242766078357707127065217750356483484778922665644354458589634939442092008059162904770995318362439170380644977847822672952043054125786982305317228623539685187761764977686671654083684959284545989394121127260343070080519906737920428895924751514068561621394038743879048354363179702185603698042625575713448828437751319931317650602553670505047065218327222740914200133636112499294780488683917227563896416820000113447508780623030781748529919151741724854976953367168103793952191013508305958161774522058706298426247735037696872690652608525983333910773175996427936757442347717936718326851232108575665127647191696339686948967306846077454071649022779545277640900881918499522982690267745558639444222115300263122846799762929363659275429723593481664545302850320705867005035552859967013568522457074281805724264796148786319910248266052696432523564784836125284677983225864441433399799533072323757218885692388949017094497536498382621439668366679510701801155914972845806686797127921991838989675546065198746959355306107693746453914330509945755938794439169606272897285803155025277561856950590429430462854306131915911269979428102910816210111660120282458506514266794382920138615656158491329791293850641017796919101887251821734540062250742799825012499656763640835505005479529703504511669311577548852618894524029503892381739883387733399224969303895744505938128793832106905609688558347279380308533253303337839101108004107294631370664858578181489040275469598144416040287638134800980162581401117659021344606536665938247286929422311569438034998502167603645394932158122659074427204471669431999336185864677084886254902527218090157297088081990054966202689810398212828699807614197622283686447925214118653821512784472422404743128073759902469945402208319710720854806689240600706531108062861738576536804126372252668074037126160325722471142394499698782741001368875858457638382102402485767250403498506487483387760743896635122545321604061430279566048525244702324016204663581248822201109950359957912894207442254508931359421373238862090900458740601601265655557677599832668196142747528496972832132242047523370204273406682047997632593990708178129478064861289049940372021743522256354394410765258920277147665592153474544161095593330525431798560235149590824735871970782365985773609259187262069401505603578567480073308546923639555300474548648722307567939771881152100090311892616804716783401183473200683546706138811390819723186170258836566597716728005990440020980055095207233999225535934961156071603354319935403541874400637483178690541977306859768669128038415379889666752780263115076562857116088615038567172519336779096399401245128911732502553482561295855144553996697758262359265046137217328246098712308483843362569739642422204919776559848882437241644565066655513747673981602060659679918964275261372259560990609444953705661615477755734925749163548788086648134608448762657743234122096441656194394703672420036412021599317222913678116760036605503298740872860353741253165475904451905576548698736660145271979256613965437692159496920616249726885542726123166874271691003863934246334781087829744313514797075755911789271012995070618686543229438939715294990375159129387120899491027197869904363230844445567715899017468647088846174485618188111622186287897711135794238999246475362790128887960460591851328816111587907466045934479877818476820714694859409081697659003025399781629264140246796489762206649039365146973334787646185894453122522405380624393817839522071941349306511372801481925157115591850215519983419410488914194643843100489386510224754212276004162672937805725853981401479291670294240989814261810626284693211663787241019025970716614099519041882944728801822513167063721957973584778007119904084874119821192764200059086479160114162067622131212755225845239476762307127248381827611139606795637002472574877695687106059526147201289786905528348226824180570044541131938191247878356023853130241022653391369530649507389336936370732347863968169005315528747906856650214236583931094996810633672586537253607172447482234877466559569849109640480464801313707734876231044842462243968310091660242502240892545930074104772567777442822453256414120069303791928701578125714961516158928261553614738717316620463093427583122728679858047545989194173496552075082974480378139969411022500868661508900214341317704875111968092246291148764203414780077076806144649239956207863595395568188110666194889787049961837027019665620405859901761137970909236181282734094666107748724971007720219237637360197127830856554673300777557329546964965397182419478672182425295549582278524183667902849065706722246273121286885374315169884744605120824885644707414487097488282895576693613321493414245649380753090970477968136000525780183906638457068460387886512379236425008382587944942431776897679915499583395439203201692896704459761293590406469443367420546419225968486885351813702884250403902288406469076748218453257774454141518518871318924569539998433868153439836715963247164562108218717727721418293922627593586424038917766706982956915412764843306174291699423346194645396204100011279685109041356732777965856855685799613385634882958590259486753665472740149927260480444407102053815309285406645963775635616678075795158006636083944915047845330954328303591737741091147481001862375701101816566750372785788731299948640404156131158184858929830533143332670751497252988466523024191595334173255112627409103548083347779717396826463860043334320830686610284622392806054216887237198153570205599905684555224691934054116191007411574018306851945799180701299716298915471860137396484405926678564977875031086192109474811351304666045326366460281914919537293848626285905722580294833359910562706808802233917149914329818799418335561685274878667277633113726413301214266772794019960205132804883307358718852385427943969597557278616822578377591127712859194158706871084787926777090980627616535875398124073348532047797504702562486182123655757805988730098038602140239130845565081513762081061410079343217075918014110492544111130569590166668173948472318325625726952661025304688002133163832555251661448923365271087825552835774605300512248741014210054160851921900221597035549836084578696175153737597923218219985006885123782444757592277840900019887079536795116129278073634477684598453650116196947631271361774370081403609450189448567450646596077382796340814499236827299261277497430836715012968630769285903838778014282143080264226845991133484691508125217303525169010981056817757866943491744922355747762841183185115087736773921197998484234089734620441601349190009724010367887433829547192047530088633002422618614580371034828383942530676530002135891720121651479906231587108480784256028258722522994932276683645884852682172433451486054504081185750807819970904051624535895734968299920576847920939921829891214318741597319690958056865334572644641226689006612066723289166708476387641943949661948410539938438983985845250193007267880604623058432519863661017266358675342340845848434465587996347065689044686127076241088658728020744695214015521420221727352295658744818461587679053531919460447034708553237595436372687356633288937765191006058182948485397197485335078993256765638816934950328026638907867695088356529837384501510070895533171416154587116381115283970847033273135128083836529005242366417121532101547961854119291154721385366308382417205679788439983847938238644327836494764625763361193026193193035491534535198761482941282788097174012492144983931684974383328583581580502352828597973256139912818131694397838797479924462262241063712911143228518026659415914122244846270487208463029922052766998009012436517534506853468644609448218460911215584706267052010215234898991957343143968871837987764020738025517114803618312615959629700162760189444106731488629337300898854800242808571857378019637103955131495653404344649759590397197951854669389284816924002406889988308978943477500250122075998847400905734816124888783344145444508908724376747204302153109029925637781025597411606974227705083878298393738662798643923773662714213355570838455345904848865353768696750859514279328529425159291085087652823562849129274045290737122241682217028803405177711855079455142676565223856955713916870604430901622545742846151915962140069517843657505118107118500269996412105249294018538626819382745714653234024269627234849467823263827860247202523887999783499019737048465111360012584491030842888233318666009709392816485922570878779070658566446746784051366867913540265384917696236763613872662855838640173416504773325114549537688834250720278780329512855208919029870439132410393845889088803988608575519482078579638786760358329055275498626098065196548424494131023191643942292392971125763601121677010667221961545116760653163832067971515290190314220185839406602307454136594350261296603604681521902438242642364733773619823005095912009385582019115185748742520701389880256111532760697763583418331689029427705145006572508642363059636967963000070227029249066580950954330897682391968226699224180833169053894856938685306774569416368174789382940202633822949737525182271416341231864962365206138855345311832369445420004678868689016700609990177466974113179780552090732456278592069537408524320230241855311826250583156472086268670100600840514484304915230064088909391691600434720724364626600812141635962177372066316933421745930833713591856081205411946176388454419306626490710335345458029135765426643458439790416498221926621499857827734363510112099617535016170393931588574074941614411558038663566430289148593890522530471510667111084185209407063020019303387063090868841960532185245607261212631744076303030431725681881853608729362313021575686845383875302508814684909676984189434721329243403672802980809613965827002078119462452810047084453252849821931650364289411911322418368733053189690892231956772664053025913620236840264311045526287154317233805524462209239394074884655683360344229444828589763306394490565301540768351529444338373040516625406880365665162020213864757402925998338467894844728040929958965010657145312102667306561371635356254037446615768402136639383158274372198588885854721731247438895638649663296926060718415723863064412791018773305494256020659945229850717770479505404447555795706592026662755101457939726621573582210973955719819004921165790225374905495673002388703306545886438601099493648823459803103599645849991790416545213604119262225446244956612323191561003810493643313832036150003561576450298398580322905886230847935964366107435967398163058967781667901287921081799253006536816574561003698288044119995706422901732388578974072902353764239842775529055335878863674550739518424456196463470986240459305290420317821295495950404267511493383070765396273690464619532748619273328765832638200474645554934017630570219517181704673156638489091729860944128914182959846279953649456316059278459388130386590394730134318820163022445438648422347897399980124768276640067153514459524792095985503760759649629921949201413183442843868067679537282851180932981020080512246365216400644473041164532933591949246736032495899471252975941194354317604075680401699865604701784925961890304314189378982891265672638106366316070200033209895051699058840345290223206128021811563756302928710286211365871581558905133478890706817717928484226598992756955889284469577384432719484717835430689462472109355712081079277698398185663162369122464783704324346798990327000079758792269067216890147301492221876332507528808982208771058142234550006970944054050549744507232988583654655785473670829569474729094005279857997129287788808172992429543797886381332686765760660857347459577769353773754373118676594358615381340216430699340926918002746389158404869356536176571698194909588826222585909919010499648210075865791206041532497008742435245042581564450097596665123733394395141211332970791864283553226344576705850721824754236895020678113267015732336694167504106635385556459305912119073541491215647262285147789569039476332023883869155804207750815167174720196181784705423143006186760700261031320605772838003008227263775273031213849830251146201755601887454145216551293885290644503319479932430870314830422561426317716648213863241159141755025685514844420740911958336732024277825870316390979869725947298661750652131833712709437649005462946402219305107595390529400350099285717145985088396366826755776669681373731825577912672252399124703934626065791736303253173655017317387880868213377455640993497721658380412795741784353877505534740321303776342904060268312195587433546306793801683157751560276089314634654933368467939671852416362242305285050704024859690695653814056171436877679506751893535525752760573526040667037913124173940586383726846373644579761770015794495187376874768543759596102722020478936535343509415545426687167599881792321495547049115866695558115836230564963818588248680185941593555339153829246876404183278491186158395563271342552939580201389654595419401161380501003291449910703799975832760032107517369623020464276725916157999791205642833084515306164795835540057930305925317984707367614478385279141746973148883089615118356583334884115138196444783223043592992061351302467793518647029376076457908422184918290803286314452058545822074935882538839606603113627098994459374483980603830944127280989455818298951960223064627352499308451109029826791648184258056960996038315156771999967049595070245493496838957350887068448086777789342203726297031774182485588894540775176539284214755746371133274453110488091511387249026413094822535095361019135121754378473563872517282186503689445080357855383345839897422422082056610159678571853135398380186171636114041982906026792974416373745951667613329299259350715672189408532745519915007472685534913906008702939653412749333474341302784267997531263268301146914143609691801517797230548179571565909513200330611272343430934082994149780630195523933298272688836083380460888319060872599339414814168993503027611921583315679114221497042274455065818537710912451561261291201026701377095742454446895104602538543283845734085841436603064664258981146518303857997746653746610387309775685894861022476348205973911842470205205201709769477952053455500096361527833562663863022284976027093184068868399033866044462395070312255735737474135176341258177370094526044701661363086368357000500197774383380543718224132065112512403953214000830965461937989272144848146327687603305798318133051075620813582157640244747249431569268016355813226641405678581708437447229087827729394159886452575751057692469748137707508707235829757021334032465296400614389576758658618416991633336698502882081641534493924594265437668387898140967164608854909662112734291403382785419578086715098811395158571101683715894056917496723001842220424459697936787923338729889506276467993532256717522636828458619851391104749899819246722950123661216579382634237020984117487612880213056626662826609386983980730007985144792944254397213430916645267026112594193247141949524722928910902354776271891692125809059672403636931215364036839312138550148457089432555461262123028639526039224215743764710103575387280055028562181540889788706004068355121590204134561201738100870594655582893716749917026029054542443091571123851958867000914383211119677608755727046300233534025838244346910378844433778895247166965900383350815033297394293047218039115122020652962840648806409942671769122376936820197728819517632613964541622464344499471379606426651249392004100238689482518195845402928571060622848041590710131873573271904846986005033524270932396989531882898020216193727277214214862981368469611590577032274699163851160958322378683293292027895156227881502069575811378964424570585269175801679146324436585703056811149439108646926440408725550700490804706277958009243787969342223227145241750316780932083203461987207328175673568382499518868712167769503674742073934477763192603242459761719369183953556120261411373092549566724359770159084411264991840085255790417290602070864426608532808500805575358621050109084249470120369762786165112243354353231536910227207738165037653117839584061342397964933100700659027594192395296730795154979950589960852012302961997029270403001369164906732405673868262662308679752255029610713769216328162827973237991050297707779484321848613067480139694498167302844271806636984473239352975347327348032884759020587970681382630389846997491212781904730122004513822005689711489386812213867487528606317504176368588168807771216808803161238022593151242212243885234852848894750856053354561619224242741801687546330498082155265894687379745720902444307964930669700879996571999673858926731012875265656209950606722699425939948745881888448102300558514931527179044180241424026771663520770323897045868202962287773707718043424966738143078048406601889998620092571191477004141090532802577945894017377496397216466445684659478618266847596163551958703072441609742192261342648573271123036907064780954613773173115864352238550917919740170289008762384629780298136910962266137596413721521553110803704951932899520001491170198863034414057798121689197632069993022537498403499372036462850881857454805048070218610029779439886717835451635365306579832112166062092545753831250932723495532425117289853788308496149199303497732582219201490392191203867078018799145467447469921391647768973389360981312708890074060793021596234670437939859103056322882246394655925749296230563212385529806577453592642282252681505231470793204934390821348927257693729642120791721856495208833238833104965714542579227066553628265227785892195462658969654324841266033957506584224395970091964238706065658080093579342549591355367341138813123435552163676303399229567610977449205037117159055466882927963500271394766209189788654788336857200918129950974830807368569408642190190033801831202255103165340970510686652973017312001448059442384246173068073864146753825497519261586968139631998157724027577854666297611319280133094854013042802273389507722834741373644308540501185390257278159452181278384337838878015755656592278916409915247835186270519820853835622946280897454678699564475451070145729979829400697333301360455120439903108716405098832531155668494999804602797775271789604391120806999889554938538416607630206735213021145770610095276726786717903561895246779527984403439941273415378325632014121536554343481552632014011794552810022848730955426734513451444090618542247641722514658875321069283537843639727180621851277140927390162339493830927936692102440452062358680570491855208565471558005385236851605910452897531902207900005554864904655694826385101374497985348697368821556488151576892933585713902422104196343406669008336699597134145836419507731420935483644836563397686903487134017094640807302322935358404958819510219102129136583825409732750295412914161537653061413607667696482140802007792628651168316111089622498250695218976197362086439913032285763028208706080665792265815688927791894835432675654362395701621842954790261251859851726272671012781222094085181761921730859622434753840958149288237354608650526029980889259555191581901772635703398990442570704298919314858240466759105319533470037817780040015655401547542980767856533381847526312219401876267990023621022373698130462673067714986462062318173918726177460792011080756047128484023602851764572455942681934054223255528064715641274406891279522058425745569643642094091602684577115432708397797783628472187767645868732397847156197764311300807085945510717127182241840140240405516069155398738917547524178588306795173551712114885534614648093920531244942194316066448648872033398719867167695611687840487501210281656337179809976751126518811187649348351303989176289638041714645921952853148354975413365962477222068351848349081711187614203161639594516720075042108037048127848590159634714900616583174561085578532138028276062446040440962597618796092762170506912788200062911486298057062953850028119876278954909256990825697217268979884380745234279152481509920032373375555867026837694210148228631790936255010299787638208667843321320855237405349918079867664348992246563653552332640985515475398294829048897928103026160143113276402781683091473988791485748363012028647376682885499794041187661661883798820336469216325915607284139386644048341746942501164226968462930419484070739900692976476399844798985760952264108964393397598036258655316382125274027486089738584698060058397398854739461886361613733547915196077261306850078138311481357110444562570618491643512006236357436293523170861183753292752521407127815083513387110659914451144524438416691055071254153138116094457743971873795134627517502397212871777708126835926417296735742256893490134878012300198907233387249757163918545196096036887197881656090863572981180799329041960303253644830363439503097273980932687787298657471600018830312657026352981264065224201880371503752791794913636775164476741121158870667806620202053875183043649476700952745579101441731684262852253807314710619055482615616193151921724347460915156792431258934417094706520142119623468008584637560312798506873380407066731683083545332827781753426820363235915275518849431618736941700670108010389863449667646687234075293355083360530483832057756118050174760600192465698324334408769806076884730711623572934158689653325129382923060212289995322358856682892823323612421727377362118392080325681335302534402531142211258050964405610542712410177086419355537590691656353885593123971090960260759039304595488343369495591097150958779803097351578554461207549181453220177247655988662941844212354793153170543170554795167676048824634525800237465915542610194517818929959259798353893814328890455207387813989102961434190338553293501354424626845085970342147672360101560143468827222346211286576321789648521742731284696291354694112937718433471295476287585813165646903937581077377567123949571885758055779829298325436166945759333720209529836681429648152132167501087964306038523056804625734342510087200397687211513178946574189747591541217342541530230777346932134232087227131663985319524129326362240564240859602380700721036429997502250805900300695718525307159377242123570625212124650837366881907098019838516150715891367170591180286843743567547571135005575128218365543460566304422519128121659208829946976622100374890174798819751278989502829185482592558846889216914727298317364370422601745568003809179653240108166116151090415511863418213386131689279368989188706788180726519657728549695185696949157086771028909860387824166282620303187779857424271709924861774283714516051212770722444008144487875972390788271868862460616911935165903789248704177217762142696083041478769016025786768682374926248372833978668734670363494902837046975549743151043438456790678978266724563702571990774186670275077895154054664330008087184600214651512647286824776413355652673284688312694212869208019963474391372616540560128931027800348834750029201610562683502996123502155251465697588596244908753325124304103503633873162099268716289548725710997975061700253827103969573613227517275619154121952736697096989991316051560784435825617766448028042542225441263222226965132709441544514128366579132163256753706112807625537508841824956717744789613679779296214410270613293237905130371710063403030640759900845972332466896907638756408603641965068634940665551371880795276178548603015172796826184686285681810274141250759004201709524028726313454400445390007246054578944356733316452397662336460586262736868643441422751521458566395899913153248739097713226413165560845655268214234037280779523663551700004414723566872323198942128051052022820605141617145359886326929435318532759384319450437481035848773596236466406840205081396746419930249836490555143547387202925641176821569626860364199727493578135993873348400662571653234557519845835501461219198237920589275093006221105604966673593475388260331354193220043101375380821822226218015467359845887626804697905893162993201289597165054747982121817660733030773350084099277439756290525905173857858859385164263560276432988274521530498124186509224574254041774720983782404170608038543057031337412471582245291208716920345503379703420502656495109588679709866445624053187300663018267354342660892358424597102005797954148633365256260619025635301170227525453017122468636664137102917034437613332923173535268299550128812102786041587362256007181674291480424477966490166578473904539528963899595175499098563342430776824801950100751808223226726639937310333588689475744934081901397319160249876928327685568732787738116943592106412238591457345201047980855173052430178851163057711406654177476713161241201978886607523662447412985956754249615291168659526605383940902070205168897368363882495292484988810084717718324748441272347366803141566493172310319051795212563118528441631722989288480956379860162240138943911985850795473086547176630201385341501163198559629238626511341468023076304566307791364877507471158933601839531658330052518640000638054207958221970883462623981254436414529649011811963481501015827315957026595563317418800403924605960836068316350184806469863043769086776238079575833143206240142779829772807359299598908925199950946678376038548686058171813771501531270894272165295972913831965614796026355960714904819939830787359859842942827527158075981624847980476258743528178939219230308986170657017099984772250789192643372812880008585528913126113634102140042109237356130480021468869305896348222942350605992694080261447532056981595638510242779874755269037065879256625158953330205782681960493125950855964704981556625167181082890915462657985897314017292695703641144419090852838162982660942711112795520818192833109083238757627843320187199258316019147851702928305705493300246707845319736775333740033522867841303813641758532888506471065058275198742080310566113682090011268869019123614717017504750879341280964388727184469988697798027057909582523471211289220260899130892998217006698970164927741626906802332545136444995025765693796249787393382475636643606480981198483625703842019035030996237260395721785429687819161163236918409427394863445509711081648623116271232835221607407123454500268551704811914731187403729916229268647546692890611193278093032529568783326212195723465554140364261211561762293181101848747466101329743600855560959343370818263112168641438733659795675020874421512102451645628274639259646472002097810265929501844688932463758812820348572496055879798152009086235147757379150225131840158090188847354272785707428972104213521619520078962215431412317620207935057503619048684528035894760018753581462458393388428839311982942763122921213366403151408847793892198541577777978587545830135527287532771657555856289934173234852113698322232394748087555175196092827041320171830407062560028457074045806365498216389666536930512079811971192320765143217519017415415954887625975260605285323003870122557403300441315400490856675581563714893592456374600131755331561674919368011591371470435897026684212518655434118662498049804655731045238121438376188725323443866969701016006265090585238275263548699328145586827938215425105812016781965000803321071463408684130979041674856787196298302799464743961024906708046324160997549520863993444758342141828722693374753553085487176259033738303826266743446158607809222541430527828767331728275303402919067924440198638818163474643910947410946532084905745886707737810000011846342720654980742580621851923075056039337662964278604899060088752030699818093779961288067643350592866830868765366371259794618912199874672246080263522210213354729998975372749812289124021146975644893262432125158860568241885952148647057959401322508127300929582258344313398435161106895853698939609528892182243677416354042243659790543223874514538807972813511458603866628835609921688199174858872988743454685388689434567144092495124045469748594811001826895108800537073659553805850780925721588449915362539512952440351136578235847844059900508186651190436640197545058131191098798631589634072599937015490032257635326425020765807739150158290757997485756729315097595427536933671043634656026664679778560643910092425967776053604048126456130236422697457167609862152316301107854799148833512224585085004649455691930744470188897202685768238428170602088433871392739614911167172972732699681962462785933149808070446397395620173089886430086097853106506902516423472763275110479236366022139247907721032292222990809881043640579704308230325459661850520740947129536072296339649745357406368310303837206551921294083503894710380950955967989365055977266139324377542201860798846843395081554609617736780517997616207319830477794958180372099727001444676039899834668026895321426764570201458907957653340297055695200867842413586302815681092312083646040691773822782605911832954402710169785773515721156994239960325894718076663623940016866376606269766080319665561612254880341411485076458318500866342762325113216313241407427580960367694016871434467980086221534203877654696670568453600315474909740205301182870452182424097697755132295788279614894124187975975052654673960527582538448213618668790089621978203735675874615962763761699761860408321573184883895790161906548961650196349344081485289241283812379809285207981299172143002429126397003778662922419470920164811266743355114526596475639709451403721988702196238448005086127295397709867938333893221356529627505365683151516554124449541490355371353474634190549892862250514389054983243159128529726663451979058794257022251338979826883433753196801774607755830094365502810876080290586361768778963699042842320499507084209604160962288769391087428482523405390952969419481726121566352180223769442784416618408605295699051017317536090931647196896191281794173560164121283410142499263635430620714991323306629358645480433278189139438480462313024775811518221555884154868483949345526830188429331574533557218589142192183427840732850367814415842610722116528339502789229447972748591680139451197181238494071566811094786203094446612814193775172447497220727762351382576284882461456228461665275131354803679833383025210483934880643259805661115616230246674215204445794089785556003479446609990196117899675084979387791162655872530222335159048108028816883920261352819252593929744734535700936432362752483052733155607277873656750396024100928259413795173948710609229275264656687824001449049384052760059127893592280180575229992267785312017407483512562890270172599469122402597090271242100790859048334490956699868252581544928347790246723081441142507415174719263268387646871340523420209679144597555834501531227199922687750482434386635890061337509271081273109525260168704104572117736552328469828647964638737617562300713454464175806646781035464823261357422668503107392742234152157956620792921393016347864974281732180889679764656202501699855701035226663910802002939152643270116563794653909145163134986100409845763942871769540875026247067506045631582157878635790092797109173463806647952451034230944649178948185125250946404607941892829669972079448300993795742330531284128557717213114381821522845061183476155950540406946270715338119328305509694329257395545828981253287163735818301631292323742746170829454368181827837393763995214541500228857738369451325744212614545095625554015899615915936758484740301143566779227492012229750252481976299693651844480176498889362641452232755747929589831858148281581006345105731383133134000718282511232387478020407108457542581608119881819447238871533576019939212105786390894707905709020326070614453524928974037721101691002365875723437670628528371900776485233353353421103654697834921839674256079601045383792479655691250177203140126889796971400328674221593499457622160698764526457539834914177556492326819965173128869266264841618710805846733701943858471631984246297214061578415538943133955276299652448520669357043756013765825245783363903886570182433316630833157013424904998160218255016334767536673474101733988263773362522470496903644759552445584027927972755418368927820341526292823588998339446501652410756218783648897820445729288542672142002548427753118744591234178140022519898943470269645492718228911736558468680444390183093512507035379145885375249100686139794317561797715165476597017811631852130527921460748019435719438601807468969973324378456898705580601949437378846910728632146615842508585193368107805633715772184042849885653888580534869318540724523189991819508938404400313932375622625711537158676098761542359363489113827592998136721811435467028809786293875563241873883011295684654540631113124045458734672366234336492304817466206334066879918093651738276267998267262035964573875821684821108902583860722129602438036937699772235525849322492586204178023666260713543469369442389701534157885225318792829744998271342367754340113706742278483968615698126195665478260256681824347281360268082905730276654551257085343650956515153235859569936738799416312026881887084221212238941679438792936545917261319459787096354804745791946131584319075806978932131136413882902539332985931801923111509719460758421635009223235962945447645780243666716873303176809014783182089791957860991625501570002182730487672947163440241012359653428192507960126509526414149453939679420323545868163065449137284676115846455331915542005924394612807816980736924892970030158065601102476272602215144901850478122088784044945676410260709486105928936174647165629925061017912486147659352664336509815162620481442138790714627159233107839602161171703949925376074615587382628325408916441254958628505678990547768387753254911311442962595257549642656338807876429977274758297987867103077695226741229533304524931454231326642372251016804352542119804340418245955122573350501181423903609942066628965516506156044332570664311601818926410087064175618280566091464642973168473991757579635824906914178854776774768414258699333475375510531106543665891519591638023350664252715125206080556834413324463749816873781216488375152394904336231715286459906193076996788270349159629743881289131245760946135290537452141244031129027730789496579236281023128710213198459235567842269823039081005829968526140888978593498386229430183764728283163890035265058870193118396501366271692140902465243546835698462976827270297862348464337042005561712395618201396331538274741623483761186931819042229430031640531744146127047758251378765221273078594715245351673862329776614294160961924806600526633577192936643543433660906774202153814683080016659943157060760092034964776277764323070923582841654024256598529840806204712365821857033935279118375146749446989721646202478453997974591196935008249786570443464213676003873691559465892677085837613408651063854980687829894516959567408860763663154402840879241485639510435705652318684668150450777114621661495675110356522583953708703177647033475453440975434772479464882098035117092643363625864214344622850721098156563655931069626290927915613155430151953937956422627247818171088074242638062941719129829614332610358800207879889837145333820149555472495512234053657505242201830911803168581893908435860899338841983703391471153553607987600735063083789754900224599126534360502813629021050963993899073297814361919186897084944368618614362091427572116645903526860304477068857382379245907601928742523171572275883475908742655123585697168842780933805822374496907903135601776005545171083086091108258936034808729966713418634416136969511635537549523520443343779229009023703683762730278048881505455839420819117386332577999576276194700450573801950252363743972610612134177450623142631281069605284536618540711406328320600512273720768820241059705308238398901736551461284881449737889678669311466407246395274399947571494742956578004235706941491287588653561316165425076280740399180799787991151589470621980316518925563815990269176264304080732157797191823165104625268128008254089380396060327732766551816570111138672416753856912818263181297312585328073585487081437782918776452381008178946213911029514009027076514754815791933126760417627873742779776585340957864413188422457743134334343104775869109758137410210678191115247165995870009357749331961572459935810670625650090228822413857023680414067976691218675498974606570923501722235578805237057372459368769749068477096523449743574341892759982372815786801105868631274113075418396912085495460130741055208575580559232302484163589075927241391734265312608286604647920222670731997785301624092127131361853801578224784646002257932627781488178495964104529557450701762201698840851530403255548435601789155609748650655715289877638781956684136855179683353582297418778631568263016358391179942534237854489935554857197048735858436271381654639872382194332664929335057459358916912098476440590723991702611279695697960718863841019401920542336148724031166328946331347927381888893254994278711172168491423118213699960126622331241838031190472438817696358569392947880923330150082733464245325525084379606944464301532906609483005525425483784323303751985321042958165763338345537916107540737749133628762775700687511140160920673116281105032732019371673099584470070662773746474019124025438214705214227098678244847192626215638662621310383103161494527387657000093225032699296043415384389213211536960792769609520758394480006849156553806626080134771983644158471631031836136944800890882225026467079780789329591248893016476096721847437809751645697049200281896398613310553194021428757005992723402072212893346103863954764171394064675673358707013008061581983014575453793664876898138173718155528203016114836328727444569852298747532604715114977401933649675126783919108685831705401620495376910858917878672401163310586027844166983789216790936589749924350430752841033925724452851177516615583149031421775965040464564125950078305865523827990171875926661480514455583062637720576962920553007287774842309745782754748246387478284482459893636686278524094518732159765482566235531471076172195760086404586563546417934942312644695396005054578950574965406138873293692015665225773773208405219394015477847173504248291102508756599794738959896417519002207243313157057175635362634506864197228618140887247962913307014514360998142057249516868466841460010233206508781596933735657013390241718407636065849817518483872108404977237538549491446256799058248504285654870293530878302387282453908890904812146413623533910434284448428309911559440077351208745435238828281776495979173891881735149769155479042285389153594905221154582638756684102011811111534057614517279558076552696817828560250826415963569974328219904652198385652476926274695882299241714990266264791938719174984497031704645512336553906863102074746389957174600762314424265528543406088548332717319914083135593128104826845916703716075828651295080894155836299123399164237167830402577206541521372660096414329626869165349879809200877219465028443163425067591102343638267871960035517115665498269701270015901476592085552274954355262170189243462652466102285358247955912058972938550729252446088558007296108401939844257502650412015823991630340779096573326788046229024205468186883923124219153898226129297158476688257505408949246169086510476460109630983655335021242326904807345781271933178560774434462151251148909092098044032819663032673583161845969423982558648834223565122270015365226412882445229381300118398922641221933116830894138063941841560551624483012384804582283115285067120346547819012660381595693511587503171468464101474869212143178478104939422125379129037768399627104532778700471806363130479005735477849814666327181384130327524272860921234576162063456508124997292025475458079651510801183840055277287471370502954400473132169204197471481403853221814771365849912987142126318612574941568465927458462587160438757004869635572983839884799588416443783714058737756314230410048884121138745815729948129463044737976502015844977401361494433656508947402860536460863810656669747221166211858177235116036828084301472443714793774425344798174796635840199818341694598272727720943118477985724872681216900627076492415795149247083142872944701641871225476767490292676981672050549188192782948751808707976230308626999542922273888489563836794126653808074530454755720603914772950295990270791897600482951240841347992788926364123046778220430141117009987939279987584411242017650270671576878958639172645622665848017929750286282622293568523206439808700303525826689240078769919626450181160333426402801087484040898994499572964351939025569555139461037922545813774743209358097354973376336569968417652226565944601793664063800092316214735701554028010541644946194272396251504396726566195659327696477824819994140391853664353444550397888496230628427402485614170278052950127715217057493658826235349600562567156375915983545546492560698089173855963491801436006159736450598225078089711141461171876089015828215014418068535331298408757622835132295838519383242570102805734631768870924352539559978102042980896324706606502716986140922282307563956718607039309923223581447249978878878736874469591627404572864327815592375548222591469367380038040063247234327511099627396781302203824423869786481429788661069028806667524622200480602847303066071920462230232756194747951642614274358479715789147324743059934750285335836572378298626194344781345835176479017693548663890077694705500953884152865361392733276734931939492603162818763823209871184394786478511230033703191482593033800057949672993477219987289695768688601750050807774986865418331818120271778633417331147426944880869083118203288956937239241423250070846209544171349455859936925660198519657578949409749660290203868651430462014560251064238146384227071641922101175279370838770101891990859447067703459371097047009022265773172085095357054032233231297861605814677679819172988132796100281229204945964297907985017626492996568072393347734269071475867278718881364327004842162102445195021157965315195726458289232275888360723860294470774354056914433558755453425530473150701903256253569058292606617368346577965294202764058056521221453606040523134948094754053983372043347695339763620704750361413568101027153114422389253769223602819017685469916405389796985403254106815076913757552796452521663202420468367840137686759805609464914360392298137298493402701361769201307325620520015689225702939364134265223241031071797153875359795282866142098480708099181626721151730178811593033704540498807329437975422876614340970970679453404771890241631816673371531108600370512363325084946446470207697588851489674773489827834188601930067012796502726656771344350926951834369919189445600056922303066464168997189384397349178369377309030183172648718784523452354835501089306260057713987925874029154287291095607422696225743924423030999119800385640965250804670080800789452877042815987707068901163131568465878455386485269558790867850126178917426144153624687532866683084181058072627321674791904829453797902406679527842299912098091967625332008979676615797572441741760145063053502747684698395957468055268871085264090775528524939840914958420795630113083122952194534639952458767711210480879769897920188234584601822411978304872659865999293474475253074207180616309338710433596915475148230840395520032448763006317188880730618618223409342565463319834932332068171272781281487109739115281554343355332537535021151307967533465803620180190970108051180318046949562153528047618814813944325753237259248292028261645736197379988415030511176299777789007645856534900871906250807032178076749529702109063310628014626795775301529896916244628255510019206864855197727092385969760691611016362908429568351176194796993199286330889119324066892537422434410439043947738125657190897278958524412946923049266951031331518100546326331078148063252937076216102234215765135631644547728415247118447400452788155075440778551656688548636759882723674286971121068107745431250909449499650773036302201385363670624511129468048331819678091538939863220796759983171198893371956585568798334615918080047163611219600915093008926333880178981436000798140724144697225419032824363435790773570380781880282285614733904752076385341990485304528014858502293961577571093524586208486407971794759332755309348595462395906514268211208175194719340769696730860539630848459635940286095970630989647202582440579451244470045417713105677525579647093997221477048065893049091425702394005064709669480369951649764964181807057780202277144495348430721885980779866530701262381521977723606617481070283072256179216283439360739258333935365430941993106457957353869181335762288124673333389719051623116350132740310467606904741317977035847221733497574859717240463234343493029704055913784612000719818669841016245184653448522700138514318143065950050681508895637300897406513255161823645606269386962171702434250447661935197562394830178774853787602997277537192738832563294504080682722959804508225489422267658657748489864360174647865963418808671682791332166733766166116750936622941296883289469239418389686022343554701281956766637364542853957788044324855892668244518683376577793743797390912081821361627643592965887559935284398049312173453707711776558992230619124397028966146762054905977661018285053096793199429832325433856867367909609221661570645261869084859564565391791970484007549858413810983123554253599606518475436550777819574897183942787057267150558277615367164258992477396630889997429298959036697860344043189808611697232836792521808165575910802087150563484217602617826269987132220790418074172075631859617438864097112017458659635306210765059519409819539023994563802569230432780341473207490110399262533188964034780997180452086228788854545004607749202012658796788632908438572380772397634740975615355181030182400733494128336347649415757023454727191149946071062796241306698719001805877619402582648037316444325434130512724267211009174021624171464401036024155213322320049453454737527748678629152419045213778354347934713809092753593707751918335483509290156550564031312124520340325851254628176366099994852336767940324236062113780573693446650873657074371405251021743717541059268125884095203548654272398679564455034994963070040239511760568498987872972047254736647066519581496117416472412411524772788510916757931315647000502940676361525004473576765500314481011063226432102496267316826527695277924314684990290728868980843638635563960181898226082371440540564089777635533796530679860197445556182163916634399302431528015419452989921268733146553155323852222355292181791652301702982932614351971285118158864373709696919821306211729400583747283134480703959472847357684320659779431768716245862420071905927167169192661999012419717373978785410852802467109641512931220170845208728629586214529644256271014717258692034035620682839784676343271073809367682224314689198603960140893288539002146414811526395116913686075778138116352487413864331462587724992320421396243211967008591796577479557245813398375370338313544449656167034458560272517144954734782927798912122149315197791328332528988668627019534469859684986925852631607655620811962120125146735883217182477891794775843248029295426803088765424205256309580432365650387309610474753864328869506335686080453622939095689310566871117173464399960943164135524344192004771884849721129121005644323860681028860647494719070679467504629460465668830003660734772659479655565863328525161446041477494084909720629828860170056638800890413576951933771432087134008627296972359132813534152888395595337572506856154375452358165898574555321307311753039105286162206498877625239445320636808514344782835643795502208503547690836277461413048764525004597787251479385346663722419324411914456982893676612381477703591986278185393797248391042521439948968160656840804175026036519209400173022034070177362049177733479640404336482133818324220194468806676502731452223061433246179626266990056746780290996411391167374532135970048103209802304093156003567469851555391069980590680089977648807162501648257385585709124509997619846399891963900275878547832679716173525805822250453709172956260054533500043526747269989018482127788442307830204069711181727172748814488951796670172971963694832280230236645728419764156865554502943784003984047862054089953612086644923301754942772548947056936318685195157495463331090087560640580448185142212255453849390347881188612148608204881858697632071625146592570723362013408647230069372926518872932555517657742839506445353074312888085202383912516781969222344191059076628112433570602965234570885466795151509979685407700788601146719520328336082874663230448745712315264491833609981561381445939546718919186472098954464328122963202869765552848367034463294905396444135837953511557499898617320754248026699845825626734618969123224480619647020660287102221186333417212233479516718658257916538252191191457688299066930392134528211334011789625072583811910611301959023294362154557579059509331295279688293108568207984834078354026207793790258775546348522515230478007102169200825447857403397737719697959293109919811349836948455100288544881586755456975606018625134233016218977439802090468622214910127739909724053930394371166928941166557549690398815451750946044423071761702903006722773058331496110714638038720096236327502566868297605973633680236540395458589936231580387744114914045298268386629978428621314044127401753603782875756644038738795460997569659456167382036076441077957165095128147372020098139587148672094759889486691765756657519212615486112818845397568913363663030782292649330856311088767782639420501299507765629418455206911269659625585076805085585448576969564040111713335775654120686478271294191745802834897604605695830374526696018336582501392458028435856719144200821825363550983605051457322645781619366378687485416223624207189694769580459676990273713794689599520953724410413044858348134799389003261116284324331813571964313990689071578268450421215033899653744880619729750365587029125238194068863673778353142879006711414458584091974381973353135186794954161011131183113656206606094172547630822044127159756913960166455687741883681346768469441563661733100297434916257207127986748500961811947904647865625635751870719403998018147674861724408522037039987654199807952915320768969586540674227548368449640643662474498372198892056597444877252474648007081678278496693329600224183335639247828700487858219861095013842506010184218340952161759855012305653584748558976718167754063292383895780684151433424118088977508910600381025426087963277472343836398469602571408052034490377101290084914421591082717464457697436425055375872987008189241019087971312557816258584828399181914902424611152870439482309741521320053116108724624311939418925158386086913490496554217319261899620566964970725868287870102947233246037418416297501088661198579031773357061236852176538550614614274924301647819524318764169495165820023221540918783112363595719089800185604375909421362472484449469629172597037516352334468828486562446226789649964763906210626052702554878718056827823155839283226283118550035000864326610344548046230628258582521615766826138972407859600159516778334325843506925723070668855844172199928084701683337850709025711292254198965150141572516278978391534307565893269584203545124838509213013827285848212549197801554788582886300920133319123909102780144057197984824991189008277799254705721020643857902746587072932891308267124513404487992865679535402610280561162553949850909234654777886934998182477951680015320556376986091003634404331535069493202110835293174596093879616609703256116705409619144983479838440257079392279343532519028244484325316993542551100268748118571905391738985672270318229426222158026171089085199186627330439271828532282320136037864883128472516017239226347028209630649512766734968342681287801969353002949146379874925147214795674755165059086586724529295576432598794860717528452445730530786421863888759662395698049799911995232778924908422399974715438698148437879397265620105199969186100607212567037782009981034086323066355181701531214754751575533318438491612764290634557678764755972764799447884357092001103734468456193064559499858745699141370122858899653169417007501918031797085847393490823040725816687094223283198927751410689273209661518853116242983581026496489641116046268558468952046384411821247959178142277306084658410422781232418544605154041598992393409234934379497960474138050145067731894344526086970305534939182446549493631997972527453005851336038604179796304778109519432090404588538619405679653645315948590804611760939198951126691045894314112772984915910909958276104512837382859166098477647527844588605243276897418196453530531285400293109044488064401507803091488104034183236482383966379184507378313588718455324126043420977608587049151498654525094317774734375503316071603767147445809184325132597090994189719452920864333671941288430874483046730303666580690564642856614463615741875864777682153231354589685125479256394648703448783330402074820086625957051201264633457834745426808060796317257282925957958565761180383907154241944129482962003871908688937519058923014553649194021522206107890086806325259122650759501422093957727258162708538863426024041602043735502298285872737356972471770282476492498374307004171762959338589199910771377258112723969109664574443039290600016315965189162408934859155494633720273359465344873733206981813595744248406083845227736224622997438602411740174609404842817697677686541330684687131784979366406399666212646259406682011400662588855929677434646489998973845097239600097389499577388592325699224916125868705993944521213011397896108054119755375010219926501570371564028877844006799628838759539321338052581598589452932458206391053501625150239820660159950223391734003649105298772184973593437657105299931634932276903886069676979772574525943073692177318577612441762104138373069197075608169539878494164759953354124545737287881601696706252422807748018514932789442105055730209649716486243945871327063217357377722059272082061540260177697530898948713341995061740937179384387141404281711915678005488165799459454710616872770468906811684903836780262208570922303254569813062154497628579875439692690643120289422444915620902810550387568526306717608473625440875875369165878911354319704613550356162900109183225099930126323534337630022703533473388860738929000740937132023550262545372832000464588104174759135459403544124381014062045472044654415300791727711635525558492537688290121852848236410845673255230859825239590812372285850484128609440062561149220309082063393750106458315758081299927879201862908975008222992130558165974793542820992797658402217401532440847014781781145817506769343449981875177987996649107529006387893618198208352114081624670036871665069275626818866395731325334145737073928777960665796489528418877324460857597702153805803603674929369954616060613500799587476977737055218714106879097823863836760759733053898361748157104556412227882244017126561605292433459771986779729261854021740281798813042546584102298693360182253464490007458471128865261224515651585695529675961324956059151707688501375979605220015295493853593507434714434599199060206584903389795584413932373503703189727329525992991691401335177665273217133390702445921059012515785901547165962574490007002378703030953463493562193802723332585903319695857598228387607572824087115971506189082506386897048541932822290969862267494171401544282582015959189735922910382391507808313348454347527040813014667993782291573736493577743371764890562875642763648598550053981579183319830389866453530472379775344574632555859080543026927633828982824899996520445172724816513926483415459288668640256890386742447207119335572998143293181765955411378794496353060622601559534482842757775299180456775843027769913578836825648995951702525954326864839171031641657274337019638327136672922256082998916443003015984970405539033809366198131446182373522448825158465928779592646413501886679259893488705660012251198912910775123396024326596199987785200666233924644888839504031440980220606939110403620848457491462071981665933442839648320755485856377664381796178312153565219466223604131408658878751607121335061526716707403846269088819502382189788698785485805420188262741243168769426103976086922316072017330057324097097936904133012337353875511788942996934588083455433098424593502434933111403071680846785997971038077582614807624893880229919433806483283604651408816259527259151662196850699482313976309932800676883638517238040618834349341236156297620823564080759186050509235513832505727198433909973070949805242098883247974006004733383704650510890962946680000687286672794629890389531522932575941380174857436469077003125418619098951379326201064838659610863649927780721823351298668620710692896927291267337288545211935326780535360594100302331520461763941641688721983252918851895110739059341086301758901389485801852057615965653657747908741924669094441721020858319311369227063433705583660206237114229947042444329325604374898802287168282899846978157323902034060705239430570390522899169465744694782092488604411460319285731329524483879599822995634145505075115140638501891147987620370780235996961384972093806530982771920180815840914739893927330895440784083167203512322573943506583227041928113927470345809936645534200291660714459928646577874725430671982120529441495062188575693196017495191025577151418386346744808796716454762102033332648877510296285454719688624114655620635046723414413273356798838139434521981980299693224740127897337100596660243479304987655167530865862210422931718692670746048447424028923818164348222626024154270403946723635009603685959404672686005320307666984284732238176790457683541563277935346872075310665779736075452194095709291501607810091289113809372264534423712507139336533960830499872492174049818645463500715800704359042891624639696872153286628943220101130304764967795731859786792126533806647878413203457913626115847244150045571779223363193303213932250181709482050260884329941677560579882542232099122508306221506686350671062475950597771312913398379886128481186328347917587605828641193816875539791255000198723514481007868754873257170732735081129105673844790485660368327877518208952025456984110638866475108722766701275599356962832912212407388981240983583773591542657590970790291061347368102922620897986144570163140745783145632750215700803953427769429374310908193787647392026697599108128535943791055333755384649836899257589814668826421346764166973933479132266293130300447412310247612299716405895547813740851761441023750475318073127732277278841581287939127301692510124619542774302622417126996423916071297862038521984651277492467686513370983210822754456334069377514969914275484552189214068574447551646460091478730903510572483726421167726721373423522862664249320733119291431379686219706863398937572545251090281935128573049743842959018964070325659488226879701936819311856772006668635534309762592055961072483017232225226054718606656317602619162290651748958304360963788659900402513823118987939289453385052060941262585288888136592603056875100738497660298998038723393288399386797003684221440466315903894317085811871821889956895180567506876348777265912512003326578080855731936652001696831545746518346469220640173067617940646959896604715764519119631443242592017443701956329773587342007742303640853824505815810333497442442644897751845981828666226910562228898594504905501323883372312282978637508003244259845234465694686169900808507680390532578353707054944700376123996822350232255779878780295156286966890824925124612936378219647295333356103810390058479958877102418375636389623789081590025805423649100772975851417778020398891282216010204342441593167026003641415068052925457644753686773195923317580321428689199242748994256307143813589947148860808923220165153210249491398958538103951080409875414204869747980570386487519317862743966683374619425208088779174488269980050097966418395568897826220672359243822082455823958447819196116553955896123181244641345989442010515397474831485874599858902821938485494167056284909227564362896446803950572479911646087249057067845021485773737103911571330040782083490112961120386927886983146803214383451435779621279944788979524857154886153281844438529620517029060819318049968138348269216894500702550983763772564236686535830415463948544631796029358090662339694505445853330218032317558516725205941832726451827769452485021632568226083008527573357781268522218346896067013679776823250972997852514422023312391103347296876667234323658500313601253968024929099703561631727428576136343951882482565673106558073102051241309751171404238736277271138284915931652024788125363584346465183161684191756016485561981599309563456330250179019138311436930969669196237076105337484111042810213743478937838136694223761358358189639366711144250716288248422337380808741404046816829875380034017243483653468781462233818928491803228499012960636021392387956559954416843018032490422596320179028645085062383222683524665176087219644831114441416809300044453229007195056723934867531715794731757002234842269297662735275544318707067733569628960889010268200446363865361080360262807615306171703793360734074692469262812755528516584523975143511126933104419785652166379598905073423238256690901262026223121615289780841445808135109700609625423960840752312801094107602476859754524250324143806214156293118188786061581757761464586492933309743083434172972029042799260862911094262753514451867777472150152245956933807555631410516908216368013760301176039052902369661955704776680230098210309640885803128107824077895483302875760635747174866055127794224286489256144113565621177945521398900382562434618943945671122950313658114052949070249686508491660547821356252620264748877740551907036527747171474889641774034700453130213796981775429346978520756000996272739115566810252521649228443093400304575251742536524653139261650501157897477403608400079737665157060262010974848379982441361685044224720534076669793946863257791333364542248061278383947634787540614440576602446787793034993872095974440604750813246227966137743326321516644150352389983371792827900152126669837065633035954331285557465513476400813254664152113337172639697029345057561718541001892538754737318149549356067250486538836175733058260690378218736840422504410580191853409661450156470282579591040500225667988770110248375044664373080312008579729065139813689474480044704369059222139167849388305492358270822869844171892758764499064854737430402394937565032340622640216431572914899353286739256179920011669308799840312423218075443956063917213278383546746535817179265143463860811256131214524615959046093186309745109749553601085731392009349314859447170812915991023781296591653824511357478910320113871562611507284515295902091940614640290043728512552410358517459131848572980231601345872975430007804884270443327907418998138700683271032494572400548334953516719373066517667624325824930632956163666469172369501378937525756793658554176346924124104395371918887100678448735429719264833539830749142936889982315603819959822813317832335873381677454180831939293815195149218866730001365951541531342545685310734088998210570014258947618576054976609241875400903907778099767087410287401041891035474083156572340469130283152038181998822334590437345914774533703148266061424131993527132033231577850699709877392960320186254409684754669374414938860926118796063349414985844167924356467745498909067247673912333563616598948555458352505790892948996857110250092207691719953324794966754986707906848919646545240326123986200115661638530514748008240448468010231564136837248827454684052556869534192114939637777379147706449707439163300735557649636045970041603972781763690284912332042488054351471157054313553429837967611788883493740207571397800474726384837993955958145338900471248944493189923819193935741231076854649498806728861834688958169011914310002525676936219466326924317169838035925250403266836233671503131403179351498409331173026836002464999331888276436706687461793043999432803755139021547289568293231332944773747529634397218392042449573234465786073170911334851582518867620094969864897113160353561334374886187741901726063562357476884361726964895939080062789471932860534662282576026606223168728669869364952663231549941383553282059305131896241611391432227801546475413559385724348648126650318019032691277296239383533687656959750341379419644599899574939015354337795122788303411161237017977871620489136486864447765580790390376018816628348548927196690236664698724417074566078692509405925402064873366228432310499168243226761906065744172097869410976564488825155494475661010847287934220301012503390093482654638490996973518865178048352594165340192785033976936966692326156728618540776782553413995190308466848422397706405639702904987844918951726398476056680570391153491494997849778476122718571060621333959080533714848318618685945797191063980323527776451089342174456099408220473551022108520069671674692956910541628834626713043145169178679959133218878415004377867392593405635063541840361947854002526247960227304622387644243975674133648213054256859404339383237985768090753259121827549197608984084146261376679691993251410700161405634252475516582250839966779019261817360688743654047202748766964784475057247480920029097400433429580928282966799233253286669364113933021386594924363274169383263672977932304233606382414257752031907353248785849411964621860883964258866835777073666149672059978855321404807328853772138116003461053329661540991359913655701885173848056672839333898286694636018935184741374686120674008904071440323837792143226313039873349958068316264724304570525172920306432245951350520272541068721561846532263989373399763627875753470944809924018931054121900118703146574590921595736541181275477010561862628440779657630744269322666039568193535318013298731604340923826407212566543670050299785859727263195225133301978669888830808720014740362227513390272781637593768785442744219968259291918424860206851639105700742001572084270262420296610669238916771295137598246139745676805716044263279042837307053492641287717554485129728177006294294092015913760000167447794513180917497480700178772414332933893916139088548364693548173782769545183770464323620120229687638669022811989260452353719370709936945667994592460420010369113699856746964526195597342450589391162594986607273817049828471237984483648218257315119286576143194247728475364142744913204056625442589640893923896640717026231525468725959338192228804306701009276542466942449444437670014337203493178863221727138983152218761554948511290429310374677237466391367564833555919606250807001216294593891792857363697506500978679096391873813202226161213884212539523447059165559381227839203876903447823201331151301684884318708243266401662978002868166672125132673003591694490919943895076718733066953501034298170549963098487801345321641873897171016847328628632038801392312588339489562377621166036547837269517234915339168818241646242935741524360727721271924334795193201665073394010657311061688009606533455050171447875071949607460999837213916824222916986275285515678679365866734255654194596426512498231540128127274144195243115190918165495108333825388079710110804744798397617792064852445346760603465301055421905207438036261284994184486375131875571315365410519177801462952973449873905526914855282891729969766470672168109978197589245914700508418153206614692215483621011827632281624358087075614450269585041939508234037474219180908478671679238644109912332937027920026345580706059643790420285018482624812620926286362713393226976421801959193521869372149052404912762247212627705745059281432882818308844502995679583693821648727623941023789474330110545065938778787217703853611564519174000124291883536035809513307856906386549987746705772552850693974314112273142732624798328729845341118328476033504695467387085889135034999313008872191192354476155496555198908424113201127678079794942308620867910451683227557301967649525016161003090222883307358271761099645951648053539550656015737272782212586163967108420246819529930303236168278936567451444635176476404511417614471407553565129193470505921926042559651905528380758734515568448614667055360759369229743429167404069600192052995869347047417665000381845039491710609576460956819747025001208917880176332741822482632455071942221057334537855546751980290960818386584846250595755872648195727464540241776727699364352059141389417643051592771869181625447403493621393429649850970822109973181872628739025926926954661883400840759310776072846502859293694171286351534240229463746395528984539100490929750044265593934952196630860933338012698041922532788796680814167456870816940943566591677721427336656505023691439386534285663918099568230443305662555357530934232226921352517308129166548013007722089222004214117227137094702467941138166134438923522429662457276767463263875275190456470271561847273763642019700759531826878816271342300510044665705214580166347170497982661101314392101672696621642460774988162559174042527968644726452755343111051038223475670900237593342680746465310320863177623236648179943147844355094485896520690362681301568387214517153616123304865114661727760052652763867622482465930908054716229231657282727388479226731560889029217108473279440611778107892523768043856557383931358847744837662490508344485076276031198438688791435109784010851555808567289567273920563260454063803187170445260221144752526927288976303895300396646516915372525720615844544452186589632431746195933939992751361590351993239333075606970342890530363166663365348381234022106836337344702532583651987562758511407407724145751705763939691813927512303539757630383146590304236742103212984173690316091126041352480529851851510421833736354930383705079317323435058973682648402202856078948442666334508619669345510099133600660882048047283819389686778526482310668765118055810271753297656476713665952488551424970566001138151157873230126163914205993104813725539670325699456103879020637113168039895663857304354203126181679219477055058927933903101430061943574313210006736987200042562277804153702311150497306222184482800993796888188133031563806887295221404082343685937032799581088330166603668456107085308341696877220645894416005533173415225479300943654884296567262029916629586832243879797155359210601372203319117449915647705496071883385027632855923202470497164308347047923140137716479256901802473702882577817527611572161357156047144819182734612001306634407687188933891073176835263661167443804564774888690482676745992672109898680932658519513455447537865503955650663791597879406200917383867922518694445567030198503540347481088873805016334640629246291409749537753105463984061868157837538010459511761983927347424708722283781170220690748971378605711146463292709707521650241779429774117918649567897389553003613490188389677235643399658107965653683908593764446453506689075958838488464624820496139674018298101334968668236886915605678533297132364982777282103113600787550924972550807607547099878089308558509670372753447362023739934038075729598377622068028438678104382002185618717383724834509216034221653321975711938821930870222248135576789490651435889126904998048623173104018484083196936172568613859411223273735468577040451221119465237845065745619536547050782859672775851498437546967646353247956790492136708350916365106102288436695338908446641841637074751309297592843374371146371876264587327475617101731402800545192841638905309221379415958588818331632006092886137805576166469306146120726780893608396259769747001951224733045695183317255137537110693915673804684206244482364191242246923060139738019254940651570265764189502435774324599348793327711098923076176214924721002459031467883891242445420788585361826198890323053951189228583689924216390482321349117147680234901881848012409730014555989266862078173619136561191012760513635355507334986351662888843409207603905454333892712726328234136407698821732535915951104552738790535063221406884696178024282139608512133788076517963045587527856615127499038724913503793251106602657854828126527496280125225937634950051252304438828595804932952775887933969344813301246525434575406609883750258642730216808994192150401083159658128860056273710548238050767330522854775132174302986022065661664790017580266214488658030699133402441744309323325207875621639988931236916226743270099293637202524854177964744348068613988840602887129440117701844284998803415846141465754564072935611557834636686750932807386254765260284225927507245443321180058052537643891569385737523583031391238805825671183701360794760848974822111910643735817436072357385149291810650367264120896483807350513666768418459183178926594956080452731662542982016020021023927013550583892749907240815132402688792915947098594304791516735291266437480372001520298739590905930202414191796186710013325282073148675839248049035193262648424660493143118724543767544571159431722753299320736653386687640697080462531418796591530958613106354915281450453450068902206833942998727380243381675460670225684723421406040050539883813974800569345286172669042415005525774366172050751603374961117193349869548863441352100330927576123242551682398982777157678479459096255519661607924652890955799103387127116331620362828124224606496906253183722183641769420638154886154447743744529927085676399375576477914578921240519474951666195940460052313577195657587984847675236674874221711629829892731859002510392972322413904343091076237706956220536499300589822074407230710371906029065345085933967515338122198234163929280843249256435662896128220061937994697578342131918901899648073387389296373820390871640775810681567162204862617449243056765475556534170059035306151779480252410056519653227646832170030226740666865725252910479563387169730777040681201270413318076639888648410016041232348024676781647143700468192878157314575869429580541267768122846980994140235162946709696337023632594723213222088514715117955361483206525875213399903836055326929056855529028299191205854782285200574199529386862215005725270342250234681633338428311675161243952489423779151317533749365596370647019523094889180268151451012462986922771773202550738831560276652882258114852789563784398588339030102507928175777493169065417472389639342577060159594792576129377797628329452481859317237137913405564255686569516496910363241688677837433661978553356238751191023468746794793306332669380950273844236126587513701174915134810546942496711043318835541109587670458102477384526333353541028308469539571156632577791458836850866638208562514018714141379917819181964468609960467867777396491451275756655221210659174566282569734607038112183753321754014558717522602720358816056465806814574796475177221527813740615632766809765998042498844830929840027553484166708224317772803690488732638722889993008615940410129648162003241577979843191419358430888854395457102034518609028056824703923036461457322838665949431896405442324620014670254757341416952298246748993657593759378392039943586928735509894947894261483214386812841454026445767634456883912966774747211169160498261457569427554490094597018001549328460990159367008139241934412533319722032238010689418514769953197210042793887738965221447752855864939778829743765436590845292527120768648704926119716802851541038626218852943891191324907929695949840847649963739783362074918046082949617114630827239908368537353411654838974113794745641545439212858975545170571263186513686167359778653030858937752024304186479678971959310403617313321686118577727490208458434503855539201089618330928482176065831078018021939318176729984486527154563179379232868472943129141431267873926983277295962527421700275972477328325704454735582361191819511254853745171155574455959674982082112514097311990745305954280040968684976984129171305295627234138148903781258558042230329173890305918547110776719680911708661655344015560197752227958498015237084889417784055967798561346233348093185162025335053228006092654279192911218010799810590006554852180632927765448891441177940413559270720213829704294374858468002988601645431753005773125021284843019739977944410171777609097935199905163688587618972752000124870967078934985163879024299628342325790730048613114156510043261200024930525322608551507581478132843043690199587139020560249236907398713076509188031826151636344430281463716302711372536860297233779118537595531463293073370823367142427938304263071313798062626590095347469842567482319074281603410528317536292018302599856655546736300813713937718419776940619628461177687454971862928205189348024235409837028783130251089559217334793567214375690088938954625568012151031547497238610918600150990815277488089304752082873927883036967599424239627325562218024697486868561836537737425795153438638507994153176834586620445841017160803455020533628386174631887097986601715317870694600829943711503244120886167728020870197345991470659043830577906204350298439241045161749796849268722781834634117416379949221716821871563032722422910372403816872816209414660829502797649980838272510664592839181796926871637614418611422588490069051883707660035700229843617916692260496835896757445717144853089176493104628871559603869318506578190198038152130820125755570508905029136997550879954657583215442671150559309222683119796702716152085026184034082392515074695212782916488895003401298293541307815338083845397121881479017461826513846113359580785798301430264315139180501317101022447636136718051952907329409253996028158278021319506983161004990723994464211081691650792057729217128044242142539008461389708297493122942288604420760252591013743344806120238488642816808964328467099820574005651684879480819580329395493909698759171956851183633575687904824041149602769935159011268102741897418287363889106032423262517784061487812442559415763264215870982320833383420653465248749220943054413323528922020004516780218886395591631074654119123003865520300096536533049133540792415767545744999017962267346931318396961809166433652171893667211095558584017342613340365123560196204583696426990825893848798338850302728423743241496506897815781771301825719121085677386329708135969502902901880203418252076508813194830039287850917783189882108821864634827700859308322878629463236379280666734485550461955695831994765628845466287534870827469487866690284527001128792667805092409729808504899256759924707695490905981148695430146318409610521945526621410056846259267033028025220847245023265661397850719942874018434593902065196874542607006965422632460813341118673755933608346254998200906563582737388986220835884548006833130445477645996021334777037349755213279280253376306732274887313071171447365856369977330705884447565149077513027101668609627677118111223308194463452350183273883815481570728075739720564520918501433242561279548500389940542495701269937818991815013493464746039772300828857387030656936014303834366895357484276823647764949126763797571550651368388075766087672928816682704870895271964199476442528052993051105616395590583834119516871529265050371203930898988343072403190508259031550781906903483369199288362279673720612805601301825478570286557029012459833372809123805756806170864849222502698031522495779441818238971409885845081929953266935669863139774757443576414972779694104541976072452575476718582031891453009971647778757118241112351094823348935822666404609030367797648144113522682666154771305142992278692322237373338134758407045670320788302669043053011013687095827551107993904650011020775155299582408274000788467120151959552647305125352995268187219223488324190145420360362577965802076687044191452850908893845077537303512039546865092187514767353719597744045104280114608810317083256828107013819541028221923599537133754137960700446557792391926558726132594219134346698986359595442391958302394212290163983291371116907142195143193105059327587046566418839446077768514102140655863522533265200345905915622376047203810435061401288085011665764826136908414408600514599712922813855586659032744906528985016914209940774860103052776760510147821322500309204877911825988354617051831164481546352086091308887046828649430048642376811873060382606843881345142714053032097548208550599586628314187582294770630363561188400001002387609448021543016908431298634751504182319414192677283495784014082521819107590939161376722516156087203139310169595743166446832915824090627088911754165962138217339145659026513313595661565049736320356722187923783948826952165101490615538656652473113688872733260884866142957993158870613847398874679899441527810122712271751583421927883935459448160061349783369243696002233391980724992628559974760985271228363614743965489914309296227145951530651659035254828944601126079229914200105915628694480897462690362627783468768666284314655397658022266367697103719453879535337628307539309364202256909396213128889584027176303367823152772711694781744981014980839957110836626179521445691209410799022295876838756402836976297065145278117874258757558646649119225500465154586612802472053197126553804876016023145365159090672008103701273771367536269126376777590865377643922632013853759028761410851605216240590396091733156573751582484195407893224066856440654021214571948898769136401961031593549804375729140513284736081443825654996795261737417231979984112499203428972078765390754104798053360190495555328024260608792367909859364802864001538443714425080073105552696892049950463941506119662153389417197375643210698887775973992713802196184568949287484534601835647943198284774443570625136623603802454353819857700226325949477329751352963031285479741387673771459179080123711869099664525591201317750134555998860761631551048067735907226620002843899817919260654139630949676445737934789631452303784307252375835116860975435510306381014061538423685291101021585790207489474342377699141288216205138798794510457650855994378603493799917604336074168014772876163949478696475062074325407038208147834726442097620760983564535498568893262747670262129779694061751879012336553523304166150708863971152981321444018756107101944129352576366509495361844523449921044222851277475342517188279139798902014263904742080685865277771559118548795559689503985823141047977847968214412816841068340939508106443071907496377846229060687536217936033855416149288753083791516542301677763305829411935109337680511163514722343061272672900169657736634354535271573820110753841719802138956463781774304856912979885665660518575689668554353587906970429595935993395543178287216465689912007234888083401749866269844735257962908137330874441420812059833779308829353262471735467897606854736623670030730528470600506889767688194119979716861665025493932779201467000272888706470160569705348300524044720541766716006448279322153471628727473702701183038713273207309558455555215262132658376357296329003988300389383042375756750197000752807532480420499112825956070774865829966225634565224099812348851344963474184003981773323081283863085360721124400005743813591390495409786886516008743669062648027680768883301143182645009550400667446645155426925531459949080851814837805472262333433612010993067483427146704148057045181970757009390756330553134194983563769202180989385322970825527771414723676654404317189793411752856712704699406786078720101028153891432947137217383306050756019005950085921002130567393756793158687379977271813853755914183571568540046350256121418010472929398136049767119996099640606243881837165317253770021240084743630785443589442025337297725012165618257991749390484421222258774302544445964085497389298981884754532372895564075336718040479471791220057481557778833963170617653678585103501264680156859651054483624758952366407431746844505532044107835203806876912490163489058463078541948750859683396283558444344923387077398435064806628140538178326116770244095113050171346716370051789640141261016624987447591527620686778060469091651305293518121028251557059517759862324053784578503411983838256872978078169544417838761996793928849610549917901798206754378087310303756111396581250120557165259938784807861050294923593127598135975202652347082808694872393709126436074970206139091530626603074133419445198998876579848534011793901545321597834053342428377117653222658453692501389295404525536900982176077019697189825285285844417283426758368935307474484948448510983370194204025183102636788385199699393299462404532918862705637921055661264360089304744810811252399690513649349987282408143519731067801260528122741418962572447544859410523735332600593002671046990201894099716420674522411143444207002854226880885908083611863976555637135594441740058158616329047647008795694588022007910585414527609426780005357058509491775373334238691318368312701818350908744797140196603550126796611625725251581206418177364941051473509283105926142859029278242978544736335334195733768750737399262474048973903761452614575641258915511088423022635788472502333509667874137523290396811258575054609103404801753520116304287558065286468008494692108084740638113197525689872964786431497555577866036682437994913763435702780621462546086751968563508920394436347351858167053567642824084251996628150761164406605099368971279520400419173383718964376904222190546072898229149961595170067457873995704039795083681309485696149381044223461053505049819514518153921625449479249293771435522890162656681508368973973283136298082745114154779778927857229915515060087874061115038894535698093819025540874554578309308979531257981106525141543823875918422612585117563128343145522340185064959185379933030629267948364068736851874120681044437211959848503110012009880014537919192136998578165345872826835109287600968125012666069902405699220640040134411878724261429332613653701402772908982600732892252441173959555432505769975955000460616725117007820226228439363406960721812408142230732540702875104996716081474391474792732919908104473025739818751621165928219122735205665411462936716374526926170079352882916622208726110574176963688400893617306684518919762758012681824358292545491921387203589865530183956613686919895825703679902434751646524111657137706045674571888603098494213838024816062359314272823160443880155487095427179368235521286485088367622601201946201706587968656984277666148885143452626283049851732500379975098048327231077296466288077869254928982969416862048102488942153655166007984354844455899848923988639607253986570926652908051600722683375926052172043589094915668674366197076678494501195866111857734793389140249003443007296113040242639008359162562961212424162298126390138196685082382035977007495997084210010471399439603284757320637545539081990362800027553190647106346924641353469461481903932801181008137870841710537390114810180848348896717599010432896760431350320030889248133235647482542325688548982875657477634647508496652338563026362274866998111250522689062120751568237894033876114374298630344433605629671186984874351956173194907675485047554048362625630166074789728037904384970562640821410739475652118064681999230924711219448559948512827608863903753704775773775024219003334358132940094774134286740652279929044406520598570559490495105155012557866789787501287459460736549175473401805326810865113081996603260049294881073128940623287994816751371620431288295619495502529689992366141866057529382063464205979567042591741301793276776193022644375991381417986467464546761131018432595465729082609603653291421438879960726843381954040601110575260342856285716138385460936704423438378935203839758674745722037359314058950211568190834777960859695136793338853536480779334474442211420946155588427996324878598789687001043239062309022986898345019963894625242984604180654369736189789597842027716736587597294417896472724096458203904127477584263271067430008073182079955262715379004171431423579985356382953696372981957464528752692151197567680576213235926884347579430294488230916659487444922208209722677849655762961269930955747987090823165663612558744145661459145424067124407037993479663475671270720751238436600436045553642202067197108007887203191094314443182244507180010685602590814507215650465335412796383356798467032059350544586213188922274141048542278475709098305821341227031690162312406423622959491525615481215171673524195348318339258703409812097774582575224670529846856468273922888713515670544087598237891522230858246253030706593580253728429994005516544654799479296159894693029826984841636082109036680851019984889402434140028432434089247608057825516923099009531787367578414932478303187794360786586911215292405235991806019131703157358446146922635454303934797372859929941969116507203390683314604674502057056689890811415150582842498892249223916055326989539940801466474092426692316492302639780347673051797189424335734732524698188361651007228613008945009630097124607249054081111529897965714864686870415288641670601377052652432098260496071493466043759069355792859790259847404778546291098126595694016428406781566329042011201098793131204501806613132204881945783456839419218740622248930285093358323537052558749112124858860101075870448416138398845732635397303188227612896095564110100216815339235481950353266656098695725689304731742848805043439603006514015442943163729918534221512927519507382518836440201719596138912732421056564709203355058519784047923907621198040259505679087017447884623246929898517650876084154459735515419272929236038923793444139622527488051328530072757464905086428662916896135615950339559401826297395732522261028135406293425266455931351394716954102755139395818019753545779204683181853612815563913400653420353928210497097988344401191131527771672808231597295268971363798174145491249675466959025744618272847780433302192884724405217689103023748941375077964038790570595002972856028257261614035974609826075264042911364288751790095056470095495777034516110055306143866901992114799478849880299769313778729497609252475529905329776722039153459588819156806653884999489914490896532694250470862454958481471289843936620952189829680476085521935680854578156820327253295315615463794643562834858761705228294019523158145989577067278396691023158548246114763617699692992999341761232072658396151872957078351000200913159819404505204185369454549726561723296156590557408677668742769188246651848509181512387462634138702066566485621974967612275633781933490248575074186244828313067436745481349071373702144308981981846398676896339189388475292755614670341387909570467515064300362122533792394507178404695787782101315409210901379400334429484423147832282697668516318596424780154051134611519159591210999555738080842541236125806895003911656854682471188405375998963917532216277524696360315182974282879635120276019652208320807154111082720595953245510378275512366423154774038519610210863198975434148403534058251609333677038959213553742897730052487058804277725416258863026995987017695441073728169508496576544478026024337909089663530939221353426769965826055058357523201668557692203177635671363619581556094778938600252959749771535842492102120339122082039416903939277181639835724005305686081458477494185381527444899442747286039296815631109617812966843790290462790863925532725997562689258260595467553453245676388424729994148671521300018562303098005939009411974854611293727036774628935347580610143603026633487336403976852009661446395565423209331393301757738687913226223319603860921312922026226646565428971562694717767125204112413485543703871161498913849736382579762639347850664125307805529349992553567402337830545636693486286420890883142103645166696597544766225423845617705181310925688626307504141082248807616320611541289709216627114514699727580896113863636827760785142996903557154399090385813012814604022631782069404458895859409507183415863076759673940138479791480434434206975612171401818351698686093480179588165718364434589531088725638759948251459897097225031807623620132654772489229631492981707805401684267319155858704511596478196839412691153758198540554644274720818161712948102361562022918387613338785724057655345637397823293809116003071010052368526145867220681520094755347553081021605574517834116464042171617929914347913574366067468439166495205052515435658601706947915026388629439780737637802538081599165564389454463884934312393011780152560984088927210769438693157336670244469500578861628905853554394083257374378118850125596120099315801757207897939264034940115162606831462370520802507653867422055780086360528309426138970751807587194827159622177042560260145528493384816393231709139108334033148793839368485539961971721865421092018851396056290030728041610442407367732807733202642129361062149246953310921273344375564484244553209644585504129606811258112420780420991750729643142469092472673557451097173537544187620117531611289243911387611381076291508137479846894662079280999247123418766332659165907630820288783374714215774090769048283483992794368281103314270925165225584622507276697049881764273640256605423344058456193018646328063146325629356839516692649855630445764962349685913017096802831768043620655176383957113194258565500215302126936243532598159204253815741438737241434937061148418385720563456663501880395784682253676257877322518966641765243617690074695270773248503710970983618154017523466756691198301182656799071862474505653173595569876667549953069055949385612475125124867096651393865223359646968537395071968216670317267127703157421564537706952500466652471772661461343505201097207208960551903530438032099582138438607262737867428040014390700003059285223446539993160814876040900925782648162000834626311104901302740887229941909642164878787705302468180803971822093152327962056505962465890381092561529619851280583071188262606579140494693922185365313341372549355313071580990042211636746304787450164840078397902547542076574406421114844568097073642018095856668018731383759811973923435521654081273666234217396038409684488487620397339964791918112812499199325745957921059510357855398519786899552132220498388510400660355233919725773872374829181194032126747200838804612690375226418373118554401105183423886646630811695024634289946559843969863120874267098799116569503363368399875745958728524272861694307157002085520364336113877952885357935194700422776173864789334229038272420008035865684304708142273536177456194139406763254074528451259621772412841738153445946990684992820927978686178412056283383682732667901905511797589809824871013243648614831911897365935296982494895575257056279935276576231814579660302182312986617860296778063208854166918662140486503329787832701830297599632816350049921542018415590630804890021580402093889190988067044955124951548456412911066317625246782983390408704354543873447302803897384364400783581022107702593690793266276246179355574215119075080305850007770885454322509162689165050550801113158097815898333607756901721147328839919461253070553869365919137819710645953831371658816305926482323804013045370476784330322160960037926674662561499638909272774584057983850910499860925954748676939368153129076145703923852730229522314467183520406620557918510652500973342404549104366322937567157037525026922501109451871336021745733585221870449728027126632361497424303860230143929820131412171400553652256347344666658102498645038540096611877703120335500676328421188249732920397787796664472563462972278829494091862959244200447199636246342213692071206681318759290052693939373567985121949314539949089257777826683680161357489057471087150280899195803654786458665877964378689893045519689130332323267564695775828662208646324101956321736139048848441550243152567105630198921969019654529927869673373322621979351633127900265781066353765326646314020384383096748780664774496163656400167345039777666057103143116363559537430102792349008362075382403266101910719065481186077787879453957409674588393819932351795049242316318180296227836235572165811574891963449968054752540140823766619469775352997861402459226596684688877363353291674564894744585879142973766328647359057448672359099228294914721567230057989494973973257084038328128708914425556062511287846034596335348015557563751785518407405256471053417681606696213527449067620971144682185930909499108230125321609156189223751121384763524922920358259459027994183273082800981392130683173099944334544755437010986649957738998674172615057732294660762468799731310163000840239608267151041928743694244317260849692996804908579497483999978645425386033739858187587019109543543336308438253762539255093811577314596958467065458499835965366356501718860393829537015124772330804915840716212853494805942060874441227171696973331271073771112478549530892948964739615160648858852365266255793376921700464700923379278905748504765813754306229825951687983773189207134472844113079557769975778190076675788555328175951691688544656630632518484750889390140975501415679319479394943403956992691748864565076250386356402840434116662341285838151516980722144936754462304446467491436746536497828911596761501910006426563540585073204512040777126641416592608951394871170225949147830056613623885697585774260074075289529811427338109074430428718589910034427308510596582320676938131514842727665147648856495737797978427989064919252880442687411435723385768853011567024397929247375466488045814067645959026653835379483770768454602734391364988630206390032584761216514814521899340240596336018869570969458528096154516862283577017594275562336248218688525197724617585155641843328909299958233902555625344043970309452465560047875262397532649524141043254015291479748589459570777936780793138231546097392567536546463363881511413999500025835407460942382710949493732213045765672674346064906275962978067136792713527798773419071208158294498270577430847646197348586330106652187580773616863142038413422087084901692647786951727563682897120894864418239038861244188238303441555795991174969492308803764733838730381496235537274235643112606272148862050357944010489035840997422413969166969452233662411030633509985214477589637127877615292183827328140819704918922030808013565666177150903860445540404181127608173930067982058442372516705366151888369291083716358522956463923089327817974687051015345104035605528999552508337772186873934293255486337972397337012974409857704310141456912754141079649331594362824629745205017267550077447768260116697173311564989577070054026994826893809725871835473018872876479994514702361866680026585513720223930269221665265918058241351405029791796812833640034538210223568502720468936802730742672848830964990670802519851560603199629754988198532753510676863556979315918222504332981151061149988181793020258051064993778690199865833610747741733246378716170024362604863108583015079339621863324494245934803879108177636278162065612085134582480569087818501479244319268484617399823749057287730576529647873331184069166452903223333871369908573217199240979898000294037140235462249431650352951256384904187248626028822485931821644389540153879093063131068354204965618586011176364634135739635948611980182027203395784448661206562145675677345512216471975616374210826667779281330209389553024376145434394633354901916974468709599716031087479521470284365689390418470891644811359126079637054687161711871217279968824114342852141085292973614903697015660143504668488528678526946541247800692310821281178086257705464867744898896978242707491937560839272033238503166868670830749678398043598025134552845650616079652735280789364445402904634863798116699035010646374602876370325779453646441277261600826598723786949982538757813391648729266198087937827793742033574598463514112925790123662078224754380594175750976478736955625981316094066891775786925783778702213295744635485614618519137775854436285466660373609196178232553616662792717234848529613409628522415300568292481903516858290265841581968111862143715194310339796106971117341032879249919733835668335958415488435615306235629637168090137086556755298899025146815323681317481405774247767252626405119185677326553212162896989011430590778030353641385544163262465382287890856841066960519087044998493167795939358529349088695163692488366571145024742035276948172667320103558500822638320195981432434124824378437074946955208177978047019849730946025793796933056250432656479361466724964909480239186842616692788532143651411505892874629853621968280898866502994171908790781531120709776153758452190289440913799199977536135712981832568034044541059356714192533838036666496793823608279392115432700381108600249979475332525998479127016582348193525902688524660883330048554401754287882276846890244393481762987836200977911206997937748141631877755479778242634650862232823953155010929769197900658499387712544495270163164338395237350725933932838107184627776207305396319855194894007058368973833611932864436665615461287165058232026012646510137940230012454308055330226233247224494469036122923235506080828091696655799416504847699359575115864685426810147523512438487308125839576314617400796895972672931053738601161352981057607797302036378385247167641789664157809086557950057075272802512002052490365895823488008346164297958506177366689069668553404147302562255983899806769576157292184528796230992692567983034134406683669767566114152232953630303773414655782815956120747697737911613113461749665045563651208690971913786183730200113701709037165570841963741889722298705130154344697349851348878757741052484706568053199888901686213964581857960119687563936862111878295992707998795755434965275909677928516560068024195610391701249522143297834729078562697163643728983083220125109053653794569257711472211192547352953554741603778333872242477424995700718809664963452400561360276132114229973262911469645579451026377015749769524526050253846151854676374636917743581659504271659510646197098201938715039115264785619209245143188098251735905210639794040045503361167345235431333076167406832894511835445193871179671633054762126520453962126123826034409528207780264764483046782031968979331837930986479264571692020916139783394308257967026712611882559702814471028163724649110370779443106375012382936084423378982613782481602671198509646717332547477084108167663458315802041000810196120985290342439014678499589640318093675810619295608449742653832841439717097207307831541186298718033755469035959799391342244731860034626345125779302401336141257443025154157269457697181023432827706873299388096987965383764506245650018892585748637263083087374036136742785352238009638967266311536588110559404562672254185545244840727589657080579567376374245341771303976636338937602580946525012438489185376787673759419142209064902726164652428285709115124375299455222934603701222550350891770345727132182400676999182645243828797357544961181870893947834862573774047118151369518624662780512986936502913682609855705571578375970669828009401636046360215255242138210125750857710552951122336835154151579720256566528434311133044170511815384557679251403028776419558509851215042844770280074582722861993204388990931804392715963154835734535251582972365198769012937751806789391660862534354839930462312273473118986902523379102087146416801995219934992142368371125707888373732616723869592659497479089844798563784732035161925067234602046572053350582882955514132785407228293919887752542383369696781777124328362792877532395028805198657037823089652401647199072936392647054253844635971782619405409651907956627105555717836292447105102063567108202696354932118227704854962045503215305798743680131869531129509052084550141797732109218451872638300505061407829404880278227914229569607062000345652318956167237243435450595679174618343041398244064768606477025443356985836071557077896645692623780404876440540659415387105116115861097825822753857242319325596575119574741417721190429661040656567446903060568254315224555233727662317310731639925464041912731926487893248901390535275516606938199000103332149028605740920369354070501389113017268559616657714412125870045462285506284064723508595948923838474194155280330131589445417841152626124668967346557977360929227997548670179226694330548745445367560157999919394059596311680581762577578286988451149705075861255165632969462171423630236078245628654657735812744240614793434010477251638979126738977687787618345691838677268188601279083627823660309475276161694809985868735280739146293913928270526106865870107253652170891243778104925041904228845207360348339997276067009479188617807686329834835868794431674301653043912131236307531978698567890936095152141746569918707397722074805482558817396100368640173214756210944822749981514860815798337943217495807142048612936805990070590494417857301567970847941381471931120994452090741648712948163530690693720790479959434776232994087313797814541586720813421423760862946609027412170216954589727709788562953057650496460278666169067203069264250974821979645671594855371052650042687491710418105230573327774549008662554748120952983296520103360395669225899159618907009747603360673080520650534030571310487012151218751440714010677756559025609089170291367273572204524540100335168296096427381311883517823899228846949859424331357011890879754750578170061804001848972622671350938950782582543001735195164027730579598447838804672438051676851349616696460204705550680233712862681135451441697461218861202923065310681446757574686962871952160867426647811523416656778567307999042479450066079310666315877760439453469633478203251155551686604142969200928845996457252517706095150512798339301847898339720435537804788492211660095439777442101193010794612504538828232502707878273613355350761277308027453095160196374426616408743448598707768742232510279215939059028365414806993935411636054288001482068831711949528403618210812489233231727475479489850243419867216740096855036498539503615488845273318249917888341786833288401085084682471953285695473747247526716354244320657012007039085046333259258550943986778715988855181728384438969415019743079119600443106281942192640992490874561629519472859772496661640653396025342981843623646719955115056951481854145338453173921089170857456804471931052010175799661341691641404832893660841642946998380120502854333770505268288706193466868330392999866036745900144182987849613020838413170241398201597226562521099190839234705704237801484984224258660864233267513908545425929680165229010495151129808220065887219468752795605669084904425303168791279691179844614828478580985793595519622473003379170487006412433496919908857540353602442776016060015250030332774177454233047340881192879889968702351108815070881038158881743894315453039639231341736291953146834148215748286176719452997352432351613859702131044138657663059260554217210283436093056332179547690314592571354246671865827851935184605424056143172514726211959728896204195991419223134862911564954421805433397582831009042081995566147580166843314001265940763946766959604491798411146999312504093093383533954701225615736089297282518044145955606081546928395942522464939976918075616566190407392352960131297657842381523557670068815061850531672880631258827976374768593452307870534267573057706576148517334137186490573005347338086096677670415860856509211059411560891065993091980412379884008668642544398586474114376386408960270875595869515853465932900765327519616456988113094083060912051189864883215872813418826195639614963543091804549275279199848196688330981833275514750864912751964621435289850393434589854323893982291754998677401179254731722246895425532800195894479028676958806280988604565787205018306741602412068451266578834878469883861663353930961443230014225534946428443709408519764872138544030744857294712019645051151573426334444962501252504350760014569302179214716430035102659809541232059907031771706949367013611156806069041974042842285134185721995582051020272847549730750025793065103734212246911869785841769919467275946382240638527108658114637106615559402113618670344167251451658146802035617970345275847239119846234567660256281339580472015830209766190621623073277666341483932008866614075545187070316263360181267655606244438664581076431706887172258294194621270036467771819390194176478772611126805030895944391849574540791532587635029407801784885357816564205931121005472440378246032863821043489245317995661032836869690617100027287081823026828055846445773207956570492630049918927514929552313016909235513552375046240566298216744038171848090390554621345159876505537292924262334275365464450252101457029774006726053184706556061228232977614400805822035555122292638974269254278185010581740708188275996105455191370507517298594529870918194348898206406289351743876864160662574626572698422290876543368028168190414008586224767453201813571190303388010117092335700371385493669903633267314336375597595981733420865793727716715503231234478283081813650145633873841636135204049869006850028599190611139535635572614157809449468568384938169228712349935542703749957795682935532100843772845525514412836711733532695773879538990015397580608477696378096090766944085047989544781594811351721175662168595667154888193982292268465642808233971233585494447759430296147244823271769094069064599743230944998365070226034420283189769327844873086483751693279837569473957577682787653515402093815546763664802930917067807159571803437294614557865283572201367245271848956382225320375794376099319116691015842871368615010882379226002196616580396156513906778392114183585727740467463007056986035493298615715110476672325280673018540250868160813500939029256474623414996807159893784844609109630692941897519044165891729876685097033078875117913932115312840548517629816197188323362670912797362085348463766936347679754192381366953793614123952290532263560117948669154682553466690410179373600962810413842111718588787715241654960690240678872447344388818781138685212442518701514601377929841926333712874330781697755537816310604751069216056016162016333768399333815960919780946339879856824655770154467647602739939902642321107101818943394672776328792463277025418186114442389147953825560049000013573087776685741205039424087375854122454160243615802402711035817685255148282373937817328037816477941191141023111877273463027216571823616684767917604593945156128960829130117082403253621002288332320317113648901631927689254811084004097838032824147260389916494434062275679071188396768927269614042359751487495338945759017636174937893955328135420472556453994924681754151401866743711778472554953181043941373124206518785122932687789314585097252794384419377393024849617411078334157619394041848645903254428893354178832291981269456571585864479721854017850141744564367472557084085596515492756666595395987069177082461055567571246032073201818428963209881683835229799431870694524896478454393676709279631751971861425441485887365325386781026077363281303615973561021323507316121950927031814720581212796223579021127053433828117344339839248551929335238083434438586748591955814810730404919305197336048647368915090869531100483324401021402760749031253184747798714033668391833822499071447061877546724901556928806704097679352647088859149787172632590781079639010741542659655388104379565034782415827707096582368246769947906463788267507860290991337534344124711399967492373513230007177683839799034021130832739811995620209706927149617239106422581017559522184039731568665389906952921366259320654723882210223095088493607566573186541964130162626619628019977032560086187113742241323361819262867563499472690047866898285854700596640604903329744483108970007682344523856611104128887466361376360843378653324153068984203866886860978724682017293243733515759027398012578794729154498063807748451999919683093176693766854396310908223497033058820996365025492976717435881366235461257234239624677902137923581173234007182783594065806615990538394448220604440291340598765493420200361459082705603649292763710608821541315714238928428880908590797176621025324300910051736779686072135271020796486597113926849836467404672884918652108702575069563217049134765579088059131656176860670205123687610703474485716568535094461642847639835461614750077130985366267776851682866224021319476199942430167536536475326834284913396759483445723391369982208744200026446907593647075197383638883164834240255491838563857118628448268817758274185719489825788560738023347980502528882984235420855537488125611963591458189442415807813073686638743126775280582982184983222323321767915583233035965820714126436995451519930311822913270134209838346040167596717852405403049924321205510057206536715232266651188099616935199502965946324495610922769024500133793590754938229500054629373840692841688363800894927933004233692186146134561375885789928445679845898032436200298624706479697350279135248268125506679769440667797068782688873917342885053565081910970184636565234186783028335559681364668174407831733898045073710114271702452544295654641928735367094500863452491494603441626146602838236565299343858938315102711629088922064640135199743969468172808149802358067751839321031690431007551165245293116510482470976384166437818632020872924318531507831547500864099091393154954608963512967377797835642291884113703683261296607844915941781414267937985812569224548516177245214550996760485173031972382659628511766933977841633582009917552811972718219038796289582462774237440646797200548022504477788281034927850573563912200914675446916714770644231112699019254498210737535949362756977272656572323790281597897903256239720589344932485637953975547533135095440763464844245468615581011257290056861123833385131779150449668080573345636125937522797787997051931304043626603069715454269453278746197828621685632296129113983682542606159247751417384246542880599758941720164828131025818434657940653902639998682833416656778455155362034315804501393107040737323887793418523661389078350697893931989448243346578695346068445592581272639074513473568238570935937469828325809976760152890062921753433988780058789470334738760061036814167268621016213770292946434064814611449127037562026391713067523457060473709823117171205916235023075295399459108499313955200620399436299014271311952752842238804830609211978643870779036342579662531765143124701439888035617486043298141929791053377706232285683987497108167094581152856360452021328599548674824527433263923463596256494912574673460057617491081680669242543362236740424066826930609336022003843485128071945268867477542088146288606993830308995904341703512862215955572164818212500925179941923300249679633359682459747978402569503442947856535630772287982971819771497557498794871271850078893112110355130733475650017646790707285950096272492819022190925457244569564635946397775292657684901858172837086909665297374436168287126727876977160409930498461417834075501901705322395244987610606620620101133977712011455326594390004951337292438480419046742000591191856710278461178284830041434645062557853223000708388618895996455748785942950504437302072820550952576291892598522866887420332815683561855958229384484580357496884401177117788278925706529732954627977642211489491681918638399009309580355299947141621161936480167476028162471452486436247614253563465654166622241941689091417224637499773281325910334952030977188421389060673669936371695242998619076248163821544680128505016273506048106226041742938948644519448389389148506344201871536554999252508020646897976247309843691734446598998410978777010673778764615005576647496323942547796035775641922140475619883561458659841924384726795185372184799538469493262986696240427271974771691797234246360613396897670119055794746724427888317708560543977842982280460031588504491440104405846471234564400517290568782346155592022409542914071211550479710195084159734472977178038887469458483736876601808755069907066569584844185075570386611358088478135726708499998069304662760852630956766829273222820581857564225563329170721731219131873703423289138568625739909020499626141003848722823010354861312061019607924182750430092526688078824948744529804261143629899201176183562137269868783391151237491355418251143014655586331677311770656461964821764373513425272558189264615772331203306801006551130924266487218277237511954361444914773280945565637910134014354683536431461836205944277559788671410948040541035336891035198285139782405651474901069802794416414685031096697128628357714953940523876083873303537051258082234003411013648740922095203989254417151261216886393406834857190903358181684450850646362406974610238789858273123846198772108902913440077878644574006931973211869985502305160809632257679934281918828674186851565240888674729536837441319129814728502229204395440856032851782512699682367747680525544433618237316436801908247574339885768025221053201925400885483189601351233552129051033478292499355534791598355469554250902441308723613851077597317719716664482567953060952238015667747170498303535855273776365604806968307009981854176746168860371937820453240795207411523831189865861732835731448509774997859162052610872705134448191780594653550435111390111099767648884629736238558164135825228470767640901041953279476712847442287595327706374925649934099355262664274454672028816618414198663623509769727348742657972640267258449477196612770722408641057715268257734214142633501021285232671946821901661818879795376642498464978107560000365358722294804819549912374226529129720582814390160558494380036854152491267173812644115471670184880171672641814689841673469522378371863473580512214585554090894467757955759876014681310398234747095323004215054018051395303241552199653507984180549917352365962184410254125535084351835290823242437929813297717449923762005943437028050210396141603426409020716603865224104717092634984905629186179183859684274066893447166041996104995421304749566452674427903318456134311106006761594463422632778349456745927494452039200987709177399921039370408113897077533062821157121654919448230938915911101323190333674215245758801031252243358622975147187335301827869773562048721596438978824326752103782397986635360743831076162463067014016897104297222609145032025478426567766047051516674306665903298834453453155191498535043076601133055072887597618005283385225399097838525964374496629148827407106844707145305322139832295748303267477640497853676762100427184307220132929497152436488066154776036114502352402187965252021569226663631105567116043953303726190400602778269471622250406971228476447472776731636346375732691261647075616265227940307811994252231504982779863902469499094917787160307440609515591073475159135067133847048608906353558959822146203680292575275272013850761522211851706729989947985425286806537849604244305416238122699883318904808281079048666915676070793366345455058717763334326611568712198197915531240831114680381080615332162017631149754067548462238448803050883929919055162825660002237315310229032458010624338125355377948273752965160779572022424365412570563044499025736498181218214703846194942597038702041875893500144274196521998327955849665447957769339133045109593531965204319443913779658509458538471306102540743481431905327960125081813139848538703281156942558797426928042097077224436248550177999883026460708651136459569623569769737546235979491276728567881423964709494772751351739446616361471643825560106843765002599278206142352600241071351705756785308022320222437996669815571299026177784487540975746098356418596547692311997836267389349292767651666712682924010362361638837245981166632541687249658380305050714586143399053432118935557300534359362819709312151010719602794055006928503966977732568425173866683475172961460268484496982586560395435902546476350417825677564266089271703532737645638617440276817342228634934952111944471367611612378167773116153197878073647869103913473990506278247544854164324243068782534505092015631575624851262130446820155311631282810237950003507502578529199697982711975216498030664796507390088126861624973549287993389357022366929166685706459336382564714643491638546801469480914009369317351287733285658733796189025707351922911746120294860453666618709993225522496444849733479782161280037749058829042402484412644322632824598031771123768222863292339082683974642956895748722589048788241068328835677056177222633436883124966659667799076083197630126288201327618422363169147650008155333813166841123243661129780873975539510142658190763043623588451500319772257932360695196779447884683049567431869811128725433017142517303285451229018668946604924723342788742891804889740760262696597530527868628150773322531467893145908306950630161419887374753495884790724497639484117471839604687488504296148848189204855110855929429515252278290715654692615538454235197304776625262557651805985121908187641938172845575003695351073518102050005221084008240211231216880426307786858943913730009033790166739164856643304290538909777388180289697922100672259769624259291757219299754602885477203088179346679999237765706867884373250947686331984314872019633627270557748617175564752694849995013025705068601514838881680412266366085011166465544852556040252332516959881876746439919040827557522131688553912363675068899821864437218397473196460494460607551006055573009199146420955054805699384095517400865367778956660744367434293243562101284544956543807481504516507476770024217060748780568193135245233188566665678552915148094968602599183283510004589261842145044478032312502236186924166432882781380051656140053521181202416345364883496741931744257642497248928181577107253850575509423817159518998467261923725569846289138847560315802137975108321786180629905079207559404673308476090613333575473822613511820405104478503137595122996714189609100227204444277249110255767433041454911189362107775491929194107233259368518803983551750504907821097422064131000057161611083212933087314342575244269220543816255232024934546271298014854141802224368991189678933860059599887645471490941151629662028233059845907024444925679756718491304461581800011287311808067015202286733377103940944091295717166961645713815645164763129751431403763114044030464796129382613615115498922306113345020920572476623951742851534497757083116074074028269795345216021831256113897712543523417408914878667244134493636449699106557863169416103925989675900820277445492253284759675500855666404882997186495658928085303152527536582890102511802503262150947990066111825327688216508580764957969717716523028250971497144033692420458061226866635482443017289913490047533784548870019336011436030239579560388427039010642675731439257296067322789891615843573544900260454041546693497914350187508119130231110253835131334063072886387051885083661801050408177027148613279683070697002048170878017545298047966687639233835211960879126150455952608841311073972926660393873986377172730636675138943979533478167348392151226291382596210129434742737364528062823551789465918716250750997609983099085856054762576343600395196233965602107555954109552287968187642204274428552706995201352537484109800040524744746697038912568382887005843521164622152616675400651052714890622072645258403608114564874372197935913806522821710399922525056748245202604255401671311699902216379978730330623298882540576013197191592101347414248091453443314050675791695577027951321423702592562619663218888908975707219337382497248230987395539719608046638552388766459330070961881694410533020406091982268038570308504029502280451132226169554483364179189881860302199894988077482272145329290499113326470100098856906107609890267321242883106633549233619099355132624188988051073324478863136370761772345241954808858345944735565438910057641233248397925415074041884403299514610984592468288243862228493218361794933964612893998781616295618119579138250486417457791081227400852224881546372903408338018681399863835540255593685250840887889142955238290056495597313840008901870697976076345564249188208375516407443590945355548011599534134216352389652198389875932217261351504713814508349202060503378415372834471818575605097058984101782718597437201324671662788623629527397606329700756082994613506538835065993866433361288255778045988320784995582631955166114811257380810317729579887885698736082403297268069528067479817015608219369263497369922203359319038395597969190297687979453962152767124257914583373055472622331623935498391957806627456032821606370126407290333893798512359096016265985565519923605027085750140821342950307260811872838237288299294280355835683649657842316372914013432570227922103689869588352904139715412496525209481841937456328295534806557589598882506299354546399495464258754409297410916433545595752492275017510288226259613635499782490981457548819976654918855612339406455183871592057715473544758708739059063896097897168072973227437088474307504540330878969863745906840790303494252640353920909470045101856290106565868240733732716522449711941395900324024703856258433474754524561547461660754620160211056745467776863394504756631546180539399724823657235994374088274032299844537520690377315806907286016020087366693961215231659283942060671451339195241134689585370497621770243670735760269363326896903905819707502593311161834082167608338953613444840306478197943197020581273684078775843347516200451279659787633476945339078739648101233952139988305314692350368759589699864265979300142657334732892593828814652179695840047721963876262698813586883946272438706240225486282888540211909001592204388434078808401371289539475395615922072273045423895403285197827955991000482042338165681394591944800749183135930272232292824355289480490386439365628408582367314679199828293105017497606635160677348318249981200545312803517271189162857133809788718157206043957550698016349702547450418202615869731900154935070865634463960218461045856497497815135058941930667372775279132499414293343966767467246918592258204785877309946863704107018979874977204989120439047078980670300690024464528630206999672193564928444257902956295029113761878260827604622273650535499581494975987330427045010605305710708252455012352168214912992066574463880690333933483844144641201201959699199320176706193755865291061961603878384107937758101399706691809216728799176122308288613047843607596440572786055642892783515879094715085431497132797494146776992843942783798253283937870397586333443936504311898902534243800887275764800485251262197735037520545588737588235247421167968974687800875954838848853553507722049475190934762493378451799682624509920099391569981132786125953350648011724385396994101766462953064750398621116590079924250722132931860527358509075884927754377563734618641152083779587275810369977576963339086917657044686425233766314732456671796841495773903584157452167946548269156466230029249003957166242777642114060115971202293840210278340426012172215314586582405888376555356776330000425535518410041851135159836943839619032112667834284880769377114247650552208902209193468625437878343512098937044647517457290114880793983620301909784201991912925457776416297331532263445715445926684483617309631588092524945031939795485355924192707628227406023739650901152252271675861820733279195058670748769668022677954424035594049441968376129534858655090738459619053000495630094191985984532293776955647353828470226192868579255581657602276675114441928662844493669599709346528140324123056486258208987547711135968213550092335348138262023020515843541117840815371844789494128714523408475764280407834521825752050844564174924790532377271780881434522419682528505581376123422596457114439782483018456159001160779171519929061999205575846064751227610076390829401813996363574421821716062161537849689137824889936290798817756087152322114977367292347850897598850735455153467014322451670442626788232993196409380004259445331782114161794879486490578215695250919253251120701447799261597643081961094303406496231854035058342166895583746485528048979512041386726430936117136271673876901897819199275128446147198743077642553108072716449293088986717451068978075253548775018239547543466405019578495467751200812105241334246350378498483558209080049395227591969875183101611577654788601198071595031647060561270661805364899580143493988775920612129422434160887627103542542158679052209138577127074901487442922895066531625768970342409040440007214831187061263623348699189542916989073987415613455345538541873125275999788907389335198794252824193303330565763230955386029002572595945594588114306211308208694484413286450921013912162468672287498615262511388160207371567133014999631200624453219496450870624199260000551883704540225175354021085132215820516076037657199616074080188677823602692787621657349670301718674079570238265959358988037031426632127599707456616929875054522189182862997043934334469114546412990863575237588980980785380034160980328799887407430577990633038537484115581339754251111934618784899970129005064276606789339584593738415847171262579463281799410448624403814735324258997012291187363145276472751840041515478397959811895665068774827375558742794196203489306932883862214733186202772613990165283043117083553944366427393439450254504490786115422394129120779244574375261469378105155342727561510752960352943619025304430129062068636150034937670260945189284961506092938835737903115401495007686018189137692455663669727048448765139340159748990976747519312184343118718882912866931357567567420049666550784968091113366232309116728047380157494312154303314277618752424995226705340598520288370912259610896745576546740073307118241010157761336306660107069406289807331464518928121647327598927452180434758311845657040172477557301904450332442420499580109234117949942419624186040945436592557548094695208941156647823512621142089573035631898227307842244442029689595078100790894204630352215801168074347102929359691209347749615255372658232625521062780355132216072556978455971178306334852867715061330475510557048318342443412284464765425594863566092339801609322091895580969724533027262591406838571133756580809877515430796401559596856669139251311730433285033988628063893432118951904603315259983650760167105900107618069784509596118295317231853307281776464795220017363459377814720725223376829814736919163349807032491539449364860494011363574050429321312982308053780752486743509547134111264373804098054645108881500952952706354685938815224001071632917104134933881418524417518333578461285970444240184203791577994248884665430769569458260877230421401839338648217189280391661951053315861323047743681428872319679277376806671716102020787863468852669257149665035896945338599013059987847405639018324893832385671608734636515668534157887141539285092120130932272759598326772007767376160606884643470097266880288126868751521105923733288250452312167270756368206565744347640421549194612049664145703276018922963811903259355008089153064109197789420974005348523260539359972358782729141788747871517278398181139518892164501328554161790449930075525845999251639849395122459101343093020332698366153355234894387112417936186242076530318332554169224381445668617840281788000148415982643238929320937106816813563533805379389680190830236915671553457088485066726958392231368641516866259425632333498791136686853187781003536077713226510538095881369080726094009900684244293513327868657663436602296183089999823175337843663674463297701995243263323322712563266692772530167675411463361664403124473233724117962399100631568297935605923270294604982500908932267617969564802811515300439654168177410368261577538488252283820978499383686070139116545765805291139393547387237952121268947529261396125397952971375735420816929297596909940567831793159485323370932747760209261278106381790126058485235441616253185223358523966758918645016741446855680152330495214146561947463368178164545319858666397027680859284036581681486790808813319328815381939281650932403434869429563771747029730474824590939224688695463873695163681093860007144063179313079476651585836417565914097581441496682498843340751919968811685179346007424628005202708528521639745063397849294836255363472081363005498022047185572976271604212325104682939473082539763671918600800294080983813256587062198860013190910651741082031504301818611143406220142035502142967380977678567773335719500209960571765585835033836854001396928241012242308267077975294826223050083043878147096199265462807254719854974319620423937913110261255299436150880713839831610765726162142885839835136515770436188555383121088012011158876809471475754767368332492953441007129696421590744161507724107497367398521832622757866807041593732381976022070066986098262558977705510865462766596970708770914821732433601957302191695160786437249569674389926250407447460838010984903053907495333593680825343047707086527646987738740761894823092715011751873278319168152350782089727005795971680541281150841675416893241380789211027417157556113746142387591771022247647312223053831644489191827703877929363598317791527673808704661376477413259690940278389204602213332865672778492055306496044786184626405305228928952744133039328230057737002130819801561312203882395325460481276040560076112455832719810547043255448762535675755814871714965602641580311901664918551125495459834991694665032836394005260491508713891061535931488292917763263656141545188530347196086935429060200903425185109336139063854860609750981628889379417364532125442127877538610776665298803014242353492123803910850444557120840482257173751079192047488968026586000936713144311084324826094129774777025434364096971465393059613044798901611216229190160803828284059965477933519908776251692034023922506211210270507850782319654492283246573137731629712786623315836011441389797856562329720581352007698669552216912315208384548874772546225877643368355694607939437501648299745952829676933515571959530633213198945351143774346854901874584173798406448468097218353346839287144708126032460853764202317492163417651147925112790152099197186263407744124128184319822837390159490777816950456115892119788689633178884555001968208636842300966060309009270938707542851123792478132179127626417497506897439737634132065996412153528113181308708123720556265781528121011960233349821534626439663199289697226719941444861648353180325458565568303453578489130913660091990367607976296942116520694456756280391330035389329877428298431267473511975446611120204370083315438952133165627701524778512030472351770731750441581074755200725389874711330633732135159483925309072111024896811124104998267929959984814481624210258462810833612379486705411889701898282407473115678683101834088302379258505251283513358729376073428435137107135551751554522962608910627430386855290931403653800433138189328785224667792595780704506407242745186778711875861777468830578311813437872328520737645941689963823869204557862828355246025681499258966351940044982519985553696721190722224884989507295025195242664997251195135522675580505330550192165416863253800132940257664232123496559062641986142695674879525145845506532089872756585994439509848618134732567114014960342476752052172470329325297163686079894157357743834276764058298834186764940102060808596975445827766328317705502315921662648291063609492149703773676105027064350499727187371995523424089089786636278797536030598628769184676128022242766153222876028830794115771972850854035702263633096472719235704028384641752110240004419788906200918559503258139353686147754303981646501917266890990642362184238926857551489382672767977350295895243283330204852307017915249039590087603775629505181549060793491722749026879782692154137062370824107123646698658809652514898275196112336692386569305646269274443882236424875899639240100726554684109623121822329338770526272735099164708338614924021314151600062993514673432010783147532916049085843523511070031141226782037119983008249379687813943371146781144497377787396504452199422550908582559419005618958937047184711693800114613749930285342225895336840547040400182043648638616897175124092110620208373856448738253114178190625169301879657586349490871558577160910727635853863635306748215498260803158859856234219587940013254356732210086117268951484613766389316975105835582947054885240509900354508858615607193902613241212188274623846426760144076036963460377377031747692716709857341489698734728676815761986541212188037256849008673611872781683538770855433880590106736700494495802857174063159679481327147236496741935456216618883543680074531645937718995262424384002744445684142330656302761322694800139202252508589231774932618419437833795136366176353827354437511296904741424226362291175144434307035775278805139913492803014705183527926430641372753442049689624075511773387278813566962319629088357008800822976544525897399654037481292706037935357430021584212482271485688518262692918313748564588406320117155593024057076949830837384969705654337064024389730540201075128644905998942185949522792133907046502770015654612014448275318551434221746159069406118044593353922668255403337685784059286703173685228506055360476543397332624544951442991081203420021863425863585516402001518598206495475557225073369934023732959993847594790372991456739339847738736980464352790622684623761212220909546582398294779386171221132786134393679944082184908761033857642398944278203886259615797664499571852871714494006423603178548386231900541915343795531162513519487334380444084435065289765177722415013405358086118840114036486374004548059618384114670962080470223184791263090251032760592495431806420732257184495471159475764817318515640254206526616881572326611481717068414751491436836437213135385221760907859920577479323843489232834025029677195295910323423772433398882020701497438903557190296566422229493513408128039698299454731784051331049468895495271769148642327979828840797477363474759033813256759871203008282018583632263323368753256711194801224595550605710872289395540746806818234608607025544643284583878421466712977248911858326923812750478130223651493520572754781125517131094069286143228049848761404459749531369356755382820657124352505809486802800052705651246244926731772005463170252776605429489143123624414912488694782872483615056573591006211905713309411721321707032887337782855966606253161971980589339692941824269621353656382861683407326052246988063687153183044651467120154690175803675455532532883979801802724489081146710253133654550567447859313048579060713768171647969287465312746234782653629855417893331444660706461943646373292381634018362967646970232221986233973519762400016483438833097975837493638898635671585311200383521645307556997796013169090573014892790440881930709863518537888071668750730863560024002486512115042914251206225981140761045417096733083306939327834701952972205665079355853775637583238967218011979619437175854586182609692899065887786268598018213592608971305459581142375340876047188423632965948402200780611646518662634984650654069489261781352236685777751129357220063243820979848663038813764097239493552314997919288373137092301964883983264478260697089851832127723682517963564727183360447544300400669697285358198932214002372085661520697629563384342037545748921832926941649397360029725348700209894499777429097726493147390464103037529802904820492634308386309642743167634199143536681511442318332953167309744182238428125994016661556812761786651856622050811786830701595975306384677304957151712308607945961578910254463102282136987917423139091491836803906648221502315570122542895995192629991140528652418876337515679166863631271961046312892114665153992986284546852256348341116801208580346937161108247215284022260074146774403861024776065318197681916999268075017595505292336549016638142672757325112547823663710817282100723464620870953874091522124815253973495850778536862787088631145095743218038327107129239780421061456485169178566275190241451497412144946373451870522676196891005271714968721891812503768130706813358447383072812940527976560412593785825706062018336098060452453358808152209146018719752950302406187952894842063035377108818054838175728279298887509095509569733393197704184859257262441663717467966895398908691606593871296779853622917000826943317234244864597040794876188866116620646632505113938720164794421392099692578535085524846309216492836418971398893777520516778586715540348581210103696430457261861746948049490853161867554035857039299847615418686770156964548058267750647673779143140485537954927739782917928776031387117538316978512710648037675170823952119227004095415162739372331004379459544375138679689005649918708697721759884618529281917426028141336142486966109058194446193770724498930168007624884524977432172615800256905336947974054510389760950194311007451650986781668558070510371265328627900347797555649491649602256561683988457143178002210963877679943674601862378626209790555259881459643958883080135887168435139860530154886291692008807498589430907278496501300662093901259794202385028435154718516610029035184690316456639793133126912886368458920024622901796055512093276085233074016227892881426244736755728519301546400860270358509792357321132628087322734280579952918622955592937927740862966233259934689591773981683056743640344373459434546179705426043776631264695231777658908397966513122804226895266586657584712229855935407424159805209138164154755263472319098461615075826954563052658099669565118974192419744568159947327567248780418291725891078021040538133236532348973830415857558963782810377087693710264484667368394552670824356716973978540945963895608005104223032115527815487024191632144495326724709442658544004576224424302458107493930572527515902816863107622605765358862928974720154298800549530213457228717976808348532508185537201424041664127590022033733693676486686183885712902583341151521120747724366666280196222021653407259188463757157205960455766006768574793021336874079738948507923394731307420341835207742054822800741192798841364834326678105073681705360159700665870465124587743321374782770590737929523280348064335092109460466348696073499933679198022352457038968263297919739836479441885410698493350611617537349812798651611557785080481798141120583959982524636048673988631869727683704904570499522428610813312164696284204249886183379876141464289243929162542502396875430277578694890013686555579681216941039938366541873776218788977551972243895015308538109075730460659189799005904629042428375742883499313905921854104523536172804255750707916624059688419596600263107867108397330600917655525950455645283473236733496663863884979930645710662510962102217249695945769179075349082929912800040348064838481105598896528860711773018073343264649099024662419831710700716671084460640636712191086800476661794967134948802905643853080054901491427006189272277406824493613855465065640885552106626642957526054555005585524858910255908610672174552799967953237249330153752740960108483415295646991737327011755896160637891548963520902876016676280954244373849301241573074173192722732996208018145854591891038637491667983301031802670241589843485375136125308317460001136470423228214892068477064271718607398338879131270610495060743786254092336291093913012098969514578504966416244719682943763153190338966337979357207307457005406259770147295439260732991466927293981369558973086065217827639250103636087913109391632209159630633686988829406357635293476542837290359356249469934119770446371528830157443367385921325314363896917412521439930918464669978144727936941118692660525328215835137909251985261926034697445249884249844666489451147450351687304971556818888084801777821411511026098890572339976782479276139178049893661569585213315923958239347081547261778973514846123103119527579505208333894126350180409762717496104806761642000683951758372993802055981919052073274954793037836901009957083044251494744556732884021027499280405977978871361082778003999068899826205167959070492860409231474852786160869005755997202324668567052347143745817372466607099942126964115659416424055230732294775470235086130124486468790576012742391554624737519146413224718127720343335612940924571263103625767100562244172807302728226316055562141649394954523708174862810097047602239275671330954166704079641647983703042171890429982813399437678933956164582669899283433944026848652369764465406725725593569733313244756560340446926343651480977877367059962571268195559347277320720362994844833549281232901862235137314449498937349634019611244459186494320141960710667136102574855893934014744972450402156930334395659857816357084573816638969120515921730148945300904743312507202258284286239733937873780303372573647537033421645512293459885398762363953976485963703266805620316786348989541863835045753122056706285133708070247100958497782803840857966435246237926943182009588705764198670745270776831860066096852313338447864908524641584004943697933441957251271629353825155978231218277728038808150043962629367433944082663170660537310196769017323491103138429700051444912713520870850985830389229341144504075096625670677744166788579276563737713831096732759025350523484646988894079382077357220319544197776601741681012295231821587674333339576256179107826537853209457995237935959576543874182169327954071379820196678564860201741430641339667313359298081999406791292049585711113515497193263927400588213245244450647541600843386143406970790490612939473352671656528247818714658854797364119335335232518737678406130633790734466015149778551125779874544375311820995690701291651528703028738488129460430873720431961474286883351316135096166615220858398674770782849531571262442044650844332341533872622228820917501441969295382122122473364099333532962831745367743258167472608701303901324197985217581930198683012915713979639925932042922263756571627876154488294457430683320168825402776552734167761836766447379653487382587685603022221094175643767334189695752990698164552713017207733970225923584487819893151261241037089876259452049003911925585091656571617633904706279773860281957109531414882380845353625091795753342970284793728387010495406069367869548418574826837133778005005888387744665745486827693978162940533668243004524626786691315083521555003617071042215818947670978132226185572427429477425542655176413723213980697756367676738503932309670807215845460587032593390160692280855634361083979388095219645183236473202997130915371625239701108071504894391414554325213045322120268501030051795595358590373733094571100894340841406219944619919874328507094884387084539588291403851740945569469247952027299358277793687496784715436461643004817087270581480244141618200375897753921306070151939034571493967728780883476180590528335300285274365193678893898190466801477460867204162493415636798761438210603111454247783380007849814859215452347532103899397550248864018322692342032457578650106093919133952705429438892635742614891822015699477624404455982546054248450977656635742274948722640284803384696247120012588794647995604450719085220574060693588081192037652330486339778514322060839894422140472295377686940534488733092714979705263249728626265687430738094388656523348336474468569578255759558782603978971750909669154012865592577425406622840593286760827703868771408273199208719537004117096762666722224398326739513225781614088008192069902196825133044094754004479574343759342819367987032137801524969450815287312298066024312858799132950883507328986742680796561709121865572413556857822542758410672220455529736770244270648910900623266021822568458802330968252625229353116481295798047811093098811921311625834102352919059077114976914908883190434637200002251362333721763170185248532331018519741065210574795583131546567826817443252451216995437889488809825322679889479446945866401544388359211166199743969542581803365250474236351334742874252414876808836463382921936789720068766686959304169258514718260407865291907457974096160447401443964445197728417496365244890953456564416456423139324732032144955006174587154765925187373438595473563395657525601745256463128417428931973823843434625966379647900099402463842307559844593498820496775073634330347461691598752838624963067431181237484850777348476676076253081637063119113226802217115888139338384640985483962166792318326631983866158721834164257186355715496284881249006957457545065806377259993331067007116389342077357556933509131786982434635916906764882139263488880618483064590520358764365285566981567869659322838552417725495936353461643646352274471878193842738664311786233417972728287863416216851906861044085249681382513017947200102474353888966255871054991173197450955080599751899679794884952562552483435912582396683074353566110538671023218806672192793591759459993939157405793847230228052742645330270294210744833300108817599638683418739972270869481862017600595930839191474763212298865455129109888188611157763527723786402549853411339308874553784754475582799128380152546193794025450554759297202202099007805162959496002217442263957360609673657158328669935312705998396545954911450251843311656863703782115815563154850659255690392860807390796905934704135157204723909000738700318425573616508705637828304543626247312238782969267334663036827265179610467123025583873179764961657613932109754815831142176234035981331317665049484362436276112158923827854324446683482035532541858657197348228879297895659878778679931664042804832753799941499635971552916029088752637546295079445776909328077064154187099076518874600329385048345880932468269873462912227407798228954570624667739146168009377807759521549229291169354251372105099952067532455794765976254453617612065489185491992271098840982340097560947506120168597859515779954024925642334952960298083031555083759839335848271359222183514855725863560245711522973024202698281059676252330624393470142535304810750783276871475503253496638258068952309103253171669795312720351523062874880804013891339357388905198962633528686000056206973433423126427153705227924553360264269154430839955627375429762071517588666005131832105822906861838250268538473445340108183756857987463151350927216319435209913388703130395874370560863315802981492435901730020884255433443080847671286865928073515863906484885501842255715615616570700925052955548909744704666264995316437794795076754941439791507778774341800346657502310287090578252914156168510353594160837075891949831772879279357328493585350279697651428183105411715546785159686229166480978893436698874037530323226992354517875621364174458062364009778508430649849279232597228695749502763302874553387920661260214843776803509409829768652079993179232142947211354593569835972310614204187096273608760456901779244068644029405366561440081138856182328158949176788141048683628949153600170261609027066019776841353958699579316876510210258955800350608867346641342963812693420692345899617482473781005397316781904523637090133651723235448295145520914886759836882386960190573339732918433271201537060306943672069797926399875177998293457951714454661393818949706386274157239077735881861710759149923863084540848639026435594568269088815828927846389407264832055397504209927404747389724048953730852912339641858654910246274182491899848481500114244582805968015531276034374004599340588262672367955791946419855604848656460183584040543347043505677150155680620851609989694344086421082201627234174795791102206878108115735286774711471758565095415721623136462718728197344408878196598815477700705223491176251583054332795890442535398673750028185606034466494535316431073332403750177744494618220556036781947164422771943944194265630077508810139804474683391747686654414393412856055987345972123757492586506169660747998419311821052076944713922167523314940553925573681419621922154550420862072148833065128049962726054428871070784393554439506828695413068374683599722368631983192820635806958965782821520723679228104051928365717992428748464491660789958724665225532218980030660943563926897749096056515129243140945358931087406155136615379768732762713091219317289331578621499678585098494926075992257472505940894169946622868255623044898029995841242291937900168456897491199941668803561611163901389160334121144047256536210467622971865877762117956729652395624355406084122000522276386419491307548877500466334137866929960433190507525325246333443238064356936036148535902038983428032978963007367318286103255692162436140908205978919159287885992579174087206257954416816952423683995557217441701891356315958897610776869074903274877010548143478030383339323480548647133810104917350329826918796760861709031548246778303044725927422095501895828284483996892887235050232980164903441018528767575829399239427703762475853021500057506550399772264633488353395170966461220830494426863830868400965512354228591651486445188408124380398289604782320151016879662775941893231115279241488069010744383182508680782965750411699889976698365980239952016042647871721078199919302722285811399265737762818343257974416443703579604843898642614695159142339103053901322336859925635056314485000902954313621333643813499045660896292170422561816631877339356533302113907415153026334340128262404834204464855433318998998820696795942792379717548929323156860925986515168202370112837710404947144699561445542314219746976115568700701296575907126032300135382339523531769180383955058541096704574149821722079290296634104466689331747953136070866411425717088195099757445870149674379973455179450032346224509640556178091434969401115670356133042300695350972913031844752033161225620209408639964538393800503469173061357892507064772272711674906896152118120731106567542785870482502036449429758646792602881955910337840039537454098926677633471178789711924316937968682400395850638245556921440751983172430578398066764936134277062821779618286846027937024318973777003103864299046773834384532712293832552310954339138539228443204179159222661321541078155241680960722322505691270207982666142239026363720230425892002869979024194098969842470920970999088258437274544679213782479574122430434270180221551928196152629453130341513265549872387593368681237821950257839652965102940036910427165084153437883138715282731799481008157953932251786165332708605810701123561727769285516929716617858524182089198109492780004647390055411342525220978082719443424530902858146487345887587929045314317273074887969363131335436710196883012714110680297733461727177270036558867728512303552567072591656320850615264626037788474528878100611133288458115470797887887967754162911325942438230151842095477586244658676820668396189160579529568631991544934427769424451889203692727031679181120159168330514888301080753927034307255941570361215108275552183164803340495666581842542758614838863649253074564042161099316388023653094811684942266837055362207452496786019932830044407987451569037214142642858713541188198162260697272456020982121023681872333353443738875038721874590382694588402827757631839855251652617997667975846524832942924548776252940109084570679022144168895852464622751071826738237820405967322035259198833473792427022554096493629937821221295699659315537077462915920870437312719351945615586447728884087754544897503650032663260146019021027582912203069013854276112011818997954653076512347773084278157169387289729226969564583421992325765754094195887208145413577786818619275681178129208597088364496615717218507523305672216711830182290779236893243582630100861743146193749966397469820611549723123197258041761102407195525714881109607893943112855171986468590528252009616221790835341828705852663360085327260016037901699807150687041778357344715523327801662455310390692856562409090470938732093734754232144743905262974153189102782511627193776796355604213543926459087575897860493298118650697694140338315808859414377378769668155535120509966083910520411787325221629379396369220055830898528322264416572913040172405627403245738788940801215068323548642546121882953966876589835333179042099035302625501457211021431763678145369773102435706342988318973823355496755381480588355339946864693389505175971437680641340762999635251598210227927053521473187854276087235963267654542998238432261616872666731587076136425898105374600176130373347610897772097194566707594603295427561820077668395656727560453036238326678639969278699204397988667875736314549491360566085811351216165887489264958163424041300288308733638378124860507655796042923158432618794452748188408342778100907820421181354840102500084860620224940888900016944544099139984419221236459962167855870075868787440722750204095498603293591753699574131996089712768473723043578688751707458516491664909573095972404176688698086801891113453894507260607764253296651938613579752869737133418372216065119103200336533810819085784390472436256175840160313989982136411606500027418914856389724203264639566771566327092287717889475585435535451206068785211576017613901474316686155751653615763758883360915079734469346589290451162611902058875069735720925921077380699491742409274718473258360903838461792397519651622037657039551928877316589747132038913017932382094880822150078892399040293486984688453985991170465248670368666230691665251608817095310381982199089871357403401235245935463146443828894157120728734676015515382561998131299226416880823995347544047390603885894091796472806491606305927132402885101622163190613037209528806700210078240981581594310443794428216848969830865294801336232069853273923918369963068643683678892586823013243457574048867132957821729463411194514895918745449621190986476004892205629490114364701337483729154372544972978992282580365187848877409238665457012529531675697522642730885438227437757267726233357546959080211376304499088864509690129444504335762403501768493711696790071076224811381995100817111087082602255666401846108511440662603162064387279042372545678152232077180766668279854515403127459986821699419100902886339594183572928048847670259008711443291740296943382383919527903331118044240178839962870174191407937415400926240076098479906750269622753327756718629984548097749077178129706389587368773770438186921216412908473424503108008915522518143080010472574067033733178156398507654680651431240085704353739055552806520221322727018380005929755455202639126809158081013386007929536651311160493428939848651667509692678643401658097029337672852232836186259984060663340025877089678746109134131184546804082088341295529427528416278533106730698278459859157178731952139808775954323562485393095461648166903929889746812935208906831039450972871233095326280945381275987470441631440515200215026930842282161925845665846709287236891548203105813349011420585408372700597962702103506957323097860284258280182053022415363295532557897652047360596891953541214647692923594140173363394983492754934665890491111317105855136037095014454249001336256721110646241511361681736898661917269311566493937495400717075490425249187508425422808116252537247214068169450765867032489387599561952457101394990347506030066112653736923692468070646581778162322942516365353393515940648220817335362718122371054116982352907235811874388709686901340256937276320763414606394617657185464738317736509053123894721657352217674638821311131704765757240141322021502708007926079577629051217582124329659909886071258484742143042844056835251088039423692778405240829632956494383785292987791681732268100637922577529261440656234661203030112895479614845969173507628048229406756365766946867088266154187555085303231883869454662727847862719922553552748621509464466776294394426973857803551682082698112525347734756154204891042458619724457308001501159330635170016401760611277202548412164664550220135756961444955559265863104758092739325778324841387475313710501368039698983767393492841450547322650782467662019193572091787040061588607140502652006329344863139875956441764284232699611090496025386315283940275982119249609847461450028222611908506383678615713046490078949915443234459835361960042620655160972447908993853272505247576390363400676484364772817301135888602619115777807370036292967942831126539167459712408614905213143673574026563233873897386139495306878438877926776351862039708644585055565219209698322263118950131215025112870132744725548009172731290903675622904514948223693686007895540277687400580593794714558136960232054007579086442364228187111452594412056262681261416575257238039113853366049818971350539813960409192541667571102928462542714629634198570775728774637062934159116922375617518081099686928125965967554787343416398314497627443159410061393880346768429840612361145727934210932695226422229166512223805119485985914783188484538852079270502226521388559124120919496446452139106378110636310009956817005371286403970526167459565034058916354821405275814274216457275637678208559182512221488045974276669701936517632663818713899661348285983245766275691557509902619099785985016467489228011656857595169030055797912889126771498619617476913707170834725948151017199476441396859034277839836498626337009168442423561392195663205229906494824743733188892803300830600692897566135007390470664739566466125126832968215449540969454403603393496784946627001444903611286938189229369968646176868300418217748322491235744114555110688320657580113184793125288397002630754150733228958868798670609133129344260033437559270699740982841626598107151627770685786715947529669357821634207167731754048628456750663898223330977630448240534917695047747515036554885073840053829499411682326147112029919720722594110525360910302759643172183937848434182095402924810715301242992992266181706803072231317831812144035796561736937478206924827453483212140371209923909928637148295481710956398680948793056862046687318654345975384460276028626051565094496818719385403953827511510968416906818657192373500249426608454216305961411321023924650017928920598110707829230276706104050538368555778372212461821329200947386017507762883330094621118599861733721667640516818551922954983112551129059647257490234139183672001468867798176118901388501432158617916781532942878462650052117349162830149983587234153886415961948990354895930429630690662791780036744501609300509754505398885418913635031015001611093598277963745683111831973918734034324751774982659432611604015961883715303303613950580076226958123084810156649698930077578703323308499202246671930766095358769713314164121560762869571970519322033980756405523330183689799121878335469399846030980710317884542394497753439604716524498712566864017199907947993886579217307069697767747886016959146344225212449344416088670733262306787860982018584222327353053028864007706613341109182268028262629500087947544857886011864124869679968259501319776105963896266780718000166176317063304480512275688664236900694781252779687661529543668628870294394112093557224790988186891318500327462293273074524138232738982244030042342236295134542140428867150992810225008539193551820829771191886909763934856292149622071737804742624667365162222151962256994518520649497013757237388210388719689184665526134575010921091470725598608468890635307943015240046909472450377943805649952570043151348930566525823238693093698008876694285155059594422884411906261584837638187640081163782089915918387566193104498321132706022212847751497537809792220761588344632731923791166345951262962558931964421559865314515500557404959164101553002606224004123656947920766584810628946856548814800517026123569400958308390906764490643937428001859052203917733584839767147614301230525616658521993193325149221114802831037887391605317616919771880820267413744492330640371463396987285873919576558173689062020154370917590367029529225233634509918751053428024824061655574826631812477019660359686001776706957102043345555006740413433240463852126920037943084208455478791603445516987520744660625656521437648978610590548992800002069956205646093209341471385214007827047443784560038561753564880492531176170594582262843556663293185441526358404236590217475349402081183813174893970179297939277781278851475274911080383296232528336779497842450004691910548433508510779197037296083247013973142170960995255003219109973514799023611697969205483563057267831531233478302227267611635009288630505226205775321887506241403603404387416201658872449852529701289579279352021531710306115263488654701153934807690487569214553438500341198064917043788119212047826152894390871342329341936683545829372656797696413907361898948757099496940424550014967276243986195141974090288622059278023036871488192339293618755072731027710061967875229366339282453951923301325453049689765544698545395838984520244488137699544272495413277616600147259238303389965637417898764898850565671049388905843982292353826271669300656381986815922503018246541278054713596075033639664675774989867984484045323279288272056240516080661652490092395725572183910815047272800093644831251543005878972206104711551690325759660550741034638270169892671001390438482118505518739022760612880027395963428288463351350552100120241119137521171584835327085806143164374439489037437117721399331508894260735914318151557698168542706335525379095821962637919748915939356814079078040365379243104734742549246705325187396412114170828369131349114702813878995232793731839841769673175448060298747442487168352773374294861238652151254295258024112524832163947831064652052023363741321797426457307033706652211076482978188407375339105085016698932488596067894344193175376268998053851483223000390442864911244810968572795163398124416853169017561711053847533360468935532129576438591807237958328842292093721914573089577840580859390199880493184466609994444128507735988525783178849599689236153437583626001535246206796390189936134878782447474875311581617915460858965140695630783357062195411202029068546115551702945432498705517237679937785178402514769142075663296714193592929478626288598945595316565588925811412214567498901962033236844337657661475043121206117538849239860467286193166131825015699137468848010355432258515466238811230722563619001146097493448395061467829267484391202225550846151953409371134165479256060123142308664228744273068529909523886072309642592323203296910670327408779444583809456997590085225415713191717560102860830826261966801282664266339897105683297395360510856350117037502991528140976227148744258730131305918951663070480682517976047081316386356238632683016040385221637443583013949843986350176576309226005135276217574558062852379692745014003693549156691192475462328349768855182447537924913375799905214017141079398914109872800568437549449757223725525681410267672344317726424967787205465813413409175548636764055264335990277845631099545053744187651944628840788630763118500934296011694571464205562387804542494407739372490903581892519418102490159464198755851150681118501112391808008033566574035028658171377744731034646997902307816928995451942723360787111584503666478603460548921527546377116545363771254567405296414502025611741213850889220923034512511585561293433066939478706085294519678940122717287958300520724422732736476035969961031383727308155008567856640179322742512559987233957970616496394835076265933234976971632806715791166997057082011718471532966624096961637167292514163009397870331174083530891224629697071354834482674219845469747462690509138288893807008246711206911406986289894667981806575990726663969016930898753110420842140384387595150382726979381551622682469984189081858409752276378875433868991156212657444424221622335700151341006983248479745259212681264662151129135430634640058686394734736673480909784007728523886105971732121338320367979570599137158018347202372183525211235441271771691775604300386627424903637534772527439592444609505740530625514096000267269439852125830988870923297669895096157857249410856057456068252816596919710954711343879919104403101449125136275011803609780133277525144997568389341026985338041655704998463583966853590107521930033668828117448804111071884915265985419836428301945374237386999697453434008920814967522953065703895229321569285170691011289347492758706080706919875656626367411562428859402154638214783728739242100626950043017888687571149540076999841229367592056196638052009179372645863747242606378772948524527819018033519772448120135180506152789622175356712019279680638930888496415416450488675752517165792067432877271457484323902559528179793895280085090369834426146423399186805463442271852572084735529747134019082510095846554834350518102060743464211535108427535624629569409112565576219252655539841898623715912145862063551717684335208244901625144165501457857170806762836289179268708141512922903959111152569046799225558174476824855006370110875758588474719620476361853119271253733429333679740749091915232943125820016239694694034401746033606170259424942183141546991710054965460773051113928080635120781641266306886048511485617019017302590036668491909059520694655383188967343021400124815701711853422653985496567992847912838443663925612551679959530564792099519103984663065683651078857864373651548839578499244190470061493750837587748272474967537518933816562042390395738495587338299229041856975262780514082592939182234000423939977916278757540580043705262969930845408314407338140562152178646195951955587322434379648975946280910163968383052986438894921173440774059448671016591711697151935130771298979672124005036288621719741952037893860911228559409733029110666215649221609664416926883497359435709398401373695945642012724687962554587854366007225065165658442303773487361407247300288198656820870043285537677115038966610538684301844329754047506146631454251265312330563135345179621532056485858268421742116000242544022885688201948139874987395639586226616150057210675841749604895322156063662527916898723225967709866600864706390697295131681803100142435348476682823990525503264642943791719367077443646148090427312909733689452121293531091373053285623834475785900645249391033003127774192918595821068115458592568564984206012330956597700408146996505574076306462238921034210864304986709030730510267305368810063853677484243676703543615537162130547874191857324413524423228545324223428878931471640617594556823835229406737173016789471227537735040612775696820195960613358449553279652433946493270701686814611754940048126101273923784764413640304097516337141272448969624143493465894610024207361892698970031103152298684005403142376953022659223164507939589069783953349492501819080012344156413020726017239572445508093717925815442829098684664136177098711682219989578260588150723556471152241149023838129735120373649431912691035275016170576918109719807324033587782533110162101548305255934366076233050641475601869088195823077562672504611935960234149044848433609075131649203172638622079826212134219427739019484144241630113265240531377025855657178498318537163335203397094235610213552886936653601314951618286283281630456863371865688832263963586351419338701283359146257180160994578449022340051132088537347841983934497567186876332666632704399462169234053892712899067455090890264953003273625885299381993430166208585080815091045625828028649519188480245039580016006801290350412496092027986041935172285639098563630442362310103456652439624039730878339482329671134716001577536559446020071742791767090401821634983283831269782959058462207465231673628592701879030024492083092421573562129946362904441943411421178039325910213032313751091851841783742002812628872523957296856008392535629711411725130146615864947534190562065757929664931254395472561858139106845286824102316092130084650859689797250124487430258558807977080323777960489547019079480351418769245087378102451045049585030642964207621291473003510950793260921956752740359800457205848464326209857153460941799762308141902238756201630472341797669891175882094685025001288551735327877206666560946746293538412113491583847643323789488973188599259676439428844733731046562918227593521005751957927845285171779544883073565076979718816584742990883188815688371331483432451028027469992396507405365535105797668891932995021908936220659495791051532572934960161241133835004101816755275416099154680419451204041934803797211640209180811544226180775856173425356016544035297919996373869484654895310889468314430735489021621638572507102431225891846572923914615736426352173336138813619687648085962354520024624435447510859824269365942408408620816073072757519815336958064563724010507295658875503561368917816858305820953016943025624971561305622235774531877131482785702623219425047951658422109622687478133248436991592344819256971394115554967805748865681309992064722335560392862639707871754666448726885085464344928696049488236798119255115780625916023743828147356569392971090527688163288489635964351490778489544629975021467852108120413916042894679123400790361316766460654882546867328456796326639198529967716624128851144634799505091455723289729820884044579598026066242338885468604104731233613641598937999436664758837485542860941477020658503685478265023112120251665929999795928059770288862961908965307373498770794033642887821772837797037640969907088577473808981367892487197839042897896102609084067944198715268722139119887012105999945388209312655015047303287341424695246727579259994975842306307688886569912153462508406673884243088319527775320504107369012347135352634824342035476081459676121647352117301476104465550284028465744532256548232142361874267244943302172138051338185173345672307909203700081847686579927126387340087736827118415723543024940156037551566079914672663833057521046383798482488298394326262375056223000978229884430939653525450279005021474236240038557046708250316966859640412043714397642157905734942157170655114823165660618246452336447336580130649756872011428175382764007364114905441049977264998354546117409114467305750435020999237179908787886142870982850470066172723519242198573136195812252058339893866138075689260789625984456955576019586517513021306457565639589303758576028651546290029731521624713887739394364948703256338288272920059053828364575860778410213034726564150428658853556783530020334408852435988983873595014473847272469138053853758016197114993917208434834368218257502916695660041923002491202823338376857184385001885413043105132771087499824673654676171074957735613889849925749235068292636516834167864867109399298684456277071675928142511275816579357970881401543247186931405726348856847400567585453751513952429848383115160426998054416380513794320185920897824996888737629031049962887020877208152447001322720860267252730767905044756493505022133199655601115686245896989171709746830050002257545501607886669350736271858832830051513169797011904116129483079054417890421725855476127709026685367149008103368964115803375932007853719177574436336935337284408199137742942008129996865258024552945140552152725438223434687334883560757122348966505897068840893880774889288223369862091857965073967759689894276567447310824322477614502379400277568949603598189094666138514668392564599365093569627637571351068289759115514823334699609552123991690209602043573601246947348797893610330658795625028562403527174325846502224063567729994845357764128671442897188932809832720551262142622609995535103516879006795211763580179578988326611607478609785587076930709489855540664786765053489661614871692300010023645769924187263271088558791355499526617069654738712333510504005818911848764987792968561998691519426586234215197915487029905023541529797007416309361780154271885870091509027864375626776670962907984156712416118403514669431898157863347153629017166769863011373189318216086523639214915387643822287710362000715952786670190001352700026605394834972948692688964821724204133672922987202791654103939681764540530086586592204636143937074174834627513645925516909833786251719178154984646159600088002775344692168375302117081223789215720754046435227376927377619321607351905798501090114856093041811441025238199784519605824924065271753343578138055874823671406074065149538276449408863811660510733630334133311416176353362232723871550972106088831842781050577660531845446596341080714569085612041799263382118485873737510498326731905487830738582048650648635282660709431238274388741299798729201324568598945982219963742698119773958109875375418484169687971063290810727287742110092080663263817725051675637206545025654792526057015241915285712323726729944075409558143403647287873666451594649853433431882911756647723118478701033229308267223927195344497583522877564412306613438611916736300663985422802741375752744424037874002858712238729524370492286088458339188020411508300147403928776567640924388766168904953721104024193217187855709692435382729696822838384515042579661331272612995667222775122399167789008714947134839661707016697966874681234391467692071592231139356004959593380379168112107704285428905960458003994270368734655148699060880524028586532396417321078368825178552074137977035724416369727755202899789888220383167752192253392580017791484785445751250605157167712057171456212982230807115772059949926316259112226935478538166570636042672878648603113153249365324445415101565776615780108788570192755489391378547456396799595194650182866209455516766512895833320800363795832536881546855429233019909430195454799786211348079021246128487268511807955173961056035107013976358037642641096369476821329123707540847512672727801431939284991344341391970851290902155083244670824246440337256836315929261174693912926272701014275059138868176278400968368462136491628748186503412479467745430388821206150561098210076514741787652184696263186832562550690280330053994384370199622690567777906559358603929554973255778746967778128411377117147393692795109997502671078987032147332771203256092222080789296391365436030929497446387059377781558292545060963549773233943989565394158485540238819417102504878224933537153742716428775277881250781821410830047807196222743258069295359671888206594824754343252440273712074707768329564817486285681437361406725891754349372082271842323334043883974653041870503694451432706537331897303929619103231303957407989824090655507211808946373209691130113435622247047338605554370241457444078607760669064932391977585610011342813853044135324429627241834477544034243215084838444088827444577071021574704466307368567009729219069328404191207411719902506383979325225757309779261518752778166485479795337248418677927369893839324868842872019968366454755131287350075977184818532039177969929436266047038370009928643222655226572515932097467808448331350775059871616570490474765717390964110764392449904548547283615406960984163409227859154247505125875627496973711305437728585832582971136695317055681971539904177849963545944660168713408566379086464915232450834033407656655123752001513931713882272542489353848036798013623789812508697697035596189426859118649421662212254482476727018425355534384265658607537760943037713638346277691595017426275407724040135768496202112424739071736615891266103172038523934472061435882260848569727602086386002426864836409025660364431392112096574885468368129654815794315625560147567590189990205329462221177550597787395863411935017353870642740659344784716157836347394752217519746900269926421470617222965767458546629512132890985599733586837884434874452753187477458936434635552878168462543232964516278940554862317859220013133472460583180259204101438746708794388109677541730856898841166454251285281960209150827906928359199865311904843943903442104978814429271423283987946600308693298844223092090213287741320719898963399682874240736192765068683260929117104948760148223535660154815037292158469970816064756444441190935616464772028625917133710575227951077150245016351087253142779222522066878926865145670306772508725611962570522785469228291273461480346056187263147612240603294369498332687531082225054083715349394952815613156786650328914263033813699710235476110578190064912760623312312639417825866780344018386891226211581852396721101219716587994791066721295127809020119761611548911604256547778205016730579964789406400808117180959192227510032030054828039071793576421675081042433420234817685198085224842083976692996306924993793117122019024388294332330432473776171236064321275615475699887142586881498545686940379742796139403317755819459707066874410401891240313470524620758854334785878078943863345500997018485378853221224621665051901192437112575439627248696496859448042151723695753836099141582572725620557794933417202040799183400765753812088678902227412414208122061537915430693576917467677006945987677083370194882739600756113561403167548166443284463691433929287228967257231130834217572765911528449963049605080740126403884059950031092734166544114715291990775275361648546267603659731415996923274412053223886159171873653390063243945986873608901048943401841612622927123356678892537428901495219345348552245597509705854135920085099690246927396817731531391759419394402631073573055468523533218729670275551576975764705093076868865630459168169029351062770033886093008084017122844483069552723393293990643267105443200172980165128601127788649431491306763437717148669158002840091054701595293996679335658254978441170229894270405059249337460556009760554546701458985667528819510574600026501353235956630134665587606141819698590576596550374228969070517902714039355718510722296696024797631925672640065445165479732281673006828827226186386359462322623301795359248247837784605531838067070910746577084702870579020064824641834195922079499666869032129443107586306776739704486150535438494490667379187469609455872928873565286254792594608238675168231211515160276053198714731989761665892004071724194147833108408137521869230889245255806538299221792790106316198741292934958894475631976357622219278506984237742275887590685661468867423373403504970759424445737881443450910706292481430848933187770278486869259489782422174962727101873341668000556594480419266797585742010550937537497650009545083083438681810237663756690293667167519470365515903096957834506990745305617187219615439896433043446522915481247914995760285139698949181315244897537710324073363227759485034910748174233173915519787214656865562265119618633113713495663663285522634632134964464722531753836683778102394552608132122961973229464783617524229880924319851896173882208750476742460666812590538388065051078214422983952554612031385476543812158065243333993464310777686862734632860945946520193789219242689214904909930916874705074695302608171797091291879174813355457726477603689035838204562085728775015828471734470906193226424478895378539884179414934871051692082980820104952605866798472524065984433077964468151343224141532622238306934119930576941362383040792231349658994564613256903161359271697871840791779625129366479254871054676085671541105688235393042749325104465367793039097561981991442468321469773182017656083724814914873354485176774870061393754239868444985525297670557877233684507890922209813014095980754587156625839642482428671934421836402447279766497996754322194600751177591400878534869194233076785274194860482189532038456886366783763815263293145162963572075612705255932990697506109815429410072509735697804394505319402295919040374143121379592561622896420059942189408515281861356679082667317324613797629239118857466042321086448989673830535361839000200471560278194353644719669707606603094430775094262790757444695502051358511522049221362830243493300142299799138537665498641146391939089302493992606606322009881692800224909007583476793790124843651393964878901876490931420046028011746337697505820418979899639881570861196421044004371951603640157764205593591117716085580984397425348856006778777361185738831305364867937563523778573053893071495432352213566922524353209298531371976190074548127555421837726818589376034053555150080272845438147726426296074342539163774630512304158318232170923710571418003385713735811898418287561497443452654843724905200729893638630955220403909738077499088103468646390285615678667906103741955200762378918504000264780366113153918272560075990986753582706297175443069633682875732151181586033749426789501219570276104535436683584012358343804575282925519224927301695374750712624244881656088761871728005696982060852846432600968445459283351948159494528595090175945504239745181206813931011440399652540327169930934860875572879825113347540438327859272923076294008603602366042431863656851167765709372261853598682290360839292787862439497580744183025662035936869376808351786753083281764313367596454672017523410221002957827592534102657889596222562676574163939846106035867084572752716612084708384415356738263856453430135073692738279448395903990616814193811912467542734274318722720387747929036848496608296832823176008862925578547852421911106964583951192041049430437867341905007593563609267161188550581799444231162363840849842817612723880003963090172747971541858330493511764706486272349792389309820929075978069237256885261084462739383721782902585050268780382373592769472097355510468350993108845028173786583569200156364426340594293662600835102788178730684393970496209763358804447734116661105309329586775138192996332972981943298365900346868804441677513239299176890987088199469838468057139073619659553079189240942438452605130426697419654244637744679469583200537953423037733996565513228787922426964670792457325078919889461086106208562377806570559847487656782087348279359523359056947603876166454465600270303101242888666238434664182820293023860345127472883354183702078269513274682468173707774916746638288873926187776395286020849737338180432734883000111760757729789967953452776433155919696828044681931226461343564677627941163463417907919883892619618223829011541925605740993008042733271516663879650120368029039084881365760241449286686615035775153123313210314185980224091953226951381022543459163749066641788184575368686379618693584686864023985876792145273297898928933259994807262377475332186718784444874087712467178187299985588030568009033598519927857462955225279453590405663734899066036654122212525098367906906375297503854049250964971047282487229663721684290723803764039217442955071907159130086415793692700038319731571929968577082220371769119967988451665159411383101005742675209283224369884049368475089465757061571323358170174514882659133320466769163341246918625399604769538649564482840363879831190487682466795184164875759083456403828114960592029142276564347142801819997670165981253897628993235751699624799420033241878801784974950369638954249382736078715534278508598715318800176842096707011603761258201792421565102486131413398341373482973890100806898198466885528047348698117206374830181870369187166255480391719224536851990875664971205050436564610406039722992765364332451166581606278103770145826728832889042927706731840439009639666076229794736997444908805699523848082995918162459150938297280949647961208952852215800297279939055392206130058952654412071712199681781555744252015114477021513063408257702767466530641097828405456700599900848392900758690442513443649267423934482477518277815283362013860517758339813749962811910890831748561179429127119945226415792324730004612879885931441843672688545615292707743028540873331015277487453123682693758982476167657987667330990043249774277127607306228158901572560002016640451239921590410712207583729841607627524084437276830667522330651753411331357217783445256658958578034960894422889684900284542612488029617637810870264059998812611817148012772410310127330903510495665134896834470268758737496910641846288359035249335488246696940668460734587892832689655416178532588564008552675562587123157922953995264473003450899411222262246226125936735414183787001315567589391569627496002571269687030333139441154681399087434283684623075593213700294896299256904483880283001152639136525066668975670102032527962201208746475123313495951790145968422637465730501098137580879930091967342791387700114208342745573133627528283756712074559716543348450312486691103292585454265549216228986049559664768803395555682097443552993593912848085400685806724081439825148405203523919650607969033867472050606333592700232750821152762481411422754169083328027418181069267153942490191617270964029252920296836726472258850328592521532381866667097206890730219336784065193054311312894346062979433556987882740142364047002500057166903221947282187014218145670742594046619498873043855553837927133042392818310064289385609353414686407913412255324590807545650508461573582518398827119269863203051217794743656288802057909339822436230335153171542949456032619987028443248739945694107492887591073876492965404959112959734717038718654012723158594304622212155573275510211802380394268305619474508851600237811527348982181597604340945195073581481150905316641606248986451442422997909300030023714994568651001866524097228188594178585428105447632876109858157830938719278445221065724205585570887217005373743840426500075165840598950027916184016415255759680359617782773539830322666653570442263184820262417567947541834296362224305680594973275456775012422622131885122603585344587885149837519034504536987681688838464996035073574783637110456805339602977900605991625698214486771230471621938036544680899601699922125119953763204975827631655741576999858813841719754019041812631089979611487783649888249170559887878067715972404815950254202473689503172214008137655405973065044153223058526734324167417297304691246859663423841967144626935988791193410623784468995360976272771116568034523256538970388327254171059608495713467891041363662161841468001556390499556918524433282491907806432177577985397443910394295082744587717550870726697192878903765760379078777088069122704094644002101267275634903076037776764892298931053961567811738092295178538399143757598344476242256166890474079782134666154934866080636410139715387417667914695871430344525048138179457385879744952076800091950868583921551186288864221749118674611453253401332946621565361679279072645233434043447114598636181003857740765234233238954397874978247896272144573797161629642908651309516573591577099054546179269457851673519200231681406422619016311151649874572118756941834404577431011130747155925410990362940067658258377811790571141521984361108530075763778674811367869461215324964300018763029813834320839771556516495533413129009587802572113523240697629334394212329532375516981683071065142926341074940163794334312429428916173254841574295411263982834315329922315002090588351135630790519580867143166755501254600906480194747924214679483623454924981357863778444796979734690694411660648219262555454610371524153070323004686665060485538249466759228900354672953253816267618874865828860700364774686084785526049911697059927218528227894769787031624023366122042002619761325729022605530315353232421649923332188412757174470210331075668002422034698651882483848202140100203993552091733345147499596033166855189467006452959387715855970633341628944795247874453278106807906656368044470980284737570470417973215277193245261948964145500123015420530213590742390315297355215871065954491094962263013361962701861410056968396706902534862839624909589461877316519986594640507896173824716976126882019307995532583691191977663917291192415583208652226031445334844924945682921684299959279201855388965438993231253866419071222674964520867468232808062881207274038283650602310669614478455239076824832624515599781759093051004906465664630129420872720150950618966791740053597954135312341138018010565327940118692824466228474608409165235530453041087735477035311841583849666960754135433025700641068449654855438543882118862157205523701068493319375715841922146431886733503282607624625509427324130516308799197919665758336353773954523914590110420664849226922347447311493189954183806674078325571628302169674891383033336387958445515487808274970140860047668284540763735491010642444237404579426590286657099140551280594936796963546225296887289335165689171636482646639149369886084845609069622802339408559869034399558741187230410620358095395770344963693090297215571682454148872192315082825587987879512966618323568968766295462919501471557396649097063412677268139208955770942070006253745595574751860647271914104835250031454467993069465547777873721292191180796508865859163151399845915213278247780279191339348756314336375696172626392396054328221678932963414061620617889668842916014865778551003356375756749293972090458301228443424818166871482379141075696299720808528617731090361123727774158815974777090039755343139488024567370419975681566778607408949615518102347773369164218780057449990293850975919184376170825568390605519578305654325502741904346334745242858775392228836899481842533524231308014558419096252491486957777301381314735655466502077474131664833704846931226354400032422389303982751270726831908017417373133912040501223625089672011172625153853131444077196668310742595116345937864086617347593743994871653046764100096532473718736947945415823215109643291991945746896639145654973991220709567917283393045506675796992032297327226681061782485110922133979863104044636595830394723464053591940359554421984712666190061033802654308713819319655643422646978767723889397790641879729177779776852099765184545181871727592505482566015326711895408773458155865829411008690471572207481083438911974672418601373922602007163631890877377089605852322140488082663480007314401278504342026266876960774627459187319005408377376398419345787698016484803324745053907944036163159468383867311047525322601978045328908740309904816624947586708401732859293775692083234378688162850876834376636815615520970283776476068262708907104402621565552402251938011605532922453028546219361812835949858393749214013459747158745669384552641916778326373896720761942604641530032129431409196529881364209196710674178511950281873547550595656008967447241563027822937428367749229594483241155068311530709431743410475398263599541897925747382485891838810052953709457774758152326251094177613741106459918727355122579723656043673989881060627173224212712710711153936577393035168990274222459610538339724246721059605078076917579753559180252538465978350301061949844048567847928199349198513887803371150602795908509886659597564106932637064386827705441136819012166291719081901619942033302386794666476418635691161738082954948664514299304832481989335099378852829843423882933473834477367132334474707010913859859801651067745720074365397624497447790758282856461670759646759297774517092548613136673477237421674972764955172785261502042615302530210235207444906526101490300244464321973816992217307010965431714335265393678384677349525963644209992864960931183953642236624122306143944984553823385171202356563142601935510945062579529025990130983517776172925005414220173892966708825183928383001394619012147580196730062921303219404350314147854133830600715544963498589176725010495177040748490308268555742566894223943963075935736601127468374138792773484356988495526342566651270162382935177052620567766821332868174084702138365101844086388857812903390059332480195232938437559430043798838778430476473146913762187224096027128271790929253153573555777083804834820348177501179892746807675052202308131115025408602483958140761562610109004566391278875102777893360584108846908284959775273538743924730219340604490166795102243369255944915299914863246825542656346340003154830544838393078611163161356020897566244714088295536978723453542536226201339101041594379982338753585283437658342124868921541180012344001902858844979269006634604505355408917246921273727270610307706150379111187492767676880219657084552205285183581219684886300117822919467068820642887480617859888700288587872599938281635435938990569880589749568816710758798371372156617958656988008935961991430185945851346458602162195822535216014594212238823156413554394397300698034794671863686131992858446387905771274666194510544163863836884059669354738177533254256972747396944844785607087122599594722762773091259630917395980817763339606517155561844104413993836846780657547975629001372024247509577791981761661592556026507994868791019471139393623697957314584517014409218081855473720439047639417624257815641339498224715252285318759337238832337249440488077529622198715546097076687433815023485388466187499114619253075082187585481287678864733592781888209011192597241571596221340553988189391998925853599137053870854463969869632714685123004683042437947452763834420254922168241061114807162719482780901323068736581669265374690431374248054324154591909473898743776711468004439793483368980843376597729620190580535658739954233031909192446351319429083904122660920433200236828488394584537811515329503213624459301167602625290364379122485906632985267566862913070597290352272004813725567126092860871164990924533366637896597585285288399034416531902483884005436166017108235949028367024690831876800897874856373868693433370529801178372573916048685220391884593052531510394936939806150051877892170395431528991202045039383049763976761379495173613452913734452974822158114486268641367777363401567077098259359608653687329436195470695032436985231555865734727516448992966661070025770140879176892393651362492651724481789962622751981192899785335583505903750940065731032407590975831229708093810347446101341505925497285426341205024352491503679460765710417241898999913978102439014821551294283975607564957648342560868423100881965731884387422480956663413970176278596799535465136731074903491355555555309515186886526692747006570073670329723433505456371280539848796089522143967541441040102911814812960117780833706084336338329535315049184435910235734319480200665530649197972434049057559602176552426985936920446429818523918439711474113833584708392032153084258938265454230321067613029656492984614816932526862693928656051325953654928360897788993063008181044487366144194648992761471709062673237080482440173894336374981564637613898501509125777779054909046998805537291314758660050586611669929844321881646911276637073518384113411547370484003891821702838790952567282458842591242347704854762221965741463178366504675869615223327145204156032292173473490369701637207163492054616496360919643712378806360187847315289928313222302217410281245717537030130066887497790686690153811443460746712496869328066791137813356756732939525298688710501291365892081985633282108897218106040718133493872711339835874681425049653236456983008847951442327121489393877820002037377592733897011734139915224755671456498585654206943759561215209426021841660123881088732130766980626252645110850419188824151928787500401653115005566345609222833413051315580180638105670855581912051967113555107708274435119670522927043720433007559885948631596285832946623921370166634155491895832551245047659420057660112480185990567783685565548050883828951432252539866973873093566030772944994293317096015593986399639589647094463597978015972174328254213731392051831775187152203327349591101720895531053901466885051282355346808679998542599499126378154745798798592864886757109293963180017933073307886954213277779707608307980180854041481276311154545230511018714023351098532501070496677609688680601984674904538103959791741180207090132203078870374514895240066421240525669487483017776104582609462672045819473021599992470153528039353940397625652904023813883921368736849219243990837368417912901455006573083372788046460717555520638590944253732389270533148365662139586599232405719991484497950422624360416461709563656327516851684126613568948802090716180180520746840031212647987807386717940981737193680233040991471482802795528187741903243567264335756569547425819449053953304062762466415787919928938291382700715364914159547779147561782484745670883388722028811797045069881013682375225053271576958098613212481523460339999154440971447102551131669576529519180232764116243853193302776025781459849172398579504715076920121097225314027174798735513161827994897556870453057401852689911093335446410427886869251175030665575979981385576307962469058705932374229320910760500038740122965686854715510527198204328487093407175407129849269638750047997052681950487882322913147228923684565122707936816765625757286735445895679991103425164279399857301128326392705255677163322234339053666337282349971701194931255061303968115924967854858524685201219255803935506930534500105316910978026812523475793864553054059582901773388373816095755901520481642789251868155990543818392261052769836091752016570634784616668546813716689704979260013691847413717479146620341985751648213728461657069513843708814104954082304705116332931356254698964624445383203981971261671334256515602704958721914488185082741137410404896541869432477192451753881364080844308484600483026956067756409754678572981526372685239613016791497874231086610433056560348196190401205801375572512687113721809315214229307291612448490296942582959831117233006175564011708886203047256913955080904057292611285967398677462331241810235420543409093015796794673761982974813030214219073121903297096605139729149663185442935824598904870219256204622066160979178377877011276501470488722347383023107916329746729518585806203279836156757083386612937292335050182675617876133488059272331524350444853059018688073390808942880541275733887124875914461284749568494731497426259392283111086130103379718203765977132049618261555315719773985307322934505441970020582976615364955833276559301267372768517902594173305249507586850817914530066843242521098741046831390237132537473302547274734769340177938611970200104103347679610463006250464168901422309836345021276482132023204564853289168878384439794282662681108886786916550481508423329225801964782406032582607412162270208177874571904432673684874534999067365240908845692872248864413705909245631368838244783501853595104583218841279506407820223771836776040103083653172553323773737106747512239434400530258678884799886340759377193058239141505580661386504478845828355523421377374933559193090021203598984594396444745319422285806155858117679416282990500093905463761453650950735553570682506677273074813016841219794624440695253718829080725769245069478292203689104790979272162712270258248940265314572483124345207070298216717503952078646276802170271688443220675515876488377352081588972094591172069215932595672432027126154020764388282441773894521722089261978758891711902827463900588931468621301001447134336258703669145289587945975008052830875639078805273524966234315156100327999870263878482768373537694936588935944415813871547968907674910170973795495367834382054097347818334629860323670563301848959615838190528742770073778021199988113028075734090700421176288711213587212188611560010704024609920711906031879161037378730102076754744986778544403118448851666118362007634455615866835103045465992304532415865570395652951871397471147498664647182577831338593342422353447591318317421989601739141374104605813112408504080462869349849493393699042649771275318827587195064603220833225238434080481153793450813741139189621891531923048819955992502299488656739456541078330521841887170508485988627561074563136775517314131544864532703414653963111536324183422796424049798334768041415031953804136870450270865934472695600298297854042715436889331003237608145433854019461748946808168219032346052695952942366453442442770697491671994383629779650859334624373982807119678778356228572245693206054410265858749394504734000652035684313483143154738927673399212526434167794766861714928403060533306446471449137382251497171462124202275747122683076136308406226304338366685391505629005568266532838494193802614179224245232010714245390696143705724208458172661880992027806239798457016070317878829627462423004259652604672553727129954393314712948350678294786242174059427457404499068139136907178025794475604064677877543203908499484470593383881136862602520611449082953684915600069486202722257772221582605747950950283558356554087131953695840973779173589092982420536452161444911239600950600709441641245980749593072178905170403066370933592472935149346893297516117735224911557476174619734316544505879115292669767167884063935997128520089986737656140739701427206088284657690636447723676461255967346646157893631026492800146206520130015140369387567016541273625320636425309885138828608238229333484922765980374215725086516581013325589433617530156164597631001151256017682311547484006172460305807047936670225517347478443168608726057269683771014896095053096412436533827036740715251028876675205832792495609435655360431274846492016228332346698338363966104227160895461900588099554607333907038085768603965253548289119286512105490568993804232258140706216282918372873431579506519377896490863689321775600918538218297552666978142725914675421673190796103183871192694047469243722558608948391792520815187759447243214920951250710159357783288360116431961324702054228068301580854698370221846915010336910952619403513645750693734319489492347183783319510684136385701617051207319692462577906231255207627394385016966914383537231347229949881304206517619109549214295284875483477352594422871468793497633173906620445571281489317481946076542812077041725657192747076124135580944164706595842146713515348450403434063323807969759098835337316322661769777790279554687974359112411731353580760175191932119660057929966433449120668640709167090736392976411235874189279456655224929865631790670628468708489884678220564644746383241061925159285210463508719431318680103325432700537545415116109226532021045175501219279094285771835419947323539662082730228189396603966574518863983103413910259337717976315547941945038841280165645351889266596344078508321810246044287598421807488723128096956506112751381162087782240135738799660001295088192369640721170923212020837180105534265706344055010694454916966933737209185316128571841648697261214730477554139223411732046057022361850916050361167877956922317818646535807612908189494440914495676957202242812870517745431202540398597695629685702130298293564745021475457752374293011202069259399029751772278778696137286557324144586488197842981689357628109776540112243801927347527516345367444323339080146369112925459580498747304063376618935147382798719705165566348191159611742066098674205354966321278575973404613789203481566642445465684919660544015005076614673117016083037266105681255588705859298847742980314908689325366274744543601644535576055496891726618464530479465139640750750456077706025400257765442165166732613093631591213259590075086318302798844294552380264867938054021323896950969690839970295616693666051264227786578222121806158574528426739430698501246815394404313335563889083356876497333405863045242564321800503673316193840544796395613571625830425455530243961370618598982064019583032186487469815208839436679179141258117015095488274792001217447535701236444652635709832064102579561278456245405988391350704081263015357220844050287476138296661972227550319248024245933353054933941832858955622794316311893575769601696451957990554304562474311863377358464472738831979048281020832262836549031007254806544359197300709932336996706740256909863724469244484154507486559841689726361776147452922080234590933597433867546150399981796583525237515787027914086996075891292150111394216670046649581589853657464502401571021933746682634174603904573135011579305997071796851163236385283947383164872125978543476344428884228250199965773141314307940359076361094750090626055527610865146280361532635053905936483366243655511871760568031355706343104617625504317994819070045947791622737824172201253988642312331402336542059233205728507420786829572119097137354297647841839434068192738609039045245376768502931487606217312955876816185101339843223584672813357136385292637475801514850857717032766417296215267088612494939978240779595819793542670019607294923229798384305964372251599090278919795606464352256397338249740252052028636538163287625433505914876057559662095353912994993179308981779252134321305539172287461408189988601384367609434741183980732227360474102686517541753304463279620731898310146053182984228091355623629563713278216077926331838132498395833530717948570977311769186153070440015726432948970502730981840494400692047607642941704473674609339410712878512012479627696775340312375313604431996508036954071566257904954547742549105692047571530650950693565041981533126457273031179017429197208599467260934883683118962774252694420002288820373664009578654225930739157905215494565342088111710850689707013608717640737232773059489218041277231988897298024594506818824936369671658810835528508892386403550824862630521756004356024881124319035248374139773332192974358876873164160343657598895011650877228289878393364233001051486426019490924080510731231426706952666452850494577331685826087859114384183331158079633152173167123593780866032647187669501841686381665922950503934379540472827377467337637503756044369336352661745410920427164772898634061818970536451897162016391892792724728268846464928912202077664075803840652502059863095170327360145756309946217566413775525435102103006651409045751058727217648363360371635607922624494059221861967608676307851298852473173263352510642206339204849816094057784380276643277531326691518961489883226093566364013202522231254366373636528937332515315380351838760678329292550502754659974295762100010044089876338444957147571379771625058165157491481764748750999130895192755039146567223178277268410009830432971897945814892659790047568243116445517032085241397682611104323020279467559553546156967266967405014583195220236433345294332593341559498790360425732818473981386096260330045443875636743230973987031193889730372147156853793629554014506735072697217370799983940747320106560971273419020199951814829631867695528579048773290712082806202954036912135876484416437846761017741332123909342587093058422389393841439017568961712927771313959849025523139614354992133077501369224161293692346617077469751030716861352024422949026211687497929661733490217578492416274147119263410086830960632420099194066434255371897697641618269764824407845160821580772419896542592958872765639948213864306651551982761719891686065253952702038853670140008688382489926186016798050262262003912785504177083543995416126648118715166757305115137639258672396416491678187565870192348219499004706690011892764875531416484102262156927169122446689181148624247592782359141289722239874008524384578072893772401240085222684968262751280381478857371475077630578527124697456379384759938411565129072390152153601243652892781754074849694178799263445195873370259695012517902869124781246797157521917806911719515556666675009464783531896822623467012281501375419656268038987454816915291818194681479392166899368263710602807768110138178881487361782250767443109547369716867433917392317905686468058838214901790743676397945281377100869537360466335034982162944566463277758463896753511082644756755782120996121807225031446244450589741295281121567631235373912043251364663823503724993137387863272648318405464043532037905571935321622574234241212838188268812535283762745731683440523224845129180825646548647746946803597780351491598917301944367936498277767411909106477899718821093580849382412529600327552965332715806676548656589246208712838179858400036836345070742421144490142385914733784538933373176137036493341311156758107369609100814069377105055565501199652093533466624241381698098722535575912409482020584379540714911295779397412279144723866302471598127261621090080164744608155212779826387750342913496312775335132591189431350907988131309501506811444949938697254460255680979275848466579352270623201907175381498832482199461926837982683169250116636945775564291058627631964103355577273162127272948100092750380856173119365103940567289440913815007595430272493215264104057770071494800482341539644065532711866571668003740960936595001134692764685813938565855252784621224894944815899644793226736114514438802449445766196268147780924409040530422336465119675050794566064212065351775564496242173846423566021548804260772135300625785107770224371183347974062975264751554503413021801680891961740211916165681841184290532490803759999157823339527996833285697593980172342264002534224604981990311950155875467168763207176678137575184422887703374701275660872516720059731174897819606715564204192030115555740861618968333273129698561683669391845414145024134926441290841899444834687142576537913326796918746410881609153891251416061389481233653309257343981264158901573197285691223832843532951710379940237840352424075087625469491776702357956949824256214479471140257188335028927838759858096540352247072186272115274332164345457351109066896116286879898939614993998034665988447213488159115392470776832207804389654618802677091590000654006302306639846933303307859202235700573838054612705353813234925576116037538417652589194729075140827707184815116864133257227662125103256948555805491923916982510844424484004650517558537671383913481795291304385728545414922617758097238383577753088703930220338388276883974018469162151219111709746986591765767288462459888470149586895668409284639670923860982140936596201464445545985300899317915360645148518220492954581226713762502110544564845068620006803727444835484879135962518609479383287132840590814215280670985525717659071866079471831718960242290064299585229530923075334369896391399849707907009134444043152912376694836178422143595246360723356024281014364690414761271647665302979254951818745533085076431835003482146324999882631900632693709254929178618814808869949441999677917319709893076094032970512695639695006316768459896035418933914944929682786269165442518843580747545869716740007250431574893658438858724123310550436130938404076871996796376898498654817506458569112885287738411655874857262133429957193263491080564360900817917892980511221218474462019829624885333495816865537234867521267333082850859661614309481192439070194694415113997326366345030371531402131084597535026219558612773530354200370080126851951141736724907295362884104389979517470801691390169970370226180610734637190512691819893698875763698723402835587258339399958677384399254117675464452986866216748848843242877984244483458098063844812879367847489952187182996951458627212262201043587414759603321386828865977040345703995430123934741903978935046328609099135492964625366680238785042897811357428163889641606750313308225202212767373926561588422721235484900454036729720931046408180522423086279797768724117568860902564412831443566129680251661498913152160396504053227450915644640125728559826840264792348811778622421375969727411277925455333056095289452225442323929453558648400874159714328019963660232941894862757701805038400166910341050578157264775666848865213311139289384793342414805444824450134111804354555558059596470527369550395021036648322455165801333830340826977624338918825409423824666412516033728132615137236308183056876470541266185198317598360260302290857949715904543275865695229148152610398435455036881867833866953504591629603916524613266320020097533634999594905453550769386307912955588707258197990308471346775437758887486467549819100423196168725809230775260250005608476883340987040018775273006984586947925546490459589593339769464240108547286743539629952329497325769127330129774243791114340457314041424865308798182572080117286346459505414923309059044844221329620950152299164458408427750787210821768229554375034867378470257179695358498032514185794465504735624006586848525962052288101474706227047132625636888092736681906928914342887824167787269264199477247200210804066119348114587570661049528865856162739447393409194126534302551900841004526271911032920259371807620017647469283893965035382648091410948295049976604637651551805320495290246388074330548041227785771846748408275444885531436201998405267590880591557430885757976085368313833945474000450788551466660422302106115765174718854688206983380037593395905023837063729658334694507665351547197639049942258679172434849030832654252614231479426232151322093644308460141396244464929407469819966825906224879233081006724125149965468361243140369620018875205616940369621212398235101205085347897985161957927047343186531278189342260555315393311379994249178944327451550805538722093233315022646189478263762214013767438523641891861360021548673077216310455097841184909279228888515330200637852716911724781017602840723290818074457040645665351072747088571440250327679448345270648559409489504470778935147385921154972308382540781083269324890936094418331172221178773162135482849193630161008437199206740221947345930949507897437460284109389731283135081486113688946198708977696792353076529129597011168015147039399420667627082872733350798791033215384852768081935934982728983023308305103863546824912147640216009496459371956577688084220195969911477027512544064925788451362254122119626531863031152200458833474586603902981384973483636725227605854416704163321796495561323047193945085025669581117621661446014139398206604719451313661766550050502283101786743478541095375264603042349983217853077420411434227444291966825554336217740752362056797716641570851357415926533380433665111876943777593819995873697919749404740036711034727812910779835337913750025112282516402231512796642866104174537954017283032383859889492928028865080809608818485580107532784194190961114759236087761850357447004667726605186549454178432811090239022322053424581751160496721380908927563760937318017305192744695087183590163843266935347111409285259756829795039144037329143514871829621082784384553062233972516577443090167028513279164089543497453433253204800798870127488289195992869524800936805340459524323089072995377816176323880641252545326676520454887848327999337439952134923192028127173243266537417386815395810890930231645170952642630845616797013872790104653914725151916215730741211751029007380553584773383642116048545158169453402341533178314314865690927981552105810108127142622039458222727627858027504002705741597251438888128704760240806170068429634535303535494219402094645671032980748419028096113437239078962678080623630694378138287665325464511380955187832262574628901076987314066348005584573544207297713402834990178276684903749785664432921032248144240548911993614319161905988111507299567001066277055478327189400404430407093610334278007638713934377505354572603750044531918517982091607376297807365515415607691070352365863274926815662718836850936882714767513921918059249836904778987046887872469620831257251895914505024439353285110272739106013240808891045213648908553390073733283692610671731266937113735964820575365368412338988353214157333373416026860465147834453524457307045694957988614618930557179501758039554431019363509622679603441030390966920532318369679661754421425646891625856974220202869065264173089929680610512570197868598297383320006488423325948331300235307894016922686633876945724992736750883326433652903191194106647393800714855434292873367235686608283626203432080949268848418198856567361651236450439469700012648982204211037804936231957176699379024543045380673787019089127339443128164873249424656229190767014774473174552132707413324142557776672240039371065802670714721616424556845746568455128525019355035730324900580270831921722720394379182128551931186283078971250299446698259013522035905903293977875076827727179342605090985209483195784775121038756694720771291993229883808435308939923338978974067847999367620554394063454445777383941304232402114763153439243121343770329084087198525300148431527976852766096241551125304868206306218603239639529716351654173297886944432724550585120409670070791688164269376666372968438700563174985390493789566392384138360873817223685660916334991444047572112453092800066424543932884192611576091597958365240383198143058631838874731499550809661084356290125698373867427837163984354791159797872350998656507282119152009820635352342160822679619887701919889681119218899324945860841089762987533276911071124210572833674299095458021739810951493295790700609501597405518808485735927572980805070350909345506308909201835953358666223970946391326403334391989611243691565212247602215579065154768512938826875473415425797090153025559259997307184248638122420558785117218857866448767798747219458123380547923631569130952324902954781115184440744177877949306064975562028045573383717137942847658805154959897227283753383537655048147915409493862957374862129686615126983056868266808245620215785939995638308220969860685213112474812861037456034937983886420657115107593661640696358757186663642851428282492593062219231471091583036900580560019741164521969006653534477496781877918969478779765231595358113143933666183148589425912132932295265717167809288144090815577906876899427937189708419875320740072272637056730493259381793619289130250646913423874410413427001393057698043314662431892146791921491119905355282252505242907084443304890320131111246730244736160033206474932871630223691120188758234895839961703779113452694168646158290936347538064946471665015476440090390978067756821047269670978816635374634592943114185435837584303161940426225838535652365161903878983551366196385397035895444253434560332329316399078784484630202357953520032763161757512338551837168190870094986015300344655369298325491350053878918199390483502414458162937260597641266153555674143539892253676815242565667353692752054715134287822397725109185442411776523703241839166723141208116686964821257762023343462995860925162446780896148932529284715697004497771629740221077554570046345449011206956577372092390846537919478311933702034211245217583850964340443910594925960795504194119388756716158520902772620791492794149115053187059237635567213048164481648991731928185114564830311557410252171225580788117485660052919180240667833181816353131333772068101909312977955442797687485502407878254034546604019643815041381104507007131295577798312964722664939820927837099515816352683006511517161173585342454987736165553275011639169409644835630000265070552224708309982912657018150695795235979953202882583031008076119861576597574501408365268255437155153385527967895699773703947142036141464446924869274732573460724785792897498493880926305416063641869854220831099870675334251582610291952871006755122596438611547364890877961590662802306021599874624140570737544643889764423454405282135026001859430440884135807474851405571454254585805472496797077330258863801009707200825861421124989935988744421187826659935030847710163365668435580499771876813660550014463004634158515483246598568856392956455453041195031376820526118844610407809561936028098160525781155218123999909883212507231772541639244502107297694411499693939225242590422908556646305251980802532926665991325935432863726036497846983314706461889814986817885702411831496507603844129590991906726284100318006953107297038540513133021485610308856993980762659894852165134214296529461059946500158670499386467782736636114372238109517243076003618751938802341722877623440142457979016526592660792084850305023866966419713705099043724761064413529935989455965764916913535243303111100031986421947133485197948722321228262992774196923121234079507605174485987025113704609880746006426830883496059751755139343562479395397831787876115638018309701259149810816621935821302218355185717215559423548893173051024536061565152626974899152958800712704239398056829961899540262638715394815214502402813962705825029423519341629608204968020910238426147812462476239167409104871195722241107694491252093705605511143161736236018394067380660377953849980495430492668068881796572085746559145961083343955877070485440950034675964745981196109663589766411322217265953861054460030126651572559111822404682191119867947915391385146240850460808860518649950878770867253713747545428197665805985079057041600540061064605481381643217640330517849131164978217408659457473430137964320367953229406220230122760255474048551772848387781122157679131584109155401367174755151405127058064054690237284511886119969342973847267631766336294314762579108873896260847661363260862528142322350783569762677917419785773557977456027086066818190122249609627860103148572545047908432750448573813083997768729892477046502179645352369653200909943367855727826892908180943716256827081970860935492781397267878486710428956987624888069504137400493483389256708413591726811817759124549719508905231879263342451165983759046684383402351529702612151536689068705532109450066481442224206321922881130588178729628111847763188685043052019995649499118469203423875085101205863546199064014587094077849558248500941649376021005184000703777363183422714241699287421892096209604601171857115951749994650221990349490425380178975470522174634951504245387910552101686713249233319269412290679284999225119718658048827251666949781181091858704185623300132629337958262567940796636278375575091190277575144339250530420766862642991860044149781193297909135972586532848447936578421454544272938878469345637974103273259472535081096024770278405415315426387723770963742522786598285873658464539715162799328054382857185168186784399589910996631292742862725723361048599928297933817299759252783618600729629886280634110911885073432936432172492867027618610312866408209815443863954996165107444055912576989860471731478979898575538635137844217718976240219263024777600876018735743454570733277461566208841095961414306559474660080878653135319543531947871121863854356494338408567572691317150599767384190615908921086934965177644959675581507129096443713487333450477838926275940030732515716855124520551954537472394612707417263981659139278363944127347764527560542175741692577673206638571560022362055610550117824414483165748235002992487530847793765839198435931859642964019536148347839400722294523342867211314472460069174915357857093522516551265633498667587097632869782915573893915968094116643043130346370943328622058398527303725539992572526312373283538207166033731886003666454966207831669842872399604700390163062754061964728207861183750039130308277572884736428759145466792201503782876717741151433037751982301404624247697306319787877224029071492939305894811698711338273319654280810482921196928059568111498790271221509122164473170455164711677275296995959702036529130792238509187168019485335715245626186237680666925262578840444621867992917493051269480291524761194433271960924145638503085842874439306698273863554965559477560404700033662672593771631235016398872304286511240049070529586664776559011808546894999513262052144178571353204721273178232400664701231969575719444903454160781840258552514579424137952426872450570204316241203115737375461101420325768365984027947387754421292758609290052050475853212560874478410812448446635577924783572182836750154580236475720776610321707755769208845497566701662572972270807413977453666931287108775062351786377067961844559656186350616189320836996647432666215678569653364566451236186068937923885112007209353308741290607317543409290218490376559342093834170266676907520085179841811388326195444305164644475064117840334905442559441261359490156972008131325716615159185938873670475635335399315650225063062113986018467581355564584543042219800037359330544022285287755478732610382477507912594029932052287212961759116700231131695925782009640085722703319907267865777385111294374072332623108918025377392041436026767566329851973227786411858570133971744306238172853102034117527294356756893816474338195322927882415647479041566818037586625638936544612241141804863208759369219127480419278586642828348796370735533025505028223772841056320804399395117878548541197253872744306786211123572320570237969943221303321320272370806925306096995237994102550633133732916308665635314275032360248961230983889310220899261898848771022995376222352208568112891609700200462292399416134614112030979490961929952429131719105035626036294813648852510781389110625943153010326310574551826609003776517448108601105433092685402045968527670178614582358619383838053584982117566472285404236609534057269089065265017570610299688208797545331882602314194686454969969077741647862818356965080311352319173210673634107500185502635925066370240644670875848450031510779817441834839608788016906972153507086264805220462281944567337446998398363750444750331691827122577950117357988526253822317883013983562596967023665641164845151847995794143870711482892200162072904576077780601241449689427551442094003741136989819413450882204181878000327255579888774330839527084692559501582604875444502208235099326800410434720740376167500241544549692126009758315629967835559013514143533367436684418312393918234150758592933388904495316491535798852656533195567111138163917634502616168413469233336056904554114084619216575387430438459023164324557420419867615262350475465173390120254554484554801550907010523512653014372947405910587945883924779325997961728134671769732829110864806182649915728610737484802112674281315305018962495136329901795670241700365846800531218081747637902224912787106272556793342362160459026267803936874621843179781373390380029851359237955059157355605955877179162381379890099820707185194311072719660079066898206395541998719636966148840508591561064881133647274929429284314384197251862340264721347705660165929452866051986686896010075727071958501696296957130050619955654556912728007469681921515633825104964409542156097301872229310016075048214403014765455690220212699659168493115985761180914650936587246654994611412901259791182908667046244724491384453073794494598334447804433544147616946844546096719145402817094286343123808863744043710241980325663175227883368989332763000407323475350359944991629734727089311572214075048345070643755402204613880103805713406175598635949232762214199419491637601305785963455559914750589991193330168133907961969463801338209707083601301920888358611557128041951837447224890923207923482901186891282883061684488191892915894947909537914315067059086096268224919518475440337207638437445565893495018980048265294730321125734660205275967156854024879759401080488725270298647375512072636353641046870236419762473013601259898314211806857398541603290474677595353806972899394479534738551387509621345564368426080007206538873747676186834822623751818762380342296362810066533764845915984744073625803620584223974876306933439636882419896369582069617624452632296572319696952961401034088615545017625590583968787015613901374175397760899510199518372612428719014067532634115073346300342742033477342131138090439650023916479216969675035073717906321808675710943672251017246840502311095464967940851978780985299252907386800171808123066601221807487016595744033553778810245548630461803373712038419625319170005769857842993790561439744282654359505956443517661766388659048289102341340792799540793878578356668904450797056176927830269576659594263742740797176022592594454164311454759035430116616074010667651842930969128133347763359359696246836393861532103004177856695448311149244510223829150189709561474444691476940898797167781103955450146202634028011335585718852300090645782453935450660123814554237983750813526733777444519851515193120425552446598930491702547749778831813356485503527537048360152572282792304718993715707929149655234886141100555446424327029401217580878212428157938113783029092791246430487996781211331999014724943834580734455565280929291281368664734121304912822273387492170432567485869491118419541968869686075565552258777709926699367035843652193540011064772628375116723784970511479557274760294377236294573697988939435765342049364116221943062769901586738966614502534730494139140523316934317467081277178360164064779543284956113377056621908583441988710913538960119329296229071200982574657918817301056704499108190682811853124172693471035115342726586981488090008019751225199447900192042215773391885234039765401044962273550773794144693349567508072336742813908023120681782157452193010029353885854594581498940749403616953539824746947477453600878163132266351031020252729437890143554977102169670297505472366169847055645426181178040192228052718531345992192248047557287393839277487542003092974339281507705348855001468238395495426851442383734459286730631751464358332468157408885978514055962626018724778847374051103786579520434784381079726714533303859357900316301667224720556642520791100128205201006049161624357975453265667551343789366665291254686418409660908799983742675852333093135444627491750704621025442901719294907941206261001426929210704225166072982436771804721736156632346641738398779607117276608230456730014532125987560180628080329623764908026289796443343549399075433755291613017352661242685989266200990657496397309440072646358469682918385657712781603262546286630004876759860654097601037770978602380272394071240336673287910028540516643258503050371759135813581846717960227115043491369777879411614864561347129745266094391230645779488730651161305378175373040407508720363989656875218015757408017103822440764037842172159947165052125617205892681393207423737539716250201144575813275274507198119103241221419447247691796525936041434982295780764333127531574290316559883674613710770694553428046503466964000686129679397542440237788743081273841765695687453591531479818129036069812246175669255429320402154076631370360085948884715720155515267714039722976927808243887263880936441175675254406821342425216978318886455390270855517885482490045198725818774467565107024189878265348911652023817825066461470763678009382797470210515980896409479810861605798768888705565919868690830573527259193227063413051800217562347065473982433162979108949043910406351964166845895268674031395333034673308756688843965715439417167307447986754371583050588180929354404124572034127662192294120086273241653848886058739003603667899406892050651041202350882205299980550255133924527587990109518245117120224685885294960262720639635329300438478273017727484115939144696095945265734825909865249045262926546006846476177285125153898930331696469878991453934593909050427786441664112865628410318638381555469953062005626195783114858461049831529989485543977924239545834426467645590911297493416658457291863177481334871923046569016307903231464966866891767527833133363009268227593822214658867826120735270887508968789374415182823779215634996013787052550162652932285338621608045795406396948339021985477954056244709060915282157000173437726881662865312048637877191784259414188722442423660294078499711647910379433496900283402463139924432645724698637385112643757330820313700424512734766912751148629751847993614473411534684197388431114641955159515135325083820342926024577575253947532272326980214397324018836688277305443313585988065206270256289460376282122309557090335195530777580448183757312405154692620230387566965529033155821949236963616135828222408370576696237807383556518063493050517593772332762311152306788424655570387053928312558648187428853135325897095997923958004011271860012885960002442245521327553854729472264837961354832627845007405367600033501878351436897466604260325188502981318188181533308433902431805510528072996176930923559721231475281832518523344247380348181441922539569179117190584492618778768479085236691290945340985421115241293648818065141888013844064400850896727629987012376301342028814180652809144515702367788229290126068243875770048010478675477065570126165031597095581719521152312584256201658460156471895263488369083199590815422095170592809505671502346614699248292413427000633114748611869482214570665211360066475749831889725269916311729016676939112410035518249761010643908164304117875919431894322821899169560114559771723834105509845613212598382484182464524795834886445765368334140296219227922065334302213245015775365683111773047155957239117566987503694118027793403863127542373921087346650998890891852933797969712750311154176157035122500555656257677349521327890813871720331523395118180555654066814969102483746257649782035997606386546879422736211254431686349538641213396864529276325149252279655309888837558093292496916556752441096932363368463007902708084559250224656798114500019111801017076496601967649963235951137083594934539082051332545931730120602488750909404483788592398870545245313579561942142392054228188437639213840253567458500119975876062691345867699634581986234613497814976371200328886154082596040947733819345256349303406671205600083771917986891034870880270577699889101601504407105946142848265354868401480084390291318577936659932564509722933568098673346987885710470470259863291163253981707070556354983781295404268091351824541759992309021920966253691599651354970943951005710152471071254159447080017895077446548618202491081996899595198620219090756385869961488120390579225869470877083571259244237445116995347853358422284800641791526583194000883021603379310463259701307531362481318917224263419360509908038493941255143346426416617622236233855740284709915977566996593324495717715012919738235902139051884958325489245099265620295745426641551881118019588464351472960668505377683229683382220315349478403121397599157825841308199110786133959264094211690937966124949681258772087142626626097081565882754326993394651295043155046616117517507361031520059547904455457525277411581863658485900060720280799633706376105299012722562117275328306323349030712032242650198202014335241854823930216735167971127711801182872550767051737691267332985361876597927282580711253776856016512699769690562394334608542632317681431367629993918337295585507847940874055522966324557164182305368992302671767307173221699453522539028079692858854114008663695432103806127538260091035296692425605661490566734562189572560732558818787623173025741038988832133189998189834451815236200507493200647605029317213196205927711833337602780060416077206986801971905754870574874233051483886684361383781966445576380729306362052950985674058010316172607727275663717034431126234059719648745898493924286565198337049923808604028311035321537142136620748727563798949587472946567361146127214129757305703479956782847483689669743013105309138945941806295625050534402552327478841603093977458353276195836271118794721196080212440535561226219820409675523330226227533709538843858692934334897336973839236049642456052523285799061979127960442578904266909437957827689164144120744094161763672308283508685833979568689375997290602988354256455747451867622345948634524704289570985650171863142307012197643070556331441160526707604357655212220909491624383657978931615989878711247918864257078898664803422578769261134660760635750155431083847963737026016542965695587086815175135776253041050916633982882920280370480310255061886811861211737988086710402612216812942424986022971107983203343673757263243656397926923917056434291272874462447706200040315237219828669017127393815570258921369136191447959988013244246919363443205733691623841979789029413132062632456881464561312174484057299542748822176295850246656479252273249863114746493810134868541272020004867430796265658552893461379531459400240058851732167858366941254534695737462028851611613786779327986598652099581147339847590514278960404402592212926533943509068094443347852108487480825525954040612545339476646432626317659448898797400943142144343566032418387381708372054786933084905357384053497798685290831998479116601866095088413626100595853972340109125263492774897972594880307814187014421023377555810909531047328174000217933735660402060929109585080651192798567915069302541189956870567391597108630572448837136440711819051321612217477009149983146711214556494463006999268422308929309883541653668619747705862366879957507638947226122637291506021379411466299292890882732963519216161849252240215708947652109974517540903132454543003898527949702614125338156661952661514373787334955163538533272266430054200605234072338607716141428677259072997228460696958407742434647565663671281030834347932250328285503180468469224854839234222225553774896208720410323043514101802120754340125805900136090132329925428003410669928522380780116824756335292409525862274689328173130901595562265204211061624342917779560121515130139004659465673138249387557631630476143832606346665761229815618596339065017614040964181773006966994690613885422878633061735128079571820553227128015854687934452501079688111282342453766619281438848125675205759316947713870247279592516307711435244673570368253031233975631387424595218386044156969620665195334600906227115505649102102626849433762568916776676894934826596344472763222847148043839917116982526549561616872452888483715490978271693190240954965508547796112030896612221424391428086113716876731070258682050743384283357624771289593491105631513795546146446432898469602970578581538178072156615997933069414149026379577622089768442592593395467466542133477861370726400182873147571996837630090120383908066651414534982417555430086972698756022330137651504451078130952456482434103953745166920501633652497867912588630337791982900156282885260222463586932668889570434533714264993887816604495314383866527762495380741905524043380857912113055354905405835295128914666047148545591684931943538574057530477678640145783044674265038619221582991252235342807861761129047748904679755911250321248960113017117528626530710515906470039855491753902950638866424438333507807395274054958950675368408061452933393956864215536797708950761304066767935161987448960582586380109035255368446447231215532818582616603210491219825487283358342358628655395307949288763000792144959048335574749252251295247211025446904624536747734870681199492188697982593460296499114675296317575151311196844752156852506161144875071292641383436414886472155078739409276991372431017699824943563031063031745760516377664190406735954536669763704144272942401607158466540577932718051090510080276342866724374969613528427008533915817471439683591984362340261673271177131641555537280636931518465045129073225650328945244041460864603577953598275870524273408740176881041004876677428145161294834920880726841794451671939463368688418899777219948271143307603462572342052150289732430513336485329970884592433503599896633742018291913619476835188986843111145211615147916313298119862242137295040209376988294426383423340169903279144805197079147759812262335996234146937336155439991648715682746453742937721496144598274105913892165471901100862133968898304582355812678366349405329078358217193660423641744859887166476689621282955830140086791818218551594678234304566199701957050565651379067338504788255871013138022793175029212761524946547876556864320397738487651501346840417949254622384478996435542756464620509886859409802605810846018203125280120092050236644702792827075659431097144578303809224011375209216410179344725730680511081320084709885757328525627928379143319464063503164503091740525347911151407748903837742426941295998237732395015716461324544996757002656566110547210427399783632641451780996142970291456052445091941278179982516334111160970180628721784479734498420335014699827933244742857656473024283432709107281223345192747639355060356131185013827893455818790515351887731958631500833007011818613312836060147079518374189299114743058214769820668713777156767599764859455169860169372190380076253846318647878787872494366649462474319285271956095426011974308147778125294701227690212025397351562076887208975057525922479844551005926448373703011407930415032766039669392058949803381225705589524446532837873971031564917633571659806491018249449390989723340372992245515923328622755494841153912361958393373757868706624954758869526146076889202232304153114839104630215512496332997616251807238137378252597002053131060372600411418390134619321540600264361483302592734834382418054613812637340632665564243938249950202649698887647709938730551745059866151259739050158777443908718336757879193879887167064430482303252068177279836271090238573475453830634477988805408901643016605571690464621355511544271669179708817961876901652018237060327815256309721761996937787995409100943639366253337867394318019063607075251090216006208393145759561128737833051612504816670161950292899221194582207814610670351013923600731297871222063465398194635620687931899785376172707474674376459752517889308617970415205154936878646130562231749736034987797404872704040409861822944447091843228593863776281898640954290616840318853211248874646235588459554187139706365467108070924707807203483793709981009241878439607964991841652810279815028604363757367177300415309632580067014448392223041046534633711830844600338275845435901222679608937648855536299306602619797570212758941082516815569845440936402512412677062563781757496204939353111399103175491072552767529086002742104200105187751500415765791581546924313239182030349679566220034352983578936380945454946787236300293369326758464979731440636396625459944630787007532297165617215340768854853762876180745155068623161178201625109053653107002992637577603122055962297145297637485356288383566910713647410218395822578231424938115061999085872262681029432002760915347301721659339790342093044580251166781998584924046138580335248219185662569259912133504728376530442020163787560091442498096485296308483148443836801592439659150401955304770445840824710237497875344065551492875356745254951609688596502378411643199947384459670739555013515672899903441316149078050518212865514906801082578018988249102356740596597854649794547559651105548115911521384194013281037677642699950985490201934481393222260609239906845748274249610058549920444081088166835841049010988572547918790965679499041898112476353505592046117162233098188863682946121331082684085494096508857186181727916637565684740570565902298958312552298272705633406250028257901428601465023094331634875009898832149967888039832019900886280850170568328702919327198297501824039020439689542097858144698951146739487724949304793452111920377887495541152715465730904219587280209147127115804754214925691985351059806547323566546838820918191383698561805883711300045492371205584259670985894400423534133627281173928610985575899479477249001565178355810191003858653480488643439255099148064192208460662041061266037870875522440908305141062963544808595108647372021591133614540997033958372103239370985802195197486945186370095357771659155664678867776358413068223762381874437414932513058308387160830741630021409893279149521625862653756350996349159552406950126601903699674841648366359961080267760654680269820117514109409439174477552363541008102689949160873524956449232409350563060105657113672294515650613348907944964702711903744172857857548081530374949970535307230202083276340542138278272130814267340608093947637744100562600021321220091601870530539967804326099005780260568724777057880704030052888373802589430105301488440584231676137849348688041862727387071991599207853074308986631379005191824899632279025503579723949950500035888638502944253297824130331454650377358455932293282089019835276709265114846486954069274740581909798486431267430087889016504430109411396687124096083657771805866303783462476450913972014320726270783596299612184553735986080391570869929163941324041793922378883605331483213085166653523029194722111336925261271451544693580496115587348533041801629577306694171233846415508429935903194917414219066807697960205621714179052867179242205833034807451753008822819674616317854504256651913818159865481243366428113749773677172762307266907798582347718874626407454605943999956717472003955605786875046994195838107396422160602476093027897480424260311788756050138382587344329661835083893761655927248032917126475059188937143461820130966521696710806245483239986754073238766025174449577662804681686579748707558494462453747482104126936362630120703825397868716000437093092328187187564507201153538214314250750831468138999641888548530690924357659849541167247562520847522278805986390894250035519408225847796709757504089763726273208515954695044683051976287242629894564454805094855743855717146878380202284982250476615785312855979732536354738145304996075787615137547609878989965186324412155454600229253731528753373163520372591323203394319645374971771682016832650749104984445355140166355591584620518358779891386753117838287020691598388185850086279878490841489298057665894652788233527446319393217333581186235066772838178392713589535243903619303773516186134844597323714646544817650336862861364556255011250565277937875001635209990060607924379656604941388881628959102642083697140875148306396429915284691878719929136931544066944887777905673169832887369400777752990166549909949729802362771013482577991342172423694759036294298265227156595029615980558682637506177449286066225350719475013032571583015086443277690214644291283258299831790507809741853564886809502684637993962054711829325263330413846132262131640028811831064322477680884345077486359526059243128990126489684580577480480447164226787914074066267201605283898026061983922776354918546380164163858955226537787243097347938311823421473173025139076033102376145813042322614066794541345915945543297415313360177313962843034685838467152761477836694702607279518246294769839619024628540299243459332393237112951733726709437346753147913739226930874055262445146840072264487104557165584174646427344569714004044684961431152472366863488188948450439556364609664985947420818267907664243821280509645521275594104251119187869662469085889564938961221305724079634715703461659627001207059074491224339371909485158413411198829799286804716670510004053156332190746488010255686223540138411728463375001513911808594034915066712484932329722680384331334361807472254563659497750748410143661980489610120632908460570196433950225512127317690973688348533461384568848297244665213457480653149439174397146549866247131388789236175363081266712982253548652881830810085318832204737630132511309710211558673224655693525709171066942866661858528392272794964302076724442900557090741317297940116255690056046822554435789008519800946512769151527438632225368719061418323547075602676334416036533722542698948259403870532030496003827611373734503593467925894334891639354202876756679877101985609949077266562911475197843913397767371391251096965792177934117559500711374019151226864544020522828660631034039715490583662931537736062473274260055598269717588724704021792401049062742437528228115194531695838720340513345980931303307806779400130634613243336211405432744318191263437861538414707526225384517781317854004476908914367665519586482226430635686888442294554714650199681315294632194856946602812271645753818137301278334483392858439022022169867827960082691384747981499205770229264551732957596677914130668044428613670814098932478388120372252339515617899386084220269928923599325641369428967744727761164578988511919011159055011073144653014818575369703459948559388321625500778033031756861006873700559251495275940789589604575964199121098849248936721036264721051606756047293037458945965201804583381280107397883985553374242696957777967868729042069280791469182767349769989140261841396203645335492350011749617609935742394936006426370108513031859063896466395181204793030501511825955625207103665198091948229286668527978542631852617330879734513973787204034754705319781119445845351417487011125222840415818594900146039870248095378227468957434559698285434548586248554207778785464618485120160295697257080195161330083385244868379046288486142771835667492769173843227767053110683310494524998088779288995698157661755457344396958673489483348740266432409597129506782116237726272337928077977681672487248869213313714450182392362164938470668235694221538329206693369010784140870471014504453343422272650909380431091359946324858548639117709637268585008846626130238229159905253499553719243825314560232869364246397997277757804555177994110608937655045154641917329767885879516186123001178201813188116287923022296911783310761003881177387044299715950814569778148213841822472441165012310603291422674216121795496041779877848262141359039945687469812796960410688349033513843166239378711111357117385688080057401568036343401700070293710996149500205918135354344905964844725775503533725687609585643542786642284561399495743905172001584938369317688243183896511737032955404113560873947364694130469058240719263173206252669345216183483759083343955865357003044222900091397623299683339181075024267296607558398139805992873024958635697016863813996346696117419686444117113743279441859827682530330580519729858383060634844732016331450869998271375090118329777925188181357742994367539313462627562338563301538866586486041722318069747931300503030929883808091502592477521668892461126433573367583782918419359241445795864321825771982010269115807491467243011810254222601661967281181303825547971203855151239631477456070916741148733549794657296933613684215444665177871347082008675416298486470867517790976310885613174249860791591134025861776504238086964785750899238294334976218394884761504946241214838689879609074703649308281099304534110084403572672340600419967021916400371533424830046410839925490086615274800499060832486028460345767061266772756541086912806966985533354150970665484222088930036535483056247886175036457354774442580191738481091461510529385025958404258629330305503078999879634204015320681060035134393230253538873424439673906702700493188378673559142495643682267707534654489147965685443685411592336269831989611853616007568293624207664297694585907865646218379874859952913256514122770745634816135980844609211143250482392522656370968701290070241131437823326820920483824712943235313264403081875256872593494310084529981520903236923143379970914463121883376253811509979446600227976057891738105105748800892218308000515010952743270051673704870011700859772740357360016114087248181026281951605842473189928383920852962815937541262120461416557963604980362470832780949357791589162000819150180689414217525665845832844943083573123672112802334807571988685250307951454625238575404471444421719683476039906254202260080593096425228488451751150407473507362798129338880455966924278846001028537349808493059909349929147650840720406634526236662415565117811457377577822423657276171795510842538595434903991980920446431137051220325351840363228864030486308261941477493714296799771455300137643022729732435413494916740288396928763916369058009191109256883659584966021294673339964527156329762613914204774254142756386814436336738964456406209606615228728132322944471121442402527223583841962139938051153920040131968320855764105570531737162381744035269412799932838430329339743697275128460696148209842504713870664274653606882178667177735937303448499051225026698588906739508833764129479396245811128947738102747288229019486006537175191582640778772462539365456473602035774583100832791701131748540070996959397883020438470225524907139093067869444721676050787337323533288086837349511625177734958811340098218954553459039790590094938176724789792237907103469943495916205392096556658009146824909500843066342683997308328342659011096635251986114822371906961128127718335549518798258784430639159341049913108223959157957165689018865309078675148272492754956565224866991335655587860762194243133842390759870401653505307455301948629147382943598660240931597777779851526558106651332070159633184329053846498726073471314308571431895057544245968193112305660502959062979407093134321197712992919047352724462364383019426348843042669769395298207088595607616292592469845498160259414344693709367905478600584472196573331772709054360295989261291352516336415219341188183794141404742512556173936797752269602143011421854793478303384291040543051253319881126918610661065642276684141482705531091033435724320564736983060912256633617155710712868972479456767576785056949311243632819645741699975415190226903986878688297118855334632266470833103594238185916325580148803299391701532845457492668672302072209124795762315747564477283748452042139611173930571600034776944157735339939712941378352818553548687790435640858034656770205630033073771450943655766674582287400866782456573894051513347723826989319368371534837961489930523781948257917442791543127009433493091387120499271224327556566778071862749708254136437504965978764168715825307899463896097762650288017911088297615823483341752350144276770814032765874928700685641587905929474800568290486154448425545718264577639073512592082331829415197012258999333557834542054317197036786805391339376667550353792825818980899343232763241104389736803682449157614753262478395906928624018749015728789156311723319548456856576449403144634154559821844297187664073515370298102952910308982271956547678606793881603882927417558874524314018978963365509841621559040764267272407717414075689540058674784821143335401840612600059998473486086104473948295755639841039040181126340172531953915376999810463881774484312178779554043878099756980686864937153528778718759175725747979707594564150661606560455580941337267309969444668225290906340508964505201076863134828275489055036218813061121551118317018496728780514694499420074984006968119859620872328472310728909895510393061628244050973582595184866559151796909637375270394918892482529752588915562913101793611129097941533769820549691079878964823924048610072640742607174995638687565692656815942934985769183146672283455629277986134909699698293878085822807066531376885322742569696973868269093708012275181986932265706192523315507464316455639527295157283754553069201909541375570344617822381409855181694061805140832384710459720806463387947911433570242324059203479139118900003651122976253488748022240712237562955189967083288063376626012741305378774728896487791981396992054829600629083328573826292868510297808927483241492726894486123087989344596988457439257945473123729089338173905306361364343750203071016436865763333456320979613982541155763599451155513127608895362091892517771103601192235686808698855743002412842764418548715521093488526442393210222037774638361948539365852368458649584077377300054181967819478151935035728637869704267789570971430711542638653246438348562276100081719663165838755704024408429884295598892632433602224706039910789092694560434230992651228344160365689556707107391373273424555316046680355580253924252337663748233169505814185871133882496588892592141770266219032565787949986967316859500968386083591063112858447784515961512588767322511158759184372538315829793108719189199944426024071345656450917831891726808483948680610566516281085816337588937868525930159001383123073197972191645530749978608737219759160715824221445992240236728905873579212874320975692813446959627340240435945407095775946695229340250201832645124819277576963096494953665035838797161228466201862672771974445917397713867569598955777960024347846119781444522883111405318818396803515731377203338569144668877523069318862753937323200207326904565027150809140570704527787836515756662716312190490082119470355190984175493439191268850537373488404549976483866384850713027895147933307085685828329299004647815393886458996205514268790376173353726391006539832808775012148766503422441120059566243024442419948867479679747452847491566805665319239599645929422207270089117437205384241834409386803650087599339121212946519010628716971363364672190866621753644130596561803761317465963674973297814653673795108586940624889777565226865005600338120500268800304527583283308672344814794601909010192507778439917294319069988179995315952880645230764247516248790592722225911477554600492476598570399518478122796352297158115799877020708530167353942480920990492179077141128286808049546675742496208544566475842512774605554518097523107611771973547665230510232796153429251716557816578286227134980267301123797492681562933199380706323449455948868775788008167639119030810040354705199142041735284218527653344131766628316443243166387162126289009881793834048488920241826003069153410140428262156365057409560050648504506137354189002648826442837672683395822658198762892812879858216418091294288155420559560558943842802802762919525526825682968760908702535564584627963190434210582905993284020138241761082726729955905880567183789871419642756979655560631399765016329253799901336209003143050746211709584682351973162015535949050246275195152434774397153815057284083679214581385330026192617733497050416105707713350649229609018576833109611334132082830209634486251469624320885480877298506574345631384793353419900460170571677436714361818847700630621468981061275433755314250557718971306437431690825866371955247989361211688594348212990527044012489737648948433793771486801926781150374570091576232700785257060910794176805604088751787605130644663972921594452581504637885444138077710886711729316132011574997828186187070591367649597353601951850964079454843640397415519996405906887425703617353730173108751204607016668691293604763889681443621603661661729275682974857017545182298974578551831418752869769218880666430693743348470801198112604707655624835566897770710606101368466407805946396656283662593895501329950652401421856929676961676182349036309327262487058308878971885321528593297687646396493710946413199963256916196378237638302645643199707630649304988767440783308685292877003467124622472018742947202230710527124175083306009922317610406250415532323281913920635668240692003487746073661937157914565575704864426265433339457734216848351384026995045336971731656456924070203234235907611285097972957893259391948497806788501033448399390465650371401284248560882406033629763948515886637799357446680245039987982204880902973282250031227090498997353860942377669079117663156182921099024751822514383382532005899597036384368653461225707102458660487890353744545645394249198356108677470830003554910289487242147359712597441637228368531005746223986209028298394752972552285766993251950927082191776799492042406646448890475986776278340445019794656127669099847183068445954084337743497706716166937373300447938589784550888165574726158151596090362070657143857616784627517794139020424300564781764346744553082084804182160973373550888058690148589273071660773655965599663327299868381582617619181254161415739894566768960008522835833297825541934487458063380776828347090584773028886531305591373231556824526690883069560714933257217009213924635132310484229578070017778408151465711334225068235075772124325419581739116954085432690021660013867916682644209068676219927617585697969585945178698071179970033801638683392052371234206743711945246750662406180304156544958963680518926878741246962108780375999514732586708374454956282543988204796742427214890704834208037324207015267597380110810942921467799336762041818234158797502576687942825630800838268829830300891161026843825476875635728916193148350135274447181204299469955654619171465469562649320523020020812248835037035268446405189685862016646476818537615554222848728822270830860103902923303426652869458437088583457460134232821491414253663041291544499438695906083446618097152124829781005010662908897500669320252551538576210855154241882811738992082514788067454092821391008957067535003776137471610357898038785480061303238086416937297802269778316702361347511681701984782005433498309807750496051352267924634478553201857780437698689338277765958965990612582412688143182623699287078053332333374462040144286542485087910104015684601823945239103889368674620452820297319951243732629535889701652628892560728214978480481431729953549010744052926031065248995096696407973081113390394235121317489061626325435806475660170327210603674194014612764037900143693999157964712183488646607784171591916732131109350968418744830116482622643947490036104154472539577657579722755998406938715114262701175156321729689126085765595679576049296344558618708358765579925870231202721442161007689736153962374671267849944695628014128517314101705796900970511477663963702913475328612910362951093945709973757756081725703647288548215300435755036505992881004122619896535193242713791386285899476033156739362149215701592734992542397482714630420003002945871281445288084791919957724700186151765177833608084829300839063606807169177083747374515363208087799756539029016883508135555547407004454620515964865855706815011579890431882845227434082351194399888430672202915558768938629805480989421378616264089206316361921138949703730725075784654956950677130164285650002527368004753515264378372408519506331493372502698919727833392985601433880429769961738515541349528439911352008341084598876522490432440002817428731786244524447894305083264495141269595613423944795212421688660615617849598561329803354016047572668449759090652003248441729982226151435821587836219663081451602821194339288533441279824785640223301021958443340461866973087082599412892830797294335416503496095542205838651666908090211759260423424282297313942641351317979921334956639673564440725443584742186731098963661318735387792390215291270778244681471033795778909302053166390712906748521956493443901402403299753567610101050771018357934153637140775599233241512486037244756688366723782561799659645871991904507435758410316557117449991269560971780813583645093519366008517596846895563083135662345672538920063741579380642816087132897310700361458233082298472892845618295105880223709064462172359413697007081961770821267279111518813247534425114240016432163478615665719690231004066459895356573744885429530681026310167507640169385212586568508129414605314066746706089035717750553292587731642813343593039011239282351949573436940731946935957775787921750782831117323679723887835049755524307283157506694043724894402961938586655027231250099441996606593241238747047964959972258339573664263995824135427458330758902713074371881348881885933352567534292066439698007445934333055039575919554932746901625902108560352923596720157031835147747782510058008383089395828080579280598038168354036193024545646999240827177040896619702135208856333432356526176807633593956742580926902293917544497814360930843310622092878843030218843718456989386674905343974853177312815752790542937309097656822082507094283509853955773849343045609377797848190063666352822401799632914002557903445161648745362141633674950894518687022907498726082129510569243737628877634987305303165505442421299878366888687037256450157466422120997962200621569126798748490361671965167514027063283045527496693472152133111871561798734307004419038792744053809856117334600591977042414660648693734438863441835275084218919008658175857569320282887276898969894533054727129509253547394780657108217432930425902999465778538225266367457034448162400744377562196497766391395354413091255864526574535529069519349876088889843567425199110590857720337128755096142592985715499713378841980987236446668838787427302208670604554089335236202442950624339848412292910347318560736548026927099319390111736782067775038699450566910512930741768391357119380982371632375238355969612805416981600630958954918066512663311887015664223230803536226585780823274486205854168967906148397476490490314974014097993583447761134327799230791897245040165998193547843319528184631046916579007732038117490588963233679852601413843094276115091075059050019889252362153419320624987322299307044514062484198557630317517977201878245190737803067471190443412510414554428449656186361964189364691022582500818165495231871134290623738241833262428440458398033448592638070810555948702763531382086861177468838623898146134498635247262721239056969158856563630243309823974024970597749657814366879605018498297273347046046526382808019961706577623209802078190051226148578439324645863714936878508209091855839149306567123919210292567572110369903939813917603788637136304118625231865071222030525326307209291723980571822583301962279279732015455035037611236511275344874366353296194539611919882819054248798949959152140681397609469531672741946607238207964422878922897973343422663776430845766573986222382182125074763840532011137026111806899396181829375673120030686823361961284586655366363638674945299909419073450636413265523836580481680027415858458603391497640630154952372796480634197307358542842613206096572571578705586633610524067032597653334275183673484199289911842674522115476537105864285099022888201789022358888052364964386960430135626700406188027352144717071785825360480665970734507652657818985571223013695082463290540961681822644424254610069643478261204212619857471202765581114900170539335656792177113631750437691719300458968185458243002239501617826874128939576453269827635021574826737898209147997405312487248772705357253914623697270482448367374621841170113516637207000180823481036887394813525002280016276108560573118222179642240892341534798516484163326881415414350887681525548817112441893992506128079773296987176769922676216234569795040202351876403554555995309303582719245238460525956282983081892619047881557220520428069408660096209022812081808025867227161412499233638044297479786921930412467753797161230898547357516664880521251043503904370972094373035853409575906202588032803712615829035033554592101329253709484307368532989050531952800226708933595767183971714911081317359029008412101823726776777486187068948337634116004950575527707016920640675846715734518325645876026548916794876752469372984465539512467681065803234430215995631806337107807695995909697978905349245413893780932279325520798717678455077199174040915499117342298506712836777096625171341409059620896772218756605549260503677590580739063103844066448309358946205515637616946563404039983995755654678437963944716774413321227904208252896193066291843459411454800645815125314817542173327348406061987620508761903443555438198883235438583568671855163299948896915755637944533306931580530819427632406259490327223108100155637825166903449872032578802984575826627653918617717108946750259052389648907924417704919763340521794875292754170387372733369617298087883717355837122351806406990427182773321854951257045157957903031948877202183126341313777276741279268283906697416689742766051261492257427403431959617054524696941465602942121069066360687929981431051886592414056363370801519001820290419148507664497339867410922954804430015828810693789082327497905609149233177726074323444619297703655138464818085601403022445774597388643218657372587907047469796865516803801471240082448113178856081294028672299622169114221841096107205540904507883546802129716012042385739394748445250506811545947155254562361130280553296361734692312719742693654240894718575713520687472874929737729742049346029544819138275926245372522802916453594294240516987798801382359031084312933186271106558074871768880988156596999477641232716035189184953805173678485196325575666549477021210340105095731104226897115396673310887524390573771580273539625266388829862015766854189385325723204854909884229044223273371520259843300197484312464468184289245578089240929804545359108239177431838059361714456860244578282970336928398315481114591841486005873773745212654689712219053081860363929625633153088917663196745246474506437707306186230796861558295118948279663487175790080893191696524488598912451075838571912228698409672605810526251887710900239922707097705799582498795445446516982450014279243239071761353001052978658224674450386914075469449146777693881065283899109245085382408134590320958454149962881333061831283128984915795809363071317877026506270248328268623662358037243776317175284549145612554998933321953557362575438415387351406624481530176588499114024885631866465392260820599172221802973319105139890662870037013502881925956090286265950748247010359019649548138315930821000463674517323008744061822037994741311202209903537630180823051062362461279819505780413398987721129187915900181906340697342907130061322871363883552614644725285817595818679323043258757637449101224277356939679862306876323169776016276886816588862752349897151319154083848453748645808082801009887765820000860139151475717786940465141964600846519502205253762137955301010155493724367421458932814877980164300309925161915662993535878790002281353910232981103551099618024551933999918333553935854894110877953857178976636839462800839242486777401722606143725578157060251075110571017203103285104553728762208014130373379175471362481601413631974337553315578314670001478698273060400884296646355084993225955903921077378520922760914070678421455852580780248972588707743246199537912067045436902516193663938796222655627634444128426419389754534074356751788628275055393560915506491199009204548730918947471414445564869291528744459251196630192810174081470429537007139694824992302090567309090480967052861654533530454539492991802510376952729343795525532505347922051604525384161165564929173533446071909446499654542725640002853642088846346898470280223379804832729749311042748629743698179447251885023977224786221364246467584664992458266043385560344961109607976776290795392555754865722373124448456660774890427675100908595578657626969886629692556322941295936848462798923371046761876268312848956829511490233835002533492413899549576124543807664702408606716074141172890839016680370214037854082572077411554220029328991868595907817765198542195902862409669464633629184553112708883483511829388181225619957645699283690588398927219251678960931167526710612191382501415072845097311990967553734585871385618661312761470273461722131331981273413758945621482987318896653272394925416030705375480944826565626320359778382171087018327200095062270654407188059603043755729302266560230456665816116910697401523583058529588841458810038391433984028313036076936308486625413353417902025900497179542128902607596813238768260018995770686387159168769853620456184005686192988240104710556037500478496357975337839661520890495389437250916985991317928630329399013287221188961725446041242592169620224991494196537424820651891945918865037597759772176296689623528164537776402154487132965060558594762433067104695759006437860165746680959083638542262640082979064972604057356440296114178176622730824718854391297601498780679604872315697966797355576650275635862496505115647082798446712423177999971434774601627399228015539750608881359816171935964700262068847568582782837147875021575073715115213726463586604592527167420863754437933326956868446019250476878635193460656171452855389177555173309295000961365600149187619416677428091213224063198950401018233196021744365946383791119645351547376186355122332935788587577672348102639501378949976985852702793317590014939385376253352693839996963890267782470375331796561633436451884228540665139003060244216919026480022493043468606181915115427950285810401891708606752786387133921546373350466751942413925070886129566363118511368574188763821243818059267178995069539412745757786410683972514097129085058779955450775162356463419988600066773514585178259300967508671576093018433579944151650816689868444357151326552848279740580095475938306178235665160680452038137759237732973436747901048602020112640800671076250056027325733346876877339276356555403565688486329696124987307306777644440892937540286395418365383229106913752936609941636942005904184245805087270908424914765561207671264086041970728344991627737132498853240108877862501411739302795057898356925140790569568303896042057053295051618671023545121281229193789302246768013420467433315634393408285829356998609866882055647428769466047002411216796077434613020718074805334258848452612063187165749431393965564432429134151444161405465315432969433984744898949178995399998280177660129682265607053067198688721951172169560140622814311426386576189741614902958316060761158782427533725933686401089289495953331176140863688764472304628117986519520620996772927618985302676519650064252817538807530771591321654645666810567439957056378030985683778796347804022394221318637523628356497787542907582162747960516145353485403451409039802175362072521902950700253425922726720199414501712993090939921610575943967131292086962662164582297276035004409361495286670200304006989313826632441908141859660299946743362953437743895392143203567364598477045232829509716660957976575334951976922651823382005263301173298079870827918408012769557051951601890495823563022146690338972535974175682596055743151260962926891887858175356605661004017715091478603570231835530084902593526109806579506947157507627288392205642860580370159562574880756694317395200721251142416153671124569042239548025551747397189819279985795688263973776324719834752759049617537497009702083848318842794256342173443520127482859817838145985682179722120194175660228043964875986001686702851846595686763547003298412141314358573983061635588825795180741754663420325051116740318242294520212135760319664387743292450698010036146281789244390828119522836244494460171617824682412625090397172297449158547660026833918664164338741843029242066508467609691714063403758981768599121545824524650255829125727375389707063783444845322504640894188814330069230527045411843988644465014836173141680380854338185688127389573058721781727922883644714747538671557699918157641888624191615188324259113360556398226231224371611995416136865164432607807353929737728084703853597004337724222348883551731980595909859767005853386368793803049066801391684365428638847814896214920352885661207680585534871630083356569131380767021293607603795841485047162501949893557129268441791840268452027645811763221754249032048849678747465213917374423661941069351861434631818136806274503368691323272335525105013361965011229244102837307108165639752393092639232372463393204627415622716533293617573962796325359211980708436031370494192200224348562013609401181924597762247443170181628460354870556776043932120921082373820037005522816489847137254875439038917010851216084028469325014449416218078151407786905736866900378093613132319914997079244742087573056589481055503963568005839750650307195595441386083245148327971773598791971085533323274998212963678478026436836116854452713146949206267116785661042586687397612098830106147395234934169318250604467062376607115244761641264799792932280108511136221263453631415094460747124213070011124999200945312903471587599835442560737809644628679871930734922387305755349712154168924633837413634572681582284089876694213877145515972882800443393821659338880380777411910283053022257221540181012247114160666934109949789069940298563710808169182870900564282509895540103387996282534478990913940781228697127215923852634630358369820483552353094184542254449868469904418402003757885223419093750358201347374842866613873037849745291007778626039010885302572458874606910274577489672930749237386605058577131010990200494516584778530484301954492847967208183608778050512207636585245719059854284867856119163634522341221306747180242283587034870093989761549055403267226391045186345685167122857417495543671982205788842648028093680346808705792650826674483930615296272305431065131143391709796102852140686667539036662815656489798975644454421093868838313406340050680568972006912387338072466727282732729414915619804115327173492911379055881465948528366389794761517978198077999170105782490604289874541764260783605738396089682444788006430528903586341750681216024708508090905854364517441976531476478981882700885592570245535176056565059411367753457894372949739758263825170354974214712280609389652829264806894879236691024383307267712115185156931124846376975243391968742110055426525674859870363241854182632961237441260105051631367452162208671352797224498334994918998276105295888486050518511380246590294155189494367094512235678480085673910411206317285016914700533623527869160277368037057668631792467154402035046911329537816081645843272821643074168278776438365975266902937533966938727076495261667389488497488661850447921921923630603409610971285985285214052064175096373437163941148176603844465783783198750473027111791629552004580542108642021865484562640281014212629775324409310718403094379133987131499064037919926666535675855276862025409678095085432292981117542630332893487280654116706818905452942199097016031081996523023519052326749040255981453749710929539376042424652088160093768095855518413256693311537256159184492803561823657727764646088330801984880225580203286079215289899237752200795810331257576817413298618076417184107888711925853041938069073852097468151980568884017097470437657895235118748033040612303907064074449356578693303825987911830484637287240444493405208868442093389786973588658642210142828409030233156503798454431312210975889789268347769515222739821558245906679147757445904226295134317744096322939922474362228427191757133723308471312938471038593517187879524818823129860703803302573242428885414358324202894352933799808750135584280648895567812446680117972297775586576992590418811107421685621754632112829622907776528527747673643422080815656108998990513505600118896784983845418680707908950744270794156794576846021755642834709427179989643435030015712691942525876931474494353951339439548877406810978930604671700901715570111431962472447235322633221390042645628605116904108577330571081955062707540296640000622692569193581609699801776737080640924818255780905492547280080703089594491020339889203259860881591163123796563443421206736226786686786475036711625788875825043133524080553111627492084939488787482913725159090135777043299780844330751563033890626532002997929045298217097719339241570403430439122815526520322524179059900645782681074848353737281858100027631231217017284197719825839296692251674649644065944486984067819717462987167762372036392530958339489896487967966528560210122566104223314400187881114212799031660610739256201902202678855337708687260463249364015265195249628387765675448923298666928002655789345805000297118112196148587943774392268596558205728137880615140704575597371606972777038124153476240307117151524311789273992373862453737603595335419456269347879142712882598700140740520369954290006092517177123120596473528881215771686362326918012213558669472868600322862824505573827481075263656253314126617230130306947615323221881228801559341486851422678829542423217808788857266171927273157148113599533502235063033165407294978729488961995262861430640091873362111416832574080052661990991996129547752577562807065726172828336072456276246193917626068452745674689609623389963443055014335020323828636478416929117272755525130877248097997166037798962510258902448788193919996357765896045352634704190556013937543227226323483384998512627151185135828224140726016866690606121423225712986249414981860002009480823832842672604647788124030631161322490066465940317687640416503718254492359311952513787793737515461041502375460787752652938915496255770681938796327790448136103520681002047599348554284497895147717802588518210024776613344579115855555953631788809854085962395939987296779558380763616358088277820405525745438905098481982062031638858336798637724392499422724743533739445162004971630751600781821150391985495392937938051731865205091924859666425276045829167929115961714211221690146099385822803283019806114946420482138833081725832572816362235001268438202407875494751352686783231257842397474157882718595161719903511769804711672111616193578127487352750955547717588184832272754730120009870055274199788320154454564339464826629193728892899750476319072443023534807282233502911229179126444595115340114564673422694069210855503450081483934648901234945127635990977433787487255738607353979500415183770361516905187744160042468590566802275594869307575501877733037847107492178045060067263224390051375334371407707899537483111925513101778828299460920988323896804041502683791510276203646478393996736571434350571890459202014790056798045520883836181366949934151593708933689466514558715376954037019072297831528626877089744429568791509786716429096603748537320088544332676631092339556303531922177897597011639704958656402155033309874419295873178816956282715496248658287706110477445190544586876030314734712573252526422204520037381589419089893742027514219570995555572838484546249836187320026715888871775853118302749169495249228214544096395437599381569359185835389678238850724797778020660285048031616487119591221106235011343484244093841093915498702118251219872654464386811987337785110286580014478619768673138600775304297296664857522509029863109210835117545295018159033648152491387396752864187544915434224663727420441509131939381835050398669863229152185775878486546968529195841423536352790520473840718028266660571270371850613250457382942765066306416377422023239296567623843287207195347970662068215348694636141974056941910508298175882981545204325916213595580898635317114276982856343419054997010069151700348732366765507157346553324582023960246748350955670573592206913000235400306944053469378051394696619981793873144871070672820109036285881916797940935918294993916084153548113867610138981520756046545561006147880056416616000115086945331391969091101256599857369703822993842062275149432949981868248586649095015002911243638344142421507105219131369648674082466758716650425282459552528676281168138962521853311493330314460211891915586167133596995012508488594394807043475004019524568907823911695763915326061533181494103168559094971731587339054447823705525691115582272788596386817795342090199360884637830255137746747819276244762695800554508527752594653370937319876347532659127987766030840553594014718053241299283118983945289219983100539291060681266043898454778202956499997001337678540984836784009440382158684852792266894649993861151081256861669025531801610269263171461083367631114048584914811467505052327407556095582038142497902432527528406439390488918574388658389504604617929960967831527751913416025242655044892223091075931535360213504124335419085335410275825813509782687338942828632562119055693753165083312252811895667592347966146980790554678317134722091089522580909151612141098033409702642089097391905323735175028072439741640018394052959173714368584160019779575131446676808187446339461096912883672661564780795027607017734209433496676232367395834214133403903784503501518595238406244783585732726477973989955335697927919323564587541267603014840646695623915200823525333614095243170065800586929443030253789722308912425003463760950947199633161577648153005931614067959228166401317591061450179676187908367166349745247069272615413766166993492538319715580373557809578759640563090618787155167802188987817929495790153467237469301095012337624346988884248512787076265655283224927898038953745510669396230267261920012026382682268747807379141881245517410134394379149986968654959910539141675742833502353218784185781062873968906085297097927969665747574025606366759512757103826832238258679706982469306336220851313862572071449026648659235726166084856253197472431786932044867201388887235116233846663247608602291640191949182428834768164836075285938176824470060878060100076493753081199822941510157793410919114312519946506983624865383142483124031105908825313174514757529438587352267620330815240269589553123839296010086636963446927050524313158996476886994265506597542639099216870584490798801177031148298659928060077380433912583458220786710428015459635612846342204332410856769411142776731099960748085036128761928068957108629686800746937281130701450918955841547931382182172397519744649419975915625296005504558833730291826115111277546905872728921333000709813262165081314611949332886927938882815079663107320450255770107158553890518449010942542205854704170837672240594424275674603991320008755193624831602847472420860751842616981969520082892289833504798730187325347189849549334170231745187745522472687491319507815805978086524475122616742605506223651555347029919611650387401811095511020368390651398022882286125509498247092114746069978242126558210472433298708316173970260911772425329055090773424934976023074527424127022884072017704851367709614406061309786034289193165165791281000141215697574149072104139663531090785169015389454862822464328358768794527844348339967792399502747451273583172660703618064590886529592022438377354530386146183064806472301997488623827612985822866770741279888195204402092455439880335994073548514585233924639263700153986856969467980671827562785511986867992431342912379909338737124889061440775690891842706339880206174586070333299376873842336393049919618792621050901581768609531264833152009875880591858978850941696752579452515549943430960484304185328961960067936510029930564991114000320801873524260076361991372041761563449403972624223488868313838544945316749927655644333851692587656127023386656615617543834942692056698214012646366659843455880243183917574897370579741363291399855171461570904741526561514208458813312841776074144938736618656352174427619291554127774668503773772996996220989240707473711901332782824811439775214282419104276127469665076617924876560752645216554920243489303514902485002703057971622103019796640386240528107537698319346386532882432033002961295982174631001809757639974306593030869564986780674141220995971190523271628157780393715206704550124138979398740805832058350227505650780386877662954739799287309365849186971009791824501680846069183833478302048459459854814968587494269911902136408503936266816594293488626172180162950470350350753720094083770215518588163130422373323167350188777552125996267659791666706676087382171623493999494818761297686278078803530563493814398806826517911056366880047581301072559530738102103931860841220259394963356609843015012915561707609294065174089838312371285770414452017227159804692590775028172428660011612256583287942938115274789334431876139938927554214687288520283547886889877449819988794145351676869918318390195859783250785190913968297025487621098515067118498762445699945157758187053575348030899826056638978009107672838308720900404903650610389832626347600603562688852597247155049553847840909254487330551419339797305228640126970994070339829365780707931481617850255067802340673528713000369750637909643607049574044829050204525466746927548324820190004898466434666397652619112352637964760965562863527803203524910438994506820071845256114561368316885244401758217868653252518797457553218475522043412807966039609683261776331577518595148743577974173766541184496711962100217877097049986537416579893475502977900490007955722307008784106062108417514751539904406887986117511147217252572640840394641169804716649096404095474293434762237820115968952470280006477700739121574912427924802954073231719462844507771440348291738550856569025727479826408399387893453110985919370728615361124719254367254555264550462257770910537777372098313518299294637915371758389108360703332949725337625188863687361941931669050063520913675654448719098294468171079223015087587226477952428144500259890055313460320531130568619013674214388417567550599069306939735955382457875984660943592007074667240011043167221974560285344641251986545849192166567202104312665796795508847722739691917422712478559112481468115435449377357222326442498317234285308006651912786508276887008993174276468115932692803384373013951551760060680051104301577565840518774629189164919972928283041931772589122441636702519828989095180229760499479621294822924585968732589088151596493822183542251717256998947683575782157193819504671952666886172830883660955614175001790211127707398591349637132967021613650451083974704357358568024582206561082829429546386597428741888451580802208126495334224481586857521647406374603910163828548421488359539882381542404104598224000840786859496768125061607540135594053257554996141834009256453196297601183548853670506955826838765614768822516316205147753942344216499656508537769330780438455245849870223619988542349058551006991099934551613884225791320535393082730092707015685204650525461779454186733020493043116850962781875575129597816892523643468002773425685212737161149296233331220581775805698567459386300193175654663535739736298925956733555670446943695274064466320044878016244748805905386254608653889783931466497978009767553403276113064386255615445112146280577209174060080337501422606970052272085052415679752472598708160814171697137973875201621687942651329443347721997942589503542200019002028521106210375764258009230345175823756949769549869182185760163924839588751817805648895034108675595629798367218780542609054339451249659167078661135734497673957593388843161935823202611562352519961886386068428086098759039144915216142630798469126382664504516981131539386321185435274056021912101820233637623088391210474734163730651048409183001036910227870177764944470427023508521414507642261749646021308992605321479017092322053262425559214793812531110214146942319377765081651105979548570531554037230860905556737919445547746411126967226940932426104911923128713047219579163942140219596681831267199623786592189457512861699551196504824091014753860020760967206554720963196632706256281980162521271079364791707246246457796262577601520969291889872339725791054793250788569084263642774306604629357297796560832584052673150654475375198128565992175184928789572900881741168192035404615133703574478659842301954402515629135986052362986400215693408055817217398852234384540341528418247497640044029802712064718727995148427584452399531247968602234372153021179523739244538651928891288866554113407550997161891153118933278058142881609735260733758956261670175798906244219385923470109508158032193222010398993036866142622044505465898196863306008436755501744123437906535775181445670735575502667290116405550643398350771286194993155119240461880309285073897204600731801249481994288481837526364724402302280367442992596158194149254095325345721160383167103499338462225049872173216582451932394111066815594142801108258785314033810341257059864373442539942074500876515694593069893399970365754409505690622732325501502202978660053749029858203870978345968968397859419320201877645832432366213834443523682833070405167695514180982740645468581972479914522479383098839311399985557307592478589862168250822477137076703680105782008918066108479141818395022713176317928166679463750293986565953417419770457534656838629394705333297777033137533540228976114390254369625178693586072838543461249169124736626319222209345842923974382293432356687368109638648368159139125984652646236165626225618251222684709709709369463683409076001007232512846105450882315941012952572452586809282166490441912428127364305828750538300633648937808042608545624719820611133649996605983813029120474579513907763019473345626387195830198337281053847088515520738112798191490737579581425355771397620751414669852150631947506247849158952676480236198825267800360404247029820309989791954590015655614973700732047359460367643647532493297177100331279811992765304483966787954648219661935015218213128529945098223710391312869061567901229477137356353037483546312049313823561811987327475587449369695769581252548218288237512670704428360042144022178943172310185286105057607532806900202398891127091894655198148065046547132003186055361631388715150711195235566151927464887879568809629959951295270936570844979329080035146398065179080839644067888412972589387882266792330073912242237552031546729585630772576937027009914259027741788355043500396157174731564624928423953012421784718283807138356878014379138852831241557782477636427800209966367134357248992382963084765026997374382501052677949244721077976185869610214290083637178735334490327410438692077815648114249758757115104972539428841961111856776951187560657002772874547503945725494696903993599099031878448268394960096036156425425912836485337126177618703731609367592465710821934567802736425186562388803829498226433120128970219281101452889895480983741561190112438087853925863277070953650593220952179965165568879107146155556295204736452802470089670750312595622516943011166456953431001590748988757274140908311819680904234833118482075051578451741901362841420441293374018702411882558532016430016809752278069046843351153207692003806047441694060212321260898987322850242346374304891698859662572985539334737308634957313380416841436028626116408465503763576620129885185409134573008422403534158887656115883067721238949032314083488927918586351396088794166505782386753834701581577642064475277899992879661482632117667962578003391125754301415841087675219192681937214815210106489446149746086691990525397466907912356509728736975501956881939564921770145119204217658454592747705559257944528935241155122833041727562010577224002754653616648039143591521327389373304345851748144449320269833937841885264338933932935365249025989315654778801816791092884630908661725747932265264070752840515584476113947755407594756245170455834377625392977614983539508248383803568540536062211970224442607970138621836443478597360964800666239765337713031033330692591545397207919528334037735431256817738282847982345792601521675055137202335715134780368545041864186666705999743977228156489632611216324469016529067256666024151925032739532382746302718531829012716621957477882772535278434676703203365283566662976424649966050067413425521775684275140658538313637752882830068786865297526910133622507770659751049788905607458269477122905251726819188019727197526489321539426029003095440566896781749061740806880523355080697161778278595526583039096675584109481009260392587307585794893869872831222447701155160693479728529581358183121021109350516863059755073131638414650041563300560407444030628213179929557346307623475620652141318177116476773604226077397995580658019355747655072604045165259068191193737714855708148855481796173851420899260227864327578961690941530687263406467857464822685986337591881482103098403622047889630465891365282877505284953495411001087356720826343304060324558957190214232341949208398756622185497457563060599595892665901577711386289832778087054865679513363562649327399042677760339558236544345617409889599724116044212416451292510150640926931020368285500223135170806573626182413459240932960070225827931133339409866586912401602127154481511614289821411245069408702785080904940044411644368623985802785952341059526345219767203069514662216148080703037545072817010194543101036658430385867167935837037020253342414687294064887232332710739555485847800462428190074087312244082212200220161915614066730416310728949473219613437776490594279371792980201389433585218956916449583448598402468026557382547059354724031027747859309825313683939119073509986316348604209294657820329820690071979983036431698569867395784170511465155856014178497067199570934954603521972160779452684638162266053371718507307624091197526495557515591046196778483088274549447303628283544841640429201626306538502020519448432952955355118670326334787614026587126079103988039382360439271071986850005451904082501206282493444468606637611463090336531383457239324189908934355777491870875243676825369144961985694733855058916563353660162096428173783583042363378306557527161987413006156083004903602670581161878061449552828430484429085961080693564815706337878252973971181156257164623529166567613095759199494830920429871143912057151570807704929989154531980829195554731861356406060935914288540182127369700284269830337051795716321368805689267534015117632602502013467866106606096009486243120325463196918728058755194460389345490896370210055612415073513405838658841675231550666234984290386848796866942779380399893349166114283997514481273989195595740567265323816622928250163007280599580794645550691697124467822795027709216131086206659765732780396536838558113943310782474514003603044377999525490012854755899637286801997805011982528764098610221134811760377690349962967357137688573767672384522218096498625571288225144160510695979188760128899687245756757890965853141991318605712166300687278729444045220482370594404390102260205579088978710533726414797930211611884418239417962201616498466972508161437489444569478017663902995550463105662206963991822966536620356860922166603504285136794502428017498737722391448055680539191825622303041336335362125450383605013754010556855906297837947335181324092706279330217089392789720396328406383504935802938158246852953866125938108995581571540129434344113609062510903806639306788542605406451162396827299455807371271266190469902430854811477957291300091716485835706446349726167136332064683179189094873176126759915291750173970915583462644867077646105525257581742909943698512644675158641825095243480499048930402641272625229413756644850164613297786553119963383582100272842298835603841104602407165018907427633306134345076511500880092412936982406507346290066945388139309565051591024241077988263299747573468741370908645390510768015572151969515922453144093548758742996281050826246202145960050159112172357806983340458182415220793841685998249074634197837997832639116247941187967517047774809569505609895045090986039913434036318202725299819687840452160049415767687779570946107010665751896034343816641494578490237876465912506213000034273849176772027642139523627027375710338695744705169080619798152571009607476420990238481860706532370422761583801670066802415676291203757790441364176830616216217166772735723650464061920979789344605711942485949130883356008214367631439176742658951001557857187565791692204872265813331120182517571933582902722280581715346249293500543128196168880627829549745470474433136405474680521334004202362299000258127578343068438845637234969715653559768392162461160059744192735521816868461226537405571838030550698472171716463154435122384209483679103244356079507048345713476837656047402613108181146479296900419964076579739729511503875395569084695047667210997518937780264952146283172826274094725750011531973442868064889775056829025165730950088062810853013514099680623881553750835492541439798088003433953748468491656804295072236794327833813363430737900436527561236956859925026221970987645479082556172252612832963425092644250040345074086773715356442919793376286467356596736825589260026237216435667371782370755937404214033827280703523727651623881575940328309848911908350841517661448999465051874857739375165585757346903164455732963296787480420078654750928514101206071417727990942716559277318613045327022193527988732186722794572587622041703007976717185683636273727935170032043121070563701892499618598809249391913124794218347669324406047062168144861658496247314772428734405253928103696035762721899816070172261005419242846822234218175594876384110220489622947038252873676214239839128380358488101750981346409767242550741658906459375158976539389899073219207061568909020666766407901198953654006849133108046056320647727875570875674667668552058956194412837846921853021775867165860703101663940499060494796919601484398774422126363937651259248750538164210460706029128286399600862121790272962343246484102414183371276106671704019573611666480701896210427884805565415120729691051177867963838946875128603880564784288467280928062727784023602848015199231562311970098222896251471041524520426432893391067742784713546047591875755153549206254454476593393446309941173269914502943154201995969150985945429262949778040233343480425637950767732959505173020886929157194276227300459048351507009877327341899585558197816295571266522948998448449850628730096069355557155695907759331283158070166307342412410596958562632708432278031899728117974503422294766407773777833448243978197836087117831882160292246898437880863123728437751420597649984919108609384362581202093029888364513876727350796233374018036899410977337259034334456487797707021393019014737808157774087385637896732276788855725819510016856457961002576308452329370213681835194803031219569443612336809700691102764303733503315513221185464389231626331785399459385970672156277685260268148835436865489871461572128146832910179716339676812441232871051477139459335326530636743047971213169679273017035789950869263818910688936654678814323493554236545128281908023867030215228124290261311080833925266474272866535405253662454376359946915606677933091109915174509110599199149093649407638397387711473632776835019295061683561971084542481100475660349860333633611735736749659888839804499756174034737745176933196447040914539218482953594414419631897969199990808541675875427357006966499573113289680759126444218217032564617976162012548343582413753885952426022961345441751345487662412902292981411937878946545454218117954597856829523232475596520564433967254234531055812132465469304605366523567066529437276763172489567704807160152573273955250932686884514247839762731406001413640043137889147492339196708672835861450144259049026844099569429705507291996122696082577670846062613918084159836558584872893381134399514234980643123485381726640133017274810264771206089223851058251836331614163408920976356119015011368991422289097660443618283506484856870501196081427310035598522253526961116098224192925648311221163718460434263476365970488691361274907614954466757763720826932455946766367381006319340162163509802952275339552742433919953584037468740641306330934494520666842359427444897248044565492473388397589119501563031649471955979181181481659410607153428545613173910900021399225145071597515236433787636841476937031376184406501096851514661155796164086989643661737175697552992088491531322995321223684545435887621500483461610260120503907338938242240804448004040646565361967524002030805224777348072701244318993080779406102408973979707263244390972452493836857251404717408101444578340742033350724877149764739023303154813035090186943473892630473123580567094567373108716921542411683194471542282000745773179025364467885792403371015843737321325846657902347891821184986776555762280680177539382334741799811477719401796762536801533390900161108133286535569979032922972754907407458610267834252302470542294445964608170818735430124946285644198360317337608503892611865817441412468362678731165941531432630492574817940265523379216151140510199609915197522281892893639017127010186278869072829568622027740383145050202150836656896062414614781715017855531002317543341735935119734231558923236743022154322976560606157887411208091997606234435956367640327671191396077979386780695685216800252579078976440334594131786798658591207213086709521451912362065998394607702363842017469128421293497630563553579561190545268112080363550781589319856154767946092643956789982394971477267051772962301870119621212631582739285035718914054836065539260762112185318063880833509410727733123766233700640955214752875641521685274520505283928628369333191400764070501112855398551517006310595680631998371879391921694614802558555905518535738090372450226493060217346480467566400291450001886635036532541390781788986992315346496843408390095405802537005408270076434808692513686481778407237761208975297247140393173139952941842546369410553620458285806386582754350405896038224968844751440010402157930566054316520748703177526675909667520268166604120786627650625754956962128675427071492221084998457616069916291079243059524519588026127020964634841909198087603377056872308582292062968571786469287774510398117793315498322491572888140390468547634300688324455988354285884037789168739861052465856569122565209622468699784095979580656027420398123858030338098085828835789729310789882539065106022863440121380755943232028436860685972791244554515722034210673064500852291630049166207608115904584258797583836421836399605890326092832926618097419274680349084268819938067437219029535567032439044983033042456636268762476381099597544664267268037314129666305548874942384448732176364107614464341155491408288081739112928592238476803820796366699136339092088165484706306033888421833352222688471493446918415160026770076040503052322581372031775942714580849180907678017348226882022473523476504883116654569924347991042197978032634625896673121029165155427222915420095599601496954503805064503843585835793891308394369496785287015754230773771109526252586677561998780235159616305286167637460314274885234815193255167322020919226758751657921522489643935109828409891330740847155697742056038529772270243070328522864261802320987731677475347071173920976359369980870474087986223144689575738704466610984062794809653339438571413067766207461077613070099870564444623919295907735864116442514631251016094254067701878828764236191229037626445845108810256025348690252940333864805945071076187781034776585610795343745716333968477820173454158550109424999535762373191758735368210899541919194484989054407690905550947693368670870581112172872656754345073906963872734532849879054525102955247949300151686011194756960276840675420628925135226335075128782448799249953764975642576672918810548905189451060032176586854412872895374236458765355122039820531247292819362344815611801454978732368028374022856155184057158783655140833414772761223069501734279922445178905727450871327348610824295264259305461513518218025810920635313222293221447300406986713878385423134113446176500868015123764495931192256931730888273924069799638021708350911101603447457144530012364412995234704625466719554940891811420284539714169611443283860966999656578995440190151431507216651837249252515866298973288484231097236908565730721444827807440753582137346218113636178531004838763531923625486949466721940332165806675681787299354027887677631440483923287189318026172371680098907603160771158463284770514802659599953807320879695851435154838658018565601009738314983270396247515575220110101820372594176691615514873521060474194022868008319151988113677503500338201352779612671364625679312083938787451071129789227817211142675226051230925297904573739545863257700739081012043936122178401945506121880793607617320117699951102888680135375103272490093257841798178489787652044814190496963770730454345601039714674122963664226451394478803891036554788455664593588470514388846588453068983297210397979904983307545670666814238936050307050865360151726397279324900071525586509695198680045681612174220123479930161472075791896685084003285063817019725247806120726829257042488663205123686605697216867521249967923076057693150738141714121936963277991035030256428565377377779338111131405777322478090989054061700454477410107196541690061575004997705172200768091348046911449134851931281538367308733124084122363997379142222399330114129538312079413110038830795448903333777296795456187524295428830003615993681140339842325077190205142640607799207505308975072862692475171017498515582790194248246615468768464246843840033702959082032878329463477399162370827271188302180241910792653024321800552277441053878309538827370648302454331655789680502305325980035988181796864351655276056996844532336145198523162777356724344265530441726205404733791086132892019513661616505727471709700551524039999690850262898654920460155203054078540614296242055404053556756882708969485973780846802640104913673641105878044526334932403278626840528775678466256764165073767721148192769306456989482604436323112362034001201866485184311044848748919283717621760480694016178220673682699688230845630117228338139265558502141111441976449206289712930411192033702885867292064364329994142700005167927493960143865675068451027980922189634623699564683320577612941658996416145511525512651282011074091095931314657470540084793056904109573282484170224376443381669151185095093831134352953360536336798633496021204475672820585838807953912377746188708990601339674755841025444874625653587678501343809167085374970420635726504606820394724058158613339505362249568850161837814308276117770838344058798774856667329708388477661146953878577359771302098873690713007639590141970174608258443412319744795332108596573996049689425724088818183597218719522511061595763389173177486575578753439440676669977599376431215860831537847461382293272825569428100481081787750854659256711106189256790798211701724948742050300138878796492653877777718557118906487333762258736097494267630352878042666297619734504335776191855512257816962742306485450999834853218947781305270408722833567134723618024497353269552415609635574477125015756611267116084935624960484207064636069308257165333709316333069873275749480146097331519329226320746146265241823599696000289301070400538245285839604445588472036168572642196999051477966926382478736154820479798047806027429906657021444456831841422562744725384734506860335800419279430887295226008106555483541886484335231084738478871650843641130499305964540228606703423259759869407037401408110260090438632861045836376547788618182869442170021763409350823251146994771296541204962733732129381325315423755588286974413035508540395740775806506802214140912043225251854020723118239142243831262202785653518325862518297236586160228147889049876220416560315737405707341039781378988174924222426821258064558917905712910152484168189501057828482521366694621471346520299519072890627742214811240048157398426194905697570589907352009754499150122082110975975664827921661218944937265450568842589643440969465786393564644219010444174264921468946582524335177625693693764741447534580426635728080241431467331962345641344933864055463740759009657309153623008129236713437980616785284050899216709890798628310567463071413180216542024506349669779522612310081403393871666755966743090766606254648298693502095479989965006407636455929184213268073938438482856508212891387462926787396525257123879346246774770669994909558453799937618255790743083649168190462901287391196765916051737609738383454180851783585350108149799186459810293781129142307218775567536888915375075654721935205462800643941087529693218890223445063563953504399333088876513287882841581484297507238596950370566652434589121657133153366660651751971532117450346327615604825813641916446415171235627676547047485701937450583218943107243905596379919338689826453512037602507237775958045257714176503824043231977832529105529399330595236685048276618898387743780210784717576050591299430708338063224538429566434509208156812836240776014784086683604026087429860826252615626827694532915493198239780333981015660626681740251095354728923800481042930654237166310081725405162217524217690234820101849229362790116565786957770258274608756951020139358343268554165644600641186778236769577573023923906728090081547844938758622095154424269157791412988256245403065607705525615076869152740010068462565677908441275833125512940809014017981753244006880160728943294450269904615157718487225398751028108829878522727953629891035958644294352727713643526858863440665127719798891265966817088006993093988833891086945085239386911616724128119540592649540833772822733487464968153258498934304586607791240645354848939080291035531832239601155351632203134524565795269736392559118988691048824020346606089958617253151484189205725880128201460428136827542202964247114213845077496837676342272838063672855938982220041226027819866006038429022404461895556505430669502410633885658694861792457270784218143951322762722426653521049529515143356943288484004547660920507533824431830779317977336794693080735193041793214065807444392656932317445413840326875681657289469732366504181862168512004794972462482892134178601021291401958305454292627268982489530901262266436581287183896925690874065806298157040253945226255296707299959421997044522521656988861534877828380099959040659531182471342666372302790875205893346763026982248736026962975923475297414602506174986929054570422383489701494389880016350475995141670687052031984206181136033932509442568254973925240481230915509952116486459383807849779240967413223644638728216659670986696677710996845528083131829644005875216619573366469858868343928801054986543516200697657826544916898377754619568565059478742779295085608192616632473896374938536156773014282432341146569204010724297197248619022931268039521670916194163196828408293504515532249955172858932257281595846255898526707505006701963447744953553011815050543356507462507531754566421841615997534534502778516379421750556848500146151152731972571069225566353578240528185687869757147915880378118407019058156615034295477702975659087276394967484227861395787384120119428859058128621072099678978803342452777280234682608307125880671500120013430373279141783172801667066348729535373736250133789385767496444082886876307811277199227833331474803127853109145201979318820948807010581654572460634299927245002425895548023984024631546429317111173294156321825976659392249115874090947785429323120388601488561709149039827311789270126304643454762091600461174582182481903171401697310702108935951125537475855891926679409785852137498014431820273770545947259250659148325403126382571914930533216805752110892690613523607255166164680630984008957888828419982521444779646142388812939355668481790806239072805530994354629630864986899204316507338986328486453290349040167959051632337772076691476059040532697275329975636018170583560624098582777028960150451463439962466371384113220874998135574818466236353002899613911215283949875634435467561638544890349615916765434615700990563593032903960124234648178106260674177014830617758703419589075736136088253894812724008397638232700304043553481646128869411019337242695306826784359330835781800519130455261167139131826577741464901759839158788257168485373177513909528305458555953251813363709288146435398017401406723608641003651149558837539348421835682497803495299594468248259916632943394465170565543453879467187598747933888422607916950649774546162914906340346739285923966965163936919603547035265269270186421936320029655112161972670088205066362532726578658977882829058992165994898822824428170235236258263234270111619215847669636350762452846106323997485866024270184815220246528390032005553893759400748421571275681727624048380415374562009450821725614590845404285606998088954258902115859598887482969476061408419107833027914600704561390948888901560225565094334922416627632014726800915044321131787279195827194567244779287376424883357306556628868951306347832197400775793377982621842181552329588485467624937390833601164048869213786900807378479354235506400559963199970758038007838281549391812096260196792718748585265801456533385507432128183595040306883031272330037293111328960215264761575186578130050258693762032416506915527600393628714207727914212728463419199368679495466699473528901117891519263784773745752711846328960709222575589352625965527485782374718082796969575628544475055369283680920666540330291378405373926272340224587101220341928326270154901460187267680523475907842987961504329615328084144472282055262451460742003584667543583116885008601530054842587385958692393034466208950704556021373733660253155908095018007780624013204677559438948108661051924280659073168192041336162529314460101327262783718047332515244444315972528213612673327036125178626046899636513007089532122592764397353021396283744639498161062495759884344429955165188940958637894148529284668311192390294518173215000677960047596709193714146540789237474023935561951347453141145916270210429069354285677123929232389506468591767520190211462452526470139304891895772540481388121516103468853420876090269590132687590618096570309975709779864855086453406146272735183450296833778963454664068300779905949959567680728261172304190510332563857196387738664791387316674504766664030636297510420782902532835670631216457139598186632621457193667178656891782017756932484294184531608020140352782826888754012416216824565610645602008529534985245713826544674460819210163339392598083441860006236080125034881054202290281788326396609947776526304522307916538261023943600068782066792652843174584569697092065709779477796658855154748620731715428113797718442270643247426357643477862782118601990174373412242636684390744479130571859199913399704690262845062767584646810998871955755478423416299552319188450462552227455912791911717243724684661974107302031233393043489866182800256790386232564474776784483848339361815516959118468422597475626371564126064945908097057442958279425904357906328854679306974538183228898550765966788542740174559857689179422499547875957058863162994705604345899927909357271039731008171095466563036054222069820268185719912909494850553735027623861201659577036487158391716946825150474487234817736646280167506465943734834238665123263469553581607009162100724618784348790093831783803190548684727519853112582426903527001410644229284606378413804803739615868351932010311912241378598620800872654482268863574660584208669379696019983294648248769966031249463473433352480972068577575147548919822095969594667331499442645701967037273817965365748293646703992994774477646755290100880176740977587756705136664851291836437304086858781287305394287939006752876763249236133343861738308410644076502604519196108061769448506277283174732647543908519902516410773036672424553642739911229521547825169423507531201553252759920437195974278266264400466058678339665331975304515036919765232864803935614509137191195967530846537039805286535035534390771115417696515947233238682103623972018899076508475558236816884413576254541518798862468292710493422712498081172756042396280966851732540415631274672618921221234205689813434046935490493179078111921371444849721309958648923314554457753475932931364252135178956202785713176393903389803534262694886586182447627190665545601838556006638534278591988577182954803800112198406040207713064538515602408334977537860586682754306283250533301140687305932549929953412232063243944730443685920276157846396508555529827352476066654239710340379485595084082331690509527348392355377439643686725579603519138799662391973574611635581411088920897918479178470798384167751540312544771822934063295242710477315808664141856756316764309812071672872781877571451241545722697640702613471545182289693373648253354605832638600132620833379129280733768043425215302179926811838921372785370719436271169868406400235004566737053692176533210138294851416655209884820020087021049891905639432798473018571082027401953266227157039066184967100491430523017743323275461546651804883461152837646225322120856013331823766435413773886805849072089148422615929634262990553929162548094778094179737866436578493388880897768426402504437036760479816283152440351628908500271806286045412543379929065893142516191401402471952701725923736396489263339894746895645470389718704105095230460951591818216776568564072211346326003903879829235642811436258755845191816743691108281125487436996037387282220848038731490816151139110128119289967053761305947125059835703131935686603454469461481859052322679209678472378304697550111557676758488035215085418198327285442438850536370300093763289113284812759776980951611987547435747263508274665431629303549510109444972279846819204231755098322206481127819294301953289055953415488395153779430252519019565933345451137829171151081019833788943046759888075664633388249123861132297407371874990851092630763719448085441235589438080098473498408652538430520446986442596777373989301849441306227251125739150038981943588660200081161416661398709716429922482252196735721786820716613752232476453972264106114260598537533136853959234038063904912730868151841461802606005210982301844856886751285533373663714041126420902916931528077245212222952664739610249054189712107772512474869253773416542837375239302063376990006943633290416179224686008492048811041689524898075571412814259889764910616677976888171435602988544465522577728935595127471890876465229041524528796344800191049712786203391903077652577735950252410595296799808419982066109920724625113594580054605336129895604170035106252367342934805487272248856809291351156285433641805500138828854717908414563205830133439591719197968404896932686068077771988914820902812125901010916528935359578667579817329389658311547759326230443367589760747097517000546855264041071373401479050798051626263079046062277219499594809437805515502397824385135370042312863135184415494785758164272798515484966322313669188153325755487031857352403930335821222565686760938108436934146612616730480711663779524216811641536421764869402637599099410930158187047072122257604857014652552939787096323358743638728601141632098711093819706339655630651367549196759934376441706064994903906547780813221751860848542233092669047338188183585414410977705041073133618695208864074935031777431427895101394804884170122517062753548898945743130370302626975416884117277401563887648234703149987179232778326768485798444370118993639738805954942903885877374271899126623564501009170326972275911502723531348660211962433216002095667246921443370276536994586276417419430687649971123184198986324892175016348317398152916588865380468582622480801931932296236003070599861665279706334827043053346603039209358961379230158159164350721246702523941123535160634286212883046314376261174101830045254835542909505956221352123202262974378650502847277289317207829050874052215541581928866526403969288959318728137531532928743418200383749393215342949388612905765254954967955374984580270471665100364160592234212906268693105629407620650885415037637076048298638270553240457315037428160030287325404133743933012234440584929734238194218022441378660032462396902854869078622148893925753193109819682010657464917597812475415788799709455725709453133064016606304343533245801713601368435435792563333765427497685283956795458050171608958791303292490729737231129828390947399010321942103000219322730412354838415813098991221157880787352711801136191306841403507865860841074254291262255548858631266947369081082712462686896286580540478445797405602618747932282689677617582732125768386459977310847257561986928878791708036489354341013174820488828098093118231875307821605199663863897454171648060380109024505009455292522921183253562100333010048812292023286242543437872002605515561218493733074823180429398256696354352171521546570153615141970097405617739687168307816796915217056586666751931178798163004188753106357953529042423954952042261698032389935330304444750939733087945938635108699671134303910267402319930090216159181698706688598188042531203919582106335503550977353184666866176409773215956518158747211885393415366027074831726846724223691068680114764388026906022498242582622081790081283669950748625005481438275472408188173837344268336081549818848929433008373610798091437342104616843065082848514501170591835017326180917430753784813855700454670646649545365909791194501240326143184526169665885943213746519194165107103819933799288174932761522603530081872646449154455228763384725847580149261185715107017767702040249802968758581391119469142492173841098063988848856490415255495096843748460930997857677295504723626868467388546944612493672681674408272713218457542955818296783549124463149289148987626946606883533609764086902393689093518211069920044562730262171403717955757666878675039580249272127857888555867358076207545402105500344689518322611093471749907993622604213133060917675469332397584841819596670961574733280927979703892662128919601378826470997240670159953742163622515890642918901243269490340620770410221914434608077889613904825318420959876854753192434349983799694312614656184525531231308548435688759210719616924517617540307613979966051051795102354222226990825451930599204523990393574859167900855812069013596200530301285517911194516904563269281059640033938810298897342375831790401935453304732062725360112774336018977653719778694894667577591476483645484002734429208793854005657678072346805931079412170365816287736763124544967652738988965611828223683887322030569780002926661929102580595535070844755202545383092148981059920416462426280311966752358894280483691090071252262704235027649173031748009910787155907593501161283356840314825280416787043397227791979636414427930078488206024888269136505451646056602125259299421318495208828793386800367761479599278756413733050940078744422508847014673542032579002436193287076070281465808618376357314711028783513472245233631673758783189980723501035223301315290591136145133299796748075153595639698801583281113415027093795577721178313367152605830257032241952726040991014918249614812236745002646427743163574296120286808105537874840033653735644407220787703718898677091598808464841683689417729190925019402279491441114821658536856071293013067651410074031414059271838190094112579303221127484632090711855632243139438289699525404559222763963337504937105050122803830914458569669170405859135865958004033085289389813149508877950354512357837711885248116007923300339758732025169460385401691130729815823412214387612074116193380996616334791537424191382587592247693057363315265411465587963905336428191289133799014913584851347480929787232495842379461538733401223480300665204072058595838360964527496582906899349448960069420333778429582683544808216609258642453867969011976252087473552339476396502017024257997235256942498872882791413184203536203136976203948487068464492039124597350359056442518942454409389889453366274613358532508834324126373974190849145647392451718756729144069217520279323919849432358159742741990577749401490698118263985631690063713939743995305556052360457753599951230648623946311594125470934023155391253328219327777885431712478882189259616038800495415867898841039368643898310453670824814108861406504811169463156310834768107897767856109245903907384411315669873491722003626912774321495013162809110800726087519314139675123931775750680903075105728510873936449320573028347739975429921720618573825512087536739984492143953986117804297719443520571379638318826668120798928150789862973970968512006263918552958568870799978068690926473199139105911291043081200397056701937584626705587429922657883761247974206111654460983223700073650366443893315135235796545975988660420209736203549378021080799443405225875295068078823610827493405367085153516278591128941372115288003322226991937504173701097333046798073391177500958619151135079824367144911608298419099239615099665365697478455614509962351960052916293730548174342575013293742654881263643583926442274211261410227637245810333917667127938001648928004575188895956455729701546151628802926436278780327143841605869812372482266714204828218820799530629071501709692142868092384674734599973993602163819860410971528771666184495066585019010822655925397848725708326247715423559572768983531332099616302638744167650665306812786736723035983145350392556748526146548907632756871042246171320480777936403535060066606630725262756797577232576664221765349113130224303362133729964408978614555799304852264587430647906750742112850889144971080138400631853251975305065699938816212423754166299157555793345366848733304748418403786738934311782773529717939412559125132150055517145431668865788161583541346340985963124271592926288379051458604367710679162501380063036121496637344928212801676392821783884247819861596053389081769397629638621857525145312613454085728842026911027460944454709500429226113023363741377891269699949460144263096003773941648590664309244505378687289241514009698067137720721870123354310939961318093467096191588539024297072330680413904845303467381402503394249712334814829599907872430515471817971909570438405486264320184809435590258179770062119675994334386900088272805574827037774885197867696147846773274770546155308487142518703508774422120031587185462471590530234932277066899630498154584845725435901400761605242118639187534115293351861590356326760372033217014472282008254116372523301813267458329240633036565314187651826249879421023677751147207908345484810537963384134375488269467559068665775534771532812777322980105425000782379350377017677078861133307681799902433431047399521636801291861045898672372057008170794457937481857485795906520837576220419826659326054658820366405322483193996558139462896577997308166310387877795396535292742708919571587042195295940668700500193394660304954356227265394162383546062859132184405728719737034522544568201599725215886930011114182946762563267306095278075183188343049084736394071929867472545192343709599270872779609330435917514983376939919695123139073198125368840528576463629262907095650368033667638530779520434906990580681576053752841675702397683117879975536417568882442955553003544478972971863929480938510131508527987750621766056751843687055013103772577864509058300887211785179651695728561583361171771671469017252061363656417476161172708301550312881458508368602280110814803439851444392896437077924719814141724612172131509353722907631516327266977197706018646735905859542350966891650928239211391310808644198974635866121464517229599917965641224275077417191244041214990606879723933912073794122086695362517472573388465505638903171779941560482257916177670075608519254919481456475494842708647719937983983871620217623400910056692784058977384670166895438377242339949117742738071640071378031203287136175630892059977128376960509059052971587355988679110125281119792596305253560305145774623930369805669903025630773932459720332700937197519671971573187164164300542332320134676218284350907721324185265248915682024284358960600366419239403179160615617918651303608679455385701881251622957131695613240233854618052003670036671665565891223872753044609783075312551232660095137152193266144418382583498653724758741807795841601279662775436842684478791719682273452120910038769147184324880337155757962940156737392813346416752835619085061086894304540695995975968269340139066968420816326886053697991567668188602208139523333446452828590798739665231826186019954677469719709523500746602942810892675814036053181736294926961846560023334757252372155671615192627700480285374091602225582416224387112122127044385537405435398166267762135951824947690930277662883548910071099180610539484086991963079289800200928244417540490395446214396650519880989340316474622459715332693160320923179394486754819276555782313982433619077179179707432572110365486290963957662201386840891608724410759278188433922683993782605379040986614429558651828676618892659526923619014299396744471283323268344190163555395965084886889498417716759926396129755522659077923118510346999397915183814142504254390029965922137593722950636288825670137538254346216577340699387677422075177359004433077669323772498949144482733678612460149190882636551013138191813048483089833010898759761710321104340069023497966076468286451114102945016526999199748268442224673647496149443211064284859875446363952339902914483021209227844632349460990646897681462986603352070764229897647294293910884540102003793836335928261900673277643436987927479877005462217063978450080325501116857187333902255067621620777516116162237286144262178870005502267395829251321906515315328059233915036616047437875992170042135111895989903695691670566053583428137897696149134947331891443112195104294426033377547625066745718476370691543728747528775052554991833092446592136918502158010399341987314332793062314513378206890549303269700103808896287909302330805108300917347560286134171721512403114709049771151919636610011967888908683954150680906712935285115126807508239577614476974730884877549006327214998932721891986904369928725460124963687198844768995503608651910644230748702210950641543824860547625234182294383706846759771829961758487400496889589937847481296541782027474267379848841389512864380624735309644461135591181354890761550589301401305083235730709328294565222145665910635578571458718090179711184480138667361979458749485710897183197739946499870471698622353534510046072934035728120354549730583617990616616788062546215296345317266205111203597601475226655881987550609805334299391973962065335392390033379796009373766148336348546544316770147314926940729004422855901189792194957454768024679011783472751817381820793339636785294075250875378612834962205918862252446198659301945783796607380833236549201972579170816800170894700519943127621378813556137820845013805762193358817785353584772539989816320482267654375181303140617793772281032633343800336879115820548811280567260454645570119062103283818865595189796143224788101451266297225668804752035882760286528720332543955212695057530705835720258439650347449340073513178066156108234147644065076429187902647034959501458610472364601609325375854330799518394545760375821798783584655302384905520937565860128433143592221006309016808500010241733578778665494555345190310899763515564748416028889370072594505975527211502966970753235935963829927288087863627500569230150150009468808487279362002186105316183304956771941614523662327493278580491676793017201486016068907354088185209727530978589171899807483635995216432008382064393366496825812089119456237001939973260262047338604093102772121392482465225689881201050881653833651993121361171749223320064614172082181922905419671270104260849375375767227978477099519592942117757988995401512451844083290594449747064685215106163917745414516364529786388089014736002416722860439944847095807573052914727260540820958507169989540070549735388566197379232593401007615638982356402110641156906153288898202445841650009305525941700146331985408337980867341905490338247774908621011433344720774174239891480814116245461122898881297923498407310697571128695945769140701383759153335419033924349236167599481732493073404359894798044802939025590936022969208052513923315892747597998644636429238278965226980039248302925802205941641433477355680334762588061415561125490697896694748797894856530637342822522211553195257215331645000133375570371637179459519453905211468905582143097593136530948129508622846294988736719208775866358229109934759619310942239511716311607131902542819449282750547875928341784570611507578485886744233004405529773796456226618807765378969982394977748792775299429307303669551849956549148686757619743220022636104056999272145537021159341613130065893775029195421035874242943173372563213956237184482846331193697044674922037223879958817776373076889210462799589342037901838520941010367256304387127976636047562773351686691009031432407032013991622689891507950933981477970175635371481107529689539153895605275536893106578188306981631044081925279296809374407829245322077257275654284696155923000185473333858587602193078450392657301646959380945359236915388807916603634618491896251361174855668016377841830727313826902083644783570228780403067641136844986600787780904915280415607788984341139769928232251521524111859226995284368078152766042750813840453106745649662221449906805105178657226276648667367234715476497543994888630281626503266651129125800458546675288742590467308856172282142504489388412613867646745345879147468752129387490815516040220141899497557878451838920799791487713522882428239237279438697258460831133622942043762498377749069831780748619979754547197516921950573675428034906719308299363754079844466875254805022031789059769718686578648484273343915681903191936543762536279593205182094484775471025405918655077431806097190702370624275022106968249534903292514093138634568024747214666888266310330484548843677983115800666834290959920287899874672982853980239117895351076524181450222939298853498674945188494143276538038858830529284993276379637670050333206125184487993009151684639353147621760027282065560252551046272007931953422017931308000783434493234464837930802420505228003026053926442227568179239106550341790179862278615910794831179467132237297110569939698837033602250795594184445634531776000396094418062291495592675694645802986873913131738363690428472938208386694028211263274430508057874113384739248567492325460401893067015440857327606108179473802015571938068894271300932684678973649041258384092952777703381369253132407410830955102402031907477997414387480646670370771677059831864823384380093808122423466228268580748879549334948120672183695750758235213394164952373170896356011938348373806824214797608371535314911705813394281035270357279272880402566328621111012396444555846094028632890893368490057882583222299058825431113487461575232875858567826264864402478440915644152617129524779600270459146103302384285568307819658316199491982815498424296982580981055681926753608403747504232941724290054375084148824012363233195122064506440450801313844966036471569565298084377183850977671568632050487860122471810067883449175562330294325619902659557417084400181510496468529387030041170753214353044866245120385948361684150786581087263288292233826805622407855665781658957931592564156544714525468101541458877237144468164792873659670584080644245810612583505307676257361659100236253362936323130921075999093150059026686697173794735825256490813580819339975451016904965935943409165494889342489352605677299720267812928371476360825506271261452849845932302462164985202034680781893684713383038590624573711063161332854774760719428133381589273507011454186857408322888155621580337779742736272968714441693771707785324540625933240067916218812286558646480624854270996639568166655659670840891078876071824487545962937320963512024844183212885952517751770035910562876196785858355316723170380321206858834193488536658375845155307136062296128119300908981747548193221698584775897833385795774391002562107385394176889792492339933189060921897415202664456667089654262953543913236993446975225461258398544582744348259151552712337257354096997339769553307819287483454481037318776585838904816865898322279830812461812831603443775945515304569557022309527197065595179604602202094534918623017265971664789499159711393013994889784407525927271831643138566701723150575261759880852174671296022020836206100525202642479413060037216825237739051664510977567062425945086568172578360002646929712326570134735006728917176777831658216094924601891402557405570260851977211786634780794676812259688439305214654820165369468347112415734712918163294714749628651121111890543414154298797830538650774005089933417285960197469382768184960739435637664953394327926841352679234584236996393111823698920578096552712530058185784041178823852154518507970782951915631516760443065229565733750408141675782955485842061685266030860667836989006005662413642417262359519113271803817980492111197192015269163257660262201360640652566201153412263599056393916984377663612371424041266100063831402063745837106164381141844803316395196066277056997504379499988568052127574975108315188296420580307951043647719651884401818655059138549788459913438395857545930355412041969995151733546613662423647860724292833902232442080041323254164744363801828251836179884088412726612165603554638721872653382762134963077724410585551178195299635572374618347112888338809368273981595489469630957170783414003931943957563162301600481597766234187698357469884474190071752418610853659456284215827982160585431133662959124122922329536968419696726828536889253115143069068804437063763654103147611979847843532086708790424071541567066909286645948094915112588620786681140016627512195976552973628526392561683147032307526313171872264362041597179250068752749764091663454608374663054653799055652216334322457697340930632643884890025968230861326095096503396631961285506412832280407997247616679790602047421985473740507238683711125341137441272421985755538731386546651973678298478079919991148591257638701339100962036853322040511943944074978784960028462954197568592491792622791028614489811549177044003365432680528768708158047259034754441099373024892477394770540911445232063877907047632052780644985201505912531020493153730661213239588842828175735199782611932507810146582378194465443563136366381426231917584395800887213173974546082351238837222044448856636837812342740514862998652215400311955711175169917152958293903436318137639204007376549635595762847378964127264581951348629725872694187578347802657743782460751429824572394391801168113107806272508487738626872719405019592765828709885218231000689511330890103836408495158052288552320748865577305992061369857078079748404207528350060999200741396398585606585899137581032276558307294642774110319475010498114641537173775497290395988175554096466948319829312741087693711639523646991080130624481988461904358470290482533944657581839884006131737186703693792075081588014441829541685049261741664009043028389822816261890909357928099162009163263256648013559401002877133779668695283548271295842340770214285835668022041801463678777199656852568599650277288558449816058614032341403998524445284989286966160318742571577744943278921003540432848673227523995098715392736473849078340649142446711867548456630230341561244270980196273752255504790734533766479032526615877439774063716854339498521757395145886188733129376191341693234023380605682141034486313350690920285732300062398059274367959691535614290595043323631744922072976670084784112718870428308673280144021953756277798766587862995484101677732206373038767268337725153731214199060680200902416184354923733496067085829848166370851684903675149300541535900874944049161660322366517515887732536671633212509406172402054149615271015986071957784375120501565212635858322306822490387306576373978970451081742464896581454359861926709145922440570332394763704796845475732434646430316732963859987069220841651751609516421016101456979773808789699771352473558216321864391798171966146456803584599442884709022031088993096070589503309057131727849735891012996779319141636366196001431426271572426582744941768212277026067885951699038003989157281875668847994115861605642321643130170736557285693722569498406045334078414450591739642645462061491291107368921153647640853768473552309827864155862324814415043817698462895702774321862410898838224511106368846872326180925065202366729016144943914311473944157199209517833651234249302666891330546098777071450552326735932770381379006972987075059110513023451516233447444335238707996092936628527775126449571008204641875469394598077453432571305980818199125467267882568673048621569256530293186697690593234459821139989298351161475703907366608101073849611251584785084233165366278893735717725312031529448615808179512814958210181295418218336421432714510296615380439413465671306825270003757815743665557304572874251944161903624064508498921101786758766977708595246237427981074883271340940221505070830152610378217343245439659549913956262417838307522569152659042652272317030217911916664897935372061324362448233996605501299369341192933557634941402450291553583316507052638291901940484825252794732672948383547845136003355687873838590480025673647444766239145589332785383622961043083876875255231923747882688698134043930056386851159258061834932194143963238439657796199155616080367923356877032543176147668609086629095691676419239937646152321213615710121363517016514970538422947803616977904387911467592641804750350353624777549172316342885734402771763100609702456377160503830144230938399441439095598294019959012926870428597885200656105207725679724519470330591654597226460105061429191926490304433668867674231336144781247422309495075279847092993072948775103389931531642280882870046330545522234313046940371165246228153310701910796179432418548783927246499294186147708209175777776796253646028631612951243240192424396425450955276631988503051361751329899294746408487310740472848255012520832114216296640611976344450500975807409552891689418283084590663014739912150933170740134052754345631466466211053205249470334115774653176196077247494622206867245053645932591577775231052265582183926705037142275841569558733018509948510924488267620340785662262742925489270192195383418970220834102417363571914986241331879114487585546279983864774870133807487892862762551292793494574086509245454021795719798291138083357851163068834694835989390653150308620103710795652669255952510888491639467916223291995993517531199216968154069434864832205129586690253321922288027609414253255850113687991624417893921793943854415208968671027480102858625513947332380544681349910387804235465275413543629105168019460917010154635585152803461466942633007388720977027555359272426973907116574486017066051659846563877429180920870003572197388387013588142374664689478617824329910556681600133726593860254064133678289897307795326346516701271245456341904110585784995864995121963787477112972882422037894372681063758651068007518042279834343330242261883755732898231813493015620804548778062227637087661940059213210298210088323401016770727499710482050821464298259545169801480695184702321412654730575078157475594974047396818991965152497717187742404703139740224092229608940734608248312057436571622040191836296553104202495057703301362553567144856187534629025578230930781384809518338076893108293399767868628726812553605776445437566159595244495874961058002446561774799283245233035394936075816793090444872422704292301472499828546800701025750966416389155714951420273514434497665199860215625417515742909237032019268197365441017104876576741038432371201038553820388717519256731180360415028568399457013147854340958291919741526718316979089433552617885993800021413638142274273670118803540702908050826320081839574823319394788992760314540736821715045755026350773854002229374196809261875810616044596451934092258709031566254787197845874895485290365557719651946892506022737239870733367720680303119463570852486510566083817520056476891947877447832334301949923214138012512991955456517723177490385588032435496318609147049299865407607620891231108659251056877493508595724378021677724112817010266722855765428858150697087381627750195784149168463796932150523472743224310819658936746603682098007547915964707931653139522813798243161837788678797672048815100376707965764266015896387093946892312807621695956358968957513459134814305936573024114062770245225296173631456042376807979708080488730626945894225687734739698988164694346772472157207379906522397854879049173691059704143260423737443068337158786262332987967172982259533606181553054634335739103974181024561697137352574551652601491200232036957722158995778335111172870767420865303634547696036064848805434599315989926049390800901118878455612288394283427284346806579430736673664983864174372105564732290402701132291314810869717999122497071357353836294268020904068424881806539003818256653846549773165907641200187275670002111743904525726972223161685719778776518787868777839978736736022912398276857002991224111684362778850072731082101945461290083427249613195918825017231658808603296950594109098463131244287939173695063562327578816164619084453474958473392027924668014837152126254487183160590295781907998000103590264475547300696694005175723189829333162192025218923439670210096364580554389394764103142589731466408487869086030616069463243957586205649161448311214699486899280449264777783004620339770462922793544962711514249335926537168676368626714712383402444645303400714030335192407953784791751630629516954103975160567806056459223939245236620720787583262840941705746767061893352941568924152592598436187170735228088137966798180760264074809298728483796368978882672226805063437481187478252231780845840485702213056525865563086575679987553519908795720555129869123362310371319039298091626586403570948974406266393031473434409704146150216063231118801909606445688723637338835384562185833100731095424621710553295559871551417432815109763681733998925711020486432927717932289935948033143204496190864647127849770858381214927231912888405358134004484353209977631345186611670472942111441635138154347983681575956909796064385872373935854483721567715315216399580438660958256540124802584183495950377887895717294205454802645495424214238983136309974776532653274487155154203201343580390619930496084499249442921711145439455386756368032728888191613830512573456634058122180562401559453637174785572954451624890368363227933134326785565435755657859676157408937770636752332356961804727325282198390059081217610402231522759733597999265454046624061344650557140905559709873306674873306569297004805319686850778564231643188397836123082036309895733854376417797957222402863289770994491187998408831892773311444500058612173094180618527072316584787368738548835809288326774428227678922724115846368888090385019598269469763756134655360567186104873903779640890446401844512105112996787661173475057317341309522966649550609170403710766390071506916498955831170773748901054911313259333638486427739952507703624960049585660829839341116476334129127724855828283259085377851133830805666510087099099942225567932223074800428718531867440942660460700233944806660795652770359032448357630777377605060952199718944165264789398263858499819791372230005196754941200629806578714825282954010897788195532958769701344231404113541115706568746836849734540878086111299312815345752249626399684783100483814909896696397000565166096965636517475459338180927146525415840714028851511903527070377237754114041262446630585406228557991095403143357158285532650507652889772112221010191162614485615309742618941201570101059942557107695935563683463390163895967625954589535279993738987544506475911760716044696770473063717927556441595826123802531240770122083966044735564730060448204107599325977294375453691240004598823920920180837396928762524323477295220616149616223965351368852883284799936741728250911036039385553895431001343075180603411613566783114442756088737689126202069422291211290004216202219353757446576465978617577799739220853388202906933908173999402343408152941326090725897643740600781592364453128262687951871684782580254188163627126845250141375821858252648310221762502303031308362065696004837818992035161292297666551155891736136905265555457831234445288421897285509172137704370083858119124287005932141430300361042175296605583359048178698142340511247085280149571188978812085644703649075644918424610354895537442547135730587212206674417805553064515934183517200553781522239438044732163118941396576140726242330692306530156661854364692710297991299072916265986764269668881333998632015958677943209046614240038170601246839960556469589505295416625177739297347776414251358721753467073548193114544463855597756768591438604737121906227292149933328621045989784092501309149766502629304254394033669831310924157744804599056246711402914943013905379067501736295937157986257196750186169489643397294440447385676753049015164684504797023976644332021894768767030220800448470433196647508862948405057713214868283631639851873451909970206992607197180515096499805290816253543650229905829227907686485558590548099645465819498619354347648348293523084003042245703757564656588321684385956913156393485674937716984372614641418589062697657757752981888739365564959134555590943076116196073695721713626769763615566621477744893619787591553576725451915594487448011232738264380018050813634641785988564238078168742493429831927091376105598336098507231849403083362569607849885506953587914995077935960851089883888216617957654335065360171836230321193730166677561792083492913416381593269661577715371517763326665968268839551014659705166507034292183762867478405889839329661013298131912000114628357508899363719280424544690215117807753958110809450640184068955163441816151023879543664682750816528404653136757529613191829755148503129028485173127083826954164386310471124013764437518306259383497044515523669776000999579668679349022803121295341349297247737429978838220302628697122464099346585578337837455002141100280152704376685950150193201671546756542435798685522411145710021730926556770280285307077197764100002561637483070333844119639070213320970154790950834204093230449026300600191448769443886616541694933951351519055170014090346278468674648279415039142932836065258118788603820255778426556893138637898965712041769160810039549929905004836383318801520212386728648678410190822422536050295519249610222066579658691884377020753357795786810410019366938477782151405164944076006524434072818283881994296567608330693306430364561326532372291266386501503251768205001250429227246643813965311657163216478513311322401251531109943317055558463967264037748591901735799723229004361062926670962601570483590936649266669286087279536747394694074263354786622187150254348599031894313325929986735753466881059072527087490240079324982841234400867624186092766419504310489232195375737496989312012593072745856481680311458186792515154409657139287863549422114460391829288990131417214892212273093835322143931689219881921693867776775463695818327690736430781597886525273980550071900321635225235981679067971069595651990262449469323732813941972697316904016205765887048420265526697281999858021229208489131757592097768520074583459645585308845013207863666533820241910159263082569029471990703632598190748667446698447236154437958348992216033982247614395254896576235470675575730098212265187643581073671124309608811192608056726733538799259984939359436771641975609631294576811576269778887441742869035944433281696953254712564453127474230437699906783695902884925226723329756776304348183249575198496591588078579786285292815063861830476376086439365154234426432363384773546913283784319130915187254973478185612121135465233707124104434726146306807380940295340503480392236320312144292337777243891113318299557642392912728270613098919991409917701197736208437752202218493056931729230718047570181268353083441832283886411889166521349491028127936465629752178301522638318973288706213128541024395957896843315180713561896178434214105368470068863752753122228874505995921490768455995518908430894719000857245299522510756746497046364472543701275423006589072290823346116454544637320682501943921943724807310643297474543988910665601799991596513440960300399841862821255810263418802237843481341310579551030332905076851608058822158374918664166834070610102549414160459352374570420822879536947890762133181385594760690204154488458757229077450813866567199676051338230048847411618225368047737667065576371539519084045287813086921406953366632522934060960498507363896171906813004894738944096632268885733361293188737230727433863451325885968331504743409018023847698202013354086969603485191506599272984741789086110109904037802988110819072371817902601776513380677643136236012228226816797008455560576019522178600061813446729822201735796045172220641837626463413869892835355792420192000018574937275484252246675364447290516945961048714485356625721883851033067406504987790889389950247255210104855996047319822859566957262462055784545561086240571994110422986888080985288476599006732793216117944484373136046753485102342037197037142241290279711709566666747239945051075940329602668113305336817239510339347172389029630186715291382471360716278601623430546410733750680257460350019855506823746561310590733370802785544811179563573739912230897056513965039341714042869161356561262554971277608968401284647709854660773499719400348696217557004479743904066090271125136511706766686909964311222185096803366502676218190445009562416204858032028457390269694474716322082370990976353163216933465297402850143712285622987347763363128666790901395899475083741973111855350889257722395620822198225343089085280791578338576591207331301400314058051282309540821619452702643155541521537438367668386572018365346234106521537831094176233087177636801151508866647617545302759303899945588635982154638820838625980730077043013526741094578392178095288700006892307154238615118684987857996531666519488474004720789695998326528533046669120759764739130166764900342719000078229334725523891347309805934001423179361925840339335036656315566313645870812105790102210110381645872825269206187611311729817824086592704911811497742445361145625930928433576350307199854903060025254779178794317102913070809736376571676697687093147861241529372438125324255505471476239185561511899656686894024069996731164623185165217910502779942101668101794160643211549550351125769310009229329839806773419879047740631621948925358251183477601523894186292534804071685635987028754265945249227873689129276168300418416217785663726158387228602607480703618814997904181281835332222323214403861970034241100147014022109155422008340106448571870659700928178277039560899792002394532274477132452145721559312387610656634492343732489565452873843444315075610911558412224491254865934022281999235302434159765745840286031613702612796989191567234860132347381667990145753177225833900257203426759557424791203374056620024749012061946420644504653991474598102094374993914575232404313810235065479980827910662476962857970190059388891659699341613610308358084365496703863787115984451516478112312227291621484037996972583162574553317726801457641647663639855579661365927825541789389490103126801416217184827672569621668775479679759650539049123541654636665938243614055062833003350029973808369893030511783558127632056430375432015144221405708104674361733094958222645394722387542531371867475627524451913154256617031627910989407382541694110037503564403062914608119158099811798527615477828960860680179363204876774310244633845838885148240568785945976423850888226757266624044436955382018460595513642564922615381760650376482559176832426401467943163013521817531436132494243815440427637156790211616915844587583954744456202433851648564470193201086286792384831374017544713347114951770708149791647665540270322244197563790331901378900815838179801927553138235632546792746190540428750179903460158624727935221082913648764536606193600226881074499758239701343502959448370028515466107750638214237595401587021171570575812442605467490794537041659257162222726639563401839245370625171542995563533454925262538933597925971970116005052430268941658995196834483347897140537010355241157007275083695129283318757269223770252310094784619394408943358829375763628326339369902894748664660786561902869104493752013801680094160398201931490516955201225160892806786786630264433052571873866795375167942046323365189869277089049419393405087241520821094264282079921054876131106958101939571675656349121752716068626933664957343097804409073867890373801469892733477241786649326657246924007038685826395108353189636354006083176562856592758403987581257769505119253853473946496032667886355522528994699788737484532685324818333131304612046355574527589891325696289375233006662402968605043684574238274519627293564328949207905558039882853722341060830361391512065122413646336843039432726405806475216922187835213607541980606769981172710221040875741380829185844163081684447708501338982987113296706251033251886160034808923968912191426998562365613332559507290675144555504386062941781537956092764011024626417849837345232548092133753751700019437952307177519941926115765926135017847049053793560092544632179317716713351054663368820787135583000991908797026493877197258241442030437101875781525493835778744959753188372452100642133857040998917895626360384745446934493405501175721870914257095493833938226615546294546389689504939478843701960471955457756804653684959715021757816076976188156930179978158479582316957638298902316294614654832830251884252241324508066324067790984310224685356842900063962882222045649298847766942999185480091867898400732636324531473721323933493475014978474592724361081928595788571452205252144666883461640556688034812731340905374266054229065504916299152506482432550654289870822734965333989512781993208935630629683686995092753295081227673061581361231681487586722467001410614012852117183371382123171234600838660278337144309164827246383230642224688753456844076976464549413725552015369204510485026951750528741258168193614336545477203627042842489476536414375612856287926137404798400161255370269328437241054828050357607946266759826527527069527820320183494233203075719775061034131435392116129272784968561669643332440611587897414660432289523027417422932085790654685456208628201151735939079096857651756745000103454498126050861092832696798455363990455664943034116745612939601392697324870077181406911134541566044302373540634445597770925605470471724338327835166156516219874143535595409179561196263927036211014164747227986221671394709690136466549593659869381112675162972817503299723924717402643317878530487834120426173185237815084342484036003845381791168435194109741112068362119448877676292867461607942477165552955143136257836686969217855533966182590602807879338102266631060331293405722847982913689492300407069126707692357219591231051654330424867672709805917583816006744986730565069213556966352197482408299593368488193800889217014034309663506173330076476242776814096338372094508558761298914953544629929635330149896098462489089688501112634070662256999662533655566587516201892739660592065479339068411728479412807306247863209448169975725304472128753318341017564250823184634184891795817401977468883264540516896809891638700555777173542846507852022815119857480766619001491799036491310704680209927527622529637407469832593787604327852747710139805578791773409107982364223094980630429225986454593358267191550412895317939942335624532159365404804212619834349653195498509202794263791815899154514543982578375080139712187203763408357314923370914057053221367191929222417704474625377557744602784831911053157129274806307468639121116538360438530660127326952936677627997995868261419220730889653752471987454576789526514423375330681559493816881691769025678645300108166188032712728684108625270776357301938974885383022014903318488362248620238940745454985428748556238914383857539195411605606026780247608884700813931795356199096873897579620398554990056990962408027221985817416992040025332030770072136349147033684307719034365512168027929584709821954144899508282485026746711458044550783009868581105000037447423795222238409477083263101535668263058483146538981324303974203725352052407904017952237054844999781557910423127841837311143541869761408616294719445864545375510323755067833798367439359210055491361285391437659981643707087582656671628430042983832800357609242437197545897936183270739958526486705992819315966021844803300812372736558975627448201222158895716511974724791896945713886470437190126962828118634587059934711854698670943460698720788177593634418080952416878964130848042303970144101356998055155103286925351707794537813115915502728454139297014532889270721619315612854142328920737370275543996443213488191791628436220348703375853745929614548564638046415252374682732240887854661542302950462343408913632446009368238542903558410867606009140474855470276091841926129148816025393711477697303204654397174352786062387428042527066637842624203877915911257138693506240278350504229658118622261674943419341405354870449125377163919557575294313058772904376386869216192553348312709666879977408049787114022122178771217657079554550284996036315877638491067555078329530888967300351406502910450850351552025732184693033710023611462176103959388106749268022926833478271251931019385739518117300131947321664318427358503297736469876671195640743023491257674440497787861993584379149464514473252981940854769148967335044573513503511321246320084334335936511756165654883373783032410781959928047091967149572648389581813743927679697125107811308623685007057204280076121127894347682993473497768248162570845666758490783149578845307873188351271113518618095002210924804150102492456489456979183521408833620985310277991406091804264722949620830372369521154917665557816237768338484203383747614132684565419212292681517722267535677267761448164341412318498037305094519108997471302276432970588137573208997713515317554990817672855279419539050671055677272503195685637853760512750764959525231317798515775777635025696637578354098184939117653085741589254733084228610878376751018255123662277953397832294296089990925116201483819148400694095612543130713000787870248408132516680937695216586889640901960697094508950051534642279151360877091859521590682802775731741266892267247083860790495048754296223488222211771178359666924296252719748508593441648740091701070278129037163018198766298578208213983016193682712191628815519161912752185169928189858449542566559723774526804275355023508131471780980019893976913444345889605804701692922631232448934474084040556046765781580121829922675761292590598175996668681135881310655892695475863282140123113950078445917487803022413364741002033324700838663995702735296848710595542809761151379311904760951040281781923621266934765653296122501275032215039358831605592187884331631322628361322664502811969223116407522963382753025335957184636625685405024276960355444508092380728561812913017101431919392011587758745543048908410426097514725314353794352751187218483435886604488837334568264701606297852698102051857449031629048310742630477022893507763438049028609634309953571451696811762372264859108300995203062428404194768525279646796220812100975969414784970687612967052419465678618363209207654044790410026155098922719162687379938318145559510855785968023471160343397102845151986190391451311495198762901885929278946976823194290347447137379105176974690014025368954361286585683337580749134032382745658851184928999219171794791336396132930713041317615115335490296395715176056581548341300401616826020989980508939085008147375259313583236615832432342065786172106892122629176299626908515183670912075021025679432351145418755912530838261383194058889692567778934782131442892097686295802954834382973244266601603655338432858785744093806241087726996783168934498830642716104495448017395460385730536666855528449256179318791384726937895749221118500255326755012487146070811963279254933648304515771962263845462176890946239355997992576945730945274537822143175404755804164062560913472227254414840971625767756884014277848819280496719856895171468081960944640305554472294924858101266645911812550260853197368553741371939047880324298666239037393353588403230629862166717415895126511310529790365789447299147620334967453555010500052388995810660826638805429080917768321634439847151684584300350912383648536181749859469638367497258992351713564018462137011488484734422728954715684108881872072310022907314499557155784622530668022513300569669931606291503075827566684611832119922224494552274080547828132545872933387724271139407587183831529209614981532279871384189766333599378571862364375462911850442121705929547129695382510102662727597161461365705408746999611930710422858618571255212355327904770325947699631209503177007350262891470105129419788742909878653643882603939677343538713982911958663863211510575558034365833232980164711705642783760004990911868245001454694546292481177591257767957438446127791541810011117098188876264967396235940381710142677290391982863504184629583200480709807056379682054402307125783746733647398899532921153323097498138418525339197134615339595297670220040115239921505539571180783084517471901537989497161378064058709798165086569577278269899725714664696928375894812901164000509986207908372053472534321098978259525110222851896123912439530824652331507476005579115669585596540678197039309206726931472677312084759727616164821101683369049229572679923725393511599631063827991015348629582346256733964649748895731707320531302127930589862754302935797102248148798735970459479739288606796846758586620048058518805417778095322736983760041133688846465610524733268058389464523425456832899889347579131622084733070765249745900097297658983457762223568246184947033528566852981372158672407167082056471848851834251022742985137200210918394602263440713051846959715741772561330212819188254610519232883664969935222577258010265712400338206117142513328013979939835230563661732966219040953167306590716322564039461234211550888751021776562535371841228117511051628740845942916959567608954704445450060274486700997768954252958923839331519019334146066652428579468852238700356907743701644571198077631682188404516166837038475397207549008145118665406672300369612136217462220761975638353757138328886309415187115140717932191063789008949916066434686261496114189684034014495069422436549035920568279104706785967766051317365212066131498949882664783140903896773136032942968857061578626729001061885401018855238025493394785205384395678583549175669952401975308962026926843248239936922219504780932657311705246235555989320791855926100620386578662072889834821625190913010195005762315419866620407771847607934329512481602896453842916117366084087839854160184240722723758117841842576055109741782262115751940342746743192316788514244648657041678893355274538148756510670595021487715446521518667699145137574466743821475004200107490868019111528169584546725099931612267346479969538528242917828070628338186244930912971705037667377670424644567381243118518792013848658705825705043419653912663182974760373822084995898746927221039753174858744977704537624960534683554446484883833677025601752639460263423823828789194975272499718169666637922141432681442568016940271141864794983004987494171495986226305067502110652522534226500111354586102938088495706265153388770090770243051773107597522757143574752127370922077068852846224843755005248718842056729071495861451261061338176748175798195035693048013822662781720366082090885153068427925653697089445768299320054336184640295381006473578444676069638833782007128873930453373064277352074857882403900202843613124870270106796032519733095601237655770304616421636164635984361862287067601638106873904285102454567030863925037788792311062359014150454736114277969340831194108319977809527640884824207396211536209182997217733457509798210723860426353716534439176288994732729075761182580251318741704043783335237246206638864051672076642442082022796407456834773598581283700825418754612519367640168518155132358644277871195617731865403424133553344665646144000000190191519431389913806981072767484892197525613245332211106076747244925867889806228305293359720050656156929584407636398914234460096416254532014709471709785457043702737432825000030171162253763029985929995638866060148098127421769401391636277113408540905866186573228085793369790683854653858011496541509437529067475394234178214778898305952598827907485723619279214462564149324922346464763399831929393172975021588468580062154062148462381488256592211597012740162093283032369805295427816160277123086305479933458202050050169061519150615791736015091779479533843945073253282471407433925418714487082856250257356737746744404413964820678969798948391131699618674111174329040892926974659832864517978670761032589524598115030706264683078571686439980571253842443771186683644241827269267784216362495433966848285144568151047542530174466524047165941930701816707847221161710659647853861307123281647445427992050802206613998556166116618428697414284853890695135088044271714282833948468217792951638715711992356417865201653857437318494448294365926693361099217085902611544400609798119324336176009018034022895297704556901342633225978822119876033999417886014134329016771610458893148784495365981396714013703316987144314945170389861625593984482921844864694491244293496423290549998718982218000681468454063539376088195308420445520576579372038426228324074443935512826820332674330568502680507274626430101208879278992419730676445338262667330247545239369150958864538626829378415376860512615490824216674884849903550995522796480190691567560001021649066496096300272338838293726292091081020407114848204085278842582068499187813562523095989859956543220437972417686006822322649215927224645933753107857545983931921178977081192455813115131620250909932465607834383650862222849976711168716475320211558589448918554306057194251228216695797584693726955197893036621284753642698702097604540091183732909736685469055822708877029922754098476873507630654133991488269886143997352664764764178023139637727954710345593761194435534068292279982458777636777995528256183784730749630638062827198851779344954397348912161811352784671409928644281111340229621508327668113637877789203077898162050144679545651922074939925941307043421046250635809639895486686097045067212738046318674609927632693412627013324584718121486654838762595953621524580115517996902390680955526522884195628957631852369702179094044419067654055883938895615163448541241695354432167900996389087420569461561467818471456927629588907917399280402762119148859036896854165406794757566964957985806537742436603542172526126187583486856987098129542270809320902080016575394843745540218780702439597309482605033005162832439780274247664892542676343942686804296370304268443413879465489469294595539457273667332264816275557814565971828264789163882514811472987868094164461853213464571000459986041395235376384036281573459272224996205850533782383519002659856359156371432627557913906967776061784768331128280995804521216077934114534756747333487011422291380503929189038925742777226120483334905107771266543585925260612987305747920949965086431855196612233522592659716940131024314964476130425861424299918800562108133105918902354392670216718794771311790565258830546377521466459819752113279512021928045468825810850679897044841718789821127833189456859433546136268775590935794951281214655994753174403644765430869836565352514754272033220640236642265733686106736210140003361487243917272902322431891587879315701475822314758557383030919106431640299254672563248539799655322472012095032248640525475960954368642669640132122023522295954150801708286910068072592793039416455003772744455806298825550020281986707538537419196067814968982775862003222502655294100470276686421795294794883374704730170773089731700720931764308490206080340624953087408080619147909926036808322295872872503916757124865534418550307898744868508223059342833190531212348127752496179216973020168924135269468436085325407218241849548653645430721682880918878734241893380882757029877519251219163196219063409971555172527329329687928531216251659160304679901192785401032002694912475381142498598407741129534079401029335926822064513839283000995940745890396651944605983393271889929278169784695270177953482681922458013522294640219957569756491459470478876294202232398331757790360301706104159263455856993349281893993249110856928933957483930617426658173082843458014152290420321515207747696035373617029771411405239735677512092487797462056913112119341480322244846019881400575227780164282509878363239818410815815248273698030870624349802537805129011353742635163057218359328993067740839835693372846783782456192021870318108117698104068785776767749073674667320408860100925350771428830224727393693958541772676880937453467550616099271819007433696014116415814948528703574207910364922793235072646533134995216547212489391808195394972079657652930179257734017755729906152618529967099034171038330016422276762164583335318018740198299489597774688935358880700134667484171809938805732315071390052264881674199868371463847543884672364268462747312481417849727113764146686115772100445669907081409247016906492993981084807009091547616881563673397709321890426445961093060265661329242197073092443187964333469723947712692300867616794028313783916728252447276147622558835314519338839085114524491379666094556731933367645479336701111708612486198081062300964925236253081604573585822222880316601843242324744640926164950200080441151292964248822145051795148914795146833358240038695135309387414587063997935943425408675260768307477868768421024968141041725906461177712980485420200527596248549616920914934014618356503937014872897598617424954236827865481957311151354883105622308741112912862819827323710034128328550148533974255476529224355342817194475076039310930948068531375798801259652774019433988718834437750892518613694915241345034266659199829167590077588561733857370449212810649107322739581653235685049213590948812230510315594015546801904975968048883955081922011448749800981376441373872030633349855557153305614008328850604101589928414090917023341563249906401424492990626603839923679065941967453328106888703589055544141828795553063231168680383808003340215764804069644561898504926101352410948631001204632349460234260414993693848417917896275794368309245610562260496999432037748353214531070850724024995428548313704732747422841645271038735922898592456204784851192430272948938224197581749008291272129350521960754690072455922281104432977686265243314494620565159157624636558931247862187032253197400228935311383769794751902047986063939106251667020148303080624405738553486801864544916606570674915735657397046309269606109572111248885682990033155772245340137281851614190657027259241646654681375026311412878072399169124145705654291743410099454627482065108235730589801068853377384371071633383644549979534094834106050479483582780344866910276399315700647638476819309705044959565027888199570591840031640896873679665867924273553557718965347682621274947617093501654639988880484435514906413309992878290820793306120369130250675103051416356587833981359232126293603545411939498490186290248784079701096984083052176806998934569586276327908198851250300154172155473907743670713932168349739505482025951164766004061168866001149171477831518794664712808796532778310074322499462171322305347898232625278768276184922713131416490042813336204123714006932767993722739875546381204865234818175068559294270689645848288253433264238965707200326393731651597362443278702149061149972443948645237446297781310975945022723813907730729306355355609893047663305798975507704691513336327396236615305215682881153026825240097643554956484905478515612768094095680144521133949907044068151620577551811552291081289278284221455781522775351741960073064421697681458046787907861639719841044922547923060993975246462416200076126831386928845847433197991942857293476558238980575556485206133463138818324618573019415455183784296540131219299567275187053173089958133820494638690334020843663905668713560968697184353898754502993423580575968411085841267221634993787268183179611534457459380096524414345793097547053783659015190074268259539560238888479323641105876178377833658542176726702787258394701728333345211415605082020895677951579549817613154634844768891963888249020668455584911576557927225454279589504670125550759950625463922524785396992422190887120120085042538475125243687623808304600805964479675267564433749309610867905786526145022010810377057914162780246882898776081954642627790812460943004032876151837416405347250418031551073194052712109659337224190021816093018385740074552905706588844547887735041370627597814803086476141145083238636997024527712777863198061274554397051571444227940581978175701146930332990595741591328882644291928618820132147395925826565166137897397681217003889159411892679965124289749916110091017967812714514504375141199438092427084545784774492190504936533126853669123030742099273671350788520157886021429504185654748577517380051092162491820528655974110612146901319571640281985043667197630731590800356920022299260355135048998070064760323144124210569449401360480638400834364596814393316075222242629798342911696877344526623469771868150181288532146760381182454680742727991395767200662273480934188317829055606266749716945556997737766180636072885206169015204133168502069220907774138344885825616055620912636150111623398311420116545998448706270275328913096229833561860225018659344421719569862578982359762880387076127399217648531280116569046937570789202101548268584816521572627160283004885214108126257454254556266702401113757922523798030514419952607240920693622300431362150444191206076406869738360106811686523628748848055142267639923876561660711064867290872902065862893449127698674469825779871824295148225230168980649424708806585912879281685925873848328420885289057424715764643855793251938355356763405150655815137588932496181177704880417004826045993730899022224587975412511280335274985719176306128552084423271817172258418228730659106971774736804736768901170897706768511684603413229502783028884504060305262761154985577242875057390720230226229649307418108584890056107746310393592280051195442568752283231040523376902604564072322980374519920503850936230827302759723376173322608336916130511102565549263022115114748879764572390841161367469140826263475260177889487798633500675108199404771643126165320836255101732158023835986742095470759289523237063958896471873315413296344815363143701987593005671874893514063304139070573185067767197813452761920674189822899655246544546531152081287879887179425223275952564048659336973891518933303792157431723930242393824822771707044196126432812240623348660536677389961181210820554974213556324930771259008152787874250956878751718319166419981429382267906799045344234891189476298571612564181810524740837582741426900319841467740189335166428411103423842604657735776147565489289663374486421959559342998487451019424587964178658813878527886226585908856652397166418048837531025612951676130606867454632197711420901002007642163047332680864915113475589992403973905968808271457106425316291228871379805342843682123315100138637749571513846433563765322180912169673382278347285523241336989358486095265688415115768892788161277059386923058305623892708069816357179487289719698770606350523731793609753006821700848732612920905695148066321445557145888512717033821767605903332524414051935760074773572757296397040102124047354452612468979955283687122625303184906571383776891576218303471347314172684316001356806769196688167191955918175497577817981673237404196662966237903117699481670820970454795789448140801940230515741346251367990949380901575587840415742546141473123070417323000968298799062553295216111373252980427465486410348360259596786886048713240610460333114148936228955495153012376548023677662038849088827279770930659399584231175229603934701441788495573602858223062604724122779723417058800373318087342224615606824383728772934662987762166176728887558555170070266102838229369995118655211885998038474200373854465343873730282916823843921885739553509827699445260750430335649698181433188943532882882942782421233552143837083562904679299756787913585524590241525777962262498261790362792849126644102290706521449747390456014925544103626476501421150660330505218201867150549452869448878464254680381074094699201388679157211948241543365153142422380261569405237028749401505557826040562329418582626987987402337956167732089961109759447537843717512326947853658848690002073536994694704389051381716079499239004276607028846365500730932837221939909156130498680266734122953804026348178337528871565362596907355079991948456726352368987684295411629074045993325149212544174226575106767103647540660769896944326861228176658505610685775562272867620489855178197806268790884336764510492567885314720907983635668511386432036081954640757112999123606654212264741604063534486172824686883864884647669686579892220469070944934114587567072987567363722824136219373370882146521614477192941558743633781043592211026030952841096972234954823890147771132955345580493037143446246034202022323905781849484258136512310854980672399724521234197457481656984931847441894319759364446802100990942471382778933683881203178528279406255633537527100529743836289847540731853106608526897104926559381813141267726239536603434192738390539472324403630492788208199654111532021458413155017323035164174600782884763486139260595070751439594042100350454971998394206061408587818176828807161634826081898842947836293656380371292544139273861766651040784098544213124942916477408301053304882933800716260109536042924727342331345273190430961670222593516623842477963198948557803925568415499649572723142116075914825570650620963493198048686401308797601619130263178144278758439097034909129027926685768701929592316520937588561737770876263923627183009359825982371051755571803386262227551905756022733597908170433948283065381244151614373348093395842231332715655822710911868825287297453380478504256308649431568889985077147278346690418768112584856314590590020742578027688796039740025053653812461528951747456000361510685628649442571615101995417870295667055563405215394252894474176042148114220914988154699588465241783243437563000164107789426928181575017990218955488062157254246359265246688950729420789578087979109851779583030114680098586777175141346915869197403994616304916715896148425880246499773703475420133260323064775433377887247813043572004186751464169804886471263795504706016444838496151086763806439001625375655978366188255572271154795426541169113097247945496205590307411009912895493144342566383918208684113293165030587432001377824165642319044530868150770358452445211231155738944897305869245882857641430606487505349060791091703582172440100050031134992385065449105662457671466345146997548874328860605463808014856434218651541598708014281756154386745984688501749708287164779752260631300675170972054885169678374704318493143134800449004328159629206039888286780180609472244863926224351227370157710625692858594540816214412099675652887192065116990105502960470581497150922941939420496002787255666275931754561004846102855878905990733862786867486913568856057665367000233824504478050383004284187230885409898549363991787120899263411669534480178806306204709928108564763319383673617071304637936151508798815108266530458404263251473481498771619691265549692459778069215060069367606522675683704594165429583935044270078011689531582636673815372297537495831825401211843452537652450573955371387379090797147661224322878046187808976371734734915745406076204125613352031258197505345954500467729949725056077883256476619197052056592349932943750259319711968563620618045106744341711703421217799989241972230725339906136326959826841597523640817578260838060284799064082544166900579148268889722161150533389434449034272816000981743945185042487341936151917447309720722288378263722746346310941451488066340582399201591660976201726031709804463992368375750012456517211735753921682129369776008396622653551170923668937377317026450032068143032341333326282814310854148090141407171809233675233800375670057418069947584088023375816080971996932328551794828287395306830668692079823098910945083324992975440842095446844108346996723627669448188851862381218222474884125854519054863782469442098980659222153598285130865020671277016454932446109420348190724334103046125002039316937459611029396873629373547507185057765774991110946439223781446350844259609045897339229617211293277463080896150950886141055557829237378516622400683442083743333888582355969226464338410307475475148789934457299206863372862128765227744763630602724947497531576351300891984036450502515653109638339292789549527585795774146332935496767926178137088498572843739052095070184117698934242035533723556871864574197638069552716523466982920203854382575296185221874209717894038415453334996250377492853589204457789683048363004022442210152882790384232154816343116681761721891957711030545917262445947948220432571255558608189624802208347606774439281957301791704465422849580362363963877057020847107670975916056781941341659980808913035566517688447828263196453502850678947412036653375268185291238399453325950133018387027190703455966357523288514597637986260768695047173346448478600803570740172742675448542352709077223569732000213781211997213992595905637691891683367517169943905364007872145014264551086580954059332400340503383791876570401561644587449500848328820397332079679016926417787303405316156850735466070510426999622538491380498517951798728152893844926182298250132966450081412829720916024446721270232194499860230241802125624749912807989640486922012882063603751736318420158572170118430098509940134746044783963109559452417323923852018048517675316026154968003871086052847760157212397314294993507556858691521868544885891487649425735339165142371045513781442153260604469224131794626324772711026107080479816874014633545764505145117629014420835325725603853844564723241789345972985960211887558601813851816002116746460205807411073677601476775983195673000650846155744593437874862205107175239339516241666585181161642045556581544477889364057112404365208396507795167829751659763821512256536335830495087691184334891634092586344447524446148027669383358583314079557311896868097665339134691110361498049207893520190093126313964533955906404372557965176617052908680013634777360300514876583619507680985458833011561997610974900805809487331020590486742284221421389738046665143072051224591408857719140788363728580666438989403051831665377122778602920746935761481171260615671944266251882381962569031417205588175129045710022410054001912099701508027539563991271780230813677129579535614849247770800992467516705863267604718950436385836520645043998708708411368690806192533951715226783114912081355509377894724940935836036344906127101486002260854366499257781827672938468125068023724347850374528173046763977990619886997148377618244102512857461521301909449237722866931347612648261157866676444707010370245617420469371148024203265401942048761445683212245460839124837574900818543616398719144635620578068248187866018870278602720592212287622133361267044472719224099183008350326123960320263169415480065449872706792512475155470721578277841216985811501355753706998376919471514613351148715252262940153092107159949109626721070169864321067192672783053290739596779009697899195480525739745291992683744518929245051187735529212738540585191340885351454801195266380590964373378635291416954631485174653474417170991273279692173495306780167741562639727593716313060659312811530146668182525288650651964820679435547082459347853421802195673836112462123862460746517030237091238715450870324541198718055442235116178845568231920353962537652191196438116287141353477718775576015373830367148759285093056034982699090724509781098609953762836865977396962504204792268645481637178358243104929883243962721784412350587137444308858750670833303804911229405279569109760159472455644644940462179680229783198013096274763366493124379613607551494835668544485095363776880745010010594368134993935205073224761331313769034146779639861670966436560650254011402707380987552909078582356563206156842806909397330329506315075228826184939506981976204142307208982167919517820711379466845770087833256050080084375779440729001620362980801168533775186862455130804871779031238269649427894025784517288099937292487241660426094148831190507548347471660100116721737644243570953101008987027110507596077384132434896005607209933246045920399161369802836356229255480701959597526597342945891054863217079323109988941407046343072467010432671803628364320253289900067229992406831447497735729107583850929449799549070999946549347354097889465571252600087800620349260823912473880536311020145913381442600270831116094699135523119705844856777096606505466133022104755294771849763993714708490326818478548680845534141712345266931602051320104467846567826770766848013633682701822729500244757992506477569634277830692602127492371244133001606933810676591748076762616034066347748268853295570585659108010152648114348204271056218724093115196907864023205918406257099727098938338681233153743246679132682149447334529265276338477858075621467393646073204600313327543691943229080148666689186698435392957196831033115807857813904889929819208206728328471523853866633458056631871235600030565366719868351534892381183857163401433245250489136648245236294155070700895853646538660027844674124229927834415969589307916983392602149516810463435113326548155794727046333980862187605951117342100193608983625208400914930052658437631507017530634747482219942282201743511381086311219928018133858838646741384464648074229821809824356222042807943818776712147338651343110562754517999341242110707304967059846465430535122063756097294244205870487479710998020069215276998162111616805828079809080052975307880972719577117463670978517288770958285425466692705569552195473457847430896792056450173261662647788135429266574799108252174924436784098585232099969386008376764510962830688658431830725974967311502766408875687913951314726789506807141763536350761861692674780493763727609702401263217951774325473651676272062265692575432775596285907453102193587355741299525017591749571882135239995027181077860558539767425343479674231912873398651269647718642761612087116671911602207362929377882021685904205104457930989398889390413296995617136606167542058242407677878138423954392322594201353547041111828787776840629486489897867893429402441460778353479044876386061322942819903262855981610750737462927186324150614091303628900283312082002722007708203775456695130815076746416089016726544520918582860906851405901139691830082089070994923381819284609237127894640603982311871685495362656337217131786603522780792249027836600742417078485587950565554587248346122922424646146383013662004654405650972843412331704999037553825313098887202829091531095802885397422387065599548267326094674498367758902090911431958050361261705437193338388380620421103791789868923316944573583625950257675491987722965071923755980431867973104317984658558743684705355681913294064522325565481502148450880135237007124409010455381555038927206772171253877929704930189222095232586160381478391292293309150493300161083600909763908731410541112064110177057122993715140983627980742457285219581450174793338304440442290944367817945105151232015220300723835354642191376177252583832231392398455742692448082665904182595069902716912371336730954405343634204261246584571028248140800840941189516025108205183951590952903291312131403243568644303976307940431030060116181315346668115952400545692255156735373644074127945392792817443457637159536149965965458886855967810544809950461851691038236560999046140351554733187194735489747215513607894095971579788574961125910586909653508743097017068378682410042234764237657460740072980369006346290711435714829994952969483491388531659215259764252896284529233468337901942727916095149964211381002623780208262206056585925646012832446359477174175931310670942246586153945155684365906478726608507473569504007115089667826145132601289956075452230054527497230101313012741438583809436424432290097604972549909525625226108923881486507419744070473997947785081434327265794025856781437995342205254043721088358324752379442156189047186687060588483455988911326168614159252265283138605542360447207109347866146410059158296980485450822831143807085206967473222025529406475176494922087047233443919083511373636741465274058029690490830453025115406872326702975989138581834861017178060071191466769315225294766910279273889069868809957513485261784983215920914524864532761498667429959502376671159328660439889035130733794778414510384757607496101656105002657716761735751489991579320178293983765115605989137388850228451600832891567979741165422065750408315586536266403211210181459949794065029912228250302108023934998147334607488212103861082480746312193883537420937641393109020701986997957228636201507816795321765586214444987773986992423680433895527197663607194363618766759066794952063287224188186351322374801252382201974510707254447573910142524251878225455422932193696022511608595097821308327495315351450427166683296970502465054603648284209460373650367013050832285470866769987551666364767574170448939855995048489453257729589310676298440951889937828715306570839436795738436780767932650878197982931909103774914540578045955305066762941915698807694646472199022115814956330783646199549328728280702092950567294584037309540110333792905886168995361624271396129820039885805390808726934282188488826382034159259659502038023250108399962005966591760548760787367474533439358390125025898868182098821855340132199846786354073609766291557003969533105761985842448185904076470922101046458263677740174063400842483622615007086191818350593552389703839907140644738183116065993014682395641263680507372767758152656972157943564417191413029271610276278209565312601521081539547675757207186087023162255285587462824601276447546942642966088450372292154622204445940651899479036632962908966424088814992902017867929881252015255136098004267958312958313564774661241599416186558253957785275508486252928907766021805162598285561281218214971649556207198912163074024847461651586513279269701046027475946888368241643356173538089792450439540101902492869740384985713915637086350846849592309517083719105061125836300814310556888760093740367056150514912495687867230161626479299636196901955989737343320870071354220159980536996736917056290098319226660035583351290488076277625199331849329501395660084421851207966382967872113275424318358333557952915967001968068306332972593984238443512750794368668501914800721113464532132037400250202858919609201607049923129889583633368919352585303970326871244212440301631519003012938752319021145353072677691312827486620020238583732085958193539032031969838042593583574760661928117021027936380560726814954208993206816373257455595466275055800448404907119072363815148387003289299268538008404568682345026261603321112709685171114928474315990254193627592322549134161418078005233420295332432846113927202561366298382288763960394270852671670677435903338347502661720386998588608181313509820062987124306482347172768211488917966833576296139958484444709210370935246168876546388926890015430340208934817729626898145540036716594822093751348342364853700894215885315560560500997710890802613635810140517047064701929567254963567060739999779455209014897552167321547003358770332762817605514967244942082109201398420810600174289687868151675711837966937383122375506799569018559040723277162766046593495327921295145781063100462831694322113555452598733494784281382559327286204042527377807017069999917708086344523732840882922415699246068814883351085571435920968607411707034750422340360224528637104349153170916234790849557074590601561473425966670275187681883169504097171751018984783957326816690174614377511153979963728233168935848508745563033429975048862299583850389503606020534558086955250944413383765968413462425080051708379889688535047126242977592466433443826388518906970436948652243042199401736388442380883169765382914859850814482265540899783008653459072823410326061803241425047250194909431980075740911444865008789774242846505562910362600672170472798166810540538492952672790437330507086689791629124476647930199390782879088471956029244018794440382791794623251867830795020713663499653112069968965272828225091064492174559601935019305945055455679772989315034756382592414067055430476832819049450067744672120276781620826044086320083283825706555362442203292189166404373610693441876088913468735395860124458064100373961569841047154317025773313823139139451327021469869209369555876316236064796549646159116020660619450794832269438734845753327238194033256374361678909242317455609031083652063637094552332677607195047454620938732980542126364778612145126380082765105361162174617037724256666266584690352984886862017324224184987974198544507475373683767483044712362267567496986305708685818999240222605578509794518559679749996433546752177691187921807964407377956562744393363872752095960600258486016111235122921514051453949511722000074955632030033880771758785364580033819911866029479908021875987340097698880212276248262751976340671143938462077341024930761884586452107776744538424257355569911154081864964572540386911613628187630611100909517145186774193280082285915700975315282964308933650688197604625435234539024557442033790941616538087583438449509105883638978542131092777992923687504535864820938792238047612637013603307057210020683331026694977651201030063408775688250074656904022476608513784864055897351320490454502302463834430745551285054488470097539498538364035823160071651308179911334791373305200653939943957972204654877767903648160275768688838238395073771184713923287690431187496033046408244934806248058914037867394830419394144404141157183965433233579955252726837588725483134090898020861431944366413222356406101442046829991677364201012090018498009539927355158685510861867303584878539912103768081590695968150155483707284873468360786552877812510103455604392700577893140215192260973998909929672439669810232455786847375032034688495134207458742965068054311973810817663155195687353404074198129574364828316593431900153948210239411421400367960128889647395797084032434192012077585100868624429619494067634520378702260275047980346867113362817955026559808980993467389467131159503296195656427014191208358482070220161483373490111715561686913081719505053605544694623980925191646272620116455432848477869541989431954962874772530862103186895205660746758347868919718025083454131326777005564449102381654861712609616832073954679470819660733230138657142835297080730608881106933584916148474842588835869141245075978749750153209080945446280229426954608846041024651516138886141940717864283177957942218942554849827479443049403825464139476613019729746413216185493490276018515113089928343960673372974545240846679831433141561019667110574651469848477579403881193523375334864060618841313077399741348707813461349373392469411369648911463340235206258217183155694415042385334602435740622178969390415298484880111273577252764401992156330580768000329879490400227636117026514417273286533862388949047030158757149706902267539476445482576778900548154021840670730274318353050620757698338634273572124946673699941338832589095762337820876202448216548099289367929286854063802416058440876961302824689008127798928670958587611026482560316607327078221982409108891676094338235255643346675199178027120764375968842340037873415191262824797304561499474437927150593328691567373050333550800488729316787556376210355179248487978959473476714623131946565026838544360818926130644403189773576791316679356029107436087722670350335425714282832875278968945067187695483893760589933588807700494457480443743439277078336522295640233504422412060102434168174719251403178365850857127378076480917445266367511252628247879074071225171328790397210249327513076881527824251587039697551535985912103068629341507756826449101791972111965177288608172004074433842465187399931896775208927142007709070183408082584565414655312584664432994050968669039204481948023380204503514061679198236221026034378676685843024982902136889088406088695918172064847478680262252988493872530861493417866017263266874125224305506384738957945519280875027652569272306999666738306059982027741331331417942069041454341163470113475054286175651713757114528057202269058152177168912436947659579411905646175066087417981071424265384652873058251568170701029051269493612954478078367926530909826867215862201176305193636572324079826929523412588669548767055088541421421814109562927516636667148591762475920769606548920920074324865486806105408435249626934997494627250032426545497473150543617731338683903992908107636058260865074527642203215982954881403018697036726113360090883743487634448561075994419048858523330527195588014173726320566333380767420013117460336191787603521681199129722698008800744136115743382221070882095831292306184294194434187290441865058556896894627429899740005591225633794274296399797581662448504213830780378373288745450090518602913113790747341596671326526058820588849282830656769725718556753930231086975282051469412570230715363895974098226665015522504564196789415161225350575178227368126242279598763150223816532824239898155778109526422691297563051076482935606012369387717221472480586475585762144335749245050836928596478254084353720970966902802829197833632553515359660467211737668977964084318347527597333566013743201959671777753402217993675689328233481677380831650981004482758939862896861463679326470786139456658243756086023762504698036801588527052442815960756149383046990671544225328150746532473897786328660668777201369080593563173306997888717515389611053316737984827830711835682907531905867297835495896240378197934867538357815605871978585232533675314431135637883824527209155724333452107289484190766681819946456098776334197124887545798503043657464558074746225373685919193614772905047284018331138342813252629097023772999821819240524053318491197606681456881546535930643595567491284187480177992999255260385507661402121207728219169490536097626084646712654664054615393313994977068415569099225204384774654507371321954664415598051636729899662533222708290165816287860517241201834171939338975519132187709652231878200480054349170107590129351788512997371006688095937577351733792447327152443869528600677548227597367718757683513258287763070093976834466899783631412492300329527304735914885820086226530278729489615409445447612977539455458595375757927720291857716007017860313152354664815904222381398844812710599348953620945896004552052317447649500742815494095175784897602270067318488858303783207580805494532074030506145644987708720481342765270390038531655747515546087544592015888463560615539075933761406989713383615416010359306025918252419853729305806160862238936143184617173451306651109321654409874225128630748188074561433019319993597085342665043082175649247533975157801606175263015538992677921342466296550184930557317716591455819624509181704452309749773483456937843928241455687881110909258805983873383917605422016286924732610436663266947859011520227944865045925969104075520029516494411827334463571697747846703976400921418654035335883267030465649214682675651482950432421799511534537935576867034859438710276656298095708988073695457709583452128556541380522898792541207859693466824571297865335789181912226216516331988699300462581019644617941862383516611909759045418984186694451803349553426743730049005713457648264961469013850930217474341143415957259419452988676061373358417423273154080936146147330258914490812777111722588869075022571126362507514351348645320457276226150181055376997619241899732916480679552230822719371193413958984527029758247146825793928638021708954037584850517745523837022489726065973246874738729308574940364296972604357656508665884816963093637598286309978801623528999120107689475964158318156236682140207803103882004051746958553957770003996309863120665269433586883728481177091795651842296738510651224267735269203696436883919199628394452279136113076920306943964615906460412743946385480574139143575991744120852687707961944796555315181226582835094435587490482564625658077468833360745077526137447870207680166420969065639212832576781645016507756412844694393500417529386556002056821290854025310543407413713390145775248945219012995574240430891733859303634319543134325393240703173381959014902100551775182639120593346103483456228554785031719104732195637616586329449089527787088763055199169150186458086875290301328433295131198986419374849582675913785148526500284916920902037754474493131807285675802758765268738505046177970911089556629830533214033412961200288947569896294753787793275945192817746865951844933591308892029392392711314300426669084091826894082198542788486993037729568084010720638562026455406902053202507634127450574288883825585934055782097434527872701234565381908279754697520758456436195705296159750108925924450372592396650905234869029195084102239407663323634447829424374927699641086642689192322371324714536504851971871893560732801716949737102153653943875358695738832778751489598728386073069232435699719738554164902882348144976531846309496826481431659738450624127840440855205300866749224221851451612340449687033408456135528151361329766339871396741299867661994782205521333508161707495463007157722623567322769715041276360582487214043463661148766137239734289698168086455378528684972926434314554062771720746387596035436969418922612737482106366849925358065881454662381876090725226329705269611040518367697167137366200327175384033584553886802644560709437167490301902065931789830863225573638838585373241569879189305848492687234534640950347367084108717785987630054758964816571575739017867073241906714260487935000949584192490786909335442141816094318008834925564609202287105680059177786373350375293667973656089855096850689969560340568980894093118383434580493478003214853424304007935472675992483891045698004571272362171929648728583844893412539338004297892597733516433198309249838038021783315662421054142569698859308618948540738955256767741933599809964998267607294388494454052816587264227199560178474263291898296110695136588827633058000365528294923289025245706303576586421095370905193297415960797177692363467885033435703507998735537983906093362091230492898669642553197262283967510115754237757941502511352945221818300313852913573480130986822642676518113784490601701956342315093160647782296393600005171716359683181176780958212317710267756132596946716434302095946457765723803898947425787873791338804849216532146213866138968489395773871352444684650507030081027242304414006606840689051097957648981560838498325358556638949744889740996966604463850472172022052762727308758319938963023950721790289572273879133958748418230547645489398251180093940257008577691698493556773048222781181811243074382987003299763667558988715848561748114978171925223283132537602495460501762609029514213379935549831638784741240903142278488817397494421946959723886397735447917967026868773527849308488673419565552861767861296998744114362005587188646000930406588535892303479666584561930508281889610478752957294008843693661254246585188371231561389360451114871323854886916469633231492325459199650618093504349028640905801331907194546134854698623016148288052452841216449219128289476521315608482189311389269086913134066835511765115723219012558194260988558650629656691334783587858552675969975671223697572207747066643546319616506686942885895234756971146371038772796831829710455239370518255670291807264210456648235109860338100277469495532548128498255678704716645657315513009721895826916927881710439867201037996418516165648820680675221182864079833926344680654462570073242868151475187498986717988078364434043849474781450091154711661465327104231865104825207456830683654171872272661852861829929200136486745507451579777757342231772388189649298151614153126288702210677997534309114243680190822768906612862755502658151153812014028328028823266517279109175800385310868685942881152737379891037172117027542636733153474141224359703227478167058033296890638186065267204270712165737779584764171561630593583009846460483769666845309781975881665908020184700107517316471965817670574000390032273336255349482091019569605852269805131210326329642809987101014198346716763024918236859662501108553344830171986857739672512916247032513013491308714475339073382204276824516229218566695471397517658649064369492916181449049842931896347136911836833335042519411032840948489737986691288389214102389278665141197130303803504480055355610432097200624680144129891974061875234282062509841663477691987122609958894815276349133028608992984420231583764626714269999396350095620152264407167194502846887220167326458791523933618595444580620641095235013865336378138790979400389820319152886678086137087362882220332214832566718263870466542828502293358505561113378123887808889961008521130677321022737117866121928974942880414382805916177440616415825024888085536025482160254394624401856465972122858566662145830894988078422703738496414853598088400399693013464729767388228030485405991511655609852555559141596430101538830664973654506636479352771448925794600163652335302568573441008349731894580605074383337230322842774535103719526509776087755498225938315145839246996883013553187742248310349982562248616239226505209917259522131957055426349025614012757412773071716402476091519160623360259855160746331044510246245687365123460151298286897825178466322920473312262140085759783538365086684522004265453519382803035744748841088790065891726512152947809010082620840160474065954727819464615528435021380255006040045137558435708263321459892673192593306680075423287093365298868958892962743445753553183218576685813227567801819485051893675705890421292997432140654946886455384478441405966741896807091164503016633569789547199637113823946073151598456601181175163519965101555952854550324148721712767216224129746576662515160402763425947654634688162640196474677729921096287148890626907535652019111195276019387047154023351069305847059681010578783691947444110942678579532951412908518243585985271255480471874057913075331296617121836677982514893418369190138423765228603685084426123109594617931700212051121041734270508567272955091970522175971612108667952131732767064990004855086983674470280588440606810103081061936678213787599536151938769014114158556638573457270050653015098997259208186591771835410328053847025808442424973341869123113837887032216608931782449056634410273316463776028677346394302282006923045221409379355298238049059282815016509469448260825112211643889221726872017052377724797849072898255649179623764188211604627655407795849872731078675381794011208566866990455307969693582304498219571060399815566667159604966987481386780740521091144566469482461615776897403805849128102528822839698035099487965958056858404414591890013806506190580317841302716199946216423508567630654415867296627497487224819341206345115887400946336850397702275130776859895337470807986736331378912974944596800358316709694647989634822551590338148238934946548778246544121951115734585485730779081413698969603759087904287351334217859330198786325162635205459956239091151603461701427430011713878172200883286640549958941601972413565802469339056629304114713170156185137593880112569957485670260365591230066939450441062909166498939526109140320996768771625324213799941129961454618018126772142477122584951284341780803295223137855402724930084843497373786781502102043279852483132041126395795291719403023425113751332303746153340484836330195676286124037246795372829224266495501285506072288826723388350645566248774572938380358079277553405248603402325550776238005099643209522780390825472221213243620216135965940225562626898788102941112765947569764925644422886891237211391398814446559250526575391151333530201744240190864087318096567434494157689241509274748352221959531551540100723690599261975650802036269172871831993909396466794409441832369680303632573682444438361569811954938907928366923272255360507891452617682817530174811350692044693341257989025344355015847970585614979881155826906465566097946902454963804683003232412520279313696468644135160902840050979007149290179237580200238471378316884275759443929344516873518203735498720015337799599593431436726885978250587393537893288369524750819885916553060627549883126094893203482950053681228459349126397789296224292561536467499673760994647567375862255109344056370316649302766120720503761909455251793195790705729715790276506993834166933417031560944352437969035609374457218017817328606908306486130473921102690325651321356912839891817680381267415749763844592738151074777571550046382333981642459687855824965697230646695981322732834314733145936948547795154456475440226468091383657314400611473124930246211351305966850850881465773535442871354090759284025935157560363479274453486073064484201254230134562401032552931288019339507824859732335611962737075845224801001547621825264120397702729981606260122973077546896478738122573364790000838265251843750518756667966368945325941801878816040643609814688474215645101754330901863555713217517398101913053375237983013995187159123397775790952287491313336549341701171679811996598050833868951761041272908283071625443133789208538457150523069896794527933878631589770027645816181456676505745762669641452889588177493312340093731708473210795659184325387072889441169204967479185345055987631930034791050634228163235764848181972508366491483854386466817382606916663892796391604678937642057384759738247143544989629484282902333008511347554722804715682607178636544049547583378732028192017911198591272047374392827059699438336836873789983955460378858138919153659159528893084870567923216369775973336371089695917745970576071028692248622168972641979934171942748192364948079014276665072506914325452795556008075487844337627093356324326007087087894399190014563416882182810654716928326650362331491533567709900661288429672089697132183516043778840538067148513697875943196640478811834767916181782475375033802810358757963322247121618079580036125959320338444799499208997956575750725954555942012126591260416348025169676916058692123612913621858445367829317574736213584530296587541826467787152701787618114062133557201057007503814045363159839803425901516981450951966558485848359747600485830281206974282045530956412388616851383174405268607108117452387977661082559914529066624877918544299089663000469582580698510281149955490060596061908823374099160964265523013967020056625446636680819068719495320872286990762724060899547904504968954630925336887449043933236612427889962959911008120759837578328092974511641946708441350489415533682538584842382875253545362703874350278490266847845162499614283566813470990270367695317178504993053403504251717959273760798207729809625644326663552824020121861412783212102031180776728661191344772539820045165570200960142798405977106965958037926170175156383704830132243623933376235745747782751480796320649720172721903271189395049397943640103411066930182694935000490488025397256259801469207357850551871938690757912545850034426529227892273957326634374050140703499633986632189385654843824373873478275353058117659269583828408692703254527321420752809520610941188904336120627862570085205039998717782845784326589342089351457560423998531382748148134224679814653123369968209071177603101996463119984167794237896661330139303520101067063038742532247771173264560456205160818299656930422695791335898524591917315357712335300022321263553562722114011426524718804530323979302350150432751779594490783355951557017247726680518388038342047678353247697385165025639581908398764802079694078927845542370388694596034755897507393220655828711295658522928724336528784845514597177059046511362545093923241951587922381282526886935871776304913116993662906110253163170080004349311740062653723140624109488281763324486852241352282788742755447604589611895883750126840009534466385480420263993350570210831628038852437663266370288034659528129851179884646128081443814574009787759306963955054715884499511177568356023909439445823307117351779740289490448194181549113377762112574125287192377981855052234437338835432784328325226156007002606240496563766981061282383619475256288689509866382183120511268900590169348385966313878102704306740105405328785683863522183047862803140642152687581485868400905037435077994891653980340511255001333033639799505650955880634103724219297793150201501039812871052539208810796365763870968124360544265641560623065650452846567982136485425116052641308600946608685307865929085517024372856750526340688460489494508465914909782322406022167329321447404816902696372096933804468856930825931346502163768771792486050791336777501207085488278525707229481406316501178875527387144733147176051519768975409830515471941506189970741690646697906867596949350201362048629743940334678783061560257172053713337239889012088532684038618476195584460695379890558499533473501955201184563037171967646148963794278819747596329202671392792052202767070360591597393013326516996328997454463158506271142380252344490227869605528098515507573294526877203609904359645628566344889072062447775503607841148274684451979728079745709791475065050534934747007819398592877153373532390225250746105913840959290076319456814590337330273482492736955931646132661058831220245635007089303144715486107997783201403321337649540674219608107264073460574595717049873045774021451335361049801506035764626364733142020504575902983699991335526278568377274585233155202123049959631239201837330963436773315424594571623069955725628201702463161359256555940819055428078222521561532844317643099094934821700746341419546347544148109951474481640303736010453166500173730401178521839913443576390820755581642836422041226021192186487451927869365726314092797643059123184461065571233500235402017200726232724344290985928360298360158558372940837011895062556616511927427719638136695433295069070494664990639314018731093472046734150145118088756800212229929545312470641941787030725236316389227942163818298953419879244216297945748938968523436879297907539264249045247765594379819304500208565457800399995114464740760959961677742235268541819885042840434652190476044590313039951171270757752489106235959282226836575514023333592578980652636261098647636739807624361419712483294247579406441699122033658132829333694427713002744218983271301778523092857679015696356549999862730458991305381995499055962675046469452339635154899428849788237741509100761231451414870569999280692246157249631771461459950970487381902417637691587884903391365460171718574790898443441933314744398395864233147866705725121542272629759114149888634456539897328989782792836119989133023757213678841973785322389256204271523871839747970212276115026866548620005632280119232439091672596429372630447914242728641961587629504704055011568519108767264540487870851766821556885225348905233894155173106025327136241257570728040398304826453961970403358380174095285932093281577497693453521359247721566609991138474584279529267785203361671123610503445422101166928285898501788184595013932788810194808368977000905792373054917798935972979062079803107980431819796747938442061744210120647996766199856194332175337891336213291275264439415190622614397116827646192769312212551514578630693344904359226839161201392160170648699873464935790545744519330039882679916660366118771872502117255621672935367432765818841122650612941585567516630866735612824066024166307709363549392409552351159166532725798011332472675262700048161180179523823712867676767453921544518252580046853423997987738992076888023654706345210003927245907957265234279255842340837440924111654023852353703207627737691607000377151765803995693611153304693137087760541919880622885154433816241676655884991460232868809213057828527169823067686008865921760467455177016553444065850541653621974671027710185109587905105273816802713070289480380011217098741965579134309424521471415960517973661433108837143122358596141389467642696268505254175409978062046857451897497046718046094758132329381315309114478215345551030831600361541261268269221243236415515869906297615236010536093152822759392225455643126353903793507024840837773707434803520337718933275739416325073078674716325941874151560389065489230109908177266359330387101723649372491704304419889085180884291035464750292208502207003870157221734926431480428850305732517848184285422041995881937870633541996448740814003591623089159708026107655937946408397448237067821014114148907475559248810569822794543400051475928313126201113098728408669319235784999802856343271208626926650508485071826038125216070166312683663315124128873123271183573862501596881440476200420182106552466386510134217569491970609377308659840351772136361373689043969894472544925179572597812502432900911816467500205930821742305951690629729016557307546500326283328003534532150135116556383080094640194190902897157676317443029468871524806992128126548572402464082096479461442466663755416586771016968526509026137848437149049637660384561655383409126789460304566073935592233496118716155777114802838157735201979726629685912840189708261581180100418566092252093721879293951727302017643160867368148991011404405974466200768705199572746586391758262789711114566690084995267730104636779306709812493734274998613145126093144609383703757275503592864251628408608064247968977722293863455996305629641579920586241658857046758111164682837722112205457243256021262295765062668723898225739012031110280116201866483411473940969855434250075944936437023793921765032697943117987895554128322262188656844298772934853121265641101329316550024923718990556908319947991544996700595472951433730495903280166937892510453861704146534506263110336396840461268375110638362020182966683734640308505915588346667955641823298090122229105112370142136098173418689474178835176027279402640743485924259597980945846124289124470973686220246976145718256019412327171752031044288223140430929222011336612731617002264601996891397391812944128220064121786051629780334820058436906731358594695439598159436440804032104001307888364260476816401952621065290222495938345194571448163988624040315030076052353201498870630263275189121576792082647751604285970889483983159804939758046638012807186538992910441749578012999061027583580614966521207755254113347141081790381938640779442725574439040409441336901849758109674574188067309628604226353213471109022793195119128140491192564255237542748010920487145303419152308736668444918577730817914834110646747890647463773290964915404478183584500853968535095902495508740924245368102650976322338251872846572321482284685035659595990170357442404499954172636361300727116047251379291304475899487483048589236685293843055731932545122167476952005023880273721338995412925387595571446801301871847702056523340921485036676156641540121500457397199480169682853229158122331275469474576051021418289232587715242167224195582243686483587425851946370445024947433581455092915739752657217453339056416429900562686510102658412333408414645181276399405073286717740678806881118341793732518730211071571670008352475423887593153381633954362658412283125305474076925752476983867349104640006559843946963261667107791905832947429098825204757115052475285432456502242681921791955184113612602490385896935490386119787911528961147205640899142623706197845684122165994685353815364662681056550737176537099905151841904330514397014974312586491539199056077801630350245715744540278005489159842460171914221046539393096030729178832200352164588361282173765063644897071501078758741437479098498143513129659325438478924903742566700937885038286627460223500078174931493186324415077181671724667936669107403633889804982063126993426091340480039613549638961579738368667070360089355609883634201294918733679869537817169983795537794972549280315323852866108388981129765176277229809236217087569540528124809065578282741904848900057363015909434938599005062197355546797048852617817015257567074769800337593875756792538254880970909676175734618023126666255340275729805557937375989468386025657753815888931765525894501611058689577559125777148347455568336022694012685277424745060841118787415033704429168715644707770403373397725298180839833933134834571011641586874619475021775622870365976496977140661000219701745458591162758317028396935860772547977623759825306381120570670251860276895277434667272708926316155411386851508529346764023141020303263756398176400812104032594823238117807780929951998871920600399839262856188001178569656680057253888012449612310880424214318021227730499613657643150465483564851392603796206534189255459801416303971227568524163494537886955309598421117037097533104670540506430307883949040894563210282216345352588634779624909549461203805185791760817683897478078382832392494629269594693932416803295564524253047306247164089648310637966631833936911456662011331183850133171318349808106135555699698967714554766606626448371394212126230240027622093836189039007493457209064495666407291650133001667247132557940283151222188881467048142970283724815893988811788667469147692525661610873885381204511446412591784470910110559286544596354286744129260839660673851031917982268942387742810918371961514531087052843764435582057971582950802905199958823900679740064403327629617084645850847152752915306032949147570739609074761834832981688400554935268758148844932373220263581437757931737477094671624218070382333066411086147496369174883551779507731813599210375074439498355571695269779090916632857549653948692700229319770597353568178154804638149424902365219582354841606129486843372327667524139269935813681970767595294293859420631126978431563624198142644607710113145848852565152158492641825897760502088962806983417814233695183618572782690471198777845291108911986505469954685424870197630198245487994509007912764785277254533607898540021129745441386109026273001120662863753037244021821204008063048620610617379386424189419613343257354051179185817774558603766630496247075684994274213586282464242889157013650411449671941616299203477285558596134698185455230216652816759308836457370194765694756702476014851487896147189165098248959555573140321045881586942709164023044907103581178602431336255401619975238273112283327241088022596188611549189035356127223588556218105485034392199609585190832036871979581376444129606317105145514308342733515897678406063326137156443093750190530330644219688983466423825864318753227350008218733410063512500709149962704720485087324328631248234838431402357895271350417454462889812293421578365052935289566228777593396310309815720031923039500736472905673328162335300245507327847943868043475637378373918317547269364294094202297075446570750262617359228662217942464955285553089950536951660220727719216115179634270611815941729581818076378946589587945917193092056825702662926505943800627345527893431302323282291328007313925731207624196372968707627309873114516727674510232312835547213040948859534488664209818933771604211824184686475723386911481749703942976977117382450015597911790900489827895737520882730837582469859899489901135407721213493305716382366634752285148242377876044348138403127608203051177997616939495896009025077681970512980909229459024456077963621964228425760095607638433178053575754279121304958523557240242873939214974209428345989644485226077960689004913981209802371784810342983279155282092565097193910925380705183945783601192359545466378308641653331215495466208134956730554723428559982906396308741262167032005417497658878629196633493008637109806301043493197553553436987839774236885725056964715453025947350787036505255613273069828402645477574786683917209671689336811262549970998322415891895787007149846262419434912443888508241923379433713586373125315266005603973041389576725582243297224765280040388168045531594851474416734760610825683877771581937139844323378201275178847600806226282057874157074477659805926333304548905158305148851359242329148176306569941978731359049383449422835561966373031975762594712366587160122471136845963305567758270819599989932858203207702090379768948797151178211347866356499008221745225279233511630110814017189566578996283799151933447044186383280099128380097542410301439330259311369228372297310867140404417750731473963222246753428355303265094274795291568747109659678656206280148107826886242452979058009068569428500023904554869974816269621153446302948554008438580901113293726506979202716076516168739670685736899949766649729429049513841000462016929827434590479804238284569134068215876444576442649688681353607782901148899436405780091976161157058529777733828001201498037540496723977399008203400087789303146861572760951738715790692730519887092279768778950957338990380210805379226310016090815000959790346302718471067562174804606771268601551687562544982558356604495875662444144867555289416041037911187824512605460746608243092825744220587973442901031162090992199038633109271984317014460902729035775284196789019848980600146268620125012287216712289971810076268175277980130651979413846821541130990334249942335837212233899215376420699261563102138325314919874719707912617505740202550607693457120800335968620191892052165552503017672825516152866595320351925920518860500308945039407645197952020526692738912223508553733474454661966958567154108396071423441645695664497852258277404178262369557596248354457709473788463142285272583109677523472347814680607477831544094319738735086563529124554263381511008751978659944727118617138345961325939100124994943284925126372237052911258884976832922038645954047192700673489657090412815353100960572317367501564855939630186018657953186090757602582719040618967000133568201167473984205699794030668680306128177580631165446672948652686993726473686411765294852587394211408201780193099475480634431588221932881324974197367716335829278300517261586800072648946699218725646689712264592615004529442544145848289932824030871796067729522445273075575308358316483221399914613215048926928934330101656500109368889319636769456021065841119531909294280806009833123728518924503002779791734937020791720593431111955392252062136823285572300835123554610130220234505172166634102425647681923354483408900947527083617853647819239457404200328711947796669660951770859768818113943332387397966939731295741036537950744395692382546245528460397879569802516992922861972473604096967448663846087961229033545036399471665204768128502358050886226995546555251128505518228356881728444682876097196102289908935590472879381505299840035242077653109525706257571967595059479510312217134767357380426984269277165252723821903812654100092128990262144509819520478418957191929739047685818668043317193885153461120115510858394174604645753158970709452735799164710583531975589627265847603517259310394129160858342734492300128727908682795205565159020399665708620949722503601885654776790655363481248682115422791634441642494698610940853174533659335032377527234819338886236097133424212550325248412873172672211339040872771457084555980468483379838370872774330702450648056312599391912473813837045082628506725048888798126857452988105406097967475420074067218401337701270699849549803204373300250198532794327521721844303818618476906227557284053115024595688761118112108285478395651166681796428326585813913035777117836298549509860234513827074502118669730926056538631148792049332759163174014996188768007102995634558418481985023302595857685765947392458081983650746425872967593347952975163885735845340627290724454820278368087029355710507522093237771853611088075682327478389537514812432465342763655654048445985929072348165722265498679705117281181673479673752180811326251317133431638378901889231742426859938608160833945812337206998816319309768536893959802156232891575653975126224633291852200568567309565578685471803460217808018636032435906453334333056014036925705232490950135387471579753771687931711719040586798111338510605845829336666550793975521964211356534780983581476108579358101627417873366430470788139242521927139833453804609927003467344977854774347559975284386984560059348898564427151970238255022831878260774225128409918571032932081051837242327932542259980668586109292522490567313178668432233230436203141961152764627610093041298428870682388845044588313923929678809506212532245605306063364381039942644797904889512880109627164294707909158389762319198142514941619448297602050443671829409556716981194117261017258697050754297683518162364293377361280214376823305891417038946589271078742780898321896034775394761803040910296500632599624520540496608677285955351494008513334634127587761393467483255575137063396466690949181789786734794085187641651697006962619164336150162654746460349206150561972508250312711601484880309880614205624398439770680846836260903398907538220118850538775336177942523531859621773726098077503406125648236514261188263065189704461888972981561953459748526567523796664328722056146127440007044775613785174440839667613922685991953427549914447531893594928008979192185148445260636387331739211586185129117820176192351210634307019435660466693046511158600426339986463630699556539789530047636196860511168025167086330649495503509020793389532879300818765211525345261983230398652772637791147242226344600790891194763430314613094995737443560104854054695087756427932780336818187829737343785972459467753314402774104565201869726107787625641667808410104822440257860963339259488659257713529475045327909795216622022772078134706456028924604460743749457440037151890157461043717726493498289367383384104667424294413753473249185998723386399520356686256682687535221892769373716681121590372312825304766596185661966656655229990630800773332662313664359765247044370324114637871977531941561238884365150856775675485650076232142157907499704274059374701232852312192850003770514119920630245341923855567397996349496859523666173001259429160277742578288898594282739290638399086301166451676173329056412329233706739929694083926986481539980059464086279694664642262074514409921849614201305411447971728981570392296983495081522656913028676703718780541705300587087463128749777987932783370760827741935816887086230038215551265487543405365506724939757156393265786819547313985413612765038772582828051691559162668482089290037535198455841540723897120412900536482460073984809254163902831892889494875171572714591478180695742391123813676818382006108008913384170146815613380351459927800425084258991505475235371870311600738192243346601749517485023664821213383786682621975961778708515311448466343504302350552010437100301401715420325738883466573937677881674206800829737710875163270602613621400465740638033468347940115920421453731865691344260138263967072186734066811559769062492634945789329352740630255267643187407609531953877519172233806814707005087370789407354339954635734778672992248928763862885596333333025546092164010686841099069951214906403845285013923955171964772881427614216388652951001062930429926032200770462790057549266785762719547590411324509912899400048976761023173192406567782804630192444673718271348493253795383831032052338688183993980044848706385564904188890341924559297207300333042702596802548489532883237012349402276083812348540533703945241510315262778127999593836062351551247278524256412308603713477605932272857498625583629590646691558761053336395350241243652629037637698922365998273225199282409629201514908285540352104388542755331549476376565241362090720416362810954659990875855388047397242596003913718511711367864656870701993495470235444998463936921808177755386674353749346840059464656190991211109277333848241774888349550471355777670251970686051849757908748896226411341230243686666820159827133485170356637555777990929908591601172358158752753977448259850753100843413006320787433205129589358046012841927038692522008755238295455093986552468345964683547605776836444848223358637515590494080153707090596318948962647141715448101978746198454751366980902173007196402600587073349227282673852780736351943161877210906584671663121028004657234699429281799721551335700668942650125924581465953337845680216950340755531777678789016089998675209884710433596843913283516254384082355650156918070638597974951399929175913399095572604184712021551302266702713808133569984271963373251561275480736364961692694348423382603750297542033836855918217898973503521426480618557274908210872999718946965307007210497875221338209303599565353127471524426501901692047054663438499539877008681805963443564980224166873062260483752840714764590299119607079523860109227334587550279086651762549441510037500841071005545408736443407011808398968929355792376234857878697744601128753397280580030220107266138040367919403873137353606904306747141617806408709854969757149955507813200237368451151991900373021700861160657269051693231220714996081293816363916921707889532692652289679388136588561298099761234282911206383786641372572956519243988301353826307944562976317524000308334987629265635054501618923445065083364051493101388779843749224620905605095660880313965143306470153984702805613825688541050225525630923661846775478119801396682858670183213411117721769229946794235746371228218528009280275968445845085918359726656166910668296585303747510475039995433054048580607985610122466227055029086228413563949365871158206589137261070097204157347057288496188119841624354720710936817789565054413077934467778358403647952604356301724824131763891877400900659085118757486916937318149892660802765638416831179916470385362278467081129877104732322611690204238150795898496305859979982769520518728747093703942686871773603293876121484097572923141301676680650446667341318960474474999941266946575796816590283835049592341471469040005268209954305825716728749025116460587435346053718785867782249911543729739963776774204832855199984978511177441183315123966191720490343813360659856188349264035963098600052715621983190282344157778435355604576103761067093748188840817594270741870230574451222923475213576339542917487429590154473601338698725151302712609303544672549279233495691388112173659667734005928189155420602328508412639681749062796644443080286803601315424972432009837710262404719903212947323516363069339961255209215512764935151342411827946362908444261619833007954263152217160681953523108849539818458795908463573865375005506851352025149708343739857252811258595177761929113732228853554836892738392060704611360048380754824238357186959794829964883884198050781445352455325449728524902785332154862322936988525216078531858652512736730269538469118309808060297505236207870293590818043815763801064273348679213109765858646055248680019641874211329010188808872729152241997211279865711925521090667181555556716321219151454665584385500683869237700760242804504839077904058052564577849178581269475387094579002775296801283224132729018271449649343762589663541991696586525305226791889656758549393595822732474278404639558599205958503123749439314913522181553510330986621534885130529792762905601700682496733705270625541787138865970270567146508604201940951622473007028654205915894871512772749225120896036406137388607086033976263329554487934934460869666483917257222682777166360421802361587689964140408352168847271017756023494518691334282517526330015173800213799154376055815710262933807813271166261793964800360825788844757232161396627171776268694807443842711094230565758171987371031317519523449542015780221771392890321628943626934009280705000459303026127426780040232288473591732528936922284349882664401282062746740265032114160473487087666034505302012387698958224324819937727170203674847926939030999340840304434653600270514622035192947815974338880394854088679611874808769744336595620381110379797159920121103761790690644023140642422815822082586839899642699056324494987521196805895655746747350312753661025036590533365885080500752437513594840987982420786698194120768851307861540970215466183889776276216392290982161483457593432995358293868639809763468833541201998906914348361697117769935953581536087046059311596486180515393315327050592666185212455399939636699566391630418919416427943195907230635028303728156321481116806081256932225866367791894960111503456222974265176812514335851937533532147259187506689798249076189618312877029173195515547941844108966708307866413297966932394502609851633093532447124502382084056203353580396590935444203459716897170965524702979996225706259695419225183906048445751094008512372407745062361668003074268840308652225410039722217436682636679020030291350675520179192879763375618185635120120536362024824887900350981057386514791620343633669050077742856658630899828476594999445656323229713853490253488450432600786887671944877250508088439607271451239510932026444175560121492664070768832628081202468007383630259891075950228048248968247092408337250834603084382156624031361121556613304012165644085187231890707785415637513646145635328113822574278336648355132892767745834937172875822468764040279321535218643587755299080277512623111288438947954418696590401255044753454616060060705718205667899496179316517277215834229160396183775782711091522482035883824378399353602984458863975112685916536772225170891466222556346894238290528777524660489252614064157390268635902307043674604742416604473045964584650192907122896775232791348096060729404439105749198269967716207993299782523886265159159362022365882786824432918390879702338209096696007532533204464829184252299757557038587052839880544082960915530220683422638491793154727276041499458727186994142559296504076974607702824139739998440794311923754180067085118989961397771726113285549719685222110448685418825656681683944935821664526993954001141839664527598925308857731168769891130267045296205116859476828862115206866127110703515063746169611232754289128925503367025756410289568907818437170694508732888349896445735001399642941312693768229749347644685909132941920063181291045014430330600379637967222974033190550911837262478176468156063222521565405948997332234874775325197648656710371200080356170224494654762207821819778705252911528155781578377371774999328571011033222294964246245120974401430752111302475131964444925477779068230094459113637543364004586677603284641963070040729193619749718566696780033382678495179037647378144364186892535499721869664394909552078723422943124822329443363138758831183716214485118401472943341703050331894126454158566144025755877682834691364631153140020101156607190657449304484933895562286470813132546144667188440086098487310452082096154317760404100123333591336190680415863879963536405271367238785616627629822492152164872553047014754670864655024889496994979242954185164614445160467961810063081060905093963810711016181041760909042211138298094164068940090579468817207793691361924152163436240265620970482040699254766370040280399860726813014181271669675000726834117283673527926118896202057408575453607197959808732020630477887910893975161473894498090766919818324904228547150679818897589023318672383614777850075788858938189272376725274254515928647718742692188414614999290514136294543484166124795141218362428126635509182342095423701838521169833428612808191360810896847106103875911065443965413567456972249116749278566132674674114311977346653030578629296889538065714112715179852224683898187793645064649153224369099368789877255746166326126839165692716379444251200172325467642637168882884307574225131877417066644764467900201359633878900323711411057465397377221526068890717233080615225510209750532642553291927855426778835322989866071913910787799756873343170398356457386375623088473364475053088761495032203834287165366072323961502088124592218251831199048515985023893154217917833774727583110285704403059882757486132657395438226149387610907683896899197289460828354229590302073531574921162195357027609585071007420848344749314386674545672990658753036695448599818119397943679929057289023746537610697635193064158910025371276398839919285094733342897128009544603042135288138542646756926221197005540443632121497161779658555585052539024081046948254776550275758895094821450493872894676617243205059056505953590961599921414642120982632045440581339671423671744804062758908168730964758115814440185185878013309149045058325600476394018769966054952705250063875773471580495167328460789205766759512997982118137465791177093866095128932552904385672664239097922927992426541336544892255055084720202062166617832297481800070854961021047467688430284622299685510179818942902688488824072005995198686162586860554882751991403567392058017068717572436136050966665531551920462871038877772797602006284656486101457375400658717500738850162853764335038722635177547361628749732934583621087372371566993849115572455615259525625569440026813790753903589681512561534649324223651062528914366054442109520133264184778087429164097670268951398936372452182147529437180127403208210746047062408408193193166431664107854939136509096099237688223694715933310163330045797128930488776079153458910385029609692932724379029501053071932570702459630199555196001443308328500625598814516721431924111437263348354588756772581506249402164692094082609672826256940605570921282704987552127655757958869004341719745743952180216295274544558255908521047437617692573515321807009448014786889938705599419522757639506022570653552879886140183662895375127085196389281167371859644771802933462555093034983923415246912542307613308047020853071866180461119473354328601902625812798115268783292714250196510089955001469108627604622088825782164005129046434122622194097586842576483799424243305617008500902085011403848695855451834163615215234768805213897655380858032977822461265363199602424377697771401250924852913689779990266508810811666099200944542422794995613189253394660807347529613570451665089831279762503989540823883007442813977874726591599557942841022738689405945130789569054169056878648507134061378995143682936831765333975984087036668652154281682878074590938229691162493356115796921323634385177083520881811850546499963123273363565426585708149033885610592545555704065063801825139804246938259901942263027219005059179692161649844735830433365881410537619960386064240834019947676826569958642270396449363991677931641551529645209638343431632476473808157479347266671678478628305714780758759024055180074701828407515050596527625516028687812455333445495208406552791959338287579222449805920992668358861555717061280912532279685986375243121203294732717421178415793426732698496341108215027780971996594790062843122204640202273553994893082339351393214108826127337518450387718375013835826938192120848327956801962961333733736458914217220406041241441646999338672620842144150969847817807770193378191032216360598867903462054612288112567109810345230325652525636269622879827870176225707682625607492258067881367407545028605138705585438141189668819855673984321450530164176415642832622484592121079911736078454713570728647017765132474218309099369048461125951184761479697210864853712195600265044366267647104974500169469261298106696373261162826759054395097559038172629567001709016341911234813345589382201367627532443318193406105772618666716720837959710768543856409278797599477190582025703002097382729009722343301560815642955741519883484211820424824803654184639629047380823915123514665193112561485928081910697768946623045975144843352368009747949703815431161651233351152282972920476623194679405890700499035094351358898077213089683455846951797827392095499547530370612893330582231046388110091534434145808095084468393017708526916314093226326384765974827856075002603865916534039439856750982368177506511495615641869573093442832896469617261571145968056507486332691544398604226392793323878855652498808204277207212012744678417842961531140762802238510300879544914748617621380287779895617650653142931013801822893693239080446988795602507030240817574238542074524802832687926428378868520889006248729382528636563250646550615306018679104786636941968819643064531697783353632792474637329581965966533337761156777912509551708688711546290085783401206114180225129436999404653020009007512943654642873354915023311220894770652369110772327397342077866643870985839169362778054099446107983553997571052383317366615751460652760888754359429369090717316850386129610416137194916013111492720817416530297307679816595236454363314309423102271630554867803987885336300747657846612237458550453120197251488055237042572475106435458542239960365071223666218000773051521808354498500899315482317556433372396689189295499645420449330296688314861036673387320001672729696101286029979362928013189520268437513894830937748458526930116162775665987104739662946312157964325155926603043896479740094850712952057410954181335213336004570786526237255525258082100933070362567747082900837545674862884997981221125720808006588410530253897305219769515338885600004152862450913282344652862870832891933037139181584402689114030045575001065870496932342384498264386661600560731818914709796053816341744731024030475436991095912813876254818305610196149047806041989362407768174482501671165587399643201561816048419896624893894848038275773443408101602518267314280978583710003779810446666400250804446449145644957378733124512216525697421327462309095395652693960144133724118506345214734229866974703859907056362805277709369048463934389342227504953421063353845106336190217867842835491251890591272955348505800797274781631633189712523397118337974434181178602770111950671144826864081374597258693511849512166593522412181609400864159097841863838039237945898230814426088841681905059871002856394278445745104022570359781924054015830432346298456471773753036977286780848399000809294343050073046587366609050678361913149430695100106676529951431117939832002465315510192282012556962360103615751945866548991429271155610913964765842657303277913321805182702351352011765601269604112266128531052898439257621453807771916532074940953403591513819031799286274850804507247443757655835022735585106727361991031292329504120662447053202952634865915220090228077743390885621406551297773334013711441926852773866518815844785487590342819293215443660410962118037065054179651741977176132306609715546608554155475636737405208328870229855840234231896516674891206173475115770955333820767041046467894718103541356761136924583570939637212284707098977718806802397411654084847350309001332081847745981209333081687131836023139781094853764159315723822155710268831430130068995318770165270159099230143833540338745495252060084582029511192408766636717009914630989850174048570631488856151218400115070347060714271571133720564241490605874946201585706376443459308440894170685978128881301971541281399079498059028274053022019049326949234223289702837333491593362475624551837714114793125229333363725426080303742912273980861727188862079987353072514825250956190868150028628577405811132725237290391449420865789732412965555391772754997838059170205651376737203181518506482418668075276104913161578350036108299698156026153968960666361663233476178979614446293416915491353340168005660157813513943735517413866345391273442244601395526581575596352324064664995198936670808513410437294325005050956699161548596412816910562064697730220428608570099413534741516531218485446570200272325841880344180035231954581495202117403389984650399247819537226098681293434999936360562735949876109441732098959483243179825200842914109152151292113897912999843332277638793890220339899607405564384500232358181649352647253324923735304555153050524689071525309802183967143498049563598749719821082737049444945844447741013341734290065196424039996808459176954556127849218979929568401784206149334822755684645678290933942604446240442754755259569926362445608011241164862534083499928500933169388804906229404795218819389839750614007195472853546582478291270591049904842781094776704925675004561516922036700567858743336440541695404741518908631557569729382832804593403401068745503210559320750807799340767386327296572929707112241747138100551013523711798685976489395997643379942639231999991459271898762263450290292959954123061628380729942301556822948312350459378382949127109507892934042372048996838598838595665135372211861508868700358720291550139249257121244910655249433801794136005057745675097940944810454167705006667467514045937753298352062512842169582538226668862713079361285051627943650662636983709977140336431603810998611257468827350317519350005683576483799731635624152904696131142642778693257801546076002357678511532246420941453589092556376150567418540728978320714783943064277377816646115003252599484652064655950896724009878840834928159126886404627750566324660778083682000585934127071402374692025484954890177617892335979355657714172907729391632178357021696053974543428142678820663278081112154030884677654135586296561644608337551009289229750496938228107911486133477481987901811359029977301093487272071209498043699107958335943111333350363056495015418708455917922195684528302726168807650830216254297810774553326256919267474330214514648603301027381482408585265168209051539888301048747523694894073936223114842945547713562189531765937407275515016860875332329621091302035453327096875299295096662537301635817729632851501227820411084237553718534159406383102695813704710219776626422343790852264379819479404758009947090379451411284240003149371336035984048929004471585562314943971420828829644163258471891670661220641112625871818702443309841976920750878518118733953377373916823389832461453389073839424152219384368043546994566037408397766565622722112417711863084682155333535736428224690566244388219573902954232018896572500749055053141173895124982382739757653939471648131187750772423573094874479161911137868571011540193294918063846285772940454893680176914035726336538670948502479557568941115546177662225357086275842796817087185654256227088843000249630006795826270973220900437589248881424830301510573610976976665297680542919353162640229746512856752083376301638900569979235831909979948583915173293584476506710447477088167391369941222806880139231941256763371003833942831147067085799021531700343105098786795700862337205287435343930825950443624936011195503811112507207242524792306146959208834246872424821160315812366025541983615564958920787401688790658468628685695313593277383637478139955057332353145023899787766028296900952505173780239461147554596033772855440391528520524923606885667461668326122856293798738261380507471833236494609853401626297832852992935023571928107684460322777798561997015826051738360645412564176982754197765032687837838201118487424805351910256676638769640177216513117792906806629096753075922506839076124607160762421334401000052677569119558286482360216154665943507807623830613502509016049130435646643151939653467705022689044318966459824010468546486503794657676534436430804582275019847097400261500354319812547218821708526037531416736457987975192589566153356073293249994775873685552185514421298212991800922571137819928523959226000277310967722703154271695683248191985112761471502193962776471142698866500625610607318620716475304830999371337767711547055280742752695859290723555651289523804242830281953550754018911586897309268426929728858618963627793646952219058994270535100359423944860335424043488331752649025081192547472647984234113753147477461602996466758832144767364987722616399471261318781989792548753336530693172307899120980874642790641027845136974015864994873392404360386738228283006461911918215927148321176566810481588947268977469399038124530350664402310363539603341803365550103370733899715831795864910338372877723915423140019930150625169777531014473244889194989273713765249894583055301704793158427091837499542591173576358546257188670727027525641121892342628282079858164488947202223417982221396582098572732109267925458330359296935638991140309966542075531212596322875499231186741711212279841811210877682614742677929070969475439097005836676333221202196320300972766518011915921366391985146773859189013713884551838634612391528767931447255002219143550773575489854893501830767526380728843908677030833912753485907082010534459877196164082484738130999838421223985973553587540878470774031638177091199649837356633263202885848076028753782177075367243978597086923380258802545483620152705254985712742030923572355961518495906093482648487127244526608279377574655261578866806407708777169340393704460248597269439564615692795849103553258450279449360921354800696799532939317733675965661730034803295092345149008710851208545300234471663339811947611200213515683750066156170582503460331204834492198423902986869792222735168809832135091565505806023533400526028573636344598977819316629585005846416311874488206816209514403673164815649538328788810374764118088025633894479744073340537417335441643220252273758025092764629316426587545616564490744429173577800308051489420863998868339886711838291126686049648598710684045943553223611808220701315257136981445552761196781036245732019490622340333719366955809489211195368516484499398197310351974504089779028124596564740285448901326680832250460852073526079255790286070689783760994015847164850185616186286128780121606034934553513282557125507826984053263979832443760643404662493456166038452088739131573749067882230654354907508270782048080487438170666598179380346041889532728030568483657490605096759392646246658625888848805020053965324494204576054358438790366884516085530763659816827283087669031322472546091978815703397603623331181433042859506279939046455788139713930873601688418943846639153442315616525349687558791574373184507847431507544475915335540491146879370698961779147084958522313039161692257584158015424587250636722742260375539369575594490152551798203836671899284511551412635189598707377016776049000499259978799139649101943126000239210076409907619102661439071277027093259541976108314325454529661340770955962639121522617132738557292314682280241489654407307855035510398429513000697742070389980566154228083503464560880407534896918392005647688099950795469176800426586431948507448714184249863575273815803753511708603176843412735014861444539447219892376971238948663651799410272740061984150703579770622044209000256324918645470259108377962358197835921426491030162449923249599110887652004387505454145890732109554205316238906498726861284880739656817592128001622391267619039092961851610436287330365120893769613730921375117118218997535149693713297603529458573144730260755028104852771911056294447609732077005360095073326991809091078373161423116855980172068978484338604612068455422970179364976239295501418429209737626903833718431859872752627596434467240683085073709297764123862106104656344881896584752003535808592738653281552788041370239534465851757201964949728921747569553031924607480397470717106218734445264268879278834217660044381172495224736995264865304317639972619617464050647262769620246146592165339099689026580262752972628301499901804786074532954816107900713623599940388161258196403319353963169060772978398382258466469357808209573828697882751514412455428194969085470730159655922309901060786337127060762777745075694463753688317318020880414270846583036293451362415761159521876867523529053126123666901567880605328553220504876382269246677542981279737166775707789700333309095629489857008724823814951079423839427645584580730573207085649971432454756800742114237856660282390699706284110125287029935160701023896683132694093011335844828606904465715918943369043095677728634214836582740184046325732652029780572570786014043934511021390649599322958157118543384720713581780099930011292387824301339377564972364672922254436266156776820313307040270943190041963275904114957128432204749417164746403962214860025842913297365245054558353024898521495001581329784545926443274818253642641140145508098801294040745007934873199315550752217262874515029497041078273182724977419963631907082030809571768828667913822629894729297070986426332128844188111517824933518558518669955222402748654478818303188906201164390972897654630962415447223901935973356290154546979232000178552101764293500447709325408530682879632302112605187314477459635352793585043622822248832827322371158772303516998245125767141454937361064766804389583303724225399140044103396179146610929713532174177774601495634132457357180874029056901582286173646911713775897335666319445852187677442175436063212196737429215271925931719043094144956700094204140502701617761533902864578933079409632590164662864507164139291392765950010016122668550022001742191214047597047573983994482136401655646459875046384083538157424616655054343140799791601102173419611435608248739469969085336742579038843401298098886208344985213084891968569150247354993495800147464155501175679652093960962197883604193604016178166361234318594123831555804638436541426695543938818774204500487091192227807166528765182102322521009047233187027548713558981616786336107612800875480300615085229850058419295571451342292302610856665738673191530820570884590041315836772418682178305601827447571964116036964866219589767531223142475365236432653826405977553917135507181739949660746300950527218176992637445402015221613541954041392059231666643565504762703148974544328317019730082103229690606786323636673314470705519809012628313277750956941168803845259206702216529472989224974937973733039852841272143789037224192312687485616855215494327376798236505411682890081691469543939610323308697406560595311771530876591760371846100735719060948872117837092619640839882216993765211628932367540177778377547324412768098959743065855981661949415253604783817610994897543366866492362359118040004733860419163817703790303498210307815618655423638958841187454432343379716861713811118311064190756583241305788220487397272076956757576867903745833686937551605205657831116524784183380250133831180309100961604042652103439463037468246997568980659575795551045862358011743073012138893413562443025008452257244290675042868704877439450944875266846009644546843450301997327728248810313086372772828238238055509424442026907054096748032276522346850554383125032133118587996915292758976683207768256143137003006581067103418424978374039875001378054596264527298946553560215064091762823662382994545968616768530022075589410581549114745261666294253881387750091059885988172098780984285373230870142071565771473424744463001422460896503618953319628190657206445249727720615353107804751559489926211362721361561912381321854671313951672226869129833820330859113137017667599898228547476702039747739317087001597275201356941635043542859851708628143500262373971150570619194757530509281546531755721418386398141216892295642228549468146130042627635658809822679668265499572831731897177423520113245857333433729288393026225346215830393847205454838382164537240140909160047101532627680024351335406844860945980249891965673206400124587475590941480273039735704051074032049099750810807192854790102422987660508998451771212887652329996822771333710854314803128323214321551957593391243108819071811598387667081549077495121326916819854306055089673243853029313357791035742575414715586388520771458870213872711235835740570451835270087047847379971506065571205802274665956266742859438180913357202797473306311811003245257354380334839790143996476548328979496144735767315266194871433775837311465813783715385506259734219939615496902112918209653130248601773652945349669555902822918108365975042612177022821876388532819099200133828934708866130917923649827714714311827799152557280219576636201301212783280766605892642150626362340694494964264754247120099379705946670678690355133918819400645501192427697331791328595539730624158275669357291576313836653835038188614779481320357822387167863784505512867939810054945818865366928708239469592957780020656539195356751382158834125552276073549629666044502508795421294185705499377863430936066859494358720934704383070151028555383486826865178386731133146887703024163451717392085465078738442069828453865216742529574590392765667603146958200590191026197297937315132218258887988328517261456582130966673443726734590469585829402879471976929293595385076513576358483958332868997617782156294716875429397457178784444786702879866043585298838580345097505672286135788894297406693743454709323373004167559548087617408614990835826658536288911063785627041393219142978971303929995338493840898516152455759352651253200621590572468504953450555636007899718946398238088406485900058178299906530634925731615334669724489941418339239003902745978746395167885871771003507756981193154955105887983683821018037352737708434800234699031380961802687211073373202304554337527438620535639797215160369854466289137230394552681907205434417209952094273531494002774758605950484429086313580053079146247664976138185185971944985697708367759353013387953916072607448836809451813903833581411327788491077812147983149795293632585267713994782079332704129208231605348258083618867153329733532978506456230942202701196520809456460673892502477639262172712999956927875996990428233511487187030732179318567109593839660640677703510359787629364625026827312754709151136548728342618631800301437976956187186383481623938459033835647926104035294724100072618329380408067777225275801341244888532091777742188359641091882959587456847179509021241879478622165486122424453994652710197261158144461918608477779585560689695667140662892470202780377210569562848315351383422596709172021752012352500557012249300797376896364351751716989431337855772434986868840669022889379928128704245033818504658132292880364104119201858828500497214246182663428615456551343716650349808195369178824374117020125461241764407198872049820104101650261572060178334459325240765103239432239705021443363364509112885852715171197236695871946579010985887806993520086577194387186875737244734585063077562527100579118801387374019122975270106310764024528820164443041360194652030029276621691407523326597328270137424871662683129252953272731121001538631231691687853415267010197233623414176191434713001523034277970399476478282423018703669757810104398846257858212250657575956398642773416968633229940597978836860111942942090245995917333647553150455795095927800186776520520763352403775340096589360042853492764967423140912066396363545381564835663051188521614337682177496922536839718465260027074842647128777628086772639681089063274741082162447051838663019422638288685653264351370736251648414463366773840215671880137998355121850214605618238090176205369610651991760396564122624073704132599500549867280905298688288683105412060956410020711560363196155696507444231647465861914797202608416471885030388159292534335500917587148527607758514236338870099330403643255936452155499562084266300546648657210118660533199344522526689052325289055432375839865095798751871319350314720107447914982329719580403960609786068774944371926703627991060253895135976984048084887262081410724934426462208313787187798027845991525820078829403983417316061577479272889121622232114361092955425980582663345995169921159442659711608206326812211398719536575382851294838197684252639984779892420827031908083238797426684995714061366829446912290238910793307501085563796787355693427485003263906941836744586770805465651356976511823992208563615931145843977115394252193293962825242425095754420662769901381996529309685836010414112658789247890875972557383244291579428844283493261157860193448502358451173909473175579344321725746688367652886916455669615878804489496562529480487966133669002740074075683953824429252185669867970625022970399223442540704801380825215483817725930234902082681016207033071888585845964293569204765068289075973210434650994352655207898101180264282752178709113270310218651350428512390818578614005088217829074419464030379879485650945013186313958992487411572797270508413055914995399005085787460881170457340325747622621785629841013326135039276340960165642589317917350374201474428976483350611350975688502906460871144134562206316374296088842914654369927334033034434336979402488227758141896304971156477298989779357966931779852672666129838101401723481674393433531701557697091289677452939266602767639863370668128310502204960771663056394449377629261302991739658696625059779613937002502642493843568796008021856551729725011337966309394061349128394060746865354678516804363871474832076731457123615373785485528149157963471107620328439605247192818603158949576819194596166096827558477294860965211455504872422425376263638434174286629377275785214225047742755712837361242436583670030286103583100821893718180389119145492175223485881411328765181894369508861322412323495875198583812271219797326731493905701715323476571276948499435801194395666494983096359332631125641470674932531938771545751430656665391939240007157477742816423048872648176911696393173330723939259704969711286110639589242238169507551603434486764668412093123680069140783972479601891908197689612029766149609076815864051410480240967922965678205545923605685999118615679778545269426805837560166849879455923731808930954154040984143223845469752423320310946144644742925223385086885110020790245559526921900272465847221808230147603038088927875716080263634670736765081928535117554867753144724870812476411652455231816735638838687729239477702181751770345633800004952563850707902535490663690495922258388688679237292609866205680423028961213490713774545534753282630056349451480404204337555221463194338662648520493682100868219947745796129673498862454503025088278816171917154851386240720844854876483602681639149968514533401926175522871878850159829018630302514348774248650237396882980210138579021335863323721868225394797567555733182223067696770392079077740745277118805467101716608876882382102224750966951352855314651529077203280510566715290907067520435432029539079274093097816242838334072504636022374749550205466116145076819367401339339480555913698062304104607107737096479289888746888943533834126034114976464207715606364735425800370293540775898058715510720353464670646164527030212557803912635115687171259170609359121172118505167907869861316010003213458901125583816891586754353570681700084865814201747474353621254660971568222767770855984319609593193252663320691333626673644078789333133661823579854703100463843404369760798654028439655102165521364959144478255881639453038258582181901186984531750491113394850604215095419210066852046001187292030466972155607383544037803095375177309584576162885322775546628809436467271371910774690406103855555586841143194655493980039004062115856803770875949798529983023009659916906538997261806841251562772985174053526762128271514222360006396895495708122035723732600396778563064926427791899486155874155761231925784628990050466376300769544523730956969292406203362961520868982761513709262160711739337133401997089587289492097673502246707490160573353418471788257590143171634789491384655158865706419075690505175044395229373803501493740627633742479387166164018068061969218189034449697772736165209146593944104552911751239722543364917927974974417592865161607567569042101229009180837617369393214661607475978716996500459198255583090947480757011088196904475395526151087009148214571868049656445959536892259023822837159618231084652317466397262532645088411390761929943329726950796852366073858215829367269977681613941336105020049702001607301065155921634602557059949170213020679741304196071167752316209471609720732791203067194601975727330363550452432802536584681860292323833716161644013582679646569438475521365055151883176249055556831460112044305620212597370516925907510114278948907947311951211976276283552307677192291258962707064737659378852546547709816323143151557180853788259070075536106962281851567796089254619237134115678244372448195580515590617815290435829215930291262604153055311695310807274582704084045806835894886227577731732711418477083524625124668821012832087369747708127510126920664920951566229314743293669135466230131626248890422542248465382995293233131989491700726218107820505922368184601092715257270793047079428906109908854315649349173216212043562245418755382602755705400136149577957145979991171927582232273219216960731844898343758998686211956087778640686144526783251206552499045461481747847902194902638941240490918647296458329630211443166797208743321359928407236774009090185343971038091659042766420140413914506305395785504654618307610509788250548123075318147324635605906160196918674188063011355648596109534448129569264367816767036623144205999162474670233580788261607715947357097178202602169064125059470655052840527087020985751041998626668225231326890061443268877312219933179368391813791254938033486850733003928122241531126494471610265332700400103836314796646315351208305828463561763658709273394703931710573087449443572089551695736603726956902389214870801672566769705178412398953164012531299147384632580994106830450361132336897229425424379963073340712368028212989824545612856596939261127112665690421084155879814115891018481210969640440034683837057676393481552874393334497420347615142277155381020473878030458166994603408121018834545430415066644357520876464637809849122398539876425283924083902015419495957783949886504102472668729047431746733301196498599018751594930708114413604250405158303590985371276501243382743456549996004675182991264395890257890087274980499273264617490386411139686811476115740110688951926091979500774239713052453841008121708858430332169706436874076894773545932843085254734249377451943593256215913421287040002091388035425860768728504099360139981147410087044426985393365005726593934929564975662842747332799393497594599108802827507970469984825730069952171068902037554463800513644095586952107747646879606077288712952144318786339799584757682584966601137802058599947207413596258979488922185162393596684666510865658535178757320739807471809840264651192579358533166170838342245591374947549712651817724766725036015903678903798375721318013632649252375701654297985264651852769423882594593456953169753895845025937782608479472364813305310181389629518283052771751591989181598077600760155852600790040376279567807625784250736074813880491476721442772908226271758867419917407079557622300466315126868192379608594414353921755366797336475986444372889079690193411206963127488940476597859142435039456435292715472561363667997933435254738841848601005336070731178698080415155564591547372467919053012277432631366736429632313110784158948261017528808727560790069278349902264564826922160340401689278214485937744652040149565500007558520287452899378704669100266538251451909305201614046021813030943746865655711061008925617427114905910954679699791246969622957440951508912718433257807267578737207824296525604514575027554825720769298189681374397872643378575993589385206564820146175484585401819890316747144554053323881359665905012631180450689616260454137014346478719398529783796779175892293561842616479881137923365853669494563456302464729637896431832183076001372917027758663505316039037586480359837192979815909713100937285867403567608678445991588008191737686705244768393438485319686953758326304847263542333257889723273124982534299406478165431557422965746787621726927227060740269559358844546930065661667494003656295713233438870940412568965120225314275660991703543693520568219907611461878987333485271526018483399486826862377307182448870422764619505854986655208774433034983461107845149278839911410790135534767925939442114651924560038522988315990800931193222282349921002100722509921949590126465055700386763272510489182041263751683623716003925490342457750787207030698131686261329917214316734664562959286846684070904989862280510360601939920455686444410832828732397129521035781773958235764478810781144776794230364821499903080089628153680847806300213167820882437120909920329873005954919541915238239557741603134341028905532385045583500976361886307390450501004676936580463423447264420383264077694772337578676028314356266530267068538753016158902158971758050643189488985532419106202582133387411063235000377418331295459347958980579610946671591347592424075257466252693315029707936061615066996939918952821337059500729370308084910697451987081320831697379069756814959795276020569837360856547368840913666917931742699359741211592879028154652477284957847785950938768245311372148059893656683888418996476538127724411031825591070593051472688644980292286176927718426854886609385294737543204902919688412678442071757111297094784882686175032787669827569258941418826124018077814530955442291102390206912893482091585616482318399574008508148152808973367119299415269486721382185603270871106473908978312574322222458693357072102138924702538131652904519608912119231189806034817428407479528183140730008961848516038938816481354931688008690620199657231295341472668179355141752665646573691293868764325418966917822979496442614644165317719368151541415472000636212343921640989054944932368208698044277437771453246776483774005319304098709377337432426204334431053473778339210106446291014256693366958816126523051397132923118095091997077221550028493089240680243298149294236826492012192531154782246438323269502284066948681106152094983660719776708452962234672988434541669201090463938467372954715145706134727131851162814867518849922570936853559787077436231716191158113932022844918423456121660025373551057343637887873995007502601419336110302099340623584629324059600998485881588066392275269507339339566298061589116763372350651197919229179655828924355087621006479331222305926039074626441905320061057914666734417625729435032998172773787522846794319658973386298662120477191544423945412516592476296541145785073484277338743018527642380309459171699347057123923237886240168637213503280221259830636865833741197596360057178246334250826261073902125535391716442567374962607449886261882424458612326894815034889946333216581725258220742036940988662703208049666442535149545181098891007721416016174341115864659896454820251158854689593249252137455607287723182510903113801290749974672299576085399860463578541895136088007690698994442881504410379369012067606911013170956640821695587619184958389373636454079834737456539569545413041767174354564808269541362277760784319289825231894118436547215482880179716907955964127338672740235081689943407709810757643686095619636270454807730005573803026477193147509707513092118409621098345029900715409974473348527867697336830177470017977009002546360795788412613150943246776042062795350043536147564324532955920704039890133346706917707624399019475169581450423814970603171043085401777085493825722354389141855619208014477051050591286098775247279075187211776678872559520040766737465978642035454383096058539596172705822604672830110909743851807877571657263470257777334631809390591176300178053138564493287192194554970824507213938843841207893358375798312314706637382817176412670592768111685681664821398265871802437582517597912187657386544831508952986339013668148444987895614079858944268496594792813293166734678915193041666261915801728900850303475547061111339822376375718274907244555510111959952255094124819889983440541175915865688078222223142502212397830186066698485422534050273274751716324798025399915114417005517732068010488519734303783012887793177472664537217204377335310977305490202344679875220391770985802873909235961916790367787799635399345458401601065646052140002123639207638117011639698143455305050764169079437295386392513980436818979503170632388603057021242694715348713724957004982048591029802028631023474157288283350153800665073163517256658467688513883656749124619207328641351138281863731947596643415683275511382904149314929564130705573247843310128677433169589396879745637977900532825080787582344388070748728445600303562592613801136301814634254823339527449006187088769571598935220227726512894257952687988129617634713861826860138302137297080745091148569558088796318218047186852366501064020947031027371933420659638976124097922807976511481010797346312507369689698166124729958147693186131848759429512397316210327546581498074447882808701345818047535224323961711008768495395601543736624903598916572456742515959218574454461746483472600998439741009098877790275656990604684584870885786395901392787075777934792808752089408548898344916640050090470841980603356417167341233955880572238689944936394954107969215951318279031482923088963923723054676155806621892083936672972900809368072869463731062500838541202117854596572585726241850569330797494692182947107712309371986315249110540693366597642322002891561101247769177456033937267433203852739351293418925429543934819166555363908653896126544216011735777397398203404252950993139650500525311553692102760048923788001628754794186992567323967956967784531788166685206294415588982424770706850523716246009919003318321137694362226642232339798571838985807215470230104312756117833468659180020491035295639918356370427847797079264362525870728007097158874062144199921822929603214537429561147733740482474993054727427145063289780122409375755912442438295062695125347208842749631759827405385904478726589690337194030465730758862155540657514815049909210426940090019742145855046383729562391545732936186210135336760948205149257250128855912572365149758757625281283565243514985814359787601630111368697939531565933253702308995888985071434327525490160307725400955826806971397029986009571264329325879561647194606768172109810995414507351823359415149962107305106047610045803725543838694975199850739176244617854459694269984302329858755706302567369006706103051730997632092219243100118273819001415815502491880152189354355753911069562945122607405897600033287453903518980930479494632878318452214200536442056062735727472272094752990192763156620391902134956681812213780910377169931052931435847694623333079982917263787499401954985935538358429202944660685665001606447586438703539871109099822894290095109984540551416352233026801150963378901148299559332797695180075787232607255389263521055971676356548705448763421989674912704095665611219287990918724795609880410971613519168713271546164881881775252239069317638009081159412841473704294023433872546576376668952913450822381800113951954405862947911213306682324505879250071407326258164693857708189375179898532322949045191818628347446547693613480554256426103419412433972106262064814930900364366669777952086963063145488530933115395635618158845379977209454015417028037125836599159924227769937269077952373201220073677961601230881434727440931305886962280859122742020811264131631188529638101784639124380535927183513911582099747683088937772854683044588476745573848098070218735004591937834186023830937750469102185893928258160678858584597781627221970254258240221469377444132408139502797181717515234368638099989839236238637712485494584862338818717885281654533481110073177139044538576817520462240505822230817798379573978558261186920129703257546319731542923391592166396364546508556042777220681690124579469964404783609707127811705881826648692899869620978054314707928997546177450857501508704187906995917133251281154719660386577017222154556012191300827012576885502487874819765624376479842835665730644989149241040699270878394448782663044616276700308118824631665962671153990227076967540203842392092847687463603732392741049487631559058669078824162249799526328530034784965295609386000438120914952482337796323496839050209519015128355777659013454866817856331280695101084210687719709951793102191722554373091850359851939770566537603730925512518368506885989454034451310439285852468021720640777676610264945019573206491695898610127130949799843720044219828072414622053837536665130920423421906600245606947880052406827121716544499381789028854684678398151957339299640260415279175415683450762658873643510080424917821110850394539177029219893217121972793525270111178708943999745321316731920425554797748644055598854871334806392712889518968415489260448314532182222339110142269446243920253429627969121902887136464117544952840599559319468658580467213573923345688307172491348922482962578063203709784804049821029921908143630915258776659384883246027240455521050859261591316625856977874607712736971338841137247790310908907201916486191559994467630823953080605381796870810925068050580447460248566301256809325047400321274743706469429920813646182310203515837686094338515868309165839974546563134861124965859553742893871927133393652436589361179444436693356553870544354091792059218557263303601245081293408243552481749337138639916398593898778087007715536710484102945180630978184357783798470019164464844973366585446100194340697453269112480609797854300078337426820549104504245178621819786853561483241732758246089172038277168994560373319744267414153315064470004695745375245826841312819857322648367278299384752501286450468551330599800004093109654736133451184999972147627258225830795987283084788150707467473090484275606750093402983411028780844108200866854872078665065564251899718624784029873930709377648379182642564743966904584868913394450484353690093122650566126157741657122089524934914774176802730628151138638053871439718682656833070991412946344832211549700986125998741356874776569709254238149617172206338060178730958533114415974451539412749146402226872147943358766632595222200690054352048004036595193520085588720379150455508753571574303139743902937918555075756879783481367157658793169428430842026991133515890588919802597968246019070155063859176843694476673309506939444895292965899392638900872907936012280447312081108744333337002613754772040402932655725185662515205794626411447844049172678670427227042768080961462990185908168177599684622670667798572259655677890005884649518898128940138597624622499990503857470867918880357525199349604449846164499683268578344621730735076773203771590159473220245907115117556803695699285277416476722534597668062816486902088847188388702456595171049300058103461978989896709908093449738261640920846460411076021078597728647014980768410599703550702717362149607470262966300971740319129277455114493185373519045429222091817560345235790508005601729639001453583659442015643047559922289023699008076846792161085534751575869248194157642210248700840848649629458147917576127001838655020220827844568657688280343496104473664956218196123678698987860791059990199193092010533842899998015429559350255257990179322420733236809283679886945807171334609324495000151985337655045102512260331384829898388041051068032172248522507652399535533510112053658268903333972583664915523627427842012399695723376857842032310862951555790354283110591877216328411026188728639856230713362958444765122902804270663584459662897153907343330555949301796690559352221641380973654091086384885476496621717186103972965861622729913742388059545414481912540762676648915511217426777324377427871282005678276298708546400244490814460143092268532902523025898600940675261467020157132506931310961898166094697295111261565090998788010857780932240691948013852435519140445006952680299400480627267885557509597529801148441442134680261831687272864030155707812946577017649679313523791750250667062992121692596025388572937306199710186289025709269896875901403947522043416728186470964107501396983510944174908679507804786669537350584291939015404253509115375417710391846889632409056172055288325263169122107463964990749129978241146330313555185950782477294681106688054356021727818958513587445768291856390094533330001276013586574200955262743150823797315302267332327067882542905018887410492070646679284310683983256241734940645708177173777418650513093989362188098660495041051572080786035031632706865720446696827243765557149809761949225577801753943872386556335253103513985767015069823057516813495556934163382170952384921006700960021100274731532247474622761454573742306356920673324193904247472105145201529633958396425765479256278002427863848053524374369667007168119343984726772708434145537794114325929371618466819190916952371139894103127624266178354789952516227872882996417007234230987856286170036806944467073750272981439574900043750804733431192479675473398163301529553734177089202898804004689446897181738578384031246038654160866799567184570991462665957815569328540871785780019923591504109508730861285380803886749924394779297447840074895137463470205995876013213234717827520605742211250943207760907123495856855836652268735668871628789892582285474099727419779233092847965997337571373041681967984682780184903350358660638940098920733788533121073272891333209796701401268437725806368592282042565212090362478292984692262403636164314718239410180329041018635701167571611557210896292894208625499574954484445346333288835601825012062330462249979583659468633436128239073215307152133243284422053086396875953723736744337299032893705782587102787900437540428134885961357366230679925269743035052355498370550353049875624646467202538858546246980830385447754541975003629630513851769234831110880020088909954709246986159762737278340449119917617126421348315911775826405868042860386022537879984378019430773004791984701101854301373151463745945551659966713812802296694939095434742160786213610080997109594431594379624613385221810676982012682979976419486381454867896203738308738388152316657476763183673206589126545304020283206532159302702550733147366689003730376530884592095540614830642010558359670543967185050659887300671898181281034969840783640696286180082795240248197423419963563170660129835478889370649452193099225921884649156597154487260505466780842055197772791889675290033697884253756657388342472034785155918205592191132461822345595783715000077354190528116396534401522131262687238600812887076693197085507487722822568544614222739688689696222813422464829789249958648872003971440455715429787428945579366249721997500722214883757594172818842687012536040172957185348878958332114825808281382220439837558365319469186493992895635885163288466902472224236558757075972035424609328433005846183383488396226790212978908698205193084549860414172759528538734395724235953614790359114539778930719450688720240544877677616664923361781021444110550203273069287473707824910109377342138246162936203249707085890623622038905576133684659264911482685771841838817427992806556122732675959513411762907375186591884385228949118185804785118634048598364087817260872278009604361771627848781131446938341826495705740853179072574549146969128948160215904269796269850974529228073502089070831944188069626300481225800169646276122518417677487967952585426668254974635412241025861956158257648268226621977805198425496657000209203613072337746497031209531210525524809372630303958342270145444646329633842535536247574913085385989690088399993747133425359469398774416780384309640872408128620395996168717534649325830234273342692483531166132009984464580401178528814221025791889881690428878247441314510934542454322212207934381578406114715824685834136327977093978555915352436920022740121969216946513609546175316542129193621671499003884786058026723422421806869052532952940353619386202276629004558939103621703924116512970174422703428686003700774332856813634866655852555846730074576271170374253448474230993984374661579928023730812672420063121063643144707907731647990366382056354942582064660514976438536681523627612465898969243619208067097665655400713669715191641849175407880583628808100935816899088025378622012007766091128084294250919597484997718827658769595030680709216826430172400056364950383639481644252979740328394893946429507524087111272732630062045191147907265388963416226283752220208780405372227967200628225248021110935942762589258096144786465381479130438284922694878780165946841610424143485777103551536404482827531623564565405084604569499860205801344644804819543965718770905432412816047440877537846924476349113325012142800089397457796425455935106754666599749204320595316642299073759879938339712378547129244632228059840989732096958541234466358922700182867838835045186419476218552100712808698736605822045647973406353441467255568048202037016250052521654941585126425765264219479492950011359273919546531544708062528402470579112329437108099695701276280225409472177295046020889595582135892477728381937319315040833362927198500646989229300287809491439524434158655166816298453770822616677732333392741276873121036104632422651414352902972335470533834902843292145523023474910815204658442082700022249646035478541761018588092322398958441488086064605407270712180488252702481503681693725353362396215881484976502727114947901083779880062546306939311504012777349053703890161138811432534444441897308485138708433639818392969405872612554509791035419796862185007148270458720265197165041544935726743844289934920684936798848604315771908862238291445482424224399540365477033186687220144392101497823524976470931827908147521192280186543035560224659426342514888410950068258582100993807625259340440076509524784090317889289975951974140956780311420108731974571145869471331825554035599386030494078893049412244183208012720273741329422636882834172089937430914366931486581288685835527790745187097747339399722156339020324248017820944970575486932917559258877435118285747897825501030703345643975388793454640464706001035147132557050516030742202023654326700522022572285481157344874715594889694937156325677284776550377785719582026225099186525320768333348841246230026060561542436324000142194711777466810607910394117871311174501904360707758366346286316206712504026582515788721006334718856985921812092830323596932543030913998302597130351199458453758176844729499453032026742121338952092428561261810287524073260802336355664139395888232575294432965539971274790673245850971279103294779882810732485531548852595626475112038757473665461881335530103402199581661237591717401649597817555272682068249819556447017818406002024493667711984186491876227272911014723738115665192744219535061722897808064194580488831556466143086812844148607286578582577452841732020745360131136455771527096699233878524050286440101641703099645842857661971682592032349700187819045077356843825872955534141537277559270505014831783919527064286101140027344311677588215570709800787170686727902288624657597363867114534041751463935461879371746897506773178390163631118691982353250089683975719385259859910820808705856703190147004237156645864997271089753305208389728339529478425556409278427003348437356496210181249211267508081319082827100194413311469524605790356533625674938660410735633119938295989625323895775378137681253179871927019934009421901313763831633096713154811984796312770134053002771593479062953612355616774711667170916199316296024785713790231932349075117571452627133837022367108846400264849488865003436279201494842793795451613216520547219511294568497584442617356927968508731683408367851448524768399508689376334999782985446528270887902759886864347516834568354325270978678491896602640242752167063836232466591111015339357948879720245949937736146324170552249591992756073672271578128063781211489443710002250849124523697421097534464657342917400156538551342150007498657331706777566909039149047245764485919313202008875003922604610597590651433912480226373766187221478688165422037131062493001930135573453886329549693992858945954836581532483775723789114361110231755616483565600857519759039485564555309173219870860288351950560730127500331040714286204544141208306277397241890868858130341923043763588585730446769618724694910168184080016765064017373969418720839634975533911338882428607819096700793555131574135168307111554492992319355481787185354557560407126315532603351518706640971842611579640393246540508874016425116207939990416049303039941323813849981685401316554318529589504592117377486811058874698420361362507878339012454193926739161089901726130111530378254858445035827098642199660208446330852380014126332780439073525013967715849780199395494158742412221099420943624816520905242668845457880803422758516078972116592531366083443273931681140791065866752290737405501457948982043007319940179054630727550283676284400542820782686683088753926182881603457555075134531215036518228762629568051482584617047322804968332062109006865727906033731142817554612834372781551100514708459924438632946316771384679940528185419358853638544664106722048801675127435365811505521928024412813669426185324752288130560423512042930716199441371939745666604444339147830715717946278039969596074601763344342619984834616055673267029034746861793398241842447721662791823219235353111513518956621308597410167666415950939078688135646544816540473024175499168106043154563448560247262026758178442649393398637663694231808468335157735451264452758299312391260324068863879849793798047185615128412002453804515582229788846159464021414463720502808323989004345055116260978203213250310337770032577733070977474152091442836562955541801704646305600317631879214284575637196636197503504434200398910596524662556273194837914733248904603665713938593684525066965001966680753462128692157666511368413114672233169009943879217608465687548527422711451823548161892497917172034574861062921667379774080754218688760731589906652641479760732379726635585422080457321375414867706047522515301705806937262383670164063851493049565641756382641498668343754626924616910650871622308963928494684098488692395376555337582568810206555830155028681540068553720825243310849676621396839390021942780494883121678056109705683484897743669989229426750303323056916775196594504677869528187037697098568234692040524205033358481011320819217551976865826191851556184059778366939973684181316116120328103676408965018425305177114307935220908543407343389102259075334563721573762054190329562770012405860400526411938422129680361225698533825434558506329196212798278194223500666664527059630018268549983968670642042526134806950071010693706614311768401796829509857851791056135885492345254319606382057157689857876588588975432181921299438943934635400297701166109896888916508616617276793517227853965624506356876654125427150526573180462462067442420126737804556312573479914742145973343648110765824399679001091895796554902490996426272062467697849242948188623849736372905402270049272303900915530649428169155088433520092091425770956251540335598679849832972874556598253456467534817991930616735094152920749366938724453756033603533195348856824868661564830526560299503256312058492878162373943048051225546147869318975146892459183095500510721909003957645266579846719392802825059811852604736483973414766495479290581543874119403053197201255415637440972617915750751020001802087022291857150323437083426425463207234608352027904233469784523558938072372995584385328412828675138524748989816266075548894492510408820224508963336858578054751115787477065583639261843506278659561224135738071352997175852132053513595634371385993701618399884880285399420435856631585621142300718588704249737054249935358728041105661530380933533304990463088313941669156232101989342662198134646082427415976888092367279584747850754222864661416064763485539131895399097360445580645456902652700113519133525778227773799924322311187819410440834806806583788527557693245381955852589626064913845018263625745035571628115385684899341044402157749217700269847049276486601955115581385713721483610041205606013803858682048118474827234317409433317722952060383197559366514679819194020508561665225529346512435737673062741932131206908559919242191563637089425378578678366277725329063086656815703895357949826956079506592340532914725977540790340633629326958993395663914166922756632825067041797638613019219540803863992048700400241211962246081513555252352638585121622827794902527870244493960595807549264106251807808787657590899251633403946422973802200585338892029863227858266127446355360097177840302768244740058100581225246283808177942905564022710223518713953656441886666056041717974195718359161683701625785853432410336181889233689351500004305058640462921691077353079055134608829339144445553292300583821707706735621150242940049446854483484133163544218355313844664300226675071417675020016915569037896525119700861162351926830953343648467333954107146785143511314778484040984572510874410730010884661701827779176642980182675889387561302049093638120141192789709926354104387878286508613706353289649936885152354188841149119770161079278883978664198779462399735972933154653634239891193284393029101585224883141625059293213955670667552925184305366351641939677185629535367431797829769856009610550720515431507266660002578889871611895530819909928105673074468362637302758730448942184138102584022045582878117963705736305186945307115786467502061626971846480092097561981604845287310397720089333299082044909341458323010837004277627658232312268117669247224880076860519299176080643369144934511078298447091144478420660902211921127021683762481159268848285460654841277930004103782690416025879884636421769191830836168350425198450979068401518436632109454454517088585509807551833511298308218690521199155044719776770351470615432432377559262622381939679334667961583468324430283373581390795361883365222957394157896411618593923925055104266233776321188131143276209204778014036737849454245668074036796858303273497400836493630655495011154214946926678794406929835756569963328820490938905383321784340487324125374313568463855608678270373778666155004569790934046295896029930432021238248891404321273543328307914901988761297089626336676958200395696811456423951631262951995544766847564810016110916173793488812006403551410482083276283859832492471449591158494722934828904736803190863934030543037243567851217803304860838537553275302796298242664993390001566815072956078291489122515065023349558755866046057469992072877128646141405006704031211759708989541302789191470696968584852369183370575698848504022456363893345693498640745580659791587218281235768159687458360747501181304051924267459401612225546511556631261574479324230559537503329341880023356597279365982253768065558911696128830093684266191330587703709927646310588665939719629395723030300905189902849223514107370130645062314810487419173453868917079971666277724566461726858866937552871613324503620806328872594630794722658680278907854508541868403261106226816980523774605408666160679203346955722714349076484705292884914558489253432767918206414324182047526645098761588745263743217417986464029746936596923388579131096345892160866962315170382671851500190311598181420567163112538415175319516728987400514611821305570154257821177556845712030438648916229345393130669885723957359152070109791110488485810433302996090619778277053210175492207036483495250604362302715964721898277612485482137698766079694891325126908426644356667774874535468578360689751656913484443346015658713367170563226357401578450843442740573502537799617985906404618460219633612857584893871477523482797455348516107506536943716026267158337200494814877291294268050441231518171226155088073880095411629398648515281224978632830197741978018772717004306552737882550425283717962005737579791986814752348853294173856343813853936344134348807136680710250547041425356499774205056589220968834136905793456286685220274255941517473469406636906119117318813315910889007611488171138279878707278874219894393803617850826575242153838231858932690225713971103324943838537284535521986099310874124630181505034028032299405988913966721820859711940871607891455801176994921273269306808157163124746902033504931833856812055492952608609779565102335032725689645348091934287063617600337827718449978779301958932011123414114045539380981348096052162383711554764347453454899589859597461469124655545119310079351812611635063536659153291513215041325256174791099862379361206384362531812046472974885536493610246688868918078708257740456036187698671797651804473004929107242153327634897857592791302881742700746072862105616296044140813192053903654235323772645713331127629069403721080926830362370705729080375851445541406775941577789949721718231249328324391201758286336295071889703146472632681006769462042780207180344626588846519694121253515717647890033761033588505562890448729049981086905829701201937443424513789551266331452494730724532890678490390448351857836050857345075152497472744905805440303102161362944956501796579597818908289344613353324928595414503173015441481377017282947241403557217508986130409428232130865675555134781926229084609909450353978211286751497434643117090715293341910277548818809951474674408892757913837108241814325968223296467445271974778025712727678272140922348978580033618683466364760891099383647116378155896500149783102801251586105334048607137061910218615293222029978543326132323465077481779839860977216743181451956711530507190069985881391427267661880524898627271358542168547066502107257791827142651835721288234012278978841212546639747430169122509066152018433000787392140023267357685892927095906705025622112444319388884406012775349445069711633644714307401075426102958442154856402848818224069286394637398880071092615383588927632859049834274540780326290955026166653002626711409980304228840810728497350846061063500675382475170040484518314333259453282309348605696172271409929153340269838112808768766881283110834046393753323979851327433330254854294717295449958433406431896859919927121310349272621984241585067066565589860234950816390815841852023662589730724590658363557759203146339011983513967506460008205354948781187152398072124854469234879928245514135389358542641161162503739182944950672669458249127326940014688040291720961703784414843501138218591472045903795965112216841743621695881877572896622622821525489777181037556761493984983976577307341325938359649219216394011766154378558759359397928485311917872188635500363762050217710665812141566367581020642212779810381113163408053831807186815584289128806782492182905413487857400184331567286270269025951036066979768302941161853490484369778364964002050956376163640917841930302975996379603585126418757753948853791029451466787781274530766269357089283303358867199792979405413267957080157498756620313398158399144337602654054681678139397499396389275811804197707088890495045450321525822546798881503915031047951565829358474813201496460672810166441260671559892230266748941531975950299765304931820765115845874842388624237527017811385474988987390695176770885357239270509880903312714046192688870495006004423021978987931901557302264364695069498892303770623744296621716397248506641162983408058118937915469552222380224125057335324328866694879458728809599114996661745354586541102885692352953360286065121332422204513098801056366162628820168072421147188628574056404332845256947248718106163295118873005323066465245541455353634948911417407243537906241844202309047228907770194243013168068398062556072929260394313446510263080741962101435978584801744022353405857277489843864034619555384900331055632554295036042504576698667133424956272865307783852147438165592703966155532003558709731430961603760785690496428535679185452767348926219061605943745584385154810768984764156853226384144862029934030456716126615504543884678002337760502318534819821086922460988576998444309217211974580354820294325034225221859357115100189380367322843494519841599381923009133370159155568190542511109722407763367192831588896659811699511363795085107525607540119126404686161240805443677666035334889525407136644119509902003791175397512205175538543702184919147749100134740995488034954670208886754076432052479944379435412142334192071301672242296178464751767989031380206076540217343332952280052480335415702624010463294439978049645493152084383225161402272208033387213018206161451662336006646088849526621624996563111948487549144520671735720758986786133553799904443177043306896034374185646617166648686232184342420519971915275216195151784188999416563568991410234736218851135047783074030226331188147571523588925118264173328676348206477407330548781392621431024168631036182082603540331142084552418653426432132327697798421312529592068337641798656684688223762291700000653395700513174600084107477041925591365504809166747407288817675198462082293618449034198538286792773750892632377323294123705219125579067082178144495763758201572009711189988857998317830525477698113667559838772955490715476178783168677605123055811894235523185889432388807765952153064587743007214942139641991718128838480921821840028471841419264311181951645140503254717967389062366895208167880775271218195369756728999527323428712277394769754398939763900349459761211589779511819169765516668645267283656224199765908877880062105672738283690786763482197862339654240621619708943520969946419516642330662320011290697347141465581537833790122153092972973223428272984721599590529388322741615208273279957026338636893421274352286375286165867389269952517005575971411475133294394798074331778292961721102445912144157102263048260359005351721146377634812889314022080255716149721229600104027843184991369968807164501236003733483727173322408197538958331269313904633993776804018745981030255098586675065806744223482410684872758769197978939907151811773308296952840857221699125997023827453695775184087268401301602381028659455410447416839274727323934043020304722377099836932274376434545800913449698649115770156856876884707921043234360456343398643473341683577091840307724187652138460821001277533457479659084387361662002097664131884524007750665343321012512169395871205442437042390879967915132023099631932124830145906478606737751436001974684133347527981215650678966282622587559871238690594046889815528703825026595907261125521333346790416980313741658811194639911044231769927071489388826544803865446594588642613729133901683428251517091747278184793587731052360837448102856078575091115808247564294647326048088214582415360515838832850156595792745496522626875543779232249120019218298989093571143243884527998092655824477199026789533201472428227687727379958371589235606695930567205424609078990015998109881343998482958383382312198625091048389975284742400766757979445599222353396087917782153478732818953716542649901339781777281190881399958473502010645813768314957527058413773183512514410488612290207819809756606167188640869337923457016319462681364185000578050000552495745523722370422392102641552728425851838900862874911964096255881926861919439231874777243676823689131364314928600551472305789837341340828887189841915253665880934203805880372189443332918526420315139247421365383367438922047035396938794285323760079523236954668563962987780763491778515413580112157014093805493095449602906098687571684521049519690819489064089771063304134226990586323318960593527395267234409359263211043999122203466992732358310314707346902556895214375378683384378695964295615538259318111462265910560821442184825861826970937156365248646741202522795012982030540225349425444680718500518222151969037629968107343968133325187525576622511723959787226289456585247938302528801512876784253535840719961289844290302869717002754536378362235890706028286932504661049816194104232556070385425171341628265511718608558462918952691106848918093030456223095369927764824483762879666522686568522176148767808008703169625630623208142981482640983659920283058963892333750939442989024373556244991281176511258574068144311763256702191229227207763744268498488713010432498441752259626625873699408525415673539224185189094007253095344744467246797108383359825194982936413631000095710206724507544709966550602424043080278995225470626956878769503064281378291178543000895131046598714333623658592602056496458112005674067824674073385663604972172937196989400961659440761598827335844477060685799545055512215471632851552296214693683531747220594029091727662971903772282373964165104100031507990664682845438456852102514386981949081652370552643251820522689804911810459681786046582292241849265903122425406703394773857188670550574425297747242788639151667698079571122746385613697981991144043300178868084342032216945693600576264687681571459170987479136803316180019060860062286332087101501125625572508629635795154704678139716154547808999823120867362459271684416148230474513531786825639414358611818719969984398339990892487063314189608534415242527841765259448296558884216659893787270464577263030992209194893575060353906406047874418114751739064681165236399474885886115479494462387030169512658040906359399759142641307156905146141045864922798320359538325330454838082894262019999334813054636907510441907006432607826259015721271568754688498727422401108002828585967281987928798387575708455071583715532477723369693470518509869130149055560462720096249018453451878540714045739235704333727231006155734964956555170441987102782187003902768432232023414266323236911979055883078237973979193676143197965359518774007574691443684348191649593939270393456330227887060239324976777031688172583093812023252292765819017883321238123573565523571288366594448704398483868063680141155750651916795769787672984489120399746567472931689510287617833882236893368799564804495122579135124619790253400577470261751294490486029036582840509531650574299905037325169508507599965224903274130431280769076253492828576821346729418345818650391131128754337895706882254256838569859288786867406508171001251947054410481495649916307015974841281472244371234752523367026526537954283217504346993949992861420160200178430307176764774069108605215564994694149682537476102833242410255846705601820717788247863680467661086270364101413778433432183527555512298235495326911676017353867469274443514783098665808566822854063675218561755255955128209878437417941126320521838465855411061782481142366535453072414978821672636369253896892407109863145543007143790138083993344426771255080677674437483917862829260629000925599131623001145027158189705044609228982866919379011108472476440521429211915343125974970278536630003010484980092032725956494013212464958849860963490467592377580456140431503489499460811184118726451663755915800777615166586107605250491159401885398955370819126720053588217419792729957743475287219987283709013968043649901058287212274720690399335418084852826125229914666772121593556316770484909264559613554320308809617956456730195903141841605847498748053401697965452276116623448503123866392811097696618604120193375949063547236333114420484395529682232757928832699154724415729115347669775595905300811089706480216526884851946190981733861917993561531200277050946880739158243841384502948148966504214743610675670532883859233059217258599988271461327905734098603148198162058882258811358750242419475572385931147378616760481257148207171376829931477028484123260028699890864671238785284268142431074775224473042244731176773020984557326306739656948995531729352648251322534462659104984854302296826540083460399101185411085968762267569795130780758460222499318413494731533071483793161043788709971590370156549157994208422636301049312505434820670882979533312706037160199910162418922175469313700891086221207150049456416825773578008298489087808799870821124878377841695749989131261702218294993643256358526327300214458303954077658167868498732423056965538461343292690460032454583510636836093140447670612683261878570460453601273623303782913134995773238276909035856740386851592893755391744726009861185915164497986173756513133271644535515273826643290438743184504276584233214016782767960514501145092925074932874751950113070755598762915092482593272328830620637208389043577976696140055823266315379054494574627909507743701239406974917226985177556568634946065279118037378970086471508898366481527501437337251499815728340631873825333006852203267619029444984431421129855989621801636805081153999753419014218567055845383980815373401302032103529267525170682065406250019363886595527153453818484533441568748367443393436876194830390739735005991981001546890787110466603031043257175697110175697359665683598309807728440353514767858662799066612717531286226232719805761049523514376172260372337522067025876448840930674863782607065784617625183379717379251271662653209363419813610560049748155774545165736719533546263709193647899347962936834657830302081577492600075086487678734500562626823913273187689589746805291938415683315455492760166747481059263859584643823031461268409173706134210954544069047095792262221834821071243962599039648314786539304368043110071484495620011392922973373962993084401535139125016057236998752166351725022815329612232612308760883845765777328238650231581200695115155081765336730767511981570900291559047356060324072218298463459788811610953442972635416883656110911670089301104542860325120017018914054401988276254177015106186097466198005496591458857222370665598053593900191875045613945822090123935328332947951033070431638610910546185845886898542118416914156995653460085017412571681832619972895993996504758354578881732851295097135973289155492643186322013653501737314335739901179821954422941756421917006017303740510727855191392656730188958223091936053146231900419573566963083314817284586171499211848606497756828519987201875498108222539159805795322933012993209164468749077629524939952193995783367848847014041424043937057888290883809190210508718716804593544027349360525610658164450266927334330976073975497578194425187256264491125221355726649557145673429163784222837394210529669394192986547121484408780089603990743661698026988764220524513799622782168620904895027088110164220355444840394863505831457487255658215676110149533296421352293312713997738233643000606536715753227631424394833938262417809234347484689309376468269984997796127625854184847902059602234057954772729661968408316869727049337573771532151594510682530451796268367263316297210095727118807516806196792991046588719015706553438677300127984135794527983152383936623348355323268678610059427743254550028436754734725121300583534878890751146393101154133746574161868906316560659907109772873756219604490777787920777272777477360978161005712286273414117324197632871395721969049188051471673259916056321808309286431204245963063511633667456793951471250998904518149315459973930863119726530974662121724369065368117872180599304501635072926357226291744953928062254603577110647829036569487386438083613636279104150708946240306349888293246415032444708409484359181359855118192553188628553412984372315831380281896537845561170998489753611263992689455261130382375164444978958793585897948448919259375327306383962345783830570943031432243862900834937156780127660605051235162350959604856606795699148194320425405064458151942532164315317262079026487874261771475321992781758377384687718313145587730086925071568744277913354235909705095556458956712414364923547820203375184507764783132374433530576870364053921663110962080044710559432545374790835210551021281622775877165894200250025378065446789405246396136482235864463030698630639173741280449521182606952051839459858745449554017012100737760764159545073381300966594371330545422696422551178996201673140145336516187581617044225100456931980549557877750564932351874806761997097985493535528808751239817426391270208983907460899379004800868023292895665607004917917479790338806770822345788950767174702073641066502942267308261794002846320096158040491235348749547067987777160742999241788756922408453607131819471158169450223199024225761830506120291703664273747266580649624105316512090283535352352548939207558785739856125711632732470588531476994491304771627657219748143002690866460271600729821677306923216454842076137023670882373569160057719781400111576769113971110587302584918939857902611973589526076310633197270277426224767975154818466459488355389204576873478163927824994906460936318818092680956760079919962272328821931146690668390903438645818476810709985583835764540428618220000762420263711499699224532725157227815610192683686853488282751712626521046518268028912249258921825147613930883003901074829161524833294262648743395933436466826529123640688817160327140519894311036017934969034730983512158161093646295206106751447330401544395124107916169505920893901270378790150404395885472977091857323544027329603124732341009375382465992724813546608196724890987272096849410602871658137982783872158803864638629783381356943835842470121744445086650253024728809543668270186045772176606424511437947034142082534123694626724682716493100942284603126526558491100758145079652747717079536006497423098197835980411502585656085688200865716827625352207105064588062109498700804206552786916051042960210289798959092700302997464378771439759378036144985987733395190583104968309089495824412110061073227915367076644255640783492077379472319186234510871081970902519259830017256664618914383612127750407535188408299592019423833588958118179634018366587992921242945274751436208744569801601942464677797026549450782795841621957187659581692464223341637356424310267308146805416497301752083699126286745184936361449506988264919376721128298204047219578111197911135279963203223275006175166023461124079685174926215517899321355975802777988154959051834836688871783266924922262620245143112443956524746997798472108918370562440902448361906129066048567417571620544868437819490391950553999512887423098438200827422082732542282259820300595600206744125784883849945131444789731249315772967618463794297949443527560234908749358388967596613662675534884526239027330280602695386178301632667511582382978269237728184235724678676297808325653214065159994711461735868909505216324349500257153480126785478875617851222689975837899425994764965749889245604946280309566469708673234020299968155598223802800491445877513058914324001887599878890252869445080289778687018207132289826560957307976480348608970623214829176666407146597699691081165174190529257141415908801852135451854543495110870620809574592010465463746353823381708061472848420958055857849856158553839154500067464981376115043321769762396612191944798310605224529678548303137761675115894312398909639511988625918537012560120559105209613289115802365210481270351706343470627694069715334340857541967663190271714166386601155995730186017447165573221019626643246521991151481240827321388412005699356327547082670888607503970053471730225809851510985141636602360748103399095119446359535511972372737981485210254956556245768904898188318046578242435593812079286822188557718638876202113798820362254863556882417493373775533424342407774306975869546819139367915441244332615499390029032696576918989296766256291493787454801943732902014522680561308545148337479894328967569796439720342131507983162955792992451496477807504984439342510493440747038028674456719268733238558667886372611891549791020060452311563820127407792286281511470622271010590728402017574944613294072134826824900256720069194932245691419031439515574281417928375753366224299445225011945576603269560009514288269525370217782866681446213430833463255014814177561949756759888322500862320514076504978859842929102086879032167543074842220550399893308542680747277532195253758706452835993979535184272477119207524984017466824501773477963644292483504469434563177167847482351846254729435592528112406343936210595303862796829759761196516507313083930311714190039963673924058254923056057114607777268387559012746745820589907370426478850818733563219778536073163400258550451807357378591479507429117564993086623305663950948046484141053089308353317629331904463481508866553474256427220076393680491469588699317836465787870464665132427034785344671472704928709485662169276640210659442566520478852576850866871699357719838303148532286901117259067592287349097522274851876784964073245140985244414163723197960421099383118605600578776678323638645707940694037655012377938799723710678348318305082191500008746062256402924409788891384868040773662707819837654466144113850161062873239563769320277159149723364518012957728947260534785659347891298614720771380138943446873231815440990769580045774305296748411149680580885361640115438780864131118927055629432288450788603724462573568903889566475125644835209060407530989685236224142519150820587402941045830196750705473757211814233836685892133509294987145402049398760972270748694626804063336661926998635654939754168787359202358366084087960877305561111379600881179709753063854893761796637798871997428298477154385476761938584985835700202824546987809449386644697935353121592133304375805899949112779630698561946335656153236564670705679493492850031506116697872709423698907057910634516950627691895607586097513806970938135370281227818793378381947381168266484208634837877261889935586079298726061302677437351790627493154269258913355479088597839311672840345850213496807104598544149851268974405297881408259470697490152656097725196590614772061002496153448102212332561951459402597327273043850103808917887817007884746016103675853053587549379097143374616124080851847115420946914367537176179948089184617024325096808929626564389556943950438925346188366283979459539328027662621469604219818008845286061881028056775113336732776818224026138230022652024955038834683865861885881858934644083130406879942654631412356139869657995424371418682930726809931703460439390962836135295661085934858219469620386466922208741513406550612497700822897710782110748892924546844804499965649931100075481460559865073283518701541852625902219222265405962627668727607098498758990106951696159227518035096951750759288432287486813326211813420344219036976073373808934050725483156948971125546286482723286378908093221556272846305617900419712207283190432646534511800411041493018376696612229910817036907371396730459600597830413466572703834276293786451029249473821374923868627422987761838914925382165395514854574430618823796910842847071195543865148971518220358348686605413575995843964097439998618048571192136019812603387540378433473788168416018187794177529780814402834553465767911217724479625005502200352039662709523795096469623110781271598398232182946447215943639859254546980207668506083052905662165466978880960644605842131278810896144213784003424255469231410250884516911948765140086603031850825676811428197244528934325268943997465461839171802570680443573611234108369955389663118903719497611255616279825908642193767268940601755839881156841579772971473324294524560617580203090640821486040398989043456088795803073028265762074316181615890038280558168005769050293455065586121633361461090573943521588303183714259036701536849300409531696767529023245578615582490639796812655577131877415939368247417766267386762537214566750023528533774089335491135430220795741956161738260159218694288856041027800782184234221887777890435381578552503942245902611788107435074327275801197363375328062469300356164834000066901721137925882830211104294005229084931699604017753111431783968803472354950423463828332456602988360789906016437653854049333823902553603482393437191776249655714896404369182542252219253679362745539039359859301337551837435865719537570763392168386880071231948995434748048805818737005671213464870936414327915777484273195844417645760739165865917167859750678578878355727440362743901963672177023628033502181050117394696938658993745426599355271129063226786879482808584156942802648622674116523464518127111737026294328005963364555053182780501972622988269309628356966748254687156139076924017625323728504349179303783095787591835112111529150678553979207811000332460656600057932476197599322840230356507101034798518014818188395167925527011404410965560955417467554525586407797112937504811125212337297164981357709971908692252984104793139457226868686270900061908424376685723126386959913318532682067488647054373045721450265857787711838736031626562108616781762439023617067468732152296324774252117548819182744103463177545781951849511329630607816288596634802638648016603768263047245985252164186244418464170152402600138777025308605315828992477875658393675314926442152170857592736346978259073558502865783346533232420658512957157151901020855245300918010034433511300661853962149916254381443175492112679240146361684013252974524297181684032748469726341269553199295550533270260123218531456890119729374908026148503389468142247933894268471470478726146282572855935028021236592595112923472168151305227037635235227235895121948047060170924250837833837383381501726485828176142373774674176345343315630997001262464915034601448920808049319928379744192532443446251257914085122137681255537116476583999681492785259858339326851540668556066928567725818488757322428424596619223271173710820434329545041392478621852094639740582041641987248624334579954165512485506205252830217002111532160037191382975925711684636662695600540227422164757409610696544172762810525980549186920312300731909810192217617062347782402028488714732324963552908281759901942386141875149979295188275530028499034622690766202279317799291036170123263167100300717977272546027122060717549048290741780461812853417880334756261858645694642699016317937664603161182657781059072929038466184352325078955041119726270552225483574115358490988534836843784634052739932663007821232591592117025613946151512370770963920151753858290379729184680884517020203525570742922611481151813733082277191205587008819556771837424063942623179325933034902102298347535556160952242330641004775061950951428518657423459423920045320404398417044504225271989045070087817869570114408129975568244642326586354714563323608023946240110492364148013953954756581835410613294128374503118428312474076157388483841381003008752432326988599753443315487271332324847519504629760606113826829725247145604488958360201695972340332154477055958720714241115464518910980603228002983193802890195514703626952805932729538471628068269570013968365552206661396034842627361575139757671356990660369142199454361555558904564146902950736776261755047895787655371097368824216439900972307712356178956862214396974575983964401535880439839184142972480325742936136522957213510348539835921561291092278857204860379538350128674068337746912192477281124861772244661093354654723977573497458290822316888415342654424831403374286161732734363724122373858104035619727561626086744326919798764558657414209795023166362686319696669610946606525799568500950805253774237374039720058532272867973219113910088488258219115558503394661422221669736305285216955841172428023520991491897046155473040058871742670173686443208628550464352521786255866913794740303395236147810297226819349624603039283459388882867578434624356809603752231210187218251911781845301102613902875805296673666145445163299264412719991277531478023341824518824355977038377979311483990496196155273996022957685976681539814101870333714926538417439540320670016758481846064239113107490532324584721232124986632418916561975955930119362539637204486799213221859331319293618668591545932072354831865260122513326725859851692052735924477473571208564235035990547287258806072126891736561646464076604903158059947038365001264316028373434927149816976226828191792870342107693364882327839703005659638810408296966558507871006459180931679923407811649309283562464488028286488666753521601799308012868873736135311123368093149702917778848615816526732158110528460657432521932004128531662875404303266299900654112171453689080099021963316058138435661993189068645478586709449505153996990260418301846338617367145601831873083084930873542714608052465589614888431720607752250353168643141648878403574748802368065083921775955067938063968496369390337149418258915430177694521905628000922873185596507930584995684741150620931964822455736999656562118110621274686199343486087971756373607005546552169800515976721182490064096337135139787748072382771241973079323257287958237182128053910784434092243361852041438862443145878078996220599504815765236280826983004054847824547812014717760516136528735849886120207822989497816203525840354945492699637277004510143182431614448653242917485055151181500547549498682735277504759295367180380038249794307531992438095585234397966700583000037388156091078453168399089097649280927675363157545190334933325299009925773653132911910114250265758636995598849868679637810265443922659074830216300578196668316386307468951621646448104126670284078468671163914532168168798655950244721588104293544664450714213843407048548315860250273605095894793235001575442950810919627796603878834092577597886302373708204066786440691865779350098966726497012294514640656727891925449208981414709197679626178050211024432372715010791630127068496744072102267279031098607540586616312582155563173609629205294434553066439404593431491411218308053780149625952345187182425302719516555468681443192671425742365302125001013381299059263339701401752178067348284232233309540700598896232466911862267725992887084168180960425940741676263460574975655432314344172752994322577781033810557473939084318031577640136968699338514756696763401378562714000291355008509220120635702753443472834262635293277398767745253135601756993170801205712083336617502829644946417931869824281907140878009032241397470291000377903335827913888778661087966781514818992587805271522939246421324857144793384488150304405644957214440018894256283460428522419055643219081048521053940842263960137054303973724409802577463431994180114689432765722456068879330166103925477554195471510291830300200392950621104151214759934333843558278600073100683165983043291773300533132056273424239892390262821341705852395872338960815738950417677147296801188804140866637003777659874477986299828639863337839669045347059194390208067240263909173247711180075475963063497832346867115068619970336215775180402114135056740905331057643292359826447429323087024719924620613313359666815096806013097088092154620849352701874406336414540590778459417246536570283701240620543763724438875376300113478485705224774084007727373167131824643527831507506824739335822971153819931016963149554173214819281935939462489503680770067867964044409343057718712939041609626909252353770501493724756832598703115846321664178632612726110670251756814763068637948590954823699801209643016180115236983366798273843071949429554300390235782539629766755308461703340428029653874856075916239526401646327634919741576226879528441553843831376042362422168778344536251820504716444839175104134544290623853903240372836958011974678572045298802639965026547633836470486603746894210264960469700170834918865387695826508554085641897674125784336869860158109949084032979075887229413943611191670065292815579130808089006609371733050632832217422540324156514397488352315042423713399570184007571734736261750359443314193554116838146879209897806362381699616519555081227810103544554364917331561689669770047700685047361249692882767169601281627342108492741496017204138334909694817789772246033947374190714943272652683677531420713625921530550871985559937735033067875901696150747365167893022455264397959913196578545366135574044711890693262932471048660216857630444308187711443484213079795444002101996579579221962460962170479809352431350015066513359086390714905075196683160448003316920860969698310992160365841012873945392832432253794807221338411844999328718088353888787745440961123622473681743617658420677337830935364778795721737162284964202373492243553320390158217450915647198380073648761028655640867413549677217726360574000211978288188722810217151868254762515856925738668284450466346813136659279412805063369728912496878303480421465965307191714253322737988547571750331378703101043990918648436329397124801890570489076960630896307308855886588397251016552422942463217935005649511540116510183453476444088542463826659657071915889344199477022320835770711879477614091422581358664733224483268234769569688079726075671238048279009812857293908532361929997922126640250017641796954878148462345604215951951207695577647942835431457325832705860175503871303709803146587813362124695238438928731923873918580411141278768925411662667122652817049035502048168257617230775861253559461597599809983428223896125522142780310908406426602840664836654801979690322321940874437154418693738751922906389134956690028106266584008579064860855724272165021684326680200385344649841538436450634869344686047744047431425405511159663493166717281809447266632015787978929170433050212992844608004348906927618174002026092948675942850177634864013152024363811295230401862665641849732045946207096821625962265927707159001623911095724745629468273774950254667389841205210056206536178808687531474830527405998145113090749131693768182616967533410650265300790784462602535188853868239983674082097366143719852888632047393051769515531201293387536705007912203444732092111533607450839664257884722406255740412112364239022384958607026921954340893929508699343923168288812907516445189391815698203759806497100860646591911790296993940291834568731681293884272994485052639006655799607299133094152360618352950827183101625050848003130722764471468271265471065507329064951682292485474179326984523342800478321561337247595396852693172274748592980354784749481549924473677710610484624216419132410464876599328111888756130745865808815507643626826668462124648651784321778412751028923957057411378911017830074481572112799060068464774399115795241009152444041774266958737958192847634727213946064837221285927749086604952484574794744911091091035251908542233394392226771269411112591969970080904222146941528955984201429799242046440748004154524159533487317832765905500029763667973184239997074754217878197830859955889771620596135535631248487497002983922117225378767076551125335346078324712257712825549107831852728394344321175680457866842124893704619698756787449173562157355629625668826238837525995357179075997055772745996013595811820880741831493590853357469356249266646736814722366288114325627835756759166639533761103206744331566081192923268397488798542344517967534696807303958466790481792912422377958578213408387569002440206272316287976531216728085924342543128807200123782580178629240927423377255964185044622984219111142337571229966302148764770034550293259830650863796648977896165021020973438960604831766180045384363706258463624099584198292502137819471094652539031668863967072519831412394088438442933027817149416353648295497794522158625003767422336192257695832482756965472599181642757209505609141803406728028719455691030866499028106824176276539447372300139384458986208035267936191430352115288537722700357349114608903235610708638836392456039920489721765799271923456559465803114115887852212839032940188652044274460311335755989697966309049048400514077701472507470861206288501612826640749420428844763306744389350662094991306518711498581838405293093023756348731055115423937994812001748248931513360838104856398033725377896484097393965136196093295128566584811782496537385815823503709904928945266814095801790855457434136606626529400660415011021021071829565820265540702242461046918927578743415907513319441491697921282724227132507509553301377690796494742780986016938728186143134549131106691973056407073645890076891448154157817521227034339887427948356438060753317121161437606174450766675431966089190298484609706283817923154488146441307342633653436197339125252463824595394202159587550220801395490599939489324363736931668613478572099452462961630690913177898784562067676339199573888630153051663447241066483151599361456439312810789245212282731444969129774131630431804311075385770598760860691496317348208637605313394042986830112984562837196078776117457538098153895730992082948158302615693087149333684515806562257585220884829376621050602415352020983867978209547558225189640082127735163423310161476268656638832816807335065756548872174711036859149617394067995805231602656556072994787961131878526744765324215262962043337542148323127726521545714632759933252923710555501901759807922933158891559134741946915740653192795749210380413984663111219285645467888456644571561009896058027746660433418936367230589269074784132629590454420675879315819686740818586336177134070850745870211760546404098821564928914663574532501704497853507631482546583685150498330810923527406208509237371512127347631229383809604133659372035221307835203164528486350150895649795609637532327178959179361219895009998576365321234100999079115866813957276470112426851357591279476430025339796087619500543066427668398031501258486974413776783683131474949074973273865873913781715028023761929532386130406367670897128769251229274540339129791895517598721654212676541681819911913360421697791271633696213408648482165949083230125785671130826402601135576773602553180892777129674772391849411292458638244658128628659606040446590671159111111860214049820291348048188356614316352188319904760730576256752389509023469662182938677995186688833119881522045664975080318796233520773575895260673267745694505184379769355180975374183173863849639173774443810161833037481495040321418647342055518140157115983843722047278421752804420577484771241108109065296407060101374740961260028861571178443232538728046754220713932142293438124024151843052454149367449237744615634520064897576388745514697026296575505143330264961494045344236559944312412980863951024567404541377771747171971888368351297083464210699936925568243175658396014613045840509045238591747146836826802624625369071645969423657289968734484025448782374872600309022520951541733007342601699652599120982339580901218246507732977124067828961535645126026010617686207392716813648729331208349605664816764404440023298369953823513141736157502726992623850301253522884281292848645024738527355629134036477241223421835925443596444853168267588205474236151741445291310372319923382346888016507994559870452206662053733842899786911636581759550998924320247228795941248106141263228542129111453489458558258727959023973718349580430748023569904947122240329895073201111730238055212469025565104994614437782556563791705011286414027064305324762811645482963387705310504995494659467734414925709591860574123846760052324255309394244759145873955178202676263048436075698852990834449960818500857552346632054688366928158165952284008830806032859618062413601221932749585519734189086038999783562796312853170667094726879751560574952114933151504306374669162839659106373883155445406978438412394448646016482548567568022644829649728684009978417108625787909354775761355449261980070244459108847401323962693760596890978842760508163500012895259305760549671911541554744847170869027068546853626008880147370637355510715307431384119973654906285034955204583923904082058964573712523268668928145839535219373445433232634097458950898606185406542488316466305049844216318766520499441493171649309765561736563486598785778500995735766829574780318227935435687094280898848892183563378864153558148535537265031449034159523583909699404514805086128453127288917434881829790679742904575758007814760373165708439437117741161625394056014484436420869972995443878043184393135202202247697681094463469183108164605830471533051654356558300194120449462681899546375805343451319938074979874112026003478421371468837478516525511013777760847015451912633063641751551462443180448653977107934129551963629825559641403074578603922194234873222507295893943939416624507284978367508146741665433694144493794410066934464271538694335244688986170959904510561283668168263550396847945821202198062153333525671063479011286460140891395693711568795283060942884409763607129562059400110194857187401791953657268113740974595102529226449390610469858192519477798361739520420630728256234630171425849937480208654514678472401229611312619757507989400307378121406443358882603539965600028019648199239680224605719861012324916043600822291106643160491765098219848016172353036127573374093498062613964829537671430306071769905774528992630919249613256418427435583190544948633476231796815924105779979518588925975678773250673815826023020195617637416997759807523198164335474667095006134712608814117332182477756030460490061645056062499696052482143445690999580051653423252821717116281234308468274762003227197694426094130060684247105075487771609290629149764355155362732071662982584433971991625607973344583869578806182268641922245530941797388626736423950907429468760203721252403308953613614276068284914696820195905949868304577412749012207303843671178403417338207553363118334570386253654216072366628995073932902353023416580064708304983477302956011127435590776065348830088656573701906004566313497183776804653751454084633038371828899112761771649735134830604102637645091567400639685620603006636309530385039901492154911874173749463416773752884337896166282387131156275170030538618785980257389009145842551741729238338432459805353024873418662609801765942590255519566752233731787722603916980644617491167986140229371686128054055475126646352232494230638097486531642330989922170502023740719305514217167668420117856222400162460680829849624066117427472445341599052587113013911505266146038430124324010708789421403518693536650282177196218579249760024633103482882756482679287090520449073539078280983562688116222527062922900372075483744553803692242799716572202320579792729773952770557783938512520242490549747859856506908411479123578310979697379111085685732078191426090016281720903879298263446875481871230060091481881888934870558895213897722321544598505895793851085403093097766832604105107525294032423234054579212860578711453717197959130900984694867827039586860406148215602884155310255766235299829296829128573209998580306748162168922272839132481887276775852798757475392716880554025973078468980598618403459885167706158257504641474492923675230246485678400682463802334161904899246310348572955098940809901451080509474256064656679806079536659821616628635689719994628410589996722517006011654436341954213855921888912861454356705462125893625286272616979481326058060344581458495661814528448286048876396518107662329322201548494192570486126111296226411325234769277418795752689264115589543228044125887682717155075911107828019128772998048028798695815291776158131754075244982188010477105012001019617426570647088350442661473721942768996047908841126604035764685560705591416099692690996520405793658478349923011143913944486952604889611273503517004950219804105507809792755557745849002606189284623406402518679388469798470667035007789303214625431873022919421943424667691462954805597535227905501711112219480699819163924820651444823237642210988500936640624355156647152409662497977067007110669225786136076015506591334856164401040496481759170207342673801153407702036679641382990311685648842258445154799227569889679852395998601914756106519542453034559569784752048866020410918864275656714983724194785460723651202660830748480892353777515762667942829950928176050876422889782720251101591059041832774155137135669781429082142030516658151197360918293991727321794088844393188962248239151169358875066242885901274732943821654287705459507136819316785848107308583392469582526688041645788676531534218841330943483681180686438575514417956209072063326707370217030439340898455078157065332819585227957666588868974764627240476177278064655623127541839304886117934427847851990541178314362761653046527071235896833201072797369502432603340408163458863107918764498166334271215897770557665016490921123321394608706675679854851541873116915163602597385889873394768755707173331108523965652523243912917310008468534252017731783031371393660250289657435191910981937494174137183162286164444274004537274265426073621082266996618498274906534352331838300017741466103560423862303742553890308007544173469984552085192235294872504784490229226983032099450216105007729331455196087651364491191664756102954921309632330129410395070523281364667231089904204553687944889917530698772211360750493466891709720027490928368332082619654084437170651811015676010944727596489002858532896015625892424051333368312903290999991519251901025698311867303711355503930637046324575689725423365702706771661995692548473443823962354203028023045176568624172808954710782613342730478761875234237024970874992266422780345412325943729518888799850918663614348374210616842448054818651819058682216004691939911550974628101150506375599751528702731540363739109497761134632613372987937995831941404727918078533744484058924815787905888260150256550621417123435181344504891394868761795727261861725335062617482426686033418413693373407813873735652738197163884926194676125470584214900237082205644062493292093868698518899854385827836807221508843123719787383216940876990868017644013506614540678429752896532706699914978356496783115078312867535862593624824742047045011033322168292358827210766236627572308783308895828742170354485207289848549099107716230472735723756470120060050085075568674396475632755170309272434377138239964396769510414251333848659118296389753873450737859231644365871809899792381912150966250465655393885717592046837857142753687193986657659530146236645103930668878886127003987264410761744728696556111453017516981605187762304089799769546481827046023457703983415152793062605075729534412527858335827421263993412338260599141511948800653075532400343607509479887377454123122364237785614110675627335795958450011924094235664150999526464884604866680120672643882164494546010733695390658476501899653399046932466436911748332187299570613875569303934879707199552200186213646842350183855817274700579575166957247197068596283085368504049780734383285136967273166094181444268153099146591109087452648842653568927094450668467620988625262554339814637783974615875871315536294744854984903581930322463738370607796329422808064727563451138195790796544217834054684802984695900950922296768389928249334701640510802796063842323416435029779725894807595754721604546086675761659655357925075302750866989835886397874405344643776814229986439420476232612760871179729207895182143612362086591665627064743677268834647683970403540747195572827781194943148677828655811093656747622341342560438191719938889481136619888915970642737534691269854322084798394563569680721513778848226646083031757434170727984780630317666518562295992789915419727224446365495732077390073027155542048664736549582335620592501139963693305979106379556972338922710634663836860811428653125182703613980781435077884096668060970071317095571766957732727591813191063241188815559493654090245651340132057484443343329011327116966017743650356915846158146858927518395620336026697864291769015427765298014599497681350672128864657810683367576893455110034770800974526228894138604655068570677659026466733809314706456163704998588232107937299548131629112774256331075509393068293693654933217026491070802137062349594710761414234869141584039527608643685737139541251248266808111022943702160320630429835157746808998287268248993498545980933742689436092846094958953643265991498699531191868001011250580827722840228933375879640675971258637242790973466513512622059842795138162075773570133574010388791292683187940592041008615598789058134671202524006832346405976616712026670445541962062339005903044875015858983710490895381974187676280956146508366716185913438052663990469226255139240639352397627848153343544900297183412873712221181890158548901465859975101484723935776272440696306190038376294305154832915546129314026247180706722821611411911524698555493718415574919022971437732749902281875032872102613242918551877114758940889478979280033172697952465429579784140140498197622976499558159700913374260796378981011681224894673027315774621441914448695818861099964474803703054622939851859264826359160802743989275280891864922782146463637210850353144607920629564423897588785841614328619694302197001241338237119324863924482284615815045998898727867855255477234748689277059317031581330562237717142052932952790680202237464299041650350414837609722609991562234457777148726367697900791725876202094700692282501338749021276677088854474931395205662948618756318386195561561850594143679115013830619819999281203554649528621870667952534958877211207133197941399195648646945315048159197226884694443615177801729912160269524006022293417381290143384544465221341187130871462825423473822470018353703007953181574097343598379723170697939890093783775556353509973565129509060278137072494296020779705065531952510008709673060365915524266294715309831462785139160424438376217657044707426060590544549392210864690463895842627056921828585302781892950430919295231578425635978670156017286414874174944930927451718993475768421598343968109057481450964400778368423281033760525303307093718668334096779207425105002424160429816285361700662953469293948497569272740823433995722871069780106938908723418509015093763883387646790851754745435702296773597083310751751899643429101240104251480519919831310414127068423753206792278406772682356866226678236907240951262036439554530309142867611553622352009890763166468789017742231576991469072262992797610403855448272027731663344386529394070312763914978314498196453016487592947234373864450506213315451874145218261437210387335361387685555252500400810380878041412912518988041143072834776156441541228790274485336256816592051802848268627567817535665142352346163263523986895063385019448383063103688133850143790051025014890453447057449267124575795925464130280737569289367881321408894056699315161096130681928722251970204038302802279884781705969344041047271860958963196911300625421724296281993813380917384174304260264201863813679410300609384149683016183039410730858370070758874029673750961203349867742367271988921770265002513361418282023994857644129654034262444154521932562985562682823360658853846836326097527876197485737346057471761118732906617637400289360050896423578129411694402888463743718248507559727734135813086546195570428823042680048512720960632140959463605726057147743993494303293555850627086848325198339598689947753796243160962634387730054712722115926770089510393106318904426052117109272652233725528796259604477242488074120197252682744942199464894205280400355594371440391045303370212460897153835845108658117974589931800666634924882661769455456606625126361980236864244905761191252487095361200201761040829113867459033707436486057486360336383461707585357849625394803891626266940948296840688730626955671978957047094011435331068143392775479352604415371154850607285706509894579519904413472968282757806860893759445750665422860585205959159777332474120783429124207882924527386557582590547725468196296359905791769242908926766125124410054589820732402992344812588491412097216156414213698713063414648216552887532197109516994108299871168113266277703260775667871087847930600089486305986966634045344780912992525212333439451684697286811416928973653774765028698117862445689177366832514472382410170539072657795067350261332032157031049462922862428200179753861219030776954293024442284856549443289968612617278658017545261972905891121286334411202779018110597203769058643025612286353662011078619858480051915656252613659439425881795768683095989823090999760898579821324851845987915627730974462143217315453933168813388504655913987292918102962848376997848946178444134348084140923368390388345863958811720539662363218964874312656110756333247447639473582013637171502376029941053310550066293199427545081836204307463579856992746249071352234602380112169877604826260725912523347601092726784252615288317786485001031713034909352925213009264215153872509862486753577334080929549932853422061300980016682969724325715184804430099934888224740019895570671299210567728126944180327239032180744799633487369522206041405392666573914851777021327752352705395079953913401017020298501892692647670099650101955919738115956845739131691061682219075785922016180339984119629778834986542818334100323548539596484988742354459344690174118929487751290791129216482902338843955263619271135732444565512282774078504052794132177734442066136882752668047226079645191424565356020334320858368094520188681353089107889805210971497671017056543790414478226257481255320395238476426628281801790099631983862211963362668058193234553544343887722699171223597753149306613397684920301420114153858597279327665364382074825395110945399341368231744483960182187617135563289595097312254795263081331436544419220034833054951165067671680879868518104858749753057727622729301490812816332143945247486239665121792795246852603318669348757816346133053083239132390192640264289784242729527387072487833443892414706669554874821564875451513376513100070536368267894587521758315245683736806676196526452556163668121047913541076111683175873016517754663926573487497388668279959980686378218188460243798792334309367697718759835596200548341671375115044700936720273875684603434840147235125037621146334564204955794505736041889854572282151140780017907268723232529597602438636833240377393811696754337288104804383406770049720996621406541853423635122399800666087792101278756154612580150329329508343504429589132181384803441812103278386176227511729265452827244829263319248059724407854811207316366276099763518231499666126468469902568783139539344089221378969560437725589226714570887603993502076312299669137279946109878663876229321776981717882771338806111831103028678685674349174499743548964515635159247836211096144622714920336971108556433343327446439835619783442297108976304597547694571835509796749436139942790380460414363432537986887246571076182974427556908817589737098332566541036607911758673115425922355626821065301531499070295871751678238768743680792502909862866207312764321078061499930425610759784795222398678288949799037797513544336458316414610824943770755300772748722906057437179451719865672208905063276121306077816767586072456681488330139521858141263556550147847401611235170756683450037864460189289379060359820032025576746925088948786826223820972043771074638770455327193533137595759274104292878306186827157851684394413529202640978470248116451880430566291858200055373290776514487719434453828169300165981089578199951193775662626515481472939388114820462329772289638067088635405522370233925096515883804426446938298005291000333774479392370058117218914828053755219584329928420293681388999808737630225676408880817476919907876608341709194979133390397243967105459858643018730500864972725427413948252275405446337284001330222211264747473334159169278742790398485496367886404544130878796830067835511285990184772155012422403126949768939170634440116405903271552100421154697270206884063783977873332199572347176266928097004722902110378291170700398577448535918506595664094943200835373054197997338007124996136438301171976364192417452135166499964821103318697028173411262020674474303414612563667816924382415743287356031596044957882185590419750700249584807521567297833825498212811999160057380489650977140602728515752114301025771178804666874029197724749225821229116907724500569364724328862686433910043116025701939493545593520173810724694102656467254915107535936902419672470083202102680082051049136059836602947899275384189152835771524613507791051587170927292990483295852915423897647025668051485765598923312949106799215305046816763793391606791507967563783309377981585490141469357112439158144891484211228316188056523036557839512734791032262809824489990124365438772855763240514000420793540212263591737907529822383266288941143808507078790941526975035733500223065087073900612701410358331945214338043600443278854186555777053844605037467483919170068527783759759391635319458633735446006580858361641815470988240191690021157828004576864175543703966115898205990592274030296481555451649589006101080899107467108530954652652014757838228172818423022626595053233043747870253752711834342113499639354749679455662458622945669176818729645731997442170650106524594358063899041020106804976881442784782451982267095381148706919363944671545647393096775855470779911100327803117652094645798553494804646253859259008096793800969661257203438544540016183497535314937602739230814047672896504824677530262176283724935408105535257158712922440554151089676636768533372562541618980086644781914043601210670513333874178271298123741163375413896203642709415351945278149571765488795886430579804371276222447411421833509375891195748144266035509862831436216073359885692565017856771874017785569005630633058280056651334066421133585904702153994355409303534219598758604591405664353061366465185671138790622752240859001065232213627565659399473563446025445685053301877177132952625337809526272747042677294421722329572721147917290406592283895920999640299919229456590348578653048040196757808329553223626589211652394939440957971335416694268811169434963126766544823912271921413159852350981535904798216059984253940383484806201193360854313809160316161730690716092704062172990786065610264983943751729742923604209651148995892941115333700605391263448297326206422840685222590267512560236708248119180730611007635276660125613930082071597947816361315666219353289210922667058278359365737688196823878352286473736278125883676723752555310837368962005229945765466658935077733831135293125863231407585286744499254660871058472946143480083496034670450220456038843601818567253266930938888713677520266134667791603665576583620432884740048401703958477973471777845731775154208030734830537114723882306471051037902186745533622085803727270999534136910917700799385605312380104908770919320235886052698445782145157770166230110944566337305931333592586353642498729096422290654979615026143298329071502268510233693409082631779242442060780064487456786983074197924405716283779710976765239396243561101744034248333298310582337069577084056891120073514241084612855214054277353747297604603093157946615243008681942865963467187648374490813282147444770050157456837015714333922680850471591244531255000764140233425629570052577757359126430747922059480726466465332510655895669678380135130508156576062936918448190275475690288569040423302787224840355090697866732804725707841070034328511951974504469504785401411037284383055846088534499202342410820657126089063797597937655078065181622350299456329436643910308988371650284166198404077643779698727988204612291046769872371885804663349314860336697952221913873047819458972771054061271425693009905576995937643802332833036211313961241495674369362476756427666334278888291473420987092144712063304348150977024608129443211812658663349447005196631087948838783241831374169218197304110357099841534026253914805333220778751023007851528402669718593377978494810314785140494411998817613304913310634262422702137654190816838646286813006313718298435145836825093750329507303262490332982902382579830641830216598562925031405955393057620038903230936304236213155437833442548004649346078941708071594187894341790907009528623068942803736225642370584508398187811329792121535793482039793150415204204919111756531804807622402516137874372254295460944425367961851052125605706657253191285886935489686176079482313478020532515305828078111612336208947825544998610508624956289839736348083528994545756591417747122311747676545602572615589942262927897907551788973389535880476653617187842208120336583952575333319678927666864797977938855642544586951601575454433697954471480020291272403564364989560625734192342892598266310339672770420083145545766471994196656916650083392826588870972936203634340327878760676502206611738378146557425961372911483472082390818869928057009167129774859013284371430720356940692066380926860131688410718610547540172096628379930008787188190842056557824455417660745618219983114102620764037278056765880738861086857789785694241870737723081265897961729166380091411399220693286540647915325203039143217424591807253674215454921842095415432340434430917102217999998410413605542043597906467297972041505905560736051269539088534731195398720783959020890117365889557324684671262014697367184512210873527313074042059499283568806208273914997144341212917142969307232804024301958478826179703691745282166716410973672730629147547610865561416002329685824442490673365533380823565389688858632655149958036487882613930637411819334262142380940452252595397529585407131339487390485899844080563355694046332222249811248945092807489543664837359183090684856549455460244179897658720057807803136369896608734664358467539397816239657123418896360587670731754211096843897918518613764639550372562760973520826801513126515734715921134879818214185320580977932483240909840333862475093897177479910400887188553982948405609554406985426987302616683513562675254746526402526815833624234140937525692211815067823188028935154483043619762557567776652220568784564350155222504445143783195223607112438426028967300111201750837853793966866137825189422279208533202430224382315100474469424515242856784642066195647098792704469090628449308786551496481908384864863653511846294709219500754581811688087104434017548568143383872438579575415739856874891247854090185669392996007501726850970020632320058112505954385329938529666131995127483071661772380339761262988138680518735683144511936532414806681629729513832303589801595564142365972916601941510251704087931152346264166314389131430185385711033351125637991887307688174132212525209883087981350223974160662625048419538309536971454955019950311643240382055817103938997930241538451771318091696675847288174698700434757844608711440675849575299278409178720455188932650826816743616127199109425732178351356215308415108579014962489364492262464316334048472941015965443053795568375828121960154671908828337391257915865749452801939430986211616384828166824678441868531060409893709040426864765236633691453216222203871037829787936995404684541558903648642470085976250173883771371009250659671563839242966052049866312512004985974329198231489790230328088818901122228106871223653637202601457247736204696584881009515888788836392769361069024242867156706811025522230607228187266033075028216898809303318869880485354760815559305254169999771204777095584028225566145297981544367085157730661023548683723167295751074101347999294666392597656401054571078180976222391057158918830504616844643266965224461886881492469707796710907772871681852325836253762895819403080550546033417027120460803945026953337084491680244435017454233341902932734575207809992535739351301325802712815929317254162754965110676020257405364324609861941048273793687957122929908880534269588649205557482232290556224510600231881399020538398831663859535239252329547801503557538663713826756760149572363416808145661847768526605966142953875931497426491851836022860466808678155699548724914383009647367345247165248929098008282185343804935832769962393438757212048486432700950194074924058895092150028785488139924390845364680839386056895918703041528405590728100595539388218557840183124780521150282235864856299796980288891062162151913789549387555517069643110504610122913862916140021308440355988451002378090966241290613168185353711269162196888596277516675953303632609293977341366620739248108863045179306414054415160501335528659485292817198742881967650819069722537563398831628703352504673837408676094778530355229518447645681496025224684654145647642105901518913976063363997433589168847503786058795666684529568803864467849513816770600553583207531697370243086831821722742670911480606880030881994281902466511680846121652848171215887833027874445983928617038184187378335352461087318317318559399838523548091561653023925445600373712005417531887056392411712890987339977803343186104545988842014856590759489105773442650779864003629380916642759066946374501003057640922780930389217177006316795212411284866216466984438512459036301401015599189175201423034640268800828980975041425902269925649650272222355218273602185970322067109468269931157188828613457064319232419387273998986314294802487037377862536139377682766110575811567996957291141669988417097369302338706588387418879076482898074311732141191550078110388886043637406574844285979891376443520889300808421181879078006716524357052583456040854160543921841948478974766429474947746520091666105096140094506908218856721534073758973735508926445358864948143179022434920388832079345846004710529745249022158866544259250966816063502990132497642818332624256974150178697737627555348313836748925391663863005096742866222437034097140138070956641902019121473785247180202396918678677652584000617548007116771853138784701236455891560727527834988133520620725199251957253866622998699255247664189767375707559444249399237498147481960487202660319223640892873527270125184129396002410716491160066036654923847725768036047595650374835585464873947607688316189439099259991122071174643196920003182773682641084339961223826920498135711366085119567592762566770113259864043503535145112438257581505749259911190392832774258815091933934648494367427839517952922501770047908421765266614804253058193442610318113205533210325977308332918911136308095391069523443396201915600512897817267428077758171843711101426227071372084623436947828603300585652376931337840764793121364990866151381192497715816844842297612807618728458111327654261278360766389882125813407507190228090748012649481403209939134354814300125919647172124748262947165142686545411920498787086614290062705091377681552910658540759987467836030694261156381822973035812030040098916582993197996122751138566735687960723594365646090889116049759034766783488104936243756450008893263625784354043411509799895417115232579416490147905311620122691711642052460972286761769658689655044946298865998172779204547372422516944384398884687011484671963774968913016365216722342936665607651907434282034634429125150510000647899360664055423414420772910250999502347110381186680074724647119252896940160989371580184975336551431672730587017152136853920823041468661998265253485328409506812431386307112738127107191304857197703969367201633495642080543996893876456614186040960538330364726018152323539814470849290417176707773300598691669972334548694165376018121223495031133135540526165802900689025162450261489913323121552331706601576646531058642968032387182327765577709634466182216672923782271292749474239566311545466317129042254332675452328090348509081186715054825425718195431059812371213880969117444229679247240699249633264826531260932618997713843692245499653678214979514768268602686706893946991772042683139548689020371437073977248017019299453882034862154680995167299608437873671759013840617599679249666907070203346446855571828559817815870803154039083917622170469225897009670137458549368919101112516325295391413283178187148405702595803930763609905086845448267480625570870700056207734970287834821043676858305444843541270515641856952404798778035590519002691918988042884229887012771988922827670587316124371750891419857232777144620749898110175783477137580604982027564182588208238992227500547138426469728890171770419878200549627955978867137580032741322937994322366315281403759055375966995092679391895362642176773101023217561636635960971349033593784956631282561707577883797618916500919067968897037679077810982816794591234396086610852919752576978673006876140794883093412318300446161674439897963230032451798840444984783064036345309718812639566783863405019118605718676450295791133835838934480500343737010339789739232971198690811792028510572171256464123104152979435959771369057213440658209513490208716745182722690196477563947004907143702236650138601803741809213367329211485772547897064063821060200405557841404457827431295661637181986986006680342775596963522935684201409518207544554052532358323716784606508068917786781316007799597711454964759019464317419947310756579194786607226740320541592447990238287359922989461619542605657739604541819183327909164102787719794891034027920598935742853518833495607299760243624982631917607478364530388866127232754999919745057931395208848280251209987277230696525220644452471480013794690788358575636213536715703132551810161534683662154119183996408635418594648485519418693904967221999895299363598420446495228614453460136565860104232895317868801710413293052687960922658408109161183882167946561388996298421848177920822382903746550003450727312829067261349580092100772854822321789389571549975267164357880184350572945071913123787661414114090324154900463600944900904409446240659577945050844642543370080802270800976623920087427896564019628366032097815538089204174731995863978282458832003336591214240660243203315801512920028510914067419872399814120773484539551031245757757738616486391984304772290668471589070879145323299304767402463257571854060348830422285825594664267916519968475311176589998065421717727403658449806715410448338246769498103151674532691957896708376665877602186308994965671559188334394838998661638866182180531652181275688482636499498025660101111035653001342593304409816427789470525375692004494604841699082594553552489501727780496461516998907009755429383826488611084064941456588645569420037554148762890941318961615467834571645758919629459707024606057282295453270878637045805283682872328523362088007475168478105917102950107987133344612268119576843170188865527265996968299631281468331988978698846184266229074276952043219112337870928222781488117515727982364870429726930086259786553929059860458787260082076595547663950905862206814441029042627542827672474048408876141487375827846016214592491836609011060100400672883220140465881484892974417669485369982700324442564730552919998516507156800317067735139489623514320869368547524009077814345023380081132084866429243594883737882188513140185991393750384863009491069278153012919871981937789806586702439909659363410028419923563134766657763772049729559876832876433793983573480547220267517612380916756696947050602664958410483517301862029982537092930472759913349101743043826810835839711171311570389109162855540363977271860913736265408122493936151737794560879434177178602796302298087268964129767906205848414915177545747210751112205312587113891605144578655083130781402164468449000703197464771193219963460975106293253477260734568755818873200537576756290046323064295454441220376193817918878635794179157894902457896172393761702143275068424002898592767831636889160463604359217891857695771466168735913849332358946601975525757137575902800728986751075340353970069689921630270159732928233887952912260887176907514075196143162320582095297285525763633471914778043924965661916557904351245850051379387428742912933711532041580145671837552871644346910131230651473057904394358604700498176038845178442827557221751668239982075304012702317348792991055210750163009399538622537870238382579754007369544864837788646033076544324720802676820092937724113544760316107827839681860472416254786145612194117166097573969328840202735232177516178934356419512655982124348815030268737633051234999992319920709740072101576115251101002886281712010575225088260228303465511469265893176354669169404300159429409640897291523045465038561104252180565851763856983016798866734806973439838591608765757909237029807329517673292816374144880176338644727878624422431637042271513968230726553740202703557623873159270678503619169413072466375311925349191541172890137855769053230885486310270474675528160863254896077263623290377820180114222692875710466463077086675021492844824890906249616953436887415414292115518164789155803487956186876898327359119361167371524484498242320488539075133896531615916630693142980358014538919873493399781839925203905667889398525963136085227841132521564151890910293333090088569385264597349626471373015962731283596572244515680182528677757680772589821606426343488657497074355946546171122477445013337017337761401493073759405195618225488536207637765503139959876418998225717030438962137456632930400512963106371418708825746192367027421573861974974665748796240454485097227873638917984920077989420609582081220317154865319837395427203362617951959084107029121279732541880278945957136892714445975415522963467238975385313075514038609845443806066173066798843304354120711787334327366895646414644588094066517664017076281496784863720840113624702668203040852380059356054172566249885665210125321270334062446047236292333624892521189613951775758374125438318513779735063515176660481418999739430276173155838192816543913443664640115784407891143130313846167726621630031481119853778686649064102277175315272148282900530708690038100607889166788995600588618337598348394521288604738470602766760664892241123786749617893587803577393409681554505900523747146506560600201719253805771193529203780562651100184191492810132614305343315552892386004105265374827344586515575257071266884667938507186378876197909641732255623064524236848899267321572317161779014663394291436839311856118907718023402466308963199467450478828524469983911368224209337463329086667676697688341346614288785664235434309611746366173180200446251686530182744693751552311400199485387865469216440621995848641979637570452956002638873412876185071285772063917426396461451129426653359425023841288064618994438059332710643545383564527152492780147051943266233988767123872393941457287401607557308381383919311013960945199056845679862117310634403925340835025593114959090871351717252848319294479933050881085882925484457996332376312158697153213949405817616517783310016686550342516343702155687750589282798296591539005552351968870297641192111374893397529788123884774973169430688469927289514573437068905933201252104420887541688727426898799526978495087734749563143380701254883772884455279121935488722114186078604697136710372193884570922179084206690460275313605893607585915469206176730889287358879020943267766644471635991872910089286473314335924341599720416005864269958743799233936069461411545330100290067817664375187256205345507936329200472400330106167427609628188114159960899997960729584589737539719924007718269284225391370060345226843332403527460811749670639213074025594184740216825515828624127573761656882432215572054676954159418195404111121038412678603954107032683966161533956032584119094240327118212730525717540917631747387284435915219930036141358624672731702385670641553561662632910081697583105898230577879059934683355683370493959459659937923043745768432151609946285748681905370548829944971527521074182838105104055134937719556149206749445582895310367875025135384540277039761753610699408238828139067065851140180364319539036695641269491516214009434508753500764631499431513318334804029941804730565205083821419452505437205482414762387824530508990821539517831581634645340409306154070348214781703492992090259214234079356055278314050272575290154009185014931163782527192088783678468621594839959774551688774842677327984185586248303935299846192461512230830649611688859210059357912380826913750848487779070584395347617535428431747782147076451047920853771975048956301840903258848013268422863546164430958263663921154690585434391433699161583045346326915224914459218857637223087264273477854686549763507824670523001486542756365736974492000968280920063469299916785335177465089780557521674124692057935074036123651662265271821727109539249449694535777774036130269322575706989607642751417636692610404857740208347041839664696899934705701101417128452437057693249562992747118704950799197655088179730828007464995874648689536136557251862640799925375343403281913855908713128615712680985513946157965645815220954467160138319723398502532509658182372066938331445262106567468235796843046426400395711660078577188939670432852228034090422982262965106409052784300649984590581442792843843657241047370592070732585895806618404384540622727105984101830207659761434210566756615943534972082484935080641000130542508429337462874551766651661573398786156070271524478750761322101706277314015334817715517881084264746485753574826612040852786309491208208771178889434596998078243149671842507274128096381768395192206924970171230932447241336820909822998691729786075062831900900693997552894219190945812049842493048634329644125019766931718151265216533283099332733406841665920525346548470482876313757793124359302278594531549313261983708647381489419665996072895774173613617076632609880609859500792063653121586562363885920948207812935014013213868536421951581825521233772221453718929770197020576543338164073608600688962340001988959023160129155987027057554300447573663071053805808657573704232734453386845118770976305753596762050411131836785902823637682387459241982012834634220660117625426406090363373659021301879292196430798580361071081120474853415453261470919458047647723091205404911439539377345881913743575451022959350769255952769785543637795388519612986405527960923624453383952869781451286994381724497341901323875475062151793370320265443801326651924316116488096379655451757491849892947825727891613022507467213624781384767123864747686910643601293290403920767558860745367002239505628941721130547366652100005497769737541658103657118065675374538826317583452675966920937964298450454291212462562664207666682345264564614456793053995665587141560648650226756347108128297537018875472286815310168060102514364818630776756020348175184603825000476779746142495778610772451609660423767735402978168068829845182801770318850368994306871303469219265508972966272662121674447876103141612400912930402166446112997189741501702733905701161629544507120298382275793207149332497575882881855917037884510279615344133839353682846854340872649482889030686969482571125424892348547856098385664114878098553814959323688331670446280809640322340641157582457713088976166174553094891707988601607985549306775696591852188230766922275450625756189704025207758591064646515674095598093815248442935446531182762954558497008995090906564203951314531685918304316927240162601588753229645412322900194796319932103038225780942309363374182254568521829402841316658964519304660338264597096524232720861318349069582806574426551685818020944309100763486442309240019488953133646131395500392662287463995662718957593980669117917569961468334630959070550921833261702500522020827005825278188335727001937786896717413946983119946384271869374529960251464139359493578522867663856736698883646052504731741525860505867300447063439274967294508103023800093909075476310104829513165865253451128614047552459107819428020991075239746117085198347160974566738796023493659127364232576167709276320690886468230670434635531997844832698085531664993014466639070819888617458718876179103447292702312363464724195254922573748843520134692639049960613897462591613484691856812094371371097047599442226686943324908754364335747315366644369582928390947048534835729124976313925264470350727694317241052314694295351718020255834207629259481228552486956292529809906721431570240662475733456548203803267725544424033225109069935411085605024285584785835456220393446002481674510746557895333603285659415850297945891747731902749052601444492434294875136335022991967351229337119061410895186648241626607218861508238079247880001643514565007453709256419449604916699320757144187414944966047476961520150771740247161782438508106839302508088278612183927058354143066796478335152922433048301420718614630622662098671257236898630866806162229556141711680745392655731022857590594025907084064457325182180593972163281792641369310385194848247862579236073027323244955615121409057894451908951652117587180559851059102228852033196086514992467531962804665435347554297809740528936673878370688131530608805621303935798066815247999119340224932015145582262613861943425993753550046731356865812036440870373608318414673948359542440846334278463024915643635261235623527328223230879981919957049072470877088538379044458254887107129008689928444746293274026775620115686842378202552550609723785256541991312051560609623196405096518188758798889310817387757517266581946263887988367896627149632293732666992633028326323615677488369935166494596216837743395689340335207573531689167500525541595333382301878478540445666907125519022623582769425566654825615436545038291395233993648102880149062352814007507137969074283435468727919504216567826558632350276872588942006619060555264336987317970068769052693448393068585969925250125772279497726151532474099939009588657764154940346198106380363852247132954486583362099037340679299382330151432830290658573639283629892865467120613726304820701187668012635501545120441710650856738861952795071947776434903862286328109227756633008404631141101617786656027511863619908822412066984677730756104847079435556203015788398088146472227096916953833131556973861113367080784904181874412665827766083353785678988181950129916291973402512937818813812919413167911171572060795199949277855266406225094159499811181500912305293900011192577519791033095516251127848481179645323262435592416994643220989270245156575287502191490865649754746195070353716619096192524453708290339961698356055645381970794636382135900267995645459392025357550972032557203949913637106389654739279374070521423044151955132582353491750319887275279203920739330337501352104470849452441586956297186311580369069921299606456668965179148489811000986886856154411471459203453923357633408930822610597357224360672051207186630060217584346765830392751567649144816049971404524858070233392428550615845657636203736246959360876252763700424451705307184715340819832483622285939087236942829208339568476161665440422875358700462040695241621408360136574384624258422099253420237014733750141479491197628889592769028159786081111948660870561275845951448065626506298401428893124704493714708275381584428050674608272673936533412813769262535390466726326074407078407541414431556679136169957322578780931723473363247964156255883196029588710574330598270668842588784661876113148464426816036259984337880776149396130982862018210618335623727126532529563735127807272489662723803536993096299214736407120147327839106710735622407308381242340785882148160224480700052883859016849073172734270044587959961284784755507722396041757984054413102194344349148428039037263960326054614666757012394857814655526662957373247029418733644017767876479486123402268528081465870193739599918256985643031160975337207646523120779044822721086269363811301640836158595793846460349890151910596489527085247280026378221261798411061647039611132134917156770184524471057712448000298405839441898093894732325781752531373658173028273873742706021185528196884380503272686082367121725220616953926215117717939680788696540644904325461103799223451919706096824596788682302995579164186865005526399997297851769172499620334138078021026842971733767330528926030780579646865471132527930221465711843685250558133701002521908976985313503555237201152703870320082564197700217094885700966656795674562935801997175812272465045286109557034643293296743749516540300108945823267452192098051411406319033920904080354200006971420355806730571509683712570735149847939957126479283838232883714972050231999860180850256296316239791740930862547287200360429605265037202190989329677991750089230685071954904168287957149089828774700673152020511969767191981793537021289320899282321658528948994830781832239858108040769824450795963819731711524802603326898923380120993059582230880173596985202559237844559234762933116735984008934578977612066845409230216691331849717945982535534607681390118028888640785463428585942030392572263860761665711018922184218779249182767386739361174774243091245186859110261335181308553862509015190639352253475867749966771349501113509022312686358160661572970484026351799987889974481152877222136377590606656160815072693543753555441572496323724786255761445406304046959690656469222674005253361026307264030342050581726138260993807234235785633847217208467762472825379550903776913336246325276690829249156675601638558655840428431170771117553096718839163689301980097406554681900181283858204798240275615552899409309292461163207940896943726326843537149426138763895405219824331474092680286033976340894388249980563173245709987623954081661138551283461397274458349161779774544996231536953252000723596829874995477742189021109134147057132053121495305172065589719839333854545290420083761602821538948311980448940568461433126973212076183530888394582170179606440108973230016481660055740124835007316574724512420144148886014405102549045171034424708708151996960068432538024053673234003671674961262231460814395214614503000853119453286017830550855103551311034068627292623641717612140453636078085245895523673459405647467055891528522453054813914872347075423257825103572821859617553497130482566385581227097190887960196785049302684356922400167028820018506099714772219118353381119139959341849978400633676057802516904664305478755620808764956318470038691070266088337394811819188102921715713556725170371271658480417357449470081720832941467706927226643237537468884284263565491825888868337215142244069838108221431727505165533522754931773435914679119094536174744205359509914675015827358561254793410422641012920351648605875321726550736847028936821630893351133574830888165286611395183680205649593800451503401554432600082908495768604701637301673742196845041394495115989033773526620282514263079038221533090227125936244479231895420207024833338151103668657043815373577373862800236717335622222102468855416144318034986719874055869034384465630435670361294554438828797273348482598375418610583681151285765723147278769471192467988612100938409487016419859484587262995089487943404337497171473044053415422161694076954149996870465143783881845974958868791270032290009390737029910508154468149903253491707329950941055660750379528400454706174943673422724926436173206959286278887039274553627601375998018333832921823375403348788046813608543055646698518769822268024930926411020774102909227439143964679439830569034788183280647803323591761502525249132901599699660721145037299341093655252523423143307499622759777725992491459279215556056265513033698282249436738119077251410775238907222352578019587653096939664286984890323169382325092668304601361159236260004336499590206497157455324470690478259749630340404780540333539409337631761320012446838437407771696461350007259984994432588806596035078608040553756892441571764692839148929283500813347194774896718685336541987276106961923433649694416066356930328072559872112658319011665657500713969683969547529564321842905502744226200420336113029951371596864833101290738085075539803060397083949950977424679044368709772073737931162104374962566172744709688866641157935641531473181515176130164744110370739692871436832407371997855572343273580583594245804530633580698412900647308743816654865186501527661145661752522037567415098159161985129737164936893818327110550224067410286819960322182274117328790074381013611090552417059185583698886653822458295188736379309537806211858651367644785014270700518822762392085887081222826310374623970685668131012097105043031013248997414773329013786565156414056321886781422804259425558272491597204822500519355053713307091665930963594449239374808972724383694729671357404914330881933914094166741802076289549886985407368741228459892519440277385566849559474545031793878715238175703774444366483948980068444661935688369486990219563729471270338474541498323515053963300354511775102373321428823719684442877999363999865120258712350891349279569742385349468321654021693330084681635087939326278967661562782999613002892480373292898438432371004505501822610160013385648735001257904165126028608160604974256169931736357825948601751856269807001593586945783724119313090073646875897735224835854757179938371454700547358478355422516434470261401725163896649722441564376704234462385117418958297963534418550230960507331676950387103031218439658546118885005082957594680668143895283421695201496281295877251216110304452173737028199328321601373389537600873727657236527639061401522134801651073231471859251670501253218870536558374749330396021574865943320198990914006290626727490238586961020704904949404699127319279698697208280018320902628193392190641002554155494169143651113795034962204808181847015731679808385879370255558024700137204467269070109228864936021742085235319406784597299599014998002919269693443730711129137706849420818829883764039328319013776959302521462478463626215528801995311993309242116058875384506529061908538241106621384852277682899220326190973450475868902934074764588356966458245559184536119125342320489246666365379865947758154363525830632865497857973861086033817404188818304940992766723269980766291746780132651148380981622781140988661325782258053469272122786547223974384146625714052328174949028156788281980201014128273513776053772039717010251613791968927205982682314705908404903348187146763085263667219640717460266902070671651287226530119149551624579563773287663701946632039412291287895480404011127023775151887700082772289897151005893251143130305595844558168379286858103225249793723676351528448050604341646986584919043853962265274610041195017100939810302572111805918828679964586814772238253157999311056838844620252397427869572439496044761774280717691879963337915739817990275748293306619999907874496211427054731920008059603304739687679070289196267580794743578511658474683015616137892287079887705674954894225932616913826148777178182299110367756502034341623553668120172657996584905684301075905780982193346062963261579237192435069427230533145564451195145036443573310655187133659808202146332451789036298996612592676873508290828254478720326410900153348829911818775709398986934256601645101517375577735915201251725039243471114738239026942792610592658431472512334298513515860359352714451132830261854353231670715690749014816097502977546372333435258823451912751621570328752215164376562874281604024700565963636014904617696181661382422017286065130474605943310603109004913404255405533546335746342608699344832082175417621177080520705968143217843768227019358188639100008441515068399643632493641426761307285488014580544498054711841901297116735686762121912623799424490830219743734788374266658209008536905414728758925210827242236052949432581387990971240744342456691742590986976647862722075673672294054156695907139936397873730592311084798659012372886520195607917503387957490066335125845405919374065766560032266215559175102078594757558289026872062233138655150583397857693243314691059338093397917379259646205609491010204367376405211109213887698963944793365631208973538600101778280625269849903742545703058981869951499833717018195654368215886400880529420429419018676923404084417739436047417920743660716148608901744746040349084160476553076505753521868069013640008517854767955202109502639902501240281207648851948297584402234315754846018439869716895578814401785418835488465254009344874732129337912208263245142190433376460929355641822821944940631290579110259137966706969323608539880697400263801328002455411639142402762215014159498282615465630899669963454241582118373499178940802635771421705351385560844532786141172638977030287439921116840109554813959388781054436542599748737132666594364074509885921095473349338809592671823740540361230468367515274924458688760320289246173753492161368823303866039433185329476749497453053820995063611954947510052270130384837540393359002851126298500757242209902753580178398757380957575898588962737949480488386683036514071930822311332054714075269985845072048168142894987966861439832116640734817520242476080929393995165405281749752012529716284562966947719417057292245160238175416480496823467973936896077673191574251463446099330897975585558288344092640404684974943562065569953286534235941128169559205856515985887450492083300817081657233939750256085340272887054248662893510281333414947874503298540341762568998780630346686546023787107575312449302130537840183241160080355170245372052160586268860147471508899559170904247607578791116109138146791430943875108823288278394084053880200429554149726717626209862054614148484874961178701576685943162894921176897712232584409751599643650708866150807030607087189711416330504781363581519643563330997632130818965788689461479673383499235907402651213740816932855361750163719676888066713752197190649060559252490861632424770319883819672389798128319835072098801661866242933826704311575886456069795025846599209798210566562031231898039971385609811135077690410697621332136758973683451261173244342296820303608147224935798146161278344806995319775858875250372272664346630253116440068187697110408040161230427525645654675062881787855882806959377439666004893898721055671058389253012844727486445765048626155648459706207723569420316457016615167171852440855551705436406681820577013429300825521233311220413778889273424500410597188799240231466937313278275430629354207834339675392192854515210457788917439572515261878364955245418665761465669672757898714894243435413690344788777469405106202904260649240172634957458564180264790406031520155671759577668111832364307967612950183664519178063783655722904404515183561927210452725539741517882988489096972035976056233394717380051246654554651938810660194707310484517941787489586353261540923290080253965054349550267296479350355315289678336172815531982341517618873118808894528793389814288880768427897086573851422612196973477447692459688535572753797847086652978812562524452264972558712586149437613371387727222606669682098228144894266869706730986935989812022562088592417429294482835822017810961990440939853637516515862457929689946894622111990322271720609080768144861333162519582399035160653411447978196834064670176203291727706426155543637899778696339104462564242150339657422779885355433012999762947147402035977399504545441519979483741241722107573488683608583309122701611539644854694529175130338525969744976189815496678655377638498490436857963645908371621744346181329605757641087885612978263966932753948738303249368278019989669515766860801276912018036035323532511302847839631766309226031544015728477552698502853522093377496753374633341139726029558423064282215837467667370578406599339099547772362851103447168144585486070015231508105158088166707602663479748332340244522300957764444173206146974117595380557048545161725880589431850538333789290734922364078949586832221144702577857382171015306140720538359400301262259572940640826805670910387363235718466577823008149441815604624237886274993149759420820525635694984685789929716901494871131581521558826021798528668245754981893976152451711775020857603248214806490143920903926177883716705559331168501215000617539143732966742442033215637479485329688039142561952453707222391454112715491290492826945356455308832921198715286311591174240799898872291358398107175804541766311092938525311095614064555663792560374580680504203582473552552305586237688594370478468985745030116690124275353522790948717167444336724521242662098919394533703165608857769902073018946133221527515297424690576946240047247808477845845409035306687015378537001779153286687099234392859493079304569485654847072547920998722864918031937291900833108696190376855693729567108874221399153415024331945775507061533933577249937210036603813034931930455433934738321960093530224515710983323869650908995726822617379760697223897931810149901563155200714945415870865244641022184232341312493878035252702542199148481451127775737973710249427879160938765736196750090821479196633994980231189358715716357499914679631382360784514282491891905210398660414484933223184341362667017647837131446210847403036592877806497020823837739658513733417370145485378517303998013666219665527577753320995207690475756272890590361369960492227336519019143281226635195288027593700832853160464973372541583062809023083068777658136670512469253346740028438504363306093496090107943929493942163456383384949839907869063214801512278409753490444544959587187101524280354552105822497275303369308182362681020513656267605271822213329858194073707591001372160147836803296066807955173055798973520547180030263303133791679848516406098417029511755193942525439893452290625309249271644600739165442441674151493853712841522712706398407103125496447570204302431165386672579167994848993166615222415676292398798651037938724804068112509657377805798042490151664347833718768745041082835832129804281495337700673483830533428698449237867492365591465821344377620677897008595571148387801124262140530939184660583798435958925402758828412312305956896934471714854767297203651882158551539104413580466505507178049490243035276548239427145553868855050870143674796983867844923238334951502899029563773317448928817158510323297464436815118001289209095874289020936811658713316323149000897101839447220353107999540055527531938184211353783275105037423900040548013724059515292957722698426446626756601286289904722339211005536819884703133713540446170051407777902580292778458415322873700037431469445428935859087279467477361072139096635961826209183001458008819662679288052130587810289271630771261837480035310714556439794141608876101818192337415494928489186893403379814983571664566294635316220333884615488168997769430516567714199453679637798863608875557558256604088387447089285053003361651982377903465394866207567217328953442553427970249994471073713383339967314241935745241948727073413395996266692695582577575970673573270870669165963329944773723505933892845495241032477395241563523589180397802013698135312703425610310491717016559421993474596179264929851340385451825672839894340488797442849929353967442185255008295515653820359391184259688379594325032456095015999181870565271844579825955545773708358793070083076290768130761954336110155799659369912105023777563752933696591358881502729866244275686041723899457737416350321713704269765093766448246420501427597545160136085809631814754214997554195046979211862524360858917113789695357967437120801385094127503793865532509292859699400151402017219624113846322115645988493647512414826581338454174723973994152872852062442294768363432195363807279787100326167172991902797075141081122283418395616644839172238619881996329243102419520736061480705279243066138070665192323202672025693575294127937914279647913894536345752558821818675196436188965199045538857155345036644027225555720544587981090186947070997788483063595729107620177432808436497033879468257638219700535779804930569243289823352854105280706233622840064988131876822951658566170079345334406345602517111108470765286212306531174238172100836998026894674410713224071717582427363084029429559854376321721193234983381883139880757675436190983906297327496492684857300320518750703727588808410172920469861603854623883816956819659483652229115058353445958398457587611340640898244798663329566352259445041991649328352676043116155351621885808263384377685839129107723020244801162709711340802934915368296077763593375524189409062797999620768384105816342204446399062764365629284935677464597172968875251895459376855558640639422453070276965742790979988712209417609607688763269165761366140974656820206625316375879993867630963846460723528712941986272856948587595778381852603813264675050252180479429563742541440000370616865909406778960399423254808422607816092177479719617369292551784286903775187639403610709000994065733111211874431436368318528649564413405276004722543757582971351675643922535247472515023120079064687563935829764964891832356323517372578632637233653691690432400088920610314499489543286437758078975410204590613707853166590655542384428418102578636430826955557301047921712714447494825072877092739282161965590019392865469758363882448503792479126114573072604854156560964141976215647598527728804132435543122633983990520405564215771263742936200642043915183730112934740595771916782272248362714413008683514383195374080239052136713510193366826024094296180936220033311972741949228361858869479425631478171674808909633587561019791783656679537474664642656020010249471075351513616416612338602118607412769440269787182949800125294688331738648119682666464691166960290174798224406772431071357963218723097233026535947468334838515307368522343054534266824898583872949157221852329366062910696374717541044507091312766833040825750208501061407143873881160810863509675933291746543512839200098800044945632681067564362958146700216043084633131983249916811701598216481639197797030464636818960836707128788665265229743585515824404973110840205104354081063962113167177599629540806448578259544053940854728372270864041519685458244532697879022836061906070013490667394591971688520556221692857106477067217244409184625425246302487647700611149402074993495570020996900039155715418935757937715825728117048430214583309797775146380820946035841737326373523740476937407186301494293898234339963985301889345788697921952338728344306602151495277232990725766914056087411791001237810813312982153734820078536249442656274013278183939747899224277885805231908528636205583433091584440894509955542489404317448631259070612897080842781596896197353684952377727806285064005970526904131307442276149328595006497940424722459890117645320205229717066647304751049263731142618797243086381964270069639611330819983668769404685655570361985764800731608431175957127140293503443846994709878273376690261177197497107189548473194190688926868514216667887180378758778757520752350245815905673299473261775410915614829693356392302874018517001900140208461898277939175973642044106976341033800094450851625568298580161901494407003084243012027457195480973390379607837439052595213991987361224991936559029321933392482439809339283461483356985081072051582957673632858376304319582744773732361154099625728281069967870995254339025581503661830731563940950750039301179433399851821024396568051299630040301922979047940807891158560503219824578224199534647525220229916913909170429747339135147990013264213782523083877832737790534159348186417044376219845779326568253329337889318163161098909626417302598803052347206401405916478913588225306972324819905567829041023950301324492012077540606440449919268713059111089615999322929555804940441093065647728233692109603611790929713237810028851083591484092622076050314455275119525379663263304552152989946322126756586291923059597260555970106984656328021705556316703623124853119477062678199654044134010143166524325763309170655129654640062865302095705687566817040135513035896412217681037681629727085980187600501987512304173644152875189285847942564691209847377928609191237999211418252082922915054968845545818174979621374368489851911585500966420105342311636950629822167286934464258269780835923918328426622171817294539948092425806879662090577657439014976202819247349207894360035286291071955014765418139911460741857705729817995197433983031362973168417037498758378758980814676111817016294478728581995453667206343960838947723501485162952550623988978220828973294797116714035770015118853841199204589195759011276149671523635890008365556997930009596663378210884899964255440229663010131995835856956071200774175191419270328407722893329604325909207403270903456846809567929908378849940814811129849742683803345453173782941126242733936239417417918717855435538665777788243316438536911962541100010079221747036771800133055319001187854404706075628923604267688884361819628348460433720468948062934206764089688051915375880025610286096926119180630046778749833607415671650117298159597561028701622620558554088306263171870498332907657815170777556957633661875040488511849647143561603332807290962153500387003327974381514618733908992721307275220221327031225931233194998473772507055011340438660875130813628615527832052187234836022770882757481616904298821389387350656435186430787279111897584610167241415210290522315486505873874817446359898127513635436823733841164371749238991607563610965475874331365020179095313578663975599880431798090586179621064863850261228032173926105060251238248539255900767948421843656249520972956738482002553919436188822990150468194086960743795225663556442978409535346888666357324250770220302759454636244952864176250318328134736072534788142976628083123327416054696411292547673635747175277187004277755446002278860609084836318124201385517119238221767533823221352249806715639505396264033205894840669424428833571909610069312950836931205708882656208055864162626965008720085276876323052386905077757661670468987416789437220278151694694102470500612596428262129996706137114840736532695420272832637227516515874808917517939153847810602374654628336266259988298970360544412082087398366251358788032375600142509664734724270449026953400159318503619927943109152786343825688321119533513134015682890826334352846162555845606146470414994811802564301395042554923012357347692856356895076919865411141552944268118387832446747015869954184110809799095260735028668989698378261257869337305762399759398808931984706192774452625210096878158648148307252234988439154520161976798767994533932679995156082720262566970464843356419987803647037099819263826772230308516142075256814406212841676775949972197366197910464549742587408890705469197936460669350834224021917255883513547024272420981973163508612536454955647808368180497888193847537476199494743952560916320113463018046227712257917505453250003713395615907700654837205361756136262754439599760465809874246054286308141260562086907304719622955124434397140981492228500352484436748884980032909199771886808980782298759935648359800727029476737936958324417345485077355765442882170286519271365239393304534965110489985136058136006885840931027397265946335483658924605966878086824971229657691342715049877971989957739653607516591907010322193506011103009324743123579340305167737705658056239792878929855017430132176889195330087804057795497339155688894884081034268332461681517947846181636331820632409438531367173887593520914083246730888784524704454532105579639202078080963682652364047762766242896682757095885185090171055812043721032714945622778620298939016608083623584635496318116756736949215605537657480979758982944335027407401115637955820285181993997437899821228809295377224777596448476290258439145631665385236173821951486889529522768462254540905878900794901842211927676903540887009455230719899360483274968618745740243081103802056202813850279722774376590689925077513713820775868931773037619876419017010136398304469894832776884433098239878638009725249701347046611835734461974304718226991312026902178202268291616043907245618786451298673228236430569471714094488971063640082009121121641639273742278580487612173619520645215471394645990767497988287984431551463356762859403685406000778781516072087695245911991722863871670909537627853544663184338135545541039558804940207569871329541696024557533013262075824164761455058129108923675226324739155627695389978912867116877283674598764991052895963413121228802096897447050655897537146875970890799550140446026278951789294644474454612698771536744521244110809584094579760422682319585243088027983699656349770611134292624981466852406026605700927847712976493122736958932307399950564995469108989954763929664342052543696635462311965649007784686667214041305646844808179133820657222945829697540034733959263156039779440410965294524041275806959065256883837657767886011414990034359028584374380749273086810597331184843105949215746942481268787493967305721223044803808636747029397582243365916876132838479153782286002189815544414924638612249754862542257500230806661263513026833359147327116951176891749154393174127437118170076149931179900365423165811737676136199284011722489103555471568452606335888936904866144087883426527768903579084549654190238263803025612056981500850468657475220022475566997500257891284428968291532277300773296243162636057930283610685516831640574152827169335798703090854038679255405723292841180834573647588721653052244203689024534047168030887588442058726228333059936224732215928040572953173052995275509911732306166200799680209829067947041989340638964751275613442065543914546368174645610350553452128130199093012781409210921486763547381925033103846751749701590654505419353234411934102311662323707046691916695289601693782884566687144442369510553285997637848376711620130547556535884636772018715342396248424500637301828791679358840798200334849970989545946950590842850495181709911520122156428533910195458208047898818931012193946935592802039151965637304101420981615998725878783171723486364107162200599738479281505460724777514462842033514203966160843869050599516460726282219209772429694549469434050542492550034940329264300762059772805979429779687999049579293655345742851830495275125022341524410511126049342872122573731196439204311575330136669575895360214211241602712394568670477047598503611349882940201532750644027038698624332694818178768175207558943971599051086894043239641325237761288857899116999128294537101701305269658159122773847992644588012933869198705912972036772404607913573697342178132871345201030820625048981131205829778325880306903043106250410864859624976858751796563100811332954233449512967911669022174744492101057298452148990368359984937647989165117532291110417002080910902378822149021405267521308528883293887503944500903779311369652679098179755157071791288210846984658260231820226176483496448200273970234482461677636857904312013219879897349650702707519661652509614750964408794440009634352746364478007387764007403320596610003271515157461836552760965741643572513330633142388142338523835478641826210206216152240800070510900419152004824742657822073503816662659200568300176272009187521667808792748528228302604167171368577958687646099100400431312391311189830322195817839657395581669804129133395676281696378809815836270831835838275722974908762740503475929199261733131120538436554501354986857840047238549704098390929992958266843936267771663341589873431527486629874462429338796006251303732655553412885565075208675626236326288081855129786716204887946457317967429319668648174327600437503286438170520872900502512077626427745245484402307424997079098582023737860354445938454980901099593839278102708701820400788335849670493839670179716142769789491956873637793486973055165802390016567914799861107508809445108548836712273234236187304759248081501771692138669804373343585929901099165906910102002141217135721215732332014518371124940249154318155120933557661354652951733387967462742791581066889150079240321912845297562628965772081330424932666475510468594826561158690755096682576155068601620202064070008715500837792322853222602275342186011107824477536480001443809378590002499013801297973445732727371115279300382822899321997356550804434987290047617307659800738202160481764454615070087689916760785544478466645267638926513156337153185084864309366157077841819763367112833345836465882818283874236323165917057522349425099077918278691946280261745837362182768084017522372844754143025856633888442541889743672659016513744919121294047933079801693653275024342648344213439897498523520249050465348475952375980559507462612959087820313818205476205536443607958129529959416855034540235146928459581515442922870935536569600971282065984518556876738656941135932979945337744221695900489633685994923456044686951136499057763534358857625071541884794301031349752655052969091719337644895604651461922726929177031258265019784538322930543979833864577683697820363249172542037260910741874598503388891567526601909831191542968862455042374999477120405576396227501622196967967439492502753064679684041893736441501020884167173513674790145469859591698539698891793822824714985470796856405016288389954899007359233985544382249547445878352454485274718591746594957849425868188747022874002011241311664830289773925552036548174544215118057388908058534627874500343315654553273914981367818517989581042109099796168802441642578957626251516270135987920200094186660530568981280046584103922810546251064649017250590186799915368617457559151024720723482010359845972882037025616607394126039517083830533544207222229302000741921350824650815092192608328764354618037790811425390243482805399458726617771009814500644632310682228739848228316483182704352357757723617557413712082600190581254267666736390365040314365834856697355967160403045312048826694757494717582877914459567039854140402549421084315325417916967746852293885897631824419262063068452133646374042927873472841158613573109466088113681457149913632150665906312613927018937755156580281206648859232342547940506694862714832677820641532969773600545356342672935707151957884960734195605854733032482578276741995267237015959793383940233915402770796925961707832619937620503940466855353839303293791671478942933142976612022753258439835975855507635032577080751226432615616887910606796605806716599204814814136423906371377537183579191627789935255805687985143108038626966878412700075899758484276668849443180034052284194492046050304491177320857826948338790130162884079742893922148109067404412942273978271826368156471895869726298625767691154072712518683228374151810417557783911912704184932709832505709979081853091203900541882151553027618389152420348787672911436175043674635851596880108782115683871031796320303749154978745437566629271838171839850276137279644079800669314480917011557046704633234764632383699998304661048533999858751567475365553182720630108766817124511799644417892909799917679830567210120734798988429437021053961991025697658141491745850768714848214829534848456434258960865370209324399101371923758880282705469415798219118477849857651497046384679299896620202896811044664411774219012119801944490758547174710582227862141606527701927928576880401111318275957670268688428807215333972917945312343687835022664082217552532800150154834892752599138049398191602232530383349158817274315000739701995498270378542100135813030482825010896230831598990352080586091563353933932470081908080292423510503300249640015720054004831369930406001461587456344261349609739870390279705161208317611802984910341942930342386216226323378236423249614975536105194054949487669841510813501528699050582850077297091362021953509273035960812050735383502127859458460403530706481495071219718872040983896979697768908628513498743827094893380865044181653909082525373108657992684088019617994767231720854745440546500044378230160044549272834142996908532876599416098376270152363790033355368967879551664026319146995041353651305344090256205717978421698597142538808747175294322942468626308922850611930110231332713604276535480322535475158809479993900866661453193008503263783796449344586182202811491510044487271708430200895173278142209113900728818977472636130829572611676079576819405678834749583399632133096917182107784621088351325473264523639340532740659627855316416367594544477807951164634539786586528265667733053688956408709143163178216465276011659961685560903029060323259005276487957298618927094697604686130176746192120578376210966524783138967526406481895227730298419667642622435412693003253540311698124382129220712683332820372533096233036139529003149204343869219212607158548794919714765644567190911784075325123347991562607621079729351478822116739841697795590802673342738242524992043169807143445306763512779470704558331643951503727974509676670713805171642253383998774833866719284650873453463295539536596032516531309200330613811303152956664491579462468238077308305837135067727822778914953813727747541623323383271914748781372865174791074159639575261580826943423650174626301830656012880039329532110577636631096902932630226740157579910459869941765816388169531690224358451679359825288275115044657366729999097945836671083186192851525070279193383956833636586800810068307011267267253728015728093650277228764686929521907428402583376969926100878261504773354272861927784117344849390037127664517274371165852608110985892435218517962427169989291281796296864706492225695414838854014418814344601413951231503751765229102009664385766495465846202580055356886213151866099984349725980847272252688846517979074891005900138754774307487802945652929519104108287371280914209819901592261428820295525013254882491379496803868417791855198983434938512521193975371597269563388096941630842933978619422534478432560927233691343608290190038238108822252136470202800152960476247543633472542665159540351249344887489875658020656132748350781566268417418600002657967819723131702684298332760561295331242256319523593697269270161499000919095268194354467221732688150228239001709948626968546659202571135782762507557130729119487290223465496889680113667598503794669242436627935365929700288676412699191200834758919590280192175739542169100930232335301968618278435557062091250122959890256857457200501067112378304616976752190733418723146655824132825962341066099425025437493542149223515671384770792039737466280116771077737581349690204917909546646621985413976674914014296638363743718725554824669932799923635545961414236845076659077116050368874722709623308097516909529427894722919996673038157198713948588414019981885364268557100020524932056909789566360858339153861788208328316377210355012038932990611363900359694211320459602360485662426958587703267738928933451532145256892315394954613826063896532821881216518121565154427511450423497915332688559623713673568015096578698467077324125210850457668023393368214464902400006832997954655577957109759146810226537961892501575333041862877181431815714334486756187782984564393329202525100067197979599323648590847588331764455611048296041906773128431904692396918599635430745511641972446841455712094009741638865699150113934422497964835844257621538604263840761870263426370023814113433238023471259759968989706272764164604172611649594822204136547057847233183025229502689741559769059539030324424513572956663582925354486245775280931779836049939342290541910858435311504589577221801202306154811714293314573105603102324857728221997809053781184855105649668995190884864700854525197020911874099946091035504710226203672137857281024235490477975941144598390798734730232565386078365090812924375241424877699029523182768876062412442034744026088267701912319637790933244288648691788687358503513546895218036193261897143060813178955194935617697031955832647523736832104464184197851824145127782428478310287245963498301480283532814167539688884942217576479912132416496155228144558132971794043352988252721587408321939564930760434355780215002203446244765850724317033789223981133836096737203092488510799716821502616383124588354272923636372216769586727220458775470443064638479435684162628551898179240161599552703599385624510127057360570679988006529826729835626480594668642856450673602023126459698616869066933160987246461732407188659494010808133420475180713213119414003499181105762812955863688546228298266112845179732186447913322243241387733940302295858966526392076169432485384549051962517955849041736001754641592242769955495095340927729063758585584151726251492947523741162495686615639541555940597143431742811143666573813227565987852097415979381435002503293552456849353413718835035069235466936969118124750168217254496555972031559417169837862865970049264033753960173229577653757053031553930308710546564705216322341819103421483690324036175618463629783187771884513769478870093961135282193325915059903397425584388056316323675756474492565985587868887969392480416350137902327325045401584683043529876374009120230463279315826967673342091874612856903421651778993793360514520542716280977784660545972671582480379488109179297369862853818211838865889677957609974523252931091489802172456187236851090135290707392588907001846470217235126949945019540644357933552749679330054370293884671106021937681650493228120515901611632047479241116033203850620423919434078210265758452717422759709273113159551986834166130862416982185670465679717771445290545251856355855390064131465647050978309704395355544102045402284407042162403583243823320095128727078488966529188432520273073548852289897608111277069303336020084279795508242143995176796721452840948451998103275343137617659330970039220602967311183395151645277658654766701721501367353381937950126466380273704499317899574943915160283552998883259742971917356194710320179710607352242199185459051154096786995965167752655472469896146429129887782854031839269890429503245938994455150208815387631780691740636612969526293334496185028251866870965613618791343205593563293735496574878990562744390636323211371824888980497387435214605360977153098927118061984244588056097341648752141183094673960293279519270884362507699400103336442596147728352685377693165893176157418110366669115349450101191809451609721082880852894989282356704219212120757610605264923466618822264418037535427623891569562862730083246699895309590769571688970342080071387181602527257081888153172737607200064987171664251601306476412442519093519693511332684799971139049610567496656560452425119527507724865189573461959290030256265992887998572210198462997245968582228526364620625985931031404150955634877801847246696947859448896223577175269509345359264186557668812064987575378407804488446731980725484219580305857830605406836434727367960231899545813686342647689967798302325796030599245021951077631393779127187256240352028435563972948191476781066480701772010362342959920737982482396968817364604355833454597972280880144319945590894992839655398238495801156679501124418802287886516519508657582624703727782682258665363770587366517063950559863315609975703260486987352389764602859019744693901417458133917475102707220321319777923887325739939175336582584361364363522298653374920618283282064415520629184217281054831492494017744101829586452304275572734956814249683369854512428474524528247934224103213722446817775721378097589609447121970530797292702002455804612994236480526356478973111732837477954021006919653999136331030081259723575025247580582289058125800351162863129413541552427885468195494132236397570943024537139515211468874765341196208222684415106404133388622657548787065719695460331113994506713839697103602768704885627384892142304590849016087912946239313422481288999399982932383649684179282480203000831624212366435160736269142475403098947841271498928403891322278808211998522865552605937611087152688165962667695793898282716418587346997016064206713559836763877864154212263454405935250905482497274989601514053790769593455884009769953704804855620423001424094611151012477774323048161112259055642313735859866165317590906303458596636496086868117749002179837712289899783010512097146358539855550168355035811100020942279319521819802982595020610563933830466663359960651692094574488266667791824410659909447015593247282263529081502425281786173964570027551117780038193841122198358293888339231182922285782938244724106562790421151805106499537316665328288745265395286760531672878674505654934898278394105850488964692218102192482509587420657165891152988302003976132409877756939954588006400364229144431825613299528451189924443511686681605242067105852688522582222620399696815694734104192441165684810154537556064247055207726693363890361741869370635537397627110321070398702241978070040432413430085521494768442954064875975713832686623149507281548327577054244226847438997474658549874453288425925004320236345965326960346040081524153283542110492757040820225639204601492461549729781976689612978570553256022763911454612660341990591940781766227428717702913376321571214844479743111784516175194029455366311871551612707915850234747961545458237872920496220800444528443010998447753191557907647752535440927073365612074135841304611747669135349408343007847118691953630182856088286547837201942145133418062795072640677024482796149467493012141216096905436682225035790690620761673034458495077258538744462244392988935347474621044004205137374206632158129039850183669119485478207698982964532795505356066616361763762498762064571628694027629542638633693663945025228261274416842525233004144295891354040714680579126909310295590263861233108756448319713209836191405994770121805750531655175648758264264468422295117009104083688574954433357534231530673474565139778568249237393768008749603014871968622668456545200518794075261251776880591376253045450047771912604829807659938038336962921914225387743762975030834880084931811396542435837445882761115708560788249640643848624156979725132560665663992018354221574360584805901357599692383686274939414073018773534060888949602394789157105466288390666339076284358006202013736489047480268004416596284173357596178418641675596388308619636512983314595863246208005078721474039683730855395273776433953339796369257884206786400689887281143794964126934394262324081771816425216834228018151180650075298616712910559328315919095194698232034440614925455659372741976766263349979060439883023868377748428950724703025517414710865553356115944946251509588945730034804267381824956423723716164246628766325493889470647218906642389307464545286715627631180575070404316879735021599248508136832362514845854933723359218277420351102844878948893204652793224903393080775844036472333118360186144637421517755938199950631747483088340683747878735176004862675343095655033525178672501351210811541975156484918192918173899225833541865742437255471517015184230633988426300090782797499077700534972891977940847520028894695910000554753701684206774125955750296138182454512724058124367507167117955250610184130962340045820320848506942267072642269950957458105816514683279575622793970267216757648776384687064321450411751379038865690630943866058473536528082453591835728092000800006897723835406843823354033341279519252884889379300239043737126626028427347458627094151029329290091546223987355489384225953976034189659037747890861172338722481390409142502615630062146385335277411348265059348488876612773185665757082075431224205651681681772605946930264460518165514109759422238046186127458127660436029398633467924547986929187743420103972147902231369986599711136129234818607115889001158054143075919457385861425977792916868943977066524486244763307953537776533341565141951264136440137766382919649845621524289887820432526194410962607478039430750030279512046727824911981836856204523421961125813464939726244834648272105089416645868420905085442968637083018550358739555247041901311186436198717932627386116109833852101679989561651317767382894556877803801078928516131074193509626980765705056717228495135988642815453015121114658128363357500574673883910490645948288980463708838173740553876870402007647456322485145784820018207143850552767834650718891708872038599773669061258598184337664794209011331887229395067142866285716375624588187094083841005611257583238324824252114709745470851210905143282930655877438869312843263819975085737823908446545781102367857123558129762236530270347463025579188664015351721691157763604500784695598235303398263028632584098738659253306184819912475193038962836021166179618041016649674784374077402549549812783766623264765550806011763133654152824240125318893042010619979030589275002175279508286323508225857390918004473653442565188640644995544383280981979887307241113311395161076637824494258390085085816150551064326802229752987583745091484222552018054893240125632018363848273750956825865634123584123110483294837273452875072412146055085803731978850234183934949189424857307392447898288734327512250706140188241462986375112716680918078656499793656201454603480636426472249974609559062037521754953630511572113464922103722876684666838101552662554656926971132773154469247833193384194109142437577919913879199537672202896016452387280221275644830626560429767401617532774257666341234904723709794415567719418791179077265862543176221063771308211580877861281999363750075310288552104383377250518270760777116481545269818870291549032440499058920496165167268213862162524624530952602614263792583169377540785048559438157166702664063372077390523599441075543724588007261294071577018877868436905630121386876427173782532351336468935104839334897512253037965677680639940481893551294909526248348383342680007923118987492543341550460816073246269182518380564411005836757134888850081713042120661585028687822787479410238597462861616243863367545193754266755107928618144556371288931277195512042890526227305109088353011816617311183902891384022477722716598676232853677375032976758299370498245851864975118518774764730870325709320254359497330794440734387473782269718418592866841210516834140898351764061128100289820496616293353448677168867113084349030752835915458273328027682435530886060715858671159777953895563762077961698519632387787890041420270201461067706970014411928603261911993306839349583524182732379267992753402592555205435639974951098125462925481954896662136036458470005889557764618452293143695890784054681046422900147144724059338816906223667017437967646895156993525634728990444428409656771857042798796109463369563064016848997459062905041876255806674428510793130766556868260154144002455879971147977522316485030414646444026811656388833872228659177961352224024733587469997420675579078022847522656693584673322127258690370607497479977790090503065296109785135039797283343593017325716101340609394544997100340292788135984803531905689318931102637908433216092553549300766330188605801913885281422490047820014381921546554891563888788411406100083399594903947431136741916614118824755017490776686715397038655240787640482585491969968622738123124984765305124199985641851234341430730849624926075816616109566547682701034568653814228907494634529047231975168393754515509379861910600784985170251264707880126178513489791959013452055351191686821264259367822390783111039752312721069162735484592444167293240844273217128915459478924675093049915217161841280626080904427727083410770084700091663117526501739746588389119394062442986700726182888729985497606606607531393587029515824583954686335660905783902339916215339844764440152596258257550052659053252253093012370015286191069554249442464917771100776870857166047200110980171780433184543151078683248659010346582368891611710195743273003619835787781961790735826145361933345682647076135233045646317818421713926637470148252366280307157730043170009826714750428004324958602712312677260483982474050723686593848890848893255646577893258107574669037551311394671787804310489521594101088277977999684993920162464272966443996098430810121808535292797669246674762773551024823665317376558808688100619557411063957292411939883296472207165329499535639047888434476176454313565301039550420807467030702872750949142997892245643356752098630812646397437231990247557913238665165803636316073755148968365840001897025484773290157545343151821388448236581921358789793375959221556369531801527321140975400124196992020933763015707146341543551016636045793422272523489940200749962591509757572843107407217425254740142696241976651085216551298088530033949323333965681426402181765939336534930001513715171138547505515526285437073293600287905783204990521327547642195139528785131041815622044272398468197629757637912767630838171992432964226772379489471303325609356025359235004105688252149129336562198702539562856803538368275543924334698609476870096256421547803109600680917612159792871455047437199077110983431020376137414894673602486993540134957289453622453793772843959829965822930444638687170631365314205617903612720421463097650586269729097160173714480381350056535583510424064274245976273835681616619133954557249275719092999355385889230701485932892169709224103146628612716380812036925806219533464139521791869114270208177570689304584526459439463578980520252616932582335278498028245221545020376757289132912970221140560088650614946719843427225885303434078822585821882748530433508162683855252379513600328827852499731652634338046724626265038030242446714903815026511947088718549958547925715008609102206330062219146716828930462197703359922798940474403986903291960150404943789283181978877146133933511519945115835561021011167582657563808572377325019641224046619107252003440876370360498934771943607457476464039613915035986484138016097677063248123166546572136221836196600745172087238297276742571633691946889764028038689311617482157373346496686308843361737424412679755930435645989594567806202298216583074662124657793783631618503040451179068413464003849968730589939597708667982939150343357856095663583458734541055002369808995416349427645758531921236644772215627362383993594143849556381316724971298319149049626873770838602214605980137698211988052146416405812541292459512018429397174691569047414805108400164256732044896548861169903889069821999517638835461866638093863091483448037147557679765216755012285288963024151523407130473559278431560693767792081862240951387473672934533765678776391668508043115447635354511881848321283126798442865626002438226760079610437121494820081316110702305246885845203996038816352650693414523794088532533961908220900786412456587569597804841040889219758425950789894256496278339566222678987385410561618565887321409240534735144945402827848385685159897312826682803424546145104694665004730393213135793919706879004710631715203308474311563834836071784526549566262820299226167951493134750552924385923960845158371484583477357747048737646849827527736033505731650419784426112981918629498081204084748249605063166572449864850704250002278360259158325389016616207358214156899822177427513124929256781719004537513786636426228598148329803773141802266563652784787232616146806890421084587769252653430154252187748127338365688327080755187984910522537419938628030936245028344101173829796179604244114758944136452341036717563439737509924693269543331482878052196127525037408778990466159168794762844561027611844979254120205330658524626310259515675179724505836313794745984926788614106619428156834875572353295593996412532514509889026300673547772690829388929554651507640483373858452260474586985414116085256067026134920791876982388090389505774675788814666447199116669836956678345134479147133711827951794556808590898783231173621557263905601707986273050531201415921245804744562897220075504672492225132458971192400640728725314285709311350102903823880097854068829435569331132535456664456322456301675979253517972779308152333566072711803365414375200586871817170819275217575006639269729125864379711410410834239624739881763443410616951305353454793508385100586922218140270046243994328765784809303086133724324266493448730620645437527503547064891844332142013099416713343301609277006535344773198650962010372820871504153127751896345444800877967230780798902279768530624286991609154880006554770228557748729791289331137851869463154599815067878262150694284482087046743729733747424414708341892364852247333443698117680908354400003535464451293250156514570796276738471371672950746523242149414369290455688985221758829964255605039149851781162419925521765836716418039345622822038790459484026763636504064249159271155962680471473474679576564904099401407393990059832800482168935597908643667627738078238012532384533695084742908330171885299912974487374654917525786690739512817755374430726829184612046001215156148117909435166082616031234238276757597258652037738330496436479475666892279550013570410535069004143121653570230042219054897717955483902897749762435585698080435701103057782741253247604746188251401537505757593221920250843608135624535664822606273058085306031027757376361718185278135004559763221018232454150357789989809412623401076089081002931192267121305333157264818323443016079746012255590124010198452207537652797365183125331542352759959350967099108389440467252790778245919049041280211782388528515710375273356397277485377441555205692774133854762841467817076367982863970682773635850385803011348858942778323240784188853949875725597149690823902487039687504985096478799736589168028984175793727789882046503584853767099343244144351341860727441761097989783907077217903679176165312652347602463954209889500402524662727610596317250464969520760720858777114920302072002610134346190531900466773134868421897094662622628232432701308331896954611648712167417218537375585770527538588985764113400252096704719023951168823532987523197313448388675597393132611309647843766830236908555298904846896604524538460368264438055216781872403958595337173680803354520493590589622851432532260617665944161397221259323072865611869009125401844645685724772840187709790376993959597318289918491134248027815324938526037749987925830026484104773324400546381001554157317497281986798666592508814805663488891362980384669549748595439459091280961481070001535956767712330240269009579985551093890807620400792363299729527643413753259703477536238027896426615913181595646539508292573022344535422207873774944063956534870458162799818446102932682469257414656880849773845124011458982662799539664067463651911837262706639124478761452248854821188901990619420718340441735562228648032173718237817501137633263185619757843369434665068877202649276165865436578313680781484545091340814236166779841694178482071457660432367994360409884793941969844694633543043667666653011663726874648812378657326185253575114082698257289586616408331480562943811266926652201972429571899569838665784786728090312108027443517084785176619200978007841787405337857449654441043770568275372861421156603496939793050371949933069253913471448614980581973120674812905313074613749414014558226592045993406132694733742136802637300463196714102522615068847632006288208184449021615631730779087153179250067893869254135886038098908460643315830895932064140969546932677298397654305755045077680892997733252075630729721948724403207167776522313556144047351935126653653122523637483447898919743017665441444458822004596388184025626002189722361661597532994418286897959512979519707612953684813407764912057987433460033497662706524719811385716611400636054022155986494167407900948479785369426198384538641529625221195230460512254164568947162726451114529348975088369537692704565995411206539467559163161074743499485430434896552291966091762046924780340849460080934233702969688856434597392417679847640489091959914790226269600378862206955988152990329716900387507890132078621903973892192878838194350118765331825713886767055799798906707711960129841375208235246588494972287395094712293028571989477319645559381506575227886452541400204643867722569735741277054812986234309428089666114508152635832739251318946204704639060700017823133786050649397850334323141105254050789863739201993098285518613607117184554018125725085142915983944127492165255678633595131937138996918892004096295687536836502074582238744994407545089765117748091089879396491649908402582868407144745748157245258848517716166899208172219012337662265220301522629072210577537574164682392736518142203602453071076067010524139533710741208229240599657186972563090451100954845337171804993613087099304799602379896454780009077715264257073663875165574110675525886502299101415876796983280546710569217451012833979651743243793171012368919665262564887950512706124516877814248551093731868084709030292914986252236221902525501495884282450053781031202220564001743932979275337293257683407191738940772740718256304259184394217847386267608439883479696800351389952057295893127562201235880826616804617012650804480727554747932912889007129116685820198328926616082350910308208568458455995513566399711997296209761989147949348498146862337003040038253007909090629640254943079108566566956085828020590244857793778259040010095284106717372097707871769093919410258055497196692055600982700981050283721289166415786369532420995685873441207486027374392552158923318319083110022508623753735473092073802687581541053570889263702515859556009478564235498544768132773372926530878004108805664918456071448693868255578454226193491084664984261144324188844195105294380301143871154849305612900029197547733347692004960973222543080739104224936514327149684467357687593608704034703942855012088178109198389646006315685521146223562040195216475055116489681450993403022392654197048452176444333270200695126550269905105123526745425797307157984886499500770567864251403248458488771069328361262933291409221806291122833262876384215511806305907369860645886178074114671532822453519587691703914763641782553179007186780359718497534571506001921162763616740312595387585918015649368999514218384249585398912629565921937199198892754525739324089625700983956725398134413910446217338341144514615652083896705698986832714319184771699095835787931028384582746100781158272949756056223965522818398645427961987146394236631041026818777702617077489113438955686672429932541436119878364134912766219985421534763902409099783945701427556650724491991359318773656312461516802599734709425327664523275876764279687266081541217789400525819548041420548156245300252435381295464589068350434183233046217639876582640018002516783881370198236309465756712132995206712415693823722255998953063092163072760584404837287018160621415334113017508497888140841569123461868017900159461348306330289440434776917645570309308071680780137510144747486909361833914606052640171192084003335086899243303675350090769422414113349721201727601229122822244522670841143356852740833200994041119119766543612073599049023176349282985056216635874502528983594829297189896555311485037033323679191197565328818003756153500812994821731492779902729798413551847286719703787646664342122866906508945672108160654952154202843804798776923413445345170167587130430653896858470019788325882587823818407338930360403301884332125388153194119273403709393818418793940502560686871330619982527368583866357326939314053887286942559462929178208288847449393999047737616362552837098466153925135870364192270663336393808053270746866454724321610409543990945123954019404236258028241335118016870355193380570787123356239911447727703204781948504817998577760161551157304318149330820808981399040083339120362487389388494428490673782620060613595438472559266559540789545162053898915461028005541288663855007754631949518535016366516919375188079277448079891979103884647245904007050351816029393024169805362898509522244478367383878149108101015116140217327338690103312129502172383283556993885182526165594828680968034140066930710014506147106194918485750231702544517590178872211970984164299225600009613917933792636077143475489076118728702965419442816159237229963313142250492907156357984388259311321392582429049334489984941150738847132962792405120466187845208406985263917632928036806985409882432297789597635780617799933797590378791018506724463284425537542852185306037826895556097576441186151452713106173326434351540679571487096383601197836523991898025003770223095974821933531929760484391772366081884857719154466657642000566161668619056151892276384870707921208108022156665913287335290325474077486755523472701548628920315310286037655211711332427297129930006726755560852710095067112978533234623075853166869954708372452047414938363911566799479940566400651229303151531668624261296598576036497011249498444600955689356703653916559722314130662006317342000410569685043777058863426054211365040543173576926981921775917636370746387259512170575457283190428548283800186158623289129664489886232185168217845526810163248272747769116678432830197386950814278571878021108574690386098877442794647145957077104180698182467862867567738327179059879730220151334772280944764873940072491525102884498677191469615876855675908565084477468656100615991935390771782921667724395799058583950633011087511996868215215852806154593851618422330498882875303316221841826995989785647498921604349725684787987610035633339815915419629904727381400556336573788077460152757276255551563359395379873496293082737088861237354858086837795793288396187169353342712922518060798834193078934965456709094342667366161096857090825367465995004280073262778276409589072524108740844760626532519126617268887390812827016424000935020640684871927768664600859147118753260574542850873761926635573182622769945170151493116856999578218973540109740166897773818180028111524791035026486384268360720181814197650174466644106896008487842945625529433265909679220468149390694008832745529099875362023088153757029250217601192412355833686927169261871473624721153544042327890493200840987883713615188400895883151840809865362780016207831883156415576809152391289994122996058787550991385927513616008759828323051202261756088505647206557720772723691647855088603272388171890759497490182840032335393422832761155257724227352322821848216152996885733929367735343595498003525197661891596167498714731503294811209193781131110964981360668137640087151739212219901960677419632571650559922021064809849333978102030627487183588669840491737112537718010786793917420995597344249466601803340509681846120472675995137165455403411346996724230919374314469112943187987681788905467290600447344828072810480665500094628145624439035403586348634424156583249428118977926523094122346991959921052228214661171215789401592735264756576866676006095940837054703056295119549468745878648289869015999628538668367193841126962001335866290834141866800953495550402726616716315105707805619165415533064000794906721235446990527961586872233801179878288613543058524831149182970376746383444574279657062205072605120927480477006606652977346206473099927225195767720339257955556061790756370926870186744367332495887035755544929905466533156449745112990405360109935746860165718720582493771661911395244055697123225694537465327795767266762178254898472563014005126933835944781338426433982044218321360665715467181356675764262365474862412838429809706395605968057957544283309417805395309417369567601942446045188146742450911178807191842722418493079624177469771607362828609111676223165179146369095154533628853396384457777100524114658790546162456818655462190655400152893308751502412508008189585693082771123080570482469356187300392461584686414768197356988007815367734587845058109392738649422870787441327507070617613105454995280168059439778848972328271712270788868906249705099831850144226440237911089030675240282033775277645197121174406206805829419716220315111345133133012294481200911295171014300226433679347150289499977422312835060577226127001339385765213841116707212975149895483341922098373085511539487414404609318742619045959256576051930631526976257853870401368133856177444196987359242503331939163495108721157682273369516879227818044768421416566017754501597131781600344554226665898695893874347151182953466112424491003660912335281231316669638387938267832443604541941726558451687483616377425095566173086587039477268408595465479936163652080614655136650426790398553361257128610807257505837126244154340944634609812746253480159519576312451939620560036192611406275226820967477790011557017506493504959494128970196685109221939936262764900807720579121351677617713860002653962014658695892241523834111879981644391838822237072514752773994490550836730295157753643758282813026390417747861439987642322962001112390670529822725400683960396791969832675928778606784880451737231684926819440452692145623111476217559688948100126848845601495988877337529614198610127188971392550357318053622709724804043338921002363539226336608194542379039334355442643501465717006187480321936904684599049828098698774192604196415227389679494092399158541967340003247457271134275489992268290563880200948892311660896344616958122023671422948836742130215517693553367651968183613961312033459859152708530660581010068051805575157619052048373004390836244740812833381985032377379871046259138140238524587123731961610348639864543141036144596073281323551695045515656742057667932046059147329095025739331372159141127118245731596152218887649828021149100219759797594287032861733714136242734946939951614864238923979620808617684815218807420298258812652693850545382127277210688521454146941072899132584616158433631837231185454235103013295835392251048547650296597767173344048809891970591961793530469389708322124913006963080687149466395223405656158976475047565946974252109146710139352979340756479306163018044624174676062091050161962236441473212315544734993338917179332905982814709997588967745603619580093166582299001757882599606157818729016740163710836861823080340635964271529737780378799361872347802812736283231258787967389520474556746068999483022256282792271524931239134654822191570733606860606394872728505453079955924883168749349776071219765057751574104411288483311793386724897629791337344150214838313224433333487353091911282762824504972787094255876533129787617858968050223133136667209651786002481306650320012325148028169497190294913631961801850437248674874562436040466490269983110117210746117683679359846453754061471488732745507502350575179171150730704620082376139541106886537498961645094372404810672575487854148775277989853323790754992271414239625913448012704989171841829491564995599987784034463370391543191791544400360501888078404071181727579005418659246819194170212682145394743473876437972282985038974078742135014441900051081268999625912526604838116009535748269032178277946768294752751772473856972130062958087872179474835785598552469266857998268852425563178837098544018666779507434764283036270665347965257197328022580801420313381109806801736408866380265433253031245609207793268579604201098108260327571660257560737631561586583606208824627226523119564371928948267285832462524269855850080887685464960242140214524357754000474896956295014583812247163554853218946155069987484578108496157712560666847655374529413795519448334001180093718751929490601076989123126223846606162614612341784248664096673432871246450037289276643692313316674626689179575894486842812416763019083553919335811063348017703058122404290012071659667820703236504862452878426248474250040129635557287999622782227532267088127302715765250420983165763533804450838443639683447606726767716737675853352992058040376711608667051191834440292880871823796145662585050923516034896788221482443790299976764211963610170505684805526722280507449622190890795627354160481057622901529964348395272096396548568928211072973783542224605880079951466233586756524451123531529030417180540201512404475684230208801271696048925859330659048345073695747385210878503011901481895685606050912841214457598133049826982004676786063598741582961789180728705885947127239708982919594943234242761230306998817799718595251926840391500348178659546148938198813364003285859435083571339336611611821933618648978511330084029985096571702963103189049763669741263322999353736961094393385973106266679809557922786569216524259169125265121421643467628988642290126275638394609746569345411603310399036945619402498041156043019523967474460911043660995307073466975793488226044705957676593779774023655881619096703594584759784823574689047811102527118808274716403045800866745921045733970586744719859494409801196615412158721134711530840343637456880530144334210806325347299278976010743342987169228911695508863781367221447815780551112055775220885192285605880582461162402114351829421454792420257252240634263831628563139112161064072710823620341007579831612285467349710686440285223923197030297106604499759734943504144646137676532642160694972393713557895725916615920569369142236226881502310355224835502955252939570944703104482941929318114393065268463913393391990127444135079349036267637303756483883332491406172437982501464904404198459674448211490205408918439315391722801785749785503505150793694772689720449616541106915019652538685176935523001549221835112227804192853826374321767521223376148462395545498559565181270990508076308738950030178334225015369158347802324302301350582376847435368983112786825592448254040698187468887117205014546184581523232173545564334062368715464527711015356251207479053943926255120886928633840546799923836483718750561517173326074357622499012471518249849322075669488622523022973104037916386384994326910644556070110520739531285038345248481683837770088862236355795123916799601109555393172087611548786732663239920749323720095470920630866199417603108631287167398827526169849785349080989125746029295971852660795853154693770865343273904165042727125703047072907127801670559301763970541831048803817018722073426364836010019060551701250566858011428424322521935837166700769942444350083892207042536046720080628224445863368624136670219719054324240545532997045447074563742554343415646819073014707123923914891097824159255109340467952511504583626240263409795000218491148722296556130138742300721989954227810189325142110432192235686144155157248866021754851561470194462593726907237315647677261071755225963366761200403123699927535294389203924675290588169572067929833430244960788375103677595357538765127665520459190142834139124804038927729608525893993105270933932391711480890213724757218039015772076461402503558271718904908665710907744585337301200300002079510021844967084839583782118648648296409736056603508707112796190469687956843532699114936203249541616563700767986297703247019295778088399166309846697159658667259832753318108743320776387561112192349400292159660804091158902717781214603679055742463666904683286472023297919184471277066094304940125463474364659520279445245700855696633784477901811484062929435446563508906745487892345834531913590698666601564646674985149853969348005506004452231064351625866523743330914789098449056096701353542225525104641352643143645542078532430623927847199993091115446626723598385899264578719411711426189613294882172915062712175400637287312103640246037451272735986930974629292817380823394262067655175549437052554288912469049083883586838634975515566106969253220563967176658892207487795884069542669901361568651641203223678486122348923888841740702453627398009139636419689072810552377204456401899737734869001036955525523489889345559295521019918858415217880770909013216877060156864833316302713954976873915140486015320232862916255782867500377173414382585652726341459105931086145842819158566643169837255972259398090107964867924530532720672446062731490194233667183611417812627595059582991231357976290081719081408027032710461881714765651604191693266517772835882240218437612122155926334191813081898323456975958276494934318774941510707009106093936881528224284697583841331970469957600180170934821911832378151090122326556841308833483211387278734854797261938949414631934619014002311911577904511992183191437854913523825768904047122693682979216531385302466316598298180822128284730481900590033899980136929394523848307894478743937617146096032031849648112368006031368434777732309539094260877226191464969751600561168444410363594653518427799892152103133509913188407470352852090150756587574977796778888030702036468029312022858723979359092202223816647579855311358224767316894051268858575333391633762580773183323577362230841536747252059130603314935636593019128815396900131854993501580239339047782889996717819973841502664664625579566446845487363510935422158236459311178832720674440996690179434270268684053034981292852344165350661989303625316887451690273878064204450795805585590781308573925319912327777739955831861022710467290248272202122619578789843319588564883895485685921022387887375661413355546939562579759234021509428627069728191460655781553458112793864963788785068867632651610110025935929779113600311484489885275964603490634354096840476178549269726109570785548899509995498336014880074640308203621750520751886242588538387171123101212146201461503069369943410351168927926641533142196937416282806430108227073757167144820966355186840249866254621651880642495798402875831508298654214666757643780052008562551696565791594808257698705829726973004337430387153819206164485018290690932693794556284366457007800790027996726123542214295547028894834820807866329159002731806376797826515460021434086054767579720198837982874645050005866655296311375397471540257560737905287769473862514111502100478636391311197238461632303654665402666429468338838131570003982712474978462852411754847327384468411484396208570540962710722726700132660539551768543165506578424106263835997619649449166088556734958879841501608718008683688704510325215891826316799058829852614155361631463131945895111608346892831633374980934136179305172437910352407535126378225407488395996846730735659424008530145764369332170123050870697521744133201713375114850139638829338513568271148353264227151586416948129441726024026769841431907846087992493671272462843146885746496923279827057390658048565579417168668834506354881790472676510003983300881646646134817721489086318553519850931372843914231172742351096262080183960113753522451159880369255443676335596498990003457399430891475370553195664560472417123392509452444435739429507943149904184473219963292969145440619353373364575518589516256528107469485603485283405630495679182365557204109278068791732123000959947788381357200403882262204100142791842064721612995915033365032387041739252467356529175561261750602304440898980766531740984018672220340670600598089423687543626298398237397363785136878493246280920062847651729255262031274263001038787339971095516001044313412905593963260345047932651576401761365442099070639467189659872530961062295596945088653278402047478631777906644961802029968109391529097215611500731757211367534868596777542580371935914211529759598838765994237090980505014262695439315762447819603405002923769216222598844546408878761902791325778735323043337421025289519635423566229735664143588720969351766902425386038081928919268716520005038487428492358903267415049510192629521308965171120722003038696790954962614974547131463068126945188865172413892750148747259455677043040838811991779540789984968140543615405334859186210888803410704119221072523763617504777231612677346497537018896139004122054574762961775230414145121047618413774257759056785119935660496812330255112977998682136412985089589512769633638264161436200460250268456113669481735299969790723687218370360182346030862325091424320786023096881556518431074781941116155293175133330127364321985548407378113571126361469532335183628506931236674748226866329387437691881886725034872282888640541300274315878949205971125931376966665699631678215169699762864639642004020956826269854725829550523241012902244849766841943376398378382009626037167910985780084363803668024269397584826108452419811331122445420814236754320904639530528789432833527568417957776817603395864218741492093439967950806477416467330796534988525124397732495659403370607872016606298111184289582722494089515557209582394478479571417957821613749605277077014397408513851176892447518320467325685784529682139707834669893214460619069972316852427207398583335668869605122043093146040565681045046071796766768624131831649343603273924638077747920696577049330736405686404576967917911754923229818945654519258231349250953706374469805225029536796832333260553637633914470799144279779840707953375733040690483980670298982636903821141710237838536681544591379247027334626750186551637854328901048811647869206760246009967270414253982506625483228942349892910236608303347953239454012496672256936977292326401255820061359034631326259681856412838694964003332308426427257566616775922493042172962479177309172212235452465630346879811910777593950808888009482400603538457382224792299070025403925016789610814584608134412281377217297704250881998799819500110922478165169633995508549510233252976499110617263413621536645305224588115290409530119472152791105463352082370100596649324253428075114208026538654725248528021520591129479017618745475792194091739247654198011561037703267685067175313908434215329169567809754218308509119447665656649913145477795437703640636600351041315758861587695197834337301462685227482464332467450416997022047702776613279757522636892924956848228867385487138330535098845105350096942716061598712469647544218146377540315920705247926463447244030498118885830254526458575226323330783156892266145350392675242437618452230038235221624105059167106383171920994665351613985473864357667387434706880483010911452520923722191667414902736585767332071111709625289437669449480788172809384895794540027252383499996425708824364606168772562341901127376653889056652216209929235950789338165439297248998096973890882574409836839229930589614049904165999831562575662983946145608200979005828250779286440816232430965443558640269399626087160744857846169105879138809088190493811161312517605303370791109009666740438887222373189696882237368806737593505400115986980053321499932513846652817384971907313474745736354580386814104703157477814590873694558633720568342341834160405997146736197456928264640757727313195267629555223217627997318147084249354270234970423040060332303832390999558032790025893535391271903312661368573420518418671957335684817785060480466789788409025826524701865085099339680264475212769331755032885404346718118361129967603374562796487780748448125546226101895753326431276369773294082439252595483741551840658555916289092050635284629024697452949069841200030824836710013482501254900656027259059646161143018214711706893500676026393946962214808053194042520911617465417256390330424582063213123325024328745609108490761924387587139836852107690349682703229611434030314927868656989129221178472409736398195057954161278162314995593339474420901016350884641814012645101057802867874095755112909706676052366418120708700819709862459320294451052729487209115166033124256632044142989595133554521685066893738046222184752946059305823070718804866222359890803351215228796399349574913600604096126021019567684844646257245599274667323128204654918978136462649306446858833522239025017360493584716056968831633192321929234013565330378049879445851181570353710462172678687463160155694699829158833783075919436483566367156930785709263709599381429541373017615358672752901714247276829984414132358646847559547606697818628898150443401277775096915380772495447747587009905567524876731965120857826585526320253819990241061538844429362465476623754677784520696029702506417785060419681532446866785964835106914648320984849131101056117141742999904918567486035141104529053370427419555975389390122097859485427956727801792152890130459150056676203514822621211493611663748253357578716130134331978836778682333606687522954318094321825559245660392740992996676591932900816861963831542459029505373007117781072671156321617398632292481292584150925508049897435336185811310669090258037244146719830007823081394115513390892427756702874723688766280752393319515739936132044413825859773117409604246077442494949482104599963034369386094182924940055482131020381382420220011433024212646726358489038349312200112046884054680817088357723778230597722074696592999991092219778779981292386346667053827661244023145553257670897257458226436457915960601466932358386872213732663540296161456933207526642451304263374326448877107410092745391072049780865255275764476283046226206573474056585450435553432706069863777142041631667434946023300267368665895352716394103313474330930071589851992021463704446668164639685057786528711704724403145445463851764160340292348428536332651542615193909416900729396461552437802228939350242837412243938071635195002892060997360147912391885956181247551195712341951651004290716501602023721534251055819518032446029327156984043927892502956422523988969547310090264916257348013824835001091322012759225811571044088211097854635906317828957706521107793760128427391845760797255108181619410142948059546836523289443713484898998530893970111354422474590321337351374569399129883821434780454159557633240497495986266310559427227911543556621248685646241460920219359225020008731439904065424505903786235067745915215358581004129165746776178220993725444157030678167218135763524768890306810636045940973237347211238344487653204110080158856428187955289636779301148744978415090241504674229749245374448086839956445309160765689656401679272171929333137168292049342988639761672000143499582427727287226024222474538907577732337410884110030511050212490614133165768013273995649993094901116841533123098994755172537720101460377895366184283252015206890023907342681702810789643168595974064383165190689406581759536156035621624938827509245671076613477998201202929703638786280262139843724787000834316134552990871724093133902355845329866328576224574173747139038363857407527168411938523750523347788833615815164921822359479363583269838287643348500189078288215584181423607528869629065155116896077849316458184653679013124220100660982312499953101315781447500560938246902716401754590969924985283585628674757292889466039327334467677761940564633875005822931501404464602621187484059033083461441644449810173101305676203865387090932151661738352046111148363769699565030135003702325286403969545993187896042372765532323294160641391531397074465741018856667697447234401859656111734199125225584052809121642955678053535475870208322579532643234384357006993469099049753913868293670444829560588979422625348237360176041596728052791752427612721770829564579633380845021530287858760058677749946325078861796572270576941677064596009637924473056108063514277643728484662684403781969947039426085253044269821294372453561535561965931601774542497966183000389534487401998814930093212054505745699120716258072053287021412915246903194817044806557542610924973093431887778489588794546178115670831645593059186889015529741350815685032240652365439586494858687843823408838970765830951719517066910974976962204395671501665907120931478542626949460958420283425250102608926920926605427291637266214336627547879293870005607964359247690472846409163155147108176722635658861704849450270803507092211341946345023221761347372575378128556896658719546854973794068466224702094000586501058862798442184760441133796271983425775952879317258747610605363933380812869103271430817322377879191051995061640019754305534273347614752311108844051142222993748274904808607386090412223932498955482281894066439486614815430687648142079687118926156304327038940009413798815384469228779683658215110780261303637627746820720870037891893731390358090294710711619211171344301146765098144543108416311810621305513293862617518269947852569533993544640103474816780669871197582497978687918226342645858628490975225159016088130393774308311786385064276062213073215009936843871936505548327419605573807516789244302607970413336714413576699468618030065973035156376018347516858178331484037907848712111450633923829288498984149115201525999175075844562216235852351988782083400872143516618846222180479523624888673912557265092591220495861071128587353757062380085189763363625530076479717613448155951236345164797993135680713194920989761960830200611987569964820003437340952985799106709676571618280124139368528634869850765590717740615182477461140862539901255012545628287296772033262916361991861636834512269094238678763050392926610078189370494786705088583592634482541374346620161393107022035963010852615956685959346260615614950012723868937497721733587159455804856879943561128853993786015216325197790238047569706760139560114013717015574679181222720143402364768444671600852406022649563739197937698572633401849056576103171514999442126869469767633081343349943945037252812983614758029115159702830659745270863181222132359263575820223296128945570490891982111765161492079507551452287170735112024748063169731841625788164926822482877360651844382306123889880108218441211595778230805789565606267674293258416862570332487571553260005588084208688997411772454285774106764839900416804070124289324024844863008365277102313869179939407367826985503897485113771763816090339100255932166692396137032299267039805659518885230033117176805483017877895866820883652973150089123054158074438981432591361682546237948273910667750645438791521316237219662976614195497430551389429593960517730837168656622131854703361919986078380804150072120686776418448237973760966281459447426334232690974365125125693347744288576467895867935039437780933492602999621647949806213433468775391477695661577079732805551747658249360424133360251880442848852622263768798611012702725655898634162279782364088488075391287362724845078131507752284192094439824510096712171766823711582957444090525375030236755100767945282444580492103658075903675481828066223582197735559699483332974743684291364919221124765175975905672056613135080430570905881399858138312557099462143527388194537441085638485439911102092879813440080923420102209577618830358953865190214207866168784603692706860949524239553147868711614416944751328378426719070463111838003741048313343439579965574021027880906408238835182621489682834008133856981444295463727429005127385095240357883060194523063822326231069363821662762405400930289677018666790952927697297472755762208428775402636936430675965403223334538537291335474949258369034699309907569627739746123448856372614966062029270276569675467564775893483213793654713523469721890403295141169813675494574045765164955373629930472967023917162738088656489986753872806331954206093295512294694508003960354998370145396370740458257848189468999379630118518465869137896608716456093079444996928850549113005688508952498125565431874828731728296379448277681462561139133292130464190959217841528258449197426229161828869549033324938722880565516123163467194022607283224534663217905726540420054704504759738641074731080666172912296629983367204360690865559700423843586881893045280710664411532484938006196858881333039890371066152994011536298077438303956186409332687411658703212685938792835258358322986307760328951106396234564630329228401111583566860990860482031669519091073281776923239330935675973829605225589218466343373479586990208633832289950501638473231513616857698817603978098245926928338606413749984606072741148526030900137922039050097739987730265195424186880089728445887027644762135901709851492619989698303555631108028383961930555192879201801361223708376008858754229663113165647987421078313052926827690541563915591438659356973356354232846708004824275487011493298269620583092471193215535298663866698492775033608034736521421366981110880247755105233348675271184265063663249258448640919640863213743048963530530972428804243659469312623073969923731593576022588851311190060757835579678745805692277055874024885801167599923508191464524471049958142970268571427510431062048723080793332949920761206957143957439390991671455812842425457038570090404273269656249925450420432542533841780751696129604053801377202523713068465456795203636754478771206063376922352576355731758543202040843840706109406473635723738421691951537963064070534878106860886043213101573709026109123675443761968841014880810819336779372320700078905016021514654915828536146496289369967293109883581737266918205870338797359268963696380741478854968382417185608335687577339550847882200158775646269913602807622256441012789507553497213783315619558214956989052819666736603533484546527462968552259694128153709298288602708398883418793296074085198119331795124730873585198396702518228369041655576938309310351015263254434006193946273207472593761046716406865061629995031178313607657353368681693877700846577522486122215089773043647242225698055721423050846681983734452943763676869643810774888729204133038279826732973762058048419307887623380138121584586854888802287584981519529304025581700303065574214357288524584078765115542321619809918314678912264937757502177790401525632237593676782664309477002728839067601551074357570616643513143819941903132538871908978199911131193215018196291101931856648531092115743435599875559361408660089579980540355913113597742266018294643037713414220548572583645656303543203395213701102241671817349340277391400537480782669503835144463876444167991725937324688986260502597234092037901585169133221310301147520104685802395297887671890673434528963857050488144389764244127975828982079505191750501166209959365138362416302208293929355201887435582977571914030655179655207262635378784248693128498408851749908814186215202398392641922404862894544543314414820400650740044884647664835920439180285728392598575298530562709417455522150788286290520200324349172543219327226874248288335444444436105082958441981396069809870723984660242250967512240954381393689878622259165856176814490388178393649009053823814233278383051648035614156640322588313918635690749009854973126124309996932739448572032051834280043408503249719232840806767888254048308488099900525329971579629125921453656081911262515871252404967774597874866437060234717088378190192911115908477072682425862334018977072070758927518171446804515203604725977220579250484163716260491420414440451160442636866993936780749249134478981510587289871317374912317872587145402625413699728511869856616256673061217723341231246417915681185713695345602230156057732986900868489659978997131341036269255148199049439381816418068470697388500715590304257277547835992208558138681614442496677714288030191904973188360548927723827095500655098312827575825317846165605318659369930088235641119611420841930417340281889841550902016813173793420058800315199910106134430097943883915112531382868224983035180943164934909418340625420534197355821191049867583181071919561741319397124560843270892561364676429412259788824438448592254771860646915779524852616995906259143948856426047068517980708821792032655601660686328007486932643234912357862366147898364873998126359834494893915742525173815756447460930625245162123472734695439761405372761958326224478216082063720329140148592517048738291129189772385039974916482423123284793442085028722770270939432850102306097968025657752492088686167771608390465357870028323863373295615572547554634188940240121939391821296599057460718402077590606110548161729389222141399324786450653113671508170067732729089127098077860242212864022540459549669738417858863981978116427793934086747194505575513590415312698054765102463030565095033043645095948239085202888910198800211078558819709056853252517758280809119223084538368281416687920360752630684670393543506624467240785181457834235544076047944219156882029154494552072350693281244317986976554238698631212508092775278486561592969597572710448996968948241800689962417584218612709908382704459583410047021121598696232886474864262858428769583946781445909174974516830664287128099724948601867034630447504721492393274453242462479216447136344058140095154334640264103354801872644779845446432343312579666669076657762175733451651344021968819565011482588020933878555064932886040603434540560175062005246330315963098974125408995400823788081581126490265792505145196798989823170844622506479087181397703347532959698778891931706575370437433010163321683522174630840452896484024022949484076254245543280981124010959776296981223110958632809854073950906991217379378121555963829167870547036110048029192006562121967215695218280346136892748448260587471256207245928789633059981514143612676337910607282937420866709553133407089655540154649046235249170424711641342255828574628857557171754079200626360213484198521513710834488923531989394155444730017571216706923961417642866964874300669309163617726173451148096335727333624208997370813132829680273608607648094240595831283476614867869405250337740873695911436437859959383274281701215062440414666183167145647739994725790451843876333967844208322184013294596063995425115465153069759162104417529043589250452531052892362523493102369177795072804276446623576365075257554557750871718001436104727471208089933097305246586341100255572875084378724585596887642743381343079673969418435633823663393957079106989545403280450643899660473858001111658830913907469160481387165917903089805655128016326491941319814057463281946817093829376407522242422616453491835144964871689533079797568740619908427741139819928973058512332468174982338327737256815586840912529849204868889197508425055684241406608452848389385437360589510283825240062722911915910014982444786500399976310653827121772882873671082188734472792925759570883553214896422229723489995425034920358633479632484392947722251038140077892492879643872946389680384764412549185549407602792607741840237639864509779354476296962641899920456001894107567845447196983699617885683527635602515617098032120058776910903207518465065674999523081692695428479652299118318606580761625373729871125817286746471476543564445836711714776639537077227225332127545927135552127893682737773073169849939370058261894180707848699102020872283391080511900187790332918886984986416147254898004826935990085293867807562118574771618588176621749878823691317974612654827830642182284899194519065891987100457923341281903158776708304271668601171877615611972127570445274366916632738193767918379842606909569372856545483258578293896229792541778590542535375867311931822360535023623054503849269623533777373115234185057842007684970805810730658214798190426279294830188571706433996121070647431353552386202758981822943079727692717736149312048424377432905113381458705151680133156974558695472666487834291187896672650869673610179191250934940514915539471142498489883032456546067262834661814490282846708087785047713926643383961877762822392049298897009523759614825681487572612601494489101101740754321813749528272340057467600813061892712872022023144926860154419988387876013552884505301929324686611780468925971654626650071437746157247002237626854200529065833635096896330313571306979230487838458625589664265063312889828481541185012933582475050078945940556157808030597643517286999820615683369277524631341817813612532269523922102921658754940682726994033660471351522589637236810261977067191357621171463577037324710517993515602221224120004410915079880607524108492632141035444763981759250401752145098420483661410329441481099283207883440325052668097996587400853896403509367408466138402479207364942161282102180855156427151246574245681087101906117495942752838971106564017360242788078896623984140724749961929747547265486827835512418715680820997788100569089012556807050127992722634227930672473480926080275760507673796479411530495101609540439249668746898641648585288444574695149202717737187128601209966934250817701836371652253454475348782473053936400873172708544347468238932090469651122768650770514603744513904745478400881828113457133026599085921234511151313387152096931386849455553144478465610970677309905623711384358711426763146221015108943495338915395821981607126207912023525377474953886841804144812578154281737924632381684019422024660651164642076364564205431916022914217887108384895654369630146770381340557916336247291681233632806248947555083792283526668233041823000877337635955521793805020341634087706070152743591378687800639271586784328627892694288864997045592321634688193348048625674590668310040635427999276916622259245050251933421400475389975963982844683811184841660129614079800033916250584854429654938095829255862047386451162398721363519587897400758980738165653969524668355094504453019748943068823245923318320310898122874606666867323640033565729072645952330193107825962769429620381652862295144161927047595880911527473307635911904033644094373686636827270264517201294487086877967029791665604794953369079368663170640880795727659196424110311393884357419728256523851132967324280225071008455818442491796871570126958894495450577868772611803790278037166424775308884285692237625913203549929050168307726819756566931975450596354866457506226661562388967902556617556541000187245328991551066174559612809676082543964221000040906544478676523452444812303916792078832135947581757318416786855655930842624145561073273861837394944708872452125493405079393162023743086592724859079122680117540896264135480073821580048463101414315669963614216883653828798088084392051793416671525244713391562450788843489653566606902781702180878981464393016085335872240941985768509536451429562216820899557043369853748872770856076386571446778413712146625017828146198283609771500637797435027933297571841418126664173725085941170143670790263783570372321537529917905790383477312319745367722527774851065206533243396282074269527751595870448715016846967588653169464995844280267120467888368382230947423425699515650695866780116920661350823739790497837671372919826811958238071534762522966153823212611662553896712652477657897860945288106564432447036600385615761452399455987148028417822491794442238515892615502563351517835770516964776852454480164690115689930016706719629167117806273243525456425420538023871911211281940393883013137291811162604752759943281678304971480443200557603834310605485230799117351739978031005642965110705427245591356041515044154355424546814977904716157051476953278424228593658555447097965050833760068218791818281320971696698066428746457218523071603171552307622066433743975681506600386920369494100854875594999624009189556813568772611341765969735971378572748870376326141525252422565502907371237433252727900673347909453286599494188738311790909359716595218306890578223336501459107372035639179294898465730929696930320731779040530439230337119988731083772088316616149150279382513853436157404600122504088007657875616904886271020370908008240646246199211416710068299817804606906790220125814626775777916842300951884433952094460298232112945349036542723212798836470877046737508584868688110284045703265025780530881989975888317695738611412563364975233686492425257396143037937058854436226754510375754535205476665845246276394673297237170941942968028446524102400916254890406821351543614762456471058299998108338869950399168689970346763011736789305417238579567851296670747893655821370932116677651217988613123938731005581886941579454786296093352231450384841077704894111415782221479054429565582471812530734181020057805337943013005451389193077245756677661367307757778497082900795875480416222333185159956951888504377455603969665527753705698285507790072435844010903481178521340326594775094901461988905454430113279639128083356314563684559971123696148674341631457009899034262619127825096313177162807488201896608600870506346438735556314063975441980592979943326846772092364641900089268299248480230348868233372613186836846921223248658715031584621333212889278874030104459573363587717088576987718216970877090211972648754142227489476543131553908482923393746495464483999808277175064176206813233047506612873107084632426523229161936725256414622235765674413751726718598203598364159829556393312919548289502631590390364784236005955468570346631815773997462803506264152344200672605906492814628524524252292237546853902691993701798890860428949683963514267928128642665178337176374644025606009441851607117955008443482281003138712570804746888152778760415112260453345549030529852820883767238494411446512369753158490732160189866394643128841299391077853647129991838170916907979280164139509119326924135354932204073218401815878717249018030694337472540406938933512946026931383572779321894464254246198017632918168014303661789550921009713542105574405193618249362548060270133930635870722966111362997208072178132421396050592260641896846229341373469782182632216647992955768125349490527869068240246493994055208075429177929960614153521778227689412633693847544915552401515105555491201199501887247573963596766110087574580719214168682874313518811240678566627260924229364800868436969648460929358099427001578432849886634005057082907706615190192401944357742032741252489056839806041420263733658048712447075885148056368638369737973187891532407127747344205048566666534875032670914788999472984405073793838112054291062871429077601394107017294212217297778090541658447932738565757279335512321447444982708272036638623686615870195845214460575111097617927051984603841369131567579717962969617194332212754338267407922132671497160354898531300177269182605225135126196673991354725336607669638917192459441596628444314546218890889727388877636510199093380060008169943656161175412189030665531733413522700102103085121729820746041404001463884698162720440611233220126469177282443549867283978464407550396259699863318053978411238115410074883342877512613028138842012687860270874039035103963550209167401524836017213511490092220231835746146039302637915988681757133965578368656819436966893750166862727752866202451207052178825692342347798282432899212162131643483866020039597541180669262335457730325997967114397395177545559799719510918343547909798175932790775140509139102628083543055946716219186891275693851961084637737154786547412612088813485482635513118796189139506691930850103389048269869355563499990044298790883712276768987877919661690396982741586591792874655868399828464296278497308845147075910112860853712437889137031792085389799578461414890224188722142587147667257233475803922252289393416985242972656348218386308196877267281808340302450662882942400654619410100658677471457061218428313184333856270154270170791348364815420599754780903918994862054283790425379091506386789679918936593748897569466784710459556551930884436331413025255378754343280503201192648688121838608828951103520773290408108776351896938069914330076756536974296271183093603351808179111056247386077654652129773863000101075718042963929488559149863981775941770054456738674967954948960633438255908889230238861995301158253509783710876711688269741554203917535220463375516384687402825996074045733277988381145133255000190456502170612311783850719256192055587068186605497680647699060215783467088527043005672059220722289434147437205504213981274925807963407929901925135030896905103703924815314729034539307762027814710135957457040563323007503826180652961755935847507734696057316093944448105328371543514845308926836022033322263019455937923738728644962220225412547414538486327411708237727388848629036672844264892496970019860762402265320315385989131676573538419872717819907360903333116495183651061016972438229985276208508303979319320354412469081205051477955084126738583551764532918659760361032588127822169207115716055572513192694998330843981275788400836174823879286881748310350367218037903287721997745850267584278033504326783392916574705720795300596061250530266791863701104075103064178152729240131433361273996281882652401817926647578968437425664966829176484824530641396977554609925805021724544741502814123406586755986492265071655999815565254463570145131453170150096661230499078107808845816139049438591223360211841190756357663235144220688922902487728635595259892191773296379849563462115740059933200122841691821376406070213467232994661926469041227945549320568044657241461677809685033163678706277806702389002711158197144302349344532626968608014745431392102498143792006082120213450798144552046306922415809196314872424441190563682753564482314914981372226828264018824378969233352409725849324136912011975758789572567385878192564009367155077960931973634787409491110099990467117048142994396353577079547476741070657743768699439214254019301272862885950552538362046716503610218738436293043436458810020978637319164278495601419123962703095200415019153065935940035560917327908798088498103659017238349099634463587389540052072433402077694017806044626682827307975862007220457472418902008774382342881500627113951494837412636637715108240369747873852265192952345477899529839609510745036122479448762512421632693002968505328782080624670185254811183202302232712232550344778107095756721142903881708044097867999885295981770288518433654575220530611025244982762921185646464914582830413152058955150180373512675659425996636722997316867277291296916280459056286771797592326379045875844436583886113820567238294095537245959959738714447964079973779651036696084332487186319941509522886342639893814643632711504868569107725364635201265646353401918057230415960401269569462290031755033889860829058365044404184196128092282462808155829532304100782508790630222596789174105246840679628598182113124510462748382985785088239408289704945942908746605661348515321978162275461758077203691055376363011203153727136154852767732507176631495757569756670844905438419063872065331430955529212255026657904147934731436805915101535329274281389992870009189630049011926148563526249926931763468620927640123196793057229680906953018201577642123865737311974705127793601452785553435677706621202227452506882034701194109267777556639582333608189629571189499806453201407193961534739320698766530867289518580755879107843851371982035112617842089466684654895164704573228048182874569819593694769776151339998171524510854791232543739843673253141530021265585391426536535154925812049395609725376710190173171864872596561140121218973269181659142934316862263560004848048090468603673841683374299183198108868942531362566623820759067848238456073636366118697041124755782458457231743368259267397592001146039232588349704689134325554579989045882811751290012168771443951868338781956476218898070068842421109865552641808934767810945412932072041114774343920606794480909992348093928936467160652506384823743507335249383766266665511736235415073729773539127482105424152242112961575485978210254165576258494853230803621871606355328754924717501944497440880276749583748148233590933237690467730998561101353067306802947839396454962313306092931979763115015602297110086982319151935837984204607642920548063932406680048740440611917714098234826339048363006757109636768896236798357146762221459719494474705842336733436534143632608741312511900375146708050519256214626605037936153427808176875561065063286550630351896162735098608092534239259375824194098389254657503546587555965322241146952622097676594176298400607245296438056248063302350691393454245471897230227758459675016623255611897601862070382651737377942701948605651053090206715441691194728169658234188861825114505752418915192093777244055964613564879429171499241183649891444382527015224427683460983273466374615381864438584178712234747535241193573227676779813799646009870810749147148024125683365349516475841531063091121199646788928889581365015439401219100815622976804313861291623738596735142719488504300510779986979958650138524609530215344214138914000485672085662325638624643287685306039026457002150461846457844872936085440181150692861986179942945157051669021449107177125849070529675878378116017234300951724690454054893151972988594490669461929775182951923861162942227675258618210072478896533547806830857847694952539769146919713723991226306008971595698008175250346274355730923281239297850283964304302094429195141512911816758849458605820558119214362519096893190374623680481139243039670014433512703666870052151257801429609455489922410808444566911376431062768880832037087204586930007421917320450527225257114022815262523662409784491130506387641489178076306134657628393309357384116062466902704850061748484432678395649767271359800354112683802225361590736790177121418626943375157036708330137954240124524930486356267577358205364753698265944247676870555512207680378328953054533372233540892740331371787222922096603662136474939155608399079489091101514632243907695543083681169422223603733011189875483981684441039620583809480481746997427021811190691437190070810807008266264589695551567782369278243302146396890618527104750810866772859113211548400413432966774363850949447421645525822317636920460610142868650137858724260057701075261123150499022741498036475726277134598628609030780846505587263961749069563504695239063063073759800058675920515968862304505743570900237404603518778475767010406924347126708162073077180468885507438505606632376123064035698538112997003471563828011881921055261264642821926114658517469304640207094669508558504286123729271768468992799267900849138769502332521739392977335628383637022523223129542824443375641997566891621002399881259874323096579600655125824703935589888552841807446919720896288926279935959683738547355105998180179049896890072351118943564025871816220490697173153703200887149235182996954474149535998802841358573359973744832332935465322046710661915291060953209163064413102447088316934906466385628118008495730131477280533221368641332788862376371090702833154558628899966916848886732283056196748961967223812572944119658012779965713858602867612292497699478811113720668835554299368202124883240750496876371699816095118824498275477520689638853790627245032876559302602796804224964504145767418058588874720416820613963582903696590612316526709245487153791996137405179833842790720666495041645375647028439605799491738136509348634648917727741096389484981572322727797424877490122166439588994341175163485637130623649616993566229839583433532319430424777650134843911022436379471260066491853433920165082406795071289180512768667910106711922951090466530983899065941626594983786869954785384968948380831057677940530488323330319028891878264376400253313948847261503429062392399394339472225010540820415940184235473698543590164949981730036882638468186045432331269447910657183440512807042355822816883646833918141149892513997697084073598996729089109334421348776548409961607147763675282050334624649371575075670791564755182588540973629317790435865660210543802283803709113655581106935713176184861006505602218698439289168378262662258356324938491036491542874208102469131152127932949929636054422185279091316413095595575096204671198064692519231689288020007377235756782297253460423747479020430385942448972559116396537932010489434302300077480993362418532315964798166262443210621161530784893949540417221368294283901985342598284546148219809150368286326520324908056558652623528462050556271083717242665110710965732993496896947471419071678928793017854712277971219400542748349754041661900424817246147209370094333806487441272651257434930454979754931429068889800180404720627661604031020412528773779676455619834917016487403704358268953569687887992687562953150371308358217358828009042644404578454154773594280960694720206751553894064862225672618639004214242797098034065274973508795879645750963280468938477233451046405191758805424104310864027838620491227737588976126507015179048838642899809483879485331495775968138419169321950036423551244819351962401920227231065146234075759890529154151381091900398674899327112932298184881242154997462076860635077907867894658027070503156694193720196796914633910318863915629718451927425212518476088286171108589441831856105982195355275431708975520941700779798749317780684882820017563636245229149682490101412434694041969629085611022595485075382535872951341580618945343810790139920779892021926061314669714918235902966304566617156536917855795553274586928668566303246364223275406373500653818075257263794901743233212127178706767481174222192210586866852482712210668231795903026284082989728929909329875649790771996666930281234408636394103952098908780535469031235864569209490036519220099797471671704944236629215088743497058506982548128795525411831989741672724272819304073043913429584581784460176385757936101124181687970882636043912781030196014059215607372578796390762187971537396153512004293833387434139447346545974737560888232135170957587771274602841545670326905601919227721622978415734310177920199446180847503656749193417349914055527863965667082996617825619739780277780172991997691925742258359233451850417237766732350254227195622993636611261029904055232719816143581149383406898128595524740561733043229066608662770683027058901992524615796654071988672793929512243390637084572954205242832280244818221887358703406703160943261630914324642106841175608452323464064182701879827241469078267004602223119576980580514358938525729558211516458326083409470648006098608435593268863932264056197968234821033923085534990812009303992365749534562454981479697067808503407169100586103132320989818297357492998710350761208323672753812853937030260262584475532014637180969270054384309351500629046754014758807289635014716892345809955125011536264263046801020629700537181249629071780875594867070879006205768008924479106243052109053714095992078498235311218465362128984911577851433433678853584534728575776435314485100940217434897643530474054072641831111423739536277337495240609013797665803295617801762649471802125797739740657779692425838907805430016758692889012676922142973827651517080927624301879589515116659283986434982640922173784711823141301394042216739581827627650544594733586776002370876239873617591524707062468601985399884970296202618604165035900526256540123422247747865845851871442884562945391742016289403746040796729748689863864035028841334951676283046469686232823380228537395795784023634398422686169112970117143287270741588274376784136263774709946976599806462929704492107881434762469229792298994201814942603924585694977458338592679837036280193561563716280933963124671399759655779834734458887598725845014040277316796756355445777443222360542922452977813647204164991492102449326803923325019897984407599633339508305226586530649899001082186345001639126702179677903432131023349230752800524796205488101710794018872856246219528415768410003066475270382981304983220554842061825620291913748398855025433136907732862467393371650101042979069595256034676337695089067993036770250484645208911160989728517257815905871079347075530709189850463095419999447653963590512649002179825535477226039646228793542954570538829864206653978249282641449781003385355983130134971874984218330918160960246367509886583814103808476197114717371033454998661624412617721342970671093000972160314105550907108123635654538217204781913287991778147737180623785274422885184252108859305142326076146065440737628597098586667647301139208300718917831682303017931201554704113694086755601584141898835643869083141472828348261048513534986765790033225115386578931840247020760430199377609682514295373691171915143316932915994380697534461065093893130272481910361460539461180689701781716480088247076915592212368791875291182151528158371292800650730850447789213240174687308500266178826796212251441493830848925880457395549443212210763412765574702985073289934335152369108358858802317782064882348070849585292314171897776609499370282058224534251107657738923409036787756784904881211117128987348357513163909735998504986735127760712726357154667898910749006456446102149146207094201532660800836691409883679637085059997443836633305983724247712739251918591610812101900700543116400825108655918264638937885297013923699817273753593218785362428879184770947497244523279629776676094833965089164362871177440831052043669906787866552682431344933476933640880217065907378366889456815164179756450628662392531171551977979026349413046531957657839587286508154680690241677932003902037477393963912503836094158405391837415959385279669839685764558160111919180656637718363882194317871140436901172022233331668684566946124220713966443340367158856869737843608103755779545863625280383145349855756767421769154464936166085187835552942275825591248226752737003207034118533088246271040219602219543549323779564762349009298750067128653185338195748822561253287541757022424110148903637785113822455332865299848551927778303335515684580276569857100506088540591348330405372381626745476565070808433836822991948433380138442250551603868869880889793284034273454995495512031956966692536079133179244504753728530573311282826662318505603338346054697648285205298325149883290536624817001676365491873736177673574680326606499058366689166406816989973307179179659733831833672062660365996788928440351759160074394896342168963271525962847958653181598006090256989647266130260446679496312758321746229051134449889533349079488171032632344040553864802827411864580949180136946570442428663844045886735641858896265177265765610992199887666471230700967462028807309451951451757670533276039862875442676828236771659724336167758794622329290358568557336757870935435997393455083924842982146630831660039060293246637831274941170991436989482755979171306707907070581827297789734400193140626919163762715944836160794761235443180805461787405606885890487970318856151764680934139630211616938152391915126945959660339819590510661088906159638208776913303000144324068734565196497337817110174508086631361877964279493697254902788432346447555530818126301569493033884572013270871841116547940389795518677295257423020177710923691905104356516553608070312650977480377599905715837921379458795096802957492343143110477373372383586040887368179040295397594455715997364468229887032371342945454813689440188947835794724020282842372907096044988572673755728243145633002896531397132270565666604737240373205887688759883898691702047931814753588629758096091231765542455892698891281304281826782986525611891788017712635367486791896524219367356671971760156914589955315635233994593890214356607355302668297904591424057534461182783400451141208357508466545031643868890843997759603621819327390304871732261832166762087365337408937428100977774835713421034684312434443905370686254147792335367387200172456188495215435068280088508752824047831452956636883854587381026671991160748017965823974265677542250238701608969814185953506201852585122116777464012807145328244926436473199747697843980047776291099690359598563143936419977372062307750524213506392297545775633509948996613355487705493337839926337008207046329625645411039652542002669267940759001025481778820879644974204922566151136929656379820415876823530465036346629939029646021564006953310559713006309948041355618434256049648034999321008124759270150774732336399868284418857939632768384265892830947457591816627674064385314398824624671365858124742167703815368377658752959709706448157491066417586330657134488220275654121212835292883915031187387504074042000202025473758468832233451314042556237397403287946804066512411888076163936638859172265414626684483591132837721380920177093995126360130958841053370359156976368359069035549894295971128940370352788305851627664966879462510046011400603800724198658326737365289985911386508298837879795171639184380419754473441399586201669803134383501666933435032655509791655760853564230269395899472868923985202403084290958449812631815961139662228697926010386884060197308197916162630148197153168708063995422132724144550919922722086907026461907106372862666651065416724895765109909871068188254336647278069375750297743020821860626148204871325075303250865305502261683928217415825834202465812019938712113079854813153866795463975980367876921398736306258223773526913604409871664947817283825017325306150686500556391366070440645614753543819427230020968199723253043590838890534489602108958470237790743079793605106487772234261627318060953964795701727489529576149955763145861744631549394139801345194642787513494794701452364675142680696656041889924439182431196692591571008972898254497483518698118718133877039400845737742940312898823635509244492924104398064722344468842578956426192351693570723153596168177079604018437982948929566150039100259422431131403562423835328401626747492472427967086748960611337700127166614273196400173350578677221681047724648307704292172925782183768532025160920084156774218171969138819602836557944782138090621973224337089715089787016860212155913264554878549585848285379433159169731102932389197125487226646770480392731749993055612037702413609917539171744350705639519636277641658748097445694623613258017508223369300042908685303609069207162134924449114112040325682418897920158698649233912666693187516004269848482205782112062437667852245651370234966945301812365857924034822116751639015387228972198709472340435611377205947407267733187755406300188851887160144323456494981854318860462092888049520788046752320491727307782452208482705846507074228841614344897311376964092398828220100495575361391884298554274646254746954960124781474785727863418299172471654840012385763684134083226577007229970885585191918413952625134359772610426534148029421869745476430933790026275092968072390200572353195099435444471025538735294839998925375319896951384775152093474113651478890642905767317318637653844811393487096254159814395837941462465726346047363378112420797911157024415224153101600513511566536784869756616199085303956909931883851824655900467759091430119665440140101978748558786523204793471987992211986102889494923331609403334756986573617207564515975705401350254977224661767103232280589762299869927675647831429103677161332479859967411848677691157382352265102425286363713291700464076071060571548780950343619407442915070830400805880426473711674411038119264787471336959706560340030866237849696245947436998466016681237576825739131985755570083028839444092202849020983855879534628913015227161738587807992119692254659325229117739230990439299011367927121088863998762992114358143809244011778549265046861148053817064504416437870575976072751528123391216323704302975638615785921685717350684542527507978483171497931139286167389643236782410385797841839815113156845030413300025145444758071910701465088985799920120158397160019216346585461086260819448690343768581319340553488428937452292544006158113177867250337761640547714465380613667725303186037713254927899635710376416848500605612190236793814522049126745109628292961984813256425250320727757235062703024213997720735534449131008571645908042336775208193215647682495039502566924421197856520524161397912108019757146078675149534683146410823483584952579111462078873848412919536137601789075911805694780207304897176262564711299841420007454503810487926408811498882532424110422023801117329994020198517875249200582278399433861240008762370338632991508557984266441584676299526154546480582291522174830056220647007522847226591475839715293306218193752849998407224100178293136745547820519490125803165312653795988261910943878133509403297051808075178707544722600759931508711661627722527033107865376850352715572408175956540956106530489842233317391921364841930603482060507821351376555387269749085172876034942608455576128680279845413564637786796330578459087872929976801494669043557042725917486946650018909602601760691256683232701775535987938174742730419470256452039619410330157171451001021240184583643916203845204469781132509553391561432557496672197870114555744311105493751823549794457651549927445700233666744677457728417291432343713337168344852472208762399998051167089208339467635376497253296608462809672857219175386585315008222018844424372994969604617790473364798696761481348635846752916186898651305212475464033539356849892764408186001899248394579854387144037160280876948217820044881101242392058094417883484482299328100415524139470530940434644768487970189655946986516092372357312534756186279589496108897845634031596189945690912812370764947558616737148148929546556467432609777420471403884678232003196814127604010553231357734698318521227004049313570320994089801074655450824026990339377073033913698524628196083324129764930405137384770629796573445220047843970193247886050877381024831609665852001801733462073800861701108697327930091664160625197264776475916888859538053588670346412812335296281113787274715110184694029109440135003961248050734054392430738817070553779109819980253498099581941105258040137544784458416788638396244007505022827944694221257982195406702669659543374950229334428081493332249751186712551460617368885967704224085628597479503682771956840827108697149977589337788780061378160901631592224160841797569175803676687565980685880857443502496242883056435122571954782952053951515129002527058668771260179553093388505773224102119640493470817740952569714636783241351039793624850470501267051565082781637033757695144703499668510975981692331237877351315220658256211197961370274360321829030736456336823496869478867758270902508284132165287647605561697858580642802832751407722734861463955873470152847177057085602565829104569395272363031561897916265463743330998899629756537313993904694834341940135984271254768302530090951877836242829205856772413092855468429995209130675809295655378568968984645341161486508124214104729422469557387812159323630373820207626102840703914202620532469286837612228809288924986179471689811421575936292659149016226185481672367192235246852776185123955897684457748600742420235048598842926850899426473664398674756173668741689074591687253135040774179774117418147318730548594048398587999206648080524127546629825235433702085999282391518127018252578317095709188191998445216073641786330523438830753707710156681488848579742505401790596234121022541030286471098071462551409514962427090512740708659276457027234275087236568235584127717841808827772404215788902720746897752201290628292174773281562251245280833745246294736082268333001771064709070791119313536496788712968717062275738761375750024367270928251947238487988920524092228052940594960999159117676277593348971597919489481104079830612912918621020621018710002232569979024758882696919212411867119024248789922807367263682787594006258637971776281611089487413639653240371381287509251354394211977612582897882679960225349962160220363182165791187667676148142607100832750331971532248422420383358109894796428034362592465899250625794295045965395725052860752766634308606200222443176371019223612961539650291722319935103901412233137961992649415206834593595393015130781903266620606917942917120698535876909451053438864831628749703335683156818088668046257706366862716564565345047866734668508140709058513184637816521670872066012521846117300043002589314466767596487535885421747523738342478663841540935851428556786179585574767634736533622200856502481109504580128016172456789999882831406519050942344244482720129681270854513509265695537006541373830864172426159066639270261580477527990666302194844271708271926287071676765706055308456363034044294100013182052049083148590484387921697567069853192770516515144146573330340872201784330369724262073757365182369847550609488824446753976713571107340962177694589748424774132586704072753271501251820927489469150384523247203466823969053027147948542213935084445319420230851595315302900529720311661461345465056660965500462311365300329940590724976613496306679957431786255550185494019079830599927862126450720608842777106238811331305650274204380351834748123485045090157790920205353460320150781847696199461594220933490551340785457129292869308066235708203507848006717195995114231163448891204125416373769691735684189130265138695716028606921173822030320378755558328192396749939096101618277760098781264342473084232320780039253759126810854224488334181058571670375396908455897395308160401618619244378398745030154385562683270872438151315804204611856054192533265539462278790850238065538370091798237420728471262242480784336727130346006264437752108065518386030357092008555272363924568016375219924135012390333279159920976444373450050555126658360676549335003283247743486035851133043926218722897908861419367463750420743242988087257469843468277946100812763249235885281656617020198164273241290058135698233918183068368641763819147150310134635033189136706954949540870058985546070790888782165782159922015900680836622470097540601755182291555651971993026318285691932272201546228490014803375918673781184817695901124282996603354488119764530537880391679373110107279336354726329701171232546157890157141152682944552187824564233832550697702296250772024790320520131610270561766097135617679925282762533507685095028920345756913096311480620439694854591798766772136344234268957092582798648591681145195537536023520675101128507952723391191005609427853116694947444459153058593165524284999375684727479041281341167551852934387276359081974859203654703912260908998290195314640755149919053242880016585270818912174609897957257215772868044526315165066597228747464356800342865271167179911015838575611650563449607633372916115659459995186368990424434516513809283916462793082878730060285952687233425130018140034703123529959744381607526257102706678645580173759394532354257387244485976464328279883738861353383806143595426766699601572251029338991954019582983447294108121375454055659174099215014170238198428762217404338269559593759582890858820972218423509783909948459986450409980642527196036648281551773429905726315913884142226791322839877529698551471012211022176214519299772808936554841293260790922907617083554249547893938054582543733426321117765439285552485861099215117433511472197355109784370624517203351186858067213399809046892322608796913261787124505930742275557288274062440078274364530130895981513841708832442880268901501116661574754251434996185545265677568355022815421675436576247686705578640203123299749270441567756305263898843512201357457522004267673345050932999373618849456771945383695157950043415747225905287371979516137448041803180143683194461181802922330216408531513940420468152914491939516716105868496495490225490793948704104869324747267666076873629120687715889875651167572848438315877374905854061827093826218750060160367346924733445891971399957861809769296453149742310511469358775025113934583041202111641572113379395512460975620733226802001824630663299701109886893058413100264924409147255583622837018175079216307938881938884571466400007239240240634398526726508817914854787846309999451398303041267788903416365238341128129107705527392508157317862944696563944249129165758264299859969670412549197051789803677685272210152969079265023511383017117184653009678184847117690855470664554197924836753067897256177714254749584791084981585271301826603835658403899727491871234056277421238571144917714989469094316037878019097437462661545992181120210027753841907613856500194117048253145074112061568937256434867003294373965493421159252744871665846881831280617280400948093582366613287238679854094776926346765933900818072920017674197958075449559333934873694249365059089919421980949779664532093157821514124508110006774122694554445932951570520389901209666595617184857410172256760530495611625267085489886871919926759851461472570688265856847196414890175349729814942735547035538431154925866892098263323194353264160154094838486744316024329669949556843591010008350766018783511665748640171900412465823870586791648549084096808834040849802314352196610914357964223094677179969450747846648519899699585710505749686283221690921547371036928383649517597618188236254450430918013011602995265254824390459795453097421765788368995117858176856264225112280173780205207094232648670745644520590185881093266309006893175475014668414014479773317436865637945882545689342184434509088492785718249090215056052247013435506444865487099822582985111941985877108312028946988414979021943287964487190204263296891246965477244850487706297035723150881621189779152978455745356872614771889427976633169806901255603691773142978188811372159394469505468400431503581683883976008558135006046557844923225465860499272310651838519731965462948452600350165828479334629213921663964463915807140859988982043604996597818194050816075011896460978499488649611795995737184365159838349981416840542127972691802203959241697339213590728225677338946326374962410186652350730451076516116333718870239441316249722619095592982504303862805526664145258834020367046131117370374140327769799898261856392252310016685358949665139238853395204164491433397444363299006651086347893120478154645384880198677903938120477840340141902954268028086726039210464775566030783690311589301933163958002801554375046913459174069175889676582943857805364726789443256156001332343642956920396973825383709342915184905856042722785964982777168109367952005180232507967080817122033971898062081371563954198422195078607967174929906393936890027905525351158408225294556198919210588165888620060785776224686436155899773166489788790581414207656546100445312084903505675544795142401838508854998236286274940997464257496236689971767078242277499472827287283728144982419355019412568410334543919402352390888791529287387036048865256741583657359978034009863851252159481845941908027665190932950915573483833577248956656627125222793197662842450593265095641109374867786978313574178333129192728875431430208266742619049278604925957524187104866806481159398061145222223565971391738201046919514046503949466546163552198217930564246916077562923647129423055207076581530574295459559303797149325451037987003482958962735742509365465411457380315430044803728675409030899501296499240633499699311656876354548471645525580641395731473922081491932443869028651277321742863707288491959490826698383917954245026986384523292695699929706621006605537604529076232902212895158608474453400071153797117610244346011031549808819706837219815697333451023549698662954449768778882148828802898351984803533771618845095732076390398402489558106103389891572623070885017215540113434409364311001496750668795139130891276323197048890276973015136558329576224329986668180345416724770668292044705418145017780794784338446913899740602670645164462702882980413717364351684196551670350820995916058389117677156561660304235179173829124615534944116405316942066051379573221699449753548106468552889550782515616232977724062786994419915761292477529404320440480212254335608426433277997363518802636030546688887578133712632791056919075533019002981135800273916214997185183459053445684753129549562860705559267650103185787734243426550295066751949059816275269272824120365171481304795137716597753859291244734857116286989655925587509739171913911788214921945334897570399410928586621671858742014989183520423970016364834724174468513639270000428617663145725578607002443177564624466031220653818116458089052970107990225020537203269965024157930161304243923021740476046300913001230372473465768181495851468530443887352200654954394152321280747336760704921288086101870358324188600114870530796084129131104060364537912967191727975530017177439820418806478290888646034610304589585234265932561570427757867672739452310961591651751045573094558775254335264965078156571583468367228440580578791506423050703832417639825006717422177621745191962961123631446971196661869555083932619987215370138538229438878119773319195217868928069624504674860025011049352363032195602072042522434267628917784971685428116978741842535754880072452933625544507777076843362840414310772483227931091329854642559243950208966887973890626613300121638651568452699041153879990727133315010687277462187683052269029192292952437828811771622973649781296069478500866533094314037696355412895411240296395719710164315915948309074871833165894875292433193251278780149301158924311185359331212398218106750701781581077188563819164490116248251453503484952279283499922151497681171537575403676282870299150371862745987745808264658787786860168640486638771848475721996341120410471187517728461737003641445611169144625439179323245278901943425199549746356820622652228379038035113736210997622443902787897711444500224686196368566285078653120405780002924170887385400303340359316566812503851313096701790336848783509522547266738700216652007639703358079178504890864065112246880383066475775079102704539786803626760208071298417601743680599612838570081487199166544045074025765383261397989058101386931767763815532494036327019455873292812384699656810690057176874817230450696286392186954573643484042086152908657889529942038570297717516697866503277688193659272112043844508568816927088761216486674521983723025132367445233843998859405085609575477360404502830530179201022056424885595564202120343058352925624647951444966716319362932824549044054322940287070283135706065776228174114739772071711393915077596255098803905982275176095162767277178250784330639481526785115350535891474718204397096086232282015080732370817790902922872663124920690799222950583696077227409184824425419252176401178458285269101648305114975044043606723212533607404034844205596248324956121748644781366307438439604605345313907594861166043919560793349381093813726382206780268372555888693750464011011398999910483456777281025889423494726061068383819306045367619086896351144794915092632960980000278640960274644762145892181001564815270005467578290688561743848415635021536661478982073757993436900324214722593425833721361751295417183605790697516580842338843177958343067464642686984807072413862574951263233263990040505037278220709489368193758161679698274267889202047777977641980384421408591045344215863582941594847518582279867068780973373576776308705220970357095414353508114925442169780122703827260248622685757946224434311381654143042831533005233372395653354239092020318659886832275817153181319341818329938484476319625248056891617433265423267357264995799413470085515928395092936250967440059399116455398445728353649765704243792401362287751131339741606231794241233694890817216413701048058208548043117625871315055319463949145440592449993713172910275193580273234899181117442555133688353313057796238373300995525894265489679991736018698498744722172156731602114201336665725106142758356811300678691517936611508619745468338218798415462621830157699725271393599001647459001089610481648831451446111704765809419598491802097912283077839759968256152006924849936970117056034888483775478894723203977773704794305684733644681189259382409953962638369664549156659620985129862974203756597453248446217755114699173010948291949531952090615111808270440611785299447313388659449140992836290838895359873432217651702660131751063050489213730527020259491610135803204324947238549555206564162124731622510009349264400897191656779151034465762335105546847426032616554373509563300564626474324937345242925507437011963877443382474811923082409707919838761352937797016303569542206251499741285428816978440832092783818467059443066816668575827385375523539056238368065674609604166496800957705315606618342341289248998712233346804704455907581548769485816720573009190476636864487189644121550677584142193568991649995314978047619260608489245924230096488463909506565146271390241254403203002763764839464677458259425048775852756297729165303898881910905841966238380923775403629883851241665617940094968724203856356876053963739226896430110048132153367151126344852724070432078070609857802141200065560783070910245970713362988323396072217697039199202583829521483279567652689264564430573706763569562779817816520428924900475238921380377290465201000586167936706029851357426255011001990012776719588214970297649223308432521201792877684785630011128889869609132227670519858989372685318339427876684831568357440367665975852600746989416438916876918972030103633886909412635572916470034324667840481844250893050692632870196066629758542651697182576388267062947241172847478403663760586346300181197476554848342904064756132285799521787796260484180370731964303736720290012161500627930928815984196022934033019609583162580217801828411879218411679022785086505588539700747395260448733412397746457229868474841944235883441770464583290528908728446522231561665600669380620767280041282587361897925203355893255965660715242131769815835804828067543244911850873866848302058342013787953920418253651716607028319924372670121640908077824496717246396424555537523186505637269709244909865091163558275088866205545138646403727297970789604598594698890452742723407797529917637306513013953917657572784111543604069088934870052732201318932324095791722139842919804565319496085854961574236359677579326879416833067906134312308446761658790802899923249404350371282472657408945874401805532012642606875041703571979025890253376631638036752063217380934591044954469822183178462897085885954348925710205027642279534203721063051542324278512798843194392526970317413517267981257414668772511907819177231686352834012677590890241073028851855663102980329070342952442173669963169794280112254702810391900784335539241705210209680548938805915268152921971670307057274846831532940181922461975461247804805373053856010652847238421503984810185461171550617455916591297651872638722684625383228710717787174410046801274046916362085365948745770120396381979778988887643105532246137909833967947337914364530365156059942109493877848811705071769760504628679205102118290733519637358070702174814885027864363390776652613359182209491478887250830911214604874656468548980223604826501284626065192526080120545080686515585585003014933733678540009903915288155412260366006735485946470397894328002288542717380022309238309848057976741287293103258495309999715855900555741113899230539945027866142816745619761358257099420376281200621091628837689461743969484610976763168237969652789760952758231667959334268716306699598902008560432684770820320863731140575300367828738315422919703074055578191274922635879949609838186711261826632498495194849333717551796654877619637304080499733413161700675464816881311841017302792229788225198998065870048172019027115380902082114157776550441867857892202361123809703949541086181710203323732661604365608507741330596894129654603572888809606991051944365274090761228073294625615258838330020192249983308968013301836911190437487693199931686778970753941318294083939241582516912607977245537804336429457185959697856644498292517530019852746220205858570934303834211710587761435405043971764107135816983945313688251541607704823879774788365442018662729808179529170139370791897394443688503612435696408024633895609329474415755259592518101052221799092153582820215571766396682606906567495388017277289763343115252518677333790682065617503555606702097864966593437796427159780881237350112093080584615623776503954680244639535563979599588778003349008257975116647456027287396019016479719129107030056366878382026960814126905358305810814169646984020742661992178771506370082382526141088984959724364316732069245796651507195829259657475414031199153539552316919015441799603821339041481416573029131563044855968689331904733499636770052107860489574987841448178379120214382655860994273232618765346137513717547375793255364875914427595892329414970046373418995720409412602662463855194413304693724504805887418091726994176350791108157298873236802406725937118347354597163980039415049609071757764355830881579232805444714118675581215364861241955897013859221738184224684612032070373551720848232627739277102559540151384120651128381848356111365850803920387821950569495271991800537603087131889773468767095734668358961231862972512939348914071103653197399461702072617888635358290390335359151301261284825228621479424921050784890195699434373711072706949890993453620396029531984060070827587799911582259956848529113104199353832193164864870826769264505115303146200956273985321694676605081987320482038536500685914095582939460874943973909677924181513970878463019211654230082477085306442480080825116923185403905791666032780967242928499711300095486908924853110839364789616723481462866134891960215274713856684055189519992188393110236239244006954817157945939873032677608375872353136290248776789162967175583525845052433287404632367130345380367225289114674815073419971340407352174185190975893010467636081791400518245203720796986710853105064800216710487622477289806313828480638614505973290199180062342944114074712630579297464814208782314352937223787726461195611131482700364312574047672807148826324307138164757505171747296770252854314673129893427416316442873778944501795410145555454605455555325942159157684776451150040489716371599778544636640857601958727304017401962179776514665332119177693524633596409158573788051108849470234384285687247898052955490544423260936237326666448198685053541518338184467148531953244855726802975545744551448595178156802026826976721180646910389217147759716335716896695118459000087875495849801337192418877153369326979038947603798506972945023481255408528810229551683586300387776854309829373591804240742605047491658392853720958020526144909214458202483164888672299325097522842259655726120168721435961589655981906739104408807244101846273896146339093182578860237699199903976468413580509213868089151251871999616550073846403115060881497593177890675383318648033661168094422824718302172112292505070803476759688707963650335376046600386075356795796034744028997839866272617949454873697273919270407981550212610652748679410538196396684381855151131812170075706480244144508767953960468668249883058311056828401084423949202371092576967356088221368842878129383177277903268007247424647160385999901030658686849641612260274682746923184238995896698021582883275628019649852117763851718215846338778820255528323100263892137069863151610675303250288463403290558527533340952167559717992688556014356766439196688491662746021448827452682715028019050451599541747710312021608771719645406610731004517375803429500634009149768581961549809596904778882976180150559317246847221451916603567407725889477924490787309126480282285374641071256097041560708324634370451999533131201235336923086919034095641116782003701662192216314737433391290385910928948272849453775719785503990276207507829433923017443136484025871963148601495868979758476183696334367490681822793726738588490497812478200002632842424635685884461939524679221654616502609378845691344039349101300964486584420464889710346729006959697909144992651039814981248052074207154684364626568512604364114230206063176588416555219603546715121007905417424555739335991207285661028483017461373866566699559628241357692537991746914231704891793434009709822725909994836791248727691748021185807815556314491218597389350350554753019053477076379074395869310493367193697850306357195854495672475197481493193571274733569592874030757163650017425402154450151993544009694979866205521332779087317953107188123066318856686055548237677333691794562533378634506086129188914076741030829297625296005376148813111670337295382329228812411420652269676115538868569557415097070496390907340960182590891743178083389460669803369670794038993132544756682526079998293091168570687474173465269927813576174628233158733173507501912240525004959787525746448981887164544910716794348856306789783803810290181434336381386713885196087450273022658181699675591726446789313387201994099373778078886040848372797263471421995991369307652080799603157774049232259364090108147680447852456752060859109783089940426064823936854375798402780948042450869206530047518085352745731594726763031505781637763970374166986044253885819244755916843841853163387275365435123127872840936172011786401669105860036110151169074216109722902155270356670118143107271173486816274357019365819676685895939112843467756149647347543138533316715303552008415313766089760046299476101558989172295434319231833166940244928947313519826916965806677015644754846602277491222647205332380404597386937043289552978013428607737817507743720691270317070217884397030061437319692596083635324693997415790095874008698634752127226356349557441954640561379170330728463203162805471400852585080031646229176688670999563741968982023758436018111127700937905837744814486778736409932050274476285347395166901607170084234016984074568441841336106684467773002516832849996900151013490527110042787866088513787618417815949543150819644318311658998646184749659837789498841264109851419125691587404098612192090462480377373459015485759641090787682028834855828684226221661979096145713338473309886310351312682080254300553876773121172275155733606589006422779420775921543400853786358933067656869248797296558958434653758707767443397992419339777016160408547234370702395801652178110878953091687243041347471444166468141513132173859989436621625544309748351918843337205180229537478177566156061816001765253286054348828002674264626024107529186657096746868013698974794330565723767769006276720416185393225598580600980461357299992629214628626880641833418531972973561343477153434630032880575781037622833313857508095859862832839666159415536957157255596022643702951302460327562447994786916772618322638040526820404129277008173780084340418014512851386034931136458180444146478372817175493652710110450645792268455049458418082338482930397475805061008000236731086731122480614720976878792513759043173506586965228751913783776832523602103770926162579814015470099141956945129196995505735664496629043424482016568982856437720239926562279667527223328890237757494212663319730212142301962865283425348754632834192548077790229630976190294757865194166948795348090402296042773820081114273518050649498775621843953353471463056893000978905583432197119893713759483283617194597496858005731273128840308455277248651016689874631333406093129719905808471245866254234723188922746741985981509895396331733758144917069862594279178808554063339282293070893721588625842291302226835644204827919178744636308239340536022939222410049528250735315112526481342897382105613436993755346547015793806281575412955334083854304314453226170967044612178683273628257623117310077032981866870275386226924395070963738129476459670886036921044836148872933120220660087628225363447157173958183780604863812083453214820075829076117769202478342012530338404523718477818700983031827798920136587761910331121033873360077715264142100654723048547173544243286588033889598597931235325182027920638294846717654401759204216602811630137534188696254950491313552598566561914141588287280052119677276233472716828470397332110007486131393483746243979186429526668338918448245128658716430216885119784297866113983862274695045501380884622531255054311745069288130643113999974981708931543890276670699699473920216813158191728684775312532086657081213545453094946031208106922632590272951478019846451990473362623315784352969933540695499898413324881973666529841607103166322985193973456308731663761993763349815568065403882495950739753315883857977887904956308576669364762852166446397362292207730604294493108792640469377049725211675488563316237026326155367207320436609862622349245812840206115704290881349077288785751686110834700311538203811247168173813437996533208565181511875493071278398092663234777232993035964446091989031699903055746654536794161608407945067449078971492422500514761994290975741892968413656531584899011804598567339107783998401120375186141206406381013680749125185675252961085949925926170166761421523906039148282914309354000642018219008984923003432250745082286683438135263730387247057363585380393069272636248172212047300773864764436472735219539420574429800842152339759090920450318309859145023399615278488881567968388891468087840945421572887356720288736339310783616361176825260004220100943315197014578829217653211222064234872579624959450572162082053613993985240218564147626405594958695270201096725050088108241101492798108715325247831990339506884560777531883809218882109499056205051973326198570099311211124912841057771138154475947013347484917213948721099027012360619132636443742511456287115402630296367803569466260408497924118364975937973970168405563915859502109264144975016398153391322983233480833005011206082577133537289549911065298738497696165168276420771346987277716834855256364298887751876704838590717733398896571178079398646507444570158161756186753453404324649815588132479109976109177786580544684785929272908086187611642108982141582987959276902728323181762325385718193847544601244658868528128328221605649047201683044798174534915672231603345212468676894341899417861703887494890661898143500661717956916456601406269305606638370404879305827816782473242999477327582686139770098950182760522023177873863771590286487473631165150298410141011263183644645769602990345593733994795412908132717797350741854777112960359503183332898000153041217270680418122352572709556298651668411042690910752601761404593028590326423373029570497484337506664503638979731479141339532634659513995315457631365462152432262084224564550539776452510996242550295409130326515552411991162627654690964838128199856867883985375381341747636082948158201136718066241008834136641679956387298076862300101407946538521475106507953861786163260399482475738247836944143733221291632085324265967759515464651766601413268056199449759479495985783141914339205838302579024272292506285577036418806637436072143638585792051667128997261197528216301145408614461413588120472456514278975937066611979555745070571528927140041090505960471140816585883680219639507708536912030763246529085772827580765369891137426602839354397347491240404990440797286187864485335876168542277555084764944138417939415607321465316307739015324659201270676081887302692938214796740762592719511183892118753505898390337820293134275963658265247811302415975926380462737571849654203210835424198955926820063123095287103861895741067429837513616222407098605839264616474612975604263697641694012272402652718520148014028528392044609376463456795990343769121702046085059766750375313128103120486788914584495399944877496966671637932438956655172401283348659930958467536248927166416684838462922111722952797075697411326922435468904045858951934108119728996033460335032295795623425866374531304648400205160328194760006787891933093131916142214398662022274906070759839567841930504234693860950428691209186154806399907315745233816404049301918497424941286538142513365774714496312473854598420180160782365064749677143144362351939997843620168064158064761037563289357218313899545939411199274341484058860552756788520012444458919081743830035632002886368875653224961560050786506493890036126781674075355529585494824668641367449725351202092723647420691608087241885906030809801723509992995164201826648094721319119167896366439650417668271032627014149308956712550398217692350592140330488650774148443359541639339530373953635343217783272581387434092500398372408395626177081706182126530174040282231660849325904278787718580303969496139034124757398733819535540878081155004757215713220460499802699279750778995803188207579396790374690312388268485666497954489309317558342008214143130723409746844513993598573408158265630594504307168212754479113881215161254516421146473226818518433389928772567692766489525569187917917375203952096858683997769818811341700557411823928572399620813022570060489623617437883035228341841645240724373343644737597305326776885131669987211827438907590700634147839562860914979779199999488043923132155975022724785380866559054011529280647654708863668849815975210762844066549379394739961846580199176949139841770848761454323673827450079185663503268918614492408612483293180421378763218500577723641362391720810845751549312532582341293159844666250285824431180572920924175857932987104417671695335992893659130434213983657980904948771702909199635417327476234248054776792290884085918478857829421288226573674563519872734182608883563008587935018061068519555062309584112255167434200724073560655271270599897922139314165754961744584308297607588863716619386706104848124369479576048350355856229214162417973801304717528838967002023779989539306536250162378166415340249625859830402415354292251009004214617760716937461186159044899105846237465423511815970356230079680220329899750098894036167722544524578929672883930954986866539993530675047387211426766969531140236089924337998450478243323362570732071314417225105484307839206270236346541859880977073973975946768566940068520109133164337839810779292471657143874613074652993414844151807811969791996374869675412683740467494735499721431511306735488147993792770577299783745540656941127093697288762007859982915557635061092454281791306395170096841409631833453603709956718730318301009344038951029489563260893895623243466644053848273803896886014682477679720584131018204542977059241095606099857678170861614079846923278157827568169328105604508260315802661912350283190346572962422857119505422029170576908564548707080240032864997873019182156693845010491597496452676838971448839957923386014489554681838192510752804028141826070860683089087966817581218071437121068156014901203832993809260664562553047667908851806369369383287553094407997890240198157428909436873031274835796292917119270364432658649730355170365566389246214932514081199644145688868549199571356415610600191797743678901853531630219353753344797462120947083990450290290731299019599673479507695696355785978945540652640571913175107848738888178609604486072262328760270019533955693380678967821098048726697780469819901441676248362845539772660076650540758312120734759090331717704769499398495268526637956255618322471618569191273654789264343445545151395056407537716076398097260326067906263425064257870516280633439819181587325671192519574127336567155180338644654629852829002154384440018911637664095228712712176399938155430966796247473588452263943249671288733458447027314055279083903598262163094926311050945402415641805170704375026972285159416376137513060638468463830348221408527629360066376768920393366349984851172910017024961804471782354462882101583278820208224346981320316131109487656221898638638197032173823150440727475361617748283558586269420698991802568005330836504531457314778856280677833212458575467299188206195124957881316589892313223573417145108681470279217219306509451385753901871189310228021943085632544446161377722325812379409626011179688494194405155410531532559278217040824921310782170544039145316002599577366320678288454627772006257585706808182948981263886753229520683588538213159451460243659342124992267004437982809215675435431743229855034440535161863520774078289959246336143248722023313976689688892850764092996636095188912694293804908996795867895569041188448968657574211581291837480610037674720574246005290887050391649449317745932670274977332072222959246002730910052892438284312981268327824464988616571421715470313646047633348864025225583531694012117013771880629644271351042669052520131068112115135776435233888913969020737991213794452458999683437256285998584059013805742783368673303211349270335377992406438678727488507993692841716844992493476929356048038770134550916456581505305454144341635213363770619459931516937046993139702282625299325449162095446116960160807565501890829937050774842181900907821080220570972282974051842068711040450486750605217105457012131020132427616849000064458361894333859818143260445458085768981641090000583689988149490546066208327772126769951124949174201238381132078092170274114773911381395159749713497358178779039662513572531945803766589241889795460835227937087383447299270799171397007406398229536191374383856584157107199001139124759003955217911747144440221794088857627978607939017877229412746634182618095241338865556108272362771864360992913769997877264561347248194342021618528927084692146821549641559001987198488545296882569254146540319215728442220780539131008308949298401163442472677668494960258005111645482685395577939866201811708373087957389254301946130091191609529778533160860144111479117098320807898508834245804884413407192817639257905933593730319305140153755621792637109095611554095458783587700411134716793015112462823356779093425523847283863593924979600671244105433900299263013538387182627155547303054598938139970930973432392209940856769185648570865254856428148690712532768215363698512949977212528054117825098559128848140565521399267356087635880115429824919489306830302852391359933910499930641631165461332125639240973945402772282476312407547354339345774243817464575503256716086934011696305941138066158646168960496689575553473438824327656824533828795419684189846190745316828469711499697522062049038739099240909004123385078164596400142187711449442923149578280187559597393638275329619561237227026044798792387383630772736669741572252743338244450027479820106446112384384275494236295323151515965043737360017307443620399956205399521589904714996484731369260820543003521850570004312345003335905565233887444297067279134158435396389579084579479148832076160500903182984087421287352117939022721845852188759264337755152344124769173695907283430547047170324452477293625424664767267527334725326797188423107088343852617051853975129639130034015253971396923336963158936403175393460671093570322918722597184409934243068546012082214522494482539320721250176530466861734578371084454190331993062608666097869900244587868942571598103900318623248788877326354996583155093508162986063915981258586542866085987395067576738943048930488834893924633468559384321722372087970120217853681560173363540025967752702276444758075931464364603296991949519990394859646604499250075140219565133184790357776696761681596192164663984980672445582847292907730677317813566454838409457967936010631429827951151291294078535773801977962839098087807841629805165278265442391526556330726267688197001471558306839803999791228606071225083049888641044601907550848240084111397916061672957717119485569520330191039859017942313888570297927472505834347737089758336297988998100780922175341858712383913690627122532789260853270875470801240618887491122118689274367181092199319572945698780095707424701496364692298837388522961209854678409140456904039992312786327392694881947435725231714133861002422638584340335782669120059472432422905224551033133258713074527735326839980646780055502659140545277428350132544418386702501844335754381285615433123230813589808100895307283795261620337763920175841425542490363562843288744021331216574022143977208459618657084112399557884845956344373673302117798518973744364429049599401425283403551660298245717832006100462972061063707063073028713834012317065498925310362758428331052019241136564401112401259469650076434510804877986132403749051206929267006238804642786853318785856621181765559025385722610623700065691608322397707840666229862253386367408317598506476356134737768724495643312824549751112052674410999532090685974192748856051405145115950635882776974723045333227820213821775214595958043354665472759226842468941388603526318506699970992194284494311825537173368242800435613193031518022855104710471405661048235437292031169125874334281489360159645128377698070244975372704578031462876475869557587612277287544485880665220657401592059174302943176562692435347667595244172714886185936626573329615598511642834209311444280997199749463628627431979348705486677103854377948250803706905273088145753087130691619186061578347079037576661010062330181790426528249392035022028239348130973674579645888242555653561987641166684683474297510878958205197854698598214743866255063117428052344420549577301776860003808592891836384469524495407423954482268049155500294479318641531105870426288774643806636074065142402626704622021748306821173137077562856820189309857947944794653497378580823847433134499564088808044294877054956355850414751850914755822044480692275451331704978650078109860409186066324254450584114338140358399944825916413380927582448101153311674092062352651848788705486376349792006372425363237864888865533347301173131897241014143594602508452427773227794426183788056998285242898614530949639091433585069088751329815274920712776246073562457212600557925978542524017503115042038181683571599756577126089414926211681662945061428999495261541450650966796738938028513662468939690135773691193999079760973321302054287324248745735459729035587816531325500632773578369610261056916382172461058084190271652946431853309842742284056728860255114313315972510735942863984694783515894308880549105463108313880152139470839022265837595520114134324984685874688879834100055195558845287878737440986390052094599556684749431921371600225567849589014997755885257211548218484699751988755026463382461829203945191839749140341718153592705415535322811228859555659903264439163738308291814033809407643421063243098888714715852476898390838325586210716565050048901016371058666055877124472517014786018338550346385850324231837709249974208780606625585132653629481862779732557095225324291695472315019861071168696666734235561878873234299782337474188700970691073487599860326016677862748590300199774231386596977570952644667037730182051174938684379862024735180653687240327801416440258402820470898948491079918621415039377619851831885956188068194266843816026674149716009203193733531199856673223868034988540161770630546091727590530693117296923388444159159454670090444150952811461851692294773896403600730212849751774973821705518031054465807644207009984903422176656945977437913676479702928971562353007757502390117539932838766050777144958861925193915498591416492945252948496903348043076949664787973387388890830495401118904462054278034476502689764531985332216421589727209177572723167678789791163619925667595479911220007307478660050000699356203580734384531976995928233979592885047498923079188462998387798198771975855987342414806259446631147930922417006555280569391381055843286231824091495853237660321922857019576822518603538563580872684731769219973097433701501499902225652353292584839558165218558119217180512025061376760404337849292812602830472583098192830468682264366413232944204313201736769948064807749492419856086923852454279883848137371740798695908439814287634824124278887646127794229299968320149426662919406969787590504354806055124268341710606491064382570755185720068239064715513454596566136876121008716854394535717438566422274724200135123123735227632648363109785953306057246477427121711165473204975710372050819401586887236334872771561458882862747574725294089403099431940595091329340195975465765737218749065967690740470693682127780731199996896234602607972654708480464272809736329862745495831586662156879694767750531423829889719206131110593808464824387932592163385045472028498112077568287604967324205019362337274126427949974925051545629892601628597770270658987281528892166393448155557795951401257836447351681532837857726611674757270700835202905463689045590763414000033392574623218024398455855219974962426167006596007664194576861114221827872439021818013144874944567460131468813779155880017829776000707734733412327642087320315657437774985274177073317070779204889899485251716827745214048250988688701313439551945651398173820512620077802741952270399363795421572808962773354762586761544368374889440418382016958679206501523446631381909956185099624143990766407456097078601820452163714419180399439283518291312334598356129493280330398108558437788530362263005735291455067277235699115820675152391300681071240656728152519335416647880457503620407090180596033874678025402676165357976902211791481819018006978399021395812189579321651600096480422907441597775586574852963190320399727645203045349926642752977680624313787986233209813541528463871638080560185760705424845120967119743379030791618892624678974905594406038166092770931624338349599650457829943577983643964878162804329961239225992869882346526445202552232285563555349695829368714037301264147633853289475132270503853858767962249217372129972320891640251871099982019803216504173794499886904665279751342196485429685171721344576748308151920779809576848472689352672605732331037341674496017455561506679546819138429450938435292335504610145514450494078556807340798588268237145751533894448090191937553328946639727431478152239437985598526915163280016649194317659143122818448567744432578543751799639385219304550950436042197146812255011766896943320359818686506772344877947410887468097451952853942221231124148761063469592223599715776561599368446039554022634988790135719933956220268447643806493515751682395671425236948678550355099173748843964230062606712604866400729634658809042421361529688836851176345969609666873656606565913198950277070203768466300691533338322665973623736330929992923732938853843421027622126100413681820437317899076269665317094140436326798172330892159170106646548159098749784968993311572173626806237685530805415019114786777572446973787184447198914690397018324720855195261822684518500613875319476177895304631462903353824854678266024179925392748182615853131483879187027800528844528868018355048904122327818943886412036576675156033588521846196267996747029293373711252189776561982636872373100657834062724338795366117344342111751150385435542755229637401406885630495891768092003631827172902898443660258030709078653198138807710008410016739946429399003235609726139311902754126244646242244113508827414203938914482154016315935994490744922442292506816663144047178463508105186449390878304883099613694792892026460798773080899505134839129093401773705120252319984439702308898491241616326840823839704472834935065691497487571913487132978122304218062174330677522662957596527626207454648979234515841696806579113251334004430890003761820890702547797700184503853386655484224030217469105448285544594731016575329903287882277150641830773380431568990940946524373357229930023657508239112138070647115855743539849602911867132884421473202635244532181532488129452193749037604254193297952267913880604358518346677741891352933825481399910972578356491442014563277633277304719624654835922243419530130867925157072168060811237301634905446331258076215426333367858888858273874560017074327691818115141797222280439680759820549711346098194341982029859120470075570863589394656867664185185555519069541989021820025502372102047967412188847113356233058639823449884767739200315112501241217413974872100985536174018275825572773834289854163520817246275994021483643876273931524905028540082197467319045508731349066133782897240107463431649940210009915361525412143632696731136578854747083473821060867366394990869121382302369871029750563189238300482721063459133525524499930084275753496425077623587136863514944419729116014680952190286053173568171637904813890396735125670015652913352158271091648001622142972291356408401082895166966296524628575825791519154318085998375244527673016867165831600758454668708530683792360773015579282285229557717626927511052543070223742067953512854320687322969999581146730315428839731255446434050075341055174541521913927525784338000043285446744703121257649992551551827989349542534825182300809496037633683861064400102719895236457150472706474448729898468306600316881156276502110516299174418488316179374840519483500225981269131101555545337983332573293181457932192959964411510167932947502864742580956102627540692879237248797827596865735415489317403969710197222443151342264638011880969076095651601437777463592768784396937732756611807503981908825469747036150269270001082088985359148110245307295707803164100135062405382937324024993624138267696822971877876187530554555797366838242567683188995041913578483980665521134221724496708737885889434429278766654128551834591280045110267313637368031558164081775706490083530649831488712514641793490238182311348509661213705912018883969175525392081969464124837338911917452784027918665851520450907935092104075374054423105928951156889906731058027982580191242314124293878884943424480560162283648520423596817628647644507491862156111835176578575343306095375880347193299317514227589672554984246505158290448965206126432261504885271798683113326832477166319131260382977230594631531454527203478935299334669488344945065335227435350945857184652549071310506900369582962349933293852237766388504881030833651787357173895334316631005149047665536248214270677603646507145431669854027264792743123162735869140744477550174750199582354891279848413919672079466575365585514863602386285922219324455049579765196927587088936091043101282824128417364058197525350254975329679091122634358290023126145987916181491991026134009021335179195054854579562304432711946932150899593245648773601570371163465111658997096620787687644050321788243704656150849595343662581695998251010237669408492146458617513618463891580104327965720392983112662015934230967227656875078299074627208279159982103777117845325720039457433719878358551296019211150647350786580164954067955378417034402472923457909998415139767071994825976615428591271200337596317400787447130809900991442798649141732049568226364907642485796771700093517719062674850744301996464300659205637229091222840494179620036414762189936180268933178598395301595709964770264024029474068040913628401423394171886498336522707956992560560021251565847399447358514796352970940412407269217755118811250154986094017626450204012647363785594450914703230537916759600799007677875221680189902112199850142310788348598598680389576507953890136936660712950588087810291169468600882614957340571835252679383590392512701560499750323618672442367276891700126693302561886681045566523213841799374517232425837472279856971871975795762416190366024522398457408241283461897639720385888965601437619164840769681972181464722785125948468255536614229712319933733622444924414593399483648306103432915943007293844170686166610737346445251128425800802188202535676973621686443020172381557294017316028182408156633657582423458714051810523938990028519702340420010542372505850109303845490310934473396034868395007252701697874739067200843148632941430313296873528228632423827183334873754609467234707104775109372516484135324585347720751731565215049187409351186011701381874598995455987930228097441595535878908175306788635533407453990009888502787236861493401049523140954152072863432541763184822815128094711992278311740494330986190447510941948843483062108917359396051834318820407925849041186853887922422747961478339727164319382569675895246703701720774821919802182972057473194630576110705904203684823190604298069795162925382844318187769314967408524871579128900957742760717249759977830691280216222106636947210277947192362529147548377788081969424610905379255120795590587653464401840129582482511854040478449591259889093620135371486532222383617763669389549104522291897478018814633591323031810151320394970643491261552163493673773697740865852385312059562053805152361816353162662081080654163005627794626756498666809867827848581951491648392276298724950521000026389956987598382679683781789657805121001744399328791644276703304726740752285557706692604131399567856335256116210613383438978589965424205707332389158220126372177095677795934255696451317603257051731497827722980225879339100496348542894637923234634292237807827162947952015398108387952424927514825156097711542769682208593551116915948009009413060123984383742367958753067955096814966027546884890746225049592193286657334801668106569967020026421272125076682931874622706954508720678612224630758735595939230396394300475202456029043821770193710653146161784517042033294193081135371244503327931564005175882610961282203978583016579075353774492806398576983448749822495107276908248972856751178058400490753982489021049263248871500846212290786964939676185737047070116387854790878388863059971399877075472811063788476830049749543173162464876412377699749184860915412729560783283355954101056959394495195371078041836926537497544529612452959318061941109154353639651419252914651922101155618173116060336773405930385039041413373390347450088588200000686940106182465075484006834058496291889733095641981682607397372726455245399942065725086461483946966568275738756906573921325259214411864557411940143919772283809644247174946545599169210169753231247759838060328391623126671018928782115767854242861333558427358758456148071030744548791925611582282368639605879345293446429674628206958096168173444093346514337030892753073710284530878446906009135044173192686915047841186300954365600244836407846805779454659429803409876292820132744902379663283839469622308753263507132218997870719020195646577581629848928346592166956327612793254720521953621939123598358201056751962423359762134833221087026151036748163782001569321286597098819864684961000145779549039583935169501380599323853006809965805055303236980503121985978536554333838470209722185707720487873048953359426477376035971817584343298289087987368779321478017191544483663118208216476300917166908849557948510278282082381130498073670535009951531895369876709087180227451099031702403879564220805468593564817456991051856985984033689660189042023726450027516883078898879166069530738243141697838467304455312084852174444958226261290521524316938195027566027132054388928871274704288984313294931008133255254714662509354326937707417810737380109349676844675066763392950105061564514451907784376568001162418022749961839126589274967988122664956417501603271993529607927147616852556661063220991550380578444014947145883246292412111398587300148609934938666532013472637995318660568526151446607864827963122543319412330331139142531133002801769233750636813272094809442059875633573881767166735221433346132049241758456066236692791284745395971257041255420045769278131789493769358148553635314392988919424604073258658222990459253671711092937524307775329062547710016888290840388014585413573713692792199698038855833626174475022031302851472778559268742037679687837398668824694386286920611385185633428733440501738602186791171499569681484184401867789146510945569215071144324904182663009935982067410782373028635303361620475009749862506685205273777157779341290872056002665726612602398661709283988432955043108118964731892863118591269213262120292482147170029006820203949844541524148446155959701679419145952225865281650563408035195792249829182789728975344669872346450604768776074464780798955152616245778145553988586921527533601608014083428435226366916987905442285486061687727939781085473004932691502177444066079111534154565668529493727018511201575979350792362130607591495171206508986320708053534927594865189500880816638671019313673527123372594380779114142297041419799650110592429631330973479721452499299372770930942636310124706880644253162420494747485802205819974048041051703086393353939094401832430539246989942938632915461148276983072197651386146506330362682086172562115474275380443987107211090756592364320492696130869555048312040753395896706669346213797132749789338079454684365110078174748426439747962188308684103684970469082664749681485716353745975568007304459657917385043199007253251794843997735899298007095612913627333763181918077888153175416036160672470653406051403358112444479434168597695585708375300888057393227372126132619928542439102973371223284457462516911185771965023202946064059897272403602896537712256867257165356746351284105118680463453237548106759174395979305969772174893941683388014366816293427229835527816783953739793590260287125794256562572428375837759073162682129837035961123388556471254253309002280723707487819021070375707258171989046219652835633985878734667366929090535685619097742408860135035255446529878075657136222968012883495584655357697950351906934571141566915184808859519046326019084759842474022231730675137010298497018457692308481518671879601131498784546644960082127942540276764585880831966585224456947068156735953806410545071814269438278849903923494020723183063157554343046464698272189147719035591480775442207897155708834000481689817022269473988125012545562279653831770388776611989276288221294264645548590904170330571093983881135816863765499703604768012543106895850971673548822857391982666430020860398701975550803805412612399047612920107553183589222542730076250062463967703982645761767816618723445858382254715001393734429967114118402724196394727929011891144540262167627411958517519299922031336088912386431977430972312406503443421265077091487224573943548264720353730778335023088677572540209697584762594376370399461580772046309752340548870979384886262700374537837684504384271974707879578085829645092105675548103576310750631347394277176819203891762671723685369978106494271790342056197412884482363463827776990030223811930237954159028595157112845943927249047908501157620563408683056541484436055524924746191845237086419505228384224653891985845991781408754883661509028519502262268401568732616941802299877883361938785426630583381728957846026901749778781559066943179352610140678972422550162030030400145729910633494645158205445272793395388759816570305863950539280143888517002663835485005450333836600869742911189629858752226862700977522649894396959707820706277384401051465672556158510018155052155831711638783621161940120742927368330203457892334157787724239111965827264380525114892690192124727109862220795050403429172663191414202228864023836108944033068061874624736962760914848499058067841029077470361353098729553454394537646700646055363956076698670478966571813975558672197300070827123173514903310974235548469878823956602011824176479379507705420652112462180697455144383662879163302373446755933199029149646014264244620653760712264645585777719875768985072189064587547139906891948757748977688480161128608164567603025420961564557668630177299164611676262752304285907734379134723456626729462438909925174838020360932070399441450028672099767018724151885711175139868835774730938541247649989867320642438944106492688847789610657878258301546080479702024831228254519892860218274665610322877915531366275978074031665189540727923874654965657726580606001293909622001783490759393185710034158931354171778000448265727444215460488510819616594353536768150327096156496394348383069709236442959300908225594851889503946614438397359688304545699809674847019153089923459919712307556561610858895608956562697320249927642840260475771455133756079377405215202554023663226530864862757758335197178142632863639163071648433344940612203264178868599204545232966667774367474610280208501565513994214434973344546043042656894217659872774211437716729925985651670252774911364240429099431871977783461391723844627407432602308868923637771204998741895851217916032533471755438479389552558531536083651160417774502530162615954809542226629589256589420729835811930021065510226161907616029037608726205975981609881627611414981038247741256503506810563924893482356115668698915068450800473185067964164988974536125448327955120820483401221710845723236156764058086516856675633929464848326012954039212521631556897283751078508971387358000201126704323705138216314700915919521315713392896478925681269529127368888111662844707759685418074588129182105811846623538043452662284605300590227358742448197598418193710417086817726299112322687841742822288008014255786576303181530683580815044408583089151035008253273964311873789015648810058765012907260392493330562319674278036503757470610735833747005735288059562318177185907051258949426916929269399500084135136484382403660898792397413733367951327998257440725627692456116681421650069808739594446903340808159035040590781755628541588152386674391829603112603868223505152356452413464129804776358840827035445131009844615924639070834859812594045168836168629886476042212155710618291234477546859948505466123918090591680140414061349060010613732592667600076197015411317235254062986345389374064526048394465107573435913427553975781907377125443397728427397982255291268421356541897088290847885939871672445623536227647797597185887892414120326288947047583345640319346343646247693821996266635131227948717450263303817226594738571262479235412292040404660193533707436837804073679389063797868238585367006407433465047842710739650152844802510338102687716278178522912528067695456530983212590332858979391488985531328962743048289891439954114094676955111987990484470271683892221780421653292812847545190571340829729733370642177379491103800735093190463895892074355214996411892031913293733887841542167754862562777483110647044508917830779955835265580935898226355623062722625398091410701183065454992553019495103989113637827142106681009574973770802244194337451273740559485410011307642908359927570945547967641232853939527507844817705632551680582645025157441744158410883357381286662682823650949679606046823708589387851306813707859985824871052476131844319878919061664777898758934535828043092945328227622583197656105585388803946258411853027287110834706429106241523282823875002486797025932549051387996962620207817221930901058702750435854152281387862801319464337494010182810563360851735841954307444556036451346295256024006271250558654761203075686119531041592417079241798282627966358787409034082723871772078568013881526285963708395257020148987720985489055606215609242980929820148307873391366675774745397246338324929733046368733391035312479579882555435055586289343782695144113071739316762102406828205977437449935567573746505118665688032890728034053922689678773532646513512810111321259495613589529681247529296936778431140594975103909236727546454107246665397336911626713911043486498727686548833882830746887540950978709365430298669758572937688807414508700543398909647192061592452715855023812655838604387615979508705632277823650369930284340496463770355447552084993730920335164113723112433082535739091113658222197201377885948651294965254066140208067972560719281151753477329707926394489261239552046122404581148729170444992180790511263716354721748284643688187825020216560384303426528290439329914951804230165472054780773626603339319162329344967867152614762469280753188546063161963041214891412054511849693170407621562545056120300151045430110049970352804236735963431601179827760484476376799737642874618332553167708174715159778683495001863329673257692117464097116095704510110291721457146079691046977253756089187848892452134852515856942384230100698591849941879096544340014706158098798331921645473418675816957832011938378666761678939463221189956148348923001552324117820851152175651962532961616717710667754968002294546422061236403901072735878818345080647675386474577815160527107337347161379451717577951063947831615288365707602025246236684662785279202666546295415423787576713554424605216001420258430967636938365869040427562990672523677798823003904790538377922128303028784390817579489677360523392268190741256839569935037457574112423314333611757715796137950518416728009034912969146387072624855808565629164411749500011450629133767600414477852060641193490973587611501611717614392052732235416018049543273983607464691678121180984017628270074158345737514412663261294288227614156098660334168495617778652395196518516610841386279433967824917527663839689108898434572178764696386398911545956427358515879215414737106591666811872568000942697159302653501047116129041686058483774640171337050063023510921244227267524852569259750498482123360100156093631325454611136471624386142630017587445815692914919736551144582787178178138831166152714664688114962700238982102994828207138322941378065227794495327793007293439288715020354428187395649432886383438939148918288701565429805526066520345395629562806960005084234752511351157809117544176308641656106725757248138850124388975311670870332922447462783282672437849383415226949034056298933757031362919627359778033981669557225310697408289778207338965296122772740230764800633280991225737588793548443480874250522176761887166458693025781370179545133327561872543618232699318928409451622449196499047711673497158937227085547575978308579491457449792339412233793499069295322315519407593365625848044235670046432116327770124363558513251647524554345101795873776696699349144689802619406195390374927475649864145909281964212065225376374500675128030854433261800602433052137529114602620924423342151934537383057391253092374697835435797734415135189512972370942429898940933608781142830067374464880834287991636112670263789982584155211660426774479009402359142548315972924995696678187371558626700087008056681133198115999483022707780390572769815152161303309782034936347187539193616556774682219520806462642468105324167181232484655625420100768131171056382510134856719121625421502844668161939583972195072085210383654904517186752128451960832767428185135200212229276188049335173669474715172360672880319734277765416374707096141258675704623846106861225610957797786623157878616396838750917262639887307450601566094370852233141913569347743482160074657647385189409752021624366462998450374336251169437713540376864110204371122490668818761478519120025758027016333590200252265287670463575542162173090457140374195924674098432538097127613752165268973624442939882879995295347431274578020434858086855519681055721306108887079378438705991097923119274229301339686369130458697055980954619837710867722509136328355230274429858469402542466558454460066130073720684954765922005617473988646165221467989304173049385229342198665096328904675275080929575265697749986226136737057152318090578979827004267310047751307087346029964818818131432700063838979073714568696545139802256538660113528531953710802392713500125481428254656698648092919458894583651755744308816688362789564295506695787358786983237289846081781066048482371626136645881641885644843051300422753112715728187778293713368561364559094920282126200643050456108588049055599139316022125164318301853316222608555323603483933261424652810673747066552856839124699597582370680144669409527306807684235068275161814084157950080272157513622585690401499308647667239828470871714044060092944972913514561146225862690975097402899861967302577349298865749648081332638932360268734500947020916523394233887654953491239303606163171943246963663377342748935711705930558079143274286532613508968042683717300720551345303700913748313840040842365497002705151829737064113242514072744987444267167032401836397372048596986084153682881808590377230608077179267247627610135785581229406619174845326802676123521150735675237739763540312034841220968717042965861179291848191409711745986305895154102461457865820881642495729190837058113638474817575857971258934416333818441085802214446163328106590904852462198895373037213459919924732904963060467638294974611196234924193052722067719485054011944482071727943605947344229117316437513839755268144868305907956577133212716315505645278323948616041657995856670909966238603198623920084377791865760401829634743694841111860219662739367202713328088567758423989377867090664328142005537652921595168580975762659004243461443395112257035234850018600210103977316658937706793634393942717348559664176566455195888337513279823664928364174556189531336432988581379605907207851726600537957957670485454824152045125979466465437348335628735625718616765605121520423193307778160408024970299753899794830269581762809546515159634624963425815602586361877581095521443419399970039520059324923062580612182617948576708266815788028416532168366421434557709916877154826363976625533340770532475167404174657274391615074573563227152966004916725491887478730296115442939201358083476114793261996249906442718258403565843075748225514331834096081143708067360682869408884511934348631268116282360713452286202254685867660456373934469848999462038628117353069349464253482454996906937975890029386716655630220239246265320746604539956182214155766819752320229748542234780545250115249975431396632162806791989200311956555192485166264177986560104196066797566820587281201238565208627692991244237180902329310882732095101630673842407093797459952091551977128532250381167111498910711129352078330334462737096393062565802166596989851369970941923664529595878558959355827063601065921149103388807164728244664045301258999381511414008760718079293064230206169428838184266477832099074027299213881896593723941162327515886333787233962782895512992280981710125603947123134886163295050558035187208374205572259639632944724975307587169027467071933800601079516207330794992360043812158280206971512655167425558727127212636385740660913998883459877701973505596104549019673844488431389504897469790174608518767437967607250718175058723036741248770258351369669954924451409870542100301278237631871155935442775498222478536946409486050109856045209277404504847228595292884075987541962006974789335184516884458012695886839927903804582373481932063855718544131727910125450481247787188293941283094360464995357761366975543832836528680854331783066961143263292449865921974718006714767190214722205461060170920933311151029971969376274463626748331531259652597840196610693378553964349393950211233260452568806244529763522356804114418914071276922029891441147083627901141161860372358097679181191422930681734976239112744741621986429263247736081892041484378422320895013697828127858085133571253130561484882491036553859773417695914715864289613203254260217712648230910642310697093462560874603216538316331960220830906541964071850594359328645303826304756519626657206274873593830971089607841467124317748285666070305798175354701041344975534581442501360473014572705677127397693465193401028291936162254220707781453436872533252009757762596605937255930298649493102268452999215168180128272799503027234012869465358920350812488703647376650581202724692988269308121635072707723255488991665929099190027524569310487688242639498032717258096177842057496023563957807096953545791577696624938484037885483988465899865789285324927905682737486491776474982217701589663727938888730611112639449073858882711476527778429157168652830234193896199906499463945486158310025228924559336518404691223337372716840259731518131010519915778327668815713234214306123702499857742310659509999116982344152383921864047108965898221817603508325682595738860205617030331782000920247750349158778502315483881781045423506589706205387692484179493091165601915484961540685248840691558955348706058931911960085749926494882208948474345772596329964064901532539693444243624999811032734854134863747052171067805935481672525504646080853184528127775395133362693753552429399177868142086307822518933130822776088183517817874382648342407690362224579187268080770862973039041851264798665993389480164769137662504380066473007873719335786135887749806966656278501409710145130798278407455897141267422854548015952105662686490253240364501029916460171078090667253902645055768842656965867112691637950257302017599094699126064896272495075052198920064112503434643262001649239462751446017797338067962303790278384027022479089624460000922897331581392695368871093849921397723560196068044675811710970178604068530063183524623069627324586369118068716737083674055729422656466163759630342133630429104834408195963657152608603053891223336594096686420196131227845084261821121482469042203859367356974511426016599475374301053827073726021950718306402826712289780263995427628998421093576385724584936364555471458900703305012466886869892217928902527165208941096208129671733078929891620203945854353129972874857384282914982576867564150564908226777208558715234087326181238148763001837945879800236585607460023234065146666746206567963656795856422140186861356950769579314845735057875585624163617140341610713998663279701029217250830744976152419676341016056286556055459645309738253348667041397213805696297326886232852875198680729321172456996697932911028512713989844250847026894969922332320112963272459466061493533243101076853834514075319631946972680642066901648030341549005295673728516752573804127350392172114698913106916868190644023702732956655846332268251420884062563753093793552405657260071207480362505751760301582749152450761381371763203094754347207492192349272205071210151986460000752659495300810286445536858461438888663854644106522318632395002951795731440516699555892841564329078005683061662984692261641088009849713767278693469401346247277836880949006746257504051712106682335288436644629088264147685920747408962482515636492524574237832438921643050101449619595854382881196391217292942217534161692787690775334843198728601278607424451948221233037360643571607213097461284061849695032569752196484771390881171946875489470930776107005536389654856059529143040843837222555512243980991275172376217725787884887487242756904682361067517239314284959573492789424235441759946199262849767321869846847009134690504434451401268454290896579348412280509681764836858276627729239565219114883905566249858954883848149384973574984431126507470496760549878417521542055783754686569703521546450412931134912907232683612552876180300040443366240412268822915158058784617741429618835824529646285496429371468690073218481776386341023376979743164108534374241175153827971991519229214132170050028397796741070174736318038224001650986002845961382155528904363011377729210356919512060405298570847011901994733741925498343004262797747275423840594607522249212921019502218477732388001262856257768502021410635541854834715741191336606695254240674652924887939082616201056021726070127471064140231588859040236393728061715256712486711557042553393433756827614264359230515729156709654518594637409113195820552138425035486893561636802553589369281353434457810141487127814544853999505661056299252958974091365074327713448164141848554804804854122409382235547548935381586062461093727430319931199308440456567337372111936605213353397036894801456543946392193363217959288096474279804065495092488503619148894273951696032836663211456525345212264143538270898463080843603064358148180604980213612750506035344415044340379862112230673919964282665338494839264791892566546963035372354763254378465984799466984715777266047548199367431911374612719131335869699437451322697118028150030551807281873828630667841662911852871917988006282868975963078163344855840782996521648684694865056975740805297629259797052397134688290093194441026008592530416473344860203182372732597342057807047070116941081073287147398363397092524889546247415009136501347573479713762470289978825079727072571020531016688085151092431381070746911169107319872502478961361404407819385254387906795113212678131321720946485748179554121129034587927660561504502375507028834714563545720870656664691551831116561968627006865454820708441354504442032098906180204549333639699729121389834836800875950217650687927700517554626622923817836669451845990773936294963309813252767237472580922993314212997824394758669508467470288368647791040201606414856756377985881234478108091290642897218183772773911919809749895759855772279832932329353931680235477163361253593720980680417476412570542615774245311140847940074422445323067084628462061901306673989975244066120925849699334301462855824424930277338112945914542977075275466031293570841129839415053310228237404283235351016673626698490817383220950296598961995743378902954071589076745552255949866669008358221807334322211707504355512737124475219427270701424972874798571003386498479084168403272536356924699653289278243321877315719926515152568744375475926883142322397591057466472085678103820019350407182488086448555582963932501222686668368268758217683089802485604221664005881184396248059932429266767826045129624109460853018932706667961288522695278748469420503892374999935791057957690119420679895168962543585105341854533850569708947649393825127744534959991305376039738497906936568423457664493026426111800221462747352403038007278587610283088776035714136695967126320388146390409400236993929586035410107155083794384223615359570485706425366529165288233743011869379527000441820923457927492860337118161890897485615591774150062579632568432718169329214880996127524060827053270961775714892793127510802039748229261709070915941264060490074951577567244990742016614411901591588779631900695984849903575484651173695212132996456004939021769966414114639104872682394369021142543651863478294290704982158422817223574739940113071893130909404303550568305505479071836446527676117018031408556713638625377696509569020195026825517624531929469648959193616463073718016676672523631464267242008808506894332298675259214267769105410428553540970115300811167965432263919454743019373985130420908813426354699530486564636823148240801676431940944964378046949265631727880030331751178365742494167195577209989996492446782794555461345588681180370458791301683032823277067241925389920555155826889361343119180182185409647913804374354772372182367215047611698238637211327340616367784276935962305230945943159787983072836169047836623069179539478188223872516824114483463461098110409311883032580794086788464753700218458663996785292524596672480689594876528891586996753879325359686855122248190937535644168776729013419191672892882127769167282612934820241644774374372632502383814235713277286570163952148643808145863566357000322328255008109027238639210799832012294252994769781722843753410151280826230002631075776407720219700447023291850949654111674040720342187388965397521371038672529365395222984458535942696890902330108247992318807196119570573884053695800256987086411644862139083429978826704056113914941678474377706224218339118927647378242658367062914285706228707210034831128058948918913243181674422921025713918654271377014436343870371745689249598350163084811716070363420900907722829392356380213399558037044922969619679846736902841361356244218651872737487418585677862490441452944132508199194988933299426139902892720238551083198095579689626693281545950144802101460256731060522412176696747676574639524033813004718002922995940062563775125494227183668712366986405408514381046564525906545137790213628204310861282296300177339903625393940030934695846702090462731316944139771594504688383197637788703120382529792050314552646511394780428593625268805158597853118293063243177204298546837796039569982277445826518329931094507733428821201062309328095870842328004909116974408886628673925235290557665804434216392084972900829455516093938502288585984449422223548925395643711996876523876675524293062086517039273744188170688163187024514974170337836885988035852774579882024531812727122193006553111181885474782714348778941033116120302832199409832854413616313741213508617857924416571665055767533290865161547391688676093057375126938618125752155000194045304673793156219153014269460033871151204686938430254785017485381278525245803601338483595329833570801068381047668896561090511150846473808085359727695459142067772975339234866064717739833523881904923337261648499561738319106998905092003753295300607412591489065455929239280913430955951832625481362317888680692059994318934814568264651603288632062768655325938708034050506513752342235727381108886149069426313307647625753572848625201950983187114541029382703010164566913698678543296580840324039496687049331173227249930378129352463866828094049711320574297728735076850200465862271290979209644975488148280584785408298730322673024249955162440648865198243404576203848384983562300685983450736511585558609403951845481603938942082520498069111299920421299099364757962083222208137388331505308094966941163420311376630503663987593789390119430268868689353973013882324156142464870526040014686183788551772400459817717006151646463466163863698680821283908058134555263788336171963749586388279928279044503980754384693274190126619819566568798484389670290656036119349775137764190945480791554956665751808897683422230668987201574907070129592314448642447881568358912630713740487473454781726556718052056068732711246747992335973606845163414543700353893587608801350538510242186798608245145633303234240742232776850280181965822903451050008082225226036443924835064794560690533247440118932858877984283441945507091802866982658461541768701389525843937761663682975089130337073114065993671160958345931389465215481167535338330606568401426178417297925127390556984190548425399624284602204390430366891959972243511227006232328631011050185274649367531712480493810540642471219769921778689662826237486016748864132956152925851520270514962629914177802551028240001871165250010076487100206191789498763527497407892732141830619140621910839953604936473295361193157969216535559803589979267666543244271407544083350519972909040728215954516222666841465439149453218657481609972119484015752049851432814878106623241380004654336395644148576460785239963192572500641290303434539180096412648864647327049730209274989700191950875243866662310166228830352001418807619899484706659636301084429445675293416413592364230723336307454062412418841055933849690544911127886163030758135890519353237734155191202105217151872113261683613587860692939085831722589299939031973216325387467765545470781390737174784552497771685745220877679877522612191740649541917366841590557949411078223039274204414569839122744603063986834814236972473153936879193223633585033745350699657531502408513991010277972280312398491756210481969256954977181178242080994299866084328586883463267633342929971888049404847978912149099691723650973575407950315511679701704349721608825407792671875924856958979147467199590667565907072040667230007272528950801944374790490376781868687361810981354056503616711427739141154522275764195618515221178629893591539168122850936459059146273101882969267046015979094433255316831804497335003705397002525662075107771959673071126601790476301538583069935040750469271094125373622074291996266104297389536271433216756764415768565769490579629607616967159178261586679502230675055782855016509225974943206349012129590478800195238771608399166253990288471209010083200449031426747508347648908401242221139733239082554604596375850368140255734954208157060569487959764786008968222036517676275687715590349893388803995943924666169371117720897704867471175547948716708573424468552603738455064488507752588893983664097130687592665815877732161394244001811192820962673929610297713354390196843003968612909882054804423642781308704254149909526056285867450849877940660608467967112150970023103948131607212360442254664749261030712155052091838864512396591026826477420519997670920530508915746061024117934891767014595363225165163157416282837230325215940097174855601129984484036710740254068533581651449966596908560034596653213338984813483258442518245912855025772348248474990878737636864927561114749465938132126048449490786714634094211180233470884531605782989193452422609697380835188348031553401192049232044257277544452999961104322496553440911700780565268823893784748042395751665145014195002156595442921814826836549036958782709410789023678101492053589564080507327505426905998768514676061539637652384547481655153059669049491656455553070599591975587917545746078079427012559242265775392822591360077798253087896631042779436715539649651210160112995780226282726705729102551058963022254095371627789021741638316382214290173547202853093693656793746344334005548892068461705783068292513855287587660407219884131929088226747377820715331128289481008778024805553243110546955155087009848151960896209801079326970703041173704389048552831689304542023612243793741275380453252559050964323065475573502553812486157921250726451453702001495599910827704437704916395666366580476440398646988465510563820872710312391696473024532957575606371203023070535551049338890095593310549194382744641382020076740398099159051851039493173938541042870735708633651155209023948655453343865421949381199348952297534460240422638071498713312513196063703487495742838845896778471327195388072937166617850844017657220485351215486646698719358051351311596042222547473851032423690085295740839136526097308750879736528429978421519492504747595614530127504044799104019540178417268874007724708363273088886381597517272213601293513992578641776990332124796439468519642191537877498106855114616466874873635845775370617550737226834381941322443394062205548611454876100599574730599019342339344078811809611511668304449453697522741203670574094610865094339041418937987790893615545121838764427447753092398037325942784505134549961764575036679796310240607440954744252865987035758724657390429234092392807355512257046449646122775579946648686833463826105112453490232843100123325435376535415743211657269592471953545468849205286321418765125569719283307133053458264220508761297430454431965378933961029519226982017566909673713758106093468094099927825963312005507623401028357843923678842696752282484849133247724492518561188332803795388191963543173990267097202495592933630346810285310096155153710029578558637428935451104859040925562436657521911039445728639274335786680915572303593964127280229270392329919093938402989848214381503128786946827509792184539556104448375769173361876126901257877357980346202981550837744749905193041209060052354634287745475054431658654664994784172079016629208514689214961418745421838611791026510271545955012668014324008760298547501545686139145258356978355562295942580483858373857239420446146022689962831753262549495794409034125198654012422943462460992878647658768685048512932422067672839005828881653587750498842870887648965088028717884537442907276479071336158016848983001734497514390364518022698503061668608136447455038470836178142399782073951893276259430385530032640053203054294508173403520010091994958167372427338371584861410020831618021168155374297451031891666699841565806889285447065864249278777866453809280118046129024404155723143406686197103603332330458832104400752234983878164322384895978346842380914599507305679916490598479311657117974508056350679981388287529158931784055357350417736042736141568978234363607366045444947681334528381731550056031021390595464396119944223658056327113613146140223651276966182370388553439156529523500369677010382681519524338106954107011894974312335095476073471964911731117188818508045168151342404650924386322445396658844360491903181683457282517114323100646386751862979041644783427436998215831307120796136819013940802880709922110859646914725244201474495412212817787020892882814144254722024671916605582540640859828093111316048201730553171057714733931694054224422138149383034207741070257112520829505277611058004843256043335412839087047144455827281154927564888408629618771836732231976040904451195831539508588813101971003510961531392688354551461284039865682145812344507827759043127375533959127769793105288601954086070019469719800945359949640866432137703274417979537142808476997314793515923491744029719203251488180157552541506743287448140042423642495734468075103295400348777555053361545294061940197316020121331257989240474801058783273317385759425452385282103763941332164423670292598837773908152134605152944966956993794708900660252115598869200772180824399577009398621568999504008581061616542028966423447621121498625469160541901449795341089230677614449450830336826123612522690706719270971080242419028912351474182015978353562671732938488518203465014996693492907759480926538960290651808679967147503235632138608795337464035558070873487906751895039957268943328586991838409915570268412451240369936423845104295755241241409037915089199396458490597927422054636344964829924935993572161810494655688301494707830516478815606486794237140200563860828736663600478135449231430931867529382363009225680241339043057453950250036785139531501444617767998137421401662410881188021828883031214613558408183571429023921359716956228770400796587836318751908848918510683163163144671652257387494533560239983414247372323155586836614089625789163830463587653131200189619810041689457684878480405090760972334747038259854193414349971692153758458393049562831113727381220165375854084949326994866657739256577849698147025629385588762750275052645933440937496577278140598529986606258494404511574594923686127569835380221069170325339248560734399786055381098498042980228183724987498299117110875120145633799963447045284954781295935082811416200331423187370471908131643248206690282038246849934954850509626931453403616603486797752687382250582485432921704661965380560275536437900835292211674261838027098894240211711456848057155159919777879027185691542256750915146504513664535795245253575584881157895877898970958037395378767812454756266335295764475859196910301332541845942347261310735197252403357439292106118596971282172012127142733787800164150722512085088995264794956170216860892802924492873337291063163685022564415140998908770683844334838451371336010197201532736386929832229813883727215231185689731440979918549310647053830650420817722592517564441741884802020323382353104921207899104316893658491141750906779290556161256245160376535605569867937739810317213106493123136889205556204450903899453751769702799755918161492058322193950296343341835952327321909530913447422044175027518581650355486373518451541701633175419979825296159162261596860410601867223858988956095895616788376921425512082889105767529804360150853680941336045952231320414177494666080439714700517740240033229493645487628083520323636038142290497621478472682710629655304091333215310907112676660592335220284335014864788300078593936496090255031839083417613983589579756179076389001158660318727683713338118031994946534440479285073660969397274129997455238693892746480122626279430805480927616750274128412873808880424346738146094309986392948813683213050997266125652838913017466298302516161938980791420223627611739508982651220828285526572779161272288212355199846471001713765484758880332716838529520127178924808027756869126025515289215757193750610074014158419043448473392628969966154691247952133599010108897616723489632724644082847044660557580049717944547002479471676423157689064829076507014553501960007441997470563035576793446860211231137203243861314504763281114657096808085137615813973900875694839558194849802105860555401135947780876104227015738898300533312681075041031145177260945160357161754763246266069096203193154273836758270365930848675735650966642688492559177779119467925155845051106450030039184482666092002676482283931783688886561052660711364173272749012658203545962668453733914130769468511225135141424259999908524977519405641268803037434385374280609812312679123722877840606028828988794276212753611397045838531773246869242891902751480488683320464851104071744963915764078211592030231098488548214233758650394706962962643076778188913881197643016856201636649257173350722811391055949883947460533233019561140675395528163177566627764970774714915340029042658642631475349756558761353689149705953829421484126185059742775739276184280955890375316667017631996123393723016542718678631347237314940049486885562693545968516599820619845128800945154736668667952655649560505493724412916402369995143537474542795410808287494580567485379287366464206772289494923087026262318213275704808129933987401885807875006842509343067531770520408576597413414171777706286553328736627488874335867408334801076252445213319431975679193949592717662151645945847430148733988850834057839417080886547679417971349799062904363210741606899621552565402899916165531801628203252804129783934047603879050902673094254905260144498072593524887362656048381576603383654556735731427996343699038542899232805394760938310804101821768560353611128408787534094866827192839475867632052294312792261171756471881602515774221023157549364697200466014673179574366649896110799278147313899078186736663637759820892934406137175793278254820262882545282424325188002940299332620370665942488541749837316170056038934620931282172470314834739781868352086663000949302161986448094048656816651040560565102667736379533433768613972267933876125582768850121156325174722599259359130059411530586660029442691234251109406985644836022622331431651695037607000694142369108910705785443575061943799037302017268515876644365186117761851223047882579813461267316831684493454289775383800890055297275385627776630706638301135413853223735807670497328010400480526401868651586566940824586384431728316823585530889451327734631515922320312167856579725700387841080343101481458293736512805248846016252468120010636254551181661121749161610131141560411923325043476458795886255848127796152084448349580541629804471491502624794549461719426994552284196280552881771924048190136765126970330647247387391621913583204031560669868559969690267908729114105053750470645993590684856313320722874058343543124631295746729332972445793781083365564485767176812350164958271165335196031864097729132058781921067392737227388395441355781732260882700317152563292308619981410162306970410842495022954930094030912693543422723507383777219452402846803527306363622902386069208222488555559410381856021696800006050521200355224251716785438975371891412897258307963122195215723996515816396857647207977875499523821491038972349148318599814248397710118075288364668700350569188762840932226352711373920643724740603558053549200709069170988154464736619824877500663993761099313550457460352909273546593773797323666970103103840313180316357136137981805073737861533175283596743761649750127488408611306263495534789214648038044463088446334533511110866823142536262321469795566715751738260477699612166152045939973677326835317315775779832671158113172640461928861327567360908440331260222821770671206196770671766522301110742557123667239767949420701277952482223281847141495192707242685799221890506568138524980216543196135130064474851955490132636825285660535506365723210735233092985423974846312256647819532774712830700020290498906305769567064153147311514674336635223696711532765309134427470677493751019764461659456860083874873076365225496314339282067369362739288889960451242715895051263357548298492406453019256560150029832691351303145616710320652006919108804274465357400367591158131036578844734642326452722127836771632189314204516678558494023232314833657436178008905500326171689263700568587623680282626016376528734722882670194745102652422709654369884998616504693144480875865699430602694578262301321252349349580735663494454247653006462643717419448781568307293739543022306267019421291250798484111245855837018371623578424099926238216947857620506909063581210038851790667153427152387851416644410396822614473184962089636937128172764597001892871648040502332556081285264188348259373926142321801051241008925788185665275208165142823983659663793357236465603320269765009804312096217042066458704623693854437743342001531001297909601409964583561369984273178621565188252051809529272872345163137962006037328707324233557008307557584139489018722803890795924820340254006041413127498630613167442271685714426724261187035876711221576682216300435862623513943332458762911048073112680722653656064621965664676244991987171726243847850238237323896699305249074545850095211689700526104369364457428263150250496629135691767889252974767437081117306572036564484569874378617376145256099527666194459771824860256753903574187326955131325997801700335330684030942422326771292781995400362941636968777453433911950945805878075389869582759925242676379329441521000854940201344696139410289888873131225156445438665330495513779237531132848684583011075222246459876563543277828070167469413259116087890619552458331029090270187768398808902639280683537858311564342131873548231031837570127438722175778185336760755607134692053260422358577859758797036746395908615185083781942317350143712608392764871642689009434446905766928271627893498982143605220961329812546301616337403374708748898129855704374044920506171735913063216364507950977504981492062385962466327581347719335484571319463889064532206828873381890515258202663888023962400823403585529547305657291830256212644275122427503522404668957175545686939921990006749048583912328732934897495634783737456772899090714172391260606479407787071492194750755408791220746665297816910537378720063567753835556317836416852418815788176323190914061979591548905802867671447047754015877851156198351412768260652034333866918918586955088676660767248386499092410186154604275562501713943367021048979860760260919943482775060187795878481246985800479258863411982797408017705391787449923064021586414209306385575103183450037410366431798816107385752238910789462201618947973920004674985276323349105519648865713737645898460764363635234803654594199645259790638382649607885848362479032612081628095993763913982826346994500932504861788541188177044463937369791370624996245318295023262175642869831967768717418372717364908810917661253366640680416972841877324382971505797758312105062599290770929725350218109214146087900181710682988087098559841022352425831215020585044112815082396357002564832615488695145702494178307229524868712702480347795481938823258161614169079884453939220992549145160179501931788035754366957710051306343557103129666090918939768439610984562149506655294024761715706091888386780573510579017951478946100883191724504114315704917014094571914815045685671378042708869177875830505159434145983410770095416199098659882318895511404931958444026998571942775634202808867990986560253596017351094969168363710675621727658006967541088912073009337723034257359763342039708730444440164138077194866965096146188112541909661457300368570206144910527615825926541321311483293970243977527627851610302032457558588184032031057848990167696725299363382815187852873834821476427574484507966467398938164016151824601538341196826747390348989313139595099752695128130395882521043704206192094253092976842137665116886391125104116127430394986967405435261768815358317052086765640228626949379612412925369657151068052384457925981280287580087454650186966123443928446565071986825140618099701232508241138439581549006991431859246024030724751124702486494750776398317255485755848320759771008385855820639940927870823129322939825119919666635859769037592207360968748983957648136503014317946139643821061420352078228621940707448113633844757308670720212583846614954950500445972093145974476658144312110719094133073691964776625459099829208610378454115161582107196491521937675737654936853953365727448273564260497052978833672481027852642816655835892082260037005360060303754348640112555030479525053667860823991671715043553490178259986222313975799929040914266986747914413386130590820273794443158758097227649417108230101106771802903112838436492945498680679851029901038295222481780804446491888563027848804366186804588627810844673197140680055588963198722348125088481888421140211053017631210060222865090450631302646792768072360525160928135584482921912998075673140457106636975146711403357902270763036484156187107689693441117946715423947363090907624653114664979583550334613547527285972360671487678182410783653126496208498672957272881711232582553642825095837050778351857584509037418390901375328516314503810103047384313211534331022305944545965799303781892929638916171369023430236687444752534343743323913365704391111858727464687335184710284481349598856912301113259892507558912129726880545984760525630326273369746781637281225364013809320214974078187881650130298564027204628096756091168885692309477442512685382688504459815209092928998232474771173998133352159326644325428258544119479818582687549014087923474716474530662111977586328375010070895268157866442467450270770531935117357296944035255611961952673035198867576591952870441335843703009869426278808059749417956641596008129253275761736151936916531696802848023803014414310492668506738156442356172944695732242326584046698900830762077621551089439182115061050990575798498869469587249389940299511806954431565964462404162180403495727647209579855950360826121262113273103778565810639209260510966988457639567195659257147802319974606355238486385630936213841560490666526265923847190788790747471972910191530303918119568400219140024817034599355527980538407246535297884288784423368619571784292566071741221319700093409543825607358193872064430188481424644850431166304361776965526428787533539711185306118984667825166060769778640842837863155295938792923259760156190183992846200660826039580556689165499189788723270103698772740678682474925989180407546304127159743387776195425344247249762786529962603484651205004542042676843745511579406351934822658355640559410717079830700842380383153959775174461824933125759396532525581228016113078228527476747563638451958799272598905563498781200054499523099890150347115240230672037427844826932753542762822376625629306338598174649342686149820697943806945194460522929255412369433363619303458830399068637180127403391502792502210650822183919800608547508538948299356583617710076348442902644337490926582640922745238302772206485962445161466928862373590050083062885892108263479473679393108798579717783490247733344230490691092516117289179564657568736009306481129078658321462217055901228258172361947605479048918344639201725748602012141812148057825691049577390866091773392577006001802043385173363423321051642457876871006495675804980068631388616764274216754522697658875768008270943184511803387037546272481941449018331435363508024685042698302087629409552455973745040800610883107560212895172931882455376888680877188070048419600868561492558654673278383710916546047089686814899296860654387688612864835040606811384193276126947963947967334688035873587753285270571384372432263276934796131388633003409547865205966217280618373403131392565672448439045235898201343167270713679968681338179145282304002865440287529568156221964948082408207538924251754112272227083380257774459923558824090787340347199904908436811539574329807260666236622619503876713988168284691157871419871461385388771307128603578862915728324177919756986928484144539651627031942473205770486323850952228376174383460418471070857059198905335434750623928463558067483948403047252468873614057085265247581291298894808683270967846611676330110408429126329895732344572790537278558334253510814691387056038649536971789750150133991273554674502918155822479663473075074800473094816151266388635296428396942316567752969478897759446536086483892177356064783376814963619728121500097095873805976122489538020629191649324549915640375308861568098458154494288326313975618346676940473755397070177973651880240138808245454631570335729140258579381155155201104816921646858469296747961265228959547949573736876692318984945588091859555773099520757744950642769641882091487385254412265763533335749768315832728581973535173030860398622118323030278925897888775723661530589638639615778674367995235940993896081795541227441060626161276946918167566863545012291282747172373526479730548347097960705602597895937956201348373229762445518160476854953943820605248669747509305504197217776306067555267196058346988151445815432853469134765674234938252605230296255353748417722184879928314737773512854174486635855254244143503385521006756694940659867399997938073156407461886659711158842294000571690651529436398575296329939976186217183283824483478612078501005284668728873223163403985392838247713751254695219432396300697727621628311364222361434480771657154034904525765261528246685904111466874806739761227795397494316862738214084344591368550605322991893931708175307562615623501884734351390838530981315104927756413890127254491818181317560621562308096516141376398655488626784126894106089501137956166707815978173843669526972264006980394284955313055683708108487872396520405324582955119651894213425383585330250383946705821399288182079284394173557195112790902128803300420430362096926376536942051640413648278519822916619407323122716650525597149967197124734207022555021362937023363242967735107586304056929394517999957246406827720539642364508231784284804419581671733709282990480466291773838210304963807889605018785811628458272796823661813652975912891163169999705174617176165725993557468069011887392284627048901652660519263338412827369542744496132839704349499814221106703742218189603178869484367933442910587206878600861647486000890475438271709323122515114356516042443179643821158075842152897979035238579330262042448485238838222010871724230310912088577957310114541874125556637425180394447524180436491423794470988184611103620481516724882766879321118410958480500742861436864426650345489472554817281875413541307306761890993054092174083489696352802403349609263651479870580760304075475287492204125063974720749516279251661233934864719214368323882884129920105559514123584721032504426334636157149569809481230366687646719069559303026100911038379853178594382863350239308641313427332480759283282622065046451584191765318546452772418099804325540201115069709149483959505489898494539901465952306084369506111819471534874946162250785687968663464838090528149359374705120776668714695344251775464290126206816335524358126576359887563919691953328179505297835590036111368047776456739170876506227598815968868252444309098773361536614076055439534558344860780391469846837357606266473254603821269175208956562219100296187231145520012907928525433075988786557039162262678389780626805702811436261095367232446960889352304022014855692920309548496081894576099121000413705023070974052459362686276737037948532408243957352779963529317416317120842283593381709165290432492813541831793824937519023759942336927115574807246452265793382703863667992598472106727078883887178356595854867243082982301518249679714273260393638303733194304723363015563972599553214448202197381579476827773450907168584234247063491652791337507900939592276526382858856067633097216500308143624156535340870423884089363143948432326340892059406222226844281054356602108639882350637108614642514784131089187071060688083970972577597806373960382181110650426160186307563918884189116688974106755085877575141550083059214912926310317006464806723298422713092569753910162211047497105911332379708995089275955028215036096482048649348558987012428032399406437064518012532094254275517095848564644617740287597810799120113241497886201815668551590312249105348507243514372213255503901007868550232842815660184783694274936774407505993435096712506058256054572269787181862178229269470288822589250870256971814927663519223559441359191204992327128204185308432977734095304399656257950832703070313640897017563002802906066141355819806885737059890181829385436715468388924837590760217158837988131041814011681926827961125451301444906179718199669849854389454840823839833045554977533959606446912573586886601532907779203155323241316006453632004902539259517056948486995710753023464232865375316869123202658948380352015452156255613237222909040971727764346332874522187850500742975773118553534842435708776772548630864611833667553735266373652188854422233500733848371119365164938876699646361009420101844713998299397577103217009066289163775229808590787871110071368746076329907474536588469798421540037174691294718578238982687805058619359027289757725002617315231261057286931728576486572872296576528078812792490604453412702059946545263858955089970781190982207860357573208359309093861550254481640368229672953603155650299782154640502165594299948640179690897445669224247461778889245705622277629984990632341299990958566562179869171754334472926632400914486753314125013309065688556998098541957403872096041628438409971531990296205032720022406443378844044570950769593944287276990917437848094603646191381213128080725937414357113177054025277366176292362949850758924827586832377375821446906418163934173816509240796782893491717684118845389789866184120443414150450337878177477699107538288117942638756366189904418823955490935094186607726078863527843112387318533509688158740741925082643975158168980116342306297044840425465143553400711333669677304212134596518606449101590240342701508777758034895924786964502187095231990366771634525382327616757951437817624850405282665910097213011434937100274370831283421751092281099053273777237057998972760360086952569420225865789759772892292152738720287685267129005974315366196636405432820507298538140388494181752371609934086801568846038648001432396364042487707384651313775906738505261229488383732430447480962502935914439425469409988593505794206052451917893744381626704231140242957211872410515077812372879254374159914778281275635046823859391729126613338409850724037462086732309702215705710304849708159102475629707080555901205649280114688068471602139115165107219709824549953153648790880319865670866510335209668776121398324001212980045183652638262633101700708261519978671829474291289620077260279003832443825285991705498023697340641475561208684178472233960500360302551593959861923108350089346969715553344785792212950046825077241983551727868312344182898631178597307567300979205473506770406866730112801650666704441020141279215691717601845808616194306666294256620125402621964476475642440214758675679569945591591708636051249377418592298822668426101815965329983682580250820275571821966966516531778799947290431655953227303824319138306115355852613857896231652701907401020957845375370728696318163449682119662443089107755133428710225630889485996595859849850943958491721216216645062777842433892852500373629420173463438580926181069808098378151767759361445389164605248113164196463060642633373013010172064962659536951985544126974204485142996952097537398779397927050838308023870356218750465461437218851347081134562179562092225512064110715829664700290884221339403322473876636120886692064407010563466268881766075463939247983431003600639191424526411510644112189527549249552297589507776172390343357235334701817355634473066131298738633943685593306498020998658978779357726942184153937178280034264220524288698175946380862090463307890121451351144879254167128732257849023441431529909185886848947173262895914130846480023315779021537222538262505208530497806572918921114591202512467396825233413589181626992961492256221597938950332684137249298551887916636602341080707487648595190097183469164594850422361161065050843182994563048850114419435776791806200287262298488030442552078692117829491333770144825228943826578924021312477230916832346925971031320538633294164550199958387306786220128418390534009970294200814838693409121539516238469623043471468067690675651335431632063839056908579415796554657838115231044659203110462101886457039897731877222266378768657778456824577535339282961458847864264810483293677953820742664266154127345810196278009869174039615382299716215067839271279503550670666147225137992413586555643306551284121766939795227142867118339416376217115039412269210311982498806764832391347107403965512447226048013486644639054212670269588598116712275234610086082603888500959092268967695085765066751886131220674606219395868554830178299438497361643996188568525033904088233089494489613444875400977853344804433610225840351653801294179542014268756464804108565511577008153630391875455885512433944350775629274438843716413525710238405762281912598312271199421529986318916360997092547915018064057225171545350971927459326373096119151489967896973092624052610168452607294805824744326775577098300924347446285587702723484988838815228893678088116986278483244963902427464850705977151593192542697475076819170335684291057288840345219530541577033213765118930601215856426016254506345776511353631921388441079824783496673766211742462478131876247997557926522562051165696421250567769522728988859615458794376838610376923509861264420194723109707736842363009742950744661703407460485489723627341368108262370314862651440612886249542586919973140098505948824644305497610139922781661983385072119275578125832854244964221698117659667768952845193197165853119358617497923479378286649135433690065003508525829221460535587644874671550509486990030573866187661617464067398478974051761690221395430071052078209747633215813957667949738435729979708001132757010104506890390824224737433161358337770268657226720772646160690137487336357268483977024437979383404539040434121550676597693929787075717859731905780540327800686832647331708617953403917779008036374604410228867714835173727892066555236548829061744768994939691736085508055717068846779413721402444777978784324562143695212838886667272794218503926644194320284993593663641453119928692005501595137406769598530731191439744553965673346932228750327979886915281669364207385576987488195022996596249817629521321051204523886379513420473000970621548244843670956866859766818210616002800111292715357051648340751177772198105593238683828748874772482242750683454589716513956405246937260315347679633875094954510501929004186892822406638454055012587960371882627803842231904635999110184733301198946514276369203817122717145530589692941282792766163182761058455822672343437547459123113492415904143716618677654717847729375117353567644261669097915619388356735733391037187681980148448512228592537154542513539526750107798798530698505286432645075111407783023526324265836804666271657543484626886356290867251946644192923263317338422393943565381944171532165543141771342542472641049630981744075744784825404089065862088544117087637569601130455487423145384928212687974106780955390691988921837039392241606178868019708734474918755973596328125500551077263002911104713360326946858298749162117758797404562982439964635532654959428168008826966368133289314502012251309874953053157462101998559344711700968987420545981555810895556032451791416496906487160454971339472616047417496700003316369344261760901379553155368999397731899473727450893557590929115163902022126595888024977414185539919835839964976530317445709656335254525690483179655423177212073793098221787108503885710887781484080041150907479268784236453569831603422495332301064993770072016160841423698691376281773744984562294522664103636505090762423247989959631984844208842999221743489066338058806469940037574560952076167821001527076605027287307439976554403447165958140353237322764145660496032930619289963244610116641333558373446953468388308556774002020796506832303179786367512809955595342549874595703721610700755360481805126730226903010425517126974694950392235565456214789572601226929566435596569970542238468361668236221529650614652091036512145655253346548677012683357337745958767041474143530169022407995811753206290423106355607833661592934478348024669397436246368135646611924260760283071199445940193810146540678096169227947277841601106751333772974745619875042749581724584878481077527965486682314882904816984676987555716739767363648556508505808646747431103807625180348615402510742266700538044232024962272545817022572427091443585380314257025021820250009253462644197209006192238004865882821234320355456331871888010276363031090533849515382504322307959932009783606975089000431620017560867509668412347970069861438064555325223890305328624008471002325040516113976699577068812994345237611095236190183210758492900453029130371953038246724171640933423986157556292537029782592344311499642901459459883855520426754927056733491952612100708770600157903920990496267418813878118026306025158325086547359105465941930627740828708551206683372694299685964996432181205198736358999836356433784044538403281704463390520550414703970689988457612942216126715792269681348791312248785966515461325612283584996024936658439360057143952995362040312312648323085375880309378359724888127110368378394914822194155638004035717847264385057248170587500248419737100575627922339515620877364092229937114004682956030113824883093994791038022276864428451433821768866344227823466623932355014749333054226998047238940555962808703918829552833788673025007198130958099640402115558530589750260904289247211174052080929108685475922846653881199320553567445028264423932713558180259510117890313381141232963427132104841977808975456102519023877148595950303769981554157771637138526176776252518629164512572699495516717839564182240276075729776508755995170056845917809607537753971810251136580506875517860170249296122966844084818149360879404960808067583775886698560410716307804132635702393174977333852315276024408264209795278106362510138113451227342748887678797567171258964291975968194912772092630729858573853363534726514546559970818711652487769679134839739107199989832725036726928485099790555268146219144259473355714083249067996509734728184336312667455974861826187865603483577735475147519988364519928071945284526010139471443883617954934921681157865305880089006604347958307637079227034056257623364178105360903004876625635696905509109082078370694885026056209451264689675494104069126443693697146724543947052550685274036260230833334733695808171250669286466535365138896945280197061100036694941627757970534783972284896958095382081008396345437377902309566834868880401470378894902654844951131801312865233910850403778123538383658355783635464449037680827409309785089936192703088532042783491298513131110879850873033129775570336573771492065241440724134672298297394098543395349547018509481620349026861429613346251586803923187365190572567332084009220559641101292342498029932440919648893415633158639631487436289339695912233244661211017667474438534169108071556816415058185189656756006491031197111228040742980396068685727659893133050831458766483673791394316100810318496076436923872578796706437941333913454153903666165901260616533158164393573183625675824424003078334587012057634381375074020557057042039704704233741593719745377788305995772501134392418638510207025118658622933945181675114987115845520835369030443510598219462497819821151154418589033364253632769485881663713753758497337488348158150063285974349799899361587927526847719888184888473580629244409164699880184547173308188475580745167060900913240619813607273380756533872959951747737523866019242975154413106045180772908673354555941132261809743485028108541789125873292984895486658785202923246132710877247581984402526117292078132614335710640124984516393521418681440681114141124150847421902395768195432873271573721158103466036195459022965924016239684669290110766965684187030334014095201107964809019392395484263333846403534985611492228816100087067162961167855109776568820683709504631062416432442930137633746409857648021222237706963261408281199011789306100328150858421405410575943507035635334221555663037891984678838809758042773043046986449087696960140240163781761876893192230969738010016128653060474980146707909815755220988667994765039269886763427363179596130578052519272958689170922630129032569428916476074616928131568167485093786721864421224291826021572059897442744349127392906219629655943355400429906163205421656030240889322359228426861506170332221572183221353357220911555391744197354254565183778389627187806200536299587778458445662746124853583909876423101598880151931497082637162651473880846548963127614202427595190803574121869853007895012948690818142679108337602242419685919140364036689609963688311261183836493036778086305910298434346884840617802985893985174270481340704244550580160783175724342800229513082906801670649777238444781103361377746385767586154775990697723450985798413684597323166813783631952099766291728040652424329117868545350844047912118398141547852059481641407586374081592269556314392803052663174916481538906485972875789296946904714428629702262619191664414590416647544175915281688084592857100556057661798572538489278241370059872681533320189194748797501902384994833322829209407477828417669118985412261472621099623973128320972906882920756295467252243278254676684738642603587684269438587763643618690042276117983592222594874491286488134238087683095148987507083755369501122697637103612175035324528531869639275351401477981000292643982439651401050382107350812193450356942298045428211951930865681624674005760321299467992075795914879906924114735281397261305812304363094276746137046543437402949092456394171826544868724858622634068341563470740516432667300194591812614956831173503441689737056251051570577034236624804823144294788378662883021481755353979018932165915440910875519950872141968091305065112315616295121316790396642110402596417146801168690787363710731505951082536669127173616765668213221653328312471145660197902681893863416754490801005351834943302761636429769684238732298692866402829887693905395343439139413174992585402621721406956880166365165418500935465398120180127495380942721724623718440330222062551775186252644062341624010829537750187016867107113357295147420169528279360139572308709145482130476328076411797435997620350274462011400904249853743037504368122221914573948498833562988935842808435926624539179979708829916640109242217384136707010307050176965760931704459456705789187175047024826660370782710931889573544936634950637378786433769310435580409253637755688372571256001748574606459237593120695751755592956426714311021841042778771759845025114538487930941058105836281821017860428326845335556617599702124653650610978202510272719065711269950919797399727768093847096530694016066586899285012791507933219134820330648287319179209394483669799087034810480370656818360357291260141656735777118010877727095060978748247914363332078933265863252900998318199046838187360393756701402247186990094376087186206321988652149594020056268745371338894528860578897855241762375606903563653646499018234844639883686577606602839965196073496532868736705918524123057008043255232008479914295362349710575173055744674145168647751344648625403780185619612528176679066458153115395321074588932293018017714430163534492616963995329956893780062817023479639363073188698409010281141183675819160670340374227775027150767351253780363772547007359964502207101163924955132480565024411628026016773210355005274582120668947114210465636706683856200840891203212650683899966900089961371858085303454399296200652765215001658489929791027569618358975089541337356806319559865417157679630938937164122484448785982187049578485601669563035736496261566956381190444648223894357569015208705129854488914815741223725917664152258607279458697320560534854977865623256388985839278395118926736786419070214291405707734087149294646277487699817943709127214289288329583332262306604816696585780865138999808872993106471013101329317746325240976664150226612635975653141332201264458363520611583374997090384930866607229773386642811145954255737121525933391807425756823192210985803486925340539446568718121554682523062797529391204002340002837477146422280947304127969988616047663958352534285889639735817458127812723836120035672183352535127757565979235760866703154413109319591870733712421666370855863996926155670055730210764742561785296489944880215617651370375975664131342257109142808050430834156345420843672650568440547305756369662766172215051369650396028029488912525153337309931799079838026859802236440888338606216476365953773455816424073749385724222228600259366433219856294961880991748495912975792940911185380470542280238933420618353847492986845303652658368932035199807090646497137860799796613886673198650089952080088723899719128931184742830604942249876748018405418760085404500403490737298681672705391116066392294715002569367948300171500131521785307186369017659394228797530287413095369200698503107715225938248796897550697584757167485813410614570898286302910186984227992147247771684445674446528770581341648300117879145444520787540775003512106671351236274843914207948769528292982980973999427152929498676600664253388319763740456364839946683402897377009890046642167039861481693511524421842206625353629412721402365202306615803312516920947214151178205743897031012893277413192815060256758318348238139731658941330057234361977700103318865021210676026390441488244880407069861265757601084506300268817746119539994477575721169924714903437403677008544594640679600856942296957266096271788743785388779010058579569610940368314791053286352695847259828280865109835189131072391800929751380701481701869248086581282028211688944658498155805396774397731164712120404356415082931848404601592405933280191862057745139227847926763180395872071366532112139842956024291468057862224582460990451593611660069645655110041511452916030385523306635929880900586807371723128598621343354925121903462416320046371206603199810655549733573034782056726091704334454756442785234858516839645153843866243901429482118319330679629952786081102433206929947563668685535152702398147257284165089052665969568539332739839536432208980338563935823282058859233458888351418655135062125283605256788108874848631889317144316665117471155867205944902599410976388301787696436164169668214606162618583069360601342518263681446077569556247208422214715454888013622925926789795396207828288399617669883007222956286697094508412689355154426143829976265883882850470116029109384396522233010764496350150056988347907225912414818831073998767861006366489692401890726002547599614677301167733060061201690794976442490481018716060920206952329333215074243723931636211905242187296919778585626279734677404301583145287497759774523268262821332635398832543759675076603710635647177849577505418889047474164449763375804713736109935921155416332335766098158624953584105808376195368888805615298576101258715845396072704248029389341850198488685570973987872011642355570980289177652238878234367839251100671344673809795245278143196531524212789950002531309464560275616146735836755117016675737288513183327611719526977325808552506889221653782282831911891722914287794545253179764641396020804598157456563395050577103271132681443266339854916596000733492004127647790776387981390314192951500762716298926500103171971991941550386325943077901119651921568929799541080607181897108154762800401432024429027434404732289294021747852134775601611758560075493640398161700696097758253195719020574334130948534901017443885747713119142619255860302420440839265193999999270046922983518925293435386706268554570213178609364902669226648258944352350625750490611940858414420201447985179453965180674708295938841001086806527259198494664835135248436277404923105124767419387123400698871983099519506715698491451019092187479385755282703726883624790129555500333899658634823627893266141653209793589849987911360245232466997545874077194164134991945129029660601439444810346269443026208973930985864268979924847546942921745943899154938784619899537657872319468467612494443259478394499826344642102077213769474608214299190657136970446333339648807034090045045939854732384767616603802799443880378978816738955897002079711750259081511654562012726472025682237112406978887893339346580296112424886896607708102530503744136677183680370656909465735695753003956277971412425110618909141480675996595785773533799000796397202255178591431214287248939729686620385504002289259146031856999488844608289122353120220763031259155952266177877079128209379001347097084254483689662916485101070811220626850683173614211965439365041027652837315914243109570370459053985879860165265157562873980845478899601592832013950763020462015303816309455315876576055668449093846237774653055239723964008092489335745380925243685950505493979371389020430422249310797199034060497318275938987624767319255838050289239629734442564185652595850367163762464628691524929816931875125243066526087467493373510784856320984891366570067603529896475332293402789384618843633388701143806032858925574835850453840569556226673054991657408734536146136486216717741394735815873317927646455215377938236872253998124157517000292161155749014615418492784008102669245491833093330841449347200661506024609508217614848426422125388258722898440493967695937012810120634747551154897673877576256550887500668480495789161655398321472416511509883093638138999979655159317321645540551297720703185248970860201239863765081111784223794244418722559940672720860504798984494530997060782139634522327377484969350839212885627184109194521743396559404479581468530540215697089618969188171061932393135003269150837087986961277281745742626308747650602306270096595154374915972230039753980258264755121829964862274090286640119175732076568193409770222801002827092809580463983313649708313170477469488811790784032487640941217997468621631433817688845031979602733699438445775656504749128286640027754030625469819734266452341505239932850443188751596964862991870349875621512632650308477981830250603945100279974699080183232043306981429945411881450910094755210905924798484635530351585736404141987043092584263065175596559025417898603026780917081581513249279289489835018379058161966866624317412061726139788026788757706491614005778254189596182067738432721552517992001848541164852093484085537610590148660547686185441197582292757159182390600563810594244985279960258614419043343234482896350038276995605933375448331196289950493628064156522379260944671474079410240066125893397379235422048864271770689028330117852859781166544909831405720573311549932476520008222990098275254308971945158232154029746325513490648596160598775103322939201728352525065189347143722728817361769787990964145120265839053202134018008475517212784532979126531374228886461159479608982682065669883776781864649028569990436917744315733406634446096114624536125759256284791237215057304200879031560601205570508951363258956155366609951440289904701861808957315199078510881251727981994751087734829469700305233625998787125098392229996500022577667718335741925882230925311147482516247057038679980607109002042813161513913875781623460545295507781128859665682085304984427689159842904709852685361621626224282866278516043291475319341588711452437808875788266228468027309008941666144081875758997414942530906535858249119112966137530872218311339104888420556364057571770258976138405486324137387613594076015648272375687333781920814566057584598085993595101289296952319497566562069400208740227565672742469867738726200572923383039224344144334433701952259383071104871813074411196931481797586760832731164100694626267765813231419286320097885214229157282956538345693320916425435462155736938277754336191202154398857835053024066572889119694969454078918073587299599317664137397803420567627555954307674788305094626214780728167033058189871978632080879377318073108086623348433516419483709588731270854148016845037336247166769413746914175957896601769458039240545441748171492310413744174001455812725197551581626009766243644807455361782232994316227742573385147791500636529624050970002647328205656167518993760506170274779052869833398660580008289612933268060561434063045361724553060626120722641255444079676759012672796045701723666141022041200972849458924182637095448269179250137199076424305845347110437626700509978109959031261317170527870562941611806269829424861056840361481700724373171418059582013883845454933721141091174090658625580357867539604442975852577821951084656684877244023553962153879040778669506881437345188894996509827346100491509771126432227351971693570831797523089515116686265893491490235570761302527630043040593526293599308827999109531722026172247712506405235454113753086157632364667488449597912019410154721897393907114146242283075668179482366616365702765988290721290270994161368400768021609218465112767884246347309894924717050713347413056698160345347910882313620033564600077355683386501152280706587906497944613851736851546297876171666258795960594766599328634384507199165222046189293252026770431587122686651447337632107236081615715477148091382629910645403781942945760116371741190458550753165613960353047442588109276257315552973633261351221838927857405863876297288353871225977576868722287850661141583118027713017487903241971160794947504663196415936401668166210875296859334574201739984205615913506931859463458863696225783579629657027602116231319792002166283923008960401837971570173978516803446947436404659515629768756113256412661653708530729483476170638511272683849127060822765618710739585598493662616022644759894977870555288451536437176985397681104891422419625743336989547904413297343102073912767357570585039871611403506858336895132298568162243936828315679759197094656273317751016074514889099787603934441922118848989687510983574398955404212075706494136400574526275835807539275738497409198747332776402603637687604258524429807221951314610670795187727653485177313888972638659938602846670916181654887029241983282785594387384586969029259653534835465224894753943812996775764711643723821066526609494031175871726973484251311578289710084978171970479773273968884459895351157899023101903054594255724586449512280710145902470709093501137174234206206108715765452411763287805625368663821387879656342836303331124138845704938734101458249111924061115756993791989859907850392442429884427990678696288610583324320664893950311117930161588407528034039781884039753138053765374507803194075341036485005840426937673264070562633757562088131230745719046119786965036365065922335641196378540527884687416469631366322717054480306603361955343588253193346530324207348699197899939585725953102871019710128687862935116881300504199786235511849927542275151103390446953719483532582121948369415866918297607184873145314820211901379642381621805643437621154821845541307138153883810443557302757108281015228530204075064598702508537051735249878632070872205561931976924148320673044114214390825641259156223271642663586986199924449814663866538384264997889893362477589276331198787788177932289061641128272508119858163617526342241707248202789327275566485624211012909468071616397337558737525049049806557948751280225369023694134266581794830120014897156402252435608954962942662726669725422103157237397482617445460692494155906521489980718130444058507980539434670014906182554656223404540019001771312215789269304064989090341433194895067968933794913762354204183911438587175351176749689975331641698892487178928242907493466259049222513244395065441724373126289488474401400651510229510598191005348278967026426600028763113218427260320810672751206045722641870889317501223103622033821462955993545522236056327374452669298268919344391000251944218456294377732680212244540230909399156017017829928159823041650726245070988975472956563694081800937357068967971728797671021749500472316821977385917475882621976857603288414467025285057101413093765883128114443466984764628704224580801270885997664196232929991270747361503639395292321532439198062459858757443816922634867394322328466356409008616819278399377826913933616603087947697347542036390693901576173980406539459590379786208443376824024299460425538885011761705088790602521466074721909123448904348977655764121630050827634841554744460354581641548435709295905141852167398986318822798864507632513433855861209662127859924037480637962016848950447612452825014612757756907418308284997451678877134566232824273433604776731144492735801328037545023063243755153228858635194623868570531794185279193530015253497293161405858485579851633696758306896779959652011114212569905960942254318527360001419258271088751367411811054299419706955384547542645857229442700668558254280381268707785200959743662060951430294640645052338468869139293398133309643433339028128832590511800783072700795969419545390912273091410595224666735508642332134909512583860516357616510068378472006609442413213640664312431916663749192875119207078672885967377070006718715418210252016365435215387630786902329564660849746790573971395991259387029055561374767225451136511883831495444213314488363838518490266119417780714926154071735140006893884627848550435440471397478407383806595009905012608385144197983988334175740167289415007974613961128912239395597547136606911820859049536176566744174278911778774097704668540027000212989418646319912593759943997411593476323730633031324434602001846308332509333076804353570833447975549206509817296283663867045431050900499067868785644474565690510060940421819028581062525453958297518804544322886468874781723424172050549528917785148900456029734368374704918360669388936962518622203509086935167096402273096914069807439251145787693531461279134825197646597950422964455570271816070211396899238660504641235877533377910413556876569289878463048190028610633386427501023786249551456499498701078999885359338192219257127689376342031851350440997451609785107925785079102966079120847607092468477376739170823805689324379899264390964163606930275981788298888698423661947839066358524038330271223514454190559092246546565973881074517101789231795743012277184687401487600278046104239983048949972855886831784722979368090518073493398928422892513845883812843716184918510845968707254896884576350000994513057086037278119675448694406061149087014102704538981018336539580882698675148700956442717672689973877496908631382725848163689436530536070585114130587546855395445065833081615255652370737034747993315587736648406083671321707523767907055702861946595166814104162678244463013952189194580784543028704367899949536381848793964473261980167414747856624843760212686839198502677173398603652464843117346378706083975350685380359065407457894552034701737925473792990964706072218590592098940260622892747176124430027668352522042595707012915903559191270868198872953241958652270148241625460664955854055757921325299971045328709165406934475129644724657774369671503153081635908407192972744603745739646195753088839977818682675956747022199831387694052701138037754636727561229519632514377236014600310771280179423021016544296494351048102853813768507085286760087103459106778236304327325737743098201937277017395924127568179901391003537450369934729813453002152664010159710457490499712417692140352174555884980259880426896583930982705478817045470352359466490666288098392696485391850125432850200673800751571905841608551565678269359270885715178534483719886838461043147083685676836873770316307090077739083316653374482907594035393067333138881670250671465890749467929108890927912480757009319344652229771945482841632440129561542154703249478827426215223978585619031774613806893897283494128554771255002361759487398598051348769018570162117605061121289474360715542925351639462089125787275069915027670517386821143588180032744665643541164020383235727959178447610650548148029311421870052521264790652734672015535672585751904642900430368946110843411743432562056592071011484740678714199600634359962218859368982262025624814475750926063796439906160638604182838458657290537834270567761936040333478620136398434856352371661210828504928463316627123200262441437197097831360996960352413913614641100643489476992951662223451945931919483938285602744796920422961914733884319043415141890131728161976396621185449250438508552529338872571289466333099363250663480055951928337329219547455898034932195690481439969328455712180425562184152132804343175254710141473578927185790687721242893702221913757885205170525699286666476555452623041485999159998328282825012711711415293832417779708045139952762391186811004039277224502561694869393650211700170958336363037829567503827849648051319004361484471720344845277136945201961088198099671714774706434238524265760615415323468105868835852375658071026622910973128465306902469436345418517532290767141034228025907154462048337438284491930137301861907592533747317980749312049078228802448891068527379922757671487920481876223780486363078273010499505720727174285190079939386528547476068510786668991974643626983223780354213641403186956259914087880191669900417882425618423904522242707584510503849555911881247566595362668890890036171562410607957011273460165469553364179174006186444784836027572338168546429643260362095504405306512213332976518959755088321416657988135195783556545132817483466856406956925797307452424330492367739966533003626169495464541989607225611145984433627350851701463035256805073845549736097584086723461950815016701131980326250351001355992196176056410097248446038601968561233595315718093922860420369314737099387207384416234837564283925573090364098372321723673726809074939606741025313256074181754753908426535364517773896369927491393721698514965301019924099880064386695724107154824203803586831747766826885141919405856755961238727442398008600875600478769173840365487151449123889336222374814585295723649120111074428859743951815705610065894630361867133079841563493340594767649483440208382736504973047657066728454297753598410112705953355156676077554740642852738444638858648218776219835424486440269684825461454885998811951873767520454232817603132105033060096835018619892422895193172799362570790427657626471888497274471834407536790800665910826374838501110163862338005733226350335232221835147601126445417181123164550778060351506849511281971900937538323437790139970095470295989407133386792005285158872830741171850693275403312000938472574531659674063236915385147187089938040360120254673214102086783525651411052600118907181375045344172369996248957367967740045062040931617307126322338189415014324051045753082698367636296787068671161059357203861200463787041183502868347430229011757724747208538145996731846744053911585040022621136030155425699737379816236579244230521011242707220625327327524486258662892566549687082137066036333510491641846366592490394638549779026825629582197492679214391540818561763841793136175331966142551666166424850810374121659662967503110324704500187271119094662783968906387712562454392222139657995791019860158933521264933726550591098401762476222280516245403216820855239886022875582259397048569492157462128951720267658229042151042727022649109357616080430179023212479611140418118270206126788729090369338892072530371588288825046221148977571345303599849941404181812687504026779577726976246538317533345913232203814378810448536526084462801961881425590360573959840141666160051530627187580249467149901794224249948297050178730376574788026491411691134124276151177141472811482543985992656800876873839998648614382177242294607426946540742467667471852000694933055588042140052759399583769051806397112840217228929619344019280715689978687632947783775794057488129264782549677899297820497637364865737497403661734162918647538883021506359252004590555851812863947157363271318725220123849046168230302529556578830239092259065771700923270374037937159557585212504548811294129418242813637816386368474044875681752030766328115703318838103939548354778620332138599130494236666783829189265699474314657771784006008963762956461056689546972205769510346545182349940285094373024831613752745039117021125457184230164662553916905723523917826048608228992482035657061775879998431995242080364508198214403721804861747212801506387533591494797812433519078636589638669969405485928852331869292433979524983840206550428697062580352402478323184867609663102266170891463086581338478010315901160213457823033161026815234102239142269205690420768608087076037881228065990594236311157849135613931984203032365725637003038843403907657535882549638627372849558741580227728053888394999970971047079045464166194979934792047708357936924372156611178365945726188159555834536439852540982012646208406144253680718761044253070663613888907462626143204292867402928704696048883190469151893862738325962417417352260401700480906260897673941176087318141017491461895888207720257952425490936754954143280378425699000092555966969144247434710139448125669140629756296567749250008110767398001457766973133106195789839434380845430116383159069268088639518544282294134340604494262225882675244007246688148719285685986283982313523215269648973575772315619383015998986714536742936985046307924466358252932487557497181881019326729845054369937619953567858424685471048549810781577484366088154188601319595628475296342569287181009199745593545043037530218095880418931521167163979316646024913345553028586182182134214164655584233151621708537859570058868816618282605120898712511631275803775995081994896279591855725140335753783046652521042513932203179948989667049973839320308037733506466105553693588485145767998138671319877957701557405841520335694067538665717488487359057240473912412963121101848330502554697343454962663920012886622021723126562757113302300231674682307201762801652032552865023198660001839201445291079940366157804775380424611017032326353938061139909130874524651680652346203251230691772039654854758545369267916387311676652370790637358740960835997408401564979171167693042005986307929582317740032676501936219494107150179143431725112893740363707672249891094466141221459653151162212882763768073168372408199725122940320395624164979356375980762668555612661576469858767276266026489796790223257829297967555076264885500596866929094950735469485161549901513610381362256156323831614210610441056406867386933336267291170233885788779763736671568230748060311388563014484390387058767861618873620664339480628184774713533514692610848473544830127698832610878716490917810927938291002082903890996446066421372020418205884331650956808252275840217045199828352488100603135373771900655369227809674308408155189262113279547553928859652798727929037502927203755238553482852829161338730404807596157852264728209225299715967143780078186803997544392755875787890643346699787330323715993812263167311560635213677137424534685244415748918431632077538001568748145979586780658343912480642042315565698160832734023861561167264612977221526594243603722085982061848528285533417627955907406803442080794828277101655574078286143845049245175468511605998058303778578938642819376627673313118215462585212512340344719717381890019415183405809340895834920663865470560294294812779586364174263050375920161261952701295559385517196909702980102841235181815559321170030892577784878139079508012992012350907370152051365421793431662153506164137495063152155752180967524219359719049226483200805810085915908730447578124410080446716992026824494518194463272645102190896340497560912121854243865074450341431820049694529156693672496294365143834743823804788293478559029957094291917368091157190597274836849957025615093435708272934121857904186549681809594105245980851955585223210727327528042319783594031072597073041492892136490115748950519899728312086422256810466887279597479377019458747200969247085047864799561626562151989855199987579384507867734731888664469401197564816427238377801090601675730975779183629542681470670343055926013529824069451460496668975754703262439349127271821288611541433635228916071494128282522518399599238079542840858508275449562188842020887198288042142822717000367883259286220674690125140980118395836128348573706152997277536753110197921599813728448345518838062311058659567320915309731753734271934547288621973049280014079877329830619381512980436269435650668229946680266261898162504398283325454068819243358835947833654333871071145660366595363912960630124046707426282210783475236922013042697561622390383322429559835684428381587020873328329207049496194625768374168715506954504626664973662171120177676940067697512296765549487086743263643008171675891223133587336990152230854954531741447856037442887374938403763699176140935881857386920043967759093815056705093107358510020842933556152543597723122554009715095532982237745761012419271118283208355033765548801662457334454105565413762926010695892362404684508650128287438919338420751722284443229866584606070096286544610399425637476649298726902149433591590605161015372295334952915152804018712392369057433188328788299042747185647009860455646941037724318881837967863550493268685201145457984167975918894615337202132951522571727619402178317998302678128795331363259630452154827562532761171725437559700892816232228178546811291652633740299758722163971054711287260664693358286007314123506901773026936209034617568951806872080262869320971587100711809913396007088610642154429745463229477710299928841191296297166488963614071147101909821275293427719439306202689872563648965882744446556037209207977488952810871132444589961896541759787965931044830141449755517028863903059091981163689311510325453009204970306800291840705192311027948744922239733048701975209621745521980630970636988533128021474437474346495128258972420156143353552897051356919522579046910169426909932412663968654657159334030643189522343715640474914679280652945632803763089185671461342730213290810200829897299855310325776766087364381650748674590532098074803831290909268138504599004009313479667814562817552649561391472166762739244939317587010745469543077478315836788182330568867015159123678298442523086954301324655209188345807163897964903028895584272337640782522570181740721674121247622680967808132300855919758637499505653342323480838487739002659426953113245210436599514232695889722092528506160453331005484051257618701255260320216217742819191931761639934830453338272277403617884849300001203529408645760584069917473595306281262937298973029035292947650298499791025011920336352924763258051491324816591124313330173197452827259535844931940263355575467337693262871000932278955167568995262445672632995879202794437050584334588405897873682316182627972337970148834240594884512711202547918023118553605950234597185447105994125492003972064569496172505558443933027310282852520220547697823171211355659679293647230345249052711795933858307744127099138756090245662337486603626707401358702682711443348192315320217724133409455538553539851307878866441471353942233937867277707067464941279173866127688641857632412607670306289271976318860878488527213408049166361621708560904651561295286783771301228667155561494029945596525282681998820662390719803807445318529552486346548004123421875610023316297106130516197312829916040554101504809457795081913916484086812235667839079214902207431370436078032873954473987089100822686086376166415084779165916115246685405082958515194881909302274309867443117646324095613451336066280510102336244527412108829937916418223054620553718061064999296461550821547985911430697209377906468019405299318446808770195440827030621199405381378798730348821209784934430463308107108187260193338551912808158341001000383258772876380881061616056166959188710621464765938527884879775192519037958774487812064679614453521257048201333605146961353322028140092777196678487354978783345661127334744841449410057196057961233585556388261093025186044866050564613925377692930691495694852785881903184675829192287505185197640102878545354832163775180367846596520044697608937287546362027483409922407090435523582323231835745341762892702178099867141148151950197267168592995372504999208213866541196724409760842324795967441794990791252463128665516640462071538181506365443027447371567482611000907443701707298926511865469070846669643349216178837149790768318922093641172280387808477358233294630784186597819729120434678324684846150475165426088162152265373526256806502082379872453945627926140453987745534961596320265546142649829966598925618057257232864178215391086234541049977621475345643196062826996020644106128491350011319797798645873202203714596718154745213971461946901466368214936038933838036993348032831317207816815020271855105315590877001718113404931768639034950870674733022292085113160768249616760803038098715470621304458108929223429532830630102301155862451227325255194637309983528024140344209200020148440104846962669181043462267228530400198099951689370076306907686426065162773080292074512506770535181870783706432117132174029255287881787411679090956882189788160321193843466494820103035652180891580538093460770545253839838377739170686133081077065619059607566291768371249270798103504807342185438070563090453770790369173279123511716923729773537681740359190523258041346405238502441479177708090844443523913436098797750515748862296481828924325458813127029101624564875818357988723518772620373504034277137045528625612659490695501848117098756985121256612364320213980106768607161242644456686991438269987043426147880686182219363571538575946919066130196489854800475459373604971723649990264193446892210619263684227858698399366937861823812447666465076143372335001801838049550688121672140926816676219681401542740756377081985416954767813333819097729985559946709760145723498221531832003005617918896576527388198922242043417489398449565371437827679810594177076535955216930943801045409785197449755843649940344282505278955277264066769059161298122735544746607736298310558587366522772325416353151177825932089145282899215782041852322333175680924722629644375152084358422295258794864410859617977056719620206184888159716284638640093083560043543346472516804525465003010689602020997098235789508766372534968918283273863799185520072597812625774290041775413853998041078600781264140555615067669317779965884193406068439052383691891374675424582786432743199876423466859956394301135363899189046534668702493968884972246203061410505198182927781359299255019481314053827493889081374404289959434617003308437500343883602808463094614741706659402200308095584292324497073915261637124767025704132845666954960198526071002940238696582527817052283696848163172990933110099193779441831908359218969472878616053918359320513487035914244629224186302876740974890879934198452786438859617849014130289074183109812509426729957388693996209433170600898266286646094577061140008902273657136894643270648995868073899837870651174801332898285524314901097275295828064774669319944441016726305181572059175015292678334763546997513923732980716210628018145209180802469303693213974370036105631203026704877423474597324385007808232983128673236262215992247076210348450637383236355926043148248174057999465863616234538873390707257303815198183837423960349632562060652987124967801480220870278421888919402697170824635690762028296583481531997240805842531236490207933107791032951394810119726277438649237864137910118268676288544347964021313459381789785951014882789703768890781893736878150413056987055589841663023936342622758911480231282740327299558663223613499511578416668621526488219691547742026805028393815351466414060843617028495154483149588316008895483424090364728788925141443574320979839175629856971808385844677651767684028154247853331478705432508045635071903463267734216636947061761637186163016663703843514767678781919858325028107666801605176586675696048784193826441519583981877468552027657170386780391638302933086578937363449219719815440688931510925113610359704356576665513853824738190510729863801719223223776168226874296987596585097697484738043779030730073571329375180518208458648055637123663188485783150718380943280471891614799412687638415009060136383307143568714578855888998065807075383525045816794292776531957359046504999964147382659535977985044469372855213856140346119479686110139407750812997386737488503432457470256140758594982683882594288660372250702801984849329500775725460533387489202025653553788353697318590263465347062921157552341078506140886293583422379552650232298353612542133865127460406516243967293867536331785501520646869372346792344772150513952963776749293170753324712838937792627765673332848180980520561022017946142480481522268640863097346515990216049634870350010881283247457597173015529628949825790486110521764050508499645304461294588153368800532590029127176594492657444360951151052886746139871669735407048480824732037443338721522889531501433109812312454259073137265494337712539072457800888540951745032112299697900547429223943804245878149244702936593291646233591951058694028533903847350833397152222207894843819424986589981547154441239662414614883444660615755392086143484393706315327190107417348580677227548840735471992547589860770416215678508659820195980240183949370405560897618435812372158536310998836704490970652974162040980867111470474610711363962705755935067493886726727052571327830978613392201984556421506803383876677222093131609121293918427084831922374683688952566926189552699034231060867995082928536292527469550776886066292627602443953996980477572727457630878854697959264639892445671738287827655415069874324710517780060551774645858992661168042235855716195847992619440672362440294524121980714539951579606694793747300728783288039080993912704468767256575342553719700990363846556763938543275506883705273494455499002973273313890091203081194728151163586002708358067561123769176737400233629241727081859659279750290250454359697320659023893122861620037084133719492021327602250876964665471616053443045354128437962489820809528779903153632044053577487301815992763214085185450841509540035788410614840145628033469034409956193454465190845983890631242183660189191379458728964129137783812626003771871425291903248742347830591469482442967563038379215571864670009851647260114604294602388300905358096297275336579622861636762068524164927504210382789617563232500312766533198925874326040771402570127143779854909399781798824623085114434222167387895830412441188124845634373611494093324994227811287951736092929106869878193012463167318643681075949229246804613916457318916328585510731950885593054159900992728827648351288174331390058694652211628850241921929604231985544067293047775259587839332587505106730283801661365193132791232445683748700680362458264004830571528455703047655626593264044962702070705577238587806947391385281761126473209406778866301542628945000921823930683552478411424791203334859434734393359813443042867678964291009992677952671089091955785558165685687252649503179492783537307483427618931361602430350574607608866541860322604926042098878692946943684538373931291723433874082152013270733968820034738115256382265536632603742151584343492809312494696285001722626924539692502534335954535752749146504179891711528146589403980763280646966941357209317378473945502718519489456215495623084089306075640239929121954697603699029776645184202940184099662059401770024290059781428127227063506714870907221448825249835660353184468822629117549106492453117196341371400915061038262373143659708485115758017506584941570211124985734598371176785809138117046412509967878545840167916810360857207587731630069917326358684212682130983534474202324506986920535416951658720581660430128993242405992859831247172490597967875912960229692709050754191950132473496688838974855944317794483611859963027523973721504948984826009775917839473568330338053009464665427453761134064822862721150644628150548947483019233441230037153166556817572911401905195704728526478620904281242990574418408742474770081235879421862192910199915301761146535590930691705688780157595696550734489736689413094318843672947919354372497638000535968279175878081229668674765880220690479334128066842342755808601033380077831790796347925852575127052245592718369162300261895705170665391373363285060349890747973826208360910160582643775110727756188792010712342757550383278278760308909702643319699253949249435642961203903558964944769576131719515046645326998490713216774747052568283086771699766027811201991126082031572926880884025147844184572318630816388854475668161622116251462932223436019221226588378856651817178692336479089429460103730399412614357210982422362836296790454632249905199220005449378122930830966737108761298313933383597261983738184230958685745143865809526646927450184667154581842553856886112563187276512111818800027632467598363587028550299432254555980527603556773818761348988858089134694607702478782702419287016410638338056908710052382859025575201268607389857767427880792978141067059628663543045383104106949525452228253201169144629776066756310806810743280027261256801373032599325275453234801770389912744426476766979495485052264510302810274932692463281066598767411288726414037124346441376768202751612485343179333271465542704692146630860380433263201269407188009252671574865614807688056976844060666546016156856377348940492919523475400010394341862550783907031847548168891014880171901500905374939677698015095731027638988426381880671855449136653731460712789806084650195823119224598165424787926126276042003194654005704873400492029760603123201663572705816723189199533028043714696201905124911476285583049565887198749952616114544357105484356369746275641687257434234820831411630571381286547010679719411485796640828188856117535712963432925017514935419730037154958165957040416466363264501039084160083121270415531841529919664380801925458716287814723381088472474598011573442979700714098540561643314001455806880934415360845509842505613081880623732730293938138498165711634468986018360298585347603535671438122096276099579770333611815788557686567947135904788787917311871720047628081824519670497144505202820176786095775460326207327565580921872772899591085290801024405265502937358343250087264046589070192952059908652859514065693770152369023180699772038027921276059577817357504051023879329625084583784681904368338922196810608637108806927187273613217124073262494260995853752901678540683267794695424661120155837898651622978654144316087494919613479754761623076705566107241343206308877987205452845140985873845231401817911251163088994315549138239237841799689382575525429375889724015975593834285973310131441051956315658852433837772908411278865591432703483176424312867513552241891310951826139580503793851419658978275819554607497347018072968471372515618822290891521136209857127196944872251781922136938497936160417995356952339721691911520760419507743731695705771051136874665555654502321219810643550036242262619579346506573932022643723809772051812841640877459292946373908716892756718021217167362987577954283162427590035792539214763845478565272042654752171423857293060841035800124997425349383766613754354477496616701780053691734729701505624331810571054584931412817463867414204998322905411557811438752865104054827776116394508286275010624910328305640120029067531317184961365542985823641781027767504178491424406461784322537050204148654819220118166817698511545890147672101329893225871179796500349988237740864947875365366911445792737682025567934872378586030316725692000650036668282489171842896512612060417182731482289121031681258001912211771961820042601904056620284088864080647356048300110022915428061971729814283167571163523590557150031949258481923350337024798820108865619809451236497191690985684005591392334581086865024230974862835811068990516600501155917898997034331378685531531117858379128819129385960075088142492782417797246040044347419716588225842747357717021796631870370220286665455278129134172063796871322984989405322266300061992280474877140365356503841635344927912803436509443565341642918413385563416513825766093597193504391934646804992152333778552944919135444236372337800477151498760844059699289952967702532983026285725357650314512379810217949934667992863881536846700213628163588487017834456229384837848142337243105043078564790071619659200394656060493292310206627777410680397058796533969587623152906798463737582623052678782108353758844006153536719109037131887809809862804744259577341113607031747808934136468388923676915344137765058637676709243231410413909766423062841527787238833519566292974251033058979247115846214357406713454374854531850970462222184353901742902938826092255776269426808911007676754225110749991763798791525079733825446066538665231155092855088841508207722792993885994912592958909706459655951375549092755871526070789892007145266294203410918721278487280993590221715260429980035067863100728138143657471062655138520816832465535136277561886216038742331422458726804214079004090609905368784449133226083528135070756617923773097191215762093646538388969263245763652534736321387850225294978512976646874837272646308943252685091683362858085467420300239926257587482410986736517369004248834216920598519685361806831914670385489080978308396663561803642124878390884136985127864995364342066143845217825733669997782813742104874879804174737463054763613384771479028806522259972072541279234805017364035800426262455643549631131794818586053840084669505265966477713105391165941044585560245768653554868622710059667080633780495497358308025218342453114745184768720836082331838198968229199384429951626683172727594413356110642980518482747327874529012562311078759504416597089622238081129209463163327718240378297793667855896730722688741809184365427794154430818104984418929775146903455994723682275891292560981800025484434923890505601685417587282098815894214870110336582090447768755809909602939330079140062188929474437026993458893971217373015060280873474107817795180133388190951700584407970286733998780843078297223589727117616059590217248001495519046778756153210971077245153356688908276217563259613292388601811426487105672393251263999782202538085075804756820866768212770287651566935177541168689697758730799142439059776639830117994172507057053750661228757631178764754863805878997687305308346971117299618632220993455042317645394139691376704571685077239171246303675765836641892518904535236557858690452192076608697870659366903825541560580069445915241295020060396318586258924164062510047845954749215411135530740069947475879560690071046795828526024943307502482070030957420231343603405096709285569471308781152943685292978140303556898844998654609325034341658746304132010143122816142382812636878690269236445661004614184999445096225671283477524389960864030713478210375573688851675691934350911578082429768220011902379749249594182665577147550674886458083673314294728019147510051702117446482661344102482437992313793266067581376811033966581983081794418259676641136217925216514100933871848903269650020810555648972397565941351508602555443268249139252514847434542563684910169257928178134420836248825068963644673974080982865249892173419636733539765675339697814042925069443945113583942670386303564271498919380317217013256591830876364218112656594020201370619321264881086333257419518894486915990450505237124739110100427948270972699168699502076338543377788568137866984736609255785670174684588743365572639215211622841342042122181928922376197389065472712317527416151816173735761969894521220037655583223317875021908519273846249414962793934437330076498114742183443480831419463760454551902811240308208844789968664575412624521390200210573098629699410561042093736531598293488073601600733452007334737227219140644446780367418520977758905822251011373880931940943747859259067282438524845220831760453136528751132250456615155894764611664814284966057390447146881313786536580356595119828927958783460069241691183923645948083325657477369195625350212186700002548851629092873662927038681431607867845148424768415109180892945836728082271535072787357668637235582613977849271640843411683777676259520106635631908991908683693535746028008309922888282736918095478748817187162911578757726209910695445716464305812201768425775613479932444494609166950936612885125736816484423026641069137792642356721373222236271031985566379717932172591833338149387147320168710620828420131705481213098573945220780357940738685863618862179220849197745339105880492928749427892015966611189811122382023379784376308579021493583751156361864932020167661978462469621930028910407669235339736982705297183110424846125832457531909439358591214608239629655261595454739493003613844982781259755713041718082139443196425450445777030323121364154967217899788337060499954157330255509616484993439408679161063909569694095333412099244138320362509303755474736716334515727498340968819914517144341603049048013596538849947346772288826994723297892688561568789972531426764798689251566511368271233010538411056875082986748722869398342369247532501781720385895195362032151743899474864116079586969870461720435180071535983285340285870417577108474221394449097288704606796618008862617824117108506910680017878776108491788071005352255128948291568057872988460395393841074792373821876713257410679906998663995605758132562200782095233608528459719469479817835489678321097971151114991910946483798758686727800531460624057369574109796488831346463659161345367329794045593698351395593338305108456818268298107679472656632901565658882730556438159481871494838634840144712964969723540224792844934085808450218486464212651928797059156626012014377887362909621762803806633713141379552180197623051515809994226224038123695767905712783175279610835145488075760647273179500130433907788073653437264997343576192667804850346522544463407717245577612481917351840917730788632966717376943040733323316011019048307827605437918703961979261766347653514521407882821186429805507957436049596958566892516908051860396296015604119761636350862222596138536333726054248473604652776916946692247196243159189137431925239868340383058009090149849827902094206883680933301495020216147499627250138177593115444122068363074017823070277360533255786058956336885333818825647797557293005162115965072764598719602203920464903906971731602517564148105226340440751851859064078010675844502563550948965449724016499170246385731719112504827308169599781097045417858024056315740881318855699266832142383301054246231100344268144268223600145022235996503964334883070053364313600773610193052952421573401308679254877243680765332669862968952190372124790762658255618856539437771565065757466464979863456514442496268423560744594228144046942125281506353941542687541527948852919703695929337536582617548635990918784767331164705905485887414681545084022128027755994124625919907489233371164129697418520161405435837238256117426140672338767890700780682748950909227449876022300578693450125147790779741718767874470885504350184619037597436369231690724397042993214252837379206036082893510103643805220315435744137185602919411750644031786931497766448486484692963172593851247707737602934564660078110646838297778981439726059651997766180732172729763318544853863498894936586501647694298097453687239920148766396828818353732486409171790793637607420767779655501045360689449609030122421924911186693556519958514590677649841376918244546045232325424213201661359179075083646155259189267920682292117808863937378460404663852777520821437267919771163511496733697506432497617664360785888080214465759198614695775321207304911216037387999040736639127538375575066022639952519524566691601778730676932712325710786211036853899397767418698132890003182305012017198172443837155193470979941306592828950832600561828380240802995399586796181322350327962569398816219252328212981004217636764299712009230081156133964026706954139211346141186776707464843813236842642403110214819701061491757582671057722156335621504878344503919458848153532149897215729359995396809007789694291024255983454796855356419063925594269157055416133516510971288621397845761252430751694413167758587837271251382992645153905357230601799519329544750658623790312092029770647545068928903242995806439756674636744975958864170792944878563900980978859008706231713031999531427355191653055662125169420389674644565851737303598308760537331372782681488001311937873730931365087954012185799659427091934275917608836415194745755942335306734475162761368783173310927538719505513324069273077348956944301914394707089464142714199869276121618720865723387649722178914687731909823253971720343117557754143484781250644453717624500468886136209450405671493040258066345546713298754919307609228837163964648357616190247043757149342743322086082007604864297370943123804867748301914789693383954932932939179016349229554750441832634387338745102462637495298712332580899465593328323869135738901586457433909860392306758392349554301447639355643768110881448736742389038017313006382048395634386163935143636249759721660033679181878464400620682405356074924998075794804914315571581682652484962266752075319886745465630483717736975301951415525507828255241933060710248444116217388036389910613325776522814704327112325741263542503296132765577875228355914461217094189270102138604863429744435788164631083516802104798352298133339197062690274955274537144825180699663713273392881420270162296390372112659273143937506124376221316085289287980067989155245341674576259008876099438711840474034730471112422880335565364692646790052158381436432381316000929194564880208957980811008802911516496285652041143241364254199970800969229492328075946888762873626439827421910059004348228437996673611893294258995172284448981545985386471182269061269799960626614943067664027329612585777972230719118363485293959552145150527539716691434015661112036271553823321792069474067483383766223607919315647187922834863652757555442587140123474870272836772381478905849718860817936357862810872858237361714510497040918227722562723863412304762408383994477714430721659728168093294697059221955691912383173985148864663552842672477659694751442716216570694335279462354145348496449231729529550684231230784960603615442838364244811000156082296881139972947476899430087345053798511907094994606407035271462693364299572335834270300298637798440703869399385023798901765885400537383848508221761526140307830661200190411688566349689016529970707793390992807423183401609031280557673334361087920371861198842844290761911788841126157230737347124977844516575282632823626974320329051382881672221541064305928882568605773870128483652109335692218955498547071560397409966146958239721029575986604188686144118321332440303446857537591688497757073252386262745528070417593422324750761990829069068351733698677551280596743317829231949355946004437493350750148259957416099162297410165971605675996939518263911033238698937387444519779098130588581425011570155978835187776132357842559031909076640271946287411681049868269242962148152452480338922289622320820205545726069311255835368354197203477411696326281672386658954854707720263571148970241911768824164626293160097738351987098943551113261335797282004691896701518963144234002458671781976904184063076258258537514440240183409513588104676926522910001401188510768930358863494854251282344395176995901353320428605609197323801091421075411640821078102947361891311874563037173451214061580166352845767798227936296688508207023642959729541979815870056724819680868414179485385334143256473504495697627851070212130396873381746103930100499774935610476165177577007788201830049002307485544324412774464496743131653686703230352702399598853166997921197850745046392429781074939128873061483152133138822721621349003702177873604413771436560573103323528860340177926360625953213733880535348980699888239264595017719664735228954089364962263858004080721007308065999313016421954511738683981029270325238891408556722078579296781587759436968290283728102423502869155128055582948751556198479346441660476148547657240125110182028511602712844407524842498819136283885024509403844532391639663614125538036318213155248975386880436676947139325189871461737590592514988296637560374093590588085375472392490702900011969573957317392728930417228763368352325136707692857314710386256717414261539454081900680177621258403566526554021606658197989310527874443151350905240145379035690451893057427600653029891987724726729092268279528689819551150384802620163246007465791665503217775214215474732000733854347706533796105405161597397875338977917715533965774988232324117568375980636253647374024735360479716934420930206569192111435333894922583751886378149917536681122968823753508814282614892593819214942001668945100057979111433159190533255105701726028918383814837407039236152520387145744792143785581937820795274072943625837816289132504465330724486344705800802850419431717076018882454907049337121635911807061899277437493598945772537368535893889507413073725685006241527851376804299730148393715056455644202128409667521493528891357710292556439922824815691222133161665063277735267015598853929387920321323213971280982051927405008152617487889064563414647152313311262998622351364237131379042449232432649346359293371589118274894872110279193161029465801498937804616270265996773338318621336644190741304883837762703661944398459649506821117450323287111286573081564788239428022465566392592639501632032836252245329588910058803375132507562204191440483271883654927832255264496630647549389444724548899721573882479922425040639171882223541040870397321312567378619339035522995927543242553097933932956571679032685215189915191860141922772832938711081750843655619601292004823002676006690167131533240224572610820185385078785560021247030793819297361832004429220203437122891807223514701584858116340350212946033825304196725124928999300225465730485725733258939552135825878350990136308948335089182035745681115232681585382315540923658748224380013225339465314634485710173836319379624929133794114308971690557793262396823457716657559474993223910928745209042980799724296009979420153110274995253985370729532724826891992303107190023475667480187102187525228148775475286931196512603963157920465641723942529124547017795862619492671413126635673788382761416542955970489952383919507571436300512329501507277622771652855719534466848204533836559470340676098959548314843288374632202067917675742118896648921748640346008061530406777220031640797526227312190730057776751487298380874760416858927867430827290689416595146448151327580190144703702569353193530966907092950043172251582330500804841168341219605778549003856376758366155688730292060057289364472686781909509956161923736605176010495394993560258580260788880426182517666804060382538430361104168602436846480773979734071931716197592394529928080125919888732981574432974927545425385577611651990346108860287772667151659461409921275475483268056699653017677964006698909385409012710042936477132490591112034692318373612556116487323686756161664066994384900027911134602840047702410933121828544550061042313686921818613421772366286020951921836979631026345926891625967231592147879197231534468129734637729773256769980453234955642295120505582647019388644798872042693869162581737323591181900931818845101987674564971466060555669341414611196718916376037638118240323556756528204408215149016912335656750454473267289997817899373015502093456281243861094766176359382337409696490239075576697766805248672365815810417952326228003861690074373498413235426402298680874526571114248189726783629823852340106943738401606038024231991442165123500422371481933870958697752335624589144730009060847909612463526536165639586167770788439301907897273437959983927908701803323054841526603766347209783688948297114634694158919896363379281909484203210945248695621520682900733927586880744040331044784671167539735256049689469714258021029653713905787992558158987067897930040621359156173750534992135004844622763193670110261346985590958273523797405842554595493173348205647603092952008034633518653243720840065644693212242922853746496284923219500283074801926281347088719086614628348382736273928600599649918254927216668235262078152429863883401178116013844762965323160733510817037884357621487461457132313560045390461992846494191833317981838666093945777916682132265383826475585385491403206769975157573241127332061955916754199112097230859637710079874568753619807480425619388027296363757183240156831482931118171300562577688991008375265990994542505332226360896746388344711164718949125926279012698082196244494193204892010695093995782777818327754240681862585120549969831022828880301893765676269411023771893536564099889361541202076772017656923328393378611796078400177131793420972612027468094637772589331645517330550331508660323573368494669969781866341212459323982911458440729282468335361468252082760090881247235803670248028683632399312814273064901444178633123725325992609226716188155724129894014277788218530383095363002689710247167561290821681722457176456638835292098370519421672379367615916422058067364670355196226144227299229570748140075769483909640239643218173464380463819841957612334339895412021858583106830265517442802224783057848633750927805461009671983590462744468883637815078881257326873028522478209851924354162469180228035916688197319585395359990001783864706217272633906741049878716896342833461867645338527842411105565989373675114942580383811475194932871788106586444951872141919518320653369883415579407609104833562480938086809902796933607669555249792387878598971443776862516012815872639645034692771675334110395646395168467920433606604506135632622884821596744348808684166784970542945306111296746852814437257660612070735195329659427442828970805549897600894007645013367791064228360686076315356695803957926064302616941431327413665376913331277869025354594292520816250207991113680460026874066827248958975974538137101906442866061149601120298007040126490338580995787531181765440862400973624413463662358637203129873657424175890851460181817379024237210487006568209783994682833030016787977092272061108388466285395540273341303231521620841965876501989547282503335226459697638074076858059887859856166322958429732708562408813683781242513252722840827659992948854182300374698906884063847168711500479483089891435703846375312696841361214197977448197375287562286157744495699142066081118905917756812127918024252988160212456607292776036584396860513974041890230896825994299150115213124339529046970533721739492994342299160806567750628451330215464001993646115249634325294617638789830555429280962833939312638738981826427187623926325373665582443574054884374083885572381340266677943293398797781519673288229408859003622393810921013706591913055438869244911327526403096464392249224201045961551857082029297129769208200812744238146035081225749379209819288758104576414447225183433914902705528347022878132242190782006826393822456025177251091597257121711209260225588122503077606228495027260174250607327216281747096426329068682374972968801935278482228068598154761441417658572721516773552274312911766439915864743252939141737714568996801273691175295344155666791053748639143036661617825630378060909675118859927406499954828186143111483665882421649959684835703622324514459223081612814726927738091063326563936202884261029773708289956718134501837356026042804430711282862144400340128809180424209622444322982267610554788882433174969876763149886853033162010508396370239994516817075306686233354986860072236547552052230567429630488607724665045627682552697059325588759658194359657987506114521906744645943717260004422049432318845508757906858381836133246061523739663446289357439851256491085665260442179542425314288011350723122858830254557776522357238134807781715783154320581028439736965431190592198453331471478694044628354667131853346570158841920692043489625833893062822249641762795595855353012610074302919115417615514244396181952126646370989968868994869462817462211756807274160229535871598996612821562453813285327484382227032945011153403626135779999147929863343774384933293408379600022323404599863618530664119666903951849486001792432477088348313030085069892717521306576691068924903761414626282677258271447166561221662823576718951887550875841168405226375377433976632732371726617199205776005405831465979436842622198631915839723405483222449662718731900328920952711486562660651817566889865468228207943354777499755753659746926317574532568397562195079958469923700077363972883391780965375111458956381378244469047144117831871973226075749161432174961663992232903504944244540549692696820469979449109666920827524086350715234012410970920681991025303424728252247631225726261424747357976278036242832338132624640353286274478723245844169828071261917502768052621301802476695411609044346191004531251908693381796182914267363161811986094690973539299240018662786541195351120765878652038891696275840697250876651483459535288762646442063135867925060811814249867428489349419082119597034632201805760332979579776309382595036241114619745091665892238320516754956173321957880994420292164237714778978727569984948395100223837635555242965512968275408330047420630109309090447303318032728895939582464011883752215942573823868176146339493026015932108060412388807807641136780253889625239797678711911825568742501998723015126962625522360208032077927919216532844636530608562130325560941285145110952513899504592853240989750152419835133104273426351370258433297763081304441698018279457558454658172106035721122863835040054391127536987537463029704633801227264507991804049907364196766923275038582381960554656812010499975889631479886114236891969413764420872697127903508499100393995165606601563040192693271986215619048192204350125761368587307978998531522537455749815429813682826180706641191036199106293134864009320801802840399067387944071522988885748566593924383597286940935228246564173014830166693089485425260492561762097620177694699631855913281152593351079743559336154870481356396849431249268662523272970388948795380231807034998678296593442146730142783144273085008901595273807201105519025160385842107630110229765036757031542080022155364071668622480669464286501653634660135866775911675872943520019885833453827605213052104860306514075521458546759723121600546135516057851703394839513279748562927686799046330353626748984824418354431606336788792883008997267237868778903904260950841999092492988338954416729692137836165757486675602036761370122826915080553126348008742431584588407881573666856187690906042090499702119956295047873052792988312604303479603396512921789867279952201968638691495505167607745983616658237467528620028516932465483093359033723747862573889808009748378044390335710532236550273005075960588418204363676499610967678440206573947272882666042565947781239279495515215290093210730402457862078209329033281851950375366780653001360522084476659483235581055020040435390305400508019495107407672895005445787197403242268246885520080607389445072489700147402514607895457013263678050276400450947484713453437886639390108029788209418932133914128704184498622446440094880866134488026402199994480430980645694812594017641267575149865694017804857548502212976418844771911513913621083667259428308656829646796947819554467670185288411833141743211950671985054741089762642028269954298928805044026778661244635431954991520894553567495550586564377571115444516796104084498440092921176449323709806182607715645708313912826007644216981067346869665891657424137830617397339409800293877524575687434363523696604794921258884095536754403516452081101897220657142678973966878949253823106287141891112947012576298874075655574905544877321828551314563997597651000456112841114342389919490695733151831872924137209806632607469110072652132515663446060208752025022468780091284988868888954472036719948369509147049987418272602587214397110089553298642973221812039726738353916574339652209258453302661490161504983453164886095712289704335369796768476163073723836212472513541675065276051174881107695509673024927536804149923359214768288280658795769937176669632235220620890466189443132777018658652035606311114042214100345333616520970849954872731785746326156982175678790947751207007225571564182590924543779444918161418814764748616937157075999292294542325429633916199278621349565073577668473569869527577504412329228730668041284318813328773782403746681407291935904796710520013734041253102992099609025322436492389401754195518481628766066218082660936744391139297543861908577042010933598272412447724193903505205086161841786248367861481203836270092743731963376233923618867787786967477551074742710630282627081581756918984820264236924086868622059745194944164584847718872227679254859665519418602844805095367393781270816470240745685141941060296171115011060437798753308975472584619754252843148506305690832273455380209108191782643952369658882874494739828831144668115833863179838160790728324443528361531937690158065808968352106950657004232617352904785506377364068769570989142216438848992484604024192015535436098376914105555843475232538766200872069288324970751758966807973155700549514417422470902995993779837507432962132262838998458886665797059946728277949965948304770993940535895970368048924314406014043226258996229035137546045148254140723496214358997603199729436862900598931777945019293640238633526202200108914402982472291179370540073124734217767248472243988734417786508661051537529572461500041445255276848450966807108625426789965669864477444842786360812635706493760053790303389995313347319753347413416417820478035078367123465411183976724626501440913888098735495545116947824998680679970327731017870735619929034491799203811170714443897537746986042632085025530660458012237519603027263525365295906407120273593006414282841839295614283093877472557593666789666589403926877642252865280128475558229351392690854903239405616285750706429830528505450746609412144492022728835643522190559916139509866603674644611973123488199048621375505877483166486162991875089026640722125056964852389964624393033893869951998736341557382476455842418354145342492885435445110549663705150517912034365532573759802216096140908487291001822184094717688247527259998894007020941776032154784053875039918974723848313838440393254201899733103955078056124945605114088362105767082323161436431786327459245301838516298651934624251304958374333830935196177105549197279115701944350394308915785156706334654617825280041683175231522414128416514290685940930669236334813041339647883091066776276270448387233569992899781417996034694531639507112447558674292124864610412693009336989642011278471734794398459865704842986889691989922257677025018536596903582981798299991648602419299374332292298841296939194517037343747681607883786191342098105532656719153347122687073929951536775804036389090020412033098317840496111125296622204200069319885803092708706496327379082308980953249377829560729588712672030190197608095977039586341162108516058299755671055653443414123628186234977637736718213369517349181454247048389910265138982575565151610254129712436825187405964135714497812779368088328910312734018278625832782557315566880312291181387004274812144070500824502173687710138381223201261824296499049629154621744067921545916132390895393145554984871600814763345114829884361392905672069627532861972361607837192799304268811329565081868464637272659659691588585336223039955427257385403627706229568549457746510939880506491629763596704719636311001626417040223632861252034862211881182583766227507075237836534473831258148070431826743009050527258857189148444495648562967732919530324512572483462485162113230711364324910332764042811793434227348958391677693203851006440664710911702357583729973889126220064631314502281884687141730172954022812404331563739524842707691903951097687190998871121588848241977218439598955931286662783539655330642184191295097361445919455867513618543133901099883603025232415590387043723050896672392967282156196003299366826646486362020240193508801850409799287482983356070404058410888029114141424585133387422937755568525346776828606084590565746944099303259830091346025405948450584342205289616599369529496145653932829737234887526642880043984762362097121318983921372970930449343872671995665443240987274780610675102543426264345105312488981831901336998229583659450375315961051807438904726853005374862121851848295722703386257857536930223353233654639211133161037793959851377021906735492281992627771320898951298961068577111120296992184230239313382955517225830252042168177292022502558687449345727085334380146749208362784949826876972479671570333932213321079779282139686732456007239613340476800032450996264816751206474017385795986942860366348465049749622722046249500880372309347720899706970125633093577650924320676467981103777442998705616723749550052486496252396049842041865067833170269267706729837235598584542889412517251829136799431886199391298122480475152770089358345912885911691821120293370317630454934529839365039661835370912524429860122555893428290523166945543057759385188761142392014187811742106827786427540374285998681847455457362047374317849060144326251950872907751176013381765744529667314572595161643385460120061758612542652855922323891104802351951528843895481085941803533055510443182359528030631300770791761368933749873455427368945731496747670899863448416626248365599041514743360747814049580558656092634162420740992636181733830282154832852609238012504653223038265139651728770636017897561189984302882876145137796633645780021850913699459906305736554094868691887332648623469612722498344695051869755070393054897164824421918224668924853966140450392396950862854046099901413911259419412537586179004247805469135094332828422991512013326005118366703163169157125341739754756523580724606298191349157231822942218267088368078882122758970276678931087516330297072269548702625382255222174857072407807587547712357334866321661325245273387555872262961127195137485627179680890626730368211920799695740574264186795492674479006720287931356972338833369594000380537072262936507960363699459892283354673422741807959155402536630541792497515766637521672732071601582335971401097374818468419734476870098094400470637415001506538693819428765551089733711698931273071153039031711897794722811192098814664470654592200122732542546288271573090279912291525842566685307833584921004902370752263726512582716543449369905448978058926298560162927981361045864985534339118459969560465149988834112309770059141603184170729135691119746528410703731931524860266015953714348943188334539231724281577205494202541481900658662555483841822463269934273009977129591178712310854942685503552425397807803738729463974703511304399410542448480940338518094497655694209394402829983391913323254016454426948562742292338709284347511433972308744215982356054021799709672690388530451092325678339437680992335162088693555919109575780775966728007858297119788784024545443868871550177782245385206886553306543798237422935063302083252578232548718244439818157511440681403602512801743489080553477688398875306183226734752005822661799019952082443216090426644203465303972998543364484256521578303159820461425963978494721537861915653224840194793397225262071844886990047948493441655306790896022695462884454041729182658478695749884154613109839543712241018026223490963510384148203596005403234222208954225280649635943300211666691336466108742013112900225491230676136673062845484342795916064687225517346413789045406626460931345854476237468344136983798483665853496192163114384905231013262347110130662318846714220574365136414777973790157968931039669156869601833013927632532771161755758935419225492661118369604580955502482599292827584213182085511498322730443368849946525291805429206723552223079552089300353141879086769638567896512798117442034135130776366634683903471824644896559547516572983766406880975041996991184588310742171617038220656257914391953077870845370654728422232263623328416476662321506663943039962363127461598006127219102821582737759268786999707444476478017710271154947478443310802738220829182746081752324732124327786445948630502228281848187903064213862690444956635631282867824205177407241419016821265640284993299268735095557288951516079431117145880192895095061373201000362151154972803098942164402799671199431867475474464997083248056595527150842633338548349277393396232127013762196461471842740471634254072278494590195678104064623300266990885090368050387393231315791831192959076782242784554716902480247772784004357596228744427140776613555091923433271008096592971249943111640921685554833922945872180812422506886031305533946712651881821176714210324017278941542570816829163924709469360690148558085417568018877193536018739856202217528053349313416880642126208866186281980494746918424217385453845996634161518129411118621866333645881653625902920730486339232770816041754561069257921196669129476392421042140125302396524532280548295251113629697354085470240804339011974288899425600464968659929928089320721757103754051328498113644763940354941432809116360532853959729762794195548709602519008189931785452477039454729090490921348822330480469231750849930319398786974393506093599979381163183579366310892205886970827565178115911545761397758609674509100925505650930889502049876440284675050977378822780593343921867618670694554412834380311886134388806638727903037502559134396189152062447653127724728647347648673489328723653225714537040215093562313617989432961097435193707185483016809055246014174336270542150916763259248532207360869879656149115441252690707781569659715774230040028636838195364136556125206331705486586258828195655398676417498007926712098237635039234821844691500503491011691152408649997957661439109756554172580520792280394978712971141602234033497133145976887428434922289723017912919151434807105621969017909078886729940049940774208746657631610275370797913469849167694234423627564064478669942445347194981933832441804320586486761972828437549341288895637472129640480600667065881965502535226119303175799074499354241051274366654087332403491826021738481615406740621160946800015524769707310750640583758864264154337925599882759669050409082482405828906256071773935679461544126018294045934335892710205611900980036311166087042628040637321303129677208347467296356768289924427073118615464288314172667192830585574498936599472113020833688263088251215010053260303996579807673975032760534318123119165205773588193220009321973343955400624576519677759700701528135344778090183972047769659675331967836530016673422178205960179594948836242776311926276075273486449573041158035338117088142986191359500541825087993919100390477435420912805761354315729693348481068284414863465709354292110012011580485973695726402424729352321741939187936192915160867196938452573923281298914838493180113687645612111312751853553145112113748469504343912788583290579607973904405769214177209555482769468562985113174706962301050243915965567810371826672003748110404035734121592493825295677947379460967604439850606103843686487391713046275360489767179806941907541615518144991232779158589227012675629986550064983328253553777752561169855971824323012947779488383967158253273748025049021714697971638768614303176734292371659179666106957653627397283879753462761634315491813055148611157135391732185101740695309923963799802162652608640112853931146160654292889522944521700879317420468684577696144088771192211923725658368758286734678114560093146614082327372186409381387837586661618997465921368857505908198789036088712963146903615197113498956116822324807661179637797850030369269016437214619659430554037353044771859364929878296198610428452893834873367293993101027064227118105334777127607850047041111995064362022345164451581710700215123914543446782734967452637844684359271213950789374122713628499970119085494561739610777974701241878773763534942426330684681761383907953613075247896956872009713168722948394006179748642093955719707190806734466715937006759482560095869385787726558553928937493079499338393001945533972592263738012379311815021553632698649978680739905406732312238233044664904177203261273214435960166679348183783894733754772116625121192600315865517666639739844234599159929902111790344717129648196480894648746199046107528489087026248085065479443363054804064179406919705556632448669807139457937066882154442728996884946284420895833554829701693027008710869423242362099257053341041094721427556829080125098879056458770806884059851940563016856082742262469036140094315132761200991799446848178730021877766743522172810623414393534536728282172850926228542758054633419590759368226674564824658066848783719571085718306446494602612586578756870698822160463107926206108061950366463931537982774529551005099304267215436462046527191178830089746726944904006197581143974927435343641057634205590562625713526397917948868568420776780684743039221026228269035952028776855848894776559903269877284051215086252150330876654723071418769278614508795862821227697686289874704020199478916486487072919364700491428448577973188385548440620710410868900148299660731508085044856072502847722161337351427204509164830173533441811595463362902971714354921915444091954939396779743226787291712097475863638833480836655425400561438489244254796182032309126331383418550863986665734551630839424599645047615524409870449792002472343110297912456334380238935766327709221883095555212736462326627175223739699707632242257232441940793477702162680299678594833617789914640831386963173947545801325743642343178387015972957660211922447425654066653502473272745599264342473326932583562424336598271543540141838257891049298761237194557637078629425523227608802565775624218298124864749241360690322278977335019032466299860035321541000772897733108523246086858008718288408248973017530172923776651644331715455979275838105718867142075768122725360086706724152932653100646823846984224344048843486338864627917081073064291807780723180705631343213208385235672977130172712653541678445703301699322484664722485450732324518022288683203794029814485141143395807941606555560875238275508759440767401445125688247149629149980319556952441890006033943092295663360914588537148010791891520305549993802789136960752980522838814398641004149896305391501002026116791717493150064371006997988834401905685691709151963655420026824386192898841943883455304466762690302885886389723061477141817578614262030277280194452702386558231126693882312580702120273943097036719045434754843360642210846498251277586178729710457423635191020635626847435737559857536886543475602881319519857199991183603617409369160931690280434505791173343094729885822650077699172177683587592638182268794082155074124631667997591827027602102673560590993212300085937681114159034917154224485449295850188744544375629364406037983932586651560670441920152565688948991268573987778430126770608328981015745451516026255492404618468708359751789683095513818222441500406959217952835283123850760976087831708415340358579025718319989032397756750568161761085139807067681250672675434140405753280068424847801512665971760137974877231073177949110903142040268689963870201433308628738669991951123574475983210789080044797300539209918134448749227027743769570592204855088733928924442094606449807422322940847954281690922129769549058432319438904016830180858014789921636354433849841266901303575849660048586335759155738970643197645396911324620507396873753672660804612817653548119658237513866002706259045780591800030413748308312755574631655299591034534552021211754051180021541210177608622991531220681273757615976375557237952146405592281874728481866792568677040530948496410885164034950393307504637098839657416811323848622851213591823221818771679059297858204417020069475270711464372815683892645581028549872098786521827410147636881024330503767314663065355314813763521016934772870865566749366618915559878553299831402078597701219456974066765314186983099753335112107136488859213506302182617458916504226611954304812790021376133782391872984363375775826289874091731368148855156993088632552872990514250089674266398749974463518068683869897741120902591107470641401403379855244143831265591406632310789325675562159930497374521817668444859822916431305804162878933585672593329104946833234773124032843156169936627492808753074048616022639612068190394686274534033033528173494183941021312147316468033077850238863228760777374969943388965759685914143649243124094813081999348093921953452255819598688893407969260256809407565856094111645451899758757820332675070999346786602286109330737231583458811913670451119692508226054760165466001658165570045370891991903213209240755549207364355232441357493070871704160028914098230605268533927877946300704891564416319429663994283695495462317380488439559021486663486569478708007788381921850899187765938935193233976713930910348695727289902648197025471582780942188263389006547630798178107136658411913503026176434988571733263436205549551069371041231148259805055269711608120589102729407873729766479905820663845443064771401443162903005627362385888310530173849215912543742323677045507236330072550637158423299052739782178527908054533770433774263490495079001672338151666188032179407720863261109168877894433559750513755354909689642967867475532903223559092588789200800543165848746455350632615347276100117535496210459278780130612453751887250978168917441405486780210778229519635065260253547604728326522190081620372567537169690018117489417333562783452123336826519171432532664044645290264419383563525642703771527719542661125327722324063913874988284412529229883857429491450896509647135715561759818798870744797762574681210273737574386286478063616686096621305279519492531381794782241800478549495931837324674071826723444940546600584605168265446636325101859467917745018962860254644276884862294888565555521054675622110839930224488318567070864329879533152242137841415932435474128366260631642933701143344936433986967986575928542821158410429153555839667776713667473082856563691901115811395996491449927126104932085894117633231733981978953232534785185385506377914872804902780986455364052849616139072631427580707789709808603496178519750213071785083020832160146949249144593845489975544638770703831064742194133589903464984611601803703497605219298299752114317111814478555211081732897175478994741137911901360333057728564701120016542801493777250270389623394762946402057519899593279775840170584676671663073435109848566307989174174277805244325919206388448692612096794327404000936959932415571642602358237413792505760984627501724392069595582196406648166609999173987663350655969675429159466621844170204894095890530293936904708658570853195678896889780357360026733090905859746374395497658285165683558443031736985595216187051706241287465287067361208328302891207242407240732963232957178405488793120765942003528791750990527264255571328553101983251928669408905792425968740730641898380272085944192513791412487665368116370729479715421753309846558882543215874083711510525843903159744625017004175914310460989260922531590626692152986054432229413474056703098801896247684018064025726327697622082651761704626068809055968849619372656389475528810986972126664818395923755643781037776183771794386233172267452074751172624282487258081139538602273859567233562422125630277549027534605793238535920070802478314549486255505358848282976563665212404181924353609801564666031003199936211660907161362383125567814601409884341419073920493064565097657406474057896567078072956677681956835135106838871988467327347446005326882703612830475815135748855830388070890342464055757377246802788435471838838807513974178232097878133212588787396704095091607075239134394909146286653997595355582378742077865021448986396592889369962673056829604893482308798365553464426888464656587938210867121224658695331773448390307559295848286773011593731125446181238782297548446264208602923047087048413538667156067598017559539593203992542620631679348045934435247128677639766522809626403807066043641555246885405834959728820616843427818089532341360540607956029426204466567496685241466606474134323406880044285458778587033628765479231449992124047812300719617813236497188761300693164031376070123591259192145447046768619889509498883595139804834495749853387839074629904718966174447057463977407748128992881404522276644417388661606785841784162323676000158295656796360874866253164379425299009169168607521619884610908156552414680206791535945783655015954118700404941106715642475080030737379649403159062057620559435549042119134114420022695413564855808017201198673544626898472329266191836139169376496631218456012612839160197026875838678193817572711627821972609077389801196475003148400770030867787329875532721747580072560761743611465831911040536939592754955638244270560686460653579423330686045507844908791548388958635342327612193209368472032900878174532557211808160797792135810433333857578869368938670928586373472614638622045037363715897054722252334857547026839201242217723188785847925219162922667469134377924736883504685198207664008634497580837037385642550429817684985113600788844927441457355215551708470091032412628678209101925656967379366289610696746952469538424699226581810896709901048049814954675769089911539988393048322037687782846133710480114977151789501468991264931449627787428035739457597292082171085797885105175024368309856779109849799570606909398284918317079311458719133431998991466295753815527033589256055289388304364490920157928405135129229076549365259188902967092165462259581648894717150253669060446794910437001693122804154651003714847787288029620296024378721122419319103619819724420082955762841478484336640717740092785008024223888667687805902562577758690510445843177951752936173597129353346240598040965685115200620922189327058131527428056371205162134125959510250155834775702645895420981890455671179331084247211658925775473941188563971991617133313578041195453351390619752512758670107060995559885389016298345487826367517893870957706159264487786255021438405693143990049982418383499952872440727849193411503871693304425961375840381864632902968089506922057904152429725908216295641723396141874582593182590123315781096352236098608316204965220036695703147566093992127455970314277123999521152259368462279107617207003814810700037823429257887246381557708793990479671140665121095205860988775557809393726494476971909066992314378230624892589659782576487756837649190648857696112683225750097813878348492672937953670016148566474048984145098924133254251329743933202765167871390958486528296091858310526951546750347980545185410188794349093806454236438659837147906314017993120786377106186973806277671273137081613512580264313602156562862202797112291370313501257098538229631020107648442362941659192701105845306646142154167942506941504018655997102301673962409395403777137933391423036981506055730010525947301134862914497476224401601664182021756260552662612026015712214926765340185158443779855151152190679657990588199400041779771444603884451491327078989947371477788131594887412727887400529854110638619635894222067140683125580586287531338175920192525136030352740708713435740827512899492405548767307283232686368801268602755739289601745767477144952894448726164947640257843451389855699540631537333891119217762881496778447665776895846187569819549795657873814386620404317266101183034297946439779130928071311471382078496018481087684467850946979879682487440821227408076568146198021008852714815100953579601480644138763486239590009744238175970525629134409633315396383999598087709726543931401518800630542539819893008204362024868189111687380266888632972751797674889759375188882074380703959415276728534522188531024994879452113779482221404918496301947754682819168500739914698821580839178636447363612067091043089209967505062344872733346904343368196674957218614073468167876480118248543287204373065098404650084104346635057290815324416195282232591210778456822796491718577950377808758598067713055623996040022318931945197259852695654618113171017830080155722792686916692807272796789411962969056484134696793388820383810633563528182421821134111907630215004783196908264229043776815845745167942385990014355057071482547008258325470806172446377439529861831350038318469118657604924334431891285464162790709927684104242725239921452107135551465197535168486019001613067569344386361180767037595460271419079501595445772125772363663407935759014392754660456477967060513302586618038852399074533879894971380466069774414916252183152529942367373455367939780405822624894521904366797278005194504638272500977889810111078802763671165010131552400815993058612337402208766853754534411809661747813347303436089686877969354906110582986176856781074364524653935353481286820550910280150319009905996061774945431052690338216204965594514733281711598510283320484126108145088753607024971796012207085958734048043799142057388171908074660404670860375959335208449294957431054987309740725729470149854189333437467880773246003685569749367364081257451913535542377019424063971222709616733822818872193984610618274451054696539681056835565246929369497849301356909407795094789365281298036715014261584525825809664734684776536532675807553464680987625313902480168322781023849178861356429227567036068052529557990788227614354435425306310609624363269188111303617653185728779943055763678240741265701821588593112915639026325817438647402614024255181881825015171334118003676145350985954915142502731570370052938601144079497009248485524077200989160254166478339195911094124593611206796623769474939210491397340300688114157739388379536741217394175419271951738401903823250381368833628052489051476014261167295409132985638552887118554654845519205077040339484790460690137560235666503844668925706343161833053675940874310644222647654335930581182493933525613682565454786504241458534103692030343846648977581652008159431814518565644987210263130249950067907916582331982064156130340131461177765511849401154415495472734910163263292303802653445509022759753906623893479328289884424105979183891201805601184639999293451057012173002114411831684456538350453878705718406788950028651469510515359722856182993863355622046153568740227807067098161387294497524233288384743795112650843954363308217702728176070731354553725488332500304500317778334662206510228640895029154278368441729603812873277349644799722823357084234721195978632561125888483503663846677386103368445202078990388873153725586844371725748739345732843936022004485756414938670903575260806457444991568851969077513580217868612040041772788366775213539628463620969654567989207191390673278032223729799770546165398980228246439857029457595311097573122118069536927651473786973087982467269655111980549443568997428750721043013780720367135569949629625334452411916644682033097542977915370134348042061699124188208697089148456589778934169578072987023304946949811203829393196133559614806078051083933220006837806701411319104883351937932104006753642105851073003729809104674597620316819738173906640934191299877042987662092926011753861713098134221531437219832340791970097813415859149186337047515388681301246583946255430820922295266241821822641242734360761838784274430981802942534805257217192418195782722980727284997258998548750038135087893760712453549652252232956033978470261926268121649607297131197769873637707272725029450775506430060186991948040872443520689749397054254941363983823088786987092881418351788826459748558561575853932440713463894894256497116144991640485984210032131456291680094289046274159896061632384295431976239937656481296141570835003544006435339902196922482846894041427965707381596034118361590726569422391140405421349926592284747425523384226759483898088851063917508061334301644798630305940971441980817651773771038509181678352641358085959447433888590781121959814396931246124051938639790631539616267457727866429663726351437235256920683251626134289630242710065312906852663722932013940309686701425889084244744433526656132890588281161208215145701499586763090844214188756862611412058031643699083069413616759343016839322456716702749138688677085310711219882975158966038881759842165798460002681375982498564704876059049470991890500829949036794562832656910136524528347163481306332941030992812041207180202156445976384061161035919522187647614991023107686706528224045514706382949400734275882170489167086464595104717954315316370878593477159346333034131953188427103618018162857224628189862841797853313156598723546105498444024782791509755788318883731264031748368145405167082530300386041629646797378879567392633476904457698776632995311427427250907551944084816296754181468851213722151073293197371780796690186602295494397005934960049806198978766227441735155420015340325927287354923852233450702104469807639203580501386613984850585943359161000898600931851527844952454639335343026349298477146394340066342852795274967960350872527162234325261911485386367280086755576936751231129599837334043271492513664102441820961545559932509646404437226596678746756216522780239184813637548708513848707438254997910548046486038884543774730102826367105253732708123248218562636283054619618172250712284202322619975610465679381258803151264267554106319659996565172592905959804280459653876609170737300134391807672523418274988705928209983620258411837641323275672376154412997833731999339479217244635253758600700494343927516620623965192007955511518005259181518323142546230259023192512773392662176351803209406146040096530909046138975646532618228044071071384046868563934416423786813237024480764269124022155930490946402551786737335693715752794107304297380294040534053424534915381203707581813537797951337484765744538357923069170310791145665761544247625721758076732960890149864087453948904076808945135765235420264937067720806539618905691695471474285654042778848756527128584106359107504656295738868332628137843757379861284718952526685317190535313317107998520326258906473398323650117983500786421042772213157412578529308322768417386576582700085145600584418901937509216372165509691406565054063328214066213169917019685757147329875245134134636219781754060222663813621220176864110452848533225975456926958888084707152394898927916948209537112468604041741854470220663903316077824809778076237050743546739909266528791658125144819271134090853476195132938932899242363561529810642409544614779515112477137778523875881658146571344332587617252272594320425550697138021866929131044322134193536964464028989769376800766872866075659409968256400055639045109878734633604677288006798710721773162190400397578660013597786337702038297730056193432309193252998648012710380733684555580989096894365099479148187676509496749652162892105471686504753984286796336117381974911650187358032686238727829849573658841645377114368917139263367196257767723092252310269232190768760704949958526699229897440347848852050157888498316377060785574697663381761669617178354704553780963270837088326141878202800849383030978111784455648785286868128499844814539149576650428281330726394923774498797895287075404965604881374084069631784762315960313263399641635858210145641454735718822878135406230943167532414901170785138602201817600848145313550458490844484666883983977765701192885886820535911563766406725621686609085968016836232361947194219407595665660181072994482907708632997907170136612478074733693531015096165325582246354324786348905116639423131072521274268622205930264324665155477356904161392644987860465620076663575173815907961655525423768702138278082941357048659589325218175438053227860495263309458368829959470967371496629476165130450700206618153756368686115050672714329033281752868896766503940915624156931461446544318802293674030864108611751896562524493490409372847174615500449708903563319403532922726209598611712057264049600443528167565819205134627571176172568118975770563954518917675081092712555152628781785371766460674071236559119095743348328346121762050708113900075347319662056915475574069732780608735250378751550356429722001778047603164594376190833730868668068683040127127069296712227551710746171791148708309230658640474568919720133980311134861903732073807152733104671003967121828265320867130118086342337367415805578629920536778964460940559853133907263025270766778848730963105685642224506180652413435946786565887330785029577669635095246228390468492619332379988623017196166969055895974280456633232524521313195167012242444741894811878019749136039696098685428503555277310243727652848227846579234108200000335881873288115134594388309683111822492428101479375995648740105778257114804259591717454458182160873657578861214704707076427186616492074040582742547983575428673058442726684131602379470413829719295365430439874459971984147153825857950229232883152877054310813152543196471043700425357396002038760214728730765480299166180199212740929772367843585697322777321829418748928918697092260311704287555113780061629183376514715992846310531483215145503768166878546316131436018963755150542260837603026909315593837818591243841752835280419008108008148531973268383056320261506485783822978963561036019891946979356595020320805576359517690235759517821325525621035112608102890675773580711358537900324722863142217848842226251692207893244752450309220218447624462468387165315955203529653029254493657615061203503062259196072617439632427155996644711735242262754308337580589940356585403751168731690125809984573833226801619356509958597602127558875892686593694744320815306392248907701333570976665475043512937370294396521505022248972099257094040621510018544737794861393175580300076227153873940281985545258336223264019424012653595436384477874093979669075167692447101935911674150816168693060867518642717486739856706004179677557815950670521352810424266267273823455490162995074946628177527764462931487527889114789295752440922418806581440233569882126163627167334231523420462798262089625994983135855511104533052654727754871643252982762901923870404406846968848219132010552564234087405435598633249156450677286762929818121803312177271696806060081851350657785376190451943467308646169084685944101653143267990861683138919753350412705747814189352497248742285276855351059800318508109029593485920573404734162502653077986616591573154546258146704332887938396364315361255158123654196423987918041529777201311347687505544244209588907846116723805675750686958756470810396586340226696292242929955859157663760979440450331089817508102027301209342291150776121089335736250069810427013380633614501901673304560081242065067505784250339848284612616980923416860621343116616322294680743614812054800388178276249627920988003244970097652668830400456654611623804393907963866666584279409080857425033202627006400642617860280928049703786049628816459138702199072505265863334858954577691242029055628862572652541254118242610680710729687036036074464267985625128287338499181192332410460783008659465518998136762770256500715475640765531216665917930077538765566095620954183460563658486070423542819456170228761477116001608262403333685199142056483522825944676633995190649188710555702681481925420373502453994205250535292640123069753888960506486190746882817050913799867475410596697902041658935223479006399235436620295062655523445713343585223408224995616996701233090901390135678111575491975101874395122198669761585217265453184579970875517000168274508176406700901983100615226935616809699696616025296814109888953465815302315728579359250418520656648064171385871047356982831402195023686508983689158585212659591707686467365710321833554992260113937302656494933940330425188125028250466350783388979692705993901120401042879810852530916047203106019031933338458226597952670739368397954891704647060059127852462339077958601878502212418093448909108792931059313104008425300279718133088282897584187864896284023114569307498697279130515680111112284114813461027011666643047402920049579215593356596142216387409539275790764928561177404799983842866771342856786562392372461954001830897594378012511682457885308763741014981225256657953423123600812851315314735652366653276430768951222775826230221328465149891923776204564803892154951268326459414659611061222080438683789904091799297621206112480084659532102562708169771803462781178114319999944192420558383756039523830404600240924304029260227469959066015986177687987522403944581586058365111889873248947844729939708358126212179128642071328159303347863443181823606041078042986251535075396620810451036528412351060246934374076877430975895956694211009711893020142488964935202466765164515521859769961200388417189727350353116944790196532699587486790656049165273998123111407449271363473382304465151374006128871081216257673169307348993009084926300204156914991723840789197033901755525066300147345038034065339741368897920774762803882152558582272051961419234915764495661391769948400385098850480586823181388985030587164420906710269099973634199095049784112836240973101418908012778490249707516935075872633091015719133648512515739809640326711007059713476356678630441211317087913763840304470619804385026876017366245254603725684323682732452642376530012013354020473594261100358552111806660445298656332432417430283672727631910525262974223844050470398743729028166801599220087416636211646890271153273558266133339579775972632133023289703362659302212273336223861765018391396897033433316196507111138272078359945539066816872288939818390690287162268613287060040662606970809421047615365656120100806732621714106567065026863566770837412919956201571034583389484010939886783998962609903537042788750902226586211380447563472584523374576162983543595508766746997324589722101782149852379416324356534537325967596238013630310556557820897373138499617271698907978448605140893900745518604360730287192429863195728780257300323033533978162621282345139539669457379217006269347350686063838469208492187634302669428980264280929385224835758455513132708201543379254608257460984906261449188045788007195478514960902673678992511850646814705658750685953996809595158878069132844335558350287381763676018509983117692893777642795598153819289779262358327966135316261264493720756126345274998415382588758584072328901346651903035417168532608831919266510126159561798217412399371163690235348963729596456799293314243892249802686237191713803610222287773020532657788543652179831837386370820540901861339624394486620056760191916271700642384295043262146348326483720925192229150976298987363715565240477369064508796157642679885073790051127181976114203118271598504882790370089299726212581165320426442620888296558426662251529725077264308117116096356212137694640301740788048038934277886101677182265160890782243989435935070380648798244225929853409784313502653733785497119949509742264577187372194769239628844179505862104762979015749348174124801155615364234266911120034158613647831163087999012718252787354244584605510515004933828149113223846781167251096207838088891180592950062754811239363016450585460270995255207635464303441885610568908263693091468581590940833832876672306681437687778018287527953193992683837091430840520607193182074265402503114036520321308846905604231083170397026038768852411710253549940886345423037871187960873034240618706809016901226985884116650291086605285044576320090126207130841758405643934620186249115770132869623728705016982889392743119376070817967970100700924492164204443733928766919785029841208922164910477854780770935556040411340016334494458558657390943233608077355745288937802546938228819042032013037484202308436216995307424773038652749941401373502042405599653377205483966648788975053776552174529880716417302230355564441631314421626836860212129912857687908449947563627528151944974512288119033681045411347348428059456615300604206600999209438986038483017709755301442728531835348571144541827636090800706548076431612136200187374732179915921132657697652166846761351550343874807691824959540037386171529542127056560628998686181340823322831990183720210715068272692603743694843987567030960908599354176823321135735979731885848222495323912478103784236043373163144628033456211877144946809980621222833240845872182641601755208707628568087270598860925716456454255381585380874460647295563674967588597771463050632421945480122733784557444448062147525250381667786964808098261442887411394993879271412767622476583573896778601703350563918929266662153862734921102724456991922644468993887271675554875622976960741585908999825216645548364007625475850384540033552489669763334196721492332684147322381632945212198881890580093229600360415303299595504032593564661827361487377478062297914428044525573334284936756750424568493645837058085478266343850358641137791947931880219545894688392699732964154691395267925282818648164499467942442570394110454791427311868404084779044471574635611720868448280780842405026415201510066914869628099393075856543129665410785531945360105360225371246069921406034000173024606587476352977450070218115267594104634644228991904277424269406350604403813712485110365113049391653794008838735851141335522836763177747619801232672121687036084234489995999917146151404327825281640037140985691455458389579815298921059814720735745966101549995541793770862204721647357986054659318023939365185288084797358644804354153542855130532193014621524245641734314073894479464767308741763038301929629589491099602410767199263389360018339597658585566799856168808276832420194817332036250013978599848276415584573444507453587983072763801420533399148687754276243236138176125754186078498665826974122283217371630286226917983683185516105690062553689189310290117752993368972580529186741638258863680939117339009770783788105162692349502967330038645097146263526256429812158407102424592456021244354548943707556440809237922227153567072626006286218040332969031056236050515624498870790669731589948944021936435954190368896994364303675998552712423207376753414288362295919097309097109906151080214638779593115059540825825591015419453758584519974928130449505979884192978743080618837987560859521189826256175327465848335742553092368711501279825297277849966793995694049751894149269467876890764943970364382270252553564414147762533876380253811306860352581550533831644477262332190343893183481701718549608243353981131426275227880427171532014182782141054547740770897611238691564536705067253216875868635034458603131578327011454678103313528585494757123638998701185539462345733979034179311298278035022866777919630247000905193806609707999938667474372314306491452077343359546033100150707580771104836780331888365702177371586600647091803481012982704435702973211489580306807812387776736023306492108258797915449116781637998235447847073521210721569489602217263731953137025745434409367841172796446682553536926202343876515779250877905441511703384432525692195810048106101995788645900559051484834500690019726221890081898608795960529006989055878871134445131237771150825493006843422348182501008309768534043932645044503658158483439141167386209813310157977704103249363695650276750374544616981405839613155732238572278012138772487791434762915531725231920396454463603176232831929902921803127703048913216460221221232410697256449617442646630508558430379195016038724105695986017730960454141739409966906888958614245235463730817095419073907500399926365093838051566416682941484766058319173681457930388674059194410400753345293516492951839848745572189653172993465331310562236298920332524016294697834546816900314133982861066076001577036570563810857426189393618216180978958900612385111762368733761373711002813264057571387763884870832033182140315547395673408987420966470470738197663195844553543037581002923786519259922357585240676872968565290289313028857256714038351187089694730239919120667530114690976825823187109882538124457486829298579632488441757989011899779346721689967788626906547236455980539687554503973907319006286894086655263232568975051621103808507187144327175880264634633291370754163202202659363659703551778579062899698383820398802580829274285476082935822605629606514277916345732967483972616150367976665368785409641235383656449281745218794563034903268438208490545376973873499912547097596154950168866350746848551978714794749702796685808518194208412388141596072667111327649461298949822881294080224860273258806295450983777608523516707458103241586892248597532077530316601377816114696372366078740488245717703636054874569932444728778830010702201528756962015889762400394309272281018614888273573701356774001046835509972501379860705179325884248242189392196829348944279199278316995211492465356931473684901320259916403442910471311712670860116326960298032227835081627175123320296879075677907036512375609541022926849710493890400936223692848202187650829077866369435474578058374516596038502888880209467984822889640591003689625194849961230324973402382666299255927364747270755825052564443231609035639890718208495819667359172579218126597294233507949455543395430424553399168483802163973242197203101276917592387122296439496299575937070649037935163889950320867543750900202942973657147761775199410865602291268098392796782147233007032068932067357256234910144490815460466713729255811118199079567302989603786794243247006346119059032753501717980483618774182975384577697803805500149959369286884287678071596695719603030561859753501331842913029775056983687170361706717207524327091349572380130418224282236692457236995785538725826862802127731895942985008628087288019707704884463951506864268471527011507907195020289017259708351928813491409499928919455520297816444808848403590562073972583518707812110667929439204708602818017888764371204062855167535862675343327204865268730124545799154450986415972860223776057392989665103497292327868034190998645457197636762372109157862540321814416099989582756913797266076379918339528506511610148348937344275047707412198145392729311236728308728104623823722457581528889844125175929491559559927408747079130681441465533652013939776162424969726702233643701968358385971979758611176247538608751582665675726881871728736240909320050394880705802660428636497292617094106181727270957782689194317237037285287644372856021334362871620294626051718393510028905543516874947088668323596927779027634043287657063647086019261164349634229016787084237464871091176528214655859049580089434156132954376644248362293733989419728846945715917095550595684008851491129632107013096845752781023680908684125345578536519370607750074406303645413522155474151580178167946361315630413791745793663071463698982836642400676088074498089216817108048480975915167037048655403180350844381332658709096314892998492578598487290086316217412210122006449150939750824280463840382995078492123250308140562318230799048178696675293363887840382992881360662672432920337060416003874220228450939939049956919868955974143562815273688958078504016509065942067926375456478638079805058674316878126610971062627255476321246753733154104284130228406990883495519785851775115080548154572894990725605000903604626409534191951633247327862079330326293619515681731828698959239240023574132688601625057080223915874938235881467595536153668884536974288090961028211529888316537483998148656982342813549682337036203471828047533986758096447686363655068962118106649551754963441710667703527972511293076374909986685569551734594184697957826581418594798541244545811263363540270671078238820997269683074451533778534827876783069684571042916074039473589978695230467548664613252264573687679005328191053024777747263494635757536667903797803527805670897416932681428952460224932682740308586660235980396845743748159127909454513112534451607967379228131111314514585079411337357150807692885080850375425253101192418114872086511160680941742246698527385411365702231955113589013151196785946033036268123865747082822365735554873854601691628951940997643103903281969786224817826373825825502855783613910384314634656440285887465096492629907180494152753043887764733437521275708927502403275991589520409548465084722215499997419326971075630981673426668738441560478742086890167640898377488143948274409210791401929574419337703382054703300269302380401821123598942832153357080433297099569497593573415440493682272337054483501023466975553498109623815243796354506018812706501779180507597243762010500331322607523039853059027666976165794009807599503492681659146288316576672328101338310230875380041528652913122102788949536261439762249636025114699138766766476379870054759763802687574303870684471629218421689256138703369441152931106263312700231936356333435398660795400772303825902397136872471519615612249475205795762858592167249449774758801335346698126248233277658961592332552851459985661578400028780790385101754962932651198867665931507988638993383248424635362108622121791688452610926531310977296579521343899078043311861647732600691326943924968076708229938499297882036085753131399607752542421380095261639031864048960873895001595597228274997884010474217066279928116889850135156715225107518168799477930854862996072940393632957671834727899908249994143137399757108543754482885747566726335796735376179734861474511301159490193748183363884436827879597129549612874682520304371085317579397201153287281423784455286479988671601581949075953467383910125359282727899836483110181529400917245977322353786771374864107648802327510264144847272316718006781821631195727841760726349828843781676605272304905424845507781497668586570960889904353429179437566306889129060715731266307915296299768424782478957532867871400423394851017704918066729151663190098231877484090493114569052402895851920296574726725054674156970789231967530110589521239561643185534857759160007739719917509934427795626975588192832771743099738371817571004570930240332402209951270776427019992419196323548601175433724752323217740037135623897408445914516105101038094495109604451849116336378541744064393725939533738610968122162308954484522148892340085038793355316857856144059974760911250732408321221207755263248956321440819439495211300090145497092532815104572396159581269360498209576451381854581473578108011054458523991941849833259396232438472450123992257039636549093169897126285691715880348150946977244373106998609381244044671577857110713675187056284856048522587498477653249200945983135281179045822592843504904252009119551977810444265662169089103238320898396224489020164611644025628340158498583019702088916367731522109530150891198011849363212153616395917881631288901308435226917452711500868912031342766417311699972748102020175600401160622885215596687450230150133910496109521145735237448833807964821582505402888544889144545162408303753857390487459484419245322537600230652804453927835590362599885047809008878182287652850110720634186299420251625588425672562121642342494761392423930287122550442361021204828149187624114118016853567556548791462756884879640585561527698513024715278129104916624651542962987313654967997540765595992254729971323986145048100462043451375684491543888834344423211757729372097681055664633473161688313240000947677466196180721422157654993011861261175810957757268232066155417210776000204970925452923302030123248067950633340348500009878279236243117876457423633109935585750564311364612011280248436974946320511057669875444123836015034259830457418637028836650801045618268325346125132008000821724396917014990924047843859258401490192052898760012698736129015274687318760525246796378358465628794307778068259493894091237961350894540814398178445408948876635279921259532208212534813484548932296988393918271138221194048537166925754501460193093496386917930494717631665758697346653320296488872732109729666237753363899593098022833619249983100511721434736364535743861320182052885590568310501398092143396473934180327112977652548211846663539009007724198028172014811288450286251224511333768827477740173694325865663085017733734410847019850355570875290581793092908947656391842277939970431268775833088583412270964872389984547634942088609510351688709106761205336824903992219453321247456356960760435257978588479859698676442891160085353820339479494483937972296476736495409463760628853061086795547065697216640009133359246646542000583925327600130105150920396851975884804019928053111606044288020283397096465258764074338530851842460175166791982669669225243639452802875074367478904182453924106142274553180302308698580471204603591750642400135933614286143206225341288151143925038848088039683518328937253959161675468057494378553798718109064434437806922185833249804205343915165161373427106132203775675876124169705061382617781802842042510227552875093817766624260981581479461313432797013665941516056374747330880860693046700798978949926448521756325093610407323313522031539720016769041526091049535351017911477108231768936451763746469048907196007322475897590477120915783869006930533071698687526257017524000682651343590626508495302534931930850201324721307884974339393056134696803623636365223716363352148079950878220371413329300130875745660120744999618081913503765550238527060183504687821814022749077505713579712545367627185886096626311869702730614429182736872250261044422396316229956054582528674595578772758881626263019616768789416026421354928530060738913568639947829271606155967064329958558052154070095128183397625008850031061562446811055288522587720249024360112042106213348945340492112740992445617847425754647910199314139081243100488479573042859474291017155115952603677210752903612021585195659458460620984053257656121926623609983754368729622507234722168202441202392469382643414648883047028307389135754247316338484518880734286201946507436720823474242027519570203402580281329919968200202661351588223629041457070261324404124084522235448282566197358211340910853289895277248177312866759327872785316912568239236518835033303700169742236447211268247069065643381471850220681560232336494278778032318836693104478280832430813720241439292718021638269773661066612643196476327316424406409337701529499550209828089955228170958866193963433529879357534095862034865323567746114406316580991778066178175153167554573811863232229401996428671057799074498755726332667018125724310453643238086290933868130630884328519864137838893489603532885236190352898011567369391146907654574104581852779003120361863354215959477975272519151109100555607415642351811402762244979035015275986538900944744866629285330320996728162825748768782137825877850433687624890895339971045043659313391496473708746966937081666152647583401687063238486356520878912878052978589333869288138759894876155998388292230025783788119377490176098773357426931910210533399600717727056425579343176883859999723709321753869928890250792166162801320079804254861693998456828776711295274279498986172603694776468035381933302881845862760525731458135602847489414779960840077474517147784654481069099508530209602617844263205552298934785713079673431271709222238757934511540056741821078195986315905821385392709712383520937849799595894093647524667142153714615952785898594911544101423909249321664456604013553520405276938768652289686817334232995053508521052000324493394211487859082892994721404172250064999562587219618406926772178366036010110069648121457687821964707832234893723287045691843104511381134583926648507017476346104374202515026281881284712282641812084717260820391163467524190945401652916800648909308945366999601524186115359793589003708678435987757351926807466402261393503138908571116451560932175269326960602239033705309149703859586642075501504385944110319003905468905086205782247652183816573995325113161280914946002030801468012080527727967537129988290483909756836519560368104780678022551952539629866898131241718167936359589455275852011637912180640758292152083720097929005899835141654869195983341629491068872278901308805312614587310387700433674244363652617066180913169959356308881318171766025081591190064467807873756622981630140305175459805835924573768731851265664388129831516268371462900496283373984770031254251708960430133199415207910121133018367363089300261083985585377735284917719776329957470888051298506079615142328807818639120582796743218126451234685351518795340270093648746559296119673647291431507013483041471345789530688571245871616072072504715472843362962291753975985037184577839370110815860078230178167699359226265799978262690461695257412511027955021898044793681469798347472965237965836795141266274461196167698847134490380100416470460220891102315118326430964879514229261921445261480298053199452962677724347257223569473827102538434864256289741327516403560888369248128426981050829580461456326733687887822770984089459448030175788229663377784510154231465440129237384368329876025162492608332574939852280099680668321921998078726556200088706402214099411588427441443543939691225454331987945369775374340840911968106560309005865437616111387373506270282505859269299803054086362927831115251329950053207621551292155017315161652214445033746277097879816077417967747873338476958572759379854122453815477218857692269883710457458745497978315026349318044134556188227476421347498551347808425566402278274145097063893119751743242208580124525870363323129193010660552677313295550441443303172797564347208411892460498224279771936938437981782483053848788104129844298670442124003707083062424431242047582974172716258285664633627548212193748059272046373215012994133372052062966247700856243573693391766187096029110333493534804252452539975367158826263367347111885733296036929324375685249340589697027508563041227138777900872390486866876068809037666080761994831044711843852790471680348199313845864249388541093557015499699725252872789515838269913703593592198839714183542346041080905267465103013066679194437695922412371426802682300757379812243211441659956299813064903226171596726107743118619167590514891680458126253783026066529886797400737260335861034647230797675153879012738846121883223873940380815583812889798486424321446518637243813070191416239050362163755880377777491386853526170623628004363758888243276327659772600541364768045943156662651326031950215785389172845033593213578808162029202411492867793369331214252427908475661161001548736647815951852896093821257418163388025839709901291690767598564848920114561066956159811981749257220649173190656468953194115550264802941227909698181784444538368123044485439706220062258248115428997658594987027605197247716307632783979164210058253897752121497705271073348917855807567805774651633243170678202410447064097428165879310187807972589829930099475531018810938048568851916564872480762437857822143921177121111655167056961040719254613760384121599532877688739944339874836244758837522769930785120076882211989501415901456208137502526343424925802860148179151117618355919296435125487652099117885884661146256465778567973871275284823108209788540415333987098793362186804564554527275266662039047897146442354853959371832993715074181488942010962873243113003603505407503789880648681069626885435367159284564964135848141838415845052495359822032869992112736607328534612214104911689871281987719810420796699316545323819149208503998977798136508283734992368114740081561832431422150686895436640827493358319393451595967485452205720676657973132688375112447620218284961699849732306644252586174502133281785298355362237943406786228578352841414223311084810614348892603270912732431078335279144281092616808752174788562752720913184159769595224908439714026421492818727233053624010739991019548519889813155499314076759400028309990871638579051163859640207418982675332349441701421279771229795166187846065003790300733715639946260793963114717166105845824647940051417278324590414501123647505303227701924811632449686756166789019192153853391576231196732909949919581788001776513121852414767751701730491556614114309403228338337890352674867792105309094555436073812915823375856082647362262908626740514275185443663323599237324332931190187352547814169889452529216233564026913055962104975137871393756853624611290995954781467461984868902275309116363833619166309250257652846740986197478120579697223545703629554471588385645547049189227887268083012263835679007012458909121791785004076896174099288956939528940915676690697543547503590205422360582703033915833363789937972782218573697920376209081689508123784500972439836264763777233844296690707880165607518822314540959071017249938592516768314117862986801973799849959358198769610493438585993560006587036075166902361126934299015321431044693447583361687226885729427409119210209760478120262745782809684257829236111929069378758295038854248336395228516132869142527218439519621401321772070586678938083005607983803558124818003966681099778619913442086162975335788967853845471063510651912853397470381102422863314353059695418924092753849035369816284508506531930261713951603639629504436474578481379587788340378962468140547276831937951974348064798140632268959637662159048647048173286300072426491191648930967038462657679737821872928988340859450724744955460491391099425117613154035361460878472950794602278070387414438543351660912386061192142543552438914005135713817823994727389032808709858261048173558098662982579506794723734438175078689071360019916190254563209214397255096163368330359751748224071674615965905659624060065208896087801501739041724415142242820136933857646237073735644249866662532795199977072778977809623024188704254564748234793009196898326519908073931385745632081796833670848599666927631896581519336903889388989411233312281135130713390960668659788718253165972492457545280511749226976600395006073448408441627529179858423254504371078857691465959880044954618316328396997651391344176564699371628932291688653204689560269522633576393015617132574192924337317137066547874078112625856749201905959173633917318579289864188208607829088912981222521134312407432307823894624544360395364325447990757830265747201321904615610731214554484521626914685507920616453604695397507597134585618099518405249672794527638277172090292802386396731600424372573738889909522452421888467257231216866554616663514274992917381750929204499948156214740340157151082622605364229802351405211250250342332375133253884272924723508036424285217154695039961676579968270916542705954748343028080324281760530281546488138909655139525777568529263762270567271088510701805757100365903349172559728338142395201315634257650854191789130793482507422273770307873686777987632842793253726948925134828281612025826685777343325445126102929764724870048186430314914486255846443382616237519718339231674702403765372617733731281608677518068629829441926205651917665489474971214334706403547598955644432927884281958346445067977869783618590265976530731150353119069207154792125023283081108347509413793987942496041814475139738143939675747441059547560124166358469684870327553917756113087345096406817466102770562203766267315272623345212628776776000895565358975789553954891108573050671982802633745083012111630429661316690134584749408692951215506738799662747403106510539484765232576502782923485370271271461354714117388596419416614856344233439077833768006551281416634955276011774358100758831744610756750347878640978493657890393365260184477836944530854102783554389875058233300446027761188241008266131612205203886284718256039165046663970828843438302553886119116658479794825034488608583113258877623100787717601294387282719857264814386224023957790272411512701659286890707401760927445416745242981922859209375716925431786252335167326436356589117885822853496821402237785215028245146402220344372374185810189901332833189855117011794656728449155264880352495878017113908813359575677440977224285480745444346953650912472763892354608571884140869632240060143441148571598541603004289605321478829925687789525972790004190100898588393758609549045129033921281151899805079885698011112411971447992569991108990604274006698574468146802250079394772795950852639259970465262689942281547523550295779463777400375592426478824491719125650999386483272329321714324707302567927182477502280571593496846663642686552535984157976421077316995492163920681623169382041074707937247180664538921268861177163948502685382987291780888763546141732220258058076607828349690239152059602170455599408413140380048326753327915540074783741702923675179657539012326378874877499417066056193340110153391556492084872424858610725597635273491864675450431159770145881807057167963473012531089306013971485900706151488231794453291048434138350000743938632747380552331642614160953251227026554308936237161901088751529758370665061009093741261482619095449293622387661301849408370336536475326120379171023430486702478829698474474103948902791073487948648771344809727030867293244763150541438802336241966277762088200886922072536141605170309834230866574311706828217910457973486296846466077793026275944261313131772940677164767840276066098475443880849135873646216480038745998670484631849708778358357789921530610484348974296194694539075764228807724453846115069344032345800037296969786306457075360816402188668498462390019028350504983512878543866815599243620808369071158098799350830651749897835788164773500710048017916056930972638531296803347907020604854629699614663833988196492248402023037328635530687214162965499177085887070366378151696290262125905098675618498829611009049716511473939135976108778678173444698663843756755756591065658481770609006605227095413314848138950585101703043333059167375025378865271606841551892353293364302008839468576481347498919760811530183326891490167379689408653160443771449190316251677632778082700402269518760963039042802001931570443102033498587155289456662722468408364478553484351304782943293311693363870919415146308952971710839099493677964367194433544005545930261515490088141173197936812011531153613625586678953409438281955825355445642420838808403044470524257681113386272044290251292989600659400064354807143333819856935806786177354390711729992099811324016101096783542901777945028235393109165493296869158043705404006408645309595504590554198025620573543331602303970982423406613128004465244595595460103678027360449831081942079286189341584378266243220777958614186995442715243952377826919063379391281806222841428545331815386718861585779574870113093238697006973499144001173161789570594714511762986428957132042453719352394956386513963303891020726882902643639511967689532904269583801098749531976525856967766007149924916194513335374546703182152205130320035873804185654622914618566765274392356159398490915711644461460331879740270856918353917421324638956717641208084643333626902427237494617785142737476293011976769170686413922760123472019476664848051653208646226562776130180086305715706607760502818597981802279212791443668008098556285710373944241329548978527702838391154778343784122749985140576848376834452707568662821467855404576298645815264919803084896578146165669190841452898209032020591335394323574641645983221069234695650446376555113436647710216087576680011420817194936989543683017158849735707050581798510694257527572142426060763148022153546140624704427547743625453923719456846837134131054076649373865323671183804574984550815875451514504251478033483691104218778506396394493455130639568194694358474985973303857324070975281297491619885224917272065226683544641853386326465191689935331646374607369212993611857825877122500932080259445727928392532324331783115300238941485379593313795179689076901869077112613383661859752987298818495728902721840402823844107007739005099889732291505653658958933624952840867397647944188356765146170656297621485671772861531216753732840607774078029303436438150155985535508543434621146258943175484585657009032251900485495611686756866129336192680861497213497116517085864159415183394446091317983264470075539193494608576356296949216356040457091752125339888688909075936176521484348042304906979691841548979448250460236007224216433474788370990735368738598906165884893757778068936666264059961551839473833717269951340515858069338102194730530262842856119794080697534813386579287330848894788901741863536919990438404048412731706439096210596180557741304977750985343879992139643896872131046229752762768538065325121172168105336963917963572804074731675856112095519532601786634759729849193550446993424346833629594176542267921763350584626486831305459918713089189678728909908869021356410865772853301336934987791772095699767534877358362092508754629872600127062870984089486674233142490422702960791674507750895107716783005810424521760706168157617356289064803206788909095554542569494238545883805959768984627921829347640702323429522847914693619424959441031799064880560746062112970319098273996948117000868170943382880949541146029695752488258696925141477362624570095917431089221020708828618325806494172064069143986473555505503584790360801543118352829465522901646724285615431951979675825082636698216343747392102095892395156449980323881587871802614050399315393445720074799159521333615235894382825008154756536734876719068406890869996965247569658834598120082320447988751409560918672915615587754092409777768725368450847379666963241766176219848818921156305541851271556838500058372995740554305462989175133638212186277172284568152285296343519717333633103400231542579659984611500299353450671341527126315602232210799132552042237169494303363345570287356565688710978525302035548799750659989764120128896823999813810220722350279256915266035213698938352576936888633179631383314539421495554442368976133673634532097172595977933394911924572268567220775545024238875341981458088446825611570254181791286504145905759037526938073847093698663152171013555774751795378581179858747995085477110929419913169285952305259227111233251725145979699841540500247510675660996911167256972555447280371663066986403822732287672484543683710637351420550857327084763125361806026854500174496779641424125021909555762755129688578635845371576937736045538661683198575870921656114124772228011425304128679932792157932496657005942149092249860130834044579801158449884116865830698859931722094387637086615180561512371531911792352661737613354816041670553950456420783045634789245630995674157208817205668015371814033249181537389383532284106584890887031156896840755986296407242714885374856667700970427479160322805060740978751938776277783523728252989569791748782553262732470912317824727707308698335442242815532748423915539602109582403810827399890740919303816376913925878882237500361386740505776980375495063719903414703546963738998532376638938796071105246010226159539411460367494633481890435276952175868048501212794695458291397161760355135819860910285120187614385782619625450159521088198683363170064033795602934884903107816613114362789715053921624183793682224349686790042285124618288504313944326186411729190250359979125473397738085334746254988559932558889659801839754336110391533929229901263576274055841305607445074730840155822586049189214223695309066478756334987104254525579660331491535616932104890965392498253256250206863128854057778652171503246275317599102378755765461196322225416180525399131880466447582102576201164371035587309398269576347927347018896674415758414918020345303215413778908832984077778124809566485787523793408812428318567339487762974491734756582632224977717355197926383219624446780658905312105601308038706837010896524515701596144575607569983644499076755933035834909238258462650061911890648406004664793790141052971705814357610860823045442396013911532713014781690895811280388554624612419785618318930949122073121465784184785692643955251277425080778214110675553490926810418210168713811036754632926752015834772765898482278387202264262548267570543666805068834277378983733721931032667834153753957949365293151627441001545342755654859684043480820350438709244139951296519226950803198389478816565488587952750987427279970603212240368944551299872948266980522687986747435968865062531187958482175834302958205610949697102436220377227900219764401939115536147795600293795374594549737784607709454119180424371952661866808769902332918255598232738285094753667603774886040803064225026685614732950707561288355158877758955726089195749434400520701325530121769482790141548420902531476434972885960062403425679658556870831260432475486677738340127979680407708386933804248542069962112575587964877196311455992187651729610892882505360609362953894744803600194550313301654716308055548627685593380858446077477741245252247498085217419614454998777046683003704505588582552693541883904664687103806973182757127328208504434920045180448936292225448168064607900816385251188886058620656324057786643391093119689275410986908024815480214107937628126519053861582349526938671454764945832857306929514508736369521900484451811499744560546750258401164157331536018653364249998473738287698122868898733262888080029448462052225243193622867329608592679630182345996634061183957029727695956237639752503425668550856998669744317614905975397162287364713327275143112220316786292544539253950610040741921739981335519436318544370405347772904022591641970904574259374286522180479292103599424832572093845748741614037988064107719187655125170566067384493962486430178543747555479301764511423293453068539302861322247359793537513914416819961623352286542073129896941823026083097122867924822192737639215646546014556352536319771358447480275756447921399607705449125457060639352767240215211701704994010044326462115997122085235945533191761086724776747672197492720640544099232126340425337813242318137147894144805275383767831483592353011664691867305638962051706392708896153486986254568948447263204914413653744845308465690717073343526945543687867469544554386443249922400882160743525491778364186634244679665018978858217600944829289446165493032736483936703386028675129588493490259127019345068882667833671154143143786945746428786721233657631394663596237164156969240137207587934773501126391461268586456571498660308060741076873101673650120354050449053726337198556011375458401706035645669694177972105958881572631205021869981183404397414205338870700314899386796113047197063188959321201725932875732435144356583798586865752113963062900372305730287785911698190627844565384741995757680448673780716661929748113793583164053629024548270663289026235768860710147185631559617502905538976231407477006599618880867102526156979407777216007010102371153209940896916268600924109155936588625776607319174603046674169579999629928804512325159837512467474666191256250433411670761389018545292518554823614336274096130333618018408842330494712738187796713254438911710722292273142088115056981465383834872782008646106219955548379931317843354075074511990223394226818271733176679359250242705375618379861411421733456752863699992454989648955510912064296269495971740621878713589969120745958704698103007907764424433945066257050580467323457035564551142936357958387390624808401269446607323516282247824567579073252767236470695298716534430884080609274465667542444886643637167195469327650415319648421924175170911427021965161801490368333718855075009587546904638791403649373760740817098023133605823598367156487934490869289805222729292526057482212974304198622785396110281427346659198598394775252063381404630601044475299671771359883747943629798321679651525613466248589296608891996009074126227176087985231666369646625316470905972956211892780479288744018953539512079130679468446917065073866863634336684474449637719481981239790823286978248628210390985432486559067411834295377760419830358458637973216999170256406783866049627579527069380287566619034276921140100407735511687280239796544311579789963654868383291557398296201280586064923788808877466369982747630099854893430716827178215290007883084987501280421141627246130162539292697389189020281449871989418773699970191027804296218403677376282968836331671464242976228353221392316180706671626609744381128079902434271427784933741893126413681682741134959623394997807924212119075128845456510405203955015817943298372558391378382704298801889203658643460921511328430651302222751379628678900743741090864881403995848669630970594268972436927040477733189457205235009574350322857569012681228228187451408016014756777620682732327802593860701440509785399290003819395778795025200099292186973284622644182428018661020307816033318453418009222620455416309460128199312073597251379364602058381670952054674497776464287433916624137346867009496629827191970357066123578371083043531269617088966101015594754472667944570232561687532573685589403880118669564939216115516090889657749917585801999088961086764293536854488676841087511749348880527591610894038423039168744425801872129055381779434570594557292906447333347801578554751762763655922082733004079393248766484113653527454586970410934869711810679761019469527205149403860915082386137256598334185096577344634242647383584636928731897306911750201097538472002015378362286077708362753378536225401462875094463910220164171842245765096328462251280975023780463214045082635130213718620044705228180845027220084588438650759781857524920494827209408286065124342879186128863719127180035623575492096211032888508412575533643527741577810784964975503828788673870698866392253855146657497054414030270880181991637325823876558166890507100186215919523387592860660182708557296773264494879332851884796519462610003332827428179876031830386408344737292388863931321329461650894725876430587407897790065078220300730803829128680965396733884857567726993353335553034907492231001704535358568713871379385532658722264462416722384769912631136733391601254592595546613136031374051472007782384023638370686293938675261033125639939130110691455338290404245070414429165765917582494986238705184622651485479301166709100840552015438079453236518126759331997988722368278107435479486872905669387772719841644268327086343253043969158030494129349768947806285297698798169177346236241564413828638562139166590739062173174079121969882248710140246856693478203162497263940696864570995803678940423990706702920462041947671396113688895905465838423139105301028007609343399137834544450367157419707565503473830512284804144982292829485387543377058626495959680562080122206592323825304820916368468441542782452369878423623082266505828254281272255773383923051958866790149121481105384559212296880387658650894959334560909490399759576401693881060263439157816680373882229417086384893063307068656526198618606018625795507354856212314649318499093700846240923645586736461067609851345711104875682902401122230752950611310477618536622042312483212733619127464643597944381343833278616591229828374097564618057628558602546550011531345859259703434189953865648142775536887552134167564547146940152948057280764978937300971496488207843357320132058607911868137415572956668812037971927998894527213861473355026267329020516524064827533977066498091033647981513783240021112772093374712326168605768230078938124032966637384359301696457641330199103585775192834181462665239591575865609786760052391559889208809813815385975054660681846064548494394429560400768361434253257980506488107341004452644778086496863984067374147843658414803158633491766456000077914494313118637657456106977125723034472168128174959070573582178167860260529856833199754912523065754034044639048970361312861447353405596657662781531314547331257955963774029296112908675759224917375346738889281842485019840176372951405163135677113511559959563420987915481022256348087852886281008041102830515645270247776610193556473471079600804501257274986019156741195753754066474926215317882151127622742880123364941791619917401647069069082007150894635938257370415922674060767935043372194770567384447220233054833189669067378786037147111092682069937219140011391452717980848625748260168160247523006724335392191258214223549575639122447323645340711173401601855776063503800340897361249055942126304403774787719969090921541613514534548071963127807154692409493174311740007017014321720790718456216632437818621741745869105727576428071815368558501921511064262255444984747871652411045778385978394073390687858413277193736774247040588795526649727806716325769815261158565697116206324513008363015143901533810006182070064930454467146285900338673594528483076996911571768166324615267462067246176575866597832144287039575401219724593153482963984853727654642952693885886727985746423979873357393162235740945185230470167289497967321629838933923621719427015913469844695702288781434135033127491126315752195553804176763557895093274799884094253314507952448695658845425378271045989704343319051935019715700006260599154981306824084383646961723101224416598957797426937768375120403515649656400791618545242811665254129524138188379062064102063799747049238620840298209108849347035217532234045656407268057157361217333081584065462975593812707183363801266992015845267499084547568258214190942728893369001047460103343019438524362303826274083156607089902026684887577290780077065153979621308360265475655059152601133990843525397750105924283285353497397089955643419842011374291425830345364965611687768787422612543084661173295964785698614121784536196162912510760201893956506961455964994822771801430057622679226526237232436182767240325647784721574243429502965408173192856430290963537235380504502442271649381472774925042796629675064603459162208142745330647606401092987426202259476748256053323008282691417631123626240071530244539159043271660946565952439696005093627190952847415968487611400068999819200676826020749812123940286710975467446434056194489368083395468046396364528869017296506593325538998584389299778807776626030263781108681463937133056129866926736428042297656574740567409510988435580744419536322433413761691480303527398392744080354844900855593421608295419720118200496801145351717714126017127500563408365813103783299496174098862697260316300674144718681166799348371896996599867891933125319410655105677563351001069807383800978357321532916852908582258213527727175372030510363803597494851185713754916862145863766264619197632596207542975802331082113311010839086857928238389987442056066799376992160415942283681674312432421531359846109457647018619675031876692611974998093701038135122042569725729932146536435395730750642804125690759852662791609745845968742374490019319814184556540800615684788348414074533654899572310571896350197940373620682621251534391101052032194561525082792430648858066630880846395895283460241611360081350941123338572044570612984583987336197064252361696891698869432713576747855796770123847762503083996930939760300494025709068904376844346650381357719778453612399832914658084383365230420686053651947826998208797891300073728462407332973047108393637370545125159434554148765854497585225667576781233228281045891221793048197200704664653640849648449870552626764256948045828169428785080163608289747633181416643993414492410095755263582264907217062950395251217493099334143895294489605452950259720764448884146467861883342068187335927814627898254783150072594689325054850302373792671883490320679247074439964857035631536637196939941069959183614849977249251008449642460714810086925610969184157689551586255705759624284772729090654246386224900289956617028012236704666037448530227341958466399298501303991329796300854274436743400626988134500668729367586186050157782251137444569039692271489603906597501305294637145531512674119667327032728923762585353355919983380116852950433251354758252379910874968126510660994292034273994371080410073043953671794700247651291428930168518275868884568213610641566945096246929165513766875360754881285193825676310527687211059792872418171610292155938037085409230645731853607739377377943023041789374944769256245256270977716925351775845710167781963318790715110233914968729109845494171868607546654223971730839735388034667345380312418021690539647532866269327212667235012242428625059341984175762631900650616774373799389938746956568291342626521740401078505474442118583409068099549719063034784650447789411468734704025493040300920232458614158548863324877243001981710751644668765315291895047331785351159611061774232120679930124737218125934558345328956117546605436681866240634101010113347589808733749365012863317671216737479140334683217958493758211080232035726294084526624809931823022463305555609299419584918640078565811848076277102033046889204454937944645323318847428294400205929472190996838640717907606345773427148484358549155260016864419507731151324766965520555792200415908908959854116226906150146915737815185034425652942763477051366514703702752532259241029967045989701213880791150951732300099181713984196264765310568573379179219731675685840034199814110615417903018315325327227173443510097767040578984633891684998569609205071960803590671873839778990923822249068890728758896814796957280430759733723239488481995575728774712464715783752622431604543946319080037700856838022512347371028988435990346250538145287345897884704780048821002188278480135467254947615573178379615267210125938187518206218158678122757024638783310559934079417846025903138090141368191817581271829401392943626112204212443752698873634643580981402728682859707956832417013714918113349928222272727627493581298244896463279870770637931505690942033425205719729152681783616189743455301348981757039770569309327929403618578978783908589792608405172064154470311991013425470321336539328361094672873902142763903775822177945557126188091272920456567492485469126701067002387034264388123919843890887189649878791471797674773930790754355717312624054386188266710743362215824242538380965716047021105594962204873720348553349365177189072837736372565099690435275109089307762512520207810548684833665512129454626670386379480792064275493607830465718255178079964033078246184234947433067433480763641176708183064813056726622899499834140663859775209966229954531721286959661258008833921434597648739018794622395516576426551495073316230296561672984810463663517908424893184815150018416342383692035008374218602760991469301734982441447307900768886683732160236537026454847069301162668989815278487130508764009214942739079854980082104406784889302963243227661211988993604596012165826734378813727247178955509291927548179923410832537997107699843106981681418547057671383237152695562190618203363849064060548653631850313778156117283317627124121460795447440023300503147559439979107667484482183899302274248955568565731615768035031919187677738666845104812988246465679775678702744108199566495376041805587012852025893251162793985922576584056418017905877990089987954850377862375850630534269204700444999945254433237818980042263134875049061153126655350956287403417126371810541377442632856954451372393462348821183527306227724791221082371521112590721014814234751431180130142308660824673680870599191915459240437013277538573161866616738877093965706035990653622620239672025326478816358866226369033102048836397095702240141934243036520728914038534912275367512254157878275798684682791407577721845942234877287581999555218505166864399204232295248013283194764239620417669788746181354064787496569032407194005072053923125407389577628163823558855105808191884735139810035995782217677019214923670122270091721798033745280575989368437886037497868056891652392409403803451268000065190310281128825150928627805187303012621595535370497283568800316349307060492076930395036995374329200303201870490610683531389789951817220877107195169242241763739428496910432070730585366511380954422432440651584558067426015534114510919909202360061682032924489211642210886581243975468169688297604516457242886944240735571821848055686663004043066485233913513957916146114633453007849362263344001971323267898903315294515318391958632485684275141331522989825803096687211862448051272255088752719754150973229037313833195116634808152595422835218380272439522000576173071026557675817755927686519581599042823757385207451427252472412199429692855035262809075280763993968893195307201517490704415104056186503152988597080268616537812594928249646568635345967354385743300371794899705224600463709248890982460724833604144365469904319935201474434308276962749577699108619940578692917685136171856439300133221470956342621454193693089025941918842195515526129248908810310025912065376417475567438081825349346891394596606936770090603934576408023924635446934996147029877243046010344936785349590866999927845815818967597460177976995024792571669755305473416847167973404934262008301812467699953093807595939209364170952672499844398293094820753366714554271355810370658903540523137465480411727221287109314296441878249491581280462686096663494027056538322282812586186177313146564533893709590636277630574219902435758230748502202411675034499685730561966196491838206335323367040064422284527275096057172973447056840277951489084074535907904716891033580170791423779134708809980689601578632756169322044790484218051380960527684586366112955901482605264420338244104094104270947591828851757919661653724607443128601613145432439268666415235987659286529538886606867651018479870965515404389238836562401967552228318276153424905187251952665592347097447924104166380240760174661078906205785170602601821006216437674470984877190093867451554714433053437358236331806835830222336641671233093369182372066041424986302749652369037251181323503298111472513216932393915290066640597845751171025201905716073116927574290578966939682003395833062470680575231885872148859175261004262714194846348333541910729466999799438657518448816981330696369736053930663611195501612903114573836329180123976711394880620920500949073974200272143446010087849128433003998959209834240112536143756491587612947414144146799625483905237815132346081676079827302859028120640406208692672154344187758427825088864311749842350446237960140645145373435846916588611548369248001077638542049458142346599100742676875278654421968061136336319058032448284716159158141612679233330790525781734661499603667073876730431367894144605593908785518534062372144866857302151598055894276990253331571388271090580303494420859844187140001183511555026571000475970221356057112685117626475587631331195605485397170402356251836870378106115743947751838267855398138363215985444472084355895543307365931589015967232939583789575818671356668943577324519167177605954249680593677362177205038404860876992533784040387522492536215212621316452451847684542062994877646326285676714803236220384820951709189698794558709067249042030158090701123628661820964543369566082140168414160338044719829439910272945758689802788132453769659110348894486294890227275582973788150759256931655750380940799110782531696022020419966990313813532347914745918031309427794781774692127900853084236442905302355983696287845171892898558475155053061209101404572937711860537086281360038806291045364434105191798065566722907791037794002809065095816092587040275305506690985208087231663609247383506752185468936666712954147872052590935646612428413793350147330132217235928243832718521927016141728937305959799400915963860850311809975687862024796275086090350200351111463950701614125290607521939019481595167191294432101755013664681049594973587961084872318018252562705604202301491219410413273791188350941842488890205531834811568861930985922591385454402354803094775285049244217872392494490596005830967380594557443069708623972017059498522194479424710238174003101456956095844367259460123112492434557649646281675612601884333623006908562474020337296200670182782683488465705140720142389128499114516505779490467698290666118529982263260149020702854997572131178865376272751592401631925430901508052512098663487102715040786729725805526544239281964082564839566626503056435084934673305083229739873713425750969182061367521212756486906908701596211478239226072000807761344760347709380630438846365137958864511973894432346993793568132930667547531942638011311208528922051276214303251097672064004810789711787016640841178038651168676127398933820780013195136677950273701739430351079684820022889127862771688497260098300951816382814644915354807537891387049855662274751422541813949825084848514317349794245847150096085912445859272560707509457733074219840801410889233664626340592115034440470124352137411295653385828978996567405065366933360506002346774511560009144018043745299597300067676366066663530610027625246771500631334152552653919488249038973071394784310876736423937152418631707318557498532623456404185827992056012735647573732923859803460863995391096281854073701049363669145973527110424567280184692489550467802424292942671906094908756492644304054375557375520773307483974930026607365411198435304495142313270663262922321228986227092434563089128078405030503198876886386324426155723078511521469816464063793850405679888274646795902251398234892543443059306109448538424352640505990545112574862532607546790556247428520709095673377584845492238730071320661318537665637042554939665925326877044701064109978687236438712649035518557580036976103467579315116817450736061721340547460624725894908617959518805866614816941314755078777822006569562701819881558969369100674979842353684767757843056810987697684869237772593395922198800855950047629510703152390845835739823123607294671870596227657273864220009415107124973828090834219583371809044239353486081006049699979447683048468350067889671479033194334509198622375744887896845281222156986319056323477615346978689377142612505478275175092053592904626439006449065956821617471959514348735019618392210420474442835864938379904644269690928741518655456797796983392050767081695401025804675945389124956548667361328018004223028800805686611338738081806826994521157314837981874340368988511076455728828954155338053450451390324881876910271576260627324357574962554697271248390634148997059965132105070089303222927284985513595764642951647846772738857522613805387197573231325184460702308268547535115334169610201870882186133311806410111341158529886069823779685772338506002720212410901769177938279955554044652383468076188042425359796343827968262820096514404314780541105146403335376083249066571385232004006456170700309447467119951757260210742358083806772669698925119634451468029731465639316895474127782712681382956211158865261540883124704330362168245127211447650711149716960229944855169631313464799255428882327481361754413908865639263913526148288048606036115903371946431491700532831777511320296795205068264980068054294337649259090987962908518655534689853229042498989050153053011966913290155272880645494870047071086241861165166545860579382381534898249503806216912735474578662347377998995798352294363800097711720188104564649287647024139194744495615841187684500400405113898027403142105706385008566700851551725998691692653566611005040642003547985433519283471439322660636444725239218631139322974479772793693549133783295685222136864192019953928565513256061056531733518857354388520484582521980224282843328302758218682613751335704113451054398077655709533869889164066438722145115540524690211769842542934378429316370933632724704826006480443225438257659564451484277895085061541594970562599197513511921972384838384688520313732073486242667750627144187043348266082872376218628125232801923962221583717259519583227840881136193529738200797325451749675793443927291508722181280245576236396672383239149304589398912060421023026596949183431111421558358178857947636476819990218116763982638958598524496958066098401842774605878923028798555282090614600232041078970182255270222348755347215421992103565665625044433654369871968648790684708328047846658490986863204821466870377734326048729045945069685218954941584061596232190589790583883783236116418558308640313216197674619733425648124375560514901288210060750742345126474265121229234899727090694034689361169188708639269952420761005760734979183520033203648847763971364992286036563515684170308004067566493075045031496145174008366138649255503128216943054208167435163620317113568709468034084585846938896420038066824574667278418709796726215474145454596455874758099228449127752381627238293344784610907064256394677268667133673581640010843912531978525130551317630781414171331092727556533995130032027271948752438486930049311053442406032418492771778387617006728672982245107832683635463122505968099962265953290945248693707774984820573280571036473181204185967974506238754361990758112517599909930397339321773811889699009089873419835648428491512240379066523710552914572214047063887947114323784135404019595743685434198564560195498000866781048091572860808446966599245397331220109658806832180629840700489326705122057826658104082167606667204709032516040755648709666659073056616104392839391583242195593096246272109240355657113772374336542344540734840793307753048479724813711343347879976185362615889172176061387459110062591530801100366526428902855437350026968706468460073317793388379683897738460953730351751450440470842160224112091285882276310518904070318805067447829183806218750736277247324627881083435161159767305732918767846688812840758905386482307611567655954219630315551792731819242401050274024445477291990463354869599198421301513018387512210423766380731486922554109882790464319402462171197755202520894474377997415261157866317318015876310267828387208691548086410400797961326376875950213793065761269283925484183616644615119241694085826487155178128331179464044041835015605795565328848223912195406560736805426793414146160399990263404023939734545232843004296302647901529254367053200232097480469407198119498755907943880873156879612235805456308834105548497121773075272121700885858531583347676577928958500619961872719286397119454407216510754640603153863340802771395492085862043518265396496122724604691627294970043697437204664975327967572156610628375631623346086372381075458772756486866192934330789288439715430885073763474786620782038701796518234282329140625744174594040145457562487164645430128165354023752259085654896286558584490268680737525083988805157450337356707856847414382790190042932712727572010958426728469040823652069243154716624567057633756412017459022419461210842463746695336262296188559254515871705372455196365692124749282292668407323434585949099695215413282772754673165338392569794727144475687067213598122074700737267493747009652914416266298645983312645073852623793048049949787117861509763070281484201774768131484268471941280112093646625658703573934781512561087176076078621953967497109839470286475504896783946580283669894860047609156040220215507369049853528203981280937209719148667977265192839426287631763581604420112506034901507811885175456208475596177516791362624770161681661933896689111797044043183028722503126446360201923461159999704343353852610521724559832152022664521759259592778858942460254224164538888827837823251987694903836609391187560461352432928620842528767463810066892969839953088698189118456115460908100749353565330793999948305756356969952875678607178996203980464485403216601974100486281809626032240181660979707389456844037460080498390721448857411529084618685733440617845816651707456844051544578861338472978463846555856594232492885534674330625358278277773319487316764076156691431248614937557109621475549113180611525954445804532010820141981687674682256112104318270567227955052024640501880426102399591683374705066034385684384796926243512381676223370454265260712461151996296422099323855680779900245369727894516505288951013358877795595805768334749356313289259943175406581717617729982462098792701840758361129682997365597176304156577666259445947706881751501708792498184783278847717485123889752082645363111533993231150702110314304011848553559642322039594142035281534966152461845575203941019136401212061729684652394866383775943322552308519004486069059042929130682796080468190481216275169083661517990862209392174749832920287065606902055049469151422997702141681678995512245874017177405889971281388793245275356807374380801530368318886073903275378371999534139307607099867406758304464007656240613068236050344259537090695214986066775904788066729607881291858056421607470517672320882316523964537087390852303425340424158281399877749694593959603868262363718179072680301130506628999945270779261567889523765912872549136911905413890407551579209897294672630582834930154278876913775748599971826906240401018466914813601954038108075362688583322119716261795605491497821907862925643249482419584899128651349166493589367232188466352669034702037489578382725854193060575316173264075332422990577898430709321945006363820014902472024079659525164668218087688246564895711349638060780946207526739370837662332990669394508126483800763176377367000524253162332366337941966106679404996667507262963752536200952865516298404070735673764921988657568203320165039187336751344186039587523173106233407259423827157798668507898565786492971457939970182802118167048236566579016466935258390897164570856137284194670060219373604315199790262428418797098961870891073596977144050204788833852660932041925915902240955294614190327648408912055507861471884602393536662405964236015719619757859675446572860250964835747457237947749964553911681994009024051038656313291532644958959641335106278654741729144990041411958267791964058217608629195107091373860602341314288720056853592169237775522590458246838081821318628019457777100443695822288782237685007661550623861031934054517449974252949319939292349763414522917184654449760139344560349022816267830307846335088677746758766681161293900093034127547287037256954200211428306851891258374788037952041680833436150772262877954605737404928933625671485775700017381385945103048874294131119535418660245225711450897311642904225170030987872805061942613538148635204342878249595584170483842577091930075198535397966313248100485473036931578224557075268505632086391837550823478758391828772504536203714275727098125980091672126566517308963818416428295647487017802240893146052285000201256486853106166948791892212523911134241034906581101676974156526277235144179315703502533433749003996975615699680852244217128802580345052651115360382592850445418999587873254555273329264157570669634459014636994811695900820132014250117690720898421695435799186882751810818693231322072017787054826763415789302036815732402736182058027257444868640443438718287991165202377914530089011151237343934472779696971716446965315325582143158962387840716830862062292055615839081915427807897527433156408663794970831787934689884072670720728979422323240312045511491083257537793500503706827092263469174804283661623826135586252885213530881066121356919421997838867155252023234845784294961024178908639971961637785471607340043081388858092656936101959613541381075619908882081806790184177395549894838101659151764784856577249587548829560691736063569893951052811812028835139751792616407221461807442197602340938623347901709651905632746052509171565037258046294974929428747736495742360420271047375670685161415236954315485169122080441725932276590240907578826062009360877585251607163127775673132550168809038149263982623431582315532922918705671829808344568688968350022825004954447441009266987809761426467412621162642387159207279394756645104973373566618370279509447109665541211022054279090317998235968068474640566116174765175654133546267178373490201049558916210752764912173127874456300062687423067029744337985691985506193903786836393021395743524192795578543862786407674619629057593826562697671887719685163567636341585870664592198112875045389161335652170872071208784555432343328297296662392640459638721908058154065407201557010674859343463766442832149052849525423986548038194393073022566965736454874768620922020982466383671307025349479697870986796224338150007248782876594480541925918737443912163237602920994351847536040330678227042821211320002785268113101955523418115607242463409644198322772614711126729030134987218210006877496751973895034138608575648789723931913799382996426989829589147829391400419422179652162969259917831596823990122105818793319461182812234824290937452909064642509089683036344316754647480720475763806994830779061286918825902173891780011453745564176197996476689914045756413620278293101378115672481514972050036758471641333311735968789525478464117303756930352014111922250722368656441854433739126957303768089506154043249088290690388670771534289174404403321470736329249896382265655604120278894603701564042880534344348628425659704712320355663945952398797731590612218945727615675684847598056558707824837181590767805930835431606240572293202522856103354641589566518492566071525386053507586977216201833327106110333774254889468815338348155637547891233437622173135857231814982577604335392235111997977140105177296499855822110251705156715240646148647922107708042618519181475124982661635994172013682884513284379350250162022822288652663477546509322821447106733948811465591679941258860292471874020834430198547626614882201370748185284114363713469264194504800146414824573426128434354126934987416336104702044181526222472153953955986307982154099901879412628143894592687889572456390336591753949295408435154508685288596978306472162464724709095933018159843911196755311088349986911191493547683270108627911822287687751328027933862753839797933371864864915771009218601596583303563364606999014154618838516548266093551917966884915999882357815704713621667395714237315388585487018796697564442299861696744209564827714184203119577983071987783957644649039380660273543515443763352383225453896799363073857691497314241948310505593816725080822767071416933598509487429840392198774803013323859768140687943628083984180029772126906584898453084404454347467813693477018501872218291188669486385930729386449974317393411704300396138053897280569376380262159819647088990258287134779877811523536254197667833513884306840027666764502286967708390524863020352856969730808509794176503245198998602743918478684726487317170939795559119609104741299360322535556786420777161830310380354428566069192856744570921469955058568953668963227886099180636115660151543730843880348905650196057470939961131522098795979822190081811041292218822104446857277509247441913603884602890346739463656117318472082838585419372166925738513241869936490641133620447535417072711863693409544504728508041183731601108309393815122645176790907788694588494741648540208882641876584606498424685071632107591279287476619168025292380203205237663798264361508370923124352253750196370420787268806421505461993475188880774550134558429080285053513446911544781474173868203688782050153668156901331819978739342938238208231299163860779443166210794435943178986151510400805372026588381106150093188889388913097128000593777714719404855733728719322545465110524071419387782361270333700887994056966211221056663721393036371582620219399475007011624418933519554923384202334744255753907211264067470603842557754400604642534197062848598176183929752118286750093163724313795095721115759887464006324109738596016622267016603338269864923078045201076380630279555714996642867212395264008295476297492990946991056039307610210661367706527515051548386054468274977271327976746460817760238671066417101611253169896292524929020821334118376281659937865877012985478216906951933738935077644520796180679690449605825397270149498992621631886384321796308345485099719722464546831579158137924609095744407688391137398025396960370854823577453057367856557573551607092884489950537707538005407261484506204215030247287052687981826980582475338381360649338095924182654682760268364694188848222448676058873371106307756425765325362077635241712473411591977209194931206021313233686391823475242479523791605977247440848883966207360563098364422047426900009024054581965306877224624438585281310741890552011864547080935287334004310847427578986613663580041276256659150810207199680904038846944848834220615241463382051678584053728306288847656558813328744355855692176704151208211350937396988294070125159541558082630032485072312281202788051726305717186885309144444587906151530160182809231863128690407784940350920346407748524286987791165839118944087702192484412301545088492917493422993669270889973357670815110312306564072709021862854928652447258287632610784253447377681087949773862071309417161850141641983923638734233955031789390812719332822287690427586504089435265850093827915800803831531424014410249623551198843785294372634741532645001818332797868176175540243328481141551850023554413281530689363872483885898741850603781047558807416755042374809559816923308414038801206154574081877290145377004578737860023009918307740907582746272517558997301783973055309885755573228604980155785512091708297517685400269638146897020433128514253978397848073306991998656255799027730012695438885250451749268775387072666255962448057646331202048445661815348544073128432622978205685631895296842312125044807970029652314278227447187762893910192497551753164959035304499697861574017152996853262732641733646954282629105949730806479038781030199485318360849104117645288385258632941185453545589766828811481475638900477565236610213673612413252457300199196712580022656583956452674697768327613039925034444295955370802738206366386268439912694997231388486790988421366932633150706256464891111405093059020058166363978725336914117849381726993502976540695466484313198733934309010288240070613450860562652356869842601304038471444920884504482576251633798577204860937780156261802703165835789264876139547789299111936685609355700234201052549458025700592475235789279639170423578615959206193636421196881649125160551203424937312100927433214641259473686183805128098567035641256912701378877353641486834349395015596623179503371225280063511393022315852530446872247252613374749510930490539216179087229599996829782177984102619789272211857249487836234794741637560146518816563224345284919597115821204633017192558799377352532273462819739661772902587531208358348815637011469463723018866889087129647699901783995383442011618310962941407085668684539842140585852134030320225672408977626323529355830690316859980668197287351391662277172234691744035429124573046787367257480157277935978316787438405306996588481134642753780322216189497079457876339394139692819547038444086747891973589809666909611881750319575692286824621294539709944300056179538189717662988355976607905080217936336171205596326828496357326231795831593728845555299856970286504825706672166890741464898062382461254362026436492449657883263884304673363768154469505359105672813099459764554545661638969357974859960200460193500002573094772548070581332269356942042260143269991988441516110412903492375831336669021279880663242427811004499783587825377275198871304304199562523346295960245923713368611654650288682486953950761415033163638748291744583770450755661093978664059291557887555457845437172067983064081959399994248560492276838186393017455123511927754830243665323413117886724193100483231016287330482681918524618031279056907400568291030443793259717329817602423723558713635628827184071479450052924048693293527498667225768529866163301758886583176449261038374139594356210071672925757030011060966214922097294549226326600398033931730125471271204696802476351286222404959020997083188538238289741731601894413705225109374271352653504844744122839223589537511454366032481092139073143885185779297738951641965070977948398455879725619654931130308124653440092407915383756688248087355430045687171697047581053027951959182422352443140454878503822262988869841058141850672354368500036518074702409102093579164658927224434474335592422355180214839272823034076906819508613667220115203867549126658702407226767205998841227228842179829841040370255485891196891270368502465436141952429717575577586251275790805135015367763702468974087051411842544429767302321470517475351136929216344735890389348969070529110298731057263403580810827951728533546496905157561730814292185381416011495935256402621639164629324954476709532912127409183281122007901475202378237957273653362960456208187981602287630567160191940151240056078529564161221268122270469318471794970613510468016498753897257643676822327811379355607591775136140087975627957761749121124355591146862792800765203718010096554529734319892907147184255182014255961004251730221715349522318106355452533304295665018704617049470123868579348314642436196979216337445215451045234275966258937533532281207989922790973474238165829183437535080256489206965555004269861923260303202069820550532790002930085439769248846472779577227782924174821169425067487246252188106851236027859239115577076079545038323530291508451037428468816264808151763297584703468364156073988739926972371407638779203273775732378566231199698515413358797489370237433152463719019969696869647009137207449225617125280832121533273560389031899280193656803781241286462985411985574968938707658261342178560537052645634474566120094418728804045181026340950516410255017789313509760187423682962408619733646574206965219324036323182001115392056887988551815827586487612410403926133974299906377539194293868105396793303074834965851561546622292998877184016621132715788035033687100975100767562323259254735827827417916888068465774926732585697204051584321713074772200498580588728426290057808551181361792408379768943852222431484792301123330294201427193100547922675986924545652406736795357679315490389743421411064824002207106856677159461645818093275086413115703049334349388571020039890874822000598418228900345870698680886614389933634341985472404759850257911083166978474344229622213188422887690902579051454542144847627738674774881938044245966707800212978574100236926119610596608642772662364786389317947289928254428850551363144925689163223348103030063152308118347880189270481380552934044273890684782348228699195919510341289941975939251773438935354919793950468104088384366337511251554954849282698749556251450582325115400602000597501751663665532906010591707280331552381926020396667695898549474143583202111732229690409528647741707484136420368292901145367785697398993750415695102037430614761634904046645875284943399412588042962903506694662438308659597238866556113624576316476463065630243848315177493694563584499180965149537062385945947607015673964184901705038311416133667111720464065038259817567570324903640634591739467460668752436566874151082303373782864847137862884404980462198816912084511524724637005533607537563881770792345317855244307565246836178152747537472814153782185607480876325272961348266794189159983595371925060542560499225028601458788569021612822097883152508423201071566217887619890669100778990354903331983382124382130636455540345583470053188235196029774070357855069372191470186836458616264799041121879622381664351312433098533084323318703330584140564965021593325247817182279731955063782246783376141831419942942003821756035234109202248523099690130461120132165048129103684862518704742676937994660925209516827185812317202429710434031289495325327260894639561305376822487034842671500363207744752246907652057657379208663806881248225802651071504836999065338501446256643018412933548794782248190222784056509996947073425870880525089507599333295777982304079638689607713128518749839186365531583103988230904127085071714712613955919822643627404125711766804967775158664414081202948152489070242328891944143322340609794733174950774684774084755748935653947318543960063959942021056056565683203863131637930091287016760973642243528696578612523693331774692158990903908649910393730342349456875975017681367604444688073563755458397442180417205658552786409509162408421572449820443975637984898807023010463984626433333014884161646306494597447531438017602864069060785126598449365703303358155932544089213909997719968578668624388495251390138514916510509338130136524237810699826895734242277413242305910553486232772422785242116621257668292158172024739862037310066870237904908320905546952263186621664037056384954456673563180929249854141899926555628376878401600316441792486755701453737887523319066932251051973589161443603207246943039707745744481131237194118286305281030388075836996865589894985659405475650843938895385238502899576333983842672310791952964851181946226726357921406406844086765407896336972884379896710584519489409104535416929992223489738169048068550361092480090464172701298528442554516495180330115214736349512113884463241316462199781166467069538606250965244036151059085027782993674534730689936391481259733026639400660531549520810818171726452487351996437680516484043118236077865214314737948109864952851599737597193674558079806515056043449642630132076460044315588644925457825243196681110326487420978024174187467378840829778265101098606030827218248014154674592600342354055177381961479451136100772361424353944902920625271932889056799970489229449605128257709622154587075089116265944360082145900274484088296146062643244881703783969083605921264389006187827926870303153748780636098081881696360378338455946378783088771118303765386152908149971093106608126218510761400329106841755683265398579191229746490375047930993781851486606437246511087497926512347249398737198961858280299200723385176391256029483138130494628811117395537419708584152806258981928352530894256307164149349670669874665305328250006829898282659075599081181667286195980465626643057867941934591172976286284151996224260719553775281145224880087157816202613642062318836482319277047321223925703590684621157548159830701208596778293392469562412976592609707399472586896246889077412910039977640018316555075295926457797346811843535185247059630184034222404386169223461826721281940485481087295820163280078730083708479476644976026714172843485688643012823699228406552583811877052520585716749975578315998692833942396065720600893567480747644079751037565139769058830150979720129775448740994257265007242613565611239156815708655808850031152780331827008993480167095206037025900448651098966459795321097200298254403745250762474300588822706777043756862089339267383854180339149707934037278957300186080756860125099249673332239591319720872749251815078866140976141952987638745538424429422957606437420593947187018312722494294263420127407768596786575127761243482944733119809782540124190833356415519239727700192531383048754711908323924514712374240053319955527333900582390737856734851467373253515929198189835682655180036493680995548723892693045682204734599962959082390024202634435923275566439433299606929328354923830138923456720583748626484220889953763918112821034694150115803314429274596991032888180536453720120593645186184300183403371030345811224782456707966239481412099317749966697030633409198286689650750918592517489882218077755312477458933767832778093165137952274168079170343439192896905583230178322887210324248288524522441711528044290898840201909407673345126380539505348461961159867914941105652936554357113636433595822424378834700036468527845226314021824227522431017882623113897938102770928665776625384097714113860535778581739857562567594397050947618344763263306794188766718825301372729157272728954661822800376830678344738576671266046242076263019764871792754524484346922739692758890864227091997955068047705105481563627818165888307787179593543159644188874212064549479225191948285437517300925548706237089698773281891681608627661213175951168188820561774098070631205352364894165892189125640548285487197177825707672007994618077341966742390444002334605772420453028628521886599992883681164447666602621342690961826230926648637603619153307474561293253910553171744369819966593938504601342313085195906845208627700327461364351821575872258397377177178187958697077243585023244830234843217168237990471930178071314798432640933320456804873690146425769854848449970689439850179083973881378385582429475154251857366297678927683096450749702934397356005771920631465174894011598132747984992486418933995778491435422579318359494098174241467349043303085971340107207811169279572434885353784555364342762313766918174467959343867251477375728318547258634330009045447358295787729340234881108271216664667347372917014367669867692938249576501947405673093227674750555034230391502705420218485856654069124995072375737115594899811182139244246048433606966395133418101423120005145252416483935666338709046537697594973219497308158518294143802671977724211065680733230251990651342963805559739757133124414192751002357645256508802855206751254873837370588021132644286661005264790565196070496789052080205471458004210985303535207032725931582336193768439743940567876308356561136100898378482611370359467897577543179338484142222874656576808651899927750184653108323214548041285462325527323389262692670045080957507938914474427309813149026070710590150135437651129766395807020379686178695996954958429591373409993645261227702377543817946015255707441039521247061606473631237270875476198017356259050261818263386999889003861933352606869321333935367442586773685007264081231028588899828929977142034649448681800175134257949640249771136247930151920500375079880420370537782865776925814974392232560791110568981784537614104783309607282284754956395926694851205444227685979380618425649753429928897738304741463770757104792687718048454372198726831380801655130419361001093864057681577451565727089082700951796204322639716725691254595011353792906410211159871820951413354327486295444211546759067335399928134352498657455831864982481336529166526371015384352763798548688705601124102310444333728657678509422107738702512223922701146034109108269153821064673051010914053966385154644194438028874753558522821311782064308309612819196621643558008416885872737953123422059506199644368614379923682401043382856614697442968540278449749778759377577697677751307817946672806157296408619666775266840551469577697379294955447078295368701476491442279553469659360780114083023053227347698588815125857578588785989171098623988074932763337749691485474287159386543275776875812855304077120237049562704717978736433450129938866316096713578760172412710225899442526584606595751113720230039931284647920051419436705627413712585871329546498419840256597123084574525520084699813936927419579731983365907085403447423819538338668890864933892090781781887999702492644193295262708573140776279638163060314122561364828328322378450417918677725050682046875624373619384738955736293129239276155581006698068610477409568220209221182785499239099355100969929735490392456932994364249596430384054784433404711825415156259903294236463481954115376750983529066840544259284427126876139737731615248146682946030973205802332905954168361095744051825667287472737508522669905018440528464648873662532270582549693608071559239895113730829085649343283110985152237795672047431740871225801732726182264553009334017943230277794384640505709917287655014848694011647869281916572786002196954273978454074950137316401697204924222630642349384910492194429114598671728605906136270017802498746646953793500421937642656157378383219868031844825786982341527660964388807489866253432794804839031693977715825832211161452392348410091713605810710213714232474384984379519531676214346245654616847657689853898212095482141371672201230431943693136554749599442737474172778791147905899609287746541934317068259191951118665295698527360963100400658018523190020259163591281337582972823495493256810573041180693628982621329745644391443030152684451075642880027969493147220604472697031853980461541605262593326662755139131380142876025929763610279311040752164714245777474610426479082857106286056720189723771468339741844679246650284988266013420182805549270836888154848715256368338080066864340920222257915676057197707956288907250988528874559514652382839376749933672763709586312217805591194822648512391012860767153530062404541841260683150183285624455876574538712665544640281571904434573866540962844204927002310140315547724619633831330069002670430953185920777615169384045017725752275728154894738962604238776951357054562364114226169259436929390177433154683208785651858294175945025569148970728293873462149936823407125362774587332044395108320175937148696398561527523605675884434596061703265301096875729169347991598409003768353577583595414663124742557700583071261519869659489352034351836640087853876427909173062952757293203210479296043492892358711522782035120093925678704668070278595185751019899320750939032212518289964537891645328009576249735513907665668442933367123647109876933795139751716079757635364660884261727775747660971091129217791914528360321654267820127162708177925648871126781057229187293048238073025588531527817419003986773185789114317300128411679212273282695406341524524741428041053060208622869808195788493657186250933570037004531311993598395770256781557298731960956462005862147759450493035436690515445300972872698496364278118373401707919557329798576241116102926131536630135092914360786514385038103130040456017283268206177134015836002931557441957356902906815571988289850318727054597764236905629528306021428177194115851054617020944470473945051193772184835061663436012417685410180100792911652105728855945281393708728228860355031839278279500500218872453863543785159832732383046592672284610990120203538325528265479952623069843604012496816523451702633540105980182873659586260467060346869072893692204114682616402580157797453855811481671181913482219343654729679053448797998603960446126984225474702719169224216946537801483356494129810711868160693460996145887205957094930388849959870064472401745726059115784887205630327888916817055168022405432246905659235235482197763777687221938059719862636711875520585648476958866792596339327827872174341391027076652618265671211363733080282345545550829221345556275093351551216969921986648935483609567006191286940288596180142805893082371929470293290363490454387581226256123878260743235333444355523125780053000248291439238394958786819356436927449637019681241182846962054732103126364455930518142881264681822476901279971825450468490565122053277540474716708142547188054718329869640936790848740976057931387049176371391653905388143944571550193295258683285964180963605541407131398394892711200822923604741142096256744858439023606945938817971922524831813094834895890473243329408665773536029710391548091063923462013094716339348440371107567282332734875152052691947375290300977217284753391937380374163483308144866754121988180723541978397588071130926605131829063864191570527705281285086175242488185154236487176067121010368785574299764582127075861759210036389371398374387250699995013383538761502088362625012797620657600031444011378827196667360452827197318410617257116373492844110407465346721590901482514711441060058456715484860016716533949013053752199158157438944985165275436247499028606795823768960250112313125630111816238383475868401999058773443610503067464752156939701053419467598311975838825069798541492141913076584610876211155773468461541434697164123551434878668851655526617261923680800191601442066133110651120959026111502738106017017309163286959713555900077505477624045232222177463898624556462295432474598523260884122030781051818067728109626162810475716831229457523661184765664734165152117620101201079509181723555832082311121009323413674456760047637634118187258800052656433853399768289148919466391050580480739832712381988291109260092830302628519028093905313235689064705350908709865146868036150726192073993415555983488614005515763002930277358179618399432496692753237656525156186694344592302376046204063898878886059812966022660850297348466496123196953013737129020259206244789819589657905201920211754864952791132334499899991431393711313200492714876159036330379876246913287894421562903314784703764309397772531372210821386291944919794465722122904335711833364226534273521018160242024294435780417777414383841836125089210984403798552676085048654870685449134677798617562381875051048427920448641012233494348809185191518782101104925912011281825078209234838584207265209985784595299408403129601717055219290049612818018921738728243922590286753577088385877213970938569700042560895508784980494877793784146948021760158636808161539500662684314804129461197178631980740784240832419817896085476859436436726649978659102568315292537047759836013914836611116624347765975669187538882019708755864290184779307068930311294952912868245309977111687432088217776410253271145535296435695265502010015385448617828591437881553504848227983060043581826382879973612161766927648766304246807081408674422391029942086743929098331254719686987857421040631771761404971288539123081754191602217394358109486236598688408409297298959991094719867536725091992687934080868297778091021978489420115344188738962712427420813251875427133882569247796994635261057074190194793849759307320043551357070267003995030728736292894999018549903022551367324444851556034305438871059426229058464757271190809587557597494228760401161975211851673536713254338926199347587253542455677174142467976240806503068651087851003063229276043319609845103378913493366929646528474747759053650743849843345606896284642935344942766869264454452567476913206427409618957583901099693659098382214156600617433462152937018342168582886009821656130449604651054582349034450331661968853747959037222511664394830151875465908998033452590965470749051716020953736087710205870916817184792690365594893034099019610490748940568885569410589511294300952917224106169986803876773461922847319627806256302627712836478023905131835737851041911601469372583778848746504512220019128765882696808332606797786189960317550129647084511130442661273242064119628720297276888957568040699426206816354469770702383016321341814441849404370049651454806445628636917627589469909205695171301343922695856145936743706360392262536448684495606218202350321679210839347970982413806517971717121102316996046997164382100552223343870950163509951089321209279983487581785136659004781998818867034145348747204856558963573398778964313648966242873075480546886217887540789299075559868658039916083838073822313902591017069570687268496712308740896242835819471146460168906243066451988223716797852379662490599996958359263428725625776063564979396469020294273534266642484194034740727080585422755061858106647468156086290061683940635647940236614573932499724611820968297160348415256811244929967704889354592611646253050296210587064485804244100741070309964079909791370286713796982956235750561105101592927068489047663668258479294945904874582723337117976960103392638303202504368060270754118743273009867758800746045451320388786802810318360460209506093976774463622306691540285339135823186233126469431635457950395929525180023116109746779818622693251633674239919320923717063018874907367046039689863306453306079000724421857256255924561705042737949429737772879686294935607485428927419926588761136326391672296000333651604517684260792721221874892574263510569496640723488876961351535750907691356010894608787160342502299207729875815494436070753929658325532098732963402482883120468210533496694110120312154564054186982798004018585317444003303919973027132802791698156651255563634765680661562023719222031122820650547308313176948585321016047695898516825821306216609611303402770340229536272417433710250417093861683674056302964693414247604306070445453427253558592437343781978572866571242972748852507274281335778105500505927013921169201331153283129691404845509998712862375680630932798592682844738520950940294446810815363999737798476058872803184620065670155671692902295900975780480105879287856769458464830611467016565257426893296800168518791671644357869061239152760967674337135844020314199640611871102744723356858627704117495666887992932598500455172312763478415686946928963380375874297830827083837265269385826608715576031116959517615657519777672658427803227280896418864354638099064937168930930775893765930803339422583772284696032855036794924403328192839958190432738469356265496071714723370065219659704475295307766299421420733702609148003358255515806979434253136042802685344222093351019617356343942667568925594323495187372449817953896452602240184607727051411229928671132846305692636889165828134362983291696396062111071219183334644886030140004665658001186521206533496895418240889151959853433903536207645501131182188889909250586315433902716918117626334756192868442621452612152714736388982741361346994800201990807544725021161398630457359080487270457523088737453087195226475285261962480588336842599303516640974760749764815477461666638306561863673956856665057390116271130868809123032453651123552952493336501631606166395110669709219167938992128553516632048221390749502675599500729018182984702445442384660791874483500851435995889576127874456845174739217601564580674734881220038610104717889784006245304316832058585297641413471639587640141758590975771207332980486652294633938006019641253520408490962172536628851892198115681005282377893544410720092297852093780556582902719850547962618364744784789372877219889135981138297924901083233659125379619835539506412350967610075305937338285905614725274497795752625225633107416873066198012124557976635650604185723135976000403798499798609364209594551225233148222522418247600287346585011854603292382103006262355030540368420259320686480148576543352620756959053055842918631046466626637840967040167445025425478218421591240526716445300344658586805102311583642950891861656590638210932750919039533884663652253916155573625667682958937087149876052289404263477657464642809479351666659628968814860340289958660021896747159692680478236039413226168585269331266729158781226318703203875599582179192011095577720819247563588740687496439023963832563528389657986196743376921295095073602763374421628455005644306312462667334194659973140616356870523335024972810378499260931693429787988546691113523929478639220338350302447124724758639761153511029233280297331116925097689151207922838169503048338397146052413162222901851006288252449470131816706138770308480561334703834236794648392029744356448851643314677322415102857220320543391811907167251245792944856274881786316015663518592424593166623473230827227401245146089356938336858564751188704826771224444049007778125285406522997501854945891249915076118938133616303312090374585520808915589987015055804609753814004619140543101249044601251299835295284088386417110348407296650609447219787454585129413191908279285329389002218260478576398506043874998559776108307656519592938380259564913200675232696022137304321232816108647352552771324928379574451888727491092123217475591673176975680979477746445939669637349719589975126443360828629108247720251396208049848518613111899562875207399181892313351230053190321003402989420607475751753290414818320458287689831503079492672491029294799939684999471020598760484963620718353343479586179102540329042629549621535085021500592206230724401400522085626038138260886190550819838324163834309980622599942048818113239722949656856811907552320950433418970045658164037725050532639326408351372482490587467766959470140918170575463548176784952637029655756023757177551950691116407549017234968382610087099934607883938522537228779107626946412303418389001287506593382352670313514566640291726927225731720149479740093897103978217035310602679006980811790844419728876972029473842152374998076699636574155581857908926470272562754534929615422558984588733889371012093258698953371235519056390043500726904626856226524598983290478907692214376899309253786237650114079944885089222046157206905140008735749890371220603131855913971190490155402688061285365988762031560231907658048258001297082771334877296163025072095411383314466091037518473473168515936137462689586926452237743085193741129881626723965198576711996054803536881540414720364204784745184329933649094361276682433950089555283375068988888781547242139939243803358228013989279103634863343268147493136289405420358041627924003330604641598904335469569538897152059049647915369210146917104467268043601932333082009977846640845508785315968412099501996200361705476573461772190750568048988005815446416880799246921791629292978218385204152302713402121294018997997686080468914171160264336317357539234312913758127119503769302442198382355548352695287620056086355873262426650263405177129680959795817033476548886035689902363703776917343314435117385722541446870012633811614786774871885522990138389905296905836525758447707098081238820448064284629865446803611600225873404249239149706107889718702966035976834876542184244777646409630989342537791582792040949609170950699239858374319849576969060369632116807097886847414559624714674888389055087108420522505010483038943693440764376779520887597786894594015662106123430054277718516329920577107247135645309522733853173827160334095527106314442596559759775631644911505436709863472236887232758489620481854348393954358014519766760476607359528699721563539845769896748668766830913351874007987560292729412049752464417375010864241419923614413757361510246260848253501513858096042912991294661063469220529235719747963742134985536697049779988869534029235485183308284531650878324210181800908014340382434264219112846610752535129075353444966943159878201875724420635098416247002145651141997742953314780556704179521004663279637600196590271381731330465772726089018210617298092645228672140886374512190595674006782026814158599607618648515597811901555360761287734998799272830692629121798035374601824928891404142073880808223510583986556745549446860149981856393948599919306847288103002574689066620394820621458506702706876976426908260413558615424770917006674307176294691202129392913599312057426856422658408066716204437862453309125749134252356782302434445278490708120974140589091344765382941110253322255197785984843636048041649157945646772176837893542108361201290266880555072908915631991978116006939608836689808839020471275424614793463642566950539515328003006978074831076962593589823991059401883018840601740224092807913372868380581781216036682926000331815619976842803840488319760598825362362616723726347362213496666648536245612221671744141636245378963944208621996394260358565588017671955232000690374016253261560178132583264807776100981508886421972156746321466015648244150839129817597914717544778155865395837417227828866527425724568124761264156994341974884692960960700034915767608711915675378477666401644964693095756551266262941846446776920205142592011018591628013742732024590348575811765009778228447082812874610453284285144584863968058403035036318454636447091465488671325934165301616080166623612945244031390022037375119771199120424415825287266657732132645286075764103998576649192329451980957133664156856476085178847855565429688955825403504770223491767219909124268569205914018334701064435181925445135013645846291360723910290362212366032062017774239600066990613594780330975774422122219275536709100934536979768317594846551209829323060270163483608720633982590109471760293474714301288869590301166110771897031773783114793000633371207301839014148594796809505294148344389970018681920721644133170121307920270206979626034380597520756862514394061251216788820792021418854354464608793603238668324162437746111418742322471274584181611017435735751745498794893282451254564272848819797094991529114658967757773434803720509973800405248399810973617117105369824251624763437614838261578581956801694640585113119594338486313521510915050817290408956713223549940717718457219337726974654205073899222839323294706587287682257748530822056301094999745118916944557450923246018917938209747047659944531779552589508055954170540543419890308386196376757109565847460844591181293786971918901483634994819017771547679735215594367453381200626949006308832170482750730755283708163607089964076981970200186112898371051462864301788012852720776806891579485239301753613938377165856719253164891295213378180493376708793226264405137618889436380207436620429628144868697008632861667360246069533071239441104903063158416401858674282437625692562402759950909874994705869940264418396732958008352864863628455935589883042765025780941046171702473536944338967037145482793598555455295186218448588970686731051994141181013235712391104312127281908207440863435491968206486620994274740347331734810155714420447589554047695969496133321042573088218674888113694935653006243309237488125627388481868049629495079440798752871598669857305470146865730014738018778745511635945630468091595138413863743961425846622665291795169235791698975989896568784888139024023487140586502638219779359486657599826805879462287250810830024263440853315838247736766367555077832464705585130833644727274884168873603590259897008493120354165418050397036420177994561106152318059882905697748554242325417089643463013498661119184022126807677903129816547468161049583427345714703587949489128794372528558849369008500924272480994623832117620266168365338976202748319473211445154923948840071050912096573897908896391644533906866804211273914640223891475021526434893500524231167590079465703210656422885916179324063138714380415310486455227103355912342215038211735070911632439741229850380294041214366724480961560854858568006843745033522603378892818256200230592996863978888407303827971901094044175626911874061731007770342355383995767562890081227502252924243286245464132347443819154361655541603470228906749686783133374172619644886271742445701206831251690418739292096801344737530230264510054252383155087839392001387512414898790432439770262499403625374944512023356072097199684012900905838455823126658261581057080534507662652047791126995712066195782651459021890179480485613950625263462461197763019504660295929851617061199741194867052539704200079371347112441054794451749829809015864144755812194521980715697420995471159395448081147302715522607596785716488170103214512573504636026504316042242832425092494665944474199524242346719921617350078609666205419204909417179832436900073292920375212919496989857562448201334024637885851401198108041026852570966543775609925986612114424513221861490158205150762352115929273109634027247385545954944801347645124128754261501104551375524031250339053996856940686961932957701971193563510707515475741488697688160897477971845283037521180118081882926366497942619561611202020326544682940219533858874941701581090072088387018945418571439903732838215321067478648236077863111586599162615221663327320580493076418600785096428664515202103373768047516151285676071964332395467926774036010317408463865136038259100114961512980713107489007379218011560466573179843320670798655283262891386454417864049061276871635441304835877719389304086109955999935664493411748931368876648305112196846283579232678376380128666417717619533454886494167589788873069963931163876337335737777041845705506135141249278775331343090489648280369455086583185119476100185917952285850594930296030206924716323870469755661134368160860144902326539985883493322640974569761029487891522289254315570299068894828245898860498660569755140784305921549172703725775341573644959805528662375929931625122273868237568297684328351327645639644564767070262394669296281472915152435270662648893592001336853638735352390696343086040146635467115660204311864492833784294620543696476290697018891156230691729260195172985917145929649266446957673430702375831565141925055218176571743631120774449086031154455327751353613634786974393885675415673731179831369789066650614280075945799163563576876466957284325487072496107861501613973684569139131538100320143237951268236614648052917307769830012023971453190351765731277299219596193791236725049945884844788361036518916557116610879333752056230819091707967549302348250329936270183057797340049409419447358355234686784984079618097702870095687810744673881334960475015737108083167596664816262107023391735193824666858970322329207242875243623551530182241182619456074313507511128253430335921648501439306633681130317017037130441684268978069002923261007948095697765059658571515482453474323227404255157770876565164600063616834064891929564923368319186727073968457901470306454338740863600722493945336653356902889537262350643356617853134743116391520805492247332598472520595678497806862683465364349331052133742830673694436314173236359497466093154493545947491358581740777613672487084898874108598610949468243932224109952172039941265228531300057930461632498162550952885539850215382577187340770099025182092531818308410251890891880531351528093237342670103137960391842842653768422685461231105422212137180869721618079970374595608812865191105166843032102122123215628855320108722065933919255010914027396555227739009201301043941616716718736486592304516919866488305289670187491646208915427323238195099139040813533134613484755294756921709629778042635527902537768567481798069273695229026512893475811438312025373183104889111431622538630896733381230714181075439107673526875803167453914516598726989797762904448848038687611782221089231478991878346753678190368440673595980588938791125846108190586450960236561738163564947669634991132147260032246658559211299804634153847050703067517325305149421890292388238446742257399371593878676760924709268984218834384002245840908766896162723623888443662909639732560413422412518740618695068927082419710984791050305318198298558494682025190406536881190265438801151033922260208008377608296273960377911054702666430474562966926452914461423798433990234227959221329900995729199466979417471248013638816439302862579317791285943446883980382843958437663276022606664723427022985591577691565985400833446471581120524522231439774542477456162020686181380369916176030549099780183126179379599285512598700275242157492497838848416688622741308633081649224970496471586637395488763926058664048516232068798292861113216155167637046988488411413067170570500401624595436227673664442558100706653782755117365319548376740869233069350603886103707301813962220809847972838380714407506622390401809927253043020756756714873513242843724319891924865355128674832034225695450918839600550676726911222494134827475040161901605865625507497649359226710968093815669738784225382618700796381816801218392552436529587413783923396075929160576597369916664532135929509013972315671037283090507127747392357537194773190424939306621013314097906348247554855236761607218099245123976505050877848450267906303610120036367685581642692931750182969578607821075339596132356378106257978918864424406809427073004361926953751040102296903377968917634762962175459933509992300968360146590522010507476883867373582507569738973495616174815186189006788625606800630044993015461915311066477637447836731565140268737152718958318163241341173790495744226520573768705100621249371291345668781796760191470040439802582259559603674838720888047344828223682919008765195514340192869960458122167128347026673796803995693940567064209190966253906403800981480629226046387525649528223388098464850540376572560403093353642522624475859085406115082265908867890683004651789513131897938210844197314117797087842630152611950161929361945632197321377786000392103050612736019984545971561574373563129380288648742808812287245047401754074925676625778267042324461769420957717457693619451886907785356158764222659372059740431616336348673087295389093533169456556640485911015744449037960681643190502142811416862818307210193024450007180269621612921113959709526823256899634943883008494499669229774801848000800838364269319577128048453616667486397592346773056758752615378924867095534418098171499641786485534998718229916882175986361373601568991392684025069924040513920801972792900395687631540123248808307405369802094768080853631208327944270032572231438385944277372018006299550183827161727994225371910044753736444343271364061112101524230745113803562663873068935962878933487970225805895681726041070608102219235442493606414050149664691062511409117685963702112219377894948273492857389995744385600499027086943909732846915128476780492242436247238067579673614710147968543416701019981763579179174449915082700265077801067299141272190003117126288116718321502333043482401970893900580328911166786408598357358090342955922939156514837833646299184018007940821596686118096296892050975906300177055178425079164229275700413707045624138264406684932983428198755757635920586172720017391552829246254866246248254081055198248034288838400163732467374531675209087052932763710808292307845884919563042655919589779530586830734216948285651793947514782949887560369624577031497883849974210134784885938325689141860333226131165045566120621387052985086197600049847193851768528491131967346994687023148086395521702417521894033077139517707165078742102827148578512781279327265801693478507756854287799678093361096244802638908684590761833798167031908689527121433108414810299013153909950636407210845691542222871927921413288401827959543191376512511150857074335470977437774722205888012762261981826810357946551398412337414410769816540065558091448700030217999552803005679564143454602458316962965928313496299432301731233627483304744589984715601857123670270668154204292723114423509110339807787232479258327514731651148462008694258688676478565979620204545425099024013751415625555298172812504231387005210232337196987421490063082435510283771365830103210419677160344920577735388436798037264438674326737049346171946013768370478969816594808918943531031721319964578494476886248567902671444974468722428692743099928279199713821287560216455001405018142487168031284290038224131827147329064058010533176979645742288272748346028344123678306949782944585829995877899427346994237872223497153751654166900642341291842192856987326519362978573430731888836081674864636100791432972339359757661876045244553664314179893658748479677662115327584635883908980640435187537264472645805226816882299970046489972149579961779946239890988598185333301016968386995153309785510908374472472130851713783694093464852359618093568064850610000336963947800610999380766446578878941307821198345421752352681984181764996935647108711604630893751439713953789991349888610781661735877600398082913175013320826077032961326539907340535250176430341266031021120940535798506199105581999982150376393836759033950165482511583384853137129993798251523980909519171752539930327258078708877364133853179819141075483655273420960908673242901000115226775846941010912283223041590274350160264309328427747134141145751593201852065579566033926777412426082803250161426047391588270947445240307397698860666633551636597585113134080259978859632554400435420641812610307958357952002198068687437247296007007976020695374873313725026986196698143948444098302833021322796115777701643902334970825294421198514051055616310781306886553498588005466211367494208312349577518264520714671914807862761946516388433751679880896821719417262581666597592554749627609895574150769823413660414521734173775491182532579737935559379672116654220830113485754175920967145812105934804102901841208898338020789656805004340144716234587760586270887849071951820464216709977855500514346599315640921425953179356019372254725768625132832662153250404314047948371618262528164242965358697583219335871759463074396392349380388724430456387323854231899158731288070369592467801956123364709709229216051509089032773994430721881196460356497575195051367945832399710074338906711678301568596428409182932883962941290130388058443909475826157206677899633666435769528090730893268180078226137165853847474084842602702883178429413215159859278019345881715443043630253533471166835494030625328021715951979432627950461645613910013165152717801541459111644250724023723680308005333164637174310033841660626308038222756722851251809856791912170108820406055138219467060814726749643083348981749207943630273151607112882002433991911899165295722692881567782123569977114476054823103531841802461630634283062958827497359271214783237263680022606372350962040805749048811817887021461697711279097298315834420544605440299480325623447767413540044035442714701735966332565027542019609619566948923395272575284559543673180988091373830615112573555297647647193831503080242303710127085167924622177496238093075311091968370365923417020870773305029122237341449694249718766657461369550868950309916609193634249377074628600814190086536923485663710320207650415446846126671484539334557039807047463434420628092003633130827898443831516333946897427775259931924308289833739896318130364003583442997637970478428112775957899970221849643211749657670069864700546825458262619109341487727917196382785754789293840118775831683242494321115319341045227321307765839473074215950909569803891304053606252540399354450158291968119179867648032067292127980863996037870397769901506522226588163977229819343594717540340475157947359320801119441022953093386286412182284866173644036321619311386732812595866188979630966967116468971022818838707726136846076417103032224538372509832105727346966349165022408274099166851757483610377222825355225316153506299929453924713250300734480438287404926316616911227209197903051891374205543100428104457425709264650693841411085654980636690473481107187697224836115566309537919097892131740435202775222733068055881152268814458295878813798875447944776361462298145535669423175150132456130720154777175313325884432957392644324464974665583704565196130949030171302668181180837888479459305502389953056117362843421513683243747299898678246666588878218257295769472114053521015349967849477711981488490354895661344644283989495772976573028681775500007439824006174263222012618702473389355553700906253425673625464287124917897972352032787051555368213242386952121382225536133683856099517642815652136123950126240978938400414036544501869450161792894991441517183868159385036771151451751013959742773174876052087859681484004571432749815772274045681304408525075872645119391286828592161814096561829597395356719202782296211315370216349568313652578091427978938939773680659118327561261247499005379414502844550191894067090628025467048185190378287391858567465293886395914513031607324082308228388845812941855564897477797072430830113051869609057757344090569297597281533867726574602693243124145591420686064501474037251415516540280163378008434775228661433661929986815003726729491788256777662114365214584332207957382409753417555605708705711727355002206051043062709638638948597455177360178771528420646652773885213353861398646530333123295641042549015624917785108584534394785817314850408542797214127976770898668137903217877078048833994224779817542678307488555612364008696330024560239838024406516874886156506421412067544634476940068114969099784900897160873245034985719838651865173304738312767858029470581071484752805790375478843957425013610571755823762701372848177576605961960833547264327290487954388088320548129739187625666437915100633978299303284876677980568985498178854820582812982725761305036316292176212088167468996656995225807043808168147719612393510101619456928085310943354803471045702883052869981907694157759759773764884250776476982656777129397276211155931496213429799967421186049548828633630100522527507249782784957824008621614842803987521631978867599055975594230463842456037919013895972113636659106109944960693227120085517740711388546474649396158897826405345906050137320335228934826772365034445064060772003170168790051715677698140488941868090136177272100626303829015028928309548952126121990955611732467713847904851877164839778050874168297781150647444399979705747079341621275616120820248263662524305131970308028495495026717506039033736380545637164482766352298392170211558276686635334650206473015614013750684336166238189376847394207604571341298231763711853134077202695603258028168663010455629452993024309316156072180920208169560481907423025065436872980067651940172856773466995938964119311055388462110610574299622354977041495666560591469928037055125966970522047172382771498216119834988024640586768309029803209357898686848787519965958166295331412752095246236281524442019076477365671206266697476543288327712785775059800607448455971563044235343495243255692148056048209836045521788744425793891639741696560687586123940103155491914871127093475584002167318949818703110092739033195473953122967444077006833167027361713528985920898971321268867822457725318993591720441628868203944808023154455049531129455369914104339244574551705581803177512087891308316035189331828110483040064587074845908469148253910898315000264834261806522216464648916220028335075623440102523543139557209405955897638969174774354940320869462525536316535827265644159253139877007865392732179536301915912294845607662373501798250133609197448082542240154453020373245683151488482263538788827950057477013824199158007637680299447604847114424876223985143843919790836280724090450306613221285176645083313715444698588616812154402648802500116761347835809666606566701751848459979971181989553177284345414110565928909570538318329763238000619198720802221162255875192108257290218966183126133479587708858145450570567485639341539372643630324556359977444641730669326240257475042944615135787793434347578805050233666007853980169644908225681682312988705984158707675319675450185878899500050563655443530817345540180504955192051774594932512587855031921370696936114318513651402211156018541100902854237460420118968325962870675111877837910152152191547442928048394528777979896119293567019409971612391003989976171075206645740760944173859175661398280806338964615859420764222958114386543850339450313764579184698135784715547279101192618866923245551661055337915792674895399975439825345569251381415885675079640979150697715042127976593774400845192744854610839807503576929745007736113748455904846241170606307065700644756360430877405373827600313549574408000847444809612170326236936517440961322192331547445122968205839649293085072680992632489097884899689034887851410134481744176156027775961462421163952943755907731422291134634605994299808250985056560426909855315657040676624036225234520299942687890243513658383756031734466796357075548796708740187348454549491878864295970817827586958551214151491050235743078941662004306197398713977206297333481340558115966187727961767388921985195686156339589832869625300215948001423516074723381078656934855320976872911673530546171795016715522112116513218265692145092840184156552321943915591688874166506009015647266452574260995094871592086174663165374661987152897375799161887743224855969562647903111644892838484575854239910767955842999025705581922423178363108665317558963574220034970633007729077437086525405238009959658012433124492729790003152856273180643711844414066298742981719169084975392513578890632615861173609988380089264765798963564624792560269936477076047090005514660908736328896155345039665751402874179628614662593154030078498961049075911309299217560664740793405300289288793159323841382887878409673055294782710754149931039241141288020904168078347327143643821430901338400710281853457116792130097431387801182107513290611198227034047800928621441166593886208706665377348982732789734043450508321334908588193257789022893774395747364156280195905854692074272856823877392348923194441827841319420261068444869663034684201986692592150741570598383146220075204938808064329133532402814845887952461424433994150195193202961266981936652474176134032398752961444899034389147603053959722292629032895592042196819589171988910591575290345357779549624533109412939152023869154971000375721398069771137524361093657306915177188375991430292173626369947574557953923038968329458572721305108351787931236751437207440940927541920502635957371233058273149136349008214570291891359899243217561769701579718325253008577283440825342673514231812655430445325675343847793836533946183650670782623863240999866015965028646991209331055296773668275448794517496883078012675488157483220172683809315425140516703627470204911358103737635082492283920029060808627018955375786354429913770254593199259385201449728561883380555748909929565788275220197013234474428384511914886367434460397915701733717500533646676166936524477428718170785548918108796051170606650455848602940106845233188275703175564004203426705016770516426507580544387726935566430845248981897983759211991034225438563737360608026536209598694833958967413974475071744814727364412351370112793752903713065176106203528263065710522477826641838834990982261159388380962273890789421045517468953638165848706641388768845642748608849670532511318953567756976597901784651656346279377322648156178694338038941534011500389261592773381044205422632390499663234867297030357132303659450054904537373226110648315352394045358348381805462584946208899291584839060212162976554886979790852355776539799564430486861631813858506722935782129562056048869387507540586955984080649861524468361033454068175623784004849568187054233358047676882940944383007743355676545546645841806836830401101971926391141372614597825781707420921611668496607432337859423104057301711627451599048900684455912873726943934937163986381277521064910892891809335253801077059814776300940906863479513325101468031650856218997251220295457788604292231662094624439796894449645040173748804606478200491304765939525412182722667494538607663396256098533397539023871196282543916057224523564368275126182341105923246564091796732191684726879186536029950730556659479850453008966408764517542968233285645223024243876010540845046048475217294053670050802651262302317879071290537766763096896633536977509922850145569404501646201829076524475909437018386958680129300599108934489672950839690139472526704186498764771679049292988125272611540655562702865441695226836954742444291406905959110396008131212013823378377410166400016781088513924203158552016559355711373304088105043297849203120280868128645972645266497324758318116628059076790359842027425623009770673171390744495281120569368179508304500921895380071087679616874760351110061310181636126529471739227648248831830865507756654197598494852581269248574918950686103965147705819618633458624764081042218355924829641494381159387149316423186058429909064110286970894593866706758377470266400459731380482562230342788019944567766931681926459149397283317935029225160606044831068106442611616402303107278000617760438102659221838557169383658343471766817996865242729718118885484885767646260931158274314774092188633596834933817132697555325402267254837529638514490867826259411409234109384352786071637433861063760981114536394662797586236298693875623016673939832124195573065082093989197741702212830955270523737610709807416251945800116745477863172803595681063008773653262147423935352181153524278226333298010349794598128020417692218906418774616523431795722101143738084042694977463060084152058246064012869876656572418252356321843341345514310794401018744260391398352221698231261344816584715792390644411992086853934338835906863582997270977948857886061670646223229721503454765462120658686527590097734270075283199720759956296902527733600848179960674284129146035276845424289723778003314933574095933968502990122195972036745143869511466934341500093992474253369720437187804946170136090277140813815146965675891527474921849365436057567749373692053028430137485828398052975004671506243364319419206460510357310224654033820388496912616220991899578431720544498719226106370768408777107822174174322200322619799727129637290616093042640390661475687181128366092928793082684543526028050647856359029005499653148813773741520180820652171133497589890052677916798044598364876169406197514154973114515489681909418554177729787466741618364891945565124513364139479373650986610390044769396569414355766577050745546674760215530456844916455867944917942474489821065335447252855344937511550869710445464479944766124865363865175245337817027771323975942822265908499336189253417024155617649588313891711855264359558000781193151460583489022814037446142111625988626401012461993955937310426512596936848254021076897587788727964263557050380638260078926552334561349641826431765158577130540402713400254785768322025114229002046701854343117613209350374906463265657587239085501572885597235668138455131549149950356379207720234696372428988926338537235192203606002426961684827427083795706209626450461530306077397617962181099342383283184220295102067826201233806800024869146949497155529476645415320710065908247269573545054709349490060870276435512618322695435673911709566094626400899357425860070431246559041613165601432589435692459197270141573906185045806878770386682940946171451977425658904961729309328621474136450547889077352015538172938369229030952294610110335464445679970169957575762230242821032055779235234581997175742533294590295748291436061679939380548240248497633871066388509360736934900785385722571576596384114584262002462578055484359533028296634378540973727472765405098856984217505722364904239668454261297616324169896790637838368773835892753643012503153940387571422392099417936514392032025848713052691384778420396743419915506756309070017133259613665754008709467524279676439277454999682121250742914592396689846810769223516684869200167832149787882841567186805997446717263918948583365440437513612618828088186099347429607462573040810851962593409347909280909409137297287479627230895477146847342446770313158911107961806241338548126050924831243454802256846719970073468734236271715725790343682892054247447325035265240000138625775086951447130355644815834346349311256961983672142455440509884095464839176355637255977743367437063908220678283698064121989738368259610996541532128783506305079622754456146678686549745571210158447962594163403562615947638893372893595340976131405265314710136000737485741676588540581807308414714009250680537792431550231364010463853722116937214582845162877044531782394129357959895947687639643433323549633842074354542566216312839399365288739822190223871609057145082472860472542453421431717702758756821400197084526454097270381139664177250156008338915521096896045897713017539244316473654679636304212543414997924329047277862425448511523537877542392304956396381299592018192179429247080296836858915104711473822901041467578667065706420592764523051990434901194306519355149301879851049709051392265934541894963415465652551153097763872669506888977257351713033347136027760307757325625127295853564080992555019248764047893226521149530365650487747463624498608863587065966993710736599727507200563660740736578665881397746259991174727274332816845780160928778553653201249237139263015495823048539453489548806625189227295772916888788874057322513760943363650145519145661311890515282303288246023120172590168845814362737268243069515131029077047867739984491250056156411648645226158486126995116384490269163101331295191724056519907724702588630178513216053098254062697739917731457195304100641399017194431522958516420463810561943295158520625594459274182082649288434004803671003592916384225926313041771763152225088699177150935402636140116081989797326022232783031971188878255958883803706491765943835915533068806984299059650222118212137236887979320839230494115052891777163329028133904867596097984592929040855620819737781303988403430418268394562482064777914340050247522713359863819755650322667006658449288202171528629257826995753884784961189286594199004864359510924124692398024877897321041860337266296984934666379840293649148636262250812685143875658969297721892869229008516065190414181211013527395001553265290590579157771531809887691915013888847841994112476547863120094427122327253294177566246397555768020067823152990040567551912210013856473640483726875072779072674952582047736287925338673884697734147568158622682111769714876791817582506758455956974478138064820981408766808679584039317652938334752129403930520266900483405183362468826230090989069022095893236557774864995596334754186709763203573818256844792804818405489053895719593763396661258561902111871151326985991349495371769312579599901041878244568651513645510764435738942799651989563760231571291211285180451407414459239359070144557263681651836782936620472199036561104096815900528670958849678081917588231074389571241014100063871757710595190833256908324960193493550502888763774093328091726845111416185206943312218159305917334887822812794868605548601712593368084825916004995147454519347608818503560530643215502083439513870922743182432458220487101376498294132764611327185264195054760438766763102690557409199349906437559144516153450847925068852248092098498246105655858417997768594694557101268861987805989538905134734929913652102249695116689049342567721449698366547386010178384188992044704074474047502125478797506964472037172530890468789261129170165409469395447788938561033176127216509463369159537683574330656329801245843227412411137283684374214455234151958470514523369682318944536019836519499587084921602960573073570519252925526388223602348281871960204321795584197827377541527868587770516048109103886278840708209079639250168779439165680783420162788613998443669005026185097938770900376197490739638991242068041084333366216474130171100460643528297049047704876602388237182557180782132334329548262459854790404495091969919588452067161352803742729558132642966660486855693472317402053151962502121388517264406792741350671060803099287079119881985713529164148258333649333635484101150543843231198053051837799195365744261272005960651510197906991894945719966034140889669066939944181992907546736875712615331417707200075970677280917715050167308944025344022066833405664396595118579749314666673430530657233486781797494682871950520832422659738187654098328763311196469370739583121720431252645366966325819781023953920881634093468820556619025864981191897771775142252926659200250793389058015693406777811336598011499963765519202490115024411323590534934161322250376087398053486477395660937699140851751408348264410408225717081198299381169079696870839448744070698848346301103119709472696280007969978315687233407228658453143924886317641202325265596403254693447400842134875153849829060287467739594030328918717554792875809646091073094968290620254201670736774810361005171131879299810336584565838082195027757333515978461759712807707495179936616720840719706157360181670512213763578644395092522935888146496169773806432669940760193698305495703791511637235407226885244974098354855756833726783009836331859882126256572052791474955715227510860931113858515560352371919357715539590136237961985151631810203930422668092996482896711228014661832271326407563926639369873218687375091122992049750213714720464245129134966589495126781996759031362619508977916202913174637741484887076873673195874152924964432622334505440315201523811610544502254399269197921403768335323798485006958276162662368005723983911120429965107085102387800030022697618791400720389778610098967793569150630529119989105063051462318746261343686284324995370865939784867091996680142785285391574332858572602336265854597449901749755015106029158410716481476795194840126193496440580217994227537478275251315477061232374836877682169472506595782105888590981137389080160702037833476252370366707437622554109774311802758559128616477128954896275418870676964239094425349058226817738992392408584021739368169277520486832050135127162836622160809730745563563620442328484795556493640655425517961848850675165898089043347937730665562703576971522517306196903564969505476086699428419535205342565778677360831221947434546951289597386389942948928056889688721400631189563952389487993606613218794677944905159065873352667301661555813264972610852500926896447113036282397158985936204724413503226535612085421012571964476542191555073031126172693424793599266774078954140059910789759470324541302077810467946183260858185620749591396950397630360725530358037211236580870161536753275585948669377584272740784675977741822368882418466310131025264552614027074884961169892450917387973296978275756391950783167082163425088849744048074536292415173632650335257892580683132432586330490824057801360822711606913467973488767151348434885102613988952827031980598540768839237759518540172450847664925512847179670521163058138995416052284504339555610229488288885083082767637707155596793803486924298919353703551280145486669294546207577653510246133270607921548625830016336783224715018170350481650862568932895125977441320872030274496241089119736590288767719813597897276605731119773905854594984323229069935274151673291651304832769134136194500748444363500642287591117398886856459630700835414526650599383885020646334364360906709852158080035616634501531041026158254986596820753010693498812825414241162222625690163869796680853083752202039416675969384831333750833499421774352084764678430953502971541944263348984917279095353273610449343273556456886326697969969725326903276858197578573007623922133426958284459791132438435391030576406575906347950732982938577298554230799860227057443768382562775868088409607533365380927973465201901222858484077596108373593192764556985143864850072222962097896558119303578144672949401567447524420306569785578556733822336154550347604142501508063893338076494503052271245436534603695867755590200638349599111097228536418671800752472201355754010487599308876948586745935405217899264758814949394687224698504788254882881360587888648923779786565451896005982975809746535979701189862134718916762811035348644181856841662884473668261334547361518133222722796578162986589560477344505620145059258149091450604208529146038877049903693429686945412331809369753018590194833121988755336139002635381208519371030939471457028737441888683757704876018012152292627690134389321277410980982580881106924514673015144456028307546394596453442081195172702315581875092052755802094546808348759551489670101889097254675512001274347415121469487791833530397940986199585944198267616443198768958812882611495973562342515302533023270206799030131012966167548151240119639574290546255195412229768751092096473533235627352583862363643357822604976604387157815449605574896182381853766240699109023203238080917370371358088541190675766299450918822506289963273282807059939932698794184785388439746891775624290439494370539681205075159362682697302687597076082533757479314061044151620568392103867170913585964419237742362206521547721126706557258884182757932808016656143761816201809199978129492816091563883181942757237813857745703316626051528351509597983664766602586656612685084104561569668046196207662614528959108557278390490034443292925012923337716402580757936876197911025677482907491225084754250456226879238227235174575141521936949888802921468003959636138876102220837827504401839008120482683345568665200814999843308138170048849614032237325797371550347919973747727828831097067587268680967571267140529578353935968550343703936616148894165037540392434808068295388925496696495918215162863308659083388744647615528086633500978039703180190050225933144430319776159889319483031786396053606519229848423199214607933886688538734599487876125870761992238837684936019604029191431470178877030001698201284683183966023739027860404372537185854121897309458059382084799181703465588026044172382555276763259504945628634970921265743173852779863173396093806243529591866093992942717307474778923184255521937603769606652513488569106968124419319876303763272969866067052460998853394860060319721571222849005258481121840757467644763650849622915348366175305763022020126447355683081406742963653297297689641270318876352791279708791551576288047738878162630087709554453241814749595140078044479084895636033829138201968903168671941856392711928060752069417243315541273987608687894643677167677855768525139204568400882037515881251506387703455444424724105314253602577750375969425654553813610991051083584872940009024978410494821501373075987771104918202524515518225257422787691610415339141866598871278642412969775085046901058453679928125752071097424715654363473992165791631940441013346221688775169423203836457749269561798407150877205057906197753519152914156198934628483725942154449266688433725125236515275828277167409974575003343285604984991094631800741847467116565252925924735994850441037362854156568150721322265531303100649981146705077352103141145130545644505408736911401557419903188117361014114120373362074964435896454825602404701283551980018985642068111565543019393037179868886201717269140530658186968236517398925136934601181235480292638369279539752511339342475963164834695669287729217431696466202332319329852302106640122079204937714351046199296756008950592173511582890411139261275796972493343191415467843774777239688380775925380499846628458044666540423835552344495794057454003779115141788190652482588056429677926249354185045682868408758696149889278553782106398842352325349344646648916249894000439312749470447379231585257173505802687275722940554073137420095443596977222234317751012574465947912577565705838507291235716769952691425056050598083073908911286928019498483422649737658579764566996823509342061611198965058896831792323354061196150127849809484975015229224878763034020327893732065751883664953292629990296144667150683118911014300668663252714877239841780993146535020457653456295647114379855462645856350017324364325192355579547905542975499230080474767884854027791675763529912463487629346561746635538688018163584161259321391992173790627585944718229172964159139072301476829460658576884803867284935114571951374080951702872349916729017854480801697443588440287753741515777749780195941807558085677265953526822971130165585312389605712129520630751854362647525493055399588995113829835281362631811008581314918617602995990026550386002869010311560559395626045918907317227486737339571810844229038848508592946961449546971939254113521220981776465997072090926592931909876642116595260741810016020205486463206345428873495169203969015066062545544499376139164850979324159995142011879560390167257650677643074291161081871987731757134044624913029839132473869414958833514105544499869794028820120250227036205970673788812532936823331979502089893865607430043337007402903405286405843293038499158948831195286109955939136204774819269373973798210984519562916746305202335699031971961495374699590450202198729658326756216402335639271154388390644030236365023514717108795776131177869931050413423011447858758899753133469653709275478200140069513454341305931811544682672449278546188739344107447336934903768662895019196836772462879533234729927899213737503140028920322057668862608688888466896859256620283021162227111394523733576027391506340540821512242966390073116509243592163397375340256801514859087292035908253991283949364525714699460347354475469704951025770955150628184299356081805045697350808994807745268843231699950399662565963116631335602084221981277188064732326449972317711404180408121422204727562387786947692259908562319622250426863380917891381375901651792119467093500209219856206427448484579690298305781321835627851875677680600689816769645365691696244505446184940561702734105838237736327806728016113531363906694072285207527466170199516624237509309670062558408117246561573194981383587192843904308011843033680799008717263119191780398575924010190865057392659035060555307511798943251231031798335961745659618382596737013917233106088842779329094680883705225463418951894139490435088012917375577454536194890367189568726416348132158285944758344363580237654088209285142982070107096860829712911781507919078548490725132623294090280255433332693462015489725171207145895247869918134312470777776955760143598330879627165110903867202092108340529551061512972032884834740481497667553054378822997304562183947756739232811537361683572060275399388455578241795949816092025638455487102195427897700269460193513877623069937473540456725991165312666898055921424843003154972982503231304920603923308230282039013574309665326281918245032411763912251757987148730353187274068559459978618598049646187973120906464463321169542667710301377771276268360625769948979432590606272622256131240379323040940676132630467988299495065905526315706868914010584905210201780977780349217576086137010177389552038780483765311222913128500638127885272870882964625678213916691956379679550841907209819324002450199554494048192482064265500164926230718609037974173007413568488025597350277129022816798927796525061008266572093525823016723979967810478766886315603117839965962307291757469614739139272280521900055666476957996745720046631781363735292907499628409404519452261437382282756280291698980261168099245869152587858999480148843883352523677377643150664354498538541034603063374733715323089342509022157810802659232862951648978917151293129847235435512111568794956524697185417604682985650416355126377289393056694925226401402160901286349279374850727809889204982648653059552604828722517679429515777340317438468847399064261392850789293411399061111293270949615406668427670352648134641756903824680703758915508214901817571972680610478685676542578494254123683889457471696291038940084299315875633770175367909396014506261377957666469066554069728585033142418615126483528925359649811809195127871870658054143377398410045089112363191145026595413974377347103005100390749693820977687883180292104685329917705089185929754579325665547952914800989457510586581879146299903950410414657568550453575330760003076105607349963439623606145778666814174707531650218196508328629351419674065266520434866746835895883785818233243405711034467255853465767653545938547754713097301843158908433092972300616012244348686564743697451746592186040667274419009769265309315765407397930557948262822331778208787341248308079699615615071347995047533246388823474481213504963182957431074503554457426457702689185696029615858815024573879403446570722325066969375173368485164395489336072988717193450268722388566137997136305335246351761152180855834389478545800485456533942546281541002575663713429895654287755586248851068405120865177796274680302872271046399749202985295444299859334638494430135337374186453060270051080425062369858641078927340030850882002374287882065385568341003449509203744709161280750541648831034499904903289228448729883308712921297318211181132241034892490563607086873154078802644476532569712646368138608889417443954733467632159069923419405658189553906790728818799890911823777230098675596047695502294298935782701659892571934659444855943556582796707345308381998698520647624800147552460536777666456587893552807784497497672920100451294678909263040411703031366851253579934317171129088344852474934133098839639056454141579898076804781864183948992543759976569240093168200336610470735861205661599748434969404164930292615292169965099409741279735378858684618350986882194605348761878635068929334517535286239893890160357223719228729632420287756404070147091837518491385136820890735105305528803843434626657512693231884098595399406578966517824739582254434494646333705122617040268898815555116612189570748246620991701733193093334877938883776142440012539245548745730645238403488548741108826790450613365170655060141866260737852009995930547538295583126898070860309039290754859427373573029765423007813251323887426268771384859200348236862207803940228908932694769159453263054284810706845195077588716890323498094607948723608085393756485377402533785205426004766817641956820745088613638176378557159820258099635651372176884320750236104184484136945480359766546818649122261378546521927408804334579242915477654324197550660866527419929832663918408136324197917230002484510586756521106581825868744572874034996611535327789536108612883796136892017059972174069398548886293700019657577189051149415468482602425878657893464073486455584150351402900788178381946511911811693681468414194259286622126103419857370437986144980957518411242307808031563914660895154728329522844962296047673245407785953887196272355424229067960270930357593872040476854603298714429679165137950073112980488947219814447582045497457920675424753183644812219715906763245790037508124799461346411825130290235657423129801067445095961385681710711194280230390207142817343911028712555722306705557523900722057883990407252389762927766246483002380869965652936535417543051292842457585351391457588575902253885395703137767509876931371854575629982502902850157355520639167615152104640185876970872399125845836775053344315226978748859112118299981305156151058143110491495225747460392909714576047319892412478428171403098986320446533971817828235740072185836146874964697991402853914568086107833542639230400575233139393257511296155048235672729687679216805704166655398256297229191510600067058421548923159088587839611993050987286212217960830380452487881261551293617258348837897949102193133713311467888761077782239821150774670200276387919147838172248307854813631654958631042962813548997236033997141541076541196411024239517210426336822492603962961087197044018906460110334491325567120067603646538787682416089349517841301725354941243555348955288511643015615043979104362183674588672396070873098873665623920788193722034256758682565099927050402622735549023401251304610771749013328055945020514310027189249704518128974572968278850742382778567137801996746340204963802320234151945825336710514230022349422281163375731334474511126074202427923791115820189821633263622643605186808900505113164797963466819150164477322177746051692490190923146100276053246657136912200900148970347652153654480546909614312798523051624062595737175006570723424711073202814170773658134035041916692044162921874960035203818873558461861212809695345999052501718033327682025661176057000183475302103296277871977392122714907135538284280368437463908781033384873116120573166885764729034526538712154987164457058063823173191668515720966512724526066317264337029605448933902095314582672948460197122359853408062443829814041519121543598218047588326966702913163316292670640574812590692379030757589847057657324923648416105311998883628266610211869403507539845492611100323265322746574890763064754617071454416531410898839599519939892304396115567419907923578470150093365606762702883694433593534089533252317780372633406615903341267001363800191822254062282005019916372615798786347367190009034886075657046395181402007195048165100901047035627475568973486869947161382200018616678754094635690495852635363300789369215832505494892740373190513924648438070231963035524067503212708435092554018925015157772521805217949267725401628939184209441943271055082117259398314296311739812021259024757235478742693015362609822212586376539512820252687236362590958415641472557773395324963906866399543898692841491571536833428840705963484378262040959365681928009338609905235853604128575587920584435928451072069858805921782235177213355641531158806580807332290001911620458974635968663994823655397693031826779043760971482249979890259600049043691808745226276011071944730643968077561004376835776308145802545064343651612213163313755750042461979527696651141947071464110276855838551643094051781282378774346095025468604641870356268186034291687207026890498879692960560650777833463726015171193726452379344026185829151911332055494355839767437318366312857520112656504370578766738085179857442390543460672049508765385422696691119473050011911464586564009173303349372241887900794498820144960250220258022725890519539626116858176065931967954625243002813477147753243619967050024885577029890596134114834506146513793650534277715662542984921112143047635738460796796060531558888989076924714444174587549208797775278473043199668187519230539950555262211192454395928786697340737145519555888957295000882061450656340312331901828182724830695322175462817818742599083513346770415821479809236541241739028175451637148481728367998642118133228589501234243377275046241577393531735078035435943320479749471536798183217941562648603237397045861546274851116217859820544948935964826473083534145137728156091880199297861214126205184986100107019206555587567609267582915010412058423201654978567911962109952511094730534441311456716106280733460666828968106873583192457544160037371465880550954808147671986174860926403453493792719111699135618597420129093489794940266878021784071121370497649619731586195290131672843372080274003807023667964969795631643114453346332106065454821672062714790320654159890951969534417091357812298385518885638118184369572209022730087569756152126733509810823644890765548931945642488397208683888386490177034417135706929385564123983873835517468517167306593025766344110447975637520712456538233870703819054967112888988837256602481791625879281374186347519591238472249119865309491668455766004190860552286263098016778833876711786224308552501317923690354410482096022932097259782531532433225337403733584340112955028229391895801202737014473837726195592170154542453105701931919519208637295407409928142964329135056900446387899827216454725630533636869446903405195724073510782410244683900625568838152785603474143646657210189489492098356727866616934744519549168569645777784882239659644377222501621277681815271487929911602915314930542502281453704844867719653195497237362710577784930099894872469677907285369242528485053626483958383867051777705109512370455049098309048661639613158148502617446564172917470338488338389247227018935668040570490303755729764170475378251409101025985930196912580311779039588778553064640690099855387722357644819445138513662245995264172652382951909520071486342012496195247941224805268666576089131886972359195552091523163408031775008411531771150992768775195634554035614183823014519539705325489046323622308734352108825901811899639671998478740354045922027251887941758363093838350244982540101569033493508923853907442618250485638133831846447459715423204534190864951285838153407397816844255434406515137605254131638698370200844917857393080153272322247370517668758397315902579030889467162482193828595667762806160737600102073518496725929255076315853383649318446186432448587913314654138445488329453715827758539472386428199390982118880469302202383000193686690839385472596702576112568493343308060684372864478601791424584640174655276587945407969534085189742675286009035174102183254913389134520797253456508495506699546791645630260405399163752714604391924454742891448483300504911988730588275424541905149397082095440564306401441849964048398222333273560593969026968860536948561923260378922161270948283512090510201997904551884320700291793880320123448238122351084573364625656036204321006492349742330839303572487430071312675595782235415750238574396802972707077568561640046500641559930874156243860481807182465468560099414741704285183116699006227832307957230864073384451779947618302508989687006169661900513478031689422493362827330140886063669255916891692590447756952747117094252511090019118378033808115433939873552451898342261698373242915656548812678804059785413651242199626851945149851088659941730432300374532146062595989103529702266777053104299146267901900508222559027639094515280408535457452955308401482745227992932215871464710476250327125691983715238796556364008530117376953712090623248453045302702126407791144703605731738606349538401058746739684457939932298993503789896047802048200188382130147061284751360421943196140139493764786761594283413229212089286440055246085592647616050391051638087434455485267656119803581341896044644425837575198959498717830723944099888879101107416898989105596127098318301474035601305327318228206134892611335696007574507126774096656956046664181018532141953673311965595469100466391880199009148952563499447556039583916294031210925549744175562864792283147835858312838802513473546972530229589842298163671133672267591972040752781612057460907579206306482955382013124811686596368138585353863018418361829626109598191071509323665523767061481048266894024092329057085518177900810231995906594918295886222639826644013929063739951863818208487821611958929302323188876841926111629018196703284550135028965358737706012890185640991774819627118704231384552671126398534668244720569767982374809681436632284623901523756874233881833554945774710611711708377230738541421976052632725945493671924955264189420886956992224975044489606692313058150881272895253237108846134197733411691397661728594504211261962355351379232117123784796082445805665728008874479015006300264179942877352876013363680740305084803090232202039183886632283380610584047178642403772925163294476947626060953299642140057287464053470101247808093898655094410213238172255807060669146892427865510180782401580249024270340335234008421809797068316347030862823284570049087309178999886760410893579859606582228333489531831362222766591703264023287886092236223099520004011192450243799278795082807034056745083881554804521473295001230628669082640255341079414886874326056619402494219522572534600410840609714429217549487152575159706643336573766888775804116196993709544782229872846067529653482940334651197699254022201793437956424305291202129499654849581476183248041236935550072315453223589000309606085448673203221538924367691498093081777833000140477790166987709723104387300448686733868665753494789478816238729479655322699129261790416308059685406510153362898651514480138315389315499876566501334882772786910623441679229442677314442825081706668876865308619078696118666535589390589874045906975815496294112080712496754356404048585765604666090206026840376926853968110649539958767248231533398706453150335626471671175673908658657801542801248208503903546534197106250437299665127904553188460616806574272507728137607576732814522477672496854300254285707414562521466806940574348816857230506494285311575484667059844039926916352302713186207131722745239806116891649460353220192706419753319023225935427857671325565167912291703868520310760844538490810756667005497593598336701601115827764599301679419508731597376951179018224768823544792406564247251609100405495675524030095542340090759673242632359527345312091232841715332627259171906361464702994161137080655039987886697221125811854385654401834927062173163272238255108166567040657816801326755131574624065121329358989641839141156761417431367466529209852878084949057673770268396706960512831355593804871297799837025972102701343055331469960037602960577205973463664386696305054018947675736795234485239217776937979082018524925622203410306265437780116980441045380834722307753889496722170507680241526181375554457900514791886445388555749885748976692956592133214506322511582672700524022038234018132415096087086916001404960385013381470807499730844376733264331988592164533398425096486855744661928853382074743651978531837196612684699383482587741498423446442244848547300964873633635291947686011479742412193264744202419090453164103191561329632161932575444343234555544783473302387711971857350245992717849036436845833727691805272026969738625972626805197299446719507905700371894173631985637262666400961521523224413133697049903447363423405284029670061158448891070573870445142263356421820786022150828482541706608337252156265546606415599324877729894789399092041643333392375576370231196996989854551253709136916547704623288365225805313813556515008681616069575134012376092715984883945552644767036342090070936603913515551313556754568876542914268619041990274557621276074502513419079584096090968387141338822481281803678835334464074185379507400837024933020969961348313600697734835630467019842303337423412533579020331746937567248130077334970594879580049141035604027980739762821923616906468179733465539487429926288462336661316277466459734616902672590129434911408093181233821548717847249121119523928448694479295333976547414489311802631373659965244009090654410239288331212361003913003120661063789587308353568423575264915077699468677931155324949378210817712182227154452967789194861256760336921021143829319579490172541102243084154455360981313422496841686159581659961341800711443197136385568789714588504634562103568519005304186622317500677802514031910610168335762280378353795941361799089996044554828030516755773964749629660230818995425827426195155516673003204850847495888781276851248984804053439870249648903162658310761062267185429025790102946437537234808134620597911729667571312912575204808300163976921428184526931456190212153683785398368189002446232147252547184740128182349303810774999747526801258794271503352631687658780381769262588295513645094412108756210181077988962615302844369249564025939959948184095211660516834371535089195465354158285137743055661131581656822052114359756128502018223191315316521417614559685224472802755986029721126446905165253944571134668709681863436476097771529497904455820692951553120089027263819353410398963097178829089186268600588657466143164020118467314999926855259514587949569786348051432168268248454154359179271991928014481975197458454712352058260916541537743976194508377550949791938639674657045165510611346538565144175951648242938609134756664925948606844221834008290335223240463429207339902428963450698698124372120273674825244162314071515684429072026389119199800607895251833085305361827982229085012806534750415782441463468089272629258202797272886489627877926952203795427790356612797258672997192668032226406503984000610863265047250420720104558344249040120486910107981902578065567609432242356737489052479955201086915936487845806667360873386358309672659544074592378963083729030895173986965476230812205470746549452440152459925178745727201124372082174441464034869909472895012607898686064607119196215607536001878141197735740585838261901773266414657116163519335005969077606827519407641359253682689911244658831358786539952455527247409259689653546925817461240173791361240731320426096241389340365808131584913764502070916294648813644410925510332107348701826360794527716345709722401542256695727154936807328968892848301556536379709994991589194873679029794238190988376388288190336796783458153976365150273606312505874363587802472196645811491725045861853352251768530685194174815679922030607789296003406309468492761404916697625843136142014216203862862267498056671201169398302818468003759200119850904973054581257502588484859658225900906955060642622162504300007273676744572835104320537597705387114821172938626906660083218367692888797988099361278781146012886009403567814152451712308576286870216185391757382287384187624394214325431499410693529496412888688840947523797502147286634011703751736525299866021605370410298087741702371693796441557529661750434755157178815054111459309959934537942209529626292606982096156856145315884440809849483719987231560393273416000676577215144727911474204610970841288830414837769619752337800415109027172718180912502393038931647067009610122447218870902669685393557559384833194213759387215983336940393102346822854025308546541696914850072310589330327131522448948065412463412724265094408475014947422773516385379019003854501903363864460620691866790285287417899238565546115994338444073066322491535766928174938099807031048604736636282171964682937365922199350171429634831522970969730702587180889419137278892368468742430043452089095712841051516030511756755734773420083330676698027985679545523203011830556881265964703261033080640658665798794412368599302274713950090783543261203439795327514757802354168067297742460566089932158612782335199959340702143268229754587443031996038352259846052751982580004003653108840082841273689933875606917865326281943150907360238584685103763888234547847643751184541843958072013959500681293066568422956352530720533007053898031410649685568730899532775404610120399268943469340549495294852361964302041615614768334264299072205805582397318102433850824825657846989040359432452239378307241748739650755140187804149435685025489933005640626394390454678918448822140754304070975072104233232829767826781947124013782803404548518013201678646006039760732528000983720932784952754293007355817099684553983780487331719339272175925284566390670410688750522434435937130533664681118913849080481894093809591931160109922536249622754930644679484737669431341398056593633237841679347514487308467238316396788231250828723120276905325615895932675086120701685386774673838442226871158849211217384149477599254625105827158375480362339510856937083889681295296340935692198386258266414443193971742636807469322468426772276286808116078993817916162385601589160314535721990906304347480493926769150961780661334363422034397965609454358959028459352919669658111769659189747187243632304701037728839743590840016707064692313435045927936400453246797831046085798917338438065547515439694584166987375436233187251656856140260426901452692668433124563899398711951676774554455223578428784397114091124764015499507821486186591167656883720877064340833410172117785150624386548934637187987139642089892977282674837008160249274759485089207983919185471039683855316786361302022546961968829002051949847032469044138665247864117580810004773431675635143051262089591279170493740484968499215075630142122790336240340164109254233610375237101828399063844539882335270632476729649556737597582753450469190601646233193789040034502000229833967219976170402408528619340429265228025491184721109560424921517908743294048117977291618361883828873309463971823127703626556206604548264542449758271567000639860627026645994051471363618352802759631172142131002404632695849886412456441323348169460548041341500756110185550329568674015439365611197353210605851600065150896548106414850888256972980396023685119977401440116744303532676394171028007284915636362894709702716872606484190256125909435060195645875270116979866654238215008841954634380206235003767643825762144555704334045010629095353696977747593921193155248529331500680816491987528619366100385091622858193347691028937871373874310608035522398944990180941591305118062957951921906775432311370493531177049686625758021136326791960630396698172819991948080549009788376805211832151908299939185709371738396029484676995853885593642200554889406666879629836111304058239763799768813495878030636746756854065717856697705793569659803765067404773685118438198561095832028112174452912498356069964677462605707223100947799525556225793732988709745225785829311355208851148306504020025093687171774511492379297458598877115726902848488963429487919502018835768429666804389802124848864059409121489455607253865672926764296797220355627843216732158315681535264829208470206361415054616013985350292893163651702887840630579502469246210260968195848465901203725324265371282946093040862007123024494908907108578602716783172089064460414250056088016217377696979812371670143655680997866395110764314697665686052905615076275078457372936298147243142856275837362322011812494518659133422802120248470034976224606346323132667381708659151545637339361771145377876536190038802201846802944199884711434103738107860550499401601668023865441954664344958080164479387571638734739429013484704254874273416429461669800228545559326464106740802854674352404526862226001780252540854454645371384548314975058408414379056653890691300263845191517380290022933285894804125268116907120827203219118191641661609441117235833056703321949342136603250964631126818549672924090366829154442608329651489749205874316303241540960023668833138045724712246472717070638154690189835680487232855755764072415416631741416725219461856956098570415051236880849241380871267709878941168024325611891103777020505471494626395105289686042193904131061231116636359018257162653284412063409936978248169292859843566320801286178975389598695262676468223168610864779202780985236466843666729617431989281167486723238245147614058459920066205711361413767505225154337776158826241389309897711810448224240265724094040584228890419719144182446027599965968367124722841255410172905308258094554720229905828857790731256476549676631528859145796716494376791367304063769445124125469251758209807435722836478965393310854374881886943570007136347459709578073613524560816552542044756460096127545569988217027589568067442465881261952540769045382072158876230390278068997488301627800055396832462190797255943199460475460348206005413323820305010165710161511267950803579118819350620067772864740963449006871490189569656411887256918972772066093395669368586421161629646275024440614496646392044918313867045468936993242492570337812730695222717093717660131150082519879832102260277539439307105393114486271409645560369353244565070215008925650722958685575877325599128949858414591990165880976991327428613756666578442992567673524908669880662509767183990392730994769075169292169867400654917982570987133545339063223760778550676260787540993615547483643100174139292078704229177028997905754633651727817705554043119270133093625372987141273522554711062591246885615208032328766160038959151424677373786939713802762821110033217871510738407029869658716200743195480090165366097631546723306949655233420876544110886776662981412879158343833421341862687336048520794280973952151365582785921948023852653448726648139731636744714354665183282342872861241378145205036571479623653244637331554436765512796901638787389854727599832471647353836946431958452472257958028269825389767986528125270163081240596507764565442266708594689839894697223441267193879848492519586161058474950935139250578009104319092738650329954898088660445108022068803057666119373845306983125696288033567559335429506262717877184567697253080830459552465118986558924128112848643891753828503350983915546584632921234625436972679268521865594935250022457805042073741896101874835059631875054144079356446894375588322426980867344788793419209339988299955037790919425044258392726822274785670761491941826492757008135813171229284797685659130671281310897331159087014035343653197731833374479530557265229989833934581963794254824776159351724366136758237152753681064072406343993629955624985065221543559007283001939556212509417217673361938612020605730117952110470743581678355358865036857182616709376096630063608411457773972404763712110421177315941968459690555684936613894504816531191316338180045841498698109886470452993926644545544136580546546219808902228494695650904475723111439995193091021516663413227225519488241681606537593032475220701588423557230523056149548875893199947903644088002433976133703392064017287669410106347368384899180002730505461024716094083275593657477075061275953492078424420812030349064597673282604535653607917585418135337869021335899075214484804569631223333367551120502204226990776781803735407010555351765196176656051212033069278933744829363420143130511226661250680485649451538376453495396950495910810371712177665323585590369636687768940073536174527198957745666403726694906100768086443598637562721643928952179607954414432314873163114686545739029938348027079395670382740044717669476161972653623490347737180502917411765121214606435873894376604198320030432045793977321594132334841237137799649372084630383509548858486213500709792823730156225925059220354201226460359411453935047952666907920438564902989709625214218119613844320174342876340651537575161605610090439173788228533029705743400445120430258331341669422791313843276397010620137335285086218179366722804793760122876589703764330751424701381385079381843079468131061090272479609336625290045970853505150119208169164385990095798315876120639226140253954361579396749307598315136531725361827191298010459328870119726157890682336324160543403741063956525928603077004853382248256228157982960318768407462400968156069664981481851597038597419974079777708065058193091908536472122970494660561683298828431053132817211568288940778497786807412160510398142722862946025758281059104416747177713070388345392620772249230771839880012074660355556416513411714011745702285665253546978521350579541874928032926910874509096357823072016147237335397550591672409256364435526830833958326986907917499200043713578927664084588265483110284399083752945372366452516697391667480854370143135780587962914041449394917567042914526790162960518466113710499217519645570860985115808342858269994772628072513333862059348870872658879688577833499636673216458960370429437993256879971676586463354775976605249307573137635550409040747647500526112749268452160500763735315827150494497115260358461398257756381790021020619604515469566983074845563708303282330502495573675041222741044180164753310179355950734469971166635148221579892910153907041421477592895852878721715832723372292971080389704253397631635229485262710339146398150062553495851421043127977410697076833510658724534013221806449405928671666501897595240997699216355684035101459578181318577726083178941436942692809220850620843869844337347363333855344099481335007647883174239497297645193841595426073887675354926626034170463118553671207944730718586290773293003880659739157386379155240092515367537203061522556714088713912766390411038946448388425875447340463448087926280974320095402820179894087963726901040172373650473854942430818670871103809011353245182011175368799363578266799599082513141468382042992108590867750823382534968599175146077707796622768808103158388962169432310525537564305585769106963550796599284816399202719141420219446564543763132967402724404427053241030818036763547116388939192885035019299333526702727487572940010254966397664514905429728802235096565636537554568630699616119132681534538132193212890155849881220328561491405364635926701843198602079960291727235162402216876420952157115288924988502656833534999394298213838082884331726990483112602422079614314270166684888944193610697641273656333517737458362375768415784673291231832019287082478061243530384728353994973262609605357725673941772663928029949612638023594302677290780930940111541636524047416323039589467674980391066943163581328598394419778066482807302201964890754000283337163930940972768374401744178939014731323814089678933415461516431048856058044138932741174584511703676620038448665561829118405883773710742897997837692173641076995338493577298453964071710161586025363543241444583188153816916531044659246633360982377042618258123829928558312214305482915578258187496795845277826880716735787982874044472313465045567356846388741830891229057960321054556033574733477316962389004608035134509114311497365558923054599231758787831176976578517231968958350635362088534040758104375490249437166014224624690003184592984163481076041913439249052152469632856029938946356011881427605646541900073328443235041715781588354160228554082230668959472431465628155828900546165868051061862923184068878557068677234174252556217656626284243522206444661425550759389262472594125406726913057691628687511551840348081432844003717377530667378992814018155117845995280170217846168844250963553721263383406602976319482322267249917839439683138352768319501974944943554180434687156225839003483186351038956925406127641206302031130966455113290557744201503300051477684863644098543973074373470193687041887883204103088078552472499064077116954310259381143577173050839203129041178158928172963692988805418372816400652303277501456190773483075151531436132442434907816331323912406021333720606976668846281401212005961372299162354356913638568661948903522306556561643321455260727681360638873036841937691924707431551155226665396621298030344493646566836686638603301677575503390388826623713576305165118057877404134564390365311812284964572632998083811616453150704454713571622388594539329359560075141831479085369651088546660663754448010021960960784984324202233159861808156249756675916285301593081702309281303613870181747386916250689376618877708965010294170427643660271101577426703758402433174841306996083600927658017556778513351001918456638338643410168017610493407778289244275485837444754528804229339028847671748424837386856868454890921946737994241324825383938073616963665706161473865847059353110013687375418058274271854172462992062353443025157952058782864313414753066492604911609485202742120139220384666385148462596197087234909019751187400442012187499227992098643111050664009406464510835215703516160187331047822071533151700318153769189775691828369239048730621175299894049888845209096803500122302561135523804223374277004632987694577984609927047308700008000021385661421353907300907098107849559229798450691795558065902692519797548649139636004193750147184723676297233523479594732527973228893611127081158599833126483769472362425390573177277952881677059863579703932080964444437107410415493861002037413432979263807305750928243987860923601817567212480686077674093218336078984959397638738740086784097701232883495639372327196056196156359250472526730231389578922521846066049646746500588125873005594658942258808186198247402594590871692063275971937135030137738190936570539194863312308508630168729447240567606719494569985966919267283838810347118543320486327440715042772534161886899314157534202281721019965771255535658813923583853030549979114723778619850000404179843137924478118272281134471005308669249174738585711520260798251627321430247475356985710267389723137654156845289283069191845758240050996020841329392360691024347815389907309170929914744663920304644154903591291782387218336853824568517350775594229993219496604434947535845340916271184171576968903303970137967538727710083159381483690950523921697579035348513816344052858431228997475049609740969164024953017350366287283950719380642277730392707675449875524555747214565539071902686399302852362233515063474578606636597257152720418240632842267271804139772609457807612590575519202923424501852213974942797549597842010455709239822184396227189263809182617988988193850040153689476660343550953616444055192023117203479118885745748669932880967253806837541388345557379316958744503900854195738807945284622004455419173173427542780397298405584246769671889992615229338727540191359898331234827621012622158020975368306299080758176352903242971211738193122139300891172924945594808317148417633213180804406144136310155339945955623019224168091749753400758014914341338327823579422661965499683938082439078192840266749778308227256744610607081866941548659791282674532509850619920575111373110326901004539581604374206144467885825535418910778562510159433867401915665087360407737722970699647476897136253293065270820545227013328987176372885069046541384083757110058334150550040329916020635479445470614402490929329135737777458774450781922424184746350871587759994214570010058274292232623458634318879758957513213578294808355893451000759544403662615081994434579097514415338754887668878391322427114208822734660962569678598669148976304195367337584956296882571337471695621129026695351166887820298630733008924184531131422884103331808778679833060984807268087663971684013784326595888978531781464845844150976853135353751020996628726585476822984564792334372050244787293016161928807617272699001107931845360059863027249642033421246436613626768394529201784292400544087958747976973529260704816976030822749540704423182435639125488591882628159420724979097267580488268408316630072911902078122597564961148109467516832829446282746761838774365106520285805345827263303043119427226292558304755199794892123215381452278824103091610580237166808016378565829078250448339925244185391222168186587207948305927311786384402633801011224331746502289575172721070548866003546574229317344942961942883730189203662827587141892293479979675990802868259363618419636152090999410537939085501259313643857592214051808593988950744758233356899691580528390119847845721717795728393944018406025169583554479939496778142021716341580984168670133527540796588372819233129676550172545540886706732763039508568068865220655771043876475699224094282077569078795395842986684754548700281524435896854042791564063550168526248543756396975942063347932348423945458213609194348528209533825933655797540112210489549706107682062070295441107953167346681040295618918128114322065819891993748007541426869070603950533495126717737237761946345763020034136261004832085812922258142371110891836112957452775524401997301270762580800149684842926349571932798142917618980768469610253610886849757510383276562568903470109566385544859592998936054529630261952765120673930259710660259908011512770907241917947935353037127449980458511914741881275609279552240684622665651457091561963806991170668796299808822445969714916635010396592222699538391903776510144915815396297031783951514134187828319697098633774093847607680799686960902701767927488678411250847633226376557802903714661814804081480615503552466383062800635816703033929322169481542094080415899412262828868564839018868197653014607505626125981385961273437904469785759857520005969243249432452432822350956410819341966131554272048562841865498775256184704694957130239683411281386674282617162944966735238221166302856537009042255907195695827115114509244265977481768586579286709343507071020197489160987079870869957078853533690999781128705384772863982136531625362516182581573552771933561446022896983621274187527195719254770580479976516814287084400608693387641326278049713636588676840321426240223550226523203283288272437853173999671021812531473280523758026772360880708532281467859563592326221913305343114242314329076968571503105091425114009611327852136693158863079799368056507592459411580219552176207781798991798728863636085959809008783638525836365069544616565499392175422834100342034187368548091037651972034281332686814873631614785199528527346532319330002795270786601019827049981507870414958705496267414938242374800032701348084210794054843596856119914180239111946411750768926227474855491695418323810311985924133181408226633141449972005319461490435725571643225280555194167682259380090493078896479504280361369468857255473108972298378930280439782818452533629318212140126055727579409455481606314717716301221438945353076368216694638458378723452537966505825009603439349359932738391293944790175229240934968900222092232067455676029260524038732230813048897851612530099877301998134563711969921425679457464260116865268585681785577617669609573358556457213280944622310182883462845436535084181112586481926048598910821368559144761553002354818800017161575001491377798697897042545054226285792644745890780408312856106057485184821526727651126708889241091419168781534746383933968953064597669631226743066945191403016954813518127081279490879175269170410445685192533442464679069643047088220992489734225984837863529265860152576854917925350657962611669113608834676455081365009611892159746474069934235266450927411204257872592081475022301318918040660192771537563908167075450050872240023652166457444116089002521957532076598387330855525132939053075097902559323825290984101292071112961709836795524636610298715863881623991987494769769489908148195949506780207953303821370540065690749879848378778983963998798926933319474781438976854144595480679540863623132643107895573300902413749838091182894317900508531694128375677083136123233829720029293497024563556758305824053706093832800634562576653416145563308346703123725834926100177343123347215766390312093584713788042489673542476883287939203166095747636084219384177243429931293920123460549285445740596154577168479814332503948255238472144748688534962620689200646498335328763829532082211925083449712139741638298211888132490134133952552843869636335112124869537634235511248783997603441250279090155131511660951393934200228273193671809619640367456772113697053676365073570795669185540458418338991504043709302337983228046073424556075816472390694717350646725346112737097992803034166073781284143376406014517929854874557247584457951257935419605577228430672785319062165368037267501733864834064193012151027730990726515469669063181299406203510527016757680711346034855475549900558775372433812036413580300703593182098984330010869153080766676072768306612187517035413446801364149173842109523140401700715629175830880858026067177805687268092591523187363787605076404237954724636677994033910454040430713224318338315251539583700800444399191303374909286467323643861773572918595485615639937430412223054645636518559451353964719914349575798765274783015794047599894124971241544911179417429062631347063173979409002131571238957128523504645046667529467624734298501494896337216182693591993064626080545600644361232821553340291846827024596421116956747366607160888318897252599501239068333731776777896320654232192755792515150175879768994477182724981437186073518934944357786450813499360185219499421606299218428290056844666305143333315893803469634198326260072839134775638041460137777675758891248332880142657005494666223979870468123198450538711007094568814026925328367048504572697557779761294510132020958030301434041662393345003745344683934797932405039624969321063306235874620800236500698341383805974548239274344400051028820459181946115061589328669488781875078165524668763470816778106083080525211748689113381081332557619683370889121223679793679859565821547047606560831649770842052588305134902619849106607817845390920318247072908313353087899901161174714943310247136235391031430393401705519839621193288527477024743923353877492982208500960994647910648163550191168560207705789934598733074025530282974455484021543151831944734583150173653003786713349188285128003876789695033445262489317585753260339736614183392869398222802922094691007296175218396090963177847602763822519396443731553998000813119026315079335070260047652825890845345078086969266206317842946584814664024058024399342383194210265149368461290765396620942409082998826768959404156085152915712982806194708323612846148912871966425889278591644656488891553244254989186585072607457265149452807231099772772982434148843406436631542596482633414811022594600180503550349109689302464169079477181774380406506935880612104221090020418777866243808050070809037486989796046861100859369733318689098540028589319358707988758965640575617241715445466266530511251103320877623164526916050511117066486983317455518398457608184081943988016998677746564639552556122639610386007710196031998876187987638329327574143254042107761487278168705060984186486664179782114030685267104283580533741128704201628684923956304335307867117379002582830277778760709886439573613607499204765556147201138602343955963967907338432878861037414837160739997104822133910859597278221954114509749841945205462238455987962156679861744615350961750694511884504596086534087628013331385519769497399236077768426582282445160885990035514237461141929939962732844873682039402612747938600651961664872547649260751764071016141780110829572253836877912640461960079216784231515897119513162945683528997648480222698090753514530728552135746250595644586828632310039645895900626355597626602855513738102792586003916533246407746212270859932728649937527341536996651995508781839353527035171067490674097795167725715110414105180698571685279013729337666386145231456583858955330333258740940436117030532553302292784240000196340050623185253654227881970152000444548369121729623119485114143119014480494996886048319390803570443827460850141787098724631301679776359749450048071071443313874794707805201293809241791502317992211185409066840268439678015027030182117948454886536800483452156186633044428043950193944275437968177135797524578592583106393671264943428296502526597868214678686207428919983964207629179396280311867319014288003662071512862683213428448976910539925944950386815418067496022200591189503904202260034487845319027548085354591816346604191866656830458402541734802548590112652732705546447796827002092424553272389804093262126431140810195410048793043252689824189998234076851285500610826873706246118443327841398158580371677114540822787669263929312757449351050690852423258892942465450405727094239949104073820391902908881641072741653848035068893335628426293439100991703009170779563572246677571524288067289971898414702767377874157434547832651244889698858662808540890345862491036949658110569754463110818750281347887093554182605890008406354229145312420690278685097431505511872643493692643830963551293126435430861688943646385743656070557558244991856831318202751086343062586030958549315436643169655462974268683497559275360416661792538626130014240238131967548737778195423558485556103379168726578922028224250664549523671073619350238034595260746650575183026956673027023582640447886656218878931435814374613266573262969810353540238827120502275102547904705545842420343464030984214932588814958302450253358069875192419227754248199149587083462042549691347117555427119548218155360117061534506824117199128396354422022114916780629287310789764975971774126278579264409154888292610969258308058420682329883191418544662163564688733100100046500766073428260244124021160965154025225254143756025107034328824047590808377477951023956301430820523647653203521792783325755391992829342677180027499074076552636988127244571697979932325796484202935244317390079953368661488642360322757279205667613746148899720261345361186981191341408134791256408025366241788097234027127659416908114555940901866094906512201462813954652339672187004702343982879963507786024491270442176876622529064737921584720361150970087945284723325921052969349553290549851247811652825715156588034751833387020745338101704970952739560949538783736558780611916479696263896754856596438466675331593852319386879265100831060871134280200878186984722987255957202268240426240676294765546137539677019929386986581984505631068781016399736898765791550721311020613833654006550546585560493132231401003289181068284268549153870404846071364823944894399005905588034087164928257107258830990152955124778558374852670556783365014590960737252814277142857220738921179648055151910831358470249606230856661461396155367489887093524240796767571083312372435276639096587355833373157830321009362591023689178927127563467947884456958296069478431296718987378491913176702157402549945117154790723576221980103508145569654815612464033318168565351289072209697701207720844324224711683901062057674505817856861563812210231216490337246435707753677647371604739007662581061868151467129852858791932503791307957482904945362117161331752564733802891913822100497462333677711089528420085155248248169105961679229737761289127183886154709819935996561153979764421495789447895987825079273191597067115862479762291182636649779149138718753621720832066430953816785288153902402261995257727519774153264023403870143424775217083571038751845024312018169960080798122250061846809333740523891736446850450604624086236345586835057330893771811179712270249801561693731302607850233071553367992864987857553842124267924023806143341269409696272740505083371651219593951363884206438849625159895182100118014044043486595343560977843645774824259805601278829860580775779356120166016596040101327011572575234126553773600655971375745502503313796514784069273029561558380748073833123390878747202069493934736893409222357767727126016886395634058909799810359123162115887746971070761449488884741158490596503016478373599027362903855319384232517837240690907449502999877833060655803775071176382295509346959113099693635164198093994851839769625269642889454981011173639906703633771417588288054012106059201463804895912987206916305831421080927072103702077429052694378873143115854071486217647762869804750570735574172557907701795891389688926703390963017863265191073078285939326641653127004038450491129833744509679638700919111267672299752375474766203909768779867283948451534954355818817660314870834490095720593762311877860194713898903795932718587909733405699029114078679837838368546761653294916277112000909332943199666621874740993926984335279858807755407070943320625680128822138083205311103484705689015384934735282422252442130972092160621006013657732838489583124262488074213054982252243285548672162607676966633068424914336354315821643016093984492249038287941866803727399468684990425344124304946728528121383001640723034420952945654217029204258660825092090376694126610551208216363214180442153982027065291683000780680006074671806741687619371704531468558610661814861242363096872921785694921913376748405559780353845322758005606817963361484242280178206709713146294884755590088296930738531936056612595479851302917773435105929648347761096675720382765928077602362228124463549063497304725132055013982226639726967002384157234609380335803350470723408000618849726805066729196997014559411241573288245777159700970422869793421209798584563850803325632188977834262136445151627838669409273310816772578316996216698123248846870372495665241423144626695724367983799993551200509431408051074703064340651633912425427015966001658704395655661881999901909848070026886354054782009021909597255221932842976735789169732751001374125692350504031800644012015884896345986301618349390480402332857660599007237399846178866828263185633300579814721141652812859139327663091434208398507749788416604638087177951526106155951663734544668215340585443764104354164720130851956202071458606009903278064931982900094130917699739306620129110861552169376757206453170456917749405690844334235974223711258586878682709028972984273850673312297088955693736034408843308661708800631750106677963213188007346612532128771812549645108642175499194702927208490501680191197801317878211592108510184882734829281199160744205868040138893665282847357415824061187418185450417966814084159864933725738688520589654080962209802651199967885577515187115469902553840664004156483257859451725704023132337963956362269730550350994861443767124472121555272396599080862647222088984928167047910008694007716111884397372527748703280570559486188766799149810734354039673218395280276313312966286973903035484849816411375051502327124907733447052795936429941615214791323901930814065350117751540559955954996343179699590105856960738344705508902275289805542200485727366236284753175537045454614555198676956193783426689220927050173896175488200627845156834642255341545160376998155035246435141708461214128124362933518627013663731033734553059113925670992650928310445380825143439265562280131211866114840603761900916343863145151555819780025880182226712032845888398822427436936240160072109787424762330933989453394843390288170751323517419931114079218651610453065919156548282258302593319981926716100625263181870413123899809972493008941677276982901066068819988702813924405747964018347647565277353053259751531664551477443386177010404759063349022379529508910186561497406894202998910525850841075859275009980708355118856306936396659498514675227394850416823253969598071449908218190868004976318926091799138193464593885734414649445855939253092940944119327676498942701318273099981651003726923650094390680000103086947861728157439051941798001588158452782575382958270748424703627535530742966214738183569051613423077817160597410636550213996136152042796544023013167424033953667521993368874703100884222569531025434082118428040080241844698944728084041684298511110975016983017806635871895185008541729646572527064136852918725247017276845330411247122227266670458519013031134746826356309253452825192682249711652972246815164405362461498924888207384467830005416187392635275969146054530912665953784786380685040067709431331501939407173064300800559971750760147891027936725710199720340724582663806845251177284597658686688586840198402611589705407279187633224508779921172240111228572413288735996851467744837878109385864361444957830241935805657875860486392877709343055513525249685811354778915029194996507300747072821356400047020160521913184636918243298339153372596757454274792343641990284925271943796266441505321924894013086900454783060645498090020225406284709663873508391198271263808451577583601499076486088596692334552636764070697947198111793439630616170205562234321780443590969732354724576954167041033122304705358759667958385108775739186995140184303281447311045331630727535819632949444594487854986737035860460568466127372146715708861693114421361360459907088799227882129646525478509773729031753395346626925927268788908304713625250711293821374296878288289136739895138618540588606820895928285736923169499675917254574582842838014902481413723091791823671625480378308493423462618936626329317524092582831718232014819448091022919058398068257194953456383572678682735503448735761280876180743109238738907315675611007077269069919770001949074957977295807152924381441157732047216594331532296508013172234709507665182284867534243898907754039201227596112387379039158658634193204351792005995083263594889154384431103236019284985225667155754914317374700719139316170495497564747553773623446265762522359684843930448152531964222833125786997917036135981889387249529837505224075234103481146258389701957583659885597878936430507548068697646952968571572848876891808279547188408458607033273893963911188654372753675424014002073337044015836783026961361551043748030436231147352251057650633970008248094084506700285882044113261774002736828448777330802448387058545030919732223577366888058967874461801449211147669495579929156370746421466910131824260533034115638393848395670333337162325365980845157708307698745404274544565236581203409274887451116829130252146424431531102336330736263312083612277052951338148282606522332012360171368499345547209934929643457960837797074236617217733113196779421360609541027929881723074595410589057691710261513786384240956409412001145745702094160910646009033263477793897868106018498934098600159065950431280041100065120238137027768886393499107718099458638715660856901154696038816375734192217145493846435181556127057609977822915010168654403390202338956416149568684333146724613398690953359117489994719222574552463868733261638226618681362613593875863170367946322539465626916226766703495440575508178820055430160390429515123070361792273945740645240906138029291984872536904377833858982109226352637585316651710600494598793625215136513606279089482322251939111968418104764390327684694706307802554553858857362218083125060705262467557728936752247140496542670336623292395421224119465364974396677486998486841557381941130845345854600315451120474474196110782271558489073353200729496730394323227937706041750237074600943320305588915289795255533292771370112317653084683089344231989029541081949169462929383890193144738116774393979807591226854986591872600678968697521698315059138290114069717056554115039701535587522281234580597220618574720129190396984587338955277231767593297450798861305879085240083510956970923219913597391898317942728482484285344940431578049391609132459784947456188657216845968029220396714666379814399556861770691610055403603904819977003854475026862685259875690331871022246603885360704782650378087414511774263129801798770401718951284780462501965918489118962123194802548497970889318447644490609641338753509749600456242772634843388613496582486223781716950152054720601580386903544208029381225253807523943842372852152443681008427804019330046114242457391994530865268591905481705941758049262087889931771637461517409998532929592294211117741845563681738659117696724484438597434089917097843240888268781235952241410400845444612226706514854603476889915367850214529227314513201252650085019097377903085395878543158103212197278289248712734224109080284261985871333633893711306731577340932464947525673467717860571047028956072407528114767765845864970809781101728535908429004874038659334328778335447479536679751577922334119075174005095302576734127549787049069353502129335534809608925244707565343049413407043002966288085404136731720593514698138272108582350272376180561822182169405676493608088767420869950804431090431840864265041923651997148104714967178707985311073340171307599619571571726961490183084218469652929048513185971730563891549155562179807350535665960465004936660133180323873525588777318084566869145608006916655132060260543463291708648428945620971058612674021706956792630418854785213400435662500818131862601509345094201714817993569719793483424541091738036723825207426656518949810483558006806327527243963903759062348772297774090495680584478255641679051304708556148275000029192905155188587463894424157221415009376887765609047824857644243170470268369094442088385331948227331721481233950366621920240073396883544324328701781838729808692667782656302100271590181778510255939984177444535540339463271960075635966913658000448713768338887772088165011639368457237392522774980291565221881447294002443158963373056548284840251287075784007779496441701428937902042927560251152570959306204797855418930053318031092091822674551962172235205253842864432666030222112099115290689485908446061210181121797514651571446196649009011805824227830480957374770437452839841370600528049747570852660487219932697214259985435085288662525506040875032586577393711220494303757498897361607543614492838470197514983847375395043331528868481796418835132526246970767829976794227794403629496345956782808030586547662226404537093066528061543270028340122299870836859383064328374158138574282986424373429864824037031318535765853030797731920729902631082779236817962859716258871330496200040386802110383789822613899969770975828584668692195464247767197092644304374697334973681629526742807489169931929228207399754641392235716813265460453439117458891116740015890123068623832902825719620180561847405950252453762343751731063145379530774072540874688414124232034398910646959417894583822687247546089982125098122824567716578091991229260197797062418881963231725195148707089710196651586566910804956675366939480476426902753403729780926838593680872550422676861059801249450084575168707602136337713814599294133610830869685675820712174728940761542717609518542801354895596902687180410090810965814968530651209725449652777751580984734350074686650654249802263462539712452208598731385247998799328530738964352106459337238480740616631522196335200526347406309521324386082469788318425881431536245041480398744287117670909491699667043588739876161806420422844728420735908219178575161351440216402971460290822718001052552682886491835451429677059697762340098909651511758665075028613718819447425192319031377233135885742000565483824306355120735655582828600380118827672539089934905999545245912213264440960311323504027696686603121437259562623110178019552991948424695133817365444614229317407225190429673891227796977397445231513979716323303515269552343555248563672560665495832189124501321843950941695591842117418487570115941491157000445244546971647309203116479243157412213130437944660004228010779591122171716907747067048404959331075013914302496583929073885617700229134866854510438139819367178311686314217735431232781952784316636524944508423162710570964212126547611585769059896564309007564873147414147426178225067411666318751868026368903989458936252611401038239519649802249850307902344955643672325910050272813899821408901642524243410824190786867460558758532929142819923184416578969786737222074066342077105680335438423158770506442552330336613595000892308522088407935611486052453230609561839003419755375167823076573605119138863549167034892342684815407920590223992007972385937910719202610456085449742505885362294351179589089798316325426906424604245715477484888834851539952791312010226343347790781991773969082430056271369697527758568337917609910703215818479659027980635811741610343650754726025331626369127503305687346056340764716442539544413842284887566768482478350910524163102785358115377181587359972402202405499614579380754106559086330376534424937828197047179833874434026429424379613251276725323848613246885498882479687764981102505589231104248670447687492703965424345444272111095133359488191902399342141678755783378153321296391814460756090035731972221576265226262402263462009821491081634037851348080000563065977142487131592324757238680771296742073681657832593424996391817750346373424804078582223041968061317375161719950146178303907376647170664862157413363665550135358804912764257789043678731501105631051670671619915202337476264389802072763499993767758500262806926746182882077401977978507510690176160409161178147288819652038785155247306002344445639549771989260477101065314901976571526062588516328436110251208259233655397980753563994070640440979433865944159000025879492084320397764831171402771191336260270208552877993989783643434886642301040465403405213542445802813803107726502218788114158684707424483957446229521816197056396963399138409799366217752472590835285571347433074596743506276632430673321717001516227098398319630905349551538702900498376683200899140164259033670614083007498108463550322165619060557197638925937513549510326971649801198923828005289630536544768905635036453311454359755270756599822709977199890802407358282769755475398672809484673446636490460053089315882265421710244294187680219925318703007724479587006635351213711854774102335217682925937089576952723856084304272917157609301376561263829997738443100248931218130516217423119990719620255043629271279928775586847129342871686491171826827662804763997836990732081015019275743112875074952333108203768721781275137557743087065985861765061705947794192770815330742151781507705600227101069776499718496146601885719608264074277051171787499170728023406850766698004470167941650239431805744541643864084558043471867863656554110524463340277721359666614839791023341232216079038729585780471335014952344631568926654244754204162220782329257040399140066873808555925516234213891025655005487409984583427469326285567036537745227270577775502894228039216884097814088259195443866249715831261477704541806681839880618325339058458953045519360527126130874556826162906551936515918506678081744590831353178482432032174210388376675501875263902765085479947650288207636560625667815676521404780652100173254123690630349097890454589183485883217342084490585583328111181173241750348366528520370759798096495957064449401984216098192412354143491998585996941753081042298087308273165600153100961483457762117005163508325136541025341232982119664661461365308805573088454295226652535676288508950867430143783279918575053204256666907639750366427182174901005226212340730328601168611531134321586005640754796314664616940034124985521583935517858533363281051911460700233444981680428050762986777142947827559921240466493059991005880934131323934537199890162402465332519505314253253609757104617915018549968886547203481087184007698984028117786023610678731754945607857925977022574153845935956408030962058391293888611195215182589623357569517365516888637387217506347630901312490863615543394132699693074384689282201043609924584111655877823194315373060163750545073411632150054548785576920058268248247164830136309073001330883536904328228787470319827207820439291571375794301030658681085529750796425802265112158419856639664140812039939628862968251390442847889552183969978817609813357371210933011789422109272065576832850831488923502995164195513027295143417648574731017024115504521580250717430712662807901093732397778714563494894559755318028355067695273349831513946108082688816274818018099046933647711156624146188044751766389673510800832544740089565718738920272382642372810843717458831337728412668257748703996769018967920489137099282715731696535788245538027600682724209463973684374191284875412411728817800171336051952354934077208188011224693453813476231758737094516178859166022086888249134385138454035725031823237814113290609385003647100830596148444367741410316326009913108797909037968982314092024325061295609739747338787411714194913902345550184641520781474051935145327156220217192660655439069681957252838859911179929647245810134193172719601889785732594309496759684278536226583701139724804556051258770340004185529622578740139736612093863123781061816238750980341159205542957418070741928364510213635850521829683689678746121335920874274056165194771439422462035603591016450648070361536355934154446831444562100913881619049132332170748836552421809802827175735401367529639604911817879784421350386278816024919548177008764885899123597344993390798500451293973603226690390005038372238726918329520792676983123974159396919397946420277916025634324062692470248915537623199283407532556498295915606599107306399682812272127779819072282078763255987416109740659768358693044748730331879654105692052359854741468959583529037223072888843081009913828628527947165512248677764570115360083446504201485591208673095193187350130528482762581339430192904519249422361715425978847244507398159099063741553737412663801601114855560681809803878894890050299699925097540283633982519598254617048255988814454220031959422860624949878477029183585319663255851656229316106662896956660258696481189151899880557557195011890383181436068819225753889339404407059159335141807260685220445122789719516572615334833088798403162133649847138074588746316849158908252539981088471987288347042886748060856390797638982473502134338327139907106864195716033554373903086718578098541895336442634399970809949295482474476615063657678364563244980965771051837458440927844715679814812575129212828768541884597212265335600320762476959944740871958009863315369326004522444282031815272040256599303731939772524686506295279939984679299853199714157814985270290416649709462120994894328544109033915084302978644398968577253561016858117585953077603292868674332429432374898994533397423617982338081842069982330706952605839494376195975672057741150017563900550537843656529789681784633212381425271839974574496956062747755608098132031888004043350400790844695635317318312984293371150338764500544649455001986834265065994555478277368791550365650701578129929512629512282922307361087111717836988291170402691985967521190884743430754367476681234037729969261221397218480397894175432157755287906260517045744895883936336564589880375384135274428269599472437588822612963311952554161061199931663592621990336291410153012103364642903997536535331669392439700896097544255368992860245856761487894241938732861885050696145798917058380906898915026476331977855977561284818045951810788054322163300248037935913520878626643469578965811854423963520889376799888217258622000795778170280117496523533805486195202249251152221948210261312714795981628590574650274627129606463304127815963356110993384056063313314208909715720636293352817955140072180931373528792046322812668794949439264003780237251492220522353347956488215519636961861009161386558776799675663768582853363908089497326026835332887230631043031438976431211647709175178115258471208101689557427291860665733244227329843739275644977336337033861616515224809926878709031734946151830260449209584950975621572948298747555856437626529766714851768893776119875603766703028780286106254909950736119941686463886362274587701097068969607127144993592323984532732355999065164243769448587352570264139448529726122138304131959172245684354820571921926801703059521657282942094368262300032820887853329858961407871467185748904474598043270745231468038992483090714036889295484691019325938316905544549286598210085573255183284166476890018663963308268876730677825366101656627083854693936723861537452890842277852431703961075156465408711502082240138691100424313193280638321742377818862850143164337519852915200141879204331638093932690427450596863664984437557004564998853482754868884755819706973117465849253915339408820297854092635027098544562773086534658096168859603423265670615085244908500769446954469935471456954667242745272746963331042801315697142033582908162984338723587758830138345486220786607434547512540636018102332703581118013592658348681128089152014807237011224747642746009241424451422640768600770510070979343626903436706519387166148952995129346852999078078907336981394260306523994248883305160746832144903396074452001819599487518042719146549221564838879830049843051420960484262320198239069836590678928584702391151525358810657059361570539682281418008800466919724684020037363023982850569014270706800092566274945643008940303313619474459579888878964875402797235164996767233539026155801118742694683313874820956930487401755823684958745975181558680690678262420938168543113070825360910921289278401446275646594209619903649977226147998928406655988624857741734036869382092779699900277778887517909403151131898215926562987997508656923328559049328256145283356442274764947455548498421953511727071077441864318365726467679026298544086902073520653309715763168852975841066866647104844926812678629098215317700139169513851950706271489178717718912881492062466941533194826504856637058958171353903863724280790390166434921576638123536275473173429185337471424235886022397131816363082263967186520927265828238960830824757931519364664225470518795459493105482285373795762513884521884075295008162164958820951631181453991546738023241876476819777102508553477975446112026659811376517436732583378529021494352123297725791331427927002348447740983144719015758311816660871130869702709499589332138754123361016559271332877254650857866895583064451161606437475861501517650983670681212701895176535277577328842396157020371641715071753489558389836137101005552047309994562741187391848250887181197893882673745092287053655484053497602483346378490434962947699768448910303099751988020099818556890361043158247499008327399301704372777271236013917752324648723364760580089121804941716323207551038647736483413472165108321236238746196208914926562129301760051204898216959745097338251360704238111223626924478086166690829817706987189492558207250862130424171795945946189719804057897182830333552716363433947766497274602201895732086515088041861640222245726415748631034030204006077115738331898391567514609847121170046840481403970117527804075185505537251934463180108071564472869169114982605862226144490410333866630530226190470431853626752718074180706811056875394791353546813727047642598872925681618702515206846858520456617616693743528271548243806090026881542675897556930147433282085843616172574234364277611036475683186089275372736968763078000990044392257993967541904508457979628085012829689772693626919035332053366027523217117558729290812317726818619585579254640848497749040093664052574591874042944748167740538943514466461760785196333769188711125516501271656799415564267952016199070253073386861014650582655354189192466402053422378964031383760304144078247633747196851615257347713365992816048453854737656479743297746557923437350613265766954766789664437575406204261085608166251916831968179166442883290855878960269948952669867488035908537447133466886732918445340487380881457821431428556970440698510727168350320946694921660759108850532792601301932056611689885013057389366154660966452035075211030016377317703311242990866121150673614002337847072023474438062275607951568632177468410707075962580589985050782052416637197675927131967391342941539132826622848219287383870245218326792022581109755779756856929861815190161558192793921731891300143486889228662511338651892043744720772727353577480867172867979580232022601441715051043151059959664268691060490792933026616345704726390263361601495946160200239780864127561696802802172808233344944564863085246878289756133065782859095519843899597538561206230993266908088526963186314994304982432987326057502547584146513321188928567665279791242462712904462170192614545355822808421852483121291984381764340836817594804824249673011611433631255394212287855314073049901248219349816156867509885211640563471795127816579538876770087128463779060338298153242281422175934726269317343952534855680387786779654622032892546145451429536155431839209842862793562220682819688016219868279897039943629733716001763468779639386001487654412146385481377765214745489733536855560932843914143478886520794053699897086691795045629812583338834473742209447483494777583142886181391244971984265336202936017009937652167826498072845704088838858994760400062616708757737984202649742348768390737660983120910421011491467176478814938780540758411420550941104758437759062874419480995181421583501822494361663722356327711751965577187910585336480101183874681626174700668883088538494912943094285341224336205188166356827308678022950611920586094502186450935662854212932295070445491201073510880900559754360040473228912006835152059061104349235449371550296485782128872992214739927489001598202527266049146889782405850782194265429943406611952698040675795634955283361828036314547143856636804698593620022238554442187897408611768943410809194405424706412161586258218347238386514784967119432460319340187673357577957051963648646471885644028296363644385679337313257334097221689027383305157086741133449994013838961832624300157520756283907565689146998305577000201990749249977037339813579064191541222129484175339781143175450662909918529120840881766493994571039871215022380024140363224461212990227697234224999610373020277989782128495043385862537559932521464365048339587951952900220537108581952487677975039460035311754406387166488154557753869551333052864455070936781226183831336782091709937544280887335991091121274258126563071348661402712060474543390142540993757000201346571124156408764385567828584497002816557360413533780878319869193469999213045907003511636250288712424192690525543089631149120865655079524515372732057819496302645787168620159384260503913304535629245908740481766307550575684473628774530711575267602655561924831386066063284255068470982912969413898991042349230453463215543834606019248107994455060968802788673372934942881248263823052247933191315782916045427899320821967588182464755181085193304412554553769381316740898314986832819570721529024312382868864517242015870150126357854791488838323151864363414620979471661705279998394911029802728155478483085227896338993007625539232417809698000036673427440780035445032693100251525001246739736124699449682079309335486044029336621906277295810613776932192183844137389056479609188341749451006584164127301809682253179741592447772189515894948919212227904872637274365756030008762886953940582938200975590020739351479889725033318527833892457988355134999455813935998496193198159322784314628464634379596246624400070349815212706196011699625607044245640430503399697383948822907360365034258524793703909830728140411816323590082744630141549566259245878119568939684485645815932280434090861927672743877167115195253839405133340443384918262922429387092968573693171928818182814361695574962351267550277622232371797227932618736771501274783872530987849816824333662917317587587749658116444875432352140671072281994886236471906895448026393471058584057125478678854244659563298469167328754790625866536453467107003556359916821991924734804448318665954046720504711765000430632430176520728389367192309349547003520986371365557844891610331323039680517816260986431294643916426611855446781124084445273585963194991710436085687226967515762521490800455061766599266016348086705412574569126507894081123482441624003263610113879783746110549275455372598175633276140225748477439972331622556528417216110587220539037155736282193306798022634462425330489268508935922169006918874675803118467038133737817043195360058063685521331836770806323695261665355672621412851549999738920205415107678515028345864164414339417573854127664672607858922064254928433705482570979669207304115241002591068654070074585091152090507689229941450650022265849734515582939488005590320669590808013821262817606144843019248046299366071128078494618018392788786559774205089378791708779991536442085966371931914393028829048465027339014612982173567173317205613367515066018745624104910179672744105964705966158795480290980637304564579908928401962848095884740249687695820125563934702719710781052217577211096545120258693829250263801984894093712841250333314310084762863447691994612166732671145205253560799872316697721374366919905196896179609564783898190663731404365633582062997724083902814099027688057447181384711208837815556380141962259764069894681291532232082886799476649503629128961972877776399158913975078409501037635350348256417998796543726374968187734352726660019783781992319891710954379993930769119524442725296173929473558655970783097204404043245593397808382920928721644417450138302969244774782698972147162169543740725278793487653357488059602100031182248187993833828561462958033790554305139795883183092319551060184733869850174204540104759415995340172914873109745409320422033283857727337984511942376432816815191867664651601137839587773446178920376323748920976736231158504478623312782725497337174617664590031351133174516073619949499896341066685668747007928487479009826789348928648883589767388635333522182743731678891844203702496986526138913472102300064070648761645690734512027052349580639234384109664435466982463852384989549439653654012724814692144876367680247367173701589409961522575358772113487895027387043672277048817428901515223958793155813472842134845815592920042344041209079876077441720545576583454621034543471477089022130438511153339867669267750696564185931102799892745866494682799955532957807439904598781896156633194209169172060550486388502455627612341037168618490359713763173704716303763421651389833975838117852880646408777640967063090687470374285415519986988721246139068985885302865759639893307742185921081893254232913745720170466562788834604526185155629047862401493072013005441390511115713025590720877435867428028981575683901106679937504541129988772515849106339823725999387710070880240501645962205512190691283074594824718125429838086100924830207559593374101493368144793770629410055202981577757000750739883049833736591079380035417432465928799572388001756451699669084119533497547187739661433550828835381026369021791580533905991846731716196499663828497976638807881513014900643523291038950772874576046137840294866079496234090015555446431610928032844055896479254437109141310031912991952619386840941625877596326507453684969308683421912226993415172269417265897581410766316888851337199990818403564007481197894357963406235558934810086496127389382598438310532637928990366997040826045852270582020386374101347635892094469176821804473894790605711705964366035075353690522376713232994352595860861287633384418952421515418401460182437213723972558459572855748622689286443860621205515656672716308076634469311925791946129026957680532946197494693504383753021756685646341244183324566581554855849453371286827194966874296042724567373908610466276624119076674068711058112879689196229292117648345776388265445552456451188482342840328835703505228739819695850621416774842393914647177854892031965816561179537499293478995430801992260391214450820618662693089297051719120402443731684360557285404080066605287069423929312855643385051969387510561291100479602034252624145692085019506561960283233970475943713403099181533147376537495054229501614711897800042274184192573467197170234702034418751822524443004059320688251121613614176314934755375801382976567505125054310694134075001482067759974922651199542398897272474810721155395611945217067666403192125747976323387874066176311352270979796179021746002164285729668082676398236185533036501314041886891546503603751010580311624883610106760422160796328124742015137003766725364412819684470338629921039930117796135056652526538971025964012717012408830590653489771576851540771978285379825960058092514808496158942077320158597966944250425996324270654603644106155384969501018483167394420806041182877649323336654531155604357082365234928454948886041613135944787726536281314571406350132820251504918707309924052080129305169945792137064309256032585266157098712630120584328161778391522196060123005873381269519327660450660843386986767351423093891393257801332019512689968249736837425105915320331827454941477030879926229098669150001303821189270411477612461015178450268193118545131593998016722104063730905682557218968020963542944747166078353613052878848177770888587965536907245558306209996184713826576220426789904326961930583712410327434230957589878946651607807223299796545851333740730271917506309649341083063546793519788890836311864419760335252125102210211620814978611460327352829064386444315144687648452687082457384870790612468305905404382778511658660419218849968923562004424155765936251473087798125556965774967820446437298442896861142137610103532648390167650521223896335149219642799650451080260971673416668825520834771642474232483317354589461427487054561823284163870112895839633266120009814333251631100751174765570354812706040971270852045110998965828139836250580515633944837710192040596664319400346364039283010242856836310152047344379054575276184060686643071959987939034978207708547427208863246626259241214434143579642490381284675299895852861794388076603931947956303264202486640876593460206628824330101832455921159974144033120070489165964702109738496094738049370231044041162878043360227505259403322957083560667751464186530103823841309561336997130880325718462703799552429917686540972587140329280456523281493813272955067399848789541862397308491730194847307310739851095542523436542484627692622564842895486106491438196869816921084957749013733252517718064743545592408400391817567669963302446488752518552627648593039500904457556157506006506923761316981660277318030141661140270791304845477568095052877639730672386196629665438477109924841716820488168801774482505986734010243724984659728825377150290497624179306530264342939560545154897535542476152296186050180501181668129402437692786100571630621182312421195784327496905577662849659666906502057225674112174013364308310136749267963225022422945728579939916338342714588596841887883910800725179811332528975369634998401124975856459336202265442414692718292996772352956007770817930230712149394738096225472885689159809984420773743310204329744980062401438404932453825459324258590077656919178604351252609095427093258237964778357993835222363333745913632887500252101035417191987715829534101603446875485729074097066141750468894744324715981733261304884769321030709002587006284296040880906844063617246360541728168076320756765384544426934571329588937189406204931367867188527576109993797487548629354280721778764111591255631626526397435900218199068510568202758917561494908207231504495659827124199030433218325206062928555219276075481548339983653086872748173272612503249184474823923961091264284108544967077433216617950718892618859907305472324287882523521131515477543873796862079199152087780402433837754607500616531434782403155871985129333563344512421910022025314745635439742601754540896497569168703066699010351423622714940671630821301887710125614134427883007143520264516087756936363894313422375083331551822048055863005567044669953270373107612319662943510613779624958213600259368903146215708183192937293700795397229896064939065347957042299670389386322739069291966931367335971382441230370670039044281144668111594660510921010750185720808062032749421846930894574953743728890218038967341172115956249672296770150541840159432486878499162064320785651337093290453372920421243244069021519440121682859477293906393692016853000967378791289459814748194660618770057668954477922177156323939393491765224247664390713237024627130849801914909346624382654926881435747682313341413758655611141721906918824694988461338600571801133667951640944127094421199005922241687874094049539878611023923587917602069965231335861424302322127169345395697673023689101801015330604667192784219358422296080670041571875144676522084253066898261343342812743327813507927616054394596887234489666368796105954651435701468960999513184307223697320737467733433821058740771750200840181688285737450598201271318077154392415534197661990196356349327320007992724650570142104868978177465624640002457193432129596359526633241560323596946770037680626704447605842880249149207900527798396472575261412726072369975787011201519871637430447797400870584066053450334380320020773291187234243597942034453224125490786521596190939665447529796492274245002544532023576616207513362788252623865471369764104990730466367366322349913844025877204154783508426294086107950640475465861583974483544196505343877100621339999676402011385577943604072778523891742033721281802004883217140803263626911827504330068655253109165607833714664735913909946194766316976693767674830198527981407733121485030290067856843130745761361956677605540005913637761692896142131220216426055308134800800364836009849233076571129300645934801435402121578115237615547922991639084344695285473885092320659224254426381859892282811615646517649782809663788001711299051057248907619620404704440174918633032585808219575594467773497212658091301785631499252277157225463164557491767085796240471075180747621091259029601776803893449163703467686554766545684523499740426671214976324032554408489434487552156477974238477096614907745208738766821245028182754669340655467411703871164227750001051065754965290424184814429988860521073723203527637164418578092521503456974507224928015984373201380240772788958114235303097985888177584594877888541076158930249600097747251224454478884256328377815484026440848811472901253276588106587460021440471751706361330550933066126061387362526913698600925401063825507230220491531318709252768562523381482074371376471578893005578781681054073660241345857481382487572227726201705691556836348760037325597128436967927271647440592846389172813583673227845891479671685188285610042046153469006702590529281546221377043343441400616648087810652544460102721033877294099368041721069091012249610626471494853327111553289931968189521920994487504089601851694671248408794182011710032933379830504023934970581080657206587341436793426384983713198779655435552000364447649788486853575768847732992067966485923179595658573893486103480474382362319889588148311654451264009428216491696911933445469819053351900231316418918657890083288868371920838793324606885939965788186538444293932608504296942571922545069522432696731458188589050146661543826427063098917390632357336424203136157327675102028670741489725668182463515967508401308984422494993354289302969265162644217021697261468182437186267987141682860059726042348443056701440692810678352705767118610419018909514002026609960964822590348109561684844030752165249035621593080274086751958515526391989660319008957198284143644264760264244677494002869838830003256577670000211699811574227053674645034670285271122377091332926513501492316491106751105235649239505464995315002694416014276429223472709545922906905977723178419486031863074693090392914444032921859869159839360046247923990507215949183407256419425648052298163171546264315822632798796134775109060515532551617707621979926239052823398563070482909977834734686111060393057741913589630125381782289287860633635442224052962364020014468022534453134523526659994324670613386883602465692487359295108656726005295499062863003303194092423224190212356645644577281807824327571747387504969518441203283888048492283639412007149828374634736045901338675297474206732898823126744018488729061148204109183213617749666061261469558367670502882232661474617065102883550627167107291287112485247953696789733470604379398160111659768239561402640774604129238037458236689487196605370864199110773933905672225623442626894186269869909630594224028529674256162090187317877377031068400429892727906146824241226936337910369334010765362088255485705875693739957097512001242887740227635101677173620602951424887408893344228292025621064441267945036409185184738552697973997657896781763984979217757802114072480098094914729683065760922339070763881788296378575173345690735789950796190916745160223965954339997772551937970859929555962768656957867386324183685686937307260094916065573965959024820565202474814117041126743212574397044557879097676125999601921477654623320049500774263321429999912952165473807561601084294021791835154498375088875772605286803743724302354654284996899098066013570882454935193279576067164275017751244278214270630791920299914302795215522656034043669876051398301682982139410706238165269902369483826126738754848275415859054864539903205536867996148891932416495565427302113355719388905324654137697336381462686306814876405519148737919406709940118319301062230673965035429086385696048295076142358225050758715452266023764941309351436798111537963230757375719106133148026955193461126471682705312377818818653377375460692657441551263781662655912049924666554055272843994778244962767073713973166605737862312890801728360725623797162039571706398970547024523409074715217448708560398391022999366379385164346338296560145548791902795538894699905805671033732243035403314674988060211259361218897926065375800643431294415382328101462959758367103343388200577173280018666517479161685306764805310903618509377371161244986071006197990738609738961012099407292678734253386627403648387927656760249814253149877495675149039401913485930401640311175428222679410551511654811749244640000781116153759600965023840575125987474407095401501597498838445257739609028703524066819188767537765440798114952721461720786460244454851741290170074934173776626709325927253634321313485897027325648739325598107200065474430916251054956909521683347325214512479618376054152341347909821704698813390928914166986126425686939393850481259368095438974220398209417059386271395464764225915649054117078966717746365237643151179068321519815344493379109203943116497857189208872180215747741264474763381667021803068054076385850462081083137052442690588394478099992746562558722413674021162076912958365284439540917191144759806693210077619924002009607421367985800457385856459770578358983226092901152027522652257842022706994580200731339963693653116461713942583621719369753127484261567556112504673066874944357813366036270277750282490794152542338067147536179775905429474612608351424653068827157767833178231613065636219431587459291827147535788383935628407900271411189683914159537445010062606362461713260065310983652423534103033870399206839586805158067014394169247000470520825480155404608792848696629611860297335131237444775064128984199522941332596287513608098758443177251648054553623326194138740508611868952376879688891524691082568104132585976370689636197381332429900968278207249670656045931891670240790913250576171066732780083499698227759720958485011886675979859371003707525416558000975522439750845780678296233484217272294107087943173013197438836472455844018827138989536934217695963454362957602752874474098641860014346626458252673819702640696142515500159841436299538121968684863537543544251573694014123401470083740920915588607600786941005917476142874168473976339709200396857852283613623315464494984325744127431234989981700303570450723536295193953463930325468356413990818000732665460581049975046175870538229858290638450193245231430576606762332557764693537323690565163837770277250379709496387800226653609121864656519828128973890190864959951433721927425797498498570930175501077156383921467013354911461664423483293024039005477341964958293124941513571999088189211675746030660333269965796434486113348692832404917802577658319740933057099633605371007364818265608561661045117984874697260831241583479980670681781031649718175185518671890683462328266100263326852137575815726026489244858526726894730702965864131710224794656680999365786155480861925851515951975589403871895231759364990389040016489968561637420174463455527360866416929135140658959235248348746931985357017402582182725370537777471875933929739001721075970216591383783019570988164808173387245919960116831104933614226399079203741750009003105342427970686024453806978400134769675600791046453579448947638586452611792137631838879297086535541460944818784572208099437604377140792146104451727978952159939717941525638662539502664505654076094934103407291459091822431344958777512929589775171003907328798666964242763547684143269876438882065455778053031598796824907350116426362770887196122063155464515387522978414465524607053603891117052452770819461300999012717420302255994975169293447511368130901488559970833364618750548436251510509817621898712605100082086358298259483811594679108937668244585447126081976512962707481347113017234296530019223870812801239288603531182182939724488717079518957929850947183046945129780034590960337545574810608270786571140431166226638817083099874329335272489087250930716926493675464888528034227101190836625187269135796077427160723690747228912387482587538387377758721846540739060426278524225245606395851354670371396047594109673608074514016024771076885569968159939519002489259280421709160766161568021202142191232361192862005948414693235824782724397480085305190190992936433038501230513091358216360638220409983482751248696561956557087298572135144520703907035676882380074443577390942447696388419585966963699470286445125219576718641130236642939767852842743284619150625870257834280214129439271036668561288886430961681646469512111337212023883756723662648051815696312212095329099959794463338685864778029015131325625792931757457209251744171469682496826984667812699522841081335665969244747481534142637857936169468274371904776722977696063868739575617443354252562138589094787249145321884965724181050748965347907984019637892749997283190156168542322647552274505705481750944677451401566012675236130607389034886913264780914976853386777837386618023131946964515447454510585523124944398514967781235820962518036956157360780936400581940999114460025386091473705390042198704736584049445261394881704985363429413494957761320218864552235486113993110530746591504328329893196747389755862324366909332272160600919437591275459642050426862004016739331243167099312853556245165923675790792500597906906853506055218631810107391429484885934024110780888027188175161951645970851984824296153486822108796479248354647246510619967910246019647708669390654658705533322157405165924429291006514433686180127463071197265590061215169591226030122707714566084122498828028588725000062002876763974111459904387857687815239165287802978795376960279363889780524338031084975546138225808978568825984481163418605328789646363107106569124209379937550004829989672105530343608916321342038003388691135823589045252188112975785888613753340723268746458509046074322157080510958355927197384056073036722392823511412066014935514592923120568727819441368185403033344166480907153438706893584803550262808365461476976448382458400593120210246137372936777000196785698771847040642923415049107645775673617524124567721929622134237973228249757316158161505181101263279724941993273202903408488456314662231355039139584607537625733178318567448524597161680382370320790652882891574223937912836585371419454408000149431313820764222080957121549049707205602462759970681412553627592575528819056493964718848346767270724053146041761844190363168361042606180061121331287416973284096915106589292991343246053184825017611129722798256578422125128206886295332527167650115440628659072280505259729031263318278439284229365912641660642346941070350402916109952133286734327212563939435262630004033124890513972893211734848660127782345670346747139927131573763760968358537710954841154363318698556982128882965678471512060614644139246842630557136205087511214985399794959822375365320672071394393934530557904256590499376847092206147794974354483568768126050909900145995358210055068483440565794005193878925519749906513417384058467540234128450807432293535342281002735501670486106685816344363368794108534683995283565046421322619137071337956203042876408717200740736226784669681950358228571176148448515158451258628719350432588362968739793956682853190435949649045766135085373148335848334895804369282454625935115599479977612798401722241542954870117229944835834806072817032580098462109190367517019727587171130830053001555068493713183687828152152356041208585589258711310905069774324989191525795361199361419464986972967533118353747507640069710913302177321527534684705898836060779747733601908311360619984556498975011457855592339929734624126841536201011975412051167351642068109131200736399934354733665114663986153377121096103290271413707713829826143315296091958342823697364144787074577628447723116193097980933891588702528658542322192547197940407701736787038379988039497062254916219369713944399679106711220462304960795687277942139197034431200516376857753914394267533207239711713135063426677119289768229776382809905119921558090480544966544716541630592891918311816183450219048155559304572650661389903324799579628645423395448959335238556972909991961791233518915734961338890798622423848496578703974574839269661689374206960177401683828004451504961507080184892793167677549735053340544977418672172423440375198069315827825887387321953577626995080737461610936980040986471296691317591084595404556074765853674427303614736298499773716364485387054861890261964755892252183853136653748010414693954250060022609917651254925233363101179174719085182477705901565692000747169187457019236528651297718405042709385095739609911524297495936086735966186870413660568329236171767711729655195717888409109306972546398005395013369714418131806167747959029275389280019031530470813130068752636913746824572623474922872256861393590221668890412189233848651758747480333775147907478990931238980651561787101678971379810093551776651154303357370180797391502539218358972381829557013129369802774900534003816009045346436194919802973900828460027806880507974739715982488798437116401957796882640264654886678679121264925814838174952335806466310284653166416152444109687320806968584785758339547937866036499718287050654283326611511185344802030532027038894744190098484341491715407727510415750393486053098617345820934663363452436929121444143516414684598739809270804174789527827059204660361388473657710455455187031607448912564325712680216485379606863895047076051582299644957732362339997964883216256353183226133264557675731974965142537944267504400386892287711761878385584749329856927327386843657554818463738756606540090036491813576535211227115968455032543160744861033208098344390752503360799954032624345318848687290574651569993096259092724785907863624014797413522469064648436889959739410920521238373532173674212620102607792329200324942028839827419987408111634517009636328770603440928501028519427850517027909848146491059617613343259573138924874725896726110449713379323206940786788040269533102924465819631093594707391368582151283031182859948224343319368205986106705435349639215557738267816083365527812655840297917597830680194490801678151272934266099833647033390724809039955469765420048260718107140696682028515978182071199114948043655516917752577492352981550491185620867351871795644009389593101798224016181374570496869689387953930532944105212721571630540532317057237195100997238365853044811681112621797953351144353117012461034973591593604148975336442503976330289252723585177013356907872682961823196861460031602455213061079097115416607374705648568204454010566850095582500853537295415883962145284798220487911476282683232199705408707416749965622570194359790800955391908904635048627785688181616324709445951319132434768986901524467734939117047080239525451425609134610370581983777848799414069944214374414650966903070337582352963443697670965982228940258729085882877850536446762645735195840838708573300726220269670556074689056455003549133331879602293223861407145294329278070016503103965352197236954733382793152882816530286797397206257331297706366262083047467301293080164102986158255737986885692588638098757494460995744333633006795958700724742085587094836434953390509632067671404041248209245679907359031667598618507197387726403887464338459346322112699841501786385378289768138775459474536604620310238502754266412893192129597078411879606824792541320693992554771952008961167190863448917772079825420462924225789154915109555004522936168557970124181586792869656728909826007936976744859290754100447770703789598468595917247795966563757723932670949338911978115114486033528465774768577238952900490644226436365913021637676437337581764969741214767234927247675908795629472494862543785031475962018565132572370425967269463951664417604391675563561317727917857268910911707696311799644204863575613370971253221275820006193070673742423304416655882482098625809101336085995078705499032679777583198167806908237527420086213541949504869608574644840576823153452631792240821420839152139449559064748860010820111113375735736768615190235342008387717833294042958338719796218327949198096022529464471172936950347966498517420521205289606577113830908265400478159654713543999749426596720821231789970132013261483538984541669299107567941412154398001394471083818567636218814392457712729466527691741346903450098521090048496996236631395447770031347187256862702159451536400053515489070947364842583952597172167231438984760289613627957317949407533884728236122196828154588943086711429713875578428015395969653057262821314536434684827241669366958569879437780559003279678105333779756900916373707059805369739768218714388424778521693058983989655057125615228076631610590606606236608383007009799605919453839397131103562454310503438164646673790792392841143502850509918515288540877954080894042448680174389744278755801595445872201505709423666624128899807235698075430693667900895632507516737038419173433757106521924993380824917043842557039202041777052913766806540491939878254786177554523948887402117698178500739408770596436931305665969213284042639915167558102593145992270871694002399415267832521716124417735936366664770933357220712845182029887307572705224585724192182435468704117373803790567917103577130947940957888003204448074966730166292394586364362697138765070335374998610947793995983171266460628863667648628533645977237647225471948052618711668263733772276127348420553050410748945791075120499413667272316908336829835331582509738079905876746576872822448098862759145208445343305940834472527477382678983200044101454859793129151981532878357714001351598683434365486860439353863652858397820038741813312605150904548272583016094402054734916939412739409253529703286308973673324637886315557254197835056427405922194594722398233998706312797108507265025012180274641202579026388102296705630578541433231365798960752373817754317101427928837146834136469631983902966328087259805011706623466323711066821436744807965799274177524517694879242546613216138910242209000448586408342453607006449337783786894617407123514975748082946275442020718120609010432623850729105700801267059976691962600898002774994008924349444451627802803687043436223898656800778176779732598262308979205637673166080208316410403905916155158244942437681793548838136483580371677903771288679113678455894873451240488942333003673579843081091149814825067502388116528725285042403315733327763327482372433872236305667076805240514393883518569503017926491316807912854851068127941044072247764425967306450511439720739770266941655812840105878775244124367746836103474158147573906649441910581085664339662712509098662883484051252579959641598508458555086758162154004110302721201091728070800991336585198074200406785740636582251464561087746833287877048668397031373623251074522185429044783254907151713571047609309062264361538642936744109415366350368799473858944943877794595540352419071098226624468625904511298636022792267457819834599870756247450078551680972134954094516883256554369289238169701565331585052636269264549350199622124847165485245203976983411793124377389035288045344932893619231902649780127510905452193007349820151837843854828081872580494079325292468969200975932999607207710313729378602776521759781117239931508106706718203611611300023228194865393730255017886475116131973069845459172510940851998409227462000390629443481937739040969681166976468041417223724203082990109306389266823714693590551683811693215073691106815230549941887493492431486042460035148869338047990154890966092003502272911047119679643167396931581406237484822822084090808535152571880603889977379253273502521940559853127075537736015902879497696089056409146973712936007173378756026637897134363239274419242634946207375703610772915005063254563357383734637916334918106018935137564369232551475675803057848865684484382242635835947684161042920465204047638603521515541077406871213836303913480423048815796551288322898450613239912680293136753957474635144415619517525228309251274527903781165535776722273442198132087409309619849387869512582358661179624302630841870212445231696834885059936891638845614943573619565429973612279114097499660424005396526001866506258932853362799910699776882480339883482188774192558250376026834128707158927426498744630856998715113863364499554345458055731052787031305124606466438999683866321771066752038213568187221108582575919374929140122752165484721938107642927287019284973275395913024770054686430933620708168534835251084824097933825979684467155464912956485684496765617637815849336469676149737160409079475833144488242352229248164928090316034250898819180079159144880873535051211892950574202573436331745706159098147765680698845802109320593931310824358480676429845614792972935827719409749883749592487985728440943504637023604026018536344558885217101029667372215160350241265234483442715380275826717454343089481542996380644688193974654098105216006087626304846066594757610429154171007323674829226482291100810468004249400742745398633212367867038403031649460250738138099522921811342527211508933999850684664395751206916179890895878997885962331811834214445469922387472199862125782156044629077416934302919127610969422737732007118100274724576573751904565116408195076409107910274247590244758920301617236353060976684724028528409379937146340984838823715280140203132384793420785944176669488973383354918906797419514684437139206779658048322635890388928537997652428203822857642240457149438992693991364995335008511565412360545233389764769624189203865601736200008752722953093132386135032449850771999273865795742834532083524424725233059639639129469449300060269215803982568980979348515930178825719487782294486711035196988083254580255356251801748847193284067097144670279140161382992874684112776884966226376086914380893296953516629945542351499282192958089687784862666876119065519882879729009731516093851434803828827755299002008223043703182826501561671181969729861853327728282300746653152215191518820531412076881705064149453079738601328447543880137843522537405973299639413751412749932626426387534607140542737347988663287445280668268053244313223095521593990687914959169772195873830123014962763909590723980021339447301921788026249539706619187072835886781882077159102685290414879370715627065753357007871954172814424870981483966700068924640424579867013212462028554561772435855701637711101813439890076625309117871351438700726341619742794579932685491851891945212188033120031630484669447736884066050916490432724720257466497182090414521627476807011638124337264282191197430952568074047855444518601015675698717731795398645052813687114875471313895654825789511087584407948996423358523004281731276422703297009646911064546365233475933387853993518121506150154497120381151990954517558478029351153063221237542876447994077408278717074161267789539217645785015486369279048681625534385022068619065872791963414886401092003465818700357948490908474371263219893101978021385041956395119340472845523657085232396482123974282179607292887168797070668892132804211406528169844858418493810842446284945957740115743863467391894215228036788158736906147325369829507328843099681627309979543260313118284899088248399417037299858938093995900810460914609619752192451875501886166985695437708292383856799271255423427079753369928483914995999379653301602916599201909994804720029272675818823907062756484433122382359307896718655065127946256020527278770734786940384851079934477569512459727332764031033721505814973761121980281634814115265109529605984939627802606586574695431922195308906143901269022026368235159808653998749413633629945389757279558791694092010730370968117203152897975638326938125112175745968996467823368670045069583283647102290891236074867578132096074330777658653243033914940110680900186955094709361780684226921012232963084959189364547708217201733372330653300378071903387610282674307041743785081051803777310133864405154684177719226144452983080289725989205456724012197421327146052530937371976595494162863849232716723349246395959942612516376840953866965023068739779988633233153975517215240479170449598144197641067846217508442126366142777409934467237257919995119054520560793189400867189215613923187399040215745400395619186730564368954812900345678590905343464249947076557219468009078641505231513981356966029107087440900992297009555819427181318065332782582795007052706150881147331478445946170243361661542781500919349620145215491350297840903992203334604266794564317456420583033722291735474879220946629839520972180258374597982114402282958730496521771747555537035897887126068209798013732381522563310629105087138178337321626199647211936511447874563195519428904082716395915052001119664406175390449667260583971096250743227514739022771284674180146190055574931955610578634505320477753630976809098681676057968009554688287798981330198704659096377736964725062541715554791919122966126003095262868472448502912245101092333636583292299242204254244146538976673060300112178347049678065394953406953185563001078129967366503232455714992777250858678959993515631168163697398252087524923248250782595053352010433343951025342225375819301462794016674873131776807540769642282839604563656316435898250484657245457177527963862254019133409486433194735112890248469622129895081103520378355789022567847682002658604724522017118476871531713477891691189211380962488965603373520681589093282056826549933770903694091058255353668506241652794789413079586723634629415158646732909495781372467247805312541308547442304994420688735533436168072249292220326798310755252826846680634380020979629846513426495465639309674244530019006643701681637486561002015480373839829493398866447801380547968516418433746693424694904904376112335246540621262833143336891644062395844897059387352921699099861163350747503468376375868915665514400180763277936203381236890192318278976892898696388796399655389105486086223631071246175658486218368888854018898756470062161137501096063495342113704662733270910040151974067335040175002106667716171582609655983959871936272987808749686806544349610501296713150413070127989800082497317089802319169610176704349831731048382073242941148680387841526137753660568430843482192131143076105901320119445123089992066499682436146288528076157287950246926355566729234181344617516570094437555632255745924771721226072503645213498500131014709706624804668202117931145972310699643803619601482003894991108515988393437429011390669385409442707560465383423299898409484568710379791890329489853248118152487123639735359579146251960707459912877113400257963682390619591056440551584860696541828500073569214635855958050403336934469988684786283628684157378553918755806992473581157784696138604431752035645441808112526935336331474271361554825506396257757223114252830048906782477336077684230440856026533996941914937938298098915679222243575785414168868010445463216849730835959559951805328642855214001790564770222178327539968130190645806413152948312336721591636289235996725799221076953706888089161575101300408577780445587034071860487006935718511523486582158450529431951821736342423437851552729696111781760428135640109819045751237540072994965632883656365853488069548443837937215250914052041963163567432143355968983112381461620841492991925225873656802481820581801308516601538651389792688886112681467840530483485653280375951533406857004398156083546988145987619281965025097921628520651899873929633263929122635868938972394651351284253271144244432286649156931800259057463559976615720185037337496364101177372336892757581521661941510546825358400703860697390401665776800970920271827531571764702927595164696182668276310946612709325185464098480932445246496483627277129826744948029660704527322295546080408903439867057864071113694205020184841574242238671591416129612326407275590006166292691709570471974132504745934003530539274236648079784809226660079095782411611001283384704842051056741294437493683468790672696570916480905213439300211760951758862786883221644838861961152838035497647334575253755847544963073919701406386476476237442149441446573023461048080183075759074325392087199377909622327870559556602854241970521921556756602901510040840274772252880474329273763793302872013009758277856058289889496843095208091465462889002468623755523614130095000025300131936282277348349898580718560114313584132831123759593564967120263629860282260389282360659973193894744388044273700090312240565897099638940994426359011681866013882365026671432846887184784103391296439999299475849878412753170277013552159202423493788373133506460855549834360549272021347539751279657686292271027530713999052176419221169568200652475659643950962240443447845805783156434712601580601243652721563729821221332462109179205277611834417965607199705916975782336430912697937655678770970367784305807776933197271631452170184080344631599386047667131011616654503656797274196647095876418546626404133119095659498050565396798078184130420356554843583130798132133767744692026744551318397268612348369850364062858412885829150453681638734630824645194678784399800546864787722276657728870053902706889488000840446359299348121475875906393875613038293127773008482423106466010560917908170636897022087118751702142498520094659454888343948685028342904609353619281489788364592928930578274608634148819272452783910556961496248107724625378441462672268885984635643780455008000936388619169932438984069522250934706088224173182962364726166964623797468129393295595807421281693409933084471284125446122604747653961316600426351970545570957092857560714127141194532112691523444493931491816436707741152386272267703998018241723744701481390978624749442406687769618682762679945206235814034391345867968626028675729605117297257125942692664803464690670738021691660201160223765090546701167059042884262909950990943307946961394362431243384186545185060836760715129174290791937403285297487444289516208270676362038377540126144484839371026355175081319355347518831852775530506036505873617416176521178214829537033503446634048503412146130377172171433270235864692178178537363768563898417899619317602283526643380067135640316901457154660191801762648639156949994548419248946603146451478930796492207535857515314835669875099036968717897039515059648288069113754750854371529107282537032794053414285348912265362992676104607657630265441214225145203598721985410772867029444171287038983311886004379361174495740151077689639017180262628052521686138558621846492329413140907190307531856567683898213085456801795088055164256623576933839938852508712209513571225699042058018187834257337371246222027594444123121805898666453122193618739513996809454402086763320488849537138734405920052105330962773739681637185408056173827696328640842463423167528742576242740711633717051822606334293207261263561846598161209736991629888557567836129260320695978506023664077270599570950913876878023181990432268257473697400080802169715131417025243667031162576524888721799599289016969322703522032051026121495369028562453031229945290272017094473844343408301439601712638572765642745586399167840343806729920474580222912051544262130729483172151134774193177695426232987979794668815532093505055057949046721186406387971795804602948928648464174793004350930637050474674347814043613155422991361422060834484546608922859248279997360905290438601950653673457134016331704936265321235092731005054024081138178353339502672856986642080616451404761599156007185893144997178135332593788003675499404265464606660683092471204018131671536911507600256957305154258271882665049254881420765235584049613921057649182988572204685333673352029786487865867772872770007595702651652471437209476471447147684619808483482398808846560428939121197470676947733294573252515736628455655772697343968954080973020595508737292352993186369038278030341501294164012596637187356690954832393685020063170885567025593717676004302088168655081737244644361453439989307361620950694284558924116206442567000039428219694321020536228707333136004389005596512110878383201177738094708771735363566761303262631878662625585969838359613656895674441728448493693087053850264801141365229937561369234644842433059065757075706343700926076439015328311440994493454324715883191790239698797995221764363074585603282615142799889866691942027559768214496709070083646664212398468514110346035586065398322037115538645097614371996139269357286303403826505911294764665471887615903894688666413881069845064762023465399892254120585772309195946134021333166114378197616188097489902037861340912936931032674058220685358303590834909604684735116150274924914069300125046262965402263722986170856453000610816996897701455932757510847703766312375435259362903812544976522904167822655872095173009122347345102777172638958613961271802801626351163841699959491565195677350102695783653368772360758620747917307248709119740191125888507424978790000015318590695972216256978586943610070355548588982383892440071069960923415668381129629445753839509419977184933941281729336934907781857163425639214821901544366710481005484510861369217738555883445910785125493830365004320909404191909740783086148635589056112348466708005999610553073916910352981379482933978541855259679645209984785346357552744193956493172043740799015923605133874705172430379084595527891937525323906363120546083450748357482339354672945744292570176683018382425916702868792315188117897708518768124309720987515804085971538225626149458893288164219531571010506241331146165937035959053592050797448639578620002623596081960134734942602521824504959717122424915206027546296958464236928192092800601605883093443541544782568833925975487463638794712934461750793462549043310550301193674586377922294392995429093631344383306028712188332047939620872979360389198575940798742999403407717245405310119097079530515849153485664025097357265704726925163269007742993795110543763217437809464852843814269520318924692766347176086765990992033065662141865123710313887294715290568840496607702100954438638030068115143520803897231715615808622693236889229423677564418937813582311633519209045545935669767527222640038218347939538741114948718488945596885750277108124065961939390850585437329791900811593515865420783477898424722691568275327672888233141612363237132689820853973463507775781318027263021487852511153159145709104566433478328619338559236042137241676930632537319362123256461214633939348101137790256463073124254328331170004842114625564846545659287116945654264428394046399406584446026803051824372289925603605516586016046846229655435076599528259968759075857344856569064384374810657158826501155085792669996767666641141878284194130030307238851518120977591446697877378960575049104022766267871810498090829930329076177474662324512439700271286658018446844122900906826617226894561022325891515037849712976549109642320246800728341704229330338885887893872738727939933201510408663390103486796323766015866241542864021176306096521810816272628458876933542265205931498275985891486366451478763372708338916708785082458259037247339827211647112108593571044110790631767822386041453803495451404281824110190068180857790674922910520643049888044044876038572401744240714399294083785777834220489693509096349538761445497596534661649770723116328013645040874863577394132470348339279366197618664306961347370700075113186969916724772001228754957832778388994645274088232224694956120274012903902880516365776637053826650581392593946287143657462601054753076103814754748639704596850616128268224500058320599440648442704642005656636127667364257928025611994906593058434513913219074298631255666096135555244650838562368274495916514497697491274732687719100328578992309997778945010644985595430221288567843972882621875608037385279751702074063479439682496804163420978504318573686857509405157180460493768272876711084429880411680266276599406351988180714752861250936441834894913236105470954027431844600405215314962477030836471453855394105107489625309176153519926968935057843710333939998546219826747986466866363406536598287236059219164388139148773600641167736218112369077273453236903862127722356279030840226717932867550585495046961556756937098312616989938118310306369812280943181296669452203899415669088567256099691607026038293025261599618604699470205458032345711643617722007097016468758878493580793055327193607063300631570624230840545178371332099570518932037648380367695753010923723729900355537355733472660549045015837378462890024947604390445701012735258640203133893833250867895179280533520882291511802820546104460740362049381281108850571002096731656927397875169216198089820220984798467093797219877702346309313070872349588266724354868449627542498856996560698373219771797362113093562067079243805001604363618679885933981632528913372772667590317713249490839533031670245256744179974286387172212489165084071666455935064333466083319207583469351778164379483625851659662432845134998066717180636369871387333894674778545561345096903157617690335821908698547589328417233173022303567422619760386527950127222082895863910519306277018068156057080742410574256522458650321707483878509956843641076310133330130049866941160738273745388166123521065468673571889532468066602674036159431261372629002107778854010267098305910975701991920374016618480327358889397161455740944153950162583021852406726082406364200361338129030605867693567768184523561778462296842738957716221396240509661498611349250587702452522720053645490866102098181620156924825748987080319627422249568767731168823211590370882926330584211636717438617583409583348163069438553677637229645238538458529630588403167238971562768832974550000781544934892102976071676916533480588623822804598583707341623213249442131809676462305771125648497469576870121138720441289715788311774565170695835514136100660801190963886220865164559274272821892652329231088712234010065734920406686846467491375000670531848047974521142099530352252775543080156932427563797336843098151758434440144144320763876382542962563143023341094911081835062892363346426865186760389130541247875269698608500068310151245688453195501095502854664920657696109982976216081542665644441563133650499447225231950443134271153764395046286883771014733725336400817222204198630190105044588898296996055020056362807133801348959964593692605500714364613203171108314491737936075602415100704072545845617091739978882037200646454559739887533675870085460084887811857923772732383258499199245888020169368784056587346136959612884929329289650837015045795469980683414511980403765103667179209688104379093563562363896167881380355017858045925113100941961184634186608869282035869234477857644307709645378895825198640869065892597882052381677623593673468259596723738374623731078017582055587756859065899255787931156759791331627444288444598267681337322071946729521588568153479550312227522651565019235366883071384025754746913629160718085570415045403975107012351352176499932891196575308416835033221385684980652477474031926326097052767528934422676803336666349697537257301760562054165394372010563284269695303344230633038859471319101136079442729596800142391342302938107289025727773805112034966955632539948655302820885808656891566759694274700265954748879311851869915718460533296975781345068901145820295607870289803998902475687245252173216929326760421730974502518818232649464502203136013205916202604147750879540834880757482167068663042883415991457088775051227675151843310774993503031663188937075456317806091390292965095685866792355396767150690149316177387948409531889578274241285922375039254327190358577864890428966423157371085075409139455572505923073249031996720769816984387453359300199428039689939032161713723324207339450217631188954318845743645643973146915131334523276216390140147461581033383363043233397137517845068339091362144991075553753966547204750663374764025251626345434268202228163605362379961492372585981950678705455318573673634807924030348914291159416843005002859298771217145484103804719851266449865525262219239237928850659134766398884518878924899418815042646372543361498485932618124865853636014559076364152568736825050990161123683046007807310542119571300217695007833867420393212944893482761538722389825232364568886017993421494634082032778093839132716052969315100484706322166068095709215765151624490634040014811431240241975945072462167089732842598457428278292960886828425051662311354476251106050260977878374889757577435550297663451772630005694036339440642176269956036683639563987995619306820484878878672101154459623142711470473203267642303833805758539584073013907757143040391155115081571886199699172777613293187251530423668207500934389271716500858273296961579213034598458396720424587878235697417853291811303202439682944923187132861602667293031415916275144633778458372626865365608359946938293447506504354719177228363985762230732244414467082098687137298699521103722721430533211617328216018409292139980329033393955717793612275868411179555766775813382484240892059113980984968575234764663897156138438999007474410987111509039312785723629564034445140693924095836397613798182592949589425931586991946923132296910699811350085193849918973100635529645434057833881374562149740850697440683242059197489315572784008004476002304850332985772288890571136295865437931934510972469886759469893993822092083873271766800549142245592428930184968866291712703105264154834503839363674850317262513278634603622777652134480784628129448176249585829529156269278164011664196995367692288519714287892340496565323816413171435143002395746367770687048306893391914838404859605096426743190544260819630765061117225953958973828971659614214289734158803884825691358411255036306732274410934098110125310569582420788400603011712146978646513202803058916666662680610952061702509286614520335787457001842762750958738579648432922352984755083707844857193083389706249980092878902267319781982661702649284170400835844591004675962492996158822165568666979631453849380247429031572805404239692980453608270199073984389056122875175714883636541997562685664805426879041650040012055785055932715833299416407733827818071173359214900451293083247922246542186057435194038333997763997452864702485368723751543349474869349380657485298181460425077683896951684458219363517586516563034921803699187269202415184564870743354734252906356765477474588295127580324153873837474664976041661149105704640906277040135628334088742364012140685796877285088013122072746503838715076635114962450290011919091904537592937845347760781256951344339385221059468021185735696341368371888247964096387645186565968789066198142572701650856161618758894412751816352812287501601419353588759799735997086386663350239523126845920390975963186660474834829699401836555179372599240645528655202584950944361226502515434850755489415902906111803246148635892453403141497862991552762858646816773730281134855101742484451037030587349511410442588903059773207581216240002584455085248876769200270036675564208458016527259282221540457155813194827251689528607256196936371695838367711777658652431192970867433468303336250326066721213862671951085637714365763167449223674710953646529919285250241631871180419205232033534685508687833231906679312582992979641115031865849500946838064597468323929693114417777771092334253154489192912264629902509395308051119670456221160015741768393632456592873861574385106872528993240776977662555359844262416080058541227406081817365680790747576998918069867474107990649170231284778336180667358440999066456285367163151868324899743215298541026847052768054224921163040298095733222306097444679464305078560449753564594901494728049395585014116178266234897551782508274808244597831724820418312351339566455498689765054382563889345321795217282229394833364297352528064747780351121438293416418170287896960745023325244583326658651779437594818360181878138282203673889442829296407234169528315764204396108336039828975472922423431605880162471454305318920939033513600893072791415173725426567613197116638034837673670376312080076988858088752120298484113803142225472795304309251757912996901320795786826674349600951813918771074514249891066763921605718049376284552218230411747478398767809013292222656129999083636602969381812463246780064691591520155143100498707762870032594305032641260309436428473848969178021303151626921259440405596376646446709258154428171281457994420007736078856414699907415979900819598168129159651733931469952541974020744523363351337894586606751384987097292382479002155609670221596647164346631835989243816810561424561678110112462707212280308414101548003417626645071591134126904477937517981245606903114371896724234200167486056465544901535336673273365086350154402697310000213551407697473432339578621635268054509404597947940572739912189783789984224684308809097100150160932974471796412417666339230602326347765279824777063357981857269017239605404488631909935143039022545579928366674829633447297846887215665772421530892579477592756569616622572374998955148799887540930890419686166735355488034484981056342657018167991314182984390897959505099833882909940107173678720177146688824138327237899687748253235171494765253310862648851675416746836414659618847327144292205836938564928571951663798756625106974476971431480464627902188025290783442221151810278617744763901471457824822923075697775879785179009443489417230881593187436187793170306020944244201851748201869844962589410819655764543205374942815492352800462936283283922411705697174264911562169436792436112537824103845567506014988944184019672592787974883265555373686357065486494125547794395020435948419961796639011158488033278369776751645958028455365625991491477753087287676922495908670432403679187044006103937910147022429931389065939156776874732754681615513819008730043518603853220846704157563676404765937364047180408448472192779542592080791691429342073000598503331834475092013002807614556547421057979019168735081959657578510660478261587529954083213057722607029602105426715988019127530580954689663881279999513217759574727526852970242606992236562717439146748753208780631613398255960072637583458052721758025337260138224926940711420800380288670964972308597242855932337255658295438548015226080818370913644498279913373827942094246171623954611044215587362877277479577032782835334429583369316220921745578607538313088937604521061900472259586312411860422283598788892609924694484623487233509899637714573809691474878570722891870704816907533608419655599522534614206019448181025060510580882499805733906059833143170868856705466581106716440459644096065655437806233643451145103919753329303961910080524334469990566136001223969302393646634334448106362145487894606393478068317434528943511775101843150977519366090673279309666910896456789494049904354961174087489257981238663009625986590408997729834785556974939965107549871608280476135738052465070013636015759054453989470289687933846921667118121911505297138708725662227632674467910470133625034437921339632858555274821632426806247559279542056766310094328427657310552425250607763044705693260109044218255326286736916839963066591953794518224142375279231355751748044713821364274656386166907940904038811348551377993309749687420997900841259827735125382129783885710008981358331509479756935389630236814201155476550835982627180987191958444667660520024266248550898336268007178424796301545843760199403140970297355986138225034838391250884943929305441622028661195207578416248257196038020854516813124987279133083464278561159030548466352639191143689135616729617831899273195661151504616366006187573004439866830953361357983388153993310088126860121048024662816611027011835335759579808676288229163902489477971134744563930729015498717107686136616478177974199438259337409971183373765535299349189641088132970342891852317084523748404584674654833432636457645192612073062086836242224216724680469115788980808574263203004595749340114237161603297104096255928017563593364787392044686943463946407640116203906209090340416525132065869678681478395736445607887568368252791073272695332660228231042178940290715913014443478723625662061076570481545688977497516096391263937527033137381400090044622336111583690454929238986417279982779711532271740531276356323040621932720670883044431542762066697899337282215382816694642262851766481964911863234012336689249454166565056921051030836419717203780461808659466092222309727965766787060539123702384389838937022657266141753049300809157089871084942318043894216578086956759359077449866276121230288471603324068662523674721513553911318793904267604079376496389714202752779759514732917848850459143904275546364707120834386246033586365287025654272268937388913744744881131748995063112441499337206241013839223132587123838831137632201236150999974831889991093396721974503612646418348274965271829657568326779265292000631315025784195075909986151680263005099615498349406977229961108667307460512212683425506751790382653382947440586886698099893554216874523669150192352899830056135606437258704294111297324220765291340472169669290743968280093302147250427150040477553993686904578863075691387365535773129814346446724457034413246600269014845079077078113780781694397050368002534681781398263257053270591644309371115832138167117398689230250536083153953638756424875247216874647512311020985244291034436567325944810135568746192448285292814604844732268456353915521627206979588578997388500500058989549420016207375647554737051087265996506363964400331811659376050544726046607723892062062757007531252293065355134198203678961611260671000182837391250496113341652868004694838553552761199921599675581618955838386665712201205794085561327278685798114885186291564281555870440636342800813505765326575347844939628715488941058766009900477483291725302845182078780872363183081225335263632924996858445860494552061076528422845661031589958338091687797605423321767383015443251125666384940766123813680984784484342988644291117467534222731280924064073356549104858236779152265281714379666428444467841782682942632955325860160130725643261017613568545566719023568167637130922775421869479320336855314431186681880837157124185391384853703874669353302755792491283078309549945629342527996798842550706326087795484302785378062267170479167264066500937074259014483398435219357300256437615441496301725772546595069189094415814228163243751018907910550173861041348649340071476872640907302321763150808677534578966470059610327258809832462618301408324352462152406569323728746490753530217239940748595404267304853924168976850176054130863698641507276153271534532481991294506137422950739850237512931180642759491491872319782513229228381272941405440699541350552813126352623481593715050715198096353976736663590718249926986819581069436962823677002389484082922433275703611478322428043549905944957296114326492818462199997836417422634485983251735230810852716544728084134726940622539764884924334593268350117603722415090749115285562340346961657663153990557369693778221000599496081290765537861208754421195059343427827309771086484570761231759818390933222646202278166696002908375683619286716819394010882317750430615703096802289904191225819584288569831507413379324701988765791168668311558475100066972235870672223740122233969549400595113802745058013396577667232671917671863384221626361343962026433534774203313596931987013137766008085009497208155808616818458929778757162382471468238222304209789486286684385683810412950597190035451971709076216455171699624907284075302282163448031376525245583830022479445954518085827581834872833896686059960184173554651351757246175577416024325434546993638293534992912868703663164218346078773664190848412927213947769203313396260637116218539736225198562088584584578170233184727662598491769916998732537882685112938076429718446112127301357658384019640617825859076483331975584549719459574308711496365494383308484105277219822443498199395267500061296483461724646687730714418893363374285801317672876304690500299235167362873716894043023227103500234710408881605731528578174914469708199456963985605685112149378602394651205786350526890859411006385534432631440067072142329136121494346106487891640733030631346210718881474972503455147758048804913091368713597767886776630046405249915298212798569309562119653168658896932109122670883543131932668117241424348464061493076897734231920033672950655159932689189138537190020415271868089951982912351924103612371095886021744960056741708254420641591205930526232803048180454676600229462437961042919922933307276272450268135357469458850705896743718105030815912123627481296807878298215836358723810696702297271657431583933238618023165213979651403439273604439415632058930762766882639430891290264486052638077019774762180333924252814919085071311145001445356979280511485553976052321484217459554008990948637606099159236420730363426395859751179846124454118966713985000054620074071538554456045714225181358391923118088213790136631670739962523200646960201877598891524788439256553972209682513064570816037721939693194360730862533394714882014963765997398358371641381831818062361603149001183270477642257244877946121907122101215284009559912920119210178012278660168261280030753622974741933740200826496249500224583566580714239954991250837905335456846955146126468388372767890515382302552268834631711663252555328938117443392231409503213824501944092820522801581419634313660217100123601704203710112003066414290360899489690732482313909515541133695604891054330031143882696397548562303621476320532050779293744644608059213601362335649011163934719276943468436269263796187610492719027505255377951251299022380499814628405387994620559108260012014467238622879246491385212671703942884578217676712074753137577084736795354593606969545508783233091578791084911639040404004834879413730041555390450439392899268941181247429073797739693344757167397636781410254842902765203403164483284337315202807573488236379863958844677613290844178965829522335108776934020362398323868453389691124018283957064231437986795982371215673795178454454019005547799140516441428967500783521797908433978933326880529667492880322740310187928485045287492500596359374040192079600997095305483431905671715319003473137037267358324645999068826119281557442067853061385652912540327935418586894074912307438902920961607968526079053989533045958183514587462235406610905874379733938978567684600452833724268307327197029444191786957651822904305570409215664415140431601237871612415387845875170111119082166689863954965297996848646826116440664634980838681534731836742004754170132253554184413508764715947575365836259787575430309653137567555384471198856690014525515765497725890016106158666893773503807737989461756909516645210981886828299980785924543364672412731306820447380428269200223221492450393652182905669786429352541249836589374393996519728302467375443769094265995894387950103752988312319405036553531891658928185655866452039527410931998613993740311443682924360775296447089870588807020983526096315083088946738929100923804707702799936825780304428844233950688501463285160920320163926707424548673972253233931584616268645436426377325639694222897262818222511322739175758483331022797774459257532727108561188893988766162601791740209105875537799680677811398348023764158607957588354621698332485629962133218639300391839227994633856211120018655073828104677984604219531001606127399627561585208025801777331028256523849431117803423194986962137026706461207543386798668698460068783798804734229339105935041112589553831384879651325216297785919280056606796450177794541708079898905090302614878946171973706485902021644671748311049282917128348465170180694758172896649812506486380503434143969020762536510308696375075405092832899077445590791530797087609829860062534300658319592450240679910676740780481498244536698446194510211956578368515329015643111392875400291455182965405275115126080850005233932197753613475855870266707916918847172975928354415252253375279041502494243918234443287230926905375787205460921142171195351096452179339691502648258145937740560483766373671379899497018636345601721321983527822975785107456187634090728639352590021965267720187544148680147188659415540377443014872125132479867307806304235788488402223209651767694019255120097155187133758292137521365903355849026067885979152337085005291408611303842518683413678882389774193886994321875226705806573560857613769842349470318124653921466795490567086347760478260398478143448113154135757173894053268998969237224065621409111887702455709415349119698531595944901839767035870916500360924812385559702218623734307263564049265025616420479370042108494933688048618803667792195823569858133431964511325151585423298604638762134421065656835743316518457075982295346394365059026887020882371232372619831830975064274295265090237275466830062292684684516971134336243528885266598635580340077189623132116303083858542659729420248213130197113966144853990523662023845366424033111099925853206887505917979570297510922082222983191672351932847074917593822942559539880679772228084163243884942079618680857261078334732122943433400094151090755271711545506221143379714194536972421427371804045713905163313067378960893282938426517235382287997994347542941203728385336408322723062806479214007336120019361789076182034275231240545616653813598471463460641539159413505318421177453611569420439945788061148443799264765596177890102066580161340198606532838549537140823729415364023564585070788971578885198141383011215394466037038244400550045872493923272280350952077570408630753075474349956059373268789340690634605268724486822222929402422334519469432817537659671482907805602188938800381339417594969267211362273358049786537181478095635646020630937069710767330243426844983088036007902097744431270706682952287064477754392487517365210810284778359835150294329603909079903025746014838501269512984447315052755779453114221436637601630526776317436693664744929181456086315891114606756952549556057730301302034508700340186487937605607274998041655612936008916936149669031547945835275585804129955478595937043114155229678770384282962461457158241182653772427267225823366973617855717875164237134471957399843200104857798156991024351591754906352048295030020720227741271203865970984280864795626047816791373522761016538299018037204762142010903201673496878151094458700959085025462931223307487295436315982531343746054245962301233708638954935428297110681598303174879490864664760150431799772511209336889284524686030515213099974808401401015810190252272213152706106311267342660508995824094195065911851223549695983868005141054335777447581758787241625063122096907067822812550854981603005637211992977408142264799014941491732660949623137033263254279403765131626481065641800917690444367781578106849523783731162894494765659020143495034848369482329506684839587548571742104741544592679764045486997631404078790755212908692367688553647738080006127999446142299509035948429000269407917748322981011439084380148645984566941376425294743336352433322411228435171648303260398581962033949517803472834412095320685324537450918960488813136606497406871420757477936284316513675795474967717133307985801545827425545516091728580433834002791171508508549762984763094778790479464420255642570374616181889952012895180290383625859298849089562611654338386598776785458304972430174783251216528746069621735614965224054488371891333224753195703265807556967346124113562998743846835062174177905674789891867353597911181221754003890813735560141994245348482431192124830789995077576166881213881561301992098725136379719294538361065694346704307031836315619403195550138451839801689122530891627095990200853169251010241720974355826119224635936006558071709603519807928807808691194524655347860159816975349297897268639559729893514280446155070082603205800268561503862940171485455591951970010582004539969976755482067946697608977490708121967721939567882175405327664638045119031477010733953322376498422430135756964935304943808573793794682918583430946509618874920399288556791611563893018352595997977210940554722161067414704204092849219939699496407298204501623670381187181757857882549082073219819054261381984443395730050811931939937483397582434279666129806420439509636580866994733488103141393178580279795869230794390757539567472930106508361460101038588558181387744047424137637400693097991375254187321352158817248951685571420895417956556705826363300168813420035466093475163602935557273478624573779094274294681604560996689813073394546214758884925595266257082888124416162262219847840822928979898415157812953183998853692526790046979935069852021289448592652051029901576332771501103968771347016547457315728276804245237319212918706751677441856351436551531601722332199630381306840897829666828072580215229518801183666741326167300025961959591827937966167497660258796060713706841511304338829316916524583730839339106416068531286761180655247245389779726099601163026033296993358735961158342125047851350738719691846230149953406854961065250269038855327992111636948598560263205217031070762289420883844462547080014237764648693117444901492474501591202584789804811915720635242113804180266460821625869200843576056360760796018107211933795303481942852892089597514641829545816851344532593550873994375507762258810137410057488614220352372672710560426185571495999482118705686946954021797709423044449364865032400448430743838628799006326023378589354772231319115628087341069259470842059107541351269217620883755146285273194806945666333940095033844016963656094328797041178676342928047981842720270198709160845293928576118290808214956346410854283772664243395735613232712734311062337085462132123846798579200795344949879690824466784478307498746973532493568869491687415937849550367064652059013437097385255102025062317325079683136772301221595577407626257915309911096001507199609032496121377117650343704604002862152477668010843561256794308527147133264075793770944870600335145604625841454011699343666624363883272355350342407466585261492856844702241327599275176740961691626718972525864542579274137698796810259181151776941927690674452685667470396552703041911514511388190809363594362872079737745339844713987244664437958377023119062849537390510859868459013097700731339998673088353854239845741694555849845188126002354030944692628217300969236447059498803969626286781958611505968970445892227007934565771742015158229092041124030533692183826847812951207279100292115985942863379358010029686922335961541373767096882963122148991226766610261630519687776428332498903008715024788154188002057606672221316945829540366254264839309016715861464002041757022140039341085759568607112025165063655171770561387764517923618884151379507562339903202716277244900822309515840436581454068111173800475017969705729732078432242850653494089492714344521300291252274043148887930948970908723393616728009084742091403103198537428467486496912909814040863384239886025524681398158850126496804323102921240430744541614074114724414098414976849369369814340927398565177969278975188897942662056399109214871422830566462976428715477584223072933480622640303483106876837672252209149041330438041895968440076070147219521818603691416266748861628887605528277504841389904799140112821823393977184789965612720968132851280952746730394580787016797527327518668489954777256706841115148712274741132901090625245256952748700255413132387096752684671013684298918329287164725389101310191530722759172772872778186023597946630440677787463329109694613458703533258216931777138262302744318754534138654187449620913021286641210718696825568080568653800125897606183811374454788275315371232103497642161006695127952863550999421706694766042278705590360756816158154405831765883183210030819312106159009447513142662854909158990561856076471836150315850767251850835184608921258407872269669033513871930291251969255048751725488994441324849953473215672153032300506138364910232542868448953872058018369065052672729706406887152098361992139271574950353959475166666225310252398155884714653892615000706578656918568278547529094576349159295707706333151158115135388639932881817274109836277493416368974752927245429154097927901144593414125907348301396389815333905391397770648628421564582887260912477159611840593996566970976373171569366236924514137581469853740017799969004369248159326081873724070825479621582855293605039989930763197829801026223336290213554321675563824619498536998103153156145861092145703157469044740076667241200926997023976094449985756363734066215926951511516844627521854588224640831284024250242366414531652403727780012421363469872145492732000416997141387962233756740173204703269448205327836160133593572900853593784729745785098557269501166992004109434853394835200803237490296480081460310032621746951456576556219585425614582071964065416972174903775605373295144402000960248532140367675238549795049589431853923870775111403985281749907286046630415960517293235900664545226666814058225904298566047933268266151324942334141592624657534413031363259003162526669255071541475558973296325319148618387204518041234896101779595196969838120862298486310823305068998528609576832481380956761894763984579682460691178120979786877607587099592382060322288433336088062922525545648094183511436872670822984072777147038027911476525561515069467763465423643035060416719789886508537416254205977478187395747046426135215406796018821678625909078912965454525914891023712201664138955214064203191377842166221212155752868840977619037129802734622629951041231219996545767143043936842178563657182622447207928555365148342278740625325990410853045390830885612880973302799967277415614727712892079302140514511625727148797935102034183455667227854453569764399517100001203371294334428221300139330947802480130930643966551735496103754685484038745317390422627587091667902645039068445685469593756948067908500109812023451206833865533383340283547619533266178307920220121566334497239570602352757334489356999254901158229635213659085870210060692504414371485130807260799245930827920154987266743625269732832030758292186580725029089931122783988616480376091606743866433120918048009503760935223158195978029961255624581715461074950348812489677842564198879907809502977983328852679713531135494142890723457413087185083512112527281737731719098022856612370040381673337894193752635214340705504297107512672330863755745174817057243380420927821342974024048211265796504299940777010257641474123097390351725677759907446939360649429120594222100714931989380886252941662183059399050614617695625940803986066011072003401182164511393972699666177172833027729645304938724413025061896690364022668830030699009009703777735215145521889729234844006485914061161398557922622002546691829866865944148761840507855333923567658275688104709561675604842349056148738019516948305933492818330163957707019477686072801677610640246580374636956347187295052384509581617996851007598879140488376906369400803731876782358508439415839620737007231343840148280160864051188395834548155421082732786323501744386821331786221691697265585770890094191036809039050802283948984191259972077127100409439315256332371529805632896662227102305854822245339865453668412593908001200491931125411064912082872698841227167397840351773322972313546954972276108897067528333033161263606081428303024451069327868912094041546739327497953574959701335968767317535516603324777873529236535901419637294035494631920037199850875421028654056116378168667344949632227290009513423240241168322910971226381071730887388300820395987682701125231133526146485645924333897004699199499539027096850894522961392004917631507686893110331702260148467903050600829859561256699193898137805205149184161587329394718506325887665122203151154532603669157725154905452619339868926206144839723329512534932883326041676263819768453132319815293298611128733716921990366486253213062734517551837212817906531399038415566394401079778433239725178444276951037355967714639018016571657143123516801902385850957851958352103508105066844175251315125980571332708166187780085889323987933101215469910778102057230067750682336012641788120256671530582080289931066272405595792995780523062270549639321793430344748552918161939253943220731193063263657588862548403375541096141800538778017326540752507721773876184499891909915843701233606135538813729621110599517115180608675471040078477491763384756458531582286101646225321017183557634578584382393899613638659468135011521159681266486875510829822637718443466704233013513537383557127080032459077920089773751440149149556269501635238482606388548949036194375991228717571859164861251207344791518087600203315326037329610068092950464491504932117904041637624816021439403129698657247441266844424284955557860635828277613869276723233652168153368687725940342917432972546206779700254223225060959176926663131383070571100862749838142981721789560335249381371196291669114486502686476821699788382957567978616089631427563431180034154030606886271248635110909185824355086401730338522980767443093220601729641967852618403921850066194861274300915835961943728342483643058913003297419776568633485459065024751122056005367556173125965976263960193590010050708178917025902054561791819978664047402542951806048232260417445637055978650655729851937098342809280257453351702310582137542295036236593281842476647402251784504825617617391454228411142240375420261875888289471479854143953230139062253603791136341842035594058445622267894966109241788007948353215337055082539729497176040232158248305432393614311052671390166174142948766127457391849154030727194657457049953922341460214302185922941722261785435201751981316398461541028833835485202712679172586309671471154521342813858558788886695378145878051736888908586313088860311778026422364005570742844819599395616380420926239728384401793974927033651170370835904336117480544874569641948248238949577604615705355742843799268380717886017497971245517499270583415576986854555073039789326194415447943000096383163024409563178576965111781388432103132684140400904107839731163410993171453960380960179454673637039539044810051997153541749064247850996999871863007777140755010219237855981676935391934539955079728081019800076889743576202707924958922064176754927950608123433637038098431152216701814474251026165138541987089716809402927873521769708551340584290716425111058938118541174399895073046063836304518743952886138663714375516697294584150326982141654398292042351916938916631749828666151560983255802650262560679282397956253289937159290062139230432391091865577305493779831781471104432363951943768795012600520339062501084989430450373723453958622109600856521274338979239448750247047485684976797999202950955025736869268519144701464647580914214533374750799809294434800504713876054997443524674194925552431179057843642279071338397200398321917676445549309294520749289389868736615642523862347609477499040137457118976267327779138759590083513168341843337542694415065891665838778511757592865492101523375147427040331729645610541681683691425525432409123780408091069618152779947748804717608655531098684993594488534264573046234523355760538654979403056421115585133223856880277982534758910855847612903892814492412612806470608314862822127228781997488409509485210484790483225803745095525834074493589354844244865527920117846558310713245593002188923313241117385641744729265879633668962095108452274426335531387695667243692481439634509225427321600560101459069312752515959044628006624850229213234206393346721238205370448211854007826097051619408977424925339388753850427327956878493547231485421536672093851226114002170976095846734560978273637767504022512747530466604324006306756067035382483110300047749660564885333696023143064536522331780603202928414447918804880891705241632032113926614097502034499051340142113641276937726345984245768322578465106014088376700987240102780295760021191881805426342693321505304850032370019178367574997389042769537974444345094535928143777532827329129085857267577652483753904022205180327474214093689951288265097211890450501346565358906761091374911343340961706758825858996405027114052744292998802592760014334813300751536704726471728754814438102881256152531694368929919917410159897854569630706607027863179058569418187843107264034118323704164992976958281071542019922857025644436192376064817336081592381453752434844906924341177369543053417250707353821150716698458611915809177791049433975239172484450290983993230697891396062656638916161354469894235595720700298655439607842060149505177254319340135740121096798163677635974829390769020758413931913688632438081220398793470649636900931209152464728898920500263815627597632259715614840439626631269312544338139754128032756563742420703210894983504219711405709629291397126262854184725678245455836509571521019975927140323933694218613299768111346317118437284577744564961856700850428877396652872903889656381896529659087798266956916187773657553155502729477437268414030561354204141219357877529068579050298947836104159813596661906168486967477553522472811569727513884287057889728824812809525833281675598142340907126459621426249736822305957580281498644249369451189178456797560717136257041951567532152507521451779216720524267713540297213539384790213087678048283399944831950521472081467741263003387244246075812297888633523051203144467457067733228124944657113622597905814396671602535468997474070498780135980635786591807999134325988205298687908249362138730316194521672347965118979094210126067284058083079907256062382368523359366939038754323560814597095962451955091401032244999500900007840741711443475971265979584820896551194393164890279502019379629622814542958672459951935988489915016952833315798088239278505769849752644845845186809008554732336264222401056123188524364091829732824350048365485702317989534198682094289559022121109464578469443199527400349214850093118050231083128989965838926956409106922062452035449776054515430344833448503381511362533408758871291885944731375594209009754562912095142224952658382686235919877266524344450513126048182124902055877850204511579210081830934043284299485410376386050752428891444416939832996420396422719528390216325994272288641089945402273539697398721705943391770896608975098736047418542823502587277580587277873469353945997286082762059331562014080117699311544309257906975486440366205528074895773875869546574594174193148734143452699592545620294885883804990551010226625657348447933316033824035776418333423451356170482825677680925497896893015921950260561829919833823018342783785601394913344131358686500137879236611460532728253653888466093652222303307287334162967681438148691548605932087596471217090401858720009225448571701414571221903150217048739622016091717796064627698674867603803295934461575754039491812082516954112231081397874554702077787671598531201046942743505720686628446721498778442766834497297061861138893242440564306956292214905152422398896524593664790918030938607131652395220403274896722992279486226840120987540881060342864803544507499877635137652430573206713001151813957357159754267049099179788484256597855689277074885672524720739505338190143749450974467262166073970629316786381823395856956224518045677095647003302732714378981534988457186896122696655595281625221514749212101873921261168827454922946483164755357181308091458996643338858319298909298929576582244518772481196151514285434452174933220388120381073087830077488809570249083876870202425275673771649969802972455127743896783375539659268745114329251742108147099048621156549311950788120144803088536078164245825553164458791850302105798291516884632494937849752085404828603097156902812887975436438006403149623711434794879458545206945676163756933695309032774455023858088128937746342839892147752591748045277355937660529161891277244604398722889604094966493554413270552619764136812865748828412737578680718168832521642040779799798454844613298614407690825758481330444623158724074324342060343877496907351618348927206795440142101809128830784583654265863172038778305268796693117319060557266681139698663172992188121323236707944377817322591892520363914471166065560142746536237479315042841147343579032414004437260681642502966673074215618297127120854836438658555340207060285390768089363226679801142103229673493536388298894320515438627428770014154532354576471276105664534731639350218718301469385427280646816175164810873007490862295315544717615474344163487242570770240085471888042826981658755255609767612600231392705280300930763630867937550384065695676530849765726223284126988175448894797551096590922457312214606785664326051760732183066879169891336413539027568253256055458557217964890738440295189194140795183977140511767415699424918696868017890519804089361966193178916848892579177146889019647137973389187351524557354151194900602748251336819002976776248520574183860293582558226421448991986899362350715600260241662481213732512590512357192974435311808542984941523001173373729371413033621339175316123513564692978647237895567874218290338700358812668017093035861822475734116386683642415573142124257931450536984715572129093707275693970745361664702315074391443322735244458702627401908342650360778000147796594945336442445265683456105465904710808732450204495126437478008621534627225292445674077883228407507030090907101261568393452314529257734185180699175445050106788919492189297648583302112621504798889081821654500909634944538701159175656495863529302633516726934081749795644862537749441140618138629848365803811611957698069846889404919679343520521970244724287736593722655338615497902861259313444153941128533835156312619726466237391450279335090169745342609341120709160495516973316215395520856722549777233550948260015588728645781762683722297559154136988695914901076922021163398249553765761914011909609310446146487111463715372108538543584537043174225750466544893359155306107233399683100251644727691391588090401594703351259431126262778053131485209938133045256211444296250107104905928361829682266590869873441887200735249648540173609529060865548237854865127830796892216131223862578450275821253804409644531775934574794719005844290512468370037071598594502710954447313812688986158940978719981989880581861770914882578020015719778914302918001008501100022876915822532949864385333626250268247388161140759755393671158377393791233090915932356542384129743167052298505478128777143925430259672809603958922610122436408713102646975156139942616388108335244497258960264065234505976499857338067652083990020397113019811248843682397583186619169497338298294666157876741719175656848698310187436135465293142538096811535175722153528062456611286434332273873622355063745676821295177484408876802532361836624556090408545436926092818386025045924568927368136441344245939000058717109622289888163716727792600379689844238826734549700568685550827336809858000215393825986451974163600610495913315474840628840105433622188770396078224015848933367710555252409390129099044487321864152830961385310508492631248436529135604878873927618582671648716331539565567255348724322882855502366911747983268501528405528267820154827121141284870955499559842871779013115523135251233178632104747947433734551163884276094228684213397650119429923741616444376438165060846441473135442130970952946312127334080767034361527844404261319525371679698318106883204335123497885277224712671072018556420820136948718281784592615568804489011872084313425605095982224576349865326967633520999026957446675741886480283351201066937308940127807498314861932655725319550794719369814616326280133224956003874179170981375146422617584120010950894413739279360695611777622337265313100519867876840768699387228795337264200528064707255776529822523981099627526590730107797463214466566868700446717139968224218812803530466492395614349731779295530824908734351528905352626399720778360669914180423040237373485047507896532874087224642751629611417186502985853355072512217051715168378252294033568275597951342874816564604304654168213892058719694936559923789663116317387755465810123238080271796726990061371609308391147308086445849103503247985367837703801627515157966786007494736169601279029102381268312616464662644978152520019232063676163975988639451478897444330214138082414917856378501002543261365652867251107983863570408765236690725848055434726001753608566560447620311676962376844649509438812370803299666612774092950396595520577528884938157510883498042746838163383821127744300512091896126391766648424466993831818832211937087006278918105609446806784553612851093038837677079259797386601193585086610223699205362960623363298541790840570182332460896076007305467891591603367251290474653228199182674209560900381830431144431168062304908610005323353786428253316391032090306866810733506590632382511866989355060341962535703348005310949349509079338141081118214962538231597264240657463373748429842059978651231487659645984307034834863437905519446064328110420040317738600641845422346351579489728127050145089923418562360129879638772326484557142159783394172035929999721996757834565972233157650066789369891116034961024378542218630022029327285799523328770288200929655238027556209022248041475812506727832046883801294948252208451196289650499777848425855030427945556166977833243269484169101662484440630464293275567084508415569744694358440486870280498891033945257455807439948519458539915831965842613869467729723477744484426940497325966676272676027036743350117821654852692155961107396353548596746995297698170285269037202571326983728238812454834207385328768294238267338023775672591946745524377605800154949355824057849924245627258403360305993537602208483046079724081432259609733154987672643108830304718316998108806142490941158656365516153176365767310676165552957815891054647149307776692684337066153267872649249208951680757486841851267940080197980620473916525780064512511815230293663110856536621891433035087607276901624901688461341024779988144332658961664650584222511979625306301163688283229798953160739765293085792239989581182898720786999335105960195167901282783908743355996908681847041006761218302728136112735582371234191317337178493784569652861736547853459415827263875765593802109378246840001269252519622831265739983639025324451690125184454428463302796898758790085803198589029900847762874770253441132597533377276490075734086800929893008929819005662495715831565385132467434548591435463468059418549882584680206686041294103970997795174733152170500745449984570509588070640796245699071794482171127221731826014680631924124726398497728640502043543750800220777914931805607725363029020326772754894839882743836260904302906104962790912916507856071420267033800873077375414466156949914335626234317627360066823429486470703816639365065052434604268854477996942476123780265465879568655375396107347472268838411229522694114995534896321555141289654907994106180315880760372501852698336477658235885409946191758215229646081236041968003066726891295176616045666001005398209077574857272565281031208462651986429315848478990605556804544774994984779647259853229114221063136534933334267086338229767057195146720900469275202192324381074416941112393224672570623987879896417125475270446558746046795868325272499396898772597442942747767121394250869447917121430533567298955851295998060827007882325638796685021410345256898702838764673074676227125607260464383533965074480646506461348492234068131072481914672232078813961551312897016409043156748220315369613878808604979260782546930529170481930002151053325114808644533110910793867047415710157728612533544110166438099569304581218079408170232398083247282543366227661830203971730593026927247026817497520403837133896646521721048994288357856614513484018145604374030436336244574465980799320693408126701317193884213186307848879810993867710264739449126161864111814192193469407088440228630594748227315863225371694311620662211541999018995694653159954088053068205949907685726957226548516287705911411254840751962059693185666155682942513974926961701170754123922884700901049417728897864582548955449495148950591885002466117833777745139916785696615017168793380764608192195036301779168284572706745298590147300301483679818491397365851988719989624238857922710720765899106133403522091669770502317901392100662679465226655115162827906381711919242465574791393763943320566582153854770935001579097571143143487170861932526590032573467798101451012221905242230614539550475933506736456395274916203744155456003410184827530544684557634964409109738337509276862303923872678409259462620225857813492130342768726247755029983396586204703838532588016159027304057269931754584836383786024618654402164667301660799010346041787656805682567958124187126399065769611823113650275941117014112283367141766306455013170198504734545100961455887630676758171713046727835061627430884749164433088700632824173361398331864547881780363840972802266639688366289730740614643398908231835522175595165345056394240716457887056507220224506554280379219738239489864953599165547821801631502386426292289993275449141485608907452408425424255052181584556570086060730767375541481090994235991870464511339701723559748818384730486002313144540848043744404384755202892482514875769541797500635600271919085827763133371309284417804134187790585130412401317659444949631794917203660909513020001267686114762819335641692431544431745751451610654898256437738777504347315040377909993384453682579151197071952026525155993335120604015898455246510240035095543908711036516367958861479417016854321631536634807603772516061187478536012226195558924592826492325280673975615160906023936175179130162685961886033536560833095883956978099543343420287388789281995834624277093813351223360821397708569744796807022564785428186509445229378720764690455590671337815577410258145352920067079883149886133636255610745337534435802224447533979364550936229930237741203306010799279324904255853981193547544962308460110892595393234082717244550841413492933784816762370956850100385202796188090631474582336014172674077662492229656788240828211582974337622957971926724472494568451014759314278039609979339958542673478147184809131830869869093630044064069262213997610993469823300800907670630602434604385785181008348101205357739547075119304539143610666515332263104045614264505679030533629669862979375637931332455999056344872305341941243912625462177096730117528924915607143985929668578763621767704265098020144869060891369792786966303582179097207586772896096556012190411168686537135075399002959048297636361013768299322420687634055206592629093106563072850815000958905722495709266149718214862182066940373023362593674536813051247314381201932750372996153322746317284577065160779366867159071501567796885481522943874090817370031232242100602275850541090608502029841748557450566575634777071047995813363430214732583701590485484735557715576913577885263832149026226169080862480107939305288407896797077072430672767694237757614850165183243522698134136769369481720148628453838388204142793469570314332079058350525293338276578639526889673979433841340768046343731875959540411155148257609891154555370994805960061797528864099739024231828735704408543116768243359109548417659338329876721842858923908984162913502837757524069494037914613231160103518812102990079538755847840948272660819843809796343400745870249733592286169262548573059696624685646897755421283517565615457698465146969319509757402184815124924303698892603234033148363793755870052897937951803131736860663107173120325033050019169199471882213707524655839221329136792365295832391161118874046298064296799434646268379366855781735841385119290084419266107120624261745781714871286741819367193253009779587595575076197912198180561720383938502988096958239472342560700162445692863324435325724114740703248775974962700496565657553824634241579696191736579117029268480877507479368033235600323081551798940175320958518877474806630482298640075847737462182585485475149494998635926729643872131596733261974782282373548624856155078212028054962482761266226069887072232184201929523058926009815466532661104433566139839435018396796974499987201645970754132331237255004713690220653277506068248154518494357093222132219324104022878594987114491145613720647026595037136903795977610132661774316079024733113146255484400517801216352492515085831682535466711993688682058245228374153051738552102450310053601617476361332335618413720487043185175473436644966306163074309272730569998603088616490771509024951888637809823122666989387687772184006922846215730591556259973562215347348184721682270507899863262926898163093063837726598824956220566660665278711244398130609149846781708049422774869700627439896245292956636184477941139087858673087759803726233788874532139003060100387557652729062193529026997625164054124389840850107054778322336756629459279995332552757792242534586729863861058883577797708801292845665996417499193436519930914645371400623697771129021525311426194930280839879720474995710189926300138319870873500281912837349830418294414427498582671288652152585619668983932302535466293325985894177801550636363246979942991162789770243257805493865844838840700120415133908319998149172687994187632645060799455276358608397694460121379496532552370190962875000336562835738614968350131183060455490984347733184939313003651319369494028727048008545867737288913337869530611600378085919464807226261467791345593032844331090124088763575119778122511556625990519758280329831659999641053202245999415075392522333930578954447793676961719227435085260408961775275031098407548769993480181542871955842038440320867509112024260742840796785176412545667184062680565772287543022546220933532089133427458460010419075489492823001210101214102421216505269535681263842812450356692990230667851107926752322385333836359363693740408836504538559335363778898743214181031131350227269638322881417233946615971484726904345293176796606892611276710216870464625967236442643700212168512185662569761706374306310173743381078331111726164074601927883111122657972843813110549046509395868689248579566288786146427843649326671572130772914404650729193782714685723700089152630450700692149303953673576395118653940287209376114978073553877436536190278729850594214042410550138390420255970424561627911923491761743671140389513958955696579322075948551686530489593955010060014837794545875516414721590369732928135724195103717665239124229522224452593656680224758941540359801184528476799641909704230092941177628855445587854015896849016270775627467120713781439439680110010520594304861840726482405591864754588818274520791468433210332271535878606385202606817531725077048535373603359246090913779158388760059097765105062016945397340024813227385321754267088015376177730888143100526949119963726631419878187598407577099585474742441452319544139664437925180073952925282126434623827950791818607786124318675907677987380333161845055017027850719310979539462027174674561752962270866553281869188833373309905266745482937523773790261987132588265721510003572308356319473400575922875752955740414102298692575695157478086314728096890615091782931381055030916067861614256688457076704175941454198999957982008195988593566474123582322272055164974309640002233739570046875914722012326583331491053475379921470652131568723841072089290273489560611264620419813310839186695366933351106373584433753769601288679331235482894997744950420239414285956760931279054684418621835604020223483983274881724668206238275096087897709768602840229430402704973099203852845320127777818598996602644052031213048433879284055327293408260870735635062879938006905402929717472052025419825950796748639262983344376560803226759564470125664502517600315785024168774897032318560062224604422838626233482899178074181224676390377842364688386790950715935700497644992942311246044406624715191247174741971795412402468024300122757250218384932466919293764050956784621865628653156979996159482256154443354608890170898122517501573347929105540632772701043450183884222040738408923215825038695547647823546121656450935206713922621454157326070764179475243915703209776707855672973951214531780923900846517357834189520359251478636600370399427459086700644215971735546600085529773242870553148970865303545454385574217988948211439817528987193964951686876460438555901131887936120846200320318552881546823875434769767826164151227664859848937118979049560252407413888614191777246180276878595181291145437782166785796408716496589874966949563262434410667522248095628505978310628910987175921013083448018672634256891633423486131640725465618908111254066632731702965412798727351386387832563090319684555411868744160597953051454979790355596535607386771364922660890803381828352962715031905788529894268588765927221466890032706907273321776097231246796403461500230817678273723672831804611042047263640903119279032096301872153328705829639977087607627948396772590790823395295028759863756097540427796565309685914247719144635695910511649321932106703439232511970514527970323443127688845998513128617729687918638420737685287812300634406052456433227562636751191731178117132147238948160194502645437497063634631042985864848109816364272116747038758492314001004786179272654086604236427879405034480627061241761145411078226864895868065965321679675074504952212423437180611845243227128037183362397037478374154306529562367147035002434440660070095082065546370982882568839115269409755652766204892154806475262084916997333560914500185374958330557808247554726803762992760107478039532630700019148513123075304318710614220094587153408713943765385319035759026888526678394199911426754690601328060078552819797666770071311988807064685823747965846599786114985355003559411524831118100263973029962252201935375891454942646135546610811530189079472973663928457995463879785700466573239181967269818163507489332988695416906943191828208682292542344880019579606855411468995633116079502666266794891547842086972118919711387265309313698712313497121108634250204640779301335664092945246082141757617509739807204140595159012035080636078601629186344656561298061523512589868972470015171499306437043657152555871614585574232321169036815952263491336609620063249595984766381948516946159849091722762735783515583977716419748289230624817266927862470233259002503662075958632378387653806129182191285002351312023670440934546158001576130226996701683337441634718102295657521432822154717969891526161617278582391351102590127959976345199003554127117518319777789941786103753530879754269831126469099090644214635204337476127527526922841797119531285262486072911785698830723033768261067932215694803679036922075552727798513301091837218948363727705273802424242706198026329129967929515793418496232649045139525885441489060740163948848954973779468897381207911691711352402631865963453581417146267115801862651205394658686263233820010950694166942762501009985858873190840146540906165114423839232065027273153596397810385633598735125208117896108479740646449317827323074742429153130073348116692067030012155036288151449518781261617397588423284477015600541854236839660796973751907281919079450144694982253765122186175468883786990636333889540760634334561193160480873038015920299599992045522368470104311542183348742583148390795676187165012797131795262227992814214374188808905972811553280561888877219780494185815107989215904011814766046166584051726649014976351784927508808561596685009717274648865984160912274983358858880291325007164822229880103998943146294248413460652891993650038573904547185662346672681572474702134482487489965238222896451798849949797138227606811378881539453136193152981775608876485903056577636689825556665514097302960611828327273329643312752778723515017601611954427916006967818376342839540344581082077443961918341789134407827979851572617323469367126321614361763740607223577082778130345052209686205082295620836461766661585973377815707613205756139604642616772201746388435157309291931326417702631598456234407893182845680234339855544090326006051540592198078112158221648853772712035679231215816779642986497383189021471328331644086553551820529889442425943912665777616917257686200207847492739205725459386905716198740546468616165190414533979882023020480477006776470612356098976174984254330329063806329398973323963219462723328674311559495835765322971728790646022495507224073293802895853794808518297871867128690898717641151586776165565892908122033702406670140398978402986414376209468507280026705847212540589361357064505443070232020224713131753132307027827269442951262786822297978306799241883040207112788091091809714088342643429212166549952396497479202933538181853048669032639846740896568485472066712590164044438870904107924027672265547497220184554073097096105344995131062889464163224719956548902078133076052462620316904832895688516206422421388399175912569631910512660026867658766785622466945102924733893859313748498494419925636635415313647210292446466532374578570646836837382335832301544931426007147612590069060220716440168067738273105908122608523554820763108616508305739338193244926791300009698468235759727872231417574777537522146255016306992040687173263643627915238660382557543768246690624557145587830654250448757374907872075944217477969049826774996583693166009084959439573919136061494546899325189230866279333866515549031130012396816393295101162218961740317975131484797171847201153100978838705095374840979591317343428154740404354785266959040460500091863527140055548057853597328043903194288454361586308059518669511586761880498574612326992699963381774587118270554616778718438251814990538448817762553557397308066081728259818910367730200456961439924674142805115633469563000501592071932703402651450829262682661724893137942667164220235114147437852729599498554278400696583776730226490957854197213023164537743964315428987804542537803079341049275521333487170768745918360529004273974047668787348841597240042590230896678153833818747944384966272620957828935756076411874868266076082885823537587777619837479597918214888629749840165350140045554486872623403593721416577799869421671429993659637011509335731098803699251495204420151681948192776444007643016764853767483512769019588261860459723468810570249281891091180155621594424266266178555912220580525125181334458235660020063633446175739626487602349843193894666298808162018707652038296503696658212390080653666314223077356661400058471874274688780789405083014558078512443932484307387711735403083176459043927722351497465441461251733453198521481619542612954397762683078914840820625499451029588152553140850584876620093145804917766284209244527753057013259556417646115128091379046338790496050234572005988773497829402698915718839332357408589940238854788569379645466713027382926658698855815972821860518554360402844298599007251840003163696879604347966895941861736774143752175903254808659265994511952120347710417317249015155578419983430105505376504237177545455811497177803293584017162467168349304967507529418172699177812308086508805060568899298115175791645128910961656108712923856126130183865969629813907554386253479409850168416105178131239676629392196558500326459990858751052352963886578667111646136041095772209926709080459088317574502381405258268374519750702539674146588593257045137613944924172233980330842391554866336470850390208130886297338813413213897371995973514221451261778094104640819501621853040084246105897083730414890761712209496097936685345897849950095466986254235887189589465713983046138678230593354212075416115301819249350350963807955773246335932631337069720323040713094263648133047831743226205806665854404588591794216873798502418387990212819349176762109347316862461257808509763451882527900355125212109530477987529951405546814175421901974479529760299189778954428847240060955778164613384077583614527949773520633072406171023245690235501106199250881934241365483933529175745619394661466706439128069598211053592231044175854168353833102497793906284373976503068224987938605562947015925739427407713980472817341542029273060631160049275028337147719687461140868430734594524701654544740295531920643738593746097204844384719946357761452499508915669542889885265258179787818559730228784591465485679617487519648650113319060643512180639762837732015935039071884959098308442037993500840726292962484392614425263245360610028569185390082458817369846066044566066183100478600820093963405999399027837617568996770164938994565385235037581243609622400028308335545128318037654037141017209831987239613000224559404190227192190718591535758271300751258757716979962071360225250779187993788299717187086830659748435822854430631654052440174034532430516950425001875817949421837190640864591362841136175779980552925438598287737437143910359886132731526342310858397970718278991405217996826991642529507719968141671042060651719324444821457641789337793385970722436517723437440661505352428484644508750151106193442109329796247882878185790747006912219031894262247802694502380421741944393154684864082861524980136096837510881673980810198649558917548859129398322200768073548296025276189876197592908837922368188244987913386654962712313026455849179257889163619260141286561263414384698488802723379544584449254805760778400782096370590384150295846634823504336949025706775321110206348905065682295427506749693491171555752543199313659720336184457205553513274680432640430834482879067454592978964725057064774346177968860304562493177534415880449345373724520600207435061337826130847365469492016484339425374660236723203059932352994936942509032578629843972600542826706442341659364696296648980958388754169773180093247155423653053534403080328792280064483984458588538919455193415141429715903179513405402134779034537850390807169121357060778348209396719733559301924959367062384704621477178221106365523214366950231673194602067754068609194292259827611045254547924495565041285852104097377022845113004128752384476401114991205947469546843305172396821745982394216540357591010700510321127492376376108260283505984670384567971121547670715111122934709458985334520625631882766527960748963889217783867486944865220308022729218299159021294976311359522545495371799127834372541268855581878516367134221724270585966627664680339343670039098470130808434995160033448194820926857949321906928855127525885920397411650208567652103309591770457907602072040191935242914342618726737087629824390784238536752088870657445614755113437406807162566273000545263379578773442962151690286055913366050540090091271912864853721773241442612377205600804630825708337202988088296714651923512055820584135070118874886995547447931719557412155055270263737417963075533163313010653003143088249338023492447924464247559359660090379616587978604075427921076343130744112232512759426384433535873271837938981868789273735976075077890526047666888375674980643488512717203357486975881563649787777679466411315311682269839083600292246578757836329684159392488283043875562169629264719841376225783984072512934537552380769938953978604597493318002697494010133019983155606017551053692425189049416814936515840396061772098091826909806627781975937008469140622134994694731653165955415674062934238965081086034077910120232821707586321380948417671316601972715405767068325752786846578491166363861366813561818536965172997180343617696269745109262657381358162890857319026922375159568364388535181000335932075098665911633698340484550895612217728457450794556325943229577061915719262880387688080254057266263033418201049294815241960573230610396966803883707813365327987608671298086812176399279708716364125020570579187271748404622818101502072890790988053405361242883888152977971166565989729690901103388770797619323961581527585867070640541150213626662585136086739743788210875489482451492310423025731310788692131660040919694071667481995136037212883138058155414783687583318984930066961529043396221789071833623801107602429303594138871346490321345081092029076631003292928819140677956606654145490484769044710992715620311221735208139775056321292484297464711588994318179263602638227692657583045013748756926003950654594661452238838853086520222295190938688801076263530022153260735206496697899676052966471220212879026644051223578866263500676787517571624393813348054049103826362874547521041083449313558847105066242389677405221465866212586034456473740352018290620740162934889111785632894856968817403263197488346193284991083814377300099647067487729493801332922209685964832826392873318597565299920061141897678070713423134210120984070450857872179535112042872325328840184538729888496583922276251707305274251138672053852436150220614393411827341918963489982372510828314545775647602555355959450053056786607026877556378439115649739101652310261660629035869618677810334984055836920450829167015654334929433876044238365398218827967557635412886588792683442487102871428670617330591799994554175039628253150993545577137717002668876591222703703695771632060560462452660850819844941977152150653230930451625720410143469753790269752213586870575381300374239786435433069149887818923017655037188287820534303310135603516253042085215988713791686606657654399794136471686259080433404343786565494835740629862529973750993215985221472431740976234311974075427373818298394438424423515416526234933691470570452362613698528842705764264724509380663453187481407171874993491548962325077169261824909478277111711246337092143331720564695566857550344202501116538456452078160193202602575009417779323501763575673536235723620643194805616543846052326437430764970037459806911468769356358856891713342549628622598124647504009815582975470507564512493411653698077138160945165533670578470349855080338557038864650457293749669313095833202682876175534041677499472339176703233927910526875753242294196164215299637534676671437778017273149056931265979599404600366678367151300886076160125763324503875960075573814162839522746905257054385409365566147177709629370580123561673119418987361465323129925907444830875508439427426318637352310786867255017705702677571786790531851712170091044740337818381822761490765252056740291431739602319435210547256446759393383928726800563573353870955139584042815139898306545727756904662785246458771690587069787207350102801726701616415189883478299194415525088556098024599537395824953162732903677736573870241124203102963502071078641618682568338736225329310448406801106388802424386023239909155707046033569404254421992889484160450166806608336485244539275927410856268297262472867152555579308862771515542358671767352758546127052803678623029764553875505866384013402180123905782655171964590520762646639167366212956484341414946978014915455128493287687504842813085825533685277107232551173024646277906860972963916818971120834962750465776221878400768946448209441835428505310512637728561714919479738615602945060474640647440812412222600483923018430598882897750700867939079435674804976551561702727663580517539438059576463756803933446204703674655147211166457415098312995314859076233282422294238795959405261232122687885991225161475156123096689962952581892632495680221593762924326872992445436036792789209354053921046491095754021704225005731521258019592400174665592184254689882017806336495391205666804491892502490990526846656964576819876493271941537288298722972274299172661586734594056460374644259140010694771936533266876739187734565130194293356319794182755745990602403114506232892738608604513577144172796752624752044855054493215640080244699482802257167888076192189430796701055923858919817483976565968580172130170112868377065642982571557995700293051602073496029743685246008015217093762146172285386820650961865791846987736785941261380825789356843223718093123374477036285413370847072855400164329329513938077858800594398674144253914544585840092209374031125722766276090893663380471219023819037438892995022871503443409686724442049579571455991849871735515197890445700226491018713519056699159628313232393493881796201830666872648759518031204297036364288265663244965005591432588415418585433587551374156791715560404881108426573662585744191624474571519077187893159628504481667892145016867636383230516623630028045920605520436324796895531911729728512090371580818241469718567934086317895685775010484220113522216837920289385873235550631790831356059705286661300746313519349840941347591377324087846323266852226138675765352313096576955739241579913239811744894397146196589678668815440249914902954370293661129320794509922776307926373731035068698855689782322032154908924533484501667261610305427624471176486086361051066379584870104162785074622710701826455993255758199488585181797117437532994792474359730771378339332907670087150630743005326792719110247700142003037286545282536316638854808744728872291782378337001743572633766638530963277347680838950981134530978705145994494571375253505132468890852994013264149506431381882536166903014261680836950247296259221972412918832185237006666815113647254248686174121109922415884039514949425442870984376214173815444416555306151247418800457209512043583161962454586396181160009461570864139067227384942805287923545945740358796586002152460452330347906428502431809304532211601807014817629239005480763928641445996003512782285057377077515496832235185720344484752369743861420017390807910671958203135640546753463302852377250234016886979946723648938850140206581864797602021983576800344710131747392399976495595026851270055162069206911145389590439543275707737886546128583240500531920350902267553703076465022229194526781758575564120306154728444669436926188329887336117918251128393737528935216446399781063682972486129408559542441941636813955279837807938026804577848601073753719853386944356569903160840133584582343044884012658037735038138333740145080144489849369881911001895947553030634071833589628621750832734494700903238250550053900000213611692690229657443011587776508407673810615157970700242948794836755106571795078821908345589287400773881019092824718115665134210547948545777245867368695576567292486908392784615662343362523139685593119042412171100961908808742092795046271779813559941829359633102393487488292871074099924873732326112662634262071262809752324723185590999510642403140670614014014429510612009000798332987451098436198374370276323669171028336549902414244902325406657871315831812446201435728286455852126276024129128807440133947506149594330089681002030260172168250305516550522663172844271612214185606489031487549544461323566491585105391623085019618102711573401543939983562953186690865044047703065121942084380152076492653861243580254494721101736233966935887674131564581753694292053377586748177562550029026283991293610767203897819573149914509626295693971364608476802512667726160697742069201627905562636711744680643649752313974388230515976688209009992118995859117557586140812244400049737627979275993681489784795672626990833978466461779941172588369511460236621410822271795285775966574680858510198480980729524698047910527281193645654842094481787558734273765170974714824413488743156821556373369736706064250262815628097196476872839957029949189014754620478099574598469126151794698882763414258389776061994411164445717156308787902055667783069527929658451069028329884739529303605260704271855337653368703727109958254404596661380832575619287021954522824227771800259339548434676156546310182086336274623380796899177948600343044465952371358786461268279109605070316146389364857486737402059893680984303157843740207812931086805920827197744419788403746480175536541019274109704795151000057422560499588092374053619923441886589257452361101712102329582182980832501937659954104087545600465763499272367994691320778013841977636352671300076152018835842120679241512229659314145447129976824733949683117187608409236477451147355809103966237505271370822546803375439254592696689614205611530587245523793054680114982839691412735527606028531416473532754198818929854801258815531240310864913105403364011847055618921853502216674984286891868059398006008077116628155013277982416949386238934341290227986182471483609013567650307285924401299265908306755083019633536321512730156085772931254222659453491760853589962791596057031664631370489484496589326676425946940125338663378882884491292421702598001223981529046769701755207009913204526266634053562797201092835355315391971126427751808900197117761685484243038544920348459216173091943650764072528308476003231008626540943597632573534680315154762083782432717580188838032005860337604594373288932740639597131273800087464416397103496105879249267201366768334572286716212636136048403480843380116547888478648032427059347697599759381703590466297185405324381984257837264309375771578700008078062088829272618430076696747369658115516379648657414873022868283251752185000178802920203526323365928107247669587580735058640297820908554371318240502787405765381818125758309430671444644022002570684907877004057247745257458725270198265697234068809284007844502622205694351725001228918867287688078442392705499334761194910657279195212704877545116661008555904723779305280138952472506618650970909481403275746644226374451161202803247249905982242326330095559138161142753136843912793104551624339460369271304381348333641180660228259386767318618852231504612318802035490530672034878142490143414824148224974297942175794112729073277308368023274641003739767357496598068938751226935205727761000954188602609913745369959168822356535083766955714033300473625773643688327505009769403372259739436167251123935026138268401593401896576997363225086579130327446166261745533216301738852238670691505737271759190982274360228610901643523284463514973594687580015829839277150513347489854519918423485331018816353228354251181069429561128339359054423378393032568010224534548083700534857382365596989682661078457448416545448694591639067842482888941367514603228165091476395580075960276813268510952568890542717335446595680763122947440884217805512003968521668329954457976341147669734691348418097068520840313071153515788267545726450857543858570382990492728105864232980660134447232425758212369992600305938758814526206874488413447220322656755698982305078026957189094209037416809577969047922589944846662218880084024293252073290095690967113534972382144590400754248870479459580124750622487932359782460474477812398404162730223423907494763148334253070280019809506689804237209243101716398551792430237944718703328516187207305149068746848718842552678867022981158992070967088654359753257875596756771975381569277431988294452304851876400441006281309320938227273723879176238824911556343327648035337798175638713382078580302342725353838533020250840634932490948437338465257011593388383978168408718381327277434076787796561829673576844947447529249982518893044101732245441103312068157529461384707598997782402607901453856652817200197466103111094463543942274338580773854802432071648684184128816864530293597993248832191001890240259606463199592255843423751063110330874938350487797008508448238466329656156149391817327126334189967623707571376472927501699278151576060070214742984524332799620570672589539784866044619914381905999325066428310927060676084310109915597320973857759253365434557799208211498192819658095469771431857973739422725080017094640667951461821650040627051286777297426461737313601667497399950313388209933197641312626832428417409547830638029618376343442575884077054590573700287842637865632784633030732365216885047497995367137048971462868345895949044387486760608525584454580079904624050585460128469756976143593455298180082763933134887128120966504490837160009358642621642932806645927538726349828356308067679908714536924702921886062012536547841269652713652883289491192328485200082027834724392537228893802377629405987019585736702302597459724043479624049123445572822549973594661637136642943026683155212250885250286870651472426017468102307933892067467978333274596880806374885040353839814542677813699418967952853560670993786769489839236476762333186528840244103683822098313442430806437057982634497732342144052514187432845779613939453787078816016594109947864156669816224806633545297294897892524611752991918116949604749873488372510743928477195164921656683165679360450873796234805941727485563093367398637758430134580108004957700713219399440327284129798993887907817024322216278485097184726260881447515052794397101235476808005297763869014670126231590686626431360730091628976430679552295723936980794281641739681234691991378476092852040147300973886959507271578739080670207822467400917496074093510230388709637256179652148295657198426155962675655051644868332488359034437932148234568131360640754071210129871665228287934933882961444336303798695976960429305033354859660736500928542133430670346314905701118756811729215193881920240167532912485659038129672296514705643873867309981928185204349535173990197168952083916036682528197416030768969363285417592291777731551498167002641962118094869860182021197670402602666046070175980301065265314617250379232025198582437119308275798675477467380955174181215169721611761841030351808629037767385895445754803713033045141177289041713324036880386376910791727589619488181027699727449832577326236523955824285478944566634697787117871161146517490283913080888815724718213981672444376822657651661476308628067941921689570832750564323836242444555659821919809614933651386455618331582040987473416726377822555049924367879266908246576651709828989816126548236237393969593311539371548807096647883644008535752450860748794533820527045449072444720725471074349284669003849284902905666013621781296714459016348770525929598120426363399684175644960908772453456760756007103347684554634249802638667680066797430249895882417781111551914393940543870892845003346585934310706521351713258207760066618781304706314677777830112604163813297066392990482415882720458704413275380266113623891788058827572955825852723615370748179976499373382028630259748805055975520817594532041454678268092204922813955488537173452870529402882029405104015432985644670061959576583405420733536832713277422821002060900601407091401455740066608116089096114689133751411211598688819129911788954563336244366951542483428626852921477354072354703844717176013966165446056671028019997706178913654844031698689331179217270320578263851658961855521988364331577908467017491762463523528259789309142440820634432183376893663753593235096636615872612850619411007654062196611884200821695876778633904743048591098333934097209040153384872343824511172547027838775693682449148945298612523639712254028471552354464969350847528584828883937343774191985728195451371294827456438751337374977377699522051504560679083828120700120122774937990830299391135397977224144219225448186911912962501441886668930686120047480290016646763946753389139318554597833466940062835237394030178820836429242373076990428194592718515504619901580966152401405718836909342746098259440228364634610372974195696632661903473145593222034243044108853326057209909074891878164051944542953330181871513080267912051831328478847055772511410964038911274975522962237119184688112133888820269543556415639816413586456032679611434169363299470765132905168481101810321949734364103502060352018022222607707180846531008014253951293422211973663434454758006750255035657952390098744404078795773682406949665250094210911011486914648080204445523628515834306465980765769468634079294932922347892733845741744865120724952211316694711221103856541595632174779290113743776549526047517286442530155100463872745853243485249495470251514417971854214520197402496116279990969668228797393790003325796360577657055150998279151471047121295831483157406551048956911577236191435684486144066519691811516331163133856472612760638959375340192258216776324100180984195646929290152698511182353909681217650649700505349832697251114301667842144448183462900160256597261583972409868769608779854009572312797197455758032219412502627047317873762149411432698705251297544951796365720309719922433584685053493247707254064126077680740215040111327557515134979269427411992387558800216766256244336382947729392077930486679147761237508267307905214872514956441567261767608094903217093871240800112790701509433703579842093583417349733971709482732852246422659672777787084438260305704984703499158568529399377049806247564963720408083138350831680634752285910714888565149632922596489257058134219715106732208507943184587354371678320993287261095645468736556826724509635513394237114716155504141783543683576725064267160834923960570421456769722479051503500002704588363870513873981291640737514940274331561966780420932229931868070578119040867242461049637940921824697463009603888303323338219588131104953650028459726992536598183774498787392987320157314535208072733425554403065788588773950695696587304720944895277035853848934518300495397360059654576478390441910565375332060435485221303458216895498542353944360960329851756245813880699022426564623128081353233310019765716574845835583902953917545850944843595846431516435821980519442631696929393522729270934950394736139472757545603532972529530336845253441706113621121293730381306060974259223144519012422933902549021585471413625258839577572245714117904864013160072185417129424481950308345838811238911178538636434064502997803869519121464247846375213649275848952621965665994740699776388724840699149750780662099152296040184037076458894968222105097847957093099674461586829203824760371723818358537125197148686778755211728306783229519698122732808415200709818993249755821344517750852374774685767059673927722132781245579109127096131254903783460230418823360700715602516439220947189530689955041808275799576443419320753386636630884263052075624218051390239793640693061142772201520747484833089122648786670541025086950992098247340039093677706879487389191890510789977541455587772247744759197995419081732296886756044958364576861263221264694626660971134407410361874053262350266030461004096577198977059159001381609191801325333433823627009476064451267809339265417964640798609662011401821144427712570217720203809939992321703388196041308029307697063247419075038856430744466312786149662761887526957907727166288238312599607945477218594249663231658092382777945025387096152639666166960368578714132056533277565682668165620663674401485061937167370138317914892019463108789017898291527247594806866542400880134372052830931294227543776398174491326410986973636422412516182929025358342394460490217486170278512873242726522112255779186496227338767492054414906188154408745170180943356733021351236134608835874899804462363458675418045834881986671039898579481958083962577260405828604092053122948492483427198061116253432346056981096139210311961685529849578795101727572947043027977945396879379317526271442671001090736803604186169545529048727613471810872648478101986647463560172588457448825907497034083812018639767428216752609487752867270604432890481988153838428536384280276728089831658254296140144679263044059394709331863056292599668496020418142053417308797081878164274717569132993592305055721771568414900508510209563355229888038720142173280940645440870596096695114460245027679658661554957874617075441043460660712733939554978021114637939471749530853301327733071437445602548198969165959843825190972277631348201035229842776117487471613074692832674145648644234483613739390037750648248317179990810945346899745427027290522948486194213988720728845660523245527588567145329503013582810183893599727634555968726413793392727411454732098626690896719295842015809231111233354589927900647011723973271306931267928984832555488720724471805946760476896207262014850557906295664191205475911352436150672384228363472860038153732045862123450266573615595136116387609682963965271260753041408708061843365795837585118766368337413397350894622485919372106301156355692196520714618099686058921997600913879081571776930237861941057908759804197086429972075048950686974799618273796401488352773643614684508821863185429512440217674712237955566037775299368081687006499856741931057239993324386886827935714569940516204468500202929916865623267850374377566042583856878686863987529280290975996257016365952191482408364207215465288473786182416171246026893833839862017194665260454155483279346386040310723939516565952108786836832783863543683985439968147664766107243412269732082826970959472509070324847740840361511530723319619737930849825641223281457515381271759773374599166148145061691668898091169698842305604030762048520370730676619569992892152902982735021230767110533666190752378966603741376380685577859413942907920813373470518874198575370836705688736761856978444958085775683472248885629801357507613491845770638834683047090298926943259885146613499713794265610116026020934468310617518772089353495302725642171161905658984346497791945235454812852655458209970899174236899842096774013493881956905912820924377908774406074814867532890019164044272705325274090239558231175548626443618440609598631974590171032216828626257615388201521468585995502663247175558790490457879249235858218326362311383238811431595076937408556339579480129307323554397357670250534776693980633147938647959372034681263810704283553867273393913732751654325242737308813757756917336254517936952566337080405250626668784253679760989518414476517296321553774433326533179135273819274986058795728524028652044659728498128602360212044982433191495541001568736420519269802356648347932193424691988042272206329977273245987042587716172109178970274590837273531784433534886592392048020938961683383468940179656843266675350955752651944663780235471152959508690363667651959706523751814904841092382333082195047910301602258978765688164079620163273063559998232005163903098340586111975093707920999806913295614034307906556491288750735180750197369769814574576557807791315243613379411814142820449711594727936891397738897193556503657169445418586162269343637853974983331337727052106755476485021778555940527970321272264465708380890799414189418284727244231173887388495074997132834257657796125344437220388174716638289901720471428494653746445995792496217682108141236431807746899406251587806941897579939686333314137238139895748643799352888791404800653390349090735929906244493058481834373830300380207841522203807428098491613942490868599885971402591126083455562414049875076851953075207481805806819297803228270076357292049031822132015745110079013289243308591823571900801988724657475772468328895968799679380367139220263122550438884672741722788324285488472265427290726017538187911662540279012245880426816836706769917692764621804069026913962886832310869701695387825582580477006175741153557264631495331733183081479639884702584824200278083866195034465999871353596253227043561415058411973396660898180435446468553186436885027407524859017693711547110366471104260244531162780286759569253111425537695044816763471429844371716455746479735233535391667224733218928504419107179757484440045994711971794231493561870092217573274197757824474513588885728782345273719256344997239759382582579397806555674009731035883117678072056118815737361596464990909329000647169166980903221539509523853939555962688782737014233971249303788797481257725005748154428953875241938370775585800957818798975624111574590289290201379904656471350752854607172115689180473552711773187273311667576599732974072910680408245986471296234357515537212938353763529160814193608511419420248295993538710684322048102804507094752517171495341672952105297299499740781338424569774168480704319968520815962515260944271288417627781630970090811267324506335529882624749904231053332528599183634774292000974541543864733381760037917006345101966309957829043934947862371009523661434068218054327857469049972703277437957150345409168169332498835764879734899507634019769495850721780628143589383792991478192497723485443364441068080894239633664748832381535519384257126974010346374499334706227584721362386202770514900600794038812418141746590561021367420789274580052656715387556544019420464513094720314954857871962294048979957215961862787361751452544007603577065850622405346618357167720634926822359246771455821525732777984586532435571761054770626490375442128951540766885682084004118639593164080987353674837544661236633317876725681100915357625609225797993189449328962892909279534909907205715781919200710396298745563578433875701113902197434990595731078665154732982660143151020201603176374223842927245686898414948023598950416010692652426263954938225168025222686792478244866727382686092656722374470857029977512959466535838271003875628313319195287480360811427697261613275633077839175399161863224010733875610154918667226350910542012990096193058317407432661644893939647815839058922656338122033246661827140762266833317576299225640885425269737662324736440400267599565291907177452938775021421651898358664897145196594831894106560980223127069634474820803525782709190882395653423756478756384628631624845562531333317434456100971689859662470034736043265350294291069609568857577771430447710510226272122171208194090156646501372333816705689731013650620790494675112395710119593886567397066278128193531498699715565497596882868445765890733593566264962491635186874455034079600143145282871578425932429666659433005819438944915765261145160530520660414835111420457262922156195169716717521369463484178345661458856764728107401322670322295973742741208221421735709821781810691790585394757153685618904459036695389312516777886209209296226197903044682157389877154439136887654686644511641802834188700894416024812089068389176486968417315872785813555750405114565881019905222560808936378471924928957322261727534290496768616078472346883474189169787641421824261193136043472861392347647325127965890272935358933474022323583466705376404325432913765157361659703669235605586315018833375830740387936703561995625275030150407980874272936286199285617818337468911745173812372653170869312006118616814920622226556871496877557832068361538781933329858813821665756386923467523598619555295513273699906353235349840916424567346063660830960725823235260143608635518268484252487443521196742417554644073508035104605711412011737972417423634211873068607814394408713510043750893371897313319902388448591071927901766995473294383099742641848344723288892238316161934250177122063768827095149265747293137377887490136195501728460965020321348167610898155260043925492375992688236946025559269977357221889775978847980559339108107050543634355124003790616470693655719797976082977519882102663613732107309842721410868669066928326540158497283091006945755482162899459585504148735639423349265097919443708875716690109070549227119680275846354770492020642395678426375587262173820120840695704946710596388355633880654366491437175744999665667518685889013161944693694950799215291701885698412797372320586597120826284186654459915133862190762802477865189071939831287451612631075079011968816053667610935485859198430102614034964486620788731386205440395832251255279488466531638528828439082474260285852348059746661842861898652136636681109388257219052095023679622736518705792019004435744052083277678225033419135285416244927622101624122772913559182666542610547341141505571588782678768622997072390814692988454488711666551775775776260042617536908953490433666648835095570442409278475244363061110293955719296709402211893348482892818199930524518451239423914113043296809999940786628423343785893830872209755841344302473611399129359092627176972383218421992645104964029609944456002534261963360127367848797546990584815180883003235579289069461288158065492830566282018449448478196583842030589369941507831036164455641106307413221121805814287020859447688073321626541238361143713349369620745244791598031518540556848118596511304254300626914796668019483942268682557895424856351567003051522545489711281312497514328555182246856397942799556271636977092087769501299705010968544475863252764842636239420410876318527020769757953141433168400233082125244103200372057979331124856911752740327627911634283606592728407712042460525928439297381593559203374350021220005535902042877135439573783313352421273641688546655662692438119164810659063001459006155020864961483087996131277698042930361206336386001812185771376678176785799823531693810607067485627954593797169611644315670470210068535629947064534346487954858386604118657219498787591638247581288767529093738143237547875710953598228461743234695817753611199490152375538933171939691587988905658379449774045693309721425855632984921961825441529839053228285505721105315918476131739357585962905412173729121534800988814690630090485828757397515591463960000216493739931338613265583717546590749276940412099691263136118424730412607277311625687327752714919328071296691943327371300901374210242201381360878494165964679194438058490305332833318495835302614038749092183461319831460451349206738127747725880224153685275063111523696111265313159420434543003368985627951595504811855475002046484890711831850877471438496678650296533785883906308514291061003723614720973779238963559534570584722890791397252337513562569060413426295310219823078518117754986668609479644110305873170988555293041922570268223763243049698316139174010627042532693658690320043738123113374839298773986504255835713808715089627696843308170096262064212552319298740009424056237934836815904324216108746433783480795800068198485481708425675575566913406980193712238787829847922940170379160711167338577141461045523404394264519611454090807857225745545483575040513304232489923246345800450527506143043760266542694964243867923455701279483245167962091359378713784575492140363236699845241873470022569674413016207285699615631229689040055657402748718769342582501710931833098139467956057427621192503501464464208420643801357831416187689294773936802065514852496851957465605170226088492188233272912922939066348894315528280894290188650190714232037924608612136064410144306257680113506979040656921553617714807537275057631113448657705284480864101715156066030781078081437831799657682314570228446706043448937561085435284068660721758520691652971599752152296411716947325422771312246699544147926842551591279341122267872165312386616913214605641172064045457456254486421739074191793656179093968241668003263324509205102462593479016841672237995609675391335562183433144945768903705561923927937705101965858220817534262725660141286852868505118876688166775006961985120708076881334598315549491721634234709366596400611186696627032443153698263528215367202338774440176487887539344832415697403067890018020576235198320355432932438298868098096814754146507430306734885853824120933792882017138549590900457598664572435156926528249088572655197810810290226118004702139716623300524680202795070515812760917344256435291060111934784445965792181901210605261255843956382437417773183555482791597668008670931946137806718953992303642140058270272707695255118183004467093215597190352331696321701237446757477146013781218437782055153908007679359735908368721762706734224356598467488111815286261479359729987864160979494955519036937664102005078621228188114915824073382749439603243934175792635416371024467327118642509222322068504767217375408665551312436001517362393256001829009103006826027151326883201728991200196593305615590349893319082169695771605265389922612399314875165288964702807766234407746634942237948840201559083968422738053104844819739862142000531998120994242645077937823998799206396770665767249986391838308981049010279675521991328479882724425349007469516925811112841629549322310737411116612818740745284518301165990344359997072707895189247149878209789199166432572128740420834006680079859337726136281426682092522325790349501854420859247032134313199048860491362296374891445821439681146407846686525018314432396726562870361244373680207058821502026325528591371033510894033167632048743411454859864388843862299032057185294197611606682813649322060488591484007755983842752890017086765141599230445629354154831149598596817737441410652336899169935069432532179263625596973202823222952276038342916548308142805005091910939139528440489904662288005027775911271477638886608611888087080771191515540249261082347764244571140285575892742468889097880261330940010240903415644219281525820521343622121223999319977769581767360780646103005059886618611157900972235249409573577996215617995674165552515045055487361883359297717902239893814415556692515034601032360190881512481299277614892917891231616757506906774611719492839536164629287757205956850186697954965368545655440442625275269838223136241882686796713533907036055455143854528129374909111838149805159705115185569086800483323949538006427276005156613291395034147682930268043976550829940032523459333212158948725351015882491491905283259162283006706295820116634706897970839757621040721530250557665215089145711428430001526147851704261152243232727740873124341010543667515277070999082903064385357915772587865263388172212784636911269805359747313104130600513719668248577652928860377574823463414474137868115477029791322246493147987853633777956599558920741043781789351583672374599795892301886267171444244843595130658525242640127427632119187801022970165085865837440653026504602576220230902641341588696144297232395855089638214189543535413170017247327905317026696572044586326712606365695531815423549305932684833700891419407350828940724204843525566566762181210398180213609399830981153103089197776063625655025826164274846521616467760624074080419773074353499224594050494356810957858414472191684078402445488201715546514882250497698896585061081294207913500234268019131488561217084671729754487906182284216940506160566916594475228348632212955541320020053066199141676725378110868853389485615498734083372228019336760325974021872238399469242386981807915703075016387153002361069176899257230673580966516170721176676938492922874147810890685698650873812500299272591058196609018478241485162565681847316818206100113866196706452801809354360713311266303339331792429511524404674990495999635322220227075290845588554258728126033179964860104858256645488513451769826390849133153348356029610585727851964744701589539994002402217411030793510690349205944398047323129867758196688130372617824265945688322367580058247846921471223783195320975044782198368853831538324971404672309282078960543157321064174277444406027714312799814900012266958397037016224504551920945488865970904809167714994683712284862314948469319150327951779748224568826687463660578033929719345133890311176768686706931150208070183864652110026500362639423782007640318048779156001354945711366286749936685123693368181323741846830729199945150218481177110700473588880384575385452915437537829884066050126262039292831647257262269300655000566335723299343467547221078325578999991300407862631276685707595717503652014632453977335528310426517284328803471723022363505004562371004242677309442843989508192183417139996240060547675028055943692542309083516479259990808618586451547698049267629378212969023919651211938107963386399812039577495794663060184645433732685027266854352335540165433091680701065523802043057323411201341377979721660771878135597749109178067681731183934787341736202602423195193619680870436004603922469793527040251281163725805564605002997153479078122538165601863074478262101568628789937903594547925064141999170985717479942541362617388944040813281549465344851933100519207869742255447437625666281936729361692372672507354622344323715708576447874834360883154099431695063985401889544975894761861622156555089540817983853449800430305639374676282441164061248411455710372688074708126405075727220775948417536443371301573123664159142987723157560357339482874089912434157552939381045767947600674514936435659084398313059207002784998878007004854591883722905299707114783564982101038398850307920996441087080546565957523151201008117106202146283475934777510264195898425048441498375706803117838649086760842917969866873191238226907396111990831631007866845845329783696244114193460369086998598380773146007457060879222926624803528287879357594467096474242314194042865355082934224491876159890868349181439017086979911360401967387264748830904435861811088868887707644120191398086453523471964497444522548654181276929557558813059821575642111771007542245493869824667599553714511200181665048545397254735329070564881363731324113699564205132571384392454387679355320269231603809161945549548463656663520032646745835520009533350996922377057684360366762394965309098901193845050909481617500888477072046881370007970855124315150115809105081737291158161343204247277588327481933057109350580980248940577742811279027208783182475733481501474985006576260954303022745479766641563794261600316280132669166634527357819108009677997923118691564435887817534129623900030656597582793829730844054330299768565468323648049429192958648754715378283113524316993740148897564434530917420980521468806156049587044649099602752051199806854453659558483511362015892006867111822384241922188740065253675184483981013452319055657849689483744274849619964229903871114408777701699290043952368289670774061116453209901406275987803948717269102466786170862820011744648358672362688980955608794940754282774610421912671132490379717992091233024989308714427256293751782637810987067575152818098549186480718220254611999666388542338224726742785482977222814522396916716059187385047252637428197023340380446926399894985346034234957544759788347118393515465232930477473366329601714957058237018384161138135688468218416646617306816368352687472075164514141422152941936150559129373493016439710463028435197250549692252665010240273617645594210746628224136338063603961009209802572905283279597639961139634283270969241835939915007122592330569580063485885148752475920095126352281583246558849564314060257038508321899524865485447838387061282525227333452952274439634865031876110500892015663429724434721402942458552292968866373485878452778358813801020862591078123223656445031975949834595478030843837724880720388480224582584352451617918535429412328225067868650000189442277085642183269405107898190011158313219317342528363003650643303171864417032128471503106553730069659291029055788652041326439682836124544835545828150439080479181160849813035384749634027475278349258547957279991847679668075015316587720875960234090266611161069468824795769446421940748008598020952858951959941585840143086397266784229667144097809028565191770066796443523148924011324304015787435201959385266819152245132894448869395068273809176154777279206121206862422277821515375389962241107447959185539935411407858001606296157664494285880204639901273019109599455401290063151572086229702884959475539066588191937759640013758987611853857220806196203638286023597803725079558650639013337557884779780279668501676128143104264418132072407478086240076630813015819339004403885037423153131794137857585215670146374672611327343102399028700722598354184407765726957058807690353419784429804679492982636973209673857481475742849007190337928065421376748213631302015847970269960787867390351850392492516886129448459883777135744397560777687527618229644988013292927609417967747432150903282727254569302572126944898083971356264318284203644700202552512053102215106429264410675321769188446097450595439471674786467790692139269151061357891508153634162322312781989661272093508445636473758860960420125300940615798372784875603370664661982474734497809787433642601661187902440400810883161594420895733623075837331454281934244692519268485970334136434286027823459602633183246214313484179536743867165365471435984071666090002265690442913508968143573851637343094538741670632873828226282406166840096316616016122585818546059203964817818941922528623429666483593837345783036571870544853831905697692849275118465792163263881714927784150381527936378888924832808897968167962786994207803405495122641808017175272168235378171387303989156479418357148805291971224339236584930977446787140605432196689781301790898416382089404189892905743011481849627781165850190204032597987388655125420848329085546355003475294536967979330947039830626130776897067491190518766815454358456801971231934422676818422872396904619482686630116145072678648064459081746571311883098477141181724339445076119512844477027708862298324967414489971158892993980901803835453397261138903512500397502075255276822014485080925293472961806755206640302914261885669585173574314464860786691715069565292321732139248382251880180314209344161593220982958021051696245081464095538999720698447359152354543203775702977628348280368152369776000546453201114982559002018709598630076024790356706853194612583073826529315973956551532985508520652778783814184948258216367113775898993305434233068498974957000140538125046574567321138155082362486104577180301835493104478996198222608796889270407715982714208995207226109414237537085702503809978989223716963381789930084109752119249758951356785073067063868560580838629330695242364919900455711976089443421359125368209171012809905730818708445834057333267077235285148333522837633392242300548653223155804375990771338239807985923710198448940102383345595867264807727221668696314128045903899638102406223536148517342199667028593151474556434335599159426753107897203084067027538416398164964066645232852587648405223660156966222891934671196792489336827923945591684415590330329046202051569001920415370833714790788714891500739615574140986926204123431995797998262479251431310706582465845218734821578274943220654829751213685305054657300735059477892700661092096500121918179008647298505860220349237729028710347851099718994915342543442520002265609667535584673221243308496541327792613641068868111008731873159211732868190511726704324403355392050762115357392497043735298446778601682896626137659014228944398772383006933717788115795781963607835967048117646716235486985789446829625422549647069022847341042015237869104774793184219975955736678467274999544478373582848159404329522326446320550456548759464989741060430227103644390415944203879583781791013951634263748646062452189640498358257028540775870060554891988144137655609657877277183028548786291078495065319435909854861288863260839562020482427773466309275263532309206801878677353317854270530196776098455585677957071402618562973384323453116889840797611223824403294244326969702048446097703572608094313734203587945525384971648705332057530242400245449036121910364547262027047794897352218172711744846619781322876617321378117452801074271626792369453903157595565773407325678850360885547896336209438825873057160312623681530490106080773238178320213368612806612783628486463228960383553300215126804033989514577084147941192753866957557343350901547637600984530882342562377766558422084414762844763526120617214318723645931789931895817664674685655195228760638953962303161166802442538637703510140280904854126135563549639986925682922504342786676438616556126349050888821944988907284134410607459159272377013238457157207841983734967351922689428288184154144029841277580016291898510304865705377523599279612710542049724218458351162131083554581628946970058626427857904187852793819536688961392021203958649509272606999255325993284611299172455302532213141445328699374667870385276033897737040300346195163534505101748018404895417732009208890689960306141786732496514520861492189907128052697626825209925316004731710680502353913526234347710286868031806487461880978947161369465218327663772435089097188418289800759383515323270738386668441191033866857841287323256225578305971567417963767396286910439644217337863364141356749124941990629413703135828334316849303774965718908853168854254708866443896454269611296194496492353066313072499232304627970784215058341655830930505548965445981004868595667325986961455646038589128018563327312211988506261169326796507128392096287050644624093453661986437975902175651146991773008850473504823095204075944622416335382106682960524574809750726433759722568102246390852055380991674014164352220177996776906312239035864329803168640849285044951820656779125260035516013127495472497340060730516039151750076740489332621061213190151951740097847996190761595580281290844915071730113279860066804249268520210152047845185675473525131941940774686033254052313049551818353079012105634576128468370257096540648214416163928573832141619432320092646551213805530992198348635625473044843040579963669651254965703351561242102121901107596479888484814924936837477361119384954552552601704059452369893986647836945695978595183023898656595019338984053370117191015605668076966972472981455434309940320569881103118951991800809050694765466053732264466765240812295805103984766073395065928865040860281237370925707578410347579975400255274558537732821097825330331094510190694962069051643732875059207697997995829118989962559961298255975050201133174315272610423314178536460711405396855228201280357623344825484561372710450026593540293637980725080728709826899081281950411093710743624693683505874800962375360687516177146956090135714689277658049009106390942508306797318093627087772694011595751155115635856088417588482540608017411193252487192198062380511192457478724773370103308774839911388969721771182910687965807362939581995935129439905984648447684800111827051374952768244430350470865765327346705802116760332171494912397694516560046769885328656980841466013698858180274124966428924279048475935010740597303713931262819899822458462977084946536573344157436290677735750078712548226714922450364847764435289546583402140972689203356195388553870191681881109498153578028173007574258396380284267036381240549652991144851106102460162395272424615933734939470092338843114360659332632946335651225718249838061821789870195148356591033907426201461233834960180557057362747602910738895086577134304906737197596706812573433911296729121172726085286280692587379690591378933808820746391900146987368461589143260627381018844654997725539325284537136691911636419782234420562269792889651316327925857259743732692275547716463336345357596616965599757229347207672240130479903037569276646044381100482591630331787485169806245560849113284462543754917638118085494189567466442886049055736639859644477431872596252475558752789418037296716669824556644984685294091314400981448945353180765705589384859693129952772963935581151320064167783901510115764337558149146144653127379232533064844469179067120159227146191870791069422146394413164352145450346741165804807086792682959434328395373300995386220071157104517460784360231504402271111041691015006312534171494048890724757152361160394195202658323266593674356101034464265758716203948427285240315786302909627306220507913050737767999138888063991819913764112297446227222287704721332287994610796810159626025265307415717162482002903397102634021117721294739532069760865235423627772172253449862010731436230002786755348527740057656824401972129485121941881549774468963188349168619200164739649494477613550431638826894666395922366453879354305394139471535430917481242858124031657047013692683397084808168767727441494109822911530243160247760750040461091385577863816982118514310074484687313237495524436945501582054952780892123982119564325904078570678241811284610193368843659254876564281518989117074451549611737933095262959768229215132920459668322246579408856864315159807373435444308061668727254545022398531106144009916067882961605956060823916199974527963207385100468071942518700318629947504216806154453581269105757124655571636681694887992819232729572139764710321851674164362768378213564352602637979241124797821091896248683966902351984508806371094519010856139337116626955693882961673437193578842341710270690673530328291274757422902594529195866573565011097093205470037957914648790741187082414276296459536250808759285061459948687662700993957260804657008718598905132236024388846843306990320414483300792387958796513400978499237065361895429887738714449080260335186387068115930634040661075206269505143195941120321521272989743647254497271402309812775414726955097146742040405964528556102485336024324321366944173155292462997047097021019413292029519579353128186113065031782987959011918307726303108115523552566041269663705942563683991483022026659026357803725220936196201540881651424561501908035283084182648784265754114966286148308471085464756601460186796433646018960860329847188971021603181794879961513216872893963256683659336161425355466286796541805602789434697229649940143137356510169405937565229243928422310792617644146200599489728799929790997093581646986729249301556379802927784423697375045877916153264907921468306412424051115005731866526032918311905380861009413527428054441169429746329950890763141571818814633891472588715754840910451002572176017092291875253537669862733286592434660212533365915036434651551406522807244471106977678015019491385001601533021549894450231880339863612485659258873551488693577427140830084971730255885328102238900253112454535775944903188837514741133248514055484583861144748047527435066565910020632914433873063891688416368037236388502064578583667680490305783899898152556770336336519464708985325332777060130681614913796907399471184562967004766652671595168169702859700003284392797764226935534406929152813239908027964771424234554224681127328754153754854044564461712697452508187389773744768688127646589267758220664842185409010131512371682706414891988442212769167408656386099578388515581097505534329755517824820671286346419958752628279643993802212442204535332795490716100548037744122035546941810424685220165834168146328273603029415177828983126718661837226158406927845288561353606252947151568550719578748835655627043938223136430307330795290039317038685834708336981258557758571519325169399825612887058331665916124851568527195663586542985417838664715274531336507022939686478808528588666899117000196850998066890480430055438037879439009367943131551373710506042010504021112578721662396654594371611600014009163297953112734204233053597390772107840338322890354064552288301436584134984009660243340782924785657062239167055071864970208615034042824750116672161958146907009144960213502683267487427561094079510496170755934906578389906366285763699647749210955233821213760204161121412180161145114881414941603343060344180190910831493412026005814149651834519064703615317212406781529450932689212467894649587486348811798668635128735811455960231654854941670880851620265871949266028321754402441008762679956045839027233220669253229089752931134831440834364077180499387555589622159087413676053397976711419658017862025100082530300214761384101225710023211421998308944119680615722720706266261970616282909572518963637609368383893080004532801405042433605404832093422485585968422932093456570195992357282860100138483847840176159076874813343077374951821553280017305236383126538240359209224054940949940390218384449497580289355796498503210237803396885788219102328718133255372428054690294278497603398550543122229104131361654140405775878585652138126456733344643816740450968423122476962111111437758734779447288638772098198854961422834029655417620913895068293338921652554455329291704202510397290345088132763315597850082037773125833088106138199201676147400131215180896494807042320904302044227800711007858111262599121351775137644517504543019578325843811956890250719753150521517498870077720252845435337474517578641155265368289102692925752680270711964601047425675793748189568054811333093363598040141438033714925480692818951891833754959672841879634204070817833356502304414727211257829172392045175540035147476267500045279954205382226672618516601043194557671242326460843238628485355375468006876745628202107125547297557023271889124368666134054288272271447642137973679125950986068772718211699433448332506485904677727763018560925349229931592964043832420090000772169099595405375882222367162724913041605620674024689765798926061243061113827905761752850997150427070851234216986772759669979502040074778071795318403534686427895711471805534308978242386028847103558075059876348262073505846019255844187524879224239007839466858886143174661520837100003871681449431875886610793218570490773747826506436547784876978285187621699005844831436946560070488743863356154533388516451565869446961399798003577239900484203911864753227457728189735334907825762569115008740713373655224964493182393906289390550221173576949161096487412093857062576282396078933284399632357404539662935012559873252985790016469784753221146699841452979617356583532385591687695843476871057811520391407607995337672954210269051618138647455298490806874957927452244989299149094071711811032779763797576750508754534298233183494380437277413995379348590394904244776112269910523548142470857069786193970705211491046642289908929005244501658453596998823908887178416298916538484724564142918174806744231965931593395293494092804959554989950858732811815653846050434116187874287955801442919399248094598653599284525666079001938499618563039894359115653907839361613516604981450388176843945366236064156661225507498081150703984374568865191511465915023544494475533008139722136005653228510292342334167211283585279073436548637066975063455287885159934861280455603628777199677765442469148208862268830566099590200022261648209918292135397388511365760505014080767100210712421629315004935980404773743857461128293282710781992236835846991171883353605614113039911210519174584302607745544847243056870494669227017512481428863588941896695839036808614061804537250611102130393254029581147297169796575512909181788873926504247856815410049022745503388134491709276251147527308518977583349576910117920010710587576465720396346012533626252815162914163533310965273633059438697013800802984902020190386581428597726726319393471114679843528385674067426438840213005870397210616552101279327382113234036495247797206453342979069500000711332975764325691335892219496492096041909274862209497825061029079854534359381043120924064283853779608829622028769002128689706122488389527902699166594339580251462291123829529024010451874684603811260329758560973699315945743324156833778862836576869577841537373812129556486520154906673363444056128504676738241452490971425894509920628700715670176801501548154820087497366486814781697240282141021884633246712607414956995884746925459977875986458199844867027516312193783947014957725117237562916429404075742275639675578510344652733216873872853313168379117546081096083062702213496711603495164960441153873656775825676389159727448493057366102287784874896308902400795923578277194850851200061166301197245142051333421513121462799247259081909991166284805438371067485415885765022184595864478798058863813477042771508449777627495790071783265138554702386684079099555386748313782488813116430893410127631709296047774036797277249645274670935232705889509882717223137883920803191646279577141963077057596078902243934310176675056969426666426027314192341908848171549432745311480539545885041326149259152816558713416900310141094710962597499483106679999422623831461860098559564061638757402137847386943892545159977228860104971628564875865195975330073266588141520107616625338918504996411518889459718265724129756136957138401412611752743922837555205592446537474043188663698887143125433185629816031365167391813793088622247024567344179472029516385556582409229020814628091613502892781851864466443288652334529481677468756790409398166045604388330782335322110509494205204965235592630607319787901669649116954195226161383603824676524357517115595136923692665613088046957134207686236263799742671127084763899485478911068934874613990222021125816548704850376964547579810300459549793752966308121360462502003666440312408254144568792063147040692169070770112436766663634289541095140299950674314417021942217071584569261616653071143597514461568389506295339920228159759759470187064114000349155249486777821662138307567151362554075317160727554193708527629099815646768887249112055887100207018393832368527045124536097441670482428463466733608526676138130946424161772428712317917547734190620002992719972964736361013145294776142077916925476822745360312005580328773122613548093358140851848378606150949630818905480052808026553190495614978306344696802186911281971983674053714578436021280235562772615175615309446476406824567561922975746118597953146373073972486300782013983802878815966546130572248550129491154029103647389343391047506041714151979088980445713167763147623260631995708091255287735808630766164099876568791826809098291721189684707652717230040580249432377145840320128994344901778485446122379274242501659902328933682716627982054614902675764745182732097120719676513318588725367716034463743500184456272829526568216799619276543686417858807841977764311822545543467571227489493522364493785145732465147879438905856774752645176201090641900373669858673172515827683519852213017741145387426658946423685036849078538346496317018603628756141663108580320609305028720895571395356463539581631979756081123227672058467981645923322974732148891689015261307765650716280313269499531896688153032080021961040285141545209579535393211721044633364932903984337515570507206610392285792569761060335320024196788502681694018675448226815315018191197215276153912023316646771944229989578809860891186970522908708192130241963985301130223459110769165227576918680854864376682066338512196615893983489923351955294745896948742145784636257326876384089915374231439557676740320743208209681550243742111442989811212902874602835252043583192331719100593101670618280221992489960550428425291437297325501487474877852339156773810362913666771953343784855240280741352190429185379498019328002366013378525584680905605092328275165932648270586678852258044077523405694222846449149876308067288411770292717273760282925542609585602435253153759249620385214237238515924474066467385250790094935054551658155568096136878857121062544556490712756312947086028862017770268758441375583439149350321531327337793304086720257280797346005162450039748804319978524276379864243764111141873583618593644320527811923629454079776215076148486028807440872380068599499760537858114189064837949276849779214923035283946030033984093197979773654801658369479652086649105033204671499176588473456948228047292498048752663093070430519292189251296512453809736709946871861537365733223836310322887767918589688705828546209064375844230996860854884466870497063654033052131304619510998288122524238865206079202479601989201537491535736550008798427846549164953470617022590588756086325360176943852758572857076269099727329197486277922553433771853526320613979222730645457414829404437899258207086617383620512277625418608238022870532990213157956543348284955767161060074802520651342025085406544132651231998182608020426492537519969719468056528570480436777217101423666334522604060861673609123920239499862377458989049418364670567245351723048247825677153589086753969495439026360720101350176424925436025138894152204602721812156700742907642806812338709264619292833463703806935572267793272782739431877158330824436526440959957571539422907124698810988589208130041811690479051559823588707815253075492579829686097037576457662507839991445968815137828732036927143946333556994179465338815220375248476729734577336484760821441545049441665563721531097809388125100367166755910579996292341029895540600947461839513927945825929384152541961547369766907004773936511853993659251189032560817510553667739569472266816321237564942679004704813846134532348303697972910584368959243487839232114186412086787628598627850093870127201950198853014081517769483365235227863039846787607872880065463332790123312993769748781952207770907935690150674537779431872626455598924483955218264340508637884811278950818635828567508564276340173622793583934110612821026551790098712402547398511109513062673927357161795885811194052794175295177528203859268263606413136315763336734798505344816685601167815420689393697510499099303349133368487961072880080492678201029701433876704831676161736545728509644953076430240038581907372632732773289319848189740591913266368096401441234445548122775048739352313557645989798590470725888016086077817215325741325001633697363291653194080896400177350187817637900319234340317696575886838234709522364364418684092560148715756584983522012943116866203138044587778606655075308737751228572261718432430074991516561321013797527927861503476480632170391432317582061743806565549773597438526341360144804462387830439588820400215549408619343313017271564295111589885346731033874138479195256586985862037630267828561506571562739661685035003580458651969480954029713353952320129798163980706100679586394894064948194075855358628289900905620770028776958351631545561822366151852190667786864339478063953301613865695805629319335904315400578727001864314788950102328258335101837213804071754388958280716274156371672385941194300736047331764655953983145565532484849489892982502254881607739115731437068681422828649135334992617725417488900404459717061004710554963890914092197869231822835462032724587217362485779060152309287143572161463980867407073604278104250210242777810046269742767336200910654564010274979695867798927766884045190436070485611469498617029200592323951749230108215915007364319157472836660420544981642112390103957202611740368643574929835573898148769867094222778785292224501145946410051762567385714444159940216442611280883723835365096745691232270758166678367431319681920087492356411254118310266574412778603382023798467546565628307801814677078213367811652472118597848459281839309168054274623380038891993480408867490230644006484380982924273759843927227912678503459978363437247981127081737936800149836740888596367577724259758459685790873744912219170692260249507526873727781176871269855744849153606375166909996177428928059707774347497050022032337905031735743354766325904036995036655186682622207290079749260498629351467427293777426321961684428602934771721666384349378836289286330186388594192049075163858936094733508333190663350213687239092985713925097149705388634305785197517293035589754831361280080916334739567713280171006078127171262393081214185789582026532752551533271762973789790317406566437265392646597417869874887597951742516041386442558370098446543397732435263161546643576369507271000189424574424397933904679552176943337526648984144641245283105146298567917693066434606231456225459627725250344924342263120530237578227526125856072442937067821614458539407970172403125714582726138038069228944094962653926875638266826817301909893237561676266198433289436556751163436503915928164458633517429360094830477828741799713708087165756789446972337682962537838535500062074732547604027825229923700893974551949685091790058862257542672506444568235458987925370063702148021664949690469755295719613654480253514560000906864157543448824536760892762510741597040060210385338005692982018587419773932459463477521875758034207115486773155893639508405325235352916477885748183476191958541775380386511800827493071605326640740278360774408195894380936573180381044509047499314106412671374655813032402129900335324446812155805024249764854758359699693661368088078082298935310948548121798682113014033719043919024156879156405190742214525335004171623857059178763444246105578324235404862227577373040163554717688167075080092764010254014886051612313430152046505841893025119841554126715943738029196536136201882929129510115459834295062747059284469681254372232427606932109676710979965039090243608556918421984010757598388819415880698414151799090138050614002227479571583639426169888878904539956593801116657953542444853759555652519176981907001698457362993907515434698989488535034807917779964189434814173184706060485448850596666970711494628581908664283913235904766222932377926594219035639069273901881749584819919520230528303279353322801529368058627082431173293357451488361356992336826558606900753584295360438409352037954997162636527481347421014183471373097483243868433801873861617813350516777233627199552916089292149533715384447583469027025614813782481265120218225028049300447814718351593410805664676142379130316391008235960935192348856038237221845830500384381099401489578287553374838776965394347570030933574666085841064531031761281944658067828266044991937701477040941874624166624366859287910756772666348562883224702724396658203440242940590356341453492929469242492105398380740439881113593169728581603623286384681192457402890268807327520845087824322527385815743714537182347311687843940621477395069204998439718624510750266044764105357229957491900038414678027288131400211318823578839764543432409003079862821396647014878351652814209687181791422367721327672127535101906740787153652383920109437340703852721884840924424535113400528928817938274676065537391104723975694520865227527621232636222305901689197295519268990525479589858805526906624324370241709434419733049756024241185957557180100858796455582529078527339577072463898246153788738394382161074111714548865428976213981056020984745158940350873669046711345486251789547504045166837075404513445845562441425605139956639257663752277100337978097087932993512078601562810836248471272269635542573199622317026622067520665464406061521476925762255928983352693856243981045189003581032546643819500407392973032125246339903012316468730581221102087694269344873592118536844341057054617741315059875782219263075474736171411634850064032502486517439343078494190712577619498031434398837501690652573212337395296595794089720841779131961114262482264551326604714149850892885417336339178984074760482969386927105143920157618739026050603177767205091501608885451114095893895259746293790186362594369981278965090006767874050956008752020570733776316036818234994836889395752345155596171172197020257518696359076399209399580676947438816549917465354099057222534775389090124654133353079199724269832050907390884034399198219757851454280175324173088219407441013888598287051653662309780027068087057069853490935671182094094596104269418591831676122080108960034201204422168015654783742368810259800624811467744698530910896882724745798203254609506524978795362304080031943318566396518258252367761377502707960142674943076165236775740191827755259558900881341883206911079525290646195783830774572818072592668889010141970953877287591368655984284709394568905222469026144436623558173599571842467765921120781803946471594829022230281203671966868569642212197915473974384900966199769069449457428158986861085767021676521513056769275652210465530609356843549162439465941253806074837580709030156862130689352604324096885716411098526128695211404282042795097129170949542166339691494112037060622445578157897028109297844099321113607450206821334325470723256870587647455834077211982922598471331449040676917991029121704934909334817998985492877326386052845382500485860044436882912436339097481152145527557164930276083164146747680658832837136772159748890347255755828190848959328576897779107071359954591519350169883246408755218379298075935034970343137390998278629301379366693358644500703216268541241568931641907917197540241551602494277096096806101378179579497559615637138042095578553408733622222512655969115689658285697091531979461119885623389860752407567142919084081179196653757260476625499627303389083536483393471384708835299788393052602841815375113478377518630883812142262506049346198099688766974765664766643376138585518669560465600148371715934583936028912705234184278135548741051609458843738597270260690322095641894682728441120161929798317450431956039474433869727604151430087784360311115715529487826112964314195828704731857175479082613997272677520632553444281748996009870459556474945502567049981658178930166604376626827086911082463965754060480897959418369486771986722854361227504730733614822682997522890465344022576147594191459052270906228064235469152367740490736278928681474989618316259000213328078210741809420479811917265621720264673410332700447935826258131386880157160363941419728765174166832040152430387385108872195854467411124135476970634138946330952270701576346652101707966404646359750902912359960952021436272231740070432726021502705424880916005210386378104005261294171708760215206937215178522164620462189901412449239825180332259100415278461188637652563499703182343146300835179242553099519002815262610983220688669750367884877257810756669043429409950799096067910747984064146579061338334753065322245946886222606441254810764034256586498085925526937864156880297624005068165528496386734732036046763925104087155047002272811060327154867633291851061520252312026903547874420093584776238418573103544728442979639580524048326017648722741917099639627007430094424769975759299227393947363880697285799287644301914609731888215525857739656694560213640239361223056072490848840971381503186366148590673437403350271304916211807754199630475157815688989608836162363581216273914973718152458141769195380121001999442158546723321318459804413038710423075185852910635065886966294318307149167014192178349849253215989026903743927805746639887389635845000901425939270342352663430285128131060998825153902144118859319530014162209963084524291536772785278746384052986392076145200188199928278292340636164702517208372761107047615261245172448466447835900398382250381248121151940391711111261093114753781316292722974044610361066642696896022394413138608071198249329609216239023185054590861691083167858302535533464940869566082683952370504228515372579579450929657140372453246410802921547621920314736353653897129049949316030731617978190382532272395134562402138707275716885636773871356332222363163057518570357710559957632521763937503558380756745087065809866833419115589310800207550871257473882683002004065450681793306909850822083721680209146386265194210081187988501340686320192923329096975532122700047455016723634362891495260315038521200454849324334135980681809176122980720064348945870548806472325769872769021430848262522362735439152435326635936256647146134600934693902443709711440014181903400293815160112467721706846457414915687946687911191856949274211728155716520033941291920404678153333890732064668926853297406764231832992265066748732862615448204994037836088071737782483370381330039758945216879592835433731982164105037297759399181823193931474132035029456772961108985992862446394663807720015175106758222206824401204400415807646463368182963641979055191483943373771654301957512861398407060225025012936530516016623142392883026881285592352546801405154106349010891760411525022223720544561348559356800433656928686202181861284493504408781977284736439128269096922558147922919560262953956712709862079468186976184623822821138403065455087878854287408401587530805031054980354425130573018430584568071704193221061332308702796192977870708168888372372210888232125438866687138689002264379842162687331378199437945367424797444963606572141498779392395656209806404382126260376214618653045101368538332154400023432974975850626006338945604875023753384259696467132520052251876992431779264457840638628178498011452045240179462882359099532746481444585822423938567110132257102017204067411032740600090667211938515921113716796720930296147128855521003233692797866581240697170987053131025785544941200313869663864174102925963390837528804059181478307959299018905125461083034195044981694857319055693499195932253559694580762392342001075262748407496682304299864969017343797083897010232641087988496109370932649591180995107076642931978592375903505904268755904509876865356609346113660782137333505557978903446277707056419189434048080801904099643906583332471420536743442210450834646351920016303404220506321121779144821873592326947920974283078510491773783763829724067503316746905880504157308401109081607772909960048449464788463787198677009581194649538569949802889095691469150174828818952758822138847475715782273235325978780569251971811681981207879779382909499794753479019014400920763305400365655822571721282090353167761026273829940961564861275096488341173988852374016876548973298390898573387676228606892055829316871093141734436605113744160808288439137722401759933986744786339349621053586418734420755640189664659983857223521401538049598083196544860353263938719204504538683966426047636022959643361858576841327358543297090241423079221941352779053345891647448240733771696471518244313851704132429840127520925386332163871287168148832855616676190255374458730570427910298061356935452130835411668944136998686744856212557234400672981760671760403756950525471135098264801152957644772925021920058722638162878862585277130660859060469610488955192306291167032063024791504363014995101942920797591925366763018641908560593613708528466684377962022198910944800441221663498260950997496179744123978870118456117687216522514385110181557635825313121178764509862106926862994137261653145483976778594946512890245374775672576607333364447103171094952135261520609690098470688314116602615733043662787939128678631455363083771042590046518294683361620647689971919062161290755105502894129055606844408432019312069911217952487119251074627451977872399503296671888182030689122750533762048409750580505714381746589453640364699795621253003508199884316517899873066236322262132314600253472829187409621257621159643500490602272115491985385139749721380702248519255766858270766600702151594047007875292233215213523394678835645400579865580142667784959073581262163699050581938067416877254233248155567170818132203400868777123336259208599731990238111908126063860646870097353260949842160004274523411305453513106466693656587950157410340428505172694442866987073038151832830698589101567376548124729764313471011190784657115868344626065735529574184793634977462862198902151145666070459415279519664634286917937706533054847140968171492187899572282477413932532379046469459862484294685820026751092700284802784990076622482024727826601081764887347471486916131746885385595270884096863170234269224825255343542789309503650487871809504004724703980228253337353089431597539462575822719307274216411589990740528666432525806386928280194355586767194411677975572907006345649837427539304794545964282911924574758615350886034664834702652704374758831213375573330729708323128086167770691455423478402769848103680638470824894308564781683469501776181687519915744775072785379147809184983097666014061275750801342449513122478556144056477916763666552778354324972344054112064355540101609174472471012356952997006704402629680950208843603950499342354184240424847347777420190062056867895731168563764010030350242752652643184124578385138567280425848028088084566771875090510111647359389954448438886119490307827439898797594188299432669946626032504701760085078811031628418048835687560479713707291703213167299076395393278154280691020716162807223357651054142503820565549282230019273709162684241927840296290107342658354173580162916039147462361737828358174579638819932778226084406240783854564402286896970189834797035802727221088641340025356817350312980322057899854159676986380128923175920925802006339191319528486743768840926889471782961469922169338461822938507670255319374149691492299124563139219141250825535457638700819043639914744320650261905149781489601812625761236389775860059116496042321496306423490851329230575525833694272133023005613094868408878648038535707560517370233270870267921817555252526976479876997261929359659415517321128725758915348546886568893893731602706604361922799157957278077189076011123542728192338597723270583593380012208528923838125728067604262444375376822035579170368802393475734446662909870207960445669141784485851402993643558214525432383522821496407803691393764452864178387626450063790641787519375947970807325232873592152575280925767394308118685361892210505287200352176490393806104485349511854689917970846565641927433286865796510817656210913085893591972157137142547845001476142501136211376319722089553560871602831718907855767505473314907633678325408568939147868789088934482580763180737713383360323557793205010085108970992234179456424505282477173771140122578227634967682193844115159176498423348429169833043961978130366854467889346862495785206336649919591790038158895532174498740466832577870039234006720952385321935149490773211368498257316726427519011265073994795212722180730312065803453515425254474196772509284637085859985350392810270853116926446331254346036343788612241180470000776106410590099713247482200209012720035162952414141284314360562876619014061950048427421814756382878908947410494532103482653143934465852812170227858252611034994139549865497351549029348875105882356085735389892311031860202224875480959265082381711656318877894383375285492044474553239407025273931727693497511632105795312488432620033883136522807525950210185574863777595339584725147721554642956843208834012227678583609736935666642941864195404467649361278037929689259680785466364473851121906079613422713322231618604247076515074818718284427191444808432219250335804692758865191515814219684181552316561183822494049029011736278742816079523778194351268157465763334101181305273370384706194907976300108848288518708794145379297161313293132057912379076116667212541130376262153376156345008532478454286002260334357016029123424004114816617301727268363624208340228199022951464269931577087763211711911785659314286314227774000235883321789912310769353368541138881183911054799306749570740540305007118231821019673864915327691146869238487754659248736694878848014721519787584282877518935099703453110483385423105438940054317031061099311554996650579645123454776615476055383137840710425602543671138090972504518416511933377335282510561114074912073477440113235721057730354487478287786719129948324840540723059033290147013920086431590683286169166417550185416597601562054663858592896703479869984736444255521294840937353772594458696943371086836516397262919531678080578277634143918051155394583116354001334523788658065527974086284167208250521831907415002775241360015158705154264865897369116878734362663841995890323727379221584781719944838874496051509973474528005430503251086662353841632975245394103188073712824616597263279613492049956331446581839123965490195065353580541784486563127520318028314014467595330123638390404782349148801549381633107575922045932963281761237638638086442391419175918797742858252267926902588677191500478625898649338141929673745987695919943668020645425686545044348351753150552118655294558902048998881691061536766986234828222420118155033259738718505773924279330999978384937341413260165159077845871848226372656109112482101493878699160514376830146821809120758971506587425639820950020648701619279763144312190665168109336838289608237742070385253600601537098679086174130198924209148177228219507098441367852512699459557746315528085322859189654638778204444188233222071029606675132773687442282277172880320781650832086243721064801170735118927908457441010421509624942389366339721442305374065859767076772494230819364570896803742872014672329541179467233175533573791136153910003984723901024940685882741408927720081467015607385300486531342815865982798565717136560602043560094244828748865074282983153349528068891458040702719339943542643237472990063697556520796051946674776814270974670022921919081257869627910783232176491896055801126234943795826359237529813765233428747642345472819263003963022806232919612672293585644587934887194922566204892443138639690023801131093671380636398175702050765255789791872046512444860670716986045300284877273998905103564499432658456635635132731284183819021537102218779844539204156533527498533519765536463271132854773533124177484069662942441890020455303456102426427416115110278324044819931756336245856711840445218484189704025424650208385548894866155895975855891167743178611096748377416654701157429935112383429825415423254594419031511769897001291453021375655363001115218401923171246256007837687469213819068297433808437341448082061072171576465367406624228975385842317978877691224202503781996679407771101119415255184154974228512567743162302033155204257361399928972925680025338857925461841501388187037961002911571813548694264852614669544508830147357748856876922038281057104054399917891389571066758348273809956847022823812360647783588045602344936857639249904603719684386464371465846971699311675355331511161211394686662316523728393935952793180658263919206585571859309952072926099444566917321653052800930251464176463283509496055882328888812747970787988252442743691115776777003760675949724553723098565062552911474667969447798391447902402111482054241874182033498073456553780955474629370823707576023168011420121751039556272947174544404570198006320576348415220224835456185922853791416557729924906568503247494847218465028147403439238040286687489693087013288220712619277449783262561503432370354882503214094861287069975868996508130434796018128173826255344633606835962885518205747843902114084051923077207404562751111028336187338592287820209367600699609364410719685835573637164335817759623876907843291395882749346907583910878612924194153053838436617489922752109402726372830625519057264406062531439274229680928358592153317283638754729300434660590937494352006362238290619081798959552471093983160110537239824592161995935888328814929207976009120262881594231885788013548689920436732081492021531741037774655049120381070894498012564254966171683180787434521855508605265743635802389781885338147812912696387035945601660626679367667366400290801219791086090044559086296282940169608145276083695652499505582174912914384367266247603044945796733655059952409208123297489324864118612854915016327067516811563665711578266627108436458411560960357936670766239305285798354257533562815919726600707104894496070140755219031718063123542427609822475135890546647954207905611678447733279349424973955641396159522592135599739736291279622625345850406225484230215655997801000058540818257130846904902377569345049599409007167406955198338669089502844297594153195616480854672858307032235359189495447800506210693414863663894858167683434736421703637682795675666705022597239295045080976861187137149353168870587782089780125573518163622364696749207092938239772414785991517939001648944837828429913121308380664267266640489117338908048584062091268406888981824224770062593069413801295069435671486946060276909653925357669810433448631993078188906297015040045647616127475069823434788551417111134579164020087684889006919029332407437989714389659699479246684894038354498744841084265790676322016346180002293404290307553591861951550772994864753394552671708560866960429470743056925229015956409677440291370116930609896119026512024373667138843485659645289752293622406073365359380329742846882551794638716130596676684240934135733954339846369057852271781421772134908050974963271439734550821821530072782980962925693552092425214849138519983421956422413027114584457487961235947600380097438343626945986122844664091601729270356926714015594871283668440127717162731504838143719607960000957486124056308118483045172135041186899126871129537420849272433243577509919775750498733701120794258304836469253707962951378709429636527983178155174901551423379785507774677247227396899264920164292666858756667013278106264842603456007667314971561938824616063401813676966784510539488076037755704250341894642662808585552216329856284134642299690136251614481985654064441476354954188659939865094458711110719658767394421321607894939769031157482314607044463908703289218587391304633193052456790169732805154039586591150065262391269427769712976666806740534258471838712581757485884935361347773303493530342522461147830389776405590844986098657322756493788594982403740172018031761508392066666104990889245406762616807648829679608062571043757074203902892028118508505755616949437217812418197569279560798086064287546314418126825889154253023430627660306227291558584528360240984093342936846523924837714253487804810053186092661359533626239877948756646320627326956730907257981920316730186980467219775794792981286027508428470418556032323246941347475373452229978881866542197638067886739327004647508664096398213253163020300430789182735502170323075045977058578713693560582201597697297498220605093148367104668034311906377714585806379295747305865168526422641706278220915830335595171151087870837530259044489136016828708232632451381729052615594770941644562638828101778503024900370438478720826449930833011269399607669915626054526780017482516150365965594425607719281208384053658274473272466470837510325551272808976696708923953487046531387696542371538570655449811935836848577858707013343697468898051415577868515166416806559826230793842149504890914769628907203526224650771154718133805650878965533901765751698960093015273132363073243233618776486271174426255949896911957825033070282020040242730822224854856112528831597290807719317347444305418507811881191071942788571224819396036207552635606142874970400436594350313652733585477500392131420051138372784129029611414981771691267592698773743713832931204363733669022916263421418540983837583191386074186057879155899405269286631454628492405609197046629149203466947707055880194930039905810772141824308969288393316027469607362886085159392084290791173554656632118743447021019740105600312975015892594620986213866726134067776353158605758092026200912701787457019452930138251315564503136620098183331374966112386147119678648062445767466227363130803069902110365550806958714345621890879107859659173149767007038401331608043260986307331762195475618689027899347025681338130207061002698981072479190433463907809142900063159473462522326283865762155536389462739296543194185898009288134388247132473106321466844688382551532079426770366763650278834603860325726438388078071536797906369331415812943351378073465186049086768843533059664622100081733436754952825974100743640670057385104292674302589016795661907155921814610259849356856856687131101136759843773352065416220817148636783417684887099348756170282982015494819402667451613000588703273913417746345512063624140741401515159015498058824594124588959114978997290046492619223744765049502068976121099442232534676859809567527458488131888013658787370077487742058968499691600675323031974910126081567242155755494587808538583290740155465325189225360255621585980552038727288580839954820734087547366472266647720849553548219153769478829023550875105541870848159594866619112869717031016211144358839876130551603502982645787063326376457326764713650919520741375052653371815500116084249631757998606713977473415688549776419474395587589212489360018597910182476518021043640233363472191443079966266338339664234558102233443495371006473834610456856379376692038823425153693247468954181523639635332183952116797725298126039820899067646376925534794296373671138434063885396776040433805092546382888267827703397185284445100598641919337690296721341444954493952456688694893684849927731449826142418480069959462650004919668185650286269548653743239578514451240954525928100831857768326608118339189137133432939817844475004336734872112323987079480355524849316707300298500269486042578979828530517734251517499243740472736814029398209165454991285858235319505738690451058985466389812822315167021205132789898057863662034396250443208747295276246908147272128013192666356234636153515725684538577766429502845878784849084348319299517706299322894426519988870152192192951072138150258472805793202510286886179294909697558354518875479279394655674214862726860571260400936701297968038160931065105207918787795617586210073344952059163274845278145877923465773687572463108569364948317740319088150673136749065533195090194879415320092389279689772451220248207219861440754646406238817232796580270325496594501837103074050282678685678673692136604077669005773920339479938394122732995883278716111124727224168262949874244580687107747292287764939377980080496811400372053904938987475414622433390974141501836456320041260090997745073168194745435014215703432210717088162633448684122798039422068493984828099965248165644291561791964045138343296307011308311528574534041445865453203942293931798166487237031796400478273683127268706051453947472473469517730285702354561999639207333316081852243231407120171371032234817725512439812487061943273606276558349032558574795118638231662575506686568357476068651692490055802514528390660771294356931956846911489572089745623192627922320326527070150681614952449679914920967575566285082857842331477472586875362095833386309674589782276367423837197931408560377840772605655672128302055327371169081950951820194999802889406891647760552999244283427741450205516082460082569673102390049305151117348877458752169250784961534902220842809907515498077610008519504402431132132479935010525213174391137396537342357787289735385859369093866824046737584520750586763197596890125118287636041041951859486095930497502143474028673535835301394412097478943293090617872905629347121304089633695119715411618310198522019532078579042456584958027767920723072718964767740222206150672559203097093352309442319351397033312665100810401741907032248549799083444640587306446075444576100848738522276472499419849442249862819085082558833659259311335863037932866547115531344758174372401327712333161399950461563315334075177043513974531456602535465818337927522130996258356544321333125188108440751689110406927287805271560067680399207601648676751926884279535090813083574212516935678004488933882557178457530681714608131788246993037608311001562095437408084435232730449141740608157439839447815378779826006080668664155395673362356721054695230359397415842236627303349360353419141605439076654278692672694406102239800895458827385292957294645803649852034266264077647770662201117097838098412359984911467042806803200451475915954958570470284132493323778532035914831628295802952103481796584413732388118105262164968367386812593728582163737216380755942647906868085282992882711027415288034259901503061975460426282205999828262282989007970749195069185972423849772666642594396044387530389816246822845069705639765186978482969429902529110212668182386678258639013451370543036868140050696953359703062492677537307993647167716191107155084938787032742459348002255088248831467664463014093831830760491248985330254690657893038742973995096509331676945592499084377751791004177989454666519736387638901447743662114356808912852799931190578055893052914122965586092242483749459034047623297573160189909199248899563332859868935997570257022527299391224618729184506856911720106904944533561648494203715107137714166172342269311252675206587276012359646693457637687177930496910126678494402492577267072663998248096910023036747237773418235986509388261508940047341832260742833987112759447618115917281581436932929512645538032592167320656731880099715536477986439495603343406013304295863416247492394922712470628576211902018232040878512926693252590824167235716343109472758511807365275535798747677729866546418088727373567590471234329469643983334190754198467757837484073508406266701045942833390253902170588750454966055122064360147692442335802576984679892741547698978540703971498336132053569886604038198769464208029603057207041773552028947827053817937647117235658986046681128891902869288800682080672088942073270219470648181682472036435481539362482583166479471739990654499947099892060305986667434050334625624794005102274489731620683574590231216852600328602203224088075191204269419554833168057783222905821815300081814872580863097032942880784572576337096912176445120874768684065304597756534273317294196178114960382783784520397310387294944596277043973914058554898692535171335873366948266696613100793766752730023360871264317382924657514133441775462822812930056944625522054308468963552196789087433403816869764299025200882059958348798429793897094326570559225658272707792637717826265877179560806313878943633370992325997028673384585585139156115578638371482885521926994775799267393880275136333344916775120935863329234213358341490610450145067681437272919673841013602080396312422271496496739092474808942148316824680144206335117282968926783258305534595032963812113714833272085272348409280333152921193636354630481421922180345265907965184342037069612144658568795539657037832750556847862661270048147337255283785525444055643217250113620955476137327348236696318250158749281629986578153229302304787830424399595182910856560248516762673140508718345160433553167112780303220691513135602974262942263352739444374555816181129437405157889854962609691996418284921288542062456883159960835452194651997819821569322433457156871502159348532676832679544560645660508494976023937820503870609704115227734107084375670266082294757186056226410423822861681409416337903759309747827420866277457924807143116341399442679719108236437143858245506051173489195838427900489407235481896527977838031558834929590332555892655028471550144550360633702897331023358288324456463740790923309016974137703934382114810595957436794446291328942008324831167340690143429605702416918278087440542661254192561568032223895940911187488947938986794582635835575296117516063567367768126847108153854923929295864585559727804168805725896472991571014766559438458785208225805948132394385867758882390344918448457763907141561205902218160795122571887550338391783102388381139901179799747861925789763196225570816244474874031356028905276953046316498043644015101276355658720760991052942745134675977139748293446535003946454746890374498781471793697611308889658043826329395769241680108248948906287283188083410294523428498855421188049372908477936316723190512802106934662876227709178274463932438397676969512107307120676331875305342651163059485358073173887968844517112647198185208843079206365540205570991294642606553685781794283079583104546633227042520673200546650186837259635166956176707570670462558795322692047120728940118653884286007381334459061503918409325802215676323811014838894802683150594712852323083158775815729660051561816993292732419859353505207478508406499200126973912799732211497101647467289286531304763712906198621441745069548856926344017967546326358725959373957732380921569996647160414307601579921253556633843653389343098746895244198419512215314489527395363035831939314333489912472590144634180800502420327494517100298906362945130199074270361105441960984265063067023653372072712963661013410411104812084193003842005597905382050950067282649302994028782154773574300231989423878049281187389763316161254729517814733942327019846297086296771764224374173502853486452912888470794315192501124447821580679344168637294415199997041477119182008855064398150469207267985673652305401714566051548118458699034359959982952684713529866867124741252993294280574255656689407954201760234045947662880230229891437068365647285434891150338897424704014919324620169241037533291214036280935468082872562168120773522146229523886380363080291096260069024634760209434149007576516012906155942361220668232257777361735734999709616467070694205358188854790512338441929565060542730774784692600842538816408593235514884928208802893566483854639259455757347563295184151319607370712124051726511548101784882071215933788989735487388947650754841286090684282087214603218333852514973241239607148954056397980503186552138981956528952734468135751332860951503865078923966613780445967884912459958480916701346188184903175548805142235204701008026756344148451789375200431901785535447175886453231360068298398081292006457547746996054756825029371911372524423706953007873180942210928270540681843781526363687561118805299930967127551427072787211486724349321066459415834683199171002910338711693803144200665916420531409616720411330747441178638526745138150119780676357254171325582716718121747010427840867574611615186404767032991915641887694763401930848409784351998410153739000709543623772051723173904493476271926895783592217019350196036516120590320101901480835151316405812810869326835679033838888366555393492119430890326962868284878989481106853967659373479453713051531135482613580509942134844734613451872239168335964914313333021800608446515814388313193550223936414947145892183273901868203106420077181971501671106814236757033552723832938147578443717348225820248806019805385225321354155856020656857874010719155188061571604132613489684726387039176083916943287595270996700169169777470037802947383307873740134846048885932879216309946131055431349969259142917260777427247088523485506010724422720712310740188972787072251905487558114358321646478247434831392600831835016426092406825955715344005936940725162503897687113718794787644581264614306538954491354758537938245115254586677386105645993417907796520824245542314528149689899219192392413147357076137078851553758178884279417379612122948409702586148197117545136927547821338509975333023611280765988903534356789743887574008851010932555323507497330574798062011119090487289301878963381238459362531299375747396970925124837725248157583106922932203218792952180078577992294402446904177333598421736666841609004742753677473893257733575249349886455620954571251838044080799424445961143826240629605560122137706623614895802845428655939909744978419991866226129487873657456023951413820199654025081129082479324520318199608663716881160143932308903224555313897301258939259656055827999827678824120710168333919468410291445288372725552164630123563645922101101144914057435587570723131095153656069314012749113094492478783840661801653584523339867174582412549900900474848380995817677305604210014739369144541860314159637199731577705018940567823494591478407087170570640495030684895805863654184990658503884649151684506911748259488180059804390609331302246508478787054445234565583978669299462854188994654726145380604796066736076427882989949390987816141099807954911359746599574229257525808662875889886487372159679878563269000942813026696433967099885273563441329658113182566736591157017113228730737226834446962552905917739775313770374995883601904801662801058617791510227899120519848657030908844975018246370568232991117551669393256091944816976296812752433314691543566027080298469226009125235544498617761299977189602840899028141459328870732447352702386833135693549454430747237226317034714827553376004485502779786161653001411031555221978684786288634737935706864472247597253063431069776176276486002168022699482393791351844072585656178809366034474167679127054868253143532879493038770595330107780803792412585928652980662005745235878005943347555975656732436011365788235955787880775746946794290378195565341608584932683857904826497815923776556546773604566770888993694969104388101218490433797301313187255165050587311720196380369122538213553745011571986240844586452420571338815285312808101538173811874338526742635406295391052671770087669888549993823217040284551701122259827094761404348474531916091219022492360690645424356307214349467588874228684653838519899752867871951519468516974697078863124853644553097372597790378777181279353198761360419804514065791138294642744187105299090909263011179246765484061989027621025856261431402943453871796467783426955570863765792836040206597046362334584218858594619728033063465031073968312639062918322698171416690978728108318305533507550942351586850512978181092313640353924900050369899564036384821190970628831395245988483705116918847974242623406496287756644501463543758742807909427470262143792318232254293882843498330982722657924345420486390653031165784542233371777964264671732898950250782182376454666877020638442348517566367745874680772659384512672843426741315673501178019516618102312005687397575664877710811579571126503986002840163484016993409047642470224118096659878443925002088681542130155663518797178002302826930479167400663246974874890434312581355701419547789109402420480311919913559303919601315521962046276832580750574160821167240762823753347539982912968725684081724763351376377163372223605885002887717653843239900685331112319137755731685797231295479170952785269324781989444312954265406844612769894038625610610539816195499620551651373000939182537238978672191229316941197890402760202350144733202180722685103965678952832493316172843787243914005032780293448168140248940304254945347326293704449949473523194128546538406608169708390701450656557082754136404941832995074634212763911163526240916865976206406770957690590730875340787075331537412451838646398218458700849771611794556529231128152891604122033845632994873963631382408593845118822721838859410019046024353756930787516197676644954043756209871286311471655463246179794643316796461991142256045552920970030856390058844738848499697614948825716163420029895368290562777697437091945521567160117647112480183668249341575428666231311053396485269345908792851952172923325464673603111364434355798356066640701074030978721238261383045355307708107464939893316009686532916214572907707480791285777732911448946747494111701307145408892455929835745955661294069598124246252821302156723889012190885667827864596857703326797413249958900966790153421304634125448005947609424909439291970176388046347479592660768393170314648093931923161366495647245946769648882958000930098065795665500599966548772878368782357334674104618858735816927751834456161779414397995313929312256904075778017220419624940411771717125007179838102614435416144665751027511414319484022831940593349034237840031673297586220943292940903675808408450046529789210105599071888849354508378607481281390833868649605059533376034143289712067719657931849020035356350164223808650182964857943596828744760646312866653496693875746811533390530987345321243112486069673256016773065884730413047113420849506795772355575794560062558488881823172655439597500074745824034977237267899567343979680257625432400229576047171803061299136238894684092434447855706311677539186045404933490469622368135781000628245914982194325886353303178779107535064093751569008193186247383109888456932795569208959993337402677096368471993716177368839934025120283748981861401819026870860335788400687978417414910206960932630184613077205829434572348915304150493918715277975391638517172571569347543996810055362294791729541326451977166943948315052929243347875502630397065417000479412690449396170819025706592805959154415829081452811102832919231529377502879660242047228031144820145202988599249867388927392731727372601046494597551108343221695587202867254235723473776961995415056689492916607492718468615387675918854470586191382812415234813841098002437101163342286986159422386014217835497533998238910336950325499771708330516326437974820397006429062153991862510494405386607417181651837128672024995112189407953285727174824311300857114466419238170732723123146661692546116648564790345585212344390563277372634983708898485191975792508764577425662742982845917693143338520298174099813604101663787352925041784179971068395842320225515281051040540176002617713520411087823351788909189291754441660346136269142209819740810622753272244177804431659407433013713316836012958523694321976637541991474457105583559216146898916430857016511717906134708397149968855838188979338430701177084831760870517850977306806683885540109188755202209258866548025686663277424512536809641601997331347102541266148395539673243180558105032937927904724626487280001409108040731792269560470047263526367900082296701469166648911345172428902559596499920144760515306539039425716936385754211337512667088220360990246760632191516056281567440223865013337197498680920077984285207693410094172146066727373989084245608121894188481773884135170514127887636869147385493780377254070991006693019414949947378208868638986901798765993158232276551696375730421998892723225602985064687075769121808203082922856902899665278805087819562912701530181018286844264013966932646178406016009022434669634686056918422187480118868898177832437802119971017234593359407076291546086945125635836861508452683293983297464398855817093062609182263154629175025712081557929923031565267431659949508079296084966997199422736828951399811310804507092180584347646971125961790087761386131536251944711488757360837732603255125340917930725411474167186312510962455793185987912113347572385598423628271997409882014732657154562169904752363592073384665077067394893111228002213213773326395810737585880913434402546175736682796310392635389574858485363464700330209728569158224162634606734453519270215538852777643013509928624687662294347494689894994590305683740594110076314951499145136012518575659150876031474472551261685117783418953265292823588873931909010038319679713494534059038620161708551526678086576016758129860222791378805544389121411498742145980052646679339850173812197214122441810616231689570513622002541244688623591407230778284739794588574138903774071249765113919508204835006336903587567792349787153188609975235332977177382491806522922854548840314530296488368073260884982831807573134227367864238379020681961544518714347401368207500811388718532521079704293160763629057477056416532939659319737326672472137860753919913328917134175674174900552342523994740316031090477971237065287069818365207561001252883310875529984152358857476433465155804508299615784851267510992749040832642411564610096562785498739301543440455301295913713738617341347636674237831331780134333984579881239896283092445655715939284928426709869862836924200911062343388511768272923891466399700082176723200059534806649062345015664975790272527482632655153344721877949613465042987625967676095911957997724309887309292627025807794237728611057241534168020461161390424988515465585417406958772778017402184246253586580053292548035653994055223131586099147775390359819289373026082834522160921371558492322067499922196629164728969300198401918519521206533678895484896619407262009525159207472493279564431241070827743883685388570411892237572015244667789991062672799357064081992785483626397903639398852126128091764199831998644309840387061809796373849770262062703078246332412361007250936854650406265300023220790308540519182479810560311202045911661624572710801631161208951811266251622676341829095789848810815845903020299399285568884394605675460807777275421793368748517440379689719084641646281002867062749991883579979276714914099374310788784892755543503520244783211599222046753968805703702908289653788279027077857209655773493166763714305421862437921544113392993303536957189353098299781985677684422800828985431014303906834576674892145883484595684575911388735843109120210286223827691297956684740736394267794036224224977293218599068267128139626145805979527691956865146986012821501935280018484502235007140642638659908706592540607711848499793555608606427310615338078775871761389738670415650368873301171520709403653817210974129495620146557047336799695480441015708167736798160737788747135333631013641949147342626681419980697172854726129882811277798286864017561552388597843342012029216846306643410986539325559972430902805252744557962581430752593877005414878171187104967726272251443676900689532494284275597566696163169473845820816566171294164627956770214689219571884628001997228826141526318684051488109022150894590181588787953513996001134384139741208206862116237358011075075396858077938702598801536431631657473633464722624631747453269749557974074485749234540140115251074283082049327913340932203998143744836470299462792362563571221635661552404333816268976281303627199952316322212769331497038030118206140609449255340682851601408003234390416666554315235743950134105230394260483086825555092712738181230781328386856376076362582611234932799534718214373546301297947282188718113349866465666815861801493510479253341585984023608978008277528291179776874311907025782457586220780446166084232008843356617848674253874165364266559215790403899697478183529819889258230432480205894702998150414683369846101298374106582693882249336908535789484906880151564323190800126569759319697503501837704947273276573351947006013065805916206473778737636315100845117157152486583216021107773701495729969443695050437150454657354227092098859704015468555645159055007768837462175955172777626991609213430176439315951093621864799255255998012587859001487177336736353489585816722981418095860610435487350367523506790290165006889142883005354181041054380291142510565129435450770809870190127758989373201967092091960947274461213389608985122765770779887040995894764310786027723262193535735398637986934664784074362750916533007016426620783471891539162803178887552653990063701557026009183719107975810419474929768801659176604510478064710619335318501851445300460788621397079606628963465374421287598298916749607554862587946639246829381584495883613482983737519008821796709452311623065381393085313798311399437553976300561711312788178801187775410992019442738808052331116674530371084085261296597182670880890546245725570131930053434211618947251880180339116118537142411356573312043864300723217554374184090748123250760078085993176740764990105806984660169463814439454644214035067648420310290711633144007726049147955490518213829240051531406426901245865691848969064391545439145375685169204957651688032021836984393141603235675195892557224019931808825102112209574241959417442702672657090622481784286083476978170170868898188744220352071128542217117804291693012482095004466907597484516368208097667179094078683387724269269685865777206929945632812015773671605799318206643538216862444278949324380739349909836390910593672377487680555841015833038227445586398631534361361684170606255168049046990411200299245356331993887632145198524690102409531421177589031062747932117215084395908897175220026385085422578493532485704753400496236301774268106964595779873247266710076443202847450429329713879769272993258138669531808931613640285515293544771246557807844968629871824008804645055690689686602421698886903393054321646659773445882256724722616886939034586757996582773514994004833688217045811049149509919133941888071350334018582535322732316820349134013450094322722815688952381980176119748837589418831505387791742940057764029882254741910507995765762721278961066998664727227445824002722426704340361810469308358283760326966713453835314844358143777996323414009144092228290356825315940151555728157937649625397946279283643608427583925522956518004229993301417918322919906037008714022270264760662875842769750960881138933236938704523683530515308159630982066728401739407656552160810079844651326190231297373255326746297919220395570932548200698596969308282057022660568912748794826051920264758711772632476524323137489941352159831750813080151461902314730775529005129422274292685003560378904207878926258998819363433943359116013705226083305073626558284848296284641727219269349356661685162149761225299663577055536199203329698765690221184430907780377314123017971878465550514402709045464153322530582245992549331509138020355454132804084226206795763503193020629698619415185625473913926857423249540582409399913014365335287484316923768194855357591095843027285523731938942419914823993397904021800382635406345083987801882458563917341760653587885103062923927287213448704912446699550307315981502067152536299459412319918745497797565989615181700486562458210474947080968431439125188461089634971041772441697968673787605326779497184227818616399380301227923303543684939578488222870821958402015173456151434622237058078376687067457536938762758247451672406294344366703218297853777474121024588775046781232069752236954954206125312840716992921032374963691850267195982123281403633387518711883161466175461176710510295235568840753784184033761151293216521780192168082261715391059450072230282871624712381742924451504096031639856984288759412906435687164290621109981147493243915756594301731361211427044182984917058843024938561233627311267355362039372104693219179514436126555271730326438891687973764863040852659428346157367389295386550544934218950726466956061394513588993584253580879959589820849972291274945940961460909216671818466690405212591563797110159167527615844953137875393264621747599819191018112845166508208888243886439077350265835268995186185259535981989511556652383094760760270416800161112207601050904490074064905088160460021426945979308925500728766706671975764888542719119519979859764653952026284985258622981940355375253858692918719913547691300933449963769162962200166408740678072073812734859132464374191004503604500029779324697649913574687926266098051488163533962629357781642073192285993483404978109601515505904921362675019529787715935005250617952333745655234062839541374658166669535521132405060598193840091743324056403770489842487999790005081688373599963454591535797146734787236118051580151122092402588619498936286972666738207999319350104714402372536080766601399499621540908887997051321616974719477771819883898883618011823493980237249171018722782876760009605312960779891609460662581798493933358906537611513092062342336183588213903034224693553421293857503192842617475452336090421227751259955281329233719375917709886396019944852460804634061920020373728736691432968031512532057994559606646815447491248772135633346434227145564705103696077881682685807779797432483803977755468903767562331656918331529565784328414557947494689493182626882244171746306948597466677599931648935292364135432731538196896495542856771148558694492618385950756943175199754553173958814535002735542422905721175212525856424655802481976102867574067594592915714591965407435683735584099089635603911657831289282756366048432297307283852808269971766576018188017635366659573184753166498168325163637638914763754045947717541087705496748610981727380120822454631980300672760661826486900080335501608805737138514196954360521965570368809602413502226923940300364994718795924899567642210029327541192524395911153392740434344839313319016390129189455589310276239186814240057897041292514818042925391733101139247992486419842867368153095693051986363781254919157446562590192638077638286884139913694197514927582271510316686663708004135405503637283188480562880524882891297126322127451544676488992221224141698264832643250159244693733557125604677511282005654408772988930006060847304596753297768387257847045129798926484756616932977114647028653034923630537531456131507096570998071463136729940719776624805412725596991173886150663712109892294888399591881369503752714989107675373271323880323849268198982943678028891269986042714115610166174816825371029222934665795591243476648383296589627542983381779948868169843340321429703874668569023472869601770142977746663960224131068665757733493242818201030850501665749284005777094010896040800196100997616460237534199565029040583426538223149706378946419168737671241028510753963524932800774021082197282066782843151009099151837833238818782779763009200149625680231211921872327492648214398746797557537033342252244394464003260810051616191404125111753017379965791182158021243923037367102347321044843901970240709004088524762445081621428434553645348866344001782737386580972769376526682707103819572075032183529486667225021811647433220915386904196156320556794742784527159768242063656036931405999209937762160438235258174096523855958838230416141763611788555871987908746733358902780659328431754983671858118243060645282829815862284438259790010834469693161584227802317236290786452353909307321787242529006356709039665211028275631856676123640436718489787248992016536738652231471846710175737371996696757082401322819550881284738062890374737726451067688442944631317186658818916127097713196583295709861314101792032670156728971664887926870687556331598206544452032578407129376174049961299366710171566370610311375643362016996618278806699541024616344303285149248788719223320093042038301946514863149959179983167583074010833892453242741877374427704985934068123867510859755736564020436519673546802413406047746072072593064911130524226747368820822024798971770224946260704268921822741725182567090845681381769531412544910540190151152247970838501535721870650098670360863581451602275791873605905904312941553718583795124823407676489402533257741222330434869202968532850283709278085268552969408270954126490917459080971813415746533883513950876153863848831228664264561697441102131743629840092514890705683246394243818147426533143388317813337429183918091407356605002965929257364990431781354079523484210553009254663532933687599050668159844768964210290410451319915444975503235730883419026352370633856326046193016327976220187389332691089310648341646650360728368938561123735705671197487699029193085254347880660650775271314535573225028552858050250956732307906257633723195591690168238256734119979388063759273344177587937818828466468292953694972015183451425337756526172793659210858511592448044597725885453244659531115628190670062298620692837116066345664767544603298778150384332560991753530021763207984250265774691162813980249311745375004675991722657424369211140879411996550706219293039347139261651692566661861679228126584124456023398286133803664016860751619227448593906553626921212774194209473223956893984843275249948392082511648216603321708933093117060267013631975196198573332884350489744431399151296435572278389654327586684141649363158889016857157206528198829156261010454867276477213238928424869974924985562613622902903006826762815131913587337279057478850911013427921823305165244268964933442562780570659607551242189435454495127307268633662094304555579599837345572427155415466734039990387687617457770292680604218073132916080586807589991787431675703695828891254999318240384472786418190746119617943594153746353385806194027091255007154302270787950824460809149395355652549054359134731879213412032435540742093406740432163951987120980820029393007820598505480599068681379337755104643969632817341386248458742148215526594373358176899023531740630429437901780166255772070546952888040117030142263861966871532136029036057129427552903692995542718148146976483409016922123499665256976006222100456840353893359912474028027455918020209895129299957241936267036212978364945818193179892628261358136962235210459218430229607987192308537321195515591357895582301767192954424177411537624633384554326073724548163065242385215988115617451476627438142184468214401968537947491814000881229024048024763115547657161394291321932476373864668710220150925206307122762860585791665889323222856316258447500450504695018049886828332489008502104886497966603040727577811912221621977363019095984317863924146384650069837574344819860153184817158174056431045007442639310159842117662045919800540996585439900897961513759008698029954891088096608145489149261183793083031192717800378872147407455726989556862262554169022160723737694754862513404396734290028545093370124665878038258196676424978237995852650620792113835320600557610907599007142410825454834787796032437655838978728706112389529989887760441541567466926234835435565437302637541910909903380480919457257003388902771480695447114001938155595573863515543161612528332557720167769959230613350319682191296602492822773600331925464083434657797035169843242262500631166772799810312625750117194153600491121501076191315778036498193510917254071174133102172202601457082918019518852613210037821244164384537268871023664964979830645899444926807821708326265475230889453592603685790392209754559719948567862807624721132979192996404384899782804760283761525145745658482494817219411788930830496543246425303347609662295752190082765309936935328631059250184840335695851092946829485737186428760145654098235140702575989328538514639189207358502370411700857837304338715549701798525291711426902084015059324883203328851036447117205489464847519774684703944165765155354542086234019939308548643833718168882074290611260607441510895259266172768733634287343055921684073876171227930331365502734491624160607751835506704148443952194230080988320541885273171118464060657435209620217940797093426784471446087161594973745091408148398765693240685225345354161194358450276879435437540114825755827122665979449030650066323575625577888157750664286384059791012032394353138770571722101912381581234775103919574893299557561824758149774590713194317724384797382914191996897248235347697710764838089676676562804686805779134048700103734206879870713064142952590234861819824322340812417101552961735983531765147351669472273749205198111183408376030008930068136625913648979163376563599301388531414400754943267232216374509436293242411149839053696766146746331520564977109062574368760466342280247921919749544846468023280098680882731751206832723652437501842170658150534167246102106074455103421162417905467838267316767232054606415537990023823555630900037326718802431082438964335377559766855002333121273148457072497929934452156793397394194424300771971807635257258870909538819883465584628906357709943756308980748785783616228919889455897468795687754472996944334439131791392300208530558492034174431709304495356731268720459171751595082757325871503405564730520355114158703322084405948388392069623171994579181368964320223832704829227620227757415917569615603221381512068237723929758263336247296727134603725330690716836589700190700382314640022989588283249825171588352184057968129164455904439159169799129034045566081809793078557698977709383080093874929233615906682325126270365830668877892894991581830367820581546974810762775916910271674780917854405628188728482928415394383222617260270426290984524018974045520410224615105910809471540479405235407791288754471796204461139923650219169821491962460683766526217233656619367280322918249247093974588711036608492257239581273198408331992556706671077010478117133004506181092037434531208422034589989229748179463712031414382525089119805522799081772893542302230464207917940021910211169226612032249879839644519712062307621132991800571336484732542973108276932642944483606728491370151869830609453601073997770687329971641918544992739529078944149966148973486194175653678562476726434341927490912309899963791070585789220139665377807517366761377750145891400332909259581280645849754200570549924791115900669158515274620067113212598637843819767224405209112888900505560289416336269867941364344317086375200590383649690701441060351154456923528556364056582496442301212463842012104900442465114232641502055651389568892317956000007870132965819070692619856055753665817954965596873319085109424787801330539823182773771073019539060007327848280932403094491690041600620630707907696900646357199762516603312960098777436866527854150607331564531383216106459297619634523896836720314210194328685218779120104749953656692521077189838587096045636898332703376997754817074261313668523154235454721648701920846893857317285926086965352856978379785121938048301365610642092474121500623818590041018198790239463062601100827311249341335100177528552507768944639514374783756914312351981688797001676514258717941166245089560939501567597842483249089114609829470199892207172208131596301267511917209086395281673254534843574421815597905609623714321899514516257916552931543026411294921898247736767703738579803417464698062089551401086206589729289946625005320686201088669800285512449800184887358647428573094563518189255329520108337761102995688343425691622472462928574115775093097372544954991206078142280777650613252773227792047403533444780142911192729346732992365655670351124054784193810586563119404393031168679687877695007985832860917028226279905744900861117470354493759238655838084412780568448453571729456747965757560376677556907999127869712164480345850409305420320372948576249502643523820320855553918712848620240295879485478210092569701696963258106573018371003738701785805048415287302112270726536865486516306345119998987549799859923426292766614845472960542550414711894906441548049816658382053093739888173063600992803397638560197456860460108231748821169827613409432985850063394000553971820676498963119623798003325833391882503424001344614804868737373317739153487131662043938721659756907278070157036795641975737322589630452409378292480424582248272574664549772989219872259266966809738538261693859232970125461346770614122697784939276406656184670712255727898876145716241602671341764195710032980396429482116947008713753865672048670909034909717565060408509076330674269363103271525867648384814581148415361682935724772505945901943128441649037098403588283438163534004844804048454914593649542644042061573843521701619692851137744966957749207635667206153893531897473340865352700619249730047374077672135589793929972978249724998097582092768231708902775982537450486396723673220596685724580884972962850065055669614535413378476194494187860313800930251821106028354637945617617150139100738816028908846468935699209032314643353516717403501363844410528115459578864763184294475599913778688150533649908842395740130646578863802459820132880353750078654732705242139352443448350342365914118955976633572284737792076494740438453360458466940428935663336549319739784977259515736388727138163796162269593466267169255852649239067207579182273775876961793835151309450055853545988054064460291324362467159551653668786993252332187282200747247141033487861819638210086935618438732931860564181009192969540996813247343657586995625350875157417272841730492199329670510144717513667073099799845075190271796096046492061177525577337570528037881790581087585638368862590898782294221460100411156244343785549900414321107260224371418073566040487450014196933481144040208720600302798081666868625401509240539049178110555509033548017947611335246084316757755032843462990715252255384003947848140383488085049907578772543484362501768073802057176426493519770089260861622586359126746648872216334439002369108880190279793957885754813899376833735255965115478708264781304153604834512653152186300437475012080605619196940307959519434527054623054057941193083025621638278221548536340296531343194598887913878424049913119023315950022497713524050655238916756690060882566909513007281721821678873972947046492237455982675873250007752456398051515767383038664643055591047633288496638224878924069957044988187242345977022527973188194913829753083634914348131112532223094035813728470921903455348306256923538837955561513358319515739807425794578815171888412281774375863014084006937143945676005972242237333424277082144668790440305042495916581235461942675964701619545509316628062267590924283433678891167540487010599754274757520887249517878166824142792248163654879608835629298261083519074999043390054952943940766232168595673575009567280497286645366053173572978348946982742220255974816959000084897751634060087463487214429410413483592194440734920585612277828597009044086789770797439104931279640536258750803574192319708675936412097448587761891590976200763014781933450168454206125199589476715240835638224454820324115089228575813345243542417968335750321927543766372468847731554981367145151512829766322618032622138617420386914850919637601037275046676702320273548684743628829489169552519655423132362144425640025117569049839644171396703918304300722544223151331474213062070689907535348334684111360554287175556295471719284700003500738632267225240537783702461765368106682418571424490085756544726213109536305657013793708250587295706168421684235306852141873189164517755422169872198315056432772840268943309213357614629679896479706393406750378188024873828577739983124887011598513659698907590336825407543969701330684567945502857350909368316220207323768851716610907121831534598320432608375245902781746868477875336061618438091260000940503560522009459684563178389359790925040422225508642986246003657710671182345792425743810473505146854925977261752086879435423797526783221701649665386966977190893856880392111366539624946800171714609970245278595143125660263304230636921588857313080962499447948864444943061071603960280607210000240230203108646104336447523410150589323869166982367670885995277365213997966676496141172091156466321219848321454249517607541778082839662368474760646051395727495674844989932816237887585076916940582546336575579360905114451744603584447632439613204781104202252677862175300312829022627008072789650023893840267605530161995363455177790767769213633848856280037875123679252114197330616639798369471025828271721218557174243425523413878694135055052221885644340100047967481168594360906545052670834494474603669405155762099694798098343328541516043944657364729511082585534298846818220168584283244601634899572543982161227740195896537528135825472776233863660591477863572687199702098090394386245814464358713549019279125851834336134050557505989379727078453172747604558643514275676806305100795469349468582777646668986836620819609350947172355454030987956747574527522996839363482200344395778502666208330073045001241836635984641842551126368052341545755376791929503775899640271946570082783979716657417602704004988739076974492476483696427083829815291788581026727572200732030437490324768973797901713555619781717861519803541782672638703618838209845542672815515166930712737915848493048167081889492236671616628407212533497683597958257500312623571113750459773390598903296323039172400647068913168797895766777784655253944107786534985448932184113101890864795801656898756845825118021697106638566989083208651377368902538132586043470636152139883817197721609655069981592047210312282470335512731417188178151178417355312899603614462393223796156406845820797091124874338892470250140153744964154685580627186841606144310060397122986494241001667571009694693799706125428814464577464855256860667140600472352381776438492266419720653586650468068613551478485942317752780914144463700891122613718649754800847438560088656882950491347304487390708304090231331774042364552457486408837919704020758560871191874792746581295580215774225346327415092867524715287083187443823630355873489589475986892119895625080468801468228049766291487330703989551564364337478814083654172362152803838769127441953613145661273688571103334064925791032658543064172995977420762445430787497392831732184693743779813251614951200920813468876466885252255375411097482425449784019591299502577003340136963632301873935992299220809460469843931047547667768229314747331585410627923131759185742443728184859524387153126404381364049590786232308948546679694898162602431466965195007444639682072973666616668738370740578236871962655814671842473783223641724192039160568235299845549799903295285133563650978109785139668652123788338573129715601912357221473494041569430446556125282197833339755293619590351886525806086433668754663434764634797583308561449801099972834497613437988817700167808033699394662566889549005312504145669447785651044320895856134566143627825729787385128799827651036075265863770783701063787871198724604249869887950451107762473220046579864190744741291439900854251302774255150024221069144116375099141053479440542020762351725830339871094517612059012625961552871405397959976683351846713537784551817362273102173445723621085714989322209844589510399880776172277626672116397634646626122416137867989093448409205273182261714642229754659585704644579747874284471237197625313093827209200439777949991774333509473853123487980076029100947638239531035496793670749345177093500534297070686133471018691661582909886076477595359868263247746069436380239170870710114969993513886422262469892699560974224493742627700130351874301437088556890780276899066728651094022366644025285423377661581207223366514555656569901700542422424454563504484472042914652263241452815656492451065778119409931922561731169162400285777149052619384241522342280324852456461766660958501174900202741718774972776505302539505624866974594289967640450519105273562694675243694902317445789333928767959044079461400604392554970871093329253266908700721317768937672656671722354996577534816055783383818655050984543051381678613083233748021924314796876156494500972846640596871376752806520396432502115090483174420996889081803994503211086904000641901674797716977621807843617120907164442499007916605302676979475430112944318528136134048400750255872118868128133447544106928337223035052225060516337411527812518442310270926785097918110509454738755026888977734267955590539669837040649328854758569597642790453408863472756737861583376871090005321191471762764436367197082309145990862075503823903494802120955859938474779116061318954770491686242477593121001589983566200968289331878151089194140221647278831108143744265979105166496589021573690131195008528446864694517719386724473817438068513798715198408148854908031934661453241119478045668732001097600891075170073212260390104182105213055588993230669353286804782615816335918625533351463506428090230898001949751221217447103490883635845300907534066890586656432926401061708858334572554945405733464591480122339414666112520060116422882014250320979409514867141414055665630231483458610322774252727622342292623748024455580868341473130450452794029344354982032031247969536096917653843938917149466447252554691213798339212320284682872279884044330471031573042189542347888851334494103795958830519189692607844822011107632399618418090062951044004350340867009063605219434111070909651003244489813035074013544343251720721063720184700519671654941846953947071127848271957147847639076094729656152258566955812721950368346429373148704172389008542008829436404503261073593350217520076682050350276377706091378509875761051380736634539868529931735424998237389871979130565105505628906756314691255544236642262382023382726231718350240550956403307491960719080925435962611080631228729058183081766007135575953882180206899351292458480195155509312053958367451553132738111704849464226770650091726466309601703146571296584931447511686541581868398969233479202057248882028855309914860720012903804946966925633464037141434637502755087475366375577661611430526905128727339917552078216228895416690755330742557316478429607818261893306558314471123344019706826957950651192676359406543514233463267460381363450135855248995610098755524391452500156960374520022081461525921214504328540581224379513407074363464476122116596733196792519609021070944644454431195273821526486726434340961413627838403684819152690754525876453783781099509588417013442892372430778411514337637703404642191959737796297886144236892471094831803580092743955925559488496940669247244390475381807896071451992371167307303424905306031471050704159939842324526708403813005168532152810747379301598871088775458462634130913893968979389404334331703629666257590680130110454651895287725498066250431956071712864770317831687572122762241103364978309360212009184162926357703679252115672341507083566302326873748836048941024436303868086941817676409867261670246223169541770007641001928899471405343103663476054478786727410671143425441956860211981415960832812302336172445234502624333857550955267323273704008963665164780414082395153849022849466480854569900653462098773831785441712345832228855054992893404432914323083868871866821935682528025117411174998627979437193544693905629052982876387622480250970490301479883685716229457255347790870239095553143301965432221390091881043559653990437836992587818821067706347244193519915213951790684711830762819344506587295265049350125298095844518056929889355866362068910703240632689118407807634615073641922202271131360776493783087948606960919125006506284443347504761153460530586843700983983199269527137058324210899804918636006935719270947957880235570704918110477041430162715895785919964040721305856716878375939674190736064217196607092411664133123472038905199099240664908687488416533902160040072058549029471338790893452002625230376463947032360721798883799088549550905680693292476525555055642647938176319568614994187011267090336185474989264797443088149041814399021746670814542229213537779234754317132147928443849323782012790035953623997211956027451457092304276760345566051486873819463371122882595656101404919506220989545610940503067508424327263706577314067018238476870859843506952107627470488651436207529481885919377555535663107897176701169801648684094047419763246905092250222607648820070272203355583077563533584991334529033767959896171521929898877295856407371314542335193699542030601893957560938895667588455420137329534077038596464073633782884851157401154944196020981020285185650101261851028462100924478766380855606775476453235011971760780346855039328478429188143937116106456945038617093836512134807625035183143990529558301772853633808197088498420480458276647467765440403145609407243478805350013294590034706583727678729320626639588495846906010113591491193072550904530781429866033595752863237397848148582277095220934440792180891201171824503464940729507833432093671179497286990433348184538598210885169442678700646308961706089464126811234180252555093214051439427882420970098969529274474163531285289039920246304072774944735499466463232153866758448614125147103602717367655151950354668130551581852314680847176550654043757889404612346075327817981533848238836686829321434965664714207012582015640012758206299463426171660181913692114279996928461189187192810306147210297048113420461134536165155552918097454740902329639763504169013510521668385488799692425771509218763529864889947535463838269048878829816507977415511333869118119168378197689607939177344825067122072189973207272876822745059395528447593257886941263903499231083275248637143446396785317190482608582820061721562941464163136035214541882205205155636494609963665286572936928907763458311623331726142656073466488774373779706936798293150667349984096384785425899394173546918657013890177131611924277568026742996850755067363045058200710240599779192593845779551739879073648985661365304042799541339000451174842488569931982576536728269918820318203399533710335392129019586171394651048918391732072351146918647873454313975534544006617761499492642302338352744762679874910487027611625613885086880851197194298140928525232636151782854582612846682107113788963549467470674357203329775883723605221515796404498221429204406005675084842403314309573418783980931554729430894237203391113423970896926280956036396433614395158681180677026377575062786361489243076571076579855946988887043462233945440141516001671708818624328913560732479687642487288109879420742210384152065848655444159597856594406237053165989009406651382129242023703530578718166761536201061032257299426947198773962422057989229303968165158893194183914010565168236453117905021065763766713363454786394775156561943065807101746584481707339401374959626804580926182076402636444680877948577271167642699997254835807979011476491151545866384303601549534866315691126741605315783118897943584677462392604240769570552060441151330816609363155099607802762173098849324722207401987080983738988540069755390617764602579244905735919332431693837734155436363983301488072000943284678774771244478962501159795190683270548590608991351791246383114065289886437151725485005771818539845790253101414338877850528923358176107632691993970596406442634006182040738636977124838709247535558016104168264614629765729823628380825174736804796258147865877077326455990655664916086730982941688834831003060972725475024475350351342472751741780808756732799071311014607039125707730154833669734807157831149922098811614373876007696260408771440763152846626928121639170635133101447399803160670477477772583054325467642569463208198862164564050657925022757376736462166196327742961218565391207235122473943396327765231630973943700151538745920228669945854276649328173683359910390180597871519833616450225130385943454262325734558454839557100935945474662232455473069935628663866698631282142393040922067824923158241175843656489043229445155627513039372468626841960929626154052033880844298751629163153343229322680268098622513735924904522926056329596213674380888694800622188727075929433407135624940205806452042028168311290887868560500538285466080895673622666059107250577184266717573391646963894036498628953974811195878907028238665562564827764377670751306199613718726531425711320901181636081539318382639307458558079070144247486830506853453437341423600371666192198095209693874584057440642080827549026522221053719565388613782386458841201240253973739746845857218567961809729731384041410524226971615528790090606354621435942416863983254934981960773472823027047158196139681660660889502079609419543415209639667044885223752836968718658675808398407301265092080195190488736992000538857385586577468415961689370326413795744739523967161410932943010360946418519316905442315704625676908732281380498841377198509169892461026999177747312914040023095441041893043056717875823408844082406730286932760196964328058176998302630693976359611232678937673768884670780997396858289605534482193121124091349206996783965513350388163299436412343861633039789257605226295198896800285121678608276321119719503878887541868449740829072115184189144787757577115615913145599206057112914422407297775858173277374112907410973032305818958124919482298276761947955986430650885135814950633004731953415340897251354577761600378095014364869855575473029907969511281266941391050062589389602232025123877822862257218816183574039074741161966630785943391876900703896053874470207539432975268061770689084225291733903870563472497759308557309429781314206409574142941894734180281628094313252709801029672988430026526103431645553436040544158781937024923950473851732908661980444893730700151828518845859890676377626586240288799137651152078937306089364494927354717136691892841544284180509486804995796670553098816164955511940566113524673610661027486607030261145144636144927807416930452109150854749333074185170432888920976905130521978880602515207018843551565750926490193294994858677289020261617254163474433998951030576100168888784469077982043080719844214015122475206389880055202112873833628612603796795612313368774287003516531325740460396894598797980711505765548942315179791630965047743147975815245073053218131461575116951830013955562034804993289973012450706234388911686196527542708564463351905895407355450365116652650006419872202716340487292846490992525219843078494565469480059179345903587168091187843827910185899885923327376141390406662239064842334316075623110108664635467390449477489401912776367668850086362046207090492012205744169751209829550677541814435929135683050164547480695683403699550024452080747833711184222813098582967908976606329942864345817476799440342761029543067744612768895814170681298790315267501366529065143205849139811162056161203204995576386801852080904130041681383745044145154161541319223019388826209431674161397319154114304481330023227130546544542245829911797890914190980599296281746754706684669915085393215737284404112586646463385012179605003496342235651221138385065209487689360696545957494959478973346153169796824911733101712411445359062001596970759621172379941615700466403336236006510602083194819166242471572358194624963190274319219089152745926434486044288405504076627201749463513736356920279625605630106220364003236138052630660760430666201585349352872896146689448175881967289070684658559213666576791937098607503135098615345490771313739771730182766780777938348960570351758950606314734789427548939769023299193904144247636464706523168804879465463040886464781160125341027186528266304508935016539106157886985367693211933332451642457005038664977765276135831823416319529019008078152288071101882294119782974156912693410582744630025644491186148160897500124292838681396429212122315006156596034761238444617337200327761091711561848722945068331562396100941121360194423731096495984369655773007031488860160122177352973086470299602048157030138978912053241750558283648822930811637703266120190953711962044119783609866275876510181425667796667158755555619200090577441356241187323226484689793617509294897221069401633788675029412249977788252561675142169363889179953814735684025652451501520859824654820013362909787274644579487925705859372543273704780750140934999590542617950606503330060608417490612003901559633711019735534468175507691295037273075300753675714642421862156840151359987009565852394226271989019023809083367710789939731276914329123481932609482240332425199528623755336168444076317275038067535044481374035986613846804216335747256522269685168642239554747066371509885826071636152638663338523318592206295871779465421333907954998488458927324584558863588315306623158584885317742868494304137155053362112946271258003733475609771366613555644448948615336402255101750610187548779456417243929341298550164302414951034122367083462842316540444285102290811720894514531474005717392261597734803509369836362361001533149262183318539321365560638809837772603538112640804901310146265986092706520349981217030793738942415563665260324732742628443867344199644977142550014002416811409408783812825260660588037078849116308955881217347737109676211381784042196025931525045935475649979541943215748353688405261437729692427167657876575514645521728459013587774089628992583881522539341899862450389431775832901674013131136903329383474003795021294066736210073102989132629616360658908645955400390055592634526486392620746691289216865667619886135037747276281303292725188719277391784880921010269461226503022535266945832743679409994172997628740097524338565164795849090095786868466815447447466901891320230809806858703851596742408303305993586771250077791141080241434759320765652021821842842178115258547477600616397914991215586654391593902090239929565594498934590722683153020151461455343106328877958048054252144444959260300823431514948525579978028103749708126586754411786350154146077881883779167499766397477885116035921755854797076626398061823031151577349537429044913406320728820291115206484475745243327575471202601358320486573564451039556093172770723169500906697447394584102955080826369771759104230105641043660650134797163139850146745389822645514961964727190400545259317101880035590414703544292478992474124523513814956560825760425902683295503711173591375263835478551715689790928423206501756654087253038144427584869383564207793954925090883798329673746551669301192959367556580342386800560143966846041940374679210653024565552637562316047904564849693783203857087783265741482715189081352538790708329530098229842742254072954933118410114858959007352240547111344892309998533935681702220124268712669870059084233299745811467342677839207996850906450492096616469581791545398647667631609992181066953771873049482386944813617365935263730309333940759640699784100991348690968371770251679926697163511528136384692768729452339861787953318032116370887328917206587862489832819625840089029924655886027863459825708137976647684707164251831167679793110046722366725805188476380615814293622239091801262318863876676538199159209266133581089796275854904057728870165493458143882453047244307517857697374727000223718640885355702153600690870212482291513840255556887917008450842011957523442427670487404566680795132050484967149469835627625584384455491569031534796722274332267225185731265188077632381445118926717588948922803646720888458935007778410612528585152400686792126990609677068508183366459428481038223174892141619200268206382486757227559642966339954991545050243922288584961543299222042366030204980921810745966241870654855923690482736729844056901299994382144888841870866611850362914714565313780515357329857606440745684968452864121664317965096823548349378711869248376243644883604444040519563913171562021108878019528048894959962982902319948651399027147035591753358881294822010294847074267037314534856754631200744902827494645814206791295527393941595687997033045556762450328355983555438859785959342368371566946087426313212510818860026671095797979333953703542861572904761108133887076853760919869919497131796438403688888531153762340715595988259246900808788250386382033965974396166910556090013830015652004156035603245406892441533183827353276155585396717937075992577388048479982330184022352995290967417607062860539763228585641052079190089031403101866525185949205851403958481131185408455188673814199033474919730135750349359369409609484481288308018916334221516861011110125452030732972713550573928545578063082638535958509465636825106502855150404127964075434079193330237435733128519834808983327598760182593941877642190065709797052379700097354414389348799170940891979875255720620743039023642988167426281371299280591135591558640697674729801867867236491367650641342085888880571383089007338954607167130109088429362865292873271216919242902112825435549742632015841250871141069889213387193766135991069121728020469559377932399548704328365016911214202025064804459724737599063687233738437146696538103821260221944820814566812076967236968825340718996713107498277966808104674376485102694118813240394676639246514403116094165678105144254486783912488923574344374423732959042564877700719337015988947376563993000181701779029912341448323227350027500931180013945719822132365055686289999712591545361293383517025178253609664325901716782913248147559280131598773924580447898710952275757002129442650603913017992770750010169721959875054405268574353979325363018494713151763381914292959585282342050363051069671232976767905907240642261830937160468970790317352102814363703328493487491096554847330227110389385449586121042081851860214958436915760774066514004720592432789593822513693071088300330067437906709050399669762684511216714002439751844431349497180969229305514683872814976558434416521986972061047059799728439121943187236298151050799472385880867090065820662506511223525765258110801932899541604119263539456724381476429546545459474165448089325991145435944664235652014326597796171356765104871072536567046762804225953710984362476365967884119615354904392441528245484528692332738961047955031813153923689122106870838449088963133413056952746116246542375911688825818377411679273115153599736771094882351053906393835520810059164013718686563316617177130231868462983462715633165940047501388491730311822191648943703427705866436087575509496328781830064672913903213117115191052265107883222907727008568872065794731428932619563848758103784741153843547345392424165576888623718446209366751228934854277493217689386099573567810339804876722857013523478947090315961219828338072179173226616992004782972445945483983009276328993631380502995138897085136087247492071818551758003650209407647150843137864614601655525799158738512981790857750660611089373098009155256240192082376459850435988598657479496682215963128660390256891913979790814788647943748382501185467121480364771835865583554434193706594568459734530546661618025329404457054489569293904881767359188608112722555988798858383956097042313712856193437700968139448831839552724108345206180348958580697186974959859369336368577482375274773098555171508887427637643596198448313220839494437082603946416954093634762197794983111229099272707665404562944992697629646029279371150698686169272737364062301667014775394753872384687472890301460906819063063147373873248402250526658791852688719815523242150947989056941348201289588944233958217802638578758171842960038897665856729554437898185061082338773270636411438865090297241971613571421863369510447877013199185712623206788106053437388313267800110544701712313216275916374751378556820477242825535732325579779160012488061450055849773410151551455164821649343631018144415893278329904904186210801288889447964122095096178594060456174086497685347427206747681875849307118919465737992815797502388872749589363835671764382341504327155093461889785764893591081575061170977509835458385711413560630378128158491493225110478592752725719145301454515123655612599390547134487919793318168994013744440729324043879456582280876979094914434996083326284587280532422121538907553508898415825452035008857881724507095356665456832816980988348108644568293629717495796291910398542837203579338872514390391575917821706351622732159739285993048257564143696470780361688801991838736467214973456534238883841555413449485204551210980512328462622298893567548388938826486305555501213503054204050254090438809421960773449530553674847476421507668181846684136905401968593858331786038429326937752916100612460508720467356874604996427449443236651673390429018160042230789504661323513720206706681847067462520402078499814425506461541322935492425740136124785327687395555301276695919506393180743292579681745141817556835556329663541295674763534353898149302497660926629265288314948587816400105538550709406888122955450317000206595850254111878739190407081805247516991417018227982799410152326378172418978790227447057656052613069290217150290514021060482887465200145083525644410216801222061030692367245239608569725114902862834351901925184810243489917167175797466693211336962995419467505492156758830528298223312657111553744374884060895145712029350699292532074884443032270150925377961569427356129738032874553181383179423222367606102193892812580101643301199660569337797038586906067364833993719755019669609041797830543652837295119100254941813582921545266043804953679271722021056443592199603714309050982768667951004414347557436181236003930309247868205811053951701504753147538021059885018736129153419767725018100266969919027633049041421691440425570711450720430868273939705749542960228974541976555138239615350092390939214881713228007892567190224184166246069898769628206999469116929385159680308193021840008794140573548287310185782436365058242681905050320394201124690320257086569720915571062735605170990865784967121500349407095056913692146617545086895692301783522789036461603426747425154275734838508997771693890060720373386229493202377965885812614375507782342653105304471847157695036328155018020273708175918531995434298926201663187034811709245935422817419579126667169753810282220197226113643424554628864763423091018011090378442285343377730959516131933620731135351347397453207069041086018484086864800108750289030226668468263447210015377566379020738219430239925128309727874833195471495681421639065430181203541354430442443575626853959005291387615233894121716975153103062641104908026286285155593822610818796884871355793578692933650222135810349397694573200347445486018558160090305141853305945833052400649150835754041628803259165698581826940515985593012431914529981172180133616758953399023782614737147093342552148741552993951161240619841205655281292828043454258484105236357928510764162914979777764267619541013021703094523133866625508266522731542264487697531219154638919303688985304245074297002055746737552745945103199368995824161360557559593241093934291966052527355844157928015660209871509398076004727406459439025429302985645422055812632532040319808177116215104371602306549276295745707878357675502433904803414654738884273720703535207716539312288355815356176910649765478979596802202928205015770863760265949401433222701454485251244956748003651791542698715144068491667030801337643560226760550069668625676931250297279480641150753085675320133181178475270255815819425316927121389628756207923357028760196550662847214333115065151379540652522610236330775295417392933645461638308518155419206712917440174918380602452969279616261779679537849903732501380094026279396147391221125003159444786344497473001458290958285903924753328510001287905870751633366891510407404792383273167155058774184605967756512872062600066587372871147213064220140560723722629597221977426061701248597506585440845218793718917599519221997658721790855119562010078313803218546158029511299890184086681383060485735892754402694571736411157787576666287805670363589264838608395005847502736729517444725463911398855895987971702109016150304309283061838176282355193858749357290607588145859991153685746085969507170181655649989020735447700983986549429091279298544783141929339666788243693331767026075066933440218501918305462156487983187592383308801520004788753405552157787906370375463678384689987417502441695595996569444715885382311307915596375825667662047958028313702069494941902849574550816738586331471484955152246017148391301529222768996832264443963141897071540588844368086666793471045680679028617419250759526279081044429126150271391985054667637200461038574242541493025864970146199496686921785769020802410375456146870526982944128124826971294079228635079884457173880165400633047491754119900090242295788819411328133752696231826002323271206539384349015974115789342361348994190625451554488043967830807143235782930278925713357380023732246238570447157799712658853078595048473389734331012400394688442121598269712508853109871345231862592820432089372076312358186137635968529727837424880573379356659085171418542492376392643627210423618833008211940339816965471143230699029364876879781989982066260520174431525748362460226060375853124167576944384219772647153213569170991319544003805686624150132976588729590019965311497874701996634212911329659506880812745264932457923369002995565997514338677676238260770011968423607733662471307351292055145150956111043946354163123343750674821066452747783760007025357080820342353666750812600747419496160348469731081535848057886296028010748970308720515670666800709952648661241455749814518873018239810363105951021938872847717465892526723912685506286199183074911651988902794168389908345693201794376873756262763676842985972589522948733107901368555393145582018275908890938968013458410454502125847662023844056853349552254910963158056278682819758573902379708066560523841396193063634474984605951740423010802126263254093247497060571771214556992148548211326044754838601676044209420915592189826107497263674728669268995430672704842210514449767426843236290754645073636580757134363200494192176153712060306000066497619987973876422753985032690431188611395304686521383422790052225558440519668092501824004502820338621496619739325937730610090421184819795488821864566171005780326940292046727324211542545421948389041567983584707142658794018855815917544409787579128279970198794709838155921990791787075175278496758672162818518924970461552319373165619445901422028384701115156583279791869306287999160151699343585680430256763163153688114672282562154990452040683277800732609393690706017994011106463986765683573631147789460919414424216458327621475551300864261036622586120007070249920128687781827076299312478647403199772408815737031680424626147319825752103705461632361193856621086415299652184537387800508636898187067187270714558196545489001002516236258646698758136301208999796691669044955377768327133788907247256808757101079460647106486363763574493864197816767015237588581429494090806541235749226441642257462235291050060937752986560166670549482854630862333590792390159112747308442567960663388751163348645653212125940226033960754498875349976778093792494782681106048838536516450406950876426938396081324056515319757178840123391327230887353368598685200030595258503495473337109229516995765160822909894570585990795018428621807563311688079767239273427486570364331827622913273717302398129611807890569493904523689747155992949932767008739048323072075946650172340072696747808925719490289688061457863454278085591539482342036788487639215329380446024523422710416608426955246852922240074475159777546184272442408816559854461142171423006857624488174387388709668421660421915767555141618541488493101607296102538925057232916033749184065227054345387601891352472525108767842721962781717924140612381569938413429770739182885495224188643660931199220567173357228738293780735332422915969291552924366651056108104112624049671145102054917834398520758395195634673550096495091108971909092933807138913371713840729651140283268468473079652157218742580704447124037974478062107770469261711820306870027645825552198830644035176674633819704096995973469620196885245640471288809228977776462799188777621172627288882186612321665956924696611441443415243517320450425690169028624071597713873467897647158551137764837549018092216669603554168622987814406282035573884307119543240421970262726954776864879329011393028725293185509556009866544974612404224646611551911103779480140448518759081297878006970611154652257927827217133191259926979210306886032746690128711124483668197533988957667397079128550157524675570919314841092318226405093574059074062532249353957328018926084921964128354066062391621306191083596035132445655546431434014258862396518667689888668370878530827617101516974032204622892881759844284346631607973956917254299525492842667423554516920654851754739073457023173161216755644739119700095544238347261872639181561906044905473835769113689203413650683992616248476634410140516622425717296281346930020794894399013115757261874904107871675557462862514027737161465485382907096938701926951966146507691423528680216942362259985435291030787336231444739421263896033530319696231067660703640845281826627172294578843652733575752796300834015988447392997380069486815669038826776631640860530218065159421730547015288652057999142888706651387690551047591608498976503539935313962185800092202977842216775299272166663416520502507852614607898892848068612287516299450997004698703464935323965157547473845485468399983832496411418496773967702038794144974844208056175860986605565983208501367134538907659871811189589744170544550669667399155374050412615370833507355000315086152184155558830840909917289262036731967809772744082568348282657177017946638373752783048597460669326916748984453607422709848572634559222954770435247821549853200201534460602788446050374130253147059110866472910972314391108180596950323639496651330896215004878940826844214036991507329300326536888058549382010850783391854435238242204305741209537173011087558975873306415695701415390418884391667379280050754530544435594613184667692493539061820066202095114919349690517827815123540533948732569607862195002812939409609215737282096705646088244191322469607206410440361878857118317766918649789263508972201688248308749587112793699450890485562439087986484317138894575891096184102033117545908981255696225569541531058995595275062637582914188880040400134479818986010597617423701449363951120522532779401537651674863508400940849832238942890784805998395867071435954917218120732290731126009213653008895679392247460586734482412164398346812615032502768821496709913111496689971733860841033903747021866873801382694807423736548400860677620061634920506207217181678561169020551323335560520242749183802414708361630537670279658343898654214367227468508657036638780386748043949284248879451512885852808156661837008008930508976922369010710949446561171014935189121374720502716546795306583600341824061371657675720010250869663614329584464107442018403427696382128720904573321648501585975241774533913454990229805844569024824942445587946002297776948648650778131287297682917925936721165240313978084528162254860604371385371686704246366985524008607795327321696243019475937008975995357202827707006483229144426507428532712406900413810081603226691825197710238530055489564751384570608620707701242623949159543076448797862317751178810142163474266016862087710193456341650186979728628008348635887375663338788994439948535637776506792969408812306259234331335694898041044048672264080136218341232652639380361161007732469581506727050617136975349658533501217560459012021483266872829268508839947811972881616739683968666674300232592668497831077955033947480564406319391963021892331890416821468201234556652981603177974566618595391175500993243646629080375484589474119487032570591716150239625587421552799915172709434343013976479034400085252741326594824430222952499122178584444378365087115371274104648822643065427169103541431866646941404952415486755576559937995917840599858167164557811826450263763363281653054093914360995008939800157235583490109552482893876510948981764894998641405381430784889907197206789207918139318470022237075187909950825581727322675440868965406816741128078691648139053823252730098808144621559184623460584638655437759872690020488797051229097363214679662650228422510367670020042514714931882916783220595476215264897903162852593942627778999918547259430537358840396289294679173491407646858154735626881241271023821080522759276173645137643136150203503019364013861743182116421626127248365716642589408740267011956790742164247603720890426568157583274696772161708937284135027833795286301218674363383975556380779476493072521870362750063152758732592954801965524960411698642993279009179691319834424771158996735406208909481784269513808723431534598364368535885627726114414795593065958226271819615522782732582687545205124776186740112873864153036254967987044875103940152956346443236744549574251065095949883839082152621205729403127920254224754492505072303059284618788149332887612928265655409779328334845670794442432997403630479939879289677019116824105959048633713544697697976909964750155676213637728116226432538594048729119787445492072554215081526839829860941999202661847835302768246677218134781812002940863166406306505491625055035463819985946674290264487140874242844544913301986954929274745920098844557226194467742993662758653787366057240100529097441440382034078799934040887924095326963504306896486570613048662301366934708996644524581287537221270636103877965067044504122270615658935687634924405679256923069343458746869208658265852006123515149915803571447691230698729857042154589088790276281312995423783279447477506995670485697260824551040393968317855855116382772659359751937548688729153696750036853202377494307269509960018284685258701578511407460592782930764453920554221127709858825352386191436539526895425039180729483236399990908599168129052894361554583460750736170446434416307273818800738141416031375282583952543328112669326332979080871021284980987851061185029342279067176620029979539483093282695319940710104146813179857553656992302619026044529247745440676212810232236473464478555064229370203109013016667311396544231493083317092751657364318243525413711382769587422795660026784709264718169585775332821983555692741914685614963826637212345706202489905976116070770079858151397462440774590940959256765218196805134682983167009310329648345751966862358245098549038503539143827798192121537034999838796033882319529869313386644031282669325817691224694846245313145688404634705415391464473539452165364558438193985445080649599058064343393183390833344183373217058641196139957114693958256868105721034308821108831428612859827020424360420981345656482471713363129653724080781255322571423101863320198995633074639152473124022517525426863055057564784892030653126984246529994824871224109490944580551500571822432955742317235772541102888965806688054688367229731875003371595681406854305535959784272919438851674059181466396812621642716513379269933324022167304268263905908200763279214564613983598152100704868414321413552158643715274061275978872398333328935719793418179945920557468534559003778699807437851998621579744314526611606489744723588553783297411223503927512606107359980160683354450301881560300325090404534566324111085154616378201409242948991052874319012674780454762418062199162395862335864015532495733171823753849114127538018515761037298483121784234417006213176610281657659940201844234392381678852178200163295501983123251388424775230309206654275046358340488793940298736612248364469984244587426375633056795455024536177799947532440001799756770130303642871790510813002891367157551209820894108928909445067947305483258833132999234171391444862954510978477303505424344934770081333707630524842705417322909630829388893147044391763211243264521321764817352754738981835798043083862012862344430074740777180002114923096441921167642188102759640154024564329086808018672024133521101692796922620481697409299708598596267049070627845578903310195943274656200857972115008653987401912671000778661421307226800037128991398186425541660601484400960078343125086038751188229581734817087748088092685555071378953324309712685913212563626783807417937726024159743048971281371399733859999888412148800830149093728138305197852081516760948523590452200542459625157762237658353478507035551475516174791347642922611977380812472109568685846365946244890092650672799348021959260345537940426377355018235123055128339061368239875887872306845782495172866772539299261603281332183774869245530260198814249728809043500616375056020175839048048138336146855738730585758079285505978629228765159885763438212790530061620701278214306908145970129027685065423504735077538106891722601794407532508783298486426928157905388654340570055501472110750344703095481227316018653538028760381197325758158102132644356518037034989138683134396967737682881436707568628362962053430860437837594673640834456939462414023698054379612790457472680307147841051296998466824857351063164714396224516864643638906804866113428229021022012496245014245916133310605178202830275195610164144221415505492952222386751979300463399232173207253133887549211870011770256912951879640023994965144541603196733313495641503774763451911883992013811570192113894173122868634333792871529177219055524855675846958014120082496329082742047816316598331181407879832552502925472155190340368130592291473448750220060696235498460013753604117549646689887788786195269072787468393731847878174534694154631380600600063169997588773756322384400581717183189452098927163258985075631736811073021867821385614037879465998412005373650071996018831396883871020943675456752461140491546465393872648985054467631093069155641288384698052950272067211749753492737643531719034131178618019870889673351547110118726893827851526946773878199334279197085197308895107497633578253850130060918525000201565952497703919641899483282982105909322791821893956849787737294730357408233343591226780161255929944338538920079050732782978059176729699249632319552871689530233825077550563330917228095582573947553153466873464399263215328663667087452775382293375502734140509305978313841867412333449654033637440191424003116948615852465655705704863565183577853377596070595404999472976023689567795716611223197242534623513965398403220171891782047580360073881996684996760731598840049442004440586211480584110215540854539872331888496404539994394610541660496521595492536660445090015964390436426612469314169328790525948457471513316563274222193745268065413068708907872334113967558398028620749580190765508495080495656866548145170345124418343157515034977994064477656281854514926163191307972254527982267323412182229709796888895236422746776360159292432175700523383942604410952080227283389169955467693785729608494924075040090287659337262181232355757818944330968527571050039400994313687302911328552500671920525031882167534433587819414375297330256675068235271243667098198600521137013543525884247043857598932627041885183665592360209967726503396186442917325620923714537002553475724003518563376400981686338306559861958949990302027954599803768312243702565798882285744765102249262237193126415169431675007899291588237991738278727894513849414530806448930483029415384488262649527919748903446228119937862265608712824911189393619912341457757415248506694306279913855850222027503283963119083489911559456364430740800462566169036972695190797014071469183158045887467896676304398991619488283008513196849070428032388401553199312041559938309124263869634833468884185045230402548736015885359742592476273432893224811346132843205029773363020543214759236633061571128962160291192625946657401638354812838379267883634088023173706019815482972098902727613698263403430525616227659882682094645981038003764402042798837290791777976452312884874631606747152388829555398559430933434589754304364010353350547139273047113475343095543424872783830196048345534908940059104756223818315413787384027392864937136127677702086529704225864508504528488234488989729726406597932514010160342896630304548434650707413387708481567044587619682651920479793583889126185616089886625298645264941785004849120071900087965037741329307117165098993941609331104308156418322361332126155187233199853330156509670021004765346411083885225646431717909763995960417014143020126254307862796927945750858870668720569853346693462240075757824685612602168520559585746981666498212972297873788959787162648588765544873892230969425403447985156294499711274588273175723116280231023910795859171132849669176490210014864556682393254187754792604466044030321044385025725003724085892230301275281466311309411829991411937004864127224729148083130786782396269309446467628605052067394896144351743248033637719522690072054320290136153572274731348703196190510866900446528206962231192650625382427120982316732883479186722391546335858518848423548705668652963825253076626194038181683327993591280277635830922206907089778834821709889830638907464544712824748928049219819118487564501342485106298792136000080506286375716434311585605097832061141749639772323290876582323798165783517318884419774706082369372461025567164841414242409071745127681154926625771179684733833574250807839852363403668138256202537997647756581775232458152645456575744452637336995551083458103722676359206397494736321626679580059749657275414271326115155967400300887967870711152737894342131853537859306832173596166184021379025994276307189846118537427032524586084477529150661990947249115209275664555198504244057692182195482704951695883995218224871587222944369305928548236037976446021252749335781285775081094460693128013837721079074316269642977097986784610261570493809515378820238495638843653618597100730924166781431540366378004470090287352118138325081188517832759469574237203374689474189628519319356748621312244035416398538943261306024715843391143196149750745060954875547452012091725581717747016559444663957304555012222978600425605863292643837869216996018874016524246802207925586109422877564837559770998162779350827714893324499799953331231496989004929544271649226849413451906023048540075101000764106042918941036359200851796331071696525584525940561219080870885853798226598880360133692262005615180659397713383407029508621609866685622299771243593306693341355867802490335284097997302130771677863458055931372606684127907647264016921036262289520193770030747799408796977743559281934737117110923545540168410676480858467587753629052784801513141126863690542422178267294895129035405319675367619616749305571111161524070552670750195291935649897627634007412255370970480851836072205327586992608850608218074854993334364499124791932044581045774932739185498113687263657281595250582738588071045615567169842087412316349583908273340011976571856803883472959482580734196216843084168134899376584939767798594458937717335415595554366490455690163341092883189356530563653930838088208167367023668252628677991961656882433731776040424550252264371252262341028594226905406018943804774432112094835047397563751130131175307080300465522199754055451507515353569804154118613514478348182871225801563335469871793791663066385453071768822805800761481023226748428010286228715560608555846740043980016190445826251364045877101908291881565980099568271151633102367334609960992829050716350530195517773208395478426450302014986405578790944615195566575871743487544041707127913607765583604000812612835743112130336889101779779727212471383896936382036365050155243588859942771819509617754593839292768321151968271829504670970229774255860455183509972117186196193570907326707215251287415181439741301850205425203666542159835497008621837355920330345752154623104410352725124332495057663867919246436126535337664493802352001848531824014905522762487968902674835168412319792082903940149269719927276503090178379779172118053277969683184682684408123898503233710988334481648668171996648617252261713573593878153566145781115140220367622393907108968224739850036393421305184910834182065220501181829616483198172200328587677283996355937294518327859011686541380940374928825498288931951084092478849284491826210353681543707132729138345803296039780539306275345943416087098768925484276021102529190077923168548457972137838845549351821040381454859581728015539453662998442099139456547909201336393510171916191902768423501649058692191714638139646587929585679958054012894265024466655639251509514323099821321172350067224234486604548855000954632444268765359312839726815656827037517499881467831450241532947306941742460976291942607656775448180715685885640631937513147446462180481153636036012547746357895694059814627701723604357995477803391611605846405721722397165582721870799484136074690373032352676745528455572181036975685372307982967103236735957046437452821038603374143719618157794863798391544540670147322586462448526359873156053840552712405374012963518574023853727397287778524322746449856975353532079002478450122037649577640273673074486398329923963498812561612189207523737543839157583620063574065358583600633921270776762104529572537739447788773968119546257880162118172402693349973679507236765483970320416301381928882609544624647707662008885762398360773641773875698216374030995255037527144911414210127359443967351128172491348132182520527847182281188835638433918477946119745346995231968747549968947818709969290176143990317043899006660182538408943336907317361932122407154805879216274632801801295601653964063449914448703416791719734647635554147075182982117883863726722261531803197998139471087629335877249081980923628164514983397151610562551260592566101760999888997955323853200816582214157079193570754903942478058356537459084914222224544017275598509829957083883213679266762750466766421800725919904150489867198304250499585523184496239064858378473252120553292244941133258535024202458078001121651107288123782723337924593201642962500632866681306636083038144672227213416446590112216096146583069291136904186625024677334417618895226860566076647216844457371350868013220202265454400072616558943786626935004923897758681901302454077678801941627854838093478052729957554113319545870480217741547692940936294129783465258070223788074181231054773313713135989193800825328836883157636639715250310162045136957547717129686428063285907422078153097256802395936554086485676365258097734552532406665567070232298250593434534358807720295061442388202588030577373366990613936661845953418265287230473831677217201552590283577502307300342294584514338742038710713471516095494339316215238718071149782784386932190225839484284647613782221389222696436912128057821603063300090900170875493915360028653714963319210810542419159661261984901083134621252409865769402101285969074581513479876037831856025788152225730346233424986220404574683444838448388192152913237038832222954441643802270362106729655174289392723288742247184001882824345901553458212916853690740385734269665458255777893231385791405403267511777518546551836585296177780901493407078570443059547093231015995526757738733652156216941810982181527856444879193782320918898286118016719108396012316658200934616206942513493872027227760204892505265529234601373511092409377039645748200366812528527000133486158516067860989748051396617675568795259424073386584294911768938684212546009764373507242619517832328177877778555288278772827130465939005326851141154020073354303193095515527833852718748273258775736680887821512629582544368423020567442869777387945695187860407092366591560475207144897060726916175659185282502535287125332486677579598617393218469745327821090288090599313077665693152355626708228425855906714350539593008672591590261926661866140335748426222309772434643718056769061720711564489137847710427773523759541254117252576140643282441897957474648988876583176251387066941035182106173062143436801228228632105273196249426185019253975213822001240297672739237084253492764692541187508016318070816865420545994177792599804794370846745041468371360605932784409892294965743610028209698268736053685547086070493959995061375065256109088173510753049672868125537540793698200941212441453635798223319984213414514947254938336397556629197907182537624895915483672948856850138359297197702420185803346065002480294182101018814999858686585573877193223203483883239176947156851038974496910314419142752849405023685615735608510444463719033226011881887187671143993218909911925546247918975318306422706447656083644387256159466043284695893218021493284761310124465237311055668649043341420586797691976139131946500810814437446168379372974670263770809268170956116941448462107630691991913382084988599563608267773767162780796409544999813126050988851111533888301753736874379269805799777481232465815322443097279138312204991102856941462163350675697994833631612292812066205906301156337871816434535618898140885218032086786192255529084950094002057978669506511331672833937885272122194519646813650194408434739458765638054594467672763655923845282072852732806658015336560284788278724987896676681278744656812866837383252743609650118844564833349396569888595716518364906129762420923811928010759762397204225899978465027341162190034596014602267290655697602260870376374850468852219666428662628268656347479741019235518271898520785555973174031791205822261212844112941943553658285403570958373073632389577440658874279551734132999877962838376171557939336867050009210087683405391706423514672781539718125801605249411844325201491301243072179973147434187688240387069840786625628816458618286445420843290462143784431132477639971327063371518875584280794889844038314705059050137355427816509829321629933234395868499321139236996217980463802717843581676241955549231058179737570655309164643238741992731615698903838627498649447276762473394427052554817246183315271438182059672202743357044076505536266812575288604575858400668903697891990387169150690357625815873692180556432260639184557625128831171271154898748968537083267094952679853512067326668296226635029052306548437768618167039063295528426321817959459264073641975248308090678775532148419371946798672574903622842828656471831834937402681149186099013695690392641971128617553546989788105215703103131128266344948473656383622576994128784978153571812812350500748419136903014219862834476977697373325021623473357160155568695910358341321554259368651086881964883335165821553857819532495897195722468693935318156262770108072539160067961800239426558864040230141223937920415312638060206889353921220356062971881137324623340127923137485429494084233276273653265722426198223182346135311400733550528043204359149306510259945994109851263732505574046686805623499282955370546733960757026523064917961126909977616919931081806873620320514341124289650362087024408438637399166738281645345993386992570184724332597837078341414094221159458695722886610730017711147206429831067098020100871480793465497504700540479932327734316744933649248535068668169828830102085562564330532314655652932270361041742043952795283405704633701399090179566462320370884452999064782389314962566312427707594050393357984011425310383349569252844327224315579221087682429936269484844722780292542318417506850283359977623358780308965294414873676978226170167496355635518735768846314716417120128599105274915372572974402824107523725980940999429673201450435855969563021697641085340461661045869940515603841138624219807231330368321331887849629107522674838191120106810958872476190357034384936454745628945245872714226376721514291843998938728054558999426638097990283007094707530702343352911506928283169324572879423837870952901481962504028207169006472777875254908303745602807772000117430694122435791288626440100385718256938358013370279362154608102451725841296315301546590518981614362052994950484901674252502457473510085455470028484188800308500427342926606583248254537480730143147332225484239690508272295125940002209412346192535233956877168169529495100619020015713800238991999119383990257717992948433185062410862546820633408962494016444370715503287975447875086300679512902460770203218640938249110258215081168800057002000228256438490641486336235173059243502101787318512758356539054108358099720750964144178299886254605061661070579101257734583271169603294732231892018992860684221802340162158474018344467603861492025778179520589849779137729065621198750861987724219273383499392756975957868741305991348289167133405069167494365368099812925259689399401847351784334973741591344101362513184725728919293431217897466435012290249176136648369780945406301459140903589536570987747563713512760261671325110773395880320210147739581380042967275665528131396501030918375097131095811985774855896125851967707092203512168954294024791267591922602227950647790079684395403485597847431721114392995265864536223552303694711061888675812246352331906989145145006870954074541033307096956723955119787817872437141077953805171972903741859711871360349284164907242244236697871625920290877447620813896528443211592635162695744882176680949636097104863474757074217187057834890377769121974654913401686530226258490994203028281835520230842596506665380151578246835467338671546873427512908411925509385913000245731724297269644289986473308133671891349478234728752157974229247167583353305174081245426296723994850947010246933393843780122833790125882569737627720178324902507480779290808644137880573466212710005622027394838900961548868948756948541044174726267862179923250347280682150044567963895830642680211238275938635416178486410608174915869865612484142302351347590264874721003425518527798410742081191405758460641233261077671401411772309622843016896327842482091148178885652648008686760265417529566445749041190278286941274180630093327753343552579765865432305016980636175658275239510967532386021751810281853197247341731753187376896319741433440220970549326260038546299273445355255075735489541852429270488287232425725560343931832695783193321897555238592937869027629721094266146742733125446684714219949393119483380544794170027256219885314771241016421825207592798351137008989032392411969627440946475747988803955571729309556862130428962012379843675276885469443186622087792235040808577104053438412662159768398579073613752712005983823613519770657821407550759545183265278662462909239303065011211639176667975051213526753541833015393126260091707063476135899682874792064939718040832120664895863482149695808310376265899519288629356141911102957300632378399597488496673902397503466134184823355029275691676995331243787983147993816730594947308209525943436041958063216790617944517605760549768402436488358069410932102107910351426838876599791009748973496854087037070081755272136008142464818742145309701833002835241332585063122617443789389753042607671974190813009706892851238329268976760846598033150195528597654911306275319641603395974572673096241026850539850697852084937776704159533338007351411299670357345824213975179359011138659510640966754733087096555955656590138471785465341735715638682603702047765834396282438616467823949597650208975050847892955130171135832726421407115491381470898633668858476527189685149406574881230783262050982554564901968040582893453557328870554281724254368975752511801481684252334440729107882911765337803720019738529250981928602706208220978145965498198638956438778183869013904402136391934128904098858872630358593673975813670757855503967022305081100062520758983657868001368486508061973024159184605516356284206698042365574269172146711427899925257275625203228854806845801579485928473064067029707899086544136449907078296917373408905814237865967947908780035208407778769115261306645109637454998896342419111719768442838391663483374600232644259481954620669132718882970421000209696704754394855717071243392897118265095304048504121753779354459478517630046174015798486718947410874040296700557857174649479720288126635988442409935246193173750699283890218354527183993552086313840041032999784855177357708477013091009500321988903010139657572546788846989751468221220073322386231213560634861100614996442106622476331306003726074346626233202959815660742541956981109094160728731902738955361020858780194536903497613093942372735722276749745861649271331306482979896095623488352141135144618170593928477051078537279146635035729405369092943961182001903315960862433907311281952838437423321788185097523284551361297750733295526516050487092297568818339539561847953553977058913192180331200781105628316804508081406812198712840298869240065962766398809684113115675652528845324139482766796316759717382094066586914341062292840821605492631102496715683784105964946625306699237533826822185739789277640534397602754623353955689396487509576718400418258452545484002969477325682928274704609935347471065930728258451923119868085040788547454536215550831899818258941383212425465095753914110656279235295482001272659719998083303481524510245997782085574841394744239351849519859097773464509910510796200311805587773074356704006491872428147725399873958296275278959494014695517009049998162264680225529166964101663721256817600264266301222125433053887385099053114376569778900533921239485239652729655436859547537920458662305376607348412705895592921671719896565665046976380545619336214629583074653077974462444635294546838321626653426946393801761016383259531898043213250864572683331433787478729255333044039975133629462909223875853252716892458705886912225717351001901203223854901848177980787196913008408575165068945255030586245630559176986573620391611831992944144177716099438729930425558171069656260212216434641076003213583927655704932179774327546701065454696471913908293615037409662175348023801946849632014951907188520179159670427816999420161473675298760679029986888854362215632378352888838034308781085443184136405615704043131117415433707899607634167997117379895734071777767810808684865393579089147588036728733143916143595361676620451269816899173417250739326637192187837711647318063112972770459352507458533433509641955737835756944746698714864670346593682343289542569624075122769393380694805408773995558583394999059372087593746836471863524386122123417423243562976500340130598479633327176977743029319648494584005530934822256562300808646394621563907153915295406735951410696352928943092398068226154752983287969916679495832201095847835950032639223443758583936257331282664728768643158333803559997129155871729194506653048873583883886436827273932306420445882259135997890318557268741764229523562531857148773949644379377832354741272622913591508136682977043318063949083086138153794967536806984641152362813102034951946231371928328607811178883319400902858433903376260297757179752631515059845339819582505017162049532477434991418813149321842562107973070749756181876462866921912503862692426292732142494987289950523283335554192830315951328650187197497401688565265530901935299983560284934677628398950837023024232214098229864565104685600971519928430134846401163264971479614162738377932249528321666659201398345430689513142653640703656605470835035369247021212532600134467794722259257498914039763452880336567392467039257703290608620515005349340398577433282449820099306529629035948009859249106137942375193903361615408628284119086404688896284480916806423059367577738548299129352314412981149570257079013121314951475281613955111824028720452727756937860482300264282495923182810441957865772504903036479420531485691485428820620803489212228854745105087568397938163144324192465927338565129182036357632465689451885481781338195162530575916867046118235801363084878204685240649447944075364705825732962052134037812444101934665523011090973343980242952880577321015854970294958495504010258752761755177717135243427363099247962443051229973785952636217616523278159322711438867554673507686811669567181350478710015957379894639790990593586597254086884397267523796955919265441276482186074837784742215831365957124245431561020371878380387191051595500305985957165555301988582109135186111352405773859458595976913967895512237506542405243995669879689474923547174896488211858243630494939733124881160815804328346486070917312598144693140717691256310258550835806597703559557507620340379433422974643259978942543841967470414886005513499618253058410200338311799415701850684069190066106777344822222106699823775773730577692450594385581847647613088836540659320777688807635413872734059332753598279523066966793354494313822048327624146313743438949397215499706495709292019537104280056544706074670200410032413384656829199478728093901264666422436320344962480369192560963004707084503257558438799382004908778187359397840433449208520837427829690538775899631924228221363264900309343021412366167828737362609362161472723493030450830422850624713998762640941427213868734015130151247100993587283867178566683566150944411825234761587183179518978436580438873949390255957242534405761807618025705816332087060942601954029286001713333655680326861828424343095464653122851168746356288386883782090463649581704996061395486243967621343456709100753872577548293296605753818258688151589348675881821795171292642206110390778073774041544225535273992944841333573808726393785445170402295757184284830457205417345531297652055139404010540590163259958971780409726696624358215105325236937674508768965140249078642032045153011122213634749296759383126528093904926874604844559796959469433263116101636734176408051375793014161372151726013647864919517928940518383546252247767298152515464514711343478310014270410959107345158653778577078562724687490468813766068295120255219273266830390124512578818946723698553325825054888703281475609386675270322876347929467456055104385911159853198502173546427814611606799261738345699419340090843315820007424343922681925486782713523490167614498069256504207774886419681876534014340537010333566086319463658543659923974698304363664402554680476459826753345927674756458696171570258644609546928519164654604240279061227053454877845573464707460053671429585501651045701974623365504432086636506991364245033232690841237690181043219964943849346706347573459192737871212022656597253398477790477527134139300798073805113670358666390531191495226416150459488860031057927302748261734673490277508209870381171742740324844973924326388533822322946491143281189190939605857719270709585347057990681751853988344881448987034758492561976744772101811184107510180935442698024308491667084120610092224720106931169316326659840087774373301291449083957433765357713377574373976964589553737074127643384857458465755621452553755799534699157450185482012347371563515978077677792037983650727955365991372677771696707362115965907673630142161795312700394581115802939144398011140341452723580120948286353278577282527346774703521118623602313116836918779849981762717105695154906409405901783557459990997802925270120625375004698188780020756392902652586696485657803328194224363270426910656150730776815621691146100755078307138753170187329281247875358446118757519108644608608502641982744280968348960345748520791472463263947883447979309557233075451425410539382067148522837013240346942791755598694179015343010004121772613185849698849159305191725216408292948401467367525990793107756814982434860938423459397424846863104730128069698969509408069430816905796814336593666464729654347953995839650614358152473552679207228677879040148231140923099830297087562390125393645698394277645461935840458733396572560407692650629765053174626856945867962843122790849764690519324274602454634622738631559054484989065794949745607814291572876037130833218638056149431005320211259714459500311922069598479566037385958636106538110211857656512311379044166969305599437814575760871712776313935489844204831519946353876045965922179404168302580207099508985200371409728522259747261485728386509926621324877862654607073650974394081220037503805755917684726062824880995482952576966007475740027666509891414272061542356995471123107430447570786031745244796176506459825973999672907479065987871124793892887823088332992517344772881752890945994482236806476319198710712947399945780785752519547557532788077455745240934842150356235319023257933251082276038041205220558851720696797412255249175031270992426123549083740387353033986917080734597641076255200422599188514083720956493387119103820928141734224341188259976187256875495893144328786532188289989410762368570403669426622771540428734872216473861547827344405120912071110436892619699099536271754101169299185542360330336717042443508901881738361179947478097415740553205359297875725988551472357932768387351745026550251751195707473281130749962098403616902841280338669371537390598824788777111885852372134878202245214050802806645361766869544366754461461660951363242878515390593413314268437379431253510618922575732389719134008475079133656042332197906786015375792899686299825934437300112110970062536231638159215653134555450710727819984291461973892397437986583257248582039759630121601408817047262061540848003638358410405950229478053537685632884965347415049493039738546544184239264406152922311043531167263577603860149003803070114494621708564516685321452481161317684020685305832797169318167885469362486735178884432469453005577327163319701988356390176985786568049875028852966866232745362107743395571139924958867386377482694742445679238911271397008761483727719989180418234480537240068554056777116444047559482433691338041347259847529702416188905204976329943197713070232393090097235878136857575023437833341184555439304497265496054073737181548452733674593670638203794850102568152607606132681427138868083375226432568411385603045862353739783828230152966914014836699252117198476108425025674126960872395485998359963825782709131005880417391143345790551929276977862233871504418190916506688379617861468055394741080053318486527465056056947284538092814964923277633024828824921343845125576459963087041743983219447616968261649092220794705525193751995865536384389383209544317148463368909215792484017252072509008062595213654765885640900706857702298959695664296612036447877956637422758819529015151659769500925683032647776816651190440407925572497815980541966845618668254660423704980022415544012311201884311881319997460989036282837675032591696430676199019636519630351104722374155993870017150998003063957808701731725900695064375909023291371752890818994444340026645472313084500846253116056335830184248330735602734154318092400955752234802658699827005823180161686830450639089970486711187420201935514794059110617713578957149543351010218555423092048007236809918828161102571811832374670053923954897597273800201746511799768239285460148782683600846431914026289717509658057758412653800265001332656841675101284122596302801410316737833998764942741084722377993071651049423322290238573275520279467859635006244959478475837400103403309625186818832614941245636981089462814465480047243955151422176856652233328461484873726145572121228964372564064211216841998186772253298273761773755039157779816249203702845300639042604782458372630155893278097462965665647799496008654354018555809758615854627690578235311405623835390761415326014017711147639762893946822145857624193517453480340673667930054393283725628946851323941059402080877652384638619100069741539016201794700180313249389529282599013302831203994132668778571898947217702801468514499310829618974614443845513819469438454649885386235141324268238872668098166786619307091753380659422708646315952984376017060020834506866521863571473127797425960956791798882030056826632944802996210730478433292767524805291842728224925941499212532729175758679931470195889613265491710223493338644422348737290794223871802109759522966092980953649735312404816493495005533322977191888755177976700946915087136497833248755589675867181960384012171104781327616648103087958763262430898561505454302075429860268135659068613441984870660325597949065240742810939238991098007148117301999987007149482446454469132238081938753036141564492408354344792276143157700111460677865721286515349733225044388813983811281773893642133155070182438373096536295587208255387963138714249845735992103755994857225769278332863662879535408225397462246287568585278158491787334458615041773008097148053513132094377012270484604005306796399956259307212377405854969962285475435904760594034028302543850204229285674799208896510625159658186231330695649548792404083972999145136240353226807285414089498357381760655846758505268598207957919962233125729309993936681294017567179179408417249143929326964026623684359472311437958599979100687337670553230728437890789191050537768251749638640205986104569838925123204642209264833247196011963444636980518359569598370033780392502073311941734736907458004680588054943506952266850082752034325871412813578199739316536661105160259921257944407925445525843764388067896900389604831499472827632569406959240985069910727241574953060581287566068024641859848893083340512291175965340274967630428891799720252393873381506751506477882733554883560385244594047141527989642925276585879947037430831475532524600993500863711712841032547233857928003682757801255811727266196088270062478486868411996404157100014430743754818689577184939199129757858296167133189395161971551307155200205101991618828206437715142780352696487048829553687237835836353225047270918010998101541802885590086010960781894620395996117968929715401453684905146444181393661180514592171811756728776797465064820536703441710614963159777302687821944296991052988696021161391096587916662747593173783279573820608995412463505898544486861427817219459580728353342459861748014343139520931293865839054653650886801243980855934904008210315764280419123206444420388327198938520423073429629509678244813707534980212086204194736768446785471792619029556730859078671694755840174845284855288238238436150234333700314224146498841586915877038579372879872535149060397444566117857652455536975228654296135201019270786994956877360100349459515517381751222396902396669455959575577448910440954359268235570666579571793116653320086321934756130570783746843808703501465256107641005806213838973235568920482400718816164115146735155208158693058162934069887249368466315139460375455708002189120962412191239209437107901555306059148399580548723278020543138681137918086121975293168255424146883786403105518799239554263579553880257173623037042616726606331477190129746232425579518184995430762108441098491893121571709660298472975140256781785622509788292000027691008990760939856324271963952497165842218322266035184645846648480294084383602986455389524070648620215207153971593965009518687509697204508375662666874688124591470877353238841200630324891591980757393718291792251275951968703174893724175553251074637358458582052083875251513024081181062172738756001084249280337497181983300799675551909422909901613236971960631681595595243970315759211788335097811206676100054781699804286193182174974028997381708103544677492752807750707521563303503202788047192845108740248605262843237090312931675985684169237161986484516637877026169923772093949084733988917524558065365671704825027729060797844048073172602642037696618173443161210955016767341478875152475162184180554820983209711813078809850406833384858728542651933877315532204923339513486431676876095325262272450647691036603478255327258973718251182663035576164772831642136046180978631650450522042295936109985783767479876648242823262214992185884534490942089886765380867042447655492066583092322399566966695998553528205247792347671457050655170462406574281066181234779384024508361040690285091986557594260005926291500731921961066739966954175127158520322858938755114254408275519575835575405803842418793534588267391500883381237938172049826877793260776602091999262185127754574288790950210051688999345409277846914314085983411759787033261176787257543595725830644712737557550938868472341779319742821388635952130188578781820990474230911307532542506631106779898297962986989200518787336218912368369898585909926877370506650360982533524598339139221994184534557028999544544125287015345155304432507268173070436101307714014907151635673549155475975365294159311210660637424804446563448177873831399961103648697125290807128325031348654743122006865302843650798748338968335399691939182428015620599937028587475119627721951438786404620338608711681168488277783215525833863651711581874886437718772324235297495144744053884307802886898263602945390935043308319620362302225554197284716934829502305635530745449670045949899906326559303872508234705224969891007986385614350686056605292825902718310121336023087021575871845683734358700880741321072567889294859203956086251990695784008703740745627144354955976925479533042793970194993107926968759222646222672522801227503824270951577837249792947707534321816190913039053024417951802515389882536807254267491963159161620476073699313730920070068486180509359141547693481278402780752471656327950292549442265319710921048481675470997604300098005078160404348654997086157950851512398925153744921502662879000825094759626291246594355111791666765963817432850349762172002904596863974819866230298149455397078421395071566507707228583696609662115977609640761420866324305327439610153978743979411200145277811551721862894911095801471193533750260378211054085998680487106500516323131049636476369247302882038261670428519444630098828334895140644299689887557558191705270534925920315943570007265816780436861939303576112863052384254566535519299242488254365239748450356774159362327284714207566030422553323363451971536105178049536197109519817463355440063997673109356590463585480695199056586312780480972984032175548502105764003500865839120965401998395029934816297496025551921202838503279591991062717407666075075382365927985919011797027470689297899383261940998981801212538557384343452403241476216192691655098377871779103497271401838008919008050937017009975722739758734737517293325675852052586205558555858240511082302133322750831818994373016620292509574393582537929687514364027654896661061411888754935528614168300936104537601591590128103884378994433604209872582917011064164515495814016889460514989351343390784867075417309144891809181553095074801838529492352480063235606924219839285458807011205045412133060633384175356009719169020167580214999300137698778216272755175642527339256719883651853152507698592161172823985305239804081443036069766610863287841353511702322845020802309812386507360351435437092086179516197692502432662772798372199084823434502706875196082723335074358069137723999668730655566746638432602070595298123299618539436346253351162844841272933603750350514037161135847545056772427176194016986441657950061707623586319672074066869024876300496080570873882167797904155763952864864557507999630564972652682093093823218978029270865596064879133332619170900034933774366985609774389746121112953587240747168198638686630006270300297411661713833318591867845499083988200216817434437996775539065256641089686318220303179653271946576790850321901246801758307691972685203983640419349203229452870738688404033999033060237362544277334197294858112450664373234587495041458475823870119132775860179402091903866625064541550216437899330341496971818110570042225252952019361524783362943130201750408984471549454964360716994145218321735796152754779877440965095860550125709863385952422712108428441559706139983016250772809932895954768214531603814011240527346525881379625763277729082185607739631670552282443405258368014040324906810585719325709940625956230902579171628886978721891332431717103942090988664792816142598700547669693524063621312801607408101818430530900882740971775807468073232916658213962718902085713322830761129310514246376584674397638903742361185809367013174333307119440078927825046957847776132487539785047488071295864347065001749395155518672617423438511759380721766034866432875070888434078838809018176713358264883395417943271250977830045550527681508797305702114360683826817741596290998362557105843034333333991307706217523605207756699489220054314321262065689125063671844511829572101982614701472800243624987382144649435609604167877669137448386331801913252836609715942996238258462313217150083196658821418679557556994351189540617619489291223302767246312026860954342043012668586636414991361432201792684382313909962194208863354384703245586225028738932142583736220901079156022095806855329701552613606173555985589383060851590867248987982697614200481620103580557088558579363328260328762807009252786913051186855100475607117244187294571236371272571876651628586349813023824534715282213701268659953967785651408452608693478918603947866703867545663166838050785636835682696551703760620936940887592032762933701810661042883757345864865124593091834645859098108114840818072387908948052666205982671929795337531739948606305661497462690820006678197636377649085985905342436767673074126729914086980343043289871835083930404430722273183106503236025923927048050367238042318535829925863063738214781733449159228155125053562883550412520382308189834876472876904856078919452168712223658729821804245478503923413183775480221154804210434936405115892294119552333825985984806726748643322327631764609269918197758630465702798594536874145368505050451778114153900658582049131309414142882934749822447389430042279519190292071256603232946083251585908191006399693246069637026038870129212186032170542350556179510267643904562824286572531848647079237906325629443385372993149059689178500110532602515895330518752927262610036260245099905359910833296818020244074887106252991397874804015241875179379242741479760880407830261288558121153401092921029693938373821320759863181302162216475200135549861952529989964671531818248446663177073646117662890460914819824392325493352768674935932375590860084945826285882965726813223832373904483683079225782901086948333625082720670612001802457776078266629455659602930615484226693636277244977976574231266707667831512905534819187806121998826267800705249278715159698952764616721533291040479121542796488503660862628639656417776630228224754833277270290066870852172437488027824301624657621111130327786614513215788065696632488075633306459887362040695079108296173348002732934880789763313056950135553503856685597323453852096700116662527027587000855976645261071944070435492214148263118134771969647667948616804229387168349390147802086911590143465499301894419269037630197319650317127833448489715094684276164193006706864917329398428623939447967082846837521167560893361706576540079213625631954083692268286686221455442377924872731835471516194910047005785111589817182502755694171582261455229715783491149569501833475631199550661482033036604003629297703954911240598013658703903312877341807231368522814939570603033635940126869895672996997881425395071000939627963991389912057711256287422261002874715198385631183808297800553999447472202025468623318615011984633693460050283243667831347715601620571665196282251225115566457125443475856547081729250972912276854332942196816267116194802162557931323681786965353820949450745513362983889034866432077347935367184213059812119786204101741965743515979527575059406092195428299629190939759294289127646579858281324253569075196732640556943670296539325961025632951038912129303489600236656123441755246712590851290930219806433271990991886370441597134263896044833795161786523287352164222200321494783002081415951582225141455422875685026888050350471236305815370090496256194499632222207559886565389522450001154175258766629403864717330805236633015929542964023953558577144534149014703649828091523785559545200837384789206375226698420791512783820288187295684717775262389644923589741112346552988355030448312037812608915222000329842701682105008737813126792503698179511720283310936330435719760168925699209853951341172099640964699672914876234180835963788460902112183395612828921227354918572011428839826652988718662429041710945164945024635445261289686986657934155333603145350227003811433261132913147092594109843018160420347988227673940709292109406741408289793857178307226670732345251413347532591419938241062231593640263234696918386135371601103269585104495775357367316701187282862044238770156171321108069120570684453396641581281760695518935438445865734402399879483100086505538649806354303717498052017287906033831118811003902352869668587698281128123501598859561125617052764697485796608577690125060945051654508542766740656155999240320752862123159061950326665855586936263382693946760028796056254950048689289676525094193136520403118113345698444878152098739585910681409399769108911680643970507688832643104597190130059831658040626045504318190738065114968314227878959723887645196104833221460612145253869169900206382820150746475091450743387891455859706891677830192486934562733657707927963213464075870792940841602463716335398494693255705602015967181622702941401505418372972221674928644924349672548732316672033415064333725256899171589368692780799012820032065547861780886247914307983103628141546459859981057110985783404200124020520135306370701659892631478143970718299511128331081144346745284554403262854810627703733174992040422717385738964506920367598615260651388309854368754128552704736352367881236032625050752565677275079598038348726718973485092331643857742245969637489240761426221903593678349750524891047708313055913425420699520759384904702971617984928086064627241527454297485887869921615925151777457776478638432354395597407839127585819649520140067562062839272508451216493075889644546503272456679172480302955280107346123040782666548381622806744654021924193007915546214283385518587181226313502808023271563568024091037691474825004236032257559829387660095139977055142377190906249209173472378038886497543774028520325403057259681447873279633806636645634441284184309888954318023688629331257948101821725157562691891397667924276091517201788250689189672333804737572653535104787824426386669649150825968958051270744250166174502904369854324891663830610460824019838246002803100757202009672181295248746682590937948960630894536528872121510205054219500324780526947952108385739845260075602092261032301383552514160118112248157193987647037906297208141186119978670743805084035923384724262320825415283831853457630286795529276628003989076947265784327723837806668681172510032270846247945480445045860637413498131667832729335287138747750213728975719201756782176398126542317147174968301566607246185357731827975314769545043990302415798933365444118048282544422666248639848363842362794522639728292810140857188086488389980579506936156241066480075466194088506186222800409590267321857778882282838460850634172974719505931435529190135716002173709223387862479544634445945291042285298157228272078875083916272146931775646298314365412949643938428684985428415956409476479661366500503820130944089365027646367844510611775460485406263431185893932697110669898128934811835864136781131741207282199269914879376226260568692505916160117038953790541865440967574753407725167978919393745146290586488778653603121803890428948494767267732511227389398743357492716475651355266478817111016526232211211634990587696289600957802164584122296882255037005460893779163539834540637206125343474184976539562730794992344996339352612940974103848410382433402369558874565723867127140510668084607985722803680000244762716323885959763901237678971704211283979094309733938297053695662926843651645020380413877220900252005542980326737862575832512668211886326899751911844650409123913980968508776511212291799782874655604436585894616445528332897354873533022014457955090828803148259964910636017747613471566142431825166969628418370678829071690406267566883157846466807553129973643888858349019148023749868550050908503895109444027346154722814238113156353190003095192932022945040475277606326025400276843801147433190826664083414021976930850508390384722961356370420032320235499838884423827099786718072578616731673445226856787152929893158702430394203828539912035760364905244019183558182322123016380883516042865618635260449342360895187746792891247222829265140128032556647573458967786439236701148605590982349683630545026190613152735004950285537245341057068650532410418524611457702297202712623824708896144932629537992322899114883709206114142820418853409091026680591058339403734523660579106449609438706898574608034203636292705441111840679594521111807714132212426702005216923835674069587809887657543274343695172588226868096487355098585098057790787587282554901315809641410013887196902491247359844500173632432751346641303735282701415089417465718401498749262576516944777989219529091223540156587774121202655045297630741970659102514179864761432352033336580374859841704059233109220228306601519265354533534572427757166613279171894358421562270146196680095598843992420881463561509765314339185756564712429065235121051943493752638121050983075873610814935941460323299558317884090897567438763267283092790466331308109762837349187246972680251493550353733785759649583203091858624669639028656391086696495353938178613159382263510030438124673731919289648128956193474079286570004181094488739004298507651661948514642459581616404315237728909483623376334886734143476867003008441628223663101715926755669015771389462249004805309275355095803340319561337474028132068675295756237375740359152259074663269427526868955090766532353158528111941379828838046533047751755266441094639751174624592359707636571568249279775918570617664724200561593517097468997995846481616089107272929587180732937906542393430351578310648181668408545049733341901769798971826715014303378122548504620230809397269874147866588385198352036580451089567947743320165543591808200744848900760157821922399938041868540592369267388228676717533115210716072156283945480805688743363245671161449665846062062104964486207191892416058793245204895526988050278601334993326126853011752199535919129315727954085819655942407773196386438673774913907153358478740174737984314871048040147531392028207478699287048613048154320907121076960776951327626572946176527737867622212361282174743311546293955990063720148151013268723780391369057319962241900466426003008234134166221189524001045418296571897030217324515038382142217892340340156044871018634757426473636819324186464002637792754274293296186701016222658047814354717712803909195768761018263886149965271177350463304467541134537462366516573677277562819123857171998579341301237304544915373666453752548677882099537018308416673749785814533477233542805637075752089459139351098890537411579313914118149556121107744406915595489189677849168557634821528476769375288960886829958024486624435961906958561593183854479768747432938396210352347051478657804876724570934392182755947617784628920826493684570100843674235755630745800995630437044686177517087764621988396307193311345030809896839838317612470443937171263962663915953074892049564953466240185119313118751042705834023039280705027627028395989887641286081498109155382303592398703776405650688133757730144963918285381623823958221435497432371908182754720497763816771630152407148322700069348505980296447234941816546921784113810982729477865462942011560826774466765210798825191428090866299142597012028362454221260431408079850987684694931469535793876822439150865085782676016588028265894140674046592297271382830259679296903927871120977054981424698620374905038048218710420373694293220838039146328311702838839052733632944915749581754549862686982753400637113683114963119501988715742374237611252129885698921172897374321295562987831254644043402597898642259308643099888665912029652679213441850592897341548642536809515150337916660783208751607447097550736260741982803899222881262879087561789184206253078241561095360130107650806322739969099117419669048067725960322139048116289951575457778177039405539427922213804229385059609212859473972455533566201744354933874752582797305982122042446349881716039989329510943864050502576535114026364736086944255912268084759569839503134088423760514796713647545960630148161237984340713000449059331793386240605472451324832603570875444129631933657278454781599766834763793546989164942994239966276635277927461413368555492346213327721227840070903840866036372291204276810266810497250168324690240821510392490661959574942056534404177369612348941282024094899436236480989389272572587792526653744674011151782786913052292297678119430677596223935971595250562497249228720967735802030784683180332556233276620855424302431397862244785718074425236440996472692501788840689541251145462443229549533779926260763041357803450787309396283932310314064982416530245859347056548163792565684136100162472703350683104094204908279077621806519228311622445196897415011568684743049283043118600895539510071041873345780520458063046868337650138179860148549544820271716903596352812634404750674701335469920524346886119104758802888068853254496744589680864088359249488744961689110535900111309039563702656094203700963572268716396518801139658989040326410505355216775597852704787712819576407250747521977518468704573518577528721150093610066248304638788893247601450737962992159212578732132511196607876060937028313483824585377670990115796416293620672626940928191013653491788509509570950188784896053629646245935423346932001252368373291379877483669291701057416392743821698512568402433585516502806583150619362918385288443670462990975523370609281060873586662656824675976788166545244809104526997910860362772669415450099169588021046632461110652145124455649640514940677793178191745594831841086496738810897651483013485869065677938605412001254022200862644465035201667584035967825876263706040094278599905232772158136187159851806364819597963058969100823237334973572744135322754816265395059801976379761138862852905825425376589795556792155097118803704017637152309701094531608088788469259048259319041009202512982146005788661232020008924071917592695556261870683229446826939355656537449996718343464945586884372467805205563662261076285406429468791362652553076405095694327116659407878217227440567180151204003043750893735621159388903831568774912988080949745624890265133858647063452998512466042085847742385629793862415360686710446750163708324678999064876371242344567780636964418011201534870994532180049068410054107556359179381052782428305867905159905318238585358638246008146416624087452736962960622882077838217246595598175111676268856367040965631363121863624298222241551015478540155388261214204518548230096535091965400498402796112271536180894263397704219970787351477253097378826529485706249775563853345288119741027889314734216755553247459840557331581664246025484774087996543296311888443800355546454710206748826967571342908245945038232813525679398997393875020503233404189034270486383449608044020681806354940844571425929663204322063752950160728683450535127383980024337615503319350593378021148914367054911532863889413300117496252643619280374540210743789230642073814448516507038437682973100411352099740687761193910771047816394351630803718897717437859569625135232519377597983429217060228685303986565998314975737467612544847115866548346910936063283371814102319058890678867962798519452859658728562323865771694498383117447257110955021764244445376897628229390716367895037979362905609413791119202328661895009302029070635054500732003474863977778627999099080034256470606080392540053507025176633932447030984234569136417262861033970949773619437515610657642933777826676644537791256638960440609427495441143334999052567053537210826253042094702355627359099859734747840698242972801586974061732507509200245966074532657746545607888641344700781814510603751665557363030729297010764171155138886412972156092231919337952575595284678594132562892033316578267142827218374277376307001827888073307171352959006466516182748866928726927765646252819439048756764388039551505094048093528887492980519129523232529181802941152980583470846322782607934395090124029502902365141603690559302910494975514234245181905603551853295671381354727763190160109483546198798673430020042655536717653401444849824902657585446921874808334951433043988846722782453184671852631368438231028618591186615650400547652582054198134502658146838470167764004452743760607481259457189954833217685271337551984608886112838727519575906796046570922918103179532594952757242727229887529509323109922509835513434749330113731351253316092958517614453676128339695102897142356574829991510584123908963083972155078351645358496365950118120657964198042071313061507200416699264772778809138364157494662095486003334419286533038149610870953000857010401061375513731001524287786110499105866653253881598436579312063242381713239239645196164492064074508100637610103398638512455860428133511520420804520044185086531219355381902062217806458430894225911026110575010184774023788617932776689708854169069481680939291570050890603530775485908067573442067194233978290232612724325448200874554749783245690112106106191532000295623176428430525797718420971911407659960356486432700874095899010728745650123684732053044946381811425452407986215015753782837280833060360707205326110041455142338099038637721958572651027070462965972455530043638637235575992324842513958199394973604424332479170243633895341199691031496929818875063602186082675620930605129771468864387906088116097148508667397454968080768676471183155590371645450166533060123416836976871671740120004819992159108597198825408890651908667753948067829939974986802915649589935197192356939394902478497562641164271256788577612251236850774135107914011116001425822525126670511366935736107642617224205975760907100054947527904660968798883721753843378134826602361088946266653703447427073219924379010861391471365056448964484476563475550413346089133674365133360901995748336056577712615609448507522750246996129329750438206998154998776114229204697038593481143029331181510311566747724880242706070234614701994140666111720648305074351481370254954213382305739418214105145691536881530859975921276481829881620107575396898630297861577730919275109882978566466863851924101720187233928202368449254895232685602219908949918422835909657912995091710847377696007830600683070242551793384803026652627108072761929322910379119945261660387368057348277790845025269609790617304140078311338160536239280689735718343735783613702645902794813947884098399305465271896595990810319792906894579917502771366500885428551034919096008273218786143493525080979710653707515063736060486434275024929062340101808945751503117959474639070570403938951545651611965953419448682337532129329390168428201777718151534626077290886773590913842149994815908639802336912361434156389824037353510667943280729061876586200476365468380703846904909660869888983587122346807537584780948615804540018772075557461736422827625550347609368910490522037881103744511166338585513154666374816626018360444316471690474711635176746097900863754018707606894659086860118984871999562534570856195389269022816191479618305030322241892721265763524433130222586502600382758998353130605418233440328377704589909149293966682774349672573240566377579761339682873535972084393810794537374714729532399279763648630873342085977993513265442987118744243769318315598580309583830408544063089066976289691063885084456737653901390205281799892234368444127940265523024690701416998426671274609818133854098173440524367746714679342850133940166916910142422566091999858605668282383808657517907419533950778434799596757173328189094979981066710401603104350285950303183811170686197210791392489831266683617072597282023268696892014805390481116360904660751803448630907914825369075700567110724166584107122575692097577425415393991938721598189366513216847519518311488797406338984752353748816888277125971384675686340634265874244110699815106427638432496084119302286748600277623853625892713059702411197720807557045775265769434722335539177406649937068533992978443344358918844572885595803015239438315748282091227912962890427815161602188006702959012682771154648829263743278604404538740793334235303467523149321575496694204464923209915437730819501249582800503710604527185263942608230080760697800951669181128358836774717133524262437903334547208052754944611378707914465093591495009889343303963991100674161148947109668083947338246755132401567685550803218614054681739913658841442510689267659886011361667314224883071254734036044720801143514193583709921719775365319315539932779882861150319512895579990442723230249301745850535515418771637890125240124464394675156432674409399550746809145818754491360469089499113586921253158084387368312397063882344479207901610217228769165471066372569437383132675258230299792996970109942272314529974662941740183174112929072346443532987167498390132537969277644846034066553844953307939526070782750308501292727074707417645551757041432463172888133899938495904652130825755735434954247957142891744257140475831485676983229626286148427310388016208788708691456446099248168412880629087343527242224232465645600020491591268411279728256878538597244699270376454456972456663364504000102731656598748978171936220486817785465017427200326798799955253841187720623119770100428784150943556775562040294083336577013679261082221244521872613443292614396367597075266061776745334383117395048216312742803765109481596710021254209476092833936428321181192783218078247547917190387311212701165449558482836294265204143626405220589788343433012432173709906361505462929084745517933223465076095993330399192857242880325636832120007083383800478352637316811741090343618478227806383866262258570447664204848339650238754431596694212524750582688256015289510892962710537116795574596326977962473060410744537869450759209241021955999030481781613943186526425865346966643377194194863991334224561098594811889003994373376340314937996634197919560747351533184151891940625513984903576478494993279926399763259259984084216439195955040915355706120354535681461311604705292922905763742441869728877838364519513563743905498761487207061727505282846542334729823459961940405905649229944500587003961100303061507601142368157340239545903218320586363290793637619392782867070739062520824267798898821346440238543111332809555407081164823078052977646047815909717745358178902781045058897831825352295908664239699108043205867725894099458816452766179285120537444999711794885606790747736706788067182265821730831759730162667539068600279520840482196458009961482884896306165751866322076452155711894661935049777729941294988099580312882864958092307962729568314651317005587545078958898532286209219039646128749461870880080485498556837214180623987747469594989354943127234089017763169117717118779061711472500568949084248510455779865040308363707133677140186248990535422066076524878545656651293955227670042066223508348441252187346507702482888850339641659365216279388400303308384888592615858957120626789397634799319500567099412476318605541683049979485842252544523632269897144459059358384447003286124941280086689627456299943775366787480032423123059921579421787697550595186855222622314485593368595219749082296682810909404611685747102773784403017301278554334865792061879395360611198803520603309790039374697249283372274097174998803050391429252432140290628365420858940330390955391926880254966854120618679915521640225353625713163562223608037555721651751814597156910023591890777421165228165177506937766490346797893308158892704892413172927748380464555437707220108256653199731333792062893503304921248196816086430726682576616430905527431629951477258385998178040841302234074911897487948262825476667956248522782305952295551750897469038525845047189844569989090427918624205746856008855119862858688409825951858358775329398431856235507950910124860901792450873285897627527239332211130255406690661859241226037458128092551345456129836284581133846380942104216424077890783232642854698191431107789512310699267038802167053887963571216250540635308737937563372989945377664014972451540034775110723757619375452021371027270311161433126558948400001755251201867196567955049121434595103809478498688887529281489464814405431469676840188750739229433191607072433153331629764422502209792472919386341111322260347261025237135500156914131147146059078747288703381724561601784728896098803842129653523615315936534460467503637424552697328184857880472531159616561576740163506056212744481777770301009736064377996307835068193357693054524808093923771102648265550208445532111599224974915798861267410151021466001315825956785345640078975652084448250687824782046074515177351659660709397451382886526164822702552903477445239084651468608783292432060231791425644012855622277271284287077202914881663159835605450093176282410894945101505619503758620845531715380774356559255261858020168983717659832676995171468621166558938739362493130344159202200407321379060668747572272140172713279652038310787701730892312402891572717043388100399984137057994511190518347128610011219422007029780925103252823926908794839032053417593776479859953515649729154784671584729825247640695649936352996349018235712131755368412501521223969399902004834907005898994656614390055565314368548158644798430306276327663665369219857718543132071769536744097813432166539924082995137547624677672994845818642465711640000579625181507190006133578222036589846915608077245886040637198434230004973465511073456110564384546982524353439119361833814940275341229672010578597792411455082079665623868154185480246815536032214655039162618051010068364432690769129258374832119888564873404390115285974288811230019955171805609110548063591616893198473479843054774898594310302379544938704859560497822383252317045806872256427709545843578423141243239444819644264245239703426215836282043204771894988166222824704999443036008671171604830687593710444842881207879042677782524124592665190516130268344165228452340121223015355607364327364795923422712268408681839268442367618702485536679145755114272685169219911760057361411139748207163493355258402888636635952136974902238707054627155092219668039167493510207558853344125308535036010899860834321151407045512726588842493052795045551692738626914940100726254694286766968927635575748545354033189720249100054298152487818840455920148422010346904898093971441215566133945009611015985671904371776958296572169103588301962015512003638297421074958267109738598311618583487220919465927716669357220072493239223634133763598846132292104449237711039134417704550948265918716167342778523606252076209565676138945362297370542507383154235952804503011116788549695853898134540872543107671436439450864419671746338905937181212965985816512839831954007421693774528769950487144282256528195575298091754861804750310016202685593192726795833396966299396874968768080385495352974653227458566476434814229578990005702745040922258504849264174757731580353526663442478996241303855215973269386271791849680785628477280388241884166449628523253393051507790745539695676003563457371786133724103621756566779397562134308369573649452218669412179921666010886588924128878648266936911441870611418635797661385228711780405403020652844359580673631326486994976149717439928931007254601025130599111512076020802837631413958464847624223432787924198238274265661079292729391432151649533982016823427051960598251773492143988897953459989906791925610082317433010765605203500727743078440141211153892195683879330771083546748879188092734462478788758015096742869926663770555588352230403577551690691645733833256833735394669745620177240522277585552947813035914844812681090159758483229294139049281597838450786710124424806720121746792376388050123072867360087922276451401813837472609451990090216610415844984184903987801333243489042099862098436424758882073997775287507418148694043949191436398871587462736883474855237302174001964666492471303465237289756486305997455709973380939666004453487333716388140805909673164071980900677743527570868742891143177740180253372624167315503837179586678502390021463978296711815263992046569872392869937020355859809868032614929199366392040599947097369915672019610275572649098519937699211822123808661756757554265835656397044678460226703300034121240538558967398198626169906096953986219870349443568342925203276904061793856982125609891189207500225758530627709462243358737006594658457874811744099857898656126975383271738005874432157354002639529583867695899857062894659462330444122747437131289442432013159119774713660954924424141240578414804704915094591010670632888294440327429960960505468133017627883453919465831309901834001765441569211246758903390647011924123330191952146879340058744409957431763327803842115513157595275106452181953691743407337860189332854008507460371689634948289134279549062984891364090249077414885621882523501819100533391107139960814719980547478047984032271083826850232777409931278588713460010606607086682131485908460132255039969090231837751866025786879855934475145542902178816791184007720936943251228003123449637798252686310499945424158527777031843103706205481478187119264528319285367692511369507917216589892449796609849276576259182204316264132958740548545853627033015756261291664597924158758879509822105811524659346610673234137477725510156993862428313424392487469301331839519030148903552932646168608108330624724801546233322595938201324528592575750734817992121852044407629246266051307159671138099609040746797656322637021583914147294545111043836896044558702665276276700870676114036878973034925565809279825738003876985658691845374454623049622477389124756363373003862895777634717384950959806423641950978093012491463955191527252566716129875146873098145670479008761464295160633972248300580468585939700849575598198589813169560673676041774272845865856507393139758064520386563180602537223070041720675973422939294754071849032934364630231146935034159342120258535860537917659241589094201149838713832874853197921033770783024667325759604302464981566212710538840516366898295195062681854258971950881554385738850571592928707045670711123145970288552348137522572210176582950210971608173008439649942047252854799522840421790135896665541593979456216051732016503787536986708769565733818059295700326620002978819390738208187258223920006161271479040043086963764865797582411242629743311610365499634770207383903023607519120010051805052935135801405181837552201016888928733145664532846375330387580228885801835819541564158348278663703762593686234412079049200421649260322300691463285010205498441809649409042956625604776318865473048294880683159640238166600822502609573549967636617931606821972563655848537238992829366198812754120182717291229298173349993349861249682713427832983033897231033417051779119222542511735383584580543182999857154457138865396919582251329217071690636691121592765390180284224845250656468006801835576987139258768659196026407324749055607169455172717017389655840657337278851113201095012327391074199084700031289853834060670672052313204799023143938381192844588510214536654023370755438809777690499698869568057120750169610422824970919862163736281657184047240545722273639443764633281797053674923431732514451013892025737417368667656947105042988468864901995686496316901055632116410788194528888814348195886580345535159048455875782863885240599435621829702161316450833466446684889118500019843336740073391834458936861621747796321885378873474069959043748915705718313840668732878042617771494240821530589084047387029657551120210856666983347390007191225297742957299015812353978751643573350650029114958458531379927467019745967305418214125045304223951156956636042759945091960797847189720546234993062692345941823487215214296099528799932668844478381869384396317252022894350307572483798643873479577782968474562003439361561246291502419704903037583606000457253762168176851811301026825265224851957958325376829247936475277122675161385258570163327551556686408256199708463176109510053825400816527639984043476877617167123561242675115551587511658701741124119530908622297464763514053942991305561425808908021867946446378993899332526490852691431677814739509133445075807453118034691159321295689815417773462680068663272849325999056769300288091207188712819210688832339200857588121825676260896957350447608387417666927259650626664994690883234143119674939104651436439378575821433240777260254950536973896156390842447190142057325117384895001934223639896684931545601931240996607158216270727433286823368137737975303885150704391823709279171837996561739446716398802397422576047547892417081469625533424255270370435750642128563077859036192781436360155148750527991086825963787448715389063167824908170685076089437460968307542590763671060305273072428448031613202157211904217290690764839502674746348131642361524542800432659474401687483596144479186421864980279827419673050749511823354191662017290273551903486026420004596426786501758276453701483493843817541255267913789143182083812167044841535610266064573924962740519602792394812335678977803885782441114029698198988593349677924625695588644958042423867527553811834390400163923170782838616295891449158304014410090552892288288174886189523843403753739080710865911347449349397633893209869783919317486755308840694328155818278984266701940491847189767215363653558302377814552954992482533193003988153564001886583936004844273682581372898134236714702978790989280178565195072740663448725886960343767302237695423524678551490841143792204617970347856025961920269037993169399123862505079187708190473151211144977924294191851726116166311398107080304616557198800343921432442237221386133711805480967445855255817929294595759320481617235310582438355392323566262008247271746448417971262702440403738949724981636510807220482002620713588151867960773422661140863253389636688548105223346544862257265217391977759565705978027712171453655135141229686308626680540866290677767645239241004884553593245892227218737739832068105466362401197818008268513286931522180776395688167188152257156348877995535457982893400236381988975169894897928154461316640115605999720772688043929959397957131758863612762240698963089240374891144661648321865351766542709259863978291087102128322879849326372758047202891236505459381833962626501767311566888624926508818018693132098839272555416216243714775675855314164906280332450522635307828934029312027009475465669498577919509788661293693576723752918332340602348029182769285803341794715707272497547619203757895807287115523766926231940883323284260457655250094895362204055982818290880612756849278508659822894774954492043278184280723687236231761208427123112132051798847318012732566596035526830402999156310909029170559043047432409562777513232013199509501084786383333420780007397830980513979871492938236734774238349382708108960424125835206559233440128671267008432391131796350810993688055219772278603829138034791423215595583244102579804021256175608159826183297600097641355536434094666485982420841291677569000747128251324773592852374714712506491416153128900481923466360664125461745114610140130258767776205943544154901719110822146195380872172152659838770923175985207778645791581253075533832236934763975335813454670557936470749838297314161818978739792385627180193741775534900266613974349208316728717077616518399814594717123968077660911124783442417543578088177337069988419325107365509467354656709168062687079656652593778073630367903346862869815072115833597313831092678282882861361949471006366950835348892946871416958620183896066319654440860538880851486997008535450605198780724982778399571622676345386138257501130401038221794464084800565533259145723774302073900432829974189440005467432792465804057837215524145301584921747305433349460261470978484499121302387790016590106501338161662600835042814667055932618669274601709835116390712509538004198075166837408974046030267867878143859946905049963302348560314924437324005680350917864053364820773832855540744057625336420126903052272132065399365245514875167780213122967931381053856978271796920681998173500157514807615977653096031408571711349321234748062707660931707424999459078637137570348057134307289510963969581507513665090637641365781974845106744141727277666551361318779556675887408563979024642056871333126543149658318092736494977983195686136053042252017156231209018572367089591945214044296679642256276433325632011315789669596878816178498398569974464373640472135302548552404979757004822936687289105159862146036409203540640389810642099693079866334934279080172171526433056600620515149835027961534743049869940809334367705041172880548830659760436018812298493732870322996622999902820241531579509584485053789238480321069433415649456531946251520859202646510840666503641381720346642644419327813315456450034266221703451198499001288142695943977745832361819071244603880418295506434336640071443676844122915747609644892464759837636221814363016338643179850199307998357907576927965103521663211398148472728339428152477294039052908319655867880490445412449917635055299007094765182263538002472487709853916195157450082165812458094599682177071207894162687482991950879797253396972687762388060279794428890236519427949699460986318234799947593263246299488295032569999855421122007106976153784421816637356552609352127474178813974194886365653785300976311574200942387534968733621762674368625485852580708337979365759467812163485923954779303889611566062283405558001682879101063395450954324565715649004263875017282339523104567740319057607414304902969683436465394753922824508384908055600805954555871772648984586660687628651709312871616988825771990962353670913079116825600665414653180946986210978789447848157032942632922250591649245346947111583364481389472521205815416085639534676739065285643146125528024157769771635042177516730785201445296623648497319517470992056897652043230142015936402148971662728794222699047399651486435963321391319467937709037045523023003853496935248756113582586957350518863966542135317029257182591916736029571131468832808199890144385776319946651134313277548479295277635828663719373587637825335963028516673040277601022229146995155783923799288330318731968579892135767772103071144595062469445465035143984899375788472419365371896314463717100133006855099881918035423813442195244270498612311922331034162001447604231719064643904445912311950002120027697174726793381923151660612027333678588070140239000264252310575754400252106803389149049396962788601289047964957989571841762420078629523960985077742270085120405084039305563856790742826794421601365954434149815262615620535549337587197671895170164313535249935662585785871996532840610632456613078839324452812696971254817208763566480545764472879886184067860898486392627736196725944997068709552844895484935513192197555866144974421394068011286489045111203026410130744394409321794815662869183533936660054210414396730569780457410568438146685835478456416637963234938705765672212544064450224521393453278558498145007072919462537548612491825668318877129419264982027090210793382751614324741877285179676833023149014233568196804804922978702986668313439056613334756837041145614429243423447607365426155062116356910321602015603272116119734034470380278620962706657248556814372409870623254306760557661976469422681456887511307140746988085331155918970763057430962145145765876488784903973282093706947921946624589081143544332563936595353910743199805315225988431417823177847037385999689811060742049415420503560210796815344045380022672765408244670043881697768211611644196621275962039767544046267475531830967794513319082119786161664474818169648109392656050704091799345298865923283367510428899741172628107364561264574575543669302804164629521814724035276928047863056051342519862254111624934396111960416978086019038688450147405442420657287179915818725231216040055133200950759738298742590976893796625818232865713152218915052395995682519371792174156736983950392699205367404214183530923288788261728569152049964518542972524023937947950789166277571303850853972633762846036824642423706918447892395586808139964942899283780616140152815285050770789779742457969249615688927520508116983196084317760991295293431068062777493975583376740132408516440095963627896749118186948880628823824075030619485841850181901708000768190309365660804531074089702190358705012835791614189958564407903121655777746428714721356594378351107375374790940318265538682792421875189076923062107555573389336236743018428107823850779862388947487422647361174800137680027028337485955112761417313448587203250057711516106774637207243238493049335803099977152874614650452076733433349599322247902090707554701941502444745530929866142469774609758662823855507009127688856442377448954750998867879063956589605608771878478226440405060444701548253952238920335737082378551124944890489530879445368280331824785801190334704188495454181900968266186627829628234086679424694678168197939110792164270365171964503540913342982870319015115848910921187818631841961129471219178076481603373319159144915753013407224328464355647672214099108092650128421973211017037116801717637566905338490523717703555710741642094539361780083384436664709453646557685623633088047458578815293934011080139431189048129778276610216322435064205785900383282573812869629128139596358249130785460197819837369263717321338193517611537671635874776338575769393192728879550563195206769721260774265718574430691556175405905684098877480356632746030977287671337734504013270460441741597085692655409849078145116609993870449728101028867558107004001141025033724337839243640230995995882959922932031076556797620367047746916292329992978849336673752545522183709484186987892351390184989729219942121197879523456383045927515542253922192308098599939288122769969623456267894995106996029323449785350463992631980521412362812616639341583460849154384865754944748674303155626514861067668345900799121561732537517274251157505118070134551204488447494678840027769142858263210254220111123179323540176447315345926729131544692288789506873475900151328130028386456347976088853116135149575532073492069244833003599011076250436354645431074868978752557141654343123820833770565105679059285288205949972022552959803157032109987628940711828616206441688193041017919189887216559774231657111939907397946821387128611341423992832788227746919608067229584926285699399448672548910806941656108437231379648714467088507108731818346939491995368954281710237415661509023575301668981079346134778173793973208633836532953796312164813902272656104965918997081335551165315451427144104073181768934844406411978554177400748336364741316450739013938377888030506817751027010878349180591402766736625121951182395954424770953914409588795039702430356992892948879234125517068708500518881581051540569284953300369477212334890631379037764417132274842295023897992494066708500993238312189001203322880955395706241607064295700770581648423670245038935055233109770078290327135409438085515127031722518480014357807171963314989882245792486317477491156313980925984586850826118325449703794226035154962230223484883617466399175051953004478386380273263915185177947999195654279896102673130817648377926751644515928249640557180738838734332281821913675620180669253846060068697790424721299300400329521851824462626138200296041558845058784959709250417314271825252613831671269495180932273365657321825721946554246272543013893014404952140126832745130095956623944065384609988097465038372864220215706688490476452074757369334463737008525542612635352888054555191733548570342063346979164738890615066501830319583930208960133579675358659055440594956565521367748764427269800120282038997974452608085011616121122540595860749317591379931174556594267834963872871152466827351039084843374464033530884851653308445907103855427073760772359185934527960481151593071310482438862906898392904993829556253094570672020048524524778135544998541381260924974441630297614571716603257083518056669007438811566353521772902031955665850085618500648202153749807712590974095855078523700655619129793573085290352431254298136768156717421708961740525044313126872475446460107008414623326630210363614734275899821084447621302944874286600430641944727121194654307587092719967248672005045966002530479423513312694821178821938064795448743999407719841147682576257101958939496796067946405718540032326656278429159092405906365450058165955823083230536166483389631898349312349952399591897935859446848588577465478048568309405722912011049759163457771405253369423811799958757670418211359658348305390302879963222919248619621083506186320953269535704449931654962981552263197073922700432984218541821755249308731684315319108385321921834106287182177418654814511708831079905898571639014470349546120704375008747001014511190049136407238726751712212224009548464560268984054314509341751672592616238497971771702104544406679455315871393875482725572045479964239810142660355126938397610176052602300779757086883476770571496854094019091609154452005317260008229367802832403648841076674314702345821265171462171047750886319602580679712963638249420686497147963134818044828161591721369261606812871634132636797521209123513849452191514669314693663440590124583682064185489224168567734221463336408200120201528119167304957786653640636798578129140872055331177085485268160086950160099099311979845250763744308589758558229415734664843276729693597066268927861593330922502472430705008553850870005049763308419550224800798499516156272657788154378627013800332010731630879760545058223954553798195801530750891909098398818266863457269558105028668633802080703712559503703001890894597598970416895062296849652391165629567705330775304622203087513868809753148990152682823611951269205929340315663324216168397432586248685227567390454593781034952917441622663822117377752295199983492980401418591039293110096434125231013701796522767995471975062749964534491885056815021143637779724910694211733050400449661275636479398136917382599421038688752885688779475177928376101550533874756910406403875530975654867397093245742478330262727864040345006431979945610883088437798031593329966594153049963432053517301488404156845740205562286463331920088354395052750246826166219735850317337054438685315467172218299514632165586793617146581037913976969101338374557034124637098084790643055988087273473269838047190027506189207091592557334244354373249547539283998932714986272593558581383898581109996255828305959503067017023026498850579622266417580085943883954646132327879611617300249744856836443463725015959643000303284792836188252431199664301686678313038169179505131999195670166216882077986679889464715674879686202473487342388640307929317299383380788027979826854734707754977497556677320174206686297059183647505178012974494003331773614419896707250263816952243527862256361240578229240303971170270051643094654729803340807173185618071396067764390230672834843452618927311978424675442147699499909482543998411347769630701176083864866634195765844109368253025716524529576785877956103741698814198229035932982298169905584462704272515562180391512376134613139428599729288342159413804781392479176420546259572416593637806569461334486896160431538217127182437380753689544105440380592079563906085776700099650349041746309106233468660895736261622184541246824665217694190363390929945488673953164989639171527294426289602341968051303008856180443590325188094944096021052902760475951717082298318050540966186881239045540765084305836271374057290814031829136731431533703099899725947727442950073656575062375205607146525316337093729427786006197866913853281863841278965668491070340687776908388895734730555466936957291812490616537833044136521653654467812225441907664665083940594386348099072909969232697980734594065061217592843063107360280601098167985481900949961078350871026417540849433481482461137274720577540534784139376723544061707658791231733505652956323109973262582611322873269876568489663390116787481154692173669676166415904056008870597699760373377305623584299263806561716058180092262273271430705995546843999967798096233516702998138789161753013372911591387110575701543750347538052876369144031982317525839615976685248276809660392718378502717806297758687655353677680214144195775783855019818168116902330038769670608536040599003698781446024644380786835546082603979012823468194714109829667766485671376018906685520803184748041984742568401493920292327711010581121193767363992822285944436282615396574223206565573563264919235041943846175686334215221489920521308254790888504756865680772210250421639456055917376053429415415063954469614436302243349779980348687724958050329023083010647347802609392361118523309588324607775264697441397956411093308840168313905064829214404228349960634849546924311412655920362011220201620151445597820825565110205927230331859342635658631739087606667806361936630794495926302430223745827219807314907247615864287579946592294548448289235439494845481655997686841858200949347387152734604735451214535279799252702310305718555986279578440194657570177593098232922696196781764006226029539042792972389325084188457449926853482175190664361429228028576600379541967958629388512272120845977795471740963709396204928787334914027947595628037499789874821239989228526287029203105286975297019833169808187322503521699619401005370679252405556126993233177653039621568291552929633530190748830929126012431495181122119336917390597545696446347220949740348548403578484505520534962087714232604357924803908704175728907804080704665787544946094258236149509431459115306554143524458449040280947993314027409492944111748285069040676727276993493768405591900990759970149237280766366797500906462064430047522664487024282291394574134627825566227267583871545218537390515922347631957221945615913829334538574965878361218642241515719564886760622452624235136090348310298582357071401102931212240570993113081791456698690535009111452527863159199550253467565214420173392757141067586754782975546666180855186165503223021789474200210808220500922943000122333191476083467916865434156954685199478474202311174468368060214146086635068795245507590566655177332295012430937003970438420639994618614713698490733993646760361950593050555774241960935336025007455000108473394822903224598130437698209223012616589294702334552391059287823397313448507485838871491144489806130457749687609566769115443358203100219030816777699639488939123902027316989332831675129537155596073199302991701041355023528845273214820239826461053323420869242368993200000929845756843586007205334171461513821697456852565325039203248460649673149768287716962327668204499516699168359822819336662202965274395786369337511050594681374706938018499432536740657064024201691340613316677782685116519401704049564037258453380902021794248526098707287298020776454470861476260249877337768097592316030592760884382977003861601578484364787770330896451228372771305282905076909105604968150521726647914945515530207592430248118193411840786868394559365344018487668893081146329697045343058578875960362461198610076656358039328247991336904633261864479585360728365565929182079739075148796203514727721358108532333538611070313291353979703198372000996779582952575642572953072083448921409858189806475833669000358757969596289112412954043872422686898640967788143649630169276379581937148524603716837294177730220592175917919882692910736020835594231073631397398176204115567663354722845375834933374448465976047666600840930240982308335360449067982247564636175734412234673700224593508136116492248208193864289143447340868540776960043440953274755924535990476881325923246657448974861260534179717993379847055527074378466828849905687737110577240078448381050781323728464860140291479867650631515148125376823806556207816133059508512409182977280956283509774731212228725045600863929673166449617712000125020591327701142206370188210833387024693191354215279055049182930795977677090761076107089071244913722413777772836158905469780975834197380984735394139637009358814173786592016097831361111343411801830681891787891497164183040734690551989882644414235119087743944081281106979509449370253129788757578084866387263554435788394952477086263799107105667080312343669561583730992913146642765093921673274072989171100630702013917242295513880423624788295429403021389768760002563675493252346937598151912331240898375939894780343994047550890134495930192527235609398426726913910947127208609349281325787898317502140352453272105784586239479974375453678699265163288027173732708317191990678338860624344285739084028257209932407170728844648682103664437316496361113013012178694835146735286700862258916331953949716570036769524675309950731536350796037618519584642173287838063591846495639439445953499588784434959887877196030347541755909715734374089600072412578782996921817173746977582006753277535668852214863387943739975704808629207531278043056712920883690969588605361728151570806311269899020226534504099071949794565592302352742373485127136019876878992258374445740932991383340327112486168568744742456769671301493029465869865048997651994996302238478893732537822371297840942296339530125421036256087203970786011864013146529576992124205448874714642236199539346138411553202215742802256338736586576228869040960774332601218748030564311117880506968589519222850202157268455527786287869831424764107643782883551632738633385945701858926153739199290033204009206460234068672681492588039839332287432493432224678536419439201924620951414857878669090303287095941778382346503234194456987759179576407258202467725145805079340592289406799201612986185222682247817524777146333912104079575405551555105440045843441342331581282258842664769301531962397954802788110612519958267252891311338928210234366405782388997783524967975006191442309379548842282372745953745461356758992457746713643576683119145256664623322137686693070674526945958565910567244985829221721428816608030645380294457721226297778917837410071934745719307510781914088567830387425620498605513657685171867487578484309079470982434835298584060232587485734933838210386809458091136682820074304753755308997864923001650896328529867915035114770798712616825157829305612618089897507243982309459943298486790916992643242631024518319475531209830199034894311373529708118412136832562899960161050241355158074228151235163243676342885945558959103264220637609963483182340557245586866347381470701616851230161935683442724363901641319778762815819952947976138520637683049173323235008606317621270846493292392713314179829535682477168638707444524528018770460634542024889167549562140434421127127549325399283485456410383123154424164974407276036282919333280182667015103173788419150566190076072982505805022371815673758100494960875324802161194622249407906764116240510653955287152873627821877138496664953590492234625488001851385054267920360307704701826692533474651318549865259634069525852413922102082895779992083900227601212556357103974162030039599957626622179940278951808506628026318466637775894306608639051878104781067468684022393545812817823529962716715832817810376289959687726061090137373909075360978221451201437447408327710790589134358533312717584699762902362842302310907717742746879819749335512851029974309302178769226286306997588551885144372607944292470982328678435868827749659975671517723579790719392336761558943602580358789984387469639915184468090997824889107078115139620420732378536652618354624530499926818714610050572347180142357128976053087919705094925562606911479457913398212535472458931891681987901790989564937573818515755777612171408822298144754436935007702399319219367995166404277811501879908115601762335126015718608015936956931786085684150342615192466424006114216983386053040784088965738359223886304025511310268362594187491426200257082445858657696069530322453330227090870203484826815265838296268563768032698850390300223672208701610106934628148356969130185672730169588252778423031781846152575579986874065108228926372356816513594583509428969063652914355219427775596626831350192729952886632402537835330273893908479978032550192850889518669984139414815943444439873934785174158396866151692578947190952778999770467686991829566303354407272887817350374314262912402590447749393189636194135719906481625501530103748448740310502376399856773993889737083027526476925471360470857524327187584522573588556768645205680539660139165034045984244728249745162295835799974793455856673851661493796271900586842713667525001226015076158211075972812873877937766499113785273793015873426829113367969035341169036165196370552173563879442014666072438918074821197839302062412273718561783577735114478544800179514627411282070588409664505905693902606450294748945696011896463236371589484214952792263861809998235456023838499945041211132331984222351578287804009989306555759826125824154488260595802493065311446145884507635370231348550764317845881402448237928217250898665666370427249618934910945363463923214867242812075556038076899137407729619974993559383025656641828663051669544417192511685869400895624925457356036882825648416275837511295457616780690065940094388604694011547193076833040588976550772711157732831752113061173567871890970255429616039106296699503592813120956315349861776631122422822264591681130019249764120313597573468627897178754791001540321632779333753321773989369982517818217442586832501547162087041190506148036346815358013095466629354800704051912919705847311311508544792912479894138560013341214293141149789614215597769834023011353106493202294320524205227105998799632336061150813542514634850120136202079524147094234126156860248647341252308263273598379201664167450854531407687710443462155024290990460304783770339154473760930967734437629368681089440531333170977801280683617196969951859630273717303352767711037519970337305292661280530963353981345787082823863405914536959495530857226789868714394253136246615651129249372780449492020742157972280274955051187633031353252994529877497677125710138946787118072754209881961845311282093874045849980265357383237324491194655702804068056982421151688024441411671246811626224534889715206842583992212197166471594523928861687968573410797184221383446703324346834041464253191446960323691346925646114108486805780382321970287186112750781257617817296833478429126752816604248979433974443087033644960510563258677590981103471681558626120355472422806165767968835421481998041114943895147147536820924811659499591577221829341579115420525249469772488565274342349817585204807072271719255165653037245544515827655883055293584153774136818836859552230533333180812110740846028359174293915658864075305257837978057008372339874003321703161285024512899192496858171724068290553946889318609042299794228443336678919434907903789219017380261544284716799556382490168209039514849995822756621794625492200926482746899646510674134565355094169396068710043173826372175501953909639589791213189712688903041829489800192386582705606782655451037780192805763133155595951789026328827248889234974840846666972224442004895230486032660394668270928684798138246846460929926918760469951597965106236176164205212842227626954430876601683985861149383408588771945580159566381748399734760211100312673605295627733891379362960156269585989151204260047186586331683368834839132116206906889945815986918085324521541770580963893416414514599730575834441539395834504350703288125479225278274287907893983046115375089185997378558099814975904299661552565789943208121721466523184865573814013882729499024223614857146188463748595613374855993310504331578792825962657853848616627238613274934470260799352450099168892987668114860795524027437552759907623310924791498171169692871219072726486343727131047868917423414700414766394353968135929778323335488877634806457353081860499670722548691940018207445521331421986682205041224040037629248015430916795004327632891373617417731055312756859822884069560018059702411262745281920892329339154357308266883598250374289617188967076300906088537899104459993056772788721839656033729923264923912312486323290371455470361620553939097082029688975638102983228401217908266695360218357538855101233577662485876939163832044580029904260058686801272171356327650586757828625850864432876996626331538471904199128372105339422274477478963935292036782056261517188855565618616422737848516376455105095967764086326510039211546092497444371949272013612554619902295309249134595976877588073361333301702811516090884629022337279819558384612328076908838833860324066554931748687706800521864866105307223381896831000063864895149772796487983802228423802149865734030170563694027513189086337228824342522210760862545391380701151429757204271668045879555707468679730741312778791618556434621803152111745556248170306605201511413177148377171512586813922134440546012801621447492695942500437089304551908362135649105555236715888456468343770980935452102917404999030060063418403364281655502960902262504217334486064620978919773207830558202771102512529075136554716986938626986863625025914089431931701119937040651658083967870201911589397598684910294000151687823811398346323796356418303705184864101378538429721106167288742487878611542276680542175227063576939373953326317213891938534918688638190126593592983733445782189079587502880434500927824588724283384199542756588290487802845256179393311577124287198143801002023594928000289309883084387934718383634323756501569576453007541485706306125804282345697100573350360680004032546357089984821299437932859494919430204566958920825485493147416000243494047302535522795293928978144244424900899543012010445238329065449372340101705522749372629036987720219693274188853936109226187196830001102581810281943968076310731192897137380270052800542086758053784718902081009681353719320702315172565376611076517738791784017172531073165455398529973082790532279872399828719886696082511649746052449094354877005140288068459998523933183966480499398365576295428170647646866100599605856764752477819910237371160339294588405592834175732982727806856816739892243484616427314666780231122407250105343027739050160423431438284637470043069005084225020145441110877535692696559940471972587417767930410903226949087318443980973575510843363421266961257167141014867339630792604203702110862453156004853612927742081271953106153053225587563792083278075128947742684147949760631511855495460564709762517363242221813873920299319132681159970581056028276608334397455607712303516778154481257860237533603475154836332796576035009118592502718667315873433545588937213655986685992314408856509814430587274250216018417724496118070120286166424355146042322818040496357315356876339146462205752120212154285440895551718967387958887180375063504798520090577982087717364603329598628381495039723741339325324111069219622125142719936065098613921380421101403290167924382639058910835537365125395827232131916848313170732996560866791464902963929676627765689618355957932457679238450007292755146859791582334526670108434848608444938706903530383149385368168371104749635819328197363589782911705467189671717677410485063125886073601411441296262351627606983513414454645903257532390332160277443046950807358770263132503293746995351292928055276187684069255104511161429587450138915422002083321791805421196876063010778255122702658523823083029630877688286416500580531040641955965909518853853497458480163225336738297789223449039324383613065495518332465669924200769492151841869218223265030414942686160642690393604246808125116607893109888185958897382700759027930170906031588241541925481216121686356076372041531002365256092186835701171570476584340969882312649161558637101160978834754912746734782382449349071678324060296412737706422467034032896780527004272454142194421283501664715928065587237828930867607137872626638858576737881641666928730936057365120032456265737439385831835312919619918576304094308472495895567546868382352288903629837417617109296021701905493235161487274085086421429212501680956929161164945492771362465619245033306360254386549145164093439631085750731468911547396120887214334392345146744144851664744229610190759070363004747317773622258682552204828510157543164492208110803985661543506345737031384985976380523218075654415890745664509849782668803069912944050066960679350544476089048769089864727321535653653275525497176708171387341248937546589113022938743578806353998481701820585164808319385887901556983176339982147049804286469033419716666602589658736487132142539506822158141240585724925498286496491764155706605757063168161916141888202446283785689262608399530322601747842899415819869269573348968012140289377227542961614860120452356801512623450711888487318679003176388087056667846842096611311651684965721739311735127108192808506960529572138628197561951776639448082043372434602722594325308649129029492033932604474347053939260583756604484711333354836450253330867177982731309329617754463611886539326951658997717217005228660292553274929528510652075262405919131210731671932190810237374353831758173504635713563564286991510523891597261612325418533560400639794071033835430201086102964884530398163082182169820530340680545330985781534998645885965042053006696434569462680772830103068608244805755058625714256658427996431338696955752757197853316705231755330549017084199719853731137939604104078896757898155833866718462188151511174534703750761319427475094751213632049192390934150526668965799587474796464814789864524012004850881789975207587385650620153073913115967482468566784743249743516104685568356521084787131276513724057103846407344838685904108240017438873300776641277580471481667940280769988252753961129248666570959282972845272267177296441281860348787889396538339011109846001551770254053347366493539039465984113408625291981430800294590683570974706035581407333034871966913809562998199206235948707224754842690278571483795174407128494918506489547259744862705862511176658339500102111415915456679274789578980000182929584530072246799806429136944383579758241665926265998543755841757831209731449263079640644658635332291212109944953435224629572049909589771221140377283006418182282425200944537699784601690903779733786457568145467782247119322782164224789642064697190564873969801667259536551142845309904519746373146656634415612881009190099400452601970508120300271994258013576335238273861818634907702435403015171309430674163468310088206794899853822018110363636528090874395627853362370289488772306914343439615737429790396397050366457289899224554131917906164012816883053447001991197097828053851604392209595846390562119472337382826899974179512426023875944415279765365369580742216585928966280418187810091192540143840289971452084446068570285182389510809861527024472742545979127211180610489129038447168309245528015725120619578774709581129192198774990505256739402509111724432793744991752692858822509243839827861324008017866752115120755137517628269581043282435276972472722008521877971055414367040487666527332273515264856654186960511706146212682887569358066628638825117299559584122940558548004262281554672852828988410764435742728713353770873095944985951051700976262039952519594601528404881063554406092422213436742469268768529504998581739539791972468964884308023919346938026910786813362558028498888005796894876351816570703563221648442447787442791684470934913598418776865500714206545465910998369150262872138472599779013249497191042806196986435700190122440498400546457642571089442976919521950305658918671198665272298277639890467894816180342811874209378156731774110747818189814503146995978832877087202971468757655946421296763190488224835755575318570289316788933973499699303417146734294216964840592097607127329608900824486612882415510460527031415098317398979698889613703737884024907520946260394373881113971837060104202596591190964119923536981617437136775345140777337378448655103877543428053847209487011681171210997334383946544630835705672008560189150747728874886407948517705280029743236401756494362638637961089083827687061264537970863941498896442209694963663017523669371172981310955526077679315456488711711971810558979030202069163104950273738004775126688646669436197124709028750586218358424206957306909341808912713897127530367893596075070324200663222596871413045439371454619332593691335627334486605638467078068796794147316910093795246565951170123526578504016831569579333524047073128682283502845654414147803089708025073533561310098540847049421951908013277415278765445005417588432114359388863398318811263266908766562751865191378863035484266938698477152837536835936560609090647153044908729604629587542738166226614469834957321038727742222109294158921209905442748112799543636719205890511655726601037960964892261918459603640308689157903492501335411605569053995203416384237714269401032847381446417681670133100828392737763888348101721708346728697541995573159439468574168537818859007527980393980265239087766588123065520106490383439104423513082102476193387782933728227061803099529668166546499925729137058535240906279912453537677843302669263857236277578050580361279697679464699780392671568478383779190159704211048818678571968915292175708191794817229586029020032842523937468841527576684479625393749628239048039561284100811606842190931079475514247465067968482170690414516143374371175414451863206000976087253394165198311017073820956109097075384522935522859534213173157876674300789522980516231752719521734616157470489374462472733705654882958060093607099887673788564234980672941596621844558895853271771009041360237316667704794992423085589709146825426146332566082366488489018205337362505011657272702799523530770722134158802151957111991056604030269869235904079890826028075259404734665611785410288662754705142140118183019698442134417827561484372610406338916522375693931402788676991651651081033250164399878982229775095175065359382937198438282721146316358588351674497217794456156353509122901720220132016171827851475360853838422292620922687779664196035575774677918962977611975832176773011395026015934244320838840149011247399839827720090397202009546336527547934747271520324619054008690278836779826482811901998505880424010406051931389785161667345910852942396496732061469580772634185040378852573279521918852574406085689298008752118179371926364117955595832732443593148097346346335351636926122828040955043235258431316670726366337405330356819749493390519178105972748212549567249296910945787324187861677813810132176710288362597582775758170779270986424218864114958403036329945787216139703181138269612155608756711000923319400267300411810194556591224380325218269090858146134813183014932624197647316829614113634725264085018473085054239626776704648181108777225243888753251607654050264344051660082292591651823800910162711418453856187042508762820858630830837000687551709463293892717305268662575687127641866819903707624261135757385366357456848652664439032055316616472052906321353300056545989096507267710252510571945044844257527834019090455159273817772834256860353898075355072689460308258610429494752296818698191063325409567028583280611916546182355083276235464385125995366381928260896705196942368891181553191767532521505371019042332457344363334198844078876478441483935117516769356302206283392011982139831390313514064634418230332173674806008708004466046650954071259073377844725414187411996165563872994028513585591981008019417005898560904644080528233829427831334211033047350901889200088540439587756382053255689290229081673832583105510287671482322401138624484423319178257922775838207434811671599698956517869148309188764631011324133143778361056649170892670644104653186679707248899359907588543893990413163766410276916081700831861945594533152983495970556349015044987669768619568158393922931644858967029272491029646417639683696393065421230400825973371171412644905839398814909713125704143317058522474178335130403846951885229863233585856198378717077891571193143717115053928024612455979681786289488057204392277492080787598254411949825094965112316229793764843858425820141062629673623479360056447581723224688622092885724437732711708127190110575914801759076869798306128460568668092911622854842830960402561041174594792604332403362889015801400119618573106788035823799603923726160380322776236223677017900953085509702596407714754139961823142096137129046197789475279268022848991379350476902561174463797604691021196543200210658357167079604836529826707581119690671240418074434390857241894716953776434169257052722161141188976136213509112318172304719504384040709457361214978414681783317312006542830412061642423832053783504719028099350270363602073728857848224611617258229992933855498610393212777478058219931289388646707978285377540014648641666871915319786273378624060957604179117130441665306744612381336950295315368769768291359590852714410294569981311187213131284587774581325867902222291886305653855750066849029726185691841265399116512365216985558784942513758712543850646882182047265811275291375613382055532848124404620253813982505612219542980702646949186880144785399979173074199793207195492487735928304147194575533088976100602169306939455297855472121071024030396705144204127912239729693746293102660396488541798618430561567851364607480141266942449115792475193884748565298473622495487743761716422676709440062802550628419780615927991575298375770469050603596813837697206712746550029655397452017378150426741070289735482481203565271504823817309512768835411972529582223151156287112787528693620435965376594447820546767744574526618946488451776220952396923267477097264833478524889271969154662557609978944358187572532970809442113681816958891312649442058314251807294236593610434638960791981886696708586531967216068380824612551833668729990886158971997349504398521492211430001921024754803800664802820888847500673255681330180010402340022947582853905303706529444619494068000555292688647777814432089868946357249518313082781355991595340240427356447112614083733152679022240650955308889881597768663374928810685328967320596658952038709268698194138617246005248740524137727532196103685072935405870847202583466457146702880066686747841183395684161455714538968097954712801319708817553848318737230354548811176918876510359855074486607307770222920735759105581039582955242284973512204936460561492396641911736383460139940002084808249603579714903185011021604314989890918455973095865119221362505173185276094094228308679640181338934384132822215540677494425304692409784337492106895721834501577508177830100711149614124628192523363048785116002351656896687902513365198829696514238266925864441293760683837682848640898734903077242398570555149406639261536194737422537306701893573440018272323422537683361802243163955861309153369170566085126076603497447243357033317213617851071866039943977004503481321695628793926959271887984951990943780610522197472951494240861842610538174202658093403072410849250552593271792112408170737475664462889962520609282659294659689680729099923298056775339375270775435079712314876081538724255876953044737736986308810439749322985589968760868803949491754541958638333820034558451180532339099449208027858610881034121338940948477874413052971479900214167474633578926667371333924410959816231827921188355612982632475944443280058900284778951540988110039679365046408264279938338180629970719965589779008886536573865058074452414584237344156198664499358714698240904166790537464010788948133229987369171065382761212086045015269468173706245961884381146685179134934478203613732061856616129997247675628870731771455959449186140223015418822806338599027332501709352145097928938725067887225471440623820122512536377739203506029001440865227311612616097288519416730249823418163438160777490687638774634946577193829656462102188658524285111692925845153539688009019327784192716308326280160734004800088027091190158256298819241485392616892682789536448795865040803858853153187455453596356704974352398519425169645869565805854000805674477625118544100030208708884062211653410937047176546191941863760354560906026889375150582480039034425902266016041369215556874198889919388622570813688751201741663072189426251130682581385594942885300539356634082125948032085051730027126838695980297248674598468282053725574513452830574852788534389617924662650523017930712564172956499924639465515710499227395621652554270132067877235166174878476988482766182802338299871655021077893673276750090483936002019937940691683436903464395905316638820246835387182549538943264123829385755593688752567852291826576555717188688692812071296129147588460801645058332403684769121640387079958741661451475160072655798120444383005683437743817141557915423023149871644397963356525852145394959227837629088650105060584673369444890179523190096360977931391587863167070507590492036073255636957629682726390002820313612352036769025189650066896780049879685516883993443677075617526845764690706121287200170187475176089186542379227298265885654850751199542998938424031651325848487066026886648885551820906128426840257072469598082803933929680593042021499108714810534239194780086593418401464858300559016195849045055115626980334036832706639251916890521482299177623382824027157890844191404627664022798904199759662993914214914049928833692611778780240429175395188897920110873887621023487403570000226262448747743250986193675059019462531457992951672931099566112247136300869794045661651238883509010430677223812112324784282308811187840288807900577596638825842966182679593912107707810198836968595457571568137554292423149103942225253401282281629180086712148401612929438962394685291084169709713081717215947355953298454840386052054247930706469503523073714006131517858094760579726340930103861139511771819464806746357496152268987048145248765720659776730011897473433519589051429590906855892103452524576635187311657754871867282914590695397143779286879461156914359921376328202832771503712910194883020402074068860846244705114413832843047939614722689797284717312946744928606542858294731929464242543889808961965092500848591778081924767244772812951813768243072722846985155244273627748141353963563034260511397273381527431480861666855890503086458351199255257287841744909416592652103124466145049578155710017521942973774506210237769578625196941334090575140486109494370711468026148060579127600062089079683093896852798324717582977658940023461185936264037477246383794146669232354389633755467806511265509311791840273154197432843698856356137121750064026378976118867112518513122440516437258044401668793656432399279311990556147357737145428546347814548857509936550946402462652297996802386177003167020785023278115825126334082465817030701255421198830195360994094043461818434063630388543628361801280673468057901436250018625985289799799877378367643782648601177627185406611105711267996111489279885782551317660727681421090114158997710747780855113459236090182924802108403154645972489511904075299299432629801207824641245197147099259281533013582270421167811390968275268702668092453726899780791429673262822842023306262427866144608944447752450375393946112807419524040128278078779606150094590090137848430337490982076903831010197447981987689995579299782353358712641945169583126207791295460543725975116299260956774512942666049825195630976578635237216274819750122337946951823549399235036432445188744148119595103795549027897565261799125406774416732525719644323113526704043258714861567713456277499061455041675535786180739031048430339632974082743333283273037734404318686263786147830397636847172409167381749904435225338776240517620311948766339407693249479724134989403648161212312736332352808154794990698772366447156663390494418018970046099355638756672499986178151681681843491475754480472249458981068910742945371989558416629005701850799836523442155165794675867487500228216168492704562747336247904161802548512750159008282176010773325059596515414812093236858885023125287723107233915627077012929796469537736776963607714053462975436540270754932100462401750280783141018193801517685218027358516942414613047051739228816906309760825521173799945739732497372785634270346246947465872145564016312344310667111851440530102369140544426565025502520348521436165447414191502992013448490547016348067798278292589159908821196311345532141558035530425665349196222625495053813966494939912212894326948638760905203165337810806891696846463926453696747041678560735439006147494554297792713817209169866009060988081924703208030626985132320894985343814552100065854424402174106156507639420971243611879257056672683088930661579773723274065994174103583972627642956030464204881714753498570435557709651113466713400676408039730530301946438653048744102374063069540392362458553196504004188136663319907914168358300809359712511906400575315598417148157300981046084175854429929753764115876557492538243933885239658653994158756905168173126114425228930864304338419101539455222540090124557781710797990756029511073362097041265643452931185551668718985418362334680171636248306395139432087238557309808248802444962488282802311593635472601231982414125865027325407988891701600020485927309929937783219068739929474027498913171797907011570261510896073158710808724283600151443059890825407106552120024536018378543905900908971122323441583030343123837445876487391374168126840319133345617402971051228916544419565515940852155714046010932792166415136014292933511141734061838597636835785590809349408810845347055492924860866341622013142353571301154221330519199184169348226047432270000299050352357596860371551184994540140262290016591326553127122778801425506055919158172946094507022243686143187537322538893578405303439224651661125889792621442731344057756709740508151238700933047927742887697025290535638526131329257201966739369172839305228954027865235923502734174103891655894492225484393072944531720273846101942295283416911486875250491791752377162299668575694715230723003847822870993345195813159419617226017112709901439889623548182122218837568053925571033098960034925416775360122723591658306117660643800195895984593696073042435111188553178569775659466475832955778904005362671157715216079588805833672806817142086389657531117686586353308075462025704055517359553039697231571400469307986337407230945049679757866093024274865008190602889936522658557608433612336661470261706748331259870030756937359308044108377395924555854792001918102808585776452358885803544995115663269899811478503678527768815919375626423169081028652955371867082084563238068871217760881641209168663438638446536942499312883171680275397440560009841561180754116050066920030873673156270862020535493554238295349425178101636478701885866322438669001275068933507535567603194513216920979569394900777724427544793257679732270450307256493869709071916847195362755728527573882406461384108346356806951547761200474400733005698233355398802187431876204810769365315579087410477372626184140618472525058206519008616653209619363637385548395285882315762379656990208219298199938150627788452197272596795248816743709772454535587120031303310737267815955480193660598499668192383493047712121939309205413337838691605775171227040656376902387287809995928105939269260370039514949319989258401390678842212696754535713416743099641012387783025335457973201864617887717540097639567289168225836772094818334920875828734585023123938300236697965765371755374882707907201060418908404890031126166600407199749972915842316094658978957604351039548054764442692081151035406139733445107967535305633396452747065771125542247230723598714574278712581482509342804636805974023572571034495650323467927595762529282036337794787504404446209143144412076484377959493291823545185754718771430774386110462344514426543316805791154812066168678053077756722806138585203238558780215920864042603730163853254943600140679193977132951358048411112738069188437034495514115628273942801935013869127088440677182910448465678313458556766977803280078618477210674029120870013549563830909471383035107385829530750419445198814291457836151595416571490314495961288919613660588057255035653321414946309457927006674108298155089322308343969689537912374804949052125400897206958709285358966947948786463073979525106445086474015099105150908378137798559417635906522491392574260439438092942313571933187966346993783492796906300160585948851235489537521554672394372300519179695417208617619393721710020197223780959629706230836608142512120873670811310432294891289916522946125646785861436513088100592113406358831647572982816253367745437989279813634430233208264494097312478479975145377202608326526931335639795949224458897753697313736939755319124599880611084868997889705184036391822105863232846899473054882936561639682297838363103534140373338094097860618359531576209424649771678800699326881993222786152058606577009129341222130918091800774210535972677768617689852368464904942223985762647902669689181923315556760710216405119804637695462020781669108672560385452324636349832002420343203876465104324060161713872510956058735192963091583303108847210904407923101753050876148633564095079375398244781229062551193966129145196271986144272599400335911067076222300283904876840065957790987419823816187552455611978038204929248660594817475576610682491071126939433459947862339093930952304716048113989394685026710639434801723906449056825539356251809889871057310729661366956750991432516035224929655016490669334591254930462000886474344662524941715363918419502710622401958841666413682760089997854962127938764510376368330491851272430752108732066690952493772940622008961868746022472983554648295608799338853906492813006203596471585796032747796441771807709280602861981504683725289837802554780280607860346978169004414771806279500839881599980718864406021889259526609193567393926566064181085477830597615922193868577050904190199355849472899526522312413007558329752860709426961018160409899165559862820954474150910337720019700265618744221157499015290172342298533556250473761728348948490075452047374694263957826337295501263323653676605785229041478527769484830819927734316342659074178845527001953914248512551518420850131066626910331152667566622833813578596610533741306557335834536790511614384390639078792563722005844241516477858899093452312611966460240534247249802233693823250524579415286995044421456464503700052372962128515030407400422391089863666901764116446853666296419839744709838014414663590182004023621711128163994518150827179414544336233481237507219137408825985803202106810524174849621688031984016009937793750456765847930348882376903189022029179385391544290049880985697392400155441202832203548934648898161335405969444707725923357667307612642093563680339723101515341271385616507062185852325889726785394428187436133879968219458169719808637775819217793317954779519973618339387342642590794931776847652540478142718844097369636614072155691149561687576600984924821712421488397415421463199974219806013857481952153921084335321187672755907968198076775645363886525015270720835669264053727779398599874844079194369426201624044543474711732404473032756135074738048036509890425478190603941083110627196351714069699975043293438949398326052149308964697961072286809768194233962714835021059663787142819077664209326693452111997127393958652442379276255227325262932503943465571431196582518018174751008075866678950749048212478852322280121315927486671316242732026643828766429049774071402975678265886732023457742267272369391658446568206075757698294662352044553471252332931088356106619055106237039731494348758208516484722650094042381948410786231598949499378555276134147097045247148905939975673260347907858076282087707565814341099454413069428400549363393134146520619225599427006301094118270006256475046124161651890065697464399326663486067704117583345382626674474638992344548943354772193406591312607262972387272314433586707946569319622836437373375993122046042122313199770067312622059146726644117407188926882428369004272099284948375671941215001272691868430284611121878356744325619810813032279156227156054788824445465277540926796421698631779698563433681126514648841918866183145532603893879760333903276200076280088577858541984593589686177833295250075048280369355196879795474548483006176341046758981483377532932651497335733382305881335432973500683398865778310113896546446227532980100744635507072201006579738330896054468102460035807301978873934178029457558778838155949130917208796749668619523056269545786525315175078209347213967189141663761870554352104861625574238591374469909468644754887959958270423274109617911744775472850008090549119370153320246905240516815025752227146106014912113762831294297213594021508077744852129158847232240403777681493735271789929384640036870679975839568606402612425197434698253838498163769662310593033589581366445773464458676244653307376466320998968954635011024150227904145796681427058741190111397939794894208704516461009579116602776550604959266104049468815106552746505208135600478398801313129261300162045257140455483288609438961393164650008276886392273466931290104718962509511971365401324750623906116112413540522488216676952805071632229106238765795689372767160713428891647439794003000787137762206200689388841558741668870542323046457977817100675185898451815117208953969831380178005634820577867479576631810851101642547110424443595651835195563305162222245108241338824799662575630723873012187190501820524724212388818869516565168905843901476966612677222424372395903197704752643374552039857063565604128488703690240326933933983205649688775162247800511489409376052383432319297291664877960677314276861809713760925739806078803635661260273206670897951729688503514737027279761395014463555861916194704802576378563740476119260743985273843921620987868661557819943696413844744235896470103309483184390371843537063551598645845780144961014315022883958924150272543191850398116035442638449207915090914482880019356568398111718229770631272464841489490923107282909020546698129022225029404069927981395739751423197889809211084719628232388459092296144041649061120939769755693397264573736892269783377225547249412599391165341308340274130090416412785733629077383941470419506339978025954885337619881315935746632301602840291466130030999775408223746647191063290259703066784262812243099800753575026199406658100652199922245707222425596124530819057500817579392246457160809418929940604263877473138256814036742804534473897283464546977661771482783030517919504881060031723227972973574206552779168430700309050587706419716540884734050644567161072945664189509861079872157877568199257019036680341298700503165048864356220397331663114759683429233694088264269854203013214441561934054060022267579289265233597743341457413586272692921328274770797928002917656198656629043255232646210176967545260097734011763280444292915582236665267147564585550378841592512591215341625049910605772936985067396059029848743171515552533697120453740009031207254694801427776329155760620679348342740391913949039442214797816756318727956333835864655854895405355966955279895583364648994462391240977887124887150803641009768521635760608434515419718563777739420044355290965037191967910822043104223641933702473949411725491031467132531383647350503844619442186558589780710100519146477479305816654125582256564364881687421987746197424783329241732256990687438893238145767724091391023426913511921983354531651399868172284270656636183273158320900970760443116687625792185096870670296320461551418712547933536552036057981476285574044222232377401313913815505574673764631012594200118430032281848043727845537365887546161937876624266868499359538799206550007371501875966721724313226602565521704422821778849535623320612549195223029698597381292900395355104842200900822795074879836202687640125808499438616226247366564084597558314402278728205811679634113054369568201560619149533313138894954805735747226257009596197537700847399673144312662658128289546164070003653400050894211464784627631625661765865233494365833778116124473668175321161374574390209763310493683249191377733258658226181680460104678860935871787106469457655577262529538438142938813630115847200631294663041222195706111657778721239989601516999209229123976312922907442273745354602567114456969483192151845573894407956863639136858682488631250512994213705964899352849534819340261194821773998813492975771381588445484357263692614079205488536972775859460167567393375854060765658597938884337071653764662836520927532281659338639555229876601593543448500009865930291387990499779745137155232703725478725153051021083525399444292341707550284118392445354131368708905951465081700670072457948544702306271748639930239490255680173805888857267140069800989954661917032684820861316796603670970813521758607365658564226960267590341515256779113261527634042510582505989965147325452751179202499814793097454991265968111622092536860200306967308823952216805864305800765659970992601377380510965258431107410943277506322712849441693720123023871180376196922895539197226718694063736286747541567146314815404904266837649153603644696912659977848296304802838452367001496619570635882332645620929541955886151266012402596192459211352420216867994046339928804674837773309954638496748663504246553792770373931230572762411950129167885560531290288593385120425079218830518919719133806007766159171206939498831500345275308863727002231952445338294531493570315583707693053975856092319150570983979167489072525332064702313439912991628707969965870441838381779661593482379407810764833871522233308132141974932885407222349265354068731133066763015514654529908211846498619465823891307346679601876187032213186059238564945845260696143550309880241256185144585872854475961792879620792066931462338066032423578155192447651591974221375170859733893659220427931257156724362925187824604813990404952721191106332023092581619861623469359053136215624986658857807340332269539625558042208988732758157168843254047276454141448145566963434920614245497042496270634642895205682433513016076909978143671948224853561974338126269517454866421317063186773409001337091436407325995183458856293111795727252017248172564519443792646370063384254478944640030725761303358501828870714697772831373047540507113030789199041266721634162929543032951080557339779714697342613623659815996824114073597470043075518740932474590321263734934950640416735729159899139731134810654821346626401704364801250160080086602453054541081824025096146133242240944532371930999451143630455225700405724778788599902484741598121330203301498597934030251244049585222392497886600157442432629970470746965047966621820230232332993237256233439688791458805636775045177781200799018173355505258298290609929205744531793249335881879253417019189840373199866336048164144962152101572489798050805688964178017156184124772939562946698508267516125636944954649808427813452625588785499238459456099609588985056527452667742257177665100583579304054216281333504761827163425615640541859792124697184239071619645593187144117554048378197236108302760220020193294906640310856878078198240130232903488662275924133932112318372068744463579216826576723703319670764070496499968074192374033560005089986041907109352965443033162188417009310802261521123871299725144863714477638818456982737585001242086217065307927602323057876115300783613306738365581594215733095250052876078199624981542372403127170774140793867034200661240700408724133122790565680720857246365809432445957251701351162077604289393832441894542488995025581268816500810211978533151798743884789215200261183060799302864876371283447631224626376608183364045854894873172971032116132412777120444941961085580234584745918778515369993791313487002399161741630690915944027104664500666889937343281296898550747133319694373967854760350300400311869535913563031335352317790300623987175753671028596638730110682440546900102819939463799317867579720075136040878742806932320652107183749399829736544921593082389504237741865633975850308939222574266234567494802137176108441546634971553464438897888869010301230054189024733713881278893136380624506429126950103331786235972171341507277725788084762869715392442115644551160456218094912328036227819521554913596827106879223114879779903618248254134763442787076404225883368494368687594204418275554964935427913737996029459193983235636062641389887389775719831193889814731517051978200239064398483763390525164390417576803980156529736828163346855999002083933279487290651274389230318846600591839394980538359607256557869230119748564035883915836902056348908750797890370617102863646343997654680352685132745856470700857119429183191667497890205026077890373911038239917350069302051075033835387723925345114916023935360654043666262385634801726089748327394291747363683621597829422833786073709927662649338689069447926238015049347581433239897596083686552673741081961689791182201717481050334372626479303715375785553238815210303020363992925859604991092935478897013078263508222027377193384727871877487962054876865899957009045231401759946544428430612805715110188376257602533513694200697967012056430548446233054522706059831167643973950262791166104677495489810628692330721692091761471349300800620171305642968783996399411163728978626966435532587898426793863141667246814166732105116678259133820308528096167263542443324609097572870156351889307395417075294720067118654381720613897534038686492231901221507001539427478135245379353629903934829841305735530478000890634317764391441535230617220141770762159140003297412183420450871204988649574358378842641259696553663784599292394850044891324854281367806366782001349795958977991663410861769621217237485745007545120053903525385804305562869236135170383638101698792933621223541007781069334915954311834223159012054074335265492974490828524690217501855425400731481816473386058775646858935766697109922072339807407134262367115345003543470026034717081851690994402440989638229608929919420593358111123671828210756531992298973282962269352086617667038060269915856596161769744486803659217280415102087854343401756241826820183059961938926416177729258486861869704051930104759818010998540526691974566030431494236384883930831833277995304009222446617717860862863674941025149156467869632172577400861543084669008115743651999916366088539507891686313597504458792677608869544279845185216731625811541195826277736513035861211458674599912026557257603942145050446715865793941574432093147610362792231188593225863289675049916159000869888606380578364170863219523845090570903857668279072599720548729611397882079259221249656145978330883168718870430654579996933996842248709980218938863207446443549743251662345137541217436648797757248641690285235951391336196736112462114873960878533535739500358033597212967373269378607409256117982308972111296502404671149673599906331296062313764489702727054570400008695510863017278360929680664108855852685933762549231595207959683727403839319344790556837804302106472156502218940819392822770155419052449843197085223208098584762925342377522315025928629500305949739709732245182352353392511868357695717556746794032636089321393536545443472024103153226612843074776211817363652086257775064253951724026889621622683720505123769697379801884374277402030410881036761608856703854930126754736709978893467250185601808905405023657895574246893825417572838760624919665010920787338563335434239056766834782775719579587244797134861715522326873668275288269804058623958253490419829765818714206165643940268060825357965803615553203175006193748229990036141801664306252233670245373629274554414284321536699486981395398792987724714823383792703013529360385503358703705148490936782467364576315382172957107525730002538277451163120603462372362893614044948580092387258874992377944647679858644229595323652686433662605542221077390299322422100874699579878015838451743480847208532133221010774125152713259260503034920640196061870162652317306701963273921718924902205986731617568488735908755929263266077250917897028113171948234624427820812959764870844597784523752857405185806943393063416449533335299361607692693991280802423453814018778788993576809476744898898831514711787481279053314354303858746587327863589372274268791426900679943368129386807868604243425576349505938661690266587514156140721940905754074333199653360307834413401244889110295007209544840945741149538560478350861998161530172127601391007882960351268113580824424834415900695359206676738592429728291416468879080588466348504183218786409348373823422210275888425742198812088920178728341114737326861322521697629966469637555790256638457805625507554629882009623533945919646074962671253857101810391514146684983074947963412301775096363473409923593210281277684922650650378472306181011487331673601547071268155233223076635795671880152783171455143009477672903355270084737041563226208001493798010942159588282524305727690570536475605030936053420266163619820805332645362948811863345685034223520054907596386146048986255323185448843759184038584876832335409351539715980293268113468017646721756974860721735802456154400447368587089396430949370185237951184460034229739393491898620597267829716279212450039577997355370386681014724192737648089772463280384780702016424448294971355332523092935212883890101895700142980327625367474312780591589265745857536138766532294966086221551012614589089412798017870104464383335009655165749074678202517032961697652322116164720168974032852672367711305575571686291734119453241644706604209640111687494776101430320081287478548489834113219801243075444484431874985160210754891729275338571994786557835072139145463290023790715805755225441911316956090564358792878583797021221175867027534024269579721820472162405735390833369064152114569458771167050843087569010044165980656506830014144954786861047595150525205089144775179557521451668417363027187380803499755483852997830135363619361080009584371781282958004199232704226550751229871771642501774466625037125886258363773812003708289914391491486673452282515882285510964298657300691784456273630166450507462309410615331421054801348602781488225965984657693725625991138895628155351339282218774098251395464266906808552767242244474276694838194213213571081349430683428963935689335113999614845819830963352942001320960237585237791847805521344557835462918446269074707812925770748012590917380539776514607215083620586021162039984606523097640039008665601331182808529714461764624649602713802548922666893856779818559420485918844224441005204910826153369865848411129919924686768822509313269416260853022688930687977574956847828413691672235631251122402726273266567329814754589877259619589788890520739078554010604664625576033037090357715542423762656432993064054645231098979867347605536654104631535284108545975118247613505685492865519245116199307205090259398729400222892910358583420108871901828840648587075564847223836038193577330510207220140861200506698708483817505218667908059368347405476005115615349713658424386800681317001579512737666713327274334577049458660274134140852218975561595623444227487647634113160532233337729139461651141416549570279797556118338305893846462474879171965747229954174130067372305862666406854184926692308268861618216397525211953653230719735387816895127143198462655422041183915741163138314709887321382294666729215751852933885571900779278441353746442938207989252846428711021620294757958275541745027198804909268259066220092015764422038067005143228531428659483756605881816898118121730929200553754842690380187478129798487952819372577975961757162927562203611308301082455370756835761563853026189800414934311964375092464495707232737620463620628129985809117663638066066530684312096507289905798415766331398696888049667612618672688103669769108900894556448089608666970930976211232674415536209537448505278095722735285751539178513458490261461645670489534436828586428044608780147942703711382240524531947179534915311962811090448214174827668901764681237295442279861408931051492601491339359826488922507598723364494966426382418401044311734841055665686717750379814091091399113083548509074910771121302172826320685701986785526121412445910906102920538931870740931586820027632486256569745237902714506295379947962496829330208754038067055027407932752443798139045459856465873876275165720465892783134437535776916586481585716365534216268785233815093799082838367729418032222632301745806618082310275841942183862176180823243079533420460722073467616148126336411485907178897625520449531324285415451340061611204359872305953874974894122910619011011597422181026204063468499698840440516704686662896070355058943181031073575307852134216190472011212063939571800456919811487410305373371250648110815637283353994561245254904714730401211702234881232917579418804600797420114113803883923645367506505646850408317546828726975446582655979990190359829155995068574405677275940547073482389364157679325181836485920175855060201280819781824157479383341191874293783796859598892373154992971637160901416978700392728611630240499332746348452557211585886882742936912816943839326931867101896335669829439138216346786512879580295613326797480221869358929616201438142445378897919731450924148892474458248993181877364995262305035584116437059053141184831113543695487638644356275515162643444505109346512313764827050751050558428814017194822468954361730172021474048790999972785646865339429379353016126393841224791188278458237295992239833484359628212550463770076225362608230749543864724497218305694888882657667504861258631141514626360125586883720444296390609956525408679649149553985475160051376588976892319623446114098294994627523133081327042831403663893391248122489572595766236736586301337883495607285612605589642460191257713238019553214769668982723898351161989207244862422947509184502074812909293872717103026915254428208502003165050474928347687666538471875942057140196050542053599011573137714769866549732775667891279637013877541885031300265608556269962726407181840750059040134789926972845589535182251443109240105989078433027579021521919541090863116543261820817760895592336065703633658334444521834013929410091711229571660921071294702322622986956670989283235394235676599171359844899059278657557175633337824472856842988653879152719482813759677849863049040828761395255930161736004066449997115068066718036092391132838043283486647105497160817960225373206344214670979660728224603194486939401527459074915237644018435856751260639467529178210610386861289869871454552797537186309849253963266368789862546221130311436911730961129516020459275919440747840102900104360816982751965748205923494938128978417724742820865068915640811968006373551413960151853563698638614171050522068628752159029489371947529860064746470158420394594600529801614740240352414642427399473124687461138434767682611424203643497358683048945004442111922738157067963962649667077638211170017412842477875304748227547207308094642350689319999581897623902888116542296152265518913827677178780100178774163254818428507876149189552022030483459450988702300914749233861330961361703318880237095059201191924846306626874854262496369969743713687916213828401009124513260856714024636017110224094356602972219754136397853698826369124285595920108179987699613648876410263365420855974092687016985444632287674139066862007900085030160333481894471093759239357597918132788316654176847533205020368089346058539584235539099664108677125871234364502774080590074625529708153703096821326867110402535052732923400304704358476484186187851502641300068501105791134303831056460631648550053092413026359484469675622086656928902520208474845617693140146574218118478366553013352854107415262410809964385456067544685504376678587876831528655263504052553445993222335730830687557454581028203423887826056497514501277749944527125101303723032146444960941440256217410966054900969862608942039807204496174407247659004069218599080872676810339487780981329283848311250133131287959824187953257596763369574469810356875608657086718764079471325614735197856298869781031251693339317128383732193333240064931343449209324723353310607532851233826179610268013430352542363576120236056079076046633945450154639717658280683727482472101011964108023739790586142272499493609827550129979928701627276059639933644518607770172239979755241842770291335502660260165567118654529996182899496065848511141516464775481706287834532607104266169109745676725857331818837646787581941199789522370292997351415169817126926233166094262487992868046448667403189053705557268266771351960259606144053505368271713242675487995610770449341937325747048575224697951241067644969427463569044741219043791357442477399047235037619864773285978924434027469237462357745117133482972051815545440972085125488264126168702387269398890567704631184053807833449886629029000061982331920983991431562423889469782121725015940989963745826245201503408613591382169804995317658740880175908067666564372247987082287672225849621224637434459669586324292329239372209771428964860757849552273059577155304512453970044779391464538151672483672647304085102537267953670194481524360305389019333595085048949562866841507384696771545874024848658978210045218361520855333043487732696860924688060127053124634488231177179503006020741266686370768810729237963813621572847040777083938824961768968421273562261406388799513658253149031726589657104745270361767152726654315976141969832542474912443377356049017502261736551174578884358219419831485503660775089719027676946007316719110140867373109319632792207004556506991403709016135530787063141287184201403555204331857909776599127624924432693017974407432520982906430397126608119928829178872966549335892409540132072383681259045764888415314994570447966043246734462647952712689440606583049896229964911234466666647530378736260377558706098263787385185894126865277835029219445641891035102349467784378121293275652941678432683641210167457019453627383193258204018538731415584626883209768308390386830104274579071019353421097751622036230796111670714692469860949521192240565809685506420468250093017922344353287881434808539512186703905899879090838233208528639271463028484915794934537252135286315748024722943951199758058052165264442875928856277459853127012521119700734670111859768560397174873607341883086678795996135053688320696132272226254426061571082330345994278417504435856860310435269163122623751147166427574267562299042426695765854928925391404179507883280627020941677371877439486030792123853626180575356992216606987824402932496553433754773140784202723462189305215782827455293209462595117771923499583913933897537277773766408700562316453726928694776132669763763275744185698038743507947797865653265271278547759153877017261371906189904057457809984385548549609744533028263460111551476574636261015218559564203803613571332142053833954279688578346225761615370423559665365689699877647392304857798146288829971104150048058342946301610035638320387228495894611230712377240807598255318248703813336225103649670940439120249042714245014791176333879986698422895494927482158192641141608429313139018241361171047643000505678743198115251856830678286400765640454086580940526582142854415787300809008073469754071709507072289329851438553199265046337626444138832531129608294716052816313900941636757611157883570470718209900711525170780076210022757437005442998036394347222001854438475250877682003669794916106850285187586920125691150538505965045094256502694313980470344724015453026626889715414371781992820461729348901303954747228487960586520284539603591675915473577800352021447456083704957253961123312946944600013544088094302197915971490844241157920713195503959428826956980067158607606063508451997772983544268780254717025218651641270228407159413976143282287498949091364298815867706719365802494021253546766838498970433450281308803415731750660580094443964079267504194612849711461969499457444222010279476779432419750453037538476874366673585345169818762873358170813408960278422192062977553839080852157376299774549448195965907404651715484784786421840999885537935548745513184037361840901498198775184369327343440314175937200899059529934470422717665299832114530899551281244888377042031615078295209308452007911569555380349855457546360504049542598297538515756733135303126963266573763753244963833067813341989416330662387130009394977487003715168598736192085173763398468495686285756034459235405554151195811550493732346748747625839336171423371097364770659558690579674097100823274296551416806961226671614043739229746667324493040899587492301595819823389657645460070270869513019052009034446303629937860433974733945922121101966139081846344358551448086567988972490192340630443108803038231664355610248464633957090708211207763939927142193077441920819471128412301794708579692012308457348234513226653215369662067334500797982265218627308734337871546781564616221188166304707288346457159667405161829606509601280068500814443800674943838944227686893633999540404416753932793267204101396272180257973995449714837119191778699328734938075264073677176915477988349006243739339055558175204318142394210413847237489774963207082220768551677749115546523902616611522958253320375069282015863918683674103164436461030073026201599825174507893549390536959669153530606497840975293584942006313227486670611819487380060245607508245600186612557386514980779028509395161513894725911691208148005061910009844718164694563384311570311334390688631063611162817189223913747825260123341998714590425236685105015802207930338869977743708793036841494066671555499690760242705653458338979090146417303211727398398489627331676460203970246682755844394438708124183470243901901205340543448053597361498026312045325443578191416296422332049747269970278933687072760816048370916159176186253333061559415574145249305625109917133025466384387894504174129240339776377947512363301370024727740577226641910746752660637041980224903657404236395581215173679734231644117863636376320499968348680726721590543642432341695646671247629630161744055474966507087509745857128683544243137594529840938562891526370228572126932347404207729994029676863756732025369933267940530837997986255750797781594793960400415125112121262466708470165278971784951981184255461115159943998068501863912084308822957606607198926594593526695823319120453661520839831525001747590368485926873393449613944676503476622756485532899631353847524760717160211169138422912366915419893499727570531620505528166359292078528097355734857201749644240108131248622738717767243393756568267063027093787587586291767312625430977690184467973494249428307762005319076499147147538956665622511987254866360567394790600590189178652185442999074499588236751927827067925696958952020809531274491072005449523881886804329566528954349388792829738125934793448100744107201437456780255461861451356300703642844815265637934782016149410431545854705413955723985238745868278313927855280136386846852838621751778869109984282320510027230286620370638404182036905508764156163530842058919980074568782883685200384246500156932715737869468493161237019089147712988142884156220369614708647349291775682193718121957757129014554593451282971503870356390885064576279555735108593253502843194079411718916494414726788462466115976449165390829801925773115306537455877384078598871086093330016581834367814502995723123215406830317086247753126096277194479739278223922040081303369846275329049599851486009312519817950543634066338399045126201332176315305111339121436619441561648888575752849441800883486575391783928953502042238657966884824548060188237609568020928972559095702364697626863820374216530159814077453352698414917555852519353215443114881821588149316408921757384466925193945108313488086908860160202802090503826519564218161547463833830424946097610010298081606402890372563832268161645341351955802890016649388738046670491221436077567824658800526141127756297539356119490902220023148297386473038782373050551156335687764827564854848622672498290223342413644809926022561792700620522640209269049427505476504108250934346610815245312454571586504801214449425613777689722227093163824797737767851784114056056927128352764938274688545406806089866666862921321233328525895413245882609098245006398307083057290327484955133092303969966310838782419639681838747626780855728465759474098626023694060115505740163697292125717982741196818905263710558765157568466557830358749581500276334314557269094121783426987701136653306195246661352397384167906914415141184850043599140572147177481885827406453777340875781831502768572326434982994918354475654789689457245860625920984512420557224932243517068690165004166180513677593286387931286271453260548736376439632741025196270605379476754331913084797088759131471968270800362626984916397033030197999179051367102085666508862624545768428788191837570924850500119203017903230988461399533715121249520194844762797290114748170907314348052541897430614655252379777556998336086538940574301749316969464859971768397581848169151499919371606962988155656612010398316861866655934454029663656557647194424792645467166982071702731027687846961548137223137149566805587988111529949454777921254309376397807285313425561220692681507360044990170727541221715230713123448797360097472664353463758528718452595050943637346288998934515282887293132564037089358492842614966400921163566874651615026700777417248253643958459663498759045976003931515787694722718035566468437245751715067695939852806615185156646940509106267068714591936679857957516980822808600123917681094953688866643247385230982499410257095536093713913410006611750773087103335625076286742830613235248194860968205981922098797663422198175139941190850571593810345812107411728369731849116213809402196346572890012245671541741633252883622108963327242053485591241457288206713316672674386517566247006198042065063545534018476096754426246824863325691340570677777252125162994610229935109895920704882471663598006643769467914136101000890791158134203608628214170226058966469084996368267092031349300564952505310470799338071892318409519707955652536886548327478042536712317949332322454955970161239482594927869099738179204544265405679277493116996576913275269824505007842216144228105604853368172248486403795128196627773043290514491180097446419928884472260322741673830092434619400762774350699225773065415873644485768478084822408990835574319623608086554503270668901844087969551295778235959319550374458065912742728622687258667284294824231728139352824900930345965922789271054400271026560087945104817717827016202327631424410135656279022702348923434572440774524530885297492326894316511273565899027304732106772392119034555457563949611963747491388643681082256427168888887793666526564905096792199770210869885953468591904246056238809438847543755631974231796176827808715290839909669583040678488530531541361104096377510564965071421580238383722249697046608286433622019355892097920543748518003151049006452242502112000257718182029666444198967765946005070118291732081432261250373208929553840689991493407700892529346765471954665915855663745304119026835434037042713757675199829947722092495592162894555870209259604584641438651851366486295699210408561847243226818179530904068033595630710085907583966593087014539927195142915927563463507217695156674354185935219545024107197130928444561418479523067810830353852437960610668439938799542373338539442561934945385027804331730929633513733365899744378536476900613267520204715222379888657883816581031650744831782622752229186063703886565121097971521589538417537764862346332308813435311951165469848529502629525887972225735400308213249458313186640812269348027531517572738442929564631081037244727413149903072224544978971178974044252863040121609123533086982757639461171399004188602681705224470800941288277203680281041169341657750253761262889206966478987676629464068124092079749652520347917173088821963054827344063211613669733489794905135644869671116328245969084256422583431268366113830960184094172864489139570621812294652627987747591554364715100758533091276989361993188056351614042718865982695975186241856706754862764902599005865701979950500446755686965485270607947406905360158237868720089373172571754848691462561169817765485117507169466413007712397756483920780909841157801820662613521172184589868021201326699239009950110224783037802501251278698558576063970620706028829757285631406496360763321487746054331292330030509810803858910135857446047003587329366390790641116831440950340649668328288248506380215415603956714750482425208560044314396106295629687938666540687241105783112986334734839792717899732694223471625933965468446404301542513693467408904409637541791065334999174306389947021081329339920633200546777734870063383024650751619918184220789848829153279605809765412067757150944995645635965195685308132990454551765719796629840380308161013581044342063275778228995293821463641672172694640199545852072980653114143569509514441554938506530436841073791713159215089693221790108832283482510946206991932146983824544286963146604697662108543353965724591629822313725016901109983677366156471396778365689863058650070173541058127671458316616796204453316143280254402232294062721116315178847683849028826807151958197265391448572800264886469376898426324951104322330798406564838602730800764969735931240053611250902592606889764054109620966801764632100410415964773693893231781562266793903928618247585342772711287089979355348513088644538839669829360499400301983496011291487258707487888834814390994335021782595569035735545447791050580331156199155759816281256605720733017961861959653772737276179695583843468057650821818481930860365498057476175288683587892248326154419273658009360691781901035241481763686610659819788905020212391162830815031169126579224617233211886577167914703318623745747365781690936444800814044557226490990123232391067065880646815777076169945220698127253016306016816091802353473548790980222103093382513264414403686134319607220325717155379129153785923704523508816910899737434144366256875607059733628530213279524760033032430787863226141248457171206059813556877684009999242288068090429632114876312377637916946691588072403172455468720091187214390581783076250077983680959134588744385195138314017612785320894821017701598016079479233331078045026764017544933284080541153245163664349816283313625903348002824459174802412370172927471591166526355046534747216415003921620082551976983417839694112174331460171884864839839419501968816789618969191054821105237408751523060468312644105438079193172399211096781479261547543071488953816127363699364010930355508443693577934031840720992462047190485330202509205826138988968893413651382753700735742560648091209594059669742842890311547672636371670010398522836181241060144068253547911917621614994723016385943105961198703364303996884949195549872599783728951676815623033325046486713232334500006227194665075193742550808043266958270399668402941739460424933444475745510474895492417834075059918380902216612744635347674446617670990320954041038686169416339677913634284522257905101987588771239882965838093170470655357264288738669492974338759457132389308377613801125029812447349304674794449412417844119099479948658119063068884114526166560331103928272465112501466186456297076026638495780278999103384002409212509610926171413126018641863895328943335568912085245058431673359664028238016975425411957862412990616219817512786330152931056817994038774248465109709587270639710422818558114426252006043736820141694511905030316870486268050465304079820200176930775054548826557218490144472533789655417440486748877997441406007106653477652625520347534534185635385880965324427858842657315189169741340566659011512590219578530532535768626985616660674306440245565264949087653912442826014420078747267452550675092359831818196772524063290357298279095290418212783243694314814173560440718465500684439205522942247475803121109414720041559468284221734209896121831853913952942887550068172991984223359882094275340849440793772818143475196007627521662554808278778468457202368820990673518527276282614023926063606722134774220974025444762337636068310387140297179571035052428601844353669810660387142177374741584250425823682697206729887943743571436083253377709886956415849066593724512351169303877643308481129089067957776385935516454878312131957356681913285275016851638311668495974097115692591925021160566873309875420366640394739989384064399310487177884880821117327351731654694765798370942689503281723207761699520496769200983675367564170425389185819801015512755392627140783273443814134091729079165903568443431572138582539341452745747633982505474051523812387932734938755092112535380974986210604982158797253861327333565358879560848124717324687760399131324861674114834031403573623452607808782061937436880180156044422680892108190090232628569564842738025067432462092850467624167747427072241487514695682312809623795819666355078821631126676460985240234915950074284487823555898903722507558963282209050557220393761703455496532346710140363187238983166377101392438093091444297029348690015796837621343344433341127984798131559627710224715742739260213061272493890259875360901097225916378525097176599880839007928410937887273785787660198450494796449897925928261715020207709839352718903016665504835232090894146106390849653778036995916029175382670592623907611411784701238558462015150687564408042571333543307018157207449597467208577191752867833060000344166196818224724835800037204459277342709139951399578471183520581151859281569989758785145263872709860060385372040624246819082367838642300988367531685818317530698740571085860920684176215315617427707383698822799218524762718774889161376484133376721345255182459371208433684799752958967735321061845446273371764523279928570606110305688033521831233549197409224320792038225741781720822701646951212604658500949612565957429964097321398185064519085130727405797118260166070827322432054647486054863866301384930283175822542961276943677787755788496586516516729122220972718154051265956654689420517631772841806497087935872182959680960414793532584925522288146948779094502995658288997733934852118653295499209203893897715521721030583886216495149697283491033713309069872895870814449986606547974295649853536174884364078423765637177962410137036898090257257931586672856365618983743989008103537248738899236099487461639314473002930152030299186652538258956193574574222436649094862704999723750958421133233381959296686870084110422571342302477244552670276124917157311442140053916491638541745764079274472637329042979304102913904629565709663164777903848170394159315676087765278791601220489185965635345406637859714323567111551935246092274725992572470377822672196623569764829647886764591914103980374884843917240173650530893637354612846347093039015995710879498188955406090424755420611532003058096635659498271508949191868503530772197911706658443648161309090451834311227288665100778985212676700275593859872743479800653731891811020655582002430563029410706483873453257114107996541000505344922583865006087046142206991559371458038295800147963275570175970994666490879654725220803759823544469056917723749677545148103337726340645164940800282976352809956085925689469603541049062710181304843533270164442515198746304277314874503967075825788730892251207074867267115254709779775725237312000471174916868981500980163680991678847391183500642543149713705190223945775473029661287812826412281949815024702468645088129791036750427452971513583255947935904595613859161900266601651190815614763208410655897513288154215232048237791632523363457873731260736267410313423161861076870860529915931738415130130396543456088240136852253273998063152850233296058502560817034482045723991930782245320329831864224973543485539902408359443277191712251284112914816786610104963449405813349816902167861839099944383690498897974531166520071365904839962882352650848337271184267629687928035163138905766931460240511752589236601728476149010246955143399093414963432291931675722943949129751014807400628270509473317479613104261799951841837205222334863056128994205818043937176780508344573142301558249570355160540232879567742901287486975392562224214322295430649972153330139911709808611229371440440462260673327039309306571400840030271624068714319753274705084991934142624498703665608360293106224629933163397067105073729442246535135666891618621936313605557583909356486605347185000162241189544248085951259649324754227700090950431194728208733896730890633418723859153216963353499020371869823362542062191987962389224401696480085035738601370995169807263010653117460954807220191504447667897960499288573828262674259317659334582839170594470903141757551399906036496428416775363128488255470074269043109495977143930966656670194475786217380179702570272777436370206546215253744715731957829951225842294163083170017422339271332156762839891504335790673026721122470004728000565450132496108075476641955766560204521024059655289974745457256403947572077422696101339731338652388907461972994570883466245938416306320567607486612095686167535790569879526245215098295694877885028466151810457362100332814651794004683451423767015331145213434248175113662880857255670134764024389904659164571641448909038531690012530257602540427511755250619944210399435327218394949055142549637703225072678762925418687435613647872716575106716196433164722597602102992819552542402178866301788326581198269618919494951788445305978740858120741595042276015368885020240923594950603750944379001985107547779049441066507709139188655591589016320475457144579803212617981738410420896006028090804454165107783268094635441462767588106861122232937161417489071254817910286626339959803041833713121702584156673704920186760373507570004662526921096970401482042020800412869625204031613449767189719927905608584518766478054126057584850084490611170159034068200803154105504007266856029006391982331708781071247141207187349321882965157594596174070769369876732409104236298957231513406642872948794404346166508986063543251099554118938171538653145377659815596961998752939556805724444085751295967560452711412006196631992682266314376245400362743064692352622161394960363105052049878172477416065484956577413008631616138483426169459882393775248561693475122067273806458862649823806671497549190072548381469502429779632920272347202624683384864366074776422761180699358073244140030733896073808002846730171033485983137269972365261934688896594974106239359053110889095595519734500206288216453077727810761400093221846531817874534445580935590955989315768714854559798997488291631919842075934869715410033073157641167738259722695473302523759821582105090215315984022139171712129727473084731220746109187909221632905360677317336624795480246648450820758502292710851067520388093924601389006125184870473235665354570773081723830566323919175779666485852816078595480257879908786316087786748766320461949792598376475910470423433786518334492580372250966799306236301275736261369328696873039474442122237967386150676369338949021233619598546539444212721205880295355693858412431981831050441449904186449664596694450713526392274620043966827646179786558469348365032486119545754513953051069091508724357746928501956673042909921831081134752265885969071880256930077942310000338867633878180371670094182125292371303212455002610775787756244684530104198847036978476917813675399505994940947942659042970182966593661996668691407518026540948569768103274133550964453625560613523847179620815036552576617497980242026918097430757964617348668345735107550645502579938078346013295739402476917795417433288968298414352776854075668595838462508351395836073303999258776557069744154418674599966043033935227726787066334406757821343632629375045768101357078564610140029762590427209776947532508626031572740853083790332591576023346425525537752014185176281284210405761735628975999122436635034096271154623032962130686126878265450136906144799279795888814398665699038059724239113348323700077768186452541676627417840675695915285965675231138595648368892161075127754821671411110108043329431878772358452632570880033434663232934511822010597051568644655836368326069748508792698734454146567471717148344220012586272681116173337755895423077731925642689727188762407282941621598587460842810654511462236486951899517918970043230104266129097999865419968569022027530213509737744145126852224558887979012534593595239522115386566170847324822936384423513239168341623354543655313869304386676248535237290977227685614827398102142518887678481784677075291690292756225289041086319641294294473813111114354504717680102582072392220664645171881627716613920852189317319349498455429994733986334128412627513414887665969953686152441174762958427701594373351457645056928327210265013238711418110464100036526927544233271475127275611793204817694082823289685203423543729689798200206070271537630742056836606587105484894559920852763723987794994098613341023915981083760764574336638037660839950916846974341902744369412493444276182299845866206396187247092131012981607910004948343900579929287259678858295079260440922063416987741939972963668545358177289609768660150581448069530594545473331493192934789188666079232600127941882806152271724330219066106141603248003854753643077965850210478048475394971058049588766218331233729594025458360116462094978119292039959163611875169309072178386050177898698125735638345744147413770596579854181539753352194956082920837550368494183494589973532129838705081310388287584981184437594982241666499751028203335152374627412696264295538785858571379868450916972476617049697378175289499718373325166909858174865754285208976602676671676394097558696814029580908299478983422231383849146898693528705063135884567669559774848377518549826955075201069676208157081958552004552629575548285027889313415475863050923215562162291867086092665494049080891716591792483923408725653785038192732369028922620025835701095610901633413257797165442463546251083771519141371119581501508801523917102473878627162014916814123063906419412773715861331840943891920352628330842823760633633539750937071771924214149568004761018386618873884523122672573647356982834741111493568319138693575961311425859423771329613665788653376873091620067450653064732321157428552635118091894220043535787744435926883599845080545689394274202346218908664161010900893393132365694306356504476151565603112648296422019530456337605237781646351996539395597396969236780183404631554383202287861508217872797354778842178777682851003021788772415543051846779986299713477742027445612220727793048868495752923180467211153944622146720327684937756380988123143017823889566050663389800838911399422816870564991541593195632779810432732070398176438083833506275127814571306729942366377509558718870153483966148955458919851293096829650772568843461840866235542908239607323549364749351980937618534404966057616567154891712383664385202397676905034817282366965449475735892013650548768299588818630276138661792780756012948861501751443739653889363937390677044455019281932075084528398058197685103763173166278744260711036210759010374046682282610330439660014916960378608526374234963295980068001207448318398264408810362492511052461564680230604670384380806468264083195028890996214633107801948117717137009966600089587576165753104041584269697381035262424407740033374921254109074688653944325798561321092795215676211826262555689849539639467064168688055744584657773758454542888484928663023864342867143450838626411352740226849901685801943105383958136610856815204103713222067032184264221592962675262803396471540170579247944243368572724135198894818752316731692757370338739990781922803168636447109090062890433912596759977989096059627156351826662601497091560683820180611269637176770371466654444586568001254304807753442843273403261619282495500510070050185995969534255397953332050039691796670780075212043256368650792214836893149781081083074433444219069880278184457047729593626404936418630626559617979694652397596508626233878357431598786357762591511350837495114543349536964952854498668370030980999813471731885237195943631896403852403529314456524744520869802018875128075458019092953680046461633069631515758979148838069536736986574167122501114860042358071485901733099081702380238072365301787404110483283163245875323164460815931386925195012870571176622296703571283196291677666364516218052294747075425876887850333429898277227109902873522000801779361426435285297951215232923301692556182570363722649025054896504012883313109484998662998886345687853275614496561296728211376866773457022875642743769486202261129651259610595032305945953680279548485661745686890910716274394727741002811063626797637225689232537453159193767158965801722668694626303398568566587720550724765960744150872372556052543671595879183760129760477600341652103083274639575832263247732506411315082189736238040087152947083379361661338576249237418182265894624873757475683529982741022804274702591077602982051637827917193145890161719246327902134554196222000011004328240590812454552858593426683271074440969733424602556173005228139606478225093256633563445494063088389993324753677700923796473619613985471814593336464856055192838160568842723899182219236950953675245447629139279960783128810369130629814279900270477842890762374803350176400310049786589651022388576850846000213643532734097483257614652732149279269242517059135379373059912545647130390138810886191914696238043426348089708580915282882187144950415837649976113316422121548949579683373395911242266037763316326316668021231949236475845130621489653951781898683087188562116576507440165115801966246000325025455219305742920931128081513725772426092374828560656089205749229795131118291296788505742305165341868397066523585631365881227918268089890890156489038081485586026829576352523724309989573820264682361556586131389332886511103795840346464110805399290880082935359776465297748811839666648057324405586459202145804841546401794807363538909577804867187922286051107990764548252575001141040603969158070704871336788913762369463777939075691701364704398758356912618425526136693807148475357545765600924915985846950909790289028080150393300781635208284481306058947365647777028652845790330727089758301540692079837219407267075662550329374104623795144587907390917114558012990722123231760380625832495346065809706354960034424602571890455250949247944340677096663282096902876794084851007842856357543788629279408233230968691526108917236436753364209039159399578082296125046319805390021550822329885621823538445352739368214588289684405161681883963578069809636852802514434480681946898149966809577648462438945487992661215379114850094943075875205680913763208221277276747767145782305597151378926926946557597538207329322397679090182174742683730726966916047441028636918219556247836674808141636083034192307812116050639898334680368474837044955218689339924785479465412373175783262371489740810261480792411951315951444983304898792121418271119257428420336119540616507304784394225329986369715520647602999042995152523848038729248103007698129780249360815233923896658922218407994764872312227742125373819713857024712601379246602387808288275202331734875131482492683163244250905114409575344945733388282116578079799910821564292817371013806189565041340039276750195855507797163928127045452194446073770335250945180401281688445530190310399085559433514921251753368404087015242924033298329370546274076450523985234749125374954423887610719926250372369910727722087363678831095795592165265922336254166598126648697502115199550024066868059567778795468104411017294121300931660017555753133121940576715367913499134230938707240352606627889074967571780610807691292970303129550031374934039993762642097755156543382922401915612069947815620590255962914715991216196354554828926217563237118701013137627376667238867389358418521976058269474576988186253708057807757015214019170603049603518753193493805059760638534371028882798626837581951883908519459984154577996949209074717040639444916779743098734756384564289674120669227717472876283301878909336718494879267598418614102153277035058778181814881559955033124146327036765198066462111133238124699001971006228956039562157774790496481222752899696756411092202024521470523772232928136153873213537560637135349810035787205227470558703602446987494016944278965678302399044911891516926572562553343792393803467713919898440083186823623762016003833698806732973838722402168360058106507908531868392543606852117313425683883556897250453554195824036021953789407259278397729535694814139599620445152229468722435796059104390969223813874358689135165117171796656300057702534657793983892525258447687625098899003719400105626958551295321595491808253296616065657923261162119815247655291319045978867756301627921276163373547004747485703065544922253343706132461795644420867028407062477905146550746756702257501709112832065834406866573463417473768044561871812637300929879703691613177622131298380342129737524439702435933236710761795924323694994770928102564871796364126861246276661739057191444340470431619384140215826651217264103053837496977412927851012012683161187655338073216667311290680912046230368791066040506919583420568089534490068778731053563182751452823303286354618739378371130403270752652410981669504788941604114634865544337522650194261034762893897073920474051535489760939366247757965895394138903827209819395167669626756928638260165945528841077837766933705663259663227130134573714046287461178334057366059480601895700228594091064346371058058196928210837925638950649593436874556117515483642121562557330913026270235362997150948927226851380792926926540183661644492856507093844327442087236740399832842676268443813076348935419050103948111153758756100825800680384821183122513284563754486038239937439447473701577616613379248669555000269798322177864613078282488979146327998817322795358184507559837368347255228559790090784609091169008842073002109554059593540316083306761173918527144112403128717645786439875074559904338598800912473526887488193670909565083509824090968534004359672213658354535407183356578649683583147060244970190047486947091613278938099176492238593825506752905877490590453486171327381179386305625976369707895867741378671953643448586467890420292118002462713756084921595536256626495336505586828520768279321572334326768466261089020585139415117158226000623248057923927130520474941975200161402854054698760068582198520702435770108846209435553834025190770034399866788938711079664245042295777194715975809852835041384475841796059877739960764317184597800423982366750477584146056836876575807548913451072053416455372662513998524212157319429365897310729294522248125722055845177563567584285160060200965729726644338401028529283188985522825305757637438615582266888884643985636128548939508525735059614678698737951631573296278773978313932343529325152407835881279819947804627528364342601856668678093067481579888490446843294426666503539392565136359837622534004285083786530943127082011063348887419692301839558032967241349999815400113855578544187745154950456665974818104000377756492785439994385042815701635201413431495974213172511582387221294129739002616163270882087798783884793866373763168305851750800549233269045330155347555474436583844691056962153530835709728755794435474105815152921951720256931676703846023035676485174833396862656792511887023590225200613929245446531650258591209565554961864581003501060619255013205654452643672704396718866205294744477682473960380712739488309193139305771022801701260947205913672510891415643646349478820846923923209965937548469201060496664726956945294967983487742401431760596535560753282802909961618544557574224300492762472691517476386536072878727941032998177125536957645026065168957177974883627530542952515551620577757408319310398742317231853609189225128336563619380206861885691791828787418822188755085657172583258118017091479905412036352561340716123983746519775832643186113457132591446012104563577319940127909093122922741527565560027510734239116918623254852353592234497317370044096174152592345264505966226249093748265535700955807654503032501062770849180347457227551781590784615861697127477346401757083182227272016538782941743684603258138939116280799392134462597015892308246514106594088301708638886507968858509683323186811393258367995058615029153739153392788990068448764256139909045653772709208890570055354226694611220841178210922013170429761409988679064184932725445261699255108225809635685122632210398518512918978527482411800935418449743644468939885015284038885994676810400749614169914350339825624810381555039457139623143275582870297099606275033929292505934090345973203204437875418586773480714319415056230649205916573168749373886828891357836287877537173543287647005041670156808755856827592871707863360993901674797945258855595448264401686550947502135522292798016248766071226419488269641208128593221045638432285375085048716092113214484026014642875065380646734489739918843094412738212033078271655159431228777200756699270843244378890353639296057615211873465432443573564922966458789016556162087562270784905977899164444525999127214748133538193191333511587521052295568488913732653219835224556126821578127210951289498054848778576970003284660329136181158231245899552090903063506475912741625639245052959049612059707163806363574790442958719769404378213722644416325151046454575585005667086065588516921838551921198413666263309990769796899823908250103665349446206411302281396734282543576821699015300074978672889032758303884365807784483399466337093007091957681021194472793651389233877536462231325609645421740489360425442686621455175895019437253260726151371062063664926979676436769266076997729655945149576042554987405685583087875347638965806832824829212579928037058770154522874152343784816210135531702837513594626530550775701986809407500125256101487528343729816753123949316822352818005725718859588406647882360116462163381879681973985958459628108849015687688503708817468114636234792012688690373381215629931006301639902447387327296420798812777719904578434338399200177711297021369238480828784684789334368696370547883005865077091527964534426053261599085463347352728195565984291288177434988197708056392342529483373269577452357305389522110101671376106215279417188247543647669670139647323738980057349659274869941113879449725771369788124702170778181552792228798650916339396780057442966297422744377087818633198505320485462280231685476837849306993499967147666262131875253504876965948103887578320777195812208729231004913415612630932695783351714753965334216063749359855638748566344746743116779064153354878999791719787785318850654188328212182512169818458980853935394080955420113630478846016093015067817361370790006503928292058661641287278946905275600230374767683636681483597216020715986199197327221975093962917969861260721181466022432959154110059267340729018075855533667151099199285309502733686322478770867452502795384966380558713328936736604201053517870638677372254837678667602182643243136173500922151422626502391853961754817750778964686502004789989220454378270955366248168211727240235002370886812138151512074852469804084170975051002132067550528316710504049556753372656645848644732811509739204341553025136482606063617106773142167376682274547754193991194970232385946091459920609118742463296566555651038028264436102553964039280326221553634678144333551132676796894557707783380670562959112355232319012424532167327423748728886983258054923440757905473699162958291010893147982923554831254171833158266331320557978976875212421316394257893223200287090295275418715814030348111804563449039429507008295045942600868843867210576105081661307718351474055802870141100749848926513120974315661366606639623073349789364687471906395344202757659651440374297029139448638724381682235800221626375615465345081217140470502683231177900163907464783944666907307327565608899815330261994714729209330510198705393239081820438950407379744316665055459091770513876204142407562482815251084318078652931148739824989914383297568512163685324175306343956831159590712060437726121569046284988949065067561785636240398066912184259135796028634856357570520081561411032288370351288383603388042400518524431381734760511827122383540425621898194854274428306011798385160160496939230831937619070520162574517189688167912884391428100488610993829525451452140615483993791877514640978541883181655019088809258184679352471218253287653806954675672821704070864768988473482991934951828550403274011024097941534411548870832136279949978386099153143341617893552585545779182353777614532771555814536890053300685664645694046520204243952667999496599383329839974128713070027147727267686488519987899958293415483403873353753039264017834061354257416296900796913138271239935718787671872850671069812459496743007719478220827048293290254838394984034102432727895492254385028484888905941545094221747370046374793088081167613189125595406117499590332311802092580026736672137046827247708476402622653163688055545598103540800391197939307273815156499317098616952676902690225582298160879008621155075314664170604344336161354735920146737363517628127713021133396131596937853770395521409445635082651493908529004614448151950086816157405582734109200343308395318751107702411519837224845247040214772815802123360405076536116802835911991238085075644631967249281890124259773103167671207177390730463250516889967065524743585439803204425730346021598124890445300887524742583766611226141936318648028930307513668198395125541155082960818160120947685436234391760133685047705596512725580711050842702006672830224214413451886351388778328733172555088812584412274037020795228653016014445545722964929872979507455182526536608571798800187407107025814586474461112204013714933219589895721610541838073662811748343277866374176048955146805769913814428717544818619395730330633063891958144158086019241391175530530315674681942444118341969287885369851451566321277262155682972555313300219413751979690669593386685418792285903711552523794756970459001047418663259326871825282136888967993156062575556746409777457569638645131740460334568198372681382441889368888699457004383458953975231986938726253130301883034304311978948556348116798839541878688636146064769116682707086881037733895124203658265543419703147680402206470042632453663117370965331082860471708384947645020607867423063967348312799934008334060793805685186715906409236076923587613845344235457177951928779971349720257584994239878410995672299484208251981969796766043973816946305123165573177446558880241749871204516349665042769418984096332672768675274013060072510656758585642600992746943622306528071177849279951629915550530802545266666190622425025727834006701598075677820855135314036272469249483895932818899389272686154491832337257347183607074104564068331757086628032165937731806310873201083670420646489876537116185301940901117923927932434102422931969727309862822638619234838286472898686116816448734653782097955952408351043326618281120504738779659543458608415947781642197541210301444005581867589775650225587162912330332251871426351928135968773792852095431444010524863027182624922433847702662966914201319413979968340222857193576558544440271817782436105791410754174674396702836744833625495381347154925250318025466755666959610168702525820558426978690305660000029416911048171938467767341456073901751271610862226554343485253622282240147736990544985841532355621813267424759057506886477945858873194771172437703402982852249879856818186158403264661010103769604015552329816481008407740698589138274427807602157473003805527231572548185063745104542190340306023782332938462519575421986420023065509983235302002171025536224589745061809272718832239273542106590407824102993623843013436654251824607677895824607223772935220997566906505871673054608657934337340417136662601301923730758706019064725070863055030860566790538694169792086656105373182532559747289968909625370147956778923096080226707807878087237698011518525114878141536440149939958027735987829689075498599969177669565391317060708658521265716592420978262005604379670305897449839098631387363872149424538695359639671960965987145141773454617711693636898626632219304736261552611813433180369798534540364232422892029055457578710606718382907634905289887415751424721525134837422397125174482606308951942245840187710397621223957383188856901469050613079651850038867610604750241954469194204925747011057471802070060961494439946574031309911531946799085479679853654768243784666785465763789480569996678790865800865621633357665203742515404960267555672670330619922988248294276754695776934621460139665173144117846048988281529099661520202909313786836394997842596217538450507758050909276460130555844764933727791245636179634203127782688275307758618696397419390321653442587053764519338196694253091077090226296220430670060337173389555001174703934847793826024984611627308433594020627638622191071967198699768494610786634961282794321363375590388461886078005468615563107872361179568904710357380231760493785958537890430076828383942838833586885921602842201850022020332879126026083642410410678626300356696230325906746771439214442290231365482142024972780601376321284720745208441503410314652778110658399949032058076123314755345484709572270567633950681308479627406990840761076815608311343283240673895826910920570462279121454584343204818842716287620487481876395000338194214693324166405641010335584362115428884332593527811495788799924900935130927420586759175127180256910838450841123279835496234586197817666259056600597916942574539745136403643302089017563571613226302393875686576540472924405754379129478284224124098482318270957446262983473081493452530653689646104732699346398061968227720353527463954749486774329516301100555181462602931058124369997590373033618356996786538909084517773032556888688148346334926489629993288842891764572731863051210791994053110542930433194835199007762874873083061842155814844302551416695356323405948994170213350354578391317652931059324348839544355013884138269796961842011459424940159085652006333986415808597102610123459606462662495046777679876452311999396001573264200057276523202523113061976679147129995705140371547279210591850586482681078039786175473557222483444296186376770078913891994258051233854367372441445323695390936238716999217239243517180625968136240077140307322248662621847886442257019871389943911413883227786946140484163135141635307613389070648691596679582320001382044141412267263007870604581726797869394097522206014083634953935081040767914800676048129385310110862252681261859233540882256448163896137684393367625242508259601061023180597997285741909215948067067133710895800582312714795192398694517387835981716700659772611045815455351592575426770566244062340982436423651277317749058805191854735668510310398122972795366362027551738795996131708773161815012631066040668467897582723936302806022172735329012542906577967975191473580979351734921786482757387061787945970242935102719160788370238579363754414484583741532377006987916682128899842102993380725327765075952142433045479238424160641155522165103437320967299462660872661620014773809672057115181541161425549283092696132856606450353748486940146266217891720304488398297904234678479678604751955372738153876697379101542865262730722785955646589360074464947869791584730675911168311005782453337685853903253518724881746411058730768028986048815326380535444376619128057575422931772656343176965533238949355350772327641466437554700284461030460829302546035010833314950543414294633780408280149439233226424230737930484122599311684111454075941319075200871102538080326918899722603432902259016346243527640776608976937571774950235835732143714356810224820241302033223571706735923645342418215220887659221970531796942035818261638145912156208034491655363209582395193844403760233380549451667225325513671191462096917464379965232691496239740196103346748530954148721725626530381022476465011249196100133378734095290122353435140516882091298546285016676686898185334077293606044672075127066733865018976728924697675150743015468516761537061887039887904790560382268754944432312185537303421591443606529043170535567761307993346483316587209789996563438910294692215792265902511991620546397580309422398559091093084578710636329822481543148374800877642094316583183016417537607587465713878973323219940547403071748286062555756519796003313936440883098602694878681177765554301811311172113637835140000464034095548532411424322560589464197332920631967830645110323619753258480643320223399599394114287635384179631690985762388928702644847751836905406820498654937148051846789453280954427620807878290050569392742952036360231677772320603370182156882621491967581429539924373376646808948578185535921190475706908021382435989601191450373263449441257471695703371227398405362484304154378145280880145259448560607274018704734319836824897356880354555452579667181750494546684582968563081544867130561359704131296789011759882705145355698789079694216526365907192959128164636515699652925160350372090704449902477741169650844709351770995955225325824530445623520406309409184736273781142394631404772864036820100123712138989561639303519330574915902759516724653678101445955025769244632664250873420468215483048605289744329463849445111161820260255139304043419547298728739223378219532187243055581722095743165179104300787508273685395691467556540789816056990993337031853703714705035527835113690660773932404391954500136150525625449837637763078893605455718599624414236856020486974198112218488566420710960307565635110220747702006383715352446095478979968298778845835167968388503835595216269428671856074428129153928826801104768290913461714897565481447370856833964780339830965398193613252015668142305292933711310222518827183552064513049138363090868698813520293422258665465234345250230901598741656950302222205168558886427098956802343169535995106702348896243750046837777197130146091175212850816121469051278206023634835686338455609483806149016542576222610110190570497617960086976627051278446014399380094796581922375225934255907055745970114353674535423106813275379797463645498356218511029247422080214030089686848336021440566689018731008084714470394987967933866378298103300008297448113547804464333229434848713681946329683396094991585450769220214287922558296832385575058327707940431067570381569625300332549491722297507026300568825120207349259235831742549588166370558136085229168204439942689506609241638585510912072077187517605563546460931004916939745001661188329936909236511434957130404383879445453596402786651839612526316110288384606971595491287265196288333684695625275367525001572807314312516672895417373564354806107338482805276040962888498886319309389558477214847589583531916554677166767337882068663614574468564576283197712571710891054337727443747666667958435482339173463925902883884233010739389896361923274521000767686451764205122380165212678281768018453723083182569017278218962894703955783384934357570856732067539083917760434527175959322053966943362053390089520578510853617838271430981220437792387310587285955814247666003105491533189708135023831237364193475892115532105201154599825193150990320499150816042343962421896912897088878182369266531802328701284648949259794988827263824294966123777722822230840142517956095099449141558905337528730586075880210471622609322385954735055821572297391274994851209921334641344030591029616716690136374693328507221227928453455984319433037810150904589258755858033197951944621601947120058539712121748849657026389794537540489889244547420454077103689841002358220537407742910080084344145817268601294501620269309506081820135719537809495297781054130372823027674606484956126219022254207454445302123689888594174858942562711044506794589652961585971205504424435494117052477658787294196553323512028924678899569558572510804555735990096029746748390326920552799086769862558814512689411109741889685979544623116157679798585991936492973045147440758572675872265409737178873874991640412284341543009445325377701988730109329028068988454651313354103831415187469628486577337112227614668763072371533570237009596630514184883184448652850116624659262466304064972240988898449556855008490322936260057325705580801451686834919711486232124910474494208112475109508431023408176287046291471060821270461080269019817023134508098352049615368432131798785725280126283196485922308434947264542549695400388924403056755861964808130655127630843995270879163823611983665292035419377832146765075483155165629671783195100280256350779434705928904287303174740105513642456301748921177799812031667692107264937598486328591051174066024772585527440445582181741844482789465973463530592083213184030048081718436411467839328803811640090646916109341198052751110150083805187110597508590313075120695468836988596770248446793785098875064813546856085213825695068957360199546414379099723822035628203557815063296868578262480255938320044174399211405266906089903018457011462901609040671071420165356251264846793276020623043615498827760170356887562957231537553269279562732530117358328604306694680843885187687262731068898896090565608856076343882179224911037515369280736608038965334055802537514395099826659180295279303541971075771575872258704356514530676954273023370245249118023568931997489982051940123546390444698754793411783848305098344203057747450726609491831661111930009920798766075877495927979887504451395439029242235472724949342659774252718968151354383472321190647179103876092665364340845736428960121176736111091400353982824720362354965526439526981561826021558888721163000315263779849695927686593505782250580573507029073129837060097566584240560974267596930929141169595684153022866724620427772849832976197590667907631260405303456642532469362219073041644428798029870387362038222624522249353513970240212411827141986647231753279609391470674432292031738567907475478119183932742675377604210572970157429533709957944796560166551185164469005662278573665866934138342358634059955367755703874554198714488709517374292222803647368091420659290858090760920083676313375831294503917416730794715259274589915708286955047018952386136223290747169907198853076357294354436277564145878183380407195116208450072624563334620326989916460336417380251810180904431779996991639240844494421218301979649086900180162329927576953018490904027158564371751891438433546129914589879430557862096111562104061635101378574299455258915446566825268135311125632236542176741776187580053843794375411182160009615147420189233435712345743153594839942716712697932890991920456152229127640489286190229948854036533741827282456457986312536147615402109709682879905429402991355191741514958147451578739688122902216866541088989500798092328213267419608412074353723272182287055792771436270938198894383086812934117403798466053962135834387610815281430583036754839428167772212296662547576493786573124907629201233724265512867081183811849218367535031386285983063033598987833777061473163418192762982632900102549062621375661797389963254648536119834730406107477536908019013704817180286662038164248038811143932465749213091883936808662529106317604534782220167543047782237086786875908909400517842768269215474075671000035989595408829936402612963942641444150547080391190968506985914170717640550314394354004910852018271841248405749921162059331105787742660187617623904726670199742921821442626265575629147903740805409326615081749939911442080321972070892578868307087790146186320152194557930119443268607993330120339628873264605464686838324269742091932326375345808369886400697102003739395386271147654743875989402944858600067312273979194904284520834827998198040450965960116049744794742143199741319884787133155352946817078056629031494756931282174438656729886107445449065227717573058751339190848298705906772756663421497946353935634340325355863760764372113905811224719982892304903637375776446130165123105989966430580076007395251002191757758941099944338730965093359403095582205710432804197664513349712807146057833121924475326747934425179635249709425779696740362697875312394361983847176968353734350422543496045470194955753400046925660165908739176987345323695765956727189353593081952629472081902515270675882477046159380265808373434104537406972020499818852498806412690251375647946578954614126750325449272456097592156377355589632555135651396360586727634582699715936619246654339057300542019107644525013880921264845078389882391549367337462854524681764186323267999162485511343727915331267630777914109294724178679276562622853847554347841541789657695858786093360525563514716403004724406294949807327839087908133918150041853308850358010660347550563120096271774787713859735262046357472099472789175829119728965526688657104585523123142024907769203410867783982394256206712514765899263692821307969784091753148260404837041988705272628640024684128535183387828553756470024955362622590127316092115597321357141165940441849235714217351809142443953708918446355576417502371882353294271132786161950728621139789825218395470703367746758163399150159104633950397714969084926219411578881613310631957731956409520916824787754691018468905823632521400358791495213757265956777545899853747037436133337015369262896932119737087517429833073579369628694409070580265835389875517182749023949451724271559306739787432139459675970672387682015069687789649943320859476483567519647194656263209951101728689397019160482109920425288835175336874664768798682249592388300019927900764564737738973129179236340517388647400904014208572797156693261970221611142176724854000528610832133134607426975162915592688179615414762676221391368976588444364781796155749975904867560097477826163127963790702476481101913706002909803841297171000664115352858824598047696144396117070120015188036906906147227822903275460557009796783462780084250709616567514433993419264894641802055639397454969404411754101385235458582959939879237425234948606451853605477172321041782363259214044849621707700468643322403105003837365420459799812413192860645820506098604009381301045798061690626164005438028156090681406563206210944491021825494109939490692195952928086386795632130290935050157381177159201241325366196032598490564507581062606075827040694166531421755067890443332164268871323234981761274823096477930838402104702114451046165248539781465815278110269501615494700733503021507241770435704058826655995727132333526752666596651389369312054293703455027275533892829923508390872632038637813789377580972322903243899169814876922302612972616761803775612210234166215009536276609834247680122104473946898845212792352904818637636259949167028262458151762482896297929500735507242375522740466063975162508030261270499163691503920377197144965695684864289319039045109377097996431371747020234883477966142829975861198721822617850441735834952387685855529930146600905011826046997136503743598957355516279657784419103878990166175201745711374165844384373605911112309934822871453580623706169982852810544435010420577352247100407796502922963023456782343207885589011783862532979382385495837708603000917678015331499874285604039935019008867627082640210677032071354700957129707585081372496159142450990923478081589722440299644966788993331653647567288105866083577844722056888294955373757251995664025406668196798113337784664871909863949227299441351929817540391441369274402936078471305623207019666075631513990046886536977891436149744628638668802640115100866011504359253572037572753158611840523951412704668758697465597260115182189738338629372173349390803371862324758808046861070434537956391260227790734338789780213269450925992484042761826573685551801592660971120898605191368714805213674507446735406641619128990809007957413887407928020258961295718123477635487239087569888096994445557281131811679415794794506595300310199339431939245518333758780182238178463261507063983887790242505385788077617553860799014199535226675358635385892398151746201207362636606014880281801030878910449855586621055907228830659045584007563268754030222773933398544492130326869688883240949940203166353193690469212970726559750377235615519445020753099065761592911015367757562873224866935896548049694575762668257152014481432521195461555327177761143126509859311274721133404211099055641390280219204109098622296159964431064974791097489227123862014093948736235614841032148924422224802998519758510278746127142708730407174286746578006266049964624932749337745272968297856597729357145516334692229316831574669625448854569566181527490233091305216196266495450722967475428998746680610662068616791078307183864232272242956611736165932358245224679033924857518273824427818905181592928811559242884975832579174283109462018850315321852731386227378701364755962404851001428984650894276724247832562565920303945641230046780538377938690859548181785391024052880138912171701202041640489549284912788468993120567847132261083057002741201029625056138647264592470543868092954674437098729061050784731700284262379381964232110038832906928227343538584717611420726805379474835607360274611359287437371267016541593021945813043196400742041270849733831850268102870757876224402133907117475606688160685358972340994990722403809706312184687657105447010270610242259703221027954178713458551681547339823194285714120401879139313519582821909871691626070194928000224654690525694563341171232189869917962472608906910412264046569806453206366180808452363286544073210078200614563105459393816454732800203123677931833836377326714647546959143252821364412591485720260217884758280906429664405796607361675082195272214067402738969157428113733673564749571216210555491043877976997447010951374239114254393749537833899534191472557180657827034269379586851445351618117270754098675721252935241468987880002172996270353422356389353167363581818930573940958966731136496360457562831481495877643582256558535359341739973648629134649951839340898532375593648090150283102801182649739453428085616773117403026816539732523133790650871224767268201544590148683791440911328677512150646678802195384002403266408668061674521638380941418138882364525101561775691514298587320823776589611729086742292261245621056373098353931349712507076896978980635826498333540975299351903573997456092231551410843888083714329028051757045701173506323128716906461485217779933751609655977503582096186182447067726697092607192859130006697554490934177698425802095937061462460184301803066488109716277766931761788277645997220464607194418260824520700568066729283214403253614031689373467136853534894005786635631964239505451474627215389953249362555827837631061889627146046472472299192082469493395904811300551984415950973072846286839910266994655546808260539692313933056500436676624264373110226553503772511706039850289968736267604651734996563280664935246252893776103620093600663303225693064183427370623614508275409821330628667316269268989437666247542720421546602261344033241181357273580430029960435114446688595298121412059545564418658212088415362434829312009277492679907637527343809628278696500388016312271958189507958701991842139670799334078181674629029455843237461305827022682791868270461068332981551091544849807788367660730730637229882970400625672244799085677048805222622128743109511410870291193561534332168461230691560312482439080470295512486007841728665357910002347196014314529681970215791308173936167490523249440746820731480433584118966295410833350301495682765052153967976866328619919088470973512172570474269102767049387302665037519965460698035812562601394482254625998272084371872023079321538003001586943339140975796899747312078891176577477536023866389639204023077533654958390416319786887631100001985095708062008021446353525798567053672081136458106602049183651101950430897939474161448898273119063386117598719145961750468031084990777289828007565688379900204375461559275256712365560547808159115818515759514100063489712204186350771290491821130566674081704861891708496295043310184318249598430161275852818287822717786916617667512114478296243274442005408982082076390229052570829223349602812696097633931432018620351657180576064021419684548765158936116644585231878447618549403450813991631083120665011412813311672530355056750141256530357713180300544086912912718167330572936427291484661751251267991622208994562152583045442849147488400085790452732292490576829189750552036494543110081503176682147413846262271993305708832075037750507692601055372281709319515290957602293730409612769507780468853731751416376447204852291726820304213349701880644174284477059970868885443072146531099697806501180631249117244214948624862092379750958799208882796613250391495186302082997567799533691135593525666912854740379822451014990803347324235188918170503363709223633125039996502958691783903699367225428810107570400308636809842650501925731982998599185507430259164422739578744999372808075116413273276291751606718847780586656954765611099868565749430126660158413149609881455283021051646504240449203279817406926278061893113474422474994248969862147140139852624872803822105084453602687776022934635712526291422564599235665549060267779702337170128165580449343510778286379043278599429348042946901283961337214632000085451319140915846660265202934381048890073841477422633313741712975868759872518391161292090171709247705406000448837572586760648115905046218925173116679370270896934569738747884056371571205373895687357604992402857961778812798549060743579437088523074901532810343772904166480310783430830413805225388404138771857890555430384604794828870460080960247642356233567294154356039815549185095165489762929925582232702062437012616046981561002181402146618235957416245766286392406966442066232345808121257793986623054480835249805061306813559959829332096874039778512173071621616735767169428467550379273389522191012683489320292171343460824300808144610529068693299392018468813926353530612018418275223577000085819718198261652743340988486494642770715725835231639263883330588781795559352721942972223861560594475281288522183863530284493113447665723519951922096692416741642450994520536070949217606323916425973150090747745892563788561212627650553509230322782301643806868304055537935492460169117294489932930233736309245545455404915898346519440023974577019099161032296861144685816823012202087490878877333876674814074654057060342110173912667502595280906801825287426466346742802693297568098718864838748742136838381116890595356474484875199090082349533942889228474843709072199415822424646054829396649638700284680816057242057541014904899452912338445361557817135812319354763046567351280035338868597075762488217660184283790633446413906184972624418710463568080264426100301459910788839001923450481650055702960546886783396601432684417281013964581094617109208105573980076999642076144788450877076308448932475813261540848596145316723139984676555116357886920069852051597651588423625362866292433839372945634550433839967090755170073819136769375934874973024921227576146045895307742968232992426491296006263412681706113626880385159201989390350881954771192096295462491481201401507064550623774851708931263229031408362244389129833763510050238899993248542950479797349877026673627975926943712364019588788869931876287437604020699961279615393261876452037306050432288314319825643004369408394005453334165328338530445847875194244049527148134440933457895253063430658314052402748891147371469217632748593164795120233251429164340548661946449188289761768887151666728503817418626524054432819734995858638946257071300861535921067438136353982643915700899906544535896099414788503725762473086825204535475295412957043339530285741881917292794708350634716497032922035323673297883328965077448718082075213519615590358389784979663830629314157903524159995449615881788486413250767014359146719244680445798741627758513464797796934602777794307665042790467652122646680389515920592019777863199507398871993526046927382504192437926486927825541456646637967013030613881892673552406406046660107459333682144785817344385448011970477016956601465092983347609267992169577668979339227516639839850712096090085102794954877393066521603886703143118504052757551030880493600903664198250242729625420840879106670353472921676954889000971060793521765335926885155399609765615373198890651527037625365524679652032388309833409992162153661690563394129605930282168493020794466727011107796631492976658533715735670094692198033092804370824032501061304644464989893869309794292571815852223547725675107014453345550020215688144586699980510684623722454561232192499186670885020826762520513734126857994825679439101312393536267564186743372140227785920891789140514031930918423954699407577051030388226604534663864992521835238692689364855176412660634729821970653134143922635642459667287398030641683742643683526718445808982086061665283021275922209571814786881088630930668208749584101105960747773259061770447810495691273439900946811686560752332724057429809785764595072382625404142145130512061248601467286405699880838895273901166538264291141103319727463128954686416660888919098040503066966706121400649655137510550638767529158219291004807962238603836939824646534426621068904319103555259899982838213878041296668690763195598154704727154308955376124985606388817112907331263732834536355641306807023504684874624983777240652821143465391122886416549966307202649248729406393044731114418506794150516518105633248823031803341193052176043927060454742102686393735278073858989357876588758223745277454974635288897917905726457467900784408616965700976118113285895479650100710332632642355046992714417854919501270716330548798683083192401491072942898486357897578589427547856435055440889423445035155326191454153566797147135393773663571286451733829959843833879523107978531614319215654431036942219134261528463881404483021647725433379717106940785857042225398444198933429623778959157973018956765474155683599305810096254605152463219499986970638112329465773811775710618812109622113411980608459395675531049725282117603124211808423492525010269859753320797762794477861604357553452655985209130890653936679915381109969853486582103061427590578837075284016114945324424999110061322702007355168768550208643126670434793793781732956403749326857929325082943356936743915410884711216370867955909521591258812270691453762475764554611455219988449551821966845300167273805232331537630326470972357572512548404476759357403275587795932597197509809295208433216178301422443430025228056598410906743807791050025857764293190158520932713263862315251793301272006437582888263466698261741291383140352849989532948545338035283722792633820414904018732758027697934283305679100466867423044063961235054459224550985967815792220320057884285484207061481658039016711259816319770664730304224922789719750012649015281580628010055786284128305999609373380356323704254110175944129398526832760522467385213155263940322885504462777354718834185151374554449398579583274939987499172997788652938607600134610567020358043889605338891492243876862737245867052532258605520712726493393662752503223946572133059181418348862782111133935626516877123780981875545002961846811116066924751865545717079490787544490863923261428687561857145769256103485927485159950722434619135589431927909324908836682644521187446441140116436704803046710734660780809226264364057765043546101258072311558285700890835899728506502636939486782003949242464091502859931388137262792469673147822930463138631687172370798943784781745165938058469496477783169644336256763233335468326354678815442324410428519459589992786967357013672491533580811696567656963384264795977669243215775773519976323828151944893146711997702846246549443126448589791054057289215894144964420089815378277079130325109690278536541177554481956640087068656013297207430873927162051514752638597011539262106992724234536753945449047912947206972019291905387641880812870505910555868101366800545994697309202212144885571119339802566195668838714923914314696953118689510376163614876069412049187631809209521492152245679524652422472810738623734236191711040161144738487246330101559920739985696593860800988730122088309480354010946163065073788119423490068411550464945042770213456680770006416268632644204008589585839447550983369996143110285347508866651696218847705167136465638421863320190591936443853443217860382762660314485353189797445052862151295856198677339126923813973163615713568970261197461532302774046461814415861359907274164423916880189061734653370932190993476526695060173622183268741685080569834679147812468173343898483618973760546594648097463396816233565821277594913071428456890555773896306957146447086485836469543464190823852626934951573216618157005962915461567984884602906018550928204903143987399835235517081193004088315840335684775948578738523570477530075094426078544073584712760546939224943874212268039925439583509060651048581354728469236335988383600375036152022646363065121344454914378297184739276898357503228711196035223334996490267283503872999405790686853537932433522145713043313676604442623104271574893474122911436747168560731017790681665480837097728381266216429953030476957253557282268686930719415818233650146254666042218676688891433464421615503307418818971067357443076294952265291919032016501207347760202802916745004722183517508144497642135777614690913268327276595682758377921482250392281178741464590409524197398909108091485689519743592879602629129596003867329461948863887948445087826965618764338624689466994619874272229388688953255445277849523050740627358127465429517634816691029749132797088256921083079599516699670116543130514230649220587244266078448483616734484218544533032173060705874251042583964517233754158453791432647636373109245441220541180066856237863490318337809660549998195942031868978347833499097523083435399836603909505978682251368920144331893793993600630359337100186091328852855881103885913212392267306130484097906832120913810565628033900835219987515028673670284189184187451147856076612422792294615258872722991626312169284591199158274053146293076575181472768714625141707374378175850386863240981204454320542979195613812483948454425674528637783908819112950239398707543483245421419813288950299000293731551770977833017287802576639073382840417805594754733149217820423054115373608316996679709042945456971063957988937323362051286644261610859443764138352242504720570145073389242280389168278429925159673407483243586162482377948114201742035804965710172140273004043166044845540520108643949229041049640235147132526507320111132400937273699672422689437823547536856090635126170092718707661734136841383427830233425041413390695861108737177990133917223944363793288702084788202549288086824263664254187302696635772969337563517023818742927637668055431929883428775842337939104896786776372525395190921162621515509097744057873956902264255802958977014408226368856753128110052855620395271299829030878411445431162301810109278888592118920601932360320015612364110198887512832808822134738578329313589207345797950124522471727606920425190957508293686450713484916441206634656351504974474992173168434167624941791819232075746715044981539292395590578810335103281249680390194557047307634285756793636089376792157822853638793474787255750210014853143728615774119256313471062178041557621373992294494705992652011953713614006979244217205939949251185816179816145332935864726437400565984489938075138323592927266968159999654817546256863536207262438167875517217212915289538314011045271163367188325601556777138495690689672436396084813757914196211902514376111287552360386481988836890064074210441519603935532733047299941168017237823093808303787164936688927746548637811322430527777434187629799960147680828215127586465191653232122447260451256429291271187462305260649285550185543824146099982418665443461925215177222057654141317270536871967336788145041131832389308689302786438712925018744016300312539860700333106443281168544025422919417127561602631428242366725215649865963149089134572065512972420853805637051628499565909439993574158018228779752714438304638504831153934891784005172759511831567520174420649289590230936424806587584034869219451267820283560878074725825149891325742702827419163299015570877948494842466591485364012235808030793885354255815509168369455314311914011769828282837994525842260859208589011769850712182933985207914080647977188583514913176470230148755473744088394918915673851209874039565532657966903671930034751753401803828278079071378992595388267080142488158806286674364634973877258335777929073102786241567260028297819028150755530174183259111131114647627180653169112365852583685957128633141172382138774358794915132642307919847011741821554636316712714992354331146588465453433576901125450708395069189879978719003334289482835547463955532505723790948616552663164104875846443920753063315464099812705238143670464246970209608649184909898490296163069413849749665982921466080119658370553934914146850818461406496914403652704437580505640971173218007558360138954961132607544609985871954722455182920193437484752559552679034909343922704300620810213376105208729165540385784975147709934892005862767598497436258594140203067377384583172158360132840634297867019647428798057967808139984110724850027220205985061918529905436715250940714082365760971178866406612385461388758081755118926561412551270601075155443534344099941326581798012571686309411121482543565617820570230621309443529669036971895803385076049527913690460337887312067049683231762820424587149916365411889503076182754796600246949924300976724064280032797039945183503935702478538796570490443070439094705395166675604579446945745719118075562364029696595165994618585956681975530125915626765552213246533780501862206957274493748243004923055098034818875254051974998445042886510276356658776369691345395444487725075752187309856389184343099056452667494183139077445248124822604045231609663666952793925195076923144791557880069967595275888883834352019593135876351296324087892629080906671219360018491671649229836434276963681206206128124260815554202490627723727867030306649035560506170238089292307510189343072496165500924566604682628909732029492268293682502737347106171567918165622804089323441669165855757895624428038711336592143205196302333183528514145571049405307604243876646038137733600787031507132374995310090007124314539376436268817778949369116423651025240400483318758873011939173163058054448717821688770483021433438789366614082394325439785026680127857388157570831913656012096955502558363774545383528641661891347635769644512429469634517150386846422849612628273336493353326269374389280915558644412474453011038444742059289129746446785890260591281500042132088409451618642818879435885298336600202582123103429563424517113023045891185785701609886718697871114618933394318059684668540224038134353699118941596897875018756665461419648641856324735720079010192987136749184421249129771840385233006117469271438513022044949982653349538450528227378657935759059065157534542372764180958700849257900865191600467251555229102697470911626210277004565255375345710676480278930633262143134893617804519749874862802353130678858317847713588991752427877795659960527508214526686591609987287903275484227070032878670479649186011425784019585291509870209151714688910953267753146258990555896905062524671155652944381451194621432292408512501989319651435377948418554313999456170955296051071495798883007136164417768348585782768282337632382178087201349287988596895117897969622804552054459770563853093468582867526803884859972550317873774487613130410196758197079882248373820277173504945709794359577795017372184453237010748849162777088436156920060840188852005375371747351026773600719396511447298194281277627394395893725283584471228068335581162131128041548580573907590089372134556921300645116613951129980020329489994417894568641281717521969364149702805316278332481879739431456793764723254750385506790685684779760066928242382552298052259517896483308431955991053526654490171718217080323006771558281528963670495427229464363630939348068053101275495551204768458603651651004356484924847445778924939694871756836535854922793701449678302450446549524639093648630374550081171057565326480329786631630269472815428669171252445216258884870688262312475539564973916244905122919171579188493230387063516079487621601578220390153591450531686432684625935048503332703082403768798205119594544256848646700774636811559430226920174132601667754936830384652729317331661437272372817838971008998085306886159775119211653152821021470618063868381769655289567563612558592549552197324818947836076329501807143085365976194853689940503375879368387618643510157024010021519422198394333920788003031563850360393164520938910077381109404925152437961896546593044660203285593560305599275272671319701435741429149787640980766936019710098608403681643011456325911390037680753723505137144413771775462191558724930654392285810688501155844786441818645961390041921462825482958632407550607866167826773866355385280841699939465196296613607288207334229730639366956892749186462681948670643555028051897217644530568719038192561270186118206076911688890495740788159770626306989036263929279487507535881422058362245087088477549800547529585537190568494453739465852708420837676153844511653633550202003795730634217220412355372532864893566974385598121986568353359948529648631159469428565011868254999833956755004449407423390065324818149152770032954309780869154081890667441612407612658617820845523034323245176701721458977649428427799974898478902055440427559923766174940227567193107909278682069481332456735391513816930011227415042098266987682218138171284755173711894073232665682490050820401927383028360065824868223123554016366942934719143880825359294498073926167784947360576468855656227272329774408997716709849991718963265901682681008516634140628896649677383616534827209144315074604197932643647057366641703103372417892814682400791151394671855641596979379120162110972473534251899052698677342398096277873883714755805086448699195387868079954365207056513193819134634326150378377123647056078375263368608417740741601478821911906282096758214586200611086988525155677770822173772610995388560614475813638019472794849853752586199961506282109845322636304798968350701382129929084029105824398814774596407741208636123773147982031031625635146107416933236023233920822481475244103528268309374155223971260401052544070624673799869290477277933332262735921538346662382244549907780575227386373129950404496227411285684004059695995688616939104438152105946611861058146171685047469339856072438301044010109035732151215792076776867112454693853238574957674467957658276207597855088958226015511765883212677358477290587058348456882898750204848698626886959894037846715928900376873414046332668300664193702375535559359541693164174977410420326134224733017934808758747014162768556932322483232482341223519254042843076654113717192167696077275874748849383867250463767357346485486227767350886028956061977212677981070412560568577994200065218866133872007537717245116525684501090453176237328841265962054148445116562587036252118979398622080995106529954560281393283158317272399900511286700752619180582662844653949841877439179414709992912870334384715787116106861016315398380816733956581987174551586068479738995155048797387447758812200169209097861757181952639351862766549350173613699784359896482701441668243016343102305967273776387048145254790178975397947678356736727442796932983568207868573688454959462128578775644390464120412809969848278087285943157620570893788869775303172236949204933515460658355161372530227305144540605964994820603793319917103141816028702661108272784570175819920646039178166387890887913997497492842549701813826636322168100479575189904456765002369610129694600267563745710596335024709279469420446571224538937321294746837227910305031238793822352541479501281421768982783425611702188004378444127875393956897897188265079429147050222249968895615878322871763541513379017311566847233881912309136500064734195000903447642352175864990561661789975648323282198786064101482124217415649331694515259624115447377795416437277544347380366598220173720179969413741440193512012304111299578816128061131992412013236399042970663614506866887141009880022499716146578919848592989180017336088057913488965483147260507249305878174894939734449791151600190002877654394507691415654209198940476131600775962528570562863190014178503015133412624185306582689340383397748751108566275254043284840390467282356241410512923007528194235270939919878370467431438748020078342579859004862769828433180418741180535477742074700701003410664038209439097568368817668546576244158566209413399888934354411293093430788458365935164758329294821729387293709937684232000356364576013707656326702983186333836080536545657278326922014796009855716080075519660687200137293471468558463570946273644758335803502097246021969641430331296709711211557592921469785731869558349096418866340599183972461973743328073854263937995179573727889359878988456869046492169753663077853408414178188918235952584453655665777421422150571409736617997344822809545263305505233252811393268516299800805801697601290153589642337465509543400070605774247674721661123462144402523432196579840887798173098622232980151413899128528489183927410078799504642868108436058843164437682741765429036648748041092738480512953328513091023799677826877759694311828431902024751155849609211835132154510709631119138299845331594779021566105913937092665517902064694909476644435110683574150052199539350094145865368830427386187736109498252250682827386141259526640625205748147122450669039089646611946131562172372806955588931417049075732523798990905018939275577033343730735750033078712369351894391141703036264307909702587834579189078610360510904502249156465056095039366875668398109471269424976395525000004439300553835405919872163549660359971748291025213568121370184618598719047331251262810801549147646725588670574231073970094492376301955966390577732651395791073952762983449007522396921995465566947748166502926668106623058701707111233178723575253506869407655579087648057262170848438753241438461264608199075333625967388436237544647250398880218078317746276208426963905219016519734721777268325842164294241587504057629514507363427790765553580169138836768087745237095299662098481226958355521787256300302350509296431098616165886932446106784280302441884951399621035466366515231329888226815339029242899183151163610607758464167737904053535553728509649992358185149198144171144187510060555515013319564393933188900202321209902221326613114686088854298381718149460188101104317177281713379605893172615906048070838440192818851344188311934623085128880573677567861742436629766780794573052228583418261008943264719743298515318398581766047728577516735044434200091361770620347616658132199810181656310381329172282687036803728092384516718157711616585608680778224260818224046901998693054394914501308804142871906075213848114999840489170146224642636217734953362212508467808656658418255374765211280078008695831016786669788648636377841158999203394429795638962801781449104300777389134168165839001785153844903616325047993998532605123117530773587456084732451336056403357025409310063473864514098436039142703064395601712411552043487259664622956006971582932289469194515389449817666015078387391408727583713562019420794509836354175431858714422276442480189358049026606852652965380638632439424865756082555172315924490558457486481884979132851709060105206676788130557676317738591161680217208471963681016615623093184868167096233916512891971793203487463771483099145745729326526359180377677158464495310095529553006992758724412119501722891161586401746506976533461107685753698323743816141543313233734554244688388310281147129635497552334300691943992238663268417949158722944702238833693329703652876226511498694475517271538460072677839064218986800492726455910223632562489582987416330029408815568595117080818350298300566353556410605325750343469486569346568294635866929943011965314800018258940576808164755264799935774659265263766463501943452490860283344302577394458349671860813177676272964577497729149500056628911217930115880710481943949666941898348205641753056227124130125829678033240121583621998468035280185741590313236000306215772909896087067280042523603881731317707567520123283122649613719142840448618184349000195167265751487333533631538577111221364778360067610300246490067646934528061634192824831792382277941247495734061465163488591229443918654670825641647191254132885072331543096661226281476594608723950071230773454723431106680873282004228299450671406268837058899350340727231356196243490795410809530010315104198927188914901486057497705911061992010405827688029967447762601556592659774146096827920199534922784952041455296195956322832881117246027051052163850779925288210675576855260738751375006367586414931280371231983246055728581385311081394279940710575302659085687143988653109497558480913523902077835411969999428405639224284381630591570995431875128397143273957231207016697944949708144223893538325676875177274804993800158909562253244995219441725895446582447179647233211693831429384856895237024657386904525147481876756811245298930988487339617730658393081524304929727315825996835029413850407467649936282930067790335728302420349108163362493750927959740524792732998013535912623330834140725364392665068261027636829755319703825777693809816724102221246469336079774866564942507655039990762338567623037450247477603009603751182478059947816742609900938809463075474140502723800103403635298966129203967357116858329821258759745631863862279410407097548527006186700031317387052969334197036912565791857193343715470175858922230189212801930954651798217487775166228983003030402092096060834351682745572025600925151378314262978500237694385571598318056257669488174093157520922876476942860242668394691330398904913433314999055198357753062448430547914690611564464925009384606810732104441696547088406467146581842057908639500216937732300980926600142005684952043936054718417623408755069173862327361930959839373666514646272433744509987014503371113491541225847922038870073629306971597895044739530579027287061777326094531948882590379064025930475021568993959656998318913013800025835576943583909221846086140046155678926281493793549027669205636427122564029556480605415705163478337747591209202961532707729516945925669974773668280848788994452546352777968642670192807123307712904703797599801631849033302261923290674959373269881124463959813557662300357865217503150709681894516493125988392432361544278843671421087709268730121478281857943425029549677613029358922854102938480063481636880551848785571719041877745034878439893721072140576741759696808015779268432713276692041905596222853892174385459924725868041626795684306830476876855826589512706580010038584112800791957117032196530313101913131320148793859105243619078957747737066846743641377018341972273054128260027259729830777585508727903006850514515550648541606422699658712057492031445891018396264641928014979260164777735165447705745499199541314614509251509195551292622970950362496494029543788212324109733643461274237081805170093127924745318186969455046399216532797717125682455511363234413364295464668768476648701951976297570307149745394545020531586150418614772702907734008024601298675754816650320785837133809970541060587472405437124827993411057473973039428623825967876846254532244738851604611106259921237933747592135221340251659016820913399445531597632048262369116034959681347828313392888080561527775844532020927985069044381578247534376367434288203213800928698361674166650205299198251225063131998544345541953267129348688770162253227133662777463144550134571995922025194462644330279871585738189148228705668800773674600994997799404627032313074692635476206469661402005681305985947928796856914549986125982380819421189700198621234580315543225705854844831565189440820129970544560507832942171068023442117844545833879101030717032444477584487904047156517944536566987022466021046680818938853251725084844554777748869558550688017668609521943687635173631401266826010502356667623603979197889303753638773953113357381989461489802479629380054696458227925459695975624084775564916220268929942092725966647338792355954218038862203409429782535506829770856968363352375230135505559816816247278863609568007914216650411062266654908712245432616238734651608628114624847533879242346238775293011749209655751957451333911104526609088005196480278213487658787908033275491225167978598428789956427004390218886212153714121306897988696578602441246401455637770836769812508124059114630183194104720489043143971280944332896730774290368602272960582556905869833195017438776050603302070822725125484149611536040368068764486379702669475411889134907686186716856268006980485109337571985593567811260898141355618672881417983522953070112249648261912551348685635607581942224096950446944925679248528401028521528675940293840600279708522778995479671700921147386237561710109606429408009733295404853095275602039256009374714437608293295508137870937376111109877592104829859341077933872364089761100098441847247687411621064462467956463977730391476188612237507400028549018521201360511081154663718503510917433788982266778206429627376208499554820051793657250128281172955607072824180715514255538285276908317883566734164251926372625965417076263944186418162770641161459847464487442825658640053329416468172877659113682532681246049996680216870561657762469255163711141205181856403446236150676312842450038964719990129392864180584014699173393099839729288746881440459788344819513899851640982317954621065004772664580487921535775010325297705968470032693938569176445105321385261550445395328272625099736977071894721797007629678464303010718765302014529615495455137321967196616102044703036276784321108021783056773020594489453347915809654748478026906115717568089489783054430589681471808333602533990243763499891296412658739167189852387385202501403892676389760937672519841242251557733626515834705724428995448894503112047004971395460371045934151154100767867442844879349185240067572496417958522232319549761973709554680272777267591538976619142493707008206686073140675260700565272434640771312225644125659199712832797798127849051891776319490708893179426333668926772466553202024699542318543074097682035057704971066534184888055125262039974877979653191637439697063350440076330547409223027877588710427043333883279359390255428687948405838366510196030975497190908253965766682630628479098167973848491943550434183455382156769024666057759072488991173079764636775919235397502314268687835293771598331808728266858240616136531418919119214758000406831149706444514256977069387607728615120408742116549670234486784473484478509474925665154479554954772494905895038392664341073344890779082724577417354982264011621932884255511598947562919539027937447228904328026461185803322019979308879693507249612483513842374089116366998192381713055699277525788186955093853735023930290875363450512405345509203638935429033427872343795465917309756083575968418083495280577323822124414889986569717187869389375543717460235328034768335783558164923126245950729278688920756824385455537089542272789805349922278420426746292302928723676033163184898279252893780615165382736601564162515748350204073749921444791381184212860690173624888582500369970929250521814947503641032522831849400172459447794501632674570858996388668222527564725781734558846327342439446993215112991034490054660942500883890868123033002909906810869528431681058894402479017162248483812176303536020412378343190917058792648908335146091111530294215313504648434511324842073113049532508018924240759763321451747979206312017798216751003785759515127380869789703587524861153049391244221791366951449162932007864822234141592980860720236153506696176253665170751718819901933330688527488706716647281586143624290959825421545591171870878020734933660915469895647854239511527742115302899879055828401491719998428047896728186893457402722345875205366828830579346432606390180701132260337799918339010297446290638954623675321202588921106320347323796606483840350285715843596921464537152493566826424611761315282851661300477813782845103251364080465905401631513920552959636381045836955125213065388855724148281190167620421167289001809488893768108066316544306566167954160065232655993822346049234026574619006323038960910971468686064103462142944547894264715518916590662104582294199747482815330366820429302015440390453042615763620828999784581852429199380057890552145590583548462016463811428390298351890922918323868970621128715947107736693190067114113509368599198710834710662075985177347333588594373789549598160227787146011117061038451745433429052157857592793241238633241697006820237507377581394768128290333086821272039571647577006441368779544465834149182547382619620738864413317320880661829145724925134419494955734697577238617110864902431767887099039973188314728596263341028626809204401657367657007429047869852628013581630664023594447226970615343960641393461324062233605507276070592020343950710345606738428308961430307340718076828099071671176611551546593080273149284283227294088764860090323532713433834504836048930405785519091661811920170779910166714598765443066287647789954202607820020157260904308146810762475123527065854355840406336530472569937201401752689334964683023166122647618164032752503702679576293092604211877655299878940306832101996065497792699977194610008956195165900784695708934283182039953391338901038813089619177479301282211374894782363475654200138729950949755048257548089958198477677591561682889030609725515044457600268059837053944058069136196778542069740383343425412608096218559990713246210472737203361703332556843042198224288034516356518314867311716484342714760955022504729893314922675257394759930286160360074070618081390986658693069820952958197696420178868212741379856128838983479142154090724274367027481577356613757693714961482126872763581061315686926503500699436216757712302600594082287632392408416214678041187161201271506103038936776754188988044007767232347010369068185318094126545241431127881313938599894948700419941184925668751368029841170183110529239618319658322365797980715347834138316536170017151249230633362678236234050454147121990099431732501962223568804003463676807149366382273621576672478850470158792429509962665242757246509731594828890417682268192783830288135907816025779474284452716633309894340305004157874358520500181586980071794476106888007668922813721976008911309303503858150744891587383956579018077836714997254927608227790953411019766377135978130429257370902544680274447109863661322217254777021785296904847628291717129683488857103506897995967541300915865419809472181470343974644890026943508623518010264357092944544787317282288107635942730545817751033451137770824719754179511466552673246953177204927089944806655653320885499678051984622107049374599579741212722613684997708977366444022359791961809735512664332362577465485118013452065638888773338805112038987059859590134108470730647740183291560618954158899601477158204840881807800839340811937261452895746532196293139092406472455341695666031575296746287138258983609329771581834239301527941994986479100486263554808592089730603683766306551212510849000292522134404868645379160697968760268802832573004229959144718584197215739835772935652255945593319453221725660451051261908571120861950917908045301827615228206029046960944316837299069676894652797145133209585504312701214607666756265403277193119593985610326500143024119822346296305309371150545874430731493711469932545881086710053073181511323383620544629995181637001713313165188700890781177067049301498710301880132104824599887693853481892405825370589531048629476064118287470752055890392220003059138709649590477241019444741883494485034734769540474631419810890629011387902658487991439233989534237715323606363110107658775638804652498461181777545935269167559938851770651030858437926950107862804297523516400219415229013505450366738497487381432334351981039168142915422818505056771114766341678479713391260741105967756288516412844753889308850134861278360501680736310385124731540058378865788767671439751106432964809877027897323486077771976689799815150422422884705504841636700075377497337213238797119900317953223455527758554779421537463097064182697350657769212339321775010261422631747211575285844939247718925029361072386398219292635050082900272362824918790663048109422690062877187957250084787649129839833529802568270714407490323145319538145498804746077378745969863588973240898002277960108693261477791477285420497418770110545454629726792223706161605020993711531988915633013723651036793317703686460919761522580292504533897711898074860117232751898844310495198239931499468772320421425380996825439788856825587333057401578579155132452994060413385146119109408253448069456888446948152064157749057569089247564111904764151478913652315382608626542064783116807948026343838707814831390697612688094198362240625818171400757413663145350260813941448890226187647809326320293105203854879496642701641800405505733982561916025875184181785244002205637985002237714239530178564650768217507057292959742398579004684499870303950558848725911232896354559365811688435203214225975341033419052522019470613514118082321597977384062194665918660911595757351299803273115055261919715833585125481965295326654193590860352886429684590293618373035931827859011453499666287894927086611178208651912567555109150856175389269289068764611792923517556343445727057020985775768924880689267438165946235668780289881670781360867836705231612811156493115714602701390525032496090161491744200292961848862987199311598342491506336536636735463696451572221906279882467933373992464994240322910830637718943987731336795084502818357739972371748603864088259511809708931731086044912901069000505668900913884471593549189458691424872909550614234951223984460934141873040004709388356620206879887543043488376787619034506175321455904547766112889554876875721553834896039361559766903600276522474991802630794638900567239458761063427522073774179066193884688318163502184593387880295684701641482846654751254329929927797512463545413832252593433900584634327262182501764680214623307429804146828147670490642748401298114794656998022925223827863067312960658526474609692113404424773084044785516766170916478639436546005262732001828962686081890996192320830782215355455635006058935740929948701354185473748948762624659916295938129950130547182116017961534940155740586332072681064077779983384773652997405391861417564889185885184742637165406717021288929722336072418723901996666865496326152844215596731205063724890271281081630124202894149637465207308452006174615516237869029392364396789705871042588953974624828405802930892186047827437459910620674869138483669350592079892796305067628237158970146764048984561655835252657829771210722496023377011636767648730192324744933630606001838642687872852211934407635480084517232781262695945208859678940486287267648471050146012045152945819215638060511172380163232068799345310773936807770604021466375790737259405232468027402737424929674377147018750591668855051503474573876636585984129342359295991433513361167101693021099833374545950158008583904025818366457835892413136339406926907681032182052377003944276214815395909868940239342539476396528895722441189693470412198762807239706174110742842560942940371873990841320058636661260865330433562376662832197215584242377853972727856932026654004052586584633223773212130144206754157951648480550726235501483806680353842064015018699677387702458989521038899362839779971882845622679497295396934262371162237838293376557322589872601537967166749486683620666704846298218195804603649421744075617258444076741411065911199212008195358090858782210534927281182810131712545580638255193363085514834935683537257022689104621318589128439435069892297210923793191691925594447842832275424860258773728291421899753798615848846925834448622932177189161106639066160808401345020592322214408756109181060606935070147010533702094559158929023678074904460486572130072142241851868932578027482560869752473580846414203378821150993552566590848559398489975156086486121620314886172686286750419231963452269000799960763031637471904508926068409383784849139080461547658900708072352921993326112281544371876884679458004435879540991738095779213490243418324394852515975919490065103269321345076395354188514606411007262122816760859548502428587380085574239517138044066870093005555348760956555217747618869377308750595274307203625318018947870022899533538442974691812161718165438584055463664548811465028148689091050129785005697957516472041515782790603942220752564909771364259921531666506425905945979964477405633263063391035220703829976631297995412616287882250193433487388065373689062632968527776638413604474299249019056208684617085171122080091581382966186829073927201050351793596169158005949647106715592803172238869452494450353470988414104225882240039139396887526501974663258182760655290469236702101168482542500419800390712734227300297982249381739808536004490679130575051831412696478819637985755136713999908179410692315104275966571759189924813486205374033077978478454167764218039044555286587699890011671129454019145270371607266568695835105883421517752139578598303332795477369480404702072637768733126988711750517251771870355713305581366848790718015089146572095117798893444821021830382587352684226355372802320871890567086774637254688528207998922228028630363831099916387565879734704090502673094902749873132780858871016166056872312118656472999683287293647729769276306749473548150509904423859707672787195148942480907499939228109513847871190199177933607259423908914243974871321371696968620813009210157324277417892610345391488030479489272191478756669887984914731807039256373360160939954825690727587498122266860324035476674972556403675367443511984666385885624013210453882300683790519135324174132621394941303072628471312036770408772766475394143520076864748189766148806564483350966114895334326070409941347835307677086113505162217652604525036260201531786473845822425963021673774911758368487925237722637932239416430723345015346920203623982215916397988772548098063783514392568920139316128581537855865428623626490886220561218465858733770116533957451167264331379748879491474688186043365669218545145529493095086462734490096102883767288152440892882493581426243550969504939584572423511346386557460199374466860495843191392687602842311698560257894159558499066976060255079918229550658293469072458838016773316557661654025601155817302583027943580686612759551908059928521857807228525442640696557234633596958144146455138917955516991129591217348675960815946062386440482949675825215320241329873280482898402379595841719527406138782024800165178656083889643968307494274599481750875609314044481393483829135805366496329557670958955223783914165406153507226325711326845168899265430748041614204520168575811510939247017120853011636856611492629150410984284794977218346633108384297511107402090567259046330006398968042025579579622769590009630509025967876161446319803628236449228421070210097680741359410570689472173389586664587981730704823827457618711826352542307244572308729777860154076447145335490989847498340358704208497950324642109175749177566813121399514924645330004941249618909749361619934020389475669872333638303228266358185658360988186075545640131939366541580986387851892375478105365035953911431660964207494141991181119812074846888079922893320240522345474561662194880652118285343200073287396125286303123562804270803679727353143481136990981606046798055020976856163628863113523840526873700132879287679092130181946643844423598482311843221676980843063244162930540971698068843348591400889448786245364488527684313237540041864203363770261107913951042524159229560893910665455468241958852113439305351984721116276745029785946820059302280667921146303042016584884680873123961203437132701167790446606961843086885671253742755391379595867861813586427030438178963320992526494747275372991203218287588685278415537969794581896927736494621595090156746528672833315950447760210442849520872561941286346537750811689391687653957164253759898180489197225620754563860787407536228218290205086958378787136101701228802855448182738770870175513390523628480132705527263268088287902217050153288527756718280218092612480672528535855761973765320682327675781911154557977799672274632847656192038616378195586888565254838233451644285898798539915212149131230801637631977809260679991320060977288668770858550237801075063636535752514199643552953295596631387379698413835525635549727371062622429214847075733477259865429395085502151584033518748748797435760617472204377038227392674420938634238566242854582457937833042997656216485266020333008610016970574438070700448736467508555898547002061399671845655587528436529783559538417611687173983003065884988933956948571903435702842894118966107080958262250502483375967288905198938997396796320825927885574355763598489382148097867314748500731974653699798231982177209713629401724201959634457107325561645670876601565684613266485838842516752197234581275290233307142790399897108155502610113615339707563072633890686971092665791041177696205111979988228062721344963920435628539869136790331471016936081144138868971504658723635162142445474606713807569290423448803686645194193811873720689404365938879005580270474485147343977068028827940994145966568914690075326594718840073066097284923884532077047510567611956842462114180620185593371780433736915333609012652553812393687970445141251053408411778226364211068410977749302661153975845328634570530155949867932883270602228481302340851410701481289292993995441249221014401251150759310649287070458304642643772613810591910239998887785918004216650793879416318009807683721377694244183334896098590194066846301323716625621881081981985843308685677813858318115826315001696099174675049343705365321289704351965671360634996530619384318879880765710354017566144691369552389149813977084187432912464656706669659600183331155194945600776405878709390966603844720638669239569285898151111988041113864297469645371038342618418731869511017468335814062576346469670944007672479498384502986587957234002997498752110809082048376460802221911494179597665303680283600177381007030858906342719961862735121768474706300224272362366700054601533292915332641073508992256251894259885976612890844503379436359291607732950233935730214089859455200968701007394269812010823859381388714672495446349289792649395985991335721099460892566546422074175566867774136610634356538032724759600810797679825567965784482605180947426722454420600759249747992822623189803287865426892766312784743330899482057733977067789607739035366941067180048870261340250214938767161172786880863887787407200639664558904235930342631208606773151862371117970437560772927953717001919074787977856528511905018158480372191242636898937449491538459429135535184157157433352605785285661198099962816073029437737355517855525245284518358870558828799198840633197825557453627404550999176829907024221137460818644864806144183801488540678796534972035906618593959813368403491846396524514535190094960081421155285346171000743072259449304052944486530736204602054227735554057245812981270238016234500555586374570700152374730621854180130439459362824077002173929319230486941481800445709401179397464300308462119892281859977059172042022303367898237555112610338876308669511091597359109889898998591705351348679867662374703533944339745231473935087457020166654622492815980916053838382826686548823917913154899252892286670877579547087184969805956553826308476955483471449761733947836814616595427813020381614452964693680071501642079443946009950108678556779717226672257915804655255363425228055594003420854744521400013232592219596998966301213369533203008630073758946844100892566830160216348913108489518840673745766860410293922028133600879330516088928379255454021768623491677780854959008515387531032581273045203193619470465872643290867068431602733473937799574310574268217614416125885997054636608833829301422021828608193615890186652639794049255187504971010984756683862951046723773811094939530067502381529049513924591294935485387335905475773131434765339803779621713854322075620073714707618025572652475230602200656307851589627076277373756671793516386028556025318697075973349698151367556772141924222733171537411021900665633874730363803811133819443017333897729357771014840878216070650784964629131606413039288627427677943005291657966086468501080225243962063420739051270203352251466614173648958383439507124421719810967106521472989814307922984943667188564972212600498401525990788300096458326961788324043860274099609945495306245401266003210443757587407463114323652195287105111885359857154103720946152790520591036907483173415594497798327655735072767286170250584642887027095809325009349528279156018759094796942829026948729821404005434165173961280005848143038553337686096133617406249161857529285722993259751827661790768248358385571130067170955555635835616733160977618456364452033076424065012823414864318955972486787469597526846543153984591281720931368581245179176832108584575980642801738203508457741957166471774110023528451489134026947789908693016179876890388236025102413570978765693048096095840683035721820747996976048655597169848978857684585172803655583250428692442473406480637595053282074922178705787447836075841858570353250517928455382333342671699450629878012140718357182443304913138997250070346644723122534653337868588866153905846344973442160647627176938539882037781571672403471149220848098556134965589281940613261509041713771126524208567193285717831364510472802507237326857892621432633680765149794519496168147633413057986920107735135565121191599027794035538308287334829354188472876312961755976967302659813200751884366877871923079662764638146590336337149501672204881212454849297881980938961621941831702944288671755200767631673532896470386034686257835942113450541632447250223169225842595949087406238141485899695509728632078547065012534556059044805575981101869908180342774421926344069230535465533859616827731830100500787951728061934196703573407174782095719091893847101397907232807924243374302910793729462552942693553746031716974189794453236422166979552603213442101385293972252345621909622682466681651853951036453146813310565611450210256270849567663988719799694109488378726698892207855890219464316720873623278777197742153892530826686982630790667410581584365530509267880568014920713915369554871204330729306001360680974812325816557769699559449719026465274940389996021024211129584616448720285373046124065502122824216052156418809222307543218820561771682718241100868182633336083455298860733299205184263368008623220497381054425648536743467504050328445468297333903602262267127954640241272490018282221943383658107216065697168421414942442956805371747204139877642272507510942522549191288561446226471729214445082486745475767167997273414202813382197930375191809505256395202221457964149009063866634027310502611771692873612719595714993793410475434971981639183773243186791058514071483243928653269807323494641930125725822286576674287131530602144602406421663957145156899554170695742070206550577696794593005648429136798245550525714352909115015546829429040473014650004078702624766254405518594155502240304000846876291185681970543348786514291046808712498304691196632756503549281896807702048074982252709397835848405361371193117492462810403068733797267150020376176322280243538954155296526112414200720458274558464826871149667453683089841093744315209843853771703337042071078237481749796755296255465017206834557845136332230067720828094136374477025350899070265106475695188251255183718459554134714664601214601221022250304080557585325339091609304274438694615468687954897842827868693079858083632471008092744769403170657885180739723698151027961639838499538924166672508126997479281031369493630044138300489675171490621798441389199104038139577127901111812678159199252112786602310922474320554400304110544357474518240380181526333815138344372645404429830124628762598246215738863922021973325364496701387570122414593654299436531693703725582195689830739482787679478912729022498721681706296876291005940958559080750725807965906819820955653447754852622511783784667459221484805023684807955541097911882160145213091855310871140539228245948905375913811017104842306863008931677221205020548721656884649399572490411267978244260015974510122272067859990518390586755402281150041161242637871528085510412109242841023568149912695860390408622828226415963241225904499375800725762910079805200136193180207444389374867124678294923575220639200968824774954510095328472051715416327183005952403408140294366912355345343861751404747570733499481265382759110622990623610098929106733539847544204182553038859096068365545086676847024926617923563832066330296003153584488696240095190913582856533333636834279130449321634755040082300395377799891413165789089729993160130812288642178144450420596454935470443797286047098376562804434268992859814211493761962420781910963025702820093236962354993757303649939081156288619791715288388872110500528224853833529860614063338007549984783002776733432332501628486385027937502774713238761090064477692407024377056138620821797424919508019845513277280807992597002009457860352757646773980708877256501485805208561618464973964613381206939843692372369233770184413237609691222795600084490260536811532296330613644711736337747328780956673176057949736978896216835164726833498055821530871335266926017882442114509179334853130586266267688105591588650539964723798837379589877944443927289558478006245187005900542420508825850263724033299784318875539160367233179970452505844739969672886328738020986331152386436856420888703630471530176033426897497085384560909308145862601018924693643725051231934803565191190245524809065664917900312214972449665097536222454293334424756737920124998240546490732464665079462924491676134041614783786638336143576101971998521652948155018891767753314334359523439567062542858825830644270983630777253811217525357241334098656063354163459900203110680206582559825098022691698805841753492545943658867843127115320219420553369605289753020125723951961732309125162249183176156969397804922836950681503575336975599633717316398436095430939814356206569128662423955103968283744221990046124833822135709493504828531725266212528660662277265100152176864263789551007339610848460896714060334625437424398276925000137354111282883257944169575575684385705597362789561602282202688862136405445652036282912237286073804469795760828270982151853264018466187348292330222346192101022122457879483155002675198082029625257701321125981087893869805379329700800715085154628793699398041891354129919033527410009280960666912374009208468450601584213283107274119860797086919892460589225512214633298895723198651668327480568214067137267130349907757922428183153322560684328337017671626514819933832754424385907042246575301564214522783893682940900791551460611345219956784531832582660988149899199910021394114695794470855747064635743678854854361390771469466788044737553609519707432440883816708521221231689877169907481686970184089061022248386214683399499964804627898908186627210330974407612594755620650737204291455747986304697922449760306352501802393547088501422604956123660391287219915381786848828103328057926107595645164920605032777918450007103540807924092390232290522531739554293527219617069649302094661703002731689091365001213232327295834661004354513018368401838743276946768397110453043077777318728898801801051801958199217331358327168546811621189877848414523483374796179232261877430654181080849334850477346128054549264065907765842303759452338889150922040497119989147917589703704943935373382798840955075393131723400578855219284269706000611381508355544875334205689542940621054735317546859351711234826289048362773884270795734882150333962924797354476286462069999528141092211422359376134167568024910246946013306740307001380762203489853694060694495424237595306769835229949409021569239480991860560650280412565896185562618289007826715538215604391089327499524840135200836543520537421785330621991317471115057039590239247809108531570954954226092776717340242239366764044300704238427230620425272892558260166720296671408787733064841574222303542157301124729991392581314181190675560881508721898627945758550750935926931688902837918441886940253006495484640691463376733376670889296518918102982167673636514672219754697461753489425071162166531092834772193258074534271123067871044670600354826893798943044039271898442351987301686909887539237146263518267449930788257600774029209266118970104260207649361447797100894264479946405674851190673988075967654147475605744753799066750887448375898058635182059297339540828421793962088037432302929495987612290860851839838997858131867266945930491485875076375359838598073958572589006335671455936366633644119536846591457710908779186076117351055239844470908847940146171356034557086826946640596423819732556946116124837005515476283159275059191267806632683543116811268199130758360988296647560520994239643583728723400878068891406652773303058692882021492897285424557319140150197389707424827974866525984794568980586284622732613162650672199292165970105748254602330386781883410288025180544350443643592620037435038823716805554534727736314627892205516678588489690097481348988368235246153353482503193078712762082012506997684135103818381484610601379150797111499045600296823655997002113029971299168948146147148137397458729904776861738673606338040805625718921547840605637339365374862427587066676902622699292706382117130849561257447837717856405991358557691286246852086399195933541053706941532473611639077032911862594160779699672927999757940884715346797979849281644049407523046685317520161009157765251322952381921953829516237489144655411400362382712568800359580022708074596114846879940768525494136250653562704508605616709037992943662799261798457133401834082355412912180302076208749894605576620778300094776549062828768100790334834660899218645676645214685455852881137537004265338318115996822127350760832892172196443604855791444497066180506056912185599228954930293131227084815565056228980907966909503512505364529188045746141450454160666333483601383322117614413901144671587429512326972221663931951134567824892745916941363478953336834849412423203575101136011527504721040430579264028500318195033289589094099052358308461385266965750665715406018497947915435327619078125160580327927681999444946356641926438496901031186894270171886067016467382005032784253605454658444061440237623820877378373790953897129844639736744878398373279380104573799424611274959972207900579766564896103985498112755786072393877312297757488136176382781287920057472558669292748510926484946575499664781158888199188678152545595103473258988301358055062679021276091653820540840340509756445494095367132559687313973807535014427799894500254813313577628517484612763734127981010362576009277710596034831720558874703629477986301200152261334047000932787961247464697897060895738393320560672302688064359908310386941369950123482545836322144787399505833958925622449530759778903705685854903408421970030190814872325077563670187548598267271493720151093825979936979357177044513106882528130133283107846056857010032162801041138734091539573667822405752558282791309773701292885993489253689189610954566160527587415231838028917661709291933478939718437492539297129823339306756256844701280824270520096760587381578117368134250678509762436022062009509369447074578169181003186984498559674537862235117193957935720123986387079635368437632190003503803418660406116776962036057199307012625630279276894461026752645053516733258198495823139163197310379391220031826286241127531818083907003621432348329601791493394490680618726718684324024857739517112601921050627436507866677997232492735525051550048208427660423295482151483763145302792254419465321394033833845001433963642573541389430066681791525557722576219046263558134611700976721984350429402299949977402323244779487312193938507436882806439006758864131698696143345652471397736625337244953754299770652505918562162225658160206863984607561866916627420006202256523248926007194763868631625648766538764669383295648020709908900014439152188067243781000516413104953096273786932431332679887269308167135082119783186615064965885598126384083768529571637126330218934405619467576065756766920067098216842577270316222165088270383384279268208698222176732131446148265910451742407123906941712445575106648245517782904904032060478504775696195825927905500714716135316894684523263885135567829130114224037713940206999204049990490966307578813216490861325949526518611268084298830222865747870709215556870566044028426235796876457153664591681229940880073000506562196580694564016925091146558973719562309956945073073551418514508051587918539064767383106484366701639072626319484682411176032343607717250996854390081787861520619583888934039311884869878809037689294357921678355363764653202744182928029774093873937656628989580716204611392409227359781045679361998880497751445820096186152639504942976316129387678173540074386846017266646088162147904043159949082544004123661116889590053598495358486568208629029451842596751435049557154949146970317773941891530666153327960812478888444386733323249749283567908783157196381835897117140460201076002691376053005389717941444805108449292671492406346132173564169337419776561645867513608999441387282600060353373015162780904694194416519369346485267163543448486975240408236728205855454958817529435184741190468126935504599741730864469485917320552345129156487724073459508967234105255872262880446651783378934072807668262711003612527099087863239653406799552847672282487472942756649587192554008058381236984617164883883402745756140312256111544472777360770027044140598875344555098771230029106672707683577925138585054597062391906516151489588693706243981904272012600385993209504358710684483991281430503130063433435307174163336927553326293318791022958539076543284637854115449376530398551876543011075174397989999577059545568057910731625664183065750413163994202863054268617047941898759042674292576002536418892560380927430108537832973591499947707352114824000770076818142942093007449884571955750480024052893143458842788776724615752457577501936161016406787457971235071318339659350324471206457636564009054937847630577867464588132118082866801571034075382141561292745507206517829423751437903828019047532301209919073905002603960806844910331471130639655458868961652997273422833067361971570501493933727680665201042666771291333091436606274751296646797080738432844097122143358418188635904724552892141018626923208855259398772631224900526603554800095097146583195986823895792446890196711381655243351588421985960719198629489257679065863006979762012021366235435911721561736746643020427296505932114580914699279878975634644335015669188808399944484327788884473026221589739065784417130854898571859925267268752172302504135564913763362569090769157428899220798601689356125942345888541577166082686208143670062784054759406287693204650850783091170734035606171099272242510551010763161492872416428723261607550336835335487278458414263411374791221404866651746344969576330868165742956991774550395775024221672465946416367767458982303276650708178388093661696161535192011811714456160538042322977631108711703981404217232042614896443975212405600533350024171304584260220286576535794314616544472986631336685393123136949979977860818418576803463379066934084439886710758700706447888856778869813933226406948222303318375019549019309023227268358321985803661600991219765398320024817701504452527357459165726685205577936746467834971189897321802141009643812214240358647932804448149760663109933930863993067442263803351903447425783219720361795222787127372878077104573233304926431456741886459407640309552546373041421940773615004110602686333082603117531139647787661275478371264882548021321316158780810332958703211715910617501971607535185969341368466044374643916621321923461062810626157340905444618483808156096455198523812926330312246800320952169518802885372767411050554310174818639042917993799464010037182810105054427522219986957324996626960089850063453621424692693687621045496024307300185105650829491864639156336375996715457000855758808379188960731454507209840181604727957085578814260644616589775344553492158921227586689896077879234044860843734621748378554137804967973577862910240987160783647002931511575271650111018371843513416837020834980151581258867655468750952860864163631514905583983558446138197189855851297042720622452731816020291787739600439022401694410498072041819607439334446343635574331620929388104265109004062307167562145468541187152923622662848305394290286765791280426628832428372885256056587027366135299787988426923288230574459793315221096455018086473705839658077809584845002497442443428856408952567802937970296253991677001873823895536529214626950922245941172183489488302327969441120798163875495609595516911617890658639358052532698630163316262460756083096597551909173448140907778894528993641757822220028419289961962045656647104606928499027822391184653635101739023024327317811248184881656438812128777448769688303331428895580358558685222298990263623166351284318972737470773098569328274404379182763926617032334704141909785160000064860980947625068569276179496482785920418555547872246544422479439343399946945227395063483390092742900726051074644570655392803306270603635344272168622189670288587843158822801091396675754078656447902934498076196019520400026968884995956130526316792013269085195233043532211343479542361418688793182952090253063582783302609131928929781544650124855566789242706633097968423487544913959107099622707699055271699955553694708891351462392270460172892583178215426125812347968566265259753918719644012676803399369938150379237339043964177714556361862917114988481538462146428906463559306632941974576732845792204990732069937897402386515054230733228734646018474306563105622983947245239687814139750952970127938864273931601516770463350646954826538786532753423740087960846054062558378784348282530178110145460963536640747382974533911463585669631883541036683667003139780395750360866473452964925837397461359181604577027127737978978909717414341526503860618843804257722608260484219841760586366793347828946209595230531544559488166245162996170276266204685433351281133610456714760147808623833938787342619155489579995424880332784635459014865762081200523189060797227638356446567699677382081083507949777526698730991647774913811789120974025296330022994102512047902924753816810627480313297277627144953066566839597937808696257162187327811097756237921364617245836915116008518342718251008210125818640723091746734679334073307933764296360755169527835929579441750904335088254647685674753586716117388000838741016872888234783694550216283235604132664533930872700553543344058496961326422161592614079330792537205944114910473165156079422650329362068168615951347263431510720159658566534763460234425902065765695023895032442108018637279183731598624063128567297263091879915206004828648273272411613164174333115729433005271721109222449305944641038656829653908904061491050650241056862946227359431780383979801141046286187475570263857518650346253350212515958084744281509168957104080092952556475466932341883761889881126277537028569139290696399090982971783574371902146120438648927062760914065395785883012368450302748099667790701981772941815671060125906166845616399471533422701978851929829602013379207023421328986013845006754363026238833554391953652069877281821131276590284431673148115015424790158184079068140139804753052532576136095783393893330273388110665112591290550689153494170094155280808042499636494890467582945423318162557013651461540642855589838515799827080426610376774021045650698108269784540939467896643102809184960177587086063854636257756778445360927003036125957145863330977762049884459430700191043974206350380423946298369308027326092261137625183042141054903665685203106489937077482945750462422446291538237014242621129443500453606731217281413110492346756658775122134403807364077397827458405136854008541817667143698225456046793636373715153506233651684305986252100752030847205413305253258512571997419907079823720714549623063248017786016174001385362681316451087260930801694121926375155100527993525246980892724187756020367341662126201014936018824431961418182700108504169864972954564934147652418829606598506050220302509632984139785369092632930410850791189283353451585007498188020907251671130859929493828231701716051627650324326460629698279056023476910984442150210980046662944487667084419350128729929896249087397790493362159366601542142863024702313747793089869061044563387971986104488714142096791665333260204890341711907213095471343450254615816657169184348576936151345831684821078908325050207107541983426974978122302422673646271211913071124574236099567309218667971477311310557193771555583222037755113528789441733158751145990131518008226194656106062249509951119490187113232234507745659844738249755666626941699482667786834560965943154645391554242247607093636368600033229718908852449562097516114060376814101490886066801330080348752220775045215429643380309872929150086793708715306888797855365057455049180131572143215851355988699822168098080457770778406423800761831065370430596237136348070796657157938546271816303945785551638302065288356696845827754932479527416464419672622167855104834766450072141177722755331758393642391241685114453940079499469100471862222325404531255259548924868561558691177073692083914311924883228050942814218564173335325111361644444855581936776730624258435287925525358989974688233403015445797429623693679949616168603298146222086560368408756117057105926223086217505849730827839299735635579618487351244383535729889660748163944131234235370973710586434321023236373226951417766301423647182818738275404165411553064678560943530287976761749311178294546181328607525843747873898917656692954820482182516865418933167124198222800805294095888649365232207221086573308395722816675125992046355706582337846732172437956152808353595028755954956239263361409465275017937782987270851483466603104844330084419023837959834856234062129665255390188161472242105833765690002276770787227360278501809459762489117267494708333733090189617861638204652803492196668110297641783470233680620317936901783181214705528237498373892381717182267453708302128661526402423436307605044435430595362171691758398704392473704826589590721456981062429992204550910604101118413757313353901261420772232556952571209380728220912769768899902122937531862650882879268259480968845515830548005618359654509054054751255928123211578383326066862583979845477871093494106283489622957596178329532112442238375927386154207252974283298802437293940891645847831572330966538019377072251365641403163218635960794969805269129029675988730630962221773250863836307030856794398231714416106993656445052145169981811948386218912371157013825851853563678778035099621347292606181040333940293374595593276220525625740639311848436343848782866741985083732752843658724078893797627771650020742707275440955855829483295344780228668025196835145571784372728603562450926978335862225300084191195116750180461667340877747481267605956281895853849737221185354124490656827800697693264110982742528182404439380935110646056732155590116866940775969966071984593894856111601140491707592664819237264225507556828809820236863932749436872228968348407852037428114661375587892087695846183982161021254220256897387612959721967765361546978250700280795683850955966652379591306015878650200352888804929214674467763115039697355688889113201453538814106546134291445235687770719669359211530672770607839232624416777789509067724974619322961798350004769650065117075602334424796713390687649485391409325318175881248105102636464421328452753941099573728187518381887175204143426578860135197814022677414200159599233758407411485306660663836886986654225353335758523327750850415193310543532872638465777256137904929367241294057852340396193701009814048678042818215475438652896342725618940933681658315660197273777212956885022094880769415574013513339546130308835832547014767364116169720380028588225774576919955688359027046412817471735652287231345085332929980291248898948251540713621900981645053618186787328473719256322610256104651434608329290881522364697090869381140210757586356036592118076646871290478033087043294416000747571232091557947206892004684365061301749354971970170936130428512055377217436312417439360325022080563404659299522462618409255032345979218522478938936589694483403541185506644011006285524809080498639053539905991860305185439089185536340931619613733468665800252826416479862667393279843682009845112074131753813513815710619621766195684113575694306503324973893616461237086365760919250760378404808972427109924304139559135205642632187188513892878638394198929288998889115744295428088052354153257403156969357090733557256077256596567434474394952475242951777175274013400767696049992329439605105520847846675540760787460519227392770357726454995300527640175068755061973549159909580084691855866034425221819408402066680781060844917608826879786878357726546584690129664475726116501278481567129044951630428366141410080837280050280212872359950561041304721632832440727874737276847161959332768313818392243774096617947585098240534783883751114441267664845761455071238212374635434305286423345833730745045681668892888419771533214181308531994108291986106176478485315648879836064889049200716384710941869648439127280966162807767597084588555199227943957241766606062198708650206612494668080595162881306103919727357208376112849468909049924809213773824521761173512359911261411973969055692656473106608831023832754269404956766126670083067896187786333232869768305492968232651973149399437882273849166668551266838011764964415642637196516232207320847300778858641908625827238237766963227888970611037976702068528428074707906583774072450955188004152967453597417648823953785730873669553796004893786502950391303084233242534857657003597779991433282085731127224796832504915727226200574105015596679319589098833031563566613332331409507296985943224169979681571757509369432413764661099119833183932698678385984997451435271078469839510093668439638116748320847777302865756702152728955668148858794936548241784679681921867930526940405502073586135485329548623916157241476464815914391140076487204928027240500071881417121085047335913857726797129357712058460587495167381693946761359726303114128835989869116730806239834091146338693453293721709563431502303907270641977424518470895907365118638344893303395754370666920076350272740559735672782347882890597949167572049853344955655922885805414999211531176634245640188081532470330290316730750963534539905197130084164215236117092811159935019642097214941115213808789350481927229433703303900385013782809301985222261085433328808473024740940168693015173025766649546420760634519840915620384799627164042805686328789240868777990258347244629301585628153405102052040017629466377340659094881555993032835596352286837545075468573314317550282447329393436585102914639342148578413581902326004106895938989549094139359930435254601771893137088879379026728072079649325351779111757383576677209088068508438434783064039898963029239016686185578042446777230262707111461753977658664558251966375587711242188265714139344572582219935175352109906956150696842984439802877698587457976143005488308909381316705492876833881473384196754712260167467453017567841100481872989000524315640981117511332604269912797273223631835326874478541439948624660958172424762707752854738569493779657549297290525727867232770799342689825076705046661017024825636386143684705084715350795569081476653751074240318039048747243747557546290569658636231169489876903160008667309478326753658033486821106089765617090264238071046447999294212638708192756780432260289667542450773869258664533252983991165001758848367516255123422851413986032970582865778388539298941211800790279472406178752419596290844825930103550146042403868165689753091917248104849437336605906750698716325929587546443550694066374838857177653152959598099632000808310625502365994695940067054972605899239000690380027145917995043235228904222104299484584943446852197280943929849849675010040518634361995877475080504369141634096364470130337224177591373549597668991541226149738670413930480005964438470809445596790264413759563223408151095412306296168220347808023725227620655244374388645490822128530623738644382900273198743528395441668221891856040505826988073570421858495639751492555775947763380861026039449001408461690785166577447242068814517026867320755062067371764258287954605881840009838376398646918482401740194452294792901008319071197800774211550797612610787190849626234144983023412136679891995771068631609978308721302725982276368735260504845670675910257962413844156890453679328054827597544042877496362323448473209812285560356894498822302640244028677750335193566532900897356524871232295715681054482284594692206267222406649905913281751444718156835995574795954793446152889278195495124251372957677881912182754523476356111300610970755733500784062133195014905058427324509502486091818862021155777825064165345544140964902936621030939702908116729580224075499113538906784292701253823822129036370708848719505325893163004515642264426277049471146724906935736505095829747548570761561946472548817101928184950741866743828422476041450829214157057653979196139400934313231803025941620703851577987781347468379989546197330201252822619897243246131503985733686514710703250229322275494766867290815856744809768824119039149829918137428969350840509338528098615772919509440014275080557703854436981451998257626525917565560407675715485063970675578116360521623671094067376280310596498285266957986600061821786630990278443310266214926402094251753414113400094061729478776541163244202184788219823880612663179946327551173511053938571956875750638853507685673855526908074930312636844467005322774259457955554686259956252048918946700087612558110025378318083487628749604264379208873477330327174634104626371219327310811067685739817981169779564172058975027536679401116096441384595183981788338509823183713543427130527818356259839140531780132016951883378554094763341480963534966074962507401127022467430426307056659614104338040435946422528173935316596849790248598531757908341258676856095367106047170845780020811821758602029794602804208965023733592731047171815551027786452634003134653665991264506538323607694996115776153434065739380090992052354947884607205687082996550293560609298812257133772171375619230039079042682683162567071034297213073257475833839941573208795105600599972482257766773238313833019788607846198156464093812925147953092225295698825115686881988445937907076605831511099976181845312125610270767935846719387060430705561327321936597333305956059089098428397595282139126148583962091727389849562959927867684073551390169030385292349610526816755967675732080640376767910609073628758875388619676784405348252698787498064735663427998189448952058810675880014380909017387338735250813210971247474573948981207957777940605626758701914198000620652279073842050173390465713974946133356937898057978161582785445249317620568111005049606646265428751759127947153001433749025012655690573172298904582291906333089723885704621267735416713016501904868460425051364160226097630699550556976557241581250513619553279756579355216021834025619071523923284266106825251071628569670641523821932334497969760545350517908919830770726271619907878546740433471912478315775494021397799300631673728596452297832048824324178644253524037906257210970466299333082658959617738567919437871064101643282099213082003935255472081131594458385291440810566133525930531832775297824063976884494939328014908218760523971559074965050575356935480975785374439705258559030851204421074844890698942465734956551079320607980573567747984918164671261616771214183462196581876984610702873520453961774938190848561544567130026243033067148857258500738378862209792723257459283796420833896270651516181251973610380253383437262197582305749959788060694359483269097689053271015833301490770187247635900377809091344032801315667079901608799901571788685590019223041060611192708617687363669924413764185097838768111147298011211821793579169561211304327882939552181064180923840734618762394667115825386253832962990503013677527964636747463882487048959936401872211162161891306937244276693284372262228208578090130650408983645832919208842515723342728532818935356378210614516127737830422158259464344734291354445297968099744900637786119360111192641055899366511877348846551102504643145558778837638687842061183639812539687688602148150734264103449842932506486567907051686579470507688280460152144364008577963522524043142700796903472741635210514454013589125993703267568184624041151568209608928862161843863314248189208719996876777256981641754900001042665493909895696404829395024400088627526286325573363866748483220751580205565640328303548148874881926873807237458602882974034360603502467550140510708921894622532987919279166514411487648705652300054273683415923245184596598425208409166593667356638075801650653093887087566096841369445516822478150885682085058824514291417456406893206727454434243186877599109669925954259199758165039508347937519851871799067659609099500870004387078746904751775576870333920664549756682641710098943067225156685989258654312106013632114215357145720716524033029983951047407900651658753235713580988001250389161049820426812378091698783958364324347496373316162326785792733965286762671984000381375563496336711178619458869284819631563879383085878246295135938171509063332324555679730328781578481038667259990138561858219284754885459776043737930902860037214096480885558954119287617112519126605785001301279703761081136023489974662405639071793721579248933112916176117238430906570817445905038895912852291448877874307167848217977328356365545939209737579530976792488289824820512308443561591411503293846178614862405715926806024455996147925299170188380191679965743825117579395022326504239612284970338674166159025702265577123140652866578919591924134277625971530036535580444413350013579856467150104805100979250434289469260362175704118603838842080797442912236665075588219688561736970083687899869862283247935766037819381884277607720132051949412874169747905944522473199553180664534680766818547186294670629173112181506241171804410615011009733100036224621040874820699349334348088531754437037420196668686335097297404166362888706407258598448575179277522731031283225953817045087493956051667443965223491625341349231974275520213021291929931357441545369077793905805279693204464690434329326384843943439429707810660500917313605546649774439261708437173498739662410404446951045414792336916029428675750743087562223125231195647492847465966044157299482626186134055310255586717312454213030567371843118368675546395999344339744398359183197546614862970901049044195269687551117222987830893690629224411819581613767097388587123258211235401706323463585557502565159624867296386959500515392720927797388812490496068150706482240477892044008320904502574797391324594599264788906105776317140797049270858684017944792465863061537820297405451352035875962745241292633759049395091169279322414027903149741388154572532531994570659475687387071342158042013881273223993459895814830831524433657622967662619105791976485753983008483178583523596659257535739930944013873023392636887125528708561067191056797742729470446931811355931225827720794054673540926558648643284831649583030300271038900693872676264274347715286017315517093341928576329189682442278476924507078167500892315944365471840089672432786558199408703198260620443045720303352922286606744116898121883640376263210083205406349716356833772283916783885506174250202516061222698583237716198057920196565368782480376791890835671421212248394684837240938056349415002341587040334562387764018220884566754251556368894840726438824918090251139294622720495695868396040562416935636434531477559540423481443841434085693306611180923609036903891143117762278891920649412408572992183191440732586691377030518163426533248515910589954913523191821289795853248743366299431035751953265604928940735037722008983754133911395859253260076384364460041847568470308310368340152445986572949291717192345086135750181598553506280005669952535628291243003909013319881240943976652045703395464537582574580356868794392110256452652531043747773976390671130996151533806113980972084162664817748566300954975143938402583146197482927830933008138151688780814956057247398616074545892175831504056905412024608036611161169032891971541769157541948024022851585630104253253307382692481074057795683446365314136903926671993231571642142830149502073518603027658568843422405817767977378327603799954122405953542399812751098023948465769787688362547051373733447832997508839353799874360833777686084343191743674877262722282268125474530721655058675408078087395919773697973429877668126362535038503453793858890390563179118531045475568238612248206234467338827064397713992072020170254558038374732934913104496959348313274631445378188780372485147828179979859197456210898232514735034490149553041042785741393003297399731186146290584897530400325440408924350454349754628374756464501974449247018393918380256957238419129486458301773015307734336915475225419209932143822274343009366652339775613123528184461714755014903106838484896549946677301372498986627749842281228439913472893215929640649918564038026125159798783577136228888413426529208237354860299732260366428701334276328300669403018876837802610793311433838414402177038231480262974489342976900959938486534540053424643300339018250929724628763691635714080550929603313242640756687597716925871387516672957101673665823221499775647032633576232578012352887996900037409749550051515057794447424529594229093250566966546406853415831423481422191104725738574744536457469162347086304560428478830595304556246514542283358845707669053877053921023060415651804126878201973561227336928468253316763210094188097364388329321299627901055724432587367403247532830566800394846807579293208081466145043388766170704496607187853111734546514462763453444533720060903758218307369506030180124766205090644142970993475050313206178630401986865380148572276883607210441406543169898451628811705631471811657998620412338397378240005749884644067857655056176496271559559730589381350426257826161313937628777321533589212674337349725165988389376070647767461397464955128310411172675599106415685839090655625260203796759707680766417180232786463675521021461789690098710050375462370756439557741752609806684348721852011087031834725988609547338076613205001372532524968344786478650314968152498635561175597577427878808294397767688783566173785977488241260233907782682327361109857808279115309715282994385413898013433774406304574823623865529526777506862697381493493351879592174603928484743446704684275845971737243666562482376529013816734274263700959014311563329800525654841031667891799735153334962699526079998079477397755899578652427632976490807726173018038885274202629721283065874361257911742271239982657973769211431999822586560384960469187924922309922861910849166195956205459751583717874881628191274670868997658225509724111716965468382898931125941860300179336304965152005744802196330779507390318089235941649978377349206174455547784481527597602490095863520761838284114348224443256522715555405103284161408165493045665297313329491260365070245736707565342529337189623726011914718252162579389803679423915345732929808929349449357748388598353788955275803045309736273162547996673158603044305054971252824821595631190367675219907460019267591569047864126591293361053183963257225429266838247795578562528008489525823579625557485275147681427163033845978652697031487312258407556550201228680228079928871773154884063057970356702823182060533100851381949290788825182914723391574296099636638269745131202482047558339247712643240558588063064295806974228212892927803642407341743337122325913440802007863034893632242091434020958374853782333919298398133307089322206924217215886684602096020212203453135001994686009996726907810189659060850910655602363158068518075003264435496966234825894400735263600501811297116541313055937924492954419665810093374259275937908787763797473750720163788874413094329010368084982446818772954306007596470233298934717429914754495479515176321997137634607987937061020002702777465324350758156553583215188042437135497404376100512517155621940299708470600328436622040538188550489464636174512203010895822608033421847345249540610532603804858195813568436930088889528179651590606956135257640233816455945413022060857532852195849623216997619756419280496309533684095082124329844523128920642277474318115417000954269265499987754029308978596965265614845690931367852214298404892660424549361506481844371621085951167772883772060420722469130800875040050767310264343793837140646953516920380965402129157185490477716924462350951133259444520300502472449158584934891794525471390864394473796063773135125698022701480827409823716734118733025263988095879029014971208241437383362104864813009962623893016968192872510757341218893057234285559979150848395300976056520584452322532199983887570843488925969718239325390107562885084390448062822275585838214752445121184907866460165867965901860230430162680824300271178860631864380305780189679800322732335623314506328368716320728546916393294044961797543754774395174692204455573523997734244605644092514789811987618537671062963551814659039202849381068487618766642510076685675917917420926841820193102881902657689991509964811577228128193379708370449236746650203697145712257795506372385358933026415656317826570292790896332920633620290817063151473702296127807293420430300024704003015440341965736922357801734980924948144989912412919903468845725175332823313382397645308081676613158275143757811331330892778565468571466032550571134097020786379303543918339381799410811697146070934417163850586369194924386789706747780441219370352871816022869583225368783538790090163683935609328135739301408461495656621358865182863876629172877169775325146674880283563587850881688476288157942852071379450856285744974928902815081378504580798659346412028814673139248715495113653945660829382430215096817472767506464537374610076106857285833381182327323394444628700337253198298723447209518750864726903015413100429849391894186121256848673821339159003495791637125678952033879114659087831938244626015766487589229521923842306042882083164209386572685537593263625777409265895357338850868832165377568940130076930622033984356433519669464525233674589232033852860916924563187600113171540581928991539340883328418962085343690861343601461757925588969180930281930347221692206980919198515179148981368022919982835270883249612261952245922389500222872553379876996760543717055558620288298370697735515947762647524972481878131159146714349599407584426370206298837606436260602636264334204924548338890087081986239573893161231272963539179197452830289255278430481787493263010148612828879982902370451633378064747712029004152887481216472628479148731607128008044868502296087415421666650342715274757685779098067292988404376530314378480432023448140177074528251133179582857655064895763723630521908817654764342283950147030907324684060155314110982058236744792619757226070061180855215334145689652735639129378733284884720122319671340112989661524211451873684652665625425581640048129096937009530886741969431883744403568494939558059762472872779588217408465126891693405092356729242018928872247873173734077239214718776597463091896461950486691396755310614990276391410163044897773552483644260249461621062705274252256370362431719790235580290792054810739719756709489119508526850358610862487715626690537013996183357844626406553045228578856907629963722433027197112907411146698601166423482821889056227409069737895799098112659651745649867843812582342215264452449570338392743478026754913904100485462164651571023830380274071780636703236895150151141583825965213211044606770759422136494353555184913594172212610954196343581238811626442718984212438293158169236401523797344695895860992212422225028354906895887216392645597039815799343564681269557851339177673343972073859671236960624773011820698661391320030209055085774178570507494826887964964337854819341358781553536679922916709789112085411947906084357554961036471268725568936526659107496673883085714177232175494128433845585651383271825465211402116127444752417410843723391171496946665266660957857897004483299542212596118280177715411914360946117721336636171259579620359309481262750724034622309856032927811101877691861053678261157399725375394341517657511544607468920599625480301195330363224377642471479727878259061799758158459858808604840968991580184394950677181582242741326989241374594100307593270290104823702187049976099189752125049054209144367846780177655075594838948610716454536438057219455010165940745941871258512249565691750215747990997528627803226277764772710820051134392055742714851858403639518142253733800388270706013193578608350779964978719221488929548056228294341161326647561367863323492964586693064735776270317224588439979303016450128280310158167459933112193111781594152616122244470650512229658246236335164914732538902143401921548294205409422131588919909450486308499841668487644886453203060386626316949134738392738236737810291061452777686912890547170218930189079398260267727890695875680819830824449722147254032440931821124131252255709312563902207213041139034392080459720301811367464977231442380734166599554155930705173828238074877387894360234884042066400281708321552378199887254072236720516028849575942837821083064076957622564343463361970762734130834876336179094427968194794767057513292738626589364001079374707966396085913940038959320309051070300674378684925078202287288646719292380688679312973580280953295383410084163644811136564420776066670658660174934304765819584295630636883123052551507986464267332452227920659124301646449859082071304688928647406173271303064970440900277861044930549114442962623998098759199461617510651326301005894856765959723025007189409293376180301009801953433150994859690714814930372253187338303582578328711710933036457144091734311978026881872692454488669363462944227602101814791266484692553422192854708351578497280817227988332077655681284167947741557180655122187999639801529693351606350801733362872532898277428221283028461882757107767772713922226550945882816184546830511788651518026700319897165929780106825950266822913700980768047005289668215989400056470785103050974477278056321332650905402743327523209327179462860175526211073871101890671087745530743493856647798353472222650277223164237712403236866353192945250521545329853122026680749308609162054135649238715704099066375974541331362561073722902352326251921811136597178629296384100496964217662340269715036543641781795333892173009913692961456018385313468483485812913314551925559845364096203900377132077749187874268906988489327793915156084837510702298353970640819409983355464512504723875968871890898973951745264618822354090213287843426679324031530375014030041924404040277585820601078778136516984823876111881717682130476339919761705036640271903676864090423784916600235347409440648773817063017468187620919145009608980297409993500135019646080904133046166460503304931934425869951411523606475522374942586337536449603009049554983334525145298883012856010726311921177309221043045753020403337019111157225995572076844160590304885606972423071517785643376194932761112672598625155041556519874418968216786112169422063667864704148180713354522891877568396135220546105209864773744361307720712189694425634455919505666313884873668772991170725828212463315881711779718415178800978400105541414923982204254134199041869705169035287594002056773902106493619172472696164532584640609376559681030208088739981053629288059347503199062298068723289024857614266504275492054965924083897212222599567602968522989241236048664174651654716542542123911186546313388946757086958511491242944266974016486456061929804778389121183604514012304173488214003343040441281509026499925701038785860738781144987406551159089676883707755360962085117397915716467889232501188368358549422541991072677279841588239466538085261401358614077053011487529886416563201470849750671763382843152686310950566996332616385569735711778684819111070519859421271175729188587604399092506654197582971518807092582788098342121932506031806939807336716160667493181834819392505736915015829588376906122219019977806939851530956258570823328884405827460020640666607346354029601874784456417754803965567074500998849843224127702660393260822426564714965124083213066895213176261115736300814624394727864016832211430481434437235897281270724520927733072611360375589288957534042017724817841818288978980992074226362376870390809204935274125439406516267839693701194692917955443857408432378610399683341692132211484833169297534083198711226138572105899072245739906591757791310906956346709532704648313172439389591685795495529086828529806980314180721148471446911286130298219748877818505566840451919450179264785505274334847417644968745891552036852247087315843761947270320121478480358791706424302818207386366735712768573913489770941048898314570504942541347619941162988281896104270669010772336953641694966877263753263271267115667819023452309420617886732873783836613693376681073981182924032504089212237330759682289701192009426154377806213463456275327847663414745124527068551500034596650014512442420462187328043544159520389315010495642737680336719731015972427154527606699581656336156907222089364113626020894108711416051238089920975179479129994016858451452672095348897837560201369269931364747454146156333873445770980628613859176052353740198205993236143259728470426999187288145585757591301986591817953559524279895228655012115086664710133056946835155605237687856805779334468132538969048136051983867190888567904471448621517322115487284109447274958248492989906917425948986603751358926421161852215009772960909382455017715619913268629580442558563799445283529630971766806987833684106009480442236970810953709888033426077229202321823736804417072774720122936204984828096136792471328108527985738024308788487876679073327856690929860194070146525266297708222025952261528868140272227181475093084274658707406910779330826759416726122082906319195307263211515789131463806243836742005468676656753846548886552332765553533250522938904360981247607065498247275856576994082993348419890635985056663661757486019923682339613643517392006944954460146970146979310285053110366408784891478311195281412758613719538030835748005135621420388930770016232549773436575515428950736570049637779729466592749063097344436357237729186565443187492677289397054655579409681888378555385292008082248127568484919725315308791540925723338569497367428466643548595493364904713361851256966752874498940947383524152923438766068225820161291121527237956382409903155568962185075048489224544858634588841411735080838732693716980109895711019284330110895683832138380801408867201464763357341403951900520904329159095680539687166033861807296577925479045151956997316885051249266754313694200726353236958222797758212221680381151992623799144027363852492082240614059413058068322271316503881455495116336981741481949822515490971137418845652907287812058851594622955244115775878893573609810734727308356507340197301780034315070653910306058484548938889106792596458724625965770922923158529772156397237366247592479123881075116935383159943225025743170796758727262962069830685954569897820230894581621467251938374976789423438590790369946798919795597301048666920110905183214883027407953785908196186430295547554611781672759691739758173946227055504332291363685280916300118292531062862536317267886530019938852687139940646236354902562801663807253041803083860559663696401341186167612295151089357339791847742477170275849499654318787435918611765288575527571726970263451343826594389089374036324505662779461333576236930301551267665349916877301096150259521545607595805684587048405547387430713519058139522946103182832320690892596242961625173743487663278705609122337787870565328181316768783926807699915868103347064141210559469929028236705480731191507345969854378346361787011110655373068045544631089347944353087689269098695305296534337728247954131614931523391231911180272159895843633129065167211066722303743739073913127213897482950856287859568504537774845985469494177348597284477318616900375755581404159819763227726202731128966573396907500152037365908022076736757545365528093742675336552859518057029012818409838527286543470438007686571597343370790113659145399573415372335361482153679616097912566902473318517327991987838417434687462447069392494676173527170588185989715360689150910373178618040147700952159719080148144000227246930265583018529489945425586650717898242697850915026011071055729949475630252190476769003576944692877971835372520641928980038824744012369736652941126552338380762826848560583767654122970641757495617949521322743647033752554446258378529609332446964177092750820070366853045310604681325822026054252448612488741660157121646253558418935793956129132471552671065042776326719683334132070856018713384864179270661787078247911667803410901821065212154369133200923212721760695395269364920643955941730037917190782656607745975771054572052842950975400249549577009791270328225897147941617331794403537431778969834482624640788829776232374420004321698537387057338212737520929191817290884700761580587826321866889167163493239509122060587057368381281129854024775230865041603068815733475715000866680090536851860268012371070372655574096082594827688926574244137216957585718995808050489197995474589527703801587010461319879745132441769432764431081118764119569394064060126247143617277448151185441270979389515986180627400003431266552605198055077931574116984017332238128837255529572719088852000602520685422049430543899736576469450962564571681202786523197104571542545985040539150016244833657358439003133442607947416120367050744249350980255808813344190188858814314961786011639978739863853051850842920058197166990233693493229875337416804524915849796718444842704945712391772858567263929705748289759097393012362361980560412211236156140364735030692356057241593464056521309366426804097581590517493523888603804336953756859091465501665395158874162674746271702149096690262232635812934158187232484912106885651257212225722011325006929325917003985840963926391366954713136497975678418996123993379904032172187071813703618045882374158306687074744459227863546477521441961515971279646141273947757236939060651291309780975210287716511747500195321453413318931409874558137615424905525327268107206298990905215192782812192064837460559221279608978207392977063047546207426995005782209611167548389135342461014340960916367024064298363177118493658617197559305694845701000631328568850658646184602815241041786093596953361025282354743360245184190899963694732855619248814188152142706722176125932781643072855865583813796072086230587438647276795190314224946799848055603985219131630135242974833609893392140893891486955478070396164342750668751915619839525831459544685421176561983627689692462053091331355272381825865307816532920631857127762497402786490492389242979559778858560132783520449797460452302373621074665396506818517639440777188492953610056620233289252190953096613624557172475540198976727511630028902603415877438195592640728043204019162293319706581370852834244772710254314430607583486262578711537611332158365262281613912364788635668661939778198883156319961414002008982270038584162804090680076632443236844660056279728001491851985655638965523931023764434152881334434913964467449833775517695946943567961635441423787041707989120025927506208126624428854932256678728542616985005580846144529586814405868505494994422364879681205274517041580669265777324755103202895070503893795919212266415733480362681424318568823519536994493628591045994685455330824404884598356235380951856018325734124823248682689982077458113273051658577149443442104247456489593762541942380480695512779083624525943684103245828216601499419958143916680078055897223131203820915916271135775157648499662023750650945134331045703520849111192398810338142640020914762690077363590738350573555142967454652247229589175223920276038828765647533261520045150612205793093400453883420462091393090324204162253346238205046816691621226919973553825886068443071676731214316551791125920227378556566123629295142087202480209705238464896991808873386632365150019244346280363392669595355018193101394577163990212521931287884821574078419232721693103399717787278322670844184875823626805536836265276146774377759583108719725429846438568050809254745548296998914861770908322300897812290344646293603188860673349725918407688066354207037085068413923530787809803115484915616323241401321455939687377029568415788683586145102774742023524270387148998277081654355190879031960545184767228741755005809092259505818591530885672354700685020552807700909288300429354063301359042558799047351140400519686212689417946854357844135163359485705530111528833524479135247636600122744313843700213384653834524100786005723454156705933816366259429413621049993445781448502845641043606493354953453978397668995199438751308558921313521417724826420662089709966463676829430173429891010869647735229306548663653997848120724829792343979934256557025604449109019621349090326169979963004696539390123952777523908655668741346380066384800560167140846782726441469332321101422709263355807686072925737699781125793847093688635569632116006855978708908478486676591848641343733055955746993958669166940821771429049317149132434373618145371639215809075584326415571005823725453277442369982737067246990902964243409634379195929355910990175748551211316601900029769723134692419789052255946965203693469323859828124778971042585450816605975973915963009946135000178429152645961571291108085865330825443633791144687329422417615351638151631974834632419025424107907433648188891039839877987380660022114314361712940980598712775037287720964283242818899329732847482102865039340438729507617451172213021215761222189718112356000191780891340174150826755355174204875217395204298202236993434024036347814325555102406786587532557406966655173449241805715210504581546452335159227746408057721179119055962173276041462592986209313130530389457998011831602594956672237734436347472425924801378802705655859026125940128407272197101558339872679300345907768597065646496829858658066222855068155694788627015902280574220998285602947046350044968424987100507746733396807050370865377380183619895866222532741818514404960546000639577226534526953202351256609946523323397332414189025399442511568553836705946574396442082391026118699507650671071459134918948111735873078341802836199159904627829203957357961628065372254843259438902826144777975804060208916772481318227941151426449771303650899954149640392603107194076228864599320949790277936611035957715465655647047133952874559965289025528298159099129236596668255082941398718677487737415865172124854867247985885725140799057337946666138001577917464090124125989672792982849698265034225228696341724774206224150878943377955464951274148754223290864628757864271202023216419604918168947001024683224479049445819741306432194057010124191138310468665901101074598944871421523118275574450683184624687217238009778872277456701623659814692631423894008564749171891476806310507841747924353797091666163156767304536872048351381542125094604153525116384246996005997935004978332558244234974208962998966547402998020128249086371958234836505218068073006128784517983656190257364105621405888930386318198479552502669653662447123972221514442892207512304019650996578915718956828993927406893629990875480351215942648725080784307352177131531817228027432355183087454054674740469847918662678747310950103278225187630217509825619081467445028464650829844273921396781768651991758989838908741665461573678450631452118758429459031135360896415923375296405075550701383746006198948284880349309706207207564170152870525325798106995525839628003562653970935526136041301838038207346448456833200106370013041051775971298432418403006718606289737032040707751886004994769263864174282044062472142123411886573650024967343268055442248765045948198611799698702944094281499250906887267456708727500795647691236716401624220882506675873013037933429086687280830537140297696502296898975335221783947509173353217756277693303005978185200637697022744835936184578102983101301159313760986243887151325047038820357731644785126840334399389875952332768153447035129494845964201873318681457842004563980482842407290180326092485596938710056683195246247590991265679755089808898646842808295326441882383802038754099020836409584520591613852454013708170158448638895497745797815439861103971342968445082549267516074497628892130184227650837457523058577840883297426219552719252481683197593138645634914475962476354281926654723746098253907666805529803849991025449596113894851199586601651254460782782887134050735010322204828116685866765286519518067916503838324966298099140258185015263949262447987527560107007497735064608334382132662289769733271281117584439060648701808816445251370189545610111729460739517089443683733342194963778262894959437760103598556293412699126049726707084922966778452404340287927567512412647017583668649552969172224845268202177114957980698355749215861345161450901613336591846106304859527274555057920535863602607719417444863254077005135712720628920175843487963179407266642288050680306101349026977726268851796707734543312183385201563232603850626037238823221060678911630696403928012471772335755054772099567037347804409306605785612815004828437400690103120598165541419203734741405056467063441624639044341676877237982985407129469949922202934659548692524910657320312631140704412548580339382366355710804365271601163401890195293333286105475150334912026656173043248850348217885353914773657811073989592291335139711552886461391046886870880883052678040556333521933093509841404468542611947621334449325911692273373072899148651488933861516538847036493857118972298139088285730518663465396495456719646736247822131984580427985346506891450952499942147400365880732230580101471913702331368545274289305778600854137596087490338692448101324263045238372404100475265350040268961493807402310320020941077591807798754169301861948476771702271258599478772549262364713579391496510519161276917366383488973358657088828866425113674845189158475325028227358749381516529882983766118376988160876055184454818354564961655468874509181030411914977907505646524856840318864829563075458754972548614971336565795486338947148109268526141767232058097857101227772303688719345125245670374978427662421542723474447541293437627382342857811287989452612811690709122628679043563643689217506114993959892608768330871569118191771684136531422824291892280414581421066423298582015312307746670529887001433164491390791958655550728983203578686764878848998401639011227639059054651373884848024738390250440391633558026933059994290615554367420381547169314653639250351914260108560591710974938334823964922416737122486338017590564655268331968458798424059173057355845599526912519170147778526607304647771957056537680016311595927086121820042966574137832054600492511113937937692598078838275281477580343595513148783147714954706126662016953134269127799582623545322875411017806632091445725136996693617280911860473374715374026050266852338865377798653991519407762266126300351371757869175420901772129989712030404178760128757723912971450689092678680328931605986293038703841923838300822842627415341141528444240915354586615848346873189172005540684753802996197332678534291971854577395764372944557255719456788751695919759116424580568779236933973766008142052381043797827379915000659371524814151975590890695179776823088106356809953772867321840573669027219286593150749913570632912853689157414444050818133974553395140580310693115773123081749849175730357949865843482839399713059419317464275662939169646113647715967124574924770085369375391026842788235528786427482575505937784524538813873895785379438713914607019000355349176403648763689124654297062299974905634583830858119276183915496898469077176419832362471033427485976631371060959377578981298186422313134724697443899906093596546569011118902898319551927920815902320473897998113702408254161023156758869670089589307847252047551607708366882211680933827722951935518178699141376204686388399432261395914385440877925051538317191424261683588704875552916683787427758358752876792487579844800760344928960727670831324638855480217524070358112060975975099051110051534172034309344021133176249652368617631365145551472298883316940524074893910570052947777692087684550152042096047390879851467987320646865456894374913640522971081924983588198631344365057032192946930597565143597813422035629939793980167903995313212594108292766959635173958131344733488106882017304592505272693143118934919711741547358631282506167310117101538355092360404819694090188828307810458192050203468873568656299281077959291734280398519150729611835711680171828661593817887424929957258295795642039575935526709282008392114949287517130770216431692491232655862112077234959305413458718934633692602299429518409670547752837022730320626740272510648166531927867589611523572422341828906417673133654644994311497448807115968078535087291223522409127579012328539292203307185885430267914069192555996391742760539776154215918198244684068311970231309908143903863798927661402150023875857415267807923283698499211610993517067925570773863368738599864755618080222920988283838113049059405612561066097113806748537801681612052448984853932111189418949555405816851707222969952643003945532837827320563903327778437811604093179643432218158031381927547578684233325071799279084750211722851720866944573932590398279599655717631948809763708756835358407843927436247008109082775051781033001522124747558385836690296138942800167788891541727189059193762448675377937401026228412933484467453468178156210795285777871281388985029988774839853830586897807943696886217858702015212460547059205695901160524145813477372403331094226832016214828043501258780711616693490762229078845175258097944301742005068755985742709801748889283324816791218766023799490378454096741817253376082384284023997260742579588448961931948148258980122006042316396134939641581695843745399765182246532384294592603678247788020183070654739730860594103092818731648875827861869518073838653837338150900183861395843497192538128566179104921195560485916742022333225568555667910074008685472001235488322494435273507992375390395678302019472200675214477397584208373575089312714289140426395204405815614797890437030561791986834785425031942375050077046113108215467849426472974421372711446307404812256685136422293073252743482347110675834794503666293026572115103440039500241249484646658653976120777840461624162318116596652296959811266243930864261629041779938228289919119623631604147551097762368830538094013979996106789721110830357492391461976655074195461034571328714638312442979750699215684182835503412047989097332369937450009231316797473780513580423996683328549265042807741245294219694579173651893104062587256827081971150572922901527437126355575647690347390497964141172330268220116609078655131243253138366282364448819207243699129822395332199924965840157421216956928033969941692719877243352976432790299412232976820970720417440610660572450785246566023353404743738666099712804838434789374569923860981468428920872505385956996458379093260579833463317788911828904426969988539065115272090494332093630613460507018555041325285127522004335774688798554425310974992827048613877489842325009811547262412631859541905809793281541744856302883557402148066782623431005412976660735597922244529977421963022560141413322467736594681511259285033428076128461299305194782396773327280156693505733456688227652310576102021827999401001039435402356703637713759650702255234558021898406985542754357773439965757172099204581166603126015153942849540293432131141691106623314103187703975455266208704763388313184298151898965556892020179155821039090275153660872196473434042813517280497201286144837692310479847878457494086200253964014262295422946132298991998400222505351532515824701032109141951349918895230742438199805340652098420389769185340075896354408122477533609110643761289506451488565955726610353662653537466110193973909494893133263120945544385846753393278345940405051156006952685402153904797954008833853910491680471984098049845687069231961926113973095240593863375975911517705270243031794286220100287455795172553641605251803452187941731909630317139251029984842429749405433246730547003891529735792055556265994233770345148046084742388023008234566488740603598880281302197097706846482177066835982365766785117434814631074369999162116823884102023076523890790509273785621638844616123983122447001716826606559339223077398033219738182380041251116713524987698165153575377288906199890060837271417210778537287361303318389188623747753844726302395902264949635403831523651412222303179868205621616958970957180361091674632567588442374989108354836892285446561177213874213197552023730949667583027545429770404998983525594597468500289385754162389472148293462890886701971356409377030253409552868396133404968346892867618333737171539789881214468858883456925580820598071041658694958171000143291548007777698309414059040745937861207697546386194126619398547371053429128229425363470078227100966228637300490783907180888154601346565655519618223317419987322331155110543893334718008705206610858903957960250239339017523969705057708445099473019282763400019972302500872340538286077348681295246137831226545432592739239697773725879504335507581801253153398985803158034877123261454328170161577674766649473105666713768921873017473038359296153847718883692174651943425598760076320845186494491383398721781132622092182987036972375657789953781363665045075045586543102811769662626238760436424179758103507422749243669968052232508882176097458251213348337525492301081035871036904430932707955194558928367037822028188535644345800547690519823942377935880778599561380335788202093659899956849774690212819254659894718030298380779716620433393166753846980816955858816671100262764359716865951844833141495703228866988529749049774507013473538309674349734049618596893752924485595620036596754016319889524380152525337722184798800720777845282562515410851492064958321347124590988431327035767478406705018642428294629184710861848625010174862865284884651067969156549634221161616317224916738299995271455621959922545847582534400968771467828314821096052864395730261666970132328408748585941357600559001824524720877304211239346530912895447784796129352581900501880424267569689658401068823236973382297092942593106717333968467457383501451240798226772486584253165696834651817827679876145718575109499654195533317289302132952171763096562176916945120109628945637426845330104287894367704870613679962134273565430586075891768180679621527902885493302728283371466737362461187012198875706079764068734979169069005033385279304850133389533238406530448401510310482816335649909585118952480502335814074393731544768161858372918452607507877914770944994839369709047402157762309375068574445397384429143540930019094516749395153319787157542196286094153198963317652313597724280538851967404018051422767033836788690755012740332601864584118434386123514424943622335188719959006644051186391735828329018258100893030640308188901370738855454837030486444881212662751776322496165887196357331017146233101918822104728755845260587297074562637234029826321777517946041982008932390420884850074086803111344519647508385575258988516358261011794208250169518538677674731331286861596373907852383314744745850125382553780129631595003316950834910465945718446750557337046969462246346322861193906267886156657913987664203285728811519474237466306938939350959501246619677894582154086996786868524335055643746327161111574422642413695552170206815148755235939866781653988377102087685765091109340122159520814252610419109089817883463971620774121304222766656925582961352362503249157808252859059935607381943428295118108580035242831176093801814601661161860248514587428872741259169374054330198007888830603188403673546116944723529891795178702557461957551133126946705425978481040022832938397878482442405172258264991513366503306381986024188849687797750214530135662414247902881341782578091282836595023005508764002503436131203647031482966031107601396329573381375064296265157407231644404405108475715340614617817468361041341884809640133740502774014093205242729283724606672217835199580386326728796933558511838063206284812988930406395116588778407307015931916950671438310140015401542428815658150058124710595859560725692890404610326281581445070266456324984955267467124629199314846553963845760702188134877420202678576407995019990734644575445984799879366559876543741220665111151464109022562392922697895937622204188921312576854369569080534113479894351714718253827034001482714934911572752446176538118210593164293145207867049661262814376166583643125404276309503883741246759795762242033830344629514684318085451641391577385851221008756948436900027546711314461389245046078340445392878876100848989347026730422589998485232470124499764635434411364775679126262148717632970769738059105247193278235322585115437199304983696561371412410355834119335487625396519853151443428472913005123504513444623113616889316445432903519046039306001422989834999849610912789968000854541352240260818484259913132654604764807930262865916138463890296970172913305817124939572357371835325730868983759349087881104670541939367312935578050783993413963392683744834277079016277668063492957023309704582948186360188231094628261594846414795729670371943563917435174510069305960500025803051531776116077579586405984050695730885204565003475566376553258357649687373064459492114411122983601354626688938532351843067987082883603443466168159765830524774414100192186310988551403024687228941527119297896622737695121594698407396420036966357443508209109815246339863448564931386222166969268693181077528150887267052673920934131477900827085650669108118337786201292665930553113167197192565536432624651323105632718811915434527212327308717644895983695724933387866417958141841200874567544564333886759320908274398177651487128963093057202371836134823151194648486573326118070233883098346929978198370024893623413070847839544288661562916147823399831436413670783100465677079376070485544051408997305910701028378778388016923884919269549344372286701714008242805517923652880348233591438878196971031180957769832320028942767728882882861065990085802417327560544771063942794181783449578844899054762316223514873673588675795092933330875601068805287252463361957271886074786384490207489922180482591901255884931135245848006991296142857803840777403318186454676977149833430840811640117454308006819799505486867538131406606091866365178034459409019174675386195014147316171817301900445024194487928742141291422488804612221979048225752065359978290121189931166100363258798405703293176688320942937140588019178387776182504879571391491991359151193444079928249481230273003201025310424392865372253778520570420889198691190826470954060313095893044220862727731112901501260369953805602089913255717664647263393423185273133425888570768947220447819872972205781988843802668466226672015775474220910354410727969298432685757707053820808763497424067023022994633282725853349837842193500289494824753355019718880774737941030842497561598907834292229803832947264957947791595315509898096380966308099886007200567059400687738323952698077900189332442738636631377120907825848409134540581329256650483402785923240564128515639700066004476423936070301753424266999255004161406684997789835614732854863389998345828812162094090806527083298850767232677762838331028560262770064680533367517432840935365521811243978511821177962312714990666800361612752770234929426324469010509109279765271598549861108204943418826751990936185720548269639592083180211994196081093249707903336238984219306734808619400226271725421866007122273542929063563481838812023216721601765740908926447881831159118063451421687678085968806347443520479767143658501901705564074861151595659605104532741845789799873740036825687779667094885063012341849662381740857269214163650326882992113076198518722550970786911606961731745155919239989487503355410134409145107327118705327138639249787189686602952288872675288720386297230491209946610054489922893457145718052195294447772511672754868834942013268753336528648658690332582416339703583892125837143734815806217614382489398318636171827390801807536553701310497345989266075742291134424995217623715896783731681775799133502895257037905456966162988312953198936347452501069170403625355194662840738563699784753065013213240693278072326141713624751398271174754430500053193582943836412002084293510125939142803670367021775627478465153235642182415073606584470417973168735906218435267287683198942142614227805329439429347618887711301567886743456228013474993593566809509200596362503180331166166385546763914249934680833450727754796089589809889282290178682425124174432826911475267355075198262354068437416766532580726473193706427880913721410573913066996503335860318522173675564496265117077318067264932589146327913426413355349175708381316398761403912851871418816753681185639256378476162725680711585711845289016802053178657236924679085790327683876921600278245999868980806601694212094725841620538298374292712657356621652295339795085308538701033152632098643169679611959575597976404874280895453565745179214682327303203730600582893586690719515735878449736995486662856458722298717797277724037135737269335081130366484216804618836771926400849640044365869966907449558864428083155079258014443200748316355356484964274730522229528383284610936701525370106781799711195440589985816004588372099288535460798667161211640097028221544053477882458423379367987900008534689879017855666524214740393920108109822342736897527387084626556124691255021994042463576955755434933387909742611400713810041474206740876871929231846515153818617987341953175311931181495241560106004991783383558341252512085809005183411645160631436655183509327696016984040100254998038916281131423292815512658474536722138196572033485236641864855049880963307905246134528727804264290551660712723074604868311168476195702239089176868186133309271283759559128531160543931808642768859856015217821418671358514755352147683966319297223181381208387550904850152232553002899956411466644927297931459163874908980712672372172907135399060596523134111472649260039219456325495498914246220780839276940264741970292202674640432181076888850123499490110972575353959740091706613968370735624700482742767012966838870814034456476676395991278459057251444438905308653954828495720822640440991815624716823421109551893220778658602821425032515635760120929906275423924869737262292027462641382660945517785896847104069190973414785391944408460949821728729815095039003310681533305284244925160451382340114483868870407404114422545068972697158175994504674337448914698688079862319289829216741730681609640715074545278758101395213213789425981908456107142158430826432226502319460677987546452731311971689243281388679603301352587638433825423645017722588250004576352615152087619279318829574950176229128325267564951717079934066354929955459582985913287347651671794463051807217563866899366784054284552834705619940895008990337876650845711323190374513962032559033405239351533821461100576735961599642694184019504561845020104661350040972173521461316165850855515327572053746470164047963734631212659656147552606874700212398224591064464450208508487548101167262022384434374241057004620005103180724778992859979085278646929960347487710358911380644884709210165283532428468236056347685570309367721308591004055149133071868895342251911275686178093242359942712118275343671262003576712204529537746525115628987488764445578856318544206323247658661079705092027682571017931883769186749131896632903919877551968950925996661562675206511296480668793459814235328285709488802243141257072478253492430006818209093544625394636861417164895007197086740097581904374954655025289202706191692117590229745060926260050920011977716919285886894827815153774010652687843264794876444999986831418570301397608997747123629657747701368400544609461308020978444816406087019440361747456195785119830441700748855153745646310979172534877780785937806166356632784359599483284180444628061473215713949994976562311308473503157180382143962559775573835992237909762225098027595758511830287148209033561730191081173611119023739066242042790245046350387892273746446678647226695711293950136100844479326533149974265705670884885526762359969187492488531141770145181423760136921340313002338060485920224373052026723643258944100753635260810334182560015158063331168785284155518079980348762775987597854972568251718779429202212102213939528985772927666583445279534893474532302146517101613302523344127819039498653204696740271634890110484347229678109459114015933114157807395532612825217842956940632484190447988088650990507371478889097379915467345909073339005563522043029374746204274756538112407410439198390491696130959550191951373365130172288802251931729226221016635758126133233302520425523861812972385288659690453107285840660751562983261657999360119615512386346047368915214825613968593591668277722102081478009566417040117053135142998837301850840092334354238531660550360956863730969051613028898219604369868939154727027952877181771997432732056685063584460352636521687126392985453635919500950062403953326048976744776770228382911787577715896576792736265502034039973324795492580661460599656999088904543358187017529467469156040138779793963726927812714958087932179872857154622687164551985369765399496766856931440225462932420409188706619206282870309620554090970371420079809236655559634067633516217293066626228668087679852415648249070544620926792699289937109826291943237250728357628955397025231706723608190100838276471330472501327663682368763541358775607458598684962295458858297958035921428995143050788027374062996140552931975065121868510349104851687046856291318358235674425586166289546234488647399108018026212462236525652686854244452487977920178126219619790193200118588456539024976105252709044296873890378071928534598239788535366645777939269933275756296008872321285149657070174190950536418429794372989371245524968162765178772768403464075027481672281513334406150184089262867293733905005401511841960474172443077331709213642263982570780034990205119907131645670854799392391106892425464339625367514175716125513564266483010524359830967373162086509872791881491416491764077368455230582254937397512720872870014604219206926261627971080277632631325273743987466725872899788808366677783880347820763543468592036053523081694312725494452149234786092262992867027448316415006415689024352502918075045226469994592900642481503679523068568541494763946748317044725040134160422989659021561959571980161566242409725350455287430215329885351851516608330497960822404421079845454172325163973784685088958483075826374463593322068049050375415877295349754380222126161547766360267392753585271377935033123644430682387012428630670555619736031342963908245389577210574473801045407626665288312746035313538746866862142365254356102708780297833457888227718682156045643159053346195415180835966782164997382482515073850719956683476611139238509185136097852379155827832231978799060869174237378730083081492880497616761291285968047321882023798016531307808021076731272412978470145491340003433481425838290790699918548808709602930982418073767752175866032719093938814763730639398096190573118284659190920001302607760911210497516634851596752760901859841476354321848072548757085493785978463171666712921789558542284760177055817577337986740033179921832912115330826492653082666731798658711148720064207412784823562011363104434448810535742707089117621997070771710144546167034334086761029613418541290701471818542358943453000538253180175643134931785677835567243750510760384423754812210658489205401232285216608693089067609176171724337407252863859108971869809679605864958872339928153763146282433356541212355709832996486644360929775949001994930670438999049635359547529994261258420392541140635687335027894944858098134753755025417019138288175757254834818833234348577698754278799822107630660493571295516210413095627466821928848562531164244923918822864759446447229557648885850349477101946505040479203412801325055698725551927620474577160863963395626448147230399080822603011881479814698563475653090641868825922019274562941327272650258497471768014609508666203886005749874049021786962189452063170407891219433272926146796643533444705779976819189657216575079494093557403614673591548004964390535398556886534082436821941473874054668650845787544447536224140218093619255450713283614153512448857665305333090520769086950864624336716440309671001684643272075677233636583804070741061167561268746287364044514001069524870470973487839879641507098980461359108227211429890984756890364662881347707289785149146526258753083002821147046814607061866443494546007536597253352514694237607648281090264124867084706596007207657685282618395034758138882688820012538719723657947605653656670072739022635137235417737601346048682698059172689953948986306308540535142311131811441740201398606355733494770368413842713418396763585173728370667205556089293184518412228722534935045134317098474167196961899026527861909570949065806336224100799302753950871253914379009898480727036533511146306534011612474094704003781259131574394976749646782634274095462221435448369033180725738389616794635905417301032389416550691158373765049407080770034471140600075248585039065033262326256110268297844968262000730193788246937977906058294478289244838974656774355045182495855897609239774161065298875456381139693152524067203678729402936514697877495033359466056251241639464136863370633895049234964845299872279853493686647361817850216243167945462887700483893550071104526070239595010660526083822193539540702575675597264177423874132637313303055881026384145540224419915886370809812594067373794529861798093038423345683794256480692920473673800940062171689069427730506549565970033296482668787718117687953306399651683654620486477284015461537127577251561856387093897959921896968093095088120647822975797190792234430121808218418243688682515315952437310136412505485822350205673408895721719991454690817671837371725855212232170353280438007440885284741266760546257944223647032258929830066944182333105716083499233040345348092060931522423171764443453133837028990255263856492313186196189892140795380983690805654320972322614062806877756272149964914286482157827381733786316944271434642993326044184681069063618156163364725088063066256800706819062760684098104879480367975918845152324370045949621792503229071148340574313183252454227013844521912500107364420484677255661664251703543321598852480685481733696154371949297462560228280848940764495791786338484787466683298967456175975610696728986158380767708924334334791662083829074508818710901554539042110892704978388453544354714163946247707424531175724862192045954758130877313890624110741045125532610972929323945272776368339783225154609136629374658814140403662758481407089167150371818820518201140884657016540867097495642178619839229996401200739033738348557025827910288236010453879588834823228563920460939296114354764606555147227377971329751274981735063816374504615365083111594018024622086474497239333946634890453455451234452583706307028321999660434984385794579422083871465381664804006882715221132956630037899239797329105814529111408301569935677737619909935485830737627237845021757261999332148407901569138200393727274372250774860943508741873592293465823136744716645709674695392727565609911297089815267164702201103173985827257629336820473760425970700122104133762946591377279077576593927337388876015612319913312856696622160799585853390688492590226864296546256734547096846315873033736663552491157740984606759851111589023362956418907238618483577445309083529972474493914913154227729396205798198245440940388540417289558494405742084202387252861527083813799733693342443790516567360789431169432956257269946821705160938117367959318306372989976767853126000938521482330488785293149756607392635064374180615392022384669391041294223159881946699211550222157066280462773321299582249204805807234568880048836487800435687166747898381837895270556368013572569540991289244964737070207023014613010737754065233942839560843155400195738880467470543660031127305548172572055417881385147349006452167868484893556364707177967727896166734019403292126310525490869146196603649787426102896295926214006937721396051463175265167475041893635899162840832378996680477170825017820898279417717547841899868404724769625135483600804968178222274441895444300783998113214749257276749670434252433427203669767297628844807900231121203015553817906544786932730312476890645047212356509183888256241799926529129443311651867999403929417014261923283976490711834783663355552660550309839557494645529854621010536839145037103032518355244037925464067908391269056119305115667386608126318784012897147023023037938786002721043416611878252610344336500921325843905758395620175479705214917580277725061540522538896969628922639511132466022510688742904938949349148518030190920452984077961938034252304434338632193818114246203728560792036591505764541663357027187570901631541729038823201275308954776157711364901534904415938117965585410263433318763958123399073067959066140201744815346193232310495729707415131637216859303394997840568888736379985034396429896340902618888111692610103400734260727992304689594212578654492483654178404437562215173178330500649310184893523990335355724928058922765292059360374023504387808202606181535945011171919161117489841762265334505237076019640009433342719224595342115929805992742646693028788783918219060394042797723761479858939400273342459378228994775254511534841660260549741860944642773495910984963042742862578358348987348064765586408547240999199740722805613199441306435493510124124135471778912967168516243543290625901193680045680450786824671097436267423389463754246438912344475829208314231156169771680768500405647943140968151288037239875627344144286305046639631354107157706971149267335918304968456712228898082618403739530077627838861063264183662488693963187947628630507062676101481278816124441359100677916830019217968468990878419914605799633798564318224855128417041425092998782150263877367143037937993078194823210638184392306682653840941075012742239047407436469679065328382668233136873525660660095812860746393978962480552316333006961401185568235628078982001897383462229571317770542578274852912466605756462064568097471098249412983885182427833906513650686764970346807964340580377715584887238472422622089035574313676243547849136530822169431261594697544677243299935478243472876395901063198135056702137237420883475079576339866045371072334540166591625145145360575989208835743048403897446509363709015365878080811993168225720651293672660497877879949482417930661779148094295075448705929876286151996640072206229362991244177787355840347358601210428166025602402653597449540062585684082177401221532565603638607137656095989910784014914134493427131250341699657242818709103158815745211196988086735990632197512009808212646206805143533155006966211999186732102193367503599992309916625870488386891448672666665255886954478093899406063957374187010844121013737202763892971594205148989108902064280716505606228254912582430523944919732697791567674288379991905686773878184425228032280804123315408195875655203628971466820646020502669699887039851187453600062153143337208419220818351179304680132788681750938563920254450740204376583344258298226106535826238847164502355922406142284343589351821916112862990487523740967194697771620465419510872336739917181654684546036318910377194433841019775757623037051336614475721084766502127277616831219496679699510821894075309053850068576472522361937632441279110189242866789905553403881879219309423499048179421866178642505901238785269595577180972291656822001763312804146726182498293503956671310931134075179779591954448470881188447922495436612878530548353289196660400143542453056219799041278866210001873968717323016357210174573642281700747159086078170483405420881987870036678098737867305690827565548380725249101702218945698014617558511568821957680123467593628470869290588774878655290388459649514657422178217292427720074592581902308000349380934895049361468800799845676929708955268456109021599601315678102233493596257464087628943049155016285985640615697654958511366907775382793975769768240290597492818472406422313182394857942354331229345141143570384156673231397202153241174307717538538369467144869037209105862325708505622110877292067304567826949913353315447656389984235721003947084805452283902065953418133318643960369474889364376351690129334964461550429038554341369224619774576390759419595148285692213864785408167167643412283671931688164848770227711192152491705109206497116041350821304039782102634177712030603545188283021880614743213564910943614461246831897245098780023579911367128788983245369303892062600968880376244008212535030747260386646223591703427008303063588254574597098958728400437630258097986698627733101021692397140654612238145951011194558623991295515385505555208450222515489882362406327833305241741374299881128365537047897423240353301302418071584981153320927378289694074581737031671149414620489825598925213230948163685545097757638184095303800022562496188454145198172893657811921777161255124754002250345607539036825420644152933027756209834761562792184848238991843041544721218968442904925322697406068047185970422907767409472958399124186464279107078651387217322888185119698574153256457619111155014206054468911177702937190875317474376910744799198478105592869597385687474719108144779420716208531112865080920947550577858200193824837543635184036743014779897255673683554633896938315356330900154018376228150444010355035016257154546687956624072911593765900979280185984960059999782533989703121272313330142410257100843091671880054440419408384155339938797077704555650523407494932515462079098518923581824801514571563083232791776142178012781066963384385163040700373486120837270035269866213577558789246110761028768543739327383962320370662526084756026454291148971310766004122521519796968526025786171667533560151088956684892818912330914599239853960345152573443057679102199498255294164105637324074051153348388741606891457641175222675095656631551271620346387599712481988541797621580594820244331186342231843714336790701947741939504153054424819972708832106632480360165591022298948286388495969485554246926977899339636774670370919954018972681780222603115264642995238992753379647221537089465931861223299990812675976576517992001497765031157166710489619708712048079746814117513352469948754883514601980775291332242158479293885688514023170733720374520211747010399356063615789065349199366446828031520683669626433669899199458319301152513427315654738988327420646848109826030639341705665714270255628092281431843853422130132108383332426425675463839077716050310568252399846324674778871953341033807551197897840434881886759206904810560233136086881069423697789835568354433582200463718536365582460548469925362557101267292058346725913605692148118704670306602254389221944268297468279079928336773596157631163998111829302077157866458325041784635601424639887737123292252173786010090897464840966891760684572467496669953927395165231755820645295855009247820559248459135387859277336903230064213566334647557662451437611733941751089210551967317229618843883060316161932772070621302221053671312077836286318019331897538896519641307186202880677385672882128359509505770757048537510004206126274679691574878576637525877389938506769818006987035413897164493534305611194550383775442896008215362919408964993981750631528977076604177673175582680688224888116095507396958334872412036930510098977209840847761215812455012022569725218325591588154662180076291681524233416354647959482086903680401770318536736274579954302441588532494017373882629244335042563568518439261549431575568115948980310171996472035127589141937835145082991718600419913143044074822283480395062338317896702925024856546781042514512222735946373393126839454637556114970570945914586754039729789138448710621317180463455530151071640490385198242123681960541491592599353467572012230477356732332065788991278899746171823331556005357595885010912325389117535301322942580997188421980043124837068398867752805182113836729777232404295184758069827222808400864176359808249065486895257914881890067247412219664607062612406909795208652241661232298780759270061430520573986154180451125443378696247335840347804204500166977473994968113327466407834669181715438748489006344246593898547000002732604382990479501074897770182460121488748200532333319705827657334010154012096781652216854424391461364778944646083289405132866159968453375146057994681597542576892692213679105514234585725498556361545538652992424215465631947465797506486252592500089284782528420191069448449187771332304121937527257520282770179955812262990684955262592542478108314153965613600827158618029687118819672384362710873570899006488471533947630630868334484028188883892378854115026227504921254988416230619016060324221307946886960271654700639008236111042257550717894327542225287317880970648028705986392250724402130378164718796268784318775701630746838511721995005061134837414853787725038137611727540663843213114119769007250858553242395792670735463805858793816652345115953691173714284687868663751668718521795886438667797717516416640653958971164379122316669644435935881672894015664513850095444454612677506680387329371588645981677096218409273133066115779951596416343823508541854604909751821017061916540241953059476447713109335586451364067146204565001910474840209218283372631049895989835435040497765164899729949605662487744698028433732958788114493691568008544623477704402318241834346882607572266382504167398994574382955531978737967420655908639408906038859329656483318155576684300845733605818020186761969011804996475891827364011403580859842803640284930308412102607063435048152623609749652973716943984370478205461154979017069109172179464723561918161317661279849343435500779511359058050948602001962434080138446723565225688630002185492365728280538371021467990498976614977296811599943553082715459744295132231882397585433749435168572782729314866404400990260733110356254088444483054748851726236083593447491654156726706309605809468580008223494838531673727359057816831120176936526773484150370482558628514129975252344884928561529302675391549252269858464798686274332792651951950604804230690984369180073917249943434791672463322447019729846572869740693895425520420527369453493304155968615214168851480135862394173847914481653115480385327297123959431304567644152399991188484201110548643129589834462743308364674856642464825565844604582030556404865724028491429669065780277908430979564334857742856739753780874466452756691132795342479365585680254064923914670894258154023431930264060739353558943238519369119345786303950074679748558506763160594011999137164236342787177863065465234715841631956712348122156026596800704463552142247010475660155626872370315123602378620311914326711648530941157775437545814146881965624180866915258731137167040454600806878560612363620310558592486928577059670456226557176465290792782285011419224037037298396826336082695447076939342809513742133822768899352779703716203844456607695029256903559153967027043086162399787247929535356501384350902033903853990193208018116152260768731209762844165916843330594409647822701263943527157381057003435963331216807007260913405554234557536309131455757948833754578772798625081954958126051953053938922567422698731828242440061745582583013006303683376047110353070753651036584554569234618423767013290706305680467580016167121990692040360215436539583043265093438977411124815237305565920098446764875681779765490315418432923386061825191720781848928771399092349892140260668554581179235449716801880850149834104901233976102544105087667795597173758478596770387827179443105386803670713079105176363619525829142239900323610527882846237943861413011032289748428933754317057511325650809241215264907466744444192890297961427537093317422095342700021895242139152497881859568883237285944472590662282848324939837251512862845617562550887470539738622782523899929603310421770086927927074989196604071012114362196384126358346184955352426032087309762862631439169269876500974873619376927092908155799743948344994314571305675535152676985110408370584345382971012594948915341531290350615193347244353184465139588380172954032875532775075711932234190949395154710044691395752680604134239496732041389976394067859729567029999031403318217604595981786977922642189208267867577796614808352051723068623021973133335874470404560529701214773221379405855584421975038909423147846813927294589077582329708859319880115535045342815263523029585692358972646072875094910832152457298128594620202064535646395642270432827538240950366273654665658622685138958787409590295074354215432558645970452194784286034740028155771304104809657272363429052628749344922685502578293141891192107247054744268865441247164698387505578551461396125512900987793866466414267311974928324557602606171863165407235283223169070711251954471168547850664863291640360107062873245929412554293687476396589623057645450112511982808417321872554608074070771153495921939173511910369118396278076678653948780159318783597524053183399908300875183848375640541429738985599933962377267369119349757153378954430264735199200132581507124581087061268641196829937306743600020242078228501860909588477864845142735409622732950606047123871926351027821766890213328477052671180865570403636932237409267491379451807961345016550962665854802639349665500950633096900936284994683041766735123169864622583667517178365286675398261176629767343377848598206847116015513518767548394796162975495470041831286502880516079215785883862493240172688834968491702074251781721661444073821528898891588134231388231635921394032997907999097488094458320918591626285264161032500407320245846789844315944099704861553989356734994519673335553833564508044787681948383380934286978652786981190396532542558331181336520981540310950484363241218555908142734747323686474564531246871241981743513286049744488539770956426576468944558611411191161865412347109922802628706484864550727267789535675234599074134377373514999410963727356865009038797652590486916428757109078215733999666813605904277808562197052956055152255599913718928741075285774581871232536648864539797744592148286992371676682577866206370898187989516545057367475047645291393692794858063905452555477407665816629528837687187561636366658135526425038658960158670941812682207253476268097226334461094488652758482256651994971889362492518035095462074613587968331344409196559441572907482849989139272630300252717241353269970070764787886692215524348990596032369491274366580708814142084261845446106920541598894034189967703532066060226019409956154652468558172253329540942554683033595955343032940145524563721130981293131303465234949229826799427816781753636087866058559862288672574639496293847783897653196274725407141428376305910005689357606554605656218226586259884398930676296463918671767813151890204631643618683477706174171598359690084716001281675382162118969655144326890119162316810108572016950880996527101503924588271402091216249430444828601659910741716002662530763556307497536539981382490089245360272294190724775114983929934846695709292916935770192943294459927046954986902441063365226695274805928912757970635681602548031300988897388472626329984342347178147418528394573639296721864405363656142707091421363679956184845063463027581179380223880232119028447128166101880658912805210126392441039736612229586969402557238268979035454016906865265172126703497279372598961103480552044602875827805124321269541339361640449340628122522870269876415874665052634391059239120342261296033273127225197346750088973031040137313930012639147755923435379482991561582228451168914603333899711199723679054420662300439993060318345092868668454633153023856867518627355603994604211915554078046363370564350563319987967722053302372093254882567194120754672611951740287198422092307444995704034013964429696640864977156112084149235202033638999992131107036826325162708180905589649324444582519254473366803642168585852094736346246381470758029578618368896750334632738644258526179891087516676243901710381314619752681672926416626965642449440482356760561921579225311662135723022314787700538905422780200137298383016625782855036305110915302452766221712608501916386968273406554266165960830295824460238815781504977605897394172848025204860660113244571194170786013287967170360108264169902629230474894714796038759378089791538264458623562249593643673062498734484047739557740937406452115469626300726799635109411693162324579166630944907762946584216735732288912032769721321436229409508812984371076153631953045909758541391902524097706196976243438501802238075185585833197861742853408860924703140295736618359781020007035615983746683613065584633132959512914337953609238970854113650262001592654002247595888001410762539585730083445647614949652138687526741442362367590317958158406450206889171163215442825204935642738758509703524487116615814794880584793308794763218375893619377474152333858861457581095968950276606441303664248985095227468156945168745741439704660186260755255625343086610920640153799521179404294831084172080945651730589222544037174399837544066289856111671068164521344118197916698704018364079781434597030654967145399043782609316753135536518808239289360197116071687182525287653851600097169749867278845367973685844629957393487197500186382800581513083840824425551122916619606241983039652712945325568296755595718603638479656082067183453690845036030668751812014412429851845533429115965417023784873160631434120763076553159024584470655114151816659698201906782434583807668617430552413893043482263972573820826530674605309280288390581688277420871533552383361135463608071227953995397590804434766819717863365372558588548836895760072418578471993117898785086999482890927743182299544275551772359883380549925930458592866544768409806084982376871595581239414193335633409519891657997619733075856595857349018840344188129926177082830362096762027392111811241249056266246165993234806808586496485121964891107976469131445089140770002804331280609271766560756694490245204068103510635216531204825560265731917878666540299698208739082746069606430997061611360146127710145442502557750243980491046283396289284459865622202386007375317670768546527900901863298616888416236930436229990047529139176866596393105358699056502462575195002430715011706945714080221036268778072212852198525226242267390865448079501345004606141504427811622437705544303300098965875801505482276234003570066901483072164962237360385663540330927596461138701550887424033008349426904072253564613918780704640648129724999237620136085594526900158806254259656460929550778810647894634902332447613401519830753702714840383496230681451012175735295755313780761293588185966624074551842464343741204219905863523090275039870568977664083991689012737769668882705311173705562174431138750607118192214114521167427023495889909044057386947886016806941301077299941536582730274486692705423470997412969267341830512023212744813354417154841891366282372065244091526110414422764442186476373447072217335353655525563312638842546043168197363353403376717187795659809660945871440991057166660462278771664409749916340467829837136741737987627864655836778902592739890993441852433555215782854739700876198270223720663073263723944279668607637105397789516110071445597920244747541641908150692399665527460859398803728362973699724705698924479607934615470752710012825613297005888971017989175025701883131064803151862712827911951703290866604612167008825327601083279519783336511954570188408867199771645380669388378342723080411932185715204813141185172099064586218316368389871429616541063639426998548149806652115424928632254769779543087976745887785434838952356229081127608495555541904292066977343608199979752877092636180766053085892869612771651089580661490924452338601910872757607397580768586701993177906336203256974521190367759249965392208984905781065540494468628200287826110197562075589933632838574192804281337769896108424142108552539154487031222090196854522179290016620499725079818667973873928849609248460088719577503086967973667967549101204555278411820427969991730953426486334241449631465506270237727650329744671913102403445192837262370393188961232649345171337034707792636582472934091212250626456566798020596678612958155056731420245243661195085894806709711261308974808267808417983795279279842527475190587977361253484533560205389943613345073511811881226610264086559033572140452376484221015677599563494974041987040218289394907358173379545856722190459997035378725118458723555997112046315754138879344723075975780384749571397986534950363212798397656674377655683867214410405950651036996847907659428257352028136106472963475239393823122675572198918247279703669650676196079578591208877622331657587635475313505249568403257277119421796578005257293813866149495127001042085510316696162731296580989864474063612862280272324077185720775373396925745715381582079090083133208960112771881268643058372203979001584263156730722061860158168477002993622771836365645738662007545458977782045535428336035022209958902134594463462759427359033028954076724633613647448463112502490147849053598399358585668731086421938319882123406151595476202662987965161294036870605856312054786815408507801721607576221535410433536890509926065055853696346160305194766449261873816143571437299797785519454288632914065294303680519287825225039221967615071807720039756386317944210907555523626939031095828803071676619814646077236660985568161204966020492175136690179558133247566831802053203961233747205868615562385111807402065470086299004903227128321466041354480461206412027140751399085580611049084702409790593498769667059696012017014712062063843750404209971149170254283081452211114173796477695628836532370763065212791528914247079376113214835762817946733878194179402158829894776247505638800822044694264414618571779959611007482947852284002791202702045577430528876825595387573013990184757374185786285090987481422692113425858049897132125727832169936449665307918306234859574485382952055771589774600977611374753441404058398620254536551413135661277004713266625473546370447616881872718305363418855818985591531975372588837967227659205422304370159588605071237877158970003194029429209826618074256081996828743150408214042985602843493969382825039019116962768141872254197261206327989685986832921515275383320699872391368279205600301184088847494421609003152620874667533584518516028415775440562111908120648056869351088865169664000941431092589648956172886836493114831062918073082975829405191307618601652209265894878173631985936118316540131921758855100498267418500662559293194245271280607454932510338066204980477880383646043519026855094620857834191363253413157236066072103614283016558090340816711609809409815620743126888830258181528861850360932788657687283804936437832736456390556009945400725171030972442242562487141609792539749276167071319322802940775341070651663446892458929656429736794548927313470173542436627577396732326124616836888663542864172989318870521788676115049872479909667421590900129084372337420371066689396974758750304382769801739903109964125817460179067782124179427710744796779881951504891614610495921757470181784601447604253666670786587886387452765026924548167497313925482610817901702505630954527434762260147725996124495151943570220196704951078228505209122814301068534704122957556013529539993362777485317578854137462747830526017052031939851372443494648278661805508274721761712960427398315050641241543397444133133513838787310371475134021332389408418888964175017666558925150103186315446406684848359537750485708991894269076938502413628310717173463563876899048659941247702457252416233805856376824141279965229503942130064136282955830202502140374726454910521645867103444767834314051919456994902716142270828166914297876794599388756596476887685133639930998701417031276894104941005304337510746217582186083998222223573429175735618588433171848101457546310831595423654100224660079171629234490110055689691718890647670131611836622575788844676465133954827275303502599513866943886527474454507895720904098324759391710560520580180955056659581645954294248547232330819385917735940457379374667544481410813167699724936419469927046477751270420433724416554253550545586328432184867119878617054480337984072072286441101028200088751346148325174197189860280664580613348719127772326470728694630043008946630383434624348551264330945271736206559770578214985552865029884157960195469910667705532821187706487825939424969597400658592274133561322183651938382673821650708310983978072671162651459442988672107579418723998071887943687368958541383104752165890474166938068200086247371040459741507599975798715587292931554896003774031447079466658996740458847593032045920210891671504683788476895454486237912914156903715554587327026322240850893197029412071524937389645785086214806143826271110971950787018642969667655886754299982153568988282285029710449606931691931709477505352142152211509575630481003475270945289254238071871436132554235203716400967733258742054847793906598486160742200979953493514397055773598866699300991226715935418320841015438728198526694343343035581431769065246280165137430555731488656315575135759285710561209333083585437693702854550071683028649007270949681234536517294797106868274391382791253543554449205867200258295525418522000247097616114149523103243782632059045781975702082465460081210266053139576166180415171489810655859950623301762308343679940491550717960350773590152490352024703702994820878190726660450992684132064125757678789042336352131856385697416859101730250306168689351858411220485609536703631072451310178826758409687247759514545897144368661556419770562138853043775896751693922361655634279923490210453440910738529225974168074243910554174659404878408374881327962152205524806387307208204219799188543646956511337179942293476995891177353921111073535582277177540539065604005231277211658701701656374331709947031607845039304049512086620475454518037990421896168820675412654396160879765300195729323037894573652932313035695403091060265479396483254887243925574418889561299276328771272203404642477353994307699347532686279534371868746849493705470440782409982673931337098273100825400727130495673316604500227804500330519810430826043204799128831337799482696674462417465075161113549071686099034041402680868460476252594507293138828785162248395586463126132798670181240099619560763813084468832443734664303872988487849592489854081512577768161045409373545278364935141563071500289989372376004363023692043473337803863225752415436334406099790307211900747386875497835778705033933004161787563274655757020596998872996943450072124515798964696702823364737153431599657645085595576350169778616398422638201487147565157691984929409281499528683340791823167258832022276566966472930393090725824313537037086711717676215212310900508984270506632047752068807227215147562443942827618394808942495265369441177107133636896410385499682087266435175027865715372943609223238792623459410905726824165812718507252065566218586700513721506225410668760901311340688075812764898433991029287208976269055568762283708040528917103361389865691858198834252127863739433494295218859580794142853616355751397984829319944969317425191824337897153859965714970631474914177408867831341884708890606436715093337261859130708302945964795040670489044185620814258077420120262459248364489816323776909108440131589614994590510540916221766062115754861940789383008996284035627777173797258101155834449648075272394139267410020811805673993701814482724174676620023868827222339537221148365173009147014398165787913482766475074072035041131123860757398752425193453965966974769623972923073781637357308094562096299417029725600658941173699056923995948615802747306556719211279161515012351573520829345632733657504792278150116926608065552078286318780456079748831984150601531564689411367124983659308352139160667682966236523262872204736229167910581793211137578835906955933970012223072877286424555331393657644067715979203994108502624409056993131881678673134961553748748845641459070603223079308305758032435167318033624768520062153815755301022802350462749361710642530931565399866264437876645578665760063694201214835196277682639477350699217408572900451487880624121573110382980350016578425812350201613576768303177862312963010383507832831130752162564703162898651244648467828210287045287850802029726213655529226352305179115611658775259154248839090228865901253046436908824532603866079812669634678351082866054095604975502126185822705239421288518850598161121145331094783466355169437653657382791636385628947915251257043464765346333075814317159684328898964168500584635847551380559193434271145172619771402312884177298053675389930292815362631593203851859364079572020235080370871459472812589123277615384469530334808689351409079011480145467505843248888307491165752181316652803341253436830364075924317865626264321970499154530092883521121005478825431622821642977218589163766965267438298971736038852625253303093024184300691300550498339650186375262617912921524008617829527165000361613197818398248048383093328100893708844014603377083597399662893058644529152784961436958525207326067226920651753598792567760283342746257172904736553470919420599616622558205224869490206543071514571585379279070077795855066631238261412800922389774858878680517190292880150531916162553083085877384730351448797430801724035984504106075629968814515678429500434956963672762600158247875482979065751520338621012517820481460091626260009999509327980250798654852164572535033607376543725197960976723447936848128082118579451995743696584974431693403224431276609812182018465113212437564117375682454532651780932459865592610270756261151223085336917314774391698861898202298214330682405103215569123825242463825444210258038589600885100069561093234115167883529869716911834621994357116567588966688734796343802684908081350616730595982688232381348500921796070519050856967544002672685370546737577880366388737602709003626093163284520958913452215412240476007005248419553447147466345093749021257411849265580712646068869245318252298630903063866396648543635680681877269664524817165242277923698911672454560113122311035089820574795563932033923022628489746817081810488743520383665817595863782900570220801618533489653969104389627692546615583437614606755854348688361809137061071978578015513710175224439612447829376465321692918153101122039302486135524164723631949028081254688156230206321793539027714248226671631870321802285499333397524323640987125823713287679906420296255623634495353711291526538254519077581443290578731981584654469939432418857312478876807362505104887507097575852927730780404297507777485381440385216771072029576388994966915859046891305188422183945666931135608515667700215694985652004941329360709922224139794667236939944663950694300662963250786985164288563978257872441884861261733580904182232479751615076876298255204551860619556448025257246139519488998161133995969768322242442404562361909046837704652884659006427055281253573872600447061290207553953342545067338648076907112892218197860019383614709654209298443017359553698016608460322033322469517535715924337941107530040536032682930309019495669824341471907980629954217265004066174318926748604628101053943926845718330609916091205207168345993205920393145997739465199110396717143460560298280712127145635217748767610197859957636803563789827540516808764462944216697106690137937309057351518358864857754387521676395739689238433908551819160837788362272770690214090385805027678194937330827944965842680372073772751000616519812304297717399902534010981938588673875433194045899245114637389104095962161476803571100144836441972980712101527147918918192086270524434002936790773984625792892373388674434164894394999188374352347947191080986212435678057590318523092400671395267830653276155054957749470575195212784282065858159211424460729764738425289981110310572914736289424925936945726074481728628549877674579431810662908979386749269391249835993688251118444095109399287862774036428187209898127333329158436439003643728203842718046806556511455129103537229630139020053059895361779157324720756728963622600802286708941582844852578615700061033480705860251575512356326474532043567290963586346345850031902655262819528336591498800202981182781013795847827290731125989889392204407113906223958221322849914137602738629452454064279178223981277452382184989672783805080145422030841348106117745811817077141751842197739128309364353841646097488952821200189533500086905601233391668691970336173811018294058027992754395506175099478879671019822401541301795860333209741529475436141920900649653481575972703470786359625203715894760153058655339804313667898099234874696312616128993397370392528337717109329216099510572809663820644108760972150104016644578486727604389012235497748322859104193610096531671301900516957866918414433133375303958430586150663898886409435007991366264043739170886941095298513601611339827018452828724344475990215528668581413554391451571381106715281952871528382017258953712698582873688327165226363347999151596104289311381030715803303523577717629808102538916801631774880767554580405272568309314352308222873660768102116054204220132986253110464517355840783205893457205948267362614060751120939503217839470830935896176337440580844106974442545774807931190017357233091827595524954104583321523284931808214017314492707278755706569624780521243642413539398219704237125382667535409422456154647304033757772321835670109474277214920893588975358832719251361299085756336252099015156742250040332058894898709952733406279764813463369792626132179411608648148145154064997815196575398890607234477247415432928203866519720067393218339106820743930504203406677590658257071188541460902145086207039190529722823682712581725956643262171220359984102929298248541190500232878075059470978567579761036589280190433858299418867716137696097477173991371141562771107249012810532264156723076511884702604877606352284370231757139365378286300699848698759619060600043147390800486536080023068810790609190526738106293048972433003829106804408948328067318525241577409916825015044454007127709529904946758205236515858996617486217478492138876049867421785630519735978964531650134857030631536699962310472497921816177355532979178614968671865165904125999481542071878021035748478442240012673973492983288430005983348828239482430758615869197899003419259089003057202625815777609333155525364380212013848628393420793393565002887433921396869418286960016413042094652029974972668865186286726669386741230197760516486054420289375500634576443997526248058946284391913352180386821020248398847106249960667058778530290364044585569373629361227905659335589923499398039750490622810244670819147285110928722548253215262152471300435476991256064398452304376806034050831073595090146727208395059166171362267768877037912641723201031681653197697871678607985647656583827543652456189574699678409128748262182834293117950887580359993721923928349086477685799528703857561266575105086182397904332833395634822026188015241949304963107744821792152348710114070282763719881099119079177834602875701537637426798995093109731007934568456134879255793582299899215549140137287129085104098956369614984734704053608935876331502852438363311510964958420833273101068588269421918874536581738882228628602668031738064373027096806938403499688387065918992924136364283034111651277511202685623021536238539471487208551676721261758675178907692634416492154437457038917885817148485319752591295526959106532163426379604288579001838665225627840079769521274637414184954801822452490921598600934719382397721530043177777242115465148217705328076231399920357393349408262139433507401775229868888935308461346977883899251007342433731974895611535319882918452367902988784951237346812506378499727728293062289929913543253727618901052881210056781710588077039748946350723546434583815807858395752246289061475259777763768675138217012703474233604783778905302307307502568374871617228769868545232445069768054904783483419516814930376740685784569305361088347652774502848871892788245145301233177744733730684911281475310676586641273668634599185264576198489729435112074377423982033934180486326133513656420672831439217525585925829877920237823689582689915075168392294420850531495938412693569995533271371853652167335101345724299178805609022839497319931353761869450204883946312213886730547628636816612350416012561789905565870922784041416034506656650967429305766962932913169347389691733167437938280211132725882311469364680142292598214419137678566671281559873465356982289022495639217566888779673033065877498240394187538749729421947789027061939856971255534018534411392808487619144728425923639404448988351924355872048074356927351370570595823019867086559578496965946318307785121526617121161362195082232400547084732686785444568473480442788651909701209636899704532382318888271070727581660524349889804738864911502389845838066898042195268952066307925229322128185379460420686069042545450727883802161844132102127902088710596581577163678629311766136179235441104998177774003302467023965326900649797211868323527847690843894747464296034898575089182449074172858525063344550942797672588593264133282174624673056688920853987533424057055330469745384808994208690285820489604147582312407786033086708525124936114316833604275053550957344729864378766554472056259941025817411863301264314889174546023291267276953031666771553709425875571790189845476587965617635477413133705514545597259146913973907175016068113625174796813196363797956086736681740671227572450576660185540840024382687115410710003664356373675332406032719748082073626181605029285122879356700020183139262913353529510049338889823525638903389087810914221497909290445158370314647426086973864600389747696780061396796010002380113953079619344496516869959103403106444019131706534751449874693481414147763233574017656185609342185840019389714689676837818522682670111214129199339833023687563011856531793519083341199406374095514068735028349356249880140791461764759705977165959024326971966282802031177076080282646605793610572591717981708984922362305067288625471660408760335054115517046703790099478055847197337785246973569868989511601502836060775864859730554483530438012460749798463889662992337812055251448641862261024548555874286942830075355411666458098051182250516729188610744609125845026809116912347004019301535495905314431835305162054826090421782014600362653102582851370023053219427849759702460177893439042402926933018746749004911903869038580522035875671511939794433784683432852015090705746769585298004354756759094478184713025684747462802124040449180044052374274185114013574575385319020395510929343888772383464091557075715146219603018206350876721217871967575960862908159415718155546309696584731763729377924318281796815917922005025750441590051483110535530087196861481835385138682257107787933641559115224692238736524613662799616310600838337260093603100434597488170731699176320938851742737081739884965896964180444979274219487421892130949959377870123338621249377000231913977103177663274966227192532718114342897979616766210122610520847050649703446029555472734005244699036279794316308315016634932337171843562031256039410875101883344440174386361414183103307792206752745545995005491703191017491109996305211458146984804302834659440712700992679695929765984979956557990318479234814212845964812105802037329203150067056575092779214734493801826683343155423870713265120199124613171659216696039411440213316942201620525902252312317804513963237116180376833495160507586493346201323371052472588605865562687961940378870627548414293713318342616460090829149587542218263837745619638413362153884396264928579982408464672513675562832753966503036323581147771160686947706639808167273983035522856317873637787530556574370122868582826414052842699782689106804891584523279617480692635091852399678454741281226258828849151270922764402754687240643394764637602850543401997087931013948292454862092280799344708580425319917057483490358119605168075867804045981487480330128406463630081703704876949019524182395338320110165448887919738704066501725412436699710314768070979530323896560703443287631151912308663248090491179790710706776276688342348068533847347791147996177509485337132173830223507043700459736965807749920650163468682702157716349822539055315357386563116937798011956297549677564012431493027100440969844197741097029586588641407765021723719193091037430365051806918833074949733477257848156396395694211227230898846851284014534495434313459011184064801435274916313142234897842259987796758772376595970104311843965018550381579388920168470064577733083609105354079902014848114194482214357012916552929939029477785847641969194026775765902914718405820762451139174165959519214955614393650726281809821566207278199298209100362499432477817132983702005362045965438612397507377306697229018007088256908426481405697541027703988105812404217992236785871976475819925547438040680985530796842495687088191562703241524424096480645072001729600870223354500032544718919594349560855254213888522987789536496879857741062605128884665978950808964317360077538263131704472930614262948136140307080482291444809673895365914275730797310386442019338377262424687224116448027896398488478957712652516623250042286457187967924959001234248342189224774885978948811530318322701648620166665399880338714133557186289229955599251735439329826594467166494580104500040600723961103513370944587736574866990535966644297163801889682925689004892261648904155062100897708259146195321929709884296489362044257410263224821584622916732368680077826473311470656599911965793040902085160144444477414535704376332945907582690346879418753200452542380819084982208154412862468284107884178967530085366788022691328839121509598308076254980844036700288358427262650822750612037571776619262232765884619762301256387515924868968290559200352191916451489702390501885023043187867976269348033627911442253112207791076652945764902041455326829307505378585125376516246194127500084719543022648303124536882195695007691343750087369449906088617514392345599599729696911578126124604336773935013629232561436924598005045177507021618618320689219822471827375179247714883306182116837176551932934120888032199757637960608887371625021833324175733905843263554557884399149221800160094321717187181415719523329099597988381602855971185696402890776867552119149285694019721146880207627815177207459750144227116341116919865236628774327404945764922790883370537561140486670371016656237341534734861881089886938484030187797702065237267969413465062092900693304812592368135080919322813098837320709922957012215669144715842489386276424008190475039479192143891515313468684883083419038719151937378337863960545663591548520731317377724685358394777518455750467178086282447243437129097268414976946073268268365997353218348101570824933832657495841409225534557791259995740672906198194787843806539250762833146582219658848014524108299762602333607835478501753363988362038917077514422893069284405380327920613644846226726026810258843673976924267863230482449865281374053792695189026695972018702988787355643148933245368322299222841578715389849549012201499561924920160573068319436812700144564310541863084339589878343008857976232475517643953844971927328844543568968509742075827285295779181261693778010081532508399908215352362788079710789120548376402284171026497852560062957334060740646205912171558802451695079966697144389868415781621841156309994902118747685723389946160531062950377132117868399828479196437533732140542125781443099420617290842260362625469309869605859973392881102129415174242351390065510329599473492926920871124878871453655745879039729578895452992672384128725271516552116334293461252776567597814844343429636009618783336348901560345232825399370488335825337538980891957727560518769754136462416040465164419011411196804077563859785451687234385498670238160643862246672121144968580846939646266086478609940421665556882562979594987235211969802889794449890278931878563634727014007660359169378358586738891933510453580040240527668165705876664737920764934886675593774460931354919952773724279261451436232328273413057397300152994831031730468189451094086914079623341159377577795510027821948532634605362564041088757301970974220195170155469670704988311868650020579793114667112305647555718912408374358302446855297346897447295037084114925346762785023485781908491482423464561295607029527078077188240938084058060399069199100962506975139250848758059802698325339677842416033422040511925989772923951722363199390485645396744204600950480090311493634027761630964541599700718792148466349873612414910457724900502715100431828664314625965747776272069976997972177020715153522888180115864936246966320661488850668234971998454985752570303465816449904279983350181846800917177456953010831360170899914387276734165438119011230549914406568256261338451018247576416297125643207384496637303325055557014084452358718395947614287197135704173301379399896903939696398814188181866025242872372956290655424750492668941627458857759038687621390102175376593279637137843982483642873129577464990803247522015156023446887730896047641581606594041624076486096985503138611203416992813183420706730916443558052261703964594388473937407407425679304171956481422868469957598441627214687237129608022943517783676446270494781274397812632245234143237271019964492948139029205480741192050186860200687517824166509878550403839580678398023896613883422637038045528099529808045897627274310300880285374947810878451411419727254761523944532839160937428158402830598763525091343678339947074969097595619252783240461665460581573504934087347406421972910233950383985523303948618696723084323048158051795038281892423170998832313807442091334691195262865430800860892941446771023456254214756721688166805307633563780800338177164867847361303649971649285350208395522432655107961288566254614667432550710326885355407152937281438374917793063643702783099641417094569557246819254212874271371472301091632113962152389616244454268943420388360440694587986288367174236296350137670959283458518168738486484949593923638305956851297161023366268961251760232630788473600922379443741445145352261610036867771818353103631883566212017083212294553435886147952555583953513066517282242796028665393060031383314072029695283998833734081984755528765461314279789713414197605778740126253230725021877485772099365690579631652881432031430673597896765221566008306472400372301597275653761596571787300269750176653431530511819517243314756363649941641495637810206855527109435069164617515708102202466613976570072424346722352961013158725614258310267062069725734537029468095666153936317289149062390739648271822779848732503022847863926379112643135751951038921944963037911707615928869490725113714894739484294479784345470725452154551608033850191363994013629680812502235833054656211649026669055478756051141187541954884105783822959984329980297619073173087163045773128550324765872961608224725250079452997095894576460626852407166407638100219883927593122547004169317231250837698725924156759600949758339181777240769096201990536723426015269597022981528547742362201826322928329841310273719064908536112178023807697939953137670838939050499047682239324728308957442133413383209849621239248927326179360471203725273725161776294523306356594699934365713708891628591378460374634567439201063901898351151898677579566340445632189007874346988631630456657367109289987100857425878932368849208105414273089545190747002619972410967712779082486879127836062132994778197236292225035223052607677977771987002556039692738472817101529518938702754233150266643011624046064581070327761401961665999997112780549954023822891102889737978593985559062280859113971781663562889312215006051525213214776423948826270392193001252975022364903422054307032341880624806376155998979505026600380583313760777891514544751475519377278985423305562427470560580112175430597699671591383098091430553629136047172900485433486297182441316406054626194146535076775832677592480669702217312292079444454374600551668587519091629919751044263799963561966354729651805430055713328563952047935680672304132523376268356133804628239187572433210851133399308023193758908502318454627576511346030540733048257106735668547302448041093061206941873877554992316618344285482065725361124720888980707324256353099852615040678170967592072321776579917972210203088748308464157926892279836148129806972169661507549739038922908602843212202474600734317491472629401076892172456658826584655543478356562531698617999331034418274165084742872932227365179572505340122441073833535025329240334081192935764370658560433008732486103646998541298816458565037892907862313207445113023333979665594463583481423992864552548556111766741862954348070292965221285017705393427724367166711032192222685645206140914356901588093620802981152601704326653286546213914810075249124136599327767476417772459460822240702585555894319437303025186673616234927383978691388713858729669684590508425409499335333296681423151053212451550376810160009169912684925206720887919092442519763428486666470080993334670424151215527703559348592395660808513489572679656359612444421166149713221635071273976714492473960755798133720678725202225952473119391533064026595042503714098284274413449373094639872706650025061157502338540805726526213526575879157337561361015950468037221168912127214801611969270243257225097008636672617636526819888302476472465209169995120361661678716978181462556588868396611213400909755355125136455686748032111363407857325250715154029215936991173901511082743290474610955678879221091120085917652727463048568767698876235512920409513273177411895196495082919405377076100550707977959921892174186842585655559742405689656139208685945744081362324060354423929480913692717149608355077574913286085643087055382026155449289333262538408144844608102296762371660077439773772063091308431970137167334108270831276525116276535741002219089369020470283227437710626944215463835445511069965658297161773406030056747291361569950732936872409108220159414249830135317082968128038019885519889304227326439307881706702464592413891924026541594756267504932401490515151739635418405789723914650786670692381152111277887731209195138710451017828599632669224244720408640185352037280116336361418873739243383027845685710288209035760902882667474718952088918474691856249389845200300752271357618168799808889669560199942009349414949121903806393295458164770772000707861252117804298761976746937995570621241133782201966090259761635680098110585154957458155883260887281334796596426895251944648623473978654982309109767349303251953890616242960115659500664200457682083053147512136341892028801825028597237003509672039220160637975156885680191041376497328344816024617146781199838579922587540267666704067522675104615574342930050581721459816084618039783924904259406304608188538654610512729514602214148208004576639020642884220761681367214916635888413452956959437716804625099619767556646537539953508847522577183316885190380047722031836062790899576173424822296420260442010293906046968421955576600366422369589328331646227036786150556229272264854199920364285029010888337327466091913792104383571220161531102361359465038075664977009750774555818897970513679266548810787863571129876550707345346845937933097650816288257926356235377334341179813394999936030483809045330432821786699111502102533870785279607790923292368641921250647580194012024566542719354120315847304486693854579782427037987335926693578451853878194783815923596239914353111989112762260075858599925852097293578256836692074849732951137389964014130383043761163139755722084374301483590699217754955327359947414559152243737060738465502989005058486251136581971836508661094203004207988772160682835226084683929901580177109080513691157646906193557028743882114934551611692795688758601622728698247566685830221732784210618641047244118635645601783541229623384901131260714783629733011023719382751421595431521521269115278856056224003019629790038086119199095394103376308650527755074506530383450826517682489047669734996821322073523582395048353190065413456120234668690727426556616680888710065966305925150271845979159167433526433786441772935692169723571077798769220436613820495430235459638115501813986395820272837298833921818395968178130272454319730137627143162191010649310501330649151754760654012437156524294869462649281229348838472056058599469004432590619550048194012744200220531189767650983350478908545749917664992623901805244999083330617158182285630072017845132143532502010528022348760906954254675519009566129134165154050971070694653888080050134421975434485023480245582018402759209446723147416715443769097333561839472862248853965324456688318262043901561439225431842388712441721614389839115717548489377631696263714594491168858156905359367697732865687196242053707968507318289230105520290850392495274654826062896451749959637523457834953252481294926680833066632226522313139811657465960005334703405433472424548337029356878238533168631544591348029234686360632351612685398569072464812999466342684712402134170191931619506919432740010694596869772777352528486546901857754140685280303030441119004121531741711789182566876707812269442734598542299355199675594541239909251469295935041869947960803245324870079880726605566096872119696924255292097492850413618661875308667073644502907948942095771756598853245467148878169481219653085812702634131801936617687159976907928671342198698712906873929474661387999139501980587987546993645296754849006400130189617834085982768430988356446072567227975037321907994227608687480555181938101576805806715840637624967783657323202447472332170380621964798578001959368597578052417137912750285650607390500743640818369437041825068734683574513383540911198517759200165327425123148450994473293125507861101993655838367404370499129731346560698812413518074716244886325432211649151313791979053714743573277670620204747173907281441406145172527994562821071947817651091508487767390249775360063688312246916386946478558716212350528495783779929342106827054845226323058229616402722487221899710918021660143234507937946889618897790466580516775306031412382906913517002345769724790657092398780585596241775391153052686611947276118505503343438087274222069071133127257540974670963854158424651770147711848588643968142277615406337544430349146471239057663903941533732453834088702069917745309242683246171164362727898574171046486175606799424982277579915797312800892112040485949213311083191637245239859491299203986095347976104286301306069127467100135787463378480298325494926031727701439296840238661500699982740151027218647065648864537709788008812113530750422225350526318199770387130068014097466766162517489222608250045771622410350559286458800019298449084985073892999151932741712676825456116315445315818565746005392345132164753891049052254186200438996137495076704950735700766932128976098789552112768221617080608830614100095006312271273358769995135784037655450958099507749222309120668108285221786874601663634876691583903241547158718596737336914171224845521913416739952113791759758831138903074194298447946309524824315150082492332097588435715420171435980877061684870217048682333265206602289325577625691326324496333859251851452680248008626960139370313919506251163190596620232331924926534220539457708522666385306314137775594414859981060694626148254719920335659652659508301688007382855584119484649920253970085005090651009184810854960752536909872598429430301957601068395787216632252847390964842349269703493806814537880788541202582491656946365784908043292530978612480451844834709366268080595559593324174561085324320173969105881846500810100024299648962901622958550327995392824729155846262834226658138052057438858174831351767416510652075578517460156246895116128579219576819611406908938317939033859807284958202022161623718566867203665214196306448777328576713868749040026600020228835800031833928944402161337963933817514076366431967244424225102910093867153453643491680370275266116826532229093027708176665459632485160877951825725736540891060990404636586831595127863229990987234450416819302560777536038926403060973450650780580106279381103403465051211778357934073746655827677121976660646103756929889224585483664024050523287105107356784617575176666980438570561238358446602991231436593992596768631904640112826039699322034345295251300776094809770777480333989667466871414929351473290879399657647945156620288897951967572193154933081313892005698962156091361532632169986566128070523279363553014246974916777040006136979288925283039288360716650444951872781469665564939807715704253054214211121806723306099883312189609355214989140832574911946256363972409412642125535885038171223018910986650485244813810445815595293391664983626312496605811520056662285238183151262906188113348183046007362436301863899556922023992383381692682932254836927246035222248981979041355210257122995244637619673847464626408420843103118174834679062668818684119679786709300305817833150996981655616000018203351783746961839253575731008161404131712471564759905933600088529923765121454063587315413957924919226821230214182229941157737403787533863803423757188550007513697389512321624985246114491510114155146707502979660429349682040656696772415200836710835269414518776129438488616076388249134985223746183224453111889079188455711835617705295720540008065754583107674289140894513452135698967386475397597558884144094748080168820200341523759951012269628389011409960184643642787411629102682894998535946383846394959126471354950976100930708638628309754836569910519771424445288410290370076413838365013497028369503400298398303177567244436415467218764079207216863780598572159585612159461220637890966813455249394684730646558667245533610346232103176775122849545565298357834150264364540179155276365465414117524382847208059556105911270194362058418145855361321274894160190133485818807699253250395726063237369306583796761865619976057508318249866077954240727392692326426523812108188911070125945129513512756123325740989638783589303564083558416085132689173502783201128949017352972232033198892514500409956570406459498125183067292332175934445910589436539176833565531476502200224890844419084962555193193995409106419649171760861685187532968185693012509044361546181640421044206266046269634879262789950337537182859522408443175769667560103206005959322445745597464505874699240627511543187366671462695894681485981497490337390621419568673045842082049754991599838013373656589827377736395147683769623957040544538148739982772875910129173847681342321452362054346640848726415165092200761762973320043178368132333826340119289480067812988226707615398354362750096142869278809016971046809594360102573065672035110851877469414568021275565262605410005581448164986909088629053914139775479691238626436144472552470497290882971936056447138383850629263273304936976901198063280552192063863829280037474286456661088015579019340667481562698381135200370447376038960020777643032750098289220566468598135061462963420726812445245587657674744100654794850827659558439651043006024066720909719373765427375375531307606284148816984287622563813025594869232178338390235665322204309232554679702750584599253122229559669976960160840325973083296886432033783620310147795709454890047827723814236189255466508035115365589066919405421842389956420539116028055253679608808618809035400948919207384367929400343217364606168897961481431533141503453325418687558847249615584731663087187404916265387903645173404253689747445724390257201276960349232537211862547247007314522657129869170119108334692163516064023362924870472316128220673548805472319930918625390506514559629633122323685294067635732826952728847845312802457386311314371948814816138798030419742135739687817117597129803163227437336891283731900487754423766783733244463460482561306366533352477752149510202457301122557059375527502476611544302090250273601898205024263324894094815802042039972948670755738349057730691762847400759052517583968962385146897095354825059267734229509889268001890730458734487012052386847103332724111579168146404345042455937809222168699098471079191739796173842433287816160709200790057294791333801316021729137250619689472872883871433807512614692031715805988802928529484563909439836611708062487682576486352448468501500732157994089033516929202325767327799256530261018216503479355108711998206839191529096827409761970731007265872471649825518618744978344273298461563689999827487092592852429308578491312814994015533660130134556650490780856894905539946781864227247778131877861006567209503787800848257506177766915471471163879798333509918827502405959587179508846792190438753407047928480616279422463631339594561110784544555675596897969467569728294032085182990480659838849069812502779479976027861450080129383740990356764406515973144032712441007934155025688157800572028952026102957217320992925327319059820337164639211324279853846790693287641758247002654704262334899885836876592887656595584315182695850996643808699451839775268380768643368996897897987302763208580328540891239513497549902043550548989302973364534400066984089204405395023019363263509282090763125624326439206318012632386877976025357729612439655538778840676115144511860369001942169130199467533466870890380220798416862403897572787961701275780614825340096224833284504758252697503782850082346403721906635784077628280392505169262426914515100747977839306184145531041620060002018340846457258146776928902438816463224983006796261356264552948532018318866609581647086073284375968643960764280768040995448917670858805960178168211433091147529662800372116091102487098385594071207152897963120013040023310681376872706745214097182562786881292619278465238025468787708735643363600901153004002394704057128361702883636376189830775010321356043686236477665880018222297281983366076419256012285017101253371404052101467293192053018210946999618914756882509261988632733557651941536716442425870808631067637176384141539763319352189402741668122024580839654390678636785733549002192354225586812718984136505468217344614930962125670993802417046836081930868090392700130298241162112136615233500032300584942468699661523360465174365653528858241321060338930945632083574654485076152563841740610397168382986093404651815195060429102907667273601919573324830807707537359951640722174228118597921400494035329754520838423486489193017839401266227258520912506419118710767924836026563475209098976785277453716542398360151970559464010949284343601485575963950400453780744813054762416168677157055165341440879350660968553303765089525218852029897333785236839292581423744354558807589312882689221778409734685073998565440309045460870676367097016636319195335823545511234002137594731732712533057810974682753250555200210761009629621415489405535347766980239428462520128531575779309745421680989645634099598899728297438715911163331308456207160673021724539984296319286338218116718511007721530829999479610937480311747090101884199941602574499404076878174197804284513710183943066231790672784895275992874588465996382518588148260133038180565087946848993888320107193905314349485915927939310454127079080329461024859764181759667854953561700097293345306761477259375370957156252717325496279744401099920006737419138413054954778802372331903444590526205529076466349223467286145782822538825437307607350637375582202197863951406499760586618893023218371968762518454396031777738462917999880208334333426306507044611468270370178636899193970406484076632649485753887341224311854569983140017633814491019047115786257861818863488589245580476895365001972708779431182520686821589639014127985960712589483868995966545548283699231887873127649288750023851135971056727602649606060136230198084486557649127889797330768287599078796507543607309696215834856822460550135889141191608188127238185450792660237059709039679373975686157357992414949745603074684328665162278344164543091152227511155947601919709729016179300310426365220100136306211046383285858707757625533209656051661247360984887795028859776195365833374028732282378890643421120995408804333077696953161723846754329449361150694824667748216983608188925606823674111566043341466197533005126485177813570440842582921572893809120211243846522386564840450283857385946149293819010801754603159462185360445119980447310458608099552652165981052299554419255071080649576471966864568440520557269718948029836869803938799417759946439930822856637419040882759244652618104783952925165561544887864169266647471436555299421483225071345581624554319373126353056926982103700272547100027570922049498654687898423297349559097309562146621285480902669930356156026416726006977477984790791277140896720235215716243626639378186315726711620752012223276447901530795857157525209445647867033901843372474567513847722701383970991602326651982871906088908205748106976040426119593513132559787626332228756787281705994800898505286200098224665946291484206648795305445254139832279948062458931909957754685272238373022085157490266888131322719198300865225616749546557401493716007596597325031631792203982198097146272639700312874015089316281447871620153156710914775542541381862172543776920061837086371513516321763519331518656345144960318612050939264842817701421282050409918840947255526523587686083138719232311145729149505496097706548415580122638705834409019426291296182240062300766144032710338898905593407888312432028120741520636441505731865549057325289053490225922583821655289260845346427551974314314846932965861759933151480919107957306561420976962726702062200856100215253911971057986982292023800470373397363610799641828822477729059052317226903491641717873885346814448517518407463718245071670614143939537324992665223087405391187536499518520498524738090669976780115595017596850817745448697534432325394244296617474150306951991603846943757296633459414927963411159487348247471937651166275959433402985938418996878713635574165775125733288628539240224563274208101671817825876230011201638490010292995632876408474607563898560584205817001625995503477686539336592559571845839417181350362667771927898489657213835681240901550594739606837726179350343551582584844489640117480722397894279057476536617683015708790817450595725898967741362850735258863088534608628742441566985168649203667222371802059268060180477436747321018356709542337229920132534059341105266358356427746910929546470757172534216796733306544575864071271184163295426945705226080089589584941665960768044082224921863866444193936488549024045978483622733947934138130247841540576162993042340696872385240927099857786496006352837879658514006782831643775709849768351409435637139793682067555863495737212761539298540530602247078273741502944874458590254461636900777587762205850422495655266648415901387284729878895701308092044447760643209580010512147209649065401065581881139560914242268290394661666682712916075066740911313363215054582865580866952817364761691231141809052742983271697264239967228203702790442788642875113006324138844538505511105235645277636429329746698475323255977569487339369156754486972395715845216849517770498984054826235223287379003804995201095229235189776644901166108805668355897387379378897541553649994974238051650323610512587593621184950662733210195883565571891366146380372206471264492702379695171427367747996014148936353223341245083952847978965066558951543403641128377977303627094198184240998260168379116107778371248012468516457938948472154883763181653054076485884494027472337221818253003387638481425169409028987500991970768440023057618720430384148431507687797101362121768528920237372443285527069698349357547748422444822295663602341436337810987450608616277745940242040810458524441104825019643659884098294855741983435358259682853892653583649863422636872702286657591742367162259747694109419405049699256577037315297285992617086229656540701058024995032713087736859306133811404660282234776299889269774389868101749758929902803354082605227456828181797983556399699910150123344049004800183310398938347920329220792226991487712994595936058722108341200895082322751323415331700544650204257252447789176668975951707641795435204794186423182965826867841838479619177918010168655424665658802977542180963971601339339976503873955011859802117289097965508638583861470299165843153780422783690313457860497205611973667368030463017374044115100111083035569646639532359940369794607711029304608020530440301271215183277209775296905140333126547889799037132779552983435691057582490750458695156020241233151156799372470065586173974077357464083290313331317548339988074287432221260557061313401498482594450612030657492606548609458764722403720558987949425757818074292855726792520640117532395183432515426173705253328895482047096029194043905306339290863248380217061870266999829077708556515698123600678522610198396326073894387039820513504394637586894856841804945970626514606802344728347597326638677487954290164800062616569775292169887016855416722807588029356583266623255272292851575282413673773752341903569670421400335332659520394088176600528314308958723439598715460198064006419749993840207550391513763687240063892276145031696189556411578290318877233821587693275348212796678763848568233841252941069606767560175526053084880557659987714187892232433825607373203770426902778349563359438473800322755673598071757592925809106619653271761411940583458468788441416387141694457329674115420594946726375695294916842449995771886645475996194030139461556356970244518875118210299088988652185416628022543357970606356960059477642240016400825650022278947200764674115306346256531676787215569010795823637177754586345495680582270507627019793514375287953615090634444059637300808925487812280706027085423642821298470236556954829446193563819125428214249330812920853103018500861769259666784105946333894654330407465010401255735147053733217953903635427541259438844503913458720351422732712447933444073448162464366563988968607991601820142374601017886515332304321697165170372274326354008674761889456355397810020156024726296154400022827662346812180146517736582746420723064432545978757120811005146806287530897934989378198347906400492015996136108394801567327677697249038942173541079194807863033836359910527955339945186488685290297995015985304416871379805064622955729364756734723902330633665820394525218521212849392965781878494554325349301600806481867406784081088455983547283696043621223209579772410491604773552320191223915214975378545244691669549213506935518019423428254943215678491946992412601405995820639031965717954498260167759187166297006242197999746831427499649760926899560717409543117735945951168332591239699515786990175277867626772842578520121097862683900770673366301387719630788207273490748157173522454679951203865938045314914826407664282991551046927783407688115695477399756922159406441698143711228944585391082822289447690815299081371951160265621630653998309573759562708774060123233822465129292398492521305176342186374353889555631325851037863459321711760397945832732196189769971866137833846376758188952987107073003884637361834380384471544961386857497051698731103501659613599674162742051114830025454591125562414398406479122626524130663776481507704626873282505405392729288911351258617261598781795325561373990239880649151828063704153497722479991980937969007429346858996377788531815719273269893191448378831833422608800435332771383235590647597074385844387338162851709740417975034582564334151048799318212836102596460896703341136383605024546406756342167485119288153220351912447316264422794764044700367329480568778355507891613988450754029144154291018954033977388872770843521977410190248270508377604299244223485032939147190351846482282791895804549604942036625225218874357702723025147915282682540419929763901322886946861165534934228585307595683788674199297682497401355966552210135776892456254699863516844441851506425113388292952650561943591662576485960083962921758984139199266421365311343711012550209091222242538040571298183270040741372135445211137624942780031013893666057861498410883528187860472789764968423841028680975054071581313029289017192417565248839000336682964540926064755460784426212924623106525119831982901742192042741160148194480180184889061318784832666014635133618522680752440364139613755790675253672575499798576911719149057783605466445829798527907618777480132186256829447109606392430758569781485365259302507672651245809052682669977385619706074483852718162969091681755449677458061774167111103208892418262247977264784995899157230420116444001452949129245846394458084287529297535048292885439171166910392273228629232710244298532902490822044480684949164430137177418705898870776383682475421811750179907906205247930264410283884919033926398607803652603071919078047043805268055218547924802574693192329230922864797383182127044888398398953815783311336491861935699963255630530239979120403286903261752093304668227087667748355547412368285653430492945608998509701499425811592871637558240455768082340277349682304847383993436467267757665214103412302786823278847883259237593282014333961291185307787872236783347981081362511846741243622063569136341495154054161900465626014963429526770373452163112167096512784023874535122873771506313765306527910932741680731758151219007200719916133555505718284979916481538595373185032591713191132780395600585433730045876305652778599174573634127824761655908258495630324453901226185729723582754882048249895798804228625812806732941301194413814264459853614638365124834466996494351275850472085039973820417410935577461154710853273463829036915260557432778588235519464787328908847697889518580279583440542883568548348902557642807885709731467144015537829112200698587328034214208775710085049709263547737615803961156624750506966055031349656950375028223206466233522131310224183818793111440217640772749950249386275093393326263490195155895224848338140429334822541037454559353395118327603521303463798978563701181980492638720901484083699783235145269671064242544045264134728827562065173205033617625237229094386585917946172432806068354108932379646504165361979788226054465995676786402858328787038580966479637763999449155402154623462254726468509638012774958426955512023798348608588383303893296773381078823342210893187292224136590934543911205301247600880191643459599553003744542062967718283802542918105874019851247109062950983301565364518308562842743812982060442991935520690486163118470739511497731759508135714542553175805032914559835527462910476864098508719577090275915190554531535371616893876428152270815499458240473525360955288499805603628305010966345418140612991763072310780762034304754310060869813312343334789641104780206942431398594639279387548973793376931869571171135563099845196162093165043657983453432224992009463824509314710847769672096871859947358882194577813086091628543543519807801548898895715167413252343114164957120347446067709495402745342149752794156757812193822449209067335323841616075657869038343180953278067040423878818887721102065359521176285175306660931899818572961009083232945606077540285828113245507963114708729723697659351298658452875282964901335319471139164214858052130587844680000307866432675331855426226965668595844427629645719440311844125727335317661425676661171561120083076042110158351462319970228149282841773679190413511791416969286584397388541528158763998565205369112934386727400738687923643466590760262810167386339301376673262001724101351490887774198163099817615072298686596749100361719147907813673107498225746810887967398482265841748134206754190504849500691769963011650605173021145214234743425027793944903282362469409717295001426591613901985146062136236515745080201436945071625679132372611427949046355920360755257643170217337000799275291947890399194444949029998144403980717512842305430453353723656339969237990287212172035634406167268720959425506129043100923860845340233335515008968545373056384990392759509644856313592666930115665035925411505378945360251965343629443085749803406812392787364087070961336639533980011919704114115089783667616697325898639677481274352076596269908208868736989355531450120664123178315980513294738973303860464245056013288854100328613054936396219669180705446126150193752204768533339499428924016727606505099675613103020857062872013925098551340686188047477352613245392147485823829759219379262296727897236381120122500110621037818182546334907971507973841232232596245371360207624638509191857414108419463365602873975150144100236347764007692681163349611974792287199621502559372918341766950464937627805018358121597470602484289099818512369294403398234855840097307876074999260179476498296281404351732276247524928703465106076617080959744214637539047151370305422485413307289350731082101953471071105209860696808886148743473910081084373019272342042814014156442847467339603583393876524991503919524330377193386232005392918823350402626242920994435780576267128234780232274364947465837985547150142578443812163195652332775749328714238484519098408123334619599581556231839212798772592778487357536911402813378995268877741207163638353408238543412927539848589374178189099317646916258430016069986413477063403612942989781735474890106042720256304232106778036115742920348280338581664691927176937123649488845337034547009448116291416793525430896019523385149576082867373891208194551346358308596173328099311403052871792133129573691610564108543678126705505147771997821441128298662146865496428468007716925420293377597640440253854605552000306112709802634630058649566276594497828430683218717918187479725965097418542349991528547489442855587957316105787190091075666606962620646688225115443889109617347068290874771301389088586542665153994813304006661046977200655070122985596062235773249097066762691891737997016241992489027599894869081202924873015016668054989369834657892434273206537580626896616015213102356280622269019457553427724409868036723502499622805861422603382039027736345684301598201913934355304496568726178500272289515769417281033095039309060623997458057976937451737460641963999189730654755302566863733664866246038547534848098041430460342686962413268299516333491734671491110655331216585396573740610859647465189038238386476712545600639117541549349127296095954142202676711598806380743948415637148047091025576230600890131093911792753285776646186165571198751849441137537725291506117628360331694981752407595360290392889014406606134649787896759850920891429817765143130405389788573809262847429088678839193450726919260555722881991020710089043211245079091050664940979395419976646451774158454903114948189249630567332702953107661086832202714399358940078182841835073094471246098182081781386257684385514511194404866783167263358092144605657736228121246408573730712448834185592541213513408796471670216099482245497286058299041552336260818397348931384387628755090320003186165192911801566277692288850567029142691763952689249980679544646578008937647255551300686333117971951426568681722848483715927604535796868806091715173818267509891016753375692621035985121450730884425809857744060165674384136306454502783931398124097699168929645268912816487654445359705676392279040611162590645686833656570484214516230386103297116818858374289397907699294076001291551669074300481246695320871210929162633590914079316889166251580587954497522970214747441371927120305748758375668109087890729876785379827067432511972218823913256637052035851739481023688949161300999989040404078520226363954271092243074537612158849461080831304857475385144793141727580559813775002192859690985512192696319685879682454407090998947699499299258462242348829450938469566340762193933477555689355344410277100706872389328409188511513874390434325308547972276368218776124723638548658366119244189056675247117693906949228382981531973605799693000277804244892264296883682934146683308526130121170175999183909327908814041279758167745547526376268786164471799581943788875833443313246077779545549184173547282195925010285662322226390397937844526252043298839705448046658992882816486682247970979131651534491688297695081104985076997913573786447029379651930048761332682556802446728771097289628292765575780482113000100020152418320820228059061847305091904180863514498729315369625029171016314128607376694671769479155585995709469488468829774238240747687804488812043428304452541355343170135749306997745948334029346394771886177431123433569110947369693783283349624216414098534813700303909693364843700457382546559945014088164549230945197017926437459020295109425548944929136040501243631424934939927378695600192019189108755947033621279225327364319650508105286972489248406004429738083456397797147117946170817371629702591692264949995821815749426894469804733046110545725602544112445818836029351563842588876848073140567105913003165616342345177895290789328390272287737254369816033987970044617127203441022403621075579888499897869107773868762898913724828762359927849458600397608749902839537741353775165813121773829510623975005164504239322099658952822432445494305178255608463976007706558143412652923872111967433313694443862243133632097563341795769956216192014505887079226033000669464847971066070631852103959373695794506881563589403691761816158390486955610975790475981817992246349133428739442581693806373125851918517703790943712558982386050835390490271703064457371774002500409941115421609341885632418022970550185865054029741617583089526760927718794454775407133414100412685545381196356274088614430997181679935332846646660919543679056691627138409221885756703367248837346106550378972424882311473669853666517451507116094945444928632883945025954651264069697286107329118464684514993922153420482168845935520163528317948999536889003714613721639743409842021051165723650107297581667215531287794581642949414970470492054917321688576950976552542485067862710139910955608011542735091441177216965293550751227509268914914868438964800374014895009422953454055282879673871111854227535617564713029918808458380884813269398398513355274313905012894223907555314821873269667881740958940214008006421738353970345517530798319192066351632116898394639081577010100751727246357001546121841684078305384248963343581806362514949018816224185066868521821585178050853521733247215195243974150617721980244816241801382929554442573733411533325477109847793133361760674232293600678925942501040957858832029284600358253552022274100006103660347549461166706318323928813851929949521067963071632923372117990963944041631947432728520083856236718865233133312062749884797674896238527809814163497269771260661037704115559992745163090167331723180784463893622157528171744493566880739976815585967944224220392382276017070886814084200212850544707963532570041829458810747075441006216602812321327215442815400638412795874900072651980710199301532339264124448721185656772911432486844497786637748521559297558546976216814940440814219772968871228335646919858968706341560909083431578375842051174016213696426889530490005572933472766837793195169381451786067061325704158345455092512332860404659819233428570110640008120150600825286674154414724814852274307341255563042280087249042873539679699314321707806773736497785627224511128303866546819494333614659303581100763480098052216493624933250363575379314735348503543908267779821351065491161734248760151373108211739162217602218704897426937889572130556811409104875818360614274889207073162175066111544772349384791545106098313736074574043120426107862863832327906877940147638313725474654081634041396558350400886848688538578517188954690089551426721718244802516690277221771511341374824637047442216449792959859534223825358634783457375632141728410087495240425765174798932536332894487933473701696151695126584210107772838483893225957935583261581779371727872350723692386527863880192690826121395817981419991147168471192384346565198321531408743392579855940646452997623816612386216749178015613008295281909689317536442363681432190665338964228868012525720435715452337943824890072374246794999016739444436525610722051369558738375200215865206512921650193180174431778987830361553598172041416757378103892435809958817111204449594523784325502227176023439496722759059466453563997284593916438407015740772704537916371679943154696184340048514578495517505457771169930910242197160149805561775840802884794864934028832711325324133983046087373574019116771694093869279132609304830172734727234576517274824678659503864623398826726325153083476112269621733844781885495430748951231385960925562266257575855416998471617932053708259690134950838664898624937139829697520766381047672257043177987883235094298139187938892925179840048907188841735628099217992387543816348305650603035731373336908879157096184115534877492458240884141853675238791311452540228147830941212668957792461833237860764018069417633893059463283720573509624718777307057201262287293817944254336843765197915634153757237709769581370124198233229105266521865466115234353087128876800026328250707988287283643322488215515424633121384542169900109507754184373984394623904087069076264955351116914049839394369459384646578157540513134977256880081483328141209437487473991462685291983474226659245733962675508759771751335005367617994148539733953413845920796953490885528865678005792296534320745368416544819912621521842802076043270813754256407992926287305736606259680555048693857015570415612970794439030709628702697823117746816339087841065847269637565688918452447991958762492518292479533003011735547086587004334498817735050483937034925763588259655959470074475048704033935977021308986598225615494254188226316711511381611965480004265011536695713937238717539526722373255350551054519935735964186034273224917369952953898899511937235139155163487113354825580785375140027369772029826964000390750546527734127537862230670337047661679617049350914589850986456345460132432472621133468762392590252875545825108947847182501958271436547018162629934854226421943046502924364399101080286632549339807581896002045845460515636920696719253369989010070574616201978549459728857526899645190235395413134629624212782240533781851721799298458020161064889995508531915233408994007748726693532826737878570953454623248749518801872405118126006416798287097665983194105389695491999226799987765347270585863149070821770688947328020730852981236197800819589164818863701491151836920671160718232471090508185092122948137019154474082600365779050110020033447740788246291617294955616501617457737579135466676679164122566233272736234466233644036234575969647150721624298074157018282311641510784239941583024305121088687177715746948109830708834440161578171146946327920619173168953891420374370987275903847508238743677621355188693242385541056430456013185504138002275321744070514802275586271438261707736978799421921384238042635709448471030236324520912772168801327257839655834739203044260162547962750295222460832514836273484155534019378903392036740622387350204185593052116780560520621674337757404660112426681561812959981751662643959379421099034793620541005844362351193449931153817385730444620249701262607899445253179162812224337762163366830714705750141227444720707156704717116695461926708958680728291515989312282504606193243877405339715409041187334360781526278445663702283707997544133736079778400909772670719330591207859065388766006524205272625720091761677944754177162928956854553682137277877356006234222831274371558869217576427828992183516542770804283040845398146208936107882505526388985272018929954235138069581332701686909110585858398733346087007042306981354855513174130368091878006683698198872343721475472546764774902782034909392860216904584146699702246609661680605476076028496489224962475711072318642781623840427559143006612809452474716771350378085417822872423585330199013365327459989223652399317000237905895543195969813180953062788243477774889191830683511742317799141602231924618496347925104572810157628854273884346235809953996093103310752603249208138600849128986835787951075913272351972321449672895117862113470656993972570058185370588619732643912044520975332354744942036188482320634218054853609076779995963404033795825236130767608042102538137508300860888986464230888831305403489866567216871407383627810034940387058166025923286010583031452412563460138581829536401479960134342516083579144942936278875531488750371079770866152154493387641760784110503222135495973175445593026439226860196417683689211650932584124459500015638602968188641880005411937189049307208365261238251200051053477327083546662969819325683568825960838014934817891919111592944428019555863729180260108210762536304543885991713398448861828177561747080342079792611260460208746544181820246732996257740946444836879382790743700697577064431782804502382387255625411708902362557264337354541455286483843576126044780511780964173471491274557512647823907111038345233988121721265772839485063981315272477680165005914945555983148666448399457544913232421059847633994828529666312861427892956964566943567110392770243294557539370680967613110500946330643822525485839630274799198322489403079442800587739334729337093738638967265237691364522537126901534947182098742950042376955381292482557843736903341251668031466985224272545757638255143128098970538374576862803488654136410891031908819566241082085322691095608985727631629416394442455907831275743910406908359033163484778114857552342186485713383563669881485138281588264413258848992592552731163271609019663027794887645215542419582884676994013907272324101863675308992383621377628501268188537019766569038038863406598207655682508049783273219243515030366214295662876317963099649117618178908534038919291700080660752201835011125963771608918964896235476983016984698024619507426504531379096439946623047382234548497630649953162037595890526603389865648012988183381094841055277983101670755153749764253965658280933549852849959184772009375553548310815845711715492482748983373494657238319653525509568027007676652934318638297508543479144109595012727918192257910922349280339936241720250211016483778128793600816688736398262805808214463015677345282783388198318970192015149677981779032643905765235516628453200332775631518821464836418623729509690800960423035463181944040229093074215726131878860303714168917143799254826206361080983412625663632515496342595881068645376205311190216877600440531177055021769096683877250872754944150323298413351082441604845298347972880235577918358230608129293779894219230657651439647531152481769812506326781624758839779009321706775349276428472979853878963305192996968438501506574805118292851406091733262387013499125749570162287913052428651105431905741197520695590351826108609556530713602652137565967938331977469519800417065795172838724607881171428502035624019239271006606748028194321506664080782090143247533077477153314254214955937371258032909684677080306039885285134461265540444653562518557201429975694726919411451036447835536574751038729549997002760126295868037277744538038431900712596579077849791379050571817954940573461265359340991007239576687074358104240822886349292454490546046078119498683934231339455812959723845960930767668195982607895300129697324168463840653899735836647754463115501412310347208562551008985757708784635091340261716306899285754512692103161150157966030420822477675536011224365574376700489633428294210864515195773506790136698625101186517725207976886510702655964719673754553467992696265984288783600826559511581182601456952376743337324225309997842546549135408040475371284490343028138859715934935754049538941350261476209210280169381419850980155380510026980854059374536676590980708104626129041285949646751542852809859565868725321658395848486091905961292748397222995531234145606715150921319517206911270936057282072027539563509614341438583981580941720906779478928550224997099638838530065107453399149321329322884417742104172015680819879319449330126643223317982172294905680445239072121039725968100474915512311645365896876965414553486438607351274699122550604080946451521059877180836679945014628025592981389892829764138738104025885136972458784799438929590895788578604667769463037582822456235881949147794031716585975413243868041661481124465960081045752157682894582689380082314267852927943180792044459189873358079123345135489136822244888156214964299133961845673716934207593162600918838328372060723435235354331182621706079736068009501247920467100915476171851790603480072676163734171208665614421090466889636558924807109710292510530220528923510802516641061646579474215337434627132296103191633764894253676237392419144844130889960316879550213478586709290133423049886709570626638979560018756737210697762955590332092635508070925660024531160775763990006327787921373424379341464464481155323094499243915267405120220370328413109364997679167985840119465943409125364286507103406861220310326180296214724209111931458829717107807577423602511197436041465245391452448761726066322614247955099611805029990503443860238979912533065027480203567144047058973850357808385917006407043298110291681905848837968332486025501958482669200868025984209780460658052774057560837534820759894740380862444689559574118662774150610379316150807711324054887214960275681091242887540362734371957658331170255987037921589155549337084446293226139670426600606331474445213291150838550151685440022403892496221922967571983344814077800732790083524628385053883077419266850888434515411980866531499449169991345857044254696702996519450608508855637408393574943423366571653051490590176680180441064280605002430774377760013827950026146110676014701022122491695927505777782874758844834622136781417394575810620620580573037063683527234064225188827336891725004986908865128051390368926195150905009420311320159535108717157635651020280430383454497971794691859819574122835525883111319119000067321487552451942641402926934473494293430566943945539871552574559363964008220117929057754625952309848474039906426280705068166442805223644771340951145691071632832915343379872270707170414407035155349349002110888992356727441178725259317294411385069844638986744378841078158696898470430493881035829437925731702926507419699894845650750179687840028455146708046923397699379836708935237205130811277823067313692048899839946438451438991415990365353936785128092672734852081585153594180711506792569556533225889663853665835589913057721735286294849524873751020315967497571622961343815965621578406915641848623263558540480318600115297018982796794872699987972062558443731297620555901983094492112973261174122103326622901495965230890280791323659839883295654093595329764168617228287544978763969921497499834334820116883733420808042763365902626353720643518174260265130583040670344069559979034786851812567019651592114232207046077656229075996049315715877694673251672373510803881344021151267587931209472849569788898324414208116486882645375561442151420355484813987662650919921620124342690749564354042793139216779150557047564451814127939860066888794967116788659463774337873405520650396077078406780100798144626242353141046418960149067011836712515290004608610760208165126070341064274297387231279588549856140252977561519777175859745624263350582427307977506079019675189725000748753739922273306933080842867150886835602908268089113770096346076824954153204472369023584455444929138735096394214349216824034314485187050815676541423413961184683523108958346759537822580077135011390973552727606496728122700687649112905345896141397796876798772006694963879665917382034436243284933057426080724087692582944602561373319555696623380555845079235708080749062231844963029841564202061040081190495721738058687160951061731200109136513443390339746551039645652203038401398515032563506753477194825201358448079223744866245275887558740534953327540032817725718295090868076357335878697070062724750283879371210433483636669870757619107009290355766546164965773346729174502417780641691675011947852473187896254309876583598268596322631012941296773046580307299824560590279132531325385068217081193524407386218498221779417091480617056552319469883495081183236953349476153158136036280697883049804605290006410236900242541700506365873897379612344726597364353830906852286358014455326400932080525819054051401924100239667602648356022948194764683594081378742351036444963099033662147755656040130331600187433387331808773148283613143858129257782927239956192429916182286017783984650847358473916177291622323824843981970843176006177155066694693686270419602554339091762800228185679554139713537114365939140912330571588801458905478992858864861580940967248724820534109264576326065177751912525269987667034289013297536033018788521333284385219208349417278828279596705451552768284603958883225860303557055163070222064044897353813567059872657124446114297197716318248711615518995687706847069739190736075794124039814116962418486941393868957463267376934977843932161114559861013418965849322388707081351196166256790355411460374214783780493328928546247768000826156734385602470030898072476805083834146511700606868606667160232917403731079139900310965758675822278924124500098668936100074566125315883761664683797966914668384866312482535558317724235232632273634452863599388807550258127828025569559692119914870397219410311871452138442076944635738067127077937534869974337700159467601253930034624626491837945728259108268831745913193519289064709257696400860666187910598258417533955262593784605669390432740209251044072421394180111876096788549551674631452064756597956889109813860758938327343230552717711918429085134473258970574967574950099304862703782803804805939588283140003381437550675770139892087095199133358534836537058897350191880003333625503185410232031713193559752369451951979834886913297355655935736646740234705427679107878436057173282004703988246696727931995862208980545879219940144473384191875836238539015648638597984106893114930279963589649205421909852338905742225375335250275286914586806624856173908399243291692505209392038575144695649872676976743648556137371596318952817436864091779214974173797646883001762026835768416083533817257898652727866913975210803967035112653205478463642627046517574001732740391299139816986099804019763727154384384141803687130735997156840072264407423210990367278475932252153411954253441282587713027201493014594875925111762554550593101964112169480975926606945137422204660540372334419951321038462028144400205886650483170583222899580619529754730944308617282086597926482215563413458827781215757828544967567862935871468342768545906606212737266448392642206447941132417756469429642299651233127531733333270648566188304202732296424052696106968585545034535388635948161652324746104899392489564415869473149014501381271327559757800859260370469570211060665904760730084953648846755956933486616004051827349950723257312297589475708774095849415455046092065091223434725355653408996789987728065408125512693339689554266004061925692512891845856049710503753011733820476273573891343603450043954032567972339329401406869127072903954606053770150555213748854249590473006640624735455361067193372357162658449511968171318763042956736970640744382278080214031345334725449478426938857114282328313245018979510154178852396350606417748660904596692812120648678763740378766385689490499974194207460544264080284746685974671910558300843565004851631524673130884532503627909378860283446973087896605631819853895772705817156980494714323945788432972486883121176051289033276610779092144430948518015062249344071111222780083096522581196243508731607872747196853464324698204400206305412031495274157239727256647663920870888226913101391789449342620127269781983492971086793430890099094186470092346995227633816335806789872664263390487617847473144641812177211052620082089151607110637695061096170873032102605702499450763236794493433228340642248772889002314766082474057159916829041538368151234362781238560047756927648688004194308801144745509089480135264501967648388781888963952628176771047033299501724910081721654970937892302270490125581806566207231294650117203815735920351202855047325596066942660486021649159932273686736942544207812577067211103315261016454775980499084150181748500505269238752772092520285894358680690637495977841829418627992065478805411879199703409607016191111500347426563087683333221058140271281653113189196665839506744179243232141901573953500201931608980458165620367075670711479155609174634506594310628684586367362324122442723873705467534484137926700159115056847609398458674699501680390273853144423858911367292010606672988734636746084617944457199131574149164752363536749636387096521315832256714976134414835686136836806518595036634606998739237491523599395691691595308332637907825315454534794213167021063733486293490610057240717032261864820339994481235139316648421891371873885851574314585952018572758373511883669634942239235872256244718579989561726359098396465066840360111427216196783108315054277025464183101030699631249796738695592669801972625197570852864694986851005522995157205416574087736444589731755439215003642161212226617156925768143561028854811712016473502302074820206773663384396726197002760058872621116388238127630218691582190698758225163505582018706460889496802381606590210303161301844584518718201167679809024724920295916693825100963558689233209238883207469796767505256859173901028950662129387179392949628164173883123377853681588986676367859437402925471406720206268418397900321281073216415068647389711793008638475623642970904940785989539549840269860392506023352775379544066333585652548233292403418353966816562250339133277394130725548639271687976870240450231894219647125067448600368973470283673017841692136841798270931235370697520400280184088721440447287057569162168531665583655775291183218985031421111589998853751159780319246502544644336497199203369493281995947398731805440983384651756783179089888837233556753654440337071494469585466823292748672809437207090577535940304411813572745134230708472683784508900872208540127595450353183564335243543014327229992498057563292339026995973972034595295553226244391597100951958575609725099395871689851200843204898719547781327049741007795888937733388128345403988282696709988489132630472840307884972066442151709886955607441887806109449750986007494024619659776062193805688928720536865165753494550083754573062802528982638876084546631427737625261749512222011578959895927445750587344051202366548820347409989269979081248809259583265080836174429962801327822527813088035646911412379607836525998486063716833454785270223965966729609770175822020320280057462272157403767510586323744277763794947810028255550162772887367957602051603019781903122725986859620054224772662767353506375318736197640105826554420020839545194029915138145097917313144650160955796060009553682458352275929941234587776644779990504641551328855305717222776195867853062069623305820299210431847062419675945757389477859651264624069314721977542784037330248080011573384076024417187800042151686309453913007452765745686263143242421305347298103390961523534510478167731066926140220939808837659074325297681486676665815673844648870079339571351231458602511754185908546974597454757836335291193156673131132783073657448170493429350146436401508532105716918426377669775703336526572883204819551672220270510325990763712329425524642387271010479431616212140469349832189207816482107665717029923211071677992628878477709604836727972327881251606153625930769257878213213088781946680086138254195728253859360027128818086538142071056711583617844868729104700472063724525953143236662337056136738290737053085120124876474575062830588198507712752168827382554886136164841853816355956189686833654223795513806585739005444949992965712524542021840466834778601135697358480225745123865347516916223758285668266458634140427461562331015357658631359493901983328820374545484392097071031388808219321427593339006846120140687693898394573113828387097070034191654699819905489958723184078316840862802717354552975083199967907015383772339317033888070308576300104791593663700968292406099232727386603862571693440266914091326141547957853557174172631751096372102043432124735941012610753778210417751723064997178810310818092203888062056802965213024569466925970220232900805455606552886993291091816393537403608395891697874387989138743397136946982430349719637579119176534622897302377805190180622818452029017331013961550888214927442898751053278157947232812876111455500442385101306052449027876640490084835177533488709922040985515383564113950248624044613763628053009317513385776228821440468358287238950584578774365807605381480247737299308582840914365655928139627939157797199259679405894877384200917441396281906850236575889089539754298820775544980087965309201629696641852212759277617828000740424536502103060242040503612176421827276453020137645849784543224720441350009863475572451841613275562601319701847766545131986836329478095856912869748580554072621028090346315227719596259810743941933882803008666667787666583268973768326470102701789042914005442750490476533752376231285084993943586294490434695727240538870167728583410105527727146786552684340145564756250183771395090876257072378660545113338742364532162060874483902929458906962183162100702085848212771391114904451664722618023832391730815289973874827575194332668904202819070457003399663784651111344773132250428946958079798983469361014960900025208081204610912626433190707801897285712976538460382031483841769194317761728020557215824731017766829898672276837178291259131947187473690983893653728415111906289673329094343425364352967730909641547441672980118106872215450510616807685158061650864033095874900899066039153898029191659009142319390672947559697284044220952684187951936232196129277452677656177096256433432257794931285898393345399516676194936026553646070880003092144255201110361246712542248558569483438417055793610617026101150292970732435592056484537058912423960116783634543658342955638452496163820400938691721369538388571603925662202243105091094107408992956503263303983279928764610348169467205808397388530750178496076414100520075288369376358897285580844256068891701071348764889582681258765726923785033009994310584398949722721906241010231011090437131304576300473380260884083404234420269306409371686976334502738212170333728712708416214848630823266759753852014971649137136834929494423955746619392520724615551848403678937150050985021517507970320184701158976364094387638892646160314707672096717858350156811754716283129180973721859994463848181031704488618940269187862615147668126694260178839578386048774593526196018787778774541078299037996363346260101425714329430698421160802963453704330314835171108455502159960571453296895857052861691089773578224889531132062414483450017918079467657924083672053891319631971139078083555613779487159020275185366288026542902743440793732348325211590652037381160645501759146523112341906513322273530522514280938284111440082674140059188450724056050580268124716003186458854681694913060084352937178353671232464354306329518808478650640157276099615782355939542047190887738107082643681026806630270723307037179904190823169879656748132966535077607181171539390515171135973167751852525981603029507414258750840795508049072611666872972343511554169484050026237907952565125486687077519518522215960184334427735781772818066694401945534045074729056207432469589793997672742719229931222094212130993388784933699686931579991826501919298919119536320891286808307951043341964525248498097756944394319977424726402517289930655765286986593833701014457962694369403787207313910494388224637618405929262250125794298047976819483857996270987556100166769288086883144296991293162745609868487796543201548952325732437650098243434670840266517473649990326502625717598575914969460665533748025518690510348053813799234903076909781071430366421730162625928898089535198155292831202546887843972783372218375896810306032117380582639849221644332137212452909393434627288180706727176048785478371028892642228341771430057669233899904348994987350328082687329653168663164279503517437728523493611993643145227500783631001180966301243515990551043642356009031894314252861758857209178562216497631840405675888758700040648614714545556939368523798813288194738361167857695474363171397769944524559931902186322580111093366041254987990185363637587785163868178972926271177453254348087084675079028002462875176695611691865494231383708186658017550291611437811939470515313967059851444925947497615411363459728268580958178872499831018023379074269301625763423007163685428127766195460485567658860991261383080139040452485312580160538627877506867824193415692308101144641041482850115332653864016955144693120352256686073642735768000599331802299801986848192174126687997883546610474593080026249764046470733585154943219843109528628776459663267914238275919582401464536454482132726667008586007262583222359887037947328765562007647297326677231716420887054412202334411157360927058885438455329249805448581358190676793409656397667889166673547607920770279681018201516140981601010357939263253383198243858439560875368329172463730329975888888234644125953469068261177004395197956661180103948262987539877234963986843285447255437502362886705794632634959333569641462330198771213264414510037821450276797056751530576525237400719646286004517157848625806870764032230615144162641698319100288364022788538478801527979123166983105143469581432885091658233283253255960631363061729291094457405379566157387817323537902239648898045407435804650463852468435663773363171753019309458348927976678983047521260247981692408467488802052719512835717893384198267068704996070227115574717056052737860491698333761711428440416664444104543632494958675995856015300643520934455655621820096577061513356746674295940074484431366034968338250872076086156567623717748094065632266448564967482029709631567464999977700193084080564273655227046113879336676585875696834004988284097847246795732131972472863199132810264390881880327689195942422484723050167749619724706771056931870083596007223053807115962923980819203840723994910107047093800949258316743480764431467415030303244309720683779553157569097397188421340145898456730645852375789461440891181512113015227048722095973900924155325659988280993877397874060909726846452129239375374262161518576332969315913744864679731509988052253811489138166593659572181401112630175504683075421022850636310444685361311270182915907977968671632649936049380419620969250999621214332961953817607910152417695959477318355166708008503962281475391826734141260917443420786710065439460254472871873842852313926707728375124230559765567595618747548825933423155914301531825641595599395546093135926632465904845329249183290018666728672926574609528283736209894007453721370614617303011696436114676753671068755237122483301573994636433356016233119435064689303148111306560324441382031297892101566897577612868072153087262306001781628015853981017094665845337345167591796043112617018472824695642017304879112661942255260682697603924595005038214349506592038067626552030245398730658840642693614230099629225846673577133376634327690507467371623151559228278102351872387728679440653542647856971377026230269456411878386006070009163044592950434381250353450444076881522926736773503126737017469287876883813705289431814856785096892216268232371376482331601695307189788714533560026097823401342042435218833405252808200102454532324643556006987665805571470178469752119784073179269933521507171953533950600155142508589197011033112458561689754882553091251908265339746999904035381394204931977482984482190366099345185291319404930576736192097439505218284576472596824371513270044955347333707938070912924952543533529649503112493318045811442859139695065637492841141796457990043976710098785881237723134827414592259473020359225633201171039878848847613059055897087729960672807420546072610922636511214401292936085634570227251633507197291593660971186951001448691520069433229206701418242628595392809967533823406898876967113292170497559847636275694583334512914819733924589580398799409108937843050040763415245813350205393859616691367817597284967849979179896008602006314250325795866253438399499400701804379822345019501568000681885102026098406700256272452747638984689480837961689232981270470546066033054148757211270336196981064726337324426421624063368136280873573759353153347528871246749493786050346131522654047927025891671435351250699525167973643258029515176831200287229489220524452232682053001674727179809099146445917704038651534118824921150661344205801551970898117761569542407434604344608049165012834862995507775136054455394566414432481959452153091909135490570975624579680749520118257747152753093257812806810516264023244196160144237164759229508570143788348799410804609882389639899860574703353672609015279445641193030094761363964788415065781828259646976627373865928469056552751522365167663110347435787558164769804926652242499431408638484656452485731202799103298912902923396339773676401981140265595913911163510075678879115830102036299051624221031390351615426353950804045635400768106880646259402577466696440179932330540141068886759821194307540795161995919169824190457133999604810703945843424977330937738089432884581927599115492842582281959842960187347424848529381233248236713544471445350419020751026757038750218595945137536141176736530488380195274113044500249256401756793823834797427258687064668118767159144689178068191386627561715420590815577164989582549977582129266689534581009336707971353512721432671665781802967993514779871547325627768854881106115908186545161458364835971721197525774655411839434621364431672056380624459508732323054930712922196674176814381358945663992434241238846099007217984590615842432408185707081567678907022693503073906530688239430389907530745861495224384348067930299605837373414652267237465766217012873681331011612137703643406396802247873465895828358501820386089797366562306908758545932702746470485416481829927513515663104385149745392265593732046295733388433450643304654175685678096257043918779181692604690065440297745660726513225529528810303696209478957114640209375513147546673912846542168972138634141889133337328321720665788473430788871078909479318919449887098681660818674923582883016491131014710411884823664094833897901571182606451349674179973933399997997539890165574590334048158796352900307286042315269404179089134071933217429017303956292634147023588057407277772491859782804889301939714887920680852103357071171748713750537931582060955236452429259890741256657992739457084928594173024684829796962684761904430330812413581797150081158420389568437732703428069701953419859780568550954752606264856487343984935450306801733495089212255382970935846995457622959651115409130812008483601148845385558309224371733006895607479288139344500676362786332895826579824145430491029536105018336000756850407362867971583115663793275031879777384491063913192015696179283646772136317236616603862980338800191601735361120369509110957926125816198623569288096161029100603224020131052244564330207775789008667470447630056461435380698096225435683048708517420329706795396961883039412621363116963813298113757758251307530494928937513232060490078353526382546939370547234726057060758281502130301209964685224034514150501267569269947258775340238510891164700964967756900128974138047554332952489066509820815575718307009159239465811522178380644193103018463891799162244156091244111538757846767949144924997315204496043185568196182683186368801816013002754207563068832458180175622376401100767344364614179569684647729086462526543411139863974222859170214054923785774527354192476552322270580904567241512549951495327863678368316026890465878363456543402696661232143345206821480279843926316893918532906729385327894777760058832277110629701310586369843046549744566731053192784540061187784869662646680613906825172702028867186637828745234629997420160853072818178725738571758939141946774618738992326976397070032604059138710945531732593300053572883296380907553907691754040954549842273967445963850699451342438173074947321793596867513723513838591334201087478656613110447075840105901219120021883624451996279827191413218365153124856607074483389145717916456496656278850662076477069755084968149994395658599363620136064453497152533481452629306838555778459974354094067809537755541307386311983786211572211474710315591845146321101142658248157097145376148963266832733994869464695516614724005198272434528186549412695373167778565571677810452126586418265294191402908426768814868955515275329499601582783840201913319930233458966293980541872379568329406304637662369070939564782746262884993907569589664433344409745803395371543495792248911193080225758667865619441636283741399701615800173582527586545071048736609566548371144427345973711137562306572850424225702879828809377817902587146632097265382233874379023151588410527291305412341758447943818017094618493051026864409447218155841898684904912959948781708561151691101023451771184359214487836597129140922938601034989128265716745510478074072528860781311886947527395325659979529664497377587722107160232170412306174783774066112961566206789937883262398621272094009797631187364494471358165467799190754765220286799215209899629352629634608191431412863698589806778804324329485125824437511485230916503928850586850493290265899172719393867283552149488528673914604489097293428300831500234614767515288115512917637750177064026205561967155731177898085906070488827247713975926045125987596579689137892258272655965379531781986177371767933273040420032934704104033069719699877614926932960470871799369080416546577799909237704897134949834291046022320731850056176534076255351789167995450964114596995370166150627926735822631422485669542752663126134892321361724837763255602964429604611721750633517456948777167169940578987690696387208876544528644080146498971176788992356855339283506763570948303156297613746211340374092720736817440625863812993184789527518903073935014727853451696737689736651329813186081746639956183079824162451379179718314238570308702747482415596902657524822535294874482417922195130187069540489242134531338068848312750806386205356653843075211190135585848454901349233240600825264126094053396296478823126860395823925783561596566945172176708383911668825078080457435263036695897527450392280095960376373576253140531148435943033051841183703528685330422856049154414271433290806189533988899183524313380511402220122387756414842936669205106473262238278686556049861378707383965231461255960620575188845162794546053452684063907248799094890378703477130884228728650491143109107503423913012819147322056167741290238272335433026006251052768225163180119498459087698216810381956571883447072473947072416458983900501930390498002861017309005883559326469021852035073341467377314148332359477781352638219861194938856499537679292690260564200941686420486798272200723448769376980480757394552684504493157017426196279023002298447102126084390777927252787258335188779247611600223715385495990107917106869099471104355210036865299459154070057964701996764331200298482296574691166039166032077471521429501847747732067528047519622613618713987294883430690359555465054992701334098921239415962802730053443638929639117767322930121120095998193751629126364048891994789865291722728156042504139859200412537968896088631618885485140265648471223997889623883385182130986815910137871771424861933298814145702482619031886370191237656829511891766267334087754840459023213964243255458666554568654844306554987472792217474443375942596705253757559578696359449584920189933573632049833869430794340811402775119093513364394675052646082281587237930546978256785583403377463233301916359851756153517559153507651700766554346835793539600655949168587387387978725269085032767416874129611375652122538096863670265696520288965895838091050572055106051312701500372904236891764459451909932283616996265497330358048547173929390806707238372706107160746085238536849311028269948420773427883906671563357903082093267165540290228185870486889827495034129521722912854314308464837776617477701201320261149949850718085799560288697365552904627058995999625959036038614588934734622584529805354102362805319725091136771137153443312671689054086778799836283738072304433132115257407726943922569757026580776377099167936024607870228683428899176523297476635950872080746551414861576609273202207404362474299504546353297469730470853615302062878812482041692843938282284523719221287716734461479080469120544548407653864297303945079268600814061218898367005017422354768041238985639205523829922908311465142491431102977783532922782772297991750477813207986091605088583383807188810316823965336638149118732271355225856311048990034826261406607837145949395204839253338039827204978024514452289791882635085089796385637209592772680647743804922354884417080887262619335957603548322495044094046739657425732064012125390503653483084658999189401494964822982507919723315354455915901496234414762535991665599348211152346769864273749745368829626967438432538975572292554793012930703858547021674205265938918038406191639861653641749867848109738573875552955679239872398458001649726108166927258579528311797768680236930992877326106818360662366727287531282074426940672090839021545628104804502771393822213723324279700541443556012268163110466353008255760350912144561968491114906148469468906283079997448733016239101765451219938814962954648469558176556690933966963466215510742046550976110374461157619506335366292229999429615359437918313023154382109432749499424411650402448208050746424832005367778319619231698233772837082752966500359539413230132907392292032726799965661062306098184786730293155286998368928966773271477158790053252748911450005022486191028483758348648363894591088745534213508721196771201303721613335122514479125846728502221564353179018934903911659033584192740933413600655771928813580026413070415734840764845773870691290446667586484013387564207034146992562851817719327024691077772335324722505332162540657093286783193646075001433785938926613690691687417371444338858715563062466442486994193446308315381489081529020701056592608843291809407814632238164753091609208632044546475696902196350169934447352150193735895467389781311091988734235607475005354466395435874727643147853153622242460206807248279005408959803014459607749875883453056734068860202391564011706196074165052632689423889110547867558460990040767677047086623933004657248448199119911321182544982234103013022985853904270154249578058036201939508188758857951335005374957790340736967964370467549284707705091820784893423997711419618522614716537736007680103065645619881091341247758446122053396198681108633568513860751361936062159764854311199864861589841337864201952413342204196494906399820802116449008409740962205636376137611882221281838370459436793369304500461414079411000606595104906408934936330391192896015433042361957880935733261082489134558418593777087834253363332615874682635629596621351024391798146110368074084358945599393533095816818398145147054566215234106596235401775382189403409209579152353260470963072804343901950362678389653805579564839681177412727147757438791619820328432560646633219732460506641764377702464513091251713942440771759063415273438059924331614675530147945599043531651725874021696805063725948477204107164706964922337977445904999308995921210011918398315270210645583648521279563667840443191764991007573832574178511863810395544046917337392320429875832622908675290961899052094206202561474388781644786681636657178545803925203871818969776257736710066060250914119703397200412937664255099256618902189210465893081261060843823893365492598913421454070871008367689207188628906390503440670254536433487880173431926039099394100714055991366314284576364985207242462953859622998509063394848090704830862921775614806093145886704462659937022920686719336612801345984624446637472114056326363458832132742406335445305393540809700492360387978642203927763964606420068649229722475508880543961633207516935266276830643572076049926369615068889630147788207986821722527280297494017010551950665767061228473193092229352321740393287501979069086303284560842652204556063539512339428636262592523926527019988063426821925485882952898631022455854669200963116776981697745978536609409097584618043645729794556384168465360511299634166728452230736476391074965438290045912030664808760942402149081973644247108263267659263391775812177616500039102532943781657021760945178754752718387053786386922273866148378082496836836960423471759615267344690658363867792681625076516741804771503096622339864175886391175101863778428609208702633051993772937531907323647070880563130109323600272211292396867744668388502648000774845158757454992756989003290422332928604046050946035838667070690789703087132189744059239852735796031083815268060610627424440035003347375207935711304139157441598927475281664597504808304933735963926527241299797771622677148794100919282655471968372294955764994946762401620723361556318065135029930297298931837138503491740187422280818211895888711931898268933506168302991299623599474957942510703096213238599387510766149201328653047584273594621314309279927766868413981615169718640943761572833613533957383254648410697676888040976472372338576139350040474454883902756048950709323714091572813012193408111347007779943182085191115548832561651563966483291434438422462981366241315155979367907748166602597331768100420092055446547923023607982488452026593356505399918086244156444705221601492937858014708494893820388036463497271133411253397803617517206175149594801050660899759621900206486971001227437216523120057413071801915923536128867522119242853003563283405229769423117121938590338096409517050978837326364819744054468632717888224711209074365676676949164823690744963932159389149027219227812104641518352752019976367394774192043178365282975118013725033386790673026717241080025124262011781950314539049149131742398522169997074372063178902435201187221567547427843227207361667956818082744015201072675404019824263593177633416520612733707455431746024959299946665361766920694792869974084486146056503649423657618216888759568496535770981693572071928171482022650983780501966172615027939891180709823656576611700764827116603026358342730999306466037593409109901704240901371805578051615025397133795667523335083848073884246219545818219198080427550643612484771689570829854082368798098055839329417111995385009510739520091971008389942827891777558391530199322830220879336553519002451758092964772530562927930286659446420360362843005602063542345373855831773690436033745067812637570948261930334847116953666952715501358941190234592731590761659862167110573791679537657296313933948096519864325006644362693350182545577268071951770129753143083047305804597944313163868966673823692091016535747088916715956671135132306644619494320113775266815489005353133200352899343152273896061759347892132206120553699816348737926957169823955601338092521159100283836065961921880258971388308737289394238935648362151051439375637549786770003971684163314617135318389273124099487872537739342633066645309469795873719005875498352484554935099355918167953944809926062940859249327999969287415712364876264274998061047881111507132422561641049988834394004967720079994760316143325096325826696764984609360412377102658712673861726667339147281162102957954872319144635803619858719083182549931748733527572434180874519236320620625866855046993964028288518977591382802647204390763479575317815738953147901839622113568480071472830543735603549604758562688629893297681344692476967596107165236533104571488903896957024419451910584428481123243183075743016431691686119555640060503816269424628832997995116493853361033549887376511674345711179266855234626606564270210160788317194285596454290436882447496702483324146634556627826153876466822662768305429581081247041897092507499585845751412111403381124208191954700893584500261214453709339344805971616495981843783022873702176527681542630706468472832130946849083060034749906762313347614612543592251584306252704456410677251679639868899609178937857930683368559084894961321580633800527237075214873072797437562617423406804390735256130738237576098893317011062731541403077545723564181779035327261694501856007847219314906154639917637129463860217871594523531720939241574598988875497440230426487937026980430590922533603924493850256787590792226863851281635378460224580895485443518402970497256986710714232480149820611296963291058699667814710049897958358134969776395815445574155167968906859398807871746173932901819804978281519911804183002554661962932422232678136653869654658056224987170511931076587398637835587960425258814023069096261444340925436093691667147821568038311482349867243841546326752434077164686248022939816977216396632581854862060162748824977790496914674430139166179699364077847731720434894185842828881199117184374241386288701755025581759219552314904978128026369665228219518690494174002951065199892826225953914516004153956372904400134487553414599632145022972060471011541344611467581475633760434892654634802433273392909053539203062042253124335030903331895296007762830367675458299034975629451794858061053395286076989853441261662963684789547821788863744324583651462329707069032178944311647624088021859681474360222820038672240160298998208304642187007631492024112082997100817421260216401833580926678295164600440542001274826900776308910374045944178621885119880534380438006370429801931077725002801989299510490657774856282066452031221357027875304214836592786748755008386874582872567158843786962911805914084135669148228956098869092670771639938263187539007219576307820185629468785677569155288491072646605155158703518612915237758730478255581580588040388842435790833371826936560960566431417951599412708105249754749478319853974246099453468070513218300293128341506080451759920589903651586010980405746173322277265529136273960264630634872711919143490250359754080290437807250626958927530913174129112442943233927287091584750987197135112630894433196433288947116421038594058708182431682803615292559914899655861887323983742311677108200768823344720052247985749345828084435223231972958820721675060532196645455375032988277791025347450269332527290975332713937712018794282715254761058078079359558891165149496545662442882104759088292771390431887981355207225556544019168629753187649397811085213080835226309781438725831591041846786562868872246430000447467400530912171019024073419679675449678039103769759210544887702361562436985102057565900577898410514337026513513751018497513254241779134225274286163407817407773435383279691249782297023667229839746768911825459114298434794469507964114775511031238907827876002209215917517208127900797894192133636558306169540831263461617038886153967539185588289051999184172849927230373339778382495208262293601210137873645225261644187382017097899938235998685218799611151379270606351794665533308311695421674071812264576594374799891221916152920713509106249810166969737910989769924789861735089830054078246302615854634418470382406989418183138347832466580593756444015643183633650270537077806445580726465934894316718113191253123013841930837231775152646098179346788663133280038118280643054621678400550916515786731147078089819089939433528369218797294357955158369576707202267996516165428821065761099032172351832782720187126884562661752045699351141079794671850874207936730464291862274125272881117822904769571797784901838040328621385176026097908136940101049113596285950440310928145974564686002694286628694156556618535359962553078162542514456453475090892851845781824241039108219903668835770516775166114461056337022275023966508809167071682022803501100704547904203928567718103360891345811515790871641852297967544109687545131624784021371712046487088126911102993345091480464719870746538951907192291723846075683170018868872569194328177789784768615764985938261299517729243648368075457599014147181816182339257625126103047150001850747925064847717590751378758507434824358326636982049949392011732831930950907210732253243432544532310444031706084284078168788983802597663140861172602098206179116205683240981661467016108589107289084787273051056905692544274779372154457228788777217527105089584451628007329639945034616929433766474496577524041084527272075829699893054491650736718686994599439767581930258023300183993159629948240628055586888802722357504470887765858283997922194333414125447771994354497729574247211200701725971819378344713938610487357061762961831060621135929819145609991669196373582267487301426929742386747110985031016924681514447695153659915963459905998093650617293430828218751542954909368319982650520552919360992723867397836752914338112995174144117421167214145214607954721495603125435237600115379334173810732794738296056053601294612476558009183710330413725343468387168862460220640725744169291818385926566460410941958696781307127983040162640696130141093789000644285553843431722176438952791185542827124386571053966789661930816530041045534761043623195670672727764093810425446272358428881809989459098228384527236201435033505981548556009342570411695604802011260581915464244862340246843110184737371536826499605290153145924339452143981653149811213361632345171641327139724157735313272401572682339511479848585586775955472776965129209625640945970505185369071969570911793967594606699346620911488484409625236348246402497007103120874677115392934289195533571417287783144536176494904755859888914705822127383003280358306365187506776620316319763600145439636150911565417704474590474382110307861658944885360383047405560635268016650938934501641651499708558785002468720070535365644141909582605223348121850265429045742969267046851237705251098610100812481596247566211617012995716059163941992835699252704074083569473779794880394831189163156881429470187605675764502268112564216347375273756764835565678353635648060264140386494945493113895768111653913900578610951979991362111244073293874820100142346380817003556923857776724019645352236837351986483922238878282773647779197655548974880716297773888945231462383353617851556566694996079844386511959383171974486922423472197262628958033659466091285658282818381588432953154111778039795075360926306607814322086044497474578630084723353008982815421326951425566372667549815885042281842802118704922500960041852524092331730922652998166699381465976377052172112109226230374207782259790605025438321082719475104847170031452768169625547703821870882258600518099108262018865375771877480935143054837850963128628438844940706620630341625782895499310859606213997587997525097725653244645254707641359774559513672525228935389086516682230211030078590065343023954303947489533900203773059069472614194479472318187395630455923402243963085252949969585684893722641678005242235777962339756739543851287290619577835623619184997188802878857333809375159435843638638546769903918331490760376965704196882088703482205839242362192284749501470101728059261817392683545860190066813094367587855326797714397508561473730565858607352239523642123331310010956811307389135193210585756254909919396921784159452295116208867924788228541022866427829059240494394123605842545311372173437754403447400318744220872214868301868452760533485735013066175272296257733017684002411694258908021707558462634322354725984954366624085435207337465204416512516065349954462361947467331103837311724491911449797088457989724157350381103498672699868531477995282705543284159801557317346719440248008181719910032467570055032047103969297721894804666581697573761065861394067077575562562127775935810111124204970648078906894021724212133066723415199890343006632522646437824281964918781033047836145095525101653112591180318233401583131444667557264846227285551222500022870681703420736540180972947015587402309664938436262944511896684707086237391037601203072110790738599495691684519654731346682633082618846407965205237882234091654319850616704790488081838308936458941857542449887050239277114200323966663092017236483990747556732784987841618306475284038512948797064886541716036117693160194621073877056149354308160550691194762728922793327769123793477739514210442095847946398642726222274809989689495632681748192440586455498385957688482606598211623549328359402549606979628373077649821262281596227381689053637549641736558153043743062286459216718072225895827188142534858003587961898118428706008377536621635860697967937215299760435384562472556634457303302168379179654697588117841254871998577256224410816033637937600642428753105994966871614464683724420524009489452182514902041216355276764024451631207429577503192373734449884569836990830051979699129468469620604039808450304545799921148090954942019960001868797753643872084671875360542020926606771278714947839173256791692154584831737309793737861247367615372963759022357319107873724664641125050175648264450699593929267966237131577143834406870245315128555255799127264377140373182852651680537942479091263775028407553181610712109901815560487885525079736759320399475721476255327636443991868748901257775231201813574364044854085172243222852331553557755379985304687843918526325956617746740808720267773834738816704912300198630343452328905733874111477128582106385747432405518707542113227894535224125945932609197188653309074337598365429266196620122103079374996318331543610674936279873508263404883867616790964541974107688047733901044863824213677430941048997744898512951931215760043470883425935506465059331483335802205327056039392088668747417908624348010031919050073394629956357897349093672070108443764333204378103604722897289367199938842160987835106085179661516456728370180163460454771776516414273083991092116344066527744952920592955353449417346505182586100024627807623674373955010249811865105418345522086860043964605377863120997687963418708149300073719876750051701740481790287096115406106287182550784477245844611912987377974526223569541550088474923229597046261194517796988113900419904446319025274454706870624817541390785056618684662920512410778055230667091749992696316951200523815250832658372327384412439515005417626767580943572323208304399600450648088955762088340030662113725650201773475239788234788362944239073613718923851312378911954606200163070572817094800610218321213324529071110461325449388193718482390986654656020209089408468196824617694309206150005302297626578154826362915000352552183805610486195156925945136186808725448793496920529457154257851484121784508446524568540212830254988032978930660309964818193289407548395819495046605571934756813066406938133491999333644410418681293031858960836704477262145012746556453352773655368644592599330837881439945429950698832252664718046434689772030444070076568909221651941443169900082538638587232713835553709447749114766164769332810537605498002867618875362424333843512958346473828935325418637612682043296932052419159167185298153371565532741646056985822312641210591462826440760254303754103770653040150912609146021588132960989703394716842756875192796631132626203401903449998076022523412329434429251199208962131717480352712257952587824752496516223039005644964011010452968931115408431534975235200293506128925812435149555096568055743471528778057527545235384600034007783254759305831070613179980207796449282724672477400675792501318547974038447687010832452073201142141879783090124743477044389444346761050282810721945051062405673680465140312683552961565692168947510413523924313742099406448428884582546389606216290858935294574496636501913769435526144447557299268355024473273573751151521498754407523917212752798345171840621558421119881243923046235394128459757757760953998595333687976810473590439513340775137699888692693461024055655164997000895353435944498250634556139572672407358177686878445451070848742171119746802560125946062962218584354688091901511889138427513637468426362804607606212682360644428006506268082291057424660783978387636874748376801079887321494038935252575231610747830671282893241032599438898845786995765656812854041340667540315104370093100325206435923940714228034083545274053472194511067010120720550838381393533441202579935795336687376790134307096081508645336027616774115039453779390025879756776829947772025069493918130439351763343523370729891644127300581341954548431836598325116227072297333054013796409895451388092718994134089470851868957704345007024926150036123385730216941160041027678927864443313321978161545499323614750243101928491770978376684739485382506201620627496352315496222728122059366467057744390676155667472117673044868861620375406458562771223050899380297001814367879709262079818411902317341080959671507690498827483731007968665399849093641961536144431144259652269544606402780597068149151643078915670459437712067151320492307326325317366871764650700474022905423252635360010819730759603178795390402959529261451190154576456306223084305911866426609086028152589686934983949160685067096193910349460132361094491773412703352448803982633942676835682358467408412814473099837261052440887328508405878929045829486357228100869506110877715522433611816420641242326738761229946369872953240368395512514279910551944168812301140950597239796099193216808143124295042185019621276991090507132484308454749953949522454742194425504780903566938711566214545443397704847931063888239863181589966093650591183514110791157435352706234738523737136523460107506925084291218603634391166326642977620670756280647150960689730218740312292980956880973997310016618893355521930332831049480167467647519979251106037981969099122342859515235932926110786181933785476498723412395350596735984747977985686537393004309987296058070047986031092373160578676155910806812691260530505159757283198469667588372326495009640339146631508047544609233089343217254413599783993922154461929578442059820647707838232701701531337812456482905828617003003020494841408966500969511625003675081802574456029132902110649914769671868389029453321619044346647655435003052209515370652143228458220413926544526813096972148147649411220858705255406153631535986049597399259707873836030267411987746028706229255583339300691897314870507919911919256513358018037862885862077421290679190705132884812277785364081538777978599484944327507001163301259768313701075857817480811868516849972826651574818067992515052427394064054888174182309808532573773381763443055327619655831696851505693105887995707099403174447555800087068564180960042970824162968221060471222008193688229162991776991032958644612751957652700443248931315300181359870978943033039069366937897803910865381296819756566858453695092143308549275245247627818405581794829897720557033582221394152129833540977956623956747503109236719737844383502001433012887406802238870629404402741456808286637398416715578719356647308480294560363600065656570586263773653624515550182548187829339755885818172715661796532182661745566286721026182744763252570959088643485069722811655649284309589143883403310679980427075463646533962365172766192259212917401137307591736874712161717884837679614238471048565524222793913965340904153441747319027902024695638747058114243381049955000884723790072198358750055409976699989730912987638466914766985061680241952776485860469606567148506217840365605497517017813488997529937155731959994896337781651136505425363749683681136901895438217206854518590252770955500441708446054126652767669673666564767381333427526013814812522328320917598102688515970454715985716198081985590000489116267281924327625736456244606421627753367452766102974182344338671890117072197969235966205089727379009989606389747603495822216192160203817418962103399704252577494594826791523219017877461842805073675440913436993486175812902314155129872054401495495222133048326521977465900568961395480796657330407649542803166672346110146625923433800894599300341584449796284467987532513584440792718458442217093428002407192594323275628500009031894221613226669356538166012243256357116906504052346090758318828097389002240803681133062511513751309879089658121909021552830743626407656674273599844089243820451027865169324780137819364216461188169982084579171830124253532458134080857511917194647771101423486696384076177556354836685634984457035722944000121121525170037146719168682679497374816549950883192237200451289001113020175618710789721777107763023760506661932877016549616315589465318322364278793348949344983827168952273307010239480317671441426229676110482768738097341608156487852770812070702909181846383845962300485980377124519283201319316739831157872145794200208786770975036832456394701939570770191958011279791177786547876873920063894963492271231168970629345743388158103155623762617306782331093006722413558936143123195834869681290789317179992609139643294765685280386652379740653693219070927853722346299122388173335807840643645769507122225168255767533180174184820379334210468151630595823374038028173322989689177661742524402172915838931125554713243264093216644627955767629580371516908817002427538047233457863872008662564050212782870633408960111132935669678595524732570011659551600755639864348659946874682916477378098872267800640990049894890663254475194341007427820769239130053891655279075591288030200783315160066000431142454896987938389274988456020915185471325557450886094664371473349948112700988091697601249012540859506427744150611950923957101474426133280146518182891584466917361347836863829080645211652545197225237351255220122378782086087100517443406123268155764445720345528725057619672301264574222481083696456765588701090320809650029611784614981709621956071802164227939233074852959665855111460024361204237244192959198297705960408653160180654520379904469763371739865738737169839535726521008522756962362055187771762208279093641257192920722831713413887373800076024581228378139179927277451184799721555876526968285198671244805423781327243660883826630195607459038935077440737317126413975095821981481676966848490367417538729979151914923319862402628689218442658080669607253117605122034982530410241190959031310402287554544986460973501546038023256041820456297874877978446835699209858816965545754533074178393352028764086494637761219012722984239062601703497554416269021762730091784588049595097095276695057583559254065449845280958108728719240563862960239079699037191392856501110997655973811242705901744351974838126805262793183477916153982948384571501617654637986055572247765640963850352249862818781258990335468116412309524718292855738519423994881131516453950257268283100099153749549724739142191518514505767528325793021693635959629175791807420310686266027838245908244859580156539738754739891017302016966086625348947296659824024250897440412861786034195446534898999271804464119058201990809293462873658896869768280877023152501188739101755280631996071471501711416237528294421946523873901411035014212715470603652889186148477893301904802606306377544863770920107449648767301909460593113369328860687065727334662741618767430058807201835680733383128553210431639053456028979232610630495350244521104148146078356657747737662151849712293366444545508411595080235359001231668867472008724345756195231759464422004220466377016752161603864150639079155722726767150227326266429591428062396823440493089977491785788359367733678733824051725569874006573293833598123716743203642377302385885668461344009872062937072594948998165060408598899227478253367123166721789042869011196913581343747664073035093465225968917060972235945798754197857598241915818567262438016390618589369553710182660972276478434136138553194246034055333927390169271177858770520552551220693044649766687831698882389275896939330720370766086889698047408760761002976221489903040767386689656662413661352673580392708519984717434888117176293568342802126697733257759289537725917580814446848718576042833476076277835545933480120565579224720066755982775460306326010104084407047619990523340898387291740489935255355625554068541604763263800850476372353581242726747098980661544854364972396741193974312247656227591542725496704753143130835293755690620147858316095474723609055801633560433008181331969558665198486152551657320981923864034879805381981410840531452439024961293251276494680186603944234704518892241568975731912908732751315050415561459003629484032483625798609609367806476978866772704439056377813333992752906474159101485789046541806981271832491354814872708612066738365379686800892316409747936957236722200232526358029335271670394379975205240031398405673533042834856555470199722087523633406900546169708360167863267839159439885876298774036710552512851593470256639320417030271817787999080522066950889166073812948933604701518100262902648576723695451671194674109581092249955436070597271048544596160647735176157791393182695785558547482671783783918502266100841438868398791818455865138843371548923764986115865544262961688987762723309920287927646965727937249192774829527692053103743904698623525592054002213640128231168600867789899389612353662316928907655053441080179153392764925436711182946897954746103670012024661741518871667503365685801162961520440156244898337337849895426647828682032378789305384385252512316221131112385981578222690979795653508143591797268182076071359043521577467196011053621919014121805557855402253604459441340920522182062354312029075822447391862088441409358419398044392440143628091154381748760964069086009230949243573446224778722497381557102991433798351555267638608743744667068747588047520903512569095228521899368048976868434710985224768880240568272564286703287108594774662918461486511432310198756153617111754525405188500727721839823557688842865057291064439893370013037127480842827862680542611113486114073731969065160426191061275798017570389415862946813782109138068580653579275394980897384696404515913093529063420456451115985449494295134564968790047826888200475121688382931598685524894431147652609355988498160926338962399250157907905760886201945646526301610431466668425400263150537199943320912796822406364336910774169356356203680928137071168460345098897611515434684461453022374590128091419688755221904216316021802756846195376654071982776601474557928166144029107439887725594537020225014968064042355175465364041765116299513316863356449115890596850998472098472666796711274313704466747058597894986450206271051812312033791658481646579280392018770520984248631462153750441652057282396755608115902926431688930403337979492261806851453688281600573445926205328049368931787752302215959809041325361460234978813578590328776045021564653011126948232196384766470796928625280695876185520522918765173473771437358195483011231789976403106510833518256189053204740380472898874299920427195329933086194744638418861087146493692920281637159173261490620128166285913619976063524548998044263003089063146179538985165410214093440764442986447684110899389641474284183607859894887672867541652036405243817127103267806764686071412068763918676252741250504770162258242176699814143632422482121943935412434867918084668486435632623486845985674625241405273607685650222565642540868592973119102082440263781193746599992784183283826305073719016710530248888512202086144710654078830693172617671499715440106976893237568240987226629244802673341615362745296363654328419210776202928561065431995103024374109535773592397441000799327222430073466261111580156840890896948141174521179536141480194474960520127941726227236682096640758657977059425530534136875448493785576097318347124984043506060408433140508862562403741039064148943354110095322512379358457880636866167083602038488942374832597771920825361238547403407734637716292098307190522276903230307702864792888034001269846577079680456704815933254220300193218237420044648845335110908944221241431733633435382626757018304786222586447381682903737958072831984395977663460584909322183798027941632254639429073350071113706862888184518896383305320004516406472527401454964603674202006794701696621904946226844595504664371611283966311576819567485827829262375940554904071561374319311136795378492200118866631794792275496781146997697447213272195184411187641723350342669937803292691057669339380903737997123217626388807584031324324042740345124140754594445628979749757593481101732287482837984292949898100182308804164229695086437916376572418341975251610765686211397957394067963817546181343806796382367374057179784997565968170512575734892503125061990751019722680743338664865314916121681373018301898542790439734455883243850750868428942557828655560565648024672145903914421715122667885255655625776076087999326985050173809926717740089296883024571025240270531160093620238098301259473114976483756245609577350747038008804530478223156089103878237389679392750198420795834139297134933125514091040352877159147752554940645903465891127843379130632147775093261984208083754520134947976420468261212173375521435182947308954901994407372078877568080659356896917424020338532550128325019460652926386680883710876531364469243074022609027851712670531593282970977586492336023380095322400674750743877038017569468045040450727471257316273138282180380276297724563855621165591561877894623241406300896782554607087395917450891881393470302825690803226408178132388367395013463494456198396513889207190564166090584976426965027310083140976908239571444164635258755991451732889815995274590960069832925422490663696991323929949054151399353494480033017785563667535695623285520343469558371223731547209844026135832067664817494958422741950696945649613570416508348837675930063414975853863238211330029402009423742937526765363395295897128065354439069923296732193593825549259852349253966486790281502188171744487310116820576867375488336577468047515069223835063703430352148424546336788667940770038173707230075376677654624523702831356528465693445473758389436829816019671899044416301022369069848427927319163613539681647812021888934682675964529033480326738285547276153957555947802308282676583073329226190314156131936760495684570816532160269524859612616001529452725105360123882656758942807653531601864259710271994731406663310314858180788411442417887812138235371564267776593050934410954803475184642729336614605710357008088119827141012520459045260270218097062483195735540863330790337457666883570376684310578908620662053696663667286250193033768284973643766965120329808745069950977777748685923307857608548459693062557098155103103566454840920671069835839753967263107180504156341063973732132080934516579630457054481601127457758794793741639916484594867046526051348599028919181003997339205857881790756877404829510614793339483289475780980090437298399460698086680887964557529823400676928855178538495494910749449893129629535633327593311622251886739762885129515845105573802303010508358885291719593322989903817209568449162336663595909973428120032406743280242745316729868775755788880440236162819230699831417670872561503421074361419990734067203898716221557690127768623511371484394318759360323291476056648047800869129446119003555914903395221148558724875341997142544898245960813409558925897158766581168107352563082410045776421637813639542910885065718091077115633972919492768287552791721450342396197192552125009192690838174309931986421460085394164438242206033992097780735796999682537492168507663537320510915162057286508764229291535733695787966362491711562645797739990766679634549181010927042387624062256188364618026420441202723412464836618515810634712953009695684592876178389994344753413029112395280373263489079933233344030340517344932111742433588128706791229391896176234508334707839822358483203131012572611526485490783945752792554929062116670632348662020481734521705636764531923733330312210357348449633242440826809055551114568547119691907688120726131258324716819443196651526323355498142592276644586783095629810808899617625260959328299702715219459858820891135937409175375509958326126774942667339380962710265133023123541574418523331285093886171095524687664752904563625458200818018873088865432415149969221670635216923383560323606324722755443108650011939589922316078932830943784543541348792910746433333246155616216274577592347876213638890506274878151036423532708569969957327614054725069527942330904426310730322051716676528050477813233097276020039872417056773790987335860277280102468403939760603290247052082749967817919664984577889003426361509593640643908928409620260541287714402297125585122769573732931049553030668911689996880033831035878994816016043066165750467647394365466799295979343739004286523606654474068889851864346534272129636946434555275749179108026596934710321976007411761690805538075095586720862107177298976445078743040890597560659477450089741392319030516294403386560570301113356285439913777054304133281211163176202886092422884732674835517639201647442072172784516576685949042265386744399733978585364459532649739921691605455786963721697539462158321010408929600999423786031770822431022007693591045308967313979489407874581311595789002106858746457270164117594299371589677809369283990577123673701630166182003648582503577718175322403098528819001755474082656008921322077288959477603251278518954558403421162681736004035319184096040324987740970810459277750584480675256977534984758775144608343394431525091396806708386894168707920759014917647893800491741181825695367280842017405836939760376835679585400943139096565320362868963272571141452015479596250126079975804161331787912118285872138692310119347192444023942673707663670560624932701325578363893843119663263016728607518034749269504963267956248674444910331121694112440294466374108650135198377329361276477710383604426231520591179018855673930993780920847065835416463812460232014929358639375628823416686111309240512100873980424802816779928432145153090667562112802471153159327312491305826676168804654245668492693347850833172401531280685979237302086006507699546458007236082976649134042562612749306758570827636915395959005856960403610041447765295075680625391754753048112396992867965512494643527024683774377792153911968540789944182978398249826742026592827139962602002880233398690158578885866121715532764918340040522806799629404013713826779375192931601828805326891162267381238783929527447428773365211185418790868163001102869556833771500400375663366834660625979206151827691696647270777476230865478032316793754631677226595073249385097333679419224546558644281165432471499204722355183646913043932293999487653469961902884039231460888604889587042354271049512455222515110996409495444685856008566187639789974623506472021707984363325557129551143909966634849210556425864735730548087180866543467947989920952612153978504959245642445997864483595641348125652220877684000295449076808245057248172424123026464382208328083346179999437542454812922507031988987470294798204299014676493526673967324570186295882397160967223235878436209130604451803951906468412857099169984914167996522386370084058660273386710087525867137413942095058697489342520169639944270297569721426880436571108615536240927195920159919404574461861963674003178515239602991655839785228285641412447320030693397122414755921660697385943599673122308502632386472948399136872652560555353229507210289973587398255893274976013168334751702574958014875567576922650602441817605137247959473254567940952942065936512361971934030480113864913103289680863220492962583963816987835000256607236091621078042599135028075383940435925680367902121367368904905876628495335093238893387539275677093362553847266050577500281853437656534954082139894830845655009147839846166857452988569641553490991962656953679577830872896134756436785351980094820428816671593759552572147564403620367232377632501890651833699604254180525296620058973076749323341211162711766865251320787767296562160075544632914105131395959496012371459515852749893538207322618784751207316957351225072680528455904142808258021602283353951930025415638049687924600248777555332311103072216918893571933614915990254336308173678604698448231218480553573785649714220973067699082273079112292889356915978139818429713269498160864699466880577684739863649522315407980199657928686202660757560359276012409011202642007346935638996717297136584245148344235299851961691514830507189709823513052140538013135509553731104819800313874572076958364950244649896153281058577213046020288822223817962061174614561879301831679568236695635703144236306405091558430581262343055140124819281546273706231893922802660449908829422790925958138419095579217518177677961840404278899391005862956255652140372621471890772085883656624173886522874089443209829734349690218895922023702008600556810667070735861022806851181189003185764987168527799286228935598952965450763402190012519865581835771667540927545597308340898375010796631297387239070369095597918942827699210276949394385200427406480293229119888239111218320586179847899678966601165617675796394604750618222588336051955049390810056891670927085111800725438001014596941832735102623453769007649843436070787385584372905299490929659443002626299616597282338233685240292574606437731230070114244689819566521849160236270150793020827143476684119163460349852659084047688353872481949334599491601804466965884228487617887288805293318191983367881288136498930803635031888499067077141284295871297362876111681936741943956994775491483800538076325319926075988171261395856867321182484353769917419918508855070009190753627292626899067784965352956207116561685499245975404523208252622032639663959845089463293074668416015263157803984445569850431624748931623862148914330195343782732858480240252245206630458618374977953347792811928745123177806592976466341733990596770578124691537358495155580075405128337619375490532531673999935361791614189570446230894343410485911450047824801785085584344539235287566711516983299580817414132861590616017279257080923827109378210834742526472005105882821955820055368058334734178858226727280553460585647312254189412614675490222160504269197271560092293025028378188495609804886067388008724708015326538117907802830753532926841680777075453475825372561899297765051059254522054873459736661723674469688140544374106481375122454666975667016906030744218510219417224945023211993844828669608345853187264523662720739824052827650919121563149894650198695003679533660021298823266548689192422366445110144243177733551244880904305615221385456740307148777216778394236456254254604899009165758990265834456532582740898275754545160034052076560710378738267434046740828369394535988082516795599823046588156939554303986701591497792263132203909776675696650062374798076778448574121958257688263914686504842687432738528323731386905369662311839067084009023360729766628304180666467997887388862010982701821777272951224203952199555540557192766230529149842974372540721752076720026580337561293092873935257004600994556168513365456790701851743559754708479495994338060973928669021732919067678920492830167585937363339908464798311050621162222282058617028975368413367335400628375665310931022752659063136337044034704510790552660653735294312871601536698491706708348554393564946665746913266236065467999822612563352365879712666850835399045228856991676185382037327174255456725351178349372204978102283061649120562975059675289299221859495823725452957384181631007754421010164268227705522769188443508387683591196823414200684226538919403959860636542525468554627834033806846062650680796350112020524151392740066334425512063267791626165469834660656311650225553556020119493596028466265325836601688709157367570535002376266576030591272996217781199688956630260700338835245742843092791305843940474185769455723779227980761956840984399407547281662614201531900388383591269102176944394356979740491862257851384143734172673180250769329805734163257300788511803790310590217412057997998831573566221659386428663156881688528870704882063606928331081221938540082902158169753243659563614890778849659948410966104939524327335034853521254888023919214154165792554561862521982577200769076131990588450128299472143256783493032162956803506681146863974441932539307287715344168519810776356646847000610792354606651330428666020827213102892688495856988468568223830684941460270042211627554043558632873983117734744252888810703811086494014649007252838156701687944458317704763316510943826306238062228750318073519545820709524268070096944157733787492685756160077226836806239038489708244834972214529200421988091325809554521828015602222674902761391311394950125804098719650641030340329886202968512207976327989924440000116149916392095137629651260284049996551893461586180379757563034587928949685434640806353424431041678622203569922287289858258893393572479352140652197540316600731174667338992575277074747975543725055272248329415154491924737352088368472530866912373358335227684706621345663200680244191061001605613031190707391185401346910460318809201546720326288962813454772645191452893215227200116078890026414922790002932200416940442005669311386356749685248636663993940314069568797333657170571041830369085501048056381543909076362653867187841540390163033884776650882998192894516303942108143836847204569196234148231444296773251449181758955225904307048778227916648848024064998273697127214107332400746910334051788842140239889632116531531191624210363055332347566393766785626079837238787242091386692282376201416776148090222864092990395440869166170412542620098260896178215845386461969043796011936062173783679613673735150108878471171530312196895503671289782060010329871260565640184267200334529569359551153266447196669609248359887736221697454205923086709935762500259936474278310124253403486661702244303285714352635897197340236581572172322370987108604414953685580262796221601826432900795137026897990406725399006415780309137407495030884176351577597526003075824981592215613969257770246233155644774812081264517369968882723637498725320100418093401849214631146431846097104331228306512942521535271457050360473693181119603343895380785791556119042321514829797463475324855495655365021935303563497939649873272304336969321343453451736127768095813869180271569510220930738278234423987274642465643827904823161043233362795718036494729367746061247596385569547342362895335522520429080833942548412505777956190493182973496730653137777720893167692155258339125989760295094827826877493218950866679165680552171349855360917254150771951553224314162243299876883949251101238724462071068674820825054356105489687518975778179333413782480721366305182143106050087779480865841435208158889863537889529996198521304899257935083003480168861712727756313866635309513480694439169531796975150855487413164484658102332782636274994023951816692640825373710139800915315542570961840049532442739599312132105428596287763713204270432335389125451199059699770183820049059782100077314613936413334259594298931339876343315126093359724781914514205361877293253042190604588365072869427670249203913801013716198992915637441462995494013971214917899799242477274689747591437044145419321470960293253235242471674098223214381193069785112275633990124020372439317449049041773718354509185942570814621467225067291686691536278051502235102791985992188620490336350922941573159088787097821618034830740179048662449891209856005023126871485435931797205952707298675328040083943399062978033385806037896618739912654968176434592472703821895653632453495055837484286578489754400124489201485084150399508800926095446949224083902692349987459034726974372266713300870681329710922675865709663962869610963779651098988194962421153390351309154947773130734937289221911981888636671198322166217027942184981530959987463500739416420232560813836974524584863389511846163910702625372043288385032101157943155321854271966431183755991207406372133125977390182294369215643554714132981032254191627172310060801420057497730615599905038508136752844226961973689367731079225046869605880314647513202564210123868518856404826669577261670682613633154019858648601424958616830473502436500605249171938278196160952177122903701456942839385945698810040333220079486681704528955181288498730667442044201307289984166969352944227395799205828241336166006531295322270311984943535937081580067221515624056535960516584720525229227948416899398309469876545140122281996180436114683800448834283694395383158677529524746315197686581436939966162602980119579530606382036793618436715961997075758095203610527301467413918883605996154583868099281484737971015106101364957505043528920357836289377756185271610878591248105701778881393458858828613808481179154430162731960426172533818573956955842625092508378530480170230112044266290974577616413135478905364829323402337148329627598291181143408938429279995003404735313055348437825771447862418030068617061324935991544348045512832092963218882596953852503862729976210786583172146911034391073193533333077403370798132395109384343100793952234455509530437547247736774910202172268715482804688889260975995813846241128203195122277656138915443343689798207859763786906758356788647553983611301515645877320835628636775987937057958568686095127861081108134877721999404202671201028214645235911120685013215905574264603982180373081682881184037575730412628551178449255914541235712941957047958895202952867405022214699138882831774343949563956789406752919319609986255812364660609269783814211712879306693271137242210334206331568983851677315304862213684388196080375160416193499240765381420082647906513228993983086516454074289850624403500414133146575979241765742549257129529227483199293691739920137769693517972274991377936471892375637796441209913681722802588738171433518022578564638269980355104522542780586642131625126490825314710008633177430622044624996629990654865137478967442455863095400875253811730619661677597188756329502948074097629448104947290646084604555745140939619207368340810059559017733786246731933710930500462971132414750165892603854247768478220978886403790531037853079473602054020506735877518113504131041155557458535055691267015920064073285611195936594357952402254341992021021926943484084723959478030680708874647053299355629961567105888350940879642986147328363546783514309859814047025738336932092333466046783265977114172993424213730176723279681450483758364170711795626789708603573279674206973276356835221310101537061129919082329104781884341064731652174958286050822248066973519101907797072085662936812851097731194588941093771306289702541539955311416874159443479611043253518550597162120040270221976992168270339127126805825672635632840043216542200584374002696989119637354559625299836779875055947746072811171822919322410922281075263811338219004455013447576976099342019932144314392060589902100887573762682477971518537195112772604994352751463664553500742480228861264680036654047298064629062474015886060513936011900437165522221621529651476524543273493272845909370965342439775056720535330344025023740287441268370381729184762727611281738106044350331577178315274045885055742025046041753324209448802692461959293171474173262806916810325983356761515769893044208588663480278445890814789623486537448098065916230293038321344797361681340395778867622540205506809409554623880723697992573068618934572108885227046813390968660650081748310501571329738843199323257754827074948432621512414317913548760035574956077045601009747620569511282339776487122704205207672577905285478458012492436697356410822157488871916897837516642267087935982768448264557305161785597713155741885780068584935600225833737971317133282659420125487832311997291360089930414234114935107859220233654094473910903250737160623767664234928675888936670487749502433225573188146216320530793588376244220146271855586697304192195985808660551764353043049627229051217003033707324637375645876549049190478596801903106901586575898559007673176793663655818297856960685136689299120536507257233029115934996262533562384832191626326703905591045624935068310022887147604806199271032973417284870458214337663667477963012427199351334665344525264002047883457209003946573895924764870861207076840438871300428253974921267100554571925498475053254845385107498815437798616528460764901539931418123497504762644003389552982705535706908843466810361690530094273017094340410514332620616586636653134904967641390682221033170565857545966960278811678366394787214861004882525748318109989337490188557245493503087929219367200656329473628566624957379549267814895156592187773037255576031121091126069448798605254182432674180068470382972626648066413436060780241598767824280175527827881388064630371689070968236460111664854164648706968335887347700450914369844713685302392410816649533320788260173164234117043994034897605494623982578343246037392618674336324357182271783169767722930907867199009962035763569451711351376503649996968246581671401967800849032707330471111101695602325773285678555871998226522410507803368894747820174773894309554759863059627048236288297739096824260230584845574695555826513428202480306721871204480067172530662494911223276814957860816205727613605071909980951212364875632410936497112444582357696121740812818158901304375265746984975974548138661004327322143972158860231312114437321871033586849508458720025373559503662516291019274660075928947707718039143024543600853293633634122963039342927286679896171613004491392881096350960040958703967290135431349659167967777044102061318067816723183386490241998719263215234111213996646441038665981594929162204642765823345154689423954742454225721707282388323422980022665223208669181890541672356724473448561539471700733177974374836726829812891378804915872996462644038136312963451077408584272157259101210099135018695997908002309224195641974724231356731129938963453856507644331997656161020806426330645617794674719207533064472845019615954340339798902138737585364636059193727549630719221742482552261939923622282138984407478784729141281362332614786830335520533472064767451481255601234368541007199907466547023041855216172914231107734515439978580358726455463464988234674480618321849277527624814767309234389333136326183238426833647219896549608367554130964683735472461720093711656905072586025950320675359666426967022527357210222785893602905406310766352343728508254456273429885387093856244537108856444291754175897151539994608365006253133052267496220367238641550279111600389586608397738757867230652748052253842469681286528175643668301502383045171085603024091416986368235650705557979137020851542953301962262440379344765009981465540510201890353528524935351988104757028020589654268430851059353884212170041024266035610347151104396398440635138283260457568459872566713784429074804358148910966051953037816241871809135164534473077339494343590430628401860312948998257748564550066957485459719247124235300716621496859382543429637866407012623838166662349626611340529287062447098997081913292015504143884224506690524902267565466568676126768149863413596832599818526809420756295714540032135863107259210518228827664938174805969306390712941581630210028127214038997676676521150985531629988423044897683274116531439231143157560708206772044683675820592832840874234812170126550681134182091601450577479757071234328595573654235833711983637898297360845161140080703217419804319110057532554405536476743137381564615181499073929364492323164228039848938922170501276077767662726551687421175356310926899732596266734548573393166874264848038538205099328784842998455178644321319965915702393135930651426351684947919420269802667299606864495096585297020286748054969382021459378120444199729977156708859380353309406683772008239256218619210910103128455553017190731728863504359547172259800918186347607947854907531116672793353530938135665909211060586105052819961644883160450793318290218035904758646311712679411015381633948686210928088883317664341208722810089867604362475887389812099082703770104985110665721150934625718891510191489132407130867529077382329032043454172603166154378259655546353997496399360498653528447866134530837292181383475302965025136121568911801910706105891889717244523529920604300483634073777716794806808490658708806883809496079958976971918295948571712921672785466904580868466315626097509587542144041858234168525868309479982202456682224862322614956129686208951819807471028426659268461116567359834214382594946814842654269539194937290157582273352292272798043985828469412453258891443806841313211388660535496141032214752631542388538520437383704954374946240055114707817967193271190339001767608499179464154394053069943897237060886876846333884606101458306750856568784995981701382705036794304417644913644367467902248026632175515156057811405767221714358189808866108720594008977159602982087536590618621089451043230697940812124957452409458407352533996504211669530800484226730149646696810554440549698674323828825114173022718053585341658464806855252848861269117946420238912291963184475899021223904079299025905406593967781842694090599010714320126254181184773003531940830070684184346432582729718160609744239568363145663925312576177904225179594695668437284295840609469624369930541458962831144188919428235708993332323269763989010888511970007160192032968785939465811445291095001357439302126261984010755378854339137657684204067751539339404833920231253072597880887954264696937345529780645136774547634728350492179858489292800158315742306450982787426023625138293329298171660359848195927652540752975565045905616794964517022789876021574825638243110876678372818980230167806030617204809172420773220621842757788899987152251320535315264543001076219798862663833349533687656458358375045572260993944485373471939162262951715845998695557103285170369769473194079298395181844567661207171295430200171401768525440792980768817157526100648189304102938842368025730291809673907453997691649579830949011718823910875053572908884575679678590737132968411013518589356794953845024121923444735806903872312507772557585709645568164869390758426750768273905315275717443766364620249916862814799898022793800972427411919524749790440409841599866390507412004337672419840753997245203688641681394371995396459508341369263125912451352726047414346933019387828441557650294658976163467074239425405044631049334315481381564787120854062336117237930860283734682345304244986996910914529951964366396773429374357511285280332229933269771153391288434181926053514341535304593853479636101742140963107204889156153803068189228581271642375425057633892610234116398904582485943684218509676658261525933686270607345949794217957807472535471142380533315305036425335211768180944643050329328533548391384431238754815067284436352835709903460584943640243903753992694368084852257994944715560968208897967110698205130351448208566759851776801788525917752608348634177539165777113893901732461265199588393570223538937879185912316628165062906554792577900148981733662199449665519175788239657938244711719229775391498579567086423346521170696032427924099089120275681434935342170505195120182652829463012166933425258539223816121235447504657251238979786467492844696583122667740520099105396150360756331027630408936874978792809711901950347587377594079709003399463736604387493775452412317116604529897423157273685307304359554302306311982888663544334375751549364500113138023339254282258334004057461780587415323292084567336127866385508052988236728393267322928546049086137028801595001658025200919534148735349648011365067096399508652565474624130184745886037113749745663801905374478430367334580156247846318173101085669706026708161449313693600488621080811707339556316805541876867035173039199218383806285741510245005534643279419731299995375234852324479927584839590267417741225993861542374265705499516428727850439856811294710862366200788961956596022318315998115672106818389016888680595938803422268378797569849641035641898338690103663642607294856872705815139244456709519312017810828118833096465199831998489398409556398223220293781001812272876445324623945948236398045529516180190357864164978903613492391217683346381236076184255508133343335196199644869778380545591097026314443098220300204179346057080899479174870142018153334833505978717525153099453408862043925031924080563012848357715524857917291478913792118082491078068963919760313827152509291896683638057100395462614605890343793760130629231306942794673864992527154173482835002867205718945186152279852968511117406897802041796427408201598137999389441520760586876524799269132438661652365031639729864901408822240755656417625426635495320370000550568069236447586318055901351171159756357540408566526358952779131914712342296457459752023617971789621294338187704923869469985263883083723218306836552395947297233210206869757559720512951978120241221495128551935795499494517714608392874341076926330299486090711129252787068730893531250832663316356464250558554465054922626799405500202851914595133300706859427018376684922187332072416423190881349181474044546658728896224114312694573196369640561805768697379266514039279118301024703101910447287916075687879491163950763645818614216796918823295132134099618635633020845703217788846426770387132926570905238100981011263822550025638504704536943209983287365826565041700824903725521351763468953009766829849554151630198065491195738476656124774611931036812217041154590960743790080470476060774544634951460254077058050091959788862129057435786316070784071559331724829076780802225378610367608719906432386878969260682609327705364492328697882244685093925995063673928257430778577120292260026711210935364769537066572874990255333988132054759463512180187155085137255692460558798213510083907736993211077115123061760049403363930756130318150004662258329046215797773884868269202618999535398831325035944882136292830503896286701458595206411467334668731285038537059238017441180746526666629829431731616462020416942828616320050054507597466585759146196511304157827563384187766094093887540448405056921479904146964201384472353585569816039495263599268023963407213462148439835697987088410644890641948216582142814178707032003456030397202250608115553112518686230165917878728975489465819945901206254383778589739729150490134833562036920320275641859451665878145752860919126179007185534881020644447221340205836531314428482792486796523732212313385043150950476423375924492949341084708335269899080328582519568298305881019633216416356918521295207733786965652441435356942999589145809607333556013817487640470322531752337488232094396323083914686267351615924152789846989814431628015249224991845997054867526064218218637440168837125926863342034242772539275642231412690324769657523856110771941171421151032424727494938894288541842436336710143235815797022854302681351385347092809619810772389433158785176504584607764211170015877137625182910451896780181721274644182429417808501810310391075268045270767379831569217894504273353081387182739287314123657777600248410705193430351613126660963593386210028175167565306476676074021271162346873017227851028171819729784299901476540609964989153033459631868646472528881168826746671604781802371653386484277906089741178228110684915218034088825686056621987390945365359240539171661132854301890437138133635859624533335324260689907127597955096745303168354026025652093462726287353740196875140612721212287474941653894974593963511062721665414881090867348380939981753990535401403110348065840901875994402774410018049980186605046018377143405590217045625587026338621494744381374618780067481845273431259171430063536540477474395541552119993986466920008644062094595217532296531389198365594028894543342614119581665071703936667366026252974067532042281334805334565138795639209737543575007282098947718264472172121489723253207787537156682059707035838672033490733094617487317667231615154819454843437546742160058077483698673986672709975922044513315474870699869938760267461088885651548710026983478967016650533599160448337593154890976141582424472879433235565969363138095425706856688885553457447234027915546515063327921824837310973852215299588951215385384790837405194859818711836390129299384122354324561926638150438745505820869053649874225369644276697979531018427153910032896858743780575973112345070261950831380090248660532316487450831871110954274450549769140238670038423224824090067345096500189539475805825627469019703214168860103799952701931541434105335627888992448822220366314452837400302434328646749191458952999038274610459204297718913222936831483989226413561244195710952950598913114758568613861009603867551376125526647691256553039964197061618224234453999134609326930230600359691259065416170813903641181503012913385701934618625978083889987804042068151308624876206850820185093014003783337788534371894748706871518554880209363939163653039211827778244183915999400542793230070865597706553811510892132690769359075828806201135262042007585717440398981846047677005485270354947013391025935520843769756332143003270898971425145661879596142981400581495656258499590896243388708105970305998112729092402195807855194273584697783650042637460025168091723031872445234656952444299886585516753224740692231503041615245840425385053987095542913713951396316454647550121137793454602176729798958245034233975049601846421882681280129734932283818019591071632277962168455238924093149110028714584844885208791230436836185196801371708838204775261793089681552860034747030703947669377215275627416222731292646289038390531434425123081885105456338865990921050661132746924251339559887698021476089008600441927959228884186212205520652626573194038729701155400787007627412054545108705877335059342969617745855506693840349146944643265615336072157491287838187183252475247347449900415650395171362508579762911423572917482228366468041959436677228212891549986502457123858065643495243714272489535472190879961030537954037631227428275775220357069454293586560604180926232725763287579803905540528480859542670550007457096379964981535918566119423470786811502637374489011304863446638893994581974092550372491034534012245471676898315599554655991637868559544203646244276422276387561723421207965377098668019329746678315545822897209977593904283268129252339278403816593837065507693906606173299303809462898930054388167585638863056285234914810823453836239648333140287224149158905529391607278921375079982537722442098875953856182474404320796982005309563013472859467938060063432647334139023403705231315165055586431817451804822663843480896742973400772620682205385171018267120684631293394754025716633816413907684175252175035423873249443488409678688234198217221708954313719176975179216758346077973551794271817596649827445845151450232143062523689166111617321183685563886042434394360856525039203026724606149820430612307505882096209109993424929927829634159172193260613356627089976858952146062443261586985301747405626488211938014813729795844247879690355197783295484234789054189182159649042005739953866463398915673838895907085558189853842254300158780157434687279409125214537196104325538775899021064866011343067342160323292432515194622783929865640519311096435210000693871343254074833763934028288175223406766817395912589541716864175933056661935895311787971465007066187616840384751272205235506178365830250345040362225933021847971507653169339324069478856999083554835559597922463332576365094549273836644262263256826157218332850067307715723127721226874055583161165024246013800893928144490958804231579821042826415755131922994902348395933428469875575734834426016135812850860378192277461488178278399660964582595771520189673741512719581516239377395900349720413284086452301121141624117844687252161689513073296962600705044903746372616367788465556974788100006127088032504310974835221280709648842754194410307882346258139639377855362332057310484026189009668178197364280373900401133503737788211647746864553836775391698615536168772083054151716786660717700420821052290278013061463591400173169726106304384907991977808296776959673440212916243449027346220308114558772901661205600207252540796031684349863401842671898635132596796655394514483732540599829972577976544119726307163740799139930978381245240324240168769419674796177149576735469845104001026778948957964344334626422165430860360239477897155094752877884050722586940221851486277634101400140363041160243321498762501374371135263001088075071915980885225517246167442753485497611027660190234572721293242753367991649809249813146120777876905893874784145174164912854775564688696887626578510562916393853983769384519524015418700148953625570418627832485438356810144265156463895539792537670785859995888067300341491518302215615711500493842987735861898880911482993603183804392943095022330441673308568602577595261107817676857186125953422423719251258683478312662010239879273655122941377194471326016197883091164913325222877730364979583908380473492889418602396960644758140783014885033347225752934725367003226688811380364873553455178291253636949579749651382957879801942531955243371644536472081950033198740714771724206237400603750317948768510177359754231017571999325068817544957515447806937534033184475014666154213004829827184810010408510081666089243134444786521987102910993204106193993547465818746574101670170772771769856745794080975148082650860443943704087793440951800052847843995810396820205814234407178582121857193635578035111051684596906245541378187810712694764489981647457040108605258469077917390864785314552651301122644677041255985975403076292126707666845782363636312622774638283431285155650987988290285384089611794894963235759395595008396555800848055107018515505850195568691976616956286620172306587170839213772048312107673687021857106232504698663808171647133656124882046268983159939109825225758240835544193270320266067050664653403632702858088960536705489778441749468125357751836340258048215346778046029101857927808944059792451920550870715912809632525994095246265991256934007887604632479609166607739796746265146176572830671993366281538241897799012336471326697945889602827503879937742356547040661010075544529131178834278273382076139602321243472897348616432371862274109480210093797005267213067582158483075130789918399636374153717454233127381812640684134343059563977530130181954911009860520721553208811647675975681205170649087093107269207733925237973331719912127622443423424557724517816614597844625430859047986420835532986513286130124797152135062484466019107448661001308260985017578812438640015603572896374679542395117805876021207045473986260310473454318583005441622027177178993364148670730766884031758243140890938030790664111595758910534870879809752379384549319346968692150151881488247534185474292587636354640204802689245037097805482850133318291609269566862188562568246897225673237915550742689819909887963440860478525561532311683347712787334016243878858787712514728534184740464766358609280749027817517852088290425853049548865088826705221740741802332250665915956743787948302811191802582358356943373699060476721406926829400422670240103016862072847656182384127170226660789485282127852052306917972547476629780141689052723151933292472469655741917768582090649378159213682865238883259579884490034520567939013688762770345833099182158793440894358533365188758375583150718105805139601653043356105914056838119985629092042330032819636366690021633557011360535393267604462113373822154229827296673767987188080598848735010774211662444563608329200791735377305154466181999208871418634040428488940763599646214033326100855768134045533651425473148341742228218388028272657208754333391865772581340460808797136565074744648791971785784203919122660717157160704070840254811004302673593211452875661342171733374748883028902452326808829724713628685928925795828414275105090204607979676756652169105014281560195623219050153792929694755940773413584800416706207845284972655264681023299798085930014899905640942916240346114084827427735387524674358603140815368486746116357221795789918711073531885061966741008829225657636381872997293923639499568688497995677564677254428064289153755475905222456554217203094773417956068703128610214745537799354106836572240843668132370280528532075692302424773974034492695497187473712803461720875515127476645922785310095293879063786783146718461804859227774771347169402031590810997554678536936344578122126951602767572714076511076411703886593825079226139748214683037832608525013153551085079985631894500267757322228935456029268491493124795378738535956661859593293640249404185923270160933119578746322049799673985140863556287674622424942941968458449254284034583395209034258710079522796063350717605498695669180935380169352902458052653999354838449957693992488768706920967843149985737648210411893288162599760689859859565781081715830747688035870086374671349578829077630041121524662905725950079354729791909737173740904286382543133258348611600719974134417655725730984428083846064687806319408360468869543369514008203491756534650379031878577265681488646000986956144199532274668264060688301740441558863366571780309272525724694246653865473189932588052870725878242134838720094876791281523981652287210375669061744899943666080828300310941895766292210789142909672675996013944849699250368155997445336744714201880808435139719037470997754852072626113422198909908457080738847127350004582171192785748875093556869098080899460753435062951515556265951811920584110951384289310286534932586587740218864490172103635899532724432582004591280080968671942363005015906143456035500206684645677401809983097035972475515427946154189492954736887082179556331604898931995571779917596273786126235657673814702536041952093241957165274748378783094785418782178760966132773375397898995572252383860809594275654853929901048061172367669345079376033697221529936269297032185580274804664029838859740704388219171282670440739389552023486046026284507641412723944825776216767311471353425751432066402151813392448577466234593128291018906597644555206841443589775214399248761779702237492270994052033371849669989614628558010116843370404381975542607756685709178313550745345134303410658267576521437600237904480996521798249344170213400894810578165394787402095337911456718779677265053768771191362932196973589574518505654052182016233605953918898819610116582956254275146130965733863229585599148559655250174845094823363574843456532509051000804142399609730019205081422930825094194896152465736630270972222988055865584435675364370664588863152223798193925986983140448090380377065210580354238784968089941384916349571659118067611897271457691955820262537414960932937166904463838253866814481295172801262141870947537372550264953903484501176821480005170721122531764930895538314122374592893313370614309104519605560148841893384926465330835075621906587674593990342981428079554005944398991868225792576794670849029535894145571585054688638497603444673738747414482621818208480040050008763375297281667420588458236124409577992173497614284519796903347448837180356067350191468267230573462872023855362524176586649158430961139981988610837332334522230058709295295942606641082610855133731354185329349891626984268238893987375865974679466885835684916424519672575675305205951903298859349770544557212015980322759373532403621511100900203321148282146334136680714434587004969672567240457019817297973622250909316193848233495197495347125752109392880631521981124857295335366495054833556970108842860233485478677383433689569263719061806034499392408092843287504638303858325973905100545236693341492227806770697935094633308266435242898798810155369039974462107771249261015444448254276020237969683657804575983413355782585416369155161552252372610195360788072682991451258042567134203077091022165530525383005716989582673603412756496562242293515112223162247243108222491586702183597854110003958478962959207092493526257838856136654367279661046417262220275123064361484088221675568752079819503419787880059832924613000795593099087524683420969839164417366765933322663966483967261753843580108719460306368948534236027179802770678379050142185035293236429532338767405130879150611998540167845521819606827386166754230600646183032007097340624266980400306129661097158089916874962377627034459810417202945415078787974755097659072955769462667493863984354215157278598625528544971519829849972022708281166764933188440114323109029032109377705832595181927223663718042425029935358933979348914009983817512091200986933726937611671546526594013727901200341163127045265860892452644887835857006773183309985743772659462480697218243995761116976605258609437706032123303307748026251192191150369939425032843659122633439439163556777196334207274345834756171832131614363321393057725423456665201976179177095872964086353050749856689986599881067287912333990640896636888607617020477101826802173962538434696285111057938454973449352888968084574092305898973652736451843385473816237897700796257254107404926281243555196975618309188676974522519541057503122681875831895597595629970260745472767282011309559307797428496659599991160043604507176289664265466988660676097142294927136207423435184289305121017042465166841980048557315095940676157888458586189814546589082989902817182156302855819391301506942522502979439912267822234990885414418676406389448894333318660615850524239802963819392168382696612810855542615534508152135336778809846888073980867859165221756322021395583158687866420025307314591129981405127510590832202924200101805136457634875293033696716910744856559453730233513049181259464446842767716414241192809434338295824108925896236047653649492110123147663866902242034656533698023494749702301042307135880919807316989410820001156928156275782105160699314767910778874516375557912321746454676070963586888178737082163445566532581071856919743225748927546901942541257682444412494054603012683209788616562252651330424516024836798935396329716239214256718505759034742612482407385594094019354063546020008024528049427100010309237822807395508709275968728797576739959789421589792012080690750684643703213901189678324853277162975367263559109923434346892272211973333850744103602057310165981319490639101435301743587849272215629341160587524530273082191500841828167230670861575917627959747318040058225167445080385743767816160516553536661009117717682090737145067536961918593434325609709769044342676740507459793847696464209558781428503107953952447095465930921800859083064547733467208264128518808341967028106909919302215313782782034994461941696671051631118639805542392859273657583577836158817305727014088244842426758558383719123573301806662993273274840072991289023342539874481346621638410045545148582771046902768068828839761741046597907448078665513812137330600436576699675381797204627580110268408163695554224633234969305257931186593337415795727042719471189071632413217581352188712397734110540642050834095560047645357941479920108934332789488580275257260735986079756426858773590935377299826215106527542009431009969885307312240863533279575383366004302391875887598632958041850632488424312954891407845996951408022628682729592698414794207911910778453540690792389476235965851487135044327774303359650999017141687321375931278430481497970834042731919274196335730606303517823394425927912204398564634297631668298594344136859697313175065912888278448736546688862108299162124038333702487386012897422980347447442708538461559258308786972767072509598697437490053009874364907326655957596787371021852368036471701680659277448654849638719655579153892697565600580680382990951996742541471369313175771990689337249900724371907256880180766150183519988343630631862664143383166043810874210594034069746007528948950709083855146352605015703574676211245359123275889614102602771305544565983054756604520050308448612669329456969619842360015159508415746900716316883265376812149829757246456479620602364002155597948387673657602365093201266424820921217978244795405684956930946323772454515218959124664153531348031692475316956241290101337090704747191411287423111711364563879287786759187110193063244779270866074862333207303786831916888230853948393572220617354339013054846475183001591424433581053234302061984288227133321878355016806358723040184735128483133332886340886450511845601896900242657751864112073821310978106514705529782464210535495623309669338343499847244808942212167085742417582038205454193514245319361415985209640002579294971266997058857001835063346525575082077830385315975613339132201183251392016894695529965085463298604171101171600373923005840135307842475512607833496985324794547810765059406000308224111922208770700912770304233084278299806591232423997858944400505521032522300929919926997595462720885594190674312167109059246781366062442379349543730963322534843153004583037631870524855510033349890739277153917202918428701744482957445791651681157562106761252346330341598915457088791920863796135861335633473961948342556007065963322106104416416823868805731634005975881534042155529520812204536903212277635215656126170822404364538045982623986894679150623861343028428807653496362376759360384177413306265859529320363147751809281880519521730182293153797966743644990337419434860844325650398187734190119855852380124070557787534873496954744911260821424907387435922816914506874420459282275895309042427221046740381774002790898596111898332672369608339109594032719105060560119259945556067999846842900505948510215906867359030348303438563331753552862465776148745145629197856777095312759496703071835261075456750944001532939151237424653638373842387835718638641123895414945309039305172895793311584399469834747717896978676605950628617519239305636076972150772090016560592568065615740490980035771258691565607675971456152966233068030637149572337547249377436018847051485060533745133999420380580998710244798633607442569631729034503098875669389645433024389820575615082119081394497889947128717493160117883468141894593928832762108336960398991995170488243621579780339500023599950627143594808979810499794151806817885844546024980141471986607719647792463018439106306514339018213945645403571684609588219691039135680380025583196788528968834077693456105903386681606074263089750859505455974237227485379851418755218762327703574582281805135766277981697350402033759354356923753111652746774899883803766950947118494371903070208429000491328268596034784414670980334366026255565263348184097260545683137095938025518496548265538790205529311276469619866761903334084995459486810595967281776392968438683415084878092721136751970104247326673686990978416738610860248787953960933743820113395781103979219562881151492899222966161045273475856289266907060529187983200840759631787397993032004308101065372908728205582604875756925368345854199493416771597160327319921575106849174376560787641446682678502702484348243517744500838914925870028502901211524522072902211545303160676411607222595197408319023604716227654119225019740794875568190467505470770189313684463273725389540597833320449421952256531886796072664109821957631097213403230034630148152900552468530226454194310630282283007774465766969005260623340382103351765596710761920910775202225828572187297661185194965579618322566908074095573452887180247552021316347665779667089355226919774683861368970022015151075143736204212534405201085898620165656552428289723685875337883291297730926654905140864314534492498764072380278160850380200323055752440856211389751837682050585652621514797316156175824266221464255816949112888660170204232638396433327361265695076480056434717481396937989719384753308459407432919057333079555436846599995494736674768943934426282637351082360937726905673260647294268715992079053958417780551982160652363984826032379421733865058788537241680063236094367643254574852338753018733261820661088949544899025356396151270642499425785035587562435796094303641585938725161670358214327369928974129153222447217012986828355131471278342304917032545594462444186913171770014468001181592644549836065165986581053115931917817212307827480547704137780975906541267321988143781143087462628058614466478122044901430085681287075380141598388428236346801136174076553356765742536438332907176617368795340899832613366228011760431298673256714026329856062963843355615861087647730444535620231655301387323613545482169461228857199380464880125962057003144013832575622303406080323700516079636062406740695112821413891518728522752578050615395060949260659385628882420187795538301279211978026977081155687837873425075931071292997641934176952246112941015163780940961430161322508386334504426069824168411398558943583692024761763648961604427340181951230891540073435603455360241072593701745282410798464556032349653772994579801578614489431025504905547938171677425841033653804116399015821398560441382009366913506002284497255755365980049470665613731557129095312748932523085606496525117774328778922768539291345994298605320504317692528759814746172185572658323214196340101885197288378003958436032309413569341301383790682171207488363604075920201709878497537572153181270124166404612859992758927101689100063069410878027498108904502067711504163572151266989948114870142258143996783828048122451350399469603192205766758298057657159448270034546937204233782743497509302468005929039384705651765837736034411871077926196515315930744467385217576795251763194882188327702551619120253305982283393098039930286721945527997098564851580551812880992775519276856955155015824836459035928460994689602617259630270045265662580371206435172603883109283146308335756431328413771195300783671127846070923835786265876726964694940315076399230823173807277694929509032304508652428819346464315334877634399863675520804998013667476195798337145175740210130791417103542079138200088602646146797500943086028446842456693458369196210044251090971245825293710081287067729303158275656288391698723394801490893420494475653098157551340159340332321705619969813535521337193608008465950030997865843516258151581462112860171198024166214543806013481216308531322161842118638956482605505151607305703968126455055559466236025038944945219557127294339691263586986233687580516533571323751025918701674674994566636342101172442318300832840505541019435292898457373042286667428450462089412650592673805106317215074189143419469199987219552188230212181698194141199241168369096921953282761676502087506390007850990035919995637164980464513103722360372411820071411679083800381017925445289846987892280997854291386032685369708788439616772183972506084365922936919882477913510027960841227282133235285113925965355333380612792091070833432018049170742244262458679529353114419617411222371108129478616828029986058852753525634317071561510563377728502200600942280945091075426205918278627637258202918514027261856660031017542092546591376935197516045654994887492827520037643900432344075579407100204202832029181336385205196747179191435672641434461589960492277011075380118302126994936083799883445348445473557937321681567488626555032073709816605685760705130920492339957822193470204857428822966987018364053519664303528235680262256098496704727393996873318564743513770455133326207151031350315923984179253362245077160545414781519894247220697805893139867021671803560547781943228710847932214747890969093933835034070325517515436953888228769085104200111776955237219989901214945994948878802368365241872237428555487827716841061476625523530431921553360843046625274494111866647013132872251676006177924199024541884087056767894956005220680357096728673150535205629342066377556724340302588609508764186317887276256102797559384972617616125430984233445131367585992507224181033427720271021476178852965148943968496268576285295618360358929404434412229073852788768668686757650554126640848706265250981999693943700612638932564289869103752565440043580747485818270096706250436888264760003729937852545458971694151189124546516242216760256864701659667768323955633826755821590996166266503733571033591451487933678263606394017953932348982612777234067902240117765309788294973180823631388671039057941994189226999602918312310573701471830541569630310528987031316023000457031553146362636417589458679394518326174063951411737918700791292706593988660660100004200872922789726198637721214699544180565326188529889020404248539730604608475161699424864506957773481345955077764980190246655703823310400681055704712564892377785388437440271242079433709472808388648728380005790293547452701513974452786458423410457536081553501623663835133019085288562424463467258972534231234465486546535114902976201660206022334228802854463206236957499366897615668721571110167168036561368618182862618047538490197365580640730307842071229303042727757667488169833640776569787183863551944239801223612779546885381872633534692041129693526430583767569098128753669661261026767837993908948364490120018098843589925259552511382110973695830583275555956037896392591006402201034134330825997503047880806092799826756652249803812556120261124867201713487651248496835712141819287610879158403672870996655355162294856963950199037687293663876186714074358644818985773784395998721535464124475943228913106882180822259904004626005433440182570134724495925750283705329454073332190408489632151562491479691042856430837777281415081059339867494416155511351941196439040355707311890234128872304577757916360302357431612628281106387354191365002474886597385815051114567190511907516474139165684828811601427931941420844731527987270585996740369074108196590071010289941027399254286590292454051656069127748185086227538642513334221483494096767489426362021381464300291315243694562504951984149495613276072540998939022540951633833091629735994736725003742413813020827909440473461101023978529123139828085256702851270354947453661934549426423100391986305204112929106468786525820740042366308316671097377305087038214120108455433209751581643187589995586984458458380135246415430444202204807202409521119653501510049591034395082633373676781612720656534930233705315666084721315751240577647191310876068002509096646656709511254680814231715495246884779053534502703203923168865753029024811824193118167986636167963764987461259401838949789984132099958902473543183171532968091308832937153311244387967100176441315004999788642688417060817469785360087068252027704668202204549615695791123057756643360973877330290138597223920159599972336556174197893671233866696490187756946438285909348318978757140567779991366629546579746047948035983301776931109670525489167793104968270549161607245646987358630688274550881535527529056406411785042862062410773474245266422402573649914730579303290092816667999346850733219997466977350889471837607291092346037645737166213092926764429417936564780008444172206964688381146031487089465409077983818676494946053946919890863075678536310607417395344832048089849340902050151761916987737198873755974846240423458306449432103774350924463297940113221111113450985777158490745321145084326875055051463232957995504882145694868594408013348669513250296159816688884684280072228944555932472540638498140927142122427980071998715983960276329070632851907529959687631942672708776220106102665763163925994772032391222516408890669202228922277764649707553685234518633778329316752947029710881468168846737929384931532710664405471174432827947151658770297430740367746992669250662323156976256623860529965111795346496358648370196342167634631870996285320805793592321987572280038849077355371610669397127484876845772005653318123125783571933692418042634068310446650851687370649411780251365153145790764148748796476085337784787605032052567487138470795326290703583212303702886020353386645430831053939481999251144123598084814762164448297989442608711017818267641085678794313529013876416127470646789362265120885000012789861939427017471611876402860639069119433812429961233590094733820897789733473085354036211961652484967013013032575944531859043913878117575608800329132387116076928677773411789284965391625041796537496186674276948762835678818178923651908103976557435155628857215704612789823088995366660175874627295662482411103753293341384899527464583552739762147974467151391778438228315365231366377468579251102810942656843984203719761679640900259161273642611655127605050328862077760369769461835464556630620707064975854936846408387547972032018962629152703847962301197302961686778008191714899174837032293615360391710463807352212316510370112471735269210605436148599044841163497980544570210833851024666748964699219733823796288204052339760236615525937154799590593927596655841496175687558707512088499289568973091405493953179829399764215036006106986685933740507716557505524468203358226804185843987285616169141148656306537489763785429765477657017074693204096588647284174958366178451332356971349995062120038046953932113368991462483133436472166618635934209939343934458108438616116401459822178346530074794912122736093810179700519161097073257602507551969286226021828677378471805295401294904386472707979030227663488381354588853355580892243808819047820632077670146303984290393902831396126106645254588825864394590189014008050452783926417641189822745607263394023999253592287294554200771949020262963611608767695923178376442688433919005804392883341575116282625146198415534508925008400840819623849416284884763260194149945603958856775409462641821651257908405979396303138701576213630195622464758428099093854229763281106348742901933703062408060280816202437853733507757044845546257806428816891583685019359401217031182223353581047817524912245540230899400719407050750927390086524445729643548549376854875984563384563540643182380478835595109475563970863233738970931499923740114007348394862494283723467166956022610093627324519185999359977461116999841842481933632710655503332917743024166922997169135179347985195450567132924856155228139723819027461881997409423773209209168401323510508501201513506535104965583304771255531149851238174811799641045376910971237884924235467247886841029156400247263590375547621712988267087251232357887326844625960287851913863584730499405258922787947319148119407748986206835695051105802340548795061080899258317868860817417926109180584475483782898813722503433102764240437235279392419269324318155619653500213663158710246434140230021746775461064475769968508378525667091363595026841266090591785080603562075280401213209338104683333644329628449193683114919268394785517409820248673293644104585036479674067150642572841047695280844105632690672900236125342720892788456293237441984049494577773911213439040543307304947433849783182724457334937774673332083080204254676908956716819163978005487131861013505288617412298000807771336243512782003687650488106585954014122046756980759077946759655993702936804538889529319750293933349992783683765526181176337561227505911311322713963133314356757689264899441283408095372865730551114261123710748195060422815780970518424468869600048641400869304977737195566227714429212085279144183651093046392361233718041963628608639438692889025125255258081746085080399726312694690288005170596508214862628591821586872744961560552073296426606559056231459568519188464935533703568511949729518863222310050308935310715167817658525423306709322874032663328318296757477740758444412909161889836816115096435376176904907237274079758409563994741214270635210808327005158114160836675603101401390631594903266797310833544248487754074338415569333950537838161003743899863237032254744921537233396727406539113808297525212906718427990645144276633792155686343631839281333813960810985168828293911659134920605894603687267674019038926377579590121726956456428167814530541454916319783767969578013241749989525783208845407487221382208897196177433122665200267369586553959374844241766574401852926050131953195241765701087053584907431283481104321398800324260804076173470528553712531815158900694476936378298966854146121686910124669435547702438950289160724742068848635810753721376938664398209004606122140943302097715768267310621237765247621634444335861981813922115975277282723783863382874705541086560235522419094605261249565885121417071498286024035320680198580511455148397457746343474363753098531282785759515604062316656172629368143608693106018545227716908438451036722166183858031011486353149795003163959159350813865859202308281219122272198660331495288203512590754492324645392131761768327870997795351755295301853577813172583230453259061538975584925194783702493201170662942522809705282769462553912193009698227752177389490537983472127439913172886233243171350747180192817669263381914759795372876253932223188044620384361504099601752068488131984286844838471391308341725241310032788988100837086580588393968397648941854337373508336363101710312015543247661141934595982799344454946896151476449300094393927102471958612579583223215191954586316017120634219251922545093688448583487061887748322410811162313729545641930431359904206497467303576461588455641068068974529800964058904586566017489051496037572407300739290134212168079425171747385770430894117623205779357725066100303674699501086761589491936721623317949095402028894073165989699867946385046534981682894286011687708802322522868144030027477383190013121177255873283671306681116827466795806582147943162739987009925374267321549213946343484543273571275243407982837033822500109307958526146247608667876449932344651926612746009428902671648728800451362781759554895487312496324168288900571014099559192732229718297035549394013594630918664672711268095376548943488129623333391353036197597820099721248693578576151238481509417535446830848326640238480623906390019992929514123903778626569607558739763328234644815212117255871609872841769120733731463364639517609636134497314919176955653171322379091594067539240145359094821809082709078490743325507897753732849136569517281232087816939355360357899846874954234720396221528306853711854706113038754053874412644051472918132203583989278582787965657316767584965368010066734775619653663507413341376364238727323662371971910605362346445848989807404177677443900687662112518606789184194191430316576570738238344496914043819547584298115750533858476338242528657194750596870594079739033221748369389648667139882401762898963455532502669398554237572731504857577976101488901857304893878667727106266602260641015808073703146531125217050157239175571875620323115203536266719875767473344395978459005137400100548721240122411640245658685669051898134962417150139210906687723160609039909876055144115594025694425160620198130128889077757323216010093653592905361096207019670867592796781555623113715802134280381203404424708523565712765737921441661363881906554356527543928190974343268553196022477160949167461158078314363198267858779601395610367961695861908797861608160527990948948594335669726404351045335548307639114275450015818567546059621759030730177800607703902595771505931530593360445694585836094683434379534750638228460204443752203577087019352333438996500427249935991357013566330018274510201965229668636816097407308776097647825729968043620762679042431109203069025085543056540990261174249903083256540675152441713768484862669382447153879284121445792000406436124124866476116953547469275213339765994354012308683076549524387772811731763303091921129895658793733777958531293635341167739652067708310064585066462885419944464551567284954363742227558269427847152545115065525439681175963304566349787250077694572068731614441713958227135501499382802965387803052645537885547941651377205842843894824923789934507219753780320210793670107839598281893321884350793770418204246490197889228536455472782014713423934306015723214278059014536799575101468120367105166144141826436752097556482766149867420696721873586310992587026003520732148348289138838299718721667236204897007126074839468933752252921692281145416761108670408414993134119209765939562811518007463746481651684919497957994229648961883892296584424696895043224425751559242395256568267985552020620825852549951773049319431911824851558561520986004696619549119470537364265062613585844811099531593248902086848675662217239038907463707282959306661153628122142504967422324169443423228331659021353675128405309669449133689138632469883472673358868037707823545608356683555612427188988657787853888360896267056820560882011776148040324915341989102584357547959763906092687959762983292677001490492247019541807149779330700209311585450499702023759869793067564119964397257882236643102003604138314497356193076596770971742449310302211837966303428449246812107688653430960392513334688093878219386858925753347210573951689446870605483999204714465650996814760031532310985707001479455532050160705886048691085977786075230876112664032338985674535950368672969823950350909533822012642474264445453329987698287765291584180541383435209553183965610076029804361715498121945172072511596146457150827474482044495306867435690407272150309293698335968519464625511917337047069258903065387995290617790664472881731673603975934085863066041746778798832845853852999390053425496182371648252971231417940944086765623204152823266392182392007625815151880621871717153333950407060811820784303279202351872483773750441346517334899677245631225974613627234889632662251109142295578094267324585892971965730165176252322480459205825596476467726260035521556008544710056217857662564929938604316842222927268035989803931555639029342889490857299019581963356334707917399039045852638221305138419372606906373193886042869316714296747077712207881726701834036144577053401329727719078124142293132853377189618776882895047915319729972487263491553016821324972136020458960083822541770287990367487940706590186270762260701365335246681297850631648747686233840822815576919777817909148894566699838084840550094176247388534089372384688856470460266258132508309926494577416762585184761259998522830459037602809196420235684015678328338705579908436761125111449828322427247092304121720528889449514819611397931085903551801649048050623716367255306895139471805093782864573482151440946426994467431608739509298095711335021705375974428331148954133987480546754217613351150150347442331658562747548262028443605847208993387007574983308586246370664821662083231193221103547740151016390425302926652983420503912486396442767132736184764413150790445209122804839885588972866912888863549875766007009255276772438343138414302120552451781155982837997886061300785074625404331931732306755736199702897366868378233011013030266699936399874351696391246769911229019204143877391850044521000706425693304333294003297069991676973945071263769415751987992661172323150788165801323770899213095309222970243749120428798835806241718993593966965886611105531250952565152817407497914440595993485385952437139705672573901022025707575751692937199874186874404386541508775047710455241775624465612256928438882981155322646836794437873203435110369904544666888070406536995435365076296180519047495474452199528861486448867274625422101510082751412387447254820143844336626696232836580547355375290360640019560488707546694642432097304837037608919914472855457162510448003023180295930947741747536110203733104306928697148634711298230798538990138390232140893781732068557001531312225854514060474066285446829938525072143560883302647401301502644136989138595898190261280516447984703181333081810598438786972374598106799958491016809967264666565732736074190306668852009581499910709907811047088984261717674179716179078771045875986780558980591613049700704963979608749056940881216593992037622960593989662174357494263539547372633177473931888341394461473890519235137404700023647001978658397757338958681923522085564300911522977474316268800748060917579531491921622747655663305751574780759668434039726875354383221316803326090024455357795117171185384617264336911185695673267167449133440710346940028313263188117672161691890807038921194764768227000823091633217935282143498258745997860104453640652764655775422416101310635807561391162349129276297171553642445008929543671770908969126673633969869569295268461878557551465287934855831141631346065715147605163178932812956649833650067431328057394051934353343058523689828345145835168424514626235039529959418856039655385043453928716891560843222991890730497226262518649003730778735614236408485360616079589616127511449822558228692924624266316080551108341870762056211531374202668014624892233769429932242453143793933835132478179499768046505049117671775595207463380016500564929686019770861781182550009275355000137739850743912639010199058227101894038659665601562381384252023500532049138806651001041056065519891385983688254150194598023421243692808420857799158264172099466793342500467243683883640863463552293276770163741700073305699439660516912213512676410206631226840150617602382516731843568299477161456163069808708933125585097638899526846143594640722039417104780315845217760424346094142098658222453707311935907742265783040896847342624612149481524565445644316684341362415348605713751046253455744533669971717150560928374637479293476357408127369262217890839978920749099979828490796942624263874808085798807530297392421682066240355252474523804533826788648767095985898569451747683502849722765647017046573182623920345722444014515944367882160052639457428588612534876992497559011288324021144062893688197770155521638571567871084455135092707723948386488878181594218717107719377587203255595471677902795847247553312398748254969785398654369518877865142808623223705647912629618325763812238560431731852476592708543376494103040628798954294661366112886373344301666398688201503112518342061707016452135713332592834588140235833344814643453546057802516824527869559162523748255802471029496754258730657046610420694483870697414603681882526233570377507639455526748269410946765982826029727452299101593302374311360977797328330335479517277352012529206090798939030925278236080391440217359885169739105571158279448766356940508799849646562347703626045523902009494819279200371970979695130317015495312212141049739604692761583554723475284675452580572489929208011994788072868661469467920205054531342237324596455497579146127225033063501725605545716791019789311218175448952215440184159637343121662056928402709065993709852018207783205467578184892632808815346183161726617896414588499732421096117724922025488820565082663333701328725990000735278029226118553849336041799983083619009971252110332148469447218385392526267176921953148181741529191045021442850527503216549152537997958787820502512929688217494072606161153401594848919029265167926389056200233169585960587754735391709886178286883257657742684924397894956994930947619517862703920883175001870945717510011474830949585862849733627727474466816773805909271548026262220802478681504283986106289609327646366097891406119005454693376251838246545730465444822331949114523753935991228634193932385240020260722544283973878089823665958567092898121034368134630113110543821063049582790651577113790669815207577836273069851455717884620746271189703327114185403149376975267071427770944682749173134406734686582513149165814377919874372669407743414170508777722683946181634168073447450846272205445771547103918673071739171278449938142081492103688498349935900507527678688591037377304958978823261048206496708566193590100625636660216768391768617988766783034507969097964124192546678933742050041579672668657434343535612015629009297852991440777746136746492532557220869046531442039863510435036315703730751166683742652792134852468329452803106302627823806332618430324338663219111489283338546617174748468406055163890244715286112350986153843190715756473706689151275873248415157547408276316467036548240847992558460705496308405191047258475522257845179994226452237508043244860069859387837882371125923327488026091887592537733125412950356141956155169802844198022869751498163578586620146083389258747177374046413746974916751126846098592109302751842205903087563950033168219195558877131640748102085891693968771330925671754444329396354570769930649150223784093963975057795291589413598197876278172077916902414488636222412036143837007022129860098320666513405846183286110753794024709057942244289357267221653967590705723034430519962831145467084349329859606442450315081721749251394179891262196469047058367258128734749389554657331650157014441958510755360466210362890052223040882783047624189773538713277649578721649210722834910528356522361004722208673049395264341509721618967056552140653312093061719540811997692386802575452640902055915504964062960475669849720935213028329925243497354215774848356646053465989300747338582720454417964809832469985232072880538146718398674577059793395259572985868657064583780219760747158231145189336348743377435118954388771471217007387416713053903133826493688078412303147486903525884428633803860620764831566032289123828601593122186827833246024069231513582838209347686604367663150524110547536291619620279201261936955180429073929584521285059668853821287114947153393811373836167082897506306613366257155288766482703103148911022029311023006221931007496037293045442416238607920770362829603244480556536356616377833549914458563201192035121817936300805546693327893349148987783205427664042582976965989752173249899912130950656520433567702753234048283270755051500570461451434348896258633668508920079238168937025262635690867435543249651974328164218005915836849012988077853355826718958918228342941272283838107620818432247659121100740830343675810856851843665130846080111139613470675099999823451586442147377632313867005872120068139108733029550363050865052958021485031662421873102858953205767624642347681111720915729164954653936935802352571986688012034672193963215191460352354820537634550082901410122010588594497906141759065032743546172606702240255086799770602005498880099216876607434806476263061924829624680593209424076820425563171314405377049250430645796028976968031677248095547008706226864755228526797942436542882628325010719258991073324171753760865367196726750184528430533190342423201829183613763033710688011149946225140645447913710745022359237905133998066138307803037940420510696126039782183849097148576705128011422952763418734229679818781144247877092029523394376691918833084048552241417458823762014215113790853806341330083609825002593582545160581072758481384308293765180731831817292567873865838500203280965170427302941918438931838648952908229842887045314079397160600272356159547488442014405104703749393029722707522821715042592133864754845257798731236824635316238282080101210221693147897022839048598465390527015225458801394088470366717388721296707710924454953524302872713012459494693647973812172883694814064922872633265155026742250051465775839250270145228100471950711177204870029889555728164280972178239878804427502072145939146159765972404720639851831294769937741302514846793093005502715675079534160192415574567705609058938182097646028631554868086982931015452786341344464027410199969042809855776445854469285821721704465383003082437012239528934085999626806258704026213656351191876818960123617351585104108478794256430874413221328992171798466211316400875237343146162003886630030010242058445657857740948716684655098490944806141420083134275989938858900604493329846281661201912059406569446540767456788392017692000337301122224392133986786912940118728949550673420366278033423839112656820560789353355864115665615262601139551431705600402267988652242299694508255859914651805293434455932562135395300989480570056347600741795822377287129502344708195300962690769620931867766474407185226677869711766532755315508456865188393430114377072693732761263672163345477723170066810155257110914618891766382678420062553737745770427198326880578796820866972532070362595546706184428035919441661502196051772738955364776134875542696917726453111281216102981670067633358741048560318927589962825928680987532184609901928882255661121692985742952077952373968726331207301574369301634482442846095965063586510510083683057587129680498311457120315032640874755754006020153845476726000122073486305764933872129380661429540986090055851976753546676833772391239776227500141254254639665104153772284293183427803986761342434201754042525093921321829234701741112373251849153641763832177149631649984487606945299589159471439620407573575396382786488443245557242844014196817837031168419519000895713436866943241607197981891679503306408815153473516918734441010159793091540881997188693867698606040231447931269319808670345751655581070370163922732395226006533326752338474105854405164185644127055559940443346276966291202689360645914704736150758090446848528310598785618020657939750316296748038430713936456639242958594746388150949218325052294581825852733911905439764830376349701774826207929835339076188381036900552139787853687691483945314018195130273046177601540226201630798661070016928157333314391222715436214431552332908788195651055901805620634705033307646549154788286660779221293703463864088751566418734858384616687381843108479009939617094873580120731588755016638254590390272190169990513762015674121400670295258358960142022595043893229032597027356250092191309771742979809640966026431502689637422248827811403581548130880950099334821815855307807331214956703053890257475415935241079916809232620993466047354702617795065686669081791723668528310558713734812295910307946281218970496289033070752632353635543081322985790736177599131952594069343912728522222251668453599851374521267779326873934765465747163784499086260605998437059273011073934052183124493404469487533585105006341520036500323327810254057325325791586365850934688870119399480257638051993490360041436766781576993153040029343296839822326932065463407490992476738708818218488789410329400235996621383516013025720704771457514945871729311459178481900949547573520070094365234211811022858920440787976922002151806835141260454545632803231739520592614612921319770861457132188441781123958027976750702072455157603101639000431372832379318739825825581299784705779566451523883303924398320703338078054513826687086822525572500491790067217647076404921070904073076687818258861310768411577182899746186584956892268273023252807825384302088553732550076595422050329351230430405352888933582443575379994018589083983160189629596114221758684993508040765679587297052111586622439770103634340616335081885851799856621008202028700341368667755544415031725873507751997233406217857255520003739520993209713845467918678160360348234816896464557427324950156579303369983816731816619765031423772723106294504993235239483023753756727652481267064416573747636180268466582987735947352974320637135898675272815732785150855424840445136783574065229235416409541594940054060169401854564492154728180546444991319307709184826981583113971789427069511287291737795850021363577575580664612212769723756448723234251787935768394505919378621534537921023013906373106002643135718598240117811082508763617517271915306757576419133463407111181860310590943578845103950493527998913321316479446932867095066805965041694730197846945706114958235693461926354573628345203510612851206031733097564369154158783762987167853902180359511899462771220099830226625488523974478708459561721882333219198021714207082750233546386004038755228757192491399914494801955160446819727222300768563085311162391473485451403130005653956641528456737939267007117709494787365478759038283547910404738391981027557993017511504879475702050956988686245694175726555945515861493360939976947149514893822115604954916500013969940173745975781628828811725398148051020803831659570512391595430773389042176978083103141530451541204491740315256886538500571604789534129554959963131015514808046521573070896460474257758092635831451566968669059227132276462477777400906239874402211240147409774678752966578943937505376066413235972711133112356199420642054519444544326499629334868916588432824484657918945448550970137913076542161687087055895289894109207523311585833292704439364760827182383016736954328578790652124016300593591257518627015353018351993182118092753792697399864052176063640106408940018036511966173489657791809773604205922830803802308577841668753027550203525077301645563676439633848688359077768270001333345803156544925485527308360596833407997421664439703917748768378556607983432023742097704729483864833172335359941851081944182816344131871963890334389234569955259438310484974765832191408096265144779651052832611961016822098988365040209099818722480248466127717462785294500941208056688704621642477728734434645029912679764701137625247261806602409024004450741399272759504553150054787455046223142014304625641887291527472478586644317122171844941490224111699802718491785614527242506075230575881580159480948478980496236401422588948242975716684261993325439354300854888653914410980089363780440516624746663193842960044878924284895614896834928152352556572098260645087227302492570172565457777923549344946933977382347033407473776994143266890682888395928274815513105482446756755083549258145277541593331035882592012691895935033015667274346521588294196955066272266708066240503779406164595484941499512854699145626460038581423208992179378965337318478119320918459429108168945480107104756709060802576668231250243725688545886950662049186469251601809304102149132015806081271435177899941415207157598886793785047367578082571482522330650880533672480441719245828436403706011788670433693406669387321347121791007034796766852036684232430973295308790048493158340615051651784194219010990271021843982088989325646280637912814423469753434077252948763451780164612181313616052064769515165079425116354527283294259081165041409204753248113717473354472654980439257716962967833516588687359219888883998666585876982986879323440267882799492175607548324950718245909813172841858148235243785853170171824374115449024324956802051580669369690537710638611092219171129466468133058428656316590404259404204758314850490451661677025934388159811945735590451302422606402018744784007585590520176684131774207725564673419089378242109336122558454078939576854813123664426890529307892548745383417063134704786948304753420730090596201251586659007730672682375038761369748638914026339300387258245093981022742438032981173552319851753343556465582539306454869637048632984501212489831577919935005673616923753836270432937520624484795049079058976297362691751578735892695235931033434948950713988927933180627005779783164675943623734235220397671038003184452444719978927830268628306660364474661103343191488621279926317452667243576117836968606546482419820245029787450456915470775222774883940602986452304807623829742936770766918455393982147923999407328442574095527368274067942264572675122002914022510616871482679218555791327423082567804521865668251366422506676158000863465633879527946364861949986862722075272037429791118963008373213923002390634052517458981866854084738980078535673559313672343711753956862832023669833663536612254682218638745879300263812145196153341719776832082973029580692652057333336874881852606819763499100372318554808407682394626775531559472752491823853718044938328758963096488160367790881832038995694206018466979546500992076556019181645383951991626573752879786265715694205782885624527124661629121327592343738052923800821120744058594584323604455077282372266164374934971188759966984150481416373942935127222839005832549155834628934320393277335394631529765968396995770503143332223548103624296465080862731644763688003711696340537692495295131054759454800511118044581573580387915471119198443313865510228609680837077122945337691827369633913770397402323539312477716729823200613542801073786092626972614030590281758756925303078519069505860811080299511763879317726923171857614610063792844917033396675513924637798088034184971190285016443928371370904979679121888001189789259833834854085268974532267544161305053120138690946418439795916936427610764740559729147084408144399540617971547908975393019056138636405448578434897706377912950528690957941159548008122368506509811054439589519068786910002997266480355093271734539534306273408615133810795018874401495927617666392832572086084500088808086351623878607690448789667920651825923800905993002527234446244349416324782200515399160017461455409104033192417780108141614452393899044801591642436542135142662819791991035542543446694261645348053824510194979857946343367910409176724123305841251546792883517361686206616448685486086060281768709752090934439919585073583694427335668545578195861775081483960417099179138939603545587143783393049672750152600974975243976041002509241026469590137208670612136886732468778305998273601268106459715562664352334009706480556140941496145403273608389770370428575507667473400552256418072694506699995719209980778800209572254547000482279222801431246210447926487725722985164235551879401590644227810370071931284098167461919348290524365442965473083735804024546695120401601249261956902228969301552976327591466128687400652986096910043484613662729814685280468656994400501564605381408325379796134553677675475541904609865592795046665869186596831816209271929341592959213718781707587150556843833424282425763141637507987108078506559460402159134370200867797191222902627049940040419236964950182282936628238106035290736255459538431962351466258331503016745056064777913030158678188648483534836184921034345419467644655666767365306238090681522624998668835167717639967005349076390240794270020458232150072540404944478072275624741453144355652285440970279270386256495911791062400726451653482829590642477529096609123943647698613539181255069005878920077504966616839224961307190481172854888441309208869747886621643460751859182207601690589381328252121914625841992506681005950958440522852940312185636454814672131586529350774484427211553154224801030603484388005323702624160387764696246000452170947075900154042781391766990749771886299593804625553808383255629825462520293740419608123186035774255286743699364422673364790184226054589981630594425283108872227250288206380537690163690802605779957507437788467433246454754893282344429716126464137757679308174624997168428796755960618193988574397873185518797666429490192870505291192692500033771297782698213440864643842578939031045264185092171970123752759522857140847468783883418885004861723255983237574416645673297888806591172205690075740109602527827279229642697578938497610207728301925600193039888475435690195635663797292742058135395897339511133084674308978904598619319414789513357509894112805723057808624632018885914023678938396718624797640810534444519364533942249766784763928146035506292014326362907741754923534697725743653847504951199191761435545684654619092219920144619471000007009292491053986354619602656811180938983671828502716794218030828708226599884763936698935027717627318990028025928560246596823223516287306493905194535798788572855993888644061043990880203714420789009360582153495801226906100812584340897400562075826932687827136036308383323069795317975337507657253006597951353085177963475646552528527520856524237612112882918651276232962810443646754075537293709294498769362940350819355082697806062291704635095549341700125650032810867367771783017793925419113482237631745792164901534179586807457799495690039673871009494003522895441813048662812819707791409400289856437080484595300745074898945535298610706220582626321151200118047242652338082524812922620923107641760233434291699718821206998907685933336559764734025578046900709581216363819767445490550820383712405417154375309560724615833228388494018494456759418635253751186358507749829088433086739401167760776070397422446271900128026919004697833708551997336133661292066666458560180734774286013171241133553378918287647703471825364372477204265223222628891747644606388732611627362579332469671629237243085995732742591808843989290732240588177074192697686210821009322394772766730437080917837282717901239148195227867252981201953809567950637468995891344467748482264205033127182797965465709057192134136032340111569320054121100188709934936632392769808133895282537776371472085233828737134779373981501801917822222308244360463621150893008068488137014385083750168092316083099355697720492508692525326494679216048010800781798684629928559545665926144180612221175630246883788384602330430575791054581174157459194970385352266103298059148037704757223776716224388563872246998815198783749896616434531114920599230830458253490070688398673831297985221841300252825941092119900102392816901057619676912026590752626160618413518994929336989101080776720658108356207539889340290297481732666011986782170302971527581919454678168631435018782613499241314663027053660709876211838882793964260365516406714876477637427014587207956797193691807726638089377492292445929299317636575611967183627979744483402284176018798854041944258533479946109184633212200964400460067605318202589798582474133498549133981329088225692080667521784144507722372365063733758971843949423727954983194139020144110363909790365569060486851247428438178271494603430721416455203253530210028394441458931010955182039003007665450472222821867304924678026473246537774950386538462244319205970030188243070554352169484694658966000165148682356267820277224171972051429637018242907380562016250685941683264916921247976637059562373997251777115772951637489565615989811903440392037701252759345956566379480414225723726023588790942334930329244623240947318575632990322816788686391135416077572594486827069274815132462340552909416089882484839023163364831240605837167967237428455362478095263995636265493501459341098087855734093295063312742326258942013520574176217664486889000938536819087285464703601413952610769957412622562081426737190119253539621033670698735403455663114300732584313175576973119373138043837019906132056216232428301419548484243421574444613097470047606109551504918141222279377721610382496733245943344485888101948663934411468011487149269026471962168294280340725329794330370200548076077324444751661673711559014712233251309734014997453701460560583774149743168842781131012661410962427783917375338232551264001052426537116210850915310178107065362740063582090984282087690191317620701610145680199131372423851223884298246687219810803420746712572314020829626481316649073339590786847830664730649244389287406944186962137233130521195922115041615131830125440079174658628467455162896158298175423787696601855761680481549232296184178643488780701592283331394103040200498924126269004125331627815125309172610660231530194511766133445696709222830433046711862547476212753756438723254080804580132469876949170286496484704312808816537471895892521937507153398984520973742688747523709577840608670812594337668044230041144671532615509362957474623748207529872484934735217368847473933121736320230315703457985018127067636834444017343930476076039314892168412480362758374418462250903885101820142321786788080063014602308140969657068712605451345679175747199251541272844973792016936024694888133582337617358726658157065593409288527235395993039980152169947651355313100751547398273403770641307806195381208476242307119887562038113248996143709849926735247642040063435055577475919949264050337945146158119350730277820654449357193876208585919856994289182119166810824404792217720441838985626186221217954912027323826158986446656090011672235548302654830522274257516797162108075373201605965344539182456035549389620261127684613485330939746722055094289649753168652566911230430750555179337684944383503849474167155828224749758462174288048883051122499549266423202678377216824156020825681086877095424274383255362692584471238184509811119753821514479073780450794042029771556298772162768036204760048723028434396516216155071623688956107934250069615900537237675484226559591713276053761824173652785400550286906119415003009311906926249033069782280692581382875953699849210866643584222473172603967504370025086756408457753026214735119985343643237842748999842952548247448132606347647550547516784276769202783413410506166427229539271974841110561522964934561304265818317271937385380165828517336001268929053485372984022742683282550734759534240827502771319437670829900980020931406054780881991105280334638985264859359831131896936561343669997443224894932294442846053504510417009197479815516748444387284555806932594209443710280417466619363724945074012965627939698851046929364195297835878522386178365450468787406532958041468673039260784401888042244972165211948857778592408064569834931354554347810480316554591642749132631708970797409452277383428452216924004297795135915687021255419837632417491950571014512566511149688753196244279060495064305141421562428129064506502053601077663494468457454721865504207170361961068758607779939611791050788845296367383314010610124863928459910509962393043054633251607714832431218405147153198432538832823957817790828783358935730193721757468735243469242312041789917528978592650947048477940508854059219393216908065654635640320978561470280799044901454944989669168841858881626704399652701036391667561964636412508029874111075199036846876184227970525051013125578583859132242856377016787264638221703150367936918262086622802233210572535607566048595096398686108409310463520936865533888932925394365402872270011152034073421590008710445887953114189768970510995862309956429545274551880996519733374975016807512425611429032702646676743370919084951411925693767903231340877275017824891465265234961376078410214795536901849873880144813037930425425554768397429968405722727208731712314713181462059629543363497735827170094246975737227176657567155360133323679760846835356331832273860487532167764069702304659004755586958693656916278443886810860342644898823045504360852852587527692000933991426109808375562354597841009686902078576678015806324016709728999180494245653311713725955361615408949962324065391970297141974879046546529800619999934356073000957712995430363794875807087500644269051023437834102276951185315590213949291840437888023989126659853289425004035029849300109133293135666778469872995258108560380978119169108971667233729243330696696714009457469329652127650104394647371397819324530811282426730993782613920138569838396584694646436275111202816284800869671629245274584903122521480974015388627806132185724194442847170693658928021656961274200228134175295927691946874777921598177106259659359685844763288095566581753261589086963940931963357552686519237378259338748838149896098193723217231134341409946342984934993465049161939689400769146071986249009821377695665582895565421306525327857079273423371360697458008759459822226004394915333184273834740800540147685834938407660717085998270982631810404619347363932801183354576744485399081842763746508001632152549119147176795344396965615555173880765144311642438444319231058616430238912055755670208954444635155115262282084541492568606309272962745650489071363760140599339317902447660692774189455796980918152910990663351310487320108193463046566077249298070003914905905582778074820751316408674497673666612999040692016329832606284616452500306872543083549795695946517779378686590358170718071960028146811467022788461224944378889403803744489883743365991882886609473323503986525251894770221169616105920567199344086994581980729662020600353470996471188901336425065768207864296752750710383682876813780727749741590343683233269937288409321669403208798739022119831616385416558909858967677324871555250570742440354936394641315636734338334611917733798821985530416416675767080487782231391873271031184662843483179080170043368744774022851082250434686436318751288548789462749324543539728558420469000677744982977318489088524007935347042111090974854376943399975559009904896683511784940895724912561096438850423048540991870902924699954484252134609742054043211370081423835161998581834437893573712732850149847926657829245710837433909738772511751099247587404800015885601641858584943803866510761719224135494159580193671371734675831793460005488872208782312443207314499900898400165172184875931582150046422908156645861598843386145875354064073638967080690939417112925094220135079330878318639809266057960935404671191287618822227783847673764111007084134533985274517710828932742595234541537278425441763677117245323132672377210628312476958108715059560678328326985995700974384674267822351531854059687105785025825186919350953806410533812557167096048669313392131496361462145052342876952392244693178411707230635113101732265650910102779157713724891352443552104267667375818361032259768328725080760095056680900050699889251912505841085001552997450960398582856538044315713812435630017684592549622492609582896437022368308997268024834268416375618842919548341710778540832799031687101447593027326685968997895873204191410668167954360946203056236458057035982553739384664071897751556137798882940928897681014035009917542142385352318043288898603309224325962651545611636412568931835704096839550737951427088482989389904519383547345254622827664972346931822947044376126936628078320355923946716985658077154096143884205210017595334784242682352028540287133893930511595116403985106320209235407213171302157950346953373270825286369621634468566357872573890563784338236152429443676677692140295705784637175972080584601633178741202463550287356091073832344553938205345465679083595301351876921560552179465247942074676785955134537160712552159465587195942544031461905890618907154109638942561113160202978585113016144044034859871932760012144683154349854693488665592839589236452232087802321007648080310998537435763448471087197924574482522936205910794289601482631839361706242092436646032284422180263947854911225930471607354700198129011026700008777966587779563387188996701798860831984463022640931917890050863296799745588470291311871443724635529146308063221883149489148273924289829981081606415826472855946167752581861303844801710099332432252937863570578431262484008194765384088422624229538126230212636157886889381798342171318062459692530970590630172208464250605384252048891907401454670361396202108453324338463329527482620386194685944010933480738784526058945875484808947228196806393394089986254364426375672626848372050672697120803306734628556483295908010134051176682655703696409144979774299621648196180004511471526122710126580779723384085636963128145675678973707532293770031271505748311694861019593042361602948870111953562848738665459227841073121123492742271862481465532211314104591771600215157055283069003659725838512307336816425237802209855436013772991459909047818913981562442600345791491340423606440387129899229054643414393230940189308275465628936418919430717248897213896908017020545173337893980622960230836471873205579163131878546418565816832255128159129643577389705069332511666143149848643403965946471607247913781494567384143180093308686807052706411689679564743912473265113018732443620795240607228759732249096373887860898033731085354882006687864380455407830524841723863409820222263171892474625568123233090078266688681493139773292098762888540596176946245192973456135287809696997497716844161205515743677039931682577390333307248036463276658924857353698530789492880236863644413868078902077266123028591129552844014014399059116350206129743972923677641902179917651051811372134190834861239887716203486128428947996316891650628976224241887885183353968219972541057131358309180533781338018569989666983650349590101995622869552163426572817794162753906428574286178351195305081159333605392512365049069570355842839344307697398811361249296663134306530908253439518546991921201401866567292666123908918679625147630258228237334364571753837191323562103421521019637945439118558306215752378715300676815718770184250248238977251418948772521653343544297522449566623712487893712910803579446084160312756402665451301757368937540515912993775935689154428203712592528359334757394092437685719480423391341142041043697453433870338454169142663912964833133341355967234775987001229345726972390148595486515509454728961119081652910234555196287112777415393522364718260256295264880030499515202693840394334839188952343285724324684907167866266644213579417179745230771885588533566294183908624264065840116767181503579240689182378282698853975882658923042829235554901591071944456898224763145551180325951986626324032100977906146248135114996840501857774666310532244199851153255160399161383018803060699093402833437402055395939297234713101781173741586104766848351223753775838077097158586240533563614274454858382433184600157532392591581423641246202736719711970757756077797795506701422810575281176372890393989581886000632323062186881591584776494788761058305811315189447553666957584569900139399449511312786303849915229796513052090236493597971155434507594005368673297234062816433902045461776064335330239655507839461434930124920965807156603186503900610305588562082730268490852507302794034524122298237735058716559977982781255542425542091449156669012739479588142200928162096506315651828577449204149167603384340395919539700223850682693600486185319377413120305310418885025201494309378955388965265577375152019116588131171537535870707205052692562684150966434911710539258444677554873256374528939748986053789432638551469115035554624289181636157220655686017956573157922102532916596867540078696924159014370203166110841845808109326089571234548362865350001205478917382792761936121316171806265392649449903391873017573756271663357374784354464535601743764031355301204855116785784118822887827446486590292782907270093499127781199628963165645932104107613519414690918048609408065967154444400145273729629327043760594237962297426817340379791412790087808453792924103022989933564053707476816558954893807733122510672965438374911347162667548479465168628195140729975004338356484274914649646146067375783002852011234889755102807668534893758546506738312730567523993862196975741827835767122794769936546586518957561404654947788498072397350607736764621445572579376325521731427758906445814574591216188695657685411566910139093472411723134857360174958273193671029555971431903110707311229241193172144562104390130881365311670395055275432343799890867611851787399402807076289669116668619470700290353377759431961356317725659167650724195433020445958057677776608346235363581161400255229060203429142709728158203882465625888952528597166070133885368198011098471032330586183259007599238543908099515344780625659504005250349594988441287596796234899641922561906591815281239691174408944635365774808592372571470136269877001700774529227272905967838662540329091178844155290221493996012950226032243194891304909847813390103626210947746513483050537222077369532644451098023793241409360590398566724304121394987147273905185864463109547724792484286960018405780560229404467486098232974626364330077984215405370515172490808956469604460516910791353051607207360584067417825707004489469146629042570327416966989651870106007905004582894286553923736482666229996919632833873007468213377720858253349461776000983197609396927563828952467426124992222638304218429961293687459814454821071214215591659043899269684687004254968133171929599073631133811770414358188508140728970188617874908783967225087690664761539891842236521227105886097231093894143916963589315322964831990070453671151536599827222054751033050223798312743103809080808010003209218776131130163086232684840600701187330843383823451715570250058313840581428452954622489814112782907822345089950441280299806102168463706492159434547691379656036434533940019644088282680253458466060397696302237585871747225141991144851944255682352859920928420533256133859359768326242183123392336441960145836461746145755565070163580832601425494763842791084043403977699192709156152119887785870555833112742152077895522740716260993414756957842238942122965579234326763870776699636861890294476163569737396754884749915376521325826677535557327834672219196248616898255171694822554522449906103810581508565723955300098916917264237460315992882338715322031985024945542136664623100374439030035486292512324681399129821657306206684964362749355245243652511227696785324677200105796772180885360082644264640079024751502931023944458240190615115144705826876986087434592952339146138564791698989327398818846802479892010634560746669522881055037157460608837038198123183642120540745581170838718814982990005372965060417134762616768435969324009677868780593013714914872494866528501031601072809414725450981047547130605034650386013762506987628359835074180533822122083882596559050864670038480160647435777549648822409244123595913065044562192998089935960816544266237922604325941093957229791964071384446067699515576227287259482973643255847223527941255348181102169907080107699266258318016586849131752005328778176043309046079813290507565797099271934846405769718270934060989879767059968869271667716766426960206996575054045859048990548886323037828626764833531163724784474723889960763051294748505670254965905092983848691157202467721484466143592800451887366713723310454166797905589382403480610207377999547245689164581790969785345235987648016309631731241343032445987680688749790780502695135072340965170048658721515494971246213280261853518078308561391981113563349467976769497255147760705445594529426809366221698571255293296360761400400507754833094449409768546606700177546979414523661003542132480951038601021412325540075070398626952117750894238847406713808756052778948983126910012391340144153709911404904280618791384689537938412052019596223191492051723842368842437435966648084544668195033523349558566227125351160770005184767780609681100752689826947763255831534781007959002810373276199829696399946505628365975030546071891143763296493975603992772287810712127884831092804757649858376587569242622950199447123435714534607438482712534303923709647439474533125167779862088675855898530199157293904129069929221127938078310667960289747532461149177616124635213913413492538618201871634231847592353034337709467492851583547499468534656968870838654396942963074223435787893178719143291695354460455603712248194806477806949674142769100500461879888159570578547736218499732156392138649882507473924200803379727408341600097828931313662777588129177002252335734210316626988205040186589888001756866547836173007098268908721063168481924565384109842863138393267576449627971704015801889103243894885151763770102783560729661389629411964065354153477410895957418219150519942224631609215616048307714436930933233866392646566420321995893612257148624426335616016962750610720043184001407667809780516716051287909162551223100112210689519523679460223188294652500427073620639354813836221837961641773989786119059053393396599672491378020505446235400338980215206028216901652637550744215997174825561711762653171707305884998149412723308242564028468648780591223896467010051495677381691516040099130966719180890714725863828431128389769003071321783361284938204209300401700966720483746780730620155183566915947210040978653735375348050381531536758642400053684348224632257852065138438041603530350637536980359880877362144982867097292074862360456410810131308632028806368569941376324828485482045456948197287332118867280566178929952484959391309863727219044313104005692641291716215422274591950747656702023304869823358768141609188454656623796725308570773923034118859169991681462199502150541656483571693832076474559016983414869870108978962774984019359642909852437361738974973091710148015350656322898951526920614964431879735710437814355576970328662926212860545979939884735759562485678196105835291573454406437898985960437876503003683165714693231645843000276749373414478849503623854397887276531810390230976085476301036639455259289630267420791316814156218787588180286574852420283121899083601272463780747133409734004270534447481449547956178522518779900053757417498926570268690589040620384245492925038942055572471330773563398701695831720786699633748774456157224087365063399675773904095791891499556747600466041820305037139926158091603370791801821330339914211602039611519372334449298357541258327271771194970318849205183967026243421130634829165488222034444256090269151067138224926725950266430294403886601145516249203078279180782925866934989208627034751138233019005891672474795376285896229785998321819605371623698259212858963289439747698643906381783559181804633455265146503307267558976485181230054136470961214989884001118808395221506572262606862034156772125531534002991683479593509106852114933821891804442799860024583985259433253736578569399675855677282468235347958229777258267629157951696299200007173434883599547367711249070841411187920294786196186672144247931121289754158553180219352734067293824412327145171904743939436998520841474249680965657349575915437040031794273156392809968762660113981783140423522836380347215007588346705780251472410952364625316968085057479266484492508373633817298364152398954705498534002127533924053498367980176920276270404251496625941956340544532736801335831598890308827780810935952095347921980168544202636934776865000581209447979255977455395828141821470072970099209774955008686026533631313987023586366222688582069808544269875956247640658694808368727745473441609524772397874708637562136102304461179705000328321274796841959825186904526334646384177997901973025743181402667480155160607269150573378013434875835791534979883775356078545803063164642960659874104993618674045964307689349387081020170677875205919798763852472980626788291964889725426857763329433362607001242445470457098606869474800348946041171030091978988570578387977864272064227713541172143612479615357824817059363827567208275641540099764770621136114443294409385059625696427303416108924148845306995282205944019240860764744726604552194301884152737000867454495223829566326025894301562487227068250807111042531048211397160876794125329639652655043313579835417234330966809677728412920049932637350503834948935207086663346829212220044615112030419610421198609165288382588748456601883187316093914796034242830914836979775061945828261714652987395663220774719855797261712005687296963665695360998022832800809384478856827035925733538576233362450397925599739585519824014667073811106367542595089346896706919420936293390303062211601123769323790218393189334723611935521100372278942871719321516082715017089051275809416847672142779781031162886523844511444271403697717115850818234791896075810717359195607654663848451396664354060523516681196701278558889704055299736030801953329854328203500169931515837778427231754593611342930353615946599491341870126956124326452335266574100038884843401211086147320802312771833172733494466337009608045928755435165032259847689842114669914107657840043149455014791662311493715459933292510773578141713678619541577486429254642584241281698242758305174539422465459530320817043388366648788962167403162805566377143097884984568048902787809524629297456698291698519150997148507352890361791375085012492692625792086969878610922792036606270597083489652601470872796914612412989681460291199813732898493496996276848638375533710923753430104488953129378420518266491352366787044146169733766809606265105401378906853518395248371148881930252862107806205572495511852843532254901797547725532902124684031169517249816070334107584591307898339421325283571049673506203536002252401247842486300367316959942442169629050350859941475123590704840273800206504808599912994624381950772885550019433434951492807717982408674818075081011018990071179187594065433437879914663021503859696650712198525840172260768807259780378395203746866843079328268030145041634394236747021434741477119258359008807762879661048292815498037304430005320963498067193912062456314408454143161057122376039941265924351939026593958746523392974211567707163650294160303871197297154998708424511446304961571222932034305630282238034708363390159795173628881857220068862459631595096879357248586575480064265186987149842805120920776693948847775182941181205766307644827792040128521532115822118632875510281674511975519011837851023627590933992693163867832258447364963703465755804307533320763797001491620767021796197820648733884250616650144708767060167037116306266681932706261078021597688107651861567535143835275844698782516910308890725943404437775174062129425992502074781324156590038869867156925741248287110267313440618323752865198632800913795557723760394366655568011991767701313025151658706987769398389275763553897343636873742742238843305396785392440849392000198569222045339437324604462397990848911443767690311211193704292720397725350828194234035719048073794906083856902225455374869943911649890496722313872657511807252977337964391038800702326794009745559031627460815787411703063525211920713091067097491262925938794910130069031738823068228934263451571356705206238652127320871964812721114017773811546164066873406731012556628144579736326024436290548776159044943173863973558866213048376873804648111049216213649782932871495802528550816506590940129423044862190715667353631962763371102879962157327111892261213366361434743243411414205826165609326404445969598721904178038906713172520792338370723423647468867463298702488973242415719669664266134717178903578208901377253707804339128259654193138770150648096582502720059247623061483074570027618510139464166083676757886321908258285434815352269815972918919287331299399011447949827790070262328256081419186004117016156414029856735902411628481649730738798296951424791002344428341498136209654164888001993199147608813555014373266742983460390042925883332835447454172078617385803249377667178766033461523712068979647889854385855781967680661877223698740345155877931321453567642045352066892007568507516968102087697754926066714730468104943757000078540442840311117034252994946368872564582466358759109103057604833214041618513675854159614978366941643589838985863338426887595632091442506749428384573244943932584296856817751385911239870403916723296296820672615291243950860742628817148850662824317827644670750274825106807305073024548507084621632849386615735184189987146976541539638924445347211741588661388709749538014032157067456021999337395094322899915230267473551849575783506441546569645564002567964841680061366180604159977705698802428635836683909245619974537517505718799651569114464366526338480552626825631268643267781228803313171293993976765011999529673924141735451663167063463710082339468508319767096576786576875633452199894372517025703661046897642320203376764721384668315807014512053997737581171082809466594513828004192599009279080554543729191159698732729678151711563508358336915664576071784030040414984802527869800774833610485387051700239869408846272863236242290731019662519388664487743468763384211609842153878328891566793814755283867485326011140478904956966759103828762701388967199429344401752121184414158445413879559209054179245480549828697364579191237747458482305439866620411405550137757879848799683974075101639677970301547356794713430113772707342612013992694389378432905030238730335765261701694335757904169455711659879340750752408237346336546040922766442844196128241742640338154564544998920271932459707465585508157497485788206305190848759768801189380324106338161745071461342198908313736905720470577709926048868937719218525531969288077114112325695087902834055170294775550904019967033784852134532977720857017510961500139930380602058845862595292302011610542744598820618177406430443966169894468601657863685225100680275570513215434692963521104037728945221218370961591510362418875371031944350661259408855824029407140591137792507831807223664497875121495468640666262414752805359813657664455176770339638782594285946041393745170095239054773851081029270888581741112613316777908885062504745933211928681303696033927657148719814069658276229447506687419181571196505813067140560016356579480449036426204529267595882115795572749076443092263205893479310609123972273980116283565301035775512700457557884309546529883261527783884029523846449596356162128888168514782297938659673955867803491853597871112720336797974960031638144486907051540172076178785778222655447139019171685661789273333416751253267953382672574158407377274143600946449424881873465643486198686640119777260055846475467154547954612721891205303732410368976769013033379404759980298053354379532945785247123277803797623848353643064059206433312443325496066264504122368871771880789248558614752066277017479763574717829781163327571775037901918040886444638659897384230054651060230226750356365596220288479328001180638904454349423882117319305472625846042086598628528658381096039122779688431633022829926201246874264440587825563690201535342543119196797851597338106832283786278792275005466698651479626662470884462458429132393594915139760220451316973858383686524612718329460406518893731641912736354408353225558726451660119042932687542283260269102727273868717601064462183207544658688817393400980961302869313384125579850009522104911640981174283923874600475767223485201409835968385993262460870314723260467791569327343628665757816002247423484780427745718506935245731689616110953839625692786468239757044147353720309922263209207283061831908856225085697621892349711355770623462024914377219397223632278489462555207697176044570171195606706996401798709112757648956609591238612593386092616336452474606162591151250085205576075076799600537085154692297232300892191467426887609628884732697087914441333946901997640104727187438792769452181094008224049634432079642311456247441365499211909043275219647425239297595520117799901217427935631854202011326969952377459688040066761399404596725150350473581545906260700995562734438015787827619488837636412232622622718248145870136888468643157348829287563895089870588788060019307837347172754809393385035606965155686788029743527310484301214320649351346796536690801512651347901564175739069600887643339697788430491187995396973548211756432067132596601100634401445532076944030245294947328465808753871660859121245766917297950127341560369828032977821971378271196648864845761881311494915084242739244368882526669388911461685852749118265459341664599253576600961059797096642415642652489809061942141112023770843881697039105246145371558160553401205608218817204857916771206533999555719551504011426540005910626877613669522153846117978788983106687529917380591560979519532024632769887085527310446840414195716997810287388892740623620389502872632046660288936976246018592751779171002116795947818928062231834129324748920500061557468364547585653449969963529913000253938636609349324576157135825191822155917015521411157199153205971973667358091218469013064139548473157515654465853741538425435614862849093552678997037534217007096983268163179503417720593010909400172142347804668326053572098707783129620415265312226774145692946884351677952351230468961098217830752960037963895216468660091475929554805685533815495361802633656241003739059472382500756263825189446345617165939931094351449774432283658826064859729612505522738989512685622280896215970372262646869285337174118707865569624123365154953577962994749827809762962107815093452330252631520127549051648063968628869132538842961093850839200675537333982684786711847517417073383967276217601745711326717586716142880235452644208520419355153219744632809696516641081795975036278198308465982493242015834384064600176645536250573048568743890143691045335609445992280961548890945828790443044804056851530217882493122601667967808085733690433752445992915635919762887394984110937284215073034453776982665261213686153118032996611932147534607994556744908555906001014045136937491154680645491455359288076548330463984878609818221360647143091993128926986738893031424236535681342868240228536315063206312185143544144903112547188947378604283835866477083076737653615909441532339048518851675644977399561303061961616792977990957863584997117448244165000604514848555119641749518378577793362049139502536317729224294189581236371329778091172835981915569627952293498782678235294850534341369652240341014512792090015464408596225003845690941120094989514181212834717931636923324890888160926973025155720216777437248574291418749268950229883181530719826024986736742581410108899894917342304197308895286037300050681552727258908286127571037052194077994339894274305717846621530156540395478021838138348637403652380008393407126948440311220223403131555743949679333474228603900409991856711791071177736226772795178674138902868206676971475198061874864055655833803434499231896149562065090066927130534563983742830638223077165225737696045419407085772588572280582866036052835712881031579375557216368710770160102470536841611340435443222174524740180699706238091319905138962476710994982094804145979932650047951004706293058016646091754704049911760648592074101536389231882689716186968936359353287112060062603227316907918967051544111172871637545096222612475325059844090016277482739449951877597620781899435854127367007718933359074234312881768673716535591262845699567308679367779177483662818935935392451954587390423732356437479561898203967992686070954242143227235694060253979440709724529436634781424062781847495922508544394045771383259942183002229646911764095922659822917204021095325466535345867164232123334832189758195167889183296170760416636912972419115206627487914142454287049720059117060091597700715218051267164838460683257808115334237936102730734482511313622420576181707391015754846670507597911542734923256265256061881799233277622245819785327759371953031020451534208535412355144950117460258730271268230018805078765611554859038281879469893569850639683134718246311090893202962752112400572861905575488555039801457682484761019884416954794564730919359999278297212566135849922482813880718215188372749003800352458153786862069247070763672951839434654971466953981805092823561002420231275046806256083884535867245047820692466655688838004350829056707196832350413060244375140966166125062845628573459987935733231152170957971848756021794019988660001184516018306994686366405270858909500164134302640285878561029886402553764392721958718581463926730574085770054193821897931423140314152823258239385856154226567805946901760101068117856097742360318568013931588762363185399800812130478512433618586719430912957459362806813413618899096973405467094187998113150794351945575102698889415094140091565630575436680908194736256218300318155124458932752162532623911373067740293639529873422202759290840146891652611369052137076081668861374803210763230816559314402755775785999401958996691386180570816068669196025930015726641610053422998377118446228417735038627672811188964021726686554551229446712982285902765964602290663100702413741032610592388723205153408951712939284227097839431637681001137607666452298532322232550346210907484313269450361014527593403315467338695790048631480137928385302426164651818005831760864776581679589572254463554081896170594516449828297574673638121172810796596200718000639410891769728960593739375161542347741907531104746690814452245564870955626843406526940355116598433651019974608567215116865763826455466920463951552094447249040509998412105384330765573931374706083047910650267245095849784606579454088294785506354189235453181487475282226505389453131523516182988663061781869718665802220405183079448422914268351714711584858254726445960072501178086874575720213606529348945613960842806809068987520488796046116395041143486820731299895133708633604873559997492890086070778907829054199619598602928355651890624833410350843623769126631981722728171831061411144079610432498001337497206851839996035492632035621930940148848954313781578671127785367879511470327778935974763002412308607814046068336378049967456987740388392989998957882785774637325673543727423446873450569258945584614155675512713017602730442240673067893807919447370714333717503307842539360199931057626451396382750245273797828484756018427344488459015984695137545966546826516542080891748854257248487374567191066939335497273473519268677309803034756170062203145151839009644370348814614029637323307819295736950035085157749762137956047248303795369082738152656587998952029521842294593893571208487723713629486769137850913059218126521401110387016317335778311682299901488535379799730543661481827013113301946302576911990089710496889663184551134977738157727183359761830470578198994305149045853736532741509709398827203683500795463444161386825621378546850311181972524506707083331623374077189028268819698593749409142188870673962065733115043205413674142423041970000442006548727484044590946549843322748646744703054336805359571121943378667765477376243117854598196695882567145236529148944540169597273377747249455335884113806164473949619693295988218456569463954765614230827057764774014996314631513727005653473378161902209597307454946645724023625230401151183295739869718086917774644079223903225307612604193247830610858098102590548820069856349028948127513085287012240817246518797039878800787697152934944429790692981487518976861560867919947574996531125011305747699996916395460008586907772223794730263128435396900618474729164113320334985420236862538130370166895439858153523168760699437677066706974407696158237502121767309205255790830673255159057999000986927239375661597073512078189650764704993852904110740861237734056471821950373887475542151133057204578159177887753075362800888190880580289385603874652582819649676981438770345904272636347010652879001260304532050549350843718629411925359152112397069638152401806971984836018515282756505478521801576080630594901015181663391481002372145767571745829348961362914410829531657712629503918168142216118196118405036471288649525534451238848308617563479497524308690913910971903020448905073661614003358827992103901818898223881932440236925644462114577624546298165590283469912055098373621399008306269931785538132060127729322246808562477092046330014598744894561589426998178329631666791830876245130114195405346039058812831805165567964355302276117383709023885098847044756615831249141159371936706427217360010041433152260268819006675285009870966014415441356350330013705295841138114954009568535633864173212282601316606539279383140167805864864815350055072896904999978048948557949162990192555072625536215121688318872107490204721754019483861331562830259184592196136178997902633244449596702555236806474980478167110588519279717139495384278123829308389717585108553069610254178161841490339756811194517329382781645487794255031433748465022186143796334855698845810009979613826732208777117722540267339463977406056261805907838339093961087130190567149853885394556462336680725110198682790171303254153574218592722025086479030133005342744739174688655370907332201310275902898298333612644951134223933808581547141646315761342485642565357020292821228852435748888180892950344642501414300783366316912946566523442017953869706297105659122577010605024776016402679855407191218666462708555718839304994751704868700904741887459939418129837363393061668052796250187475492896416817360256687741837609797864271471598662510842572188723174490725094621831644787777956444375844897800143704086942149030906779512286743463608367162292100165879505799622329867384271390733380083969319833159911078827622505146192494993584462107453319057413202400793898867568246680525328124371054902674511604053432608626252435033694198974254250000748929054134288691042323856744836612138748040096179852399621838372149841585023035155635440546676240793755656328799884008616733442438978740563711184014442016149491936771950169678229856867544598565448580645237145647210898994268760713944008599913680703841832364814862374333965279557593647291496809841180140295592241490440983954000018909758990898865214502746655665995418085198227862568094398221491585571724303810807898799706844705623074993938952515994900879644388782922706473733263549772275092531055962372945845196175097375530145422004555997797636937640703617463454951403920125392302234437928672809633614790886013014929985537333873859011857937506225351379328539446716413039755843821547618627702896159854704668341308356965655186920709623312268033816147040993218845059527563139539942935461840821885339258292276916665458213543266943803109223158224025546146158814609704778234991312289460005199291512071373122598404821859389942261162890624145571718246073055791980077798551326735905438723842570775691866283800988202248571800182116945705601882429002188747277000935610549929207368222181270653336670063920427384641191476687216802132599556491467723380362408102857292471470676813058241593443242880886854047331306068314588867774476007088690549033597003995494349103372530719853121117492032160516834502873752120586639243906516129303502703807008568190719713599937720918703035734798654244565780231384512142269298243627971873022994868626581884545612232833818621533166903514087602039376899100799440381008205761680694526548904445113098643740955465645486018974685008007545561973110864892565009876994350647242195164428316144110431097728057758420563786860908073454774272114967391196241262319086299044307264030637008661310941875228171341157077400143690522670701570352644156946402116559838548054502207783178143508136377341253347667018682933230064614202833039641521782038077325916446268892584432355049435488447857498583534880196441188885175518980250764103273637043447483210106801410178227936947067130290533735065669090675630266526090210451501636352486409851016451673817814016635901013687158541181888080230064797109203736767622151417605653566703326963779761173384780950846209141981615058357085137741052519843827389517293703143421822243301080435970672534175116511717374140260053465848952173178637064974300603355486560928027705098275357968384418841046348781635913205045320011910086908330578626649409009231288006836261994961349427568464935957025723640018348137282471923390545290061990838535786200913811660914786114314381933658175000141273273628249843558474479314620126607183107026005798280512958560976785302251468424080166623374796289902084126897484354684434444149072105822686802198676039185680433585055935397513985255224064682752159435021717972985249071349899845107704576570547411904868547303931461091684707780971988587548289448121720825384607403710260688523750538152233385074175023765476592313668643700410978735144654689314832479195608347453060203380278598121566164853863103351882922266409334404206058546341618516111102261402870893453967765822963774009669641562898375573325824760291806340167281784339639166656317269026981964846683771214074763316825827569191929178265746776382994546399004206211050841661316013213717561442465424179608240611610453592542124127283027080412734273719073223571825095942054524098489145681324016861771840395554250032547248580513042953863545908128008340494413169971339073953292412819033450684505016645912708012598113216047956879495247915606306210582152621827359934139919118612100050071263834283316777808204512879815902040412828948152454754721124438142135965615219476067328824539847766664756447516949870150126317005691002468275720430473076140350820198067934767389840712245035134239853557545888067319907000854473641919007596782614939846853230808618305649204391875577117850934429742250929551522273252198038250277755950865684691967574073087691957608433065300384200529010890849459063694699852769445838070092413165832959718126786060101603650812551604220366836369916625920843331796302161697452994360395248604898756012635913984750910602573960871102571489305916962072382531321818104653529837597060723251638436612159441878877001792093128309226111643433332404363680607848670014665473340714631200468835621246485752779390320288389023378235876354753049802020962581552646362495798145928291171348428758146545128858373602994237674255987301644184279444286502864572850053463657578757963126025034487621558006584226173325699406174628515382408513176230726997009622080470247025014277973540107836566520548551084142187393583438051909915807474231656266105648955354816241887855874041527675751489367478113613291526651694023646616933166663061726158596998150723506769351743989712122453674290299821043461936145412755904145733175718821869429845252595504010478131531934290028119352162221729049317573201913175895649484824739814131442457252643919043749699306457331760802520711137131845520379922227234741650986874229215003760555577777738973124277129182100383194976233164058931481073545491257292765892225606516369027371006647014215681365223527299503172548825729424509156171962845693245343302390066153108032684132032586347543090027687380254318580276752111268618185929862888582929224915886019210627246635273725000410078598131868607791932883596004738104493170252157531734398143374183806169404942510889908135437004885343558479781439381343209371179645794836317004939565054447306927278524391771943827976838793990135591576525761851871602152827161392842764792893905592263719846375138712533518875553300407855155940859168640473993412173823861713274235001491268558214047905192461957340359603271114157334563184412266817716466462628385451445368417137226358542602897439419859668224644033337811624024197935313824272520768502242224140863914980195853962121906873577007230677077782892584584782292283911758707462407655925628535506400226827311379971025533305974555626520652841945690534117720518391901755852645036833946098781350584703704722916739197262309480341932037349988457300786999238973129649607622543874153760838634526811560703812370858449671017986713205699320242300087330110842321617098274398665468781134763344139369960833539167283107015347672753094260696721585826281751296329479174338780455806318897576541792492038827425262480969239940581204636507695015783652542043332911426214499330955032047189761882396291117989017977804044357818089828800181934091345698421707126205048804726156401878246450745851049406561378150311165376440827197982809304184175390261244480550699442334856201441522095322430843747425789916803717695871297395836942012897807482879816609511281782841867365558165351251946996570038928338164735553850253093324306031017457806922667381649945092775689511695219253586087715174452631051240072649600048041532173347794028265515278237424246741462767442491076610386502384462124440865534528747813481397697428451441702141148743225624129371842525270196103654475954204910430676027531055300167715221810928809971809972256343813659292096100200131129308921982007113260460995346554211021721445165847756770300136151043246411423721141931339182037258391700193479993852643078421133473432324700159869877856363867484680535134768261241069422290382078181218339976177001220034719283642684056396136071302092253363548633984677800634769951362279451351186818135405053300889528289682165984784479610676652549492294568808256496514525860221948090586404647720851188547515915615188677511103199145905404095278727256685053154531713505851253084551480203410769653137974191937882576410584418002348990422205905335057456892497308547124471757668838655631878272362951721265552847171459143103131303961504591865453569970363326250682431171511743258976040393411768150483608181372079475715084052714255531238789708946020590576306557046510070322854523519299010435450519446875569822212394731826044575491512419824397468020657902028688723504128339904135377817616359128126000018687676079638175485253275354703818930478204457211127046865109195130766763509667514164636459252374864966159195319660041330980427343350142010181135571926913753654079986026986580393827028147110118514674722243533457361025575260974731993425134995388196269514209895870468887889569175409465962627144959136455271896427436197445864706489219442853922807936649536902839770176717885225543165752714872688566375090916639138643889421133605073907383589635304359660875776521379295987775024785987677394041776308616148531781004530736874915026800032654912191657090431534522235055521035995227713988650038986160189207491832674685233082829666317212913864995195128091113286240373461789211780128461006296004202930693883245399528671229128504158019130717055482531855515894212476485226211819405383895694050692059676261137792877525688555498317591561704383396712127573490054952767941171940211181509856041569721057096248323699763832570012858813813227315648478288682547981115176966711974024122352108196456532689345452757173764269011962806331678176321635214896635524715607834825984192384313226348259168509187359786463234219045723127563695267995816063022115120717541933372792071467029703902171657732928139242212871019764952611902698160825831316564551474723200642475919015631375168366700705041997627588113124642626715619635427095429601796003361316347360138573993407496716985149232107993826631205291980023574338056695985256284449201210405508028859353545344745217559684566953750739441278591362234495694424626221853713410458047410883057605950572975843528922432317607694455015688731125439269488426155995835807941232104453643685319840437193382346231390570161613849049604687058260218899867322197675184096540199332603662768103546190111517290902791947108931513985317292127097614010696996008317321543593179738472845843287318846020495197336165726878002191270872238599297631248022047759826658884579449653654006789479273058305494413946175839255704791940574438573842641046816934122934032015551930939471280161713653484303547209560222067838326234299141563258393347487302811569111477817383621213250229442161558286644086483282351587393251268915138164662046305689645141833749458120713256836609514856998767048245842497163667969751671555747129224234515202218616092193329877854275119168155411581281671620486206414630977820800895463600612957956652308182051674031258152031375614388795017525429275969235859432140459607427366254400986690362328203650859834257248654321200437802523997010335416198029390466469663547939247056881572010231603113482832616771593698981549455248455088797908765285909017565733133213483400318437580554302333893695336491874408276190699130445963999008639612737342217230483234493115230594868491352056716488871741273249912475253142036773576299328476424146895006832527529461128697651910405937093027829564414179088945249195578236835905652741254520562515417031533299634115538688534240201353205826446999025360899222376396495807914187027666849461561495096197203962787633468905797654162138908960711260981852848874836316277700798780117838157673442364695176846362311176868771153741299667732608674046945540526629051295840398412183414042079655490319593935117634220220402035992013816400529345455266825369528913993254098080345408092738895708862740438995025403526294212093856658202405788023276445049604637272918985663555497327836644217880120303757525757198739895175695706091858361097497127153255526170144128423855722331111911714358010758064941269580896918468981204915881507384530708318153648748169765699678760448971526699162730810114857585816690796842933464365779113428052589198332456142215121513229637006126940238250816535182452956827213653340377803025308992420962968775517225962128275016220682370208724393565993131618301829374086087497104833601275456678640989062065387094100862831927576822254618308868922954501921560866892955801253641683894942469684744063181814396590552467600537327506286344410784647095885057819564425389973107141427745789566143357769692629010409830665726730076772854262512983871267786436577520748722026637731335432814745095806798501510751779543655617675846715162370345214617161782505439065889128222209098958949597583853301846475553397790735231629971904521794743995803285861833597176357054933005355210449827570970870338156765579706830694690133511952781095178376623655872368021210234988969320301875562296262025353469261288869363451893264455805172321810662835151430360422187241029803923845358190401776909283372722557005864268913414052808473091451446269259124125134416047404146852678759791052405480415840361029789052536035217996436596598515946704826725530208768677309662035280101489076548961307396423931510729797850809847884936545952157637376984241205263935676083307717009951611509410579065472035659912408574041308831993174092506833170752316520138035498455959113824461348124865480848108907229264214858819294052155167181462529078939216252207690641094823502995518836827395670913518949009608799749197075658210817448709221728650992601019319220790486621885478950117198818008279829892326952198761679333338625642183306941693899260305300087717394829635722745782797545676373993706835750837368375082826499244381581381264093443384935490951111603635753374552134306291708954495844575948368090180431217162222740271357978040913413395617702295181680819227603906075737117816955281630022152096499137739528536695566290517349617042964709120712953736291220071873962517411063413116953072065647204011690436522014889457800312884453191365843211861868846580266715256025005098805356238636147142830508564442334616724924815111747204371224997770847275330417657442596283815416380771282164743647558028179155896279432741834093250992438231840488691861039458677753351684923641725521948751468311142861957355624991366069547207151099852684220376622502093404163525885792149020841163033660311253758782215925460840507762634254725264117561081557219666960806959636431973594503420073555788198624940378329161195614165220199858499825649381034741654721247712179785049532190021572291424173908425162900550971620929542474066743203325777807314877184352026136845961455895740873039158013558148426130012985128216770866062419708262187175085763852829604335055939610078556611545306486474969073184110946726919176369854673815427503067974367876983161254045449631701784115568860747448993173780211981063693374515928543050510567077080387607058441083703608098688272371659871178984959081064804951142254168366329346278060441360056057212859598820503089203733968480513388483769419550904317020648873747400007240982118999764058749268069926734533983441079743806573334824822426439373431651489909207088870691007470131793606815983828045061985225477787632269075738618742542017376847542501377515379398163897297138740794833511946685033400238341875248420791000311443431114545473200948620193382259578583243757428297058729679573588813618757641441124017577888032388068433416948131151145315856712194992571193028359091401724513224833951733575133544391780011820974735278187881963408090328119408351117540924871472400574097173564574596534299197099460061370072111511455799730254615039882536690654397921865995079081446683490302058536448726735346365802607591372908998524474531935266702412614443449293938521416882015854929865062545546252252253469193842906475614502870649850038827910560642742644879107403751548203122153491692193336648516295831995560517640925742205733170709395667266119526308012860681137623580160925628247967511129275068331594575580009959238316024328584363229887120593791235174083632335888423632965135686625090154213995314078528963633483394928871920635240920102449640061360342682491556968122541062954400918080735410391434000856573206776829154102301278282698417173210985295486482036487425859882771352911285435066822794223921478446895058111282864913597954503150610499230911296640523792323118489007148074544657343767921242694251288022996959477479958437374118994014822297032857610113103150224224714776773386090334587441103880976781802201892484820191144710991909333093940772816404004737445658801969872160420113591323260344202598830485946320593694539071302755753041209659040736414530100652934313120940690287956304649180435285973364748827674539275152425587396396012997910050858414133762313415970092002011584767642310014857058815407349694192661785229313578128177051460752428455325305267806463679169960026719593613061886615950666205436108370864477112367410365803776970730252837327064555484367999970930915469988565021895038929844485239187979692361003327371310825097078572624955556163344027415514582507968891637619089060089470367816495103871957396026635587919052248434187460514728462478846162111738214974960900918771660510749839704813803948087452252346585497809709788848351210237668907127006502115710317924258982667855340334338960950358899295193550074711400931350868168185997040077481195356753579116945018901448903656590322823899572519008717487013762822035675674860192124222427467829057163741858457854289935744616594133287671289994396514412320869082407946365593149101709305899635672106981016614862956855142859129230938615951874205341426361711359911585775745546309373292374038502896611549406897654050426471548568881699254267381025445581088234908857701662622030533222309200152545500814437909409618194260853860451517143159638691505595202585654548537473438587467333542085799890484971043979194479355782935514188339481694395900826781316983175061604791194853227870704338310104545542347131047714326456546624502671763403570373034777645407588021908923829065558929925475920854480123581458778206833319033450252089631918332403404021333846115638224705648494634270045690423197154405247391143874163447579263212990549982130940500848729035202290888526082372394403227363995638127721064638337180311753810813595689923634303216667622282288762108801320972019966955462451004447467464281979038435457202178308089719246913009363834267197175362817462023760701646242944768649919933874826954658414300304202496668116782735396400560272651034101311347868632424206042040981903950763137907005923662825602103292243881790087290659920367490110505717772230585030891355288830135318391687013842620327892836371954503474491185921027057145506779998734812724957413840109127732510062026730458931432185166465860614902173795044075134954531369020843670901375368645705920527264675467214503945687019795060519654190759222985061240244722387280436817272738286880934185415685043274019270826139650647635489504157302088623918217779931258648948055269619285931867464568378995304665326237730442361587623580212507016073122917337174998128165379601823593581870554361489071675742312216355462634505419619714764811562234227002178698269089663134367404362548018892157526035432770453096931852872899604745236087457408479943272695439200379128791693407590640041230832244884788724316682084972466346380733023082089420454556990231180917047159544319183746933406363092143964081663085604990192366938043465028932650494749940982612922826229412085313267016641210609440488415938370598988863536934866845575421805536086247872008432130713635062700694218285021753673614765522072523383942085228870062377458077673795836928872378885093570361992747121240071993443091574966770081463337103740327476877779838740818893173639584310739803566204623660761307983668068546720569346654985118305512101418861736272838125318696294166437597260280391834942064700010525787557848277200392100670098534843417561895449276290309152209839791322135412747340241533756823503737033412775566065820105528014538681317817575396354855673945400033135868666091915157018756065957574977071584380632867370316013802856080921950329602638295078795067511178066537479377081509226993325507094008687914434340200465680845873927210073250778747678080264796288653639767342600432032854811057414063275528631400693547268688908431215611631306377935393785873565791129117731822149501293418923469539104276529407472585870070683564052214210909305874926452754648249404702963213205322719772583443928935215332711152101144372843588918869151019696960345716835033329834474338367038330411019408613526234840174236176574657170359661780704256783820060828829555240825900822833994141603347731220620761718190316203198401847152833420511580434413280611297613665879965237304733497760402784226881955611528919358524043171587246942685616996919769866249164540860183408129185805552483611348291425295319054273375753449898528623314144144890881643750410610123561322330393339426889485380330697245250262350926233178551338381177735097151891544270889549218094808574972074826755557899473815942648384406999831825622432313960683576042681136141491719350746716433402485136855360389152179265566942225560148511470683582989806680834643960034996208532864040038320957875838410153255872627196392881772485001908365034200537705178109455677827831783314880602823515677373676952397329025433445800924287443666875546009456849116164923440021860922341672949106094177929066569477799199650853329471890874789611226035125778025760753491637404612646156458353301253285109039527266050716889129692467810954130130906397597656431181107134308496244356572942754253202316739916577720202309848482411799183290614458874032308105136476211054027554535305598496425532792123446942785809269155467939143103796739741463928526759598940864005925184052989106428261943501340118351678659817491433236719333466453070337863761359190836534169971184632542624911224031815645640900026357951729000847810256503340381817924707600496514630044348712017326471992476962631136713254938099850709738897165677782722832192081138831576709784826097207071624340788916575595954477955056150187193417508950349187802115530913570477430051626683890740415042251557608994226774513616075541283032710994462106994080791266106526067268788351164209454245351291642632041831584596961853544951042174812763109682565179640666478012650604575963153002387839479936558116903277747953040229175986803076777982409602536003653155527282352061092384165899844174019313910169355449827337032995156549822198458368520032567388077423675439111589105688461090841671450519496438916850830330848168203562385311708453337449239717723230863233626952670039433511147703550565731782905065925071353522453699550890385607167177035129543759979000682026972363931377148251913444629331869744577793184767151357018768669259194253397862130513637755227360043369419688209481532842343795826429786160389260048567559517799694785806691253879939840965204078198486106672232987500561002163883816028426279614471746024829057445410986621622617060732110696358078345253365426800627428519705462244631184203710909901944794733898821499369507440689450367075988827512496846960137006252592312046335290663536196998724716118651559351598625230591617220733063484874636429624486973965205967189043795959682862051145063417077643360723684968089247849136480646210582567086106077041746517215764391178192470677021905213350666541121931819282417020140132208745132265008554517399392772753388838281058629620390002680351496447932734256046349688640462962165355940668119184139389240343069417760307332474930277133391657713703965961407831246591754454484203560707364905133192953172492559005235066699256563823678443649030730516276764408503784615486179000420849269929199719380488696331773538853497509039883643314983508265752874143414139501381659713246008543140185291522606309843044724117180872372324000275083257722243701211574879552020887124295758497205527551092899104504071279443693232521077016939209761005447684857630738550861746594104239881766038984036415459133442996848725769964840780074909650894412005470904537817223157828230639683700255345030255646127037330833905541178127215444388051287871812456828986658303441756088319061538709148774490234966365860064880661162229315112429307549098028965828307668493809408338474947906023195368277735078362658824742734229227471774500146778161829012413377411021284393363046446294068948093726372920172364938743814046516808584978231986169380374136729023030293719850185564003444120607609186166989108443725223156486373496949719918471697242667005109006109392162308963758372721247318484044023798043720267866996994978270218972078575995087499197935953976776830539763744067780332103683692610836736943367573187745141340328544940191899121363771326368757158076698078973209966906986084562706019338974268045935385869434180766146470486209580596867402323205536290739718718236493416721346690548104778784679093992793910742041676684609893163283738606899978820738571238565038022624793381750746579158320552066937565264777891466762717060560597178176174418399418023066359410607327763021302940520939923539855513431133794378905934665786981758845848341698136159064461336433345017067188223637754713459943080758529121707652680306837936872004870501628678558163255426134873994451793506882697257588540212600017234694766760123422087023636122727099804469584980900894880522958384892535408574921782857476049636211469469118192074012693715488201159617728329960904149304588009731286445580954382302522322622414634229048488491112500703120755279567927246014979440800741954813738785015282765400882760295834209818585334372399072042588116495536047539568139503925745095680917824294592546388043376398852146417732543422682253022595445221116359075244414679002984841618588887953211733687340313256420986845095082494777697044535170444360329062692399258663099120000318473926083510692455624666538619505477417623237141210999312362580308678978639262106842805565680435691881039430184170744388680059087148322952284985406334032161639669567308249265482308498006457909218505018238356338611759080452899514556689247686038307969350138925647020131179241509910195685706992161110373683885344325962336070485096989356265142292057406471955965781886396776328182998795445529077226041753715672466759143102411551840356004493944811099540011767005585609724334201811900647890136325123905891107440785021507033528471947122068106264133850253850267309720049053122154829577872528919892177817462253136317201016033988836115871812990059938410013764326353916886375680155128316670224766482341811066940710011793480379486551457313206005293644418829940737355445857794710950734058171629680738895825531041373765379499271517349889185555433625412709771485197178515723682749315561266613901774190680201509117354481362933264281016982725671828631239770607684167814626461990792727861461129794073876327019391007849746020931343084818582048200143189733234700893457328657246892174027996395031530834678184117839984727447383570714022087819872502833010434280990464350053054911968346463033593217411459399874955273350777267768660636933527916926360016434346935222177582888709795427554279587032686891461941195580922461324887565088654179124703875414629437239442018860207797879858046677031769911308757939029183944920231540043074623161129746153156495772675616709136800751290935047282242961571873091572031450270156765137404494611269655611190350910994538747588647674607867526357124466857831420825887995484556643995739604037286542685627307181188144063335197481504073621948119094151895613280157273876289756945937985279664896131073293571863237112749582400532456834189085532820759780878038572422765864162273874370021231499740985402372023751858323134216682540743649209664686546818075110512921749081799526292505999903637189542796797006727456084124396759923113897122172894107629160458002646817050206021433997442898914348795675360617513935407661220948149458161591072474066357600314676455037665171416994481106200177505874840158612210485805615666082026597494807189954338145243429930738908424927878503360405549708993896406546755720931682466246678475652112829039050775684216434030429259201646423500031990538495758982008870003314979321328649070584140492442472348279211969160052879562970028951436207371260772664713392106921602458319643854666392717598162423488782328316616356250093807411329006937729759704808541967831592462192027264828883313829553071286190586825604720042399214745464617111176627783933770472719071539845185457486366812099801797665271317482343923684890817327295185047000831571415505768438698106484493085662091595421015984665007667997979773242353321065169196309281492764818759776506801276493085558288506835724943399869178671104713309224342292837774551224893641529732880609372740976437943175533670239011379101489101269474471123734881987898688180359766292084168319531180261614698116787730440982539890363697959689960724352448647442642811821391147911134490454066247097024289774824349994731239532322631888859503412029971596296178605002707302022504328601672695020571075814423741910816442376986181091283870934295602292515331372840024680818128244205458257878828124683030588923802740590782224247285883553448225283892422512402349432690035033226022337299864510083358557034879968872393054413352387619522340943589473418596772777871442970071780867673672237645732255263090071057658742927564354208869602672049943769535820237256543577253758585155321916727064676935104975694518874741042605997625795317880296377281323472948753895501839001182127821696919954717185949056592525609401323006279497142615754818982953313526753979343896113129001616985583487530411831411612552429342278148647332804158308190603508097845445417402727314127880505595089980171016561355789380105395730073610647477529864895013624409186931420825617011169999353633629431302692090608892210370077821811554033475700641330839504110644757117055372515177497386875349971886759039963831101320614905823709763471249148022077122668015039621177800515396337019528981297682839808872827535838407564515755509403448699960541767728180163081425703540399928705332311936941595973838991535021112325698944985609380279845309330715995923960645378422389177091636548148790470599237665095962689492706774466465088825586139901716493272350815706060032030759362455743597207081374674805685522714917280681616260094076627961213525176039068092822402679685085472069321227711918785133088483307969636142922191299770433989371105416346495631861237696738652692973417726505834546962309901390819089402409531342651415870356633188941511649534745861070161903575528747525824424886412061879040311270234788303116336959780425484078593486668502158883335485829052191240409880293788310526864096209021913753159156981617601338526058666042559644832928711548344495628356509010020964355116504836588535169454137625404685916853892249913331192610271262818984442053651130070373494135980630162769202529348917288173760845477481471936829606841684606140819955984178559246367838729180313276609685445090171387474463276635688086682201857002437056832210214741277396570863233525744332133205011985905752534606187698302801218774470590473100275216206965522063736475476250196106689013058112492423448924094476703441274195717147582394050632998749121689590646650541929558312669766691018728461495814165164877999932783244221487578876325795797844459756208461816816277004578924157177650816331441435559887181832525104493181092011490714228899072456718286613121437639728354800903797497444361731355193036348563579204290528926972741773603171001883887922064572761899154011170948873199999003794845467321912439222832959260200949662156819872986232136386972268418035683231574702871242631827698519661184526889085623591288171413580110410734190489812370136251149512925148712124776344134657731640327122076940417284651697671514054491565945035996810792998136467930156270521899006595646839806290578814313910420317917769664860016289665260356117934007280974360940927209143914639762282623924922384674640969872134612629609405865419849927146460842718843840282141823363317041936442783325966087306788154946383189540067274292894551075739019635321072793397517321211378530990405345913752011243202461729585136853159458648567194723991350309905513774391226431259048475116704952678757569893881675384658011256170146064824594063635192616076560329051270151614070047018048609266116262353118888247333399903786300161874610013941811431979416101863534669459867794391782960147417811126034273647682268258471072222422826895745804116216989022392742669158098850533025185694003386202190363059213160088474361013632885273098948786784732503292893241133817432001655727455504554334378262259342412550045497930108442818984763498221755723036715325086056014465635048730967933363551261424216087183046595897547358962958369100085000730221362059339426479250901594926365058407087968663199773354242760532708045913003177736900038682767034773818324049749195465728364572453796395024192238975115784808149800122570873189057013387654845932678286202428881235320263398559950874964588072531118010925005664968891847089688911987646829419456198639038462926437431752863390602470326734771849003118004207958924798818309519992621919499270974580310200208250701504288041789873752649833688518559271585247945979012373563922926498916731056386677910850942935281476675246581022696133022149785085683670773929117773902187011324498009443063243953923776803284381989386759084473239400159325364294261564415041665598024313132354659888220772254204405603118974955761705048548556181391818248915344922852028059701202397658252893393622389693119928943369003309770021766446074698253020526210531881648710266582521932091379108067516599105296533694515243864091215419812878186566210303567921976469344368221089017951394974210914680159905454583734168296603482435974164461774044996063593729374525813080787163396595033736779218816630018368547394993462174733906630006993779819882198173808671505565626325511654520530243191776880539277307906526001622484205644768854848906567993955180210554802116807472079191283920196105180631512112738834664150823851903724246090987199849735945820096566134488686716132456486012642177300778915955059456090253048294931034250777802343174842656522810279755490410183523733772881719992543336160246040699316145093542923982687632369765006282814936699740490881444618892136008083706239984086232934218791500081185390036736029573201687133167501256492371567410828278764573244616671930577215447877411315303497955278365400789313135048635342762121841838326196621028546084561117102514056671816938109039663589384671988723508495329394587726284985037544087372194809091623275330534916856562861585892924571137290716447971307019174214311323772979001031227007608312426716744372049745638265123598559612813567305638239990878028065153609574195587849691828080655948652498485951832724203332789104692364909867290315981059494578712790557611602880644621486028847180066086114618658669552771330379009367643172586776811079386560275548289170442859090287764341254204512580560290962792733140752600822562841656292263857779370570749771569150625633534852016099914079752582219661042214000136833489336365125388926638714620466330306759441342466044719786635588283726810498807977216768342174821845168567068868850453397389202866646425013624280447914933168422654601718300482783615391729157168121992173365613639734116818431212129626947917713857414415589426337081727035135246496365340330147482914043673134123515856661705708942576197144548046910870263986257788539755876341018134955133531940152704741231867396875663554463677194914439375910645485034044245138825612833781779243978747984848107141067339994870929813569070837987007484127123098966038074707359316667037603824035081884517920002717336309895070874531496965386503553279817347953604528899287959527095071065260112515250992199326823976208714607448096311490828682374620608267108028919253787109657521985488820888444784534136219959273903763810837123714835443595804127511103119593720783758044256580763917217894087698098891837457905996492754888175318306734978602520947274748293403771598511968099847592664863938175381506537139283173278921842424651620146864912177476260015026549959014128406828509578232896133675037505214618572679640734703002505032161837141904945656821732350267428176684111778819748260006187218769068969967713379702041363014634770601450451101750489309195390995321578486657731342211231175232354305656447312260444118708928756291034614392965971700406470697332096887530854689410554737900015399587600765274680601224903083453249529596203053090977504592493276429007714432160324917690066884519743308836756243016135110202140860872135150809919610467025132619669885261701696391831420603763342827059036518411237726446827415632838366623019542121697170019362770459891300371159866545818238724627435414388994346361437907170706643308188236970336343102596549612103068223195536398298406385660910880788984252212780000117629800783337905534932997625633128583364361204575571406269139625639058931997313185479358027594983983635407944673896252560811853937457470844860277229851802777403145460903112096513898105365052448650254918210765788357276293841381621478840852268536239597420224485098743768960833390351976138619358180490581983930559944175365238993641268801785583143003600392786549332814881337119233258077481156278505022272413781067005682700619902082073362253551129789406611139016000526544298637889120790564720941701343621267674943043381161009481243106048171051410740825795543234055999669799778711843615243433352015798170676276397203531719088833030954611814766241534402986250579452603483675615710191639742127207101338831923147038763269063553450080721264284403673582127072468316741579056605611614208025117392806872242472639062910731241937614045085526192324267108653306827667745185892861200958185289771853815554024232252299598038095092644497892350633553435682271810688358532586139915900156310055513480167880032154192135684985962457731459667797592601585154439525668065664561164046957470874972741875457314155266950574785400501552680965269475012377114533363372690367260272694015728513246762827994536746003412827790394066874452916031950577377655962799107157938927520385080102953725260755597966388032917847505893135476601102852382371076101260568239438101852517137653654350790756663200147040526941802071060478394947389457143990620891618206912403140618827084892075266442326804145353030433947797113653281604689765684787269565627413288313076873883110636094461757877062260518255090451534108361574649779031675784935323733451149074002438278606834135629976491526737075991581198820303345701340263402563644835096900951901979194871865076857600882260377968065680239449930535492102819961298288397658920356049158556353790025222755307152448296789322028365418257761099401518561424310359073214215335875116143254697280558292408298972325170820641453579362277371313762897684228309487042199344518128198871994506031848459997016211115770161071408412273447567017087292662799048857983778275313592744910386020178137011765996924188034829887249085102294966369619418098971487299188489871259042548663507987121438111427578185662781788812201666372591761917850731742124920540918808111866705734674799760503151149686136543785649329526498208603169200426832616736279508507466873956807349800888452939128412189878777508313615705122029588452322588354098854119612753809186377810295312965953246035049995933981236162034457611604256659120129149125023617031079656038487372087105546639833317756915776582918674467753851251940604507058858072485853703573442839510485122381178158712365813123260873831971412610860021818068246922888514805512283460457060839806944954019579549951047349873120812571181796292393372911732868461484458563732812170009818045653564575885246791881230795846251167966229644771644540548465755958423450703653299864450792952076888105644472431443619802885190872821801957144616325718635386402714032003033161379010689493164059163452040557343159981871465059928924314376299683264315876551224914373219715571672287581632578831153237405646381214827886935938298232316048898984453688998591899539365080963166473404157202232260600094370150195263147420419966796675141317056772813524720410726630973580364785146372557488019387061412793806231265573935717702874955573716312885554114408179019521140009307259859539891381399660473251838659249163224171224570602774956400910302851758828955489672332015185623406813568698583544837112832063056768374960408652713435154966206826436075833001993305694945622438737551820057574355429148941469920994315427897812516169728125790161435211837160556177697298335232349092586845205154880615983744644037579722725936065648219695961361062736579577677940610941174397597373189079404909262398623439387905875146948878651854028995533760034114732082761280519265899340538985917282650336696602076703558181739366912679985998290261165022946004308769357406024654254496042090412979935823739264553619552014900170109016274151310112625063986893226083227614572813787596607984364405644963305532570235021347875754608987202873105882132465998238876891901554491347109584844117835436718160884429797962342255838096249107936203309814339128356979307803983158054395983418428088065330555911443260131158456643596907874803974740726525626339414206462362969028626175492767226865050805193667405575643195848427788646970184080703547225669211359073009412620955588471312855916456127662880242192193823842640935598122647275097288308799324339830301315158160582885609454047513666938985892376867673523302932404018214792506061404767208801856435450012866139614504616798925958082618117961898097187215589801168643664604750339672395546757138023928472021690370391840614336240396602639973305441981894410593911221345244128305937802535190703033972875815492673568068744034321143203584251566867646196608389356305941286778298057109229664261862196456103393408844032489937188768953937642049906640791333632462807726893216588925000857758417974126302672901644712330983083102025091073620724172177300026517494627160259419681641516568086388564650873038206643673783221261354588739246241295517044876407367205985027998137909855704442419402030648664278427608858279687331364482281640399700622740373624057778882797054519114469472259091884099310643104495496423902730122631090869521370781593392402694439960081733093869713548578867284950549872401568231394571154668689968348857885695673643680416752824809829773667152370844345749561855026176225099627511288986005416436256923316751881799930052379761711027591974099776632683288254127358770221579177940256419568390674645734496129013437411777717739030399343219804037393614105431138468070393565623649919606432499371325715636836959175051347682760806341533149816174473095844449883059053720170577233059161777046674503003212923748290902391352985102907620965208465065097957598752462691041879967436231290708298139973012646533670149020259540383782047777620924771682885763658542570750418726252070116993066366121443883930179935844591607954219752680546697929170914140990421894011072396640160061829395675839595637613890000313066411458468679738094043417696802185571125193504842141567004739969358680662530171599302715217958461889882667759069982896114093359380325160591272828844490361851992710686189261335213833035077848293532244814058258839494928893048074317299944716222472021753187332446222206446944899320602291147670479257891271242827898623682022202196254885245375161347439794768240071017604976068838996047440266052483223626461759312577936995658778748571746698868772486882895411280598072569360878096205350327223934736550503438399435810234535011377828747781824763575942232167522905414806602839660130271816379807618480547594152642321899099898850674084645322671914901871565462952221409376634839710185706744863699645327085437090749711801491952114310216316800775825355259164053963030367738279853791228101850446771608985404207095163222069821699021780977970890350578439400408200587273241138523669424676720301222792432001976765893234782022949685733941432755331396838932509572983289601182895381741090359936375542801055174417050732603972267127404748656343775067223980533911516918995205598149063219747784357225387044514239054823393948307369355271589118308146003812224917755309420043138174602173134167223169007871385695052777805833220414196185449747531075595430022324354216328134531021654448266338950323248291995277794942066449467862123552814124118727790265479609369901175102282721194836949651976566232550760910331992698380308641226123837935051497080562077950175925441875680374527092414369996713727759935837003971742344730845285414862042075213604224425118565043088016287935626946423452510862881431031254771009902612925101088959290718722079217026954810720687554054474756824884774880200200259020299010079087723846012614317955156039880406536935324398801339073746337734969573679526181649308789588832603682660531594438131658372558515500730592226039427996674758961273829701815368384732012948450454330160470336396798022639901619643685578064078690269869360487957232566740693639532139422964984547811621713562192628517833700800158458778440310836915735312484769624390185762237660698996411921660478285667078562824710507929377680294774192570837895712101001428782734545847510358108341129482701191453496496916492593664361714619859474846958960094302988237923676394316482762655534307263106418596221891654083672321897567345707387288473932370007461704762081457433754906090256250211897080000675131367552955748265800464233430586609971620073547955611884879502747822652841414542868283007583914022402465514887994435059080202212149435982278986938519310546975259762795149138707654005751277044043346649029022751664631435948225947931179201259662228096079855314386513856091680877668130585392818730056665609465578143698975521704076021262658549133372714832346927515040020302214687609621303676779820474348155577802673614746424210700861691587134613259471105633344674878220136844675866805323880248867905690954659482868285886941323423637503485245318146276331610890324019495514166109459614375384758602196855829721768611592501063499362653986085572228916177196080452601510135410560620367908496921655268710502387604276882287758051202602424450495879102704978229064953713608612214855409788641292758095123378496239050451110650493308377406356099550306891969168780971570614555807941881491037497280835323635266309683068822563193926900069211730897627054101478508464196503101505870798505089183773476468711238362052734888948254921394200237539170070501673424460470789297250170369289524735292286630589308024521593104687741982137191739365665132060860053455058610279276881083548344984904897339169858235976451032964149090766840465796336990512547934214723809588984154973932805741370327411930922272950746752277520366504263273051779235859123841868568630094228163305125969691525594935582863672780869733875750400139586870838163532163209948021038288319262639858942348410462479054994568713111623704380172424951966150751333969623200637782724964993564950064308948721593024579867255697627514868199731834982515033471107660410434916329244057074616902724609286238859150368661207137336293716457340893138200564308021473582704632441456440094437996738151990766359935248007493265408473559490615422416220062412385759059539100371648968884335789808589976778678640571681359532784894513648474071654106616187193516458487175675756653344861596134956667403607979436818868769940245611489961103731569558046753372203589410122016139352512547109771203528829190831418472634480032942482461507440185198696135631082358271477082406978353678555315146047857595673828118016222353542868895253345717615954084585645539977600228675507550515655133593041867483072294946907571120117699028115223140889150126803922991301900616585955728512466704893040919313281561582316009608061055269036296538656590536386750368895271854270032004606318167824943084644231542003441204193098376590677472540810748539304964082340143085632186872621519356838607300489286879843360856621507402010521165163000270629232299774876567146525280173136523012898782988215990707080324685396499369208147033691701719845150947773684086088978480545876930496126227815361924075067122969114595438782076431618936328022391159443786743055995911726239055870368075924076723860883296368797126013770720125828672183735065709566786842871096746602529327975868966857198117964529654486796296135398870040301324164336705004375285249702613629641665929989963232075188638997982609730801125886443829085418333790455765706250594069278811772125313267340966251693486463202827018349605562332188392367448197396725562944647476694782139467935378651609602901457591780972837948397300268783427190070166645982230967281970483533441041608455374715206630011997589049149872642762939099284383759405753901896817528750410235801064720717997964477287262068313636617837780456928268688744128336765451039031607289158928125719934916753541905905132953952020035100272654615262340243023012957972527248685142197250738282017940502289865020284416905819314837206337928079024334482185265061646997044296765828904198855631346525900015584011372232351906040839166140685046788648183752269234017391784118919584645242763781026532223432862896574848701914297125364077652097293817533750654845679277856621554794543266903277649494572568931493874349251071702338981654543712886625288835631647190789563023717811438874564213315678790272778443366922781560915283973059312279746214629860845753337913055158894258303718871418312926879675220309045808993483413507317891129374870334134356191463660610808598746952022529472356832026979840208073670480632026810758180770514161733602227254631505381616397214580970409398589375704266956359356455567609348407048351244658584596367307024546013489688214001187162204145732129031386953344375601524062253646177050286994808745412208825530984805540227448784417384047485106733371273510015113471232494728540954760224191025459619290631167444839539427510879652515259484623394854463516503194568118513285144405990964478728320074667519967799304838712952449604329393416807296899628110471915640436972857262300415742573576052428686824335856915220029733402755442908241534046560909539589094920532574642884849108504948486209539084441941681176798728903867195958125092813647977361609829803803115042910190862944340679978982083410109477297845350745850465806360644563053948964678255786078608109142664453043764833148759185237771513794687526658306661153026611410746329906511776219975888885074685317097333259889632642921653096086658442362844003096062283390148313462464322275468968212964671107105852802398989129689697174567781254330141597378496187644670200698001788045900109822769254812315702276321208266906852054367996948055445025915910829539516078287973916881710156614870440735101514743968628102470518927863517262080537847928098168785988966543442921055049648885955913339984109505110594652613297202175541054141061870967745492160375963161328007301166756242509619929472617825885187868293892439770297247957153537773369684293219609748526960104616215499754884987309971640369926536068214793463999386139013028020584248895692386486137176734254416001358265698959748605622521504772595163017245427764688637648726942160645296284686682992138942403136941495620757051224717010608099798672652764007781690149841638066604871945679275274798812350365171980593897305469436436337378580591088028071250477157808005020930276349214349081937979701370524862919771871722898489706640324846057478124873265488099722143472540436881622659490291944990251497584569134918275106492639141722165578150570471852983965841317705151784866869375020907019578177700068927692250114463477023567345179256720951360924849531124351562237443320284144826864403328181754991814749113519780990168530627630146360005360493635104736174284049130914073335759306065973180511771236791181896301871147154384318347389418833695468053341575616891445871400062403719877780998990361331171335768494267696824618712437730404722089804068481240991189787635949824643453579597129719137136180989427522273144537279495170772873568636144153345540945872758307105260796456810195687542760072993823397479110235945036529559042596243405924836874540111857784036616569844958193101599000669339791865970381765832123643253283422609114594867415837339143725438829536881386506384198924493954602718810617799239650140188606224083750513651860854729040439749235055062748715820669766269810929415651789541148367295828415492104953928879450093636957302190024968303067585612116102683357309113661391863554980214185765942517161849571545084227095270329515687661562935250391413863365811764928123555234393547314251220177109592783779973624407138004269990535127576601730732109042031806667647282354460372130600572488944915136650117239698545758981513157040430746668694596854419429487101282841574065954404322583878261768040866134843216445954242665514886430006473039139997677845696458277752744429362962363855696298696427099223923442112269486396217138190835412908218512734965827743052901657618492921596571486438389396425700622587447746533437776019917082093557894782060349842433326442476297157108118648502056274972962824418116028267200881551302536139416395326098964235842441701938155988915010925570363125600007123782945157167030246949877558478455992112085418577913517868160639275311611619861642885166493329221201271765814592601222535933505625567285867146336862677668855461501705294320467050644412102627005225434219216814135352650535656806633830202198659338427910952075641328763957858714749366016996829098090460692538573944688716094515311808241033063967283914056943442246131976729220396952157505746367359575208140107743578883185654623798526556254393608768452689284190245156945452937197545561548745559011857833933690343655092367653334785325853940893218353408666514386663924384953527685499960633805884149154328274150850312266881378198749121763118907234454740561467107813409214094667545234334045959163309948716850367711478460337572501972600731199897252262313502848885508799762584112684294923095084192965556721323933992279030326384631903306701881106216770874643312041815587092201106259801548335465758710873907747670831012218540795097152387920065424965162007504058158531223878097374988925739605953680112663962958501316373445338669863797743833952093521295341681300821384754756000251901970325833736636994972898579469489020572272491030086445433572272720275905466214439801362834676628235507348740450430138484778326850322797863842633124853743261652744411258070166153801999641524620479878353050776360413322290515875713074063672174931796758918773532409277907831897766408215082435785125017907088219481313208072374861353701488542085176354937055779034304764472948523945587676795568638563956866093508024688469577241285017550585050462755280555122315425153703998476423924894275348958684881776869251149577297655869284387537695193843513406320311330224437329580982068855714284465861087116392842059543201598614686144074962797927912996481274060065796527179172474691318652421696409619932478690374196607172466952816931588450702677774501161668465515716898496347425789237636052007382437935686600345762386491941348309684770447055226635131262594414264033117954071878369328037780890369695708121237209416295855488443594448363119698891599315118005558626816021236774600192819544807406179878561863329947488030449800501006892470455008179702721327546796923188260090544732423450556126842039686190133664268391632568908155792948924790654651902519353213727049647166914815939939010428447026895079479822947023782697739711898804593893692391291778356225367208365706472717132858036174868888133698726178850326190306135042428477495923106252923148295564214583773747266847270212505660188436340133164266924945816376991065459087432569374481555958903284848895881770176912295271555548147549069857913423674400603802145683433764482180270321449226432542471914344644492731710547294518595192275289325389230701880906447230543603693183724004811436697109497062610950893019478067198797228983580396693111486426010611466820203332266655570320736053706819540027800483117861225733466363953760104990781140384429000179002946148373231502386299164434128755810052664305487249382979182186319439361377818959625048370686204922601123475018035536749693048420807435001846004266245876299756702121478292658239336810528087664583289837592740100230193367744064328791227364400864151190053737525452174433913596118240372471023628932679008398138696107136199984231570469631080575162814186756597583631711999747783578426185090590875000609448964721761817105198412997890838335838764336845099200998324316433165207117771688351043009007934295636707703052950077473549509737838192405762509951076714733332823848487732598402783306424559677200542125019052505609793541133423135781755650957075460511067402793362650638781692106700840678829641377010509620981530679365760191062251970687731792788003396226108578754680044990049897690618734914112448747567650746845978423259414864930738669722400684339012140685585182978659518469285269844308889586664012273848175923462181248524861932970801782779007717106404359025996198250113587279934567660407169388972955773288349467391374790481911961142537770251734768215028245690070997307612948507145795930515760645201478963149217311372200612397469160332843506100453054270437963493933403626210729770810045396416693007325468633443465753202872548178877349655090778801766205270308395065653620887440522274756236462624738823038707831376382597597370990960487031854029175099290535954390589457668347205597516512041014936044753341126932848110380284787867559837441098429512113983083748807490122667628572102509141637726225020741363482457256058596237022819496531694936506453657528903197366120293745981562477051511453164894559704486345274157725551121908919767477168968943011365831037722296917766500425919293288828605619603182119972329263054851749919935181575786187604158273920822047653395961131861744023350400621266344231617916144340241357559127602677407034825146030813986342993304264501173899120335794567628146827106204961293747704613373257900818201567542682239566435898393277138645577966449092834740022995824087878734317404661694457965872718036756170868765354742038876449422614996262421584790082047952614840173027623935456931572066849396934160439432376284840657519764365463278033744771446107234006639533504802208735526210112508611502405023802300558764358822316156390949357161393145305537760188560407881655147506332301264314580311064785899282579770770991178835814948318677802078244549316943414884454780470875189524654707553013711483665046174159437417928996485961887074529133116574812988097391043079110874367553521609841355796124182280474960147380887054997916327590261979602202243990901552758586552502450857363887982002075055249749509284585798320582287410530855595323527809333537797744536463712065003964141979907744636424095499045140023483863400874258223181402257943744617297029795378345706505922893478787110923190645816751935936160239655799312013715387600431636656919436678046444114618205859132830911616665139934115290546990205768317149820952800144559001073696980638869350655124486411578291588981163160346184113920104159603157512426575833046574610435090820569050051923096039797770809101532746815260058058650956895017485194246712218000850006224715849661014484747709322927729733994091645763905423534441337641947604940753652139952908266974914138698254306219071010450625828630426250410716921604722888955112865831051954789483064565488705420502563891326163823550894907370115286869200023816905050095497344109746895865247702843392163293929806400677900676629589416830813998497693589409303263232006916253697592946421398593031994724929382829593343504392815688135829327149672756796379035928157617250834362928094795154525696575890751472915902285937527837313294142350050265704781739266123498979268377215399557788637099989643911045613021203298540974630995156685979503218785909756379009865433203143163413067489825567049606037515343100224408090953096812471971280723116751017969507051223718267804002008182336557221254233172029900856034248715505550750272716717750831892129448804023238901053933955293541669073630805320355260958377379709985710591965932997644465656539925936303807757257274913310414110726193631426849265248999320442176586571775735325132492170404354829071003373908383234765887937572862001050158976172939331317194147080458877042308712110199708787045620906459497419833253191900473247214403591329398845768819056105309293009169258985459974514759865716450707931242037861117065274660115727854710133632642208615348293786922497667142264657619905558159726132975961707553306032362104879114995829118860530042690016431455235299308683358810591479360503882564836600753986353881143588575434351502107289960662761375875454360523433324675669224936774709014128113954212663081142154150777316052098933312283092436965509591370240504423292165406242768358710833027351427372660889634228112315369635769347027433166547500917622359809275086296331543089189033008934173541725723640602978768623831787668292490968125905732374254926814733876409160636585074628267044973216757252799063236349292961960217167019870702716091588820021105485164613021417816096882213980450766171053983410887382419373368738649793085789032240950018022467301431091089428537538097616900326588550628997741087103450139190824685357634399855137754665681055295720532928803375950194193979431082522736682328899047357577061550780091614378318622599438132962572829975535809561743283023260957682741149783876342691009545281804498915460483674355189821321189337512429449661488327179887146958118209898560388844153423679360683250731614264518763106671476030693161780423192520772848655751762506066405718828322917206231576479303146854829557495934064134651641762985864467095616070665348218665585317928287194353710327762941559303614850210098908968168719069502224991408653711713724476183979373045262060626926653130888622600548458617688488731043699706173563561409742695925843378823135293989697515080444060337751221288672874023218942905243016388674254303539828041721100106959609969755427373341338257031093639144275136251312230977119680126907810571783499635644014582677718904508670510494296936329837777158094264992489818465310239918497737620883567856101871790214187275678988736319443782782472225188841045104395025357209394808060615842254687419485895377040332960117328878041641541346592942179141334693980347719778031285936539520056915024693060690776018802471269833579555767987298677551436005591521223691576848740849207023272023258991741065502992723282371069517061001213502098971018008803291088837877041098263573726162257316609252901642704267633070815417433396862207781093676077788604108840074314876146752852285222631047089898901446980553209202106333815313731676620554991442950613343047364110845880759331770208515219178321473086924477381615127745103025032687703198868552937819563796492156254433146001705497649589503701777986959471803314656038655211129385142563993230835851974091144363770064526855560036972118476434334616072605231384482247313154437710994457127851196787301870031936799242943518533734490354824404502262843583298703414511580319090430112215885526092381589080751912813227213480700737715474772859410803777614519540650501369974344016265293603259202457044873696053590411556527935076694174110581080880100782053163216403129807568323627462978676027429320950200191470164107031998838420270452402109342740185136132195038348607141436512306557916983922313313811978991053759087043332898801288300116393383584526495208431463475830186143625156734068665488992196753534762550232171634573385197084504318115857430326138966440873865443780894041988206083667922759092128820565490797013202851187900517041933780796945432955779548979975487613359445643971895759070582194249244835667075088610211551936434325709937009472294061148143564553465232552583807027426163518115454371135724841796096113243456872758231883179073466863554217150639131089777271549507959216317653391281056417355027571535835766464330333959988358050475871996105303536214703952290890502428274631876417470159476323520274486546246385652916921022920441615288520975944058457112476314241537319818539799712362634650059349604828632181230548255689641561047412269136292351446815039367716432553754971116048512505991490037282961816149442798495943178574256472560436547119299007878562195499074248300648403427560772872085175465597240636136684499368779783279194020186183466500647050222036574251359347442584557171007099957340770034352668500645035109262410586159615127638239058099371848474902632702842859175685690320326259093241071228400873418231978631186828025481768649029960368102635899924713736091911907864303291815782707594221175797750586564157654508773931436531181954079474362909403846779639971009685850185989542576634480464581414046847327379740967511399677851151183939484766560313976218757400260728895517077175701100260653920010506995128009192949230781606192529788863846829972524067831314924135215976535379773517031536242328997760650413562127985436580508297027925897799427235718697589994517897060307636917621262835443255819153434525424468908025927902354685335823074839251299359522319891996155949781547212351651531335841545061828229099885171586746207406757479401968008233596982182373296215613083632617886349309002914450935227367877831863416703663547852378090402088366661525620253564827061308374624672664921963133932626538140627532598340032824560535572841753227120534440778705347262908028972374612965886962024659676993132741222700703737353620501992420551463840851457073918206232607824625506522265397625595609639462671195675144857675172822153024935169786109442537344482111824784282143201110971616559883522835144447540106521252472470636714659777244229010961214249085875736473685124317154549770908135072615338402656696432954229467779862182227640724648445495176562190394998087890068004292780908897086642171130936964617867043603187203590118462129269802929009577328954864465980985299986200980429527323394493093522434530710282769288605809178311704895898519340399078667202580754492663094384717971497205115150935251669887646253654225868753613370986353268641691744679421114858833352093289436963251299754341862762922604855603421189709258849797614513891747325023526510761615562843704858668401583599459060313445329626393998182866793033592101555159059821625493121400813359124901194435881359815586022973339305617200969015474086410872945746413276439679014277265740925907822071158228674565703194930846692967917937150557579242951286191454679693884821870586897836803145740374258306160222059732501720997304398422435401094252171589404882286034867010100807081676325110812671848662491599761364984315843375123883318184440400444565543206972414557673575473635475417402963585297897397588881504200219400099559979224896219218504294510477185998132107771298123533273391533996446563695168805547646636913945001408986521005268524941518417980756733134231989659849714715685374630416552545643067591924686481927358399163542025471767255115124482946719467106577619963299434428645738518167916877625367266577449936051165042244851433056508166822747987644321156804108812771497923915570628211035432588788772644043438825715743685042833107202199250681537765661459009944647710079717321286909678015904001943002825970320469448259408703310120091375499292523669141655311505161878343418546083369007671901414484285050785992716025115252154793284997634971058338482969777072162088725299884569343015239502728304152848572900979903034488239123196190368014698871489163202349938732896545627870901244638812840146003513721388517694713169582127413306641388511715356207323613765103388438009595344355613439662941147019814414372807548436166430999120112714866982764389618460182893123647956705660112150089587223564748137629604089209229636700081216051102453349176766662253793510402070881227677466932237261145852613881669804701688676143256595672131775704922990819579071576328807390226636487247162583842511243880459029052935701076769069946303119816348183097093818838791226820341303883365770876526631422701883397135188371951677470031980412526694366783560986153347648142158568570503767550941559045043571081737693694058547867889502712464698080644401399732321075564643369036500968348460048355024445414588778677880369323565102936768439563175346989553701224544091619428028377930826398069620866716953966941227212098969809569264599925669970542066368262858485108525256277476740627463770193490952990548671152471239064843981600719763391623369176245826495930412338418429801374737527347236839171176651357324917966868066372672647347506375996544203017115184126807508969937061874663534096535049794532658051708795120154601710537235876793171337051030071329470491680186594373392622328925997233284297773016231211569125652782615046131849644800528675756204630794620527567370937570795135198126275706003616187069762855226572731487935092740507903614920532453835015561940843022658166292885010722277014452486363419750429559676606738670974113950398349879647331763012375116592688193313630709136590380642767295574477866010762210609880740875694605039786318855276538035821705982370926379366232322226981556274522566333583282890044156055572988046128729355820380605475788570226606548791731838572114078435115153205357851535958898767478511809585367035203572172167188226344650790357545960288632035067347501401756728444391364319209869778649424084447665654728827879503121638466034587652317270498224148299263295666631928401836035895524489328282017527946574308512376984115671016906198524849755243178845897237203781831005542512697883327707116501444579440295792338597830548196210431825646258169445835297091209540418221594349138843850039608022790896787327441504971607090817339405437109632452055434246802158520364212108179541447477912175380567640610909592187572577154566298863694258753979294071066361332239711220621854364159007216936226351088068583669316461751788612463826047555443026563933057380026005747199698036722579370238952857180329182283920032933724963441351964011318465594035190986285567344244269527071391521497358416229645834027628147471636136643412913429353917283790529672723434603506366144035800904571866043194006429157391159780119499679778142226680584116638670377915227602694840804000997009122094523468700350073639098749482665545539084953702809734258414478755008555322520162350306903630019748498718696638293842128069612272481505781916319152309261697745697949614166723741913589076822494362216191769908539370498807096527985689043396522333535984874269604531855710474065221088735575101002803187177237495184066661016557475887988507504911504814947808732157744624148219602746195287127043831762064535543718486832737256450242864013582700252842475479228008372559401755708695636197997189133786138815321612745418313572735833810726023042770195586635248743517098171153154829979525546387942333981236832191925493603457015897057375919474702341059914896285546494929827950607734247177803213484666851910818418069323114756860002960067532520961611188077501835100402834675259150603568637868761904086899678392559986697067663504567771356604612232671674846293363972781254705515867292533363973299074872392117856608813572100099163323078654314797694539859044646677897679528769844209238918418370204934041584912480657572368976867142159631736813579564288614347281547501677507907353387760430169228433737910446115899729153935652737029667333083560761536921484244811845767403350289222427579841951754684586695039207117199871408373216286696845516496942822882324335208764265051044561002575581006387725016971355506175233418662288816522319829111074377565041786156516776285449488654876229413476425168442729285377980035409478658947016933686322287798209320304881397629721295094948913029298316261176204177087432474965124850852937208214040816834182288340604842195758006806922544164183215902174141154887566133906660984198084003119646897494970903608265349012941096156732624648127847924261164136866183906174752412293191379746792976410050884678486812364807531312856046713096669943127132088980123824527561251421822916579655855320984566588132823421316441053455255575020245554411596631679493653258357574564614387987122774969386038233200902980474663163594120478241938103258007184229952388248357275018645229851755262844286203181294779023456334319165820057346561335322651879365972318045620434180826053288050694389712134073628433371495576809819289905018070565875802349401107583683910930326548948254769730912081873345290186771931627843650804131431925560410312750786050109473236011217287050360559899886237676004302209191494569715113923705769307664121096617343791621985055966245966074172046198498130841477249467220997028108499006758554347544314079844059784528669364890723320428586156887991280567835432900451988004542878320613570195967268276853768717305810890539198796204000009928744013828251165376911622296558667730442187780606537468315863738684682801165151497444011342366635999593321806527701034005774353474127804850993568470523086946916896849524588839596954201525267972715204673934680732461717242187854188760555896205833065706303294539490488192090694871269440753071053007229085188914889005504004041396934835396582555836082144814722978282853938544333656001707544303901802157078057525285399322297252808817167402552806562391881110364469615735798550161759234693335867341289239440266903041712134408253785209959833622980690241016510409160443381099020672586235391405902983802486841891559602236191454856509060989267620339445372566687079019888673042053626279572023901725865708634426689566477537819296912701291846371909886174453731692013273129288311060283806191471842155332287870861236944204910076281101468705736660020847582376928298482857159539214467113541485014336438630953570481871090449833016306446328129710833037256151649441184147919346455772545332801619288355935294845399306805984601907001603894360210713033773381545689785355393603071904967728201484079888769563503609472576882342176261459247337988508856095809399374558231751647429477937727171365934414631425978724694535374205366688827293385936062023509142648322539689512774341040772468737801703607820017029381780077528078401717083641363731333522324542187131677283814602035451611171226778010879777243242902439754648239138403710958433348651275770540411088950687629745989522040196765627822350689253661511827397609950735124298104290912828529526657627318426956349886880099061963175786118732071820782671618524804961569807526577840684069397802004653980151268982885910496774595538116137586098637106078648662611990349445316697773824537984405192125176335129714150605874120480079192052486254740221904070731574875501677975411896839519554288516707465738778616169026959614396730872756224141987107648499088632445310623228390471434417165569664268267145240436007528240896430586509677283402957170422640537971113189940503911964979443950716175079309968284810621745862598777640096366986298445509878736490357128560935276441370203296459568564371226311695251634656383429574099883706557946683512808961835160546944851967486743702990484044187619241999466019730883132896969823766650280505351839026057068087460777332609403384546937386126783762466089207594643235411681613900052370291268239319367042531317382901083706037158103380563818340967887326791248435739632025200730905360456017459954188655978333755874503084802506284226299770134300396319088964753607740429128369836175450209005298555998266343878432554918053067967410342792745578056002720849661188052358766011858781082890360614744073402296649375624594316401853761081295309064044836799271431505229446413696491063408469090623700958113970603190772077836474312987876160686075532994249117907896245372614324904037026361609408861387845739249290588908261560137715869772145381026661389449091840720100030989089770815458106834000881643641152771446082486408310985796530099049824907991280427743186226918402948871659482708992561041377859810340084233590491810023481083282126371459657802271518594554590857463642610299868794591596348546705268349995181923598935168678565165235043782166055000994805023461996401727509762555407274783813547690108084570158604867812429143642673249945245723246373889773008261804542233729835202944796984810116764144036620757145362213243343849979720640879479105742018009446629790208776342512144416770407129533452631706711373746093876075687883615254799226441430730236119687419566996444159480418800515822278177331729715972274882670141898695996400251274793048359949616719926609066749998253666324337055933983133784311249465282846478174884654285711183914441331368884411842504453908806953370894737612057918761092798773963604418435171239843582880228708283816148631337969165702545668302549547240864965284019543565137375801517879537603023487334245469433492306158248406869623029465282717441871996130294722747977000501060254467233125942061055981957232341484857394563200637885462700512520618627549700426918256003782737502252797434214539771173128086609962677513481328281185046550511120685039099987243981794376878174250804988485559521522968180180776471854121941312970516398453133210706058936559517065931517148325842715726559245283710109630632333578880107080861168176551542023792128721788541393001285476216476199889870041958772094230128582758776178879525117161754887794344142702622971492721338608607330391061757516759623651596281602436517643897898976729762449379660818435659911434581677560881177052304134212820663879307943284590080474992040911768239228238924485916276142493377075607425687115804726649001483527892061686972926997271108084300744387186227659272002106802361759211106184162722269008741044795411555130247263817474079106286235162345103728729199727075904721613201294834509066186599579773780311463954696593416834501747191813741691839268359738750034779995471011549672919764684741148510072471712531647891708584027145459352310341764380527760600749700069905111281849437759985322161345453250247665147243417791094249176740272685530200380384582579445534298630242993185109314752854878405153839339066913301806502190247657486091038735283750570703450888883130875135049587947565761451529383986117257229089827102844869398745314600391044925943047493722334636457609013725125885420928864586504278853347642952977027092999326429695203427740420218247486240978506389186756394831419724753956613630502373617018223549719747447622289060391534080461131400327617034111024149083673667026415709430300489095584810857684284915592814841035119946090380274920601970473381225769088671107217479455388537161456233515052464067407341260654866229275980925570154237383284696038911347937730410793861237115006535904926160909921199171826163786694925786615516500284783898228780917901011995814610393382487944587365183442830693191990149055670175685677698789125729332684571101554448303189324463855549661461837008401833484328142237287142914867303406730469498966658429484876929731827810319649892241291309232259977649224253710490619172269340136684466085825344879654287931577596405914817695722571910114194873235972331660693172047393126845129182919787561606133613335734007198620027052815222245904014193626891694683788694279078607342482321898031832945095040659432203477905258702996318787138797811053036695873156753281211173775543273235955983849777505780091696054989000041309473672479291845850436488513604231540091007402505294704535982822467648946364369709188639720112321867518400778037463008561326050858484239904121229131633120955489160255381041547687528029777111366274456980396787623388432161892984347852284719783095406416654054032590807921907164513563459755485328871307525816782900953394114006440245138191071187254546613090289176732299389360786619321423011011144903899367333566515698731542503676298647018281204119913037939584473306002136736754636466199519918821524891672012377703915583545674701556069858344464410857926282069167564683349964034007479831490009965939618599333389280007202191681653691026336224811690057608912980204530597527242090960220049828426293693107073323299653210965996073922886708093772935615841776279993716498812814682894786634272572414463570428256671639635033308425083219548269158536922444460879943002911602889504734802315666550614510761868913575144363423508995960219139993654528713717966955787571926282984608227444283167643098082477927987122155923124693623145433079719850371027268128951372336697078381038105699198728968036060586391777064483724528172658846417205630053091629024508105828602441452359352018350083169642412168325820914048141474377504635251368092755337712688692600996668489089858635369350706617438873657458872334985029693838238730111625122028995069814536499894590523697104591672277353084462606209314467397805677201247642615891842588125183606889931803107289902728905678403691636503257722493029645810896554374699218868968199358553620423498409735836706993837891015219831413315831424568415887132801684128369544611460473302235077689559901503195696159882133578475796896093171598235006146959365232996930419464288097823565500531101355511525657156088409132662026909649899645161562585571189128055774406663879126669924689607741437341284077717616873813881748837553560229737335341435788173189163672048647896820995879649767148239752154375049097237730091171298230877341844163910107492495796501137210234746747034874780322612297639397868851212831420499479931084747002595044802778873602991938069577679896885471890202139709743048359070169138630299948016167873689190266677570493824699413290236613883220293062376296477704845262166212700431857646706744175894306547144001929165525090841272002365412004006097518321886482823835541391456544172233767892036546556863643552146515162122498466391774291054414933807031788633256455681377838981042569657858583537087487075857671794918068852940810265924741732367265297539831182635133629731174023112864196860369639735447980017186091182338622186190840369223302688571790284280689159157090858551011774832757114845349159140576830096810548331881110806829367001197256171768750792618370265004464560492736289128613128051406340450579094906803063347080104756179332550983998108459623553686061855635253967263073696354018610011926307838057215936480404451124742884291417420064759769704813052244122664086389647164276144875851049468311386698677483140848234890797594160690091593185746837663358489281011187255838343341506616438251758330831352326108061562036810705901985161349418581133645130068645853735639133303800482707929781972994322559792960426783215100492407885860687041340101079276401309451911236555840545342813252843115854580935333112228559722472186703916520765956972491534514746968017057113937660280404179929266519579273820763629584509609633219345661807327744674149063522949987716488198022914427904653956069403248970288519382068056913456871024119471521870829422627498780023169142068982251071986554236035316123858970151123333837748602318703239834880911767189341826645280008039888235130109475577601387195875997380158849374369365849979737953954486565718365994591083319976883872476814113159818399007645477872834604924399281335128048642586298167294388146817323847282133742071854423102380342942065801750818101256599429690153960157208110493465249682078075849989966362455615109320884987218515028586245777388351989994371493798948237232773706442851810591398292089556375662895806577216583557198723856358629943098736013920586757996882908752719450043639440696699727031497193470850080692951987582856645239187568466309622536618549708353285722585579789462480253176145860536998708951308747028979060426700144943330842175131317953823933340294631567413439249635634133696021694147035487839373010615572405157681693842578822577503687719877527621201473090320687659689788063377337146907922464057171391753632686886497883508803908303175752704723747200519133908026455502090640847703975750018030776560794547349279545118106922602293723686315502806374426059923330240931080453578798203642087773722974293658339608019816706884482865186717929523481796104761658012299525492419294244714217275106927692112352906584519657553624349140432035408885257507597694471128840040582173459873994741184874097598706921308601696966249446622323412319920705379943427432428280285926625791653223532264013889333058142024663613184067886263503209257035855909495035507075870869176173190146798805639251755375522902110222160897150744021588025712871274854153201550112764609556218188300584870320127667881614941165478050303778619243996150042365573687704850145817358311695739080498346701524884309319620846632491431758095883053631027976067342619746429413212814350255475204183105111440961878197438307896720426065237270634749196474586439884666474319767900659768869361521720011208303249645282870315775813389945316312610485331142151443598774469130890768627899638525740814259891089415435992553563359237475087013310578179913245195839290743484465232812375022962109785512761756527967908551020552428112268646031280109366419574045793129024914152206908408854222068580422781569172761687561693596761174765477674302096826586636851643101191868504045380825923849385693146033957931376793514767184037192134289062672849547176162361988350176399802339551216553275100539878353463904258011579781278440697185206063744325765822783789286119989404827269864301063148580809987481562593049604694882785224187739415057149992899653157079576292239399643583746063398401186000212974090462397393662263737086771886065186463382599139028919121161899367340114062617936139086996547488437465606592907611711805737011175339084688216530259259541947201421006326963940046907880631608932652968572596464430972788768442550630780936139180058467207710437079034385223890954932421648050810024014178255815957251208678829182838335720111645978068215480428944949307056711061869620361801426864023241500392406241532501001518597499771773081022805655361787744041209550642807394064200785163032182418091180855420604723135154496953307341427982900530119594968554224975535199871930146003786180947662826503262884857151773081724922952628521608852615031470581047013647325380079750373940750889527883446091167816005823578277759266113100700602341781984521844311458765453501812904206290655424544130035069147766069604146246023930429891551401363740972168298758637492989100958274328254336543687395267211939164829481253587411607503190610052347806661569787996715100203603319479526164379264995731362323975312305694848971081408285309220181344938733420900134308378773269687095904118092529009484708340022547678912533975411968213076061733598052597730912150796301820415881749534714683992359247992295863726533891384074213845627300448628562109369137188205733047973744638030304125225556290828004572665256135858824917165661527115074754035912194990503134280854269159419362206234168457433408244414096193775697016194940795915276323809233368921183285566135017499560360476186689287741218866572291325785530385520610692630337723962255434255646488317551089178527983069120872314474108842011274974454085503931739813281971381058222315966098484135110782576381438502358963101660163401699796021285675636198785958668686442359681976981021945771965738328945653877024471335785322925670919900177341328678557304305643051895686282202996314759281753948677634145560886868105662171097542058671881084359028141131616414629337005505974432471028424512268677612696942902847532320408575529077126547049634654554494982216208183299948156121724967062329065827982476748443346158578898155188113755092829432955567999753600578514977020253511531103520357262022191155119707370047682090175159103226304364880196225911075817127101109798890632611272499545688557344548300747847875760257725868612837623662403214971788490219009878169200540976177659156297214477497687988495606871891795413830201883496741365421226369258070407329543331013168121240200005744159265920019608109458245274623181739537103373763268214714845708542211069911104822406991457478238989770603937525231535293050350533924220195062673453529015073422245655215833794016222548977813165711049950562770530618463107716405695286642043197288041033170238169839634153143019594330048046871569233176805785381970037831592484303145771713057791808295271527479292084522746069114503330953921915194008382554908542105216783452095398723458041025555762902052355752961914611270364790878453181832758682952879640770718577321364612860450120866078500485156585423498526154883604802070093181430031564864137487327801614696144270703724292328041502208313957596633583216776066039890940377390097915984082317470383946913929379308698364794951420239573420368256227222330640327939579769584589705909925644086966943189069894943466664509186672890604772125323671413947239609875229290687690337711796701700010589024513465580138838896218934648635980031777770004161189432908575862729662820053282832677278995409007856483062873468982623577276468884727549268713356992926283013625093364426635266411091225977185353840271722097889126255332912417694876587135095357395720128784666268307776705725815753308568854001083843002145759050315515444709880889384358035528850045883474032451623365006149164849170982779450314470732168423484043563681169720493712869721589617199990794903675664593549375255532552205575378160359910448851256051241599521784425561967799995051892027437805749404598171165146452360846230548780871139542664244238581585371040383002823886129556364978336875898875069687364168611065289616915809638641519357423553242744946399235794629093593770910994781793429807272645058614245152498971407076340420863988340735911606018612315561457627762889517995436748236462711546165967120348540691599946727387989406481999087002503106186466728410380228082941325218917791910205709561973537149743229967569665241015621295696296951250892815637449298234093161441085926662153834136886643514913488058349174307161918230265217028875587735258848382304948280039093827002220979194491504367258413688613064360629374376213039277491770250569826355315665841969788484061442502228440012246994703939111915498983945514546980101087294543820177915186210439120006054149505627575916541044395377311785731839549062540595430981177518974052373528360073172716477301174334057443386620476274248839193708447537844931113752309745751091693418803716825319350286053143317987261679554679390723364385917578458371292429767177004357045382027793570701241648222200799048636625983628809225698483686843226618486045608003042738830291790878808305176854943821771595273547157809844310137198143111323797100904697923584436390438849238319704536666303306074094584205793567267851940361960650731619455525384186840026000856475538524241813781212929612539493713870213343218684845860298436199478386310722481811930849364008819287100089710759736965132067875867805711972476168877421739925495452578397470417698600122410523084483550237784611122968398583158348477947067387391543216128706868629829791225026569093594230170043895763193812834183791409919405520141125312385337425534976623063114340800340424781048888545105782432748967805508795842924374629153700340194332556831272253275575437505297070621573379701145754195974889902680559141506714979370110206143062805497536231897262598324557728700065121074014214821352814676442148595505067231071800913365388316947551223529947467252877424427167597063792937947018276252937738602198393464999504053721801871706051017490819479829487619857949250167004552785427171035474140775540167219014451677482727829270625625667590888404089730359638496453342725850259563707437656860425287486160349902584133529981120186886617672871496517168732374305018252846130350115526421892736661830142975887862076493441244777498148562538797635592002881819532000933996436179722046358243967878452164357858801561943484042723940362943668219458700804524066004063283104367675784976161622728020463350154966088509869555847932281498893283505131077180391137936716123898040222786388028949426861876515647796648193643401773966762208315531299687766040178187654196176488413646190072325936118718681182049897902877121517441352538378760559029524229194332389915005075698834869220974506504994673232563620223024255261513772217719459262688065211121296260872572918017249188630474014659100015397655635281521198827934935003429089603875427943849668867630662265356101569308328998365740285798903772347686965239961693120795413327508895329633403704580910854215257052811522069303045983327468720632203666388648191849004182371527442199756231443008406072930113526649945071752015289242884977598143307368567203930133298556072083866713849539697402529118759538031442972560767851601221919991099350853356475018653230228003699631155284061991840350591805966015743581124965765290225289286561168241944254681422329193284904881713121596719066057182979071995374701680667221071030112592662655809127420500419684996020140168118444906104683882610513342920780458404590053347293199089002190476085597663097277082391349606264055718569177243542731411667102514801305240121823549411852241798473253200983974025025893977449476909101489506755286364238239593807985413261279809359663930497765404005761788736603987976689797935529348227351864002849738650581109644069339077024840474750394270198491095428799079976883334318532906817334052841757312127984923102591362460411664261534650207679666723236006163993401654172411213143948281883808889508595894261218334720819090115221325400343206125400757733847696121954977820082290402382267991178518258841224517856902110202684443546927783754956743052737051374411875729443125525782875882892242926493117402263547992302266174059955800564577021295980248351950406303284305907406703996229908494345624846083769599333770087077548864189832997175824426202099476726526071736961495065562212317061865477686111354937764973136580654948897669184430134257997480498571643202419233782151439745413084652742071379563430613656857680106475455707711702659247904056622467923353780506582350177260829490102707742809041522360178808640759332268868694092042807596460569748129994893801303226800047048130107024767457342120587115615119612588283182080177633138581168723825912691647383769887509932937233558846150022476459945943612503778120096367545581390723736309093836433269799091792647077864720277837846291530896076829781916567116901687521977501255895761005085745157242803930573076797759538714984461325021103756737483889160816937218542265270221896841654564742542427411260349257031824094080708251817507302337753346877106984402060299943517178632616425715212477841168925349652495680663009583274906578205353597880023717246909340155442310195717965646223797083563096841009234729483927993130122286688386791724088135058947569140174154248435681751369911942163790719052973928899335288687899452491004762423712634850929735904252598632203667501949651403135663460154243814425237357323909953130242062780468954020711206077175247023474261733223205243462163612835112007797761605396678761538119254377354747088158960694625007197300337861600162184399472237643573771065276791586789346761738682783051993771911653625750718752639554458397727872125991062095102019828799469243533391322906353985629362905255656112463193182196450581100930198976068229180234291715056745084250184594988395762473123846286347292428429799808143607479444946254027708566649628941056230082909713185935592588385564145443945826082847757399008383584820535205276037871293359114342147400185648797562734660400385785732859379509959531703610520599076384875362909050619272116925738394322007967524390564831150024320687433413170683439046140309131210872247563038731106167841331750078245549695619844869678498575356902377868965851275845635616756741914279798286267225534313813078930306350011466955018753043276402271139626817639448442914639568976386809236878081373660564990573685017348334851846988698361510207756223986896578049478420774688832621267169217630533948884243344204450130043660018536593731254092973982092128126869633139983611656834049548483983602726871077199191631596628602263294654802699628914553392576241078429312486715389527773550985230127233684932710929471552836909170916098777716221453374453784156515142648110293055806433870765836908198560073458979510992623323278616174583585856117334428056784834495971443191994714388905227491707375098481161780790656649030930203657930235780390254179397597465011951956885378871326630056025954974110863918701756585611510797781815460151406219504022859127293274479478402181418205365777604372049011680506656253325982601239697539498604215092505360240236334920694284198807293443749862481931766599112981819357358695339296232989845228143246873178034416086528668173518749928260778498388380057984473264335260863950876519608351300651006850472493308709333089091192902062914756247765966063301012330447457429261376389736240786469681457335935448696624343381189103259353107040665846551261917622062395251372525519836603338890914582133446766676763403659811020249819296729501789119619471442504313107385134587230840379381529106328783596285505879026248721557367573960994391004888480015729534150044172972502947443706307954835426724447804675327113670913744961872718037852057508689418453503114338806414564693740597907695246769242451274895581400703191988058658021520579510944290153175513379234238619275733261186080281058781400375700448421893355415517060649752423008738527919046830780291940105547426792781808192120891700898118546360832709364738297070707251959672286665200679522351646209455925239065832741156611848738327867559388120181992513852637443673864683911561206273361244067900542583474947939882263482400865634829625680031769965156986226408974021354045670852004714729081331182115880153340244711424011358579171161694474891542248084001174485892828898531593861129220480486137714389673138825487305228721868444230319313223917326694983260828210060135593839720630142361011803123731140812411589296448141444946360853912451169616172484020794565919167815398544581511280358787463857880342701134242849466484617618564612612429779507648386622678723233147126231782752701388800807141576408600777766171799257017050822999840921605562598036928624223647773877439038513964823119898016288398385395956609069279364664647965165161555714819030520760960719722762941087361186486954135939779341683241255228400204804753380698939115984457511017379743924037771494260952894125119923877183289798486745988799894970804196141682264587689114747253881970877715547227384747292654059006333828929909913584698813021222546335913319749331817266716657781041220144559875313702754710455859270088715987392008700343710640635287231155051675623330650903772776494420706513613253647729031071359696149604859322504609808844809373461078178467731667392536611844283483567860502114390143647689601133621866539713869670547212282188855738663080266542464073135881775988022805594088521718400288797852363551387447998006927873708374799476522595596211033862193264174006517607655594594027521326386472199010979581509925088869474981579589330218874096159772306280996400964069969027673116381893871987047641348543984889311337881730664650335790677905133133291749331684940462441046577039822168920103883827852660678235505199458978810091582632187763094134460562148660671013979322442735716735264932060324194299838628451386252784757141116975911355055768348956909917774399274592187751428271839930995569563386761666713036528964584340123484310335294576676968212922717939283213341425628044043835399647772218417230228525013193723307250484799608690077608937419367548455456941004200786157473694499973001480689735754502292430912749780612409709415570447811815856738359124050110059756309935540659319589231757839046814995789286075031680673257071574832273092908240479315512659949709965022882336776372130857376842459334578914085577548667952154181163535316916018097644561227153764922861383492993192465102784345072328823629534090360177647897628679120272238535959755938826979017691352414833392017584685294021787667063759633904849562832908395412318062698190785401228030816497982578650070149973901101766556314679694348467968663865506967854654158906974134128576865300546759095277216851976579273726670112629666996092944002258846740329836723706326140199081572729772673503201460924953309155651610211814170415498835887865239293399773484944915020095247862790133212313895876043584111983818354908520595824116860437551519775116126076243819267063725826434480327313190372568171149634868183355211254862824179421154848318512789420653976433345701739840707868103007744837206797437813783180289341527491743991696505745796074856851676499645979599860543958421107987187388791455839389245603937005283438361483340278410480386006605424868478392616707473952693438313845054235621074064462914245465104794466693082129354535526533093090384939089260926682031331333684597049123922102542553466344181062326806156244371411222327876381747803524705748370129231153855829399253571020149849470981482806037807250781824349679490131395349263723883959058001414930736786437192251363599589845094086750099181696292790044060831414936187424958923968277959490804799373467733392487020599880942965557741978879988780311932906767088765107267011402417653629484370902782521665549373836851442506993032878587397713855493633664698904125819858539114156267577930885124470214827891365613038974905887305306211503902129972029654740960043617089584835150395918578974860924626198143075249095734482332244896832190347504258552515945796328220460184495340716724225529049272680743383394770195985069812848148269604106334960010373086052326903654062110414771126152460939289148958424545884744926524906888385302151709392118853742369161007080778955754540834194821399469457924925388878728218812901409599873825768187896570170988088906991636645199069873027091739656536384558763575019762214200863718426330791611659062160516780199573877260947299027542502502493732590919781797344147563416347716158129284686707186438448769434890302230057585690322917232817351661921698534191606899433967671968332727142261386435745425064244947270028344573291641369124090681321657521194649909222633162353377531786103271939312483490589421138192236538702121096201127511456205906239161105797226863410855946839940050614839987810589250430268762852107133032380155384537998101518806490828847130152518466299822208529886170870160331979971525075405413395945674115279317122370880501125603731223712790801163784374718459612886831727811369602154978045464863685364075201705566332104098903550013689427504708089883482916907911873939785111781664867698767691167142532878511479068447608289591461961601042362016408545690099248953952234442946391513527387364110483918062858488918560910667232232648439577226400880624066523382238329788907104805802296704376239190371545490694037589628564315908638522309826242004001242307554280820148289661427804340779923503464134594311255374790419052818038733205309758502234532564755402755753015658519847406636370273506743162468290501868544529815600538849360629341874978947318805268954998039743419420248291729249872385896664296060839997335284587843496440362688128621406522455347069191176584700449241831847237905403603236184661610646343942327987065542182546325649655145105868598711778218838183011326473368037198535015487388395044225692008261980800978705800495659457443578151928661127686516767609961421031793689093199840639004300994977317810015688233405035424926779866900834894012644174511409002311168637901988215143092664446993435585366228284513519871467537778466920432010585604333130423757997071882527316529467031149006490934653213617330652754894367584456664354171661144116665482993013046311919844656719718276108666637880120872163558224876917564011958071017929499740069465062433893347016671805831774585966831788331856830516391768709845388128450875794385731062897324865831143259028506691828608498533016285690994439676338530097440709103107557147637923255873319448044564430920958206901298770684957356619059774145995810261141828925969498968432203794959258681821829766148842681046780789125739773130269283384410499964815012937837239099829639674403004871978060978344429280484624821635386657302893722327500516412567840883620953199315484323711900003858140398271245445261167402057499729070543201650835502568190939245206861169787982796265045986030382896709295511610941410081008362699722189174027333147853906335616005761748188196029317189275486622110312557279833572645118320669578809345866824340411123703703728296235329899581669092326134438840648124799986641988795061631033056898545207592445559242778380120711795419911593084099996003525313359042023750035773629997695167448948456168573612937724924872947298733246738051411569742614360942371233906899717857117865283884683727606282252725974608510376050042131276397938013049168525637214956742429292652869830181549413017434383440396117180537078080462728381546475005281789102705968786342268965417455061285428629392310579196869837687343716486805620178131697370855110627731594096295927720294387735668260804616969478048048735666329149586539895558988027618546239658965936225200423208750715615736138051970248076830591941958759174757641955699514183094812667247840508542398775451053624887750130281835694710289233103466206585091753080802845058214854544267283931895003520080089766122196467957286675517298869839435347002106917600697500176442936855548992755154680489727400750502608194140025525124894673625098577472919029039578321120746322840169279282062380347890742548445771369610493458450015555531279172635825903009048704892767055583054972034584396181128001322173374867047332417534366736085276853432105147869026896577619268005390619069380534682089974524291265365126871675391819963633226480431921062771923484692432592976325748795763802029757999071078380430397889711379062892213165781171036975557073651876995437177917104941243130483112821911174968457439814492689791035644276152975556792084454534012661922452513426469290224858890745718204209180186890161670892678893598400629650003397081762289886555866984285725483373928402857377098693785576488309943608089283780375709246058022219904579443705828674193200614247611864784063000008339752193721377009687981546162459039990687609761809109313857103409234722071656761804979303839761787076754438294863071656280559591400781854211875001711838488343431158085518942911593361548296938454835139393941837275948893413039030499513305451535304918499046827857882112401286471779434668250113864019090923865343300156798975341271589227877228768977118502763267712191073071382162755777546101527594410158440287981451369403908904556732518184162576207459411682979642314550217780625882747342774021504012321094363526268748135354082492015603940934667456023945334893700358323892365805569417100456074391449560722982394772796516001453569744595601488343253549172998908640897617479618609810478027305001127636715103065360925153639497304756278852921245647845648909547393593583051340757544292174936013123720493649546244064468835509031398031734516887872092924643997542666096727058610812092432686252892566289877284052096731667555104722931300243969895189660965957806118876714244439270363164067553767677941592686073410368222136295597936823677634415279227725820688127890663081913595208911481175746831374859234897577917021055354339586718344002154847879880101692599801097297293284505110751141912522817714312285462802906672366912215522271770487309142104220097331284859816153353905073708165609504382568877363645036448715126660282181789503343011364000498211951516423199058248128965292560538839901429239665618161541254591791981064404871703466080356079175631523119052216029647399304122471145349497341219139678539595076952716590724090774911449461619756677019685289188000548240134662515694732247781186883034189160603557788211244061559028042338023441805860032048853207213871390344513204531850391221153348904395449229689359468974088167805754074215015667210257066678675633328206955459719667226112256769118645359749551889028213891300423632828809250214562388802289315274685122676506119643479962860490740553995945742447133875563309162023320338880771127866719295422193431387415646754231072172930527853083001347215191393691584579430947162779617826860279455913427366195239694997973760149558689554151369228242670425373377371861782020119426817266659416842483993373960377246944907141923636947173282003064232464716056653349892937508144345045287577973678299108489565476485765031363779773695445070394992575520680775755900822261408590652665413402354823140755554847400342192297684583239981974632528804307292705266358736947587383698307417915685204423133007422354268474773421052472942340687327969771328322821024183281292485740711006246806846646001065469537199507706967717320024111303050447982312404083228872692296917859159269417725626659403368573134096903225345601320297049171559667281184129082086495660825475683973632342896361547870925052658937333905031744107909666793445356295971560417283436479613842936969379063323910745640308642651875878794696608437040286885202030207596153704625378557324086337539797765696741835642484326810827686022940408199114982351598408319286962619435297554608065611815609607617245167366148972620630324087757785332666831895735132623330440185143996109726127078316500077631128524322270571004076412473298508563470714555670925745864209225299163310067936659750624572101167951353277557139831252149702312218241886647862306469326296282993402422925373532316460805999122998695400469760696298042714684484690035368436054924707144744601732357378986094385286379517852931856280718861643193591163393813425922529652930545410655378116890159024602943630721940509576320067235013002823463080867469966424533988938601475643625397214606532573816592399322278408242370735156765476648971428964420136966758470004480454116781195012284787032530328121404629459819244691561821806795338516746012122902713438818272899909132615743235224502136959169831803672985441068251320385555367604685304987992289870236957375983391689479184193160554004376084302221170638123160314590589077153530666172727169316308232361471649616475367736725577809997614980363717134801328455930917502659347718322678520116842799002707117454462346947500034149408087990788172302816091357306259731007698868629310837472528140163454641561336247629635635293755074380029304329056368594003166284676261127930914263754804303010821811420650815847051829610792135442256929952739248940751241798956813415791665063849784062054399814949006639687355141563077325668161420553566498929238349267115637750408056246472560484115681602251466667450806245870644566814632587578816900489256998829677858911364506874471548347876480775861660552695234077211285464887291188952736251618882275915739427151751930760832413453256281017735400518489455270845871866992487453141404739738053596538710196337633185615008480053271723826689531152399405687820834165109708580887210004141310429938379200120667143571553006490874979181836710698130599255201586848644601928940589369530108239425332298910605399356638070874631115192282635405022559717365779990435326708244103760652827120814302633627090279084075405682222544980771013039899180687436460553269853477581232532156661926546840575345479354373843248055938211928502852664886884847331315911917075298259830961949682177683690181745750510055004421870376658334933355804103242935456265331729495127951704500643776179030389504471411927986844255191338425765043572343647516835099577331096823119825863281720162544603158552306877668276374883909057996834693682548422394583460907278689352846338884011828910478209149416202528175058955813959066598979067901351787834722661437804936046437421288463796970195234689173599745009717000842373473867993714216285171884250671823537477011419935841334147761606393050109758804588359206029189399239592730348251625376707133538530428608688435905593908716671238545821776569387240288142210605798554482144340045099351846671254034093797830901858786722034986995197846757261808620188912993174398245023382135864922474060305411994226938486071878441958825597068119888448328150572633994333218017131580527666931703989893148102456733455472495527625376021793376107840897111792934373732024606852220007461427037635880390961691883755643799806241958952090169546595583116899250752498215301660362800299159090349744818979639879121674662726494128766897274531300904056945202899081839603473582262307096690599769947899866479981557296694891356255072786462861194217140714346672765911753496874165516983357194865959101223610893299459995701001625805343826962387355967678476066317360197073648911215149088895579595457428402311999359108564650845908680776488664852825705356696040327619859630154610090515784470859848951876426853284752029519865811342208424638858046991328506495322573765706189285272054535303351913163231767330966939837287832047562188379459780667562228744142862320385491235408797818229305856008490740868108511096968244203817062819035230184310837218966024969629522924487781061658369889614404832732503284666754168834405206758534281837452507343930271133475016122898541541670505975092464395911947296167274996818590523162504168123371105593898792759762470110896225990083944857062864128976879586299583606641169395317569126735751117526553042335085960403176096186647738555624380488020571749848399158425841671664843525745087481675826182108110991248332840281428391535275553086937643492315438468487162610735139906279584240310309939618938488759594088380014189536088527253079438418541779824649809219525955419076402923280809499873953119242746491925928618359228688601630016004413723906427930659133520031213322741113674338533975369503578393466928008158427653236441897594367465399805988692552496294625369733945566135846943380947325174636993557618763056491800932356715798876211400331531358198662692914764298109535813019472900274881817002455471784700571073943102147975009290470966003122079829338610984391007602928951572249477897501841435916948777738586713406060799043808269029545937438008840994384736445439066913096727705201503436887400561269869470458886201543019926455380005182878773097760146782625031879246203297327627767607920214550065092078455012933605493806649644698991243582515108812109369306219168427330863425835415643863140134108314567505177807940892866413051695700606507286549762374693461989740018283890365728575774833532186994465568230451385073835622873243993934151099372473304359451569124255523352161391442488936273137425943858341855751835814172053406936425850683493437079745004460951803987179989915202320823714642561595407622512912002895669591612766599884026416601913899301659697467569530314733963397020835098506603929279883498496915518995944643041969299889929011229765960568344975302741414491358938166239132013748979200731858377761090729973947151106272600136334286940122551579743426998746238800707275385429511654536930591666517760315442287960689334802150051454994793678498326512323899970544149764154373813123533527922347385236794846463234727079511365997396836048368995720113947138543873918862492114705614835863390938185459155599523895794052568493345811597073262829476972828044577862455576002700869713982977402792015475984515504416061083538054979746048781326805834204015055696910002532897200915600117156139886081488387480126892585061614557620756012881583913139138137978484053910907437438993067079804954373788618793823751749777237141726190333273683526158081950013228139089768469395174708284540422157556892170944077141004770859890828485546350869604479797120526080945821321737374288668549945403252297292425304230286722339045985568457909019586721615550647565735182113897676100672640961501164447157815846305013263404933083119800727077584816898231463174669914446569321176447041168950052088984502962204324571417170718220203480191982068466480933274297079948494685691775558576743297538820961895952758683996658116845585334218998568263719901437043840256067956841063439871325630078509927038546355924661416125210573648666258165816292819810175148782269898741927996372654570991932307974773406886029620753802339792962178834910323795945983715040917692004284657819363095560653285888679001034673983541151795840984071568079471521895562612300782243580980318378069129844261877830274995369679997833744066337556385860510501288041333618644335093424025988497659331674642122026225885885637298116924139092409190260621153337356616888061151414423607731180025404262543040504319835366836965139866459864802074932858136273400337124238934686198918383822350951321602414732741853327879081611559997475558120539415372082198949317250300840091962524864120709476470559084689100988379301410804639455478666208134583363823703993520024030848581661502714123551310204873147037843874924282595528558562775608097502856570828832227170130617383413593003197486493236594884646442361206009141540249339478071256034857426054281272029243235902283196801732892208836624194339161992797208110713347414057445565229852317554751174616676932825745467405507165255837857917211183478332629150357896403792517756186316730028859400292923381582316677261607120716356269547582104212546612927317221815104750871323922763278263825595465713795166323914060534467841301196156208975565580433074401505549953327523143514719909051139091296836676613260251965483449610197536622038965335141696246226305984713911717804219599142657775053622349101298060603788508300095884460746609186395949130691387447702644505919290978700275795078102880920163577181176367618245072723298851283298221378307062770932107008913534882908360867272768371937500070303486758009879850178201580100771005701164122796934941727545804915758065300123972005471194979608699201258551367146220804795803164363052287272963442781424741112521590926368544416135139746736221129936058510972224932937079625295509668303558514983796214463535644057027489523490924293041625181099195204435852735719642894187650927738955526611065660850006674561917059467377559076406413482459625367866193548560547511050002286584258973649098803027230765563909513247572247626661414694735402280305273857016899275356504831119552131608676423562267645472516692153854804837589043425284008451222347065357281797630142551619800261190465713349847960290369968145456322532251727659554955218275898712339928447006301205252162798771043422702402318900433178115779918194481721904906059604985856090714586575277544309548739314827204421616985144023861747600199294403648060286243271875576596303817765219342808291394755047522705318331799461411264123065665510562594880891817189752632214639584214589567855653777021721962281782525172338180084031460457373405621021165534204162989150847403602972432474327816666254920067557416565496418450912651417591724341944783144881868179270096524826792757013246308273442137981286323848894058936771660869964031278934924454571850369621632287253849420158132745229857811412018987215682778891999460603876922194533094129381616917556210993586303949308440515785472736301865263179099323331159946053209054279291702634379138695012297341010789742000947840134067756388442059415653673354966960175828146127884047667208849036101437441590310542920100719016354161478069555869496639846372294025741600691003149711761533499879995941953908003992932445268163757447090288134950639560288377017270800829303223208707526854379975401681056633459488263466848174491151653034495913586299069876962776351247708166921987818532311378979697730860494431140471283225607812549074848009437837027605542383040392419299089798800314607726547818250804804975226092204945472236455047407043091085116132655601266998683404420056402647064911376813256737981297581179606631413677364620474360254971203331666248048630185687867704386542385639367312878867320334569464778347159040706690154790094931574466327877472870538047866521405171006068019518712116207293094596997365244817985939191995069959865171336814546612175668795279749006211088263627304005828959878039847872541186802703959991490688497419998922135270936785663323172090214087348432209141732027633573092943120625880032918426407938840875433169345791954611594965890211785061995330325387549275905214782355032455782456409974413256894808497782921979027796374376458994223695843419950337702555065849621808597861387458008476753295457855560629743088131967409373391137180900514501216215478850664308029376685063275378421839390550988902377376728467349174881345358394175710949965050502016735830405639416143566560977992940284920963481848246416433543634159944484665550965950009670643990964132205421251154882870224339932837297214317592159367743278874178818954593142974572615813306823264233072435549139024460403228862343740861137789134160730472429390734127480637642659294353749300455290505453908367411251069530163369436965451333830547396605379047665554046384343790261125762175398077159711935207067331297539320113742846020054797654584917160576848305715749986026360544048406810450303570359397960199234609348728835563956074135324594523380023705307602782949701602091846067800053657144297951907610517728527231793482324685608755245210162415326512242659346809121666577803221252749588535557857005119229846561575500665001707485379646165139893854260759450673157305481850556197890245483888286345290520468097761757602898981482459787840023358267191829356321665001854350560871785938134267593388794691907924925987087854590687500477871694982512955491986813997213902914490025078883510690922182098881793932757998027677527399194768659643526452934834655775566492070901365542510153711920284446948664414062009577115830405896407075572986244836659398948721438671262117955753090716505752557252571368551259641738323630637877704713516580604496679164889747007866200030744159490777072850669967184922913896196415468027105846684165826426034198063689129154394744107785153178642400223638281310203444210094041737810933482848767810793727516611936334743534004217911608788386638821489525354142670013004940437123629626955811566973643413591546859801500401679327914642155185652122455634898550065569257505828049297733967598392467060120881744198987099440263665105688771017701825211849942283757870353905736950030505456942399141360864292242639852868419272734431289689889100905003570668675177284799372431681809900114627043382435155347332377889099737877349620706764985714281556399665303307253673044861567313301087373960464156266349766191702774118426197782912020374746531241911106837800688966085527031487442657077741636686869880472209357510356322252899665767313505644791340616357971592697395787946166049659192117978411439034333515989195491420652812316829679253745096808903961181325488874625579366357218091677922238415649160235464168950584834666977422255028441454664037667902480432098181354135867528946533877161935141973776344457820629808683753182137845107389084612113396501717834295668976231500353015220493088916700095182095403337698064391653670728078759450064337746403149657113811544297083539605246415111160542157849682681423969585980769163823994706473130034283865671255042377389908649935682825981234397816476192059817438888825349844395733738165021807903908982192555151005046792373119001406155487966934317723022417108996817660644773005488156802658585011520177559756282340854515894450592487996004401578755111669597412402803671686399049612116502632690643077637495188132772203071776665986213552628512253206864805389274075057373804889388689754884930994722536396786661833685206546387443606525681607110565031604540190706386323610377568249098084194151624322112658524115912825332813789827134876567534615802933873606206102937635711664712651613410554066303124208007423830921690874433812402139542587679918656838286048042527585452178770693117718376992672782556460261662610985078581257404572251341525811210711317600863225248710813358390391040117719735529139989762280739926267951859794591224804322531011127972044730968307516632013022956002541322892011704298996211288916032444825945769906615993649910826043303558631346000933988914703995648279997137165231155314415616734490725099993970089099264813332296779913821433697030373611896646629261436835001710179113886153032723814619317043247176705854410896802527591949356336471314687862405465633276909101367928935155771958153124484808783444249946423790637372830827695297552392995513031250646518858652250455376385619192530050999629949810043135315761406686776368541494619082674540680855287100042469119401826690770136856618900656729804729978375261673378273059629311887165509099585191791972996143759951150877556427468504200150637305924111040288625843232086227649120012775370206762411302985416829523728442429274777327650585163067628609545935891742719303354971035937705015749144905213760057533917264785655174688892587695223077274547013684170135100737515163548031174918730627175538086732977517966274434131746324154810852370013366455652427954269797924782319221998145231000904965483283838308087688534457579132400729312991538767314574453396607388285117788830098384839146048975549865435759550733606454418436297524020547538987648471990039424050937533246225548772681493560929697503510292663185197596772493882611436188754724886163304926645654201229666190433477321338462980439399089715604505255992924371466018206659428571208376195371500295546937709279867762429440824791372375664734455391938046390597512249669749985485219265973103599788681547528083501799403573833268113666665868840631443054881225307657827822924438776479665031884217062533935034046616201139987981540456103194423339272414861076027956539348894710139587738849284282781221528675764716146650007259541347168812402755634004927385762252198039525168012695942620629831882029346077351416217396310278079668665510547533356743831133453004219336303774572591728649052086305367372357764771146882743826135790606301167449558262851675356157959270396954695753219780238273746860738020924975263433743487644366867856176827742768443608648554809267588262586138956207076602745090303323067514117830536068173189742940530261765000345512683268042732154090687388106570231335294977601533006780158310901256364874644660156724529067505673356636131331677924778846088502832298524269896242649016929939017024309280446262257214605609737966104731195597631252935720233512437092055538713954345629803528805887661483286284721516371371638982334811313743357515238311964232382009955595648321550952259168578368297782307259696003249727992755108427631252920968307537691205826809114855575906163623081011034933498334784825990409460416420707303035588306440863214687403075127177705953315963991193312487518638410520292153217812484866415509994678032361401589855783767384858677617007589724668255654350378790604862526079640827438089481409405733928900955171196687831823438937590696536410515184996660201459430223528291398519991821076515770811169295778654203179200579144174227596750685168811044880551502673115206124005940875138213193959371508839417192365934491049741802293099131899163941197959787993212374416138446309593886316292171823255039223836954405128349043562724619118655851460388481866610416635141952274193183497718648066234022078435401702445149825850231050900306196674256426538704804335407548553929293465113255270347650396324296639069927785353866511770782811808633432685731236389162236356197826884883929240913456439296274667370318516555888864120135743972672670029031157190627581182887102655444818149471237291785193731358229461127563200320968235934563910557453755345887819381284017476858389884190624778059701401011511253974262014138822848327255427831489124939734665836809734404667220036124027181451128375194800409471556241214598572143751232709848059169516891673946566501098142336784433531601960272650597589553119507987160850569358480801360464058406579523852528976790572466849804331494276783795322036168547922173139126456420696672218846060931659448406558765464680468335041541196587978587450181585569810172539651701445220004524038275300820758301821800391415164536313233287185255525894871091076235655659752760376883853036794683064080790483803911671406766551730523465554812907073047541603311550142638117830615717199658132719004605490836190065587464745584723881598632122330326359488607669343195389338010730126814469488745894343167062293990050521801076134994004775454314744386544452079066553971917910530090937244338557811112821558375248621203959416675923404967182153394507951854215699351610899795187716858776480333980279458029530746171917327008554235930120427051199733394634621651057553906729004565758127467674716516580330706205600838385126036423659455808229718300521270968105576724404259699065390440180917261318116208053904604046112863335534353176185072060975310776975142479430107209121787320313090588952242983819125192191833769807066625598479067867287205020261990563132279810908275097736775922988239121401532754789120584657724100054515698717136759192000071533799846081693239897504754650305795549888585680672316699150172823957699118345106266041562330205613215672904062919478224300914453908043869933128275561556708384900750824253285800219262159262914142794310169653480413537011076673973993944605637306900477704212477173488956739085059437369009879410239253240884941971987449346468817841274957865110914229693454681265062102474086034028161580657242824960903376114046743422057388289816934903323982415439615678997392291226832572899124075072325818995112616116776085507152139811329145836176796470014619007583501352072311065732251538787507056413046113254848001171929546121430919453354896114703712315337563502693522565387200359016927013219603998268350007852719927241470317393380427384337730220135010058189923091564279777122618410245099835303867294709441373136185086127818066952768256817693272683815442754878958466819464404156114159837907021810188114520271977037168788563863819932091531796670533433065594359404567538146046755209377630557870943213077393857214419027870087197200724009537585866698523466775563497689907604647338683729829425298497589400618891484838945639084451490027239319231499711865841382921251781967120010508216855260233159431356165653265163214192357162424111358789511349666088901495157490606208455034379475795307821883285493387848453252531246934669166762303511773792007402052498882162945747422355395508645043846373096142150150888669517867494498963433268451833178608291272204712058394148512135570644394317673232418064428528977177002496189679992567064057802179677546666047866499761529892263051454087589518713930041087488710071026066999718910334022314951993941555651132213446417473456281189764240915947574363833577335096632794898176357983621618954404056709102735588532701101983096313172255890925478461430980377840233224429916724850303112199271422095661642940196133313622089501991252899238452180447605218437953394743828331432384078479220842361660751075293525331137700056439895785726964268289805826766850446135652171942364534400741247236854952173177743555264403237378746629702548687374846464113365028017423511536201214201450484104363081016559247290873592162308634666692879791981025096038789418683068465671465964694047331075463232819929201282968128729019234186593981215661379911379145808959944443936726841379566442935917614293159786464330053194229903824767270098339674060487740981642939409087063317160137571444247217400779515697092657258738129454096885555587352203487292713115814865692359046204815296743312635205901424287033681752675746232786868655691059695915727653714547363681733376146205629833278768430287725276670040788909846660171782843994198373614174704162665196954518746073514210948837169696179912480729235248874578349722241422604016943012542622759756845492508877117764504506894946125827575148934647296184685989395548325282884664181703329289154200113665804289684785909831131830687883129981445227351326554277566206973241240635382805140445611924946826956742404749724921438168780195616024252454325052631153112552576781393469088636547827485343012128208918305125476770964419587671693314778076487179712135237367214752310826730075213497908202122753092850942761236798533483271292519276911658154280653676497923319890508082004555227365204431298156348317641109987568014669942975589638967481134081217562821448302577134018044525137510267970957893658080791792467293484891101859201848583222402467425759224976251409833458976817488227235976300439025373664954899385360572661443275065247360751084670604955158088107304655359259107308934275531533837506597818224064036912853626910868802381920065050387055844412134926012448753017593036388634682865875452978956268299726095192521486657055811434892192518221893634488958044637329158926676480350374401217436549108084648921428384307768753097738306029400337059471322299120894043301664039783214660911222474597076161122502986239462249141953162331042177725826965533171259291550694503007908245482485589906340863418127930162432204292806411342148455777395389312197553980426771586433527024082272094605491950095421187618539063535720723664702918407840378559817602545134732765431091908810419724357922566701419917646804770499856091060281369339493221248605694550115208265852884761139264526598228004903430628271036227447317307657818092117653912506530662916931048620939613016046427672946192117867232693237671859238500343966464934109334304020475237488368280210149430523984384188742060780485481693828266952912912119263052249245041290093995363425968542526171839353762948908468727043375519516580680049665472912119093399092005178659510431856986097185207713940085406790068369963887753214397354181999175200901507564986445516493089303117361889451822252543066482873445090487304690685238265882320301586919533278311759015012890651830566763193715589160233856586988608270869888865778081484881268589533052918809805439997656133072256442558756325614241314699783891213394088564910448539433914579312465861219426748170039064919333802023335017904043942519415559550037196887678231184114379644988785702066420322194881696279376011105520570838150799503948526173704726826373965109495513132221484338217746991548835986951712322344007144108374005984997669491271375478294339880924112879982201231933976514029329769202130295643337694597095543321123255098588936437719180550679960205026224955294635890392601500099713046745381214962050681169609355380963715541231458292153006885669053290667313112393370564650808473893412243141620700024769113470724784576904028063022127133104141056419090450066220190834348020736109036126219487881019932195763335892683978094272713467531246131036764328166033267997081763730532112303367180717484982228720532133827965024346035707263639801162014275553239466053276662084795104445339956983540838719005143642376573642917235680434671284086650553849020416830493126668126795389369044164126424553617660450021426258606233804463237176099575430112030642381799140329357863764554163195203356120965881727699762976079806026009210819867053057719900339422840220404138588909828563432674489604512252535466156590851934460559393882375833034911444536004260272441786737928846916654232558331207607506413050036992760432918030623951340343379270896326164094350688545157477011812817989830957724452924662744506947358770609715826513667009549485747854153220828733149106379008142388812735699310234947500302230899782882256736281669223848332227985692460104966533349143403428035886094008515028575279052098638486497558977740759806852999301172733559263749313949088708165588470800823474601295563170136828899070377385402415315806725206604123947906481111626335317258930113017849143795359745678663044216592489091002261956717280639793921982705407061349843729849851495170265805686301443145224307574846267266673150449935022874921932566150544343901266288943682425636403656673678619319532979702727816375379882594048704259219214089053008578007600637391759951482051035600809991758061078798322115491305916700583973788192383320128082047100600944237109870362646706480600881837108436194466140617538304517246922701438662812537970348449822909737514449006699117212558130561651682826233033400093067087247291855311283279201128355569872752199023627285790047985608906929626531091163119874472213703800907576691301558390314686591071907257726474566616499061637345718374891239127666700994258575894892800491324978892704534030157161864592128522759737706354587909565061491444517244141840441328468879795119496900086614104272045746454693627264863624618247557005276264364610888457283159656698368046708706447233732773230864315739720247762711353599563638891066367006183698077293955081942284890882478765921636217829980198099485188247604619546155580047067939463336128837532606188319141706640291292280311345190680070147333246822095561506833785287009828983237936987941099508504967722728439626886989251369840671261089154966176608386889013357490205659801575033472792171931006119367662578785829679129606511270894547540805974762375207071485192922992120098942451152666105159565294540037522005643890543037285822127205365597058285090043176342401424906978110129028219288704431612398914011572805389798051974352001726428318489687377147906465751136766874636543839797427302949418025195370818474277642846883620232893676947394048202132063112593092057435238851826094817908649620094828762735557461313520295538718544174185362527916899655046294326826156209136651296143794071444737507683295172901636409134791957636492633969241637372623286055094171875447354037781715501610880027863469846322515607648407961897087044218686161527187055187276348982027045289588244384680405303080156222440033745544893803265232760917383619644487942825100582321587824017324766237483958603070579719859003754429064036821436258922906570337096549485752886705773898912727877097582046203388450451349552406619224617616957617690072158238373050860774598232118853291471008204334461924302494998078865807218282572381720866542477491208078265262873624240311723418562591533301814848135562708380210382563209938974228225446052870655402303889464755884179528097567831267939997696326315661398815803314875202469136857009441077934709175597393334383032702873861724217851674679514161099091613345301976704486779801411915127584805662792952514293675804194125325069141396872442456384678460037064095330397620035739965934047770572833900685720832434809396120442231373855096380618825584820480509251999027750985361603338480618773723366288141882501081022455574892346169671661412882250360309957083789682464619336018223062160537687580910347216718855454438850667583235903255604618934749819116327048220863581542526973493195507112927232104975124671932903020337854333900029700050783000351159342673825913833366249250924063046890356777029054344101237508643959971024221516423606011151396047857708908460379872411318182338084582124279502884450315714962328181355944714223363343700276306795941899392899986505329519423610746998489515516412762624488787081093480783400213726167338542233545099583061703397064672281938201700705225177833741442935701620299036727373245019313786080738085136256581861809759510959365219533306268258315307658074829410547903540675755500751223910483227014980752402842596168842017918884981702110245352484204618017214346141289295317241448139585343980359849549067452848856652180274202956486363186496684084772940564241491855179654506863247856583315446873607459008213190600544159667254256852984729341402973358297441699386634553601422580005990560565741597541341810529471098898439268466592475525954040888233441173335634187383151400164926075384401612297820281244426719221256696730721491526106563045495225074205801594842159575116568314536446908850387900419797952738745855198570482638512647388264993958857944849240202700082617008783098484522753455737376484643115468187992518501084348213520219742025106950202990700624274800411487275617562298995664361769362856325745116858553882410885757338757556967282452627361709353137012866456533540635502111628525123209242034898859784987240742233227791576343848329615322405164030113978781885268560123507280825781374816630269955558440161856124402541027132130479947940600409649027725377724737622747306770427660642697326969261061897220465306899993177825751397586057743670599449298970631918102408705187622309933044684699897524229143447016357729770969841422180412518697253795305192661433505518611270127671935916561012253619487820646963773795483798037241580353054103458532578468581887770196428985380172296473035216402915952256942484085446725876628818107982775202985861982459066733639956981559340247351275521841724210459474189982677547284489170968795210516027762934081993025879213983808793900859141504155038386047721362391068693504315046564937211170377533862334069241815996301453774918751927616439748257099754905097386959645733449679810736323945377762214996572234004612718276144597030139169852461113829194620304535005751224471332214745257717745183417244197241730074572500644199300133674944919169716652659877695042178859979384963853028424296468746535874605811162787539263202461287687764711845792602644531519386666305079216732305249176913389143922870147860282225350780898207986253611850078924446923865845009651910108037133693992053077215468843259493828952274466589586649826691892992996041227805825547825201050524459423432744051122740392037972495440149015102622717333223054905794195907149737540854048870546248682111787680385382820069691208247694855737726555852757952119144296413582240924384757433255981282272668096581951397523567921469633442676222769532565256511132668589850695248677564646363950934100563158267683798760551756022207475690833320598585524182386962832860844647718340575088487687279889414730162203718177062990680162350969816774064796607132144018219864974084103472342708704833084273645771319084870353297828150252627929070056018896922987324627669938864814420047405729459796237971210726371721429423404683637571900509812168530956325596182846121833514986558167083223785049507914310069044375795449465597605552397816868286132114529377534672715732578049483389823427883676135728715798384754638649838659266879735324606747689499596750762122811248860999342669802671893375880563495820586773902350109527444224738251761066003728378726382945304784799343670468680790095035542934961522545135378015469513540605797454027973578780841464787185731106489576785811075884108448320378500719910113035172231399922199332811413700620175770698761006889632797242013736459045210002625766279359715001531521304799935334716631365426559405036013464408337517805155657625741739929356318462327987181880380686661325804297491028680394769133771385334950073376186368026347322700520025460878377719788840765725877048941288338800372884061810181339229068231604981790687868513546125556336747014364935544001770140335936900353826605587191414257193709547803785315917339974586276640407129898459090467079655447321809826769223037087205741512639700018796473302369706948797188926772328474095604389143236186887911725616367787990762777152007239839868416305347016696492739272119655372860207365339800067975128221738526790728990075168591859482906163664090673836661503050630919482849376516114241038169806487279370222244554751020937140615056140808937899616969457700424422898908374738008208955958243297555014833970959537380775639251572056291598320551899716283620742720663706701210359226184522763372613606896193888975959076475797568282528914021566403801166361664833109282729832878524695500350808450773672481630195934961777265789027762512929337484384596019824295398038785379641052937506586130174737532981280523610811135289102276746148476973644744695972121273809512760915800106221612197299017879411501547584549088999969616677175887997682349258710087506871018450234401871814758171609423103834793972638732115780001503282100411561064539292948996496270054644620675487921126411611012096873014472791978891244121779716413618911577864854476939119428310638294814973358902635790694838315341045791332688813807285318932019795340990008149174742967648622315736439679396549157491545060186482541974824217718097717662016567370475064884155625892298189062656574799547949330485406564062185290055807417128005115593410550958094931035042747822674875895679374801864592556558504839989564383506979025542441381459260691360572162634224752038604903443295416286236544769907436400169627089344066686366704863180750488996399313139615990655832243165830565631394473975393164050460363889170495153646893881232917897856214700337674491910673743584237819514241567362914925328255645651594023296060298795139066570441738519217185536046928518038220521527266476046168243943637003442067253058848302628202676673303128906599279372484941945920706802336816315986058126357941830446405800064923525233119492607826457601107848157113269334271939255043903836567147723521504736554872145521834139585121034799718914302198152515523039189219758201894917423121460315803759463235675722820287220720011577040433778166675313255930678082168973242811458776110214162601706643740826806722369598797426321241445222764036458402034232551368521383507158480569375797843189005167020438703438903725098614517484561027123155502322151951209702434221639409387559153559007910592700295676513182708683610517078968231358311861545360819537024570375533235980879800017718690874551365779232283295651338370276270561748497388761945079958320441232893463760270312536151180744698033700103351414708102773700262536374735214857540704918121823531111531749941738947464020365681950000462578114957738575996124115224199783370239773820710313665268988781790268778182418764867424061062749347609359367526545113379039728520829962879645627729390543155155307233942702378680162092333160359254868156102590719576958796544274813649998357924213723656328979318660368253763936344836777354722165628045343568089447648481147432664834118256640527525548493999243872359613324859167115554860707161577081178633308584549566482641983817967697033609078487000776187800965934458373009300384442489391466420283000916283455158195042050951121363480405045692434255540837065245910682555072973006598516435455450205690788662282524419992766121195113968471556357752764587463756616055870051117636446494939789849556144326040762005353594536720529269051328110107116062881121494378016082830888891926084487510128045116798324021393837263806315409206633234346652299654966745183618515593985041091782459052013684072508721478371842569040395587712171698476700173502290537104820050516507717381554099521941078333031735478273228871863737257491319611280204786414562077349166122898558239806749312311933829435563717970675709917345648836576136389737768919379089641099354413193778168692676995217570364569955200518759783384088374273599833052247038081445912037227024234589351136401877611315074023971694014893448033283356531220893955556702660287307913731008525966698727853755541711688160846804154831884940722886181016135962719536819844101799300366803890907676756709323331223764187253699291351637018383838795298091377472707429589501313376339708203506514852944991869749061648625662679589774201369479818222409436669941389197480093175664920566429367767902105513957931465519920718759814492209264166418238446441989659945241142603852161304689747846609701639455080738889078108447060668574305725937209656536164164104017425021275120746384378180284478220134104412247987856766582451627034743917819719504220391855335750053593288991523157016597638811443514516264843919947108429828098913181289397968458562272666283067728505389530442761579739357367194685641547633928457171636546286633142433087720218102748724532989323382330980903437810774679555544417625162099330564190422813249480753063639698812947572531091755451087206229710572688503637346636854394731255419773940667172946281614640257717630554188714586493034936873462941285550362614837472659400394623032087810307923111560975162377498108276731758667022471439323974058004282326126583498007636022282699148186487188844101110922852573384359141117357646974547448561983585585520933285184933821014135336763631259465720146914348626879528525031605165927536817015463668619511168093917245807987550308216119933124014519277830068093649866749463793155955115672246073143046378994288720690928879432954112867832606170386953774797364729257182505465533907956327788596678294525383790201439102009329377380008744367519024755279980939104275090942042162486378005311018718411478046118149639395069835426027315075349988995874812840747317248610083177865184229011354521788440300475903476446860862567748683941105449528480242304254730203300904503861072788968067668487631211326683414692344952173622056945163862422133101219075615011413073785526614536009804760742263218384619545629458600176772852710368762898537890360131379468364211317659994152429571788495414713902739507084798910419157340441256495201301733886188119283823515407982103484060659105876723477900946823212068902052016133408124890974549765524066652703041428206619521818620728418839418752374003593717065605918383422475407259429373378660041168493335686576435306840713908157162134750031206367774509888210086924129079641148236757881055249868940170174252833882929418197717746951379590278855746493600280995489597884938484022346304653953828227785474662385697062152163485179161236243927250434015745673051650142225649467764565406509070633753303759568003477232961562396002904796318332390679063623830436089986383025581071649113872375098268899654603061411550081311794290421410551770549074837089675948100698214550271549542174533182535856644993766431832497683134111767244347586599559454033484785578777887372732130936581819915126523005911200349623408590921687034151976794102338887680430378703167598901028045071294383918892126828376186323157298212796825454530003591192016019975007253275548836140701374200416369295654529683493777171984254392694635400904390703435871634889151304328048510771008970732541744239174707912756373361230044242544533838182434372998130650603148907385094557418027910517539285071204783362718555698160751522535009289794333397730896676738829091026585906083790901399522905459016449097987530019256045653471640961156481462723402587987392609999505554517074535647554822057454640647875657272662705900259573982899957891014304385153069471957603498351081166758777548127615540677400004270830234966495538705610513815998286262570843503858084429118092282917815567092183690076164138363783720754395406808827719893014736542418742829290118190700782171664860562824112015339215808405533552410668119763092616381332473682547465396641519142849938319717196310017146856188976644198455222633322720139422765651892393842046922969624602517899030859039670560047147515492159409010630022352870092466298595029326716576196706300933629384893356552852948774526519796151540514845878000596687458630503181480297209321960525969232189053989594241747263635067584518612842687728558723534736142655382440483852715417329495054351741544986635190985359773266008910802731399094468800905737298095770262530437932331878428255818541922684191932604374311077454224377007416393821012291578761149263625039548153016283273313269843094734299725089346177587472221418378103198696876546632546009261390709057177696010472108823715395307214722666555834154625976502708033041337540068664361553920335984012186527661059237944721085299289656183363519431619251587135549978855672506846731575547425519583167339959297084862222603395638479288237882760131128468509803381642695408382677236568360262064418317694600328628824249284871412047944855421671444700375487067803326439673853488123068747582936726762124868831157863226590000201475330358884777636199251967756043162516444279813914652301121733250909951197627541376831343258444537895867309225768454425889563529397305706480676600870355833802899020495080875981459959123311924356776436269782253897882366613806429189878286332116173136621099613016724097777068473790966277438814908664960244860384234319016587363902478747592927009530977335080659061693875580625187297245011691902434121070465698013572368612678922386947990691681264926423092184945316614069953700190027605947856868774818481077577572914019880395183521191346939442584302586390145391601518691172489031797834706995160938997392230337514396741373799588839990987452859212142064692945197520858616005861452139467919810922695236063345654738515313076667913570859957333048490844749329224529429429734396742784493244028572985123125639857599404186002608142791686260495753377137474484517582688073405791613628421355809061023895112619166222149631098318707066184336722890992924294671051071442885368083859579130331576876029760653987351314101989455686359218255241382879411467243242904847697218109701505962230595108066932734011496977351702735337601780759986854293953796831377481560536840176312838069353223246096720792985613580559569656717875135435286677778701879921163535670064946336213641429797262126403749802368275098417834723425114714661163115516283725089258351825128638867344036099499882790268450725824459234813385122723754495414155401727212718254373086904708493267025057564074082328522117529812750348090764249612205348208911464959619576108566433635425196868661303202339528725245992790598061979524009390644363360463343443051198427162046082777711966925739880891975327139201450701884671720598580775270346528870863078124107907748510442803388975519537002871031836294775934529269704958839619610456205885178403055858498917119984740250570015181183142580461878450197006741962895520625526774415269363558668060402492078983643396788078420208094924580619794822819495624418430787896081904336036921041949738190559887389305848732137600017055311861998531593063499363998232783923011644106225485485225339709462947022350072596900222929897085163176989833043788606607417099779128774740733239884215265929247040244884044598043129512394453160890700269659958615823262095214209247596351393574083081454019130590106012959194093642959293823438635065641971910117390204451542953272729821347974583912270355554729779680426469684239667646273756012180368156098288568645825870575431347352969874972643724183989832943155727471872961195263481589155378679881926227458852831668225184944539987214997229341447130401508168154763849876775986318002629954901801978800249359244614563338912510198090563782725399308898353432872454354058581613373035918421806486450714418455478743284461052030659789276286202217554136260478352140310174160319109698030791337801120738950548962296779888587613811838159027831798142371281918645030983147115460216564391342275931260631696368331676738831037239113578515245232317820122050947525191041486801902807882538095882435972968856354233177184023582306955607416721009457391900882591965458786289458009536270332325691671603317820873025017515175941255665818296488502980698994322429192269887642332988980057644347733283954165345337226591291105261679876646710816468635228140615396741602475500987069352474684554963502913241086166667981005038579527604126944403293974271792539192248140508920412104474002629638205330070549211049183669967601926171323708263386102564442484255541952901250084256267014354937930427258780763526331748950059424558114280720303815615920392328195726264745233194524036861876325344934190529640498939564716638791214356309579675882693356722349771802755768803902652340694208641346492691686586739567903123821162006593377572247703252922444812245516106094841251981949171018495375735765878658596724014550592917665122205448449721798518607332927749769418387488116782461488721506176070287467527371773191292552111415254899929070550071089406712877559609843296454831725872919373358245187609297048031242147617140185748444249670815075118343632085310557173931801519594319043409668544572084738019832780305086557502059548192858683956161478514051549475247022904781334010997998282663043859381831833813058557967106444022185840272656507838644154445696755787453212789634636930415273308012297678698024281626090315851486881224426134808309430233453262237131673360688329536807658826116456037374869380150855429854893003675290944508549322532087723338942065285023252145960768865464696451031170076858196895637149119094627662977711413655364934940148200972894288103717317833989572608918449972054169012882633173007888335007567878471204504512196576750423745291071269727313723011408065005980753342857396092617203210685408966779361349101910540771969988236049932710508845770767301071346976125235002720308446484696929268292321899237972481382277182612813321704705060715696623534576190763017148474944422148165295469514333775844030999038428118544509432951320361076044383650750356797650264444527076911112209074132551391240984710910821824331509856631072006094275113446533108647697837267584950272474782601055297916856893399439951698301343145723984952517718350905590717488250419854871409152686045566540349582829908428973157201994069919971672106290118156924756855335186299934597871406721390070816690193168519852483963647547561869498732318046433855376445374220449641913549961578758088284369734941345463203460835403591141281939369530397045776424670662457940730379312930039277645739271412557104821352232940125050367724438962122472657880961462356549147801058588108782141258902774525450907627229218138549880802280745338266023999249770604549475447788953452924253656675457863433889667824020898075838610519851090426531088843392892059919036557439704558669978223300948609750188179561072324741819986515642384716682501448668497758289636574399696803729378794775772487651124069613631288269352965831268664529002823352896877922048559085687576929848258139030729864433795659949172325399278454557097077788113962094765006029790108870367500597673220758592302961182299862935702413269974995130400840555799185792935842184774613817847176531634415847021452485699872384463903541512850691656505044851197408085199775626605229584246056532607290767587447544396816311218006845715028016174141550715712581005250891735466877115839394892560693454926784537631816659984796631413120559542557977527133395509861257758363483298091957916140477849170611084155061026722693885492698595491191658993004294852817751390887992085604527105344080077168794671559811564554695760511351313637171215058421336567589578318183484661369303563850973153965605652519397437198801713098353215010163269799320126426368572932571423078636490550151558220208561988414437879182810158948965794224332106840210275783459488558970624905058393388171542225325553224192556398870885517377707062383116503625928772001853450816066115762800039337298171655683478510318960038678115769662766844145956475700711498652080146551283411209147815742612586693123745330381214348698567299304361990396703647444974390460423322015489770124385531561695030533669587633910877292654596187305800224667422918798609257608900877863585251637698310492212373488077967843940469958130345041581532652014933033434199596867059963449342557994314085169080480413115338703787694582866529637766751534820807548382722332835823080778458782372264373775044187500629717789822050269295829426972205331210134755884917956077269006811796619828641318371623309630946778078191456555995865430038648901184546929653460232847495194258425764971057883996293392622229694126397496081975271800466645518646066094776538333941549001299444577865612365209582242897909307767044420821148696754707759415596950458867442234046328226875662983240933900820420075423201737998690888843069168531902638374237259258210795760974186269417817041745994032493342031548666940928015257204970961044674233753161220644006549736078011689619845252598214970395815517069455041676067866926817079951046149915199502585665288572242830046924798484535107246403532590059907751376026534007530473786427321950995535011190116362580459238709872504858579181976493030068112361890771932686314774993103968162449192614599757505486124595921898159442820349522521779848017919947753368172830459706574482920238586541279474792088105979889293942077211424977373303184710411211267802466114966778197038026344078166338535197316089215501225948929119628539964884862249198538666055582920943117128403203420464793569947889218507663306440451803848520279907749596496307991101035826808047674750698294161417054887941709946800580945406018052207375034989261754290201988977449439022024622533345539835196871216031603442873743060292663971152425396828315741261770833695671492490749753302533733314001809713564629774594561601320774786783051639320815715433150979411689920945470530742445843692152543718095202239740765882510235034595348264418030708437896161361503274800217766706188785805590836208508501083995014734218564990105004291273145992697912735314598674386725108528682269443561067111177949687423902238583735636177488950684166177129678252991674621429910385954350499838953512375779893063217812720978532523260380477096134918701760236236947378513361046637709740324487454767192662554400888494360537463547136737091575365307948617685243621285066948989992405291824336898504599877912040222684588511682218409041795566533903406252910443238824500916714454461808901151619478412181792133165424261802492475159404287034038937086881473057323284742984823332875126384148922900543251539278175453881918528574435595493963100335577587916628599336142248387227374462246128920865793778044488784132293082995698529212887870645300699585472304170240391628655774436555102595482324482422206605019631269318503018724261214084290815739668199436969297597723626214690958885515162803884045794826668953740456270060606432062906910067908113045256529234348565733045881449047188623207008090930281763297508121389127114822836633284336128208550475564212573950775770575020173147725847253839480987457232397929764503162210358985036690784835670651407507078179939639506914924943396718743097934731194154790664367057532248734047967607222811117937268195784569901350115758043686972645244422845984800746861621601685256078273850548293366539687113632054452387594018217403370033529553232107623831262787664471493427485047795696436485712816576212642975286677057321503340031480624044827693769668491223976078369815054627141513130303236961511713096212158781403860033512520738123923991894263735347710906757234540562880381184005482233753931682290084145865407594355941685784821002313125298157840655013663454617551459441101560067523521653008080535498760503083253788376654397678204338401623854326568562491217397024519940495838898955074112473680104514232063828278130303555959784892106732470561698650433934384379409998337273676088559658035768491356803480840180724595084113193394722093285204028560024483832857870492362490784057370457657611866709447696801114871042660361836970528766604069639468969735766173980348169139222331499723007326865983790197441189065885011736914995366185343870620128594014401080387946649023580183563941006076179518761179106147335224195078450729499148833771156103017605996694654225217536504156353135767320766655578482540320608754465300653352377969839856000066351171394928063736754887817694308014818268452220271878791540242152743824565076260272964956567493461333360188101570631628224435809508123859983430541693029038970250907663083011392030005995962803501189626629041805111550068643023512684527534491789118002079808374023647535497164041026140473034420829720556101235738813415436087584205679821853140515336604592951362665655592173901124117400642001810006269504561040443131552326871016272461691754094119538220185812743764173384092010938393255068925047387720061457546501707426056894831427587661850334070282477735697889610273313573376573929463758585202832378413342191554836872634267917251275178823269242715495980753725337523294026927837460771844337939841647154982907789537123051209044759017677619651716352060605848332129909070137382948299346692748355832332831360308425857994660788402728189056044154416209230110660150348097954113323016441016864076810647561785541686231717095335008257964496513619207236843831952941914296425978506149870359948743861286604478513737012446642099815367039100217665014876145982158545700064339182117758768855928005124581511910650581713391799478394547643203081112602950209906209456095508701206323984310435952614114401711801973934370766391228634866038856527788480737648458467729871298958164373883249554249421900873894729443766186611237032904112564643114024611603528139688141319032445569641566671500873175516849178849265342102429906135814977152912174757918069646818842262221628542898602091929585897254539329007222409997292059948032887596238861027638775460448051314523053729012690234667866595897432505263220631215962172703919574389173883165573960460271790607051848065628116720742968760820016516662854529155167025119877096461224521085248464290874546473539930452378243591008181634597412140723606866204529130250504221881394160812565107642528564901476381679318490853283012411582928888517342602522732261462055192768186373312245641265921100937056993972890636960807055209544279521470347911698345473051432790217544223483470797870763816203170987069492746845995655261387842297695313302391684251084735802702103913215104733646828054701613256285834951491102157966051615400920480474029178520751425496490723913798281742905019132896483820158693865383041964747814997212225069027187600980573359800140818326166298548424426456771711680323005372178848838537459300308971419146561801892292559895410249850641333571245722282003505571647316142391036595861652767927593443542599205640053689145373489185653390930170288653289384141231130709148442699737392498074603301067966336516855291055394057804125064021848917741098309284450140589103966454730545668506033241021944068565035213193098589374856546267748653346441871860538386425422700537000108762347243323469807903684301805661382302371619513325131582346917741568166935164095559940725337050055548918609062802140228521478539783591010492428446913444751329058959744835574964148664249326337488933966277562836780862167404192387623847407241322841936609039013670349435764193519249184652668233141228353981200820502857509852152557023042468433621559070808234005985531389321792884097303962322842670123651881943992335007690827831865798477094278577626378530263211393912437447855805003058952890729508092029856792710244494133292929374889545469491741099371704943504775212455720013691410782318567238232860919951714467331818091325012478018060057014482694117212743925895936963655922420574133546764327570718384123222955872120671029921856441924014126682919180266007129923049671687052115444510818942918276423744270386780599758729929807429096563080349311311707503609289893180929093356628530448963672545963312129668640655708467564180230869147917392083384471899679231222497506096232904955347906080822844372173413601111466990886894331876799566599109327798946449374397829141108422311475968006780150579689881742548629136510504950792180494195721228961186442159750561365750506954880014248105225193782824723798020300661164758697638621898212525844339309208594285010528801469732056064274720460303946612027742643056260831252317655309186432564211242725862543839488484542581998713146572395762737341680448862600602435511406132115912439609278878586438964845283548999346954276893689161851131363525986217597287226055209287022817079292479193109059683677776185538073159291995776570462877059274463728932788979225296299392799029594682476730339042063527323694562502583773852223898263605163277074573138361271000295640085363893739276387843823653060903532826151164964280130553789129709513898801403452573763006162054845603012832074063964816214975936070137009778685561660246048316429014608851527622304951370121930078503565040713908625100732645374238506185361360091898052527406569444654712587630072371211899620434133190002517706160231770676241795344368199265900785074875579579239490650313419944534443002965195434041352444009994724803317163070589109973814506005604329105379360027776038812268735526036712437756912038648701931626020109930696367235284704876995494550604591315838090763576665830748374443106797313862884224048577689174014163348765588423443549044838054879217096842025483791896034486205472025803218674962447501945333956752132217182953380945122104105131192591856896692476244157470605705550718741418976224759094320917814610949663087972671325396858902145383913249363729883059544354479211728998267775589919218661274236868166580297379390976783079388412919284412541887241163620728967962878404571037455913053951658691784287384112612036177122323496666388495418833132411986222264805880794920295438293087691280276832600784384619491851361139381845916676848949441577199073492255248190117444459667051482429450519036741630345897921117054083368308382932014972744036143563219829356111687800466806685809706897120340963208071422591846925395773788717189714936377728395180041874150772626118094127483241236205903170900118906915876102942886452253792409096588576107760737209433383891432069955008081821060280738189777635968240610281078269027606090495218363453112040982073027581859126125544457749122793241728652130393709555367101638246587384067858819609930438994365479550527007709294277050289920729411818431963848216068483270240517561671766077119930535410181003113167016726617128982671120933616871434568855846205873969093180453401958007434614514030097074536522617319705202796108996136605490583974759491540110584537737556380055754454985652090141209218046961888172583166386722905760303413840886023265189975054909597179812009434932720445222925837341459025966337589573229474516063043604444355146962906504007093790122880197603617003738941801713997303019857843283266969566580680986438351369816117063881143952356911242052457014165222455052968508802573194474339279363741332206378522580880782952950186341658514713687222556359710437249833466871119568462178266439352567620999526082597210310823063907649872983825077624947945963426898899328799130294889845336449495636057751225795990808799930092364593259267454294489887873317327340281416073650526675739800755721858028917733596722489822085123564907954222368027224735379723243921303132492994341341831484894735930703676981889375824178627000708414812542929071123528163208205492555501662045434163837318413123007883695987041089348797844589550248013500407832090132771082043799588925725716787721427382395391188370916447420270653235631692621364384020983216525006145217106582464072713888156709925718980999535566572880856805474441246099419811547860461934644286391123059762929798949987181515441854448233954644085545975972126789027020126348544529979400616879566255968108458860059066791242276881453356930587776364760999702719973882757617050548608452138132427349383622822190632459637256566252924685116006528108152602236788871230418365849028004891132105421232828655398148148749967590149881356600166376803756072353820382759647606660216063449465727860383810047735401339801511993682725335016326612670851337856117870237430468663158237473340298439030346703378192833393015160141733001407739960802059207480617160326447994792568652905134582889067317644057258946531370326258596480179322969428304804214826017501168282001659883888869854185732995334435123430197969302748305939545950790839774005575067131267642253626836144320579905056930089000322180693777885720955853999234151749415247234182326291331384351002944175603471730905219048436179350764865534417490838337394949611170956567647263300365399988116090315608199151252564634825577342337677900380786982091950470482989833980333365372230370222388770618531624510705991323961943574855373923509276183205332341053501431249714929506084577586325660892347835831034751028618621469073555888590503386514929312848687632342832907948625909997140474848761724283188234019211215731800766816866281033051287781215924613875372662485038906103387460530181473214676748612582747324731443302156969634826439290067354099921747411461627204324625673872707017372050062298070767030323438908420760892647611454455119189103709309122952524322155817405403200652494123201841311796036526321275510469244977577037315607125359569882372703200060793789483374844072745926073500020962935857930523753751746767716876685077681960929216525571995929251658734854384417553760511144437143374285218407553971196090310674293618011815894313357311963954037072987436783699252960410446349577804751421737050889441671566060139442582275545905162418808564640786741655611050441348202227157072041457829369311076216942721237980955145034671185427588664610418611823863425959889236977709155559665660142855493650254886351977676274774938338138970952552435010918782301165351074592490631739236576416533765082039437077938979089948068301708997878667144528104615966787467148725970186757790264142604123137656300735681956732650838242224007842619735060088483212460932578799743625449731810130725895682915089410474503577284332415060986463687734369778662821643311367516046832485694473028095662004028285097144107726069756324091382997936759722911066053865303889677960882882022726594747807463134469681243438298848657259546308514921965602456414699947777586922029680359521924196646718271793774684029615007441826962549292584870864902385102852767667848624380081701562574442620463418918262838134869513777422751490193219046088908187874767180510916181409707740529512792204908951678441978235329101165910240515408665579727575360713053710416339262548542167014741546269204470752133005798728520699147200695357544133403902794300464472807417552778815626541173268839316995590326872352546537718098598409595534282206233909197951465916888337067648133409716886583857601547213152924196475418815011248362726834611800736573421974246237117924350995110667809103413780091490063094864531935532673659016209602907976090373819197604009984564440874105468917233189759176700418671570999663658881482186675106164875650039132287485298028873135885234120962955123541146568826270441390595663225613084635295818841536136850117663615621525235167639054623449546649912514969506983747185955823688434171989813240207672877172238177109562882749444061500582381505703330333048859717369180694697933337472825313265923014929827297473846453432926449541015021930963144539725151462804688372818199867637977206124033179352114588165043120418703242362638973168305143691793412602889014151614333375497687360843539279244092200177054852476122539206668877045735895759869977438327297243716437153967746978335009612602851882595433156071185848196819202693922621631895428269772466430620415519183353830375545310567386241275655450585474374461078314300943565846045971536893037047230196687472654283630903700237655401413110971945578971839864658824170207617767024268016762014791946724391704738242329794403324984521332871205259280911059108107939983794189021578277509464698956850737061309122402423655269363837796470427609035627869691223896267642611132363557389906258492511307959657946218653481811080094277037552638067278282852776235425375582416179499634748073866003136149197075878617941156377596775993271476167194678830688962487693481075728716367755874852256718280867038001882047312767245206926108765971654504620546319063501292395572650181698403376641608938214564177339523345488522688668472072447386583270804299234770666078626076359058621674130248971147924574836284201287908310998257011179677136245525479378596915145224794430609129861660757498361941824075481431551905138489474757610452664526193202249645977732530887288077268720666321351936128180658638584969575414166535036284438103720865061412495656748207257260103192536283776873567350119267771805217315341759318355587860641561082000410524262441614419748181669041410433602949376764578501415861626016858488759339486475949077088104375689114492742410488320019835210908770466091336138728961465843964694501455686627853662059050336303855017677194404881010674856973816754598933034426357963658988750234866867500604083941798050349669114946014765098009265219964771697711950996806727738733593209689377897218619045014000631570282297558014101429867642581071100414808568324112594068894783919462016569543384501015218122701175779842683885933395879409271040647597318723456017886421175904049036693492050190076899351760503204563150636442912033284072632818145041193785415740648335245654934057889405307195569423244507131171397680711421379499922914621275295881299888428756806498044597291249518196199346800767092457169650582260091671188384623831082334236845954710636480957666685519043661424794397674356018438815482087872288106446968943938092806485262979808413100713354133891883597615854364413004872329663391731163269505929866573842011968236175012731109178123377020696552398916912719372192082378541629665543887273326840451354374393422032368613220496257805990708827303156040084734912575582887930924386369271289655296765476524336104088771693248727183140659359203653124205664438137966611621989407379585666226737390025065725302725527169808678692555361981271451498438176335392725249384173199531338953816850005409902478620003634274763037966250120011688897591630758977179317046492128873642811969375773471966129007648762720283446451097603991477820982561703804437644111212287593869376363005193137736336321000890044179054495923577954571695719083417286003662878323356729710353784507405324488212330986580745116298895526132444695219398890550753367500473125735104939678398663410658323591823894534665432431445250218817153225968670638682994299120435721051135585757877382587603008103891060791660401312471407294840093169280812935008981968231582564106357619586677006661982341848443590611100292751279751594904429130420112560375880405819093472234841254680502783607200134965215473250948990465225960208895445644029495432378577836544855734119341154617608813425473495407670511558212929367460324191934632464605785148898078160194416804377795421828696222213743538019274383386253747869668958851683398808555031098941728842697277166299716119503349010933235195504931400830695657746494514742749859361598022489740294394119092519883023243165101375471816485474840059154306396489908757821487458050326221778372874591826026674081862580428754826911938958835054664074212876361352940385504340435935366743975413292515830974789131814148736181557542284353545968313565005422694770670714256020670719763634337028482442271240431451774194094078759531418147840119175971465616247820077604051476848564854609269668456368934941471868328148424974241813092818115609262585140771421045673885023328310638876162149573595459221987358204406354352523871125152210638482128430541340563870492935488159314288652276460825874227155969896508918475202269814696297281515637267062782659866972364876432784004481027407771672250147726501923477217594923904279662422398152522636904444471289224507688591768916685331149551001221171939203099928901010372346423500609994679564054680243549382571105700815783477217990478592123265800340853164372703293016438413643919518207887456241243557187430826464302674665509238911905260889365641035989003767342469600510213764615057874835314037599673717997823243091429483859862788439037624732127329919723008007716902155166179854566153585364733809571641260407027640698609251705711902155463597869407953869786399364296421582097908220153118726201802854089507905693919099142622529377355959927931113148691984290081067950740808789163210639598639196235334495158844768055336418354342990234273802118349813043248811297228160695724159385926576195141782227609098528902854226763280698113854543796326600513977871960369543516206958953093532844837772598540231660653049776997838772869061941666524136506458413675589408273952155804589780664273073908206208496969060595767011667125963508064424591379716833413544223920850172817030731635300589517522440063767976288897340030366928394944815969841875635843894568608617333997021530566823843321962451844234084685820166948295703183275768796558850841786365175451589008919072998014087807429189625334271247245240734930226500224555863792722798538427655587565033099441062211447880751231804060527671877796595370929660336871971691288166432617780357345273772140965619324729684152275690021013008773114556385270568454485405504514712718750941508440317797544431766701445337948682242597234117338517208828833713977150548784344213325809968356693909038870252731973185017161915322273389299480222291845470052520151474437984295154669660012206985007417569929593275031681609507255062065457044532011670396743269529664990904503338312836266806888295051159628503715291318041938926444477511939865271348277143320821379908659604471497184755786693109535168200021260180856446545923988800093966178774245156843068286620959414850119887537251984152697324258224917983981026425559691244099188091915876157997615873921599757289310604513064832584670019967331511460859771893468102716783042303792461133962093763888481590890641934090818872351533047731234278584145375052717705941681745260828022602049633336510745878943605312896167017296155335927530918582061080867208434103424761106191909174418578130158016630478659280304168268709244343686148361631526346029881326924047725824473516054868239016442142336741707658499809678686169767101680492529842692315662057921214459920978958800737164904343545189239855896093413995956261685020571657819063456411703805442663969550728437634302052159416726765086285512221427615556408593022719161050927665586433923791705712360731154217087079800667348624926285700907161285526177224614280048202335240663829172053706248639128779765901699903511673969910124806590680068060514636898503423767402478792049590091657557853256161950908262181334710507004270698615523893975807863999915813574978894264031573116373956964712086352958096230669029511143709681231034305229155100287370574349655317437033295390612994678192945328918693285980009108265813895982297570213396182341110182484077455085441417008275606480964736606183323395472189351024188654849605526141587289298861768936866155055792860177380860557265369275776059027725013372557248308591457585753139798526075885333110269646482167370858402960953653258718931381970305855756292913561953441634900596490261732398347333784690075489282472338959725418743291807795543217657800743144114901760629209326060955349421413714769742068993233807579161529467716993284832550116473807398565031198795058211522844691405805285481418404702434358950267157576971336687619257957184365440711994826147782272704888332644703738901839428421714407499135036368256220369946852177244421512499111828563887107546155812427736722242003334687920135317163151839631129137877766929840558501151458366096773881566389713566978301712760249690079062960397387635364671358855270480654648621853744787765610479085367716978928376639428369092426519969023121355084256703128707106081187358962288622618921545511369189239894514250250822434876893347161761477576852385431263856983996790876544642410531265570749926464094896277911380759628670847339324853686764607119113862897229091598614589005955668026838592825732140695461320021491525852843133772317159818003966504206503131798354322494478396826430556133099605553304702632641089663440143050576479166707894720085749305092243033773360783513260899898876844185003405970200563218998753090539192554664677437358142692151197618800860498619966587216751774754991708487832887261135840591604117367689241023012440727692534730610692359981242434178153120022730160715317783135636770232547586647895037607219244328320437534491800825081083828706313932988352408085766355701620874263697271960421794935908416186710800066681184528407171692866693981904795862688568816715039887170445987054437743319338820765435345040745698365916727677983953632036265287222797120686891183416904816940316720068878032171965157284282000467522848881642617877363240190018461082391147330016009594717294917097030584962554887635661724910500575762286118125599819112134828827200364781294163377686482076759413276616694948675816691198850428373923041694416618516095437971002938515294813273721736965417524641708355129206189909556752072519165179567213686170871590782377950675368761255005919679493514575040335851134473904715783316327822062783270718697550048159670463440582877240688787379099342941124335420685816478753325124055994400986413903787673497891949246719057207877701925072475172489455520174377562761919804868742640128444932060009198993706083501384393925335086002163279289362435468355570859423709270142848297130107787542938997962233689123532612936174752523879678550077622413437477802935505834443967991384020831166478697062687574523395768446576671939652948203388842472214103919246116834463537107798095213025910000274027653624370043390292950867368588807783007826588532580257250161204868834866316773674310140166213754667200072118651641897948804035154821877476129065879456788938588331003817475118841365147819723848462447445138462740989607808559879365619499623182763548457715906209852171078446234196632960396011862302593337572013050415139280724185201451892134187171841773841130720558650612983498857381520056209153085971543535685653077605359453201296153350150925014246862075923819902716616440670192485835619166544241803922277296300582779731515298344655222839884573971142382710825845042952923783162035511751622048168577948292379453762916129571022370965643233992060125733641735403247279112171465392539345711571009548438838901699422586243031504674612408174690063117085222866305559422845640480378262050229618358194434634469602506958640160024235317619969678821653174141555252114571081730786081919834901245928168542518898382939360228901406982357307963435139459575001985825156689387008151497327244936752361499306636101037049173969966049861732124242472061968463969848208939052955707285157935729580677849975011407170022524012838431381097500929983276926614158582152673593712464669691018777781858108417664035362282566195749392489856966390225371743240723468060235498721119666001142464871605422118386912722889408365780517960539838984455472395568552178103012852856472828448041655992432968965864443879849562500580987077113135288679012535854265539979665199938394382579022800551596048758555406641845510345443280347126855339365212628520317295545573887930487894417042615038031553878706972882311783926752278439614140267215084105778748070280289280322666524687862698206086544246233050679408633504730903674820957715897901029251234678132268974139421338852793616654253111580349636957173638079890565948272011248805191207372129039754431446807381048358059568860161292934638294428654084845670326785781000738641755471253234911603806380577966963164629470766909664283969138312846793053458561669801068745687148597528168463347344824864197391917704507932940095413654834340073091184807706923832049342588663128982976044518485777803615572587861113382590898240648436338007148942207043336863461085572948159685321942055483587097775606968884351022194908046981810452028602766162669145479698294602388560980224781576155437684060266303825550133086673191516677094971758749737598711859735431154747765828228582406477997039147365709680644575540600849504708507601273099227389693309244851012060960232222184094761667987861177697610083912538647662208597938183656340276752038619888821531570327939333702196919312901071383398370818858777691321840375186212679919190988510563313116377884886691738841698832242687146644701272241784711403141292581634728706991149755445431092247110212205620611264646060945666850768265256285423826494815858409908056661337210044685272719235414187123387426561521752531108640817812833208409451026957453214163468218231341755804134684409455148589612923507797018440603819925853208376529401882721087407185162904750100341838239636489948269751374362203517415041086740368906139451687938993152361295349875919761265703043108254519798334426798918221206742363093339048111360992376816531424171247503517926874513907726803058157806298947273036751271648692747320647036367835507197488898209388179624285878847716571725974589271733879528472980200846595769450721170424596317646662596782715247573961130756418034352534663757752230385900759355184497471179789026207102143663094953815739261964683188822418981373431194846016527517079912881954252386628809460205825583312147926253876351508809586996021058527962803729583115543119038748816798948283475860251848028417323114560719532596928699087504128306196917131186988340378311726942214137135278978807761367930104402811252813360383110728550218157516843450536466331508089053479454071180653706106101406551508516036174477831581344956617987231185682254069172407229364525743166246127728593934590251361861858364323278946354950715157539642005378933951679035617939427000273720444238814672185525782761723959641399137119634157933249553065724641495791177142482929981199332285018014733140738807717447356125889255753420272141007697443741647562630517961787433684721120742457460227868733833264747934748561060426492215311481333849925725042059630228393205324272446215855423258459447540711590231869539788727140727196587273716412100516260456368120997570932241682967102970010578007954021292682530673446949237856471952823295512086636625246955869021470848070146929197826697275661357214975065244484061026485142512457478000393277632149149965526075663772405166674283697818681999723605874531130530445197382460152414146374371698541207174789430547948606110095468197751485920353940285232106953705423982298878408637694764187946208307085970155125188658675053341105031267482249772586751688695821534081173007038402037261335187871484711719503974837110763375995328761112869173588381951249525928402030541060373229383910303418431194328983750270290421924587666868644813682555596045789658989766744642615536627801480503359395225985719704069262848716990716042419418696708824323894401885306131482693696378170027602764855012438667991649469436185883153696249034596535415873273527856937970241119785948697542678041732040770233578781360624670802733276143478001311819447125189189756705168977453928386207594159941434264109516536954512725027336017197196756895941607350052854515360190536041074409685507075456549506811628118459956515271115010132209849633618032319898688356888951685086612884177466008082639304978334977881373913927857604068249549799905265280640011000879130794232398327838480508094063891213089467298547444048970395638223103402177561238948384522965459768415008667363918881205160078969346501293559607130377941027884759170929427751563051377948736213515772362479821724455832988910640076966367308956511890541863083019587568873225995422375239878721401741885597939721399134916986039532825557147597533503600173317908133071533916734896557058688427603978675647913588440185369216887219251444709959687494424757462247927616243154323495632745603379722776905290309108396970248155882230373688059941402131430639159533336179655886462104005125008785280120853676439196275688514930146401164949876911560812298149727105132566544279952775409886404520367380790260154714712157093010699424579031309757953427194682941596700267704289529883834528531212449484874927673139123638080252468406822996622790463947269869679860210190591024266692811164323743052461046565892246491046744537495577216379657143755293760819962691008548427711029843514030529036099611343809261699205271277875127953138449212069045143918147332893972501816933938946317619611333503985836400546481924018762458614106809134933577153321599617564119707880700855713001687948803070963139396445163415122432224889364107094356446228815335679331784088880010275469141040595098420258556584678181690522568185470968150351691460956972753622335168046894531861773354029281005504020349969869275430894065703961758720357109524755387389805187399545459224365086948906677140480639507181495979274614032985429066447798127410501923909940873152190166710464553008156999751608266166570248446385833482084124893787164851479062502732749115345824593772966680768188152631103719114290669417117100342019315366537134772110886311037589916174460611511501653627612952088710510769566369633682073010982605322463882660490688971958346060270381464065969978274818137840230716291131891990258087629058580911000228191778460408205192415078551535374616412158637121228422082466697433479641100372761371904327343697546697471106056968237297129550262396045792556975197458546532452492056719805442342980473977355959109502306528351783926714749733993750829924618997914360187308506176174874359491696160453595185415868326154487399948709290775039872945910598313521076222126704635811856999060823421209995430591778707159749983710343656295921660446464471050443260798378919607599230868790083900596349918414701056689853629936662225613892022811653064213079005669265774806623997783658513049954013733768033617332196374440299799247894790296104099649184419866861268167149289125399950062293981865656317577624372147685945964091782787799243149705616384048189849938207345172901245491807519314375872875236041728266931727230593755653484974933636163899777573444088553774016025435733824146576670789992475749091183865310314446772154859225250249803665546103570747525798203664368962088086797656857232794113887963559848019804091005221347690424956775543932335044877727702994035621520608424808615861342008149867766734537034191154071300525120775838368227834849887346900135325891021928999149149983217097302959400020350179197575152423150241295660576563987667079621161262505721418204656333282124430499670993924214644292290794472525143432082304281019927657492991681919493432141737587432232529612070650537936618256101256080445443481405719999231870865318867587833868212266214271276953102126108347838828762406800925997640562131861967425532008244641848463193782163697157922381711978578942203862652571304986571499755685520728081264993450514511813168489412478070005828973628177996797944983656835480727971196206845528995292459997068769462373792649516211145633063392170868990384554911017635357457029948665824613827200466426959415194373605560964029641194660014309808272590336231530388733788498277658978301082684573369568081801293289048488845185941533676571919685280787197197857633460901634452017733925781776633288876366299306249533782505390687614855706053424876077124195169429595535058124866123382966646443468073674490177363808257181032493303638729890662189916780948604288467272226274013905993581559903233467011103264048079684940689179102150671423303696986451770648615982127460425920578725970596969312661408290971195090824360610725213240155811718463845115890524418605873949806034623068484330547064397579927465166128439664294421130026185809295082498242891004870642199350657538698878422389751772390886666563164134436909661743950418024704170059434907979183920553445455501948386145156253399762570933945254042828346760199160581199360389865873220563559527983144805514340373007523545052637080594518478315633128513747156464688691041874861969054617914216931527771490715483024189858463393104425118789867537060345525185664593299457605895600064834445606064458102284685381064720753056009727784912086612468509365242874698347296447369123754947677079639015241857940605120180994725491968837083538607600412603095988953660851279499733220663688977213359471745183765698160272059019305527277535117136788029110707206169353400468784229154023613112540944503753356978840057075053225318266377562394082481121601557286195139243689385001046391839719017892335465808173578242369742703331855187754626173936158626121345550948602571471736911500812758197511333313656525885161228855455481120093057840661485712893738931115714492807668573333864968310427567613464121897208327562030647932555246828447326072123889090248084885208395911740054664547503037359096328508651787284423784521944654549261358295831390768347154656823782186043390202591963110556420685534641710844104859158714926706853604090945018293131023627938487257289060305055251241986062293653576309973718558561396954485599112173288229498806753453475403356067297211203540204504973450961273303169551318116229375789395593262311559562339952579613750660374155274797467432390372287296390037750186139252445061237539522792315235744214087093494298690144157291724983737637915716745329235297320766721468189177234622309995129430229350182888025401650583491447316996778994798554062670307763380558814714985583350280688513885158846336856611878879381138918970361260158498419222614165438157328264228590630195750571525680787373923630743424563190379595331810044919599868334799102078674069210266027274596201087326006146000811260458063804371292551580793428452820322720366155666165360421784993667332259346824655692101235005205381516686028383797291879366330870682794393456783307095340215798062805956066151087512127704684098017113292624781120088573534074057753883023652316300705499697259375643407070421657938731917120827806585226868361217762297739717764396063299201287779334003966814880986276770017759751133125069832492410517657109677148607148119617171069726527748899820765423396434342707055861834806906834909530486061423505474100823866936673003012276390331714690194923128352224956283080216654320822155051291072010522821103540158320673381248057273266397621208215328831787200817176471881608446456880707018323750698118913728026547307622439636556992381999181903042803840447668554024906974196876670208366522107943837817933853185567402444393295258964667603434979421995863338255647528966595437230673865416084133367261536418968650717513591504582282964279548449548099125516752386556145562548459599125804625755882091755892482068946128999407891895556589948727992562293059332639087082674240029584228744962246064682028405356188899090338494387116775307777245839700323568260046803265904291135996390054017021998070353657822726957116576543123558782702639992087901951963630391589304850127944092535976803649948416748457225578812446921323966999332392306937690611356653377288317334811901823665987385622279432472726776556004324103277805866941592011850092231111630459321217393189101467421829537881570771805698267525458924081500677584283399047702455510745455187264629721290529637932295573583223739500171063294630832401106115481267465738441858398669148725160197040520288664843907020695861232836663023914526591546996768450704393512489808801905303560617390191049149140684422661652179019997491789976970762281930326200347030757996831240148651498087896755547602423901645280226750513930313824284997205171664825660912100826344946534375473252994334126537978057242078499915121700825157656105078190686414859525414013859086728859907558714573550215369649103909128160480203642747193306151366326376523466255107648496422001973571674826590187233314463262358868315723388076719191217828351199246628573618209136139529900736426754324962334811352086840979415122978983091651355484218826507676377938467610440198953293675911981848647614053945939291725197865903784801139600536285760445888073733119053934953862554709803112969886723022881753353242487480736028885109448608448613067362839303591204399540604025714734538668050560273315510167480223657366857891639654400594174098033952129252313818163605524614203323735501431105597413151958210124077637463460913719242928960642869862714652108110400166733127888687094918720885350936595263259507017254301579200765096477844881866716883419545578601405204733677947488037153082550036303697983217639997902960045575146788802095008578621258599180598667039505447337063963984583741783275174280771347427126488421790678154098930448260331528945592559761573624784481298304771726013287646379252503964100453602011611371338312443052770584527717375522126279305790701271487332943598013469003205688892401847036869233119610635346573273891898836237887480322566150260120859701452591332466910863333881433387279474780461700232885183107697139239090495155338176819642980284274830184029179079740199110869502725815411718317744517331572818721577566277869410331630398182372987880810559654485557379243507575289719084044665758584581822825643311053358312585463699046380261661604171192036987749385925512023608050591551553444787615553672792215603953988281987927261454325834194476222366417721805723195183755395264305810126332787701958261865237325909775359966908061332748614535605911834592785756848749049640121238925801033412685692865384258045385277419670994080234574469615178341861566708735336119284585221746059811607296861935058506964509849478641376565596390746148817294226178950443508150518268579629900111058644255055832813394969998722082419185614023116393048241353869700893292659764082000617694697656789231706285941815073788146416738596574379921733806541051182313041522538790662659299626823248924904999041705255933530088062498146808965518047691537206978829808893727907283818816292331454811995165932845558597126364996584461413183640693843983860369429159390592920549843654920203234971867714459766845593097156485987890346588073907809825396501970913255043969967402752023625478627073455556352712578917111063893159361062063317535741371758376877300184940308859775244825253901521231608257673157367246972282543941673705044517572311655245874844378719820853942534809120010964566749446051394245691512928435761068016667681292083599700429971266294844660469192877090133463432255897705295074926673058449407645581174708644492986238325531428872456486647230695724481378116734082084853293718452389606676416133486998557442847713701960192162677759640293063070053004213075845484010245314307753608179400616610745355715459662194711554522756069582235276389799104752289814200724619541474670957512136135124864820482486358459340151259589126575730687012246592518897573497126327596029148256320013316213589008420130962660597084817389401118173983504849980346290537288471427001257588417594848395190568497295144258023510425444233588988314094741643440769976090982218636162365597719608103193477408944383906311923751720764727264427421950825646898784741147276038689059557114283794066814515559714133219178676969495883392946366963961328107141130567721502387836862856182919492939605833176658078972360395414385629095029001210556412917504888462680512737615194424575158440580949181353466408006273121422416694322981782972373673140430710216911500430507288931248821790905128841571440279509320339421593864231750282000146663977465457881521834033722696553156467787139185921819896504213235863611957777106300974017349492847303380248546548115860050317500118200060260767027234562701895566918738612977486998110439928022140708945334581634897073713244089418310278013480227473014330813348100156799483846825375003247395529219384846568355529307062204611430243888857679499902501915340411366515049342350317167413652644262108783525680116584985631046679212414722910224650985085639116600357101760382531915483135663919564920748276260591685244489870240200468001659371697844668480276008816653911438408004220447542390372529016505268421883275511079797105660440091046324968288808523576875973967643253539628784686095764871114562357239902702878060714759243159619806169161059949587270344776726744001178712064556777070073787918023485527034366989096004715423624655914801024321317894299150065888910240083970527375077127923762241234482356119606745523653291339936582483475448524741838970144564022743035929960338819987837088620497309257468781854351798310141078487817773735817055995815861044028568491509334793581347595710962791075263563406873853476482668888691427040909213981914754941404696165619980361037332478815476604216563216539481492506699745815888574534467382832935328666573987484874130176398605431434713195774961595461319957388569854067902439647398567607784884960679159259903369091271661829268291434176033841988424449439318207748831201667181671438614652076337361262526893798921203076219097055667837006565878093546944571907873361921825855267117827174691554872186770671013611210409430775292122732896996635824924616855632359105613177262200810172568324321679874321832330897960583142328092096926362242251786977015446595996190344912870434494500052507864343285401058448941082374993601655648148988700152498904044348815893243833662483728746774453125078872976862665875370656323856882975575768479412476135159158298997083644983949896916668802000826185615274722336375250437192046665815058210292320760761100980292999367159386147395735868835115629586293715523125364492049546143261891367578030972940658601942435306119321516488992350913094407373770276582573305962913890676278297318002450401305737647735836284318547132998891330180318423716776797764355500721288095063876766082257962143006922030184671943014632622178348742245596944137675074029195480153666823843878078106271815547709314620807398592010535872319739516202299186090616502195894222332914259165433836856936502600011610037961211783604113981425704848052296257105414705091333396902975456101989101537584721953573181746013295071010671956146224471911746708488003947772122098121349483788787205646733572726189684676913555962317407949387649930997131562125516424069425094095156277985421126099562247458484441247535151198585954062571974700941453163074293416127493753932945721966444920500118516777142590174370589356154638831154464793549770988878740841715386779354168739260837448255769875085961016171568869341448794045208358640597049666609630804433249975141183384832979189147588505789962982997932764725349869020092859838977234055108355626155454032719352081912445288516798288816169883062223248950164413938810918526651485030246026496474949525716956459030462696861404769630741100604345830820346566363917705377639582768246455938901115188155518150357229690452136809393434362801018167905072680264195994471105694317997636824967723805531652713729847184369583990828770127455523209181366479135475161237320828296383299804406149520255625850564131373801082731989135108479967569646730658459670839543028055059370952615899309364649460770810168027426677549639030715561080606824113399537678689566735627886865878785847448861796876662004061347616219261130450496975810728622088209007020418856702764632574428967972389110993402801349108713320494975477536433934868669949306765736787459430222415122848494229055035128066555428371008316413572200813264848022675591908143691954478490239928431495959394168570965973322888651647109996933480733677750254571534644963703426281432906757288109656537776053090702351364724551538772665439735698713114137589478034612528767730020992014086797069824602946755645493183071163057460791850884290698665056531766364113125497602607113038066174624530403404589792756360417801956621573255107704086128697826985168171435153906789181814212518465353927216695081556463370311699507679740258921038457320683751121297263333268353976532159785633995430909823609731787730616200112382288869515534271078775658776268603741671916457258038750105001436420500119197137409271378891111508755823431756399580082556648598861848991591890660313023915784044884105019784085242692645928602436982465838136505681601078147847638061970297284484692622252609778404913147764825431342571198298839709403642877803350555533930764101791094438643526337522866132751677063080547378274903642269906790916676336884954891531023556376765908906154704169392083962507769310339899632312537206025912005425367502961141473978152852963035307457097938961139742774192385214639108641246899856797722715173436434704386674109193133511812654825620995292103039777706619996297043743186427187386789661233105611507855095725429535557604112026316172590158557323254462307252153057086592268780584166939533314314445619047228442257783027438656070284033838946910527242137771683836344577844461172950429582646673160576629087398294709549702397422759614244724003448678425089016069935056595753263644539167490581340664153561285448841789187743366845038261778303326076488644658173303640262122545877158340405190320242174554098838466318905265963125993306558319232987445310913421505313715564021741754128911997883559961498532022491264074719632633325504952032674267098802054154260624538446058684243672520201610249876688913188557409569973500478610204141867026225868104302645241505784198330078470222843024813469256646547022491705607109633627458665744058550282923979851298905663771327849240908695935011698754436091697142049068507597996767840018293139315169261793293570300982430233582536626677161980442934480977465351047258484405682233598505574561278596079373541061096113392147400366202670028776820442526089105840143687948814355957706803475213737786528984444906595224796708879973362799054301529814678601117311110511859587590706880888473353578101228538174068509514012923544623977826975822165368637122422745935073034472257576119014131147295463209317673438123729121042875430149284790658351156662191893961581688175609868730101416064703764903568356106927934715766970596174446336089969728619854995954471936869041930220948730137029136167671392818611380775180878244792329983967106188385163995282434647043532655255494077028388029367205985398267825998064012214064642197015183899525602650406123761512430828248802390661547906587670260570525231029371370856111559113176764399002099634360044100871469214709175254903818967375525320489750977215787920350027353499677274774761045057811363488027764571802359002531304785468979208111666327851662093832871978141263350373047089450691008441011505895628826310141532210996471838838460971957989828444249448500169531903044655391293799401218978283903231730756051224692075677935334823085255560131848089540129263293420484465493446902998997306046899596486826971577177166779320128621105064343449261974400334213956289613985815745678266337017592036869562824688564989111713330988605859008615920631480817515424392907609028972684209247157671847726458141264887542361813137527226288531399551136775607553815477672528987727283323844714581628728968354019853805131694848961165840444186504775738047740706666682041693901051443926546545251951663453418545769559466194048985513675155561498674373501440335442766901635644297492099285097783313891411489865331749437062725903885116754707534643406644086153688230813359467408990860157069006667690583750520338686611098986905853061389571429463265608348457443400107774536401979875381573499736900233385634117262582900390368826604125872492082358864908646516355865787286876650344235575350543083481023833106948932980947314890388492034920901191684030388228626905095937369078634440952288547191999829628652353011694558602968014118566208186930869530501351853795884399092061872831447435025545737443135717316900707840042421857869843576474132748404715079542325850102472346011063040786549093076288934242245328007487429146164920513968397003230556034643486417354817811263821302791489312493922994868559414907901404601020345991074931725739507402653484369602153892184386984163935348250766853661851209909226959349708341780743193444922604706138038903415152656325451707780532799589157860747668039028425674468773351797809604044708749676314447365545149292049085374167368835000504245619726387674662530499766233788358656857572097731357478835503698457110197651961055247155598269913949377838122013781332515844815290715903177322139595560756480189029793960188987266440009370993893003192104330477241868177649246833055724908925812467266872763965955425221284593499074895019909175823816675501395127284275185476750654653421514228413869541205833991691516416643222878301631698181519328344796547003055973046791316802473578990512078575120220726683228884307003019505578602431241791812116229402010424547060011619545036031910004291711139808893584315046209635770883809239725325732587978812823272985071425613269774871204647386120469869693511649516158015887473308090684591986455329981173002778857335427833860439584991142268651152476758910598351156630069323437341407842807791504096563758386518345532683517140536022680305629151995718680803765335670593172719480814500026879134578411345913947378012375882111686702795011269454457928534983706132087012429408994282798867517981074298788755279879692069012905625671978598176950692491188977553209306945035236695448598385471279770201535737947688170090222033670403147837759408968981312133372609864593957688225917811503798689892962661185750858135377508949576171278343532210931086402150898426060246970859718796501006896966986344136603949269185026243301881413063468068304689193709567250537562656514653950534221389333445912688336519290248525748330748679909937781011653840223164288035381446776924145540470416618481721599020391666361235179594246284390370262209080599988441463179080237808255692486724962231017164110187284933231015231351200637923245093847882984058771361925862178899364877237422836547866735232266841749788858150317181646281962911478866738980287557439137684998582836955176655901609154609419727272445426841611511208952257706181467786003227871733371307343677076430762738292240623397050476305698151243913071427668367150132818975138993190560977847927195337436018011020158561071501206501052560409255054292158262056378955851534728936372206953692696259253695045482801453527520744333144565000560038406089282395844271372642657174677977823469871786543190038868588294967569246987914789974708341255326272296728281514091264716250239872705385654490109729574360897673295513066154164742448162839388268385354151223013868714451429126716847122720133875469423783167803002776601505419711291133910877728474668798755347373863130692934716232755385555161907995565325611005849354415754338889114391958644548457657531239312313408399202878247969012339304401378166860849013624740175449056374021051917538742246318289312504486943622381789899239497346352388817555937694805742039685547571971463727412732725503451420470916041948546469153306941752495518044900629226783557593215419708981733080521044868319560746842723917447341444442035286116775756383254040862509986582894728613007888474785832485424694354340180100789824523857256905446627842479662583680218071680973031694998939834551888663521978242369840591542710862379254129991492982225874903898024352097803855481869814220053557507661831433532039307713899953711551428088742265808865842612395716494730893543785337048591334875069544292005069157566007738171658755128911649244778179327052469771299380461946162561444234539484771785990035950967783496524549996656289229287790637117313166651534057635835380073359363510051713618328035673802315598192425320292797744689158402252775773084278532613742041417499595531309659774575639710875787911893346505280016760113140743352066974855793887331791901155487283319216941878692560652612432506118986029417139172453559075910994557656720491674543283578054416428769626553576752491178002003642178269217260093803545303518132743862600599769207253936815572125612591193477233797233363876829686660383254260535480284415514400290585292682826653441829768257945223964211496084425217319818556061429795468736135494382403102918756174116558870505578279942347907727896868710101029077917176257296861117725764542825561275511419877012407398178646316691880494691133028389488449503663004391227947166743084217093457805512520422693655022249959055810387920970081687324851906985859657489460088144285664961216285612202370574536507972130055492406318437461484730012823409833265910123454000613102872538115267208849309956043394505361457154030945270989286510469328616031159264480455321039271464062009817983196389925788674742226545733689246731129916328127694191683119056043229477286647003290017573242725628951964950281346250232566452803917740396862330376780701314042017533517194229024123843551497553585740946331038851713475812358630520718605462964312126927969391491002311214552115555749942850422094471313782238385864461546372273329160818137818205905377272789104519465749928525513924848234141876653783132679945861561373445178856726353860678152187456557833554534535318166506068833638750720919864949478241963655108820904272321169506413782427217801364992950353826298238972868971532142734554282627108435584991945860026829957833590418074694924927546232468897579551564482191635135673082394137657927544432713304190470125975898549132023745073611120380163747269000165119404929032914241223923994515889868617762538151612359081644802785851572827418584027274286579238886517797168600912082717103508906341121809374666304165051227133597878456802767353357464962663638549994252963505442322685601383279963130043526566815250896302463511030143886221266807301527790935877719550911297409809140891675947873196781072854964656694819416555609736711878806716797418700125123502518618839141668083541327353326723503448414206395910744486613247124032938153883692265771572153885286509929066053904914845320256091848587507043032823247358712393348901562274929428104763446249873618852090239029029330620949151438189566933421038311962302283805358808549220410403543701249936526922847865300107598948089789111601503522489667436503940018567008197381130477890004856403113022970716921667105320097886082079384496162056914263194708378263484601410505857599659125641719072709417517016211173460974333115336905113194303460549988489443187102366814036748002101506740503335766268041282675321902921403721704198549858354942102038917810987856004064957288262767821856627820177009156783538679653597857887418508210214487329682218998179581195284194390909610227817564988858340602911432486629165420890161502694329322735138686063964143879456652605427928151108667985347408589455490841754072437231730773411946898879008239185440645218137823813376360582397408189402068589735968058620776867358486687271178049638508178984775469645728251328943434735496777411377150043328782084480709478645050790191197854166717977232039010984575874674410339214662074298569784897788554199714771932283601546748783799782229175911989479153060655548849251567191091224828064215074775825660959191038407540640936577034360927120216638224713390238429400439522371991575913291697458669836812566997829143034615745635681440586990345715155022032425362251065884988143701069848254383042303822719982164154444280841142220766315904124979641736009153635077870324741721690031852829068890802233490213445371057471752651605056498919445137089768155802481330475725073819217225998171603959986168205089687435357336113586745417342802109698261019994635233751479608718421383175887730761843616820892777251348472602873581674370599208146549075777473314675622102395030156555009293620833126658460653915232506400073823137190311654593697576955997120812871620262968760309775087220235575097272051452216466181438926302656720522058875733078138280053599063485664840969180379731061734152172900447030174184866781251168906219253019067293462936675182623593638538330772586481559980655043556117169458952607790583897868913700296456679871210274112633296370481380228611724291237279017225462688408808686523734001875860239293257976709073147884699287497680486430368463089274963131330803067673979712046520642668946404827218472316533190680019586014026648871813010135538466101056589525945696054477858467641954901601739880013715118974553397439089844237587310572614946497823816100790245104806628528866729019155228245252378743402251639901421709540848431532851889361042525625413491303976033693009488660574943844866461784593636064213848450695099078884081789439577281957705143679841499601190218404056297350466986486957563313119579373352741882542508386870938337130443996675172507757938685375856139557842380852383866248381789607032395695092836763077758091574367419330774449781462176487307267393946096023104452279871484020056438926389665704664961572654765831091377648607597989937768985802744152326203890422604263918332886510932483202937153578971299621469173988028219047105169933577700428347831330474284928706689778565917190856303138714536069819732152133087305943146411264201507992588980493918533688981031361078061973971147901171654161284393135423126366508354174084104319268207080739491761093243176092901378458968464715521349608570770949920178598759385968073104001800766245292134524720941198817599160552660289772665500665396958531835117061714350746516679896118016560300944490524577395203697846135549020433356128956828389775816424354863647212828089506891958338563832619251952985041106606284208562292924426061461676742744669258969396128433297692458663174507805748321084696148256346336027070331142943803463853605655192475350584577996351620524976583994420559508068585645787217477956793900718403173100414205996073795204060685847101699181056999365831931135351970956332826365214595640217039673707872501801245890759073734076595672191892063695582072321817737235595559671273667108463788404254894476996403484846449998417683523550902696129256603480455532451138748344026682655732104830758931444196025221127656679623984937480600093339912919099831956108762565383816087711459226615690417942339495404184371772740506874207398962340020263521088160565676756903014856166390452589407256222279407553921999443687609483105240361510792278289559888779995803712219651757116971019399454527836515127905116660531279468442458801475953573031109621789312872632034088949661185992852870508352672163071857384645594562080563418860803836497803227675378766974683337850241606507710950949276987547712011035722815167727674228860888391250835398183510333831788596223847418421860875449371248666537662246863572155207713456851449616373733783850116243413001592362443994402786339220087396714354047959699556256788667257556281779912358866816157953223618393328634479754116493895586600041145456973610362935955616043948794665420873270419024327338675207688427269299748792816988534653399239592902150494844727748993721384256476894804485224696751194483560689491934232900560890431707016697083823612895187653400962291251030601602185260318954866506825305511722816284700888839668822680084679687755786757340115638433476241938255767464582731943795733885965992234347180234291056217657622405891336889299566628335855230827700039268968753671121873360285740423662729270038819422855786979547770863922704256181188235543861663304464106749386223066300223284349913828105674686430780832241910212402728882905284531841906426954816472518351103345837208837438360378595186090909021597381912701330500993880337908779438541713764813130695805500427577658512029830791186128156398974236603177137481175416112049258748669283785393500192079263497468038227941449224941299416589773233798846557469756196766977410870959160245161362765931110170726539137008511700449874022559735602261856382598891117565086370465783792385726493108517971598325204535545039111636803291635083673304400634254757317633557171917322100920274640734246128480811511063353338605438057225743426297379362888939249488027132491827466016557670275860650705298238412698667818921727531760169754747483590241615797027857071005138982114915469367707020323282905464404016187322488502534250703775607859192757370883219173346304680808471741812998787686076725179150606415005082412959176636365150617052101682961703431434659196739861893078952784131865618009637810872434500178519277513097861783663971785021460616889137815382378855378540975818192463344427858149492659451091479606544760317920906025786978823437590343398693331605714768041431151046095577630793180004653556889599583137049501916175209541182467661704076962407163722464596826567787938861561123574458059417126977799449760779719653097798799727364653893131762919553059743625079143377978186727709890362430908059002151074559486156696213740584652518073430383694568097668716205083810526837380921518312303262132860274717573995961251474556138843125051700108418579289926074690229797212636609320576728938134784192546701252726379578674081586227660161147764149590711874509608665052260961732296102298025328523179430443154259056644982534532115672266409926697961902387896101382557559869822606902411323331131335797975778301532478078163684020134771244063855354820040715443387034303848758665271356100400274737862522630318015966094499794724238752090135927158639938134917549596419191422614885886549109379206763295764396376125361925491127212945236125136423971651244031410252365660454916902931532106113101260372527338737306858798898712438927153612859084193911062184962221246564551358437032053022036131190819925061915570716871604602970047475374757481945464087642235469965016016784534191170914196863467075161652457661606651781618281301061480856862708044361661697535872898350346898889559471560182156496241366071941758543228757863470811236499504213302713885645688397986358741285077822425993728921700777955094399630226673860191425511969189446225201016236700972767697921419809837047496462148711912335503438167805293131316620998469737033717190738740228106712619427481845334816024460716151165806613286571460972943918442940181321501181135048694660921535345380135809048291272722019578745226507179773658202146464207893313587964755451984004189337911189223249528482191112236522069145940285208446647351386535428287869879085467323612151412396729043796268160989673870317914931782621773742875030932018679327758253254980986212196017026965596826027692077136744107755472295868740321921221106212103896690716117227995117284279927184672158829331583840264991323817578720344763648546688847128593491936915514930396540464558338507363938193968687624243741376300920171576994050271658538197794200251297990451659344702493968191105287516085456474684514210108412208634720866727363127849669345189345493551489744810096313147285463502778178428952588300554924035613820636785512366039663302684645750409623804412563901487503578960633478681681030561941739227510915871739035605791855195356824227135277586255459905900704704678198728080144780388463529844091110858167408666762975138187321196017732162789452612432374495729358281580144623816960862169196842001927129335027365507369334681953989723485116086824057308635518146266577199902283208396174520993397421529081445628950534930058845131027463103124645374095482203407970209790408812961675479563613663875663495778543980909875059438228948063055141461926909565789548799918863519480096150182602514291994357036596622691323099212524302723015535432446624193243797626634955431546518107663340259376291814844950266790732847782857388299594085719164139971247248889026585852284245682918556885652044085516017776675255900183798892356685088153951424779687928333474417520811918456621767066916723082572715698874189090146664097492241861718667147081090179313641013674032853992139911557647975506152972763046969639250106078799042301611858880143952536014777504948442253636297062014737395019737822071973552492307145443955054257955016439133606392209525665590670083118637602166143364376241270089762821382109472253236429490032298720284781185037649080265655878389493427486547477517236119676900754277386212024545542452225459704525492017264996721612026593461178694838965710481952819505847703909375216733626460982103516167329870630955223690619644739644605168402781108992912342670067559497148439301081946648954430688089971654765302461009262024892125506053279659414252039819904404516514964088398589730431784155407905571579199560960923798208568053140697718407555549991820785061360200215297415549632055727423272979782834388916678568101353145477856924080697837070298693495998764986505814579582357935811328929285583661013876936971782031015006374580836560576066394766149663293304472431918113956532430533433808364163424708949829284407175608862807382204368031179056115031792216828453482268345019290194623564541182323810706525735484782869522774494046474066708746115654578882075799814396906257831197534333704476937906009242376830849915765764518145675322085000296595964520351828109936512129567320933903915479696094233732061497123047664103235610284805827696196106126178613020266892928997709769139876871076702930926164396233868841079704205749487082160135005352341427662282643645618667996603948246149714467688701487647457055837691557024162759234736689753769033701718230902090399940803022126346554076597094008713162881677988205138440295110017024215198193087542053071796360481694217471835429369258445557289880756758500405749965953356021241808577074893986700829114068603153330375874681712424763697613446404380627567751476915435242081148291569602315801673405654057782268657873321432513267882996113322846321817869849575933308314119026108830993494463308980792708554426237534997684817443086558906977657085328259328187697522540428702291184698797131221284317720837097868030048472031447370851508769506210717193524364320385432336039224116889623503879218552302911978084410745093988942276173699144764599457879824716412137628955005081995438218619528772475996993504132944415183460738134951040790514925874549165689478527250567654105211827083045627891686053525903191425028924413869070836905488875956799798395932726480581435300119481598072627346472157789856441738683515402859369404391256210992076549263906485574135149913187271589327064331653210076777824352446126768040063811252556169559109875361754333005557297466207229553608896468330693033076662340889215807318411981623385431989883051899355599688179315390786120160055764866836867689943116219125909252438111063623019806765228465268764637685397240216252166397127684739555116727301444355683082396413297326316698179287323658756159210603693556596383487622366624334264675677919007324663678249292935072811699913624319762309660671063586823677635109207591609157526508543287241486631678082731028518804464177227046257599652023986532781280269951525510984208050405021889765909267075711702573498413133349000892824512023822602095266666760841756278784824762972304170752536250310149193125350007211839582467550628872499532927436134713636794206156220030686084516902452077688422246683891428932145387795641974691404732196365591433438052022664574175403703614918001484925990145127462471646959607241750963082961894650882755229588047375274773274585457953974874619664051554728693113089383535648317662828254787919811056275432613173483973814657380998768023972260662806417972080553619402974845250448575141623513584617790428351746809186657407167163029353069242506667795417272164995424299977170822674022720416643598536404511829733597284014204374590678037653310291761650996850837512941804545669361113448373848861566339780440374564532078773062048279982577762515472486480195539497973450513951635639577949795240237807209459029911846987214940631536153869294015260683139646750427387650828036552462072484491794557018491392162726721762093536823455600233345817129060046018267015604132996879862228350199078883230314787045308799499239170718562793100197097690207683219871132779337116626661731107482827475927522517192784036493425350882239010939416295906432738449860439085359950565438359277305086421183660143796679701447721489739379847428013566323221551394328829994284796372178593637285163999546214824951150517139497904800826005957921597906582747495454186609607658518655982043930373921059268756382382573634394538166951105978820178684968208631850693197114721436309613092079042068983950930011978325868400558529494498017867045582531714541142811753467366037276092012847280848727922957065160149245310647575110073262927985622891298425415498253907421535558166423825013175267244264058131608325877164581547723926716806760008236223664463471731791358380740775417334857608413400270601201638572096701748428838855999908846581734523322166525091049468643763850349479361098117138755293708959165222531590718482643583573282754059100994891757110302350524151344761394147192662641244327742113246979390882982663343657481565848056404405295342033768777528473387342802386882185109801203061867298128588423790745341984266244225119555886515973727055743464332433661473430177903420004753360287597362538093351982368573824345816330620349501424619573015320196521530478454509191858551910823161364338290229706131433029704026032183917759907083910139854476847102447379918661543008749756434573054771980903106843440527054229259768298370606844007426321073709137399249059837359479324924584903525811144703072733823198820758291822871128801245804470550698279381514434801747666452343155498387701899168094234912749161334300850958100139373247450758111931092697172857533522978218261520237761778029741614681060802695270607824728333848814379698622451170044079250391631817070498425532038058472222230947771420932867689741238098452387495438800820832189200463895560440197689196876792882983908551418026507385527204390832581748054515929914058349471706902123430296051427404628068284521229894222073254459735273088011384058702097924093542351557887685532564029781016177279564419461742512797034304643766896590731463415941896983930802493189562815091870830828959674191269300290517706540173463478465906942986914408290125853574980001875796542943264483355243608152426546320495765652831478989310848937639090985059000301253487302322154232792581358481747828564516660758990215968593745956151253309997648176735366717893143350192836347568647950414373620512611741582319382477246025199742121196360656933488568790997787613494440083857753843159798952921060481398064822334608854182098801264366871483174724445120168457309178460046453677314588635554626987984782526520427775438986469499599982228893243495885049542681282429277095912098392897598759183856788527007804196075231931395351227857379900849638324301688478765147208400345023698137038677727882910838345921621950155735602164670350006522728176832942783966646898221688069036607662056240395185214111155298672379226738027240770027936983959604103653562024566341896186495855347945631671166987920376887881566768921739511558984421286652446575182290654209934107587530692984814307819556646769739232442990127005696569912234279178694232780082912237666908616351672010648305040672830056911342317595018981708690309590343043156602465291358622308065160548497490599719184199328104509839404148452672922706491262053446171772907912366257741594328194092030115439340521141036492472912643204836223717313845476375385461671991222800311670379413595908981516668505137697802625384336836430795857185006347001230380203476632402940804318291968581535422325087391141631433433995857970718846428987461643486768813034584544750296179142902300111408239104720066316559375161331338260949792697554060682784703269116064438107007448681223970681087795383320637274214300896309791142672057425122447272115979476202489276863607492555722256487640913397187486169159004974869662242187347668689216655647391661655465073679275246933065888711810304558977529732640554002660374671243030437915016953169227975877588160732982103344987883129456298078095828392391998287590992011638811339549720495677768722365952958791143361619406382793630842677326414686724537149812210568382940475559083503253190929789851601223724216012567967388329294659051406107969223091499003290006227479054565645854740827849042122996679635432762854955624948063113558037847801929144175188238510830741668876960588488632538755921988275240763291986153404480543976219653933506288756529044738823203613874942293129378261601630055688558128579144166314885580125476909775275782410910915086110869421982225458735966184033768378679860981083849643363791462450979408508351806909227367551199617322603115431054819128693519744264728313008152587137515669384033327024337396160182562175134950926719323590983810891510799145037470648212433739721096012377841554462744295618831010023182714718252556906314847828368979330728038024386146594464118434569250594756544359194859280969831395667368090432851694140253024873964992060703371834388885402422978391179310871666052177859335533108938326185867494636865648715615065570432311509234178481781497560699484934276324936977681515230767180188043069653068215721456352923892727271945139260546740308396911193559437013479596217388116967206253275619059748664734198211803455447103066338135687998163016355578884806594544192540839457929528241560657399397877123705012730233637620240108619330274877343256591822749440060751161752548071714079164138755024558765556098277446189020301281639276060445387441750470608707339341594975156841832690442366071896700556086754543718236235633500272185921271148325827949083164190927340780597676652076209049942837770203663922174095337829146080680217925522577385466210433614362980762001635161950141405477446088473788037542744554128144428647610657785326878068288676592393937600326461503112358874822146182136492046655914009632485885425468536090387191337902170900326659449853780704232800742074787757339389072720872674636217391845266140222945235703137004471128497147819529886445947155148197799033155703865829280598679421764179117210122746557269106867327863837251903985327835672292086383529720804846923509134015883288826783042929214584514846633967042393265798117805160136378167988997270612727466746567316328355136228235823359174873703989343549844669431714252835823478118340945035218959641750071266770287601437791097124813516862671558621583921237636690064127431542313882013025969500764728871070350249841960076071768984091642954365307528107911423189744952450144911934599907197076668255173077581008787874661348200537925097953647996281780672209565382888342490740303734190121979532126802226542150052849952497576434214503071588211448486522640902650309772323671955049909924521371100744469524611637880451739612699179380892420424092323776660114234024214651539086979564216156278659417881197860646336825597804099651620421373143253940557082618744667952253236115443313485990618801447685512227809715540924429427629030080764295473684635665230823491997988916464765697955879384161359560728157413713159569989748644536796529892617122941001717036147113188183907443805209095857288240336498226745447678822894673613089611627091213437482750971280401572050123544502012635762037031840326206638121740705264302673161740840494844492685461408101428893965360542982027576035123227863780547818961318073990611785656318016535196511834110737732228498127906070250030826011884086513451244222793582060959753260039265103991315461112132681168168740586787547362473105789514061312488899871032969899649695502686563559166409145566099134788803150364603408522324771965626768570279105846071744932606694480980018738651465841963587913692387839204465531680215971356344195856427007333492668633961063121814173801242755237513805059426370719963166313904141095158388658240467788417063410926385954645833887645517115916377925053786603599768306598883777910531540802781217145719583988038523679079592268306562802267910802850858188963042864984231910950790522037665973077595943287737806129900504043748786818175382633491434741237472393450707658668034213842035642560580467322167758972317176053703832681697361803535944874328235987620531152761510752743327893416408953700072629513707131791742965114021518976524820710447881618137551093293700133192382165349243453151834496917188999309093292895315022295222193209868952401233978205757424904100684133408723029151661449439326421918265648128663691926298370007223063911851844471821197668560721752437525975860321793156831665539575867524512658244267275062267831720470298215942384699370439284687369198169306360526869664532786703244944477153417002041153899228583762790139076907814211771346244690727355294731327818775008103462169965018613515741758621502236614655582824078052253110979860641872843643275215410935781208243771806867651662347569600614485505133058025981420610043554061528051195511627373827766887731820595191841035998400359510028092406760748997742276429307623509076694101738733058613568949644147405759684201206123027610190346900928440333386157650414008429176476877028369682179007594061198238253644177899907214761648430090572153130959790688515746610506920184502413750746531609120444243305593850634515822740386823460468276896137695928951706146343721729424542665034469271786097829252583811561460857208581620989905888635241223947694858178769127900486059303620847910216409073263775398117572005627158567567344255810462189101680828908015171774054871825147976458003887409713048599287563821460735869203887296335806570650775474854816602865935576640901794539822239417363246444840354729739568992349959737291772567652382373662821912946208528394408563939035757889904212696294560877933707694192582369113909523430330576379796760911445435443963083008885789432436281916762552467516292314663565709042790297216489887156281174398385257099185268252713054278148469818917993670346934051341153177493086445358387986729946781243432517053175552374666825844334513551479314335581447467223284732741421469034650383568531029206458196537496120854683802683157482233061256388197016207978506914155942070132250615426720355764558168499732532380849625809362059121483701545990870463806878402233240549119612738137789990775977254003686964163581941385590203397912347781340708610338708129781415499376302054131472054631918828157670221067275250914751801383687410546688007024976688031277955186709736686816778864197253010205119630138506873174461447785043438464883781831220401558097901915696989824645855342768567475983766639966798742554111331485588833089450523373796846505332906496134764426273714623142949300329738445560740402696584578337132971745214144040480243676128472864775342386604506010530289323955521431774160085099901584276716971329199483126540753767692736871170598104690164323798155648279601973408430746393320684565899236153196239853531457867008386999261540878552755309175621303509916792962550491725670125297589795663064964199343348193440072452142015808368390016413677703234789430298514097694260217464560033949501397581013786104122376759141245547476293935980825571367030658187216945207156070370965367009189360976482143897006471074019571042994389129976074083363496112328322898678764149167294334859878592196247637443630856872633839485925462573401381671100527372874420837341904988224010981152153176418645486113334713035467216863466935191449318212591425798764689779244577898501846661520872436384912919324623822233166403882112486305636912429381458545022365993763121734278412789464491095941675434138235835441458038717343725984667329026455030992875772083717877108267752733625729659821575952450912914639542933194718169867080431021119264086307735556368355686502863722805358389503226282710002913918444007203596584300489836909955666796078594997369441371031164707974218420753052562887747914390093548430298923849227189261672330699472989756127911813120718846524691313542529461408124394234244485321990800485576627504136270286516475148807986079379014873306717795277336691913605752379408795922047553508167640680910897816321863293057603240129132620377888582712439767985946422589417834961059358709843170726145812083445817704809054913943747052479591330874350195801115825645936308245970615560700110022833318042699794772091900842512561492575994234840419132391003317022881098111457132158698738787022806400733792468332568913859005632068586840152809688850154641038593036838211734792815905029159710723714034626806420409590341870257873577610454568886513141308773049614950175524758590062100143139946560313193950356527325738324403583448916292885888492916264150070331035211294387881707664348317534102132912047447638935377676623777770331720041292889745688226990314159034547276622946234038580915579809663021197494787425059303785627710069554561375265641029231651178826766496565459058471952065064088423404824591693375292292463381569447766086052935403711994787213968763669573111007545850951764251404365216340255701319550138254121942419499857829128166830422781880244787513381538178636891187310968689424234135809820160583285190523140494964668831655994828878889357374398144963858520705317665051083010299252114707239563968219457507243176514639465882801536611986664363589870312595317651180979069220989003820571850854271687452537783983578788060142894387091449402455283033120599831420901194306032460759980884435646732429423491451074799461991102257958295226576243096892319497678741580768043282404943738093039548089502991908475449854815577427455579938494530427066302848714698126903803611097637571282974672038406267322559540018437634199931959478267294839984999144003733850425241995232224862631707103465373187061378862139143791274689649051403208368510353498187419057584475146732853494498422041370052793869362288344426701790593583993229391547801597434321002243638545263495282779184918663479854597110195109131513391933635513091069630822126233194000044180022164788736173890895089428159112519731362138308095102402826401282004985235010013503155758606866850041788274692170139194169464461892191875057815227944773891706117880329431721463919522302117397256614351333751954736774412944429532831543462029347206634400516058578154587085525407755224232751612079716696196392089841001172672482858587259517564914386834898193792267204221851367242282570082891373850039220003915352742066493714795753478939961657711383036832404412948508932008168058020233615296098957687398494727051674507559790867847697303298007711258185504871427805613854802804933043362381618315847336391970719785631388810106298230765756280784557397857264091013624748022316456214580256417176019181736697439526725139685903973938045071789311256700183186643454588295386431153741672283612033910922135038612107074084725722642989619137562216085761172334259917697193302022522760695181968177818098554684634112305378575853389053477448725152980940567527317538939623968503108545975695135246823297726097058707849712893560977879348718996719080738706077921821101637115523401678499128238873347112566726827764375240979900102137933300466936890045633474231948675781943609050754530446084076815078977251668858898209938795276959797414896590697873816880959965568347418159236929948726894481206934597555394755308823478127728664264330768719091152813774781510577493270381426780219492783058188867456084339848284897803227541044175931734365028136791117661006739533907611797904864299417049787552074032787920463573564100052231795329852399069806511304093145350341923958942992141300183284144665487764557300350182234807379874024717623248345699049321901793888574808654186408978300630267874424154646949402462984293936175293504361375852099623117104999017711584778226563759422875457217291558130488837058003572924360212535891590743199104198881677869404523750081344497105136537397718794556564481155428844996379183174898230838472912496463081754719275889111874197684599386342889957326292906520125096009201944844173720026907607520044523903348394287572756309183940994986025422318220885062216461122611772752779088296913625923928450978051842204622884145848934780238054492897053927217672974169157345084465750607528436292997320577519776810576020627039222655934702631066973555977582984375669794764591238155360993908773187693521292883189038229714769693907886527758309339934103778283587846421439750928502906023198904971507070474176227053933320561698077826919033321435239158462496546361063759775439934831380055257663662066062571754282381091506197117055735714506161866831365853145341921698681085084991375942196324134531319294870029125062244044178864289082214380569680845145761842486889969107322866823750970226709809814341518377104931452321326686595561251082562289540431047287802533262057592664245106961245548285713076612044924932453146677505923453271213174233766687924339021941546798871047047579131536128338338674545927939250233961462893652964906594349067033488820930132140987743326867739259597092667830003332610641109025706626018443844186373650086681268925735955330823680253140967106773112505996088414320508812711161147382042203212912259734433132342349059499055067334898459062480802556987415208159964343572025544706060466878349225039488625857851722770438255016413856191560330954233647603551344418081066472727026953090914738128805343963506834687348773755277128307568474224264113769432357983453057842556816302195397249676109970390569476963261016539329627082551733907997417999381045961117184233696395233596590467414545583047138404652978330551595305116860408679651037526623704935112493495902307009585805655876476478485659953584569986358204061241375613651755983312638568881650856657907133949440480854588525650171131187332996471551851644990438479275959153132150264867325159789960165879923982003185608445443156388504917932955973119825839846670483484698697346630724377578421107793032712934598815761167223428578995537638382619446536854422829154403851486138598560029448383773278234325540770530629064850056436427536722444667436147231891951988711062944346634883922525401831177454502275221581661094847352371026126088763987542740813458721259736208016641141406641893760125604431494076041196354037872932632218108525999376631327973413289687780572857249918880553464729630365409339765637668276052419171364232470590957430961480613394367809879339640983174019326024573559645051346356719962271923044976131355646655562047895282727667162163112446009798161828022037174902876602550575115664393660885708952327429286196719762847743327253003628858104223113475228172041483534171999465380637389592760807845358812985130962723093524590353549839225496704386835888134063463998182635425856423967093693806624385858954016280375491564094346590976940561472207564782921310361894940900739421547776849377009626623744077244331419027249064102923109425294760056207994207428992068890880507021130121495768140436273225620488562526792804293919007926046299808511193825395724059966845614756963455406701963854948364308942813516995614826396561363483230283292661424095713480534833176407280667202987328800498693562554365079979208534202520026604901882767071480362838066050762393074217900707828489749841539840190748899728022838297677020253526378370131871546326664614033580587501165566156332299166792193494270993955442629368446072208036158081486189173268009265154458457840009652560974399055913823703738425322087662703298172581766814524658249742374029081788755988032508222346977155869568281790095634471673327064802671045488050255742853655650210360149246951543890375459996306592131654254270669021105690336040669780478006553189647937470084258988893986960172106352468669112165471413406898486668295868779269878946398212078564784294441273146797240962008948751727758639089843678974725801262856244367261051529204910350940131048917307495579781108673674152606199456618550329234438356624102257349718022592861623820747965317644903695451994697284304099057707487401557520262384495610495546735094771011644772688782693742257190856156490999655689122675313233772308012061414064753447965350309587523804766808336461863431486172278290439125543416584079614256091521553248511279533218930754525389433363335219291183435196328854880964909770403745058337029107490172750558397916395803768663927849606950617877185500999767422442188807721357056922046734915679963833247627920579230760672364898354230332177969684324355748851720726776046530883133414019490507222145711577846244980564035637331472679050817201835621711487993197886272115567740144690081454857656364395638269853999309212598056547500823677551453360552350461471547255184629087797698261091518210618445595893170906804367434252128950495455165817204830287371089290786894717560523250734387597042952542726141005816141969489943128284198276056147901022597277221339377103527453345922594087410111343831689119397014187104659659081598106682547913886238396911576483916746950809237650561952906740983790687983840195374102618090944271336665480682936827254346633061882686356831939485061086922191938587468630458796339615075632293966915718664942786949477575043808471207645266503703890713749454334889853191679322047349128620079578034662814634623396245650557467745315110387541010310825563020506894387455784124647825583065585800446984674343360003149711251716223780001644764573105078563835645675512815922677821076626039055731455910621674957583081567704219828850655704737238171261579089502614486322808588371154620628482695884056930439975071653856500724474514319476390944533433765771239965959714687892090519494266070707329848408540611495487494449710844891237860362728381325330534425307945564025525249539006531280890931831982550897094233236362673307957537622133282096213174887665720298127275664307975387562250743053318025150058695500337175229215037794122507964695791177725344006870690036291873921941925332703901208166392616358715312774511715220255808003903536793755376428621892180329664551403479730918430179505472215578041373400352880424376455900995228892984678668096853906246725871027135313007118384420498759966420561901983898722737867604721489601097907256213610405784855950925917280051031366678639135549081968200514759959409091349592518469970031418285630476579106527207665059037338081180371253653962266071412639649651842394572371832473641266755797205518908286510921446489947518184451253643371461768936838170143485046035214525276920558083697070538490753007486519391822452069848294326868990704832708847610294395926632716548935678923724471454814918583419014540626241994150235505409250720230037722652596136263326316987676469994031694737600340609271585558116962042861357653745506610532188165030563224939145661420479750848870619705117873604835556895772984594458730430262670949171353721658047965874259521501755678702302637247736599360359467256696547983441919291786617666715393039349127801173996518763291168226468219502611487659750797883251145713330074443876327443617101636964663440952859519191117190322604617679449259832776901699905978386940679576861380119432901006138932018733591387189415276981821118135130319764165839160879618064859521198335707441928724350365072667675558714746040590577265920308407345138100162200783634025607735548996796468983634446641427981224741520800765530645508944279303046491466903399052974048791183579792946143366269386060045930462614366642844581681426468477931343857982203573850271987306463182046426117247715166075551147199720722590143214141679465818074190337797359685028976185057571759766009008190166279272424079823987448738850261179449937588515812958470213886454587891617954846429372775677187508176186790666336016094900303911705301976852635935041024934752857129380245920356020010399097541492935754601246287542188469304151546926043077330037942280844572103106204278294928140730883015870062511954679217002707045512532582369506925249458739665485079993826334128013776716503215258031500985709393342280633708354602906548131694777358072665419587653689386104139088477694183982815856267588576140808980698434302539788504851074566258381796469364090725454197551269191577905643000221648400122413158785851379959483528041227365542561297516227355487497396400345848326458139406593194662997858341224583640765817223201055812528470068486041634106290878064373707960287632352370570612350772316440620662156188058864517890157789066287071886410114078844510701509886789947863169137020307076748654954772488769591015659825614521286712243686068894738786867099107887488578018821280311696560999697057261124390731605527003093877515682243049039175874542720923884990230653460211116570455964073027772741968045044493678142915856913222351811336491410026150796542563213752319050417874914129279150669358702912467502708922807853775350178845832188069414765463735467619136166439515131885803665673805356066912584253607483707802482096140053371181856086495991175621047228137225266796030996107925065056725641458440464127694225789201431267085174440536672049741282450811721483116853273813186021401035401489507906959005032943771911752237804925410118264635960125373475053276268134591940085190576879440360237336877120712067182011440763130576932901319315540258980118426984900532932385419632270720406938595994491719175029763332939405833474103614954938185616819220230728472852624329886926324405372181867648799157126145234029598029361841890012703405830349184756224996353963219467247774484081327429162483359892011672474112260091924989501314885998261425872368660188326361858310352055912018380272741827503689793781204886874868936840279478036402868113991911801646995326092818283304333608712188811078784592136164361634878573542620610820333983396223312851474942713140375182929427854920813585274762620655850832691435083576367679775175589921045616454616945474204231216677785779346214334291429555096463895286865984342097768971618221499881876453952011555145233063754167951469244817854688314894190370739104817087565798694995623914659222935912017404836631231910513173738651389431533342172290586094151761028536185627391526726802346973153619660932705268659339676642967056906495382014026746008819896734222463605068246908639968624013398560282798419421282429653225046305768329839237767000365651648347467546801278958592811577511002200415548145744492986912025652145845649326814660358734491783956091207811918566917682042010829298493972309541660533018259117974810584013363676118060105109653029064945781353698999734346402037552836499877142957783962010824306772811977286008922908066720314610153235746224803085075812408657046909327755982213055684514790345542062147195324952480880292536744754808344885563739881725809848238985538252775323862143048252999273654102081471624543736347211595658491594572921528386177293205463415932905353141104291668232939918991364705779605109954868996640039854341960289867235931249350212558215471825328960891320558518560011433388265519075357020514246682450380052885070046711843501358878913818301364651401778010236031330528810714255808184573370114728662316077979902552174881272002378536198770063038087448909760739806860046130515347577143182713652897605554884182403252512910183960545038512498456730911216118320136417788121014492873524043706580264451402156702853938230177822469355183466087884413645444186899154692827432044153660993305295560050491339709164752890651131243629247703989384463225619042798368753414568517520906725863984536819681702477822893046117477530578748966449041307364436078798598948485274311052489601981081918523046342875577567256381868628629872305399334077235095012558673547519546772337214236553771912486737591431101268230023887336469986431368151924691965334518702569764100304097128705429343095006832192980115607799015734168638893813337134239978583853508377729767940678731966406720537941083583794175055054888478512467355652960089466680268508980381165188434955974502636390869530821456228007458645691536766816858365595413537322208500625283030108138830848865433615848629167441499933305171586119185655880677829964942464101163856676495114670677274981883246914523024416400880355673561946356929905447144665090043541529653391468913104100757250685648428653822722925218610830183798766195713184761954373810717363117451088622795571828719558855333468210104504956967834224751765515137049950331204766376534015286484341470724631135889034890238871511622331237653987022833067704314543288131361247164123552064225693728286100083746899603530684398170491427392507575290178334831250269803140772575517659732442558258318898584690159206409443867761352798438132749595052560034445921429296219443872841218670860915820726440525711328510535643923270833025712123018770376903340483184294508845103347610617628605210823160910830593133879432861720531787989137283624722508629482864135761797954221929329998113346500024866505789357405974600307506529492890206780719528980864617721724594606217544846048801342797791592119859321247162866412877282469017439703607778087040764454082626168839861170928295375658703457205630296243977903429718654580118908610093210410865912900442871862701452435864007634956712029551599177317748105791861061508323889411628949913112515766427511065444106855496398847684857484438093768191252453031390552753673854807052281464663319734730789839711509355611601036645631673163048012736781958787160324847891159158621173344082742147945070202620199338051798513543641811922526194323175697544891316940499839653799306182958709670386887454907102766170437096765976606458342817500673638993136416188490834960870700570377343668674187419867154156404015917356480445160186428821443561424846427050403253061184327554499794331000707437619426211910993698724857672851229528651187017329793861842250459514834624763036127749311744487154110826954835321063681517216923633449704794597394285469269504938804876582366486414823438659918265989578521420120723763730619281263939373647485361147999383844467207934580914652877344616483886177876701976728102352095314040089036000996197052648741212059115321264014881598283297265332662679805987877069943170924011758764723132697348459866391061072654645614605624014135826544152201251162458194655925360999330652969813035570777647722685353740299861635320368119504848672727258460800224864189111640779978762483262568787949064457448482634930301587070901898938580476413668587093160349155158016400883728278355789570710934960592725259584347447568043034519971803354479528422289010937899717105532339727768543274901064093084821664065179016731275734921067641393396497541637596760032648674177057369767780360789371767837644786598519127362125705485453111545378164545643307926809075002911685673722582792138249798978804661350203077691513935042219234179122260761323645813287893469148689340979973372358743451998466341343650344840231029650592272157927382690304330450009837672245713491435217852873716316985197286866981997198130407910449755944796756116185220922033328526809373383594436119068777470267364616220457686159481472985852735870857493494637332963211680851220853337653032170557396814922160764112502410976002801047554801878088243272320042310784103364961899442572723376193172714553704158340078080302045495861234176099903084897253125631760542772323544385605951969362386678849476737823057501797478493685411270468154706377916068138211788829311678762825286712100980095425123683119449206790657890878120517721410674050376358010634374983362570253923295834497146818422578109963433698753854001335247177909588356710196885541121515166116618737542585006598775019877612461211065093505067823767573704075505819090720781447273497469056533730871538751205742018195684974247269962390532529021250378081262359938223055318847801711755474009510096870450617136313536589430305122304784549914974247661851245517230187178774978384978923280029765207398957274536777026327042647621552025187745099516487285997078612374371832146879697857688883010816512987942045506521129396445228405029542421443596230817609210211098486888882597587731822664055291954195312191583728363448666055829186933117388778783232275888742049791877918027111401706152050705782249214872699440286610608434071723141251559766596631945668999445423253205769060497101611586875647442062715422965058625163300276688744630859112682886781201453210890178184844908084682671448793286397095339991828901432366347693167807778191370692539143932551770108728537091781395422393399069051954096322163363465535452777173982492867047086976391788838264165874907821143920575608653636398784276377136743427882498162593785468874764728684356151623960677355069884305371372959289780976126703593844954512969520587532841887999057130685884044643296475908387296505192748697787780873961736870605414750062463318353758676459577677424972391271793789724533173579013440325068669980456099971753286247608484036759650802853730439187242398992168167014754255953795937777464941341690083842214167516029619984864507215384613339269423032203805399128011359110592556549589873296410712779685590762273207139600463144031889024911691840649156485199761368898514199207119010405518754575931512237054483287837464066978197969014563745270737967079132421570523477410774286263393260161507842695317056600974492452490965013272769700580150094258349475287013545226307564351849789427488800953867378463286186479702505837701726163919013907512834570630695493052739128082341825090379745205726617653217372208575346060878550081549811610073249350360864711447621857993864617798073562814143714182474420696252489121659374966624690920327459662858352383049390983743328310886836677730286750408186540949513003670765375253689725627434159238028283755131063249046623708528782301526017620327262039172306552996587759443597732192538467482979109290634987436926629377485959956988538037693297185184772345831257833466118008528709680307792789763149940087456273455958617530294782289250074327103796911905074681232274583713582324159818591543303184789950955137395193801050378644943139879624986165985591547875469907390969603075862440014028790731833019344929733440524844590128502964607073458613445201598158774230236684588315092870428609670207268761684371082082358434100720112783113356740499572610086623150293201760404912079263156127165443715924134603794818513284618135668225407616729210150551522455366936882391883315535112319292679524756340525311608742928849846711312589221834628872927617884608891948308938090066114959613626955436132230081966606795799266923316446828997689844631627663732447625496591371070518196683314264420501965832646857367511366759911244328338861765957375445623581089690112038995073943704186376222904549040427570000323884319313012869613666001205955013082035300224417784749814310791440489948114358200701133938234966046237026583016187610281104086464952870351316356539476249896634714545080501288069585295798529172726066863385656744031526241948656440362567297845454126456965696602389940638274462343112227158272683458157482236729849110094032208770403702121508664149590862178102817083225136685229792030924953401844025191855196010395167273303239389224546044621335656258864375015650172547253432748930871389626740800279461911879938170526392193324053947651736448937567920232055465209744441103057369604623207773954325805905420404096434407168197367244491391103385781212164972890820143044465589406969800187959817704735107118426155385095723081997216735655855992232066827445283434006449512644423027026237104759741665338812897106189410389174472667627768260154054767099656593397816332883514646884128064107570012748444236038485157407610397549527859357735129749860018470735787386944574217333097703937910451831780055496061279085042851445711140432699154612694043739866426858479420625972494352535060542453900655186434633215226440888199559015056247369241439667063092684192161932458874069915881411428854572945045340783477968438977166324895088170169367650674814212910448998429359352802277634465961336249671245276181937451624055275612731160571144055415379774488647306675016465470184987728613606250799386825868679471911636263542520369331079163621788676956846708186439442547971759918836700659957191047514520443375238806190527309517173941681961979814730381297773103302041466746339317262776313573831212684642673743415749090787851807600769347524022918046391242201966169450822947695994810513753091226714031377440456686599768019961581271947568541591932314801501963621168027963301944179485282488737541632989984476837624192669638063063169200286112481805769469060697562988854610265042836080443587818776342613342924620001150643740795921477568120332626328113355693535695626162629101103356661587810672920394754447606799376092257056976917662009348607780616708015689770372087457235513110116039754359802174450481418360666469290859196720210527622354936085902685258408801892610288080658792320595485287177034282150289678927142799444338014611513116411117306977097078733424717051796165767057914229969176529375783483887662064986798700138872972568745112282394086867789766571403724158161388088897724734248411420615056804560735367898271163324014399885481529820736000445656507371106006292434641077045439224903938510457363037693763281107147643675343619921080332676381439300263491108361678011176976293491339279001253417736163530082267759157194357411618117328097677450030563790272818177296634449462322588591772072376189014292218989390617376319550942646302740868690903965924521143504086760375322065456078946969220859465828352616309892406850026979606208362907517670435874732561002935586551374583649622324526835060282139101271632402369593049191806454186235629091975442358940319606193626384163547812785008572674390445640504893255918063972082920805601901061804831014609563064838574618159517209467351752062962452493650483290657934894896502712325402110157828942985317084963135664357319154343795824368437913920843380635721805578911936771081101584406402396318308092955500991528039239436912923694360407285684980585223170915661272800785428529195056899787895127535647063079016277170586755597059974247474582804247616380123710841778919987859154123022315439849702743092602115709859654281265056211282866309159429509630800494444464644576147009687719844953724001430354318867608634215849215390802952524164599002585346114759650263919853781951516564437515892085512643920791267672269377287602292471226713284348886700923933948101672765495087436593381234398737635753093005792937460693775136220584488609039183558197215464078319970742436182230971088711705293807996650341083542466596694460995593690059532566743925354487604778832493649056069075201997229829350429877067766263785440853049879752727274805491863780297383846281623970930010890846658069694400297448457860440145132569558547914949137715049690193347090705604794250730368732831427678515319740271868105117282565573691956502590347369692741993552276983961059091117126250216547097858474472570860975019977526130526589329131630257514775361623494352704364478090532212540217304302008586522257066748123120741729759106401032094547494885310718668776966580936807353854874740210844974310632135649639479100441473641739298727106594882721237114450049101134723562675739617015222533926713163023112433194506986618626215129173717466049410859110590902315212654023681188576954255453494165289138083076328416817000897011584225477359384775884949996868677668805263098949339616759699954004905527508246788078508768936930706433640606825582110472996270118831097945195407514474095582462669654510337417156659663921360424427375123928675743246935576877435533973289354689762372892222326199968512106834356163347920507754972472809802198423547049633416203771584336010217757061156858201358026614053860190763907792579283163184053972575187248746393772190425879230461450454101984409051252630857501805276546466517374881168571947958528260044532680014837570584762758903374162267222467230725939903594567970241265264314470775482774526683590391184400814252133665334602485070184857925760376227855980898240277393526359990481472555398994136575207662372380784218378322470527428594607023521028258857269721314577047608870929496222206814175508701924925444860911371915792811734540221646715209511656080787188635323640931525150190668069014466519251059127246495344200787922919838581747168168992990709131741716874670792599826528295302155652631652398705311706486122075028900613555445797652893229635022009428229095663847180747819333702119164727479312767128814164287976400681711648180557854326769734921097331304028315731191655093089130267259981679553146128304078870940247282416815002143153102313523610253151708442299264428489861168004805593289434665452455570428788932952047367992219952134416489353299966636386422264781112348693180788358530451055223785547584382913231657509539387547285911947026303155972106412995122744668550341172566929487121145984885588667443238966199603053066934176999353549442894450511040588765218198030185096136277815704492745537695618456111655099818628657273551556594668847168561913001684807279858943396394111032705639135862434141252957493846154127065619258367406549457485466830673057261039603424819348801204699409272349939929981278650032789863631571971506413841068879791601455524994971842990259012196800571537951246142872784948854165051941666572126632918243387793660760684172495163948058358496199107162746165169228368105220923451100806688290940946746378297963999000716888602293974909671893109729838062397989681506443559740006740989417657961329823417957829939499454999955094998012581219478809516879578285400643147389682715799508948433186248337828735083594858170291489945111174455730540596557955630057924556400573143066411516695164229308393687680894892386297798767662847669297873338836096821417112972762868684274287168160321929366782283938611928621783173153511021602378762341670394376679760338442927616542558356901571868018547746225976627183177908643723537781429833782988126999095370168480046085999163242385974964312022014640487958239597258936854922145900695154856085525051717613049469575545932822365846183951606071367748069247065215288678514832972900970328190860708674243169174971026512073361926949386484261165399669312315072505353820970292273019505037851610546314347842905762345648168300798869128935166112374785085864204452254455682826761043388547586287432649128356143675342772440051526197043141548311982555840187462389574297104239899800909014668984545736690105802355516867105745637537748169718257963756368311455456723305022121037012184132829121735962778123197927572612814772389778342721468877371871965824141883533505567255741120291354905347347300181997432929344379307937190574358086347163722216636288877433038135954955862004576945395632348943400370519416943123587904845885744480271530289515009251617619595039446068625849725683648227659641887067029881257143510566630196687777581631306703437446301827965890114223501690184204756968034068524500368902074764154371074251027797916790638983731017898162472233534884494444107360388979234259095886790315781983611070813426665601924328106225223282404815369255581571758420675758934635798775227894891684647234050275354465881440233622318255082530263765131186917984668880245686690856767658007371695282087917492598544007211693004669925449623515109213097823683907855722644819766242244149581603145306977753649912462192226389544373324835226620841528658352955236974674853519953269292777185810707977272606329829350883508378094441266477410347070587063386669534933291870431895711015178448767328786271764651843064928779369166679461775890984911865049435913143870286343346537421359384212156180450403861748185760326972784365378613038153279185233027305200890028716619008015431745768527957551454575671906691410247974864162145051487488866641685130618174569407142972908921511695592791882399315276578874389967874505282508069881645688583751139785205961365206258209388644644975623295497373035780862066347304116055661751934143528875375842810409711226705461725662705370583683082414597287652675746053195491625701308088231911896593318063054844822194383544987031118336878203452418399678993468104414632368067788654686479537336776306596226691331647683686755785048840234935837005241974790576084213934229645451043945382918511914976000507947225817876855521544374997497473190184902714331408550700020389187691032220982929135264499608732276018862798388497555719389562608311935314628230182781896740069372770654623127499188115071494247742145668699826544168842677265755032761547380076545957244011217537136554001809111238620067439943980294996647138496500955291162379551371646402449702527951120276956762019490100751917525919213208562095670362626395051644603363070276224765771979250548397242828749182437871486515179734450455000497091986399710215317883758585612522064696073606711848086108041819650254226009058585707326703529755716626445178006962619922143008460921237778322532770387885357820770844871640615772737430062197580987660499151836534570219809072492525807028259005970322528479108315890880007152553753342406649889938085764267628828512479122276863108739842059885922435521355671694876103208656099463269958749485392165201458841812460049829471069722276138611218964483994879210515246687579902657593135095304317491831519838488604684931655824043732743900125099937259578831120501982828823285651532825384622880209302666557030754202080976565073027754886514391845116504728284609872281156778628152709116783136881558514869845958521068530376322485113299738788596743558888146396001087024228159338444693008426954923012119473891230241702903264562642538999566630876991878635369022195482013545574431408861173076191675149184501008877591916775048275191059537149507680195280311312492834071926953815586614970612849936092938754481852100831316298953385954056859835032278196093418551066560284162712829026004988400867516206300077778257574547895214304846315972829087211518821804712893697944399077381163566833060224655045605327431515695388609107614651601709630079559853690450058669349234908549222486720218036199557573585450938211611203063219284347768228400594417936059777445557275297724197344662134444869224937584943550302762528053842062880684321844588015380596976280355001188484361063296726405331337927238807759846269327653623441231181665339697372278996298963870794517538264013572648218620537955796856824384303715339758451570176687027514338119328112390593534231542018109769032536536631196730170752506483199835004418389228300777525209752388785877914241874956003512692971887076316908380196628555950510452336453137321173785848695984306997588002337647538387378498832246883814239603560595577536672939474127650298495037273415679212351951862673073941886061796971159701155383305074413361437147566724952037461218132570127474304681239510582427802819864661467986968043185470036247939927008585094720015972864951751055589936525372080498603858866934127339337831706037399198222734116050671002668916708183919662242192076720930353858111574002878904110912244785429019784479103068784588455355274325416837750590281097743377485015626360672679890912175842970181658039504359643503000066935442712665284160050261705342892218600443027387774402627697827427537747989060839257532842416658926057568903207333550486290395237920145023806748634833110596920474235733234596712684316134519750717791451837264441806123754100961425746849373178972970589972302208328960753331899988222006395054529597554814581103637393127900087404399006556342017146769481469766753443800577114295826030533979301264829908863990446713262004529284551633032746882078439369323238430734141603696560870556568370542816284996315506382898333342120026547045250988138409932680838119938433165842911520261551092285546115910498296239086353045064329116456702161582722816925049580523232919240450265879908666875143992167274488353904028722584995373215228844124311625748542893616761532195244948505517970162808426131626784495787039503486637084879485802764940888527840522163887162739566600886837519701655556463405508542023623230421089055597637292135091996279522750060494595601697098993865599093037205021355547551427617047736286591813332210581315355281044174428527594100547456619390938951632167101794709829994893372376873265979181795261459828839777196791841193073844200941429782692501893327511802515908655309321161753826351005690045661696910732674641965246087690979703753005101140834589624764282009536071897283996633525427430088371341517127200602845145294899992473985204593256613267711415302285460629519484377712779962412136740774067909948887692803659534532494834604431978846851081714246354126178150911684753485714175433547106124937838968192419575395275453304427255435769239393646289090294856962058927594629926339015532482332725906756454492237590177624349915847412207667426375383584321277785945217063336076856467514013767885933435151295199629829311751520531442278993637628542400361553188522133762178443162557077019180530793339782662582467558630629903342302215294271887997098765451682723908622312443583999726093219739472528459736578208839525943751643276957011060515915083483324274853703217080525228698084724725851807969953254679814648318754791994223066441858273039869902510403038165832395075403111832482485354020824871292852666708312991577784701110198064205674952562153240327559703710307687439526489909523176321022544855154301704908542281508451532022808526449838892923189084351300350795419708125891665659593134025110296226953244901594837121513217816582316645679094231633039452097337319372724782857597941721869016354198943742018346286620906261450226240660500742619696595584421546252652959719763708860327479097837061727037056712075764936776589486037786292935731628309128112856574373495166605194144864814824859972367548226515084125082811080914161639980368972321969159878179240391816817502635356835927356895611046749137083998707772582184697436817229755716824802303601190830652868459344928212391436376678634571692873692122962353936869814783061255914434702298677452668674894601612050115144760616101301126378495016786505153425984139360750980281383172609544542950563058855434861157810683010063056205988500631607134165813544402491991202614157026538536727435513506387628762739255337681826765374377911630323257554461807714749516518900175978736957892424868983707184258058967591747691395135831008603427947417802614576332585163369385597176022758698740273530394623078351617004475940794400837491507031890217711825884427855338394354428420520797852181359130406729088327856556374172016279623706818875623862489238898453698765665892105938484054374921394230306119073482277167659791000648628145763188761685183206361311017655102131353509878528170534442213918236407114497896050776261266934504771211038542549612579661615077049391527037033163973398369337131428458176462477203005382033881358137269247426460163377180317875992309983594229346808424185695118083401993784588432362205355333278100422266736084054269828636673505222006867734462853035802616513077445496485324864214557051913918026190892103957564809987349572357218942084090939215457565064978119942601839710954117977376157939729000657754425444489960867431840788822800065235530586639393981491223852666346066610879408566118285265399492399211242575653998111235023813985210653436231183704891142299736912277840506596597590192694854328060026778795860487905325607966647395828703355391051859635135102754907903022017806300726978467472967501791769242784527408210438831617166745473574071509112112696486337111598200652366765028707497557176572033216750098194665027090469104376027485135846421759167169493147311603150768006056654701873753459910585415804470666146196792125999377927917381654523213359264608298992551779701326718975699401458304883312724215100184205550310032818695278839170120282983566454892848477893408089125723337639040839345593801735050138709434260894005506369826408327067423853036281439853613032213790384266769260993829489361306070863204508197111796086909814906708465635373911293903362803781686206399711554635844488219975751703852069664547854029705275058030002635382329511015128066617869913520954261978968015095564171543235975860997165027653465910364557546446897102587142498423577383559448744946078864702499764442291641760708513897889898373646286967494959648218490444863978679995608807523119212632212688970104017912682976273520262608191742228009177533415577713183775321744697627942889062744923820063189012597316729483194184803852018447047258817961450572796789024472758627518941677642581144241113295828187517447656659117041377026198414891036599890450697636877463651500936356538270131228672402254907761486909110001192369427601471545047047046295014101260439073343974232464365296308638161105137005571605485946395377269762467780241002125541810166767753280489812479400691168878736384709939755283598681477067304730293068416535435220278445128226708960043431847435078394099578378611669531488055256912543608914702635589978031672681106110991634838880333651080442036530738486492523538826434937118696914133924006890867641626780434730367553085657141865257451586591852887369410355636265294592332104749645067482481699514669228207510881685997121274257632917323787659804851610485805851620817550137653437190446242068663617529255869683258159752387200094928539048118745899322579955010472308032451684489764851311257573562837350455580861721185498431414119544823330837587251068556570855723372847058060229012118363895392810091227641743003330689918101892695934983511493454094670287246670180339902571825633256824678138001425513862032623682928061614178835223278151551883941971160813629626640951871043445593153202606417806555390198227310215383303747520383065455142599632865589090000692277203397683584651208953794063292398462139582539744463570161486332733138003140645758676119846225238965919129146971837084627861707747494832532919978564243665974778308783913186228399227210436236660778007649074539847663976270344133007090295665596790707038394357355729411519213388976518411113614541782409723409891014531941643455215065899010165444090913695311593196555522863754200085275814122838964028834178209949154490775985553129834878670991126608529696901918309156669405458544247481360402256144643320701913592391860270778713425509381358023849442996713672200078142646215557207084872535839301851177724646573679686920779898641138607989135173266497083896052323299482646393662168553350017317491901957353888122958494606343785566057812985534909793514345295334404188752153218202191509586414627249131736520965608380620201489618015981899240029208346637841133365499834834102989346219242904595867722992432640311758898376998865436882951829420471161286466526985671793794979796736969039507733674609212363047122012575081528294938825398584759077055632906249780544678963342859198626839948841081301734674238110798212179681083640194758933431966609950249970983164152230660574832281241503580696530611310136490669495163263755861268689439824905617339334487270875086061207927741627779137465571836821462881916605780481028199979058017936435361721165088362602503187610103156980919596549871979357585157956820645848445435550661398835899864194176236907977613773011180803983494723940713074307771944590758217764061372441582544617683333066666772512844678025547008819461981149173902561137353828449535059326496248922117851678334907632216505621836841788006801284593653340206562171820758560570922834066352265244296227614902163683358232518569448283829644234721840047403058509234155900545601491222238533230348209205288867146643318517482767357863498756136107866101301278128053592156005611594864341990832236304522088197837105887907115118693146614139127368940109404991738611476003787306731404968477541239230785197258216023374259067554728530472513405248293983613319033019863925506600579246331076191264469132860549103098822829074582032579075355453649652712071108117849315144756920511703941783392323793380512339894746264367266585413485827915730008133698664610193276929053879259917068864446946468378120609700844421324348563175188308206661449615163181024187762501518302186882982688796044707448440907419175977247935166599535405500786548079190216165712092859761045168908989660041225358711321956300543938769200354987522964517567803814681488747624859905388791988879784051359643522045543919388587216336136541452717702207890980355689182795331882500853835877734709660812513869212524622591449138225518326673137434170759075602374373429373602604488786717998830375795266737678179681713313921777243655042693846084834544502562285298458432187318353447662490356533600445731219635317366440477627687300792247300537436777262207375216238344518304317012286568068609540496257816732825679084011633992646223211243814118456027187416794355552090343423659961540117971911310242831777977940568182242825978961804796501174344075051105146451160081934744389300636646488896375146365008462378937632310092240255108291902956130768286787906775934506630259001650809143796505031944151969178753345287611093267095106163195841137736709780496262292388846255860922570889656471460169154369787534085284210235275307878116002775286452718455007067947208803322759291198550700045446890019539204973979945851444683099461281852067091262071156201945080907947935723991847745090605867316786654516883776668146507736621329229605399429762698957052487101729426211455625973748787652858209430656489698815152721256795685398432742830182455144996214166231122707317803401363654444199850747048805324323239490208447960038662153424479837066061460791268812195082669168457373492707120959519848102081515508882266759036094459016294082367719268543975453663912657723990919820975131353078174006694063868958070990138593561514250919236134791536199783554459365932929007119426493735980638664603914687926892017788778969778549552605221167666949844442041169967261193211209476063504240342824735113687647748009906652844743010143826930621911115307328719859809387150324099689120339209407280668676555714273368287624162711603700482659553487039006157922129682411223761086213720432212900577017195404610751689186956595899524982198531565901785469802604893441174289281910567665321658967042199546938058020633854473156554709043124488995682263405506182826432306451719608715010250150297358429375938055246271775998066695134765162714724608797838764615855486098693651597365194012190807926078019232522573394966288103100852796773778843301359114746740397840713558218706729774635751231170982802362803379997874158849534846642103141464108071361247779479180106770627179160026131845638607154483576645555547485427570049295683100430480152978759743645146466352860919949787746375708106553953641768268280727211072537417329385364766836576721132164674540919804021798366892766956431197187852743646380851727029628100390053391067116291842892775477696293186413703133597587491497330062622287324238144436956039564530330578436744466036322869654867889379023281958391594717540194800083189150845589077346137779969122972696280852389809629721912408474344388251497320242873563314739559616293744836198989313893186261386249797568413415884594605296984975020223433718834430801207365097908607275373745546984040689571589962213890798357220042940610311697452781620333343335252051688953068635307687683424524302564058584973161761162315162233419592591241647703093432185831618907881162035339869656890613046451032676297751335493459998594567661523623414075824902368148958612338372521189938299865886129395723609846534917020427465256893837894845327522113929026598793917164839696316694861512460453471745571617159868291115233422697594710271472439630051958937409589552195481373158293025712287063800397211576811897015393985281130261846984743808503976568239513481788204739921756726415388421910739623039648439619861250689472755906315808824302361027633814712880119795822089973736338532204707839040816030714941522917673092226381726754715488906081710368784418154476902179886132730317633396104832659574287828902424411283826260118722289035051359068100352696538124244992163113359850438945189957513083033646658708303198532838560444695021949230584589756735485880072555029282737627769297845431782648282426114737658699724968683248458759793627723887643698892353626578659085192823892324837920784925868331407145100364213434699681435543424921318656731882781728953152246276561994628316026507326137036099774843540066508450159676180292642890214153325712422646436976961683684762908155456224173346330393476766870980896037730742363020808516504419068410519442310195427838173255352676418883642968974138651678062100661007915889455773703473075279247900478744188655226241118452090651164509518425058737220921835708824223857512615256931872138267004153772157631117164838087503219460668789509910313433673632447348115133507189325175372355856550363842887580552425616429886754823508216474480498975175023850686521941470367554735244369781253519617675318165731844826986068361189004321941661406117157969192850050185124592448357711170983911236587977412414141380606537062234708357468394177038911560429115611033221685084462288432504480265002855834100478990641899179563857096902287777749510910370126631027569984995026740128055934563878973172843881910701258792209102776642500098051312242475082386952901039493141313295626203084429560384994747094751414791172540695701747469751593752684659616260781911378336932471132964782877430743044971266862078778353966555738150926669687061404290620622626014745981156527113952274192861723132347375730665170817112890385736044962874459469369614033375409812074263323908016330644204527006405258559304481134369378181844523507157493254203853854699025229057513193547977218655546571920734544515983462369674504988536427577327950048934742475486197962635219864615401439473442153396305123485056090983597351207535297621959907028908775761746138083421255628304724078715115488364850091628669010683258447545745309311542490204346132171578265655149826845855313678138945366202821513691673341122584973874328575631705219343948130682870360561829469328409511424858880453682810360651110884047687126098299320325039049690605407149072326203193097824966930340855229740476802393594857800270094865498023612008282479053919472844443883680162400923563256096860751520185315303973184734589569118128818652209480231583660736184369140522316589667368015962342714129100441865797074371453583369501108303316773400209607984663131971728763028492388548614565860300078075911497813146289268107473960580034330831448695860479931995981143657913530409429518955646320435414172360261026730875743888539628389675719632852870810616769701767694273668512332824789361679799738175375574077859496811425001010161797805463596302605423092722542973787995833111147064433560457054873064192868450489463234388921060115420878459727079795604287217562084603912043542027748659798280922566493626702690629723408773851527230766055635674643798407648730802765862579176976096661976663690219237547918065889372004068605232091360063249554559201416655973932943093894139826638814037229767715339896975298918413961914681518500035521371066524412900499722406110654561411699419325795813652312067130396861027630805597097569753022801928036549682896309789636781772091470593483243350360401617702612470897746825782537505233835906506644020353114361959648714376520155551788180528153751631737924444156034232102615124257584056742850204116873305747736350564306401886062206734580316187177425732858865127500847156624101529098606039145324362104602566812459009514482627529692301617369445579603623799868061051164291806174651606864583787473192847493285458723909246018507772562420870773030698654637605387995148198493998221329483805804061398192541520956009194525637900505471557537165167016339468781155231021269436824174022338188036932634145927792893642747390142093465885589706396432421986465979274869525372857993031971716538231010253833714424906377355117293003732202976082182067082629976734613457804865199909081214762287747171324743308948360719834990710866794617764350001484554754012583834726982710095314276920366523461894157595331383196334224651328220229666450471391046746093260723122391842082270630867685374470003741990540324394384089906509860078412605989219840241437164490577869333387794118851143694624629335508994100966803372834159955834528935253964494770693228945135323532491153245429225275187398006844806463277089583180630244489976900860462849931826686892794982223696216053117968834888317371043992600773246856415279332892514649556645272405350413116418199749894359060277389576185660770999783070764385983425040998936513548245840001634714650698235460679377001671512902231261549658599006580827054430106938835952042764851089501635178547849474731935826064073783590818832516912378800838919767959473671276909757280491747926190998303317150174758438383111632734932462597128774194478906747594866690388213106969697889795162403598480745669737346317002764301698560729357259989376110214343370130701276249013007113684492522809987338953290588658295873851399408290827038320888406933250513388489031474843574046236569228239139785672319259773212499704291445792057572592955156282427724010959059128525586895364835082578353540074737242370699810757155219617417629455795111188064558576300877459745730876354381361051071570437745831006798717505406127092267943894828788041667679116233066739518392588081054735699401000112443140482875330357350864608081269526239090773205293891824146642264701231469547137463804485002470003690507331726827115044675277900460369021411449141090572737495201933771992266114490964953164522183524394842710829019136550496887253139112493615157706344077553830247436524877531748641495671417642957587484565969737504911171064316420664655978855738962649198783894897747625865796427525118657520173466729567531660507898507852364951458403057726980328125454076856164521173765723452383116116335087925373362626327083295607867009236142487361881387640560965719707165584480066383636263620432399134100875055790911542568826190015686978548889898769194028755403948747063870796272148547624478837499606377211625129687912857006205116089673790693877064273014842350501386017161036080917573475060618199863208176328837803038178565030235128485184319520870594653088153622056850354006729349378936513384133746452864734634292502584423836157417792299922460159611346047687473216142006933812233803615922125378449794998334129616262977217966180199263711291630706619932617491153670270956846557031368700764809106954160086517873784453152276730374966396102330893650612828698530633664999723691170360557169944335943927520715713297771668664051073077841529231760408679154091229924200661297624864428804013960929906246350061736645089929333900859439984425552706151155431176650026191605540653710817586734151763168445977544622593088365054042215057077373583211625507696417641497212838284755191318382771393899304684953730902150115925559806177141781789640063863197471401237539266060997807419573135428947860578070339695872561123651686558391210797216490936036146586578546339213676180335849828080613248528973446216283203895310353425216049515087394175776083250338532612903006504222186236350876120853684901359126523191309647446504471574263379671758948600083634857722152611829126826811687836043261897922062959052340063067853987757389501399938384585554684257693233765163544596972128594526300436732831166863963954712928039500381048340464023555971419567428720697167805152304735261097557939990911244348618797479341964146923158700382669070239751070745281073189310594161346923126586834029426126450977531474289425448519217701589422043659102045565732344583333172099892580283966746693167841577668004861877174713575438659993287456956137176819849747651476252764965546046317520071749925115057204848775977250740859750443850150977610763225426236151866318094085820313141728349280240793483324930129985143774788372080268853830882940667081319491853352626858328022887696977517651874713489410414018407607846665727017868357388606378438965587170641482592456318480718084565764792988815332682787053921835025311222333499069560212413957270368174259259451128781487830231734049146545192877184418334166473917214022119337461218782642116580218611705412287528178165921777087675727058956998625397217265496288821819369115558209042448081771348967444215130805705799341812623801095668413288312797860200796610491625179926030680762012736974504822831127396521994371307637300417553718063254058941931726486046355598419702163596399404281668602024427578488658744653133292832131155537076093166032884310174493705037232456724604301644423266937451717543715123899510807016537401312047215236621432397652292244406998442706236808305842348047365176331845094596785788618937351108669638043364260354894323021681308628526352960649289991377059568341913529569174212329978873251379697535106404354372526220933194958072542423868819014554917504704618266377878918982889938896688119405882457523021596395543264860325243047283755167458393443203954362729402053667884773818585683647605585713290015269532069799043500629649380278344697664085612876596428344606942894729933223839601048893504255867752777623191758975042049845492875740424342052823632913413842353409552063267564278360630382585971872929958577869202657804836720513976791712738613563507727140824742934662725596945101802667471031414877724789734707955178236863556613886578776874619815778428999963823542527887816372100477984902147467108905298976219342845515353481814900866276632015572099002146735222880191010995217990577380701624977107301095188552763218680819466266041458461833679781610794426084026195844723349615589749959561930918003302940681305064814733371745517491321295639555109441675394694011791061308356954960360338956743825168544701975596903370004604349022937429741812584058759250793132719921753436955962313063446642899652496827321453616674714390415917301711680953520325951940521307768604704435438899281782131122395737345731133582662038170799864816662926594524756926491028644568549203431691840140596761032512216791358660355705712536350353123868788594009006994430545968058123104065309663771104829736196287307681962656854029500545981897368724105789230457517863213857179385035217748155847843542272813808872523539116097583095148346982017672169151603688280142562314717074324433926481298447775820665284445726919273966257645649295925014923635628539410185509610615941262324546611506836402620485841654390042197878441891776651712772571932324161207456519234757662409781257258991672829771689968019471395926956039710182156715710754513257312973529204231972683023118887910268284561853110985337556548408853171860756682892589079806839219999915262387540156301204793808534096397229075023367275331020590828011047513942744449017847774406111318564475653601900056314706997373515630956986010690831790270446103070136365321351892811333859070544656630737093900151198536401553560447243290556580893246099895305320533793484031560679609833443212564218525946715437685308791598218639175778858945025821300339367221470002802644968476825274525538951687111965307517828466632488199539408535253053937858377585890989076314747858032922338844594296775543445180298564048027876989157540040335963704618055072984342542984209190965417639415952158897639864243579333160219655788808976948884572272430900256824818078932745552239758595453422113643907575486229447905402891535467079447303602218960235106418278845917070270961887419379100011096460961707037276158809230825355461424750218370883383262661322158271634405771767687145480192144747058318999808249527749624962191997540277605117793504652716700841822079295702602178056395069369463006472434879440823314163320719001333643809844395616625186774544308977403799514894265273766059785728282621762790257556694724905102651451872798768485550139958225099262509099873870789015638139057468438022038547538497227308547662551407900931984694687373765548669439691414705219153387289063360188418097671571329122854864734863416640950033402948016183950685402187794489588332113012745709653778333972407306683366166866547849457384633959984336921836630952171623591614288912766538401107721271166196615812435107683147694104140544761135881550196257921375264891236759181988549689935252471678611100684722973671020721904057459567833380658531750363252081305369554952804498038668374207076515230124095598718611551722742605276691464731344507787076621513886787939153608373852277284028213905920604989393922808342112725455555762951042175956954981921697989353089456468335998105367596791458282304710999384241537137816685282256206996741588385492587164884081366765977523300106917631208146627443759679749728817601582571594858123567486407087437970745640028699267955504227829443667532137867262597387998284676031335819858800048965717962184634348825984816511636526561412454778111399532984538163071345924571212467821294829503854647200190904782978673593130020274349523526961199277524587486679433390573343156972002509278512338693441188595044125847845190628495375374376143746703070835734110094824470856816029681717857237031551324988637455810890345181162208047399145436930292568828503922809095813645793378714668992315248785097922439045326299726009222462460282023970675924918874308947047950842294163942846824655026060650214533987686020751472697048199976704742833252541723151637781491154795498056034888846042433564802983058407514460408745234500821220150539899411450354779794865445417479684414601141194713487563577408497000902722928504883561043033713565252020432163485580292489871592841577461806891451705247220378368374589930250997297390983947533400785171191656981790469509870027043039900268553846262775823182755944560596228954631616974402009712928026375769657906943653938611923358944065828327616110632138599848146912665222145476589615400785188254045455926624970855055909105380514313985484276680285428222824400229842398495362924278028356301831972955913360584536033350922296951344749402892607628907524745800941667051497744932219571201179709547468430409487628691688112997248210656368544695002692649299373487616447277210687005502760407445048457868452888720860931969618341911873468797325453666524196521407662784291008923590378814331721598538205058551608716717813249162125225472271625632565518753290928712838156964061320923299309986032453134788674055749945319485072175014404652455120295701474180445138927679392726414475677820583438977579417142849209009633305212769102116301727981607712203140081299515262045480818238096944142279049746185737147495173280755799437194690076143007869815117468667652897637677201563125444218473075285775432482636155135709272808585642293590543500878798934723990761096411187040494913202562070388357578305447987324044533055523162268927120488938308276255515092036644155178234382817339240201847817544791876074602320492025238680603747202526658598839434748916963233053661894515083981878395765277086956422952768982757066657492289984958623888992606699293432520844563615609128739540232806093078387254007252265436637151215840846039720720899238600956740482299913398724069959540498835460960717546423491728503459611142501140172323080111569075605916846984040625119150823400987150507990586615079843870612034309261183643415189897983178992007112790986513798918633615773722505149440879369268070025669681505732947647749363734898367604001429389771991885276493361570912581788286869507540528889144812856006195287956421371380845396248678053007698607228175933565740891706720189998812336614256244752836602184772275325899982504606596919484828870539847583927581153721182007539876191131336023488463407993885211304280899379650277817496753382684239750238545087537839225457072106406655135231798998596764755722119119332326118108304088569059955536257927270690660048540089972627047413488978154726065197587555021841430830871255320774802308642543598575008784433444177083622129905108203180229048130433860062579489310821697808355040516637539934136424138752872195934343993796646227812046512737454013628487218969215657829923285743105267199263781425044416202860421118602461101510726814452251468396357546345401131841984281226522293282418570888374415258955313373752026078069012218404692307761380035162871267722054409535869974818149962065225975397446227551340113200147772842112919465901999943738352623634784077169447381850091366338550930154180302477450075985687674851931226432686387573925362627849363771714004929353235419150361342849616339527303709098827134263981660029434308912111886454710397637139656160180281267303314863587477369543817683213913587256464137547749372902731498258577694575595411810594826413302232244800184620966960507365489559776806618841499880577650007252614914370546193228915865100971145000658001997683059571245375870528677925451733846276247162236859262116946170768234916919717466480326639022564492580743966971533267566115067818507027013439042637853537184902868010453063981644402833599660895414831269377694216501891415081073991197748284908840958227420245184565413058024024346423103459563938304623555607421276203629763294980988670806844616624789974232747171155476394925220072459437568808172186007774395781622305656988202927752518539644326982249743934899591767531650679667115687058372178127829507500034253366645145134751645825797970775502560501629069912639099075741340688441271070722197579273890046452597839330197218908961575553235988572312244118949340964479286327940487575127603218684492724457636842784816041494957548476110250992460006303930223472260155572087321057425060507596309864007084005402362568625458157443451535002791647705824153987656440333157800430929564605242995225372141481538754738789249139034096765127548925092132376615756314881731682880469997655483044875139698182116427901886159401957524978758232143629285287749959039265144489491134323356547777090188938913742490687909614663171819283913867402546275805578019490376384177414072326894177888359680184640227278708764776779651733752788526194672123629785430629984165074246215270555912202692244281650899325315720022952296195251783874722977236704503719817921814376087736081711371879182770852722121172873185688222321596083570933586726461424103154037393297390310836427302409954850467239820252466611409521157233887460415684569314424579379080270514902045395758666834655145745557753913359115392738648724755684123159346494974600367710322621918971247932575982055849502195106729219249009262045540549877625980330471498908042005070674889524615319374108256067859536649493971306822329041315863563498139814436028703346872243040127777555715153675807722857405666887751027637792768251909574950040736394514366323080029586127054917348196368766630477842651993304119316766684894386040050874198710986997019321229340490634096513038306103425360024499623484890780416934088360397383562276502654322146330196916731816403854512649574466465038756961119238789719345147803602477879690651767716305098010357026287788373961318348082310423984069774705509796277527756068703656943437482561851487911165062947092236785676124068819426115425363416582370288240215813453737896734966185112670561629122938346217458137736818204711504247489074765297749841795025705261679902520926111849720318780170033616089256115811738765936834226329489472023174165074911534705820619945940913307950544650489038483998224627175552364795503528279244979512663566347777712672271570854956550907745398255003219303643879898930227153018025123206694582202832506876852941814699328397905122353780461168602082799830497464936787434992658099743018495791392749600784496687376436230701394801492793879254660829001930920919682956061979726483380593136578480934442662293738034115889333919318761860346089549899264492055683965893699858408377312148394754614500662745334962849075697030356861321956023587342356435693356007956025569220529629021131059971263377956002526287760165983677980559958270760539063338669461869108012205430401567715079125713685787360312336532207139343841063837331508951304514160125521357538574801314876916569274510463209171156392802840866403625010371381235876972749659211919750643828792775475498355560630301408026856974679247542617284147408371519656884565593574350828851168899258879820034681819553947698509122457651996097255883713011490115346278974338235583008502530655505754052843657053082770694322498573325225678302674089995563289827840757203955816409828879907694702025481141100741316951202771220621885453944302035510520394134451552231577020617192320293960939158566179096011107944766654605521447533986639682265144780461947323528837951580094292056646560305267333666912636016326854530922528713092788584357469668287852288220738563970563549228443885535931167311890174903941991559110620820219574487146777876330020164781507806326193368299456124529888440996880151838732666773821813788699010500441670583613680870193914311347634385455256157993147497161941665619556271463310080365131120086982927906133272701301597414840963581691045071315572485778191609801170296581552234043077371148995667768493187090455171488955247727003513761604165689677105118143433722371737260381777875856596802204596454058162187470972961485774363779416910729776960834885535510906996740890069325999144051701790029483814714753090532392666798279039436202265063753423270576591193750719665379150454373781437748908048663266334244061085882525156088965357411069703174338143130700647765930882341409034882345384886443352054319923802646377416600555511035548121629262338907106684804015816565685598667048744182411988105228204262288289426336015128710414335230690717979793287567054955135553020958021267374110580971852043846749995776005948933945297548213635145873176562394072992744072219385535131278260973583410029093668839554770299431897843468813297396240072083262752130412406641272927890946460534418683495601147093802863232870706235726137146062886613605379518739674222858347181670445017879144152022393053387049167330546244738099716375709604332263110233077436891845729090097847111693785019366259558342441542582380943479576481681552053210122323924632056045957522314627950106717932168873249284011807757352554510833952989526695026086466655347254112016931132303447847017969856686666628360457094616470467191897512515007590600050359436824421646600805471810391207704506315683013002874080318759008558885411238812511781078912220130396959556417344652945733663149045738116850045518496850069239534027175205128274129924175959922292358567149023037853320221769912064501939389100999780164743026796848355801916552025668028523224339089136954188097302046444528910476804841234616767760307454889915390984815390987265335555091236376053257976345958369315958920681094572860511790060975135933624481049648256416405208082068044774455966386610318462784848785568486145989267290758005621367751035411618256079610369571142943685048958497147275209748402308304191679830584710234382510297165428374703809572822951372170858823977319109328167180239262435052520627128604770391193169546873027503544620847563736008957480582225797863369254194092580781904585135703621928544006907417113949487107294924053572986959365334286833757978318144697899681132344956066557454023027735948955732367178552006755722841256643820195228244129222879572592728332263453617385179350493766233797546817671988342033093372609824922419449174672043646096801208207543814980372177951480669114701201188952884958013029736796564892020742288225771467255067986137478873514387693411672252502703774622780208096619033863292371469405929882588904791005947243301594793322688401335490638468805611392449690833739548457353390052877856377621732890204455727401433891575289585910978003015209114051295896324742839307567404114118045275198422443528437735962676101615739700413868522507283982611581383028007323706748152046128658831900057282002962031875246061714052458960215089383136114679098403447914616237525062370030908308084071513728742843185828178640983113742532557201315955926276946188047515262460619458957619938287672967216142861893438308972586822952212850864834579155816208280534602261956873356200223548072129054517535024418926234016332196721741241690157209124397178977500203850488752464123553996592596828736802589894836229677780724943536175048788324717241541750135036032695605799314656789171171802780295561782789135104798064482436949075560209607689666494491070074077550291652250748664809506942829739092272922628278310756888141894254542829025652718474577961565550097501595737681131689742020590666141712574848708721114779447993661209083007891288705218935928888795885240962710111869682402457610655738261709384814227768142575666716147448318639338268908713435746187130579956187620142632684498559383354426430294850412785136713581506870942235974760751463576259693527807319458824034579466895430017597241224612094836941479543573327080837836484227716405010938904576322901180538031595864981453949327254352527726519133317206463510066127615531418810676801266799727943226596299077755298041572461394852769404520145586532707169281768418431173264743729293937954983398957487105700589902877449439655695718400911387582019473178688413619311524016981450295563302574387810954448647506218916495252728204446934873985667463065107555041072116750616370652105777120937847976681730130961199227604671971330276479671131963017542194557760244774577950427547912521598421998030468503186492545992973720842540903491178424402121894936084249718208697941728385259288861142033478669415367080585591209887045585325154221473447353361012642276164816798291122853086900229563115947088577603568798078161513982544006036114094469997438010838605327110585677363508400997796284808898160105411230358816564337083069384655926805297636449046003948719304860602867841928979667427773211216309734295601902419650270308488816236048509890150479320797369922951678341789632552047999451871949848501926945031392516910162932808348055376748699461665602354986828797480289084589794983501878301276106921359210930909124289916371229777799672424407669997519514600180160278696974840048810616431209578666351692185964651473116177481079343221201647895062019012954712921867890649089172992031636756933466637912386490116828507972736320102525013222737624259103034223178441354990711230587792485904427618411273715034657977890020068709955780173268415125638992184485720035029808283298953169413859922859554980811612050548120711759188553570157723253726536617875958412286298583189390284119184078813064763710034565736290727334716689917237448491331631592470192729187820765960073906039239356109364477196684549790869343250865504538262551475811492649851855798844733953501942741637313080571792529242003869558785241333352384472789997967789516039987985048369274294001084617143041480344918552568180886215679112132046575991960410893611582852533463643780958489446533583683135040274324648493682837983717387696743518845354683114817726849792647758353606685926299445791970461209373530585942288310902139350467113735918883947925560017997900254840984939715523097096718299994304369926144143860547612368794962096418829924494422334015167746393934373760225521156204405896140087739026557494226122596254474934740323313946094889873373009622501042956384662512943200890460111777762741271394048565867070998060140619459063948746339105944525805339413277878094854522087848865540613965820310060022615773325570424367239862741602718938975231092987534000546295248390043255299222745520991889478822792544692285608244458827567940441621207043270839478521158767607354298325709397984136347859683682673383351715646483493984464017412616923230453544181819171684534222660453047408937813165005567880390079241745126061700648697841168999036276289932876841646878758300298758724203798575811955874388523937655017445353068152999591051924666751623890816230872956936783762324850900221210457815075499692402395495309032455063475218161983617520183878140167821975741283316613469882511993348189259746223194251001503675859499297477049288844170711983259247042785138061599668739169784522035800555814546648447011786626641743545074682449302020165916478141747161293970286110608444648137952835065462199051346460546746158126032976949831678878694751214489901988125513827249571793381739902768890117872670525179566915094709379422410745468787465261474179232901998601554340927155955196211823352164174157986146615776712007203636835117252294025798967105574138760810303852234581412467505413872099016243845360513691377382957650837820169412606183716860915100430952304321792655604198854512866956639006069921885172525752297216631295990910792096457347014718172427880257341560261535501835711805023881184676003246080622667984119846278461772983426608485449183828678123961271424060107932490508627916131126923005437838682834304306991054041407356322389642105411296041031355300996479986276535224539388391336308274347995183344153582515616839725811493158173637163720537672311466564793725837485233606057110083198967501924054636419815499889349064384885873498886696490204393283997082557891303953558446923815701861113329935937597523466317993157021276808616305682795385605503110196866662488703073715872308462910082781697949164681362395977908669595083914422216284290835107540948323270556286913664023346405647844724183511661420564152494111332245427932016632852303468947798374083792637004262101283592947347951274023740608936149752601504030198176353897601222743192069895992983429696222441782275664062039965919203311724883232186685856822515952932436069704608598096334156479686265098881439836649451270599936536760140587367588178330845300488103461851594184737884706547101219293818596626326613762711247630569942778838787603352275493923224425686878089077394225664039014918788970529996766316134841073262128986323397133244450964467904464701870079461376641483966472689182168727751979507244151864451386949934695043669773671834872854465328796307160424470869483848269906688305888916928766102231899260370245962846268581872917284136682442984538981629647188132621378673806992162066912653584485129333819033368363793092211198460210599538180253358954507976595659933816624513440350764068830734099366321705833331072717594757495255096432618548023469627571497968218062191486431754746996286474152791727323033596964031056273838024976200114717697120135357685061353548046410237527554409466028557727115973945358146274300931251172878416977798820236894669172953532608759523547426808763603744888887007211853377618734151516511633738282072674336170119580627823068918418576816296466408832421315054941327833649438817113028501618011460017040660877708028132682260817746119807307153852430228824225732547070895754113636625231678942802331586122642577837460816859151596563778967244257592876684366309407104616297480582846093257177777497605665869086628438222211352336642234706457949682271772848024139836640684416399443411463833919144002937812645606162679798384033788587383636287230336452241198458925462244843542767556203141934319813120744550068102880824401742336509898816048918943466029502197657683845853477982361457432702825648311053903161600217937128510507289918374418272056616755214184830206030231956158296217496975645095753260904187062121087744080377795338261996053109589710571561936121432872463219465895403832664480925350445018749969558783737865460401379708011190552161582840642699599935500605066868277218936224968629190096596927477034893248459669333507153658595364284639658986095815527680368721550018086206585549099592809093136495139309471225590369375454669048457008718556545450950236741678440132899428955375696328954516317887278774241367088600434485949730297055118410714479326656705541567818279884663687237561054202759921343884299059370805142265895885220595714735735003637713880765966878312187959903334252412241358453229776827210178200526490571283334837339018863167080367041245315155740495775419514732595573283540645581172995833055601546745134026625606256403600790622256885662347120047468539083662816732719566535717112763824782032123042314061870245208567758942886602705033385502284919015459705941920204059039959370885034069146764465186793345443121316334955386854983216145254005618045883634217091528958451034166000848658300192249942768124523094555746828308798952745096920171491905615271301467073603766002415341915853191557941444798856581127549782062379851092415567349995617969082793600366575644774818950251028059070940282541118161501470820178874373763925671875199038380159206809395301723477145588145697554684910845520483017582062265640924065403629464649808407965694486148065942440859244730345730331916687726177059532661554168368770330563498052402928021170556407594476942540216766446045708121563103656478552998376044954533548912714749281307030575325828467102874780216154017702708556571606052618413196358395984797904288095759976165710414053194627100672677693114628318281857157023235183862795967088919186472567591406709795815611783229230735101870967524089799025793852509334912919378795126157672889143814420090961215835478268989009574121696829721901933544843818422176451899143039454190754407744956344270041798871732700219115164432166691176379672494275440866496512438323340828183934014952318809330277788306500844168885512634681536681860473327753891829973790525258356458873658217815847710382672067362168491746383838843542868642910777738562523701429363394589879076700229815837742716346091592126360982734489211536844994092489629507668897507380530319683870489679264538146270041211035519975989858595656824518582869247793999332473280983714588219026783202915616268911186609614457740444967504768314788559490237332511264677727277047147875251627261210770767621729913848871222637538183051108775597636990156333513450443805205729126917358280158721914598221989991039407773550323841075427028983418663338779413068937739764373808445644615975325317048594626539064336527725759372608761218266754088614689076466505950327550869945114342059162437151409660108730947969227929670694574031373382223465368612928495632998259722484170454846656558073420600405339184381194127932853420590479205268000234207030100543886738460402398311100309768848953219802778147775125432099162102288245937308636181961180543908886218255005844026015355325546720887654568665168064409910868739435401569328376518670677947982820813799847944257055853988263587954088188650571117978910790856727687091744858606998447626942053511454190208605345329477938254403028318703310303943410267908047806818076691592541721000172403734025244974458930557988634349736938283942328814222804543180531807888357985889960990576703603039057822488837885130525330421061194308674973977746398961041607668295991487328022087334641522602173761811885936489963572838690588938722666741410142130842023148128293618414378826104236585818728503882469320734361718891666096312568209422601667284879229937014903248575006426975291458874302950546594946939131480565324588784253895743925329589880118032667586673832748569526995263264877770695668049139930857408053978335618274430807855975234475938004310547923337951904018775328904291083237016524605055771408151479578215445501367674122882293911724170496145408661996552130927445661629022488868405582228839843402386712137850380536477940357137193783415498850518625258779075455276938346261145992482877187804769354801402122883068889106551165115993776917357437867364352936855114870561043663399087476332948590503498223073482849135234768980846061072855779556830250731984039867169706666333914052601308374211972518913404748882177023642395362188234731960856158306512765793615445927311864391259070656748685951372759418526666634606203014810274179590060044930618091919806702062361222606276635389310488160237060677363155206509257527150790989929511683968343120929248540102248020576250733544241192146315718502819550990116703034961483666306004534921418573609753279399160555439289420078302876425222871625892544454156614470754291511669933698192529964353853768019421407001481197262798071663798599722152748369491888553950951665671234908477669370932420963300743494656778332624268348997331873689340950174081491721866177910677835913067370430953669817206961854466878469391137614801390594034710580942081639081641360030377036170746871905105247006346719862609845166251444425416684510832935789570902154312567023192949343904427494904196013873342772773363241958336745589457677071340091065422187199757125720204197543993350877817296940159307626089201510914630736142219826018459627373355149139141773493368772894055884276147158699509469406862947280271920063901951870338315765810463657605988160388395497229553333272170874350363983314298181376782712083185477789846328223029001180492408663766245562309340407540097355976430233828153869053136586234989142471699872244402008646532832553892156568883981907046199803666470886835108167332303172193861228276468603207364956186751096295664574715747126412106536524875908824721778665913261863298922931667120718585043026468994781963358004976907866298457856213055175635574424838016134219174726786297241250905344847334087177038394917956673242671025005257952664196243838975908186289466695590346335099325087457258470088960422834959576515389058711381927893041258683863415960628537810218788594338582938295726136767693653743169859425748519821603648980283611280428214949374157523194630128792067655213736563491208325760564862081325599315748151057830933214241105538122861868637663782989843692822049881786883261111825560272566127764407301638328433949021683424149554985757810372286194048507494251556676914144039274302699342288298130441746229260415758698883123575610628717967352773225570768107723666424194700111807094971310892242234685404314325319164884492638665020883195809014783613889083115613517266227972577360541898718932527939892969799022319752657246937353193530857708203909116923402743002683623100804559082731879995322997878272279057254047586743531819717050145155425434704041252333831313256587177126224624470267440188456129572179380163853446348472295361539632208575643830062291781734108761302780287860558057525229105028775699882682597002563249010844645245535347260632687073844773767751302748155804905759285390014526121260081098315584356479187645421013529983101487896407866803064322861504147219486012662587860725029415290205062010793777507206249488919453759066556326517143239269237939348589145585840547335213921275682832795667280599152103936831691386944811391447696169116382058401271608796791732766126626622396943452079942076038309854720716227453100180747083229348107480275167842181553590456155511045645956172780323652233469506740735574912090493702526670912315056016826343373210093840015228291348820694542138419159633852860515477763775241295967313613211268031412943058347211193951719335092191774576018439017475947247296466289834372615769738218351115350829478432690060239137666314559261185071408074809730261225463343919075661343380640992973035256178418210389775755324722771907025513278950030293529228247533392252525086389329420167053266236837733163375745672818441621275453114103272827120859470888017834870877149606749955600179243112507504418156075509907259761028807155967965652063702958023931951097757685415711807195012578066134766516571453031636670433262573485986991272084675035769278872450542882452954489532513690529917887837581931446987248421094376000906185734367185165140958883200499525679849109401560731273906383302447359038749976656118674952801388811288114660885458374846588004423294797532378504998870704096972260618385801779476949970320314853876737533104035948470532463202921695534285880943462205740384741156826771475167168933288464057819821053343038683822135031653129848915436862382156480478275318494054722519245286390921565129648461440849057492685995504190717597285658288359425634447215158394345417921891372849666123853291530916830196283612919117638923493363780825954409294896361155030123319834911946020288032340037113352796122548834669866376605119849813585563604755540299958013855381190036848648831832674186208285910660324030362993530097195926668131290858932962521894622919024687699850865375204272387706308993772537104427715334627597941279392270720522655673110540517932055216338579791777720345629428304390359955651575344723127611225307791238368072096925417916729982514303472374313848781095523751408986891373660955309452359043996120820544237447450179984079149271696872358291906556471679633393251228146277460457939706349034633109282925275765679657973629182744924433237533150084077633199852857176254334859249765948816900035140052127011019267474597840465048526019439145156253830345522005967055420298231945638173799663091412799067053293100959736324797657408064619522001301695563293812624831706992247744009685296770048338068177520962847620224653781615640548988413221936930484958517605176118968156055258741311744028102473822910124845183306640918035412034149920341276922182287498431027099640708349501258591494529609118335695548075054951483846979650981698031829612231762037713080256488197217208329914355114883700032507416617468810344719527984648859589764401680309084933817835407781412900828646889379378817111227000296358038866814052191400310812753636043775629302874183948703191433596799904386750595790294373887297089123200964628229883538017533471031442368033804496223522731302636714631877882719768076908337623986743896739128732199754663904877084360210902348180021033974888099809071262710409668393904163753493853257469517995939799247342800568365784523292597337041272035927292324972527198377048253284828432481635799364538085212369463884529437363860590627185950111748777404525034415373410153679193695385843277720635504141259034269836167024298358121129500809591736544303301947096443178974809100545124692041115889070225570139475812681949745767180716028871896621936648825639406732399973038157879272234039582089143279597066062102246116137400066315963492863791648892076193054418700075024131402689701559447900605270737777688331009330389245532338869926280507927750490346735988105994949394391167523092408297967782844866886553635191773530625533031421677315734786841038329262762706161658264735366922003428943010346115334057600914284266409621456275840381126380672261625790623118629588644549824457253611806652322432108008420707555016203431064477991405981491607382673923407918410909475733436038055904291746917726956188035125982780329060910879093287494658703737967327226331251838486182191846444997375582609457021984452617689082004465669679750636959319749002766032592063598640839934553340431882166670437604013446215326131346601990460455702604536314638510684756443476602100784744305386350343899897982486384692250788167017736433258974224270703383406874069212727878301691250266235037153546412357256046472848258226154942349375067906757585390076249429551529378138746179981284968159689843750145089800008273786558353898855480415714542851441912362234968216950503677141854575179310649567549174191097667771200930697384569566403964820646384871165668317817325176428871905286095992924338039093497087804355447403773674734866318827710819052078370002520638205031141160489810296611911960546294655974469092631136875555063273190657833642123802704156203147755030528497487347439314679621094767011353548442364466045691763291673864131054059504320814990028614428739714969666771468866185918989897973187137778961291595678055520548144183397241510020257644617387665958409196907810308524061225406280737082350754819449300780061649012097987936136779900867640121820877785104286659723333041425304031569674435933991674362619771727735044592977377519507760014667204397647024430374927690930983454071118886997289582106101622141200144478260262679606074660850071877249502834946217806302810808778782223490278761947737695282338857269852075191680283620030142387657933109230079884006559561733998441644234946033568223551788650498747849261231550618133685845849238415424739579430956532545104047751493480266453035844503405364025924733575258475483754433328621283824578503630673259612736313087669193965393227328487318079554258117863504108277741527306042598752175745622600641957142859930035932883245642380811189257611784265306689959583492573968582453018306824963884654315185311855128403547537799134991995931128418399529879381722454748388636033386836275093400334522870710279645545005697742096361587278725587743376420013155669760204371397704376036875757453650732492777709950888095372289963763465338029931020585384779777597568527837688724591751090121717658998809502783749804203905761982194439882455001275356914426758119254167411302887938487898463790929375356289113685940002769631344618254811489438791955910235316402128806656184967234990552290371275795271596345022813872306442466980651770513792038587664451024352840728180180128325291275258577951860288496278006115713721243933937447765310873784670339748384106933435761947864849232529549556639638058633186282145573634304105642857536650736387358334491547028537991578003420352733346078564572607910474343068891870562151449637491534205612660504337883162610999302394747538302817956029745825703051993148050094057085660662202722534516127488839132258046168101377023745817543024495857283380019577370010848510365843866631707422963168355253887523004204959515307560547059880101076049794246564365643145121718205355768290558978602555952543535848261634350830345235967621914239210661551775587483818531197064500175778167407276589521343149013362905013776230851189699225053558979811395434370036032966595903323523177426502927110958417978212868154765663592492985387747004206518991447357652531075136301355542770240945762297955641409255657792783918224980498548568940425728005467806724562282483246505073304201611611102752116762717690371931804236520356787191459361397126708045154908064228066485510948530888753275188933401138703836588936594616287132003846926571920791914232868907641259033433979942075820750131953820132937214247484027733363077602862427053548328401578273035267852673294730828412367403348540927661677575186340502404939007467930138367074956762698990645781473642920315803404923350088298868678919063368607234538475018194188065548355396164973234751433510247914866316469837088585893138916009522951556790976636490735710378821779534521466551960645594221922337205783158944954031535108825161186748700670710014248387690006898235088224116646259779733027301714037857562300880928750413579596918155553063022301557885318866082645781870385149006604030922469696890525803727387635544685452268749497118432234380827534477423519629006511451767873330035380842272505291089161787153813046625198336571474407178896763067915642151188103670600965850705647042020611932077112586243991550768771626079945290908891623128325448700915450790923000804145285923808142849217021875220584606269972407381174568182657914517736061324965993570146254930767974500611087188362221054713309031241491380676872434664660885681769417491302444720615547186767481822452982758490399909716860043419556591460348568949405868758238818166114689296028017835174663439259264777028208273612236715893362193521946732360627035130025795886741962843261350943658622706332228820305391614790255569990236709364590609572997297936881631401721163716709340799447221315112170691093308845563802419242410226090309159577021015681023561242810757404551281657975995501459509315837879112482654711801950090321106682900967154392621570329449953729588784387762717587571572053984639233000222728627525497278272180529073491515513083861017928015029694641539583037842896025303135743525883873952779522578643306932310759877219241707491535371463692354580570160047232252624329295936159898076942594756354582062568555285438538535643016155119508067285326587232029654505465524840215520999948338562222196853662373559158063635591183277109152536028635404177924215570300614717972585964144462464268731520110088841310217782754490374256161412924281095170912196843892383008693504875507427766085749940776190179206601088855793162740335088430513470683361876833035124289107715853741504464850960851418983095687814895522476851447734225970767525741461286422221753135689114759757189681296470610137394539990395435223805629530826714111789182104407801070496517275858787617566782261639271782908101998597963823916304354741638166735497969534389680360705904620013155931456971092156717709392943595163961521441224497668044378124498286885549552304630828808551769231403366778769299620688700583098339726278542871795558705492738922790873277213065318697852996189014465012764538376373255357740820442312322278891787484524095692010972536888712415237764383583461737987989693018176986554933812044090967494237698477575713387027980026888413542742694613092143015943438952833666014394037572940816268798787315102959129361572800815163940182009014086168972173379677087822278471331977931306449374755887651610239804416560548038812787878209587810553721349158799918503073401024322778076034891937916922725353883599230889215516389172876409522285128520032578040971800485682789722953773318164206953778042999379131577392489945501106201419165577055991610310670662385499708023644981004808297186473795605024054403840641053564105134147108540089940737245115722535499607963526470402928142215919618015472714271916776478692571478746004343446963127956735234206759002156267507175005720146641469733937503570619691666024388430758466837537778249690427179921295133768126870359093151669318947881006778142099356466318870632644934703015260606293869626353582617977711692130027950723655194005837618350692326271426592325114633498326674872854783125479476499427934674155277378923627974984521208600076220525878596542745928443437299546590669038312524817887225441176499499033174801814707681347438501604766332080872599565484111398802788958072765290696603178519487350012146294050272619337771456086069659599178358745521632368015817302536279948689657893422908143146265436239381145927338338465711019830512051580197489872570949483604410142549435987065674680926789677672112032528007787809792738630370141802639672402790954449688700947765537726480826262772176040923719457094797065759432477398119098413429090036701554822536520208857854063217344714224253403066586614389076704559186082698272839710160781164691454222701375815645931351356806589195685660350043520332379681197940437072500181974247028541859453935595884207589048368823892521582692375684777831571972863244477627839105855530740835951344189388092292872603616738746907263466160479260844698887366026891208666781883159032608776568855493674275749501852195094130477491628603196426598600002144701069856956870704906489353398462321139268128613739286606536096648712088932056777227330345066255235042628620570530755832806522188124325333917911565411015881887524670854579819317049519898096231468830917230421860192699936974486990671391532955062051396917949486496744303306308066539407098850220917443749269098481374554594096074538955298745148972205514134305043859655550928226063924432893195745166725056677473227861539347950724368879159546770628259159467649797750590922691855674810691936914076816465313977318241561668098054959629224102948275743216216348285932286730169806427503980940393781339158401212017833508569583039088612740451828792898820681171859855878089692671434929646741940792395500511400505793616474398253833210385789800225302954280408426674724531074076594407112105719471654925771476645824509425307488796734082595097532680358453058619840023581864169423195368306719113457672628387090017278944763715443661219056416445307136361262810147224033246908366689394922472491618426322706506525567279010059263887170297900752227861702470126993716637919458149860804288509167080267669158035974135020470391530360377197225663989670681601945004889486196524272631598450139274768212877412857187473883642730564250751210200920321938289912835740845797208671568056809845662540912859364624665439965686750692466425200113229907673377686051675255839794401521788789608109067998874004698742685085780327383195582929603587498356294547075722565994605470414685760523373789094506238059006675384505849526114494873136352733752013302643111983287584950694400542150223474499776268008499787591722424243806515286556715592669545432157572326058421598167691082146583614333159863784819410893911632402287978165098153828918175876157082508143684256091334545729840499461981308186669456131824423045266806738299975862402706297154937468477420046387450361663424124985498766409862088918587147113065017800938015145456393480750138572449362815252810342555994913316704069154967137917026313083720879334052029143633719605121998444129002397377572353406226814788394908299333298539116671217825571541536809589727873974340657487348141560082843395677963227405531238219222056770046368021171630208443535989282856158928960777152217889923745642444728414061439693678757909586192952135117580360776984527860794649837702512552229431051280044623910269532034578516887630445052852635587520687986154054284409021293545631683656385272320425587900423355743714586202610269001874318013104693508791082860207707154241031589408182330164766423470039266330894059618562020078885079724225150105649564994095754336370953715001338078709678869936484304117409279438621925710087786432359687318494340230479350044724336087906424019591716152002391355687685514234817433271698842958460849962362477382935722010593659480786208842700871901990539814811596660803013782221340181897834467059984440092092354007085845552000809604935280849527366992227764233990423341996234701652215952143403910020909280952230094661181459142041144982807029823715378201182663210394074927215661554975692790298559997288384713225724267617858691239051428025962181555887324693830698200473617541594925786589029429612236603921578687558037635872152128351435924883962409328327306468591936092799537118936570175639942113784142653798111829451049000396228449849547045599159711110383612645496970948744184106800580682716080752736388913237805991163895959979739771619990640492757665554270139439530544165277968329065626790215891574115905370172650833413849038937768803104819114971759951676293681306304648171124510600561050348479633290545346758735499084728133152414503757260296854256871961744176707857277208769156082112065037152208209262398293092394204877197513087687051960882762967270477312135590309302600832596977711459718798627563078104112656190910610446751948648126557719426268047719335254144687980930772417611806677826573452763895539376125451493004049981085338324838836718174996549638265728836069460902912871719057690508078957889914560249764827385804993614752649449420566724327727816071837857050710325863755319631133185454002446860097206313037264515497520652496250131436789832254692794202357423973713692118655741248048160831257255646175735007983980854538999069500908949290592949120434357314943299679580775406957775442211693068737290910552330723184061273625111726668229736287905964051041937380325926481947382851650656118642126615552354703786573814114122580977314264296075918583634644615870103216838222141040631079529649162494222874267557035252919166513826815051638514447207342688319828271036343797250435585706720915378605541797343778816008342903868125842167806616832048274390947323625790939004046105485710524376512256006348783533847025199883878373455334542464233861597369894296053489417914654019313178768446328066586513919740968069806826360721242489450477850559276119519887564137349200951354292213892367764652256932125436263650309603516512423990772983043682162690249146012675647968957758577889511339918774530130282114929346752634102926201104337802048024377861435307030391129738253311382436053023920190010626208991269089456109504630001253693736073616228159244756861653719247339186114048026955009494597479820097061219118921139806875155012929901878736770001354359977741597463819910060029291175999831366073111634295655623513659794741082919262609469349213544648726242370519122444115247002466687986795022625494832004426981724381116677464598691885784968088739778491769773518705530524794915550559902708382915088426038558769170382719476796739826827383406332926949552659080726850715036830739096727540570996518623331834656294917634042681202903184617811727886430975421785887736826054269907997788918654648284266206805251797337136988529238409304771556105045604371755323138866931848562285676574470003691510933588347073045286168810404920388692190886526844713986640443726540244610058137137091609320094903932713777227397779574512084009885102835671368500177679241776047415713947553354187651744213866638302478320819257591101541726485990539385227152100876376402354254565593933896343325751054297300741498554358038621199291690945008489926783100262425601083309966933554496353180240340697005955661289083838909404438936126988010561940376004935934797836839744897896118478988658360532860081029882363621735369881151439345206788616313643479508481631838717981210441328186109575243576594675935361228605327181572048833712536351537280427592353818398277973450429483723971510043145810686326366124630714630488575718134364859115015617534494016487642244165587391813806437057377090157347986909160030975830690458194511539791931751588748538239723353548856845944226776571035034356667311371057765781993758666562307421253310812854231812972455322010574891757390330837753590674907809066309966320918138133637512874861169468238686968226885639718227696239026071048791798396670508097687841357516524095258798757400473132123863532627105291581036970120281395628384101490482675906250506204719097655463104232303645991463199045390542324353435358470319909184455357584165674195099721823888668480901972279517156816987890625012996219027880356420023031192452782539651376252375115229354466181581340179755384777773563783648135341195440916424057151312043608396178885695160269239914337001924533905456887252465504942991342382039311235845428762057158948329634080608055969186884981640387348189110056912340346305510993402417752646969980507444371956291963269854534291620997697100540036262065968593714916042899195818084945784022809114681826333176119058369739745691082842442290369898032776942044963123623253397164906386637730846388833055335005367827989978316551349621912495669553761967166046816048453567718858113861176228491912893652392150022092177178258073460420082417167499614151645978199299915468833074014949284701787714268594376190087743161708855338144479611043689638258547957618833955276947131363970554906213206477089537910905609533444240101623162010346688579499053323468368887449177306638010832998782794874420364604589697324307167165207239815782480014146219392832436130292408093036699963744443523438749496945618188598942575525756274032854728475608042101874117382825723466058116030028205162528768278542892757234965203299805866807834659985279689899565835489836492876369648567692873671738344995242493716220213127744618408991051743099924916897740748371552731666040714628113301713762091833543482246372397444255327473602268741335405895988873335490493232894789336790345683420074149265980303552755864602789290145733310088183067265047203674502188382476102220858689324616170392040971285973746243106021978973474744663391261792540065828172168842185679836154998778606973669880945203271667949671224711109724378992335522080746059088949943381353606702557667346117513669726351076460416624944302058392075825611697648253507434095800382438839953815640401496986356457051655075162735816563594541143608840319651698744678172180333634958607952005503391978883833972119227121997403207889646834478728543713371263214573949197583244512727820608514307428116016849988931621560344501644246331351898331313811721896762443070937825533595136487771710776848431921638607558385194513688316286538448039220745809062549008798969888573845684541755713842411015211917309806048076760586286941156067645572863630464903150670478642532199293952717853304922986625641892838043367782776981442188389219434744062125533390085691645595147031825311741404981320056711661951237157252175939182024013368755269605101870764438760594095586135968593812502007732647012431510116795258903200748928319121678160848918051663569954002454532385670307192016203475745551762699253907307632442556650530132594659731963020801771809896894994203719999298580784120960203403700222384775551235282606327857469418712633975296134641849641173753386243422990562970645777729352867012591495261893441404819719037007486262738140482381768323067532233079963735036895260869456287749213815976050341091424165543531025084209070965820412079334554238406714198397056201954241213596147713636369508407086407131089590113012190714599426316132842542544356519358985747008497489515882759924959229674540175109698358757179551118894079694962363983424391444760369501246747696843845102603991434126323688345207785137498065384802461820218404194687435942457738615319190536724989653235550623220583567632367353702537468710875759217431550952864676456571817445655415256232767629563123065909839963596655026775371432312613837402079697305296919679360852821992336947684201361225959235510444711070207637090700698241178182113743588811101966543774666725699534672828271379199148773900167309044104403182915649260311956861468724217023566980856256806585532257953120699564933053313732949215095019457958771886913033974270746967151743063018817177400833604784660011504858284701910083009355146595337578954771482998710788423377871066119895994554842449254128042911793347689954242007681821552945824452313560009636776107283769971869565613431700950997034337133773695602261443249387670336798200103235078085076563916485408606181153184305518289015942164338400783164107298520200866442894022459280535928453972986114649516942802726095661177321575882200082027108815346340363188328732568154684014644013329435060493820006766101811973329283108915805234630934963867050459350113425665270349258065691598167119429294960202919074547933593643771220807530870511177944245015023842953351119295819933547291017450303975564603450767813274071792401768892168448492127841589553821186222993243657542878979697535565975755217141212289705484198250870579912322239868282201130194276613488675757807445659531395743994523352734190432739066356845329477082320383760807489824000386730121905963042549264418900358295665414671466568778511156361491691435015073112859521257359706202132598790001638583749145766068789652235959215231073896505002427404492338684312570677782012605231833666467940419614800276183273665775595271038392502723251509237220053282961183267457038184049394490604927182224080966062266458949943749183082959789904997723987724202280203660718741251947688626460706051067711162089228274645424449761829668649844963176124481251075037147147431192205115579399132882989768897654645227305204817566867006891837437875925267440483459185028425822992656090971214208915211147758994076353343230945724676526656779310113430253393504093033114307727667463683648254142548418573645124743495684845719701891605808495238185656471339461591658279477838876333456532705325777985607572420894792444320209184486437166638539568306299319326055700798518135052637617674601333825875499234455017947524928952614902066853136391765071291875415492711984265912301461099363669349690350248384864867179720603522847507862865896893387351923073931940484587092447305394074150227542124133344806952574747574106667002146948461522359968108671979751724501853337285770187171232720321507165486749482769756266928198933449224350358206538560774863991131596533565391493664441616171717575398544644922770050972628947836398778968211416744711740944283951394711613219346967064985096483663689810946816642269231122362707504120622065597914814356772883445936599547258723874743938187512444274167305574279478550049524254787941014454526770967222363126723662294326681649095326432681737890277078970344525059388388049348382590768510483911515294953416403145157137680485431544862129607728340411745313735780500830991491777531616930202703501635331954949589527430798894393631044259766319804944898335858705068174310015590521828444633278666169442938692456359212304861620082519890837734696208789242679403410789774577203271730940457133189747871037070713803526063291036317630281712962811389366801383965900957010323598609086489570608414285256194353256868738359516600369370441914016146466285186317217117276438176339028317646799738741707734390012991186134904583227996742407820744341797673506332849955229944199225570533097607547916612880155736866631059117726839612669268314380459963504235175394964327326229166770237418549730139632106370350579991562554420351768412651566559885364871251444149239663876686717378546288679698825394592129770004836927304653535594188418362817935721914182725914319358729963748469014715084356727482678217041261142296437706639710062876368062855148848850539751835336183663573857036594084029350745502336687331068766433740221802305766475235258579814763783586240963634343249362760064895560789461811794370040874257495477239444177941196131070612296539858598344184071969710962631470237687618939117139064640058977597291483324662853753052776665119654042689607593940949765558948018767186450434453421935350258074757774606707195172350543404222051061439587085348106016854307546872012023167740991299255635685127655540921536419535210703500757472857893227337752955801429748109817996872414658738395358161340435537332422157856901403203417962570708533580248552819962747469179557024853945232870155386886134059311710020205116591834117879185126735506316162501956817258116689128324987379694292802864796657394113575001485586459937577695505708926107050108516049595766840902731606757132296859046014782866340370028528110182780440090459595701609800644779927537978554524450308223959122462800149708828371484013731978730385948017393737960820617771155196907653609118950175913675935914282270543600065032358666798192653045175767934576554351734920145329710133254567241893587530461396638091314879684521404853379089966016482264687633982987245709603786661513844970435946801575250777653497021903161029297517335938454207367476202040606104043600203239038566825038016234026950410386739991902952437847557718306945882002863736696163607977363565097080219412883922392996287800427228566527403079599961981128710567913690444621685305643871970245542771822246265356831319510920001037012319276881725999518760584152414351965301458027592052493641972801306709027878086313421599863842766767405499039245040130834179088965143459643108997123800837109595731454159386580040620382874166686050284223553327460253858419054086562983358882124696011157308597978188705400529632608638615803849789706153175608793272242548170043454609630046357634511992962071795242637979565341870058243869845668658740999914104474820410671543323481096951972387454016337002572781698595926468342550718790786646452974411225774219544810043689458700442981822942266649229510935396463385526985456363293038489645465798968537817387294263245244907605670265686450596364802602495513165710929796897874122272798928069712935194423895049472219789124288339934219483791031333449220379023856278472461404464878912609350197895131950091375269167389229271764588183134251281040465268906727814847540084901904115248700218463004885750309668400121799629166545517707887840808269660742725937952101051840708898371634158263666920116436683753625472674255509510195855810316805132374876635995077825074092418596366744744971236013641602620007543393972956837956970638613055209976258843193814432548284262925466074685756895168005470063213635753972788151751584830819421113598290048214484634987444772289371843539420964109300921245187246103110629299718833771953092094377055689695232787321177859907282677803848231841764662516083448865555583207120102868963416648789007004866626257433166300849397073138238214918650809303628260297724204951615503053608614740852125561859838287324724790595196559765179131198036403916508303558947444095973269660240766793046659865080124845288702075935507673703675757530818090217528859486823266982183814741256134550278266505097205886939228464105283624178649668744733938258870622182872790436705454822114183545455399757615092501991060059978962201559506584584466075178864917330810192266304064243680245156674677061644507207437672951475345884313718162244685792792398716338942226631317652135030802411889336902717714331559399671129503556949341434940652847949256672008990184695508127184896474999904513343850893205683655384044064074267852049507387147522646225755351313342789129313380127773225134071451053572836360420064176789316520961160155900494441127415289167914962684601283681171102135935753975399534867553772607521657038481891821757300695517341611263671931864347335581708958133874948903608046650679588147819140325606934902350706198083414482770997191579821786256435168124094826875253073436502343205019630293325142121616266745808462264390623209874092107780078154950984978222635573054497144042806384152003907810034341603325938516022118813114506105253333730364008664667812531204913450089911711706641261853829047951888786787126073664078130577090406159870160586801528644353803187971619887332845468752474669735626213539356047145612864767239435404252944869410509610164474930512277125344563096139857138806260806414826085955414532925964532707829495291618429368167789728942672803273884999517788393898541175523433485367288025327985193979148129455665305356851394699580700108074992701742817649248704814697183006637904012698402280462611885511109167202601347415737339932910622219316868904575524376067622979574965972216815134780289498789635315159517111032617588369159898165046965390514596579593596565285363234488219016998099558113005042803994633495334171168581983569567125623288121151096403225632387589496348685995387831623597461899409415015076155865990111875571498493735768951686128864029886735031149074193836464328652333451323839303623147573458728851363329482665918106474598414428988154339679122492491016263106305181504553826632155307868134112688057278061579294186729141522103643671142346625187289662697360614404633098269348604343846791366904138526951046643116711375269176585766447171512966942603646198575368543498611559477251829936648619811988627821930078129036427648280234096378417623128645138767551085943483616469125173014549226182328040390122988017124983622033925221033242140072765481533008363973458171181899732978429220932200911552864297910877707117047632481027798497438257320678400680326831756000958600375076001300884969999701349751454683458246675732024665297040666698703295107788437391686907010823113391848653083415961685931998894159202557377583042172542921572268822984249608203680627305221874777958144124620014673290485653701453537606307097289026147122035223601888725914238323561174224875684558141058348719188536995367910207588069283387236889821649075037016799999653737565627921768665948608987775502510668183043093787132446428255250040311915394315083998327260445753653305112114302522036043596594387687743361498871931720180050836610651310120034214234121867702872026866108172256177898055147481066436138913623621189961584530636956370287583220905901943844533227553326893556616125861868478887551571314395592704359949780492477983142183252466529052667759047910133957244805489119891538327824972807160026978018444362104573054002369089858206259612409516061895244426419431119003493655832955562304978796073241082201522602895070845271106083786798210247043699066735591664285881192406872625391999589049835962124649025072308202014644522741359706770031503778021974781531081656697570022012451038300185171264990392458853424615014130769387989938454252073257261395372883008982507912204765311458430935065344156709902643505201073930497566104681953403815154938308923933125957629907049302061336158390730223717183043537530276253993632885487943275074880328989259934910823338079237281344073002346869571803030581720464140782241678470461769868471767917385443382684231033803273548255572906914989893721013350060563888343806230179929364389347876853848270283846099435019684256048889555899924708228583869141262614417564269132074478600779722453291527091147530079129088975919995835106806128405095891100730955916465048635371285272801494384113739450906112975677761349967245611214314108256079158478516976175903326119319808719127258731585937007432113408624364371665612618025419014342530359286669551089304160431718108595821848968199063443903054589035658420266838940944798635114269474211746031559867973694732629805302548515849482486724130053472328970644093966124000818637540172686534199490071531979178441323650418290814248125855973808676554094113645134236528562480552395028411773434107730948965841298433091873876811201659078143744571586921106610898220533341808106381836506254362457029384301789432707689943832172178074223164789920838861745810738034136911462694086597967607770922671599540467455367968040629980226086807271539608540532558320554379878523800134698695701063997618218936921399520818700736834834131148301214467501891909464460744328133973115218615606636741600699273711339110698181890036877188332705090200282665705331212306573620077649144560034158106986395145511394399474666806128685468033001376668905649739261796449954057868046953389388815115372501664046501231588294514268178436833820653774507916606806798416796109359459523855528543973790131868571626976070948528331977427757062960006319042772521838714099685608276995772402550876493521533691133216707553820519529074081337639386648613689028970957570587558766397231343156032621780887440325168384986635842807377101602491960137693325648811273247480010595382109952367507283614427615646861102123966719340288517801019512518652217297906837643910230773764665638247571958818537499724216028539440127806015748217172639455528158887261519471398436689196641440718014801366361705318470599471413819543600206727218319465341917999374693648716360939398873468355773096982446466674497820338469953918709650402032130542563040790352099882289482858646150542063850127556584759549719064934347635342629530637875433673372361052167302111750330491359845394462271778158044120830392519620758352856943925101415663422327511097730685129632711755173196270477334321870768005265982415659118704604843173068211338462845077820840672451400501302868875208000020695351535439558930351074547704803618671743685343991672009845922981860147462908944440554695385732128688536312760590556971051852872194473848038055703580707563328301707736211716909418270729429579207623897343487135168035446586636273372566142232481108689677997778820475637767857446510949638276309452054383695768202318148509200324599879312154731513046420789075680284676222684873643958586423643966278589397509711275295224640851059698513355755897882000079149997430926992250919684818484546628458005014650373884396853814640061421165362807313809825595290619396180746181724462172859553162686755034579763890836152225222136387122628855412916522245635795441799111440448745472413772713274639751487342025548008287547459293167361275388135808074228767811402954341665928909217185136457940302701117799082871156117621704012516736546311161232448901800590676607771950153331185972120961751749845268373129162240925891575449285538080024092072583885366670445441364521726404744469150486381621210364871303527668444215546388279456950967297612438627901652116785554607482364833885358778184033698484432607166014168156939030527737388182633472982915049675865293226766157954022417933970009977464496246556740415842824626401087871019366104300764475551078290881793721858660933766022698094584692865953258858766546063869045775294058220844387736284845940433913421481236657006339935821573782372109678521001516718849932853098363999910401238773382083602326155317684195144261805354733030965491074566154509225070427169045448171975044543252515034245452757126393641405604623729628573711886573936942175972868269004925119338705608450832181440250183171240545253896092570524769489785800480398281090631933770838599083482871961457407582466937137185810744103003705541903331363257573806620699261506621791767197671663125947129938019085484826163514427697869870173689537230946169641590467257504037563515349473446203791272173902089804587332921759076733929897144474035962582349203352372045827326113570620844656429287294432038237563090571378696576703538954945794791206973751641749626976263051912615389260792974837042866766583992649294514999416877139035142963478906680903909989912789450776429177061157756507295187049265906946162074668700753527453692265034135119708064988670084893661508340647058781368120692799285268891069406518154222399163316498209927801574967770142181016408343651908064584610537231629668399651335694273567280664430307684365469358617802507286556929949421447173502877039031775012585823028745196885860041254300108287185077344655581528990926413318562198393609412888544303952283522934380334631450048212761528135141463251037446830907038802252870092683169936517796604768491651588582445273482178660451222193793612644767879869088154164024265580188480399491652000240641700376443654380008319404719414128422106558434694876383994650369512983547261616304438841513801973349457976662796046319408066122026376039022864443114913318813987799902940523320027536685975463392223196041057976594365158268022539758397524140353118555941727530350572325583755386123701558199631906242703625917591870330831767599997203864995388988020627627093768723223002388212847633771853533630161518409484955136250658391609992222490423128624358872174365959520597347352856763924599027597570431711933065334912219357760175645182108247493372733508747755009249094344156529237357151244291701663952555080257623240105168724195926831825458676630629565219165579243813295567256519971406038364918590971771887382555006522569757415193387642054593778791676669711482309672743515688840056772276871697568930834409933376744874250271686160268712008333804377517234536573784126892770264950370538978680020405699877868625841807402535211155820117796321312245576487073965707735532121784735891587984421573989563267767832896206519151098640966396776452418205492219663600499792554949386522618288138002176228662984372293294153397281049668569980351778959626500376139502784063851570354189468419403606080638305043946750579637112396109856113498666471214576265307531544442030514636082381389881690950042880201445330666609441047585131008650367626246337290644240263631797366751698485496216771071476218151530200237342986746040853114814394458608626363923537778165641389551635142626349187873339443267368881525885178994760614296553536130563860375106529993744102784147677694575559234500914902490224345013539186526645124328919062256658866296718503032901729527829393982312983682217334370415001084928686818388432246236810137622659135830151160922764420801470904205917987881537575960169184020240671638160445043565615291467000954862351941973458070933985893069399472012854125354578848016361934807441401069854292021823902768318803388568109861636248965652387895112724480744627446373863346328324038603311957482182928265940987196883142553809650564362931569545686047549072976013136299502740872269601393909380526787271502072905494322507807327790604657419594172331319987231056827429332048288132196952529451285134811087936438052956444150661493738888187144625341822063683526667636566516800699658387738026480636467593351213324379483643017155286392146230961506728280986908654567663557653747143927639490063179078218730594656593886929356352749476163990812244920497540643220367035061196096801781507662349549161628542575173254059583069581279004294274344975808000767624872734249714318079605491663107211708679981215684218358649615643826541767556743433648267296503506550822564806345591304350130047299919891277151144183212530850935493268678492560741818387420035961468838374144268301878798219345295610097079030228455449796662977111873676726989896284953143346607431768746953447172389435302001046888762844509120986293279712924518287980320427209138230608262115107683169022240493124582708469917739975328113722784014407471589568797968658869490154363706365532520764324678565012485761380769109146705293065225426497942347694735158163980111098747710262671081571331659162074101598594447582630505102839013018058936687570869432663400981505773693838772396939863532390810618629201032982624577616884741057749532043958208564522349450144163909079759405012279349527435603434724146652471990299674374608748346875152811283155559507697727264254402094268393571342200241391478199148850576241810467460164897546477701790148966410477732670153130764313836710880661418387152025881031332262179695427953860541919947805850086494320456413046003330461877953635124226768621261529458313043771431207407824967237762104909805491785249858406336375003850897756443637849094686100189126439783938861090333932609552170590547266708476458490840139378839612607547298485079346904581952042902499757195796854558921196166235063530311390866324194865535743573606842296160944082508838030917199520153513073100007358945621841464389095464107580017339625273628740974206194992128336267972637533450436258726866426620484697236972512664438026727186808498800815428454681336876321520878922223556757149065642214466683307881141420851950307117278500765746972612292903015783424843106364547140006631009581772709747202623744104847212244760394140220722016551972209924349511575496701660298884657465397923400375656742246624449673942566577152724788871707740107708407416503194895379351272349012813811491623143627891035881669432593211779185537894693147111233140656733546934880904241393661236507823305982482172653035949165839092742964714264154253390053008397743861622732473641606978241395501694781429755281060394282940832501172984595005154308010597523824548672117673324588095801373850841260778424507124833950260423025427009234887259830128183551865527045062843117654231472458167506817481284013083213272836061903191501812911069751563909470240034456370742616918961120941645970439558649967519071185060581298807572525658782295839498383275670380501846856306018338914324949973178720584247804244529931477089128786040674935888133223257376221522815346673879308282430034895857077821266492110916890115714616597433083002958383883772389370424952521821412082913989971573229602304951564408122612824990738292192088111288045434039983247660410336130067417228232887733645505297287434435923217161077421316207613914529976039583561634973511466119331293604958756133001303013928067421109767429715980993172237538400158359899580260872357411134576992095745662847804411778580316875180760576944404336806417947221685394138769606801662959975563100029946192831397576279173121041382608587648194955463968180625914709787908440343446366587239760192695562087416470591200127409421954034213229984672708313265251926029335055572674207170468410070597853780662890417620838781389319903528024520151794601181618005882900247404615946673933835537800453515033046342305051823690680016646570155146292852297234959388906126045846274060259827312504200180157185511068130910569117161589177205537902308267395839082605603178890223138875560468582220537113587622504505053327899094197041934953155515563439038779945746514811384120493329741334311809174230993263555448347383465922203701004861933168965747557681562232852660585285838527338594894620665040106381542966658785188908124473664429362146230393551320785917562203211005495688276251474650778808783734552678663525193005506548017053093059444292320638951692525899104219048961287210214580739160598827766492393124658697188545590833224442505408872797467132668166699839121781459671354496433301225024932836179132556196510023044407057807514296566954865996815143350214998848708769714086692179272594009099795925422269019285555989858224567502437556322471794461952413590325668851139610171610629936574343398397667351956075369669236383224982299545054642646181491264249589825300970179889272569953419529526766183765259895400810269785026947862305101826086132663926819079946930064115989826434944197634323437888805188611017562079802589408512350580738855816228109689281807049444380039920280973728087123462197100467809949000756980771659679978743484270953083730166939534204789684957099948563160895642776924719514450935620293111292970711786622097899073703717160151725680944303068508449312384568878921699852158948924838451774983142710537800973979005380996066234784329932297570179313791377337156307870076744762525728727044627960017652443836156697897392100403325134442109236428498404715524202866714902756042074415292113279338523088415295075832781538998783324829353833064140641917322994829014407323975086015445220649708670179696717809867669492464842943653365458344136182188424638094364705835982292908118264115610513328563777311252298469724090362639184396973000463403648022062146914243506482982139021152544327509164455491186243400744129839789548395523457937459185808884169378345259662678480132266189659710167569742382999547210272621459070732635008622061916698650758351045938956510892746683896578357514526359398892628464968211635235479939168581437946089178898083746045687223457819980064272682216884251104143861745110005224690336115054468011690069694433553100700881958415311797824955616274399395655132286331059394237799632587584427732084561208356090781737860280807307054576025998506545165157056628348887478119219422916271356468871816497280149979972748600416371513446290967324111446998532031121545881556975084401985430264793822777379206129797039978675992399541175934048765609054734847836643391345515149322581559989395982091438886884295741777558832329383945728145306472244698790214025408192846757931355874491488586646441837740613019653049315063168672294660308777100359537072885113239767172740647835873762903439895097478675948245235315365692754162011199326025285715770133728426329077917968156805673668347812065943817879177303034527126486369952439414870644275307887919168102681351623010321715882320484700983678404699550729203734381112061182515139379394397811575641026189287049324188241292488920221415634616235156706615676552428591012986019561934099077531584740355999956510666642774108449439946524388748747571502233297957338790474848791957439271956658695082111802026804905213035864289894057290044520754315910607668653751053369640952310608879712229251530936910886628599691187065183729536038330665019238128810372527239441086567147693545678078600936918875179362482003768301797799488578923714404108856377955512248864287694077888712704881335474606431072650373283494434229829217940144452217598448732236654342883879011415062887665114895639497215768143577766711253613211493511294156425033373806345610717730357006996099895356612602609925863104619303148246887199815055078415720236457519440512594202069977002724703085606874432302932823280867603199742355910285053573707933647523061031570745003704330141951848551587059923115619310225118525269822558705161851997133101798349454881078342903532627582129741582164941597035150817751877670392074897957733105746539083026522761288820298562140561859456340942264580635180749105075459290491624529805378149249520216546122271181346034124401611773722586394937464941865516956822045526407217413116653789652738425001057484005930208260649804839915556477022635564025350058736057373589563698077876608027371383553215520008184822074993789421429280503576298770962738303864080377014850113029139570456154276343864185868427065187336587215682701105591701330074792242522253454846023647701678378311050718594462587654760505037638437348753934479089582845413866882074628341700852201637294551993802391702235656318903970441882742114876820579305393908333603657522508398230791142171191846321647176836420379798687712214702571870168380895878511165433377293874522557601519577398194900564234821800491984876494901237550074222634302217317990111513566388752160220784037718204251956601690557661636959019075817948937772507071993944422942722772872924948007524575812646181861360503703328319849975352007252396145832406805036791820936119245295650993589053678781133233360704985584588038443878290626874418329185265851642437112101029017818896919369316345364009153144350368028296798464947401465434591760572833189814560684991582374535450753205066360331194789357817521475410111583143231693963269893810029171529663820200451092677842860984229767693450866235871567263682295075727374788228114026392607707135867951302406496243759730686456239864440831344284851525792496079041575998882365640481769064397875849776677628354531598641014183017303500637750683389435307753448329179179600641297097202349102027919869829216905306493503215750429092404419796865427700228982694866957559615524523377094097671317910202610171608757652079880427555224868618724277716832388368691772815116974330869609488981736256903116991802536916331924042213808021038274232785765752853501903903051172497611988268272335879063881199914947416589242460827866426181490733944072277409447541855912342810823918678044352348145982272866518446335443884555217805333288444375653187176244769793806339636772410942727028938957426908403381245010402601115726837009298006267032368524258107090406770179874622854274607665635486541018642621019143350144464700752287467145449314970914914738727542845086908100289675298204529311064843856506076492358538629079728019173063748362411988709715142866209108228461971332706425722661345460197855241917400388195845943134315635522574095164679278059626920025189151990108003726521535986516937749371644929558044125446177999174569989547172660972024016277422446879568541752926071878273506528605054750108011660966929089130981303630265636221735866808219729663048378807811709395458655875751836554488776478349749182840985227175747834739550756713492058555018406214287085572056803435971545570801441409958144627673023341778475892678869702091804549094563675445995578647410587249981604099138360167058282931397958980910991547117365745138513994315826290289370793806313121256514688890405748673010689603931878762347427714168421166433471859237152614033703429561012883031564352551367096516492006547731356880518686589078400127838150759907630039869196650362506377966484444251087761639300447647301776815584320783685758777599507821411637329815070347758220060629358223224085792900350292333440451065260771554155663684923764278642626527593876573416889488430547665122691296008384941784970912987412346427977875380620865552610238058911241680682911121036940275651206637043028821519838894045623638827920361183927168602762943779888903190866039873591004741634323417736075759275637041987355897142992426577611535347765270088158628145653538034674993277658932011266922119276468662106614723584707613708199627577878434454551772578549163977389778467995344365850068932043689516285974888755791594789062774104786653396734865877076450378705990007822231866008863340153153342748475947434728994615024095535621413336159534558960479500667375677633846875636185766403231451808844850622645718005145587944305965187311620026338543785711398358771270891689497507227784884619184528527515133638367485390317004948763222016621456353533558309897320162464651447352629545769951979641301879947485220995887449522650109477278522892564681109042164346177510164394386508655855017725021334146670263404842486345917808016426754503924962052613818183852290169285055840065919113280881243939395917309643022702095507122888693584271789319268667646155851303213321857806023690260437868393146635455560075219290700242095471414899641214055444332716559280337091708312941518750015401549395651689967175004027080040648445128388996468184522397072385439468972958868207169876230922517019857049795785374505457980220357053475902299615520549376734333980153743081437083376542605715094360293923201774337845581152284249110013611502264789607881941490798272174720480212454013472887878132075512161339633788988035190631649761569595785548514050686751169322239688160997715557747248706361368381086601548415931242443794218373727019329417500452091652843202443193783884852102041162766981163667080506400940836809490066440085838106280912578518941841337500319972696485332324526649671877813356874858332617706280093761386838025811548034471919069728587660958125309810517086029993433390269217151795924071137575865813472776333461063605004050261366307731896188509028709547720978649924366397891720199899641211509312760127363830363817131225697566602649832765541857086107337259606433413273872514619506840777042751669526033136529740232458291874466404795575823175623320229293212488656718518654104544336477067341787371431691592006242813123271026129735039075761980369214476790904929002927654376141466776717847928128502523310375691614041664305685181362758796006213527463397313805612196416813765413238123248615872509765988616505642923604054994356141380398949036396791783356273852856246759728588873669579413618512395754485560685215763730216621231021453914204249403034816075144949096298596176849972315048427025023647826420502616633933785011550186994484928772524564516700093513054036316439155658144481411341194030617106675758250500659953128236532972211753376506703398995529003767039174151797363299790649586331505753424650590636577171583172351278619420445604781278216880531734678601914882915255561044302603119011107341100830032345084580252535314493001526756841607536022910446714246537873091198793884528190327928783668842161185760283559125370836871494809481879889739182984052910531877319727462990619581315124121145433102428825537023382555317014156874572218272631121583737610747063542279838878580644496052073566095969588461529701716686932398384793427440159892297437550249975283840364336156438847740072114643421135206174402779943294720175242260987282749276881175934335790418108890641322256992574588600351502899617289279745366090832489866092222180729002576085527468379597906089226227006008408210162083552860797607954570341934298883969320926994265081120353013419303339958188399074379588877268272664912822001902190386553560962893874966209713810166603126400238913870891960446353746377076175024399204962298610953831941659010311032640091955660622928322473405339419533563681736785932848776052350966478314393181282053437319125213215650117213827478542175596029837899872400139923227754908558337222594641415865178287454199249820146202321962727656154408371689733877587700116064826093432099326547978280798202884326171338084796615361714350870536984400857291913773749189677084608426104741402053938853665453341477973744646995298996123550539508762094370534768543975579107270774498114701058749107197365872223130964007097861085470771783549674867537573138270436608055234590235088517572113110832905053512694404368248916766367734000372509202864743809848030617178103906360185794511455798764909941106391146479966427847397629451412334357100310401441952311963580185166535896123934876619428928688048966879167883640561225115340460241637003281363545399038435286472672650720456299649237268726358060008239794155054264972994346508019854817280141474055687242748414087856159064035430885144435330321233981337299935786606547374446870781613996446404787972645710282323860857722571328779616252926529411795262587364621861659825701011457178127698362935360421919244741069177557153155027502414200851583742103277569917694358739336115135460250922949678115544997862525814316622310747705016214499950932894600104895114479685121463225280729637184014993923556051764040499125486420358387340434299672134492934548197161129198895259024636753723692378001161834576461172356554282864359050453329544097766594136110798418860437650551565112896924876535881612757589703489793940446116267110758638368721895466048033306849751411472101839435497712464803820515237632267839073858258735108050797830353901081795897387312603709963322607166391416737764555825555966241426035601093075099608784276468142963522578533400658991529151349902928681269732260348328331876444269826536214668866322207208280445746439011476452137256427267111650221088609181779664086095712129906251541974319252953267272086440512625057336712570647753431032868331383502970937065579433420338653949443902067830719097841551324289673079053156358620193054066256377302948328913954042498737279657074613780391377627067579178108266913786933137011909195012842392068618844490340154830800196262012956948927067642642552912935858217543855772751109159375212205434875368274174893303022454784139839448397637171428386481551410359742506588844654488290663157922025342025302709838305316129952676829322121326240187379182705099654280709770819669224749301212338029762199919109227920782546744619246521922253593207893050965781245534658532085272215841477861815574470621451597823079563434069376387758635916913576218335242217376985827650612061319896148244942558291436260063762485329683042374424953908194597778380911905386752896501002228377356480501137039735911649656100222896726643737725581385973296442919715736426768414853778624365625988216606790198572290544814696402547509200984994756308077025011113238065688275423097867402100918627670874306257129566567408724667170139108031146999951479095466475287231274424308068333315586223600615375907501982908888661041821526033046553312016808076798079760515191075453601685865015027517999114715457291136317663885893449609478019745971358524418474042034985709486217464181846382350659802497838143006611006260158239504762140970192244137697404374519248121686381407413246830679000732120251488530171084396319392057895365834588689250029903792963349669193741600466915703390920329761682381793348776530305811236751266513513104960512610575337671136613809736488097700683144119665171798295945971793552079957968489148635000233305769421566174351334964040766891781876145360654575297829520787325877321296581169179685834492136976081174236862825271040741488617506254460750826797424877788030885336561682438815768585088600244651881175541578256743418998716597569132838841892594665824889226066092765571473172016614964335277536181448944985255120393536580899535619060724293608823007839407539615242235018270197646349010134507469251637210701290265782645738607219731204413450468897733784838218226021255723327034022362563653000185923600184232397775915060044033689840766508087034648912893173432784538527573130376489330550248437910893984835200009292168434724540836396421318439360225084904579508375068228401945227793993296285252555511770521933910837803429059791061589296596336139968474607865753662080164219426246495094953551210074102052362643655481057710617152706013974413645483191172411948264659785980080723792371343080803812031305503609783894644463081955433035248743784559043117665569351626523516713224054177204184699850105967194159892427188625346243239913222328049407756654687670794819272708948871850692364612605132624247425971758643580419189430040773673597268436860881081406085666282410466530825344238044485137859838435981342997560782719264749658542087850985294053433625999834027567597361324260316999714957940872620934310922699432252687253777364488912755295471427813224219228209521603365849873777927607017522549058125511566658336046002323983957468625978473921295512290995346311792661498823471447798151062382709560810088784164989369036428631533430647829038682189366685991156883764679699555277273944288568512440454852754465748227828890194188683139435637264513583437605795414851741409661612148407456679460244067431237347022335213696644341262133158833321518413720437480783204851969662788838091645672391145777533461054897681419972954374556588165180292306098241704123264650611618796045512472911051270396950201979790353157315292373099460731528395421608296768186211614397119003577482737829449151992985152012031607411250257823439052068024384497152662676589504318751131966264396405664534424581709324097428354280961915489762860279658476761687077135458900096139418757504971001001358737581068661790478852606899583987278679774880163880043320289934944943446879903338117389929516114609973570865807068178694820533127955300472443807613200112819640829146840092829717991709536793195324603785862922499413880358778044664038135214446707773763768971887514124962354615323290825124290775314405248343002531934269785075687666090363937024812159991776699254197621161474516781212927638436532546211525939529768630420182838811866208251171921982528266531151022886412349679682563655942441775530389204714920484489190311904192129652755088443889508074534285429230684906498993146554989296873262005619983823211662459528308917045474460284584658901013305281681713175270682877277509027507388047542336944308191219869543805275855101826368406540690717277204153397591685570794529107112484960043807550181886604008161040530791964954921523788577312080267897961137169103230261210134475918851841078497657709614037077365651525781867412584692380003174829962471710750254894008850127602379835947154087294423362333130104231171275368742971808871165751272147105652525944562133310287693277344308270113909784383519466623546283709633130928931399153438713129768630555653467380982205408984054837839245361889630091358974989373834473415457224629833359655551826283753296429724160999253970871070726640700119930573775740029343772863100432895449743475035114313153098748725022770966309389184272006225126927463036623709517758659044596402192560952341647828717405449838835377250627843260103102382523661003975476186480857678892908724982121834962860933275065169013362608033554336519391814072250592712494315394386707363834674115562507628870379047476299540862377043345014660540656636747749632610516254062923050302210212754820043432106647162614939643636496021175312720163285012253148977094301081467623942505915755298895347576699229672147633892120885565642513548162165607317202907787702662993136001326148978401225437484873728566537574353757078743953899370561206940057044614529971499769099267430915772426981544647562523580453608657853327252539322443390414311644255669106193119132196590675428071370369314891120639211989386599405307626778199040353247240878970925111954569224220107426568969748225856042162399927359523430978677710413326355879992566953973323592481767074051407581317649107384896572876685421754022826716085099479295938456889624542029762046763394313778797012664120291869314925930133856248425821995565530684596168840751269283289535337463372014636073926292120286348864564982306700061119016998950535737873447320790692567784198326669524565221703658399222109580088211451534371101097127352793423837949894349960080270850015028822159181295465139885033995785258426566391984327821005753634000387870481276316275220170666929023339685118609790180431271022557115809586229044995230253575927985840310051080246423753846152103545964413163343390131112248553410688393047881197755659086083756442104078474294504448080474312284386384134001006207772243094980531661248161066071109023916988944187587603697042744124230169209837878268516767660640019072657710359552400511733963919673332082679590002513018179149176204426314362969539969211658176775914467900056817634860029466047919518570534331891336944558387369098070937482143960134484246114839306738559690830247134785451223431963878627046791716950140182968398352655326612630329090128124159891211951736685163192262621717023056748104894545479455864919659721482291883904505695214575243569128374092668199223035362858940373149402371664751680099634076595771888333276079625334570379453426009611462498301034144883117432080276181752329874121167127574491296208497392207282214928234668854237605954219801370010098283000269368644214612100288571013150438702470934766110733900050185075779831957992933566107528069113844191362943456270718131538056951556471898118053738944237692361677481691551108049988890174612952895517240291257222442171988087459070776862455937857421945978101246626618073340246562731378584307776680984742617498699948007593256633435492340268235608004995288798888995170058796121857091514376269241716457631834081181541585113641306214214321945116979892952592859195512082485911414121213220677793820534126615065290605515838766825732504457794862508530703104407499835869782280783826101935920560756957711441438712395469685253449389257153207798922539894931898067677096992465433525029630950370049337791288780246138941171747105357622947685764612338877830173540423854302017653017116527154500173068124112366725427097706796481346545766234502758924949789002976182354898526666815739716901463451106931134408500413976182398316225097699236929530901632185582133394079680309767481750763444166313447487942777931656798121732944334153471249680502320915549414455776587272064265127651102385800793935930767027641960528361683699572036431353366279919305262452485291414799389139270204078516410472138212531833652940501072055984491409528709678857560730712539107786807380667809019252097143150898267265270688808289672747915551626210690690325241173106260269082760852818902177460955866576019145296070573089440997399232341907202503125689418735932115831179614194027351088387560228102083069685937114783171103983628959819071602340988070387566010990351856577072641279573350292942313462161005457904465489911937603989686302033461758428038075410544563310918953779691748686724158282744925330316995426442552712466380731594713647570745802779298939820652687947774481729379466346562159857727945404503718359746531431100314482912090445011972798300361381837557019604121615225629593772129588480336232483937446156243187589729918849594030228472379893777114096584284635773218216706677288249148320641232633875467476287478247918455408765570450417332545089175548868788582973620074532586288979690162751192718410806434210884713705832721853442238727219441259433325699749473645868973832160072772260685679248322125175994142416631675208567455215740543452867642777113363589883145157065258259869992127249880912290166494553558580261789879197958749703954456371880744001686222549239313377696165367721681838266478541680328281849154838317781570484501662031078215998944362420283859698952260698809947765676019265483840057893837470605053106417617447056298881880932890642287433160884476804695730901736005481753437565496826230425095253589750949208777474490409138605879237108020640851645237222305570796841369943694994189063879655734460264294485227581170861649146551359142349298152537112986486477793872924309685848820759544385670786209712830628400521862484975108568909310878056004972471155902001863336395938241183683465145687179293527603963898870382942471908061279136713003666851294579143300096106215325772762694083482118966487843046531795881849942682475258593562578604392579648360830079827343686091457058692676366881268609955353585222912849611553541902223508352779020730589618005787318775164324565016861567951986374527410421624309780707000979552460832832301123888325499504928581387820159462800246740612163012588989383446578009656837511905711447277643361148483333632187639800896356176108008154672926821615946258085297997879555755373023919780516596653003472349854388527425620338968585051225939915017238338796716447527515573215710870922041881413944593159061973495739058302956342301466414676358422679257316883542019016081150766128805685362083314466656872165691803695253913016501710146990699738594972870618275902382392766930418005799645322953823904488601510861857414342164814664813175426310357855557091124763120932349233314866840989778341574969510558981601400423673659749700022399541196611173261054461741351368583426278627286982721935549682283435243989759145365806284037999379213281502855573040969514644530287955158092671270730472363211784113442616008972664030830818031154068153531794110422013112515699008441822841142370097957442645995417314666878737673203910378192305767974521828854078647578512820993079017086540858126296211534609792687059342221749194532824968061013825235834079770316227807158498739369590352480853172976208870931556869421479525624225557005594049116231236699574736995509609690539603804360398952562825910975184681124538953384823950175124920199937687093269812442913939416595530333134069744397288910053364499228762866600799311576257759731474179162993178539924811215663772125202777762446713130718165696258563509215649602883094050476629899092512330950978286861901985101511652407979647963108769002626579223426202189603970702437274050555837460356525224158635097468627398567964538082890562282943972597974464437801220836256191524097400886306553532966936789925943724487248645417380803532152633064191597228045089417355031383729265534035067908651180019958052563104474229398704123683855297753815216659606263434113321226342164709356538967232263131714131106892741107350392093422766947000385968170353382619367043909832186922080847306926700328169803191463044559404260435873454429799980731047040317304978900889333816667369296446919582560314079256447732758096850673201465888477700038819359700404590525779852108326301549478939649699468952981699612039851757239287060576209741459951182837421079621735999652147229264187579607526297206732968621454580119918128608985967671943632090008297486137360428855799290025705077181039533100693081228779844475380716925403722057396859629633953789385689251487604908540736518717101929167784039862270542171326807302397694124693928772708293467989930968096669408858960361587576874161409628961561132286034224637046420931474014305637648001282317141327725817979324793080240588782748133024735858773942076964663734404809725544299247752659224424883127514105211432396414273927708277482266231109329747093665624418095380530832247989787586175626550450177027347170107266556609521172392508910480144707775672939647845324178438155221188888425453937025282688908655930229496127387185689393042875757757628035310458094973968881643450874191197586846645643719454938547598139356925121575232935994774607296679803248826628553137030731093498543062620228286758132842617511508840465602008499437654729766268427310046496432116250973503392713235997799697959181048624151095196658590091927178450585434116318748297502189849662144900753201755825127322343908092330883955570623134851988619032985468416126201943140960547241738118481502522728552673055173055764425560442153533287171124859324724486879884326398200954529411167041967345747886990044982633516802151837997917353460139948010066331047360732202157657502214728291998160978816098110862708341232834170057455767588052049215681988113464929076850539075664035277120270369241559294560784422504254642449643325190842601745110711223880867001653180572035712892329349050832664274657093775663910516931806057343601847615402065090654464532722753168648958986270675273247767919844946973221439472206632050313935591767584356386259108688645658262558485452311043517370198324530849377619646070031534307151498135782864182700088544769414225959320097036117550852406215711147359593767562849935931214229095301281487689349040869831327212103750809737777885712096675231639672327235806770466771905754139494440211014612933774344882382258355276101016848098869429385813782967965967424754363932457925176729506628069041028282847384406821545120772150049544450671537649928926757730830035335008570368189462706617434283824825747158376818262954516577620454100067650326432373600107897994414363033743014771964072765827644559440794507231782934776180778168309009340764145561835885166287783387479219836122646853447911275940395446745526976869716056604023557916562709166273731735790999175601445174843419995937742712525612551779904691595928737769249383404248993967618906983861231052641555850111751996874676240857007102155991192332835850141723194292233424101812667306238374830348531519661104859989388277250486802669963198629905449292333820650055072876616605780569890776352347842791457358374793895759867154468237232689790807215761916660933675068246470914153279846988809607319257210476834904706759758896711912642153124015011553980359211820882982178635934088835029352466805482901388353754955331741193997858118918323892137633483008359299805323443717518779427308407532405066089251395370301811625485411870131318504928148166652701429186264707851788118452945315357769586888862354184775453046991005937677816183043168856611906354800422757706792695776331394820164931733652136219979034508144977555877763375772173592622547725609879946842302728773328826897789608164200930934914101603466921430186980531856563289625479232962093845220628905824049488448063818101498673746701434174581156301637862789375993020426966311152497078861107058063101712189969415920021825908103142488697989853183641519579179452172743211063672330769795296402052368901163662225767901583954225872455041576804936335574868890167299900279861272111699138579208032147302179283101023727323143023350739035065615610040023446143390752432285433979480451739250204588263758043415499482717506984968148028441888701298282177173320609246637924311527596465142922924469356502916190594246113528415065153264235402684393240013294302133280213325037078337063254391612660862753699188819178850319354072206215117131902189309679286736024620422486643580168941187010946945684631264244862397674406770515302906557846097010587964583344265901880434397424018275036692870505224971839218124261252663343451405599374556289903833465236762485435358830436282947627949759570607802582475813046116129879627937283898939628058872004107494672839796982260360755025904366604804870006965782658257280311883128545740912312596052853415048904081992548239530249624610154541297880152442989590053941561734981890082052052971010093018389414497099128679034226903013086773495089422823546656044571012594160319650809269995733044957052977720954753133823444317352649141139249232302094914004471085859184089520026236097699729838385746985814522323793463576103259176238450598947035087111263188685144797341998950404084886338380295876800613545712781849575069683377384324351292451297526831652685863951302150043889520670601552355696564021533749245977183631054520901797793604155349375284136482126864515956745343192957770978873197523674395940839777994560968431380731633913904380490626794930156910290921624848643543895782970250057324121272337769953320423849335414547498483608855101078971367824031580946075084912340848918500813805427696656149381090969820368231478615894942606259948380477100949111668397898626191880595776437656460976422724194050192852653736624059906642764494597342555060427626897099334773809868870133566725431085579596107351525740618676452438836389607487590530386515098137150900166926410951431553958012621167408462622056711583159799397637027010844261531212891437019595120832912562663519391432154262684568969896782441433630655190607709889219336659427287420011014847596022314347276677304101215890714403432001413089276661273201073860086531562968335405059058128894561082117977089369372597670753477618462349775529258184285199668524256995890140984645368121890987896799045811653433694374130545500358340811271735045173615861463230309132811426202923521212081887215311348293289347339811828410601089155496673299203245788344076549437376066980035034600420536746297220520352003942160716195059370688145532824301662761963817932640067466560544089237893860128752355569485257963148922645234346057794817838076439355514135021693974417293039427652958427644952573273085020289403566160412987404002403236041860158301310939564375337366855431587371260243508606986847689965006207056272668479202963193576393887212612233538471373400118542082047512596252602812690387073964122720330480598128170937782556591369974161060451192191270356636607426376346435979287675615968913844534995638820316142820626216015800974888637979475250828354286977862751949968026769460483454742785640091691267538835032347851083163066386266386785595464283184176452900076419758020417746406281334865887858879264457420759625096699225039708193916216800995316258892978352309893305244703544642221388775341021022949889395346117808561913888700157019191609669477393545024130161195896077829811264538152559378107156267609130589751861922048821222154082886762749284976258661929970156512268724592240470350492982944709686013360432196945012130321014075610815703348521403731731835735111485269264654394095860982493126439426866930219594194380004689415855300616075416441548431913287437906460107523211667982005921913990579190856965472109960931920754291137161257752290956573389242802976073614052361992455492306284501145075465824686507364542175467439546204390838293590610865862204222517331170267716492311746033364606097087721426023584295053671307556940783117642780571264045980155605607884379690191794771871092522014932262682888112938093627368356205611012703406936665508796875815783145582310573802439532567126360583958716814163537996526371049592775777258979695942938674763238222516972282900810090381162575345702672030153710403615516480191468204191404400249043075577493684093429707219485208788414832002833366505055082166796309309845205497113371496474470603017447914166057530850228797762897839436096116828486695724980286328733197312839873206197732784929664863251236952933971322038355865400517603433187622488273595266995081653621769905804248082475321531713949739038607399835214552993008680608801616087408560418079930271282037457731368679350022818636546310545431826418265922601142977556353238468879790841961489673336086845164657943351544989679145921868109922347011545018744948076983888299126486386118946076038121911305082564032152469859534520914999510560988804057180572579566703797575708302224199766718276302986585320280820050988942120888629503937824059014353629322237158409676643543967345817320901200235289797313231233918035181872694089655658918670900209278489665186035910913101992079331848639191922732729332743453015693050331730044354489042499457117196584006407453475391002349281380750017967177787340398744089516670787547663807584662418659410540288237111885268402396214214347479046149044094912950059316584179397251355872542092361307486293920201314545919722354483084158602447851687739754182866896594421095007632808154952787135332449480312759726063551014740035793906045754006479698615503865329386163865322438544705958036163131431667981667890727720571101487936030002783677821947815591707794609477203495278257511766265030442495663755777919450410753743171559934063235135973483070893471429174754680047843705734648998530666910002410492861189721460491922537127351141482408141892808999220129790841069531202595595645143880138739248582711096493545592668403552714732250368140642393669436409454687935187637568310522708564058133672704929904974099770548925110869084416313226203903797051450744590108213678312922726338888324796595414117955449590317803900087175453725014666691495650224444306679618817323453602662252618880257737690700702681973827936214816049660237163346475872985378249625794157858745147589798289486775855657869311946446676120366569307427357003773556544186380466316961001380431880076865106065792490767877329849135690308546329786690269274884809545698051875138400421039406912306844839772432139875816803584110669541362133841757315165599197993188448127050365972558853629993893881400561640508029461375369949389422725137047130414868390000699571279577861367588309979336487328957447367835033537891107377116811053856230932882434299270699852610284133110435252601259309777713266484318390432081442733512826892802569517641048153319303874375662411393296134360485611889397918581935697215809427956127954804022798533212343181104173462665223787606524006663637825384305814231138019306116884034123759348835119337768262846594660439708797896437668292488529713547476156768111164241832521715276558543910244463262529093226191552778765377218190098859872869585485112134391130998499464641450322937575591673898989328329634097635838208437905164345878749893552955574161430176391981924107926098239530040713334015700795693012011994703389836129557343459265929060419567433364523121169102618387269487815178581974167563254681332505471452671714533578512720863037840365145438306160409616551052082500759080113487938448750819344057507642516863227024463634178306901817148033128948213823909310621280961810208081674987568929638904350335519322714369462553871857738962171916014395368819303401703324141701078937146597013214923649694363211125694938704267525216292401221983855867165272840912144835817606003161535588975960455200666975021371023082592494922908873325491812091375233468148992246785368424549978898958486758018103848828325625528256391308688913142951396389627629350397141891028096868818798990366865331853888213205083830813961490124032330043376598133586471404054532491298856478100211179683547644595660033605713514141517441386863934465908731672045314018394505974078397307748295114106768926949960937246812200485823572480596223370900418525627622932542026594774845436401568238719607797951974019860141549755374510763011759128859138166449863977195587057971688783279816449402782704962282619702900166860831164869709587963597804650655067209312101522128518414247459457979377135965700276748100110863757222937515585421579742749850277018293229424303295077202761134617146422100753402701200729558843297047906401325529695379462975757859855875405263408352915796949839331446945670653450384948909373524715693756182682030631787594529750206660520088768798698216952997866599517146651319257500846814536616808451256700759566363589071326493285443536544168358031383701104306014477641704603558214310291327594886994404010194264617408256309968051014188707081700229848383911942386631299708561014858199201248829388787713058229836046081542877851490514111252628364409021431362223381330399977705558283995850120664523547744277418320787178167139066296192154331751893438792275768609218734763634856798720500556994743358643169470650183004499665634103582998522955421573867468173876891596981680853157247267807634590002287783192706976915819823308836022862441968236836058146201160795032733600647638287881350805905276577993009988259516816076243970636518585465128227858418807440930307305103466764244505747154085099105101142741280635502105882758163747427308951307349642946245377183642695280221159926952609864719803554362733584152107748688547461837810003677530356617132842968245178579975241564178798116796714739401903878505412533609342386811612295484171106299701665169767546999782937916305486346533780828293375220147623724409363340148507161418009779954087021398451537539205588152428886086013449851564804649327374797368527393057610134558919881878092238381117259173439218571333622347832613116617045116819133846008831873104536206039466678449196124539379143376283628190348303922953215394463842525144571408139030970009442219058883260470719610679176318585210033940630493900160169306489691830873232042051608983149840088535045456238440256713318530459410707260313893737791360831716357532216256524600729560799264035670378489370771975342358113270648705229940567711075812724539298967435064557122792229475358274956668022059243803716878798615514691343056515240354195955351277112419413174567404874822026656772861671045950848148502503968082611953330697541636696936872185912050909213301039282219015834158795144023635557330033998002364394859231797494039998966119630130137967897825303694142188040254225818359752632006341570115296713492390851909468830475773632754403254694789711606404390950372616991590552454707643801280171806309899982690651296558841059562423520150248913877441119245658288216782577470396347752845918207109817002994586530717216977722680422127376307578801718354344098832381322844111880618716782115652801603813433303220122283553327758185661409428936325735256026826569054057466431789154344383844786202877500086609125601173253377747659326316310904600003847922491467465116266342183305669115159813651908906644080938695339464594580189341433871540722964859323884059101407233833629978442460499307130920574019665163818637340808976406898643748151484772762039435749543552985470181259258793462083680666212003842142601302228960948015687941696739942897318466377006288235575380390364067167757531451909489424397626909345084889293250322863568822585121562534396461629051248927127294858644175439652422991119188500085421239001395410785371183591404543959138282152505542884873326157827841034208826357018998217727437771533877241224307984108107245709606802727156630383703027497539024662437482655260856124468908711606412846416719769300886239140476815949743284444668623485790177527684789865331215742564104997473432344148694565200805163010998450914462629269180088039263488993383934467461776603238377183978108163043148030759109891689887055961318378711848815553727021082228701688795124411950643248202556276568298508463605791294494608495612019566707239224978522085311791095818410660198118898218278006583745742466831996502819761316618727371458595828281562589041262969363330987357227222133283339985869087242382172624223301262448455518977377085985491829396505785201597273299413472312289971379341187880968202481032196939262478806239349242703933802790735314505424218535209140924024746920907535324290458535662054529835670315420002595997500970038806376752077541209202290984698060087659456416010764235749993819231714913353001626420374470035729412472883281382646101292933585335131812338340969923181982278810733185996761332047726825750390000235133705130131580623879926572819904580969571779679629650589226550905173004902224560005109169137977065751953843435201292109070212343172733210273581136557995779336562421983312217624071069946910890908408551427939632468755948181928476430646176547280558431367575687717039966335824196705631656185730949110850319820197908903692810631043545834471021201038104390697657657695305740798498396824351068262347621921340867362635018146125101304594479891557257265748773656019839028927779264263151114027784570383503903336274253096142670643037300334455886273209291169560973443654520185551091073953143795232290401537792633241651823184555911084866209465935218380575801542375461231598285402912102334318482207517546006072219594560185534316203775592431407767742536087962786388374823203192702854959588974596700429837857041162291132412715673797987280975975534619043054950518107204359787785121923686671024215609074277000221353978143823648461008708192007060088698693547444277921332580952479694719102501743281826251414483815908763809178771946161528872092086467468753557761603071425764010323516294677327659977836599650102543202140542828776326719951395634555809952366572585431066723019672987691039824844814102017041503664959823523454154113283934170200041404910976814756533512732973190977463791472390364799730192361666582833524184608752964004082506576374533272134116432133001072108102803744622716500694252443291210808035902076494742100898283645024045320753954124914741589899286862239332949515069205273294104634017395241634729612795422100432287351760008770241558243677383911478813997073307453644740873890458661015720031827485596094886453710203007865976293632156079684566912957883985424826498244262572425133271041061806958649475621686618701363763865081550318177595601015634650471667889506401320183702714334306104830147665135306894594225893061403774722591285693763994774152168341192330838276873161720827527087982547027634603780014327329973604614690731787208804914393526807492957001909114036393674668453700091332822469860077648677981458554306038735845392117171542638850545973866665126798606945223573852665976574813233312944402443579272160404743031369889892769365866839693153279010128762876583507306694403420343859250225082283915756321387553583004508463847579084273643028464139080663751834103887036489401053779183304764100915514430201648269981449436429912750281702633770510923764422465220045289886129253146247389186054885983619649485285843460975319912392975875138660530122326757896697806560962699608599535296855361390037768374983327800660070787146971660846690792402848329501741558740535716364317177762602282785812172096020840454014665074011679285357355518731277969060598019969243924835470265652329385976326449999082144346470567617594863352327567176629823448545768517525622276015164564910085554116626507305434684671214640785577462795250375109878274189943833913290430333655125876357828425909756342131280403777892352157636529972285062975153695133033818570908009075102367457188660142699354861908674646051065828904504423979484370474037394935958609081542377068766089690516239877010431030951548278446680802527384807356901867514413679445315108179339441411871964618301967938471135260576160933590561845461819109121413373986799582538705455694568346212863907255179111183113871935802748432176236075681709801070755427848525733971695747338235826591013157508704643230797788586401330506901670000499728106283773170163047745350626269096909380464643378844097702412257659939401946969230382330121510388905587702728370981970851924054949842916023120426736189352802876262780641228957616459831042730344806129680717214432610245039639094281337274277051313879592912715045684548891090939556064964431170407138132775793708524852561996558966935730833536405502541423657446865825457635867977398094651078031936454727576385680421356721251450988428688309529391000961533174596169099072432059196315298834247407267469446139280818988128643878378371547517819068068900527824190818870189236317507827363758415530129761290005866817210150756459364718397009041225137459464437093967349671856914892411139911944404086502090712187682418173980188229510258930035563880247819784428097496846019074715832003620602461474922342822420340062586002697871254788305052248393482601592245533195191017927326823264566198845978670308555507076117244147824295963166628816900753856216669038294841807688597797528088636226978014644246589319269560551775938627478418961993573497892802879179372400450999214804878253508517777734554060754141091662130954317339558251583804444801913359650798634402651721974621463156566768728721302033376997657414303977215797100324503782459104688764106050934388968582828129068815309887018618981162213580259148466921368346330054711837164220601209603730243774010830566346834917318121335475355541213803104536448541098847395401439295220980800964202372049462869449625606896515173878066979352193095389688202549797936817901520310596973368918601299281814624956181989598618461274536078666048898630877917430582280435826061138629722496818774368633417543134961003722863889049907144910453011045825805092427005466100943189283527584138031764116029848857745411230978852951087496597690783237115723714519616798424209789696601627433984174973212637287037138314394235485149022415248882971894224010967370187305604128068930030557873182014906072185853247907875588895873192553549607039392787836709830355001703203533635308481132057161673116502794079720973531299857328228919019176009657087003543323800845356031674482026150979079315056181857530086773315278199243330490158051464172801467445983177473319445630145464209697608365862580026939906671602920453258108778631161026173061025935521344120946520948584757483199171941682465399957723474877492848002915356199192207105301832734746649816407361790500599550523594472029465204189205769497899541643816819977471487935124127632210489164629732035776378713049537478371769015837274789517457689621844569580867523987435978032267063334289272341637026522082560199334627623959177824280639595791744818630605405970578418218564405856579881597131302900865364631720633625454902608941084379419878297433558632640357820115703779956658585719959960488235974771628740648231230132933053959500165899036677243819428228834860937049800382249928742768568612751286364979325359959831397356541147229230466426802951497153205768304595827511441500475170251369384603341533404910410839508022389504638221180116989514185640167065177333628198176148421265627904813777586749473244119289220797530473544956106013184636698102616432425795504029048247989322506073777238839926960154897059574165025241330001196547288927352769595816951270352257722132479507464590102091964872364344113609199041513092459227756087009186217754230280773498483445618859003576854911770635148341023027447574039572057046362271537976438969639206806672596091417866101031805279786422400635727278698565551258249685014116392060345518241618912804987153323576603930231444502628345131011013701669459784755819322697469106056653734104125048034187425996019140432590224961675670919111752814893135189916152790814375962234117051536751486857978347969916839503825683932395740218173157209033862991696496446688846577611172776083366199486475357708424722880164578252688139397773836562024576063666110484056018888229408144726979276888208251413051911708826409259496566202099359173641026693984296528616251365527034588310171212956812513831186864605303531868981914234734867789797821894223304878596147302122894264787659783874187987998131476711867493322345319613502587977296592407942213996217023225230487818120415834045103138461798113067771213914702636544764321726144453982313440761248882377843718244371042210612729566421815364653593477527623809983499372640658156043508407099144739716956940227976998758873899643279566082819844794160715336473326351280199615961247191350870207708282589213468484642249515445965997488935601556054804742860367436797918983606804861871246677054808992327639876522970743689189111199688413489270616662603098872784793506879028861907338720615696919247739892997881111334604539891090125962023066020340279829403556390858158908361766509641136024257031355082487809037336897369819728090681342111037638048674511834196989036949311585980537172452452190269200030890523432164120330470842450313119882772131378458581525688233746111591400555951088593918724454405801344671511108027602356260939115759787498226703991368020331329419971396035266558190858390416314272153830959108306315153156464998973658380051083940392009589148916364764121689986235980532203544800561786169613003866074197690342498689334877820723650979716294629436004879514079260478214170999429780225207516351288221324343062151275662957787096613339581348958422470690192517694879803093719479705967888996582784389921943224256421454473941832081862370878506414517419804394771629303849695015247226074974249717623571254108705660109888206206570856843828334065843419319591177771839472105084493608426115859347125179143048537158387748549012362431992726533145223078180715410166000937826322732456678286796824495014565080617003798132937373370258348278916957516756304290904899766125081640476472028426725944831212308668719019556863079725842736547415692623111469490913773712900452168546024312490975993476708104002769938244678015707251166316144182206593427992742299829012767324765390027988029689463550093830508591222122661133091116388981316840413600060763459162725704941746115758016831920828281454454764723338636908507349274157571916379112979321867282879725993513921803070737852117826357960481980208552870340290009745134637854372002555584512191995225473328046061968929776351245029259978076358332571232571129166117805900144992705603032683862670318732979509509325055048306885223730625745814580514689481635857217838796048853486760954395738559336879534824125110738957532969574963360978154479648719234896587721200727854014628468017074652031094165745027164506006696177856476354383556928397199139792533274222928379281704548710470276449877279565081857104846013082086398704222563579945873482569600023007366324735655612601669239234272793007690172538114276863866047365985390124904372645735333698213162595107556901503718484549928687624304643766645027705737559757534038357259728305171221275975700997930763696213925275642674854929541686529466633971809703432084514733510058435713942835338149431686872759288798394896999300245210846622590448842617766155018147099722403388082907377074992454231520799409559403050239896925911849198908335641491739137895766432420057351769986871858647357994757105457758964367528403434904303571195806076644818093041991070458967014322081001141794863838228733649737173496140255351859145829522881451766622876893137049177547468004166354102987606210623653597702983062164530138024769711310828388246792011231195900181313068326946060865176443751919947720766148066984500257253971478384943422842819960440420884947920414804253665353750411409483784290181151589896697740812185284197166814710808787664040294476666141276316123135623165933822055568952714750237201971405275003740468929162897438645776591227021173775738348477541380900124009344229440206022172658823903168250927279882839203753627447934340444676297991072318430394664098176762656630563232615866269989585090334414924227097681947238917056936293265245112082042842946953225775478076785552436238123116722052125995949369432123904867693688551731943151874013659725590325164341053508569712791047295128613258737362121738349986647246111182687009244035989577270836212621397855266293087342381821838719155814483999319043537103356061838839932773093329082330388612970110911795445661402197236489089759582104528534809495981616531241415045077235296935747923389670661230934498136248039778712663160088760313130108424915527433447274609894550631081842505402619075379807551081371463656891027104689146739813772303375131635692548559252632934101564625651193886306286334432952295497381741104542836391388895197056896923816162758897800094273815869518931820861461571009984293593598489998315675234203495593588207699217325242820437461804768500999226126085046762387588020062885116644309850685708809504747166539548103516436486698967114016358834782497766433194204627221996414366076245181258670058032495399139454677940143161714352373635902981512528478059659743194541364541012529714284687136135852959287787552083806217307650432338687937353701512249980577404841771592482975846748667872465310269310067831404821850623905792864551999407701893976579786871873740982362503743926582822838531509284783034127956505021896186433581037841313727062299011518370274015763296455253802455968892732251714584863850470722646629037901046519668889390953858748260765228374367112002324631498951149351185097979349242744751221894613762134785984675827492993815487312917554054040954531990878657873924629953611158093956994887638498129454591643888080277790850748676692500940622185488765630683437403551749364296462310018089828473690379221529289022152524081809349769655287149970411390221056826102967421824551102784270767304103319384691519262868588276454980283217593326107028935724858293151187422573040781422227808929478207495411243508194429216913459667176482584050571889398795686590618680629009302498827436196201377875569189691193508931913146417426945059083435770612472413477840438098570918302498260874931695312385095798527360434421388819957492368426068806868860676498510589462531405431563896864867493312633181215597162256904004203938935012032523089066661957690537292797774574875607624130785792454934389983538842815414574366666760484280083656765588446299217167716437371581102774183588814539857996314186633066948873224557462019634338476452849977746823011754933691191128973930524074592893922904234521476620061996399156385632045225633420766973845614918746419621603617541236404592038680769869569822380805736450737349582043347587088577553592747346604082672401525515801584270639707081326221576432454249662160541496481123702766359508568097945971847419700344008611170221924054960439756514372381905645155485841342690112187558894625406625375349117357786658894554947952311263237150172285983877465376366653970254807855893730773938527189690988768353817346761563396061270766209317986902639420046054334848206588190490694999946193927149333422198372001713384281252715975503998038149019083271821857890594596039588376606854445222394118388364027264067137491918721566758166739240755650057640768766717161824798570886227698510076070022794405310486287220992470916441685075331792739069827455809568454438517188648871552391816224814758764529619345265885102308885684015482105959253816523696216362939312641944051150531555456929724802422262957146766268205824482931045438898979028271652633102379387613899365556545952661734335287692642984483021861516755109841457204320161048702044860940535179243594016043683772177975429284205976720338115157666998583401930976733262867138077401586283039980141445223071704159916975907367762491429598482734905698438762335719037321807407664342733150715463954584515043194495142573764884535100744805696375279186299660578956192025139220167660187206496068209527180229108165840405631524386155082388987763974785775525015795710704712327819265044409680251119033866716861316118418249750692579399037506140942864359741489080194861370955707617968322357210622266111494810196505499464351102991722215767857158945425382426250280818446510202059598889264547580339989853511298438612254947180885747010603602628900569229896504789439249834242291986763769208866689671372307331602587840848415402596819411844733876914031185809257104330658644423268738300944391630024291278529305381338093489903864832176173173647046804286503869548251617441883224688384179274584379987484113640454580517029592371259137078305834777605824217355501973956329366563224471223899060282265529989375009029823054716692624701719612254080578219289196962562192619089483870614150188666203727302197817237265248737252867925442217337992141139491044463167245567028278787185348215614390214707042817444268023980722968789423079457718798288737513552427660577275563255854611946288744471308149582836370303196007826873997572395240023962324034136035641412886654911876305243194308967210752195214138931650476937359749725870204486396725756302054724261384607719123548337155164719507476514916888134938469052876649961641425779209884979842912055699123977108767817225105347840410814977296682880537221306953533703316293292023156209743823311672725978353715621436967821783763188205377299315363675534918989065234715552399024927935893945265636718609230786448025673010406845380636004178007141339165692990708013512898225340580893265520137950988568351801923544055367133931975478916559134207009435107990186473407485669155798355068798942173322303622809010354890277840314068565176787030057252903643481422864719466343807297550979891369637708252331837220651671746129908782683326804597735608600841377122574727283234480957250064677411051141724304329404547588996487414552296046761184196176747611240338267542184130441873935313380350653156457250583677102515530972068681584089253387540218207241187764727396206468295173462364670155386910393314927443760435251053217997153168811769290139321376108355180404554104208969450593428388188962604202182570972739301243889818893439984593678702761086090437468774986903679129728804234148945971278241579633963796400764238240346719193937784042053343525890674384179100419711025547712509237440458070666047549502453550671523737902674965270851157446212387496172234406289783900752242176918103135849875753754617551045764421455883460907643551292958608335660061822187269345724498306770213111384365639994965786109435368576209918292124299893118732842008757461636405349193796094351099980511764507722623760173403673864767286117991794210780324053733165946128839189887077621427035531200772879304014266564444785323227801959380168550554271056207709572364155155955514172940568855258587338926418757447049215714510992441055516073751288532887652920302924795276943041047671029259432100582957931458775820381926363922133542192708523909155740389968893559736990129230425253048136805186466955596872539126028004371116760018385242694269298419858857849833075518356654927138726149796190847796642689071038039032142791846032843687814700392551284299756447020956760033683040755489015795141204767172649923335447457369210611628812913430242523795140719872162979424636794202361060340482408780709961207067409338181098996262937971605741936918005231616776712256681934170852157580018796232935227539186314594585894064645363193256291573865277108760304455300702719304221078096031138212287161926202097775740179111179236599530934363604692559854971152902496595134242562758188918705835703833147580992939640602892145897442667365089886819357835735829090825802116404739517043541911087828341138821437213172627264380041888679410010318517695219209510168682568478572922926817650204967096482985673779119220765366900008245089716489937339697899146700892941189682826050326174780719799195727218468206306944350155021399210868752240276439769565086718879523988833684699644347655053220508746610414969215802018783385210255624236160359247462904245987684276547912760868183135787198062001533533229902180428981253981107228543363098235943371879764862134577290685754484997684961040541831405362367453025639349113436054622689098100831060640523967019630385757385623689976336814287759941811586582528313429299350446133570803009641071542785732053871858797712848362538398573551159342194621585551063486636442994082713614589153106171809901047899792532870928614651703168377122551753264522428226007280716859058206150111659241807393481251866829580828218867581050000100720421575694512344052918158826139382739073148700123045854669567492543454383316568649147099148551592389866730450076317678794708176571440377368490050001245385906774566962944032639350482654016238070204750476498540803311731939133960777216722841549721715308516514232547627128530911195142684989474333892343254072310768200922104718372412072065185197896239067825605472269689364881906484527614841392397115428460458997559720034884851165473320017064322707034709725477717975513943495007093240887304897987795262657369225412553815593539319127278979201305668339581802322844606520982171632185660479157194336106472302925607381009369701506481232050385196987334195763209485259711099615474830312201652797566548424394418307632393289967483114241710408544109164580923106677574443744846440226034415830787073377678061968770864889395685065487930649650720126227432600157600954333298387059258853589929678603605753685954580373735754098989107983464883583115763833638109866757820478270360301586680655668826375403401275872322710839993718033907922341030888845363021908177258293266375370862437413402538824314696437088274609350665505814323530283001281364565728802946299014154702385009961143805831694527070856707174146658154388780797866115664919422504423413081069297946403507334839743538314424728944809055836596223312394503529807425145929415446022963009962304136881243744811842641592424606017307767613578830688582255522385970428451101077935386935129783003868243864342289876455147565174848866415818773949208440892636262720266204561579363807093090208906429261777486188473399516063833145824533606949334576491963186638544144683991278286365061631046915574189529452780706941859719535996411508976772726667169299440283132673099414110723641920656641752312456595810405959822394087144163372194801152162447533253086486729027352392348112861893080886100774493318868149541686614878898754659878423477759764051623897739406187013899435557575471269127569942705120155758445726493582600571571397650967296060572010384089943020075477676225487619686983278885399409670045646249783022078810249322764299504176891566327771229375405290636896549161311610614144182118977050035487206721691708789396192306603741795965607681244400325833213331390709463068767934631591108759793532103675055429258742126692209399775449641853947654769725116452481624854406565215884583499542039005229556261531617988310257898642004242035666577554187359155424796902643216408306823968697828468779583174706163693930651176857278894328618729446574656692852474017551876316000838596874751017674655460362759582740431653156156131535092712015335233518046217715541377197014700094934625476046764441819656459054687804954869614691783609620186024633637095464040033571052468204340505195417144169345580809139513752495816035543849073665188611394838027297138558564338375749459305730171335628435790201708535729591620245285078151321019698667005012363706869525838544715345950753323609945975789623410793260599407043585993989888787737555648799003234403737761692796486190445621748342275223593187057804197068701635885742110096268505969675798281241592737081460798748400988496679613202984289428287960434461045199125408656153589253300597679200702703761756528291294031057432125099453968428754648224449168282436466992824942558707261774304504823721337736816990682209405916907506171371142845450593971748394190078329907166924121228187465634113286494431258416393857507993785866375589509756362137255131812544396888553204223697090945624062066338148933388542800006959680382283787132660344359279588380091578750404981143568854403057135356119256722077632967558895270002678490118788903131846865976478399315318696728838267968220920963819260106338234421355105948275521702133782283379077560222549430629930549797965400835969880552256912326443700823934592573418617656581411318463265274832568039850414687380309720820085425774324197691692260221787088215502451148469175594002678099244616835697154440006259386418908462853314063177676026756067845110401053104575262496093075449217791565044567190976981840213001746919444263640676644081097652386835608613356853832850001470552645636247551834874739984346805905750659152126748036077033511047734665162507903843514229233981637596578197323303890552348862907487982414164056637106416338300518313805376344426757433617651695937926148830417340276137689487189726911541563058322840196951636034245094288022974422536649901383646551613677189142618781961085414723371699511420705147167293655659825701555123533873787378790668175194945914880753830337284771401686932301946050020737091964113615917487068217690363975572829614993762307245753504972456941634402690349223075534057466656655014777137407753719247080023483416143311342568043785460178395144503652727632778364565080444465328977044162295957255934476139303943033508068200714448878990696722179675652473154322362226469202841575027762078357484224126441444754259404860434588295856649960067391353351716046699407793825450388674938431944806059469599462040365876567926903279704749749551820066634323890095246803477347021494026024910608453244920232338501405354233292353433072972058538081239278104424102143028727861333765061368108233050204855682099845756644861889418957492827291480772300675502784515557473111908058009262702208277928804178553721373469372353821156984788613260241104418651840788205627865467431994695240239313892839708206760752456719951222269534974794363278646100644055999171395253873351809883346891351249574675080129120193110923252355639465949757846255945043488142777072233647762326397110617793622667257275800504355103309109223678202926876246558528338154161664166418183659252951082464996094286630352249814389020234728341875391700832093844771967657122278159382171716160276774661090889231256627930267881622877580422760152086344822985004039079329913640035060545890514356087114079284923672099752532891218248053013238641177371206545285390993832247346450484786732536070804237445363390552913753315172611996627226870913424349702704759206131553734231162421031841300694055799916903499898772299674761336030244623761803694337342655052724167250403481742717137491654020185730609369489573765030091771398986895706918282764564377595372773674269653406987489973503816357439023674642235236323693268237752701984235907726197874458378133421436691409067724408328762679453094354108756387814482493437861003990853005795858150795352071047322347223626014844354504448754067921117516834222135313620948828974207588933323986691889896519101590438513114796114671889043940932482523737693731372848323214408596375945540376103818727304870412390182345277438513827883122348104550574546149046589399923464312134233743938454243245135013001516632798704267397886863524534529241924529544768578947254039958157163911150029751187451170646013915515658563500973395519100091192799135998217284029735117766201466498233993067221247660663741035733916167304081709847178855173710726550192827539999579260399542045388011006154882573088815496582972647722894307658455757859010672199434623535589477800702556071176172989693009663695524222358613173179491845790418018529824393402552332436800621450361302005759058954792956054905979443517701830762496983722469880586505370617935883212890611508299739493656217378315622545462787424573403944671278785004014281810694088520131926345966862636150974610430881058773818116792256708298353879674224656140922622242633586439358122810019271778596853313690392450194917287970735390564196023894665842711871312128459095931294667679685412153717050299143580491940142819117667837661104626052583595999396884220619865065819613275586270103021407000100666503132224686517678552714297081305703519189370351852667874741195436305562648622867245082325541783600648290283759238018026634140289097770357368506818970546251374420026050755647006836652921829435679933546714857690411701473681066357080220680237729149309328769743023223707855524070985520292977158228604029243301373588415064157688610250432085996910569039651196689294375696923486245859485492745180858821183725774835329945738033956094694552292193415499271034277161760176563010534671700793217952429551688318608880842075116354573083411721911999029088201140568356048574455709294658112691406911302711675416184249621183374297913800512218124761137823860273918522612565983697494130782411249738683775753900820159748418224339726379113383921643130477777091575810795461153443628972217605925005773981263846067528502085664792026211157356710102094995639490444561506724624530739735257339607907224689542590647349673996458967961913744371119965965649229800945825280838753567645553498944979801034884008413368705081626580721390650359013992417002000677466000258534872816537588027311829148577893994907673316876966526884190121725906481580157538727695665971339316658099271722909018953677606601362634658382389714970830530206019928991524960936610401059986715643818429906933509950022861869551545612201851431815388638347527759447731242226517769263276828802255903696646895612080683007821993606987480649566068575251618554190556602623809407507241667647086844172479468394240885260866861635545031996316063223437186790156261555249791155969885938642047407956526221873465224680043966221712802487220131920556916907949439629272044725856437779789509682724686216766212662183323385716660723791195100033845320030659963048712699272128549602571316631785784796137606626729530448353818584790037911399423300418281891980449092475318052589672019688877129304455412730577496735148692642805350347126517527555964910958515912972433222523253354251247975345856386811997853826654687784290887357930133883113032867397250116580644309257234350024168114123383750580143849566452324364726085063138794187398911410050972044434418478940575251254498433777697316673061159347856334210123243593871319081553675726844476342818370831685335819661434063081431934065364048841263140771370199444311780688185931755517124494231838213493108469664230056213458500030763199830417905778571730156566607933074143637720808710032009869597771512880321871912018789136948832009348062372111851252904441281444197827670127399889885155284297077842335542945429488015034866585341458416517312951997727211566349768248128735888761587037819060408334598360192676023459978044374959623232471133443348192009140934016781757685007780633896426851989570596606357103555120179320688241615511012096857181787644002243777906281802182079900497414444620482714356819422934308151163485149886261443054583633527098856884488490682239647728294176873702134438200153453987626438843409267193420039935891562285490240931071898881610298524867434327854556963503851439465910464516547052515289075646481603135545802578649564027280860901297384802986858551625943567537391257036973149368882989471977186831442283107960066469000747883107238524521385651863883637475395507057006967589995495918268260577819716759515918627037790632954953706486859607978736520494687194304078546563441758243840912908432387533882909267493171084577580695329304078548371918507227825252986885018787930517802620380583345678497203238470680524852263443328257641978932042402283329309523700220218297836155596185879095627880291896834315549507471838376925343299132586895378139347325015716106487154464118779074070752755572540126477946446433201466478683221301982730433445232372251436504366902499860479031780932947389338630112991147422156873923512017249419151535164123232167548887733579536979446076889125668879302529479374626651951370812237107104458745729919092005253831237766206106373672845642010796984167001684248823067168581438081851153290167690428383773480304942227399246581455688436228843674941765533211455645323991267668862665637766805459529617444611658697785899269507192401862029047406382458425369048460429860057852579789908325618364864334058057690707962069906120232769995400418685923131188669647242853428314741327006447925972466419460670677239694618904560326749282654802894469372409085098325125634315398221152264951507930993426845841003056152752287553302855429506563309932733575644036765336225816432289119847737686676791143035170327659973137339638319532221009400218915738155786461115674450351410938979221360467970459360290027604507352827450001106304412656695377775279169461007609480249734943703815005144268309084427335762600578211397585112955485786793861790134339606812926005371695370384569942472722481057448748862994066585288130511960479771288020094985571013366922084105002237756777641444637535614446670108035983977119520794822408301777129003421085504403598055824606679179188782694216681120824735918263931508030139784905306918466512726697452306086213646644994468968188650556361583799690661648441782643945757308644999553273396373892945879304589686884927326712350318063761922021050194630794486652312572329528678612263046253113230924119575494707299511433043300258101388863118076096598232949416051865319950100772767883324302631025794646013339462868955520273531653779704657090275081944171487738951049138105988942793797520565324566254527752694666415610075039596409224381969178531220588223512461623522565298392561453282656711637463877002812004564892336578534117608823888917665700146727344186896952530647635534461362469336433473263074272488242533691029992997951035545818125781186807405665905768214477510756730796347297548850049366172716138891976798787537005396912889273523190825033532546945649599153813084146950949859735282526577898298014380001954694632153234856538598196637155771932901556831779532176123571698708653712412750720021445417359404931582912791184324298222174804755022103872174697789190818297954070156101778887706005036320606506160689190227270464408220134170733540225625130410707892656114920379582393634849262731726687434687238784227188391926840882026216228425879135876943931575390008232933334905593634645111665931310679409692739799347940103271252701773622109022676231550634921288084222437703552723904639948500501273800754718610465350502226225682973404198644971165092688043288439403739238695446475660459994329561469082356134814995824387510047634079949303152028986503787255564625100484711281221679032716994864037797473748848549098422126799833600291869327289789773878062044923456014173059862617001842840079800517424893564063575553206905861815670355930365758942997094889858646349676608199029739175287027077819653546144940023754803609483381026935111526452933798395635167997095486746132495387848395697665041056212699918831290534955049923207950585117983167559944992511780651776483791053174401683752531273766464968087160223617792051674927012928139484204785149690873925237408223663216754890798771820454327394053523522669039909423992480898167719965937480631153284037300219882931570603245384885630655695493040235021741817949706555222828950747519906102003792065058690731277593271507879979484642202576798384901287621267144177187497997581172914286618492392146936632800290439964971452057168214630980109895002789039924025365295466573866698116863131319549252440485491792192333582846159433485812907477029319211599265152447418730097829866324580443301672266995641891618364779654055799145621674337863342479406137014942249181837124804561891971369973432587411119598325932738679113402494126875521589445400866221580513578288499217936412749709518329966275738971689544393871478542561828811135175270072172807932647739935523811864953690470400696574215042691933519224606150167488512225448629228529567203646878583678726575256569482560447103882564921513417269444791845998800677520045412560954456552508115226722166531841039039713460593693852267038679732000878545205692931927424523693084379541232264986576832280399153686269816904261203450674501305318412553513434069795030003516884686459970013574371386037440715108475269361093251055354158574312275312139386886728445621879882459748169761937298221233480572052113154156383583504923422051929635934926361365662376710007112865235565418651010920452529441091076847857921193509380290011009699890081275349553338055762086696389875607296321956171946882175196146648664102288971899914130948229839033726337837391564240765884574914659761706156151137648438879166494658062115202936030133104730145964265266462148103993406352660417939312095673183791759903553035854011504784164010070697968251457485325733242990996060432470685389088753607825473518599433304235923028230360673033383574270393144217813262059515687976375603983831932235748051697590275294580882399160867820630948373612515212055272481366093445803926698743183588633912642127628770308897257400689765072271975144885222104733897634164021054611090794006275454801711136937735460332948393371902816927802178075586871519756233391961488088223992070793543580346555778293008576602768104743860343951488189727811317397004547814184096728510478864672408050857452992133276541011807216509166036899319745442237510480171218464876269281182425625458422137198263498210459678097231338897461547464761023195151373564953845992675216167574009720226485189857024016341701259373392731369873735347473371014802551145981153381684486993605540046422989087879797238483202479634628669609428481674999835253353515845380871062448700065788100263331418843709128040517229103557823505186289750345698601301993214208650548674726643855648198426282997922747026394843978731385916522903426071974810526958206072201496548301503083606338302477252122995158862349711740482862922487284501421380770631255695100665306161996698510113751960368441360352561879126522167769486874281842913595457143827244441871529428917422121326007027444279822224912972900218384686189487902598845097015971281306580910188497836757741714549912971903525192530264340913859979468420491363410456412990486748123648978512231800342511541158401915210958440838197333728474637127064737422132403107023710395899488803716577973066690334185700051165151607402855765524751784253370807838298516418931362725550482462834074599572688295219023041788017907271596576969582289412431788432433645282392610894190603988327159352053946867115550794282358777902097622431108695143099744628764148652766977733062076527239887406634479307558617650723040602823889041978456775146137015749388260616632489363546697152739485319015131269001971216129356074334586605623615290940248766670487811034727107341705954643764778924753566722061625521518133225660815230954241847777595936142605725852480517666160015547890587248853126372693286944333845680573701721775124717963121639808860600106730650626962928323070863397919457229025823243245513009863361528285288281674959684658338050965997314868722019958151401369582408328359686127695534278593416859389714834370811186676463785494710701018250992776156062655980516473663986070046784508088030338117061730294181163593484511051458547448036056214561637372051974872505493480026131448975073481688449008207789483182789223571341566564676980942726229382082741869657112564230483342956548322817625680260289944626721510825257801578339887545450972837435351221591825237295769444543514869833745416008270773865070419615958890793068593106592218783363434938286472197004557126542188209108435789782685259630766674498564316680869738495053619181199874091323208283739700269633501116135877811226246668367473751040625643280877241541909949255505954540815028860176108101506388130404108584864352994035190001272420496140970038065890610922212057067700374145233424752659194006566049542970942350963234860274778507261682823074788175686852300387798968807802543575655647245170210885704860953869873027418236496200252378383659114553976019980863300575122431282949153081862723953640676458119182581516989292169278542404199524474323314946215518540912262440399554786742783843317869810388183377588833480339259163183002437580523028904021073803483004604287871719768336540003852162828014632513522347867144226689790354114181209063098264439313240832154404950349410695240183923329279444523921673005159456637871569664588581398358555558594168705152345248219251178310907540869935793019095113615012991482597205111905746126039261769398434603588594631425977046275135318121086287845720868080539264253547612623317932434250943392310345918971216893268254623234899669170055940642055173769005187819672125217728504124293392177724675128064842259007439598060787637598764008670873523282273240969727594036418008361219633332886726252520445227223872274055549498280080278263511147948040703766322601779479508868173542411944632839148982540939994970432107420790563712876621126170802782930936608140127943593930968746333153060991663639278740842753142102639715339499876091130981760061771407115816346305741189767810276509513930536542521696346124700893998377472653073589642652942223014284298283884271479950510994558875133781684155513689993511977359768493986568364012016533540391952804448137264631967888266566368767662263706181415581258742889795280366343224847064877888802404461253938565503340901408187219972190833666687127917548461886754934554049209045653059410680143581847348829796747708256196720399104548872640297817884324491011433829058913585727565753462249456429331867522131758280267670183977280509469216109110249498896245219104671950057871998737588020884492194506720741697061005324429449946091650626594928038213954275191986378834656124143936649564158057584269434406299770693575965387732573481830725407754567961648889681463245733490802615183548667709920343332565190282643156672943304880350578371154910818217456524953491526462697109038297693928541996539929319275446950611349178541433902201112307320768110580359616418600932006670257451065631387405831383171072969784406672985674445667456406765160901897269699746939938937889048182783032962722760249131985335718575029063634926825164186620464160356597677548923452117548248748264250980018067949119510671746077049108620684904537540915641711290134227945149423147494838589011549482799133308188517926957395325272825223964724576049741355955781059026323587846906229600458728528233253212081669591510112056457227603997469412678463692908277138873105331841399358811116488926835505532421634319303192257357256353985252310766328828295517343811082633623909516057391246144785874676035883653254064644507387082977958325715331980456866363447781705489597163801038966158912811020999503233421946299908109158505040115153034349274006578764290237566804678594595919617368146025023241370944050718865583163547745291372244637288049151534911574213370387626203867983096558558119597549069961520722505590587488310783485120961023143761882146384269305795478753807454719879106366997377682803873478940235824110259619924471175438944322065044155154430859812553302563831171435346481643656319872046705836312657721587507444216745824658596820444068046711709017904470841613124305734578307275715651162717722044325778313060096466301619528406543541550906287004660784794687771603365404893837800861386823726400284414972975614272661639732358463836792997547429305164581542312097033001559487167487135688214361354587865677713541957088813867936048984258199404286689125179006666436310176309092121401392906478363063688148726282590131336084580783431977377837756543849317553847064160384231736754775076541658374634251554207941173910420804065856913341871136967954309551382745755739280551187004017205894208421501083996646095308557102276687543162231900946535470511513036089992762798636273646816733487673713377637030497346621238266291021914137197608497085962164091076084944100277670742656721075364727036517292684435706186995566921582422253922023318520548724855826636448228708468389239565291664107311308869783212135392724815535508356659381191419003594668318685465965101715440188515244653198629312356203362460629281128174682514895244988346712248698408866015552736999887658230485895187796998159303461918539823752814225006124599310265498532323503280111360453981465902372956546956539516715611210100160723586982023522484117025562114951267932593298825273442112162474690226872584426612653186728193859956394059274606132602866643178718513470413763899886267773091864835587999604652589373949719604790345351403269007600448241664427312249932067019681791672249812374524886965126980124557377383419107720712594867296305210324491444138177480092100942513455439040805113864489265686049677402744026171317430285081059087770671141503956855272143143382906850195635532251512751607072319303600647499014239623200832909125639286482576123384984804646981939349508428846817943870166603571722161630184855157512992414100349811538860546408191139353770995857488321636774445306298586182247918846437242718416114260548598895560379927038178951216667333119439897998554754615457072859307115847375316491118659618328355617270006202437234580736353905284884236052811323409521259224370163660732444062279434152409523409919520341300122995265918994748123532804209579121880223673673931865323602991517721729545598796491272763618778520762763692348777467753389881943148983022047357775699568027400941423207510890031346526615772627691303202018191067822647776662579178183399421456209534917922929652544661006954795546894174060188822454236094412936535503679233791653694417618203730223676163533823728072251387966944590889902049983818752859298275805716399725174234458061240799891935377684302471140023347642970349249591749657577727385041579955208914104612848543393674442572473637850732299337252340493502732072500370464106381381476714402382769560410315287004840678623037899163574248746690935916483643711254461639660733730131597885236320794102522005683030922057394940777770090183636579176185229438907986340282592854082060611186905611816035449762272046760647900584819762086445143233727031988364317526670774408970820048843034563845420212540663279354374350740977791717761087267559819404515695718037420999722143039906656299843498852795374740405970720849321104858494685586611711000678848446909623414061233524077665139171486558730740735291817503011993335118069181244218754487402680932902528490001198575799040468903257145545838103951160176952639890007697766119531473137952952516191775430545897208530067571882572061191903850264168362248777835388263544261905183703614001782918787143813221537976517956909020741169572569397456668854863520538862143046877299718350454404775886707018385159499821865517004353072118028958364653012641488741909622532354175086935581289437430961597325228764123009026187281267639935220111340498803383136626592702776654423299959427883241631615747409692277954455251792082803737878822826116960122275669368562224902231416737391902135131932759673277259023408931232912432513111821224619726834056855792244825073863663402232126971217035870859322006636570161381783984063377025257254267825361186756043120307268204546725868533427085862464280651194022835242044589200632044989670201060019776110353302885660466887831477091609031831903399453360724566867897675467036887754248742894035008034498115075379320634634908822990153999687498749493413940480144311169628673211561813036109471715315954542197216450586746241510998160262570753118759599160762884262144730775110334865622912968102857090653716886785936620751150952703179040074843184657155182277790193861227717419093479048255407121994641935803597481200518221765546039090260953096231068534084002906666833637973248312776338936408949563941314634595706255685348819330824831917046448088959570622912365933488349235209341193744983997866063047681016282672121797878047696036392433963588890153717474201941025294443452769191581562239314708724739056291490477942085674106207690538241573900835209471627316235584575405618221173844849758513555109707484007126622953001949946782752589630681062440177000956651318702769679730459428869064727996908916242152767800841485490153559523551210937428628379465637011062828622103621546460609438318312299231801087294260325954251867270446965715998574074166174440537835025478291620752494690946970629839947504720399978705762811182122878887843968885370220713435317115119821134328787367117422878554254957811749862398260057416258005793868424499579490291416559727092668309963768874215337550403391864130390506734153572870914613827365589975256740995030298917694507562292376859137276863934081773590613745418926443522675719649198948106856856740800789593210232049105100656922015235451222458599104972591499846691748235213004565382396860989411016699138269378538412492147090550484550843366294706189058318664137241130891637386929133420500687302558986043318286680963697274673255786567779980534856916887828018924572236305976211514664566275586714924363214803787738143525799505476809236951368228920071113221161085891301974599856188680989833328447331332876314941013949630465167108440903590758306183486225941687707465186606922417181308029414600422373991057368685900024703517336335632067488203759205166940436902532943592988536226133949647978828607563813665714565518362079156132776575876888716004126057263691979968967040093451486243345798636203164665855491870176245485313410642565299499974060347370977733837160324276853809173566789987985970641728505128834525795948160760755532117364037653732181967825989122389185921381823070164129921643613692614818005906515689593827590383553452943788274198127309966729804161974757714342743395537491767447847539880056063162778026077335510874056882508871694466196554616478910033302269231303742447442514809615132073506287470388897851899459062259113661107817299139587798612459129988357612570624244078306870422798170593048357723047768087513095878304157344274968314000847169124860259060913924484082723861655899149862628711034783542874004037571095176804572705690335814104346059919540667364839353543012566461019863349411855044876798012451655177464110201614986252570289462143804459824050905807142740100476645320140540861147994724639766313037437526592600658520653221117948317683471457852869662998461661723249413618290352439919820336483678426307124479966173093498959003140861013056050959670760306267763371964084521591058819112686593751878891485599015505162494943197242615203497971227382845485411449087743913775038126104792050094450001632267447512072646725321982185966831255645688662066946725246227884744583700194967259159979525366922789791670707352447465730195140498562122209317473379205966363258553003275520638975700667029667421716734411098751524530668840988136591555301114788512513724056727381112624389540940397638673671734778186641205157191186298088316157286118759890948831543643439704217130467183690617194750194340550870560854973751622298322773244926529720894872870321277501970563770361392313934773787311597418658386589688003418966656510358737370216631457020103039985737527864371557687910998749938555970564743813997484888913677414351385260470686047810722828033026471408033709809189085310541949467953712877143955601042853513609070401218730099848244587490011560273253026545418901851969781919266793618243841910070307161102917747563283867145950829040192200993035131123076386782773038561128496562358400657065911379658145489990073487926388536790164507170500516316261949901374554392954934769990076232847581324198175012739281510202310541072391978872261046872920864733074767281368457254892807672726215964949848135797868299503017294393292199583270506882260744020313341739516117885799438165330602376194898142179426237248150432369967951289758340513396304246201235418998855267353530026816353901574813028639323271786630417177812982385781374618001387163817549011118307780367896510385251620453828994867945984823776402739844627849241315657909973965264532550803456586813717141887762208898167399876323183327632906184337302888692485780062454210933129509715291899795360786662804145051808179874567041625694666730485816451529975782038009295184516886084374609761135934935911179225228179882474531672349597827507018374126176859578365838438582561164783699001649511195271691498030033682849425682040990206884648327417749008043219796189199895810437088804802543162081410945250885252004406551467624924912709163966766791013121268025361938749011773948788203482693137244582325258904180185208445458145518061510290276641375664454763966900697860213664190999455591700752586388690568720004747682893811739836100509169267079407008861773865963450894101892810546000798020674373246237157492176886270430292533535835358718796920197006269658729914831221317952115749436407257113435062497489866728556188487883729661512064569871535898453761308603305274825469643571729528769296227882602223904049955843435062707696590280643962086069780530065424293814745277926216217862318091455197136308346311783617828043751511003821823352234449745137404828780749917950327149757647891697694638016027587576440218130705028691812368453144633505514346837452572758431815498372962628008513090144953782179436053640104677451214018962879116374096053340022859901405461922115225520170000752582261620531281348666395918138059584655015517417808920058602483826188505856190671623388599247792378968139479025751933081889873035370633748353677160532832423745019759529273383791726309734333671765632068521432944964140637305094685059598292061141270621931861760966226969969157399699313015102351366756068786225100951611476057898141729884439162230459853176108701409318300532923568830257417701426045075307202151124692173760840634504012511152579757935052450600239050497239242181196796729223608902266325889015500755176972315748360592409849563971808926804881465793786292452377345185881058687959385369560736883862585742918676246163829840124329309967418935945367804581018175367162009225233867905539855288176879943199503354046155483150726702767858608750356682731291155674244251163073867744912585460600993074391312193806266399665749726420453540228320074708344712539399345325612692572507155909913588376118305314692977105787322396015249044550535729933669276320554303220705456802872375323564952657760114989115383861001234376312198302876595438240023794629122707447730375409825066915937186685474210564200266864603515734899437503163320078184388920716354312897357431129905256299744274241801622311853083082690413669704439839230630758345228996208231423792148864561450752519049391870463756944687110709325266581189082239766048310070569621931612250808223212539416424315058625074306719227884569210368029830039969089525880019796550013630134126831436039128973723084554491176409870186256155540981673639553283619957971246912425235839941497890154057251058390330663378213179340229268657836513290630753962320702244719079790989747615671070525434762541624492744621234625798262809304346828680083740999592497919009302633477211581293187611631682911453574681809946208888387872467269446156921727303302358331486405724307535483297449805709738395184993758704846599361250045698108257209155806966835052750481232733861850775939830255752830931545906447323971224439592835377956054523802945262768612173655693026693798348086585141086159280456984768148198942974033641686199704245530179113247520194733024059962028322498584576210546530766550662782366373438794646275832709482628757137670294052207023110282193033309767173535358015428912894251772786769301190093263063773406447002562335142402959514159963968928888907051007322575313154498827598174481949439699459356464138869416097228402428235958518608676298247566141602473693198078818079862193568373431375475238281561734933890730812293419344552629463450923667687827297239231011155769143115791893368001592347366854991287100522302939518978070672273791371737794703134554653477180188770105933578612300400980522952473532868644215160672702511927881985665951373117391416352279585718670022888476064954678594239818655111226317056029371258901456882462428142653757285472107863104058362181366568971021546555557058755840781808485990783803945982312256798151990938648152512151214544558447540126280783263542354235341207922886347706756642041268151882888199239449476792039348165999211941726980427436876831596151438865534119840060281064219367189203401593988535235861651937638041069815464133232542347131663864586386905756745475376496010512972377747107453098808096917362574735378568904462738727389114110576308664274576522747119367183884994370463921405365664292249455127660674742452343769692083279025937740167186457642764063161811769957030212929258516298224940329612972191139634037515942568271282854754957067047348322598026804495677537215380986222542395943585577399642677557803852143500856001365677078487346019469283756288638190526869299699608818889223212953845918855863240999058732906380181776741645037937622260811226922199003725774749102785770249338685373112039486699949755065767466091949867619400120672728114672292557039204465811171136024123329839774884048663829883964123893636110494604490754352081535600433341314439921260474647273269178811432336141548850620995026323160398881362924288911493714114784966448061206308565811607287992974156270041388908651952005294814609368960960077513652460724071046712546092422102637083015850596696419119934268626374686519589451542990659738951987195825307959590314870517850293343572329037240624341959975485765619972553151618867021155194941065897005875078104670576257796548956631268488720973789623212693355999340545151816076579111906395306519067134866169570814514853941726089737088990307496329907255708598165316972121855607798051709503328396111153897207540423404640000542865484778473695758097818326911036098241406226309869031666643620157602326126536425351307750554842257470586741552236116633605131199345246088320974095904363415282758692298618516810480943535117864856862674858982773689478646458801191750444624953172716574490575652295184032641171775540892922419144057134275249779026658607321998616855726500514373411869994637344837273991607351597026897806165581965852033108878771252186424065132529725673148305786324380810949432540806829524418487280652845281753459358677490093149124834315056103410439435543852750329234153235468824471970274757507583172962176406112609136833761503278416683979504355509349387848272599939162132460322659341197318922984466463925114562369152599257208781523661920835653929954131331298178685021602442260029854509437448585603149592686153995911330353584035956928081812814609363237324810553021876428795554623648842947697150470469495245626843948522354952081427196329089124833643649114968530608563674340654813561279618013381920208884587097011312893400306674404447774131232814767196153474529428048615087247295262654194198094326825882605866000367074328506703226978844699071939661339193846780865179938666699923201690389806477453632430859067934155453594027419434429633126056798625568231714779939794806368719386283704924887852163802418340475922433492966659189445870431339635311437148695121429944445356257836496651145312114236370058076864603507981481301835464750857694021231469484756024604194214435618349068569189677426382464114637066269583552849973040807206329183292452928237054941167946231916436254231399021902757637895156461805392865686274767624507932772901912076312906641439635929056270552136912273794115245991398560426698445598842131550742503382088497651852491635700083672958140819639807625109489517199483089501532157555922978546672641735150935921978676290013357862435135144370552317379173791268875461960600385982418458347479643851558954016482677823042529760461609474138642587475544729358844028695126310682811002358765508810763489924739121854141681838438981747994195629173275940544524857975064301979498623645486219623515339419530332382219801115988267971610154880463700005845186681131219893802984016994892978612273345303626218796602807099183332579366546291771994249655910989730871739769993777805169868051278681227966542153733664320249280228512359750131061389933404411657450127366317342902489184067305933100239764139805239880343293237162291918799715384609469885483576993561857766659695471817811547160653254480910571996834194835376787895769744747954059405326839099213914495593037978295768481223764187153179500320878310004185052507589272786140258975478036921502045457983920060760600397204803639404110632663754289907792206618347197515804300769039566486332861617584779990426629623700399794487519243959228817110788951031279996737537130375660611457277480631527171322499427453459637034123463186683860327680695843582261820909895236432309346362460065019640390919046492910202766757689612563750978182782638475984016819541937116773230960059480744130482659583995132919352658478855141912644650469533489982384305864321157493254725153670357798515974020783486956305191442465363452456465622350892929541381632600006466974285335728710587458137795994673431333510002070365110997676060926695598467002978439971761267652268362466273014490946791861808205974263223666393254520692978420120584169817890469943324162999385260307888599497169669323661021850029712351325685975639941613184614843420049053057330418619906262618162499908185182341698474636432416122389967192321189392943387875723567533687087126464704545619006242753551676081566595307357898087628579245997891294868561547038958827218510870871166898312394310330436117800414941903070151721185847479855432137925264512658895709068729958981901710897466314818809474149516363597975766372793062220418110504888662769828717529034686284345765446738234896223800680511975131100701640371841187241040547728186942111633558238454389492473660524095117672244324441013232064386521759908021205582191654469583704513833697356216822664162782185588914259954379313569096198860866054406996320832688871864601956327172956029484511145077394461564166898652991037808648421361502561972858892169912538389708684564329162030157310633349843594246192905865684820061021574969929249221453188792182850039061008093014451340741782774596454923768896088034811449418470496518980148539356954272546928982016130990082895086823651115972429736331957242841018536159346869230049432719683124793020679240919193666800185908650797202080630888279968982166585786656817651455694014331941574252991770912849341551194135505959419369803501570924714311284935916519591253274386438211914210485792844618455169218233223406610589472634739754302565397362135782415417580233139238331993785945111082310763310092914358952351659433149594180393903784531846792974640683453294008441855790485227891974767243988456939089624993374347910508889143816461127915975958398609464052481752406669868753752328823439909843121425732773447051319971515059684001888495314425809976288424042481716380651174939233069555751182050501785370368725181292483888444446495814899799191737192508082926108038412930347337094808320782777513989934479162201358029849067165052055743593103949122188189057156047693954743544379536525943926507228963549112409017471691267775870016435560418125724094087742243481727685161014900594056586377317977937063884366209948950708507492205294009181321627582937714941252022032713172930461475752703201642913844615015057285842283430449735556926431491700769479425971041403957253740793872742696978688716682875996762491045359427152738053975294167704273070305013777789000056205579446421162199874648334868867774230253368506729364948943336221279163830001355441410627796534011274625251187591312578110590149219358094459147363861759896786610808529348460027386350809620597849313581532286291751543188249268537574051807667362597752847192580514319511507230834045735991013301893285591719270444920842148763637983050458156889845129198700375041182856280938221747423621040485095246267563935741824740748268246939634343136584845117795430389677819990299327199948432546487219966380390005596978087225272779132685579761555087683222005600761321663599886336363215949967101818638456644889453971450533780952664018063382404090362342086646192131482669163018500806098812073790834322124743230265205494821987770310635115055509645493001248586290553097991704283141376123776488153046771076511826917175410871785751992988661024018011078076410908569049127009411932047203904368388137281753550904001876121400380082358775539526541451990149131386122300647448136442117843572145534697161328123517005400147372306577765740942423638722887011407064329282556957962654953846417462670896091529028301744630125417831008587640804134325614360446524038285553394664650817102965568398047781239079542394788817978192223934556902046696246710370689178799929175355447835644625618181985044599109909686688685577370845484781727708050750841388855565138256313286320558420424719785734989706560111238263109998394632284946958385366806396927011241297657864199447314177820209645844591991057403126850080481237566841052271606956702810589759275953772540986604514976519705517828075059830179467187576713322617739279768060191499300717136357570406466267324120125279653920455439963447530724774727496662706169721021771573637039844346098358407028826998665145665658531171277680951683315955971477561858917541072868659803347593149885879830144788627383595320861157865543863528936173106599434838180134661961469600742197884521394564703021047209752588830818546866528271966143424821946712239879755565023819256443059441878047147639380332605226385531421346039605552160989036554159918876813525380007667344725551864890383675063505809375332056447289019560550245196956174831539658345055304169844646335762426946576117374432919172709524122734027615035923044968579735645326829455938596363698323248079262286746869746178238932034991047131329977950982405381852177406854434313538736386016686548686148057562477405254091963227117986856475586145457572555809983320840675905225098328946364518346859641923430937128867790679066685605473609059577583245330274886780397258808536764706935953241196492525046887200399337840585898945766169310464960953723922786175270993442456585273816574564969445565307832393140052497530227787724701776786699150708889744141960993314275502765223500419665959032756481495518054126091501492806064445929175828992103609139558287867205906162945932959474325592018584604966252054075734827556292682865188119200310187753416415077823082081862063117966456807961050651784994048349883511381874397295683179040421473917385355816803793311415246131774861236165429527489674738937642715446523346691011946371099393049644834720562424243040905611427293583393390754835697212847071545584349046105590412961719310635941870801919151724103570468296777047461729199166654880078457250399845722813675715189028533140247495937740737618098273843041600024797510115848443438165116751403471272603719291626183624983397568810237665085444071292019753371501397554305421249721323928042154701563838559521853150580953822948118672832309925243962591421232290573055976737302240674697536479803011585869530871998524177958473323882783031355008629110392713955315664782949361518304532986396359343083854173480531282072234844144864784897824403924454757403699373307150862443065513188861117211115403653667867273842397681408112384441446977391515017319323277383216542699064474978936145761915431183564747782733954274674488654883446202342024533523207908990137054050970646794569320128837215322472160105862905783466303370349981199248181638279846571368518667707748914913378170933749402182788247942407402575846752770518530611269849188400059838762431273945992860344919847150029757705775533546308606032936791761566726024916699097546159240492271750113895565532599955215470120567113687893712801401374624658770241094320536141589092054175386945914086674733197409930877580182526400162586864013313489007035637898730725884377978768131346240361759270010173100976024470515836505483521443359135547430710173866787599697469162812866115568017653396116742579433569691986363169402539290372135862811512599062437372226091193097054803818736940699101847902256185056234179904613388539284533179191466360113175782319971618493142550544359829054947833980455703423870217982668501939857032103821844488017870566328688253025869135297608435805075528612341744838917190745333328812424800648340286078364862593918446372587247372936873095113335317124477708468730933314018066715823037358106726123589061693290243672865334778183521549808047676499366063743866214483508821448948853913894033499740034642505006521046260414546035000264485808755491030495920749839083338303281718263694664409546898127384006516708518450385854319034347635309846768613175444331543919006521544897360769882336707743893384038120982660743148192159019335214030828869692395741870076255304628113418485485808800554338930794148684960099897244272485618506892655745792706105845695404706697254471355663950881283723191262363274240191730107273858258459092732787054190761850323597037456319121814106563612876616961362226006696075096554866027083333199343375918117152592577891619138011735988452414298075471584359838907298777893672600390324734913125282033016966962595544751244097069855452841755359938515054085524865371385487116910841648778629099315957145319507403882896680078556507582269688990776624031301435788362402844417907455755554384471932858272448232765568450404926438711745317787291334084313568828474092750105079069747076867803847045888291252588347027947265348074676787327577420297155219088104174275651089198294911123835242451742077914035776134538463149878035070182533601789092694644636979231534978962479721047703876327928158996021088290160436464528000773121567406619184479747508853909766470714357266053932141348913004066525557901893474123669740299753131748672947726275450181460216902728649408202367477019061179039374572258834411867085068098608261339153772457559325705180899020312086512343616332702186006274236058076171372689254565673668602106956827028006070508950418468952291527795474348676736262238780484729877298273840745578092141222516716037663437072216420685737200009347328188639306513885577575510563114848407935772512819995220267665553826321555172583172765038963844503007142258584715856123155482693511321003060587033833989127449697872370911370744763940163676904253010397453165418441909312113397169165615198431816410170950262006473219068654254926660782734438675477502156309177739193760193180876453718847114317125167631384533165265162055654220339957457397791313968541744945029995626550951188290737036914035331640400091434720337169968726956207589872453587363760987776863044699800177478742164308093841172825436667438291020047591668798556638029889801103740295442336006415441248339103809351475825292520154626816169122009060814019108982871095020379547907057799216488844547991075435252137264017892473641392988635742351933825858314377651176574751222453302025232287158898840313270985979766914938449496181669256729918178050454061531888559465877435714290883330912390903074926706618764016322521051309518747043392517590046205618237853511148746248443701180786726020157410239128055575282370006317138764826460834275726159900651776839497972327374277027969928659580987135850988542678773949730558185515553019324567092733428303389478411488129118828313149529674600325484427365243964970453071213378899431911097883850131298583457528726909744696287241403338344673023344748631791908350587891595276187798771086083440160393857201548192728572486633581877394819719399201933771683876247370087972508591518320379311065681983902676807738862576350682881715325489537415184771919623024660327394865352521774825251369169064790435447990817788878711665483424501918008267297008890104599114243591035566406969546026238332047513510977606282749312291917975996611750495637018308731373690773456133981753506479276429782356005129359118409730247672551199995880501309012864737303280514941479941134842616102557851571850977610644821747980935533043394719105134256865619491115827127408413618197740553836058602989595218026030343238245719407774420959478511265818323075099712764840779266376082091359854605603790067151265950496759144514820398717145766556341715790234612456717187423693651781256661274199223971818286222517011679464691808959170967266717549552558050594460407048757288901325055150191458101086434903019236261772170307865651535888037839560608263902517790682193244295104009196466583736297853770090225795318246500788181730341560913463056684363617020717145241719969099789563289324653996982980751056015389845532207847592561207955950864128955698388219509176321783130800604976701524917203471275815428452014330138927834824440057703697582726242319101194453258400405580371941223135620515510924191869679785972467490068906909757353060737585889092107887307910538027661295175038975671278923133214591984284447022654274557420710344120191032043925294672290279012373240977314338618980192420228403551899359520276223052351098432847484698208701538818327353423809469024477976217395063921733876869751617704998136367862930683890391983768062496325053087102677088373021506566899886782637137827645871578108135534076832803070819795780387150697722761096899432517242685088879172093997842630225979871207738031973349827017517264987174131658449032950921581093081286802656985568981050405663018473566321697257997854871807412261545377035319756413217372268894082925014711975153341174178271374354489136638456671016064068645076218729877754245891154195858109050009951083916471470234694280597280689188315087374826109239468816960182758543959016636649724289792066665772738015873518771226810679528219620802237939930093596877075996861760166433361160000549092430551612677038963422543902386955887754775593643528819435632120955393043223040076741461590977762414800337709434188182656837800727377549559621473493212051380492501051959753854250793736027722036063540562040108010034147363326507683872255063453804679338080463215931435019858225591758498420901819522719153691832061413666890945325148034453507540787911629777792236445478014472789365323913166017665049382786112064029288886879089876800457475377127313317320393690236584975706924649402115290201467235763636221392565450968437931258297920657251653681276612391253241164009371438593901225521204137159322798574276720356379782889327626883084340256821766035587110891641837428657743450109937374511194303905042603197471299913615514448949249589136770236008657773807940922959933151505148542939723502890068685144891703015410689042693223857356951517295542117415878628699379134640380833402649347152474289634603174512452046351673242584278290492977374249764991600850972480070074373786060780795812469463597643900051626509598733706791886035389495995648438678539978139564738434376178949840956821712151646422995838338791204808792308219322302710759966044608594665339099941851744539500932185404176218304100746575442336545557466905950156269386750076054819442329748337794758588637263909574371510677610094403816862648436250945893782358291289704473385542365489182248448549546483262927715277849639243542864527104639325670678034710264692659688716805027321094310813565604503550330816174646414364063980136646827718253855879032399657043447270968808892304568223158239070341267936863364586192963559707144614183835942649017106929858432876876081001363903366572486025652641525059356541127286352104172586984836221247093095763665734807678512487610130891243349448128947149166067426420187462834524590335786691276099829554767277632770265274868662791835069403273924434017151879930506121297590719856086831695906182321911040749858484687388499969199777477303489476877919634942002743227059065780979339094242233422849637122880513466119884494259664673822562665785493602156996997499984389783305673430826362734606881402990519530797427637317579990548664559089944416167243741651023783023436458984822469530325221479423864016274696991609218191020548475788003607921115632177648569175290168375696349164943989856847528696160480147829545866070830244784780981008367970019207386439360409517991216812411163456818823919854706024016510142375014354411172922661497299053499221519290477119050895897227926237792111419686338071587464898494012149397809272716851272394161973005692076273805578599909753114478929271950557845235510661576041993481888548490816722090102454881334449095615072832838204248089638900209789305284340029925509148246827220363998948973420508131920748011184749887848757245280634584954102761019729896888987714618650785392759555793656223261164691557511189749181185211508462861025437467666034754794589083984360801644710722426046792301340516807222916124547837312645191556594190990400827780708904709347381314190829323154240167529507238722665070237577439595662223689879018737984480690777781177816380148658108196674343477274708504287919304656921722754142253807827631606633292015547221675441785792846833686052477352908783617706124401058426028331893590424629282987094839516137819575995090089354664181691718641593305117543385451052129152927426619872049799610665010832820327935395271064737758885637854649006979744204507029289422853586102178815196526306653362194851861962946838554423320191309011149495386696458362678665548044170347322550567264255200504283167719674042493843926366775048740300597851254177277742124597371379853324230217986056559467428690452800492858377956971876242337843248475310074193002268039570653760533347244912300896102987920196974437653756866842959517162931922900268036182415028849311018876606623305659659505263518423734351728715800080547604828932873819951242989260423116616475355383014456624619285461713758220750810779605098409217872708965362049483694804122318686153442462685627560065241749347435803441351707635076980594439893109995563553854419891070424767817254329522132748462478490160109777374326252439107574210486810648895071364069566248374338698666566241682046681807459724906561422713706832271586039015912696294961306418830799401729052599594337177425405792352932792527150130835207448521104356191214996602941471368813501258764074018616346388737695241706945475619903475680836337524891647188722124592263777885089290776988890156251090995720886533485545628636305478175752810811122112164281635208834926288361457383607170749524185001941659242235046627975704631156549458954133889544738719401763488333093778946136714734892167519181055804697957301790336162791974208713494707947833715392089180064139082968765672236638160278110186229979637771837644329334962457843893158598422219830981301628620569304205870647568745284894624236593660724581508315975299251344503002575471906080851378432081517223266266815105420368726735740316337436417403300181535620864201581420901963086964971194787094242690728934350931998616240127349435420493749324504151311539481261988144715868844826182981782446838251313851173397830672137562756508723917960051476354803895682505560863764834827889523057968780199332828082886368046408219404694652614359463332196859625433699669553750486262688698082305730432158971569884826514923244096099602509919861336735652673302232582554668065632172530194740387210352582525946052396609740665742550969240880587818132057743086617497089266067253859125003991122447447108129078385179771800857634072850380494136559999588736937908746890086745425557863537693303554777916233228514722183780576916866576004905217570000091691592112747812377871674097094098842625904697577827014688330355727358229473075715132251506073830545018398482291496998687620754801033680180157382262333763580470693136013887067692001241596048432704647844347465272678965210729951887551917499263328133076991884290956216422941769334223987776797086005249895748389441155199185480872093812962727807172407895582037637725631391100944631057210992353594029931791882638610566183270740341678738500161379951311443608729206164445105019586769593396456516465889200093351679308385465460917724572803161154749497145190392659447102094320754287526635576476521854302924765530531856947669199967378027626932838351484387231881181596367882390274991187999276523080326609697796417156657192113691162891806473024436617891182243818107361723798834504404375877717392051361391098620195105193082692784156224467439767291387752620733178657313146740668088655259217204152550234894775849988111907417954078873895878533756036853788707112075535898810520631814529777924147366837723344993289193677032430574264618774775378351114820365000515035758261868688420764788255560721384557864558544025120001752194696575133645267009672752515374052434030060540880854294368232242901521117434799475633426435347213771362142569553065526727528168417664946898471724206514281410438454634291206752120237193638342975377496306645802480534670004507245553837244306854491181906857927203332590228758355529348297051720345609208039553385339943633915183768469071454711499718027809404213114956727403316836277952184465055705399624232648110781236300382866296531261468442756571263131420595251777982496237108644285268914934136141070612719893691563396963432098410695491241881189849462283766338628707087752723372664702143844102790234288997541281189740403904330292336692660428162283962491150838168194888336571959331339944202432799468430568372736875141825329137650345056258852427028383213152410821146545710776983774029058337481395248764718939825154948867773027563792545393926160663287312083334353412507472342471577570708782306757071165153293232565836780899508215594960228757791047058484751371275679080673804553311925528425235816854477632898606487354335191248463402705040128639878457106535478934989635615681155023601347685202783938202190680241942175114356043351138904264485978312360431310613951062858575200264979950520426478136896341705886252815204869557284862352480032208709183817993390784739901040994019908881698355570463737510161260281525878376987046908268778165194210667035150551505562774565171793602010960921789166592865581767696285650585635019082781131016217865460086873608286597751955036320256756415906501645552825394862639979473244044262490336034745904914737557676718414280397129206647506607451187356698720636373288254682861554108695738069649750958585813107262733837967096175868741013871767842258440501161515765383605381419313940865655070105318225609142378610144928951788409796923693114052057710449475162167501336236075304799347843679843892743846250538567700700341549605440282524145537596990057616110367411116784898999853717887470105845801558353365463946096793523638221207436184627922428881505046815415869323305202943143521376751529373624428249402247507558360180537685283957549699489167728659735807594972687632243627085938380511385513475222847579417249137513350532561945772282357098696088456197084894197939467374034478310336707137027364923057016377492470558907286014334580630321597855166920168700885898643628600263704093628123856086412721393283884537378298809827279767685036882678923183213763428800634788933090537437455915356393883170837365850085474659469332176422821091249440981077668991338174321714944070990649563996149205478732781345663209887477495644591044997678938048132768624523336642407738844613562293835411104585221529325465135729781072649307521943064879349409525194399363504779859758606112180843924761327731875933314650955711742268632558415438316544834227178152445054895530575972957877555984734440101298567781771260191925798413262259219150886048864516402742431189910505938248384842947500370896087771670403203857495904800153801486986347293797081704303004168093261712534575055179434982808461919712316861183018401452002474025610003320327794994529811935436926767654348803660780491763593915671358009225168865604567683210906109155403629383747552934033324336287123605815894234819167022909099743694415312307020898125508056770572290306432681834729574749096645503852864730123104426791231022606812379542892390007327361046496718116090712556740259159443617282735070771732921170404875623841995202005629841284837618834673227288960854468178115511149771756800005160137155700624702789800164341376717948519119607089857750916477078741059726325624423265656392614861087307940537150407495597816934626371821667541352770415700417118532850391391159600865429420533577267923799673767516269830946672782946285195043396910545662939457156777047922950635182676019358866417308895661572620344433701027700225759926639589840640602705265819177610731728561397629942534060090182120434350240744651615764405762954195247613993463831565458583546065079265720656521714703662781656920888405913777410352388884845913101443747090678912082313960007870775480171039618749414778564540045801830063116808410984559747793042697337093893436924058544172468830130489786861092422474242832158941232944543453508659962604344849154488645779743162420873234813098219867359157170448444409152492094827600452343130415275142688399308921834886528717207205359818386094504131151126824117638318137042951521129459952541572510597235910993894121301323192114694832750489912808844854451434213444139023347473578481073713450166942351035573871275876468605580458973657919694925172794303394642794814522642935993272988623010406309792696067602628427499900722147820244632791793620083382244197518723075414105284846305972124762638542063760445237625869354970338262405710558344259543134539299533224143258979646165656931117481509836833676271341466274022574139595448402670305724601396286006423352223436850229732699564638664279870191917933063251462296259981542377194173457167733658620249869818153387482448325676856395682934178819790544845626960706177605568715711498405443138545737486131919668943726257773121383983989680976252541391117021967654908122479443812572513052398617667675193753421843836440249789330391752480983922456592876955098906711477772611570892962636190562591323425209366715783551283719557796872067017762121633380242286910268179545472207042841116627446699361677496440205522560629521480543284436897458444561443509876782297210392989500228864203269439372364358471931718342048249503878319825128631377326951519716286644543448373907471019553160732074290976791640766109629352072764787428191220401482245755781581645154734779565453770683972380830153509979005363527577338703525642192446874183569076019293202621121905708123385991992639576203929040013365684832903637669095810793129082867578870329430233050584356812552897653508613071424220459696599546605341071335870905309754411396583891658433755827810024733770719587632759146761498279905969570923371660650909935304375272715935743057006999441600709567966586291680876249657003545193975770640470378926658480747505157541198487355710193252777087662392205954122318312647180947747053142944677659381805392983791987911128869540799185128298915696652648836012769681962089490049040994882367636457438617456181310832929679251447915384777517152418444153547667777538386740048035137372290632055673354274005279241712690929819701947145267131031849843978460372727485632524988708489431959404012454405908061105883358921684654612527162783824525625476262738214730405632045143454372732013391488254459719102600888488619364474501437178664064207370536143006423034129610244884270891498904898347058044368337980515400494771216552408412979608261591097278612344409193884522882894304884889800979406224719579100849792595009812971756250638559446241036753933951046010449671843037431106168294348332663982125483458998439747922699367496045915092891802823179033560341188230572713173634218524761214829977769620279546968466324357693401525259246681732286141543302579296449780126795172431126138387611056507742896911598610632596832032531123815812577954109483877278313395648840709061292710849129904018069493778662724886302777270538768987579018775066117666794399897224733189511710331573575943958080555491200997548747224584079658009299676083760307882134338235748515623905974050495126553010590120859343847862633919060094610386700241364539191231835372178992747153333378626696529701913378317607118445192863584559299156275752062160609117409654718629138313400331364475412553572977380328303721642703376458341437101756453934994026294352709161769175225301824926367881597074396974247704561622917926772903995233854769273316427675163985177612439518770443861109810421557011624855621025213302424910788140454762181715996123560921592529777334185492280006053066579874746580713452264731516718369091628876230554544824517223392852123286949860166459264479301720081868565846612366563899527564361914708507327041108406120117962602498698934877419995132324605776816097079410870468403073127131459721089329550761562802514815625164311987051751444815262949357194722152139537144466485095480804624990238417863357344596279856470803451294675212411504903820610839380321911525766501945862740945080118879368840476345050088911914436708139956698050567897351568036047663816712207350699131857344186623342051067593754581834042209762809793267574057056836362158014251436999124013303779501899112940428683623876891235154686462042337564888870016516512669892539447264798486002891851866712060476319693675488951629993333255999613429190023415731910415624016651199816735644097369404880420406529455231054014109050331061894349139854058176165493169888716569545773551858210904970536070110007563840082062859412587173108886522268562591866807764732565570939314170191087343422948753952837416286283088923436607684305782231369586921770655299043604616007916053636111574246611040057971440471102873331354969200492571044461830812827187636982585506217394048083684165519604267308551737501608434561914676598596723522313149019237255358647703258954162343268820720514781871346000272239897633485274582241308454975549773510651187953787058415415760426282297438923648234880955508053954357656006041522977679829251442592735556725466561952832516210509585468545445508290635563377376469015214080168725749986552884753872108748676165853663526710073499508608388145088925938436678672920959131511460506297848451006264441956408647135645249929773771574413245271370276722766816084916396115842761042368032299359003865656212104229876658519648182298051753701870520464005709573902499474765650224592011893493651113780175643074914833046517893284822940734503941502529762961745555483807721783311564279714737297426700788601753556083668730382728620184405562811531582756751319028547164779653957169640063667610026349565383028700885777677400046397007741154677887697194445407304679518272860320431402947282492159780369564042568176595623541349996048598815523913112365470050824016474165773063872547105741760185984418016057429926706531648135759281301749788904909720596209317455195294339769920396621593333680461800617718510977165820540510440016918143686914193710060405302245650426351303845176013210632890882594101302190989863868243950164021611575139762260118426661675353345850679966407422872524901581367048444380651897195949266375743053488767552214114849263280726716304559146618341271368237443379029395439805480419187070304377940424902110730456072977580405779304366635457599753152330471324980511517581870745631404091547485346243746296428537716288116306682076261914076700395271025890740847701120778926619825638467996243923239423326835752582056680561689205831075276585531609366679753628422762507836526704815276620347898903941291652627816067872107041920511927314114867769333459277019769795162283904288327801264755601522858432440933036464848261199541797463138900186219141085941636282368039029149236606605694136044550026526301464382571302643674037710488436076334151667544572405327026415775483008565566872844966183519976577928856499427024681501938515381459500113662310355577687902858908042037737742531098741325698097808360472047987095420287463350697061975614736878415995602685184782853005921838441604700925092742081273623536067422482195960898492985371256829737513926823826526402357953223106074273612303791827799710025623683605155229408461676460575900049765339786720408045704249385446983623230702567060167464283021385167815104990853935624737921439154703498591379233847982270623883965463811397530349496088508689875848095343601914392131821827856421876367618605384669549529248420885351852577508457910410718815410584715748497329597536979111770592614606985933762373318761457476423576559799586539897368696103395798863851913152724944675677477314779719523587361583562733699133349892552493280847885726387972851873640582616986397656744761340490381597086062338226803524277319894839855296712715937538192313733444003910775372822278408548818454213682593858251250674184737466890532746305710032396550187711327377933399829117064903364059943851082115846249494309226492743028993011186888532891478363904618083469225288208502896909113204708848455931384650253834979210917979171229850392435200069228925995574624948224546016288487127117951176160030278758365188409815233056247968434419451041499631505845924174479710714219240958294427686550077941082941045233145913524112639440992425068391784207851225641906166314860407479187923185916645202629629594420947630613785438857503158244283930676958488430472019504719548470197205209294208684973857141460515003562916960901078449167645818182834057478286332945253537581854044826801801455216530685864946477170819074964287306120984227704306493359225888723425718185166167374092414687053675999327997377524918761265787758523295707240909695630102144969961592731042035984211832817617408047910639049218129046517578053358021318274672917284726761160529247367894183402282536265880570960210329946278457556814842589450281667392117085392441239370761177498757647558067395972639390518800497784062156583040543124149221809024372312838053303513354666318869402903575858017020625847252654351516501645252979145972649411398590709156564401076495604962881494455610256244802512523336043780890036902801225525771201149111681518902036000784125707510471871553328838295982211686309635579015255758442116389619787327497428523288886182121108356711683959585034731755133145542084064929109681814668143739579473480239222568015105557992394781272082966404152728444559136963779885714712195209927183327405730655992024901439900920929245033132734059175757588344077556329471098768358886239013222957066937327619292364074790600693686030460741157998049498738995497874989616597910910496043807626149718416361718246775785936434227310798664218345330463223501305691309084467257583001372288149794705869975656725608750129669432967713947933784793647492662282371629196461844581608201746194968688885772039749295323320423819348588288730565181912254902062444800923759644504844852142814233702311096320945558412697065066976029714826110232146155379679524955157323458242158845331556616089276081486098362043335705725952481877867414836762805959842461939977661999034284071438174122969188028189866415873744917418199328566085887504592424706932652271569909450125268125546725435014864687737672823229652051602301733227796145937834857592226412264042063620910039442722427488938615928796292810582970981046999662218486100906784685836989040862437211029615462500119001414512086973405253204597191610922386018178423664724904141592775363984199483869710312683683017286850084891394616798825230423896449339208263130212465883921271214444302175383058103838719746692859469956030601317317504840642724446984105960475509967033090637496232114477329796347314753483025465766650444025723778249551377712451993589206113425158742499277019325950173804344065454195052741262773026120185894217439960498325759230424379336522498130659708007710486061998893981112100423179360748746667540962602659414664849101389924338015794575694712834666468423524362690614523851532704186802286166954836305066600411461556609046921607863974717010524132125898163466622326157502086379472127272925165734259698915069448004760581636555350422083013823757429457771206847289497651000496938281260034807539489783745410208900151637872663035520541440432335543274421291674618616906466989661635254148169665949308278078306534940764602552803678199763474857646804333027271927221248586465343662600957568775939633591250431836851027611244852433857341581675543501911913522613521848087532516318487477795742232764965547555071306247031674336454138385291713652540803722292148038221245525557889509731709583783764456194120832921852263863112985702660849413236244035540378305161186167032383118715323404272431313184362230824746403822054358898239316312306234624295254838121937024865981923260823415436028808404835961482701477676502233094624989763535502771796896461560721270716367755123426061913695369556391727312121954676864586424254077876536769084082775241931960976005484103856446159263610034146656770483246221188109941394500663581385896403593893012441391444608611459550607914588476871922879603851570965546121423374396871257338775370093860829581148458846690352971493957877015806482308152996284577712651847989608225143441373774595328950246749488395372838601072499428302130110946988281799971217060168502424261731269749964899912489541966201197359073836281730077811145552729660427117581446955033968442001202932296297785128390519778898390074712053697948310916559295351817440390675133777357172867523680092191917432185375750984782935118522923602507871336462925589973105792883900003974707634002038632748660968157971862236260757375677715737311112931990393649545026635764861527332160523536406331216670525413746609845124703637267904458031022292169409371894303195351424291999347519669271672561837842418864774694014532029563959176827348653957962130596438453932793155033994829608671629161751296413951685420460236711742413791335042528956809317500612744404579342577970779715592503622094465822544782468229290749186588587731068661013810357162344072919820067682859093515567875464455286402950437394828042482562043435232603146029296812611230264284472592428421903973601772992086490797659987963142399266977018606368712813335304095228139495512306144827609269947821366158463248978596405512799924501212565263218094406641767483653369435782107976246765465614305401714547041328159240643712773096114571759153234507003791855252137372761697594301865308443163673151718826121289180242175712409491244825055204099661495936491593306842082154134067314282594435630176478639510236494688276235118594538273641695021034656284988716728234755205501810337391037795848006278095942868866546597719021407483387056298348209180194588442372423817303313141070909018402880745236544850762926184261805702589914798938313563328973752089851690076820265477026151271572695999696166018590332786310320036962612962514154700876564093313835646375515361260718108984752462171304708473732252483377391005987867758118744395455073151048194998140979635435974429620227050440832884704077675669046032446017951224151701175864101546206573394818170811071245554543728313192495937122847087616243432175798265489324715522307899431774340251173462870060484146032749184295778104790072766725630403509506327362722448331002622448134726774628454932175523830036188515966739784547454760325485544850677353567155605396200735168990361575432011650857455075387501059371514426935082024558453321987582077035560882757355505017069845765864599051637476808031103985122135204739264361003476219104220120978336926013042514450231307329825157428936852970314096113005868993072821150807793785100679628518367577624108249704015544517853969407695837132032978325482325831796964459538822053146857965459919344484130449441343775805411375152247338391291817325997496045413715868171327922452798579238617891420952096696737154634846103519189127305743416653694783018997757224479333690159721647533073339125609175051454186907586942074773448846437390258931889425679612783511512439825448068664663886579981286179868004611240492177250469243509377526376114327753950122322366567732602342026103109881874518286754926393586568508640365174939667496349743396255926891362143151388954861756787517555981631715745945619211488066157884924646004419876192330529296425498046006775642350882664347219885733249474511188204791313104440416411227416627479342600749882867923430190452918400965193898431343827011891529189385317033155170846966750161109082271563054246294112910140460638063594314257441163167173120874717268097476279294217327697849818755089020858916079828875326173776876464744683718817979708049629628581040819072909451365146681626957130978006049691259127458673911152755225467638255145814513513849285336946291172987008106353472392563028537108120623220473343292745814612651773544978078589865505905679962872993400022488253656304562571993090977712788707628753724365749588059320993642251803029380906421329875751942511516789085078688415813540293891818170132635508177506542314976128363044117747236723872605345157728081188116042187265528737662622011650796558717098109972447872932154272667190916383147604624471994690085357083814336838444335406440539864283726001073572416164738273952054395960683557103245829580098750825727682845883698144188402271638647872621843087709065494716826566142722532680856688287483780044210686566369339861802122798640361338942907709043515234312749375826460265432451914532613296899119282848738570433240754638936429460030444702314540803001005980462454542039080857047088683060738977072672398699293254392192212191732053746669252596277999367879980487277567744173683137950499495486161015038543879962909730807511306942701557031794535623343305487522459545299663954386033738442814984868788403745198202655699698637626737384428205643836093699535134503957603813308929949537081360463697998162208713736048245377499170631025431882290631284296801420971650814878213124033795626628660885814538650791510194038680396896471535301225108862815626244105087405175006918442937686706944174698629178296992054749861428609787443161398749815550096738184632498851276866737067471729654798306360409106363302108237721477547907435216658800699235371993072691612518738451542973020296260478719362297617992910424567521669136291883598131271352001869457960117647898232446015873999934431030442250435776564932244827500711142801194062947101212258255989127395330193304133891356005339813227137503868836307199621869541151824983697690066761042233659822021042073154993141891750614614871935379300726414013533801733994946818488581893371772264201152149883965657917460893860853735578217542081400260555115979879700279282269374972653949849530624736794174051367289625087384483082439617319784753352586968644798009042259824647710178831643506364275698439723139413002355636838901443102189575635316891411889425936485334032121515410507587318663336915068639241923223140181107674266098411534211253555356344576096418577473289060998429167400811126238861330055481986964389625659162015368310879076113025930614981540174445507033978044872161022135979173339339813331055666904417960764433456795257181319432460716428074560425777081483054040723085883491134419694586582763051370355222571961101688454548520005262376575944447978815724800150641336317370705344156034346336569065376130051913907610658616579566879608845131649030233619981620259759820228532036961177355737729816310883169619291847650765103910813753711438012018669370362751967579209966242852471903304092912571901108227626847314768128029468279801171053647621362921837482291198400005456586351005835156203466655577246193866583529737754785747600251602597614575483725878476981369809213093394532452987646140723563496965767339249636136725570500944598616526965324059872610111308943382554657125840313708374113793048233607140616558104975628907392287615036380315957305922618726399137182063898989544458271608466844894585482823621588179604268791967598028851884527269747737140008025919039676156571329545155410685922702148365476217855235197469827757280386710585697442065377822972423166360553120280035116744687280362293805560677967652114914518999046508067925872328260684365314323928216983597470094623029290197376061102467896318683878217483324234281458288859542608473497796140359484385314137064003949806046312701276874485563149055455408441885200629564718922041294224539728391665256129151392371835119022206162562830474296299389202283817130104365004743188533848410528237586304537743833233130872251970951123416509030587112066540276935841547700249440486973354340709890953528839955940148049656794224083012797510373257784953743066230999085548776866942110560911704790085539169922780556460244039884169174151007687365865879122138821619301704817147504256740933706259525904870921651446193953623331210199154371615413222946838148477155279754134486434593536539540853550684755026369578759127966261117929437093095024329404938216954305903997316515935685529965526286680437809332254969591308213921752786297342781413353837933864303661711039803832338791885431134019557065500866199127719164464045266628539436967654238845485252660055023951851825881542829530001507835976604694097856782600983440818102692571295683067911240818623532838145096367019712696289794984645745606199644351423507271277767395636120766845130571046295289187215910724551643712827107240043506632809721309515203600897566805633982103225232272380228436130390431229678767717604268014187684592125368932220671466052896431580079705500472400291100973609908073346558797625788879203219415997615460554868982115345805506057759427380200614590596919890014815005573237865392682392982818277192972378597475224432291879245365408911588471849266268823028694497188139972188592642420846129041863655745158890267726309817817454202309935072792995684923672409480464727660767224590680434517146920166917248481080509078516693868160267552430747395679093628852115730213174871279732184963414522722343259589323004602847808544997731969525461395025670428566249013337301488714579333294615921883014593674711451588300639444151872258168038993127972072087327115468666179852937863165013351662099750120750739460037855623861928311537035390864669743288093888401533205777789713041393206912177608755208862336509794131680773862021876596390982063943247011319206916437153219557807927296686584794278858262219614621192859348498870729880544509850693616631545896910703192403481706010063998466013188786801611391179513266553460108752862213010782402686784016109695646818547354437088653122797146671100121135322810153997262024593099654278875389195456314680956095840809517708460911931554188180800690477408422884421388100740677242244193912480550925120532714735773206487755778583217733503853658649839765686263924964788153989356784299174068858288776054642731144374315469225695025907690606222711136200145691567362757194666901861640894772335671883685044139054972594168763835522458664236346914245373122595687178952828954837652957450151963711393771721632621513074455490364839165362837262182628306380732791298466938680828043966761756341599534136144680666852212274410294997527110039684936527465451299115504206566737920262742740331738506407995925325426884470637168334213736039793594092929276240262065218756211392600471080435753152268428333393774702801538735798216466987736282737141554888093208130788435821003992305044747431986389705282878425849273970767944836102306047586325064031160599673993563501847697445141615963364241487960001083559109510253664650015586482162385705472655110597032830878687383248444264307195795524603162908201752334150703564124756590454611707635452707764223294897638381186849169223131977325759850895174987452508170483905946697968153137470299892895692052884963844238552607886827059760835381904439969360320024192105275630333954094721941961063480231955890805404487875274510344069885424074009209552726677467423824068532060306467579693347880653966687677945653315989601851935435587023770852548015935881827189496857926797265571989738747577392163502280790304892305111880303593341698387265672966961059922022250415046120234395745315593211583377062794902245791323667958928101858028298986456529334686299275188001370572689491757892366990127902432349747921134435395320424762253958589929133982696563896067444012605605980887832738840663613656412393117837621860764650590330606849723328591546376333979052816121993841351576658847763041196209864165668319006485132044293433352719672271074978373607735153174059980198794645041135692138324530553196889134234214982919441882710786414870483694376366812836409666767035212205102711625588679531926403198753463620687948947552928451714011719721328404515738253697446516348668792933054171991199347530779894989201340808735883207720470695240758932666063011664887201892609044593847055711196202567303823648848354666900849665984939403836465498387605743656945436080191932186541578864091024073410619051327390480728650132862769491739181947740863797969806452950636837354182708821074878060399109118834528358680634735884382593977973593310590389186633473585645119175096262728879001668229678151543923522330180638401475707172486079503719051112662480947390895083793109733953796895753135858487204258712186286761567625441196934378088145064300488843282778274019090288026002860795557397322017000450430500601214918460948645367087858260232251495100948525121127729551542119374741157541083012331928425176008707935023815217840048091149158251495689290275606844940910027326834737228766704698851089387740438979384474020630784919192050311841963363509991535087861213660833544857647086289274402831866706182680907463068584845284473016524596323976681135576750024401801445875733496021660509285983236909667869338680869448386791885837048907239770740461093841667284127327037492088673943387106404288968816100286801459745023778095606909417168063333135430706912182322604040299139648035719604857960083003434021799363901514255768520289997152067121052344973846891045652738710570333838802557090671028886437416984244112891015134344449144459120203970583693452989592365776075354166290437198880513463795793385909717988546863779666565119601886656044516086564608128075689032928222535951728531816118068712508125831620078275432400032103562360931855475197236160686753594976711821249667409305414843286719302853772478511500979072937692883239049559104174895786809135865015352994444353922895320713773827907405225076200817313742083125711015774963557575739932275127568837657886127005736894464915735578727480543452152452033179580913926443715432622934487221094927030508578279303264154553781148385944828337329946951964280447933597788823532087619818998929783252698143014142161790979151758102584963042840769981627622052075069678642237871458243109809800024104116590407150374297375570196619291579766180464525917734710474490273718041707043286971774630147357027618460138465131336360139542653836005363766656941146821869369976221167132833518095615841141714843645782309362770770030403243560384265733864043669293765319858781411361620543550787736564732697861327791741472577747895547016594627106033101008285283542562601330149582142493744927559543381184951936517188042949143928760058034562628135568061672407554872959777992956593203943398266535817865587316501961802433765495834146208651741176515181439121273099805257917174722304508635618503295269405674050275630864477068277354718700393218385814147053347899317067785330069077664591008666147754758605341069548435167775594879453109937760754686459459628093252827010224341439748135884124883142706943707821862072962046001445329535629662738951878777913334278542958247136410324841835706068886933173676765885172137314280740462108644799111067172462078067939640714616773292881230687559625842975891565220908173741675201270885103351777441685849226144924564986484129623446230751336090860418105329217386005802595396108139510763632735056452856238009931034908384719550154855959286440182894940147769268254129054561139465685693405900473418686856900150807601340990503336122750539802672645576610532828259784870898720832312011197870835440001537533958699302734024824754158277719188920995818901995991657673226775102723809048865638002411111556947161557983654618836127202888762439899131781050086816407720832794497372724144429003221288185283095178957041289576340300564375947282164690245128113588412152831550285310366198902070636604827783046260349115069581222198493006858383228254808411984087524318595072567761442402954845341459302045735140998326981513482682197534355508220518717606356285346295661896978414589382397455757269138901037488506732908417513887865333501420294199004996263465869636761204317822973040492770172161478705359376216731365433296711362143022984900417115570579079502752122893337988718575786999347313733640054363945396073402188957813339805130492272848641910596783255995858821971864488392355137034573881058944734313319483849048804205817881164283333818265728778818585086853128620794978537285307666023724533075200064689680153895219904166994427291204958530849772870435010482723149003747821463225976888648128801404289874730941189624347192380860623188344303286078397112040482082024738081434093423709162654714351659659999675416315817240169866844070956411850010864050255686532294563576077316934868306872518356059038524780710250950169250463486974830249381625707724623321815780194447953350478629900626714417213715122720379429940446227536821661468670769923302211929700539502516916150914725368751197801201159167726292069696336918223604363050171088445687926616835113894314117879593184636900108908563331679155034976841682281564131104564881479025844417147098706458515795211727436944126695157163301259547627811209999311859318049790252614200595656123951093201502498703212757343267891365203539840669974483216520652901594903471863423380705717708404832426077715777999935011036493549738314825082400556688821963939508036926433165125365990312694358232150024832870212800456353742189707504805009032633716967989519676130828122754668491137244476482449910118320389333639841195246494026482409833105981697507454476141722761477681508347286824477648337284735224911127810221157498323663077466487537409091606277538258492441357512822310286801941293453787123095672326838072681795158217998499997732905892525383548549666771355403542231266331856563139274647383678923211312281778685674815917833374798113198027064575546990848904285254788807542247072229265079505941281507665536277099200975293248775196224008853158530853826689968316290547781854869739512746300355087586949674315260005867101767195002686121554490395532169231315047153079824570021291627066499639726112087652176768407704715877883447173487837809034298984241036881381830721240418936606892439827677530039633055275091678011369678650500185772995174347095623870331319720148246179024878934556809417205384869198508774295482967718747689565124252999260910446109947187548302889191565273354722195065340058601764885560171685208749594282420132416132721683694269392025488299869122784516277059755397073438646674836741773063466881260917413196811534586788476335593526926030908023029816245695982560587517255285022942755412080694163348356058748564189433120671153765013843921029731115696479115136496170854939953714623650860062142038186896657082879879651359508062360424764016768072619256070544537198941456375161712684863273577068618116294905223821267297064202648785608702031826818499292315681711203438386708939678687668970242503124974735628979639950352902978724743527547778013492751723592517667464746290172972651049079658208211888901270634180703607694313573054665684196817441057341826677626652119979448529026527862081970661419735613624709029976351160554914146222716116801319088300706655674355154184884297051893105184116257615728684153305038342466963945897919887450026390758020175986646669287426383200604838664514450768621009216869904666431267681031985497219712516822464520846087580434980092573665479900164756707175581924309086655454994008532544443122902020408049994899681743171578182229249392059001436045484943617918247960218517962102777457183953545644472154247512644156983922370625737363533541366954874036056982843420551787277855214197098545581604449333249734619371826349564846699755552503778360746429689268008476840094521148885143068128330747436675687931757066369329532353183767372032175331131321616371197564877841771290204776128034983525473820805803145377035941454254442745948729041569205065093573841374656711446209645760010545969140180686019690252035544914114569868869710199241784168246013620832469894027062616726814136015124723209264600689454490405418725778652113155231846099376650980468053183088448043058741914662054637246886679241913736482142739915488715424227447870887302421951978379657490292595140554454413436550751941551410449540068157872780264740464230886019580779483096756529063038574411908268589668738019540652498458392933509002903315078213268588320155429421150897342585379188453217111810247058193360345093315043421552369660133284784696257869673000741098584940644655089218286595026982922033419287039929162649868501223977793207997492150383341305591436346482623572237897661536564189229622120926494045084743269641537768046973883008961707888862374719752394576948746160921282606311550760773370882718421474803660503493737650350536150038815745652163682739166005844393508140704782774204892943569005404215879561962355670421586229236787578117477555340361832672721778151753988158698793081173167520384048581425465488986652830268886092564168025476126724654317017427149414177018811323289371963998781174269176956231690182232690992067086763030839565538944580043123117979386730213885924599585225438102793931788807679554370013385029095751112649373587410149466106726148414829187540824764684591091755481754773360612501094628804939433766859049783534738502713372690950110966667011352085175127649181821899277049033189634575490885080848100883533048376725054981971663218219640309683698791651975004408614667517141519319429924793566343529409707332011293041256644626522553960286684497356154329613154044400256076888030295165226258760381380670226670165640974043798438534322608761983519814877656944961323026371239995720722344595059927910149344738826818832844225285950608619396652260274329203278430826383846600819727933306707247589952341758199811749457220211487355767304451308346806602564745197271949040763303977694856020621949040120550851152425980533543586419150557777017127695878315718282007428500252355832035607120314453276463119387903672572434307274602283840757825164744276141930853103942383073904136900574829961354459270812695643853116424289837799006191352421129630702313994558869973611905245561802990191085382012742637730811878175345308945827233804613308771234217720772056526455544093723804862751164241921696600550333242726700449317350697414013373919112570812220374119733532222169556273218382540148354818359152691349159411735693923575233428507522783215458280427861497410572931280632860303873404331610722565893931057952815235913842108574952984847051473344405665505691500682169310125891053425479828358139872065729634937842200584159904793147451516609447118679863704242861354396430819900960432611158676873725016508130060583938098568733535889350640917936595127116610416585436456752050962142295258761039904403269637852364703803908253957710217143652310156537318778896007320323154518013236805706147053391295541309312092980587652648491025814771878355975276963763314304052466697884860160621900327911646574887288628047282319265363959584155443355484930047498598643285444918438613750371011816731256850001189231314451920853110618952864848739724444877011793585579641045181193630777500508166266798737902841721626800275531291061870260091829102543560389189319335464750076627047291563318778669181412518882759318944158480415647407894831043587766025280598068763699629954844041305561303963426253024524232966466269657243831529288562050831353731841629564961449370699092884340895490097536613917000981952203732761341744069963729991543091461315704724693852966973372201187544035461342274081653531095617479308814726013351895612106675650365003416967707767376732036087535920541922430750420340753295644364830233527234818047645344387962087478141132601122253667405714845714873794617278729609597418755666148718660916449439598770147615433196002398750287555863023257603009301468820199389634017096310209355191727902188234437515074116687665021556077492289402701400004415150613262592236803940167514036275417970330918818045940050925173517593156201150403537536000474266933317961772288332310624791193320453638733994630320209368072143211678767885014977151838982002042705445325250626377001579206112515647913462637775588740642900980554191405912046952718904679307668811563475328792117854035399787457917517662261506655166278646789977080434361226224873421011556079253406336751991909088533655742936859107201775162077495663814128031771335072549527592471966024103755201570955834873793097591148622997237969630705243628285657869311600635626284981017567638845675233441868569510884212095607359651055360740606012151416069592493569729043699011816764371126221866951289595944983232561000378828251395420050895721123989979256646847388946314389770046663019635424519329395435077136756179564030303894091398470853656909424496259811552148193558700633049844692119963135894711914436383725931352230609104902678739314987712632669396347052283298255030182750172405275642506116427381976430551721487597285813568376541134447205616154743721845106294781139202489871995798451273487822423624399572438091683793012603789159225840318388023649901710774096820772441449753763918191010715150419163527337856717741942541322944590931564026937083520182141699348153278340374718664266472872577948299781851244669093670719460323033618268992279736098531849562386031005219575023972864106412077774445843954287495071255591496637061881232627689627148332611561705315269759693217804304970263179528814729546852557507370112464485378134154733042174118201046296169734278881483800748949277218084533536036578855070210238772086253811729175534317943330154286115602534870252740395721778803146466109054047214462464181961117467253064997752862680321786446190982686272947824540769667123932077935331841813161585195329643602184995725567383156875790498973585552032706920297538216610521746030507563138091854492877004551386481249888860001580034782164093694686389730610628967952837092271793699690972645964685629020228234696443290195939099466876263694297357905562750650595065759673578328144759880683701104175717781627630437612714687031559854559900601766455884624768837264228970846187601968150714779801582722806474601863494076443965253665145025555983811482140802656549460611522943259052963751239302317108711858488865375686131268957723171622891728986176842901342155200920813680071664066475906458351657118021717728751876118779720978670743641434181069195185965772199468394543938998548604662382158098227459212179086142432248846042306007808492725555893446963174741367715219698706067716776434289256294294496870564961151022136472297522001321462658809045941512739264527732515686109922844430210017362619911980117092289320288760987106433712671170862688038215987245129551576346605854937330122694276323934878054547451430451367687668887933897282104504299408793762105097569602129371635352783047580814935970141044227444889820379804019940208058534449727218485800727863118757783079687073723909605358985131899494802281413206891815245498481579518945277035049740407413090743381012740920462603590240705148444109059774785949632156465064345655711103371951030623319861366256178019784029554464461300749186133417571447447526573687221167277027153248305319843822846911172128711844619093827480147620993761311374477587027032309891899819215388909134447967038144409991036256706134386923787413126819905226285281486944808755066851790423698029986944523191679124264530533542702292979763370882151249844574303218449600724020631502324806353029431409408621973387081074321033802871410328178219425011508075744865051449599551373679340362416209539551083676509406490312535079773154786592834173749366960391700226153758109085311802166932601681958087133648242519486874750368036062086177950523191749190055523550322871125058230107128318283562560731004512740200569529944616482548324529704498356523820372482657246952681417911460583167797959112229550823885668107842117880070308443028921486443605641374884449964033307781163957837878059375682469799944382103070584909349059508159484922784697408179511494549534822605558151675843236209008591372447671915199084159026550184472101314635505462471348998953476101186398622869572897424653757911597386080671707946845060552379792709262934326258190072484842974978810425961259574684286293314301088910322379368327896606508033489377591721349582673943147757490406455203311741910068754574562654176103805045048710618501642176597082049372809569505219716045966196452373216786549173801147477669315905177634545586502475199597691394677871067446333231778179868060917670360470824755771762510178864831251963716344099228211293024125847165948746533794302535242063415924948088942176427337042576892419032771772281602741850822019437481908352435230688154652910492821671367117044616471826346206451972428370863553694828551364631497730915045589028348910484100840149693870432356262345179237354825367992045861510355677600612910370771512474105167689554532840285492082393683335585345660529947063519028996446352692527356696471261907218317175458622382193912502843100354219839711225781617342236849019001433229556640411077913913439497169666441795140005744334865739293944679646023658160378573463110261627657578340933511964926835217898249239012140410712052058817952654190399754974583430884679272713708338302487429544784297485634655977025326901655562137440755526660324058459715835586227665603622208906127749388727900734549282704282016182949520563462813794839533456151555231750317311145281533731129240643644125073538111791277297108724454675220024761565557613807303473008348027086118930120495698433596123644140577245920458767860945795611485236904436603199160832193919415767924585495413961234240429207538573930962729451549206349778182500787817430055984233650946009943612418016622697985303974390744778856290954156411440964776095070888143678106136557932531329420007270282584212511775997090589220911624771815605265065378612762641814022777042160297080386786952527369147322223960333725138948783333795446191205351046348004175470083318585120198594373679258152382240074170868659789806548447033061749654440308055044643132721623916713027614954865212982884679553906672269415147834310243677623062782270025281824709701759805622589961814957874224648289923672473063055720268695097638649129630886962962149288524955216172713799690220893011292345617883884119619264594154434801468887370272231629883803335292885187466276246008085470597111916400185509494571768647926295439516545297988077299466063140179644103514587431883189155673144766919545298445049280027354475818956370495030335404788329115112853328776554432841879715137922130109364580207650108783145220423415891079046659800573373217273510847369779420202312619088513237260933899638180971969991021646546115365060391126361755491550121988839429950782214206459416320780542511550053117927566917256397254611698637894194903348151013875460350884242601551312477631633479412233484549469266968931231592130136870212725607769580865334284190526992978116682447566574120796138341762657595121477837292499067291790456708106632654067663560188012901376123866483521580547006390260664625839198784241989465197537855031017491388424349634841385326954895994258963100437136073300595540398304904574112597213208683349718649245261333098931918958743399692005890471280953822056633442077722509163229631114837389364994231386207808791092412189259612473641584028548461606254480972875429486983070005528333255030067688666767940513107936925960577493493646843071293876510544208156708515559874614081394051570273380537390091517597357750289270477119377916771682679107381899351721200688436214367528758316985211063650018328237459291082616413805786217847299902875465708694007158834761927547324113914269322446378589334714242073400004073002917851082932053381032068326301466502522433188897771498086818488705008961968832858820186509385421871335921867506801666578773464373060320309306240464032194387015290299224674057308835474971961014455186824768017906002137879424493688830533608825296082841214698550792714476459674299497923460314608266190804210019618998046721636313755934515632023565425924758695071872106059566137264879384244350528893928231100023014593217674258167574582388216398794983802970636598437097284981356272198342519795057424140373917371326356497426826659343891502335171133250426318899969232116960138915643932508906062687402886402291244401806964560965034657936714070520840637969257346962849307566124461730846408272495541063740875820613310819337356159191634179105416785439924255305113640741585346637674032517375677854034997416826919006988654136818555712706588703570450776959658540027109683411971572622312238005060485262989689891371029976409693928327078352994069634267459881789393969020362757810460613620291337015854966944733716482156647248138265573234295054830724405097326279069838433199304577361360254543321239444579318678164465902551786754274631047704663297996949734563599575115831446638213245866922414125623771007363387858997325842445356693655684122124932383961328260259941738169565902342372720274741946302495996129117207484830331072575332104947557712734464359987405950978950359314603855390921145465967715468955510591484071289158523256233039733114799811539338337148954934334542263466419049979874182386998140098832716896296949752885791479548600051613847493923776391205303423341360969732757811958621401721011247832658177110878244168728574935669912243193724799065552102524569794548603012875162682398919568183368751766672815577241669531351971677786221600670888044411591593258031458037675715891311112108044386713065481942075888936360195754019895653706283150284176627976526915037192658417096622795825206590879722525692226348726369513936119115539477152888001847268808819633495394472600318173524701501219930200596278297049818996035083297592625161257722994110131309132125084927734584781508673169694007789707629616327780361775447655741010449972040895680203288853595133026085587161533986211308056755978122001292628628144796731374617803106624600557371115422864312042408551877487627294423478453594766290007280403051629023265098604854688675821497467054852440183245372790020498207873855577057000638352308176492987840050213000258915583275180404322174253855097868866129524082957816200758043146137018977326788899380398190427285991835101887664412399809925435991087038069982219381665626241873718873954320426932429874818828709233847966194444317791333140686849482698561613563455618947923229240028376311901328204223892302064431392718636428668711004905502157362591852180353602513567356817480620186732914098013657426476601628976536111024779509781079416072908658246972295703545536731972628771935315969369856522816945528879307598493637616606491026740387469398135333764603472756403740904434275242905235959343451770398561599400778576857622329792273081505085969192531335614997367566420773459547801554561245934590531038278100510712055484206084121711416150739934106503570648856900764918097201059069242149718356630216476626727543895462789230976415146030874303417349241714488431567423457539037841548876364635535413597774037045674140937636796334289493844135480960257369095214242805751439186428955143521460784246889465992917749400527157954367631997888963948822900004607953551180872000077046764305985210555084373158072530867872530065712292828959558010926835376718406094362234543810327341323118563987838602244840061331000344230506004168473773231304305698932072610428777120158161689217908255277955643128310031512614018280083167410277906263863818013343183232509295786904499762997481085606162369122015054334745979566896382713237956943423359352601128803187026045247032658159610754375045452956453440849081203871302748607027978635912687631595865684402358582490742208921267608587099386613594473241686721295008048636641265980729983534550399976928420662632841784085526023953944389764135245205756051950020920779021539960403469984215743102115408920124697112452350575616221842410877539469184296067801527413466950405816860832181208255072519140040327970535377470047994893045184939838521416536151432015925257047236731088401360806686455841354353501757823067513863161827198031760670666703795447128783232632704827931853919401015397817154975620166934752362809092294138232741236876472152272673764847033187552339559071678708234142780408970853211135848547470064797469552030445757683115511831811034523382849900390933626333358028849770478538725398972026314604281436254395443503897382820579798099374457466514326631547974211219455621205906805378896177560513220841831269341921125678130713466154438279742716802601582146141838137822503957713581305971304769198243063930355472673168760403982402504600110341585510784771354134811861914197030933919452228910742310284133916628814242023776573533168956093735517596720701197729937946482119795684703045364477799593420515293644061128699713551261934286582046050435865360592187454711064432580535412914634355616458683582625467961893989639737966639264408297900779932660491542460800324366831180770668669567017429451739445451057840421139904553122392889056174894353514786092922714116844673321686843917726042745687868537588089317945484129579286383853887041461895095334983318205743452651563226798264469307453833455300056329964279211926249285360690798680557396727136588883569957710350307127711325994922269420265935729176135112628832033688887847297921955407456450342977769849960240976113455226705622131235025447411692031243992661456115162962985084933957944661797047484176668540238475784366601402855467521679052905370853069678828707224755271732146138517028211263449319671727909754401748321722215279956264045902755897499029112468756878229327758246560678092920068794724738939428102598111418932718504041975454546540053680710752673083591061499467722163414349704415708117144955831550031910150061999612054473879642693546065594712977938018507859785689870910593891005427296949885454871739738011504052955977923182030581580192143028092668939859157146151986648399589945101661005996231627250223049683639327366117494382164986885744773409450859269754686088185393271643564798548801906776311379409108410680373507706591695546599336985081586616753933598730241062016717951670514092734064748256335948688384020544634249442206702938736858268328604670794746631177803153786318649241582668015749746681841730491247360120973232553858663679368693097112894981041873901067122865941334754897659073240423111338804156502150328188893777287788827310095743540106108417957054937896887842381984948914056158743235358914222815406481381854805463295540458739167720621328981228623322344991325709287873607033452205340642804122970920335334558893404393208320805990959575055943934652458048528016357640577324367236336955495699947879700958051196420800065583318921711703630536074998338452090768936331696304987414387958550886105413233872952639978609717506234317072289347445697010684329765790402802113897376075931307534546551948742381213817602846961899661064550604038160465836515846063527359051300604173352781883029405726886412862551484594895969924849931869765000979408823282570232705800629664949787636212582366460722522700275779394528187855213220266024822054588037278457249825996659795886428266339404938756642431765421831317310848350793765428718419173483688557585997762781067883098052205096306056116218046937820023311983960409423195149568805235329738207462293435649277259055519517392863629811223660397597416056560999105592431753931980634577515646734928226345139928029785218901145824861075395005578312059514918199895148007755488688711568649897191443429947818532515504625020465395067000721559101480266752650265178626658688912569933627975952622465733759523605932530567959824251320176677610071793051534418508836739018867365235124035592362632539680639044130162025567646310679680579348795816100876666706510566000085633009882245879953197162569471309610728682476673985728249795515564188752086861474693681874094981083879831558130400599715571864115803972261110319510708476804445679487470853129834228991087400084315317480098956865355564020494199812686901722874309469042085132109576000724853740824248466829424814453790526846337904271816153691171133624225595715217970267069689615215464618401653617317113188003609530014695926907025503584707756006862033521996481912453011254884888638250826946321424071389206273674163631598493827243057918938744009825998235573556753108980620290113428444260736664968259226253892839921944142093700164244855647269217539335291293176776738992030950197743681589645215706624359704777016464279903803012948572127326164301640414824911246173995836802524373697433681499708810196540470399509892532693471393203585623056148704693723714173486152939560377239193114618918003477638322805256025137659819758997815023014720652940404927842816888564335611800919079970429348138250109256997244812228805945972585496727065728718444577658189171127652884353971386785198745115838903656826878065812848862312686188944537161674557423356802426226958911976878701469421312270564599895642772150863727704589694164511798218617001817675787837507352153978242425788625263697273294118394001687841200729343409778138875775543563055545642061464429685266496420009055439182986836006206936804141992678739682166623163337337755081691229369514671926189395503122273598024369621999401670392075698130216992167117547509338016830488429990092420986524961437357576205016717856159657204323104260871111961525037894382922361339971033430263755313153793820614997153670753725256536554020731964788805474841266400216635754438657944516560736033278171878685496359289826455021104688944745155710440789788751859300532951556581988289780183037679994308641392751146970988516576601498715065648896622806645991987698911185004896200546099238231154910328809655809423883017508922135999048402384046649667671972586049144752208306269299633526729545517034685618023209850362876178699014137384173559415045153477933151407799159111393722029458513504223985949126755304355151996538038530314181167389575171578751398012629073693227425420639938000944236306984450624893876079825047402499865208710630838511481458800890648451071169156786618253500314077187230451174754220149774836178841039487070916535480674197662820357192434246650416152376629129641335860453201381829646970904314394608823957906667757139099496746460359724260672069311648870664200748505936860439551171864549286321994707926381001736126937505730854390740457034959429652686606209787736068240063024604076667861157754308759623662834149151103571961009189525866704133140917191323616916274071746289228539639585987004249491002864108663367949893876744689170977633345123351884521257942786939246595635234297531804029476618154476932741005159837870274662142891429434211808901758760586037625761770275832489606637812818808560684601037657018843095336855561497320165353604180103462637026017193008664620164728728125543896797445888629393034490831235162480394128257062310019965793719835730297484544204643952053938798587063370698919992031776218584805831263132427954009991584216194744590803948705279764074161883601311863683541139418375738203061100190604452984041715161694962314860509001130555294996426573482451837686187609836258438905429527038219025784363497856911167606857914061694335004685562426567570545939334544329648874182502501608237513325485292552576324652987326403479722198885009823731133655388291904919603955507582312964017454582438425985653660624248081251285781163934307379561096916020661807730500209174155160342615718656025279647515050337297675055045661172525648843041933833826302723993444304284676621181622499935914659191468340673326666675529534632550762524367084092828175956581208258131300800865296637656415314414443456374047058438417647946294909683881252414087047133967126732706346182927071817071151096667959458055739303997578084232699624027611115781368241066978641406844816978416445994619553960273696369288831018049210201204062758282824404792089807605500845647844260141210670719673010509841733021226422929910805184376468076050224662562632584647895340240686021951527588197143865250907959562271841049340415427280209114709055820188176797812202574224318076275525281019414787147239278573438467066390272517465910666504929778081258304328603832101855624466362854517973964512462882697685533294197561979359240237207381193251040211557303358617246802189157550472648602656025788146060821502979977253914764176428380158039450493509310600087536242027273647131310499998097432825251299099037636088651992001251139266135419910179788905649455153284476972934095277299011936252454159618111538003258602467528543255440777301535882408831616218065885762392679144546829107383226188256371843742472665818730110731053543758540774063081585010238982474540799394668987799088097513713833064696504288804725333444436290626146608071727931164455993961975380297254622416619010309172706545140784025031516687764002663927959816404729800950700952901826364848609237017931211879930654654504828432206903289477043764472664101551986018727793906766624757222240687313528657252322716925493141511436058071272789366025219591921631211922148598818366382674570082003412338454151436315540427158303455974170349056307498907930873655816577565119682901413673153039487174575268712881049352643874491711565593807918406875322326738634023029977117330254847928901390298945757652156883316504250376820729849731068557936688904543087590060474193651271423327641618022324127867652926229113704744278062175536871172358311114927244418072568394155057110260151626947130915426249582976394390104408818864825546219904984194827722489011305960562424171363455210100523658298572682922256097671384930238278362955906496510281088355168573266849243755120142110238212416460752611880295490693001368216335825887716250573288336082439903399220661556257646464096135087736756567923058457821363655377368379695902528946019098168609471367246773952651136477786438463886723632319971247030662923163738661149157182505727102876216974557980110145211010245889922425265668329251104180108500339506785570078217519807903547510084695191765568959461895139582984650683257728536494846166491627188329003524328322370833899784457587404919356654952379845744273381655484044776122214685713222209670172597770473034542411794075351851469958716419642789969182810075115790119939975738806364849947121076731963684623528021132156609282421916166068378733905081214467021420484671565086525474533526858539994444049920070499153364839642647327346604885140292875463864823147576809677931115558925814920488165768066304821802101091615265051267320660399742216109830378029110495510700162393509571351315358739075306444732933412056797161884528210002766109863360462768452958042316989857523740896149213254463776991368750795462107629745518949413493626059834867094240586347047456150815430524811404438049094021702230312170297172377823460137510520636099490398159009226831386968051791004383291234138423717453902030333853479935337920428006638921829872177339145977650026971530768863675270353342259417513699251087204374721912499155784990011238696869500867634174361901486096218743357500224058965905062677105358783564760665801196152038083443954676512660353780969508307943618580686025442256262356105801950766210086656704797171697226769715056011956876759441512512908865033787082252385496297284901613837819863272610781953873616256460038270245927184501696836504487334025850298778072708894663142288091660608094844492947916952088932879354937353385083940340238045310028507712487895930057967958926533862389115460668398267449425979602059821379876387405648150367440386752648928448061576222826991457525037729710858106507012110237156797195735650814837675890665720090718645649799831485611997953625278827273811297332797587222709742730626005771004488756594071146955566464375505642722691281275333376944703145207389394988051100874461745013842198484479233212728979792562983013652623726655147485463468624010165612907302972587369709066383295579801854305644210032568033354673881387895320294829699128201775999269558892872205705585513489247687693755227019074995482079368674047836350419429928138463661377231944045784595799475282186685137636999536100440022484512612594733340787886737377811888196430065494179953454906002522797771958785150343100477208258739680799653127774015326559979548990291613692144718916488898517201177667161153405783352449055159420981387892490096658215735377630592867751366870584889794366971593138777740207389294696256522173109879816446657615764584500185525208855502455521139242149469693895154954377933778004813147186412875678190127539179074222876069479294122609124832363032453478418458990259068492645538498854890755477001199467763578357256538654166324675826745630502815888890079779361732251509043800376481618506971951605643263824724156629946525640384663620197659169093876218533806825835377622407130167777977590888046881338012954793585524537073006476230960588783778837371849594486168779104583545315057654693327506370687657806807786645193088990341952500958579334985822522518205661383942093585099561062294787518671449507057082600157197730145444444652897894051107729408694736771088040105124791262488739390700910763552546455250039801030886464585044515929002908750457156298413075747421165072823815901526107589027901851363617265689036496581627632619956057207553781398276652176710751090138520733600348152434818859631581744199284583907926746570159965407953478379468683065681724075221911190842270348244027053492426830366878135964965185273147753570662040966390143141283633383103376743643584083634977551489915931298765342065239106086497228378657044661893211247838607184737913425849356262403151295419878493169589912545249457744392298610968365879481946360374236337384586692562449609923334025041067694558248547175396728663102253276578092615556158232859352955309274882503613366953340166869714198376292972427557610342875022318558050468938616103221594506866964019707431369202621499060056909376646575895804244822601893367808243959218768997621314778112116402028619788529788947404094104685093378562930642449236165878583427933174194294766679252035853273873857879898311015862238771741831223918363762384372810357932388618124462997964640486008119301880095357623102048580681744105389224497408576116414454838412451397658066529482557899440893410904391818130416373796820317521203573567306870817935751005084196369092158458446436114004854782367873302145426864842496328697180112277145591659607965183280827914632874878484162310372938086587769839354927060471786213854846468660835473755602985405870971715900984902511879521008980558650872253743440684808536043573115876075570766035849522280457687980763483795505410154074817387452084016364564232668493170956976502201743827708103445771671170989925008944070463428888029244639597739617972489768376325689279132138214748065353450675229501567549979704245788945536587214647357390015129546554591591532538070628787679421967846112984105001373126926091945145756061700564833453573375306491494474504584771451058686905114146622355724693397300979193643544286115570441545045625731958250110613333951676447333650582674964241926193720716390532229990150691521788781614691532487669213313510927088051803876426675207996334999015762346135577240396496752595206378614453439577868103027352068178597436788653637420181426844677914305336446254641827301592704897369760269998394595659621691979577023835045964647024267847948962207714558600263525611330220439212356552624967739431933723702658265902309928033812179821949174924114792302857422513269830402864069670797927643466509564499538735818210924565350497243999549325483578164631631355434236730275821730592478473711522563648063735732299281675775731947459880386505043672438962670803139095644060777354105768494171935438530266854258491134966227836842900907339936159165156342420490768365673778290621009607081934677961685931509779414430900324467328800918017414002340324127713455772299317493535853805467415638807712346891636504163938654441015945570929549763173838656875500472089336844724533503985593443311881077201856032937600465255313973288467372645408703829596322979977192378739686273589913184970028013576604447856855004658149732044053747938311164241733531313733601452117948268027537843570205675305924081962296331380995739295405758166167171187397812772861567931087420098101086497354315710359222489197218862097784749339450191532519572770981444887945851492578381948424774167361891604266299179455535771806726052289965074717091602934109968707482330345794365178415161370598411762588069597677082159498712668194142412613381227385810534484278690807709389577882919772934108642128056106242914274009992587212862050800278813124768184853461331455995093063381708854001120620456307910969162962929997794761120049861631737295741058788998786379853390711320049675347759966676010340665529911935666562632114132374488672494316939552410570304636546217403234928465149338312598556815104015972534082070059870100327522276146156706283087702871644035987415558837006795428098817411154849027008541354381296240907775798907518970470969595652506647343711735495695911639724511750740679014979315295320401795500565566501195936078166311271720796096992704697706316319418722938951678101627769429746797519943989923138683112961439845922738183361699099678100764620650178371185649216562935162498833314873150877681761006865779403312015649002549845875704958904141985996543604678682132427596485187297086745079564799531897016474935482652138440614392520534787638611624700445453521314912970170399917310955729165188934888782655632206663826397766403301579810362174294919865426531496187408199557930662918064075015099487593982497191431289177881438429150457866699275082698810876291491323923844913617694931238171338924276238946897588336089122987139065454890228099816746001841330043699416790923639275336669887735803979633811022362539852171691949602585921056581816395798718472037094952726433514492824612766853227920971796750763455452450462819721974550458008162125153471631505088072326859714518533746115657565128977993811223565106941813004104351714458684554901916562392340032833608545757287120819467055089023366173645546322738989427330975140110911652770224611478456933918166476012908679006888889439208765821260945240092343231709780894507617846971347591658641087543425917951073397806294592490646106968685126003575025578353673380010022851727776195278904752981686654829403161322172771666330929263006083126537745248067496312123531744480059101518380055859492329623300487503370194478324528101941056501449387646448233075733247652747213634193933565136723557763268796606999108684889968351203678661785423846060293480611744243650905608459843410922785749868349427853492431127102431116787378801625440604403817145581809321365008665428597245152134818430606713364871623189370290482471393379029013933635750458970260246642903540590291770116084775811470539967627470200301844736589863482660158863206503973791112783543550631422426733583233429201591810864912371133313903911330434191673451365437234255655513914896565391377055229630639401789777373627093429472431233125539850921411552450978102409693875182617704173965082931221774982090488311214236375796608935832802083803573989506697229409370322428374510336569564044473742579048584669051272068159028464619462816815488161995540989479824740857768004137834195265633359326181047093995518873732604330972249887541654708517913748254369998792189408085197990205442167001668380725332116552713708319707113846806454958533529826107525472889917443907015122271490454388502237617077818605303913808557257282317190963859997866625962012947138493045553368635914150594234515954329752610146269992242447084261028438319921286506685752283964664014564093904895034938912508334978118288642127143477995320379332840646157837730414830692566869996967944234569534491821539250808092528171609344940529405842560859432194907391682846445768037735135539347424275598232982259926097823187224511501665803788891029874260554648939878936428377632374032782464437861820641014605551707834133502973923522579271931705733799272501579913435110844756168878136135621969194614932349006832739785124851520371575592043977080566834499722120033746704437593813587894328083754295188070873365818884806062547927834080520043766953099351455693920185941504413095263375703638793022037696693899223068926148157121468120041780795632860675739981147339282917445780061722069820575080864804925467506443317557137323403478391860590348152414012277043763285526139479676986214779631915255106010599309553430172831594641750815703412623366218970951848682918085097062057439701688263935931678236602370689167040939611041630899167018252428771998870245735083252423917155883201725355648345557326345604303789505590512537553433516425081267373802383544260437919824765218472632492134390201908227683932437495563821465737674337790663337018936943927063129806647983008173212672156465629492490479092146590211431522373540909900130827740402540515997499352750535864435379016875361113299902750467914206854033894749341954014215242465239178559419673749664231333778086499981646808093554920394062648167838708573382890421184711493408022228824606713566923977202403880217534824280432296348339899111282523993187733189140686807600064860619592410252906326616624607681636048126266886069306864984343772178072162252658759235159266184779597403436438384552982421240616137260342255627036916598071941426854776110834019834995983802176464668863953835367548738933105313800183775371999753212256708739963734060612848412700458803785041792863061005732127644956133037759453492937639666631775914773245871300562157762878834005070920315523777311776197220168395715675889994108333555268231009779705634678583798540422793610365845621719290769954196357440343446700395884207704426000224471056850575694842855828940466246493847058476243769742776504482546114139760576398803769558758111602310842542138236357003707544819587610971549984074393210834213055501040303742654281042861583409776228127216902141055073596329143006217794170585049700680424813108493406756052361644765081402376342454908294467535526788924330358144461812268288108006733926646326870070461044499248494174057959094936572756574620843699763705528166046170607377011628617999737625390313780062836752085159923202275022216468012196731283355201879571528642693225936170336915800098454857347865898948671242793486176395368575680276188440333588730211438425787104455338956394064580315220274861629878401612583279998186932664884896384751690137516752677160662474221724624349547518863488225978037497469421420164446837849250083763051146632778383940828917118154865240293613283445600915097647546743834691064417868374093569593552881792606886309566865347522637768115013957052706032100365027444828995013398862634290606197251745454227462194994377407948856739136023705483073323450864419695041989838817937315436097237191100602453581496789141847412311743326609617126847965727950519675066449881040800855772946951993834127301410042463783567436638028295363074439699697350001941490845309876722607888821646437266780614833793155196683460790944482694076729690585674369310661095455956768547965652628662473119752560785981427839878820867459414954961487637115585432579478441334679578278515888324866113439778616742975792512662447550959505897382242620702950038840476796926866086175405888609824799452730665426750600260793642342099921070512207553358373039885329993228439987452765338687759080882891108262651545171348117885095980733172402343903073960094414610104565113185100710857267168305694815055403375673307350806715159068726786629175409817392916692779390234827895509249701814724088862693518666640402152220759258951169586037355554914608122645082103928646737906155555273077424727256553391833527140022167586705427171251443882703489908114908913259264582226308175489588134435620033231465870408574886792203744339104385255480066711117181561080772610277976363865319391818722174217229718760765482810222281126172003640201530906528879263744276301038348406430930466386684370854581181818496202958356380655217328759194800454328899692059016896716277239003625744813716756652623491749486740244830019895357376927487835379043201103816794098325979339441729411826167248676435943227205253467182141576471957452334671887140815459598952502092651658565567229132053752444279152889168888733288044943860546941854173630176174178295491201094842313727736330157509055681892949573251018507782896975500499434238816131832674017174361291097338416874333422714448559520965481379481017313951039478656992328846034609490960995609965790438253124526465614430417998649914900845382277117078167165650896796359148413683614536732020925162457925644560637349778207110063798169683221460468745779710066145806238462942695232279855523061993533394511726360010162938234260366046010085415812298322367110624129927739273442079859239316912262587880497918119455534109855671297583428310973373867997593081784823956640568107210160070584409729522044694102898210011602934634737294018485063274508340727177712124765654140216563144039504524791340423558412991064357235563561761667393726423078219942204508710867083363662274780743900351834068362377649918335232866807771609891546095694402831010597412441402182027936688711831532446541442209123678932177619092137218015260736523622358328952951111677220558636232283152659209194425418691496410300393107906286662463031434576071511095800811726990364495972531826915372655081573257071403033794107946754493044039959539074942729574939810889815539992860123026655629041462743987210814687475624818324688656174137466728870364382269689553568264961898283948511603396314162819392666191053860751202926446664815144764557645255826876202895911860227770732155241369248171360852481463699155778147178029457633337621195594770016345935238646846684224534945295571369003600690328321734881605186517866164977531475966892144543584838091489912678699715649619287974221470582037352857212364081367140424841544539809781963130155713475026780874659272602040906212968950243258329343412949598089638363608787637309110152187910730557847022381669526133948988501236986766983481948634921353386006126919203554197880399221746900631504333681234332194706340303186289639219666135325127072323997735777802773944744540591141065065537348960435174384307550390698694074198845735784593656350975421081776000851843986825464759495436899380865502485614490341532666073031274496242913066660475855446980718764128986813473879461973491726390469349192222743452305387187358525875670920587671261160432583546457964503006839081536296844270638201278621010334039625056784016397954874268679825115597219870867334953851562360539671104769840099299953045069386021677228790879480462099507455264021845398969581368158780653368479148012187821940760389568790263997820406881481927987069929393790955317419083833132376146282207987673174221511261075347001506454148270918612971456343595174570110054044764375855715919584004104874293603359278947031252637638776178290089979743548250133392865359373761314899418846523537555044166088396816059095506393587027358807710488559454360209058467479846496297715339227225462414447534681801425081972742273786228561181339059529666995842099535561641042295661505510235460262403655648194434680625474157457370304953700391085738654413255017853687788895396851677220338394194431265285076836742368387569848732400484362099420261749373547614527642884269477281531032391011509671480894657948248121957522998860478172516207515617811430036075150649095230410493590394013286418831638055255823035163863105554058269633276551842037057775503052842165490423194081750823211182908251339258899577564441933312851007940460368353074900471819376540829558964505681726979713331077630888169254097090730945252069272636760524446283545671219340633090011990790087935358670758641539273768868006616977124388527820916418696574704373950416071156990515873029605517235469789056322396005111945123502407015867273056841756911545776309347316611038722101046499495384799921575070174672936204209382600993549194454141841169317988772722620337192824344232715288256858687512621476053810005627861805405139290054306051536777430719793800371622760664778277713954792583023111869756397998739229368703630361308547797683841301268242556319126078635044338519439493922168415553744573392422974752144487827943372120848987431779472347826062703537213635044300972452311163173536241195320504037447348529274770019299124432125979640664340124477918306938690810934443164266039137481170132612759359290937144324433089969793146445678273360368586178781295932955654290115812996697327291958895607367487151171524592535065655486903797723926303909709957486183931055687590812919025306480236939172273983138987975556272387704108311728507481688286554229119790979525100664428330087530783511578214246582705496552602278851555754650188095970934060661001961568381962649328086603233300751180741025730105376654970889125621740743312020081691887174161740529750248467387459004874727025036100346893139514393405182303545951987543157677052794482507376967963418789031347496925067410163379441990578381275777283060356155613465068891590692459174604229874819015273581336801662037467040278830959204220242467346276164829672750425983029973297286980593572270567342054098019134449832319583987724877437195088387398489900007222495243765795916231580498252076997658903312367374236130265483554844037206292545540740728210225341024366196126940963549726794051048248274301718083326712057681880180189124739879724788336876761478474248413125420493306311458718699443970114239733014085945265830490213171817093744220951150660571452904035392116841574834024474694499485808513256025209893345752526836014438026224194811628714043879080299379893330303109391822159477115865162605712910780016260311142303755969254902808303946025558268436768529693716206680771824473785983440194388506617396230422461160218827900029279720408615874693098128625153181704288588580018975547269466437675873240643534145589905320296600772321931693377472961565646067605351084477998047607762225518754362824352012593139022468754002777734809248245467569809700691664840589928464608446946148328368184663439994957782804941973689962798648203521647036616604723445611726402321520401490869856613836499384119319067148364337042134294613264973266365439689558467197784408531154998459467475327694551912844726925257357680376905276872217828372459062844239969026017433555419773485541506090553233337057702914272308826740350485492620582399141630015299950672246264876339764586302470522698199948440362445731994111769079511237856191298645318744274134051963943635400386455016948010691945659460970742016357791352077397002075868512337575814947056427418022870560344316631352911721544327250894003922515873356775620038159539218944324698466687947417743133494980928917294050442321859813817358638787168656368779575264871228556493037080728378855027133158989350536677956623886824858095003996468343364811320490177657747617233073974893006162910414627875668086659889960089365644854286118672403478627052441658364240521428897894952755048196588768364518036285232227249783958604010816832479249350122626401868926149613174339185892507908539032609990003589961755818504575434464400930478774919737700637227475250991711116951105774804424060713117470034744208886190564633054457279225242940835164903150947186160813490878487813243070211383091521599041769438066489795875338584603137865999211654096854041617801189342391028331969569080079119635767765653548656083605090909016660481524917322822403009693908569310938085785429773151973128558774183849053957883463703440120563168245684606074284015167933379458212537578800768073367758946567420457099236081213558578421647795811274064028191598942858321065066830360603905540120892962225148634063449886233684289295024221948559093348427242623990950145832718175383166646715815380748922952752701997533000718870126095459604464493552888407110535382633764523430366664986823126801401828410547846208069760227160186731126240994828738870614816764333147998503477588920512494880115429009246211035176712737627065236286564703814735289919911089319928407169931346274388353598939919359931048384220308941396621416396684075730268797303351309098650313923044228819658248424244267856304324197611444255350466910129386941852883230790245241981500557241639412375387395821058745744634957232624290619592280952048051715312724862125604379024230867060001443249432178181317672916568969120939965712737562694166159540101912760730091862936261139629332377129591942884251282446454152643600564966966403415443455554132745743705659864614820949366359785347895332362817663330305346005464219938172118528611530827803113678700013707739549996939261061120916967685463179009369501394577242176474494932547243607395558408807110988241701878700339205663509551665149014904544090430763068205681847977926726995547921430762745760337828871235134907172282159653793155157811038960884749985301160416425126039492073079402024130582813016801269237369908975003536036995768125274311554969468277147801237437615648740695404386019960671658589130529005022249910906767879441164972921076688616517265913784431699213517654061675062318009681931791447125010070680177650337577139015449675520913252953970735463949224435818781076335288942029720306380451214510695468593867202533162807254298075201105645569950025172117681715991207277794388268370982087993551264230880121320384313350478219690868165147613157087742862827037077493297979567096953053854911693568874545727854646442756523456414060051463424837511250113176248215494122227357040255243892652160574590291603514056921765181418176671389354839613403878168060771341302074660856726822433450988729087048275055134039013048432029955732251872028606040033912795489259483012638050547753360401471784610512229565152936089023503535329828824445630738545049445768461297873665429494215089923109448865196647879577123903011149152240427628187167604897664641638979451786655329102819370646770115490644747978814526751186678651667981761554967496867978527648139855489159102834924002024481160422467061576904683595132138069357682852472372304946282481082153642546327196473129546661988667118609895467789801578219973176155404006470581782870848314861784128878816835598862972752613259626405474185953440097924922031105507161440701329680673734101430724502662644225248774925566181075257023695112403837865551111436715910235521651873314883776831528394083895487246236958878805373386357367634193891321655096088173367198642919850216237005710522823687558909396273703249374124339059319767006459039537764329665456816441874474630707150676054339928720585177186170741226176697407725847495805305465657364624651796742615495268777960225604630455185482914729030779857366486517629615032678986409327739617696164426618810264246073344385973321892097288901835398883860133741846354131633772972290078545481984227730436354531916562035550854728783604550383485019474382006723277088144730363141499530272487010032940237218265301323367946140286728051504375468899168802221224205166561477589586053906070083415365299546158923202903195784707160292582642652844115395305927334992733889490350001596220517819728594182617165053777620853335034997379068529287652377337929666375942290590669742925519485780688571412021455840182236189456675165490972435296208654839524874210431123550336147191973685174666182148652093129040738689811498704239972208366170340667535462156506735313305285452324667995017477598249986747839380896180986182283360836761074874651439288624284488208112296490002181089649523677440211933281197354232908701258473554570594742251587215817353166123924253511773191204785892668729096873437984304882806014190322958588019978126216018250394592778357167161737533825174263242942045618050587606511855757556509603989422743858130340536073775472723333514206066978898624605775284223466708845148448626853851379487306632853881811909780131461274618522082045116879552711567536600922863723549518480469783137542729612179531076332912616162814037438575676232328063632167857158958385860828783374157800090352727060186552673880253414687415186759366018626723287892946183232775883867230846212772494553486239177075862850797324608609907997422222784528766699431768485871754761789307237983071754754925190236836868344078446710236456628441562921305745398917807293716089433371110754759810739913072165493622654614747212758310814310050527756098686435169619382884487018577275523109088164873541899542889627993053446246184883533619616332138693559974607930863577144197706404155321590093845108864908827944628774246513463926517848183098878003836353823067158885332374944822704795299354139494834578409756053035137846074233262321142783712202852724284079512745382487427560054493601060954787861467878810432652337016442237183640781006868561118612526381365226669570724040813486946706976664484038871012490052152871391084155718597361491537097673635758739480890072218649354416098079691473707052417367305755891546524195450109863211190237483468578537262993272679075102824807580900576224338082064097090643432697737111326293250811340337418099720903173776893241810720336759849974373307958016235867460231326140856598492842955025066447739904968023742558143944071440570037758143101050969262436096634054377187627314861130320383860525163980889616889161207161269916996207846943040691808142603681066035786015480857811436059240135350172016189023955756143409974302190917595197350963659478141850791620059656668793374380321971088206704143487687266696802822361108940727369525267160307769036983699749236459585078586974928246401460174299459039295137687079523741545415571025913073970150805626798703178576612984696792199739598625001603849220901753074104623023596931916404555532879518635938232839908975992195744590297770557148528274461465935810751727665522198094908112338493385803240035549942049066549988634873481285823934821947750270987221864738796888105868713255180916081874763692480123151624766417741804469673399210171555034343927572706658847545033884504040531906916287200793762697030213486638752027155683129110866256859336463683325420506189333267541781796684935722241108500792683128342348032994655177748922949582752594560383349438347433641370789914372967745320875387997426551424888997311063138932930423309333602329623904868235053769224021911167545558650331427916040480350955934127578896118813444461213053261306826582467351418565484326773293045921743095145700795258784509965382254419343465952044391722710946321916120556315392913095447862741604046132553042586246076188698347196412082498915031276920435350793125487179429147796719339808856247370354383112597055305672717678901157855306927319193699911659632934377794541207384734681623441714262728178982783977157738257625051057616410166506940623637148095855905666243088038499157014130464101323247849569327773142997058355176346786732019986695817630618007527338129948966368344333283988276966389944182522683348642651839046390822233368043765389763822319038247321233599218720584457532827019585047225420254529583877041541392226015895320078624356836157031784680951539319748256789687731790726724666109199727025528610727086294046726440831710571814205346635215955422172630021398584127355454512740109827342648158235654938856074850191081486400344486961098906002514196895115370624917120064258129919680801023330745704318929689322313386967655818264849919766088732266524185198750798773166125265068101867671641758335604534185800241270439352915360441146262678817513155414227005006330478974181496054763655797549256227248853408424381841212304520832999206332860231295116471527984794156031047716628217644684639529221906556098618772247576173347959471934401073464648656279773729478960082113108980519315800831853484043523506422070794981692499891227573792505572293732848373796035041681614759570959299170275364392498783958944353533816903671604877934050393165322688421233190905521855549008650301727009407502107128855790287270857653090804789582942966524298035770576812542526864302393750402178106626737590583622480661413773323182111522104852852632974784137355092828832353250964762796144970226795440946877502721507607752974905748660259853351774668789059150252070900743506083786876673435754667277358572677378979642356348269719502422028587329351013067301971974469751078752904965500223337292934464194615997950531646870644776207447479430067735051149768730568309218670103715182978507543889425144374858697873381559151744832551532090246106506039396012222809368956159197201041331757604183314728605858391955836382603656851405648846574840264215755494134026962241118017322215001716750628302406403868412044310700616783766650355597595793257604555402235822537699552756841166814655816659045628959669078456143136403533706693630532982143839765716674593131428916870234460525336635373753641174589586312635131134941483527067463445206558043580015190387087656593738873557790017195553649653053648367933927507727253765552228635462455146031059648371655654562542833569860872892244453379516247697014134813228014492430248919662780231365280074394168101418177142416686295844111514325522062622050649477359041472086402273007600864638581857529504561865157624889301449478040823311910298806479931566764484411797356103515809679311810658855430621350047499101218188979438679909172105526822741232275220532244176645935617048882097387551126391447567757045165317068419606329262083634130944371390031653529528749010442750522662228741492968440342736565294948703991262029457771261657262449691858911883341831007791821535104982231106105414062117481171077999683918592295130593033365721143377692592385535958741723535416281163104667024651860026863817144660832049309362710099304879685556596860630904883522417133526254176657435142802245809966757343131322916844411636653930651640660004591996350456424826052155530456412276199069412210045277218546119718830317334423627660755102459088661311890301000261246374236844967671752350727149242278661727493983481824514114013464585610897848046022320067831496318767306941930882965947598786538475683437536879703375372436745779582485427869917772356609067680613375425668696646782149416202873615968741570626230029654457744262861501766251459196239278000579483221571178322417416093487176641261772178253251955899907735169386533279761211827922541948208838135465305199502439235479380431430735063788027133435527849829468083885611381111524785635730130612542446206229364686123469385147285026096156167290093626253637803366129435429907656185007148679238957519150001768421198830408921463062891291396247751208105233084314640712932605558641342335734937629185202539063801434460992629664924314285193561084504483283596845812754905646627410113535732851083596039227916837245186137349321101122193201036362183651219376017584923766434684224605548364608103089916946471862404416735696519381085827859944720765517763597306747950140794326335841178677775693588077783995294580409687866977445453390024732317853565682180869063499114488927712519037443482733633765775222979553219998365097270983997503788376731161629826208798945028127048902801618781397527465186205481909851361450726971706713101702612385873583357451906383533338817716051104027710438926610040474369826236183078399994440340669427863535186588804301982021322240531268615752369248636681633074764528398943017687729480087577379358949023195243713399220555043957511756367001883471825395321517353796754154306774357220280832916622329216610393474085541029422888777034370249199506965278187307605285377500707674463982087733481182391754268165376526160016210273980590159838080062341009983194468746837013646071657154539832486334397534870903794457114398599605216575722845786800796572128745089149717060479110726925666878310193725970167301627960212358358700231713931429302956430645107767226926832563675208857172193214605115152585319750706633739085613940943048250159610069121433373349035033719415569795986410276791148070000375813891588404470426505021105389995021145391815691540150246335054240546374002212168761288876390790505531105206883297955617135484703557289763293479106229078085665181648889454585915608395024908065416275444513230638809032576109942411674151335638166752585727004900013215043868283575760069230904798687776899343745127860532873419082847891894121850050860088403185272257002799867555207714069754783693102719750271687289144509097042269173606649683899276304630589857952361066699030868222288910314631333137700411008380280440658882480600629426564650136008118992935633095679394114535696524650191981701441165731962529900976111703788294254222514098183093644438567384219999460934039181360991176045226433070690644758530834097570694638904227568454362893059047691126450264604899065914776704973955510862527926859378152399513577137007051322300891899176460315357213062819646060554679044693006393340596358065960838569203512822448327862291864647272098961789855948999914206024272508726021917299478624951451118691018512985838387750711802135263335482619711615126215398571628085936303708537196001751590447949542801115524839993273993480043733031915801135852712383838606342444698400365415054323889670328763319720350851338864137388064744492495496709173801548420433912596964693599966178254299706270714481518366641716572245117983362784836538188997854484998563925816341365323935567621060900911992124769521635225065617108446800379914869435445488907047748871566837597544361447039137018387182285843310722220588650066448400726055948174931447043123024489400693594431163145356292831436147267029301936538844729470336795346764643487211479550796089780111678821151809035904323808450554035046985533962825680075863734775512692124989104905897007522662905426437733585764027438174796541076381015237286130664202153993674179467440818011974471169111505345009880429453576731240551365441479031883557664688188809597081770066089380203658601377565122809908672909494991596959492951706425740536531937078188321344285272252586939580048647179689427839127035707612472253580463465843135319768054242150858291055581441403124467956029167653193832399407405341173039366840506695940326428144150440226196012480403970787255591079946023578308448992054259290384929189736338310932057883752792403408648850538982468736394105180894073155414151122442830194935102093740520493358262286470515083294250626073901698231716971099789080536925978591297048451222702990352122549768027621697832510152643718675334675627569616151670342577692639106743132395904817859341694859642693385461957549253551655675593118075629889718458830087622085834217252991861361662095138402870744978149084154662250923832582637142383586175142443281317973752668884029021860911963520180446292074944743799080693285134683012192297574324698923615162762676818214808574084671163888950799701226241193809707396634215511744897883478420269613946623188496007933761525020518364592545382253245553792176091634357517487101897886741086925955568257125084149388489529808068873314566188879079067084714373099040498251772765986039628431244482035766500003979406129226908350844883866420554304590297024724115396257298336606009528899310189169068982002908419113030136869302134562572551742237677263111040747033425779933600130431735116437344060148546959459289859606308673608714930724943851313151411010212711716952080549965796963532109119490554834593691262309918407149108325815421933818670302842359234751853861298490722746910060040466041888929600588843859988481408620590176036453385788230258827561840882241724776551902536280626096210198030811033793971531189998208537722032704223959274794131422626767731793127376123662974584968459510160093912490793369376436137111563795470776398233171026010685196284215104590644488528125917289963641636493688140361834555984484134980568333148361902098475860112552779585377107211528026848776049385804685515129348692467431179688859954614133008716438367404928918583144399238887554178021167524654699948546385279782767090992731429822234353688085674102664093918019293499344774249032728421384799954854100712435087097569815172378966738681857272614883976784903744125681124386365204362160621539864550536902349988009803485889790807913835429431681854841328759792329133214218580768138480123250415233851610930833478030170008223589091122390242575068682160536909735241043603037669946086101598735432662308501627432723770672358997552141720411998975759426388120473276881640215618635415374878247123876407134363615783584593416196364238467680111026068794071238112603923452228414308805106337669830555660021111446637547380745004655153124899960214528226951924019222863740182205873773188484002069012951098763824495617894792836925347560144967774132634495571408961580126849666070849893825917675502244483814892664875020080418238242747472681028020314796447317217663261339527898168222186237755507825401246772169861606434050068001680588564092158907917707152109338585292354854074927555292366899578508997981465087043895343270499780442648630680462789474941969132965706878002281983538016333324262284729593244668093763862054716597789362533382368058200405913514389564629337708451476542440989365734860362010726905861485590719597608199937640964048479307779313436584162723810084742056253135457707730848864526668962187885378782248508822483545474399183919892255416406061407218739507650347590746086025439563669519127303406621957635863650769106165745852778976616520656919431166024529399564947985426131324915050481113197743073931269212006607620442835901369090064014127847147177574552931354128870737617498981464947736696372703051068659610861606405896825206653320290468373361629535724964158638339294446615701494379990409748222362079688587469881368643548984089637723588909798771597491905413359613163022142074950523771752348669084036831840271300637827782539842054686133946379712850561198314172488700084702951312895403725181261069008585131641066679319586581754459696282416314939116018471625585453718544580926025098892619362481348736668770743321682214443602155992912943030877462324731943770513917226787365720300016603577739091388454861573924575620483733184383059108023677072601985536536303896113796175338159977940568421907200617778928696038969723174255959192872035000469454413087641269404884817473408901572959004165137223280667398957594519726247503499562997105560808242820527496060343050735311775405184251721704201870414282712789357556612516477402882376330090527433525827322782506979810449991317552983517528810762675959920384451371306536213019490070116459139711215307339272037629753702639975693040158029737118659634546583568613684040151810393672899024421364065630757553034507183096133964180095609495366643029610482522862339335629860469681748596813519446369412983465808352006175562841201670484940696141000730126395520691602851794860766511848903466790255411619823851201298437331752947931750258413767041129683921844243959079164329900334976502055774298478837418808816931455342682347449693140847894901447666954671979394291344031435562757356299146838435250059576056445331821060967327415232209358587516488017841336996013278422549931272802180902259310185923064690177010533724290055680526446256852530313943766778792719833494289987368938205747009794815549585784969472196207446962629341533372782745910743220174062239723809227815646524579955261458176216793631950453858312629427291905781252279207584955311877944415830054591011769250523489718927441081479547812241353303510242515251924147436384082204974136078973857051381842078719885178583211791101596050723264992274640677365547477452984176154397503435033110603839507723092665810592955577230691096623377208819435132664608158012210528957075437890680132077940331961463124303034633368354389187080704238423574260480255391680966113021348207984627505882378213194501459341753389325483320357563590173880317657276052880024336807960742110940915768276010872368059812148982384780722705376849815464164718363771254664349667551281481137566778967594753580616403745450650498803296438529351283479660475003028358204553297395446950535348558049582046535843450448008875664737793825392442619851452255605874499922799680723494057475351177164279935704898352634285243762531569923267081657159722473093629907341330791572553278255126389468939513536898965951569544323523896998893761822160004972267138174415422476300641594655422934851127054400761222108122235166761981168203159093630210146423725581247571715074640292913209122547144244004224465457437286132548429483947929213208466299049687879413480721292778025293103918394076392813943291877647863288204938712671731957851127654711121606520442861042770927480925822367022536107717825905230870812960868406729839861626427192158675358971616037960061179700200387116981541792879240402055417565025851042888855648128713228145510513352304830012245336324996190305039527116109141773234887883751922733419659671331970304675183823192975998197110244943457152919517386419774974408600954329120261611694323245381972839225850137569075533513732325569827368662048523358032211305047591596163344300028313191838266954763998659606623793335136977367226106545246011303135511954181814613039215947641147598507671632058153352751548318806959708344487933380781965692089276330322761286054179579952358757207099032597466206312417244794274033121302758993191580570087299537349702149613265711349730835875899821239944867900114372772151635719088632478659929273318507376693782453513278305890058679285776417683121571761978257572441747582807084236938821918294223673935751118154824892678040131423785996969452752634957634029727375720266933779540717967139126768718270124903757976958065276463129880058508931495094471626180671734784253856330795659877998568024969652621208617977911396898843523974922765131501209254827722558892499456606217757916455716981898775102891551801380600415506812274572814322885190467436889232970751819675642409917822283450490861376827271087014065428548517594408713908451540690316431299085014359649221844904005362057444563768770947508300233937920828001779440837908145390534560178942667033598740502460980905614926404435727383147633212619245717525634568713096089723433390235190531796802787894219099509683933596919310075297325574224210368378658198230264808649820059816164735404897372378983064466717725711438732571921720455068301530316567560048497443533370947647616711565986494826887334479750143899238397435334033235001649763509329872805808866624938177743237316079424252009937748671786329215776630657367608707912373114929025238466358238577366531815976241511160814120091770212539841800246759660494491440065978935720678199632356757009754808164733732957678851437998856891336614828216095322943739101148738628974528686230889288844752819675030438026264441799863965282425435787298637927591425424597806232985173857504236532977512819341765711238758360686185595771497247841032736610213258757017240685401514171228964563353270097055404340471461050875229326772748855578433072057719949120603104972519179582543190231814766525985601736336526041205887920984367178364353914488777358041265598311951365408197444714056563486239611115005838822394367416089955099842503954800956192164904585283972980315077999068175287846959733426645332212807988981407082379258980448944190050190518122000112783297687644268165311585903190361542038490755075991738684642789861161753597215850604374416859626480509604286434982594241298822195433316897217468697914974591795034819512067422214385083302203843983755321168697656851750380152353660543180254072019950736765451379820966856347608883786244319041929778318488431627061768250625295612228304515720384262507338311275910794990807217182909144014032476035014185516717474816618492046875073716560833782774227544110724907579191433896201318514526381694555959744583496865147639890449933640858985349148048881223742566754147886291783530526322578160781862888803381317965192721240951000376197790127207638070591042276011478842041272220547263432073619223216688639213717149867819097691319795083222291804762778985413297405211757907862347158090283651207420425671783998785926582568718423520395710128104630635356218968229416606495838513263009031286487411244899686435747233930457055660373603839936192337455247976709012977595066207626127317440350089893136102706335808266490270778575132737861104141640989883391600948249092458945589782062936161354832951417049844620341703794579327203065711435483510579670553774850437593411282498800186179181027855963993427841909410561303220265366603822621133109286619096524028121751298895445665250411309962384322068563962294440894712908297378538983845728163899705584636377180047530069256927006579275618124712139445517435016022858790838836142899087620863515926580139713716427758388353368067298576404435181008990503835790504837417787113993758003345877937425961604702327529455611717399512093027610666068391487666631839703600085206784460484915627009139301025156016695461729161657950516120848351515142070948260099926341217750136175737129178316248771977205850646860277233291349378961073030779820659504396339144687934075832978977481832463997421199128886643270197575236555143394022472011166436569597075890383329655169365066564958834534092051114876983461991343914312808468373769521862235725626010491279310347226501412582047494896505596981356852745279485724301892700572587564742919848693141952300348465174241822412790296165517391006799264038828419142534210505379962825923510276725402031195797769911716334007746725891095627063229818960572022844823144126768137263926969295220176570561449437071176496253964513302371590669435940262374636709761553414192949107103668464896869233123417137222627209845134015991548606007934245430153357012395297079299018369530431155778984885955531703024586865920949597062699971011558790760834655722496176866537260052226031989006480505320853449291082428972101581790658011131410227078962571794485373602487907366724508554997771805549203224761589258014659258136902339531574778025729796736482615124026845498552622071708073096272709099686666630413370965214438010682346414446942349399363881627300874138739718313558867075983526354233709154867509800534760929382331346168045001757931613315272213848171744572060106261987424002949246318975436762776715658686158597071551185525843935613609111754267855809161909867615710457828595160705158004379988504767165381765823524476342417058984616687343687467199636372044292884863490907154328507648660612391827875666608471413640262399275746941471606251558059596950706037292609498984144928784270104868132728939978846328640735296151223505120824793655241172650815815776488459541506614069930617198845774230895131078795899979210733229896265429668336208535896238306390106559302747959357142133996998526734848016953996133212224295848527064044765301789229692733863476237304552876805373668992091310757485567516296965760569583634295118033573629228828151366019538313538565971752768522323812964157653705136922484854832891501993036517058314874742943970113633521470800978546093588192572123464366369512095524889087814732789633448743477544052866477279352335495288627522757470683799849756219379895418696740911077041825047706871215442647041291571839661924569815464624575917885289163660033103685302866244684189907287693793232748147120512670539696113185347050226283549787327643945554816607649551753729977632785227898641077786164141520717209940893038691898550850648119119534682807460249377852005744409571517069359595018250488114587883692110742852499533272728222008428515811939485391904587568401028751128252512612154547661696215962442131442394211738671634533958081025909848316710760362872072618779680735071387798463540606546461412856447162450776382029216013970387781925823684707718142472089095599822290490593664518368719594463295873659235765449585273564071045229693405538361696095582823285818901814543341454162890548174029565972964139008018810332443194522837979065893615790476169512908949962783312253083869833915814761249333614726333998419109487917585966839146217390323342239456309853031447544427627945139557357968614724904668372199134030915420056158138429672018131958713851455553375126902511974225867424758034818943166277357754005325632036413909598955908426310916828946165369512256024520327105460369171535530762034628045343678336901543354550383273789593725054924340036073898499050968475142308496864115634878776717622141961056638084500561980088683208549375356027374927129742167610280190243496387951254306681264554274752660069367056667029639088212337959935595909656197548804417960989630092416158898021686902852452910209196580321209454776694971195868769225752341000886405765217342587489367763235955995520709092634555801904499349917283739871092099877529728498539401831985613767081922793660229127233728176910661514944957339321598266456393929320854614902243428240529314818277635168942290301667426245637111866368097681150421505170999450327734739432941384719543333422887802421192148550937352344956363639617040751298296788968044934147140594775933779878337815532261859385475632286484358888919935694170240543703929459878941577905766209426836293663951082928393710912682190841366189282538441614614793253674478410997737476319347243404081447501978924704176493286428462133076560169072977591992218463902958897990908939773310638452122921570726219497412765055973201748207041826989036902000529282739925493321002976274368426103985728792806725007339267628147721517135573772414820558571017617929518797432905113961431751671271365645969436925114618551398819435370504393385244552995312182995307934999523245786318919211473810164774914050003666331626755039093970060253457943713677900496101135901626736517107845681223863825830414952614325434656792777752650394861568185791982242858744412502560637654193817331885132436578357747594381101043804248792225760280675800555705726018168245202552953706336534347220199570358145757028007094279014198626939257496399325206468246487291567804342870359731597981716671152479253671764649051688266500264899693745483897133678237794069795488900777108030274080640258130419467498309019362408736665020337567039697316541118064393217971521233480214457645820481605406951387015452054481513077442698987839019865536184709986786153829090623513462451458690210238378898053152228089594042576683279737276328914367524727676514880091393387382320746362729839169587083708983028041335024733470194154571243407651868647975895940637618217459237715088796565185843326225235859147226994296119742833210158067002102152569764417669925777442768499904026399021073209889266590415126159673248446058298346825365364666262181373747012198345823645694243221296352464987364682382647398852769120103046614298459506889533706657899286777902461948330429235377843920708094472357009955575152835626145477863676546753708438093229370109401360539758020701229135359003571285022164055545280841414332918664696986423910416504495370155833173159884177608779119495071197246643253449070734966409958238442140694397050671750797525177860712750955998740636841905022867185843874899812678474426252757729468723283078909535908524973628537900777934695586248528487838538345021508129146569179080870348436411013660150449922680667819463309916798018219517130116675955258694413319979710156914740917278590154985752284556448487410435284800474007013318509176739369489927265702808491355808970205271715441080643514744402846734308571178231263819018958982608472692070844899017580384813545557529288906386875920465340001617636611620946088322813857134211426976077370863739733159220554600666194359780461524959697592867841962225907702164552875391551290258479549624290503027435120909021392722315552870435085093000596835595821272078659154604321320151412412400638820708080231085068616176576204873591830292235328623076820985463995805217934639573887896440118928272090000928559324637789372424014710093949942197926174460812859133148019707353428329061107789889173140030861162712779735573797352851777244677286366198770019275263707657980538170708862196503657946959574012213609062412108227433396430442384109272277596612283581580064201087056079804333211171002320961003681654285085166551713807247444676459554452196151112511588214653792684867883363216135541750690854459923018014148321168804449038999646580201082060417939599137466423462763978008356291859668400542133260589841976471820196839063943602244481912520348017949978539769029830284855088692136650390605768603110948382888410302669486683355592073831583556846155443065455754399815228380655843024990030320110767677343984690234308627538094010495970344931074617539222265188013399396882506343861199441019216665403317137408006114879204829765327697334403109279339858598978982609901126097522567736360183221535593764819543847746805370519223874605817453712825899199096270060462198608956898213883492986267117113522227318341587082110170131904028909898529809675807117848052149725873234568977293577265696523076883552594191353106676027822480711022454042296126501290965504818496493540759390364820130879585335403434987566407674137092237374307246939313101116119039076648772530180209248049860474195301972963089293153130537437911978084381631603891360064746421136339256184775033314412208597026783233960242616089590998156779659446731181024908324678575668772168087959259474495544538629857045085708843322129103720023385016199144279414482364465880671542419325944896856944515662184939498962278345612367088959417699972278705306901613444998415779120493825245921803128171023353850326015856588942832088851280271794645617058523011057641162691558491821198625607786784003535882674634489521516429446091839819961051559729861712084416048088734902101695674213760792686793942216728442614728001016613080490563120854473866617981941471130173516423409695178982933718273239525657750601302579430421917722007191189923154235443891955701357271142915590258501421410045944913371764093468775546464706703022205665955591096256824563044959976920187459953198344943187362911070738831121276608781985811918008399024935516970503155830965178423729810377995112981766175831290826033714471179896019695927933938285665417704243780623649307561483771585281863924878747369138568925948328281428420108509518284624984533153458472769638105090126962110970910469106500698011232379227795783846041099987539657054802818138421055803858109446051182095787727697329668467428585236087614833983769428364473725328616568390249930807375970160233381376353472126952670216031452514573524053132965087990459595103804704788581285499607246693166444552802160799076931309505861425210529269222479088436410586462150504970545488694465539657921152618577976653363147996575561984814547229567318061638729300992677299096127655581837055560422870322635474548928721421125689095088021142899090010502230697303059349919402835815670174936572738466024311262587562926001666761974223664544307192519696780793797011379826774317499728845777834232533109368253588612546006448072417956834408022135171832806233410382246488893150118841831808897772353089392355565698791334802643780883406797273643341345269879287980247435737576826533470476691545657529754215894489622666775292072127489517371661541334749599693586369056457044185503318434196582288064401159575494334958073686857595668991363208165956908164318104883936062448014878850358619159738949345056210608348015342842641525860872028286598173792490314127100532964709656641283704819783435799681495603728194977533754841485162851001905388831964124766200987659934171300780305963656137470239516397789268290748085420687813140653523462585932921580546207729035934978802675745674377739541835619447632316262264603622185402110724570461634101199441841461215515547837897435868581012204889906449389037200298775149303930750109701975229517990209867844710892704460470592187325953588710323155354312076486601398913196881290544787835742948692338563897649515098865839553921079291797865808754802840260663781594975817630106267442397543484834054032585214222797382306635448794505752863215257492475971209137960816832522291392504199500983929899750796375092530742178729646041404691094648482964516641669392200209280535875547280541209334623206018118736240179051633165423120581777197643938953839844731171682686572390168965012357676107802600331817069603900268486361101000041030746702349408385025163026506633476878024749712834760119984945187821404862851676109055922099099112886708408023070151257498521137640468680317086957044092752467713986736455600100654544757134932204539917585238859007863485116477767213729771905634800004694787874678397187576454971107063898569295873385826464912055644093969627947610368601065088555916091454994184337185938913943827983840134184536055428885923998388039198019026579336511332370088564910523153928972274273253872489899881554752569045867607257111469220782167296449652895578076850987790497313352216297351354068403021804267673553258978552858082443483747494300290055493462751222063822106596167343329241951190732608886018436930569426617535429343237032824106457365070360980211515585838279641173030332583110484355671513862241521262881472784946422307307121504518313785269845062834224386936384064566376658107489548419692403714923894242743412548345901571214273500765521906986453095725837438423309055454302531659864904460949478196303197641927960436031165766520778588492971482947762229010510330352105583503755498554872168108334663858356860708987947317369061920265677746004315491941811876172087342937665777614479029190264149998815237392159692092181187320228475486820722082676136786973137122773528055156629820000654822974738294266220638402322859974922037910099912980591325631306156553844260434022539451007575283779291687871713571241264656619305632492394608025130996296801562754345461122758628181806018364220879096857567880190739602920986107316940203102590906078621245511893033748031964041212473984745667474874571693934936724800227624191469056866495325039215041172250891279811257658637573164469194434645256616515468387093202327428563890999519537859650952785897820669021884115707538661801679162211144619511670387250776555554318415521303313397830421669380411566951097942256924744437567591721163247599078858612319040542448107772404527881941221090443892599676058274388052922936700368684614018506543318011522206320116796858358050142074436740256894303874688674580031586271773146404582452322894302866199569605811543018320015601777768407906514165423457737733196580989092032413545962521260135498910626450417977437398571550092561229625075364839318338777055409273363734557100609416686412944672739025154851229299060251771810626186231300216876151452035709749703267810093304047137811152124708002811131049360009947954923733388787539015712327096397702982471455032921560477571641552913963826358938980242422469570658569517694875754523586644042013230335366336524656124100941949074981755302618112810939269950567036125089549850428342778121541309369391320113036332028919364075709038648150493033282860300443125506873300707661648300248566635489317358623193566208579560829545949187385544935394779869426296274301625010968853446021388606634413337358740622587348601087990433647389700167339741204552769619239035092845771933256587251279470463969643202617226470736109951274061232050158235318192866142290185600451472051010815168829646551665360418418174804941262098383414141858640348113329032756814642668597529337838802267006653127961061547698375086018728246106355674316772052014248894185947639759462784224613991761761017266805989264323346541952459944358572394750029529469131268916692305579296985425576436732006576012505798771476593864561936173577587226650058413194957567584382379481863801360695917183513747005130924056684257723041102280135783959198345192175500738553353901283420653425450152536607466771493886761854169181470995441029914579768646327697474415908146627346357254574038994430376372385518944231296655746311169121925610956749116339833575806055422172537225527813338077127378452206964186885920935654791882110914945526968372469260287906640533892026636247200099617553108836684751687410641257837037419756741016638213591922889526272033986573804458913733477153221637546126225738971333025666263973846052249635352744579059682329598769303672655233932533956466962421666609058375943700435400502060409905792023609620368883696332465228803792283595305333783742728270250542986566811867743031462428313299903051259175424789194599066983457053054472159525794046648873577242405857662708449931501950951644351767528567880094544201965100971369359851904327829924451416131780725524609558261692540547937205063148987155788505449328090383295979432008689313139767563668817931422953682361036185250223304217538196782240157380335882245301115974458271688112328514717996387020961265305900608174351894529120170627904129907873678216306187135437448739465623090863854702381789401651110644251502006531083489788078603264417296569127921787361422360621100417928087722487739673977136977187669945416257911311445101722746752551390744238622494626796374660329881984907732563570277865585347456918830411864314346448336949813678126215310760417024911684612965710961110532567274632642304266434780299263222556171831957176757808755224908723755331397955688443869434079148099326323271004646522655335446008740113496274014363517964165631394100478513459057408051393294737981209369749878213392604529170961823949473193885298717866621685808719244871095431121331011120504529863150350828605569753085917092500489949197158838811023600681075034486224057028164708459630683756748121640343724733166540192300624772350018577604455818730051854691151253062267764069599080931553321738165457406635719255069546622674854448652373724943091563430618274681591925485716263713052822996139702648129262550918870228481593317780631996892297748631841186339854413887551514695161080928520905378124276399674323082315933227016981771512360787621015814800026664860948198135359220983142922163255426403051405146644841394146163245321666267123098298071060501220905369619781471321716793583343844356881711763918505769014496721435149072497053852417998392090564866496219704914229934654743893461394122873402598370265550693353545844235057721772199152829937863395607135132326687673685625458104073479558361613381505450314225757585221700857273861357078053168916464916683852967390573802623136946684046581332806573784106377547383986259014135788768939148410666002755249989345297791637833840699631922164473855799160236583025620188580699282808306069967431548117070375384425278683587740271305806234188987064253599858996547015848535919128434236163857558406221359442485081679812153474218851981564862336362792970262747966571179189086176786914741600508406825203034756978704018455921594235592205227783089371622001631692171438026290990522447005706189889517843060384238630148161931417833738752247867019889481899406608833686194026555359855830923201762873550871539619672867590988370189441766141599960205252491376412849902838847182048987492945166376888132886807167776756928001691305645668066672392402232033844869366890342707258555029067419143037208621129976938540687031980103209568804011405264330064953684591884751098204655744630480996176317383904748159293497157125562980315876909803136828812476009482099526989043946269350436192013715470907392450893032350718246130112639322435169022709283508545168878535558919202822590640817432594647847542764007901364774443808976622445229880895913348055139040934280271073022202200885546258761560198773030422842211745564599698371363317248325450077433774605421890649047496745393322994453762878475487091490883014045147713136674274467662352111335907468663814708974244915058108710381478152565612440337835842361186154204324543588963216896501943799605902620814904632029606892016843532752076909790845336552951046276866621469789924334819406038512211888597233268639286755942811340091052937671342561949709563957397362672031896445947742692620486756041610896818854945082750638495140889313532264029630939569822584319162383969033598222200732019269585969724259713404846200047681236698356257223466209751610159287868735083560394370025798461065487278284536560192930844843523535263938862172236763072936822380696358629592616502925412110302654068220174998372830814530181245338092883738303547974978335655466067822094716428507662289336304293053421294892586525655611516669359510048493455468421013313637101853457422059184923226079105555132898841751894078276344945556923257838999974858063991335415120237639017191790647762789304551132058754347367718649547739413405829394531155013587558037434670534819477763881494337605132174275310293246259703583374969502602858144616687904396918190552873863927022337344908867551020136751237183851966946113263169267293436216044928526749317337410219982151293583220612846039495710662293984254276525613070689362539853564814068268753016615106681570520005710719891503223883470221655856271781468104709736746743545270983634502482337033602438898770965111604516982369257817496239652931285499904579126524875022408698793480633160221644815110390002011054419711777986627876619184529836064399961751351268553533473690044145013075786862602773726326469298329270435943740451788473901877826449343046701324336190481562342516143748043653408149875903682567836915145325202766826858077609454936028394258263914709436677950735336551526240817341429399981235088612158776524064736778555708557455969602281626561753326864025581321593623220011544669951593723575916948079466377346838346165956482183685897072728777983228310729873258412375270963851619399286061193117051065659733195363934062243838895204998985274101284651693963043241190331160138195500353452854276425318640308999005143088755673429090695405021751616190704274703169151962554269942545268824020332690418677399942808468689148442259300314027646045329971492696352004701683365896424600417192705885987238344369035347162231112011921856623256879573289631399670977044023244493708582350106179605366762469092801502872650211110252675947469415367206323872631145929526040742473426692380759826652432624392082004151836183827402400808910937671192218833519269370415964075629386657636680309745689819743822144793412733565567141452397203171815246283802957003436897732674666233469710782435036142207170104444631425264095372691654977608831225835714292747676286234994922061376537609319403678704399739280825705058319362319627705133646777796365636317370093155171655605549712977520298997851386715771823831898539459132570784768705929154419339739175829442462451930812063048581362628461336649292009291857517988238203010324876237138323081844905523865442913079988823458190918609238798415933394672535605243462651522539531132000572222173541171615951070891869429255956785871283657986267938770625405307030512050509207325594913931497440845477486899920260839811374577490523027564543109839396067227350877565173015282015720076396586412142130385553371024816135891809002605839421785737962908836399512226739375642800152863192791041443004975344200223734037310197728786617331990841979874852674946040609552579917444807286650195401409536173618035942544316187244573172390433703215297867093492735109963090804360236190362728035855582611230760292104670782497050282738420968348513569304651933476750853529153955463116394829765238769617457680155870332235950403775960440853390500193724377662983604405630790142122213924627597206872784932823513238138216038853827110009107284659758438494985080194457467582481346124148130731547739086601476100301955703543391566063338217441276946718213133681776062404514852681596870017203255776788605498977011293396726974601955748299074355231276280263175278425909730990323422253915791803063271337743608236720730762164047457202246715471439532488072171196892037976881992262311410303258228132325672982438279284681248916603385774827939571907182141154910236435140573304407640067298720885591879094627264128557666858487750666268145014646960192331834435189451049859090075752076083874832863976265296597647943212053148450717769133112720484725900904089245725100019879504092574791078145179452302505175972088506207647745600512004454283843220287586114825026227083106689390065554575329360829360329126212613554990319037351417766653776214879031989116628613611602366723531119986788394184785807469164652094855353041426215742161254925335616244225254747120777137797960711795191626433379721602925641454702010801045182731416895098068471267092364019363044250307592004972139942052831246881923161316307191155465136189858222024816381398375426782211765533179071532543327337420056450611845724161689258150574404140309443135689110956947133912817509031631731818463794918660539626998504771823110065314574271117033688853561639595342654562866358936568049678723739364531166941343359614251668884949793082701899370334334508429713833591544942227110850380872253052243112070892723059551842879724286307265719643102893376141538683291088102236423388713479300610859393553014982719651861176752457151056026441360912895504435562706381931181982140640586326815152895770439009288283373939907169715450152100722333315461602192091085601143328880108677082680538142105256401870882417967382904159216209745482427111458019991759432733780747074983378081834225549947790883536406890767235645812749508914440961432813640151686689681838265553603313968471035445901029088127341517820025865779191484021708767961510680512591044477775449340891605480486641839137870738475574720011829118720847136587353846019884878161557744951695070471621939626988094516719770360104362598192331088616173223295757226301432817095580153955009633688039404674950935284601348026211740599858553446969701177560110677620416693603158029226327713230348344159204016386793432970840119398075098145880817407816419744879770059837790595978119205436371832471623685838690136242841133585765833275524609831605342763608647902350758647155659331847945097591967637365583492088540654438770447392041207917623367687348922997027219748080757544558192895364644002490710379829350850341854621626601001763408749272953895177522227210199312630249878840412155980810432792128645638589717934855704271260532574684588251228223090804939710382315126457778111367308392786115985646884520282578203306846849232889642958289935209842531189656017284479296448396529526696169016779485472772043001730915074576265183822507660279509749279199599842787743055938618189347080996573595911840560493374711259519190266085732217103698975129126343455308583551782097656514586683587683423384479484470565668617876881601980852263250308402531843166249435472394272349780160261299707810352699379525632790071795365627338476030680794045188695829683586000206213798256124010289824792663737457099168809999671485276717376624753916954353584577514795109086157606934161505103666419528358617407466919959422389659886587257026360801837610203194144787696001516802502282388012059543465067017847869303094557571792430973021223293636478835204456756022147500810741019507792195619082723559154412773234413865399176791805086401460289657696605261187292126796840037783847885425135694020567313916584681121168960784017235996188702174231581143673669752803661263668656011692533882207226854925762959160268696218841596131991668929070135877810641027582694187440788727145243411101362681827649775274907119620741946341185863254911650718241508500829521448471142955974730930414123583668276755936643566871168335224692247792867884870974592749417059293540708275447723041176641679776298404891419151832491613564812650353634058601648335684809766954882731025904845946059711468055133863273644879275260751207495663887426026015629774198074663195156767226428287682181923377445399604762383545094495074105777001216731818383660532535719681823098814459772267163787740020311434459728459565514145728494564067476211266217138409979884413289864258142841888748249361078493372042468644230614397563475523187885498812915055395814558063334681546222918710129056350417687173918668615682373699404005713812039456311278818980550627369495278366697714947007395452642886660298271155542830273530055206557926486668794484487542654768833047764430600918792472049448223283552123747336591563567812695917472153844659150651771361317477553089294200272313536534827147138094635465677013623229841706857769120992653752201808269151203559758276565459790381102460499157866616488159619210638724023999792280606359815963717739911146321580810698781144983808580154354576725128552620788872474998982980883102065881304824437878315584886678976224941740704594274462025576654991807335840517357280883244775882209151116399866217204131029172197599032249705583977175813690410973368720447115041531304608468190670429192703564794726325245999608503230694541570952173750609365734549738068626466279368983742404679364604704992847309874110001971221966845508229055290177973073917826041158706447314976579708066313278111063330848758298532861604097160057711308563492701258577502266869918676577594215250161467350585424699876188278167862864021764142655287514524514506335497818117805664313618306834163478539722716874017420909078009396902147888675779178636457237710396375642180858137901718123157676628006158156541976395650330997704699613986688163828658089013318683387271181927123865883511709220298529438735660766343460787672048889684467311411086002177511520542334768587938860391100092938700681197987211022473962991939625487515163709280404897571268868595061530264385810051814509167900331009793715031565911652813768646635972549483872691567099689626247808696969128589102639149203728640205003267849611711711219181983708595459833988705446100218478122640220759329485625838228991117492321847939499606061951310234202263850355796204644945013473233366060618224151572914994406317594532911262324047518766482208321960835748880304527226435240259648114742402373861368545696154876190910362512419251613226838235325063527628630643923348213663928315977395365866577057450754787570751201102215979141443926232656787042268218876426094957081096231590795055729867055818378769626632980142570939239548646129558468494463737289061543528182270515789741131949271534787139020594112945678869528780859666745311974094289315425910963282567162841647631209707653745352943088176986947801408120095500019656583365479365871538913436500399064153467869068814461444024429897454335476869870417519175246162876256782051343263763785030731482301559356562469512156503035730167204259954103260712919085122296148044855266692698106392683177259725200288845824050604538668452180521755361203184724302030748798111946721401752201537810188463420014330912629689853114387865621017205617973948572482949349115236090545735887141890886512514768040660961612013016022887326072633554399939566266679794145474772972934142216590650600290055880207673321799690784587323802553307075915300680184497035383820801912890205086311536448561943429081007178262906689377730875610679268158442521663261114080108630419787356400936425103570185675192796111191711724440155607198310437837238000661919043030329700350111467914324420821093393468419844941984003319991578803078005041059480707593570870637502872958271698786303825071883231908913491206285242750047734124910678051807375026701140605424806588337651412701614641268279189344759635452890251274496866152891422495295153144601887217259739283789641112919650050083880708131229638337627984496581421658619929560889345188769245905011438439927563238488170636288596751953470749276803460043036183459756491938472036194174905651600708215154946976465088613842612739092661310027991773749682071913089275967267150756808766344817086737754887357427072840485570818799860077601303387607831834310680917138662407735600896467795954607729269379397783005935191614052930281697612172399834672808951570567516720761753043612832712365789195949585705238355205167364893690788808140266493152924318757260396502588619366273064127410557287643768109315813220945889417384070806094484535366136823696521193700770411497936118181017293002830914498921401203323508978294043252860700054294360855027644300426591245670297021127358466325190467237215113369523926853403866196218823948816822014443230550926537721896694900231331352390423459969805836694916065172583016125824404324814342353204397276335581772754158011785229810287879906428017663710200940335769241398916014051084124039837666952065827256042322009726252109798762972736174784946470760822540091506762220775861312444872395221464686450542325737281287103885235222144719649706391200166138973505270387661946095918450845805807253286212391975772117276140585265920707546103994302153283797364963429617199220518325186881691178335121436347586540434615729226526690734673484732358495043880552607772560224611692052034964583097663908544939422531342659624807462943587485865979552684035346090893260117654018510491584317601416399775960191092464209728239653968171468584554607435228427390407691076796483914734726095354775442367989422892493505671526965636380957522456278480060506629673557101575079709664885137401524301777149324183379639567483438985078677850703811724317474105845983104494669775724447062251181446687556103944632937838280302974619209943837271939095806001746721464388506331140337580514979261456650770096580327628177633715651401016931322178559435193248701288320601412834766407036742084685837726651765228255260383660330789621895991600291123189434632692987653384873922663396130300575990631844935471770519439561401922474182772666493774920967421043049149284828713338774435627260729793546109608776350737401308413643406416257671229994095285727102773086952272675307236551385184044358330856637492646831998103684376449897518519893248823026736201226300929029492835199847451282366640311496700273671441542283370544958901522879615412482027898676603748343885698256805795587396047029330341705049964724779453399932066845663882811557254526514902812743726388267484711094071165573856756967453398395585818430872381517458896937064555376504608392889356344331416285142579896241642596802809204654307186105292399583100995161516936625575377003371355741621378333222803743273020905643856765273823205328830193618412891505188600345028006796861786421427560489228069214687252914784970275231655650304382335391111777132679506400642443611638977296993507030923847669908200058073770366164774016445061532986932876274034053980052077477689713829868154813788566449200362329069294443159028482975784169126940146501555676433224973505823048387213486711413899259106189816834061709007165946850134022846818938838002121975458814675485143018149521592041964356082657658826727116251534992995438538249791964217780512492100185835113784358736840396246948140861209381481652409182420091708214160313028096083194185794417697362580033046443749998492603002623786700234276884023483089267355902334599872516047841251595808225112459252571029764175418867232438877490236236458259930751859038539029297179984347710416809794208772322694070508868899859560308565014542300943189496185245726124290914591814913818497665036737448880340529820599589709546086193171898175637078325638004009268498437035651340233466506417699417575078696758978243981659808508028225352419311225381962480084415531465017372060880866993875904976602529410870614284726518359814634065289688876355204422519199642989600364959222567167817554777459662035288594919509207416743921696144482039945064326738025469239026593929828780682046457963412774670062329710292052807809484141560210942535553763137748087647130073863949250956701734541142589257808279604088624451048044557228538799143344671798189120460023847195534941807422363629639895283983380664158120604442392593686555513127153174753790438182731771758145478965868239862810862635203162318960559245224389481622454398236632876494901008116870149032475128449701394167176385557499874103704159187825209385726368034065013298270945136841606098891823886297339052819854551121843079107504072036067845662216278648342592481580935152892260443042803786313290796372867573174504658310596945729333672671004976335372732760802365863929429087916011253175928187924281108757004322147531226603903542087764430385522499100468759020327368030546099746994783323231464175545003496543004172505809899822136938567733946428812858638875379137970582141001702004619994182067351386753766843273686442019183214268937321077536555854978567623607081292857949073797213194522934371391840477791232115470291534513961697179077206367651306133913710572068558406498619225234834501154435759111411296667001150407636273784241458359621910336331718539370039740196474879438972307468903265025641098214575785558588512406921558877657223042925245910904065230342788878403907033378803267119531012350852161783422398355330756623064521573996272637066437765328462558037699778880442300421400287266906398774874943491384148603781182126585100930173933702152750969400883181954508525951564563426882356424103877358328313162649058045864482042170614003489126770979084331373329855832998998998680924466244348192962159849168678791366371038579259792992293003619018481830897220747705565061932705416938382763024318324819871423386898990750702081051954447183096450945831294951538204721735677420036736163482798691843742183963608109864425295040801319952968093196718222243109977030667165210387809841888668916384008131731381793048553427359256974629834660176126351604278855788332370078813175668787426921631236428527587214357757409682970851676417407256101704388231370613197036750782771436169245451864652867543812200866475692961252944843337780929547743982879498117232551628648149433087295206401661603697913658675072164779904218146890680760382504366870842765770623543068189703847830343956506571780160862684898016617430851709226709739582522169151810431732396376417992676048560568435896934176611904541689895725807639782392073020280794106172253495120355814295809346427134203819573657818582774965917039873161551375056797173166044518051129699834552294262751974820610297892836233144102602659940741540574825723469480561499494845229533019110914654767519178920521304687901544988350834202158954583997323689743792781823053299516162307161503407637783110903413742884145383509433980018775063777258365743543841125451464747553664970170891904327831758488897124167371414707177286745244545900360966807278002887574018212126643432798069028214945093859615462728930067891143254741547177871566107235335358917671681274924430694652409407840189866684451704294165646817718749842238670679435110536347636187970150053996928297755791270695671756349547703702052143077605326724890266945901607438602712538457923172723786070145179368630392943534617468713288413121472386149564170611881692214637823734001756629070979818541421605211909038096673823968097558285983861210680321083915048467320202185361277100722495558672644398787606220784986631794383137162418845637832442913331498204908461217136350919861790521298107423759253663086471860354161198149687372861829840655542102189769450014825517354522334700045066482108058091715913997714454711516252019841483977569506085193728391942719118834637545082327026897893897120288424893706281623910863715877944921275562892737922934324142833290729596256599393359569229167443624873468794299078677155517983321966692931300006890247417281670944467968858936415805596542518474552234186224764298146876310645405729455889833723704378809727292840652010196133362115919017507011465466400711537769152589957425321639200867484553193883120080593195249514867858568247645477068265008376327437535515672635951493225344569270571309820354191787333495080016986180142416201422127945800849965490853840180273565507566276048234125146946378718600276544508965766189162007863606995826206086202758683775764970477735749073266593957839021272956106750254992782390075445776100521270949199579827851491792304133246665462079595296204305862048055426288293663853510419217107100950718376730835408075890076026312816460251288129799722748388267006935642404876561400014361048524017778409965172768186791754143329351088672411306116391803949763027368715151853778900173920731263991512602700641748737075961637266798494965069028655002994088826221385332905169748460378328321922693883181860722278083170844822855042564919576268005727930253381958877063980634647397422163605060703160431287319688192612207016325533754365662760535230593386180511684239754088364180105594465672065823203429269136769224377669422230032246187159607298608732596954228833429397058022825997084738598142835621673141512075973607509122649876768598549935282668523749328292235411088590852147691943703880344263390488004909345421276566231531655253382926469181196488032004086783507467469715614308987753502486099983029973624088615039143339347046706203633286846283798193112183119480851928143610135385894179189059958021074613411827593006496970904708738651713165374611208868873564877435662415104823554850607846505425542063027924689082776450656343189898164337405643200279374940346714643704883521528003440080509784001099656103295594897349656839114863650820717691855180560672684143306757010764444367933060484263802444672805131017580933045425208741574856616748480533476638190397119156701163344905115983013666421015155832709401117109007015110308121612909836861474390726979678624609211658256073940016428217013365749539820831363543357979592682389641767458616786113938034545933305305131476870884911617508278621867197607577706819301873813190295063916203304630228695707874121993493519470374391337442059745648441766062695511747655714223940886451733682306286583709598420792435832381524247392435004319892151850398109678788302020914333980709696733256359861043517636737388765032733009828590107875719040136241784248298613488661662989140103786043941708089730625702315731748313520274798770300683465268703234835930345310336946022017264926072711156435676974824813411145875031757413447156837071988319916427705604473325898617093244603730428916763863572717542052731623519862919052185737012333619394369885316152976079066785137793486955706442334119574913897238735414620771450544954031685876248352647247468269873085162351551230679730437574248249304349274753607905227914084738877239907494670696232856782232820980156301386240741668411173166509401470213361631254824473163265976507436147432369128039927272669823709469829822704163719400549804667363333764229093072766047201850814390320788584095786118477382573544995137054239756012526456252102818602727260515902739977680198935668039653727031375279126435252747082293215101328716012238166471060412364284979111107141861647322147794371895981532452682482158726497074344031746558533679344089381686328495704225632548858576363558402704965012514272481745933068666179403716024972594183162365690259617634160398949479626293822552219226863521603488943285305888055919541630257335384673831970892821680476936419856140970831115159514936694352915484215587324089354147713228910104496446523101191820606550823456891170260213850089102395030156129910684026798081016594881878569797814933459050515400517714383765109787252320804258255031063089586215897423282367486754785293147800395676990263957501751689548790170073063161980415953640122787745905750745370213253466557251066828275873993167656576733333401751992264586677712758550586188056957885904535589603842758675854183554536408743511953443822590241927663999837731322989284185727043967982447074218866404788620357428649421941974464760777430924011600833836797430278747761043504515456509273721211738598190325617815780983551750111291281996100267347550713597147812976015200987778329113106502000326964535602885169827650345911219578535147293158867639041640463843035535707614392545589828719835675979554687777069973681303817405585270627163063594929832209161253354762610798600125683724883648166959162778029602146356757480549092556011402935977881232733993070278999105242042732914100950888201997693966153623350172864096061343196300828396244075276699101017964181154442797278718164807445853276657060638263495474700351962514628340540716365059609291466731795092300101628497240838952490842716920578675470295661057126832035402991865387494922902500792621252831033120634541131077661663197936565626766351061971909949060108949866696273257638746859580887913783113619801005588516286404380414846433388129200929436408467201264799317252262883262158420166419664845170137194255517762145918132700402831297449088673646567209681761684024319044499643192242868506307161094730561654172706575357571136782445813696909170437625602654047826193852736852363329307620708339458804847311994210398425047235539830145086742748374175673729427242100756230354402847501121491016629254697177745590092259601725675078709114265679263918540243479920418862618516244363577486070487975990846083845000084329063526921015577985118842288692289971777380347445013901929157255724838501497995740912882749863554643120893215936140878564307559843948217108199834605879627236562118026913363770738754786423229021985850297656801425167718703929433693290873359044788116547559903421333807533870915991702764627429631662496184231860062937581815103550159988211784509748179495092631949930820937010672163734528842065783632883256394360065424306613792049929223769900083494760645140865133721693447009535850202881268402682300434182931817549730317494966770556966316181930489912582732246116228196880277285792004139806992606227841122488809962568271280033007929168573774782341486690103812155289802801610811218595666140930845103260379663268438255445467638321719653372502227602082300225602711126777152684846303907432491825359138453734176849199432988129020244368690264183018588371109879374962878263673625638110748589762879108796431277366240574042922239806724981687178998234770827922105524624983743287652794182651042896727547549128784047167407332947233037744230522078667360792654503898517251932774720077934137355223692693712222054029021659422408896052671317570608364845590345701483243437128460566988787791186740535241032394658719344036985789750217190751763299659228491417059879878857400046479908087015695153348399013953811913892567258067258243042872061690767185297857144269626921650695742905134075237698813953029752292710808222149635319502981514922847939507645191501332488663373186249440447863563208532923073120368618761841297186975769030428224717402420316935945670664018952390124211238915287006351214281198146190352193564119484182260438236033498937156853692469102094820229643043239718977113287721221795238293473610499909186786613973010893565255795007419055879053311061527210176692139356463084220053026198960207621810357547377835138180582426384843434023896871833733163220569918801510093972013910971076298593611633766484515271044517440729293865143723516956678054199030837008427763425994240029655610493943956119656709608076923552167628020570106323308204206272541648282158206665159145454383709220752202156114936333000902705268203986176708343227035948909082025637109703731204377199063238285197439029253670178474536333702467901244699939789491415108645537023531199920125114974390650817355813963734764735751230030890534932061159378366414638085929831770423606528133434618479576135959671791984695788597677026925657340322522671738338075578384716635305825927343691373959420793938014240362795764598503915090386556371343145361859019686130881946768693717193543288264936927305285691888706228825624155372991382934195162102585534104475658948070951656407701882306777878284640784678894994201992918252021627392519698682569335860442366119233965784152993868914539566975084297499770604038958143473371628138895943525569593193952304497823216745773346702204098350957270144042368375544640045275845603872020624505048311771319184759266830053932081762912154265711425314617798636439004181039845784536476637724546563622636024004818275674359469413611901984290981568466630414024936978287502829259827155274147578199712290049031781964784438395826877785485839062378201747607114339526621681746949761879893851179146846792251355629408861713464625042835621292391517942900880976011023058014743881323248988184792098842427590651192598733541805389057468103496881251666298155995856235979468294158750268793644289517993075509977164092151358828290731864004652745275702787767209441174694325898455718045931966328767674565772455104274176472121048802098782240147965504440346824329344319565568149828518368889230448233516477619678952759453919653047868284850965957150126059201509500924759811857045259229026359783809608885796778679186247305833965768485531291622808495930304051105904158238295418717009151769203876450385235500945200855457024834368688533559815396820882396345216783581400690716090015645611075706215006699940676576639060276033541248181542033907187941738904496457138784042372342320565727417059456677164826808542754156753146292229958904024011263450139885198635091447365989595674102729239497925511789632528017975544250423153945359758535188278446648437007314686091616813712287158820948857394648732019771127600981498986306813518489955878917411085900049792006603383618349218430019678901251801998073808974562729520207282405455236898417199521986739546336073986330667940436023058850731754601828708987017808634793222723421807691540818503991334643333520158919930425356656996652067061706340034940907042397724113659568138645076949004656579465492076882585134202006356753517600147050947892193718323917894527727846819358112110348578239485025212837400482899768302776328915032252222740831104911603481329234636349649687298734516437537009065123377958938260330674364370123816308372049947713121938129115876548944773991263272375293401102233530997121785203754429351972580106401771658188418658093414951673638023845755602876742270330068194603159445746212263373806340064027662874251733690241645552003387278873835499662313730282999024365036807525290953567388115489293846344416101754231176802308050055085365392395903233948044326216973744745002570533193549765986851000247624531411621471856522318374924625913850900519000937606612905715678316825785125333981077014614740671816689129703268126295650617111774642245077740229397579780489459896046429532450824888765252079565101698905622602565997365116365866116221088157032505095490686490370068206451904757423968412131908002107148175964836004049466503649284885278033908132040141484197226398203667080054219312541169183768956896705975248296880578795663689344847693724548893509414063342421909431905024676651692742269495616778576810596391489891707954472437322533663541698836457617686314128943153076282621218919391287959881658692514263653138603733861782313794201320092662475603785455324100468045056508936987039446375496973044178412673462532595554164540623085749455057396819991656362541095456100922810303239923228196144932397208489166931938150188797568616301200781042783706067747286910091994322138764882288884650497278247238667423522008593848582410492278272974068134567747567103083511657844523779894533204409796592765558137587032235337505234544915599480064423751982615078473670707413411081980130535408331334305686910694836761842820988408417506619738040285357894823941917114061243453760013520687050067528094358036082153321227561597150296377350639245169418189370219494353763043365115751422884365871839856829456073795700461037419479409931234508971147983193769591790531734849275962914456315738511948377627557932517376318536638370439888850307059072695832715058520435254484215812804029107326743677336834916823224327844000316808720900071316585316248381509569268318279644450601868332899196561597917556341290829852181003925197230266355711955598636766696711167795027401165358276248260835982987183532900107863097525609357029742661456420908964241301390006761475431536547598213634886056718289659707256209051487232021375874571144334864367771147634414589868604380103707720465240234248399684336642942052577984352302957040159209479495582967444777996041914822240589207319822121611292832832815312003891416724588073293642935374277554070197280672497224014417382665397043464967367195687116893749440671634936568094280660755258153675115898842904794258946553896335408176112126571815599427785159727740793525895021350743505082139934930193900806035438675902511614626605280078446711779117178133747677518944150684820385091582362393156429239241678825613001528016166752884364748919858589984866567972209890861794256369494419420947653934063305649392292401678671380186059704024565419477082082546154884460466496258008406512001755013506174677893859900772128114685402170697439902187167600161357867583208864009643482322901180655455883510216901395980146020432837163628241619416955087299708201334428034379111939111982616615743205813295979647410095250215952498132960671990193741139024333737890067373734506982755255795712096136024514616964237930842714001479436817119009492295614082745831825056139621059238195423554323369139656908036377352102588608698705043254656880117728997841382716473515856158480600111411345879393388472715744176433038454301942896183885476768893202736036018600535003551286031860321991776634160443322022519802748341338718692695530779873218453481738464082085986964098047110306267589718740074531040963104924281010259619163535413555073025852140934622911159725807008761215546776582558122397564264502986162571062050291765128116545267961130986393848209269047483497647991366229805287523982718335886440072693790162370579788330146204723629600600445177458973438807923894255181841428723119578739728871961525695042304516481031805458543821162709936211755965773425519518368550890818850742084724091252994441422919106099615984532085768635296915681128188163326399582091405224646473030774152101614380595572823730121654059659923778747350998204409885458369588888701799621320985951163173287477647733341447373292031926897993711992766054123557924473278934886754184517273954571142298235860966726714666477691401826485029021528590364485528208155980873759916411238129002000252526147111500324741744998696108579936338719867096227029515434125229560165984627899611272529481252775344649855114675155766473396535461200843887632045845576902698396360743132674753231334379791970039173493783909313683618003625660861366918740617158817059198758341987130620719519483833818245949215764141054598509395861446484751239418679131142951872379539719678409088093180155032041164684179734668547147581536898615920266281867972512487571903305923312479067135459826450571092870577664421463630699668585631297158963461836848931559399419501729699967038582180407717825622267235907621018198302859971718050536558499225277257278786329378600651228606925904441534945746627227093097432584311724308298659687508806304703753278839080560318634118861030323244239218582120272715106168051215628581596388549575290007148886312705602587636639260079594500070536145691129781490178205252979453481638447755445549563821808009804646453309913788324326135391683180383211213421018841784352313194354148611821944990110078924085564151177549687079776135070020409596390299216408885504217343226825477525893105063279553711061993297145597774784918303013036756745252223777532223169930950024698938715736178026162079931220114319513541293410778367573467931413123445618813255860046313939947690089891755068861002693847048231264173980074013342853195041624492157556117785150370809709707012695372866680143308512246209456036589628251497247121648481272223384777895461258837805623762327076831516476495080003309315176791247514590468858276767587187322620045289084405653147094939156125424393332562343349596102252373882396476999011546844961439704857974940128517081469832395900106115204826627427843171071687657405148926826573600720798043955175472468503377509301066055800414922971543246982341858492217279530372905218186823102864525290492519790635930934371547985196283578486242837403194708518349185439707949452589655876262099319470764707316649292968589894142534346084146747147925247108260664991577947830356927534421021175844518494969924018767787284811828219038154117863203328221145008822399578114578440850591193944615382056791919298048301237408153309240344895641530363402039729880655139335202032361181384867845831774254519328079639654706007006754546644425793299076609588471994591615011388491897435911529469297289333316392621464225299754076165237200418783851111580503653581626610283071350537850889184599961038849352230515804634761782435635586215950542786521752497699452262786020065016782082916115662357406153873680433181232267774139500469559373262642110117713553416755021050637253004836338469748625976430142134103121599338141138485494435206244306432887668763787881424101529783139896577599953523430289754915845818941148386971632789098914280962143393529239162553842784461434346991548552734265476275366120481238384224480707753900887933217754900021740764800763350601083471525165173256484734303996973616145367210376324528585014219990408270321496746962157189014519412893172435130896191746946736049639582197277579596642165507512416276438130736352308424211020531783098167035477951593277397075085610131431526285786007804029083192313137364203377745193816715013975048278781131825163450804719595433078223491411215819044651330668384988159523927402298928211917098014897759316160220872493973689505208264718331404318399026254597950386750608589807379787294653248243888152901011976027710257818537729941160283148647963902009525270087572881915720476671699385584969401651817106967234237006706618640693328669370566825698862050328293277456345400896927051167963562650349329937449920226982886914437850774782137667084817235069382496525474484886197476787281070081664741289768898726911590079079704790032089107218747716847364631529585316591321074265523412876571127507924262467674774273285685415287268953905658181218959349815615474735002567737330045005425623020126346569052820364380549414054934949143625578710597093786234793906789864658953352097783995350969371057942408767239813147417221619623494295095332969103072420633495105443204752976050843800992163780233691664080194136599247916677529768512970091074659411521548464988773790545155761951311915238608258255251287768776829763408502373844963438322652878207953043955019577958059025834731004394992893670522161512316026633398921905327299718166368311636433234134494770038660641573666942401566649917852164352802399088900334295959707530629494612503838741542558829021331667222619045120197203476438412132413684486545724066118554048313338508447328185169217529964848446126794359817634885709621995859821958818195911108068237079480620207349171880796493365351710108367530687960203622382713449821213864649646978900714959357610372860450352935533212060310941617589147310971544849482585456637021491896791070149478618188904843834779010367308526446355816047658982740570265803913935217301625312730316405552949733595911467644401220461949020848575955607292981694757859970109911660800525154698454588578702904275450795638340679973778162688344770762746389809783327755041158380700788998960477403744127541226406464835665474001510321875835521879635067855363145121454335230202696114064532384582529596267268896593632445540117449571229404570977824855789940794496061482315928464272214574149063492547091401297289857398927165732668954855122311662149511373776634765592190166182589041816522855540884690356187759811741387255458705144107955536518323872931971417256858415744531090307522631942360716607312582438012710731951789561750291418279856652911840014753379105030743512964624593548256437438760420639259253980456288654915656365809125561626069170352658455866118065112441032622380267515025686175573046858044407961274615690199082139483769855292323497689948324134431387534930023275772208347756827134953625802158953180049935383277127456978690888907096685438985071814135259095554877160291524302894333019368906430862525610485508311408055186512955057646997771455512076234735153801411673346677107634076348697823607430699012706235728019580289343439467478678317516620500219686246679380619473972802678791715106606726938761447207129860178974911339132226543261529267733113067906873176069275904649035305779950986635992286821046875121994846983630726997319022636092759308026399445869242444020883317988223559336847330402057588354529827334955848907566321939872991157012366708737105989094145616784795531442227196270027982732804142090217130687814909597464212597832299885181686791087215574555261852767740137927240576126879837450231416581866152929486378635771908856333281733645025503232061738531857922511601093473736127846991386091405505614091321848826979783655751000869218620477609157409570077092124045100857982640507041287462453467697196171740643672903188648608386875407841459036065952558403582828718214494267868760849267322834018365172203436859489253341334998780895905881855601134522117690926486337327962156537346875393754669540995741845347880053004972778954057058634521037065488739935010935924824745112046306879824979948991073722300802212802148400370667704696618408974415149553980659847412088141769524428983142322034096352465362325349833137048356317168565098622248734499188059991745379063222409105415682353311486890983609756076885627157957134684821642336450877320941519896121083083190978909666405406267507689989382415616343571460722832506591683061982687540456135354896606217095522659441590794189564551014664752455978163905158323248822419520030525220304905998228123028148449085132753765280661196678355492754501923942071376481924806657628377938022156322806746376414005017970386188139203325816329334561920103006606944178551586727019972639147642468310558077019223461438667653781833941462903814581720382376940120456201290391017843858785474670717072494070042748022988657582418107669671432238720820082904088303295374256566469159619006415011329106903257065860826917077221087927620628311304771806949113570682016776665822228591594796026440869305693333289645633068138849239801781888763201663551637946592587421147420037836246060484023809793183267066861123347115958217309574679098101920122349973805101264151858736149467637859280659633634263599653960405167118870606388837703252400689427064569058927742515267906212065596130309023249337148074868562472008888595287643980971854639207796529719728973636160261686766290298194169375888713072081887696162874726202104008544583646765553083710659342550474289048885163862983003889004731091616702725401924960167752414248899695088315024106569476239806180081942505510893506215572394725798421105127243302357922320245613687891941435794122854049036072358028417723052189222556261438603859219210159110646280656569244006291633674777131064951250149985083290691331709393647696269580542685938255360679025743624708110466859179552699200722415758161182869094594322196213159809920293137574657727906893380302034741517134440531781108174398949974870690730404590159175056107611650355837387058012557710465696403328556365009010147922805759056056986522660560169321912639268012823154329848906430908024907526469526748595723916381576848370109701946589921859484398716399577702962127782274044405612293446820189610818149877125949004084015526362348051769152472960709636241553299482715445597263316098557403606080904779894191790572767680914577183723321693377393655105730946593033464312307537400458933325483111404802879554479237954494362302680223561543045125104194959932510416178708094619817601535897760077490413801254248630706232681540352294416041934927230959656953107770721738596778322979632696262924010685723929764023415369552399403346506028532084369192064468717450113111979424261002305383071942277064529309763684763478578406829863558703360486715426058388348779439910866995850935907000748861649036959572231332082744328045146974501170184697517041585494064590392140465044551867148819327468891041979990640445507977896015714675542969863749584785106773003154488368105337454241378660721318982465856370578266683903163605548298303775883837244396023956958765323797288320668067068371271430071643589319648043022296728383744772317806936828411464364078116081307512868593542326486126358723634052077887759192962859999412529611717310543667856653967779804003874039492036645727702275650941572976069968573258209477302077580253061202984121255002053640241952553109717575415255073063831094842477749220762073249860218570989353723290570216926819828557552864808478623208746476889746098120839635621155253483563842579686347202062948088747357621182209998489330900293126176469369266646233166312907803323135067931739631528439327090958664105058595934464879322554223726364647844384470958767033003236631151296645292153571653953955089465333465857688945207459659623209907142028514637474133963099154328729700733306824568082665070736371642990862901669501549566140028347013533583396101244798301717627441367269669584814105531887060350684844325010558955162303021806407726120580654613052865623679500180132126744109434517226645696154690511036593277277175267766171376726361853445210069384748821063930863037819408175501975364959625613496668716167915749722594848297108619254081155264697295778087269948234926954826140293734072453299550877288674075879779662924778887241125174874889034486275149685098641002472776916190656134762991093580103792883566828720926379817803552847507331132242543404098706036439189151969684728250816333036241410923175222378255419140987589798964030133537303888832832287163423582580091334338763428380022351655419920669289809532034447219460934513996557717708983009903530277965978722037787310524552264648280291335465932049525672122562376132503961288591726136897677810258429353024309818394553225093635951867168017977311442948741905259785892398304948689486407111281701412403849062156866154553663723257303770620782854687545333639595048579204403326555904194524178796983749522246396424855960539145134405876048076809028051812439843686729728940678095428026450188554993989271832160619891261012715989768206267524511392405692299266148515361137692535375062136054465552518825286798192326654427701641986469382243461536483133563418601467009428557674977591522776515812753648049995964933978650465455609784841189014236682671637576135606209586443972949580590107180372251632858572800307467792221871314369427317194916737008738384521588557181745080188606788411179034674955234313833052826826516369267623745751706812703731959700183120852422512448643400022843166647310812476709584850010031039020838175957458080462251542649187913469159778743073178231864180216736582340496914730406935892082816035816131481727749399430290164552657652449220892948303136813643772585401229188212360770171558564130816926601847639746617679256571950594399590449836090472122602779808477587624457819164615791647712426011184926636284735302131117894987255986958524740960891157191227079680283379077598518991238879577914839069017859739778057345457527045372677642730520567692307916329536987234302697228973209936175232431586907413530051376415446391239387290199061840699868129222135713268167546819141260989701966955858851270377265980238515488223896637210309010031905543442216484313356899088147172813714173979663455253325858539882674349139185776904418023818393540662788576096515018132164462822494458258111488553148562209797556631510692198398493154220965346945405661911781868109887706634631862677684372927554124756753772630315229517060180053286805796657258437778893275928505617727340605485313975892004257925439976199101352507271525577535920185020677588661117560993829810448279420163835397767081160854291510728021745782137289651929068699551917018916807959414540060758842539718255788644517890219617414488924349509554020597322156508118219500795183776505039273348325509763725444331672259033484518546155664671251608181068639842710525002996496099934118023984842735357149961421033609661874544116416536893602875810651253715514123606743666767148989297713318029204359777862483847888013670089658748342597197472812681362442618301447169492278712941503906641771874707630688084457828460178773819905760544835284952082682970998212525756255388219732701936902020053996163181998603878804649460688540235143683631708160389667875502596989888882126942593016603148768880594637807100817116027876011585191439246032064391507010120210078591363505349651858980293048620441386047412973873948183782729042457387396800378730381641547859614706992560184971489884064778861470319929869694356029493490638931274006694875607259907982294407997732944119743695332470642644128512292406684185090005114682294700339213714636304661263957790721025161259348594989498607537110467515831683487862570406375576359604107095008477526499113696423207966938212839803909859136723884235076237475871312590255342561843822768647812169782768806330673126085958696075766919628771507386210066527103584101317580986583881668214641183771515841506945098010988087685649684610224289863926853358480528524399888640882446412879912328344216241630028778744530941163065978933694154987691954154245821396235667820613781694380074821184261427837784591402032365620590000966043164360234879087927315622678592739356363302120061923272787277864988179426118078044944781140193851510279402978704015601648892012675254500508713231957200908111463379364471813160471552805259951172696470567057258701724825834131047393833991336421833695536006866044134814675725015292991626376630478760081494378836193089321712013273311003504976058515831174391333151444930689947363505793220347102850181784174959655496326289812174766073630479679556469399622091173952347049811999735599647551683909528665168452786067802155240009381392596334361746717645106031732350642859590063806347837965555518547894825568412755407644226294193666802279512839996049261272399448278913808031890481458831535595618348630127660879879571733886556866784434621520563131847502574153545649518758392808152653359933183547975681241933668184340161327537300722482047251748296901210239270402065894430226972828105010381060782881431584749967425600281577297889487672589185881415986979049639972935351550096845472758577798314714551214989514061029327068454655111857344654194408647499808257116096276451189418807410782096584827909946617005136025579930414238163295303748738030621467751871567259313371435926031871356844947118996008297367909070089242057079014078155257259317139719611210282256754946108574079420062229942756634438826712946284511431752143319777942863418756040982951575775627501198897183497946354766137940777922551572260026502168292868672150304998849035134445599407859047969337535006872118476069090463116081019442044102480141151657217520944649898629770774831934033426291058112998460780336861456557141299670687340561531718160961589959953334452090662103073961053006721891401176016139595217653410574464649191861409851635658057463193255571495561823835480303593952835586971268319453162112119600496272033714308263452993187022466489498771206109910499981745958279870847541531274990692635080194986795031055343685700812390626488265827305747653718162569449508309297361059122487295315002715552238681433935891197095734826102315299329584306817031526604281266602844050019737524306013683264460904206486253491352447708069737892328082390397309906870014254934895742980946257635573523949734041788151877308556700321040292270339657730344089724298513106779134628134325508845004119098336085845402433054743783267201722718825570259804787091772439731908123886104989461608926573955600617163233214311486844397351107346887995293338653122643938329745969071800931590536787990661611710032952567375997590955773034613255709441529637303880820313490242354901319719554056504429986814578576390534237272888483724803831660894233208446581717803680944624492615599376806393409191748157421859023272746205449095911258405314328580189074143979733334145032191592734277710995223138998302694813910435999804407513351224983517152009854028483198547034271969272915500554267482832762465487451494768558807087749833086003571595826071295824678741501130142620324127039341696487037146220771971254620277458292159605460872224235512512854791867068161943631240160594536815872255997492941207204825704263634051783486164374388683970789273035976573352657986048231812813844851937427771643512026597985927929369670282728196475558046473064021872855068791484587446266057479111667750780948602257955141790243426431654053648658420460708546119794293437960347413546855787052980480342782846150759719666745393709921871256914975528946262390337345815995198216536354414598167365700815340734880099583222706601205352820063948583536584179214518322697751338448753864947360875935930308911409374970355908143593278360497904053601061930118824838328840213729478744831892844192558271299732172513351740282020197048604740198598867312726365809372281664458080876562731797360211369786254833505445941474277612288646720060495144871362290358323129634504339838651477855090482033865284644725033871439125696218531687573242293901204283097942536139571946038458869952651177358293018813794464482108552955913864772384182029208855532276141687500683415252755003581117070160614559925735516828198164460209493857796849430190760363575029834017905210994516643989681761226818166496132279217231790200010682451211281911786747169928835249712635332041568487082149180975501394803574781841533662991160201658826495930462255216011317113351913053093050186369297660236460834365090615497572709366168750495269820916821621768153872952220714845863127085633871583531919504540159321559208328769760213171069387252016039576537863485208868074378094737741640223277318570339086971841916486726160460931387727059749233258953943915530600711939178658656149177406399965596467405557869158510408701036689535732761571728528635996102599868858132692126489762813603723803568716642913002758640410342351683709120444606343107794609746447799217314104552090545917469731875661538661706923733260170648031053404212574335012867919484192983574266141177681252267655789391490163803467861398731290838838953976995356647190703037239525602784641246982287710074243563931573720437355728679044352907475696255671827914746047528493233994908557480684819437276679212656971601125194283103698545558225162755715268066794101635948738299544045291543320973552798427409229222055729581973785445717524648535069564724267582407243673191977902471173263687189301561768881669601353107827861639131397381368664050881786404514115876281742078698236989500996480437865506209369668956532526228953005106593684629914562495706041896414634304314785450626492349335619885676047735497607866051028136322658235556120896777686355091746959782172946247967353550212966638082947805678931978782327891101204940012782864441643618479269399866083955349549849312304196796196857049696639118107502463760327847827753875861505747632622400256944631110582232747758487432343290236909994922897915410608738070695346275529252787379632478784678313748655692893607526147340591219481969713688693612496115794023007372554479638460005104508634195450224361938590098669838686833036977214187274480205219534681350649425172787823395991193481533729424227993171701275239828274228843709805772173845165055464000861855556729588364068325088597329295459780647646396649220333786063992848071900325771964961165092996831176661794795851304870910469678842022676962854466697011189059699022811430628746704639938302091601569988320044499281960061636264438887767021685565058605561159569455852664993391174876754682954315799719594937986733042178205846920265565843098429619310943201668329171849854854163433347024040637067169584537071408875392784861391216506815466971271191414466713104614831434812666512155582360377240847824058039729663195463085452446457604768581186468878851042534563801136731995393093221301487341868196218014431084013019540448115252689863281224438434672650919517303124027482192912894220462833171799816644052376115770449364920887572643796405799056138602039338596708197351642669666546755193575250914065050949180682534998012865294010460604190450684338121298351592280544621738201590382787740038674814799477771272139357298157600235463453330934694849328794067827945412677370298448057954193471869306734173579176424339912553140084211858454994206109829445224964568147387164383576726674401114093282904896278308720249746068198485878601122465804559837733867980750829229538653967166954906699555024743119001112457326482610692540760824209209014853293396375279322451035109625264151286278032189606887959715332955825737029130294250565560109726493284343726538242384987249094562088870093435436822698429359999018985963390471793290916652225400999423548923741088951000445814693238186859510226435573475241050360485179463556242449635493093824022087270215817942283036380977944621065680782688972775650821409472393694070788057803175397816882296233250809926106085234827689608990344832104050878176971936820560346355475903627351278403297202516710160205823405624528955061666860691417046811754452323307215836925970361980503028912824545851636143482032676677833226783879558299474603434819455588550303491603142165324925845276527691154621387775710206461009377237180346562579499484884654913171887460378636972275170545420275146693369407945485113207761899669254047358033093649418562767569697346265014343571658731745963365937509826545287943580967508621464126643382245086710695873816371940144995722356972057567461129354098840921501362452628738045031104651454072014199321357237442830039989968858500336859905174928981182813018916805870073014736674459170643336608863905608060956088195941831623352173967795649345579642230827924443103847483794719488773660989060275573586494802708751774744640527137126992220744183191328801993204232264186764578906589466906202034223950380555470835948332557416928944265689774997700431718587410672899157607917975769389853172094671805778225397000212908931680496108876489099993478838838858617627961494561182123010000295236208954280571540672588759370584892468419272419700423329769797677609403337787775807304924348003284638225130117025899717763177046160187621866095360878006021194651235431839108951746707338530963462266333402103175504262633372583776670615656868371240973459319995535065074817098921876711061519484253609009828842750295803293337073547216333919444588647259940464643943278044867091533855920416442680428358168151780993703344026071910127463970980772581698873182987546228938059132006915133210765699671882192908408158859913848543634873863024508331661697382851783627716042366867620583885147324390327662876793934791211160758525387660992600422181104414612383055300651098953125819005702242376826437992322418215887359607270522171680947717947435427974932841576643707669071326857433360982788539795698218018473122233716682281409033288934828278552985730235925484225871321212285549176043122170020557091666273729232295289060952581840799819885734592942671091698239709425566501560210806390587156932657889015378537763013229860364405728541313835221897108571272144147757683238099155025164647129274405981544350873405767262947916232470988954250194180754653736621349491954956614601149132737819551434854281037259260778280454568996873302829588586742029471424024411476551069972145906831902187585664883740585781675530855825831414165117489220392791868306484113269463494709051627627491236509854991043575024437473551426860366604585264591297824895730183412302074669808841418741219915957030557302084023731092710071949874824760901237584234046197057790721444357903726574582785141913035529302399626273628547059483586439293447022924914785755116739772629019882811672043939323058489205546705200937764644564714631123414825075589765150134553622413598656610766020965649379909259850760144124647083257050273953166633072327589751371961732379523829191520526151914085498155011293967884261042335580774540162469008945888291913965638249886912389459285526000932227520291584661097255132299543222114680817106932668519908851655069870335680192797329534830026197072975132143108462005414749104801744437536129192338656017429035371883699573757560304519909441648061973944838582504677074420830815631873763725023624379109115737067437601646318487347210931379027930666752407093041233375276529980224037638532283063962673079593524422333033716419109848388966784090488630292337681520682295050365816926521128595252982701564457864231132535739276837723545742631528280094663050921991097404028141828823064883596895851529075758627440930187430143016408225318668216864924384889320685024376383622961947224652646837558176504376573274903160789327185222116830451176467071054881961022754588214833538448534057969358537217878214332289623568283769859293411751634498695747704675258106240040380662296368660501542757967172183740412965168334653993809932305968359046067826241221359619173534896509105555671063457535053088353816783813994854738742945412069268728002413919416311573518450942233593581608756546118192775210211423595935467386874529326911224728168021690759144532749136093613346617894492771236024741884983315600189057655873098645505186321306886283525496709739352256727963344240157510515938331237411601913034324920899511875100922013597794191662534984713880812595979220050811211844319977461928783613392173668153790978678125811513641239175148572782297018531345654688430419070174687231581048387650026150619291125491386547084851295390586012736308335674637695616275700959542310609755120546524140948570563724930591359715934221095895700305791260770464001912987356040881858261448002880377576417890554142667082519727007205526121474707746848409466950423732361210661199216966259887338537229416014671147102430217606283587560467105169744118714856676875589741179276223834650377930140057049537945623060208432929697483697736555069334119423846160150428914934884151740411472960704921197436394110538798250815538591083662911432065843090289270388476654396106280434931169701860014638901499066392270498455193343784428595014039141521163537399175622577495718023218109310025092242515596551823015519085818412398947902380459452495489612366216292127991617190948965128707582675679410768215082732996042114069784231857422064829661571446989857478016680287095103197905358110159607941650153099318539145791820568703507656326762267388511487456936819182639653665159397107689410989844667677474509508839322627514429061988444812697480732580375283272226447624244377651409928985354632016899760206914436137369164605011193063383213634714391228513016718014093314955173944232821975709530225820725048413501733600493137239775401191639211091180620783002088892361660635772734390824827903242489961574001069036791660371420816342977261254142910797948872870375250880909980708035592057430044682304938748862904328404031950652564245216497227438113007325729808623901039710074496267004712536150878188478572236203026543699901810939170763798073015975850028416711245077777739614658388941359052555653237181748394818440394242495529214432157965943390363976120655614779756788626064966542589257187844886147553846633833277877590333475151197358108511348503187568890443736863061434399252153646852811007529007693002495459688529186122039261576261805238636979626431711400854612034421825803109168042947286878313434756347540342518389044322063305288040253602767551804297191577980130198818212514936780228138100308300164313213104124126052028495063300646991716913847581875782665237940732471711907171924369547811596145163479959687320411553969153968861061067098492136585504244806716602512918633015007386513376334936072016487585668220274097790416943745156537787132091135851137280793264549875252820833328058599763327009962443732130530493153045330814980294259843953959667191402508409126440367860265090462104946026644400335854534450480542140848345339423719548853199447782141490528155600262847616074786401755907592670271718822101546542009381199003175883054429800460144548924949264872061160287974335677113806258020956009605498426947743277160504227925252736414223133084835217038266002317097945901660787765900377021633436141292774593040360834635614005878216455350983358063981342690794271088371718820991843426216503350255097806857171048906053592877318163598890322723094411474328459897194726645934624205077718663478089186878083631298874322494568447956521365688857811134472585805473774889973275924524829377459086269560407771156100662000857561966474479467190085991710419750824188470652800402656065597556923686876136437862702541240050489698816544693097375363075864222821989873525684061968422466502783697922100657203931024469526128457714579086002727070415189400192033180690553203430568452751846026332511058038357613299267201955485318654805497413730587971286994789514771921362326054993033314511712346676677864064069593844459779208442370204529418853678551143668727437627751431701112678757203418666032783940499962436879788653872237416749760878782289653107883209477049977555963735132777782768051642241361684806088752671352407399409942696821904574942403106346116400193499084396040350873126626170977028616092383177430612029061240846433530270334801996175412056526949078591364517569209162977368278696697248344498759899987723304288696512083079586088264883494208895825376719999691076707745189762933930424322083300625592530834007239752287397348999937207280560258661490134997432939367252176499024106736077317221487740545437862707826139043196543596741715132516321721424795945160141171331481108057810497561292614170204922738306508894510905291051108510449639673588066627152083648630214088614757836177071244759896825932584022779405226418851825828882474044045104161830706486149492730800108382825210069230234550126444120670900719417377929931787274712500015136935061230237720661493484779584809599142013879059960249079362223551341350471245247544682832872970960323077234586402911575721909622969130166491203616406752937876030402044303759329973358009971450218422220384047138550328910712752389104195341130868881029872484480400568825594608229378798744515662925845479377711148969402398255666377150863821054415986690959652627391842902346980347673272821580608218370658368499183151737068981890831247741233014456257189271135480129218981690304698065934867612672845881155171831857355145463626257360908200663485957956489975051595903947973813905566360195418363475038542086575382194645404965096466945831729247610166167516571540913697562627171965984882203029455750607146419559905963139935617702175887617366587440171157527056056794292898246873050189998028500269118818726616187608096669399841385235672459594790909378280072208711871212410681523401672638308239798048295172437266368165464850946244932169218089817046764874026351280768587729320248915100100213134524498018153051087089563225884220491753216719134741376920583710650793545629947435875898431468457290670928938448210343057050653268022024922094969473771676801551476157265272718221972856762109446130308087952981440791725412976441561248621207755612036070810420323428529110409103426243968338848620351470358444062946581935926370694829017407879525303858837037978963156860089923232160482781225155274306099544563161212791530146459774006958838853870630678742111881362427812108029698296000713566811714512678435463072629778272964204751318760029239405539137724637824136158741936384248303437785786419412893443105197182744097907852385419373301635661370798473946791476972082766470110382620444644462645061175711125351246421312750206924040095912037888493240515886670374427765770399062636673962216431413227745284180633757503947311286282939301502425887814065592455350382225204112931718684853508105191427906572824614711797860557933888383394285637519037106277683337548965645047154253899224853783327548922402677310780732784285902756951885058656567531706681962864387239712119484635148165562251901100055459732440063610077590214344383602712790870064929061775699057336977243946439319982997506010630745221595471699440190208150009216350751786112245977793223103634510022648239693031755129764118125042614759968022119006224966351160961580613553948515105075228321222061220699181216244146128054920544889286633048068236207746046813497580743626136631650021085238925250838520156110639034737919328643116934957866281081041437704067210858260114213898924191505352569145684349854302139484678735421808795073414544758571098252638511941571483642970748773037567209765610743666602786520154369353247977701069408719395388130137859690479795284337628198441596729287872436437566112176179652246713964709791205252786541027512242631703901870296503583346765892814399516020132278022852623388801293093927029163452030974350542113759018057788905984724588762960720421915744310395934003584849947447290096075833867990575887780606008249358483592070749123044197536075159176454152143916448848977188788176501567369054726538784774021258513848493907761997582870617096257525286940708395905713505945556922976481503490624875460194049799288357860574361483753249629677572422992920876461229553480423168971200654351668527595948585650991311448565294739809936039797585279197246691033136181692510708704131432370484734245748749804804029467622831807972797868096113529517778783827793661280236203727177673382966692336358797831178939263877970941908421230878568085963132307415618549567832790477883575077951712340087535533840424832752519684379846084262396209375870362193653782422292286419242928447472188461880776210894595249204017691713861449557603637902482578711824948932686643697005557823636828452556215461086665069598435160878411863302922228542242117042248769329848987512771474498954132817991335281878394744464712377501288768201588186460233180329215789891092140483702396389033360249904393192692146192678580850640852720263980371683146106612092334476725333861728429003831819149137464653973206643117379652561519719453415876190609978342998414533992244466430210014130801896756431881358534102178740799162596950534420866293000621292348303046739143757322406677709918509433091360975978929005317419134200188204513458190665258419645053831430544934962398064082119644633011658301929165360686778073402013220382075947541720762804334121703549454690473212780150129842358986757864716460497023152026924321878496053458160278843259431355492602245567818499223259678074630567177135732635316377630617111663376981757824731247831094509743907101510923370381815451925872848849327735834015915196468153642671408774537683247708236665335579594394455182384722352894947305394033985724777271998256760718230581669414278400604872305017889536032648501567349680262741549462950449529445272110441258160739636289645800999082852764763625532033870781166614401014625778524160821374043663243190826087125865880193427159396732146099587108678775862660947289611801101094374041458258101204387531619001112111478562782050836877392627654471576753784454054790430821863323446925456519838937571252772789164305652119815481966870410083334769431209976158367736085528164234060613418528563381129912271281762208496898088837355796159246862781114420026329385297287787856208449113911263210458386058661716089592834752190728058837615512630930762642155647212465650842910059837939052335628274746985281229496424192726330140552822114616870085036908784861940948238233675247932733450725758075904887627709994705990652721773413284346314292695421588643790449400160935853405763888791025670851139110136023409552649911387653493976826896503907870513701401595658261064002906503971041301549500192231096140157322046511481644094572586132560866890322454740936856862953218793345004793255728960444001694854696673207098424461031335060073755000692424323668987581328528522100080714466770108176281021879021180751177255838973609435662259482630973666716365312826119016790331626761560710299758729463493466999676502907745382249796628087079795787280024979087397487173020442066876099690322210491667535489474229148978019910665910392455139245140909824930112874870653390839440883552335047515549783604653484328636387312792659496720517244332401152098886262245900427427516780764392804513816601370048293334140315212510701638499564818355373800853042977934021995533104919921210067554784568304388502286616239746206567568889170298830285276142088224966643906006927984375618466907730907495777505704285324188550305392635219376002980781232915915819478045243141509690768070250739488116564068911626521853110138887131784492161169632060774860027955363868462811505758069179540658559494191794945224720016839021113078936984471590675431169517957771981526730672996416662786003825855405464425337687383245457367348718982526670697370101301572507830095560580458005822521225268629282573673672205161686666062192443593758541945184216280438263321199233012317982816372186803731056255126408530280827907879803876451286521047838968179021702084266558496836472477813658630064431517201252436940323391118647993352804364068974285727100260276403752883258207042115056215677459432572993416526455593775942156008917610091768148765914494336544228269077319166205208936170396155262644620726076505256128821545033879811967116393877072082716127872692109898134106411528901468251846580830696467319068335850212037521742557267262200647223077303105254478998169150985022833966660032178569796507692693875170909090312912234934219562196354067761879713015813582151023709044027350372605405625210035415264202235296627808342466407057084060350033603417552512385187773928843232833021060696739532316717970392270472581728687514954004505046553355020584445539193386956758598161492503806537477150152703763836970684178381901013515608248822216245869985029057274181579382833664313508239745372968014931426570525344101574576056081191200923227886308933739465340629134288878098410107855709339875965493712731504772412121347817957490618841158648261702906604653799363899139357015935730064204391898624425268422913114907398406349096846009630824967975948896751879136568445089678357059392344616673210190654265903704823626715304634878390381302879827883029220479490021818622326049144934258525830990310036540572330328711241605849966763023674859755699969494900861667085205385671500262120029979377915917816536308793056280959257812976653300845503062176163325209835401688756972026797823234165716848034357359708255130115567480849063693685881535266124676869116715943087831811803170223583103331322990582720829514682431066079012987362405673795381992231530574461019596649404528785435532138678862601353251642236098604667005751484555483155707317914723054412650881718367815173801611086855162583885710635473699743445711525794064500730414177415774847575673819493196124856944325735889611355743887970326893555946621231379845030344452092824930782602180690868352340046400890456880514275422249624072690348403818387930597225812604760959337294184800806707600762685490142514841444762403483651763799009840317127365840780316418163755854590753187642606466022544054316009672384342907191188602608240959182368968548002097740799681373886579222465168156354447171896214126727412099549446663974902817011390815351594011064285595569086760022088277422160984820758396259347413569691597855129283570006843838147219518955466299919354516969323196977884845611788480475929438768201479471799811372438777526079991925813032821687107478725922476277240241978333813702104713520459901674574451895940462460071792428168712103583346576037813721407370526585461488690224844043965917380510774612025388959156556911587223343801102530284286350219508038970322043063318190047466535631931735830170144164614669906919080132909074217337945472982013176839493555446775933088955493111951079904853319318701249653702754354155422034979716434415460662043509072163146952941664662605439325474259665177637853296277897061941215916621051353546182620972635473747763896647774433763289199516915373456911912383941202702071634533360449296270027643605574463838563429321708004622419288789215531206186464580324982313499713465295401870999081023266161249295261936881301429348118347907715400413805579996606924017966924585651416990724509373895383863394667597144189338700798456271303813093993819029548964159410199659320370597153367967518164660726192740932307785762507900405905432609445573096748747256687467902710805166521754260817692631695750434230865478846444844613769721763495855654797133576653724044403570083363382545189298058509327588484010717019474049186585217166204599510240889646514479756960065467776652517214292670390228023035121068628028526388725826424282991571716436414431629462656574075544527584628168318858918001335979061161245341140358516888904162937301688455440944171178731207127684388445778097248307578206014122588579187291767852667861127212265450304292498459352377368163645899584191932748383884926116276887123478022111445643578437788108315858995276642277718571146143080594545552217626481875171708747346320038652101058406347341404665183712985484749749661331358337177434164977642218487218925380012619273611657326537930668362547077633364985916390268345391419695989219158506152643689767465222284439635586748941123515922800762867979193520451437708365075447760926365125416624143675192621639967487058793763227634306017267406003809189618606153111925152366232422468417606685448018649488532941372948299848601707084779001774847886925939952102032783004945644947479923676301812402951915701244295325555960497011769628207690390748701698868128035948075031913976796496212654652766244259688999140937168365165438895612162354538424647946286441098420036318886839898834632051139081481072627426930198895474401538855391386549242140667288821593632582683255952935635938506303478126386065498967530974291856323950254371184432907649497010954948064039158532087920528936451822668621292999858563945246591685612875293746533611466120899456383794371205956393404783915795124019775627028338439676413293339425866846537768279952716589707099240284387483816587004816775841560796789959754803648044188454122367563389855052808753633856777781531863987138990059995539936039783003829417853087392534901995762992179006286910056761086338063146813842066489771838308759649129299814155500609663328060398781089471754668627130222828017223709768572764407823133175158622437226316970720811375818623426211124965107470504601049493316112070040875528502834175760198716433908586214179884108198806985557172201746480176096269284743614909736348943839077501454167164482458084262252754096381468649372375430169462135281828078962353199036259977769610374504418900774030307105817318556759785592267980488417762099595746952185700653705447174625264478454559608221243416358131868866742513649400997223690590635426810390343593524695718500227862674831788557919916579522077437342508506741561824851394797446249774035779905002794080279079472147524339228301535259832806357295032021225124877154011086106999990631178913180693775375122622994811323379642677016717774198033265519795384980637128237028216811815296332371952903910097664657732494480736830794795459397356267221444505874959938423705325100124231719777342038032057892046673163573856480173182407044401627598830789804610148270104678293932064592963360740496854047624368666773909566095195511498187659386073015759035538745783460767564322621547534588896311341031643071972662115034449152392147711813024465704281626253230197045665154200639225186594798422520458919786346320643449137146740209764159720701804683181028873787754664285425472743729514981586640959103135228293769225756294592589824937369500811698616374019671468038136114257599378912325466433567723533938622085992357217157997209513608468724283867121401793477427544877904501329821633112584590651608932922477141364138831060908067618463776126624325238876395416657309710258773925274757695753145186626734834851520467608535756183913961485947625857420558784202687795987790960863405879925666997655625428718998857085078225597214818309698659821041080739007642851792853707558676246798012053322311502488623619288372604787503395125082424564126502770197940322980762227679842664701573020178400220532079091864881940845279423132377448773463302041577709826357376717379755408500213202824846053397769809911729521615000390909215487131739901050569783187360016495385432950184266563538105931353820181626058084888110619791659584555275129520589461024061273255706605247428474306647946767153811592996272270839991963473277260378613081768161004404502833673811468390653249644734656650638051600933197800198581070491725787637919431213394083430253256575824312940818223497145228702566826612484589072711455696752340251028764387377624021694565263722185180588765832856556108146590238218083065229870881316961393146993045818999627418085763212721192710226829800784382627547558687893068008292319752028757812056274445549196083100873957581995900103410234893436566654059514067860845499531159405628400977087153738849921215572129040630612954983990426728234068283814217840451639522105855644453203553484339932461115990007981108278151339471869293549095507880346190450237438184590175334682063386436192428840829202612773420359709013725052854143765389643912210947206470578325837874321253238501000827189527061355381104887130113038218779154186393271498871974884451753753477998545369146407510078270430465279701646384513219457827292417871425205815387292291536193658555413739359550384258642292235411689657324317647396303495386482940618305315926893478579740105905677478615107784828636330596469495613925035210400892899033809095079643532818576799106196581229952482528893825793807881662510823625044235190809087519821194958996560986868212178746159816881778669041955784338710138822471985017633575695848555192689890627175966340569012950221816723106741938373317224252727547501242827593424610935426838235287681025867377275090789098169086849232973716632799169244027467954861971466059805286048992806781201966364459628619600633086203064622778238667409428210958928160225172619082199232025841009280580500810116361544645653320559600050118966904888633291490207703266559827710985653222171430343805992264586350491385664314648557899901921519897286255204668393548558610204929193072293596256457001147819876335160245159733911291961356035577682968971359559359027534046166247360688889818653461230926972283160573735617451394511638642218608217392431039630228642132634961383019181313125947114151196258402006077723589074435170533953332665696193973086762296871913366071868482366127940135931362691842742919154202252670417267948143696592926493248482177126045822481081550601275721842765722202596692640067123943300904338467370083652964152651327802637156664335862335361300559337574631117274824929355944744249350523563978957488002573636160560784528231119294508049312859997317843436121898151663017148502176168381287376656090466556470442582742169265729520042791626957353027968875621560128928859690262949259496038009597759067639911619680444436457284050261036066870886194285397208647526321917512575261262849516039119831261392944155391846778401402326948237807015364712082016109405193641794144000690989331477834728342555191717814667990920150404075302082165885126367536765283926994594719642001450669552750722775096019894255403444975443658813607575015949849560577883209294595974067398572529917462870650559957927572357922179480659213208734330504641713972267912084332257980514692939007084832085807519767180297305088567480909056961001817072691669506879634539972004587769571398915030377697394643987040050385583571794907368139776740053903484048498587661269566501844388262024664883524724087766800627976738147144320619421594875484636339468331597036974415154953332802852012491454683591435095836449103942077885419601773143912168709994500087529665531318107727042683457809146960288318012890403656921894244431463235236687498242292682850524403031095711781571939130568346542672216228431520804038631265419768133032112621753071010575312684514817254515744640395721731983230118315253365764332021832120867508454375383854894153730785518854170683777818852206363956802911489699715971636059814636706866864565009171259021646543314429231856241511326787121896148050566604619457090652774531798404891513677883515527208886643986468202516851908211873188755299234630695439954033869479595932861558857923516240269905332750321783036890750327733747576738501816295606142215604250153149413499017834933803830310379293046447955755503849007501188082989046402449945594987909801795910698363990027138759868678687732380685710028551575220071908500716553923589731531821269743624149656101116544523909105641237218218136891975786637715718496642750681927304350005419239458521802139715903408407984760428929004938654353457388283705037745731714922851975041949174281360693034986100736412481781582430812170002481921248688379739034430267746397717533341315443798472389518986647673593730555216494710888638634867215826054032095172010997114751179519386010227750715025631035814550170512932388759159776330030958432183831340007471516979285277878325068942226338655870203992562910998765417665718251496314712197425159198812559614917969286637147028717810083068768549026997586874929729404124341978093871641480703761794485685759615920269402322708124723338787934467856261749335502855944193152257282105988698004389573594721941679384768500410589752755896505929053729490545186296368749285581011528074557389390151844236857401218379146289616975920900943821824189192295683232208372037924250656005931444828640513643706530497087198868636380017061998973564854632846736443201242605481177952133153510112732739713072607841141472627437260193848811575331813305635060554467864117029487067430358995323405801850882877744346668537235124761634543342657966854309138118213424864931136580713348789731184235766802055552556831116925266309691867048570514559744910132405643913767762218560447571169683422843819527019006666036318968346002696976116522900172094152795423465877004786576735329008853773868201809133334363018790963027951907694295489579117551622824550523726561655077361771494737713397751880696155366863182690093159583178829999162970581219665997403988133892108167367791005049333535985417543600475654915175344891930198555966737283745518042676692419611649006880288883897158839706794442815363957045363595357709997878157738593917374134820866301180375859828654809927320678637378790308833527040557596431971429354878980095508363300463126255551095964568361381059488298664323472691655169277776510476347500903244289669917894269619297476999451082236540182749360256089106568993835236204972965202198372426274481992964652107308939930285941964740504541908904242803881714068206617729564271743604934835020903581658029133409478876440671717933462021030211642292722473342796613859683632455768511487337549650023537928258490549219098103264992392352388445640427118870231338007340326861480185078702879233978185770526036295417330970608323513815684331730014482309774753247581507607397382537449697685208552958516870759595749783268725661701458594840147400520980511143563675580050139087321686411561957082116141482728335792600255544230951111214256565982629677914626553929437779794435588408306939612951289117245416710901550769581436597897343100057154748537703084920032039885450527790946518111900019022890269508223973077045884562362937125403744276425867743619286248352313885680212611206957682022387550836810019209164635023702355442449163715744342967842932912363221592818934699940370268536731103705129382433517356155954886672150124926527882615867457127969768145345346753324567612976933775621436202459828416633576247761446857506011704049006804582914022703821241236670505311076138022080477533304824021852562524956179359706699283887030961458303740507674631026234882908142576918606166654431639604563509842597253549344505511680191930683676868713291301475192857279892573254655137959399849653482183017383734183953968423252142807048679959466422270751767080986636822656623746962067947511918473341709175101438252681556136414369006905458954410654920532372703190216519720826881970738731017139588240888513575582474090535434689228742804852932731656588971048608838409995726277701704612698969389790241461706759658278885788277192137372291932200537048936838571771759774235354645744497538540320614645883588270279753896315345339695397261092184895878671631088173368675379441681702320219992188549756537168767288756751115553903005449986570044215583683007608284786685989181802711890111611518798963399566010621771314446260928683279254296122406450483486227450624634225479665041488100898901853078498226109624571903999895919047219726621850249170494167323792545942531021968784656374195406397602592657517205952053523867420411348207605685881471558436304892370056724056953063971507395668735656520741959616542620099697954829818712008751633737134787890670394064127360761017463555670282708045481562142027938863533364474479147386066559367552935799214280133505173544389750672380720347324755251390021993802981706772065082887552245670209708056572391857366599824192149067726095808618486209382547162902179956010290056607212133606748310706796920899123891910597465224418974412082272876826591599218566862130917103971610740552314827481295477719795953156496482329582643256032028945303355812730117793966161104860833832028800412070804882790334827157459738049507070821871916183529182212807296353088810095923945035885616954753090222856666916008903427626655555227889321155826633723327546133265611427960974383878391047895124714331080490462712686447381823699955413506606202632514984946779335138407549253359013075095257395237837363956260874073618002735891662177429096265812291971375742858825998093075148680841326005649124625989511937933263726765598615079239093790711660787599962856603572585521248750000883388498681751755833289353341733374757168462220309957216052300329743277287114751112430163503567533853931952055375248338152143454040012739935945145209463679200660212203232739789539029754909478783659685254728447200634066498706663815081674864248480462655798128522403445102137436875987386396722032588651576255107977738889377144700119397908089455761632636275969629494707687409544218853059721400904366742828724488848610733922850484621030271061342429443912554098848012569525305265963280577571727705456446774325612372833884681608750783835281262604636382200133126661855952579567281150577685081539211110687210116295687181300687213314365914735337823015796778155586424488701373578963267316066966132987244939063236728362071721776734554645851570177020260402451174223347637938420297517945860807656688352607694656659309634637842984776335330349435129997120639525589474737291615358539341436690710537081216805538435739779111067470359767964022821209275319017424512269999017064993903370723243140921618791073982641916819565930352982770617846042509684847499311408649515886546845308659086714965042592064162648993680749053775514454320017167633237371255924227945221345745921170055986749560073990624335518860325895394658725093355510513462087730808327731128130081892515698900117160224603508923759385574351360844559918474599489113552415558134224247048167251083115662896163306722165943569282914109581284331520054041406142354904337971463093371068861208580239046760613433891565161698145139277291883870913069046694406984027248723518374057978571594794985299358465573188500126370965852117592817969391448220903439392003066391614707517124868284473023418398435800692649888546163322374177883522189727834584519027608353800428581841672178974783755597702964645695044081557586323513032363948634528762006910784727944241546662805154293253129494968388227422484601019982819625908754896968529388674982505412576361751128298473031942965435583002646203559577121743456429991378786683502294321335143307864315739470971923476880968480218541108687166238412410789830907294681193181200622155640538336496385877075661404801362418801813757635449084965498217983961783007730748871185728017574052970820200361283886453394360891813427141096881092033360182929343481669020497883199206271306511603212139352150692423061150428899597740784536271843547449325945859800592602817581165636074948347846331964170928270344903702466702746171875485692065983335974404989610623959073985496619283928583166487775764496900287886417727214278998361266270206583830682942945191581549599159201468112221538641276227635886224044226283760282328543036042174074408920139356952778611272934395895863248580222978126367102670014533624016436821814147615575033489580138003017646855631850890566634961135884150513258215755597723899252904084805866871889034613030522170535083771528524286391006751914638085231648126375978753525968278948283811523894354605326014828830181547514225108030710835804493928905011833353846470968472913936272586295430537839777759344526965324507775532720638415029206940210451877639478814115934628433735498198842548120823225708680724811596930314352129561598841951462249029725053072654165274949173163096750275600764092374231258688853456569181819570177770577190890844826270930336668257128950443829512345476026405578975054209684285144609378325423063522039768655223276539786542252568490320618131889855119036678027723790123232747874803642673151998157482743647781306212576132446341441266041637460180734766674187731987492805657532718901715221955754933762063841836342168381624357454988011448928775063570093625553684139182436642562859837832387562797878831636524440370208153922932563601347503889130983600860031626107030132494450447773755797917022638936691337110332868114105771961793726187291232680404539000461857326832843708035688963336307245424835978118853393943885933375275285780390416362710506210281425830575569684509971073935366311000650342689711944649466602971664705246846639555934121611583882465523109060266835335932399147485010536943811585786005038585636822809216303186332411299117961830878068524752332676557845431228365301492837364221137252289265476838585743824713791301530701730320174729173380718026008405304800662129362852246485081435022134676136734441669592004053103741336810884364160297604900779902975517669086276980654165674218885178440607282445977320647063427801775078415225444992393354964854335648458046510903595580074740959720220143406624544539052786117285615467541853267921601183633001772678988064769816341920349917312455041510864974883565845524767981047660470301250503962143571218316844231943679819880318155570417590210887206489360104369963543126978940807504570327343906804555056160466335415550545134751602965612345245242074403780310833249053118910807093267164412002087385149954968542401163967431903793680650932184755124099863821169457596878514088590552593872834327400153066791828561274019097356420521527470624369887533720315955448775227710974892727115034758479011165711968554657990325787694542044259348321703213920810976059160425243426194608534167077166001279671858511179949722715205417998179895188396681856797025325958377384018680130842499005625600421309882850702913766694289274965614991142813512231713850879900418217275983093879236138286042850345666179854708556186686436503582778258724276275407837471510004888365528586816857504348619375930641625606885330426441753252315032826212589282495033094889771255547066679204511515409182634336357627311793904019236917006098793137016709371528087170728860826186971739065121383755097736771905449075267278196028480615547254290677184607046315400899289936508585879401366826704048535592844284871231536835488692205414718072468246291207984554324392617716271516265671451412400341224429282575988360894061380852388321897958051878507437653685555654921883266760710394146393399883466371327068455337568546568415717017949729240161280667902691033009735383460221748820304451712391964739352271925282338510572246541498152926140084350507345090164644088904885194209752571052916868245672061192364606568059264142844112495291119530790815191339700206951276114431349198290985666022831667113195469695477315201610956799817321215576317305207731848195040947651629037485732021383401514899934309858328087858646286135378567372976317576256295063682940136429722870747021684320074579489460523656317329045147503296067196180645784121554914094665239769709373388136642744086313863081135721478036645908213060271968858279772747610735177695852064154708471360505550632846376848395551150362447141192766185675673140728134345441958720305990566307702716093254698617860461614190453234293594594568241789097442293869309804659928730275093051712984278093398047316828062322884849058591225859613312233534981209673120437945099002583438066317221746513255465835712229193929872136868396037438066731714202903954788744960175753915025145429982024547263267303526875342270099281959275615669075074606962903077496916712366622643781652064094710794545936122406109385013231223667642654729068380989770766152129233340497239901753645982867454138120009530562367748821557184111457363194802115989366992010510303643865089944064258368222542059916105327279571928203262246733230788067612651890341835456084525974373166028993762481299586532098019490042666352402625602976082902728107915110156121446545831936659086365017975807603519465045567476450236773000263801561447105927489512928678139793247956926000198316091441129537351336691252388197570757380810171739112736991835293602431226598106060860313344662266232347539109729621507492043257628524514599858480291899578930961504954603129256196335145662087712128845366581305176909097710891039129834704538120881894147451928379944701934932727027360297800482670005125334014663607772311683686242115929111825205342239729562096286283998733615835727166658145173058217500111841018460812307366046169332510957294324932480803638264741160565369437591838453210111662351279328017933407082134832618344786145619723938764636648354436052787512398330559347032161034450973282324735237150407212716139593652257603032395173216292985812877348050510796138083259673752359516442727590962979905955797965433401174058384887750713552118636191948544125755724442449827668574589718026575486741909074153055590928923640969708731957025456439115422515285314424833210635429139731437332660066291976195682219960775264910424024334114564615433181963339619320647248469636334222392295174870667004088170762555624624304138608054003857636636890962122967082731772331840882171773638506086692905476230606032571815360717985991030968449260631268396995132809687231340391850804259813554679188652168218695834124715623324580321921375990414765043962488553340698207951203485226688302458155282916574036344853786024652198433614392952648533737723543355758644945440293271840823441318798010021556944693129820927312336029102621312872684929096198530692514048353144066496079796864252094296684749723240292390997563104882441947260816266401450562400867993179762657988780461269841351594562977846535363283042553869776849429629508963119820769542264988834355768195736217181180298460613636771893563291700838995744839858430462839022380384993222261826665365808416927392632358479375553236804795575220182949469779234739160894207453132158621465551345635355181826941592345394618341584356275442473325179591751592682397675077176680401642304722139309812150684585275823459103726581716303907721622188659383892924326667063482173314118176616546660151115156052116549108904173536467952476581267205072450279523517232485857916831797443536176056738196556425401171573492219080832550485282292790967420773449498858114622601020245596308704529293802430456639649236026854592620599225055650141271869997526269184388121666400587715264460640485750556261991622970208917116141953889146602942957317213402472332228477040511256356373789783099707797576183985091654476061483633057721530252465060581419320969731879962968193629068020096629364759299912452904249023240880935119602350187008229226507185762336407055927632415466581808758486769894604365721598908689100442743337184183788345654316942240456581816820186099852260787396458799818090134488232281047625992346666725187899215991402508540183832306791044594254745674558422519863012033536376274468850622889552923548619015342559964040796603785200277255444678584906544222520912815954473547461157407575702238591720332036562472406757904196484710113032523236967366278945213041019651595015659749208717711897955753038880011586579994564921737598990299746706267603106592421652068085709266378018076787361818364553696611269989590637044754668690661600907001319446357007829249971451848905358495292395997446079231611452975205699497810619855105359354637559342761444671917811989124189051022101086321756985839998316260160457415968039907175925847149114962252911136939181986778127362805547350082023380557880440441108479183462781968571835431121698384644767709638680691251465528152842408916540665954644326064208392895462172734026396193450468518229257467433394617276093156395614687258392130072136339108973235356778015288155639966350857439581733304247887719956399387226866746563330583384504054407296863342040140929558845191355190343704660631024618043228343822600805119277367287446258936792888099766473113919345360541062389285545316107569876735232274673339348721457210975212075676760378270396340132174487569017046340885410812975459138375995365580412462667614499991032621654467513409001992775686825900052285610961014586827209814786051235866647279063106684535664084998093187781566593082041058400201704853814070694594267961118600513438868832333955403705835466768901415515069683991910744549669354715012974160145668544445413358461290034937107765356242720983375661570478320496932915124787442550429493614873939369921943493632580521266423471259503053552008346735795906876274167367541501173754619599640818542264015213326211414716035961234471566290641054406250093363413064920183327950030963080736719830000573560557653697414135512698956309268052444873374809126964807586647616425039581314051817917867661622108044526353395789113581120479937669728665757381843819663483540753566896158160743748434437208888432199258670303500271732901512648787213164535986622934941687756653740724392984821425785609894686748664995481679807849626195812474245205416125723356958181563673382128544456450302212405399679333373183442850883587126922990370423611048360364522900833810726218099030167468151184074050386727564886851674611132686803587704249646293095680663054946616784556752246391809847292072767900464548445661764513874867363559956652080374959761642363592700371335696710291341684590641474556863468542449494642778480526872132363962718404155489091353683357169500243389398601602572721690845695937641392806458039130128739770026251145573386337319134661026847716897989511759704932519753078736958634321539010861721464184978778345656100356419800520119318138191309888601396664386978130409838238908551559069822581300247241626796770851580913283425822613415594570944817457687164330905269776598894911339629658704836232979550322602839448783968726440378545035354268586458296621198883912307116246258247347836279965199710774938903430793043197114659372128685539897824714231834010958746665102019487607344137799998546775092639375860733725780503633710093219971193225696579705133914787057291128360697278649300423578765060818198828656323553045968260458226222575755575289092645571814516983475776716114553438971905940111366670237051585293268407873974238817650872590205394830104765383888713797559535415356669508411933565289773141975713892736373108483409964584550469026288255976910400951267269303634978050291802636443126576295474061752313311871517988230242045055962234928935850099631924968184531624400223378356863734713276296264153623512979379676130023309073178627552942772505583144418872751027644052934231098013388848683953973782912952573383559821773677630427774891214633024723700000633298622169725035619598862319332781782133778756848059231934765781774353436633200675473435066421880327616996110807691251799499065550211150410191348732666156053839074786265906482857799631862040694645014416051774333062001890268519577109370099521668101643403610340262403781554811726882866478660839362117949694825930186760119183498137952878251999357174972961286075170788575451599834893701049565654427826643350515123122437559289937552214860318974376206601796032793669488690123310720013861267330942298791627743302949010602691598635179567422193577878471707681634032101876842525478519976591887653684589695137523887160268480130606655141284323321673689044027728908267868302175333552453534195301972990949227956018713021101740755512534094669058982160001328850157189088787031595031092289081680273475843762544575512806679442747875708435265118171888963192032943828915221094094435494302165514192281651840882568255366257015422460649007320140298147715380996345574092181444143428864857683467307972132184023758056197850145059010284243346808472623359739196458447600863620599571318360830613527113030006499383322616777052360661839674425935681009860635714568432643966771494770781620658005499643521639567041672696320014817298682964589831231358393619110242049135208809558034069914817604868599845880128584682693422684472522738731780104372352408082066108916190003446848602931477727898940510435408918499699858265040098360656509709782166014075806082457970165177199670468462658662263538376836267722361704289520076328366450362516637815798382673510958508495632917163609335052427214715627361289235896067014021337998748743266801109354054314972152061207432477295369799116801480021219502627855188214545781348002827210820126977677196592292711705198156256860136998239808526202068593007814903739113866784644360878700109116705533458577192727822211440857067725807210022488159376480301628298200255232129272634689501018137881324275384523469536711035199148145584525260523192529352586879909836439883289186684702779047249394582550380303114006035955465960494430297675915664837436929665420972179274694157459549885959598973568745693893550948776182909004674006307887633368178062428690685663609419826451226044584111575471269357849948014965565608535865245993015179457954298816737681801170494444584021068367952689746339280768925416441251657226325291685646146564144706237291318850510810729760201880651237432686581124249340764797891942011744496875484626961486007111138308462683084991142930905969523636318512170482582514793079234922137865811935114577989176084513345539836785166492270751491551843368753113723430347781451538250686208248943717301356577688319845649474412683231279321860847629990525235967624071204496692718394623989404963911261507367849715959636994118304534802686120466618284190935071008324265211770768875932272310236099058176668236163789801731272494456321752685044939994129780357993297364544290141589669976645724610210172769966032315932249982412046303906702308924682327605397445292993677753182126073882025259171501766264633883214532686327383071478322436803635697545229223706531298508133779962252980865498574745480232826068600864524694550623905887575328020900466459881682612218793773268251750636913977053586985058334352605635214693707188771314851030893365186660183384416869984171122243303962115828810118177571995415091113775019208845024982793461836758342403231383082001313479850055775422514291719144187365270395713160133124849054909778659396736904986624921949101683794560280895839664597429053220855453653282435850992157647641394149070924656305633738141996000336786714958760494515341434847492521410404100257635946151979784842911667797431051039971620814059692364887053930562363812684291361367668722860515796687810658123295887287629946551818666523322801287787963681629488018785949340977549184748345738517407141106720054924963019561721581051388748214961061699383219559140112535676456487572473569953390148582041094054687369243770294949022827949113492591795686222526053128940007657237087958253712828288320055186902578756657202149911609620944496822733801497030928225871509931205781276156529445542768466695477189839633623282413015267726023115054351737906839687437536903844901339613868875710308705860531757126259798265769061612124842433934838644072828516164715397827240654317936207041383615008440930518669175714596893648811312111266502427146845487121142303580800012451653541853810153113448246964793223512052087834209025063362171540933293238810544587243486303938709908652196687226904590400394091882910386131120832903193895027874286099857969402043755377391587345765101038083617169623367520744501270210375181603252236527606627772754815117558099981892563803581918171675639792002238869590410317724036621655085741939430087575052566990404973318176252472469386645993475618145945790648175969195374077927776335276954989457329720201486162264336350837727694387321597657480286974657051088360568556087747990687424743197853553949396159307812723615131161472737026375216331667418560217508154996757909163704852168221077148221519645776434981190915588620254304268191843122475090279570203413520703795644211528034148104749511477480312898469866260568641510982224997049276873032500372639902722362546662114224010142455721363921343804253588307779699755206379720108331651285531917977088181152404987621272358962616654670021639552722111683585766894562301577335078516674574326834526338812855639646681566298256027524766659327372561306147891204655362604261836832420884023326100443349621496317748189226876716477088194370745395104641780917220148110857552870804399614818565902129901085132611847176359867763010607866732262137558173216283855004779798903975106225986486360881789604119849566354833769073501994210472997496735737795940214515478004274921971964068782298014464836272863805900327693983955397082647041421460601223437349889261089171791106921192568148977423313892440426107025722880587512684291529546373574291630399130410453376962512758954868397250656289026157968334528448623798043204465236363534538271539218180216128536127266511006110863142982065024286015819266736034239790085604679796436906577505190715806003968672519063242874303308695607855799398777682693973317058917742046438663935141883416800601086698123729796920302935888945647808292691522414908247147101166893778437586007781050810158096893188635985762401295659600274643391601591698996406249620898590794302651171773805150541699388427544285813343407226703559624487448984067642229734224545746382289698302782263459367727835690937669803574074068214512118718275833229814649196132556810621032070849106788264726881452467990670872824010859467562961511296788233709197368277219924288311289715674308059457956177605066224486478055296563815738119299857468013583820575709286305891670108218455259165096139841057426822247881769492394520864796612366553151355157721088395712887050260799810870049121413979308920039857747583793335013295736345322624303553360790418478017016001463696682430482370027360117453314592193276947679557014289542285050612814647759680789135957238370502349461224225962861473363750077256386738523622818542742275595403115579836803790998412106632557622783986170016449975370763624188436649716369035230082657946990192136266096178464638707954091770332047355235632408196169573363537506074759036673772232958831292224142941015637565534360326800030271719635442335425632514727219527724022578085206240264645228277173752702735261081077347261820616770094566438811702551904924641654168971936862565968029809244124122179564226668217639364420041397888988621483565261444366163384913125869400846714432619185668108471254956574520701772889431854242663914080664984757405689696974762268359135633521652953625064865333695331416769475958358599228568225479814524421615686772919192722230638341584260944089752549136716226213808951887658968199590268938954704633862603465899236639755777288830056016362003880319874389853066354706113611175312769983159759262744918176230970436128814452202515998755608467346250874703798948743747891621625803629782080934791614387206127464389200848362471433042893048464435110068793622518607570395382466152825597950072209799886417715107383286471674933984267360275131533425671583748085575145234051615502682930002266652278262558325646724585258922873396819773148672370459933581226633757141056329180137744165576879357496271387333711272780227733399066449708247425783869365413242614903427181310912976872186496611951130102047793995165044486905512078685452499185409234911929770135695325135144362666889779614497661562512118223320363188584675962546356803968498227754473856094422791613874746773755348187660807958032723804742216506453232486717250460263836032485720809993235461069738344358924629105518342465340574962080104573797099921616267941707191874369426682264413666660816969314745420318624301135941345410746643744879513491719238553016808949454646009622134759573025630820837372079610705163246771774563811493840748811887772219482538517591556410964970646659894005908102215278752186100270662283346982536025076910876866466994644357719129220613779470027284162920034399510204029856896756432049396740532807488039169873797230003604569653350464334909609136612274003757706004805857019369068678257948486021421915446868039579879473902009762911086299609533447788253655649454957667362748907762707866106231428035093060375511668022288653847599860937143253135036347711935069871088872232955390604778514879539695407978581461886213654508017862991551916366315717987809687068422027530066110073605606020461400724108049858916840728755500463386170643543723358933489266526736122973906043432960401321570741345544358661773807917441762553428889062720188091930726310412099061925730249623222357857557282811049970240205920597028372332705079173912420434626555128078325397262589202487018097692202912720964374404551638199441327810811739098211001286933628595762376278122438890153731032982243300781100684010678219713654729822388751010222581869318836680083728075004857992747299132707402366997413984813411112991813615576517450270229055747052854393920851247542887466549370416948881219550566314818655031417610203372794577018528252048324704676865939763458097495427809328145682187645848025122355030208896378728730570292410239644874884273942968269238370077996948297761130095969389942739290129417824614953387658242136907117524749331071541147444945392173200375267375520106151224630634551038348505647676820467776751994289225261992618572104283991749120906185560566364884581280361774043979424107256700783291699740726600647795562147785259369638664113799481465796184410091246613880329057450416254204014782009857742694788530938394059341262168973758668283028828827253514429605847912489397216426039141109484825807545070076594683223970972963064391906009772583957510502007512713293433661781650381043792397023530081381245092688156077974685298877746218686944170661095802878989744109678673868674919542287227426114757343042029571414396705491757221646112345525462128222247611160832175989271311851926025551845219285733507505037388294685377732330765032231576735327842092185040808573237634112207294116413774650782955957354157634691911419045035423193405869483498797721103944308950029080081683379115646332866828127704323303140751403776696189098585289350146473065859307468367844905115062510246287004580695515369328459866815221955411119976664586437289173744172086940830303146729179691960220620260309713225478244145819779696364424459459559393114389221633124884428269781224698468996994443455180141494366433624490210007563758617412280487159886105750305895502162048979671121302036707902533388038044252657712447517259875156714887754685117217035569088627592422534026415786099905356119256242311540180857382339467043177487004454524806282428183035660997492934986640719361505981356537040621215050323271760355834393101451856491048500900145229508731168768528266232409006537474718830124261422140908275540203331468292619552156473399509308438179580236490785046623077451003983999716045129377307201569907115321479935385905680444387753916881299159609388352151831724088603562729707236588221624216053059163891595614272375717315269454058365399983042052397060090457761277896258740936068428000806451252987918693927002319348356211271489210264361612786639550434686971351238329307709273603844579861816445213485572499573430673237570332806070758512457331671907381754738044664802335982131275064030783970796990651560487504837405440086305113765393853199062907122883081203829504443998513669480720598539016121516026935178561758370512417121408388489064251035890601988669025357305314148801779390518727058730489313094309750123111982446635568272732843742965753649095397564846330583690744363206048681388484292070774309150765237575316506803032014214118427318917726302583639996115696741447683201595279868318244398992327368937053280598324208624482095674538569027128238058838932743831881283318983247697374164025943175284908652489403507592926456540719118667542769698261076503527428311715229563056077615215229417569145396628072605033799687154984282632712100527217311370717200624953036294362935510187774976688815234611034686082181907451406719403571049066621261882862117741028571773472382097960207435387683750786486391518434927474092032383975766714765230525486166188878631555800514542393038898220811304770914766368655266199449504897127015425529977238025016099023512074599774655337962041799127591156232762012268658129492668958856939223470246427780194689918321625901846633587373087362300617829039934578976230102755037244746482457014587329715204294566283575599599943048808088398478308651804297514184691886088901604764074895991314203457704326765349167001457457371360262295019061835681193091367249333603550705349218004373511860740332669209824334769106198804780632528076688560363599589477477961734608029180311734472108564197029410981768948536536490985003093335125543850570433916985679193052851114195957790847274126633181832704845978892792401232797305832910296090738792836196231084438201419612384731029613578233384982709485409947033267429684897539636791994573572480302713222515304792665644894666426787392310499872591893265588524089098491881650074221202278935565489267425410124337398610694025491154141498998848528745521474509161404419606595363294808786604346538320214634638148802248637022806323321337878586415751761423514800384341198445700405541394136218506717782132969433056294113496012854830133800058332653429568631091710669689332974926237663796171187972042304781678835909688947201487038579126362844779699771807768481311027445872463239140837365425127437961871473544241498643216059939229091096374381096702392244994413604141409039206178088787886452080523108662086329854136802412916228133370812277960964701677188335893249701446809762196822455204985496265333388167672292883614240097247292198497801066308819536023947005331507966802802452452813744147048729064959015619160578780536265065712276235638934030096773822490373087741595173668405200598829397690279656988070423698486075783048610354473682351134299447563155246504482927245632327399201394769556679534792538932180509429818369993766535163796897031594478362106153990309455907371739259126575426796443689412960316420808493671504111014513837759417646342786995921909391967188065307109177951104840371459489599986727777160032698330072640644243821012015919649297302978079104244195978546980285996031778071472170798458334537318252629083281502705181967366719841367565008346986419281487489391773281880181923539549024987028774262442949256244429984841463462034352868195840391800696148900197236232025972027431436403170694357619478520750312648060494752336258553930977472991578151734092351856500112123200497885769457110339717190312923239626831051627434373025074496214658011062284007677476899617316485186555263354833997347109545217018314477960074580855960664226908407563274056035694943739346533401952371052861920354431554310601495328404419628489801715605512229244992839095440005190987503030075343421753298275944980351237325582560551553851345334579325420975561845679091280615744133511893667312827806185041328620694395526936164835445308955833218468382974347934864621847677669623793081849352006103575315095809468455620907330374665184280592510379433521650402381620714347284928817076885627942275580061765097406892095185577434821093380065248508069931020957645168568177489687729876898722992966744196377094618191980339908144421065124457464691507994964019483941553869012089578920220891529396098121784193402329130756354757547997783479168461837508774564266910924091753740878141905998639607079626932982079921578411806447183258027211055411313320512440280764942196782733486858197925944955769971589972006429870911562517640030678520002446724867174325649261891376225178734813969848365544705510998950098375521696256472516368930973413451259382896247579457270208253614880378708500435114725440539532683244382902618990613489482687060563196037306231802132271279260855490406526530747017959437057797748581528585743495003862328121590274179918719747203167865459020966360075439013670517889072889318269114253854728702642269713366858495501865205363669855320362945540789458177112390426594887479786957172398996494114567871427351046030815245121993513696058745028185419611230657430662936393279429905239988737087196170358689890913452536664031807034201891470789586736517394728607055378543164083464105214037913727118318796333101594135177893975013019508981000466011714163115894451797488335778325182657891987815488804778095837999887453201468832056262170491892619266762435497979157226010526298555836183914748749293032400456428873731395210459637316972370950275620497832347711246785763305972736157527953476501988992375901316696628575683185794950593058423576771857327307374958976489097301038303596757681090654285386341026252377145212949397196784358764322798025769002276771519530946231770955244311226762915479193644498929909712782300143583422674701033437238061339408984744574359365641268054104710337105654604271129957651187634653447755453459354220715222543337020983450677196542278615226170704774596521014551108800191280006784126653008343613018825556543403573880292852413384967832275355007202833598953557208744184659452220043530790334800035074122800070230162274295723259230200061286149778205483326055466599948789221610555541694616801868245672510262114136285109950317645066639378023423821326681220001179959050494791015505315252556573829883600201264026832637050303499351445460393258158604408467109756886214076631901033490744135241027009648879665600238464500008785720886938135069624393645533814865123808487945363132680095118286384941111842039900621787997928413109377132733179416390675456162391753737124995916012031576502540221773233846572940371954176299719625199696960880185909168459913972649114061577977198712211921677902657610477612145581603697086250149202187099258332152354313676191657954457615624644479734103042899628335541538011613328754456787223733078691117384915295383970352023925493537371656447111975128544093016960184211700970983120538390828252091613237467458443259751432828787378205596035808653022391509852987663154316135230339533211695311270861055506764199847708143425961049896655661455536304960633297841071062425235277656038938288503304479543326739201923919816198838499684048190350235420624070322421430219284398833532023842080438956076054459584188347899730411999946585987611846038588794287111265621722628090795278676335851418626187767674173217493059730076017463220383088983580451849134701018790605137558355677424139541015683704889267271534318934108789029886470820153299083428239657684370560822230879035734085120467635485429691911799472921573501456062254419481398806419090909551286817131105481313376873109657409083757780210936421090602279749188662396301052091547899625631279459859453364242606845797824592857907152745988781796471069033777611169619635445903639447151619520575077135963784964494785364603130961340192316087330498883161086609889248461786218454981470815681924124753903120723949693643107536349680159089603380760347748145793555554687810975518110081296061657024447234920469489381443147948121336636017536445690466363719877358394080137644749028521578858872354832543113722502650490921339765364424186185863901322299735510563741713840952016699801820584381749642267167485219055171651878696702367064541778698203116475695967600530308414015536339351179852924096489242074802733730627925357638541031124949986465086374366154725403155985677493600267982654676079341320952805082250904258221378995923760278638107632457593903225472147307000805180834766862370730300831726157287521418278741290398248706973808018895823775716997886043061158927015892982182132296987935466342380784172440557466634995699410665688108038147826475492845916652049430918759221247398389026370617649847875556040665347430566151251533974621739704739686688659607282014478603507153422485066278104074338892475577234053617269897056342072429441873187410687768914107928809554758749267417633870823248289104466975845330076268980864602123745110524711095979586414828250985546860391452894660495364651458631696953745054534649078026620292134413990965811225134532410308565412515257769451931264822786880561134242011448038118790729792742391788113244447557283110842023966909125031339305938719846953701325307096329299018239040372624680197335179980396998646192987648791092453050638948211192275863737754047496149814050199497343723608662474557361553659031919315831208084533863755829332656157876852387104581666658664077999804225822523870988111841816705954776154300290474328294812808583241145247430351095058640446958427500226440275001800743775930495447885440143410918982587181276549752188019727207801568478398069675353636605916633983598859564957745780069407670599478339953378691265044347525379218505830496995088217680547357665746714901032116601758849710242125606215570927547512905323406265469959298758353162355016472127042646236858709206490445391548429804129799418043837099237485364001305666322249329683807376501559575678782092831988743771313672969834364295114521307431671853762910366053629070219413644550397462547810181164214686665849027950065623103887565247992964461050267096663490279006836410967341936196983521695474495649900657218526100316895214869937999604012949357727609664377850188756992668709113987976770509622219615341448567818431548930461152524324627086153432136755005666961888319636408698602749620024376211872000687750259389976192019819346024580461705690044787183544096629249039158128608747432393606087701235163117706666565466472130728490962051852020734818426302794145010338303228321452157643030896401595106996985949824199482395277215330087977645511364335819410477598809067549459727812722021185555263198625782674923075444623038506928690376864145903611285171904815751051429242076092091527146720587573676831213667537530447218392357154131663542105481815617707622429720516225063547742822563620235682905550091321447329771958026498590587452278494102349519154608027372198483571028733691628723461721703795181795802882466262721617742801288822401061134492701872991175411763839727593902169057867823225597438290055100085428412031748479595989486077266951187534674266382554357708115310330562969826052614923418177437882336770135735479744840082869346569949761528027048373753125190716257387308992584492597301504230722804502067297711601721104807730348880093062840486359048871088805639345583345419351782343919537614999765469822404328847493409237711724406093991401526286135645005787396464482323691996222819663364925703032538962437508540975174056357644361156566842846999525400399120409132562636781674100255254167293094136261483058548517651868086994220538081743449088500538914800419933352081859973896194143802359990341149731566036012495739017401499715131336714475831155336316376357374069153776713726771278228023065204358336291983968345667983265655914217858445191189269124099179453500369509349348418214252362202404401946481684145726696281596896144420857424006079163475440557027374460032251025112684473975434617880726240946470995274413285571518155503982457247558969668029260417318763646006248025904623065035291504748559777617236800758204893148568122906316295521796926138846534893324267279070978097772106698282185945270058686111796416508030802557487934407320188832458606727530193176656585779944393002659729442019379986418152900907832991702522547470369152752454277947173556965952950795035037799467658194902234185578725910031862719387643022413649907430031480724271443590714153527956221433234721021713729461051085828049383702761994759340586418177039494863712712043437619946495886712730866238849206995142674501532109912220370130224277677233968624603266849367288739258016188290094954148583286582914386303330209955972482620825615424713459638854766932210748425323278973198039445167267816264378327772479327712944020684419166792193704132031704880159279286853402471142541317846778220286930580235502992084540284271226042464284211574358670015036733976135467313427085049944186497145725124997744000196176407468401487705262183480513321464511327370435044225475209812019546712092250753040154812834309071040891359788434632902486436740779740715754902154242269269109645334236910143064475697129594841810636291269658462714554301128960964536453898097297742183011266431318090718816089578850337303554967721442548050733079179546115716543183882753861715351577712941723200185487674758035114042565230481040517327675443067953430621339153589890528083965237759617819155484218400105484303945861917222981120197467373689801250988392949084176396943381203669887795694030214022125256507099945074545620262049143072491214236236110957121899226868463454758051219805606960365488977918351047958874671557704745511052175675867525698924482283377615797187775235340637742743392253278037660731456985167781335948082755789939333769031413248905059802793685336327572152902099872221374622554525139446889974326620477858366557225055372386511388345059158409487775206928409867637877598188660485866324114857744009238513318721853628891652225988932396805576683902669297713226636171977682512406227710269376002179184293129175610357818974295725338110414568946402903633219577112891407420216919085107880028830402888391392288934012625393854449237431374217809824008026235419663133946135099655482086502745141207415136155570673138618420729341819390197459275438540039437881201064486802219834066646751894030129341377457091390584743020733850865434777761510198969085253584694603384882346933083729887197079019942657068696188248760867540165982643759812451618946791800357357032213322970383516396494159794955930125373053348900892846517249655752561287016943215276148416162340447621745223782983781666572715750893360985498505212683825526605849001563904280555175552537738108608670429451343031899837376595288307364873796484108131671317892469326088846207298943295126576962772532351377194335563641158702857907759347953700953969639998968464918775779371516095535595951106875384812275692795454672943415262365981819857375836133943109144479032274230726431763755889512417560117925762265940263215485048714507571376755072959847440092038744185582887832200380633369548843441127619548119962746878465432501708773859450596309648257539371353103034576761074369494452353736651806303078800979238590822465515148620691232437908672211220801579180620125784759145810467926908535898767362504804095957338932192586996414827852125220501288555131439468914459711953350078595651608637090949863899347807275892700961051483103714183687876661666668984881014494468876761969503938889256293310102857539106155571366752451971073589837274319167640997993407466574712324422064397658358058179167073401950768470255778558837259444613412443387916013100811776957639730466837096882824385488050410738926820653235872593371897191055926138665267008488900478581330852166844549620003619858307383871118582095936553304743352892076009303233944379284237392463875893931847652313548914970496537034977332110043607218527925536888893904624456068811451232544951538652320259691078780393308060865292165432233372067322305310530510114281937036328468673639279647033401855007261526038593221351858992874766566946101827539620552467599706978473885289836365336742292950871633678597354902475058196182388859909949284430803910679641929480304835955473494426165264161852202985722072285409564136955683492696765815280060132349650844270931104668375594456642753884990303750234611832445891295650618253284178286137569135429050554286357225530276650723350157186279592596440067114811819026731722454269829119771014495664234369084010894427705286944525311535795502044682991756960819014133742230376859912943763218612550636265272905296142722921989615865462678118250432692594086784251275091840043346490128566120342922095337569938319067481899385035365429796240569653689741980700443381775088103424319132718940734821365432666033255286454835949186366774100848816779936879174486762584577909427551153013486580865219008265274320078566671263655306073460636820128296260810306447501461612957717718017013007379419773528289717529898173200598116943258481850172261293534321082925116438055575149047774190074301396217474809862842691591438276490916839949036846783416336277812402936566492076722721407527143117554573024901682740736989206583753554208756011027149273791277615494825059797349177927139292324245832841065848165480975025718074179317191743184318048666784673668047047085169059498990952903121408359234615599892749380966695600480342300595550000561724171497396417007946773305232108389552277411818310228658256588367489744586806963904246014017521309193394985614526457416748252424741127356557743302718983557752650636114636777385404818450816142955231977938625225587568389324550316469876678883319399905099270542856117768551485953182288511087474548831980009976806477950214014184429057890088876234547261384479704098099709403357109259827151686971205204889920464804695823532547795886502813632821530958133245641388843418379318400618757098208209498150012380218471218314299617350780359076178378349442529602935943754274968317486129417491761407948278481108293160104645930319797662669684851555531994575897393091164014656679353785907724914683138261482605624774182127023796147443126246582600931992296270799749163422256729580473658429306409998554384281704305489119755012017795093739533452431562781458932362955085840055954015229425652113409474592170530706177790492351857215684139757837875556881840035404671962252026089204642593454478201914908973259645901545386290018163507464182364036047642304478306650497643368438298572617003522639279623940865576221934421708895948942304573296086979851824965243861600278047079500735477286505961811111366058958233365643900060668308484199481710338838868870632329977011919383547047293718124928518384514903503524744600663791727750915670640459314507938686344353484707205507423212734368394854362451410066111401015886205772703696241761507710336994786555861453202461939055159001471056529777032990029232068578519071554012057190486399008396195235462630549677842463563601907433757921119473689232836631487792025673996836825581425082074869961259616580918476882874046611871089959367352579796152203349662317399589975411782055297889499702156147585506979482937074053488958499122650359659154025328553998604597470676897905072974990629156547801573509850833920933931867231673962411399067606747467037465607442259633000499160174046902594780159329846198987357375103525298625253319737140550442118612435758578501731740886422366830478915184814222665871210254213878469247687684788643498473986023436257911272989066895227447294715740419755995719902085518506115116688068697647013803863276898123578397173590601675552508884278777492912533389679611379348279005185588326638245450286921202735254385806249228543927816503864347171288190558060134153220120921123162256894067651485173280819175180885569545311720331616038288475615498116812669858299187946753628313132425003564894372511240670869283544763875883187548438349634064872816497980254185493926076032511232680911632382173172705808446995522100446478561060612362494509057412444128302831400821543751042522876084124945359799176831804845386467219167178679351259810274622377020430021986137089171968969505700857474181019534584956523949405332025484616899357081451018083010959706141226407474971437395456981545652718950038515986261090141401695459931852929640524657192480087276516614826769371964646147886010222503423705314515646169126889788362335092663992270667855170069678728091446268706109812016434938791378934604801733135395063521739804484559815931802761319182960353429578116314421588469254383904912990629410957246884554822781990262008857787507445797418847361177985092477583096860015141988017501039288785218333779617169072497966908276136255339270440606228874503314150478416641769349390215305387509629751629015350359722072568212759714324803714231688652446778470018975815261700657928523313392914919252246073604761572882003808845906978530207337839661810940954138009634637632480236049143654344227257617380178463624992245237447685737979609222787990455653768176291504228825578227170193552503669522665599833271568316441822972667806009883879310035396150485010058720021813601291374210169893824047979969008154230179221539127341861779788930585892134120003719007170520430257544954320251819714560279291894484033117329356233819953194508182287256978430358065601024193086954162863459857365329825034340873318581524279388636283923553227171334180681511509449410231647936383567788375041077803100385044929545327597173330127828872635250525387541004040016080357613477194514126692705548922021780595329802237961178085736534594747931632006781367062284241315361368173329173691703093074282163857986757331147379407960659235263360913418662331008893230014363523080086384779415557909540403987705200965531181407259824232801503380721365325151546964305208233098850252018313009044773267058543986943920770003734550879136927557893915852975100245250456987222029695229718806674774707803621083850913289651200587825517231440824493777052025379115082528012324545055943471799716225627354745750676103420996841367322428895059633220132038187560115605053272564332106155486235218979033120045643051818887334309557944878192312107240144664570285897330059426076085392153920949928071757815315163842873146063465968149808293021383704764385034468411436337722252028711920848103299258047116727539017419769958767037428510269334980681819724614085809310313991493837471377025827921240785302178695531731236452558215510154282648339796442918686403608662611428507382055574281560898640680462505547150264581671263496966651547574225126235295913580823895393349983609000722530882272185620137973322769205157248287488382205965503626702510535179984305835348831389662087090719927828459073514812814576986605345412505066512483212550395533773879264657835984231575211729727309129070523996337332386715875081333251112996311778951415468521675142432607996215437813907791167303242468139158722681984337085126458452464576837185709262215744355091706839699126352147881536023012128591954124785328539960986640827166577204006104764451226589077644266951487430897584864769884642563516557640907715124352769809636497915666768414211950829931235709085002381857313644117008998618565064212138298068046437697523212821891627441301151397509200869477601163575070860099206925969987691154562296586552527291812560085115381959110996897608385762896921562667918456495288912696389060464513051198007318423400895057228059956327009283966441700468311306126676987375965392124181256547487549581235226296140899346035673601852382543610276480869306720980019540916267396082124502552323996426709674409173487054079031125260469641846480565604851980647354542554262115162140757422558084337569271812540769873335603743161697646810500253815206838409999921370106820095593717422435291726618512732607206394444425938481100167262074773654634128476288353386435794825216859600184777745309497268664531821458606885023551810517643692643724937663994435484285489408357556312077466628453483902004934424615698380881417560970867219735835465315090784984727770092670928321745728678587434978007418653304485202363843676876894343596368082938107766032942597404836105418748536394074011667905763149660608243079985828742477109362771521202951549012974750526344089265755470152048451738088705257954958072399966495732120288285991956009774066850141704120925799624242352876314079741131188030396225669973325435903234107433047733017358325512940918189620190672287487467741286082792521579290122787871818141461994723119791061270825187004563849670451818630196724970018027010311419248867553541952034517844878779995583362945592271479823372104441120337599986890571800443099950691255638440325077879810932184824589531491549282789698565558968783988620434668478465057132124809841633604279709743310976098570017296625715632894767279328958960451359225777336995657694333875170585854813107209663091179140503292723865911748110043860016112175969533196840577081632314581980167546552114188722793371262978816641541453840560353589560001336923858496133140174102458794422358322349318957061716874858439637380500704136849097537717288424709628301455891367667190373144480442757460578388697292132568035843856843640805418720990633659654658838751032622966942415894742300544758274362667515584483417758646729161618804314248260311040527029382502440358620617606849943495816449862309593956909419248582662911499394206208411738905754912940446742761621785524118216259573752499607310246522942001682868736372821127738440720599535464270529136766131861382578519110652488768466398534680118898506808586341528759733190092991205839454556065439901645117134510053267232242338266599340183223764569268658500355542230046225892037175848196504095677860529555746043297248805505326806936772838353703039930502783434155935679977683503934795133606521771906909596964448597287759161631255223775366330205933989719677507870981792698031038817414890761692945448823416997791992420494087854348567111150583157947004731905536197608613464229867675938994869454462333911956014412872130485300614000833486345343645570837468850658842529602960817042697698787072542027748571957757142650612159554608999680429584443119226870970157030902768085376871845953517767167694412135830617651953796763460741948597874886218731644142990380084208224057461445864995681813193235710576938605147766948386043604352419949093787734960388355357412067475429416116798745169873169893376322337078410660556073031721706264123775236428602153753461656685152261784454233116680120563654938349956037614924882267763745557641564132773713635093524267209774269889884466032209316225010515567157714083455973514798581097163151741185550697178984577819849308702968138646187367456992029231254683474858814973855978234390623277642002511560961275887257910548919742270899108550879971937677130992768214036818827747971354367154859617414349126010585385521381609953463101630955430758554966312128491580913816635404476541320997475588809573168436920685484448302745257051636114024820907606331933835341272701240354930392868376139296484373088495661072850605059195855786367454688189115011980435590501160255399033480190442470939210063616019105987217459585545771013047004033937051874470561987467094940034280744047952892782991470719369851143363469470596805974047945136512635986324837320119412074042613762270734735965413680319724636830838465409171829287549036045757461570379601331953248543226897736911853676160376543765590165505846230484211901355570332805542316630881664321826221336142580585777578826504805211982517424947896305538453983631530481129892628478304636482159617606072168374028870411534298657079972927880128515861687203758468945309751132772153044811926291428657985649747838857253020452302613695747948623504001263405300453091082789473429193950766760725682903285480648608424845039689619415875634837586905657358135310223669853045880241986294891888986362892209422531211011994244763429642213353706650896583611175871072716728664418312325154185779915420267269387646585169602643779823645085829295466001497495614223745687288578253328501140239890793691897424434056231510213087241392687030994743180426172702025639081578127133954106108373986368860367306877017367981511060230615945753659580680205593110406517337855975237804874627133575615364895959928403646771973284431728846449134945161473249426910323927431184892798051706775402055412798909568626637734973313719563231071573513986579206742219522950350068177102731490635208539975707756078046806333493401955939235807641485283787403785037444173870430519216150155120523393788655298615387548085327801884565619652074507326234359520270689444529568948461861045498763283948218442451558047646453311396551510874933294936952203300860519585257769498497496778536425258113270408102752217118560516244087616281966379121431736141933285097750050351776486742322182500374033686296756257456449071656338531072615567926207684033910814809424930180095605364334690891839238323441892894638777982675528083672617228118030301124701912374424774817275291063705154831810504454335719544351265231818543491233359463351132710569639550667909002788500018670505812969729167806992187280554132157774502197626831630453811595763632624353556012235439488774406337063640293988816161891297130320076269293399714664960613216528224432947837545629547638524640441588306698674328728859674287894514633361379361343316261209810854976671859124545934844315227461967359594590758612608627274451568103673541312512538020608596356053138773059379866406040393119751883154067551750540337897645319036087365614441091399083858312418705270608346781546476640840741592706909945667686418403494182013607065457428744862533212936332202717967141407261277336426174846898892363967113655924303201500043375526048471634416550462541701851327732756558686654849612559131284922178741363742863396710737305312794723164326105328548215471085880033694927434589936752158281478589207655674902204823045289251803303550951266339402814940852504389450059224412905111200190895494100086646075906332394556783600630038194422014894010419208177236829532448058698393930497393899107571178380461766885409865988749865909897996883501100102211860150479094118674972691792794089632145163384354121280985602563725504967941944548398812604627445155845616973515000046482841393120761768711796436924375025425243363275200934318553005400051776421053650623036294355859359318873257362708436624542539766288525061631223389700309097778393887941074808222503642409440833925174108853710825682782700285253044042261378036367706909420033528236960230046049084775486134471365812009798904328112054315529295772252547660825784869969887580110357402466847385497816247235472209923668918536957406943190023780214293112606384934847606798046609093233200857584808044450351506806372076947408908795462687765942326873749722404820200271229949747601937891103132018616854128758147832765916543203927906089609974904448247958338598187447605447621147609658939256999274675635434217683601944824176306267409345154773251912347671014288676463936449052625922631746057764763413596603728780903343147523702994378251334787853891330012246212277253907943703098005626887185524890016617323830748081967908526436555510235853237279912640539938537462199122544752824795367518713873162211554948037590136488293646461327465712508788029894264525477914398224730028949160957949279044819204788424518284554960437962338827551716911732023672293576677095106393601415788604523555627211014444645449757071038449857359678746275759030312044880937539832442220825625285704380585775588680125436845928927129313960631615362281677441923404693325611520211562993621863318130717380674333627054214746312480268024068689237167740566875340594529692599178706328834707358841121493135119699641275281412038029058110039202024608168217932299439060401980262512151216722805790611145554416748186049432226431288506488836747699258185028464898506395843248231434408142600549027742147308249501603834385431105158472234280046519328907630460868798064150968514020056155704827182517587024399017461528661233761099769249968816342174622980161862776264211007393428176303072486255043356235295216873890838204345504249890434236907877957294056352557217782039249577776838859677452323382676178062445930152038015901584522267445576609159997655473362635812529871241374333812016738696494842275878723544387417718622690414918270309810206054459298179553050742361536526995292443062192635306064128025313443886087274393707611613702837795611552610555286219304472951660571580940192616224634909404259155272537319803217996819970744450321062158402673682627728067808045267338235243892601230776743605610313737268834484177690824177573673576954127777394431262609552917248544481131810754404145579284229263789210406353560258465127559887700913448419691990405089664237250147916357548518934845957110603416004734240750096693216703937211469701457444654975258760160088752540661504729298917495930336914483260551614678959032018132880797986194999388530100854250795481948165845066947758046007822775321855575025184251684699232976762625581054328749894613755896800427721869933233248637955108576510367250739579810519560537587063923273444970277675717417161997251967853576114531885811870215767594483221790170475748738820738515165456273992405055574340421453137165610911660698122481677315067729546611341632786914455130600263559190747295310001017786174724349581827135953474428588209159889190588712131871541642826550055589418571089046828442590987794408728105998728715933735698844489020606659658226359324643700839194827844782579131339431383331675949300027701795473949246292679505325532699463501090613419110453382601756923367636249847920777563358595591074299935370928602084165216499322116821281184129605864795315031039200927682905575616143073863105806011658751602031131992959528941813534512379452218780206075586414001030545555080782924655549881921567023690341858379007566341097583769356639724901067667486518405651951135897396143089222181931487352416060870381917394845679996572190405176688462521003161009476057022475000002222556530424548033562878462221862554664619808742156404487792654665017286791604964326781267310557207666826793211150622643515141626419376572149728445792290998828666762370784214721599563655547259418958713613299557063562087446460724335340411313098474989526897634348016230981935084222764499229009719070617002311573180769776402494733668618416488591287055315044888175166545939660077352776600300270152308169015985175146136369805301132844919762678448411129152416658688055191453024117234908261000846712897331438370284386440289716100520145531621938882190656811124850393730283336327824389888525351686830001509402445909538413636089910110198569345033214375958452517566086978357008759181744712169798934743680919054553652754576905781456525826209435671248966002891737168687578117465285004316757125748407401637123165833753062608929312482620977898159441617199992064358416488655226289833555555234948571151178124070192101515814860391796510886691686763758055085647711900882260227570097319778035977294769627443882158767103174372831181003643704847181338945154500827229111403671689684958482237390562253477631673755803433637743313562154891779332673373593761574449472342923539459934701636112484408659072331036235828137549036250707452244187894234401129167384732922847637160129452198889698921948672627795454923708342575563082164098162968692588095020397229702262171573292493310328733640974835697658979374181633630217199905395466999708633318354205447927646508349984391492903032810267201486687364159817927615107540568444863557093330724532962804046486489426071454758372944385718778767884518041352589472115022677294053701320502029946750366144217727476887087130630331402790725990720838985029568765311349663761072998039307294598023093539087140047522750926518216793318405391818617093598209503058908837564429925083754032541202689759893493769125266918538703109415018165107285860670705520410456651767311620525051262385250901064512033855696679709857903819171798702401333312656194046402772325489803214929340078703957695516940717808944594946145792058445335094753570723607034401454903207524551469303782083893591774717066900152787734492303614383522830216433670480447090994880399252383243581563183145923385143693301877408656722675564846551323841638341826134729739696995524051634800791196885433082875102628889746418650361226192681970906622759061800667820812886766638930302978768710460013368346545932626136129621114171242690631154150498159853227484055989624501415606714077314604707657804269740193046137375980293384118884884665003200022670044464183656493733998514778227475874204282877939803023978902562757016292569022784990758593959960329717246900670294525064483359803945581683503428111525576665990770297651171925056838728048220483164677172834899920710526989538115568997639547551059429415534478745654588578222749132511880129849786097535986330105726974652496300895629144059588944292964720023793798439009680771052273005741273720174870575516497519133453663577996142843486835249965806354191656413103852881383458118424397532503393902022856342789511572792845795963432063810159361171388696532606859535739357085376021699807671801551271030553224373427784384798563590770188164075091845977168970784569399624802407060090747287443632432761471509505244194195102027678769249676739350479883046836288533186056003037129769763908428949896424747740710247939859060354236648077057405161412618874123273160725164270549000287165703702543251893339802342275486829591014435874602352051805069153546586403453071163606440890466041715182113223822451005390074931528048306426143673963117174681318000409296568391872611352708117345606468753406417387970981909602280643870840971689543154186699157581615264657409790678983211646536039175072646117995070992053849810995002238125508555278667729292263434351416153046768660365254322638129138366758540464662376804937872563671136820505150460503577958533594475096007820613877395232688577585432671600537737548841382285230689698051650627546418941327874533591640008490846978406749643492882835656183119086236476855148155362891509753207112056378805510352471459749332454008335562805600924115198600701822134829572664151121506317284238515224728187276574986646468363952426657512049411931194712524627708609516516816143004697862781621432184994982716894102848820441158402267926332194759126591956235990499583805227442901039936341832749886043671941194553794759061384805081827068536645601898204251794034383196792732952907473577916066643438220763324209979335710634155638662241033072266979221445201276176318130864220071916773505319727673657061076334479683874660416125097255484422204909814171462591888767500138709051557698109851006813669738922534357393347017329471146476195946735532883189436088027510226444506754447320324523927390488143446777510542528103944157179271186041021850959558078824841090142740134365912611569612767513763297413527384190102167623447733369632001098658593999932792784655748027705924317881704559893613265759320451546351279652211624608790630205877082950881290086834540409751786310906851876749430582566835922999989572835009054804856859735284461738378581789306847951040368238962377000823014558796242488344674195720577043932861784063599829206285121256481794611886161004387025721056198701775713907213368358983654158401637697149477459863130110293062541016305469414162401976412329267228764862146392666170413938782591253559029205361322951637246857436294957500093210149280732013354736579271401495473332731448166610856156382069129650532936207356676110895769852055306439514544062290640053365594402396921967215263895061999134790223192826492327596892669890943538755172130193037568675290809199164143507787431734317861991032272925070437533767036467005915668550534564132906498476221505232264083102655394183952464263717532733539182919114938816637520716768169925708390559964896982316695361425742351916157342725474974681649476144623244968708060642111692001112048573323198880925562138819285306624854872379925271627129638033302566416828407296307711073119938751076452899948119929032969079904648119642469627185683838949288335891514972129337122638064562095973939086534463933798895615664272730611177129521181079221082065431058183061442563834077199700837352139255919254679880086878048289707551839983558538221805219372703786192693636436503821937100522381955770308825412309426742998687881777434540861366486411106339054839954572690222291907298489436236096359145273447392716043050648906725417768455804984659943681214463116188492876462484128114375201432542474709584163670832900170176814430293147782285338325510447235892583855001737729917433366884039102318240732450397090469182315770607756951623042730534729508001534567286159072693029382697482680142821999225656133766763519150432058518619963938211378048434698423578056519975791736164346985288234011835320094984229709839558163898062585895535783437172107870976736538121583134376454099265140614350674180641062602057825923931893272330077964842252054420967626915423766038216226619874284655630312980593873694926223165101244000780172059621043490711811721925160164207137729102590690467202656317046614435516009541194337307704924199595714854749362864832072165027969347486991338037263906955291298398222759610151564617286125054155698083779621401504180553768989917505724283682936272798378169731778531661002595269152659895644261410497028941907984987404753789831975821320872569364049310744830069873172034626185490122046586181115539082450339665490137136465387409608554418233947508646784305023528414639844875529770300349677181500896309570625267674695888210584487180282839707220898195757350614613341088580553421118220982476820921474108887740574151540900218061651235480902932916468931312768024792297998131945074257540029267139108627585455369555438899539911892255842592728899922290455345096167784312914378829473963002587560448161677391430079315134251863875870538889860351610300080452723755042339222557504113498278747573649882482154731682040229856597844935461647968654491772914527497257815692917198953777512570064531502828453619274914264488681996855691484541430240417620845238053131843369469142010496749191535301375039852702103585641958560679364929906597612565964100648975901757581712072213216115019524010618965816119659270107099629004286005017971746694731782164521865690343661647759489370536116471889618850005367529055887349547312462508864216163356469441826584364039282400659946704345996170537098894478011145463920958603405436588779085539340660306172098102337288024781227676661671587995343039720346413289863332521364182130931796263265259486047190730010364867928824261784158905000930239716025705369951631556616033831721927642405315419411937834477601790825861499962510395963719390808818694856031816715735752386163190113074540505031511751107732728279647063872803878486884691163286309519723990760468521945640372284241755003706942346389159173828197503272896584270578787135757205464586833339481490316495477988767964014318035182925373008784816875192351844186386847368207157556827768162514003328037167352603663206520432812980077439839665938430066878973158090844274119564922418125690393772810021221927397596136593594293199923833231024598505715286414607147294905746127590346070364378229889657919591611073579872961836305346470741716768574192767498218280755417668043978731480831604709291154299471510566968194560867766212610669251159010839260339254864344983445866529471172439852747938740770109178712171769975904737074142576963292248138308790230503051124307340381568656982357426089176253706487488183037048766251658403435205390331781769885234309359344870475250225494679868131838716609298915653890419254019453849418760187035828007172757469906976879268622296820948285855962817063189853874723985966513515654078729099843809592408512414118880233039290216035563440205275603776743015152036191046106994892295119814964881405775144252803935338913618813745243922153480884694974044776225552420800713757869119113253410237756356444890213009396217202038652731627922543495256032310619477920220101140682168760522045071836432427851293904393466409028761380581216859453160464252434412796347598431483106436264525775536669689633299045694667183278850374443430447403307874766581365975284170533303796919238419643671964952964258876120480268463113921670084615105046549406911451614662948948507844396035004991693960053213827826744924873257357709375802164824128310351473616858944170597319613003054852438763029482006203748835576435682385078228440613591836689953418045518088015116038736925399226406818841395073769361469225621959080824246031503903024364846571429784343482208886377296598767286068152789511326912897924333427993779797049099836890330010359311891362966528013921402455876876962139344192947438095443490945282334749251370739212017746579283828552226443413391995114372464691169624008381807551547348394120500366826674207231760113806024536372027680868530598939528168389803229993329162756902841811211581085670460016011480978792040908724049455877715713368932404065080957673036934886962931572011358663987651220267263655261274548490708587888745567919402362754119565729072813092040179225200805600466351122045148320770153172551094683809357195272496970068684637266946728887889330682510392783442751032228500834227413416497655153093760977950525410218389053634766890940128571192339056109718193268903607532004625188864107605918905205610073533106148133871516480784641905133340484386828091192393227573185656625290339679215193202122779261741400210419249347647156241209527087677607187629237850272050177718406527264045323528364297374143590234654116759509696486298974675885063181973633640976187170285931022633724057337985617004524595985288959603509560164991265544617349629509768721903584963342691480830202542087300505854562017334987342444335692193454570071355603925836096341121953591464307599523500426858658186247788801523847162717137081891948590563111434438480341229992133687378880421847371306988822499273427715471406752288461543870842335468805593781180336250015941606621095830957490797212117742566021877811404225607589536484441688881907872256779122857292411174801203064985060568142410573489753184816471800950305342029055641955430444634610902214709305076255415385557214662751778283608821450448504940674889364036385489418499297157357634345259922074486637428950052706545175876274742490805958732103184129901980691949718673941702738799654153250606408112423102175179555049307885721560605974690780289405208716083881942765470435379997922273827316007383914441214787151145627963468395738857353933917878356087393229212525022430602002991226689436716069504671684719631001795745661673607391479288267383713863301784953956388108269641871770597437319681899040982959409788392392322479932303521736886360377752041752630437644137353975289072255128556537082756760422737732237985739382868225049745408265472901327647527189291423953833722208798977590568654982907298731484385350263130114334942695547497531255097535755228473772876207616206947198554464420145700567708585498185112997390352665488932897973967004033750400754099878251565084784653033773276916653075618560448983221113406321020990436278732591188969987428058136609085714134823116987868474256387484592734350343833499008037166241160696882963605047176357471464327641747919654651580255827395695646373032483754823727436700509065131573044341215675563472472806030539249852040745749910800716209340315555504405452417855615726363484947699400569404058593392606604399743135846236223067312559734743695657214889301267431721385013736873215144285196988721428004016375269812763708085427074118199989824420664524533432436037909587988536434458711543221625383014697262886664881763900938737207234749753146117695484679922053938694387976769815213858821095021510269704001629851801698103021283788524164847749034273458342614773186458940748367469431193111087614118358778730290206267210073821687577106791266376114292784039633555434294370513658720591780170189908473295430995723988561214934459037216614172836985969307708142503465617098492755465854481068929269613096001021668967316977765086623098360188125595925749072267602351973763401396985233748586613035519198263333936871620461321938021696913633030115971894024936382462572023639947424823520247792220009141373813135488256490043379635834570563285245713459014413611712112564967995429880140632318415985374347475041834292592060654205869833330431761972614847447731379424164182785225243198774571677335139209753500562712991762745688795399164247753156471671606060820980207202809797008513928756344751472517281010673064051858238999298375803961600959863223790506966438391406632405002472707699978322615525223338032761045818012883723791132732325573674067596837338627596088568705686511196311070015003568986214843046916841537550661368818296501823643996931366958523995109135822545160950045185641119752736658090020195830129691536302985431873295871289451174299535032149263811773847822937575595920836477749508936850726755703812885415848564678768824296204414514128204083169489367946416267972030537277165582986657573825484024316633971917756860040133797131537035695078775698297441667924135552255760017082871754799429580815807447361973727712653297843542821285122478537055361274019300891813975612966926318861771561697733780960944765402137295942623701880238468156704850169870999271238822709269821992049236787109059885397010995431296816219388954665134714438480003305877849742909486173206030251148873137527172019398957312667531921628737963409335183821667742392521348615096636600569870834368463577029347295112157074042599394379569563477302447182625535132037365587416461888932871670710272129366036386431579903136139693606944090426983434057842582960114882521129978337970292467986794256068728991474285768410383243025154648964718218564404453940015663560898305803228269897015896508354955133501327310448384000817596549286019966383557351571030650737778673236136829174564848136921819103041178963025612563504876902380986666365862315593230501407543332237062990422605838691070252546413776133977519713409281503167724965413625721144538745789199577170433488982949923256946990763720848264189444502547306304090162533624912319223695807042995572129263252239503166229421686709771909760528137185609734686064045170387925436833046444495587639764823680139070415434958234179001532543645608569852065346818850304642341804673052082720326694487998393851175634084654627288052327377439398154157270583039446299551015006978293207257891674076509799830645745412168680258659331302196119259894335228670126958457658543257485068201531161895558586836188680780966402918617659736762546795329885322214597106191251860386768132514675237923301519037834778844542834303293574193167353436082121881727047270396447250791322626616379745886463880674576744193634036311208117791981920986847827641748068811554165624118167794727994149471623020891160752542645098498610989716631911709710126186297265577195486411715437272312348412614161672538749956938615014988709321886907280633671362490876449429023732732593750700542470600616145127475107300740421997101015763932566473814528509085567179451355166055609391759820986181969978104442689777411321669387516966917649336241069706955305074095679313425709716153883612279546970838915851730220096620932760384974848368109115740148158935223360175120478398916987453090074625924954985294210846770309389972497204538363142256241157454327625977769385611314069628054327966881722796375327957910515767115977426078561192758163232409476994534138993918388207823749848951637430397731291233091004846798759681742112755717232234353842212890676089411382186802587361380582994346916900128847607774031885983605089082595533451444717415216751514410615918348390367459262106943618695124059064549561398563000231905012955016141388973489227073948799326051978815832594643123175368322957883544490986084037508840870235589939973998985648622161042714943532550125551091783625112482143013962342184602275493971329480266888226591354917832313269417421826625559855821835044644294487178597125652083626270042577104510843213348544618980591578797131986625365251402606640566780006445069027150292427333247849735813500826910491582779658964287498421286351382163087350523307598631608163383250332324854227312147057486480453513721451721604370675472758913852188990399096290419029920603763113154517565744793480052430554530649877195394625189347230881833698582635492029435875271469509170933193853279723599198360394239546216257467923272146556160319714750003332609276205285037716563831467205095913058136647970621689762550191878941804243935975727539714832813615028070036151617458215488233864843482563667229430116038740994935086764804755957727111997879007657881979971147979436852211007512010824005796875958552369757264452950365452594181863581835008005775093545707341123664733821650308509099156705978396073539544303070185078954674984084128268439948659620657815588145895332597015965454088934900441874804642132413166680317024782890287252661270176185309745939993451882116974878098689705516722963163419228989917363144879622917026882761661057353275074811554839485367053862802418779686206982233241834427774745313274847050081415822449357102071613415671368257398443950157375547755387345824302284991794503507912014911095639934301179947786330310383928116818591300014577942817587799752963996198566102719790551148024169878025872095687413105786702724430869183493139049870463712555153025014447192548394779936448526670724911978300108901377625593080321920493030963924577311046252940377992448722862102644637628876065287385209473012073014603704419831779077645447969847623407304511761805008685319021259906488372507586425564252235056056366487796599739316241904779192474693088378594585559733435695818830261463233163232519758770263982832521332421838445875275883639674998769875403435189748531923014352264886288217150397920910095209958926792142089718798853194519408404113746883735157943872910876587087580013526737308406578727719397428818500751621181053456590116516562714049742253448065839878690921755177910411453455274195320683267867373309266956894004521760379210928833232286196977686373658208112248415669366670816489761124746416299284297654550685766544883354641657920147185588457580246581098969284564631043621400032951427068840527820825352407817793831482079618442445424413290785822248915603516579552110921163375680952127534646740471558457280259733073315208027938833722362139686673130566384556346925122292710349278852059945345134111869458682516780396996644055486126781980423874874131339255593988344624336801688295707228431094490674269984315234427050874858857685085490427521041534437568331753912818099887518096595929090327106786730885226908975964902366417985565000363680708920786154787970736581202146441099923690441009359904646508720459780832580339037443265618774092798217877277261891950477382521243846155778265252570368203837554221031799070156494814909015423025670422208708940732166110796132999132356001441699196626258868401668306643026609229074735385731666299715909462853860987462861203535940490118402608927269595373447812986856039730896896894033918878148697711001454165893074856020057753563765981623322242194309254752685997216301935833531174762910821150820899903425800790870808980768876025450058968477346936634925102067237756334452833691181825725577526793783050130758720109087883855592523274403727022713990908151262503084974583568499368008549018846452577672672630632186602850091288921426087830969602106804124594683245632371970973413634298635308487496087963891109931097822627186442361290491959415733414990561372185918977243624230243901967963457339343912094606701661764989182412406749514726921482395924049750325235847562130094395266291008111487469777060729808370759981562363112909007217808211361032907232591522178478977583354717763946712170873471256540309929013873997917204841946873027927928857216396828122490038393107289574772470779542882422410847515836858571505859895039112939957617605974949849964090151865403448821457948425748569825888537424292849384353991975919295308532456927593770975519076275976441487202103162227513667168490061492754434951129722320250698495635549871699979376593891168856133582716939930025660382135841524099610148381516022710425357304848230259475119764629641944821055089427407281781925532890851869498842041897803389040361228005920956054095598073678860736270637418754702404738669878048079452397056747725601517406271236936521394146739447067455940910196203966547341415899787232124051097271658566058444648335629805349012098767975430054269667017150292703691195605619370047102572106951944838245504739527299439943549998666247621097209090173944643742893579369920462990112015828140326342613685438215088222472133117251712427218702265342742385390168812876641118162301063571449249191229165490589560717050048863843722341023593478627278488900259564860347250443120411958418273604780748408454417749372238249556355639260171026291018367691983794739199448978402528723528194787894241730640334950333648721279238024517959265627169812509104063180784276836054212597809506181935404316576123980299196529148815740949460114017853075074211557641912567255657659207460221396662378330103676335124552464852556979414888329968173334280255017734144691724691462656917740060605907026611454935463189931379674562272791611454056064797688542531618144111052657199625015405535753275016549464148283071357675334536462675863276478863557288808348813158992156930698682976560178494463846473725883878030786100719304095250226232564041476854414045038221504656816476732098844541718548159954074550158939387835235601229284421598039841149951065556293361072029355966083634642223944059897112284884546015579363724195268206446306201479839005754943766977373581072083442968768718390905417655539379488702551591552397855544554958171260405982332142392805114580395980190613048342664148934948959373703969965309857652518266209499689796864148541507063205030498762731197925801552029754848739550556704943569880281909642671611980396508959294860120553193950393613971350870640745536659113685508125806708260618409800004463980116311578359752540613820292879405972502717856689124880545804640910990265888992962933659904564908432602205839319640123101790953892068658465194912566965046712883891471968033397203948113552775617643205171450694210359811937346843232848644061317113860178678514429490831888201796354128180765657149234990857533143725363949155840367400182574662278976917069753703161176009770695126290388413223001740774312224025871384650322556260112795325773597801220137728176118964158463406999936409680179254937126178371998456461599292060411074730678745381228841194709036848541986250698353247097172008109479289452226219091455683985421381961083472993701759215224227437530694901101059259667653983249775599601233622980538786687046857819518526646866747667510840727671205776575000288277766209828872829929492390156784904056050354536034795459074994682885237758249701264209196718916844999110729838757893656720404147506524339288144277302368642776005295057581742895572558857411482704822788853310841810103589870750485124029245180739745246742949586862420389599433235164941149232834437596286879034394114764807977474251181281874178331865424812598944092461106416791386464858173840601872459965477407713922163305520002654870630294428379539682258255660001210896124089420217500825275453781649357842969503002609193679833858423237344066541586938822815398217234839511459286621032419686242258975102658936057819474585513744266586754407416347183420921470766026023744764135992550165234836595088766498174860981187722082042748461715421178791845566580023830063116764745850194165491870042020434052474919956189217374665684003191122155394631278781001261234426229056115690244552753392231499223336096702932944736645917069885746052744490254528957555504758056468544496730728400321836381170300343477068453909265310886107002045198151830002642007926270462239498124399122474079337430333701691862281384814172836030163358079476454710453571789797579335538443879356351694234003576900536746471475533754145096625474511035540886913723035368589104085641447346401524443502528523585492925843509903771419168514757488070345166570495684063966433006506881012723692472248555687173682258201795066518394020517234774036470929743241537537235342580099781110788848306770959166954419978090998865521125748731529498160619750701213671356929846256388162902768081529657231201790984615459285734085846233783512814469729211531640143845437493063370675089909260835423319707735794084949393045853441500219142448834877519709213846436491409582034394120716713473096758785341028172000198894069009884262533222577637399092084503402053232773960182479034237027458632966021584702243482883424678899094904011387714781093711917106878055725553597243977123603272358198339797962248900399976011275781002691720348328084167304649392212253220494581427626988451882441749992520012245630149061609054863741912859664763261342244065685895646460276664052713902000727903703055310062776393583420715264098786327824818692008500771799941323241201892298947633541611277069833184939110081264603356166461481620812244619995281643047973577724090281021551613326756856506378001074423126335818948169553903222745604676441501679459782004482303385969411757918063862408282014782485036819140859620815560863965549223227283628425185117602664891691044607484402607226917068306934060590728017864959738815883574856434091995547665341642560859838841111031543243179384888761076225350273959194234130425130409318644778236357927728965312370894616008793115205617757746258746869220927387394460687246122106661755360026722748292495285109524366783265404225672398743343918854778953188140060898142587400622107721207320340406617435175287905111580239445084192806381699113123379094855534591843914647213379975579467736478778665774407878986571430490201658240019005557153966998750609869854802095884824112606188487170275548381394110730067879695501538508758561788307137294899225551802897652902105639243801945392619057733442244644320850076886247739335764723301236984134232405960896989722082230646905298043057545455604591598007582361650800538806090821286526803501695883366773590186179511749950916021335910481630956595922034007175671605909607106465516913906365774149303117794941567685635151136259755706679445517510106750838673255648417690616994111978833187625638242441150100192317057923893729726137797600653740325313430209833460493657077128900313482641953481093330368139944778254121906959710712172466515581925746290943162064381002263710973068419385963886370072818791115987029552704361110166435008452508713344075636961618802444645415421476364869278050612952485695017900409566579216525453613504060363048235779642366982125990724245093547575726222818293007980329612973995515294451998254337497445090202781561220804426622622389400544753188795669358027815085087255730249084314320588049483360735473627114626491673634822657775213479609569636175417649366214049153344548378857174246154207300983044599688346649369355207974954995881721683002494484678201742268526797177927337795046297351399207182065405637277030210455943528675565970241595642590791228342439894330605926794001628084404678595655438533373447093315105563917777606098279008028463424782168660670555166390680884504368153145552227488003362494822958063028569940256348320745304351729974327524966789814646855955951842490795197120733458386301936717305735554720098273235230555564472381298351758121808620268412936268854635267429387448236656701723271728751027504830381240631559832105461449860285630129375669506849356743676945052820865704319269205852321997988722664091224276988974533066824424213823828222820725422891453641653781998275505033855278918054704952068349099880382791121154794163000791040870953669002379255639813551540139511210439347363123998702429343161499132807887150634290935855907562502791353458877888842617870821395244424096783137869117165466050618351992098509637849300643125378423512208484512182384907401200844615948046031965447221890015995821280564994935388290200232152087079304888092346039495365133087476104750663308854441592639774514627124938719964153608548202317598069122340606309619740407375126746291326023256342839814475760769260601806311341338159025960589950036187487513243722157790760659487138980150229497162304642602810205914026896513451269579852852124495390872708765080570006917028861152302345834281956965273520857759183524430465461039689272691275005023291672696822521973457793210008712467046596515601317052044284947797498422222531816535064555894089125840103821571466068036114845859087778533444627783178811277904671029804420820306822860640808577080508154031436075011529840850338774599349019592388906611198433611745911634723983592072314826139138336035351212787418219647456919672992916660079425542756673247498257554006523830605429796718727329658610290218615995285413683471767761016293270482878275550915004883030408527436565596422097375492236615847293389376393950854572171048957591429380351748395859627865860181516053021326666232274411948538136511019457539741504046261447080718096483137248204741245730405181238389456143285738678215821028314823687012292353544998185980947377969006922469357075806702047390046960327338906381129697730182428080089765815034926488263944977634361859076390306870304989215325369899599821930384536677212516048152907282602090620057297781658468213276991332729250673890343588131368032453494147605414327423322191058520414412680751734485011009192929406526612512414902214089462555944111938375298614406494837211762786529383230928582341992504246617067821028311560315468560648478646875052188715237899432676118022884880273209839483978121289781059116270396455455343494886849801932944762934148461329582079642810728667309738578997428525932546905342071088072548537368255685155721580902994662928572740059659654422946938045390638492352088080614265681619269612556030659659804797222868364224481056791463257556803951957684172661142893679932856951425437348764927487896363289495160586963737108784822996821268583728362435749733800392842599509138739424006475289445696757630487862583388033983991387692094534690374959589569144896010829316947792044246875929220075352274155672552619193705624678592696585875187256492900806854130581845859861654372034917126577083032726823925920110874224190887109352059967706693771256251046418671319807654384501744192952504048781447832486789986900802456325414741773956377630557799983974387501739141266581629257157900698014211395756095236567099048717962323102768105674898090003408680400427251079634981111326298777067659898555280706031621492593911289554394610499825773416321989713819233578011501944656639107612727774899517155546481693020727553103983121955777566608882449243571174720854461604104153962170110273379269851287743330785918117821448757664267491389608015280835932559439914206758432306586741294778740961861987027598442002954577187417818053641699569421797465592580473838831535315589027086606848951419824453788087500708376528364280745341802413109206056658205071147957943085216974505366246775675229796423565360444341806945429166608878134336433393079133099226358260811879041374384796704581502132307930843170775003429413113475729177038762958772534844444677848878261701846915459093436980785680286921604558300447566511230686656392762796729857576687395077572874515395390232757110075706514235998068092958723404149030136787421589601484940353530736472918557330563292283187226176207753440664019343587126342460944586626318985597771891613531670010205712401868186105309156440013428752415444329332668585652064579947565507143022810628575640911370012144649144797121675778581782234650554810655165559980621545285052810197516343890744339657085720721906628518325949737327135140125760851865510217391547061547379562886915740733386400213210102910876837043191688482178197640009946881529030018893184152070458248888462175392559503933227581035092058887444594787894717852831909255271814481480232823724182741660854356115644771150468227271961127202476456011183366472723072714564950251463752633602367905586785887339565240832004996009371921970410447725375000698367337547039578212458306809201691968091748872891262863149111754251610291165562451526886700551020469298325554087773250014208078050089647380062954673919365908536975392368793476942424716120233730662040263635437010237898161637863409460894485433188992162356327899836213927575833552136989407796675613406079225919521100153036287600663745430884116080862286127739445743550826916783287927483728784149802683331269821099671099594138922902876756985713049348742155742341880579005270090388814410288747289289626674331076953381989119008401220455704010562038195941692048797942857004343343168984297304726468108085397444886701861746424891424137804231880785732987634801373844742139294308965739939182674714907747192767646438841435808980668637084738928224004313584055407744184559385383669754230536804539796687640650922984576039650768677894351366923345267243799695839272093735915674512443197164395617979561367666517221428726049469609715862585394594099187742263140819951261519163244866615040732821346508182235268882094610980397871715841105929781831391618624116804608114119584402305191137273588701700273501882566220841461070446707180313401649002396270684225301386345845212975701784202466668293069802767460946655649117074240904302057204569244995097283417096683303494618262979960390374891498671441277228686877127958370415841772492884917813650471148552592863967275464085149483838426617561641264666776516791350456087046848311355202483546723746438366779102292821713421894303788559202915298433271436672869662355264823836471520793470854167730115055581284292749583170125055674780907647194680019622208977758322723044088826864357791267147437866862499933800381234618521774512752021646099372404230855070798656549337676856463188988929059666101266128543028005580810697400977034382368961539415615780997021345899779046148594287888928084835996539483766779530971376686215915931405329929189192675068797095640821576059294058309260429309490958161777314514676118815918708511178818945967252652841599567180061985244493325921376424300031470495191335474704915611882059027411729705266738671978967159929143138346081469373029955824652324810433449753971396468049798993297116307708178673873778402341707740182796952838578460129379117600497180088997408534783671367640701289406940778014968056585768458760020207869661087658698478861545553898634068755453496857248895971652254036357299737874008728289654715516291790668031452638583111388600838541306404991331401848103426976871647364477353070532332862829665185271210023461452198424433277087688889922954720218459445811985157177094048717593144870835034130213577911416265173199421898857301164175416741250760398196270397200080438394740050114267408401543787675423087764955925501424257823827972308025241671415537926472057311037103897008340375967686800372454503878452509936722793837891937749324542638527163968703972825573994229608361861432140748399718308765892239448734104854053572736081491181061793220055735254852409842388030652481827373970085756710199053800687206878567003637396090773816479932375425684707145147744847126869054978953266614644943503310428808467820032341196979890367979494793276309740594783533029138586436534374729781539807755963309578541620191509227685998920539692549189157054535152721836069891150226619882086928191364238791819200559892399461648592912682389492922028357131941926613652656484140785495591082587344144021082635298163769921272317037943723399153372331432928774196443292266199837808979793144089439051678537584582791394106177429476822756906049899764478027764772890269709074618297502254841280627129362460616143487146412755303629006513402620010991384091516057133351502302392146300425363443187005067899536416951027032906661605511384627750510110118876667739461542650190255809746011531840135946858143546765353942994948767449399072822277635298619882505575010303834650609619230543167918960740437699207358835054656176871568527072078306183543942523786127690844090085532565102423558130861019756062610647502127636560281523606631412817012039195163603233103858263320790730173102366560557911939933684824390810499709952193146619353024387812579845695862805767381502346631797091072224865972776175538223283395255924443004952922553860826112622360074914479691449269132221734829397432934710934815859971306912716870702226432863807651307017472745979279436211853049534745395910741655331300905070306026462574546439175131923887224747756799478599545277725831341102212991190009904504166299858897304933330186875744727670356877688507510749953026635316709737617427901981575652560133317601870411267279216109908333214761946238355272831200614565380698843939268616352329745805874772487645484757572231105599347869536410981316391048140738053649265024829224664091060582944837166635946516181320740689514424123950962363113807177113846468809448332742415833807063559648915441650129782286955623921847486183652483035470980398057262806251901425925999501955976682944031839165327458042648313604607067557291881052217779727585175214459894207336804796525227416773366669627706098608973478163669313792938836160377718107075001020442548343547086414098064263900045213327654485582268831229500326511762673944772607879336916279442115053394448397247215920983965211905856817553517038694299429813614638089806996207479471808495626177758614864366009062787999153668814134323652964977487224452244582503075081646564205471259289598922435802240755235355503753094587024649104795071241987704662654067266968905467907323270826692738539079009306032845820408209780370782274934967155053587367914268999077828114662495698340027205150359727223503888114548666967415052071428914954007402208859452025037816861071071497489905566565532867924909103751882121525711219682304107051768390546555278644022297649412626710308755097413474603253432622908479580275050687475208542135652046843234098899879323108300264883709775520238235624289145491836976675499966754602921949400838937931017354685283651467590501908816468944026273987121546334260165458192311085934856646747900313081477323214196199673160708426835987005541690298012785384991681459005648705599923880266558811735756371648895935873572740193581196595014477005362962447289809403703180101916549820071634145708052608485756342019524618900197554986263242737249097389480867084164243371372055494794828668233209581147828138634252005333151685871167064974201670092060008297080346375770677765266893860828975079533454960381466437952012863162888932841878025178228803231085067741032160176416107236993435899695068033907398545764002910740209154107738134271548616506337090156670976951473289585088914440023282459160983383143086173427009985800093284375610926981252988032452430416813461202028471571838144801833708822190909741143874559743091884377891587903419256932347336171397094614556132128850611853307153520632454605504780237549826293296281153936312743632098705393781598608967803637863624389976152413887112491925736351884665899675613974447571625468274673304628686295053223555972527009839202961841058837566566810944066586116969727762813283277265240782075709326036682608123638786303177755247279704756566142038030379049380255058456394984828452851898000121346357947193188125493369739536162105250975504789822576141996196215292409680740003406179175493045480019408618056356560732459697511307278553876668799721718353915814655338848277102035884547453757590762630553969375706108078969621115254333336774149719746497437732489126929129972898759428662429369037520807970913634328399357482905865998199142338138620202520486233900561803883357607171959748505900590506530359570130675340592272125626350522641514343176705120436537073328517316465733087486997094641651999253025764958718640561418951388345737990330006718062489090965482109598398629649599671040850323222914093501151295268887480396911012196980936064867035824319941308937013675154505895095479445949380063081983809503787759242638662002270321407599482849418723811202128930244157417035362120281818483405470768090683066441782898758658111395641628852401262767280001788452987649743334001159151215480451638305328154499738898133027637948645721972280655329527636157925733958151698433948180107351908075621548825855760638605877976790755766070216159949236472968811381403181568090690834269895667433164629002998948490406380270120719653518725343702840939786848097558934284006136901167143561343447338129702585707592942432089441085317209699862346862576121446382678415894642272903388570756243685676076222101026972169533734431148888197572257145588021419809205568988430096808616402856039398038625700847581925077832972066880423540208047372100983598545321485935005255841555707111351919729098555570330036119451297120070743383534410077866613007292933966824446858437095775424282135298771658702119174956147177145428424165193499394669794730455515381306521581245623708813317747805871276376273956850489893233594281160827513545629210316669962610985720665867301764907283649196199070624291422651694769021461296269595809706892600319158560945760080641536589266605454902097158645956088542931687644514578729624712003275290967344668572461575771220541072132908786656923111150963350342941638805416838616512169326419147177961728609446911178555800528641678250475285062810535033216930579298121703641447305359263655417606516634002088608701896722936526884738957472227463291247668636098909582453725794169907165726732938735362022024688781228302477496768155398070836481462014504308817556460097934185865363198812582385067559370809317075776445452522221921996118636446147415767032864201258999331845106440243760356160667758057819940748538807350651029531934779438930277658538551284911668248420389190315127481721039574378111984443508699052162816823230464662658559644160358826542245652531227940771079426580155353846176306455271677567114993291886230949244989629111544437590248357837184317068453273041492613193762544510028621095947474265661170035022031911559223753635421332201890078241199416089285036070797277396224217900340917294381951113392453757343336052292783589813907224617001089640914507875219059592768240918658728111918595560763027332378633131883624118861221179903589457536696812252164802321489728150017513607446716800866549350280761546350316051220377887093532010441090797877357315161639081984790584133752267827467563647516162892315292812911707746592357893573472906244132440489643753607651240135487974274730970800690147718310014119503100382055771981836828400860557639055469409376648453325978599940755685792148170368629785835649586258915221819784664322229514245658787329676794292386939202464773567547006660343003560607637016237881300221150410676581574025139741191065062168573565415472725324349866846576206050780395484613159836890396097470342643489583241667800362218503176355818776250240704953248313507646915159114264736379258550256894130335413057238821312104456252834692365378834323612221412222938823774167583662583690236480228414198264288107532911666452313777656283331151823926751769938991675827853128028438339864163275847867062850469237063754170079383077017740509490135485563367785797588875645555419223556733421808539008970254879174037910849509532485003383575593321480791526866088798209580232756099687386379167535457074131175306603219372836353432634045971812790704197228063983159118234328504451778761493171868067975661151049152610343224322073102066679053357268701426811521033050709781057373105409135964902471153223562208402338700135418534115708632782444459462028721085268969972960138836491206472660315722031776296822962204128231947231921604929035887440207959785948793300967917613623753953004926158120858012212915378843268231983532701425707757298725001980670207916061994635760423045836814073331936474576061864338390593316021557636304922226427380110391071681317333268614883286480310082584180531023942153569626331152830785191837761549411434153328148456895929839941131376711375756871979820825034034407363357614351246954567699756394901481146367189330496264905457243799402615923307277680331367664103147570548910545712554621387660693549748941574601153484279661526265233615254245262783241486352992112229305444477627534637847735966953659090509025493035997297604631848713017711217274194287109758018166483774513322951881711237565841935020386907130931625661067044800485804261993117244828269963151881749050041459433141731252139684500509391699161162126417254055941343772912393221706860471432832436973993914002917526060600473592046350379952778167673494912870411134626242758342067685184637669544563305062911957726241660907250453900056594960037915091220918225898894021686423229571026869231858688382219493150295989421280681937006377293943892414399071654165156446770861726764427118432476800410509370682196539778811324941685897777110607601889257040861672498595565879548614067378612773513872787698067255605760568403970083052899202144792474478718807208824087951364615813423342924874292548755365440093130111134322733889039582528461212059105753628879393358626677598999354761973158476399113853419109916497644767460674629274070910449543507840171802549466955188171785770520609616205122492524635428648861365834323309428883938408386534075477220796803242580846829761611901836554953733120823929311068320972237171003001155560035946807466631471678497373097595454136124951646711909635857823369545044258425744848213122015363054004699161722835393828554219814537052762883842774559523925496887955609136414900935459540526043489124697752358445846147169929745605795206966668724261380576187131376579947172429205362517430316693989462369838902846595191127684951884512497412176062382310505317150623794373825986566899730108224716508227934625981167822303148747424998630257363342530668429078371120467464307496766698027615855057773798073001334832537205537299898905613298333217781799974544994173097144240595342552353026321540092496474734586324227776080296299996572695978914781672017192405829015527116416299469393703747758335465553613178957368837015628176169310791838363188850787341911028035617866079643282516932155069123476262044731238038874703988506938092944047521519374153622980903449175962029670295173314744480569525461085026088401410024072069338148481274437967303570126370979663440911465017866467659758589107327220807551397108317926056242147374516425067237690585805466105766769508474989031026900753421944780545211948007125973032154214637006043077884215590412215502606239705731332704125924412943930238190163434567462316059872881378109538940133004080840972951390930718802756893392603351423103742774423674919794585213779177072253318642438780600818240748914911667826575523828784771485986664980510651359492892808232801523340889721516767185713544817381196192411935297905877090967045045518920663014159771215860142238247627618791314414761751903909343984666951928825657076661008046597542293227159821662752099666826385089392855125143067305322988098533895622028251234164473543869526278830481568001018616930751877701835487700678453216398382865161764780968629985917234537270884215099178150516330468489863894072725569771308041899218976640784956096391443469321440264472757798829740796759042129211388877609534763596281887962422425455917100965840021577585025104877483791269712629990498752781655483906420084654175309046688239453067810059415449328487966988742809661664223339872301349125780679398538718286825739368830223261819599281866181340054559209933855484337991844095693747695691435133692686266788493850823777545159794065203212581920442840366342354564727962819382834239966755189986135749094216916399952609034594946446324712408329284480131957294012558573944276484569550255067977051812763084756306489716659401360161968652184631199293331655590874315729428505902376391510225423173927420423214153169961408281029463562166404287833476702814351080316494368822595690491450662226594231313971543170672303251890778310020401164840920465274194815036909954461939549456974462805788710995073479460135588396701689038225435609488855346415983159570913001910855522303351802461164790130394623946342877977098046338527828806374140571843776215355149655096825024220246117695545891014644668529827060314236954146767511868281042331872846307244288564614098498174233600060241212211296224772207413248640410908463339915376999237789697486004130356502668092318689633473283980295152158388299943368319865339635368112452812795026615689981480835169141301612931501328959023975033593215716998697481846507535336648599226552873151556843321031464584826438800210190263174928345060027928482078287462066609736746599556782417549110543891372074659445597392070680137036031172655758481841828963824474182086063032117392773976566874882916787224615159939623380356757234361654465795005383583280687014763438096457646965985465272310502440139819035455105576822055257006087564722708021050550862539067725441738585258316057801187395695892938740580823622724988984133532452218845968414764226624854395648595735852370499086740995884602522366851925878610127956714445469263536523521523461146725539914141685549709263848650102616820162937090355237732683012512536536291478939604170373144820121765271637659680559917390525296350374804576277336081246032692584482366082512315930665824379278503349617698541914273242394789459923207530767744650286384730746870489020357428833910435228510609921684268537842915324992225620160818160997016387263423421059474424731767960899849070537654936319037959774385604064941291436100269328395194804706819326831984197438954510517416051550600984945284843704905984919489440429197556706259855019459137894842894644559941684582454201989857471506799494940344002937225093543150109448206728206580333455644377305028049407491101573054530932021598591788110310314545988442647951807271058679785514350096026637763668277123952767212983008675659375770899885630842392635180124417933242064778934285773388746356866445831079655239675400436063438265723170263511656325095698206889302535912784834958242564287763848178496626198625362766667625940766456847458852066928285671977833742847737776112288463064242487700376223261589274708005122085986193821933897124402446422250076974538006831536405387314423822272904394147190758506705577021821134176338826042135219091501771590945929867679717909935559333234534751126566473443378688266333978038793437653883022056885935391247894141861629259649681893588891317554499005260411385831913995843190429119587058512645796315401352982781758896417310215871828913037614366420401809840778024981457903781992209290675309698344918636119238459773405207397306603779412807742417586580812774240000883554744507087376542743629017620977784208878500872001156779158079993793681702158105027681374197023286688834275549140706569179856212180463350141401342581964728136295743742160736737829584252252086400722729883375234394243682471450901203015326787187296158073617103290516391838651794573087135809080315731408211354964032515456536923106466687270215664986142850195371275470049499248321767589690355190520351271924824583755999747394555614400920262331066241337568871780135475187445985015884322899783548641946030679077423570213793137866126515139888987474375092517189517225904957749217729982122718954197768044719787123643598771571562542460615660883809959233640630889181704012790371461497269785460694276701507224873913976852887259918354807448295626916539996386594744357547018802920686592436540972611520361196651140734696543525156919096846229124243352582444242867843514599465463660969885658939808492126483353340644888289054437340657493973583363119436790701591218560496208776964301142844015926842727090093689001214988853368112863538162313715932316124149019359846544658514432042223628881200992399410473708193005094443658303183626698083117818569200068077629208891680704929892774669613632259230323425487557690508083729991528464519327593712387725152774878954368258138330930647147617629745742128656105067168512597777267473348657761995957422554210263450067654790876975047257668086633980353844696282338545611094777050668116760992988104910567844031544732977961366190007345039583510261257385045937360793178169902338837397271832670571945687838580219355764488078006583010497443274848713583088602397846515297563899323083622382417312490922866044804534207669557117386700366287408362042711567869700963193230383165134293316988209658145749913324084175080759434070008648998983370155431913952423210321149716385679706671574613890405078136983468929875587084294799388172739369618454056707937261745698035044161211286070425741375847047920282211513596705590691515182879531767322309195021023026861468000771339194951899530918111952281098820690156974296189269352658044555906398974053784825088614833871350665541430352972242963544612073371819838698413038002093803427995133020772109269269027640216489433050232589315190655198194123991846225800145951365119896005622710809224601860236809840295767671906574222606339669190020300093109250553011445292909501083769651456323746762709345978504280206960344793242913840823659167650233643262340601958833870812379216441378234608844819183980320090293989925123494130208648879332456633050485754965934307489160752025460398773503325025419648920040203168460270048047202296426206513134433758838298833392264951148140712506178907855428928461878431403806835931708095854439366761357276406357903011908785079589288792857703865330833199610124571990175523415975505422610223050707508929641244103797267545547368291082535593263535471431287291696047444174672209967549441424846029408307873456657180786231190724433766063045128678946661807628803678897557611931749161252830010689000633265497648094247829723728021838965462182961937357937652669630052245225768625869193150825424114921139876437202340982809208672545499675455369955102748124610870663175895514842590685735964132589263124295831664152857046398370276715519378184249056743994160336824786473766236196975120280269138833400383693468246615453899061559311161852860232455000185443699715832461380651742327949308518103903588286938552019736191101618213920002249927055664092883089655997790092814943337136476219228943545016416838825584016124383710784880973700968042298454445449480117847468126382532819322294698358747443882822550872659941650278634734514643799778897326689951314136967387446180033622149558146345495663217944170639309350555104208776324708913497356543255799168897063872963770875680181979873398497353575280010561340567332600221816176548448117259085025179412201450816863521285426052365687044939912236374509428355485973001822126304659141311160100466181288359651852419299420758441265311201917689379117322557112449371150806304029516272462591537450654351815579874737692923378340167189273564813045013901501573847129314765179729933006225718453750436614188869074650191146452716188028893871863747197308300250644742156627476501724916616963715826413964206075549959403578967084070703337905479430304695294706602170352425813745047034946051097456160523859094048720046688232678986104331600907243272189611702732188655900593285893704555685716627437916280482877640178536763838432133968960494365405774507562140217287496135327750833297070102721665479872960584732332510683523825250799834590742053726474671469876785683166882358612066614528788899271691166294563157007421871535683116324431917839708012317634571943411950770301070551227818713326513254605468215645718240829886082542040998444981469111568054253211123762820655563716409370889013283957339599848219984436306964616197723637721769895480364253619061595172432287468075001302585146450122185495599769599651291129372034178891138327095818827194746278605327395161042153999840885340402090539714224258069374378616453735156733986601449053605060455594690873066556499078201028867085356622287534443935227398563503241728351594278710893199924313595650913952244021285357437114650517188267762568193125894784904978272332149924573154724909297126908183607791700967549282716199129071531139641290744778540283807950543117312716520014324119684374124113421738805520798560542435422594865172584420754708907005670018397171016766654005498537012321233335901613336416370993025072399607690285696235389237061028882412828796317605686520955502838649411363700846939425035561287198640537520660019927193373295585136356009801744122820587524262870652719042387866269569151075088699019483113438016891070634285511669415567814068262200529833710977198803102191699912495348432540888158869924669827793749016090867315291901855329925395750555415491910835507397364980349785905195291612075053487665053342894701729542863560817884101895130274121620668660778832532439322108208854910608599574051103583382630689826688061456149562003625417009863468078971205381682305237376865199269353465488664559807508973432922699367753857726153393020141723936660974335298306533956766062088602460295430493885476242902843603359640173401500234272762658687085631446543594672902404485603071842002920722232287977352623963281058741875431351160880705802643409224102801052385200178070309830716630970902004161954883262753652042890804159703825768243434485506841561748712508772344200492137740099583541145929433383406982271252554346865191945963535431122294341896839443746230849720562480882209184633619712402413680626629235681418723708973016993764007017302395059444854275219371516794088929438365654014915875582539263770218769582520878730514883252753280556827615823323335332512730513847546462803080913631528002719034166867958423507969002888255042492974087658201368363137770199879887136973074259914137829942310288289851023073455272884383737666376232911124194470109892225128398071429778050679460950154599673820850684535112297307400987749095709928120811611181351581579690627866453793854206730112054796680776079969519546678952504201689382282284975188777243506211618128737326765709588120919133496240135643446825175620063855073730088833724190699988830813069084750881033703596052344222971410552590729467278294408895755258896016987083995772477360015139482758811213456555032624748956156411369390277783404707484345600515042153393025387108246536433794850889371931148853500532867768454784033589697694790105493584697630745983552377408482680311626839943519783508298221405246829852450552528933784592892103063598598843739351247783968455532266348746600202987918085254440935302789448777505625129913150648095590083439006763055692867352560490846666197856040102061543027837963213428791293300376202670735614190476165206104799404931051075092094593725299890254324036883341010562422714320232178016034090592479589456011109514645369124712646386502973945062538243462534022881957528168218023885468318085626820523002282226596024019267752347589465617441742397480686658416867378058673372481161620995522835836310221859308403545707814244853832772301320321015415196137027938524923605512477874517161044165159175619513662903763407281380139175691241091596529376956234778680287286700407186852108865497988329059812157619637753994024281072549866729814699687307338592678232469636263513206528257900694152241870131434828703496169125377960481841293824425404681466848919988996400810815896805768539547599749696635562066088367751793891207968578312259154992177166113776052857819936387332534360082198760644948471681554468275247618914314994954464357394272192835354586237307427226115291937874453869119542298062166294258886573277618752231946677604870073021524727760597592467946219963392728533184257369860816926416927887359556707054407469393882884187871659430476240485944587945360836815881144108964556793496482870692447947425752624341928154230166649637509916599318038478502518438733243468819776971188427566530177491053354352382046484782724226238236132741934405866367245594234417893051629573427581874366237144593666073146043907472932496404670218968133779923438051785274810616894211883287188562156589874531012419566187797740563907747807604683612342055719158613058190079211074510284061630828846005922585349150846534984007568519056682436196344504549847777421358420082441946593524688487053434541011751612497059841738124508127870891671892973908628272132927262548136551393114568727337936639729821622909195033259132786866386551553697832242185310144291185824609045316773714547596809096974067268930995964509100369924459069377333233145136724479068717206235167571338426015073511240572994028753835959331062968554678805311058782429452842848506886113251953613166619861320209352128939103560833325810677636394700257562826340039166697069401114572490080621810171339851505545360532104722418107290223714557832050451773726399781872121289765335719317073306807104085536016213845893713141195988224561335191323148194888036974351958630040168638229194744674932377028715367987245745932002625982206400182918016369144269158510686132796753020569193042525353166475930501387253260829200270897860273406045849344251410609706478401572189065537112560585822338907960455925878534262666743401852320509011147656274146206692561683409867448318735411122991321279825567868479388063339775639489021363590585887120632813992141542691722190237864497152327014291328619640796475703641155573455602671602531562840967714338100247468740063513161721566902645284947303456303886849338018468233486658860262414855181565121319112947787730698059272450779223522978525724321433631010704799182321847765296832892612240124595563981834033335425832053364724190460838469907507773136602142513947312072452676681112992819945931098228800556523856051544353338778744359621735065217551138574961875746204371260389904341042463067216489211474915585990392510456588540508989719674228156091557482470896639519691299166373957671347161266078554331175516974917533427697835967713799280221396668218943043565297466800604987515171269910902351435987730121924378365808233596653733967593218178868400007828844712661264256697522737320259458053376607120607013636357000772092650237638290398130047238757597881190218099603961671404007515273104045328863311396071840561575473688849224759019396116835728723634343799085599824179076809257958658977678574766574436891669917465210187589550391518123806237660010625029249242463335700003945334780629544523109476269871215283068825897453873035778302332383313312893429860581747776880115842863675268214074346299066259804024426188257859358857628009859943657783760890234019602573391321685493257197226233313543685917676394208213081653051312933114455077974007560607354751912561110203891842818379834559532675769910810714324967774824688127047734496205966253009382037542349939894770520505880132575978244044297883804994343304637531808071839431132922698792484655938620727891833231099720473646469861745119025073390903818989236524505493687502992046686509614738755863539015228087430298160854918452530008268519427917846686928820100977911014812113907595403619861727776362765289080420241177866976121170299761376755192878582857722503234791843172270704605152084897042245931320433906358333274688025409237198971941735601428746494014322225383920653458189946340750901622891601798282285106005295990386641466100562044666994069920095590229306422262530366277303905563059821749263267924608592000069898540362643758529456336811143550133107506421905940720260019070127777731996849861751273305986181348085706119309315794372905561846715743791243356422344795145408756439216980867569265855019867755830652173049123168442738349620200235610616668660374349728190381370529382455359888064842229745119597313962994129835008558325721938282969126135643949122532483942627495962909436225877273835984222074958502395600629601021447343990553715938650341210419129023047587525835997071372493281449221219746265598469843401692416345238395529445193210669889943376260761649375953680526923899936181650354589938397817459430698108262566519596508099357774000249873734791228300070607916807072469852746489180501081478089987298692746019597594305241852255462203192609780405023681203557262590222023075651782005836411373872403721417898986015221391201623599049684892564263374556536158980405978801323358224119528402481470299714013619165539750677719698698775937489510511312390218313522360484379203101971636577569922057709030743049196297449036000152394612895963998278160944270799095544797202768635198496588165958925963662852048685801199359739469570014988544613180757455034191229443398591986810645729164351834191375502130794246998704206404598227031595291313029588714454526663696289198781219392264776485061140664748962848240575677218102831912682854194101051231276922437513992867800118382734934503563556705324730805609842111858574418630249855903436168210619863939421214856757422641748311403497030962943440378882956471906530011371499289357292097210174065627367230860003376834854946382437530168539662182081353582736900080271791819752002402226408864069804231065087231248364729947983013317558629635449173258378493383130540994644360587692093472330152893287140786726742740748631366766324356473489044806378156604978026286678635891429448562113217201988599591123116674984987957573627349643935934500172183240140816390812347337768336063208375158878669879213345972466664013354140661088713862106713869585224650987276420520216769253024078102286783341836630462035287687306494338185572424522479342917584241516141258952540310948595598005062245498040258073107546249959946763195393902750013889379983768754041287874712557644009026363438784348503794240359187499039168783188744258256591481460014336748813772838506267596651952495457538446876414244108606409259928499065160220975240731997095008247830486899798336562890801671504706155269499347006759829813839825335150199405757248730128811257756165884925614791327417112141366841157079430932537502515107737022751034426390419023456421010973877615402411576345803342396543071623086986217747099382535651020212277522629188454969770911417421350684915397368903169350820942226266940274226987496232516193986100316051918540895793545866188586483271149091461318050970977071586532358202761744673812192256927970138930596814294183653504933878597735595111139392148988533690189280851736909315921634851742120966449901398848830397895122472547301939047155602293176779787831945203469773519526808831072208069211914076266148301257372011259381712463023473991006176608360234417536472553645494677532960241519510162565542977011280826244526559085980083437583847449779848514191534653678770007792520611535754047048486789089400977189697973569586608862119478051241458847034176760279234638559388324345015590838899954474813811858811469410007104470100869693443870824024795523010687792938640444842805276186386842717297540676090621061815935494801299673426911487185334412167117825326241820689651409228919251263816616226154381589348430956769153012247559378702274073037681424857829614881984469710313040524299394876637801034654608972592932805833161730189687066966288036533748708782384490495368784476825453699126101011178652415261430051004221842135996519621560757215766752872090094524408787785984036943511399432940112509574490271729460358059325060506862100910217276880892980370745954145075541807403401656830544718636195951737480716452950460110198894071761179944712955590765119405847123590518939003814118514462846639998753944975478121704483275435051433497815972182003352980646271182797473757426687221070275710847041084185483853778054855417785009495456270421299273414423670355104176417297446978686007119102035657911971088911479840088565453936693609706342287590474386306969665469236829077595666527956573958787612307268814075665658652977574525902563193666447894054245533939265653793509646084821375251460926428798197598189173865321127883475302717806753835524228711101115189761567724538591527730154941734508204009648709444653885165087145655214241461157979088620624739900055873663778283307362639762450364300439912454718830926114658090258737010779645261401519804849166531965936620218639371332784814835950035186086453299065431320091462635296701992363027649415118271028521823215158334114311092088081311776312415280555038754522673721992769056934377455882824783658023308259832541426259966233777988878974134845548677763056374920566373414508201369794397138884427722864738333134171051362483133378477092364792889900043533041413353329600288586130443404098245815896450173852674167878570192657123185641664115270619904654377699174657317076063331728168844758532959040301891569785405597207944542285540698120759180002532615763004488018140462511151397084001182463308277754533522629519400242507641245928241232911914940272918630894590398087149236692633520447611452572963094129498946539882778135011044634126690782587509896568398918411799559934930255494602692447113544161300204930759210766790795867774023315859502082650696754388712093503921563977443373177841589602474011073181127133888321951943465652374402771531849598386603144660989465399431634539506685406796576894285037905535742239477119517064715598735305362894669594259922760575817538727376294927508675835551590400627522671620556401652061615597527531578496357929429522509595860197323643073351048673293375223218708817015992599393329920257252101673527629252998758863644158574082795322540371967429268849698289246016654799570547620321841729288968652661177761055928343288570642699826813008976584344183929934523920629201747687538039321055697456881566027368604007940627443391397064131079218157403715304757652779251727709140350821426685514496301657988888149097135638998224340581273659155963686130946923969802123306968793774208543069443509510754727174152858496729692314539554787753744030006600616358698312515712344410622250235046216027685186699671231109201809594090809632292130505954689370522487445836599970256287459386319213244707617851692186384283220389382238777654124221266539778956599634593688826558045801963062940175392915707867093672609786317755457777577638702138903207988485397126122069589484130327793461661446049111721673754928601135447791019782873852332632572947844532725233743415903271843873962488850495297178017015733360784385121726004609199851544657479064850516066936800860287747951940773324447952622438543678949608049287434833697243828223595129521284734429892256225263481559143595566618606735088822095551787465833028885260272129493734370014882153307463215931418203886267242089987869202656349145959358156913997493667351568432814809105174435673552682775167828488565588152499530219242094736695174752906055598997942510607295622518427221614574286262918386742378146865491819758925132090862911370302824334342704764539395626918383113198809479962799442262994344316722903947072726616742663370590728976079297817808077252452134959859262737767511788661846211899682390824578681540178279857508442202843262538023618247910259491482529942058138933244151738698765845570843029547183531832246394835798327522217248717633419595100034822925639966539250373123457809316768351517919797128896400627503012094098540448431441863342431279392542362611685447556801767770787342655972112962739787200054317735743853078855181226255455688538652220406566860501515745425493238961474133054809483058043551791387577327261608209340669307490774088925521993739665933032525423532881582860461329661709193650488875940270594632723117193714362624648720547825256550204260882393892845064042964753798375722408869155415463776061303959613183512851247603761494254731683343745470096144879384850885200468577876422899667686093196733397057710431159828306254004975145302312342347694876019863572843299236903914409468083496794747799687057352284814660051642135391565828362726337961593563590554595125971303051593623711893791359337219590996816257467395701329990421224569782605201933797930026836580361275608170560305376987377963054325644687744529394005056472046171273418430166956377498253543742795402928099484408817556256714011654073728638138072321524803672079877220485619674559099185929235492646986785558778094516164958149763692446901308750943066356678779499775992856446871448180733740087273419345486686917303388537442196712356795584413795985181363349890420290810866242068980442919272729745381356815920668732044479958164765584519557363996986595246256885122440133208633660702793520620733734620087905032098947620281601246225810440145536594299577484502992926496451528342449208446734612658366035017839310927261037321965815221439690474832884247288344535844106289466917607232056903402431649232266835114812876821587438542149253789148982977296138100513858665262306693872835149436197628708979298516987613331818240721994457137362071099268694818514509703803131275524227712951212489249004123382672963456318786058975373403371046230631867562442979681829929916585604391584719961749076383039936341460460751603007517302132647810804632552124772522212419231854859878256077710152681253979991782385352708066743534746882510378110800829745071465420420705072080357235140768634633293703798743981301702805766570262630492265989567166676403620241320050180124366709006132104349722105446755671007174036932459645246277669547162546783754868545239068519789434715706318208566781612820097763638157169533735901796473530241112184968278782866667400268011320061947043140813326793943536258065777556027935748666756253186179039654284028611557824851439603274376721122704178756153745474613611884802637810185509343880707711919305146362425541320461198759131892983788980099068328785394184114836991340055520376857618552690155869797772424025964790902561971926547058827530784324683926952924487935437349057754083824615001532608234879440644655117474985312906300473855375525306089872448186684990775785742952497349603805327304222018903521303306343461191477988276545936061684705501754198480473845011359623515081242013428915968741136314528169096156897690272310443975834529500591316719014076538790454196363703812370538270016974796088683802505999756834722208634060325528631888081161167428480445558324751651477665937856078418944905890912462589742983874901698710347408453227303023326673249986482328239232981738514305864775878776920296289804012387700876181620714096726167227838920933212928270620923104561258099619183876077955145008304534256203687021613377060552271266331528995448531857033110821689741395359092701547158931282237731471953917981011197108148099909005742428626112890587084188621136006051918923135823911827042693116394166431692341328607893192538793409944253688135388233737230994142673181483085407613593243139787353902963488044568049831694228785336633944302227856254846735864446693472826770964742764259865656852710473304342052958462786967697519879695780989163677379472941837477412931053538658063430363385874127651399176781021280830652645074722906045113126367489568303286311538326589970000344832755098727672928781674230224965986632575707986393106737722784874477301347600999223184471049118666672200686429731108728576764247282680824276247729816488539689543768046422506101267021258759933397132446387491681990807371552392701850907781077281617537860953663998663230688058251990545902080061981910919874440189741704415130549206495792777790219884001311056473373680195105708589804837977229567942456154991821694803452189118182272628742294551956615669156913283531364297331395292993713736103760784523491764280072226888053333770356682633876807972738969060058308166410101111200286921368850328844070864871433969344524888335228993633057020142967575731588019475886625017696669188441113989441886719154962764413951585241866704613170502627946907781578720232809171889611883460093249474512984549622432742726045266175634220052791566965526955707110544967400432606314550314804239132923869657636648492367297021678941984422387617676603508900605670445345764360698957616865379629015143977514418139609332887619603010382340332695250310798884303890209122742636104397244773999787097006230083108974451846481494589294185779332790505165585294106379250636132495292559951964733074998592835528200816493973623201190084489572105756896825836069530746958009295748016635417783414063888730962761347321722670061129558524493003273806234411638537416585955223300743000559229128479905652728422011165424206119555575274384729308270411709795308049224532789395452503289678949068100630270034393949165019623684743615941542579879615927254661177209359926520344778776493568936309793535285845150880269232940467618074183100827985581937525811037378596718983971795943786696525583916754500468397647727760146346453960795333000533778420810425773568815863164013509485084159053529649300927893925990075189015187504859634505073967655834804390912219178983868948231233554996485716208857222018398153845989013239065016253997533140658378256393087181871869361257421283923190664789141797697026367338196908804245387874590330793857696510092908370439255411211486143999706961517284610772503704155674380663327934754192776686148669781307200368590905811982471954798800101760909722195278300806674096383419649535377320496264785356464965777326350465325967144431900574257012137109627666277045603604265760713480048680006201697848328313178219126923400505155623005696511020314565200404174278516764972526653844856864029755373689027386519757877861622347700372600239389572372640031554244253863559011795665845567200912174758802915083681658396191045590677366243994933896446918965149130015399379364281114663914394686746175583896746233732245691082336334483545036096655575637397641767529452747612282047804406419325911977941534288863607738005463895165163653252036435565395794189624654087474124642042173412488130658328005699285802213074500740167285014714246720304615098223581058245393696831590330915264116259744599109321261077772423450402571320743066469326895333236685412592717414126200189592902568127421527484934967970178879004760730613950115881540020147764467206198305023326067247463389452105510638829380335872451775825520673112672133698217180776916048640673927932164172882543008994961990984660257634778482914652741300959192918037576788931224791990219303555135249770192199144056290948897426775701116804409458041498580350711222352013966472373508840300335186563992079786495912694340120051250742839912230194679600517119280720476989781732533255933760669730300798845230640965874249692082982573981300283986496272363440368528728387807113300954453132494532689768089849262840999149642318577582687910024670292418861979658410208207317864441420868345328472642233043696731525766348750479569489895493554605489349766225225882280372542655421608925743858157622524963765152495870957585736803670305064225225752362071605758917957949939215005209178566416178477901207014622078592497908794061459671825243945385346371747555171873044596734230984343182269573245588780075476853708462297426012325757147355167922231973260979555490141978050414509310775602952461020846226836848114321020061610290249859035942490262145852908457726970813973973949843232791691524335047208836213254682263222867654866945383931755923351031403516915585540631776893064289911306110991938415422268438574446321189857131667632938569562436272936261624243938684789744970289185569043225788714381036975364035562202004497113419702091101530687477155338500215128920463649868050572875522656785778987306416146959977686091287337924833299742800436235559995714037914279518676082355733646868620190611128016988182170944743012979537081258738167036160477252664371365072012719702464308255915998191427957892455251040777707993375187100942462965767029483738307066742869609798067612772286158975826385505494861035897468579605465926685015583777543936276145912295990897943772995369573238908090905302500215436368407148576676396121818355093434802564132135023373092090858159558496902138445675724650885536925526007473707992143540364541987779667812588452278826831037391816892227440109053714111521237466482299435915152108529451091374077335938746657086158489097155175565142427608380574319977951108059028910801255368380627464655449377976703560138763377982676203983604722195288846947795713053351109739071852659560287931588133301231787221144987340230423403053741971782401235353292293647230612913934692540123124355615943029511906712444830831273344456842957603234046122959096835401946116690291674182752038846787223319865941910609364879460818117649874727786285061986459669737908787907389010607859419492149138540240380082478396034103714773566263158814886696054573200776724957143417428038348566146236297368024486400333815235085534644080925990269887141999757037544812659267626945851433813699997161457321741696590664346536915752655866754682659867978114308498520129354744190298010401037935032969107447955594622504303080885531374417729039260445830213979639394652459988728837858699808926416909910702897806213391922082419655017932564005736940952246598013245502585067440011857796282024528855456189248676493798555490054725911467120340472540381984335553224023530008521228443260922279138296353610758217607948585001167784229715958802955334171618062521698072669137353740341793763425077405014345503758252385299217289048205636918484289769881049981981800214803410250368490229538486434862287850186467434142128470382184175692099056649983549237737827839338429017743120215422864372796656315912804223234194247745903017202460009806654858179531116646606067292674448921303653714777018944277010225584220012076011536587976093202108319237138295029530151597483087541017807205968071413813386153662065218474763020115080117198213405638655146526156143783432162683572586366314067693055696577166234151093002651034243545501513952187979376258364165881173386749647249824957699735683703063152252293907628597593113131259506527882198281998520412494708212846035036854310661882100568488762208818490912765967651064544559617012087129478324997556084987454616538607510780711243590842426381719078351882151577005535855446774263481134528796830474315318566062461704685843292540513725282083631463057282237893303810669124568764422888011915809690713677514288462167181782185569832629419937778718262921460405105072229870387684366310636560453922047323813357270843625519563118269275744924897438454551372533127207106314025714020814075271481159240450208653611725595189086840213865058416004950174031393945868069991817921974532382437105144636646105502074364904981309016583448821698134578032917516639368201182962302543030480735223726366762546720318860375066855876349350323113423240905798313693918629274572679849038124040531168622093182191988675889458474369397854592419797242572314846064007224064268259653558066366183481579518548308945677801765671707304940878783990741985045189494104872847038593593677252223290000051583529040001955500122083533895834451746042383764945734102747358336264327342810053773679295744147859691650875720038815272724031772161831438212028289913341965941879197794378299108578828697993549945052959530304592492926703640452092546457739936533051446671787099547476256978365345696263241529564332209334488497643807435831442910916918677367603705425185863816802204066040600793051230548353800560785188692524830397919056700586632870916445688471545237599590631191225244313565567553657663444864798499416131900782927196571565548301553817869338861671006064712199653429545589378604959045465757329567026046747211553652773110155817315845198423875056331976218879492488006350464476523411105635344853312376100880764132280644273050946051529987204405863120266368081432333942164498410175795847486137780284061947663874408767465992199336803946391774523863624820847988697329580244030884133410335773676480486645767089835451377532981572052528798148847469756024370739932338959377969367638978530178553951510761458730302424839313597294103211386820719106731252232987770656323784728086936204821359807077305876362804513275552013049914019039286616912402794062522379706817837824882098816826124229545893685064421596651016500669263400517394908284167404560534897752394160658228037045671752717725771246452779903570968743945010792274676554323307991035339797533194663454006694215201822966950574721153160947928401068361320214093045869040784303802216030349172431336513703302059104247542821963673590240019114818974454162552236605613498306192141896989032268623374568549943293916116301739772003248400664301770749023078372609798424456361551430766641648236083891016911258616829081323489708049022223363928222154988160191405457537745730902104750873327701410165401429685792567838005574787995403857047536043007808535387732221423109462774659964328116443364695824142014500388719026972307290142848964036594099325035914546307198689353496521115393526486905555434306410127456611429478265698104320814690668506458894018219151077000018174813894845730868845342605671000978499370091345086343832190419399778043364411388525375081190913774841927944949643811578003180520914142537508199633280776958788437318567676910990430146276527638575766411900167225260242986606305439968315294550664188915961651727222602479231576422162515051686226071741936110006104535376066183284503580043554126608733278265485509791637064690212199249288728150572324100274359668227448531932507555800397750083467559017831050177368187558815061636145064614148664015075421964113247894077426859325601041999523095105571602959388528742369614743788189935913244184628973007747117144126121135181349151791333651382461411496630145498745507751079704182466122285038270761234781343152158033459184364006798601452586833615236074050403559117535603377132908076408017541918532064751423843349534945972057197270123795899386530167172649839834298286031722770233238415301514552413014036646528439642383962049306155945032600687624887363049850659853526461907232636614755099014106862836322594545259258644255640911286808633877911232620951009030868642771908754997024069902899877996066252694761540142690794412240051775931260873872804361199581748298058655321700563531289647806673843759817402803575629509333939195011078842650699387667872156176561239432517388387471854290142941109806474478516290976968372804067613310025316105466828205192923446978207665065367895620034709909470377824016927850921290105767520224419513936287313636848849852858646485972254694999851735500176080973733388600242210270820569763849900929822055619232202259177335297891933265222477489976940051218986966747658753713062445490098455321856294435295544747169831085874273840231487977665133159218699561857421769809836844736427608342136709278186882673234492706186280455792094073964436341389247882307024992124553639617366974855756686462807274620087791515231042216570299177407881523501371550107327541625818060685780645296234216521927435240291239964882491671024721343436357944766892759053833978689348815055246405846531938680838623220230756401905259751410313692962382686453708622206567535164319576901870174285242127664316049580524868499020791837836384982224222543894526430188129673854738754539158273450027796377146441169801080697605518481898955659220319721628515138906801760092041147546592839109883116509295657960639584624477878899178303146798728142554231810227797786090182218487425313859658183805169278277159846583177975766343445935078070957023399237500720065472896211368375965626584716449138781290505852821223972371248248498769132282401495959860235952860112962148680932418182429495458553802041923946027922011294579132088223008953400798642982927390666108564609310920392339979500378955621763128277164799120874584920285961539476100000217357847856669016138670898147243196784011228689710623243254597409143021158343497525926203446816349645375586156933419282981261261393137670478197796233495489378830223703526641290335189973908330463808009457260659790445174603412793308301796246500843646912183013902003725360899919633892650438423311834089342948692975699035287275997684827139605492826399321424857514339280429457738049280235521731215304347078679226740624637360536181241510823919657971414455089171562962122083481034459250814897798461171183641292719719992447642271892764921665187770024883318392205374153505804517164801516747941138519318826924004302690477957228795849537348165089114767612151714058190781127113694396805152200595355970897201973164811516161835234864909675371257781273530393650672242425748332593013342326675347061485483348769393559544640952895828417293859690157387923928932311511734315684244732484161543703485475057237179046616046628590123930012157847606296825776628348775511885324155836148083828835474049126841086921253227435441638300760698502253677478412693792625452638679216410091056166811757613415366763181273395336336491839614084006467146461169385780650632509174650468407316706497043131610886408489643569364174033627811169492353723129670293000413587901811680944903831320575383257060758232433435129590164633785668467947148555568815839911527088720646002900772435951859122455174378909496056401672863808699518740022870462314787127532469191518613817024653282332735768172313232311661305405380309923393137312406639399377370748883496097725356330789924838070081609052548996721151583025089864020417952199847263277173363603839579627383984920453624330066820773540523669294830333980444026988748527830843751187973074034342751400795006928927454107356360464058803345555644991047535282649810007124513931878518697232893629223866534600121111322473078889174255415886777735768713327509164026398848929966377663485918316736856893145113307722346994912802013641978910048135180752736059428894955330636787756156786853632362318492771540960640399115077850693496477844654525448991868779696309543075537934349024789710708969967958890127229579682242946598820782801073211901328149867130764909825141363800921053143743610758414305896668869081254813477131049555265165487076674544361523431626905922071059187259447187507595568814246177430761695439331705498627271725731104285318465575239330270505177393691664271998517207483851380597796046259145250878827476054668223224390115134481894939782204644236847822155701176648417251342236683277459729694396556088061527830809563821328320906893257060472284697774162970956338709643403548200264897933241335114732590882412945200182975529618752320428665115396473501515315900655825350197970214831461254083395042977301303431368451355389004281207759302034060745936786856105860757908928834955764393204954238601909916617785064958930085684656722999061740250063349356457564833102732119942614807374164926728647409442700633206677765815022372469864418219313200319238992561336049823429911521158142543166413532106796367261019652086251817331723569763319438312208132657158755816008215415784900322469681730956593813372993076262960553874001736066437432996268111565586462282205122329647530467699149805944287676249094204711574119038739087121972017554573068242260442922909273315003207601706135207560478575771550788017485488948842184083406616969833228510311662214961016920326800336609532024187958951818124184189596036772645419117426070718544634866467771766036849306265394759650886021329794298600409517789519617565166948307301601189377283405155518849674468614334872887877587890200812026284898848529788143916414395579340589229175173539012405969614168519780573392743795828035607762439494076613909658174771580765202806120599138808843707169611644786616805930525102545756920209516612026476371599136482817841644967706636011256648108707587100762637141089396347174286215238739015155221253971348229729681118026577819621784844072898884426491068891187959161330521152307934861822105399715936186546041471546141506261167098059005625807182848865095163844709877090727147286019106034896056799034126996673241973399720798448465908156318542007452933753767690500111750891334260846841569114066301901196844532246666213232716226620213339276999788039357713862140447697159970603455542940362290026510414154227782584202023223514430241166285544209985602586996333623038351030019217993939188506838075529817054864762400954208873981715691038036029750029907976668690185579127251370338714218119532389222625468429062294544833317012314784249366477850306455854882920484299722820656075212856781513148868267683018162962979510141119619348069875129057133090310435880449728388526156535563239066913674542137884223113909317553675261195730851178291423536623814136351573231119158328998619703503683265190293672859782387657957245755644091154536770959702675177165202840566573102703264167113050894554875151578358386048744165832117412524064760108887185298393848921051278275488196853710653766569814867636961439040988442531289306460873676378946970310508676427143388485894185865090158519265165406559208792300779140122734034589411032721302656940906965938008368873082757345709649502912089356983905549513951015698301669775235891067274048047794393381814306607836525043399376399499032781405503994647556825131093350968562214747583882816747542816878262260036007155475834231634729101372744181421508299807344372326178523998851569814951464692732711906705353658373924829625969887779008756722912110443256723406321661445132473377490070378383171785660005180347351992418347307868591972752836688568810734697216576890269297383049241239220378990592869251328450165380344165990428163743119477952584095602024857924654839033250003373755022513184436347771584800855256984267158075496786666085334349599447122575316084918465637199006780046400661659924565172306737585297569321941109606069928697762175881082339318103561841802043498554549828461238723607933068778130637456025837271688786133161188415771208711251748047760176172864573853644983514287115368221780033237448357029902437271953469212807075642354509385466357130195203752394272668349314679119677832615648270900059266428294662062452657683277283677477512844001607193296759541868345877352437001093695513282505806259895432201691818288835561016848208543139294251844786979780448874852824076875966484168879236560353909783351653137572054893311916593022434335235581196211809732457025570564618633681745765871026887226634988227569683583702166340019281695837576594276493392472087038500568161731302064519118072630260474249591616693727175133015823186482340016933063583435602763974765411766258170794385446073006854632327772220672942453495645930680725421153421204294682767958466220680506511892626913366706967624096535038686891310320927938839493021666299059731661896259374743625895500511030644545499543133922177428310457385527378258981817887819624349251952791584808558641126472323232722245073719909428660554451560670686876919139459140252636075322178677377922701512558066779646579561576202498208379951133585742073181866684757797012816676975296525276446078071119065751554930374635828451925061371424034800208560001170635896430410242426811997189043910742967133435999879491889313461660449224798691052013394772846493831628779174510370530875647859855554621047171272692853919980927751813477972247897295445653775587502106043029251969772370567545395199403568660032527763359275537868402793099546502220401158653074511753875855557882428169007224231515229638992810552045846710523634676092110588141359494405754844206580346535318796703127805761231641415606244118893345499005086680156043987586160655761523451999329661982534633863749565639542847713218018189421577709010062020958194529968672846885174468090667918795015980519333791095487757010026466034290912704768791750650375208458995067304788963556778563294321372936781990623787994558682799750399175188232215686576424739202910168123030750064117937535961383923154248164716924057462035156849790663589732667055090544630481146838435104757977886326289126624323214602009030908385095080847229292128324781899003771617820814421989273056590594795711148495495436094954697728100459863627746055849349696131197791651065207457651485697817257941458584912107497723613132304439960692151807864120562254582724236968457886965846534586373019913277245793401982443850129318171078853577785630051697596698854566621648658188808833850898994558210442377587285317319783082649383655211186873962596832233827588102752778126909069896815739556421410732889238051137200148024732156180685427513472486928611722716058155622469359827863916467926379495657550369303889537065695435111219860985931895807916453168882854945752852413117759143968462358503596489630712102577794174182424370162504979177749080376833365216732168347479925177728133718375484060416368777279990488521958183433283549701492339501000273223888219570342583180774614202290622728855218905304249311813569242540549484717024329880971922220827803614833522356875359659931578353491322242112974954453572762217022254687263968031901802585482774483602844954059080115544444497600522743963460252054355794653534238417888339284773107121398234855871601950058795083232355832724137948518273222204799896491032276051062175476667811452302737954778759813094495935021506226760040200642494334001471397862245838080210243700953282253124563242441657145632022444302312558827360278073163820329668696159701172413311582334898672312226807535387619026546528202881543095176796067564994356338472480217808072304392364444264382712770259821639477701046321263705975542483704462824168692868051519654845791119672390341281794210198381974896880804828102495148484041651237079499471790195300030564768857184406897088343905090327630959858339053337152216634561515842698520651929796846576273162901679091922440245655539184335529086124137104910948395387276476127660195268359035760338840210385260813086085851879235968331104741198142770722802217764390575800576790935339285560526361044703983445662793782187893954219623372612461189358661984505061886726792089827246649781434873073111459900211013573408721059707970550967324588876115987310346493912596752275520553153160231686914882027671171277031855654055671668320903177331080553195246945361007218547290728146201873779563593801577258922313007752216612541110331907033665731459750529772129747664704465345418003835666209911894485885974662836405814749408500797761607752285066527063448901219333604330668871690144143178837419353652762793498162374194947112197245179651427220005509423275535805417792518769616444220538503467598719440542882693966210734695802729000216518747170194251486374138251084086482199314784581899845201781765617498644219415694574663633555213949021365286679598873242138392747366479918725417058206416740974552371926599564875723447756265565416662167999681930964981481807972457967152800325718135179088430676106207731974663471622252248437870580235572591825507918172703830722667572682251178288102991630560254172357752784052790384570634048573832706086538405805338190574070525749952191190426506590358371505635348332230659883467172201111068159285730686107164456769401225073277800467303300729233288206926388135369843856592998128635121204806249819731998082142096325293331899474578830346982605343715242185569910050965588459028874896841458256227177995045695618328239262519452117894917416815359799788107509511437524277741124760885960960853196479734244002985288643190441398260884957081336158351089412219068730296093707437229392781747448102286174131303683979856047897602626247578569999979789071635052173596827210954386615041930287721697808897133581425630335932805250028206893933495922426179728327080040703175271952450983264827318191703608586546674745782470949194189410999976362554356066169155895261167520909192051294152067881487563115451773103651249500491984988729935970624046999918615820608210755380004432980000199338986573951562726608717730627896523056650542550342334857538810562080200794044733937134219244957304577137585912449143289856696975675459794125231711371787117444999727960636267999921438687023881093249752036503421777709884973605325036457209311173252116245546994316921942291470781258139065128956318059280126265343549696010525954224572031271496914778464130566033918978310476097649966794931842959793906358872358132622733940442147563905387126820818296501223839821704551665942321050365246658322951092008015663215320678414772561843674135529542364035131032747635365910296436632363867413260933952883425063881576857909834180525448597748315025855039120522409645257319915537038724313026299363712987226991848579842144652677971891122355186649219585400934370393662765854337945098270163039616045057684881943468355293991333591112177329311414277954370187825677861884490133801018724222568401027515267141705046224546426040110487096388068989353076690446780563063959569567198091517287770686085420453024368727878225570023982246567979598661845837911325327713104880443657031738387819460643924928614780834617686825681179101845022808506970122166305639013724457949619072585609255314155730767102870229970672610342924626838399593558113485111509729439335309777250945607516564768425529008733476899850649245677298176955545370634546976251565986404601233995134678788141700923776929363688530527395110278502428025598052519446348169060910758957112748500889549794245764961679601477160297888251078942231639407627828546598720395120492785409167883438807538309780343022750826201533903804602432758504003958902806049952775049917096620834145422021197803338433642130794379715663160150601132940283425143275289671838303269899162379080625518534840191244385196677195929391563296143957495923453685785069276393248428622182672216629261556437092050106031010775891194678952143727270740413439543587127301365657955586783018074032349747889464796348356622594882120770263956307869698663356022697723757712669362347151927457350070133261772007637404550855542869565922817543492993497703923641234138952769453674435408731936316153056991987540824344349528530965810867033685100242880573949208907033810082734049014581604718242008221057617355896159164767924261712064925518809686494409656087693525599052004235377096513989491282042079529607385284291811493730078342122239979785327056948625745747872013429855646231537998206029875057336064461928512324602805049308926273972020614302263190384511596686337368323063779193838204195366551912459579649871761345630042777679415721636801478336376975543419988930131173116470091092079884592302051660145604689185402198041310096217103383390171589827921987133699776036499702338290047106643870429377457453485304337804526317256734808802526327359937537036396403496251920990039925209170660728995878213411332285165435983082507034821269859417970842542289547282639384569800453929824406286812486218711066746537804215430490952787132414491015610130125176825452408586105813707395479506422565355056851145751391111491987911822744099214903326038057151018600895985245443649254030413855645811697962352616453430080618179953466805912808167764118310634090759129989085793305758008772173769389408795592815304775516799229594541766575355061168204522530039332398932148688800317542157184756532048390957765237416752002392629696798856625304462167830714294081995983484447284677046266839424488911094185585402873461872916448972676298067211618459141407539931381885731119204454001381453901771474957262380173328144807487885342258498155914272022843255013403220311084650334262608796973265621939438982649964015248244371757538894054874586513769442381716651714173928106672274971947628310474942817399612091291136902831459747621775183114981907946275261644817758623559185462300816604586463194491843589573296662541490584973820404091169548610426704544073780615198685976432062052864774549451185671123361019837656078343852515756585330187700388553066337970996048183249075963436524287569592201470596031274737088827607618054813916209477901713124561044159926866862546227571757207507655471334314627880605175804655420853879091758685413991045862550598155920009159231830282103565591102180209351903703148830216560133450715496780480174750572667137349738083478265730764538924506634915560120228496659095670944888594594513411177643613606925033046210912739895282937699091888129433082463917930138312402712411333325368512678137047147300768189755936529302522059077739742854946530369965201482042705266177047461726219746446459243830677377988163405013542557071748365589402448467098414866705993184438887654052603609928895124050378913308859259206824017856019082923855584201654052980544931980973220209320350068809715016018343497376993383904199885792976964062527013122644882375559827226446520566011059332387983505022458181442642675650763314378833180688685771234164279877483814218764654066383970587835656483702075432512395627320920607489941023910338644340218053182867104737801561756646367959331938365651816745673634943484225555229158715571159613419567865267439629212330679298600853937438722173686506266653762701327686429790564276803395990398555646803956539796377508767713276028956743715109574484004039058898038748482853033050200123049866389282086985175454020303590609786510921395710087946485691211033405479128507918103909218353673338450341046139167742793108961661718414655551261074979777308471685604247061280755385446890715407034065894786832856618182141177841183556109561216252596890126246204695466593949780117946582926122725483436796980822156445678914080073072821844920659108554466679361260990727943129326750313758722167006498293402338302640449706043979646921085576185054078758255039035226216108773531773728893019904064677737487433815622627597511995688664211866906188364508114999652864295249577113158829664985804274341333389497775192492037046962049080747142847741881076757127781232043622861812222995823806261706283861206687609374511044726321891831252935085489036824530046016753032354212373024307743883774105380892501629085443008210517281748021714994557148060960374495844074892940662240232695119924683772306815931946194983822613589920456186729060090878316509944812520998510176878937335797208006938403170870078544317609165629296786289754044721587383805385796058333462159946527404035904029801747739478889973984081241531693923867869045504379239380789778112019977360539203456246285929465229715123230749530474270445134420268921774270168297603442372194223776942769505513098404694158133178940387627707153046528550394342604391487212882077884078335003803750572513773334062433658283546749639463421261079647147475570226730387702284590107332265754602769321059216400707774625597448952499239435933658554927456061668155141316099527001397226589016529659683488876484695999007903641862109989234370894608211186246135421685684568128963774988382916552812302336974141720923291040099750839968064043330483024134626565753816846198423273638651801689468034295095922797041391991109312698704341947825082507893454512261342584094437696386206128757613120272800580021139434926076801191591688376118506571241653895405909420247082568918621569093736117063032604477403356914833586438747605471827662881201873200702577084765867061222677248499338405852488207499847492666486021327523277223893502086947107261695819992524166693990343569456426464727953037663774452555428087539303557095953983271549482298618857967977642446305052146145012831625608779217275075215111559816376713831740416454362379749135980892337406457453935966750188772120481899390857929697479510187459647235504950504172911000180007224886740739235192571585412046393766439998778259144715757694320002674708036238987243013441503383703200574500734146161038625688769735694616803846770168866517912848393358776210221196084961931086016716760240990863808106977354096149642197067312120919066495676902298775584455355943966084961747299468550646574189112656310499719515319155532215644129696955653679536161957155963235834575506312880292198884076102318937029612711281185406777802614762425407715776870636896994756505267707133271675314827160103964394207342494618553566614815483339973390283170204222249123852101093908844464035238250614273681200358585541344909768691711081902219517720297437945123718561830665669546461029936281543629846772537823896185499684942600427283583348602000927682054385874250959365870303319857910834130268053865928489472642665322230118000023324381338152014596731087876453647235501119056726482459427710067344977840270459568820856098584518357920383815338619436345686751680928604381393409404231163305620468910969241737224161909686313123446032024112592562087164376091394671909938287080827397323125149773207047506847837667477326299004262742480393838254493843955520189774936004442144552995433349519106443139449995598581783346182186491961931790198227840846266062820279809391574471625569959950431964636851526104148591777353310550654336405961756004049753500531286555656702447907623555787723471560406573142455765139870322037281412999552501689222089586945480988885249725929432469822399083496551446500333041833556596213964194662094098425799579257066551116897176586171428549410597627023001626529594791802662445294887898475665410920743217833441712235849477655363434573375295564985854732626163506469360347111493882381426506419130712239718926333512426301863502963811575124231853880456454569231482432448030683485954052919758262282650735523826204441243871929109643055837199952334041104862266652719353184235679002077075602834658194960474747424734903138758457854836881211729799136950679791645658146941700933395095767214782599742573590928623320398882259843300045722749354011081881745864250734858344848189608552047121780912413923551857130564128498339271043406237481884199762046939279311990725009175018543314317835535763728959516078354841199003598430598097041164027487823723967839603781611041964731227984871997331051545070586923878635461135300494324093541773363387064332975962058973905769921266004013091692339423624042800159384586728631367971515484796095522228790964993994633215504820664260886905819257588191002442256228386820314305350020559425682183967638803841024748073432392559508449859709538430891759207564575598113241521368902171566292416389534430099117365931899869337122905339765477530771699289904595673127033574479415729441491471295541784122453852638430168859166034161284050654488094666984544103203553063477877074215977551513510222992756970453799019278354148352029730717988993696608486585729620708565341636019883685250327496483952910053452637569848985328536903812688831968809912615208589629856452703817607374473981050446908642892271940911785921551963197422361147756634009670684190632023447397374092475893953021233117913981879577848074069254223174639304059714305578812593450315286332703034192601122646495110576258737447520467403235145411617836235605564023435678368051850136562282055605151712049116406394918712036838256831026494973750427485808383288334129475206889426633259137711035275865381984459247673961922032396696254342486230429946738478063567108230399091215926625191580307395074077854075425637404724587529850541801549222256140222548129126791024594493009787391560956098973537434192799246061382340480051799509914554914315385731854697157530721175497213449696641429956760957417520538440611333058404464949071786028942692410897829856875889871959253823221076401366181661939305176630803038336669577560872107646963201620882770327633082609871860552696222921581889412317502437200017595911796608607952684888769483256577627066063927703110248058905756389544450857377443992840856970084393896592866980667106318964283129725714211488168950130973536345821079074152971365491561299426361935681839995938894558481588169000758360850134975840372846682426872989446370818965991464239309098634431273296087594379506896441265996016816637440104473538734301294832639657064052577562052701353691451355889390840767064854112220279228615435080732914886567626463818108017858632992418777555108955053685197388783593286656068662938282069489980989394055009535130509797690594121350049256449461585689354087152858863260414270202522447063869453448062675785918242229960066891625581357727149309658565742617097514116268982786862120402759797768467080390330773668890792495636878538022178013388037156213746695529147733923568186421706811978802805293101523016303778533308917991806466815527115703661387525239798455599757647270828599933461196013428373349333933326674923635767819038472558001398714375969421663571739377858872315010630321083369017151362356299635607310021162536624625988134217972933081565327808728868470201468729323239088444713212346439956153726392899690072031446365028462414838048010587110696578261385149768746940919530139081220534830231446414180759924037234004839567813722774579521928142712913240633536790291753097211153993257520753364843523909499422506095036382040061082278477978271192282450958942791457557840923940791224091728895042960645936094149230239091966491998422224752057041706629755473429931137772306524497230499356510967908468183440600883290485311427970976181505838185020916619834034155771591041140488648513884951220644095047942942157479876138953916698257491455917161108722167318504687958706957773415267120401054442257653664417501177155703035893572080388262700014092125968155603289897636903266165558798290119354311090026853524747630887790569151973510367137758637994394100378120438865407478124872507505563804214292390347797850511955935064853540964085473881865850021234337173025588758115007772928468795010171146128007807392505689281875581681773653113585438878006508564166144171468454303772748137140702339270029851367856390920488803824054169366866138129210222655408492998550465640623010498794475666476333442448395883685184907180226099862982415538532466336149356984776452324645415015222684183830438303073692234460371083726731862293367111865078156788403840939985825721294256389893529040220919083640015276508338570964972870559645870627512988678357206163441994621606469236074059454284216697376903018444603541471378975394059376399058976364674135691457376169103103677852743112986545859036944240642764770373279013941802113296206494980973845655829099432054018638337013338398201959859289180225501926249331427550309876806809238160298709454335541234143750586531553060531776258232871415797447810448738113998885983717409497649926828059696071446596884836810879700705595529620571347068749325844140954618446864374002531483237820815609535708840180698205934483243530076202856652479416872802464252140710823466830108583548445006192604540564209117073992271755887474806531558187700868965220353520865513364019403825363568974932614985860000434393712102803722836554238690932336261081124398740333586611965492033724172111075657575394919502616771480876451268236695968998751018938274086279416676056498642206221190581653365541511026837817807973068118888768297630494027160871096996592653713166343453382472451488633235283361377160914024100997526753817764256886737241816673844677731874666278420459929035851725525619670010115575522260843798456455156271030728862069995069204059038149009004625374574896577560232417120655087804683516733914457585381667371598589004203399818649008233697025355451442018533429463329703248726731250751227209141423471464941846084188042674712785123771452496568605616278293028452717584004559307216327443295662642215855417164145447279759372745680628415598565789607068493264927456714830521576324148274192009393373899315990317253742012974129276908088926753918014549467839269169525760991294309685646525221442612119335307460324584354186656483614388391300472302959812888237881150721331063447755696946099953128436476757658681729796327258450625502036321169689041782552377545286259315208052523071550584434360457648646463276220046235009560061287148884930518018058804405090720054822088621498797860006469070572169252479250246167416569849176169107446188511272832325164054733902673154370215249308957187094178585906077040805362046236317329210790609942107234359789248002781467429266743678277944455645707714089557508784555583970431178078275670994233554741381860321710669834865726481605392035446850473342420342520389240134653911804556867504425538324091039869516880535474130358582434774434777069864804218237022018115338722612282362323166237926490676588283081611231535467179587059192041186198187768189556771627830926185195618682980930625798945291851163952376453317916091332704797503055112773542925588021163554340665111511008947746900573250063724200840990151773851703811095246181740169736486547238788841320819974594163994301416682993922375984351070717255986262096653628482279672522233145861470072323014685447149934291238947356158268212785100263914369910425156884948142969023366852605083579812683548951637560431911010425459371153991726052788854945766027281826960184323626903501564043442983177366002633344664137442088458109112490971310092881816409243384916573534673799451603261638776066709545313230978676479558300340647697210258634918349417107982105419550292643833287701463943043360009382481673698979501458217251339993939981273042486952647574695672423015306681530090213994564619145467273997073377603756889949861528967790487216047039231253234901823117563709484142271780126922600194206404602912600942784750957501857680862273517985305625728735975382457812053179983300759683009593964824086386778124491671993176307703795833465973107481692618759550390529069418929618081258074328608372438043356810906230773724279312114254548581932852301697903975209227430408199828933095597499087425685307884109284417204541634776808193560175086801026968338480613270130296890883283058255400888339465558619100038028757218055548623912931702928113983204500895582386863638016515319041540665510587235018104019758175235734718145797521573065764784029908162922292041535605816880065482250355515286633613509819005672324105231370710004115886839633862963883921803912734859190318888328530622509307170897666981859149725983501432077856910538256064858174724886467209478445818340717181033245850830968558836209036043582541163198655065712716900862265467480706715611355723578751333256024432384042492836354618690673297900391685444153013729206734532159148681039908608688668035379024519789673519524912871900729057870694360082406256968028159194395803587612216150903307339506171965886856630865289019116349811259650883687804171104921415656796984624700448691461889579030581161611157713990094179566218640875290482130245968502489213455532091065672599619014289245314581236919245547809705751099275017728370357945534616104838685959354131130746747902683794833356516631796533587089693418564535479571884154107870159556617424052819658684124289499626335964825225236660414579895307507018692479706808815528217329546882907166498424192703859667999235775459609203764330526697106967571696149326050570394142304895211098891149018604072486018421680676506904344254060048802854969497873908442741165502564092625448084694371198649179824651839943127528748951785168274277649536950940129582175097713924336944336555622087109729675569616350048849858411328814880528188825536753685166776442723709996221552252594905710215707545788429533599329046878050849127060853292011251520521444355971839657661828098059978913800147926829387754889055053895844823840320537840515783102463266158100490105642170931241268225041349450374683636856517042364132548996350345028640952047975894108886013119783937126001733709999868975570575707268648785576855266145975072437894992729163619899553241137465112911427826122898332207991240742287900773276653888039463698003315135648527952644114591064140552017504588388305612571923517211146167998990884561629858299596923345153985327003802330756652166588605735826692969825859694964861819213097720117241946320586261613725888816475848165325596161014911555484467329209398450239543251065711989496214101582721290325308075097752141270432853698835560183226485310540686670819512759800720462350956539958695102941769193502988369433701474768035231280297250167324520998962816096309987567423097089372715522855972108040911419157453694074919845347315244069379867320797664006218197823299638605510977256173096339467297049756505625376757515308762549867563662001639698907703786065415030811983093715611757099297822901153568792221430015873486713306687930441072324035182730263744556078893581365441921213718495342273806829641467754164948933608583882655661853216830362744512385950560785110926965240674736000521237418871764193128499812888159721447854633681477118791252372304309310083418272743820540769137714864221036550162526819165634157230764155325123257208848793312680752468561900802710447749640467253833749415096398626097918445960190942954285571180647864458939018417069361441700858876710257504348116959141263357622624496842371170230383026489358160481514494842144459759412959098515857298944517023285292578692843074264462481391777480147835620636225164882327485966601029225136172669679700160039406527540781863082039219703185510204357574604133581889899590860317255277455485258579046460574517871573554885223938303504976894412270098448150328474217329410102005949813642684751308474031564193894355242364850662264432742561259266054978752264060760861766968007147037235565727319189944847044940035689757624772680927510522778905683968487433720343542030429838089707055238749978810888896503034337393820456345090289179688000416421880744240071490417736508233709519401448282296085407762975002789028362847916425564412915206673183368069093153245131375883083121509827611860168737370941582689063123483626621817305537925898677858261717516733799370656938136499737239545018228320586817438835920312236942405636714138765629003861132700677272717841608396019295496956958579163040245042659812993115147444905436293836754346935667661643424369096333913348085239603715338202639767037990826817061508679429757821252828043350207679573036314131946287749409528697876923867386790367458381770539032222863000440045714364192243068743606732067258302351782104574550769547808844847316152162580041562879003128247524816901480955415693435155219055027551090387618390808181714162009819326412255309046482129148347001112454971395127958585422029227195211990088204629794627822460111709098541654815175928519433378657569277373698764462735213333401905263484859537332331991508342344149258068315078431481529455659852215475077280234693177934546272138191270709515751722713210654754901428441669930744312102049461292016839971217562324425896408567595499228093923239318736146894270914310532830904089141425635892788432074659157417230203426463908747373373757708718180178455995155695541082073600474694072206016875335630777326043371421392425628244174242159006365341655772120029551315860045691983143636851242678053691743646199809475432032510035855713291264233296630180025696625228373268997331224626526886515068367682864029268077207186352828823414318088461203965889113510189135566702535433375209730169452238494016665787195524342884488851594702183948341727534186635893511632122153683013908747848866565294779824349980764948155648099107200179972352563837602930288399929443442828785217457953706877705342151228817656233264300218507428645762908265059239891346952285415446721574470586521421061803720619673367821449613500456162683439631774061186483065315542549592976795521022736187100755860145352941054427643126977828254346907799480347647144727899383647262814994507583390189390878903349570601496440502578639053097417149364664487756008448273113200698419038014080928582468664677228241998488569455693122565996831380929479403490749494137075584073780347906363705454058348088280207542986123837439332000190502473294640269180227945954496561449657939366954583129762586703165247458584935348617720898243401067425621990213935619023316593445835833660682127386147844076187877374960067979779645876091470694635975820339193406340653711205459173966011559127040859972959512112189287393619149219294081118363868038684271596250494446129258464545028876285068190640921103993917348778172806028705670050654854959857825041677110132297514878082042462455867763383079424472574309110273427786686499756040810481048041121543528481374248882321513814709828961469583396453279452012143680205862724850150973393699179070039446396669529002263805825219064879556469798738782815971842120564310960766685009834752587531427471139211889661345851856165952854629303786537697691827836990107882952007090730285960509359834898050193691884376391542858801522471084540636287901551676117919127608128279117674915957516435918802999663823906039696196199597693990444145035509450849317788501953736730423176960107136025525872326930878594870446971340804777073123863096746430115124170690180741099240794883298589509341375753374936626048151987208880180509166899773516267946245556012534483819558442820621714778154765927068613133078572698759723789960646598887038190593840359300213121289922241922917117352800394592178143730359669509489587341559486857938753591197735940587181000027742543142953722182402295747839473373121564244239618504422290019740941492678524617975671446103267071946551300797861535201358444552282915513459137561226001584750229099819565244300966987240014683401138769923196942081276843545289822822780318751546669689617528477714354145221900677766080734762291822917429729732600888055934743349575808222041719718446552095679900013422919602258676716574868353669496360715271435369661421452088033533975870903934582481019274352190560287864404343237225169070352851075412683205281038985243228078718364241440154161610656376192988266147478677029329352643636665817331238724263771960088573113805764784116120965347524657637582014262045696777029580518552530159570452728558770741991938854375247622130135304377600918661625474971156675540615953981931216162214044615490729435656520815598810599025855946966485436152481471206765613448941809990423501796206650148362956150462186362467663186619855376187122312056683184807152097519479557981280048026570473955785955005057243282055435406839479806466621087142028446967577172841971007838192988137882408638821131487678968576876015297044337882674394343409481639249327210983623243826213053268824235756928977637070168779118485365569708081562700096383635637137384210569110195535560369802384322413450545596676529918101886893953465374004082316447475187856641219495660225624458108565963723376561866261086356310288202382592886616480402066298785270519080960756894569322409845949257505654647454419586721777342361968635563092677913541148397697725077530092957036878316088782223935064914963691449549744533369161952196930740621684599200524085547653416320994609220908782233080560859356061643600782576024580550780796421219525143472940030632655326291239018433130473818752988649359563290988836727657934284650524925477376190789489123607364441512643678802203115259786088467052322701833600076694119896420190228407212981282817790698524696775833749273598264243289137875987691110446445425489180822846471516266150155120190776188105218879034807688622084518569294669808745055027205054714090928496914679494157631886129516934506707525903198779967565993634098399128391949192568587790770670112044543705570223202617024503762235823323136805737322099796073597496791663825484495930010737776451887617937784992714857629764246634763481663412894188005208012909771773228034753321353346059750471141195457300078266039287743719235191136175119717433482589165159350005062523512049141133599729594362194706949573414546209221438380974337011116365493757971101841043921072165841775608545299377018511420454352866858607901874224990150907635014369415076742368422960858877810555977035538635130329546223364459499409457007877715528867045484190643193856370138821196609521463884476620468634104845144637345315815274658369410697252619466556435147341041860542859080958825186257450943219991627190107748378636968643013738282251339854045372939193366523144034982765127851224247635769026306307138836108949396006073061240088021112884847106384095384278665664122344740569182941677493610279434634581659377290641108812298689965983228847640929122993545856768951867052888955406819815360092358644291390527662589595740000011872948139130551631103371662884688856974454100136976165898653058962601636143753116561550600484068003789231201917999995105452237671627336744834713363709230650932361207354224404656775819592546884188192702900733493514932938394307688339273263545628581415548772137799953746103820627707410926336164038539509647641735658655303267239410368222119530202277966745788843003308282626579092515008522881640006095826163804510876067763287754564568566844093759102173327326092022059646505912209877214190277470079133285399214588916838454683774753058560941436022995903985261359999338554385666175616925673073487493999671138100859096990230717020815427339928098630562985042058008920952857692181648313837458764650404426342521850755889202528505739321063711747423860605722957051801203232230751893822915062934426189585728871184890280982713989833552184128188136565569360892457012976129806928905924988428577418797464060578088176225225727998695479866443572276262447459839880682943130366765438095169303206883029570191462925288612603088942493723939355502060017162372083727854409003008823152465855537505276382582659098715713120689485918169500544839046171793518804594994352624101515479940960794876413282303709537651025075761513050509181741940870924894201568734744853992133927439800263912928395294630160919590396724310540249442358311492904403786225932781395189261383534843133398067842357988600465113077811780753116030072988200861594995356247145003510745210494598750813158067294158524809733795288032916734285251951813032113557439990115826231413462012824946451972129081646544516686700137918645694916006373930383725160173794431099870191978798627859110562239278790631414929631850243733048236591724077988202159221106320473850492303997467135468105358993632907414001286805136072549182668753000652792622813761353735874388235346140974853551173554215816988129307930585832282357434174782483607989617233931035001144593107181163891990250110890149162133273665274696411115728079084641631142880398619502573916172803296813743496109877533549708280456490855276553299289330228625144642365890789958893564591925746204736331581749193389826817496020457824529254833401908787593984703135205044992760980238430649791623506410134986480343795064349459626854508786115273869642406356322194052810258393246896138461997517795041484840918982243378216201524214314573977790607812913999191769985812991478640225565918241690411080512380338937758351728945619647829232595604938385391227749739863728695349045792240504282988488064143011544921860969142336746852590752275545124942718917896747093896944903078577614913915215113510090051871640092881487515141102118562638460529735442308054569101093622050019179306361929744972749256800212154409569142029733535070313798514125739409752914034211873847505673387491174472014580000893360578156939780806215173761771585674204029619001199154624189037727784344431734015693651684882917538264615995328259864521880498925429574930951231557992848240689793442751393007370666790547462844418133840766685455303107597963821672460566877082119022966796299729339012217143080280132135430884167940249233462409102772701552064600007085769806692159804180629344388971290213755797088193849376838504579462007283394284856852025214613697143385807310629591352525149284561757226290884600948695364580285806226071223973046030688166103659565960317035662203629570529651845901904103711464642314992344489844475460856374747681187652183165618387797117308462147632265830427538523599241654308990005361731488486706504849089476986712057177010223467379159881063256706503877982159022986596158859023025341007560275430076609909234028458784995337701186187614193686153044105358103505653875576257689584130749842293362187206158563517717032334948762686543313168364493513333940403346248064996033735411142618767087689396443936278832638112451539970571342135152559812704064932412973628879134402359199090064770994761081604393406944427584926457221452459564400381622978799858786313758211132514392342127231105735338342905528777232497491378231255058898892980705756360064922737847919115434212328672348448141672314591945744575899268843500561807657395344532019405488306002445312157082769039608845609012006257326081437367832836634852950055345045765944941399299267516318881303134012692486698389320517378039892135952264269899690705780655806185242327258474607318131006802295344400263581122012421803467881699329023232310666358342941115547298039954456681295105516268695501606741365599186201059810983935878159236524307039421424942439178303199797913000430976865398545780691603925031288372392927929909692357948520753159203781531454921975212106007126163881797847258920442811262028448392357841998146779184450035140714498612806818064005783094435911155764458889922804599173371840182494933274493210179142113768729641179230812137643317958417340959988944140121744124092533159736165555466538238188505437898302684668509252365572290967391857611157624887177247610261796639417566813495862731892704497615403639612311842286144333942336558653894303553838478282592378219327066351147963043010060771671054775394768284430703980057312338973202380351085247229547341381672497849584897417382477569539207986913798415347900618283048379390553682656238580078692521150876426278465131874360744403251810395935257962706633308295985285966862831663801547622154670078089602368893654299304921755809391332764455714446180696428971166297646820660738928249872276061000062914179088193410268999301828502993296060327448804785433873399599284217712987710917499555929560962663061705368782049188794850118054091731905475353120856233676306398617363499295362083383477939408284899015092767659267634928019676157933074121092989362601167462789765712541456170773243668994231756618799383666989719102702880952582525863197647001619672874972485182176358680173336929543711765343508132148533404053323203727275310343703564609585558754421621812549775375511192691945463447639345468203993013062126778826174850820722893376118977921392704189348952373948962019704637086359711158282809332308837550341935285753151280806766747100001792707820239853784445131347418514985305272074033493448636208765666014845094277768280005081158693243081812046328988797888167994928705629578814093330150177307867024697468345501483693982171334099660439565982466390455819742339045099551973210323584884720222007838040253679648280132331859934536752941692339293364517281235980476767283272890862598354582120234122792774333023287485018311175649812997664384834827318507569238475663803978792824700258183251875881629762735633643003688832050313220951612683556315414598606948942650208030466465674977862824675023017112613353288503168718395846962714430502192477597021565285987932054580863899386840913385623360769572289614594069945423257146348130705125803988408265291988459199010762000200763765223777393957524552245861375091329714107416286786265744875556065864073501854146501537490734141079272147732208589075159413124407410854577923297289576293296213158993582823575685725793796448347795545797060391025850598619109966830238119480483001833543935430139410043539003817158476882322159516247182385954770255234019255741169661662684211763589587683085770110673384231472830799982916147875944982345127692812658363743878570093414062283421652826605454763852988820985381044347512984953016333510721765792618035094862776400630296945304549901395569833388375063514216682589880743367506413914008187732413423947631410838041682479267234367652199944498641793836565727215936414009767142368155155765806130035407075941304159753878140585968214926565749028032482548362389524859476595625550073009582511355430289356262579606569961900019647845317806054414692569753317490071624090832329661802180953425704344100859797161560130275682425286974303251706119275140929768465204789759515847881577481012890475138537450260005468207392773312172629845541058063518019047303201372523192382817862082495269547359332899189151299731686671846133202589673093087268220355161177191798415502679381479893399972429484537150144976329797441153213111638243014916406261430397421954325782593523932926607632320011538917907928799710703576168009966685732993366477393815716130855284705517597012846265050303966843709291708262528105381359459809575889217445210213458245733961782350801332107545831729657800096787556038159687172454340229617614247869897888959690024285219042234526875995200014140511890675593467321132049714503110275709611325135896454369843323078719591594614990374686375455989332896826978243941338528057629577087041492776695177227551803863478907583524347745857275736435373378184044537779511713223939546100145584329417192655592244071760583960981732560742143898803799803456180246005386962007534095624955653975227759018209206197050249241287373390683332147248715463292684525099398428886403516409227865191776493950502692102133987466223009675445853742233221149583831062398222497357117347913032015349014453953027158459648164297342553439394061612470486054405531645637751306595652739933810512815348253291066007427338487112709246921163676648019045472811826339225200530926102704927836984567843458002238425953563407936170621048654771821727089040077873420098062190491599491088319112257883844920715214837504281218590872793860119227073717982897285432899080461860693712741959565946810468768279214986080613090223970498932603473453443972783149284801527103963140237522750819101767852204876471028950596723129695920041745077999190770656131144950522954078190632404236275018952363330236728873703201162086366589431243651894761860712504373774968406319201894082384344313778900421695393031430201843870262097705949990321561484530127362305336483503673361824856069782732600882033929964056652067802984972481688305382211381942517577181134266216655996303692779697705872275273485812175909338500751148103014095393706367172707573532000648792886989418674628059039522429569833178102948606568758992787605738113384743494267978692746715082744359366485607007147579940796681083670437134813836888810909736161011081466848112612668942234102351065508220511152753081654900594249271234168357844009905952406182438688648490600332589035326315377656085515380022139903361264841478974737684106386797658284578143087258283639553916070969933146979020507376603949527445262275946495175929171768187161953654263571215573111482207646828837129808710939413690571758299424959396986898442393907543214628993697767778018515079174834811903755266593544480936026230530288827587067739684831261640658430512039169531636094340122793588671500054300558226817036232119102613663719064887575377646341178347667159220635284423210250357971371984156606678825970039513331254299447403003645899644966925185427568416296186292558648273773294765439656025735332366937185389623798801631410863687321563559328408841998321007345894953716682927396028965922814764263143034104929895481191042062144885518358136697517787058356640142526985501976841115438887669809445190218170754067963752102204590742377017421697867607641555765734155233925662017015530387701543760553560362575648358667933225791076909275154880853105531131745285624278244840311732447376732627660931847669373796326941126431664580507654835005634062220766925836651636903844101095405272078110795567700293576971404369536784699240362179014983294414649739017661746339319268409028961583523957890866392283752479272950695815908866380259050400910304352368225237849001230049443212729766343435675352211396311847229257322696212883749544770797385158184044866378178119533945139942172291495164713512236791213646235712800936506674444180115655620561907441971535302468371823197173562474106834211846707130714915979579666701268904071433498880103884334778886930335286846175591297307501575136990427279789208229324664745073062958945880065605927500410410062655842284754446976522967931690744451100984168234737754346651585508075191021262079296745556423537147241151910275745168136317060449514669249847921146108590939544678518620640303060556302682859171023670516990138384869114012608944196989744147366128843011828803632246626109955961113095955705700393467034320857596930411767735074808981786977310228245898650611495216511073723938598647463446800892519387835220725528185713934584251829182089747846796808331597719759913704236388164500898076181045705998646445572729063147297526167908358637863305687492039037963671860847466079227741537037347043551553380442446795311895934887000903162831270654918527893909009351538661253054194559116519739555821451425600408201800414227382112834770597331887832384634790276383124647746290209149495381116210965773044871116752604341401827690743230344291388242035976919580741970207926022690193902442717453690953999611323370968474300414011420881123925439510503971278495675555131927099028459811465847966454975853280909699354601894320528378550996717150729090484493203311598288115603363675264215746200077472593547758873315880712603725549732278260368329942900313967012897347192906833654722049373496440685667467719751017254377731941730625101048141040159537477342956872417906466464091025387331971053614218405764294532060884803227567224306925290103656432726252921238585824685947691012328752646992926599293425644231759262186906441217611770605960776694374386311121916239663979899803788027386240833677558373702017093042348388033077436667149784509814589369882571119501644319311743186205075461859291884457281700436309167059557287383338708173699850084407684970765313304227088343683780996116926987906879413438344668767481830693283423657582952464151899211445847649009976511778199838591422996645633749572372572566661757683177881371904814053756702795490671880544279773378259042758713049842377748074078916180489601546900296687568926614100160503214968901285655614218771211526001921185445660239484434827391677508162862027270631399399590080707261482525149084227063824689150666035332451088375858198099268602967195140804829428757691421800535940310322181244711667636865912354486312562574480935085052280231634812931025097481808990331303594697355622112513301576743652100209047146188372676158020241309252411584082996695187086792415329746443596503260620317766305660598798614369800926172947167392870710198524820922327316984173540275300880679128215080015344508097328605118989466394680056140425422905237428716037134627053485656402652886134684293066454514508878667747737144057717277344218868019077523670970541948758495537153789800162585540186446322175111614965306287198744069152961611232638148044980818918425020401930269011346372552015253985068806027345192520623289007649674273875264520587879544807534852549787093885985255056127866089598340848998043870774653532139983210519392955032563033703133434239936109195038675484277370869060528988033578786563989597776521777781318632698143232540608414534026432621793210926722639589312347743883731546268656059749272269330351250583561210400866989236054978748434148162213239805905289912747930518156740354145644202850150625336178353652417892507319561967564038226960864025027894317872818167306236331836936415046282842992546159213879420044789428791974169023050420343666783931326840546993625194045206510862970977102105615747319022136050101121532568246166485717371497450084217468960530836787041456244224351964921300721814566603017430576011511343390229516257584706883627597159413879409012055399114428566876785528362995820868614743578405263237455819647454946552784877828244697895207163122322334091236531008771613137198092567155208039839823912577153145655207072529071388671538796749076831393664771336034720969384571785008040341289704321571517899618311399082270662882122926167424322193750636686626080680328582028150708297305715658707316875915283883748806430829545824940326823151944965043053424494946851292253197333306785242406522765946110387808140098140606696998605135984817929551716621145709358137278846177828059232898359705963676680690025604481747057352939790671582562401890461470766930058118118025805836094467761719471624199313689037893685548490832162149920075979727197435387043101957063539981889470034302653110719607682993371193296385054593135633194707055138124445882862264877936273247324095231394858918572187797931478770022183875571659755275325956481316719107848466263527103332600987783074482649860591447504091451529136370930280076218881381006398190906969438777481172317773776926928663397787116844267431259591705129036564431078624192326552905185497389112133827175658124490614116066513012403448807480729541635003962475939795346964558821929951714758344612105531616077713573232965623456782115531233151866936561427594306420053396892144677463698499257391023772458555321243661189799111005936093383336973749647706676032151186618636291328595815976221480738884408008993586547746234745550568608927354232800770245530742416897924427808584770307524959802044273007574690974704090008558132084520931324148839092196426120333679728501281481285241340763444223044905939977300139449086272926421841404267206349540222579321545897371275532598860059075146639559511318047073073261105754522174316597362191581852110139090312630214068300362383306581325358194532939760632491893359062333952844480153379305191349468598041306254333217388913757688510173027920724861884711932069004800968390274197773636857273951965604584706339998174303086920432787217069814122091470002762506989912219119848946952305516239149589566523586505000041691088131667693528302342866710622574822483277550271001303043304805047760887793310816292497105526829773675163126562362133983347769178206398298359564271563168548610509845568750719388981401948370784908577897949749467937187879926939506117236530377006650794972792256846294340040340793634839448001818147135471608371725269097656066959614723781916081893523029939079943421821252165087976434645084769419284509746612707020418722521099352243963601152420995115845408446719136938486695140084212240526784405455287056044387297594107213054724892020386537017303436385428391228902459526806746760031112334845610281979747233879924165066940768896835451601232065266240087135125993081160152111705646173960858950995592578570632353639392877469331923349770289980134195900737811358823352249233433155993565340640672733193645272098420517654209690719858250929124703135419875946913341864231096411088098369280164267078334270510710561712676180522442256370655877190005030721516518538826205350575960776725800127180232005601078835642623593424423523981812017376025454801411279907833097004550160846676101008187484410718056402289132168450287602982668902846005743780732452659680611235212816375023449844128860481418643507595328032830146772460591464590043762904660486631392606239167076420402603411679754423596760965622032499944046987932047981551876168891407935752357578513346681581042364723273798083194299736059007180000012127418213315612283896177973785104018008868360559385158819047850401879495357644372694280868912436347987187517195010997129494676396803319768427086346209279201349783108184931529637970378608425681488632810812601254954348563511326241548184089679506495363447031775618682031870359756644491140976011182086808402770504750358430652854786784015976959984126400751003120885776439932547285806236149040257861885875566254778777707749238947347927164677650361396236440930985522125207706281287301275430851669786432420332161148733974554315552821438515959151269973484864805632959672834804996083266013865109239877908450093737487896859094651204147148783537396515458261502421869178152185409001066129658476479647018457009144560446584616598392594780018389308260011499477290063858088114383228586823750776830632083091321849096574895444856629615501082337077766857534816153555624885863799739659054940440326222411893739107851921859631097223209654937499004786265581280004703857558917920212513340748561751430324034139612347440828521020820913761326553486048629446085096135851281248656462499498520346564751800145151434303574091610823742661047693998493063007493542284755135737185261285782970082672350267305940274303446630106991574843554765332031540520093377540994407074555804910112788153698877200036500431344759813800776095370507878320013192175919869856512604057888834497177500802584696430730058580273422947631904218862791227368960374414766458099387419193605746106724036509576764339679215044336042603059054498407359575088414108446384334950502056864826997655218483335356673833943599582994672927860964172946986737631070470868806903025067778760251890173352942422894680765958486848824195930920853710258179701037409494197630445115357462212111095108307320232114044243306350531387968624768269906127147831994611638468047907244480908141410296112333049673910688694705009353728817711932781783135109138961034330631313659016577496165797918815535741477236007461905399444393692973950697111067812758853713690927821577926267532459478618124247573677183172071419525989488586554901652696892338031681768013275419195338229677279371664100276610603848418830902257108917652688414013798865249271076991417695462805935437934877052221178029186183039608401859166248653211074693148479631950874116252613363807899621107175476164200641430278986838437622992776316227591734793143275356772867329168019808877694555782398068956217058165749979220003679355585506459874598080963622156830856311605546846104605614101382378959235723568441021408691507237508170693289785434939593463117536526466630079064632314582071385242939784375511901296651592730067518849839022922478087168531746837440561649726771871394569951924016165526470116962384592712645984227910435499620387456457055713112120120936095440900924896724827574228069721087535243975890215192277837728630838095562959274873274450285507964189872587440548350601277938804718193280323650907908661871073436960929920949337417236354814409125799687672288606252400740112723694937258771487284180787450378154721717432813426274073723531420572237367995161517989162152155619294908699048004460858477280760850961778722724414040455734261998422257475622133560879924283781225369145079699881752125775391352536605862850050948108363991924596142264767539977881215551189168594313478222374711433661671085711015676412601495075607008220839009900943013547229789162530342450435688237016562835424727424554953150744639566548617469127801105048375465902324973000272721491656881735262230248614120391927849145563644788886644677015865633119090368985584146635215328468506164322552678983283786527851531627770085732649595480536368725765489162642745293013082795005139938156672913906906590813722956727207400831237770954566095089368413885740402368046950088095807208373250984764139623651133820243628274634564705577531697092035341857000830947342305576935257735362076993435847518702037070259664489711159282747041499980693016847372719725722989638242831253147774569323940764953923011817296507842200592795153777546059725726041643473439438067173463598491163011470804976686076589795980749240927867403899077141508005849366240442755398325545817429665984016201374375769945207546935635330509637785971387087156425942739497130135707817320198059045859630389131359454380640806716180640440296626674334740021151222055731854488606463895466549954678212751553727715225118226595230777281817511996874199076264996333068061472441874892974360307996612816930124212912623341640998734125327708187685199072205554869454917694914915449768412044142367816863818986519526473229862520578844124875705343695187022388816194213893975020486517241896229680078346126939804071310471408735701718477186506940520296876215907048921548442580676004216793783726441596348896910015146357842172958734322246175498730448899752581271183659373997685814848386385865001573331786695743663091225158526391391010654937026500890925186242111369072934572803264206997667798267352832545924089771935153162997612848468624839830917117340613088759754001836952299312117461054041960729092379087547247644292305090120745943336296911764656247412570731253595658514635318244290403552670927758093999845886294099175103531551091594774279306525130407689543044334784531909321886895820261770711883286837434604388339747950000132643272154628659403629992859442549572072327311385037524782523429107059977325505170490979034211891152943606809856768517127640535677648202772705688923034813904824692727505051780394452393772444695245129278805069701265683023530041071286238377435259812842364961663700860882602253424944205439410140287200592748044473805654736816601451330631323625741787530695791068870786922422643486689233500784569425793806811501013543550644613835596507765560162041329284167501577663017326638344896613891180164874460018953478664407182550306139794230583514552257029610212769924698653841908138114665741055278728631425598178471118690467650872224782125507116684202325571722948870742402349134836256670329767743618083203416245185491174920916061304165235256188999822956012987303600136826538863446099674039382356650834758969094430175380523739646351969825224431783174552420368986972459325069117615854478778317183406228285118800629534997654778025665911273700555101753091681181400948406544170965171971960080260895771884062617807415836926745623075246999508622089927040472756619504534548211987196224877001941383911992165037622031039318875114208699640173745785711010371249957393044508264087052680278828943657604932302199735672722661379540967974069781176876313473921711935481185444532569977280163379129277588952705539534120944281485290362978717359628072097447578227979608438393209456456268403382890882849010764967055097960784095070935657454204589869844172925221139725906141768165207004893033124449785730297269779573611139667303050039699235676944016204396640127037230990375678886598999570730196970805637050112184411601882945142848939812992258794500808246082142819300327432366747840151788587559976265956603646959987733862717794036512510320256052844748672203891448231247540934261567140360480563965324850797832920823698290643678351500423852717962185419346208796292555119423399513396536585251367687764266454682910821778870335423682332652477789230948936768643784534729134868194502458580996338917558116718331012880101262878283972683903056435284105211331458003368238853431852196836135891257295810960585512249573779451346617450713962610347517771371395663986967594404377255348974088721653530747478234969291775640051749805168066851244882579185274882667329104925428650320978130733323371398815926519761641302515193466722282466312553543325918187912125557738531748274639714993930474424220933717978585386732525573482190550882387903347750613759277111754751130855262781343060402969074600014575380705095179698008596321644907743271122853712313664806940340901723267406953473267642267071840183628280731697662919526270716804551209318468254473185374053326587595894710397937351402543193229732063348016492006521694809294249972911212254977557636390372667920467932417841989054363400996726112158738228008568516497709888696916399201835598921501091249706477265467432689577719274651732749014797979737790308351785702581520778391256033104945829853803140558844897103865839306829329050528743164147654877415537013673218391609217478571967862994195331967885448320027499571476593780068570822334021348137709551449249947005733716434098354404670644636795242979025540592365574521905578903328137901371500183106447391270782283244650150831393090266099714857620660347350205495883582080546402317078997426674948252995242136710650261048921399802014553249582204313937321901859952341528537931498451982963941770301722830702868687545821127017498146291596821834178176691919836619396732538846412168806507122144065996643404523776444815401205968451914909445087851806143461847278598670786186506954403883567510988781201337526920068737052461253745187760722947285292322091827781059377243799283091263840164187782239958589934105403624146986457442940337664224962904060619457933864460510485315189110852953033452159486534451349417524750707969649019470543597888239266765571912003328387976209255589125636166599892792232353085344231562351043842804005655849710201296554892375202616264255973542126409572643854167932930508358018666205642673605933930627428779356217634660340937888076595126960682732360372700518651793786984712274425589344597320138373290629125892633406755087515998325715488179586667969988631872867985517447674031312138517291956143372033706499129460575890579803983649078875982950568914579087216660027017836247902505234818940880671556254639077454273439669309758382206843574859483686664471890148035389675035102156174241365784880660893999350736534468854308200697183607878590853238930312764331932818677564413449069048562590898156117070227716718355653994024138872995735984706395522691511220921196415340068183533407246767908988460001499594501160791752424710059532927284288212127712445048080957437319055629089737528091364524960274429622064781556859790663058866204750067911610621318555916496234608028235368377926729294687639448137758542597852195320790973192969407431924459630320870012383888838059809159331897139940389616147246823382357092497872204285096981789697411998752542238770166538916877854671967662734525482993783435891427787936107471104780931132910441585317056264486921221318463546659481805879579459654684879580242907071480787420786056880665187937350580857944345783647465178684168878101583550108538683626413716617149293736428198963171948270557990495826324585912894497158219007245534145985603310755390118163280921012972980483766557420041290598247449492845218507374461269326798694770300892698375789552742117777629782639666392184521668278978203162196682658920699412468384175066587889830925214304739166642509035814179620765544102017873007187208385418320481916225629974024603322569753530360177078834229376331484398274483595520724744729205241918463370105067070284134297610446503082092318209789191200835307952825819896579803410785667822244570465977577498430011385806570351730489794013491261911897130294694291880470509025648493256044179196510799064733823269196952498955425246049052818294699505754117957530508702057522652135578595633511085214617536200312760491181527231960121939032741075466016515793196038212638820613426784663517510650882617272126008084741799725909407550976081167089322582740970441834310378894003423440086469820843602542275858842702866676450446541677548802221941165116275316753472216281674801250701797072873563795955320381580839832582027172323500187170658409708408473144281219632829906410005925325381049059046163114108475202594514688318402754518353370966942258320169604023246904127895370178294548257550781698367940659855158486008825607615913838513513033079263162071532878438521240697337808848353257764609118567172653828861946299059315686229450248174275066482735876732025767028616393297995430568039839610267001465096038870836777244368445336078705582817557197306999179936252841134236765118153150495756653327031658822283988491126058825427248874608094901677008524990307361135495191514891150265252944565853369205913275190423416730686912129995592790629651354422093633369529334100825629746616651140175425407344716546191364126199060388976366029315651018691685970122391464024523737442412563770099435437207319362185721571600550093815873023523603235870888544811127650684591173497506733518548762560787709694269833990471598689351507263142546650622251689101592386673525231391854930354658933188533742079756187065516845707913510863280243139415858441284998365607060171604593787993752999985913235573696673744323770336057722342356371399685324102064940299435855755477106746227015511120908039182133569214079481282462346143229603723626616716446087967401742177365994179761679002459677740690745182420362301699285757184415921321858340718450934074994989689142323730148287329760783131317159175725068991007685087027565292136357737794758405903460683857703336004596012845709969076432957580663717378246212941143054437002989560376287539121143039028702384546355758785305349221223908024889742208741593537504960950908166128069445806414888752102063509092337835843341965619826589691519512201984249375310805162421681763945469990386174902337401616637864590053769975749737752869815922317469290971075516962895619958651347025121619739562981157633840991338834045163955808853216384592094091405975620313689554368440265421797140547051013678478157458613064706116576472687521986261349062885909966965664784013674249872647975710191909368173232578034147415765282384489659456118445446353688000888053710857283602241457595310542426782994188265324184021051778377809391575103058260336488056380971710183229008472966435483204517762339504676328561629094490994359174378778598232020849298885433975954560561858339179142450493377814510611066471115112567164999701263006771839910601904033892738349342810007856580254755081610752176265806692073412688735603637598700508200650005629323372469768488875630393862441688696056572940771439260004081847683510679260210217615716043975620204905428142408946761943883010357150383970132686296321929437418595337136764688753776531028721638784997139400755797053058494375250122431406282606900134311400226959785625885537723061342166504490899193200237947662686214169510276024627418368855893669559320941801880554909978905287085415714119549926530797140538486982831715087505266247828344826258469364987550859837815706002038436366441129248641356705034037363108471359646548540952798042750000792568228047743584150747893186520546687205001347273018142297158156302380525678761390476656770831933521027347990039587640760838438101575661917256580816875814479334553505726682993089512029889864907100317304890105252342083905300254409840690411047032199872697615273711559517043520461618671751104754563131729603305054711449195215690802884984950714310620955098668238016915530519130257395501497569854176629054099661094989143821826085503096498761173294399811685065128425580634512825237078989745712805349573249691364331372962402131251676466590757406599245693929371073532046007792948468431348788911723291648774773175872636589099763418345112168305983450552229389914085678462875841027855669904491370901733826072221274908385210513253415602583596052914040381779618879109252218206485135984487081465458047847124055385043382238159526667780049116856470991633414858885293706961331772117057185310915614155853732153376281989704088723643204695915163486594777014310454209639345229773985469541705619925799270726125508537631334819797839779065564136709710246056430685991422615727273048435604839535920540028089676385543845904493198594281688027931262397408801260118123129872095989989149932390106956995117708119292658944231556484687664854649834548892741995295110177758810698661717693266640293205497432093743821096840514909822310574156643770782486228629463736711608526308001305519930457870127270809642018974475541089114179364569428792412122687163966500325566517716514947094682339972533368462932491238581408511718608498775525396099112882799026472170406505342687608736655658578869401633765212025509952424900401521998519258941967495800881355062942601641100725468812698307761673154250614856061246733944542924549260506854199758106727906565843839470552856739540986885225549290362379119602132362198791667732329430253360994106743084147216010166519361351874484449513477549933139661017411969585702127361848002490831095526939643931199434131581971212137363575078780034845028416974565919551921487343908296722479722112394243721156017167759779415656731073661386664834435388141897200526976428190030565442418756354993888406842061363532829428410677643693444491462925904074373218026585734264309133963467864327666439944548319255307404619929050698419936306099624675698358572689715486503871701528543905410190219065791274934300695739837228689112298220062890680641814615540627085882226376110302644347025085568292191919934607881130381043715852802700534596271542721093503903884948980006296325886753020903793233823164450305163113131703547131477286771552601122046574545779291841578265885926411401746240080664492573872720261584099084218334968103321473223770574152887759442335205356009742400203883494600661301376950318672373308678934500140003769208247102089178393374486771669849432076000253293449262975413291202742192357776504141027056352863190701739812123711958359680962016122945009362605333530679433967776744737925692256315858109150991383839091726378819544522341816437976822158295867968033343374742906816238548202955891946275117211410743126673446553910731285165460675286381309479063340403060174705920616843753047106103874384425646500808104864090020910834727593031364992041135341027624564480911274882653344462472590503405200398929948711580493092947741044601938170272448001512518343196407923401172832613586858346725337015202656343416690744960239001109277926945253922643079834839869631480962067231767270305356929029275205157008290460531302878766716315740141295196326994564872799860130283708505738792643475169275318074476943612203178651067143169596491331037217299511321863063745835841496247410416711413079098075796530758861938029071921748658320534380896332571319445026599607110566147924854640493893535275821671351336983393400286122139685759560038703204990592307441720131933382563796895718566445362380652874090352857449232935413357845379141392325508770946494198925173251213383480322650475126504448486452872745823678761355446806710335431713553184812427273774522247799706866323667728420113803890305112295924546146822096982634828096169056624557220325759564607248808511972820186937204110547724044286230480090864103792678458404336072084218060789692181075763926861050506475644520349413896668361059163942270768718342431627941119165331559736753179206474034791882703821912764768555127070829895163030976711140884225401976044374068831730299950293023837955786149308707462110797443890235411781533768623324091371967127332244638031148409548979338948171089184945137895025139138757797291306908506968963028281409717030643210093576556786306360554767630990281240450862219844846182617964904566461061597028514646424101121232237407499191631059967604398037699960332013085674709080390356291795500297426243079316143243321588546784497391699201944668342712375651976115399619511135308388486647110857627996514429775481786877971918753944121021271114084677955363465809730496179505603461056269686875774644182036280238540766405796853601526222465715580725589103298897238660886540996251126150574809978273722808275960820257729299602869216289469091295429971667787674262226437821808865610131218823526616767943020822175397495071795710790842379783139034564151082712718688739669534162599712910427426825989612806743870039927573300491705147045800529002563230110469472624045289916192079695682906258547408098342993183288329015908665002913754941387935412287838232735140707275292103251323448224934073617814391973479312827885473794749870930285354667718413399379862647843384115550130831620171916482743221068740477046556196215546881157114680697637078409568478751282463475466096939300982792838617421278544405291362242447958952655128998531527918318259700335302007033434442261557640027967527821789130929290955491380241291912210075897421443007027139322180800473482397279359734321338423343963116638873401331255938674876045319539064771643377620435493413785892241312882196760755904478143761401690813693047480778108497380694193954271170651849206927832132930251242919929224455763687217243547447211292295666038950237476219525348026046412350669676032720542455649072093091634922553701168553177683467645079143686332348141386389700106469897977522863576069206465012944708459211321830472164763317695866923282419404688321918369818196631733086062154190910192414377493065381111407358199765777005387114630372522219596486483667774090276077703591273634271116214546141643240788295476584052610072602739038847962785231697187976530174509543739392077144418512613311328503298561912783373200917837354622340178004808842983828805322359066358853851835745751979969569542930538638701380085247587619214656525914519553669494063300901347904233954416416660148019441918928491712142973192592949694525680325759896908036664906901681853523500566393620984758105006550064841093264455454422858414739485781094369289020140854361470111694877650684575699867187707418667889235233371858567248361748387672989158634767376845616820038484383508643388822597461058689532901176589620969668740409400194673898352601648351998940002445605215752014649469331886292209203179453882237213945919695531920533472515699423060869085813734433935343384981547701280443715707013954858009452375809518816571559093765241539600178698916345159246525332974819750325944335462237363940423970305249314546549481648235520847265321968353519183644532611293963009887864320902174038824116195717071035991952907831918922392504718460733853192942985656334859907383260041988929241408223433122446896921926856606394023158347722528245081982585391565955281439391542967015127754369832233343285234628541846457736348368218607427923720515589946856552117431633333932472165334889939686588842210983054716075290880200870653456035791670433634453016542057980923691343368995635489338813712664579716541917886499663237681015648101954454484075246191545399449143721728847790742990449228453046423956566608440437295578105753562652747240788008436912543724419586573789062147133293511342857618267031219384036504583474954018266438624679393399668003808087910973710721975528327595857473142605628395222099436800120359981605795899244622396896066591691441446914888616530601641915650018433125315207192113284083259970646729720908067107812702050721435100327540448485423616527218213477583562598307941705513182774480277919825224783232703664478156603470745099872490224403922212375369743997158156961804688260603204419933192827391062520582956553830410121917159626043708310093654191347711674313397274021836825652841631233435910866486963081417410837280326790594322197358163200751096891424104401530374307562908376084563919673541460319193879331930925696471246343756103135965525733144879563716597365486857490175585044303482706421886644279844914170348757686361683087053094002484221132104637964425441841621661515258055332217522685634174618316951886085955922868566966140396183822545543308989250494992807014519942733301435103460704173559800276782470812125268016061797987015360042870224129990214955260379576067903125117444138627755714736847577736916766607081452983025980024650702027209536883637170072838996666539294760741266628235052975407953489975230967800858728940200134364022430949009243717712586566186304442072203170125812023955610136208846693208261995626285169504481746520464502992947304838548743007852752777718137484439188852693676998163687663700637894864701421962203492451298928152197590924591693535512008641398950297279433755396793542923952465154235553553702982628685819499592071368706410522722392628479094974213683829127092322577184073130954153703689248765355466234710726272175218831270967262584223253096631862185106686849737748737527706796535847363180528610437602039510720835964623866908422052143443758445828860623746085067145701035125722363155035194265041586872267557326790046224097635689849896997100191077334315291376662875860308432322453162855629377000605289862076730366929252037484189030943550661403860717540989193304375290913502221590332370784177177120609418905578432439703537302663475920412729035006848452879222629951149147812054809668788128423720765326191380241478510237609029927904432766780626011664896770167260178709677257097051699042101394037589050987642055693226509130070636121114561973965848890453905737232144228221469620711769979133022252153502468283275588515227260099883730343828816300372462760891729707307721086930642152580364870320229252622358264170239944907723389074646877171618655143985824218524696686714409039920120293526772126472082972683632514287891756664314481365997884377731295767509274067748553577534245321448260670779942588273924440915778357459270422387157098766508555306807276306489655796719709728065453023396273233923172214692504156386230243743142319502006989503583133235768283988062410424595981111705093596510334062078007760115627885892019171166557254542336419536519875074006919446642741820395722961572827450778111892818038309046418266614404427877558038495437467624019900486019495689433685685730099486447795328260287565488700143451258045195795045075990703553695370659495001385664527251689081284897026522023058175205326837372999327387014746179176368383113175393247833200636205149816464162402698379784439856834934884258031513312707984303428896569099834006711532592705686716224266185606242116778639767925969734502179570310310713171792260947194261684914557047770179828190699751316817850196015951385592020906793695330797839546845595393827589627410864589534804863361305222928664579046182469111281997147122606162188213351052194402344181909982373166098030930656939253310781197254276620393924530168281168302904848166626481975601855432896687647525878175421664715934703350328622022121886782892915797116637033345410182102677366578225922717787025748506624692208310388909917166926606028207145050530857572439874651879043812462014662707490974724847151838888151384953732534101916133369879573340654305510162942057937037553309112537770140792151436276842073139089082440200228610090497979296170474021793008988378735577824970927492481085642147712708595307469777267056980330875479913941618034237505058460295553450884123338895486407111401559892133914783551584487503530882988551365368050096228685846569104135292330538045137320981985306741910115122295648374926631505684686444683045564286400270651306543444747025070352657567637652147962071179186568165960025106889271998711106131614350691753728197669573834355684199813341495574749950873563901472482687156452697493753168996782831276709168425422560050910344762500645070284196355310740019023783784609806083805236070244205260558410880779146797654485138185655641717396200723781718527842946086458975632405093436909093468230328603260349361627831168401819634302962399533152840114867348236961589080581532065485482746599526850764391330837238803253246969568096566973949684426443654535901973399844851556126164692323308224500119384669082914921372779766035507570590861459323453517058784536292535706458229242639859217971984644121565566810826415993029842767506689435030833512216308417910399837514558509056181524757016299084843062989705050607371498593751554864614719019441453961823519985051705934121280553363972067113693745166858051826958836338761426895048567474662691916216060519943400534124081768633167997354195140428670239959290877318552873892057591654581666073971175865696922639788950482860141493722184852612698702244150507606333487538652465479380729166988932516489000825376082237991138141178704958126299833501090375070031582249109019667271044969777092493668571766867257811674022991730389003272148499967374298021872244625211798867505283302074006202624050602405805323439158182612607226946170272435255430599992199617791440221147368354693873016752460870999939797689821638532768141973249697083096025399653897169468928739843120544795026927384046653455685998794839821153441697993487468504385026048557515308249916494377666890974737218547528292452556006231627690279547972010453510963355333619850703014507842459088229275597534303107673278830330251055441647681373767985943212079701517038340627839915369084625543796415198755929420958183506998800485701301004701900175504219790949626969024598601005745019583313189105945575302662593272229865693123186883772999569196432513305547078925329810128733023590473972606806514008027190704493555704080556417809640351397333286031584396372185447538020124404319138716999244655941745955677689518914064687028140064428251154130682684887394634604773377475401673459314781728691050145433519270223308319450676795843406062711854042903839017540158096033314215763535472480241014592039089183062036313823461929409456258283868352373439364284680377113667523924289329930835577600811685560991228014502261856588031552837748819920385041794851817075965801636137707591704076134575230922875704675144909301507004383267781881455980254942691878586209460802918568485513073736605132608974657060191720239559872765949302228968377980436312724333351799050110025705768938602490190146558169296087215251331386596054909347810016280456557740029293728422753650318332512494781164985344786962954185169293839612510428250173048352232014823495882639366704966067214142830061778202333304519240737903965014808857692012389842377397516288869111762329027068910206564558733121218924841214709127955246198816850085445311961739851338579310610718467615625779889792441410399923857787576279218716388144463351727316596066476632162177233210048381795514296984987184424907512773610092712930943034487033273512907708557946290569689146395556546505478256796935888509360207463846205899365286586781899344996044333159193541489704380366971185318069455126139168966640740191448878879058095339022670572740285378524568979911696721976971393676500793736732148623303824384339393712259907259950581453934907835784144060084377515297127985358591683443094051491544943325445448943366975030885353796690572219431322462434479518742921023428386051729000545217227426904311241451068923191284887553204974434373581247568582076622476985167573157678236683762033855348290457980301354099056822610366521333405524999749399624459881291612772092656639097551729062907105784931195958770019505063038681448446009828164847267123128696895085131234802793996305704614582245550296109781152944174289368907114928233514499102810263108677079245842818687429454254219578766177334007938680482873081312204775970728298584031398707711065488154195832217624212808069717826784058960465680087408715875915076767101255464153726950556300637493508167097340636055085450327864814885493988719743547603965005005746551967847616191096230651932309824778833820235402454255095623451059799895689579954624199064741581731767534138482272258658992558525762032363596998001581613984294142736471786579055611010726526276378995596358621285545851478940789618759355944391209434858599341946372736833285757120639704101041094536567112336717313715997172236798581438709919258898648045903190977391172178930933014749748859487908385647523236879505552600723638094263739508912664036605764784493487927456828167796065646658394438143795690423834320441523212428092881919191362940023277703048387590537284898230088135236008129759147606264940021118448918086554406276965505785217864196252123637980006005426257332480677033154438365121874076616356144278807147076747773395963223110704071258328579112612546369555481320030949141880481560990091726771290408207423040420131817627665684276804146229330540631343253569395677309087660346182864008663788122356439203550018756556120507299555325435500421210258637254902433206247867516012366433010993019879031733300227453713187262857087099846261855091297038286997404226124979523369671082556080707973341519713556592846015124940960049817878183439969636806652344254359045228499116466764939053960938786443104013934207846071812068140169508427844816172402481300857165598387466547546881721934250121889313398735950545929371339279604884466924850670499788077135364970968255850633381427979289656425728193474001600011676786880281278333852726680091513296839807394815712856655863211691886425447731244881917329832288982149082999718509898933039569425376578257610236855674502889314197868613686599988744675286887286419510811719773289993916835402866550410112401647726662991472480503037050233548022033557814916682390958455846411965889383455211957424561411370133106202667178636071969844175722331735542381638428147115391863344132169250177043096651319527327898357085609360544113102631400968000900498110370351723619126014536713546230585549518480934211147573343065504967847108579369658358360223654374284959491577520696326295866596930393116748094819806469054569621614501515306793863542971814289364399283592563947404647413107754685715448403964417360852040304908241200127808693807239140829792861384938612458239772728091310981905846125576338911917114372612621210538328467450839936797647693009899863221406373935186724466372792828067555512814192731100315509336191614665228082779600072455366278132017746697956392413050717019747305076544524155701644212903902157310428491055712804121726421042447181188859880200487935532651036081581989181280806305250599288859823979702929261308300660650799160972292585017127737280345146035092168111212868992769704910345407241480477566806804872176546239509884133933841300285711927596283910327651004280638573108045731082558409365504255881709535360939753057817361336096787055775684192514402459988564750357311039766783948871585888242313591148074180294839153274641657270798420056259050396492366360763547413794986269293170281588436289563521797689477258994902779674175687066221683716391023927024851036907416522822936482942224735592541039077466821669175814607961277888909948524198322899204612609655162546414279233398099398195127888583218331771813656683759340735579510370222488212810637699848674316253903996733149751753526631089754654401546203515655079449606005158090637320058968426150941380897341145570276140560251507184242945987968749563629733086837809020091055037444194919737420992702005623046964817286964710627280108126610756625696931902164839054341185855118549541535148497452814354348612808347402791545685371086877739176010728179734713234739078653669814039714158107789978482413270098638597103593909277115607198387039743691688475933322192989728614654397412801976828680235857748631584473868206843319911568138331626561067896738436866915260646720399550926000152390116231533337206252855237269164388135137841273909016703286284602509164843268938306066281886296092749202929295591132045391437074345608765907675432738430510483338657222878200498652173451425240661654703963312530202761786988603652803515078704852316996521948008436455537689290494832851210976545505895357937372342841559666617785521029907181322861651057226555473972290689895378456469991035899327075880406756662152180049103441433690929609735493507454175170425114272604238722324297604119859521272253868771530920562460513197364940451098897726627784370887459414064111604959177295414914547350768893869737955638520129980846271041878309033616881594035502853782325738054269970157468853109591194599946016945043710744618185094759080039402448958351191589348265010895642535328084241969618579613903727247317875861593866728666437049535487049189073560069117944891430757994571573503992014368612807636663153347870429511893231865625653959799088527118501753776594911425563599143566076593475512706488794763787088050284175192012261322678845989947499516137456074806372424423317366392134681616728175543942886336521799273189307465490512656627033462191112661525823639273111720632924897499402979099876877049948235159119765123288229642566537013080948219786012518068661777201610611967324353076206321414894109062830824019072731980495477630916458825210006482897987682331339870831330168599492999816057411628804417347667473198459346687326640118923239452403737414840566965238428875416717638802206007044768267266963477797185193432649487148920618601053011714842643861142285436268787932524196283425591458360899491925937510453032548232769387410682906590014936527801182242734683872050862758790927767587548932221239315372843347361391982047731877826133272486155646771505421089583685190654807407723110630233487414635029611765667351648938160362196690474427698816361325362613816927809794760504291382016482674941938087081198665044861632331009603311801439291304845749684209641512274384183716211220083859866449259708664124971896194024247667229379876916077253717383211463033741634450293340616486969154676685337421038995920601000589219644448581256383586268516431630634960117794651906715204119680956848087403367058445815558141761235641026379362183517243694255511035403861317363528112023238760712423278842825117057614001054478842352228749761840552316695729622291814234158462627724556117105444163356372630252757670472611826713910052111986348372212671592421407490842408745417596396945466159662328589978531888518540480966079426028085392545917202416590847298683816966134547087162139436159450085993466440752593906331107506899038472887923640965943952109428129025558818099563235425648859347218083558344353619993311034363396689692789747051669408682548136650591696962650255643811493101952364848259900911813541777199632430167739968369212256775362020547751756173843661366823478240235807838018335295339310902027536477363357384873842875350896043618031729813328491776273998744157527544921867781784760710778337503269842017716303009538051524514966723312088828931767201777676568403924592628673825112101628466536604997836295109461053517320405867855964334140153898084441583157056050448560516251908429849703711772397011796816561317616861506706391161484578583191303154241670869205201415763354245854493583594281680479594758118804122882226813898955485706921953211421231677362984728421421265802799893302234745471103081218610600066809650027320977564683495158302243369138292455095012642670079455907763478918085405573955931997923520361036586005208448765669442450171117764426926397574422741774984771733245654617295774157805682530983932608983988863994213326057361754773771011356522560279938495644738250371385427923793163156471856636629089258205647880120734387607665286565154716405196339487040904681030394262144948230306898422767680363598746758736712653071863634407373048024029640461198693076862044122887608566603912496819816797491697949514977251620393024737962268893133423088915427511345576970382807616707039181160199476290831466696149310346796415872003344879925944905159905532533372757163170588908573963621238401443905644120398909913689187019107116029446636619266972376510860851455759003854637179733008920247074662192741445833488365266493493011461941329391602953081668029560022723403946499651559274884064278620908798750450401022892068878152388275230282174510833581854490860993170480822224673544578817103900511655432641635617208083784005271519498833855037318952561107276607738138952488770690464424488255550873625658610440757374496631435771659878515797620148774866588818351252649002089018152533997770171020379534889025182558138339706063054437354410381597667403563011711618517558209878730684067797733716944286035216080871007392470856930712920901119139825740967441464511035461204493330508396371696484048396308533098919027873307584585768041556275690609176270966615197137319579833836409981170458000380893757427872409362527769099956725508634004824839908035556943126000546659441424313335029539043179764398638847142043804585014126366146524216366591211255336470434191896398820260817540902502659308247756422927024634523700080051836005790885606254709003623528532451235274581449969446446039935143238752478858189138402839850232837047451883159516343024195514357212527263036838148898546140500040613414034679072684946172609024951959614864355051641821327218746402823691809112387141127365269026636918296114981642358598226035671932804693179337065773656256988276922455860906828246562299678376611827787910882851409209708669951043147489011662767797216200588264478293966759568769801855941533926100495256419750949916768745005610232116856199315894469138433265327819132909871578149349579707910561064145595210026351235399729088680058297465952006287593342011141505140965162482009828926904401253951052056864534285142542523236014182485639997373071208048824725743605268899277986729607898429307749604611954142032693751458891593947420102828535417790977125030483513746495087102393530837366099836836269542700322551531353515558514680327880675432359396352199003680360686385400364646001011228103283956761288989564154306618143948779783056263680843816149991306500310870284947502196637380057870267616259361642258765768500906895886395893987248831814986609487037015588672878641466966978630030671726403294059545253826116273799736813317295009634372089418809314633213027135666391357337529098658127595892885483147346415086913301032740710779333400529181654624572352916320695312793861208551288004367851180191606476264117709187256446733990209368309915999132904050403043475098893762488624912262814703822520986791520298616264777603851010624558193447433977001076629719423546279504958907800077517943158679772310071118455470816941876318331795459369605426483261784413245136937461924108542304816737111991526012571923811661175868743573443285483708413566121331935200822198167786433977543871207854278715122521614997357008804514927343954094620523502917813374965212543922274340691159199734430397790212365162878009866138585417788840441757930696673784616216028657055194546478712875123207130732976113899157632312568617873253643835783025907100511833477755754432042774619500805608573994241230477874387126219241076447283528934439453451705281250488639662304773700717149092934921601215493783528548657564629205954078493709551290988996897568843244981325874436710920255819340105080675743081555383858499052219069588776917872838169330251248297325660386924982341476073726189336656975973435918470322359744902523761991421409698578533147550511561428682269117432397435764516630747139985321007840021858973983586740167937586828910209578177647522129503867252377074986371003686706434519671643284042171746775712514690018106562464730940878199248179742275461266213293306555134217694827164868432391911430077802269322334398294879695838166576819006182363225193722784305802172541019774073755211722125127102516609293006251549109032525855683155776908625822243005373961432610433356177115912580714442045285714356385197665646010596437475424926829906086044849237815776192291740151094089736036775702154441218576208309173913317393553406731963805032690389205148494312033799792136529406120244799637049346638740097350310203558845967855782875884276544009168738856946352200468400210942467517934895512440210410732485479751528170296942285524676638921046490320724419292659526313444001220756836606204434516363377452953452409900109199540788124652200085310344186973188061975411572582647034065162211435073099587808979409809559246420967704584476064039304095239324796746262044649082957407643099604265127100884039683057034541287109535308593959220176172196246219739294647509793689732827471725375015811277045681856312907647244762862468912224272051012480067826058999895963740097332637709962338793773617147428876810274551993342589734356831859484522734591173317993098704503957723098258703296099312922895275626324584789852715479282092745535189234113055345122188274852263215872616147052440677064016561227945923584141384681376657932463993168590664084687713591013943853591380680670991937105429892013412539116752307253596063690513809297930555326129635849675673402437708602894503207729785097673219123223329774076281479558008443431528440129052859501696838051092571528400392789769907231134247377698968430400137116340271916096571284282117850587956294378572683439316057432302597764703612635559452847896805518677539341605370696474877143319070055002882556691845403355571759662831182060475686436115049812811223225103944249472027235340856623386444848072245914005385506111958887639358858157734057336470320975605228341169204383324832710374093727808651284980121071907030918011949677014306235187820902104274285249185182242652226230745071968680071056613573079386417635565191667413722556739236106861866793647922133526270581028621487078840448735061910986809671299613106008261710648972392427408456771523910581517524395730043111868085653763125444057682638997394366924799612378979661105298744464468659045933484530081470762460881003755613467572253082649688828301384423977249216353689485556621512316660973626705458582282889846296636909451174837912351015087686430466956542401186478210528524415980633345479833538142261556330567344922386550851683838513764262417852112368856664993756295019789570370613841021853181471908110941841001475923200016033749833527128874229779518028921186180540073535378516061340441044502424717642807055491674770603370255151693591410727518066732023824896447054272577910973673597363889665627801815000801385237166280220820961919919116197060231487369708973462233191991175551072219827985101374959966724742251434003582056133616082391289899200499676146490519661491103712458028003760513535034016823111164187232219699532452012754597396071539592035829381377662131670270346345036370982834747823689025547010302085364445109457896141273631003041351554106284679777153105846165396313147933714357475419634071887196032137697350454334438181470329532220718604913315674270323636639389133604567688793660340158672707771449989060573120631356969058114902150482442708040516926627153938252087187003487215609270453330769746521442265141226185702193218236118911131170403245035479973262107496816349040762459574772693353776881551534766496005894348207797179010643863216155552422529409406778729211442991467301985264682988869348858362496639843800240804035651977355736637156401026704856221857704505987176068232055188659459034092310655761917440055140985777108660751397110741814765050172819692904133789513791477292851230081460927041723994127652452591953602868308540133536955652838645594857970262977086112749929252984160643655556446094887628550397967704980892139263176306548994512290645302019686784926885292524583954333231435134254032198649997092652864245891694531136205926736251847008309281786982893924181581709482197297183989781795214243843742367498414068295010775759780816784715232777007088126534318271802934750303524283525869411890487694652942883028364267559687270254716627343120153977118884811822491848132350411118391503716024459119575015754445998289599163468217391707019699677545251947754191633630106986954460542454248613893539171176326813385488449805189040364409083823596921114693394034090184190480053301573157895136861858733081608403542565507515417274934597514050124486200882440445859951990499469741543968344813087732494524013606273872561521354241848069474309731904125152603720135844641550629190614884560882487779825939278067511036545217074222064881491960794950858038461441253382141936544512729636696986013029859141973925239740131252939713868761007187112784785748090063449203596130119012168373268614382751444934028062181557857098501765006323011898890008480033911490779604463403719753747017288633307780084951598540853509804436869116053274066912949934972493611509352690305825993091706563392964332871227577389724422655241622365312295895924268727206252508260226672391847411411292383830551619189233283465061038601327863590648648248352517621096315180962473760859376047607526711982760690021686711002893913053373403938558762539669393912118602620116223323679510289492982268714689336320555009688645061046291744611587659319111951090791223925333960191086724243537627526120593196180581197368643989527096674386642762992195796410808958815169009544678103813839641974510548362299578058233908839598231051510824730873686723873934574759416765230399890800839586381251893774680464856199093718856006903807815846283596432182320528832369122656218340035073924311243555066277850201891713979823302152756462556967958495269959143588110072253244137370698343922968812733667584641829668531133890703711534422830657597806797339987328157005412260060299269598931088962898484203287655008528806147648208653884852054683510488970122822520572573211571451468007812949369800963425889935573614534690972546118851605805853765134167625538072189365046900976390617545820854517798173315526836425698481157636553988315899609666417167160352532796295009856873662249743967159279962856509672316485957412328807875716355048151981168956516312720290474883187617792932882963247491767488233283541776735867269228215956447754211803552779241659323796055410111639860731146087422728488763029845076396497812159575294918287571635613193149172381841615605585512073607406716103772842312943884474182670809298111050223890285382460183139762354085981645587581460938368049459427922999539433804344267969162049524734110396531499344639921196144143723622093236126244543395069120193549844569215816895198949951480476268142890539070479289882381938458872829415750628861748775600477881758168905520146852879047595861171864742586025862921431978843630423827057311677638052992290041578919251167534359470005533814454831633978470033407128180337971761954008828674551854972686811010973383091382089883770758227882200525647012635699554907061518790010760488288574628333188469381995004717678334481753044031556193201922057939918965692544881343453749671490807329367222741144231787100307693980432958176648984523978512489734452589836897064190386583216213056705317346972280550795789570566051699571717351600980658431682119584379060070684984930625469542114137155001392093582251656463319834524690992850488878395933738227067407644601101720698711150038423013394257807293558911405930096734397080811690059380950585605043280421702362381805243036199645377939757085211161660898284955298950865889692858964003792521805526961451378337054597226659137680141580677904342474684729198271126485046415310913579863681469294701575187525541059954706127489773456461447780808969769118734185158143965156667260632848790872420979091127007253738394860411841665257536084730019658353883894657309171931941968621284674157511195101121085685455581824845578445711583019988782265786259989823455724993473155938136174326065165858699076254069136357118043973748312662042545899506656714637189958951086341127144372423874276954972353625848518916967991721245799348537565410567778652355037421822320450823296663898900240124116339687025786107109438655276271950847471542478323306523522888772236900572719772595833952493890087492610375108337430548573081901906409545375158005841538243979896109026221802880726719990698258266241774818063009352801149750465324204429385151089590648843402703799782259914891296682424206367444170195851240882271756663752818755238456059973272070342692576491429914916740305375350006867266889285490565924335709937045563435862128098879850418362434992896016258510670517507034348830729680941205767731191497809850285730058582305492792194145685193196015511205614001955287712141050312993600077357874729298679437122575912378436512400340763385892987926066167664280621516283831654613358061789433348854722263400746133155719190653492019419882586839169399156627530707209417823745072665774003462582124589743321483050690029299730588322316059727358671040892774455989421257552977864164159827679790264667679651518941991357966234823848385846660612221069227601855224306315629529926396549964866336193843683217207696168923623253288907411576869178948741339718711363363654985664017191653139218196345581941090787332025553287999963573304674873394620633596263177192484035537063317511237731228802920115746653340205345711754546163878957421504228479065671863746754878452004574368956628026552399271977808961799693311294573307899044534959917094782272306250550059940209521290298944776609078263072251027946346691430192290902129215098527381214427833222651472657844697916978258979133996320162135713666070595699129507307488300718985075736177871167256451863870611883761722794777516171303278724779001440762583247358069227198808386146456689917540521746431702961670337292302023831095469457246928979558669766452425577202670624451547506396754087536976124569341596122520245170594412956744896898873908765470388629823238667452802192222081126889646764933503317597432759629731612239166445966812347502327905422393427320619842047120810441921227203727837984133195010307725292845316057478449626092418956614035959059730339852532980605378244695665900613095634961945103966044066745107391838760229582203057652466839994423252481375879308480180556712231507046520150717515223812311447726683878396875160491478590798215026483677480960336402053166317445553983416804163015592353957642238653974223310897418952925871824425201036586267887120724702632109518009571559592275349448285139950614388103480499948859366611985709108353670056044474723312576976833737320769218930283553329354025075181047669453022602632202601143972636372810785501446457206764276118070033723002032337296197603330393221332658344185966896403554265710465520866390714893999291659302972706939630328739228803817290840634876441598693174090059898958251137645308109408887226617931151285368854977976572645461877424118612150666262343318726783492213101024091560937418068477430195686589381329473855864670125181498929523468772810763698126037064332985200254766480334680001610221028540489269618153000568730115998205628594561317634946598528243313001086576712561251729605202059165157206732915068537238406783307872370072849860602294479652312298479964519109721473846936799103851714897507108181476197847449246167582129463588259676922546398227804342645965148592629019815650132907882483401287626290223591849412661570898164257576314863180716507051026204668511609256886866611392913969841465928333120966087612484562361197262089908697872921247168374598845052654626907788255144796991556087187347208305877008704711024844598424191470478158297379960830719570770444751902371834762868861927928461187202821167386610079227829690022484862504338035521843741588874436710540026885452029930861225909137013116602016086109176391484959440892546189284064618324728530911428483447671882309745598933712037993794214659260550840348926782346940220901895120706964514706707376562728955713264465262514334455826258946180111939875138149892142523595738535117845210680164094717958219640254599277467790078774492308327349642626378062843084564522629264154009593265489245865149714293981606076717988187948666591563011423316506371259911099035043147427402572490495855468545360246489332142080753881131703895238078146464412718926756075409783002342556247217921664362432978941338238916768564782414895230075197300254912084772265058906397510641191589157857550774484011485464668422665557247978809798066666852712888956739894851402142587342790285379931052118377677872436053618884875982861898781208246067265786219042175565613870070457281870682717429965128955382204743842309525930661045325578539031452334731534676981840276634260465253547943848664798361164366719325618311210455685353452720306964299820641395614038944637390379122595363395227889526900785457138199635211993688782147769621392235206456148586232738782108700762131169957638228612022304704358003245564883465256899533362356308315636239497557009907322428345721078998435368277759202325332572097016351938820308631758177214823218334632075648216768078273595834840594468025900855968929381986159832121116957928311707899196955336493735862894623780055740130185118557522183840227772921567462616751460377612679394134218075941592567222427157789256595716987652563245112653248712833694273403771971551267784775252872783359928004891397848383584579648594853329604302233639617412254413272044448772634030147637535778327683984943402077291109094781418634522299974536633658179368542860359973326642123822908083392859587480193322324950636473126953963667810794699405116233299209872838048929357317624760934865359938437126926831658682563918225313929898731215968378940087790416143378858795048359968842862779600212734784212448035974213849280918316554384336846418094015280898310868136003529967072865701916054405071239428864619313286774279644204542287413609133787585275616546257153294542427656858656200569094136518992682029753072139026943048805205893685468173670197277348842264307212604452071749751806167695220892155088523973190814631126736559636409040872884773422885915858165626258328524527641432073992276418245793802463433654210323569156696067377146571202269874827538976545451158492272835673257582504177015523894441687456413475439984396001052807062372869040937493443336093619941719015478899828260772352102020788532118738680036744971088527700708130165045225911863654269227378319312447419100743323996889559584366465256470224010298503712756592513385109897436456202582147350339331856558425715723489919355537423955368570004345629546280109966934056294149806326229866261561963696559881924012745840923400487027698888803775685380154827369423720875307519211303500662921839613135129837931501016556659520684302684950002187144362982109911793767375050137782345020382280067833062031756205256826117720203593308757571230784647335647527946547166852660334256434972978047431669576906781970169539640445982388920757011060190548437754116172416879297272374795633297762740510016996502084827054344025476719070778058391460906701214191107772990829116727481936903240240405531162566311975085648624350124071783215057063595433499964027292848211347796968433273042923890558247234683537479434185780052275339439458806627398413275743944538989985719829749799897704828949399477472221092507820048583166786681188333621085574349760574131571334109418375137416711595147139035735082120581789100552761399248564405858519692042116315706006122064816365952607509376161142664202625748897345001809258342840239975077407799861191581267456442010507871643843676706861924530023532779920275300924921544290643051418384692833359735861326460476793504295025746728857608439114935469765080774509512324886845607628617206089269666205651941596658533479213044646567680066248521729925226196563884357295620497070231856465276944821522494292154468466570946531429181365759001666731474296620284043708273083446887231265496750981602721749150804670716253670065910194183229411278304357387161043159319881677665265482789479217522484882641645750308234852721536556765868076107347756455061923468795466321282911258426462813494923838149680734326125263876594373342277410294494290903108026404820908695128322424072344693487156662107977131999077496456517858557787728345961880976519524704951538074208270890328692426600911113843814435611541250383475229513999579006655798031573277611207793547040408154527742863526202228324754401603803104829157866305988480361063927741848073507054908460456827536308334548561837570273569158743916766394286083507455795111317064508039537608569081043205910738632188070345282609308463210903728648128422581197247482574546588751615321394235484619911612628659321309935471654090605924073960657354117523226818255357533287846025355543660308501740897427773704350557286085206830177124218329589515154130658173041807901265056124823518953010889726606667433540862730041258332579700628775136086244267322386086155109968495460420508178881658964506343973292973312220934514637132691920292422986518542428168335118080128244573510411574406916804230914346628312450386255419518848675667181875940495243239126618923583945314421698030971414484506981739858532682361772607973721171392857279153772540708828075609513406161470690775699412571228626027988958377116626254370324371216421448854259992040390515790824899453129286488565879676021249887029106966181466178993155551333610544934423823379453916108301951836864318232563920791317790741330118700388390546687759030000070822731514815886692664751924799613290901188508035661975285904583402492428371709470218783380582871292769568526784770533182042601718753666517801572134994060698380577759236367594456561643131372922987096858273562397292721627396421781208865393957078373458828882724420578551656095040635446144856138017122657761403430964721072395535982114524524105422601358629465728762685587328255423029453735684161560418623374486868414736637651404846742989661355668554113023565871885295563369799943640615650616200343261713559122524650245390410199708411994993636940186153622259667729235465776206134055046954332129182910987763912313538969628045712154529188925391622234444075912813207137137889304545783564383404784882023768059403967251076673433723811277992538656033812190957819396978095249371194552027803346268697236485602568224995160204713241855123125315441836964106684011150921505062009897620731381452878774515449695520742455752670974006552259953645150261701858105550490245354904507230887207244635108917167661519375077261875308312616790997940837589697984729221439758122389590944833589168981090027181547159395499437368115068497535860525169661316888053980690708933140697123691482957494736978253426841453714252758466730971447373316677130551985016699521038209860604230999464401292646779712458481386564759145218237991916113383159823033462131339538142017060772297734096838763546583837202238224284561633002186884658021445533986900161457831305325899547364721345898492698334635240828588968280116934972358642111002370661920643875799598860743975474308987964279981400474577573414780461620326435830977277854443199533681574040398797885511973177450736729731624920666136475440183173168253427273691229973298469240252095174569901063532589352184879634746117054631492600704000369121886091178584728065550571470414397299264329475260403307022322290676681697255769698523771371199373440681719164299918945708179206707783594918619333555637111848673302049241557453388297988514296979566211646458260764875532366081297249052636488093339905682310115318395541090000435085707282859452983211349737326516821353159061196303753665118375028830449835234065093671833869856695475497035562828668238712943365811726473433528201455734560088868247857179722619478957146384586866275719451509702538476233723783052752725722951991884941527513593765843868600942835432654114412230480151456001888193129562210479982893643969443327848853213628051666802351471850030714836764194287040274042441151329223908751686399536396683877236199815876682126892566974171709179069099100433522463749772169670524099520584879208689700809575622810275164662077830248861974623472976595662208320236223053155800793236339431108677054593079170317531990327555137972285022095652495983109490161217529468571907382702875001027430286979307427226406496193690135046715245155413418700941356511879410011565658518610867451880683265945607677375720154704060177813459833400297815637497726698234386362113004428132886036046363194164744844538643499359601249979749388159307573858435660671222581905532149693038981688431289130472912780319245720224281444358244151479539370093109708255488426429076499002748493347306444512902275153647216656738632503493271538553060958752252177332672610525816747294817568849187386816453292533244811503756157071201543940841798083415166480958193155698227475043115508897470238870436790732813720621241035965941135859046444352854382183243148532094187758890400910550781649036267576033351781921232047600326219454225050882012178654211697214723656839758018100731922408067339230606422151491289029746061651245980855779033011678571529123405319489333677143058016885829840625628328437517975474897416786437764845257464427054893267650306906205637222007085158533684683208812100261063403114838756685023344501535977654601873379867674782707748612916383947891667708099282303835818370828587862035132909811802358684660779316192799251994192099733573596297985591994217749011533836855298964095007907354740125398070971481567112703696660948206799355454053568469872692122531176929408072165846659837127791673393916477043533575347958839034765612951930832842544174214609862518558516381891442074735004916868951628331242801829096568768732244812270306799802403571699904251475858192824285951504668406232552565523993053759478313945861991030852435668349414959185240581069839952747580686417585023115841278838921201608041008393902666054964196199977747080317179484524431435738351555818779523652869760740510983910393025396022862937704712263317823854433328802854947215711429932435447957572752348688742482891981884277456238884651604007243463370015288826235609220013279453115123114998951879499363237336961914682827712665949972865280600846775075917933416322485719114793555209757382622817651834697916163118518887538970593181414947593957999372566008436164424482956995466262292451155783476943321247839886284321387658134498981221139712445025536477598577664221834756005752012755964292038083834681102934969492525320174494570589550632013363949772102514392758503166037294059248629870056579863739502666316229571848947642377480550730114058745303391736898599234239321805741834044574205249070041844887451752015869221504915146058124331795506144530946554371974538325960773665310884020347204621089410328991877815920886390399556354068617296112263127464850554511018844767233037180263262411927533522199599023129692945511901127350888069672420264443402778784741407070185630161075377010352568748639550620041548014425717609052005709723482686934522276557375778863048682263177630996020820381087073627749062629745252642396791745345533333282699768436723484455216588821908139105815162335339761211135545253990365416900219566588671900692721613528215338614668160854519138088443200717544270232704620288129431222054133320632196184660883067050312421093367733096964795324561743450667412538033305177524459554308052249709907716332124162519542391669885796070027733950697617575733857990394152383032900135957688776565848086064757261031400929227422195611372325579441475574671592028515430706521862844798858449108910997474438580864428620416238986233200352016204057949927440846202346784825516413119486213641512285705354455269149864201538423835024196261322659601210313997348901356229764276628622223054040216778563415143778239352284493939957802512915173409898230896785710417560942854853237187897417061003411564879092582995308171013818002386228562487774626954300007883545917073961701666991980712841233746706385884360825342958802823105219824759458619986115188064598210556975334545572633665409178687676887580773587392149088777021319556902996216927360480733552608665753786065577548730559709555812925771334642815809217551710905851838698050997350952274186843876388267808710138950912772653716623770157071578719151950027029054060539875445910220094788136993134098398435568635892757152677064626147930404545548434062572512365202402234022331673237564517371174021281354267905652911422622225408921578693429540636632522389811015831234682973192922567040637404097843420124675330804442669602806984645270939542017851548669923983345207063971314942834673429140313167712016055373980853558894579274023286526914036280068566536020398341682983302373734169885816949790308876079543692825817309963272631936696794118757556247347362440803732292810129605576449895062331927449287367453429520301159287787297119845364751958902275617846475396988272708051752145303229718052218961184441371259508697100988669084987581199232152978341452021518000046175138137899613390182524802748004095136274282468242003177259935444970113419022579911021905054930922565569904156216318538853711399890123225450135434917843642423570868458916838996129577577177150357999858135584675711514579622415808118315795528385810193878952283111003951516383391897299347057910937101090531099001586364061601738544375070418552856180282205923318625507560729631112016379963234822373867655299455235598311322585249366109183490950924486239499619892977072360282155515551569291155507609306865166862485324289609128386215794782248413251500527786079483632635631109680076172216021833692744663061920225086132691129680063134301996932442153512724483434747287316935337246423662963470982521201244273574842320829650505088136389817897603872478298048779641757947415085340055329408023478809810988211046480923195159375864443416579910777148281890236351942237255737710534000638518672180169344933746652022587458971434140890541057420345780960619616938134037639764059345592283842754209882086901206795567786752447111252130569197944815055666990796016665481117402045395037468543020266156410716552566806174726726662657662604345907939385526705000973019789650470883432433431432263042082767304745985882192296291415278301895696991915253866700341407616692726623081877177482911986633519894397861994859221719388974388092171171523699129727785373628531449454035907048671730665842895235122845531258401998745724421585151226650113739219103170800306197479798254411049004603468520631484777832202860733939375228412215390703712326649090165803525827472383695328746986684371749556791799073092092150763398024044000393965419588408520417285599577574132708544049299469707340302997090941521582436579991136798501134874085223642029842140351901236049708162485738623140717956663353468870049177136127446065846484593958741035461789347447228400566291462226548984021995232766033081058703489416137091106293287653248580822871415985387546690753366230580357308314196574940958669156442781019304209309916500499478707020382067673186202193875995974375471008705817196590571374838311212210400022143471766598916345579243923044920211927028148702428616121005101069407790439355027636792250439166571051448130697208148499570182242779813205523942491546015333401651646121740464761157692925773177946101278406391030209043532247520971735587802621557789857863798469193213943905483245651462814787946214398546688249159540707132139384106401794403298914172863833823913038064128401797373959632924736504901526000449990897677072545382614936469115683670299873276392695844691911566540354389879188616528117116850429660535988702338517425283579277812752234473992356984006268081041147201528104307982766881331952572356752301148944580121481663820915491547703069466563503033411452798314678425993889005708967416897960677187730722779956807686636446346664467391900393067620884497216402947078938302215489121482957153339138067226547024366669447686135141708860879888308868945696676169890435683097328895364399423819209917997465113306804526975521371156028366927058712331397581372227467106591523334995313787891746252447914543806216484508206769401387693594529372548924837597793303475234156977477584224784132005489543286110586249044505720721795513240587107929681701489442363970968882742598040270976161382974465727113537711570157349840142199497680520685297878654772486455934806312535732745390602653005133153793248142246490259058617710530733554086878889850718639495430017864294045003858525942690934577080925098542556995933290394588093963620711998003967465685685926859512705330472052750176631495732390068426956806349717149493025253716168378760596955223001123695456300018927305219973933934469451822478649028679561267771505988876424853732906418019756173500186515560809186731465885690859021375065003048314375508674502217107298044117426456685197239792679233721372864787787929692100935258494761800243869095359035480638371686886785972813745809182742902876024016583557252162969390983471821458844168220509528686689713091043439373904350243716186473085052369372892392723033447427305499195083053621050048102245509409608173491947064670772374525061080884983309709781196141959924638882447922851278679606382232895484996021908575440341633217889668114198676156623017755242804651353603873165421280892020509915909556617640680902069928700068721718477958463409806139668783022287797118532657993599045889059797214533632669936822012707402604542371840946301546566882265310247203105904439438110687761251882507770751540572297606236433771040173524375213020214738007157811823625522557721890303694277905824666750590049010695851943301053359142525386575027354351352182458830944927988870539659339103591772503817271880826924393866934155879741621326465527116174453545882270800465907109296962785451840795907909980530317859421724728002590685932093421523681228754002515520301306383520554999092676268095189714118747519344956831788106899008895054456668167623257477372540327095613264400735306153804237328703923838517935814380585186495849675318454925813768364709317176149595348293972573156548561631572408014915328365535724913366040761212082105680989806015493096808717617509835614620611289384074941969625657043061951601899434092181903805790721750221671920602861398981915615971149519146737498529001820161674890723869052496262487726086448754628131120361636570297306050096859957509587830363149564657558596653193770530412326815776158430598987581779383912609142129723345593149279229482553061506384090270249861187497578587209667203729332122346880198485800001227180127838566477523378146372574123808061016839007591634614021623164751352603948977291500826571382034802104019705683500629002799094460034060368634609018727740024586839901244262304471798174870287115834468324222150808544115771949091825124177914963216663584559663730205738137624434803840787988052808164027186502233824590674777345162226647778426344679301352650788268161087113326788236466824493299744321967134480524092737742203225071539838442124023768921688213877984960176394487745948305200368276016107278542053597599058075814380094190845288718271983258970718674437360055191574584220688705647588254047974979448568721000417592984950798473480310947520366843070758180672521996136460588665479838485850289158600525054009392125161298080423989643038147931547207704051217110116992375252731540797790309903038760487935859955409807529717103273251760912761721211469015178703771275892755810189334607370567287799782575271550734864183439963124781557899586405079522234915442748933370617668797811937488567141489196702418746826677848722619760292192373631923486663667477957766770032822892984164964458018730284645538272069050210037764502937127336279128708306671786774120257861211334237624348110569491550493020741634537824440963887404891042224303729055551833455210639343566353642962499375198114481642919450717023144867641620942103725132112953913058470965954980252723008707836167715573389528869329922948931693884404810057091714909456038022765748789680359479384710139764252579801707492799211618199610011707554774102001437457059857608677271874630483566776535706171946619142340250885315015137192093692654914412977684147343435675555759105548210469432124573077593921097324073384192543215032958206859978134418267268182460517821495036665423668861682698425958151497251580737236884175562527910938055684738940483533600948480381760563340379794169904900769471905245748549392960082766813278639419246583415576725829987147632518007523510111637865900829593007260581553571160689764761833499044154425583009826038099358967363224153353596631139839801040866503337798629704444492361709400054649974007308525766801499794286742855764682866611911117312776659458769633159175524918990604676621623034841962133955691290731884670628035805908521984795978556130855258122574214090251059152447484026929481621721645628062863163125885388776139593370792257598685263615197769498901828010109771381853479934206141508025357857960218075443168315963911354071796130889642232960196106488431191138819360223594614508010474459612670021621534359612210190023035167843579419302832745025545155656027460790724948042891383251836753847707277766323537778978536259645582255355033592913169515515009692102439238732525159038128238508752153209606101217068372467400521536693559602224301340866679820548351143240445205487979411138072414028683775291249082544161495156390161059350611272652887281445057362219204418178423439148953431061850301888009396810629153279198192497185208164044745890469079188592443703841769943503144570719756659916360006241885962687925666617377463702662993500002368233755233581299540212524999301507102195015351117563522439471178553725993352459330025748635595346729290274754812279588900586915267868190785106495984528410386189373411681518681352892899498927578668852022773217426779889928712064101368619096493426747891758297375183933146789140034953734489074515550320432067460668811608825176127220637048868570960234973266756899963277172219894145397690282664110458357497300904320146645935739963667981824104346724682274266717916884386156910260734164968261980280144461841978365297837561872882729771006815601696910849264111909684910838250454385302372964721441111637036940401557250134636862940307888806987251032888634238013423225671470284595143443333669850219600573444629954420850948445736436244984933516926978856490927386215176243725342952810991763866368758342090252826444122579193584033552588456676316766816489996879315493893363432298396342546867793753232944849454479284816141327813294767705377238771266270920421554784374112351940554275069781247632728533761957947976802400073062332055162493610589926755194325469937809173164115012450778684470984353346745644428332092305353432206346434048447167422471408485671042980120652219453233324189150444705393220543556929992090550897044946535336024831733056240645783177110012534058804707113500487323999547557526054437042281715760310639146411857599996455756502675096544281437138582568746099053143521568366326274785455906152727753647090659095129994656915496100353545777511629963888981856378958562250053968584521746106765753916157691869583503516424347348841293327705134681385291463286638534391858479151553033220130277904420500324092587722989060150691988188380969586941169635516134280265494404371941574090867387210953375584526161981738253365915704575039306566796023841050131196417934173900798326275588930341460607545494548030775677697812850400444231904091919372807801339300857675032782706148288065550275445539035184234367788164038091091394613662895943142363548694015684999137471757683126932929941478881619579150462072823122123057817771889490557339550293794742679506440999921281198877006313446670185494372320800262581941983332482319011806013341950611951966783855891519024630996220468825829965315513834557309956117630524882583417234366269139392300688937114141069929209215575203914993713609641021429299542404266019614737113489663847757006779850056378762359829744828014689550642266610487663274138372261135223116423669849142714337644637361586394807589204539638489854540881307017374971325894115733514596320635639417901065571317025705721756553181035992064243653941038268683790345847505278392306236368269266542192360393308462264598806995526830979139066292773702168556113107236873771863181312275630498519336121919142655436974842794941293416615287347647141332793215950221021884616441540758422556234644557896551778538936216888009296874904032779322502109800691944127443468626708820784682654567193098782609853589444043327687761871543656280490958496915613644636956878142070843874033605257619989468547461575999090537089859891263794994662809914906128338180887866314881166800757735370460439083213557655481409412634896708162052407602266105037471256979248369288191751492930131381507781909193187056342707394992600262726040979930650748417823511141180744072354702545885239475365506126315203090242377280386246200153343483249255144403031673648063756718965560161090067486460297980842707087801758444589673736786171484214574704451455930853383955001197806493637906211329673854419114736859331383195108874626142963687233608963901002120012123874758713484111201914779541324281367327503262663098036477136029984643690980793431069025513886392263890470314261515895639693771853595834200726306403052187561942204123784518078406833431134147819612631917524655843754962958670720029189436826108958431760382209092506371331860686780935619309143886885962563133812202450888887710709354937851320760871682574734274921509237057405733586497466639469112538972326642667356419583326484474570354607455292156326260196773476521968209556710968589793020761092962205543241338856736778617611151352107636366219220505657444344179242024102124272188768913079331812570161027178276502831676064043518804965222701307479243234495055707629807146701764190025787476286566765552052231098795746751469756485119636928210753751887564856506635284771163881012920941979440219155433818077831758545231785986761722438979788525958163013480346465456031809530775358222169117961489090342564601560636277088080375074957333097659718333979405335338671176817596407771051295433185504413950987624613828683431570207855321553603482359536937862588699757789262425624545536276682020277465712426588458889720192833254291095960335881664918425439021484237309260983682652426347129472583581692136271483745135161511488798909313067937041781917539788722203487748607361026461712221021506012198075548454847490882783334815653760246500266408349941972016620108671932133723400398847099377621143035808800721612534319841447908110701966139860143190851244291584182162505394371717499642730214344005389686951000188652592984836351949856417941875447470376470181680978728757474762617087032025546067687756892397574879661036435593086533301075834399718600713715027912743309447775530223674860054711482380256446175485934933580987018609245091497137259959666430148036393013732139850251910761668074857348386140813517568640330885068342826469389229068729749512434321478647230280467975899114090209113987915597837638882584276444203643588173825334547895297643840159307181469202940019580447856241080432960133698107555766171852321485835299001439101183051321934606840214768428565272015336108778737836945892529736357734845350373714843632975430036881619697823735213224302034277257563347809984712944672121046124544517936844844259277653815458187729651781653911092840193023389673280733145410413643696248797474690800944908530423740414160098521492706197565477183267316287014216126637083533402613035823674813521723174111207387883694277275645937379402809046231522419897964391170445717706052441125705702399763369819843664607558256842530571768020318057509792729969514316785732666799046452269341247654646844837800134074232868149921754887501987598649842728585803795465919657361721001971647298598107240228254588785405386989251467041233401613868765994142636788747665396855452884717587977362419511143920335177301696663955523450765187600746833041131017316677468961285736304351103850606826911132894744591386639325312946419801278855971829887582516778904424628443876198776670335866181149832218258991163847960641279366296221777764777244754908015451975970871882878679161024575217537464961512488948425193767033416999026876589289251153749820416383661992589568535144162508245705733886426247855002660231051728793486734452241546277678656701659918992249363293953391760765023726524348586693294442522671561586930155557632947903325916044253425485421049886266538698343325312825239869898827635784234962095788302373975168231912600161273783287044525658751431685341686236008714729487694459587803094438712505262990991870167752807143130094194882822764691203234021986816429418962771891328102577633222764288835540113887001897470246205336855075159759771360625087551810152620026666024723422604089561176291799676757361377002153495912807231218931502625436613900265688908477359830280609096716903662219179379794764842472131738544040638026307267870998226593326183666692937663100355328283656734813991699096568454398940259483032858273163508512862306423683551096904373928440794036674439808426662752287150463178423291318000946317370216607437024591976516586154915264845083997440691939680159942110518544429985577703657263860384599284439134305278907579092668143022233664246257433005048166026153389702063133317132499158493043545681881818019913390838442536437426788658778179495134160374843665970541279706948161692834766967603370194289310591114143419710784642159350359995712345858982591846664369964702252676099555896223930173232813186689074905841625798834470147028953210296497553556950746712651758224393941549862989612906460148364988521131043836286317243395581009040936203596597841761280254949998250874522553626219274765637382128832536252480204471865936396310083044758904017983768968202631218603999831379261450423276258172056457008117725035274362561771360845717944159072272057896390497118410281773284258069550791899323682770896869879437726617376566394835794725860606223859853558762333747898220659634881976681843293350387495192949902222236902253389988593397228803474068207661340668505038266820742576224020457056138225230437537474419234008630858434791722443966676099199715935112660214963618564886597601505766303734164284314283598423532541644605562298755055035618979352287913263072222951299458363668873456132488921216389698487845833858820408382408577076725142402637481240579759702340074075928040161520490106410250928837811975428675895118259304551731758411535555009112577011239411484689758489399363466449802623063887922196694434391863625658513729556917077451957049543998517852814930881741739320862755181792545401951807347569289696829798869304058365345880464419215143594094047894307400164562576466992941266207532736383347393332536181353217911887912384598405899468795421469798737139691759801766400015258635300807407507979599332569518184944220678235301202113700313760909479395721471386074499157960120522297918951531421360485206902408443756603141565164039055905941869246327835695376665455395608560096179759841587972493181006545402041885723039235992042981159321294235124111578443373586218005460112585008989359690002357924677139751129390549989155533562760849437769421668033883121115229137308617282986082717545943544551662042103154695806020160552462766601254383505307961234053017767514519975519420984819124600433770401189589580638772286237615318681910103391987046430046450074467376262818211989650719191046608725283043773117470906967911951733701294023619386573381916858636531520896298534378035342023340318321792214513850939342065341789863778257710774450518471237163198544236926358189508380386223113695830055062470079715892214931958375376121355655236378499056503845807927047654543386316422092284148475675857681721227511029938893388271537668184466517338791609285464843802448135811943175072825852423613533235823892548069536104066196167892794503586384372911421932680009781943966792171033936062804622775630308569998513593276869518197151975200361270148657688392268901987258912483646898573755083990823568724199740932003241984049271981674731503390350802326075548369566336082080313521483614203272021916153281164267836114616197165812042911727230469183160784626135962085417423764147658882332481310696592956045212553085470357289133935847417098357168854328770468494590598721634754347727129639960004073301247554524428896093262164560506151797786402997831796244937633818426505196845342095710479146526528190801661818181484671045720259315542120516604495937016167791071791448274931229390328946577001022037479903716950141285399433896306564778414324538383092565524609903631182881248287651115643357749982156015319648380176081509717122895631094983197616805231580325117107414412205806115055285220487275900640454500628735781435809057311634385395647058516888715821402164678098161342555241721869118143611160236657327163454428998117517649558061843722079144090543635159505929888024603095593825452726452556966372839351369688296634565568337746546944753624561686636832505254264171975029331249407726209642046673494667786725540095940341918834752089072524367268356733134498183045430773237927110982304399024535804426191524434191004517531907537790422967329327610989561951822112884948152855206416419585370086586371163778187691559436156650643006017124017352377841783091566451865517048814529856574192459079794932515934605936257773117043739444163053839342619272085769464121211101390511653731156880481327867065156401062486873011042665125850341044276200411182535949164954222633805451447462109170215906739217178429908251865833537430658283472766076319895598325904497096477319560389704920939146606284156571137073666990688199717078640024162355873029593774885842837421895025358772584994703725138404623353385186343193581486384282664236414731112015000991128594154720883516770251040613012571436915462983536838582745600198205799487781676614338481326378814259612703563444113065119977809702842176358994919825305875521848172680232528070290760593998147631484383217200771608358250275814488398130306606032113114791946425936760811430019304101556193518909704514617192275354775269151615176673685468839180946735074017632197898581021455946372914478862115746063855129675487398063604488026032524509961278163592365560610892614440402995198030931284778142879092107878804404019139630326974103422514984348548360844858484269380349879562166484473288396021780621956329024882513199269393076893851546059284735169152486553422164326912917357527213381444053136031387923696291874005678787307929221339068360762626893559602114351523871107601949464256186821389032852374199367379002828705443140645157243813351827012260406828714001956820101250927215317163066950258466105557321640497934989818415253289608778176894590208332990208994915699322955948758181733573289797093473795404952844682552952888653119832007187819679226609867530868239875196845715042813013714048969377367635076365540671350128520388917837303145718557383570846682321435248603840268799766085739312059234604689744040254875440987494661848489668808913731321214537565513887277587785919472630019566031469359343737425646087495937115869876927371516934918598392524770908055946778803764580161488834358017504991902431134210078057106378568008377244377883649192523252910888312878238818209334952832580880015745278812804000999461197656157418036451745262256956637337908407069824606531084529217360724948441980706471631415030872871231735038167976592893053515612532143906729103011136882408152568433739363139249532909724266136511704895365645412696057811422907472453468200257099801022498999329173429131751201800845536508090923535012750337773355625377146269436973278729680543111296309076908334668064666440329195650591759713564761365155950670658223931933139640225011708712677198877148360314561795363418278628943215377881232598513443358908041537758699498240132493205830617171702430696265968547933559933643926523120905500989661537559987417854530539414596533677822491003552612246278435044634756023518162695150370056930282551029889804490909042542834473932358071728168090456940962227547141620084254018202498461043039349610931079095912691844235348761909453720865962122860204165177931625386202769165526918712827004983988498849437196703530604178001391468248833288081723577921732100829114124085998448097585928122634200855937957412063094417939838186243359869127384991162920564596538235649313762378324045474107002004986166653605719379265580583168628064982851347326844083731511028805197035529791078514275506734493112460836590307805183774138764573838664532261730318001871201827980611263861264642347663911667475549794601522899599582953714737606280579369578741626723274235771167807077402630417317586425380814354643023373887133750243287831358304886841566609661431240447306507141839867371062031411900381097093235326776175220504545638275322968730465754556706653854780949198263076495953885812064642640666260377545590217402068304002512268228438007884627759868100331395964734966039948038329446079047464160976546618608410158622578625093247622705952948389777275002155109073537480839225179685342996503540940913368061674835003555388012374951704010755951670088103775113406108859580982154857178682994941373802994461484597713517970565174641426912792115282327103689372343484175618797691272866120287230519403002570172168808294989962373709503963036813712384300919763296604616809101213244880212184064845423727711651996805729568565878828451231587061978674760602363933843753075769005695775345618430361886768111449479372560003154440529314577452125351908375923278457476665788290776168980073516024254005517503968102689983500226607519668046776032935220643309170962416150036546271423045810277899784243289237465049414405568705419780775620785400804536658584110908023181844433476426049104366739253604185980029028307400384937050836174337561762056859039684536562933011873747456421207173354921390991798268493010627359622742019179471631583617644832546555566854332508389206431002943815656185662148853350459173986665184716138371750627782871990509868012618872483455619844402097923075757025110486041487050586037399261095524218301272027367846329334627333966476461809067537506005046402767144994078782932584922975251081638439161754018078699518533397525634495852989152003530755206724816348300025010034895922203571721093459813433014577728905292696312860450159031952055888152402358770753813985121331285618936448460836033705926940831225216086436714063128225056133656416975778321985849843984347390149886797792502063216739696190889960479551990089740270797050958304757165799920885814317157950251492090794754732925549382553606173947605814851381079534646036201246687647736972780724865402888806744550376283331336528544885947489456161165815744557126512364649272133253377990610263118531760840746896489921851439247635561042669525539906952216253712227132046523319243398873026775946492266400408500647648563882022731562563545947035152502183585443629978671317423559145083731810202535663883977245837815084948665468807750522949690265249022851512999244952287845857711179064606368010757519590515513002395515903161527625815460157380344769124791180867780879026332534308127221457107196984535193300819099987022781101029312799383228807957297410198023472352739316244476499980790538752605836244100628030383077094040888120786379024809640284561198632549476319770811557644945647241864626173117839679281013195512672571866419663756405419525337891484279851419760040691288340804947529146246248118450865716081316563008381967235327079842531143947709617392055380313536762362199063233076952992656415956882765805951783285949938257470364456036670885200486638923210993854612822024198005920597801037432658222849660625920375356670692754128654409125165505185921861321728938847329470959612811107699350764953409360754878450462097658733192692022435612848634393608920064572480167294544363226751247446296770711311718981573468131644713295685919849413095803115851699120793082329825285139289040231602194894958841376830814781257607348247077312860355495260253351457127321229944970779126324596833484238624856447413093625963538300274545891044449116725314457349795642125140381508011847281239241115945653439183874897246322943125638006158587654545418946648133581669415053366850193732182839814007729489134122776851831904980102381788360572962097939965762065817413185029988286506417540152488130711638725750965180491892078918545465278397469837699118105633973402774680006055739818452533041511346084219193728839464445381273447430651555099500766455142293102318254197326841223986865254149256058285206198663223784113695812376006546156353854419581804817001535858649096698866402265445890065069028405862527799601258833210250355962807985846987686826366617830583796601287051384706279666765463600859924599655687499820429277729536736961315702875683505715402313035589337987657600475891268368965919314414890439223097621575734486504823746293967316306776130833749376571550880274903781749034811251639478028166266705415819029229888370245570623171634648675891844285786440942728797546640891384873857376139113617336057415861922294100784921330837129412862320011626327748707344298203287611182344625879545078662295383952979808191212507293841112285511243082089988888694013734769730993621593921704372146604697370772623258924795010272740536609377080133570955295971086268900485050618591610516100886026795102348912644976491494117721994024363271332252623550606902794559511779366711377240487815760471211097902164419345887352957952267519647267906556997968237900265011832582148206081112375436756696837198684489007069283186466656653297233219938972520780416382339179384801108116223808396309354291279376658119911185263335042187204825246481621401625310804531602020066359351519607637121552904570881225038485869329483994819399615691913377161224481977765754777273130429870842199847645907610756916177197832320231955822690925603659677717822703171960406463932806503579119727406624403684020154846292216172671300405015637559107525347952043810099599532433817779817336560777789336694553323764280807341112442543987990947623688724863861711405939769213598025431609724643195804339995678698239651238086070143523541710294216706615730617712702724727810646058572486116706796995896049415796259036725531974474389829536891595413503171725010568470954770500475178991929669591690715868580780872945782553731619861564010296221013065504296494141598676926579704004016716165224765652822530988196623723909342020010517347574195792549074442372886671948789889192768198257322355224611934461978420727902178841084412302224319264207002983799542134442983958765388209677609499465447227816161200305534491378348976427347579493050880053845115631208879151770307744734016555395386670725482015463022158855549294931921497478950684204161966614244833379615833293831866497173162196212730990231039477169448185482971550961719791675700216980967728352232326699306314649915944985092898372067183985411719598824916409685563585023095433207224297495630510073224859315398395169141245092613435153490442701137227262242460296834017337364566794782059410759813349663014830865327693207019696158095142216730607424845274555952275784069500120736168321249032511707873645207004293122713870847160440856977744989044146751252454370801849584425924351550965874497840694813364212252273220636004320995244487086221089263716671475943879871559521502457780149417313746843144061778378274969195108115383715829003368578759593962478757806672372348728846196993145090169248068606785433441072415557856918976477051325427426925923684130970209619540283827397110353679380638565865149152909529402059888780181287532560695339246759959798036305102874427260834373646827033257221590784140422581810018516039086931525953094823641872561075526413470899403342552193108049249165313159752877106263305805833854201680960516192609730479980351377243487986713962202121802595621676627226501563921309908769453939944223413455861755198409698819816169095832794624482816640377821883289734920846286030531957057223529712918966548377317420236653357835315702803904010489059817732927321227020817318272345068509485889927189324588433866117669878009708452534545350644434566710714365482357649119097736300043040157831790630175814723019597764151081907978960075003701235592013764612905797358778785851015129595150051635793495776217895399720447936557831619972002636336362798493340587931406248334739932622691853949943957263974841625154833810557828672540422176430607798935750641768916993217794617252632796151670316195490842263231234797231124687207102400322635632964270791546112071864719591906765790042845390618683976385358506114988227075591646334209689052944954618493231729700965415561858485779385503178873143757668915334685512188792400325209092408603984104896990655136548558898179920237369478691058075478760226576545684760725914621831014627594577040506424977043016695513440699407349530637851381566759198699912828529019589752809125306417209403003185793047800894834735026488928064156325088856923639028600528619929430152029417228810888802096968702250085675529170197782664547038646815805143002928756195911316315788367037170846538776399498072151181605477306026312036093150611516201657373452041581162222555914833726021711737116701492378224660932348676012262994510761079301154000345750847251778158795707962112694870432118036774815050039362364948756660822885958127695113364228780311471963918095407669503792016693667386643977798829388771958219096332281740858391306348543412224830605940654740280970175525537720249401867996628136257641685886166303049358963564327473071028062849698870027323642670772896087021825833021613075795738755440498794759869294570487101444394745438282683393361420786086350094971242868371080820013604671899532837187701435979016099107599252098705190989753892696542418227517495010793805312464058982082878388596287139144157045282058990970920528114959463783018410558682985347349730615688650858614382763310834747311462995296068993863428869851903080095906527075925341999713119874051083580183306266907592734192243791462950245124134702384216797672855624232399247328171420837179510144865423857681408137566176032691876608367401581188503429367088393848996469053365778418451588313072948607612614521255782373768498592323117721869724323807409951817460293748058765143316432349723958473901341086540948084288620928429390633449444378476033108987709022249238646851823229679891885290847490637674319008097277153381031170533206960006432027745773523069845385630523229178265417467840029539486167271303318827806926881297636494019591971898984508472422721263169337690252863692984022509657430482322878494900745590282509977977665252461716712122261187290580095830923129043840255157735087758509439069136269150412464868003167246035401037193629092840362315066325101513787634686431632579706896771569387252178056303955923582865590746518356652208083937952165744929850031430711374435072380439115307100338281755655768153648956624681353062327305632139538630117239468472555517500924201915826022579755962650410393891425760385076809877802881844027664980427908711274386539080692381353861955082990560027922745981294928319475148194967697583584134570677519650155099000367116513042164126244332650109164965728998602934773353511950909923169207920812515738414123312726113148456127706885527802191137731755532954178218303918324028394864834646177765952531021419934526374605208204086597007307434071154616974905099362051776456477732279131349887913822966690848011583730778155592171282597570019346578995358833922211270314588596931715703578034467965963995429364448008128243031642189550603250078147409966343784635555565887923391732601428716739949255066890317947354560197675341387040591144784108975619533430610938253772318890784255826448803694449121322268530095022088124959950633412698485006555777902899868600238880693997388639502750818071845470312880461160980674665843761595256551766593690665651246928900894126299096651462898258615441746314775171789813851146810350671674232002927166450100608969823380761706711518176640283052394335677638673642068046307647127352088590216395188389242661430378216201630825949760942707668594547908178946420415028083653458485324218604877432896387981812588204521922133140226979418279347643125607852403110052722691512298431269819722828584448319904985941355070847660151623087799894664547669888724895270534591071416214944937374416585616173884635450735185537427260004687287737492307931480898609991422842497484094427180289419211491534826830026946982051648923980232960049027510367093961893549602283192050663868061662727515566564665486203392426725650448815472602168369456297785918477093985443218912397777004303194671497169292950515437871620457060895641836194283567433158421175657058454375673273759659328445291433144818230811944836309361605290584111281925384682331609442423833164514245621942923239617387166397632581752431103388272295367048007079990668479671803972222655508824457484853928367858789992959067644631556416887227468994530102517669765687234534799387003807814518204256931556113131942477047843393549245948769270626999681125243053760281362965018042664759014745608856663033284788340158355194420959652892857093234235531703955748016364517306080375192832848554911925070865455903707408146242001943659703754191647117333806013080459475150562475536889773385077160837790540954833429457605572822249199820331890477638421838504873851819022467083363627018574036837302179592903392523849718510130779591105822430949749850520088247382218930577913768697959295641811290342554209243274661227519581245052260805786301305742104012084570207878252198951325559846946782185761666397611814453167301204252436818491502603930636856958751763914621053830226382810154635245955472089134384401937397398530564875189410392441454551604324181058806304189594382802592223377781716184697752620977811912377256267734293177803376958447290322145190037491953263059896658819314446903284546837273143112584866360308022160627679614093433329754634715780811148346569844927490105504494793316182532601229952475476871603454393001503154106637502204406013180315668781072177931445290825661006093458713001233042947339920957039618297407080640256705217620432540606165288966633780677674116492890823896324928065571645628249345752717757933196868434649144596739118508874911581654691630277198106520696767726090011887129971719564711971609121511413724763456018832141277462794322228588891305995066878415013642357908880603222626331929073143684862568411787857126819968244307589988249426599066549413933756466840529147849293303962028280082484701852757956694567018068873360288952789321890536505975113131965959739815542271712263592122756934381563583510750091377693267648524905499901409282014355615473908129214490145143284617823785594601738339876343017978512418673474600106082898280100154129290279152571574899419069685440195976521641084172247594717555006938289487935225146616060891022723284217455654861505332628499491746726180275375966470710575518769401848430139374653804766533197561940611825259406932288845214409854673646336903617916827252707551287773807474779835401296923485282799163982508527836873073735789968299124649858272634362446512672829319647459064044198006801885171044524014981276780352308370669991335407409360586935511879341497434392295528098032642509895894933167114431824036552399243361709241972221178334257539366418891406446880352696124570988965953977630208869274577274523646300810238667156243631149835224441202807166767710532734589358751552762464170209463920959225931281128602078462372864749167929187871231884434961857053495957005637607113223679464109053054756299087657183616523244671043506009724079127332591853353160418793161747639711895465332847918179929711042820371819305644491834858274114906957352968269393448750617692358781624229206975901123631430928664288446461561679609309029443105388021981035363806634906977068853972659354866714914306332879897800027986099565153402842423468827575395519534986510738504404622636672795455008003972233369345642952100358787970152571408937004235360160084940828101883632994993937975657017444828358881267739065373907736706235998314008193614586918307340199881320085392145847833618300141438300498070325543488446837839555557849828313925660459884809476107731505943196957392283439155326999554429486233361141373466657065986517376664657255964889938703896279417493537048231654718971859602101444833563908870675982229783118238174090337339938706194146887971772444474440506065757704059085710859201231974590921078780973203441802767310146097510912540905467939619239766824610998754565423603835793965605086236612734772611944425661042226596522756228966535164405603541480492717369727185709937753906528674372271622819690098596884555113608653605226250556565240354397873594629026315266312142980911576336522367090086267461570045893820887748012469602866170323534312686168391218536399390972012959663031006662818796116638716252600002137058744497126015746282643600519588769040686488616900134003709490648643717364386154511601125263921914834230520434962344198327190507051740483131578796091843417289938577695138085409401697290873519721637628380380238034371372874065785657482492761715768113259642171358692994695070083884206567570560849004282196860643190435489379808687483854890483345925878345689073350752746201504273316124532963508306161715131035767066520742305889773599413101038450297006372048301365730931171584368394329674308248360409912558202620342618732596704857608371811557158165734220998539553726253107869976086566177049111750970575029372475984607631892595800874689653323980836313101933476316781183602577089145114639787105036329941292142616585044817664514601764704398558314865777194019831471324246476322547657759430602102065126102058491347919874719997089916949120815723142310083988745147816820457585818197775053151944271838169387774618543523448684499895642119677517465080845012789128652563372227187467668794170963877497603175838483596054990671084052334949357233083182493370649554217025503641551196116688596570246776892110644933594305387251496069046562250324720702361806653887092534503828327571837369022420397511391996752790162339584081372941207918222641426465057060404539238002915234029888052024433195757079259324861629273316697161991465197854935250271659396719426430986812588493598572803597766289940214630843262050985257939261576476075636242687487391323795361944039999991812631066639334435079986098755548889627618569069788630056458065923008128776680899253355440644504376834338498039556251073368955172806361473857525699412235694344140540174720411539284413267751785961705857769609824880693072097070592530096633790326657905200587461058105067807972028558964497162703158526368017986184065365606383742767182121596065299942532539226952308588302930102511563116011678409007838549855531646404955055685653597989399005620188684740278911690701380693914905537773918268862486180897405298295046507303362716669764202303877108791568606017561939123113169085821745721634590432178146529074972751571721910640559755635378742385161449692620179288267552806489207967162635753117333995278162445148372602324235891373263495287960061233637444044427187834959088374316028213184100840814506559962268035869722533114663432552931300371708179190456594873393492820413109438587144756553092957769890713085568505079825687614550697448116489569734674050886790883915076061728864879654119958190910083519320325814886502906870589933615253283441646655312810410149715425618907542873489156186800258436072956782033841204925146652559186074517083936465213745221271515900887472070974488559141126240647906316296930332441379781534259416346128689545141116109965388162042917670058577158269419557218557505634164579126148775012724538580512431780648882350971141511507731622878418556807101939641405018742681461552960635838462129506488162598522554016307171000859989849598712020919474218621905857835304971090023716264109244501652645025047516638390274380769735960534919679340109378802704286090740698235767632883137921683972612996666718146697806632473717891928169378996773696791619563965387551189115019716126995369819827849012913054441658651633061871649067374843713888710611576200794899675538458347849053021136485257221309494693900415832993697876959962320135290665343239854287382605842486994120974849796307546786163147714789570219352724884712156874879028884151682418148010406600372484453518755810152650098116323753359357340816253019972119061881766860502327779162960153654717242078675072427610767191424977048816810736164012231489319910267608473351910925997104683858767640447171468827196778622045912129448741882988504242867789156517794894729304599915419314127430893470396715800988496246847176968103383533617244343792896127306889558003175995192911117025405762392901242347046427971271844929933328796601896840828825527943434063947076681034276032813629790440085041080137583059033044822429136413350551820849600969943631569725282365760094521568232901009017009424841989192482474361573275698502925199653938831785212563188705881453049580387077079184340510582618832023473179558766757013230524455039326929217144793920792509437193404543547945311025678361417961945992264056595088050734474534239365253935688531051065901831829891664884096331933627836998091832385600625412522433443888105159194547546747843184602217091908994401913021002902823493824789945366519659731958595008164858300754457396561342870054496084235033569603203168326745930895343214886591928040070648907421771675039745908897817203739345833945417721927656141558357628776008474500865005883742634714924767490454639472530237255305491661026243412345911521987114944810838828708369630088386489094934916660671713343898185910811487764333785712012387628938207583212981564774123759486529101916570361167135127883413235510738648019806079123788118902629017420046460826891580217971181545644134428460437414198506816374073341663529492490811714836430058139466082938230419260760032340122220866458164771347082779854098742767579313854219098318914635015275789161358765483239764272312813331906348413500969211378098949387848902998677920861756928279302819028151446413634573491425937204275793470916761274985493894087037595316496790319789573800896749813749482342121461939403670354809815136983796995807061606706238960957502528952183686546389650534334730022101108064656545759915109185469530124159673859060325464235524620835356389345659821879491118655681303680983844146308969320933703449591408274166527713920912584794840579770444996376270789685165944505210261095480542260281235891697720966329885891125870529078201229322312068633885630296785758179381546083510469522284314790586715817914219572725099284553373362992792002112369730883793122725896347431335082318746914087206339204279834148641063943429555170757056382038296022926883243997849401559347235748720589282041892726147861136617920764474202717580864267807026522781096736545111842835058607189809237362010463255741443033063585119182442106922885005259236305058818362256429741013825877661112271552172976697379384394140687480516024945165990226456330841681188059057423842569308630884531070910381144453838537345532161252467442580529746815700279776021502248077670131158283644033475976860109542502438538367605925805719373195749062402044846609101008912720590981391104270223268655299901907406966613347042047983352279210753427279061176379804577398193749156697651590981611986855600367666219396940762178306260317172904702172110379601351934435374716522793270145303883638578595737656889871516383977396007745131935069592981082857331460911164977914815013108931829092427014334257563432336676543473344975965618955336301359812245167280370536602254119170151020718941899143388016669461789194127718839018815992783936238493643624976324181163111291759842892070277971658781895164694204258856310096575683084644248426101927753219310905964920862799635344321596221040959351068699264584282206328863495399158403755302037810753643290990742749800450575271674510986834820728067529423160842121253205040611919237846866025927991086085926196156838590455606661791219040839951292610153191614145636444756745681426091553867289903069398132645965583231214281961856055413366230277011708187853932756582235226785268961740508264918643471030093383467619233435205026659822989516063007774323024967238871133183446358191042161910468302922621124567667427864970268940451914187413113663945436149805550115422370136790421248693606720355077878877830907405715331662402353718781611408384201137523511194166110110492480033922831229709484184749116774203259944561336361903968913587927163583864012860089792452395709037986955503035449671344184236011963425704761631476125114092214219761115869843747348173240741719187407753367938199671016323676969198652067011453608882434168706160967870540026286958728861807287323022144296089098515095181650665032362772324398020029051330532217922802755794642650675354139601480876890897865006134930926784575030960622530759591551549876121715046438996831078009816752380341958470828220811593903422891683311752829707131902695658695757865308879679866654690290301006142257547270215887270222527768567269745869794748183603453918895928259323193849209779326568906266307411499867051948321789940034280945018282587817780921967137896370264447149112338798741338770877466123407293707247178585048651278344601669366824976045311214234499994256051576433900960339885350881367333552980367506563009144874872962233829821161436187260572187836354560620333323315090681893560477872338520498096881609608422519248582717955593818695500479990501543580252154066497163434511903248578486098317883637652039558188998643999225507172409069974790697334963927732280952546209136758582434801009602524627364760537883841993015611494605298142787389223381857299848323659186420047649268729767698663298187904037090817394580682758310756653765764771612396074690309026019594583027664800751441450033593275835574812194311232019813157379984538878238196355716352796708492855527846030963091375458115158758291131604686446595768325429736233794992592180291099696031047337802749116222021280960659723080010441271435684388197103182603358010336515305143753543344528631901112996338145256811987800415934535407337548038873038163299913359772596932614600750852710197827311836275609917895901915501290416893234234883514529569826761939249816986903584150359707845364085841449531081191614758929059106627568147491105469719622288272348266570261059984969884699608225035408561589486984439752149487148199863749345610687293226951335363362799767817928543329672655603340748716811488700029197958375103378312210613194922394313007221839428278530324843404160649670958698919145291240583087154433010960443185708170546882171298924614157384561329125866633454468233432129973463138819008645668061851357515845260354089802209821914260062923733650236351526824768775800941356839898726470784430003400283414934186384854318169989713479275173498570630272541837314426883905393173124911731124404406404896175890061204682098984602197771359067443622523808061016715149827598912144801220129961075068083839099845748865145658548710571784710198975256530982517633472708692043379151764615492954434035759359799600478843251007689436672733573459988760815594120896316412905441203494624428859516509380246706241518236603637122611999812740356941993572008938549373908303566053470446341848859802365035953695962691799723392529352893986553957924785617151792420213841978695365725118410784906536931591247201411946611488677470456607906175916751082804077218259094515160682910624023836047825926184266554833065704029756733869897297649427992397883079867414895478655688114028220889339265649973528647217870509613031708100795862641312374809598420137035064234950840288986535553980154631448339988152048367490243101742290405307012915451698854139419634372565646847955423649566733339076098934763969467623358088130426617845396653462990365303546734056791183170259871196901192510152741471217833024588644088633806041326630325360977980416042404909178011066224926059699175409532134723229735144584120711147857492415405200793376539614487001827476333454323752171027098707894359102514682793002725632752463978635887079893286587474351852563668694938691508203648464869942299513967586451788177674152261788469032668211059950016732450579514255835887458877729571677453654996129010226536798900440150287885550491129977144984565382198425964829996484956168330578935991223250125797479428176528463811346405601866854128327003612708930859118148331922299456632162674587505984148883622751362172279094398572394734553375134103906422594406976789326147825950251379394019354674558402584269175837736014356317338001347620244561129662393566932648729245277003835917148957565189591635449101279419861725232776798901598755497075087254690620372232852258417197635691862837041538038862761425395689332355868056488420500562101583125066270614244828006380862415729660950353300061021988263668342457581674685086991404422943603865991418889049670411019300026471097775965860966923751513782524338978947760018658637987377670875721425305214888110490470424210000999383955425891411153617346243057014244321974737370353821750486810981798688628083413886803303380271036470678436788777241790899264522629677460245405285130697765470680616748957246157126412391016010925722479137237589542599779122720707546911541231906888632842057400344787793041298042303697576519507148263014806055437332581544947851974821403802082179316407485958573869679304929311647030746898215001167225085081848357346520640854335095821874265386889914138219576090933713036388303987333165851688645901989303754932358286049195376933432402993027383707585622432920864397195137910477301349412814482606781709736585573760496757637970971565226842099856120237807272897152298089284816011808834582889707910081347873464654380698865999959855477723007971901266593317981736547445281854016595754856414431548031230279296130778531979585599414315286524098816731114305945256560765178157422613159795811694594538075580736884500541950818834604463046937524497182543658234098899983187182418266263326247908362539500989308600242100392783798534229476992954446069241160282490400723443990567248006097397142016514306343003977963173826944215051494288450089179064658693797429067951305557542906745013884071086206385818528196534297516325923874496045635221051167230639006734537803662142114966790008748040993294477725217079846701159666708971091116249046381052910135368260494111699773589447159237224066044249626979649905930140630995794427462530653277274485155492810905468858698874047254128902196454996987077531697810416002774472121380514931998175054957086451053809266181771050216826497881977738189439693339225322023785780983726254076725138974500987828422622980448116951265465294475034872725822988652470691736603916641444614592368299904061290633735465107779864303367595255431813298513143106084269861104311497942869573311902313047361729711467064559789900981977548556437188196902190190427440015236320280705074449370052205062510329255598710233715144331967711166470509469801817722060805566912497687578789936328694610411633950152213580503232949873695612159656346626447984305499985381876070539107798444044850834217060736769073121509451644136705555050673057997663961868699261918772078311069910159748550062176713347074761958334157654560275469675553992007886493298318686605504899120713113692252591874641290051283139994615971469708297723200416244588975891441833540272545675296340511604434481278074469087644476680370465357635922942031992149864647479547216208215450005869289209649716646086006954174498530955610419831278586435879305871237621631275766095801958561577964239565709617824989190856468132572251270177999265086164018119210546798902477614826720095411192970419078737507394957776571206493841918617563737563016767242007511373587882245086005232946894196478179562908928466975289754864729396773303392930703806018109431755173707438554717363255189465702537112001959170115703640787536346205756360954544199107879759133138941859707135695371472832982094144751545299892523937037476890947088127941187128928788008674169793862621447941361207699501853512801134705100784362814329421424631611846898272823767001794729167905627590074799751514839751891367882243827844045462805618147540162723069329146429370619416709267575849410345201356517475218370083594965436955147857228063904017138558763706393221521076784199410916835154730516284719281563116103378451387765495472476415701014953089519943523336554422818533224392120150197891136135018328711159221268181118017684947767168988504457242129213488348180419376353178528449142578494812329061293163230725100096909183342187395208506328553370331436843975300027935179078506704608916354550924950495216540142199312961527006451926943959409903623401692610325790030502396710292046112969390517702206869385672822559989437063916635522893673320103277915496250971760429164311962347237731071596239668610176287997459132817075655459335279725045198940095661887744825040451824884847434041376059282795327930087474049336732203715876913863470091615454039937982834022590165036202662348023391033174619077139999812561256371762523404238163123520974027925997290839221844044598026344403386106008073400370114613110436884466058942987220815742473616660796163326233329597310853296867951970232879721836815294803611237826290129243703138687509914916628393527809151799412753184787151985875374687994656931100803872089370663751801448852497995866965945343416824715870716196711674344640590428722774131088571824793818843165766850397413450163118153365855345417703925988604359720681841426430388727520683323991365741576955669038880874598425775932854759056189717958627508059085856236640339265797233146647303652052588646241569213838951356056463595145901572647286566013097121942987939151330536483442574504613772283278526479019118728261471084174567640448122962485417166802977072528195327491973054573574380831512992211054614795922266724647896399273683410561610143268079600814161271751661231215053206449643054683361614916101177905642207065813933641462690174005398504262788596366902191363949830901395705659545485411936623438601169786326550976771422411650103194843017464624735084824084047235764527277989798399842369960845019519591143251808680820991503252804699834244167847077354295888031744080437968285194285853118716861531518825282767739462539133252168716998212369471444460266352951567642235618711201042843578592221331037574715514476664538048417142840560036705950083780109939367112069677078516398961702563554753137331387244734058734509068171929779118370172184254358121759046979779917171391682047040002430243467944992603303034318759687124278559266019579081928309936845672990310971983755265637895265484471447356421765937411960801209851323792702488402696538420424789879298266474903531085946735035417342349823364707805242068840564157972547996188459397139073540029807449181520868599254116899029878711503182623779571333460097018098809896561416532729355883220021567708027534733006492208658838373598285880814358446290012456910450296521269386098743038719953105351509839375954602733699811780930521701866993993214406574746168975306280650695119271367334086748834952776764013759639123654224379670543858549977057984662257798484131595150683788874212567664838237594166616645052650744069452782517414087962280818453744388974012305812608134598471517002937685725734540466923421877225395487352313174497881135345013284646918519469975808229764480363885212839594626766708831900294670705761135923156061327773884354315703657727661222534162618691333010347416661957134296949757827096260456861711154109016067096381168273988528065948706418390721103095080280328439079568916609957950993247928353649972412294604871372643543725873682785055729930626867237510269968293388066922365926950851273902814083452367458140481240995815834334061359473293486792269969288469863932072223906441444011313442429137915391540194303649526227681222628405559444045117649258612750175400512840093115972252611938669140366632086494109494952595997632641145056792090492337297637096082988862084057029745662640695125933767629090130676223167486818442484336007601322813621149720547046670139449520627983471523151927175693807732202070982604344854306416506267472250632212439168566768647308797217472582691305733086879522689397729023748064953273489526287421887092962496054495657123104880668037686150926789597867727638912321551158663651919968665334320098553931524777610409463446719859918453762489591728133625959513819059888499336794069452036556810237356171805336799429846981425450605720609875454232636089009545603552508596060711079541546939498699720825624975185954485894282001602778074616065057120282666152305087319778301191623823203133167873685609453279142658181579682078633997724264174757420172839527230520531801043920319762690506557869357121873274378375246176699733738121026299070540493383780264094748059601471355541964487200575350196864369767171048553311125381153394813755381626206005188912969348908187977451907175128608422098086265065918439086347562055599766812794389531431703737381742473503439874844052350973991128450135319026469129994928970349390909023254696570154222184889759160541679460089707791711338458827877370810459258765967680376377656437814262591593212517570301143219610308329640309831509297159207211600314425064914624940368386730844251240766798802330177362543639665171308271595091425559145114410543597720599176227707074462054005133692541189156318636839134114224118071825671098965916708433416616014963025152614053494264470343762115285465107210163927357597673442551838385192165272756977386710814739818322554864211989027592077866252276466986999144201675404648130210142215371291558325230810135630196488737112476534904825597929984120919746151064848453961862092761201828308881246175084914600785816452538674154828141483088731484070826099703173817758045037191552973057366180280827177296941566109876123292491373311607190126147070347984913134648961780767159739829432955796753599935822676819835184572457627187439276210199145874489707331824494434283388859824469575302457818809298347137821678524661147244557089944721595843137854725880635826526272042919735877177863823979553982254763900181080844569094579770809367474820256429074050910490365658440473196233828409472544193699441653096411805839983900900331780287382079529089740606901726224537664440261961692809226025582380538245129006108163283810214440967366061400147965213041792294905169109773357547892942452030186923915996170029297885481602001187792127440597793941072278856558820455794014338421600745044143595700254977402353074566049096605599596802197218854854700229015718880528472213680874127900066463735992804204818881511889277543986681071194673351842426618080534471380176686379607232941320088082417390053001416011773897541341932634130812340376168187546897656951613684590990492598215366309187459855791607332262486669895061723415132869627094849554882268364302639763777293959170445076080542785056089486819897797124605475857214925097875604008314125481307200497860034786807482211136923259704024412994622601545212974217749462951648814800475224202535002772957322192344815237102043396924245849064020449236005002937319170415074046718264583618064178673734222517666806607271432483829442725947749562019290208577939160770674638857698339446413116536889532353322354167814252918656646847845860491148345215816103743666621995499654711281004512764929915797964092391202135614966478303922040377227233437652730975514678289318756757139886830494638217875829778778466476217792365636841367857576693700222155765338177832783416256364171660133406756465220402676801832501600271133415704911614489899347315601901036366763225088034208859398853721750581259484771616432337552039102305196476553761540490677192117031018755115274354083221399740384524588699609743453775209639214510935482811438447456437456311964397569311556699997420157883235681884099846728725035558734316313350076716963118527936657839691267475018422058198797841809037374376993567938383851323522995433077923680778119893966703284872570212309863628891531240113591735896397931418984163877614148172998877104766820765837341870272740295634442908907034951458856582894219546611318345544973265780599476230372768752721234467739916606431451015043262452368285642444315922035259159059097512751934925898765860538221365240114760067887901432397486811508352626209728505536316950342013983026625833317967159477089376636497416302197055401442654464615714044498319236294278761096619030780103630888054321392798350211919085091491539394981260138232240681634042407378988112860484100539683514722865001090299415516920847402500885182143540518658888212344431517283167257973929930911601014637971059721226113300356386383826463050157831613382335391407641886986817405852240787431014083548801418971788406973995393913820874423966246927429475305839744037760682061704230982796505926874521461382606876618510055798182555957862398321679132356668068740536211170757987952699341427973038662223901582184645374901339055887653650475028843719844914757851697111472117501666165539700054904341795243288331167396399440236304771804061859398672850358702085602185424972213953458819154278864832451862260041110559311904903852701990349045456279807192678045853121640911524176528438394537603083473239602499579278660900457422357610335423693608333434374075835383309049385631593883695017271106066708312527147351233517063042607458392899997285272581019249431185669420732324105957903948085498810971349615186783081640051945131300460673127678170585992529689616638705877595167974230664758523230133573017080189571517091248752939486869561011637715366866738781496926214265806467793012579762372316732265844305630542698884985587153259547020197459863582425169853722489150546747237072620668876248842700649275739877438979044339766623100889983478344615116099970516923860888412673035460684075381521186266064253524830084431094376119201815203038920594671514060901576631380297712293950053553126951508882154458303989260904546943489402322162595345708185110906173370100047285543601319044995915132603831693491626240894705503119774451860656471999208982270654693875303073131820256093237304923652699771894914272179595968315718167357547557772344380623553761456921883421286806417597432772548591506699487870234405869082261051223288282908719184342226318406962791118801142059211622170727709505862957604114708916654465587320464816110111370914113877130766018258948728439161540891640647999348281287097409369561570809780538441509252307615095301944466105864106741173080344960659300586118069429079684217417993109712552631001344666286148311126748780257308402474851999329495246409413408617930186399171863593032069781719424324220500039727051217560878241969588927754285143813907077986485293316700084018657243701863137994157520727964902629807011384758125888712256086313311584201733635695987908241918748305138781625544227628663686850770018171727758070681198440751455055899256895607411605443941885461549415466249481954255669082223783494966341030281992961082372016931141224710247695945127288894893698612962242391698395984352799982393685319694046358411931214208112369715712027924841847617052638942230425912218191180317811896750874822170946523833380828096209459847069782124887619772314519149603901536020913032080209651425904593908825783661039309365161103463077069893075673660745882623039598527140839383715750160874217895279883999900085278121823524208185031170166436880091977682058079463745129739596277917586872006230540967185072547854843692152516389587043177435270614262889424019088818166977487838514058421888715786840417023074705730373243977056671607905267697818217075971359022815131046230597801764370336672271623857941726509744813966886439010990192357922898373836595634229377257755077355098001188364141581101113056598037304621006642742023125745507006755326629112528073031891053804567752756722744570438155638088511741877127886281120913741241232057074717782212228889562234041201206826429350618201393422760517186022267021685910246059050946540144531305856370398385736809400374694538335056876158806402284032072940027533041483477660392079355431998928217808812343609023329018858866373228604573968814065532552397989837764188358904651932315652158877799060336637627530783402569824983860156390249911046195808661179932972119401362623322501403159286192614753107377298427227077073033435263887968626808389687727739613499402928442690356063775270881011375042280512893480346062848593499604638473525171272568669663032363125790206069086594668505365163766750495217897531784103744071854831650711645105022266609980452532087768743065090518356995426631629675400957285093239086085375285769563425280049382538474395996774307568515653374712344913892171348559850140572811352267712115243551427505549805136886475264734127529355098037841412507110291500761324642182302549597418174847759877386217045945035489032091196774911256059001995246407668894158266001877643561127723652698599617927406655367093394269579957411436206579924343639362478205011035053429923259122013152315297440454145473843042690903283177270484229393771122115059270953446059946402555323997768001764777809518245538218861916734170598763291810577692668841478704315666174028853323481991322192970927086588756142797348710243998058716381652901100020302034865723535778332774546626542095370262567583737223848100857038391622919341957579054489800992233978217817905666602320902683480045279918269071581005749785954454328908862357623648754676330301954280099759650112459030262698107115511712679745483596399774584370249025945577803788523994797986136988581336602003351707872374180167843881570104127664096195111655493551196954910850186704050422748713256145430054585603981171466928453387474938480767199730509351267507805587180088243533141107824691892460855268262476136964673249119242893772008067712499521078463311013710820066377259899059157687043506576526735381872935542085815803730595123051217361233754310062021469039997191390747404784572106396274587748192348456212710872087440826030873898832742803897176313774339875831565456742945773604348096974748412753943953104556270242939530104938282041524114481374698835952058639939607029632641263355890119194656837746773180587254148431309897312277275278478725232908231085802797929303623911105196085968088226135567230246257979733012675413257541385258886947911748152749325975683465398338211507410328768435477732911951772036050296317623841142993634527807431329186737280608120231241590317381988311669802152274772376063862326981709217116715847430436879312917403897003360694516572039547908554303131818540687715619762683670020551420511329877584355273922591405227662587762508688235635916682049029344220667826410335749062390218055747721249061970628784473056908248209221068622434103321464574829412849287517159518896497761571153625678431431959866355360233934944019740206889059939334370477247926115743409288678437188533516898816279305107531815897861967530747277847708270228072620341909725306411590493800373699563073424469206152793880705462390163643101058877432230490787606345558781010072852961721172374859591203684947966982120943106809202162820853318719237000766589661506287345892480219073737274212820480259756362939777847103974403832892499611061196891268922549470272468118776652898661140217900758614554913647226022787419068102410689016433191794694932775024435345762148778943575522441557805114766022326164278295022520678137475838029755540982325461420648967954677893586025314914761696080459465826820726261885584718327236298223589031463150705717434770610564331532969507369711836201609436127088958955196711461065978335276453606819140293269096809868412656569531845695664617974432096609934524697084068176891098162834720984786099386481242066427366630380261585439739400690332187960228324538870241518957078145073243964713723808518978843959446271299045706745299842826717517253686256173642414961733847749420961266358713567824407652052246358936895340757039636099657416835790948515340223671251087931647085121435753037689521402351194945801934435865494614532040339784819188655949430114775820888479815041061112614017381940275234702796706958942322172679962248647778481839532151984617275442033197303551758085531176641802569264958270016228245065115537478409885913282597277142601386667148290483064017337050875560154157789920240545436538124571477800070541348762265106313424395152588646825031761407569014342772644688636227121599676451509725633369386771875528709490245455156429815072871205668716036339563735057668041302806426727688839980694150226972279383178623562493416398890338571259617066508186165420030680555578422878295568573782857134572839529622335963627362538579076635739211529482403382193269770776997670547897260613729778174660541043983384342327244637424557201722783867672659165178862823757749107804827090071991588980788263308524292882654041437418457632476917295574617063648961028534979538243199036539695247079669925929763621393631155338679892295934467602530888966216107991737837555628208108249523911484620662905565462906391165802777958410234756508583003079109640531685887323032078986128940939006185701757618119815018968913247063032637154836914040535451085262127002055035706919323457241456073012886677094870060396585134613696001362954341118726641289890019714831658976834979118421938763938496274362769386393923697550965552633465442601867850360405207820430524509242193607307424255061561394901874398716469778369681211839050459193750432365991961420721353982685172751480343821152621000756669543573983829421837891586623154090667222431130883687302061334725353007618989868593564820929443575429949580036428233962629120987873729335945693746214277034224750601366033173484737207434996689870780937564935065005105066535676631749591464783704057018535452508123711757748792684068170649799465501317374415047349539811844260612639645492915406288040983390906521144456907058784823491814968874104894590202822193519816711800955414098936266940925090581101681087203050714941137583425875579341435808330175055435040347076116342909319471599762304034244902189544059724675045779736388929995376642145407528685262321272101887156723869323841725433781364154872746561701921088904078271983011199945982289054916086616406476355860503833447650312862774715185567005357958353231384087170239022182238868194924619148589932570536163424335535447333811200627234515491180829709952344294144899326690836983255102531764955835845202784930844979005614217610911991439168680126344884496282462208575961151019048128886060363751656152052798067916838022925341730188908390365552377398535545792007182560960001413921288505886147234459667402478861815870835746718879847911430538080730008160833819275558891631482980471755440743404740958362978047452433312687198243165092844534181540814290384852318946182514625066411891841675599054668047258823846395716844549874903260005835374636575491925252714372697491664620071903812198811469098551057576557090638757373822748895360609808670022733409886052060585683207419828719715718014756916593213208582966928524813985315275934346930203566797620701065200731868144795020312954872322104209740887993791814459603861115623940618395565853394397201816065194858590220603701507896749554218568968768607766162520557417818695744038930879083890266635746361463457109464835829341996881263549200313857785006593351384762430096461022034465261193130150089281703835071195045902853251815053582059124073200423294471063539453621167654282014974007068130563831764173771162365111633761099374833518715822151109665991482611409187618629028404384613675509918550043503467832796507191155362984412251057309821753351647535600409250119276686118046443065285175261623303416093523934056611316568680390268473892288978036385560953499405317359749478374899109269167051233169526265656453970337208142946537984613578657563952911810007997529396321159214383284346015040830077001665617490957193360748574245259892250906911754440146390396143994975039838661787640902422686011373716489119254379643751779713268887617217336927526648919330704290502912891498476936068044655184166249751708223118996575642574869721218000163734432029639707466446103510490378010077118852735890050470682847224894279840236242200616727289262497802693346640037902674808113342636526929111325082504042902046586682553761165823908492495647387657504040670935385089753990708283990918645305304111866263937065564687731953098096960930293688201752501515059281019576683625616063546364271569238461833249491835890586781930012555613115350333715770642398557291607410205816418153874707333639442337814497035352045653168945734367526286552220378266803803963310351958595210601088085119016366962988920630276710920533809188693223974505512356793837049144648074492058717201330763030013076795374467612826232971753082093116725864398500463134936009835185205635203029978218238486002420597352449680095340340654953548527885246863681951226798364992572198690380538457371841889249449658479834117560399093941192792482981205281487515849348982174717849095296560973471864691282185064685707403832334838097746045000898892448510678435965318944177638424757670030273165158725625876213843304278408912373845760361962758991408191578628738728153243214302528870733393683317530188918525915661023564438957302242876192804229929217541251605356875511364002021708470835166988968760908453893075630434029159654132372567267876238950158387951913521813256731790057256933922522794478144020137813922106266914932049861280458028006448135526782635016448818060335629752527395995993454086789897224228058179195935090064196433962403182665679985279120204175374953201717014585840641124526465916324059019614965292540272926824453442560528760085135593983863012843410777787424026702526977264488802805490994573942585942552145104510264294903047298739839920215491863970693691613091745880800397246090610332563630255029635152033800181358335856679909138632888435639522890962441266252618715250421735659459305192654452129916229312685051804170142584744802748653225158732598116303744505037087911888692117567412661039034205570544707948229482486480831310448261110922662305241037312492512205914382078848460570432796015411529298078166259891382674011292148587421397283680402448154021560209162871287375178562787320943397009433227294568863345392861069147187352200571541097031112238957579140856855168426324557271539729642748314881839150686450972895939935778235500113692211057576342013202340330572752519170607471424049588672629469964499586792234128853494241435384033977008700498991807273455222017423512339563438844654155735897785832854238072032361074977714604395270674676812149316129518943400583860011875126546800602528914083538877227815084134279288772780006573221255945934343142351957776292639766208295185353011646773125738330163853513598301090954952140208218052481740290503943900464718445892469131203089619973494780955130186594472516024872884226887720826182117043099984538240490799908322258276515951496484545756224742972736429079166238394052219296736047242885595811962860919147079523256928058081718905636544185278578509775461006852008876352044359110610826094291595682271191355116694377186477349906754831479746455948682809704300665430294882354149840002857218512151226789460515797284879989313696516542989281704021412018719968096216029365610904632736169654416915912561352047054988883472438782995733505028756776926222994660394718844299073075103734295918937136174651219584038180130912021612818574162624773774805477513527307619253269444444222436849079737198122185866861671333285753026813812468001305432691052330231027606440079864134315850605336791806442707478771664559584223224304643841133508654482275048248613086531681058102247799440692285372060829195506061336265342089195931864902146593781900664342435068690623103883950465859116607764684955087611302619709602528001431222191038065658979230714279691599039389742241516540514503222675620858478162069827320223849410704719029250885968412994657514068891854644849551565249468996394059249520642563831923773068381884506402711201359094668277594853921918912756413462799607543900817793960573787569100508017303598019176721635889507241031343998103395498098372999844011612166286003962497721508143571861819207481438395422903367568530303839303048817114029574716934472247163940853952529013718385345705277827498592540767578620144219379989543012161386883479626038611022429634780722161592521281472809538888129306994639664231100289771423420858264673214179056803380432852247444108515437423164448225420680836579526269667784330396017595274836028595186048409982383446733702060155580072399125567755830168020195445596984513625066760379362916639243712939714274124153578957624317053410186981127966293183111415182503038868278155772610083663586301879636074056613943677778411424173938078235732665847988882923006570013409866852385282762085855799935373515502386841823775733557707348551752838509448588312811439165122059392974427127198197074646483404095352700368619465963962091547620065569638255444954580822333822839426895095026528408091992876221683321076078754328236318389897605849635713990130259193457250283124980359275000171094083725616217507274734935832367470224953261438620559212680477922609202250685803745115338633636930955338819240424722831329866554157790290097375519127548633044368121900182754961743458009364443051704089008756918320866924366364251664289444372179188935270673014814587853238062435788270275110862306040830296301768934456384323204661823102650270324214458390150923808368391124346382744192568825091069431733727909269579800883467760329760787104629987332135538570278335052992992717878751812396316535616848494512947926034734824820973255537215346412770819240099205327979519341204230309434378420427736970587862102510801131274559610493272145630528238360750922130484334638215096875579239054034862146875300556571485170677293729403698617015031579830587952771138506464510333401303243664187414831821637505567802716638481435943139452263462405353564000904055812342313207505946437990208398393678303530169327542975701686600844874582721215681236736910067397584844999532714168881497185891490513945853972349993790447875312842375913541071834799634599158654715100508494939681209956690956504507308919262818531670016341017598516035915716617848418220779852759609785187743273942905206770767248092090776442670067981132230161806650543111781485006898744074707435472247672289042080439360996110269109122706334517796679356582533863264157458425288846901645919412117412662997472020402529732382098899945866631959070629144935956475179691116266452215067311906289434180638996651449183760055898970607399670066912869670041483785906726841499745059441444305135064315707092208817819902494194471888462694672002849779923199973551103473673695658414427866302434073842516566071162564549168956290791781031713784194397123173695828736623017185895039658896176684954598634418821049161720123186790199761931206922278857604276178720528534247990341581004757378027677585888442563609212801140430281244610522888271997564793790332465582513021286162128344464406793887650919429048165625394553990623854976378390727678137056347476382875596444986886497133323866481691063501988346259909811222326660369395646227888089494952602850808141042529034085695157658077869954902915850272086353348283789099117347758746410820735862818663155229665285837956224287162259253162655890007652619861519505560965774693385612377812509590004718501525130996710928383466067211583315935541105157678353992015374317751784965389630528132225029697950892993968063597017000489397459228743744591302453196371132110847821682435278113041991006742578908902283909854041953141508534004324868006431281547323870413076158887005957624151446376988487973221118310395400423562122164413351154574338022686347891743785134625876213645044121531318896478337580762299548204144769380978615970010108096751063212314382298776086277582838704404062724295313283025185123997180593756740354548784568075259932745810021909200494636716026985157453226837129107142909726196493515584684197887251677187713615258685263024779028068831020076736688242502332474463576599918372086709208731782893916740210306959130483375484491079425574547603374124354556380048595635424699907282562336270393162153093593055095009360314971483446878852899792455748088079489965592628167455459503349777637724901228306399833909682054869701996809540568435573989202567911026656992690246797512860122551057923155042465729208588161092817146126428422429785437671737532787616921182890814901808738252243542559837909388029751002332452782811470073335873899295145177142950216478340902450155093098921334074932968414740044920972836951212320040236688545716766741032320541534688113211253014747062333887313242391773435361978436690939310785680352981687395746702353101993383268874809125289316810698636471792276999657408784920854104645275108368681228864377601039653589539767629727932028187595747276862872935024784746641725147763886328882623632366837125395918794472016157088051528358057917273443975017905837662062321249862149174079787519750162056254873280630510709125498677809037121545414288201858102630818251314803820793276905541210593831694755090474426052427623616323461238670491513428689141948330202981876753584748237891991286338087333643954752627281665284915837150801698661201512445712544239163819825278736889714426102732866698558673035654235253464237107996599006815679241036114950885262027486506744310882542673883442134128722531336643060042379917180876612849807945971761947820866022261208398591616477290722022656353414598946860520894581360168017741802447838533717662143919119305204849738820151571793211833809527258463399662908254518930255080645062729954351604287428258486325378144102522089180701442010669531396366138832908646915173200823283654395843697834474853757960660983230921907410343279506634652740129868582132841970789644760561836620980626691980033119756159824218997688389071728066828933590592206624988344179859305155568051123075221447121984553669584178727678134219119319027583645868204117012500545775577220324239970547097693000311676803154470328039739959264703217231473036287723734177170592724962706372214962923540283897001594296739249768351585509527450802228848423079705925896023189929904210944195333347826145635738723318884968070986641617425031555686705702081565537444852863111472817523883715295955044109896862776447382099663502382181506482660093289890147194770285952237311026138956296504589772954190867523663771212837986751243147351246079745423763043511356353549209534083545511383206112999652372234683443152499015656812296313742096103546578740576425830604618911320107385198749214812244263929765721873348424941088537097805255773587424027806127133118229289937641581274521480757839772652433067859165868717519892103853341807212785626295512981891463474284988464292499962303933267570601247230759171961825630226640181565893782627088144809065971989334692000615830302603153089859883523866958231820728045831953615225459283467097221607881213276479338158101860794661995285345812340165850366746583041884592638645975063893498227744793944342135898905646757140325475054187590852083454383098041340970554691785846863076472401016597280095175107267604727608774550126020848350854925041465278345389878509864607456996538847559448524868235949164946121703670141092031366002399586849228248716225776866056043794420016997112183732786137651862867224504526689886546204848941114155313959853151755887421783262192667428360073008832771521665952226750552710822111036045437696738657392969586241147589560100936298486187429196028334635379564970864360772197133322290755971377448642246585531273446041860191872236296186645709737755411778910019802934637150019185553787556955474832033545807691370316641651115494789887957624026800698225474446452378997223442201840528800542532245633266413647978550023749297833866542313291864510203014614779610652727607936520981806982865365927407880438560162307195381984010535837449165588445231077355826941096074899776536156033631593463309419657296051832846505043414981795757034346373968136073923578064029777505694192888495636987477822929108784930828222236545607013309878781234246639999709153925829677019129847827918627661136631534537767429481247480934430099604710571430075307206523476865428846224239963523552600092863673271291357601349860713692632208592206236046058939466481892039020827538481957264820488591546734261337200807297844912327174883605672902858626388750115010715233856668604953577451491249052263360832299033084536543192431289171710132019127174938184579828861036802144961432857871448635335256085941399394683844052172692616475640053213936048642840182204634473183374587112101610139964194720549347209089660683233878693010042897624438419056334549836739790950308300959165133991385489622364185408851771885301643733900192175298059808637992495741475610890559562933110728814861645906868089241309056405314479110391865041809677258298896789940108935043981145314212194357528512253313015207990771929806758261048390867734450120932248856564132196601009056708517909015377583753536844276964646238096474731703760910825728371681409776416536822950798778371033433497130824301350717217263341519404215840468124448233219863250891034685449086184622957019765066523773630605079437318358830915239812634861030684828964518298987651461340081668247201137189065260942972047341595903880557563899510839872298549912481437244933066603221261459912830612325095705030471674053507685433744787921059747934477363438372286180917401401508340057789190602705732887065865892275795862528892764565439411012323701935337661201400258435062084396383235440793114882124772760546575062631131830004534490632514196218824456097823014049642916803006639724345479164423589129564887339879375315802689757122753146899774245995108948179076908767715600814277100382748039672995758711571837895000243293431457439164415240138226961979229819329205470553609680234789647932689490731696893256615292242395284720761175506611979416412512410633221170330180967031187811029303071222626924123861897176584692257991333029575741465190759663190332703322903337100379371795338095765103890346454548017245736275815477850590071090664277550435138076761262606731662566792001570340334313483149922322677657177000439330288477238515614138302632124119705237489795202585897364908067241828049717181775101967361017310367501564191534984713676134205749262051609170102531597387764404880939611181080864783257636536516876798678067324843071556535435447052690070164585818237859393665735562641880755655393068244248823030145528533888343555939005131843262578195966374280349072248453104874026659065916767535401417044396922201550831279294436433532567075080667149571391526046825791100582067454537705567279638709945184170750385531459247592635526879515542715874609500472664171260683209070370283017660400308341987003610202230872547789845738019866259441437774675713872102680241453290463445838855882675529803482667648014268918238418926015686720314110835524448441660514141975401059031395703331434914188641856503353989765125253514275874237769550343845090204600652603623971416654168393413076479493389222212692503184089308234569323168385108961497383744760414047302737035701359172723480188400215897646434472429064004651289606410360242217310125433860231719766885484429434096062023649218563766083590272108976114118869995302988160449494209393562464365496305333695832255368771039612382742227805241097760892081801246139240681887767497560433041072300101391060918702137602424407706859449565420307339635798017933776336847907014658634298978230665736744693060428599345066497718069348462867594305653012746119560267489330115143511915676703574230735801901795858632984886666077163776651933761906315908738659745136384087012416452600606701091737466195615419036235508976663243389753416085809572693112607783829816398262009437436100708073022029531692254633218669156402864972702509467824262270769124013594861931233910570186144121895828075585774201430945839825389925876522343264046798569813297958251115375646192262117586890977143753940501463896190829266673748506458183527839186061062046186861547342796403753819926517705995294839889234958844080027824094868104388916868863447963285213053275429018275641199257425436791047737795302348547821327262912949492756478099759827508154448443099331031999634707553875146112267032372982258086936237642546965458229924571340643055995065035527436905428472093733558949886143541076822062783695913912969239432304101732506598094204071953896191809493923053955531772921801504071188600561709917324181187790595303416208641420127446917253437877925614856981045071697323269813348555130897144434690956666683005488015650685436849963910762961700757397062385513776076308346768201789758382977778307402504463500430490806290901177319349010724797052806214803276955872554726542780878185667039290515950404541653027353276229617701495909588883591863571452903021634710845354458281239341113568907871572556189511038928412519748781691795583549238157779501634760181672463538084216451355778412142985799400193972556677661062053336599409956864216297483814033224308672022343362455749930405575299472447984311281812327519874180071002634536248802050593294823902721008450743530732412625827384134464936120321510038232380108929814616366848378878164398259205139021417236427054922970473623334014788359730719669370721190659608749827362056702760276422545693444162400173475263693368111952076463025411618917142776538318445438399801755805463465694020450473540618558989626910130294024419454217931246938429302180145933105407628183862436880038340450628964979880740583972401429787082277605363733283440399597056620982250275773705152648751300845198236327635911743414419162920602868680590136513488594574494194498572032360179236449124778797301427333061810353153755634043776063023129838943670591551735896466956598979073845402608665311662738237330948107147547343803713634673514863127530840924959289245544564372700655735405442390232600809359802279818256099550124128587523594304502388678855849539815356501677332440981970731769500437423473884913082949250989830731555427927641986190143776872013683082137609681102853736794702820399874754653649864306178266611829836371830638901651664623765568549407308761306426449681741034917121185425822971513215017648350662287736314770920181352899397003596009771159357400200134050233238501408116394209053840866913735442141139980441066720488860671101990933650482792821234231913092538642127293559689775398558772531509104866950800667582659069564534287125318791450527442262116903666769457274284855141814396033599479748221062006145392326551620469733011840245446805594661880657115867500474713077317953478109542781596050869286765127885089093523947231674481481615817322444169145609009174420896086396709481620845628897044317539394061101276549525710242171361921582102565721745445492874198262401817478389740470880110178611782936725749836522308140262604679406288218176452177013326981625285960419094614614708702187481061046036187366729500880259174218425979233007982983056623260607164879774522229700045404235165634812377218274150162152676396938756473861034719837859767349436558452671716047371085286967581580177063716537807718574255523241711134495881459345499860527686634583856597540586536310975445019738998674330318974441008703728409428705871713858724662729876793010968539697399478779146397493499954905520498913612898536422434581815089929201128166958085082230612319308779923056177042816404210306906890648723411877272587827645835918922679562717502540407454363046851883867008076270427546692825396049534718849943962205006037935619187154383779072128622074596729566298988790710497039047746998092246523353833434410612578130519808510136184305846439483516575280390824065032882560234179078167352698736703439990816136606211040851013521828855712673153734521373632890040418149513726075504079997443622192356052639254082213070498435653398728116384668518778898425107796193461022605686532908892151126056128176702720665144249184711471200328388628913608214044138690907568334935316932967996239639234344983861106860620621660674309910626702775735686790638557920617173115009387519089838585437656307196802096161999064337922489785984535994999249992543752344189972413446020822553585036215348981308916203975869713141066936400134804039695787748291087921820045045492610784284925638031876329991684209361167691661175147086600928229220622034231354240675543173213979083256619472564219505881401418690088559360826884106893672855870323259886038645641663499631505319920581400450701387744927300731450266149948147717292769051323742593283116217750024260352255782091506277329173749271287296688516329788529981791702945582703509219323116582778360619172141400926388181591233779263466421617471970365970679810422081500838051958291005551553059443756952227521919435149361360960604800432345033756652500034445278683983914146458944187655103726169915514297736357220588071969385110887227590227420917843934316416906247688754616603044901100350236709935086293043710638920790932676871643361695199247331680530154872807519005642588208100831267932506757517122952668563733217330473993679141497669803130495432499386530908725488350301136914248044064630083036277986767104468312550324040894341248431961080697360957447059075635938295271528045194626169510816352349288508098647324191117479791881308347266598758316010355630482798258611658399964288018518812093717420733593878539408229230860039183636698810517286273321195815655272931375988515368287626707768055067371047479570082779128076141573417528179008388374846746376898127602508871521228469335188078090683500491884203261932185469004716462831257388249352980669614443054550825796701709337571438283127026351132227123372136652268927832473672492604430337231376753221010443814888178654915971930722617100163558417747674461072774451055763704564159904506312488122036096035312852772476219260805674434068653588579096016536707237851235363819970013371343176142541910578181409135960008149219528057617535858311145889446096380761226742906303364776316674821219235215629714167730832115151327626340548444363574635504294492538179818412772997432425590113541049005722210190348896552886083110821730798879124553548390946345739613659965071670980360022495500023079329629373090683959481294887898977456468137022684318410808931468261862965910301222241092538342294161063721820506391795380575634658382222383877958714661175376129997404908342512881579268760843800025155201720843214148089160882695815698876323009726530816075607019438282845958886240888281887133706008671010158105195903773941347344770942144620665045681925404685643329145469809769489288305483686229976968104738387948483881584968992060975039820302830343351577259765697992857260056641144071772910505466044049941183548821500318753722899003098558723816823152120596718876543063983774951880507548414438906607791001400651291235385487040086579279763868892369323703023686592193236195978213777276637726027518318223831565307898433533773577243466664602647311503463750981456859186799042340534869461114306406825140048087945308853525125804963526234055800255128143730819660139266143503620196734558029034322904775852066739277640065320599856503979578323824730893062574106687271028873821364366519515073813304664690685166230663347653100092988622591447104759742357953379316676466629403599841221642727354184100775269637365428919703426665763500200967590882524031971086173273355327399817358721240912220589808710563376682274851025343826776162682137887053062207656964514418488109781282496354335947086084671036370629642193995951680220066607860638982932545730655880741973951302513675333624203868649544187313617334239343839813702076872204365380652487637459643074862281677497559378348748846154713271941738808180268383767358211053026799689402814644087367068676305696273050645264540936396119717572890565848145700327501432471526472976182119464754187927648202008527183171484977042993890098922196194530347961784897774882313707609977894416302668562895847563866785910383344410614165432874369004950855618461426202048266272985481441004297638309792893743209722939091826517707798855724499863778698146663078444434133389874859137125058270420674020096077299745253611984821926722719451814968962169116756131890167058478401446007614639858953178997507202616209879306518073710658854190687136872978323685594834238759094403097620168355133248842300325986022433580486802167345094319232032906903179000621711306604004601389075873075050417066902493296122103255191849934834659832227144927748305500045997421136414216201152509132600975491519595672062780286440646383390760334300852612721240387200159445472449610528843131450123018840541912619269114833052235293250612832153094523782127577157232151569534051481522527473791433271741109285021503824743232773806303532154060680498119825413633525604086345579644345504961627316232066927642013084818332758342476098340533561633257611523056607759760089216812594248210641996042640356908747070395515759107414885421287728721756820674528269321179725029115249606541668541508142667717619775653435806013513249146618238472374822859017803016248016945869379958950549905196695780670460981594030550770092526879654512317630178477553318793414825817008893644959194093355262007100527760649993233283632575499001659203764453129206530894033977952369266775311924479788466167148055964065335426240460665970474916896451628964091325591191637095588237934200281725835485489061311888936725772110189851452474741404470765467024690440726645374646393724417057031480578717045184251236050398096826201518932188239455118833716850806150925985170610172339131853822835547402685376508599278277356168402214553741727404753353740210745958427003808327131566267441732176110275830813632391798652094003803076627180067243185337922820643961106972226292099674892104992674855515606252606597929829117899771813973130273617382503114678297830779791309441756978759204102861233286437107887240143971830093730382517547162744031415040153010147770136268905114827332205163889075315499425733416625570816737446135239430535254661548045216378386217257757130842505689063429447882540984833798066023581894457899467378914989966008650800467892745712425981282604855576717820576620735246167891507993418158901910024411551859874247055150419307373465387545461993745616356840418842985212385494838200524309219025787397995157066752654374656434986699206614048530196027526533492039775138362383973693198601338678967059586397327433366047177712125834128955480786104151245139563661293313107982943422953543266411757681263887137093275731913748850073197368765565225893491864367940423232694553195360152438374826531425939911331621185318642376850972725700594400740359073968271590060325180998584673421650123843994878420087525460520237577390483508725569697681095417239029489381669261563806793569206753121212343073110067869380882778952164786933006114841482510438148036119741038128664311009564508393543586899420926279359056052351863272682636830113024155693272658489151987551185620113228614366284319386560795846069172340214937145619431309501402890319872494804969100482212991837989310506215494729323711678892211895475983378054509999103181858213065617955076340710413889898826886756347428418423113087941229201557235230911102392971107263349192547948735312650659591060955887054155685602077641689788725463945361714588462487451550464039763510673238041403532856379446115083032118962894943905694378476060709666692260912937028849910583643546799173229697010855045339448927541851956989246071963898660877877545257286376544955011903557498029348339179922853063107124185399974173720197014570307450781008746203185637226167351992068189260944688661737605301355272044011589369701837727931400243953559611270164448225574087838989938332891536850675484870533418383228026550015258913183486015796884548668672185835581116281100145388001257491157142916933969873218830784076543454049423803315390217246652467011637067987638339376280116563092400447651204843024795108750849563267199795062044015178509073786360232731681318601213483930880761410896332457185654813249905337389696563185149235709256230050702797718293076636758365103862741027518753959212469619284320588276298736264572109022612853521250598825859557076107382159526753663920189100496008246121837055515536411956106339602648450613230804909373353869166639077301823796258713205062800747828486437933651432783042156051641113716646357673068465173358935092316581795279920234136188481125771491981355551532325154487104643775022354230437168294601875760059009222627390306589378374206459399196017928484621077905176922868788054469019435330086979280261867833968162327038406375298477553476912286629597974069225645019425849214220311968602891150951957582755540085241879719577279198395887596902424541743419065752147128423065556408063446582195864067974088940753794381735828143753439740006129909320121288142014629020109464547429121401843729711870718020833679524818175186013315725063532793114763585495026372495351137236916988474776130815644895848441680413441760597766636213252858618248610743588851760466707530411385230600614362600619297130711484364228351253867507263622318966960392515365633430044803790458964508831671476326563579856611014292129683590452477831567187450929166247068427408999781250361243786812363089923614545718848411077049936162843721578479644932090780042486184138285089365968564447423782724437991074218162773332800133802588359280990756707877983298560448754432408805868587062677061553594652775419290867148413417965892599371904041026114025413893416912498171006724274275265683813793060991198606366189078965038166931374860377418246651134480321384953624693667882639197359387928091401510913093593602560640497119539872696153993929891975719435453671860770108597291648003529088727225680041870603193089698366351154044370285251301260412759554898217902105432059247922354530910833702058618646002280875748215882705226450249296433189596466311016947996750080022885777333740273533362736031518896725284567937487672359322373896689088644223554076408127057785085272569672811655856518486392340819450329932020301098017335424280762746124556301202756886599138651526856825649871137304909985166573665082959181115417553220643598827456333107384786240145672829464077587635637654359732524819687273749195504946779269374377210132684134013502251993695716525179672088201128308991851416309294513487093037089891381149232858957572637456980319075388575948516550357638634962191175828031147018201356533303794548183773979805608469861375336457958445542764915151428431767444584395541106186869474281929844665539122099639840703108962297647703148120776404796923408242942733156807114540754937206668374847836041536417812777706685205676135056887470966838257025109201572260438013651192164469304605703382320192653059732335915146468638955355200267536768318397810106482270330720054613398759195456799766703811411735362299082818440965114743988891350079423660095908203069931129599980858011548225227838508387611486162960443828279295126142824757082155560867527736327780283281672082422407912475965149609510658908225662884358673551585372581133761914172442637318801404422257174123660429224482709095051911360583641340954060335379147763332014330964892079207154781906490820349114924098446029128544784530063211261976917163754311034422726628253950508444083385992764799200384560342658953544931858396919045916555182348027979626365949386982540791480957861526329026925325216596942492882866402794039106435680594679002652303283671753064131879106076028949003771371840414494174729692523326598418944481560900671094946776808722945065044190877349292403248139367735911952963498538995833110561916920024408097647800919777571625884686755987286893270489494132573855142142573147825817594425028951481572302671577376778406529643617820376027774018825258250215711373859597957549686095347038425136501385516962148398061486582507745656396388841565228193557113183053477910158329665964924238592925796599354412296331726241338907750398742707928990403693597917888809068773031075544858348738964653132636821849881339806591899385155212079324685862359800758595226876690096865680091907672433513043976072102879312116074693416548197880929943512208199423286885776121697809733493663605879766077561831890591373585503047719616320676407115264261021707088671067148640713305884071468946302402243103928034591137427928277365489624407503121014329133992783411644919957534660525566210447989268138495168077709858958263493861236124001798235154232521859131386923737509770706451327495602467762121918299118353627507036814368083151952869673064815017779581846161356891570016284327663034809196397416289532943755625026467697460572032331579541648731884437005401283455477555042108530947114736546018690006977909340790404136568509638305145198708094183163250436342171517012985100531844302404348594414106037974983169890751812028001097972094808878234421326733119279922718680664054627465711183484764342196388351162224189779192121025652504752354559156081629187837306638681916966963643717158889019393513549246251546288201155716903140971046991018541758346120706182205702176538824254602598795608540516266120437498137985025391478423846813822357481415441266032389238205860134247431044388591468993062312631016889739047755666432554672226628930857995653251073765437531758792424790269890402561497088417979669122464961035323019287444304530027821038046881791138482466769042295733853806562312054788568434409021079986060040156362097833091146761705484593428742604588677505296451884765380876007545758184400440344283903958440711068688092438777200215605898330955940323505503158342202196772955102446338614395351251016387847275814238658311672510578935839401706774831049395381754029560351895435060086476891798337912327455627487324427295365148242182486995978464309129985662079839240739713675458798639542630953003800626833593406117916529726678578684556032167356483492633095693110838648449542333481556283451342854416727942852657184778437245310598187795249734223322696552894930910482399652650502016048590703710562090444936295983437764849442911890352830022894851699497637182866644073992438860349893746153741624838386493168522127921187075721049205722577677597152152717258735572759528068908505634908911905233147306214538116234468444396998023030853916973577862903598503244898723894450108609061623815628554583865631195380291371022825521231361517807485332536371781383411107917411804329216012874447032652414024234526141774694492187780602105498691171334950383293000927267946485156796369073980079227544527209625719792916833354408109759695310217194728699142904964532819990528177570629467944247984288767376709259902467052662556265480124886942630282341475872640268817309775308036552168203404584214736823403368880112623219292414295075407249943083301338991637544925977385226957525796265798719226890854935822782578572910286229652617760984125512778546482258527389661156915751972573601127684052582981231168405732182137730064462174580816517576349463221613840696746026005355525198518793254383496896632449626484704053276325496617687648369210328583806521881375019098250675386862935720201291665984697207627357445658470831209860972128968559739427811124589468962293632971278274774250927104073764092107907120467971034363105808747437077814949714707360047334026019102793791589035172580154933954657143330612685864061274155184601126418540539036727259465517262018126728238203330268512715413953871745870703236034415668211852749322756266950312847208213268059048038352729063758704959386612478577071720936225372888909746720187883634383796127390930267017510371134320428626854999957807765123020948325857563583303889015522241785099239023751115902733781985923270113529276733785614959496621810406071792619692385210726631132249761304001915557634396891161803769516266622948153932572611318086084237920820678991942047736489299372886237792030445077901066794855453672273339529147580626617348310207686247569316719172605967519121293786266890321424810952383863242710802261223025930730827826539321973926157620810215196056254264902437156316586380575760861296589733412308816258544416340740445654177120494045404888519003432675316312735599691410153185858541005484612739151495023473995018401636428963928866627785221074006024224524488946385317206227346363085629458834595526878176166135940091188409878746589202756302366809435977773049159919393898881318486941620968738256721605784734232729976461674651968812827659179350332551267400126587177622585037750073725125851675082937786498668458668857304652566705650724350147997130531763129710177703983065729636693974703981304254310304884566617604745644616906094156535666519173605521400488992051113914022334373096300521317540472279292121797725491394717416544027153075885750053884252424052943496355367504901898843960733537464035989027587780161224380743770714336762317911624627504093811911883624848517276451662807205924016298192278167431780173248546517102003211335640682670429573987470923464685208991985495461340963532080806919048766601993086748080306050156939036178092450657315779531579059852526250701667544609013434422888181973794198605700413561472699357190502361416031246271221374469887540451261386971274526333690331249698932773689958446266879631985119969824323849785824435605182681440945311217435975327680838091168103648345179167312154276090236979318676822422049425205187000546598527105370115702943627005692097246115962307595551510066861290425534399516622535968073573409806051041191723865768426150848637154874657948595860136098220810945219628811325837605612340819790602642716267262068023852238931049937564204254245967318567661239037870646039603044748893947935535873723507134766294889515029055562859249838902657351605037240523581384414833396792192097477612005198960918807123729116653675011183970237804330227336872375906393711506072763958181926091384508504766053138554105808621295810793307533988560473317945473211439873690522981277890178035333325127213696528044058187153872861297998174166748874085269204809927236624909871847259341191918594527151395026323963255776966571009379841295106213121149921973892685739678474957652503495402686257620353699563945693873074149111592431836192409183159743525872379596959884989324054144567637160324545669376044580492953685603713095157568645378290921823141715065430455997309310681138431275374404578594533515013081358739947466547067373520053359542410855020781491663956352068801835740948701523009301424422808010057268426472573422090195306496566805574263985045202428680525022531094579715852130786359083950489877987463878050307001239928982505052304392710103345469323628564667653857936791820086805591985047293833024732427741132751398071808662991707089781508048745863063313368325983829439712577165513437617641361705790364479838714387314364194491547592943989828999432693195468762077101053661617412648532300662105154483942976473461116033537659781420074410995203496061023995070716155875459570918080020275038668639674448902862784140275965874167225169473084557282901876182221155497922217826329182813355322395496399341596349858973346202819063648535344822021439603897820697725041785506128499593942180983329266498150750857231998331113306439472069959845822509502068038316011664896595977126330791718447717597516783335374344735808877204382662657295044053933419319609832437714100004810507875222226457223920362960051160669353182517793183009955194712547232575930721651549369075685684264587896788178312393405121341688845201228429517703535189212692759051854118225549376239324190596203894331867182938520295931652206056453930142457631867103923544959241065460250324168263859097329769792471379348353077543423799868110486336659687371555963766646338345168383753961321169566328969549615118944352612569000697185439474630746550482894421243658554426149661047270403266298997074493533709756542603559010396032451552842276273437933127623578408664399217640672153578750381917065206405285820092993693583736768797139787665212762932832132473603583177681991177945037304312618783074994889604167375947905948216512203356626347712210436869695567124197399240513642530524564911184795278619752394644107885945588155842754273080734450286000345143242418434127572108363570608134265095782897380132277848266940759051924201254288925418351181717507128699729588908511393302558665548402426252740980502140864114551067003978256050092305645668636902019243849109280955020196237032938369078883100446160549090143139862317283399269147556437545325027681256241639239285249977557976340900652881531389806114896324118580113391324065344864857067218979819206989385558548221959190295812401561028384609908693551001495063044797474999552397076753116690527987609774341293264158147603517665024191234649231583016879615760789683797318499517216334901184528479897240353796525503930756690372364769695061115035255695118126687501550247421177286363326563266158745883100856808758496272568298412200319165599826840788708042645540580659477285456330704194499048719149875279053416530320489456786579931067132605358035302568608019543957860670963682635308066434734209478896534862679400931000845480294786625491491817583820733249944869931895420781750259740186417490920233096261485352826816179400072495505192076722589401936139192450981011615103588030035193866450395230375737751972949867916098055126385878733926233421584933224294753122036630661465908509149120903491047656690451426593534149256861994376330525608995521226512336492922670753941290227855006569914624964372437227479790405419600726465224928025005541288159952955890914832564363382978968042654869332880150185751340020018604819718226745378241301433037426776461686799808532042732740983290874667649150610889649359972432106102907477284629217824095661495455558935873925917007316784900147695440259578722759890662408892591106299903943627447355851897252461929282993686012042555998694924955419846096180613361201608608586869177278146576421526405475506118040892598670142244154270899527841598456890818911912207057777896494004136530055806398739603514268989417161694300871488257297511385206116513431481898246389390316427405926983270829087731620161561788075467561547099819050371053587912423178679789481803633083493780393183733287467598534747815084600285211912703479437640960025776991772060480568988737271638249072329045502829911511287332670783509448009098826234605022176833479863176300777395234276209192043869246409500914039671984179365794580746304453007054004733316601050508586534693921268194569839719958367750372619201102136132788783904206860371548883714483345567547810174208227413728059184885752213437108967357744928771141624706416312476662595492150493735935341213458197005862654442471430225253932466113234744938318316895534054451324582044938917786311490556314336777080128009999434710915488330704172909411600635348646442996477355421982243491746398867250019377682013648700425238824629710700418563874795182372412831244879616632257492617599839466221250058288699645313057304325521508726272342673728278631391628873487552281316791054676277192112925768417157344972425310626593753907316563078732229437010390449744093901861343825666984797437302815904930409511267496435228112724463807518193254565068005739717069977402622791478163579281238300859383279967189991192014060569253156873372451754742906508458137362578509014327058764765422797598657889984285525747980261530645516561279134291991535948105894239726103235568479541633193061100389815443856011534227287121890506914482387507545107910734242912325558592202514189646175440486984467530939196977485483862579583458056290746048170305437604862975264012323227806436720484014736349344848388682644742511590170904296081242326106242535037243622388117594042122097911946275840950616031081755299835130056831668309441658097500946999656788454535154996929105285851643707615203598936760482060298496706191554310558297477113712646232871969339150759012200536566273968829219019844096331724889603182021941527883384442326299233147072178436420803446436035858080949243015989744499484697231789830341532318372652298457507066863948413807057749678098719023307599771720239199583032745609993025112232952586204643434040213026540591671027808944090277511390146004671865945572527195031601009514577070105458927312408336022306467712883748078417485887569252865889389672158097527279603964587643703313570645121443366980999511037998363197071211340079120295733266955716900324469519331706038530802264989254652136268371431832227070791450425562056415475447278619198162559423035110739070187479986062025364728805830193913677466106096294542766061853743549007265384076400629430061685341944285822492538585088721866378198616849798697981221275243734576462917966856255987769646568434737042588161008555425628297727053109178830046675014141160021029723339405857513211578197668697036151834790387621121022132983596389732093010638643329412226511683714665931962919537880231447534617901877960335689590646694587271363592093309682886333162737041556213891457599158820754333441339450262971155989339941972903072965174972998587188933130249759065805435258903270306798099238230202598568575566857700483513986075025466177101410975512618853316837597180783431625139624225659312646722011926591187690055216484863524466547194513611797765113307284558308290109075572321028045706166421257358151544935399792850687909558792421724448110660026643487340908737798028551267997112615200674142056807289271295426784086977578908588863896379458220371364401987274898263472340465107725382157373578762933372253235367780904960235824651983222317471794666119163909517063222981239096073643253348831650102471729780539036650829646137697186501459491435669468181521918979681095010631292180779593939484955132155337489923835085590639014789885687244212458809172762425640323978036673738595623884591661307041671457239788032685519952115847446766707907001799481911285739491543374040223832026242055146680128358892674748058442278308966014941217437519138342041774276028718294794692863257409276535517020308960952467950267670180289012967088674774593462589529903371935284528478163672743984373473580638736251971351326303322225079682289942143668485318352392914784784092259894132403132981330098646687468421991858793403243504514215422354902319217956349925598479743172645047564176623703829824887162537838314686368314310502637728814735420496217561608352603933245948418657175883850477909426106506868118515849981502233857788940557697903139344384218466568128305596176984135146885441122527464149955874503270032324300001426076064970080235096406387539172140316716695046301081795826762599353790862862146918903568946662823955265517802035162979296462268804457391226358266400761529688545769889875455088187297272923200570226636842186220647187591060665414029179725678480317403903991602277058512833263274800698849511564604929297856117442018570444555949474465204034196437352560130763016982687243073361528306510378342211474670980935385625455164345424192996242112583530479208847223243310480228869464439862496369088754202198805146303318830515546015211749410580519096858143681678960764995720605243769945092277995295583947903083139851497121367296666882343474637130023618584887042124119780389956095239758686496738181827546650477669753735460314837292724150260631329248495526625797440976927485622866873038654351528681436652032325569544704267962827775017479427363281511032084786599432852706439783578821033603185165957354291244388783341286750272306262429716988136902115611704957737995960762465476576390320031186998199385788633380344979654449743638243339078567610700234205356391060580962513554947354617930854016729587767804458730580401364544903574400551762363580506094033756943498882469402187988072197916004141192177223859389499672360438520930579907082130576235931921266639669946094391876141162791861244642829634028840360620497642253728374901768646167672636426239275566075463473533035882480469823250362697367995856458745893224750985790274616210921387661288745972447940399963632026983964395611835153899479126253386054484829383115522324473687722931885208800513053978967968879184429793800529351874134594084291628350316561209847972251177442477920343340505300690293355526770096223583256678038066579413901008758612131501487078323259726457966136972919319953703855052179945985149984953641200354367482377857437862422358019789393161732598465763998459726974374106602063860514128573020631134531123699967864316690162997802870873168673189601760508347942710361159755863123179064281784256707511696186585113562529183671863564903923169015999379092143324740029750949426194711754835515695000254073802835023922149330203018093658048206787866679832314147030719722833993789801088775259590404284755242171077542135571847770772629400093840644724443160483573310412928088332300902081564755154639889167399243495171208665558126309142816313478330529394264887868234771178767604567980858016731240756058790243238410900657394331966549224898107980779980199363985323514425633400810056355323713368534627327498205926891105348534914915858117973030620549243755942502745698600885244312469221768422266654267582455255871771872975566563919161129499300757838854093883472769485869569263034178380294717900032593015084019707799703825755207444847620208730571384318567088459776850927750999557063462084540666691680982942650910553560434963982630638409507672016032958932674356558180699435033700420588666544151166972938758740021932365778897204535082697897428728927938611863851177059336137271263692677981242148998072818080051856266141290580326029268980851087580422644699398956695540110654504964319261358512719219760087387903525535534386307191686328565858704397846177622150793673964936787990655953806446517281859542956005385259512934958283699846486483573839437563240342124964809405143731764033817112879522324952593243959679338457632627238013239208826360450433012537642669540894112856592065352798651258036123255688823523871457193346900130544706916930328638216394208838957898160414087575493360266138294038858964009273776850524338448454018828706117543981548443728226925023246688170867406247386301112510917565669553820546942318171588772197338479123156433558335432800971039867502306935691668148060726375743675250275818458288977586529879287280423229449502538559499281368648546280428745763297781253449622778789008225410702563301179384841943962937130793788147843444482966694979570545908195708345137180165913580469429613012321257009808431105810452283047215531228436069883588766501376054595101478653445641608768833037353979727557209638411760881145435069353507942168936582000563493210775369659828862890459812065044491292892973445692033407804010406199942246595983111102308364511686537504214788927334382812566475057361791551353426332877324034734225107243864570413532296963993468373282694372656460971565366892197912162821159231851031039494537928236331086939906342777457526562680820390458787300021635666709597534124872394160358705970250952266839983569014149714494410120826858646340461109691804088139253990054890314524406655698619575428578755905200544414840858354263687031444885676371912559156006263288449698700953818330489167797076676781588229845902378700640439643785466764935905534644697814102546854589836058571950131877309365571183264529571029281759275300980058235559029575626831581189695687748916629099835914782290666279357624170236482028144534148854934935775181395876549607289539744476906453615743788115570023390874406909557640257475056004174180274346797440555244878016538047911358920986701183087439458658333643171460103074717736545411962576376063812791589770663903265153946339766028486208987827913569046001891043200687201383372925255144390943228970821692095084598647155823071541598219971232331795159708763023581081387386516981182962416101858780022346674310401719732332732168717166552693760487329588822385190780227893872569893762802181615540651080081698274674190707961135022335635462268880868899933635020280936840332540586720208476559048150579007227808170437241498027394214879044285287814084215663256450450693011171169888017369279225492816350370886146124980560553123115361181117154057597943039490184131590373993837977516586007495963716988879517479628538456554202476589679707724016576972400570297750367259963951013547241769441909763114743968095627119819257318555432930085756202819558707569601418716529828266684190544613874967525102243493097703847566572281458130361475140565274202098651046380224567741275365869509771975603561718182568911091478450456193220672159606251538256452792312814792874611623779149507983062807820579756092559704486155541197015490325779994505763370610435639946170044075607814009234633475811554063319147134212978315439347353093663249086419115476327402987502964020386237326630017457689836783841384151294098700369461855882332933066089876629213777402071923880671507629148365963543357326789344644990903197490548612809340311460769640690862074309467049110200698171761906706401861644983030313787642604979392613732841456564909803075142347091353337687343426526495732204248107572096699594559340583817387668969953093027975712777497993106183499481486347128043447839088951050004151718379254597780648836000427446856959186042532094571212063289624193323540632278731109913528979996745619889244085165061001165710415858932571976895258350292163658377219270802353224588365950104834823089789886953751072201198488885086416407345038446655027752033025513702196977363297668847856836722232786410315524362313067006498471484842425206185381709968477253265458802971233354714165809938364601224186619290467855432877471134462757317813075098511437360069515886962507300055737094504900373209547177587755688794153913282130778894659790922638467660313547590071262870000791492434761665709494272145282512103207891481870825988195034984073638663946092429594834595182427532010347101834117539481852114733047737438806956858922670356571700077228494812310561614802769660213218603184648190175514202962781426387155563253958790147140546120448318191633287086245194209093658895563645435888343784350455708966312238482741910798850333924891780281701949573538907462375736355962433744746089517524485407913663139601750457209059464946255619770862149827307475857333866647311462273074086831011046629886917622575060898692077277848928776236085384999925112784585239518388992235440348063842864061917354425139016787802948109471435039276286492683907109938199817596995091405714847999518345240281724949886866705958627885653050919146327411256986164227612559598910766862999179890796400497203311839656266565092146193529737145336079571774557308280972153387023933323923989970835284781680013636107680975243520957079975279551672015517891640007936004436857964385038175352608185539849389503902412375299074780341538966524599244834672980100440403720292462940214077027878644377985203923111674455706876339956424301330175930690416005585269924970891000265105504317206853797236761237088715410404110350116998906163861244757824935514112193254711976009859114229709093302135479847450573008851489024748933293452199034699322925467076367254002893378350933116762152748778029504518450602447772468637928621126432891367668132211848165871752273241233253305471980234766240858060466924945203662893866478869253845241101742397541655870957998128863896877736922773278740530075883493283028794070287405403333444803674829150697130363259908301197024426186478147048727406974980865673340617899214717455347526079212998305166518466758063713384087426033348938275228467197619526081317827402375254998618216403563182665672889625440225184140006017455113909701803394477130545935282301449936732660226694593420901741991293185323420513556397114536564952418920833277567145863183854113702539356846934195862663917451539057893817192540528794807469856283730963907013991203949242698259673360695853243451880924623026730904748687066595362953635583604773420843485554717961166882696550455440962179862065618990707164253480973548747184531863987948939547979737015662790518294514944143343041084168126317605347318702524180807806848674239233628931387241426830448179744496989841448958891801058581320345089807987550116610447178960949719057027254881136244659609451801315863316218657935291749395139707504084271713263227351388320515461448228431581580261762977896670175737357217292017859037006349240303562076956550764901192330399702834938350998848081147980205188174487311414225028036745664213808693326236577648251860878886659831702021614598392201239190803506504762092444125993240849079298584965942656767482150595377811855913975540399094022623070593619827029381553660546916233023236768428026124971296702949966499513032356822702033669318147788490821519289545529031387059185107833626335464572757163569723428266540053020024926673536534730101017354244380520285597005700739258433145066539138159238320252892671923964870550561547313007849788339488549613949428224986598885819302666678636191910303094146365642624083443714868282076137031779683571663377747264059076483132919123199271052135146700989040228758564510403524266472752751609851801075432385463256519226275085638489450784480580485333980341457420116466394085334587125358388843488571274696457453052543256567461246323535080065567976798674332640733621657871150421738327905481632809802384327407081213917106148635939343845928626059123469095090571929188582885451910840247283485556922853631374771088620057628637446807970352070429141892886930693000036512593037761367500326054954476542312422622613205326530593265929091971757558559414705240832154025340486013681597574317581957344276986672947885413624817310569229048090685861258676132912548839043430308132608711331781216732454377200518661403430849158335239523523209209591860234753145435220843456582597428231615176584124165205726542019040089068896869278898068319649662932626099387495277041664287278863625269474390724958201193369704655274254388343506099333458446511243854414577901941468760586467599237217793798964839711912043306648238503753917773723254392959986421468598303758807516920378787248827521394144663867304407231758743505591071490376316884970921677333881155838326838885439915744518789273818692051278020740685752322820283715176630622004428018901657668366868363125579193807676483945845385318451386635277302631635470942586633595262612231907277854136941681313829926110982455342923484545755253535074598275872656671184613548228396188216749963683186423038778152286237694260495436111806847790401241852557725346991856450844361480280482166342554482323118355487388000605020024473344214964747294958678441177440610456516416573123486639618325670115385508996823521218978458010363955093173330742769421531903693488496849171001317870396530256511648274224687294102943501119997330934166110521152491553702324372307332753003433729386790019872033931741305563938298830365380986195125902224696949748301609028810125185596178274987837063445461325036286405442836741732096846026936477122810087822724646918853828648003329386519493044559016261533273025954321854529175751681362302254153500684394637508167597089710798649806987325953044770695837562581680444509224577942212383082892307865732392309411439060101569364156692370296629760431534903887924969274845129838503719506041452860144506101691455781756095710949100344997660458562880491453180787818145072854463394722017100549394163984361121029023129359331335686238436661972435794136661052991637334206029776528604830406392763767692261781734439914585683905193751611033447899988313292783223659637859738558683974778229256748297493129515151468032094386965543392334452639256469567603070473678871484457139680877786732795170735116979133459573787368233004455308763920370243416514767589818034764535114599423360404962108244916716568304694388670938147399730385102912528565927651650807045419351533817089104598799205598124855318908797835941622428946990096598053963742054515071305803469704516641777074353975115387192566963728017425364430095173445958441840064557314674857186589627779110612426427462416672143557206556958970439716662814149066945324997506164635439768090255338704001050032005428468418877792420436523319158184357872527983210754952626951306933592847688045186052428773181440153461089258137140168533912692867981835297395171087676243851532333707940426882523968901174635181224372375434187053077461511713811030830586588524666339122672512099378984852317203288260212013748802110339052005911220402900250339509361334046675472723593223902336812299965146774723870917918717910430225700783074761967293710763795793348427368955047733277262625911804544585631246906285813429358825243163538535810016708916169727863189696440536291557707832083642805499380904470529818770398596441244211876941683055179781637099853858411409931871106732985520649396136055722808637761030193849314792706671574555387252783394899940694699154850548656806658891553914087502278384616081802145312235504818186002998157732505687833676989918814913272929648464780582665816544590752497296661745771902160434265835637940258292346090441394073706577894048020675368160562909798498936497120888834154263538225034405054556607726531432085839402925643390720329173303125329740949687898700464233455315732304797855527092895121824057179453701389003494234239609120611213513167047779083587343574334635479747469466740681269590929332716059860305627093689017547672183692446049272525948072715577948897509192815449175212354208693019999333272097761248845974652424824203578096368261955492017530845561765744764559147183796289282077667666479921355100102590819280174918206328146111002874968991947492932243454171262842758186202119263631217392515558985189479366721995514604151081316860602073751930681818401192090854585645614737626094474950910678086478937184496565516721763500324990210484305507377221631179918375668615620670551822953252286390380990248567811973302857317395294609886317004540319260064437782946572950187773397051048694356959913745934954944247730598612416984826788090316727807025043764270471591015843890845420550213034761953886372079064137661901345009993158966237661820421310326246316401594628519487793183399180240660256464287128369771062403393303252707987693656455824860478056646020532480788148817451335909078395690831674574136103953373108899334432613552218639291463099726414858102541688795338100874913994209557121525037632336003816623230480771289003098431316784126992794963709095935914535881701910448205712539591337022213417168880448624958157448640698923550762784284037509251630217740713832264878424471126159718163896058033933921571581470059669167864951389760388780723325137750203829074472331861037713318484276589936463040063465797532488995979589964118675365077117962759799747931561124205797012791453914441750425542548416828863347673516172898108914485515085496105863110973266258258327979589518992363602784345319263006875444261781437826713716220211231423475716303168972021770720026506515769131047513226497221795669696951598649370218799314745595851957186567612687000526956992276741124241860944564133025587235038392905515267600643408268391857898249486479677370519519641178978382170351235770154508619890610498266158770448773202955308955086358199299571412651105517086698718404692880800727262691178316622059362157876044997473874744915753105288111649702786646965052428412762105070359557929700037772513555064980601277071139434754476521341383397253410799826185067652390126551925162380119335389120398478388527219182296692679908208378953673242837997749754797158059076603537529584171616974757662714675433612840330469169550925114221075116748105643663717061470601727261629098090696792776888737435085314283119656873130440997003257577081822297750376030160418082677664891456173940059789353805636271421752683717327955819502545338060492043053026173728704062591207539849281625708118661697875857374520813947873611738426967000381878891055175516442840047289614558008547565790716325916853733018042305098174002218582762070172500115319112907456650540576979552005435273000650957883890844979632449738181331343381163487813545860741563967832609178107441554588062125162036772175625346714858138879874029540247031771646771268266143351922631086605562594091754788588464448735004494739726935354155824278391784699678495947523647026042011098641037819563892155101783291410376226109846193314015739851010881575634752581572949624545768614043081314549610129319716968114738460832271155185401214819192394036378598724248254641176727589114343328380821041324688574260075561757031072393201467209595424332639433510148143568597975794733863726130858221110847488714590781283150146782179213982422601467827434910099049214143503103485388474553512508166538259737706794751125723933479263254494709903945016075415755675824894544039663617997030029551389325373772632085218039060088083841677200637304288548105672472214617613540116662501035920065008168922038488552105013798790874386597206820179012510795208104032163616074986665936719499762628272480401796036310180444956296299530862589967906280339260294324411873011249202330448539618941573226982971948283259827887841943195211598687849791271100782072787225718020329332784513488350424700359762287615514186883526392351057945270106242960655029248162740013963515881229223487738979066557633265976534825401519402710308887699682331212075831501972283440039063653092428056109018517882097866548956674514979989548886828735992431054734655092022135492106771157447399632730279033284232943884167896927902028436391852524591375014833401910454781064660266899683631579308145875675327036415386862491255610261171637576448155597201222897945193233375014530976820311351521552725566400913271251143317373549073504311372867484929471312878809458338126609422859904023504698380015486972486929400597313232785886402427535142593253910539047909934539202451312561238992522997034870874763193758367718054293297091092601678551782000981189972070486671386097105925762828859201469168766521011153164735800178082172722388574234742287637818679672567221228867571934329890378310826053499334114156734359670248535232537889703844949715451999979998629801278384667272121027291890095677243944209933135806370781772872984363602856815177897900011067278109116900407497369458492240563921846006178380032883174318037599518479055431187539772126026519063070767145390741939648257778376774558992829490030788822198298203785448278541656798250101020070990335049206700238641193431331309489378991475379542543292902722462812047198272326328308297755345943799053942642026437466022260892189490610725206490335533941523920942321847514669734521822113906377679293515159760805447907411017493177712935437614060714431527897735890193935388460019021830241460673752526758318429888443575597950887650308854860605332732540977918361178235473238578620989374502357177463499346881724393714929651718544659665443038400375678863864033268809877494628865237114656106759074304224312702412477955213989556212552161605328568007427048379918594139890089260509134809978623140511129873235268778342085082942465402880910993265990987348845320693564089174659920879576335644683559692048124204320127974678132417936087544242528143670116949549401086714942532865305430758033128700831267673285591350416039723628800892598142347443640433236052761897843320988216763968504877684156722432147384069146908931534175262314037005655454479628719917594184523405989974279165776164097868554549070527605145682331635849191560380528274483951153643141954922689456929500064908313003878828959516052311620239283915729040624743235062073865287902051484407307929694981869550301599053970289962360871560609856990145426985546006502706445145140640953986209950774594432652910037923711036550675101441690858465918892263806073606819873859655862523851837615619759731188672567995254867295845723294947945701542324740912689878579745155524784189913478139054502091460144973804505941148796271194597395896870559332803191178844877434084551175112557473008885049632450980789281222442882209597979301346484400550629654741776779124801559133404130205505790467625439566825402310269170344584964654259703156907836664611268303806356551636179072895869902264800382165267365793252685165233869490165800933104020665141633894931638628427968878547928594409710010849922955887866907052519381041928101352465727097152377252108737356369314230779501390071016096355778125307785915694173916158638973919458561245099737887555483617870868384287820545827153342065059146221251911265839115655865251040378197406709475206665474626346823501042412201198699061978968526206533163298727549715308963418412739776801440561041956449716707013146334429987925308290188445080095289516539731003861769584161885809628627014672717588274917692451096319250516195712236510917125807057668030467139123892474760322709630890887166752416247184604343779983886251744004650486173218440296045726128607075024669098916619265250159163044518003423511870747825158281062479030654524689347073165926035762167406919784508108018682625707046629761410061140381978613748178812991140296418442524299522318254988021753256723874566687474438426443840401802909903090855635762959840478441786728734041265339772975815412690176499442808584456087631067039135825253182862235881186778689193784989381559406571174432892372929615046674703073923077457848528778922912774293577175035099520767087652359054668667672395611928529519331733169342512873393878941205497980669912403462780268288986655859999850419754140311847132825087327919589909122209664645050093672783037173349270777527026256606097431214537276584204473131274886950471259020520700458277356695323365935915541758381089925976066976816597945935907808796223622708415400367233997254187076529895761030201168704198141093658935025570377158658898128123532334977506284114010051023985985425131378861289708536103466791859669088744139270882256664079114689345570449647155359897994861787633181479942511904886698385078526884556721674174077047913513618666852036281744929123860172152087269242309253112432187471547724381426357546472746820018544878366015925658664680374294601524611578825420064799063315435315528720214872092897429841371027847227238479463078199905483177133632328518887244520539682037812279917292622828825486027751206503556355189563934078137323460061244581694076173141743104407598269296145571109950689612567423022592412782417879165085587942030698447788035579262986984928511139765255581420077496281178760545720365464117186721997619481126546346092288158522315249832218761007814999659908132996552882725520879350183106370650274051786098372668978306579955588998400370113491764116230139024543784746229737727132907714421265579012320789266497279888230404194876143626564939053915652465548073195532477479710616116832904765729855853244961490774019944393465575355683627073037895633080664788902050356917613914803080720679985050595261693073479237094255773733315781812026046403526359992552101246292933959409301696008641087425063484164383387536348599681988641498535761715609050970761349329341233491185615695009691914032734596444642952955733636889365305120009101252743930203782912749615438421367870682450112190587585294282684335616628878282170900113187231823904466585556447722914601240376882603251010706447022892419257684899904808620840667193168783712056970816103751513328277033954142210328956425757242523438391974391730078230187165364633509412371073323730659734296509126699793866587746698788191235344238799268260615306473448196143830601770481561609306892961692960174482514010042781527661070305301603681745124504783775540852413648250654593614031075812503933186174743839297442600292139914464925283330585127995618260500761615467754532685092411713869013432131530689656914581099766882587849153219042409939513187247690447101789155771989575655551671602232071809711569906201480759356707956760964774873077607548051592211972342742654222697812105334969260392044269839505757312591468709985339096599905765168532495524191402445323026903834025366740749228826466386323018680147782061342952791152279771291183664649405633528357329859703913729491055959282887660606996873254547527353723730612747686995245437856701852004350398112780526340676531845581118668033233073080680178093723442661035191935088094555829876925315869090636933269450863044498350855775070005757947929428846973821992787714168805151678416345788742638715324566083289115748146392296462112116390657704095390642529853814730207727859787868600981018409921750496651200575028449619764878205413089840085788905323877136052189702268677495528379820307645256278828187103620600149888692058865516638204936684752769615389820545376734831406210926032088984013666242753374333465784313321825497297956612924556297983127857922293363472743963274971620774024523786787519575050768945599367590815301395607321126945990463963270522518361368999228225531409120615803219376064294310229009606102096031179461885812664298578565719153292500895912845865949203833846793214819092174255750100515251087868359871817538595380732288655699511940663255064622511939761400825387610530662729996675239311130426778175448861808149267826629587956187637088336877156338789524801735088542157903304988924226697539534521102929244285776833369280395295360667419407234708392963527434444828154173384906809644279807434594326015307853208751890487882952682772902488779024629231875678966614203950085310960913090100547226665349821159394155176107797706510263990160668656767144559577473133853172494763391630113639643092398913374600130689132553360075296270983890859408968264616711751928350758313590772184377535866844990772425307184058254023939708358997069689544612756831640365560013652453269007961051553805446597495381702910743596950336602647039207959226634612493716091152443436039323346777837003845672875821752238068912478313074491982582654107950220539726705772151584491115725812356332952293505887607135463596441634152553133543997505509454714757891773656510020985986828904763229311846885116592119921041417832580103495155385559310955015478797855649748543480477395286898309005626011376412166688075385568718862027282626028744752838077074329472734777484107343752188457284443864701913093506903080122871834227731917847389656732396286565532537016577216740868528432285312679993580789669834361526403920193124382327948942350731421740228219704342504556325119212789912059036284899228074760731743584089510264632631783890377287370115693198622544013588280407775317821550327526527690249953611899179111441402134795125627906825132515145981338595531455086106899804875790363274146889931150076772870737027145460037247965344047284295151978676681833916942205066057915248249973177586247265126013744905848601198692399105423125523261729291767635187636422924008163404227559244573071330932467455373414068174445494041210904362853704216220628867769137861705472344047562191793984232187161963662216337627899062441118647163082501769831491903119003157311074191809912396967316356129591241811783873847819662335564538770301104535442517101391865116813234477560810582486793882440033754411375572754754163790689487280222021919324480469584165131829332315952923568909040572098011243087131700237208144738202196672847769248426739507391106131153852196060176612572212660074312463785698602970401551992623077242076501017469430940762792009477524880942432450476022048770195639165828306657493308163401978028602489530527256971840776685769118626927636235035465650081937158993091001564675476232005956306515463835338345441270831776113826596800682262279856181169694586282312576924052642452818179172884968833816246919835092561272488524507204158908324688563809866622218906132838276186640082602404114901581266036792385439295082609341945622813207541035917320890513107773316570433558519211921819064877522596924562650455102408977854894015864102671782145202650674075638553822769278335906916538678916172687171985777792678266761172437573850989434990464179045108656766382621953777021491416980637668708974263946155179475898414413723769553309961480317440871230105348295765619923528674947341283996652928640802688023078354402516862576817586784993032710730687795958482294725231729397661722779157428612520519566406866699341388032534262002318957649145724577911637799631068081784955379542456501551342672346167597563319092861692283316192141021520375278709924930258925353171039107015259789901812092768521895645914821000601614583303021197032328555292328894453637668334172246400019351222762002785446739833613527950215127615100978810925523389657928798722766907454592080740765475649360944629540344885416284236507310577911330515608409136428420813803505943037640738233218386474247319585762141059239906591448252145964229903003848489280902192081026747330558826453228920050571006101372678786526113185671509495176597646499272231341593919964073476165758267514529754210498408318489318996300073274542989838761251892781603727582708387481378893423200913419271832698911734462042612531603397950956609271566256703899160221018772894316988659903340790366103637787350807460616777324755223755578735357831585652376375530692961506218279799973435136537113091933215502823195246710626668135073519701696378520192532287441325106986329337558623555773969737237562044930671856905260086366730418922526652177008315894856991317953567575287427046657870071822074274575295628946402602252224463857462124557133384453248561026416241477171421095981882101544605848326307865666096826468300836918651989308085844292643252508699672347287657239624641948798872103762857412393378261690645825978012523723091496676292501042154621638228844289117003260300257805704617469402317292370120063718017555772245198713825056680106477256879871930582398416639912957443190749168840680177276662733631976848173870323327993332604492113364170690344710287709220345800393676239042893153207232758226082684485919056865992693789715563207629986746766881248701526022847838903278288951740003944163733289791884909120987929305570884630222974293794458545186538385216111697913824752748267466255858494723459621750383875304775441061128954437771561723453589967874964583290801682738039686682359522725283466000752666163042071620753110059230441058194062102143108659264289444825767675037046234544029671472151342897746306700167165466334531850566588140797032444683237295243176116927040122983956694850647070196418682531419176651783130952936210677590770650607157879276236915540960027868791553165192078831916942974180589835430067128807607263580296768730115660424078802267975140214167946787230634495407818875448036479742342452113462603567082059190982282777599679010117461758785081332703843457729445341353861299375980995179917545899497083462135103278455281533734140627931794727781500908352506043413672390542569270775628074538123648914063490889679657266537201230899569234541215857357708946704884583927022804693530205151328082845080708978545805874154078444429166833017700373319610171309096752562292803977608201473655843911564477954763734087894738803460284581606244853306687318900334160384843412266058230661209136107823861548739731150592393254929698758670267252826620304460741310156840562551466088980684624861112928154244160806553010043800851395966010302742231770534896237277219501911159873122977945309147454875993213960526720405315925849868306537444304923846349500674783699825508960878971537223924464113791049443780932884799275676230646169318111602520427104252587745674219673365703975404858462707093707381516932224874915728775841500364893031234845455854161743833855736832653661538639962019881414007912035374411121658039519948735142603990466743458219443913598492262604227770708633663982774186539931099049784648799582955646474859199520722878711676598497743076483580157244687652988072677094253425964457750645787647823016353635950987784773777671779108124339896303886698610357636575129084601354363508053440530492641910852016893816468889118195196530358011489021440918393619491264667675182045881026371744963804397512059790138600886820237445443648621931867147246976697370153010291975699280658166340628545855824461277327212658187883978770871074965732904942807750542271490733717087375904110511266061678425219610552118816242702781758311757276377835450608599948050498729481127463464579824309181425932120461533847981687241993509560010270663507454958101594827522097747334467266395148471873756857545108599967273652226998635958672108803768123793125863198336552988855965037421471964344899263136726120919088354390992598771253416663494841871470782531413404287207965707625396691810325500256701857153906188046125268946247817842596169367190712612174944073010275210953897753023565700255270279344099068378067961798327737161679022385046309274254072008174398714917159707010511656784715641413264689638609038696731962415389589310912754993959391644995085279238115475021664365903134920115976449055823631473316401968259818167466468891266105911204926358212528996332836735558706465191227087998919477117886523083308631609471396166923967702248990646998742407797181519938099188440161887121358592576659438009203638397150981411727839772656085521361671953381198917897449380678656669636001473952456655919810916971005348756863886700348411078510876553112187623415855296872824980555097541473684867601274287562864684365509943459423308620055320072316516686161083122143113690324861874247462716492840116982462118706088683409648260519238751113916020781583364243040129667483762672418229688736982663168971457656981540333139062557293782444036091519219920982452520099904386476835182869705886581828093792745753671521578447113985456297853302096685659954259738639875139112305294068763799234936164487827494298359263910359059668644934801056369535714124122118076031221317187134841055146196067781559388254900905963784299609656714409177948605420876905259791934335536906896115420351981182238198960808775384036711470247655145046368601681648805727036231580241077749405622607177624002074104756987484803117169880434387353248681545759522803955713386465086231482854718779295938655858653663578629873633013899792194101441200781833685948492045293259209665739847516985658993151995339048516913772707757279559519737532065987122450811163152222510592807174383820880938834769130473367997326203899159541908648400140245810405624241641124469743277757494043522738770816754522240320695876907671682133405289296677547345486898121499565986620859492565535362497943146392404564053697247777767139061924331329073388076516335108561054812718505475506432924083976454149478463373137315050581112782712809454018017788548950177167890422956832194117552277403493043955576868410929623415623605686577113304204043594471341212594475106759777093474280846106053926482869582821363021073240375767812845861262097398388833500906287266042998537297502842229785554214791440020961892988261085156715215427281383593507523238411753320313088202974297784993571798504613016160513618764725511936109153254404128888476954250708883905935576191702071434202906271051764677615398861068093186674568877389316711210791845623347136021172206621283842070164801713871083568661334720396229330984463716254722582969012135015497627962200776252001425141253827278122700746840727690283444988642078635169419819195562513797467032117459259350192099494479115993987077781674069329548034783029495778841204621068305813074513777633997591760158994151094642519867516180896261931441063130251342164711504165941696559029722808148317370073068089268499097576161009451837773838437191309532151209908801856003325154290424009290932815053561444797782398152654661991625076830400022327884662391828199041072379294338858089277584561735358837479068602072468377303103238713270398679142591016879857679320743471900593193237096086512671309679412708202800152473245079231454759146289154354491659502828889576317507257112117675307865816831902043740673076298401608750990940638558095778696992800779613468455690524152664031060250457800843225988327994055728757871131414145499193572887063295001556978750466891858100599820126171802316838405354367377294222061816789734147711726908988948386690438356503077351078924606297126854741077837020303478371627332470740274122835686895703064566813687408216494843769490308505267508005121361966009247394901947426147045870248372855477930141863227265252953281360509393066640086177682112385394114536048369031938977034367135577490712674449593523029461488781544866634176769080927715482240714110852521726033722417153147215315549425999662345391570966705761188538814606421653294840240584060429410598102511883449786169970004316880414631944890289458915726673144219759679629650053002704823013659177661555198040701410716152022266733948486166769455768854561826782189359891934254895341044101165920094953200460714707305768528833246086461140611607972709863485379276427459399484423640192532104269729795472412197635414753640435254956431698776310716498092989057241380938267509476023435711611605978474960004690229678335835179603594393974694833676970040291204362281033355717248551135839373441329941263120140362274409507912388666219544063560126318243245669298468998722715243470501613296996145291267749136919076550488627335590456871044993865183541881707369563565232771798847637990351644420089489458956268644499480282074480442366535052795648974157241927757314804862553368077734221661971172872656950539703305554208716577978628965673851181450469714576757252747921703735652494275756405994383480507814323615487053130538243539315126146894271460397161075588738900225087915223611217402760509363641341344620659972165309080071252141796260421844226844217625692352986856726331701829443814547463922574339866511181491091149517526487428271408131714526960007589963854900016990243633397911587377673108259775087648985412450077101281540708115851591119992688010411919137918885579554280615818404939652659271825451813437506385838224466441706170997302187776900533208963166912844345369948009855980600640025100547178911399958150391093187081503951755993751335802655183626889904032058883858257835762687364232137911274878329117469050065648831828684056751593036942113596279164325549419883619962282496544201876127283671166559962190013655297582538023027797226643723077915670202649032808282369671085449166858888770341859870428248416002468719644004781130706038093489839069529927733074231676408919856980415622610515556211643519887050940250991053667795111987536305380259620007402591363356320365363204425124879211627077529682451349316683467414611817870110302387402788535601225635692925317416676992620733380275649073140192027588013038264701571845483067668481335428613671506446626048542666483121465332043134045439514518087166231253183582655807482337535868334712345000920985542244371889542419422581443093492143040749414284496657363323162176424448614779864415366128288510941505310902319031337270867580388705049471724328628010229484107251079219961892598292926771122042085297724009148636466757152504313256266641315879728749031656595468537749560800085668005583794419780291656172893697348053176788364797284349874906376886746137002964735113623431021785431727365828583961872633016312046120119894716046247953959672019171942485059689481186020791151804265702517949409336814976947721932775164147613593962490649957786706760299746794206596319165598573986956184601244939744409551195087082507552402986320700412562408541365180826669383316823508184333486933696141081266191205747842356352235099493556045285856665010579047870081362217473389910451117773083616025596190327700311242301589683252105481898707194826878604269472451182948384222784137497459051290058485480720778291098905681237397331211708252973503213100029477009614333619527620427641173321591105406497829391278861954145092257449403248077618142136656727097605194451214428767392042149528300603481087321528844059666201075657192385944796524964066900201422523109487666149443751177416339936176874791388539260914288071507659857662763854416224066100010344256078920121666735451965394187436975419838750419804087976744590842550799398114295195785146815923395551980233970276645873968211359037215983412688159220493959372449808670827613450009623202443477325117737073193790658152599483010723181841606414793387800710112488203003327722313287995981343259928039020498690516722721998694793914485948514591013321548943098488195981846012517891640609648679015501314437033781110751504574194626175753956984763832070084513360855148257823778787349391999132659591146186892852019789537103273217201463692124332312122395752154815769579462797331040618745350425366399726827520194179222009023567485725802718200775076370941641692189232605879975434777958259943167503412024985265698652274049741027832392025523476795237018895747277868493105670132268785350933814723151691595196291157761149882216758988901272559440785744513690344257856129162673419250544704348183867070341017852368996914274913075508726479763401670852835466540115134703766863653809297373460863383335341867239883396358045969925790473961491922061294924727482952534822379457448729752753819344660212732246595546350493946446543363128363113977452917529081192204645325548074245330230516919395649638807331210324028314329239231235269743739642976265846205117989827310141544117165817724262376830899646821887379936794117209019501453718840215473345076574960651759397954958849199130767527217179192323065994473014843527813523113145930905218003420306960734836650253909098584230475554722639769301489375110854502038445765606356380722580534716940454676878373107951747545540085657163922170679386382989245083171737766773827444545313330751858339418348116834905702201609280712268023556795246532047030063146744160762846925530293995421437407662018054960884516735146778584518044536967627840635958633064918643649609012415023055074363175121740275411064866462709176223377661163093936982740500612949650942783152483516601022522652052979777232057809642401376756382285297054111700510792697966966059734845534537912205733741547034037938905256892146605397530982104075148991891348944841894014717675700713796542399995657159337177910566593226110496248237376606630356097539268853493721550644983914394921712997544310530633264104032107599489061861580353880118390868036986720624561983729916501033334202259765538804196698852790341270674538599201268536217107720076865295321989880593383301555390689550609475833607655805018618192711842740650489413947410954550987702262744422471123217846527030085377950476551370958991880931930871307915067963017276971552517583801883118516485694000507474720064915088057846899644649670303865303197476977640759436587915914957455797239103768972588292356507059221153802466890044538701786047477896733678216260532402353886163173390586417958960791944411020884390903925483819943695105922155173955896951753271710829723997784993836273104770727247093969160817369148541118483460663014612008333699659563681564323027561336397208863777951505232390517483210275563081655662950434324655998522126355551416186861032835972640452433019149347288399002440968289646759782094717532707385308790062328731581134047393746719714324346594555913673442189854963947677138021852658747261515703035002021556299315174222112084914920703080171986845328210860289218028979520134017258577852993212141358039926978597170127283813366820286101267437465047298126289983804099342514490089473966496862128399249350779792920112606468687697654961605606671553111774493270312426024890625865361144841106456735364453026216270701071360874096131814315944645261082506267972455254057548166840915494479120982496021721054846943880731366605458759427950979289433626374560696829597109894906686672317093950585209351531494013024110389331886069278310291124273274263155537893531300767886943067245849998770775799632432664787316666447067218818582519241271641404714478164922086458089329838014572367927412190533707916771955532579331638767301689320635811140193503206620653234664439191044571199157143132295495140152821447418915051780669871206103092430404691724287432960159701221944669072733203382532521122740392638602224743552314250794996504599647174673838500284601474462913058170567332425888447514091926607137926656255083355835957647415507723111537897800727402516645569604404801366980151294691732440168032396053824127288999955249886965742168992386895875176381444805059861165393284835289662161638305370114486849106933255665949742180141182567633315572458553801733194268441120104188096498667791859406200671279434481634033901801604763667327981992360841624438878933255758088888823909727655745063815916126569950048439022842566136055678452344831889213899619777249697125081423689472693803705177243293985424304121128996549661465803939389694680383033085081998748284885145070878754355798284651133994964853119910360898056965892303761524737100324989857240295744148380690434695243124924349650784325882982107196686560328136920668157095445357824433752931110227872369648371446701574746655574405552545507343220142877672128699906853085558493124686437312991697871101590047890876765445189167553012458700926228177246685684117153628709438917418697539514746137862332871377790368269958709363040441764470557099581935407376109338931536771811855248037287500758296557449019920439294432083323795759441491005176933697372258054656423151296619282962521355439965970168992676181025517619183822160448149030576269862384935672695586670655833093376696588367247691263562033121354015888146816049382820920447877395706084584323150528589708564934750056613698807518066193564154319416313495898477782201779722530321918590552900771646267634003532692412796244118816998446545484729443982677872844563498720921890684892635291698428776563572283904907081191758957670663869694273340639483131725336551971546552978646433583919731087384250169259660996152797923048405185952382350696710240703205382090901979794910550442364977629721097237098892582983807332780973951212258473104771885338923241811185918024282212438694678476885939254033113203402477384002043592625615420747549929297797167142943043030422341898018116982178212032587665732786488523908398347017454575667967014448843043344392529397170279570344763484672684776347826799884853974474990632748931401928844783493114788954289142129883808954117347432365164896452363086171922984250929496474764301673324545590862927354087576513692130754378000545894801900732761776147772255150783881026089410253428731114166776139969857082192680436167679906649852737872711831710393835893515074309638508774203379785351294334742784063817854455319864172862763912400102219349206869928470823147090509421200543132785195578893571464422693392553557335243625296282333429022821593467787432479775896594258436652207739138710139169667859525312867670835620157324537090667568072973464696533255435905570216412179977734806326014999538295348643321512190432095154414232941273972252222060215038903861081508889461118358215307857593336125088528351089866512157523752018903445984091331255397054997417909389886604517984732024413822853684186170825823164935243597873564314357106148967249126561831725948838236242172603049235767434237981429295364112134514394359967476520604262930038942079557073157255647368369140941866080581230319775835231942220464304974374102480545963540898449560945752933141672602311510114813047654256550093996814374891347275574221547694308068128938294692365285522512673563566129152192309433752572099554685372486011823397529324668762914110538019709802666453428731871994911810935796895979427601211247629883441311720875658936080020751972563653734383875293956466288188769356631315153952753784824795634146708210643204360915697305040433742111721242153756281134010343285763582573956027354258562257753429338932675836032484578439030695272238344523361694960856919892364596901792811138053309025104227206117877560684906095728765044878997074158291412300524808022739203028783119024420510202114245881002725056821324614563464939553158590880321958104268925522101560702763738386650537646323414873173368434871365219143295619093079354551506721988435472019690525041825348432574444267566898072728311220447201676909663779725968177190413047275579186205553454469752701268470823606322654033371278405767401979846360670026819654941824245481645787559098745042684469446108434315783637732077669842049857156743638255524450904342651945496405301792984311076764983643921665597739996289495992812449145647350531034208061643813272629599201412051793221403513280143219551759753624325881095576577714235448973627701237300283057797529478122897698235607831223393518258324220107221833788886467178032065029493929311262331619841224947782594880725280034955072785386760940242036016393798584469203378282017496500113825000316240487077311344369677067826426852642982926584725218894030974749886279032768460250813284493684389110405445640591680630423217886594369035040368118843458160064535582849467661661005686443759887264284213759381611815455284614346540916184660625707335452964598072612102998104561151653058269048417621662656319891964505640807177168312727654891468255035176405223279022996654314634357523450458781282523577488830110087513046575286067689476355431270162931332979806243099283830060961136175071013482984661293859898889327214857633157050406832462689009465058512761476766800962661556335663663356994583658667642382219465693701928143162549327540183865150562759483309541884570348934592292126826291263518524762809212432315655029450757299281744064625762692005247458675511864974495011838025870249072205856388614513097986660167417172969384136943670207284090312542258029261931688063097699683369683686791136775337242184063062902668710473283790457684399892868284888382145017154074283381782407978320077710704572246654280139053293277524194590549295848110693592057899078035636844281910004116430547602707077839657716550338103410922824031444952952061857173703808556095550110863828374450449947988068827928757132594210781409541104883778899943981612099980386366164944884265972997550278943366648989715489540198267410581268550971944098291638422406411583681817046310761445514210618134412979328815294800278784676323417177593761259574771360033171060437885009420043239112962269017081135969278168141304530989384492427232234079206841019450177521586609234230364102983495905847018469735021888495692422043598644414752596770884018598970248057055242998041218486914698662402530017147844163068317170391974717560011093123942069253821074446330672292897845900156924552704952864279846666322068664517578351443686408097001893364732229233926975272690794805405847898896678225415341205858524294888447722425726655387406444748111417252296048954071190426022172144523407085593779959536011745031970738465582148487086278855707871302263466020165711851687693880296833234748004866903090191124026080644914944339037281128853361888544981403768984329756196584298495709042334947718316446545412297214532072442856576160719334470548350104156492186394886060977292857893112901815831550638664065221639056421250642925778830401548400979995416709282358613257213856274911575262528748407957389284705269626316939920940715923033933489597818367553393360033220380761078915716512539657631094621315155705726792047680665276490549909045583207760964777316533010608444808699807384439618676445955660081866671344283628049723064697016841248192404095059845674928484594939923375515964945402166480069697132800934711812931007530494341471041632660892685177440538658861390482539790297880302312690565651650579627901909984150663413612516085948458098037504332838060037025326027667236685078883645707467978189461234262870055964946891993766265277088147490858319957844576123981192187955945537172976949668068094583467757466973465463412675755357728023617746665687673372758103829726734651347945775299071407200625008756054347244262089887393351371239729074853151599593536588308254336586217427957597418644818437971794980484765178327048299564148831261710073449195566055942333840754869158699015045865101030245305380342267043102387637132347860252286132706750614454041649337147180935076295148232462222116530765169168872215481138994953256750798541150209376129393696617521440486147952618507489900550974431393601677348966349991221674042089295194154544252078615147700138121582753754723064268058451755629701841303854900962315478318682974754693040945309812670531576498623223669781241180575669084371304706008841627739148505479036231105350152208794132853002930229606947660921072787712106062681668423980828941918140677212368338616315224043092543993396357106987213577400606934049929257713508227932562247222932956313409744293897590192478984632192166213967702834832278229748453644496299197295588048560337835894111626260422313597340876299505234821963902146625315182944439519796556869863548957476293091967413146109231716257691507915701915921498206693073344682823849442146038461566477255797280425007878829501545685523144950558545254889491130104230148302496342149809225393729480506510641149409696530504119494465163919371935978753043611520657800931548804757068057006633385161448947532442827686561502534320785942326647078958849265955790543288446622135751310272573744567935238486188225898612422640354928168607951533410949911046298580456565187685358535921053561861356119536969410616063862583568318979478949275406228083568222689923382444877488038659241282664350043399529515787888632007944858984643129519409422918781802476495041520292216342522262001060855271519129522321860873599363914338587376197063177472707218399808112448730048184270015789227136297915233820574569211582612508171034228945464017488448495138673268696082698488561009474656809137119294957568654765143474969566750628947612843731126678864481785875558624672702811410439905374773541702467979557320188946801466053101826426383244731943968066224731200537141402531581898349768853253444169639367575121204006299376453084498011295935451359691261063237448595505930909253807920826700439159344461281131955737438071832355991819014655875039668636727430558217600914394382700997680702820674256000541011535375087278418049050573541490301576716128201292549376671636101199975549229338853890096818085958548999220972995466181544362365347700018351297614799947002582459574424994886066120406056411625909044730170967741757709192450346009238305413544807164945685549057048094909757225736017506734826695350385504813683682533021702783958778604177218963039911230984001288155665834796817738911812866545342550363234604062602199563024149799786519509780850204481080398394636682998745432339555180237225220892734572714104189242411674736413021613153433933790010586227587033262011234067585018629145532539662353160202294357251195779375713634740355903553198162396485687658087653406121534438186103824838382257209790073347065394857186259174576058179757474518024746249575145209827782979705768516747657458001069466681882975090573961447219621500043040253452382831432627989490939132343151797685772526353768218528408036667283395232975096911606849714995528234703599227759323052734979686907477297255385978614610841503635541812313758470606474328209934599027360248584347884591518920397120259363119503846324600761052795442932415286040827933346008680288203330739465525738913821425079134605607849097430501296711989519681453845174647262734381815226774974736473392212237446359711937186817055684267532756820961185897399537284105638932787480002152713540640906722134745469480632949019189589628536386953981933575228643144117785419581125742466315339401051755510092102013076563032312115033289753205959211982500082407188105301382992643379969543785758994405953402965438801802721725275282234079777489629548773985317666604354150777513146141520388974738847842536509412163481713595722552021450517922051581259675883788676220188088319449370928016385001131934772800698250814203031644006994898634251468138178232119354263140558586619988700672789777577197337415714138986933502676583284388896924522748447404536506255451384858836858759861098264790804600717346814703924719911839167727097261875839500666428806876105045829794655134702083019261579091475364217499909439774362777232583876804858256120595621733142858093879301223271360510316459735693008395091812151940879642115949527178645438176666733850248919945488151778418926023531059314023024663813722180602962995493917907846052049241196168381840483169796541748394505538256166946840644268940934270284064563367930588985793124544140609713973076036146487139295595688844495138032322746935606950868604651238373320666715350517549365764415075987777856382885984499885548938264080497133393677135939420621804052389166399260536521108738623408271145763461894069567325876768679179397424374908100395639599231211862781201617216248644641294437789568584091964653062808597261273196919460319466680923667460215992493543567805629317158267989405491294812758751071191168155803302583696870803345520157048744666916429789073096197610644043396908659530617781295872557919910118293429562516009154627210246640402966125036142768785891776480850927374139160353978678704003556244159862133250543965380663079152388225985120784149363826073609021526983077888609848711156199282066856604042582385991225039388337866336844423692205728411029904819491248166364057492978760087939543288574756554199993062687842496119630336515354454381691943808213333775215213686810264644403342569430128159783675898934933747399852955443817535783130300290432980836878046312857381565187048981019314818818205453777134540046877216728138052617667921244616897446753417095627725283485883913600976578060461694164644820058532811070136387470538070074000729424353784138447715325835216604355669254064955249262530358633610069622144359271671663748135798586694856346528113519647074046990563514564553622553990374698805339844802552676713357676132991292008345619246932742222816758318215541555069270119259828954864547651854709128802471079043900709643440196551689764756156395650866891663015844608416204447422605834089206958224749621664237653414964837331003930142506770893150834527354415042673623162554572340102724524872641103491683770271684029182173877616323120870863427848574616942250015734011980812863119860946983494080754449960185321406379370847614849929933021791774247828067469267271045983142381459812373576699633963254245986812006785016367196823736846439570611857941812062132855979607830504339935157164648564179089391604840004291189731541426082232341156346464046791687744786520356466055638159929022617176372730204061338166412761765860833623209545360953571604310711142248039673775776482981247573864561215871858700418302790311488062300147250772173701647301156008394723985849038590773156375231231112345807093315635641248210387352129427623327441651259970481360701162612995178400592196480231195760723331781253154644806085343039796691127934118339513538180567834343896080122604477479398803120960098968904707238972198678871566820569587598108140923145444742131615565815083873557476214870729456133417957722149586402692204440865186591523439785388912573475046384424166117687094378396766342850414844317150783068240275044309623684571793871247681918488477980692113178440613406396907109503640248498292312838429160834869265663730511007837114674688255110190771530141368944066007470547852219977664522049110376709303000643469848709551726218048357362701342956855334386864759279243090196847402174402347607116517019504706883288250062616198033432219287196651119994122347958100623541520764080535164361813269985444917394400681405218880715781300188414885475694018512869280492951568403278064881790067520982571853562856941157438065184732256052730553446260978370366721291155101261728902817379985597881332172025308575826061513003298609724972991176406216138664993540396816883616572120675153237777278109554770671531280693022933169178462950935325286477394790270415620331102237298838847559265509730647133430623958650284065675337675629722842105535909637716426199542695187727178823049184431043586596995854798841285913145830825036808718119411428258554270766872416132939503809419637450952073131570680521920487568915438501570026897111577042394933118606994069121281451636842995150502377184359209463009724518392979488608940427098272421087525052759254038492074247736980405584595377570791447157279673412351206570437208174380812006766526775541134093716797610316470233632047369887316412733685354880318167425477587841556492049135323048826906212501520026305079040826108464024220809698231536677012764499745175553692249350741200355477692573208939899088429856107852686147572150935568547836953970725420674361639395477146545279606143756656055797543725099798612817556114768451214761882985342547771391740452735709471860468858641856606971740146162732681961676584573709353925901514783239604351906634866016548130787065089927520553251520881913400818923206899965345628143767415867762306801746617807416802720818660040612026366486804033452004890372785635001767576113163050670588119311623579587765803479028935393811565193841311357242176430267010395789872916303687552663172837473397006043864957575201167300766607101440614686364511471548258776609862241951335950016113337827190128151846637578160940672695479649389953690896674803024232495420315230510624180909901125715099200351660969735500299494248437604460329854394266671900289539828276477877774718727921139272985289218890400111140837501871781693993647070428872479305546751936200238392056249937889491487866075519609969586776000968635025020599624777058686600398755412182538079423834386668073629634505439352266464046300786501355025744662714757113560846375340753871721971012156970093255856104370391657617192200714121229628297561914379534458200336918058653355544017867062810728370747180736516264195018081912379889254281415522208531645350820485812016135642112869242304260377499369586745397405452827055552880323741207224507578388244462506370558299354431116975211474952863494484032284335568636641281460527491062714098943108383892887062601591817004401979517871125938331416010393833913881753974813342708756365780904428183035050153891391924249822888406795460013830961492744439537751310477494838591476321923266079158285152569384869123547746635760345041763221994398035166295843505897934828937865301724789039352038652164257654537401169536228922903346072710493475072083314251898021511513202106344422830650730096897441489014136704779853881787720426213809927684169523118619521567080574183144578618685493667083541416287582696647886288984145723779657192652984714968977102624102045464200303063916769685903185514362497556647124140108158665150134182107959256860027851991910181803827636437713773516750172795034432989648636615179695460239741351964470832201580444502734872129929656392510654022640299761853637734356410907387087564632257876066870822049601163815127315402426608281675546093808623347107859484333942864820781788690463487872932470649471236579721067796787134627539375150684265663787547896704789237427787033694135850312799556223162644971721144283330347367782778313559486213596483412461730610162932194662855637953040573956602141603615200831904377892059246803768635580017522246622851932734367492432377083492671748838017602068721213790920368267837892798547387486128085633258165006246597699346004455134953334880532445352757030752591387121047197268795315213091262071893838490295165921211568400889764770146668853848114330362159131551403670586452141856403624760441326891290492875343694028363780947233473997288305857628964966999482703383816955073619812228833271473986216676572581736173456126268381609540600581745171669201084784108167340865137879982978124519770327590732013329612175927764312116195040487301563769325563348866432882247440608365770517616929748518872716404631254709562979451768895274668653090817992347813612692128831179691454921013709143326817425141586934218600999078274482658817646362175506413970749942520748310127758104313209162574820168745258304234909958388138641171735418500185170941653737917149349562658819372879249343737095974973884092291395732320619739380002415058219289056366596515902531593159658542264861696127497847888249886368440459505971496509312356254085603868078303946517276097564856414481941744658012450224593807214963812633540044809829721108770328564825545164741650430639727052672833732285541493750386290138520738601028514315413832919646291306890618589248784105864195699355837861137619401498849315910901042856260295950205884286064296573280751982722089253817088566468949280609104972531754672823135412907761977654189559452032754988603149320071135840805410491743595043049506544134005593014760230550650369701653493197630237605173761137602055373199853629465906659456518778971780133426173454319318530479757576595686511960900757216930804619717903883227058221453094761837930412542042070669691255569842562456804043300330270748828780164734281670310938815425561802711074719359122927148455249178244700592328251821805854449266927139513437264748613120055725708985881721693892114608065843839724883776856114304922399341791147230771391493905849085334302587734377876663929339366848841463105949155549799783565149486461148262317233661206130406989945001015839612498777649973043585552760843338381302646305589583331737589667395015922865814099253987841259387598766053953114637613227325378492430323767545593050477876368777912770445743587498429751760597293949473801080826732656220684166569348381499008756419786196321683296515745760378903731275224561532823158641416951802739992921318611589676633796146350575502251306759022423765781623677371522258289241825704194524415420980155454309742652455742039320386697393068910310080037996140007985481155449020969960913220974310083325331195844292109176433955964774229791123423011566377237370355888267774117049567675979333036928068528621949258571673044748168757840965466541730949058999046114617334365104250649287446335478709178048549842899234880934410739687560784016473842107829853492623821062900019425086632190002755678816580446661072756600745108233921477170329157980490783704656442686675784728487557960323952438734387890569573183603195151494463168967750362288956832260095116370831185231058710495505287930306147270319082912720074859151541681527827313487073401354410742339835825601313627547380080505865832414754829914346006925368126675731891929718665126105369905778194859094813509236479680987894423501318471492616391603603972018709344799773579982012102456689139750502140085474420075892880812543739874625718294513325099094309495218966081801949185933527102830425848462941381256000115131917035876891992109555958215840882464447546051835013657686689671168839308634532593178831623759409710318896226651194521708548622949653153461386830202578203810880348610928271830954784051350395958868151326564824090692178337162241674292623126399598507939759689468643709232473586481590607685400086866844635767684195980343224767565591923629589319390618390809821797501345615789900081363541766496053046144854723414427788907936731229984498320873905199197549955309580427759189291915198315621845066861905905763165392949265876104524696152758130598301854665485646322979896483762137829078760038739249497441170169510261794192660137854968190839099499127107056928814197603548158943987899579423017438783339399591168270374985882080592739840066903886644576822426928131620733545636872350266168585245573925796134840046946997018455464261672397313007966589783322578680386506691814164254063387093158205342945826335955907631164669023179676242973764359730029508682026101891362231037636153462548697460148973922249372948995523030176585811610110501191540163393431920186046149269425209080432738200504407714470667561098809433838614588992131590848640046269931598047909449227376254527136245158416398852905665553556556270305744333933379514671707111422007763986336735608956293702320171411612974150730173566815788239752892505180304261209050740782647782890401063219490592614994061673350337078269445147068866578953968149507656403957572479463486531841995838923859403236391749029107471036758910897797038036951064604808295354518388660779630805110747131772989914330279497794841748112260504919495565049084949654493696860362249051916650879772614500555900340186661717634186838046900857617917643300282546278125317449390272924750743234862622339976109873377926955502725190697799552091586488815434887064719617946433214744139128450661579546532697892224222220747089240376808385380330475233130976671806031827690180135816390469040540184127249150582072179338635351947257575743132576045242165702083892292453994626452539041049640292322212373500751013107833429498994663953575700333378812018712215336883478913734249809198419809072262508484037549312190361753462193528455054874242598851487219915361168467764795900935340585950384370072880447654308857908315284418532445307354982419553813653816533928616321764135770125646726709776462912358939419137802998743214812295968032511126294145914546997452745727424669112100469662587414112824558849452135212204477735287910426288943719818222275260422429888781680885670876288186724776872959001569279246311425126329207508931411645580462874259477915512484318244630260435036483498151489583677346644743563670368434338513134681854376699737815841228129929722229018028038876868863695421993700729550941174732436286681576034239923228654154054716993038952126385861087086802968246943815939510867881710581661871463220519620955784371799354574180976237214203563566522543410657411663791292935121161206952452981924630011706132916481308678942431215008068560974419021896694551890120871234191313586288398255733509435450513994018476116195640142418478208948502650484225692693139693052201917655660579978839857790848665882504808523263522393254255648790696169540761346218368879057572439773495339699522908609180176925756438437886839101575831542637223879843353052877592710927027779377912644096946183978055906818697169471941100529433296267522373539277904749204943970744336305044902849551118310221245087158235878626036786942193575802116088284186229880492668480712810885829324934719816197962333087636388807549480709058103601702246242208213203657024256657127610597511274332118794317656504417115489648471698436180424277042235548624560569860346283725946987577248845479867615060815004117194290563796632369487013888751221307738850583568057708487771704230223349711985247093620102647874749131048610169745352958174382317701663322113783071366548787332731420379134058017358666614916690080443673113126782137721384777405149169463518751239786766880014321992330170020794437858659682340306634582579676078574587412698095672569352049734351462875872866561730339746584470976682496735831683332465340622616289609865548229773223810439214083984018122490606243995851512958595844531186892977029580392109837022867735405862451209375768260643518192835996906682798172374433098979008941747067019225687333124446910709486557550175063694239264441089643326960850661617828484469267110719004711037493362380431876758496725503103217897908882492617880612060657020481337319942370338292681539516519547065500310650419812612766350526152632410711776285925304915554586280256588748044933440042421182676675067325194793685431175125454906518910885276901117261440002404539189369317921092873120961773459659180948894022293027585860522817236465289191099813581061364752279050576758635069942501075390541610863073152286085598488672117427712239313975171844235398332419680813382852895918705837683185101915720259731151422318650633918900686604298961862168100597395621832994207845793285868166424119528481751239587684208909305767933728169498795070387241516663433587886891601617040868198818051704255971791848401319779811769818749308111029802964195982480818125870658633442546963535646576293358509132530555775877440048710015619440871565729417202506463933860350906365031433831549130919192058670498181971748704379927372037843228038832186972263784133132403177910617869074106436834095636546649935059416729294715909344298351264571023791395575443384925798987319891684359020252051163979408337473172168280222918257191931060953734304032953338497258625724453425228798418069041384399905852321338584302293719908140935251862535546017061190456566112922737289334696655881731278909123032174209729859957322439737140017476568687131498805226834072314703173590626485209804993992123736452315583429723744834619316772531294429834981602494898979929613218909771847848445506319460625341623337707848794696749529083990651239069877075085569794789907511492108710912155441837485873844625383203492851875779259156486017325912229520406299661198804158555518500722797492530124441693539625722413949479576583177386630663694644588628413949777082848682136239873446215554965404894292166267543368342710387728613937526548608306724856671708585162646594623943092319200765114150317216587489453707807352339430967684312717110062635685403010615478500842951753769480916293710215691274331901076560551417529492131614282042569635945612184550287962981522606803678884155116177906905498071535521541676085609877781908416957992460598271562066621339591974389454037654176062992596274796221076022227047839602825079702679910066315413410747724495714148933345112321533298418421877460750345307882330428774279615626155684043728385090738660803082989914146151200807290459657574184271042829781714375335271494831631176610973733849435006925070151212834918103293318287333971637106007911150302439116497205086883104127823731565293905513278486770836784904252027603817244109148723427979069191169533301631104527669997520496248682066834265935541024038194198931643829548531013996329777040823408086440956174201139468655261548044753425141070605328799448681325421047636401564691431660253378849072335806829101854336571398354217031848095037404081109241139919315839288931805732258357734928659005913093358907065694968359543498379599023203665918914866871181501634146459852814544616170831031089876514923285944722070394812593937842521171404038500977734570855208542393699416527537510408511361791850735867417589007483356975332703180043100343133520649574486927492710837539205440176520535358465413957003753358780906051021511932040529075822259283898539938799226517721479014051915557813846460859893660427172788326193762225942301749763944010890969944261230619528616083085897824275523732643126485726005499987923073600923441929827479083688164031855653647995867568407822440677214233746238041668581709618375443354709691764358229724479217145179623505765393515856187269092430569688573421525517369947895512291715595445317005353396247494897280376491532924168491936905421199952695513810481747601322084386127981121168957112256425996503369526049377524100569533380637062186863335880068678343795889659560716533575197517549807803438433075507429528832198034488975404504095208070008241216304571303111333836399373274979100301622978165545333096313821790415397805215217113987775608090927429627783417402673769908934787124243935767169021073651948901519148828715084987555458478366813167339279019981815087098493597104664368598142079892443083514778368102786661180066903037492892907915022066723194060234348668391520431994094985932378161197310276494288309393151621128295060048251223025277858641265703604548995427788847054609630257063957695663419858242264423027388511506625335487113038575232099976417745096851132680422558554258209156746983016010197871273163225158008176784583690014663995411214824656646250454557052589653512622269596650727102111446532689405804346155803447088321864788576151103986367207171103092000447734444911603232192025494899557067743297312109606818466261531146655290060296185391368976454180746532706515846366418479456427141476140276652411711385028073706379746739643661796011845994059373273321242368793706286147208616026594486256174820945434640446534008298491232517470154916587994540028984700528930360500892827157063908906863697819563336024974836147260817233617731367576807398354607444131227711326489460673396224808996315365302273601266752464964736964576338403674325345851760621442116335375250410755587052553777139039755593503471291475139813701476006638029980740277234348643239985529813502461950010909379813130872253115124068945485156035835406490663583494905889241456369954495402222852553997162393317674563250058354144601303920204812329414027234009080022622247305106026882599570550487998306053781744898246422015685764021833707359954609392481244434464919501155813188583624059098401816947491495046062331498805209864058260851702459554403263120427778632773584576756715213992776544289688871834683028570622716647660358483575705849320651593369945175504894273699829357321544197967410609177616726017385392656416621077105555592495833474574148217157620889916548014325400576420268771912927755732567795282440132906688471575192579047219588585009888084610960828156404496505839634274606963200714305632889173127113694574225675376673003805889951317302545463058504688524813783139263352053281909416364333524088473354209623056768670351856066500688724734705046324407866303331475256344804258963362801165155862673898279961753676872417028783961494307465115983515926419322422970984237497795937830997967411498612429666841801455145075670397364352355467541483731420198449003416492713162099786671613213346909731953095499768044427919669006917715901568013690280933031881484181267186434455672534005204676359823321232340578067739435937804763451489241814765831985335268195738597111287538621225095224155780489615399564753500315176180803511412799895058303280466793093911779646039630415331993279102018359589898978160815444202126445495534171364479244634801367256229006990235368229332892566343143647282182550482937167312712938358754976182848169205658148072007017068342512463449733643164567474992591648438119934280841029071678487956315491051491719116721446412022900929547458808080243928087269667598074114223591788004075557156103808422110404865376620940998888029219325329013173213506922346440511454876962331545898905447578580273595445391018815708156071110034997743747692640262832080270167305162035193832498484601636436093303491558025932002427287757325393314232085607138871282673474489354166992245455355877256650711801281847054552190003530604263402116844547720922415167325373030835769790410758626019307155144092376893536068239631052838288789098378953777490316062979750823024042558126381096567007062638375128803271408116248968583147043259232356264386003493086211454474836676209036140407214845984143362253363976721021600989111473867733515851004599746375243329338119686335249912217491778787597784772381681274890598445837307738101316294137352618765780525494543457327322445683381452386705616576016383304243800171028849277631029299398150984205083235306202438755846208816281295172331494690439789643807871674460327609191705879218199910496879950460675317877780280657431465178030050344385651011550667610007498390590099779422127409146939604571540617216123423057988873657403371193890557602815781755431951671475931680419463550540582951492459767918804515889856852937658727423302097181480898004286438115984071749412545408202144801493496225222391176731824397867321952967024027595348239432267272886119170538492338994184171116939360543494345930108385471666479539352206208766240098349592730858238275118388991494502417555428661743926569715941485902979745521709011948973512451164519686222483862557231042694141742995543675635242876325592436220144830104319412474148640430399249108617856670356586378788359970065538083090786396828195656803553562031448298861982026593774718361941708804735731404044139518775232054934875562967429282174148826249742642577360142956072967423106062952607185463764146242547298891858609549691374872044372306093950202154040955563590089561416962138047931350395483010174652542730603091719963204339974563086579516285306036262977439338936085635697617138586214359175626256544593563619037006809495308318335067038437566695343160971670759240752990087854142972667963092854869819478928687888131598719499249999395405540138413407783724684205673609496048521658549330155995159766066259211121581306199518617048001009221068782005537172131439116829970009842552775339385848696545504917526206932190344843979614493630663530227265327711048128557763423051382767595329627107635654059070223855478891988612224807623091841273019676545949372806520927281932954743505841874882613514016580087582412318870617917795998298247063426803524375760472193749753002753874513159731984422201108988040275339408775354379712622500786921786230111311105341136446947190017065213741075057829910817695164712841198385195684541686568088576445032174019588502702645669300275779504038805483663448268706848273734303521450554530849303312621244989801188404374012653437047046232510158453016970341718787826527207121091838118230594619294265839539790300911532557449831870892118062409922430214103719550503048780555382451765929027001680574149158862889661074681027143579529537311389426020261576733804933240014667139133520703641254725506942691633684682335036250194414393221396724059002070863886850349658918812559156714101814311285206633288580136891661208314244696714961958234645924720415488342074844529492201884236890865015823784674156481558941728491053876229796947119587527734207613252108651130430382103534736353117514115791451698765906881173748769761610667279755842073744745762977009905363352065584561465375234054128463036470221399233242713160865497284044618504986684509680746527978792493738048860644452063593793439686633753121568172406606015791311434919586963602085062131827126377023521092125559402330164052128094209052737936181739991232538020059011661856883721570874879692886775083828236149939809031606017651331063058092139995294347629316343456195544249050148069467460796786404638934430998746762518913887540515479898288682300711448657867328400259263635915136511117106167156760567326462820749832874066157659907998521765390733738201682698638296346760803141587295148585365604990406604629270477787078292835458726461477477769882669963979267193670992973033986523489720219929723470324849383407401666925015871573128508833965205270645205692045969692248395699591788886277095312006060445474646322137961142321571251074527995213547633584817300211123644255434344970086353199833236662443721946663729109043215425275510023155248459837032056364044093053867140328311862330468139425689997668230991857938104799671395023980405566208362921509902516573411232297902592254065184078792174674844878085773692717739755259283257869129905872033205294449421341690162247332783027855198807916683967432116767457237161143428284058037727418774787433942143984637200296943276063739370421140994136785075476471853344307488604251798426713224944488321738207017703844586333940104545294002104063730444478757061504567531052837265694230508049692241591201845804144435356527631746462322558143667433819768243092435417341865734450997392481823302264392094067377614569816286154738982055461405072862221808263765192998363688823310137451412100324040007273547024464179499131235204348591920524742548520677070514180483180843879134296551155069869917618234021991610233051911492989159307607651573009748454678761651081536337988366743052995555471285270941223108206380648653053669376986273056889547574996390018671214848359928249820361521816009343930115493175884847908879380617653987108949455410026528258572000141196685517810891762958684203521393283584054559577334053240641660113710011815276768852404059215856577900455602513122381771600518533539696508528803430099024443850761164759881932832630166290735070160437798620472001926350909081236933188913551501945421086437367766634352603394522055212806092968670921312150418596613137165734187085153127098490687027386826015516180006376911557979610848787255213913869507431494554587117000861845396466315399693739662695417559906585944013226798639648005113550730190311850318536061959299174336279833512035093761463153534518681488394490995466773908005449198861139591571629660064694616677685263196284393385430623019409758217327344393477635348292135268444841437494379263229907555860009769736226867854511549994977234642718381538585973521291760364328134785283712721325110892410477672564836087822661793457855502278102025768524792293122323779694917851073431194253765152238828035973883733411068111046437226914559230061920717225275129661811640890680986551653675881670949690807360751201131399410697187067285060678579565971625414753409477227785047052281387207492446741529722061401680150784607804352384187312613494278496910180026427137440322653843608074861756390162739147992766986299826053431098877764271385983432880755944970975909697328215843160000753324560464945723135711628878686597472853633435211372503221449407163813771442834430022079985732130792574378176958500829665698810936658321669453831467795497318173079219223600635251359667321623126368545732015674843714796359704140160594607093921946652074923876084548583416594613049040338353618048688251125007723159163663809439924201772956175418647797950118765467388112521087406594500276900901766906931876695131880890442211476253126047138251459444179621091515480457470543030842856882977109379274301489182732614069014695280503828087519259515394707556647958154261731907681454114772604758731030977185396187455027496642091898459183013734157962191872993938576488801981325743294155972371460759445663864966742869861854042630072966669005401864885862640039365191787618075361905930240340332626367171913468230575423767299873933232515312173855580595443910418382226896100446512295861200557912485436689146886970133409184539621207659475269981916458301357143237186789752764580724710845930311531354132066468359475199670783338265088325788688460448719535140261113098278412130900017966824557999478179785322503423395553379933936675917344374095742989624358288044185524677307471573366808312819516927704971213599629344776914877327737700004954758244339222622044090811795110470567364867352058246143187473378811598808889422972646577471979812821672750458701245505465475181440860867521955427590971426682864642666318670788226933455766670430640502657660907005004924849282533817790046013971054443239871053555963866795515683116404804405200198565602385099889442244253448893009510421448663835617789205718737531506497762319560207335978553096120610314218979395498502612301124827489526449853230578817187109199314380995837504718537586270552822404889810596253051387695787603710099534235731681747779762487971129593074268191069983279303432707205659526252208082292143140775675512846829206148689941893374491898436104330222707698495369634132806502330262682613063652769673195443892981030931776580627116171339525179608264262369071909639412831955965648191982470292081930812460153155358681446011615994880979008920979061284239172134732343811417150352684170391471234859033175842208748327879331535033262072389788795121287330494824317988571633091662328247715307050282680181258373647885297755419327127429656443464976934846044801338425363206087525474892229887510420645058927715209236321313250293020449880883594856080627722301442901113666051696325346285643591125158548111560629044259064274432590867420349871320658275863495453563312012859746971567292326596289858913215150333756769746718718448979563957118542708913550736068507051502477733928536557517370954880845909118148316148435209869314216934050273133398412453317759545661073093497695971191720978633855836312725937639360890131201891227023294169397470149363264563614674749626060869544825076094967864805449359711132782659398654462297805288684632523080381728961587211929703414075195907679962235273839807092409715706648555938591228818119468860208140163260501734410766126987760699534696207011811654605610052903681006152856475530254401985192051751463435499754871476153669750617115702851440987771897387233729964431676881706242080902668466063151539342805189212445268255148469899439740927769757015186267838196805750555431895497884303347298275658912337947718538285840429760472379234487064082641311125620846121100673508681359841024591937545836883980030439953240183565225833111185336819731164986991847408636604750042076380670830866483156967173833705360774393243901904135124770510072892910973960273016934820654838301121848289503073623580434276714741175348650999572600913441753917405482959238394649001339556265789876920554410424674243585808505781341104507455839310722772412859583265855341707978267703792572297183109892432910783404421765766795810593717379607360046396323671184114362499291417802827016276685595303374362650874767328642083187650175652230041373453126720887955126930908936493479104422915974968819389752191631254350873023394739242619301384331279790980829134938298913042745676384920775786850253944149453978573501420552716416893068411155218560976024905998491617279944050919583512992794877874273245182175267632690763250559318831195395903735487938601264465798152483647177657271185698587638455640861886349018814377548692432516447886564670538633214714816882861235507191944881529945151595881420306170074493716761006335130818174326141450745237235236017567129235966727620708858385564952723763232752494233388319184385647188909984175849192633057085591383450414270392036665776548193130032969042785459217378559028151655670378611728281222941638767311719475741961410355626086398184797261138834711367220007639252293247749767023295168088239428294754657162275912594269870536914969824071552661921905690959843342048071475218370430324954618654291885570136356985387718658444166989154202159285757814430923405165235087152494346198768566683521011873366094453580634485219031315384624993944253405455849059952611436859742954363327236840607035936324461963118048541020928833924750309574475518612137519231961641120019943359039747020574696747024496577747574101781931873695671206232985614854425597565251132423349357553259811545983620961515957018200664720536536372088616439473174606057856383553691157604924248438229463329861603420732793242632106619863710121994175778109651917710950211945307269089691559183978521333299877986944857418267869946535772492986443940258942505369146365051329842925300332071753784250801650369397321692945198751654762079564004161126589059012601365173769853701407601986780146304245883822482229412053170141646972609886122114283937167313512393588392662321915692998939295214076085796321148935936322241200644616367045978062263313899710496966814982430842996591058183908034263495689125204153063737239459147580207710732969924740344610302056611813005635261452014745006993998280563933909013600114882927389727157535766483316751091726034168179384869433605787040404635372408286314355094445274374771508656214910790579576041063707275870031097135650640822366332248466111490860016117788705259962331522689487460097258712659491973223296585229836662955345173255120949385768494861024214384785935544463196821210827271089623869783532087423031620425263927838474154781169742705817847815792227964363582354518482839295152142950770616943151878678647856374648725087145624843817241700800210557367084985460409965235476932516969485320612888511526059422651768301969740109670627527647224031618028869563170578190103197425038200093396834857887976033552477997630935282726668987501936153652940211925108641289480814968295738015345307511685095439598907789688748955948389405529603446072558448229920539628989305812631477181948486557498978692474004422470954934778345515702614980812541511645156846592442203795341779850843805509263201415780937182091378592511158941530657486713917514436501923303509627048732430243595367510608436974461110688342488371104687009503216381964269682494589293965281094017841174017371900587710768343866982156671230602775052600578207097246181044839659380133874673263584411762263130823917782100607838543816829527526331626880053547023438087371121126619633016530160516910698019509537469207815666758696401961805286373607177825613983650003056534776755157449473769731670714743894410685767884827858630500184833716059726070700852848830788730668124311139522642002589399892540391599553486688759195851652098085614079152218866373019735956525701222663883439442048139547625461715530693044114079108720584033961203423768052671450916956772368917302091303447411811261258912132144699630284589148115694251230953231550416689667991575776169673380483030204747473196286306852394868673701820960932009624623558769869897095018276561097171359162707264757869899533122599691831509296188552184007187265727656676246990350273432329927058279217333438511137587211772735983685740089274753809877895562480401945136397779551411035899520309314020527862562866599473055905637780889800090735556997729231922014418546070834338257532407056810853392130547378560934051233313371106339564843135489518354183743991869257646195151000852450638423468182003107291134832021513484817424223175581868738981050095751465257054133816098688799851483161539322879941848369489373696676261298223982268824863530051875724936981667648170649263650447634244631042763100897629561481631400776049654780327095556179853526292036303833004949865571761299486935769049978150649440315155817355916331435294973836806074086565534871166723291981278906823280683800116937210247923210513740581153383510924811499542218928205714958873679430255655838716916100095852167300196801572125857926948663069412640870276181239679985886074072696546635722652587334511267973104496795122471860014285340709258936166354361565992839538791271488623279257237675900956510829034257760355291160633794215491104941935027454681574855302809790756788670691727735811059748811550436044546431120275073647208788484648995522557752242418347862520846249471205796845825711700005891937102776699805374928732440142650418306581083444540111275228744416930329536529602614681380665658935573539025780226668703596266999790135985372258113126902413491520326316466847240020775622625602275049686375489856185912773748619390141854493565908216299279165501845979657744775288084239859270943858654056459850665769170876451594547834209041033231500260952500998245639893860515961640628734670228129566704282120842643597967842730567319299712758102311304151991048300331233926417283182045839198018930177534328975393491500372025879917043126272401466589403494971833099510798276864811195824945051661364460213455954983129228776989536248828716439222253466281549492723961330518302592835152586297177025505493174254111737236509819419216243453868952437697408871075351919415592899074157290966776833857124463458169258814709919291062179423331904338471673778844353341812491898886648818711618093715376334576225314855644262384413348783270269149624493183570913030755757274949089294333782537118063910223852706168930764995041204259405164689152060066996620405327044201937388902087098367407051118510240194233998799912368373297049735869151973109557756077128593630577666167228721636466453751223139473664957352932861452194614115852548229141761333373726797556169932209917607380310281137022880009871418430234851172501296720665254723560764325408217630803313457704587799979061659636985944856395043772419318650554346234825237256416653649364134986723290753214011607291134780531114919094492260260425205345601719850903657723222969748897344273195877934788072747055771712127034494926688170543651290875132711620284098056043185164872239060469481536908447840646873725281080698265912618839044904356332758415552413573312402739738275139175674839304292488488528346440202586338932347981890129376060368588753262357841327579405568177814638790207445392243869208737582645775926538313632115875152895688655427160327755198518931053334658799090556740137285270938420192034147375471261440322562600731981216418289287716855926232912195446190478270144567698982393003099962271105322699201837767126110295053850116256952213027466833956724725175533529818175803644017910760776055114666180336473935098698292241886665604271798522153769274452596039615630420313836321742683601293514488461392238836109891615345607380870099882870434589099964472727152144076269642484702181415367817761438553559531039858206716429203051155525465050214687648202682155934064549437071490898275989210856250943416909057281557709910032654837203936150712983611782065672985948628957484883371072367016340099674499776619812530024877165115226607270285539756076804104233507411333408433830256710273061749584475881964599033397407690132012117989058932357420380579055876879546472693849143719028526736242865252188800842725775718245231205496938356624801406466509066779114072360163891110194758033336547540735103023014011243706026157862635442260442192817441193267497509706036746847193050431209207527787717821377100668544188475935317459849541777408729899425373445052138412984783781857282191231045638383956827950417337254504092998674994745581461212325578992109957032172371295161346821905063223414571683203042154190317512686408092432575232366424863518519529574711541189245015398901555249559359583856113294662786068317588639173551167600452096290062290751919337440750241316220686366751585345934800923875251641641878782884881176581575851775855807215939222671682689389486350635007646132816040816132864337539799498324464091971102040116962979944998401393393654654570082489955511572003818287486216028941919310420904640584686287241253242523881351603733790079436576466700700787327698094342805564313488519381338712217198093088627785843824067101025587732739524451814259934433225462631651211875011591796942069317460446454938667513606096100886982153351654115956932822721741138392042607394309471922158499210278379833334707081930232138581608751841255207289862953070341029405971495701774297772265902542805474143529451112062951742237004359933753892539226757743738954224560408565992840821394911457769405903933285372437750394100595542822709442018968239615722178044531900237624867116490763306565346071033099565918647729948867853747934051590494305176148756240768510630087427867664492609829066850509695060380419355320218050697685371770125403680155338606469774661862624912476083672098222652930893194711008055110855383443845069850847739423942619531018707418619526741383670437222134196727096676724022076823446229633201917285405979981430032317987812046217471697221997533334499080473669854343927260174614652433135973506491368797798083248427068994242883883915013689315583653628795242567653963398872761963274851726508813014945060500067160911046428514649849052413218460662595659388074510623870909207776578118798112381637561333052579984619210557546203762303555177423700509009008264676887473840173107061525096291845963778349048158034766654522695019773842386868024021895658401816390558934459955058622358888364320283357306034258361063158434706773038515498617860550976250223215072181573892256868224109171411291431143505061592635255001533061977060613759887455616011447222947863776175521325232501667790107951110571930898933461179321514864405393453716296836603345914559681554217106865394909051346749065775124584042529088820574445584018957300362909438931854497043954604472347411148704436090149460506309529524397685242951363958361136864064284991595902908839970153459404746346011801388809541428312525629916819805887671192005159376029623824082031036523736627634568639895175628627985010850577387795033490580695608705631945880754990053953096271790990638431276547074243392050649230006076168713687788949269454723801487046274488425175658267872227903813747001000255354501678093957085984690304574038703937328431209834864301983418551128563660068655701490037115068887960456382555936855197382019036514938751778504287279757521601111126625224676757590613264391314674498143464698481432961462233016351278548736789186959417809433818901229496395291048146575853350370123216559937085168998523431785881979619588038236309552081877606029201345039783118556791461742200444755564820918134075207591669541051470725694684273478855621208629715730152680903245623895213255430176040014934450361372516561714434718960806884609580499236504870983114578801005582279184424917567094553182518468527252217047866102316390449245066778502728827019291062029357885324821390102977124039879466472322261982422035062609352994019392696916747444535635603805438831012157606819545116174595935309171735775184402406272253312041897288223851317095564270014197018330083768457733270564131540469776000408950449213696397306684463512290616821598991975448762149379091045609083941678972166332113871266016396531700114334452198801177870766218387742786699879007026998346456096622545703254531359399360089756142214195349381915817795261175116242146920708338089020681749149640721818159915541520910885950702923488740999240987138684850485776443991077888492895804393693367679836374546617274693306324194109455300213534429755388873929551977875708830950896830527640927179136348104626081341876990025041258675160240090130859316437726912060722896661206571652353448680342693929746541548203789224429099873924905076391859132073008404301709949527377723452005699341200477005139454027111771599200735588429339051331375426018901283782580880896842166740692518764318110505130493960020299808814663831796805384690129207463613859776197379764296233363891290014053217637906697978115215092446054279175194623987337387160758588602936916558320313733083138583001090383004380094760319635930855502276944354893972436015652287727641754286229002069959586657139041369300274254097676968813970888765930034415080076776733322844186762669573180859205904530483835085060880593778741503662820562234765099199046980193581302099643560936429443078887550077455383877129753416630919373317682008395140210766328688517720898896365162001441734488436148766640163482847338353435897494469406592185017333654237632846008452192430090568639857573769767450149125735379451877500615449156539007439037384792088496900022967986196646068631407237535084262791125394586243843200718294481409869133446051460602463133796298971413151498935963799314042980421941552252356010643261081393878124943434786600968840887612414084302987165022163325882894426480084573056827061671356278361027533856741413898377208499207672627981901917958162340897268481485764614951958376527581608031111076361214293010730164424630405027404133807561078524404031144621869865767643649581675649781674135338811895813601855736935579279140267101217500200901556020364460537733863183838784388171583581131004663486824638298804665427950929210354600805372365521130651014057196992379871915789278568707499115170361940038990848320729751436391087145653873275145594523375289168516786750291302631033052427765408838605251629428483958731519141788186331982799778928075077303710471778072214475297842684235859453186928047509373101625669185725889505239984545349769040613460208919810266956796225206317686755145927046133869865641139497697520847675697167413533548791792652139147700840652387590248036281235618481468805991039258334572202219876302634911905409632409576221000700775871424400626511581840629643290781976817716690089187734424427823747349476561218432962356268302198944205892315306837821172410085379994244702010954297077061012959176716441024262990254009230611450943156609789568593763043211066095677671872127284533623646985678077990099640903937842988345157439254603516403074604214660407791272447049073896896508537818314001957396007494554411658943949496700219053611046570626229808101686821832426856028979404557182564155808412973374861959847483330908215330267080109393167067619760050836392094037097597465950326048132390346612965385115767911551625583848836585821716763933482825224785245363296383202955715384158310417797669327380871041749217186813698554314758414256837295617150551179164068272784606119574980575445003090137265321759389190900272957657920345286131030985658038398981022737525293818285379262674688607119417389722596589479294151763458775812319740322803685233266774004872517922502913797926020559757058275432605282134203264316672203377740265547573740559363579301991912181555876792237981363811862539403385672578579255220938964529617555977820464582592138213827070737995286413948543657068593357506980994435528657258802092414031647042972743151276960355063913391111244426100740648393045894813884007954212163967216617018738354347942944071275967235764162074716869220103041276581706641532735501314600747071412220265513353513545085828259560699418623430666557061751962448101635099968269703639268344980637525707722865622209174985579753246885617288243862230547688764051276798785482465775067709391664925260553024580335451402685489307440255269482552829909369014859238161439748581603145987107829782662042692492329501774050148811136336062634611167830967802392448700704810416396640566423985267486040671608543147460585975582374972917991762357137680423797704234202176208574657120664534036610181859505194531580788764789142648651817173124058215233085006984795258538250072572669682439290742070912745505632397890228040226642524714980515628636335445399591826176920514339218615582689606024118550597421366486810284284913165419161372213207408894525117429707541303225701113439810643936924880689890861125264089594372030809225144851903639255773396257207328303857497389291537589295068295277846652544092873494957021202976071818359133387137147059021593716271048180044760044365340126218546749656339168785287149805239720595277328578068127403952880746803963981215811190628408511885318122488527987558149788952605444813242162968187701823012247657903990599223358664635434205268427936270322531908388169571093089112772399801950913094141977362327134648075827140659754241483383215416989508178695359473124350067818638817709308921756669424523350741020522493377802418697272720364757859151022680687733039541766539847316225707526610284398869753275959947616786299588177907418896129006413028387304745232228820276683460245825343107305527487847991976063220452960248616344585468886687949558753020555041996140304082413811039435802484448003958063138311288266130876574938785752478382969348095287241358060635469344463251844989342376410243936909714859521518524217397967297333917182564069097517593304897883277999536999246073774993977035552855882800264998075290116863411629784604529390279034549447493615879358227399914132451185390552526962543822384319364131986189685142742832735978234605258913150712958803606558672230919201250339448728929843476556311342973145485760116739943517834902763975458451496506567014797117442228470366676394074377525947049624455640183796991383122560369618589735949011640782994338097953500406889354849902588360158068692641030917748234232955691139423999379484507479665441749317002737788454246811079544695362292130851362216054147184982034820643344141084948037087679019449583333207469629866611927751616956131128820799765317903035669193663638335581112685946915825291370633260840103411608130671591733314048089206696577059556205644873680101504324849471464735953427089552802165788386708098586298484206086828695532389050004828702612329204202819609713778342403159348447091267450383296921485404805541037202309484481893755049384301018683161471634161742838856815556000320251380407371931749741450118996047216876254054837143378770335572227846316415529223688710625902470754125378382266523310904817652830311387637086156926710411442331231084422923971524161500132697216739446892108666808696091214478810655605124089642486278068140859132487763065442494179086713880412863013117688438526276810420167451418042758494122445504338867404660716922180539614664908941324623288699210587730084522538185885950193419650219093023199848668077113337412099776928227932921810229649982497936546039017982244105785985948983515395436585755849912236952809975277937112537837499680184121763763651624780811878940162784037610494233327662664361483496974078672104181795807135548536282030593795919990915910849276025604844539828344287298131181348020351328351691443817888959485696561110540450191134739122293584269875952751433630665509644698881612065075328585090632227561820662666853302596123050500062962450543875706693942437529616238323493785152084335562495977740603319781605124565321399170333853035232788813651376507813349592486809140118975273174471392253675295331174614112011145534468124493581010007494538027790693429077613383256602912223819401513177250348301662099191235238463299613236545308525921157799833779672408083747836362735893889321593056532661741941543215718065604175751904920456125122555941967152844744430751766891304263004123544138374944002529523322428510357458936119757323319625863257531156699699501982007856455344896815726967676528150660871372841273498299983464101532764804080031931647816873427011828408483573015477814592540729863469089094416807384458705731189611879197812240186786499165444046262839714278528535890241880160530564655100020460361141230172842619154983717054713136898326201695923125605061957360672649398276053950618480860614986458036435124744483943250813718271265491974992064160403236165160089897285961030762565846886964270584621520040388835305836736740350228637477587576148653541158674991434044337261920370524994571952317427849302451844712632056133738860961886025571042654522611786483835876324788124164854819754830084854920824736919253978897149683598311395054799080979129912380231624890226648555308149327236466273807607217786365896955163516314277439006716979061464361765897521714002930291339966230647182466414903974171114709858944560135834708952307941557068742016874836592759273108911708906961844943794039906624266464492686370268505855404988560706058314752679259527142938948260148777257266815524265080313681823870647030383785719889339282359247990447831031600397645274830258360424385238646810785653642251315653958157703214836985528174553372640327332591987482857005606240094729967732111903779718368491325715246098117593496726566727670619301492922788429257056200784450304452589183152835468757488474241720018025434636419215306303060214273499490436775752684950643617056847662146769163030115974127311042758735358840643312290840531243102986857984327922009815827814932020124891692067300529142814081921252527019472007009595044650537393395523761615144628861941919357560643471267707088208294297001339304379452219772509297417670606537941103386066814801507403976358527282855190963318793678396763620786534749042941911051808733706480350308980593655669435561644297300345398233069364367071486875611990071395510381825230531247988407814532746474588691701584961208895966041434309756783159072348610099542549554226460981604262582199197324683371983557212533246290748548018278173419317377807703638045552146500737826203665124311947466944869601359870855965630353800720330693004692632853463061540403836180068426144976784589601894421973997590316636685327601745612114405998304317324186977452525505413582847125928431664095368948943057582930143377897568375945134651616811439324563933977755861867055959535561481631285547737799163380004240619070365183603816687266605927556171333235568282171310352975651462417930296033897434346092224586204718132529724060762750962059370256650556498805849532629845977808158363404061502056176937889962917238316642599179962918723314257249605932500886952048197246920003813802338937018016575778778813028426102657568007459509646990545271984211107885837908925231355626888436048670825332946721387387552778558223329763943161235476527052564400575343962795960761990276778129890509023964491024457949393251225834109848900587426804749279865652458868933739532253066817735831061339712145491137630191739894765838207109986728948386867605165505033320834459845873850252504574925059012629940302553487042948140006011668285172107021546788075001498977086493278184443388855144112966824870542122745050376912802827956761183880504135716841293155744601711546311554812006863046094513916483269177978560741738697387782098210361994467660697705030145112333290188907783630885964448608564507652793360181428911153414505955830227176616472826195854404191301709711949823337347151207272533303799851408191768212381953934360277282099130920290262501164697548825111640524054370725991331230360710957917149380096409039002556551838460824386900230068723038924442870464444382018707471533393314456297751487108768301377402399892837331970615583580502308670772237581961914747393744851361026290414706174232898340191816918936520237822439538099093911147600847602191239576049947054575818995767232304113244967746920465492969845374990393746246665140002405508710108176984851447381696086858880327138933341300157717127309155956620647284731603784755164353490897479136324272684816564061266579513125046666607519790878225161311310914319387030438158328388572178222367394262341984783725725135698453767778615282744067320633107962100399737530691177954419646714493735595696651805497758583125774489436500432049836149041947924728936255335367573270149532565875308763826810956343069171967414539827067896564917363805782117898302835589429278971429093169766950055075456686068930138808163583156482061451841452878676349147087581940996609329535492461514484797506716554144072357315970390119533550724872168019014278244225757518257892685158105011815862069510721257783361165035064151966769018603270857829707863415035450548869617776578718665712330659289351279553782436574862619190670733457166860252724082601644213964462585350381548498087610669495256796939451193088541470198948622017559876144647603613343883654940710201561086704194994445989310970671037467808356715269777798034747492346354026545381036190243640337103983637795664691700267462677223658108909506476336741201179730565513260919595611432140598772308464549935240988109523821787618811177617234621806400058155201113011778974562615797620651966669984988387731229004165390052407377076235214779533987082126438708650388684912697872728593893156641359142665653226025734460438314610479546637025190326856365285162591321856745869588671280380049353595098568774219898697231661683833503444843272249815200150136087678697312694073416839514415699106599242478588208478019034451162503116443281277248601464088001196555721734700429237154659678153615167455228698892470824277964703108432598265858705045397356645590405957868220442279596846794196480508620415871828694328612090193272859536652383756101793363495691393004067058085689445244891894076565735783032262909403597730644706461593626309747213096663579849809173017461826692168800940255108935470076126939234768519693659304706826787962178654142122623304559115360830700453379987181471401772837640449670863553784958865939319084998505464615241652120838764763818748975470736394843161886283067850249765423864316917232640990171615326520859810471959636536929430457048630733037267521677944592051559723367406415840525494560918758342415453003721709402922256628065955393052061567810882446791983266913762564131164519008079376889954958438083967814391375114045353322935913725472162635359982607436991407825548245507379707838474409956731277732883466652140797629392785162073982410667102403187823890152273981206773855185210568819024012926448563440470580147640511359014819573505528829487251654163164671666234767535778009382480510235823845843171402298043513696359038075584470578163399370656026750663388122718326995377324193481799482158483675093900542373518621965144832251640765782701724624440330043814342087080494278576916797701836791466649016729813185911293048687982071137034808102669499813796384266115152437123519337996977765062899230715843517092951467860593117496760449880590322361740580761499646845197956675875793855912306538068125434435664248206752300275165387597343347737049854208271421952726968469316350689079437453161673045411735866073332625765973186691932198592447755962131682151681061441641797512249332901701810280152790726360941705311644386771917796936413222566702871113915251875620964014526544034213110674508644723587030092057780450519842537223554758086326127131586775107913039157432621488005008366976712374403968467141633227556501551621201435314617646013028542977330878833011188261774801733504316700055820216781435507265114970857426196312433354288699388587950732850000908404192044032162557393628783587310029347680560407319478656329449691320206168622955908442255429459411935161171427104445121484607227338864042832756799609054380650567153022604560747626834426107586958691554473026483135136954098819226735158346512998941043500628464907871445527646336967667491729198168198349796212683836171952828592965483634226782122755197293337803959774181587738413529100427854582870760651701791111492124551178672313176272416856651397972813763334834459639109240476532789647815388396058227620799036455411141363665405160417057837387215470356187398019961593751480412485166021931148690570104238548567572291950928228717935180522958006042371765057434585935444360262603259300426938577691444140700775928908099308986273129594909429629888384293322831930913521291576464186351207257638626024456182055266770436462067326774495621596116853209545634803005709849480980497014327697627414037909260605987116447503767184433098380487325284403626540892187622739468386001976398071084540333511323477315102815129637056083635034763890137854065488588883511590460839125775928574301422119327573984652071765276411783509899667076804750660276548954699060382385595878384517039837103704701409684742446654332229932219450858639618751969714183075267837183093939661463730837714700552704331938767087798852756741743206745341627627596940505348582678508204866367589876819636584368540870171576929563429379961026051311634477245761236941093389515528534971370313404136373661460987228746947234445020851416978475387460660716401170150366198261029397687880104203479869251394652611999189806053955950923124159238029246323541333540708659774052995020928651225246415255423612824209511626678811481897917621605825900687396663481384250169110015261263236084206108916224432768819649514352229006959667718911590297246455520521677727527742642135766806001814603737493566062227485210065699708242713915644260878332117462176768607433911889031739325364123285034052528314636033938569314803368997035692081829646573876674351176670406259131964316522313497237888084504644380911413196475367241337905833752975333590329346968884706422694045599301121372942683341312989714797308348908034700004842834812783956646341618983180091465867895956433017574535040713720142153628847263810391269210247343720434178689335060903564753001360646202959669089147576601156834659197873835050421012651732225428982923559510921584989794870252035699434435881889333921322417867414971825303260073456066041811689462394646180193516053447900537040174460310571770920726297675362391907695565863974790706482525967944802882695011392009407811736663424300481235110579932111991134537286866831191112182021696205088410518422715678714844076527055021060412081758448948844782560833892222188806039521082578456123078205522089213031814461520869284717312618698524265010422673700102518002474090940786107326565067187031551919108505326652493287378697309528840881439272075028833615534776043345076393216093299152395702904083946647151018084025508046162809002193158655419270958216092953486337650423192837254546491746140105485241674749420015809218614063871692339871969401595713701803867580177184056970458399190557958477343037384204687651395674177002874715732214932653380464993623730002278809115159406344761731491327712222387188772862174328306230377773514457251515847357322934753720855308227918411086887526794064451102527244131741739794048586768709783561783183090727670933351202929187981707458514248224738579359513322334558593300943189763365354198348241063442537767249180443267314142454123429573284804786577354182792377891829506301533751129684544829670635464550102097633573094270328504964580612684730396214055305025749792081304320829973634127456228014882619895292430140228293508673356032745778305930283526533362036089023397974849271771153353722872546075199775210966130861299348406447072582815412587179223694959163978887805685940829095949663175438718919167427005965905709250438514590615330912672295218853108942455948629642420436531570784503871711341416288807134397556904498377351208754522383068642614189807647249971608831343138874276973907057207932256955182147000960035502375856375017103096594050345515880446833555335318982119924545365482168032246859569014211079320458339973799486586811643371426881503405412708257871316956235478508838964185483192374635534729178887025264792915107465230958912469488313797901530473808691421270769746092243746529961690902012107783763192977657831337236787034701079566374207646308388814124076024005577252473346014005620632590109495435224405451990116217531764753802675677947950198021958832914617345085471245442357652605902452666942113486360504931026476686113078660519876546705796018101736851417157367935627826121614655272660122107207009732066493696116858604395013394026312850457339432909011830128773896983626129836300680019108313723554503265976295586786530664383629611970720915136527738222651513396693832108790583738075045985585346101202840986712961519567012779379487927526274978560808726146976332240574108421852620631234302185112576257227709829637578379912585040782687744957014768990379937070202609769519299776658877787066141787999926010398815902732926224742914266611079624407970231174412949912135198163000557570716721344750874472884821280819081899620845377609137393386902170791852897714453562844621810280190884901807534701007136847961862514471859886609560965380329078802214778827611954345691913040567989333893767658823460149013778545699615012356080460915642780595222321250564568147331726891019393745541124846246521410739152824099149836697409614616979126500589082512418958060949924985118390325457907802014213932048809471758377425329691482020527288111755266327151324248444766882584449040916009729088438366855017328028160426566085848073175591114930125766608187273340075956410657534835836409191688930549222332029634017393338335957020484645745466230809136130800945689181662330426971945096071417991017701395544714346579108865660054103427565627287142311264421644606001480991447209232834332955222046598727823709365013847122876470100546749189633343242148791186844409667232469784951914202545369805837542026128293635344678029401282348179347093028452100983454960046018120038902320494274506167582547217608251677185082944523316857625461081886477765619790843865463107547729579588621761126030075783600066460858439981908086107024869421498090832424258076341910135428326100866365769585904707795094546414978264789177979168898898998938487447577930241823975584224009114642781438137003496493398132006824112667498927173632719795346835643336242468283471152841286684633669604086223845290987117195297966645241089329554037358129549445617212872176509453236564837724234140214210542334358894178216137485532342338786475109512005693371422352553079620565990940550065831649961689719683469043838494468951870845877162993391909915224519243972617573558715174022207801485088671389038902978236734422146476176749207964169432815393688202271690756500374084249063800681183613161337801715843191585373250006791625240258881234079789581169158424314630698127323595753291469232314212643656852416092334942864590688698362474951756059160194090736365962938416974320448867762878723762832269476418246543715626272968898740133345884715744194450390317047484027078230548436729314355923728723432827245566377938682684229285949760267263526301855273282999226294661844611081259304396577990958592365869369287011404230587327594851379443054130596054595417835846295445178291346930399070943676387268411084480889428533600666323100830062050240592365524260811781134821510312169799216803001045157767381771587178510324738452345922283324942911962484808967812233420908754032013699086911479086779548283249841774351683393105340269504891641160453772976052821235622377088418986688448646145857408446599372786003562922109691877769189826062209036414080043847493291916126180247527328584060740614976962413868271166112238961617588784464287326417111658476635547849995127215190588148378015808455965133894150083080994290824797897662151213377858384127271049049026729286887179264503895601043499053429610420734360225287753635488652931647782613859522367791099988462710913531562973590711146190298946700506726979891363826241813859222874069193756639286162279385809043406697481005852452691803915888336560849941533607836738755553324850729209371486975750795838725244834545640048022187169249928446994400918801544722220176420400334363353996568349583406522739976176976620737153300016247943221041205780076807825693439614918908116441532898599692975810728343787984309068746255777530307815847399433413358719446138064691634572111327061226869670730600466174827733531505727309837679804028294689384763780345234009649989232162789532103054937032142499606300745725915481086110444985140102348179567515777796893279509855851159923956533175003758683346124393335112746723444661059184775237212074354481238305561310384982866712739139837145434293298700727050707377513979917917442857464250596355340579422242641336312487889586746351868079414225019438063835810377452483974186520066488645000517651585589971025902548380615800331143346961590154860098380803397012299478307551525690399306804523854899737915083012956468041601638256541966419265495881301085472899435745445203427127640477297523343247114729085087521317633139929015103942433281070626019356613091375759678671622496167417958090085236233675597472196177776296222021712598264965329120818025481753962385193120218704336549881096731459996476199609215762043118459750278567099388596771528305637278619950633158093172610450452709956279304217914190182254877321633393454028471864792370069487911559762437005192863314240055845340763356957754245776010473043231755737157017030616355876259448606954621069801809954203895277207447356891490800622409879704039925297625580497225270678690537942729920353336146797217061437189091648042521720244391714197032336136294877058149204364785821768173519149591766402971780822160069673530364107817015609559728926909487747101453385560267888993893973319157717574202300672128375123461240494157179387145478695546376661080656997486282322178671270887867011962038949426300380631043689355271911785547656408250279495110772921568444898393855679143316332570598186538361578142502335746520148098354105655658768609137149892676897591977826525123389944097383362767691463930671992214547919849511030511746294912923984340306474779575254841890702897903975931123489157134956847259976606784687536551470032537585131242343149231969392449962018944447520180973936556720137223354432818479694926684260434986668570729531542108945579233567385690549468651716241342634590689496312108305293053703967119600558527594117749163956727543550096825874010987967449348415141917187891385695652540395820544762813794983394533272487754314805311328486870462927707427091690249027317144097907501264471345244467665872102550708931137751781891223550639500403391574785558952923283955549106067887137602497506634553332695035818814820391147769584440183065845071896222338216384525488165251934340859326008743124325472163012100589715960102221063959849290091661818618477983503842801658053412756274003002308131589400262621909031023126831944865042571841382897734280565046416027655673008095165378790456821093905253009785126308013733546407641422207503453673942313383878793145722174345384034016587360271609123166831292232453255935793818398684391043490647375149077483023675614356096241210440502727451253595259527742988109538917850032070735925406523211625955610102262216448138455804112977953882958593561779935842571503801094296117129941346564956779358488075898567228956134366770668472833169380761576038526843115351434374045291446436552109411255244400716001754389280125086235097483555016223936766351933704192237607938896574410365240599924892068498678145938060683842592166897081449276584740209827763581980694176650984683090052439810836917939153749693254382904248991900927786398847593040941868289161822630179847681641367035371457453713272449448688007727822727344541324889141611461264634915395327962448000033448815897478226517473290971826523118703127918184728423405764977088982195151405943264769515061587285781727148366404595034346286862875697543437073744061501368682398852168246802358204786684739302023645935183214700757800365243028814175442154629571697070389785822967486821713249177235801770110787836853638766637258005616464339999589991297312111543388570248358775164614090075177269610681687612143232118900223061289937647106513963931411017337412666371643766715757446755427447229440627673254274198592401202724000255495525005345834939351883024150311046065286574755093732692716995487696373169799578129143982951843188823783451122111850350514145523910764856064386126673190504737413488073215179997419909746111753745926872899427633771858837448695371350450962833108809045126047482270780560534283490912692395200495750290932771691606459713226035945729529020662861035889183065740204426421283522234295310868246304245297422709998484450805137019090216581378279847661185506906770605837408881346150388821098726383964705576997675377369112282308826403280406197532565283435756572841017821297397816192882572540259625474010424168127616425683475315035674595871514651456994472389514996303344943779363917044594925014847107327338500728208444637682408255839710494706977533567067929931326799365721846950482133451188197362074873653456123198594787590536606241262903474367231281898812274067322788999865174982330029939611500423396584913877443626221865104826899911027517098595759730032146737957774699558914201518085759377512078594355815826330758330706083158357786938029448671235137059751570000135948691717124651603598902246251088898317390570188992579229608347582919169426117447396628583791644743155342414904621196169327051632112701424112763063655606302805213758198761779108274877412471418140207966171836291838118560847113922008563322801193153766192218489184461181397367330007024394489857020557572559338424154265220519547599604474538587706864109834190646722359919106694290381871303290862214882670296598443937435256824664385056960326752495968670243963298285475418845130598812882361036682197957723517395059186544839462378852996748504339009381460473274137505628760914875250228016894863754943765355190938697958033044494814781464208806642127362658262084670116267350084341258847448882691567913795930243927691340234934886219380383237859132088392916730118161776439890478555149178558149562034940540884601538655669775762067809456908676644874667267701375954476971446315653160252469110556453440571701246079261200091998524223652901783627435298316277856021459624829224643162571991159500769047324935325867521117641080973248816395394977035680192487010831041031878570750565814634467999227100298991680326384803829450044827095117932460430236230300697012450904647129350350393727576064506155115373655991375100972297023305379223001653771330400867203734936121404013487394590201277471091355602337056159498961062786730553286251246903150971605077927186389336468580287740112469109993516516547599520577350454029766463239532638026046946246178199398380467883910272848347211837572168988710966758491187078178668682738890884768296318170334308727233695487666741428876175207063847970013031853838633466744629407520917482286496203177118008719109278396347051502024036476515510811816430275538515237910657281099775301592576122661803243053905426784901280384724921184421736520673117036954974307933362947579460500615254582777294028894076410315921138401615683773702949554254965981882274561263252425607410404922061149428393981948446278914467314360846824565989396794269169592988264012834133262112736889555135538241929688128251766543627302148687755799448821515919313498277052022016841871513785603309647575402410518833363163910761846235984971356734082508689162298651761623510539771759229347556715941781519152990089501083807568455600868159688081577389840618024853586677817259495691448154417047554619471518008522585335388596272614144175308989774053139198611300874532017152928283639035599290975057641895624849065474495571560188926899572408043983646188653476415965912738944755460941030808847572429967328550389821963734354404514363866986824036837648945549215609230357968829516420564539659609275512332025796439316284915466353008675116950616485701674097725262746408332133736570915246721163259627213278157392634993525821824809160431554960483019153776736454171500832705653776410675891549928130069752334842505010203665683758798889838662365124391049652786297375551657515260656958446654427249968099713835010929095683759422396771529610419575713460232843899634845068840031620628035296508589593288377682865993961647564648554564781378992683425873668473658691004934260865577894162342464767842942474479309061073158610913396858628587648551129360060853394962439350430121888097381969149895271963781412449581753715048035831458832463456755994539814554546535860571139956249550425565090776290941498611351781837873682171117943536466462100904468241886061260234829100500718482630980588826594621807859259889361887645852256685916463934118109081718966059919196370229717620126956961070550146480317005438712939875540872719073090499780714171633687934883214054783389492020629054197062573295915933255270275513749395776148807463484252908628140844516402637958349860110962349232945669841907807057984195876722404250399149295167179858429539826983500774099588126821253041971691639042400424240910959279834666586991575490204583029543535519188070775923643573840450806128600836470251859635376977489499292815016758534227853180967723770842846016493772494278010220011622323154699046349584462387705751898658419674722300664556894643232773919907713948146935141072826426696485091249524732196056554521826813864237718641666363075772451077540772574360958859179111018855005008259868697548566816471499804334177044138899926725751261763928516341691492866292432134749099328566825963957246257821312633125307132761043107170999005134289686620664427927356499983177087698480212683609252661293693135380675502507113954064834038532891951803867658013910547082779435566985317191063554924887786177265572187073518296474504644175173313668099647646206851451541838928079690195026899984365216354822185853468036614720995787425761930733465309962803607572148925272274027288886935264864922800836312762317110087729718663225132167934129677087635811774947235460346138846455625458069447899039668953440935000192373127817122942012328735797731295648827034646666785323856816097648900932738302906620587299056067440801419881953007896931654367003456671353304297927588477420544446143750350817905417164024104235279405506694193347648736971846771481414316393606930948576997050281537095931662862935638407578598519509267703270491134568752330488758758136342617950929852458621921384958293606772991005444436655321301235958694574957578890396714225526605628258099610984387697910105010800707731767416603325297616643722499533127895739643578781720059215751068582392541311730533524096732186909370520366220279517241053014243769377721471891108306677074899763384903174160865579237362752854059773416391572351267163467761126495688608180331454444144721687646304793821263006564028918768539315416945013397115850207939295402489510460895481976790898180803379804135590945331045311370683332879537873014234678174550002775789587724665333439343015148434474721290239406939927245771820370035904641739211952678451390904140896468651077783707499566112391932714397926532110301617848404442673096359735598155466933495245431453859971024031550211854318665109937336660981041959628414210692037746952927626341336385319425500185915851251719035686314307615973156746794407862310050123305035785960274715348274015829881023235254757556336167985716682757297497737959231863888446751204132754374110454819438677061390776648167553778717910817026027667185393978641375129348886539484404085880404968976111610371658719534324158209225626658132220590690857617865378236639063827955300608890394299214503973049083557066195038513658969021095070883735445751626043910352283885707965907090147562161963356859308580602673492066656163936913912627263450159924504502905006628916414585557743391232935819036989548896357681815442273226925274717237348570344107952910673398352035671479823822398562576946610013021520309253730161860185851815234031517346345848682113280328666995421194602377512294588514224178689431692369249214404755635153515965945887417397824620293364947232601239825991341376423969882258154794610346209084403880687521910112465379276963551825162428102208137340686962541745352296263722572796521124485226159499642751261202185042474322309033227640702267322901803902172823130523353060499427328248299225477179284981024978927325014225274111829066708967588684518910763244080109810642818002917563061148215955180183302860339779684784983225285059118219181991459401414995476172951576425498702271711393616002150471152571955223229327162273007468738575809915908172812159289374597621701711158203023874542883689517860543622793551107647446219600592848747971481655585583014633604902688978164477005110412585902379078124043871164491434357221893196813115000113729861937497098134094754010958744094342636426840821948942776623888646037336379959346732761844605860839419582670023014822713253073687115766084531621156991939883887741189838315206765505867120003651563611514077767791574250575117956385606531595148597287461724439116325440059568900559854321314944178164132257609974328667028100116929533249029452998631797888415191600171696658742863452429301855297184229511005244044659443476424449449472920353433743275510827702029408004668647819675404888909441950882826762524083333971664258219729120957153846430970608156159757730417172667806963769287003392300430979508961333784185412201296514166726511555879774746509292188715472781761267106836652445914317038709509723446131536847809715306480024225310500982543474532807688572565743209412628298200002468332629498795650001142099328396005097499793475866814146332774716380067328769608220414358388968521788078936289667835210911854925690071525861943661177742692108750241372037801664107262561012773926379327561412027911432155340975776986485232846077164209667539705865069528758250096013863340555177510645328286951591557757239494946904766212404850575383024175427604356124619550723738613790623989147802968435567374849681067540817270277911900649061762014896676651312293636955012183468996409697977859328444144138908117783223695917115328648376815586343830760086048657576034166680869426724304463431500203423656423050029694739096229601689463344419808535553281606537547215899328815791301008055146207225514148946621443663779529683391005650726824366087270252057474671721184260641527461145663559887706666606828823332927102966088295864412338254216272756403145576982304698788074938023342209849325953667882043485628881498199753621934319134551112851910902290974910639780461856101872828288844205017911123934306505968445659088584359142825659068111136289734160530335932567869605066925532967937688893044708907541087520354394936184267475264054622664121168769343103349603290163612298675194023688298646690138123093985843637682070248698474921913874386869973662768290643752724845550559262988542038762493942966471759173026366106454265505315872693986072886056460394286418894983418244292705096374090231965820194232500687261559837825662029628132552434771911789235923351845101897841982739996368664922119447605137606982894192685302881618226278363564908140172204503031009566551240064190315956141266614634385007706441472929695068496259117280897274534578885397638933583499540883198412604037836201155591292857493188489386254790505397453939884701239520634001258263855399555685845886895217403940638467286842338677807571840093871182730841398015137768936187636514851333630223399923384104244358907226988000774310504796934421631807671253941606531098173195789267753740258443280102965007488564647264953944003663174890123658680596967672676331882805013344729279512878502642143078592359228822987569961643729976382179219842763013954316122609450933738028001071390454049469657826325710209751936894195931544515618764823627581176511577052368772579171694816191189357340283680714994344122960124110070739075660463207431404401357348721729836131178227207877614756907867809931323011831069285953940363229270105377858232342209857842252697360885661256119400319374470629910866799195958073471954381126293233326557521927977652383610016335175433944808271297763144505661011074341957434453068506361860247937361510424879346507210718219260478429587522370013899355001165709994427476122885992069759058684269022150766521460007237237537143105018402355724404191319537084230638561185635952394138669095592490561710344933980529045578094187196100724637447522947979681349053575054725688475511759925025672078281037404137369321934288186614842285013292684956142324226083452312285775022365394760119033388471403350746555961106981203334924819304347095375970858314073857435608406975352054513761512684450599126412663169153604933396949211172089261159343886670520033785497971756806068166581910947163791269670088640611416385848796432249131518187499146793432598258932618457085379742583880397015546651571720435500243518440307922022979960441523396609622262117569909099402197004446128844196763203435502298743371978031401834519984354489212935283989573446099456703689753425180828460772967698534383709628417796423447330487570711928310605748212719066722750382940357800595058087938125018419375303655904235699220610196788460537448126254565462791118587697280686118994457010298886642466449987581430782596495883976576274588597025623558329011501908376218291351598655946960547673153731120779857589986577456070426760361996372531115274192840738010207308752413542743466794435304112081646304789971227347016960752964737725938704614008190037008615405092760017772642907908025572098654833534782382854013582466405347076063887606041873610490398303083757460851013532851228917081181478507608799481582625344631325036781180810164462364639007392335005117971457700181906945293970635567520510098606209336890969989460202070420666047920209300631067968132589859301877170527500457652458087214926455908621821395967799564722111301013054266373999256335008706162769585578497714848878281369847139437694849691488249360501835631921703773172284068956155552518788527451253421127385477605953280978572911182129795061186954514146379823792288847612038401134657029554722591905393685721792962240585120191554635101754715711964461365621961100721473702481451384041072734830598058897639139270959704519486125099105541887330481311651681604620697262639786462249206445781808931984147922090544646864789686598519857317220221284332412658318508460762497837187488408447564964026028574477444480175485370460987021210460390006271559987100176058616868770523989528483944394084021695123898353996072962333199248766673544606835797796696360519248164793663712698280849365870580344148665744851836090915451269176939689762739138072105540643461400247313557876460502367344020443866331623313596657268908470002426524209374406715526339473486005825315269626860506210286308601449089191946354623379719604776717184783095973354316794233485806433895829912974782212229918450347446756675296110056951232556063271436821259797099071361522590171474830498469328559029210562842202340849545818052039591432049313734245695409135445969859403143069063777974629600123319701581172821102156293868935437119910042254906110118572595524102314320909458876907261753023328331342812219204767093260074059942300535307257361379717189563835259779725167181839211063542754311661078338270155972466460416689207206743351447943773423413442478719078444713304498632846795187926880034605033150528901761739460912171620417837544106665945643067299132339130563707954830114538707953582547096812050606086120106952596940730646649459572909090912171107154063439032656497471036509516357591526335095180497147083971549014434357679706920008582437178538459640720982804548183177598213313528082831725049917238588950899432157452491718136084048714075268368243818043622742289066696942386937430917375266878585952367798265264890706938451752184624299664351453702821112617894341412821880383086841464552181621145487992370785706195857189489932671695879456410145409681292359230098418694543239901869049595563646048545431308948441405816256209891283321345050460711726222040213452230528477756450120395517421674790711671950369608328745773745041331704538327199814360102134703756243072671299217901135188968419656989456048889675670024162396554184824924678351647008983719733961706965357692612022673051778562292526397611669966006723056158501503717744675663763185030824017249860330387605922634394913020907036813110354535431581857756177881041739696285146621607919056726039061164217628628274240938544758797563152389692939676975495666977913571155110110107621339398981021476031060793303340803100281193441858447151408029625182425662521569988014060231776839551378132925080266206278086013431346339905224121763697576016272259257811549383298734061118742961953145105307442054280122777034426436276452190830391768093100948533766890395634700418478224103640824531430121737946470249648403258782537929226185662047657901161666268433342701552389552377009401238324999260201441071706243409126349083971845454655394078352383631125058160723177053327658607067167924361735219945879023759053442305825827455712836919948568414796459662005660445176365224886895734136105155489825489824188209125575718337999612609203903614083548334775227135247768823139987815859840162567786980385222149937178762851359569722851031277767084464512361685984927659783144224646663734056692755438390933282398341601911200445477529896499393334078766543711936777529533098909298468163795983160610825650265765724504202666925267405035720862068807402699386295190393856770953506162180290843441751551397318678630600068657201771249787941847325652995110592889974120509700126824168003313084370971203999434784779539506000747379118911752696779304225391313306207196961230406946810597420707645217099120088947251313718692393140791800359824131452404835997608525541634921181837662297616253097627017957576604116820160996571378334976965161147269305774419361371919810360614284491435744126195225212704831790579565185557314002198286086681228590215665049910922820915708847899395323699619250841226713998578701311345351672634497358343870321591232491696976466874386236870598282423495247757186108688503490032418632076073200287467396116079847883207941947726413192073859745372753092945755330961813969708155004212088392153521727437748411682059128009805765172453716999416115692381533472284546438548365490644272284259167814853423179852471700184454698170061732065130341336844753620558281976947059693850799598145088151336447375292094843316714827633162256104240293071100012343206432301228456362978612247269113560748265144667559247660790394040206072815442471857095902811864862351728412817486438815699569236597125746361430278680677280996602973502835836356435474111590398969189284207132227757389165494496121736568844681575512905912014580696798399747994388599712208249305950817635152779423548419369276171748489357416673998086771318465095506005257999812234704983367576558445634941819621066025101654764322835400657008500541959518003156419402187497826438675008920342718947585279829317823834490608042163795198368110698704619879763617382196918760434117406766858670186761008319392443084229750058377445471139089634037927484510548141468574232097394015134773267461752877314935379437907065780340403679276324934909310991317732013219554809121519062630415419187296120969922251023338377787506675743769508327806307380699202642270962278266046116908812377406845521621857357422272160980880614948879401615028350050086633292146009105586130611764471311672205393798895667450633249703774644223366314565516290944554741039715418908937210481402681185729262278020135208186337565460350575257007838297070457436622909425967328530272127449103632605167233999161363832437573849426125387846306771115123611863836267660003237578962509209827474592951949007121385615569640320875506013123301977121101077472332362652192597568939722574796642960326420612380244343630806265699421401088657586478254460532201161417195392365390370727141000764386593382674506319728298156750302857340547460174509899738206441079825201474544092627493139450019074053885629257206451649656855718481997294613390092294523756412122106897815175633908699585950356044247890907717032947015241312213114364619567134944203515946798560199533834290006872858459240188506327973193603431131985960600774172823519032342601302850942149950360948137665789728529332588496489090952847501859845723492702181517959864782156098796131446601432218067800713030141300467072295948121632525901531915464225178761778768204885067336635466545393476893223612832581479523574843521308517563117862493637698803128130580992682378479154415564438396442666993062795833342296923250809574521608863246149907187468063735732358886062812886122819703695273605061978740804673121224319594454805525893088690617142244375567618953028372997144827627806526448210630428081638934401708305237294772760112818758167775819279525610345577122788186573761598106022269022295016761627489808020533887275231407756385808378455650546935082189299055534565488346952283257947067797145858952292840420371355069054719144767054423744543832592287090038903253719828355241146785424444019251325986811102767542716025931619336646842698675390106068974061431499374207499075891587618818247723867522643579765664524695354787713199851359150395238490910876128702737263770340068150156233717677342077975856175017959203123583262779698877972439207724256385123428485222071857297197906495426445223161814084555998143965150536061766702652635667108226600910610753897276386376620721510678088927592615606624609953324949228235644309473448060049595892521712899473209152095945195012044852652431067125888716870411763156722860142032744566738266120067629599408638687529984737068221746698097629053399685190513555923677417078812025287023758199576230425245122368994011658258244282755130614390868419971803064113897281469846329002404170812968038263615854910597669607194720892202681792203257682631019134425298375370362685702921650598035812061687022890936627446252293022169551510925845315288942486226117665457997826238952286877144356239050118829045532175712428219833852407641238916731708264160617808911680095285727404296611971707579296161282811090617783096705391429418627874635872948396530634185359631025133777077353089878502828264612323292267173990337139991405295264192617065832729221169894711222503744669020750525285048905775926691106647046260775387587337825625535185124502373089177257754190524693969719764382923964927080900260571961747715741436018388595246774221093205203974404790760569728413077985673587604969857673884607146257055771765392939052684848159701466156128710382041940618146600356329460775509417433357049279202878480704251975104808305007157055126007300505143574886785146919802088595747266790297640257656517686985512071256299773421084226683291345277895122853166092131405602810864776549830855347249351823483132582736549854071566584749689231866171204653802389066295952423072240805534957874955997729029313138534768396106914731056214427442497868232364734498794429496861178041050082462363591308173055294103633129287661291183077843354254936497219341189868880789421646903671754253073221660602476537886707938351508844361024640265860513727124643463882562493909631240219176234132973369954670170792786806728813202909439883737505595576712684543042331827670729766153435577344319105960463051286813477909034405025010826897526747381253051041207840294961189240369691214796617591345741698949792588485616069627778163530601771613407143240392976149079111923653005598093053994625188003450463059127325235397030945918150395754088870865660349030277909964478801384746225494350955947933002495213257343757729380131354022555028496865979593360636779976138504316677851768010950743206347763962957467258426122837584225324238701449467142952720932023474322744840058877770760130791662546417351390572328656252125443643097423086295224575112517040427449080515269265337658202087711936577071759751674250537371226941130539990201291405116501649962281851263610809290791908971152840433748582922488389492293914347880797064178367937603012486257396936426670854665317618680131050564272318612662735862626272313792273277632946476668485539885540938291322298978122542779931562284457359449488760700179954492695880118089718545672849701653908215390071861073687175177052410297494885781326393061990378331610591725869586733689815036541522226700120554679498800325948930958923988530150560583532554908948833924816513823939750841319925040278501669472376609940582716155994417667506716048519859895447648788757599097930903159616645022373873502690523436607840234359228763742530681136653222236526329624393535513771340545417496435086217867290427339646101774379960159046837761252256290077747554203046518185716996757605327928848833190344181409465245686292051209665931784706342098209493556842193178516425589402840131693428398886052629709337036130513263148594008701320674860368703389292596213551513996942591694070210141574177694457935231364560378554094652724684061584230851277944105147256842706479096176523024028773887750190791264074314188297656228648232459295152748581874973854633477999521138684633185590955039966236405900015696691494512369664971385816497505236974951244919609866322076467599801112263023149133310493305137489129791344189153357240233826161268121490460199609421647711498563299325741242541927253012001775163284847952959935704512828890304323894627710516948676034925077461550789151547532661033532190712688119302534424744332323759267603837110972614997089762350465494866429092188957394660463650576333722501241545499333568322356900436858101993772955636210998960033695770095251323246807361831121058748421862974520905735873462290570621724391978300602495460866071381784806650264209262479617844357857548787516777133242002713172126076340227686363995451475173191292802470895721317582927436174200654799656562227904558558422583762860395496916648554468382079528758783216218407040165270229869822924987257162301681090117348473315670331312372513495629599856373497246693593629561283369680946643626035354499858885275406462093252240015047068450441869575160601064875494330407517406053577257581607819434547810250330176324050435897300050099375978524513909606384114520342144031177886948319618826156276583128309558496490640528066540639574869758042019754934367828741057517513338063652488910758267769912878482354228649900927676068354384592137900794646529730313757523153892804432548585491999599684313132215064021031794595967330864961455707805515301821737522507093039489887294227669847478970421309151769058330620502212902159575498130607474310476394654502841430933074278763803015960023511768404418177055374410035182864067122042057891961683925490352267146215049102689494581233983690181334588215887645484435267313505183154209046342598279581360011655418151178745795730959936092179924485332823955977202692389767306503203693931268875243547383359392030586501356619260653853040090444196230669806435062654579222227507861347809009853829232761649554086126081304326478418282910492215445306138185481902633446868272720703929441217683311836591385807263463184446725228934417857207764134768497624898649396793018790440500638801992545035563417453608926354565739859513538735256295838122130014899584737605674636598912207767702752967867124487314227200769649188117679006674023689493211187536642606467388173712804169999813915605087083544691776655060478792844205601307027114895755189342625681890451313229820739009399391061228519412013467588508411677652019459834981848694252931772774589348771166673671178072369271115819518453272497640521742404545148757905820638083492466223255993047676528490575978484831737671461696683229677835217578224576320817517622670286540760976283732047797063722437244444147998287445850810774524980024063888514899146644634446851438881126907783701369382113086012543763055493459108637857435810571655514377556519678165404984916799727363712623996039040421743194759708745839102475867482170812184208180824412685444912554095275825674198632529634183054833676207401954879614832852330048702079638298511466929689737861818312316289856107197354504725338294709004247858769220378672873205396793393161245767535209835460353637510558112096962759130344738976847202631585659423449486339502516809838798971617326571805512887592371577432919097258476097997154480450964926151254479011485981540830519711363596812970380533991170645404297856924939242876729573986811184045426454727309668888619270358468404504890995850620405406601080274588050025206206022680998201583506728797630630547597987343770583579885729996571564753185410823383250007100815258806109253805617185284646288598647243569196972436904621771338546714709206760407639535338891355162858867720796912124720210636857478499533789336624982336063901238715670684648967596312090461659844129143450695350229725143295666243327361683815368525574978014898298735643422031216398685671603654450898484760119722797987862578089895796980405776704032364166785469332994808598063456285096999077325518493994419608587019728306491732222614477828430703920978469713273141990710667323261180402708282128400369255407938405995461414120969042944378842161278882152246004749428306245934023153755934765057786293170814008573922269442825556258612925357381081067072738091845239675776873510466080977328933800672455627232957932409585313912728849667434876309792849713493001166035065692632197769161123870386733835996517181286279030780309630319982043091602530766813086185000352130785365290211512657086828516706359437802729381720198660898452069953341686748218955510394310335076921240336955468478617223508273202990575037208780747314393204765387754108332037539686241476691261130476721057315230257418244957407564775743789585576056101752799591109843147827580909203300603213646911844873011960808592426243252251286465267974154022661163111174319136979865073302234437960435633669472533715968031389677514437517332718694245376527463262407183990635680072969024656112872770428479203896336251473573051217639345232853399778451541110221791343535635868417163797897888200027397501506595745821718614826306474952948867472227165144730159508933126474086216093351557654764745885722395767179857530603098085294761333016074604117084371138290615981083930146424858462021658823641318173497426763691501926265439846228848636552714758655017922178570898976137072742975223891342493399162743529926520335313562514171151775722739506899382109806536253518671343227000899570938813449915980224025056891298530680989945051024084130040315271645957163218894273235270830625150239827456916663094011087911544541089519337087622698143321965157364183674372868298855870233481704443016243412364267434662639723922650059174380339966217898480461918828409978775282170113481438645110765895762311605258892463482564953748761151169904735296070738355022600119957052369984487163069620866968041849081789605058928288909880939891616058525636964200500634531866912323519710318333999649806805223304228538247043724047726721737913787170619462016299165934933002362353142683550633050765849680952683799218850418824212188650436613423277001870466309788629329371901948631226316227444812692763916463127674555183310470323571579065567796182031083417426698949021167415193740757216117627646343965292150142521476961065235783162829938156719037539007907594337472180849239306937754626571522772726662136753144962486122862651688731977995890015402193711807726035266282563836690965661998672616812541972495169841339535398462445416309864053974785954852174765915110999860557359457872164095239226334213229339352346757550326732591943540841471859829503701206210884139792997601905535398431103083100780261352826713689300418085265825224759002634893462325780234253443504421266859203257688356895239648628700660952027837368040289986719310719028211477808112410346147711395324506991177205712499645925290016983251779030385195762295230369657103932898317955494418413567463075765797865806103086036835452394112540277128992466785347058446539912744185159804695921779396618480686489532346523604119883017440552535192294545108105921463320155427752805237302148379408608913989157726587029548923317327784826777865869045740151637417689996260551378158872037484902612308835461595902336349817815921913547706841021435461915376465102796645856195201629378503508299091559751609568223221125140525700596205375415469664232604189064307636788675494468488575352485780283684643845089603827358064093370170395566340935593899011705072603007344222967637213370400630261473088734732036806794466522449909695165702591384225341628036918268655879874637237591463795982911026911779291774261098701651199871902008908091830903774694900705818652158512495023777605650929497375369722917254025591180439015260450123442967592978566068918568766747639164106973903962767846131813670407162909106642518755169911503848224585706375868474031373350475648099290638383074336989313242669089343610847458284077689874903597791674060772145456097411610468046668007754527398139264602219309696809051150826636002475033969539560346391093458259054335027316981448639095332315328855680842675920818138065708798670005838731715249410278964555881048961090652363636647522485268504157461812375462690415542504305511261944887903748887588397418242056901922458773361778631246181595672811590745454368117200505145872889056127445850466066435920475261175263481314242342823430205714916734149084587571278706600609502768121439782150213245693200830768565890065850773382243056678772709658506340627006465597646989435981771889708098943259994098965132635293817432952883891852065280159389944389801944726148063740006443752045761832323406734383465488220923637447265219905651344188327538360102688304435309788074599919445384893018978030648073257716185041071341297604514065040519501511363360300086550713477356290071159152954272644483370764761648313523224963493414839262370695577965894735763655968673528222417488678772047394772326794012019201361484669280009147054995597298486586910778258654151265919784074232565316226934358805416693568393561418658199146720076791124063659641169028030175970561672890961205491000971641761878043464856636750971021585925991035087600624154565079006531042323836037938542847933038926934687747980458279640003289363770115864017364026674490309302362347300457918402762852360943387462031172982300316645963991611032217884228825724727083296199912385484245414581347353914335557785584784022658797790305762301879055769526341572634756108828755889369074559338138419726453860081763958737752637949386846851856581481736633456144805146251105815170839977936642299601701949881347748654950005444435197572760476418976832221776824083625210004184439975753742165618178531533887545644885894214467633748701796622423175551381278045746561956579072756602351945489428985348410329332376305846780623052466395278990092727638699306257672335056524556856778886448524357927799899308762723873495506942285688180149040295818865590049017139878592646029984512182996960172540468303617602937645992138439657611048767448166324507815932003537915383206431063447989129238093224703579484674583782284974414440631284232550520109557081804447560831832557281115504999796356001378553970060083544894891366057514161074791811746500782160873024161610213992983074224487839719189192939911120891090757419991529060506969635242913138237651590454224186977223704163682668448491576075157319927155767885595478664234618287475325671263514962780813658360191687032599188679298066384518797752876702318457009688585934973422391110304816611708884596620627892851762034328709410955504429292778648639388615131097301092245405360532422508722548507567959741497745693489727324131199196422097311055378293743106540352147689803401353566696701718176679915976784147863802268734837630681479211930479973256658647517295811331538146588800680327912706279986948733989457748592616183196578702522776140322971662924455558701679538443897768238922032409986649284476109837311745197626088066384783048730529562084980221580947273260842746700654976647787362789573653737828109486853525135390056554889798362686476270911716617266697243077916804818207466128965270970042565591435416543151578348622901236252397928330675882781446699130304269074335615178338105056821745168890471653264111410087003768312386982249857402450515826814227058421448204733778813958770505772258176310884721032319576199290353982211578405694571443746800954433248910573206446583175610465374751365755546260566277149445072772518380208213950590303849455843190306179764895269494757827646983496350633184032266137104060361282396944605827941585972387832395343389311886849960905790414307760030636876777864103409700448208318949898426391258323667218290286329441747400016141137968416352282478837872085405485264793283059820389051611043978148148188078551111445195377967711787588844546279214053512710580270679342005520106488813975076231144502384588035780007716399450486981329397824283719736058961029764676780095092485468545927069804991151702164978382862450990506672663849176549514826383812902011331204368037381007022088610105723471278974606350171623025712259457218082291077884659629002954857326945592605067924701650114196281187801455362128967771384409095202188944084239836846086582761646329157588848473357373018914219234027608940787649950176881455894019621679683081790071601140155224516735306352890368016556069978617857872017175097753489520291668631955886896587126561921366599337151920180855278184134390466139591842891531975893094777354069991283109347283473211547554021702835593449227243791611973710313769980168066538477284556956642113892285778994619569392976507079809164007163514455999565017790896919740507361756234665276314726331758806253077477611327158450886927824631560082123431487498065068539981297492976507978590183480610132012165085977122965561780870322241123624073158780054824505079408649612543924824047901260720577629025669758408862942644263046042543636774316047147418644203191417864274415485326333352500218138610287383601217211817525873409450819110280224616950697414983488202316558517890430724768882333832802395835289735354626250314210112674543061805908532007464996688048251844240133000381468331103994661982828315015607859043159754975162233924750692202348929223463983911912950668918826583940304384246288375395512351381360641255958647159035909613431230007897377231978863133724527891603129802308960205501447196549802865624732578486590938293742389736542496317327107777989866740746337771680081982653346551134062622687654880108853340265090981709897637052170560862333905459871666460675252076433349803022917757551081921700233105917720051611529788632381194444113273507951466674532555343656098215805055364610556210118585054502260382246460501383235924973105785938029271335494402642450138875400875515152627884641576739052614751851508473506422187950324866198085654007803053777165577006536261216909835064267347557618183687410405483709920116739682899406593281301120706547021444012764235355977059538680363304416647008819920995663909881427950967400656043717198193953794421762758526079246110657480396017296393059879378350598735153776870735266065693933613049393685881814234930754035755772966653410043214776988869028976132312027950362194561543180026024502278661845663761911040719708606738821259199128256001442025808465584929405545491457707799389937775248615198526696117918873589226139629650611651822839797534741749642923029459405486210957278722934206043825529685133674848900015697249391662728158987541427896271445159182645627522227677469469460127632661527282752662420480874952749094024101475216767279229749889981657477528971812507742992471137501059920303643033020262449340917596342999200724789906554151815037346401636157790766625268318520877815210815168246567510139345319325584988266123606156201028827910194542026400751453157793565642093880210731547379997448411060726890304322936402493066587867920524819609764411341443001073703718516759782843956781128082778674851339340193596377002288657556394665755964133240134318226429616886259181007347996778266328578696933154609099330199721961178112161170102958013279256277674093087300561124210069740703296407083815804879005831950731859972837963140106004744572547922752293258450086076704363480839161500371568442357940369504496592022500118705787103606700094293201689737790846389021437719921893925279635871015819737027571276635033291838098437195868047776363522664576603839195313578016874226576661115631099906200073761506711603977131256141480682861465273600439294397330264681284577899206906320783213228107431208725609717421648372846238476741648060908241499417378198105488824497753840293928977011242932010123507491642413492226544652434028796196064677060896884298329762700086564658190417231946971741988790211915835399280859098142778796512517296494383097736490640737479658794616710300713147597694594144623889083930640892603606089311309541407883135048535065997383898461129866419636302529100759454188168761168411474481482681628042849526372094458210310469968008729235328672973432858391013725682616802101361645263107236893683993148980646387597960123919039186926771040867436037919178471471152934637011797486843268371489209429819430263653577623395460133625797253292418203671590017860973937108330889596067703730103743927955739057127957527870413970219541912015183176456685325380303563380965794551476319657455128008031307015575951146724971763997857487204873626502437858230317762544038449016759153555986299843914718159193901208289087031333900096517099448561040064618872585727840334389170540313954781961832656187074084092375092579133769790986546180161928841628537754685168606394728492281921535720057264668618082435374190299379028505822281577984965270501421920098336190512350750159608308006766632033196826250842282522458240028645018692564409416088274071218003031749822399336720488479644382042302456087460667822746673151726443435667382914663599799188589226454934768316336201322895062390954781533585396194957826220004678335572539757810206348897197083292638412825946787903468361708218517849482401232679658496251296553364152469542749561676664175457381282605847532327347645898738860068094993367213807862441477722246042340916292785141723809218620739096713149068952428076577729921076297599585960787821305778204856651896820768646115319997255030558226773253231018284118548184468406097894609268894878607962456501051299895143246144863253755021478770437358375513147121054398306163473678634117214408934903737407900107968020831785350362784997183053061813601049049047575340014758712240100472915203355452683015972590007444390314655762778629735214104184970310339464441517938977548664471644623241070047049936794348893814761951387136198154578773688987596942025055862360014534022085318440780237986433324929308967440925204187240236583195408877710227509233505045234684114214588248518859376182503795910069923211727958192793367012113164291166130576200243050855421407494740633820714865188704825733399584908927032022336622233998902465893859366068167758515567805190219775815065631274676367038056203280529529680701804289003932039038481461984265620172098081118252128337681290402929726183430080509035138216171599473814523435140222008739256771125295013494598184884017673677058245927333208603459402476159870078614348836715532549045212098288373680938281101019848204572555699957255565607845577791460736547262623166345133275740500393445274714302741947475279514735772189642292922003041758868888178212176074877319986070002296232978086078732504852725184145222712174329907627436404484023722188442672549868986479600720263418087616258789941906097849389998948822701628219084841262350645728410908861530510244063263310227947499060965634332254988582146697660561568412766942973120139158954088534449683309436630630178552477864136159453432530964693593821343261836682403107113896523304386313025066304047923592311973354542849256155983873744536945434070666025369853465573801211340615637790126904593827780194292684136871888896352440717857834392812684956844726892106944175111263626383141420256703085583666051994860906458450342802864213542147540383723132033300309168292653807223944978182772945155847812085907140549634342584513711721796508743019675531286912693866280945212563171503555809556325830513283253362936571262174375008761714741058714821442980347507257446825724687487254035235014576947504555112890609690271033000078217485717444210100280507189444116462924986797850303227266547429709423586579152436268800616679200321669296828242564846244377495321818312362769554077231396598851956000649936217731382397620892107392981975224431752515076382765111507986157341574283021463376583432600188792566590494710295506469271913622987249157880815955530902331678055476549705544982177231233979338888440070766844158995128293931470316260830145727082748568709518892715421421667007505841528115302538336564326380061608700201917307690464513943339599964388626653844972021171049197180832502486544823929718038660913553249831559952740079895331544640873228703523805041258501019303458427109268604314494482646867393185917988484725646204264731928111002007924580007586750096403333852196885946291931625175262798991633565056568289030501738436849052496518898020821959260624213841928159794242144429755232189623314576759405289923603782592279926731116451817535483643283680091592171548360213648442029782977005552577850000586865494919580786323918541115409337713207884561065897789509270522191976152992235911992161989689226844411093738165047344184964752370949577933024853477860114199860356489052476972949117764306558234585836242095971075903975608982370459351539131213659258221141013083885528162067963801950424161267085018081776796128216545145973741241699033755770841331418736196056895542623659827335378420755654864950506108207749542071138303238347127184073361611825288185409593413325482651172936413063536170291239496791740606245065549585776317200181653633522501286183059760346421410233967505907306314813392986431985790781779793196517703717916192524961456678453609116171884050183533097791117076174709460895724389393397607435815028090644149769758822562503788389912309926626707605517510701607767929489544535178057896656563970412801078728813356689938896158434096115514451494085574793394537500195872308619316452093433426322096417154336946017569794802337236607216563311297223602259443473444750885712820165716756716451730512528233646398746889133234075738195780751216887710771472806152996577704977334092098808656596980072282503168213681881741122191569869771215564834081348873573693322840406379821458770678048959838764182443080212371354628887086724223603475675527632930472883165601651700414698140399029517864343391586268951542276106811878958190803636642627356437705025043500691037225108553297615472507777432648776984751378387829965226894539690713358597172204949283366251531836447837454912795799344538357420016858267215177593243968282905635444304274420832286361793965772567978545788392490908437889166740416225479899509489962365409440951242587347077617261777501858550848730404898011964889202638457625337117064517848638436610711424339907936013694439394290499805462768985498956965389906593024687792785727453703318923426743485345886167030805935330198888727948952079433041805726665356666245160224495841334658635589837818076316617976303305434509118046572045014087990131046691405878943139502101251925095845982730545149956225622722079795874425366934427327702875809734882695483633549639555539845305569393630610888310020791172665037353830173287661155925158671073043812545102807935978505318046675775679614189028109948044308964599028141660758321782199611064143956587676278700617477408575513245153766564187101459222049037026615609327247127061987489393612982164294465476202390798652553055069126940110452580732901235312464631421716162087192526053451706219149641931026131606976509369744663798983851396893113720237832628386628985061796900498004231456352964394243609544909378144965096481277154952486860458521434190013436159270363526883137350284143447855757364974520916597419141885190070549718839516828067722734145133289538909798474341666526145114761069327563611742184428344472757724416680500051216900227836964007764824817962736633254635528546974666406000400908165608671869983518232670452570586730370543665391786208845736147179074200825649823981987398231142881682293042253008369354478579392749381158266623834733622935950635876244810624692653275354082606726221259034300987828130660915737398371320608877963762548014983629939388315983463337126084782910543828415542761657506381079995661245382689988165506953083669122229697737598167429152219403233671917778068925787250709628982634332350924519747704826038599235645469307354410763370368907865855435680760332134590743208886672379637285928955024268628537003586537925041497056665051686614980371683150568622702275909320358871224788685342904559489977660111267686995874753019080862770685101622503021251442519496108139241625340221639421941261004011075796581803050535868195198296321131489488606291679074835785262420085600786717442361084796186821027490181511303579570316116719297481556793181793375694984436436228786096880549553128233201701309056724676862874623607669150234079492122135631303718944070860443086521410178249314454271404602410529025232792034559149944285245313206644154242794598278528099773866039481406062128858843918656543198387351755497117975917699625392612713923532304321094838147740956778966646824676678781293932537453620720457600725434770582486916777919583504900935646936945444258433677874016337302562760668501102291524017939130457302492420258743435276143302983221304359756045953819679665127025343656709167653557677412484432600117988917412077210395001351141094440593428009870018989060195030553731806208709133190841781070718253611287797516943392844222647384665206219041928227231578827417245546134534568365856432363714022335892395001410119987839924995980401436636302292711162042624983203556306837490402817740902752748016424928249553871827588340379291053382327281974020577005759224509969845700302942439850770443322383602496484120885501227454880927336947569107129078913818876802236228834597960472176819667013717129408580760438798304329591137627791105609662005771054220058241579121126478870084465492806742013985230121104138230580198052760350038412897625785521811864663535730787704857367706861946488165670133186759365082946853749312136773673251916403036906302346780615157756430750254187657366083070649386116336019834141732076609795961665601322481069223375401916468611444297856297450500915620690256041949056332372101797185013043827532791169708540593142498127031656216321533823595639543796746279076128365379429399346039894836417162002627898487657299905215928674790261313506524657322951482902978442895016657245477156698422999767364168560595778146632585960721253394823667730079783712808639850086993013620143593407698958219826549254568197718187254912537327718595160409061280567091383836301116215916837940798414976417965640014045716648922577989170428023627193811550476259490170559147159706471683976897918862562862106979121331132548064246893082205902482274347314890080277294475439614690549476330790126390225175123068786087442949289287786718333582937553155776135847157017356538009333831656306177032307495500180664784325930660021825222010215628436261539025549440142600316571181309776731418304958275184199187481086121011707813225534827669861170498336410222323825547925391074709763606331287142188371562779835903366121553782310413597731385742672133300059852739885521233410817038682825296974040705817145784207160823551135806706533949991339830789147711799037353601255811450462896365814308840170686055089193808581489270505660992341656668772284341621330326584384994426574756328164342713691396446878508843354750968133366067327424180355410567714023082661570549856300132199380672055218802455151223423022920871470133435932167484730744688606948626161762378164451975209266319573951425163865897508372033526632837775863175205992535444267366267314819151545760215110333675740514340239407564703638314052392529347651483311215183721781341891043459072386432706319394012199841175122088807551909368539843441409386839528214814465920891568674669701774903626075417510222577933817881254413799294189744746727448952890515603380329380757251771051943015587789255739505377493198304025243550505396512069237819527873882139651470793274183291496342942386952568708235324129452594077662563279849200551821194850365398249852237961196054666079307542979732227164357588202797494405764674944541963032449875849989215388061285816593099206871495268853599820293277336443188822778154276557945895798377793091096235504048046627810514726813301030251677781257203083361916146807914741612515157006472577791655744114722920991699912113164674382512045920197902367439015600587552705679374727025434979747723290794349327454011966094752970799212143870800021559400032970030328849153948415604354440520103783615857251358895101430050554823777978912361792759627860522924110427748374631002548736280941183455392235992736944899543442630952076474444679812513435443134846589915083107515466466796220039389642190044763261463820019730689461174003517096812679982633665367596699962872888147820859157970344944928998317855238718566571833672644739855120074379535421667469006438989005490056259530636185412512081311400204379295434168553588168458141965688758237961047253726901159205546967910554265706104892899732608652947113797993071814872042574709224008256236094369874143009493760605910704089456550974237113597866958161586817655899493172669666411890505726335234465094019697967754363121665562699481451480693200893253817435629905097791702110592097413584813172082113850903556726101913646299875347345170975562852230814607096431669008011274435769714029912433172287022310376222657806676998811139474972215783453712635083847746138643553289728047652850019378568374348779740655999697342409382990430836096357342338028368467235149747713240390997200085891377282872585445525716951485582140063978943699899465363975441102325282554076970277488254409660709704193661800526431825340385455026927421177410676311633190797463802923214690839479141743081362910169686714071331180316818330098534075860673910187241021336780220934964768985636938179329344509091655145333488251727207414166134941861407366883308367366027313414200033815583685547076719409826254388004648960034895834996088132013563441143538318613420253349046870471934536823044264168752763207551084735176373737662574049785790998019791581398488457506513546695914049320770964056427332584373956892493773180004408526480928921522077641294825255309775324225893989712374528616018698523673386125439296398971488431316291118900809627845162093838564724505487856185939865045226811133554024224335234388266057921510663381877827500920386785749037224460633411137558916792475780958623125492754515963535736884147999434319316424924397414785365594189415591132296526307754768187870452572087576649842335799603849703081582850009824422404254781553501629989717084560941927573991668876923642684842681620577625891345483964787320506841101206173856919818266073543179277866920824781221331877259744755425048705468275173720366314919375983974013152120134158544192122268395542192994687021223936110413916405063776445221571693974502879886893446380345973651475092914470410207062844923642786178194506993364462833817565931964821582918720617045726405887215007851750829903849062599786734329536492716971318139066130762210355609239740830358643199794519786622080256078555188827882256845068647741209052356260855988888527274245231987976789889514140783740621227271683600059129153949859863092015963540248599340881027295211729540515737128830851316447237734385336372117210993231154763163390751283096473301684194065524045797787112111910089639379936803089874873132216462622619034086787063826053236148069292084664368967400513628591951274620009981755673555280512675839201001007333393924509186968557721619575320772240837688000950077941435590293197410308831906305594563470778265236478454698231695671791481664519913127799094300251145657922564328856103513889997800218472866967245379076654679074991175178135234858790726701582619821313765057443797240126306750115364889999485494647123387659092707353013186308715828983658318107750271438481361110704830987117421743325720244894806677505668796860321783978839389654801904982103655425940364694405006587695475544431644066879122330955026971767012313244124124890189300760746427066023368015903686151358641261764138822721791392805225717546151278854818059915084622982417093882562537932106546975299278391325109012016984822174104430737955257525289997861617964284376408239668032755447370701935775769405338343279203920750814140620482056019359603704228248467090791998572081235687786284372259017868422150692464223085463847141703926088370819261908003964930495208613337632513719709924978086930271509805647724879809616182036187258702899569001143808686154034708760536960927694325197787752247908948254711448487399720427082915896495608287263067395685961262468741035739240850056511315652717685497421797465741357878526417972956416726826525152466976488763658605987395717940746250982508742780827143626296134342409511344421579509408471824632626283311697187445582838487325857972138502172059222475954641622101155561379054845632711883170093642903534311929738665556547083295655905632687452587871886742058320572491840353539000071670849981648870758791721744785962836182055048391237558976626024275642273405380903748045258593911056975979812757076402686276482610775660432592032770026139314972206643819808281157897739057115844011492245980013418458298694851992969698751001051682545887535663530608146383381033733656561176280431600955311358569088997392827289070683547209148142967628453992527806124773324800346473421258301374687495005848322039647857350182738547152993453644825840019598627791632615908658125230306410668729805362131007054732356581926702306706131509867287661543798975021884505737321742371520909997227598981649390307511516937220956419464623761060835447329017660532653594990447390023201091346151706843460556308421090276870594726947332192575664937412514678178282673939927414852619205735456553140037792531172088623248663015929243902645086837658048494238649155529072541450603479221326591230567568065962365028259069931429375337602703759939910652839361006509705146443440295436841237465004551262389038231318301111103132589584816058800708418674925653823574005523813430761505583403880678522553673683328560733113875298980353751930827701940255184779355292705556325925905112838266535524045357509079820195613924941909709258540871257597316950350169057477225047375868918572234940890666884491868491776116368010901355189451365822271650795470782401800680212553851668644497905450479748584799971572011418679043251255596077367184980407591441827437382803843877354691078058426779552429676882113038341334617236828006584086851744334415018094175039844890659840345623270743560791800788320356901040056951921659317779590839443361812450398224810446071024058666754899700014593398130816122618507339484615600025643141103441190653275936467499260552197256720818429520803696452594150095722351923598651457127001405782201960933062911838424699864868640878627059821712981545586156308083657518980108626493372291530672710510350665855684810684370712620540221280598494135703117895845274157906306895578179151696005293748774758728754648976225931932925774089185337751870763855028105525805224023052231581836317488640804525410035557423310692830149028146651301737993292702563591268979580815371086008569023462701197109489061896900051379211721875234682181828747847397306818699528331504542003085481615266275359100071374996980169461896677113768461186515702692204101891847290346120781654282893265951363915627430134280598246631341402650567819026000900454024649083792873556135599317898187640742205963684359645899077850475964955974922263818574279065509415725056957377295734769785481707379199858661762018276188934737401903806214594416830055821478762583171760348625691792450301530900942257413359085759826815257271252344426388104269560545757053068749769716763187543942103979248418016778378169856035288480799102481216331385491275866730505100929643831014932237313126061171451747174287146928539112374408555015829305386215153197356013027594655985673210376988081933820751724271578107513660437040764193504312955018004775843166573650796703615348055551606122818429403206990906489752362810692001095298788581166663458556084508129366938460673640116324994670907871384466122643568665285377640883050561234411114107640408072653253501072528285177494187322492530645500662627356447176049162917937586478428161448258508321811805030741968266874531996289574624440924801665260493231404653449451884132843061185455073078909039108645288595808550277535994802616621725302343359214286844068578560337378514491627310633834309569311203950046695757092325377295632779317970435103165314957489412483263674977262853207300865721963511732394771051263789439743222422599851630522607458219056724461089526622387898305455708253110416932879660108467781888304682901709370364659838702640392163117470056186520676953251271132500903631754405226438497819941643743893243372252756556154641966114420686678156850954651883699520948757150493709471327827254128268963803260761370326908771320920998195869743595141714682056964797291090632675815630768312485223168879520221457301055206213344710134466978157400052172345919310786436115991214673130567029363258847091824415691831017734292171977588466229701073461720898428295216514181738044938043249467619098331498908277792459157284437647146701727762947721391013439496861062895303739786071243660151007342957326829870029284066493112578136843152266099290511282291760298126979603267687114298542565393708335676150108478292000477774934271969902945036940642641004156398408838721576181734434904884215342868455366052130571320216204169529673844699864468902583528526758737547579973207162456510959174281864533864095031719388515122393901905153673521703829882669535114055104989118742850933943702486199882628491540316284681186615280790381150721585146020489424632539380689544464726916370668843144357724816560069609840068513757438951691553202274257628065944512225899650111994732053615621830637382915940676930237056380353322190717100004780474431803957975248007952187298603668214364065931739588427438362638594188796557947009171749038633129155751734430375732805439634117965406321877052913105572762226542812210041716419296384629883807005942482780456604483290245465712517376985009185160346115125343417316586455049910805208638841311027716443377990387102694412482176201988836255839191207351233320311846319995186530420495550356029313071422448841762547855716089985972392411894029318806925968887409505591723759397625886770638905521149722368323361693310566164421999612908745243896358112021571792606666487293501955995516218097641681746562645117005241666973509486792645312183026445411211962730364879764994632936052975605912104443756713252592942085050262204289747469163015090522699342529014547644605038251543463338771210913453369870045254554243047570427700594605868533450924416499704981041538844553666371320093396414682616506354645238937699448203946456042151149951509965750687869062365183967083455765417844313133276510415194702326044223491456026914469197789446160161238378103476045291441002015223667918354638692631840976440616038069160293379456195015174623936299044817849422870161646955654420363267565641817727157395746856829556288976312350651781964558658203896174836576882963506863944324544517301887040430002519854124920048422000584466506450987283331196922351112114921085635363474718250704045471453641917144776310376918501992263556030173951981060096020042886343986726331184034361739722964884869723825980159185582931022480716840130887255731082299160088168241222624785675743050730096997492166620837294995346252194227385385175325108697952520881319228165450640726661993330987025060431124437866890131676768197648397921638163251350242549866352566294449408467109935013944039585139800545382383962089262218370091594422727983307110439933405922491078141643520769887252437191760745034420068949107235117205109568108321804170568750738100107528142387291861766827545191653236071717189151839202614588965326952572324305923883957594265518214185535788321276783672240051575519206372646820657322173333245699392115075640672373694015880021049112666071183400329622790538941431404248081382401935492112619955676174835964453122177385820210986078509830236520842465588736627050493530119356659155992211871422445662510144365426291164804277772051129359111797951339765979786187240367330768831977801887328963211241503707236167344418098056765997677947239536931613385923470045406124372052743856510241792325031946588496198813084874882897921265839257300217443814351396382510469039300204396813409470434645520857972602375394613152346514389557930466385061830978557812441062996024036759276484366833774295997853462252243369242776695569437724874297106045175849510979982928716085373133818171716190480427208243756160302346294583420396172826336736027512705057538432092081191949555567666525000949344407623614388715242955798194501568791882115687938869113816135731975699982003542808830143426235770259335677602355224951303179443823794621843706570734572179868452423040311608977591849169340228466541084933554411339018745523778176138046576431865455580010045782787402755813232635153367629410897774845418373508221987803909224917227219646796576317068368481373708220077641670552840865058746002400488714662092095718004624774855677249503792460030965637801443796006807946831633851962096450205126758195569717362659448463708264564591600691957750831223108918345148439827315026935171030789806947694207890341166180046394899851830344786884541059968160285969838551253773792940597823596719633156688595210190764186520126140401671387603444920896989155182710089122150702726542109594119389017441765750921618797835943583730684994456850650584070234044661419658825908496401934684582449327928410818881690889253326745509217376831575112827690975990593049347380724774274522943632920406995612880172215758750996453045709107698568748291471517369199979622813308532365191135979067742818704312391776433354849298278307923186703126477241403531710858934149339562626619906020756451448814967196697799887236460376615685146827189812043739184239622781499933485194567906330743750529220189319637804520662619924214367172027419720852699322055361889504565161355779648748258550478877907080569045050383273457440314027186115296178556980437033126678080296828767225550496232909655939057509164022545171393298610707551808277886391857881566376961801758485405200094220444898540252725504516897659286754027681864122625734967387420078561970713840617635922639395771680112423532372187933955885910047723587065215096647296627469671144303751351553137151771289842035717151912885373357998709716755942049383007814131348827676611538406479768127110796608972790011240396472638370410750099869186545794388593120689141212692997467319223919382059827292816920864918898353500969977940907976660220641020078113988326685573701866061132691099051162653532017583847056156628675688935659098481537254466088824149450744324854484302907780640998185763428867338554270302356249950514631975313056557273394532283398055927485829654797815860694617490377064457103625474005365178563682337829770571814790521963729438599731886289187966719838181435634270184559787415193905850409903738627696630599666013396902085659604646359025780087481859052292963336177155426073318377950611440856418951206780302837554830087265844311127147874931233981406246890741691911899225756985261716138748729134362212550825160329533134549664880458457030532372920829632549965485096227575942116041683738662079496331232182671299988581393265816620517547854418934311516798258599438480493086625998948367855671161645948532982768304216004949595674170237818842887498615934663074991675562022459091180298271721950806233055280184817492643646168874752984788644648918991836188031873272271698531600758712670654848719877261850850301588602869775321055789542906935010496371715381090070121595703361352136356996369830946146047947461531615941998264611610920449657326260032837592565403920481948696896353375853296280895837977167502042167129085227974553362914293437191136122803415228412044080175471639848309966282791085515014292764782784807323027954664134822232469208979006524958637821399674069906461752421676557105605102893903659097111820932565099627426043896203759854541830033531435721998607154215964908255371268874366663152166584524869440552366755070732740721374150193669056644245674058054554372608631168577837961915229810700758322875284556585948480409045222930064421776452795919076330712179082755063280440766816713850094874911068035807501517627476843557523341183348941249783463652948416419849125917920812328957897278540568818601810263552034818701207104404130587923556107389180270765588158370317781544951490059836657503233244039162275631608706191171797783336699079684902172966855568961525008716662744386749686230900705824237674988973417741821123769068816927635365002400489841510851443746850969520685658932483215928003730880327640413008975999422480603504827364388152832377813922030147250484357966258540858377320149830351476407002625836436384099437953137452669666100693602812493346350755173302973254210982010301701768200043668846290645790725173904236207605894389547622669617391329073849057381316209028141129464389795377904001099476670707249557298543509895539022710239917250184838953492324233243786599891113855737255251937879482526948221857298424606231686297419414058516884874189778594355836858280632897694175532304529343178580612193728601625835155086155594054148063838607670159470062997223749315613160771503857003643017506611196929266750657257678043724072237204234805647087261648483592392547375451869508005296451856195298009710594118254835520737987102649757869806400712967480272555720132720888109508663384094339447511985456428635132081643759516338115993169286802168347083723436119608854726453356622677708730505012905207169190321494393242497542113891580731398390023220389171351452514938303622475424455633070101056623340508557736354917936605425227347097361013005914126055883348340330312415417269118567303115474428120024365638308230477346504086902884182777466164331521649415220134576027950234353234022994160528589832336143141899058224244707841825045666891523169441680942298768163776956306336019095167130512600154208277578360046177669953329325872482448556921470208364111825663222092444970353691669097407127463708184633421209197579026221305954077006412161611276753448959866717450612331400319941087397740123758227876347611697777063723066650469433002744104141961930036400370150298359308715830141311483475741176259964251639184866370888360027429637215183901369934549218723047392410170917272557171367032175613565040484629434339022725528114137404334016932430367413720719290423509035964160210739399116204422822305694925818038550212178332935867182699567513178390226547368582931272472791135245880053893636734014937615546194465904148833508490920385728762280476583422680372376522537276696149231528758905908155085359722462773468930901717953696635234416772439525558976804012961310684803568374073116079146554497911439900551007115657347548907394394852313121199873552256535795776181500159231695101208437003295122101349045572428788548352030230877340812189823042754772351590036976748450268155729441816674030504192640519940779521933071812450885380341271338498404098844394078693700181561787283617913037755236431923950279304674785334443091300688073971999787172756837992379634196457116933749629222418725834238276981869348478941588001993331093665085727519279042267210550717879238753647692172798021135405110293786635954844046610890730091778491769531858202240688312261520175378529881428066774678041787278884279104598414065414571841497065648865101553148334032064827758874255372662961630712703971739276205965691002475345077042660400631280799544921232538448787075183377853536732839160534923877397158721373187929039471679697560601651869448516875024998029412177771160432029432196114796820515990054585487799342007342503704120065320580821557026048613312192600584524921450344240144131983881822549635192253322890254568542029686765274258279929842236306519915427150621267233268298074517316143422920018524568500837493451168000916977556755153095841154981902446230723913859824498123783354982141440193978772248761321230580867920846288040220902000853525462782847784208199606631263707144794699662139417285632893782270350591692819301562030264767771247326510040349336503215188321646859391226816163781902127408508339837268885716476097712613223534215219326200648313455078250571961420985388097383051202145777993369588125138939411539201810373279103588407445923030809204807972541807340412751423284960642216829747123389354275714000645872149161434081734956390898794362039856636837762625249416425396039676891327356275021102806216942049761719643729745989277938793701567698543401662799771970377785115753450119081317667611028697561721575389925469519073789169459116810807050887301382005975739922870690349953511390435007198713973832719420945379813661017642829331164742947057499248713096138295754061075648892651687869647992148247393988784863104670154112841581559570806000409860333573751403555851769366267947960009342738380437474204795860848440493357665969366196135243088587183446376201124385043977637416314682420681789467330526865709142002238676151287416842689492286276065861039125200044238226488069239566550592309639977728394645012751949301804417446399244871056050521651013359285697322377399584382543715650329300190730102263902014145958041234708162725373546337288899436944609793249811285833046483474380109139975500452688312777416724992070174175724225263850918558761733813337894962560804430069432003179047008535463979602521362178875804133184858741136629602448220932631528214824253060397940401560461260097369263510461220213104903680404925648089777540143225564566022554651527969300941415232912372444961649446897501361010381990532257421174605679464670342326002126536773928961039216418317078853388255289987630010500710009209036147581923631454052147091890597109185832986709821449019673391795343910289345201358347787675190138845384907501778102251400582288193640345888338240082243099749267313021649181481802044197593080372819808301918082850796510111933374489707088857709548710918108400596013350610169279511468433875875738718356015910442159419054702302002122254826702535706455718220196064148957089219829184183163552126432566808032920726129662073631843557507322114219956426517456867191692979156198783763350385447685600625288604803493094234734631549616431335708776191065330842179827074408087920198369337271894510071688946230968176925170750755725832446252715358849801154176375382649945754995130530852236897169397185414756178136932470165237647127501218556272307518683261137869607388457865831212234072211313617791307143631479553250775951519218398128409399746390947745458482305228893808844351297519711866062350011658849545515668468263671762696494945969203665093843709026210073572444357121822141939405414342124445516754408859352812975780567909061660950231511017998330607553646640434351219887413817671798269022011045049896049279978976831287592042060541586862775208265908294697990198427567297633890218452552226151268483187776379629059659495879382279884764213437436657578047101858212634546809980068485116222004546740329480100888536145327354344258743059668458864800040218192105625171652116432106058927594362051370332440583833736156227084390006579533254558165933695975825129284810388209003179803175960552885756141823803665576093657222615240957989115538017875566281013168002539754410799533804798733223282291270770912208514361897856851716114191869087536552110226460276202583685447567024539110914629512563276385498737729591372060537608722879270117491514897473508271399938793021637692266922457554281218864969839350643877781253324755338014356911452603255947365707643929471807377460286262564871789856340306265324764376501182248828679580112524149105598603001973418565228011787788621845384213183621546367708197020480742648678937908697958889859722805799533448822728558288723146761300741305200373812127421592843923077167544336554341715747117187603102095420761245739065982175062979274670425144730769434529060732733088964594587379490525917177285543567168123567982578317556383494345840240059619472387054834062738137794027670312400442225658740163683993742964306594874330466207746022406882352884203524313955363023248992063013791025496300560952853075178101717070383805897711693946435669368225770627157040074944079814577271381896877829561740591341251630895657425293781534844060025895797655586061807423292271694017135946325197913948489300419537907896599413509374297085618122054771466669091575027020025968071053804120966145841573614043406562747843324823330673676336936975610160183576660989214090283438075610660579216866066723669628532604980480711638501613363558234556214771133226860967120338322385085371029225910992262189841850731623140180742762236591461064712337242072354946093195858966197771130327622438652877610524709924645275674543503349259866393192272705506612699927476252012386300625915387203914719681935872064616812776352798345897204625840521401466692899278280225907316825974255475013622305952291371505880376612138332076975208990210968287776789868877749286046555297407577853785597167088762888290402094289667806880375802722955929926596894459147720379563972469483741998129504883014671561650186193597450556835864030044168525149271256518937038151379741020332709603784733343900517327757583485268132172761033273807819290258834496304629939494995866134017649992660270199953462198898531053472485305808960267696304447051557512375035152349754007314829193078928199972471340159732771965043862068387054453045390834915016724590145788592849031108557823477638888198807622856000400173593284439341733867293139788521447768275287478643720744718322600799635945117257305246419654773493239752441425681690504505998988913155938894330439618889293633823887951288355171436456994026941742301673683670168464615017306111164865141962450504846930356731870889127357187875306150736626060693312991916532325577633726458188564811004866218341037261455832778789253930371726012369827859290467541721981235541445109078598841039384596451112122493976213246473521470862799429989183488153615731793690958277877803524337907464917383469643717239403655875028097274850507956722536686765921528653901096410059610347166069039178428839193446547159197812197964943590362371484343623256418391241381388421530498564506005551018662145182571388042329343009397901080992652213350539719063620809349002942226258942879926874290993254756939843084678993208806401925018830371698242066608081668676294919210232143935747821076315775474484907590749922019023148383578304138386468515885100341458400403280788908269973144397919160599924930132110646162616765377827977565058794095230588352725665443266931493500608634820406948380642686594688604077665479110302107808674256099676056910770785142733846155512821036189401555532084099660039695883484671073180743672093012801395329598646510731692219173486150965884169926864042511628918549607895349070744729492295843267609626131732772113538014550891180428117616506757377743334658601826538577188812034487089929476863294094856619094581716447243255578975543880200226367200177902202256991337836289001152478000635676735596653487239119725120569883929380107569841455549956207419960656774665321567059762183528514398706901779603518424348658071970992969443160665854579243024210060578389363896560409821020546422542272022106055225204056981423348082657625300917227240385948210197839291652675712619596080010131580242062231288607967909556558465294366869842113125268618399397721077721880879352441052263405556010259640827968703224604222414631463636906199021374992765475918649493322823549449665256860088155888233185166833446640824973259543632359067316373865809075258409459138652429029489453169444906722819481886803365928468195705059385814827483579213904194461895744502994985356472396119423096219721029581889716578219302314019408684539701444013110841408874325504532222931478939445898120722402605820590510905562043097750584397023501150111234409578003479171645363814692097050236528107569281530091011518784471605930290963591558132504376705811420966043316734440783913618117149782249395470353411893337572006980878038531123005837506713251921246454316988792657075031064197025523883635648445701976562469245845049172223360387688117114929221105323693137774542094891719104695818437225252540897698524515623800124400029563018805254069728147860504074749151852334624484576645894115232460002001600394257435471430379878119427236051646402734976548621709928108752307448160499146709336642380420587067219447177176624589407755483839492707116129205342870736245796595247812800245621839181950181910005528617612593071476330616683961735929884818230649098727713407443778974923326722516798919030337452290548519889844063706225279808481961586790751362307513615408486126453933396299396093055230949803085179441705922229996399443208460813416949419957719186385834528274857065798688490915538709148860445817490818440317334174133930451430858830502456323541660149548373041207181479687860027436800624614637298362097526088248935995093350982927563343839215774284975307582653905236205551024875388089142526958365205316556830983975394666492778524859660314341773443488673316502150226363078353459325340800612701046623386793590362381538768883689301966569515660014125990712902259175064511308960621779064395189330781002362410006661877133842690374674213201768072962309450486209968251489798340500634432732668881412984804135098768403870857829094597012611057874342985163876837940869649160954625229016026721335483458515417884981571984421789209895898688875003778958846411232523257182361239314983228866670999995965887053546506969036553096636221862328505242165898085105219103489788663360630756014052148659771071401139115970467161666260623547525795998050196262626447197489224331475552772651264561772309923199627161678625850075395255912795536549223260197212380021509142647014447277061747223776586373688120389137853487766968821483760313933653193583161694707658670395880310499905886389115714673381845679243435563861831446649167604490127294748220600961352862219774472193919218858646990089379949464828430587675036088460521680433227491934238597456141131828088105300865338407931660920572264789445539857943183281790989691282894432987311632606346093755161162137963494832829490728892251666256525822246558525902118398661540452057569829706683433086809174283478487518623013703317402584230028570424584778568573002784798554638398599655305340113227013250243987874237231898284183292623223583469097194501940589407144599429442260247431357302300286491263815833817995954616892586491665195242834763702354309504169821987679470511772482952667062227585232619665519478524680591718925762784570867996007202456791084405480492456165330751060979405949675485968164748114448846352108626402727072586563240399873735995485053792370530643985029010436022990217412674102166672846897713631746374819106366467522327879420915924164593866512331702125424895589943761588964453302704328256295671695688932804611765676873656378848672383037364402472752250308197428106969041086928541488720496841229049304351074055744758800337078340475209472978484832723948396916991009299370001454457058886669777627388135758942086708247645791985535770996198340641289454046773023817869032326990627316960476171560229647864006768731142534102980746548931841907566866839097546346011384061216385066582528754771360561892641974487371460253739839215520024168718725239177840424759094453032308525302825174637504957999960979635061818198079058448891242413943219261751917722637052121658444027838414468689229218490634692719899091552361200875516617012373682110960534592588991122670299322718167307301915629961766801643304635946337561337516039212364680520501440538378151994336439735242710281708353188178022574915071453696088501542978220315741875138165731993518609708810946139683111737560047145879638833881718597540321384276501950901773061521904662094356400581858568701108996773703876698823327931788351553269594255018108205478347129414453199623132863448340807107462363225240283823323160080575511663559762094006009402641510119734063805430180479671533339420695203246624534240577480096423912542705078766635141675702547594641189630812950782942809380876595173835142325703431790374340311309868367195816085143188589882343537928536576068463991100674584250437598478290148550649967375115350649957631579658498804477437805878145249556562794301032594225654832259438866844624712123091552874623935917574489087722030391134020289311598496000048454323614236999596902890103367820047575062481205914820174085785802642077091464931512074095608543928278311963819613361185134250137490626314420770786102085935109095269440022883324627231288640179042034098594268611923135313204904245795805000708659079440215634150257342423554599507323242321313166786594023794864705445762796544074654342403882851577437047319492271121467117491936834930040186635024133867496102302928137309448079707152491851445692270385212071556936636173563011281689399387448280317785856266972817572702802250315975620099837815731810427691256190116956880612790831466523529966145349065386495797873863886363619227377043122311094773171073916527741636909620117299658664559195013893548338562865270340058178162808929907840443015188733351006372271820338573116738222316930654424025781764870662893344245103356451101045640250462312142510810076236741014759370418849987192308484983044949427612918311781850270293591589852286127660042906166503368382800126501788734850496324662662227607913151162567238290082197460755479006078960977556077690924933123445306799815766213799184589563026865838874815779554298813491994198216389484477166659753742259261015755877606797137884562034188962276577161738615060808889976641201542851459232152343862486199231680702300918062809449082213036042592353446224638267533859697554162414082968352365510950290224818267917206059668722905146507319747107280104991878326189988367481482805749118843528297454625349217002243726786343383154839662072435975365385678568032434843409218373325512988332345506670953831538404784133706574094496715177658724527120921328186835969361924553642674609717449966990564082387363570925635732027485459622758482805804815368655658448327957476333096384009797713833114452154844265216214102898713662009186496788309252278156010925691974185483900303006367040408874351200584175248953598658367090386414637587856398034557608703219044401398332906319177283444467606213225142720967197999365947694541923781040281978778165792778596475936313747875532246953732125798115257672169923938494437700971895403211072610137923566364003137920286321659568673898174575373984307605312169666360911848924187399390816460662976175727663617786388631589942096614876808650357494802511693334273988389778391697542290271634418958565991664587588173633547508815775180269399393905645220185758732617475834838768742368592398701961997291619995154432932983678657915016700946824736357997779712292136505727462201941939686965411622292442857572825561545542875894927165718746481853783802141576770621303377215830133039628642410796724224668639307619797418730528889946562418596301465751524849462814310458069573355851802391564739825499965499152543885952382936045954503419801720379784894573305393290859289404908272908448930107564345945077755584277175458327057860741533753498740476237127165413101808237436591861761916404423737742149577693643700316559111642452015162252069553768572150797961023959933825496452095960340928719017780180093046952878065405453959023972818707628554824789087845040954123388938939276350734106383863181568489667433354663906050584444230947930088979656683400561121601563631684923828240638218193014085816830116385245545327211993528996034929054413030737716612883707406074067401593759837857327419244842993689803824114427132685802500138341993760659268858783334190241814329664909628288409220866694787603254605576666819361104997913931573819425208882116159203624439564182869287747770329769421358135464805433408169417992580375740154293802752673401661591774862373468299320569534265549144052182591322689081680267404116931867652539440383402382896684217328453252889292251614239018792575677875947103899197838967529312571925887391828729131290214633877499773996164873808657732693123607578795270767981059930128800667018848772192774468394675897328696319554203350248242719588245806325512247512015986935634918461785248897783723851220235965728612273647218371633888403443644595999529506906256357644358672802838961151823795158544799086801615510992635516295900929764461912525148013555894707256793755842381044308277719169748958115987284648421453541827314327739226886100067955201422944016067970308450707123356759073925984310280396032040955478469872907795637478324301519809891111070830364363663775923289534089430788291983908361226486850411283712695452014351763631296273061489322147198739100591615598694583983552346720191780006030442207658266696844943807491955306761366095070969055983557147390876964173283432896297613146538034162569060926380907772069005890056769373385395838286234917563433265670089079184986356195767715861441510506505569744174804241704795287479676511149919774477952709357736102224759188575059980864584717410715299791111027160075142245820865673839042136606972755085927901049494983258600310606297434841353823905835046825999985745008356342436575429264229065779233909519768811505625247973096624959192068227431204079348467600460105748292485109072294713115898739231233239735912537636038051276026258535661654596951647941148683624894442268882547716521044113804865509413099457609591007100153793176582445415470428142629566646619988311887213256712432030284110299219005935020749079210501686488243932452057259544611280875542666994451894018004440159412642261545977558030713617624877496453693790507986624087404808284567925119521039263541345186761020357552871762136126397840128785820457246965038746649896049315437856252125217188035559086382765111512227534874374073786037125357638949643630777387560534787784116076559441832179703109065423390891014786604278426474242270801148954950376509493281581268477627650968272932467236113006785864703572631781967851147194233432948122961259102315775731976234133439776791584360220097713099635345046138475379485774737641470621280187210277141713055705875289304512202785802603359850976575824894399421553554658908249107529057155365590739818029882924451724133868171735206317997668427274348852722326588565036080230547160733888686980135068877839757146520062655417025086695326812812656940618083441109355481622546108239171994411677624467124214497995016339000395268817158964562859859367253785045696407320664001761337678305678197536407263107262596437136253893552752702753920539738581232591455097337335073222453693024533497883080199016791784130121614837174063403579390982441345456454129351964295098000916672600358476817791871415719356746307523367917635512735192538186272607671309058102337145377916842215413276227711895154916590912974702616278597315424110671213822535647100906594892627816262390924293576172965196538756787086697119913754273407266163063666357900814250328844687826034959716525462840546514250571034681252598635174171050448098725430228066260735838581465761402080971482422243146529211557445779986072309330104580326942625737104388822997451384580846392166427101832910193493899343221222815042774933024069374272747142558030034353769858220908474591053299595141588986186265685097474381702391444353328453704889866134549891747862226533220101987831197751163832672470499003931915976068773205625106542827766956126960995550516937500204869202492764218923143146259048925263282430937598834816101842588271179119075782844103409651514548313590609830749590317911203487884671676573168597372863685181872125087493107690863127336779380327671420738415591640698554476127047451873411875013796372685566681375222609749384354653683773152761240766666230303526184834905554742795401813351636984081362923382271551533002539946646060272089071500888564297303369064148987881303047359008674391434624329275600472400808951942519465399968841681440831205163553677892205933509212644207152295030165358093138756668599225934415549444375477258232752578030971707537036023031629061772287765116662023423530844332582605051124307917597308331531472734316605122048623443194844462596349999223799278743716015055609948708511032548674597705876822664378961513793563811669371152394791268967269833777987018059492422623012479030822088429985737924383561307878247757365075319729243452001479414051250233655352143508363374668335545896692343227832343027546607744042305001374119270216024218087477663262008267816842889362168182415121811753244149546355551434137339143514189043756026300088754691002249953668094778828191784054617200101248295461705834322294666160949530363457997586793790022640942203689069332599215944821610811912988915620742577029095084413479504973119971188465661249597678938018391401698415779733374938992808565936632647396583287348123296097468410926283744436437086193255869756263557150676418212729520382479137290908541713283460738484457207922021151366901494494453988059102292597462873015709193547573320516198854056570869465523449880579666199289760524046096261985392289445641767876775522546609541203840680087410415537462864187065074202288972602966018227209875989722817430218547110311624991206975023138038732321789782445263158333725532606374976295275449290109831979769464532655806308989026543369106553186119386816791237322950548572593650306758718744794165731687118468439360521003882001190642797299028905698727900785270738872041782944052407832992599666224479662007896089598632655695252266112671539787471551344635075847908582339337022494619775692535343834184295071653690491745210369226205851111745316319812509004368507171900099292630012992648316538485545594871114185984859660530965912436039465108622250998853667719143091994388542340148747210508383267824340147591207637067985273622742524555630518294369734645691698953754651848165735215494956539678084529767787363917250368117921590123196792698905786673741747790199548621943612382736430046273177930869590191558208151057666474716021936282006765424441999923866273557925263812821754787037661052896656434089608162436651279795783208621261387668163245357902212684371529922506972830288129816394882679561985691028838467781793360549188193416846261874613594452324096578153881114463057922629010655776073134826784868513758991563836203115253990364244025718463362760137786367276101026222272777537996501859913299876561666256853763461052206672314286398454586024180533075890025512315678933561930083725444896270009655320635622871944657296948816346213446006137273286936013987653697289939037360386128976084321083935318701733541995310660506852765807545621510181347499682408812103409472811982038856964862391344679041427473217707785108567845730496198368742107948708123095293017077136701742504675825056100700382202943867990278666665679234848200920658530117851841953672737244542673980141781689682343681555066813262165711785843437289513016310468103512506771615101421186095009304107879012247470766896525697026704855253686847210981757236268005146187806575360683652235729888493744272164309987118517846730831534611793005251215451430105088278439996044093771929460137825836927392842228419204248256946375379081369266925598679132505315829780732082379378986443081992559756803218190190313725207526833589011795602121382761542547817900646719736291436900621536929489916742424719255410352572961533810565488302697903233964690979134745702554562612542195792335175442164842858809837478413289603215779365615522451326321432836775838468984606160624791005406092584043337118672744570105267696614460123969563752077074824381688301383056943585400225442118515992839850797079007077793740259701514113143800041799631311454633447917333380589213630841377548758888645038095594240720442274798185245233530035869854777926512981317363982626578494440505866415116217335671296895420583815576922943845826149405602185049037861780124364006781390983245121410397658956558844565337368822249736353500475871030407371806803932841896752350855723977083855818236504504809619133243943196271904394239670621401672285807570785813428282937823083324617376740271119471373136184094435767016089215748283464488969424105258846118191795195232485984664660353822998837867525118046360714603091765717718632142908437870959550237766371406079782216401465459689363988435567106155195006766378906874108586868893615193312501004254836915448777259572086019221417501780119338469535017884732900978354106123157656676379228798254720862250004756466554326720461863445117952002198147273836110488675416130740728772737312480825085247796375897735754402403140041022895473218513140979501894386718007816143132593182867075691228280424288298653074765252490889572590441119608750262941970192991799250172540994781557872690815473221451351714855224898311808997406083884112459741884348718497347716608587762613321134914059752095678189711500871565808621583068300389924975380798547789493972168119183779523877243933493634316637026896948332770327379900689866665762735190777095094427198957744899268479166153775397552720714598070059799402402346536098959722359239854605697144366117493224055580003918270303045811957086829069597989458901124326255629521954800435704704293237693354795303680642235671788395590602200765887343855630201772200475712027925986322025130447085350730168179188798887313684609132476246311051725408705665883498764975521596162927651567928898477954284975320870882388567698623178564645977595197603263604181651181091469157550017311236968563295900865833481020902544358888869989428658635201155083128489442771888825596419286844939169238621384506839473277813603870323844638105108541978380603373639671546240406696091244816803135706055864945034854967790252845260611944447788824805803335803119409721080291004307725211045094595989736508863981727590871060751145680631773156340435195051964215773432612389093783570996044131989528679180376688371772177609252572619923588607502733113064560932179828748868670159044983337776087223181230153397118225001919395533144561474668942598824154431928012366285019801116050959324571381211541127495342317896302762400164008610592053062799007875765601184665650068135501224154339401418929645352459036104395514260762643468568573618183118436787393728845161543631919647745477203587404272526465283263409342631585553581788215133339395938348492344626486714852966214679806297168042519191977607316948118595275060290530601699417055067908274380278346525497325589844300109274794317629116372663898520280743235826974052064030744164373738669267746543719792544385310371813185573455826631657163144889997259192481691323080395942383892334670775443993328892792924949611788586734500834678674951266517894182217914003598856873982439244886725203668961972656191689185156014541887224710815064552039027181965094933525642528194738850367670498464227238008853616629311790152286993596235653325517355362078336249115136304878114763290808699903391660796507903096919080429930536801705804327965824315758475686381464834062950138457736105814142261341756078247318320615555777810653782388899944690699291682643814362712069987631268009919064587023391676678997538686558684407614785168817546513871160819182382580414389646054374135892172929153192383874030392060049327854708937441960354717977361408413269080561467730301340188300576729009161656278395488763587403212983474341770773351083364048807384318880352209240400058533302199509696415901364872332048781395291814942292073043858978511986473614683585769410855982377717768786616191580229534894846102583424389827262591110085245024179991000479165899134092981927618284606648433836892147807762809263126615796430440245671080260088426709016658105849783265468243080375165088891011293873499684553765878379711541516474274119252413775060623684550081160433754132727167759873917255515133337090329460466295115239648146959635222343423590287284460243352167439294542420370575100695041347315774401325616316978377155111195662092690046738407277183639300811643735956361368284473336055935008399617653643060418079030259095659844457691375149665154139421920065329448194760554720650513593005896974614329892850938771853359332524518872190037313152441787845613265812809125852097099092943180934192228286228832702900325349425768661141289799518189695765076706926646451436652617451337598420271709001687823427671883646409004591116930883016883580186822339505846089982574995562878630736291533291026102000577692220033685284820744759506207417850251740315241530743882482605123211973559880687167786479191239452829774076132376805467606352965949495234204915217441687256262166601903134125265579144355943472011689978778573595301702645615299057932484419388839654665926183535384232488811868083649017833821767947037023744586073947201348637314644077690502813433117757836629109079770429980541140668248732443674635326380970853337404736477094596285007053775452690316517006136453035901366773326448768261394784227593983046598505215140891436190962377878319353089797906134620491245601485227097784041440614944241574298286709391849429372737431097853557534971077555303169787695091094118505237723730050469572295111789244323941444076955415448501332448784464420264284922873847493388318891991177728739963105661927391210648683929378871183171765491245945582306435193299463877076086522282273530362949202640329795137464164237515777820690463977197248804708434089447157006887707387624733419565275845968221973528386133506072378562872421141608497404304830221855126267217529681815948339112305650502486486050742947271682892176330528928003135918975219433410409014350666933382499312316427103375577029542391154435845968466271581063998910294210030713961825899156086011650726327526114755959922848538699709942602186185798321019502767670528600848064560410861561485259117602071764649095090218056143677344492767208763557700779154399029747208375578999037465074966294106175958034276891263583509180912966282099966315949301993773494859577268328624567574550642478106829814864552619617011432921004215847546011531505927630405120082163348358609028900626292183126724484288096475355074487712681190306655134802125606092974865695718351680538616711398829084342815357376921789253008563236311867445477643430773077260358940373803953353949039169266640602269112791210663120319334684663692279617909758831921030368787497829033446217137089866831477745190601938408901266111961716513158693955409603411854088109257776063364794439701279545938225955713817180468951511708806384102813265036319157013916371709934671840653960877482703367508539238613371468058491350435068882574353796213892377013515393730096877246867777034135188849519979717360168691375923864710888936178983842124095554401649624779386625060393495868526499851024830775719107646847369779950490544156436027601733568613226628167875212942606755296183591062347715216973030480230687312882771474295800335140845664012337115223743446463956227169305009391096798546056136169595085093208329128580062609577076708680408094678896929931889023048542890322525934428257625199674215573700889544332633588528015697840868864267303440185100108041112058223089410757701998610632886264709766096225178930522537798306444358418912316456598354547323134502453732017281909679183329775981216591609432007456834605216012170386583891803570700797519814775930769329269641478519713272624628325672163430348476935555916280292005144393933486488010454738720522036599743697028600247905600759544948776454031184252517448858831902102502154886376974266511747363857250183563597379310869549463829184469323750661855042757205634023696978180185895222512003281175562537446634515088680192346195661098807562004367491501186059003511675465844122190306783412622359226212540312265844093115943586401689499837435282440860158770377427007245952113470672350573359725393098239868467890778124147552209405911836423012536320182451020972657446587337572703276860782824577039570558391189007240558471531389506480712300596968732619828899716871145824744927460202845953007162630791287421430088413934925795318783827470008765404377731091184298970836054675959590794055230538848115066459274316394542001974676082104424732374623836078892361772595682708883404557364401656138448750318244809190183040094686206926369024446126636813778782703697886077921924988547477830077338497897455303142694462837713323907440168166663229379840567487504237889256292269839995887447098493628199909180749642226629988435338255170218831014155155689011414919055054513153122548440443095003649821375156812673469850815424103395467828920648261259951461750537213857400991115694490214257968522062202609969539665654614369340143982451091889221843425624017898872453101099643165210704787281815918837081418883752803322158942115254102998541880594404087893088419648234243210407677166052301815638790403188224782774901240555665192894713703335452052094471162906109007434660018947288575833827108023943808948504451726187127476645169139107828365295885282112459366656079869849209763043511723823765034684364916496554419431795460082518950466785689587006197651849344056383023377902148211899210146540301247982354584885279286725201780055135349390938231254200468812506600933688368235263820513713122827009783764122045527915654071101842141366334377534761222211094914240396396743123868321825437512502672932382804802240066142524819453719900159113939521306264732977071587776621899899276408215086721030008967167416717574549897442651368153856818103260720388701676255262037513790389998615301648629375978260918024634179303827012970412835279705531091033093748285874393420755846711053979771836855760656560810795701156071261520645981464318985505269014951950269059223586858358971208560074438485152472709561052120815671925555074419100764776582012871885868259012573334734862459533717527592303407035270201221229918362125290540589126770523818954799592361544672848005248215812622709801861456431030513526034182674099182999143626924522417801318374614332586290287506376103370776487675776606597423071304998373426761698590386938424273121549914625837793053029001434764181420844929678737114870303710100945491372296061601451611441631181969827158391022398127761558702929492378769682633068515420223718300664948996259857162050937801151193939619304497025263716708333568276886460916326790070382466559831427091674216730075444738904032246033639667520698107469229683475112991192179457261733769545595418019641408611145660563412976157593859728645674240251132003466037222947265341173476083739542011274972532690931992556741309132351240505074365050380699747621213656636789874584988650046608159204804796375105196917734738533423060999505577269923996986541350873848493913527327275770177813063432131647316296129707891576011706338610483419503547842280947186685311969444501043229198685115482067221440152928172468749641286595683994223589631330700188252715202400467466032188032960235541171602646733682709991250711098071516704020045962100116021628212188872341447225147712029217949712473264101421753823877196212577579877977192163031703096822759755240326525855202585584535918048630454521548298483239672663990547646005492432770397223388041061110018181757884686214769063387648942893460408851681963988840231084510968878034035919484798439452063014971609520851180718178201615341994475629502568494897790056869701728980188616072474636223332586692866280893065906696749095081993379888360049361367637701333546491958111821023304126607990654215074951187686116837142967671369408904690485085111675041793095789358494320990502507959118221139669871061544175906029909459302937310352605540526282788768968977615424908726954075359689292157014921587098820413612752118528781366675765540032544037645899495444495572421939608510202294634176055893082823656918650746979961688493368545639940839388804459316346546425351036527747728945822028883850438231970687042679948748448353986795829085211241954294535969928318440923784918237790899439037811541562404044676720100741325817936704310548801221648209977601132817018937951434371596077869997298520266669407123902753747000030432850363237615371944950451206709729218705884275197492954942946138105190759557062442442777973922382821597686745739448051830712288382856642936520282466888499312219980488691172121838925288899174448932191427266615793735601500348173983224205556936973818220344775105721137664181582201237703374934377867721905302986453653709167200139254315874774059025971287680121783045157411367899432887926908968344742908646622156677404698131339227191495333451677411534166711742433267504520439849509472701887349243675522322972157715373066077042676314140177494199527006014707749929605356080698705400418032728355239417838082209284620773941397231751626941244184985945494773843837796550748194744915936975634687678969202656904977158763704223694568376012568101435326076358881178527812034060274243076295659158374875629541674170967810221871628223645598766440358859518208545850467523371413392409017845136869805867087586060381988578026956862118612942212757059059843404494160188060424700148955551384059552645449947764881495938167567343468925201923185972436454843080414681967246188361183725671748434662077614241378161168714556401168016610712891994803713626800602754421607095747704019126496338451075759081496184603463731736241784888686198201563544978995250905977379881026575483856642807755879491662891220685334326474876495182660469693475116643038953551419544167779590835487265524674021723165827713525794216672920393346581606431365079902871395509633175434152310986968107230833929187925538091379111655594340330471840993627996874326208323990221913813329892184689181121506597187899551424473515652918318503584857917565364421287811265983364655360348105452413438252763637927198446152422473923525445765887006919349944429600846241686992891996116428408369169867267206417470956137865295386313930178439960752707813436183303739716492685822266612956825560049175032453183633831013378086765596647545111901266917945958183833046018586759131802538745571470673248796410791688754458932420289548799686851250764510169167764284942474886307077526345259571067281767679270552026271660917552860295404947722507138808774793070716684281249377636827622026927581935763846883108738480486702434890570138094888120299782732318165957323652756391426879212677602489296699463271640786500954415689995883461186976160098266081684290060151726119400394015677551388449172663420399686534185372638222492706364255877490010843525142721838764455291336978209849345462382275948344761797341887729789422824965137753322799744798892610484812487488120155633457680939545534066029624740808523334481797842438247776534917512690857651571852435548989179036389684083332805424704467322519191325457204660354319206797192254459680893698102037131704786484113812708437548032060860961174059313852194470369101379649750769511657361468743344782537502884228771983929758062177080858174825110488028886478136005578323943149431117580437298247537908557361073450106694388314662653716970839477041674572953382074764547565025461989777048103735325785786814446181869178380194110813854384135599423000658402581112107263158789967952529643642157931751225226185315132606736658963264467314032973372482199246872900809751979210411077926628552405147719807338556853963437005171393906397374599164997318248550626739779196817989365792101262054221142037358934289073065744200217147173396048933912523528536308365522585160187803302972101947424271771422008456759324551362216533122375083085916872845011989506793582633727310232219233760637162465203155019327530210413014777020386844766576811806670418992964602786356684861348506041723096967624757639494453282904452733123545479101781664595659854745420412882789502022227241587499192149989525589161823987906723811368084823652584076428048637258842371617816056795530049834122107825141367720942370588383630899666463843238520140323704146872567121520009657727035903055274325025150830521472066764270854969148818643385432925664577847193777258336896842967975944633546403226985805429276251400592068336046433284142891098013810180596228907546278544141525121010909194123771455683316849035089279035624691934802158949267532336161708383166103035707181438537501999404736550621166174619062933435953332893784656232263749610127353216894574263443636486223172189548184726064382859244100898677239806553134780152063332424770510078599570416357339246510102751121738246737635100109102592669985461220916460530231839242036606203430612100594271132043873988982161656692635967311972556314484862897125793412055627680546184266586909408145184563665748705566161257475257124572634010579687764901330267555530601242099285949294386675376864340016363290973261852168172958345385085678111264813483890233696361380504163242069991500964473291303364333545499286499120938613279105164257589822439742026732257693229320461985227741739633650260606449153179480281348421524239996866809371915296725183430947537990628399226290306140268633433402116743844114667363861684719295444048286751840885608535013166392906616997349096733145544720545476644770906476036531906247774549125803024841870712750342691335789207169099692047663596130672268462365962854081182601681723458664390937623056556066637061692288974254334922011798811509269585960342871717835939827833552983998138752913821408913388452977409239152813947946333499692076780603254177151651864411212278615910001369878025805940214999351665946800635149518558366075740893121105163032820296991209914999799574963681107157665152045552418558111918380181004107720994231900609884507035316489157041227896245540302967163864885944533471481275492060324990571757783357364265242941141535428194435159805221016741343102460581380666286643502074972720713763015799747718463017408488225552294586903952599922214450026877794980992535882479889173243217249569547570865127148017745350033284099109057663072626009745081256932388872631121447189378882783408519426123643341374824773717217515297671242908197213693796595175258014453307967380948172682335182922992912260424240055753640821840427324745128680327335697731027652838462560720841501220315476396797688658927472102689107923313752075806569984124611801804921608975615626662159993542699261261549087768123657452364457947352611568284229575185055959663229474309934108923163353748231306029644086018765789834068735434427349753408132755654206567289403900262950686218104899381226570688506162154995896430918682124379306131872824643496582323450229915516751277625240675114221267221780594903548572446551138854553074432113923404286726921635516785419584614133855110214215796784311172122432756364988303669818783025304945362859924097405193129093206075112494621452627111375724728582983305621505389359944157466909110900190216392151393393975752944920437177826822797685601358349114161248741642510269850440861030793106263086478473824623673327031435398996753331494900216246543305658378407729802689471549405685040086568307149331468612434602110198058653412554923959754570304796502140592231014548870221583610686667307752937525593705744472082577480681440370026698330754843872735010420085380780840362939383193849131036202559210660595989020693815656745076915423736747594652723869019792910285489532614967329320523040164596168996412807291248237240530189298393162990884660826638621740634476167351567335458052472527328229388307541981892197015511134837713828365867671480276311987989393094795172425387218096932913066303615716744757780278206537812638549802269862747996511613615885787466217280723621279303634417188632509224472892673401978625850855096291782489446226907480766254937786651136432886338818537689943253045320803120992374418649498723392915322119217170205448697395856522116478209358141958070409289018390722452320904635151420871779312284433441175442880534109122686877559233958540846384409816645120468490953046622326838589119019950688803561451170115588386390051089328111675847846718744474602647275464900957824300752641265898713882801680672606781146597641459736321976647648216919293742905364330065421811088152211697670626333510961142672735213011245908087270716677389333802392332418542226182206431300504662379348427635781178111920187639487401630517486051190650991287034149795052672082394256833380871047939965516633761147309864994506224167442913144866498747046663456583784134191840960671637357179809142713566555056404978588599695548863684832971559806012852803542984605843642365921280968739871554612492238917257208372295595188065759084484422052531019366549352613753534447253569108056134048910555811953912860366291728619799616902713568097930536005878016932321567536828002036946080399326215418014976423722802680498798573718793809706653196384853897681807852569435342238243993375699716936594443322604155769601721171010614139607628370021543611656563309688818082851521202630300705088782263789307917070602779738468813317469287382019382912739012083489736552510657830132022716735654472992719685886851857157575925533379594541856336139857670675532347070479670797442149114290172820091806629553783176659278729799021837055084972843107175853328052189680978131242675728980267491885680944671446162371654038270423072698061892767526160083639185499506500827643416508421781504427532587470877670148252754960755577605685940935053635643254547733080450140171906304871078545269505721144883323053482279663577294628912459754553196825890130858415063626882856121598495589294825970206460075941646393794213923962489075317009351228765991770913952224811051344980213544339455253419961010510067451116456929162887498626734727655834925032065531771569358374907478246959717118684464318990468521467668350096748704653075826945977770789654116885517694490497952067290125377150468731618206569415580217364510320089857600481615901686844690533551210441191076806157984955053796554806453570168579479515504659787649284890355540535094796953008435559261576612267768980463129257098373784733808745725233857979892223988880809798839190082499887239760058323648806591603135164514173266684059637724031379702686969617437050193199865093115679306356132721022050528379056962121658356013059931547402256064362713457902139492412236101518247944749782153578043995884152878049753553172747529008274199196349238423589788000322392943485905918978006393859174771703597926277205838516188734272133983687052818457183006213300559438110943507644275919562827570428035057908261372333177704663163493853882619927688579555417079271531836721721987578715658830226491447134506881631015307669502394050629725582221001214289634153332744132661809242034789500724350807717637353762001664690231893381037345048545838476278456668973851334561552209674409472643346037836505564161656074944457251363970190188668912597436531168958615824064897405510194091597869763759610226384140419020083685033106331705059021701388864419007244876121424732589549330916799607469761244938718067778738460242446114982209124740145660451321704195315266392871537771838107002953651628143236741806943091363617124021368101850264287137687234369305600997086855607766808026788485969347625486915193407773699817404264067099429717417620268419319109689524474458220024586546006755345459911103969659707168512903381963062999028666315829449314491094565982652172042589174898399480431774439908503844013949916332185289392422407217109686868461078329103753854127807185330470412163685565794604690594258995903182701306662274832060476924677173368720970675972277298088004293031421528425018361098207926393953700402842033557758597477587865920115470695188943152938500651815760164341558218723051434736131282462258464034921780040559310065089493660287769243137627865373749044909381684159071350123548446703702874384173178133738642499365356221903106311307066921602225912129479752591413596825534286952914622369938011764477646856713480441140749683922961609262048651664860883227342041738332415622717632835382124098101266965824898870603024178250599999178088684547034021576132775390114155408306842123224685326484077463242114258009141039832662394742700047643040224096601101709489217453336836886488626837467660679279456255713652196619399520207248011744782200429908540216701497151520575843461958176755290784448080552279167824420814989880160493408852800649348463147839479746099634700362378559897731893420980125783306756915839950974231864010641817348395965724950197575223868844540831767022116265862192773064742099378783235971181080206467258867144842625282126930320057684775554907629347775440741860247368167840276302989707195708463799160933373221608661340827652864893406851254293371407796570265913086521552921141641075360565787654832329840144472804617623150345472968050933798956178165401676145801516597223391056093279334265982895774783052481688973724345429920070678199859521123079083441732502988043384416430618851047194236457725592158879743298679429343657766817773936183346339661770610708878709329039848513993030336151092006706062182082877798095664183210173793949893303234909741045310418315523052297238899239289443912169249505224954695691536184392384188345337219646011863484422171330529656272844766133789863428760624282961294575958921481282003915257168687400536544668075949420585838903789647729766706850725406771221931119293034997744866734322828055772473086181378419511922187717159198335058200198817053347159406697714842601370716151632035590882825347569612869738587450763038049518948855697931914113180709294121905414770873472277804064638074420513608773156708495206084186198762690803967008725286432726553774608116964301434902707075914092906391050903001333720041331741181336962706825537387206396425351927473221564871999554127280827538735253800043915795141069449177605471254767260850411796016969580963109234538292802331649866561427106481290153953882044846362985257698634913150422072426540173276114978096747207712094030244394071328014648195521935428794586572848676533175524442766749663805474943294665876110758098901890130400058660571660178645483844952762519300556050849462648200064161976184637734971879132943500273919483990114121462505789647019096665986668571314952162520379411332871463937724913130859793293708193456220026035550459820929498408777135890229420297137978798440185735732502997470219586128127695451945408139750618173356716738329201571396269929260965008166064054523767321480043595903684625064880703700552865543477703322250307791937029759825602050827752308115504651616940478874468012848093570543133674784365576038779099816732732082685832054619640354170840813135486746882640215355082373455198324551248445107945673564384548056703725296063869939143095590338430423381104444815234463140932128793115571354469858834526774791788332923207692705978660818992093150551203341130793849585335530726207701450560838150350789009798962015595509973441466238014738445589512680881694263588337736825193076499780039492321104418778700623393566060055246981242363002997871681332175402593602011608899686820465682746764655807476836451513307998976858460137190917585097685207058111814003291937425514550625055981816504337177189297452053589452471981998689894208849663697945334895856808592982334121857823429728083076316723941547723314121003250189709426184744825578824028575668618682745322058821039343259765105671543575689266545936104769695633136449107427883307071003711164309219826206712540392848159445738597096600564250977778251817862533114476126616408712428499015342986624107117344909690407233177872335031152535415803308292107362408256688783112331599923348643359346794934920021489586180269352585636138619783633239991500417461576565358342487993957375827694974314058870879039522714417407487982222510842122380726398553202545056588374859865248683360777366850731520724636270817414263067565773007214603432768617810130678101362884630944076538363381995215093907604970367106328692572157536783301817336889841093477125833055476916698077184188229393558892747498696018652559347207076748018876038306480954298790311760308176323548366481770167416365126958754935160451900508258553741388139212307786655397831199680414860742916781246170736045505816255887784333265178159142274183205578992352992039926873259586576967981652803605514093873843190393954073265530249181553412366595482634727703925358573273783240433235908368835078058391776986514849086753950499442165139144840008862616552352214489248572454226719291081249709262354138975062816889580565634734281396363484346360265366694146728619033846517675186915604504158549357358872001961200373365254816162291614914512084663289223416181093368927832066888196766958198627256571710789296185203636942539794850772176840920656462849539653696851708690287822075110104130599455132750750526475718767424293675688988222512129356474148124310709737265567096268406755693382638454659503751602759498137458137860913649854262352527076633134019706497308406407264661654619807125697564004673975502735806612943591645875689451339945463714569822318185245056967130981443342332689160339491654647769748387047460552332373596156676234181025497724015212867021213093115443181981946198577041273434699963701684586281992665392052132888363476041637670697375127260570715309564140150154968219297377731647639397344567216079977894893684333823760100843726871863464307146819294591741430465528876171339488095496155870089846665490823068254583916138657569219113162724561250942664667154963975865122210257028461078930866835821756378946978703956727852599571319907855335486700927805602707256760203582312636606278305751458233725109761961278568256863074102978338479639224010258857045007993887662976644148181667725591793289777069849900963135807191103189881104392338655732533814979262762188125857583055324465889853483807850703674319730086370355001636928928460371973639640777680598352999861829594197353497884503357705270468319223192738868503005966885498693724112457664930460241640338364134378974828285408196452083334569758967249636952058066816856823627645563064144764636032119852511419956640401143320857428145890037090358143976864231691959280267252572704941882598899003460274316549803786518934889314815990808465090464851482502205710832546271224867868247606560091912020775793219468405841459447591927350120907111777779555640211916187499730470521135477709180388174809947082863656533488821509084564570447987372058503410755370802718598209157153144718739328523823719921855649362922172802847503555152260858613506136123351322528935321047343687732427008557640665643024392923990029213035246621492005901358662790934550787888437811995102593382367872531424575290051206716829555176276496684587351016323965930032942682517993511864161801300202800088770504087715967187651990993721966871129174131418818090956181410700158191706000770413665602034409333874243210448755028285310251944553446835224444405054387902485575827822972118599520157994906572008456353791907530128210857116886007297504763751189698714238293145268567078548682157954406984269940714466159032846947006659543035536186633093456452678111902395051059177806219285895593683839734838319758755461136626765437280422273266062081659111124933426692943072864621213209834174551960895858768460412874003052467385015520132092366137445281584662410913680912543397241507942590608437378206872257177474233483234454185281976722948842671397477812932588362835802920761933279507707041740092346116398848558838551031634510870526878191606067189261362952975101653671838922507309701393449650355151141011164200062386923160654242709231871912043452189553945732911715108186298676077316511259126759794291109865515973318896590152837111117560912609794197322230484459639002089075341486374852247005612316294189502019655316363999017508074946505706390751668668703868519023407112209573937803042425015188420225336808417412610839731885063503595389346434375467502930158932243125469651684309041145068381674523267949781468859186124732805049997501503772498300003049005784872185539120157119946949401564104741346982718210660257609440432986600497507448641933396624885842496404776291710028411334718871863453161946982911578406198724618582749126875164152394255098494871504576439703371661185191424101044837945444395500265681138192157149671606779531241723438658380404390953449047456325458898667063266253495151587999841918196831868229040889540207494700770520807303089215172604554668798347290219653545273730892056249961303267081744772844969029326721459268233685900285365550041241877964814573546560333008563879349612339552895052124682392170345567442854407663071678016643129009719558502674250447854539332960279053178388159374843421607535470307506230078032274388482773613546776220825050244624891572880728241825588018310665325252725054247352678803560345751559056065273669555153026920682704641470381299929606744658035675638444524252538758112361900836271014487143584179175963634618402399775166290497791141618343985949032406623730154985918130596567059093536187120922989923588255097112215960026904804680425879973439184935170711086303567564873706397869412484361624068401301830510868679974404404137859430013729516188507063642270014981481832931056685251545438021830488219272792451753581495796155112067253301272049336793488404963601276135679617777915904250076999064115702826783142077343557612977532432251476989329941407728608095390815401823737455900874528001161108613306932942941994908416912079810312633716050626725454882808300157808614231544712469017725965070693103169470347937734015861286891085759474368871489065606971778668589034607242105711517988721399155528644205527095270245002719033057642152712549515058795618073863195325675194862760961855530714352717903932574690359987726596701494219365617769615446038411883818984916424989208159581663784999898865089926838445174653921088776883392867331402104300045374672534543339227254708363365002374531621578743460228849554113065329235614790185919590565182226394936229296825411346521165266088341306436919107789385872988961590388693183443033908405542777989145494509875805448382815933639543414050975045811426568654938712663590261964263479796168589574925829177572330024506244529381780845232592809707911275701645628679929842023736264238508508067966496382726354638329081184541166054020251606378679045679080443704129212431753515797552239480578301956506577536684158228633180597102825747576811038953955111266100739644874774167349218173133587280735107519048418225761583028036797223190288836945869796097083305685078119036645130056171531920895804975962203975496565896523045886687044259374951005307599624298788813809463513021424906534690653015565826679769252002704002312210461361177850590616480764247097609632303019457750164665083510202323203079302232793489405973152168266898261881391529681304210460184735259098812982246844859292124758330629113173857572867223580688379938950936840568974178779864085869022284310492885119137345334563257616220529785061228870210543970604176813299577152018668860464629523453842391380701979494062710277823647515035216588105520905435541100437074506047567908316310416278860009797862627143318313997010736404216547415552464052177038055656761024569820408417332021038136858746889678621025884353391716525433398211422833817418744115870872308010644169127678446294823397343053509199424176201124410558473196735766874327314141073446408714902242425702283635204964092280906424220685507916943363336027834461910383011171854377842294085949436178910287894797140475801688216019772040029660202899909892852411616799829678859458850732768800338960481104103960030086807484092018729796036146764172205805708224163675567703044832938373691575441960019739597914523584537937172218178942924564284025423067851882963337806474792505581526170613264801146486707851285649772374944794205862035431723204461634374980867334157719706207016776689642477180788184777967712113259948867150474683594521066446392807110843233661644277563896351602847100603970395463892461927549355504805102315368572215246339671493785027204152069767726008325603115058571155535669200905605598832979197892124683877434674981614570834947895092930034089909607444498757941418407382423655575438093105328208162074608675239318442290118253713589689001411205583059371713926681895470395417697868715461360637980326504530391850892085202493416211597121360257418578229550719356971658534872247296693762918714592985190054897299977214783293174183624202307032587950042163370321862854018076251520874789317237422449286347616902574395996984869859896695921554257291236053129618091135398074107531696853974782663672920093028796497911673500018479012099191325715368295161421041040383462305109326936972746893952907467647569062885374505882723832625851407703018998292539085572303813099088468185853448477467142047774611806635937422063194472603010025284350283868706907325293922555974514235727378557875840952705513497838189204815732306536007479498416452395853343790388081214650542890777151883030214430961710827257106214006061242659454558794225611051221987477322590144014843321174890057715071010193922472871101939139245185395027709510051132994489056403226208430512052394104627091549925860643976123407465878011094701148944025493478364368291414147806652874174396661286307079438695811156657507916822302717543253084213670546448655375817031090431057750775529298639357517592300411170734405711437545517740767455119820946036874602296657419247831557325761470270710486897980827073265246821293294653343651701786196417893216754238993740180732885430662413091162035486264972286937743473511203231501347274592071011837328914316995202322691159244617467986915737632815108402681312908823675845368479574763180428481917123105041368469389964494673149482543825376046519994977202020208202085489989386777986573165858029341952834687402270532323022276141133450135280878023206858839086909406848463701997981341406894875211950522707364495694865971068455574897000219398450259406201372199849016488312631066154355059153682564275063963930954413001280293913792222576233111147204529259176134078771085850756218360450351803310635213027398766644172303590266997707459915076814504559385272064775896262056378538929514922603258152320801014356133286880490091615989773868721941674086797129033402462138868113799794809094470409873121444205867252158335756724706652626298142749479263923788417822468977080222944106258762489304933778788282508970326917693437896373098139638609418096044636548007365518409379295854172184699518314067875569266761001083604062863308646918536834781049365016317341547836185747638107550634404766700500321143164807502811323280556786413162565560531225561198374183706998835456219758788778512306331751853823539333194903357982421378860411898757769982602487457494037160226764422191338181804712079479943465795931027783562944039944972310862384647781113232608187337372680105032699751711851308384229957550197383241205379627729019705746628491841272577815137919295101374557733739921366381173635592259784107293624255625535763668511786184213868406596096623564397259649161261183590889199020890044287335494341739426975668765318190557821017592733564450984099412533380219448644019462342213109796814908189489603950726085270300514306673606676252317355867690947044555009699480867191262061025146828321104122063131260420327846355574941172904688613913234315729131057681592215002447243526676757222818698821384462195707398514350323179800748766279992041208883569469400582668288228496915727238396306655299477096743518115660952995308355802401605495879457285243175171113096643052159570046981229768609241381510661704163022180389275404116821627362546004071548499064230073915299032330163338580292675990279821316114977660111071672943494017910172248008217555918597357427404855254573910354158925465562891911012660244260182309764286974042810360129699516597360401769421046439428293073636972078704743920087805585289481673973813687899844029931969192402670683276300702476981843804193753358926747129064025852136999258161033795939153460392252079046822528562209727406150672728734109688414746952354196524827368253460355811960897808697389463035547879596396346802858746950937779777683133755261859184381064421035799475270310238413216716744954187501393677104605779268052977751838534230357819920422711359955990790345847298204049997868653843396222796364665768170005262325744378441978043622574685181040480422331325610190403689282351522203166591323881699767230463844065418214514982524862643322008598852693314661907219931818288612481332477177123933753122494896327900298591827563819890047737243375070441561043060158146672502615409777732329665711505105440623875377686385935768511471975590970268333131720718496264617776795494056057090555283509974831568085025324751664734072978246143014914387523602963110584901425128450945852088659898896383977954450591960405697920109766086651855658021800603822801311709985246383251891484146887410844284546393392422820405891071089875050961807421549385092297658815906158801576431402710639438213795615410088946692707238464753841900814990578656208271208712070609752974179785969029718369247798545222766582339381585973909994986369212809093829566317802749774084532362693785477497645948898687821616599335692627826877176963680637435220264984314897032622730429035919324887963407574318241096587625687484139457646886628410704547997938389916880955936126476130377586880236372807321919388601635841833060601160170293548616108575059725598466252674236860915453527687945309372649255883173445297272183708827798473502704093106425660188919068943030969367851324555611435246533707847905067159827492361961205467532712186529319836469878772173266610387748663409230478126059345599181992643413530518755795640323379712339633993963889779544213299530757743431586795791926727676805662281609777342508214123668712749227627971624693438519945272553880880058271980505036042337868998724894405093568028627174592282950857691261260281122135309553260194735480225713139807903235006775075268133071204406328144340949626751130082404974851580365939384124086916900434877457154055048416694839508299899527583967868379055943842506362065231784036839263060135473527158853780924245811416165368794117224431044933839016321500220360061759080889879285934838666886296883733469319433083994755741330647022145179248907472149268695401492169861665630168152553206426861021016353426855342774087667774046967583860681491352267320180008783764851657242461057613355991100627418712997730648643269324220553801487883275715293518235444749826403629725598466460769233797337604628456284694375835746151998487400978505658960159674002273373898631353584009763713043177541426493712927003474379752969501420071712659153031644608400391862802127408198596239994839091164414487849402435518211995009230420136451226310370605646084064246040772915811965188443508680720943250891169767592571685859054293344077401750077987350266101375834079111812774235183598628529473235185281888324784443950722224389973780327251230699889887374206677552701735668700095237638961146007077601633761015405647077320863951685367526484562422827150271683254252063237848431991120427901950238846534597753726953657634566781805615787875163138747267201628010344063059686887337216744534591965661118023980434299727131423706289384883674300689103635054616427559955868853717934240767477514878401094634217319245541715167201997368489583155080845156904292857225181560185950550541532419139178156638315794966407168351702015104636000531990040650858217856851318355087847973026962777308922720220341355654815951896272953697647100800917135155605103744298622751875306938179264711255503725240220005434451151574728737965395912970042297319698892247998351376554432918540405243333292283424150022336179921004545178354183490217702687533664392817822289071644486399424031339429941310662191337787458652337290023196021720848696069454495785748831666429881341801564747206522274799102857230736855096647099754848212957232536782323561811910155941694306668428907120012163223067449467770225203922635309007427761154427654911674435917413109742793954595330468063207796421667535494402183555876124561133479070022532247117741241628107552116022378444345786568382927142867957478077852452841423742411772166124154831351424196264585726387181637786117250704760358231684327459942022962621148815494232242724935009249889957755541258254817640610369201897681046835887119501864567924018039795537121392597572728511548713146381010904895201392625184435409780875035535411270729197810914477588900651035665353830821554752883798665629889189964238760129618071973377703828828915983993915116698377885199704885745479080334238425323807414169364264686114703889949821058805568168611567760208379166598642414740243679613642698688269049510866680664982142313385433979018267913235631161898695355289896623719192875762512052224204583560254830943849237208307621539189500508247971048687296663549098723162064598951853195281083965213151105270592018364837812733950107298659920972219071661462592201303255061655856159537817800202635175816815268542381939906717802401171751208764296292948030234673658932864257731911368037550239465261430835510865434151244407918506782593236071046685686833055833933060987737593988816932660903273859622774062829966790628805694642505332450012718164977314745037600199780304388883110962848401172529668303308525968233611360204710140391054958397234244390337673984257974571366118718171898489449305462619723742588839325896491524695344828417689101989739638968029856884902892583500519468941317978354031829350418293442618549411682763895421018479847360846406057741248143599739373587222187315439547952123925775011415443034974458691704480856025896007775357594910833813407587549924137891985168867214360974402148653892612865198608183875253269593548797537053127804866657516533630978620213204395108691758414156087804893975940585584795617383657293347800698645473764882537064133723684172818806069481605647842712885011102899136054829563859990934631710173370025193284521676767143119106125348485132719081210508173082572964578585588213539680630525111047494376219332833768620342312418577608105608221404769579208393968032324926451873028837286618099610768851799386857380957787630103537278635417391445693363792712477549784402894945360480513217848743952683248587432033744925487805469142988809031190851199105559063288936659600130680970630313487530913875617623512465699893469127624132054043805864416766175029683603709123107754719890856392343265008689265222945914017820162848934853930349684822019543743574355455013052690721075322628788282944993263901086905122691510737497432084225930219536604998568704764356718034002537994364222555072623377021135985906266671519810088003068275948195177907811249217602186253875865617169367972058773169510814245321399278045484943482477869855304899021449202879154962684595546280649644824746060511384469526013642856076308775383744670494023468179574274616374674022632882796078730203264695030818781784641037701319271979886314006454200238130507472281322342788252986510887856299456373698527442615840342304494829919366122834661853672449923361777387678697975742805226475760634118594022331894660429022168638939567204964106932207049727697409088664294871988653832860214832591962459359383986132347988309522396565304330002391227412724091296129739661527251205391023755593405962610234504253678926020185707093463644850664645257767142297352214786372365065105103978934754267034597008267373614263460280255713726366620367811136642273717739691439284067142663345470154818485769502864368650824062534367825206681087073329337425611395459443372497748278100234615936219258051356324554425322491638189064166231188020662479721141928161167879031856544766922750601814164172690854154515008668671730878135737164203782940212896542001364504082988463135541195962862532873773643971003352858706243899936815593155419660381573560536554424888418418734123325387341770892401212345413454718112789170727385093781924588141299075795869405387811219983747573131566199028474373827233190529023339363597126096510092041810424037235477391857675334150895162670262940492499863116500352769199685259112514764302685748011614062402877596106959527366150173138799964518395367180299975170215619079041224530932711781682666754656644230522033053509487591092998454576952871697437089333858218811821136706918262413280445459818591085615062143823122328578426561671079828292585456887704146949067845252847461829667966588616264876927994688240577023850267244344176114597268987501248478912011913962145651050045403402935347382933121395958064040288251508378820808900583947184359903462945124503983377060332453446128334295990148845983446759954165987500133368487975718502744143226415133659615371400125350678250655181589360535819578011692722208419774369278624858989245120510990596837454840597947745593689966863950474645047662114142652249804636682988859080957379951126836136481030238278821906549568785724847765330392522932389397793217566177993934037445891136242828283611971772126777066041193162552534437188311378909182502563534111898557825442396516669099929999909204618695492720758993475464185192745654903029394365787346457523287781044642193817915355305279982129175286274238146276288795969629692060352052526179264436354918642333515084951888984340864812613322478569452652724381944480783683406878355468654505664335974437267854374347167341892719245632684943524689062499985651555453017895719832941752902339791684959785068550348752657066705083842555130574075607934408622612906797158615928725732964027626753686676666855056501872727644474185283109137751154017673786865799948009374725551496548206721338170702998129203171611662925936945428366977461255804872536372410257101152807374162807545547888346421210867005650993353290811069160456824067162811585597514128043178538599014152256758204648707498337512072131267780836983844869189652788572491032496090721471558632014258369954029606726792213460286959375061311085623621925968838345520338715119858356388436900204358123139313069968945004958695107877245787829302878718040019658990631860956032913428964079538833173990015515736927740901312580684792068249275046059559752245300395446256352702840093660808968218585531279793078000023320965634706996726953889460303309790546066186659092975344414131135457332923521955115903647058328491808414701074053632422327759517313639390468665760558848909853919309484795287233508878726547923879810871862501382377460798696314830252384208457506430999316055919878750344732396336146995549273202094751333347273782191806665462374302682790308511110005287295815713664665306373842468270749713818092567279543081906077421441602946131982469495514716413820875952429482139089027462035540269913778453724937108986961304145950575864105612985257417680489896395646614576049109336533760614351884787246843078090380546825549365758246779606731515523535401131694887198060815142566361896402343176363375295209950744012205462343235893719585936699460265453375043601878784279623326188925046465554730880864293961497631802665329638607849343615421063288803551745887145249221083010132216817971154109216451675826877826390286865645231490659950323830108164065963729158797838489563382400521668170545750105590942761178974554664677755214650698651372682269359526122065478172554203431388991468448394754056709288659335586297650869518517086132294856171067195835653117261307395416298217728295599541222931123920958034150745582039674155707329228242051770654544339498013695057533326583254546445836785121413812980965072007779870475765813097101890063975397361472128544910539851637268061210044751285068452788899371424469603184696576042106407783897831508278043653166331121712533024319909677755419148025180313049998558396174682466901591530437399106017893215637609393495899082480659261510201259725659294191924502886335462780171574504453352099992267074197833892537831018366881976124959545303232157557338222484384270211605216851166507597634636052316970226857241081131437051979839109166462538851515864595551597637703715263815300236821469549327401806510235397607234982715509509965683684026370546758760566608776592944979570804237031906224866454673408067290044060210902919503812533736987587167985782102704977860910920520140580165575351849377273458643698865382199009885456972269758545593196617822649930294066224011830282025679246895566547733441792324445157509137148500540310665197553954058693626724636623029899814642210431092869538165389012343526175690924824474829199127166620931114415543943576255250549440867564842222562754564738862430608343618219118843965780402845144566745315447289137762247040469312020929374377868721437630591422873299329098302587083580985817205171352341525522003050238897498819163983375685816875367743954557113204388574429104362662088421322302362353192968044381100767312122412725530548438613039798200736389560780553208272510310034168280437500114978556244122394414297883292588139288739711362492763931886831857802961338957206923067704203330968613172511673635265375847702190612751830875808640653791809775324371849017843219496823246486699646318215689260262578998824748870967996329612633381382123005901233696872029416584155142493900811734260057127098702327937950889933656759850492218545538413618666560508392101124398379078158217653268432327681892432788268087167083338860596110175553742525752802365571057294179582647448690468392514168937799035263477954372152734614480018610531304508363642211045913048985316899280243793846555778045404992020429608660767440887446621511049582364202666573335442358178914463549362042470920537299981392084956098011027281561118070826528403980508364644295449159122855729176495452542197106484592689977880164333724711537963854334468972018865350383272562603139115158967159124811941734471788861943218569670296558284705833994662761051897744898170786238526931162032535168909072234855005783894553232620666838671939174179402659779138832806419938768218258382412147991895519682307050744632755077941401551016215310963375261949996708726771521742548486664145840299197136493868058697745844327399515185846101340498837375270725290381777339512658808996061109470737564320280507967315246020832548481017629612851362036504057828546302630492627932953124482618698210835260580302365497266360652766277877660789168388246773609950902969375374602274949619067540504941499376387628821003834154790136455270864223823846102873028586225968505727035165824019214986652257060968730586027007128216625878128547329319213801391043963806591793370278652135876439865718567305835734319995456842319950840633599448767265954753450909491544144992579185592617080354717199736780362519697889885643336140643597653392021043274200408992439678626696023152482188804300238799656959101255278264673318834122693725941327621943494506175129616018495180762855411246758748133273698934485901699386259571952338281578327397448448283839878587687023923664652065922152755523518419367396643318859747787188060789351649781255615786554679456380852738660079537522933022273162385319182663060479500186532728848925578177488118660019382429109442320558740502941829724430688276195641271649794449711583751273349834495474108347045307315435300631217378714557775909865214114605502732713085038505633047868070200192946736787682899938834700845022007370378561304869611110895245250672009654996535121290140384462199284779683300980556367371431540482364095634743215776760210733329460424219839221922975717001079499514271476799651891289313537162757292576145255574392666516861246988020875377882523905819668806365114837160337382512917071212970753732599061190583310302646859304270222104742613833195722666586388979664482190864850170745112512381695811785596938955294626956239585886920848018284641785778601707219641564228226115915717889937638532855786098097958509692790916682859656861132764887153988764140295216144206708412008559313031633656845306052047914083811403485106358442951716617309286578702152025345579994445546016068954277355888459847238076682882870836234829779411254659946133359878030801729578792814915355592558238527161835164112067003713217582707856937087019134081074457491153045731842321830252953578492381089656880772988665355653300767047958212171706427409688426754216953546303057811734593055860424276257049083649444096695697033694991655823144678763785588048427565560978399704647122163220501517918877545018965445293115728312085394003517576746863083717092637051522735324777276972707832057363343019375446649003716793309558052156507326531105608162349706433350256972580370464731889727971909441155022109603534710159254162619446505435768553002320452139573251284726367283665996213143703421348215205834711063749197638590627938427557006336911443201794128451168780847080065631345393645144551979471877160416103279955986959846948186462601836600109104442334557690825524726537362854971196795850042788021666426439533140813686890599536473941441097177138033567905919788545683808672700042084983567777395010692159605432923577883911364662008470077386178090276981794585538691110917350048491457281318043291923629928501040199873620966060501608024467607587961830944206007130907189072032713847260648767720303157167814309638221720216775453729496229376079498159927050719248812443759371394254094086029518499903631170318253902055078994893840804421052568213132579360012321789122927698131264247431885172090943922269709111309934328933176040520684765481194594059961099044744857079994606429650673047154972297044226464313071946334896190818013300858960368872849455838876973862575327893999669322007843528328058792876113484712966956514411898384446591159930753223545599293397014067432260614533912260795993609866678681775776774958359899652752392667625035087684435080066354926566242096727790503922635108162336800642821013051521875906087356300281268477926259563614152248000968359147798541812471995834260442178680969895651860504191516458074824070278729094983223800922200360843507698222423674825420766327590573168292260588089061627219261461206886836158184550792675238729984916578903953680809805588718660950933372548617059188984525608783785142583321434222706999218896769712183136163878960154569314164339196566723320163914850309759994114344674395175112165931637878638048060093057010664841257371375468236470330384172583771984541512479112348166686762162071484932435833014518456775105074803721989186906314620874964183554670858084466730269127163134610779191675648591721157973514450059426900769335282323765420622739997570211102851228990279871025620342723482240085050417689312189236024960818968422984241405313848730252236145634799946441946248169411217367349487015684500262006490060259492552003243090940878036262182532854507147510100029923204825928698182438548644781258420113174095007631180961182971220921749324983770335151736892036147256561041966348462857182016070106314270029526581407069032164529444362391394190861768359903780753391643107820121609502968842486381921271224259410145041316727450020868725195426770401280455179761159094518148334104688383777923340449508467465392424638616095997073672763864900449177921451295210623332870246951518231319770494336527990462815751618954837841824325352868516415798396792540150562987266088030267126021639172597291684815849991594418937825059300192966328428622927608626111932620386685431417682373693885799374447438747967679040450278537374699349104320801424172885321024329799012947319832413693177470005519779075566139762186740167366556394947878046909247010460716750051004100154133045091768667679494190927541124494939051705200556478830802076155246443010088255160446607274086709802102004400865399675558442658821865502111479446351480401516703284016277381774854986347854963732600588944831353949618797931907371150607417410566397635813338459073129879164090418317678050722395126411877184145112698124534060485255636039914379396788297367698121445104250647229770163375844703155426536387199458604546820462053002827506525838015220635308537560521247975115414460877654154891263711082704614293563400961266176988021286666351310312852305831947128946469655480342405537408419346239855263243884713094671034569710529166847148260896946515347178487188373938471302746556321079250442840079241619725672499091976499726385154100155646153617586923017565343221730361117349257375796851403453602940653752860090517232584588067492801990618262197439576649070077977091551173194230849071305448390317029144698814516357857241645032879159304414664501225332573045292387899855660455983762707104153748560922802951925451402120513449145244477952558240959248024163245183846153039675471814555080226258918558029545652084426974493073471411530165098744169133666149760898572369818601304283182052841983844689524650577622829958828805050258178448235017554777499243981033032245640147554939551445268043207853120293654469037675794164231870948688465564761944657098426294443903633321003566811545772320302885159042815168166498961583131306633124000642982442209030981248337422062007204137444590947832491278859418242957291672138412583673304609465271059773593756523859269941742221830095295072788356017910925344705556214430620316034144856346515967467351029202938659870210382928057569188038166072122569305902004500736999573122879226802027705307967182723164107038615939223386823037925446383091931258544738432057147242896960587541730530409880844514918635852580882856557914186210938283144159602476609612841725900768078155473851128863631956227881787920959047451838805874283558301896208951881435934760260782162005737541738165337990900719579497294950618497866724912512283533540245677988115369116793386052059533130685876475635440793106681577202003581102469565174470602257205144489173107219031394431748306957459970808740005578598418759750374336396636925327067758731581484187321433318776951358946865108011893947007055463656870176545833354332604644164324353839067121376183059641976485753081834791527609479017666898975336383131012257739339652697445034653035884275238277742068728463812957481705145218523032134408401689177176854145914159854697343706080745781584831834528565106542104333275029572349228308013444284535703350182419817183276797504096693896329047627971853819627272149179784502923541271444722667949158725204291399711217418323486988562140198559020749007857624648026714893898248851789797352469123918365529961189711790336249232772812632462954935569199988375700067276528938592534675782714054857902716393664359496428569034984757814797247997085266571634389533994202268663549573315189187315931033414064365373550223346272339881345003621212500621128940993215647943708550731614481335171256249200550437228650741693380918559712852851241082860656535947684459654308517557476281430859628552999007276591970275059770776462391483277311152314517769164951174162674694869451330525320615185471888239545758394534304918933440982734653882244218916473387171714906866245565492542056277850115595826804701775022579411331727872619080603329339724129820627749918816094165866411527680189849287894605110773784345657128624059649448300118700837363419263406700601031470022273475821055306762789841654007664181222174396831030333871462250614995845578797348669331677508946388481787295286694007171343950667973526114194954844820736472023775245790312388170900202545370281376279322110235652463956314135313234060315288586654038099007645984531586509325059718760009185324612910878643306034112395809967070821837258530789655547115486810090574518238456713058806061855652528320467560446447060275935221117221567393881488593818969240122532222033766084777935325837155533078099867396136899983946741415062556577718028174384352348814467000476033296607971633572402856890983800639801239628047016021138955501457481995021812777707275672704380083660979270746617585481359272714121352259773952703811171766846233299567350814562106301316277982534675454172102537578685481075829950962493705735820091356037969814368273264584647015356963276893148641897509445629883515159609409025142215696960455851330897855686567675507894961525619397506335753537857302843445817241711918494377231909368595240872874227891470160165637710205838802625345009563008661819523950315658431685309047216691843015959083671634509962274436116404679354931268483894618425259763317929191010735800082482297528333130003481312911715132649174784720602086122913723519032652936924971261743780949893540622831327556839762375072537293730845439881854947227530440028114192061691190686150699961472073222051557201233618534682034000858064823427417844775227745770405673843165321980673914995496100972758101403823053236890337813931097938099009112249767356491441395243753402576153765305493976122024907510727154742086086697427490940161831501200575997249700188534450175783512435891968046904710150437956072585338787576175016930746633240179354107390796453042763380035146024505206874925480100383142661661629878406225504691749419862413144966664688910829265642376802933830727164952416433100516013055828162473454091015161350729267237006177632930670024747998077340958920849777371884772044971642318865620771895615021207926095503302998471958501484509926511517521157228654209774119100937652892533666396529595667503140665785554714589264927128461080172215221742617941531227044504485404732669841146463096350238082949718803213216798222892078109766078985591775783632755380126550709323500456131149846842442640590471506162530898339155646464372111679811776464976353340301857860010719405509342057740995081477759259673418354470805082897323466515990859577309924567833332604978709521853222166783427757912660997124035962545380597788605121586782269192338158249994582626278857763926998833928529461631566224064365392155626273484119596995205155562443706202184029337112365064665627289317296692571872372958629053612333843575361870310120921342728786377757961908245434034698565426485480531969207052377101726328541137349449202372251764123544734640692806930978557586404650998007686169960308317327233621086032118352316582376117794989435785097748987723620752376120870761865652213194136872560229964427095012847095510422346209678845667252687737755556567287188581358345020316760814224550034602438102089470701209304989226400434582722179055380124686670950973215744207785847041503365519248839849111302178662842812601151919053262121572516230557070287113104620776055730185995452221367394061110552582950594085808015569084878062711078073998428233303680041588593506702416903241738235937680150977198310514159787264677745800581725730021787514992880594645448740094517627640951580852447845276497651528926275283271140146100363289907826892423578476766366372706797182473808196494416739859066410012161599668186686959257183492012503776730135680910854651329998617052262462836721119435767446872452015459100622904250370215561086375822395001093490459989494264418841108477360749727326651551455055473066940335914353146245697246317087152854696910542812207249061463605182257718510249411176767191047981629905553446097233312437442192285812489021041654834596449977108113343991959581786500615672068366245613625144051303260787948047609524774862101587327719839081412784739990224386415857008347904577626041282226713332352102218673967916504027998912696953761773971525759222138929008661384933097861604639057073977762665516688381639368387279057645148823973969118151185110520884852200990600474909364929503564820187272243455314423677622502637872035118547441912042241206900993770293243082857379513794272759961778320624861991640185709662177824503988572880085505903997335947509943202008322353077015485388578273795934986313392262570796214787708080222297457147687442111535910490634247261745245866980575854904621646914300150717314581404072018063469945917889418293753831148858013389380248137763621529026804151733882092664906011509068148584104033982561797513101264992902708109229401492528407316113280441248277946408211883837875332834025129461811869292750674578969302426184573091324485102328767901572964193309107684405888804427022988452660402034719556796312206154815115458422829227478395811919240661699584218185999372732431624071882650001477955600379057382700099136241117860256479316899723466271870371680693655224552089495652100080482126614487127220262897293175402506755874203254037354033615908592923421489155592215575255132578815016596929601041167973053085696133978901323330378474617179557053351764493463514345778966062161732515133353155205406802643622706806528536939584248160623848281430893752720852632040571145812068257684821814703419423982281521374604860868613434376636042910031874575152348767475800170504887433274726148856156692293644959189259657310742761463154577810063908923798095456092371102527227551206115212187033096348608753798866498918991383346706654229470689600297035215399656814500640441678597759166766770594843499930866156081760738319002003277553297661918249552945165635650048327433626768532375209026694711002576283062741263800548419025608855552652091389023159858280338075290377709194599166817999568308577698487326847713027410828264116060204826419200544839467384658656078200698261048906627480764967514117466107289202302286145001604353649398917253990345617376441826838298461591103335078377982424356815393343929239822465398758219608447291572859523070042536254195604067073873820041947133909034374660814394799481281289254045237384493193248706677010303433034398134473840244716557935622140193842996244995471853874769595844266686212441139453838860445825046685812041397781996285246984765840737671297942146154327261914076642219152720714994208842510067064541340891419647663126591799104241313309723261515197609757040314609740013893172529662652098559691534651028124489868435167412996667492731499521214065788395940493655482175367416760545140220264787041392001911518223361032356766534108106669014206747446360142470224565477314518220778215548303596961830152473347860587008279038995476005854949903171499669905095013060194163958163975486496967153049362663583638286392095975864827296684922633588564109317507581879371999881065864760722276007295045802142422325565082467334340379962385304422919569776790786934799469885990379937429834398641592607490930922165902246638689608145405732017268710479695433128088128188745105612696973578321624531440724523724242199280555647554650430111294502035254608002028855678363425621155971118893013512685266833093870630993264710113705141106318144360612727372716416131209424635262900674347329824485381345004711182249755733931380469668999065446784370232698249718352836076812860918851050980030337060430593449221325757013941070105247773021056670619937097959308471750210072864171205843410364297251192273159877309382877411445453076927529749856550489800183815570326351572616861080996007530152357455025680841707842382978883895893671187491600556565913757283107074274105301228926146056291290500386432304772842251606227657988499764775054547819648076168517850719825136431760645725474695911141248393839462946695408079410849039460876270234154853375774306680271710397493248920127709807948323676667113688912653084461952364120352186317599710381249238441701996521190985487837064324792355739046108315331627370482814494924197048609496904806599042290350345175388346645837670632799486833561595880818103576760893748297081545666923194840392015398016893970299298330571737698493315557053806466668986493788478510572608446841941694445222458236303741317707970038305542656620138021269017515087745885021398128022737251000139864540296069223277741427479534501820498572952140340016326530596095576449874590466070921761662652358185011921606509479890611843884374769838274803236473319717227110820588456078871417881543109573957575380130373534114821892435984211804900975991948475326653680283557236801565098503241801391398575706498225216841582137364409204754752588612078815674187604380879954823181149962224697051011706073984531973780956903768625618778532985824654885726176339615201616857665937924920813427639633490868631392801293154245727596868851254788357025016268934752597328257333411727508394889594368374337793138817107640506313971150559614480101281754790676739448592040399944278933970849010472004768285557637833511073160130925408474068456930369610138556624698344642399675580812844183028405762431804408272291968123846593530536505843063219141478783320229206808125130467656915541161297841537871869587015772338586010247030392347618199553876182525463693920311043721939793916771963453188819671715011220888967378222557115440131442579903157832856682206717048290670321808660133423467137873247919853405180267221004138406160440253818002004245864301237793374426509189409003102187137640375294232138524425608786391930965851540693253506373934850717070002741341575724823730137417043693981350367002465425150263212449486223030539515146709207442364667434004058894232867680060293671971500248285268111493189252104387585812910993120768787704721428791757807646982613518252705136626560099768497957968751052161610244819113252814808154738034977881057173377844956678897918790467618397921345681604282655537295103628178793756796893192057431969141918797156796131930293196484917601815661051025492758189197119650339550325061685805884592983761216277480955982327777136804876199185318249320960458151524769247218550019244474002793008724889589166020062002923373212782379712327612956507306661038268513554093747963042872310864063216480481607269494628091166201928968687045497898859760689638050231428451950150689116849053824982111543112941225873475267435355999200920146086425980935518148465484227660787940703427440002509415683354861412361636935811600619820965706522252105351944633168460276865671234430259467970425414835506157097832414545265781682778270475042350021771217679282580316290434000312255781829152219100303417337181641486242939594094311592301333635298313678742662812832601434528612295750268954664547331081321887060606898631008127650277617662843506911790125905027549205818846228296971630426441026774463257055980806512592277256876674235038797981112733860642520041958779006467151636651481530417250609059621788350017328033203956345564828390001015487197102448388872978995591135217829052319222237647460720405905134659429554515863978267511318223271837152133452815833205750267891919102166290551734979145294640896236220298816925541793635247007393255302138274330276879447943583496528747015210349846453689072743299326539697939429286224330473626463197140632085170774888986785305887600122620524980291607387949384231972923091698687151729260105131980476663743492625912653012735756570389944729488005044450373098059811867628029188218407288356340022251927603744785897597460457001564512895501127641766113467298374112686262082556158052637479849546669446697206850485539903468344284399386077545912239872020657731942933103749729000075049021910324683604020343329874856244982031367706003911936123880590905950637921274394256682865707583061082491290733437441690693049632141168967352744103020255070213194945887191867567305970154765227074239545513948834315756149285594708832302630877315965872705543915293225138167841533588873202892632618262591654672422614740845600004430414025545313419737669238798498708467904976295270402107203419679890421281716786294642817423635140698263941242737850773719902354567286259283100423242330355171912143655878529767785736134055842403864008740957890999683447073081986455624388537295754428118511986118070769437406567588160749591067031168230015976063333922517799855661101619278868932277032321632355649887181867989881431415037114528538092827057216820869049903884231910712128916471584159491308759835587815364221304075635110760991187973229660117724755174532178361282001905900213224756584103954764400525485975188899662087420428955319727211458166700847911684303055664244961289913091683441651526295810959106502477489471002894694496831909515539940426766927285224124719267443548097698038016580426367952710050214488208427643448258360460268037003152358940528691507282812492524870706853234083489629076275870663392614699796766444379031561565837090554511162815689065149292604776791168704237506582536269444640949518956172343988929266419642274731828848094981986646593684596986889933707979001558344600214844804921713867280977956747527932717579650885002991706874088773734257736237462106085386614697739616757380744816812386469872044812862659125313990317093082952692130244498925003111602211938326116027798912489437164436092779580178604614264373017408946230381523662991765367681747310581729193865659613321497310342291651269329918071089382641238903801489118626694287913869108911250901162208226699496730859877740744370919489863355845152118175563802693999470580749661690296891020051453428115611514041695490291527051859476628652051946659534518286979242797201624323630032821589079059682548235245153654974559336155658093630471540204949956585965559728641001215194869492159495797807602655753212244192750401544171206189375280839487769601990779668942944729155520912226727682643926472861632678536047400523551690451578025368974189750719430414121293303289265179254237254763854720383922704935945451684474800657130393847262680048907006257961938922651022626628584517222675340529897266345514918248200450350596287043145678008372744273837182511913418296710634963552330566497571085381331646554755548810525092343844476364935576296517275101036762598772798399140544717651856709850096058349656905412083849445581347506563254551826149160759974160418911727766692716756814346339759384920908149298974616243804326015636366681768032443235302184785813525996416783767389026091061976269907289930786466984595153455058589877274405670368141459326417955898228743729608724173769255796441445983777489538800715492446858778962320970260505888205815685708065379503973773530247178422611605242383512814189791885552803089691837251610045680500984335857972220096217307389430908423365247894926291328675096468913020564759645292016381692564737233137538478801403447136658246937796324568558182046036143252571272000822839007543817223131726654773273090656860016543136883421379432427656466749177635204240029211601627553390268555130753851404727808414522259548846630779369953019497144225853254433570353884841114467536883334679088089793418001050315557906003489603244143009924044287378339804039205422317258559440722249616809901792214405129056350237096986398576929638536941095485895282428362016652375075935720600536362883739647188686516590398266493788377089296035458835069811783608300636317276773203900668675695680675197239088529240805236513986589937858097089175750005534169088418554382819632008062869555977817361145664242963769297573236468839834062232305453545799933760207064628333050898284098213320355871560938854667587501159964268827116467573864022818138530404721937547594508789922759231343000809349116333571890611045027920407561729015340919252602547014688946078150236981446985779459919849996684193736243703343287752703455867201475779802946712027766078248630562776448436001488199937936788425218414393007554692754920680527605866416408441105941803462155281476245324074100669881111247903688519648866755697249039825042082650532414999435589641017417022905217497252007836939871086154579494810720258560537167402782455598184730988911356284293980916481458936563310554760635082910189941639977474338606538158197621807624651596694348149957251525223154824564040546345333694467579951527704088911878490372679444601435939174791429018358054062296978540904378489009599412420781004759389368736661276939692941198184076843049932929456590587260273369025318290368403330890991911232458324242258131827345886949182369275036691653683753118083133090222648136582741502084227104590380410481163116904579816683435573358515711452336673201716589207299266604259656435599144907323934713653835752259132518380630115985723735549339333903946905084859382061012766377318480995331082295815396009808076045058692058225003950890736820211693010172408290483831275159736338730917545474560250224043822509831749543506721162021906364790093355411203216455510352674865424779246058355448217926119356160153135552269174623545739808582711808240479869101944599541812834269295882315874540541542599752886834403213188174953108319907783104790757961053679236689014462470480761308201747201202973997571500415541446071475916189296399506815150986992395913135886937361731353522192157761197580698199175332352590725936713305254169313299478460427159281439764525604325170274985060692383269943131197743651372027653089808971303873556279929128319531402988395431502624959371212716569533605135940022324758199326874902559384985817883773882818401914556881623245091010456783221989866490224744342806672626693908518712308242453006451061707484357004029388712088710833227165964094909706019806213098284681384440613672709136475010135017850988473693546335040978413896280240611418207681834480437320493779939574029556560863579531787105118088751759544645230904372008776615865705308493124125095507883661111215997045710991606231044474526363691247749214441695050759393175960518696726902228537341404313096499998685140786325928833055646095608289787269605329699319266708460557688633927748141416550240848934983046819482055705677665209275230002156018397063754862929710552736763235716332673923064686646714705747771349329907096560498254025871688520854298784735904208250847666152607717707272799917228887958992200726842780560439331080692143332218267677400852345541108898520913540158573080052147033199061290279004236644687024235928370877917509259118164323340037152873900568808829636849617090666008819342446962907316613970225401348018314331875991096188281189021119497635755218773322521492646283284818827106222150409518446599941463102481693400648665558226895326347763996087320799729928278214535090795790045087939801195486590652829903398251852874795173946163048904475418714505493070572973808435571762900418403118866569634751897156398904046635838142664822952366634017163465503508209856056840141249240579408073688016871063896688632280525088348129793499025798092249013442221308993574039581611038880910783592611352320517530363399627458869895148422669154277763334501444313157849126527412862784047163526323009353113546346493274824892126700409027659520373558023704572272783068314480457850692813522320881747004818625471461752006327705457011415065220767172406090621426351076635695450135893765771315925140271572336002697617207704310604576909536609819486951530868838493338889345027139594137303337564779574083891313245070583786450845548084575269452986578633510779360174294144132293122499863425241988622680836732409008357318326652568204146055271399418298431370192169682606117028028001474396311829897321926139107807614921231690256587275897263578228797094474221942870603583286456899177556443340523105773926553597707790981468425864871296908740784406299423938620546391750565007810691138918223511726424729783776083370166052824952719058432197652488893679867890963253298693622629568657538402494080550403965047211143411051718339878891367036085010764510628753167574416712092141837859843615499900878840399023823257651674656644148607879711583498525736752879135247530982805711133462963128275892099555091405226061091294644245038155343204431586167434304604507824525685404604036993221895697220426808133578726591704376528049268562497058297735822228733565911533569489347679379828190342561708733003607013574076011733922434452199459119111751542664601675103973031854131108421188295858680584688802016206503027127372825849847826448888650108469578369124313910016235996536417597983235845069897530717967699636918993448045928106365628693313839991362944052344953807267345547513448551654568923670830891148187859477648234679887896239178039407479374993501299530224798603968970210624270522064864229817774582563337526134084327570756010720644743160832975730904742180917603812085536526621829696897160256237752496287138742807496704578272557600602691413950470986797787239504489691642456938489046901022117905714511126898388824046522341749203285223974782860841900189892387089841176173691827006896196756545472685452695337833959842654485597243232279909058109041241360739684307537581056941758074422539241294049856873348144132329831310501066640542160895964318016929118241321040070823991447281601281931859862275065928722893120244326354729501862357371583253406835976610104791269365608163979794085396089450417277897743276749839653796687072196338144101064871105053891011054505880534730461606711048617646272491446105900180916669071229013159667432664163334528022144868261152013592564953245708112492878559437750038343062777810127906586313644667058017825586220498647620146937945355318472320348900009543113209546575610129370439667665780080709932976833923597267209147334733143012104235630182220705939304783528519254794985774040064911030004275744003251687450937112725434023222570662695123296420762944547205188759648386322415851187933669138433984860755598517764203712121145923435235890378030734286817906326065018201328207838656032205950908734279330121983515579992447259261987790532740781989042250057274941869972750190027815538972449378248225945945659404028415339059112196472715949176407583509960310061398539782373916632114543024658237793677193409113943748440986087763648575271471757990159606563797476769752385591840111710184967469118615177901567161571152591337255422421285742878013628888139573003414916274882203801517168873731138293235145963448797126288676672754871515293052104082591327548073154384828591684259075676981618673023839951926434318609380131290048361253471820368570142678750620409858108296285927031805984137665029150027167580466768173635189456277682437055368805172045720510678758630145713996599665214280150025124321005247540973289512066600061635641049567440688802778524028177920710724599058225102985832945676895715161427045709344204457104421158145096092906000191245543713363412990440916425694529748117276269212774033520517480868639846383746234481053817105528015734582492353744689160903560376246610117920682283501604986787380052002537372527400421172450898804630089786418892684926213821424576355614156802508271494387695210075702118767748621186279110239751855341734104219463794388530142545865789394892315103793802737841363931026630311517796959717272906765217475641935226223635107170443643707871717472297070904976979050617408151534399384314871895974697028967921835276324437592622341491860165814820911289865055405358641285118003365756930761784194710357801548210405968553771395021763604930153319100448840098619231496224944338368517685913128511999878034359204686110522044372555583713559987300130486115615649280203305330861602013271202489358654091518199530651126320850702751903195890785633304915819287484962626692664402649006435278617597862342470123476407977298565837218027722563319785057865029103077187741259027234617675626467473719073812943309452046517000893949577132489576319669302938442903696946111267923356436343143456956902822880753805265188029789202942608635517117788586756972638098400518181176697959969852804411155984641260310530746275141332751814547685799232213778936013875540300075203694113656449767452869885299853279730750075156172046040593251975798262336081356232600417265154888902350451594993152317844779994168760412308642707985626587828623805060811771925088706833301034570159826847344470652177275714237187942923026071069043795961307980046143049737055795449238310715171969327521964356316996344263555083461355841064038444931112049892546870060783340060545110217784635143210765427395053698577695562141822134732794734648292960566895007788629979249344454563375788098354627110332597171670651404216769666242005502747870219278764646156313242103784617905900250600367638523713423728366615684004075311371298815608229553708438342556778909545273173515568757938163046375783255166303622597185982063374856255044597759502702153666818193836606740150866544466250327825266907188333148373313935559214845922617763777167394310023732820155532440125381709047976677716035149232306829316796915354638525826676749497742643817164372262405467992843094925010753197943401142174751020818927572876051155819147172680989671048100340019443731126520847977325201385907246709921494435838500240009111751986729839587492113849110783077052627071978497038386999560996533086435894683568942853939484903416126647580698875471265474531060628076178757368147260159629076239165288054560163783601371255714213719642696176422889599832971851456138865751989605585295962503508380370947611822297462594553535510603505351989957957213213237148795093552853171426006562024567277630375137213230837757384756751437781793702819860397360349554586248958020313358770893262959884086698242896589989026029493001196254084802982543502925817335297057173774446032579087912738701348097221327990553195362356100477703833199554735209023391153752863825418017434467374366171140522536349779986554493619700302457582536669312988466919548729268724388066789502465854888997008219514473787633025676560057561745230100747273940118735478221344983581693234829729407691445114836010057480786696377674285475153324163666153099825417296519975241863338119294306791070783297004507030647334733151053224894328688022350699449052601296900457168292920359957278174506088655736119477009722606027745612052997345632611833200582384974469958268524353710525047058483102890133773940071939524750654876867506192402642603011857053451203918930028407163184614845247810723879135900865495400322129149233802216741147732562656290002735802808936074105631414640325599436867129604453360732548909261391054082622549506095654059201521485640613271397785610055536682985051773176967436463312156879381417583419502414303503708218510204611082316381869409298413496253939361646843933022574105732862584499862608882414518314894569683652159641786390792623732458542239876707188238185943500615823437047591388444880108757490689085108070966051076840467281833386422352925132317787069842855367403749996518360484506165080190346843072374505715347343239178370508050588390082993872102725120044590559038712652262527788567805754495648428789338177813391094697181567748925643791249475222290725200366886716499523627737039526720029390717999311127716371278113093334929611885796238860561506519257646564817873835338573475237716998366595229479396383928568787401903138423896274245183212043426319270923806738783743010226996239237702265564044930604445751213228151923632104778169248609104845800642425388838516891966106610904243553304274724321858720326434447227383791090393097566500091429471723026990685453069766812968343843409774237879790505424579882708861919473024209018186173751262993130868985889560300671457531479294646267212942370139555659416847681055299793481205705736396439424984180819344361490794978306890964729210732320154274636365033826727594241809978965343356925894301481783433375871840691692213578577862581171007745483828084536840252350406790662344375953207411056661826433323616432154065606758960376649950383628816408290306640610463394278474328666281459097600942809271894323524595817171591659557161467408145616194228572547316837054434248132467431553687157011994412751623721820634011199100930183696811238327528640777415009299336426632973368488420241543099544745461473181644182768137609824055704796824167473512444071612727404142690919581057775941815362037226543556781268265118227838789625349078618013738419257619495113650168183362727898283761652020065659851262945208848225602977190856634711407149232253964176712304921435947308577554880138993358839790479729050703759889912855759331876543195350666764873924094268344141032595915016467891858673622421286791705919879515623643477035519328829324295829458262866003056987183175835641658609932187173335846424021205655242167331781680403971381571049572541805413815934920036363126557615422654505016206883486263602024489494054826243234661782309282495271207995276693404640165127684292977225321486776600589524561466556336979652498770006874813099666797306688013964228178462943180622829866078318809478181174464914240600620752881098233093266792807606264393115421993040343591136407000227259487986545184473942511753591144179881800485928285894824162144387866329716634155752008605992792473287459332895959136734962991507241998271710070416929990859193516699586396646008057853101031389433113546267104519749103401567679027335427908368069528585669823431281482589149626030876945229929139300555946514835375349789438182300179564265945797346219292711567136172033454700152370011566083835134695059364708144434027810450061615882908580663672630775581436467930468117628473504811227060150928329824516722629586410198347054834695058687703932811205072055692658748197925459805534927845644675665148217368083109676120252053650717303721675163567277564254218334357826476529561652258369157974048881156131930104040245824109216448999527838789366401864487177119225071203142373738294074784168138224938342087733861066920408677824298460475748700894244684311107924595673707214375323643233625661133278983275592271368835137217494651633452956203225906442531990527775178464805090895429051882532367698213853807070733532528570552387057765218143702104606358673742081733772014879905366479986637048980992912292328797954978380533761803842077549090728081597749044879299758550490961359402993826285908815571286856128969948339758122774057462640533241418147436118551401645818451121095825049182973845824767439460029618975381859565482131474037949649686160170930438226558615539662928844693045919496336259565968481490265037193584769494507553037634152126588868299567012784096345063719217995450989029326699279391462317632629629891960767722712223893457465348696384413222814782249584139827103421770545544307592127635837821794922323156628076402671660552665353342592675500739419594476623470269390702540675559388646749563939536864147824337868589269836254713018473523260000472537594825759099928426971191351820319069373340483088800859967759170308790948455326452175367340219566589904438571067463738662776316442733656397175367076260871414283889173113147049292930139937929095357671713239348732253588325189909315063916206713391587624422422655248243799135923633347497300481385647609926388028771237665024306614304793580226289420327288779614527420492118767573275860780019006658247396727324984614098495822480396234847967354573786601963490386617381923527333462681739900004986568350510001394294936820010120496810567838913413612542427594190790504488302664836753424185507215296438564633595803180631364534183733961991439042001317516298850221807408344742858730585839063707827071538299386122461608648913600650820879075167497346853543468477397596284523518203725231078156598539292361573411470057085834574419183723161537588800949705736849480781699320771982902585111968862887594859057163934651824044523612127882873219935180729126311539189451337464460365863928418723939561840674981370657806049857187046670358536857793178046608587239203304152684260747389296469810728107316124555569809116780902044124340522418606792342327815330644335528391152329502853955285503048450713569843106791620153493077358273789789161721633561745958674069710066004153141865189182712566495942244891243387076202118740112755237321223655622289517025770339858814778935806186522233017066206178483820844113202503064238569455094316467422268907608163788716793179051697774525912246468809953792606390565015905553595834762576934273448064069456036824439143389485724488296719000926115433808882028749103543367980634001821801873822414556437969826169534899096902471192931172227852145458870177359597417456592914035256607576703383753771286781478206536245279083011043785274441306793272689580393210878478063659889886076484493586869012187627278072680541206371027529223254399210234902222990250476370158395631396473003961659868476345430282610020687618974168188399627751229800632791194906110777969340811757577047421990777172418375665489535397683588428813232658093100633090041102869293510725543165011936848087259373072389029287697304728393296574495618552877414945567773115338035749677733062728945011375822398256810923916281061632440840463099121096815285876462961044165981989425999435093915620799335516332985118089922372814924680098682429157064069506637790103215395091127940011008231375615314019083844821845390459604263687466100989122922042495996526811817675229752751235021668801913779018805965670794761450986311189473570834732127922830584547384675207576475263444843653406629268618000830278405700790395675734496277868406959738786424416991709810542404132715911227739706734104477554937586194833971642023659774271812298809890424059644847319851045457254906219873730286584483186373561972520028012004076180825937775576692389990107212617317300186477343368227579620216487161745764882453770709791672696831233711114451378802209536296244950573438915088611227324569380919452125814414035234309926557155357148186914812493690576665589903583884489756126239250618809849746212588717801011623069415734255025738708590820522982499896365201478700254736608220780588107949159318349735102449333970205570267562326730316588495762862658477565618938770245679391971568935652038065352606943212730536539837986584953525948401248822499425093523102654981099286745693335271840196241569937948489611098953614529737849336414082368347987309524820362129931058014228016995536144171557106914815518087802271389954182592534769766886396652273277388155859937194243790098766003858062167586296144532490273848591142792470466318663861589518517359014818881605639760546039677676527139415599179677081358095561617726026977760946962673936594263514123377876654156041880199523829794689802618608217823591310155588725712432948719593524253965294090744194232637882074446109120538299585486753404768219197332846602402040834155138126261670078668082306810753962311337654427657141799822584829151591694904945909675716334441433363010408740562482630035892971434928619037506662504855635906901553123202015888664159576767561546067079622751364431851329166871272871797518860063820403364650502631624514846183692752330181819755471528867540460149225579659566663657560027055970951952718974601771204834921781704786022049651590362217875838510440626031221604164955062567895238012712071252922214177439064653727910340135031567367808898619923504308186679096967705051013620706680783807581636076987313438288202821861281837990461343793346307183169116275464194836744432530720611000607826382571738070169070843816441448458904949603395302103866758727816246858917818603478713350303724423201743582291382853930977291071330840723505343012840644938617149300834780829300528277211466391175988031766281103295397683310818974441607382682479092308733688550366168041588821454662721675953846111301453763609339904344080222009709622644351039093440223350874940431444436180259967504107593421948266202557296220761371413989265086203888606939120242274534652918251900294481256822811444233300674726489708367441217889810733830361421527876170223320078759568187722116174303790396741189080973842131590783613836572666530281037153191685253413547924957943621419127616619434413231173039157624276541320893722103207807978485014774212084116681530531550373023670431982495631127002282494689565396808169087772320549435804947817602023475601861887824679237141563118898646233114991683095258252012094777684631507268739286983958909877344891378761465242806577817689158716045352509548610709702806912932702504462357592457244499225896960651989078456073270470999999699035960424923656259227481477044187879311544189349682079295975833220851926207494339789533035000439015314550288930693012414673068598489352701847664889808973736522080513132748182169686388069990142993989079719860411240658291837336411892950157357681562686671265653461687384933042611810261676191898580433921086989993694356318682681517470151070200784501484148512170789316278860550301750542630480552822396253658974898788057869138270329699225063848282421841682905255410089474122431352600772444148341225058860312540027399733550752594148360720849580252326570139775203264541218198415774837120861334506249677153749007373229516242894425571570539569111857950660135845181534911014749574815448448927451396810524569169750369869055452528758087142961471089729900327785201387318448839885885167510423822499529158135044871698878672309033256595710348177773436555684980899256928182774246914453292087385380625209221814866856471408067951196224332656613851112064403156253040244583618401527548986121228946899125479932695607299135980787986006381138983893893502183059622761773258013188437395607539359938693353331873733985189494774246330570993369536424027846243463702639346641682233046313465311441545086724633097332424628826739084611675425215055164721452813313990599183320636192803337983135378597668964120999281643076062616773919565920905720991033310754821148541031730332929460756637148265893700522990611812911263050120067648104076218474354519680180093829881173312777279655512378892438261024522082684542013217220699285177566115947013582336905326605516998681190069133152884589588326824083527317298068211000074841197787481049425287365458912325707571686376943353279359998727542841812825532453028133989992883757284040420074212899533266857699733671431468632554589537900817933126206749926736122420479439123529510249560333816856863240026995770836674576567116572540017246609245177209096303584939544830857940164536958209310753710454066349308037590888802765931954323160048886622588783655636072559508517207112150742383786105130402974601538439761904078269576122312693914115386203432549699029150451591608889574240396503172446934796821637282273626565530464719892642670006682138213600057614535616825352538653410538572319021741633115666465801199783787436032036946841286168142422869747602974007130695429283140419335754540303632547616549990545532968409871400682745879409319599957302873418013807701643155470316333334105537242817238418510720823934695039818598030224613598217081735334083725094154969060670806548280713778837242644965493829466383539211779340794497168559574593648267432592827502923191675633871308623997509063933437940552766439314700917645478091146568331616944178419492459867419334285340978342239308350866140173655624569183659693636322994953151663817024337313493413131729286363691295014075662217902232029638307139178849458813186405152717097648194955284758490649676918011790073362164647881168850392593227843248524633347122680376759196455615913920456981001718564268146871308214881116191966357717009197589350956893165299263970922997701981699476367931997807062680612739355663959092385558986757603910027036962194082884673544246646883135052311060359364366050653714119304598351661044271850624899260215560072500299760546917410396320433952753144208323019880217147409670878661111001189232060489847614368767068458723742221756450640422021213127896865923756333655486360299256511788871121130466998384282655924794310516950385896375305351566865490589380248478631644750844072588392131843248449010448801303032256797697466994328329188702243693187453553355073716943680171948171845311276774544771487773438576749299231585633391280406374119261388598892227879756758697199098084982605050850437551626102196998690472718408885095018752340022577926520487289775733641843497402482901487340456609255486540339269735542694381829609631852285103474329039537221916447495433493068653289672150229030721670553684569134947799295969653422605368316834709546426087677017741473351282312175899306599520936426603464719859140000239336047305253343527399722755727708753281797484113284411904176319517188269204318847729391527933353978670845891560242445896136952229796580323518276369013885632330106115686071094217346247449154940490287002259052921014930549688666402393884358167961205666388612695619803043866757195862216389455489862996295313785046918735833183997464023736100560920261490066392883433194440479287380210510178540253224275127259338876920040955621148618267289882033343533542897762326741189086639347608898846627044335853225101587160305177046023900683033141236415513499560269077702576573470612809236565365064395764798545454106973292426428147272008771150951148862405715969307976669156076669083005732610964850480665018091044834149865944586798908758661849212310772007373452961578009088097474517831401260952751772930322279237558086123600431774691236313842328626423951356186344699512127302359629359035812762884793405813131253793703834680690828081348857923813895922476444030160478805721547930292901463451578190003144510175393311460551959021160733697762808744802557708084777880384096170327133860913089061574176214812007332820503459122268103725966475056672275392218612578676466779557028939407050121181968526356478417042764368085234378433924257584148428644425794793381951638638539375217450244546170575814394499856708912005330409131632924723945507152639342222499054789645161874226952711017214925400801019549622882755043711058559233945668233747177507577506135981041264397527732449719465697916295819667738135439310646445741667000791513693922646691025546724869425856743351570337041658187518696139002340183933926147742851420664554685144719966346229225095395240572419595553764924327691633929605881754151321904262984823109997244621149323501866938329827281938766954418336654475305186763893217974960209989017028031937065520409348395445159603873051776901876536781100415412819389029892674855402211944945172588150384641971682411559615344095762859899124073722325050745558416115533510005197746079079850959194894320522565400407318542307700927354388145101478973365147985316624301622800375510182825473804853295611762526824315319750671400896702315116082749104791958203057880158302339871776561666830207611810466850775096288518039931967292854600836433962644470778185481262037671673513404477624127859434546717563450828346634786132959272377121266662609771302769938412917866939517019752472929368411334516902300225635589440017614750289659562229910554988368371881490687448306999621241866277251053016661866249109755561294336986456209520826207817540151312182120015073130153176005248681494740763943791759836169024313750336041787043881023550642014686739483414653273260388014015331883629326518808183765625254396486479631789049291723411210850262868113749504218574086895154399717007206863066787854895138414923337175712083206599908534950009295407400946834503506723018459763725110574435372048630002424367814992669605537744289295184952418121294552805159599279598967031460584883579395168748847997570844868978107181437962598535558161706327495217779035237953918635646196494481683894401790999305487019647430746563079820376122679329280584347848570686503619656701123743047250061476665939185386810666474504184568058649417124487453304823042765561994328644746113576125662440993553053784370930254011394712060700666905618392383632504729584487323208504269493487951538090122890495109940827289590635392998548012036563932577355945823002850331858254746577342216945522808114630466112260724635836626302551410126511157532863664195026009437329853976036742700199612940036280635334442104344703890938830186986843917383798485825661900084523867717040173843873871051304659463998209087791181544986661606522225259484818966311693644011028695916736090728263938407375644195006757515735554479018796358947664791553073830357862043264057000253123012251709724977578567601494763638764561890221574252493657795991334642044038001023476413651375652458236047241202917886093194547313444304815251969922586267598744144263785720931591461435387683663826087577213323443381250501154319138785828871716442542009639205847640002144869173459328643391404854559880235823172331936511075545757703052711818422062864605556506975573744607673983862268125626215203648123843283949967990965843245172341163725626866175345324479541072412300701782031485575216098367084371601252932556475516082779990867211880770613252183775077653051625625130926341205675781980747722167723410826033133294302343157012385625407233510668877400266762514590169761407857773251198117567644476300249617207671613368710147958639731375385107512448436960643781582808520496811780194158068463777032253167479265806011486433038754926284881781466880997167906759621210355150298699576734146317884331165401792725938562004861086361731824305584681507225554720142409706879821710656025824950306318029505950865886889237905576037409464664106864518798160857346180670249887050467490150811081371326978557591055829700981892078210801979047789726741021822557373937963324576460019459581131905036368099992099217212166959339796521208414096628568099664108050797898593233342113461432908427786760445108296455743935613953126205539634482935783267249281795119712523559693910270019392927807973159854043987209820573020728285658191864476177736963142502966461192249310814911165478062724068495988760947382214167619716220612699110806773722280011164559739873590271366417791921537604628561269699665231301773844737732324352120171313345327260166576000579859569073050765477642943687536871400172609069313645952320795074449473627277657398508174315500400280204922805787647212017049760865120125305070934199405934918712673666342462476967691350555366887587569568646139336133113154179280854695265964744539638741363126715877592674707258838457342437939514527579840767907755809348572493527713163494920944500485683808732316964041826388413056541913873281090866856547519279075116588771361453191188056692710153273927090521705585251089433301142239406284484480767143668737906259374359031720451049045725224988702687080693081009186191588311181543259027255710226694812174225999609728274128509470433756805233086181386744675820039990621835184705489226305649273701971054441210830938743623039947550341935536392989600769820545080222077017824098168579609005750165302243674451005535534168376676642537507637709817299995234159401970434657858415884110997476942973043768007017843861945410591860370572445831453273390404396526651720170074500719998977795339082611419098139891596357444585357123152985426839274874440166552209845727011864624772160212460590725024400245309596649269269324403802698740420027982231234909792972771880410256375357803778427570921620457645805425081844214510300099489380988409044523183801214079269923642074414973037843302911930099118861156903595729286271413626373151079101802219375639549568410403792915829531771940406227215904559212844442540072976301156203132516851688239909242641602530056642387435780771148987772768000658802081829436229115499854723566357309358779020501844415791378169523477866243161969728655066069255670933739390064018510585141640182516757529942171919040216565870447306601683314904270754372477394312893299127004554598052235568478393261637945230816537727331070451059397801775192766262646688755938239056489299606652447084397248315146492976363577248695531358400021051028638602007462154925374769552475652648967276658347788977507301752112561499816682380216473038830770212730429160675430986441398310231157294519118072874381387263035373096498392401443909654202286443611861328354607680328128716685399606514111098245570537106866204155559231982725161507424862448256821623056195847742261059272612853615719155365725893102411732904253067781466166133717174187459819041486145010271500136937251336137257977987553856721385191428597148917110531596657241806341244823949759235288347895150713599906199421885932478656146559253950637244910395784925796518371255174821265798359163840483471768724157034512420562879669499945665871892024505947508606968309491333344429672219195434602328360683200721873248087241527132488519063520662853966402137903031857931455231551021433255861359872236145324251522561581305672337279803456975238532674475992389479335027744635249084830388150197849747449187936648667713571010787130840763600285114917943883135521385941228838939981283774136846445485535040609947389971866097994941289204187884219905690294725735824553760785683597504345578558894878064969853852213882628454634027144045969794588007238406726625127506760671212427144923200409531450590752124219414652816903924358009003231628809233057880295034186245968442589311663740272806649583970308772140146149061585371903576687207351049710281205141857955707359070657036102950563111598435485415636479932853855520274511343193704609017422163899018999105318820416723005063196572302327210662575290571143156608413762075076035665356768923416575404614535365878054092530524373754774468538187412387198715436637303438941530888429810864652242764384070428863836924298664490649386128967219335235425197953554640238175043339749489544887258457968924919580728142923689332769661308580859240209937431008997738743485254477730360520567680184880695450534892076391871236115885084730263261267468628234467679582502294796912835163268880761399139600159778845606422983060834706278243883928607799485197660523797000978544840770625379156667938358817120280560723183344634191430718727810365469475691113319847316670329925445647588453088596974801828774535253803753803861409060155448936080539387060527540229574447396930329155674885668521806831141240936805886176858942587540450274807897700292335007077221573026552273332874180237818207559028116963744173840982448175349328710975354005737203392964864908814350065764230293699105218214396528098708869112248046289471488288555395014693386390008303635307322767798662626133357598614402288509321205975393905506704118339270381472331896865384999552881521767484009185821963979769988639719189117684214178212534262146296275562300111154320735737219322576785670424766663389518991311909144519713249129103021812363972095676222276529291662070759024299055774275481061195820983760922270816712892277426937248174327425129809221426065914728847717224121685143318433432293520799931809184279750416863367170399475864089462971737618633890847316684272683427679429067643110634478134680128875387162535775260907164620859513694523279637161109272342108446844440931035212881167173616558114731247188527950947301834298502444082552803169759330493599763437224547412923702861465488268977241787696444543906717359990625026774347759707754036578339240036865879026068100769271978800486840912324064365744501989905059056369980223223086886092595953040796955942789316438829435493176079418706894815690712994062539225463381670610948796085813228828839421340760338250465153428510579150373082652581310163653571890959004391490498260626448531272745083185080918099031815931649691094320216498393042599115287746442007305726103938764559123463901960135123990762908802670612469049117734650315397551108933797379166021592963890414254183240624250809660822598849498817704035690986755707933611305524743779226946501346400200999105624889914834773831744813604708484040194128458149584318091695010253304617221509474008928852930684316466748740896283518648366366710487335572511520226913876179349439769658335269613286617818035635950106081997633677209133344751589404432559621040618497215633770760261534902168498177942500091053016791130515640672423694492043067954567179959079389820099322121127243223942746837677051305702586309676493595090276166338599385974577095709523165892494894908492253325125439946264540081851730032181328953867868511780383102539650704941694837476507353729749201249511255067480642304655431353657999626632003498960018266930541584395645811533310363473556737865659947845541996888718398942853634314805112330675105069858145280340441592472375239713842481441388280123672378334054285070231687693326199421425154295061438794829947631409228010216807236837378139996670886321828442919849608021707598648310694046174167228397404689054849607818996035097778450861950318148866715262916264422446428860716826495774297539036796161196455157806251944635479520401973064670346580152358656503230152246732110159574558598701687330765599324744604028767184585911371894805055523093921745300686996125819600682609310753331041886398451341496546588580953180282305363455645679775064332517236973655660053770222589269864980655882716869951808929508901547995783700306180830500681357602783402934177589160168236578897607090127511199439726468990544293133134311103065955894862348828927767626392561221923935274700510508074644614149297177845752016263656807252033631039314188003697839509444508685852997187920592465188037173572496128215666712293432682373261364545290435715494778439684683480944585035238371450507406316747062872952879013198877217671737794441082464419370979371954907347540708039642956090336324985982975546160599571160736981253710472393694270677572891652506534186484205989564140249193827058792143750910246603463395795429309333516121432718432670247019221730633292644188860470631114965131275381229409990539274634978393618824857844358721057938541017129354429814376306102248008986540036195988099333765709993874155939632055794165674085740190483514377453384624174453865455883441279032917971262471339990197136729311956034153572327722644908508010713004755868534251813437754444217684264132918215409094527580215586766671496540086719533566103398066504683382668007495221996772256260437256343721605639081719261910169931770386267686520183849727315645250571821400773153903766931607203265390938719351781244965818292821348698989148078528036103232555255689504444916369953390043339900179829771023746263691185965075109760038977956748066275153093917613435662916808563206086038401841576454128413123828232571638548540996905324142992263726146301412848583835531079272082858539355651272580370004670805230856008444587152083894676568566988786908864093658242850909891029197323594507807742554575801116265553228806272953039615639573846317852111259740903583493422864076079816628003206102367600085388156648331071642641252796403235521914339819522794220674957698557383328556915681297658636837915563435630912265835563675792496437446053168597122555216480842768035462869861266584790065131956133557809470929006690310507367303363230765379041073426802543498872644383108641035911706931014824581748422485811498677546357323819826317548736405943638155165955915005708552815814107154538890018324826227498460727938213474541965195524032628357196803632238918503163285158661711389789858101762501659211063869320779556686317438688754216501516207706366310870416545347489927671882494375631802353733280535451149238600794316090399350318190332487954185318041673386159642972868368308427795451904345686699391161021212422980195345181127832346290428956635536595757841515872269000120873423442380872074538335886961416080446680247686811997272294208564563590879890638359559416787373023733093435874910265686222330439352071163583522120341141186859153916966104765247910493530633923849915354106476086746275831852279250436121481951403049797524570436915842625219643331755662534732417608134003057799487827430841942329659518707935761906803195872677679750705044203818911197589902072580080481891752365680041086045368826983919452389589367086931096028159212996204329429204125850672390412360907858580479450307047561679961917512820754489963726969658903139199367624706822075084833937562868276910532629851003523155948252838465481913853811832882826329206464430121713061788076624327156093243871054203557983835193012239054300030988696919411225715621747434718864950418171941035587150658972352101745742650771956557298743121410566955841901041921521999289324336280327729110132171530851672023137226490004624082840567832512853454441291032229702269883912370694082453578117613370930240041656504656487415166860238624538145845345980120143484919047306113477820112225751516872808303305470914073179115519789400775706852312311438854890870861112018713839518873675817981171720792649328482660949028817280277044286541768611574374554161252709042668796567552233296247962263196106489165749488331080991792677557093328788449977915251490312997460297674125228187217954270112749237983010443631489286276564725886459464894196455373536936084476784364475792356754245666601140690615151253222872883485989112844066444183693810917396998140046386638195150436703796643774339513139360861901376701079222276087574784365977882788737406876547717915882722250649154261595675348824964830499611296906426650700868353860901833186866831822076402427361629518411763924641864816572799391247171322711198098258435744790659155953708997878494977944334226112724106368541806069093560293004987567223478622619848467285484369422856141425411621416816050500766845959428006525724757905306565701527738325665675308709415500696101832165385680753744872621375386645933614937507912898564202222459213373959945993122103556262888840433628114092109718626661953267787452467596662307528913706274466460130874365800191544823248390135488719896549572029487482880591552414241498441537950465745344001223443982829647070687856993237351322079062668119049616353241291294005554741386382684727234601729311873962054370756713862117397774738945660363322207708339413621020778871238530563353455494691224389079337540074185193161935966717505630697761410134529699081255089980145071695940399690203858362191918135800546602953712609471334124889364659648648644026775161575085104175062725390777937952798500727344228652776152841780737459820810344499257094425616408859620029805786923496853808636935391507594642789205643072614051062950090172087372519872665712913509720296384837581051626245349287488086317596622193299076956639044963172543143118245174034936368146608441008762945668645658963770495233519711674710034703986748206186025512489345727789543530429962085499788904102325975260610141164450235423020694119437809900106124288089923991560225455184657961988782139936781515847714695252365451408266465512878055916634289054633662880483987995175849684137926210735955017042496689727952456980360877061355217271777181737028019345452636914082430829383746235813616907242381599839828123516461752676504295353400538815055264877501060180194800336488095625007945123834007238748763490589407130165329207614288674044068480687649616126677278419105103400824989191713507422469704760218693369872562447020211630152731103781570130781388470901205372452500763365028933559044017292427604769441889680328888886328087681553928875984889984877361386470177550913985793548328357897559629509359085656383901905502084792064274457178060872046378712952014500103718897927189258278755519039243429306849902502911694055257187175399113966748232767534669256054777740362400883276859154768459417671874215373988516916715927754723015260004730229950738531203752389749176664850788889767873642215917676073756744160435388917630146866864101362404803789715689025607845912634580170580759890344637186454707454254303817778312299858120451455964167921165006036775526421538371869706842862649257685819808713235840834990082709795115119781800390466694665698258057989944708456768449521719794843181256204882552439211043908264991761308657733354473616861053332310914143061203680100615268515180266443469925878960662908321268244435898443256688575674029986222147405352374092212213723116589386114243302744474417350948137233434287631077037066020398833087700442445617763133350125029840476765156738529546778225315786965101080509401671425233506522912385934047329033117503375241359586690588906252715621117142176376874801287702427915902470136835313747209005133366610964453571654223679579899700095718977130824311152217801645373025454917358426221916446379740348493227646748367439287726604601462160688465559285651875632260940891705583356403842397529372813567387874414382107419777503409193143035795919366652013757852027149463738798692780581662056595604925449254381388347674222661164687077950032328504542533324493379875921404959117939346357711450182023976092840255318144393630405843753494550498831065464660628444610520112243786136827947232652736124667318548577243861903463423319603710915838111787397948589264249088163867725952767999537591039791863943723718011470977675158137142068127136751107121687504293362931360989957544466263298641634418256986292414179182381739980723768907488749985109920751869895273149202212727281826515852849177182439334884380057830260635405537119354360426826659237432357811352285188165888473143745766667420206884390247044508068389990805032630918262304893519654181711529805663970261283382567936966933482580328155682469276567316277400208889959202427882018659778090111283612550034325037135834524783492922660201555562125974816786891616622443096111224756882174974369551681914582114570335721549444670847532614233895831045035026081777496378494379636824090018829741322391449558298053069666680309511164564161298107724117107909653187972907030862127825235085325239996054353571533446392624327751266882987277914461539347883118598102387795624219411766171612981108838138901934338348106140945010970305684582933300582478245263241292208049626026877645535047919425986199523512454879293157480944713263258594828356937392106460611702933690292371080138894504084196924173976111535380968986930576696782713250589109403479778399019923223268019348270063643889771462871807905207408999228965387511847376766968927114980127772530897755662107325992340707353949639195983690816559807346200009096771877000201204274781354051078554000457160171053548016802427147992644300676185413245203986901275448173877267901914951993059318838723212708022421635153498702505528375441569621660815031420827796455416448090512443517336777398032279581965969760451787401447702298684959066029145616105517137986410421750897870601008187924242486262200569347401406208847612569646641935140777939813546923108971153796009426643492786249001592463835489605432369205858983980792683783448783691517724065042355697802087067498685955434995374456771212909610073705795886517513149869961166300750119898730887740453269101958381073616547331161845076460524114784013507115721842556174258134721071557205359008297738040828981297749667652881335912919507858871414966929497330934489645873960177469607986351127195836393332088004775554103089056227646203086032116157723146658546783865174193672200316233128425861870120442953037551363403046125303147541136775000952162430931381835583873697397462692640066156224763578639261390704194626228102364790681837037956738854205873716062657832779356189322892483389323514869467539218623373360907330614441670258922674549277480344879070767765587478040302891965740251150464081390307793436049581250071930462823471301696072645601723425586018960866045495126038774242808523369358636471354510208187318353372081796936894376040106325669957147715443825957839936247498130912386829847136622615226943845893555843699813288706493927911066285495149176507385933180390546817285893716208417641943146417030009999843853502395263404170219368114016011409910672805085922413990501778550275561318059334304407447066969599310276619157406018900040149550854913466235270444086173348243378566284290752726620482870622382065121277712992913952820169171524242801648273290811648617035034256893846103102015126559380833468038310098771737214586298178994758097767460702140541766003880478480566993352850144238271430550649681365489498784314847590807676729657899747648052573196461158252476282481179476666684554745666577823145774337397493119322678655144045430691021419265733459832434270944942487280157845109736352415340725540673908575967208569640848270394348953183468413110870885275744836164961478308941526929924033681287412238852338539138705186578504070847639875469693177187647678130565672403111459412083159204334612660848710788990184349381791305774632200078353154203410719667002901052422051004746544185416307948721822065485407239654509593604202155364696409917365558716544900603173583797605209356111476042738618738532366747056822283519340866618768366883264132590312760343672902061575812155650246686085396562315616509085469777056801837755126098408344189357327122514683612799016960062899217609889528000285306362715834618157204611038517679928919166694070801394116420589441009129500245275303638820681635537780565781638470504046124997640189760322376934586886258867477180407368974211782088864317543776299081310650016891782252124233572976526636721355967616032538358878966450649364231580287049933738281338121262937701604815907469320515212809574588617425423521561404582595054912696399689709349386346608125236220125534219952392137888453693797988337441951175783186550075426450292265972267819048952185049943406257950111276428348310094263123138443679605002764648905835280749318326440873936386754238335268113412395227391470708993836956503718910199772700028864439032027131561998572215939393058265356051314708061070672831295421210133706896738751184188755515380356159014338461515544621072536993605181324608422071185135873410207521299519886463478492115935617399787547949958393432910817058778583043019946870393422202530084345848100468657870188594923820677303193316459529168589160038427467068478129733696680748480760105897119013005457078195769427066926459219017473192690250874062816771136793433180214578812257016349616739776472186309916698898121628909796683216789328320970079532070042332319003520667693690989887910223793079167955153331483019567103380648721204208932364952456820106325876979833810316723562457042301553647625321353276297914307814725885386648413790429258725901679354414183963770060193332607681743731120136827579244581793596443329847644993122233267809633940100143174534021942186947335451818084823797153432422030672611747411851734087078079674246245952469788899423679262558085774220565739758710600202222429615954589884137734666565535159839023844854172606167080931930704467790528296415205504531677217076220793795503859323340052057222215800769249649720083766746060140308427834919251611309506995490308607595083014399024029146249127162829457402768567074181284933101251963625156990420560311312667269005193829870953693335004638970995229214416382292060892340437486592795729676179486706039199135919939821675108263808554493792457399568652888536443242915844243562154009978565622370565469096870427293766968672142202847424553872743605056424344306157754256519391638661999390908724242658528486475635558436484923872564205300183807541067411101292664282715619540320745145088733850471957039869109470770425590197454933832573080144925142775238039701725679978627203290881392626715055164318292500825183355877158329967048264048608960492425222554509619091910142824436983261567794428000442835688543688054008321509599429634324779722835511842729674534478653635123603422003289931789168743656776315497092716251896048163472197482990816532969183119473947936437989826623413060219769021194785206755857265811795241871112642953185893208728529597588238713116958288779684667365256814430478880256248221283092620293782338202464617712155201056818714206725462235491369797260539427736148780524309700174214877098096006040908767763050317033993816114708777870499128499176417527281740841134489434845081479009064797160357141984172427995419044490525714596058336803277300697520998706641501059368730944931496919722009122026891237961978572756788409493623453985097278887401858410470248579256532986728265545644509896354164204267670548565924842897793694668725605598405171913345106120019514102328838694274825807632955230722103450673571563850448106157121180421603608619579141578816894006790812306898263202784108407123562558405506631501177731682866775633553671623987269091119828171251895869087157224228834323776841846685763965959385655320776464936086350244921692782147638731201177045194844918294281972891053403792561636925801045990116213240600901380693292391130486562478888741487916909259136871068854458100675483188220654328218093951584066525247605425650276891014537805952139679970316757351749381568353400917045070410905503206203598961326005629067933004837412323373195365757285705098983366256253804578358339653839185737638680891330163432958210780592159441787802006233431900695730430309312905336823196003759772535250405912167563933411229965602712158544870530371364014817556764560939776062615530570784025671403240497902130982917225957866164085308775899430457790918496851598052270802478436354608710093000959423410713389337169034863381503751923001693239419624739529644694772719786685318972087893815598806966668005017699516449608130969617554167353422325994260936699409015871950657373925041908994646336890592246349577944436400227560623190220222142637640964451618933896138769140337264991374010728622032141422662413952150728668662285939278271686565334008097634197381358202073077686386228395288889971045500500528723928733769543359822068892351199427525603784090078848499884550203006116759118655333236713112424101390632780178366764900064923669990677798863874158130952896833810820751952161930955739507989844982955308074940438537364406881286774198752131954520118823092514682752940656477568287733405484296154338109086172397417826387440898571526701436883863169973594473523770529272712048602556180890180166704373917762095851364750459505694609254064337355219707657165969266586169225941175260643575950183243877629373394742331117527745713359013146965036780375281059535867683135205031475937002159933632484677373045733514256898448301255740500184803748593428841948309364552515509453365528217631134950593000502186953246364404762864649633014193701804324647879011033031998345524421463791492867605805360608934835964403457708027381781575081376600528698848120260490231211502346623273753301493352842554576209385455625815410853237044922618492953716260401545801625070249745976327579711301021802176686967675610085691972675027046661561184449647197202900508991825552501065229441548530141003746124628051761886859538971812797798384590994972630439845493161217429438032998512184632410496368773243325754492508830594429803217218753932627157092887567165065860354606465668045744511868046925001093541402565000465528267185464810488564853287330727032696337373297778617141529588302075097571596626792729077117246797651928143915628261200397374383911419056107699204486805681941158913212238158677548472497967042833766814158803803083981809026982287380439672910218024080151231560557631058538477552150811821682093221225908745406760633419881673193920584879001460550019404450878294629274741335054487212567802531147627979237649217374744877838371180096841587535095099174221834839478795189470489990543228204804944698987653794871755903351031481483183836156895392089411644843218107669816078881326395334348704548594113296943367504014917136332539168224741917722243430637096239493244341198297975837525715452807227981293437377983521239292002525043015389639596789677412000670156923349965819322918668947814928864376821365035949343547965069067960525885965987273597077302571566284652877239176981889324736330822873989233792207853811695712229740813079874827552490100149348956381769557990184976818419541529833108040323542500388561629612349686076330474885993825644116383596516185978702360507014097504757951512107934716460521485828276376589274220369220413593748098271607636161801412347671300725117039444515014818544993906146090787182511526627542758456599008890567712505545745671731790103574739061568599196284076253684835255398211626954525943180839938820175675816382607368840218286321627509386430452387604298038953985517472466094302811567851818966484143101430328769992240436845866070518762270299022662554491451767434131080346889811590794744848137556459043916561252420779515839633492530410054691567417358943106056419395788261101968722737140923560732571392053722117923989071251775898661139480068238145143137296247804866890314663081201189095657984814362793028587544519304215111397629881957745201004481225727111801906051057444606759992208463534370984021213951139770857620887705998341791743200739212927456334843555248469762774409617361974557233210125645143344060780750647594815666965103690399470098030808288018863418816949000345455269194504474357651361677736402530186767544763434303619451525783421310186859666290539224469033291026806549461418149811351023098645106345171846479722224084376351588570551093207746643518918243372060463123045265083472943919805204620062964192557034635273880949955300678695923331455988651039243800216402459877732144155530366815323464101752125821628466389753076076464023222398861498880697732106928468596852473405471430593819593546754355077628533011072659724511245071575818802773584143786708529524142966319428852414848811333211575541549509223045994019570891804295879475916278032913183648628309627702429486566480135374438377854530620541761856162872924318700172393354216772871659181145006569113285441553228455556889269176101959544742912009327053193283922765304232210722668714984854513516000157311576069809841261605381955763717513104812490632669588388946218194500534826518762756546651108744839937858130657885118877315884259535282855398307147634920550526295256820605704739552615788561865448230112702708083270706785741945028636668776798913585247381594920169690337567836258701526597364417063947669479301143363858612937235844641788606117516784168726495986987092626663009798535708076030673105790545570486800389444437232723834908305461537326473253132375799959584535605579449889272769457729086929010240929238226917129770728853766886452147457025253774217410252325813298429442975618811189711630871156116872014637462849428925180100752190670813556963297653325248242105297801935579458107567643787402737910617570437443656628220222968288085234860545122622210872224594853915120483674924217119280884859895563535380340859744672197048137800421591237371957922460481414774518011745710719289455733596704829766775554272318878252273351155925197775960108559088817670304021931868115998837158931442825597914836964701752222894705967696723268212742218485838260268220484120214463139062542731488477604821490917984969275774186088853599391903908924416830794011189831883152552523298635904306025599301434834023037146225650548008891495343058762022605017771626919736346548597750340987064882765461532104881575847011027737795979064297924693159882840764404731804237996095171190917660225116834838871357257179041973492142386338249188403853410235974990825523616065112478532129063472857075014931051818230858074972758311589579399343706774442272431721843616334207885456151444751211604616701811807542039507203612556383153799777347574509280147286387860257312244768596642479906902565721670089038590767958014907528891478193525919073598692653585586318999451531019849518457565717282598755592285919862892446095271893701561827736670244406622778822539326500424638922462127409477929151291332368895723302726607639574542090168761443653644713119806352397071126327123704922457078604099663573698937014714132515919619056677154328025988808064208707576203170454686414410093469786408796435048838535932210996470513414600203675622752316424882394745128778478328969629691625832466871001454010836634491865954766684922065074790591762160315100960945839117938599337874481836019243264394300619088397591449528125848687360861536702248760941162540449631606294051342984123297642451260847865323089194462985306864047216801327515605159996906671146256760978927202697468877495770336043519315532818697923763152383381636007061511032247174801466877357609739692801541070925880966287300151254171146460499762267059596471822459412332080879756691322615094386894210722958795664623961772863408677395234424386981008993752447645360108967093005875119231708477209373597974964971800427285840464675439048332446992841221177039207000458959657786775487460928460096843726484606856419633320426804078555365255412270757903767191048599707355645244176504546331982251434725846686745139585132656541905802947789138448608869047688987870028510608674889613392840384018964290590416572268288716408578601507199669606194740469572932075044770701953557670105185611567353789741722189566793345744840616958382105807684795933943274047599214648700593470596826342776107044320515652301468416549353050431485766133499893270962858618363591251508904447361305872714769874763786904994074387563049629267894270096729511723092147976093388286609077151562609347263999565254463702732871675248694280691261026854226917282354536783078170852211542739815098515525745603591237823721110054971694485737088446339170650122932631691274698457044968426772084233639224769690637603399196416361660958503322092942758883575022769960757746419857867964181373138204591419638815591993902772569439471826721995513964158737919822093418835326966374040494401873665697532801622568609414855027054516020910386921696232927675184803592755070104087201015194776845060393628717068049946953510172821475058570187299288217872420614169592059667259964521852726713326810966731324448485688921479684860272199189884979851726762409221422103080875104179821295797078381568619061813851749473881270285602279293116266666968336189688296802595180971495842839393162203400419059318727511843893329845424263144305204962892313501850046213263855342584333749374268259532481628681541291373872535021286746787828971782070395704776589829450294446605364606606620493288049730817599337857583339051492432413788285112581239372171254936281684255333649540276257744946858312096464588073466618584157848695604712331619254244546766245298944893678948270860030465184882219883370059365972242068192395201385524310679166986417151008605522986858198030592269951592404352843080251598911371621732302375917286856290362749143359841744850158227643191645449755698177891574809995032790342232285118426599953277211609675075850577907589204690686557139626642610517158474317153495183084597332141377454368806563314284584651909378001338799072855855638576930832277582356171517463802567530361637649410618530903641393017156461169879222474834192147932842008413187295677516801552675186599062461379115763880234029472852556085718605874547808252806012560945480011549803603905063269533114215227711577023511459536017605322570328157176059585920054470162080509071346725505557186072107382735077828290546280478220865593174627818322398627641077486515692942580903648490756782938105258781550159580155984134651460485811463232372109569265335171908688558874876740638029757595126125356057443075701277327514138762968648406455221412472821684559207029864636655796865737719876988926785361362252699561705834741279684729916164876688809644186057686284729026746500432902541285432447154543949307518657927121722343766546344032058820780123387057580435400427337590215752691362767462197892594336309062297789369287989761530891635715032035948309039605500940716536330591849300276643855839551076072000336995375258634479567288115793684834367478322400606160746846357620094312393725922223870946330855239571211097222842813581168651534934691565575942345949206107426777707973557393952941345704541202349155414607347057856255521191835297141843075004075488207114639920377367099820399585897631794779019545555736641670805113964801100769656927053405751792029669840220501127086736845227622452419201863723544640186497577076038678864042757278154976507573800130692628921037971827390854576598843112811579519450814305957440035932724631754503423231682196397139354031610145576355170415248293172846465570622608083847101576306494782534561625489698326970456768326466610830183494621157261430139630613903027017804231908981319099532663983051478612633716757103120795919328449533762641942324385685427777599900039713092890582201658321811172857641629423196151370280117363502258708491246189916287027036390110021284328839617030273194249177667382705301699518760281929626908192927793418033451485174463604945599258933838222087750580375749028712713680614717317787559679653712560711219575263155420342812075149732231459265374476921256612376492844468928231576254575533279395950798201522139178179697401343255889343648086219101471965063853249016993305565088607121113105161624399099261622840005897074883626496328376424110314538260268763390764327421679247553947678489391999149649506863346057447595028347529529680615758284382049182205876180510882390970528451881274337663157894878250646482399006030702229079791717089075213408322771812773186042686246148219652965782613000704418175387251117115091508374992012219806356038175329391730660407384672455109511262468778804964634925663374649856589821459021463041044708228443935115340193225118837730159163794789874530522731857668392489467427431065816455598642847996717057309317591176724353784009958789669007977924504805858824189312428928628093723853593052966414872749650474489845801645780024864738712155390138690893936829745030795330180737330188345598969051719542071160187031669840238047911151026702948484186427752569973305998398364484286976192170964125334054393362901120804420711935316730579694976507681104534972349944385075545159294726130906828027526902400864220944944017446771975273518073843266311012138949248643063105177744865286192217222078695550175822144009404251906429492432686251493865130898554972547519081605734143375514112314628032586231284208623891655137810100337006032958043522506274426434030525896020287890717963107639125150793301881741698750274559790542631471979922771941925635107297117763820426208573751919217004135133780629213794400554618070932062971710649619504644742355871335118892668350357555299468323888315003594965242661701935106083067895062510777344558638788017829231843549536855531114573074219637280474073349136120746618405051001225248556659477519485869758481072886211826900362921491309073983002066867884562156959194478946126856436789391885130899469277249037584274023010165575177326349756995172923892604806657463632027603745060518881020586496648704492834389962984874474654047028891081077843409717263583019844737811493531928917608388682066555309562944600426599682016114753382795311370938483451077551100211017793137968422473719065995286860715300856532918988836750269401324621609270493241072299793391390668877989504099836671080650294519260908612480047951396059740067763390090526558781507363560603314763794032117125122988608442644952145535135099867508603049102811772158405753288296242912394767111654517175025784493724196178162176174128732661733753548699781999590816700172958201177049226839235907307283980501457050909043350964046112986810056281269085569351237382330412932981928276570171273500754733180033892808632303647702426082990008014455712434968692551839071204406505712938206310368139486440871057891769549491067548972089913798759786874591212508045628418108049540446619088105346811080906576341444728674859015133432776050566017048919274106974441418141707140638100001152205250129163432974895925314432007064911439726249335533190409804686108912033660461588570965357204673473766465278520189279114922254436615052171030241117853961567323159111418517622615061627781278914280509753259797914566056551581134227676353985758709252707490142807875205782391241310920673752806603464949555468267289270674368258191348672470309159765782286712653370395088115499366965549741491002483032442913874182055035869028898316241105361415993704184962205229735299694556336277782476973395950599732288090600654795967046766649433718255078532415695735787826725653696252240045139909691634329357784651241374974327352975264433385646680069133680056742626103512422861532803217759814819966951081845411819669777512202242963761155548769174557263356765700717737757505949101416447669906344730162927437809189783111899661329383318293679038627290317279608785869470389672150233932938597531665928691892194454005883881306863683376165068567465073949889969239718391685183486558377509043311562051490142791195796178533886655615648306391113652199056512733452762659357087424731774185601076694191532184761773808037217487390659731178630252883021544714155060274640653437510186644538434294046622018021650339826461359441654129676037134321237933130953402905772133449927058818348689855576847581149923404367686506979373791519077696307136242614628919264445392182876108304437239144731509944677529515701293522474532317196881959430030677557580207355277048068915955244833222701592562595066169317069879677050948410522241050022386928333024863783603001882021844851226692194262161411954318458060673364115778538440853777092571581128221562910639481458022811792852755823848971210978052680338008081561742141713600040968346321305380451030791022128286915363170128123435694847906969043048896227528358429939593386634736839948040741338457613487365138167451203423516952081712885597905083000094940400607366511189256912461967849644110026198916300499642992025095683529220754091400919533284008916595608067851426139840991351432427571712839932467675322334202202734415721304532042767401316480561656946610278162244642817204664044757125294365217649196405244624904411295283905906970062303910370704513161149602358838996078913419794792178210087124005602671744123275060635606220935601183343462577312368367855466360327332914536649824152978501121276856242721809726756112748296195418893273416977625497015273300446802440356054603821100178680666254420987841293949081489122930385322943786372326251341287367009023223119223855920397206364513659925067185541066422512257331531750824658960274144888843821124006402284013496098332745927168973715118981668152864126229332311467608199165959480446314238666518304467432186777868600780734443543614035338483981073945820641242540044565464635171080477327881559698413107627379189195589350232723695311699131280202372706505073937820046136298785936409466790632813038387781057956069929606638365874573209564951403327531597732338382660791354381187168071875675878815130531236460937928145526103929277815246694722774130770794191770746101320334469388067980641249164290723713740263785664043567691394288550000182611424087935665353811568335108926807636888943730829378325406643149402249678719913057734433392482861323437499468781776259846161386726643461345074839256205682498592705079317764854940428856099074122877730676431563324637136594877426405355352223254957796068033933084432010452842267317230591917228393092982672502965486250648765860340574690169713247464240124015421559658574367087496395841123419280722928208472763960971234894994045370769223082890034772502116894362210775118598776467690510058806225833352669358268367819291670709326069000455968335751229893433160866580307691795773156173869809645028079584394078279438762235056957314751542005551681626339822719543471238705329450887218843469751539262193258739630825905105359902542503099192956835299805051439738001966636057344635013880816317963696289307219528020223185890153192452420949578531737743353984911411225117236740174417160459980167154797376504402007936425910109300263190125613920409407739546957652060976931708678425367545954504067108334181455412460600845459386564622616352679845416257038101052058499894554401768311898386014596838864634572405046175219766832235382965719704360844258757554567622693983006264110110732987721136988789612805599196566986126114822664059832360858184673823974164380430030142647898536153899990496804437411906864408772961933054109188084972245879200671885509954307603603128006174201330350485906383808633590073903509154207347595808408215816924965775579910304195983436578782084319511181552250671902569325097068317165237357702885539858104852267893002789902831206110069561585360945720548629939077255673061688074461161986978868587632712933540566482805520543901694153552614734142397753916828257173010158973453488444616262263593193512835176723595414222841842752562391660195164622029225847243203323962743372224494060577274107054845726421441469389628684509636597489482253194860972241199993349151577186164837920234915296754168165271558297516242943500994147656877277768233436600073778191394261659098806264804812027686826449946502839385340657785414840288715779986983746646561092324669346426391742773851705712988364629357123052246989817195432977219104309620065366286990419208116307446247147865050189389262612550217836582010039500223838481515472808700115966084416853949263377725165187945392453771439927725706388451924705680704017659251130829099762672017527371843405292180154872213923925487946780348561071505735666006344225468201296094596850571270994661701191807487351521258082196769459457103431412894102335810556458121384471333383757855926251683959460075408317849197571059617199661313810354662957778472903418636768571410733000221002562343964930009183467861812361127584228589701072204606636716208572274049122513926223130623282921333302614475190395198037368030192108727591805380544168307470052085883805404379722099774966726608157166410033383950515387990955510601292661612230767657911515929956499679819823494897588312102961452602983521847390739987896860224494655871499603270910214316479361458799131343397485780261576003240184808839064884232177263186827380825927873527841205205270553169710092761753309945614233816785361072168637585155383991528644343707604139022793074351867051386384066947659405590301922899436985479767568440281823938661239892768610975349494249502452960818063117621180210303016887625329739287932797664906682688927743207834020166901170342157330299204726046615661757396316424959839903634444994742895896273586836545270148727587390565681113583582656815658548005121039079951910441225360432590842178168196257209298605273258545018301897850225465880569080225141505838085245862879240042152040163547809225451993999509940582177098090564750228514239795196819949006653708150632001541239233422434022798973543450398443456679773860215142702539538219485712868341624014894745340400114078687988736055392420901574300484278049443290537076294304323055204264280434921428394154867025382659545458063982182499406550706747769422717254510744422536648277072277199085603712008718094836157775115100982964999424956651903363521870638163686249646224811318098166697365587504512619105898229481464420012124262577011946053992057553881065964750903934607362226249678307398897908493918223085731459360644014122254728393407561917084892242062088651328345163241982526843289757705466429141155799718988215202996731362821981318735742784206654997221657312313686470802567038188819654291043476864560700363742158298166448048692365160779537272022532445755093418122074161426423603836895796466752192597969936566003066954641569985480801234488867409122691470335215686470792713608310862099527842684120427356825334275359542234251315273421858085401585552337695838564237011326317374502101416834196308377597986949741584035755211792478425135097371168875002953140236706162336343961931711054850333087083169799702803750088838279189076676976538015572002917917906323086866531554251215396270731246064491964567782590105160905316242425118114926382767493185392358883771847374211263887005902282678213952643556410139716704651181608880966612268379225343182692107336961091381913751019619784373276232609442902073719351126096926081343585088649690676379329798844315118903091909726467451503840317943228743511252851494306715901353060053225834295277975739297528832310486203237189834629007587034734512728993957662926919023992836294552692559083780388755980493996239461457462924339849185605001438299789063408085911990587339948497112799609871482634686947001321507327326525224151887442281552760350876012661926100068851339689578559276385792647419109352776927006091273506448134221577122668147584920705959735355016870550553122058730498147221962815479064356581811876080620072286507279962384645780971140881162655234335603866284208676985493201231975502509701002945511280151983419651106936858563207939783941329737295460611548019212526565668807675037437084163804643863017165769298010571903574334726963689315190558288914115615092654190884030714453249368985619675803353281914255186090657216785102551888522019361099862165824215023431100546739990980537961543299905393744268189777680389386391146024032072291369561411547944695794926498586021049777490642867312401813468539221314699248639256605506328128810855612758835434744184733091953486765313682986696903781581173433291467172497289427796506364063308572915258894031096600097835784843384676398047944526882995034512890436142476797314418030033495989374674672031095234544790534782752816912404325154777974432988814045112089309394918138304515785587939896230087716188808913191291602422643937907853858283207837310453542692200355322501201610967638047659261592866851063089017927608214696073730154126802792221902237523054982372871889268756896458468292371638298892293363068391033341106936135781170531516046808678790879809869531457097138040169982086340466023129797353967431796650111096303095024626237788787602170796150365719160765843008620850925549766305516511705579994481017614496214778991147392414446908331273931403457518530203565090773829915705271985374642488222067785235709871071419843179671256421872410224704706085862063982252005429628690948453104104328413406996500000377515137152529845122224022485919833488862287479740872461670749248976963029466879817577142372003454254073316230393323217734978186961720939588656566833156928421886859670079468854504582726696767438234076691893999075145206180649430435555159290985820227891294036171489277439338186315167082075138237990377779066054474387906421739062712747783148271792976004966944930453786233695644127259440253770193093772636612689045264036257348325400926863025034907161803278148471047689987595817573795161919873433077637163889452659330663138427091238907257040198789084297135615999625859918585046394035896252938885545780905551109018047523570727284579744176223631677251159380442283917817751576068422259886137902848358832736123174387809048205125447901652672584285339947718982731006115909614206565833142281804465186338184185830490821609851734522959435244502016755658433267586403102250683503846836552349306155093570280165765037002914777190830829158395847100317935445536151562691949221346488383861187025561806260557302071380898410528481299983900926589797610590907426505961687743520388831398486005064554189051107233215094132419906381896843783078653143179376247043852189457175569615074557489212940453211903392195074668757084836554139289071099114127113722420548734844493887346630735614416362458800303871348480749219539017037656361511617541505199048403114195913425721282346252659789228880377273104759210950511363629685987730235059089728183323843231668346506751842232936184500382066547461028756622246082833714040865856641104927270945322315570623444175974588839670339416959812559794046101052815276278783796041233175471953662200949864604557944507879337630486811016735316079755135496741554372552642478899802563875928319210348038054417941262525513860205533012356667258341637542888532724881068068127556965279004338840799680683015582637634079065253618657880386784380682630748109239613819986173380462871095622229955868736232081094378855457503055523638325297412003418959044046781302083497734997810648884716010728678516254299320753898187896017495015561854760255501589358420349951009074734655369704494695810336293649430573086917662628583788352515720355218604853314630951970132675427765511020384054651159187379006749525302384246630712299621473911855716079253649852256887870071545823501712101650439781790859625712424723324887751341932816013567759681638387127085156334693710131899085400292143791926365105914273913784999038115768875310326304954881118086927739476049498672900165483063095464971848144562155833878385662655982980920238358663106001077941704606633110323502022362975666502714871723330536110351184514640789161340218633022751513842863634254595415730599337275144388566093387590512843873101038946134886353140589499913111189737527256886655424709529839301524529880328346166240276720367338911539552155716509006152916546288772580003188487214369754890902414194125376599309709314733885598700163052668599010967543036731956594386645798692490370465603247957140341840816661126540375834945669476788871133509419841536440801226314523422418100476768766207843007768311975260969019141277159683708372929516336760034281670132627967570375229507451205835499475641893980072291639896158246719682600425502757532452150580380382947724711101495171212495157090104076886678013435812791433389415350176046624510833173075073380993210116414901910138777044403035101073383154814348441825753894777419779358965861298456920021344545570447512469311549045905644004500959285006132789734606501449923547080620123018048207632467513385662864826360780965639496349339775563977516582441148280219400312902783331588393204261369378663465692614835458869460258155743488304166579451599576500371932916909256987141324735884602397615832987441820185271834663537643015850923490832072672281617546139042592444032799940599976976460819529945543820518716985737955379382962970080436516176111220345015516460089980841332971977060799103228352798748073545488582027896737158813083013453792862886304775290825415532706556775839144803399032236385826223542524668381570239126624601473533240263994120770712809030385517242081111970480686308883244641895870531429884305218080663148830603473540947456251773752668293192304217856464303413661115832485177817622058625288124620728945930555368832160276402310358911481091861199496067891497563949485227845553531055577197706585659552596120364923596389982862820041554061643228995349417573535832679246590855366117892898682358451306585741641275492206236382796850338363029136924350248380449341250964246947045249056628130282145480392900984837830402073877450340066300283215811293379636662692623626039567576274058100021359562055726461565387212520550444985342812450374025520860237141122299689026544211773561687792621193916757666684742072779145905204040014078459844106435184591869191891410457474916289017779183394259546085217735261541041615931669945514975476796256046988620919149632604857615531961345961063743649705206389155919064606369010176467190465843769434092989505384602541140830591665091287998502024023272671975427139687976111687078695930761823333995547986248193361500972388973895941700919737779985704999129661474911162699430539191329506387314300772242496343676244825815463228268685044163709141370487332284415605814877111055347339585067390655385910279055004868847460103953744398860218406652081778857712610491792738802539160781796946759068227769046525784620225614088146961917291358831586604783480663328445214961529256974366385350994885115642501988291670092006047329917196824258231526200428960178695786767327736538539267328819046394636960469591373304619450696319408380763942517563144640270692004071939828843559913820839505653386219048451960600283676896854545002360621796294268057178026645526317708483675284227705629662795209832372666419167452856713941197217408793976916566699798560898057285204371022043884345725914622284093100637359159482073797739436618384640362093478280844211262530885521956909601975132949955709249220086689311250250013577049067688041115707630319091137016074661002503985773924689436014220455385116778660285302947719870522219932568037373898684415468797248445874016792721403222352059540174138206161732077032530814099450707830868608067889277138259541395918643624653677318396158946483849728928890982378503772285434717751869818194020820933626479207977511740115016556989587415905236529600090671083050041196881252370710679527008292829823666011148281327742645594869285561539620978919912634757135075317192614664343462599187395013567039659985334952737930209649552678359851173758046012143062507085531436250197723715163215380430948045018763613265647525082721984723659865769305041903251445252070010950425325064646821506528916644024780197941922148131097344450956018059417729029400382389061056973465542373333619968593350233754695256665776071948151683579890863844306087373218482337520913045777460565505465924597574951928513030690996352624831761036520667100267247252281365037365894047212336257745394681136749131117346254460670916254694237610620233127921474862028914934940961817299917557831075005649816318076393549125307462178732925365639314122949419708604248921036686807976483262939885839271172401201683286518996480483333926575183381962045670132063387922533710720199137780133046030639927374760391657245089855216952227139172912098841991581365681091853407537296340416076476543529642689203849328017617655266945956423085728754190740693228703151282801312273554854004917259451404826268779301858799326075466266275765646253476628935474306324879449656274868082759806182657583222184837290294734558602906030774647011575637216912782069222443233538756203461472521161462896758272980965889173088946679961246608884347997626131458955396277597707673120622492682571370007866677807883256485113308878162656887950886769996460198352829942914565977158044462728867050403125177771911265491690164330410617943269766468477283940840880610279728785171202190354947188887898064671058055985029347337487593485638946543202724324172695267520715272950504570720824541638066620523919113244381673309926329671859629048451803858552559058094462579951660308860001326533462518529045590802445699023635264240403345385062649283222177567012982920973577033738319115262534382730600554225872202488273447378302283136744313432194604144900560492819659651072997817348112669008538850806363471240385416368676503265876532502838092985466952259896222537423249112346908852434757573386097919381091037723838343075791033177724469275284231747680502953835903452920991783023987864768473858261423210008275248309783183841149090135569254751575925845865045993390336712187219173011056709418619720234107671159176349667395938317554117175117446677786251358854835648426349761498458035382596309257990089556504404607521210621015811577785770033260175026478217545079562016880692682350099559301598719593761927842033252015594120788184210122339441788698416374739360065156424674616445400968884162801662921119681794698363722437931123858361353735207210336348586580178144598289791588123277753360137903370719446307113584522393322744104704354736021666719158867990653357148568870802875073406211474158119181961660096139618626322146156207918481317480691440665135988428042006469292352098063831621044486220420344299398657887555093636781900237415879780256091493746608785610611757797807045420730542556995590101245672755575447666125790095680293154964931312378652477024891744648445769075449987357158962988163811405668056160001510249772671189335033751962548503382967713177310529070327275231816675314013910416876805988170417444332366584624566783386750602286493683125007903567617727061824953736069047404028429426345814223691381332541245958376916224192729536960276194350594992013021416901009511625584724039971334255026972563034483921836923451278270120870356678630262597598855840180594607765628799924124361317911990679813726825405053543970181870996020211172013107183600895687893782587484088751514115127647997026004858966385940095492569783979807445840457789383181813083416986761826421761159545805842950612820500244265604634357662865656532063318696015384446919368572626898544637980387926397843389088130487088648584041210910982509060657121826664772295835456882756715969802002396932596961755930557631279911424910249975229631510944480120329322264449336081278380287098811419114960824719339461505808205868253290151961901993541802018586133935440657314154455572533909612955305273871072795502103214214584242664113243481531151035326853819844186209615617988155187071437982190980563815723246883822205592701341961877737117278476640443339892668351947263836213767982879261803121884294178427013640711726839120230134625705416587648180210457851316672778114017625548172757714877399054796367479225495948957549618778384724541827332441042072726581554860649322822499300529880610946627933275885466278896461029718705899475919170022835429212312502693175223941511206634731200234998681108444169025730193682886725574826172039203484150764023023529993915202895841335981141359045118232471457108130763957084982191658119300045586872824871780732994971114341476459796192892432845019147369170229076462944178083894993439615819268538801273094266367002283478865834173075635886101243582572877028637405918809930302183915535872981042449640723736385142457006858028758104494275038492172341168178935058009950239463050558452570552093137551912836385780116625205283998949740461437225641924471245807462818180590707783344103503310849105530264845615042589782002351127359810321565114754319876010045251882275085357650772255124127307819578556030816041001423914320961844159810407330785067763453161604412735733184979174574062959116503535652473888826398711025502249422991896438604523893930041645918750321151612641869038905089654853873656160563228908988768706120291121256214802301752065015340418853140903071251013952377179052524479092385978182852392050357889792168383330206728154064923697250877232740340393955259153315172687361731178447847209137810214556040525260730759320238987630938573346500340922060002422070581080256520828192100587996387468732256986235912170925438222945025762620037857015736757109431216549684184526082569855346649582114849567363749063752437460842204468121000613940383314561166059980496015079151039250536542253740293992805446968122093397982455719984571210966200096902651156067768443220181762815846560707100137583711407951506696448240973281395041005360799831143901021369832776824994750125285098609220570266993589739952688205540521536339890104246255944562064747355873594674963283414363522602065201692086473116834076625078601826859612727175928544965122427818019481519063621931480296436963479829573535266685618262521867571650669818335422670906043261500955567334887533870896558155845115463236375976549837889414567098208097815506598045219407879301192529562410847996025981112673242434643087625164353069332173027685219418150749257865633119491301524209225817356353153680399521551023306690864704733055002819835120392586572100735920135130906776452854208396083028556939134304068584685127064857209800745000315619290821299625436050353575550579928597564149776219969832817783065952435865786993982739074795421628349754966685459359669065010863985886783442772512701546395997509804272033191844833480874002332520883976237370157142967553984195017190787456256252132411227924863314381422318101765140906323568624405400510321398261545711107781425568099564612227957133693895160432075533523294975953184829105141593826176960677481150694883524946088226569421819502496173462539283917446331178876952509704824099550400099264603960794361533527195111184565761050545408497591897276052538482369419767515738046301771457098210750909331586472152836506345840457031859903316563372229578115325611262589034854481547334155598663677869877271965295219193630705175436209063368622577086452855202474157177995267917583581263835329895636909559144117591129072422164044997554424789462743216565150213004243542920245243030065032258808078610037510585359107420385807752719111497975094609246237594241831616056758265576229607594156319125129495097108232108699424382124815064536735945215738863422724943731650108973300154638940766947089891624062034634275158220986907750859507361382500162581383723741331241836489385618793429819871101633671690942297039292316968819551362055516599331276307962959262303624356497548653419531188753984465302608815096711409777608462200227348915511197015219240895838880062187575786869506121399896383886304568540803964358881379085644056669379747971461448253384810906201951958740168766219057169270918855670356144758517331787009448326299688975869973450064647829436649391017293386517162857537416081499706700365608076047626937881965210816925103341901253803381001257931154543812105115271970425470549488204305346785312593529025664672710378032400459256929200621252210362301388578247831007092121631219092325450377106619885498466431259060767979669851334182530715793800603817425523386039446099632321896176898625817304701692043544890677482565077034078112036285678303886948314255285298395926440322841345901542323384640499106710192530345158794290426872640623755289164944825908170494165239565950159239837660723326345283186424182745860841923983099004612870448006481341673113538329255751799254655284578278392361020093850853175854612250045980449417738650583686763623927016986750300084497684712735520403806986201864205532461141985038921985953434854083362847530695847307199606689971048274884906767154002547598805124850557065020731443506319394894667170138355815204350530646618522030781638307899795380579399756695141482829509879166617495207883154878399023703927431808913470760941584441652633620816356283978617778806470071549557598411621662778609226299393699486531002137311530920191337049857759069182838101793353155677762566775784238066427495475902341531477437391160346074541935228259051808655124676477895930473579672208552969081178733158370021655463298472723541524920819889992616009945997729339636886682218862765310709748768197342709391184645250061068557363041507673467347867776713148565534926905756965923589611046750171044004160607383793124734009301586583684099935101904759079086281950438232455361958254790562147544296117077628519269860672757737836823794546801871749213387943715055146009304767705571874262263969311999578574319051541686710472420363694414801617793654455632496970329725621462157991378285801004843030649155146088104313564112654644947599931389413920181896721211945150984190749407102084387030413031288753972629176493506742809065178690245657837540217938417966343218294353747347479127923344088002721477139356539034645924292971571550323583297108629385133604076699734274298085518134905183067541145922275690339308689730425191000604701847237262436311520702290427024329310722207461801382924086017468659161919529115090553687135557284602487443502641371516685127694268386105133717666987034086925052884907988848996411729541473835879427827746987538321028548773363266707550133676503563550220814796839106927699804965507657667622420776565624268669647763529443475132022955071231259378556345960907727747274042902670584573356839590392377832104298615885730226419249689782288861892656058812062451344939832223008558944013732747220458163710447076576445630339615008894919516012649192062975268510239071488242469201880318794416009720633581023911035117494076060416890075377797773120617825138094775405402758851104197345260419682688027207989011903651245542992528408211209224745881582133959116310552375306241759684674840440535085917516636398520051872105610213460374788638859843443328882886907846682674393095877803990413484337046656340931890057015537218444822053139565770786091748605268754874692949352450850669606866035236697821495590446174029444770177333061359848112688692880874080915110953231779505069806830632809626096928766024703058796585181048850127249569708801466204759504275038004086369554293701606026362834960821373592176679358229903276956469768265430781628176494845507908893130205175445194192306357871343635980009653678772077733900237394287004295438749617631995117666867342573783714148190788029842565366800019722762999603691313654879941985287301800320551778611766168616866544960357034078091214893659062937304635472565384328251037478090563382670164929577435323492423195940010590359511431591048063225315481704290890018091057971622092551092809132340954410703674195773015969516871578631140722340840872399096957735072312399288759974075392446678493080284257092379819974357553489566838088145253473547610693191026173093917265193271939804642015768674691407076714280248066761275417460378503867108702324601670286010987701811555841527168367840563646763633801674586895489590232824896761501137118240353341893272848661297056007963443493158482241022339952729902098623185144045294699085965480150283403818784067324509844368002513764643169623769965570309367466213304986720669861117203892042817049813878414390464777787148341854058853239645818386513012604248010000334551019447514343904402935451858499238977952544537553924915775725462278738763802867003297750505313499893545100173516468556417207797281082272015919478778201607528307696347759492771176051141367732715520712306734858206426818229756675681388580292165530229849794995099156639927778171745654910903403535232952949884825017683322915989524012071521127771730739475914573714859392440852978381948906325544264984949724794376895644465860754411553547921803469922281332668458441212002898948288551769529077279729252477616676287728547108041473811558272938736463472843843082503548477836041704565449163655224241453090425960599334524139254195762284965681837661704692828446658838901610940413868688732426292532151473009264508103623085743134861106577667085530337483769567017635695816762829015384138352165876309800148558793369985017772792183488663470801606480177606587993195209564015102107919004758265609043161505078802474012499806365498534189007450661744649888800870517859600890964270091914325729555523779197959569346081938962388608829776934594343281374764422279596817684126583039012558386403588488153913883911251608924632167847627121306549024621087113126123090559020203840967442132244721515868382014065866335386202258994196521959876580550910274622853577539503825857525127189398579540112346041588657586510907197504616277930870102517107582898772249442872340946038949860615696003670170080121273477478453457336027467056388793441150977368030332463784641007777914863448284721673782978398132707821429081011946328558190834843513503270489077790992030629684641102088385843377768565092937544416077988875126657559255510036763249385511027194168970423397164278600320710143238275855964478725292493941542301681744529626705853109172552760375295669905198336417717703343300132250653528201622902944693448661659057962788480745154986412365885595051330564603235318746202897708386383944374228367201123285918634732118185595265570074025205321070190626509266414571102641964851193603006718406270370268063831422008298151861926595795627541041461678523425810446449449964356627169340603914922161293199540708527285670860467910582459758301115085704199456361409945734632472359390934038962541921250755343028284185736129837990989147063131693397846994810926458432561185304864295961955139874308272492388937220808845985378503507058585381389551342302213426802094230185785371993974432991796162636293838751833718463648641255702402600866828801471961188864859116058174688643377860418850671030359315050054942554201276178633803034171961507837719580465761441941380869996996446830343651190592176723864799619835165129610986008593760085581949312416866170361241517776627213138378903988816177542049041693211212598434565099932440239071175983478303909047559782634872681214974651687141804993890517151817209368559975940728241299461656719256862689931033444587357816818924580805373303556631438444168386843106185905276643186751297789871805740914615150498816983125254446906380038988825813648472719133719120240807743260889179045949956304339400610229993417526976328601176052664896567652455606971862656104997801481062168397787554268043729415298252100636826123677710546774441545674512456318616801783449975503941135284528807811303726940286806015505407876755465692249975780709918273154441963629705377968144616736217592866799478256308038867849204997736715516768645685139000054507958203107931767994170067057066438754530706448843205254997695605143722325666378822651528047024771015206031428489546426869820187063806448211849798201535853396578795161861251679753532215524060496527331768865675337045779387234030888265319943028610327919402276896777582465369959434268962006386338120146472428549759926792764119721518413757315744664471852413359632696115133909708572182594070498732991363513687567990242652713703376775386254293135533878391661365913353644224874547299458871429403520830471333403114189373860797081089247404061559170704274386535661888546018663430549362488132772174220296521928314723295800526162995378271880722815822926872968560043702302104488924359313383027282909099102174564894713316042483582102546799664257802484950375228259097431173375917637549792046217753158774055109994981294125597345282077593185427301396903216878767095133905713488624058623983127018600161144440385407031893013042258203235250336692971505155158853387505103847362884431600921355228386621524975434732018821209450363758322193907856820826773800434894445296231122519841857137810535954560684283568819037483948144402916809768808258883002686238126044514709858736368287764835574706811340451362666886001783625037271506313263721444261003346171993282078212023545215640995924989698443231628719577568598437091738440915223848707552818478334716997352967164691912171335104664714270776888625092290685935207432004894368725419500089542457978091441433606675158656050327864706356115239964595781335233823742908129995025845230541425132146753376241664120304922005084689899459816633571102730791435837790931102729968178818609056316116301421281642458073777296793385379528980591570700961143952680087708637853120348656702360286671313820194889983797900061036229437177368459622303410957062244003186347478918710806399135539088968099132729974985353925305515398572413332170793139488018599548004261702607373377367680417863822692590665763954069351265464441899407708448830339891447460703101009682225995162186025498030012337642726749978286693300885627131430124394588492633805291508673245475266333708764906974669633161558722618119203698186218351523126726864994804715216785924069854840244904393495007584648405592351423019601088883436377606512571432073858277339626904418758344490581390742791578942065164299800031633438931429699974973597989390298356297531217555216026128872716041180834210400336408367853343415349628420184664611658057486607942087328587126521361389600251170846575052120530759555433146146140374132167199628859045747620267343428846497179694703760215200393292846298651175049154892985357550791805192702207299711131140529366347279332301459517252125914012880895352330428845009049322755024182858597582392125284830016950469772345339888754540781038678467753835615656053665673610991312094147826220321467491612448622973081623985021393792837056650671980972443200955493227582209540827039801517627918076333995263559363889965116003172529148065504656224721047893481097634077615444841338197537189903613666000100297828392347622080677637200204286104891428951952404408793154831450915300680330679227224329308574267821809969309363330161893451342247685991453198992949531117748172652464018811007688126551167308613386266847678005446010168326443475728791096109368728628775358236808251270412591849179617925278283833456073704200743732974254622715239955009599353264582537731626636170116571319036475300469093772586702304466068217076522318619607319604886757593093034109716002482708113657621010397647011152386966164247289427313866300998766886954892991824783849120453275698446245457618741974171914358954746467492209152386628919707435227143995505469294289556699743106025048698153223380450777048864116277310676901543376449680319927035115647477210846715250013404891874505434393184271229348172173407294937697907335116750014061075340976181283225494627625239677385921234337205620579280323420732044931687558408342248872838962868520019523043806104154495359395882015866560205901837354719837968216054322237007689318822655600938855190514085989669827453446435575211195897512087994008645873290998451504298664851884863969790144355495085744427952132690230018835300607505754941477139517299570672049150762172578332731491906467361734558348472203648450906267856396146116665006653275436169415824271319356586363889039068319059982837273865809195290291119760893398830596853578793380570883495476980236302220200457381055799794707648973561480409877635407758058434817915650436256234803291544331989487649880838437241418525882911634220296155895668358033209384699787559353288654386474671280429944689724637414192447715269370566135845804983930525139204569454261013657415799733206851876706701816032651460129347302103070738137838270391641191817983735538342153597345080161069887240040429227514576390948898748569301667624339435791440235849821765652587544448454612933883671251283419791172258217670873422681545073135767628431921570734205489239678145066636666977392938578788396270483309952318659378101172407014252811552924927825631318291407584062893900199173164855346741841210939696538959962604905937739340716614721451852133070029340232796050548720726165972590761714611624051417965348651187208027721845064775501879110954882768826304547545664412816788450814057649769863753064709438030367804983329787356095150126809277818401124163787765555112012417801603120553535364290278826135208711201478908834979216019844027925565956293224955162162902063010633893344843892457432564707773428556138505155603073754467758975933757550957761731367883704224657185963884490270584655912288814593188106602937236408072862735734345456755801442517438699776310425938229978386976708867061060257266911626321355494686651253632844642394688744020323493879532628968112782393388008840880641379170602229787481252041948646222003517103609680401037920326369861470957239585479843267996514270235885058530046705219204052308122464525389881828511176928167780939075828728227550507841096494266501859745152293588438970988628712564931384753438822815709949932863677656071108472216053086225539767785641501645893175169804189042259390233036412485068930908200698038034280075718855257189379178220387288522376651748961223240128161125931223861079347499535948377769827758192840164229253488353630008917153798935086757284961995730386775325124106525046019610873428906351920975740263036441193144690342525417446228043228083826537915546667867474647802260860327771776352247111598533138992352860857209056030742258758693325504477290650523956611879530185866178564263500998943160034721043280186760591637279083272224689201133915663241214925701208169730124476965869321257251004629234408600784422932869696922345737762140470820067396995658592866120424295472766744278009684506191149026659867697280766664935251568847626664054572691401744801427185082242821722352698838362664702688866751962765019433204860151510974079810698317205644899687466027826620301412491901534720084299336566488368018585393835123221465021285934819569757858505286648272663952295821376637155248462608086937852156233221794254440416469729233019741430631957668047146789996588815100586693857608505780923158456319825658646011881708880107680389070654429096219491959191593035496755907990784191633836439992914548800410035392922293432860225892372595719798077542941077667662895081219087020883344835153499360736826034429853889757954493724705160909043531744896052203797512884987042591645007423505480260653421307181016427741401159146545484840238897663217133705565441864859989241618080060576100070415762075316947696063585136696475455538447343675381480510031289208381882318623143839557163072991279588168323042376561058321281896851036032300863170297571771952944798933386815971857714662612932212021334367216398898028965322244004037200970066674097960244013858052188239001806048654928731465679749610592460782699144665742398928944830499463044372047625330510433744961092688609703581382147578767578904969900963642812853266565462002580762634168778102638126307609023033288850152947266690340931784156309241663247785961951063862758156397687636795266790134156606767286968966476321659624446438483901167746128304217345835749334863757504268046357104193232786567593959033731093452920063066537655279302053287282955835338805196100960501334129757258726515332559594419281543620575681161374514595520499815007153994957573972902541133168269560759960334109153924885521927367673383730537786508766213787279331758146003897737552257254726442259287933613084135079435817415631017176149994625922203649954393725563815942465441463102094741158075849550205878447241830024929547444036565641323461618515420774434874811544731496736914124211520003006226332210093101809610583515103087496595828424414693203635054191062704662756900173053533983301693176844776862979835025966541170508422545156637586800099447899314515889136266293712797935031802818528491134732275122568043271082765059455295865769099076616695032461374515023157797090700046499066271132855810484036067595976944185551352845392422097664872453015064563505337486813857404799822589386758933295104573029618857878171015777451174850827718799340905262386605101169901375959041330496921359881307575576394739281353673771019025080141580877561194493190518529278785239694466883448656180856527939715325926575330755102391604900831768756263982371498745876327416355113986314815829313879711440183488372769394797129938917530195621474750183156700053046141673197216062599724794540433403702708212368451070789451968333136459023221958307712293766588664967500500571126753012822433740103928598857694512379227429757626592014892917973791303274681119429171730765075705313183334900886632228758691237375570880165056171974107133339578275161125957989399558015977376450166327542910784856135345928070244307496072182938583899637255669181397834991070053889070979543869844114558699766734553073474477428347860410356899571036037023503776164728683494502681819015778285099774476070479020673740978974787287817327680540254282269957518441664779841135799821786390908577774096044353117795681017182328462272431699580507910727891347122835415821159993640269075249164765781952360964014388484942690102318376114074375662859458098819920965350226725013415273590844370005872861839000842680775348373419346866694258238424753979828100553013843120060109980817611488275184689790683120714072215805353107055284963596679025038194305091861663759870642481207550144358076307675270973540884827702863522518978397951996108812893009225536563856840862535867163138904312208184670799584547741370425208381652002898106206656936463004296719548430289842780371325542429941566649626015271229214198837319780450573636200433009762717320720149445333041332643268838201655452655927140540068972126002229560077479141338265367181315135611321136654840512842199491087359759963351131332461268056424980482830491071380282790634714890020439927854256356749517851606224570435220223884848600131325569279086609128744436647953631587975096151942921457045755181690782627138177642442321402451736859487242162153438462813576997131844109434079352535462380703840068179078157060704324727887859538819403592597317633452039048616874877600619086899179495185448314422045851770835450393003220997338217963778175265739569839249329183368924190827496549926349892330418836311549760256084411857436835960880409637939527761055173596162523423655448861461614548949450134486448338450352091359619030678317992415224290379916887044507167102708735692686971343545098050091287292637242980637176332332795565813523221883077647863275405817181200412701100484933559205680334147998189319302077740009793786705236719164764774960395245426530872317411054387125709281217582069261569227725583289153571418209285043502454029237379652283922815324255592045786085690912546586330629543011115125908572482818829353801921042384983341036995534689726931437790600680087446926177093621116784064097272614982997180854305494717385614398789040279404967482111918468072627437954148589746758864303124104652410630630985556283487128804717757289578399103569252816775088888479728959750582623287410838096327702354840552660427102184857605810966270574823790266340544226102821201403862562109404873187970343249256815666920096969978741341003484815666036086265272979640204324882393419797108255795521405524403724737986908747854374440389458175299479344975705943983427079914453129077830513562930662257815567052868267542172248145949302398440555472663005502137369159839173062180003153235253871244492912543584769684564054788282187661950255738918530298296453051913878136013894376818651404578933284773722765421177799515460667396984138134237549219578476347679703117122640324981722616435727046580468089690140575880578669190369060329265983202958157931291391213275694847560807648732181868982822789086577697450798876539557616543773725822495563800958188807091512541167695751407117831497119763266977441839683644297740158272557603615515491971267829187253399544874190508104707428431050924915563550715192500859800975407254520905595256285880137007421601695016298372565216276403853211765458816837461770467543991990741329377712332712146948858082893544358158485633362818144938782289119148926790848406284827258831042979534874714058501383095282340647336254985897019588759736342242390981394246827416506222833196854026580614761328891031076287637373907154720676053851542847057622914561164094671567263766607679458260423108455377721422697655600322123152466650375209839746879294297185162720739164441555447665974994359906462797048385697912961758386606479718068700011006611418475673195613374252242464068818403013708783953870508195023551143809693581768054302670846870372691449220423794335197074779576159610359517859014174952185454856293072877219744491214120426376653514680017181076809127378603412414636812864147166403697267307065043012573012766416461605977477181554235919120073346372634858308215106257386235677245646330634353609614947456698855493872321224359226203199551195833437587810075733862784660518389890169885153301175922380928723439206821594895703776442502231398068753989250697392853696022845301570400540570975920061136583128040386224960199975952027141398538426880567179184194852884034874788596780308981095488305141253159277553841586447312989542812578379908156445803150563630937964001943060400044597131903838885329181338705954635664887640792427572518952138167811423366992459095780799106457996971649008083251015046371942178908254124852756079809886373476631429812854499090552402567459420402136052566762425157772747979369315667466540139122820144093448698643338116595006735222264641361886278340186280594513299493942602678035916492814772742004619510088263943998743158123389766495879324482066755516855912020055522971150751845811273492778342120041602938756904765691653551049494492462870566891826883559542218607829776878869185115203507382515596872672940193019296309985711977073328330341841129562232132268614329725117887770673345989136379536902871755282844334061650069968100262368634672330597825346091829587237679903729943363696699620768410716966169202257460080261267924503391199752131888285633783117755693822558397319772785778533192099704093785719905817580950872290348543217459471599307696319533832468319127166274996526374205804959610490902838967712312664223997306617886948184998778138374450369507527906770563939435182622991691679218995203064458705857766895511131503690252395368813121212842880751307949735571655487520086467082620708876520070062495862319697248990367688478353510944594405679767418002340100054743354695536332435629425181185999655935785740953903625994544132204255991912972101901747410507643839840411500492591817080375250742313552642064302421379035214485891488594892768964513513572380539718235070185859030407115535578544394936036112859864193697266321393415485736349353897728685977671995786015068525900068731302158855791739790745561303846260116233916273112602298000362612732962981392610884637899493282421716043370191285959749258922527194998844884787365413007637896676701200970874949340665802560486166106579567220718497182560085816688377730245959300788549248654544816263077275487683425459208004176661893620167922516896138373515489441939226542382782770603800941087838994186620817809336822239234329533996933011184194624331945301621770399749041234271702237717851815901297296160574767800590771447404148213567941495829258572703815510439061325402250921247133910914017725024627459390311936520486145223045033633888135883561208311069454630659534710063395137630624257484037956295382342370520947727971090927373721308303401180624249544056460832703581875615055373590387845438408195908427195011755124236070709820560953640139503297666208365485486245818890561068766968904046785929997470163793010358826498387865898635697902934800222144199909244599842826511273700410720781527437901291146559223886763647630163050387976224621904382204883052426846632203640068924439538800108480544516143386373201173074771472082501304234560214056757285790715687683196329814667538870029295897427136400296400491456700851333517041490563964817427001760219312185332536295500440524290998188719369697536594826319739182879477733895875845653418889895422233656787577231090705302040616520214091014669500533653358332234851039151662782792931222366797157982785457355250861219304168769411830966203006760495639407393364227542799868551446126625733536283545032897543462136889802789997692724850570612759673865016129611639141740383752778650740764444006443834180266799063478214304947135220197933629931834864215843499096384292801957160507814144073932526811336890051811953378600303372532780143197260853437048003463456208982126817975283177039566213225068089726104438693478832426017884624455191448012198959232743746628349825928497284311776002260882091068935205040226956290560480979965923657512695301379028874464356543675611483360550485238123011285246506911756561891719386662173059324364883640647528630290838415685289293817270684088080352797355280489979767661481315403747107790590709642360627663306598114893672581745250020502746006582061383193125197175751991131675108095486930216807595253951120311309142167475207121270453389170413234848880152405174667448344648360189020490346206337716786144135832990676350073026145861292469642004732492570153987977377737807247999424710982910492956160438681337664483677709021929636329129396828960321308643338260112685637123982630959422584270246823040670838183982160923746999483699784776295457962677718807628192152999672520417195784135827932869630883165577936591571864997860593758274688685499848892128127380152743767717598456310301892353582832145309282144501491345860120025930871601663256705405561772120948296374002215237780619990789764968461770879601458426042833774569651375722791382405863394744522636514526416382282887472803560991169358956300333767307750469994114164170822174805420952022797460213604971549059858578221891862191972337191096787212090308926993350981404697314532147228699702587696636777740117514795869720341347258254817915023020095109822994968331382215342089261568771054928701322858087590392304122781484691939771856668148007761904421931331826850702393887532531050963146092649216058158665990632147424836751751185246029408224477002804832896819841779901141296844435992253304267919824431646542236260285570428511931528125577450387805825392902790076828222708283772515633892119965221411160403895194956148112548722177867929939627478698559545947213424131659741317288482989568269292223937274228723219583415202997534367431724930126747572381080719622384368820222028984886041048341669933393595843698088805541298096325333595024438431475250297725629828927807079432651095924370711230228035494240141549757864234364360898432837159286523168808979706658604786288205501100011376640071924445078219325774919432423528089990445831665630371212414464248963120209331545276669045590556242755266802255060826170941124667185149077646974995670456993706649781016508976658020643016728264029892543998918573767278098393416934516410582399384747089976928638218992477464242571492320715481229903811629815825975028095985226661231370469513947464700690752788574315617401082391578088881273726556898275623252175981775139820315945088813374374389879415748974234694430920089467729666280720194337847859327229895256891365189720723797614764359795886987257713262511631610057347014741119247314603462615703614566405405546115375991188224824036065357988492714316877375930513198687251175665898945303671104703103321493660476181419253296458011720479131981702291192632223116191454457449705837219840394449109755584118583142294217698822986354239641174111233385557173807845729926853749933574315493360899984445662987300483377727212659733126542187333449464363688783854602000304661793588959504509308876691092279090435123996323460473079454479516829868251235001470535244781887984079424635043034400825602400623894580725757165760230067139008493183399211588237338859184808354383820327218297823924107898333763670435172433224351954453124561816855795879883238933363797372941400502066798203696319754510190480622899810881676228828811515572344018268006964135651163558962863909833434468993984637207191975386538403066827580460519943366329700746521541470784296342824279802759690603587385510726329914235718088767225040033346887390977359415813158711647202399559765395732741601332690181146106961661379872042445858324731093870601833231866628705951490894466277034414253891539142938641061509056744963465438815987525426638983202471721435667111027383488709228628007446920439810082697838070095266793877499828652839838454986709131648716580528306916582760447932491965175315029685837721495206025782645218436844826791983800518590325437942752364185665736746859561670829936108717215449147533982997234741510162505803821794199038501602738288026673203930348995553540798159095981265905209284083948885409535012481222581820269370064815227337544387450392698054404313329218481785609349888171872257197192856415793875135834833672360233840161607906220101817077793458188797668008745700703710578665013130025900852125431859268345397643581002462237232684706743012512839728642285375194692070389938135030620595199713657822199948357062961006110107826026554973154111660439830152122751109989973348922297453764988061651981533304129585257298982055044247066873013089697472524798697074612040472006941608370892971967039957896705946836331344080540771250278915065142028017846706902013019174120066531546057426774744194336534673453003760019537245287118469421052790494587416324832258885669189473418748156877440256313065689363352853393070343186468728146409223227079220430857843255718819324408795224504323330613263591115078938134465572103417341831456479640465605621862697208869816907499412370969908959425518277259668995341379483369575157951146090000101767163935907159533815193871856745457155148117787603407923083253971038046884811057438586842040111971473882761337406301158096560709600720219512105255498816819215655102315443464510853193480122386773083070852554972988826226056960456967730709407852546518233579661356532427046529919223389495798422909157401812838123439912007210987792443008661905400849660609155807843815007642323171261859135329010105693006174573491681443048545090666842245278154360618636022968460134046116849103982454632192155673693764103980887066156107243028267243810396826919020361995505301199087874575647615284153319044570876346541880074418844588371059665436160035917347362169698263839173644302979202546076534824239472529994647492387576443359248847397297107463321320329907545000700104524508679659711906550724748744190930050745728874577589295185026212185889356943803637441742519376322203531617995722196299604036553138837675830114671678799314482140666404871153765950183828992891271067290568298173311352985997689769904090728390958342342882898583856321336229464804387739076140104007315298995724795919091013413717964678034293414658956830130386860719996586163193251830167388700646222999147975344837070294606384007493826778038841444529209539542765294259918901092939634421200837644814837173547663282697387090123627982354999192850260189465042201283611865683445090120176066302935348318412953368278909775212938158666726850097865707886868649414784530036903975062838158035887567955179170514387755584850070055332810493021777322742905892120427544529544437812197585879525466138061285962083345904920469338190430198339434342080082621217192536412171669753911729017260733808010998958164679223392642007301175470080471409381296027031475647086584249209244855980368865339458271407028873486766041973140482323958770924325611194042547858402590719717990103136528421463816487321161502159939123241425690789342039107087999731800790164586079782094081436297287978982945901679323144521921641893862944348863497686139569087829323816350768433360515413093112920948465285564096038147162246494322853732272007144094130957942408263871067581540342066720046228224597397304807276315138194961727223948056264274194913227872718511726500563119483245237962481687796547164708636296764498351621448664346455262733566766663360320178089455876146616426325177434852572428885140850224472834198041447075208064163623723030484709127761438307903628065991806818630941448747437288336960358586500766961054108628862726867357963596664243308238143091252296976867218644355224479434953268115714290613642393470386434803169808181139608268035920292828636932096131514469935227187111028697124399266050787402399701926919179115563778240651298742998106199464367808432647943990067951903424123093197490737146143169027201636794210951419043110393537635468346101297005882057505273682671745891467290869000320797697352203371545659808471929412853821415370000025900990790827888401721303450138278408502910446153113966489850075430684981527412535455701201288071826848782942901382205953178685511697681497854216659878936042667064286281660401940224823796991065799258018756936556480282201037573349587258064160169829880636439029148614457984452136736111104569365245100251693140870732223060745785736882690684003412359871158338160495048261006922184482927424695233456263102909575317906001734916296264627744534616775350001599707065574980131031312311489484046616353463365182626224728314750401739912267812548183898921187866731460044709972034671953526226163075366410799115454186342157486349608224758874010904189246180267361873744414268396990946597433676894145942446732450034850477598066362220878014903996863432422354832925860379791915956432934670186417128861540597377938732580909073636195175120770646293199417642009115496806796041401564410457390206038515728103708052249299832632416277245272766158082558402065412147961707480594182808364855499610481425258423144763417362483368355033163890399968147274844491805903222795520849609760272699207536388971048109022879114197072196068763216342469288295082292488603877266381659561511880377485738372188902175214481697232901014726346885033174491506596875526130966242877002770609467135129411908675559888095624499740559368248901987376556628903183164227470761887627216145348689464881019508598009097216968554141713543844904579766437416113031955745478298489353639454956757625607789578582978072782295856657089878122669464397421495401695297595392682037327916300232306523097519330402881626777576487602761760592214515921447195893452642245808945341175642305358444461358495727422478535159031667568550887160487898369637855866784868386698779402398072007888441364505557077197869972735127024087282332531315963348166329200422657302984254788794783108525490344521055529593952845096264840091644059469607866930755480121914367305296241794513399598283736157686744877807062259149296214569429232133880896360726495295143071057621426233784452917220398698043751640019692669059619800781866667929505302694355994570966003821959477468425996486242097636679886340317773903409587389155892191013082256271138992544556601851286012113097387975815015369941565471000421374787759567489719488648324841945437193953509187872195259465145664267145592244305439096946763302899863492478802772776790169127169579362121157741799279647633959653863294940938021341892616752528197082541889784507083859071376091182509814142141439212620408984034439979083768220319462225855596642761040659525846735344989392092221242030869568559283301421883782520486788130748035570479950746361244396956963308005623483396883869341386397501449579526454082764745695393107725727734821363925861630482223040016460945730877454506863007778981095398721545559979428294870922142079185828074970118880148615231227715828525120648256151341438044301156662490547029573622679028259614440900321741363343100995320259865777654517202391101620756803458914118305976910017336707278859250188237938664683106228950639575016309507135591513815693017564542057071903180022271101014380963623629895484058522434972369495625239898311681624527191557123719410880145676453664962766237722250651913301137276630317894699585187931811856843039235841186357268916150598380927126225067951031585258010657609458537452818119049700075694080319939504229601534303274133197796490309113044813557733461695002134070461500386660578532421313109846309644011714048277305301062066101877107759082251192235748504021710291971987258998222499362958162818926374196003417658409501651175389543105669314612380821323414715679504757383073925271526069366398129591074751472240182567985595143586350726057141988959696595592752656250601966042087124027954487894847019840105460542405843216149545345352649068667151432992661818141164085081100327232943272748911530112859996873498130356345902049320794416454554954288376986088176326289889798447170001026663600926591747889612845827554132333483962464234125715046070346722539660623637774360128132959012518012684195651709321945637529350689776881248058818672295916102344171020847878869244695179154494186281339860893006603408760984466729274263613093132470529976574023030966805171844596592771146792417875089110647798136833068709026004046265140490396367585649251916663751131288694930855099364063703683376187936925772618608618498961312047792314647206174549339221450925210510574637009444617348098161476637920819131445432760786041767259441171340391235260578509529384148092394421587801690809114533361799460088369930898774155827201372377742259635096671496341277154113830802924410679827940355711669674010207692622595545574505518285248181844739693667301348777393215577327586025106779166890951310564830773143084813549644244485367685297650227921781491523671281993758552305870540875249531254317188733094614208447276970263978273864804616013127157056569032547201433159504535933141780223282812025345032114306872172005290030744452022022649533601683951101003442804264738198435596553458065211527720007354968663456286588091353830368156032557066795266505798981452117216209357515205116608675137141371792934009971907436213109610318849698504144393612048440112690129971351514612580009254795646758033125500669774247988157487469998963782563863584029693875249911104698719268783219311933181253659733672984295962505610803551240032044753685408232735258377632563791492730841271371552366094695408711390941390356054723662458845293000388621084083687929135471715872018977316101442648772807826598117103040212990911654628158773074686938010949551306257490204470733641508957979931605442876486481878348142140255040179612994440315387509093716725238353675739206977958895251521048851059157798556121821113425248813812768175524725112092145106681765544938669890999366602700393245281502230560102790249992179333739992799531985947451638159004778258762318233378017936272956810835687686911486635563827937216002435630058852072008585363626755908138841565783065813445371601423726175393256951427824077668785971221044160243425327691156766764610876831749991937864610168983858603472439956808903150773539096553749777935449056088239594948170863194732186169057714184493781601903047820685104532111101575806943172067135534589338085963275224488457519486252491924822998281021999598681755059477433910199425035942080825744049615477203586199186932047348899356408878042539732855000048312867410597674959858150000646087687452287488021562997261228246103958193159247651695905815043085935769733844548716324321101318588931209206237289136265656968422613117946562874484307449259381586826637017356115195183175984070246747256698769380785230397744961278831853226225608798631310200241172567619516457641903601393512258313845713316361594304871859605588894310433130664485509955191265529433546783038266723873605725421748992601489365292170974407654418077982487860152013815850773960275236534832759425954816399636613047809059343234537639874597185903223748993880018540329158714018174198084975858319667439536183816840766376217857812398680029608120834698675055091943815158332108162805113400553640379288836382953847332897042011648450322918975060375624667826119849977107236059827593792503365317529229930215986948634921419178217488083771047210202960363676313530356883099239795919995958898279350145260282761195820149280778265955619890972025299850868621050933529683281171890320352798772441627000084170612488170751882887017208897215371594857791881165981328292279872199864651720322590982746759878675543803664395631632486143932144822692466285969371780377468832098570562340664915577040365247150713635453786956471562452502926424459179889937089981672546650306035894856584097231281532731194961523376041050731475754388151754925694141854512245419552160795260861702689273287490074796841906998766013617787797124993845583911331750239434646448407633159183515545728430734642977394360350522302218860300566812391176493606946577811417929548943384999000678622295733422608668432677396598922593842289074029535963092239734688430859905045921728289828776235339093732610275072877093574646918181661398917914861201708453487333525223511668301735144177618132027449186787159469685495589467975946483206850107953435452152189632018959485015766851986518959978657746365478209104505013500180427900374213885371378144731922980945166829052004732229687260040474063575511205305523379279352788826095804090646765744766355694621811126697558919153467805508017231154413764084149015597295431272526944281341583149587626395840804868348414249884765603106189796953662216126865106524520049468742461846140510585086638204861167084894406919461629231731328391586159598960289749066181141175942464989769292190328615172513614350824966105245084111638556220153757685355980509379909656678581414891543934225443578599724977412836821086629666536735271217765360939570423965633904778519259679233869405199005448541757416542721663033890344351357696531300663034193338165408012316025041374152482337329771839025842770292289862895788843628785869786873487274682016313438581987534719453265959769804487085398318065682979241875191066356439246611620030717220342535660927746807246916044652006401224701924327046350160409000943223315569939909596475353220362448518336004225652160730784080349743342302403640501715579920049122508832236643142651484254535147553917465770968042321132192309665585190053869177645566025523108894934838829332904050402302765504788235798882015437280453855642227692727530245866275340465588943911602766726215071769314922505227572851730946174955210156999262229570476112163090955173923403525029841617938045392122572035829398991093109814847524981781904139148804677951628277599338747878284738319185221976583550740202355287980114205836517382106869618014898609994746461549632054294236911169478432541111256560706055518787528317798197770096359320516490011467788191233574319628880469084092956358189912606984888728203310551157327264735017977231332206652125652756838578727002373499000643581224179128914957899974024864005489952754550627781126857273253186872982264337161742086652725827986557583499665802248557310388444056479606583946773194722861109900990624698257074615249115793420395469647389438825774557623300114221376216260278347930120617431196867983252336805200793051751783532432251744004711702941957229096112525161100637035408879611912656307675012792977699966589820366889289661421868098203106053336803963470090723950257465715017811538756964059259620311981438843393886995244927270716551283723389782100326222748214817075064814593416702724267774525609594310054290763840926890154545465495158643476525736590295356745902140956701427042068498308848403376719039129079641400550551858532036404896480011822207130585094907722668430183476440166839449931543561410813565310777830778403929537332212356851287514174013741810114143761919342575178446574062353458508621848320018080246130957649289330458491471011308220090554447261274702296160188065991966639574684124299666428951330281405904963170648856974985297077548163913567877652403042504342287508309247722099455805264777839310823970345100780716713334726714345753378827160457795496784213852829864270186884644733089359516611510419120476736242523827270767866233102086873957378041320691420607763492514260515043552997380888233916921939489736372859840572374509270269618035306717668285304892028717468502926482982703606629935569435023777373980624097967535813861983833981339139385388707564205283578801085696778348988934061758370520371738535848307926073336741474086210965571293100927662469706463654547124946938340733014024950461290017667644765957623227725955870856978466534555594127912739628896727515116226676315225782854197380071777869398642955568295252793762930921902613142764831834552775378991829339474595963438447397564109881392336176629736908716468831771154872332098858586945727140308862680955410603859303147508475688563176093011815855368201335047039645094594145028161380003522258454757208628467967306909113388843195871922450962207667039166783654686900797410745122882731349074185806606664898194756626137327186167364562030044789539019750843976227129754053402264902489787952855720656044758512196760427697661029392065916839082307600613491169849791463363662420136673718684684470193151875902320249454407279231029751776043408077847169091282836724500622358533033738992452159415588308069453220062230671192902969064031242761726561350231017075839947973954980862768889904878870496870451942514165683957186086846382923118847240629949893326568800552151086113063180286456238000329994046204087302209893992792564504326424077422204996496770237763610755906348610005683215293821328340616177025152659300489324199434268468698729759202102905276606774208192798730729133347935974416137424035366879502414768887659523990103076468207378309808944341648728443217797261856887796674756860813516359462678146941906719410012806026861048633497861692046260946984917698646179839506662900967483328425947665028918313006707863911612271717694568925511422024604754027132345790294988204197264823310480363531439464533442452153655666670337141744397105259173465464639239712638723411765034606928935372335817634030953856437320897743276598825023606303915182873989520072116144950140240059683983300417781177773574695928016143877898894630779348885431314095155018962515810197932742213744859564291895662896292090938898578644403799154833344366323819040645572196644534596625108505933524326352827099161131936550952976953838284367988878336304093712332353378619716278110195004526198271741397997304062416209018543464194754808990805078102171796710609634066276389683168911962454623063634702485486824627432680453086692157896104806396027337994921732021101880873564149420891270390929871765962294794914379983755027464194267745698617941940016625673012429843386293848297944789495474376904789469657467989851459939341873069771621949704115097687846603506660716052480840477704319770645770471977442474991514894224099888667075053750451872450477852081021035920541216666295392566842688276725174526786326445158810022413770791034499632773643006994340056113787926244491876732113567665670126979405399385527585137740403640673244768588558129330915796364307465418928589670519024288595971519266388649022665845420464943182290076513350232615776855227485209570226573190740353163836162902362523592655485542818189492109274328201380190458076598196307444121991128577183296816343441380473490652818383027608820018057426079681807528900421003301774192900998977357601700899444992646190876170800245924817325504810519950764730606786101465349046852692060452136436044820899391791556264438637710486822003405406544938076057399328338674876496068540410161201995235849886189262651726703505386052986391248201663294605183730378009968798912696974006822482779097440749414463929580710343545839766288284916021348044030761072595511750554167258497301881356800652062032403967046529658025881360369828991704029823488508198482025187075163560285093992836656684671871195498120587954971696211304442316243129233527211824559175828567039950507104622073382497015282760837331735970573549376939034111755957285369138063797539053917568753297188891213615747457667116084606821550135471463466800125013066244692712447040810649961361583554420588573231953754771294566917340640100351476582486646562043735968501570661521643339274792787647229792301215016388431390915734727510574243759872151228190482854151278611596775860146723253733314507055746893635747583447472145733168947824024393359952717882831076406408193140012539259713027067371117171623652407390737832855914005644205399731436002570538864629268245980131946505636030795580092019248322539697604716557743034222789989088676842000902950096693884474312823913116878714523227266647425478690695007144995191931189405543531726427964551224404192386213141000810160565855703942390249867338780837916691151963728564649590307876519261359367607022981590121567903453484387795081979936702143799243588079957801507433670399274686448315299602514630861137011940628404713936529557813681782454968701992155826172842729961366106101625670005268630269169039805679982169785265034317185429900577586418914537741965421284603317354917206714793953265620675989104410257242666184409613220636225004102157767809379072442388432186071186111657340977106537729276399693019643928127523070196434701083712773057608126295745489126076797172176746547361417992101431131255255599972015959100058559647122141457369123132675018977498756452421463821179275245821327231200342631098065775528315867753462976518053955724707706208857766791390017945718005087213544067339680088951854381035281670399407364025550326376141098942035739354567389817248875093972201968365492229991534846909412178226897974793976250420846685219316303958398158625905770008663321784654414227723197106150144118555955028094036192287876557623496332611323181878364904832729564931803048060931551966075746715685495522799476027353920966900270109589583033042609014016253045928568809350974552745119040425694779596301312266952389248036529989085413447193072250399441805634205632047686546598376573804369255940917535196650858107424483024390811592114545588641563621931958704133477117290032399756932638178411164708211032147113277957291886786118711210156604453631100739876904798504862708744474288263722789707782474079887459971884428420154743825538948769738018938705819968551765312438550669187172221071580050134228544803480475449098703549631761963992046015641168833164769804941213950494783685682285547861355843289568513606577853730240052876708776991327815086238429576147127411404209461611657084224355203395218343694868801959608712233602574914177222077215557158516202013422923084736497966515967563480457371229041615025771294814520063395682515593190061795495391603739320105462085413696667774169343052814216832183283100337222491835473259078521601801019391486749179912059790572267200984197992207233702060134225621210612375066563530843541107803702118684112512514215634137725842081913093721834854005518058652386339845390054907045959241325811409780143026667817361850521431732732200413543662556164888827822518744196098552293495338125348674621709846014316736828141857047916748771864472068642612540787590876337247645437226910383983280791851431683869620186767526158400450246307837824166361551939459808068316959358053327784432930015077160739991252288586385888606843690027965476401652650227623973042000576111690338007380043893222349271612421325309998136203471988276971521161033005362904839289931305818490881725002526614803176574179165995807205390791416908816400727631776463340079251817130732542672775231846164004353680305459166902058947234145935431472735280217203464371711361780560902634286296498078075021288912117587085551146184698048173544121132501283299125267314560821394090663355090075284109914859666391836207059494554327079887811409164572814557898081004476448058997878218739021043733967514395793026550227599915478473154483877785822985374092262441480001314111601525434601758503761708595593019679735452658552561804719033225694900633957884578920387426677924979610686024274483338960849127954707731910379067718241631503077542728400929665971476577490262214029000008457444622141291202865399777821372047509285794278264018423541069651043083179167008365460566309133727862508594962110606263134500264407412847497338605993865393765187411101111039348049001579825103419755230295034396832635585947379151702958279826944473980939266806937064378068724575201573058333248016678041891636115571708311377110369531427809053363264828909691759605376020903663250600742826004252590454580195052703173928323373618633066343631057379269094700589765779273057083784587265157895048911604437927387403618616459393841596295014533052413923931748247331966267367382807244123363410095674448778271477302518350891277910329257410914899203417526311877385309500676798622329033642422804738648159067065281537914358075750563596077671906307892555047981941335743772344590527264918369652912489129921811985265265435236129114671923250333729383393628360447858115916887614567862669523210260875299700460674131348707449937904347869085611558029125766747257830175613882024269901480127086610579795473721866813492419147952760227919144964741333846042402618317299879870019505260537227882375677842165929644087420483849318055714978688483464907970909579597764582814758796727799585034379148599334869919412068410041964604852984582129989640619623174019278383105035245842169812365083325136408564378535858334629255806793666919208105276229391982254674748737708471779049229838587876910092024159709097593641785264515497479283783822857812460032215417568667684664833414075765890138142764023460251184887559592024429769415475263601985507038894020326652493473976012226814713243115467470381921859681289874176530709467645487352739138134397580386265211376251184287613080721449300722835604464059568087338236029863701769578161915730814599212049663492664770004191335810649417279207052205170982699670008737396380606715639531066458322789559581079916675790947601928538796269592944757226123501620149024349568927601768963835241614721765360192284105864107125519157457875554465875099653707096206170432960887073405159634078360296166192410067021615004964201115823799137794115618991044580128637125537294214373231231682398154908444468643894093742478306947874324841741972953640435441568763320004788104962858393427703008255350734052689562794236520059437849718893268494923950267102339038721084385951720317017656468926197222839520945670851358124895483991425340692123538898701000908559006839553318156041584048467451814889430796615826444229264503616736687437305619105123213163672576827708709853594196359598242728571517087921686961017628999615316730516838311461351723912846694425804815573826534545253826528190869497139998982722319730129363654704668121228565106388504212919984243266233269041120921585724160660989811407064168101456190779214728307498265894189092463399689017904394285383670966675696652950654457052860117793925303447833558775283900580923918808760650388268826112273793864658344976398686665250363173061881503443873006916640186084216334998164859926089604547754216812174176356989647757807326523177881686481502791580425503233944828052848657958139913754496067440761728458633104037867410616675154071083269506481444908978219384336560948531019651692527784692640338107582891845146387872987414769080867363691276029176815176370228025842281113798721849253046925631392699876980507664554307633516779449254355401277255179390494683991016171575831958838171751148343158645365525959057468107291334191840403802101813628950824062418295792628856716929420851960760649707702028070614646620111076584599390157241063931842177621659077254447361602936305503979865408292799807598564808079714117684307688517580970510997309285104624027268852023068207448541191390367244016131770859125736425627783161882681436461331948703075903359905654526117372484347118180724023861781712984476860233338323387167964270582511770067697479216286730874496921512436514394224649439774688370450652870137523905568805094491732785009473214662488167644144641316105802929302782251730750372474791281257664111465076409495773631146204615621037801219982053650517576772613229923110973321941359794307345113024590704100074598997105705337096597232727946661408666123485942801665077769309685059440933848412279466330139346927488586113731308184119549268053624072277242697247110853613426371635039280344321798670859345185338274677737108045628752717099463469245206936029242243396979473502482089604553420752117847757713031335029978668064257190681257372896880174521692577698992560048181539223883689679006488352958460298771584627794285741340821345307006842932162951697215446789247760047966003137948537390622735848225334712973799784782596175959751272513909291387035600117547017665678169953098366290468499578914102744850012518833037753175886348811393931261291966848454903274553712992242305737897636892178695942028824926087320894237442024694244884451007683080468616673929284992725395387887113894629161400271290043606883919458668392713844933316789714450763644142631845653492710253040825464076348076850279123506842381718459452836311016242067871156206924534635084567508449151895937104517720247311654288236573378219454418562693034771553402747618422393477995136880643620547762106533951334503041337448489109749115803294889507785478590471012535791031269065385512050030334945333943220704251193919618469249276924201203944235397005032199118290827806554755695309489390737913460815789168621905829235851616349322277188627805085039870679041784117153960289529441032775623316549165274027541418054609891741488803114020829689975815828735008425831787436204352876369644399681788435661187280325022468525758209911420773842057285679404309194393270116304297161434562227112379751668123629961785666754752912911754030027524410978374814774833362022591202640693752464399447984393328870830730854047897499345322110530051081716569069413123474460130971415351967106501368753428779898521375989656539008136601208211856099860415020790934282120988983841935424954462309205283463009450606736545962183731635244633648082357080467186768708625006112138119403385408369677394701475029247107831590448665816302064708698087735166128725461264633440127908887605819074082164858284063051976926969612872412413878336915952996770739317679153376788663611570766348296148829337419371343399774602323891590755658980154767709082487291128438389989088403028722982396772209171392870904724367355168100298651091010778390997134139580287116438317962307436490921488904550754837116930472792479460365751403264252942457051965284196945009629116444604772490042450887490297661279336280776933327102450716930746418224158103824071507261877422443206539804110416073093971333606873767300307950436875455853522531136360951252723350243512160201806542343318625975824999743534987118916254532456292816161560638979854190016678906616123606574388294321584179220279852464632451548658686432047750917660399401358103935398288717657974261650584014929258437899771167453608879937967515647754706607379217283425699940691300141150159581839894717551297043159452413786741136060546007973763811003781326907666486111291087366432520672975659067255218807655259463934120359626211516606802409086071190659617869235520889498827042382556606703159783377222251402614724941633542682888194074711451877778017069326845582224454436610458661679676880375414331105310872301718400771104835053309221495488028230099795555371106304554444610832821656540352450904637179926638706143679332670521618937876523349448978891523237936800564630753768059135275383274936293953072245787437937294021857425152202421803790380519804574771592227188176297515407082112315290726619776483204824918006156807919143539255159137130489301103008408606149345655143740283969067865044895204559084519634762036436498568002190947065421088889429587871551883037493191164546989357221087588709882470138629387982045792309016859061431491980235076223253634360648944466806130694052041729112180214582194956510718159984316880046054734858564415218908540362940407899335845892963666595625607089046488332291216011622780319793708092021706028433927112832383239319558304470929559730057368034266025292532791538877984779475888995100144206556645355855917528478580466988645049550750502699495522412429845143883166911429643912271681319606840343101548515910584162412469767528932287507902294735788941083482935427093648094927683419597431157958708454917250129911169933600123256355819211516490604702553159320513863667880497869634237775234757369004475303547975748821030974466857246684689815207446601738557338519364644153445845465148978978255397950913231574322256531941736340719502539022426479417402295487464552238840013200816198328436697811445554645978778086094161278615909140793450393967304911899878092822233354205444680542981306458231865114241566636730482846763679323967103630983680265047279908068023094994961154516280596010469997314656506116660507071863980112189017006320633773688536295518643264478375192222134500019861512926072507504945026249532629027464296538993733133635189561193176131031406840607062811213078714951669770274154895491239824038400559924944233508711358495737275637208451554678730154909868405819143009807411451827935583178143796538826403828421045863621668566317911762512668423662676237154061442318370956144686135503391443759343610514009138912293647065574624042672871256778315257449744877016893285238529641927310203327449874309891851855482416896769743358775963556229156359545970040721649129718354043344990668050454246833240546099290339941494511948523093708262643902706292338099839891849086942499877148520999810348089520203002803230149689107317907571618466686100240133882985258087620569698690164749329115021785425214805964805936191990452463140543176017921556812598748081155591734916655863126434302794819817443174314246193992267802746544057305600765902292112967993963892451066843198100287372224635611937818702996438834524187822928460539469613135496835587403187816484232499065882895417158561451714544769189166328129852491980230845010079709267306120531659050047026095025574759363890856718323656183012605403820417622856503584221776670833460606395576414822394113283002116465020641301365260464691272348324179666878707563334977447963944763460485911060807278129878832261113509084752973918803396811059998973843761728780827696165116989126181893471813729903156781700124159986713666472718853580318863058984493367158127676361112676817460764180359664524062361691771503523500637760549570626315968090020407918613554047666072620762661070380082692600520423788548680672031663495865550588568190671883972673557072436412834968780395005896956627581861482909653129423329524796217298883387523447912335768119036650620342237593607283893890460157709676167601485685599702839140284606966697046834588824794894848550488179776712753863966669377931614503382441499040735002163425480065066316707349166983149805438245262429718438701986342965223455465063635697434106523531959891266282595668093803453105063762124692483760652745504715787786221381362410318458358960523810430188721302574022655636447516994209925139924363745913329996768456939875369607486872522078974290325959154596959793670336954700503134258489952164161447407590192696023310756004953694648487815564432629822973200982297032883476959598129236719368779639427076719821625373816441230620654926292859909846692231318367142144297177659721002563971419679182816535452191243944080510317787986752018113208677184561476833171142420473758981951641968623991992173003506172858432797417138578741371079667095368533140075393947518020793854363196907026467515615169073522589870863391202930375302724208805570426711220778145750896387108878654483456264302692104566701558995719700967067065379515532016119284528087558180685023329574709554824077795997693728844508293801622278911975721436106611725628778122577706146869959741655060100166192190228617005317590720983724914591983950298455074555644171380215830800219402662224330646583296077180025686428469976618811075128714025608691906933290200073883038074330496421325358144272400070961107010530979257695860642473568485564311059825466165023572514293634002138561146211589332544748766476240815920704545962468288457567489772940080160530678815129492608805274583247021868667612558908244307011245241252915134898994107937605831589648994383120583130877462370648724604207980546227391173021935402238995549344454717219188307951709533147224595328927429427509455338841964924215462050792324342129794279265463441013822377691977062885712883012728627168081501500309745886427266298742598263678966266156634871570402829293776656576929384339407852745440986971667917010959951884551197983060481916602761422232737587764286300744415364430740622600696281816771900542004453716467183115101138818495927264392963117337273216648472577829429781201130329225280398948334282868768499319071666867239056591409740797574671348926049922934038126387223167039292832774976799875475511117650081594611795871616140234490812394608095025176533868849710330308297898695253661929376381174504034716228534706864934367938344559137071258354455113560810178721634040555888350557984029445788515534595271369912485547224173968596442433739122632121411874988957269579060830964294081318301339208381129472919984173979229875895403776521546408914293337348558536455204538500487177102918565075690965650564692266700960819196366903532466865771862009560375003651196403810353890565861753356394379490440864202530050910233198127133851501668029441541454582379927505049196737927539982304089748016286692333216402024108973279514689253534152866128955881028964830546382338796640319101051848832915274539278614476902107160074140735338912107195884702103615960377886846286548743201441241694213695581606163087703734604874302502914423526043561044231188573196502683906545004488974567922245892132785971971500992154214763590957248036288145149757259950291450112859630626442636692632341692245010939344347889729716984907766288556256478078817217178234211858745679802191465334859759608120463370862749493879248581729838203058528822524782760249293734532384204189103524691413305370241328201002727620706907010258571437961745841554418047863691352400522021330012078794090825215172910740816155548298693386948306363345161570841248330484310708905947527904221445371088638024284988657439486079789629042249266799292286241034133182338435635766653027378975008551446675853571071697025555772918323876655143996994220588511264182150635541300593239349003940433012698334991222452405111404004580624984455088478218930776057158986065361496549796772408320923988016471456339981388532285259222419356048566521813753882659805789386583640252851045591741296745831038800819073055714247441891420928489515492929765737040661471272670451278118915389563990678302671468800378403298043024161514424675072059961274023111910077811972768041195480215140753617302603237068522676914550247768767827232152635820010231219977716496368961555742112684291995401416195742637378553551820264418423380689625098189446864404967461120879587077056822845325310095092417459237640441294312204189514126479577618144683544645083080386571359040789335870927172513887591697455620217653825759312743377376630924053412225531854494125281447412080350352295216492385016302300378174266545018131530086752860934883232948651671374180419082651319172748895759210135231275992812616325754346555952678526445869590251054187520360647708558891610910914134904109747559600805779881629824048763901010265722290920073460126445233764827044557587620272972004848183265689886550489618941023847597145714753130817363477113205138363204150386674415355256154606284913375667726756780478690048602285731225120377146210112382631026438647066697547225686481908389868594297495079956849076289510072450276856514063798062484788749913672813473332335319842568439861133800533957588008075102732192884468590492317159478807193079865307493566540792665727284862447324442376574222841742318848424419668774220924072665438528559559019912037976137334666270671358368658281336518298307152880185973715998560823642558765263640306978721628169970623240856544449547639528962381583709585064496283805976931711942003308515580801294734821819368030879771615736457676457645325422718672230913213061014045111994287811119831668511812894044128247878876082665756151317494809599040963892852082567112214805496510848179520151337481049891357517695310507617947746967810102897665216102373179302510326227534811342251734187647113141438070498851623937641649579180814961794331798947240817844288083557853179268233016391336952116677030471318047435565487260988986815323034630277364858541957990693378544050267854645401154919296342182257481429239231445621922485054273406340661459392352906825205262587124412143851057625940765699756200693594268084772055228055477374975870387456447362185958873493289202518686463215159457533048162965222275944255866639622251013649282064833964996292069387092324077829611203340443214510611036063653745568492747041048945051734986068306243614461036806197916104275977775181281747674492157801477774764585570352323195477205988385493246311106883559060678893869975292968448882804090001862521571073383932414630726287579444527136450263539251020250827460299155097209463778568350490278762109008297463033851884002626274410589845681464630376907967730142544140070743986594091512820475874960917487215099717870425489353817706661102133420804444880587492777557687263548375753484958831305528010199821739454842327265696007065007189825337416590689851092762576950355315573206676754838709556376991630535870629444703729462055109803338108941198403848976133997547854082618737071730136626418303247531505523478531400242345846927144937370993219073712402551114953588807224286222784922508115791238304336053871562923024191986564272062037935222812030476888332244779706156634641300416629294548681942220699066419927216723648828765356514103934510578425891026862723296252206189572850652288066207004511307970976659012888503618399177572300801186041752556107748669208902690570090395852742416328632107483052971418242182459514153573619230242572654867187653634327634401872308258010798639322795452513898006388289347002323371436155208143222658226467968005540282002074463904939785593839988269475090654537443636458296158920008752496939671956557084110880341347404887014123568642097979958902238652598714640768420075378183906596802745406810147147160505114219331710891958303338101449546145280545750132794111477939399005704911070401542643756116736011090462643180313750157087885743875992610014832480567202825585651557035258125365659300743187292802793350539704833974034353372181117980731551608560118336184638331013930726986347496797575368232229166168385074102695471358996024085778009222176667819337542935755112141617155078874038589444559849425755133813784937197759291966713725818289085512284193519279021537957377708260418882384040930895340656818271646410978112076695311115720292386929329214215281507914156038736961083462862287584206116679488230296825043567837967019456404331017897859625564385456326353200620784757281866960956265198815127221054975525347611081441035809443199818382312586372642751610674353678040874163472684588778243017884284143611509988577152374565112686066071429538668079506798387583842298061045508985144415303517768974343263762043235050561340546063243868333506254986335440904789578372978430937345757251161064391835501048898984329381417880607750938171372258936605556462238261288279404763036269388244965555764215704971533461928330741075765371979235344098508117914271871701601336899228077640482128658634780934670617614268058783937702777586238904707623753071225223773103642946124578194398687826410764631984280660371152027401571495645338253589862764395360740948006637561083293260774701552178347950274825920735636321551379351102384360557227536990585804367653635440430685722727068390823258013901073230144064931830048736695876335052856479879447569407624086008887049007710821742430907847449270638531522645611459610017581377250026340025603288571321560708218551276820110792074775787279798802481803073249876046780185338003455924719380306834286878654651180487949481914350984950124550231990857298918513864011288508422180577186479127082750344277984116304580765060269479503900656313786753090321126907360497139590162998841197215681837462141486149795107166979593394273677064131973883741756455146585387782232968086880440946790684362571882657114855710617569892936847045668434516826287811777514257229224961304492456357601049611349928147266177772485793215405897870816842235414587129755908613306204990585376614834332632155015116533779756570290779818170808040644684717412622690001897142355217268711831567848926242726475907089082124836396246826649358988801316944274111585559455560688816434505261537486772933924403856864357274940464676309359204535130136817357834876671717162099006539421367871056639416977607543427508423831064527379331098591636840815583299102088937807292703537043616136732858766821452156049341158708968501811758564658945963533252426353148356724583979915819318862415829857617787368806366477101223863461636208768272693056308821017625023972911372619943405922628232741085823519613690706922442114374479849200047695947462086681104461576286872810115061601974133566917208746045876047493900335502752654586638335634224947476138073401961968880566922279042046892699872423581434893269753090773145655666512326006687660710196142371586207789367322489271950844991413334059325634504197265447531640084669891988638664341063970621591807975878043831266257066294854134452536229528649757578345598711094840276191236197254723613446775329387373224839487517280006153345800828965881910828971487970713467297957558206596670417012124868890857036776695015214973843536109701879298345213038176247184426134384754346360946907723203560552707181002382127215147386123151821685442417414419187215839824718351872579504694528385676518718559289566635015342806306833286009616323191844304958010552188651036827992792323193842040722308178579649719500325713049051418039501325964459880150198085343924515757481378962583435000152464770729464968768822891295416759875825428913513571546970662982959589826344921655677602433331576592523617897730872567482203286420453214593355085501848731588540196098928324371397303232100375695867247271608794797529254367226754316880066979094760311576360160684197882227254903702947251623660332653269318138102340459539787927886260805074604775386739012419236877358440365598832176016578837664655385536584378206576061228731380073085730452725766998509299040843532890819777108050782686096051465518342991279806243746229096238235310829160348606116712400427092732605591230085896936500972046816319668491755486385400895520808886020545378806076599012596186201103739862346389941608138309312907972824465395621196346440968753441715515681334677603342679913003753745751028081288857776127439311689612153359301726608797797488004401477360552421384099335335353209025779323670296206788100239215796570262736385904694812494738091180721238169210559356144348980704727592121579634161910782992409900980789590808989501244176010321861160907579511784466373161897120917700143558495856196285675266798749997526143499708883828414245195484635442981709890248253689916500709725803198984762159266953691341239569981227016510213782912405971160712156546798879917035993887977221393362904576113053819526319008496002893230060416319970585691415709099032798059392743639664915970159729568330859076572431980684292851396678450107163066410932839475787155940271100102383637085611187007937855589165119557135149463669993504820523765431220218905871543705928715957461967950871311673563405400988201804813709241828348112863061240161138960806948729419747448458311923421525218110286844129920313156026699872148957358676621097769542700166830116890605588716412251148164467529985828385464870558496247314327662361651469692107944204675185883737990250669264765502172195757499884773830180107239370619732406334246987242220732303710661791760805071240522015395299190530641045493226383172320352536120702428506499032207876847028344349525878780874468308840023366083964996855721009694171728259524396742063044630478353063566163350499433482266051177751798297089246156252177038027501400069218640025865160314553534690161418058861906656285542068798044851704845252321454632114620330366340022767566587482682396644080119129657973300233654760429092864133075364398882031812513161482811484859405797684609865611878031615617832127967232646220047589009754924123607354315385955466565526172188628827062321606399655582449091080808659913274020149290519703925520278230273450732157125421572273015802483779275076352708530143031702413750263207153735043627908351998974381375093226355149421873384125931702174096019741943043392227029692588105104170515025568820158246751015330665501526903629861566279803318756890718940918749878582419613273896587098816595535793350781722893072808473951511163358439491097114299803761820750753477725541842702311157787870364131830756801313358927563497496500664460584270213807777222965333919006306693121628602716731237366082284915125954506334847632117386303106910237275109244764582538611246856312668617455067020764449610185320790709723512114910128581009372603831839097870105809182324193695949083248188001647069935295090747850260796408143203307614386706723764768422307783115974972666651814427927954481713644196154698017841007725855758201483111867387775932280349335254199456237663523724079460836356313796931768454702102064532678195083609879217713307661971402554272135368912487459322140956222407839963208315329553794154817526444505689597838529282985383742016771761460105605174268241614847117116727814871464967500232501246031899082113009306355544886194594448681345229353670748477820620525932395008761988566994641487034555062495256669225821622728389023455314771628194631688917013321063908347286809932217577636320760829994769168829218989628397263796823503986318045860017272527565298225297498036205838553920571919798299607917429472874061289522043464919724148178972865787142076854482078374872403072331289621005565296393608240028081856752075541781135972323497257915825373794361176593281297922070139368618468437352440400199502855371769787135282206045531926634133309547456993552803483508384744514689348252654130917569042716545695329036417826686527393944246626476741124419897943513180804121249579563389101423673543552523422102922057451177481244960636258392662447180215438444757923358051780616054250521088455523681681223704008875649526931093309203098656171048740190018874720174644264001513468275359164008895801594222969612138034639198405771379880090384897929081058537497096243969663896249254268119277525189823327671403550288670184205825008047076461535145524414101510471924916439567195173037752886562577743928405052289520930010415428046994370069786199074819701644459177059595824041395724369659663290659198132639571066953123253310833497116558061823129080198799148056862162297174922520725938459386673799285751280182548497458117252985924787154305509748021522560055051411919412589472092730456436764126806982617592810126128058535109575423758387867326559596069865615341895733470657014138931869775702454480767422432622718983920892652549602521478031716824273747878846993848667357438195254558838929481394432698745762110275039502332734678702090093972160465055653524555292595009468642469182571505325568837465166482880509676103551962491354133006624448946217073610531489454106297048408912207963523363724027554175355792784564683721566919722637204242121343665685786752638177765871017640872840420360301438681428197916860019672001265226555317336434798719606333546373888369897988050033544436624163233099451934299755407843573782129085369021439870121155094876056516721530850943271585300446417893169350737044860682046786282410158370925558929639432749394487134168329713158071440544844561319466153349141045425482626104239746816978473804566328554078989951014270636871760617889760086282154460327537730538814374455277212145504644851272274172538667732809486937350346593555434332724318272929660941117824770508334700895253942976642370047534161884982090590412725007242928114403424037897699412086833413224762126829555689318860446585742746908648208440833647635376539417137061996879080083003285132406050689106017284476214501080353761575044803557463146340120789365847243273174135744695497847328595042883357763940824169076482476474073303942660241578841908888063897847535260814801483702776612571340099439782959102384423126304593651851786147270668026902660972426424011030656769036214708696322703594894652610196752809489169614324623999481734608047476820665050555484824469660714168240411949701504033108615099488498569367591328501991805152177726637755977396112650437678845588197344581257744208149151253113980557581276704697022437543983772957630040930005784991859714604288349470253100719003759224190464416326952566079769751397227963092574080700041047272689922781723927753541826547708553443298860181189896714265231252927819352253012569465378437949451906003068393630278022451122776989813316582508826453751543609563148540410701463616650137074665615452286073790029329322589881768562508124410061095806188581871169889141755640324535625372683234169452310002871942420927837997420173142556148936310901296440674894852353740244576932200953014363246269631387587765115712652127933240299024355109320008576757407516110345604966085425631906862539439721412098745535332738334078667912931730103564378018978495111432927942534040423074923959533824614615201784827156504256091204811077665883631715405781599442662934777728985846358543409977785654192998738340626888006700534255119364073439388799570470921990931095436127801228966587126215815906251244270843163857473601099447815324056172711949532754743055356320247103140075787255408170569231992674899138447527692094729961435019476274999632148402116576619594521055795309074373839926662256310287397724829671268766276648461700749059466964754881716597507691773636408158499838564296172857479219550317993802990705438121402046387078730723142279637232553492678184179258732983844331285435787667321243163739673715226259463042991372391870915436881619356533391667830146356035233987427601748400903379098826083070313667283497587498338030530751547767985317908119160892741616081036153402829348161772091108306329996973098789658305392390993863018533425391174939047473075255264508274021566846233264388879299091285900499920508957890031398026032168913458818245164821380341970201071229362131651536319721604064899220406895140175697535543360834677314305676492395531030811587487878878941875557528529672908166784626358812499022765653924279261960804473057592887762707884709411408810526215153442357920766419760055522624804337436379807512204097988962213636191279636752086824400098910335131221658453444284312354846171428311291903911473906280820048818694933856384936202632193952433236777131438790223722844338672802390756498556684590638477507197651419572658917066872958398478877037289236879650873151019738905047173279559935803784599075648998238152644879355240991871881953708409482096125181684194032743905195661482968714605727449936254647879467599794604307161540457218100781161984614580152458794500649747486414995165225316539666893654416105623196443679737740348917983661666315549079995220773181630748912697339433146269446586904137790457227153321341414929509909070852586568652041014064758854491355550570198571742873888802632460396824403450032142868826560267791586909608646051517528349408473748206756306227736113494199574438452622630060113494731794335186393451887778156410786679530448463248821185969628522163604955731215759106406221422558855784345111193665677288361592458562257489513206095019007369048074017358587936788926877224135563072576760825537012447310303735435270934525358268739840903107805766351905777152914184001466764022050016061128867306869290812306616776316382364264771696337529672730938843980067804568397233122501950951798036645213602997808457551432919013389146895541551150800902110714028910967188203158957340392111351970514507271658508430458183140976943542130091730902076572292396633201280406264109314352108529505483807857554027550178199332074350347012482156370051010976598454393200955168588427458994089523856884591908098700705116538239892872576569855807609966057059326450787565253310003286331292732963346111360486744893609065716992856698693889284035778662754089697314928302723499823482284640519007142548542340366921209157862784153815155279448095801174045187555241527108610028791341625906543929037921256638172060922472053164029398461757356747053341538632433530752663860910687190876220618825302160746078286344507021632504865060243242993394915785758320110509889582834762137655731260223345105614539023509781741055375514750256966638647436092073903282964996627204047710007095677268306304777857170899902449162038139335298208982287969084958313795071429077798486647142381301014718402504971193211512785086159120962013660012546379772228607254240436057514855634720354952339492191204613053185746055254833305529543773631988969075604615251685646556227569279983364805588522912526264505714438132464499336192761804455040756409478261729971640502382995580812602106669567718782575098161660071417937845842139037695173297465953277564700724597165357681194877091976562718389008517278950481093041129201438902189542867109563197076662101723073915083026559970595993748642733769965599987242984245815771265539009284993425116004451854651419266014498385253502320273611483991545368480946132224704270168865551363346370802099750441534064001504577737020445425980103818708181716020562555163664449498468845797245296265229340778422228083451038293847036342261639945171067993557026385455613108714025948765008700021031453186573374828165263152914326699224155039580457889621110686052633835075445433364429875958943644375724300207394897383796748947639388715648229247919236484911974564176869761628047398578595218404839372653014703986355465916013316891379678953213427143543199211121879703630891966374261382015593716792539665780761586905359338051751468319128555594081598945341651929690988992162531747196045388170087229036513759836554333058426132740301915174051287871679686518865699056107653662062152218936036999952985933455971572619338387773850237372274817092052012459746915679698749958119504270781929278146238398998206276589748569856601463772518573923406924943995683044895353180589715975634480662181566410778455003344981647339318449282272151446137227116420826895406464771787351514538153346933286161057485290592249838665884353056727859098047255050047361740557586020559661718581639310265948889131675846521200526679845480471021426874663767135142008105819743090576990382791849639391172056845062618225187179439699345463212905263284632134461475419296852088922829211462021954690401254374344350200512063378513239983200004158846065566497443514432149851121681729153966440671340646127305058261964328433109159579208302727205478240023033223303108042895255903404879320839379165641568902443399712653735883069522821268752114887822689048653984879024686166880343062796324955325062703039925661460950902744854510073345091027214640851802007630629597277341869812467736643688455265493770162357664986369641459747389511327962499786916638923146546751279881036044240398088893521691691720197386204465260580943658137464740488910552989705740929805812146269793069126919056344974363404196507092042892591830445078301161136008902298077096763913033709900025564972448239306160872112776342068381991987248795275279371818350468582642752394492795463713633913744195454876840254844099011946558011207589163490951797375439565988251213949604787468717953904594877719343348867981577508001931413691121131684694741507041246156728855367287220471848073381215875899115696544033587175884737847659530871749850046180702536891204456045823441481986958106574157060996672671491683926220942546182829587379925270026740512296985979050724873086361188944816317962984481620732709371656727913516132443595898216992463313628807337201201451922189943820162667822170808483296582261623090772723561734044204486172625660561630659485043470154144583624505746973238730610899326703538269050774966495891874545297399332765877250859963123323450696066117869132698931147160365434896096045077018930559617042283420033445265411019561756227072212923247052053713669600976884905501639395916111853446088620722060670611149412308424443564254738994057504158130532160878331407114895986268925253960662059550850551068308279825111894581490860873813864123602623485629533302359260495969688083021100193761360242069019507575819396679661951709800901177569926533557130126796882780235930985088839569608531909326759431772576329905557272185717036948216721669164497624519105167307776882105978939993237515511668439109735200734148944903375696038857587291342417467473306143947482164069827676927970266130640557619567552500097999978432789952244585418949792385946803955925010161188686174393259301496235508394616084403675156116903828906764728564484175481709878162584013318423683999682242658608374491365151302237928444400291362859516432772584604214762125432161100638420535323453876871800687128593667998517893248593666489565044167044899008098709320681124178574999657514736384197001687457000577519293661493685878024414000990444195589630546457512368509003417217757392132304678443718029746783300917373544051629831717125713679003415648228972536771981638560397006396975819826007466966321373975138999619456907231347170586153342170348291226660502461849807730784181125050562280698289344220364783263968979520241769062185457414233749714365711796274377584429472171575299062053519642369599032657312683586082535959244943346533728195064931835190538522558105076458080677360314182110641634036499679760489883822034773341150709788915617728363436081035330565598335370046737052653266281384618848273898435593092993084553628560073386208363734699450494798582428314563852278497200963799809391506953803798075799846192744614876754681275173324287833019934814427610820076468797915274381693205328594894379414156124840576972167564229441137019298586100996562519025708437253992867364403402400775813990288753810778719825124192520532565573903904649292985994823437829840822803090835117443394245021124827533379492504324806113463748186817336261288501019196691134435766173546282838846074987689351723621817092769480875597523403514445682354930059881660326367313641927842401785242426253296853720258775755451538089415490675469878713261320872036336649268976246617596136349455783105081505252190813501982995499805830235765312449210721104788193923955452282254501741778174025252040417081355327451235543939482775280752273769627774073658568393910355448896964506410857301605549660432624015041504314725343199353821500851241148408829868023111700496180735620181384340247732759669483408550910469805506810580786835306850999516825701289864533691853196500919720808270080001654336158951983209169805912767366893600649423167637373753823748253498385322975817582088747149670895817537021323777765351704349661136347509008587776264117180131180815490049579764944409033253579727278724662218192260853485272833310784877066315787025702947887103052123233187170337767039454292418574945040977398693802678687357848308787140129299945166755713610927908320715128276121005700246096298786209792950848059551650580367784804454139314686316362330522726745544400009154520845067477566436730887500935609408805892042630990226822007568869345312204407258347288725412573375948630812209318256615269284364662140777360441251540006465934026733013475768706026245778375740357768071967693596785831070485110154151089820055613658380588257369994648693567552299381822725332751804894629605508120876217732704626189724827632946330944492398186868289967391563495316216986659087671824024959888242036100013792223662522465828768394099336816647276172255894932931060811189073940372582169374099880072778822657146281204420305469413118716923354585796669460949956951130680939475369179216786588304370657774589000616586886503090896170426911793511793845164587473224063890959835311367747675342385596439319911050846315998362502515128851163636259691850262392249956164672697512565582608572982287161840770578412897000033943001305527555538043896681261424879979393352273123025795251088026480148467670251823174255389675479103892303897476512157838492974185848990600047982427996811730909195026493828059639241961919623320415327160951831688023330241345601941272052736492435231405179028088878027751541101714298313955666053707569889795504829385333688373439453214936119995095541156578186735658915479986634613170770191686354280464811849966390464371876690593335931675961282082395761098511771111518927580694450099924026052878958302768184026210252090797281619729448629176331662132487976872546399777903665103543925735507545413560209388252208079390274756656316646755605724482143159273717650403662523652037352708072826423277528826927404681138006109011680031194216133365669333225904135506227752155255457206502714523954673797536166427246460082355380216980712787948245061298760990197510489664161881633837937555770547363005687756282838483343486325003877299579022949279301107372037798767415202572973048680857611899473838798280965133843091510469889882960102054896537834001154316439719842549107603093072339707573572236085152272654403483394579517141222347175548420357685590823540106809537850249445817306254725080365787953409400682601163305090598829000519875567423097264158659288309815432899040246582383122588591270584508085717036811701436527045173773027695320330015960616323052999967182018117818525586602483296130870952033818587462108440449177023952293927125443828018424802350882022971558253937962336031501265728173323489218657775932629760058357758555982479372208205122546382765193888447043197285429100580279737096139822579595167671261504022316089232571528614390151293601888484235307705324366733361401907898601130040273950261046434294101809362464701424574195623017134451686665408533974295711805974223397247852480196025752739188220304302063862565708332701493926618026941037198076305844033174639713408650988234510068403716784021875046346962967883502869246323167562468130831334722659485051703029386200126778713415185725374654229453539219283275093328263830899280387618770709182760300760098848023505428669236000907668913913816639089591992142891999211893785155818768965120153214424033738962252306645447328668955798019881787433001038955657203546762782236245806523386981628790013513454883128347710360414502916695430477805593473932395614436089103497082300759320098682368577750027525552162174653668265279337571004752848172144755894380934190640329000620054591701978186223901935409091794557109425591575508469131246160693696219433366550539988091109773882848828062693067383317601263523304172522590158557341311688910598554344367856327243809194677081183588450732848738358810466193976604202990228813245688544395541823362699801663481068304912132692549798741038914072072447675093076275260420399246697058133489717172238795779429480579057291120157167942365778291096725628073371309960396720281560983841826993594150768496567740209531435268133744162458317387785833967100654639706741698914013620282009501897315771996348378515495756846071313313475034915482905881471095522494722764826284956158829417270717555161645151284739693105240119815309937664600479345066958130830295078962134669525766285287439994789663064673981806305714240286002103909557831584813566354122743146459023440005373422383904557872796455543324100867575992277628269238846197809103986833741961914750737529185226614121930295832054259298475174474437810373796585019347853655757245563401297674366442465821720306650472097050149565286149243482576932141063564403351552164794882100409715009415619661455793545076649572178307408742124560013341573247343619085299179300662365455694585990593945457791389049532221901144675291398728332777157829418072684272680712429482691919486704153002357355502344223747443045507982529270680990628577043924916594099723258628034089369321375232461591212927614422316690949092343486311767221038238507028239660325998802908231793886971702167226804829713435107824861388761204504486897963103470564219621358356413052168689172501061642432366956559206391473713704515117932945675062776867736954825352094875422476268956871265513657764160287044986739298163456055216644352389872148907266310406698559521754458247516745209635383985953928165054957117850786930343065836825204614809709700228061307829402783460760091085268592060746931055787042354799141475760380539634074101632679879697744114350529994505847662406525952440389641009824664406454522125918326729246673102855665935762145355797713786317520635126418710873182226219605713659358590962603993307713077495563666867077477196396662275531333313950630683681332684132669898501035857120474776851019282623128939979220990321091726369396716114375501021359168603914713995009349537117286838486557328463474588025384015831012417756771429874178246754670911020203805372070042653770154044906472915641146371948392786082410391125100126735519513800561253081700310923828996182475315470730788826257346895621661408704052725550099949835746396732718975033909667378279908968112250257484131026856473649976797217853139787893640142440735953400307854263473951225406594710141800244452279030208122307996090473010284940241471466061346922118614215682618673472835343180441214434413983893420024857601561731765767353071582278739871564526841512098422288980783044237933530350096293726045059214937030597372389672968296157933725568026668392262526833609067051448302263995251669007780470165760047607075470545078360727690664232396211289087179639561150947139766138447475603887218425843177751836007724279526142033758121798348941666810370140109815969306534888310279547756435767165341043431189138079358821367612835211589684295058455367975243513475860645227940422565900845387367135711874357642010791717716723840438878887359925974732894796400338343730450870935529704100526814382613580268445511838326340719393374478253403497797181397932462879860066188944952423855199080446625340057835160549747962700093690545194059512847849537152450950266496002637528434182285763833567942131073390298020450669446506226033732217931171660735237486754750016825248546064697594766049563618488792967544826516668701314451739858404968107489237031318856565614355309402463767783882656769617632888823443675687873075509688639490634592770095770055848594787905163297837926721571315373030102351615354162618408764198013745583207947171124524599969116609795640908105802091622790498381296954250731434302197820655430305321783065363938779380744975349824763347378597567610958041920223740552829835602415248564669375209363218323516922972849665348960583158100111634048383563846043882572651571221178431597746260511623093570893907417773111411703346348677802600822696186321058772081559305972371254407534883931302809370055674593780902600133538348950547274842904767335856875098379442711278082714561804190349078313767942222004986720280692980712563161732457527369048802457596799371946270964730041722361901312183756524335664559221642112889597024748291535649249068138280722051875537552771379115793180216042972787215237614582202920958085521901870570585921398007507054936588087442283919451896478112488293160998278405447307654562473758207529440396760873699847085436455378027196306567388736254529179046646098085174144593838658088576156861535994958200749176014240170715829407718279544375435917359811286507076393636150736756512167523573558734177354024619375005766827102365780647102913202522890947822165639121574821897613665286444904710849020593966813465595309663939447576982630100907393023232187108680501621312807871212544874111851450763690082059584636846034926679132812367674778129123221539676661099607668030332100158435247236977578950146720009023333841151531719018504698275419524459575863063546615120708872042708777444985334173113256538158970520428508816629647009436451545045662375258835364067032014675776619192242359343164619248206256559252820084005405893840305344172415766564154743146434949096647647326650694225379448873534057068036686345801232125921479773999324368374091697676861287375527039379927342276727360344406444272173115981427190962860166880082802773007387198749899693322960557047894420244704382802928661195650050087844130535394667721078982543032728109327196861187227592046154423102010876142412873515034173605753417996130772146481870433069764078662354833927464122890461305712690955639643515597688331683650406420774873660463024808994846844976409506458465316635911427100792149751246941686451286483691835603926398745621021962141721304030088184607725505818965940596197437309141303313004452654974014652145605325765322086248778347516221482061402539939043189004217567541992290448985691712774626271913149705990829068946414183416638816772037197357439991214113347309965717948683220397022766302850308401124752134433873402091776075327442075589544132673384123637538469039729294675449118902710820420451245590433551375386110269413015422897030146632522712084271797533319780309439019938923557410701366502106434052360592790841432442564759040907802632185436574989178700237856612887706986527235894593081230156142758179598784056036340690078588829539242138529995123143353542354992217931195060674471422993918283187564583553244748847152645044332333975816840454103735254692266965937375764699012633073793319872211516551255093008275977223947222965080941270676512145454310835514041305343123558858239339206544317310080500548814597244069988756686761240736564434553764167546913049410967072013859325863546456563096735205068431589650540457285149135557085475628627373992226941015776506999600360934108642991333739775935203472683637725231754900709517335504960004787575870767708752107931472234971393447464628305352954216011829902567282077209367519225413113445349319643397926431726969639839282925138208048581641566013629329822413207040739613210830390422233299823193352284397046770997741900238422810951586182803279920144617091975541054505371238039721164490051471799295808574023744696147830544901621762122925118626435301788289444599386712446078464726847029729076075850876868468839408117790896761743550893054827707591898034431984789252223064602140068334753211770632730893345809764352396251510683952101339297075498091742471889299186421537707868818712567887298971770647693874144394931952921222205535832300793551971068772663251322599999191931889829371715797622421523676152077517957979928924963162783843750163007476610830587266452716431934708041495743127403084473726254912844879937280340545325427316028508637780737355838255384089622404025546553616417390339983240085932092619009053459384933642392339492385972124281259662485878791853701371664292364593435571762691964936971724727717457171697638110053399505917822777758739074328989382089482697100235573204280281501108810997032924498434456579429563984010658563386580215350470284287483148259444858001156737293451794694043849285583223533888263730968456945150762288793823262709036670828665203779534917039798199292398223562432535688006162889127864734874944837875723447642871046615860506624740498740089344761035641857456427511544346843882530092067861128132387396761886003045026753313872930733278697897051451098745075499617723665042977400945434126352596247126933047928232495186132736121063143342574554191214684944424200329361685005096189870841433872801202986521840351543499446332425788670406101510425169112648387565888630774300097042618041250492239127617742530664315479489402479687706555829844108973823359486442078582603255891181292936573130355726144434874047278106653604985394516515111102192026381017338953298738488352889473443335732995693337894413149912416799110955564732125611798441694987057261931512044930777612506574734340973286395317635419796014441241791728542213778182321368923816488277575963695772601470716830255155236792079410211401503797647984064785027487555483826465894342735684346997830020592327769951353187578007435502714691920685357704028075999377994977156124662795348751406272210697370405820015772234417156124920177885056945431364492821869910357125152544005759555706590361827813478555044478104878848220857245787458414217236379508294093798736028920778128435557669922413569569854103561053248552251749783950708712111948028144693351690569659540249826179637304291852298760969335875814540031997012583339303001945020386234465052065116155958197690570249393907657015220698587100821642066288617374547194618655778944360989785276594721270548064311755528963663294747270106659235838382185501940929120448759240993125039582685735624822585107739825405558722794708427156834494371249229779435171228766234330349190819993531621576986832042991266306036099442247409512006521290346299206151131958863577508595572423741315138784711019508432547096658424128950206796744476470480616180835978549158515041513786673639218599841027851465087057010181082077742963880685289994405955468448249948064245867980974962239346481974015371405775179857118460761933247617116201359705248666813209827783910422469988183196144697689691423109386262554754410634659051180709165459946050338292040737486148684282001743877702517458190542510108846341674636037144646890215298204965859743118744350061874319855902982548519358828131217514111809699237788420391572194035210420052858226646107309551868798801728705312949158229083874538664707275148756056696164391145956942635345825001173889340037734468225507694835743693645846167039640647607183514089705867390667151449235085172589101565295650949240879354109929688431410409263730730899041586686115466424273789529213942783039606451383460950674302293652516810330563022071575368368494319377162200090999422612201714723285420729980965110139017099456895323092107186093487934803970800530370441449169792107049883152598270806217133640621283509777079992891726655455391043261147087728137053514396219686124709263347015667956219350694359494907233474400777637181995659531839066889547878365320849803785010682792009181664743999526197186483217983239534642509972008533168917539337690111534234574911224127252514869396445012763106577014294254529993020953695231650052537390461824174767943438408265220994555464996307276544049477425930934814168722385673659100968273849848777766865125285783900581915865628820617826922747080061425223675788566741144345831404094768974912903804749720991153988949407554909671728888827528136805374137423865725809055170566441593004969551362477895606754963630347262821259892408339834064100651960220366773110592489326803287638065318601324591079759697401077130376679473018583210481604199063949143479194879136555949874555397305818479545236137498239690864458654436743110839528245087278153797640192717299542682409132856883008608099369863687029428633615804654003479730269675908628110234885893234834552819706591192215391767565911845164307427415071084338233412949465747263996717745609956457444861097751084749996789693159533702258304614052367270052535519818341504810678595903409308248218932659762897908174602524235920595542101297839775413756705440124101726493497369258805330718921883002907543130700503985541816718910425674604643817087663720450782421104986138549034543816893816987925299141173982783487142507589458792386106077939051276519926664436111196719539616250469036526021594778359687086692590807796531840216683446570075045614343047660426043052651391307781380287381151703755535726036193492121793464527433938828284090694949722437054039735506448561594825827439339374217824991289974273518790631077288873115782292473464247926398307566358521128164992325073378396318449188987501093766572742000832563316218299353444914398585774589545203874651157094446117783331009006745680235854654874123329279389237233990425884760396659309054867238721637057726433324151238105486953728468437922989802872096498814632340074980638672968921880854436838430635040450884049498383311681183332340327005397989393438422419791765562424354689967253845021125289976299946487386971009272891051855469303720745243126805234463903408442796409982203404005989051373689918840081824494906244795921047091977202725410223702360335696727750790615930393055529566551307591838566941157774480515215311386490705131078086211865937407203043643008600273780705466066143754180714917958123799727541117579293280170219756394012226189564836365503571594274537528969384958171135862332312066452150884214233322095042211058530153068800129193764831053994240871018350577904111597164204628474903014917438978220835107731788146647080296511131084995059521734475761138957689056531797725174389852975222217903336290431939087132140350271918244121781555389331098422092777266265518991509189205127282139987067186312699283384510531427253183669532719632363126253915641185246557130207910070563775297776622120965192670297385411798636534222579741710406752303205283651006001993485208422438471209672456428231150115500732998428882178733092784765725939663962966826096290168387825474884762773686129537547030592894270175653908031780128109972492972924987379895261211494389958789217849279641880538000159540994439106237834282597504696585543684912656207115413194461039548675989945297488734261746673897205480150016183390854123406382341508673968719152007454872251574289201959075360037411067038741589923131374243766724885955424947866290367295357864597086495959103569283564151556168135066367874376309575388929253991092545067901829752673827909690212622801869157483941278208887955037838525958056537148247846857728592790479718572101565515343937866327354947676723419575141861645312459490257685835501773612596099072145751881977250973376307983490020039394586296476676580208717357252890939764855570814682016515303334198158596808167359370499708345658974849201563683444461800323153479057866300917173818356092677884608642275736336445414676242035386692249928867449926253065025095315781878269760038171128508803963334187645510698098486667866840475196159474632667787961140874345424422967441568417187420151126740639888783784017765204774990218522469640334202366563222797958032447613701664019572287587431975258206421730928068504042992210596972146653760042512141697377620697171754044731137009351737679560373441778857635611821993114719702649708396008932292203725783648940262261036016302434426929834407298222559525163310258721438641146405190548347061924740143279023735787806580384249253815151748003675369775964869558671891108570192891544160021385014934072323169233402148203872273067025441165410353800396820885566314185287418253803822597519835086967952884332090127920503440051519325190185159359424831138004394424772000672958432944636950100851941221201576439731049214028510916213091387329914442104023131469997286866545453625073420089943897405561752111895933052395952735938748078970167462441258717625519941967658347559945871468191337734205489154230406181779119713278518497275881974132778519646561599249364523394512529295717777566473912222256093023915828668657284959611742382883814115860416399426521362380631377183564030971972197752526764793374831973569859699468334476501285919940573425414673418272041171532726143597066710636108889720384898651874727731665159831575360499631649988307075636816526887361149301749403402256402503826281612754064199274662139299001589077282006858329448201176758703903127989593716189835983779182444356752585223686606975837640293001382296508982709841729844889332152570816968510364479937425390392001437147660264534225557297016014263577531920051389321872385685063665685131850743462882453272619205434418256391266568532287606670304508501285327181482921641068464815387034455354102362495959145203540037820988110376336263966805191392167815217419861144407176861245936762463849039306328886841337270319823120965646005313392209373773634746065306258808974669513037136544369906478838432595021192736416533615407762447880850154545058114920920134119375821383685064931636206735763695110030342356245437528438846675395284252383617104679666660813003780495685244930994331052319228583030102296348008163449294383239096823033797532387924700919567898688796815955636989289275561088811367981715688055218332763604182688859284071845504211122437349103668994339274741076595001195872495354757426240245269043115596982485976348331423990733132330432877744330418437665992257305486105103141701681199974837859490296320798498155059281245631614237368561914352553823111241248732333054738938709661487856340124777126746299436446565767359994687985841146874359013173796016443562617128439609530838328601151502417426075906312029729202613711395696689185426433464332197825605966337177782458158189607838897634014539412705914340340895566014438857655687523648681673062971469936145329919067410575480345661574972195943551531977822435757946139412645372042955714099530828052538428220529479039088899785536509911368190634459999792892489510712515716561835876254456593817827926868008751488806915297207994174738136719394718243859926742862011434873999764877837543433336092394003269952492778137065065708233255257970256216960400363534563191451716052434837264509391032558686382585133073537248598732635242882453665361374198220772520880351770921916914277996744527628904533218193397760435165463976872063142885426002424190688002960191962637583748123810545675123928111686597317755028496394852802006800593688989168566710758832925704009750066187478703761712108083168260124421605278075208561243204963861532804206506882534182779550578734323616201295557997536724808155080275821257312807707450376146305558469025078532508170146549039299856074240291901551245514345562157254732931419901635519358010671433957084271838432387357081533848706634370908491664719193584635279802473057928495446152572553766902283634664983701446308660495353009117291271128227753720535430002212035680270070540832383431830068335744113644365619622318013090864922857338504982892656916187888480297129081141132026707657620160504648275594259331924855893472907360343370078905050336737807166527927735638750378757588274807678222361646617978514454503419814201637442819620744881755617922757683388138400393451700290836707970721550678025151432862457698617736933648771068570947226815750151668618084011556902535666339000391038447488211689844491760937951139676905230850431513687587668299004832663890889725865995708685098418803738630987885824907004045534236477236900420781811994652368669654511640795648476878240965356519855311956523515506233640998320318485379298299662717882452502661518637901097846470471673870338031857723843286111260742978168980423208948318548222201186042928006987479963367222247557857283648514256720604202834494580617062785104437484583405026924583648905611787702207929627221438617517035942149152507391778978335251602561086267935753345530092813631968173367670061516133824465137244906016769576154094429944242498581574653217041341642801122678007136628304230304784894251722101724672852217291034891995899304759405034689757383666571072874492517209306333561175842174664158809054564933403656039378784735875226022278351499412882313661548757076614583604004000523803219433791459906537061860455537745369474318633846499245074422146342415602731272131387111062972412345092718675214047400500736630015410058257408929816520053143122096565230397209261730605478085950391348961209606727873601259108231143266523596583045696148102437297937565314029648165825381990819431070549747552548766887917277912022577264053195265285423689193957167521643281189724486864673429948092977730642531285356030325440390570709892464826591874102682119227001939808181489425109291707686879225242784563251165905724114338064374135377945416913205377807577728010997075397587343626682910518850570613335764008437085788905291293349534262092690956309750793238549600062849152778791467889655396427396238599130757840102118783431647924282140334986487521212737583158029108910712285714864056109158164274382855045302462135848753315034876709855465632588737050126025674588133201535692997269476058282057976129261417948483853887246262033520618987604025464148103453624153452496599898212472562333273707695821227668795759518738975304823555253152487538207861999223453147209708222964683154184243695524877517274721305223122192558296383251858247798956223637019043980924737461449943941336164653021881331713111934389317156224403494137255776515085912351327963332979692474400101207610210890168120777774297232582229736994309820981087342115136701382778157038678240000527587138580146357008202985875195190605089774943929870760266043851030879268617610868022859033354875807635137464026944336612375939793632743982552696306443976929309628968140122891222899268514712469129866236127078027907321164697267879195757805186051347489015860112182405018923172589408963352252774917860908557405043096302430126839618386318552360568364989016991888456563964535698513015419413738771077811240522716488924121229721233640438093920877614468396007136835665740965606452814483796312362286209114863817683626834575689486346504166541900314090407294830598426486561287465170264451367615449777631228031442182268490629902176160913487123543699686052540637036177571315089173598093534274706272049495735783103920569831536844254402264760686535495725509661665085947400986651795943385480504680407965795879692408963464288938221826618461319909535584831687691067821633279626630894157360775070205142315686929035793643554926802430989531169665622086809204386978107243112062646716290347203482844863644266642247454952586697402711013678566665171770706068394917378559117318929867263418054236559254787924631495677071332816872719959791783197527475269514829314545620538249529838404950244760899130567806433814823764598713243616078324203529053546832677500825576708867524602875532762661665420303034058471908497830926333473021832675425353835230346616336197216790446212776854003889773454903934408922366397953068350134731461561172588908759814719257538272978509068203206757027872553974300126498844348524035254653135652713142221343089050072515652135065253649487744484964040186287165450757720661759291108062946881275303805184329673612456565453600493907015709214368055252550248209403434493511735670420212947376818154982735802043573922285235025148027348400000798671071721077274461583767856169226297558274948914814690230297427781589110107994676778047601825453874106630155749206337239424143033355452011703759341812086833763444851950129206637379043404210064794711657028483542374523459526586956093718953637545080681484781964701366708676881034156792116584887504469199199046655650806520246287673631125755502731696534146496787244124823368186049544527830270480269552256776375634491088530479135743766487792348665554576671170628879594318330535204509864882916028212354223837024538737714270204128288546601157918246728791629374242475987129469744440403098416422721072219484116727614575107230439562982469375152153748648975432211796971415854529696404892166559785893939525285689779299175525013366503562621404468561090533391855375970993877054794896309881993643659099601503208133739862497042822614377078428365144995121473066988140713463242105737717025893662259498822029982840521411732005636022583051966586275429829356738005597058412562885399239595818974845416394845693881275746361881412025284687272777255597920647688893668744593785719421689027355579899986557892535445794652136644157724063334436842044419792437799387711661399594339421394907195984542933698515114232589447594275644204022503147710183196713162711435173521172898589623199293416167189629181576308992163384261686901187602122236733341059145808674825521810077810927688668118864894301855295836086242011782404123871814711278649429468370878137968647230634134443107424127669964905273746699916790557166429474777245648839521764752009366079877072011193259803076682214930230409539837914477317478033338581678462583859276473045006393619706541736637545896475395610444396742682459836330230069563142380998114915235751291027663842050202807102892414331153197210202905561048501548518418509390156360407023245985591241006811802358942023079687157746687917251052257592769379989238743768242351960930307954321031084491783587442903561662485587621802360444430644096133735061863683270428540675523644179411132670074167591069479973625929757342812932729826850176834234161865758282449249870248677107247019341999911929831066013936399399313221296200418981280929479820030284356145253605593886001363866057040192374025133142112587830213090918335137345503068679684128934936065548552647674847588661368063373767527252947309641703453558079876715118077840857833365380853736459135248855444166782587596646892081726023666058862690200982654164248529582314904384690070326278115853512768953970583352599331970126673201009521289350645854310900247690177675395108490311208644717293048721559725636329239766136924692249669952004636178508325224150669163580397753929959959548953688292706574623389815425117477300095215180556243433279652856261564440731765402041243994852958467409438950641651119083668984952455701000394920030684132947123365039968253416947074743947678021456554514870179454723054729812995556374663947713443997553824589616426332056890604396967730932797123581622502748845332075613246576157885789438395143314733436174758677580116186677546270539092581575405990771731516426883640413459198124947821700443939254296368113871412298106009798392322575486756860860934605565960020463626036016700362132872139390421728996123921873549663292560575359451985255064874387417907251757506023925189854876123950034699157654573307770975590317376919798207468197514008409190011257046878420207375990194063699112148593844875971043479328248326583570064793223073665309781665572631654991891023808674147879740595960177444795455291224733227973619867317428642913591486023386875565065911278846042266641391249649793974790637700549758724111433910120923657592667208268814677785989702801129287373648702810942782434791393431308348256297829905811388902874270688307999772321151261060765320024142693623031734139130758451313951053380902130224163865497837501256007722387120487492770191868810134782994368178984511052614329524232296362058328525807907562359000799194483658205088822348513915285284244110896616207532800249637982552366708190143428355902322419265379038048533428415474358207272846855141221475168906222554108735259540744157920273416450553916768489338898109595522017449322590914835127214945871121747643915824885258319845513856782953464186218512943256773120255572979017932659528530035936273793570104633612593578849735497114614264997523964528863450771164625538032190823960249718210971308122883719597908475003653797126248451486511255207994224624485101298365222266680965722274322914032129341050293287042322560396836379564545281997349574298253417355521759680676319267560559962647923903414860202166662915688673241759092594080438337966281725785438448103171392235978914019125718084036789863460856555799446591265245459002459428667161210301446021318700391446838443232805431979184397529830001396041277963564855156326922845114381905781522201356397532645401348560817725612957086210057664038242584631895544671499234698543347239710873238947285765946256858944568840270008039352631358972797344172091341013392188074315384962342839743954712862943185911502925236114178295503031062868487853403542773788238770519825998722476526216814842740363253694826744897035341450574679646711547358493142703015682504815423640223851548413114317033654366292977367796072594040686813608638193706027176155247288965154741035259562800816999282196376507480908563036838404703278544342122604945124949381482290897643315715037776046328836272196832089765254044035711376256004839032320305326003567818509345701545692527409449760203193322579963158902387690485792378939203659417444507446297094917519644232049565316327249579223460054968872780701963818833652646045830639937495656145237718854644469900963201442153341335766888435850824523169781586838645809758198733129622223660043142971553762885364501986499669027617654800783600432301999521272074533408981378928726705295103174072304972472349266657098102997571609496977440887054295879494217243270946197769295294355261617774631437314513162108200030599471700131382987201905227077855507467778731399445679715117605314028430469994855052676739758261692130875378232988512960696723941840339892407452555431145411176339292214192017320309197599942186927744722721085746776456387383542453514182254888520959546329242654127637510634668810844743649181493438987787531104483532832555574242320975169643567182203589826338943957378383778230207703768481991585210100946566438669330561704692511578891881012773841728706840908113750217580413250690242791485298300151782708481234595605848187311183817103900769932821309411102804798205483427670988932540322748625858357603105616251442825663828109763485265122093835374559068592663570894395965578135986043853892832359541932098843897492013275170794389806275391744735543294524479591722478766506672305608785121553084312828728247912356475800290012590815706496449698835039599972462732384530293007672284005172460054157791293079134859788995245840762763979794647610086010960216863433645740156801185361908196329718178564350060345053313664378140955185974469102645399816432263351394338518303853123980516369426286801737616727201731445669924913667372255014191235707673561422283162477987509887428353117672086681595422550272673561301043190616567275693920624012721158106941006271748989332220549980591824342799479578750052257040118651339493092497359594108969613951536395084611637675116630573518818886945251500811473609930193834262278920126810323243368457986397023625967424156383933808357596750550710268207970846163715769080974853463270028664485495581600166795374347085644535553782247893196360293667645775644272781249593873345797776380691036546038060541926848535017448202535895780211239873462133998016196239918696633594643536747947690076562891165271851745127895876067099885237764715650741429848672035172631646202166931219255085963530742565805307724402732620766286754471683129963107584313418138768577224585215155026247741798003997177462920247674831137235189749196726892792776545642890691344212779305583833018571998378798371104531030987853216249024603940032614501029253331891436120182723764316590060247571377211038991825214923275164998248107718675921344220214238943565905817977677927263686161507620000575373948130414201444880053065023051255903063816258481046862916313616085995925933986782940225094106311785322330611229365577162354936640278972676683646368734130491860200861879098676413935915769364670772429084840650201582341254400172102234552593152067307337441677248721394921343670711837227606089279186519907327182100696962615610286146922251232141360714108743676807867112734164462207657129474192046092500855352184250491519872479150422767123321680262577968306151306038140444107491978684140384420167415805512262246154318778935546773635429820251175886722630518436472255232701285066377703049980782245960668178361974253030969900330901926846280957241361616727272232686176350536437246386220329563958100967186281171361508070470195843077008653944022722093587045910374855918373846075216533638849040134410286122473096188255864851608370711821712067680065433079497295344176915096632015775285794353686031861695053416747897469240744838616899480551538597697280195327109911355721755519725208082069443884736004378630005552552458132246470933266166160754561496283549961464609567326871126932499178155755461036159450682013455925206221469792162602554549407056192262833934756251501783904533884835475510181869489311413320011512459870288330675105388846604791698394074251471175164046531265290529344400382349368857632547303803367888234135305742271443391572864729473242455147084417498796895951547033185861663755680330475775596302477795792804983987952417724099907807514397826453772469457092994272105468026479078535940590275675903369713072979337447027017939562118246715427234950774650270489039333344306777743277615944020225570049461373811474200786060998129355111017446509078324830761823744364694666967619301377549137328765023832697964168608407482475617415052373255250667876418523907050999028827246817030376706111322295149562111830236015355921023610264411427829278387398345673582647836048194095075475304143972045152349136330324466528301311616544518509358622609082429445230687083204171101208470633482660932524412917667709770682151908420801400159876323108544759779889180758966242425763015700908766816257137262687692109480549606214600870337861324010754368789209123718937202321298584415655017556493319848115549750098449865813843681108259766096701827472542357776845746660379290202434714993452027291993700600803161193099796838299450558183904420253328894159315945412462399995316211645983057621560914467842114548157649368166638237432106482085291458924255313685872172546828010491405180819947166560357039720797445189092505722676970105108364223241708309958311838574476840646542685683511421629088768498657320761834960341534988633900198683578641679436031897118596544392703692693145612181357023057997192232098782099816588119228006569398465304997258273956832625007594262542518813446086614053125330517383721641139981916173429160534514470693524716358296941994280311734825354253766989297351955850361800969914623389930317907888301475534888966500551046687167077514558758289943494835842177763415413805911264421718492098126069944179660196956739930086998569129795357274969962144044766702261987701325174632029937527378243775438572779194298742966561757452715815853549512643966533542749060177730846161512703994630534764939833514218150826498796926218883336845012490722568982044371928321428939246541056882024409049354900233874153749892147347099230280136086548468019998804794129011582872959748735246157134562346693475006108280906790560851631933192455694990935693985555585890964533992854733770044546106324829751001024985844343652620913115749160466387469090014083881684884668850298115369889424826345143891806350281716055577025350485285869450683037425875999479679893988440211683003454309561946847425982540246185667782955739617661504310438931062476215974899209265596092976197614396383521739152850333033476829039529692854566085072505896617704405218964878424577568594120329211207510325929276589936885616797495080591171557671846591082638760357755908425755597242127771365625349251925956841729935851846985606085556156818450263560626362443189988444899493469016742884934616139752060718966541337018590673156782481942000226854698676334826033399851586614908268948426748163155810052385872595492630540750002563282624861335536198271701087165587250404783643950744669166646067178023971446020806718116442586652588661600202291991122850955437750916335881353405799417395687800253155788395359578853129860032014329183456691051588186675118907561658282466660205648344169402951452428127880244924678536910635962700983824629630617878818583352940398865005157207758801982977045011556021424004650021143164543610960828102316517924684714929049578192671573831397389446208723948135901324998312253838501590003725203124208413678132134943984567902467171674567547618544900426104308805395622858608524484354947572149220426816601319042964479176506388519763507908429200658037951486289507089805660775484200270155094054840044503526176843612024305492764583829223143658132359673591922244864986014493979506988569902927973755421732992367779525380609944366651854139473674719859932451783824661435778493337818105054768019629674962742252956813425228220203472298809537337648305327573708086919315005729605726317696359910028866036696802993265289977526684591855615345397472252387259254524566727359084814462003031956445555034156876653011636855464849809442929477566195908188330587559666185470336419422419050267187934416396875813346153350722342099985811251032242664167663094324460482463620975491447661504192361044766931622702621299826411485994441511723239831822308165173862283506377929233492520721281189410952177864980248984338853390435318992039026406361875395350817883125754366577480632263400618419463945843589244007849702637156968980558196120326443549002156774923102795471766955739845880600998742497467673575838097450414721246528486920745843920094829950307069240653852832862154086873513755488924132201173236967339274380445269204633279312482483052064777734363021152752306960261712443920969339336785414952051779667077121486815695401163755924452796194057723923048076549518328589939512812496950624271012656049798143861378871078969706069253178499327081091257182200750700557508006140854082988703126172342929996089762577393292544330368299297458690808825707044068662864303175642211782153830199471280572207190534312004081037537703487162402601400126867165276539601450916040061166873051521033171592933770440869632422415972700890203444685753925647434014575252318769975676334804551110535708112640211727049300787425717402210757869612251789439164411087861690175576491109975949924217765211461544240145907972012572950474866387348606608173936354005777093424728293142280812356433236747701834678394773596745954338813843693634467303824442696990850917450078436790221171758435035456962337578595147476529531529445819991771610163382149885749962140095187043388662940417345007383137555338140827348367039525521599679934876602867931329643329361524026923473272527315243954893154808453377197902682198132783135628896283782796092478079883483578757337276934058413177771635349748845066702196437254758462568969440389514952903786128108493379012550776714454510711358238456032338749486615343392836316545551147369550932140852270803480484373690174579945202071798002742492479862288725105472589719741559811160065071168767595815924189497274088890092044835031268574608621780566379863085591045108681835380544640323371724638105376934157152361756237965814618076623594108263069691995702371964845089392341428191357357862723501748204159671319447429787464515397682395839948624822567486542551061537197155437349365739137693638888693659672736829121619171047889903252664470761392252268224557005303221205261711185218740723472022518253061393902112519940627342343506864252718053012541643683400993717601792650115338261337305052630181342195943292533631725473608173720119019383644095474844158416115024372836013773289127171005966342219516972255554217135338295250606387928116720460759544229592486484340609101721788014094115642651188998313311038631638681461533640464961227561388750687419752536305184279430150137084131076400289055444164901386606576206357868979699902279012973417918674152533739827712464135872170911921433088615868061795479980033056691349111536213527618072215768908628928223997543238982927039928508922562303840531871177393936477523502009358150157253499762612406515942743920250049765938235936909849646145503222834158383168659723801000251369455532043603551047061370079486361745392225227134760487520509785850259563342301847846147692139841979746983115729066955241981122156621666955855148433519396200345546468004475212717230999246032535674225344875105404466346651147051759850688415837575911243779198227419429847760959917999135167050461753431263002208382689956584218635535224654355330315237807637527115821910260036030062881039049405775532329586417504996231123952472452540642710801577078464737097161540282357842839372963923056415289662262453473941161226966375099506306168419730292567253889960681691476418644273299045688635562788807213447619009221745438622908616632059489126913854747320443256777769121082140902951288610087768470418729336857527335948881082434930150624765139995093381665408490295365381382513159165805138505817867126951394998820801250552937882758208349524382130663170544030317367870181640657538605060343549099654323707669952841722734918335269296349348199787027618586777639681433193846302417952553921814159002819128890818071898140021618124400061143175195214986285255594831992458788340137610008137486637621555417945803302525058400898233868607875546740501953662372192083638868243413359558094357351348194592193979017985241467198127002287430236943283785865317362996442140237296936134269162097246284250655542400905859712761225172785167537669024889507661723944394040636415847179313754044447846677488212067310729404569998281941140444151511490918589088233820505337277872715968251202968978355294141605917132424823330926453502819728797346763734267313309382257341598634444440175309125773629478966918350555944973313073221104522904106428710390277530309889395050077963100912135808713636569542775651914811267810529702039706619797020500242842960018031149181193954244682407258983622662191652363601490102025001034802724499827119032093238014531559536136986433368813293158996136046399524080395637757943769620991461400752226440641471940216285688089206563122477804138321009198170930745224465707837432360265786476093055866055121525424523875416932083021359642151567851996953753248498049606489997237927512518648918742299662519998178301761741525154181879512050846323954784777450383877333994570339645377384252225382843268183133299030023027759203962841403200972773689940746801999320023127103119286408768622684678424563541330948270497736924519202114373838575478943018549757659110909331383719893035755216284707988461354632152074918639011198406743434671424486556276156541184423771829787370744716226846672025889296558363233474048778881762078623931484166644607602390945330953003313644013972686663592406210204138735694323455796570354429139582172437404252532590667877611116524404153058579841740675437737788321911220832538659913878337976519636157090198737136595660727124898220668407353038956995791248281842020806676442363625382263825675857126579055844854793774766244284875229755478523030034507290304894436857093676570726141440235567177165215250399057371107626945487639031792267496714161069969329272305527738691231373814019683674041415870952203448786947897336731706586868146073416265852071671791991896842238566845160738589801037995847369763712846331278355063072819761586707898349576114452758773959417749328360134323674530981025568356983560788687815925614993066341671563855435615819202040702212313950500167834810693323546350458924956368672835771729114303300919873698987805417470152751044117235661103202263696215541038064099929683399801983367927470010614635531141830509026152870357299115396653458970889819082216148444338316810923040853292426551280995195054083168446655280892415049379546381594638081066567020032416808274898694339656246413538408196165355355110267262422623738515061694655959232604078210482361535989982396527161594487883169164479758556331496469119746533718748131020242113871669799353925593255720285842501395193801055348396287779721737006172756532052287995215954638049747591240310582942239185818930123637124271260965254324594583467049082206303660558960228495003302417988271170886266239707069984423058526486766192101662727169657892182010042662173585775801618116461154840788399873926223376242890286636543779045262645447165418746737199513815636454976289746056199206523412196068778567034306413136679046411333214826662544816930632243324638543795320702409484621127802579076776089171017867780768591101025997680732916441849052286279221461107709214760144723744151003579645945733725629464303370592851232317383067423407137767289023162391901145945288161927566718541071116368185993036421580451489920557167402826534768196161984489083171820454022070783573095970815533523302285015202746436120620594890467598464821676613630335546048181101831452883817992199664165011409471667410705288130545620054825096225166129754186555420523956713507784209233605745705428249612429412656531030059681684919890962411460842372736805988747699363942339181386825802538001628905996625460821603562624460613538804089491923741704942454419239604440744883910521430852844230224905213033239936258911481350955025798323145220661018999977103938994859509089125454246661351955739593591480874977540246676660494413812678974355705285215889302254896423265613964750165994869466894914374570297645715471692417413854026196603324705119606292174731723598118189764926780112339463028394703485118176595550995045194423472053696666409870650781139399347413410707928922010056147214318827655657478777205593606631062034827449939588112439355436652071294282122723452229276370258116669466651685923129943476641353301028517770376476923254779092547320969849109797815869960315216830992494428650275239498461157930827585291660156422647794856570368618662522085012124805260496823035493498054501395998397789229052733291729775805801551790470163321083681567299199380931538792132736052144654071492217782902205824578510683534524836315975605832958540017459907932595131134523391295759930465721546342320650606646148405465483289649398812913148691567598534973644496325627910542411777511664067406949195356770216893870985548433766356299349992340958276673284161133196242612348339306088824426071350515039472748210168732877932522160718777340270321035029804828524123796057700853847255606384147880437261260686786251084128719172225099760017525536800456083522212318724017536090469048232380097989900027874585529341697150860802148060456795491269064735027274927419738085647309806391281745066233817257826240270227831534738568035754463663935677684956846595592686276668780370668427252292736459991716272276774603769955262693729625213401204566531739632032599043560116406794500611174392747711973779817161371280007965406795409356591665314637024231956416499815432495132938297762734462171548441451094429175028082179371049737533897386911209396525625206114079620077625416426313119255829029303640499254133229154209037860628306573189316750723916295025427432985816255858696310143098263142765361988686638253501854538066407189586706076085006281216028369081312180289708157683639375126632463156778917929955636290216490082122629606511478844503333074322403089157302353949337159289145009476009693906499191655725698107534351074817848265212897182583682779866129557694551604973419575119399395691079240904463094473576198484656843692186951433254037757868971742271932826968811246095883354772829826338542383992968857934627120427576458756793615835797658329737065304132897681372340819474202855913828742630413116603596485330577119750360416455874145422199485236972782835064765539483460565165465881527028264143880580714373706991760044769514637581219635888220560895555319152151766030217930408666132496234817984008587747339518525362419286188488925661322902730714708550074414548528108584264621730979446048365754049599783596599280926546733601399384690254655073892566563523437984732225595150460469877802243218239148817296368316849767764468022394659358717872610589570656641108696902906524297468466094581340957078470773759654952650213463242816938468220989618464669436043248025952967545231567475950097126999346250133462040276294611512505894507254946414267921488277369653376285934332028079992650463082859819136239512758501129800954810877621415381283832874603099545017576759091339248661038300354140625004623720175757953697222129276281511276942519167777898969971364635021396872697873019412454516553988008734630085822873047441478051265439679748917761005225466147880977745505483763492900084528067517227735395539357519168952794195659468205132134983765281948197196611816391101109045763411728339754868538070634810076796183302523355697075307203309222135657910379822349611857918688921268230257438998615968088328289040534258765197338120082481450305640094470341408735621557342375884480116875412025122235088467081009735989665945520956682036767596524322687715215636955070276187958141158089035114037749268103259273321829691284241503425432922016732698202425947521300731224233700913603229616218930297645716828832109574676824606602489304813938332433725205825708012095543771990687461225775371929929108054608540530167455953987660919136424270283006586282561321570376726277552208411168254374512555550746786477904363774597954041730995794579042660728762537335231872144461456991067037386543916253913353202326651908984768452259891621643344714578511435353098707715030805051896595716313130601289585239700568285586988410094352285620640131873384315570515344314208969811216989475479685151164151653157494494981663764169779300144069054766701080180561922921690447544926066964080045091072745368337307112959350172666214304653741986626799182632974882087722510703403642263793676655005187023095288700483233174799311911568739145270606685420974877467995119322645151221572849769852279860264386674725808333694562331679280014547646221702341318925898935537654172161676591518498037120571122864904291938876402964051969758447689221307479962539185386779480534804775092197733423545380774706940563544115547860012684552360598890477779031109744328040656095472807519424762171977422517920209130669293811972777343878318199171973390755126783666200016906303854801333890907385202972456211218007228684022178530965886138475276716841658419923579964615404921524873251225114842373069062720973874056974666035129469984026115718094167275394577792470659806632041070963446928856264782318598615551359331119544107652352342716234940656501432143588217214590879388459944808880940765505129281755628704363905149330113956137142308064215807483037422962532548884104728393292093018317419840838202806493436016292593758793070426221655533903248195861232185673834309866909828630856181253935584478254991364779826599223213552726518668787501668026786707156877098715349231076414918732606746511761527733936168685507481065787932045974860267347666398933625402666386397896196174696945017250034643004821871684984925819156409245531421218609127409235618568232533990876249178657912837442235757143209650580300334811116187387078696027484666306810370503837223982676854030750282913151887422952902796934779779846018541602365046169962108881224789093343677763911395617374501300143577586426358333132899782584708070045909299735221359692601812031920913947219970270344787822681152542495755037417715444779800843376968758779774004029178415920589010866644969267923624044971852621714499476040601251736877170493954687241305865800402220192636558022488567308263448673147381934376132415569166724454383204717403441300899608747208254579502780293041517474415961483121286819912277712337057931445785045681641748919687166685862171681507373499606723878515969653222174846880754579531246239928207785028168378084490426486578765020746035588734838364357578367911783685439767621302695139100287580694748404024156267882893074792493054523180326833929944164897590117351909494650389772760509734275916299297924140644538330655186964741058027184470571449721773124291620638570817046117335839031703338586862898641205113452716795339512868616932689671764581679236256351883698904916635962874492125320494785000861571625569202478614152164809458678834962736333992296924591840574080877057594054569761550965407111285952298772039261984673734103026524964266240638801783240351421788145508784503626601100165945762428142941892023885632061395812495191413805377157917795957229831723913844814558480620761459180579522380757365583523967660786301446905977632253890512210554738822066801298925091831044936341722712054272843813158135467155328042610390429923111851013231992316170611181506107187775002298813716138106542785030510422291707813488868035399687429480971814515462763401162775870273975512514968361099352498154270628830591014282147780459960289287268191237573109594740047931807093968869178080592547730313073304941325723263525647308620492374013490485326216127993139119415487118521174881696104947494124683071514777436246472972629955916495282061777794257282582371984385492749200280440350408321011822661009310106097781709231785034927108929139690763098315159366476314026368939321767033816617144490275611909963575121899494108013671146855905401150739060772261982576212915505490828678451119720135301268648206673010493170070353532559134215542987122272713721501863116772944648056124400414259166027933450959861789625101794089424574950688005824967241676951786727456072609538250546073704299910386742366747713436345647648162708224058443940693567109261070098667668750623807374866270271211109238238574033177896448175639609579931928477974056451566069731366629296639389815677561834860773026700134052117085974178724239017934583367796577782339928810830666480500822245395038844506256548824209277777422737477902031083011299328272977740309416138675419144695623559946384664391146530695761870560300406388415007635087954489477006207249110702861218935693231041223962267059906710935753843743516378884875556021466218823930206290189372470609458572824884627650977718449940359908373502840062176059547906687470772844502593251822223140701495534581773309147903818389026154074738372598148234468743310369366772647311975086659082070703733493438061935290397784442236070584141064371671233936768714489385175462000210494840707317710296798821437302541063077384731198982482873895487803165461278309468536718297133219474816814962241178463533757969725199510632936079410172980856291088372215863831104517055578196752191035631414221543724402850223476983700810925417948874996129736405711556732966466902280361744193082944128364464132412539599841863145871925169381466058046179815540514776204836426521438837038389266798127365789590303454877413457924592406925970680842244416713412744911104298383407390762765318635014229701312795143389403546561523650475430277116292334864016680234589050928886695872414070784840764261432219751474498204823975111236772129657813183487177302997592429082412548377727480058857661241085415384340552920986871716401138022225966044076598613687788728766739946651708158198896354442808750911594325797718133175194431913513568119249585439014090066113809399112658262307627909803506783862302699482961637598294499003977198885361547539991756047476425275152571188693576341132907010376969846596512286112043330441352214031457767038857642437957364300898893896932743656071374001966165530463668270851911331760182673558265733155858426830613061720849937037139309040532861858261703165783869671498930809050440376055395195942810067864768831367089648843900429123585938332066313838016672478183714165627307910087229695843520983894749336975938806596977653256241713498013736194699026293197257009123919244767735306968755685304476602186909568838915889660126659126731124409145198380667611727981618891172935742113663482875649791440529616604629309602574229189161137438447623814997785035504236337520507182197164662564659092278991865786047640413158289847045351813176436815435871333344504780817149481766194966459208740619175367620241637274457519317884024092121666514052325731679682324817107040164881901603944858773539998846922911685884221908756593934803759456556492172786912205456797390964020656837825170464889629039661315101127853734019791619987054001073823146876087716969614449247567613386890046611136044300006320505554857711248815974705813570696248437523663763299287747218974865153552641757069678523223066936578048514550032512307355082806158609353031948844811992974887749416936567125545707571399708202346827531142312392141332072250433336037480887333376826560096493497490819406251951457399137144964565862246932950747461029709343244214708148606244152251074756729456480490274531244592535124634379553888737897040573400379607781875982576010472181364852313536340676541993149743395492851193786232970268031316893144838538580788359641227539162628603652414736937352369290349502771328251937670193024630415879413300611374455257870898663112881809635955116343219128884353340842111873558734993587618238313317734776369354822177314366986917260152773493902706265087277331385252870185464925649011738290641724604088800038575903716395426338731068596725739994120445748008734890379218486873071360134830207704148397345733794599161756899637137972636919210577323496430705963322425985321649395911314684186756525572804645626872149493108070326910911595058266785394851878541889845513424359558196425470421292077290384368080383891715166192991261009283400678942735749872784630817914035987619213776992871644169423879784231509652838648540078920922977337772747496739385858821956218247024489964451197499117184664840012657916739030609356355301838786062046227100418325021952201806177661649852099891536875471500317775062378692048301050178611137297087609667729628157245431256945162217484825858877211171068410053498340678997421344686062143381312567729913016877559271319006711354539855535885457841613272418920139365738305722625901687604943962172924484734720704039555427175152683243544435517333898175268019791068392709540687191997403027142857789809391095114010320493552275761968366033930584717353725513165616549478301737570490851963828924892665527153617812923478716913310875173939815448920897675058809640409625172068815982237805862524311030957933669816215909183562805971997167006524135222470825837009207289090158533689096744686912048813148794168770716386403544706887712584881961051121997481807887050478129358417259411894564281788803036040018781518425832279332358136073166710678232525499441911423000064343896591401116199520386753032469443667350882436426428822369266923816936502453652074009180321075339162794181192970656515155974927324433715281708067033261753172374609422235151720699400819458489234649117971214353845852656846361730006954079784345434303270548145009236560115109509139721396193140535662192347612907212748445153774783873992387493538360879273190738283399421038922784263931665364276029863272512624627470193897940172600790693935092828748044674501991628320867911397474333846260455667395352533608101255389021122370042540780491660472995790314786895597022781141809882260290181348622847641960064325748249588517653094831986767975353389277606342555297038752089918289881629521075669105376915567233034268733685614152385892702092073472809298399378642883965836814813847608351143942944314269145851538782096009751688374445608126894478020059348270522254832200346881021378325401129341019129132724701036989391626422618109940959045783439385216765841559011919254979041043440370827407851902663722641032790836555040844421168491990634320759289703045542289684030699945100346249118680582788869163576721142295693479431413348147596986408524698583201124717116719272528087256880680864031355783630373680147179027674519860872555459727531026696400347646646202727374576074042991092866370048572634840274228785052112004278399317412429588068460880984669879050461712593639571317323320391648984812192398225358488139458239208564159914267312174133535196074470661287656798964713433093709075802500386968192741606728361653467893267708892002944761765759477479351363881144004700895492389271123984460048367778216641700568292444507908419872026241241604737111052203187984962295312610875599118323580034657520622287280245519624655616828341394339695011267368361854277598498772199761273976039236993764104379662717856903291593512109006149754196800373336446233773295822651920772627567601925517460283551283583880210584198610573529794135508263452794161335977401638959117551411055916247037253048991562316138053838200529636266320763340342106305662903078896772533037556407104145222949749206469509610788300027993994134640411028067207570051269707004665801503469433141875526302775638408286829260022624100756229353893951475139497014721534369974978153964011391030279581890962704858355136041308719134333324824948791600987586058815995987280427602301408631171866730082212100260462145543008079120134052748518578932313893626756768318764783915272060717601484333384612175541140059480780551195111833023407854593762058241408247700971022793831193233885970818927345083527750940830712694099974290886205766011229144956542812292629843937815780547348594297365411973510795606993035760156598566113173660723049588872201721795715508303000568116563168010390714298201461469612898154360820795026391078287800903807713759992540372498935024497914690337784978177611688164239238134659332127741366285735339722430254810109469161621421989667287843739220879995205876983970346163775695594326147905288996015088985548415614046343338082105849338132788148352785589274308854123142512636776646709210904949187633776695393514054235471999707357092457103897813023138703791477468922817477928965363113852371373414239746138249259276565883033941044193246849883785671439290381131066871156619598277118262301520265515359053734067407812351038378473910689578421816292586737523508456319210343295611931300148460196989992327379393553324004206478794582558963512099301108301914277366124125429390424700341992931118212723766027485597765863041715391783838099899762766927666543841128151125857952139971015644730485715652596489425067706524825543513599657005210981090181977272930839089787548272630046610180813736207099458728749469463999730006403920524640902599377338420807725513239655939341201554781874941387466200530864914602274115141755438422542271813874119427799207691913601869330903965196543520523375838327648652615373844294246457878889521824315825248673746910911925232740248150474623914928285294693200712051538955158130782860878466457474491868196504172699975277632206227841853846407595531586501112698120250789002328154751491392375799742678484499005334219547141378023700361505565437277842987945901374798888364857007986950965298303306384980478184492252566919536400370793635691468272947433013136725035416654642423835182607772058430033227333291743976446361716302420195657487618091032538843741676003825754924552758039375566620125060034406309448765351417255049000986564183171056559496902063614692637122653558202523630761602737334715794879164956675460381308614109333549211510951865106302018750285898138387672302993369379090435170470022014227953731674051493357871582232084597335247410340837043021919081605698175157172138398978677409203884202597600742310280171028458321093517678397716598283639973215473526360808358181895616104144637153602488038946871135297739753126425738095988724912972494991498743238214527999873064260604020891544051974079515933863037319313556501509608827421266916949654273215156367125000300448862669188654072359593346596078564268999655804909015846178853383040734549501435521281997014102380241195777461272591418036347936685713671678536606531062648388908182141326345460168495786209881945847946468689691073543981836217246254659737378603907087584268783241549739576168633747681078458520949396408799618511014505715642902079626469973151888525554322049131348943595905842971887693110993137688742764551805715558236624860528059179958372311885008412833502533378241970892044309194251043790176002268473520808675461472377530390370903883984311211477623253247044409965064265356133761553978118547227480589322639377026021582386501032680510507092554292516320220166463159262466197939631514837326980699007632979365918632992869873491713388171322217333649561759847642234732532328231329492599534835266090353648764660319815068357918947080549125549421811100258351223028152495044742478234496461749804997137809512405571597808095348351247003119455374149164473736962860957105546208253581544580946889215038749256662054793404282814702900762362157372694947479311849272295688188231125315835556976192496630087599007694012239925785564811643110440110956879171117593224653295834085781276881856519027706870294427049631590561361157248909027360536651969630790288774758284483597159167813606430686210373770948786448022383551471456052098607761933839545047049665812072935460703081315598822683693815282879498864890556924827133245247864747515334981771811983228305612565788722454110900846254148095188304849554000333746126494985914416503926843476629745842892146104151477742075553843484002799492926274977134391650087066301438072810089608453937107203752745581573852998925546149110543122048690565849243596729472199874793898947155717681836268468007995140404306367663270952408059953674543424956456062975353744781357731980767441556476076365089375716609895390970182053974134033580322069207102100377336800970161587279978622831787785407417799655003613315805040803352420793749174624176128768175847146868347757167208185646478112136210404802782301038140779875247903445153950199547105628188829763992291316098029685878402735055316337260417618258306984840002616511673123063227593197020676430497771183394777694566161410083575514401315012727318244823982082221151482631005093533485814874161319641060448988695439085043770319607547816982712088252332139517905739782484720666824724837943615101228533529433961605116959534140180028797482062861625434090425315471829977769466599188282428836551522076632329695389270295956872636131382260597060329545331794979536443764449687909032275481716953766876604845298185882780337192615927083155060906657323605746030638387518281108552913904639224624680461184433346267910299270216283577804303810971507194674002312258607483140025526871432987463147639748328408565993193665933294294129147845836412942244907563778636569386698116659248306125797727780787103767226717514221098769041783984743085037890298025260711761196637670685771786775768498906634877332341102329261652549235779803776630492051043694135014542023662361767599281351343789114698370159866093671135314990860955969797725019785721130873031094952599040479690883070674250211841975916689814092815019251817642761582387468061684484636901051914197167989947123544980251929010426650503306775822828902115713551454119636628153872766073439926447915950784206646043121441459509940176743803550342258702112633838258877820284918175359868799518035702793298342827490808197503344876328913228599175919032524390539249958898338438586865821768532790323753717121058845310532318391049543630253661315462989855644667283591678619108967524840152062559887391892621857737279579169505334653584912439191437324992585015332382447532857489302691168008088396736821541181495336744391684264859438724229221899187710428514599678174726099632413657510674279604689632458676257075089972313814123118082960236180834288565739898724822596198168655681416859157101781376696449744233807942616772851805111200601399357266641456958560673639517292336923042044750677155272161197790386574501921778371438248560833433353911876959844302030291213160927934178090354432764444481483846294225796403418376637475348695454265734052148306284873661628769984481747275234125102358280102717184994101028129107292142457890685118225494027297510190396350100260331479133965910544193244982609112735378074778517754072899506999381361760098170230282353416424676730552553528357290368584435235509741562899074339640968382043311142612457513953740407986187356447806083042042297535692375838516809887793970686654989414379868355134137027342338116569510953308340412708242053831634973794634414554015533118754297728321031716885201578734581024646577641583977240801105883590790906481993855577854483035783805176340236339070902475424979033501634418496914952439931838296314721325509687343509174966122240478630506711692491165478102133363122648014809309622994586407196301132201159480472822388214293634796422422808382344056796871045778006516135074811302695324203329605117374784718964701806077942021931713451152384424678357236003434722464794615724246565600498549887910298406625993402597203485360518157845724239373904557315376031958252160998207383501301925124248217901008594271891757327522569642518170250052127120564021228836190314305050984674699637724763751743442253757900080905192305049454555591712820846152640749250660070457604501197676175123331173505168594719266752156885284555117695265351014281141424749205935428436392315158232619111341346260393513707292268378752552396875519643350700757773992233208867843929498812967954356724777781803536446031562351369359426382706936384367196649680417539708191939832126343271024351403093350818977086285086167988337118722842312445152063332235979278923996771161067503096504151728243460065355521255402396981871984560060646588505938576178693168645443281872904214203168567719809697658483226795015489804740039205727734370351937454192351588064538686623650835646204520956427486856173423602584042729677758594105187256383490210352813090058429669173487025027650487071908473577856832028818826658524000173816735778569598261935698667496540596608681221246056304628794111630725765394720646816009121599337234829225991596026381710109791021547891031580844954650995495128688070310342778090531867506437529087112783173675920498264996284994982803904344095092984322991131052833580379495088568062530142705568913748818889897846069681647672998154570873814803848534262975755266394189504341383966703437774849434082833403392045858383356912855778787771070878423078519625423354626396597140775076588536892633009356357147221561295974024160307509813646578796000796160598998917830081806397465307510746226307536987454993026052442110276292831070421032477541842391425367294586611312481825646140354745922669074195881497231147965281692091207637008883199799734613914738902551256384382877700054229648170406892074180340451322687766457479227830106526407682985718332215470268812383135212850593065851841936951953188413708639462885049021850125799345578997455844393376188194693708286508727115611032363983787172076870485516479167973089884789499321014673478870232064392111352444710157757579406136858533115512083102396862938363881180824018400990674250533522195803735978270678582899815967620973304612739638717428466049623891279785709562627718528392513647597893090447449600777053792103756019576390085162094111580292648691303303747886406538091179012681591111974189986060092926320941359433799495919899359311860387259562909841295571413191920749064695205599885606896512696072987470970651448970313077958476929472487254046098006143951326180712961181710177560518551881824933038540436164164414340187317931485748518309050650578221797281764619906338377182383372237563079534469657799856617992043901423212477019424631976174630211103986562203363893967737374136836504678705293058911835256466691236896905187059306333727516156247991993136780295053309263972133607090759260167874948030460683151260075206733354341436472689069724878433422684981028542907546679487375181127192711293482969799175063835945061572273074165264565589405465448103072317796330310590298372394786607868785075377886618646265737795618235282076573251433160252003682345115321287050680489623072147686035083532153559143733475028147869599130141950380196646902782916887400083299475063284176724219647597436759171470658126584779434307113749587571958990451498059013383802136335707704213606345603823848921813356761139178749134888014989396241812141086234918986392485491920471974385376964238865935286199750915056142498114340335777077762123061483449824370111676608488596434460770932001236269485518223232250597761302078860420094686943880610901877773311856074825959405055022527551780862196603840307798491340764830114390267833224420785687413411783872363696199352655950188225234255281831648149984082546415984977474575703761368592889265090271291962769594922706389961049811062486466094969181950916454675858841880339626909901284711445290489663341582526523977082309135365481134114296799488617045768860755736695825884316823499460889399469418741613020977154844452213454469347599433078762784947538510323776660941955100462673308641478317539713347856300570860991014143551078114189385347471464608094322478141448538418666101309791211275551124978153193923042165735002908291551440084995135046508186262885296225903684488882153990964248242559763134984260547458533070394469372935836485209517822116362528994568835571236525261288697591930170642540481725054047523105616676300570282212017448566551081809789046953548019638596092618673358821859503830119763381551408734510871775646139297845197420701462296324242316995387160562765643726250819092915828654882296952051123819219643907750208519302503814154615594512690093012643890170044500491699498226607687570639003211590668370133086900281582143137081647284024563838604587828609165872183889149411615546178807024411462525338518465694480752444342451379221237947062490010435009486959468257915328850574972856465313876128092577954084296228151117934168879457068143090510630853823359956872207329825052538801155288277572847182615328687295145098704862641973465155260860369116855671570654466210528945118048632595831013998317503927897788263174060474043292780586037668192461039628587560225573428280074036136601957887048205781349193217832455444662680091172496189234246787685880346782000473787816281266083255952792440122777373654484609443758474172391322999081710397986470756843357746435457517397521523115425613480585036358929995269318798333574420371337655994862519927787978938615635962834120054253195656354922811468644792016866728889456483790270275910484482141613369046537300777557479712812010715476403665222360052527417200287525355129650324808415380363506724399924286892393898454562599380727119315884237697329862750084349415731302567722933399320567322776984102525945207154155507901243906341444302849324474113458935969054001802561017715273422208528110134480589355306669474803928549605805749393375828451822294620265839909576070167866319005494126823713308609916630463953584662375199844836835668277965413484158648173009059616163121236143302031782818734314575918321589261722495869834329475453617767854587306131517928758994675879423279508516631281257732232331366798495423009622037820867818669276857839495935022799294910852341285678843940699092626534215284885654166524485094736136401501003725922474200731917963628327295630157247266000135686500957913730655047198807476662626289007001216293606745061695833297560018178646452414640849601191742487700937123079543583978580944929090498784250028331539297926528132760792816862946449120400721502222350586239132711775151438807654453576364742786973908434218956494023657668339722151490387812555855676195437253128636430481853141926712231776866621474317079507857336003407898128167166730305055679663242860616769299033437572033598769664695704360111883310100434990988421268824032518483092698030807452956466900005482019112593330473292224650210863225134703737574794914320348565878396342944668029429855328685506164234157635390472894246184833552694462504043823898203955374207925133618434336051943841434620393438630460031281724564309260226820195580201306549905436548444440367725687942554346330306737353730803415748198160923481970495371838330067111148308850333206198201269047786302120687408117470504846545231015577370505127394219514919186283693307737832702699592155265639512151806128209914745888940476767946209251510919710477611251526330102745120865325953455334146184608222159239756385772951968948747903857160156862600310521444159110107335765093745008992124014115481450137747463029134436966317822615161336723948375752637783698463392987024470338620552014612359964268247753419226156217516424753963847826725752782276149451020316201720824018071654040871613508610944434198666153149690716058428275505602901757716321122309237173717760616608183290641883680460016356852629089801291066749538162455732210941738817860916273225651541083499517983674446361713628998787050988976186884220018313882528995615683650495020400982912123343296314278260201495145397356504938333898410992121251534676260459622267349774281332317922139261840925323358948748703446507568779136201154510089526944258990604523557526212495551826040633451427686492250778337274853498357382407063854407123059013822781710040808294785813235205624098332324177125113400678609105595606481595958960322747523229028088484925350278963247959106492131826431507986753303622022716076709811460622101439250475584540651510128584985797755138216068262978588377031999216724545580324513150212725737284080060229487525344450813313694390059646198195487840383908502510062725277599476765705788797550310418340786428547876802475692382633508730982043366669957881716133090046572296937080127486695365398640516585940946575212058137441762482759772312791978559784764578167341389204125035760100015037203440951637544042953675103029107286654967713246943510605830050290206274496418169019940815274605664909146050248359665418759935178890434690661386063112001603894444477342388287606439719737187397222760092760357076803551719377978717479364611849573596035045537523806566906828838531603613917054534855899578918638256204136893515238602387789711871252552597068787476869698693999597391475331032162693709906571303378880775019263005887557485921576578125782769431680441361333377965854307627856291056413949205351227689153056285732751363376450212340431139858534968278766409016004050354145492950513586996825824143454005650910190627334446372458734669393907323671877963523190442738377208015720312577798696698686769431836922762017791425005992163939456353126082410081462915952433279426772498825790510702632019310540637014711990938097959819571359055712206241123269776440797889590219207672891569410266002299726244010613043184126865562300742127265282267980193315995787534961505082843199540314729136995394124516995203518082053879006351744473688911713510845488371681120922955936141022006841908300616685474899555479842607363823161056225836321407303509973744922900889365559855274239110545088357140716719194856398995460096824641858877047017395594875750439919367101852559960646290676808309950132560282451912195428338751272056320939886874099667672656061722436746210393613227361556212188434651921859912991617153203850417517329413685418974779122497642617057021948810618650467739142510979686567903579431434714048021191259552415271833978066763855090891977038302884851142982952788289158488420642965563760911226576921832624795769715489961047611053643205943639018481373122851270662196064058965362743810540203095314566122348421533477283166078837163013274648075005743773993330053634253540169215867795721311212935024108253089082431219375923924493545904356169509852669242998564095721730591980713776844964026831381338409945874289430094270481553066968042563344201092355402216446342605111310225032543548185519718461599604086281763261945034175333711980144460957742696871903677643421119557031851526058587461936951832538506937687668426182758221363648043182091154623342033781236943733759498288675233680378909065010398306617351550715530614500750792707010588262830395417354697365911470482445828530787992063937149978327997087667385460849225827422187943015444956175261440304526407768791975067258062470400410637638733184539958518152165062018326160882314024847938527176352781746393658619259816308213632843662483910128750808785637339061276552550413142707604624927542545401507610155262658047735717703488185179672402770205137092501815573913558572627980989128166057050865820072295880139336257332295758493226687561437484233683749899205316767588358285365428826212051360737558002012201829999288245565728290151741913704248012240136519090905612504732798747675096241838193949260850616155848300504977571654667172362324634690410689150710212449975051758481845964755648815139440767908374181634326833621286817379275378543859370372710231317046963970683172872191127013824173525848266382852993739068735237915874004249091280082003369125341237682294347294267107516139532086929787107006705905701774763793589921260181850969168828843477216972183578271218205512181914056024557671720767353132830034807229554501410369600382971374019018422644239927454860981016856370563694817355848903081677637011439989575951687419580135546607462773302300363953343494742902807323731575972468536910633616033738691936252429134428557130480447743356166318123373009804004566205975340296427176764809589849261920144487031103902172741129349298790168315772169881387028172239156685331303664468702930092519738939647990032527098359462853565970615397271507169296617442608052232084980946572994411097486019263587171123425408683889271722031724025572678652043292469161971100971665211162439087811782364221581612511512630862750166795921303724746629119155035598381861345281602158756351686416433206950320290178855962860574774235615304040061819362091800561428694626828505270892853928724996205683854413176909867309785170163173536075177089561660569708295050161243270350111937332589322015611755913811933308188065678005209539062533919800784841560950547901242253483770935940087924541198372463417243699494315681551256728027800549633023370296350493217615291482117234251705812915374056057495930986851883602451369272687648211712065529634847839190045100836966572699282205251262009516593095042277213305927851388764606979408605892259271403424076867110536950640504072376462805214007307989434822784811245570068145242407582358501356590749990046618023465284010659138951224991453816090549026158061063257440694520860203085926119764498465028228735783071040904915905008602271502239485731202498012627491221271677010846862234433909380633577010003177439207361038024540253352284016610910282978059998416667087899651141821656584572456872330776475599284055031734144901347535286202575745697054356567212373834730913918414599228077639499317859229221508735688340282244035220817245419228840314596777696964604557373110556246611194983939471520134809216325619999043382768137624708755007427971155096157363610479934600815673565649829735819523323900620019895237359283826444455208435941000859351151038946532710097437684922844998515077172417893700576143047525448732252982746215244289080543179860962036846729932057111540214342936874063358991917455238261467958541459818856471220017947921836843321425684003083755682587562001047402334713416119227902795046918534794539019600260094932119471016966164498965637735225268865154058929435664766502599225335327838388930220748483014955813944969446220639179450675386605493820374940841629259563128032003298877934561391408076215809519773019916300701336650445255590837801973176040138539500377319022107684790469210079711550695764945499332705692626736991744180821607668094465204908348086950303872981128675860406239526700953465796362560600689372610530310645560014702730842793340556301919203411173345109095365243965093236675107414283437749664148003747036570310028587071084626730907967520172420801439371267658896459917377980442752818147280134737771493029908587597287771656195328783540341611768418674674893210304157688020342940635413335065367860363866085795242785970987548626347876993690208970048985325022092850973351631552979697221233159031081255828841659496963551908632613451636282846022998297865264877628153541529082119441403505284655299079006165305627772461126352823391384669182795628545427036856930134393833746454836889922651154567423261737864045621658447532463575394384306567046476558531869598972725200066607900429507960492536618388186639790187668973141180685044928142315486374330921063771702179976535369492007735377804804987919846153457075426116253167682595384639084261143598875398095932575657201281937833421096742898099991043614005830686482628457651277344278935854157368185037062166539215466937717597759135523926677363655158298697224600916847873830159777815673501290188109396360738612182166825884709066036286857542262462409675838030086671110568979678655274961002565085529185523504511524218766634562001550038715183730878939497798864390715613442846942553367525873774263675105730697456488806582030658371281901468181206829837878650215372114811340662940760554165869796811439489038835077570341115219297196084754412652408596431486960998044799193955800080624004770378483043860789270329975265491504826165504350516300323438830977686847707608468502447643073545793630626658059613241690049509634920196917712432888383780546853293823929826723547810039912722312328498507281233584260186221520015636448685792354452703557272565766153261000327707244064755575201770861998601339371358493850394113792744593908630765389871402056802784828099231816258998641680527925802568918657940035440809948455045843876979980997530118300821649372935610230939751030692533900590420205109436316323142240107422957171072680559743334193538307175481854914531756137125384316164816632025879708994954699605267028345206184862758751571316470953640136544839876687073416623333760248785618298763715099306095623279907227889392305799480036526505766028345830910426409182706577111368894224793117207702793734350898768352009059967027158063005210590739480208428280382157290071927263967485685748854586383808757301868367226178544422579444082471546394077440380732402635091246645169619203748212129273469098467739780057198450944002465710397857575551317614739772238122144412652053856039817158486179533044599719126556796146171189838438730819309857081553471268624604451644290452869683197758953198024628134935223391385907104822405579475122433710363663721579070907397720328733443411091693908698551102601701326479785227660695046743630590323048774089276795424403780077506958241222860720264751215280020257653093270942835266784910498859418362203886906189879863277260576409545407952901611074722075857018956479767127386406144278143254336278538431514642755189587694404151479610373107114609840648429533591464852649874051770719921081505642402003759585871220540146489129766406445054866809263816921259355533856743040117799414047276703296455293741282434975949696475137451181954137965511945582749553330846083672228850799544330097845508961691889734299863918725064072320729215010770572620622566016933613252488099372887543774998314951763901964527733603267737658383762025356706341637456495097307252853271183839411824318401068573677778934490949448393310105416524661456962798347425518730817485893175267071458363428663480332827211802129690336254281798706101799362312561419170429501330792786996081906313298777859008752786725289625234862783649939780396173118506304758282497556510347661646635986436173766366121463483882996131618066100514759800531291957211468948906137513012970051486874739014841974728029044278640335185571173734474662695284148663403069536481707093197551101579341473607840542484661830580135105925087722976479477211857467141617353054695816573264352227486678589930882202337615686836861398106427189779900225768478384581600738250536601073971325274272022465412513102330954534788587694676845051047113893291066255154717412305082338710033107098063300607764709259089753896015544903270726662670254082159223254188027379010373658949118657912060438510892396639200440531291014472710715478291847170685969671065545826121290413965511469995875898890727552122840153520699748318167459873485127701069894516689478243893746771408606676544345253292538154525544254449198235436277979901517181080317515472261782678852965228326371211371290726357216657716542418715136138111742827760117848459927846887659604939084814705490929101548962049232169472287354301546113276525195791814449593171907056817950221743581863476368402443600286405534724942036510584379680549550125019149307089449643918769592243811826251843910158126830788992055014445970710275578917949648167357057186000734606497185854349389106269271225135277764212919825324289084279270171062309263351139842872693278961167340336533072855208923106123417082836248693534062492798743726057708148482516144700084009968449997000451273472196644948434779924050679994176963553669489644739561166704935909317349560589546424947984644771717554048867622384999884518367132606102127650748466950707591150255543527049257293975839609550307524868186796212934329109176520474270107417311737838325144460010948546701567585325280416435470086637336477779931368985351880733331349215959415258120888229676004729322858099692223254352485398710383538000496261478328702462246367763272035830280958518736938251436755243356788584252813734127866877863090581782722977585606538667928255226920777616760698096443795100774169918007212789858865284246432069664510034393694259242629158651557788362168722229961392525881340663123805441657739412871512969394786844574779726556614092328307301108113961044523412159242711958090167532182541853404601087964641531676900733744790133356833520054644579158262568573708820039901569280681227392294010662616260050417455015267622439439611824891334940349107019602721927381124826053598864784264772476044627044409857049230995350448101317045187656094736497655313549631901841930571900215178000379235149054574029860410347322240612939449821580284655300801782430499006346833694586314226897598049653793352961797877334596758927405402962254475667081446462719464374318626763791482102954143653676984797949608391714076548269158668868990859888408084138119935155858019649380249161694806048693169579736652789951205553392404510070923310855550044981148103717184844117632112689327204824657929594927198257024296053437163626571116424928413476325110737048773002077731874319239206908413867463731740429419124103762661550419238567416239456870374755370796862854673822907989712291466765047542690805955456451805662054071153135472534412227265110501494341026361923638535005656386550753695962539236789462362953591237905943449932068103191288145111720004785071096094762961150533579918886425318516811312528665824299782011194897456443370920783031614528029168316223006342981656539101583554398691835202369318872904942233190313709175659858648858249694321868863960964457119502148619348482566199856788266014879912316602181017989480688748611795595381769188735282548494198820482764949111230093061070552443233877538977941672510529696731581540167224148734729155121923014726114186662354386896229221313941509624142016429757173475324992672413991591520617694241501569862053670870222170354341874174901397396401557531635202959852796150886706250762142678560116834543576027653686798969494588041831660653085421593640533561301834372361277161674690686209130179302616319303217683680666213274263341376576755046411792979486862237893134833889448302153375602569552622483818907625096973866314437461467525124532634058896934768965445134866897296813491516442370707423459986286279289696591924556924885310050016937898165720865558339892318434276774071845395416615195185594891542420232147380735922341004784931493269717896128280165463128029459218753238603616191088977453602694393480948210992696924086021630709142354995440122576453801926675985584740293601258473739447279356104071289057278662768469018706319865782805340227430793349766002623027056739187719425490864647017388903280156806355591430526743093096489317672075964388545653391715893494882524283588892970331805537974160557045453020761810898690043968255216858882693995169641520164190565409613228748629282606485422428770034723529622573858181498198352907507529317768657061798186606924611192053062836050091269617549635970232415149671604059759315974390182308708609871520214179249364424200365005603215828046130477560275895275083805388108379454136452751714524332984136445094132247696158850971371032561208218952055989456314954693820921916297479211611157683091715438458060017797386231659273945930319652131680665100863149539395715187748151897556899532076133674479967697798293158075481664537248455786680949380621126286191971037782364604802158863486568122061611991568888462057894903522626436499933540676589533424070585691568369117994349706623416535679304695953015074627223799929000618377748175652910504730929258382256878984714561213969766930987709319148144433592388998931217833649608898406432292321321895746318059338706933273404054174177276599496237192853825822868617793889381706697139476752668040372366660771502695806886417533708907539525268918738402683700655449320496102943649523468816253015824165592864543119755800704483591746041574418917277723083951512615495671344993097483684781345573929279325172298321543990461320260568574067154135630164782312835125966657787219930308225643899470557399345247451395685172073853350531624090923058978373465332433858455808155459762317191437020354338284031879042672094701202268616449623382112717357804886230722590878885520428921651135721737567522120154607253465401141565914515735655128163567791156826560474620138723870118338690739108005566449996271023422660509287650919461421436399080974349088792601790981065357098865039511519559472790667337763059011605364358459657420121434717522651493813031503801116427817966395917231103370814366987544271793746713265660797545685024928721084559364752315142452374736907243619681640452302838755422511182880441625805761528836468067983180705619884594130199882124824832513856117983217788503389598257826175915487048315515921144733316413571296381616443667573997457473741721110595784918965529475273556811466085199787092761735250193543439825695793405702100032849875286297584697200820395284791411949213038194651947525491239629328424029786677665840851698077257375618831870767291943236268938205256501673524942248369254977706184730538630221261834803364398222189240316878742259879928286588081121107851157935642147321177999565745680529671636642682269442924997755773352749492246410538323595791811281859845911550631378383698175774829108210502059080533777484188738879870477893479908315445327494514771901922736429064035525415980650731371404842885956750381399985977734087732846307224446699469176963508241726708821709467529603792140111498558874744257906800137193655427916150196802465282002189513738757191083396057188727420065277667775338474741204720666805004694748034719940864371014324897283348088342047574087361562872427049018471204875432786884645716228361024336793275027441167549160524379701471508724004056826138096698179152553237080724062963271466469391367036661527724932626793926539687674519907404779373317707589735699672945374326897372255775713003873850678353562473984224264229914532696258133679587147971187021442680877576316323445926242457473663078307619870272770304693061591216353156233151266890107898561210497935717710682514899254311139230885575567070717038465572329867503647959399794290174723373117938800503792298215266523968632483699176009962700881986925576545134450263537308352277157874894254440676523357470325369828742397890877885033410471385991747211972239106827771205553708291072803506627875322689180499582200375490433490868781320297603499528273779761703309298776743941272601116864209178906648891075879628113653897557504787766920825894416176527615007408654548483137005212279246894577672227738809498840353069332236643800020928917587760225940137953148837274011994225810591677923535865815027244292481693646340332954835129426978901537672096058217729136356066059378501131702904568091707756323553288039765487542390610142195475769291027322989733834498394635365256698568801709242095685477866844596599956386136676138568047521891192658018587165885711942322564159041032910701273351599878079297514511814687060940765297464131199656487355099616861057006304853744352864407481251118533369545300550903134218675812227617621239748661936400045973062349700620285024016426977362739966981915937999501688572807171990782756694496931593555207940615391990300008469454942525513556840636952592078275362019004122418230720604324769749487622153177774908818420622762010063774816984938055241591464056678058644689594374783956165033182502898965532734483438391762284444011387263690019059728424153614959831284803309062152464114542052002385674544452848189576909515270575017406868691822371561871935462764333758101680807061122517795552243364990850924463749756307584601194022865819279610577987180438239509411205871335299281163543939814288319142726220443868850835418741246856192661244425590526093830635667804113728196437853908215971982323279868364489323468847299119743254917746070210583297859413615164251601074507416447896717853702747121531322485912265745717654322423736113660671362528695578667154401360293755106779714916343027682755162024664341347677246429059770200363390688709138261295883519113190300968971906804545849411190518690485867132136718824575809781975019636309881020778702758477987112866544518768579055900074217858382136897337059783030779872955463047506000176202093970974095522841785549081982195581267989540525648341652939773711813214647011707144170565257705834063981235216913849472501001026397823661928951821016419295164724566546266385776370025653767360862183380876283734848339064361986069578012654600535808898108193021045193217003121956930519381028111680996367142016892465177656424158360613550880678416910022470358645941361232050737063145967953707187802761963652431664044348356710867006451456865697810297417105736418850050459080634877687137373680295011974233675977073972443133470222683694033657940325011424766682646002745980164149051383341140657433316823959273010672754624329724489850366107622998455395319339882951832782745081876499415374259137445958326186824551001792006088482409672791710812249881924374671711930848112071246413518204053497575167070566073204175518132089452800140403043307775171080367104689984037467662812875925270144621745110748637657331587693236530890632180618797560748276398372003934150856875210250816291718650939356741429194328080701477277579766656408734859999034921138326940648060889400240239687144019431055308540181400754296800845700755009536610897135735417661732483482563821137140251443932762492425681229164309383656078956208152253661747588226511441383751337004028757569959064448769033427427844331093619363628451563297766168704278038795910714596268177273328984835729597848681784574424210552457552517883527885078523403225960575411510248345491260384024394176411426270591053691988866501476108755672530506283356255349706359231227854740049777123647377645162252327233672714436423301039982258762595949283082309995363925399034941642134073508879096264650998058756188124379827716348052682017133998306945848524264183052150109430924994317048210215365999006815528903397284428084457348719202990728179288335924636376706077177424780569641906839913014567716427217510967871232383625912359214940305060413816214154070597948308621369600273440368077208637677421025998775780416162378805456262423784696166892078961962377416396517916120613724202826223928473189233457004389623227726446730795125064281291483179204378689839761873924830443880568033317074535299201550113113734500430421926196941405228124874753859084533189581782785930899097200478269751160285734912630642899670448356902509100834303771317548755817167310430090170279869163422635122682015304341771614089917492826312375724129738672894385099032120387493696091564482244413466794424302095786638838711096726337127400801198416686589038647214648444761210208977858093334549015523686707728032770095109207323908998145871158022895360517474842011863865820154720383315667147519331249362092099262238094066107656239456189913985574540856421138512299485405074042525163724238994431565923664223558589429529417903554884363773118312865344366510358233772850479334392041798065169488550254620053171546846816337659683455895075277599969323404612053528839650060590980383478310555541038492186486474887598712785884613150457192086128007183913642157767375385690233491462230122531850683132872987456182481943947742057454952618510050306404211163835332513623334837840573515621672109844314285319647837272793772525664259334609614602551542997476175833254295632638267213337642150065774801391487920643859826506028746051887385212444133683717286559963958528648955757941281741066444244322442504188513020288149924623548442074823610732198748672692238063539964835913851216561443189125396636418018414973465684489981133939931790220069131045823019228781222596528736126827268973703955680434078429038313589207579699752969034344061762632163629825597725877358915171569242960629040245433338002209059116115444697733148880018865654150426364850790787581729621543185158241315102084284465749977807026818255998544081468443125939141570946040811106315638214039456880943471151880494442057489538332985831256794458219171813315019399438409108305845459792241317219065656957767349778287631842276247867140855713557573452186290881520657543167533806628015733527805111304361059221878151366551691024689212750646760187019864395236808984792294015299674562617983573625411241015831711327458699079644648527534550106473092877651172548712397841328398634602414787150488653679265849965306947856588331998247791589170779665510695892116956576917945468855322637923739817595300017700677771191815643876347231852998865249977863600276526980858877005954137536385123840142827586380395415120002999847094562181867403264251702846700763580298188616227134314686589904145379418846970477451295156583663984185815196537034009008182520845252788661081727117325487383806535435764352492015750034658807097471208372047444232206989374579584240209744705614549236144023485806948563068744830836708984768212058329078788067767442605419023636921460019418924194663725924426515282691817143675812330386923830555589396772830568161563780165143318922655876867928838646658579677957121693768610040020150599410075703987311485270621210263427221642252502907355850605856883087243219773035622682935523502438918976222530928791845703424779197322303403597856277396664510734432764942544423972289892115500899047716196887166916744281884145795069319551262313126613234419379754817991385834742170121514280134866960352327968106937494631747474255502620608327961910343148531264245050192825245517371840639727466085072336772712346775921823142367138525167558741728628699768407306424237009235260315256910289690677731642083963333444736502740560065731540132566811212128516813620721220494135507133252793828069010140964900361849755010804859156121766309946532650984065469450109163202945880611159538356677203116318300382837758615164645742157323120174689272326769004193502989408216551153466364749404402447458804501411767177319663268774147355287286196797604437773032894927250624620557378825627931198092483148886434500226144290691615831395214619965972708980260908021667108930661144912928202439843990501370870390867877202960067198135105414713549789803579921351663816385879738948136980373391634922837133828938863656277291389048993639382491985966544895753025222891078615194066578145230280547722321231224853336432017276846910637203567032339371143546893575478469360009636835679964551569856303071261134901463177860399478326103573037344464317384680852652925671433671629316917555001267959378360500344778183189817765070811154708780294103673569837792683996900799652602316976803781240799251481055239792087153517827555091396891494681710128176678639156787696666736680867238630518732557265207573045615364885705851861134800975869585818733283550322543246917157983164419320775830637672841723332695167574104343932975918160860987991213299698858106957181795041736035872964810681423468586247722138051916593471773428109937148545756328697084760314744563652370194002409890903987516513876078684268509763508421763334324622975865452374938606926019553066285534994714816740753635124454407826366765220810616823194857349556773334155179795992682736248944104874317006302156124393921544157708381431905911156797771791545176245586113584616713874823292530964144042250717915304177719411932728849220324460511860542164142294307499838558195007781778225650210138733068168971558756198075847432147968417854909171372504463899672500173781716249149043984592733793995023938965640891548197027906796754333800292673157559659019177466309467941292031441747823249209175826944953681690685277298112885571776402339656353014098860659459944651778627341608912931478787346087145631985903644095478765339624222983653303712036228424420650767688610761434632124775181514488834926965599180300459529322293040685322707275035702226968797083364058099831839116146627549722293399991430434536719885573555681981196410556094366467497544337522651759824430464303527183065202045009594572705575544924260759252960027321519040909842903949537812900460810458186880211861990624649347741756700857156317827744340440349363036397592800282572677497006638038958652488326327640856427795243698815404251649364543820929858653060092704303249997525493588519663270334959898976429450870333370891728952322524193812256868696257562873072298291378535781682668021959067890914675529559887103106658244247495429580973873828249812491244737812503998640886389302291486987330479520363522296708178467093700447811863448358242852857495666711951238220564530833247925456612114275765011475078539803478251963563739088781169052470651453265541904700919225871741169748178734322816809973598817324561015512054213453621579593439564040970755396889761351803870619452985051819366071419774701877533621261386734282084852425563791753095295748636501275496765772849007753933005801090660370806323124766665581873828746149607936118363134541765586617139012254688782667743417164680095644248555607961009604844644839605921021140666947789819193039300140942724623374779924932698575319406692872904501091819384043300188516126055560024838733929368880149933237706673533636374527304311397177154011043175982283924169798931351334954665666436220724823435549500898921581128298297100574907040348944969909955201985341566660965035249930737709356994585437349632450828486884347775024342605258829794458293083777074491703006955377268683472212081720537055515079178751070228834627638858304655097061517027777882945987682858292374314083548259021561112476192711420961828591460822339962161086559651945620443595465565686193066265346883079070987385434054001167393494557377434995925651163876685504117129975481832714593610744853108060721098092633048180961251012441889301603237074624187556807285325001811510667432545709006537370325667366331535034983821688334678738817382580815508088992963352252091047388498666582947524086407354320181539109103569509427056271963599753782815037668043285590935091274011766696910940889418682856102254288965651309774931905350292467663820464117401894119212234515805705878168540508472416419451982406756293082516525108016715553271257356319436363384719324089037135466901199377845593306105484838805950649923796875280671339754174639378645964240567471218695702609863675780541570787198020989822288923067287864718366685837077435248955342921401394156424852005207576764359145683459295060093820768617605381550304367785227544961482045318874862646309275674182908610026393198622600587016620266241818490363688690239524013590109057893773785350549870600810810527714602664160120780378905425391723723169621746614321560757028983289054615807250706433915782461690112724220328568181855424976359842232043864213394809987223719886756018251374766044972319367364630933695797267144830927149853018291946144254271815400336225173714744652463005714539215668972304248891828955892973446276717458654633221229003842266697169080233738805738138438683932885007405196409875076276536856801105828781333104903408833051008106453458963712883484819545624480945276310431252497307879094048643906042938721375422762547453001805158920301678876968465010178810811894963200661329859298053297435986236527109942331228598857724413276398978201152211216695747551997412821952896297566840064597857627944760067766756794035613050467109770313717406807399917060883663049593288844252412563767956858841641878432987958723049135089368914107808789768881191447661956949742635265523116443818151775934942087090808847776585644495533355445040089135285700369270729400431074857805259351375614068371910273561438319442458688424433158020708912006709224265045560556971258944399899411709298712467146179143848947904724048297627089065576986895054772878151184151535300771823124930688369490146677490779542262357007496189016370744531493010136845564737875228119163506038065186651020110600505224828631482009262246422395032809785483618746840441488892967560035071532583051911892655472385536743811885435378922563755374761051147044511670164893107722251754566599652979710722059528275269687124036986822540870069600766902953322956005974646057372898928938302054950067247047419704290413377343664868212874460252800756302412670287251430579461855335937233894648962595126120879990514731521987238871344035158206098433290532758800309617819404040688245666853768578978622826095362411743711176458396919403814559744447385604552728056837120986675465600154136216097874467772705496199927752134804967080660780274160314462979978172838025452761563209243679958323925661602825945909751027945358852313113047762925379138551778221655898064334388217420241863491398444354822057064238609369152630767311431726261145557499390821382098148269337509753694933520742716979627736774446143360674870447931780941043873034946692400867483986784358363620190113555966884314251192603367149528242789793459041763801903956582898014226604308446044609764032875385533814432877832829667549221844226591805294490691056832096576276765720864057556721550320205195303508645224720169322696562013623286387135724108353190941138506980260802856301575356884840103642034982265704820425674515074270640333992338137610724729447045248973706236172063198256841276845598005452700505941469444961534371643916675466656017685051615952714756340349111538771696157880244446183706783829824911179807404165379077738204828362045349597447837122425229419575581985646763672464132857343017825322075507729403568740279853915419106753334337216381849024502376519081891014407712238063847452919020836768986826778232626627226396905733398819684600021443303123666240194272520741024008070304725492953606815000138809935359310242809761551543680988983654668812032262989766492758515179048637643369066977135868792304878830669331635709063789537963301790856436571338001730335536827478713145333391681446143433532355378505423907299575196421601742116550031242006807832605536653835552907893914365530722687021484674075708548246682610928471712161204366362839076459041286822899623371817930066548685093141157196425244666799477854593099427468895405260046201852758695406427086859584659838154418821581281929070231904320129413301354506650664548886034235157029322801583576324407839009442221049469691938375732514110159001832967493202966137489474669838838452883288373755279762145745224972684407563862341444478661442328228052218347759671008750648061783564618621661910126910432556448376608427154223486866574336154858299558220309750777753099938271549499527529865729999802117310641910630426122938044602061839639240587705485995167774925503837547167710563627681882985309532030047602411532259937187266912680223334914258078452823341161692673578482303006174543700466887252374129606575444800387396744935178140888051904743566269488011344118472792753546920002352788777372864067356567904507900137832789574737972221110031002504743614639651142461989490748173618764603011583331274722265627043061961966039517693612860055713950871848688681723804169747182644665573507562396749233572846522944952886479098586827531962098141841652904808015643385987592939044069172880156102299768074283314210489078389382227272060299534059184394122064948364491132111068540139541129420798213147096712279558831662382942953366938562505394518111589004317127893321886731467600243134715971392303382999285235359825840049761409467487008011165825921329200014607969843196961389059504154367603666620287606045667045205339949348884685124799207127735620020345492012005306821287591606972859730261896615120890189667087409536842560061719845930962183012198184622253056250645693619286051738369071688448315215374919927506906908505769077151431804834419534173292036743461633486167332095841421845397686333182815080078783723681167407618945403347941687019050096796291015745767632086504582626472186053139520089377352203565408036574636355308665049735316017298526449073937539946265450084099235043571848396880314875303217148674652910209003499551670282555477391833964914932493962547859072419326616068799687068871318558202535246117500097585003809207293809372320230292859073517917349124393785037351554376303672388047214964218684938088410218922965514542509147966885656734816583175963737594723221514963139515715653259898731936107633802776780564356954212794497210852815418485558788972035712624117877209266689593948796587624805371231039518371918726734251799767089419914884774248788530233862240667751193973733192918095927284652264814515774304911113432398157686185205916607184411415088591848120185994266241623519887302884739141539286897997914398952672250761797250310375081840603600226911312123311069464669547505915716989597612541779715670503017313528270836199221786961419544990023469765716076043179310122009938885049440619719343250317358164366161940096511487470092935308185924769899098776360825652424744553028881731689762123369057519981779316264109298341405888487829343064778259945189287384605656477800682394722721473404260297796070103042706926122066891348874178085838207247408524326754563005014050735235308534167773301702348923941477876075470999254933841413999529079738985839294507828253489571902438474916640854504568196140071839011011829121464676851416101656602521181487672229980292451134540028460539565610184827087580936530597582642094671531818829380202472177153251040628684605582217904869984799095755575153487076081373143249896167033568728995901293655851436660499378574441298811821605848762223410684151209061199670814370419026142050048704950901824031138513326822602436371094906837442223898120638155370745520113486926500972559174564651196517666098357967311366593088867552430344963009367974910182422500654200677722577499716938277013517224565487440371229898416674275029210173214518832089812600421717114337430795134663847579585506663098461506290345413316936103077409853792768682783952165073723103377513614003797537513914915060074232002590278801490804589754857952109400270533400734137443017430324027316641967154516702925770498219682158939624890721511428197156992506172115160761003870717004331198121469239260087804091839997037479358043555330965972933312283364084248067811825942260683798047430946476547868213836014239951652806926485694872031544643234751212257249891134444379589163424196160077677527760598775345910915458571710071758563934667613921201496592633628533796475027254774377549652409353954869641071374292584247072378688521765739635192452610008015443007911121108720660421634789761842894306968837300250987772401601066387224389207650627554275430443521309186896581644003181793262397564143197269078004638869509324632427422947301564337962676651069496104876842145835001550991859112122810584386039172327596021529597829279465661291095915426857315194969038941245626401137533144758933733322654067553155097440857513049592674192426570885648646971922981425164129666552030194732481832137822886180662323654000551273066850575530937414496305179548171609960783109378593780025328146451838728493202871352824828118455746608839566737973763476916964052897788594875358924084667397485121089294482260249373803799113111332980657558921045830989914604373366216169123663826018657046295082747559846298213725740335390104519902782702081183794502378805155529672018794990255370721198732359086128093854623139733290231148291400967128319676456026847751660994404657233800769882024326732867252351015294022835538298570172105560870460302446398840080198023367649544290376199581581906301561134239488785659734037536251404137028889221351278047218893575198702501943579987152033314154803911252225165242535743310599851092864843355405191105086526281903590009206742715395491913950773804219246602538084859090340154695768252558582228460144426562949126365600163281552164915692364233899351637667536565444350616798209847211596376066187956728342670610131677490774135589452076578021280540677061259922082163992557636301124073136606474995996150778057741137094667051556970417367412266664886391678914542246038837696129062009079080525358249010586444581532274791900630891150272393970838704819182945436268027941544112648027835983092047053357340815923053209121690970928822610676874669616283022471467622412543140090288314237373588050700538895594562273924701601674804325323482073589819190513245215124617785723817657729997862338665214398515401290069920426832752186523367968824275198046959105311274134005113466448371368000431475798174162911377957879450257511084420182285928482551131954515071867588114616103842624003027200186045363068210914163919010739901288777289238169186330935703708578085825175986945613550095721191250866803953683266389917903172197567066776830937160859149412879137344836636606530070026499264784743667834409846444567435234957665990151405871118342767458576282881348387918996799946051693500025275469048077342599166724625945263798394462436124465738540324600650040565010000603373895746911610441214640504571422306981375556153043484029328113753172485179739408391070294280434492068396539742364026108772275335305502425422368280364951817526520437820978781574486220295335485908123218233281063057393127456599474476761407520361072305818654987660596833172370264779900814689720600684895318821175080389628944941293065136076730642869053377529007878768685644263004752402986087810257976296650067232996555103819662033901580589864231955935396840054845753883133977266124109433486870506785267756786710289899094903733795581212188132331219488986544672897792633032716754357664056456806787335521362039009926333489531874604007886840789048653644012628344728253164506350929292018787074473503775442760136857418804127993647999821901466996355771071237611025224172335094966434981656364334734523248367264905553738334804150915093125135242006823111225422669294215421194180160665344115859653152600198181075097949947607626109183196370576574269108355892168061047734842311766506340111499821536429359275219863064024793175464365368103728779021140534312827435734391176242877210039590183538338547138614160982579469597477570028441235254901004407549874119905558619654506070296814925475141772753885192564917817263048386588059600979486381991477471218097423992089216701453790743505400070884802354144176302030580128777063274487856264037283269950320559813802813438694151205091389965614175711180845913902841873042019794366504134652192259641930781860359360072992254484727043689264201378937175960098617909415215426166951030947900050297282056528250455565112632128016759313984478918591943980905101719820509969029613698019156182995838392299025004682489875051297812418445622442949059215429999900465675073594875258677167762656594177357921166319386266288620461484993512909108247909511520564048363724356452102314112068690581835736122985264603329032427292022339917394374836074879277960274224685401349733184322073561281906249930922515334642627686609346351424627540353130527862444592271692608082515294839853707670943571367145368822770321439000894035330342143914929100074670705983111785656502242400783586142888625483855111062658180343600252266754803760485206541100659841852758318339444113189934731400510070592317562326598517014525950836111325084040074394660663765822016055246523476696452400294783148292689523912403902738394917810467344585481017343250301765605488509639278022158226339611758882508972641308386649625434191837734967568564560707970240197765326444596792376761102767637572507076228047755342903853206213546914098183584735156799105905159399596540523702890738961959649543456337365945259383947391930980265995903474717584661349963307430450102047977140770911153897927485071287653592706586896269575074197981478248410541146815763805817948666262020192775381208694659258016713158164013345947850841396664130454524251299644274513000625184710624218540271508248189348356034956914869581705500907653153829527433137530824865535290174377865530355311684247320386289923160460992200225567055368782583249302487931494511474501064153811199926027854965111265904841123725044255809108886905266180513029050517686017647046895953555971004344504983195176213495326636450444292397019319034984621824135725690809536637120644443405848339577264031765599694834162329961448519433087891499418892992520823282337441676656168292203864695254515878396879372265258992350532733497494380760094141820236495136656298423601975944417990980272302032049141490546353792808836922937217679666068326914564260399798529506722512377836430019817481462742599344430778076865997292964314244992876575106502447293033163974084434235059524882690365323515518668100387481928459613700726471063502914766818449066324841910818791970983646750916176451346784036505033861921247433963129743158004899291478702702499590183783119000923495851860111229229859989660262934708143909185185384709766515678417610923467875821550453820181428062518221798889832587859851047936653710145231661839864919870220927871738091229769288400520312642745673088341429420257812068782245435010774950346497809520798478453310740195642166299646732815580885683914735848909559416068777347221387259688883958162749911633091012228477995931263338481407334782774593556658874899206946669502777310133761224321322772371394252288854012950378851025040597789592029887065463732240472967661048398623048341957887390118011861516424315628903373343908608593668171969579599410038308700992026396019648664439584931834326380241384173292533945422562429578995935356592107300717338958856359306521591118578029213626701529771035037491468889461626102973474925794129119047312114620159226728683685743981844894757599548125444824579397121724846483225442042177461768244373773539848219726538070390404515217096706355118124089626165108726353318780304299745002168182178648247539107615225376599948142530473708839650872849109923425033899123560711059096964691018810922255126684336265760377150574665867623878598099063905655615738436181967034706870547304337765227849298490163747665827638976962694134640538399516088603750964528966640415693803812236217135813609898523602810271674232311561434550610324149275641173365117073749538632085097029474988160255177666005683474631805497361719734881821556855419377821909859083825986647621084705279914269508512440330421799674007909568476662448705999302368908792758267552927341165188888093140163939308793584154266837292882458254960832152290197240115122654044050438265941360679845249927131456823050148489978727488644180343997227690320589761490007917010778848829413608687271363645498809467454919539553187927476915266161563364309582031542888413944985156804025859434806886884017589709016997035303698671165803252209170789055613575932527330833466118527480928552084694173068867094404587390865379605607883204315513756064980128760639702461806065673789251522953165558967899918559455503600954145530873622484552224651188442771604110875502686495422794269235092414668127475555042997674077599493895080852136820214804410438023602673292601210129501768333240500900165819695775909640604678349624133336827309762202824960387122275650500608160885923135952763615114875573402595132881416396905474190828757529387837747814143380053388304609105000989059425233208910496445314969178087001349765569463404975398541124003336410423453044732230571054848988953757889627051680147707466323416776742846290628742372455359268981285656585182995620057136272295577511241503994338762215554704459428157621585652421983079813700570150066488443361346102333753165753230769666668200145218929232518036364148905091105329030289191362050677186989333503904091844761660835024123339459688818751849963679521579714663287641909273195461845658617278021720397297410335962500565241293868946808997999615190356759189256357094485563197820434253471801930307010951554113741219944703379605880197606430580107762778962108907902897196762998488561047412503153312105686936857215008817692223284139052341647909320131549394799444681316701185077512898739755785696108986946330228732773022806833258477219294834102875765057006455075673550557811456865471752839844855159777941747826479345955527532379415582123527479190187491856993806578416102353463947667617235947056780129909299943866500643917799744331111454419288239740574223347588650814582629468957894460041686075172892425670676216743762871152672660262632173955506396494496279358843216815032879018963025972077240088329421644219942381373634628145900883476464721434211579236575502723727175402418982124024234530831159021241027879541643725736004290759939999825493566631737523943776943288693461805615707782937682556747622988821602005500288597812772312751576368171944123647711949219555996508029151098112977059101789693020398546986927092469675371901166018684169859719094396296797900366813644019492686566786791260745662398700936883998439490095571437282565718838895301539945082089552228820897213046205740668825195786116127358679202649715087978080950046127432592560601470099246463621341798662375368399609543573534579333142980822879562128342295765421259021799571891467260508111203945009288026406086870346533185275630417377523884633439459060718255813880058378301687352498419677576280455688784679387276237666594237921724731465293092945192169871242401503432156951826956306692728463903120925958436138735445963239880933782851792940243695755770470660208958971855593757489532737600197230363397841585736977755071106789597173052030878453700796917058826752796707360570948031252808838648756588688253673175363689759444642185561013798068286674663543667915516551312700606727281930680698022693609223622643640245931038149129722029859444798574692802967989551302106423045607946948606831833395034137641048908269099509967768620420629802181476967274524806249175700402982896297950886773458478766565918728869014107234194177511900695190328151598377443789034738866439708673982154920732827074657485230109649912489744397166565820688682039902726121376457059037980071117767124971503129766899103794883827653298591914345111122886075526638393929568174272616698649090744459960057435031642334797761166979657749359934480870620484001947858887085302307333459989889429530871177325013719685117330549099806165772569090326662398511061837212204969657196564742369659043462147655919517598751220209884318735144038015972412238341042620183833941297744270322139305642837994500841635401073160908364694972459290057945706880588189242208697361847250734029127246450389914943658943054268335070322191934104957388447972246458283865592569795189734085941438011563843364513399459991199425341338827301989707196048242732605541474735572508295161536788907650760479983856846173358234552535560737331011721501424638695433997910932499537578037625515416295248375868867709580550105012836184114040751003579147412681994454870048975694224760873954013880894569240415240697543757327153318598212574566760387444325404119704541557857034181727287562499903038658640946048793291067944628448702761687491823958505047046809541170764321529121201303512822327938971184677799359696083839752210333867347906393914251845868533408702909260108282093093178847860604259371235028094761344140127680544868320660927354458980198579260603053178873994134916719000754089066698750151603120314928679489478323761902476031089868264127095090952809700804024563454260606245684418244164679246751631121725732150988591487448553054851394841656748567812203297433754568697190891106660176678682763203988674136133665355854655271009804579085288656461845782451216415879720470651419397519700585243757981905111993034571355869651985129423804146720582954757418109799531823669836447429978691409440567172228179680989912054243797782974527351122411028004570107672745116981733640809877219848294320138230519797186010582031031214072041284754680643886537386106953671975317488725688994269676589148227777544735003559584865406592798845786616321205461976326799774372928341873721065560186617726247400004815823766238528694842767916277843302456707963963853027638447792871201216984758629205362139145041460806495237418187097188538299433701150244335237644583350305210008875844012296193664467029170645370142792589172502006285146830911061384272185411396782756477344502441871637903250933277470577980969625502614349020392413263213831537691345165012727459804814673715405016376477215074707378061826718298877937927614630669006863784456823502410740842192435185680465070413674625366503403582170937470496331642672659969304724160569867262118394870039145178411911317242075075938423315681457234713413699599174224443299591092013247477728795355232037191150117748192790496302350022130484492570975964307681621651600355669671058032105187759077880473871918203911592197864298483998255619102160685700915768246555946201017960790607364717722829572288327768311775705535572933699381806841767596259685429740728081285989659771225941680676486632320576824427833455424011770770899540150394134603830487895824008069140268366607155628223169000687272732350489745300992846729045222684468777703346577844117726816831311959297564224114630127312818457982993898868555005032036326498813180522492388925746099002298945240634466254041929083769246156612446726628378155796564224080314851220830030367060715861782754624712255517594927975993403865740922322775466938292320147844512147954847718044656503206561436523860169062162708049695343189513225695563039141968849786181602489881050557503442947058207509481155251369017268459718617153704290162409222639869861883903579354341795330461106227315930788481268608082998832121523015913516252416506165229206664366464935594330935615897737515782424051932413488600351471098379386642005855142837358372297852011416460679023593287020263417882388443892128873958741070800543923870796225815064033646531764960328110887579532864221681058850994510732028143571691735673914372439413402933608663946339073084432190464411078905206687946779147229898205861247510987563945606814752915302871175793468460147129800531681309917287487599259142731548782116585541350918706307514245681095219069113564485263025783503782672879565046684505440558146378642712526837426518818788411753662932267670162573966345112426739939360321575954839137694711799541399742540153991177178519903252758884299393402649190509254741535919278664289004385101844865338346245027583751156910202670815874264715681016267354454646455186555353878186568372700987382886835793684779449453197033877729479721221916354294328155076748171433591337115338663776727504774305143173331553520155666249765785870210686984577044975480570492377009301128305280209061248877871379556113942005274163470529594437063964301912204215602997316509041420114014440609162404792663873382813175144394451786550816209909135917905261636010764049242780824317937780804507813700270132752592804903237757657911080627882206096930929579062266196252454472754295875683364809466106644682428728756173025251477383236533432374056611297524162739240799744890487584394118581243403143323775620334837219901805961624865213644399101948194488368017548111018135014219816893795806670974246308646144826729179739510053911653111176108371673475064302969476867612339486895613808086716846755556973807825695976274448470220714751020739879979256202788651025584549361072414876455446540481395970453205507217030536173669090890400885695454081246626473439284248321744174351440867478264115437984268846059911383304723272107795915327226445067258761299648118269286960187800635789640361318598917292671001345775324899498833338028988738346439222094259795080656682287675128442504435065964587859896717734125262298217191375073260169767693412101558279286442871761047591853750934289704098922534129019358641475452676310735425106657570258241473286899156290188529736320394553474672496345396596182223610052291918905356769442174500309364889485565065967895288320333208879355814714308217976551473401483100798702630459436009031950591735204855771777781469846898579578187179129319173911984651422900181993855539504494714249966516752954547321091593182062913870564171731238013104777062417330578421145956059484809606090656474606581016401809428422080052101302946910653054371733646625846271533793322721680688376397647030161728629606703641807295628600563181645229148571873960387162261597886122130619871758666163714709786687710100197400342886424797513802769041987627034920926751488590054568141365360785236954147722041025139121681168515657045259956957151247293813966260727492700377497885345382286781323234504455970553266936984677291423652683174539089319091033575326421124604204924028636099456947752428736613130166180274443821095526641163611608367788878620944286461028210099965222232676032624484036598616259552628816338540978260641048797617973196542265952868238817762972869335130110152456347792434022764258911097473333298165351421301659531663458403292592614715203511101033742055449380305441260024056531230202411513019039578637010371363067608363200900990597421799387771026385086795790443582745957102541228654523790419528028849351733067042924704595169847028801572186870377699330611871110122725484028838630609249479185436204019710381482898189710598633947120521139100235426972687438665903194896388418077931966861855160591366363164999453011684547412162364172994224630848802663519489385805301988049643829622221405715780548312850985648760160073468684196096359220212039684710670932162056159900964667510159943707195969430682159647829124150038241760955385390165597632055942752795824388908202037818507770183041617506894331343552174848529462156471892953779958465557579795427424967393725180085773338266858724400191793460522863309705852678855895141433458005230615311485283512575602888976052182282572001990295153776977829992251116080208005063909280170316677861127323308316232605703377576499535249568223505574414687853744814180946444157561555105910362774079408999315237983026611355295704257099067309386068424524446510647272727088948602281632772877451660993166901319662993679918054163673916963644156491880067835575563985503674686132721312482973804558854917217272314077361183004803946986382577612294287546709105010700018452926564760363615850873513655770656927016435622281649167791655266382295739365950549952643882258652908251383270527454790056136442678719885011352306051487316584290615798592941138362161043718093522123607854037674931883357745031564887768086621746410172722939192402344155358703878070974813501968120781363568934561810723798050531986371427192757244402767118906582559530184885047586076423813368032205413338138344631271011944564821723460480635977922326373901833099165655218839102202217106027517398994301212492172818413242752209346298238244228664724857415111145379092938995338213826127008841854869011769984482379259438634390997315126183436102956756940291243206783662460404913958894404999028780262151710003234222591799684457997556320181728718791925212088480373374321158074090916259427372418177640995389968434014116897850806143068593267590313805738120540057242827496330175591887515795109358222187538585179245216737952595927562350410812055865172227571947049725711231219597696172468489197487303057047773887488652588016199816693753055441333412646865954342306543598131523136079235303265224297178039817030078653286181247008014786287332419625248650404918533324355265237054759958303420620943073784293517163379332775497124578393486049392275184302255632005691835304999770073444719890617817090811484758259115464060970746787649953273659149662243275100187042875983765302211496091719351507906355780263562723657916431472614636214009995066864638887667092125588887456186517384561726443479552815156232335616243551015439940291032199948928708299531143695867464551933369492157062717665925778943852183609035497850277549261330333633330643940626742531188076542427105073095202865828052108320514378118559291087877941204077565692058783867651404578497162509500188088125988556292360161092702658334832835383128796076797454027545004756113477556530628426686769192743826853490283992760715615648330287827935817749198478371550399908246422936026827380570856637873528159572800919888876895446379876316031391868149894356574545479580463246916528911321398113679869178834742695870757969551392223492074793300362117389534532609339803093417644871093700696985092530955394467278540602062468541239486019433642551650577987234604905735288667826823566680842544801763610379461539899877610574227177325865519128185991093072179379070833496591362127130700139177854189276106679128123642606556617468678078577185678823741276217919610866905470748972667663420362875996415850851276074702592563094723526691167292469898721471250429401592977620894677940405366708859415149707413434323463117410735982053152380672374713885516433082454142456557101779450967403783028618228615185300824381380922212425036965841025027222465296007449365294154413896168127517662455258819444974259665986553597533421258677974769088547393747689055015626321104119073630816115422024926460964558323777034274688103590152896268093516552399275401389341727434642559629791723784694769206525105664573005485709376604389278716455638535597121925889032914686848073461489656563857005880802708743560092306833274372241074403906868637384534718391505841681668275177370358616307414463455986630031632926283886610044471933146970893104371392724399223689265610595936592498512051836598222604555775573129009187449664455971372192271302428621982582575528727102130009052612665307898562309353428355634471337125543556305873104611695860331441788583330807257041893384998032027673254570959677175877579207220197692713258092241229516069066702180801063695151537836966417511845720061573837724114101086768213854640861223110896539567587965477941922036083977740485645926863218835707948662021387304671964413525296851562888454257764376984097085585068419235497139505397461289160630508802413835510607541487387250479939047485680101721444303928895581610744675867586660645986477215112397189152974860489140431248010672655832811372046263091773167102908848637542456261307001543778477820779126705013467237912458017447761107258072094059425477836089916635672867665099548899968970501282895930561377198649329463515695263223188806966852019413239195328129268050625224509283865702688712403240496073885384325171356609622329582726997234307642950504334948135503478749980708142272228536273477405600546197403873714238402166794489995721376816037364823515515144397043428550784518926541795242238122345795226851448682250132505070990076735815825789983114791430484777753268803047496936123169947772152834868890924243982446946911390802081558882213316294988528008784887532646856756889211613339534031760816139068773087357035161008754880681871613201521129171463950224340454317054319797664039888238807193689774226504037887684051600877189175670366947124287346274601434405825719155068453914300462673907876791075206561507246858435558072349529691937515004975991426912547923996367992269613403705971634598092811198362749817828769734794488641900117456843291151765405566800008616335386803372604493312896072906373360818616581119880817562982030741788457117732557432064419044493050179512737032815054613961597537541240899957147392743403627201975692868253882891402872628235313512971644139380492410280911926965392884908099821352989826995902080062998847002504246185823631813924851779016006909654259496828430326302709685339650416861999586322450951602267137145800347170021421951507627165205814649174995078518154576094251425257541284138777763870914618697852616485348854028288580325155695499503635222213356694449716092032757127274824620174748635391462968583370329002328816451636057892086274548857184911272296097819406676869830441010264665188671609325738257022007694055997991538491403422721341295449797754106853218862475146526038772614808082484728568463750293698018254935076877737175815278588723981311637289943508206647875490801075455491210461365437582831857021851431357538630947140967401845654518666331794089146899505611358979173315576847877304537274132198531280114197445481908219433209522667864327000891130502815130611495661178248806609496243780018314509422442823931387338673378868170874044855182344900323200488727999367397595928077258237430772274531925744455227634670579233256460675402968648191309462216459613444039689718524401396356200850961948097949763391205139594509697640728314431986296774351661953936500372344888677165194389532632869800169975340519907571359664847184654149150660567362616066484523860092202028551077897549159265224388374345910011092481484577529510542205653521561769413666800830573597584937088329417773932161445801035472794686791732531672682690948533255672525586233638965980049825710483906436770194412469515846728792298782095483723295509547983086142980341853222198962354082032489807335780161847320808235426240417095268694666608770616679804419874385128897233606296931445000311645335011295587703501571164661173278094293416881299324632396626431524175952012822443785979019025596367344746269427543254071918501406182994594365724959399369284864660325304895290836760157922507867426374566344857774233483030068807055291373382662140010937637857761736303806634955503344689539961421573462757912415392975104040242570794262649768116587882654072376210255120884039106768725789244465943784065635222238225525316953088844654953211565969169892835271003291780150362400916470842631731648329613924167080662714770781610843743836256515430133141622349683593014716399652237407932531849053934197020213231830037507061020355189880792475000604564372696767226644434682665165821638882819753354845086764474828203705069230146018933325651142475018227803190932989800353313469849947286606717790799829669651171628162498840693999503346789713560553033560732485495150981744293796740198627308000213025802131867707197819514930329767727903886900714816432282117673152197074594055307848501720808528932043671086543900820716515809777838986019802299745302618987269912388511226555360072536242591555380333442091011292361193355611255437521905092914183220436763878307170199890454343414058815066350273564175902458177283304680063626450372149275255372170604782515194833409277653073165214449317326054236388126480185895978702395027859226741298699586675261347398246534046499007077872318693598242194255547688932061459747006706270682334750165735945156909037332071002707899124867514916432545149498085635447366523158821198146141365678161482050159531603625617613907083589246502923059940489701928323297306515443564424827597789689937978568766548744621639623244271528024759990315127756119470404554755326381994818832489518960536612168113307486166823068541108643837562357516882073947245746810658859613139502066612335523488883227541327725575864254902852362195581717721540506516496662167745860154490544294926118669687954325978885908583159995023433100055088583304960128830896682732579975865454075064784097862835206291169163933241193492256244664501634353761060728293241365118838997229244827982118906104170681322321528102695015847177474232225658077365466964112096218771818106828220163273654441727534607254469209352225232180586983578339551274919493107639898235397444965533154483663393442038008754361910506097676732824906314811616155497926837074458461970648309988451205303724171182917792126354093806996363897949146941207358343308188249437133127664823397868713043018779379633076647057362386927401709585020300206565592446012042035327129856824852833044697178677200540471765874624488563200471256893032157028320105867262813995712753236311604341878485773096899222891324462327223950882269291778577766825275053197650568852044771783753485285269159863524246596697373707446576199691678900101180788571091403279018485824649831034367356121765968710564165976049478732975142541949929085731974266877366755113462287129026428243878638863781948637782657324581610966284245690152158180162572472373654032366848828957905786294208191571647279069942888294955921576037357866236687184892652176288332001504606147763037040923010757872158949408560478615625155932809430972289275250291425990816874863661454753944175521554499354369092122632210120308828897491285111931131602362120783432704674368373938096033855493213793692676639941788252966238788039782768436901129766835434352834564554370717128628279681185192646488421645003380713542793707350982870555422810287792830592882178555001788330835383346224419513183216333096601077876738866249332912450945444307507982325138574577842443311893859434923444544049097045718528082299925285585217486616066494712388689860364434838288922074993668322567345153307182322317009275549087732928655594624668854905227975987747028405875432803093859513474261110392287237716758444444715092684223843755184835377551475761102403388491907513906840436649654336444042745227114388221424951680684247430610916015889688241746984544961258127160080621142165846228130045403917362232673611454115549428186334652877017037747907579695537104044559481645788216837723363666807466026527729539832036224689612448550421368668106847621297078700616557064294384339819355274616604840856410048474857129282110494378001690823838679309219549466000995916071604430931384192909208015172221139615624348268224064930003953895584773953404140378393942531220312704693845893588429146243273050348971912956374778723482876381029190824936266786789447609514635328370637030164080682349352272225055166994500563599114378738652500908901799960295413812990191132512339217923696537425859523856312602720624284843557783546632935276855158694445238217472202845076496157493133271685831643043970028601169775883281800386937946924099110717754498462535341542125940325287042433119583986821197709640014925721860666216825088608136739616777337259646452668908542911657282323921531094485597083522564943462523157877181818651332580706338408691253482163003612638089648932487924143046520727412432216381184108260097322845944379082504568268594326592968389880081200997876261277715129901388555564353455614012351574512528563709654659178304056434452210126928128216090483058412231996611204721702862377101587937098547935071064285407450045879411623214350614905315719073753166704807621632688433575995419897192663623287009763855409618615683799256103366399794456220787238552125439722705491955521795301532019951114446615071340103383316513401791676697896271297641612101688663983415140904564433692127944284782336391843335683160376855699319643977964149914633625628883426472944961526126551548143358755221088626432930285731990130510571739556926724955284851581859741250040118883235301101129253663371473861567498928675835191047505825370717677390737223265552309598139626881155918557935782844217835754071902217135914293271059071302569017715166208740839787553421238992529483847624386990846147230378394258200357136216640077373630800742493981134173156238395999204005806426220680694127851257800385071146146157720165028732292895849603949764707690397166479117378689004361085358605237445700526398779991036839719673072968167720126406241808048292438312279891154726038682888635070823230945786506364644026212305000143053587088943571482527244854711748963137369701337720180739675051432710785134220843016035037521064674481827642915897021530642257752995123572275325532283643398650785484915668324648491328671749989902564977903900925511244974457503472278091508495248463773246010972650456179353114615295065230823750507042612522979292644715142420440481478149026836506133261140474095313824535524656267955335606430624655496003793466585713442702337723898371467695396805381958812595155059196290379098869653982271276270977338751456173145680164505622061175050248537329862546579039086763004185982690916249674412920711111792282824694208939568253391353000364661978217699680419192505289695962114954216687794940634312391130121482129964637669890022524138748639118016613047571080799488509109345937470195600275557098527160229137670057552148245406321418621191341221800491640086221431769876660537542786642586191276283980229887786532529608061122286665802585705119747192172193012278459270691514548987431667436610696845448564564899681548810367681412181941988999861206960142569203827531281676091568771803316760433558646974733869960294728168878995265701331344431262374260385443322450046748463776263066062068162750900810177462282418499632738514304406104048103080082693587252002577415658130726269943364169943514027514550049366117019454524808607303387642157640723080245963458467094162615969923210764322790849611270050521148974620453161632025809897684099039956268080808660674177814670711224861077932848497411973848877153901299759144532143203366213440810821109362195399190082168122319843521243278400354814039599233728778523182015095296469862578873539157433689641771841471967769729587852300084707690020619930851458664268052603741340554800433915086645885450348344464983495374897821183923593372851518562424742127802192847938701299800496723886726862969990018944013414481987686293988491983519143821866329281037690493414550204060674413459838303976628320356110349944059213898342709764741810652317617841771903805832461872556102796361134668234274952286892996639160705853141722221148870679297528163566385323344083010381153198942367388918955348902920906007019020182573088165752898198242536475650431242306204757217064575648920141569349552005937386597409186880988902617324375094305063726323478646386988419611604054480219586829308547436566452425986600902438056879029389959563762314939577340234053827079979994167476829441649775765727368660105120729715859679698780859978060245523897935543366192702282238195737261372634065661448799674896949447126254827007177887561559519079281416853734147081249916467739938182920728284517473795484616239509654052870189719337719907788821971815249207841134511835856382565883695894129510738798159845457342372206145875140386603137286677798643579166914375733421266537478685407695336469070526113636194076510370730146615704499381828045077974419459872793129362919140669552634549638766592202540056499439466570271974219859246218122732042406464811384399733127281883477433770966231130514565843974604783897339463176911204542892502640290384702905163361296476476624649859157118080639205941996748138107529710177405772080414930315222930745533664883428975974058638988556412493762868899244438446492567097937388510394325034678858002385818190275546325942839948214346560355316903423780083074438752198933126473992488576282709834591907546007435253886863017115300452165938172868224983355266692318773761369437740946331231566336176001507609239687524283610342513449729925767717273958956570269817451671177582768214449362203719906697641241552332059901981012122464010084598997948874196958350989107994573496521994291228546631410269695095888272709769823132038654778355302427930923203673056399749390938239797641132142851006455634279874301886427155284779577633143080076881938916187979185501081123864360910661299272726622070362048481885157289594244319645634582638439235124332238113494816402467027485234330806284406827957155266855943057674604252776895637698212445316023842013677265346343913173873032475899409853397170190631135587976171618350470033003512196387074769151397762849373555358923192809520069472365903646216679540957070942426071970871093475654099143445530277645738677806696980818269391211205173876960555433105114225411057591502792444448450450556424198815734713704264226231531999835623015143421630088845110713146705780379627967013745953996144836831058444644794583390813983278313302993109047301084750302738110119384097388234128946626709921450600628936797476736725049155075177854735012317554778811451502861843414827014390251862631011273291957437213963257625199299306856417652851305919077022368150955097920717877678212924694434792721037086187404754179162623445599760592796908868393067637365822173905509001641246459459393177453260881702764316234249446618847105295652378949603748770349913094541177691108324843099780903003226869143789380590259379548577129557867135109306554218139888924627713757893450971073455669663043351186248683361850512437890294360713632954185667287430926532997108597236597442865177263211351816315596877080202323164582417804087336113540296606931507346701132985009814451830260715080491453222929997603029036025709910566615200424296656984802638851418063738105020030835583402203566826250595338105546595815994130136891991874648548134671517157991762061234363264429923782693363670823489435718935061462612478517511020571342165457185014576198748713812865820472136248359438284130480465717606834450914219110986449721833602615704216571218199038664680517279558392853462962645791560651797315570074528910510671451339885272930475228597932055341172021442978314643786334653947876012817663569736866054315415102605241413634843664357729278339356838491849751839648609105111350649260222525725261635672672080171167534013313926644407644932830327156917229265743619259969147190696282945444710085915875593464504940800123278933068036699129800718625926519233637215552218461765906264495538082110441910306188570376693359553594588139001037661816483447942575347324720537073378483094943220932277376663762237602828250154447465160810650712383803109689466417460937104444268438359343750330339959126057479285815682167857439645504886989131288736448722886222983749432573785591803169670395817928357246763022091577856335978511255317363771723190296135863566072156704648210281092440494916332750579860969415979910510454657784905535586992736306532008916264540004786456125436608010440449913337412162631782651121688984812699276859152860114441413692316572998104701836940135165312130093261693498265017209511048726722769676899957040966207131661002228277035309854799011661167737659687881057818296969518203501444195626865325290040287512787984904427636993216088244786702356754923467696023537372830117971505243832305614732428039156771732835192535203208596050153924923502639121895787696527359633479700493340056121141213357207863212431744442685658174632366050473325072315854609664439669788280170349829014340676276064837374897906874753715746179118618548594419673629009285101756797027937354657683504490616681599037295357739923193886513782242208638958944374805679689286391533828375146340204660046336650642837791154744846411709197087685113410066404761426230869944098068584412920809109044145328764740937721806495179963564999340947490001634246726632104990771826498266363909499402693576493292454431674400006522583446706176118095609451957976032942454762424272796773730787454129455982810104515569794475437571128441339563152874694204131060945216169601199444619387339058037951851538450048655777887307959598028945434168475879773987287062139580809047648192294354944290534719270342885701755731185914291725642509114674610187168643533249826059121816414139775231023115223956009404327743740937174353766410349188773797906313655160003435281943999994842807545340117993346382048964104543821077904994118180492996673128021269593304994423472508930453711702804767475244024856402451614319865283091116210368292675827045231417831723722139146639657031017074612539788228908418252240319907176328219441367707548545789579096349148091154511874619912912366405797142191146030837699694589920569590322459238659835049790776273771864652379579539424507678627123099274381094904259751872078549130925874473895142413018454551463680116912343896180788266005120095783681694283654104229281795852127740930103717311143024083531326364337634372182949043792466208293563735958376001785866811939729616461671123856329247748882792637992778776118821321208277331374742476359069575262802810091569272844662026396321530686164759537390499106387591965198970982940843747828568495036815049308218169989801504227792290349176780059271600244650739170800394125736963334600738794019306197781065464197998490413968301974711740206974350657782223217350930537815315219372828470364936122388077473076366637960928571778212116829868497634629182844686683677606613163870084163986837056793641568700501440937935770089627055144074856594779270960086993480942834740486873487385768848706839411991432225153196258005634016584902393853446625944800887570197693701525047481093538392879207442552121870546969508310593945565329535287051839836584946600085116774451272564762034656258498498382460370265004734608618026187292469853546690385934015238642027482060050016104648940150759598916621242882823221508771102436177337260384613696146686706813661447922722448554404165028365257422905477281187162025690758497201221653612867915951274753153469390903309087566224945570236860321697517050558119353360368980568866528919129769588230597722879091314291649644524770663253904396721308366670968139034120208944224871689713462315330348945320700473476355110194089911944717447894712547023971938070462392048104228648715379204513309150854660945616952696892956618792373967392126122956719182647492979486356367434880793504023319943142505125074283461868516851102510983066771820114767083271584010324030843568154912100789149399980947957453935822732160501606714391650697546510416540972618394819845015429392500222222697849643445353487700343659293172358984926650399752683453778317226137734529012711841889660567352585137822929291047442343024560177143082323686565916515064741934930737336384607074295045438310478365852529599056119460218316325445095924542020091174492472115542880745812761217979110016883848554704994210618299566617096660547389764596609127466719780429522616809156715024835056716570961644960064132272231055403340829149844534256971336350075792350372960537863837502411206956615274196127689953263138171480517312563927065030695108398652624616313844446603900756839091011063933671763428119501303576599258596296919449953452519195520176979713311329591714231203241304324438265816460854047860557832424758250752463784963161763309131514858659673168540715073945825134207525892295107281800109537389501734284533416249887626005187051526684308342718556122445493826705094863418600512459714521291994257217001441128933710518154762652155257414257746734862428020685876076329593580916203074380299023061736639825068208150391263783789270867895076865886552568965962117337556720065242795451658900628430883337650576536042681334251522016264560069022893649390039884563858770889942832341286148278844672342299481906568191273125961317965296102884714038081259900956358805917578091215085625306742012389037795110663053399272564930037313298873424608286184025569213744023152781084249507877976591895067602339148668242664858563162866027256317023537872960811249339376618194814682278433856088359299947283850512454131379116295978353836058071557305191369829959736180776064455012731830338299830490121481325491956626695041144069784563246330814292339632001722790928832861229086245384461311818392945187262612118452896216604901106841774566269799534251197760635055754438369336940734130646807879317063763998402874250586384457199316498399282924783772146951926758356498147982260833336728178560653533413676401820254555217210863075293345604871441516186153180885556009832176305862072808401479055902797511348340336948050943815621602332041388841086640344285522327572671673269749417901024141686568911155992333060995817380503453755446965648362893171355421318930641042519369712095008166287000564251238788160348318340077770606070245242620142523241430814466466171225627517406671843067737224154401119961721643754322793573667666481929363271494348714987737691366769471591249477268752498473937744103175303874638452063362246244894666763677045701640341112043175880877572943361070671710104173049375648596700873477792089571797342604036942252790543221012096765619036531642143332637785297261996614736215086790914991442555757652381268194988108276055873517391968146053482308228278804418881657769412197060986441634978042839532508095102750973778439047742779703193469665033565452619517897898907695447933316002840182887352774924182769845310165308537403423305184960035790468202876130012328265352462960015923328277900796372097535776361908983788504248853540736562555634308778833910027929712990831094700709573292181908178076002674355566767309138362761327008796385487476264753929029383435085565773154401383219148488874460865691496080715077803590496332506846768496711361652846805039407738788492259594940275165391082920042113415868753111423817261708351613413539012864467368423829809270488531202922425781410172998065335939316874514052192063440391474238386633868172392669790036280403862668641417535085695859185256882974306158079702431805857264316080525334454455195272183611832220459865282699101991665943227600946681933238152517355085771979950208414824956884561642298230256134462070692960314763234140743735324204667735557167437674710462572302484885372864307584029076717307737044431348243158998331284722373642058483073344079220797840467689536492565665468546893300745263732273726357431938266550266399101299769957077236643354373516587921025206479629276436609463597052277733973088278722050750877725077938270143991129163778853691335603043419339924002691579291099912450056214396900905035819423997853148637329162056218979772104219531902408236411386102671395541262823531158163126810253183250877264606600894852085230539055572490759164029340101920406842477020700928660114612899685729200049238818163155647298629313379768657381656284306396874930802791187028589564469481000741269653315330538420202603300660911242768843653333639022698518011194838073174934441715758231949389183518950903964054173571207868216900451213201806088647637160375604619924392294521549835763480807292165950415674474963059197748675205702556128186689372425977164435036577158663268767159659314970092799139787147340455979604739505091125627388020337191494573580760612233583870408963237765715898481748489116523414411957501003886579383710505570518083454734962063588558021906217074712511929506978737954702432541701081521283391156184660814842298588696019998784240321162051382759563634369072984100910063861881892491428725364860963667543994781760768756651085351789054032097532381960272913162238954575266737950641257987277168434460267073296991299220833356228791866834633132075486618754511588852591292166924033812578708324135519926656900105173284692848489094492925296583702502930350044732890607488989798958096241045978755936093839025831626553629061339479913473023051062605483645232261933540283107047210959320882258578005037681501976209719700750014661659077916668804957901295598910418764571132252396308621381969927406399902279897334054111371697977991614125756857969885072811841419661208038304952863492246359559534476237701948665987759569336794959658673991215389385276507338316228792576348026615692331117272737269854611591563572026132688161259757518763949393742543123917906673478452634345541823990708734144096528218284331319005614168191477935554224378482314344444906730571878187981788495290110698145494280233410722548359983998963286199158570695069868632654064933803862116958074305598123202119637390945921366383516797792392660933091614338155039758948049613886165076478913968828252131159522537761482380943962589472640919247355590365907844047082793788773221423777878447919692473244060325379541896745869631280689893952113115715080548414014288177884894676286738589824672144112959622839036751303445335022601818460163122552987333856191235347150451924016228474088912911784101963884364369959149466759934890097180448931353106844420884804471244448577572264311557578643471835555025404610696746552274415758599785624952259017837147398350704184092432171844526451843212393097137530404448938105036455845775435036841684803623957815127930409829991910325051054266839906883992752588608279477194250727822901465665271382936794169451245006584309649484814695974467171440554198937979150405633128216383445429152018167382794797833007933004816153463823214508971529593341794663662514710145587212451978287695164032584951773041960394377812279179005398305595044545100904388915086741194551891565868838882954114581082989161310108795930384103107170696308900266654077568474649681402210012984739161921766244627978808899353183738997812241783039814013208141187225376790633455384841981784913930849152434034202484392741383830662287508781145938205211051384726816816553205713212237570615925191658726800453240865410624011905936185181976644431792025962626836969719119856901135337636377961658260302606283979537860702228923521923097244990994473621993529051102398226521232734927872964547753197590259951186861337819654961612617874851030724846771875214912980674020840028221792411039184792646864271314730990376279048888512997521970670093458783863966074370347651433603512982184593103234353752428291963824302431599865826274689491000345961016471871198723157792824516579498811154713178188050978253126193070600427924976256338960942755886183177056219945114182950911404391946905310882751140183385822607217694747172542723408245310809982857642221812203724881784443431310122616759008051905988085530601561623270722955825336181049203205544708508713297528039879361246368877148812138896775456042391284657913444514209718443667240276931913143283224165610200806935717839999638230732090996880756051955130322600196340178581939630547297897750314782310218803466261285177721083715771058161349389710435496869021678532896705348616517427239496157186467545959334861583029486711415547095027901490625791395786776957159587418597080115353143663526462467535221731644611795472710144954904936645750937379753063274427891172334352086922483097248085764873043345667710557714962155030084485081738184048430028697295330361817774787661428351576574778479602305302118162416056854053941325425050268407960032557392371470159235104356436408696423690031677032579329378212808116756035111190618255274260179094516888628965441539461623662547200392640784529744210336967725915474136478733600389483269966252353212951089746066033285362220568384662115699824779938984172605943982077055856276149087082116697356004687831154997811851214358537769117867680419648399304744109509753213528911835947864403116991801703425909259755156599602469430182483809807326613449392270283978118889252431623744147619232858691770120815426454557545825168458960058182549700310663997685193513904957322562971667067153134959099625366930085591208442447557707432227005644221439032726699082987797778995938378369454489912404757699883619081508608570641688565406398623933994484916760544526687673931879928574068203754338119095266993391486195326282507802772992138917437589631691801599352348221433755427026262607843742022589010933812907684117690412769999924318619700953604536629670223960098233199983515174441507348399313495151097056796417666214641852436449845573038131097449499187900382770671041678461326181565056466206797842511791911596207292757183297961675687693739445072025989261692779364762901356403775259116118904178960043013627598137093212835010685398179998438314615575473465332301114041438779587330358901818274428492070728937426282430577846229873196187738808564596588538454528180602973183887249671661202337597683147140913406947428616085127058497331965696614384592275555615295272497732667214834170421660350891069878687668128605436314981616790786098712867308746012609679068701373545836679681581598811748695570419046853830123905807639229984387996532092041463485132955144252964701298726237779162378242656477113341042412900026400823065958174016913614699045099123059125099730660450907204267939112101190385292256692324327404190017416558642416553661792873599773904766159882092025377706472260914243677105569852707933037945588514786874922226597143175667681191859880228267873384672528951273491468177507524590977805963383738663328145976150049883413621359018383568705680413309559899383819436858524194213399588299583965172184099558110913092736289742451898523040171979202537381180869401776216855686737787359889294994762434860822156118709560188626883135832734603058924010843248954604423203347700243013464765074405204738913715547504808949600279604324310836933844014455232919282918894616287400556190321908485318561797515627878297020395687231368075996507844623785465375303612411243475987048138754188353550900151393353067133003626768906364534248700190509998620927257484438265917198035771902550324860668741849208953619122282874710255209820687085124492989435522918191231706722415811264205386292279510136751453176847173820965239801182017185406327764884532586224837946286489940652293789726520250796968477403495127245235821433454397515929310910642458740040647069868146579266211661606552237323232234481546973378261264300211815122873961595084588933306782974577205356375388201861679772544708913864072204155025791013615695596225660084019560896689601019181379665374420583523215562293567587563312500336415879263849917210011045254474781504917574086079573227176829542676072630311984916004934711117010725421957790692505395785051149286408433676371035249149882845739731609987816859326565805442590372534117459209026729717694343563877927522952110066063432770433782848412192714888806906454506074934616209559069970275901459843468276973659483262270398763755234893770958063439718400719810136119470840190561805627672915964131440349104041098517496540130261371535874749717861025499441727474692299104299436124508043260180381138629994220072550151658784083630857213484941600539280132722916655449422155835929512224301689093228179538226449273517938813058800913778860759217884526746944480254325849811038337031418725312427714120074429006648790954360096225971915531521974416213248087171736211218364339325187597659200187465735172484237798888475394247150356857157491792202317608668095882677914379426876224006847016553476185580257627366743287543649244528116727374091283676888331819759432897800228821834615838271375455118812351761416368936882947562187176335750099036344147504821058534051639446384165513731875661343720486727714071283713471318780737647813467313361070100917475096628155938515156358318182345314124434051869979299550213868985562341427171909515622713080006309229629131506914017169067711152380594806571897311170124337711698644431351999759306000434750661093557051697847320861806983547138528119883870572238355983099883607407778660931660639277947141585873717668483423075380230867263328156839946869772640737244185481349058515094212056606813884762141495138883717187483079064520176888929161796627057767660770179545923179639081840302226833640837536505959597529437619319139152898985116703754138402127720430859224404679499242372474783710410896976343611803290581675618793205768976610120263597569503849486425556696339665490929707184052335597163223237158550085272241036278196538391826107524947387840162788214461780757705701261024251577339567540067409694455808005203377401855520602610179629333571230288021506402202887433056669666962098073454407022811416821955612762516280566512785316000319531917950689738285718845721996377703377080996982260172799829684741282686333602398667695931292095773743621686101667410431992757079281788430051223160606239635109781792819802731879899495589027235262778482865197169833153045309329550479276695630140168981888331659922011268915025471462048539116134568351303807811763663783008593119990648327565807773694251371977263362880209263672853336856252037244024696155132506352591687903412672137560073131188264822657008113095654699409665980447817898931379387667657996340266227004601593647089967747814271469130479627606417553197292287738734557581294760599735074973034627266102721552442747453684488718098809121817486615612009769899290996152264456890521919631079581679426974834733165219600858375163826423817855290933680356568920544468787456761440691627917187383449005067727517753831799545415279475492941949036917932535896382311629525888475132926437341674908388546595233434538442637252067540738141554809787863810937818300954763499204849215439114747573091878106692775666994961875004976216725051343152996044337087989995004057439081179120998347578070144788444050666740044463553948708403939015686017035589505679992690543991821913191730541885591455363132737724411799674683623522623526009918484437135418264157252178589728374996467598349692349637841843167050644656667848844592662538917394416946994825901277273465208476745279293182083130384595564603623641755534122959367861322022378615201354329684253003734690160547870942400393629520415558566260579483508717811728680798843992380042094532051829928661149239443150720923647298823515938671136204871263844264107180674989530437053013733414711575707165056251793072327895421319573028880000476507085141381547666621822406235727700590308229265166365731144273270583213508533359710158047062661762921545534425233852644244062497041672513543361028705252499042513636186265393478026474421202602224464998217167236061725118693476164294166270543460111747442973028525796092380732764177588500232037281707628729772966776875129128466815786851360441793325090358683161741822812489433601450987854637703640373486869681630166982724015380722597717359191796847375136175842890034264859384331012823164695923076209853144121802538255071048452274369982941035602677093397316194517419555329043072364794971347049218971097292580715872537380104698411493469833497666297624279201319162540268207053142915907676335349980647821501269815235434073733033827925562208235752688843068018041971661090372961210573700857572667137120361579333908101642916777825113921644897080491989967493202037434414635229695540503621507838289566317782231723133122209342915438108845263328946070325064670807554324908610248906687792274536191056583614228735496846719668441271561465926083262359593256034597205418636296230950857167304094330149675657735841897383432530768883681414780060813651522952885566825158954181050585947946623774334077951098842749039955740703537019044280382501739722764275002636721422408788067261749280504355228231153472088328886390156460364512029087027801578987452574218665676114806880044868293828453224652156968125766246248201724761887524035733088933115645340087427690122714547953964806466491815414841557753882938868594921809989081851567202275524243575336786616659252244772837988212546284536015167197171763598367811658197528915383245541959801149505904430589440979940414263208834357849367164356671597632474208953672704859801584655903436110429434397625990334476639698322473916022632983346789747697523623028136281242676917666693669913422560901286244408148779714056424832101389968195914895140988979964505953626412689133599032229342424989672397474758904101744933977401434276439812425547416470517891024951215497844539169583791666919374951208639456061078631984365189113195946773083041573756229292546987710132930212768915869231670786536590782793813312443771453904645883165403250649020833813361948694495541838189612474909267626562411845365626896171762341629651585204174064540782501586768391025839574254476845235378197335307693494672718289603115759957235160241025288356315907542638576342245692046727854829829135668087746805864854267790203683621890019668551663060129100739869766250593935385448107588664274364809516222196956313653914485823956991881295916747656655799764731512626520482832720913710666038597900954787165850117316472335860502511847104998805110902955030980737373846027380020776382897417892497057563297410045073634862337053933372543509657043076662962977185258882629142437820678939005532914079943016697781207208905775889907147149356094522313336455104269509142110557367176364421709491518422424885517494819107745644042144016239597146460249287016161126610695248855398529243316355938162802188620103927536612037055518963995991717796161446508508489442458686811617217890851757250215116142893161438027087171957476617474083294407569189685170268767075251402857948273293260767870569662546677243240210256939983686134873135027354346310143798550896128283930522792091979308251725963295480798307023992002913718565402538375794918227185507054326742093780815705595533733638759042873153044951938222520372178348652200261700436325399102969246041917088280430785268623960116574566062153116231180071163853236619679773716960296152483743279342480507491148157672980592228201136611244096522360867498633602817872242610055269804657946102689689755744061406214053839934114391066165404981529232339025950483584649565623775855177742610259586234590697334154899372784073659681104828855873148220616043308829258946369761074676346986745000184213909941667741064837852729127995962649353296620269774112505410847010065160409910930836562790886717918543571274953957118767214803127606756191424190650843316011976902604920660767519124479677839476283537170229869481800328349515506371062705607564550746896127606106941592810070124775035960474742116367458606743644012530702241807916001063892493888751507445493822189413074704799711353030404720071737219527734401699606490421167039047635044153955387930762965375456800228569379032600299645726518214878552703689769305171507331838712683903155707630953957976915893102463076853196408526530196379658896688626415118671298093325919506260741927437691758397503882799201937465827120626396439419587077582978327396038971170545628112001887418464777834909341433204759255038315933816272101392098080120733056972790128985546112338021482920767443531950702483259168194611466812792824355757373792313820338392321222950379301739178742584284426971259376694722161877311158726428709523507423996744130173765273945941220689621326772585282875625655762166615774067881697896674163506662857147523355315225020451836092904370695620913474885933489510243921130367130532109448930732083069298952887376776283498336926185607525926398531521736428408347142233516880513507864730277591168727606202603062016578175151187563771897950865684315749470785986172492998438736021182560902399877354172618081528130157527935593727112588315964589785008932902406030846844100598213104917181906912790719332854618503166129930730580554357627147733176072828352041922699846567201443467667816602750760433856791049580904311427924701822586410608466537484036659626589398509915859664253935302887468268181404762245268136175825796127755974566855250406537249419418042222606611949403575637927512783522104370877606208837716287205614977399888353677627543192262666940981605824319435121667904057128637348753995198495442681301617788213629975190781629737139613733322592541475616985604631282636289708438848470394832817950268967369175055226786309813210936064736458211651404004800917085502631924248471617826930610304670016084472241727044777976162169777670070207381537175404846288276372135979012278372664650109267528655361822898288150427275561686319941524354759232908333789133694939543030991147622086980896754448704304676917783478253789481041235186951194519035945818383152872561685642145970086605354338433972252801036488895420588899581390448370978743712332034224447342823013860982155460185545263097221762209986841197857000720821985062154027549909104415655587672420374704080222959955470597617182134286599446297993051934545665029474228405725445785611824345874636853279212251752920286423354027384299876202255022698683869423827755869206665848344246812004011006524135404124727608454460402618091341729530535922609985643050315114862990039354715803141300456722004670310040293892135659991691537571362210616469926551197534789373101960704756696449409900724776720358512067963147828002606575855184384728465495484559126571344539656188130314446759688096456961785759402765560482357979238486421348263710201932052656449447298282213879910464789483196912345489193033953503504725241857328901731745989201973433805107937004301305839893342106971348783334654760079734206872335409732239634587283275390402001666444278213850563172740767237630936970905850995920515891293912377748504131887404856747843301706229993214843162915892406179503642242971354215233324791815513270227771375069469672075189588816338770206985003082199122224606851150701025258153278528724465710200952407135031313968680433763005092279805742364742469674331880183359156122764464783513195992374789986970648161600918277594627271749426112852159742042626662369641863144220935094361511558851821408608747198185907466690449278654365606084667833349089378373909947497021714999938935873520902631456916262539690814333143255160099928006720322285698176669400207727614396169424860462437702866096378599111776695219785094842674228534928054651920616135178752432583902678124909045946235181589475691839495152998001474300332370714621164853506510032356557187468944992442444132582956922207957570413023346023395251536188244231574908711902866670005710817285236287666300341341267404445370588080528491950566975827821606513634313705087774647837638932980479635053224669856115173916360858293118663436302642861401026410703656186561573934209691194807347345533463819780945709275609528534565601361818016582112443468183219413027154534486109159621439669043571766865151312557771535401018222849373627548825156938573686926436559759353142584839552973989855950991729651478003744779333615256463264229114984550331672638590623605450209902028561714772672777805191149248394527726912671728005641428289219491791253533378363974859405825992136373479075054515662901853675813939194259184289404254264811033300311046870227082722965048268233993052878721142767912355595915133923808654164680136694820616226430288049687765886478091472891343159317162491068774853947380239589701865534112479664785241178923261387470017337663911420127783172678690261103913600547195710434176943302234575936433274768195007811066297465450278252484152338879347185932740346011144226642230348157244643582980431351718295544644016629093400944154042012665519100110538585236268762273631424630193199732316581328022607374569309691720323652790919984664414684621960536023825899920694442748272589013607915200719532497760789989505537088479334439121506272233450928269338134179262657553582260558534673014698046008491720246450335950168164665062205205164388620556375830397752264354119995527343821068189323810771229560807960347671513305439821656081695199918904157942049311181791509557828174608654341388163089598543655934869628630140757022318763503537335891948644996182006603644947547481526264008168086207099377620710469495359230631725532198494318777259263042924221686111397513051609556735534263393387931324004133204526058704080763164500716377871195458807210774334067587487063971036714397525463080341986258597445142873687154849563411978756716817557508410187995493092411106399177744684426558319805982989585760749788549224056472554831692454784955549421433472536333723542640358966880229870365733571593942529501975353286014925914374010479576435668437499875969880928152114205595915382783750649249090417028585741287639151048202388330486225775628552112869926314991207347810494192016546237331964132601128242404516739730348858661179558044335416376595652546662192863467607702114881951352123166654462518511024554767640870315630359334225304475165477298551501469451189436206330561180433511883028021344262016492558061995642486524836447167923751227398342046911526547748440993259991452429706556873130904999992833804715654099288667767081994792384969369623043110343696039019813663245683908780843340167628087605790372929183896088609572485578179568130072519015852645472459109307256905263842083959144669630671975537070906996958249907419447498909004152206816920960055867682712195361980368218728676624983773674336100339615098468338662892573412427118851026856558341631062483538945567395232964654554943323613894188894543238559944549219144287295454223310495231975034232322875907225766511805504856035233170834344681125813375984742477763111917438945549084503072210760100385649155322787411521050090670410895126955245342078068660400992299224310310037061511528360225426073017619945170241554266985862377635649398107725578123394836424175014053062786835278873506567972463522903237885214551298965077442898028201932914271455043982650537483735878127754273784069636907738376946252859589751105685181894715777292676974511351904527228375690397348716638340884822598089796945670653758938158953556582194004853017072270889207338464746787647654624409543107987606360393592675334968510511910805508598593112624964343200798532718752731784508666508276547985038648545115259690296079432256900730559375581202417650928614170042809444582149148391669684052063467785573979065441888834432199137606366502296592874881215673616168117395937675760601289089211809915683026212506683758502891845428397604135746539365037645878927493016053693680753091314218084820029533736550558257369911416048509751197915416137757544201666662457703009973050730787124115298419737308954059848745593063181975256393868784176528675178704146891115782274313664081545191143573670671616721596439172483652032085648901292819668178019875691164419994712604078674100489352454452904306633722796342258005045836611643464942677926264159029197910686336221027354907261489874850379676005582221196266222472244344679919773185531691500500937134987685163012803732952809162101410228947917635022992739161491349040724967526199587605844157920069046263309993141764195893722815591823193517870136819659429242436330542032391051201736393865487713291247688573944551345995818179096745544014880090079718826453283102935606033414547954986317387296897647471549516137933767237263836421238837686432669282486200689954803730557899163471750055832385712084460470476161519288211344849350320428664001278788155716428519709278802573889994888725064901257886566626381159835143055205115631664016920514988157630028027625095367686934892792596973934321609482622979892796357161591891847974273614963453649345473603839345684338219888572734376216295017012668788669615626203439949587289674996024896983572075656272761316805889230604409386892712270410500874236186532241040399582039755877693164358260414143834041380750137168545809110428707389714810394621402895777065698417588336238522271292165051784556289190298559200128016617660480168545692197796459340111548689679903693320470077227095121778776025141475635647078665849097177917401408494847692035203791232767770899821071106441037428372902157104987464122770875212080548291374705186164718072574890676382513584332384081066240565271090034956125270734056522470916667865905484310028408440178935668303972803596637157123845152654152551884968384390148696898507866019284501118264076963023886059293575240220592706747406046944310413535261506042109751521528280083443079045535540101647650632887930271836943221611798790186377127003653191786108302092857497283968609585695139584386051425718221160680481771074961814934210549831131411620582749248370982346618096175992806598065366990301941163548835308785994264724825425929465377309444639139752208936164721744900601683194360647915963019606374405361237990473615268473656593246848893355262568571545406978935081565123265895989832617107747227073629953850832541639556302338325888242253299854808823771553204932210461221912570317748211129697650614419714959917102948312256842298601321780044000419741681437091281314790545939759263948606655434559653144463624869231822507692440287313876884422114833936203417393373624172869129812951854458582767742457548161845585822452888643186466948347881790116783370040274569682237827447682351239600058508413260881412200602235838627082696669501570620783272351966656612601284563486271668791609780520498433106818274024812848698095248112782599776015854002247565005851869701127780304352514782345204488160919313248982837074741262792340355099108382036927458911779085855059554142971895233516138335350252155299603738007541456154478406352578445488490673544479062427864481482545003438954758626147291949199653526813210921814611049430219633139762680222136324442664407722439699229535608206881343246716218978474103149989454956927155789105911714618481384741774504638317993310614784070513214645493300997494502922856938668144569921100147447709146537606971147423947508014394128793522851153233705953794714060667975064657750208229625569488285346792715308935244389578464918035252819818294282136257582059438898291335695978705888274064614142433487373245308941483116491748160063253299811246403151421727124764617683002480253337679742058334547738335264446776173011922895943432335747887762005847428155780451863307877472155393993047275044774102178107648996173884019385665114605167730007537838218910080273935138999360164208412323111972582989124153484276196708256284928839164171142236008180007544952292002554528284987135537720576687880097309489615772029756945149276197406010608190618026078987729758124129554257933928691557669084381548083195094703638629460326120779768393185317069146185848524861040928454166866786022962355320095852264098630232620786453172419727252314017503311062409853078518734968184488852562579975320417402692123869062819495586818758449862227621987831080200245117825461247741344779150586534797546673639275953435283666267809632596403682003306032952055486301642103533866367183092977912809794585490889989300621632597674071031455244747365825428261167958160877129983600382214617732705974643699132867452350912067002573320928975053105257630269030781068730723516797991488593153497421684459388048318946421721898367899372842726974915957574688265588150904114957986482864875411201247068500786268958566230439662540357720791423155504897220162131350952549609410659652925734958609389857543046518572237347430390648528348856484515054852674153344067738850403242058853643695673925585680916319146929581612409168006985887780724056518160321903514510484670161340401378001799974472201157463387840342169101259140980253920680938472921651848283482559255083858979930850154966904072564554813287453115587608900513962530525798047440003065227579505259651135870899991155841134152359697959167401136192261771406903778318116298631289014565282943328440711393520234050366637781388141094698772958554768731385771950586975894647904180898651558958880799648125051168890045198521443021724127915768280188933070577224286784383840533127128230411471323592804193059982848322714398575195017241496206941168720844229500106128648311578282476930256725697583895521518336430706121129877445002350897772775533779386517809239064718469113506822254277015380534380179705027071046829976059915156363626840557401916195002552105690030903879615310564104853569598402904500864442469509932258574788029743090075578283317610477088546129069637608712871358522895364118923296551581034721823433491173005268884994514404026025915094200301155667822621059560516792192273173253627905093550970525592884168388344856637612928203719121994400392673693972869923046613540483988985525863313255627387146640866784220588044780189626344033122563045548993292545046736038165832782631342616105879002928858958551056816030615217620871257543894487485790274582574514117325765837941064003424686169580712333865668945752839493929348859975927940566089657472690806797570108076431190932765423983778563448707644245633690660322184659848312746895535642743077755993633123846370346009128120868352769363433522072694222688558240526091856732419063062893462723282036133051796587375842050243804346602242541736824462314259264462969888575798247404312157056994731192946710213015639191926729438905496834323909631739193337127352630087420346644781433315418884578304650851581588228419617333532167655633125551877331223938759147255166933950025261092424645181133239322977414386683289958034077513104243177883882576961189294340207311487816509310528676013641317302600732737625220554898143163350084622233798005544162610445508918955604777959483485382955513425750365030363513660923087221831573031771878320049151612212498952305184490343325103142698153214363144011705857809101607015688209939480767169318866483712433451605385251743379327611191251700020354288874421623034026329458548452082824818940756653896047527572291194969049764847173004623351191606576966772952746799953913700076793307966722120737203826078095876121583354279259737338438265526455116196899312855673311657545480900031637615048262425025205033151688677658489648372546686886251772999083591142926443444444059578937758820257691740351651753274453960247826852113472161420996474092798752685753222210525859600649549514550844805771430761983088126756748001846489144080272295037888524361279222923546845129032870647503227306693737063144607651955643715239680589977412369777924051651404627671900750448503404587703380109769158095494835932741407739652964503404076153354434728460626751531107341495498890061684893368745031755026976223854717879613510655721766197797884212483086968119977031396933265082518277747364642090596191755110172488781269479462520971588574279450758706433990185794291126357734781641823055488856461227055608501899744895522433625666518326863165848268980442007442852768003347978273878003855065699377089826481697166063091500482532010644906504066417796249077709008027174802281644803136305989865539129289321739378930696808210322251814317634308939824294779016659655214333538364152976088488818733175520866935648397781932545903766234133435404321091120742879453536715738144872146574800590948313707840703477001852431702868779175162844019446483057534062667865622626328500369466684854906378592112056411333387421563172991303740694832535852526554019579287149350897463811993266199175089644068210689333878104140164339304746348038335822492205208872483734764458319866888544990264024654863862530063284385381055639797308934054321176675745800500167737626713064185183861615697254795116910911560206421777289824949173185851024554201019395891198794917249792963007685742925692281370652703702364138778304581268675807461727653058573084592395962449113683846761040651174934899532924649915935623084401829684149566758644312586735510442049059696880987459679685421720940559978942862899202514015667363909975632738879482757393757155032763692602699604112254002110650134174770310011102886402210778557320174528969339807197525601235163295995279182971949772506235122003989107382144315461107494953604394572867414816870686812606181850292622858002454585179033677904476723551244530633938416044280177543488557312045548891189831381464389706475851268010174681513505216113305576914001508910098934875919726554953254587948318555113502172779305306232532086899459978605920719864466195516044988506474974080864344172447154213582578217369814855336201218515814534686311313434622441092626958799292699058762779421991576400756011048994190868320679644927392489295058405382469471220732769311950643086910864289241993759525240614218815994473459116873575774690239203062908977229377347127698081557465034390382148605140597264722318785056584361543973420940218933390999606341511262919901135125525147971778463225490274625982507133841254322472895461877495997919633276350857232796787353225557994123431695934808158470601745846962696682357973990570489133794470371328912999264395935320366525202844869517700492157311199117987030315508461146154781438266426014996099048187645842342562579365125843150258386456035937845343047997141121703878994950541386227971718603870842323871445115441587805988343281684408160549931273897580108702680675747924051058017721782645351908552573164414052830657937077775260868584721910689689640439163170409946649073176550523081030239900428088626085433129671375271574963562293584649875771978816448710469150800136261918270831705199235718639020569557956778182604661034278119985452441902998626660120937113676861785986808941770649506451412685499532716683141175787204832640372151403400680967549430469903216741360065687468855832633139237195841632947912570351830854682296506055723076379484319449692155362547082020709356034173763085282519848936365909923846870867978152651158566816830386991606531902956896724434802853283363557856977977869984175787054768624267584750565297457322846375350464196874798073959287328693815570520638040815705192618061734952443293505687415962190484717690220779920604603262657153758908956341387518818439707757700885131047927664979016900529463430995857832633978518937972098329159751753346473092749484293274679346533726021090028953210104492723902255068237036106216796490964870820404194203342097287830803596263062646552606164407237348728303007932630899321788058369675427545597702619001372541549416617713497152861505113702341256478791914308190026034026590809253334984484318593776964903696924268548731243309115113714774109491436815503271404519871354436203559285775411412824237044192397853481634408373516565586433527336788051423718694507175970568834557495923601398668337156007923429633102714704614315211583346905759534479586808228091374957563627115117526394822834864147320897021171729394228432871398036060948009639035154115347890040088573644369893532858065474129915600710448415758995378910590443347406351323482604578231998183001939433812722000109142713579657974864643216118260656700381427875255510627000128144566925831373488711948553073795214799644569623833257655633107217975068179233073870500212718392129031016336862547020853288811230268785157738498974235641018168590644982164567954963199289545898440798105044539260409774922105221303819573248712503597367908556780883879338247873772780150307066292482603583823075916661672949620382888598026616585797823419271704748007723989685852142681589008000801991421467613874900194342371801085239346850750877541059870589271054882208321030726621962587892873177515609124760935468748937124744183979907304808467906508304663810114062833406689932105365829161354790919696400514056580954313857986830770291339408262912827143562340102744744810151901687513582620507502177498922662061338679243920100472396865681605875405708490174771163232391479223191171385762086045659654490519314554818988940351879517940899772130946805086849936256749019229437562405348367053971405844237351405365066921207209897369646302608117947618427108556179378553565845837137276253763355312124918723892664266912213904968781331544177429962892303798606768443228931155388567338854357617840789514746027982076576073954345177770020397269315297303982440036863163607570701525900585779675153380002237425546277212009942524943517855149391551500483869958863377559052160409784856178737149486783428792308769158182165841922933940557896145926199119412548922564859400103688617836563800461795079213374976837824409677484687621061755743682097944480069701602344073425785436145907443601050301443415296786764092019387303526932064961150424428848837846161660531498533855756029124930792121128219932906877765626832747723512644288075212495968866875831266748471174222504563753413112787016850502142835806390993755669606304005501324833627608969574700876455036620357084105069469203611271310362863682387342737081650787977401494606365412259930816345017360288558442442795266426259763957129046882182556985799884311925177501942635220920618103939039342039933921788404682731850496592848684477532235050875453099084278325008115591305284935112765525399143267982347658693580777441189664178027725626254419743908961367186936923521342924870887862310714109279939549148469789317711754035800778477682563583729595876695963851896751871101071631225369496782609961339990787901503400361054501250377918852407578292409152120721739494091619296118159709954697855927568275978397830893722474300473676999772702487916803957751835295880336159657255896140817321208382766130603244993016631130976709326662698597231996024649776404265748742468089665135455049602515227013682292755779801615468075808429696294512024503611250296485928236074598621271495272389981566964119851344461671790290194420092931462617937943783333397503410571508746858386667974908257927055455776503808481757987624033767549585317343272694042685844847495485167530808343821283390340224856974010292445581788392768763093119207708562207056870202626248646493426593529582404183055895706480035252323068777561972853899344140491606924919909702580452695923626524672464062874126321514508026728274994591791872238392324340344117186285977013019675022551141828505633190406977294827596651770260859054056053513725149205063689713963777950755761876686758821672177263301419448475201286643145674650378560002420288386363204402452232619730446072144849697768727108370769789195035840032325396100068127499948729932239904684848605753220545810554549860229814333144146067963133487094002787384326048503306142562223419158368311247282894156451329529646067532544884688757940707630377137638164435508555682412255922964791808437113545647585835851997757874084773906075249407356019215101872645034192510349099281075207385002328532164814898661100134006880788460280576115179586380283505087818477070169905669334717921419676322016197137743173399005171217847141708693589196360268056384031762402709934569921672148664654384997741560853615315324259668209824171698824034761384309384548237371467781754067517380547156134026744209935459610593998484831972746589434205620158155697276609295634234536681809658544584935271238567623031467410038169702133201150577279302808181407851753003440978945579674496814352587940754432248645423320731362536630757037942770399133014430028810352537836164612819750240732058686148703696688041791763610287845556439400446992371062753091509321285891918230441510049756681236762990410415117221534700366620467670835492213665334884270573960470325238076801855362121191927295726729048628188522268105718533793926341917247180834601529652088197391003810535059858035237456329836657309168691026327544075787656205255976698333594476851136954051391092298060094892120692261862476530920915250131813820656257686575695948703782315954846191100158145562229429738624966154677416048567724162743326592379771862802794213144497829574288816928056331868791283338329804090433739115111743192597989001664782246715104856140202953309638560234010861832577155586242390266316293746220915654597664899179958527473599430338332778579590665588282322870091172287104689025713647674337916429722685743271378100286980055552370984432148801085196621617112488305409260803079655671262212012959905092251975865341977235079892872770039283657741677106315557636758289101027070961574274884227326165095168004309590500477481424687722347896705000798188889212479252177227904784122376586855171435406961757671305537052851021276209890016164257031820932876734297314045708980966641663309605042024500001616261353432205678047272819958694778461026143749006349017645706340090261817337246077913951612000466871255185983244888852181790499142104352874457486286617742972710258005606550369780589613565266415781495108406974341779030913173215719218152665909589166050294480310597367957725310573514063175279466647249809716924592656342300071350941438370529596941749193906067256658807194352815281264688446805553084179004757222523985592665845373073106350590814606615322809828829117097227492155314932786634774300858994906703402517288476595276480626813402264616842262496164765671741500628167004145710636731458100450299240563442637894868350858563806497674909089026084233639451810099046915363286535065369457547475782726852612395950582800032894526661637552799590466095277242036726718244062536885679122591362363810845231305406740112702194422002272500129929575437962082224185834380860575899741655871176057778922152921621110235657110250044674893328598552537789691072086219349144197751038002763136494539452068189419835726330605887172675224277902128062903265308873203049913942751757626965596333533441940650346156158330253384768244911153451838997763585708732519478583579721654388375392119078110268844785376822607844402452022330280522584795735451368210858647209483068956710732147177685665584977471158774749629421025000899682315848123444315579235460359302841712893502881058816691082007040464790746178209092477894218019838832782736748886196456730860260150967872879854150016283946475340972335959108418262631126501729130243015366053437872163039425176616894560791296645569452890767464509785331717233923761317887297938037630085419728770640265873962041094207577985938890270684461829880153796811078066902158601618740286733215568883571551751749945553240569662363527310002984069822091008170151705342246403394007264234070704089114776120487971080725247312720343165754808652371262561933432810689843378671050304150267564319514111488723107375548553594489925833806192006167308962090944882310962944280074195891406930728244670447293351442030750760473217650555049022687649131973481573725328941339416498004959955487193229454822890191134072991245383203098805938923479707139103777658549215012110908579596683782408134470052191575929875944526164922914381423582977076751400617727038218229103688571680004675371042701236389223755968109219876078349176002375839194180680068821201243209779451141501574530163480601483853388051059957863515671640694234424073390820596897294625104739071812076401955283682878346766216910406483853244557333346092820358449178851394781524555632074643365377397451206066876288985224514362688766769609399762662001725081717959127487786982853568108580687341709619848400004085074297151848726197101248320382940572559535975634730560236248364824488886505771889794523838156030409813195296426387308669309706963610926308963601891140296107253667734142633899968741312427745058282075318716733931332609495439279290220241499325404396347154601920579726039618861657362291349260035541887593216690145266391508528729361102387285466030375846368739341445139498251892971129945142155697961390342484120520221664080533965821095977824762567690825689819179120357995180240396115980782370772524403859114988189236300924437007861439313396616673532246949033754216854923110295543994516659978460197688274690407389118827857084058961511968211783330027821881998000312987226653454160068987918461535202077266635995654372234911533170955278796399155083752195961447610816878763472259112926334452490175767459771594537967866733854250136826787846218994792829918087603356025549081176002120081331940568382593220299166981648698175547204419994830021032973965521621685615062418022055464350049099339154905029730066398929590018034250491759905095347748447127283514304198597396520916000526074315556517215013254349498502378032438515325299848031708739272129138465706181022271765083670496155528099255371919649813066723202749951906157851543480053357115607575474335375284213765495015046916331643104257702249846630455527489671470155775751493611894493202150406910425754242950606026591099594157059419867793496303117401972689826413475182317013590164194960232922920266607701175410171431003035398744286244577471129233982351980670736725978615354809010489944468739915485103772082925084484450542821885171158328902043128260552517030888190064699960308962089060868323614206545464535341614415783163581346722587446746867292662000649734654278709845289016576872114700308460299078158117677140533473550046408526357677145549863948831534650836776164313192686972337302047257479497526763904555595172519344087167653193252975733591067592805808583729718804502705393536508703142129666496782867529349987565493208203199884358950459681720731032597707239927983104701756802436752783127618132915524086961214263273598016004794267810487371575316042070503296715269895750091894723507993839472955701554147561240500956705679075907262057711540923602323477784877592711869266800138955797612992600505596434711500791467618136662592385770190162516528488594611577589498687274947945133506348234595728177373498321447012506290786273775584780878798419855693029543033414099809811928593056147629181807466255637444335864427975420242907188817173613819058819145837724991531300980815756090371813617682374726252681654262513068991531860097585512637587739068759857392009260296425048282526197284653866335757267205885496986416121722018551949001180647996357576325172415680568972693284728930385013697782654462431717068220103121393201958998502052194112348116396943221419285605754210449680724967924110349482441074257045387667613685736462400860568811764482244163972358688385987911755454403033882164114089014673145335913070453569281512749186251021462917384198997243557874455530424642908207186092895654047999048171724815680182102883148102459517656653704359029903868440546548861831525462496505504867299677484447770327557440407362963526554744752423177712847272376297705901250272086015473200919671155704822001753168690341196356413941915927221594910323342944429537159409343450066715431362958569208373296568661642668655691749157430419276062727975663847421588649225032848020564690536002722068889613205429096826917218790227891646932581912810403907173003345892046144856488441503561773815574923106109188096881988450936006569957318704959949736620048283037417027922276540292047329146535209455993935882100406092426042371285496638517590804845333518531870185545303576889590268139217195125339602079349488420840734975226908785602219749215645768525191154041329632239158300961267953411123693418947299093164969205889417422998857463875227901093745837800180030290743968259108172131307864089010157556437243755172734082846643336285784175583871150183824988661951416134000908323604783104323228305086284546761216092381773543335971964193033238504506230884998563439892892750779114963472228210441532281732384000922922996061731057769271710235424311410508535259722478009923610998363551807818363403182267365769994962662602694744357905621778463557038975013252638280366161065374702682635299614196099694791853332864994417506005583615998449013229082386529469160608479809046710506438322115161088036739216452490714776686062629511906272410307783120117426968515637026294572695737528094184004290267484327102229929078769030233319279739228867521814122393223170203184531736592745719246865418982969050619329801265460551957890210577473763014754610334605856098502950562222192402093571189752778828032267009822250471812823353576016980283234402679627003549459238316576770623569378128187612645551433759497961435333082032010716504520551071621521302734282909603060430237783137818956404659293696071292245255673271165813966528478533043046094245663141825613659041816895954552428275400576417922087941795278741271512144576433643514176807819844594422344437914721149401256995977241810715699195813970066939108613383222003047910733691362260486883205547120769531533908497567787212162425856019129530666306555809995397969129670198606068310029914251175109116123538079571133196866952623722798809289731188301150820220003547270695918586950944647182082871994911498609248373959893774843236915852045525984410716977843632326277574144535517761385914709092556753820898388689119952720313434412889097006090180835151800554320201948566695741770569324567495263693644778083776370773858036469703937141659941522571101173324572767413729667639321059272010359290103948484562278226094534633272665024955590457160843453600192969299324873970440356061142446396623556414540554871662297064949816709929073830666340733389231461483793350429180886916113877367535832222222277475369757588018801328977801077366203875641852748798010733809908882753657262568293171875989224294970513791371040521167829360513189790114811566156214287174860911049879712918024905616528679332269131555662250415754253310326777044869019455018407657769901050028235408305753907988155470914105334404519122533565379444988030597071527218278256148790745127987593083655596758720760388364792622469910932799298170503576643412188092217286809722959523953256486223845285175403799648394437941276983423783417524069007672363990510618098965571146387441793330045467395884386513510784200257215613983958945951872103038494852114124765431640927250039085656318612800071765238262542056790891662722163210766109617056099049381186322782799342455991365414735315715349160339770518250642605995404117028624362963759861030700425984494616197309685710744076575477496854430086757693699389009596921044167213935252435898528971122814444108245982889900561614924094766265274407962965837325867293358247035047962509647762734227950734926385317444750391172672682595585647986764207547032972467318789713267989406069996998183666979886281569150404151677724547225947513101870779551273828813900223010743678849855229011068183002104346667802118466609607291009168508760785362308848831518146350861347300700945297373710882304519572740972699099030436447111496208480564344030786724128648066290563023423204336193252028695357026566435834725584395036695925658404859724290877247405926854984875913557277777172210581464717251772471746489762777829622780298966047052800078626031130500557656617360330765960324007012304124080200633200085437016152027854944213217879591802682592730009586741297585499753862728842639326481651118913932126282652240752743414161473430640851807736899393334089220770040534922736700695063147218263958206956236867882676565899064061896781390812659725894456126431686679583927725423405038849144483057942373324262782140307056417921305504310663107960125880024319157568251027350615220717904527002191809264741003596186790768375571537160531697036915036095597407188500095491745069277198132799597697461684475715324933409961807114112223613228790332463291027438503814658435861092361460560280806272999706123209915675740830757881099825949460655225993196801102806001077524269665697947070274637595819789481277900823299792564537787554192756189551764845818687629908738390416146792214179259855419964799856663438340994085411930106846204790314169040584494900519821746603402166203029063790657876437382273046983404193207459753889868987662879224491799826957769157837681606057594651150422738701159144866365273648816834579027185355031269976768291687963563642024968780364927257041081252300178068387210582004103769936453487309631270346119069286460443474966465788161696771911024119670447446398863057628913862032468869751511303226430450367224306764985694579553898817570194126238807337392355074490480286726165691231136581210736104056722803855135181576036713080598754564978442894234480875006805802068257628100460375289306098892976985396933340245701251987290318326419365448218728378615957144431915869064901673559851848351717282902600260646373192975325571700454513272645807860220019554663437338907010775949199673669253096642800876331905164410183495035451147418499073000257958057945220318673911392861075283978298693275755920258313781454480625395921263702954737583169688597383626536654766185611205086312076054808730334820200524359096418916529925337333100675811311501656810605767138651879123949356899816439826207775760041938293591510298580893654750265825487923946844593690041006142538631113984294158643135974838045595700261050194027219692599144099644481910060593976360888308097696426187848070710229168429620012456900585846151806683904101978765354795277090291746381711773646656747350902600152418156124868384718686381345833210365403215752878476770762625524035561727498636997205922441405299647436301549848499029797996874726927310201233224480947305252827333308869863638289955264278884176391091136359554160279378879649072891432589274777149832994495420621409881532524344222316159675399001348874344501498099181636089615774655201392594712569771657740893677544627250040683811678786394880491924034110705174753195256383712020066154270081089497005030678933187403346220277440636030329108336260519306519150735593184936126215305961547467511162042989925250829612715251658119630544606384235032428665612563710580787058850024450719701460391361842146246386128601392244298244053735697845699978281001132890058564694258546987729014110553085102535009589301912204679597912367706255769032038869697318053971003824530749798828838398583906634734329913552154666282390678998580760872632051111504161434028468962385401010405502943893370288181454225560055108223529599967190352928451686449766366189127933608215864911176674904255606582459338851040699915986063999980469878429375054404661601542047808045739332850293302119411063126417024519383630022183437956238977504983139678238717186406015849582588289120499062002277015767863864217843110150818618902898028464181861670486746207922303114248860638746234736502227020919291778391713702543771708687464948428629001760806116024155802335800639847038662003084582940365035153538494662788789263663309751008744739395531155823698705118015814095327759715311904741042601574349703054167329976813245467923448019572286284756249660189227830760560277438892253101794412833169751188469600387407384446108990465479119196465788672616583369664655347887593211996261088942490357489038651804185584560556508625948414472439623641413214719307034733367170492523711690854215028263493975633095357431292244861728300807970276950638624761283008512144547808220245773078531977802669987964619777521138476084630498600065812651956372768321055845517693447489629013742244140676492648432764326795110259774371988921067044028819779414653847986941462808077733624290185268478136986300281965140408646104359473531903390391982450603166709357998193010770565046580184823081359804758789423847023427307135613070996657035018699752544398449171944346366269539520576429234234553696655847545059866834956342922011332405877260230056442363900375956824146234933906144038009144363231299370415992082710315511420900846029805671444960888065154884797394376085047369641508309427187521242942438068855311424490735737308222210887723841976464872674767602510105329610264640022310774615832237072993642607839588515109573990335590275363820227172990710219866251900126227626859870555577277310763629942181143555422495811789295338041397307572255984740951012567887973243889516621534117715770254580566220682860918154561529021755457905247741159418208328895258447824863743303294772991341220205740210090319405795042207061077611145331088050762995641705695318963814010769640928801953046518713103748854267114022981958074240696828289523850316365864068739114389877634006400745543524846040453446083165284451016847337935162727003089497877873346067355226003891449213799751286092079416751276910439946248409970207506470958120537722322086049144329404811503917872029590950488446102654652495652350288988149715492938690869119923189916436920633342416433896337816025554082044518321893561942429775412304111574610634547005913175010086321460975072974132541062069860837292181215620680675018017978188269432959112492917701131273402072924093194269567279037256174865110736443893600106316704843004487629519776905543333354038120390293482310694260924919612141270866530207867773200500646372494904250566661109609065249922335062498627392326548439058222697687282797014543074963349135713191950434333432522469720520226038014573964823990163217307417623857966855969312045595291688300432303492193347613393480701536921456853944287944701681153940966771405174145545737798635817391942625376960835018001459321263300299819163260133682848622210350282528085453967544582858569555136721074488694168848457980397422975486588104936344295371360613346581511619166156036176599426436198042038682591834389640118123532629856932612621339363457609704722804204196127609905253833358821331342437788320200115367652714833419747784388628174626171029726369683019420585262868149298492417149253053834038600009901907604386500601439606853527000987857574198388276909310988024295623236601031550369132156711163721274367910584114904703206459653680892381675761252947556387785248488504554016320424982978457365901905747913353444301216445363508865761619807862534510266441251766659611806225476273744189900282442950984423664236461485739765961757670584914441000117934278475179327436350679113882237676825694797043829165519548563000239637203259071722735151880127880969458739804966567402181117838286400719988866294455681185969399154661444909455307924884237357175594806733504868316167394643802588910412186602626449815831828610287477566685800394059790928367819761362800385049900752988007420012917805315165126412669822957258309329083677519399826850405970388600513141820539060658832100784753057612153787900372049168644074832992368663719676760374680710680763619921734342929845479995484561965778527546912952882277396865666079573069841590291303545286977151053214627369857020272095832359491353681496760493610171296208110117989265459746124635131492778640045697505837185050280690977294036396916788913367583455209910502831947969870705981694369205417211752105947034999556013873572277220335485888657261379865384864623320492909334842069861055319909245296726717818043491123689333509322059222562429017959771960581873396880464334124477947677473155092208877049162680904483753957158940462946001175839072169235250747946769169706800072851475953220596195718604674457245617802888534097067051772722827980892211458497701585279656519859010975132664413675980699338679847546989298870273772566048999181729044863970981488066234717486510929846228581032019260099347247447915847060041253751816098223726345866628629834972339917269398203536809455503415318171908335281043334033535672853250339667145941584773731068337838330725245206778070928487708060821997263100405278033997136694467069866586616666242739640477745565959490159884906675786235561869862769237744177719592047053310548120247842627563397848972742341771285843005469301281953487514721385370137462158729141006279926012330193080591232249416834278691870636181600342268136374129713579994896684990952692587306121719393301079590549123425001418864886217738525147422301240134052585627271071522394791713044214131315799529344722731096200864296910355739074427315230923190432477072227245990570691669197040451774293852164146315941883179924801033727782680336965592244944510516799853948448593034371690216325738426095791378703527341480063503372849995593607861727833707236425771176042599493250091440674371562311911367267467398932785757317674169323549778091242552196486251836392496587159595088631096886198315057523009767705713940168014849782632877216114645469422491007204901895242498508195479280488598168385554180676068067283321767441944401225731401129413714509353072227920494792926945661437937076824269440403318305439941872490322426848462506537153983098515095901285415057296661096771985068420153143956526003256698684884142703459187532879182754778088717462647760440709934738420483454285478385789616654650622123630207066553418236348378676247578848760024438896643973791418462389745585916094500791823108654818430946969985140583171444911030459698641537803713373303678840497612229414350572690968139335209872200610779029437051028525683134386240930762787067093678628083907605437559394348938675738539731636792129749291047595383070697268092524757877404921110795140104242799387442087586489908420545598250251701217295318614346138070662344573785866507668665470603077078939614634355776289380691392524450566657395602804627034607769293646860917316500564253098537942616429742262366688349573900584047463234015826660364389242145527338641962871526131987796359660460299465726439243958405944339710340102507619068743376478549776763959049724519328583731119332981700537487234507710842673236628444343412938706035230670699112603633264186154638794471850803278476051565391482629187753173147457447357212712970093766042175705399823527359283132329724724317553858573832852947057886810640745665193851416432584250184640905039496367205111178805418192087406566811447512997295363873111731787330202791020410956252873119252601988092795184393316434682784201929527553798495646609446924958010023293425017632964518532895078047129708516745785529901526375608568685892023209339027720234848513379886359782762976224550095403932897738475923988547918854292607753824753803115418066835914511649480671872913759087607819057520595805780002713314923749870387612273472159271370941001561178502546473068864077354845038551615168115456929382631767917372030209341477409008572840128444626126780377292394408686660835966721471820742499141917487753845660756532345439922857067208758600873524431158459533297365815464290753638153291872854043556359748443883595900079059719401796396802663423638417749902457150446650101902077717203847551500594724656222269140084579204686972345755141126990290884161730480312806972933669379904931632587392925706920236636184696681537009498952529195228121188852400968074555721806883982382246803904700304448533053236358427065354093439143367473036252572501079109800478973087347810432850117472152885561555594235134503376328998117324610484316085924432238320007236263276076157032197145119369016925732623528037538647992911501574774698632369680380915739726698354326787870322498897014081324639063146205743033923337815388417203132097739146360082979275336065492536661148713432629320879081599805701165181351883932193251800701581909757846751661078409690562151131533251675004069780330716143889480000570505671042162148707477694380415142650847402992962568753407030999182505618468232685788106563734773681498947635585205839858741930272745375665680891059732393235714556953039572897969240825908257392631024095588734220607357666077896483398304141330623642054896230604567820326940751382181300734951914188180847638099659194373121767633717761614841874953466816597304483018700850244465557110151726111103604094579012316042342054622515333697283096799970944625319935511279465849606440228659226447840151390157109256940900903969667132294449798156540302569189351960039019321772407717188404940662974809138493519627283503430133312671686044153620658238559695720768380818586496082699242856570539996233121813340126325517978183350277294411472645231995575613857918801642597351374748965049644004855213838228559213616502275611429015138558407359791626234604514184173714175061256349081716546542328153061652487315150009254756886653513877515433677551373316894563750660742850706508085112637969301519852961045593012829690781869380920527311765768456375418990255778036193797381170722780367388440955140328738864332278668238933332157656453054491725561875558354981280171122763163895241256591930583856540567674415909966321602480293675912405473767911800051316953455602748012277325164626640485835407739528984945957689677367955068446654647463456916004763739480519279083704605252666817280342289279902794137536980697913682996239498182589305322150221458555670746657263338692900659292764763970976935273141855981573080615366609864187483808824852744189185633423404415794264363477568163925595108522807963298209968875245036980131834416979722350357265767767747990555801244879444080408757443215152669643412817074018184328996235836676790956490231996706013403786503664422461028772095852159456512376850704968089414604379143725666384845146989167210355445456152571925476965242394330576024363301456814080336327148666177236983646857646003246180814318090941055447412800918056208430497371098399107587932208933178862373964885413892218199795584047443169275746988453925194789108100117235641333502432273287456558856165583157726725457100879995294443636408285812090446176310693415113663350294758645196422274538809331754266759997504756150996812192201646521204805752564160752285353576953329203223385452042953769398409931757007919725508194855140778893938201062423012287298141944130536096054308554049652976376438560198194297627778784676431176411410893505493857526417108450335037061699750401288156980798592791039986193554685455162772907803025722348446289397477244616550898505393981331564613639080738036602996214997116942488599291697534619249455357797212796442587663935739458918388983619061353483835982023751731345378507080554745812372616828537379632386622719365585608414224550488528644312334469963990866140181255979868875426982252232144803184337746578370902153160649589159804226031083053556161864042323337622133992059645697737976077443901003430362114774944113930734105644942835612412174781231916948547721418824330400175769677039099064139111476251945322077284440338439116867977185952807200332283715977722318912785307649602994595687263234361824603525788555716152295560408906084041213950200072398477726318176079547945180365292822536277403348131476936717675783599634263507740868165457115896220382003046179894679133079399565403984710745920193841728459582829823914255850901067228177762066487738540858713874591757900129597955609179141736501679366972604038207906535729990946175527796330429377833979765462355229124133410631266469641589513144037548753063238472002267300073869767950495621431862488980994639621547617892897501073224265735461893831455154496805308092071713001101763030226323769131212232051754808690711523870686237802746022253899752765284054782154761145049591003788083918894387546474108153652672102861468832660480253764359499709271149252418876663677185010421632372926090739885614183029123188523660218069720718093833585285532891442783491304109322227315516740486748892654935728807642274279513896804584156109153854671982121387828397781296493345120206545533606592264485958017836550455369171423059150136055961057706420227071578431398801528179718816925676249394374390671068742229892561051479553263472578249466162821557107042607985665735008959374872339978003040581305952733234350815877964561222167339026464410449302423248225311485464454308346037429639518460385485000205230530684029601497875031200465195866189847488347569702042695519521092263941249922229849968169112741567620027833991698709954413550635799751471591064751181754027614725718462502438009236848713269585304204878241035333067773616478503254355674880968107825534584882031289529707327773669482121966714205295134861663944054647105417292126211872109342691776751180869017012391947723098800585558180363521271495399650502692894451094582448174337947680103144757534463330548309967577626645324623380599850341948937370398878229143900268612335548551046225305634014856528511242205389268177326203594936682995655712899338080574652947846141601435967581976020165238193796737266111099852430879820218034135843645680237811436773028065433490813704080440793057293949508612005379586401215456014138058150348691326739533914207348090364072109817367382015583775445006012053927838402167057221671115353665658516008283536505695712017073350735007172519582433978109703980564377079573023556419824147571780406855885835060694178647528814190838570536927947258639997754660422576411264960903439483626064821707116568299210068865716254509267519552133739782217240611064742397054193513831734149690170870004811213781304896540778283968453674316621242930557317279573873744400409392104772262366211746231514458824224454719680290290700664571004499404427092349330183524520408584455328138137193964705016433875342356356846771862336083691053123397693044813773195340333869261379949727666132778692681248127485254844777786635272421417812113983128693718127757240684390979586789697337656168074426709784621478667174116370768886575791679615734844705591044197346156740860219693888257894482594667854423741253877425694236771243457337517563367762053250764720757286241116174623620188746757978370127943031254842003028132837028103616005554180940002290284598998493524179110613421089389419693837095061343069678860103118546754021223943083049881773314789223481310808608992425384935759053084703190151410966395466444016928637986280842639012118479851663536729747328824203208483944992098125268989932659480355045659773630175692886670621348525829992522967649265791449630373567547115000615112569908431257229960154401335489094115371902337861995933887301681895241339136529554050890998305269549720176209367951618419531859396784074155471692309448896260890236989319174153155728986855951770615069249876422525066216516674085108844917588730609567178671379443518097473831633624081696983599838148510249111235227067316322272255054873071076271737071959554076314687837024089704155809026951397574541577093727799059724871895577732236245849330115207820307646534524147359747440289344649789520889046512086321296044232242687030274232512448312925134069239896664611132183623438018617416918212011577713854682173712288436858335805315776530993510071417448012596654728321037804509298615795040935431437040918024185926002613404284089494826230003839954255556877819978988308496671387451702650538204484072874739103910492690248799120197001698132506510694875999704115805608463626558692255369755102759746569298623327205874526854903929495278354553876542118597930609631477211076362571160792512925910802700108770769490355295675778355577643415828871697076007303890372324295680221562739565430008676980966228714443316747360606659079270361746798195834364766715623419373508899732008865980789241048372702674885647527343886469388982124266020160732149704334089131836970689815890835921622896067358431355037019617747146210966325681549605906333946290908283408965368737101773435718996170485816021397511692659142959172002544859580184611507070305521099407090683556341856698787133930894100985809471853853975308806129735746471146838420740055737493759380268902308748004562498510685850292533815223504259196901498968790416880034994672537759916631841104211371794888962344603998616340097529473828453000087670220742773053007101819449612885916061840065276229935082628484518126557689953534832667020359321298988870740183751766332848627683954381473546953704636900215802479794043547224044477890279047818615600347033867585600849756825419980303831335033783026717069715966917283462424227071884697795676681473665149659640440458627728099438802247795503660181349216249802236420673416842719595400382091981475644717145809971817573289916300847731675024054056892832354961327630649634510843618547834482830101093247399868737015295998430851687463581585218343171596707641310655772053011446405565200001452809987831100407658961748070722677824962911448798908005603145466283517814195077302201272686164487157963755170617049551952190047971759966455840052712367255058089992430278544926724913519790364786364434245989536830750653200790975393284535887871301187109399550452864888266907455284219911554165550249246823899543152995470732479329232423029670236841610411263507412652695988189296470115020754391002048763002435084841595961248256010933677745584949126375234486735277728843599005080821676132836899838349288901095531155346864563304793798072795359410826733828865842396674970748861113656504304513513322633016195406424009808562923704295283821185915795206409618289334263825254404938731421673402662049973203102584021156916369823284675624852022131680834801374592964190421396385822204587035225011047860440588992538564759857822497557263358234219729528095011670289800338131625949824480040564252078669425199710773265041120829449418377703998860931861929826508868083468538762039577043780651134123685442888269571609876907988210155533795275463382156561219510977365832650568450644425536598579668685177683634949519338051954008586176982881769886276864197580863263153699219792424534287001580169027497614888381790299952867785307872864892381941519200240383968918554161897585352688090961926208564346800713145996796839218829323499184883224869189996496795153780902428750486457569567792039007476994784376090963088318034577766835849059626490737546066069831622944039850295465609619253402461013677580177820353052327405840294683443610971346624978852733659858587001473426209844882595355910205156989469349989028228985207225709166399698138958856143270735437305446576488408442576720670406433496474982705124002966195269766918104543791666531659951836290364723985636516732426236127404438609872631319003149269798527184684933161285926140415855693965064791211397783829790686271828629065478087570493303696952635222918802802514290572335383775850824335128905789769029478509112841205734715056104516534693550890852347697049138694395962713664769963769154217071695440296352470139780539783500501513237451496916052333388051385256518605010968310220972194261610530835305657877624357997110255199198723655704838832545215003248020834474979208100269560344385680602625947825012363317177158220115600754642159149528733087859784729904454075718756518094850331296501181072813991837559533078548554535308830410034000232161445409467336946090562563690326736892395469804862562831188453942937241330993798575405026245308455645039175038300125270374429708059203193988824879591351467347365027039278708364931847635574829387121360897154817059524697082357146030036031303950466171429332912603339916168100144824412362969326695008318460294361250308323782177162283604632617763732413713660569349126102381995669864379435158384126849376512226889246899973238620601483722429926362840674285889344119237921199689591007810103475819156263877344498410291856156224955652451277145978426805359764049182499816355709518735546015462941276304586773760059452765589582151260021605914781087396147919831434171094246023576579651149624220678691068714038173568157930872733183601252875861381915639312713191413326662555255074531684542835426214866564681653572811389772199918772103932186438260606725552762455083047063651745116754093254556422566152373255141812039546140907479032669875996386228457138877106638768328418158526413521286879430032793175315688799223545298237713335487456738760139417924108080594948806343885518589248303789974576962785660842195434118401761792994743716142659550608733223391376700506500130624373264245152092129337651695365539195339267689608669213312066994924565869446527686737075783967875998026270326371754465923316990345011547349998157733384973270227836753033837771236522273637346803435290080701443326021584363881347439344716084974327852574769704274348386515117776894644902515264220067673933081205728621610876616490022432484792445435306782942520747501318127384405758506532992966250155652267920381111644151997990756767843385803085231896940003395726067519002754422026576166531246675538931786796589560331490944035675018523777801999201790430984043503678332423106120963022022844059645777148545298317445100070699918415805830005647179109775909252610112054375509285701280473608188382900724691334197164353514492751065600033369639417872875886201118859808619610833078223209468425880063769053419372741583908952099921647435251166507079083234289929123798872322703783708145798509482736183638480026444407254418745452274936777797362212184616657121811191024245381441341812657145145254086474876695980384846332535896762696220659766050699979572413284795804843846794738844903211303217397037759833252249267762051718110822320754581428134751990173365651437874267755192793513716832220818326197668692490760827924883457124028297434323945562197311162308716896677059474899978310805462161472154392319246464297306334708560889754694901082387102226028441561394713494373370517739283757104894006475470835531029376687391860448754354521171391490098186371670688231213200326243156260383954768273640935962210391572005259613835851371875003477230763082804773720582329453228555693502253612107533234854688292435256327965334455765008537025680760289258563931377642451324332648293454402402535677957609934116456992776719668480357931235729232525872683888756431746506108401312912054364108313224527668440637435420563998162460698584100500018295239960548469798017794736825857414390238338302834928321510572044546990138583939362914881858119951938188824087287192193257781365687783817501585498670778931833129916302156077140397497740534741589424042571205838891337376303908065528801268994648815267132242609487875767815669184462570674122526738865099009206964795922328758904703004140734765940721904901782253704688313604788433356129973379090435039594046556566724620030207964354672697364959052604594020678469722309322193761275716823204965907634304675965225731273664218942088058488329933954538864265326302509845886329116942920504255868892276560095799655880897102184020240139885500048470183683063736251570386131930304002777234443548512527856260611876889199275521186285387581683608398252057581457688361238277651703495112764103098340527551612693573193282952414988320681464290590943929361109194144079588584023662601912971694941046131897862388304445236524161097068614805314582218308225116025113572265422777620423589550707939585694092051051757903702889630043582776045354490361532539361257814226917636715517020336698094455275357259684794537298030724858907667815307381458261602606326525404495158223214763391049359218115761226006481839187420594427602344315369985353854560149674011153242324734064384432966678685094808027560137238077006316463599787663024596766943328793554273564812111803869688036370582005040107279156006523762943225823595973105208456654792634924591074106634847070984693329618707922121351529635968178588775790916900809563328324663277136349329508406525174054753175382191830968164454069864538841800939841346805467129200423524746478041036740635615350537602795003489517379196447820029507039910302241743184141233356811077252968318629890061827027612887417421274486480444335065833266866155183988889818147684813239604914356595498928561589050872441315134024666549004438367200400124342824161291054081000932353258503913291961144876385830539747571835610443131310760214973915709749259894936056212126384052528861373960709159651254080503846936055890441686917370464717173492540768287335319222836318613900814377788922011460185456982165551434521284632394033326098258849650323834506407414428876782040516562758170551300952512762362745451989440282979270737195433239022715105996508211058372876552572876570036386208080441587901155101573416035479524360174024578008404267647044248796722211813472772864550739013926023642526044926499091385129670931143158486190177626202936279381146633163042711572414641011719798017821702700232296017045557297634864365443481027944820388290509703477841360253806503466696760197658693874291526053016918083933600597404397252464535975315459407680028592119990559937317117716409253822247537397300791830184497734829879893381582586213151205103618438483032352718729935110399059323644726594850785618725934400815637385900640317451846408036224745363642476031073582062167319055799052141720852285855622298007690169257129294828207484971424621597283374229724413202508165321203009871755841878064880127536025127250681889345766279918116362422922550552271213187270101496509485818461530215727210969511895003328922398737153661490962881274868058299870414723992180909626109664555619748501403754608403249075598044811467571645857705068452620745279006006184199000390473756526281506620863395044049007245665484821736675421723974945999126860077430536859801998079732948257173639496345534315829516649193067912172684890416103521075624970943629120282149398210827347650895294467818041354186275502217320568221224812420429155822373207815517092675545148448843065343856615818628064801546707221179981724218148419082943836683372737693648116462933767022357836775222207990292343832899791513804053905481299662279911590629540375471763872520031534958003955675392891359175947758334813874767799948356978422115575400132271088993102900777371937552720491887644938456737375887270606820435547624013892034916847439610628683714503840250809713988226903377851188610248781726669722338011240206201178556272652729439518680003897196873661434904294477840637685627528567307443961679573147466784084368745932360641990786351742702698045760657571588469978546451386372815867962631012149933890421555691306425145671970023243948053337391483256053154922251664738085936742981969857983250781866430096683138622583827189605056446223138374986611408237504127089497236499306594392168334629570948226815411792375703081398566376398121765122379991888169797839844018968481843344677004382948371270295140621857467484975772827403780817239879569231826239674414857714116523995664657361734710978249530067536677926832070027596889168071784496107424086270692143475787074064614436564267321400184868908402446733359372818635787748651192966854113144898246280365980340879009423061550799399697543016184674818228856070404921612618179159630770566150189889738623616661029167272572099315584789603973383004711951616727737258016728883320532995602942725573882538351185282962381471427953206581506679129211850778414894138720273551722639520772477144571044969637571756777346350440904999075171146294777133022675352358357623480377311093245944608796698075662832162134303477649788657025888772156736676979479809320873581538398181536961886847253591640118316016362701266470415043807906319832368292140545020519492713347423631139089494943773970095450633579324439265635207768152984675668421183621236277790939311642498023440291780069170305540021389383146001665652694492424961022748546778321399190174238034799550762982815230416251596287858135976411257769146353932917021343724818445257963515350464951911960364845261868861846363456352762694518194698786768601421482850452825250164155525980203199330285944237675290830840254498226866142323327896563301296430556533606969950380839690115120693878370747598424125047934096177169777645941147752386918370366127052191608939807843279109427084755296900124794929274074390059575872899268549291973140612550673797951708061189911766004547132935128468451113283362518869639113707309842189225206196115706104715507979930770130183624166305605786705906085834387169419656965245848803660123577386706407917772581809528008004776924931931907205320685629935527580901925623353093236936112312921975177393536046216106873462895389168624819894560172490718817549370530818438324858680584281264505170230947785223936207009269932398889864336516409128826018715213384048718037622724422501327125445584835319083313263386961618814813019244550689350557724129987487732964998959520997182715871966088432021081912416327030391804494403094193217031009443677224131847674479845613638414385168834716578156648396926425363983886486104619962980125332908426465733011525022683777964815318729728838394603928399752252483768734606332202006865501926757824396463481845019143812220310934039423317093801366270274090747392404499624494748049047724131966271707582954580700627880673705412219746241591671055525458830933354751447818705378795268889581134621766804167701300649691821537409557146495880257088872909577785492530296541085048646247403662964889242583028707733997786213989163583833311089867160471411700135993553498269664520812789058841507595805837024736264112812140671501249215525431579777383123788625046038269449239144483266923787416929657052973303319372840264147949486217832150559206430474531343828169136846280111039397926461329266709829886740738104013872460921571165452338642924580737381143037845814795787009991125672074420484105238837344164292696503797036600284928465932003900331959298832740017886554623285123595312983915739764982972931352664817775850539095531516814718494778201799238589949479092531053693149566727501058566439085972441824008673566252635089811694466671897293591481470829103489929259252366847226504275647307252337747953128878313468321018504975056450970077493384434514843105375484800069219363362443054537818943798875415968010977323972255624473678363414298726865158092651007816673026876479624775056165517721546769553786031212985972601591626663019173327994430350400767315776696481726891315752516323521002491755740885073932920465729637577100683153555887160465326995280573010087651479152371510607227720795568200104014655025802941469194776092006970656682917479423021641900531407223019471299789897188151323398505591797829605336930056114598392160977866414864827316839823212602664505440843605095287079876096256602655172477755171865856859612790447030519766402008535036044329426366531540780638574605459763326704619868894364103172494636679800307812744541140027662289449075393853272154472938388368798432972407562352495869466118909361509226244303191117743791994145076923845817964264087153724148792207077881114034542152898399071699921818377389883523698363884947333395235338160328912197998003266574951239141195632049025699951903705383663636163125182007706200182381524368665083496438918299314129064605218218635145328530269077010459935174926543233999172830715310434383395589769270278165862425227280852525258137304145760396089085349491911081289641900814034051274529150747963001645489239408836762704776473691650905559635951587553002893622493310023699512669686150249494783161845589625413406582599828177105531683059596114514887861279604050045290964407469902075756527611778799927376809886268851787804821588726906980019654897288119295087461857854795091928352002094103105265380317252873860322368051443395596188194967296553825251710277275865215541313828732327207154843209367163296448156119507795499260707889346741995232575411350831266983996253360110514862039922557572244727029573221769788759210221647753043603493204308433626238516756211779838769137099526688747512769453009095070667374605098189990756845642791276026283642584159283969791945870374301279982556302986635503265549185733158686971283901190245626365507515991023307830759509582400719391481956162276273662617982620085390454623386578166369768125863632469980198883029576945014227450122732334341028403777084874690274095849862366803872478392554377855410532548051573378481890723016894104512156509393525516321002411529992333628313129432431984159547545355289234205404788336670739268522775213558985578608908287249855913762078673087569404259828191929191160097848230491431492561468803160960389266336541833396151104328343499425115006574471136217198592578843652771642916275817226187859800294396228632625001163157503969693741746751445822576389676055829193706622692966023079894473536883728142598602294867192629031201875922357060658219765326659084252241149625064833211280181230871893133338107567399260000132324927684099515286163139748834540088850525487010936022782841591880245036568664157946682067404304170413751323830241785832683019947485633011552012601975880995051122103570255417921245111790949359367599569490413849384514425084558895147741366688109761956919282148198219985410425703482853328404238817928497062849199117508127765280703361186670489452498680800810165742265334766753730643695537495803007254300601499830807675580054181244438373113821870085329667975726911568314876834504818384740317407933477987572983620841586537731271764122759641491239604065327834241288664210356641089642517411608311004660809241125329489464878547191098132311983449153888829326104585368119336494559569249977694937107873755240483014526164113805687902496959720257215024225958564587412660654083660912325856809957468990912423410940590890897437826059059863871887808860441914770786911228899570278370688597830389219710078201194963124654046752491438279223651195207986407576430648614669692291538954863778905821189412327959868830989407190960609234672482440353413276569220020764179267064888869416578454236782756097681186141467655170464024918029512591870274437554873120071477976897149285017621939214480898318789283061748095688251639182710454298485788686168306753327861747427554508889164086986728471650001851472396434975571688259359547516855220416971930854544966722832561514331378185108185603676559061042558321354143415002868119949411085445072114433257082611472027968941006915591366126172508659815612146181544217838217269542821843919570392762508615287880831061499530194573127049469682962756035822761191763942832050021271883385365380186477638543245430063662797187695479649454487142587351646650716455018937854449364722035765439251678795264880899414164414360599019781311356803663795886789200852007068908068062117925310307180596307599086570401940930713685934888391978532692281356662601734149692390214095996174894199770660521770794153848086051545699619317428422789685312575726791069273377235842610406805537704149247171097178381656932390354553337908590366609978577136861611080757849093101336637975496685255864206824526706045703066811828751675414360775966161889206012291145991595864899060522557503775618276581234399983565375243356859731071110102036139108312052851270868784222443058522005591099337699124120663689705442669122718505916249210314530257466516497238209450974255908989424136812371575070075385611542734588149780001995326556127248156425547107453485531735959429969964405407645102447976705477998870106931679061180884526248248482805064840880735796878934498027150597495930658249059320431847758969896573101447056557879988225544518057181651299121056289068512786085028046448580592902243902682412633187245816755998262926921507586864810642746152585237937562171249704007493478647431767612416548672753016410001234581835693058109696756763734942081471778689797136340678357200165088645500544183281482830847930650472007546591968226107102241117919041919614172823932630912840444607062087192208794189145471842313666917025904568404092787909814333951380182927573678359046449886663883141587403231487992306640828745201515919415555806488874800111670347557663791609006632982503490073718802920518539644610331546911606528499197111738652839239484418320822278055126356715305012551851040040050410159567307868406828664861304961364479247127288342538979421679969148312762767193781910634613378208873790449706687232939833060158565498335609916780499179464182683498831425776855639491439395090765541467643709984383265498573094345479344924567636244619876160726161360284359818598545026543555664048553802530104237321225465120553445541323747938796117372869604562741070475363080633135413343187866328848020496770731136347891299142406611838559238382265139568688710838250413350403338566683711497107050905795837589037613792224822190551193120299343293243374441221318262482970140425510389822684009965162193298206176042021178824937392252658597206163731086890127751274186317108319214573155740846283852423518839748400383686622649500483843379083779523673498418225532797559061165638533223768108992751234898135408562591892637257053111045770015566913976445677926908304185040412375711781789772750141020813595058668181614556197899700654719236172897018548606053615190574754805662099277780631534334848458548188397171495483995730540792748524088939384846634387482199688072571327816691078392137366982660448838211050964660808817894046450290180543121090356860153453148826123704667675955768868311105962970033088910814269799203821429713433236867764464381777454649488845491806449992432872741002953923601001676192457109333110850808856387184701436979269638133921992176420161626618244764359464073361411371817595117375293643198345231781806867012891321150832283926853566738687776130769608178829149660151061882914339247610344414953450288167701061401097377780234485162694686610273270325583467338708464549186280888204094583660218621985410133536080770769256243326656193616174468749779774140064793946566538076875944771345404295134047547661765703038484346158022271235724752673208382167800400716526868120522879677739998657748123139850067360878051075336172926187902446513548598605961836102943539866357188866424226694422627976096626292886636181381233811437314465846731946753950135235802911331328991834631750009100010685393398691045722937158501532294958586975962195313531326784861571749786345560705708686044922108874238977898262241627859628566808798204022394465992860097512441958679236361273706282850334145262198247073450083455706552998309710887804219551189753505246364291780435044792392465922232868206218800157945525946265651227426842575987012657159648235831371580900486440992227261842558607989458327913087908017623150016497474485338888469192933041410722738582551766149970064898234370593014115510640932391867724520081388254491549183086370205062665143231939163157589078467405166141192608821966437068346323417818025044552934226723661489176065011918571298401483961030391100219035030204044177344909404797033083155873796996100133652312636470631619494710057815170372306665767071305090947663834265205879329011841221912439567475092028881734201585872359342231420317110703169857592848880505506033701356498206793283596272365006732684783291698597818540603616579341678176729664431124226391836798060403845211363918829070515963594224327802827195127109715738194916573369879369671168660557537346710548989121829602433905894438307677202749912626723940615429598455614540556802792329697244667171264352498103290796260825744663344111045243344811125146959709072971577722329024465456704403553840374607857604389209948336086645116366774053314936158159420309017848382794796979514161522259647225515011552718270329662770663028484260671121607720074200016719830094838718790483887424175739084957304344379021513942853052354975321344247923488160920754453048809442220053870698739610106610646601364604767265046139134478834835568737778478721967330928440275859120395149494240689075338679132273023740782240734765429347656863561478235983614491753090376129574727951470385017352017111165581232142735875893253186935143565993583991740164077018693613034188157462813520208468338071348428262330312819979518968111102688152624698785857629079706597828481159784856555636664073357878372254950005033989074782312029415397631246080528993040430742533923753750156793444622310593013638349310842884104129571822166873750013875003201060125433004151334886572893014020274556608646745668619068983484998430157794242039989978016618515954520047915649882768230048701917501776316574307640501983630781683825662517463089512017298836665484396713355744174738980465081101685947312251483934026326005433705942455010901458876771452564373224122931964980716550860999907352534904274465777281040867895415312020038388917148114232317206171415322413510396945051767837156555989532216708921787326458028246014031266213382396919295524195632631382738474764652430891567841700333374454788404072565804606244825198081515875985085052709731076270785519042315944262071447250864648556150018013702839307736250811895249507654415774251543322640485875396008854504261597256714108505468540844791123785992369735889561927196823215705808310998012893445996992464212222426139140628310876934557311594698038404307915276974825420574549648859383151087280708638857919861794643237950273654906239821099702768325775405734845603650350615040865770775420710120263205407887419487029050567125550739309457898343328927373252504403018116819987860721223166435897656401274879571348445951626247838701593293316819300785264217371138500584451416560960133574342888938126067583076702276685724082062228262922801686290048513408355031306746172353862753719317400814668045669273565099504450471625446468930789068625618843831806578682503920207914017095464967843626124361505071726813183611435112215062048482565602530344461024817493866555539003610260915167324574505321678304416596945465244234984448880792793078602231034582918281349438538253538114179345125787299044724075222868952329149866267373734754016428905583883553656187708104923105398374839150188964544399952225088071565293218930348148436591743362125538310335251706378753851001325792657826866188126461723017851730454508838934935476857830494034476745144185385602314904665653303515162784657673678505459032139206466502931263964090619373986064560439560019094935228992001402798356370140892910786292870899115528906208425678816233822214838880956171730077527646154330918784298652817750860981596966521379230472379716833707892346784460224005658955037233260400849352697357990704328703082982235162841541758262162100968441777635529074584802117079284032035519257316969317446813516895796418444538836723485808376989344053405247534295669707574703540968686535151809340466276292790443402948770482204117550050164685829162466152565632797193738096403751700100531002160765026300639648616439954238473102073991863891128431110489676653185451517334274545049822408935128252034113483010558441875629770098052822918701236475793225924681610228850971019996912816012126689503171339442961484971948157609619090996708466970203935671675846983494557269610874603936838627404135139769905477529594598812035918196683024540810489191162709740347673855661965242833670426984946482932275910670483310961854260483886454903376213718077371719204251998423055903008655954398005308124391449382154866359670119705364636015978212257384036047923267923970338596107575988742959377028057703815879790667977674753963275127587231217894193059025999180504731408148579388589253067857125946899489500134843704165931350292392550863559777311667910377665389379492342458735525106126120841127092914506399132481408943133702203939276843497527490634019312420333596799745782577845313872126079457474621514282841168101290851865132581406283509969136875030379015194424436672052756992085471079073768892879699119735380992907617653494642981135571338557709875587060520703231752341895138119602462143166431104096747694043573543544561024413411185253310379810287835812662326278628036848509885369607045818541960385018258542555086280304399037196686630683978415355634510606584385079261760583099971825830761138504253449510219286086953176753616859612824822403438097828578012242323949213729495083092694611984144504689819199532000682784818460886043046602178410280726024881604011467278264585126817233572153354004041972679867908906410651207996140653092273592511089636696046913276583296130127218436459084967445013188534561657509740472747234353706685561810565802346673454519496482355905684657518419795097630679743029787190899009469989873095893393954314217580228217121237578700972717735386196393217994981961641073986023443561916413848086807023687698035291071166128837753512985242623749208049961854982108629052945883617154778746054077753387935241745780983661868718019785734434907197054882974647265968757426833598303099288806671698945371724129001310585949763665484304721985150735760397144892021767028574413748957890846593879689726676581661650881501602975788045849548779413918697038082969601928685853132024411384403338017542248510336977598960833020921501318803821810759892196523174773158468214609314455340062592739651428204081428907403522561048660793192681452731670536210505928959551162709353255262903671919875896041991794710247268461153586726934628747794764162322061487319959631668893421408084450208586323225057222627501339929064852316566526805632059970197721175787364128583880741713978934199095160892330760093644077888595374616607025371888623669478874146594020986801157171178858427452505220533611766969270710089936789906187619070492907204910536094602008445431889629727922048284702062495877098810781461220960449632025102493343350232473571289054095074588764834644608773405870523961659899471635034350045916124717594260537778679750699697297253647334677369212568164336992743125714097394247444337483250180734793374958790600365567234887741184126166242247671877351986460654522810509828218100303283293672025151912438710614272261349442020795152290492673867844928237708827152290813358243709283131481517204296850000900104024605522569605936738649497384843379179371263230373304604570921092474374309075301609818846861210567461268181324416669839732892328562507521556139921518784505728839806338800319014538171000651099458723596158756070629257024665956991545077067096002993767266918947333999908339763985898132893559646254713125184962999912205510953852535277996944260500998305533048011936527067342656794435372879843223293811539337666178705114083309411514031811003324690104349811110550442888021937865479990692229244741826933929315404887763346371367707072966369562275886357523772366813203728408314698340628015214366191836685427499616218800187907211135056624479503723777603127520246076084075633901997299818531693580524843212561921622510596143254962536191310175401446013431019061230999642893395167812844032042387712007478036117850101331698056732875373845829608069409152099493270501997666350226969102264559160341607364290822606309568607351916560313634030281481509083997017715689278086728390566190737081767725858476878761293510745354331988089723008588290571205947316433098115231109083701943441341654694612480281873971195092427717404814008652256588577257266965626840958280029334589048921816363723535032947313505655660708268825925259051770691223604789018328751245300089596972074499789564614891074916377956100087771715943868621385682988163730292205196214844608096626870370214750343522270733344470825751141608493527241269067325840631197961980932330554575170699702783989881249973214424815302749584379839413918399070133080327193178001877563067084156479404764242648855847503105125264940412739972081388967259783524441986419512508850126032232332457911827349947282427507522668594667141032023608136396659716189127773339987836334829091329136343611441963810906008364608687336395452514921283798835394193753754590651960401461195444578021820164737845265908915594473366858913853711862541554896393211209082207365832810817498148568349694146924224882855954606957456288049688302306680435736159036504718959556464477847784499408583377233356408231032816899850799561867472507214337041146945091667729216009266476808997742250470739302682841443618733625626034879271282292412085591811772290440230316464545285295310790747063127788594993953787074266860049727020403640851793583331873714925482219810227080111189364671833657790547206066956979281562141366229887820346344430105823445457440606813658580630814658492556308525124260101339635560915782962971318871876570948657869882484612264935220060337606122483427577248000426617230547290890490107844524997622592209877336754038987894684940982911301688422673184206885575532912503326217108388802238981923797305423650278552817497049449168049471816202505547626529123001335550966075108832095698138986013821752213940878705474100199085530882618088257069514941452364758679119108159333412077025027391364370743258223061848087685466887335626349774120202978054894275735670578944612398712694690750139128708946692781726833009828080935170365974232332568713514939093621914684894593628403490616324737429501778040733659930559574740240467739948018080200441825535908973713029819844889302684478540357687867888192931073718127432014844073232751690657698580329059279480751797851979878832038547362565651467606027072678379037739538068322111533061289866701401164666806225966840143336330163161980324782732525985156120000097822567565383650785591774766077143735954997579269482130310493248775829370466017455735209395974473990481652125061166859774582825349164870382126169577372630381826049692483425864807201603351221265070852496548303081030237701669307365990858843452777966997145463450502642391856332816307809998887770588950922921229867421747451430854551383266358378205130758399094401859576368543258982122992995699074092374044449427787638092277353222566821005866771995214850094592935724966572356698446136581419099931249322016219125610398828628392850737982887933598534671537325334814830823362998932149119187253266146599519661655665394466739759786916327007106802224214346524272608531076351346997347039292636411263555233766586427545175458257013945932509358484822590058890951803151307013708510708265356261552139148505568381691044925459147750366652145230461849745528788747426744138347059229537814793060332052172322217764155024918289763984914210239757276063804380130596395008039069862133320562552532587088359142721176407707086962552955046415290241909811364156090122639306111878773070545143895187804290241555358946735551223984811643515311300910791794989731080251460015016687750796761144380239210637566048998543064102720001062221433781255065122154493268512205611696221497693115297359842971502771570475691572822920902554042114685162478291233016909705005672955838538465296917287107527613670910999257584991896272336004462922534514955541316424365608996238057933161504989220641517160206924696429913560404332986047724317827584740793760807337007999158573533138335796345751996066327577627482609369613691410027996160352151965140822713177347975374169797208824054881984080440923923708270996982455158091625634934355238999712755056185487759630885942384662851728341768301338922734081559081929819947369453060660070399991189422303382787853366218211094452610902417027999999814843377187991674323528098025421470994977166637690324090034147833708596733416027656023761984696023199132347349632023133767654729513318951510594951241986242665378754408063492686896222244654933390731622599269358949905809184896359850206037956512024491190454325715358351997892198337414796784841309247822563804108641282042593645120905187049113697628505607288295974207356570534618552976717213982506727475654088647876515651428747415806172168335523406035406028850597818937733560280612569405524365952550520504714144794489965984513498535354052084033990029544048657797637349314568990644717461864829243223345641085695465030890023454915334475389655132501212798526858607805877404888615833740140934368504328733588066213053067307769767706394833607978734475789651631285893859239143930897819859906527402612600422350672651362146995795392694460486692299456512865901505061741069522197994404707757471641874536042970850457734640306340155562043155572521029496229256063139870401777494400394352426993767252180086143446998636317497648256183850389264817739985855045776954370634799204841517951308928295803606328560290323146153989142210894236112806004519813833131957447218666333081301970414630527560689869036873808075062581308505385399716507328714225690870315729971959421504821386107341959228504976227015707889568947217153595659397816300630676365374450131993849310294025919505274154072610400448615618562571238720968939821829182693503720722108472454749800942488151135132019235766712337629384352081946697277831698504125872095520581227107049099203512103168830117438171651298671311337257716233855061156038463619833664847481579626336017585355826677931748476137635881088779373146182432938879771206993909733648366328308353470995808238583362851006094749033058555068604986458924010328542695261658255417971191515432622178994249376814837083221593555976751718133052468481454238598189545524308175336160681227662139296985933239849843654451567774376685546350852714905803732547927897078114329768631480165121532886478973868472605377301118810310650166337451642849934182085518540011550733485239529592064972397472148429113654411187271745425771536838272312351645401436879904340197307610870781882167976157476323327032581429712302395511654588183018102577838438755090809965305992954308784718337443782949200098279628243509087442567045151203288294564472223383818976524481986868057071479564668024816407445316381045793403251358140622284186281410921238783135251682172848454897881956485755844861618823409506767320455966360627550611493615961143005306944337540483856187189710492738655594088329152865663322036923008741189118287733624123970486399696579925694822253442701940764538388888702629786298537726175574492917328576561608289841481928784233847665456109174049052164330041441926001296799413469992445272636834777775730905258370789993543779162187639805329718050825225964523100073258777942452430276967544763789321835283190333767540619241121659814328485423538014619239771847330328199362201233238989642209455569848595525589363835071730006577366531561217451214323629893713125360164759617637074580882734553732276731514209665255935501811177876998024137263068440037150460027256155934756996718297062152186025952970972531340773945238599157803985413690489681448567737431913034372818639856270532145347914852505233591016243408366219819131862867281435550491851633343813065580564198687599369580105822986309859700448221022818417006461064810470167123304015785370211750288715586838354703216030470797984471139804672006195568970201053514765714036845180709791395333341299792426554198636686914720635029130202802570567970893310824397480535133525776683367688775216423623679781607984073002661364334210056489584511251204973025988832372034876277798621598413486414173577692549953152371059411850272529568053453765087538495825148251216116764872260749237799003346102249867806232911977949333426359317248339404779877248321621950751189404280795875346856145439204034012100779295267824573169686150929551184831425010000209959045775276301960047618354280583936050145836486825018715376114094678438058360073211415743462157675236934273963238967052818449445276863947249008509784542191313234289925308036411690795864664813077493048156160354659334981658530705326780055410005378227335631446311535432174415059058072221943043830686871442902486018367313426152835387208218218929818938603992603914387988659013271193568069005823984325524096213833522709243083272957637475507678153258917577098336006307221104583863978007631089138837943874608305911511338224177299881806265088353588821931983884584627743002496642982329780862366479773106385518376466918323573173577122565111175202355489928944280022786256399648466236322617422763646101945024444793353933321145698915077381369569279682345677366217547272974424802747649135193720888194504421239189563499221511563466522803601459168573022813017374082554429684639880166661945204302717121733938028360134777230326277818665000032984953788790143848056226849570852760739701181669386718800496090155655263015101758040961557929503953689484353024775546515420306105223696066078818996628326220088022985433044069682324831739585427509201056551765824087434349133460820585491556258381145265129995189199160651855519332240018779070775986295298723655077168625082470257263625329303418948462455183131275314739485805572617971120163759008528162687319106088557335795442982652948470814473672946679569700101400852317276415608696717469381707855268045592585465270143841326785106721050465684536170394349320690149782990424911683478052433290683394922950491341798165209347145725419910763761417902408843123342903908853644457907901729077854392634115792114591708246546537209143780439746126064719111207797524742579396178553749359276896457679842525433043558454086871003054155606292763704878081022091768215590761449826598700044674061217560993092112034196972119991188918561819538803297990592339090606620624203067834817985855104375442199052247746127089206178159368817650448276311748280429576178573183700367298003101267740094478765124573354302745375894982655613111652619634374613859471231921443112729577718201989806069130515198042727440457928963805361581162954738891112532858847749516994536895884019975544376321972465950431006756998458630169241806624770331001319718634194891856410038785142686663094074103501318474944872286464594601819490828263724483483438484230421948678940960359929840660289287416372475907929401309952573427373472285221001206975821226068592863893690421255513257896263779731112093264705144848550319587226721233578536426754301879207253502151129130089032227173296762265830361042292059238385363639307637055702581212472081319998544108628485892806968249873476296358480677627503775336420503689032379242410859497743635432474686567081357133166304814775309429187572156519797888095864970174624472997843543163860702989590473809772445090651763550890608665895743658273598555929882056989006687968712034842028321646678334940468114175931835174200141120984278725021965241518794793898957288740380650589189345658637102770241667611666334640402915782148492327302470807344808505284968246221019220849141202235513354828768397157397497560175593403685202803378038227400673993142040647158638268728829362636421155353514674572422510173008260522007002705625687643289899867641293607568636431385659217804121961556205380560389867540404894053296621268535774360209770270980417467456113316604340685245999937396767537439392748038349388298030353008307980765275895998547380855702799823185296868400385780904717615635485797057111443712749624590042454417331458991728648213631405358348191993722306241460694920298396588397189083309609348774856778742878526284440880415682461785020502909900166958488830616052676203672213940988174334524046165726322652401347015083664343410079659229003008414774351644591985246057116213273472185563700864144379597859329777227788649414333131876061513862164227001337546193439996836803972620309178001871298276060684405211591937503369945359116676265161698320500809630272815630260040078560701921421697681657581607428711273319754689281008154216408820367829571110854639018579729591530567150721660424288250156773630753928643226867505654235071087928863839100010695135876066807223898952987130862724764716257389182532231842211141129783578413285180946080123657748555173443588681586057516403459183690331668106318654039490287836515195325937843385173663738013588538393227312140894214678786888046182965604431608508674126049862921599146685318390936303771428762290330382299711224541271355914014696031951234397227913858841512117974915730871444845634881380389581624692397782087309266221723932193594245970284246759601975317945059252802805711411225083552962884833551417877613312708978860996835457064392478802225916131180710828215996054386606292939887048546214424382702760492491430619266321597794028747433550880112946949021556563143790508515902402848283279688463143037874838513930761478391031880640510562636543732999027386644400657192970381990621510810837677882295993690554876132210470212353729549100546028544740360156176404940630681003884640852896819164227555057428161861223120413640241899559135428038396613815465329354173212313655174941293270162374906992847858715866531446275149491691267264524232456848907072507566550911079640608664964993646459695512272254920755350360469442768766488334024520439508308253333243610474649912580534095200736458543280771928394001973085969159534003869650637375239002009163653612094004805352917619331002498062512828782278341750731714703591474472293083802001306013667235935575851927006037735878242362381548042458497474692445031280757925203557221676855546803412105394730056212227182308657160182093326026278510740552298594202110611166559854999016070905039129242931039620186498089850327048959390504666180351783664737335352571398974732211044204727247524530811395241008755848473919942461865533784172566790351724149118046878066962613784026707558657696847269004018321059204716182339766670277702286887035181993781192176864691428095783269950200807787977262378065069767265995758822942994842448793921583448629735713753514511227365978320485282088116055222588023488095546119008777606207008047809937165785804857181802604549795484088734659344695287082168088820146224985003885388841986608909644691674729287234979266941461172051015581268857063892010772407907994630701788369002306472199130053600645218487091685868718318303940709888541638712869875889370534689178143897191485766798457729066013764448223931904992822940025709596752742606277915274642246180898092196097065938092964093527150248391082315124677119228871968000423873470345404559103510464520818773525689770260510127706774205751535422372383705837818899490772801360010953750159086975991751555992808187331425097054823536529360386687247421425010290887894412337584772598403611799671845411299055180928338689991472192181723501568878074804257877452208336237458580577526946222228271415123563005687886483928700509605957628621629473358966219155738724602310917790479666828665267407434387362354954664375094835520442408448928627439929193337426664694428684032092373560391241331054247348758809320345778469950993705638567357060763593571708483201486724703362527816944692369434185337238476698032480732627028639349057113228040643418643115447864734543695394220750742501236869677932092677315834309479550958949558253937852492870303524329048964672622651114609281486236139177496420672854391598125754478260210850001473748927550472672843611988081588227311957334315060136900164797031136790718822687388086897896019662027017720110281622455395521155836289396497445631303740861731342134348044112927650653350492371958407341799346017961260130146407530407800827092506103749963092860308887501854781094852569386475005936107820012070507975602897417472582027020430605392870713756079679543796469736995370618488825588479318245448616011594822875907878301864099891781481835214751747021856181417213497521450661588395132056633564680780407897021577114872578537924958670693283163576967841799492845212560397585180392058534462653260991511504047721458594587958242077221346572484785753251663456466076059877983333969885037060669066161806739550025819632424210664486896509303612065927233193959109682401500080099344439461242832325827596876309320741048669083946161797174290199985699991670215861304127770565112873781571541780626387917841965895144477274556120036507252798218535443910240553648303914253160587129953129937526560330315019117741567392310242587390778221412977804569756712766929907088696771086646109803711374495538318945382726166450135063348473121015122974635040943374304495454024505329408155668566021702486353938825319323920008114946940792494291809291345480189810021888142060325614359365852956811429303315903166092682393423545168599392520340981485131382405627334644652881178822560669945382888100930139733092658223016165497712679149102765723264562953780888442360317145572084503926287379348589798081613914498186699302903379053568995823351935257300276891476058311513080951041312513374753906224167079962267572783456106382940029795351907697934185675531192722034153048816074055514051231573153072296707774843334836812780336635839466052563167112276914186203411485317063325834303917158749163975615060544809687678074789490843962048707730513138931116859096512724933457211188651317351071250847587416184997923862820747716134476612110632915775857464040078886224769764707767377543198705977326913784667699755742006646436298001914587994798014453204241351691746035044999770550299263402199013629549201278639898130599372321866187083003915252893423155676990484425272612617598357248458537178237714204644609373513111891527650211083794728692293374673012247148234261938143315228439233622033467580224067136848570810291012889042507135753632815767390196799469031445629923561262231910025035414864241957179999810308609391251308551612772352892742908080025663556903786299904640412635935655419920832890654538110933748878418981700091068767772427509148556932694660452866990115062295443640303612823256775149702002660238359665410628146781762972298693780699782199192467328154940620545207510896751679732253030405044329972418681451622839546025296243796134611433426583466551093565619567266969565348797136677183523486867343293298269321348825455015899662601286381918817217752004947922273040860951579125627264518851466891667053254940883050168755839036810400498192071213384953228860101636321655770404210872505819052223217511294152047126639915330088162286025760915570657969686171541833379942856091777898905653401431176389800510692817071368576867713019680442353497757220169922335783489799143868779418192545628494705266623524271415534924549066931037447906307518662310978957794100259645924608629243527118384676004689013481599771463509972365689038464537544605509276350787276251603024893228459645057516739784018154241957540565472282691156994915381393028550201036718822142817455316819448394773981806972908608955198155754458997073769701355593499633689749324938292584137350969857126564787816719412883911123680646288137423739225936872523018333691825669568496523763501957078740942237332599210994009442915002149379846312682909545988644968808493555057270763850695622093811176534191064287706517452568091522132578541628993825998843140137718894509273028449539396274173973844550563590586503732006834758007884561675095167377048109217175805683073529761215857990093190808232182820350791822690573987311378627686577115464329374264864157931070588964445938780222765692044604180109681437690533027477950392759967470721043644778787316968925674400777432937449379302512693560454811771027971007852298053635369586594556006220092942114640812702934203907213528243306964904087052521725693663237712359533242633100568639679353578138781894144626370212823092911093160116007147343143856010535663656477924485041582844389079707903092834863653732373911280900272617222550403819177974871362644863634471952507637832797954159189510932091848002569449838633872784364467180984149972960180785105986890876328037306218740803594902490612297769840623267526586225925828075320937504306198688218263289935853351323337781974467702225004018408638453510933901465399324539419767268616482746027336460707646280738987270069878728300694534337841095554453663533427215101693066510190371329684204926161272552312716041007693034458870816585840827685702831577558493597283887723083454170382207733122206536145626678628709285953183256676615220461024614362975885450334212439612383609606784219172050125141684518018024466798079634394711417989941458379344529802344069003230828750578227225599058789946479555636288513816183688099611796164155380049890295058789462503652897269070807839089521878778700130980434881579952467227526902005584491893606106805630955263166131660855003696737457197053459937681382983741253012492160452111676855830952314798806611640647742286055856836008620956151035732313206049016870724146034247086715551527936575035889902597968811365092161388966227699986084780787545527523486629039945816985078109051579327342678580938061763237179349142059584414482988007729097536777731563472296347359872015540339631362475075633035362393883585314409513034047516831960891787786891602543915229099059554660972606632275172294449160538603620431490403772125519830224679314878883727636804110792818558737751870949192937973798276369504986389332223227652555919476842148051640305357360693095262037432417765536508479796073968926409642796384290300268607285885841390436923136085123009414848117558229321931781149618995553009477765767338127612212612664087552456154237896595773503918593152701859482706438997781705385460917769800031650181314419854387854522647025672551150336922880321431184142436246591000684998011508687153216216245583200057542914980862155322221619557339469193685676980434587706528021595182325412171665414449751663337281809820544830191444329136474894564739632224558440956234257097535389431886867763581600063232561714557988987524987850489005900704780656912148595861586561905183679486077107009355931188036400049055826836266825831441405470912847788758938164793322236508350875339805531130363960879494161280091845728829351927585408442378505542092982582597019512550897228263854494321414628933014375155711468533246049829945034351994753513020339415400759873120242541010436265530980515838967482100285954921667811753635239176920689510436425136884462729544342691195575065357688952175882237967474018595404034485969570556836870210962428784979641764571177812973234783780340917270389166753846550015403078554962098636337901320498175140414228538220124722000678087325618061918276498360566554232726526829833874656890172763779407841650758793294834724048820248721583281304307224690409237854391550464713330814777906153624908859869342772552001953993856800974052138356552268987527411732475261154737132767291700728943840070487722700101025509296081051521404253867757905078498483655761092270287423712972507777662867131114545396797669652672857848334553202747802574815728136351152103579244274234469322927070004679693957284834498953767691365160523229040941088139764757668609097101182662926791641356000056020767309950132124693163511638669744067294630252080972842563890999699252361455067369738527154087295962647789607562634067662671453182418994419719631348284134949560112457225827725094589683331489989852744090303155192312313311210189889741845506064707455993025442508319121624556882091707203650798186749501618417768248994955642033283318434952247065562301975065872841545959533698904880125229654272241152979495300333754463597555033281370482182376208247182010118985169634296570938079746238236305809249935689775689443707285889390175633614267100095429150856948526101341696561559877958587091246028065356094811641020774581328409797405643625435346527417935673939096861196310063546557874410478616988677819634406167321906839778914439667819382556143800628576557177841881758683270575071711481511335321109746766932000196764161965772420437278108020930649901625337508453041923246397781332188781261459457419176790475076000919043184192744156572298565753424576071429176939247065664981553574009358091756902323206518786001146107641653056506719548187339585835241679939806465042223070336288210049160525198114412120914248471842584483089621030768826936571783942414766980557026696767007119976201018637386506742015633464481541527913453860698242449573990942901312661352403085776491190995862972843430396778772921106051126020452285779863156169160440332132857091683130290385182925816380211205245748245261300356099694414641620792824703665195205682712177495313461938275342127487001968151540235781161650976337615740541087502262983618249338542984835732201740252921155183189819068173730777626170849599465720766984186986913214631712045985896889128883445142786077213859444054639991688638161083469463757842915359032217816890569117040237827183280530714384064549884010768792136928753298354877372209640922314093860775531555912940760474882800936287106545162772843606441580970200959064744212443176791246085628832033461265388364349818088003847796945443173242212012459326730320441678496645204346156860538619479245469315786869197985457076334602568446875883789717696625422945239413706185474923218145776050492739949248482335021522053937056529463830996681207777869557365886912197975305953008698545030179715787620573960535265809124073683331271355531147235720592830723315516236230129199504233622907052453279526870206029050830995673952620665963305077630148083600259442314266976229504108062186319061926770692764007598276588179889303271200380919231583020172306515257065399097360453454596738950656311363016876710707995829890857710056958415754051163752815349533456751562587768459639559781057660340986249108813423286520484915839339380436081675109234025050682033274714600435418787010877269980077922807588999372274421817335440778840488972052838189446280210374138583163752924991081410562383641943930757971102089004315847352628954384758685174705094588243705641065503918306730194514183142710610250729333039810609301624083479758753032978631330752437199568034278095602578889662741345561525326064594530298828318570968372833847957110994663364157964459526647170002148414491778074480562644226666793051973001287689162350314804917317358785093099209887903166237714924907393288142550963154515634546250983082337838277665195468112715646949697904409185127351247512725979946277430704909888335171048470162898629858213952608383849580448826777244111902205177831882312920264935934861539556788889423386127486853991714001354005550854036603151788235601428709832239921734765362703521198452424912084209329544964245981736029662403894661921651849133398618875765476796999971756160589679980539271290744904009149201513419808961769843423956203570778412882578896664565558217618204003033710827547330620044981036981666447157700553673216948057064966779272208103123174611945873953205281593747565845201391813680709890072404697177928512045701880451702176401312660246966677206113370978665403464140522672220762474219663563734614762220155340552220913936764705335489710292461284059472044136505350933395738024392713449193008468412374440639958630295823931609709988950506428548017947211349650781571577129531216256155114351892755377146000425929496613889524563476674450929964597712869608348190328864267522390932855309839573179779376309091362230967618166995589458349810993742947552087439892271651227159167111226416960509853965500021205862025335585125842525087867625680176165022608205984132658164986062121317292935338844165093753462265814475848649329523540886151089281965739562853987483018292240969458298010392491025385342569740005170270658009548112435764805671386629846358245639996321542626446844664879182810232182271250960909847302574921663884531122995336625848458117432885004434624079625193839682640048959461820043545480567351672811580576804770097521192133126296557890922225760210068839037634197308128428503509003625515274307088915503133515764203708998912074495566830355212660689415821158153869782154616732991470054182479741670012473122885838803358456015500327355880239174771329753749019079678814850729723294072053759113323361884863591023097635949720604342096696037370386521934977796701149858019176235381618778310985587162880937494105203626820410562381595196136110102819450969079187577138740602666565570392479945830792430432385244697317323174047286872613615074897362377414035575792124065248900923943487177887585911529016589186305441619773481336278152654301895173972915328314261641129982331136322450061520302516711232921706202479122747614960579156840787805384271312139480242012659801875750889469246528704148436409788523657277006776505351894944463106028941014473627185325629711578981390935573691802273384703488628781447587820966435416116915762066236250083653440405690451525741308675868472585961996860295584885860227715813094682942336761167379822568167030728142063774467254005205519264208432434525529391857871371485787625691536339665758183815477642066901311994796475101085237048093567451302407162477753561750530110327314340893772462697667440903289219336302275755027147488340420489919477670219240306871857764783773924310256624889855472173129271095663557458903894387214969600398365732070166667518373544756001647834252614467828307678402162208878094780458636292943043858355770286642521701906762063036753306529464486755363648152193197348730225580223474306712728622048602036743240579458142564566345809938663252794162353998325838917702397560687923531385849511057903486949848962071364495922192789736314023053994496574207265218534755881019501204877503643640283452299300466337599166649818446515851770059253403118313536938200397493940589690088556834660419696152149275190095063013772306629408191449491041192383947095118003176891085131816985841541562560337477516171350190809764697334847923344002625832475909642657013272597758246802057701358021259343908013579417877055447622763784856123154507649617761219100525110621919457267238418842189218363294336084766486040668411472209684462972968231215847777315208965865060349347609884336659693799655692878950887903890964818941304443208702175348330554687471737963589097662191180380494064133824921093379366697770749431638718354505857399298867269069253005594515919708376960405403899187732842547094255204891093845109492987559400340408017277228485430556067582363264227674665185653301641618357943104047461480238987057470415450545591581982000206893836825768101987004720249327143644437372184436732090550761466536028040634755319680379050973818275410651833466026092361461796500848250170130477029207535368927833097414677980753862639121530887983875745938797138714992686739297152626625068992452587540498693390196935861803318882907894471570932549871228606251307068487556653465076685327167274315412621346567470551719983377716251600045415294071533424490118148228309384488122428039000540189062058539728034091296547576219492075610195072354696036958681238639566240936139663530065735917655429137036745686012693011777446903303585538071088576535505985303173920120108098481795924556490309830745445923936301629076085175207264440720141485927639026228052878576039234801576664513151381164429764609003244664535069284627195422440253295685890783473466922082529642765287234979468435409131143133378637520335247571806785835346676774500683928442538962711715629865484341947897759191405623187348637152597182927768392987589891307141456035830178734674241937776186828184710788299309815166746608612471265665808615813178859474914963839941670897936504051978110965493725932358659687011221509418293286967265904040616715891515068476795628948911478387703941932177590584396139621183789398642327359708443547489134228758348005467404165980213848477464725376883903879194213116807334275344427671891939103149238994310907733161539141486251924854518200513218533956577143383339990395327367150022749851086028577548349960616093638956138359167544839226451420043510287593686805465070420771095290282638146159599874298377240209578294636082065312389986084253736748505555824763769234244386417195347371749854334558055530340330129392651266153053983743924386700149927122459181618803341326228489141522320593977300455158582174204777769018969884073018872338605192121588608897268383005195215201849386345410477153453351399712553219623316392647616008178617029734371983074997261145033514556482805237435204638146939943784783496203049996488007699919385222438167350723222029891733962954431122949233254515712610035000307547496812301133562128381048856821225890378219209435015493144728304780862387080404183556204831064868450278525808395528475041073576339681045931663959228918977556819808334278828645112983678576402756424887261260578551133053471278681634410456517068051796404320743009329927208968102110110290092465915047180898947098300913077619044343917201281939916548471439116190170091981037087334280032933051401205045381737970421637789991311249874043549868465657208310291562486921770393241674671733145365781539409107986401912023912641192426926232409810345825740184980836970297117092836782510323805830343397021474879640065579711121455298809820182895161236505410385518584217528025845154196325927049087448372892060850489660549765616549328771710611766335594026424680647045458075364920958303482182841020252745357407020467686808665689951722927800580612784800494992020922663324065640164875752177903399764412901459437935898744874664770352387897302049591511232941448856489676383944624082168903202386294144237771804455721553765147372992350766058809664642912657867382431940550468371784984520360884882035433714661627602805492655635914083424143519177315770049084204509273012595131251791915924784083742545166894151411507437573758822626034068467400386393984795051068824913089207197500070857905228768698703411876717441307904395473116965856036886547973110387175860187241402421235690236206787652982721471046210403128500038910229887475626377767680330591267910533673372899734065443090610969887607311486240710854533470400900542587543354524940292703681987264231004003119538329171961637788043827849941924730546316618731793843354560280190950789883995408772940315411854076875146065978557740518371091026972345461856549132626988568332580145864316073195418674548608669557535045253452375659198136440346454383020221937286750862097434833857673364322863060591163440206441488584141922117199377127468962158232815709340153341432474333158971779633491924923186522753427971626601802598900154192995388455725415143519222294969552511882197615467660213990514731071878690589457221064409581514434072828195880990977419739749989312571486198786694818859659125938850662178731977059357102347909139300620028363349378363022632103434123983569401963703137430562152406127043065181928300102217087708171500845116243994968588896914099169621914376478008575646444299640854340941811611959984792225060688293061643657742246961475565405468374656506171063950456581947697712544503956201986490229561233544946564267155346213027114313432267990161059470260162046787638471518425449985899337585447955176727040475469149742689201275917456673335829253621114427755003141074742046740258030576036727186416555900675358387171937452915974936049063768070891775749857607439819783750549002135684850668288664458819283908790489657002148557848597211166149212337885971198946687259146355961438792795776283512559742381723744546352329131558375591829294553498872336912047180333875248163309394172301434269565983055722739728736911378245858462175752293173092154681293057712819623849793360032241489401106037923586256729301053655667799624638649970200285963409956516033543673905041319851844613916547712685915804991970244296719819777116102511865115114835293031611877445294249050047151947121658984456001889775697021663269689505975758616490655977991852639868090826899653929204913482584293760363695750570712730318855165601305893456230169556344646969402044547332997770495250550885040680455431096887231615773182050638340215651726345483742363708614599526640088310995414134140856061158914027382899409756552306048665350218241598612440597186507144711299938652888053968643073383010382352508937944280051753437225145432317195592136661512282040104427948749445937631087930062664917178820340332819927399100286978739369543616255291304326835653869017269160626185424151211260292850795787954122913043786385222822228146560425961009344002827169792256430847020722510397438001765395718026404210979948238074257159089902938898644055385473387090094695715765157816982565866527624676661713302718830142484567146805542870477584641008449586788627606101419208092388020730311644155615629409311137553506776595694736471179195737825335374509591882830881949026046229598877707333584628472356255966905321684914075108010419122929267269861630863146086500524407910966470899433530842641980417531312509081616388999218333318051210420148904560197394992930346293877702444332981897541741663459027191106881616061694877906761411562315056151472853231047534553942398036242969619146157540328210553430785612146986528320128600745884117240072886254410239788892977559495031118050237569290133664746314304146265855482451309161155089903089273958797555667336163099803620516168821403847592867853343993696172126285439560850453679895767213785978131732065598058897452872690613214200711805065092898708185423377222626186645554519426828397680506776581866647520556172686690877614391952572969754121705600727172415900717198224818495626008794921778195972936134006459533540380127398043195274342093236155712561835508957608142240351108527893222834834449522018234960431199587735291634785591317495047066522954916875579198568191795324075364878155181623237441531820618644294017595435331783638141287509729055561936682788118720130478181252690214121370592376566340873729547389552673688267603936836720162582940741024719429560587884404372536569052294013869545949321034822611388994572842368249806585252085459928135828695109556087408042953617219268077960207786980997134818746681112151186610347567302114692155275500472462348676834622523550607871705547224345633838692797113145209090086594102772494078751760570053958331360211174602554086979669384962845967822255913491835407370799620496890628375414928404738264748744295628853131055782276584205148724013931709656127562727230792070203768371111912142507639571054530045312426152555336169920728246398302960368004689598113048106875327783207854873490567224961617708632427964894993734687794480478610778114220197587518709667753273224267186705551129814992684658837428352399834180395270793743346258330875509030653168872680554076890867274336463472163809762229067775694771670558196324968358227811706380710123018834152525506556230030388425629549991192011915728275764683432150927293640816542618305695294111524807056710259763750970651665516720035264469638959435934960476041519382116203847202050108469420604026080122405444771509840905607359664534990661020115242205233745670074109459061206827867046634341386248223777967267272853153475171910261886029328819638440407867371347841151673114262910418243958042081287927663485218369176412156440912660850610781623034907586495323664053182797102888066830677108765456943119890461337738468086054778430505344466483558910652356474946776133322409679245819083989531660686011385366885594678753877270739109258541545288691220417552273772321985924843575673279510322203398429915736193372346947328833087670720914437662624422464534281056063280754771837661373744736989774998578359047345966267001811284018567290202903372216804305477050046549395087080671571449379583534197823259017689694768835750578469118663221012967754102360334468704963724526871624476643368381806650008472031144397358189262137614507502350581608589783266930190031467908767562857257940548225041824122839819298209868330530710403086128480855104828649192803189619589354789518118661931061968966222417696154388346486054868441738453431660228955396330585215976310183324354719991635716955768545699080474357553866052049949797201024447383112716447607133777421067215418510003776856932074202290016469469221142890582115008147091644556786431575398081044650853495403724935107999378902369441092356290531758627279899998409732169551346836199186922470245295346154895186668740319197377815545205967746634835200726750293141312769659258695225336714339400838041770417258203621473827972829400421046597597990669020126503405168938771959609539656070330480499750864628321061315825083265069016610296179552266161762584052380468355151274525748816368634728281592094408441523237902584676984402421798879869641177617324575150735516044039366625673364780458069227696487191784612488830884845981990440529287796922697898954901067156939561348383292428987556723171934865208820771453389930328445043881713553599627989715909384012512919060181595188315283628644129425151212755385189941870399682112279168531664787419873277138872510312906840886853240578449754368176649330951316480412877446651670360949665677630200156937976560125010672155810498227446900567452826734549993333715640036589662543157725318033304387125859326898550640865369891245123290886783010719355717071819342119606112545653112367246880448043672744829290438246461985578490744533297309059904943747078870378485236650570159681456734995680264750825740904971158858916163927068067538998377174708198107354599111081874957227469470980822626447840425149300407489779720660425007075796379118104571759745959071989115044043715044880992198259144249513622078536635692837895792436411805129162369672554966818581039642915030685476286005813775238033088819930209141734203312446823828157083400657903686066888558620393009634320489859448560365101628647232186384528594627991179422584279330259436788181172184515733029149434373915134783402972319764108659736503932765460563098987094576494682709359981824074550614171547005433019919240375146388574071177659091415119182751442884342656323363586599667327907607950306980468663552429273194317689661329382511624992447911222949289947258558208628389291257860343677275330930389899826276460092157220342715423841731021340063567488480864626583563868960297165707825532242972704244994373347430658623154226190590097842972968338194441640859379890191259049883945871185452527260057008824492315198616150932421511267844233656079482128156682937527176916557308646097795190017363244124703488104757790416406831834406354504244785004815757468973457393544234839698085557037088363608655625074256046942964765964303566043187823563531498979550623540192367224767547953013534626220372255508670865869451353154811323833765464013393119203131040922922432415545823832702906415764799521215478086477262768335300693916682720458983105672175067461798704183136620957232261303403019613713442149145494926944201841642352880586280114650898987366426251724754821809390175319617025643860662803050559927265445313030471990538336670427641240760838082050278456806914540494473257788266011204400258872079807993302787733964286818090356809227149842826660990844073675936246307303581290269645141039228872472131163575548277982797410703589145087870159046124234971608137076529880258958272140254578469763642661986024838940470864476172043032004257241258357880044426073949735438112277841180753503175198919593905023187185434248000908149362367806075274206312864059143409124509147934482820417836293539166011674162561069805880307881036642866008880412263274025404360358969333672668607076790986634539697906281273917812440540994679099830407961142536967592147975818242592314325437384141533685350418669662578603040242975443657417780115553670515908834801724953446892058511560940854099332755158892649675466261601980547001730141732099479275189282061750912431863402302273762834678123262951880871244369047713772802380542804120444768163458351306877446405998408727467352853562833457693235255914214300471302527557115932351102622452343560927264191972556519468240042604208168796846480212310581428772645263760062410129759575051655612808373886299245298453382070386437830324194290070225551221192615203769487700390234249750694724411153255522608133460627093263305021174109773675118314375498976191500681830986799541901382645045564885559180212183700165922824802815116317855715287511634975330654224381279597720981297078111192509724973891549806683148424331893156209324885199666371722709470612541168567282557637708857718423584714126542161110582551380854298279241126238026964538835927825530689484208158683233462342799586131630132219638087201467535348689054541715411270330690616345091871141386953980790454547306860653372488106084444478227474770396721744857526285092669646359935059444475202087349827090607957551478472099179003839099370873893582281144671275631473723433584809902494728666557425419523807813229695618018472665292999904818276783396962146508608495658486447298858695049318704915332371680732851547101830619435261056063701918238441367382375121314777233876643400546969769919838973304611390704000831716608995983809561860872601441773435330006757576207393537588182435107011219077627649621614941242748710545728696628016970472836549101319055842742889185568871643649941014995210857005577734701708001980589754530960270930751769788911308792970648474654585663339047875113860644095875180169863679065039146003137995385435468736772559479212307289022416204420293274943761240223950112135214285648812888729818615043927719843367178558527003942462443103227477175455694034443424824955674285667574782488107528912805453882628548363980847511602626384954006420925741510928330174129287380997720931062733350410852776724669822461129983812484425577531095549657648773914948552564618160000871866410881028000482534646017343846280044631213774993071422643155038616309930988858886826903978679127471901620382888108365224189890354329253545819135297880185523577279407409782974936366452025475228456733536023994205227565365023134430821344977569644971132945311170812254650555913675739744400625068573621261200254477739984821069108638789031865012200443653529851436744403685744294536111946677729541392806691709486261543730801525428323943640400938939805021970857253746395436688332763388826445930191210501045805669815764852038000348584397153594711868606357779418336129010064420363136441354986539956158145460313369978868093927720807036814517313878997917286683711375302381444677559557759163909277343523505572549674708676594915034196274717168522631723053118662781214532181540495258849063634702942363157187907553625888435353971163042901203324355251151415892784238552283483118726282946613048564331764995765271099148118856133583082371884406088445072049003773416911606620267650983817404933451655579405593287511742491716392138795689430204766145207880714419673155558524391004925562889897774917348607306566267492890344039516472392002268760407930570372705477883229252773732080975638348481653506536985597812349297584905657892593522565564181822170268269744478250018670529374778951523149103466870179395254648087289931489784130508575636276921771274353686396410756374011217262041007770540486214256046582700888336853718204413937307283953016900330695530425128869621111719902327890608383275028325775220816535378914690705562202302206561863003885980398994765346397994244957294068391817258107222035925223313954001626799194389666765825371332600089661937997177616747268912747286960892118996106548806668750980720905131852818458538259821034876313244588243551226817127099816854999887300387478459879647286885907036489602939499743496839771310375781665383825883153622158202408066295580517945328558304409816973886097176840986753085805450789622197549416118836035662770014493760791147811205600035211544902892699897923558964886553789609247635895757303218402947450316475369709626188815883852040381432848902688285947152453285732895691597453934177560761524769477907196733495872719226341095482784136513557330604148535316866616628436503391318923232829647707857255950760278482991088655536384618620162375923740654988743108371542258296882709802907332485490141163140035096942477938313562676460286758153620111360707493654650415881693560640695134980436353531297998037450387531953328219990942985029870424831902707310413657488023939388761271468198812385625014082498153792055161683520374442416795118140639757262780830536585338148484748533175799689014044994279332287315937211170980645389705760588872092927362046887119364319055161274973418226548081519921072948817334583324387227316717885280513036677568891925331285604599178164006423817271526771116579222035854407886246584757664740145081797284358716916446788321765048884916304540559977050404779282612789862813864968668112622061669882058673157339377159319321152664216373202951762051340717535454464772048098449830365072011255057114470961425265810755090224108061237054419450075015643691399256979639949933856385719197559023050681025838429615108466003538467758991328344683641665478502268095045911094589047133215223184717551241769694878910340454405259125041093932553470823416567975400903466292016637575905735549318336375028198670084929508136438718371901755449543502619349605745762852961261940596950104683707021807167337019448404439913208376356303366061623112909082918610804673194419071864911380746481121362037901460631112257690689045099533898311325512980526743785539864727463894540956910002153827385310986596818568506293440157092083597466034263898475309344334088140340050715910240675122395985775443910962737677530544860974357892607346918134485073853993280300909916395462369979303647612135068818435532843553419313632047165461405145374556853875961353792704990992628294326169827978119312016672921710105611624924742622617635914981687499061351499369569202065806491773308970349035484316784745298739073923002551603854306058609550528763818134901886343396964637689995981211722955413817724421378031718911777679942276194554986684096538467029437758318209213955536072439757286777262219502763954036631653944770501235243852346677760414099694172351895749866886068763217353259023463409933350415052914953415390897158352297769610801351448639241719833094289271010395747030628251084333257421855520913263820646472106824637494052222926273496715536851293763521660032984421177409995256236003688839464360040734125012104613712895737765085923958236772257689901862361146056974470452168939330450180848042939963310508341850030368025616502176896727348817658823264834508501416288967282019402658083501612011043842897029323528443158550029248216220805901338366087745485653699134291020253266746992020398139915747160891883754960697774338816025108541754606374111793325275039620803500731027304937020164873570206188439216679149311290784707389492184448341236163447782855004530740410439517634039804923572723489475745390544940052931184945439768066303649851934247961818893630195936742846219227711059367618240235783506676816751462844202215427089137522624793543787770418785611824419598749355582042025483752469803236401685281090495758646695966526408141991663630256549594724924253513355558657358971696589828345453707483124500651763303896964550262083173942475496272094240201045756225646280831200429131667159973166132879346547657899542392382665148749894661927277805458790258380638880176814202991899534103148816106872010226716572594280715964111525013916501616854058938090391194056897641413477043022080336094032278049843862323416878638800150104849518604863112712187032531006989532298659490324929315516558322188815144003943811142478309724753047787897138830864102778600315535827807937747973672749837635985842374527029170112951545011897050718184582674325270929455168492817279107062464806508802635780425103634302490111364396356973287531881397033925560674856490479172589320666853485550700273485452328530288422673724358767084682304735894929162602364860620919793965202108072777245421676976741140757209839275054744129181869512265950287569558659814993900047580154318521213930925879021312954217587240207178747035087780819734027265637803622620235444374158224573487493936245899746201928856264344704814044267679208682351430854071833612541793978437297351853512990130637775441834356891829158756418191707915697367297734401987953550940737238093337926700834038936166016554826325630234826296395360501318748403150774442083783134944979050949095883315686491576263124722644751176778987641351151705061687998856862763314908101334214557807804987820455107860243695279557455440250321137012532008606708984867808764030733949009204586961641346838851569033908204452995074954455807106640757096632346120229946306273784648155957720958108853205413014182135017445686962211720226971825287688502916337439453791536608351869384446371036076853005768943971611596997167206687741443294161670887013529062029322543241019056047385685655561358168810222919567421329175932970578653228045646186741685968027606911236457399178052148666571774395465928375567039613245866347209874985589572438011782220888720373887434346046412795335875527777876088864069084001024230689825014731445256236519447288104649856036591747271540034858273754369139825550843599950505612298847743432749781129079259965437768857718587198728783639080593637674451769017798679958386626964068263339528653319309243647642550903979645527151825926258169052414687116612521843838232418581274118495616065647922904520575387824344278999062501709801342159749119359921541876682308525394638979952045481716828544233439962744052538110681147973508846139451102727737062311301292275363795125046955554716343562744857205777088651462114707376796729017560620048830490439462789663009957120443667495112679885290507614372230620406258639626146670441546405790745548339019082165158370701232397068665888398540628834185435535449230676675810917370722343776431176123892049712840375620293242451193575316654759611138064064311314856793599454748365703252309275037118800325433742405205252333106433492772497530477529016122941229472759156156130455105825061047430513606007362556993857389861848867941901425326789949900817972936731653253812460292296718557294539998251636939449811688520202370798188962344853794542903325594602918563201178106980340646337632753136690973629556024851638049172660876796980182722336941452910101122438119713628351994744927503705461456345581159312062455357017951831987819103334514917316531468016677420808999277338223365671942098767170257093693645734733692268829569723983950329584858853597118262664500154361505415079929288418114068769413169345144144127673021598917623562253196182796078372142174417502663860169960329730336049256327167770822623852138648468973996070340566536010619155882823419187630544322629418087422460901363627751474413291335016903780479071499358253657412364918123556469425639478709602973298882820113105169338936982232667972010414883607478821644990888066086462402837294045342833433470345916142913825164786274801903798572522388075359383516440475968399055462181502322616076940337822632312424101036474867230339532256589766173235516598392368545720677131868593356827715355523069953937702943905804681790227542181554466954048104214131934351556194429073136743120144295469975346940193742908427669639916478463643389277048650885067643977337704969753724068020296381701973823146057105730318088490787400320642256522564236444802915247804404800630213501232501045563158963903407967114816892450451125519148370236286079144356686192838505410615057059486827729820126313055064105105416345484702142858786910760548067895135975625017149415717127992014421253890616799197491907740979590448963191325976079455831842046940484344718577318009547890435786512700089042050226514790898833659299680919239305162434898388236223335451505165696910074640554036288743173449215974325084378256909532078343084776757476767535106769122153111701345820237114736540520899778793086650730565565325187003405528790500398932338967889041149343091853053777932512957594705320471734476195941897575500768469580491543919436912065265273234128353033585402697765717604172993124536816336523260787916017791749780425883834166975948458095715755916299039638192649844028178302522658948636453413068888526335672112017308931870641635360422025690183340030562870760280974380638360566684198040392975834690406823379173799984180458011084045786716973272132290103169978164332803670299339518795514584349872045167139071020779045167763792550889564957595790762320636708145215569717984577598552522686847094979288819564922036065612900747070988169694698888156909937025670865884816333433592655942928750833823604215096841677633338064456105348222234067054854130826443878538573420381450768372935394932705508488866963340994668864803598136331524918063401779979824234323478887971719476060817720219158179062532110050298347049770449110311056322394574596781856158968089786450701299383272435511717267673068895451314301249369529240212789863517619388285504313622681054489918571041775366102607981046046624756496475501322512044387868504530109809349113690084397288810776539259216707628714903583734260432758703668529488116374894438325772306888866825271983032498517765631591985455173452122706989469028983910575088130354298900176142962995438179193314222514738315277403718122111758640462979445440357446407935034113864324274147919190215186176256648459712841136209115006896805931414676443152039529046066151056710342447076563692506472691309784782274683256106494588186322169115707499911981568266139457194729808988572715813830296551565123297064936016960318202800223197485256781930338244805460010631018079859130345763250976875278697306488260160146109405152934081771242438429124222918217868251661565980947191441119295688355746255277426576907702779140989038115528719239027219088069275162531698268174644074196142842686725972658474117628160937633998145787534339020599838768795258171214681951263324390403519288284390111384880000902103904251475105835069184372122959523598608651178544304375572360419113860392134224977048946172353739179994206204727259688497694988275389491892004715483820246071102156820435949429159046339820120668316811839621357446695795406271032742215166824377740055595847687488154616321223194490747355649017619513704807582326804186200320815647717442272767791251318790312413365103484169761179478455186377495701253064615139596398150454170130437499201021233977787697913098381345069118821845055569547626474482239353166726644014089888385832247783536875833613444615252088266998127124583929164226357830348909294748315956074736793409509523600943488208596424005872066459041252753013646210287007888804482804146458383107463321684324886552134883612524863921251325131177290427431124991970418089489499636890099308735323150565357528451936084880984554059001065804849727219606849907947931131102343827726964240986583457552347744323080021964883683433839138866504802230875408865378861051655094378062542422133849367189815742047114435557716560487889250193841665511323112052069168433202187255071997748522654820694016152682248128069425866208776590979556120495467286283555357658118786976776238279796471648732087048271892310034952025325243164677021383476669562783501457271014473931466011349995701763063573047215904424774478191735808689917916037684446114177332851529442848699560768342890775923813857026824002377348016049014433978361031040669648599192411902892079769811607274142522755792950621302571398492911109126647544598303563720108936700269686803971768576733307374825488651406188440947447962833217230001630870025336280394987267929307551524087985656503395437500776658675483948016050239950831409679137950943334456889468957096202020513843013593582538767705184012162049953494908127284552692982360451182658792908173144401095014243064710007584599997978145446494776343768276931258686088573749721725570194751281837360501242605546800340368852775360819884493412864713563198232161208359693119845227479647080935038173038811970309202163974632527582394106022596553445704448999019664395171771547633795341509922285650105333722338926671087072525300359469957228525150045328864854045329826890076238808354231600816761622816998716073950434633290606640713333773630276468242543699622712049640680778228114902312969916365961212606849795780778031600155767743828923721702026823526560760238948046881017304959705595167377512519079296695267057781228809177240594665711989035930840996841554617452657442580448726581993926472443681129931187229561389291692609987565504168688483527740586161981741878783747616056966812638017545249300271941774447844398855001843377777752097621593404496955333188217498081739746433389864755079296333409034330163023105769279016721511920001398652252312268654870288498175649728475088720359208639336246025562840228462664877283501311530219732751908190600246552151937374287845784984758863597905468440761222862031011939318110028290630295674403796937209567981005297921237528461607879297286225954693264681197091440036817479337896811755313224488735266251086692821893645969279626118487711758355634106676000535021232919097243191022603598820136694099067035207082118794907083020531544327349251982514702853582456674300395789399581880613141928973837362548892024599595148958073779140043859493135181232328017320952882591630591176923878574948324977108551316672474889554179175632923075822680635204677038065649847977562803443283327462109386337962354278769530353709961874586162249037734120035272032985972548079154262129017597988131584757855249117401079444572600605207629483200163635268567077408065572556396422533363169111078825372789711305062276296587212326511266959964103438678289187314165969435619225533886849026699726108480257819556175082069822200379172600937278305146095070817554259360084188250196213058165914347375540820065755791927214198673990890831836015910793019458090538859132723442943804266203323713747497728825398475252286012669024069588220985258446413092563537495706230116687133137210835870421292431540414408860486979526079733268063486819273813682328471978006681284319884893033038694616574310683521521863666571237739497490178245530844584636406432062765113902712943836914016318722228527679368571238699947086916111532212058544879300986918571159505395399696324658476680438228409019755785511277681238800024945890757419979660980504257817896241485460220970636827723087343973275122308176576473334098455767892865804723266603773928039138773527461597600126839964914126988788242832607772198943717348096606916773325384507673090450267285830019585663406421697157193544931291493959668396168627519619027237073504598671969498849804905127241189395809806453918986020857824378677712080211995651703127787580986451112980179789768932740027031485899296490475206910749681280278427597539189886196653539422940684847683620735415915989904576249918020927154626719364957162730843133238809905254330426273981082530761340334222346387339802777362821246118102608163364361141617666234066752233298385434439156892395666739589491993425448476561049980785932283392536227240211721612773749332329012404792455334169909120438415549878696850450433578288824665617101459810854870993801972609006125107624957466381487583920147206233459362590000600279780228577122876514628389089559068662901213333961399008500809656379189474055537861285378119823898156957383988526219612239761514571593024278960538290880661768504893326921833022667263597136205773085762181207652674278921730863748523780860315124085881187445481012668216733973240929824015103955598516410050897202541420864349240168452541882631782801092078839366193870276308987834516896888999649920733320935018488424706157807121366518344572025381532081010471344393156015411722660236983302342036778413463355145257722889061074922630853385706440126313099379786315784012877819909118037692534088908143531292796762571430705982378979252709928530019977433475259896751013220671758075512636862177972072384833734486554996300812615903198649052384088610479600522553792032832270598152614506826012664297759895583260581526554879729416053813221340136326990952584754824948585378892802087527086083183653576859272644542407665428051632330488586483973434507421149810702289301094194406363278945336920555663294391156284906774391298935910133534639844298647279600276797997789772777129133477610075102845475943863591227128807476024220139403336361719996045258318298060982441450837159352436517382960084780797679968916068827052231596787186132663739591007716184995193075738005842679298626775761407378152755449963907118683466665123484053529803723846283789907378710971947394826818019433312878865547503685468977143725992575188838564415621157518591975467876136773418576607978731519574926004205991924647957143197897445093752487859449932832616313273033657606325461343552168627156788903937835050535740999850974994945863768997766463449321358282004857381247971599210506843928269101943900195105687069295638172205592808670031325223724152066629633557577563351648731561290396119185278734467288504070286429821049915854765099749590386136896259383454866232846469852582704270217014118119356932464023295029882300421634058705844898539470596347553023779596593614085689232489075875978139412640840455537476511862324430592646658421430495968435331757340218767828986856839925681476897894201910761479485262325922210768969464159774704368315019098879028280153099983569070909579482063999785799303545135405945320566287819686297071082681477702157717353126658943215940144211218164178568949562011400476767113761676144109508266928665890074518228549248055452099153874291761125182722678332339702053801015876144222274861387395978060044115813489687085932511675075852226220226913156094235007827192907006937809898789018600718095651715094863706038022797100742517907382086007506317992038246204697737796018505049429762434453377618877792972625247774650942470632724237101529886942717275801170620560863960988229872861963200095314458617698245404060150302492668583159238046925748283603272525777226684230080128322835868796546046307310077531275680427737916970097229118348031345540541174144235691859778935335556041741048523978990830709872746526194022307920538803128830080678550050200148301279637080876221551415518455112487551145768786503329152174453088328032913424495656040953922954403565199954547140829595839260559833861183168954778005108526112000177693597517202695179350072708760552116072588761637380879557703446871143033260209025070895349476332552150874023168172102885188651998267390074887244477631909254055393436080858588660938084596673579090183545897872284568821509182973212186279972763516051326018425222349599903016846244506186698791780831537608342431774305499178875042302242961840494195230385197975215897011785627046714715422773876833189305710464371815976653149789285462120900112383542958973619093789349592497102343220786962132218972267974096478996923965932731207999891523254197142290148100201345183270735721566831267374449810816689288481307311190006219346894381826996233560903932273371062729683406668768604024516252429253502504824064589257492129025079361507962055992354757282311190923846632811442183164742056777107813921251663673476531973961681996209838426109432170531257948598410765806473105711242969788170602910243724790598258876217130657438762555423658763511859347710929799907108392221814544196691087255897771408808736692228631265575333280818111411774549049421389227544724369757462979322586804861074988084073081241247940222708442012742933859375001792161999682233038474430523061620138768711223810096519103730348193458933221703366877602432524361495792467289237895938051048840728267370026370692911891574509389531512319477616189290392385375273932889492821144296019996757581047043716362310484718603976459612760617472630584125003282351634837720286797455692703534960213586443581190251920349488386115635439670167946929259352039947684151376587189776452730539782110555934588379229739896098658690957033062903531238577550914696504693666607218446907367056508246434008808190229275194705034374086919813671469938309567424064549941490960780453938165409454635993868472621065614847576163985286452841633119517916558379581026160203721971168816728914319894139475177603019017929865695404333224821735471825031712451620003393628366378482035045114463019002716685865155815275605892824557385006224430855524501356235084995117573753071568508610368649794609951266542689800609762932392996005168784365815016559224099963997683840971349701350635466904515372367977425365827852220768614044376026725462272210493464070022029843359706925152087904489879655861630559465079546351595706023309404207350129571062723561636822093515515868211172342364932385948228885736864793713781750756009952881006525562973627800488422854587504761404779856475665805948357293683211499164869340434164930194807501447908703279293746586473924041043981071945006102672369898317909110174995200591992307329347146654557837838548225200724679310151677246923916907410746581219366619678037091962968019437623676396736579177698960983386014569564201223029348339472143001155209918789972232315100501298513157012027519174214072179648277648915843769349216575133262353966924746296233943512819794877583382036636507719615870665919386495058923578964534890755401667939532697178879729337541265963326198376916712864099244079049417446652357639057238687110100102867349272844312607540933741461782519300802265246461782468210939279019377017283031641380005234964157372379240028384120450508961602717744143308461964235454637837739915331640846932351878185589524639980327383386408877439176781009234204151510260470478837160307039752127630290428559990658946523393231197894900483901957462331424520632050583173148614349184964425440731672867111208207054169110666330264801166422104093322559041374183962939861884362506347911524930089461013896126443280581824614037131696596751779650863458893197194425747186428083106560648718986341955629465600105170285968700726405205209605767475372158305673306026750128010584808581270084011539602339570677513780435201074925468267089070812134696840961944479797037671084523127507944912041828603165962434250761695967980720202564176252686704456293039486787708163493562246175216112984883171719366454360668042634917015024240040977819400470008003355276832236128329289671415658680431527749104513473642717491354319500169938232636498170110487000132682503159573824714329196640872265984583985449816666477230290275852224162417988046593407163067035303432732582691319077910890245307622815380104094093931992164074497409887646218722990003209370282152252444811363873408209448871946473769759820916501814255707506748238399076176190949111922687984843720194890489769419238670910113102827104163811271301088016465886064400368456820499368970920353180890516910947772377552974697219349598637502928308803065782462545544338453367664659497388613703983045876014663720581265833843758195754239315222243703240655946209208764961042318723531818500591039359029884770150752366875361110910702550569926219384163581202344743499452249248945577439556978141470446530750902561589446236162327424179438514436123478455108344539555270809462026755779658368035659798270632302244941560054477909686605235667954270755220897296548840482441947301152626730249080454035241795000326870490573905040982067420983395701151907941147244448544970823226776321415756652981505772417021872968761578363670633344367768639221471081388199362233062475584870360688354065411712115903776771778796676652472562585175334967699472934278630500358581462343156566775006962336423867268692731496261987710072051892785135674436665527600664347456886237988930494301492169139926886489817929053730142200788661249352705143142301517586034391548046746566260897393452391460188634504288240670513305774608905699384197211422303460363079604121650236177655920577775261131218331148267922143772692676215814920477177743399513391860166246331390311346076392002710504559148313732955261331728090989378249087748385762938168518889339642311657343314901236405655955088917681699292829048292769912484338092611375450800364430103142819253052393380107439004564945022312287599905228734847903630028553375005283025320937147526528966463306408480359745519091144296359381282704337361849998411822927168569058672150476576176489602228176469686648282947193463640125946115786368573820389152186512378907054349434660243980126250408811678815719537063341696123798167693284244756972251632240545872298914013086128831737899296439424539412556152892502130717552302141929393283115031526942299337907939028568302135435633992743999505600442628624595369597719897517779356194993340457431411279548072507168479881394543584091550701421106769763555450798754913336234288816441221429509177518779466442565486723757067822651717818183298287736504459628752432419110212347544020020809364840741457661701494427966812471136383131586905010199964299270418500991172896814743925431147046881704139107108946530732905016534711718975522993688381121140094259701854941266397230815368421850803063693991393923483820235965710571250913902068271377906311426930989069908211845687981413010958295976595856560098072896265076325338006855592118607524297759545703120953334266529249408444376666067418214357015107921596342680615307414850313078130651399881578468998855568447651549220398713443482833135592028121752336387017402666287029413007689098316526058164344846708999528747837248391610101012477992799094753861733678949924111102561079033405048111217336966320203124203191127561131028642982521239224032430662635685333310593873691918904103029102177776351953671201724979560574107313574343235634369083960223349259407797108135754051135775103996987529356539820484644142722445218692738141249238969988996663040751204291896793731651498350931274294822075023016757649743883919785530413966362052998271216794259233058337380172398894465413084845283952868650163759700244431302936549561977995039490599889739135390803744690858577881319980395591176639586805979336707315402940248852172220883404522469163413063029577002684763834851947660921029651873516354046959043822727992344361092509128847198766145934473166098821615623310915043397155078560167674547063744387237463388986017375889785901476799658027944966214251909505823322756667200883027699244676654995448067339809246084317235374776008634210259388221955296645745507460729093140332623784815372029858044393054193219064284761727321428620795796326276228665177090170891479195000839854778116840153592447198274304886881036165685582154055745100746439426899780418099168124853340367093774233132932664103135266284376186276955124675946273203704894773615767798465555852269805012531677149273750648623595676203140689777813429292898356103106153218003342277773541155875111715903356919232886025504417225526478073067544843748364957679482398415441958390184984046770401690955138528332319075793844785581124641391192357957091988210142075134631677010484810689962949533963217391286970920206719060219302436192598949868021917803558310277418035808475151959906090963346021183789419170512842664590480461599868739974344413902144684877989155688315077881001771030245582714249546147390937982963517577556859188521680856259053572608816306009140826915641340102857418309405826632159584578696710073201317011181722189993280957780437901847089739127067695358952533332337352607529106084221074161762733007253636303067201165343882483151110556417668517526836346871101542221926996897585994681426193940950364169782831784345078032827152009910030248416863229648089258636613468135796149810471975853968257664902402439566813557652515539187309871753320822152562301277428206423974644010660773819446876511598150516649220750912784519597133965122775019362601726094449957618381521143301020248654420218615850565727694131924238784649714934321780294185042360706101760934120359415642009412783148299283883111528682303625222323818827724671159095317862130858697501453405275896816687170801749712713596744254161025774591437488325043782582720693766331662389671839380142822785759838230379231851924660893627342180326725886577494383209652699327304599354019316194714973233255000419492325695142560552639146655640832402060515748297257346712464304081408847175052901171258596265772782236513082170242676361758192131855738571481120558140059817793806988997181315133945175419559742025696247145767131541529452216041756277067374238333184376949508397760959352092351313222660060046573698076126588560837135921658063075221823389549717199379207635833843167513301527345046866833755722909289462630466148316456890370893371731258838983622226874579605685239791597294266566777683261691422435981223746368245724592042651457463093998593151682222676517846962208164895681464720436160419988683233508122150910367624415510483932505088975480395536110688556790246676468878536573141637144346231916536486070807530045868230311600233816793738520300577058106828170162529703053881063768076804080011940727379793003215274651370808867641894898732390658562102413990107774679167196454700464633026534484327783852331606264337191135584595813145838075945696983800851935247321944106890675760433766812099511962231167620370809271947855065594016191823589337913162693281521733275809848239817762779356994139003715452951746928726006881031077293813039924773373494770177058689446179060020619701271250083423725220713572514647424343256151943475777783222002679191717805950156136984764120281098998586924241714502401475206969441697808957704741641634530131695298123175931422807919011589941331831015390777455410039983722916745175822009940497490040569284082802529731573880450478516564382725612796129472612472304957239044490131263547159345817907308491486525237242050400907558954161172042623458828534841223474343685863385288133349483696038092346169811655841913488943259746956997719159128039051402824241230237149273529040240688489356759763833590486166387149951418085670151323804964233387821215177768226115546878140543325789134460443638544727884284083011144622486109634066704589275909666599052417506654066944279277974155160520087159075970578098082625737720586273214577572792504286964492371201851926430425813708938751430076241729621061792455650229626059230619802779887654749457457369874649523884848668852319723701029568768907453415810578386134142621366358949546801237070478987822373513601660211383510353156111788733473331078603608765650711005967770991778337059541188478956159189883996744286808934728296425122159881039417089187219072849404142480390529915091910773362822143215662632660607690456081221134728698163513437562554790556913001734478969328041600952419968857718132303162042224251434078017305566343537854344120282732046989616610805339897649118348301587420238835903437520141900465067767473714159466995797009930845017449741273824450498679233881417759874500490780397950060806762832694804093065261344841884557893863281073515143246179825811445283980541054049519965909784262290685530652181763435895988949340913046040106362521885528776451791792659510914661373745324522803453045112841727335367923733271529366135754728120038558730737622360961270483853032376917779934428290404288242533611650321076933014049761539236776942859920243885765819144253757538737492413054438560974004818080375474378448467247117871257166558426104440274882137848614015745723669845258037487999068869024156720959127616042986054253273842456720194500869282895383679298347362260231346096180928766677213262117519961698791018766515002424842798426910154130233538325022076212045168742995453787093659923992755488660113137952381334952728864740983742103343023137948131541692677563196835000871105360459565412831980011844067601485778883388624401089052279310576215778459831499586748625061851707329285358595258854768997182296218614581652615073962667377152520483956401765059578040789278997646313035141973051611102069688051568143827341982683059496693417669406278459233686091902133308425155766723389047225178673493137984331516758217369274826264369292523138505309435967954595545536958433964831512706040881523692347455436249549216917294543592518490253085980704876876064545211507874277377970236770639020516687469155289055860343277566643659137749858411057136914163276411692689805501510834681131623383434044129044379356232448995282401959768174717056828658119767243123968480931900454003452870140286288599439863631372227365021569385618753651588323240867907466274680886957128583540735426272173035308040244913924451777750126241624649638481556313291128711451444119639153156929779372325699251081439299172498739930283631428747208587543092036203154886730340583425284164884971112332035006368224973528848903301253660462234292111652020688131511769099925910835376119429868705273193435047807909293312848081156677869383217839946611418536320115950035612249244355444850254154960221431289132737547653872098971471005207579630260474020606575772465557929845857686784865800438124057248529692995183750345430880262806850593363141508857954414990399534988692434910214596437073454888369792563203782349052336836472181625310482527859180662582727317239902343208311229032379926303306886846440574786580845961985512556285012284226713495187101659495557808494543005887974214601454668523114934166466965460061426616466733319865944565456682516126085407639853853199551981103244978389211716599054152206057614987495310860707994381341690970201731207759682345646871823865846329581425364877247570670494308266790677157913485767339326647950268144262290715245062130822019827252422953678545242307958436309070144852915784786746329304986096087565128918264143831526418625895164745336397837273387714787180955026549611468689934571706231059096640848599547443310497601316524638718223282653287279819930952880870756019369621800910575764990978247920968253720375886102131338966835697374716110763548880605184918272311258942533507542821223953898171113618591329679222843868646434672249128660063799170375222611315187562004078910812005873446288221427818904352090480548563145070466659801752235815240164582363552428936935280503362677362786060558523914742339943379814196815425849079267527555992393014039273598444532891435432770941820001773050771752655748373211645507089584545227929182477541734782381021988894123991743447294443386062763198182155472813880388474684794099560501483252633923130979255666412768859186224296097242766229350387007256598678684381709475038479155767931694838767506688571949404083637142739317369543229777530572111297647122347220565741223747170717680913610270118908929501861828769981826646137271716058463293470096698962184816823271729213095495676250764558729725888502348940910477801069694905276413657280867511928383096306672467456692728657258302290564973413278083417462059496108653238869574388185102879983582427015657833643188728855152549960065128160366906541626471976039692406789216630116726222025517114010122074311376731588814065439704063367255059587052697569404938588168834025630149617203073379632093077907779226551902616800302349386878955122432395259351631429766182602200829649094815596173675589535120456020378321874050392452928369779648920993999676290750313605806521094366007891624151694124539935215192782487311467628877153514524015303981544815648089656843088184120171721227358648761558655021223378808018449349292857587626388321506333371946683678219465679040475403182155285005032946025421174069148540177114651354492978128937466040973032636748145425961509774459285214016276223289659795611048842255230577470155876805867411692223015575636379160887960704434288185019175681211908993707449610687595598921140827206188236017957735802659690591424796260798548556754767702733522284886080480362990163925955275729992449722288376400777049980962388153464237924576444729039398751688744750912924274633837559335928060808443820882858756270036376675270884444832318003392006038810068845694933017734594986739976997487757161997197087968535512363679482580393103369657137301005966141630986737233322188380380781745260167642599764588911226583454389824345113631660491913879154320029194145510327202734708861544932071660133207622686519711679936655861594437995200665500817586721253459237415006098613514576900690921975044052053098123985754719096340109983592085602702879283283994892329086841011625113302579527390921136224584669607298596863655467091984181422263274022741448989580516010839366262202473874842805154574051842401467655756159737035640099563868983506778480635240029747896793711315526336827537930185069753489481102803996898443117462431956971127047833616147796450113908119692389047263793575948349734165089312533991637022982847777129027579855934859729484013829057056871747152063815568214221824088360487768826943970229569386692496919272309287895609054554793388862265144401258146605235592782446569609823552140716374786240880999919841229254258018924371604021800681944092522455984254311346492637380478716412831786394468371901645588808262873842608571523389096710554672154335377692549133277587114833951020021421835019060107174178765499714954615154047824587387955771744216150419152398545345940355070177620014590841486878933184028665747844338642255414753339742288235635121900819397335884581784766519559801910580132809742104598555568762176140274904071908706722603437432227190446773524825505660039473958145148679118714637157705294909708567436720691936426521876057917343241479188696962921298301365034753403064662962417292230014285023326862216924833523226372209303721228788189799910170329647563548588321649968750717653624407650272118131200247526001910568611202646883363347226778097898103279982041031982603423271501918017985979556375702081694196524771500834609035863998824149891632280463766679461167334323162087422610796483229899913271139524803822097573529496035863464540843637278970771888333236429160157156359022019647359644602469914725797269768268237659267319663439400728156946226980723080772781079972939035224717999745506679922354817118787230547271944901021320937501432088783937628413132012120246586774917275459140172014098942533609540382023488210830998396317595971318338096782285726879312480294128223622401734514563070360790279187874759015688115476352778015375746809615090615601144066950497651584725203846039791758369310514313877843506662852869094301219966168154232690090211451206198938182881803139950392029827352589137105315044993215011976037516416672554704704827919013583589911798463110399233798552583005801218367224774698714324657015807058268205239926131609668253709835102181082647671061536356395534541531324520335546353180017139372779839332036020049392716814032031191449461931236208006359760727127670134953680131697511979327444800506438008967653642066033253092575134258460773228997021524851816542775826356701098639859228111387738063090870340152315176615400460963379320027184625023417708886107982526618079984028464676177499366791665846362311710934054331989712730171162890187779466371909797721211232458208118677082749168490309721516573351676565054346792508552076456048725557065227104904304821581093920378654247339000859407537133233109314301249503942907745808156201259462600442734087164036472518040491088258601205626502302449271700394801124416698247269978401347354819505643232542310491505615192459516778500741084776940042116853089494987551476738706276906073920369303203033598238548130776675437903165816878038694257326079483182836976249535941992474161552112510634844577810658338632541978550214369478183283205794616626110004581059114810772764152551856451401649374965759315505052550651125607890421819052195726832421505795555613166293369653241829233441538161391248302107287667339145041459996467819617609287182602381857381905695604482870276163772753214711234813300676154414989441138442703216257032071435450950240778656965135114172695051934377128377070485568841780399172312090134329064985746443923341886653221882713911258173302588499379444583507999503170887839291856003708244229357768884636149079588489192678065071716383690881796085297338773970647889410049852353402376986324448504179022780449172009224907371973416641306011286875192880431367518606479751520700983945847079202746963272942683343616881733087090330253985714624184387989674541592191695111328806964699005311982315320086604988350089594292127890736311316568634502337838580696916278187871225408767044081657550667582821386122514406573721715875397906665485081113020389639182931216134288648824713420595928354078703897060634054310071767456770987612366054309511029916308218300609149539383681055136001019364738935837137976742026779708869473994520664303682234383681332748992928394725110720759609833451896926982430464602507724016142267606867913637966768826642298462401161795924254063098235605985377599690419632382255256082337804954231113529059860363626444934618125538774327781667976067973477274301487666714585196171984870203434204623745285936629758192747741149962546605530683530939091683237310519905859397807931582441661785079867575681786985350738285061262617805618034242882107040739002503830625293714520079343283849955210223731641124366713916544648491081801351794431292950485938908163280919791552712503878235054378891319746587741470476769535289682027980466128394908590739632872521965532157235693807148889454211169144177145553954441541289683776288832935509603033560175330753597422459889342581766867551697976785248816941827368674290287765613644573301303335063045350159544746057315692243235845278448336825579478378088012258408295594326033191312317259610733330231570059378429158398839057166193963442744107603622328235493849908248705406553719237339052608811218741145870825008512127618193960844855904928253764089491346587465655109429920294558782015752740704510619258592934273930373161009518555899031767457021449448425919652584046224336696069897709942927673896336524637325880170537518076072130129463878213877428634493136281401885840978950912066364842137214812656857081069184230758953404172169278155225312170735411286744060870085506065304823486970941674797448741534571839587398442040129963804426649734133281486239885135928619487958540910756892278335002661441125562768394561759874466588769743399495969905836199780706908984881331232184638745365495429859954967524299001880323479014793335037350762066350134183775701374105782230063668043101845447573423654091298255383123195001841151451010165505806520068998973075090569861888888627315430987401729573531013300405343765873343481853124931619258302394169998204678883649061907606421556435719799273968435265380412146430769369930436435720467233562317118180100777929182368736160582093438140650333140405987177656022767417169507258148017587569937070674438397337783308036634728984594720674123538724296068105029119458719277802824459866669288312437222167718543872647578855745755197077226705438312877746380924187921160507444321609940741697941743578957962178938935459720377277895095848006065708228518446461783857538453507420756090668531311458240152163413618072800543120955190216361903523368745460940984547152361052375688834456453775905569679075468138364089771196431156628937379647391139659688936806848227896202183690949432801272249932387758519697862584884546018118810225561823209130205773914918165203816566915446077603323188155845917210117869962092152015915564126632074259094058557744865042585303532825672007761701423110359737428958155351435830325695087730859132169816782062841842236484762811545882343344141874838448238240991084835593854265793450810823754556438927439015718436233952559405176632455631500060662817536879038784377070346444904657935386190102565028718865152076615901731339582648179027395288967314604985399434477033946756529426065995325611559799345050962890640894957970676630057776663661915228355542720306122625879645443707265676333697780672928511900233033075714168260446744047903485025444028500541822131545922556555418134385254173339316452033925391505469276015065786183871214680847598957770641499426930974348797399292966113030537375121508521773212732922397183219675095982001455353246598892408576561477207171130221819575062808705425634786211887332997379634819903995184014188426188756980934524376827770414979044876493236613861541212145508490752866900346489061896640983734983107951108826617529215576506136713771212552939211915621113642366035896233822906145694436157726422627169560967766390709561987960870332366770534301306053490776675356679264738421297351045409425987849460298554170609218526685894194260232897216746594918346530030868292542071581877496369360466705368831849743020594851453676806407247691471594717147170330579956438692886702222635583391853528552567176751610149891806041027231208960297221035335132895898582492942317287361422793670460921161179340835884181722487033487451591734622931046175906831434848652937285456069234670858770984729023687343242675095702080856365959755374611435833412741874822432371788968000456737580988306695064387999419896488453711980438224523919442624755380178367750396857449138535143660326430936828355861796291325520454358115024735331623731585564855585179252561171494349493376480766488699662764988695683302973259837825643745606686752526906714745038659852938933995127261749100429224495117711643748469407826345434010766116956889825986881919481347755552775967239317029923910734710423510197525501112189818767350646670592248375832559809540909981734141450417741671466994619184197292805790544200769515011008429495501647048382980293789454190601146472443667544587856159863380204998190244966591283760090310666638479992324083675870289090191281322821676800392769415061145975821768805670983661056916971229764131543269742570147280123096517622857409668571159766992311125393823328323093142659961564459791722133661057885379292461711102453475769327995662405723939042023946072420912378159605583893498276420614785284417217501900179539312619597165039603214758803932761099981343934957458661927019302191916639066502778909667613530401735358000236706733499278516431109855061535764664665853838004415083188455706687864866266207668511124405698326956568498657254858273189575831229976322849742544910594259725308298165571500644043758631957913843701551156504733777550023092096259030415096642867111422164359078917274327825202770526469641447017588523273919006440932094397448601396239464045219805688288228008250948858185210518625591317161588419721778860092857434619230873789226738991863252823102815454480047559765425539937041972123360469285292660427189369507627339696828818434144108323777022063889031118078300764592645461849368895692844180999215913168828835554583036635207997862252475541047994540755278978022694418116647736087875874632983941004186008830596546191331876262979315657356424972006842246710794339760827611386440164722729244908163299995451577724733512161148572167478635650968420148012562994579822752300247506244030817023338833064097468842408678474698326310352201451205527627267209648445430816661094311120339257817478995304041244312708332469641109251669348996559457709081078788593551262027769901935470044545245012325353621809903377821532015676835487041938317134387523107002286848555584843759574594076312548307632762120423260362521552166050492077508282678459413328666994398195957382258069418376821757035974098371198578192289030898047587658173056575463925683083607284127218491397819367230033777863606879481721498900804995373110282976326389371764996096847249122384012502501847007299006434632762514244949134993342882337292796060654784212366030645586094015789380411044576248025781898435183536619584111524159617007874047833096492307327587178964248468794971495218715451452603828226639785767732082827848340629585103092499889958014916573787682624218033863813430319338139663749383127127142432204164529138875707084593799365001263548781401756004412853807771732091292076686345628693868682713524562406638585390626347119528706725719609216684029823156825780125616982724373912502514393311485831116193824263748763144997103293142032573372742439631833444275428734440185007962622310570134725241460678798557379125605351435613238652043730282975669646548642495589513131906597015911710915355863623348354312507718451064572083837289376874101964067657802998855624751639218922889816772763645596867161560804643106235051485394929362487170765662568314418719853968392895845872619662903962669488989340116629572544954946997661353104513982452665259646807518682206925542732082301794521966251270803398474153643833640182892783158116526874979714658795638602808276725456122004900940222013007417199872047494505933894244390669754622863154299832948889396189434201740705509856228253931263435872699313870277224561031881039888608933849581812787945102645018057396504315269736763931772769120772968879880971577709883611824748704239448880336171830269410212347738788165683651894916904414874893759033657232474473703785057036780431048678481502311327946698277446721629457261716717501667450532781990434242108848533232070904893206423029676604474199533414312817582720042657094011244143054637398114379636821451137914877507039260350205960251864883088674539239822648017983433334474572027474762221047723267295853696597794424121055596665861903125795703289238664959832395053366550642162147269168872664745335311218753342689398928804888726555967228243383497648493677222798391273749164268896601457652849844108121061279137176886537893371389375561591209254547111629896975154420831177827057768902870518223320275342745248091908727974483544212577233985178279129205637036235842288534177642720014172175743165592222983062298918513429811713609118079860724189468333855290697833653330217845052826115526774111522019112972512705600243633501136236275211201162373807172572041436524071515646710589239088390284934157033322321064275701461609109458181474808905557948006160846189866732389673815575710388185072546301400793434798185552815962157574399475559995280086812133009161358662644489744785449692351800917531579747044081852741038747955479969947298465787432234535860855253255642715751467170481791604291625842872951835460897396773378735873047944086826076373663445052724966825292935065486171480351480999013011565548206263510967643361736692885670859227897223220229971404723010390635237864657592411448053608050426862641042081760522871892149412085954513622392031355128488304227692201477944633171681483012136237656784878958929173350535590387325954311818956472322265428747720646904722379293197527841242803742033596113070866121872542717689801228874036765078899301820844833177380205657629888568432796213567261424959662145633684742690537499405875417949968129031645065227735192981972158080116010552531226935932524207006819262897574094949365788232227387827966118218019355426119004766848148535694561390264560055864128341311677377496266661850711942790308401263067830786874173043421310398426842120889704796712681146523402403849462645210791193514835855317350459742584360604117524161457643532773199327882023121271197603437464934408609359038403569800070929870355061266962777191639231562681265863772088935580628210385717446229851312489994433436487031578969079686882683425144695979656263445289482373937631639577024194623846998930145504827327818769705993713954461037145379024779515741774079222077587074339616068593496092988231449800397206755129388677403265481993381308620324428939432757758435277687999007136111098225449818708483063125733696962287386536695845959175731451429366812515487625208162482427166730543276425501417165836850103343985865161531186432257658909891695296998090908796898939640112588305182844091003517557541633476774651210121376929154104435030431725683560491455752684622626144283930473144444689477261420223919625932459654681996327350873171863076772782895192562948609082487282327668289367309049528316210411609748167966882741786287816594218975638255729943593671159434795151723157438533882363346737497419441144471351641284986165230478381632384804692544325591044910393691035287537434955213081555899873468316665857694167413719439516695029203013228580585618479266440190450330691305464415066414719331457592650054533316246873307144879365242489461555728592365680932166420532530814840703641338365913373257449071560776367792236783457250469159574938630422754621729596733170513802000886897307664607566458661499694477218743926305203842511584068621935054727569091569021590350479503474026117331334691093739267824494339973298026693836678283141631106498975852114776027177367882968671024876064131293568521586896848266340851788322426106276169333841613429634461692842683387179028770420785584447751931198966076282202963020826073332474652472862755397634191513534373327736529140757030477388469358934944488104300424657437641351890172395274297099826294752582761814410468221658617197335724043284937431706296981673635763960924758240541113038063494796293935068331511749835196806460131396719136574335934561421439094827393547203544277175520972819330864855487274908442471726084388728774130587166922583258907361898574831907921397304396743688632470232794093798626213997833560970709514790531739743862159509716702610820018070188396022776045499606081528381050907224442699189697121194973964084562125725837214283837754501034200204904739360472535968332737827749590199372734328532543447184079856852218729416447223654328465517454379082479967824275022471878538556689767013004234731696756812663320936863731520514328586673230852945117561576970141655102586433041047503451538014523976862951796277234647411899422293991802715894079150896174605938507071592522431861850830256434508745771158252914555612528947014989494598272673976389696326761191261015564586020237099477092550587339836510213972672983435631706701599191613737349428652547194913856671156268006627627594024421296532309253599439936403096337268856522108393292812339152300609824043665693260946797166167622263168012292803312937563385523552880145550567741278020520658713125774928034369069783123461773576808577029063154304650197132481796831911776909479168774114698475172252663468426175418454158749135218738474671783680872399971462768817998206624681662943749312109811159633742393109796750486381726658675130709619875163428805800949709341017947678910873038011835667215862294990431821046493226606006633131290808489759763059175171862728683530732752606783442290150575320693694753372729987227131548949985911885687264696040254246202996905971304539768505951763105609756729913851634696334646377877012212231578645113821650845749233342264697669144201278147054801393003653175758967187535094151355448239254072444042535124631525015215152269893138132945882334222481878976861165022778989430897484704688346350958885495075131744900011310739479280812344427754250001390422345134595332068837543360686142354253298945841066879461912210238153789100456695813969648573456819202790268073633947751115261763972994489715288140709356432627540558543324803611678552951752583656779784013837318061584694594227082032403302877379685627365564316007817623155198104598882285153592956923838426141866495890495123962968340748253886637930811161929703211020035436570857518930210358704983247135819969042181077702190021958036963030803797413982627732984951338511361329351762028423484132059101177517701137548135361040152174704975135092004432563535265154693437624907248400214406852063955028694077429198408880909839420511523791842195835338416780860332142668779727230801053993001002923166105725866253228098263240136028918627472684225561325059151729703157913658466791508400176462173840037989847619600285375450120620380923794500349435806605299107359179856866357196914479917014298393216345728203754356557330874078856862534125032973601044471764291364906072534850775059194235888418672603204608360340082491661903643153810922461929245992067833449668863625657540438267510545474652749299634358114756796095705727398988457943885246222529801556105080808194016278628446164208192605714578390428036859282455599441684940910507330815010050423802289592109438100441418718973796309293364403202962037714006465690401224894569635054458887025586806339573383396597637974156816334354624397880659234948948593180351751258133977604495133531696519243906635367427911332217306839699322327514777468592579002848202050300450019610149724403291503484813776732696195549127885714370036240069063721605824789991907062551676931616561176680273944214026830484424801034623418391704049242595982447747049256077791307719020190777328591613911394545039120301801268820030461550898141504693933076800123544717188231009493288213662275299647027999362219900147573916575333320531014271830921818830939210184255353983618022628424394211891286146640918263652863076663121030582328868535895891602318368190392800803686896066147598815682445770907705831121215399414404112865833137366507997449852528070404085103307764594845841280102591918809614557628207687245366993022731669489532100422543200464781456252331619174874167016022299231484848694883127157490706922805901573860531301911503297398597669129300497753683130135557065707702052026725795011060652962111114450113726738326070809690271192448840749099422723862900110870090271708216208438038113711467379333399388226083564643251384188296643848050219292078874911842179322036609714573695473330280895486675973023022060021531071259348314913509893640292731097023601847844681213883627701116400096104025631433896023682395939331176029522479242418322791570913879174185217327577465916877638539055387035268284351498800009745695783825909523961977539872096195497790421380614165530375861846353396383588700451210845546901063630943978188384742202354766236278805088330240266260093757547885636831835686896251270875506847165740781727330164285561634726086434908344635449495349446977981140052237528122413447731784702968391036698261016006757424509991800949229666042831759340395583691056275403284760466568671167781323159260516042464901079377489565217881491577108004030055083539116347544654267879410831420043223838134387388403860522354239072830490135151377919477603727836731883604966903546895029525763457915903014645432580637761062504085439079941587392267021393321905160339774675029850276274229981022274144767746143109891162085728288246922320311915069694985330409730688480812962743511517301242819919136701243745413838180704158840709464559302164697883333608091919542462806710097212678483419306522524455621717043588122639698037841967699961116042368770222577824500220953369097172310123401403802011165363136236363904883341963985540148662048776269894083056825860170037594277730277242490512474159902409752432227046855047729322800208205976166070781840605046373945870029214813214796290093855290115098283273392347678154098961577611735199730128929757800709937920190189302706348210790834306118357960910002827449798334890329022356123287610061256128052220352614033893325657188282881400585865851367943660335198043215870372479923654583621405945718557806862392768307723624348440584045366188270669060285798818144787481586049715614912777347280745611462364377634311382177711069378426941417822493912076833691115882864012728206764474111207186116975428507984982723070639435322960449305913260117775448303077205773207516372444538615255174192956932359911648710572709161693583343004577756628854328803623722253448313304267577076297175006109804709454145126066973599104035453175949337787141676979790202599455737520003200025024873395983925931640086545696622508831324482746816067673869650688608630553594650449768615641776564763779921314195211543722294779875352191788992980922639733158521249368140564535029431991997427695726361089288241518554563341473840672962895546454206335418467869560324048077126075438807080245381020297640440884858919768650811762569457016076409015317919506332171724444701046822888619317761544439717600430999700233890282069932961585824389581538603118445302296252765690697443673949136119677080741265974584411033655377137279066060636515366729650319838295099564094988405836837335485090512609546598949064705844991464165778279824399172358735704279831916215135507119757029183890477702565315376196422385514357698810390056290036559116004408504567058070874135778372813422314931707484140400979355141515868883667450327425848068057349593921566221613738559811777077310460493999550095165604548666098229523778984158230862742499345299953003989192999525942670327702984637135112710893558407755965433860128599863464969061429254888106835554820190352332753003810209245842635477307501335477602215983126004713053611897665903832442021413990335677204665541185920072106338276882698847661306963998396406181762600419133193634117195236146278429461850337984899166715782103126436956003010923388728687421372885861447961446383941954420197141656222436971365869885351543854536293937075951196633786823792703341826053198410720517030694682733290907501914266514362159976285370628292328640820234038926648774277439087222467471752213680878022324151339405254783792048146584886995660731053518347798417251467934587357180405588495431069346173542610883753330440723564518232909705089295209313716875667240816596005807842431835146785099094222937145364725865434033660604446012623223007015762057541202257680763292730561042599996581098560323777362952592165981903536230697761218285781443292057733445735364380305464849402285122634113854864195681886985737417276421768426999859279342654073163088294628697540971665148278615296448602134896321512063601307521881711756575209380735757769518348799559231617001833641100954046052259525430483977165301413322232023789857244560401184840435299119049257278087030786085303451581496856921921690616772521616530412399114851547582697447529803154018467377054434126268025041548672498438712007143605374167525755564237358544334621919173827788689596523713774041903779165116041712872129907099207030622575898028577083071279803696976919165366261129383063054239920650072827293627979596987575362959035705434725296522842474432807425427118166831612573903063250970248331648989850981834381598085977509006517496045749979932885520137153056356962457468701166242035076650027743580401731353441129029364169882439930156888004370991755534840173395511214296737261132705430281824554498445355427804804055239579551732783934569751652427468418401849469096701381664578741272160373134173432015169979358346328429737145573369902904691967251895811775719888734337429474441591683018083802224378192333511542437349866053120415945590516342949319131874842171622916669542050225039809580037920842004291314352194380323703006884848253393993864228020552582545817480293843326997308415889790075456339525683357305672903489393007866283317843849775817121039579363243813741533117117840079899679658652608892399679212713379317950245638104693549175936968517735518726987908108115102111032082005222801104317632049942738692550230969197838143434495885242058852198466318302437636571087271379106008600956531353027874864921959644808124151998185367582011720147522798013152816954035832964913521383342102042430814178978980445594803698428360146119011300689942368260170966704762262127394910902920517968363795696696563279503681044110991152750070856417626786877077813777717764482811845463133841567540680322079135492004622701746306165998596061464545002249389598274903174556762640504356870102360903855482270179222954063234357045595508232038241172801651802749797148611541364689596902737217585507757661931687088062180512139389560648121168290006566298779606077446237109192313290253740187016688603767744968438515689879924984255756921231754774657371911518406540821059472116784633220300559949957064868720228467350725216222698332213937875677770932747262443100974932694157269309415205637908546655329339597467303953343329305552393671779474870354682593120797769549179834757776707192784965420068337730935252199189851090224221309856786637724594268573284621075983520738705797924426561715261287834742150443606787172485131549874928758833098634606292371658007133823765680415638672922821395862985989489942573587147751784640097236054824341865148433622543585995520312002118145881666826070958044861822050393150990005880548267228068473650129218585100357825275846427413319693776469265803355167495955908738472677418293383702521649455186986513139115810568201879200366374326643238040863864384471400269087036066508274513386113896921986176882093034935701711247009393222111071473167884399973338938215589019681138036038151289833487208766953691673334417574877633124468142751929679869184246078710242555679333383619760425000428321990116441137132003222661031615277094290059983744157653245402669468347722398883713535146267252223938100316389533282682295821303738530074055795418916214316800016659010062907714919796986135052894522847211176010898591520523616390158800490653685136469896308373327171509220979524376195916380891476621794078961305089363279530199591027433060247039129272222196440643952858870768910554970244248866961418472603587248006066661568666633087321197758634322615893943065266508461659271685715957660395916127238713396649184114725971517729090113081935076291010136624186126028186382028488033917309184595415978486655980585107087910118037615307720916704925617477119407882498917242987758235697020257235306577055487126657175413254244094901037751138524862767234006289442540948968509994165134940280715472932389811882382092056362995417722008811292264438111344234453623845428161084123514209989885784995890395847556878032879342089296977201377923516556481576611130405538277315921035393058288199607560583472530620600426825570269139676638627813405412802626702571573260963890597757850513505125494359536841083578984860095551250852882487899903093298780984574977346168773002598847952099804424988906331142122701074463815959238548473569564360602672976378813265907259539821094822622752807833951172070025745910828723789606683550072925482130962088931907667730015622642429160907033229927626050018201254895770330905634777420682319639147050313822149052011313633603921673223523968333743781357984247335387047805134732886607847973196259493623127956102549518028261525324130846815739972048003677469432488305744668859923236734057926433556886101141223801706599509056303889335270616050196073566121888614091177700932435718611940864258556371072108902879781185773355823129774610537594023730100213677255385664292822126626389574215840883892270355479750600088704415253279892576809460512715483361304697037608253292486248658221860188912108813420746198010430397416192633357866478035056197056437317964873841244293379211774831934094996234380905926005467572731698388228596420628874420565661851912992658491844692312656719974831698518582115918391374565593328483494226906611336944620117382999254683765691172557416007434541121745874315200952954750868991823399885834193465640955916513782405245213304254799692219176821353348966072991423535455409897934780042105727035134158914214983700109029955366206673209101424311533244129082785753376996875569945350950871880997096099267641333962410861255454529475296658713680181652416176328285895590793763236979415945267583516874193150135300464374891589179086868661649768051165967425878200606076647396388571439106957140769305646882861782196137807169439735938567706247575568807442649009151781512465314465896552624533371831842845729630802529737361003442989948124885888147707744865418168378810269111517585661330348978509025233218293623612616199400157519154919496917578515632060565645593602775814068548155969461744832338074638765725298756796787413748995747371890370549705133651249620807134904449364993246503976234782180163825076957618681411278164882893431204712967368951167867921300551178960698758133934981272084643403270291319519405017645466389149055147684764759629737455817082239692714345811494135459239830434600228619490149701225654839301617429748094842160505441419998753900445294553177487412359997165872874569304457521463981707670918836060185234320456712255557200302613548345486762384217379848800902165672058950540675735103688000875804273116424404106286222030719018629295683908678300753458128363350880214511329803929559389578383155646127395051312357839756557177573682192939316191576943204917494165461426722631599888772248219760917801578583379380133010145228121571779345663410631055357707836447892473390062050081267895264739216533596391194402489489871079486433253077263317688178381944331665065627066562305513305318108330232624672365939812343709479450289221042285763898980040192979135811360691877360840395844641601812003245364041277092455298229244341197155123172378386706591322673431178636247730967553209744564367961939821933103438035660150677512148102300263338982536002542609787267677209544848095219163839912671556723446574702469252193683233499679220226366328491457390140370996993870612549311662692867551514493934915530139419447493250448450932269239308053836636289679980407162567798335584011963345028431676445387910041502972355542270240170020294017382987475075062058250041491837239461727898843566477664343004153404477895907548912606519475255206147735087322996837503192542591347326583282667401252334220927299725429594189077037981003014562581792130146303120436943475648031762079423283465788164534688946692793961385169660977264571759857220092066038636219092685893185745390000996431935392037958400875735294945525713144558121134541122860185760997764812353229329436602851082443408776661253720603474641551292213193330267499991845548646665681766169295414760889175278747099999052720793202241797532272404502064281552603194698122081009456694859010180286665558859088594812598065080338491759595686654147730550753898803493851764454322958541650366289531069744567799226449823688120223647840090483578167296756290897279137739710471166265940535350605926282261374806339266420077646916361545823012017224577769372504467541277899835458458272461431009341950097092816633258798541497045293458781408479982961913517583715213173300969566932901868621101093694370680116943173225163260722663512924763986430449446091977137334584338654342980356520291367571082134542735529912686287964123664138350483988935670373083234502379189891964489851282077390519670497116989973897906145134619460508443346281345184622931088498145377610093153205378153451495846832787702883289176659838225867814300786150116256517314751223733261847182016880850583411998696168078391393470207057861484859524743124629660644393922568935966246483162145401773265178591280184745353203291347475149657159665651470256852559141193163129694300044125229080447245406988712379292695320459998520533342956829733841120536750148130646694974565034076936597520786340816009140854798619729557779437300471574329126924906313370261486483088996123314485511603027143381213437251921253185062604876694190629617299081378044880169471072128941187537191891727982207011816118789677748064600329426138158695709755788169944255207262678834221261690409606445734002469841033638552238211541360760796118632147663620318108912795728842036828537694121632621754891844377831111885038417386445284185183455620235832024418359368912617500959813401366265332926728393111688706357997948420886780521271595828803497495961765170120840596331744573523303695678894163352280875307998096076186259088761875866039190403590841710473227358425349361910579966657058753244738875578717502375147420061487555499318608627906624659952498665751728704045910153331208196152729883876855148941412195380391025919891491980730135503999371259392693381473659178938445419214679011467172551231432961349698972592928705643237932019082757261992049252290918781491777893978747930728336439817129664788898634790118026795639759426955924750092107912167224258640436255649528287860862208536182355901487628184685742798357509625580973764566135960667074334312126121372916468545296871600324428920941627316002288969088773390470143940590024336621583502005870152012960043511761024120338769082609591759205106344507087460816078252750869520152845655951572930752197070986085636741501984001411381791595004047940168642667882566068166089933133133024929517135377351804996418163751342653226602289044944449986410063606813904911708851189056390122239075278068272401764161645530832153612218530521279013159912850560453078257629526147467258162352032725843742023552048118583302411775091594331831828974213281681989139013380429187025855900657942563185019182916671070102500733662030516053033803229901000898040457521613620884754342678861914849748372746336705849404270267681807976893817416295268631175056189783433010211281401507115374308297949754704558803787281597122107497650002630641561199541083743169816362695914829873695630943663820189950054519034245458137415739789014936290984099426633250415288300502806411907059662761467647613900213531116069174160764867234997701766945166480710847338378730466994125980535727347698304702007199011815483768154955432928998399554167323067595607293464529609164104306959975165765548023451502666211594067790284987804221958816741981442392898156268593304689528418260158844319422627814581772542160219484458573098853527112487090374630506229693952534443207693917847231375291301922442889974883424231487032957804210812742115592004454322302432491808410886954903500950958601318686636087930763111765963862101708560743874686232480836307738767393487647227332845774539356773983074727280911311421148070887435651287158858895063341236147594749002575168169746824385833365163409364384495517468217998009449528246998357668980317504398447537822751910328360935005125513940325157891367913406721812519367504410109007542082340190383646366470330684348118131185411912032373781027513865244893121224966108341455246290279581369565485336027294592130962380357835377288376044744569947113916027708013587635829831370788206621338384941628674906474218182170780633070964944346619165601755323155476296391869018397904131923332265687837404237260844789065650182862048088566147081681353835453864855837944104979778371647073366328172323233892421861916914518900588416013845092662025573252086260482670584649021347312427984842775878718698065146685594715489613922842004529731096524498037640511747674172096052123221181161128838070039591028809191100260377411419582024668652488717901920256607929818533892591024293393533639016453377585861712792409472253058485248106626872942896811866088785958542420799665878525778617769265386660751912043959501142236919724532807153106460328993159592414209787027018698754895185385383762971921615109722240984247696249676784530588776935340634400756493878722692212299988062422404968815884848050058625772826090629224050697637702647700562785978468811808739882910533421702938253958822082463578604812771232559563014714027072364720687292249380098422716037141053829785218832389729171318036036066899007940371150180592858450148018731223352325578615548429220212298391131224119140326391548550431877492009536911251958158591650400543139989241830714915333131953962155146114792095156664252889519789379513205842685055240877782298471872097212188259113901784321052273281881276488817641586644893441888531082134268180313993311302288725035700597173582846436948848820228376884593704767464082436761374193100531076923592093334488384261989275888460167554938363481927884203354502771400595815442675041429057154855449166750706640465680721103461610208599761585222480867793724178295060409403632475100759128863917866194297119918901252470628894765145986777460833077294362988065133682812678494360204921867514678722077177166341920900185287592753867252074916055160855467877109333667383668556338244559929461227804789913933108493029879385271670545349077937663641484248701523556384470070072170629235352591898708916006174146994814771327284401890783813158021382834110750136643889303581700246059000644595302080893267477587102048560903283688907475278674045944310400561397580176585541674878878994083811023018680713816249870831142660749510632183344375422914345307160167775906335815092199832897181474365773536645581685065276533594933597318978383848604094748475858450251077324164130887500733695105013347654466870812569007563060191644086691015081364178867079624786880795744496189350918560174849078705007312348100654877735918601025687624789959692907992546348427457609399279509876853076613736524098398465380722108044865007754821893156564036784846453770739875697607750120499590973988524831924722788505437631157596804748344676880831191702555432057812471520526257415150907005437459579355963370220216184936736948956401582004879869866289283384946741453010083969317376922711432172542944748002969793463223080106753264745321456040525818334973351012013152905836198685411689851174990100204834189635296022748096190641901323887334505246002875979603373280425517683682270123935770718724937777552126841357889364560207718951115533990002020643214707686566613813527547963553118036644830982288663630530189071733251776440129148263589269558550902912967616465728322666217352064780627741289744795219916359511540916014993561984842917565584470846790213526829942784762013530569412763435747012010378518059070319611829557477790300191155292564077056012570974774697367340617411785450521865075344988514760308998804313954248109183355320958355205802132324998192305061709920559326941041458577757656376292942873151153952833196806051537988844532749075366027989419008477336411461956469753626938046224735168571413914046061910363845679847534511325610083225801314572776916861377683979483507773781496344948639977057356235222965198889951673546753268836641813271786178590807531184505181669450085315969273459846214735022320504665320595974347737735185517529672381234458902416789847558790742946889125748529581990099418293737915019922650698332447381039400521978644118596300666523360243536938803986797871682841728886090538619743423675064841931304188748319975928603034917675551701611668955403263575546687045887106115165912567418073764969227553573337392778091373359748433840210915309216649835805691840728139222087456785931798462574585848294403928707406037194001312917415753648246792879991673459598354299139700921900965235257483631720884674214057498577531383999069250230833464592768948813082495275660808050541929539269141291963916764559428733591362202739290788419282799098220785001621194572451417745900297897318788641067065810498515939461121044678934148384286941152231959847953720694125651644364517620754356444611597078584312798252022214590092905809357052599747919410154279760285607755354488866602217581991430351605967085285308242939521918361865253111044421890652834067355642623594006551820921962165701738697202590060153638216805295717699179751457398734595960441379782727810430193778459012962152259338746350428828737077746703411747111317716227904060613282172492504117917620563343431210567143481133566031281281545473117805531413910481984399843026461235101500300493884107407399956278656759694487190474377992018929996038325867058494945791919357826319597954094422372866940851170656091931026013856379190593039654166255088669998466313008914244765766505279229302121039104096369352825025998078634319312904575787060917383925248050457665551168494963865202759651592498940360108397118499742550625687010148818158602297325573300779645842074531333649104908691954226527568010084524840384897773174023375122884915658691462362144228318853050629538721224208336980307818739742108709462754974965189302062413423624208391093565365338376240803798591366024546309120930752423733453411953301776580058271786608487935311263888228582069781601604978041534100202389876067362200076552979385712954816730836214549006109892614614404635382507379666497902355596207416410772477398001739046212683393088488070135540204959762995912691059552945152209440424763463676325978431453976687599498129543527628800747562175619474558819210449497602270737978270464615858220637618837056664016588533544671029904530249421082189224031049930025132576551742486136495920836067707075249007572447717055202353849865173435941988265281932583221568198138380224560877287386533620553639709871843514440032161196997586786702761962486522675647833111095998168511367637051098356230256817526201526890422046215393594097541866932341861817920246629549940754523628273265663595776771243503098774561038829981760178307929942494546361512632172597513399351878778185653439523908340429039998005678980019391090463365435851506091278087265045944068574009396862517159520059387929932816665353536650017480010368840476997111690480920185958907958592216672993059239460151416731942121658293945147138296294740051073278999596897093270456661759563075291427391367901301412819191727811277602517773354545983377948236979251423366021851138843289743594970616487977862983982211370967175309940698375106429663619165168250287909231863735042401124109400659298583342693752330415781650137867948924068893675379431407938094551272683307001194012284353139004911316816417071066644309053772058923710086974663022547019684417190247019152716652630755009862991163798587897353381455315094159421173737578863428009189838876273403924628379486372637470909949197939590577270897653667129148688899489052007667088813229506636827369881893758651697988693317465221974937336988877102842038753762651116627433495856127468118009052234614995498000832427212002095852610100389729541817710289597637364511999003626926108542016761818074781245086941457776266255134539999418349672950604700492020149315899555123441369757852002057794280327925157962559099549901047661843995070468466410143499112398608724140974110939776323549983879056475738128026920091479835120626355030999560437673841439458526940248654818938239219958353682932396973836944134562058609589765786875880196801248277715170411912740118887670304868410176818167411979942914223651167714831889404439281515089709605937775740479939422811093284617652770346048455725807874506379785180209601405797478000538590277599974603283321087273822068361852472022208805845945631301065852460681916813669690991161006953964431550890614214763088774270451690940796150741203127519616618870208330726465316548333885221917420349628825667004619812150109540000088378049472792009913508763560590641914739868473918818280429794344681298328959435050187631197954471514438534503529842879052599760128053452343197771978184944314404237204679741245002954260325420510655333356612948540304464171842391240434284440225351134465801785419935085372826114139977450344380605912595412335469093487584378414431876006770346597017637700011882258422296303846338530744971916757545686271863677141337372838955674983330222864605335778011033525645727857864981499822716006294371370300501566602384134075992152460167408385172198776862649618679032006809176969206812170521547388464004409384663586354080360127649946719622694045597297306048023143746565213986973688468091045779421674300583955941427798454581149375067470926204364834721815238186371277467762377959010749218415169736024373516816486086025006990429411054473971310975217254514329279920926848823257047518201678734841261905532745778320965159840646050337195762195680679555656004381589858714770973431841381581506962608871369361344338934445888428740859663836514956737856858747403413169110248576522827207358492051444119267738818801813556059589011461988188308638145472252987540774324313173937677209046458255435535114538872093881266097560773776619165727924923189876066574028072261035832374109188991979144202558538253350582831051356666056456082262446734214513358047077577800431197454554727440991218853220844364546570795745772795403012603912894270981144387138713987406080135156987177617704548867306238183330545160060070852642306148250729222487655074862434098388408584166744944905849696336114316074768166529128359219261048838971350701072448931687494191984074297297388758482773905027295853579118512098675223673134414735025388372482128672383690855426862877419832378513784455037860365694344967399341472120457318162561288814661520379477489595884175760536472918397407034076481523809159749716093814428310279784232655951243499902389639832269265163555785804987332080143263883615588957699501257490759734795901204975749827455452339754530428702362745061142189419650656786749695123531924981579961907178865714256825381319944724825943353295049570173922736371028731011107272137544664663091800341610809332223882294748875126585659109205224205967949649817908202898503445858837625604433934090857785109462042224402647268811805182265467378496201016235789737540829050877428777606105940454725699654595068607203226515857580843051124367700235130799760793179330540652624954998202749328613072402786704235297017519021716675186776916814487340745113504220285506715807880543046358534302110370408747234523063243456186299907147402183429742525615673798236011436570262382577523224001617382268832097773668673261063549163260260149168973119270040490227695011963802277260502328097042855092733030987444006741590329895362954794436985540138664783256073652011540337305671580109162581648816859676139483798465849105369986412702548212386792555642307915430318186510829260619750802572813805544887811302849930445605448859138660347180377029690169113649346749677371293838906583914505517180715705607924130989124628698192984522546080651133527296175427211419863832779146537194043204759390090679342144701717176314905213176274656084788015476022856159995272374416893573131242319894356405627839156498277753837901225031245719484185816029006673962825898618982574430541828784477411814983175446062671511375709765553083611970090962455575763406978660757810692791511411407075079951472510754969796490157128223730913561724048271380885640225616425374366164994850219922026803107960555336653615344868594609632588980610811668436608100972491422813096601444685175270148294065995054869661478943109148324469708525492288330142071671015654333155455241389641518268127372132485458791648791884282205676912551251721074544619586775082723950559611060402184966660389555129875744899911073804541775410731446458949669621931155518013261197592484434243232473542628516005856272254480204408207161329717504603809327380626741179039275920023255579425786378073936664093882435940480227525980331033729275141069390759119343398143758187310678179398185359958314378024119982932826591634647579562403739785618185390451837527243097260125496151613965988941296851941438709426800491182125842956081146793850291781585756927883342658429065646747673485043174842539110969407108524374605407852760771284970092219444039492051947851607757912818440177936864241710561106488386390021183850014375018295927655123676336793608160820567229917599738219229680519443050511457717774256045538985380123715068184091449238473228512768885467781202860736812630298490149709242009290985471706732682107501622700868437380139533463771321108727253421136713206549208274598151529414252281867001355433184602414154070515641312683758249237582456194195481937020152266769770716711901379103098213145234628966213273415910688090277033807764493881021589114407769752607073861783328368577652901373992935864497374090801207150985539025586044214448155504969585750729060883196025667737461617694618286642912251014887281021314913197467552594685977808972910173063324643187540444009918566833115631427520168292675382888758138308786445640746949446981219094883822829868925200239216502087919777787175781223840074639923836099635109524131180561386131716280185936471414208150887981114377902887585443877539271746328904216002861206513653373038822380638665040040623414087627142334328149066307186016550129158044133428050465547647754940147189395939387189505705300506586561253113247699013915273032613913700642221160277977415082773321262060736277727762551872870941816887706120967842708174346090535060388531126053427530441930754106143806900475985390843964939018031253797398527738791597040821964644998906178285668168240639426487943369109067695879100675463327617085558919883833410364820547565209141736950122526487466989563283868634070126370537600891356166599736263345162661111657857796471306400171561476912210660729507141726336053142836323095869331905222153772821130262858832768067323750938754847199196770279941379439615799746802175807819815261463873095304674515078531462684483663304471007488931194894308170989681767548920324381499399460748540726507091481454706509341509218056894439578044967466600225790233486320065457212520182373320197428441064564307503194816081211145922491590635293266138302151792416561188600526982100732540160538752512761297739428247340465592377392568688775125821490247811586234879107791287141542444367847893193703923332835290992613195974688831372380682524667488262552354193643361453959436775934903188543216207454649957529947076628358502175707459911667292989366611048361876546508964170250215014327431310704779828301358770609890083221043462195299880654767621686034413143218808357128893182861835720193998087349683231509461103260090470781691483425494037677651112719884177332970854460797743322745919529113433272113114843167122681067750480462746684241584548480897387383632281505925985737796132952145393724755065272751726886025638813449740791791713066120027523496449519067889606322290869995385199395290316338569405124513918112687674647361644575886026298742168372998037147184597727463819798762688661878069406733176943451275196959037240776747516895105742018949385748112530719088669630409469358547854646443003300917105584040641330328662714465921655745134316965445981026926316429651341404313329613147446835403940901013314996373018618988119808873405442608778720464285737573966474771610179600192872590191187682277332478145561745352467665035941723971298534186447793896799170677625803530036634607416880308617663065243832856551774699412719581139313231008457775428412213273557279502033222866432313770689431484457053831582181481078598878630661681844525811889094019390987053337012293615447403398131270272349560198255176308731947677208366289236818381920938531655240711115202188078625390288365369164609593430403668462620867277585303799013120532187780906957212774325050870317560251181541698840733185057181534993101987450696163574220427632831315519519916073618443079358181327009781785395606679385494987473054283975134789730898547762402440576514286975654113464518010697559405992449727724458735023582244276932720856902947917287332961239294694296285424870917272410574047964151566199272531871641850691193606805800458719958681531296223182756613123942411987755510419465971998818874689270906369950430318044749290403648669165802481416351799466476127584220232141175989745287612734696935631049013991500535589225901507227520369016019986925878379286281835490987475781037251299563292326337289424206763257764300487342741288531851100800585655007381662856566546750591866521783661274864486245365281880622670753091681485144879252789283279899368117845693515885292438692759907105780087902986549429841853735320106365111283521515887580648145515234689113952366554787981851843216671033548713542589997383541424189093950940340011123880661142504000751862749587428272011934257598087420010872209040264456056647641931598335072572908357436740290392590343059817982673473892368514332458207534511430399358093263038214798330621599498202748899210016816617119279385209970450214268068600215450807314699618173807396990376523859069298002503503217385469193403594082595716756156451000148936235947452898158833328730368861266148543783071824920551063675919377782083186965147804273786178027972697033136802233678181788640326290855829588761346124480948326330723778007833107983046038226617652447015351637018458110264900019010447178836983890432228193545346284474541120305741878377410331412399201967676766202471547244110680512452139465322202317146177403700427905473791345472887402358264391668267021557100350059355096073606065289041403805113324041606440157804400287999917351802363840012436864038652422276164110352344086475035650557140952429827093658528982765368500341895631507796636016932051375497319629456012199186308552188092264627358548836690573479798933496934579378446182931117118206394337877072486954294517841926338600052863845034942893938873703941999383918238117113261869890512283300708853932454176039185094481171251616228356661204545265787357438604216172375952713981344157799250922313214754379178760844034388210957216060025439186273536004024406237319599611092764559859136091398661915676305469881037673095868583871019897123644396412825269663622100323209181766389116463580578833065708574851665359661133449744392480392480240212200378153695921389706309316554088058758693447410509708895794126128803196695531632832572299942967886857693687989337310705288041811748665142731532667534802124491765568490711282795255841352898284512244575267451562047666719172686778321827082900822434083820445354917736989804865016850054660151037793585799513389393249468331535735774466334635166366922461292689120757741758053907460500207388610161953913549183805482333402330100102425641623572131428800326461832969421545229217597410294352054028445590032516644657872028762605082505873215057248172094710817820720117802358594637836599832281891538007621825042629360386933958437510399501422978002335932674153015470135152744528882346909184234052353424646658403993196122333425532214102659133458584573491255563556362192224417206708345498478021674764106360969898196707787435325378641007130249395793560046240148654670446018381467846320519196124155386373222589859317166611265182567977272395966860382167803130724354681388052591134254805489083274944776904828116267289267517120002927647569053651793422616106650970604315572754652510110942139052700080779487735178475656187854040101795599944442518259779407617373276540745920687799827401663794164102390852082471414605697402274142728884947590957843007528282837838817416985323059920323523344758184708375137881813263165669769926998373680754874558308222755458848950209928993131174829436854293906284675090566909286803264038048792194316964765889470591927433974565215540364311364582942847847591210602089428565369045865299890329010809192240322590606401233889407649098726247732811975812465952223875985612323117813825316757354867730370124925058741206543312657177530998365218500050272801573761472316903153656753701494158237309710886166948820996825564799006455256728789667111336323489562522560924275597494638438800934935499313501702439586342423678863114349845176201453220021347654644677413154202287023692609815724882280394234645430052736630585219772328427793728842241251006622143485001509331755923864069875356839559382120460833396390100960237662617056469371557249864388550802751821985286871816476556377786133796369572308210848033571367250181917747736340889276792665127380351644241489629081911497376450736119102698212841027121891338271282941036464466384035753756613935646639895818878356891968402166038443646408388457252880241863642642838705371586766924853796012933845133538715496935086574466922735595297967215931765911347308889201754845618089853512665873239297417430492558001148874589223864473375470991603659377119793585517709731515696876678766555049926723346135640551562333541555595735515548105617096880903298136756205380510085454857468220008699642586975453253097569109766955726208440341740942021269175325430406024118405309637499587352550318192533872660583466893500331695032911682426260271185939930884643796317711036784770841436280086036894089229157019605760984902722891871255524211128039996714178847397968992495568313166289941885301109740907881550749948848954588740032680812544954805943720497041819559724489676053163070357342098591140122409237940981250734246205041356252938454500190264475498765426548624275958305265247554456430687522682387313416347465985990799870463636293857001353091386806434003573360433017771301994705971853606351082635384643075875085634167322854165885663942543800954028102882260555585633812795066777082557118181834030527399466819401388035052945536031510839117274704691675585742788888033642501116962674561017416452901437786628420209858299751154048480897248082233574891772208924669512052147888683458481427665475146576859607592382698467816367967552768993170151652618025295084793450654051988472068037566271910487532593702265686631313124384590509661948989877889818617716337790193807928280974792961215778644055334769398177316170356375148459958149607805437357991554989693267381570441734988639475111788896429146971656163031752675084664464725004183840889591441726953822164648562587337557987243773911624630954698662890856949203765099643546360388021372515524701285653239781272537471598945780475817757643951654036065354557002706114165606944765729673632908846569458362179184900563526855304111985124511042046778140718186195334838188489395377293278554177769132150353047720707468534919955194447516038337610538712465169695952927927501588133820620742344827269677810324050889047492100454866714182328026818597739476049301054376944460805859741606508450456022723665992971228199251843504552925618848233441388036008673400947019058140462784968522046700066010250429058441887315912294326799463186042474190086055585358016545144658229909672713726451509909479712106733448086518731423196818078595881877277720117340244307310537129079220742240102657541054038319605516238335877846687303911994845299137248167943468587415286639120498371946350874187909404114762085348724172925976555322919778851823861819035464217754094179651103987635663467279763762148090621418622765075312415486210485137938531438070861579341347618600233117024262172778347619745026555436226657824781482020024099077598382577708955117339838146020672706088963338412084621205410842449725628038638033788421752887264363750523925741139130988376601382331329580321042081325550355550665093503743695656170586141252166012485634666947195232352079899105872709707866440775532310989449709162543652474221119185432282010315094644636945275733767668665355367266598047318363207390228292430233170430938795342551504527477741711942448256114169319969834031757999665853976207629836758380695273240486597059058150688378615689135244207668990655585464319655906727735184085320295397843174778805594390655602773924961585093201119045990949474485547450044602589300558431070611179626099897220019943651162073814910096199645641877330113592138141546882804444000969857510874360996079950481639126861084408738782746645336242195921444293772475446344003753354682992766686949756926251016145028039547213842940128717320697021163508854207671455481099396139173272855420145248313505100078972162978305746299715875154935424630464182583864370136191010034490022370465547914662918477014750550309114639902154046196153353310113797485681976514233646665733308263567070314728718385081885647691867886223624982805528044794879125747613694077815101168563361621018066024371287970809444729842898997495005751491184638067367933612603402091840357754839965825164364047121406531737857509880307589571642025002274284261148680849491126430503945382760955949257155553716955196339225176785594870078821952636314900368827079062262148239604519974363971706875271063888185045687007464816103000167455079996995261366430427601163543805481966878275146668084874642276379852198782774333316262326692159365714533932009932386437480963470435499798308998096804912276083528881339433526095132978926163686215858213203906313593674969244264106320920305663013581269336450646590034496438054692104774327418107839763882629915771284984810893477512734215541916507228235101419125973334723040634611037161554724730074304984440302821790031393309315023578075808231418755904827385368214932414107998869625348581621760476857940518671674095442249240654690149985499814729093739096274374998961461245576677448748729720437076259720318441448212303929642663341523007235966634266098381203755835621445785324331023762355438621002794815699044638573211935121463177056552513826601555474704970012907381333902545919892074759025033322910916022900999391311812657263696342985587286896509786787468855109408776716427466779261820719019608324869147502002558497343213006464624282382184686027874992486723538750853589430424217519017853062212646127613800666367936200719756936511836722269321071276238671670442925722793889548055062843608341720353927650060251089842284148103573845852493080236073221529340102728208708245647436569742685726705646784777375868609893373448656367986563769870181409973595282854328970100137289198145053344808806263356024189731817232977832111453892122673015971218991221415704125975478900737613932221672211607569754392657073515073899040298122227164740304413211627722818110211486550865745225165264176615220679156494530849993318593181367695458010036045125694211508526260483163920322086570030130291042372363733880721594041138616070500191705869024361813360220444211776115879798186669549229131248271244034003902382066040023716880322307166603204918589631150543742902735793260201171745031118652209497500383313918589537295025610911912206307278020134162599668024376660154881331991610678701762929709874167482776207330596001570023308175822609508844121547965294634896670826837962367864242325826134168466203079089050284981721250669022461729744638566792897998849649681028471757701497781362909432227697786035139712806757288600328654866760237427769278758755645909461164762155886328431132993193070289317758066629173582105298756874360078967639342074998102230142378052565974905139921102905977041353631740680158417367568320065768914749770298790780353196455439427442505141818816691894162359743833466095208188335859868853816879524109478312459256613071017136662661841011965962068350459988162391739486293484988295307101668267480461258047177146271567591997845795938417821592827455226141482590992031812091707496997591478158222567685707746999807900412874272992586831899524808845303402001032834741805794235546832475175241542860997389967619609743078050509549693700278828074462509270095951834572648927032686981979997926228920189928144577760067534991061106074639931110877504442877112947207607887642393215983364067155992817841180912173335231143221207378413965371073080270258205838449762444383153602157314503770214078673368260817329530492832523905683959379637309363767035304230478976345183826165449085047980769133925675228024192096576795332039053686388005749183470827726291102051855585070387253617654876880676853683570796059194092177230388234660511066824998760201207190307090815339621358060788694502090532689295777211993832497859647458458614350519618116726690118488044404206289388596114523423888450079181004621424199277965562333718895100560682339424714311707376958281458288843610366229525021322696645563416179936562504410337533147933006717115173429212490017137430255865133333795530087915389743152194691761512414132178140393126688779535412337704923511553142132909487718159292068249033955465095198446803862483893682195238160265362147492822171911312095176956131652082362419499744810768390899641065193825070800706325538991523245411293227247855086964359075557570866565499230971714938432549216893162224447547624453702966988014607669637314714056865801651112123959625582553757219532767838056517665010118728999047154263080166213890555439046486204253235905026484601554768051778725330944038689896177330732265900615868801256884920269259113408003742733751846313217403613078083206652692745476113158429083884445982363431363034125305310013513648157155421982700425919205399507843440176627762245716751349402233930276032638314879480386583240242672771891837332039902158865739574090987491405912088471327325007316272949180203514499292252131953810314329944662579824355919671509731447769855169087045629700651001583826100174610268534113155313136264992037184687498520974557892660894688708446676127458939346247689854963834067829968252151921290413963728244668910876087061931777048987973857817087144842694427318719804008278290312060932128041155428425794612411681249066996698247824400049710136964345882702669240344742614000473567948333304075223055997633928655788329776936640012292113514796718686134668865231739792229124624266829920447067813999265228865477990040850138463128810981955295698860974901802745576453626304945754118098212526640913853811857939991835358130588143909819622634045227297397553123885202189078404827041826317228331036131691093669979982099868625205732093302827264943686779736511965012420301254921444828099782755709716849289779639204401314043951044493961495667388141848894450691268315427730494448631380680001985780648292286308773486151590964377577561610997473027446349846829448123610342573535129839784354472163590919580082379475304844807344047457746427759169522973189793820593308919742979057410822301875668660080892214289481455124623968325260069938697259695112872420829244876780750831485074454513487684946112408937386332679350539756185940620665703654909164120285110831271862495646443776389645583602618546646445032626028304538342411072270342121689560778046484118801855151755794195296121685078506711478816291674088515811399635222971403568863475064311775303950367936254754849473456448566392719447054246059240313492797700276041177719245220786487749740406444039211245881626964502852181922210082709263760073390585353365208970231621115362992670670960640278460842567885041272405004731348473577486433197217661649074886991568235525513661256584100034585069195059919722239680642714488813451207925971072865994942296666069841963635039386005836884503141504782471099334460397248055835657194478858804836641117081252127601676657956882912439406459906019295429526922489949034635705209572661782410447287306294448755274947925775633663601421086330606527816562860557729063632468159587962135068806932528255570284950074397053824580416159351798379471698927237298285059198158996393489122934953444563819917506270586103175428623836011550692937686501102781154122084034718925563756985719937979550014052804093895822429843474697263868776783067445441083126721137319116254413106801229456953661364881012410920429798396867465552422384768775850754211000596266277032379136293387007940061081033052464890301261530123037348679493927872176486330737880169389528175395708458590230964284140068412919983597506199282363970386117764827200730210565001577038313736169271778640393594537586064735733217424710557027961938516773541359095842532360265095434770090566833154727585918694220192676631070530749970495342789923910765556359189838845301153844802920605577057927269170503198178015771221702195371145853562268687957947925966898349749936030346610289046921122806158650731781749298531966031213187298958664968760043431390570207374343490625286004020578982365945597350912248360767816795630314639155799037374447665587035689310415632764871745811645314071717549136051196646986990591054141837935307378958996213957267076369805651019331206673784362725221377618575799752775502779985634920058492853957303378806898743978350826877919655049682375939214579891853989776880124247727754618403042002711487907421711532249133209037046252901737360949506858671877344445892362381659977185386767101856454445136669913535571871564365104011138680210944433870949124470627795251935543347141747018985738663167190150531646257495645638711450005290528467052478944045107749319222512419379600338134341333816735769263153018345839567738642121158856798950062981541219082611344081371961713545157335612366005539041095134116950374040536332946386573267608500012330515864707545101057274599066480395593668317275553431979042443977854715285906570041944032608508976197963111080894214705840926137371038270397338922934960266168130965661999688118094815389243691613955595731920201253853596040311333252752867140857014816175662988697544454068350899981104364916359616139655222692746744811196342386441904227136107935125389061933387935073995771829164995556379791513656256025555200584352696272090787904674544671610225485902851440046782606695364765161063365405906412586141619586019710223200597841614386677817778143778504370467455247648840887985372563622632542291929959247465824986505490632477089094590963814897782436053609845068450523448366827395976970598859332087329180207159256300870290447639240436460597300565786737976369063769081625531084586267871911728534837253031371507218430084505551317678470486062671481383011658551726132431653430729333337577116214407420283289874354244376397266504600871604074831717665628039579700663535002757441051116988110254311008931942117349201028898475544499253763994114337646644177798249498655490208553002123317795407610096999402030959264468025997914716233788094458833951971305890199806820416773763854277428987189077485780949399314416339884912600139960437222358901576967320423217465604190645125193009314621276505297666370510353340471227574367968307024820797289096975655914294287248124400160256289837240505503046602361800210683289597070261824833098118399428109597660583188870390968291485648771194828752849575877483421063210279752899853350071827311225108271918198933040404612394460910648789929875300625019806804864718822600756592668931648568053160112337319454176824698630698240595969656275835985590817091811169239830655404078275483602258340805916559812787086472881558261130957841779806090771149653864188640923564379095425329794169368768956991102202227377537573382961433515063188367025310347744491110393109208600500692074132928315463232380136015731298251670773340113664827324853624767831915991885096091036614520493122515377182937656842735799629454920829574796975383450448059062725860621435711247277231962092983599687383700059268424922174699164044088455926864099539207332926475407904560901752898736465889261172785266871837217609674060790366288513287471633149816573778765439434412191425907831106492735972630632436501626212337932479864672392465401753543225214273459095260451608433762942239203932720554027168522429994119837484573707188393695127684622795746296516879043868058516603921663710113616757675003350182947221550907644581900142981038330790844772750015198412949758922748272402223609522615974936569134395534911469337886491520684094944902154509596669791335349825038436885821932653678339489704655588554088519105568039417262148239199132628978857216465629155942019301693837433621199090903724723263240737109137455386536518340982222138241946207070335214452589084795716058583268600119342884697949660542789153469207919916850603118029658434685363346444681756742322242188266166118568620101010416430906948322009109366227821234080677417052164651100861828496938227731002863029222294044186752014213707246698577145665096424329431844661736718785379556031658292234584195451619170227677200971099262983423827632317272456695983416616891182904507837876838908750919645005040825710588835674029989963517064874145628115210081893254755729025077500131597525984803792086755071359534086902103147356360689937092449781723884875087619643978186579737775118980324475479423896156350167942624849154041502424134910065050969530816714794189845745086184884599389876284530824963736915298201033916177753216792636317921420898996345631963141949741386101744949111209827241869926561546599900356232384795119001166057804389327728517422993691377134643521052615949033541746725790697236270917414404345124594239027106233986088969098427374741252140567915451097148922332759275501510217409242675414342379081236501799323374372457661202607836593073433818870012309225652758494914084608863538260491621523349452841686412237694554761172130116238968020970329429933940639545893496324677968830638514510784655179282570828913643064289981323722870799576404952031270943812137208412435528703903283968088677261933358855693826904669720685618875823356320525519186917681009162321945022998992638552949919214286093064489754664200813956629048034111737835014106723540251788589712632976960007500309270090715451264714347287650861846956114810566271873459053452257590206279824989223053482251085815697827204875061539379778688540795211140821244198091869459993708425874918365612248958734294446674801260869134348627730159128938320494957629881826119068731838729467158284060585847149392091952411837126523522095686976157834571481249123310393080885034520870433331379178446370040766598648374575103328788246029339271268888166787393983169656186737783152724103924431453966548332272775087395753576700031024909567568732270204490924113489560029017352897506955952344326295032708892247746555301997082948819326505962294466603063074960982772118708791376637914024441540214235864384171001019611013618302373815326671349446398791321029445445195716515618805573308601162094569575577416349734228101592918331991301289461436099887087543110781733815092862420517496950718142751774321506350629925302171972789601110737271469423955723231305258715832633240874161658548393423070963017855928776587228569796108786164019291661125548885315502723656041490943874158764025405665308433090069193319442699757119261933896306614667151671737980618233025117820580248306315751659553383052633307583719887628919518408787786806841586695432668620781993990445293058191145235415429460006604521181539544359933679345778813583075081308375483814235183931680911149539094962843438420762005183280686698302137273091290747288528758495032744323922657470262117155139849465869361247586164086407550115559860165046117392871048169326664793347262528179917016664543219366188123968693641856947602355510968818469764679396966483227086995329591801826715452084852553244985463741384193773827369099177150422914929943545426882079431266548540399759220138655890741219145804220110597429061028697186342656143650481926551440001646282485138338212384029735452019079201611827584477797120452103345620557133927261365857337268108467306442950937438183663375196909807378405092570911283517158558083678443101336793149059161370833800307469125208987824119681389070614461970438568420688554620983601886457556120127195909682835483083056048018320760459044988803993273070851808466989897312315517988365993662963202124589760942146682545464651645445126568356551072231098574882861348124270844744376275076708355623320958387081430042537931860968507157530961885658902542719793729303827092262058396356733779757976723732531948588541874970384733923471688615272294236588269092252550277964748877087988077886399246842001420546311242764631707493540744159722575282949950951928288499095039410049075281868042146612129090462503671828793796320882875673665838621252688709284710280618702051592587654552564832424213323032856536446559121980640082512581627575156283473162174080791588078904863550113745866150892592573089239348458940116241323121836446025636700022490963017463343098919236727001533350911136288214375305701953656783825655894827263694718412830182160065233066140209480730838787133965120342689556666913107217315582658762672641076165538694770519005655792047101263247877289679496579848464265414052302517831399266105847123736417388305473240145247634597610126443352233332856630833998107476875882708666562649855086327395799113929795497464373481675785963162105507784530040235072170756222790846672370173130133616630254109549613688512623105071577819640155647941266189913431586254246924711611179233622775188062518449594469756440860668168230662152306314554939120835924667931670083550229781523838145124003323232426663052340294527369848212382344732105367172692356041130355771720308743051575574279448793928511879112007509241503820344789002185860170364302306817467832174569621451167929744013235020759335924638548083411154958412652569378945750384548784925800423022324287335862977517383273903925474219055694015984397509433842904872696717023535191309906248391606390712376579550139094492851140995698594755447521878494633284895138811196655976603826811306344868728201730254600900521248514450222580643010973231987293600238825240535261985032080840769862785105691323258331768141898239767263630492053974019660679105968975582143099321342005489544692417008534343970036852313155848460585096482555397262419076431389362591372344001336536661423555034623584963517446864669193018692827685630718651173933441595437171736720932541713382262439041808238413671285024548604635889169381840140695038243315446495509174905541412661285923999562115346203209517004820104415019441602403185043650889376838380961384798490410708638263093452690111914096576885441161125596869444184388594378278347510315670847973996700325332887915720472639323195052339033299737770910390897087912991426278376011950791817822561063698537047734025746356264291296842503427988389863723973352340628643088180822919701563663888923146729487284805942661918006709816121248455785363835721765478453649986150328843013687250195404498788294524834557160368009450101860739013764280496996928031140857809246439945481416633295607642787273783363738026553742318028916407368935796702910036285437237220432458290802600896881129724005480527732936660771529673127748041670420399667422852531897921367293195665850697956661885010167426879668268434493759038619870388290801474769242684297305979792193076268402362744703335938516160995398900550580453975271462339907512065720473673306047350742134078107945133506484433519095054312243492353591350683080699021668270371082083626064147601868770601486231814866821464220649228512596621574943340956354007502256598221403837817355781048863994035550398047814062010393031608084887098456296868379538747710149851636451725705646823657374962096911013172104692599008168204914401197123719621555446715707970122388107659964389248827018517137617783767938410854379782089513998647343983527374573994042491942719430080622732678853451452276529238407488735911664057858080310539051844235561845642415046049455815261104374206018023417538162951737262068065472162880826261831079539056194433764523504128017142604672260183722524920272244495028859605675636100641395957683125743317564444457267043863405269041402386959061652351223136256999543206219004031883302760124348927840935356563362225248127722072087217478831835948221694742051432085162430639809334462965450509283165573941319835966713546528137546659707406649377763277156000090838231009443986499609151920168055032492179062477989129553119584280320652836535820798579382307280059999637799456096178065364433096528926638261849012379578122883249332458022100811281286648479384012251454305365384622816002745063595490289773228071236588361102443439693267573901220117513536558634403684193457708260948819052989235991068260992174307523599591230613618418844552191685139886808572284399328211144735724415713346114767755671549085757315511710692726078880614074651950987577808155304556363427402132964166879466082299637401307369652505282305746651701946814691777561764375440805176641183502293137712396485720333258393787524731038490452062026299983009886566573415606468393016681476724448392510148971672047679175093393406117033431289145000655173372137491010646567992306853749112127611056893040439922658927290913990132402651580970219435634971910007915807903819111277521356472224122485431995828234337585139504346369949567460187379206292172676156908155522581101907918960860020006734110089199683749890412369911487020085916695364799450026681205726570088476709309770096310732402715324985268211624584426885823653307867713810248421142466152014368395526667615901133476939976149815512374674505960553248188906623127539919661889667916413922583549264747766404861595989797979673173528484787764815581510857109691869294957927207295041585147365008138041078140251572859322549310322687501501125722678017042845218831576105144507232972834233849405799904264042453028684914329878851267534654750150880903637601777123740071191738435755933743383192385982059856836801267397339820703732878397804224221521819457012630040690374291568439275260679777042329165737661158948821681922897293745809299628456749799921003203091848390494939377243522719532637322509192297840957888990665011327642880617109843331835943931020441345193566182802869525174170068490288473798681109324325501571210611048302773585361445729436425733675120999273786354803978192504651180787613120454321646877414861815162810750376338900575661710430223470636934639069613826000997508928833954761619258080421016057586639426691686403437410206368001608443063535407883929808380425596681777291494152864106319823950383995105884594313299195316054855691558319953026402545117589156171365532280764606106515123332647759659750578298102442053075952381680099920296062711934211546285458473857467823010043667334898413618463039061519252886020019889477257593508187227748178155461766340977874978104820335031175483248779369071096704130995119161705558501944782738735967624323295082913849096738276994500995378186112131129200537020959737027988838482190377988400182958686086041913300779715619928934654193806771161970584764881482857361800837431470860801492737868138231919132887127850062826005066355525643219967045964849740452394869282847616854517367445791660440555749968782960468315330175128155761902673900198138808147695058381074938836641624565484553338555788713368055317325296219016719804154404586589071961260687285704811561720938597687785114408244625804357063850727492252447750028012857281851900938749675994921149515640761401715450916577885633840791331862623223832816744052678605953656068956675161756682966776998313712064697921147512885386937877094240788657252801013128097780454769812087648601045781471299444244815387249451428165276101678853719957978159708648404214985961890132624503603468689404915407770444743642904880799183022050425657988052328737760865701320809966466945750316080687427661909851927539597193667903113337787764594149976714967212279974353939135354549480171589556640564070320404007745488872943344854082589546899231332151153230148100976619801262723113270436956818222165810802593730021922685584943870883759377660226011913924867257945731506638975478539370627682341384831796004508059601700216387520119811736684863349404739570193460873148314191523020966282672371042648845351370769820414244581353942241535346784316586364723495789338426272834488447467566950576438765095653861032983006073997290726082841891527006242395427152338192942772560585333076783877731618330878866375472010714041590312337053880143229254288848690871469223006637315666099985953355606428448964673120090685106340891980475514917337458851124825916025710503506587308330627556390664210484335887525458404196752433445201386281749819644747068672224173990614066271242762465267833156003083141654811960970389241202812375943722358025186936467309240299659546017000530581603818550091500855135503296349008722727231817270105328782795002290789300063879131445203938650236011585883554133841755393761167772086593112913269229428162415401815444973938766738948238733429403628773985250784342776659031999584088312441626555984325919491283184855598514384981433311762730586809044928704512287935516757392887486833703642566063783753794560822162499897456473826450008696166010453081956461327426593616079361897854361042578349853298310342819754145853188536958848068050761716840586899013611707191688629429868591841425587553075364145950794645987966658085489077343582955332243114448569882869206840974443072966492494865520994183328282824263788792237033993851841718519079464892468786187403114291334546760461499552801269810808557341414483372645378820661398051916377380768342398894501742098926496808655099184475011140973629140156006051029587574172490369428864517374286694231249386716140787029858446871233052736884132915491506750642330245782177862483074478265333212884006318998063731790794229991214620038177719208952850530977482248578876890901749224662237649120064226337259591288436302067116558847882565837605251425422559990651834676020591240121915423621750888727839858230953086222733801723491266701406859805359994548989938093325111306404140938724031429581136467853888354331733470320646975409238339978715029560829682708941605575823404858665990655437306595327205952504091079268072482967974531890734995556130001061725953168628120681886284331832421849352471586462074677693575748184983834925302657725522643506631659117397396827011808890105547579744175325350588747308895385302269747559626704957605336352292295790499558654886242698833298115108907788276904619713388065836723099206716881603786007100791511624031580559822564900447925242535782920735372952381275506578091001071448326613519265778509417902430377471940232018780629238877164554048114531000240137081518936462983073484774996741325934444558985684690244766223285254695929127842236540597182009917591566112423638466506391126910166600524726757641970471858118407805571965676756959507363709520011496162415285920678143105658000622998568730511916437918158885891416208629043757038293621632869224170055462796024610048473757406637214147703242243589154696449085477143567804719204860438129190550041229072234646041616205864447066043349918904148473668480572526963812561223254746276890950606200849136395631800111950213511130202141185713333897597065781155853013168884798931223374557191031405240302454072673815065379934286545195726715543270208020330019315131225425873964541625916224248470468549942186651794248256077076864995683345820074893827624218891937815342341337575318488902694503439041797956692939035635336805854526992176372624925421140916894071435698625409996967350471404215983937037564891767917222503170971091363765978110568650256414051395300791447038466813952561073283304983094155652329326560172643710691660872888827163213483949112733485808726564078036093690556672314617922664115695496126074592590693395562390853431539407888528738788481694837851809929687551109883399671395762943678632137273277620906114221456862236801145128533654661493032679339260825741523857946781387469436229565112053418486754936819222419591653504353174558187237938139082798209796376714825604196233444658299377667959716250032013514604306129894691611749369369097101923935762472807889059300777150179163681987980742751848514351666628482998133388365844273659546177346019633385875698599197147006692353677000295320045385309894211294178879255621592896664614255584615563246348380787224230523438751635260518016629210339801735616574860180540413310186362332034878828421404954237542247219601515305952391000824620746476981487772834541153823563154660358678464907169732077677987860392475121367231227937632161932710173908704368660905338137293934996429194743715131640593986149424807603905917158325127017016607941492198312699378888846788051320080246844148284579370414573799931262909706776576009595651804599854432220348391525537560769125872675363308503988897978948294751527612859168348180578817389298948773978491704184546883791210268973626028954472181235020350977457751560803117322964350387568783447909411615965476026003370982388331459931681450720467452422212311572927341011381404622260474092844518588043151810065595881412324796890786524164267085315617278472051881525150772757219266709703778634661860969768720354896008682157602901308185171565885619682494885583817131728086645638501929994197763184125796968045302950379176856986875319652951666502854253183789820888345223776090219139446832530752715603082647985313993996072514141152857483501957989442660978638705154109457613274221663194536567944405193559714449907451396309348537807611333180466028734601959530691290601496129916351667698555094518212313009803757337772561556392924997721334387145065840101780956475758962009491349848476071399827525312354412491387055763054961357312826163784444790759571403903965025252004840788669748170790126068976643135009608197152818098406540647323674399967208945159783933423559134292441657333187369047647153855744222822373944019757723294035867950777293331580443571646868877964116837722328958856350570770288648524274522356514213845005670791410356168584364100915178596193869811254805015327147112517873688192137712243892906084348326363685155525234964330923956631247101807330006761258566474657496838813388136194868154205721292964761321384453970814927983449840540736973169385081573197466459741252158188878802542396812117390404825282245112741659176819374727085649545506631618694125387069209257949327367151094840807727348709833249567869603557498722438596211632150811575169937371813907558983786411703373620892111036729481294241031616526985930716669534949578746977440837923594087398181515458556480656101173610457270189666968321323504819212861228793222195630211496990783708041249871951344799450118314321078738053036111306436250931681831668711369556103539586284853387570574162871422475865920248503518194074341641038873924182391571871713390885382444979095230226038964089106367775081124363324258578024691982898478257385708251561957160360638918731700410514794123669322216142942634580485664832775563393478137560800423881637168114059629579390527816242775799844182679053864606716208695343797589791182577509099772936805505689225384807803501345356866164195881267055886690818465228326848711716402142530289343907936975832954013721305243485830290339781720465512763546091240930569497176088708715005482177336181633833612107070789948636982131506050921639810941054596384238197945960916259792655885707710622999971263399803007642377159561968997586980991396386411800193942882134475351572716108825314055702969429005722246956906401402740597290433294458629900889064157745135081407867921728129526472142649172924099726013857662503714577201931867833390909930044583605581807737663710621748785239583505020634510525200826057082636594785437335463523479152970493806103878553312996761485134296806440819284074979973507670614991233784758938030667338936974200735014626848680727711245935549924656510110914586773600295432847737548600210860685464695053640237998784455460959010548351132753288100294714717013090234339941668982858202687001210530605143082828304501231761019975571435964827008921097864642051584409845541853909692194918881148794191380478645900027692523449013094906926464683060617174301744841999481651915944770317873260034357107104921568851449733711077145605523209802608204279692553986583805918471972856464050119825163365945840720164531733822828249649066826304952334227102214510080363528747890052784992999903765942748207412827496181850045674189205560176160155793414319275992267374149358947084843484560360958877679309096397934593391468986999364858305703130875050485747226761924298995142942321462696451875001347274471191122983452256840297873973325052171580708058122566171038317696802236223967134290065052410669911700499031024939663402298474611114161155247942040574868352851131464677728160176805941569195138720127261922813019495155539541440375779181237118005825907044780565837999790660829672896994334473252593462529927994134054504596863253226333164285884494381925948313825036030625638366319970437816445118351306312543789417440907358480359616148305096092454570898468173663309700447485032848448281657035420967877107793230219781651569586301534051956956052622802088163550850309986706853423530551548535337283137471912375209534047109876817970504219646692685571515064852810385373632345173776270383553895736676375581756496292910681041787556464197247725599143863979025109492243604929070621939926727795708111683079515399825545370031155960848884900162519857214813606616161026637970069354347595147441829550431876923766168915325201550986173123962906865296531095572962390520347342934069335795917022837806884207569071162100221270145556357735828033391673181502663043610820741937247472791391251079517547486823751372535875743317516463686176502048516997956001636724996924549142334357619410245838678881076966566377534643074493253512927913010754118351103180104212225403112483087966423780156910356067963227019426162546006763645382481947775057937764819839026876315741628092269032937369800164379365894530909564063590418868271443716108284989611630791972070522341023567294360100782833301089295029821569058717977786348470132256404299455878222997409597971647398538366123871977012793405314370195014529592175625757862614486259698869186341139321287868825612637169005578713554404305172594847827430475364996303632258151101197619149651002978216926776191172579885405747652271254851308912380712642577231931869038764330608185241623173555004103572295794544693282320104620505054759995946866363628421795776981620483992422308204538805857685085545928206296002749167492092622335073053567867526095068494459826635681939666607059497929330475243826700877359025543065786885820715036893022531728936154143343149531901166992375508934041022429861543362271186431084291497568064518807789014960819857960517122023601429044225406598341052481652032923918468889341413806572975179071001436418272422718161342818342173275302093855792079045604179850212982355802237262069095287140968809269983913831718417028029968773563338711504400992371635315009726196918326749101286129198018541655392831843158206357649370003715370232722129905187603035504719743374699356609756096491510873711352015331803364049610727342591621227875184102939765075652624464180785498319272739179808374996897239910386914645084796036041865043266842495468781287653142670002529696196562296681627964191214957233593761280616022505844676904176343890221516478001890453527677835772214919833263728595815225070433516968755609300259521433328980786613989084441091697321795624262095659511114458692483788700127690940460504593243363675655973670902932882659349305946929597755363463987953664418704302427631381480317857087876555386770510426880058929318984448110495369135928822939921996675932920761166992199816192412139709773682272918227967511529217701204198953733855081841965742766173543779215806619686896489831987815137507872199699695637533484353455860088969786791127273535573144919102803296211095821153412114475707956117783858685687389009272086222702584984481319333674413624350883259358500250001268389246309252676640723233402557591770489979711881106369542594820172143508119369568679356606994722409923453888097863278769942107064566990239181238983711107494959394028479260028359947550355876700102553148866695829510760629026725780816703692474176818993501917639171817514588332906760477207203615202289409895814664799831843647923522351322020115371049291433513911969121382517559003270189658676599757756570712791144197843916291952140519110924084926305138320104282802604922433653807035475824124175312856788491520925567051900680783008923165147373523274077477444516496586955810809582917543740554335159724554316909780258888234329396233874200138250862913198886699582664525165499684885362264261202887582550880949563135600132013025627252035780947692174215312497075556226436523787703949255453952401014427543369891379924123391828642306316631123730784834003767643208328802105026554001258052875774122362037300586093817747697725049548756236925642702367464720677054525960786895134588136414727375475116851289489999546530361986204729770493727030139720497444079561695745885999813569183753175101568522324486684397721398340922092968359892564947617734646479469502106387837414955099015213157889424884718923499876708922571943995195729948218712910373892204446506358245167723123139647479836429113953985970168225177196863760747628157068236986887515529599112978765467898216382229984654200630951541101259665333371812217254229678463805553870407715231084683394888490786931746670686443179995797564860578908546556050641078406486080643374619621173811090327207148684948342568794635972102154527115839502908832884188688187879975030428711962376357473840511976543855220407034810344214343260263817733490854914958206132111351412351441086867299901050053100188617322824195509033720571277208553426596631880703320183454683150220225540812006107091998512576997462609483211549379055096097198310435489363383606767246349664559343566771301893224001480869921100240427376609259710967588513591701193265109859452823130838725706311737717943419716192392813112098940298652225703719489411343036426765131368602400390587647602652032947187671565344481661597709881660008445477902071111624477304905114065866510497821223944504971048435497544511161808499181069605765422933346764554355957661907047434725792633963735052601218766734372050259947338422136482613628040610803091992608828577603558567660179624685973288995278301890716293450360565271800306475696867052486737750196744369535459999893705402860656715326206823348566513620668779762447521752118128545206650772301124821822437234832302992910758306286645670574316223107578667202410724267063368045476339027008594874073108866404228816800363187484681406114537793639560438234315974050958242118337710047657211031545220246049010592190072550502635749419759054805781348409045134316586394251828196165563821262390915252800841160193667496193782979379953186636048936052700062149287076769681140555086971377988346043109427519777790644721761695190805682696575294152656863993032426854204084450954142349430146093413586487448938705166940952480467089528640641569791915331869104971816176153119587055300552395451833049158314390316063171098970573662759093186562544217626077209614695045931497412837916210671746081174134157542228254181469990891359857711065392948285647591419196441839419965757729328265468394881605121539543791662573120110723526700939888474743250565541355404677024852161152691215578118779219223858592127464088231953678930773581967431221144053782558035250435948893892569444974493953207132704213365762138642274913622126327231790703112269194022777871824157828960144663791983378460156806933830561682950311838746678477197367948980135734971850996903483720545190437493754038628041127580589162960008698037712633721824839989037294466494145903922424972361374508420618255470729935170968728061566167574645762366818777091110433340127947947565949198437118908887534092026198787947959879111946120621054158711075934866164985170784527695519329942790360561335454845129374964844962445710917880006661309484140630260590788477085553133082483571795982935526188832776149461606820701770449222010174685244866363488997389012310847552842072623705407948634188439114565036066273508856321266720743953180562395229700682569256514346924949120211022027426839273548868535902046446499065047382139911268486246294720672317626082818473734430654851811922770805835176358743712320491710097994314237048029069642439298926356505048461317259685185975411647899749201222000813075942231887456165129405833776326208019566625808563175079345858889540998797338192421524582969458136898175552229791120022986483312952037218526785223848529078606043309501370969755795703740488416543669242898669002883124509779836989761663356612407101473245676809440459207616546818765517340223161862952567786896502773033018332143372995855278562830799659640364195370281584709035221578854055702953298292274009747722148624877114328849540758295455305954617827000409494533420288219939032157133078255754792450363749744478825217927464117076115562651901745148147309674378736658338411640758466382816148489923696306881983649925185625122903660264187816570873113903518845955530781858049243016990013369310278277463964144810426502410487862712778022212527502290926401209998744725772114433257371946410916032549706873195334274050592272485254500966125732426704754648825597105163753427214803062088719897348230760726179174796355556539113786133784804544648161387556005377140680417448705612569992341629410255501115507737321789781080298213066382096454057783338068439932526651663846007711079588127384621323857775426575886195402733172325501992019293339978403278746181467224338530232415482130177430474721991704275322597548092316684325873864231229538689745831323361542256063899023843081586747052727627338914929577999254406401042794150716546093790895156292895485822090304365007305434920456118760118505594410443169008200879779240639174972269383704886763058882565075288817300329908879757036535697139615087297274765020404808976902346635912732597545335877598378974696919179452576864059924006327058792166798359072031374481392234481604304981903889648557456337508642532458336539517816654363353209280887661685646429257464431558255489171670478645166075224255844522294577954198925327693362673640691539591013052813708078658028243567374433701004855761375178419606625851385947920669336556839337970037381321785106408962441984686844946911204618565099175709294161944780062163946195145048946746494324773727737134775837913815330286841688903604280095157073375738052300291753213295693466587222713322151495526804553452277546675521248617402879009054457997982329501958170330998768073012981300322071142788541314708081137176127255268809051320514035366542484576194708999282608726396581509253803338362963656753858290905124186699565338222721269277901739841687475024637920322323594309573171899404258094541588535187827002872063794391507705963925860061438851170855768305153566158893897245665327632749076411331030515418198187257684608957049172603152095564939301846635079077469807825947071916422759431707345480406226064040231889834213543912447776146431710437263672232893801751562816895858231274168713063090842821483032451597995225960847328777877770861630796669188859372378133008228987086313493845681271978095354857983697287538257969198725394384399272283523938732852084977683158869676565967801220280891593655941730032120145309184742387543935424115764267368913187337120256137458136669021205342373469364184648286194325789773036753943613643318448264358349912268505276547720395261988364514949596044934597988524817414505697105657996834335088580530031424324380763073109003935984589852029673456863348944073718558415835896766664119867034223298207036327964483469136122831784007588421005967883488067737662015124844390639698907871572162324209021017379125806589016438750092812720635139158683739468075133183994055013523303651700309362571800136846601842140776807273468780256004564234601236371311055072258743540255939234343396753602034675248841568046413569295314507612192229881269993856047931359602174983107370958012673694196449741597928300780723533046981796493203247747985787492817323351904806059606565476849213736878346007604873868519534860712721514642576049047674224372995664213278591058400470909011942529303225873051589238804349889364932511189089940773463644085631988984382512477658964168136756808274671879231975141827753045201523225993889352913945984108484460836964745041675224785516270970845140420277224808304711348450396556718909509228107969603685091139490034029707484121218286782230333664452332421487530788030577399855687439216869922616420332599735328913149309065917546659461799679165434965739005534620080489014180256737201397840309448514745832500981962317785974193154816175452985183175501976496660810674135269515637005757952392929795798306150567822066615993943238707850936512355164085300516806765825377305438079590381931934993430392727777000635389235391120436734376529091754838263514243833039678575824933476963159003875305678761075646982176625457251947742932452115833598061789011141622011378064619408702702099776477811362610955807464238832584880179946042467830217580835340872849082987880625391888042260208032396035562752649185329474893972344930599915734017211837197280806643199192512672740292451477810447310002257221896037964271126106444268833969075978254888442024039528321940027649445783920686944222225632590461062731196180286190644326905392147894925875659769236814871335909732779657778813291100161188771833891476322137215648702970512602785582521683654839907797689422200385422845359504630764510352131583096225624437898402519508382949033918290925157185881727117256042752017016778310405024517834352571170650606000468842617535464019409421205023451799067795668301541017429346422832271733155693857516604937358325429062193316460060550614017225744233689958457176505386385536820316569056833400691009002248097103351217738795623840823593992101753695338189210816387205155131040385723055248194829827150590196668989980695883798073834266673260487413839173473820759013041310241029863404124706366494509815404459656699168044866295977854549851584806247474900118160858092657192292680413406843116353419741347737810466243661800142163803348746242164648843986557598527156443109072969597378093157932716366776898403860849769148210701729295604638550522550185089951793673587915501566447272908018892246127357502345460508575405949449427208522360780621994422026764315607307469124451109452318585221419518614829624922507480763795569978105278328126037275871845496707807699751252200964998570524081805856314366968320216543858532164274446063599362013114235350220795969844635256952018493687444922549388853415368828371932146448321890372785859651910078947235822656085068293765431082246832930736656196793768762834146110891700842775391581534512164950442835982716725345021230356217652942435803959269988594148199390488922027149086547297474327641810589696193412960771877791869315908528697910568698659265296672322657723415579842581282575000836483626311663977472179246115741997017352297107010655530732858745222776174933775884444268176250977080812871377743254155552029210589943822873027716064882347239709045114326697040080563512972866742646300668877014736238187448556786266802616457766323568866289447468594013644810239044527075289071258723594719984706274915064984569012796659474000425642992071530531845745463687555473402532712353072263321391836274741353908136174749421102412389872242918668238756053224283923033838241665956809281523213398617198516517874865233453195439293943288798416584237744683447700806864954117506921167991614295444594528089330736750541715495611018981810009932044331505111560613246352260255696299635257956276431961114451011601943194408075772553925990288994882712349742188720141713687955034884283949305627700179511372608550876441007349752113463066298574576028392460761298525865476538853765328268045161892113706304195527809494104988886845748334961322717199419423373015679674426985511353225641088130259896946636465332212262808128255558531820879302252689637719934977333156212216929677357760774110203058286842112481668925204357430420366786598813564190813127984197218132886698766694402649819318608681643696539611662960617364728268347935678498813062279741082904888501620006133781116884262843209775633458065526960295000484644028775012031782485570566133427259479810902300887073227732155236146192706980272296073924201761007712399227889265150278165435802466617565868103799843016057490043893669995730783548300531566708376659566825221813727191538370360845648134577744428997078473111090814025949747642964484465055437412264193107649506901480456602241237998750102991693036243642398265331149275767263590096288410134371903233546520069189582734332960720265793735349538766372184314478454262997499084062010948494971936467954005243560048453026553792978291110962971817704517298726116444631260883051880196487738810993564410145178048673600316439337783105383078552274100127561465121187233914376876641626750350183895315567931423983430742293443657351451959662528594063629094946509365447755175516569107106792572603464445107807414529376894078509251882750942523853331339156309261610781638127121988375444707705749371957880952454553779710891991842413361406328438713610159070247809086720136769117339847450845069720021993183161098706368378208561339550276792087923798533438012306977253670829279605470191380231257436994302401212160552645049634969422996480914428734732252686633088198973159861238405319731723096810594855700523145315976857213658513473080757363022785402424063975865891376741656824894451493812638558331964988923061426886533107817962464703850551711033938287616982295826691060220525160274989722240863934044131400694779953249905249403325588799692264898790544709420918290297799098365927998048294008441172253009676142109395977938250184941053579931636311703796910325865831605361649031518341287785843515875655069465026947250351421737971461340289164357756348347946686807085758584835156086612895598182887567338659410336868347019207726594129006621667696732034723088659735692161667078590926974207948580296107883371638014379923606509727107503882142958416389654528799311864548934162530663213181025570089742405407809124598597919353791515506295248813475165251770145683630096068365594407025103370304180522546145380005698367791888497058640543972364188895567324832571387062318350430032788506900327151818862444529771937756494468093274614207941873764711555258098389604694693776441525476438982797295451747250888345452692924513940542381414123272696615903697317076681490842600066004571331975051013806328184942487298686804674098399438709140356787807981232826331553676994082124196042405600820994777534904837639546812651980494785548267228408942086852616565319957960912649907156650372802797337578608662050804554827441344815631024608826089689577912780524742171030385745604723391008016923641774738159565790414567989725583756556218434864958509712386256836578205266229702376586386485848882153889007653218068010242712754321783429052194830928767691980489741911338411599034497282726711042126916581171765935030061878860149742224242205315949423020603133789950839180266817764352550592307116795409145345066557533944801272767937558185949236226326040572049533627794013528194648077179788443937240794185043922372283257365983286292015929410015681536211366522694077521424696593936311658509139711389659869291435640253559408534292618000513140229726468219221036620848345272566543370219568944792502640591585563102708837047499166672306930905568718651402664268759166404992519998818082985031801346623573563352444077717474666572988214327864818705148442863073932464292954758442188757333067703511024680752728162110998797973296735257002249756329570561806479900102886069289906055938092018113829173937148852107110186223099131246794391015899068200727376269440234975148957320074261084747074244040404342131422837146995099213841757487905984804931997575757292129011747795407617713682021672323632485786476347421174937406606333181765762463820003251600129430127786267936175412338018834292813180395331917522530799122953414362110023928398505925412253960915959908389383145862255258548114441497834873619768727746434526651090108519208696190379189499631877076701008242574587239361434603567989058359529424140465625971174687693088973263898701124291494391535059822736957068915500603416564639807521568793108889642733926926506652058832028712398011996256323906488294589368966866464755170439705970961807542545540673519889824841157598573826970968265333113442193153316033504545519296769749122623862998090972371274749305754725469076202283913053386158114917399294305236810446255088877833507906887184309028498362497559630421026198263785345661453951369095264467051956316157052710082392924755686404635572630633583476491319831605724411743969088001436510446319928338125951107666053308081707135156704793375868911743496004622397558106999069346120899170112057350749912701259525488732777366127217306229507655833159599004803215906998336392717298661381456913383048044364406500790523882432619783693548942052310869086495754090846545171021195647037290573004176768586280586390200926503905364900442214441275599419471314029856653450746429336216681275495502676806039547148251498714894430654102592683321281834335020243152275705167301449027834248341834014070741003120467857512758660705398458476827913573788150877354762356261224871789010962796964411550673547491580402679115466627669097527275726267129804589993597290706471664431928210060777019678087151363203033184473426174465555081202122270752422656994787773380488602201281750041441515026899397715161417567570470919794760020458767108524851263696608610821197140478432590023577532522122458118630542442275499868953168693388258716899781007300990641419435897438346359102244125923494331822199549432135826497233265086680124258635344841757198091905392230626389027119246911492826720199815420750873524595780836522214409164203353559424486800998028182244974076075757777961288470902244207221745931638656015404145321768359146088013807619700120973025550919762189228113004214090132711971026071317112025357655183916603996080526170739843903216392316681857255008687662922417256735629156757662909252444210952036254312891448442202833639622985573785627209660969098354628877550981961609244228990071458736134776680459853943904080553087581515126771960700031088107764539919032681918928962790636378228777799497429190216309499549384460565773769755821785236844650879518213616765408822001084544494851399046229428067200661634209196100721415931630182457917625340364885488293480754008016514933084734021327280170050439133811115132340658811245405517821831049967771107055877155301614763684360702958456903102355204866127410253909622816558555892227306665839213764465829942515456765773531833672456187627896150419626568631139714735639298659419372387303412889357439215112847039658991331232499253268192291823479767223521031500562746952640063417880013389853362118946545301684142932140825710559308525377920921517102583267280890141972130941957294914903890489779884646695937290476909459223377859878564822642058007769560340707930130683511045235465628019859211235186907916872005511831575267261465585396395413636614525530100671466675940907452452402994649568426034828392294173194596253854576996750978396480100114840204663377902117617365299572940516245602858792697394796738194996678624640955431897337849391727212059021123537110610201485352148607923490493822839627618406299886520955300243591131066243446993076391286674955728936905467600610135468201488446935781549755075353824209541125206302197209297283321664589610871173538091366939561420669868060815832297518220142950243680470552637794952027978271583079684993123885282765950935140121003908959066082994960880653418089190139950078279883038811931395832002747606999349700875596257100751552207705093800964352614656573286173464088247606880617462621122025923629515953405080439669950574108603009487010454627971910112908913170274259475714892199771944044398556061471155807971457702297940022173453655963445401914777352024791819147244614070349294650959486805791548624327562793654439500195126436171391443419587674123445576211593930979398268152694106590889934189554825065004227370584185451856950766646691613366536098059367225282382241879934607511971197003490904450440863647132666952886285039760316528935506571855413452176176358261846439584045843126438644844255005249228657805389968853722194758930864028594480961236029482893749641506894439289695480992176876915276849365694161215860358345832526509737810475468615468580014748904972104320689409482594982626672776064209408227185559997377261063758741843715175621217814394593597765925467112921633370972127280548824444750480611252371768921216484888578222185271921315442320510796736107431896539464572547607751822309640220714853040883704220249226648188171794027973570679173015698496567797855262525326791997372116806896488408334287843143887004754101778652701333814178618780914295120679774632735548674494571582743866762760728528632757511965231482504404238893277474248983066521591469712491013656218577617717993831743233615689245501190570091728514531665785567743838852386902924058219271591226710561612719305487741985130323822550846270804800889812779277731857674995865984271183711539559687865398589700949919775331079478606216100661519926180193114024492815095262865957242283014729014970956047004878379473685534822649452216759726734040264842033226065041733232624361927036889515396953984423899330223810464094998884830447013731289402803572626994948325501986808562435654936607617098330542052498336028651176881570362851449323168467930305987223093087278831543042210956874322888028132838575181806242972226561042745564135005084322006339567448280081276822009141532066435085151130939649057487619011282430540297955993767262125749047908415259220283083869499653039078970066223689263072991028163449444384994304606275461459075264124882030413772988461749951952598393910551589087983394008372729627314629139193610494903944035082508577488735517620498080331247586669953989738499309575823666948457535967235744345430581782305578583086915079311646685948457365785661751655699843456125238195068236582001888513731654758433238277479162668132310093012035300994215665515499196672571292568340557289204311191547870041610319101968074828232714870054385758473122078921433650976772846355718085342265338239365454859121497111175562302122477751917186686747006646407637130049721295917418250816979162347766597449607206849941565486942769971077494587842025612708969478234454821386616980010741149595217505268228934677461161949004781401607672640337958713814698211183125661429263333225548454426425424828293616677717937572996277150293619220698045361135921766073306588246207925384561091843553332465229199237903877220031650525987966845243515741530484058245896912707887887928020744278379065419904559005106401056415687294961538415319082496998508123624453627009231631581888708154944748889676529883908155004742940398986535598320854803006790083006914215184238990859224751076171044962915123073817665354523456281206859706932768052285597355922488201731830679959926274508913616672004833589398847280246885457818299538867822754053663171709324003406504659586248216016531749327486236233758091854401860303400130832695881495869517045370811131997347232431679693094677740422379334591370642133274072111084201071524749663102072973548265203208227936491094337635839943444299633947365140374652966661548599395141788684024597387434274946279172128525263791973510389125544990770712115822118754230723775434749193919510752583822645208056856239808981573715528757608674296154219040566526463627107766606710053941478321613289174718016921867043754730957081573402307397915007564147599102503790235783353942360329314212598201241923775850281657228128857114908059669529012304063278477984325883000888863540002207962403558446182711392129121052660518109625055180695220640083220143296062133552621489670699120589516322997716965675744365001630736793780379311656000526280654009270993141984310324919114392178101290768778140963140625996069306080150536166024806940436289780143034789951402974636156556644410283317487940386094286080527787302894166802538976844476218021757498353816081988240849678455073914276937618736157599979271677919463361906838908353501104933863329435231583173725325335124278379273146966184395056421708711544707794849473101193112447470455945772930950390182089430029651628874486037544180219010122898961403505548018138800365940594515552435171056674581441919294161682774001118332310067406699986397484938151185651224505800625256846172374227929963813642169395414128927859138491846746068135499039852560009425194199013700822208721085953988344384435267086689439639200044987448070604875243690285774965741181682261790333837257735522026458639215326764548965553883375186487812069697771809715435000663862200625268457490924938900420935933520777510527991103874517039938436918412085764492850874315572540021450727748830132548797971897046083516589921304922248402501353098691636088010906302005413199940306655844377270628276834026622616532846751615913475019273558728007609197986254987281975223814545868142061752318918224775991130392571735093189685491531649157479113894321672767228301765556449339421961614588066221623587867112037097640499098570049670036190233486319261265011503596682650180665108007842760139530099515327330851032911375239011851020734658502246018186309969432445451459980695672873739145583869679236636801781884894299781831359695205455273045547303404150600641325141117524919182734312945379925904583839484189632912639437600113380281168183516713439345923390897491313907938194122222380108992565117342727651169248930781554263483701834245552455932964276848178083870699658503393966001557557082806114783210097552257374846791935129735681082440032961029344339951029826769149429020521296826529132973593955792948904083296982990065548291582539180673124029999155718535804695700408097150414006262518426531166429900045049369644522286226797477549154129890364099622552873701564085741818694734675612723380204024485673868001837099616959825587555579232976938832776741742796970702227491731940297958271071985939906652843457352428221323275069078432467065194647935969507839812387199033638786348337528131663019095774739064053609332613944452881680606963085816341887912321808444754722752630285988065618114858550154076392160770929252753067899960930154851623246011462098697586245122849067676777323371032448462637432016323337090603058392977321812747388330085645939110318860895036985868937260209948620415992954926444028136002598619449669695673350062508820390201733133616239861878872352084780726032085922969508528110464633498203788135619342005860661672785809777610132626033698428488962323145417502131779966614391970031057615940530058971590357739333244021100987583564102145724084259978309831562996298800449541757565758756569333826878437273300682667358821786771624500899878044356334429794938483382495985055126418910175768174948780090651415013121102593334300073616679777258049322575070357614487803592383799873235808185031064686248607545366626094835375191319152497988092912452267697350829857928742110300720865282764928668679929548057448657609977829241106070485908537654269723962046187673447927898468125254732734872340576576690726087207348448316503106125501570883727134041185143192545865569535005286975486651958705307901981999085862916056150639201660802095639327074352273629027601145856604056776796645832761984015190497615553552965329996463407368144090860797157502102359186322523940193187471118480482198704389981887050072334208794662730784355190528281986676878741458940822710710208727890421225678070836021783000612408879575607045744907737362428888460352675002826672731658809653407028375693040762602101023862034866406701737905441431109867336631220840384342243732733769629724333306566275748433884785925477992052207164129097273080383840714297913304044498305650883856068736750819980064942842439838478940441864022041147230455372688806605375460989128439344487095332509150111906887555689308421381648863794020348215754951285542198523750015965021344998362379995020700733447128649419043304612235006558270947767752048653864061992264315352886262837866814021807290458597500819478506842185270106544611517075359338576973769602923209755402764606959245927288672509425161184037553927963998719885039648120874550927741743322213793700797172665712694138004917728162431127086304415857377809936092908773708707621845028239111191220341077821474194884413607676429975079811917590756469716440999115554980468155764937028732797269430745354511283650474681880198177119084663743632299105015675155955412709294034833087741231461826458104876915391676595636278471473618567342611352503890172493059933429818229253498913421261290222210462720886192320347989626423901100369795852639506201666437648137913647504723284222295926409117377411590199787579513040456396694684672230854251207954279450548641849415161703318388533353018841942051528351647850480294636581533163920920437465721947137849057027036404125976746640822175861148876388684894251433001566984825095262937607277835454305165067022976963439694207325666677459179707220163154288771862137089922051083209411520670963082483852584619226339297111723806526111088339323525797309657043536666609591605225504059849668212095475813791728648327849248206233726533021924964100089532415215895708113582833659604572926940972856793722830561133180149565593423574087628298795777128894278213913742092273657397104617271979310661181774313967247854312720364565904930817647268502245946807721724676908532264139839373465726619757745852020601922773091935537929505644289303479964334153928311924319527846529052727031707211586025681164427563308177834292216944354838303121206103391070137341251549740424182810678917475519259917188489734148292761698035561236979130429874459850370826691389679252134513664008555686175260939423272280711220990504618458465533419442907342174091805021838287065417242593114536281503882407257328660546307186440513610545514372424510214249599662948651385840088144655487888934574169944028888235436346877089784303495874107849760168606847746427796186308098103213948449352165754358953303410162801109711916663341516346127100616482913449064825023950719513090098186739958666527328229698178392977037985542184017369945043160291345539932534009043259073384822281743226864528744181281549753816850046923408255681648166379884247773873985220661084379266624337945519816171466693335649457414783504442645298016990597973486426010804692165325882290428597216968347611504317847710683736807431225971839132555508923227205615400674966390033866844337000476639668453027882990040578043323248187082657883680484160454753758520022176127904813028907588397179247995252927789931713603009467179426741067641295738569400928543021197838359307417141298263227584823952294550451720339222747908928062751165268042414273352565501322351549398203437291256877271830522305784308512193539412626499795538684106037985414519937568592657765226773965179486188568908107891611528208060459627057019790195205361625881239272314820846314683090196176164388584142088776333394413767250681944914307819037639098074256313952505227901024909432561221751381775751100417620177740614842944629225739987741739911204472744307278710336683485639189352375682789695735033786646746541633448340897211500043438442315647671053001628429460102720252224724076889880809411449528918328857879575571671960577888782040483396760547881975901367311505165048115448573991046706252941577347310588485681859735119748600777820653691263822886659716044406736384082156649543083411035882327894721230842159376827027141521779896364911136917696679575586637729313925105052323836892070219620334021433931279796693131313956206973954851609082640096329721898766385994199599424415214178424187380573014099285541358342323024341776197271107507146218301288149186966361262587482912301461653122654982289663077089356828901828299510361312137603745127756577734859844465268071306382071179314472662314133499688018567538212259145186334477740194848615597917551448977750994767757633741549935287312413120060341550003895730858362741523001520922572417112600980488191096198267685590166702121757023018299066943466316161183643968272874049095020573042466914444037401354532667948426648977161726378855276405450858500335560843517261898039051763328216139418158809531405916865056159211519362933686667970134288454224347695542027183370697755222642444920656391371212156402867512848529545232193970682207700024214212616578817832472744727422144335999809420072962146572135737340075445392741162752755362141297683104209216068457672306926206010891961330599984416990085805873541898073734714507771568983520776102619240991297272260624751006094763849521263305152130218420385259947177850092599682420611618766410581256972629546156266278823465940046029220598221630381592466077876119078585707283733181801370709173961290868919232878048436760797930190876666194775099735617958343657485581519738456621222498650187635994301252742116697450546911693772877630180147145114708776895210444506014895678172469469477533878423205585913260234176863999336143151764036341217119952965850852612249947014547928398419922564194345939478760975022846867879078638321016268335835098547126926423422497620724891468119621281621988907709517562679483884268264246190342031352830126973865903561487681238297281561215381453678649082685087422021689345037561245415251655980005139243727630395696812856708645889356343355926627037942684006417988983817386786580576187465274751883712250741402103613654372033895834008356387636591968192924607574034831801269585930545710107791803193586888209176943528323239306649178975571670194922903000757443277630718455931365115311419871513264463395143313829193788307485366168813006107288178243358369464735575356120393498384783900142444749032473773954905702431031464312860233383675705405000994535633441692259211433759417854189107626641249119943621508821679811432770744670938700406850895505616733711978986981109168888120029703264582232009988347461622819334887332884796074440105522338089095798754675327867309271668468132810608184383232256163569850398896010939840595852556358330591494838971197423639439074761237251652439993104215552753033640392513146880093327991172941573155987339106843081621765316338555472183492391744032053320967366189366198956013992326503344486981109285302187552287858842386374554192617676610129158711017787889921656315462995092066376917617868501070291785711141317068102820468119680473527119862017933288751836642276660710436396644534508581506148844653015300769550696879238516444608990827736630891532995512118303848425469876992389874073279699054190180813553565214256439403931009352827019380329182407447899662598066851320958397116032370370496737485596022566590317667291996209857799870145674403744386918689545081115082931515918687100067451256336455896913883282895892006223781358416362812280078565806845000728048165217134889193752103276555809731632958327908501658431066187518600106408970371285987980983199868396025062992827622803416642639015563802690433932975187562345605659834044736750799192289390658864601297010668530433427595512127990799930075927234470032256189911014196976918140406792721271553030425056564778212059073413818477536331978293180928072801170609938114255310953001288334465145588809210685780084431631940476324570208731483991011587299818728141144996581140308503626913009978019911503966640785280783356537792923448366383552832676301987108120362513646681083550342286514660555842462898277471347513630467963968231372242245058357365132800536168930692705314661244597953851759715094647637799891517019402299017220455776017792880982814554323247352746621799435613493333091122213911077670215106705027798488235396750940573786946601394856368910941051846782231937666893146202528972855314880251354900524105245200429397026134598227325908631682554972340660722836194101359191676263818285535635744383665829741210955730253712326126634061526470104751521878173490637913102184090655983023238952103978082445108446700815267303342637087336001121485282968885445262006915241041038281308907085713755593994043515468454439691545257093873922466758356744817605065583861466153164652213412506116364637860456527868894673059842065708578861673519233552728947094241681884206273031626923935852848861250771010517113723749860732374660397360529677423708441071153935398039825916799596720774752723702326987142036083652371359408446511460352992450393844473247751103862193741580539654939960890635901404081811389974220671900690695476893697389377501261456901151229022315293173587103844086775999456085247794478748706405318785052961166047576608649194768647509462226414500759877693338915899644759470328862601988550682759536639976136816309112174160407425310614221020283507696708233568069721550935611758696180815832295050486951742143300324135873984639749672012924117712951752263775025333011278561557619276308929214557321388537044150571516191490804558432546737853724967679692109847996582767855948652658200561186035420099165285419388694991709655772130446518824845417796243165439512492664679714831327437460949182523604392374013838954199479863018824515556170378760357596441699303000023046027950575350426779879611263239334402856546950407987518158367585981277947411060300524839793628901021475313089996569248638974767625601482825529820008661825715565189093623360069074141180735288965669983175080832422840260918524579058179510068002212699572055525493657934318409377957404599591824630438959968048983324751693750738010826720388404047977660981191534308634206941647599251847651444333933745382359872522366681584032345916270717294070768711066803285102636126289027125272355416946629967170590711437860024024163723093935322777931347415242733481973398270464566217780730004353241077742472857169333510276161165235966959423245977220503708520396243208379870722686850781299762994610084133529592382011976368344442737119592379021022612241538748084999381182561329785554244863888246233833814751340673107629230805736149299968507738036765591050576290074810972572674703209841063939986803364138196205458188845568069433279911036274864556147413716694414853891944735284833066080538942938739974856220391423661321835657508639717901582855269182405394035383591178499036803473703641692435281947218032502872213328737310969679261696737809495238251412671315365027744298324790459895303422000323536226668234072426374679645735636767311587281770493607833355369717248576560333434144825869068850430143190252438953836910209967365559699281668804107082609544914550697425024356794454558533049840584338506327752020365522951987275945901274707375236447343775411004681269468357569028045668466600885791708199544455535497263998972945278647011325566459711448903314553251269123834571521311590484663265739393404042234967007486511057350696487530713423919521908808250632990264098855761577566831707308581993886166276741505526689741148489316704248268524987058472843226715741830255153902216893764552273025852571635276532255398610836758749909844964712957723317018562175739078838527430136896066219612814668784406615353338102583348663442186363949691828593022573796244611920613342739231678747031886012566468154576270440037225942608568531210021588206868216133117666161305232350820480899221822388012577468433951628257434750388564557205485925866671862515067768303354385699964196127183770170486556360504169266197247396566130154114062545205453515262332698229883648154054203568014634712686352233421848059416935388025214469413669892508440842374423951607919510670347466211261040755909565586619960831331602088019949692795077854710097600963368380303404097264763412563857557995720519279072647374191840773896561391848361665170856176930368165377229792964280773205145821252391332029337912355649439744456011997845688947872249325349434611475591217439672840970718392387347861675659222226328611469557367240085736113977382240594572804111327127802514857277422388944416138204608687307416903504426111684525943116344908926032211560697773376790705418770514315270337949037322177704561696410813068912505409956385089664566766849618483963971224763435861689268261128185600291957670261187697593479163059132294857480527364687044647276813580469324110313544353529222126319229749962882462053112374972012695062731770794830103816497098333895175019433605456852764812841051610519377831459973551281664064021573884337764549089646480619645347631293908161408929010371609543357034252970870825776394014395543830332716606572853463535890940909334508178583881508070208176473000668683088615385622741417152991664059951743704369695363426061125945145482277713068513107871433653123955928411108543686728658621430278856212366243333587109475744945690487877249937279665124178909581779689095641892628458982556335663287662225988210377433288047496591929785497172143531210217813161884025524283039239857498930487481573042925841218226242448193599666042230440283935782733763311237429650740472141223147158356749318058672119932236123038785945126321301231926380040758880986764389161486277850009640590076061691628516768880828965122027156769485108957207057494734821845386957909769807426967335153844871002703408622023385814075550527552907784729694745945858537310923468026182168696154053560107874725068341341214741858322338827641254314390019556860840388865470317755595708528967459025321118231343681835328074295751137683294432481792032817969966135813240358907509595553397735843276106756673766095343957357480302016584791192581365624712570126185078564185009193323385871982514875838789777775267166074125825612914514893251734102208006514396318156387834012587625155671293202438403982542714594409963850950301818226166247906250267639244629402647792647454565091400087404577409310121061063716227643585026785976674614923087592686819640043204884107189277525314541342756046517008466052585394602295228474370647439658252418683582725804781436572884473810908034492737197756393139393152956600742317429004850063770392805915607273535958029342807393637025341960556459844525910760489126374173649697675861093022525175861925843793674381688000342353768874658394607700092523959048563508765087209825648357087989755853292999942929957672839439730945547808050473389423632085028433997234108036184547894681903560858880448490377550438545921400261441156860820209076407560568635771452783914053802751205216955824364229774053808415528858027533461074644354470056845729723246897610756928902259758217466259746134042436657966748939074645772990960955019226508754398711362431400106787763160264992046867197092378578700453152986767297517355601699432396237310164801157741557871898837647881381717607487444114539147557136687696140459227991591106356612449920339725327584052408238835360852300605042549374310820430636762031693435840323519011512721983996399135657095996406825981213294042917990508242990284870174547875581294896188384734803909495776105916913982020262799112686672606916443505464371307433661842684919138195917909814263792204072190402413671869127922246553592470403519592579985279034968502080787619147617211213724797699691782333952713224795377533466317255074942503531803769577735644817648946119354627519736417877681237887184357232134974315509391240103760530015812998581010870814079374830218231093434283941438362467777064198891526017150381503312882566083047965471004738915519639451719408060864458129516662271066035500537067121909311845918085188625604422703015375248928748631980811982547421793630928195276215972226002541536845567596801495923423217144862464929536524033268377555758447419525132527739480073445741894724530474153369052213504956603012012987184317349110271157191689110116172717890086578924380140759691484180703775213549760333734586741162768438515183555854186725583010409373228589044048660885982181513672381871678937715895152511856625426656843131561530307602873254628728304720992475172971532005024206322841495212607186575644669219277882471885124584398377505802436409820935280588626635816946913554424567008934120842831283536192154988410968949892476284081992531017800572634043385107349476702706777792603132048900150936057421870309842288613699158256004076661891116777014380630172633814674607398830780891944944185451344612590097510151890366271868771496227523133417848849814243863385492439590198156654454734195910702775655502546355425595943168115407379216500517075377038240017269049486026136977472522771811913928979474528348832778096324344462287951081893058650297349390066054722568347330181162946473555071962685661441631499785262789642173337487140572718480891536067223280323095563379423435574103415771849750698474627569338602471279616070584004405185360079448986129989865540523990620894177317518407313346064777318434948815719652454733765527187027464948291464924800785733835307233332873137671273921898847988192079636267741929183058479328483535124391841550260531222819430980249368152110197784175684886480494017738354986472406073551297788666458285946702200640834068205048037275216663325976365029876017137134559495785643238441776352543129697397464889512456284007344245877895965874246013833522002556873269367058506261506697755929712536535703703123956268113551801135448297462905761621950288889258343772395578794791265788243547786824841721225388670093539187663000775245702924361441668896328845280090076776469896263358633339498754100204658369526061698123074505377598263134765779832049272971059395989139413755741105989081926204843659181472858936073965900355036165041996051359421390864347898718533213307186772063686318941439241091384747153363486786886015805600345571369418625609976688915781835666080412039299590201283821873776176114804497484603757091957884720731472975187932252428758396631080744661615280880690036117960979798736872300420125795728924452324767475076581782206562692080430492336449781124092872210850343762292688569619738701772381065622562283667894210389228287862041202243095528287328596509898137361404862782471687032726222174500734527829432980033699065844036603316979508681295097688303493200369246540289016716179236292044983513457827764696180422885791756630824879058593358139649072554304082702114603147957001578286272363359316762635039906001019073249036882774157076136631847561592595130245134551264225236304386466398502437002086198783805541502868349336262283275090303651908634819748804699302074803501135015664032949252580600831301405112352937668870799150804599450320950190832934927629197561824925253113774205674026677306456386448954282150323878048649572477377542748565367779816526574862536534672568513946134892626912946004553718004097556857720727151725057741607524265206024660953861475289842170660676540263031005403671160630012901281839173982093699326152070982802504391138486380682951510537898521175431006779346422302223117144924576562237925242155825891185589740969842395124924869262746997038181082978571176197522003528628031985524774305792098398042631896676022505331209765533837023663302527123016105534999187511660100230285537724317034298790491679640480203509324790832991575540695445492190566379289136851725220366350195929446399962677647433272582074803816876730944991496212994522399713289345488151503031551330073210268214432288453578397320361519552721099443158121682569065398876203876452376068887507844674521812296250927916473629512403241300479196059176321790435253059467736492246777639744319506503181077168212848377003503562210268619086880321944453059895135990077801173539058540177415226663365695456387551108641441974222184840011753664761221149272342372401810410399584563483528741018834255933286189299052947646595854228386723067967525796504605351178665784230101182372199359869386143189585327856720197889885485393391533566892527593081661156383486745029783407960438700133703681841895987081589714145712402160476644549883010085017751372945033632107788352941000871169284595288913675058853102367891173367260572725219323299038673574949188932149231705329523292053644367478996537322559060821999845662091149178026010349709838130051018747414952331274460974938056471604701886684685394130330361958497074972850037075196595171969032483032233834595413648706825014521953614249235836861685699743914623841432831508637660759361447690592487474763827581986677112889927175248673805063728397171106585923302705756512959204653862511804082238771021168861042189980301215194229867728171515519278828040611666092639669208662349075173623666989639629398505785334386970520960555944190116359615008660578635436070259155475314918136167703987488847146752296319139464836667342118387875090548342379796548806048052644931102446427122447128893280736071494908898466349198755202728676013665143415690189676611814913918194517748316642164530127034384423375758598312024514711765777552504225487841983879263162502342567362846439478117348545306494779226906757928641070959195890931000626892066288633797874481813944197630978816601566873426982946277497472448692291817405842324412459832535023090130401196599802139908548335177525412546142054319546749396293440042747247484993466908509966856950235361255964428151882142221191679721791328554340353288955155474128771612705218363091765799448276503597971153109636465988483086992159782499150223900264669699273389081087738319920206262683936628895118915107731659022129868903098680079093676433961781302862071686827867988798110836748383975194991891773340752440472215520354956363889960994185802378189740178063689433176179952567110270060504435886693841287774665897132314223212724205004494320680479193821997832338454636284926276557712247321809291320551527879856089061969937563842262151713321592822141316580685718078384901666679310621231233155536479153370337920620984762574149237651717430549870901074479775377080651602319490520017781498659743894991031338993632791836140169041509467559733961364603427492065357636036514273712338146652286825083853931272459274769381508031529128763594526987968285740494259098830925518684979445326890387965828353157659478018826619365908282718468350466613680162265084527847565159711737983887843774788723670727595597888614234092640600803645349694630280103502928845305533314234264675901266209129517481151941878587277360838248752038205323385708350310794661452435376987029668724648748445718421173938274986759603334997150650877234130868854173703626162429947351266876822363702278369219370882090632315879641507643893175760224249919757109432525693632622581992890054989022768142170392930371525969191986411454588988073029895882109241400694240523623884940422933436504182039940964075774884150304535854079319202424019950889660255453134818295413027781127160658806500430405812358683684199041642404286477456254438688978617532094176054035355369036858480146168965909714705571694293446862970622062307193424742688059407321035261492929060588487809547569297802895496652839133785987490198528941867646638261555306879790589587453104928393909743754204878236054873563438322302917503240071288090831232065295377865638508469919689411790308735670671577885602412771630762138145400886756519619262210392076747899908515357510856274749435708875669180705308312940294395979224819082268100077208520475519058037033636094685479208934931770097276735622605435340201373430215548772197193207829463746942486803385947066806367631122621246029081523029531249405122681081033705805930113237654802527817697691328969630387922578797903534250566694292158408507353938876035557185753030213016544744202387186455151678471966434800468672376257668360967008530363259426441754609776524234935973509459325581817839570076616969917697505574181394235538077714482064216664411626827867280968794450723823895073062734693394481909110997336272090956884552164159873411329589289978743929884986085499236705263078424845294255392418077093913400362972005287563169416850092084490635963040265906952781328232356659724862124321635039366281302763245740510657967064213205347949362354210783728477791667986891913976225366225344827628699264002467186894517635870012004502598443206117537757911824965148405813512583019675392918614792120654465758274343360732439616697953921364958903118062831315041178823119229386838936971245665861214054927044276212786096050091320297869992554289842590763918752185789938062656894582701161994474185163564715492187671094932136827225425214207819886202219793640477845433574745482932173597656568415810446685605454779182324836955275988053893688090829243128728597787286288200446646934064369592565697379102566157885474203493721169221058021761199037506308915019241650667857775465085521081353626096904403036615164353901608682272458395956866495352316261322706676536608562486510690993145512166013568867853183175839079034391691925032147095498044305946106415422041880532792789933211423246014499200595196721233109448516301940435142275869798017492906192188018882818595106815012361123657702201062209756090594941902525421912477656346787011988349587050733403417856221989522999800822713086185753680188210253714041153872160577103747605704615016433240249119744610409701370078873469711771492447225891625299334770390041436058819898361832109347660600820114448960619463507528072290483265251236761663497885228385974028885389328143314557621185144479508543338289022390571462736265665531565168030197125188883785126604345610692545872989026255453182536286226251333956539172669391827583248782719409785421229354095496810526743648158115824971794646672329038584753451497720980287433539641295498371930613936731081201128970689784243466992609681564736473445927567185900570756894661409055084173233374305617310297060954208585149729494856741789201817095811778588137615957048038044145327956297498613784267325629460019797014605677461504103581328945588646659546490919291934553023994851562705392538958473828037931404855896049974606020675708342017559358770976372731838035191542296712118355810609212984635115843097037333694486258638320685152864006951256347741738376656657557595819602252986858668963678651675597011192247827159768692234478612354705143934709510621184770450607772299554732097837414432061882576840552671913603003601455960303227448319247373807230815684204124619025793265868081469713880863071943879602792789540134082132352165116826524770525082943050695442825932577081422959558607006358705591226947553703191862178366325368909989839960727828391253212173586560727872387919355646742565816717242967893167612079702859357777827579336095296327513078520281928508015161930142845845377250548875410572501143025962287868882788520684707822160545055709006987180235162253769903575015637689541725994905104936512690536735886103161597132660692413495512035168309970041679172008865028257697795539982973557408231611791306007888925519712759444462368750312919733006610883460729092953514127393041892374083758717449899021193283429585834830188601085773552304357526166820718459236282107071038104038186408474657121509486768477338380561914949184693712612533810767820288249798223840293255694103720288281538284309878265880224455604235116804575411337261319633635962901172107457737444260350709357578307729019031618684387511334272823893815062811263681233349314240406621889361049360516846815168316084040655714002528995006765700577918064286550296784364077034487823829811090049593819617157793151948433478142765844036252439723880152133370201946288653774428877437974427147638584320559521323650146456019296984142013937202097280084459294199493074655994313162506238628575599152494429460230234633594684589981911711354310396765292835840190079373364813234881079738187021262783817990411126072024588625016721591407473646768913673360095567905634114638781736244176079491401758438029939698088429056250188561596932717236585998716396977080807619288999609243673996553666419279703122456787866759604359979522443589207690108487894151843119428341961905941798652403382324999920127606473984693280194220730003574411677873745073283349912431625415897219923031031421539728638588859046079051659482990587255511022313885637648751405116367401991790737123358468955855652842665361965227453448421644368098882608855340519418787564445622051775688687680179140240498639853614755697142539542335351436154811895143772484412866330455850017757737632011464476904862055053220717186874339416605326923016996099079272296237820735001108653469617066207673335730469510722549477682172441144294741879775799848825801566358690588881858440472880623566065800700422952217475747159567189219347938360812448364936517118068232193017893910648181858584840114254670585397827853689111184102284916002823702554416528477324527477868496080529902476570585267263754242585702842139840665013729937439214507014732915187149767708441858277584715151239673781082213061441539863178573945922166852461260071729544688374369305392065157352040599014714647411899611008684026833644581127607684301414808791562199744957556459453789947769975677118215319133899106542538472495766340319193681556018505062309129270018799777020894557519658855090049285340277673178804505875297866058471629680424871935429760960685145811955729878208880989920283739245284367987583869437575577092786291479430810422058868259814939112455256725606526355721632991266328710497760283264893130890532878683908157661677313409547735919065709340425254387674729941778339984766026777973073892825998844576080586147664065346170848129123944229600768172204281712417514693742970262847154941118422135607601706661594379406875313694112929371617770859428516460347739875971356174641350360821187951147796277986921950502045199620932923479091326351561340614177749247661190335592555326826374463117071830139746287745298239710338928171844142063592494724089488830628279608099048401304397834293074953093838872110854111842777373912633060205749560320409235465276997125912635072792268925154372617275299207173006420564739266609608260263425378533208145177466553313539017491021750084329048571790256457135888838415158199166916577097089897952841915949024272235188532916315712679505327637515445311062525607851993573400522772296295921990282907546878444508906605975853530706827461222268628369480331160724598214979471362919010673926762877839923896611678348865907338115763761459423343212295818170880449901998095029795580959150994384307926555542334550016300233713746867846144332941109915188704407127856475588923325790007523910021084120099958939948569421153337548814416997003210292570974186672854779469301929247404743091318346966982664064794324006456123792887400889585372149024417466618620940027898058597864711101707949777354169445618685855017156971436672493462575339518238003418152369392189534225720894965704202795777745149065163654847756794323587175591791058898957526362269248876617143892827921475799617824261048437896284833597468061552577843864217065551296749098105774768587408963814754721204871113334670241415036860029653084188755432038727858760819804703930610592937542154909920186839327750582416515005697433211874522690767851166513165940355696466465727015756714614878251864612264613379430234121180630808185312169683387070141408098417121730921790615727746965920581349313235026838009744914754851346336204465356583063550690217420446556126365023975141417678359857020272582385654578787145231093690248405947090460677096636269388109534707396255213492909795986068389866162041950069015681958754377831962588756119385397864034484570818421858638937989874514393689786614449247660546039380006532696071144375645656659689400375183929106780204073902460151306736017370514418919485794049492617972884078471732349630093600446477391825930445442040371616971780754945209426339827965604246477210810404645291657164589604554122759899299714527348761737510972480483559755513337437179726615487375553606573581499770662465611902718404004957931112004056333279536561023802716618536770856959793792680116380017630205863386676745568352000777898780058722540468253964813001584919238004787113681364868261150669939972907670335639065331712954530534551412972110291617359711420658511757899811642942646164849405300629135666472671516529773796598870931010687025575294691922133526618117086007975415251527099819838734450954475390133700026891706657178941225348397004071668290025728504147489300853760654956587716002604168887256372852808903289578052078699008352089403722854800095946734299540246236262725493984144162728445869289576676935862902956103376424723692419394435300479152267054923914553026863851810595680313319321963773892957670298682464429347210175268193458879215660342808740970713332795213349441995303692142903995285435617191171809730896572381850686710562738876371727702567900003872272571860249379677065079911101857886143379932517121658932633845120760597767806167812884780834737005801782341374913618777934650260610168168741261243137173049735448036328822493737807642755138106165882766150787599356667929527099925000660544912655722269740424308482649358265045849147822335656964511419361825360667217350195727013819069591031481094194751465179794220415712172816841337435498282319788936211395607505335494351725080995340325409423924263016485048931515920014350615933021268687356987732223905521007108297290436588751507040456764408196787294301508285653145582561243777650905385544064528956460736809901905945260865204948978809117658656012375346462896015624420694325730438938265370365712532538987745815416360792717158293252308903765420512354138720048591923473328260257265564936553619253590848708886692411644072066851249126902395750475803082917306486641262483264142697394004414930784950028674789305250525290415129490793538826481078092566943600696626513884064121948260363745622691593956573295078648614384658747943113322187096808889689610481816032582190963546898300924921183967186091466782394304187306487649904244196999457023522674891350234526487422598482322960947999633244237420857593877093855668865450927515303343533567173837118005537298036171654603979030429965814313967559207248978078137797593447573336214732933848926913420449318406215038857419636179692162175193422968583897874992088063798043391755687966534048986561347745643330416729585185640949370598477734184942334906705112140633266532115436243801539297028537621122897821984632437589460502715604223481165070372538396095671625947965931232245291029154373728529195699024031531397865035624622510481977097495947730283789709826088373285066520484018082680154056051826092219373410551056445399323377600991552959208359046884760040669429902643319017211061989982003645147465231071280251064994321471529797995450468185945499634497648877664363405107560144621820754447041953501829215694003026809769325546535333068637882081454970569678990785566821420100572749242308482916965056707530863510598691516771164152246938837746207681724841991759696193883452055803331436786807589941965801916513729115865868813252510433575082379856727155770207142480342885211223127040870049146249165216168295390971927755918804728247093002207475624697516177988387009939157566147290872395603925173172742999627147876587929955280936048723627305051419755612543662500241555226986587363943759613254469962227817884733834713329984042370269699021429340028626429293912718910883741196396064489883372801954845728911802568603902820342061059974298551134559116236658289440473154056817421323423172896705762892570475671829587599115423286786580595011169253806385533505201453016471520239468214813108077061980380673314267800101880524724301314598455708867300179590872875437801573666028110538427684942224382476636118131421340758110054494983733996020428373376360746406610281253894810147824516885807033657911216751126947041698479828370336817369239402802469599496108976769589934478028369666958957548440755403298055339588092020709345893838642311187039012458355050469070827323431054425659219938408866876750231429968309565011915525836859889505460849516068253397897824323828246529558494842002318864897279638350548039314982176311717569127490799145675623968247456053737812599577764142119511127101121426155165700162506210202225026360365579574208104829281431276340254280608371519256913393604200392680920840260263059874589792006955046624924732921908417157642187361113778653892808751697573976173595726112108402802226093522098302323300969869170653833972504499680090509883577931631268817150791982678534620227166015003163003291125225669007133554334157040989163201363056049737081165906823194703388162100130249989049958080215763637882659440328244693247782746128704754295901155024691147553642400474988078112901058251027289492479685335539707100077120062795900927745115219739380184760904515457350002844709021676673925854680941906540600885213010310086918019777826098875755135884895326442260024016766972844600779226585759612195957538668094329776966832149566329735008200433824774412415237185956308132265102014734649795487408784713213841509578569257915898511100036803462024341876538553898303093561342576079680435147055591298056127852724415215513198664208462940248510003506692365654117400709500516238525842841254345780987520679982438977254997100817045677927080361506304110669485921312939530783020308250614770770326558334351884800059108785067249797365673286876137835967298898894902718161745363919580428560682427212770367223865759404746901045684818564303640641297612320397370007908100200902459382306305750124358314603833402468984400940676652030539623908789702473970390291236922620538058449227908910958080902626053269930924316234174735218326394134039193803471048471738955028055342610729727935167356922311792268560554489473145731256147768909142087171327558385006731592474206718118589855574153735456941185927440840217934857270161280952402526053475406148913553642299672626705332350496932433580559787230143341404514076754779448280270518263452464973138841750180253039073581830670230493020016227879097933854964927142369483207010844604305538514923017722813754840469342118403702040782740553232373708917386525117537911082903693846608446238127961276332262574442415581007867775395118311318866168755310620735175249426940374140727058272071968842067957190675034946310337605794886992811118943726474779565733254483840130568863658588230197634675242177004761300936339272061055723730447468254010018682623673689955822192172158446602007073345574510212303388214132734647686479923805835136181182661004285558916958250886008855062811107154984473307252956269800538234818036759466586910282413523024959817763965052328031718825996080590656261241083594308056636785936320770935483310877930507562649859159789031454781088435014152547142504144801857345760898351484991452484431270720674645175653961048244667883843693649607046611111058668727349327266616915041800443902006391516481924834009835839831674223428033575837720970529086679790164742974924919733709626224423043096482256310006946955568385767710828783016809913072165973554709080068743190346824314915210142922114235322150465792922165165397403140051241470288376585167481116257275672501551808079633502564143335892652858148518553679940944878320119537781825309531085651457706647309414101707974016070044065392266040015343855854483243545587609645896575178415368879090041940671559269989034523561304380376700724581820447056767817868691717267984885087810741662881389591395096708367298677414418876790933167095127307755230918720495814902266747793329996687747349041295426962231785578578450320403902266396092959687685962803736060945615275919905249661805787269868785986655360468827448623527273248621350988735945140986434761006468248436456481024427507891543500830714366377738221889035153872206690511747225474270846201544931541300019510458598430417177466655622682301842238147753773101708681327110812239634957365221483287491717311679754824948644489559957142930540987841682488583220959907687178601487713447233783473759466454354182448121812944461867436451734555699189147054573433092403987888810333756698882853748851271589216950727667645407257316681348865249820502738332387901005793082385297159600929303011920677698240121181386939727823104897536620386731544182955403694201683030347102218673987578363033202993718770131682474719892915919519067558760161189969674252538346794506401932424005940437405903271292594656313530427729405979299196920105026627371106441504061153288599424296948874158257089514819417489601814519227894110818187575667893352926749793003484505585222192430994980723476245771398233034765596221156197204099117305455560593658710605827320998444272596305322725147942021974543549644292053475989146461849330916572304865050785250883299764600875415919810368458765046647351946157520795913704516069317464304604679135163944307974803114498029740609068623869809197848197777733380998311691293603145272204695882021197157567910535707079980140579365073229175820704873148939583815011868437060128829596025222551202035697939278875512877058564901108017249721656673790634600609145996533127049987032838456901429135621303584656206880375205222723342684473282404329390378536764520640627334067421810297112989393963004906487690509515830575798708403060018369703468493700640435404898064894830424711263515552865587168483354170945451097607312962998782537980347915013444782892211052745102364232282861713793035342203154075907543247278029014593412680463357367320292676246472215199154329007682355353136750554753953563386664024613443713395488361098696774103686542282371220935611771831395874848137333313683425435763118045140619026024231024265426769545096676658830176730175481389924366681830805286470981946882968618457699133597456010034592168449431766932332491735044728747306025202812507692048915388505925980575145219615747103684733328162438685776380756282341014747072134916765084866699275615023171394918191585948258402563524074856088583266521382289183927535873602573939352415158853770238768899781643778030145643502704760112931110485947502837936541369729287158270452420170440930976443909477634511119145321068205464857127517278218923386885172065294549670588594768279959178341547431406247463812032387342984694131928288672682462218381477316935043312925538553442890654026448718068178508125690132084561985534370539117512687908948906917423671253093944352459683551926114749770596288587690566230482756778100233545236086291681056392002416574178352511883905868618422156257686789015739840301075131839590379638353983214133064551994370055096235029188487411081380443707312202328801624997712412667153940967135142620333704486965952358356470337428954619340972477375447612885197139717176814966757875965362161391856516593810543637250895964917313607097215956865675246799405443093172597320884549952277103053242305125507865024153957075315509914896037741336829670394142856474236250123003449189317890398422339049602966079571682931172199887165718974714734216765210402893732976571238823996408497385602544989353462994501679336758882599295975122293688220661236429962496014303755462793914049956485061083383467641846018669999631150327457437333218768524929142462956583557990616393136447734355263695380831914863825038960461007286471078263126155268479722047336027152414426112572920951707288351128855647252144608616761752222109878055851267259229977666942688358263689160861289815802579969239315594551053313261564874186196274476781076229728955408677488882764439493622434576965058621496634302942006407971958545203271314683261406746731070341004591733971253580926551155277008670186293183120448797643715959316548955092962021079595910919271077546464318542779296758990115811796630831067369794770257089630875118584001722927287772926725629139528198306639450681570390012060842383179359224726647550399970916739876435272700641774688490312563101910709509129199982566455973641634997557181953260939830732127315468817616744694027607668260707939194603859087397508366929345669160161298609074577414757910523096429116703239346791820142517442225859286562617031135819538205313082130368801265679590413999954615580919746283088747657248372211897347347196314723579512892842092599954563439128631089477949115880408859775066551798634664018185188631915953890960669132664070027539785191245906283120980641514389133787473016371168632872559061449002086995857082815869141051350508861998186928110423786238696674771396477891200812422110233853704268996211646258256522829261277554775778101297487548016612496947055321306714864255176940446646709697530287021596600438495520638148790338068996430293670630600813897060143967159564052023091183816246135341432458022572943035913410920938859638811860874940239446187139785550366537298251974368543753201873109635952468020947157838437472769684485347880769185500224037441531992173956535140208627254154011673156836545188194208478497640959792907056803526730727002781390968193901413029985382116625508740504436110373094337397102547888147869588895950194182293496016449768909252299106910644104810335523804609457277237120238135550302284679928777977695646405253976971970316728287236204525674578804605957414877413487275609639814232697386794515162938501554565505451967446424753085140928279837153367012259709037153379022474724243185216971848438084442917274888014834240888892652416675772583812778089632820683735008606974254941386084288253032854055411058793454893625078682234814924240754577043423039481455887845863064709366488928915379365001056383649379780071711845052169374147922287774231946557237406435720580818597644244529741698097838255703701036191206247946868101616138027830265595793081505347045787929259730791236196444968778205168641507609129944844145626583613182915428741384564307953720745202777431515157483798599248655805320355933194348257650747355742704476030081503458315437742156764253537501155400211483119176843972354187511975355638529760383050135248743215708582536953538922624057599869564600822975201098822145899372037874402248033417428777654099169457464671140345145836386663890146295607712211582439486775007011516329163081401148701054373438848529482991756525881339952113641735772500472481567012252186080654645414458985518244347558365117867442866442452534228102523585261756776308250841149614455941745073960986849090551221107820610025181932724335507387222209762925955948265203743066313212713332662008937298561656025670198189732015360005512129744318260160133456796125777058826590006518217627439865575535390459763779222359154979280093514270983779784135451336188647768868926874835081165597183362114280860774531287663899510493244894516263232948466072172497295824782900330007211998628148868094011010405825588246790382678078919857410433227342565065759795547124014414523915056042826100198207391252737317753497652134625312685263368110366886825257471728947408717265391205241498290107182906648994262679069102091080155969581756322645392776461111716309087702816281730449278876069998834252038370754174132419889649886346419379872250089672877171707389220838540565947936714123653966740727926204969107209559508671844539888774835920400015154362056527030185666665781829921645984006599610633528283820783728016382633693112482312028545795678927247182451556393192845458336575851878415281711432370490297600549039211484059726607028842634926988714170790896211569534661264220067014794756087791346844643581519097122408845054327804217786241091926587216890861408665140652314516810744472846445954814537791951255426800920385594663288251828867629221049346580172992899272309853871593972849690611459820475174146091388811896824376829410681631000211482227784781459266477784391586642798211099130116132169594036412398563379325967830568292187598252157852467852788997506593580705775257976671705531332030632191440474827368100298587675488945703971281910655869529542861940169699022376607909264292283074965421219220635018174294090430956242562723256339679320505923312384832863151542470974171220410750285189929000865118101318259639244040491499326289253556159274334365800293459234540563143116094298584407824191157201881055675475783698726648799768319910601857067440547061357981699776470191000707341619140475013722334397666083886519385243304598100018096309871344678868101827311632059380742860201349390839425511823863943122054224451359431003099017747206075568548116060553323064064633182660639709058004077310734143665323501362818597039249467625564934089931877729302610279373260541075175162767380829282514992377793565774378839726397735015590713222789228410199755182448342954116198987802731574694107081497037662605594760523228310302474488136759226266751163340518480272635877366552069761653517603838754064604330934060361832989173062908472569897489108724176037031849419625636803080505646076839779850855769406386611888011621552151760494212077830806283665590574344970262889797541976062391582180574265180939484060256754049516969020495178919764760293722943901078142421476911857782627648516769402391081525254679410476294418182463467133555489417614087243009670799335590656318208738987340237379493667294481051535531147856510528414975918996647094791824812567449354056315567453235185184894813970201799864342983405456713181947012342644890693578417769435157423809441784979216651092277575887646565754711489243608086987037933471761640099836967574307277855933602683431902099190615569367099600715148265035314905846075110000339850474981169439836904117872923405649787088628814489171528049061807086165951023649937854958125054258899001724614468834759125200701752590227595730051374538178063647863543542380512694194474537140315721268503428626322614298249357530889861940568108189806262394842239442793691573024586640964487986455304045105962131705843836518064202333670481916651487343056604916770206163742172381358420555045229751832838317514577636427040017843335836459018095914394186667434455130209876739550338729746091417223871300120044448785871490056297467447766965478024546610181938086555901119852999667613082369604647992181299126350376213682653077751582439451417249078518247129046123998629929506851769268267109406579272860928473175995304930846750517979984366808402866397795366351950409177995297353592690667973885522651860267885343484925804810923043639028994151353574881059300491522942781530435298690989362839265380514092884844345642562560986937969784568498763135769337618868589379658651136442433742686985546133427404928780117558135090764948614023916822823105306090113275975372699057661520295535630012719053430740132012569987461444796084834799658458283565921889978279183719516126458511031362045471358356872217760932529441215909245969495334338872972302996515467474236963505681361630389389932259843884966736198995041748657276842759938171695493461989133721191918851374383347230147707050535891181108194873378340281071394603970308002879994518457269369066457478269194862136802249713272770342023992553336158503253818587575151646022912962821118506919316228018887375691110830787730405999242576988058603457355178920813566973253002907048814828584023696729735891067166036082810261432636968460466921254566271739223313689572684023873779107425640133015610858983696827974977918065034898807249186346215940366050874627806999997907207791552740441475139322115138122859808110981193560898000183734577433642043087019739553921049662571742177672205537950474789582299705493262417986884787336826753297086750385843388241498996602440068019665769554548593866793153276488892129045786317198582745867232583003095885784851383063814508734137748011909227280327729891782478651916046144901282242812193535285169810644390677974192590562198250809616067919661984861299266572798336297514298264052715332299888666114971883591479879453578425596460185046767631275311058495242919596443733451604230880512288174040500914059552175098611593142962491921140473468187678382636655975534718625381247510015526296855517071728921237532700415001765271435067293768649913640498019883819848991031655552373309942450151265954467646911741389942631039571812910649639068686356952860320839333409610268234506529443107317473738392073166574655031611984443398579600735383785901913491064869681814572134761520813239104575333828435840384075583928818655516068458224865186691871590278626466547283548124065195711636684839587522865032437636740866730838863786118322204488444023234591219691117073565434018975513162603915925639829255703295311479211977091754999066094784765914142009877129512653235860033727099626763465643077632180607044558763464355732765481170553580493876089517889058328435491439554901606307981798781091675080524743804482708248336717228248441082853226575627977582120706134486751480326336470924627497565819829687010438641223093280151330307596747553518851470335389933411693878658448386159869289181641532538596496879498300502349013860780769330672553043025993818961756124205074001482753359972273417324135543400219243106822493297993700441056865243784100839967888715918658001876136118110191757542003479376961265575754419346477154569372634183250704697173848103120803162404917251321631146382518963386627122737797979749860573736092200821356547514659888507273686460310142640024197410280259066254281091863317157152151085587158602722325947130247326166913999142938777229356893085566956783067839136766641934302315327152028067854205564288305343586461099326865441801400297789734312920174304822214389179580088007940850000859217578384697677650008863474226609970799632199597150937738782847240901783631828456013009708709429756074675121218423536857232694275166665041786115451917323406041743123707227681718402141161497069274872260011157099332515341797903857779734674532171073080903846373790013844993584941440427749234076531612542668455313488513855877983339149701014594659774704946770506669354884386207405020433767108963426144510328561224345021584770520919737913266564472105174411113748698478826500547787731630960514587823687901442003356828762295864566519334948772461927284413476396107815343298958180048062216921313336275100841483131464246352322349398067741315706572847757889193727655910336497234829644103304854240066103059612380002665296298164668740069549496358879832167762125946381714186166626600773199074829287555552632321696773758449252471833504825365285365122009203623538358299394188419878497895016794377451559939672264185287915079181569714600350618626571776310013691230392505176511307391430175008018189512173339969658528838852005816037546904101591328399940019500880476626509965877918804303924101837007451420949108740126028382473483550572748713190244018075576910267771925721481116229726094497624814607534129426761531702751775982814445277496585054576753484104168709515636106525631322261643661551571560435354130261134953971862081993462212590989133476969976294381144808069731991944756274272364360257313661314075335555130788368484232688046196444210594267118130431256760084349807217065266539744475896054639924495079754217891092948613229516696584671908954166297585359616034559621102092534204202015816642043973597521559290573185019155465300335824349591298816019589663275184163764079334297600148346912524858677733740093552955759829912193560561985804440612960287566223661293444662502182944343127510797664859779975678828545298796631473280712758113255798494148458612527327015564946938807447327062327018752803609435774692194124799189939051262737793351319066062975901080987221507515375480481089477659770304264447410230959082826610709665629537245219918283613083706445399034324052081253015197681258003263527893821608702707638113567729463665573145102379506367095867533410502263445596922443864283434090743647698415228388685142526241208878747572075163534465690336751463492915193241924272282014196971886294982164303041709528699608474259302605226263197156332403163518807466430152965574092772060615365483708504359345786642131327700538001694901659288771036081747019008043199909444651064377618935108085504957676596691341769153384965472478122021487206554444662775993728225886888007387044874588746466444603696934584343992054547543857865464047138465210064545302703505518190085182871904703748757994094469000947295784259709748193809325815572954956266557898088711423464280771642149932576099727117983496136704945079556895023081162004910148486588415585568315882087260004859664150195520902132200100601091671869511482692789030231484982764779281767629512447569217878859300865499257039688480968324297795426581108383275836894747405074091953615723758003182802797950286655233085410808891837602728214867962941478225536816400077400146892440726343041730607723111151861605932954991976083685250225926955728446281422921099382501836179435230403756993644757270612340278051284964575330651323730137963799538987509258732456874510737925582702236479536430837691782441290732796193678986434521771538089990063260475234108173558132367957308766735169685905845412250179544068551782220652080342392382722889851841392318183118364017954140477767778812585197765634565164907507581009146163807087907955482949655378944851882701357201861139854727132325818738502353702723827059152370556610221359569813337320719577973695212893619446396113099427503141989457458004043775986787126069071427539208240899719943975630013712044711054353337856774417862792466074950148746768352682874601670542657846642578983224151388354105895999561890134665309441466816217841096864759601655217470445417741178758552891883933880903608990953834648006893825930411696940806189777475585101427523909964743048726761687507760284703138961347757341924461370950007615019812959343256255923918364468706564238171031355537624348808561523335702480521870203074703293412019255708829439273370414434117322130101383698728291179044197211222087487144830278489739201510489224635159774450408986613623854738415101907951255410516456709034266010877969267296923044389014275410051798357295951892530423267842393038059434464808189988092434323397639253741184651240209122537646821965552594016004645948264365379636200170565502246802161138635919580503885368179350323901832758530321408688890069204969549514412047941371011864346009335514349223984023457999314468718076783392559335733451730651411300676564226192575870870992247849937364140608210075927354859381435598084122851763701234884042733992140436658069872727008645921349702415574138526238256508430411947721009980837780121691011882733268298268385936320078811178036125049601598811604328909595454270479930678460989215634407062006924099230610499030874407752585182146103888792064927248775119977862229532306123413507737427883136831036538536018228813084743243540573251583216426754184695555685982905443748155294335024480518022783836287705054307627237714936544312264906851237654929342771056451364974759937007215471568354567274474630751456578880047776833150837078455584700559183944543943052830912037971320898293070037826098660158164217439032113903345667845718666150484832712951420645732537012002652870482650600396310550766900696473770708921666020809857476541284063954547025169401376797157224349295231378579311793002415264424703805136328346253841669691022109257988132839201415866762598908848762603769283534859576244044419042076743252382942583725765675579960452594566007449459373307055088343787353355372572443594162895186343565976322503504737415784193103844188006029611934800567904276833221302832829483350814000627436671094022467467531433543652770042441713407762259458227373322682747636122335976377448723158891716675986477221145678255887377778377631927007447880154698017961633186146074103366770431746553397067465701996186682953437535797115219779626727860020904189467800730530050102052859957746080377324643416566690295440877078542495826551444995344743687034767723868014448022529469797364154114494868673516332249433420480620416899683704640024498633246981496828734973856606268032530912729628114722493033604077566705120128623439482265915588290321849043485413706290553441968502542669329571905891057008512304778190205668738873187945059442767908694618295317311449828397365949808388359578551050373597748137442923142997300439298207725262115200819485286158628335866371759703496153707989376455165249813412930209413657719014239469941858633110179789022958308153185828129402694733380985177433935644519718619233004109557586590539568727130657212453004852955642879931457066749018225291940608242746334026473089129224437976129559975583612762463612829649548826686180955181060729496622375467409662233878341206838697957727078777841945518502330576997429240768742440385120442897279742156060431515095875775939783123785484820445501007088581419067842481775542501829642895035821963383920201144875995289066757690479077339923402756140644834377064265074689822601753468916396827936968477237453954887511671392444844230201404059419132656441963590840913510178455787236434373895239561204173469394894790340435451340862046594619653447867054251656097590475127885610459480657768534784483226186338518715048829222049428226820650193528037559656881710030184021986081415781894300069187926442562469465944074894401728787054599172685537988845341394703509432281708032296078089993414186682457159729117483357700877679270530189474067166254888722148067725197026181486851616733459919914319865532999930875779582643646260684407949363042598482485250091030892259982378109344313455909587342863580236265574672387453697830492581822051903255237273150470445722765571790204828531779878544167872925480824795765759672653772854721783926189785127834451894766094335370678969369964978736332697209138005023863830770799717846163547418509348268745663480211288329354089369359790941972992680846615415063800637172005200831772091881992477992953490112820952148653948206854839882676667837110147583516907383726042520010842925300125382583887501141422417034414419279707901962273342971016472345071709270030707492357584710148629011486820133215625879919010374366953282320317758549248811052153609848631765817578751936028847851071706122481169036778551338309660121359083108767403650714150501823837389571039943647590656903033491893270356747441442974647088358417588834893301788288900040869576422896111003530213828028559494084486071933954193347270998162456370523136411321191422849240016159893770279588936192641620102084847870064300983283990703175269162689118165377935757300738029072799583102275041728351002702711084113218353876730064661578040547858006683722472356073741870262692468541905142948562713016199960949884275436643679319198038103960050321234818643867955076197806806503962850497170490121059187409432746136965432373904901012200766549998609816884893084855487660904579711785881699339398571876688957696787222263174935768927946061488761988068385673835437949254136198023996942488450173579694535417054119899757381362391686660814887453866080265600553613626944115049352551497325318246041823587174714674271264432736651742440566005676336506014940747280900895006048064807140460298654322368431935535137100791649079786381887195842487848748485910066274771472172438886957768680128370262715878903574399761495202329807688935485465037414151769870292824227350082616976027343711362739731209332927719033868923295070725206528605182923918610892589670233514008443810741794485617870939169011495400703301144033389005995732015757534365091414403307943614209611892388147747174239099179158015421088081615026851229858516302013686645057013875993219749436625155815677415486327363472513382618749782799101985116515940173476739421477833160367827369824687063910837618893961684349841961543420268479216764772833822444666690664302029716412751494717704882596397593815561707592177265299574168703461013362385124176027124498302478763545419122382021659529531538159148630497538926558113569479176136664243523027200966878686438757772431704349636845253293987305015547077240023499582969397532672221899602752957829953220415229624738354439836327066183017655516852032126174301111446040124393212306047192472240026147851113577502075295917785528851410493971153389606831654474327360060682519934231452341120904045031926209838626503280213344266293930364590769270535235883777333697227750657635053191596644614423180746034519876303035412180836179014316205990351266251353338509735721108281429383465803915101402392095099508971399600131426900774313319733329780240192986710336109634917481667019009633993562015701489221801273281615296527356916274578559650678613347500155121126135037754905858230082519357318922216829837203945202884730256522868445844142732848223577906868369084721027845759542330143224880388995741018648005413000651303334089261175926879911661852684686503463131651325235675395069603637753470730241394817678793208883343651135958224654144723032883050833521887216854420670417551776189640021808485652068296030929813881223302812385225374893426674668480381885587617365142843361937797514790958474540671071393608962726930829814369712816330697051120475976565237018487079860334455644878201483125563453647179883945739865316689415798545087075439951326073257814557157806562327100028268387051065166556300271725149190403172741218488133620742369759252601199925956850526148429078850957394047502537011435974410613459221802662478433162232661366136834380134917383034864464695001746885739801449278162398681984196868704058805359790233159814429713724809197383122560448090476592990687811891472590712245313834582023025202860604041891222465142799801222018596985769331897506647328210820894523824127327116963878517019723181851978333053065995287617178756654579245893806574513089206099957678413506099004559954886253824049738992841565724258403357554903791114732432595644413663042419870203924717263615035688984459385591760974035740254072429359164489831470885918616163250691508802800642185445665710820629099240799557260779421846176199130415804271517699884793754456592074464174770615110442241378424311715131134876765154926917073148760296169872963990133481936753872778514144323808169947165477023912856638380946403973065351194322876192359531742300451802449917110137523741093653582573809446432657824091717111130921446132511337738954968708731379254829105607566558381607721580265093294445291818109241189575565527260134974584294242800437424277335882296737814142174610304766856332003649708491899975827389741905251791404899391579931159041239370349381706198850646172747752733232497424321192025584757643079895107976741249135667590225552496380074665043142664833476059516039313055676288854560012353567001065857764830978037549020438351645895236734041073645196894389489033684184068959520715373973089658686822057041121546939911195014570360642821572871627789676972114923677878634661427292687493131125054050743659998006958944061801607785860068415117627754937496208525494668420984217538151112308564352016000784170575429542281217768488593018937369861159942408817746459603711227308516732319523890650800768505575768835301949887507115055120575341753938998716578519045783030910351283361807274563005083941635799149001036223869887353755074493870972725501603796656761703643320814524868451457643389198751890911244399519272581714515255179109756587554782860828414021629707228388398973857533616451415233836297808891683350138908505109511225031901807783084774350650578895943509841092026006146915177076247007084605288699045231634822029962642304997939034679098987738242025592919159862201338482392467926838909798537479519452616333299181715769805034150580994823358866613993317627306650929150553850181430723138944643118375115278534232079785454889710981437262155770455833763564308793688407980807923801706820711564580442820422603290367789038240024499177954255748982189535003290442834980801210236579989723871642586771986930360764895767006587247717753465624385724424647691798360748388783000204415118533035642944586015171101056946879296750288048193201695255527449245827763641650750481977208847058380971691619933990203900266553349078195073686951594152900124771097978912563279236016343215395537805655793332157316602907778679805999013655713461518081734048936327238039942325358258327164292739783277663353491269490402016307426291516124472358150754281530538922528488178643462401387567180180921000475539280769616850787830252812281406944503772515442945069547930311500596727236442299279698164670247911059634369984417066014762384872144699274960791641894821043143287506207466208054458859332657343190923247875859735608499758257187919785863860804026532604334543254823576340988568403879505176310618398324605836514842031073671491435578447410574169681076096196115168989809778718761591013837983728111714804282711723327286741397178662698016831290852537973099122665845191440933967240851802222757596940366143275842229689405704824657265737589113331882676303886740651326903365943319550600061930359759844509661949576351037326716086472172289157375212446334762622636160852499479885673901880433624692843717823377845151517150090243319956391862882791607809254108114368390889320933534731304119332288344557759402650531706646926390207954582122488825456363538597318811875043779647174839298339274354252718129467609464130104997205851611669800411550360847652681667226416013708596784365242649081830262620533118670155096696333452397527403721326947164654568283435206509482348367281338258029175375439806983562187643095660487649753845224059859877450812533978130696000917455710210541524704918780352696471416223541262947862152259642487280899233336961858132992804242330993198975783044951822872008037283204556247049669533932167186031756538861506804092076853479384898057536805535710342405381300625419601519586331733831802346713451339404936062530397469362546102006450255164975108988986655918021189354800033589590850699613408549488605867538966174873586491040447648845780665793889190054122084256059723973162676072164671998675891522739760319205622421605232512509585061868292049669767635584104653728800453655758393627390627055588847124411639263642748818474057564230844108656626394052234884858105716890830231937066087047448359422181366402306660032225200828708837799375471177198523815727614768686381158153113008365299588625086677111827713404977881918007337569566604550672958460301845879259748495108021154459098794809618816844521892137650189476246501879175718184039853044776873636501950008878827885545616821729817562312444603346567198808481691789033515004877976045951394772324223172834248893297416630099358974600438830200653072020894682079363005636340223554488572387653927721402866369956682321113857405943349642772528831368993813913095455837713377472978969827693817410520420310493853554812739631358974456817577396047720358331465685199039845038730744769074262002565251768296817937454652654846074260200937311749278003588674051564307200985619839850296568586673298939697385663586364825541747257331361698846162544449145584174045285948679089212447838591538845708202749556932627728560054945480673917829581240572779369237571002909165975094884344473391932396277329283549963578323257886941397410081083395229018967051193298712905402825879562395896910276017986518304985051954492420766983940818291945059652596531432976447958476127690131634177785290067103789912959084692523212482217133076370155858976556189595279606461306826876764856761705101855537111620918365800858393231162777953389878755825947689330380277332316856721945927472986584677414838887998340677427258664587306794188424730271545330412262336638208743464265330723855958745893983983098066697355315723057615669794183345999701205561018338232915630369189617078628829392306987228695983938648755932052782615359530796711641442925877556213197006673695846076795383618634929251733331705982384594985947699455668430305382988792915003231043533788970883702357249745911710856332084302897499605743644022298506244118078741177665736950664398047543505483918812504722616783785795246703442030392590761632276933281019048728950241912418235355798087163515979743485757183690914247644896021661196481531380882830680034460855416128361517005928244969232315604119780328102220226591429251420351914147043376316796136528322668833185374608350415388235459220611079013841520859029125075235955330243971900326445697538765509704709196060530527881395647670462211594249911627715712420735179735783615360541151998219941887967027815745502113771757910546877801101679625185916957030713181751461490902923065781829260694530253887225274206559717021311478905127046255930400284137610320950666029832855968576096550801501533917978505374363357479951592543749525762054375301921396800492826197802593552128091908958775093356355262509892434165441331566376389502992319278612199147030854020211998209398490526704849495181846217426093387514911062827366011307950627952192969488784935674617663775000983066451312481963635709856828092533560012991573378192506768800212220998343798831189512215303523260987772196826466102151636645402957393057075922260270952400955901873149680925208826088761974460635541735701177396716199805965119460198762786259451892489093273014030439691030710110570702314718563319375646601243674982690352309613240714414110746263201010286710153703596000546620696818629850726506479548393151224484118775905876187660767378592351640581231680104279345373851987853405451745176383894650289985964976883997138757555393058134474068583740928871420211555515955883081211226475679154295040820439556624306954063741616647000657944418836155080795640373676552643966673526708838626425381293812296523132258081166931006264143776599837419586457851679943161248655421443901052090495288524969374131265168047206089652677978798195063492846540388858956048413343614562755821284117236005347017690967134119727044910175660359708868218565051453464327261517309041474326873010321010203646032927812954691449913226259273029944601168691709103014292377361528235160667893932573168951465834446288796367278788162744571303277868444653880191359053431888556650359086241456315949372629839886384604872795967063110292193307909263787659764159904437833704071190419523580949918446789864883930774762412958457593438831998430238004554991980146330967284739259900984664867554583544512971538898284138697927253509301199569917542647217324639675333440221823238628134322684994215213164938587395806155287249367660063532017530916003056385711689224049459427635635566974194849347410628339289051108614798334669701098620554612413382002717174209480567451376658970247860863849341101591484503200737823461223094228511312740954448086664825904361362913355801960623421658234143226525345943668451702695178272318407201289004529696215142176705339411695669968734417350266677738696200973740910011567704653696128670726426748721880685619126347430187792901054277098502697350178588171337520856952257635661189412608525350280935646682137470990337858475699797524877755756287017455338111117066900446993572321036278330373397565071593257314049875872861760962163155974707326862342818309740146764756551206141017682886200089165195015991320995765690786375262123810626828673898949671774454974200612938722060652328193737819583525596499827890015766115882480099443651499290994107923859196764914340879443705408775603208824728080250232980049128851022304816738719113232062200242220163665760015473830572648553875262785070598759825853413320093640416177778663701968873605754310036491828601848524628577726695826530281847580787511778347380200259348816642498760406273544462667134522106565052870528718749823386489704618827407812708509722842940169367141364722737542456344298835470569727316199737080151501284980053876210003576951677835594146095937561618584075518031806213624688877594802188285507547249729627973919912733317055499163302961250490129019211139810541018688049258838244582894988027798808448216575389870922590970894020941295705081608568938181554040955929811451143230222581061405658000189790488444133738915374859529438143485020394064066887839615430394272080152638104409149461814537885498678103424346303901483652857132624665013201865090587798133695351070104628203700192726161877631193368725928331402611056104475057697386153780330570583193890135921574193617939341336623929144847909212996321571276828926199286227950482264520457927265991397935098347750033210392222617216974607208157469631669076100433404258382109224632201312847369458432423815162456361410833372043598610507568912046204614754086580691970685360710184268949715720602270140958829566881814288620894952284179647973197487039253570709265710754776854604426312218016491458089459397352414609987085776987062685820676535020515739525651177382950126595811549672315306292321048526862300403084378353986267965733996264128490137514330918855802803009200790379719174130209930732207215981916156548584941757040459034408441234346458907627062787715250200024968930552716303201428996839581672708006001497466100268169978697655277503797977354868260805702478200819007427654932674134365691617826146680696773975427689252873343588746066835628415944879174198393835964236325389156324277725686131329726238504127650439377758012258393806025320918074622941662475946943132270510863844340498070693056384409331508147941207079455398243325522816402837075866022209117778097504121203082888926852924442800672985063150106692680086458384472679367947701133862102464852207457047097413426398089749828395339877566905392903423121363734416422057873827935746003569313847068321924630277097742681456871534036203950397565818140764785242296788615257516586010208520892336694718733622226038754367608799431555004668989843365665454385606783585322338489623304982546659079313558191878610831999358939293960397852969480992457834468373797328212176816701695734966568954752635063383743197025954323367468785038041703782164296319581891413776040869474669900277881567218726050866861945474238579014630182140992526192315936100961542811864684204827240039814610101184668676214951591681460077957460284857756248420359182233239817614960284479768848030501902496561392059148492259048677083176962365176870412945403850159286082015877129698857899071050726496292188093422226687530343749635227457178225595065028589589448636922528099273753907996147591244653725318809892376951226724735291011057187431647990381463524251321231166307317501105971951597111924469568661149510843831972321762872171892720016185387254724637467417777788540332895140998430830073489238602157435114280396508009493041615997731883542241114005991112765433942398873834816174263823182914161792503672197630097251104146443599869683583758838987972258984295811374555181679917281287234302892664613562197016512358506196840520529426385835445736666058692656641133039078885554960533722313716653256606761987928090645362898739490667498047933670173691808694129897107204740895263218355981335149139939774123184083864540342912949368805407478500754751414761254551858525631270088938024838463850567197055595830245382950699220973590383938292106631179474914024247041068405928130778911119269778174435974177573029398677961417832043551895820208314435102885481985345257863803737482852837481698051598278286490881953225718716942553867410100952425407200557584515338829093114502164940821263366954603491778268667632364844230181144855507440827491286262697359102536469682696731869137641598418669327017219345328599474207155619541962903689480820517148985826030774804554257710999682071474519926006255406834021376552768437141708019267965029424601148481197797346189641326476217385118499463371129364841921021342183878667164752626180089532428794156273512832340774605924006791188281633188091585449623032831820589314063006158209534348118019764902748089040270656788426779072061004080491867565481040165421293938209311938118198415904830200170784147916200525036681567649142423075137893080496605529426871924893093086248789353568935446353477312349377803449342178474101874959140428612743669353350410005897951048699008247256339697257020475955816155030083648930377443596259578255408826105491929127228476694831420762548550205576814108035623952632151315886227364501368029216316969708359096981476929381804894205550081972041049077512030586571904867004462906732854189138382982706245503626446402770656224884039995052042899836230146098076119026665882654618731516103032532256179231816107077125934010308838658522735237929158989549864757762820470556329936777887180845262875120301989400220807428958003032887768700651203393123566105630435658791182774597208617804073831996559079932603018803155299674839469153899420426768405506575737249338454172965786818620254503448402981531415543610404116861048955478608174679482309333346193417813331361450236643717964902314679070006048550248434623238445076658773595650374462773670160663605684873809170134850963277960803510903932419056968407569232135904998287293390490966113352248193497878537236771286093635870073711242969553083959088540724443497713004358994211317166474843049655533636461090949869980300582923627693162560127607998955874929739720155799972789176367966502559290489103670122957290135094811575156716087027882028158023676560813245636330239538933334220744876546452423168351352653703978108236974392978851329996010146566830620253515842144571341063864380854989450965899025329520785921166651567428656799013683960429857209886973363161624851722261009710845977556012894259047377143797669542549452241716174362139646286641945104594820536924394873906576014965991882069894821086153577969893302402013555770848642899796494753603789597119260845862695501521538412628563889827674157965327356063703263059851469285584396143095792841721447999461632518549428979774161605319940747004985346514002549230361906577241501958585392791621695478116930969567523730754763566247646628698378221964869274857325161490776216494852474949240296113942125643414521683094784283121870546171628645589673557511327488465774130501608831848432222389276240688122843704648360584138466750284174024161220770375690744166773283369075548208848225704536481556397164398745691164649844772436437355015767953504869215846065463768361433889962086578002500714932365437849180633386685073539015766940383891251739022878719402826659991206826773766866328955408990724571737034488156427196956257762638188634855303516533354264556881746021061186998256707068783916069736212978478700548672252051874882597812374436399415686063029046174488700672675706686962144342422757148981915611069229892156305255508421784197922545379601553483802470794470940945273335088907476159472792071679280231299616932011928066653877519593665646581953571120021077017111925866039228343338832322631983762939568882040822721894447757443755991786560657548226446522953674499418133052696402148111830774013811562108502577181145002252495529834561917404689343909671823451158329416023857143862696847077720238603552430817257203507461669187133032202250060804782830842686160007485516323934355133530268906792608239666412764112250202262598990989297278222548609745554081276078164281088686692159511658422959775882467012748550275848050597018375138181861508659199879594709998480218810767632314900820671502901770835628339431550150612293348195399393403693437112216887140696193452160252868826997070563656109907339611621427708298096344672861182158857131682079355086366494031857162511016023041995424773325036608455806108735279468275697490319812793339379392840187213081560341169089823955531597335410341766918874266853682888108638139143163872545248703960088378624964431293295892163192158946277241004105622854185037641243984319099838925989524821092378552606379933205003340390974330717420388383784023642152519828752839090782061684991521424687745782293894243576689829256732410733043736024185956572720711721693879903899365961095849219015146256114068386897852424588453317557897216128369302581491766140272112012947735221424553781820054059750316948602617434389398677343878480815859969174878929374351471287116630810572763218699814539776178729189467760437129312385651348014960755488207212604299893734808516128052630486841321502528037101538652655205994196364690628868729126849502810550336819315656250155370398873269304062763475513687002723040836545657656288875687347349779806260344056656068967669352549943190491219229605453781285150017447642978335622846983606077633329492635729426811912289575092222115678801118102894332986373350464669439636173573024897285248166832185155195555696938413320214640790709238629283722476095059298141718050349758662812436627832771997226441829263593159608526941373383609419390807736313308162873024318788451057232045339486510409534803290745391896608291421409412997298977783866986759897197040677257313098966333772478058429796839585703724302492635559395274511477830850826255935987130386210442849469018065042142208824765581185419900581726087465433317090318477687974135853537184072686623243438815178768412540924559432781332303150097515352471006658009663315850831147200310655001822244360657464849460622736854441387258603319003796838657482539086907200660279356351896847778498536786483151784565172641898975844511468395755228778024047383891511348199785968896444926363687633633634453464930136242383990596090984416031664173403946685963474879453148257468400003659487146545350618459506407892378231591436934691391935750664105838589979839293860761822528203392287513687413159789607562385013478202195552015941099998771047747191436788027674371183744949022579253577307282422438707871227172577942141424995865081255459799424872467930330534625499487039396486178743506690485145302794188463187552900154399228399274945530643585058115855355778902164673775444987308827290564495730463912270727189212789493614526670351917352341637982070188610542080282455555292740007925768705724895852292044452746118759762420096964427618582611722454489126019880687311022652930038699912643934258950284847282500796687400961965505335869845943426889078781048944655208157495613668011075792283838607606807254953170027643027713325801439680590753357367028229606010167484448559113064451668938583284672009053373068759917744127902834138467108655888812611429790905616151824399484823687643042224547308983404270837017758053458775446796731967118682239464325602037901846835637436516126277666811422060769560829935076655343825324270796472647570023484116636271139411030237891771047314999086604445198752324997475347669227663661420403858681080209267384734413771566335558064651626304317762770180419619434133922282345904051648668977869092923924223853163953832091770158550805818956496013731598354986022398459154367210134042029676051697694050815769167958637996951488974176455596092724539128436087514631833197532638395686296493382121413679938413618051878311988746042313347134006498869539138790118553479064681645904302101851162894428406423150562870552694254779240450991762190844130568612030353903696372717122334314284362406760346215479012069884818245163385566603835554497296789348191803005932148854899106624527499418935686278955104785230330211028985208827625508754368470018406483078946358587150765441873005265460953090368210865920573720112976854847469289776771421675698382632125898267320063285903758045416064293317583341272775936117982636331021366300838021277768876373388908310116988635708178649781673637291270892274794431128715417680245953440904359141039275326502873653511791185519895381454361872376309144477713256680219687426151525334935579044420318755324418252935411399590058288530919510761514327412819424015921990850156495549818898603293505097425312429986657203307491032657024914380500762959437574081751825047401168370804610366944333180563432070086992244977351153746692642738769593753637151164474078419272005176893477712043900248174476770661409573365579887979742136953202663433008787655279205181756335229398250912761782260743254218013317034886853837686500732451028355510777075556349750533083447509198124982611832501137118026391702450383910506897285612682974154120572885077953787879606034879361929893351065320597333186636655969428114401378922565299556613056994027367864372902371297108959674509890574714548256841599317947234420592873067798975600318459783967112716348219506272521795604022650184753902816757496612952854099595340049026401998840048673889356047453706046838417757246193138827938851219806967812909190078472058227724532573142914115774770184631754448669763402486522176340402339243265701606282669831582017430705318439699509853308807272033200070802234755347454709770187078306921516715436741522708998979115684149156465072197588846534069494827772403049971834790196900869620708710806288036516628063313922099686072668030187584986273721884653528789840357256185357037589025781812859466602288548626386772378037486878072040849141979294027755516559234371165217021452187174125104238481142148203180926685559728590699686180543355086208019302879864619141455651583430266533279876419377136694531973306611070577994796602337174184656611292552300538051168572840759166152623005549628036801382509936964143751571836609262889210706324327467717977195960692931379111489872746599497991370517530787250428005127970426482563563800652501654219454099211702589722495659143118336358966828921673281378830259133000711640151474656060524420601256905605884582606344872851382294291697894308817927032627640992213281193493313147873690660525546167618196005749661602892780746797918458174018082908733340242756042407625989957968902196208922812150346538649992811747061399357411021126010392424616812398365962391384503940532681018264519095584235187461909273672807773158229660283165831289274800353216172344044652893788811119568926840080863894356970583493672460367609309437081772326269257767140914410485271450472088293939562127489762959374619750862805847879251614713619495937367119057061125350761668642036442064424792469950099047383659882908938697895930331931702335518411066966754375203202743591970787068953769908238973769385651759143577025256430425569580144955539974140096738726283467417686120762812728218623737624615811097195510095481074117711766212548537632557146595825210108210244332823283207459258756257026139335280758724759575930461515053107384133213973342675924777463277007938826846215872411465786251158713056932876033922087231111969642641914523235762350175172865782679873906965437022678760089573322244649015751822367786464248225030868844663269199316559000218847903536521356774870189508527539041446745816999754170420733226233133369876277561850758780598304844478172006059500543763096799730233078894231317886707640858995856488495925946448705850414984533238788195815782106880485127987575295391655958878536085555674537106804047636622610982984141665894304077344096661494725630013791181342306031642760778299567507703010685297152316057219732831831020404709774760210510637420288840702583563154661177174878544831407522924247973876164169462066133826216175759744683553816266575185819814892780090477357610698227149781012977230274540198721092657456162179390334523517344282901217860821867246793418918555702985516370082060477733398141058987698725733208945575984283946038987417171293704109510941251046821074837018598961549857450144347455428520922177710118136464376508161994870753024852428730226764117591031503781006873956983846078822170362325140393451259476344472227397117854335017703070268533037321860057687477817248904476991012936033209245673560392644779726754204200633771773508867098457792802713661550099052199157262829161615259629511219035102105510584559235045161946487979355157559491666157832622417399289356563052213407849136630430042130804163148959491204509875321966140758428574871875348782389980036572523465228776982538416171394546374000752485527732515445891274020080961512679732025885403555477436912822682034257391877401802273996267832777828941878707362453035642763986751533886401384741202276796761552986484613275032890566634589274186402148635170312388522694724295463799189441785791438667001070814939767886000962616719873365575706684612273803632448545822220614703409110052660388248526278880104878452914142099314362777903410705561276517805358361078999716958870242313578068819637226471899159701683299684416930516517810511005052067291826843973766590089663476969168782443643024112052053783465886579040274150197278243550742269860851034634896245147698923743676610131225387647458765107463167328957373117557592686350432215314115568294892460866079911895901802372730279021664266172566555706305033728083523505215631562484377307738619283880565094958681847901519839165385793840013259029346052240253812629213037537039413147986521965199795972540301986150694493948296389599704770896434233385709366300799539708752197335408651514987341824628738597517978474324493771556723396712105103309886427306911349777591039096193341432598344340115096602620412952240109122578724591183734520371866968211312646455870313624104825181643583193025168937066861313955785924812169188905955679377383949732035301947120315171837704102230230351196000734262482416720271219635395030077771743292160232210058898921381838079818931793517045235800544182682340083063434836224353286303792417768075646698974207905434047942725597849602214296597361299100586955509695398890104631086323658812711488606768918017269409388759566975782842761515134638669865948913261477185424324188742901136933652617714950125084813751552943146860255337531639390926880908296222915708943002521538557027037883802870246840747905253473269118806282649440031837478271213710551634238410097640533160691318159520925550103834461170487432528621654254168866752742834744713781606677730232145879593997811658562741006352163968434240617259483554724157727563381535745631375164512594971601287828256310847372318146388621009430118848037996209048543458347759702763704919358989100512307228945652145213701078696679028465840718554425752141795986664261239940060628945343859593013534493717959803716426449663023992919787094369260612579052689898309523383315677461464558334087475054293592096962935434734809138400950276955532669154402420996032267858045237833419630594012179150733975713735289175692197856235730653452755959844040068051845609628688877264411987957236006389762137236687073489741479920782291972923436233567509199203048141965884942858513750904706476905524458784433652132250128216940824600297694732201192675527893655772710898953072301337865372418883960617470039814240015907370764644340472599089871736586946803152127736890906370413231686484518864258218936522142641305246859757711575093972184001240507037659889584225201128555796440242113730598502345180537650996860540571789890328757406862446553077983323958829725072052572489077298250075758965493291192619972044841310643533120133319016999590602825760006587198951734519992909499330722642165604821856106358577475803592411530836191975043854048624467519733863842360362354584877127127663637195887129174915996600249376892880356155536083864350913973093245157557359580648105346940306259168547114795538148555020672667997882234379291078003093180837186001282581784156316846318276962285556563374513171643794964512247628649743473467753876108671206067047301200113419216030871460307490753766826058167029799703445242996098906719496718263679277371874173228361223176037708281271244081319215030264892651549273608471434342245407295395889846634268111624422393793402342769732732751163629060548358775724962401984007691508343078752836905456964233573741919010624164734960260815199278039936228480310656607200232749186638164189700028189431215212336792519662044494654182806867444147831225378832194731458957387813509260642481999654818192793296842689933579493271526121881226437732244423646892552377764560876687944654548582466579550399745504464652889245548317150547125906558069250193346874416694095628899306699622382863977516055177334281912844584357092582971101980597074617560518385710557614714465028930052481015608485598380171433536911634018457674451818939717981923397656518033965952309119483842005200961028092738243173656282051862673524023889799864454377648769609696868859619982893139052171491010910291373653444973295973981423058898574798661584695472845264726049368560012621574173594549647525262622081899571480907955755376235957386599700583680456137149986631500063493019879608717530188160188086497281542799842050351438746058324122110682265138473438718058367535294729282856529067950939504152267701435760807679791385021520528704613592065118654647111368633195770190931485729791633824398447321560019865734646050575378281857810225394890928609320982326044197396859880019346724492380493594616891387210547693077847571045848540054003200465631632749027465566015569760229833252451734477379700150263281115860222066467271589660243537297392130548295732721599939167150726078825745514871396640564396415242387757122961631179736714551520801450144754575026932394726415434149031464196411286436120852384923008623751317357851416631124133176782267212150656766138116205645782776021169308937304968451261468866114331191725028217565659433637307559717890725807395626722496654825033184434899112698426564150691623668071444252743845885039597777699718852771773496751023206046316971441193127868127491662962550530964395129063068508313777295062061335820354495921422312668818040348344021588362764585297213909773282031032096169052265201835073674735153116191378680173920122142458412223586231760742577538414221993916980998881013158835398492497704976427422205604713377868567277947481991681870512765620352354987037586745564623070352889852893162617924601061129031669073979947246555663722447435452636128898595129575946867966340406156305560310872419451946058483526405591455334932168699985166644444897853047312042572046372125536075317593398522720191159631463293950964995754077751879277376287431826763745113461682756104309390820370945338493743547654167526236459569088042966978399009466176066656161095096000223939402529675425117249879612271739693676766066498933695720689645320266277716706776786022356025338298918459411165313489388045241956586195581836303611756457521137303465630113072129960478442367553910653185044767719255509423768286967700218954578863699889522685421484268381771192013777932481318954194176939942063097400808846882813112524154972527255194543895773435383605813412977682741876008375486852998244975715677363438899488145121364626244922246178761893156459889226118159372408518496312298040619590979649358200899844521561911471607285726394186182619178347606863631326445767110429104843138624127368812433037625049452515097035728570774303503245632589851064335469536853237752364069169777798760134379251634982725541262063918489508588965107445386319176615440332250704358387806161981829689170292126676465189737778647032666113277510298294657609989745220021844251992967616186995020310763533033529871041498807560785311554703976731829618477012595288272091109856620008331546051632533019915511053984648743047014128328687468626732551166085624821244383915131252204470589040985798158806926379503506143066949366935517473876920941511002222499067005247224060170685475087833354964243280051423930467206159423852301209763888048956268843795873883635453046606182012657608237344960723077160910649554992994652026227315802824208770401387980489465891747693081227101589779292381559628012888786464775597823228266837126363147728826089870465225406767918918077729048577303658201243525749062707929618497862220444712867424610512249973179729267791165125109795116702319654932403439730962448294991256682175383243518226350232582784787904564294640101351250968716901972601866250674412875390716134479062209959565438760931335393559078781264016123980157296539353608959147575164130403648245186346496301753513964296313258641594651604228336159239287950122590254310858303838094075389314792950985105768733383689647298019811860881751847833400855429717336947457576075006109122474576111807453505645991466895752149682768954608740536649690554582713608249140504752641115563170281268913966264390992114902219015653154773349625947490574041322721119110312243967903176905166217420972118627132339065690046507977906850536794744824425427884578056454760783829235429073372069797985572745808980617044064894861358967660894735556319760860193972713370575844095576713546965776791264146194033013620491782582046211927971222458562103941530902004256512580609775853097366102499485059972269591352666216852202297155117888829489588422316700923760763893650233057358182298254348589936214854361860399626922165170017445368545738678582883756158763923834695730651056296830049489395201316500961141767059885599600837980039538099728844750788903996468209608135275001479111039202496242695205248333427270964885040607922099240226844338550340393053970455108329421010343487413607302896353406068580722939454177306560158724231352792130031771250387705704414016168392172504288133191972400084413474851717563390958165403615944234033406233939792639366026509616844109145094550266946835819154454432734539459790550993879237208798083810985098803077022066729094796471881527633612315599338099809431751380331787151412947482551704249917215835168640451345142780676063753725678213859824242510343690976930187604699982144141031278432142736782925273610836943907816654930888373986557130860223622937613076468118591851142402383471321559530169315741599955413877374661625323656738628603577188785910489721031535382676476669211949266593026814146020178596738282953197006937200184374968371709181159550861698373886250416453464438508631684551735117757208040097669006375332574825527735651082608071959368564933317707394396766424116427329608198912795621929884998981901403743691075047012072695910777183278272181201766545719193786450893643760377988340435167266253457069886631631846989141411353197821174737140714991507792009869360903308950602901442316318689686279188550948437417156138254208748791567106391424778651952230046139325541322520925732397090617366667914489042883220035757201717572457363689570097852868114146859380834105417009676845816870558207718096305779093514573924897254429886424033186429571426418071595582076313996274052368456358073325805163996083731056012011587982897717508604436963971549518617176760725787418369178629493323926354492492910114810256570292022506442330464673702799814275090468913355803418076680288677495679879373401269078651028070911164693605793285372293038510441926447560039506051215965431573413434664555277215575891105264392703546936721288436185954166857639526648184536651501376900292990273762644397637786029385876303195299272781651135326485554433226813863003233621697295267107759100393383386598642015985258305724816717138800350603814240364958663175235163220204045397912174912002277448703395078173455203348634423337832625245872169866339950227231343560997942103306173814985084854884755339260699643885233046478812167306069281019858745281691283031445595863147046336208809640962266018678102637807022144461202527102782965725980803301895717054978049893007943400186479684711187914342929276087465850110798049104247341457030580065502037712072118224512000162262938481075154394159059980638738402089477987917493440115655453561381258896874273291242151113437142626174213295654112525307454544318514964442572205197148176944213296626482603027732107395851562899904324775575882752284963792358031443801706129730874803405343813894403009518562127521295246679111403187620252210059756083488120330266237817658971764846619299382165238590587328980058781175054814535889760283545511753294541002140243384578247944387026982431111062964562725979694539385468090076027782444608129888668616289806556701167152800204635848920838022626036803520261474455251865976907999905271316656947237625736062569604556058682759667331261519802084909367765460060640482550509605250156980044894395610389616406598811049707879661430920338359069986222459992598003254075844683531913212271010618550644409568855717143950699103376235347029927451901876075145544480333862570951560924980854389785508518216997627863868387247037059957677554799307327435798352824308652056427418517694005558006850392351927395835527252593284132543835379827482463318382417334668890885555527018628132067785202872406736649723886112188176379571095681077258481918909581038568045456831266776791417477000571475840260942112524291520459854019793080972058632786145597355754348981590377244520992265836225416925472910996442918492033145744607889324842985277188052573190704533026501704221876758780543095714848148142569590280384451545931344021052958686067750705669810990551322925485244663661383466414352510921377853374780002426505520287868461570320538890461374585865977928084428089293918293068279965015747678355880914942942630967487977626656274007631707918860292510997309600576220051988420342035287128952593786294098137834187884154890032610778300093813465783994304611040634261027097476873821295293774200771773695386171882256676423425919925334072513708647920000729740685707371744010396028192579319426216758689893647299104569827475617939738457221763228351157786853025405001508846794086600723263153322550140560790017001750861151272334384637716442670193506976146741654645105987388309517554591777858988118787003907970501203361349362456471117124640173759985571029760609119507200064098771134314305354333461971190486384004879497975862734349038804781721178070516274496526495747763893298036440932902084137540050203917615918790668810068872534015337306019067896751210976364816777774850661345105903730522626671027141606673502082857383062391905936581300007655690284675969240936025693749442598069880450794227753534508243847554927104926828332809588065636019740922236131290855706057845605577678602244114787212702344556505265631120956044990315446408428701657952861194092138405005943663001629719952111388840995210166806708207960659817019786657046922820537982544754901547281975692831636624840346576053810225497189313812172702927776835096907662066756963044677396741666313683802806672208421397447931513973959447569604724852664541990407964968889549679312977315448686305899845127261678375404608520079756387593477974945641782063110685745098256786933171131751775770787379374005658920516614448578769271721202018049350635900062831278072916550878682855149091535376494165423657583458248577230715242977215149313595299205163777783045932321102110384919957861418380388416189770815851016927753479199346970681950321347354507492483257091857258694683409194598406038495290123819766916153188129374629757752434622726061055256734704303794526824702600398791090006222998699001928064529743590687205175112286748553594975573327662108358148315551140493552911187882204851635109997658582382061618010936909040788240180054160822203147942245837568773775891482958999224685287843191221243129010871555757610709949692117638937030110971152120921965412579859624712948682804648427889266627276737498640061122584263377016235118839511535836299527393923353137629461853010366866555913442907161341147827668939934979587352558944353137584253792115506597141061638736070363146968451204692196286714785649807096950910213464062692557032591447701412657775460604815849801074636204711236987851110705234011214136029590581370999163003557049868224581296337466603703350691011633254919083774818906031527044569275014165665317295379856121236976358535568235963118435651312870922807145319280174105357949553144707256639974616053740380075057131933021076061713504216717623515972536273300888558480998454687421374329433972174652111014794450100803622874594122497189577948495148878272178825000419469406542697852497797266574580994871096098363428303897059425411681083608563343239864794895457353204133564969038750403298842600507813380339127754922388533094483413974518650731881914613344804635330465400694732385631300046324257226730810264276948336331194717104519028079217955985281556299200406534671216576244129023610924543183423628710358540748076343270899242536804466663332291156604897405598632807433477880861482262631309334080341549135955221149418987217731284985684160887972348713170490612232169767653413506071959728400259657026895782191432041145356864256387208078445978918357052122542714527337834187767254087677323080477246072990807708463461114195429521338805824930689227546996886224623130574642964975497417075354218634569649950736339464286114326096055239767626518661121210729922582433205005624920926464971485303921490315083694120963187004543077432266733764363372168877793449517029524584373686718082652790549828106955401889173948114177925224983540575755308416808898344789236027602078040139718252744612616971298043568072403328369808182539864129859886037250590802213087189562795512149857209275805649696910793321166510789910499282139478388113845780531377766571555416014423841026065136905509861912103040085850494629727465135375634213511009724808501133348478450084111727939108806365542532731138875863963156027431138083075964727705890648445466316464472069260461336905392967353287703781779045338671169133999620100001329466908374469731203737203992922573086301328894251496988951094813442893028444946997501610146798131567808566434831491777095234271933036948391912100674278883685768497835868725527761111536110362672484557103337144968476775663874631086084308911729949906116207166236229442348827165155480891782041462411405129774030032071409838224348970198987698147843290085022521186034329397092989218069896507590429204687548397246865451312575471805035399354573475154449803265933296406811718754236778650008190929935925708064077059862624257030560505355433732508173829921504191976291115920788503208667603773893714336204176388474807922043332744489858987361421660683921094475414657604868801753364339545579947481144751825224368113773352873078902660418193758769458260836810547212246269897767512896741692677385196815131845633828514743858522997167030244204925951829546043282175669265902646132910845073856490384948790870094919650672424987622156922687066253920845068816773367342324841107642756624432569361231923466820344733985085493842545057452854289956529700192624797751006846386533424266052026648910930508781403841487142917631390334423021338878878639130737950824447825320868282419872875597964135264525882019229897161197386546703698962808073169693101889574622410060417538283833416591589827306657885316934973774767672051065222249771378532489221469635803981059772029360541364623749382548328620898882759528883706765473368118555090816080924811731521923694116676719768602110699378150491440848316582761881935681856480608059989460096269767558841582869741790405708749902301494466150703607225887883525963203756428454625931337527936303288321990654367473761509580048400478186450094775821357874912762188156007761853085631284635765114070759507093095967334733633055789644173315567919187149655114231362277911696898769490938483914619421225284795286624724622121449618099810951871967304835259034878168768243035699301335415653485426312860042223440405033468241925400949244755845858775008619958463563020468657249694807249471093827375931616148031459008192953927220492764382377583166964826518270207935324366276811652397022243136817150434324546601133366940730572689172593915889447412418858307900514306808143212079620821350013573095516184272351137754734827866164128769345963466098007518265957278873060449656161345190650116166947067103148445392805847318655421261896687504093101451463809378496611658458451714913408878791631649565850553646872453995033891640462282629003801337508415866793524588194609308818234940160358885812630649721165426615366070815844064017551467581193793891260278960366519975431582877584884865243175731850574568749809162118831144982485857229557972346739116496999872351362091422495445532025817167872608947032289008146463274322225507279921492944571504994722894386486474478528670108978764934493652099588906454178285837565545088974379592529745220434052036740852213726584328495461308732554751710855374294695644722553418891542711491759839467054235878217185261740930886895217427841893457196801931140224298525773826830147279427558164771122628640235823660722867516920302379436283468124238501440504051952240362170076267140031573912430467270227248903460176522877505307651786375128625731771741253984279670874046332841652166042798469407150790776666135356235563838849044983682520649268575920293213391824725247447463941686250587263161522148260466509566158682390538416023998957522185661343928954343186808625842685090375190468574445715816410002190418328970855128518585024933944204761320035136724167312381612249497019720183408863479828696342599894636996671127321167920979066684047541198310720554016134356772384929229868007868627365449498883057480919602457955335833732155523905070839789773159553759396767753535020725683392552611390510229267708159569651093300585194268442859321974374393718425598442122200190846717480565358879574445884926569454731454534185739976533640293726148510435784396265483791400845125217883622102755883831598116850135148293928791073039819082461428485848744413019303743985272511429399326418024859807828507040178713978293491485083226224099817491025737853598401104302462795641189601814765323535952663221646340494421587376970243234617273932784609888573444094632983070986903049513861399279019959357202751904106582362620374913647883977504855958579161842846241589402667466438835977779368198683263117487869653684115536099413996828133157530800043446274874370163916481594658501248128524411605830149870176230573635637727741560815642737669345928286816388718247047198536901672089550542051926900559252912796506776366050301117505019561569112998490064850832520618804308208260571951516759886619379724775523544316617435217071232652303690097814611260820826228079033179320242928396127036975259941380921682235728862602656543707697186930738996908468884636956809915256198984407283061939850793476254516377016184343146331712624625991630982257975907330853354793993961042475332203016063761064161889978804122909531133725622299892196938953548228414325967880046243587406473258273906835870239331787448287326990777396715059074151542900403216267812287473541657234211852439635846554365909385936890373341148700236969273019257487948728121075192971282892675186001374401591084513409026171109658311993617340015535740908672016671103972911694960504168653610003716665715524393500266801577783216727293487704533180015824580895719652755734444572103057808441637372573519560757213849398966858239208687999993824091467127000882531957444872252823976554721826544211789795190498313466808749714304443861414146317648180394158610723611897703418098171345663526180213875516465714713334877706054169403564637281168288919497356605434546225106952859997584557307812581380947177102750930685575935077370768702085882081709502214968976162768424331658249555949635130405329979786106521899803293495350253971098053231774583604618518644254485061221896418905483935112502109328330465971485308940967544975316392100290282320608255563601918469136480831053921833174328062069843352548642941708389012813446232925734938137813980423203624198136023587354409565012685232568692145247747500090781052570664248533581608626381514831656955942744121302176017447284410587463077029365105435640596542914379699139670942877703154787216766641827415778480313482594283333806317051581549921173406090668458403999815006261439472816860036952066762878499805993484780673488972331266853794234145269558574858325323275810798404532323883052309316888299007293205509340623017144127301310553473440737573499536537571615934141901195476847007000795055481451268755361754152313440928950069685068287200015987679502545712664742852385690391165641209406520814521507453364793256307943027661897428523385716199547793944825349408975551644340155019473406253427974953577841812703278363458016166544666346723552150530079316157492670112632768829238956613734955991373682077389552645895107073422492451810852921485050641166905549153628468297019254856567418751463043927516018447491842840798454537516537342715340326559843053288417094372416991384841762815631109940726836268789859602754575071416236741547423514501090617344197168363027825403712402191462567429000047731065604200708697830541207545472861434735528539160468973188224317414202121323009604239423411937295345115369563509848273001137272612407885485802310455113215079938283477238463929720720914610478067202352960894682072108741966609835328773430759586722153993175957120903677798275326691397818920716225711841225835379738869136178906209141090425911998293034541665566319585061420241180377554620973078269352272714042563396884965161933446385092408384146444755797619922724676724702617028372526457247399040973536350984881806486377173995244413918769643980491075327624643326700945399219078267962711226282683077600072651301645148270069737580276619406926546845195254514293143075887599155450375478362671258677304152401831377755555729461913764655280065042037515020470309465937118077738777752875510388930335575487602739874900083635813043115132121142797158140372252028432927204957251333703320420551686346283807207291997861767467043112134899152274743977263770948966927335752748106901453960116796941883803394154391486862678747938193126546738865450037307514045021692990903065729368852935750500183404483332878174093575970494973348104856113599279557047514537422063078443635911632716136557363774700866655108110386193296404410471721727509619247393635766031297634504532937865224082888539037245780806948191733833610375362077416572514501757190694963278282917099347045466140515820848533140683811003241581056856827472241740458468048353794618526618562641107121906696944409304095947526804268596959978636888709330681768182412158794596133143772710460788136534510690107850888361360425892844863094482585982405473367916381758173057433765802004202006267062192127388023920815878549509124326063961320895194760484938060840811087001014852960773497982602144286971482038271866126375872611285892141191944433362213884759040720700924164667251411129145997635372951130761511919142401909322941847122852946126498909475636231459995676301972967287811123874060526610218045978000838485341440117973569788546380296080246999470183126798328366209760663707343963685873267395244572290208275506356500817567328517806826619718532888647292182346087777846404951928185556263726917242631971054955815747570681616537805375291687558759084482333974395503929520777382906147429873231079097954668177040483626477034400868948776031607977746641510660609518954389134843839708365587295511808199946506754742179846972238280784386469268971977230238191487335359859966570276964101052206713047543638284325474180736818681029876620728307548144169902260233935289009708983455677783155069979461160516448463806916944368502471121503397338895739376543763037388263637723167827261395077837094921998062509282587796444106642472871035374084641428153544846440238873278142584936289364258234966534348621226249951059813457749635192396472109122008818357558707622136194220813729921707480999676261600265242782472377416170023240277477332893913409057046623740175043191322214253308298044426964877769829222534749677446360159510203530881327851504671449136776534244023444685285679983508720039299668230172183348280568302158163335356589747305253114465378631840058063513508493197816149045576073246295188775870291180015794741027191577844737437581363723265705559153528189499353148377213395075541747097756569103090319256718365219047547198609184566236741658978448483078207026752731115448233425490793075140278457809451289752252779355521833426466801569404660039426141588748837381758924488427405081554396532963203022460122107770656666604412606628513897665785569245806599109219684345713228191625870635467102249956178963546432873380340149506017335952780661724379908252164935253693019653645034433763040937875453170079667122389328069270085416296805383400289231870284889125324050434219585865456385131505915058943454292693659094506447706631038225388974730258750694714721832222612805278153762893987198716559580397698968603802232409198063108528201092599349075248928872356143234052718030903365573406773906982612291848621462987268598250171864855968744085729477462157646912838311823639570182173407880807005984217687000408572210960017597420148648985900723537574562821443298080327771154356193904073770677115539773070709010001949023201010157247037784628131578604191263459093163690381823725217847975078335698044649163539911268648389165247856900360760885334710513343417608030009472198415101779984171861727373417828047862693996523024414698086811530498244652161703947644238298844927127191526427471644598866788732081415792072168744168233554355067119219763688282836302994003666094455797231427920505400041872704949026275129436483173378676136581265451235532066650656752116569850731721725418610737610074336051231849151499709940465731566201664329097547669128156499462289977317209959301079879943556051870439817109575237705524235864082400556713921112616364012798168444742618928864722656816790199660859719601690511485833702119398665640294736284349784381355711723462850414708173482184777715505373972915489147262948558357741302141186284953824662987052375707185179952149111995698708635299725145704185208352239753938423278120204753630815401299365062985429167455308592283836390290307424547006578318173567095766744259463600718266367065429736828746412651330383275147112122466382040228341516762416452486907527367861110572381081581552260603690505545917196313336361774273933328458316233723377422282685457854105749430955062669509816254089172161030293491310937929428949102979617784751492585084545010325825778247676014549837728881411001191170999163965347658383189813816813047701618218565529058161231275186076756974861753705448408538403946180357675359271012171455077721611119020427368050195042980679928518044133305381628482290321776950760858814704542927207102406396640980138612545654607202458271010583739407944155714062644972278632999586902931639564682452927413114032379711685994695609800103440469246073510347335877965121929262906135437864150541387378449245228986877901064582715393181104180109375688050053020653539732327995757821614583702568471939606248187977454299473667497908399919789061671949880187021241681101143287433349929516433236678671545325717692840438923455843823486331040642166802090023218547858579291572744421405148881366443360227091274192682234439607323862623510337020588169816995500421338889801207321097393022662161522777600853627208334862453168144541472181160120100839371769342578757380261415830635606118395744504534491803886994319768046034026295712606840826644312645027756503450022669990721382513871344267239747864687652014118347764264283687248362942814252216558031966038514324776816153613191641692474729065436133763664749614139083786343103573807930273208914906991781081002519570235408008456443881860871801487010726378881705302691079017291663208493381081980630120300218517912475574561623117445415961889698487513830632595317886000495913196805745495058046541883818694858587687090172845367922269836766507057484443673347913867725236729712464601712965336148268374597138531253514112135989017321160148475482116315687215830926614084267959986291438663041535456477547002866124422168519243274739585211022358370530406534926010354419098367263181510452083967528772445746168671504461239663191233547200963328229484629190159107865218802690652115111102341248481537434738428643079529519347228410962730027435760459142039957921419607992956374084030647704110964431484504646664105236080663386225041928884295410464648210273952396914039030174203603774225768849462910993748490554538101660800253055351104983355673623328958327756992429350348703187812719099819922994892207222539479886964426488253895055477688408524553407823606973362165214572585292702365832278762946125358463193804256699503553575710705538901557919623910149788418670857621666983402795768562096630562474866088780648964466720999258668043686943414057547599382786128177825033658398153376883374206234771511646408935056085186998533371140504993545611366697628571220354760420878135105749557004669361118332175435086863840755789943572643772972268487776425461865171537699523264572316000512201760932844209082163560776074806709997309769532441570135567112924332409920469397856995985474904057091117754435338419243146145815600143274939993264543404436270510537579081383621135067431568275606186636997109641016397233455144948021479117852504933874504974483175182253169844061839386297977892685288327418583258908136871029179569632236607811362978858699467264727012092764580742298213991410130500463291976580041969451465580465410120025225528374911215483597025813223311795155566154189370355692465847756714911856012186944583698481386516946695611498371885813136374804730452651993968810591986790293998982308262767147342840131766715779011939134631365125332885343391578640477032091479720174454087965316091101900386430751524081398580911301060160811029274488374132991883466066036786615097282933231824247594046593790023942172297270628360437556164076954653277573488520471141779418875685860735772168983969463667136073807593849255955095083079648772295900130635115535015241018120115270460871817105019999894242053519849424955236870675545601523168514454781380951020640546331133481241121503085029324736312013188669679194666502286401940180002404961448170423214945212102319165465596141875057125490380151338797613360500406882758593412097241485169002683763414558807938291249780721449942296252854740226503424155716891208178904553076322726729587312320397378290742627897826892181586886433169185215322264323477273221572576488982046583993383157531716827701239015753234785702578601510289720932005779069070924202225234492622185951370915187516288773466024352424311347975557621175493239520003058425521328010616055602801117502546212170016271204310897683479908527880717924920893852100595792567347328667088944215811875526336467670554868625664458569562993754869207779663333757289522243874787619347545120185082162744714191286354034468308001314179837197962022107118635573312115918472432204073743274590641983516997465468468993398747936597997875068931067275288771249609225300962095990054539449193460195160443717071897049353282977715291445143445052900892324504654871063394303514332416707261277637184362030312223228039815549448033615338504447985896082078812262018129214272490047044879007401618471701407511687138361277729550845178069858135760496408286518704222322427024523699668375315949333201910454660138591888930859689342518148146045701058490551806650171458549364825804813483591154545191748044718975698706478901489205777615229751952322330450199948590678007046428782039872825948576713212950100158795902072946844477515345137268512058955514508227075955233861212398546498904162123292410107766850528044648003335013804582297471045878511272939098618354608557738433623557951572339237516468095824196883477071046545387631314513452811431575257547051833782165597503387178048515501702899885174764112998873230278067581865124520595484413922532852041638367080202522106430046767247552272995798393950192571762947015579842114664045228222936532887607562938583660411032835012173509285057581229226843967191960890275441544933093687403192514877737937783116281765527134078309262870213449892959472080111514236320033175420406277946410042066398786859612769317561326629803939392770721401784968835640066512856323588237323791268693522660921785558162331566067131328232555341843956936952304773135656898749780992689953638739334025002519878880136584135518418379944155171111571524305211513892194460452192555994703401260607742428682652670585596605755883142306745828194175576423465619920264660678975321382980967981887650522732968371421474375983553516962759379710712016229360497814203927103219872484334168441156393458816221928302934865077484720261039746247749388224791074983699896714999023570889014894443046250092728526727236718948206489350264801020452128139109030938073531724762276830748720635480849584270313629068432039050007091611730842096901789877843673402650386826858288082196670476891286512000881204578435479638374664429856051610359573123916595401271230887887979133287405780953816638093756728910759498153609774019907690681992319802995542605689288169405960243663145340005777818458862293480465308353379788699914996417529872504507775496338878693563725023039560862748993590885359398069247591004264276280049523504218565414759592711005138518453581964209479405991378766206241461755688757787293899511206398951310385230490417521525660412579850974117272037041672655722477888438498233369547636463930091056513150850654393241061279109216831963861598165751211310620390967806668227984632515296336392167813836145065119612760652940298020906536519054639992053921268701313843867339240778341561442949471880588657112287338555940690238607395822775009610355346584736082578597184539416977393365248090624505990670749750490513348519534498931893861131186057907920686650803176997337795802586674478519873044897362585176631846144244952610985552805531689520031654647630967123246261181238259621487163649685036195474738139994632373670281563710860049635888805428810046895177046552839383475408097776610487088664268618432955601499784193219515941141041921811819833548553740157854103176945268622337197595203320746676407267381209928651803569088308272268032834877364597176217890426738563642675084368154504012492632556895422734837878225565793942630567989633752801267767065895935534545820648370194127154450253700075943402188068679926983021058412827154043195743155818994445140141730980030626329565147724500039383783380089134273617144596057950420635030218508256752023739425973945076959445320047476902251853073409184715963724569905717188008840195124658643439685105487777971822387031865740516908375200258803845177068475560835285323841892995379051149279596631169124461770376359644637647483405477087175464774528590481662714302385833652980121742581498646664492174050200548791438411072102730897745215488540599184436911134123515578918019035480780791659638075915788800917857764356180913359325484583765627339384309501675388629976440857844842742592058686530813572140476026669776434494770517734457337456549828070284346371776546070877435331890738015149419765388607435825880435374890818304327478780792582488192057426268131149062612431279189610946679318031474317546793836043911817172936905133339362922657636834524521522585169311734519366746720637270655578599785744165380932167620100750633129251954357785184750187064216268889511630550612844469805013538175978274784239963391424123511766951117354729795284817182278386612420550210266264043539966761654389427546360265809414184850596855075112710712533460674346215781816044081499545514814254056406371424431738328558152927523124870887691040759399827558882011745855236621427283639494818766622030748981480149890172686667134491997133560072219246593265635167159803684538335902136352119244497311566263123483399110244047886819567833935804654116895549474587688675157201627994366380141121288165953691936020891725984642991179961671428555355483323229777732406255130031192036954559264671982793529235616660050708880253675692406939622574307024200940717778110268930079672197155562673400233706400581382272348337628165783652070468280733804729434384284520986876433144755053036015738837926413129468399861777396125076061992467011403317197983399795785932576229582547376459709843166922808800098835846538660548088599121495693611025128049648463448904251074670376392807498067667578574396842605197531447818740507790692529517772974020395093191931358569344712351970834329351763024321903589376343264345512767254465581258949736445438252219956537719955656590063837121060960150778873696671608726361092882674532072357625602282734019942026807499812902923587230366888085202975496649609969518852854954474102766810428239430909153990157112023560007587706051934995067116041339459991274304487632582539902517423796672979599113217958646038204924559748866058684198453871482351037344707291447037505557291038102190276055594721678092321942481122573151450078111531741303920103727055291681113525704853159980818859403356824718579253593251326609375261659112633074097058486023835984077974807384536030785632203989560871561279873839182366829171897460173387285926061216269047240936300316723927312744222332513690365972029485704772837537731853092326631232129794056756937302778922745828015042828821532548965591105451388778025935766982579628406047655820947237011533716962627799277349569454127298792449679137701543888500937399562571426627120073037523176472473712354223420366330607895807455898607398467933645544811758511112214029629895204948689282052468780114142049655304097163655914131990187699532853214893295871939906104888747484374249980369875846302617263684090053916707710522294668457376276634253798858613635211523381441637433399952997776097266997972278823659930357774399355572963832953916964854657027205814064042217170649880126798057854477069882792543949230936348356796191916085811608115321627280411299196004002738790758815320585223304865616664726457916720350178426523104153607246617264524556749975048664827409993786873417533437529998504510411630626211235127201794365417090275185207924494553714462097397593362818103378701900262362549316522368574346679707559448326434623416778751256625472108674622809279215051255845745408277110961387482299078696552993796253726045921741320081101534262281151000980544904411688565001331627389802255161693782229424998514924223496593226931070052945786949690573584698477665334679846117034404378982059275259601375353916394045280442478931209525368361779581747249266548856335818785907173259115179099370477634967132254342290682156246142032622885517404721694778281310153287218997759593470321092464674426121276139436794758330637372890366918201623656359789406609361411857532616426357029364538899646710371541743151972403465865847437439297517704714750633306550649063868831551321442937483484867471407319019863247192458757436128928453250132914241928962076526130670480867028761246178780967974217734638652507124510707733453761798250669919309441133879757450688676794783359478801950951687263827308240898208472375650035580437356452284070367315049070558848918984243596975300450093932209116084979331527284450696243221285009573014666559508276947592722102008748738538339035521482444973471857787294357887939349295960379608167108631843151577963961733874517375474321074989834395828177063336826245234949570142641216472900011232035821846987038441142844902501738106645348225542523213239819641572590539822330400091381363256850736310589707864011774700495813665541766509267859118651839301019377060805390135290963678887579291019040016079539150078770054285096133032788890063631960104254542243970358366424943093924124056595658765267201887388380577324552588472097600161684245380822509577421836900327671035578680817401829317676239642895868036318010149483859307108416200916284490636312519663776623916084845341268942956662939331713652795218740471993628074138487191856747765028601976427246004500934270093464356918936895813420618816391911873984815337484961236791610480444719036480269443822937361884047620931428427125848450899128418402629319502862311494707070267124981237286840611244211772934074637842638371236647737751032815132756020726735001209583524515199525301720210806833421659674589540795550231819299730686342704824501010328042620175150503958376197761481405042017199612847913880204055420339795560642526634978900956782446921490448852866101876328132502040489099648748231403202115763159303912391867597830485008200271682325966635028057793747534128281825834072857066596487677598600715336952341032256924746654363135951388111397828824786663589400380274274529327402818950313354005353364092930153901214981654425159373304743365295525285570423346483398254381479927267670940691364039514220846103411319312935213902597251854086332879791769289095250360566340210853724011664469023875126756199536801881050298748941202619128653867770508777428393985485607666451788538121544569929659836633813625944550485206338750462912506499963560311895011670120026437725567589919415261486178592472313146735279277767090936286370863604428294701172057823769832224310669113421022331280719946301588100041917268793423246240482220001113173312583721639307180104773691914757604066295661865985446984788972306083928009720712358415142370474364627889054812564006246267183719863366578060555667683357797175874182182135161952583004858591164539809542294979497494055945921574006328764045234558715382292844802209186717000864095839615620246718525191966937202453526779392657707231435360443265308510345748948079560614320373029307386832803268542354660098071181528341468725380691908691201104168912145063308102177196565070174067350038632853160587743540628802025324773245496498245939236547143996394666217816999846242530984195992137520020733680846299162106033757311357395990439813383658490312520796929391072896984550469787059612490410144066972244975946237125294858928354343433119587588114818284804622293095109364439790510190675772921577802789868196653986897850683483938950716614832375034396048197236222002019105649343838788557157207462728587039654574596302664623542831399820527598483632872672194302898356628858377360961452556945926172661627318841664836395007090594032760234085489347069537077727102092123207822620808637593109909980664576645258674168086504706524259378139967116907233314829438117613661980541400361642330473009863368833872921548941497828153059068080593315225978376797507835898306835192470359595435148666441149442884309156067729782029669863162840299752002797331079899730757665529762518625493674263694965228958553032129448717257250935319706574747805053433997391214121755058620033377831989082519393154055775205168453693744465103286692222179328660474809859560397494878066102914761483814997101521009918277641728002308122132166050315651968126601847756683955400767267657794300707646294948247142995294429449517335789867058942418937505546393190189403839751752536500694612965909906539624331121227098098290877740348072895785916137412642582445409197399320834519674103036099680148243327264616187851772117236402102644587646854448677083054375386307211152581459648115589253700774933403458418896520718947891642141804963556395055635815590225397763505654508790653844219901240431614753400569676854814343976374955014915452176294804412283033604505622327306045797178128385069442279724288963767489121087659204064173680079224607203413975855148336852721817450915601361624710451572865901878689059212699412312372046925845106549396453252993295158492914327307375091193666661511759716446098796131277132514308749353496490620341162799886485233296976131562130080794499787610568837163695268912053077094811079863830765328173799441741155175338273035243970365072543690637804898235755652272068524719151174004013099880407302198644791483873265438331484031686706992735943802961652445820575634277167656017897897372442944553710105566195717024215902704268211171353474547271622782800883054095250512507323326512209344461710856709847643741133370846957157973437500273666951817797895774267502824358246056569376231144575927162785844146344042660498897457311449281275878534114896452784495442229478701417185037926986694673491367356787160522646692430143861115137838002022336694298311230969629348042478729904719493672998449069133783493490594902628740473631984195041241323304634479061392128646727312160203360215921223740552187037680469251902762549788311198667818273358859181744092962942802072609357817299494323585988287914701979947561014404541890203223154207843222255867307902534162431868898701136922630162333480453978440926456148122476557332812898074286452868666744079414304170802111167660757387707367964064429735413965169434950839224885869222727219889943021694278743973735432335131125919483719569764799993447109540775116296078115943430231321082166885049673927874148616635109946051841201785295719625443284434985400441300637152299529112080441137875730661385416776633996349261368286089259271434977045756968430423457708947782914321603371643735417953747596161738461853360792360951712996362755094592597568649998880195381896994423041338987374506209957017635078282313066989895726360197727842519266824238526331155589418893829457315312872526756274024963864110930719283922570742273509460901250238618162082441510389214385082859493510775874461317676838949179686957495508034737126944663428501953100670602168610211385245001347738975981218359511626877626255181824806491489160130090317812872534142929299199454303915285215543713563501467130914249216408368967793217146102261691069156955140398250091608447220981435637281989952517486663722782361242227548026131661887299361389312880619218385516414692635044847553368367579363906578899195639646191928962373495295343333563859028602418920228291594422120996427147602059399840723797936304679074137577465055596450001027490411955093646991332326554218873499681186642285912146849002041769466776913942062472471550143193590780134831883545965218360920895255015578544407459759695194429442976554089475498286080674972314566152946230806125650644633862942594026332266538781592299936237408523132393793597292533508845237326773714180459705135489861372546420598313392153238030816200104291099496815053829408062361218931744548983206782114059465920838269769545827407398091854546304609070417639108918151545596431947694102844061322093782907226015910664720767542701366377913061509364594259447806545656596270466077562849886182458822476066899857619368556962846828965564841093446094273357926006517519755429141757140541107195446958673900008235721369422755667103613479430913543428972448516705843957312840335694927104229922192566041881650931528971745424630821383454857369425969918651184913085660106995466827211422348039312794859571252582208073054244257408122105326278443144643446275082991607109875501567327269344799409083498753520938635339741673009216912112254190392483084722557326983928999370340666256876088372419559959011253670921889226209833107155966205749931998021228015109067235862540647193267145378049759262022864453685174199238235715526091089243013532312245180803967945492795898616162725984865897058700802609556854843911471864759622937351724523328224557126417757772303726780325789330617337778716207631361082233093104408560793688024934022746319896387885303366601784330533127583077267808851135544434620857981970813582870019192549678062635136050881016408195579021700560691255375752213050152648325890421890593036599801345893705046293205296429719839050646973643857579936723926177757375389032509814236252775431395996792368354970339581021214330444221095669187367870457728636477190385186955320585544498556691829225024960592058097814332407516907582645724413419851609763537920990256580984784821327589600045655081432520008337515240356394584635309134748002894955183985457410398078551119038360393998542506087385111629698698322521819576101791204792393075638181965847379589151955661308551541519914953360164412445522735248343276083307291578941214842644458193624471170598227688109203999205445984711212984102929901091180099738312660227038368473101450135642052551054688128086473392048285066786802095609480074856500614690250520320225553085756483857806259102159759409547059396484247653032601953861659314172172361161220272051679308563882511981501354651061880069158896904720905776071280473005909727094017393419850313387123535892660034975857917208782612686465999073557791421079175145510473180418905180018538145621469778276319551381518579108824878433524708358795676971764321898395153000878621866128277090491452028387641632686285467579015202186660314533915233134967772448696394058310200568722215299821097287589265608406148437298994133252783905971219560727378283862388851945526640968131558884139078132420750339411161585394070630443178635428045983867756941669399409646252105963495535974470260090268940690104485969375073373179230594652108665386374489151223584951670334819391942939878405499583348103669800913144117738425776667722970170702124345854074593405227568235238260891658190173091444923890291392673910404865770510877943592549926169412051159246246648168675648980820558619791690240404842547663016807309905095201110165657564202422683498186119400070966294628890302927989483593578586291797852403728883770760767513751498975340652522372364302642710718172015145063805183208182215929107790477005506135342386408084404364630684035505055895355307748319808577174787753455506646507682440823756947845727303550422438541068461069613886637595637047456096505411107646198309777446610272737350228650595454820089728478573878990785983999044822832624802456668854845242687583520423292653949055443217206823173881817386548985106611499081720301950952312330542570248534975530518513011545269650229429336687404466447233544781329637900761287288509971170592416805569761553958805488126062541980998956476973901212965059431401038388815066920994306940322385020611755919283808387262100683187065019964445859443384861136841432951521419297460071464256427202627217862023563652893491767836920932079587076516572423833475039152767032723034005691263066879066412195213453790375874998995454887986835279446124849857282036201085823248424423692279537381372712123979829059532306386209162249911182915760318757781493403760772681094734320172593620020463657286157217214125393854237207913686996599796456660514443149393018971841526752965276214939294763087159262925059096172679940169745239919586750938046636034342650555853779955226395806286753919472679581261486393653049666215773766540065495642039101195078008545679633411382029677083096337637276548258267218541069063994236974330910359863854713632526547299289653192480507230314678771662893433243630043213990896558569829558235840205410195735260503919899351795723667530271296804523940825837234802199355520850822386909617007384572811951764490746098499173173713114486200484293356337200706220876640589702249494443875629118228988012339710564912840104673866474264790033979460822080614678926367171789272383684889884070451284763919949071556896984093719849947395485313564955800074353845535900882869750054053524015168841869157944035458050888318664970277352478178759700181521664945466959545905454317873667716979574041515394227589130647513572036180289953763389719765676693519228858043330445426941774676933925924440887610740175454285407554314505161844327430867222706327098559147315357689216511739856095859222539074953198730610924189676260124647832991948150362968037299188296461635996641098255387214147254068637997070220753909968259339473839053425543835302618772385052252087604440444903364214167357594457441442583061778787262251738180186239592532269545678731015871264162681310454899788615167600498479678858131642409767645545936478612020140131055387530153824404537244843984864480209302956647248649274047161165275661973122131724775054692230674517357625912413275578743465037796430490822167447557081117291486137738511382555022935707022967322163702454357346543725978110746565122623519788735268370047879078457757836209173879742900799419901801822221925109591871505455772873008217288705968689369891306040314285842775921583595442648980554966327785207236727715263736607341331935296144905232026227534269297886266561397300077757212608779937957290380767347869680171354378229021806211632568486350257980737789520734822063134369675455786434621176911864461257981746831165609685683586295755424922027549746990253540065561295927665712241032702464531780790474842931728536488013714024599553363896632892979251803480539422209210412770938113319502712736928265542116337840152644832470288879866457672549769537877166407928676192914590165013463866394204284349680553994662913600403291942774005019230855305745882087641886464074528139662469520649031895650776947399284967771424003687142131728757407478439900326055973565643004908594600247629465098421134881687410451380716442572329320371086725373534974349861664943542352756461013242702586918177880765429310025569580277118572477873466154831176228860949522858683285840125009781634394766242610642302068905536012028956176441868136470446186964310736487755647087393933811350954098149951615570744090247816433603424274977025779861991380727144515302205754443584149040117705979983381916792430554730199328265150313868744407685296067810177198531641268339404956379951279003454787721487738256954161562118732743451650000352687529891389222868698350493535402253412329599035031709062124489422545392027334072428160024455759404804127202297518336614055872730221364908461827318076342111470314060900187368185606727179843909044981536993311682957101883153855166719657723062957081644423668869576878610091932884072089700703931122593870223507581083604288301074344490372395532674267180043523033845521289384902391852368182157473847076483314519127423927946765663520422941746196350650033953222950748995748714148352194727544255524722318001971940190949641454935341653632850460913682983450280887619683591326952558356415951660060283366606834978883375146845022754408341665376963939492897735524153177996710584354686444508238858364043851265604031539225634306189731575385475262356716077564051074304451579006441237255166824701565773047957174021115939793674543905288523091358135037140860896512018391777063737312557152912242112727578853397596707820230587131140751834383418380108114253911603307302611913827329870701800010656548762978280866897171104612671096407689431544259912972558732241107775345759733175006096166439993627044499449229600964285551548579778765691141329877025291855787866482458076786428210864523926673272108037338273921211089332546917155693568219945979021759946310982693285616183735849009225744345070297000493012742595580758386983506636405180841584971945144007322644646312162037402633463264692853220318097396202801304112266267181410432175412343241954206759311084259134405618800061287600069438165978615719637951542152294570713631624058286310961413241457119457127577669709444014105810063351071298737475201712015738037239835043834204679563794477951570411171452120641644373126886868634393815023724098027065777554890858784121697392807929478819938956007069324365008800523546352384445562594522434294164545898424985745930521845918028440854758441740240397032424941201449072803641696373608641047298911638486216009529666131396324452717664166304726017501957323523073160810189464530137149154513290866466070907380008180420887276091541166955900293137246705207762904537064418269285553321946768936495288832392520424740783438647415636044880457408747452492826200634819014321050628491481841122340751252009168278971106610920230182231240078341169442263685209543265721762701583587071284384026384876916859075798790905259773787143471750134378205271970774675548225806082535517373350462747596360716529983660209123178841910868543926959789564119809724077917453847035843522351495131842679382400536210114744609571076982549734230540637829064958072512715353843764304987867158980052822433748787203572305401735382757915889441993090762091323223116883874047189850623574954587760011040634534066131147291183689159607805370626060199947133233735547549990339326505084086134202949074881838353640589656499178954055010510912154196337930150791671512848163238484602525573957257356214744108883077858932238720462155087840431306133789618234799745053708248806042724586368816313910736296444443982746663425428898040368900339728545247627411376793006972162508619240736900853458240649503360769301187663805618927603746815496969542140250238356196042513964633388150848872198561405009297263748100457410880669723282806022691050820737494006286729124528725837574467182206721010431055483257930960729770176122313048821629658314229313536925078433467320586818508003054118245526894787951274317208610775847032408389893793837038071244066473697670609981530681296664643084596697572445974942786323316513098150501908473746303103363798815365439173794687276415346719236726951520536133052487981683260222671874384005903034852662165791249529058101739736487668874619848910460714723205706646130746354657766198243271679739368954923668906853580212425879919992601856381766761216565309396447820803974136797559284907243207746325513746273146099596160177812718782869901023324001884079973568298427869453816609434376982958917791698769210899084075664902433819930813435904925274183285647739981345421261680432084240844085384312650149935840205480986934677659283658038373184545361231427952718064117697304553157439396666042204636928395198683936059224207124561576682583030860838397899903156097511519594468986402030981590844523924612034369878619477802980520343416684890492011177357503864153768999701508853443706380672756627719170905218213744392359803574759301414627720519569336789061578827640315131398384885520197121006452736487534529344936358868314581604218703465908187836165338189593862337847184650349321737545343765956466970995144067515500070851405196170465594192506464243196251722518405990883698826800819841834973415625964541723477825124057698900323159180835475931216456926310477892466711951639560098212588528525563530535659111227516838675947470283804078335804697991829494101257442652592758275034902283499359988756332096026774209018968460728024183993683302340049976260875435725682007373149896838241854298456066372484587266018318959521917393244475218706153238675640943708621502690639320165518206574266976085021827715109962414463999663325613070124331086991772236037103097880937940343528266620367478840192505765819358541204923936686927687213730856408182321590824220253463295976916480203950126534207920840045633322720769206644850959018966150283702433632936732386041598082347919094491609958115699369399249064254091361771717043808427123793199723450220576005488934791997811052368044521519242557390041779542619721272774596406991844022074659018040936673648509260693320561802099336378124959300254145665127563396098809556851927184759115090758358868003346280834114095758780989593547820097778680781345584205796140278909887412449143872137761177854355547372494394956542051425430310571172245033363619370099426166517241669731467942177011817822614680124549928465106553327152778141838641650900741780959877372195777325291562770789125553333876021173285419688941998778206582179018717625402675893275119684319350557996302075904206595214557889315399943708264732738474466957971291374084716463829374888458986884726556391685005817115860552363840242482343737166690330161360993708825151054312079521052605199651326425444743576070057961696581471514375727109727805915562645791577080376050243053285100060092039051936312811399399017082556608237090984682706362030358426923890538757336287076866526510010142348724777489825629442572170851089086983126670952546734974964317338143269685602386774960333856447778841827500073515289365495078625624264186518273485425489385262295736429799279116056610623340042269809658559004822402632954757911372784351072305669212797605618112612921735929008808661913243433272065872203618802646162472897286553912773740342981463911485706127459086216629602603370392992549018113319949658758330169847640780149108836200641819655586418411312836552789389965427757549198873043647012331833173851759390193589641057731897809155637608458784575476859440446836143298171426755113824859351687990045569651790544782251681816244039415038366198092781383117144102285766669701317843748786795444212498739144447860528413158999135026352563159218209944842344344398602333345922824059330203149904631274101211282777296757301359854343991867541166208654953653668495730289381291345948769234135524868814453619726768153291119851338209652577522341084493423503387484277127461899502039146757932638702546959240356661471687576039742802909225797115335487933355868089410912634392365009056939174418748924893044212124715023562258114410967426749354616891245329368601458052753588478547981481566182438206392648013286261038542632762401477665501686056066973977919961165087265233337244524029145975189293653588362686140862696104939075966919856251380588777166284834581666252531392677730222656197764725718654561152155515423775551075033753185641490906875796191777194583140348078850305924320085602607586635888366311982019500985882116016043372288540963111709972886753090861272659594909442341392307116455413735085169338741339441068869656899522780142629781290231386480323451654869357848275160208651112572146193806019148868219067337321898770586617294061462970754842346477932128209967670381621568669384699543471511758196696059730797684654435996825404258938791749059255837568253109071205367079102917525132982407256314521534845779466116586805489205776070976135093553624205707561369536962505002964229849091999980218980677696344452143756640159460622885758734250666542781650725970189698771230347906117890402953941007075990757369008088511290180261768499961179137681081271027715784167157511900861419188712564219307030732112546296098558189403904918270591068168215602673946194982832805072566198089250470435598254527950241476454188468887714591607828039622510825692873138018607440471358837311637398775683623156830541741583487909159407816320332001855229932634317172942504759505913466137106909994859503776074669427784328968990615705143944594667536243496486596228552156096365912571914421233948117042663327538242995942964156766821662827159342420945957015446468171784971872202759882476831094760376159569708769818265619094899921184283414169830323138030532446099922720558522652980494255265757336644399759209985755307153808764254354769350210644606612618483369514572128637525613041755118590253797766939963624976612613561712993167138671250640194521018709747416635920549979424989285945371975517495802355961311904371961215941174246033760597800019009910942882320987693416808024654244644180868608977531466504737406617433653180935956740992985024217506525429670042310845016656360221536216145797898215464992607595124764385283716531785096966464625799947992921781489186018862988842733340148048845868952480249327877770512750297615952118540803861921292155978332471804995860936008926913310353841720056012076467566914228959097157318602646914271698318481669354707251668649013004435935100884434182850304844591596499348630264597001188971216848521597731648014950620781061915187644460522071564408519560271580718394456927554789486006458082718607460256759804182801905292790406861272464429450419100514992020789705648260968918115175605140994882195901110131365507214576699478524783273392621066783957235872073235565851326674121455539163406797689830071349708171804198416066150210761656290010263145367178098907493518793386968311430316870317360131894761572367818674012890156923790181168489843040853086785576354536197861425898473592839107709584224697055432561576314990623452595064225326101933776656805897566733509337951371243401457608150983868811510810502785613673694464661187622302868167129945639114581339736231266213292598320638324707221822815197869214151662704386531138029292757183856586867962255158394124114679977121701127598751485307546982343385839525460712797922407232740475317689041322564278977136062771650928469002682686959222928393140141552436350986127616401934685276081782948801833660006727941744811487778318214387024796064220148599123524869160496835503462198191492171795776954105742356346861529861898756365026228255138248312214930027963371478677233275975849419304084388405046946093480389583352652930577744478251792167957844524645886097381539204542063040046648984748207074082580148925663053214576676450916177880303538469816582314342165854490687291329517709743628176518240495594932630163866669068843330978841469508191440350802613788501192619234641010335748382828662675872640139311857863287336186037656027401674312363107628577101423064080257827943562538355732972873220088762487419465148923655887982136045777582812438805439817964726124009583497903532468481325221845591987157741425887694793973736756147797782380577988426477013811491763534116398052025111820669784899389743527536427534941636050331506409772607523506269184140224826246302837067301671108105581473857379247021061871007875453703326338970122012344313444134526458352736697057183345466628941907728035668928001082238702899842923974939752317461621623179381915810155198794537440261885050135033555870646000918000020235017273931159619359408968849302190395045131356568789281959708841780578864458571017942212031715862000122836600172335574213706948233108644856791658241143494565061463776471631455801297272373304516140109417671671704121672884940638201758761590549296885552980362445673367889937453105902729875780919303266522119872032883406674926426711405831173742482924271345017774662286057909928535498322089253262297070126887351637349224574117743176711501379461361304718864587622702961616545875624769042082519599094157906093151258888544394411542238716102367215959546969196614580190135769887501654868430055844843161497786597004809854641117855741518406116574267194266419749090666265596462711643668083201199502542862504296035057347425681288635548545553935404626430016487927511476747239406870989568758962504003080009217656523449140119741324124068264886929778993282826458653116174140082428912464242269330240310916604041853863707996009760146746848547336903037908856764761575003418624415278928023903934788774495311097604837967272112344049066418533304396478057764885888411464045771087015893647174460118838792074083772096704957404911357145322248441859049843836930845592569258742739246354285050032586856622384247699669281720804803096093656766543284954962122169153629077432416921494016820235955916314526372667488781255155465181166084712462196062350130666638814975872599663861312266406335875375831028667852607494721008703866154368128336274128508641386470719807256907197370907454303876723457076323426702580457090804396417674245389531067994402024851661368401666038878104050286485598946092324384681390440078897251851711740683191096749790997521386451876802838734673292987701957447525306902584379638474612560488585366870505683497186339244058695993558449214134382756824222247035606087832067620333123208397561417043078914241557529268773922705587839002245929696442667100596594043711093460964609883350532954089156569797504710858935271934237933963888254546668596547126982035519136279323706051440927789177582636960578557690882319368386190160037711766469356153478759599562663966011581164455489431816424384045333180256417219045068423141352180192014952105803777150686666471236920361664524828422163238428839855859687677580258015491601535124103544698172619739147143588569084613348952468473566653041748226194738905070173327016688891211031191345958617203399128000990779262859971828872956262039540760514458775418937240413161982041833839507573018824534432125335716104711609413822340608801927852244867709972169266407446838362431792443033273254226283342023565921636345936410047961812488717369222046367764721785991083853563990252618374794100367673429634905908207051455196540492036559803642840752818432196542839985627894391476795078403797104990982364686082716573712045805063875141627350133356685874884266131088496216498646476500693430422176019536257135606934141105198643925061817848029028079520521632236314549234441460262766065954423930168321708486529636210521494056610761327281460790208164573321652587007131668168265989171421933421678436439385365292309133830515542699988400037377134104858218036336073536489439310370611076813501512020147116228200344543527245344252047131074122888231945274398515227058693835006087478499612389349025331590070457727151401005818480316852504660750085899713187211585054524868743485645174867538883095739235004714451889690549764892103053246321595743065368204847969362898644860644189208090115850910678851488253513795548489382977324048598572376528933449466104004969488894281436401892766256129552291558364916742922606199299191172175254410137562621219797572649153900063441396611940882178592745274074096765482973334052669095236004852076605840136179273171747602991104736934417068041554948099433375621509274866917256618190612183641909721864870368469377925387022487911291391305234822395504642758142454137961875100279307969831549998759362038905330804995788032144734613531762536014136066656120431866275758705194746552289338893464875695989495374768735595050571664546522211397396559584012936386514966176859985350036985183787559266589870772274064683435522768261915548855845545610975237516403164082939378088847378510290287637787256796873567822686303124779333838362870827229276485917911975691330559099689652811567946621266350965208488274316611171379753549979491794602538776359063378265338930393333089048908014819361438104520738292230008499509195696408359418951275950160208821636867518193631450784373047033690029439716646682830307611916571184511561333016636985100840108354325353732955398558749366079713382023748373043061035270442813637490906647460595110145798194059354456535989651599188570260460537266138140966250166423802234939096878593997417974989111965591128184853240177494800410464333814939638825444239131619010399497677950608049374918500953856934896221009650491710594603306641199178021385862461866322106896200925250163216507636912180553048364967842396317997321064211108798777145088833590536440886323461466455460300039776614312609414844656112694818576244472604225809228529877878895029517052589033125505562416430341458395030558676109654583507709473856988095615923607360712065568203014368206872567128847950117257072146613377869618091001511458554753476607870862552941977907549472858222577607860745231681094878513321848315898074064975732784151019940657062553873334489541634289586092835415975318544738444520257781634379418959773937321786582280367812257902374554234007335194968268698390344896418844662683401535850873777327933684321140350097697997616297638949052668696956948440925902362419595762991174790545365545848114960399371355304197703932855550100607160874397701935784757199413757171325614542040541099660832619605455548624648006729195608221078712151755741263436764102917242437279580680884196505506301772845420134841624793637458212889609412373841000740443499738354735547508923315221338246535630884847533124618369433786167492232956059814566392947983516748540819166962441708657156582858297972841533692227633636291694557125079601932734897909099032938857578399902861026603079335318600271662683384269730080278408281255988289066816820250795522935384746368104878641404502897623041171508536643183470690350287343464436344996527753803350505085999629447250001849410280019462012304573696839993656002342807792607160391094583366337453308316937961312398281669395232942468362317065020916446197775782480492321709218812025535029955647792016813167168208713582948961332068184175462953725514163613091778549878298517324282184826035625045051032039717148945736339397921114722330515728123114770300379327864032385797525916455277639410300422356123248919099088732437324448392650550312646008139252515725663342417137050918987109380775678732313964451443093276335064620802694608057386575208745056022979742070867765286085728621085220973064513320609717935305901187160731705473244955881190695577540243027152926180587391113678004871502833433695118057609199144409579087036402032430002017726540869681329543424336347121641933405852215335380881300859820322821341978485424730345708751276795690909062651827025357271349160827335567503697924925805845482235691033346882723800264244944579566259209920630651034833184268645352772552989396167867141484194941059305278990882358794620335941600948813878163714850543594026824569169382160009620114315781162068869176192630559964027490700398997205466326837476305945682375514016902602883634207455762763818083695962567980948768952190309249259730945781812818864922661854748663916361324976749331418334086871801866776987617262851719768087901268171830266781776275700069458289703801878954573863638804015142355399560464292381170334120728948382504662790283174255793546777429344351422491665851960938210472761082175342886630588922624970200187487675681071970333878969062603421035124565254266398174633828723843715387885154238733250666807849943730248581212422973222731216676324125103874732364208214430259215997844616938029981754510229535748518264233144538140859546924889444889577453175847020784249640930903528466096214887867911420633113232192676595375198505732479273864414170828898856510347770188099074547152627008734194793792632997890534834235464500429293029348097015817850115069947826617116960002545601732948591739010360671036936125632306141921960149040871545867813138421982348161063749919715273512424966325993490009898796219309178367518998088898692540897614394693263267053107780724240058160588574579095177714907593200359958208198793966737619254474542647583032737427770063066843994084612280013494119788731243697475082557877356561056473847197430225784623723062476750881826425089743303968908471273135155006906812661735323718320001644840054032624287394612691756041501303933768782322563809148629498022991419039039453644824453679699731886216997411519918438886561560826007926401840166466206152162276915042580723533748216103310915752627322909477750145533225456188712799832941952667170384162247144544711716847078530876784665939835731865319421106897223709566027585022273880047815191110688590730019452183659616865091689076937863022746485012801545728515138249186145403301793764624900746873311882986360809590638986061634690765982662007567101173179492862412839774005804038779076589468913386622333358276718086643898800999793070661705578935980873044643133855682893277106143145646166956287646471401258571074294961089975592538371502535980724240033514818472865449930261732891711960239662407345434822395891258549261421155769508577626069650007528549772162141005957430931392480992634483124359235243490933092508649184777160321950690059456936104339272648720898947906127755575627090455873249235909491968277009806850223249453734370749065630710521775099907909386384400154930260456867631683545725346604465244401338027790338341832408853364305225117495942278050808114284694308394487190523379442776339913713199190974785004124711956691614182856474574666059293407314756806991298487981609937456995477863368790886800066868988098328707275017635187759416691369279741708609590459946178354571993640893391765076066888120690976740784534764398476330959743147703995339865250846501763097505964797305476681588796511801301018832302224194006751334796498050916038471173733177215148652580115236292681983195400206816949611079200382623293255416080120131354166677107065015654643850482087520541586983060372644491988340990971133632758536837296607107451113892714161767298635374767050373003116967278158429433123682074705706602983069526502545765250389809748559311745214160405749285922800056431195194874281550637262815902691446329237979333886822956044054000966364225344800915715799688853404314723392780339281361105307372370142827254203261670148792778879703986032118470668381584009766763527197658059742620430753644309600487051303015850805716459262473739999422961396597150040380608444145974756897979035632107641411170316786813502507096323323527859217267152355104490887106740552227913216026105745145231144765442107490979633849803661649176873221871968853074266419083164338121793729066617719857247249457208140273075913173546906343400460228566851109483670479913545342280045448208495996387298662819438578212785365393413559632540354345940520040206770021941565610648999132047147550751232784429010919132650619506637044933785965182150921169188984751110384610891501855478592786435957428170634242827608898391371459914890141585345663690020591091320055585184343686783543144370464128608479283811803940130056170729224944276771459359895982472497344515012190362891963941752546190820956384271151014323894958827613700148349146218995320676990879178043613514221920411218394545477281729826278258890759891317723795621099314795577709073790362742539088847102527225464575342855811335591549092444424186189725035151426988239101440242632270943771658874353531812558341856447788708146317186109220949858673935238701557917896099425384878950379525005709695739999089170757324578209326968773043931513611680420627357971606650458248597759643095782832367738993744130038711255938227533071195568447328455386231494401604893087058274303138752048924522514174033923016486877488326908529757514794902169350406518672609911098844924438159594112872195283216966799392364051386070457094153177473393228698490159456591591314085604689388728631032866528884348204385748201408547195750841985951264831633862466398422857861349847450264440623889615765519947710293942128526037885575425413674436326694757798518636550994951975886100743866177737739287016768346316329195323219975218466784103880952305582382804235714354526590406110236705343903912191132527906492825181133365059576722656714839279040828608988778828929982870598474424074821879067588137746262105381447172424883373495300884969184576643015682484529120397650791158220675917182873620246823751657156597244051810864119942448423290641273421983069434856087252528707034979378516836039666729286541581183932721255269348243351658615215586114385732868630226900469054583513355916645846191858525716665650280400516733194666387430820595411456151847228927876820673679585706059028540154542689343209843849987094839274608418993955582248976961034024605850444410600439318399597107491256193455630671436880676815955363833937196941247571317341296486115103766849106535969991166554163781600463956739060631150988050402434845263665719850065039559279654194668882926161278540153216072744523205906072078854925762934351897027235637495922282825150646466151266811357155749840208280232319443445590074126968502499497026240834553715307620062802012293719546358152239142822717123859439815492660669790691065415143750912832469851374456027507038480886063530696858764446915864002677964419731603735499051499732534137211681073099988862985389846946212082720307885326418731674938934723034988301963588508704388340360150163109005704911342340285461004906896542483499779308199533337843220516553657571529703281238696372372737572929198507950674328691487491351251415808349384863630644008295313998680649362277183409588119340171208180235492515725524726725363636677861364939778418352232316190316846191763222293790601690244031817848745792761991533456456186591499438805471204937326787958111431766004794153791417406889200221130947234465816516219392560206691344341935713353691183983089064999561429888907198270988486358653894975819012424496561554722048242655208441969910733332410789840766527245199368251255550075962478220116011631957539578090847035908072924664153757624952738040403457237658896746415862937128016477059185222834545246238285381688822636718945182812325413476083781063245601913018419079948270547986867062688425334547933613501644651954700054598923410725344186186547596679422646746531166393974932926721642701013263832900530500811731977030230169545583899420747465192419468877736149307343851382245604180422753167021475917137388625650893275019021302312153011225955440188071191463100129303790176967812468044130786853140711553198910098037306144885834878092939426634222608091811629760355539988882625187499630258892444888698283399497854655767851400634816502451865582855886336343738305923422551702507793441300764142378803417612609816624725948543921964746530602477157016500191919803314795831640883929596513435183935744534770708885751832245152201714241067398453120546906102558375281096525601811653437109156648020203703125334384342403614473554372964890305566604968175756546807590645462254178292572385147817731058286976888552879086438696035313828656370875790219782997285980322076711118851536295719437110129929639752844838029727223103256480303748587994047526903381471248240420469578094698860570320329191106302130099217821315630779113871730136009996860821334014655907108073719947969425289742000589431631660504756371048490481434387152234057639039692230322271127653728772029383703093238155853683694450675804860878497354222337831156336974046502460149682855965331249696003864978777599026875139625143437187287841291907564721436456565423337205440202830927332432040111897780077781422092130624875535531582679420193189710774624530318990013757479935787452054787123346696419142355267712537648486164118068935582064478015004623163151261732436264132226943247298683332373288821670549835971326500453792419181394436904941091725006298222045913004938742940496989675073623974289305507596469773378090020644188995793999235383732350547598070928236288151534757237206715934701113693372829161693892729312222789071355169821388567719705068117246574758693941100163795270836649802397861488083504076149110979518305360941281210675455018473337761139059649638486540995077498366682804338315949886923916064183189212749524831335663220346408160662041049176688386263571239592542072631695089362680577644918697152454566133829110674329865040967899066664535459627268684549897934312753798981414143425596854873677268092381361560927078102381692778465046116499453986381946886454297116677205091234846489775566391197304946046475952468973693476239966072305284848875185052503121618590664080021037728619586186185462498842370471273738431869426959124456110781935787818625711993260917316321925440857476677084726972117733987349059797345414182087168856076420349371276849222996800986109554579627141435782099905339096792725233648580069663603493387359748297871130073166331799299862285455076389482437923207770826024702011459147312807813278303519745791208246843146872750377721434557545131261914727164871783650811307101075773744714338167400562946599029493176500738133783891035572636510792808930787145909726913194018412695165060023505104235529188033490057087649108593166239320474677769434440026110569860184579129216006997338273699375703876837616709022453219096160290531596577399208847234741551685273242099827950814522412378626656407285761849383855982889573687757595511757424764978459627836682657735221062314962736124586559425445136332642762463742011231808742292841868190419532955206525054025377393347455178339264628469258918141834804341215510045758294497721784208742242636555350691589122554642241016284049522345259845784349111954865339721575153088283415107707858157740376761568549833029816783421045166979083115643191150317967421600498482069750730149639361918631110910169713379907609865016274779136947634682204281856462456313722734135331211154208648063644022786027127242409717892885391425371316639414713513495373135472530430773043810008262632740181477358851512866598040250635404938817639818434008267000530808437581468052582127012429288706489232779421507967186887590422806540903744211982841577943405657194722860482971205154049533028950491544429530881048258469218326642963817681731325562031662236905548060227333980400045411190026327078004525706803126726745708365884892503460049640624797118160472644149881884870245961935624896072880156684557359829426219587448468277321206764502862579483424272168634407387852647485803931251881303478963255881093696963486626548177691535855672322950475584421190793899775820955193621142883060648196126026652490255716558196265741351005892857145395181521325926790589168812346428310537585061320491232229798112827474465055886606291877528997942100438207147966586036845455153622739886909653757562971210090428358643488797277530095471574387985715993637342709838245773376748969079238908784931017207008261716495539697848403685392584014679265238097265197659058168189207911016776086509349905818541684138717418912550575913461962652922152583723287719431076829252816319195343102390007174895347674886889546058564098474220710833495539794787917507405789874774285847632493610480546307374791739954551380705781197939815871528338198653164537086051513993615333027147576157987960449894393984953374719382922601502338124502336018080842021763633381371254538269241845770725307620171640804095164627866420122290154399270141051057534013833778544641123306044348350235572845764408252628723495554471575916475661284539340463386005912038397105206055657246140519286611936958053063659468410715407575070370450566319465175040595574504162095982121406038877090574757215166835356123681350112871492953981903288898607132222739560443422842227337279999588321464439303648618153755267413706988865567349340273297591399300834029952877372836156615351415867223471321843474854183781908631588701009408912905619323805994117867137245034112180721648389341537320801677018933501464092462317493410322376769946905782809175091570906455315238904052337415047321761891211224210652177518867348859081864453191159904508721238056294925277204097345332443023541463510662136327091234453660893272981847099508269091173760035029373316590389959942986324000362987099598811265572551123962647678900453025119873200303648258595878368746430660407404805732668930348689259309223002764115702346124953060144502561078812712930405737601843399185237776861213828765721062981739731028474349643490267794848655676250947079199459108121932756872577094701225359588573491683692502667966022229301920135816024230391903118832654843970650987611335322058752717430931092842251795298800716828511864418609708945232867191899910023071390931381327783076034621387952326041117909465748358292184435949689247989600212221009923476973543726576019814123952937807763906166422456807444955712245620174644710050469508614289807088226245790506083324549830991506009346165280312327880516705049902649813483238668978428127119366799474999624757032800392843555893880537926019426545379923416263208672245586163807614680211286619337993622717266297821311774632947451484737784282612116853190072451864407429371678937979185916441230719687221385311251218040551802941922072148130631779941360616368441040202899192156037958731225350817409786379484340762387876699187562699716939666702022285710457252445393744135544562785798980942754723375534520093467664219471859046984453750525631883048517695919593121307519489101301031319053768385212221653352208207121021421717534715269467840254366521251925915967428693807200107109296082675033213818966670798450801288054450055938347999720769894316941411674613097666678117768192774080702833077315397295332427336526923744019342475177020335639086580657111358995999728152208333453396058242333272028420080287527016330714036741481594655735557197291141651987815330613624768653705026119021568009655237542831018353367673515138204901423452140358196955711595920403070912452058540771449278962218677237363242240801339140048331603182056290627113599186347983808106936999994079203094340428350167944773905642368239000406617598902585935632758883492554094510806307823649828841363997951214622564844825498083845389713901796797016580020043444717766289512412450593391733546878669932276015111629159075750594798134659699299716444651277898634399879425748412044237128679706047039489931118840933922101413418479380098366973280503421646632082214350427704666870356565857493200285370665562170176876794908529997274777564592888999511975704523057173293549377153702912388310246765472723383930895132340781473239610693116275101183479495574220170702707780589076938433961348704199544808461474170357783422512439966203020489142912273326322924569808244837295083509667975852069564851365439681619284592403417220298943587004617669950708003785369267408925042193606980370959366580222501394682913718243062640455771996423729851005491076886854983921655166460777571550352232638815292822006145386640493659962974708377943396717387392703337904917534556450767953518727676067117941435229279365628413573718463621243047873432768932149035759523093755284882870800856281304218896586190661422572287398747003474253273633119841028889443505243333054376875298655195955856758989670786912533988865955355758579085902096302258239850097974481547729548784564643936121046321920550932736007094806999082911795900805033197676907964561014276838449187819085064372123624007667771582642280365110529326893401431622347097728893179240994364168043629538957341671563498967349413260746953490524062983787206262491727094345129413173148476568321579868532946517897810097540908595211079708591420922719171107441519576836784986069879641808468475284191115623952329213389014915871263673718885397568960398925841485182127521421328687885099238783004612018153984007965885331221804843942522880640471281952286375613423050799091465262737411735798907169146212824042880751670149574175195759769585350334165226632407338579136809068698052403576988131733507451170335919306963517884538744600716412550242491611588772522616842993896958801525879410178592797471331104169042228423968383553757907805391029831419105067497663242968135133791135446151831495554053670673517366220711373317475518935514292830013766216606884969700143358045977279933182736907241328467642348762645769683523344933931119221758166184777655622226145538828440006586828805005135379398686951856097229341803278766421899151336543050391878641443577920555811648923658406305722131623474310941086181273455062527890643054610430030112495042743020457085372927794914978365290811161986265369338579693630564425587114576419013845503387826168533484363777011563168673022537829134774828771316784470884006302679706167091782578750488848604220287542973787237351222971108991934024245960550866404548389340084075300102748132623115044348618682628439628300162391738190191174232254559739710190967675226194632487338792209565175484188279199874781963807714986850786509258518341496629446480420547849455728237835194117310199485047097514370317667429460176463150746097728090339555809241688514306659851714692511804458546074556918929806984637498726581147323498543101377388209869557209413497264176477039387079385295924612059002558876888534704940204823841401267835836984578821632929944343543215237932508049401823643172180039428302433163257522268368145561945402562945425362180261145545519925102344988532201877864080541541960648404478700373973693138979048706995411275051614895807052905623325624477936983919970051541340455126520801383019404995214175077603104037016053813184928839154841692950966791836341588646359131782250361485951168905014130878073326448499063448915979280640495393994334744924706123585499976381474693049205376340725651910677692426236896655015780027080197968852323873225488877082263260566298954321964283963133193300267817563957807250371380735485266380759134086524745252214382237078573973547514621656693173069450370057651913376510769793975174800566049361474060011386451648702594473147996813793237885207264030616493341145304851952173299942344094766568234945243708136991056170016043955030324794623286768771164107155823687883972869635486069689660800486004104253969428405492805971251580319477341146394080309674535888671860903628540366199884520031740570274978891179755721346592816344208305929383735706729869518848637067544699951345974987972063308707238617285055421191104921407041398253916393748269645486510707435868578522401930040427246066148043614736135312111557814594011579229047516256403782521081183459488155199274249965845866970159599572412313745303757153844365997679172751542838520182717154707563471253656020796240393354402237054155876258204272778899515573531075482670684338031218894286378866280607931110137094892569689232943467775644225127317760213932852291351818015945510968525924101935111014250424818941943114194298611780602424825789035933727634454849885430020468615386408174483901812665888923050552759805442269392074836327183199709195255431755383821156061451822196462167558629004995614479964466271627400632996438957989005273493971176001450697122045608553905047669021504499945462871359839297771405772650899670014479262462101990342479508594573496453599610338678543377003049003741114612650898696081766587715655674584534388993565981603012032770806184743861475665276734201061138518083518679570479209379120788582532700582331854634716665457574925791196972691069757632133386738510280727120621974699612568074566626163476476137027276041487488653701399358766307340933854138232477704014143396982465081715946987111001706506236618855061891658515925965723040896330830446347574231905814435063507322992812198071205654728820896715085374322838438738685286562858119451039943459589042740470892378623245971904760211586728317829704800995009393847342867767115417031912853793314680489841197602580052397256904554764867166294178233838169627299535343770879325721766205660442348179516964565886425356569908582190028506427483680537259799719895545195790548487988021317747671247353214126515905029944977864531506011952858916028267311450108497166212078292378575648387046137517603506253361352284709848568050050268357290389937548571086674770872245974510104709014898504869552932915919543568793196513194287527137439651431644617478719458042276778122246915933150716130935256896172527508982350024309823305806082539065854534119438399701065498841144264463490856697544588396598315232062630834188905667627356113679464455789415702202278026807698317815036256314218487932544537155941206918597990782975423570454297441037719611662280470642986220794165753366708671582722207546312431212945688931223671678353689423607821016053635486867879252235321951631714630254640643689582911183158987233751608783956982145143216191931322359161059952917037135785883866230392632888822477921509120801647846230602140241253621664081674595229953247419287064814466909931037023560061786628677183678609375168794904881229733655707370493625015551674071945076050855057454929966608210459802916904032407409045284592430824209583030021928766067921917694697218194748719478408039714512990195645990748040915138692430537767064161592055203114632355082321921702117534242309670701368585023456282051004113333686377967745920755398492592495400795962985680529084519836488433342987556231235206478041625265429945610656659404060492538104007734145188158290308911351741732476382817294456990417483092190352202537452451488227369391838562371443664752638360829685634694270556780089013769557802747818587498968928814309535769865921558921504639482781862245358574742016263308140013497841524327949035927114287600796071391865104344996055708309588314572754720761748624652588498091121916533672091322865477831161267551162351423680994797508949694128665561914485067766917494749289157420464009874229583231837714373957857148312868759531594134291004738526738066616449062555622666301148809319793133650023208244552324322443667071908594614373847223921923674074368243050232798485110725569530328717228337454580581297573930441012780135804124481144170147174960526199105576512729340981289478931970047080050397207303090169339561743550012570361137865166402942120889943809165014473205974811577655540261322398876825129264390253025950024554617808985017685364462100283390188451951828515017701247641146687372142759721190757383513804852496765127216804671489317473706475429189229457494141022656748304846845101280580529093990720875043032671413228156687240593558086669789770597291042064679260316597410831461376097466671916924826736993707447837444756883723567684703025100726471137476427383315941610195348524034815941069089805881335369565244407557021102090091996844669467619930914960303717679754377271998343442324628454522971428156177855293486818450220092145956405816858660132924690108737773973938475021356827683336976110697780469450122082614386020193321242145990877162099193205168199511053871230068839045995460572362356361243365738767831457868890779183995413019124540109747912595012378930778985368967847286359865777009492638890838779224536972485571243941326928598675999001544118220737378636620759009891979933304867201832776075004502220021478214920040987693263623504840582029245717011976070328669022131512145330185612966162865987215834516017914620393796563376567808814571687988884686711542817632813428042193558986295711121835911422878343925155568144055337253629037800404710592974979862785565301814889902028317873299854929376665097353597493335245123094052520791721721823252503212435229219005404439776464198638513390575536570929817966734551112399907654032591272408944095450695500497103606835537777562803140037528601577121005371926728066878982798663505392417418447853923494486383618231250879146667501516497385796394638378831130841891117596417408795993464395288485524187063461982156847534339601003742482477732288247098998246663095650282656212336644771343880932774093038787181209777302511469940504340309531458913975452075730399561703448195227446755655208386415769042632730360933734842896994355673954525340222149566295259907620244425993779297463149206293286413370966168652794758230123464873010821936652144142963360884906180455743363536101738436477253172058734587410420087446720761001007940817189952223382778975066201057696478598545611191574035562321846554096724580453930016244980039659433786742852228518305134499702337181825795816474651948783408876992129214582704512068116800217040458166888868968241893600931641447962236690342093901863090096390123219239733438542218378194200846058585598736128101866428338554567471861452533343953694162646149801426167406365332689891732995401644487447708630635486503699478405457247441202629307583838814316028058497227028960853883449545277777871881613081226247670146061852971666422013130999443705367349238341629979734465706559144580748406441448722886469177432419666903376791696262395171531698770911932338370784094017938136871223529007847103640787822932365201102894641963767435867910842027796748681814889058637079301804088136144588363989439721787079178680914340140605014392936527269638131324777803525095750322965755879336633383118788857162953536196596357585690199267986632153328758639176878920595247646913605612819770318472563619074050212645847714660254552725117688259603760699606140841868108984758802578143595784194059741751747277346898048090784395681854963869189568388320072529016021202360398482130358941507417010002876126986342941847394697202707814233846639214649255928382774319064118387445463725327513575505758271719009099548889290226801139711853417278524775429783971565950241448986772130090116487917077028407665751290893131050123517197866885588131984515730927480272473976469033160541584571433176780477173666570986839858997668671960869693853299723124699613158824069989455094224226623366986080757189281607185283808853521102804924093959388487194312182481383877916918371665876991534031054229457231238946374170328380777278792907611354991824112484015640464651572919712646033902234568960112957264911871840229390621487398678822454843913979925534551179791345596110742758428756892407149190434141648320570414112769941641261237489171450830309666261222075946435014385739541358578529707282161568296523156758339835427062238707684177108470439758646336621084945644415283576209441366874942110380798906753078716558121155178187996643873410691050986750251147168203463109854292104310239444162023787491161727069457972675445309372723046354994653286125948242710750599095550597237010887764800592259080842332708702569189833965326460686634618175148384105560007666360984593443976188574736197387952075029539368810821185386005342163234265288347751519989999844353496055505105600577212020377260274859453283303605036006667329538083123842522607148033983498845731304876601258450845411441291495018651019074911570767761154039013261489348380192240578848559510196802248636382366614900800897433764529778638941504949256039982907157796382019038390139394427435618294873311992816887035103562664617789487021254854256861950578796887554266211300601992338949568287982765163805496248405571585427146709370361356440939630815507481216987098212241966491536528449394633929013919752651167158422095690366226424581227930275140060302074539178093076822348898054861479957634139695830070592047420573763434315511616787793110906673636935790438221018581758457717161582262777471379311873891326411551576407831308813969222793705318961766738155939041800468315709293750876908593325645968845300547929415070682401797076675233996648781074391809283004677260821191252667474805518167499610130021547056867743718322926530768406126803466636734413074190125382550695159773073850225643064330452430220874406054166651018395559000993650187686604830178605938228927941890913988304343129212846084224772431370741294454948540992708665733716356921202753591910174834915056726137527311324292582630374044324875041185307595741233018815709526328100628538589966522108901453949787142992021103163230264522280051679407638833317774241923087519424261756159565963541954189704252147087696095141781746880777517445326271082278686048278054984309288674815217637215771300946689104603251594916816507743525918652291184153937717007055297276865987770018901489669743690827083820749891925312293901504134614264946292634547561880074212637160483664536992751548873812490822792269984522243568368722957288576307502681719547624349896278161516811410389517681646000281237465896461168408614679299281503973795911042107900094694378348413687030485863106957079959955324546272634170804545285882576703925961278473483733148284304888760718758380794410319651652383271899860309680434778144543170931727773126743489680076432255121474736823679447880483313295375273975713644087731142724377118422657198151556859899526081903252034558413854792537923054090377624881789816181664789914808181016634119443396408188165965927547829264067510435973169901883096446168250074707316468398356519221532613573756985350531244241503172920130923478074671037897465621728752066828551477917565386895794639615965100980623927074601787678725661433450701547066341327756019973499354067521327120191193083744095889611450502320586625539967067372664063695599990335896294058376589700057641260069192329507851586165533083180518689009557777504849386026025012640256320365150633153833212158798200819544236250771552296071302401965046599858070976841741149069296986391878423391947036992229423143254006384274354596812694174873604285702121058030370898561195475230353153870841158798400616726815550494760395939198255619870671506554048782183399019163715166189961184833133430398093780865328548039202132946305417562130003919188128401729632729555262249323773598594923754011134853641267011136350546666725737286170058014478499393949024744365963724742433942770574350464600067608488143238137912273074565996763278652381461744462646397224915040571297952998866896442017975154332246978100062370988435835866258589055195844052765227679300683409263790494729067294656719665856000359491924920137926214529915777998142546645702670711328008187529755514423819927318203255235103886590462509741390061626643221274557669539349317414050291853861241988705761531609938976677926312191315957075561740764127750964412794252360879915816047080418733755860249540528110839701450025616449812314075570853213395781996128030382135949495812988509155576622402755033762581913743386920655068880524615205839664883270868774331241840768327458177690335013293660848456004641793288187552677989421196241338814079830506200526099205714255040550441446563795503210758100858438631995932489787742529371071252729514294598439966444956380281174588923432385561846859999469848840795797331435175496460800533780948865168110082678804355248733491667657335575264080358455409648784286948413640939303077234625744815007588900522765090956106963346830542742769370207725521082926860273310956655656047157142792008794314022775684012162309843400745979280003297133797880401743396102111921911570535758546839416889262247655136323699372236490099132472117366375762431303006442777136506808366465236444018747190087492114104165709177934884711379545694883519354244243399087570875665751091748588115090893320503169839096352914349282350871193124029450091508268355609271216854566135795412002679026157005822829308468411844612505611780403597687542059206538523820222758094746885324675300998688496886476579593425997207266601423703787976903040672439186367663439898067925610792710980401239894060051703121814664269804151885594210579934876678338991461481178734573197863655502893094049176874848288271397062630224363153150836950796297707423728758087341743350350014352545924137115182335622625886582135142576432264811833691645202898305032139205509203586379682308507030808290923299128604437452711594062915842290181197538696225349150920853331609290112056420962353082342445570217099639539599155693439513099132275902913425090803055857430116602563048210228221110367585031198138812179483543763398305943904262146065861845385606759118323269781851250354357963418236599368918532116477626535473356151073789127086919649882197103732318257659166923066427380806214591160994757479804764225656782178879491306386553392101592422024344324832081046910906740751613690856564366996112658641355718636762296597330235170069477757562129986337567038632720359731691812622912969373690717582272163486426933734032534808827154655060713723599445296872741469356746854662212164377986822948096416893593081823564065417568749340712436166551365147209074627766307131440965817567251063168431593098947808031646492033477458970729633329728132066323142375153455330810106411635497239922272278080705316051937208563758742480404142025483865985315712608728116099145095443809058077346608231800523881962945272705611214764471988374987257198393545596298600117272246472501250636120261461015802366284229234950030192466860412009664025596968211148941179658662442160482823266325303471862006830936266279451303815591542250896426328921616037846765145041323741224817652839284456707554154129122839918533811004168998069600545468272561595847261084710098308836862256803717881048601538587685516950022325387120736082108036745546403769253973627378484857685357619152192297071188707703873001701775100843216946758154399515205861247346777942076665511666302448455460975884599809509086957878569705751748677503536849168023401532479057161974002833775834342179927199602235662616619880048829886818552809044759350388929680223766580125406923006854430679249575075102220155697700221909563466286808903530481802227975445135996575683828244888292141359137850138448623266872804747210859309369437251515824725595254749077555072757165823092046939581730186965920720288917767770990746337893899770114263058691346321351198319146490266220783060522318966438898595634674947767898552953295292050668026538452861472213838047918212374885120414374394386180584983729887366556871794728262703243950690350571925196510701138476311450827761779146782912879424487269090280698976246192629196799616471123342146770708423941232916111021900040302547520344715164295211333218645177566313933963195135850966341660215500989822907856963852726973975119502030273214609337757679816345673955516166363176488849010391286909716741799093167057183517298019417789605941797839151215362972358451333557633110748924638657254960614307145380939541215753601373180030304650542936771798280827449815213383560375223495674563998842011459465448503964733269093693840388544930531351470923682683956350916328409190291078912578298721160176675138450576330196357403166077337965561662593262124596519235675259997907676746256255141950848176047938550874340962243168576936885021618114384178648741453041751728302616391485465878291296932605512979437152831714014928862380553314511965294872267401992614532580509966673921681805191733570949664656360281647707899992437994992424679728115204284695298473319073349359079895631119947492556455057370989200273161946634078268946178721012774348323628895303025997658860697372130278881649165820675505607600804670170382305365822063970297209346763171467658460608012799190923352755352217698027019046835711458149880125453399875491848333251475653335409201665720738084670377863275802432158113796673944470491007297991947636055343452889725376115427529285402002206435878812803359422388238017374876282554517021455460680972273787307712660098743364700740781592486949254610084227121546710207848422435450227059262592031128953613802756340599210949846110491455744233463035962592828044789633562865721506458156170484296550479077434372786777369775377481937616686695644834233972428104109819522144285431818475250739361248859276480090274157883125240838940891466724454271068181264939392787567359444483743351410409907978917685682735546129797134336152807583406282571076744974633319915311126284877011195724524549304148549243073569412040439707858230957276444150886963016848548501911151330714366166487375841094280636921640898641878531797818468931189866157226354307952733415098363748989357808588946475561421976965805925859813177966542680284839731607885653674427524681865397334421276214343066093688092474836490927795985009509687775966424205004618199594398122491820762200831614144129959764383904451578703009377769596487754148206415145412389456157264958789226704477324889147883582611066737073745809851523963258274571441197063882758593545710071525525642935703364922186434914511198087191348596576486209217936506720659108710226785438104263640155058957182440195306783059754270140261958427260374890329549155807845588370780904878243978075261975854087140572511123816586284003241732164653506082261421640029957013558758793458124933799719567751631258230676807650880864599041140969284842193041395202664564597582118972848259521517584523950669511757072531324744382762970796586976682707506832198056515592669931229704488369723565673530155624253042423811528225444644362819092711644421678050249300521852306243905328329182821573872861841232638928987628482129576663810724426106135701539866423046406165573308055688416986165101935247610697635883123663229296750209680407477131627789075966972661920240616820408434563319204877251025632506787978825676521104340481932509994030423743024650214907450919256439552596241049521047192500401582868447830036626006876339823250864414837158068091874626431076798707049101069530734572066463761194666870380640059243036403023097837536523963946611846839140579960844600229515371490513121065332542139787121803925634480172149730180625937252409931700751248275705797588901011817220595369998339140975544607371795175909122345809058448951042985218214326993678356999285066655588603751995037319236248330600996690450409202451799647765652725359474384946994501072408142143654503413563248057139412958641185977287528046703183420796416575171587480747457022358899588580948472142178478668608331812064780588730857282462405874912555293395113003533887783310558039195320086294071279487428230770845608393505218749944983954747600961781530627701341576475027508039208769605229780879776301334718746339467866927029528194303144020618327136337507725794858742376143870345744460430664512924312965541377270847440138313960070524559812678815395132123421980671067764345200193546067791530405926277751589461638857630106241162173433059655288280873478972559547052014657474536331431823332783605734845459800963567036194327290564849616110700526896023611774410373823137382265754997277267568901455514607773270682370942985395524922661039266215226877756263446146383812169621405719336666645774348128445733804225312930827029953300785142433544625037541490658690633260254603462327402902395304822348427929743292951334963128098001832011794654765063895939447391650331856074501692126357775175015790702140632948847415028728889385640348980771578525912158557223821567052750000595337956511410023475998983333604026019433016676810391088061262017491649720726543824866560565943321042314553822653299180753090330366523607803336855261611723506938567685715701967804413828949665989337720077685977446273047518102978365849333137797637502263772396583005089814944332147818372756438788246331070979490759270629210133210111100764710280361374509060136781465853607071021541305514974754930237757657095728259210132080410375141857265973986876455857130400659269181906253597397930185651324585679586189158159543713956992500245239229608440875233786005129207821246922619417912284669853399357048700697812109888886201161572262868729722288639575254852464498797554810221693964007472263650352352773955849660316500297038536539483386462112052547945787591225579137164374101239298898798296470940315245692034783048001613011161949903468307627430493906659702416153275186195278441428067153003477044954417402089451703329473956523419204865926137996905143423419280784446095431066296714832061273094948917922357389779492617404096462811436003404105357943784586071699039494428374503480288362347470822794682981183435436497200093434543085224280262140546716283530560291635774203039306250759308065289688498093286994835574379730683478978379750513043202642846671842244929861781698331597348388054115370325877196850767796897096380566414407338420976969190817769122020652665237775554841375000835969549909677876455351806919469254144423350570596629219610554436034292186414530512697155072755111289658366314000204399284140044612019973800656616732460858259624651170568142948023671256646804964117084530866040704185249667623903762983204399729532786390863124293860126266446148495638796160345098141434348109348057295418811277233673398661570441375589307920656029177504316468537865964061763188446485615587680708646755092298301231247696087662442663726354248773230655405663623894100880639030921154764443795469041955030304407426372007702618094637660641522162719078433297870701612314998637964107795937769039996466429754478126227678617267948650735989966794975888247920265378535989367227610759948710545638237609209430775464062741128013261570326879017777075608765323867114559941577669611081530601198522369528670153758207258377124456492139728004709886977199617591581811390353674106106105670685012458499548847499605901298805463255666052897401653980181892094157162140511583687497775182519118073330911722222797139163404841442611837855730719942557501050736342348033850181398637736083734032958957920254174082376029514875011791499430008466340430661446475793396740387751625245174126256351039255276839432402445194189349410379367438652477370511457956970560717188346789628435203509263985126555210652182135580781760789355031512025460793214809987616042811301792782345577760628867173682491954978558980432993976541147430378854539172965561260931475877165818669757598704750632773273802799476091917793586923592233821397827181804857563208489020963515343723674110099484096479316349067435372134824304883277562681959284797455486578454820711504610455486999110944666222938084789470458809014732968615688169871527179402843549219037415714920011050103520488386713658498243894653806471378655091479242821752466573617486908845229572637203116178329707809885955605927499574401961503819894858037478700718167430786986327052117103338848046840377219625264003602869655290667798850260399289037623781379014284259382821609100213072631445928075845998074381551096607203897285047484358177141030285083638917871703077215567907149940056114809598679331251909047798132639493966157790160163304305037270979270218912454114031247467290512294753137831267191783301621519278526458061810438442948382937673853226634939222792207935253245198204406115543076157197415193389835642174057338420479327124998197676072588690272994627530145503021195316842842249049976700376304354987976320798304958877030577690682434920160770953836535964153348790899489596119138725979480072994386675082466516542040605506346077679473126702031415920590203749881636729290776096436744282522628824882582653907001122180635738011236150171346155602783585053174726824935036231951630070298026565603055113391167714523131531832309568122990537808136284268964225468981073906844274670100017538293221271506691073062236715914497368328856403912517651728737482947176265368759056127797959636671159604945515583308535968438882202348606516117106081688874788769307479058071672905082171453773564269797917168374040333741212176909104048827207355910899220512809375928167384166306226633244997649032769034655571489192400169425381452616912508954722001811004420955227122897171469935220032857947365488112868491182096991071650510739511905546153771940140406023768476103354065989822408471930310588727735838167700394100645990304868267566896649604514326866356794383546379799818355555660747271331252168422133569549428461095676239854023794983195451324078653912990948217927164945634388333821855644280212606410581749783709099025131406840683903243368918034951317050732330676407042828225059199600913380910290218363438366580199047831618325564842924250344485843078444945086347324275461621322646891616887081100733495921688836113408589304580426700620738549143606949652895108615461788841272048238192760176798762070973370216966777334084227224016032335969943324277982154776761336640601904058370384973377580188374240113004875937779404907214489579153874158663539641767375319693653926894768181469751404909387857628856791665332021351069746009430293554815262412735738131344244381388110587771925983795527974161354190230240015980573292994281732627487983739506376498411293372946687610070979939416256641636901383722778409563086825355503645185269371079897338245364615987129600847713030076811700769380895984475489293058358705332184618721408471056956068682465856268347776997032503682167056869431351032894931041382744803398235035496266603807792054207346356071524805657881356760781625035339776105784332868777847355026101201730692986534501317044191183173889534958950686124873550616952373166914969095755409040824291923587141271961695238202977523924022347958256102315616450191006591906806832664496669341779734905025834251256639077309202450897550319871665787883203293322326426616814667062792212643569738089506764536021906444301840487098318547066700423680929031241956589987010212065990290092155378762858540684671140620790061587103505291488628905951817391012002747176437849267800643926925591706674534967508224971160870997100111988126693578867257485519640702924689040758598895412234090628431659166971522470296733107982080312267080108466973342889070881714069204057178041099807619282440046476545455015277714008755806624357573021898092558817220791091469528326141614506352516379168574168803861156647409082830591077911836928252746464078138539859446533200162406061578971353975495343249806197298718795137348909827843887112381063742434741330487842891863977347889289123578159003269259044805449304949822531403980058026814033944685940555017688600929487518108525245215737442959653836505263438388635197596701279235860245813521325537993703728990414825880339980879317926566522211518697507778937940829255184046224995305116239883391964189048990312707552397103806925693341457916502750587743584051134891335114587887863196893647818997602537245045587514948455537519300723422327986400050179398739210209083163694128843083079111887482098255546737870654926481383705627744349532306577893549149040957731714857790031402701706458470689090618643042945255420088517305826975625125490614122430536032722225238699343497287520754987925769498335289130048256402724318070085698377652396295914380356166733365262842318264222821251198129075224341767440321344180868985713350681457783866409260272342615572878223062529756494842514194247041161988044782561106144119735122375095705380923494320682770090850572065570166757244198231584312657790138248373017670283515176981609752444067632318384048818465164856052129314973735964746202375379982418771503409793328207338522904993420891371497895183490570927014431232376230481034382430602975462792898921989225345930156593307870996823243923654907977657887831364129097281894012395816605035700984492905174342945189058633668429459495040094161241712051142688653009292377417753745801696035265014715627954372005611207173764964132019585128690970293411544361207128181657370755710474312402763254066860871417649112495842275308527844101894591419514284771372511877917195590298570785046560264963157477365721156866893834480240329675742205585295275461921932534672766706098820440206753749056708046158691161330250454235473246872937385670117352216465820746055829325466703723155811862043007683028215803932338975052298078669723526609973820674511768612597088182926469006408002940569598067950268543431280919770979354772011969155806667352876123727438167597611126504351459639742365858040756517155708178738624014340274087497592743532231328961173404444547580416684147611335486838946736907156575101408141804965174212630913370398160210257797552417563563499872544738415101671159194349694007116025578392966879207895933388395743184015501817307320384434956780995999123690103374353628198686450721710514409416645050815849564196150219448194024213256908855575862648010862188307033169257004134248251660381575810846934226019987317880725266544187605351955478722730419747937889558391392728790987378204825435394233410372701626500416831152030977456020731268094990677166317022066713721326617201645500138572860841385799877376432002191471557029385285183445640728046023003535413277866853829840953268184195667138674043653412468792324960223046897341532916344245472877091283230628649303030254208036854550404559336999204473436614559742552204247096374833622806763926594887880336679080790028620486960790371730508937694252454968966426978202189116788348987196852760213477386294069732640762282797556803613421103455864635617000126716674029490256600899734957426028884738863656774918962051765755398879221823517663249799232468955918676065033934551836394731757547424410976932441142355379439013493584852558985368206188946633330870471379829754182613426797224093257177059628233433750263640188365763800860671970992858885668830906136020482241924214927599245060424149826378126760552784461677531928322868001961980281960427293505090388892954082651257707555559376841640636383546753829089278017571546436405708084065543199596660974240904399741027802982123831944214453402902006637041115416964096024673480363278452891800380876147499368649705497955783922534335951730954776130161187588356741249886131055294488186563554986569663321541222962473877035002605026019716887171759677369409886198125752542543526219160795170211415622246359742607898999996592023407278767065270897948243235565548285462890241846278638187155612059387684935195112060154996641017874195333570599166919075991532381757213196502690039036915161603572302205243126496099110540245815013196421756499538760804798860582686558761052490354492236993647351087598194695498719579420562211694652942555451285183238511394051790375514819898524719151129431299817357885098829282850975661738739830976890952688607905913725892133119222909043083608830032906264784743954927394138319995245873158702885823657245454700189215730241272653956329285520323286737223747319090954263935338929377206954219778188677221312473822066185977619674860794839886299206931747828540921098751022042199936922558060130911355001518642434794169668107927294022035047372185490363282958795939557958672814392707445821514084436710416174279081710613516401466073704310868851617542338255720166160566439307691375502506263845124028903903259680542451483463117994283699753486942839821706830380713965374270981808721777944384112874003870817104914237251488296892889341772822898755934764008899773954719586840452653256195123014710193380148239840821569364569675428173177406996491714108508552141914821309340564156033663917859522632380379801768381400236009639320080588959961400989824703660090689944994556622237236841179657168130911537120254814503365117408770086519993772544008331089749557316235577518717404455038776313883075233718124688804631596014106811447388160031212024972342777227684171903361237635672531869175532664465259003308880092697836132604200006247217011289789996927158015957038676555119332861522828047991666233891040087546724009627799908323401472910481857989035379215008010948090435379058649609334518940178031138512324137366499710795411857854777055278966415943475641047408543947874191992498889945935780701909034900748650606145245721279943798049410500434226590474284399194444188302120993170687515760196736525942954486744337598790053355446703169210500188526314756152764847873926252672617549398066977999945416665576669728691696802051343622915542995112974853168566447620456396968473376718908046852743866726070428938143517930710611810780698428436321493855098357424557753665261472373800706236238258232310762713262467638810156118841753394960074221336891027563027895747737190663202928813308047152498715071098149190756467933088226017169843739632428178965253355143443166628687130387794822166845485377130567796991247651998012071839282092366085040289285771074195471779393698674875864954327757557372468628611034509132873727053201895246770299693386700705799225154077887979976263560842903862538581290363094049705897745689042913196921095044756155732275873999627418220173354949040078407538449270535234437216857737213172277017611415896248794528516144337830537014669472353637580472295670116112072204375242088468389388037788126393150283905821777447520032466689697106262767218909565775662889113449386851779360361888048088612001599627428186256741329539796320716987383425513098386617525621749347365386385265847349119423293652031398907070585625271990477027338255254978503629443302403448551633042723409879746580425408732303435887848388698591390685702581198667901178896058051770643036492730281343092729858855787225564874174027247493284135613142564866193717935920660514104436596673078798917458504679153574620060213046851709924791925168849245984803673028226707404567711015561922218627416196501243848336710436890320290784524404030558875956718455457395192881897514539505243664494752567440532120491044698498924947067075732303753100858347482466944729989232203822272805455439656972296918265704536406456785028320961764587014864259430264466450437463178649522426796952397541452253863938598314325642875126123155239767161881772982053160137134776123660086991572838918142875198397719850275045100693186902773494769100785415550727311249045078647967147293915909136692008410764556129282871641418406095326293705635026928889916767350290265948619953082799191741123879367702208656618804040932036294728947176726271335970713094544707608168401305529584498852494395872002507033415444581809848211989014156720295257579183656824542665365607981693310007084030019433530465132105017015355838670820958314075786326703339028626890377912191160180403092403269702890246879468765478084404520678797893186834656454834501804458971389121467661063029013167303802004277977721198792832003183086441340020017975534899044323030937094982544718782698929693015444654628538781565293307273019228492549332539494862763414295563252488425172374988401453837554839596095208971550617730980924507927669867849963531272454160042657140883108248749715808549679643100384331734065869926157514692061782653105048177798053210320545878963796722552706944299058429055137504763909077535633050844619466134448450098691707242982464194024347104218492980768866943247774776854866823013432732791266053320660284566981308379101041378867439292544927227821295001183307910775790906169182741496122927007544898276537809565906234235246229420550385894213701255544877717675164481731017015340926409865516133988537155250805940142062466956000683119190683018012100005270117556137572007458191049830692620286473106599626695594472230507998448157454664848186417292688843258689216626052284090411148604715161064714217570167549482618393843309627768611827651537266991457650044786091334530074824509681608788473890746737238008292763359467669015593684339832564359890603826619397413520893955827161256385688156879488755808812854957350453966647251490990225287036293338649033466027955467988707782231906023704623959990732720798643488345095080188576584691190743051610805055406730144960621170325879375959528822000728976258144520435381007506869931405362835442477104642431130611115464577745801269185468289994526730735649850554870802737606206133583899404634337753319988805230729480263102671170476204930896211199318775202308022064961351498001448856198112548737900008598798442154115639908474571609005487332595298845368688264727997234296639948651275016392726003937756693453982403367244096590287491458611386564522671477734261371763120406953323197299982593544854078068862231868947046772613000665872368171004727865589922168652127984173259841760799969795198879621873871263204510477877753116730426992696407484673351639697695074498523041848516142110117454335509031268176123895694242007526971266989146262489754150910302967956079709215399566656124207503011618381931354725223318595774704265651884177921228130502923664766389194381820918473944150251691522127409651231485028444808338850944268603637595041967619532527683031714592887462504117507176677954827868737498270215630917587498593166124730889559179687755960775925156875167676432602187599547627122179799545049711342988469903798696994905469896883100686016464076492922834946330588293444362096104139413156854837199268640078813187964119298774907633948214932158534022120579156553631351583893411483813599463125561866331456885895568383611325474320749878580785165484645312557134353049729899792599567104399906387883216064587163429719144258030020665468199853993724828501007510270577481768751163570587387468414072076065188826133237005987256848646108833849932947564146533688985163527892505960922410412560177806244484518014663888265800674795375995710481183081216887576852483172927508592912347928496738431943748698608389520664132070528545960744934690280781213900922023000314603434990237298195120824355393160544324297678704192817348935621486876595394236723351297327418791362015530635554553263901726957976237558743593903030116579174658121879586072140533737631528606267708051346874532487135263333913620623553377731543002057650455092420622572687612128288500959352933731874515795217683658738262801254314356081475870198678580079962583882461479561198248744166073193667426530896347958956646431265974906806540159844565097930667718524796822053638401706524498605576116417348808295756332260009838438113336851059750497094022270271572393096384533077818011976566936005500175046820170981660581309820243804266356012595204678605021801544619358288210091929978874646526862817844552095081675466311680828966864084685904624535962035716398721035551223702085752688740160280632491493218616687546017458127325677917759698029012982121547647845027009630888775177661441468992554245819252674082985927392102076309375525214284777307947245026528051686401355897513517234980138500585787618451932599927268733377443171091656829925099763113443179077210111132577239226256515768033848064801462068036187149597138747704819591219854480409228745229607053925474760633467181827060090499801674460137151345290021681850054057427859558376010056600067058620368417492971523441972323971873102924751477834894227114127955828578619389574960071757388181914746135160709811167284497402618249420472879101533890497848476610978764522423149609369989172492718189889366028384658510954927890852890496126724424170202800416524007872348026001070777014475223835745343155096661203017037231247828906065031554889749666240252962085646308804189888512294233111501203638980821291853279887432354050802785334128490331836459964015904724502882567178832512510782577563877129562207866949028312288022097740373528195838572203054197271396443574677231997906795822925071071875575200045134561602703131882828763104368390250714748895819966582861497047259781033411009716111741244909567427745243558434932943597079154053991790659919757748329508611714360212317873692411012114430303058982872909405954752905871786318813242893159481481017887736879734857770314709868146153164170718280826481734123832097164453361247862312858526660624419049682773584248255634321740781360749809343638060092099686375201990632926878661567249821254829940765530408639332350085293083769701877635981725473332639560434718806042536937412124034318120553933263710298029462892142278414273647195516667281414646348985103409559146780427009416142224957537238873685408544977203294424586419482374286829874650401235281624401809780777581138783048644945388107347608513587840301045898856104165874480415038315006097087642178370248274508418950090715242276255195699689266492645486467228746021843327411083777720795995586287503400322409770659346734806426446318948304383074187147160480156908282639943921621892954870212776982686626677516842582062348325304624620643489945186334664434812398576773746258212836587988785110446103455319087904613623706295587446787258940797596286959706616364407495497175630911273024968381085076699876495081710159921305652563515942273274444205475068965324722391663030780559270939513002342835045330685299326110853335202941558273254534719442368534091634941656033857108509661196425780122787732620254378533093500122616995800144892686816996408729489327188116666865898912888110581936150490262827097701881067183755152435111936581814399083663725561367317536501119082052654564237840062470358285375942923555260484233563546113046749404912243113612155417802948863100934708939209422122860665076580963639261251320292955368239130025790990453140499197172699526401286649219809510117719077891029608557563412986757669285869471357331269982375319329251786472843059296087667408698732705729968983876348392229703454744643063068062131250416050077858483002487234609091876133052355199316366493941664554931812194221383214799316865641067573757078935056669862475495317193559425840951070773638802740933641154668554147441138547690996770425330337323144356708832893500869863428254741225579694505880222146408370565569780715130459845377316801586683632888626158145738867866616138727945362876650413164146858151253178803973094567289118143268538567319019824399725355589238093635922701675596007502197191268345060875355911636411949409677432403665866926485667148896111877633733350475770833427077466181287426654173181718490341975165066724345213945920641483397325174127483577985923903922260110420956626753080538677338994827039658589166275651761281085707840442563945325108508803066909534902621885812844670205499094447777231816929851767004370314859403943539319300322765195844366304360801069662281383662380093399071980432348638753259639938200007030063986794759507656963594698510150398963663446060736780783851038933945130742107482859521916448269772709086669045239171255649666516277870439924319202760877866632507974333334517764437336178628156110419055420546421631820837988904805470661659663004802900952261309387275575237096957092833786974220757622266188482411057878014392341622912379894315226665069640352679118577502084060882895742934993399576721840460074294801654111314414342731569156810154634742511868227591549016820958888603541074979142112599952375496564311558857639735740473217215276694264259327329864806232399667021427330280127682470017722763694567930942969500517512062264113260281972198230463781239575917510781282143669807078983002965719494392437322245910285961876133549688534941161284847655789585129928628923389276264487674393171909314823909825814753996858774370527883910039790123430473070102795251201414100615866758808950978626945234303139057464351412878534274746952314798980339955814049388048598342389060319183025042493249721128745644769950240687702354613954591892537481053411616721855329804931033632145504407431963179430149827728177379257844306907398323913690630413883833253317303933842227425557536930993277845536449807862467510760777571404473209181428091247926555413456456775133677618458857079699442662672522617194154974218267125293748531525859533585639971105209488913569505969959914994163332267298086488227257320644367150751196065714680500586273195980779789652801805309966871601511350912890168158565434362509022375575934119422694512287877710112916016612285131056116146178102671878837613756915492079167416029199014675403795622762332694387819068717881491847923382129426661803720166103276764916135238234863633717361499985118445062827919357364333536071585684556905751649963032130486913088943645032891122154073165443386890674628754657254229384049295066442455626973731015742943652153028018470834125265873040127708402728970141115411007260873580569187175908908118088089578986267985055816469902622488179608753903989096977384518719279704020061124466830038689515164646533477497844525191376603639285755220888001088705959327583064800420970959254528251391708046471924867485393137689278336549634534831751816653176946606086988219110692832648010764349573601247703860870367399464677767008445560738896703434456958537600780200079953463906439871206703974680835882588318474063714633513271930246122801530439101762398938916253389236606873695607515159352815086452839981126113951332509943287601188702186715666423416168539767335835927062148785082717364267063509905184362093320637172701642220033269192469795320430349581334139977219083082007038234031884298526297719172274287686831969440200052960878733739480024845375161055143849901738318391881395926678892781727896136909577382789673471669310964417994886306989874421488315087041728881622713100927895220658441576141862128395201707197005580259086377404975955583907387956254050547190415468815492173722310572275575989351476832705403976158139738484706652368714117810614248361799725610501918991594643448786541673737110274495539115475287080594217860570870385407992195858563036562173580457587480674656509612729684154924764209987298332139522238015801926828663282065172103884541600647847795002969396168991841288349685413338408446850875100829369905004471371199528811662810709709993219251270259703993285228024127577306467882429896237801670500037665683193037194623355799136863092636192408283887767734277270395388649208987757723844259630718557092769303090016167205059559297630054679454033515615762820916930087292660555629808089503546438812521977077037363751684979419046384546032260361137592891600039123748975626170917232833483829000641552785923823293396024857717810149312415217842190665373893020629285865853619450213347336433762803654846565919990588317235837201956680867570895264666267971216063865620094470131499993593954636548814831428278486075259067674583730348782332504741317689537334752734467547889038097491416439466326292787652478519448552455364481067928398170402740367669183910073300932381160874839455644321514913309785595925479187697880346070864751524894349735575806691558542200245582429043744746601815297907165877228212460923785302171668740663381924242972627484882739186357268342293852606388227866550292040357750572611427706374342760282601510752438043360423580965329464061040747150770337961376620509593008638765048525320371089068383530017134919060543979977018252782396451818511283739447984952048888930756077478924503351274523531162750501543985523870236376975704372423766161147326587396718765665304169955960032834436210266434374330022677777590284476719549020643070295093654664161682967880729889850986740286862285043704466458179658684162209581565499210341726375443183746148429052135918560727089549641238444426143536131546663893562203712096997968766995111851382660719013454243497886369377456342511748281164490754411785359132364093937555669081941141308529896421487120805214366236996667926937620074186889649514923937063946147056590543489409430075053106718654952323154826473437833146525203000601962070992562250626057463463892753845755118464323762482961008683026484210211013176154935558544903025232524895755149227408294978045214717827623129832535602623363326595662869310803507872318291187885016766320004202855947743295924623901263189266596979208409475171867978390797419623190112993174253727610322465207385998259132612840924089573006926978087362225777812399961401927478863196771506822170668323546649589462011470283815525297992658887449201289780320059995206624873426139997049952739966200391956829050619393081310297669219493830087025668136209389553827854003226603615352240946449139043895783381485118236741327114176688166588739878249033656618261120622290093122711658078046539821388133849596922058790128845307463180910362132630177826445848225235090077624842429195409538681216564932478946065344140025494571808511347865655156301160612687607933136115640970905816406712539626008415434519484058381185959860025385574340921479905822664619936740548056402086549695169649650932765323784257472944579840979054191990453209208418994156675813196664339571603808524015319191070685614773540693147371178249229635404400566673391128212207902091290648556796922085027678435954995795780511436673653860940695832825192787896326982510111088421367159197146441546283994687878853873121043017824189360196199884411072120166623219822378083124493200186960946241338888446845991770935430479332810455023819779282613846653148646063590724236944054289922487599018883207467275968064416237978494765779301180068944810946532694173989868877839776222180800490683231322023547145152779208318220097676833379045296389583469067760336425305075033294147549797870722160049486063754906975153796110207306453236304358375163270017974086773444574964046268402758360729992824439234260564258401390696328938377987015436331297977994171878710001671843477797642944113685200133477548563464373507224556646947966231203179888086350879055825738526196179472776203713811781645128104366106024543067593412021219234276495351645983330723523846077103881639998693762594250799039419403579913152876604374088344639310798160314777167618507593933010841413599232123993627823960022607820183338810858272259127895407697347787260900393184725002929147159829920051240278224233258684041221452867384388466545323721401452031450482112896375986925507783256216278610742551481613638518027020869247335986131778486912473748968432128667855277816899226639735510958076425417081570813884857920971481452723681627656568963057352253065343312993538556336743607752166669739887601174484218440461643940620638288828778840993292266540213748753855950076164567883229520698491255820735700576308986263031463303480634682799958797109695998205835367528614209132341916584390206660650305780252000590287927500774732075650285161186347076551498460602076979751536183933968734744641926800499021526673563088360066829022711979648008790626413797699254092321724204302029379486866297875398238585904874198669782851867421874623418507871133362232826220129906140948467859195598312264336028303618143781347107164078949603587151583537785256343553885119999485515420371846082934315494931266844676234944985982139995085840722786107274352114560323983157002472881324473951114459234423420466351379978349242778467173979680933905520241816478333145301044511578923678294125753825443543574728140846420336677520175894085180661360111297976208674198509280233242870437717437837982089933451888231880415080262394743048512905416386188524308851390341171614099356083786187655890532105620972267065659610541260466027144963959851573985729496621177899723390682225645942037812287737119432606776735477862651185566453594666649326365601647031950663981654951675349990995914477272539084152469192376507684558275816731993235601783638588336419871052929120992730507949734101612483393149767768638968343297641701318231549486455983636252747557778103205844895855140160392741564235947177526251836858031141510727695885984423671177401577307011412237436395102776164915097364731536346750015907067884592401661852816749456326596470768215029174618466767365293232084736346627185093197127840103189486494972656663736563361541684242896389415047119535398098150155479443507307881145032575892119776239181164908825354356754901257986317371190331350394692448383849284611135854703527084588825446122775899136901398173433851804015650405620652518339789411473590324566629674761549145447264824051618988101973724159207015786259155493204894177623359052881629644716908830528311453127098715878704901616418860780490862328266689686353617090115305584666387370925707140946341402166164716622058189674503424352817026748361824562768244330063254985696103792540911361550951233437871103195977401935500173314905429964871029028194122112677702222416678054348221479492492628428182105014879393868046486610985521298018077943172907993014404353614100375399099209009234927495180207983174321398846269789667736261348536332813144719697405873746432657289841018018264174365115326632200205187905515720349096164751030605624832589884578339200673511311449879381078048034161031475182835460665334621437139080623644183262030129578468625543434297580065666506145450194536429439867493888580025227665056986998197295497511845100423695502449824087029823148165747363417571862656872833754763963131810951786889544318510542196164337461369338995084632243888813898488129980950751766992696999729393970982701399296207473256125117943275901348310270209872073629383934202361025284383360912770236170221748645235323841138908700923289861235489708535433602280431140590753958304823688490103224093968810119414180788040784855797643468375465752855701357577358581578690996879462440931506480654081150503570868898551069285543880984365840550744840995165685968261401245606321705022038048849539572271965402384501634783868753375178929997374892938204016678811831351144345131080964074064208403224703339070428372058614612368941922819911718221216127054507662945563391321121005952366022293066715662451741094579769196415585152562758204363558375821934574542528724643264891904991964734709219534844733840455081991221167574204825711264440271615788204991062085147300686324950555450739945674673220818091703310923636729985545839079169472499671237797815889798865568741225137543985685026559848144635959281660179984421370587637977488702098345342290336267304829281847887110313003415170140893233129641329598523606460199202485942358164292038901733617581806804077487285995695490668712595427283179600257037735179421378272455070257683900197873331925001104368465346789407154197446995818306791705711930881389344989658764271608510805990135117938543304211292458050418115141607683371163959704309095963219143908124670967820426277234133958360005574384100583149647874139268143904591588645867260915719313955895087892583107757501667101432978899123922673396086508705605389254472052675052586840912403776439352487299787048247172906528254268198615645946580712811252710670482168407278132493185606341451180995013725808198334792712883464149077916597360048436175467549354240447222026954840718305188545496849608688039839058977148353761087209841142433405019583702569681989449329791947441185230858660579338669427717857906421045987013486413916078789740240478935276222607191981390704630273558348310922814934097700343892956377420798609373468496801638756385402973605599884944960520987749411171720690977939591831005080055122263669373869539917731317258013601744002771917868377600434407014387149925662431284808216022448410605608677193081322028132056186777820457142044085775253193668901207887888066958158320171108679596813364597972896524645056304132489246720018001560800538195233193846718756769797324762405728916378128476178484125985499723437215845876183301853271537018389130251273243501191692862769350688736106767361905494655915112923935080635183480935076783848446803004036609258344413113544703056113325752807012899988634410049996218454758787129187155114937521224389977407578487862988009659429990942690266792248728369952473435429151925087498474644845947689047630470774236005690119019554400674521250241441871104617975668515649061030578657513468166813424065308913253514894870361796679563297226014697218552552148435896201384131532443446872659965760946651107521811827092626955321495945032083046817814634949514128084125093826127422153258440890270229275694846594266145427799768519566807206702460705233380361939520650185241325865242769881282093497456723611194035217689647787701436314148351184913844196238967450403171631068627833310773764055040623109443950084732201510261714971651884972507401207807169655817049755222076660863068023169069611310620942709963287632195997495569844149288814547041904263256696522753529662861734238330731367227771916472766426918613931660464401752634919754125984212989298699818303110822264754202829932891274789092473532349824335528362415773756127311091860161967838547533583986714374656143150919168821152219091317803805154604315713321456466209668793185253937829518240668205983304828504878179537289027817983605355798894545475435461219835168667284484626092089250198103387918801768149970750336887196942210545108620707362999381819458955886840523815764712275186370416969630881963318637607672356873202835165102017193147741055759217801037543282376293391107887407136026462126415265235301245783328444957350990750113472398041299042744767211705633749378828297049362872283569029137512628278781699385508585284758968426776947466702237599919475609079964129487992125214480270334769718111008243358800960831181172620288529864227328844861348459436187801266134804838444260522542734652117822989668228533591780473101943003465983287146604917637440844381624403158460398686228336217097009838529115493121738981206675454373809063570141571026005373553526861231817511579453243295820073906784896152224936824403807207079945999571394836406226561869424420081661115843451641835331583217253170383245365437839156493674207057672433849261555528063291312619044351403211743347391528496361118212982160426244749746921301563084684741488132998337216735353887574599428647939578108006505668549042655377731988662606855768180582897400784660992293407015421030703821828695568911415813946224957414975173803418631474851863867850535102983259077056338199976904397841682685367884413358097763771865988757810933230175951259660258108427701243537295706319912980791960013396086204246912392915626128391909644675457396981737060411595717200354417490970029160180597456679804548659337305757494939625231881817649152747005606075419850827094418917437154828913653227910940669605637811689458676714447943526730689085646974036954213866719467475024582669436591642952527621087183358032370380424043677715889987440706196217548860740002088960031481487346947502900511206469996544235276754602902536482885791928627811792015778167675327653796554073571033053053142413347507493467070924501484364025357830976470019769822446876968932875168769568156278883027581631297654515782132806092258726466756236273229980450462960701840688871211161411958433490197614872005772654554715283862618183118668336649558496014333947570130383991717945503254788960563604900113362185327065115682577362058093811615628103336788028118410049113742895210828759381564345099949937470382347096417519718002623797350428415551516222011818069440729414180604589747568449570674905621805655721641223121990198699473767241380983861168001073716829974744579184610639911631373400220257586619301092615340876954362582294609209460476426706353262518643295415146641550410815033002976162936265968651427820358317841065122428577996302244591170983306064478002468106630011007623506420325946283787539216257619800940040378173175052302430688297484450946248530166272718730837650242554219447073791755282307716633729489683067166556279283328099572155945380872307267913500020763991288345916433589184784996135118176591221355877702327488961906325918268804492041031734989821241435603994153267477057086485467282011834824005028192620380201024472257631147764566749870092754528380181372320745531396267496637956839209883107655083403258926348017790331073673516284737469413481277100312159459139970015839509107953920765998998987748177135862914910254085655484816669623122416737018123383625252936807143863429200543789196028283227849022906294677552049883083792373589747564516984207882901172031101095373009776205489554513784027187076007334310572419356258158605395666524828100908361775599740271097150540956829772190981616163670085661898683310029971797269794431793259565107497506315672983878963058750866259305476898893162823781169158524337431058874229326370718777292942271220962414745994663646505212831381308545552292818258962983701024661993890795193490730503297083945713656573776916857766784962306415861893459980699686948908770131176498084215453228029695910707004756027262196320286138369536867774956471138805632082696832257633039730017746084107247589214270823757680629795045347604457968855030340770464114148457258404735671972602552297603572379615914499115620675906152347260094859591179460896307759718632666200855033882544174611538768696441934958535022528748742172226365296439322522450709910850959970171692875528418446945791188854793421190953719284874805474202391110669065145908583322085309987881353054190876263921378958587431213810295660522745750107680057204527285573330047332172876238919186953209880568779797827864761771770849297816157341777794430791643759825688180068754342308111422149634088778430887463025596834606876413381343867886001148847648627359875615704570895892834080037832396685737337514652272601405013008961803878291882945491765360402174748369951803927512693608099928412761131784832060816076476846334944024084228526142002658124908735844461193254012736011177571689650699034688225137610693866195127954954395870166423043408257586374909731948536333783441233554138255298168054944252503292324687827051898618623319100558159140762644860976290613178514833426025908712921725481781091453771488219771894839990350823941969968182232858612302122916511840482639310377675760852642350272050236480672911451351771959643788658691367423142948519091365170114589549840569246492507668770877437059514720000636767539394499963953811846005716550258720199120118681068384425249715816781025396410319056775147303456970233218413188966264809780802442386818685228877050785846560941435210250352515005406189117471723672190428347928302300275379696139101010205643982207772445522675193105708588799217495780540358436719685015820235935188771944929334835573274139891847080535884357837274714474663954712786296683997028258864383438458788714410247173886929798548623953942280192748025690151825123100423233906719490544931686835876508289018936122331078200731080414456693751639576815101712593281525095092516274828927399155948255965549776746090928506107461098385435704549239305141189987252682722339854433421551218966580333819203146533099972218915920817866950574528993059956178294557331442963742640859876476467569034183460846394215015454520967207873205579582438621787846062022898107513339543651261680428807249810641599561613318697002706844145363859146511860801958101248966170475209742375636491542340484533837879346323996434485741732296186974820437414076848489341154785549303296453355901105044954305631787405489605911993483371768137282065324543419229171367961226659519603970826583064869620246033592788834304625662729146961617082292674973357927724338337014990411509539057680797873998718126716961774282826425984016353750006920056214931599958000930612275783230197557079838806145910489390088510198464684525706498907108186239815172112745281777432966020878118042350276159704441135870616512062842879950394572562406404181296683215337279774162108145399163610655456524204736703531638143408715026396641579343744602546604520781979782763664732028948040914548256433402484811782643774064145135469402446725510316213563554497129981565737378101388373444120460513601141199677407216575828197857147215076854132957583617140486754954430709137334853959046422568545226840157183930908857003547323019018483309623882476875990209783846554612468900853897559079307721477506323364106617325007446571219127982685925768563260869768822952413568957198327452730659707938479305391218156796289521622565175629536339024908413496709020895441882734725773115625563362644010988900828608787508335931171755660640309812808212222061560273211088115523071578091241427325622402476819062120710050918001932155347258317539484766911532036180257112006776726636738108960725429330586404328309136625890593859337802163313321622143203815108529171130098404621537285149601150935187746001787819613346195986598714261315519031403852967877990448867215784408997019145103463213258831564827613467849874833353704823367366871194036728233594152140849550225297281969826084215432234137156809402011897489782379830670740241565349143879956235119728644977628643363977534381372298490633693769712463153675464316448326897544589680456031445260543059163949154996892466255899937402184749399605891886461602744480001370086807954512304264864967145278849615523559016661299035833069380074717974318148972907944068221821035759285420133811275384561176602667467981473249091027011991852098140115916799265324652374109510833596988102301964526115869405291847580992382109993704861725756859778531284712401833825421388520854261911636426455177404346211191648319354078406909883736835050751490546144811296831869840437980060147205154486179072776542411875215717233423819739021413497511516957683481647547886647316640659407716668625975300426318847856701062556665725697906688171408563844448657476867091184489962851606037388498962557469464147213453882345932894835654128632775657165368828483994252947301660521691092546417395870489299135871141422750183153428859902473899766024821042653948984172806418548664536805243626465124522925309693526206784016884828271694722693439795240753520889184736966073539964430832039969997449056273118251322883495609984389425756197105976816110032387943576982794245302717145793022029903303876212589580498546012937032250012302613439778953231403378489360288316649651022990471221398208839704025029932098384098749009753477150890654178636345442346199161325228877594159078271110844970353501138249447356798385370105604071795073730675325840720406761149319635185453861902951728817750329141246202728422356058143369474133821614967376254451320068879219677697836088588902873383555557426385655237272509140523293992095345273637508664347543964550821362621087511971854330881027083122881787397997870043878112353736407978218949499812420807538382659208590220521470635714371040780880995674965570749020347427302598855751233655643011628146918554731677313388904610226382823400040575142445945140585398674394472413722924027902228626069859779869445728970115844297698023809285341680309951280624909498163768834148245948439176158905281392802152192885353302141654764341735550984691002573223806965320529328476493035780428749599943313675743998409123637369589803492204994874068750292799577542427995258646653861357119785670566391626568124898997625243420840859919466538774619906147805404490549972548886702257802264353879907028389761930560797794395594327396216290618173287173109477095698136988438386937486039851575433295278515963462796954465587508882357363556019669589473208321699753164611202261230596028891530910254141376850432390359044123105757381339511690876997556273176437143272804110811263070445005100294315047720272206609560989044083509529311341601974069670453604844693622777274190037427382227387691829814654508223991727291976148075386653496806096258109752479337913272619017761080307999986338981834781268761351894965634247882096566466094097587973209950623220273683731532919954207712405514406458088803412487011936237207930920068547297355966424143286152371635040745388237223767626533614490372496536844962146502487363905257939609086265103024064068710231938324652162515577597040051852250463036570432920070032510546724866716427147613350840392804045988753318000933738487658867832730313385630105248072138391842522183001560053187839363704984362747701057419203477134828298071249204227876182748777577463446051526263831295126061040042467481861682894710054879927292500309802611839270280620137714100027956065341641693298500045920293501279258784536279139691979368723149354243878859745307302692845434866829039073490770236446616116715704601691000017847263996022624656435173111405138909741424870498868278027597550468339671745791834865943792554411827645685265918712235019624535531039107277271493814647664103757448247698372981072592392237516630100978686039460844499311103844046499719724052637340909319495668413395248490603909961060291409259068379069921687498357304864421630074518158269588587169215765616467953395049416460649134354524971745164646606589526816916297051514703577496672411497006856720413429615598930221423997542532064457809153831393976319091445787162837467320828333399190972197794263182399318635936829927270723677104247835877681102407200772331669836312759211836648253919317572774595069845403250730699844036177493622750528745162289622547955866842815830447181128639326909538541961697072823107657740668188246600866972571103651592092432598208285556853860052062082018815326492023542173239860301639632086652176642048508489859873984814776984450793683721466811799272444380139743892738950739744524982571339307830290151847671420926756749017030023993334320369860426726505246703861907229353404666343032747123434281604974524998815403008463976703105466226643516402475445101788604418947842528454827409675746185611130635404843394506348001480830284589618490674134559760142938897845395726600827198351645667094596460726562618030347063712682579088874611270192314752124710892238098930895275038948553452790386318266092023620554791240520833357600281444274103463504999138651542867922565458234946618396402555759587887310264119872832300156387522702099712290471722376769023790210728668079282524139033895488568221987213223723906341089896805070449825016109880239233933959100820533075425554150784596566589708925788301566883604756546832917969990027794724289716030673074171649870097844520144157525387414499436418918764306483043224301813410556924114367072396494896816684080330978182143721877224203424640164708756619596757929587606426014908984871158482514268781142383442619861470881150214859479417915269292341546360948437648912021578904520438977292143482275730903874516460540542208467668294658650408932291906602970950349566127238472505538807621661558512658103263403140319326535815725783698083609943844892482455580234128360507501281539858526912114524771138407714985942207394693383259521039743835161663474321161381318328869758847355738213587104718434219452095957346531037983473982646438627368033258500528769539762731201356669952768790743420762640887206455348419578567867395342320773757100062620683515139984797068095317530835310021840727564193753405316166004309014595126379756710526110326110416354234349448276315803399946697404579556024304690087752781482649454519406911112340250361423993742669506922946232763881930328063102618278181081713627538656103162424289823808289123435296988925401035164978243836522939616822258760150960097322829221445942859775219129739924537279598747261760450448703321910105159707028055430356405306554321958727436736442619904235095728302332016336647027960325078697320039675311314069723823813547873735563757051593021931710004184735570464627286018913936743323194044612121687136194517716656547741274063250119144314990485112560454379209006482886388986544484843626255509470615054752300736573338852379338463958701719336605654239437102498630688054720884956879995511760852517196944555997979439167341464597024986307069484616017626013055641157556992803617533928152581082819300241855444186701675365676386477189975368923493165742757256212021849574232116087928810186276765595443807331337741227853510165333507648360835864296967369437993970797682871697419681824925697180191385644636975723517785600848006144784296558277871333743324516467184970985259066781799956191680715197020450235017257923703198801448344662225575325190376367264125607823738701011398839981811048325140796856245761360277149257357422075180435608348975731915888771634083831939025773001783244373577572962750698740313171291853121321629797364541034991863279223986828698173555004816675854567108383425467226286089689161760914438819098447816267699409205120742537233263815773049519876719655873768745848836862914873318073602720035716998694077917873046489217128248768931773575967426015055658050810699027501433918140992476969117969755028385847013196621491918954500831477798987153911506069064646120287902070542549679697408581916890230735593636704848156495106643216500834902480965609728521438316256989647449352239126043153949134945831825266581331445645721487686710111564365138185533110639829360423358246349993461782716918605585283438635653538543057156706568897417970340622556103031896552198858693774869918442913789792376383215827096686709593945484589996434381786202321927160662966583704366741819845600289184181008755889119604936397094360869207941972145954688668262627052586263647032343139134310662167011951183817303459873126287724700912316802743738831668687816859398760690749987336977296260411459610604710897990284389145081228255733097459080666127874470911283078565594752334732950944902776251894786501860627316552564152757797496768289114949230602854287486691230285892532363683424004958509923728681576701007429170922257320314231198651161080673390787698696386360743107654928331322440828439424421067291819963122496557218374994174494002482478438607176773290890317527194195371008514445509888892589598689364514754271538704660025955938164830940631088708511988194955157201651132260101090962945229670421601427921230003019178510017200143233859413800454809674127518275667118408242054327092736173516647811100442392794735654878405537654205548382586289936724344917166191409321449455647790978985618906072394705352885385622868513523707550758495415831666458945673779532142650108729822705659262828024383456339371654441260982339014289841595593475209009600449357191083625234713895318292808947916073248174067134300656177992035037858844087359448993037532460299906204888472030351544862243034630211627432382676325659055917060754464646066920827666167104890819882446933492137512658336642804921581833395305807007176828658599918741189045154834108513815332999600165894783443469573053725082984077449491035545246255511330171969230398813067097205787235152347703719179265420383751069109113991397881297509501568712155895480725975932459510631417665569463010394099868363313731011834219874328989019436209907803235794952326245512496987633206501166782798695571490622551859838561737894972287495413701296885454548156766273681533842771713477374567174526990086473111823910708415187948891693293160775410459042603803600287004334901038421788940020082776677975458590403209970026273422186837722220443049135967194113960856543184391455735210818288059016398204347416260325169514946342647420437261300683182108148481838547767801351877348314777628222721125848684780749208670279589816647313573181882087239535229201772007398847891086367158527225886700886116046193777432493973006275981631262548220002035615123133001992266351590463859373641098212878469333718973812674386013378663010709179836760895916474502824078505713077478571142243110295598039965247976034501333317155595509376103191130134507241070774786375197669680779682036271450881421543698974621419322498211497128298087920951859993036707755072670464674358972453965797105283219326794661951057540453768260697528436769926172962898516246826627735889331027734875295359400426292870822349188741966450215201593081928041863942654201388524311449250166921592733309767023416607654942720758625814955711100648933472002399191911868402820869172119936708530245566422905334181343035232389657636899421241292734636147280196970947815698030610143201412369054621980380007249893237603713332722765365402624201087505199455362767989731928548323521216736080247411261004247978178304484419459601989500534879555698124955285491315694846083493174293391779042425125866825206225263191225212616850826270060873052307903064107021895717907076004768572886631376596749378942413660171984959524114184831898368529464884872446942946709331472158501513440288117136202802228058373214032070833402717145372613149972391487322438997968946120431994733472718122063148668819939538084241226276023018679304315703591267490844434158413535609621794746205653992777342993573340673628918744283625707271489373319411979544252598501794296175760773511464690362518917226966010495839122604986776420030258375770202399824623533132801668939181441405316551576371631352505231283885890000983422480623271379135723803668739470441632840686838354098163360374952850765136714883042611705986746919312348118032874663931974456815497122747452199226593564875751950781933904376175692634031205622247529654926465512050404787090875170067584844514469824510588167981856231029796145285788497734537107363285963939613913047239723536860650246379092253183295628061153177017336779142502652625368181496600726295566327065745041566748383942113665615610829387794101508248507110205964543443646717347654282440105770580833583489875957534021484750219237235539869282179335868361424985840578636059842088455690097649614774626059194922545237005128830592062260275639077678427000483097539856492450185266197726618290911369220428242789297724267159867036318952158044018269153564464397130965165067456443102091076947466379751311510154453699101294191466221435036028087936874061322515026824335784594820603707709820870836558888474174266509487066156918339485659944270748485169875797197712157984816815026031703497197878176746115037148295252166654480993567737464348225522317872957757163422539403420186169218122933112122744729875827737864439167553391721214672119962110199619498354435177499773478920595093517125155154269467682127754138058789395750037859282133249578478423949819368204718145031888418667956259979008020675802758588670907104412437449367863641952821789221836885708346073915559155098709433394640589275439486426452846057301541305568220940560078627077245253852474392669605331227473624121291744295108344174051023972381976643365411209158809992538480166369420056709139538280207838149680617140414045840429406592282192364322737627482926310178341132206692781230662765891759042764761644580402391964168014005356223417408697241778607665469678431091408908594968712723151366988213895773770066020677391539162673611921236251279053814733555360094957324138565115632737678033645989832402905729112001500270010020547965736405718783510618879515732133159007164363558174683393254578712632100946434635480444881941855214045909941756575423872073181432432091398998542771356869301038990881798621151790728610272833750447202869156017702820912288104716019469591140374513408670861414510792618032473735102496882558718607848764691604018575807040662009169966738431674029346486388695690389488515011300088634744149148138938534637731931115196340694218222981321419511483516182464174476289255184160386777021336485858544054039583677366500659136313767672250323621894705291622123033072000549865254082914831510619299972663883311831238109357296818841802340337222491574499967860715574206997754157634536723787900587168816183554827902527446537329588829889160228601473182596850367850476395281914293602983237543485775599232358918692912665009130182277835844804133452815746753706484482282439380032405573494138593493440014144020092148156666768805713030218309623107469813684855542192531500638615683157904145954736883963637129371814831066037195039016813953008784967055294311729090891459363201778663525051878212163248558608042805354889961920641629340996355226895727576237370767507244850844077527587632919563206468436498049523320590799136117545002542631946877087496837609012412023907412363200447373311703765774054719571844017750419860881762498332219080339429419585124760374397448636829845949949368069063747353758067078736395715474759814405878592462612027733554967794415606576719888182582531058989553320822768100937124011042897696946019447392334989122328391041151682788402859170456245657977361424406853118169428332181699746664602890705354956384128032510192609713180852818229459181242662416444276292419054402280329443532816972257147327124751378008399931362692526033928771330407219368711051868797307139787051589352431199360701646882486084107807615966765754677505472896299612251154584874912076916853225180605337651059292052627718809880022320477232000909547594089213751510858442489561603686892334479040621382700525486307995357412118545529927538241278217232767294195155926105131379727088092926581237501261245987147355500389856336927204021252215202038886571799478362567500802743867808299500518628392600871728907330149381478818229792771868049835678899567801086806744805585857316434406669414394517540026075346247250482539842815000783677106022468741048674607618432650241091966014678987965199038769591999708537980760515225868585136817935610592710801335066715873880949772201997294186479191550622419584485530697804891197992531616566102097407605400340099472261982391480647681522559925666139944745488061195065822971667290647588382322612282618392997868044779405860989570449065744277061132334441289245395955752071540855143107884964819605475397147708510352199233337158406637142283006857664102958987340148827646262545486401412690630647066980666531801876986069508695088927177483673636318824462494388430915904797553769045117845882991643245429594037649256061494255422515599402709501042079007970641244915108009735919972115042267483854268330768810196250472162705470937716748807423356170054920651987537531570722208032296036781277967576961236456212740979304999052086122759084412978109051218525438981235291672833118514459658703653538060316164454134649005050506360140234457394826718303130559610731722369416887601232829858368616853270462043222502726706447777023992994121783860594270131322044789132463032475718021417135013419869573023139299957590733363633697372460958565648825844130838094342681828620741978798640339916542382537876172249807319355316036719077036523482194694580372640007711071197444113333208908058894006782011657896661335225890858113754637460634275988033923628301091457990722122509893493200449600616721242884340097232720210093945963257604288964873092923588467608610781169476551008304082480459222032045008887782793224189943251957145736879036243354350352418237594711491383992097315136782903533680428094173293569235531633770643169037269671470685471063338030544274499792600365905740963063884188816964568910094460368424444719471153483289434775857177002402383503862744375613542767933793078201496499367877460255713588473233356003419563811192710620348284314537736302278865796354688670858214047985592805008541235856399566942011319582202495181161341326780083125334569192228408898136657482153645705170864068470464043862671817203567057732470182994863254274483678381139220865380209031966640424569830080886943178135552181463084765930021440117346983124440377400311914437861697499665572743137674308306900722044505565757929813080680202250204980459205630077024018527026985577068977133295406098387428340797086553633360451966798659579808297515594362722984558714832308893702162406061851462021224041149534981301412479708787877528183363127077018309410340237801799971399023505417812557972645810504331163075012615994212090338159446956648477620261686610371792920152066046536551210338281038268952752120764174902665048382123314640717008114893489124902829017035028682203550790257082464703527610324451760795651824934248109930558968342651115843981553641238060476927489104910919659185724703815966481037300027875323616434076869157233754434489996672918577001710428743041878628622631688582568339748414123520071937562165079880629816829024508508276365860151063766248696636363340541418446576338778095253690096982905923944420107221681601259176692335552700193839246277556962133091124307675385355442360001026590672616575876217341275367064428966580905651106927326891379486004607343052793345370124502765353553971628943941525514448457021055657630997592887609579897628358787714463004388029705059994944576490815091998991920411499554397024680719916612407998802083048489111067902410701161604896222600947520650093371795755832869037863843822826315801085348217007511518385306615700251569979084918619680367244465728399336114502896332356132602013765406348196378279518664383495288027179101435473855481214782509336820650327991609329852505667431017192264415482395711560730975694403775976610531365867836973114519335851849246628454098644065873497054072164754299884288866150756600565897140098867456694590982138166969511631164348332557036610009151835322761539985926290831868205374248453641728337774170791447158576503166607707321344160193907138881362860554650599564076454756278529893591359500939401098469295289862441840251445785827327424131452330440784092950568272661105618995394741314163614251445066736390792032326773580426299279296576105084416531939710081736534493962777443691236043751484877242585612900375243153383989685852933389711002945990695786573506785187670892335272108706555374304741261703561871322904455138585111433418332780843024211898764660946561351971036754834970884559406428554596484839793310027355734795693251028366197669296603070410698118174608245832889882260647354776361248929607863880231575434707208889446680325829169238235146034025224390618648158258337649502805438953368675438130083587335293924222333058836674954899918477753285472668502438646215582571525373366602400781646831217567858397340953221497715319826890934128099892406648065680527988511188857631848409015161061667093344200322393102528077930942137114434484642040679558639164350716357393502647420265285031255005999746449817570371951127308522620026333203320945902569208881696193628309416584410280561159065957781929565221753169491223353811976930899324599621301921197209470442697954487512619042503573221931016304327628672692915416987921201724843303534658869536636504277366033154875983576611745479418066711962311593230440049789663217190868372222592510324433918733160283473022172449728950055600365850903458771840379220153900285760498761719931742550013592087311879967228985922024960994616230428115602642949157823916631115946707610420937880132958983206117798154368349526134483594534168426311572665107548138539131425137029940898998412575451662258910592273779001333151003713381307546443611582834886722528300105360986092252213617115802460839262412963454745400390532879390652103899234867442297311877893060889522201089991056922557051473450735658833842882197258015774460485012862119869316347971290278989068904698983072033479779985624779132967854894640471345401107856600051303681897040397788505341021713803346305282881569246134708386349801127257522963734828333157062112427484140433147161324910312952637213369008222820405297995508923592742390111930718312209607436101153147712545159930531899222195806570770989028920965583359958746735307936672027444746785035671283318235171428281663829822337239323412760302650242760177671180202901855741553129438402492533321409336403839666401652381388561175132088688897696287165428505634607506488727677544450405036654564036343188965264557097273893233261850211032498467131643300031087037682370563404382832848648766221791874680376392319019235580527889360116599520944107965310688102712623757498066777611757416948786498447360022781194280030836773681088316436637757535786276951964268990656820061972532813690179873653700270289811101053501778730042435142659602661123146039697681084305613178906622641443970699292489427938962518475916647026806622529740175864306095597762552167667370129041843592046276784962261805498565931892307985550329612124626807401769970384216656531096449479719132221007010749892316621375904965293194745104448062305358973609079343416379552775892684037460835775202078603686235558560795643321595625445788554050258472163924688133298164977203173348289732549132317305054027270088187041589609349208610179400208084998496904501652519150710088576684787111058751058810907101336048106624630538788044304593784235976449912963622749517311966501532823878647827042461777984309910618622683742551166520111107046151231704028141088489862348763468396954847905148944259914002105712021660016098546041069659591628660368512538839458003176255978566055061215812433435552985214869371267424938302133030081619312512654724521318657156605751495649594841482469085418990782434899101065476314522287668864918263320205031666959107319926996623356842562333586315806522347585595974055110049600819399675843657904670601344026616900007245700730020622089508700954921223015144560077222113278996492408917002327732871611454520481378305996833700868681839974736318906808030166220974232109798421272592548877180929442719265024686835480335815564439431901170606640770534753195476713646782809037592555803289901538068572582332153452332145420696474954010627169040122948135247140543723686053443881633588206469378544391091115378874527679304129096056055136566478714419746363139472860085364993456246568027867678584427114978826358150144026583129112691284825604909710345166151837018110725240803358451647968473946692630621412317244426232584377301655100833475112662687766230222993712836536315813807939632331607374169033217276069167998000671408868968757833503566327206021619706319640101582240067153440072822811647194248681180181478953498254420351032888529497675330352585456785160775432117426908357254377784138951595613356420173361498426447052504850434120720686563087574740314363126398146062663939170889511322509210104139467687053750889118333214978743787652335956691300324905503704399742646530905391021079159777293006324575548691382143359630034457007910360201933512804082281337376138058332701028585594026002024724909555502815055584351445536900786800796885022183833979539179646313403275807073846041178970311595314760384000177677052223113864708091012639387667885329803983958004105019514901297503584492990749653228859851660299406730468512819847722983929670039165588619689472648757581445072270126294900349866274038726849978458632274548687713803899370740967857815087652732975854482003296719484407871506769790228975207231455399337949391948155383758634577195553379702358989393187524675184959096036582565249303908610490466069389985093601921069226402978526807634714313154126580429640989429015445752260915865970198049579529605508582654841972132522801169189603725589516923128377569327061519166400932830361093206046450893606297473072756526936604628281382765136661835758370454414547014259862726130499889485264033057445932877767106021176674590062160057836368643563986373709670171600487332314487849449957954407181740767010607207827355142766569445425445830714298632628232283302903396693056869568457228569535582226927804735637643214147778077126348924267564956108543158700277620807725769326550505283588387393747798153811850411519701316234435488503896096915358239930601149969251547831321371097996191424798049319217983679217355989419452543463670269254931193891072649627811114046057794276643000117752640230493754375448137834831720283632624481083323283193578367308290857542163127122116562631157861377725050152404942891909597220669016591622472684561525556135944843260903415027153435897022008257684158341376966253656236892054002758294341802264252206992422139314855719732238483892433372291104568297754087907802470678294634550017837034055787344030112857255261325210630718387672679347325280087012360604661643005792316045042733687067809464118635677998956166235308381054469638133943584616595357095848706143496286621015350822430053034643012244068500531587105045030546985370492794673697887221692998250408170263892063727017208499803573175787589704591822093582015007067002299782769556593121661499285786387190218437839842493558994919109082100992364237645441633097908220753719486879788562123755774272624221023356194684433905722242955936553813377432674586256863243340042155414591657805905004272739963096759277867180526643795272894059332342991877966134208363862648300331133873615316097705973371865564340706506664852919855410406149148053530842022885466166562544049906377429758346625205997704458585865237770667729124992491766496318348674074651481621387657242765356953966631027555275412120287486309626362373397117752768579723564756457347291580962781666169248829624817302253749860087666183296828120444730716983304408040505686824748484797695569885703074725251332621538286584043314461645587929720607534235537452086893867685029120707977479307253204244848741781513698302393746330563667317102706675233248710366296734238316480557099284742149967317984984906666225061527353962483851309129850268074544360167026413273259788861078268748123537275742890768048543831648166094095852365380601442755055467073785819401102969633358541879797238843138553999606686918946938206901931969962104716209629381746034259342064728985294538469916560029153211019151619875572622983815155734208691566352529090049742121268158331004764893111548494810772775456966903180059875816763193613516066694705292547797459666765058786714072457723395844440808767897886428151574112117966515152017187030662135688975457232374843517186124791602845863271829599061190913401119107927718993677816599845943401265047564554818734518672934115214152008925999444914761744661188995441354035135231224318096579578568892632864098475430115951667578160360201086337758107108780072019652561896653165114491685153039141607569533063794598573145723168589028502457607852611824599994484888337635261100837237019139156678711193968064941670794294689057267621845617997887247850474634833446030152350588720550812091292514075100481984872294797354707130507430176353526563788695101506271233103845176826724941793074232968156315512818991174842751509722665442956102809035701774855126449371237016470650225397307684109730238767763368748570345177886863172209324677465665249312056892988011476547644200351764362308075771560408716975685135262265002666581120102525348605615002759511450855146115871130562263653984294468859525912940978255943964493990990743204313014233984854256636567599201423517068172093501247784121091944936192871483226002902121036764219234232470304781984567560314582260902795957583612481347377474319973840862584570590861822526454045043589664090291609072906204121334037043748791163272521349604190443613350787063798034391245923412664510673595570999669544040380574947493871558714759272887520885657714095399042450541379023617133269035762212546854331895891162835463888216277992181583788700808079389036086374578783121857418326937316646062927192225467990024027370934842029918143787356085340682155177314131546689851543184883336031538947766761568133858489872973063853186242914909814420860185677536384376580910330467548406310887672838874155999265791114512916909433044718437307989484567082065428462601340513862677000169633310589003008293010852159116422213310860608983599626076561113516958702778499715847645775116484728157015833120100375316201808385327187463856130605972320180402434450429857042989014998594007133539091188287133225640245797414209707276697893264810555964503805089481558134734146949210709207909547529936799771915318367969221684630631356671421478149901817768878582201601421994185188524825022249363892895091197858302381683601752159489420394682501023544896602212875070733884729880511237408988562109541397027742317235049833612895552752842171836060385953735202466903026247176493617063592037369379427277496205091601554474623771228066835891025487347448809447063581792710596159155854851886226761432677830343963986202973266258326567022319326137259060797700282372224845287431172704704745617515668754421354829452007513260463375537522915686232857438253893443206562028389814067781973257502804339460442294921374615852415576970608065743884497227499713513778796340830591241137147387542877891113945386089994029255408957873398384179875082759718914021358908085570200131843881146568529799049792347941994051458136939231610334530577910552422263311558866621741216634309187669149777060656185345606576032167090222200819158180812213383680943397336619671827711059093306654193905491163294506184878845228636528940515871573864061961155092989955924540373488463535162857044454640230795112986432501423486045875561309381388171210430795006586673793429494781652747111425594970345575869438477221895141132261851165071000963622890215199044566182059588176404774266472651768094036399054414201758270469301069835372811887241421874300581862934464870025801403188322632043827998927112716879335672757722036607254867460967475586903877715578999575821656753879220645496988857567291369428652572308023570268293839325137709021252402503610819557886436009490794184980989028649433674998673571554795958532620342795354089335755475063331321318479174371575886834798541003587188595575804712306205895480810881252483060628355183770405622014096729582922203427451110262612107950949060075884400894427151087690903175678995127779762006284930316697266160674516066479104930934838354965928852475017814720034242758834889019817047541999882138894884661396956805358257327604197336663668013745810933001268127933999504086938916300731605393555176498554251600087696590778676838108375173979547529860766673522266347107215664950532117538276395735080196599189666854048546526683555974840449358294157129841803798398316625893306988238566690392107186464019950312169420387130055143020909978244720045270596573174878318588070361706308758116412755671565779012391671359120312327080264551083837683043239974471919958791374047051179349458061401076647381434456382960975005341640295814503331012926826661119825425550983210023720488547948248903422553649127573292932205622576738940959094223186157590601791825579370529672807813031304328019321406437856271959737360104599391566286330598959597891774571863166641127602220571821136213932905908929030756576320761718680692973940188707732030193676876984200607639752478081010772548871246659243026399578124067716955030211475251679896081378992067979458446239235427937005096982320713271832974725457073281744845270949575288435592770392473771698440185890607070505946179164285378196000912138575682647778593886810587169403368755468212714575688458010967343499617681058846147731633722853030957706061204732261898469870097557569289818408480881592618435347319501503340155634168460101061739700888249039022732219131926184034906614482239524347030176745220455677537291047093484995050164299459458927874020048906118450578304583109919722937829477788761949315979909908461630355036000432227520423779131748189533055145867135165357625566348929438535061476376364824152427141068070265268625644524739202941267624673825119742768644652557488932275916797438460677106657503953926845295723672549438675142567908353999561774413411144039522879963461385857772649103280247815903248133297740271792137046478242296708302649204753919056698226787472346110709117231629762265142934802883376945620898432040294854831906987799879953310523248186108714119169584709135420632332696218501638714217490092905405701873228838974931703310730674576098415153765661002993683249176208068647009095933793876879049806582655544419468774550826777753944908243994174094329733903869999651341008240694299001489879991061365537262645026578496884812265917441142470743034052907747209830301269340527314133149504331082897677947161867419144445357831483901549954372521539320361615973271679877381741334782046463836469779753419526910579638606994448813709338411808779659206012538925801933081990073472582721165069942164285398160702861030457871627625725046475202604399963210663243855708741101614445895324023120581259256014309919519317460378517508245383857207771006500494044948363997495584368186365653608088414381224119458679085672695225892207391066170358105291068706798238966286416524445473461756650140031879992935262660834850192569865029652292180588185427317413194761788186388611552278407271049090969889052372518738026061623925410430733238219602894382549898972816682686279071721502700117330247342281685666715853784635734241449389456260772198955555310525942644191662192941763619446671423524010576212826498716224267557277048899929371025572731232003420959457044620762964907674576061526117787438207110387918726109449781433265957176487376083479115017166494793284692059872665491187144581949742954961689039073415952596423068165145198484259252691751720603627999417084823408303659401370589477044201754731494520403924269328163770409899935885645917170963464897443985883043543196381656108131614508869183586541841323176418387668208614504975223800924089543879216974265382711988694625503029698379371327756739823040296391661290511605534468351983626068829049643786917740667534040537425647704960160710487633146215167489835334032499945887985315306632891453331026819579967204659680162496517110894230285274664591139373252793468312825504514850945045505572416121755069317220578791390451717491724724466090021646254389282619394089185752168160040522147445126319275808634077726727261733367638804331217816129598951425648997090016932712513099182202142431698279432625978534470439550417720941793916828033110272949694773396267658320274488387028658852177946431685905928935366963979513781535882474210229173491348168855466597220150430653978396384648739535669700921709807899141521383259031596862910557193146276968678203651260656903790853516820911342065506881867532284331944688158759194191478479678515295915833688512945591616953857759990873741352618054356053666383458598377458423703519358952307443274595546340799743500958408072571706989213623724718252276274709877843586685106307746428091113617210417465200502151453971180065011166965170631631445847363792925445809076239030845028952911516344303746438147080633886023783059046759162007003399176315596606664380843336407486762970482026019812925426450308612905766846793491531165642457974866316129306118676468183698709142772958064036865771887220698554634327399469782460611979040008340871863589975582145907229333699416641875987005473880089255855364330976221142546908442156348158403194347438750906907088896103083567574648327164465702352138666023373586649196353475769860260192059584364260382608084128768264939029118518874754876769684966664341584532523364103333988924917591950378662747777711711543861201632289944452120287526970610424021728368899004325337280699108010321133140683502523762188586153734218709792994069066038942710613019344023224210954963348170971207598342451078982842608893727184396821801266636582876544438462282654809865079005476393815082001114478759804942165231923023616295598181996439952189227543113730208819602936307353674171685142513464346353799758672063461388644030160799024252072487044253877310225743954398146162783108845682866032282646212622415097675806040945442420339206614684918252310104503691253531631910306038687884177390889584459742859463983581579610201035263463736427229186268374062246179774767913788208443150883207957037391657177355681783734093950919876306236313639455791405454656433780193878598515844012964643508821674397556678316093162064373654988722982846059456116943381287290656349814883348547113887287978212777452031902516908301167754450399217058454439262929399003486332883271119533779456751714052428646903271346476393784580216256751588704978129961270105331143021276645031940670944584623563919029797638095723008530123929510499081979311807144454721267126353318728747885365301267169257047735362809767757601942097965688529218747209481262724645618904478762710396045676031425389932110812920970811450237256069611376755330049670592976907730808738978762887733820330655138352581130030119714247325986728023414667094981174890227403070871720454230469655584397625266832863762806791923289593979097546698807307386793792948731574314306998010274193941220109880660315977990523907879442676415792761744207323006598742036204830738055990214398906628961982017639252361270745935033286074943062391855705739029996984892541444721401447571649978199506957860318294179693247142786913843558351751909827094263176087542052571806501241714484901065804025037743017525780485039081682576444685736695371028208622563484386156088975757405047886761241580965161989102054025009627648958987459471034865466472887707710010439498850609248953297343410239871117865743743148684325458902937046064009004555290187023854036785170983322807241757072553673141722546972455737208040077694724297954374548260427235236561720802963954733262635233711137209012567041303962023830301142502492839972257088850834889128287359472988517004109309558143977097454355322865110400884940678293683514378409422262195672822084906494489021089584106034036653491051601003493828520622739127459524560481069515038285399871143139513108850450729184122405695915651305393077424558994232569257967942147316835751171189231515875038997529592876682023375194232919860380612451420794791685570039642580858387036927318947151449280907169849090678639488674719261445016961168280082887013958581748092264408684131651941911798232389275162690329747886635015390894336361292637644284008539360304210208371406710862023553859378533054709529793630615434975998536543517232448244707385193274285555285057424022566017630117539621057972640820286944163216109785564185900880263315673523599387820634437571409461023733611657704071731540050240975878715870834660642374220507024598510191978659465230816385810025240846134703293709803362901022942393693203697320316804507093459368898147170437130246547464267762262970032258469570754473017982169807175973594386753824122113403046243345458232237856861727037141534948674895871226417364431169592492284636711686369940675069526815261146275333195747076578314640297548887463329233053647164810821263681842203238852297518387173005279364616427502434362558650361575409851123948155494647725642291850786786653680326606128127415430875712909971591556373255314638866610912668099770691286095355009603249337729070856170205789140704932865096220696306766766866793431820219646243369711170527432110404218021083175425953462664433869672898220342016483590111996828626065976380406524036297602179719344705321866800077500162875151357735457294009185490734539700274853586126872447236810139854593572300074942299918419539434124226867928503024736942729496948279811967183539538090513591796066313482515281131150625757493791860037336037370290964193326977951149912901511807382423322548667334888564170873872614430689614149743318331058969896036070183695070697419185608931539770161610304194699203648100542843452123665853633294952017305833645159259469254759412471075727311154881828841917904364954910474971698981441519272438369112279343854357119104709633312368696783485525000614350392576708949648530615066925009733224415536549575839107380310555114758357032268872175808775728994113935258247043281913315084685370449974566273130202220777696246586397315025806941765889035626674126611007081397551328947263443497425847561766078638682394977383889678677056956295933408121518429737452874082823837295375496612967783645753643939346483510223251400306796661813314595579579730012452274516616570768276217405897373499141877961421219766876344350524718271028411067724115231604758676747736593654769384434769560611387034424789476379977246743482510724092379369042497672167752707042818123698432389930320862277285432846007976671673976201075472211709121898501020671974633029461929097764715200511724476672735077608432439317645886660403115571111945679095047725413818609329061023332692944756059813980639189112281012687888441656480798574948437530073247951904774735581826201632153656730062655971143830251748398786244070501964659100462480777208704794816915507457733974448772650436538869585451112867288291923654541638943938195179817248803893127780057887081344871676724566055342668217127102678303798813302130151802019827702809788511609995725141802848432324839277944226214059401817053657344495758822681411823115089548452136281859991710817639406254798118189494117091138827487466887048590989424916758605033719983472981198016477366698747437141968379785186089688829393921787277041558394627049089607411530876250966289928569337351870665392536095304141372429173878839695164723242496329489919461574457975572945745806209646951059521494981514491094895922792960715061226253885033770209874592366222247103256050971727724786506670887711452211051320128939131441715128689801198903689624609622574266263415116559504988386728278306608005659167216327332165445762697854620070457500312042059398520267627335253776119986332883846416945701851352107057235736029521188002616710986102534487546270628570064297284672747603927540871856964153756822386507962201435441219238472458135815897834532658839440641270946340620376966004151412957410652842507687899539954558026083209011332187502693024515244231297806204115586712834160132883468136593910483044153533739345378247169653365036201723343777822514110126811419843980911739074774936124531356379153932605691914623206376819861662921342299344504760438179321522954105406167687396558815839639462005704519822487436796600117856754430511542474184843751095376389345443300951323317151099072851184361625983429042643542781582866066078361773184757715181377821911816720437006827466337611507984754585680351539825669809140349695761587175037103971096288333860441748106789474078501250136997768642406965634889760216819937703249054380099351406078648295151809057097758954024103342955959438573798331189622696351531853147421570582086372732024981163438016987071644974942193585440095336443908727215680668062741920787609624233150699204191780423824489682632006975194726309730289471468551543846573148102780965371971357810787121464858731503441702735159465449781230290331419066789350752347107466425071994973586212055463787757031052064369836483005955771224477948022008694629931274871909382830656274298516407497836502463931676782320595171694550376358210727998336345439457999721540190897811316628827929153956054503645105641614229633693758948199256356516089375629172796490561048084692303751069102248403349498712497710038966388728874247706239778392042323420414990324766369573329557839582177050833808550013611734130298976709021656816260210795995428163779067644393921824281080075346079143843486234448560352824755512973206118763396692044266144146909248993528951610549541652628555017134281234950582680613946205647633163887666082315203802012689305284190827357348411258392395120829513572263816156655178151697318322237291224932302042539751660934589262771798752297940135922816369436999388894525964013175963515590390622788318012619181295717770177185616720152877911804016227681215362370801323405607720930268568592297757081038795901798888656844529087092318831828218786053317336670394163508686164052839262278590564231019513999855071890580691774727571261483858869106346228449772637538786521995930588310669219050166927949508245908241848986473101699799339202800693154097325782006795018278892586504271827844512966624535934037344171586352352623432399895468226232260373483406608384409698033921342413452147374650660305693108489382194960689589910439956565224713554529648982051170438886573567170376948719717785819749905572455714819349908199366116341554610836453299538755541296590657702509495270234885294969268498962547824752085381975393499049159619293329839528303633126924819276231713569702607550802498573946865275463708526415867865358492903904442981445364837455609927003367401716924820290444822107298554006605495576228756432929307746080940707307541499482642428216887862901565364710132628910613820287931918630928569486849387784460480433485164795938637369842673778860021041150708817886689705924920894834431823047745383873609237502136264418575217851296105029250358541136198051716495610395793252265679562429639609328074391418264921447864113329035519607152092053659410073178611171981783032868861077628507058999958577130014137151101029964176650750853051006881331633935442133023355196674892100176404314371370111876132150169611235471747225883296829314015859492975738690240316170260957846443992380824765097379961309979346358247820239060316984992808819441255468688308781575520359197464079319887016654765121329606351435418228897115898730379682714037927771173779978677226558159420426568866491230783358903003517272835702805729406094597961936581512715523751419881299843050836726615027413091052472277397708866352012505340554942041109103431255306987624605546108224682066315110714673567554575706617454086306413528411829973757186559838138311716007449482389863865422542303645359714191999918817301815830809123487385539817259710601218093726671671833856267687481196858949674814737051076674955021706839230966567092163323742110664704418511270062636265829955008844960940245667651458374726016027836749709331405246355629644381814673974710811444557710390123321585638443200522779313013058369144317890523559319029454375914056823131466999418900668015225398129336334683930132003006746645832990466284054112355274217388380324770652381218370835460619256467718561976464092303685191359402670001920603097606759978473229074251275579303464150372285747183769969986060087061123347659109386133134530138604708122341460362696743770348355805570305504796301964090126885344770953554055377801232290551189595929315413246128737385232848786393114252344072034570342817079659212799096733016922781903955832360064047267099665761679875672610910598070191376064737385455765539610089619326050524790662976106916078700016045204395071773429482763793113227172418742147554587695902717411352012020066552481066975044420015430300802488635921297190801268647613021561978450332937397526159313411642582507519273794537136091058232507529654525371553830800934315997806669448693872694614132261601943243379060179279656891121191399890790998931875043689221118048507903147154356536311186333495417139974266499190261924895237193494940676460404268732651539131588255380305802191202551017493237624513041274724607666525247808391585856182358815381305258027813726458847933606274486923723325008559128126597179482884183042961291775692161983251803299100036212419399400580497330984591622578203669325177420931533658383555385171365353665530151123144473358032981107314520835850707608031329166199181931618709024290548225636589326075613987771318482440113278324730171189690699592265145911047719556860521802326241856353554033459110538401546601869487838711361985982651846940794173174376369160810522479749562815239686975106873633081082972008631406210675965567757331438967408888100587487111586732185780045759993170006163348187578911342387828396510474416626193904978155749578678303320172153183123137539415025059289110523798015650090365192768613802296045721940281523254823588356185437607676407569804498598394961880093350772832159667166136677503046108595736545044913131628311067237542984449312437628073396503003675405243820440925725846224441856116936961558651282991806143641226405793550146101056810821939834221258611497684198622455132124960666095896519967999075750530947507917472241314835642466364695327809778401513102813945227673224370632326988018313147756517940581693315413932691851713757351667949407427891323043802191838237840720640189358893712743792136719038871068480114623795805633326694135414297633771165848621836278273262955740121228937915876443570388207957877299413391997122899180508466573726603173972933710886717250993875365989383715608557748703277581079844623677337900301319697242263968640521645020658788080656536477828510095587439600658456259679849209299923953952237527792711235378803685196498663923969774795321819564629343575709689195000036103469456979178791158971633341299218999173572980277362572567906519566764747474382083602760982608881749163532889895307827502867546065711399905675027005773514761978166819402762148893246368555949272121398709979159869495509030019346081101884818543988267133335695442982763483098083160721825123725259914384368211420592515008036875140664082180645837612202541787866570621673414797783786318870039756646834014865082097789232490183194979139592333661731382758048279311763978246498024494886339544250862577845434432191184720159271507698314053541138404065207327868205295287763521512581359134947805966168404113291384468044840609453769215908702149303703477341123982522903417817029208785206556295857742316787150787526367802978342252900535812737707808336891620336781007713690060579578031232726874824008550606098189841255523414241785982267129669406181342072041316925841219652840768624414684130447385213257270605536909646025727416491287739706426906918161337638481094215524509504095516611549392927685187571533674842901760599969637158565499989864948830166587479891282122520518629016912571853762246077858272869441546565395913920024465232874044025520858853303171530245445720112760630968135919137604644435611415012059725846893601453409297201103365043077510249134207919610374054617699801559178575018619572872634430100779789756266122375450214941278646304556565811902633067128067413210119306580310316585424810092831597635062942873555432803097680260364697693482214853174902157259492456909954250125520087108581229675150806859170942949411861202112705044082675534965966216314041450527439165376964522840025766741853182678394187344227751436855207121734227172875641522447119124835608953407453623188194667817468196728809536602318977273362077458489420704635961397324180358510149690570355933888412411152738912514383840770517292863139309951254977322761707842377469872108753241218581655748024779558024203235739552531927109869917362123724561969471078747317346459338506812236620084514462445451513505300734520912692327353782338804755943472652300611972777637135740962237968517705731994790766630452745766901348036598080616108972378417175625730528689425030691440157336560138023159602749006157769539569673764461882748967449213487450603880848881371817137063422712635422925698842523393177081385567734599891139150169970793927011992191398054230240533389746411326366001344494911030961120366094582390097503782457929831778463991415243933337050111127911549745329556432319107128372874233504383766601851947514244371242114390163566009282394178800681263783802133087714136686766908698089593470899956144082083610172218906377814967180213499188916323462845994175188064099680644189239745545101424332008265891520233579488276335254016525953229277659314694763551844403608721904343567479317885228618014437743530878043741666634134027261273384637279617419598416663331748061775462437262579531154507042668716433420778611231142432363589250376451859349283322806837198645938227333457291635614548555074449232890138073465167913813443682191408269550438660676243544521492926473277331318604006159229928980470532433428196938236375841856536451794284165603291708003607149878076038461112434137936725504555645634170509560099737499894046423998232083241786346547804869998992046525628346452614449969005968883584980807722882707203131726308628121354243227070005448265060597802153721215811931954806289981606649283956502145860110469113236005124111003118727858246816438108776729331588527498907719019246467187475117701103638838571388288698384680913044747902071110160288488408767838393910200544066584265123309237908944986544311350682832869304988198431314592371813218112869951883647164450332641170927539920061650886305057462708299287813222730640398274518096196950410484647190345328787793441696789620626545114050394117299227644595707996161148982282398987924263525609483077891970035669506615055791888493438661878862645530650377483539875112735975748153296338279925664453479122397356367749147269115638837435399647441542245258310788042009736886028506006423482837111822034228167084541089431757642730706644043397351709014227903582965517311798884001058822806280142429300765770417159416198839263057341675747990452566371953710462859056310199472282770355453809698552608751088922243363392308401180158847113061332756092614771432182421635861848164913702507733861054583704387135795468751916881703274209209903591648585052871158764075934137807549873955029273673582065500709560585162727817080930430236137294807805606505016875970402423902784312706675021184619578506664862216504294151082342490899066769415009913292322939267808214239464503585410342911198198541014470388001242162573706374425964305455067109091695078816060895854787239048684797731388062646064006867327452966162034322224347535674226903762645675918897527225252015286060723111629166264577868990575408242254342538928514139571162972568300977149245931464330556019840701090661549178803232346443099636462982439998356477103699179136232251393370845909990936079847110746495982707406124635375149479491253681823409584045654342062924672536743617198059588176817387967581945578893629218810023841860678944158649965553275681730242804947737290053855067291133676888390866151979540234593006496832339785450855821370482263127220079781849990774741474392928984183240422502031660221616401730121237317852045134725992396421631666427273317703288699533149629550086868237802505956080735271209155487156572056998110252626247568862910007490752223042137946228709393460757367222266623397332200919962230758578167429989185099060167344487443643432157383952902676557204882050873850208167640999615982576170331137704814958808229163145576084162300646476737899798865557034328708775256982924038080153272381087182789984290913382759823769591208200708645062798234263780584684199985730077530206212966097934411226313958950128038081881566609036382951222265869347383926453206998473534988639076888806153370693661490480239182802833200463833808051731095071572060527185025729360197854085704473044250801617706867955624104915426165227685409843358821518906411894312757497973784763921941658294161327109254824028627185631630569032922813949491609963996614012678175363621495509845615637696938085682709154496770761144144889004313181732489574649598268003903386837774632529903849154372876012324391686944295661311880799640030687175388323525935782805624792351584744895997906787505337363822123705274265551323247049252134293307513010704626089660000310051202508800841016589071569306853334557100140659722071742544908294002970983916860862751010868195506497380583361596952160181572760980704627674594840779448760933675521704311385772663722464794617430581722375443722096000083429542682566537045737144627096544288153108987788036246075128575420709980653515849635353195205112656736068683257367226172300319816989256231544579624174408401641995438000529262288671609864513153199096946451912133759739851160150983634636980498817052443872329874303424946243234741199975117519761707198190135861840029242448225763330636429653839428580653973317534798715733192573737736951374810413847227303253020227908849050844807496222390065667315912391012205257337618322703763684646766979052272911886212569929962029718323381974418114985816975921914591145144143497612000529195877733075960786780203227029968764143528187529191377125729421479794110122133010103887572397030873650969303797239742200827201455941026141444625385192607983521693492518087856240966320198061851700060211383782729206312879799409051898312736256446678356404804107146352523618550653644253794155068978342854900213787577328771825018093607241189115541572704141686414504729199657950365926274288080144665740123762265365131921626801137505225479076528694704704056569815029904868578332685142111823543894590015363082172752964988896208761212473062014603160321407038866714203267398363659763339735351322769440382905718276762144868055284797179719652018780508783292216301830155467751708369186643708023155643231095565390483670584846312758494187818559496435102359021170797872480986762946216691518936662711101843274905480081644136645871314278721797227651591522912760924727911837953273329032935488784155750094571406105719450902767760973285350336107470294861701527468539632420735960931063675708761123134231079095332366014472150331407123068368659113262739881878953266270199314601436145840714652034155038498038412025162483066377751837242690352357210850410116029557518837682471328492729847639712497722171450835478286229726928326592073304088536126904995093292864115580681519918945097988979310654569098095148577634121970490322685336923837847659205659554298541524805800288982166031628318771894439009986376458046406626676764410252575764389764729076285573887663891096352748044345311666982018338696873339708442579639571656191216433208477075434591344442765258903987088154765720014041030031280960182366928789835097578260469967419762609167230912064321152114527266624741010090086100765385753344907829104755273133467036259489365561048939895543736669195696941205491622631877900066849440784630742729318256111486432134290628678431616433388735426984733816432701264535715366632355405028184078770381159651562508612877267969468194864278267130724216395037399123946773865429928048051660204693873325536856015178966273989621849047066602100066613019096615733447713904837766276173261677509115478205883152459073154157524444132021402225355926673177535292788363154224550254135970401181924777508925164670814160317140070902308644553083098856924129112311408834777164946462370039182775747643044574329572119634769423500129694443923412019274190428515415078718851220805733053202507651057534176293938941244451182018276772028993012497008877041365865916714255304594759547420983172030883343732807610352535660802557017680217960752868785893871765319011622913238204054906933410494235062877664446746744162519058436836930172567493186437213182638808058662785247390788228839661632471545991922504746826039584200587762908189690029538689827885975746429147518318749159512363918320927696159472875827046980249548899516223061058061016537165005238218183214435835142454153776936194371660122396677016000160983301312124108458092476157269334673580770279663898929039321998256628134189976691792303730234382816693967327425439937338612154536822539834229920257500886865050246915597716179269862988556994925090902172603548506653309764496943842218911610456727582149667003095986173834347685902122235087093176227232134656440852154661374651629224256406748944503015537143206953108474852930455204461992486089083482598669987348302134641298539515852777362337786234417247149646160923917193054014327512876701720530958374831712717172340294815665375717667367820129941165062241817719300673469912396730268645225185044708682777861273002066788018096736942458490534470953720687988638090414775899822192849338981215598031162480578814538526742672199608045272048199940376425107701824169866439683523731832630208123303028663614835091533374310602141992963148310579634010930808761174230906124887826588899364021005687290474164039684483584394961789545657924898021192694943033153280631487981815791797976612396428626537012311445790824592249723430024660987453298939011896280646923665292034784119314648045833192802238036212994312394084938084043026171137825452948080451203259099778868429481223197967071740693766490468450208947599537783766561673558258193875150680963256375342566447228991415010107011433793190521756031471887046814333461837964722213383275327219808987799812654060723174430743694894270647368764264935808244983272043301162019291084915486345303612521225391959506525277503045954019980277339838029644817830924314328699463191962769028867734149754165439835961387958266749065632831293628747114821182016002499011158863767483487468778636430334141803722117333810517795616661150403252733651026794459689129227969864365788844030542491517159341517976027280774207443540915443764988404092135207200382121762136728499705255570750630313257564026137999576777941598725152472214391561185864829494890715015803388840358835401624843037088208534407697318068509928333536870106990395483525187867756582194544183465832986259438715096435149088604990897470461973852908333013730142827235287434270113237185649332703574388957628040761005153966805588731223193090795731352767755545180177401338636228722412198840591866806082810697804881951900859846150001466613743113392476263126727481395267684011364843402490241375002677580134612595212724932818333739662092724420760420843767040978312905557732838210375454204168115326512568135070946331412449043709401104717563643670542060176737221884349913377683953300284137766467564006703641285765054413041673481471366038599572516467618321667609602786268212149246572649332324990210275743528837654504374917779140985679496759973091226809535267133906936454747660881701072473629775220340357587749469963692711191688269684604871298840918960908939439020879226861841488924115775047564613011558246456830131350105528710105818264979873265628966959388273345092099341529904915756482625115897825166262728161892166679383546085437819669610555969195915500758100052534869913660875335100504819153502856062632102533850547753624749343171774151683484886397039664876449550323847912698332228571277518249425299710225244923756279607232703487392021097282501040331802918579513230804553513007276816845021949218102376759905621109268394553564962663389400097337698872948465645945587336698289795594968238477095142830119878249495619894736951950665101472569226781364049691662000605532912158474657094753867612488472188428372421913955415543472333951287850747297352823507732425247260195702450925058436458894260477649033732973886527142929953176553046940970286607871453076971660628087511482434506499618864576522651885681913473877201468465534545257886865159510338045887656713747415207508000882778862163890171600768802587053378361010664925198725086038329632098164748797187393823352871063651085631127316951187831829651751174742850277810115892494934401196963307747288001985046403958337506886313077778777954701557073318713349916409919632056502403468825190967983133446249528851126372580404512901610510818892061254785281979716742513605601352242677356547505239718138187369340762188744435387196277165454493833322652216885692304030082934960542039334295739413152734200116719765980651115565839975204067037015886062279183114615753764075578320063469958618789093378202526991017617047048770916495501730364524358301661754083484232002858798910080406616747313731834893276251637201897399941511710854483168099103363813410810020634088119295873515948090505599051874818125869269609389247316594537653865577238987186663728705387069952383890420488208771540139132618520960361198971058942936793162480763537051073346462905405194354251449148243946492647802631625049284138429854585286420466930526692813943649504317208147465769408306783397154850342398136236553685911727396403048543420719059423714957431137736464325890875198214780208456779560699324913785224281802057870815596255073072502718382570629082468938803966866980942318956759165127951670414255430381199142241051346107540419637328888528178003198807999599058990788664427392761193829922064157924137934207602699614166789603268725614261771363408852895248624396051067234707027677919492508299278179389634131351210332308704150451895283613114615178732717764537406370516016378766742315031164924703546225465169080962747341172112480335778528462744931740520706171031081514733048829697726282309024701388738822765660057479444345268923880665455710709735179106558625720794083958502014997216269567997981326530968267044511265007734268369616942595954878825191325166582117722756253881326918658775575093194810758304439727536597461441820636332831245262620949356122848910078602252754813737757912041904623998056562092313646207907895479702955970608125152606242942012708070848535250668345183429053022606972166867370869683549034029054109789599685607990971756885628745341514910322396883960403056858444582324984544476410305291771630494681443602162765161507363401588146472623484715855208556392817412596981351545253441410057019670474690059539710774069476021948916945870914295440388709548826774558561372732411740968108601067883774387331199239754571926216288901841925942122531509279454500611806935782816954118478487715375732530255432649698554137708505665335359704713894264538068352828863691350881709232943998991107005632898829802929376823266390408740354640272714157368908023754694209480266548775821107588383763995407504005193308550760129328885407612815026507742734755788350976702080688495000392967390938485225764153365736091497389822944561139902190226637432236547909934419595311062073436012418210052679898412937356869874621682144506559198598313601677962379126313340347111366190182839503083344508449675513373008739731558098864581127289864116097007725695859138031752268193852110509488824716160321797121402759316212662726865113032819437919553785765060509412217000019491441187559652107283775128959103551352840260776569299794966495243285188140388741735123477799376381765388452106090134632783033500038823744627395375855712085494172902876105994337005759560086870916329282261823618593145870203843781903733897758565936900472529122213212276041603551336791341364169372331006988046229902646827396886213058334491365903318889491993227022450936581443026605972837796290851279270329517894314127984642640348223581130646043689768679012604766302538362179069594947656824144817792610901822371062368520926941159798498716787600137032804957673963461525881979943396324996097369328506069383899008619257984389471025327778306422434354409399300826762644074458745843057056001628966663946371555047990984519032114470113610492846811335731011992411774792166316706870959363340890107864196734352186556494794435111442378235060765308743495738691635700451870760959857495549098133082455181192388178016009488744540376779327220974274305827731765397312093758989440729273733681430716743850776032660104775424422478529298964193084250269241010829614350756869523813178069808196464642818290104225418851707751518513822890190162515308983159558486733954258901063969180004910242355010577611989487837731196350757796973845219596684786640680208436698743507598963731984324709620872127396146305137955366109855826066050404821372773456134566531027146720035525331542145804236739714556612098252148213021934311146034284850925816254656634450639717879563375847386616249933076092312098019232495039053223215023459956229170080924961823819820561548659867460145357616073215327247538103651720577315074785048632036562077633875706924739661621620577333709607769944722336669638956669961686879438176834903078583599264072618885958692287446286340467967245131300927222464304360755141224289235885998763245147428439588940880258136316766016202373682225034629289762871805384616619678677039247906123572015975810179893514509356722656433409194080991737378449206476896332567142880190443370326523072746538267463412751144898200009897566055064767088266384729565368044455441185246506733494565985522103479493347969730732658419349892228637119222922521946800587340084552570011262936456307610631148328217033427719016809511173897703278142072616131832868727722081059116180491820346402899631953861129307726083411467671563042398281785947521332563309007762627635347447606416851287420325202387351653195239184807635467921194081487978418314042811306565493716066035213145262621125898636695766246845113742213871106219454100888464772821577846411643298556248807330201814296024835007509062727514510941333525465303469294841661588638366982738199480279831738809648385034068973017920559219078990222059121735493277590508506557026796300658837329385857064567685381133244650385586776433561159870248221899133691109114363398827457136937860740376502868216882197497111865850424269721913978164370812981972747633735774970115790873337850683102402490137693858724073924754635436223054962079207843946089229023068036711601832304559825337750808593378452330112509179371753395949935099479411306147596483349063572214259458852274607646713327510817223350933507509177492459726127891804469604040890498527803705472963721064175050551857470248948592454347900143426699077295710701470940929614604280829642945984370323572309045883542993136325374674920881297195474025848255944160942032802688189465819856353701598840526174103164537153737012938953328189971609214776195739571568288353772338297764517275009877035340697886643077792353735345942979621578927763114242010179886699168394394364576661733607684657210755510929446051852067448970758276082604493658318953369433002615191739718325168930157041966857706057518811970201061012552219435005887475481949778763081334941780562288216439888313487427398884103780122063034270965383830522767957195464378263728881325129700082898728629747566119630262697161210201562172397293139454040309177985701444592726912042526849018330815375981774995417699315559598289088562481428917061129416212185986536058746743794242928882600808955584167978768980238447997262086890639924433718055601822295749240177449969640576391100085488113944041120951835051097842590986243703817636443963182135688196811646939551413885202421743270664318884529767255379092052772091839477287556761000365399913054552194703829141742081213764997641280772844019730354321624673793164145047233164250831664062998737938096919173044894658629748240537085203388977524486521946779578166594211003227194162119524081584367864890534373441028929707853618708784573546700721548228541847730405788846747666761180248117499648084469298455026703956334493924560141129734889743393055606770067336881026581261733499409178904048429422580570621322821611595771929271781544771534801609439113909204644067186669559065225235842154231878902887540084223528436928317977337842781234612110936765667280480010645656921397193609968631424823439459552425222553005299176181959585605365199926842610873532089844617769231923765603476549372305798535784213710719904588595484436427827142057550744325528709616870704526488885628786113444207300621407170163967446848108682044180064179318858512596266282400801929157390934680698934540379450083677172583097929751615827893919098419983090193999490353165954952694919905475659660031185082416059845339609588019772304358540682091190126912597725944564421454526294740327377175232461548716949090862921862531867361674661523960340301760185600612682194218962398661173203970186920057014611487630497956058616243106390972982262908152619521141270775889789451506263415182642657544800500241616482631516160589464232913639307088857167568464039982420997937665303197567803202467969478486481630735400679738498776303866418936080609705052146764831487661276562222988468959632527301409779391758550062080633660004921451270053589242218396737124158923460645776406464340770796505388382640874438001261610618906396330479653335549158162947762159272302196754235381247789856589114415152302105232192036286646069448944538853536749183753160628199373915780730476014059373662693764669362774672955256582695020243953024065341181908594841447952927423630332914924210488329623042327928081121340381602046585793849596345509779790737644237301155049918834328544287843167376855675656239770543203584798863719498875812403813602105547784339465969686797721891724785200556465109156137412505296656819633250938201860591180412800260103604020755161849478375905040581624133779958685270732296992017487536985279449070134193972392434812743446682544669868535619077806061152207807737220168194771353460873466969161324564000358920839726998211534370486234316122140309975408654319323020456126875824338495641513379931097115875942818396138752750331210162399813963537112263702706399826563022437331251503657194637411637684621445312768088423532408356010359699825659346239501053965765198069024253984842760227887780887953431148200677806260930713676063121995502934759298474415444871841439214920565747218889333186162930107116358210055966785871873031777822421108409546523855884748106922124104540438118640086466646669894905198305117582403901561263868616047272666217678319847281229489392011030924773602692575523199193100521838566976451997552342492734757774950827882595314124158234711597692907155847786652359536458088421307866802578336391919394690686093789407493754302925180934989296080400407763536251965545503463429680935496169887500960228573149495613903682577169479608276039976119547529971095915040388706629487121694353561152084923157874073846081762055358542067248739416820903171750811596535675874755765503584376128964746746090009907584289724935907532926813624326624016075092261607496023471387363099564624480814184138985590449129472551391160437495141594947931117284363848595454510876556023623014139832952719856831685614912806588538135784252195724346896960027388195169625218645903073896050609787158337112463298618516018061713990914818744045297963558136288148404742713863731814591814499854128248625662893867335905593948270115389443958115822422214718609456690282002579192665547273523919820654555622665664224124651673697829059157635690488261608197785659100012342109097977872565954704964259844537969092654935815041722089011111360855208232966689928317941617667910658012031466909277734544900538801947174664172727007339820544627543386088151435218369403339282367693284036256996799028579912569495080360592047631031384118846795413547689820963769329250243681823148006399623529683251309638413909784808244490286636908348612288823691031932866272115115625336787748628955579128103070094401987391842872168357124108381956814609928932920109182618968610023300721735383501464595211299738285960794218496703951564439367192808862748574370032603093776379177924815486727875728995549490220487094535669861664126982971353648825843487464006316375971689317066869311411318212843538000892848298363102831335839010913029627202032105000566698258762953449447413540410155612375720487027732135223379000512636366544393788939405553915253514515041956591433600811543678731912021870360594662244147505532942337719999079773938895651738017194750042878069126849904195144770523756384102886452816143476016679401102214691763848761366010903607405569888168718230181575767464012553744908702469451836770729913769692875682576163339507797510933693001590734372865123542368860477285108581905253028468667182318137122868342276126480509976842535210637763873759671501630309061286213179313014267882039373623193476777600837090426266542043414280310058459188542142719009529538691152456782751556152247601112893303168360997326350192678121317269403722603587107557545736231543754546443370697369861158670596173422730547959909888066240382722259838308035158741298951450572582464351373874663358479913033167022682284461256138565102929577931993802632940206747883072376348057590640688915640145908030674496956853598047202641776622218100667493150320670851669806959214196023083579488259513517911038648701383842322911268265030827058726113491529290512535187335342425359305327329481289662924941865664330556501014049988992972478173068027817250615556948572795482582903216463144763326332982682124094860072027056836793750226202226920383167589880014705494413399279826786376842742131629473631358453566377414548699178561587538552515950055251553541822810631587933025827487179267416452027227154204050347650629261556030513115616748302001670446966364028016562755055743996093334890445851504295187213431464326250768737799795486973347371420023406931837318865052209085487598720081977532296649745225382779969126647463361094774906276590547823563427224727209198790860135984007427098244850614723345618574932659684942787456959223244270590770098873092453329855869666040812231670522576445404594867509512863168443410369895407523906581386150605298258658765506658743888502045207647072823411361298362935321752786781924721776662897544065623117063585899355503317347998641378226701843471220353408204015237339652198231113224770004139432173577584114730997301233812527174437212666054221481558805720633778027427291080084614116350783427001042295747125403561406635598221119912793531275177791001832340141386030437139755502939909010640372782703684744559765383813776050722716358564043817128433538281637675216183154106999278439359329014808949605280117434272827828093763417101949661699926708958693018114382130067190440711753385208088180408833068456584017872539847092632012924614735826254336526675604611537949265603131402666515766819453752310349498767565923786413793375121743653805111533717518832121917852659058338665493862368127123901954342474295339649831073003647772079915432185649682606251570390379170021980827103506082940040337668502170602629224814186583303405429519863274676612377916306242994623975837028911113880595855621306397305900900436592232221743756396462715026446593778609236305799056696435567403085449954193235516132761323398708476366633757690467354981854327903048765763917946113823798203405935014733528981192003011919664801437218465482740750783698330174002566173402301902180518946485346429522511241484216633964301441477278703200938307851626681417262309317982507786517315227585557233548495357298406812542540189725898170180598920083006265385961519754608641837309649033018738760619469240038297718675594847649646732642500950336918373716166205655760299561680526192326881459329109696963356650711783962773821103319879033981032891895667955328587363086359076393020920456026800438599512031190094038165502965741963548560655333446041033690607920243151759107820865264816351306182526190315530070275615645878330776751473964830842267599626480769297982923272159662787678228930501979988919125252707560739755272182663335557150371961846297773751400549650802894154484037800877214949348929239774433917535900920442682675531454941508426203536114621297715260009475539260738502394454422035779060625440353146161328029865083819357056940436368797903518387063549479572990259090608101799283731379321892592927010601268667525582160977658413375106023601082304330531178004615628990179152333956903776844047134686984851363849308207354366891504674782444854104287802224538971792993328622684853482947791910248312518240149442829639374979744617571013202617702272834026968211374514736184089040130043472492592746181028017178503266725859445997577893354616730493426349834534435762171056650341365596881411349408168564298678132341018438960247172653594551773577927565671459297683851547004728045240249001057653035753994763802863258603886286809373758453086383094287430459885350972291333634777888412268296422230648044206539870289007390144297808403251012602738100409924615669237447027199117918580419111907358047726904636109156403388578968060028213954548393657810052482451959311017052532358090344995697664220651288360686890482405034179739079552120269273832433361644686145521200744973929790345600220668024089183312598461789637672983270480465839015831972802610258434539821703827201061885126578538495347627511489187226486462830502947315666943518646486551948441571098071974577691116793037897800140243082857976429513858564139888141490096488964671043684439471421631327929082290646671176877987929108696941896494013272719202858778352336704145148183399416677784808238305769517651626207622442459342800081840607659143216047277292255116164498183668852355780337787006791520160694715833889898853849822624753385953903021987098320858171021932539689790843479453143134694630716309937667307252470643673764995747327487819005059585411082463819741178363079146370441613099027469304526840748012746072289230762689991281329967697519773373282735533888049348473014932487037664748577138372400164698044377472586995139160385907035299284051445531116320109887556486231633763655121049874224938878800155845173783276309782751692570813428571654480753973616246643586312507664455499774018523998382760989776302415004341434849006238014496094674913183256910167969838797657198099134199782335639411523253248789262197303942782994459959205194628622761854390820712286166402725677035926980168089656346914702366112110727113414159633570523596209036842236128317471521519053536963535212952719922205940436967562385213340048194572299453512524558930716510761487311746114375376946750539269798633974901748757193852147428522863604417399005693003132352741331306795881548160619485615817143647097461439232832443705553389207533397779489289379660530809913925275693212621822956561772804320969104036431231593820486789543223419112754305283946491702592336107121804479549062572018812037508164253470519837913761400656548107713774924896386078344863517043954450775679513608679474679459434350972016220996341409048754302788984500120044831552496223086046183271288408969405009312556191991005157300879050332563043795176110127489284572889693210589316952157580725855826879347980699363486948548420536884137118058235593016537506166302173010770117637510537581300320830328864957230601090456408013975977452995246250723861235870049776778964363538045029770870943063487236523656898565239811237430743500736182812625647930713352834647934144358115474955187023867724922377129205910770650528396654590305005799437743982854900644151374783590216963109965411409599456583220023229634876509259822944869408949457638213443727241562893618305789407086020739671031361910171727599810138645189865770221139484539884742778436132151393561106509362187119070337363842627415041990707410272403198985352365816910222675755179372144127805385530004803316249117134960411001620096566532530305240494798144431601515506921520428759440690544353796468162052339526397450594740450037823948312765639276930548720839533405312271967085126519331029944099501212511484389356914961746196641757915079967093594198190971571632299010563018997824808416141748582223426862683181829637175126338322039752062471885689015783219746252017219503158322880709192974964487019619851887557722982730309361082602600198992387421133304699924274734946100931634912167647255501755935836168830707079818230019746967361061980914173516277687223614264354441630113705671524885452737230371592443510283107760114321235866492258227287254348052716718520208562195666579825975026676677824133959754528937847781398060376684233719518530538881381580291846179239197211029893292827745671439609828918272422850889190117682664992179193192478113731794984352360496418336754014173942396919878183203326342570742700142979001701296816368718557172844765583542822929806131479908756046216340840771902911514265012132173224416860748781037464072285751225003200669251501291681049770389530311459091554842031618441937840006037052370633690246238520823564347853192026156509759222556530316155765870955641742979834942247980844538041904124756750465739768121181605558746230722945710830204413546543494370217232963738578888676957678149551798441327202850609418738409265935309749767171467467851338444605817553589426574109147754637321590446545357730347504446675742935746013301787878620258293480792615335283504817970358290495869358821409817364257200422626732927785205650449584074664849212089462904075762071714404374653813841579110678028592397227167905681860774123993208088396142075768415858764215506612092271942718102188064348390444541060047792080453596026328157576261669832307038316681124170975298283160012332590352355806652116838617661999185319446819974330077918478496005167751468364367533369180063309195963244266797036748022010707382014820218311639106506126708353423613348764718234567389278639331387749044767538679172214184557087764025189674819532802357213195828005231206351665591082264065953475279004570755778638053966103982297950742269962403562536578190820482395127190497186241026618885391091577827873743881912599238880920332265386027328204468286578311950817216677504928675595346325585131299804045797082583458027124006394222728336564933423312720658231322862205751049129010390520694820887654295273553553910447809024848922534087485559689277204091956515413228875934451143380658907461066816802121770975102285362636210494949742875898223279549650737502781466088677726383106992417202068849545246713688435335390730167928224532055578443633179714053185613249982971512645900979825014872397987892489609883793866393734621908235203280591289452713443317463459643981128257982222497420408599493102258749188047160803484851648809196907901204264026451709117638588148557218315247853950888635650717595422655926865714044571221607913635023597097971861968548948195352493841897315535702951436701951431720281063920867122623143133425544396932456645636565649442538581983762003432784912261373950129969486886970374523867868010522773802493689878338268832416838174676452151044465548059713351983695792614196675214391900706886589835485717430735106196097533034346267780758617556698207453090874234020244935195036200464340649180154757459073963281361336202270451086985662408148975270860820056803630303545561039182499665519802758002343992679135365514277923501417305756330451836713489336039872549074261207526161264980147480057058199518600947552653297530650262092259282698000664539031503823154228472634025768084987906632843416994608421465997457027962456431416501635330041681182685393952240501044663720384282266905216557241640136073438868981197893273039406586034649672656657461927763708392100862287362796580888727480965606676305760513911231611148635612798821144018530611568574006013258446971507245476397896101159729337777476335818280427094335418578898634617945124064135977148293717005839734727213202323262635982440492219253819522806030760136397688461175937710900814690732648031948206992512420509223418011594216642316634492045414079848337486864550819718696387627045627419482092334538008267457391933550809251657359906442252051841775897285016031098234259168044574422071283119063030732750104966189512206897994484407930885772979684050649307432916395914527943077865983690636882448303255371304220094471401051041459945398547424422850458835072590645105404786144040685369264409022367434652823022802291579887012332848200611545943687330380830021515160623509222242057890661652676977660855314840075985035564036909729754770234429813414061009738027871097098758905859867420521259162419810886356092894791648961511577773141080221465828492780450785941151812708165048804139215925348790986942118202517687121661576883745689446125156186647856923659186488631241649165120824909380263605543637950875145984526945164718869115113071452625057076066339637112736268524494116554618034951875490456158356531743299250167449864235057998013856504661850803003428346206265547532207290649898302410501407646797243633909995517482464222328745249326562482594622320751713733939063270332440507576421833087063008036613080808992875403667826014564962618514849318428852733805074495523890527060478256187106895352583836683251817587909973179448821577057508385234323249326937536238615967020651673654213084005645880352997193708344872961948437861516852388299588572950750058734927236045814925788986504614671301491903420866160418885483287465757483263003047121708091500644889860753813733450439785958686537001578907662797880689749979336612228945532367002725486976895626551163495550549068588673933080777203928246531497224687298311180715139597082396516490128753726932750387402618684568793762297193840802411981925279659162322948955092198140622575920743892890641865799701326303699438824738330282191851793341744205109817551880053122810909066699773946430901692009141243564083510449083862150274325459184206133701458594851384851091238945825812386445782368411608880702305777216493179973352977758694356658252351517741489600918092339022273666815873410333925333907538791031227152842001177023059423729654651160707075532047917206572263455025097146767221279786916307311255308304254247612618041282830371344543360190977199419064650874799513966399595599304254820971495468065047951124903849610681091546482745226839909680544767461370625949450422210182357260234011554764194175039521398986563527265727609355244814274527815444813051894279637208635566624607666062458265207781126807091557586971640486862922441569732381569893151741675622508271973269426664892852455335364304033713871153671267043689227548696956214163211847730474193984610785123818727563423406557044706895834001433091510327952297087176146503818247962450589760339603605191873111868121420106947568355497299133095582699103052338376637422463283653197949116908871729753977065145917071859304036059002991052792493650245105264604467348440343076338141717186901168802274645834835989192795757859580156687094200214367088653337526219115017026992303616760908097214695450525682902790176515592598701424492199542348087756340740429672500333393129328719838448191713614483978339015893889073140577853329359537880525540988605776564765751548852762507880222663492729043339684150457172011032738726990414400169949763804020811507244978877714096640196677640627388887489331440614240008110571409898792881603662666326899294955720707591941014882918495504297654628673247840291001780013643580173424630938813314817561176371963760377619392844022682132105078865386532463392296134854649181218482051823460726750508618424168647118710831856200139152724963189879634451083143691773982236623967365691037818353099774449819998877203460493282905698607830359338570310862544252492023974059402715676862051972477912179237373762716408604809966351422064663420437516210313594373182949022541650910112089975378014893323268230729453179310443506202899735647522189340523543323056146577189219692889758891885459100373956072457542477321056892207411167469438468833776948495334192734677317281310319757999982524996598171797447566797559957948428294212213201555587455650415701314957103280780334223755467181155460914194977135809559788804180273591330423990817730075622032586473564197381541514818488445843292542532714824498668706232621497591992408199027989258040830125926695789532194345426440107814343969131989563197428683305709681235754860988034599984217156841689045744212194160012572320246872319894506085789731358686686252687780033048681583529578835803176281534311581764830844178648164738064176756395892132208744983956248024117118583171339075675428462662582152504810156659280231224262792943260269707509981742633478484929731432394705915639168821462208294582203134287585122281585904900457521711996857979199542597253977746683899084109991992641497265940677547776977755122686559464023178575454634529800136326292392131874914967575141529157098582925575176809630419725878774037911335898195747969716906544370308472718896044821915127481418033018474333535643624710986367970626739574069755301597550873075282222293888159497516595252023985175592555535738837053981442054382056287590150454474937284117403982227548164168763446524107799954338456686695879586180240837838150366634895362812555926268383119320753890133739005270290108731712814329192815167186531531927261714546431034596350617998805077759639154098348694852092811063155427214032075569939701542154132486034414687720443664035128702337651178354581432102676320433122643036395366619422137982854857908964009951671196449385971338302670723191775034076546454752781157140776173835327471469797923571884968787913919950739020157248297659742356844262664708588777525484380121700881446402767713139390164548289210399320757426239429340009728671890090913186552311274234349092544133295501785434872413228213900169213921869032454086525595191767289242442408655480322982325822911003000180593907736567759325847938600686272632837321313881888093470426394233690712176781037041973320814604031400343939566129202738349248360975269362109929278985094019101235231334763800917217525165265828279361874560440222365991560077062924910781820869511681630744075540849673541327803134842254834264283816326873796985568017261927532211217008243699485163058004252515221913636549779477941540178583001110126402511244772165359206755050191981170919103763480854515383471276031015395469593335959721478817130717838882990987130683602648373768781388988263973760491716593215278338727533395822253727058322940065710646589311682034549417593326033788834161740861546636871174854388236306735769771802018337809174745405774522168373545751672613836470732198208062475147661282336667036699747505075210368323168966595898429350137437641740666634458953497396625192044759102223559262186041433517209149147491061985129987225443130239986155961627386786687723389832366254035148024056139405846694766441003342496405941714921805530662702418751910394157845833726008500573769945254213777876729457323001032966216331118675454047985733886308237205294471857291767526047045939512268764249991190862299856840809427586135372186902018160020685444552689859949674367157761851417060348012885200531912377762921959830112881659285729853394937915012843141029011493360754873334334486599653020822224115401370038270177713391125796680012616252240464346332658737905518254559106029883471734938055160599453657260366008382126316674337492897037859188167593796632382003756962175788996137713834117934537388921718979645783233238395582879906320140673083969537345677643522385736079511533579995820312105135732425503802890441176349404140967758046323561568782966672640868260381632716678818030346052653298683888619314543079461488636000875677896779586264498905705877571638185943183594914163294446208826026864851146422701763655279856543072971302099400408868230378772978214459783986703659572161393284904646655270424992557357850309695107287708265101922751259891339220463004390224221928162389062835980104069814273309302771852322806570736312820021245798084629750996224683547506762929247460055303047107118415469973097609693642313307759059473953869352189784207693634531190854015724202194872282768005132709938322729195920447895706349676201737509400933534526570897237092926691641465944254498087021939433880917932223239483439458506764221866488036668439625066815638787234525564306512430366562769283963759394187571714971267433561965855656096717350347496648691602709992231715722685941988512322143303920735051009097570221957018166824304917636779008419154392807556635718704113927021030920866475985085640954911870166372512472378310599419565408882206639747706087555066674215674094024085275785368646606244638766401270350824589173703372260324197221401324073871941377569450767696298455055599895310880622187726258886504179145707140686760156563587628934890152584733283603655210870166764765262731537064807160063119006218849659253641661059269583945520623980561030022997571011544272588964942939088379390334800501014070704474215207947911525036361047958941581178339329283211415643839122175687303482995083834740257325689290093637373544571704545478225083434204493281719265996373597048124353359907998866978035739310494602234819106219751444792173582846518088899324751613888517820609799273520574902253052220785207190733284093873986381351235961016370150574480333305015591687214726392690221940967674285673712984820516353494561117313828043168405474303278464201365287497384876353005617338295772227865936832907740457570255365895196951633041852696254725108588857395628566071165970664678803238642934610299817985464165626880128653226919728786666890990792989995095525116395138096912208977484324717673018869521354361245531762136143689268820250704275035952228649975288146793895927106941030864399470782891415880448188938324731321105538451532352416483487296612692433842831386801715555976075746876448238102702026658473528209026549249154174681866095972780899994299504452182035008116055546656835278653685465562113299820636809616165742049806496155125921885301519537686823034347236654971480242952896852004705551542670716576905004351195757840164291887408966441844495826909747423065989244627598481232014791632958645039302057557312093356855794671579601277231554921373461299132506026910500756277815744764676250444138238399759552032083894258477603004731811329593691450514335306533196862247692450807347452507256379286416091823205483985463045825684044611670133993438457049276849573792470717082817823546384659735006729712126368866572066246068683248364841666472187298472305637880442477419955577269403483940938989790051758997710126753314396549454256735933146522451394964886689180790014838075694624503905550730536207949422042361934602825066018953154854104916497668178433588833650582002404469901461841345280691283052518211264200537402129627510155517766477336793139532524294333146589886310300469213133628304843600229770274202779274643837345923324207767138355816772543107362426093870502855208031022945001078034013919621316835320697332518301450160150843336553460942561352860302745479938063549142977517827935969160380894721242025966120247598148353661921835689451430019681362495181231019944754245463028356564762733384962561568798161202934507164007335356784775326901920765996657028100247882435186949145182756500214377071094632970291254766790911259307991095334563954740747695695598417630629332868245031667953460857522949293724187341172634695038137804730484822853013055009239378788235575357668175446420268432638577576338282841792071781340325286305457166887059032724664860231845921479549506371972276245775066201623974346700705154703315580580577756404364309527496250041074569738471810651662452193789869409454812668950321525187285896005946094756485070950864337709119905363313379604523344388324326336382470129857259621101182482499254618362412186482624448777218960402003270541284252787229804988279596722402605023506513061597748570015536537972952659555058154518422755359448508189141563901641277513610186321589766545431902031526814738619840947840904718218685914407538652167185538388939142866691415910708705857239247789063762995679838506267150099635124422600095207402243715633292768297670845420559985083685469965882535368396501953131284179594680075381254634513736452532026622729059379389569698348337877308151201787061735900681565426748056200112633530347395149764819673190207469479937605702157437058274509372347720241395122065434264490336487333068097425283990715979140373857418717697246210203243151598328977489221140215088114386045487405155380298513596885787538674405447364555074671575844197390688938457258295189484465354685025387721824968805516827071489687967483002662529962201779620091897877564069899865094971654381513579141154207679731591918486516851636277855507156566218795297057959381989102544664616280345094544545868400169211246562796748871245431028236248280913653774830816715859253795494219788934096241683366769562276174484153619615578881739205130520280201584774365288623184878595866527004959039514567060756069862940467954012886490089116615561281156820209565268710905091681385587927226402670002092864202733956147605232343592873845194764269829621443400049202370735175933737881703357550523132217248582427737682932362771996219533731598788510606703837267755950544770822610565819713575239529499086531137019282455998706449970981359151876229786862999062194875180284389770166401574971096753423775740966786286076234895806014354968318054101118423495566077883799997322695215882489502917825925981011572646135899572413016785415335507607790705252724889047781498558405206417156524003457952047946880482157521943531770691108179015801972541437715008280611928910889156623867737974973804600233795894713766251221338935194004621385497181415843630302828764074512478254101936663869637977530417490152246924956334136453750858200171606182779385474899828023274663793924874329549511961557511963246222497971876666498323723122470445297947731194569033567084130083081845853568591616913082905728904492259123376431158641178112226208240481359581820730312315801376621769632331740951697857327395895533106443884406613114951025029226329969336763286078322548712507520323469964896992267508609081584041085455986605961533722496380120374725679129675176250504736060407340421558313603140932676144855646285765279006961540207383928388834201249400719418607492038112467604889692472778699418853335097645092050912454005908446557321362363551573233322046416225570404553208994001037972712840431575795468970915432545595388132899147984342506752916364927796026040925219659507868303057114329580831681133694726355132472468674792877132210604840159060401196350979890384080000771659070239433082928607002628279710495030451798081139748395912691805506946205485210197645355758920598848569989192327658819493067134634864667299653373624323430683514100452820729360774029519320337719640038242832609000603371473544510949178987848234248221964781512413057260145215186561354054296594789091526161042727557950903579791047291204932890020527420077174474315377012378760817578949705768185388080402959324521211216053197595566691614436373545937994705103095329576464733743566730068526490304101636914387186849760545415913250766865275398290328000296215668598982916922318615589341211562561638733068804894718694709434096069628137558885376447110575952608724955468085208158187554737963580913660481289752410007875086282759293665484828951606717015059751664718729926401527928224139024760531762461564864001391301433669471277872298879877000043050769361006385733026405527606555065918363653940845160817737946693658320345682347382778584387925542081186572154602125037026113589246665546275715325764475660932207610748108341936968139450392407404821497078140091033492617495861918817700724098463950323687680799604552046760128004804498044658212337542552101318341910256006088260018927316808115115966647779817282153750297688772842895598720601636912721986316795988665750944544884246689125117938593282457311696605390236860356774650302131022601922465167129240177594581451755730587345614177906257464239261560378033674226469978423385280392992557755026735513729264920020884334473092067681616559095642509825303578891527933970763124667071996641926549946117319216041017867301546173015628663338665032533375823678372195160143131209385409220129535136394496616942026633096943249857114567591640309401998463374122120515296035147005966802965158007437079430386462324414897154558952594848335329961138406559736209023166726787891632522742903378092186885260650184092348530865787625563727329821057451986435246046032149058706680412815137918792938830264007656710808481039641044494128357665109296858812124956111788983720003220847324617481684508413630091812092327121514679760232570198716474252694575385104867074693513438816387409677067454215253193448111520003801744022021757809316218054421232852735893889626683372242219993781037761187392633375609095653066515968911968888977974125779552285695742069389857601263694906130709905227215202079652647877198024409473844036678926267725494458204774681150622867214560299842372603631963476790667466075113833939250214538488007260828754866268766924950873572535626429979578079646765394219233399149337791570372463967684360355354708370895546622580708891945363486360594514361132149683613689349248483568105579672695182868860027246210537917498113021058157465261783785216226414304251885644059999875311779917471488342922882464306059008618853863867320490101790747460500983586525574793420109789528448959677141136456708840859401440279705857714514015248003621636908541858371358051878924045399754592154225905951248872013412128351454406724846332889578024482647986414469595042030551064870966706253650318440611452546346081622984458192730090539027713402770129166897429858750002677905073544544821759440592433991491285947205980415623112197705254534906127193644934134020451213059009384939166570884360739668087409800668586908142987707482862909484935882893671697870131059285423246211382730330380161818650982164330099998332164812338501566706226520439232509203908922456809683957322300955037460570430414175671346394005620480304187316990793881827070667960547902004041069404655407451700748128674848806289735230077178291950733277047951653185032811422130904035544726190868191406124616816927309548240821323486007275092867543397736489914677417325532033559986391588320443581583411384741920220291336235339280292653763596678524807309348283604019481873602501445530268621470686683865811044988263289174670443499377612176303600835314715025221333486308806043382238932799340084504539443007374532734680531053812880895016311033037159718360393166770739960960826572301973290316382598364842256329354775659234664763941277809477976734240917484249325827682321358880964954530068305995690783317258188609658077412250686605084577557428870419388095891512967597419884916402898997622414679825526482233534748702560152387667891454102380179604412278980789082016806021130555986976074433200294412980845960263973860631763918466019179351901585538903820341879798042015688604777892531033303158416519727860247447279638184907883335029401038950164115334753298490299737942840631100168646160554016645088368042847212943163130328104853119232056944808979815206737712847951946190378167843930654320187071190570299934988037100434563563453967273138469159917483686876693381754934138001947232325903432347825366958966486635614340369206713259175477859987767932278492160587375820088793863100768589926961641413048204926211277860089123349331156338439263462359253717183945099243556487045456197890164785219172918700744221167884833769732836572251846701379892007657694135888188787394976685437576285141501265770256675464782174326617834071535656502727540845773413727384225228482885821275957893947985356613003711387437143347175486424366938766251955704897139232446947697073715483416256194956411872474107836219991138959861617699569404782450705034064360912526346134276006684747077024018708551831021263067610373668011922199320757555535761888394853382166899344243853869155973454787382988506708562266259114258471278187119707948286158860636381022708973026013724882969444995773580398297918920656567371008229238058490059630604970057059877318062435119112353805345203597775086837243655651932670350937978422179752264503473219025644452940710873622500185800124781115372049816303324552657896258432265938637005094744592330675005795210647635140790578668119428431478531633910989064726924837700239033950072407012535204517791184076919407804347732315314044174890808293515709895852083578902856022215165087914998551513934676127549033737566757645080034239269339708802497089275736866591670262361547517865096849663486126587318277829303591155723384266061879088847500214623989290740481753364639214593997198121766393611443885363796867196359617095720451709385560928669046879462686739771529250104066977399749477568312626263271528666791738210757221492003684814680145324342680338508775941980852485882361301283788023682276373655757008094833431977479366686995600743828210137831804092674495444664931859770497567068502476761582680564415640221076604013496520334654063465119885891592190469708815252537628857441991954910336798053548883055135665442271492936980861071395189472721637655403660725300815231780173093970977105579321392674212692518970400640073667102147854612073743222475004779671773333093156578317369712550697870404059697200264341792197714326960268811830935790426776063639660455823480738027163511247198770666698491860074857953451505920823162136410614657695562221437099356351558181464157593475325096169624323799535758236732190901800126737849435703423118690777722564515051545043729772357813061682502817183574831474136500187608754436495219933649243191133752321088407717403486409120990081438391868860785778989256771012739926245496130273190811270139569218695702557680981867148338305970781077717156971654298260467790384407303238273034617646727668033268592454969026047387178063476781412274407952693370214091386341907572821381211252662547803607970315769348055748725399301765756630170255568278475078415260970456472592529748099627494413751320939270767461477334555995325154557377116355723459630450127655959171973329955320419416056644347906964836465743778738611291379901251196642741140498411565320661207472011744423775395064733038556810146052058689866986762222723740132754094220451408502200449684757584780683943649298351599014968140457326833067728076673395600168709647375558984102287501375115179686976928403167625448681835156263786460667243354799268321648191421316751266429750109959160219458887698451304801900203970173236035620177334082722413502010183380749675366303014051504533610052824502268447668570463241532738881036283457405601038252046689838924926954023311836889123337812826488003590855586601590912553621518613705575281527848791900079322273741851599713268109769005354188236899387477429120826862926888334164661132761257716875838593622598472717915794160513600811245943597406392989533661094944463101308679259918013709702793594203432659876976335935628735187841648180166043726133788159779374996113345978125245136398997664727891320110634330023045905720485551068824951492793766041076619335192741940573369539367067519310079219594823002895180919798877458751683221262743563565666461317314420651257667806657013346254203263861330221652625657192536611544813134395376490734987184355121025485285342802512337351976076591654623314092009014442459300691531693466273983539275303580131858322801714838218367685021279916149916174283684129376406460193705743134347432155308920985283122337837898902606106126113821766805972102219164069704392079531009031587638621693407375735677972103499684045260788184178079593418984346065673531633924980074950591504262820296649069868960925831883668427409444194978709759308010621633609756757132155511688807534629967738521168267380423386911784608930540523227771758948606540592536234049392251984511817443785763463073872478894877254204234207020525694456532872413662998445244676102656439721677241440475186814281375973316056533070836265969900123411161250507706424687147047342112628253773430594586140800807174697040044756542830878736574353375947007213683231352319143239749989039759504787664689233082005000858172506574480524072979325632674150547228409783123818247915323070007703600630956735258705339506507561414127815069879016962263549895020779133502077333835382545264062445364540288127679416327361071555490227217163959324112667803432518676433200344205202523930569366638553402082462374445175576708196408596778456513754024967853462373756354527795076070633364055267217216521271751948906163730397728336782154124007587748078624681230498331368567644959174820992826808409294312025736897486127915922960655424942840194059590982003215673706822628615847595680110541788480844251717835338888167619669566036634902066756841219695900397800357360372443392627019021813804892222557095390193087883263328002281632210851284573660113968289846009627594490537938657102556447180560984395687333095890670563576829107832968436913775908986686871150125624822391000701580802805815711789022116793153975560585496026520222341473612928477923050908941677119671182759841191634920437197439146354647686761699111551051190474899993836478884629110189209331887491985897083708577701155941013992065127832235295427818732327360109457707877669836395548574435522370093939516169441819920440681364508453572509896524481649214281447601473718609161222610121444874411129392917318264545304162742097072909940184386435802597640898829175472666423611621853395784174510902576395504825520087541451181123620591897499246572407985371693501253237093568646691788957597712083876576238881325788290381554631503915643366984652678290498432880301774974750123760096015116431720816753113914585405207442401636196867971220020649585446600146541758639987997874596972752474367883032608685336260352640168242341753389212498577760977689325522664756315294358743177712985947381319751476585233422873787067281039118059380003355027558352021258148762223990121267315917454537856575152879401005036138543093222910713686190484511378463571648319722602227472200795677426608263506869870560124805177783707106695044112359378086497532265139565832926753017465562988033654118112027951828831733632979352397406273554253688744362333928806611358161319220321170011282908441041251358427001025131666336811148315709702709274996415262006713177283232683492645497471240658517877788555344560019394643249522034688432264977750150589530720436757788348225615558704167624030107482089855513863859143352963216992975042025905690799508557676009321322448126651930585125809185913365678544022355124209718840781036498651834732303503643894638679374606527645509186098899430152026461446975649722771238796987985173294631546818501931171735525853142223678135481321678145276277613151573424500672756106635877059848968933170081031853314691289035109747477214129413302416627247205733738782872973576758405512517712787504524994514871240619307525375196554564234863180578277466400007418899562579633329274033491743655554485987139800191453781215485951576771692935218796841557526999298346256784807424315897442519411859713032204906127795622473614422539582021592511910462297971224011394886152626136786931148080688369507585266391151192960976241478095534492976169865834859397276702838395322539859121789359268846790389852174104423030390785911646298744573713155654877224574575080620497087082952248474572068229634469898481001641428180627629718024027758185710598973325131984629259987386784685105865126793769921242256815552194489915610721459303338431797276089343582681818982233352258493660816981093016089243987588811947204089195887256463044770223993943321742747622184320578644119390797199786939580600752298503273281553584404945063161260814688865991344461606693601442824664465460115750541260540658029917075168141861425488002017852549386400681236312233329925595691684415344825851072394752323792540752986803446997515245089053958642360117837182670818390106936208322148878584757979617319630566648707752429170619290323291434196257536299095666454594147228604657965463337301122383447132701479542608521427374674778152900059322091922016344264074447790621797958544913082534014329181444469173635819692538409918979231875038664570778971628042459327567969395413760423020257496211018542179059990540826694042045649691320741676796847921814376687037640383930037885315830106386578311521156823207983944165030429997637651818059580530503680007472397674585678285175406377979235905453949975670929146200389301102939705609760126497914725864310174946593760094949147100830765366027103271485586951731009643235471075347744076336809737692275800812721052686307885301127025141000137148905534658700027917234737217998428991005462849077280090327220750683020001939833770619325996698429465979514789809851544691828395796679075440169005860839854303827840298549086838490358532433931118891322210301164518061542191837078391029994871052019320780012972123270152203405664150017115228147955507850622584572496437625845303401116141629525225844002691238011927453860212637619564020775612458382302896921404186208793651618567122668364330716920983650579988556272723395078842406069101084963017773991743781362810836921641643588187074578332651539090000270433856265413077562142123078463728508652191018517790410497640432084087093321625385267694888057344610223522233379360791319714171322812803522663882952860880273001008132444055538325020741102385331120840618876978137860152163230016282312810849689400235474509937531780052088066292826029340296149512114421045748131722931283210464133662904061983436048264111359698636577856798953064545032301892943284139198144895178998621707340141832652209347468905639264767159730821583528846272475765620908359856073564701382641325643902490480113573882754796716187317686675917268334194972529535187282242075923479755920282089302158103565186141601516894281588519376952111186735292752805366100780564912004392906126021876528175937340723261939444044516332724984969377161673435821607658578059015688994341965085288086732368245169246487416873435063468296040222932010658562854296448046627166014876086860761289130514098782885566427887453892702922822757110750478769854009322833802763310162143897718118506617699601898739466190058236183963788796296051140839720581365973260329994149469169474215855388996041385891099744619327329747605250163997190599263454696022731111187429584347492386975330805182084535284590241687124385308393126764224295411851254080486604328501747007155126736489445104030524052827437710008246020596904628255626427130292576529489651327290672971538038674903367662500270769188303316163633418707160467697882486902078755548879818159476841990849486877936475710822617474478090704659085652652661784003352654504559160446065217210664753448255550048807879688201336826456205865464385949726109984085902816105877174507155690182023602120234007735899168696338962189484534496050841142017114843882686658407519733135475833487992763542930091672468756895823311789903765802828185090452974884117448960196815736775427286746135375232117015876135064535012171712879178854544634767380216260975324769754145067156174439074019895878077280370089232659476860535584756731414593880158137108781968365860405437311027175449456469314608399332634095719926986567004133915031248221077211578628692739266713150418821767660022114019846818773723876467844648340108546307492520312620267703597244215885474523758732831220903621376817651765766749866929043776927252842101876483410349602442896911160622219152205415096953662151867267253469856455108373070681639868230208671097681109279586042735790640419453989981833990928350553501805857813755958669855772707240383864602131291442034053392512272760493412474827078650727012619758272523676004911011596891628206307510440995521459880024402289642713140019304377818487156335369154388651808599882315190379107126344986740726828455030303687131257995687135638278303117847854879782556142318619960347943445882293330145309324467649217558141770241148326723010848534198244292406922807148120105349288364259579003564012390558683952314252642675521320882470215610954276083814424928914979787596946227524531410169309356443062963480466747948371422978623623623711542592597088629264733098429531935131347352233035482555605356476175577845944569518330629570082753000603011429679284826103992300521212518192460336742229539798853605700920109329896646421164274459238642070124998858057076092932366714096484770158984388164771836394073070241818204457044660732154696464191632541146668207947207725048285811844024201579387335078703449479013056390217215921155450450454036926283171076499778997051599371610208360033701414767503999005061985427184393281482918549343835811310501422442077178682019786170549633283756692275584909298296151194702984236960853214204968717902900910132863820358574102281091710807535837197273644134354964959508900144398781722392166534276393191966793672922849710337411022193161391374477029303247465728578857598352658403490046763202294286177483064425811202532587367508985946014760877045955383825182859583390093683906288893566908792115716664453941989813585393477587680897470212094827651326193290127941728745419223872432908863715060738063238932666300100598397711140176519526521825365138570906122357365215956724612971332200012969197620821079657108043180209796396013266172137054228313238216880027122090475721951506067008210826808163380979415327608753832818555991886864799965652127934130292816642936376534896972833387503545420255930316618957473768319046710544764054628002737972078903321613999441402661286455566222661096446339478069607628371328117892733957210704883405204995473667282111319952597422059377844001194033027006894865141207497106298665062090673296802224728493197101739783021943406029486199402276186873442109369196713823237497392821311135192005446284256627879641531559103182564990378214754411497217777064082181499498531434545176227284681944308249510425231136854017608402575239870923949631379365707066609789384498097677676095225302266473437411999457679004420204100263889149464317332526171040992455836253737296859845346076130754924809517544624139569596726369621224845188555604871925142351570735662470213226402995041240724424913937618122460574125457345215950928870887702862450412019091268417657577341717617910762143537460595882111009931363170683252603292071832052556296660283392640826780949164993041030570213558464012394104768845007250440126573649956269708705256547106619550483522653600729167598253226836283366134584529635513015854539751860254494765314650642786199204959951081817827412069404548885763342538821293911282111360768900610731094198390374576941737946852291678430243242976083361845649014515303478009680297746537672249426942218502671346175613363599434679925544553229360825960516611225918607885945415199615025145915837275361475147662354751409333036039925855917300390170095355299800549480082568591495228953241379286419545230444476519640102549867550044115119937642931843539893180635273508940859396108926707922572889419873837552733767399368386983517885043218030089590479236600292940213940247985006362125594007704668868079095813186691230233611738957348130071333042515538314075607480566418932067029347427555171246545922222821321492537712598951843980386900923161475629076257612160352220831791715005474613874910098590815566092848662082516313401802933243686612974834415813200598655780734895515533161093345973346267297424965592417870875531917185551505953953230577674088797057171328963554145980102153960186276040060489772072150297746091827579014620140212484623434692524709137344707229570751720829064401868907794051643882225231309845968783410790971453945903450098374154187953505585742610406422538575862367659301953377484468680184779875415758399109027435758095658419974589939407222126471498025743177638399619632342820884284736355028913743463825605358844831984050813069987716150377923412695317016980313266202142312781078775034380674955126298629166331628464137535872596912287979304714186916519653094301453831950798478919876560786140951163227307287305843513692699572729935694232432010401825026317593211822243855605187848858015955943119093804728216177832389173141593703529714373454240280402976252770493501167032972487316069646563703326017858684094223226670870545151366612868043976346643517785256632371707242452741734942160845944045298262958504531985733091467506280261908798934233258396750920379693407546196831322924087417925053167382585758141177377156354533274239419460108899505554422306475869545124808803907189928216272280934198793228597076022094454905217107097879118476396160399941132442923475339182348377743207765825936738115029264302442728313359593843978174257641530245082604304953308876932114068515655589797986743583722432126910266061520362495866167526406118949874986777542220582852595129589084870079503899084180681026563936542258189728717509772732072150839401972812330896873805166946613812674357317397720277771363414806216903303781132089119364596273600889708396776124966427992985545405455500013673229415935443432312821858744076090605325519354452232845376977008502193220346842352776775771933727896067780583654609928991025875577291996387573848538884621699056531660247659140756505468384662431860702638375444635234753089347947041909343141276849896835827643015726088626556144429153441568198565819189010241054448525576717685360751924531095300668420960169687049789299329906386413034904994636083024927330541099768575324445791038002017943784750583307220738864679441664386139515498703584335415337943402870317417010246902037555256363970703049556577582521921184385634605823541088579128442002086285645622112927983662577808114069441111250189112125623007295091084459532571551620524853029823658217048126687912603946130995851485229505318184855234307031679170751087392071454886336263604238974804830598093659179519618360171721786188115259885167677593138074992837062240724036192390342243304058031400991853643422666012225749224726064212528241423080684310143081759399214300487620308333358603841078620032465762811325093042734958228642272074094118341329410436496993209515995108951621400781652480782032272947313278601452042378270303438230464143328095194138142773087756528865433317752262798185605077342202741095977797805781354682460673462560626328145802108273067890134439911414158393906783077796205315776286323734986874526060160500488354590418422185329995451054400041325742681708702574589796627438873453939651045018154878972472901220762136634766664323820461728830872571035971163050092663038967663289584312640892795873692171142232708947001477282356884751232030124269665848115744359381115307723346234926931314476823927194366533609191391945152546383023083528628288954312086856539476451964746774984173393047145025276929045120830225126687735840435953364317187911936131938749308877381609255230358573836893225857583224276943085704079495760338965543987583737089796641162285585056734975337509589342229856459503730597959316061392679125417429495959821671928540487239423731972555998360821040562721612499996561975830949629169342389289126867468240838499824514286041943761882919532157132925987011124410194661500993589311417675181824975552183857557612059601945243446361479835009089513804895325055794953800362654809499783386094954111239922997347537557326534054234233452018158688518467413377996331608282738317436534556062062568495178887547139501039995860167265571818604442852457746268028885797258458093550328096513644004671701800717169287434726785181805537294994933774074494014011440260940912868754408170441482941129086825469244484580328675601599572249909612986726985808335318321858061358062617397692169156109505242173027501858899668049245904629201882651656085541466210984981171843376459308073056650164095376627560492036158034481060028331440838924326561781476220533648218641746458439227326584493300860398086271704295416733384385998634559625792066523220953319210230461482778940124181223665370330027877749978277891816456681248687559879171189159161113351745643549705363918500719754386069308482879425208639824201618284719890107583123111940811825110045553228401439905327195276876604609517107248592056300356676710978338743611216859431374792620936945896001348670883110387795437223550815178513134802941601101752509271938832164805687787674147660983220156667205537756469424240742706900359700073541092347460717848150486570038467555251252053863491615041730650381863475326603246137234619149722979818566237471362369001028586735851454091168126077549429893105534964120118129527435439375384036744330320420613279651174211315757797054190271150264096016964825602926577328585349774757039902986311711798435627749910742648567536912979096387888035611254560668057120241337751924306212553548554464858254134605754765830047017384528065817941577521077825638102512739428068075315921070719873140311876967566152009540268270368856387410722321640891460410847816712268606558817470308309453672101186082808897629999282331167833899038363023938166315803365371573165483041998043452126897875371794270131219039022765277196868282825363185749554025967154399438237062267941274335966720548148112666866483683053657224895677713114446716671893214462875456317005755747651038863046550299466658314821675216096378849294006824425758205994232782843310658243702177732488635856623835296012121228163909587810603026646288125208921884535060895197849578225239664985956572207753896752769449280645001209064785093096427379250049544582500964751356147673044232683305589705698370668515537085499729515868241126386349168639529978629922412916753904340640387099130158666601174815041242393305833624783794754238399506952892419011003239453248345728624462803901606256676813612236174188701199859585998557134228914445289257096379221042220276261142026113720861246267595298423283337252306373793079840721056667106294826138664752504693524776380523086013245677617886969752488825059332582012016256979088622580409152408047307777100622268219265801689799892157864608462692256700955129113202407517191739480785986423169241885628005792093396392567940996793387424025481803925988297125354058307788200518230513544386791057552146834602282201686531096331339122896775721541340656775296165052659087906439225608960323688641376481143092003642763639614090138867572103958529905365025544989825461585630973852659276866978423806731095747330351608202895283157774036985889719091139927019653454428668282710164473127343687950649267496173224270042351051362599236628752360592992042905897868068346619826533625107293412852852769808207423081769817643224702730058373806664008655027105342805098291410513624760873378200398011674096396524787565319215133056728483422769425209290486894209393748716575531958716855407887982063848676295021336593943877950366443929086051149294685263765253616999643269671204701773634707123293630652137446980933988467529075112784281831581159048308420152251082421968361741985438767745394630120897702447971401825260471883483383235751177431456343820661880073684312255971724406623181733140984967001484726613861943690242240582668014889081695403458594283582229897836629734902187740377125009344087066212585208539699351636000341952806328424803646716512258627248448708444418424041308814844150333413449621736517533117356012790775337478912225411591518547897468969697335305711389789743520914250880852673484489497844416954421295438112301075529490384061720759392567451605490594526309651091028125582118163739412840591982991694339158675749115083965066921729108177011109799205496647077923986549385299666866305953640827215509476456955786453286331525218163664855637955596807323439935275170689411278960710318155410127186584980184185859555194975432567328912409436188798174957350568423583391875363181892335652628269362637336966055116901115077030888154532503968465880717710064360362477062857852843215926284802369634332833803793934280706810828307424285876796803901950219242217302006658247528791760392628727504835322033345501362023848633196259548413882721055527091249383571601710732767845410175181396946155343384870997939345719808731431990864346477293698234269167170826106723700557709369598727986100383743162400615362826755002106997601210746584824480959427308642938337914247006065926603419782242844470260361587325303356563809199272751619224724712619095882909180519946519131384282892158152480099260992850059225862319884676785233137067111279287805711268617537817661100368885782052905561847114719657390786657115446026801882316511087284986320107382856202906331121805391267137241591836192438114983651922731711672409370608925903693378312749059433442532941912471167221692417168134830873508428190550233096633210489185177812207956100813820097931707170979197756619645898288276942247652038280697065999833802839468252093391803091851832622961586720233205077166451133070728591625180283111292782736471370891085939180978308271005262100532732602749106776931769588851920311511086970126396394443479032953876095536919496085705668131570405457229651656586149421185866680682876942633745157184568472745690147732715781378357579255734074003833684499177645872476155772603430578496767661448674325547820900210678254657068761011522231318987391170631055918835570026977269822558560961531097308524917973617646940307870797871881292691941468274691558231029877111389912893502397576817299949368108150016358000220431844185647002634900270714629303038391321262631531493214746855249753084246147791962778999330657328050474758254524481208967710198417019129955592617558787055265192398031153306319320774022663656466638428316375904999771073299024060178069557100492266393623703386586765348317134465469279268459944439362649496966663360406271191973392616855879490801667893591041467994950481572964765636776807892173253814739197131249352038784324090714267103665326059806741962549509259249504872528125209186688589300557991158460597100529507269679226639381587681495644178788098353479400312386334112417730781973842737196075920093496455608293429648223283968228807190794513392957777850588597351486372166420966579288415492426999671593820338796754782003000669195474256364525466644364140653514195126526321463471334345582344402881153264050327272659570162739210822788794855605073963550854139396788878468874520819425261771946861913805191944822994368506792199780519210805292808079206460716993634384995078773170903817865848992158936489118234099940171954159613498186120394596953074810846598589108649185897879325336527772070404126543777422254065903054785441650924571324707730729504369421966004437826434269338325535023599951208375300887096752404711260100212623835863320697236783261629889989812307772542870121885802667964167043547955622309197494300152099674723364288709739150518168133391721239678670104008234403325449777667662108479634753321555810499446574246941365035646020891700104461664615390771852406991840801027651727208285322957330250804249798672760211426501276861518951254681222738774468706478392374338340684209651404793454092108590796481504001904009899991954292921270505672506193765674182262892474429983796557921363512194380887398121962343057861899387563693779118490317765352703603765718575632848293519907274944148206970414669836097429501136154643757898204327257542277575975089167168719554294927926809443519483409754662305743695868048512614153277037416361897742895024480405941232258931739225733411724620602063517059647939531054320267132335869193764547722410575952747400176747583409097757238181167746742014234606165614924398681181316036965293883804399435264349551502498030516472362339468628850003492061263062638907460217722987686581211758486086669873753435249816398243640395733240290764048304610716695018915876757525434855590563648701747874763014330643808326228196678736280783539266605127186281377395930126691067790647596250025992129072984988783371332217636780070111082035621435882140820102617800814837672320019824140363648512498474302320542335419704191717416523191502718262613495792552384988346906204124167831451956030410309119267574078632953032685856988034592803225940921051128588275085264863197876814279728539533805252310794006264702414496736564178678088590452440044500910136044366897902907635697739196783742515311016786180128049996463451359799022702248595412503405323869209039354211077364369796683574423166326782398697502050708977652141423735710350855588708504705528804074918918122225271753116306874997542629733768778645577139535665297092493017613737221287622362098794497828319445084284706153186332737099875430099383242686138144159333063873930453451227664653697516325202763231407974197663401609104888712309088039585579732666750668470526137515828303564738629271927165352551433816096140436720302803246441985969895114147050263351415501148363013642215852420692811202707846712418405642001010571268343367434830337588660651454191728690538804155627726511172784774653758037956855977850829643783330907559679554022705392351979414604839610902303585775051030975196613116788202053480722218470376361713121162437092111819970297625679273844620394085058820497026185393414746637304646637980922581648665474112088773334370380077973762868675714091928970534243902882077611068457664193918660671589810500792688916312520705710957505892900753965915117955549497199713482043297166327040824819116429802969690997109410741231886925783710083171500855042560805995401585861592496693819448534503078857790243155816571418570212020762529351871645456648038142715593763350940679363370181987882416884510911449607850489223666846485275892817373379815712255624976688250008021579116140457803232024314260530845086747739840362004355132555248642067448223080964589412976576796218065968818554333409551402834469491584412657365407376426044789319239070493884616312370410672555060622568785434028566169342968557417869222388309449583083263896730767623168491568365059672894361718570916348834976176575624019338301904756386180826546576216973415548945845454640449944767595945719723892628546523348865849519474536883300257498597280013441842776653008199790678132397016102780752688113322768718849242383133773660273599061709943100558316087026285431690039415532203694876906669893573089696122249742059729608093996847561785217629274956311409227124335591746460844704853158774291862919350939863582809341670799357645716794279058940581441244986938172950443325936623612347528626740131215519116719375780085424497194008488593589246869512358590818684144686961449036259973658284374929910565819954031153225827672895563173670533062732530261137024024125132244850776672246934050839575627592639967154475104806753560473642029505735599140480673714809333187803447378707623196807293464241075005618970964515530637138464196874866278343281140687534773887839869333312280034484722336543580258774288772237012347808824329702145957752907438602542972653450737611524514466489720167703366175640865778088228668822908623384911944811576290864621802817636514785627166381593855258401766520872540247891204880504097931010525785988500214919996389709808607240185354686038599059645945906831594761303923380544094721442425510383252996820932160328532742441583909269741690237950923615847106933945733997751977149242206573342071469877273611498315862407089105657011828419658768167430867048065297488796088268358762927719860467887788587274015744745390148206839230093494894031739412441571073055239127394408206430474525376907758340664957741901796630213905576790876150337543101966383611436966787891661611881345635484553822743525368963207691119588179008685204663915126059831412081848397022763182605168370210223912272541306486065087127402025284864069727062366756669320306590585391163123323043541342339449908687472684837660032937347948767938847395929201968645010677376573062582084463291690571405904771777960786463991543080492547302863324688081127889766076430245396023284921127153985484232671467501842694580892938206908024668510532066491774122215328666148123576400778924187299478598688381723994319223050096877849618642869488426869326103483693156942114432554290902929110927252778693790614057541815809630828521385312935345440921249826027656855759241790721593166980747365849904782052462115550603606957880444055943715021308318257030266792453930017339563478406386708255090552617630348353769643002511966121450280041116409704170204663188775352703369923777943910397931728261752526417941519214484760697067435508221091783171602065998503030699458201205640451872196873484190602820737813383843279871091170274100684406466833980088336864309517180386173844421439667580906134960031509678189401310420461320382084463251347495935836263885552550409732226913709806748946511813490797585790566846474298152262583028719655334932474709330170566600204743112480179028655469635478584242101045105749159675482030661770737646682607777270155942911034002906885632466474834800627197293473387038308834958485246023186833348531212593190927462324377422026499627864501067972693282326845237055621278108687198258670623245955367657567392105382002519442371362972666312431701347166809998729896015830439982028807948316669544199346572568770041360325292280977402652078078769836949019403523654029900820751064214259042942907401438751557556996922976848876341443996320347897452069965985684052062360272417104185930554318402440755450542213764879156542496493487365471994578355775574987940948362571037106172766002225285169045932574866323950629425365244058528530442584758354224588091441616680102316971463970690082609886573931690672914228255612866768911092181056150179785750091381942770677050835256963862955404639019194795654431424050906388097555994758719468309001337350734809686379873822525701865672272150154226913115824640452739058197194366982170977877791415178136526436173172886681086978528727883909578820846995610900068374217718466803795124991135929965179224700791255267021352893857347362047322566206279072826943774670219265553506365986308943035594189198817961965352305973696025736164197348472386899058414648881899974385076514349982257564451238170953395741012558425203750172366952403250907586910718490400792502720448031255064386085699363147090007912046337178208897251126461932205864294631176246331034965199320538529448437759778951379684757041134615909352493997176747590190731078060413665726654032148818027251657201599928889878071107416994434518681595555108465228197905110799924457193833674646598951003540883202025447388798083401105506724807718953527172565213997156082464593290946636960333478321159704432606194345536565559323901839030137700715828912125148318854241963596784873317188562025595937167460266789074363740545284767451018845470089809062410424299445099746348187419527544998192476567321108343675218121090267744326871043099315270946638870388215503958541105561230369403755953089798432027536725259539347368184130605883278615624214158924736458956593615980590925242312686019531962347420830604907329426957946551975868898390097108801987474015320422351390813624277058006907209132079931558987920033921769203212762684252306992286858160405021720097311370149278530935937188795077686491755999040972704955795113943896500123531276286138426172123916989366511685219778406078319606815897549715557937449117670597071392549607875091855518244003562527809276969212847266660330578937682650455841464679087348960169624891694555615397731713036583990957431166753231391349677267575522272156395209107524799068789446852022775242646093831102425140834791212417925448488058640077180584291052395688043673133102335453409595926258415074222523983949652045305789388323789212192513281834286403767361696660818014118559603430818792226118635870109752058650709832919008815288932993749195724096788554116472384223448878612758960777977452775194575600277342455012887642317891273011205330097897701162421460690837219477722270156250255338681653553219775368336703919730964316687045543823768822313358156972419511551067756661271075462020228160622110455717520196809406525194624400763382273936337690581989236941048493016830064902328099394913333808298888374028096580602744953106127943992095915037774822820603382025423439287218090612322917843137442770028087266233888724805234001168729910897316697589324947692716621794063299347462024994523564179797798003097809080604934793283748707206522640516814829520940759665079893424466654731013518203300483148748365889349320248949199438221140613571295006011232069734818120265305594864149845335222299433726670868765768302535223779346311273435445486237637768309242429722976959260129572550907879471702747306959684803798513204398846406289839400256377652703393803617560696997023871329378701251889387771969470872009500355140305552619395796541566413833731486636866486297448388523475446710932137487924493067690961979084048136654253699632139946741677153324977125660863090728788485551983010128996990337894594727273094678560537246963780582882407654662891483959244829325626978621349721442983388461462881396986502623654774829176513672820682355104999801843688702850592131702493722597522245531719333433072901174480748452407507318337149022431712008775659437854830997355331965553114287834705740543994410965903306993813926028379577492279402360466618986508014826749996310000968564695222678919354024625917035050808274039732334974141849023881002056417109703585044971991281928039235461734428489088464881736346214938229562018226128935199612662919551866651527141109690526355653520662200138999718602385684143131785994221111653383589041183340336768521627505412229285429574903806646361749461421657287703413626486392859371581159363970713679234748625477585042714307553129358546945522573432987073927954895456036143373234654396998228892891182472164847515413513846022335062568654060658507595810692631530285242570783499240748148156366111621559067848531991151677476972376198308754600371566246789819783461947280698881966037478146920054982732180184270591005309558578108990062293434740395808581701926652063705799876969991743184564444331674655075251350654270880739887693344227377614279909749870071547472267817109433362061569349049439900911890744963368814020198895570104724417331399362771648437217460807589208708697690649362202290143478599776694680104793375536514483093224893927125293174274620234171598390887261774898477303846231342986354718293917413143143517765755285078515605540334150304552235623142035023521438619566201736427541118065531396321125226791801974798345956991329598436411144569982432488360978181317863959366408673454771222828449147961481656524917444103173374748937017155850326440189151249978457707431137935959825712237640630919683343629641519745913591401180447081039035424882271262830082063600890859696641042734581995813280047604722397094451354708482174431840918413297284373403364393106335173928229869692736438434834596042286716392453918220975422757077393310744121915044873247540141006175160616808401449261025679621316666341501894424737810896208474686731842281722251257076835030044054297663350261895165984525690499124029474158997331722453415205461239965044138240335604116293759914802589092154116649649930188895689277876952076067634894059583704501865634673137226203065171861918284257330829703094332973829616173442757073506104491880077638124475933088952602414610205750060802258958852117203424383416686382658998298199814973224298878873054178323514853885606018065751101378902882103005015111215879636144689513188907596650713392905544074200507751023206134714319772841629494213158116887818558093937865195865925582292162799223340384821975873631723717581392497702618158123908146423263530711653193647086144256530636602377112107207820417360626496385579597327677404300601551872791949807309887240514140216986300643554993113870589607383885314794062613970940087343610264251126300817681802588590734145220356104270831696467926263419851295117273983206625697192210012556916731158662087794265620556897328772910609365040706774502130996683408521562157144023617655814789043457910106469141596205870241635834252065911957494466597372018277698688722325582527009788638733003927308258206380011799489459062729912540701488606367071102761846310865597953231383031854925711847466046198183035283892072088526671240103779983546327407732395131089159369790875348441225561272620546109413786762954824554958032294935067323271309166824381596286976874021077414920401819722650729095006084382557629880179029316964063993946114817135292922115475233922795058774221842547132249846471348582501015921933845220846792125335837732402925635070850283455749526030577939057627296472862662942965564634880482687279006920133136607187526756043504810931984991307719026801377747800293713953035121095805931448450678592335705820818791935706537763600937604700490187032411658068422507537587407171058106216178995651436366930729014671696029769999330035555723378903678567181985053885861111566901070498964407321695484092926687300595324787058655090087185294248750448992587267949126902165640901410237366526339449931002370527163627542457336021659161737762374218662445959985716192152552306243505671931043495176723317645360649798922295699820954969767018239374274018907249813378165057756874408381698692731915646255779886790798816880814424532875630625168512728283404080176410701517625032358729184653204581071223652615845865657397213333298390408244403157205177471993429784901119298581117187671122203726262962276583045703880850780389977541236340696408626921274378966480971773035555201512400307081006884155574221950820255998689017658212901580395543896447228529848050241841434460852673023258273495002003107814159474107378486501624582622418304365463461812307925191505277559371069400742262817683138254576729633279429632910492836434133130346260390926855600410446476728743517931177441584801985398735333218683370378646490766267607731284388725248814537252727606849371135188010212075290605423826152668544553905665107085125233681286577273570240176898236182111640558646344108371219851154375790876440519903894064989386404943020131582875458630589431407622870295685938733837629299083226860727502459427812399092431621245915822812909413572264236769018932083924961854284237894483459983363249318021211138892945788294182184303146743774535726053087198717600017804166464063225997672865837626409782070473158398371731895303330762178168426470445996215820262875860385021848358516165488261234008618037153234502318602193222639145312750426341647826068262118075191235270851911715951152453028223840784943791566276838682523281196471490741311286701566846884012747689864299818996697826415062023287230386558242335407937152735312425524747124416893476734217590913719676212277848904170267723602258428524101014583824824537995719878859743919751179106749356505904741851237736974879559119030438805894276641007594666168974545130911789752931791881839210667838212946524654071000937904449748520225171586772178982285539839675973642297502153146870643368735336954219737124461613329147009436115227989929905327105346878566750725840837908333690504882321902949763301944634708006398931998961300660802561185603908973433805437247383704566923613395307396396357908218624353045910301868377040625503468777117303027908328361606284482816835006470323089939414103244632363099569746502766026009351797643381988932623377622540692046682019491917310433919179836662657984711821138467970866923890683990031960183431392194332022473605637658445062174651878694554467838730462015741149899192681548059158730305172947100878300438871328853611487393793931798504949909817490950347698203574388782227572719304742748078621863357937165713480466982214792670283450498434051546446084650768693809333357991511349657296697987980500251881724002000551344931387755992331914399715224610902796797513390208528105580494598927351734580516473347023750223104639552860728955213859812662491164366294820609715492397931714968041541076668801994990272575370008988849892163014888278920593130059018730536466226433794743250701317768536122230989961563953483310089184119621720593765789656485865546084656122989834489973951518803202563936079886935511583325822116268431959372316172760762563149183052936554007903062737115492323320017741439385154789481648798991588838772519439818917647148886213040101976002784292859002465362066583931306000591639201118893949799280676790136421731165748234786885970126556262709083411178783376350775511658356699356047349497903387791382937932200197768572708888511757346596920827698432645279703854935090396088481442918878281639860593537776263184607858492903468832759598158319135145104262112468145141173625040011060382524847312259223529668152045904700470640710442471733240215377667887126066873448099935255659431502642362658540041914066537874468665238392442220849382256201089530816862967237625530636176543571200192915752922299048790488419827189868826262342429438832011722501554286714948499030797239965522910626466197604532010807219927487419476621065717266048921934349270586343073739513055041071021680909040018989179795522007894604638358493025061497231721610415597112955399180038203653376993223668817632334664979069527495968181163681591756329612257996469730047259499319183879023298500279170763621893138360211047346099824048785025847920271697007513684494195652308140065292108593193083760491542893098861961061563040079961883021633281400896361362306519676937445777286222355638605245494043831877132322117311500434404910538413825147268529274276253634059551495945340847271422234467498206038240430526817126296864647508383568693922254431942418719337867836791884071379224593298654653990337826328673818351625495032473943488383702086977746558793493272544269079917444909806487563440338561700479249477575883168751355841483191873749710060164339153526742146162479171941754848631179940144389173787158530214300345582866319508342820641443592681047932997089129261973852447456483061127029259615169466495821641726489903101130316392293863032770535936001581854481052380911761107115140005209426905077367382580271340791065104393275173889533242780287461772545451175080997425698058200572407437216595500725615117904725817201515698795472510126186265461661077786450090953466412545390928818127179121059612438291209453503830455813468466585404563588155885394218503035549419735801522078146722407292635166291290483646835695918328305063408200193861118047414626377641243554258227097590837993471267138279908585453803855014765760637904697460494093891311340733574348853607501894384757630228283603110445831149218842195155738337914693817201552085310316748489457792760824870037926968042134900147695840855315290605991772307155186730138379477403692815012874882775338796480444234597225266011571500014967584085143488903137042151042113064477997668739536886554835896578463204496377484137326290619970806545124610264568027874463213340626756842228397363278702184894825774890959028222072854001068879092567026005833149426479901793401031002551125084903406887997232067363322143064949435541922702877393141800761955656299997702249563240160567216237298025104145555837406929611540780519757557696570057060278068037585287883045169201868436754033739223621180300782519344199782528836991906053440389842850008671499177238078010286795705624880292921892848264144570439418046136974756717135095335459320712721332195492218218086409493810896632749473351380004074908084858938984171311612618123025860791500194460363175088692472359527512766798801027399011780799441432240440150095419161338991269320359026401356209386072183182347824368769332340925275455930692273887898881435679634863089996296941731934590884920050119315474140179383279896112644571471124308148420558673317875869883125689984646984366557177577475458658055976384992446977829009072103681037023784235850104756302912362969716247599588125055103880609470789137163093230544634494935773046451982302309966373323944378958172139038832531437429979352595361051821962431897356959181761002451533453940802439883874020563360283799696442731478118907443398864109332604931308353018537069672271935513590172056700566360813617940499747520022308740701931503278066806941827383616781145623220990488302410880316241712575632357270264765748388711610013007139791076985422886385812852202174050798433351641319728679918538785307620707855639207344099230796587854946550904158752810849278033334119535938064914100112036655159669843810829264541232580311365221269038536551460090828199387779665181392359043189005578662646128704991176876672919382160602541349156625030734081460368826625864277726515210610445341080816422577423403459103146553381826796296735151969889641223397384956859392970180603905616619703774257899771038152186797620364474583397173462897935440116602847587329255368204570594576323119473199112439804233338858059152474673190176778570503649908077520910227865926626437734015136961045008449288576671484630684032900955421049553130403427818734129431188967313105803905178907280551528767390250459035253828797553942029066168020136453753637084569053719264615534487402084897770234735865387025031422752782303364929609527776012747499526020257442076652661712014285510088568297757148692861879182484757140625191678469225017793924314259121415456621895736410614198042277482938385930177306030839919407159994908774803958007895988727543195799640008705738599195548996648821626248927871553787336318740448402220082467613986921289426926659084892098667801440358606828659564821162796994191428295866014209247085503130102280962015050668592253734705483967664135474284773406984273605657250742831089950163554905548717840477584416282195123469081455816708162770048820796887540449818508644010502627064438035283794419166324797124075507066544740291012180906685868310722345048553662311634995290942045041713385303236513183157932405359554802451880798281819010828030777849468830922467635378006073655410266101666721237331810858450109750659554996983296057491736307368047049586083429159437954283337465728599230947232446198457817261730152761856326238851660641955528436748091572981960117998516834987267873953619865010642332705327922105779138209756273818675438010480661661164613796677906183028775883138936120875636167631676861096716738778251125079652910190637364348326654157442432547527800535139792664449600810951944698676716529466202935724451084855008003414372512539067428429292116271672535438592477247993329227365544494588867628874567903607131746535625243895478034306168679453522893592413457824223618182996408812644197876267405468762357967548674271143267900046069609924855516357601607790231514261653979016471233574114371908971203357112779391231726274557883647419990723455085009163819475435354907557908412046686181773394203398770359828191756984337629484145819705553494302862041299327834181753261101039945694875792327803108357911853112919195199952111361285938770976714149141603307188251805858696651754418728174501930807790958262585616178961973022905264971660849700254098692792187467561334367314384425012843123430239837141136524798002985117810868964922353194593504618777387156039878824019470833520288831442543767858803746492759632974311707864570947141730604731740512995090936234439465290951916527756274752464389049031704852585469315550171421703843045305718696952224445249594303135617626050816146925420804205379388384339742567647162289632107393690788450093787184344481157412773867493618643339774321592442889649681202933353617276687633562382654460153680865150439893509638491317940233426403580656422975534379395715304279637343759177256658340848933000392049393212962745767394123521217107405974818753437636555542967272470183280561164022082407921826636969713825507668940407762317867157176121699797636024092199705964122674108469962002877485763222127963815373700756407508755711464513943399152431382029638704531216195408225634048694299210944804654067902121132109169189294367978308928125453746038725508669327205265047055427832017704993554356210317605220900769478883545548110441270600476148582105897213750672313220659539513763952660333435085257721744139960546585786882374160751176317394837063657483533088477731419036593715005587289850728513010441787988645419177232826187814196468193769011478752017932393281246685057449380972326411632169838323375235408897719518951354952493470996592418369640909914435642928491223897031218808950748834218124440612621318140102968443106931413748244523688082512711103535162175801228791730675563240244683174081232961303233601871400450325888929775694338137697258625824060261916043638779394575716891477836064326419834355089875795454083112350513828507928659589315873512018987273120805695084935223563359238588818037970988432510572637819907233042241861664482359230255875842746002913007342966853914004399434822679367959147514536073126599406720064996627849905899827482353080777667391316441958774746467545944848690418145438506750360287567710300743848317278930573748057084934059519750036017359115249318351665238522134348823575509412754349170753718980564755494307051704616331405997219795031129414401526695629172306762780196545341030384798800763951445445929658216203044023715547067928550803881281155558868312836838224509385416452278566828987602854690860083229527171104544109852872280354726653290452802308578770372669325620003046284120802394440217503097637448439843889545546115672947301168799141468185800671871613216342828787105329240711252912356265497104795393312602788993141990900720036539267585312633768133992952784043507144927081830764110656328172477192636546701129030881211220189316582371225668859592646494373497389228194101943516887591771812278914745119550449945307647736636170137221405129758109423598652384574554786119341502011783402874006980106514007605719603718811634458628253895779490307584002929470489747032144302189605474352078954448896076015484240651483188360424600239902244814433056632792563875745738943523150441986715218100700733810551851703831914276838410839759865988986754431520095356737486488481513376268541538665289053514915980901228168648290692837499002450183884857946779851340445566287690240248268915348885680444444116852164900232433207434512752151178454438496274381454979003434734997123922047077914779196000516126933372481239882776850370633469272567703030906741004013277122156364372873883084416453746719933923600567421109462612477257819807876690131540334942384917116074766034236793729227395296339099673918353061901418731859875872428222446959918026898364017952957254418056759264080053311580217384690683320431242819069268826870541529752461233147519424454119810349077623759481296932869218164694221955891464425245679028822017803866277441143152824553971335414419349172925531876618469776891729420306463998593048127530306334945661990502613313539057820639975299429580133714157661227813276468524604450333518157347145697268445643407825953117915855458310244268322982604563876427343325644102106163386764009132676898600839029238643725064149327199355158103719596688237554009457273404856822681579931570615980469047603431019755669416907164622002397867325804964205020206734875136505444848559238209759795052019486477752153829218278370679011196701108835884559184827545217954959152241715694109664345923064025523460739336488698569706354446586162560605886266387505953477924996177350297023769528628754339651504887857444372183388663438639676193912214620583638098592920013032413790292100688257920630543043581056995561045981907463250484930869541159541672387309377627613263093365453674676896712442298437203071744515440187027188747140229733491633758936193719301737919135123582084190856285873157200145307699138472485650713718155757904230144167458746837375621903654171971205930332080394220923691375679937991135092004601787377436157079703601187245535889742991156843811564808714457728081804596597452201862377224433775752579155055463189800885772545970150358146387967280557094350042823523168312414018235505672961575100453138888626473572479808295668898213560487546840827364759528386924173969046624877733274338744900196237488480502066425444422209899966713401670676291460062963637609808339988505931477673769481057299346791286610798547935201391840038003017275366773586623792539317185815181073697577302893475558281733489428861276646552944792095174831869290428868486885351609281084012108097810134785224790706561835798553772031860240163381525533622876062353463260028398553470728249007398732000167106259538306671770241991224310153574257558742270599239059226806403998543564180950699359965747601777439882309169392504810605608641654870140308962976284500287938601879112731706640214549615768591584400953846849509032895209842997906193107644916371616657242681653798473638474196176066412469317512726876265993109122656624205239819606596847065339470535957480305290902592712382722536586255436835519034163783518964359623135632597407621394434941783406065913717296567607666316066370277128815491298051900988825801734434728630549667197405361769728882216661609801057784190076782794846831650456683540354498378279846488014652777929673959672199569420342924355380248383546299583319134646457463949179371761935772191953311814034145380343491663005627877602247446948583276372995192583382776132349244702176298258527690109578155430632615406516212313437258422393175971413020059478843877935810976874887326474719394094605425008068631906801717724927431261831008009856400402392954582011370484089632873636541606368076640727312238232586387064297691455434936198571263732633246927578981641866555686812767789543677979892444611197186668016097761982757376788595480064224138497017687626396293241252194876341618695319273801798247104676000869243579584785672715866234788599403480416878154631351493802436258137901841205587297707927663777339647030928853871869443132384473449331304838749860015849867659341876844256099808821336839245282640472816931917814233463769107919208577003685592796103809440231009632105642438609014272342952538947981871647651418083840932241587192619266756010279959230190769227933619330342009347467927205815806301074741813840999650331220929472585419957196249503044025948181639830089673020305822903708480713417381904708420623273975718528953900226106792109494121004190102144087712934101013473751008226878002102178836398543509992760674332313966975804941687380170136507823887149000710010845343977413214517929576153462642511529936521256791527340068326305327773956225169331460700585883574570408557670895371612891545870556828253432231723220528393017552365652935539620967381128900379529144409644969701534198111978212449977209648842878392236603453210889928229832462241268292439659624982204344473126393988725868407878630554172445374302889963433125020912633413445565884830725771225335707327305910488106466120991824883402925626913939136867798675369386678572670089924902753360861399841615426358779643960445834302611560881008431303577442769760590517298851701090576599128634289625879518298898390948374552730050395421920716140490042056017749220933269336723350430048937279785941116075441997680791581763569055153069150019066623625453115597503746847724995092095516079516932772962151503246040428676775371875842920876826143547129725381027964198487686668374905923890086312020984165239597658073170294331208335215038078758491185742160259883506184760696511785216107365896978638136119578146691334404372923166560733315331103218808852881405488776016902226082848832468500616461962669571357079807832686266711975253438826450911966839617384800470805018894787563408133165097159698460684442229453433259645696526548540210998994813390223504216722019533327648752494429221388128308892349026474597119722406202151029871159596893106356738098252635956816171489496954190916984397454542804824319332197681267230608732145735626394054727837121997557768481927123227838747027498840061526773966669488571877943206876724945998450962987804836195724203504607808034975116946261483173482355905554675339959635844837365161968041294000992982943550506793167366436949582061361957816329792027678568099535813049792656128153148580301370550829000349451843299510835866909612799646806190247658628336799079008427833284259752127961147166522495282578027000526893138101443146676095972638905790056539457876654928357691552155929983910516104432567370742258730842575298937367383124031573332422415998290200570409344161751661709653300324775707056548101090254685233810326533004025121862764006696228357380333856315808865410677314665866347886904178905291600620841954818863356157347851389765837579199790798336554551683883909662160569004262167653800880350783678474794205020078795123244339747887115681641300702899756561123737712163404284462459917323820956508114023825856472478893826888930219613224491316213524712071691223860439029442203636004930428811358664293867427310648215645619520269239706817811587966508736109710138699505219336701150624520676423080356384830419066266436737272955934135951097931725534607650787967592738776040284485682506544470854676457264424928298477615084650385962901323172754812863328425139258329121412495840969107304148347657465400319021288833012293993946234481039596551004333064126023036207984934167590464784781252590743661922338819134531086322009359509878024097035223728924127660476232909677245852537323000582056363262687029666032066068947317473709818603250305030756420022983377682109874512671444344681077845085842745692122822911946268046310110247476743804920346675843459557520267168354847999934665069944050812559551850182898603924730427779970757715684463881818219652886420022584952522391478786629389612093273090345848653872883568647131273752770323067872127475259528505025743461168171660765049083285537270292427859745728547593166272119949809466929201028717225018737270934502245228104781672331274347736803597660339231484771884520260309639248238397855785559913639370527394473570846758848650439495567531581161886318824643560290162662162201160610214929991287084817822974950276293624312838076580062872059608761877667444036398566230847524710860888947769361067312532884156710883740760971131779003815482715146436591840672517027381151077887406475558805291436214385281746636298149328458417853078225886895314274810773816744078800937212538254278141045650098908286934804355824530574193744862149915780692473583810205582638051828542164220359106686491385225925021464768007621489971690879237846421987163684495267246655178016741668934147773934619065892796684037994758182209125728257883692004205095703275523265256787586864324428207391206040715783211883914973201495685895603095839579093752177399051312245636733212506512173185901409891331843964051947775191987949060661306669275711135536200307282118786976450789325789291781662449665580302021437678192851092538086895497223262984594914735482253711205058356240078391009424652885261338227573789700204585337629354191148800486182300077392466423469234817196451831012845975824175247813743208390593031532810232315271904150739794953156541762743229304868559085170716369369580551686158599763766210235840069298150647668218327530832615353324426781945172871388674279511444526719879050254471997910932686536053403111674380021789108105586057318231205572928021609703210247221763431037105696575566267612712650770741609487268030018529255397699012466001638921030337686583923230128653812283010451669878005537474491227078526437470793665490914531512864674067816913330367403895247376564341017912374871059594629525138650457067853565275785820156752078531416011823891250186815614394753702252694504347478945361642407295726768538914969598336665206068166235706563579871571407421325686215462596969412286029339358491893008324556313348489124480746067166671276992034394500591290788985625377881699525948014053154307248908731028026923027240438245674060262976828372896043608207218528866712066771540196616346575205797663500702101364432777343984678473465489467028796652221881850648101493268108636746535351098499009147556750982801457477475563491975524964124411937388430661173044989324570296096367613087437107795323286429149327264373478106138812792557991366586434737367421992712755838444619866997944089615617807370224413989061118352948274425568335876283898252106078119657295895103526695751106723273310715449593460245810044349556641088687581675419115145706588587605204741901672476194179598771289593266969866097932736553249413914371601861886006592987080390585939960493627582872908335128297743242397298681244208636312065761122672672344080668960629369922746327644697898856408285566232341512909151750358446001850954248760866620796608563687296194806808922785228957564293869886989396787592727381389573852353317564910813162636116798427822166305980262101901053797787316619752202838416590058545562275673412778415228867096161190677417572094781155393803922658304391695638332892265579132370502891566095944092333180054174160912784331620010249371451011636650575821222718005393499483839991220419647698439093204624332966605978224166558432527007602692177108120105317204922144086643188968104772072489624920295124332700166877247368303438287048523231054884410478615875004168945045533081603796046169824883434959164402996798204442391037696578863644902141073107491658191477042769160093350581409148807605246702305091832782749279404785260414875237307148530587290538774919586614994649338706202759114856393425796045326910849628150125580573108849477161650568212343934011841357848397489614702023759175322360187253359825643603421560791233533158051362128647018525162562845940694488351751875247198096529251753803533272271926345227728257428161936646623013195815808058220929356039677003501988545258939081162526526238596560222367712493837031027875695866502195622371884753039562475410528539106671805365442048340331704034249604576728387234868163126239612987559258626674178171101773913037486937665864128034413046427622871646875017288158419337115705638733331236953629835628155973192979407504654154413384084221102233517857713475303558372532158871527163341053623690932535254198580783191564112152699425192119943408541099823507267245493889822887890153914078164758218659774298715428505042638795866065027041592811971510714126967420872048522688477263937162512380938773246055213055730439655568178663791965679491794667496801246444582574665437340536562305779601197534388540551922339399780097173518638288011978013005601810184178390800333020211082237952589765497803132179726641289119973515659233865542560836681535635266188063046829504839631429068374710210351396298568583960323187876770139458708225990440628762654367954536555723281976545847435980096166616782128145347938505761809283748453839752232390259722945598832620358056352181742988398305762485995079577743596889866819794787770997295580449959594737779978252764763246058317932227020027077292492916347466611775218832243001987947521854887181261889655879608570498433417332887574674201063915871462893326815738066654808327519111522383168750290721108358140827039135135678272948243339012784484350490969453976895414243102657191488101049815011226503791279769097442311921882770352113943899382242941901942655143562765838411333009815071102912733279000328932334822160119507373049464151886284649016885195920372285621526824407145139837863374098475226589091587605107728497872185051364838044658552643978839135873851036355093841163886569664211671644755251905270554762590953258676509413791152905400264198540516243332086142007959940759007325568804494605005204583748547692546787658435723954463456541094561821905074756403975848828152443763226023338482214852357768333805577083433196617012614955932274140378700886538066313241629369590115062611508513490878322935150624797065693229409538849865495466669947466733659764378631772799388559278773750967758103220805360891577340999595628701999061817443151211984479569381607459440813944865967913658779598351557343314141101278039378828814903086972221337404635282848195189401796971135201785195485659167899453351517237078721354328783159962192835947536049856340877726945634982078160249644891570432378233296477642229244595744068150846523526196668805084662518723318607289864386762471311119497003169619731065580622821421982989344556371558060350975780959648218908067517334179962824323144818718264423078294689606424745941313311600283530575966322494032520153305345850341271832738931222919853217365924306305517021649396785052732365845153538749141582751315484888350790297003459856554459009732655769369158974949334647923800960604578213963051033129587990976994596311383254885503646981868719588795794195371081428018977530795463061698132037008217482339578829530139397741036192592356689433660498571908022877848372316268499766376821668167760225007781802335236644915176180839760313443662830833449146535462571906219789874341350291724300877667759377676110955683985900260577778308682639829802505797125143413482423121926245323566646442360824599389582344223978657561877476884034308200790269094173571920889687221342805693328752744637133268351698249809110999875865948341075804215325482916008994167138793162946984269655311698869065595786267665785663259491395859139939771322493102114325467134073298761259800738459076860639699138552343610289980517959294895942721410263181578189189919850706535473188403863648913964240508155005404850982551933463840879881385947582992926186959182100994815843228809821469697503021785604213220563486608424760791500940853069841043274796755231101219081797616729170410116595436162316643864183608648734702618267710668835564479612422692671717918675088585455869600490614089791550722133700669981667429921556728418071245897231758141895631237932227446825725472444518853335301123359777112455691446275667918657675265326285847527019131821394644468620977173823010279804676253127097952009013850168322358812836242484393298911317329375680809233795844858077357826368817740342754615219715919411304985476336264032515632175279698243016088996853356530904996730932213630769305824062584200019366644558318973420444772427269481520536957183321112385950206946629028121385465055537043875193787695624312803400640271882467563788632429519013581220855947168653305798505721352841789455761098251026667841047537655020960177617231341845475154899407560238328670509410243293586493318845337730524539489069952142136221299758231141738218726199217555035831294146841540566102079066848175879603662693412987199354625287191355169687132903037958054229016436596526524145444784935843282438444005068686579617420009321305656982659310427292565340258580997762972509227353355160247721977878966861755951360658515011571378877968113556818115828712188268237129592450325834596090968509448494751149247156887217050693878170975105456145439097920603785927150015724142489601526735156959544701594607147637881043383625960377051574000371917839309510183714106408373949364389636620933794944219281212203614688314898375075953416917325603704623260196889420392787477662704089254121339706349152442662609346104316855373836581716946678382799728257101908814662243533163768600551320005962888531842771701650881942306599436989819063953307973804321963331704375267551893793526445817343654171958172352146997002095060941574637969674723159502885667367009155823454175920464184673502564937700563354094281332002163058569176704271457114126228653015128558662178334910546596492771518767305864125947166138977997752770871448268772994181567848850359493449801106985999070035571327901529554818108451989815551906624195475270062591286773599777996307702614677124181163600799327531783061643115768443953698549138607738325556619961065032262512661490045774656259618260517516127020306764879047893002326264972252304990961485541190126919940557179583544401408960992497051953610998151098870538598325781940111357319884677578699895215596203325668309927999281118898818613570720678026748283814909497864094117512968031098620063044032835117917776322316193282439803277753342128509762175030553993214736628134637354336723938560200040667688517256200170698878538378002989834251238640084738016234101578615562524410007583741441826889649902881719839836205549951576534918793639365855222003162172852298155539606312773382001388408293945840630667343013487023686488916230369014110002635433844992679389809630027406957235384855605909529034159562751103243741508599519104695203792364459341933802652631739981921923466979084713226956643239827145165827956118490418542442035085320617918901592472268807549303259117452162685413567699791468764241558126063527945223838964964216380771814485772587923044621483423907935525011450371752093276923039248103033217897006537720423698373602889446550864519529564336231061914778790984708657429330148549820452044225745296389152596811510876177876472306587832389285146782444027553407174369798168150897978130081184357716084662371532998304208588734727542372136203919746374498146608289502798150893274978938074005874681056582734147500398946307197248539564319516196711387010741651332027221761434701791290407789941935576610469903919279339070971127897945825890889329530576492373521948306903409225692754252923566438028922018152761408951308223354741582453535244365014979386236303248228921663487154843747827833839518505858365899587964929532166650374678274838555213388255644873707831261772162844943437554978925108984121550582704731814676688664436277931205810238366824423839077132182733745018980723509914305851719728840761629150491968614873330862716343713815680454148046219706766981093987743609079790514605293258436476540630800251890869126177281201135357992098495573656285813062659930441118141584742986734560315829205551163886868865662367416419185801206861111205031230519345351789368877266952974418770445665789443261857694146208072048422831534119391798371840804265223289949397149799228800202286331374147031173254931318784220527218494013238074313372849593483084391269419387818706232181991070406279840026130890546147203462918089046998239286805069712354319651558742355374026700057957870983843397977084855376091218966812579824937298893462371036394609069420332993092741020583502687015309123024742747440496671628738952410319650495302265664097300166241657575084440196978188787726385216142143663769894322726363243552705851484766841987206648532970179761632888782855519219303851609201756330418460923928655804350606712662819505690177063139421639362204244833541710064426284033140004229495684592460205227417213199162540829467364936502051351251674266921868902539437898768615394203820640452369440914491124534895081878451367875502878890941426068641015631938324182474513650052815350364764944225257201050393965647041273239655912995186956044911118620925262451812514977935421394654137636954137539706404363280715298162180778399056162418345454822869511128648647588269178893106172003190492096052613283720640251597971675221201771082550314060707244387892987187942574180356363818095590664505846302742941570712986853709537116755759141316990587830265479146336903775091003753607769412481576709242019548683029824295603535835846174196195871904961121721032439036592778424841663201474281740536282193377553606076260360557610262196805815891501335730701017828818958639273967493876721673316799889361842078121191485355682536032717427441198286085968709848458388823768311580110941764611305620518109048536139826808878997214744231083339915671374148193327652203610211426772326346447528167719330053482292241254931935989548606006880782602608786416713082550844972381571704955526861004182410009276608875594124078772207447010821087686696046699952581691555782648714424258503989307458234515791206429644078159124302484310859646833805920659809938070569601150859568995769411053188733865163100194438796456474907503994647853605099323546762141963094060501300287373482751617643708813364680121165350279907809269789216756797983632257822068902512334652184793656313556005989820701189157583759708263482989936691959042251035123461900152763834991973671531083514263621199838645156777308271390736082110646102260175008029484357140059429754613653239208546289502362599397275922895180857781448319591229545500707433401338774284288104268983065591855895566903173353088547749313824460851400414663382852676099322082611904080432183772112452684745380570049327900681196210337556873820495085946874341917841204665825486378919773605258282043092756798757995340590510689458773075536586187462658535907817075986158245299870474937051988399387802659791439977337521928795751680641454188971713253973462754533413431211403071143945070931515082706434802942175015222069876760372166270421849212634017287405827423143067633792200621762208151044733708176347077944337314920737067792519122896434633107826602482927808662485138699318516689464174378649245170723172781168010097633414236497470292795455553540987002361306122409616713417736639402246352989770915416373985036554235910636274580747393254485609534531930557561768168562114967838552420636108627108932320228629304274957488651798183159928652596580699587282350239481433850751107944427357622019559377858869596812226183856034566417749321491698079045465804923087864362342553633363732111345394159690954819069616232086865464994811818183980730620064008229512862902052341149254509230838925972985172298588470799500292895832187336102858972728347754404125847603592739992712172627626823672085126445655370341445280566586924588709769178716755245268739247652722309739142326065381941101110995556426759721254413058468062278858211047403559542816941572238579175283261459244884665378923960245291114997817260555088256996672321420690142367759509703185451350729713571151087665572271933597836775688594357666526357888283016656531077187938824712559363682931057091364360116278450570794220278129513883520441957967289143414449730512052373488553107630143820699710296054209419601373583629478973085353473282922690127243777534016519281241902792513246007601651017628889692771537282729800324425216669634672150743241450151224949014364150487373109244642865675936060168486492521012406762410956177522262665468373374323608986256017690485215821310678123990241831281565495476515625444326034614555367992443271077323281923233111161826376146966342451982042211610536357779322862201230689482284267606135549588251176203277415110082668608508986577751892867941981730863134373303177246503255324836410302597340460672186125053589827265536391037385394073469533644904322943250453875071109337910470032427722214747384254876168508536167696788624808633783787544904104443168104173554605871826716652841777269861563134025177486425621649975439119520316507534109368277055303712521464633945117807255484600241282157113491197128226233230377518758346074154656444079353096729107916911242565147484096870068882065359056428182916473879058705879676713315547753175202602325829394263792594867044441881161674928514495444472720143815267725367619982059541823278740175468275737963380084934522270861867749511354979907329372605029403507699608969720492771956297843995795337473203057348669616896585096798717181921305502711529123166367277045203545925283810894246195793318817703249825555821336257927644181485698578021755818221707349850848637311161713715543588413315029411530125375240573575134900701607263845492475046576864682206637130152181248187758978706860306480807098420417301588947732911379209392077595669933319088478305712587470254469914148135581942271398225578855245984046944960297530316994994979743640073472583635249664032189245513338458015597171461900310042908542738261262317632296643730425451661684652785811735699453790351895077872828482331956670503292182840222452598102690053206519918904777112960333083786955356655545190103402243786893300817451614446216456661846115679174234598298937287147175003502190233671125450261115774992799636377751638019290683329971969497237806459445936636201603199505127490878836404360318685900494375411167090966637153940092075749318230576367130807250253068536093552748003985089612156692187229105296500672081251654510974249110117860056311720163331914682323716416097523479718118945268530181208216417022908061903953176918505444311128525612373926762276142604724322588429623658043305114469197128224188970160947376124474834689972855736263713402371920143933857450799002936550412657197309090721329072144876948087582249670707815072936490893348659830112105374144143847604535961966426367621326746157323246353797814230610766705785994818337089289383287445940115918580316385369195962719461450060023329382522423041336588694489156620772372595261949688487696468894564710113255520976994517735523479338351499032826106109204676904393077068465431374023148562783250585449004761237684832835838241730328161531614319973930140490938660851383199461418515581593383059413024476348185341265433222667677992498158223344039538141374741211737519622634128914023677721074512213022113480115660125657230968546926454994577483856673657790540606345083147836827417044920096414833194779115186638851896646317679355102551886188147561269467228342247005264379540597456316150344090488543578393398450827900507692840933890955144273500469084468875813858453267906766020331513174897500031283446472711217262779456365885116507547922463849006374992478600586734633900362574325418791533987305799282485800458487061089437112325396313183260484757121233988327101682358838240870713023829360408427269264755547923757583178995946300364381333899492395272509612426975751950467644895574768259768025652359970095574943527551752602665344276154993001562733927930829197434967737786398752058235496133379097899849874336475519080462141506656975823867460900446309766113975968107080764665763105648183987709526047617603873355033435930577664247442126799859534956468985697525847629564046995986826670788229891629593870655653180510483129235821160805151055901698581185799552001199901600511763018495122329483396374338148550063796148287515749706813371101676934693666408270112159840684207660068691372562498119463407736833976851646249448610143607762505847569106743289295952461239528356383808670139669018668040906892761191649604000380776746888894140568540035743154389545845007639833169597078451684947489450030765022672971517430663359460508981322138593522199430100831896684264888504131764497434081222040037146775177828230527196998043267837972325793890315731953873896088356003368309783280609406553452194649238658325709894462794372092733129651540441010032139733572629788168697208482697443498045804602121535807409320898837046828052713670103159151705079143970949056160053488862102255282980694238894539101058791232324571737885292645721825086762366636104901814566474243206882038884587936361698465888093985840687722219430808796668671311763547733350362431972568223643102391729735093996417265709107936681492139121387355036130014819810613409380049844095817254503698331554071175829490556121458955744723084872093918334453253061421215374766144159500719106507818549518407775002594254680088383097652948408303061159709287608761709924386995449145538980653607039580672000396782420121912911527896692399124474079013087789784749984034350345535652701516757888884776479677778922851690862133112195232077353565750395664436705913468988324510610785178436522235673565938094123306350212777156884238457778831517025400145323816164680173792848939804781559409830089460035089427564094122768601894641774841278940256196730341892189667734226420406402074473651031978398994201284155962021749625595185156969469144343766452430853311599363441272670674872069309398760636888557300169053552338225171821056413046507363301282889756510011611632359907182739428765666064401782106516580811814624425756803995547742675222000223096610570573308814735109249440181192461314017545377552748217741465027196556303296151744541728261897908263939430623126785550045420981487833130770968820543397679211930733134573962639471571967996208310315040592381843013772938904736290157782483565164256990633878646058654437134906367852640239807352299869175104610008854043763741655686824393107038956836920501182211276708247440555650315528661117435959650404950291437617382612890984152167015158372608057760100176976390489349724284349828771714240261415929070182796646243731237498489207031906721235076692778997255723993731558158993378871970773920605670473245975492293018931663484238961319681941039366686245182844496268801578100940549064645498216786572053502330647322555803953761252617980149358847379992306343850849754938347846907897669809312279378959941521204870376396277049848482473673272120531020317924145211278318431864611681233234022046217427887214585346040336178272751740327150972507974749722950622255546194086893302080223288842677579177996124223038238777512503806248266938151948125534086394288117371616211389050940641709315704624560937304822579592313722374288653476709353400812581828048788503887439801692135099277687703406149266894386873333312668101290973289796843132071583132465955917368604330150604822012151881013037394795689083563469053945852787457940763497620616209501584485492407445494421125637022248810701418333782239568648114161410503411116922599490495351944861879278357001849977515680629408835257809525749523169255824252755698145136634570350151845150591206107716509651805853809479646702403713918897975422276088828144955284009556905341742566034587595518047515475019110992056462423441476487148766648269580314597829678461362411290066376802154625778705522070623917209697826001168280071482916329675899162316541856264364570463343587815194906374512276307263062052595166942466475752211351761264488376419587353130735921677956067934640134268797484239910770911805074365562331580215803098986218035702118830606066548170485866093464635581846211516603926350445757499353147444849973904585627083964972450240424883786197124550124524336416915286872563222662390913250916521262146261419221991551570333922599171529596601302853954862308252700056965118031021292301349698597627702619426676623483732604517733593255763823084822152049187577982861572806915275162346361026640543553535120320091820752999922486177175582592885493627910313699084135958621184878703916089409431255714308270576824222603237795115829370719769743706107535348389438669117039551495398267764092504481680924401780446281460947591339180821697262872663763780835508209679330394590087725559849479977322967690799214615793321948401792268807771006577991171594708567740121259338827786062864787365558896761539747384780608860320465501468236339713597048458907911604160869744960575956284577055342324190955017530650899090675289483567915540298088808269866774140487855866874457409629549937751252546294828336900051777023027051788450010907454483740850998817106045618789718722425606613324497340336409310717862304473793815032013680531383628466108761126572603889920589820259785895303897791732141834283187459623980891060852874888717266929899444832256687190975248991826987374806072655605344635704729652318108112168792605296946285117915681221636161846992922055830762641305867679027321623102264153299237634105984007358731177535987398738921898309834862432148161486380661415320597753863022570067402123596540866689376931127933970303320254637580938673521839087432734202858779610360432000780072523903971910818759384992762754380696682039443050349771495240059103675158077085337994881774790734881633954673036069755732183258008762155819404340127387301792969885674760818129691828944517322211195602590598549328448354127560335922054268273695881840127490500057345743820806313256076407915120592181732994193966952893274177287509520738200993820578506170855032626521322646364442756837894738277431633541894390315406292732938148031990298069823109459689450190281617238311590632956343243456297838867608497812881828906518102969630703942027911366594762673451903425144950547043537774288550316540205267589707028103099984913229699637934597567310863117419069158031016711135465823250707639914939295351952647275841424178475944812627708521762279897627633774119896132999955349040624805591854070381638440207091483525414575029376306747280488078148155838673025432008562610369369641275415074000566759983931410343315503535483258214892936039907659049332607356316513095264566406870529064932894738342203238803999278869853451678852088564579723166115071604669279484663949490758091737035998879046648614696157291804837903727182222066927384647045569323870258744506455068158930651016265425656280678144430638802933985604248771225887575068720272215466957140788680487614885585246064082454756762484549321410433616986324409788994853415157744604015311452293572538144341981754359411011437792816135544311970196857582442611967273717310886568424719346283927116673114994035074626875467902835110075084903203624019598785840955371147730832406554733128716352168438695218979357617346355643280962308463015780375169186641534347042767107783638223160356291480439700265590159453279444300282212634730309741496816473053548454174042735590027294525234995997071465819842442037691505283998933005001034555387315172237166686594229358642967412286519798291527243951129729098219766839088933274359998555033156553255214035477253048145173307211877750938161475403799280282604736420913181921684652279814935843785036232266141342452805413466831155456646509473472424322750146002071569965894007653030245847153056120748484831295149024241933399962652454075357444206596103999076133359088830511445589756854707267036130068442273002048537532788781770535103668036378926183944831067332446058089845769801879522083322748934996740213384027899909666957965721695342014513302512811097104723722780039781702967584572024760761099874860497869687811045386456593940067885880615403355448507686344111518834592185498994160271941388521113711293658049347778354371540807787877616784054978810981729706151490450395475747284771026555062708063977436004579432013786769370651627190885025979178234682780585627678987637892088532882941062293269927534179178173337720888141735000925689106341676228710274155995522234985555316878969594278800311462730001912429527717836695855674373098625358462623416826429248636561192608317568820983791872376097341507507720624987653823697983589368611386285642241848574069846216446167282419224640856575904007980410510668967764723185354538367652747272169572052583863632371579871740538262522977491888935757581584799668076493842453734910868780834824555213087419874308896403908170742534943700376151776242294185677622597423411309081638600508369394029773122365188028577911420861995193348726510666745985435274740140457526241479899319726168220866710100855310699744573757730542847505936931524017908543171280482717867408685322100407622658579291963877207895982166456744286371544948362781166270016622001376085019494182834545841482137077638787364837148584353839665985628143768222128629516871959110375730166184313816276410352565755428207664221694863727425134494716377712867895962556851581478004309849064878795434529085545228825892029289018645491015004960130668648304393205374918870145121715230522111860495495846867795471492316232200077831694211559110659482031886009039327767824698464981712309083776025043109475451786669861487048567791893722837197705922112133266785992345287280259571566169419154964733356172951453099606371950056870786033768126738003875235708364280517590177569628456747887478466486850854817710805676976037647185836192870173294352840858690545562285520227514969464091987639126315654224863779594864680975461532379408115873815508117619434009404859655707751503425826163264187926253994722255571563496793009135637525310835218588465738183066275881912804991427155546643353328323690085852502650288723246181494737713845471933064705587619636356620284370904711036544955463115017820419235171923145317899379626795229981035157003123857991469623775819096182986313622911776826897387898176965438706238614723473560194621526432049438322882942033166423247969710694734424837808150453222513212466629385738328027831614334237652185568277648065250213096217194861827459043146325979241047312799848641444808551500756794206241915577059768221799119330357394143831921205638587772715106591917304880931550512460580312712125749680024379167462850891851833113000596633743648254866489162412847475378968001804829217655914670404703352715809176065100891610052742906429886624278855784166124142625483960172689124517059681635312358421229870729177225222218983793303851772968421809259582059873851225976599967032797409372256721683882309855131677433682866267620553878365241513732009766416981904772519137890095629741308356861856237502230128787048927640954319301224120962329687164954800941199762702885247495283842431041124203440915580619142122561652125464115427099673092658674959256551574485875008365435387511051924482184030868431453584558656133223591123178718334734901072025396908797671586065565544988668791418857408722691648711009423286036894180157301533389765279925102885984605211863174266104047258784471386280206935035079868787385201408678407862119037537703845346279816075576157293060250102236714073136004512961139788391316595598103305055734765756888533271063805431855916055667690226701092341194061885144370256354796614201409279150784333276146923308968932444829928554596560218211881747929694433309773593181697642039410767288525778581540055706501250114255256611666865789948827707786173349300227398563314424115248040374273007626601196896816091353208869796482392309293593125480614005822208694877678421389153204375640351104824832120475586578455959553567257429236356080675550963435460166622013005956592880563282803742858633013963289419106643767620051181020908793427378660839774881887134190363334200273421656365610222564779280263546096632978868411522049441969998067781926515921402299544755349530535811235325004479569703793476972673363817048503538417812549470505129969051726483990974142278262047718131119006882060505327809078891739673045408101888519900914416050525592561468991211660043190774312297876452405863629796313519285208531645324449136572050435134621654253202435676444295177243351469171922258549456245701257947866004084754917044608164396926148553573653653948016330249186178699178093040442893153738309312231071390153971437696488744460838999256532549483695374201774391049327449707974785706865054654206602829736457638044642570787007426656576377410090027405373556888386347429094719832559890556992907891887789523588083259669930655406332547287447420961873045768596196088659379826340067063547138404091396369893635536262296951384182211248370167666244844732332630225846671052483576637275607270058604821415315884689444782589272698454013050987472672391147732144578152398232486709531228607996087103462740547512944540037191769023355536593695716935121506161943076001942115145949088525010924468757384065670712371986963229449613638771607534382763507788521855378672709940741623866760689078210976985368817003856551367941052598572140155293329980996570871230947364356026972229702820582197874195900537837454927604669719509945911933627164399647365570822878660462569379193261353307018319543628724550593067794146477559399204077862811493564534263841882453211942528188883369409446599791548350320339165243786232445540606684973223464007504206472544955294472384384791189755937434756986996501731808661968364026912795062709792665569410886658725874133893554658008662304575029723019432425908419548748550284996340960805697436477172740830218906938654174939334782326671576127921609824098763068503322063095497983425195803762546646444443156077513203764544172097201481292258389434416791586655039050935986009133767020754890842626309961798827553167529095020440037107940910417206330839925359180065428580144743458114553446972835611891025359542319215766810567303443316315692578717496564789697201560379227449297999068781223996607340417776761303644586870733733906881941668633054980232285715338349032643783718171065882819347329944625531439371802055286652117441294138399042066561436184529856145767447416410304700750265312436637876249698947746716728143896321389765502840058345458241758736933936671570287650856642335474049521049821175158573237499750045241891712657426544312251081853846283020734451663696798545834884275286287138092339408897966015529644900166614718497814771431821009872952712622502864845880411603498856606029113923723375202342592863595847727088139410065753248523408319068885369322849451494190304405117743234846863905166236385644244965246543853599873128922853624145553074280546452348405187496399718779892228797359812249713438800065719903157427821581189882041190193325652496929887703733445456174654155556158621103431375744888071942655274983054927366490078469945355979682300027043264460210425625858745792220526983833300311015250392332452014274259138674512798879036684440916559812130824115099467925901074819658756216838223611502970045471930594888344909203687156089015433469286641805899345748046404256140883726683261821178013847127515025985696448800263750973565011358498234877573075335775347941594850402695947171353853069081403043276402613472510087926977705154429041311450695210830527592534268505192503367613726957094345155770984316367786399939511476363362524255673259546521985181716351579998169606340246922940543098204181124754381355823913111798616160876421235029592675681955430843754763346064943791949975394158004121995045842001642935173501474467879875788961063329540095324132898106661602199092713434127651153055672839445224455650523553533025229164007922621065198977556645040487753951119598703016331555604613734811617014847639985249018727349118476406014461556407553741037476005679493259861352702799527983347291721084343820544565806378222422392610635879163923584137189693094728700717219850207101985169693122841032708874124329544012403346353072745106561032694396827666593949766211235880408307863126970187822327693730856390045875467523935281363505397965114363036157973545907227771691480653159151280382274170153703506483636467259827466797008930836378444993659884922021949958150535334551951807692291519282722815969462815009044723104261231111867801639714139591203206780674168374037642811611634686072624826169964747399239442319148881699088545183781093859632309613387683647794974633974951444779914935573011465949578992011129723872698942667603497338587485962106715193338632044970874858013973587674844007261042733918960919952760547092966955764421389291630000365679226829549565720764276693846682874657053119506858188028883504276753832526755844299051122584543676638010802973399495351820089749079876968186943553963707539404820387654756657912802062345344031297454817876621525350719199274626012797140983971401820044864047672521736726075841743255155947573752549625478980358861497212801604459570983292288521514362738266532780078023437056324005131384633335383511285505776322645242586891264687705640964900823331788101153554833579244921996462635835492042863062965770201553317609419496116584598374980521438311451242573849700472425895215791334556296402280384840626391905399826387424259133685450842899703510281352471514371496141827089772849437137867850849759224969913425587381319810504213024455858887380254250801364725720840793487906205025626767924226038066472753302313316632656815599296443634099213751495917039182934140950248076922866262352583172020340180422770327773455732954591988630258965754516318410851303924821046457650543152051683558442098096352734387300362112681413897777920972968981272027577676404680722607669460545852906207584177946557995828255640115573763244767352699107285849895485202811278755033269288873975621127601135098029308993924651611480044992096773978905646072517307874446215562090395902574323140792527532433372582052785930673799726972916606468363516417377213179195071365985773955040433467508211804852485362535543249117891454089426202443945531986624777339595000153464239865151355425872308595378276250115193648204623403299210199837977927131593346065214026836563746514265956982413051007350719713064971236683419659694946266268365971201669656034624340155786572446711476603150139245744682965108314479458791926345291524392279414420229719924365084288105887226555340069426957520643319151914238482352343536183703053599414700437465098119932581301383995547949219056214529538537804994730381779769778250409303525602004499919178070270044387594713164585568227141859671143581881855421703311083681940013263691136058313189891241401781546055424969296586126680497799374008449943029403657726975830216609751962453658636301602926738717925697534203081720335221891092185455849733393039937579060796056189646432867716744537787761352640089615334325493983515469432438642615110210261694228768099295939273503535735807777311363477876402742443275670257511981711507630935420639518720198766010211415952855061295471328289850373718961070987317480789539525757942281400124897925368815921685753168080560465085287098971622405095512714391328600053954462755791598544455259876635299753432783815282546430859309226020817553966074324037517575464197300246270752613013654529683937319587279047662694643807443807260981960874257356750338897123596476847571604843236768563247467636398533248990408582223466065769908265570407605919490481512536119847596394121684546493955038189203024524625694375610662461681694168776717597648381982811367449527060880200545594185389375410336950793059911371375328177880016011513766459331084400644591648402178993488594539519423913867937130644483889820490948760586386350244523620241600749050002682403199813920620230929454875667314142585912725528532692355882503835468124154516197078265791942787441311678615877225708198017879081626674301581596279608240952535640655148632247183899983344595425368561363380999652003965400209758167140882965120695783084599986050328210621466363153876011782689236284873171859871224472225912346364254193370990802748987828712866130751500315409150528348495873631134591794734930287376151839773270681878636800264185564504132039425036258862264582115501901747296413320025979951042310783290698261765967716823673674511960850994805117345029243230421826535287263008582142990778786064006193190381438737098989478261283823516016196201338303502004213619437634062517175624213556355767647224627732174562146932454334087376679482232247106424738081835793872042321262442051093294977774004058849982427352352943663121854511894432083614677402919530844084625410379418200784181376018462377532709428194479569728231503921893805563192827062588524627481059398120978579438578866971280564907227441926166145303080390080711148439678341696241944467355235732457123602116577882905947325036265262066278803448050749328656530162620420603881577960689682459534891944855801690939402462138542597704327491223789606579617219286269132573252194857584573504095268743097639576072213756153707528672896919662631846670781974251436675953713084018037924833205115639843568251651650134148749396597612303984433765298505728550274927233496830358151441715877561693570570433818568900205553657354536604413844165672621343001199592931067861329827463099907422455012022873650552169538470872394964593454000283002574696322471377048652073281566528214828759405691137768249120133344279863424524991648597953805441450818559946325242537065228771297658523468717189327434324031271643914524650717629079026711197617195143343616279231733918510069432593353661639039853843061798140044882733487314197291987223277813532190811776407056057344503999186667732820064417914090305772252488777926039455459520257154405630811714521568018217335434511950357937952529904237190425828633099010921644388656071368467925167166189167528672969568967585129070482639073373266378259865127189449918230049362797274894260403250074027669210694724092419009558253275217042959920329182537236215486749880092337439985645211418680344392817034170103678657278024670223109631169251413174022173328536859404313020099433770993358278945177090686823084278262127691314664728079449876933407623803270585988079161530253998265276016665130918281907378712753454265403064624950004096952978990451145762372185953345973439355457465732099580203453308618265620178678251807793695075264453654776097355662819196894315611919406619031081893810558754647695317790618239895315858389460862282789215827432519129473519360230224052725293713316384981027565032922905707677445996467157711944133921712019742625905263500588267686108680540623145158939772765311815287603189140314586900979285915684139578913990834297982034437345438420981490297749516641089867551193339101994227067501720806926574107018641774590087916059129354844500516605047502130999538259993935280156480444420780575726889260259942352249355041982930186938850211263683614463837832463870352534637792459399021015514534794719054024119848112246894609970755185743459291675677917775223749972348098188906298547094682195161998508618782838064546415336686267846790989398508811624390140555781282105569717954231920788629621744798224091942630807115408790916629041683046891791511229994207714432811439887896922423514944836121698309538998738478810689565224669970090768327242712137562224114286743761876977029733804798875234591633308873968093941748640035969594559809071535500461327687721966175914389249599385248692600000456962696659077707187567816813107560873315811009505228652359218091416563546933562483504200050371035469793749987000367997144569504940480633907525273418380912194901364645956969264144727709696953714332694000381948131116303102882102685898673716994082420114437372927588299453360620713574951101210478687082099921304842280759371644414605148587379399147216448532208497852315328979841188486037460696470441585287306479843037532676111029417264316285180319313462963411033983228793050480770718632837425395317633368303454335988574281929880511822578270409411349880951521681827947000152696195551152973449896239175772793876142517794337772340573722035244705234433633440399650822743458483633457741964920176797045088972068223757868228291911474414602817670312793466115241492024023686719644327252848960184758366891763258135285112788108926336337782692925163765472598299859346872009433917413570931072107896071496764857833470408834651977696846901846244208897760199041440400967179686546616767323004768746411366805073724769763583001987658964078779915479130982074338465355255021096228613838411084197158784382088292356467237526324771626494878633167878358716932730956317348818226927642766467008405961582832448850637115880628240875645745266645644493389093060852240465034854989113724413154802293383597100621783022893644451762303202113970899127477028135041241841774033306545994436283293480068719185762383867383894757333361606854877253347198219554731033462870649569922947394572170447883602653059164983659525514502616913326495477989827675423429309587879392190189751677489842521155402076497680120972599137341149057455566187528011309800678214059325532991205039917521898600123270806635303169324040030383528155339658644419327024998189906122344863833936778386330219457317702020623795697541380348370880492363239416288287401540336565277468972648448451976096539399605313983830924238851153130313057665795942726394675399081553297192301337574992020929265474923702774614339199405189706287599073377594578048375403265678950772677115936860447164813499386022952123000599921860632146746235364000439460866240342068816250973553638853427524249074372947007176064887148219433027575213301373024104523842133487466114870835484814054572204983608120115608940863504747708021633355605950489006028634920219410591954080553944542940311303938859982393292841658611741941045459198890056314915105315568143948652975178629882947208249305031832929865685834534913254431273297179602957863421487426026982756507672588649875882996693506389411065170605474531830562479907904877600335486297559484951027680900410165710354437023273235630421084510031007170266283595971929562385765670282021646790588831834904030772659485948958478308489737164713716512979580800693512979047665679559749284202522526649268831237319767704734260299140219995795627534988070608227599593536722011607157947128541755436262315557481257065985097906496422714199432600925242866411247333752600012386486296686441398314284676420830145438713806808064379764048931686919588143296108045422459969156162027182965277999116153948627554725206742094521888133099946600610487235998550301456618426224610705416947244241524566461716277760427460093358572011027984742925845785693547283986866340106320704956957495782337800767945294858893504180042777117031950093542438025037666621092513663446135704465275384904646833914038376278540795867007580053576862947719245796644322367370541611852460371172148029216664550988809888539502720518162305406724045367224805264362488447620271176537573360317268595703727284992886376819952158040094938677652629012267618722943383507059440245663918349068500604182345061778783180239459477378413619904611134211173918126231260562049626714395602862036506805807533680374888210279824434722234240525221215510328523276031203304351195034480280259073643972313567115339771351043977376303253730001536078931749871622240786865301898551627055140992249244267701570516101147505976764236215400246364147546050299299870577736562233884235365468347582593182656244556729747857407394907401633697100159044568273783949645538439227824201819263500178674767464529862239882593500553827160372068453090616824671513430816743968325344306015425939925080391090940470788537083487266974461313212677843842559662986418400329270774946513262948393377686928845719526365314291646883322721718279926524615710548360894418772693143515333440515822076500583044857350603505261835277690199076717958665961013671774796255118886255949397433379989047333433603221643903240489138641150904395908756587848935344104838764663122729371007540187881981182153346014326590122025232159265542232395071605445210089539799215333619052121653255251194867206759358215706671286087912797028424572363962216164810948075662593415324902125642914683124718984237882456185070585404619590641293480624851054245135948111097033176551882039896046805866324333312134564306655702518524017452824281710980849664795218171215827997915749362392595459813316995610934138851973910996259236392014517199722136611049574716032292043390791173746800690670088553955739117666454451768575679551699093102793904691086826921623755050647523790307860759607843983093859055188399812793326420470787220326400487683348256798083602287790841600591963306200948995045731489204852434215910307434956562423436427531918891034579942704829538883906144279753268558800151883887045929620523666290207442667562754555714724212608841315869239386926161379173714207164908856005343080706674085718222687187238433394764707041044731220600042320359776479253548214047669091296876610824652376892027342148605229660749536388222497924233345212677413328189172502521614614317711978000596106250902651419307459391994982931712532535757114441912480733828254557869523106589418872482874847997294029347040216369202157600056861354800672778033408620615505776497127554673911709360982975844367818222292262647907397493068425777124757758125481480889150144382986116371433044202700695815554969759574974308756067028596842231562315564090522446374099944342416901933239096672742275342008861338251568330272740359985955112750830139725312533800548854196276788133008849495338962796844203993293801417016975937901907589492302929412317770638272752716231121327394309586146217869842923888598206787453543841612877003491947952615660942357538366047015600044945647542951422650953927885744497503397425145238305578872923787541202999350779173568421774697478305537359657204067350165383951022792285072436937296667258219849927314877367169026174178147661478907241225762449624820861509028839074056998376402242846005422333838593594603699491023035683518657696041933160018702950854104241043111744809650583573433294837609790305684427985523298895030887380197958829902007583746596784720719570004706586416679119997902816952569122663568599889487187715802223626919264965145247858196775626065323443160090632931561780963217435198921283550200902730967804881483259053017842320644294950493654073896407863415968922393898526942524950599770504127453800649266138841044654666264803699729668568624042718258139774853964275964223357170361615401743721746836338575749204415024022792392841501623239133504226076347825842293203794544944264946333624455841361149242039171376318970189857111839851288782557540694862434301168786060320260199710536786691174461557660409903431500192962324726171293767591459498192685094936601228497805528809739538937754703002682069212958017151806546626821600324847256329232944962749174147441970905025350821003586414839441205776773161579907274495492998866244859405753006834335736180620574344782642771990718596700802605334185744133484196875699500586761622796738577739442716088029420840532582954786452023447441213578707720526646049602303228438995766287529337460023912721378386931722413146391753556675711208464563976135332276605022294081265053504861734704866020800149246979757388602252142359313326888827591870585048204382510926491924279740195186288769982063030452381741291185138220004529589673122174082651950086078196603498002997049513337035220978380868636525125274625093701152286843903577859786363134256349762933620013426156008957619820110794885737933232761684926159697297920920613163152427509986923742849960553040834120494319279439507648019502592046646477563611052927769763774930510249857308534815709773066412943673297190116609108561467410114144256291867276502131132892497945017729478740154616808930211570873482783410538658025515453928862469482983239372603884291476576256904428077172762970256595799560299132766498029046890637695567811761041377884950268615203037881284924203386110074463446057364183617683957415659956480319532651489764542868986414352390163476897543266121386246457725596422626480826374164962910800113167530331717447751476846044401788588039389414739480449986767641180045516460260444333634857299189253816631808581488742296827801851125517183428363219755595717229257765677560652531899838310348928654623070044985258228587310640580015295068136377749570563465249114864958224324488861024299920427403598798974482648610068269495222831579565666552640143690853080553498998610617544394166864031423263506290109793942635222376350246613246525454479301263416023817082638936060414919946560829620128476496257831364466696920120750181508701988109521288291446594468761572441126378577756039026028384880338614308805113222625352236313624749138962035751634419414306953563041182519825913346547915125071910142468111917522519472165122501307134773489707097874521115217853557429002400128198153793656468512763303144112345189142160953741973080358336944710744061483867411874483353923796209872201167506796812078568258463645808991501053389140875915058233829619848424469859575573971944905181648790318845736251500719563132230097664142318192009424567915984660381192648682156748467527927520094458592416313858602575333407416901888795939991718901455457304847822037324608721762106818796188222046721206757115237200211284243906012329456671192684973089007872396878229293062876614024708879441006026134502120913008103271228051953488013508583660949638615695755062983567352551236889219093800188460997242289930107670008566008626471771919640638807930954813655590524691947730434976479935431850154833287433416423275806235934493367028106098420352528471907939674019953113220464160510287018684096640591731442929108486631744629857979877911072404472507003778434881855440289900472248757959559272311630029001835577229610322588913043433449575648263095482063020691641936300477960003246804644885833901967210754381038670069655689275831666716999760604132939908357195426200517643623405596883241510157512321090410614671820131250051235634441710753282237541469703832058893692559055497185037749690423479666599516201004760732035544916494288087461772320986122293649003485684435366795914102731909598845788140059913225977332186277472731992410199482217123853619247943647055524774007922676352351763931191916233531805221924139609357917436561692801938172973452391587860251805758027072258900423190890727556477029013684366622075023073406104735738678488222255199941223715444718371647909479468680817747993689297863704593096363217187119811806527730921646779671115882114419696737623932249451175882049049912864643851969363537019307673959212243447311531323898273389622783955700036448400852595783622090202622736809844950288244331557398967386642112221690892799404392579863453858820666468942738640986604373567529952840769123129295505316100389220564557722912242754688648255486164940346825072689456040135900803117433182360475785627083389962376014416672148304063252582832890358926204064434944966436109911485642023904493334019370859054442381418658223219296715998830414383467806531112954345420922574843103176138324444318040677995901521469255268249820504427466318598034132373823907439989939083388630778119700498197182605333533681425044105648301096914817635980128027774906126093259795364509130983280169093361485443923435942618109746014861581854859559216072787554502217978160579008899998901609470693798374923626990315651151193712439267248858978624707548935447648668332204212111949435580328227853938747650944814257095623984138608189675047419171198847066924576726582994011409854060079814807071424075812397235604103499140417275348516656285898239609205728850455159566931036502132803468831431845509193256715885872589457860297441060904180082002692194728474337278813665297404476903842251471884395338782825313284934955104660237233746206791809342109402836380063160880145451964193216562887664846540235207036191243650374162318469034932224504810046949588117877311636193713458884738376703925351587693734430851937128801680827694463762619148092112071756509203518644435996731807402580059077722902681499535940883226036872081501380372835981412914880721530151627057917969954745783074080161682323015895823790057109037201910143575273227362953977828560320575510061975093349124343814007482393991589370750507495296844890754186829544318332448335675759403072512302114572649161438467535580103169668089275953515580987217215359758523893706391498122526451249220327927047749303341914361316581924017735948557056315858741634925665619258330551810353552846943011287645564793816996620946882924567882418799849887524770742798930766168392916201919238389072208207734251854131410923858066379191834849271296169136331401821580753345224523466101563099461761077528987315272176939518749372474138912390903068487500914232236900450131337022708576474391664077660287076243113541710823055006675829326524379321827625629131552189957128812789170576028031436201553345252982587042076951860612257081772120692926124557502627253638373301228482733212967379203603049446007616255466836331425464660304664066102542326149618060145803445742260833313301405140715849444693746491376672869346999367343838239785559739086704580843310620453754945096090502580040224010649081466254796428245378137553247768276061380935679337424125634782479612083588509718116278103026666761724721937516759492231917848089052934885169034976956134600646106702185640852139761058062597120045335465040975793694533992921293500252866824327087866281091631831446998296027573557583751210600162086597397306728884855271951329631761838794657618504112858410134918619477945607952071247686567422950729807406050781473519141705399198962748617134473659462234268216940866122923627541427524741842543973446365958037526155220519718519925546777572713430532125529390289575135485473250556005543479465020469197899003704694824410874520728640952291833509006784724192677523907229183605484078523306923679538888550641433749613528356879107607476609111678941809827004798931965874330475099062409675210569923087405851684805445951726730784267094878684753690954536532664570844954560662200520241502680665352640736991904325619549355274887680221990327623108952952622823299431152863133538490834608314808012503831963183287695500022797760290055992599467198433655833576691832601340894477502931289770384758436892987372018188567811819253654185767969521177351857598637730145766939298174561712313699782873287413804495861075084548726216192590156032906358541725898813560347158870298539550170191715023700771927362115619127351688166620257239179602515320606810743757076632576185955762340029300103175011975902269764730543810891002819759810716277715921544173244230282726944029390972423630774354673554628826525884746755126235714882276218668351330239415093197741662458405523801088444450720991951240049567613954122848620056636746271963696037816378981920940492541833100787784800083226382051068115024482599252340743276839991004699433980665870231655453328220681013237035409037346836860100765368395514176262507584533693488505311114146971804112662099291626273510595945155894788557060003746799132102972574188993271551338259574546172259399034847730562774335569393022654109463216546495957842205332017264029706725577642359635077534833889119063401233752191187474006107350571508606778470345255666434756714809508192751119816011186531681184842701971906368775101221861096935114178994495681506674911554852665082281511659299352683252469236726023868848784898935575631167902093527601843675360955022329570009931959254555150606877038627390889385600363444921262966143058014576023697551905498103179151936690766183642554145708323074297552930000739827137594769598579937638935843512994995334861294906799305366967786044302839953904045480399000293234860621397487187601730201664244039813206931399825789516797182876415733661113806673747792841164377216151228409747162674938405177007986078840436880897680392024885344983344956041427478028376077535456516171215892216817334012773130358652238234092259884958672784565821134520460443118717162772701677223943796341049901217342784592395122704898075204452188478450788900180807930271248868692411824562750836234221689736516263451677517344151614599514087054105720162157466658677151667855814777003189103198888440227340244594710425473197870363282497536659326679138636044304839689311561784638335623536799849718835893987164729290545110063452797748002038076329711430875815729211225862892480260478585918148611470923410659657784166056937870559216719272520598736469712685693543505806031819843875514106464963195184689593614339034306384850310952650392842521949348788425859075476162457908507739453944590792441274943598149520851271608173118754330129218257784149199009839468749802651589087462017879016378168971029098181533449340398407290232928583885707308093303462606487067198922996271637435979191901533461681756416308882561800125126059309795176543734557095373918501828648311400979561226580571334579775776146015924531747972429186556990854730075019518518731211828080211718629568202922529378855214673295044889313931499363530670469074259550290885366789700839365256254787541621798855185540707038271092571492164059658157621514131191367105013737202720933831518582985926076077588465728776198902522118705727135487939194275119844387530829220288223446998206611746787018216529506134621958345034944637422775531238209188200126756972810350067193681323805497952531380004510670809006488931063845961269486878922203445124030854307947466189294384152386668448892018535777342140119987679911254209514306307920990829771519339897285911946859807339764258089443319593932228191001783358283435179974345943349406141997775140220778994951165580948728123796728071077894842364766799855687840315353407942253657506510478372099404471446165656929959645780422689514369509316374464992162849474164403991134577392878727842406706145137877959909073007435819962299859921992753625971418476997512655141923971603511243443166271430392118882122108223385681137633846164132089162248467737547487536914327374668506653098040684697661510370850251355495445248373345861822237218095794610532514742752820816177424496933000930066651714443310696843355831602673462136786717776235542283686477599027608366963126594801952217523289805731998101738033228186727511762425784529375154033379434914277060902419960063384056752227247875391568506848649858180540709124876098683760014339593413665003512370123388336986754585815079585921456576950056024754474413324173107668875769136052756257789170519508406165698799880931140910300980185561550817914898271674230757716277531810269580057973088762395052465660637828388046432429069748013204014262245663649534725586040884025332349498925692103757235196960476824863962820954276125391870676136007374280460118957050675210444663375787106361715411908912671213489701101410219403087491083814427520300336165878830251594124232195466609306331834833803296301986756998299775851896352792182194234179519975658098517600669383880598509210299874526941000705566233518004153607258134419522614371301575046047541797055503025133219069597695633193752890798459618928039586546140678051540023549634178934647883283734848740564004064533397074351422437896390161644530661632847806124692247760899651814931214490635281424832673829046255077229859270155203000830658557083168301724718539435652377584130779523763713471172782083703154958925058352769954632359498194505187201784591007226850991350026292779713273928597572385213199982240834766022266275554268299300124307081862180598957905125970913567301463619003604778123027296547152374277762874194096498881362647954500680343161216906023879537487522071708010533666816345981790804822897236950433429894739661588957595677290011932093994343626469219408288454782197766700971104208662234933284716204443569746100201112883219478800673804554755364326923535477365107874994139525299394511062070914509040255900264233914082741379573184917109033055528819753655372853324147821596414864492825023366870583339218511511105364319858108952060060028666386993518037538959263687037126825722685818291219604332731498280126029074947436634781731827116471499914790028929596290480630212089474470506345840533875739956827662292564240115769834915877437142746962236994796447939611381038317713086584339001021848762343618093386668803609063097130837618764841834525198127310950203853875781525810756584287724040821911167126141569233222196076976816579144500400577104635614649701965953894751114721227176840494437729201335373619422645928553622388447477648327651480718598366271214187958785012236479024972769082521246086808517384784481314772969954353069881024610147593728385561455378419616951562957030287031791270910512934599758425733541918078316811992238420849541250688143724891805636458950073218004275656318822549175401754144358516234778447950830602296827838774873801011413976427484479898409328608214970946377324254001523807276984330507204063945147040299846992737556435599209913489188351555359381767283421145224926930220101038762926146484185522232465362879401215089822124457949319056958674534372702372311931632474548175014171389898125538461674838336297312384600215669041450484527820036042990419081087233152094622882946504281076017857591341957293456372877755677022662446560481712763978129732448582679168103500017455997261807210241185247811567608487135783328344530359089686410972943246340871123902816254466253745242230218954043408896641329536570019361292710791404802569880826836763130478973450569486630789288185619219995632217852118383118050064779305828426323770272007658688512476702649404893638100438290863946462836571734490599966661668224894644428345324572880019849533653084652935235637856394839527170093835073307604042137935120448772432476954141594033949210967959966604153182113626083339786639976529023333075667979217074093273807868578382214559940909125093520831565803769621806665500873710976093964095696402392424716748794148649289769408201994320022876406643029636934984999147169975793702703123556316999149897618646870464068252975693151403999547300050849768125819592357568031181794314190169410347866339107634062158184917206336845137573467026973883568814470153480566315510939979191399553760133943908217550891893781266860503541382120951530917888576243058068117086371775699786895408317979688555624908734345008804174050104720422817505915818748955798284732233138462037130612505513944992611177249208370284356800017909644541611451680310098706250095331510444202063608760021882902237703292159941426759684442214368936011215460798311412491261558412156329627646224156167016861509495747066536267414984294615013029391926359160257638515741698735462835457897732487523485419800306469570656283136274943397608067328711187475034907155971303422906056647745469820237042170338301752236970291870918295520062148815814292216229878623965109541055181365236057274333601893991629979021310365996603989471380530727859899810146356696824419601808120817280535958895516211370964670959104147468147257142710920625453235877932443823430068513995966939230794943280432633100910852577786273752709517311113080156046631256623705039808827826953205503274384909825564953104399902884256599968860099239933782901558796344441677284269780264902158734611352193013821767408492859723763586850954912894128741380711685985632528186015889227581962580935976249712625247611332299182623645038438212334327376213527133529052718681588461756220435583237458884843707906182886223600759114842043860632255328266876558862883293404859494964230710417358339846306354746853176178705178385508322080655945679477230661522432826613019638507120162074015207631303912893437134222313951142263548120999488137795494208981402428027473018590202110817212310532661387854349038599708574242469390944899054674442352601390708442314081917297229875212929068751181413448807751082387604767064467717279916332353825389249186622109760939021352418308699155214865254111859320970056200177467344650442494481485511852764078250544412327119302701570725329266856112870603153417302010715700096114811749836588129156807035875326764211340023083573312872749315972576360956228324987566487853517223999044245378347242017757132683184581357335046739976586166113167295582958778743943100731684068147834277929355684165942249770801995484238911391858798394551097193190757506011737147557419277832940828597516383088879032243115979943757812142127467196669285594774354431632789843898084031747952102078925764272365968591263023007990306943589936472560549302495901048902627967575695824306167314865637402917108522000051861676095601270038281027458735318555470259753237188085025087124394676330542126894720935043876722663882342718914345286790990633014347981780731410069793459015679961778885515736234779673092405641364941334076610885463303374354216286708630890680415325486325589095294474834281296584986503212043174582331360580601832036933430919730713382472098294633495794578269239127086675898068722785906316847188943615933365141279775055748723958756658315232729873406200973809432530722393331147970869585032032320942133852078568063237748607496372772254241266836659383236351513960097799657564388995440506636487703276382440122207695297144376760654386814423833661549588374224713365414257410690915953640273138002768715774494257822227783225922630636584850177871346230436509067599906784989659981188833425987962533777822669317454430196528647220031062827443780482861891476734012476753653343664984151953069501917802887951216332949598026383463690775825505160009896570529418289093166301961217234141311073216491764065079871742057591961580528302630762917797182233204607005611078421157638355456811880301897285913001683986307988407857300148617393837675322398239838716396367632175203839361792650192719097718906535950796687376195332200307992427127511091851330550614429875401038077844634825169037782182041225773509823097696927273441616486444731550251413745476813616183483010545285629668924852120591378522319089173078269006426373038349789500029355487768357035133018162007240525953391143094945956829258325599450222709172070225489959556602005560088149526980307053254233776665733435553866404796550537911180221533662357294288192912921650777992158257611152761459196493817739546177657185648676745401908143193345985239845174421194746562829951186227845026177454975273621313911879700900927264705286742181298685945622252445816656885147255547893726356455134483354713491959804412541721971889584426383985931023631373102156632829499202597465450251098076864993207465743807131495757715084104099872685046265724101561732149809624915082740924955185562532764392217776627512074569265223583003916095310134016540157503717027868142259588016453132073701435590790489574016552356354025588810213286045614856007790088006606968168455083729494047360809795709168841598183309055583277509227223011948520574163996976173691842514692393699013837556093852802828877414438188329624266165570388846143949182267502154435314749148148507126241404736783264835666803596220297432167629907918768546341522812686266913587738083211549802758304058355256047073487026202524070907907390359534007227933805168555385709936239346384292469394087766382762383772326445240460308098684704438878703160827816793222664682196319436867391760281325277212896050687520534853202100748942276979852452373381880910803964668987312765244970034505333673236157783343381790820191912785025875523652578388384631923089041491978110862169949033042120239381561447404611457539011786875040624373980702370722068576894221673582034543494735119984856205786132887891347343597814576226149760167928339692352494701049997441742528449694049649033403145032479577828017253993772595148237455718806919846970498911623300484822505401599719008058445103977635110045742299849982703555920359659879037529439843368059822505691255282002396175520500261245649606830446384006388160848696370902060203215201754265755209735954501481600247468129143928634459826340413437146337596563439893561984618813772408394825294979387054817210681899315472323632827724001155563374448677429485598703302357676981434033175762096374323857238982531291683506185014510846562388406426495758143694369609371513730147592915784195061273871068531925525169474675591369113318840358848375478315904947466762030684664819302937571680430027838152724286994348447214826602841209969384023486870276909387720908324765531635479699182891832777629640224113221897729837102388468390253152774370191801776639064505044895654567321898533596231450577490253524321675147788512369860119093832473580816502724724796490089125864646536750880401275176204520291488472469220199432816975493705640494325240551230821006903713016154841176286470222973031523288317236539650440896725190844110153923057814306957693741277075638945957859941614864850627475901813288057365539207435964175543466041950222707149167276621927413085841583955784812571547027838167328674136858766262071573005082676548977739570647926964525213554833215594110346248107486772760697476135118727355409844802833262243878595125121006845900625046265829787588908388904752808204907558092295430739532403412720453302102858897891758721179631095869745646680792496438139275222651938247323896372691408050562600772380576222305904314262000329762133696767499966870953205680055542975926631770032988290380002682468653714165250922500287955860645215755796266340722196423831110305700925660429573626399446924832021148719403097506683783356812465046556267555407231402934748632649246847613572818806836497468508799736672062380892842041017574179552033475600633237006072675442028193927934701118135128925358779537999805187492308759828196979338851791372733300375273660617289224235114669938283303402323931269503072796993140156022733773398665011554004901449534456989167579294886329743079332835940612568883724665699093289012347036251316354610890550179126242398864845346048219727104416883469633714060035337779472500706671489551795538142495921557784904942250791744170152659942686798292040540803385027590179364446824579879759937341531531581299377411103327354443703943676409177143882930038200876908942535493538022585394135879290606416327478108400810344660345679058672033112358842496397437999761651055936617571693793223903495170031959958983843229110861140081865296539626649097452332099700221300935526502104923036680485130054516677006823815293810503779978047804336231189599545977181083496599302069196710801879306855434233100668309401219500078047912309864352520373475083627504260177674245007904130106794585362545495788026822274474365777506954452340029560051452337005145528781446520525473742307312936916954106973532469947388278604885064192012234200804217007378721321930940576742212486876774023453789906090516964752156832300991260811735394203290073805893588965150880798499344503775557591830300341257024006836759846490445966941677532210432552603026840361096201211974038353309822124309708927497630873416542534015871729129948194433846463149279381529686827353951786357426254179851362414439169277141715673320719114601018761822641607016438020176465324843031148364468471344544659605088614962266303222262123274121190520828143142976327816983359457416213807829531080689011675591254749499010353771273519566454802924461327021636068137690968663854506129341208594746749877270002397334853613244195788789558576722765901964462251680006503468187743182013153612320333100662866251749185902826971031466042193365357017363655497636122187915879609882989883959488444402413801741394605055649080486521520926259685971394296543123015787617992333059486994223992815642954681713984308396619453563765665814780118502446166379262429814137606854649836470362897877060288444939202444833314936256121314567072224496464413210809025552244536317340080809730891137873260462263998281930784129870264630406741749447449441074587721592461507300690406102506427816864965062427409780726932546545819141518146714760269335036303396738750380062027604315770050847274036181323000120707680814222336423851433271244628867629065255364468303766344075529525496607717889927690081902102214711625955274088125646048808632833047264607130330589443060789445204759786073535859337091730404491674084336645388636309646524630140938397020715190026251741172067315842820578507044401786869432027712395122325521466444273875936150692083834153361842988449075043850481237181252036985487635677871460736027180616746203140124095550102400453046958400051258236969455973752106960076496710475931512074516151713646554096900997414685402876372110730181329466140888408407481586887520016851272656210289189192348171990273077197757318942532522819932267823100596981635689748071002376153692105585618892205536246797578735261540073485069429724903941407105540544029413519257846454857939510075259721787484910148464393687077773327936546979789281148145962570549905810055934203745540867380783897262608539544798838254842409135387108388471925901468986074107954434571518369408505419571173328324159086163007267808698205328838734434165738155417361449329519929884300919475167105650427153683024121599011958428232299507230352202726028950754378761638547259042638887768509612524800812496584552822439636684272083761793361530872846583877181142948513628296021524655102332727788381888746190565041286404524791893944897318624478038704271141300419621400060947535812086256423373632328965826621830903453835357063683920525282772439966396722168991171730440577512495984472605990661355671008326551605919440664194069531285847259724853644721202948700902125512738777754951550860016203397163980767866653804054763721763434405755422993645100717864361165346774428891749831972870830549130289435273257712998218622603706346435311824710398823588985571015831679830786883558968909856961107511275710630465122062611540970115738948506041577168701077371072006368379201652122505598053936842697206827479618332692829137508003611633585472123151541325701217184377947717419285978291439012360320753748175424427678484216844229626766197779883838746031391535178675612976130918693501880823000398801095939166365812427188133979907445951359469323287175158816276428255588508460398071570882689996116360288059093214894917600237362086455336938584310476791383523216600930295244325685386193660327304352956860342627393276312921753858332663661771668533850131487843443438626310146482202447602980087369715946626148824183089742659191722946724751262191646023513496257920765466942432433023806173310028663665108016539208354107618994096589951953864772980956154626697105957551625208199298272258173530210404391926560282195969441440255308176212093500849631185281531181857998863976630606425027379471334158365944276412165649736233732635339963718377251823473049289788020050185094193613296963036616224847635341063551846193557272749047003372058640960977485736419403670793761779988039582385114581787940398366496292942527227989407219371246724174644950742175457898398626591815850236151136404524633880865138381260206574566672503423688208626946455268164355410424925600569374242477769696833782209511676614535729982907868032522976206198262014413651322411115328287782706721209189177777375275195368994714530093128295919659977246206911474210682035377133657090270301797550507406179193821621262670845551393901039494707516597953858975348842349045455514277217023380742809934655131850046389783145055998692088756258662810414647229875720440537758428695674073723328569250882647001336982043027057748717297184196985658129555338994367449199633348625600774241197906682946742630250997165494746157138612922419537739997979774860575281094865783074972854275623784111909573204924496470185541949054100908419910897751270847979960674837463904826665030562090192058727667973019555253360433685664294436287742540876986935319403520214256076804705024172134484428076519564889323885926531444344598701145898371593602933848596862789806365857445611025210867022274780636842716087889699264014046409447692184967151794523823494914303345251545814231524005754077561169262944588356311409118501831663370464265094828639744283622779477390151168444435937402486091317699577198875091790869272089825059073917948838203320768790045930856043894285299798928913689401943901330881291521470558744269383685754879846235077898477336605793859029591578013708518856248174836925185731492975645033005370343839067153251500196044226358567461674740508802030162605284800212783820126637653631226346572774219663777881929135528088940767488158154520989541046137555944582424095847610978473728004173504596754414127382451263664744470437686521056470554717645612801740215680627637608558376090248574358765475032880475142951775438926953047582216584826131531138963312682754431645954822902737986403293903299557963522054574850946759065000237154128300000375700163901131930666278465801001076556049437549099526218695402566744730266058013716104490334744436101013547179714979077481760160129162912594574050233018698295417143827620671077873931369019312405047481206456295416006737190800162770407425170506458601124809184490851037944822954244849753814513805686472072027195857622337875938716955800586248066336937325740147658982732774207045023562032042166967437839126337129718014578011967095645438179240655879854373511270087806297540240496491708402132418930508630162541702939669889300937751685467185511548838317673819764914481700945655423013540165544977697750612987962322747325505813766164114052829742815230213077658000690108948687374691473284241458299131422201476248883824588466274079447097026043197373742563112609846641542030441568454213855816595789599971526316602781444703796474546173177059444155896096206655487021825130960804987596560335369655636972417740555746286796611755013564277981002681584748544081750251127621936225445662439991544051964154191138156730327860400851715166844539913080432574144817470738827381662447526356291575855488325914273901975312705684523986062580575333313048848084337813829275331104949281448785261375903611392710485792804520966714000524450629973116157053223921295843101281369453652458726532514271795372078462059689635970084394994584756966005152097578281077778054335194340051268447621137034208070305376020699475360827697288781233219673020035110471717663775778250309218120457993548722688519842866457880715417957055834176903370637783392608969101460420941700009065135012238070298622804072094093922817804561835699507105308014294225877742704176969075077967821666471237459251623836990596307327546018456658260967146746819087045592814322345614488259048511833725812839379004611610516432865378865304180001523541857432083274137973368324443250062052927862048155211043132617002592921063611005156772653420253146397671392223703858416698417901895669151120185943369923634329539522051921312440125732239010950583962413629072273281355680049169135775661228398179398296444737418054020932713138297264822205000762757364843615234269961038107819063202817917418871302049239592585547894795872463022898733441758805148554040106588998208226818905427986327399717113101435131958312708997284672172024677734211942642897644204077183426159127367224492596642134197375627373135310259046460460012292049303559145790637805680719141868717312636854681233761723453926229512296293051273085129158942375038438678721958056911015246018331337891209739587499725183168608662994917386724758267864825993652695213496307527613603722847665215996652106738620537946917445651138711104259028802594230079217637489241401703345089888427776633003666188861483893985311204120758905942985505013297509483578194188636816929870734263530683195601712927933940934642665557365375903793053817562841356804388044862817352712620104182006603854557189660189840878502136334407630553433894629496919847106024828703681330467662214182951795847665871038822758508892945578092021543454379455206351668326074893775122713086958438664585820584491671265934601813024710085879611850694618956486778736585947304365809587957193462319800338107416989210051183205895355576747256754542886704582567774862203346287094756512699061199684704139393532825072411035674610722202561571008342447228300331717644082517724547200261422844256064047378510201411520717695173344865590541991451627467989526577375249928167235641219542351933966455676315996254025748266639696737882891218183006868135166606569054270920370173218798653244336670719105153502295987510494235498947764143508626089828308667016914988846837413185563693859520985529403574453437192218307027531733734077700651176611868578791755411888402685195297925578391366252607845088522929348532694289332097094055133025778324196524724680399311463383539023165904208523453342502277868222733243956045792043627396985766948787815421545871226392562986693409463907879374374293737795490049719287623066476381259182330166598245710636936201458712330711439388442633707322185193954407712667541944367565450452784349857288291689261704761289046977860651801218746440268798140713013302651453988518649288488374125303120465630155087949846505168655377511449399350885107683864619026476650687938241018059479950735267594941874594024576114114481347236534066057921360122692991597865141153207103868834614231297104224677022258920866992864249859193508624637563146872288479391065045768496583404492878623629636196042477163485246821316163075901380211187410012999378892988880717099043169041382622514684534185083042831400024842798140510386124645080415658066160441572179630690129939484719133472623152312727058536744491858763814538484527741042594285839391194181259081521164983010067459852657576827479853755887850258356032459387479965145999245928626507809883925712264014406731007581055414782506256558520394415394864613409513921499637678920823662847979043535802145688408604730139183720111692121181180227326760357662887129307118953836566669483247921932798090895478778682728841490042504954721539933545243115386225239983727657577763899683487722076069624733871331888619819465564423985531111154096209758724501208230585998887505705928060021598611147437757974611911624590167909463272175687814637799336922509842214643041048022671333114869948324844896015233228653318074827259329858254412546766941910192137187892108002410848710772511341528125436868897849010897341747908625288220888041831523184832446638887614555084805121231277409781081585531752717496778492676712359896085923910904397497924298337437195755878882155308349737261784885600894973799910347123388560668940737815752209583076976744141968696626209020330993431003593420843319561595547358075991850691331767208302801583426026199758103369700755125755541295948018630397586228118015128118648696561326850246946620643948846432646595670851337509643107594241365665668408036201541131841568583711303445001543700463186103720584786761137546588128537989746389275785553163964744265782486987893367866198081303750701375304147591228539385047134332088083359036180423425314283982494620626020410805133969704594662974893442672704936516506341281705922862676556915226661816634168774667830062094161873195842211338732361218313220979959028100359501111995465736821043310275941125629122122163937013748707554900499551145140191691244186676310311360974627315787784325170287175132322080782285058809236519003653762219270012700825348625619533299860095295199738841462848418689050138694004464297149480470649036914370577973575694660656341196670167145875847601403880863351057286598680574299477776266543353275760368932391180847870948670245151778086688912601894443974111218774283529507600582568756516001735765129334035553163117770112819716201505420079200389574819611713549611414759341501319235601345750083158918883920965087925612937099783144497914029971076810217307046194696685497159441593498275635201532736902686678876053573539979453293345208626816719133891466590845122156957729500651918355734365976798837568312566911667570239166918817570834172353989771068389268362851450566857212358610624110291197542219413667299434689025058602013475968898523093074549062863452870241079173075103913426157772335942850681774462705524489881701229929448091326708889802764079223387204248106452100418048859810793288460416218787074247403677689288040084686120505110096594243612199501806819792741731961600434959600718889835700756818991460103083279957500704777946703549286057915455186719829924360777154711138725903531595084447183199617503620617201582226656835711608366161324352935312691788792406309066992203254591671687956505318474049978807625801992796217192127734804845157424986996911273365271277518375934110167277687173632157787974783744613949307630789133742199972958566514371207779822616011448827485913804454013253074746049770659512387701841583643708329407523677403213349743732614108915607722120733044828408130584328303429799595627188012648397406608330899368558856751989996940081308316545409447610513118618653731648696553630333922511673317279539860985666291197588390528339789958786384164278402876655429809214974258959309614988634119306459609874598798348664647679572865331909514121345382198214223651421343601411690902069490375500966885559266145651574014251016935858384882932344497776439511366424002049627959594673172681736020571749315292290561589622819228764426654253113873460193198347415069908675849495374086415815416136939387731142861304931997382158810684621196390927905094157722377050450727425097069734466280103243110344636394704525150996901736728944223387201965616591038333630322793123023494122811416931902493659288968284976121184757193893802246373257128327937314433407761953949298852617648811539206589621207279879907450516651685230629056079763706745062162884313786246296645145741482804511368016079261118390144924128297516909087871162552892373658652449648824764127621624036137441252866834302290363519019254599653791558274252762545304037616574336632316528686557383346466090827750800877566046496968822172779042478770619872527668181090381349668930706615023605606190885097663785156189389525028305591146001395703337056091558611664631836193939833459538235267191034485590190600240679082713901331439890832627141369376359673375034063843509040353239817603370120794855088825038827548900592425379532206221904466309188658948070071251245194386624924516144274246164501046318726636797078722480146332553992084940791019016946999797478882024084924112692592139005393775126090700900725407452253679914750067025889849946748782093510955120111347468312798078193218249778405585308667446285553506836787351315090394519471304080414369851396128539593521932856380601106789101884801942019746820770167666053048981728681159152209799478403926002235011226795981682534250844947893013629103564904289798083913400824962260559381030811951438097424408994795750625758763517499217829554550154753997648851669861785286835728045113812836817345396004633308716787928449777353970763136134163955186729321965671517489565226955980079759995952147479419316916151941431235107945171151746652177690372910318825179568204540449824249266946808424665043117086020982904038670856755852194783636565007399498590275491749878465715136585293824599508796117573833375031680418829489996681546612551351270256721287126309621622849261507908261256731165201153563132504124055078928706599425853401352702867009758484345530779165679668272821118566573500993730579241564233391387942144681831834210059628602674158211345914225002781613116379513172700164140950081804728361324973940071905531504939952358597442680422379219942394494027631652946749226651012753276269575330908685166996694152161881180661411293315971050984943575634431820270178548894915663953225446045970303846708845436439985764742257151018454358728606326085511541623328285009936679282287581712460014737246257829944845704046036683654110915298956333332693439294561853039973633575939013821614485135752339341256451398299166936624957305254879737727114277403834214507213773252082622049212914354581677931490986394058531182372530883965700558700152916359718751363103929290752383261959542063556354371630523597639137319022142838490917843312738597126050647925772913545840518092727478791873507593745300859007390149356742789533191590255283889253928195660441386903084451746084295742340107903650687591937236144517766369383512638570439257598979971249889759780358835188404397401943909354703957207217201968754537261291568767060155042210428149288795313773148934836402898122078016580431346981890923725612010898965601061344901705442588319628905002192964380805881773921929592413375772033795870122932388578905191579586962313582582612161429952525961070539865579714824199096887363701912130113310042755222447132514873428841792183727976982966010612336469175015477689157609890002119195063020821838231906525628021442386011181906746984054255966098208083678440832180712560845645609817390660270463581561381039289110877595911574583362825420407925741510785774647188372490146819643437506393812579232630617052497262910815492551104203601266456828915022118592169184769449856950557740651337027657361898856840812471595848062571645615686913817363173750755824979390379283221478459561950978442826066661459475335827915139366369774927158672802650949585899719746025701336174475398910182571737889370738014235351562858575460954366635044139597573849276196059909928526389514831568727968037708770883448036767368386780893049732147578227963904669856728747218289601905049562714613470222303144479211065939760099529946267433094550587822406061906676590640388094760507683624528998046072116740072361506275523429630763668227381059712449848858173520771082309487432262474909458515414902227331670413440705022281141311123022297386160411194272466934605614640351096381059071586312618364286843896004947308310264470809351752723712586479388278376542613314663007910283619514055637263481184749067061863059870662940066724479014279719847653051799698430136564226427553942378896361815584489055650643192594582893905445413767690159424907266495837190292486294350679771012635411524691841792919093379918042137608364200451492441694393467829303452689897989214654488341899632479150438403863613157677720768807660688552407362518567414535681129713662255276615474734426965177643416325371025124745386372645646190465665353198207986125725676695807049388359884805269644626128841510671200628634673955078658081456174075923944050501429265995267604899117476624419989682126158845402675523725588535113921134369415847371715889207665933890513625812840979982720304340561027061722263344698918422080638675063869564377804285725219539575627478307399651888017827980953746079566671208033355016350749248727617082930967008559558552205840731001686730058621477285917157869807984135304924471822426523761670284122249752589117487677379104346505669810899607710320232283135980636769587893102040664745502066128411184505436337320610614624686772621905753670146230051773707915649397168910627524663787569947443031783059063439010891655926219177313327529928389894909449758871541835159044257267747054450410894019666302973042753596526856685214061080532989021743893732860937713457879619711405034273845555765473028641682235885541889449642763203477986732116054779193889086509876217826911212573664755276377163835276883202818266690710806781454405693847057517706099250273320868788834899417668707138821469265173696144614345783102588924085460338390229330152570210423406059535772453601187505627576360850488378391607801129098924048755135853656786847269378951764458226829692123338583527709517247322848577229848727409466538568487719226723199733798188270082309571377032294431820287858585778988420176738703665125668492505654522173129478285038352291764848887961298382293980051569306440957890072527600886468244232400733720243300338609236016281376593405088332999431824844136046042777268893155734278658511556798578491971120007713147827465557198671044188002669863588318652854794756400838469228744650332835555637560357842062493117756234025382449969196659109874279693184069250712081354991895329143664806910977622804560857221390828987579118011383836683829051013657479033720001752864044268469764685745606560426618041904908770486166785221316587847418093291287212876625060732767474380724026242222997629437132987739763072517915812122043653177926007462517188142008337084023024371282800392949575649027577945053659770581193002064318448006267108879160880164484524418458013745429421259269131849046453535959435244862711361151761609436268086114377252759547426551154443604327161732717409422425286255579335609851869695662522940856899534667901742982044266969173339706395288419626442107603881731328341680900062769472439694134682019629301220296279304976727220613486397081062361808039151351413368071482102031333642301127639789381589263167728537074905395477518836081785774677908459167474911959121244007479660385626316525568392723171540454337380467732297389205227238459016264498391117140596098933573616835266512598392909556627192859528847958317462582084171816158679351643144653378803366522418386706876930711374496981340810320832870313968892152235634857200849704143554448122654760092503929539504623486175913956555924741330581036978794962496365408233634821628271157597166874998608344746809125601957797949715720037678921400031020488482304055554993162901484592987124005908301554934337322034664960928905724502294933891612855480771952206321470036004468907700046711466611492131311667454846522026342569830063020875405221073985172148655514402866001020015880543314791126070933259240830212995497889677590282477340824110572729292706996456094164403123877481641959291422790502360341706418356983055272021544319776586100171532777024281724768066988486902501909461551641772974951446379309151854280056959629150555478331729288235651211840604126068635389984674864021137368389781094959497935112121278575182172421549935151132354536369909786064412276780309356012816347607983378091696915694632969406881752255035564799345462288272605967742461859089345355987417714021624486150022387234366245721394974593658088795153549742854994598655144825178345411495553907268192337812074591541715846658959224190939720676809054943222369231439996275054379384934053713108526569986514467554296612749237171267957450583859160413677439731773824448886311781526298054918399320019229082228580241168572805648945804576133885190826506203420829376228968116105992016893107367416156771279695800611878322262506362902614343669607643429870704838022027379140559516186409940581906650213920224576117928260235863830839461454748918073826225182151110320864444357216191725968203593717522618254200106997798430789608459302067749259301591018830559627555347753803565663698761813047469586457565710569920193030285161035804782119156436097721103031291391841540980774726546971793630952427369509608538692360627295416589950041703182299330545140230944515128787184234018981724752003431789590715226094411317234217430882793860728687989682991668328086851793170292939051094213393151581317325604831582772280749445717258983842684997485993859587088229575192970042599558559118321851676713457089062921886245402402552171068581457860998710369887885357880963500669716643602887674281083865529909788828112453863578974853318901909357456340710755825649197348524604114952130428561077929928452066635035087124778193341504479937422607124368400838597531219485094664747018710964803634871572938655806693226511372372634592155658171273810767315609579389763688136880802030558338922854541082059113217450725008124532515121154548877109285781504108626622670894518227555767951336321592039444604797284615058181319657386776347357587736990507828233511765872455008378353505133728675792274995588556751875488197240626659181316577071070709368750539498939868771225438922357866169984980069516943946491049013387900379560766733754060867486921440946307586814678928107667594870997049818055671685643540244298776387101925931559824954369847777227802857640766601076156233972129478484407265160007280543313906817484820724567504471127025131603890122165835644896610954591948240424539607838454602025451226937860244484078454985765548254847843616515215368445356068344720943722053605885516828262125943942825348975483511997645649637224842944623818365537797975742044546423752955444087289805533733908013929221679481582831153228951718449429803814122861619424427750803557628412846358638646545756663512319377079388827379374966944881579473721816422675154728557339703825512565734182017335157863381267668390992884683417173070705678774864351603475385624824382543827899529509429841903127950020707453582321561432774374955804398724502097272339257780947559822571710245083409510485472537429382894126432333341096892201535701202471045777719612436232753806782240263745536313808685689686312068392328125736898961506195977300096570278976101148566461769183107557175311852583564837453372664842312545787984123131510410319319731784262632692695815368525901742807836674382130970685506478948761546101473478234587697208576924940151661613573511858432400817995670108999330562033982450616414682863925035735570065744988335497486791564308115235620582726240537011895390059051341269011648899980354514432864093662036120884706501554865134776555179897998636616574674005446123547294879224734144516893569506503349826793237457871098004743710981652614810187884914283381966534643778802709568176670109462515864457792925335690220228575844201857829271119868655592543535186990673012727203823619971718502131940374864011540664060521036142239843550618807142567459436595003298095793480139360029605827258759104699389163704570367960217557895415174070394383555123780618963729371170313608102111858154405684992053768681786381845327441902616448827061229236315699015057640706524915678240625562812916923685197418075023166029079650688584090575746086667794926671483759343264365634025760950480241441931588596419968770876277360792765423146875219229879035800522477667284987763703453486273471410129604561909616274309610928724682367668499770550988667364826644009407227137989567004606645152251818525988285035438918060884616891736607430211979825441462722195638347264954904275184334735877409061600443306157463050724455362513672399254131022556422242876765147962169589163912747242863724485289338695805557918731476003478018182616193193344204322264651498143643929495876122245371271605922798928349198359079140300659495038430540530028067405908061304471480398893231474700033325196712792650803636775292653580527241375446213743873568529805424620677788473484071418610248949668595710988000934495497636995695394026813010068045032750897935809757942076435077387914188549055767090915916815150666171973973659576902259029755491739783782809714028721953406209299820692053770796118551634510568931282038901840543631246746086817810281813186175926294631181523599279793357915355846647691062329691858619116143805404876105047922672645521750112815848476800888258877587227713911919386719578424751582729258533806915676556320134868510800462496522317137064875596795883774178016327016535827812999385159519058717600177995885001555998994917599964971280113575047928820673125876017891968816399924755695992487357211210260372049076236552468862850369986784963341594914328316985783148040107795532069705779188293454599342298042706930010325886694863250915761806181724160547832956360946647968444206217986254379488313018674838334267998267159111399188497473224724713099950590254121419194239459860998702481105391454650838024751230988117045308564386165212616264109117035832334329013738341867175442677908712337873941874994225216990145124008496625037899530987484475625285891197028407972983017345099032921504651263322251435420977299789939262467347992520648311298957795553267722777984851584844154745024689912899886739668229691124938766677507469315285694240813704645791528637460394325928531870336976289333446697658126547078427727216717884603225035145680382113511462651025138438576097460094986553974969405200556506875762434639766983681111953472642722999847998325053193022398449844878196230445932640208493722835246765733437754764789451365774333163077186044069577735580926501985196827779922454822563823524525029682078761685003957333266355103698453831333683265447031836077000788615919402030716246514579743708255042596267101896161122414364868668276274114141189006131928404202975981356938344807996930948934241223358334738712390386499282731997818405551187829503803553157787806787364770838357557340468122886828978757412483486552564120331178292925943071980374146474026247807107314268246778468195385495245962082203505546375471579228771636347513257062615599431564813966033014281411734261874276942623797242884001977679541345161756800447550988594632829278998152358179802945748325391410235720322210707201564505250892427618839310874940955505159801085739266723087935631834295239677029868809034065386595092860539591816442398925757639486785945685511719061929014136890548259844411324078199634149632139408760675181120175555087016631799731259598412881311442488772214113349345210600767661196682046487201350461839646919068500955210077253296931888722697944010448095461558642598533755515961764028961716602354229602569262815827445680838392736144173251565782843785301362518094229589811483817875631846847528396793512096936216935687729593631329214307420080938013887717032538057304671229933185292242835811192186904281512254763369060785886437173683084451373571841759857878071836258159280826890571295152253897140686093710584932751253639701071344510668396316410014155395887071934324089849093596817229839344525715475436904911017336834714640484561898854647148499350263135558543708226613904099445878820820714678448828067701323972041865571604611395336580799764255757332553504491795479392638625539362228451888314952177217058596427753093532906650191181207817159436865205870010091784105964351398011093132061833571489774784608614972990952201400319170869188562906598232356172011933142349557457382986672044290774755120678959469773067086946388998748329325047632579060079003685337720345418491981963440535520952052223151762109100421260284714016851485669740120394053004177366957230038471368797014464523647022664532429108912104732156068637284658357956033341837994520806049172478693139310122325980876175755056124942004803943701498035881474812135707565775268151589799024767398216936634804804903075370554453015284328875875897079983566216112320561939539885828624058468547937106420197420515184445802289325599238111426163073385449210385501136569815744925248401357338434670976156112947222538681686619302501015390535779775460401594055611702619768928535691657293259743297706844395579055922451061203676383713648725377162984038297154388591408037173935998385460108241333151371560779629093048161725447320564915485623002731147829908771458392607374492092454099899799864996365264319517701983499944938700973210589156386427901429487871985714448058270074620918022598069529713435204091093986467932109464782618399560838415085490619334755187321175843489141134713139117960310368159342827438471378239739555628645066488252564239610853973375518271704634584160167666320740634486846921404576709738467968171914685213299253946822726632233542357945516365957002261885432028535379372055254423636689154826148527269785130274103944414962914345417202021260547075739717176818177885244984364430306665273266859051800235876251410494582722691856101054257076981161981439106842785312518575273361925249328949340890696248849882366764045364831538929757468277165032835166555307038581668893731480253959878068629264755375006338840428774263285474897140690066990622183398845843727667664087874039813866614402541045077455530863047282239663977742813679888831359987044821867132237403776126518877473369770229512570458902739145469481828144825263183463528180557359647243421817139242205258678235998274269334194065454984700267331410223581659308403830744351810457105574394474301703825397748614440736009813079986573788965805093000399112046892285714748851089273972724202808056233304895016876756910830359579862911079008041494789620728753084476514494496061536803655515622785810409023418582724731638581993645446368249167648997211863154103589822159565506112853050308122835980762898582987769084488494157441859258247859460993803213436461468692373803761954605589932406881671265808457111991604817091531982788432822687384622233425416435343854876738415473335086538801993025442613835984600724994638474396048370864959748973118076353306129853159791118311442207430710806875108331792905629740525374953431011594415196221918546815647995800557556016685995684337801816546351130443052359026006469322582970947840764225676434779700020190045923665491006618398275749472404943942997673998934560053932199465874126822549194882569758188124947903749266455135049837077829794857237849365982006532734834527989541175018381624865621110924324507055489688764987251521508031490218516731298518144848729206044905971780127009039624950528785434364280272245137881209143499866295335121865620879080011134365866862461679194742122964624266945274134584229892884810057308569145069428552134132048345285283862615801412406026823687533899726346034493199251724757081846611017653482119368573494326432334109311067072021807490352031380021029025569122505759474274083538773144617150018064115562174799273600984798027241789784032725608476956700771222094939850653467583722390953123764393311610858467439856162988033586060984824777434327906414417791144882776785274793477016600774759653612953421948139297744125534249012924376955314105267406576337832400512064362181732395818793567441149308333187754846830060315709151217604829888494289379094612577337661400399008556182611802380709481652876301628191281105833789777127706894312819670525147129003652533544627109589268741364110607424070921956088489216756618993407423431727291897174263587568739879414332451935246927104352478489627086076945354376096851160577532445876078473252261209572646945324643434611460839571347471671722316537103411950660784875882615333429720412783195547013448809992471016032509813264403223538921163820477095196285657751796063603387046384582498605276812300482733633709550965104737132025496969791434443848973159869400042934679911356083780392786941228138092493216706937084816378641321465978604769396317121215148980897249242160392864594309021351656175964680467338158364217461757735258973931953486098876401034445592841731191169941581554190340418153358712322104816997549291361592714681858817298743103066000506848485405867389166745498201276491591738320794145191948547565728692423103427445558530052106278346875554978805162857205418612494647154641206130348857561342412409798539629242269509351737284831780933915294779018820003795826758553835919796279636053580642410075806272918994019428416919971660108435910861007502889724035774968637120082734459934915957365934806917360517415831008545866984347411595843270369908102286612870609578121694714050189100988264078306422832672613397136031757514428977229293477224630344361001586606195393674186864039923974639013456436355774204301096390484767567410294664262901815223725976423609769952705374209550921873693263826555310093927880347455396609198830125554002090907947462917302355305846790231232582430480459041264128413880445649555918924341892546799662746017169024435074634532168413140946732958644559951744491575972942121102174059082018325732077351641082588744747671803633573562037526023321607388671229479504358352742494814169069336955219914294305757176225663147955502373414723245460505304556442845638294574476015459492544201161236116980377508557476711925930585463621323280692981554538762260966480150002219715983246814650073668861899972464841629763323627882229239355760313116816032076761186663210574786208882454555839874146581046875601038079110160832145641170362665598572155698542007796702438267368998562909108790025637943782796341240973959025861063927567205521157552377127209963515907726421319830145375740182707398504947645274651753389547416569214118842165532402427062263364196964383122851966767960318324481447437892180175771568316540706645710786846954992118871719065475792763717604403280700232004884955996774687231323141673170822905608589812272198924291083946992479242009619015302001922568761773450602633898947301226323535770905026161674434455047381921711389664287740408716049295147007813018401326161633429856712185714120136781671242396001155416489732116432248719550749292922839116551727801011703929608365034281779868849184105951917529096694024530645533712398377069341743489685475916951716520792871204781711770239054976487318253759540220680988003756644337680378619231374046160904736688909422390823432452065154344109554388252925669816149689417280819520742463872135227187023127554402791479552885146481113806873253806710513672778831628723131308115742076275263939294481527982964231157535234728491418824202363689161952864309262911198296141616624273360451488766792513138601706066359049533261882056731287666441138613980659067552262388945627722807260241033310942786456372962513135489571429761630931413350579493785936296476080219764330797630205122130098039101857323028028028750608082937045458282745589965143563291489543901874993424475258971577531979885574870859299016623511687681770180306747008047218153075387625089270413340519847937094073899185923218441954811156914842704038018372119435041767625512920991797793916106489637312395678802692107633712200328473360224169995198421252860607428728437457194766593926329927041925528279128312373803148373503126931670237887994459389543993139108293621400200026514514535037671824392259361663844420110657277106882835358554120832939904010152992911934974786353039525889163368267399381718987622665793014311261489660188733879194782190314503200044349761193293430680526978587107511079307925901060636926712109799472172122610540019633943575912834692998902735481838333741749837382599635034261967168673789178120702092853812845075879707349373735779480278840678247933466934000860179241356035304069910295496609206132086680668029396551289148086665802493811095504167581761401923713306964786094830701327398490097815565198073992577263256308410747221794708437461734326866393054925897964454106252156666052031519209529290165983858095238434223390973375554162418244866062871367688622157084941967270126422168918512936914637327783889428889963620750244410047023254319081266721328975198860559699718263472150339268747481204076032348977466189312354968586313052027545463442806029875405410548689411425513909773082855029943935621433135733667975778169956256612004234433614821707549452738593810741240266714356505215062733375269485393327593701509408539610250764197369981758035416738806010009072543039895272138310158849205330291185536534881899798029594597835018198532355150017367704680583638542694285552501760287229696366859000402133023800311391118318774726866671075071089272026083559133132992328231055458830336183503425004316049209009450564804886646122033924653228376000563373059309177028318534287489684008178990224244250907151512894217541633830272272132637478528092532191319910114634000733995847224502949470535487881789983760138598618726027904389493266410921484742773395973905120766554220971992888463639351891182833266623344597109851705687078716046812561996028965577309406395017248247283853460695510477538981563558890231668574520858024068806807305304236754163556729571661780209849254638078942699423639865181753999711930706596246156658021185661714042988737554042993240339870805933980331520941624688615396594469790892156045832820173120425899432665489130784416993208163170048203069403333864682842588546695015221224332945516633208238561257294581625481778111666266962752580065060034156726856683553227154619260471729232105732699828873393546943685464008068641176896736376070634570139232562297737806823548528318463858097003139622289929553454848140271921356878405862346893980833069472017504127758540142551838047363617635838951607088305596178419628872975948260685751261912327151993018780179650563152331199522887887303422792525019586449424655652242487714980659758737589539961564797592740655597370849455107259518180489997962002287403713362195509178701906338837622559408973665958295225398829081006486510680723322998712737191991950868723899040000769385969998841219595120821567415617790062822288095803344960918141017338345755137172103132825246872757847378767491092041667937171560699750740616531547460827374237189128070718760793087083753378415490337910329904748561013401275134150778462431755193573564103558836318113856321640883778371181493627438270324734344873354717456189439484452840071677880672905417847386567796143080941800333917559601717202009929957071333665023930327548673563880646264526432088403249855194084996444240664464652218697650831786866905993715403139328545961506925089688965561543512904925102853605324386136085584045491015005619242645963708965910909064428362713588122657947195696382263923222330501255347570527559118223820480294929348538055769168395586158562531361667585857968108034386778456813163418210812617824543907825122643786371837244687392918290901241961286499099258052363032629600330657030305199524703871063340145154372570798918991197112401429624298522460019213873923372033166657572623346424503176019120131587173981717467232066570326338087626768755597248213802008474345196939802241021834404033234919138401952726921063034160924258162921417959449661397192655882863372548747728297071945588735034749700982008742672675666981636101217704270356299083675516930140048679592529829662735422025400350024492853310193162814468184330480566983010501653038300376673255120255698218235645143007035382790376989244162684008889948179782840100086661971485743184698171842190227044550824640694592991286025886013984339938731181070090599404755161209294168194279552125793600369663027506174203432415704156987655706875488338445104804227215551891657495214709196701245260152354624626688359714629576865545327193433840023534863738152850046179689220111950528916426923578122924887690680847633222030582574424681175323021594295449198443006858108223014505594206945620096915179496489549353664806546091926685153333956330987452377114329481408561820696897734056673418768423193265328272628851953829098237689200616546187733813101195101184708714977303331089227423245652232559046586278947189016745354394461914069991057793008070860454749037431333715693749262143625773446179942350180645556498783569300989917434361947719223675189909914790445267795517701075845210380332126773665573892132049773765510115385919866386055211566560459195128427679687521909560145512017665365360262880747100121607367409249807604822619427092417022843829327646954964958525905111688716649240831340862974080673255583602542657540524150535840223779574973452663477723007548259178054920435945745458350608422738887847927656537882063227188207740261162435692399097771114137540003491098093988971359100627838798570875135549256284235658632516977132167710862725430429825205643546122509443064798436707681096986777691121728705057989168041792915250148812855632775254546219835645444616560871856403612081621224175934298150919397915039829385746323610756325799152534443643625567835893167481178688171927598789030062808541428688944695978930490378544637260997827179668779062455230314164633731128150940721454702202767767519411873686919578739112305214983499713524806548451145729901804379418093042095049308992355578225347710023205358739642393298723552256949536433466241200777461478569364944763672684132977993850193982969911622017099798960711676266393679337450315152211569494622922409739169783760517133497562762067610825063275034352554718281580724615371822770880608323025903276894493967030736567586240746747507685494314926884298457278468017101383302040658021283694347729241069261818852021551265305711021431015847202846586103265628377766765852046397696199955223882919193775996997310817623428251385660772123925466697056202370736605593114316196522041134522004488030444524064520676439861327726204422919488309266364535956006278219928557114718715859837442449205344177081860279045991668770611133517412794251861024419724272317467514912927512498126081142996650279997160935690237607618002651915549409755981093882036107739069088267206676614717173442366561643566498902337940365504491240795184311947446246750043468354576897960465680404891331924951986968007142446106196725531060862957515455666448762498117255031254946771192739730729612878223986122095169419447250705031516756167166166218748019969905684416033224703413547267146297890321139456579062926760170197964875708200921929652776985978360654328972104602164894329271305565679899978867323832573837118859051760664742441012437283078324685900410362301951712193381837023295347304407345954871726474174309145072900741462734258024027068830827770070860781642222905598763633224753494728743006737563990330058201079752679962627662748372776555182459890123215965305390291553665407298607231687527734207999349320084183530024810378584940476320949466008472560445247908097369974265271921721753547815086091986342741178156931927516195012139437921931766610960417586319366434931262944622699088864363696140627627756551395780214815262682600713726751617271935629963356562227610858924579781596734362232464040118392762243313975405025107713344091877374580918664227039746975073334672051299579544130159773340224886187972014682116038883460744921395623367898515258613450530709052334102108121428730130773840850872505568286289408919074032371608300130361738458031405028029764529773897933146671351874171247041557713874976842958420208433350508623457750149571657036387535833839300601349877140289299179977226594332098694953627866401564889348327123821629466104966225846451908405341745483693116537530914000306596992145354004302813251331201831471234208996029374900784979387062744569495840921813857944482296579998088110353880195816887788916879411130994963897281301756761069521878049214667104922285408887178194550221973827940073746153709584883787340550201537642309653891310482278783505530003427156080597211727964437630620900823933783786731211762727358480012130949831281123752096422342208531482584387010394114638202397585032887733588404172821239835977439691888890976498771276907814421839094365604420406530726906429628349988994208976002185458764834443429449062498996037850430419224897583038749852153043413981551397454439558262933048770408985231766915728976827695709354576160044163280811626055219389093089109896317237876865838410108790701738281211815461479322627476335352318467652792087721711513911393594345795386273365381263328190433083231559888647322535828855064082585902849005941318560047685828280799336762730720261763594730125697084980418204296084088403203562022578725247058960634658140596230087093311207334636186984949220048762495010364305176086526798302258595016278374999109847176615314444729682596701771473099637513433323571257008213464344625704141828026276985789006397185285746895020876913590978267694134116683298285679858952430911871623413861851713472834472534473587665855344022397526855783644521623868042932292641368573387993814670926954139601669465231584977912920176344422035964514079966494399192072903420935310738604082347096477089467186899988117467829202775532118171427532565920371396621505336879132427509886363939300821290805099618915340619675061873059758716199360780445856179383549738930844496182973346207072376141774110032842212720914796459028265270141252167240916445396194822773921947121814804486053353936849128768396775445426811487702811614390926029819381641891362465167442643858270800951808627020610265319029256383426266121083783650594926669597476175322310500944116509456549538154571947296104765336332013557792901434416585782280412801705457620816011822947236449089806926813678801326017390365579971805450292347567813304332644104009297670598317393386117847495397971801602799789758836547392172654066588775756520085566774061347857683597100740754206274582047480271636000344323995243586565961710825956842705652739606925592150045969551440687362589222323109237295431306017359150696030555679274219196460741314022932084134973411736696295010756222089016756826106148166370480377827446442604992107442357737444786037610790009818739237449492445587330033732439131817036597196027804671001479615613307246001360397894439374498235526903808371900391761752647626976497978789927725507566903758382806134865945804779821696086872781928549203307083919203619296430760494371353284192499589693825331077010399575411485876220455074794310304367841121247624853466046107136290186482032602374665541945739646538158475219879066976137010328658825493271865709787260508805774278922241708745430009345070999437634721589982055671680501332650692861609004416760978850328633166464768828309882562139246103167088347598069561006553100413994753902431834206516922562299601814606246025738417437672158768203434842698114230722823803961849164284797666696854734775657676273907408375592149310738042525872332714518570813622768862316896662370935083032668687919261670495040296164196426568648465048351471591422990607636347760441157040068468276562367160939363660342456576180146507353960177383470692362931457348840063349777302991184489888785894954641738486417797520564300513851256254872358959379076496289743135317893628707812379170566386782261742207572988327654738329285685409413433319919081152027324597370166582009280895438987566818329014407542061336736475313819821483835265067331563359037399378851558159056361393788177781512729075986219189506543743760898769269010910517779840001422683104713429940533130868904803476769364806569600575935226014317631190114199343461091228378477115420820049008832076312474011339124125045928147778202684776391699094945368613839529107658762682868312844140475494124785802984690694467249039203604602329706745494118507166464613814554780591437141649593386214695159789099175455126079263316721021730759503890793451202762868890716598868634180896968423644887138256318714451356523768545063550050155734687388850964632826337602807739717721445610385627824222703295107073064027275893457908338789839154204235865981964140967421166288882330871220286783475312569728115057606673712527245103010813799335464540363206704506702229301521704122950205500183513838718252296698673122204117076223667950282258454216339543976207166301859788474004220331795770930571159363670832860532202142887523552661872083047570064278569155185349635619502967089621572011210309646843783316145999086690116008646739518472787291268146708847257048118596454105281431724795582042116423553302661490270929957024663961035796663061205913844294330300721898349866149209205571942451252906124738460799805100005402890860979102837499489727839115580486544769432116736476286681670496518903382444305856757152115333163011824286627250144520942827754759624309092296732037884284930380629527315767107963507331471539266007049338788946659092812357365885991943057754615101518761976062759995645158881225123445189540228185129767442533703974558785173932983856038738228869845800038637775116602689000015085147378633534920300831353222410172810001591276823477699426339799568913439283868898714420763409187735623143570790664475694207749442964911465584998285274154582063721316220826315052191783286293092951125888627533655303760808768355414977780868722572484278293855476897563811068988585961931958500347894906905450040048344989577233488155294623923036359283760498173429429919234397381828497752242719336783445371400882930863872770140984158528745584076796279577017618952610984395210121981362870786400431794334287056739494867773450254678751513669657745578800254011461639539637872705222328604930154386588445782299672870395254621509395288476215963157878552943328617331829671566472536414464164997694269736345165221268952397942776006836885385905236958114616451019531533284552455539189556142142639894354805126854814560318410397276341781785905732716711799900895741117413826476729788184201810029581443048113252387801977231866532200700832813824986697994555376332934548345149504694934341871617465616842510782553940129883315595565136311122953773324383649909359439568305161205471581597838202584772270211062365752082451496073889076194041622558447864769261681550657165228001755776170360080857791786158172089052075093530754172499670970194757738859193374514292776343758681501963167691459445996800574983505329477704070201732255753707530890038413701552620481911781261663195709705983781867144078461860306600703551703361134832349100396440529210629283667979398501469569574972650624881202877064049094658807042539345530408559383299396299412432892495135791073178033478499259503902757743491921339286421111540508137494198447299968116275145233834678988085636549552041082304914392426734686298611815271621968900671828575009326969478444050927317941880317838329640907321206712592764066458616599156204789126325079202329018209510395105041160796881760853631328158358858671972262817408033961866069283077077045498767760288001105117070070471524742612203847292053947245199101422636805899157539874092157298409916296277237700251261212859563861383376297051910585205067705957410078709294663690649244773386143686039843427398073631631050472065055327274135131606933342124045248839451950391505733539453555985671124530597505655436082794495591033420667023469652584808102802494756983351783973366358750442806518271806051626630312932035888698466553242576099080059025290571091488895275700329168321939312702896586095149680243275102064179271823937507479346645885328826228130055430291887769293073199311074899738261096732311670050361900252734029985291717680281817355248873176806578296250151995851867771352070534109140595159781597208721742925474353994363056087108912492041848439408864877272391093527222800038917915278842896084517182449123950567234357109411559139655124083907672012789535850405592447912441502095901784431269082780198700523017510605090111132251042535430781964403344266655911179423614227675500312217740394266733904108897104682053917650344820207037717998899591836247306062262424971487107591329425874533397052400140698327676632052562918307259578006463313508844787174310130226371314406046308383083885385990715145701159190104909809497059783082803292327693853809540676629006468107199433305854475983479355386408562075991506744031371591674133944266063169788933599639355634082331881457169178140531165546242079177386200454770526537859309433143794860926339749574354939552059069605112251402678115990955729376691241312672584201569590701505312240183853732220060176617168818889676698649227885490934044202227184091712327992275937314450392604693678241732779111858539442320471644924439893659049661796729859323418168659541657618498167278321960671431401594393258481779627324682573357388288520396694893378018015501407208426034170790924353841056179974424032701994205202075221618998522077447812778497981921049834655494957902198760991151401965929470922055763991941100531194625928211827593222515456442100216872359435112566478110003201923035335878552821564389779863716915694334204447564582215545052273672992150912017188415199355796988672836850332224962115756327610126416614514330362777441914306529254414628946325741196244036885411998144847237350511877757785165270954286504932253566447540056018120078131449155804132458321453679180843125879478870863240474948521774411195591216424165012395150384942509344412445590183244172124834202398325053562027000324519268154659110989037413400442458441460309637790256535777271480132750124286512586010848430666274419075637218412706225273699392038025296592929023418311730432122559944703525577889171840622548947588173872342739198310111580761501634911199991264778298506528883650069967914888382169046269659408338750200786239017173627331677852141951557563143843642155220204646510048188443801887275594616468417080965639267544702214524939755069943689595503550754581229007631840903361812937407467896462343178239418169714715767301471581244383065982183490007157962244908626591058164790556937617367958417835074042111635164741982104911063613960859074420360038651435849504154305267466829516489769172262906719801011943105013133425565752422454459114958456329534130988919907244414452022274605513618714506924823233242824036344921664959006766903815383489856261163061557414434988627483221041413716874369639408368901905108238805367903123009599583030030929841422216175703410757745237957630372804091151777605967882608942941874074302122208235004871627975330151660903693560111874223506008988226334602235150700418889216644169207846902246556545375429264904822196048440683920620948186144912265865104527887666083885563336233545992922939970716828257073169672266327257626490585666015882130417625818202081212175203011162665820864427043396448693404336652523967848057296945800468291039604757665450651731250488163794275883235380079652210454572207820377601762133203706603675535561451030299815567302086562976683221950827987993366328241578579716685935200351398541746701084212658761943568103926467498684031253968511318519483782542113306296969777217803632188100303171677482673695013329552626115921202208376751413577837767431887691667245218904616025602339296292487991081289252128413400157885633291658757575098540161621638006227732223982643912627959653412415879458839413955064278384912299428854975578828235909555263893897100047297872439171931072560266635816675088696525859390448581437599456116586545472482577794965403060119361509539532768792902600773269446109789500760487407971634369667925303275070045094720539778077386504650285639716884051461756309466351791154471190111064603516240894273847464821116196920835975098422912150602468248971366575191156264796892691386731635117904696760071662944098260435877749839910384121667563772432673704866968612683803047771935650697899921367289101359820150715119811885881565154434250262675559626013398530787007574523745117685816242045302048228802955847941247064155904438846459798808864580863108894093524834270653285696223789493757495846334021915040739866391315677671874821361739987355330951879564464780446678626842192478575263058429512339979605817914686105867619251279540865564852959593247690241277695121655256956726404729995686697007140203479821747159783222595507867967376165201238289710531971467900553040931073045735321331471164346408323953643046020442202641362244475965108128587200596986216797422650102992906157015975832717485636254214032350095684343994754035777747721175361383486279689166513835122923091433563849411482179261192085147252369059767419586381690113813488698030954348639744110012196619033056625165760124041730020801688282529964477784719756593193348165554078917728986042033476983871185885326800930691712932557969460759861391091184874776038892315658544618664940059263904734308243926872995905940620476436635619330782424591430567495326526747863459612334395497927927645479705438613533026112915660886454043526116386542794547793371116529417283970744902070758741457233626627608354664427424735219449639375379161631188652292210488042309971484284233917933400159222340157132076180269583548184605341890547067905610134754624684150425470121986234842527860589756056487815743288474663676869395793208945852328693039992893559818426205223641522046555436195020773033852026014469452109958014268405208676056380488883028145216050762478464178432992984895218045144880063463989439566765722889629408498972195020616959664709152603896696175683121451097387561689711459840258865304139665833608469254534141311523086454655327773670478343481888478938488919634805755935646891281068022017825470670270354273941143626653936341544085904481755919183416018870241693531313618381993494521823257321884769609858271027972548067831085786126454579982374095931977393527377308687780085536183404245750356475258957931154076477027866253828756677925201544772283317923037424144686721142609634654564156046525788461508034393565153597001124397937271584860591942748063094419687025500021494744172066415766900703363544705325493561070213389923481656652418240766484725361090668431473156145725107326233732471647857145048517853982881119398609623479033343695528139042701473414128519442198362399177715037470336685919053452611286719943338618105269498217489426539073530676085332188823289911423548933961859571013410489947686809921153983996581533500894884791996606874897462774505230672957439377354582830722454221978067709108696155218887941883545937689013092361430255454505219198421421663892107780366821757530544774795905423911885530686574013206107724230588591983575519057753173012251867629153175291228150280768008696725890244963211906538224190833596561775070256578784150101814290559120095988444554201131008543428141226726388668467733620541236511112396565523988844507732428628633465797201725358760704498018379904782120606438776608048232253003425021539501046601487162268340667090738600866543691978380084661235059714417298386718346010322419807134363716968231399391990714700435912433549172551013270891538578381267103225287856059044937398960380545247528731318353070747881477989176825923522758395371505765070670676944646988328720751284615456639453299337747000301902324371288102471144466145427449870715648031008638221313533006118713221690685240597550648664843861304449407572515790983744140828753586041053972653917524276167576007221052745189582033127288349935520969388552339908126107428653598294164001181721674135626965340018329104796743984283622086804093330932909326861002522140489231356389371098015326529332828576609330899129524781137822714816851634560885804634489702163550320149170838565603173616710156799805851681636309191302839264880678569902472310242415208827729814291399743003134450333715752262372938518323000525579743694930813896388397510649870532555741677386511798578205234100389638676751449462307063290068796478061368950353443456813117502219157791220731866179929499776905005275947799269467747839074007960058044943649872400113192567586497335786767559024122373897498642084305147092207989053988419719871715401602824791899976864340028104688846491782244596671604717730020234390299515054857305796984450728734052789603638653585045622049114270493342066094499489230211960304932814003424436891541801179073622039888499252063316632715131892874321155243113262151591951024448126011922990679066265727409199826707946317978396784921745752106891789934721435178299522683235453212846493386027658556467548784587376910794466366339962191772754181093783458078451049718752326847017526252032352756371873339911962578498212346365157970487814453075680961939045046240742496182185575226015681684388615029433976393720363334289001642800703067239394444568861851573954386704752260504290983578809531693636957323735288882691240543009015974072480505689217721451136998076195957300902702382374982334903056010213646011535863356109928890617429166255321411210569288173284265935518161622007043902151126924314065891076926790215689992600326838992367965555954526520086618384630560012446151192848841637620654187111933885285789367157303884046994364403766198960654426671920690670606540257300590599843828471987649582643800370447907721094284110613908007550605538419732277910534407031427950583719662415543772396674486209260160887375823832829675672778444479381460269239837629973271801732166616021508601874975201560259097506276143465159030235986856099460228495097775012098552732147514307197561392952978293874884163295078766739942246515362243983156530371053850332188283565944272542682006816926286282722481872352710354455342820812257660069172699296001562908085774540048088065159194996266025010924476121592760716181704174811580098915554720918093700062694318153295140333770279427691029906196283415658063245035206695938511183047769010628822414453174284949207871905250275545486816919231173102840244832304983078656366627514399725404541291312022079276370065789846739380086538752914224998837644644022195239274557970339709496393920942034937629850367516970878038025400676209351427533296160069613131702429728714822954482305960835081373909386511303988098378533361247563026509095501217583161685201569440973159351778037393231452674889397756538184206032215610029803960787434760436441006734467562785278201683514790850038028236331888916000906165126481237389841368589097111497447954471719161798778551552316601888225064532953822630264250915455300827853306214991670310134738215527297530417613797218360685912415000210814961297906474885815879804900591004476547150282511310424484369312819232583107116603346907673317043456691198732726861569556986742960021895694159313771832580526850169544439770382450121936458148598256765380601889333616887784797949929600260819261989933319799898432958461333303936564797207682702555051779722125215693532126679344502641973129747166013323147484444042341994971924656370380349085303315349471731515488230917643128653484195749922597080893397101716037357901954395984245522520673489426277134529377673506174447768669690748092186406681905187686552462447629200969359151242393618940234722355692470392163343070192674127065001772938466991937900882058766501602311571965577595601410032523006481220545064627345473364779709785814863211816469712971333488841638559825782270566060964241055831747939877454105397546399673030995753342820397158928547724345505510274889499552405209383240273624817502321941733901213152748383252592228210592245991880770324690199113166394464950003526418203172391577685561910922526056784395848896262112177297129378595401688508463337495933732415837506723624292282396796339407253505692443682030629280537773908549807398410231442821768065435822343307412895201296939075790688794111492643629142382125714970405602199662019220688305525452532819930035678047719977781756965501760174133382778040446745540523258920259837423550621629053106542131499777507855740382462659190537275763250885761897954749483666617643747523596107460406235584804467208359121375797511352083538224359614640229786563868035927007840238361980979978374075021317837671937450798073440027119090974473333997236506157318783898315847240461345715395063233118577475813684276030725164989419329440761625245334089269184806936679249145956086845893377737074465411697788415649159884871194074548832043277024978694744868523202564301192745398825357739381034608446777874384607762349286186137700509703056556581287661064212152386883386350918295701878648156928223258728575869822883150454130826521432821811414581702009315045023284291562976962838992808847922021413558340768319363048466285191508707892046974209005620954660665989497261107030037136495377027705078917302345790969795411698956754717199012240729877026218974318398865896226678171932873672927953613224196991118980548472425566661165436419310855458535663066456472153195921558526137012892203639050475108295800629018970000031141957943390789508980975417371007477389755417833138632256520149880343879353101761939625858550818167180986810340435781653791442788186288808568838858320120273452456384209086190789369956841158418421019638274545660484382776038156067693780782271525610730577739903238530964337398660090266193143809562205450368379732250864772782204963347468607812643012376126592308176072714203440098366893261579854802784622258589498193052258524162051100143407049555205196187799670298523709429657072839134406153716327552249464861385006515263049884755900422071487488194778497737052434599113969359428741325326674261656650963166006572670099373358665038427848021966700096054425950100149689535764500491347081151448105985175073669410203190749737772805021958095617460099290508872660347791149031897201100981794388543239785650561143929506234342452095722218489660311087369021624812231029151779122815189560395864159038931283407245736474925744577139062530399652422095915137986495528900869017648705624593060534322718321735829678214555982400629927309213161395519477449362784456983138428674832349562807580699417533074177645202178038019965602699914636714238419490609579240392708701623308031341978488993806268871415207206970434978589931434621936420274678470208640768078477889239620585294544175465725298716440865407948807316473128218004011407646175293608550038341213407473908729845590018800325876360359629621973107631465902947098029194816233347869238272313856023405646303893965768093582307702344187289569866160544031936614798560139582521165538241950182138872994549086450103765773038534515901890288500983675581252459983113836647593623465554128778102417944385940452921037072827683331151633382328684546876541310442399201646976653402598291411688648067597072665468212676380445745079464455858988218240138809142489627095861359527084082283878307464212842886449171470053143757981718042845258709835924883316811306309012047390694343522425426581599243030849547520026174826265711177652065586193597280910922595659978698170713189985051319383488780002661552861182550959324761688513424412323164533213344563818150418230549256285901391881601466843629963947423364716559637947850040738332263547932381370497653060431192095048892750513618523442838533145907205152252666388012575682096915526540247286976405413810510563317271060235080614064579918311365160004052979523855380797415683484026108515534532329549286914136261970822577432791720438231671077942931435648054283894358981052510347349958702049002932377067005401506138123258531609533211510157060200599465242525449086280753446810284313046855109670177037819283382331463265399990460770576364354601726079179945536580842465210943178052049098822694199393719829816490920162033085707023825314939786571147918078972050589619954982703219778367614636871873517813602532689587134659157573028152042938229531227935538179826767855320536952964609855723927771061892338478035202625061950924260831472159515188978716850193920258166108010108661776743890846181346609080016463931259077231310848309987855320576939960817551264037754234804016163277040183531387258552709724694198168909002965950802896956811308002474881577000716233151896268979916791014607501720523757318552531872955672853276249071131625050656132525383790109243736166166990995360427117936863146903360619735939219799695327175878574890305259362916840016620750456770799888936456011567053165468214919924716335274870133159518332094356140398476574203274067307587550508961373811899535378266766460022101241163187501113908390710151262122024647927367713723218046629232283045090322125789833024539645465070069310841829171374361870112781431115647166557756710881305828850750280607034746298490500342189727986653428924321839462082245583307917965160577234820705460170829097513896418635725809222290802397035243864886512517724182734822347304157579108189053621020655811220816850550640189951025288356702522105597389688453061987472953231763033883958469450411237567303929599746821443171179195275246304531053849879590697694382384706143450431001880344900044549871070401951201405406040631535697600698298790118697622055769068933467517113795396311880283674536355210879017806061616715537043305537893282322035676480020778263195935770544385792960676444219017027925950493735048093863834758755090542627988751368161624175140576910595070925637889564114617089271047408418811254670979963353281388216253757180754982750820052896363996292618659589643476047539586791535343767471048590384947231584286473731985053544546799645579720788009661774699233474194344581910153119150066349572102797710613665660668821716392511666012291434308237707533989229937667633178947003613239063323091237368213077136503358314098672141859949807321780723123106384939961521643696122678332224733046928747445554698609819335913023612363039232070852613424599679560422270789960845125873267716027049312052206789938791069643566946396407649717089452475788482264292070068634445207250398289158201922729289258513749524291248213803730832687307451113284591427203532390659968077060262048995188531927320614456388668329182430180606759695267439582553247302932905244011043145755353852484988546819441713893205381778242505712693637469357327533360944027996354541622021632103255880460768821680439538055890888472902876912352968038221362829475728629119478900807909215725999867747409107458001918486997556814480230434000135753618727370398595860553754919313868524981041958617363255045395747744051908658999263933674558204134754698011046878038237098415364770717887462302370833226525006652910790364593358086608496283620105953177104095778630033350436875371700168958447695958176445490512232810361365696395507417223123096531672574180402685415364279453960514967682589846638051166230071178171073684316001461839092536800458247692225026911414284354451915476406295752862472835915652118765438329555238509210296472487254978887991202984666446643281819134084592700300712152299965663624659241526562421010553585243645735649251331827804332793859200052983217496921345773648057888119014444793540866628589966954080488126825546477794018756529286026998035053036074572986130002730162020416161791287731742751192905186781981153166097883091573796358015422585222755150606003497165779889168114761741506390543348394967474299925805287735166226937858359943243359306094173421995488859128403279537089851804842661115405812930287173933402459065092230384003401016205688917007823224530042130180779864918787809301168092701896727913627917172533987656340456052664480711908926394532542985726037614021015214470354416706037863517327409822345578225863067144286943032021028953306550771349762354918748801352497542040599629367325205443582425763742239134717687118519811513243935378854387660323520269468946503250722619591649708939736035202246510565253730827442637219863262772934002966067336960346985329850089679420494366206671120575615448294959481779289253134861553995174260581579775560593807972944098947257605428527386829622203364854384312538199868184572118892537265984837271412168940138234531901678153046225462879341089037296799281375426050752488316129378801629776514474032152070659200578713018705210530969894449491317129395246930195288101027550619874285671564657363780661686552981786648310591866296486542416379943853522134067499795687116660764296402095287133819183428813188284721402820777539541699470695994168901864066875719601109921919216589331991458125927941235357658258684402094618402060731084654913275444684891172530804471305815752788841704471120611159706576846867092800467103155473449194225839195096393874039223105983678703554276979757315780374625803066204740324760099379513557159124474677940924394434860619761326042865888404414524606389131159677963624374732111957324390069520361959278229435011596419044805459850435933728248267330962562867830936364283755005792743908305741277612328998902942971010372928166572525902928402125326091723988666561568920889637652618455490804870305536335046051624800625902991642606030964272399314912690038893703075251865367406780824549600906650264464944780771476073193944116663576808811461026242655202328188018321160251083060786783137562373271215579425538709030488902182847955463264711357474681359623375997963544486318727194039799330086603675113499032725205487100096430293391253801144861417819145078942900352425052515190227318121356682348442911576115637450968831682441158534028532233225957068959473780394708767157936548796773009036185442660050204747665005065661430898499280607394686923954623982133072097899477863509934138444260639586510497489066109443314519147630208948526686226405624067031748704737123725869424234595110719697906247488257893401804990923883013413876781875288811176213095810446488963017033159948323195569194193733486492347761316373662637043961091390147593465038525494326249249760003570467932855173935423804809402281654998744893821385294314765095175530325528114661414050188208619311743171773106640076318743087779661218495811399602672528345336057967994586161502131192658164160085300764992361205838692407849479425813845194965630487044382922548351619015490140621936138242806326689421176253520809203851898601377899629429072351912540512210604790970988834290778396759063973218780815829608877245385108734311739563504574848770003946506422164630661214513583951752776346006665730342027476056462691347959665065380518387109817076485767083256472244158753972504045872410543767731240516693142726861507922775422083400091971378564471662342985521176932687692589533331555576952184915275771440383137717876539820169637012882124027528816739178787079511024949746350553909614665779234486875923307602687048697839857384211047285970064138317569280845146850154741434646045772549498920750525775600647902721458466478260820219430277173435981241358806561285290143762582396668552437443170384087518160225918930619170617089785598930360178017627601554876846239893188169678900109682941214262141006923233669382284607311714395334980513103686023896765450497411294759994732856465995236360630970994334509349286559767454003357756531040007926902301110339435123315111133478296055195095998803001365832011167916947633450160289892731469849771056315122333818500369841663090850676288916436213331739750155984484028157972439822569353555005630367108009313483952865317567893339979382715035120688420466772438416211735144169998564410638715582780837632752079730522480392099849697515333106297039900358528461615081425826709400340998764300057499776474257823772032737089154412287365052023585452741291142879274705915904904338231659002402424026713024310549223113419546395326773727860322440801073645966291872069215757925632196606040968784452636310825686872548921661133947736946939968117619194547200557236634714360503343650899137556235978147825231254542384670678514319551208119023322080594165161517698376206931137567895154659004525173649783504733113751018700004769069710784326486734436918179422246755323365263140428121143841475745336007463409732863440023218591512793989769997964098577871477340682270196208315147015340428425554862367286803367346234725549026825501345340861778050738410638418503647915231961901526926275653837764835197206297231535925093576318392085116906812275650413043094065999224947034547927904641488055939683184736063319731449490690450081521025967602159302355839863779309886753346342633144573818857601193068613277406702387655839782708549483047437900902291538570378905334494302911282682606539257215775881173394086374149891404457544899589988206339613132978779891113639600499609517783173983140696286027679420428899513333435172312403626234274299434253195658918027064637753375389364709517140862642064283284408083761748547546488587895384808942194158963732830880271959975206854958493005256068198861778200536406052542374630595035486330295479582117445472156682774593965073944014418483247406506863043691313781183522534017283322540567003270574736634248583338651948901070739415932721587842686977387802737200260468479480925690518557024833777406089644130142912915133240925174963149637244768539440998133490239307685857691858500041192537979362231094932204252229547383737566094263249080286518744314831146370051694795312406605422260396629582611430957466828714196497460251409232768983309909703633426425232626495743033349320880330449893722169116730397213780207036521518839618112106933803314396011340861873729524485278853319693076737543020385785209403688585124704821977595611460754924092579777717914353901134876748360364806031048806665650119691894817783305171613763571657718637122008266562433812529352586802574325221675792790939701902269578034366460938855211982272223046523998242090662115435245999158986474525316296276226644642492523372332877731923037244757659338232396103272575896727182156084495881744468148168452596151664288941735758244841471686451463744370239044609294774737722990238371318373031105220178498798077162563148960039757865295957772499090719132287572160819836558021197950426505040595627020768493844643445247152328091251061583563598256073721083866400297506616626610575394002423563243330668745541027046845788673208304681734845475763627738701878262041344404575728416373815478465432070051185491053629114618777757788128191124327259252171487085808032192540632643064116616622259986473969005571051774823565144505374814172177062782315787478709503176700683491328888273846280968171000458045373153939325029866501395984012227364288176344997050394361611180627391698019068759581081612896551866768008832445712644697149771142466742219336463886433197843468220692076736268670808735013150346404753139422963923008061939859925864586750337956681807881756874650642205343939118707727695228667065740766310211857866217311742310374712281955853332642960960140719965050698808431745350865226250202133562113414456916855443256656686148850670830331342214878274574324979468290447962617171481179234944352196388028236711196587322759931845403230548078885940309599574523467667367504706827012495174481609089999058357505332594832893967542257348546274909448661324605059253758436253521787202856648777475329830964891257372192847482161029401947924911424345284479491428741086752845997969756580999793830663976936424423132639509427866549671734958418085525983105495271305038517094046940780018590906906388139738439564671902439542927652009320262846866538903374548989824619471533156946406965319649990841671800369500257377444275014188488604712454536530299183880897260260374742586934528525968791056475997971047188196493408359672064012412694028353309055093024556665950287082275916870427456308017316820197907452389849266089194971236105757847051018864525905929804685428596565690453929447846844137134257829903182939563344380481070258689923636718236575337511809726984245184229715009274946746496664022484642246277549703407389126209324419688767140009489230564009495999352267139731403329204079744652788361670844222984835745026817153451741887303334558062734602244622341794736999910252143838597314050430201630508301589122343256993562331478604671507988678819564808507903119092731187171688950343975017722645789400770262738503419873158616772795566650429986715197263698782157308194684866308508594826562659458640024970396053146669246256502702588437355584620542193644030898011044511535880719830681453502479114516402717059612448999713624255339197463898790084804113606101146037101018729892592781208994858814625560033957689687374580352518203847950274216692499373340364863712396451710904078816607499070163155839847601862270058480696991952058808918343287077090240858338482263141619811276177760603427946267990020254948897466694172957608098445204703356680604181511133727598645868720539013606585732873544218831817930924125621803631432131421410723831694914330710240903772384837798420590626922028518899382217248361730800274255732603938037225518342148322049806120613818052341960198697607094325918938003154596933803230919100428873908254614955239047114482339577462398526048723461990473822221271428147908620236163615372700789906126475012076818170006020745268865157014043708569783248577188563721618983251815020782713979034585689767779410296170288129551480222918868325883158741340264970359649325940208380134145949889066218761930865604713453243558568118409431249999499933006477702757182912757539184468966972721422238650226351189756567280142942412206543627695097401120441990848530786734525086859695777257409865854706646248946033004220075071871756125332387846586938261674110272684253571373819282368496056049871222619791527539952118973325932321667549980477623795818057858504917145507092012007885529314219012644775529941129057731134365600333523590271235455971639177794379314222647115296004755554903902652789194402913068040643007665443702496437205121920684682830296334643497397195643727268428367589678084210783111012990439085735076332029472710346765595191065516242312043289024738765036482374961500098220000366526619874589634703003056904570978039989988319051775401478109776065412705159814980644635271079968026463775814960231497738763038267997777786378009644928504363814231962510068404652198942790417484521357756699898910865966380555241046604682778278624960195189567328906797422649921433622905729710839119912286757605621862335601552755577921135967445737616564161574218607088485086216653028185830268967513363990977747601664548463540591467279366879772416206083654917164812227334260179823671268740973328846796660306990083343470151121521950139474460237976787229239130566154918962755394878386012301666618197784270897324969627220546933691949185468672144432598504447992958407591216861426979851775343057928465256166568191240700498361772064198744666756252624225894921284787781573715768386037059729404862364116805845321916719395110503843002437176869981461543239043250148503443765032863837810428123113298646869801735453875478217062308407712791659449802551206453498297059827662235998810579690690101620052592993670966543391473506462444061654313479747057204465485456360634898012849286657809812882855956472438039700545766559389439743367386529844002767641010790273066239416869362726245219214861328256314457404546753270222911314508625372837191203778595447361158447292449265912766891559347826740993466475003386878624905282311922261498195819959893883181320552861733585623471594572438169198596812295882588957465620928373838875235500977590236662082285168955100775799790578698720219185948165259658691212028199589213609638332812354451060366155675741526937695901511644426831802411291850803794215469979887302062474243824539484512846209273480862790630627153536222676952619814669376577536480446673712753153223798220838206016012113875468641798065001851499876728075708950944189107238318285610341017061088200036921855864658942552030366197754813042595794416972522138902359669852779754972714655378469004201350405054537338049685685881524917339760986199612917148603139345400876637057506417689788703192028129810257310310530691024955418811840876842582291579564595356602178620947914363104591785912025714228746395505133151236069215383785849972222029457390054883472178995390023620951428498621135928463421328890944328462788461521366265726080041719310802412894222656148901670169117569171366658707322403716118745186371035026859520580725255435520862422708940914707515685370134033089412530679927048659368813880373059604755181185440563184740532444275355283141805134645220530199889598103085077184682855370087992989676739554655571695168721357218940446722990848818102714129822202171984420124498632923231141827108276881831515015821336953549029108243559188187310670506099460955936994346630789420085163863761110360681314551568915046208532472343297396047876012997874949909265113868213736006645533393012914531838792397966530144005786632101749139428531564550298807020973222804049314467369136232140567627192584771775083076790675951123496012970760858249495687260341421270579606519310527050658494918701162142362619726907999533736928231519079280381381196070034109311310906743764926760055645451693129434502739242244500496023964242732102479629372843610833532970058431143993713148944402353219270316226928817033965788932001500459821926343565966322369478776255666236194719045583931123569564490517509789933951092082880412543818238421432786658812400663000459611327831889846445694091981626802282411652366257297512135597792412960248292134172932614918681134984139985006603978680379391929260730084407015548547092850275454440927643301845618182949203810285752410711496812027901674598624233877157665670565556934612523627694812494675579216594983552104285630813228999516709712485802053383564664044110923625819375107259765127528854229948438165057456698413883620259893597121743680296482409465757425639168409255146577091444820601150142541711076858692360465787452934393205861343649818432538150034096952625921087121368398781089957141077823749913359334152786676734065970634203997506275304302495602644677225076693896904762852874689335649080380467673356748123945801442920892441937421534324010509174854892274401938210329749071145585713408926636826530559772888470957897773079529540662537969627115236433740562945061603821910124400913934487046492634010402914138696331044277970391300470605865801988300351054290361330267059561278519492241701326518559028282020953890332532471616073413643063746521310135892249968004916081343899720263271570949730098957795082866213392974930303933921091569333571529560113402956751128896946897664353959457885554694239500110562041746579390598666253242061994625026157348921255650388535820009550356108778489318076054151380756221559348394519313377799736960514943322000025342802637151179381655406366813843732014266756282790684867159203623044452999980082644600912728625845536652478290590381853880254104243436107484964657191080573028891242152255319835532737027275972642013305329744170374792577951930333787778791735171056386695354167581528822652933063638572971298609249501758791170510431692461953428813612062516847393066379523724817418382320201854423667073507933778561671741402027281034279366792252818286996940469905046213033312285947143395003308739375489362082254756624017800676937053563028847690032315378542821067971195865203146129651734456104326153734981154652695178919451683640420723161408534701110244463535402827127265568400642748074414879069878796616343351126059122983508208653015794697325110342256923198075656109703518687030817954476407261714142006992805395362571888446813845577201010863699394256252459564605111636733560322330526615805436367879244688314775799218230681103404673601903748128286740790266705461066321090407373784687100611934807270851706990558530116084719368336348969365082491327734147337274355436542419534843020940479252854972102343191219765148497112549229128405969900846583845613890399455626194338592433169912094569091616578054013982652367901318335771823335401038003786107081680965429525369466721664568320044268294268668559049096402242778502992130391202121045722301621619508558328547966470674939845510930818918120187598565338731242215350991740101912817272509677637827200798718236272585298463559544756718436344422997190194883498527869973819426264265133848554587579182469727032391758962511635301975793654234737793225960025648828826704631183656112335422369599034743332866043044390797783681880250499425956038974044113834121295832433989062466726726433600874353663771920148419520714242051495861700890706428888049741631051411158607349517437850282603304950614411125905505501210019923634602812106930051706352487545943701015460415462470185626049405406242423316276745449665628254214463164832131531143852473134607081696730551087817800065512759317622443311902551007086974349416688656672674551696845070598333302385798937581994058009925025356047089966587723195303632311358648486466993294435360250953824192007126985752164103759836878350341999646871527834708726152596762758440100674292698224333763469130960593526855069573960187158029429906498249263130634116896402239655277599468144460551417544068264608515637633502133275708157609297038325800768342342018850321355067160433155878423333054655528278767731205902534196385980661115653893830966410059632132460527553615981510278482598301949844605410009735516842004586099045147154178807849222197885779147963716946097542215121679019290849650005665041190816808332449473902797372618205758571195835030864326812308223454984217748241754929021245260332337292454935848273255472417840362741717299444520727183683547310371195348134293359150821071195382511901138999723198207549635946827246792277328398295966088771456810072886765332409710458750740234386840231647459842449541305207675390371799024618513917232934145041874641127165001538647813732987164867709601465604339575620406590824053763906106778734794259019615583069138487428688907503433460215042305499977538693888563575829871754550279848434716941760216635842550729643274167116112877563521811903735029341906059640353551497460582966106043763039762307186628860309720179161626362364503879582315414812411987471068567698758580002493628335137388393745807597483841555581971937692506041034802761285519848728923831895205605150637814182196237352530724947574970968663705267090321568013012108083973369583833474083939949994682466174241435645262228512581891444015159322530067666487270132266210673360870909952661668695398901727248730118175105136348214690581812057159433069785607258645880505982764948883788479357599305262368594770022645556995747500145686417780670469432035850331248912428731970743978449115996367953603235473260872963123950961298726055472926897801387766822306944697252743058553115624461820194991164095474991143979257643868566069987849266412612460164002123696249364059475414762606369260684073741007525975644151505664690099287630363909227921233070791415568698296501837314137916012565544226935120692793992186563914791422706950677916422427339510431798622735375624279928347584813785369505666888032903215493319888961341208408680514080528066158326440559942462684285613706846949992057395737491906023271953376479052376400841378644624979974421250214770130880746622037233928831607529102547796446682446304955036076344954586619216710380687856439576999230400379218684500496859701389220802706470279540861159303302726411425253667400197378172184390130193426845345386793747674785341336933859615043128006470985683167292738735765437429671891142994887822432694623569495823223070001210485935385949067994090054489835754026339652130707040482504875849928359822631117538114231422072598715820273524425584129168355089415259473766584841513874904146318954834080169482734729224366749651713897690219316458886501031520780718866498306386463983373430906167245907260190078179967351955244752612773398982645369423572400539165613389989378032653416461867893321550603274859970441550427086466081493442835261519920779675651833487277986140195086911785281791879930872104121576270567251748248645247116167302447454170121601805607471308734873605074023487064850079140414659618952408195612423705542263042491177639564875287711458065707607831300285134921196196638981873075683852610597267350246751173414799899993474623285259197019940951039162066155534858879589704831442650759811096250894812615746647588078265119725548686432923632250728927489558108966164946441344891023556225571077004425999519589695028744392490280373017389385174902870779067429176291403733290880704655687800664433529204972465130833184102955133235831169986107277735971814192070819061475022250842100205338562794424740681562247132786057141098976081924617858358973707994531334754552642210773583792307815225731688492716420197197119652873751568383891678778799962256968873810155850834670756925781197079894706109605455419956344162025844374293629995238224742401906376985743399699596358643478251306625099348041722944049552302132916154919641735136108907139538454449720164882599451067665948636454105860605451710978102545254691255198247893379634493925058688821036771684568661326481682858918214579582930457049612247061096799124364946362524155511084648377060500800051768631870545431984380768712994740380531044993175877484662933133680697060675544453105196089729716684611973267438377524878834771034802890916017495943026130706213890647798815243200632112542626436073167060740879490135919681382401642256841064170243066742562798038897199468034519917817639849190311758536962786026225996397649829263761072558028073599813475685090784481513533945749971618653358357847297905554528532857324619573388753915582499894654685255765794188879515092764752832753597144308406216439931686626835339534299618955508414519705896828966979575749767430502563223057520618218886193787771979918797048475039981015074954784862336344832438765092389150154881591200075505225571794206752199785070470184864417926020254737362792087715540489580588410493492641364856844878195180603837702920723104276043577680417808955195905239496498110872877447639898980778347752546737440135637918652499760186465466748985464021544334633896863222410035835858214603648078268877119896179176992401064843478522095215761707411989730017367233045617852554239688813906954186836468071309085886618308088792120718274963620941293724603466922358857608239933691154845276412926043727195013844945390600453132466584767793135742720747992875930618752523253337576345282820101569390436196403727185049567499277622360056680090246709351193221864876069597374091038398322550887964185374996354869682460071764332324667838432107093881387262448241660299957808716206033106443651873452312943198069341639732799669786060278169550046650530977276036307081603198636857709453013212491298665598901946164032096155643676798175395960943174308663296803718346796121662232128418826881996504407757384259265610254490396109995362241378739570087134431767053441454037900300777040828376563575774123187152578773990172716466358578322627881126504358457890404109830824710231600694416504392526608278598625160283406518020134136152722198644707559116554192485753431901480949270231672741225687746552118052196409361324629727349779351714142363609461916327796901596958841164246074801069303793777346448464013281286069440618671072380314684563817930630353729511973021731039314222809950164383981263141650046187542939925725907212155565862930191983916505405520537990508425889755759028555334197956378203875529675022348625442188267164226829190617380978120357150626655557458473398411114290457387019932916811689018769578780808036662338125895305923776921827046187995522824326326507744849342390603557513541343850549114419647989816509526393016903017085283698078229842081216601549608169804341871979671913542555963157790518304508713579568252743890910043812108626274509702616099484241826314099087363961055636022491767647483678089245553784804954814209597249579084354402401293654746216677523672654929686336670950127375766118036477481158167302079553820640439087597576205153660838645008571241976373846898745762920886435963528107927857739424472416791302146151884484304541344888760112918241790312166589281836376144036997091339163765873159800160800562356128838523555821324832244674394286622230374523220770782371688280581089171340960298590976013518553127839778224254954645508659990439433386659546605083901111765831016829028547078863298219349951103052325321623819281428755656812458082352167641166509506254278465617109383916423496233556826462707309711355330455007670801897754628654701812018018896005178991434824791902186348850089126762267764870455229170413960236121617201680158310058806802259317743905068671874915557863304681565116814740287887283439813525852902877536489795502882435526798722354602540591654230054070726453871208632819005497829925703858663614854067912388533661389321487964983012759601734456911812289997897393799721505221420101768257702757317983217559125606174965276634936757447171595539250768571283878783557892176900896626280026629926566260780081076942125162482331529703222004206585194593398530563495946260409694188932173557764460294651262911236877263870695883219924240055566411600143899666322950184589169470949364228097202078406232268924953419919051759763074559172640181147530168193403140888970232958703435599967080302249808893765541486059648098968541345776789119766672520682550753872181130691507347747964034010192059533324585922446691573031831645319257763829605659459880958477470645395385364878471572133547493074361584519199749934242068045556222656899061465733658648246577243467541348147048759576078305216006733727968942174068653441470057886590465276161448660213679208693703348862682201946357365561421296890801093285994156728529048090887371239972556186316870381255849888521080324156792400045190627239226635720822073869463818510840144850592352042810378691265491097226012388137440722592394557040162130804848481608522689832512808449140102181342326952740289219510959141679918638516711618554499274429911918774423820457035806988921672890141113423500680021649992909008086859833847640063914360272997397792290169715016763799314761119845703524533584279709481146235027984114861470668004998939680559365800539457817400540601984676022822000235408365015091554264823803734868599095934793655698143801809166772886650730726517298103508108871516988401340380716018130546209717203835258503093834900676646600866017167947325096114835043581517227463381238261141699689311387278615073746267302984512567736353585296915496585012629273511803569693893943467124296016465470625316047062962210266647395769721595847612079427083528032281190005348718066696698372764562504005538764700074010458341526350153136456465866826100277500878401458881627321311688373351764742855492038216657819150804440756261281553155279456463931725706932974050906327852358239742604083569784131435199735322815947513669248734429093787572186206508462419974393458146759072207335703088290383017190048137830178451758664455609942137713234154909121082833425459382490783557381680758566681868575197477281369771735291459137047690713199531004632180526306656475490396096501749707613235531062020321595492067190321048146097437846831616878941038100093691817217635657991602080068843639041302084815778771508432062362987808566364215109664372351484462811268045196801818440742423923651359450153623574518126096613261972967384552533802814798626920860235326877914666543095070387704793443696466893951267164295397682732927228054660185523222918206519177653308125451289267897885766707610680493819050126376649961585210436236594997276207428531572462658257118276816974148287847282073969945526530070599347168300553420791374735554076425009644812098107631489010037433237273733265376630367540152313462465547504318406286767722762117173803657133615963346733755194206803038973193812785439587578952623664459811592350697023010829793650186464748216090637026663736720611955138805982323362407512227232716780255522759502259725257307446822485070030132551285213823710023878638055320394193654714533831908422560237080395024274154802076652911229249482645253533042055695056154070597055462427856894089329188226177327925297964990545382127780140919823901768509499692379892365422814200358674336716115462408821889174109699873284475563937825668082768120049773418425850904989889937600274625841472324710613561747329892432582930758187204617187688435274493472793252297347265010624834533958970689671665840554439809252108399507910589622823423135442436406401550868693132436469556912689828258491600712680047022391281043496871414855189869345063063624534321769028507978633068635221116088168280245324449059275915108938825648321840155805597221776670677921292774531028274836728584195342762152428823967685434420748275575027106128490375557968973598683689035827934015032531315184702301548995321604782831529132660749360310480696085145248224325995126509256021919442737470488738254211896434598559929557902848023653943529175071091640061360072059015529338723553281122138744027864755003820618038199094110116852767009544330585034319817654719099074042445960097203695926625910280913097491252613090108013930653203423352286935470529528675947243447763000725021230605345030893285755526794475780558235019514349121445725498117528834646519894894244171003272790647565506333573523823292066776317089668766439905620214965359290087968084024771555070142744921021959671814458175457699794514627705051951449397531888483840602456181157826274581481621005517080430455037437292980759569455445339047490315426659726050462600998481273783840270410867122738489498263890362241015053599708332744563579548781739050200269181982228770507252780589875382533154337851797669912628071513879799278959626395963172758206221757231434612155745190408376126480073412514284003648546688434402047838932919156818920814516483332993634947305484627416751000798399310921213302616376420638567335291612897272045665883450411216592224728058397195898323378682075464793462814066196094058339697937350989255778699006846025878509213328657383970335883893908423706532650376015732752246690398734140044827029684806398854895277629072274170934229064825909935975862832913356991665309249740101889000029699620922193073052695764689587559880198100798738571157138648535269547643684566158136101743992536027512627443543535068414365705449847963841115979407473900161649516882943961780820002868496280848783278370963761859765297782880606230071717417891395401938722047135518969440419432781277833038980295232280634128563828122805116855673324361730141003348482816715167912340746708499035317396737195637901306874345776644602915114120556787820211660516436885923752994321932727214829033564202772557833084471599435405739956706309865421847674276185298313162547696983389509700850939902894521428883090925495143471035090787381614382957943237145266389851754266648299712869566633486062259375115731093726161776843821202573737312351195962393082366566276222940550919763491835737502228195006846193514187959051401498350855081988098424029111649481772962008407924831849944290282007021899363625859990529807858330173000923982812443131402386198050087899081342111524585014632179477687840514158726285250052861578079370538753934484919224399468216474592914377061064091183454155315764536151815989169457254398316623506149570724006036660691509931366477685315204879496401302888520808523539096862759727885738474600588945680368591855092782723379181284619386473348791991988003163639539898831745504822999022751796308543218946790430136967022900790203827497296457478326948364383543217536610954385009493117692854066034590082073681741941825471603084358419890455502723973395899715173045937382594737733142838664474210941581571374070117730567438495714935663620663161375667766924538862060945792482348078036324891344651897226446948224038828565801237782292607812758289899948714311844209793929706341586368522689110774008484179726779825780502829756898998329646644306314493631831432831504159885162987715306565785416027959269176516155133134383408802689056607455305993159883063854317838335795793478277523105737822702351830106703731547781815390742670647351309723307690366126604632104884045301936295374297489192264217567595675482302027045074806140256589601208126991349257874540271403824573934138712055003636121993266389722914716830976006401333043705894943893497862805786663999720467384120127255560282239591549148317832542445364155179110366822390874889069913134579520592419765541619080996492197176308226391573938573784886829800967757351233089026119469038418387640106859062157923717902188184927278076537490621185269320969661446273745415763026482261637948216082603991569319496507432570474881605373824030894643036551900461112492559295597363431181837775687340928926769689110867845203181126740454002983368260885626483790098972070752069506546372492246589965815989513907517308032016903692871851143657407164359220673317979816542752791236074279721031945541597160553636262413589776319846104196775521693765869818268699218877535372553349212994344775572096908996898650803945722363227019910348330565094399866084484983447150447801456972410600271957123422043917668606159304745518427075944573383643319141037731987323351931709406056268620936589474459617303547754947050274474752661443951638276394883846634623848003661835900310158965484070935961434173376927419862800586300258125153634717363854376731250632690365487183575319773920787986328788187181558182011287762448909485731158753729514121294939074162015122521495245797435245891527526700922339855780524683574204255392997121511824741373536515395440595072402375983901279695379365311265114986281203011294487352970641265475934415860753679215172755860301941079435678815371118806416276515208468871310402623590143147917206425487613651219964530032880444077147130025365800780448821287560496147347338166638507636897867489184331266450563338833548605302287928966391756469332344957934739949277501465463622794581929015440983696119324164932240807439250474822270597201189174610785473154876442708585649844482837955862409172286003644384234644731091409719190254894594952706017126894909615158435953144732168011989787589353596651456256931651030175935149275150660266313867508347562339239164534444673692391695918110000154240634138503343677962750585550647293113080050620283524181900059870040748387910592388075552556332625804815324659236422752117000297316166633551909650314523419481981216561795454616086546041960249139589976722800721621049469203244776584856805613604384360545328488971562362099802049483556128487720285642290179878876943595770513624463156072044773674413332821329050943300035617573281851953536214555886515309141320913766540649832908656757563069416668621917566760133949403108630775222115764891486022178152541741498668534003023701135135977847090183937991290159301066388549342288033581010759166474315013869152752721386036333672129039988902760268257435522951250656029064735311178725657338717824947556211632785905438062900495886495106290358124139583557823936457500061500411108144962453976735863683023090559419085968031898068348874482235846640495666608719208579230254819220203485885203301751908522442908299295607706414093968224837048477614071250429968367287075376186083034882197869085903634844110729047384283081709982060338885465152911395906194716202335676047320637039934627269652580749857788902669981411705474324586867999426940187302396346835346323843356762057436525541266650448822523350512809276585663856621142252628768071243987679600449859381002499754565907816923371433169806882177145597599843787472805722027639303091855241239003111056700801834920149072966901238299638523275249738666379848041792496245735105333049839099712976348947656243531849511323717779651403445357041490530975410729175341253206741647661898867949263665464325406129515295111522766726468335394842160929335027855549893687675688761374206845855000432984931645421439300539332385039076910459506612268197689304456086863951423116927573444386290588288433702041843805998591290195294608174206675511041031012549412970571001564426492615702202061858535062366131942824799046476862910292122544593186800831424541516142345912993173354283311492678140722675828102568230101366008088246436147840669984078227210954107241469744537811415841638101653750579151042995709891488025451696435210888037569298421231148315614069206321750598608185677445245152986439440299929919695318291597585103005634602060306996921259195663069208770780616026570012733220646898376305105832916391816729250972977079574843389750348424257629710987834144924724820067222687283673874132937522732870412257727452195179475077974899344402021289728877040792080163614790017582083466641293565391111103717123998584501757556252428069766096763216419757777548624692128652953376899939669725120853251697097541169378952665451160329267407090815144105145905597152388441940775273121267874155169782578082077437841882879857245584677661976481687244556827548357354007274566361738188579106318918165950270698951662713725563010534059425704501162305303524496731030107752913887340287976076257777362866091163523085146854873296826834949686076298454583267569605022649271362860251392055283947501887833690430435225261724243066742243701380176976737083362096415977695517031120492782704422731308819860747326999780859625267305676567876658111145128405282197344024622833876584876506532298432299173807836753605839137162266269643328763736542207084530377217609277633647426011460242313231353396787572488632684432709142147104455411641072792282141364707474631915757398647929018994630179694851971973635917225410737122792777059434508104884248314867428091864122492377142972393727762980732195272417709828383929838617478542265272898921857422120026145200478526937027144707528671635268718110524246580698475363247087363778865122210103625941231914838379328988162320738284075445509788955068221305284940685029888315505136739758693814144709817151383275038249540651835803822634210488103174826573326233650072381822732637229267492027414156106466331529936334661605065623769883132705096800030853150038624657164516971859959049184832256128325994186558792139003790115981871677753072223184070741937034585735677836991111070615971481654379930621975449197704016649266031303939695169548508478703493077063614206317951071507286107888427581325588700927958038693648960762593235006243512983055087967949614130071623073494362964179287678775596393962564838010812251448225518273637442006383816195359883935134707662909428021681284580145706862594701990497889300282204437286400136891792225222639881735224192449776873905770924088872575415161911014389228752326599951646835725435421240608009990219973417290649552406863337360527781655372558222815484822556833515598987590242666223151620696107915011785383137865194455037070715266929941239490978674632403922567082914410754528863242432237608698717210842345684604023291948692715532595563150560335386660344373315537406239852358667597290571793128332348665645499040231864547776459319776510248023079424988239176558235687610559372372910561789701109834305615694782835677173120301122618278228115964319168420266742621969909305102954357692731277469805756693967667697775553594586986049198521599703946545764272118324610728372961793596709171129679934414185287643245321998316023803235631179930132620010692018174810368387881321969366276234659605649080810280239201387029516296096775272717134992919201244162851019284357667103886720563279455839745133759001864821311148373901189883947673940934151920939621464816687086464812333814312380282997372015334342749588959231489148714642752934395983452756237982382340355220207149620076960872469748804407953856308386568429257589723174838094803432348386426209072139866573662028582396451929223241967654798979786964797175685757155314530564271808646488336031135095267941765840663959910473745893543307549240142400675018602598315602788300531828844605146133466109493926022036630367785519217582663661717743057011939638256665309202321551147101089432303274768318740462548299531809865284048756171382480229454266746929565270133948064432580967649481363356988307769716493332669287182183253883436657930650529136046699740806644016548178841409660054050798897790463102363626616348125228941141377188824636065126286963457013718168745969689710194780591816380695133723497644723800378102441314602715216411556881746520083541631087658703245944257173788469961070856468850877466043975918049730434628270277228638708319479892115806648141450110824009835211967141491997886218704191707766116518024674353188398394083826053123237428581591751553067001746499714683121635207829403457649122889550330396617825210990852605097068549012089652473904294812805245422735614728677225717045564122606155579126819480263670841138803016694491243938743031055757513659634530459552400781111747547290574498581028602877173903519519172263516964662417327959237226835562520523801121188823394226683154523974026971487283694183169155888220620935493677611631159318765012171017382715458166095636194190025851907490600897441367240548401714769468217317445687813131781354289282337789339403823078608396682408665602166774751093034251616364221053941273131427143943300539081356126267183892116571416320603059918369836096915760609525579699989472602314280849599848413630554983403090613803000101274495114801403094006026201241543178617980232300789729539695877326619139794243105880915904334625617984003220766931962723409192638160574236758643771889255920205719975504587216383349055574790868853254668035981286328906201989368669330355109149901611746702241017321283869460795202789261955454090644980350084298458892753727614615252855654354486764353735874815224600392392042081787698760334425960755776026978349607517861557650197933554341734766049506711655971418282756964538674671279138625290278833544866008800418460439292851454614321044835140101683954112614292420575477655077160820842429074651087426803344110889649141967867530351577323900768913022737470167945929348886224016767950525943002944191449139196730333324869936021407767636915199612070049841120277008046600547966635502313436716189868523951969152641989354291613675177833431501183727494292092621265343798393121693221931646409402502055932404796255626525598915869245882732992217509123890395292654147988078085538224934443714285057809966527606625485427277060875765385624132351812381639611744879428726328271817079211133303483807474643740461516165040193927997987503222416431744675482295973059423456812059951816286192874588191661877470281006044451266550637106334993512214999256523862375260664536909344116382796134631515541686697883571733278464005500373328103625237886325162518217280231033110323911195617297602502729994927829766151385008080491960274889259136356937770847237994769163275472889399367093927089670239149531852581625808179480131418779864356145788446657766043674881317922959291212867973481876995167704669230608937857226045288269198008375884374340377335655381149985848077942864824791814885343183634775466359482107358691225761371986505669368372188344787524797629986138625660225322012131010171755868496989868814499978483263254966153125672198752058850996263144460107437945918991999563269057757197193333723577703930828917023144351685775358442294390613039686916720363260454501658322569569952184545762530697132845757592385575772752658527302250933642135869640989703226130883185868920443738044502219778092692095019576014039458311383881027500622521537190110444641316081999196129872896470547232708104657477524860102692054063909280870003288930957047964140091613565761555603393915538542885601778625218432037424682040000350524769902013901317567432905715454946733434387047834332118340364355649877924871967502478556782550594980608372455399358087026163800576368508798683963845881879938890211923505718898935044827854659661593453584467819275688648104850576055297847547382482127730250828021503637753470642597363110207267835850276136390490879620002273592238986550341795600383584491717876785439630034319726563162528944098905163665186135390046213014223557090558063016205234390604344589311473172140830062123501355433199749534674956118412403934898173102190757564839871634916681965768684440477493250985714017579913248360916378072797440225012728309337176610042667154840111602939243509516902186059314796499959723885011670459523792909135692179866727455753566209689724822160098618279049800543564073698819109603550384300416593421462714817403674669842911122067712360294268673915982419994891515928133145957963803656972864755896891207610758978296953514303036546824738198714417675971002835196687855084756039851055323442238329433931671239656121545933369135880135661877841100740626755762820890431557429916400340338932450334943936801659452012837575979740921655704680401009167092786948672240929989838649086322045952069984490435950646620593197442286729790030617798381623762163122158907786945159343246933089892121668438871074101116070318181707914821459515692426954425449774222149928155362934887926787051850449049716294893353547730289079625646366622709680566952298837197757964759693721646059120985807719829267836810702138053385798884803261249307257468203292553139895725232757857237519743956950854101021700164020364545293725847676801581672748823400799462855089515813758801003715447903053691407481772325237952418116546109696181323381092075364324596002019457663300488913115930993352598530181704213321018375143988110989863240431101206232472633019646323669906283508484192510922528028561778807743648944794698611362513335798762278324700100157046063338803023678286527985282638413353379962650376820830264828659894057935329036563357035000511960074161745710270951734514549399209121435000137168767365087297368363112884242369945779884087661859986433832491768821632295890733879299501580656728413150625972854011550860874388833799209267167224479471410951537111516191404774810564605040319020429604276487179870566202544429731471606985979268556770615035384119056258251968802494804195187888550876318516105664443543314589258814533958355985567284850286285014789404866528198207394679094188629401114730089659971362006088639359212203468330954879453113776881930709962844790033202158714308231457653846639284225761743106371413778572056161631508132801206861308317793289789914447397937144593571869671541656134048067634712947814473359376014105264786946149381854950126938773424010901467856345566354625603038118609062111106491533682465354775112014944377256251992630967483636113454570664397610389718605148503799614879511367836143868059762739611682067174146323178468356652759819919627610167793067226942460325262420209625770518976068548270682674300596714201092314719011784262206766768748063440675322009827497032356028905697657920235486686183770259203903330305658583522725274573171099097171756845936075796069201505708450014023797707892317219786541104307410816494698877912175211596893606962865125968108558381291842586785464700998768827886490312487406707950929405127650536802253912667620980190627392101443669135296622182233111892857531107092447110780378622765801088998170114258072350234439497271890977491883798233039735852315135378184250785458560792583204248965971152885232183443770304759970417492453416258276277583187560367244741283010509566630094578397726273642136664422946725930772535841081773160030076974445641580406267446013322136304120106806348000346361014490762479588853650534366720753492715190798911113956658381705344527970254964925169382772072334115365286791418925689989977319993116314433807228594146107202303581503639720429830657580889955059043060494004805564271256631051528973339999570059156143011188574446179351584725940984948730765763185354205250418637522018268815979081437880126432425030538875758253839669444368046432355926185317919193490446282162061080854014515086404698803442928644906035233909913639089657438043001328805735967175403638029395444779245836581452388614105859504328440354141014813226004673646980063843355257266674184969077913737266539712024208934855172084758511516866793507718041813304713216824923174875277030103963297031236273493497834340383613314566212416417481663266276102719405200363677256594344826478668979191721290350677543335773770529764486711726725672462640643662892212654114414937124501530459241645438148592088313028919511945249554879500573344912841589952658208552012016035483746214630507512738658304353124225019879154975393044071833060709480169122032914086949181256138758992262761624965610167890399406152604548355310181536265987379058364702566034862873040820404435363033402984987646096202997432928809377206925892752711834292559083207142115602799343179850978133724051885212298293477940599109392288271716004249315525036049206633448700668655377656893874778870156083307086991203894723453066232420333010456580356070794244794130966982009642804916280442873342056525739858544805912093503427273782619264458847833099066004588532028039444750187450008495468595492404684283039195668996832569930207733365499424078266392998185443310604965978875660626741630362713615173563753243540266639119457413047060406138689350361100278607784213096405726932431660961308417621745675787421727856560185583557167534694379242381912992858465513741440016617354207919582956991253890788601789991205533430106685788046511730492058231644981377789372605329368903441854114010213718589549935307578800244778673605915038955934332099948475228266212253251846666446510929586525118434917148592435144075492269382031274296020941857086316019590319481358344614977793522251533305284737639901762791779481863220018380512184401898245152871512585414224983662673005574297800490698979774418984276149542610550814067960446733074085205925427404599618600405798858116376040275160455619933637300062173468727321493890976387210078788470756376961520621561723957069658915145353170495528094974753212176395046582315091561306987336755557113647951332114712151250218746012032629357999348252919153740505937226491657736810318104824908840624788585143821556418978755922659439655810107689395403939609151737200182925766265251506401183495917369454513018621681753021499465144849234075081180811122502044210395347298507831346698569629355413746740707003988648367488407508167499907770618511070460943414541876078192879084181642660839400178964422861389323779626387640387739040471739535788055089558379439769526284478103440255253586874778865491459888732486520342128183065814683125594818409831476162808335761932872103580413549371418471910654009100188448238283914426632314438942603114062593695047748909031529305681484017180801868874772299467428039272355139910781530429596250827191786359312169427077604094958410936540688313143444548453035146241777376326476883910547954730653374052718643613994413871092273957107085861776968752062549219715039468145655661512937403888339804927732956215020467990181208333704851344004954675113770918131768032196898975991797734135577562464184358216181829690417683844723924476696047954953481986711062578118148259131259061874368360229313081089923344361910605582443169693552522814837702438057674229692592284165840409742756662320990869165168385031350441563796670710359088582493583531144108970781629664923739191742803271707460120908813700410210579505916155512414331450691576542608993948615102086285707133129743933929059544583444307317743867789801547957913124481803523238595488698322201962069276996533738708237666202035770378899518163553732220662813755580073104095277870742075564393917655698138590351997758800938033798402626229127736965770268173883472260866992283512833257289004075870623441502387664287871635626448643590943885513456342332981692487567600234406386855730792257705059001587718818473305699703520590302937281250339325139345213097679892798592019443253404988238312418298154999338904114910493902357565215186525347249838994996937885048933771158718342147710146998334409747300975294248497477349299993899586140149040411441533846750611647309214654111059440578006668201623599558657850047085095170945486785434889712132763929321785677664147512869950249224132312948690244594604412433612691986015481922318735744991072276711490267856022438254670787209307123314921268610427069829892245136667270027346770238505252848045871112833889761827871062404612201837239308948242635898459114010699275288290912327632523196390658873847265143250113169737850774136170316412485767697736722959338514562300862843960062139300301518656742152802471144861179475872371192228471778904139110549066989186674069019453495255141704435453204703522632786279744524325461909807512657258956355164649291346127971516868861903382238643874085437368860325381353858452748018917070219269693888416677050973401617611830419418705459197391250439182327864721443684574443970122950864823905560017633511020652346740049030221660748659956246109040135636524111894742151387033070587891782877750767690479162718899823501410442582315502679332289668185416339783802691764362427570199296769389986927701424173534983806515357283225058664661426552069407706134042342998614618380632168629687054761205094809477537438133506463504971154185491730762217191383400898239928775745145232107196179953152886697823552667483119397653054353045122405868125740429826387684897427303431270032857174741116372674437568589080150898764909645121763046936317976598380058722521839058365958190680275472227230673615082675383516776385855841307678204475960448850215323971117035383430133384112061581007381637985653717685948232410818616863722627014266983189237102350900476798582094669728964701985912154354732203241843694497509588120863114182703804744564011961743146460821447260446512635479960607923493877223596288905238585299363190480513666585794124411171667567342717559339642239909084990830156023756465478858039062272949294861738627618483139922502923726834043767486600833625185130054159104798192711108664870056484926807182531557214050140529027086915062364262570825009804161698687546218830069903138604501453455168169641843973235210438267016297654973628078144684480429014754521949030436193229996649949841845030893029751371332318313328667201484194420507962013341060040423224110794909278514650302295842119407782256077098788943461851737026076383201093917240042988899337812107175871580314233959878637037237243993619182796017176445934414539403427591427789749674007514751598983010478968065817117893820566841534632250250956386062866334897328627437477775983060314228777180472270884390149812768432239716881988444393847442353387200784430866151660653055071965170876789047740893141814114067400507785687792773230056481256977727478917261690134415369181080137993232184118410666455439784136067628222592549781709190646595109923652867449824464288607315979909041306500807766485945667150475532134639791023853865150514926038892758172248038547072146537297197779209807953141673991885958243071434249347347979862422394449725822194985504144467015385442267028976442175110064430969984801139109466291940195488978198795489937690162227730511809630564342537629527045597802107809814913570654524028943821811715870577877960387400555912215046087194100642390661326613572400543137435581462423776379961348691922996804936470651979985002667169649374048586738232358750812861853113266950758943228268034979137589485368846770134826152446795733955804149313913189288681146254290916196628826450487730350708119393219191095654201054457350931494255324178365358829200104974870869152042755292799980502408680227516663308762042837459074623811539484835559572159456666888980688058011621380812789279808597680304192945896845403517816161585234964901008890935128599366358486302978661869544850235012896927265870732223877798481790233286678316228315218132204825971455153740892898235049731113487314014133645283837587632037444706407990662304349754140031624419356900806989024890290470158520764883789104266270363868367978724991600169838826953918934827744556216287726688256437075166567034266356056091316972544372974121098298676269751444665194307557768267241530231699546914352833112472612767168400169148343482608045090867937442635404961537627511889044704484718432050758124436931262313378474397382204323882579891261273999003915840990599691402160244606897097584572378551750688129990672994678778382317059269280739324338574609969210006196517219397003488618520087919663561123959848162171543498359450067664271396405079425707865076092988964172101495843176074269850980570525797921812993410312522756398496057235743017416339197166984097972794948379507398555173364949795654229225609108104187097385642151432695848074434021815608131660889540889932275130807512160423521100909268563339525727371462864945883024170132916164547127112054182599156644388927863852209950469861810570553820350582420799162134963331369118622586255270706795992598202716921343879042895452941159412624757713212998035185738284146605254959725905244881375814953475061145998232504517318986054444800287112004403218178582281615749867913816938777623388727339784772500526009975936666455069400398612619817978779365830063298746054550800934868233596633281373973715363069048426963405368816653921215147635641546641472632736622109199256386087304386224823711598341600059259364190309559772456744784916591247151245481663704130122594138799780798100234055229510067266226703197281810111772313137759624899833857296651241575275225765308708018248169700670226818602153265742204835593109279714513656262092780220878885260235673344582315711501352951523344285035484278737089497532354382712855052842911626908235584170320870542385923730908997403895917705573649936093268339346491434595444140690038030820407342018575603087177448141703561816030576676822568556326309983815722257737575086081117316598355331764635543524460450911754938728322659813681839240936248303404317482911020455940147662942167704200334212821906308189458550515295235300719561297694378839416872100783389042182773595791816340979555107502503251403484823557037043854410075263188017520614061585764675165356925869074633103357779239603871342509709471539519863256963906291620110553361742689016059576537963824983786654413697627931735897561640993093450702980931889837017037401953399100275756347931617997551440849983894677565707830156699155978538014046981437262867877706323602448181440106597283035544205726783474058582200582354004941789013922713708244116496934979720496824543238432278154812357416259587005895224904572028841314433616573759868794683359284359242615516516806253503899457402671739477324784797391805213726498861841405144362853737513416230552750491053737875782893804215268749943020313549547992110201918228328137485213428148904763261702544970263880147751386224414612387632506600384718535235945761032635275120830868071699609706336121878842543238310196743634845470242373959666173234010888013784823613615182571768020302999420374026212448009707904020972196385316313066780882958649040980623600245719797432630574540517896909406176223738290742056128549551574733322482097318223861792278824208362227825072720446954542496613495857866226889614221484786638938187477074690268232311444641215124984911082584589922676442696232168705590436720090655997434389907526032845309020548181626846671294850402312139250203279839877615188656738576067778381409060838795402706333320561344010655663086647864744005626682959145996948732977539144857007747073141494588901161684460318007209647523286395951050955878094128294013797564162227076455852507181776441651013489698701633778626508902732466084413223361824803256744934342398521010084911078675914870072611854094433047523649017854917403485880050336386791053678607924583382901299068196048055877047815303563032529552652746095951266164143093610051575689387450108682353655998160636446917010160744509711771479243250185657112170742805467192200414864766640067132488567330517649482011777866048649716005352205197657543662202078011129092910292534193449207140911124701318546102563220988403223251789297051406555754800210183841696270366350288344495107671997041216764075581298413192262937333078082992403343081534178891205248586621954772930690157017449880937519190595299770575612167254889737867588308647284638678886760128368255520756669489573689896138864461896920468406238523685560865981651675841629006289174752267023995038522188717130973262862980001491437583726469193665111442478754550136589523447317456808293181311864789463651665026789369856140978212776164985044262419022327808793692531321534094514623944957248029577542104129998086770381965417023821220254259199232567697605665284328800386287211525980491523242325667088857233317158408484357008243981125063723849250359722748057709048629020319638058436084249281463342655389160287343583278251859650808906978163261851150998884606243227988827989475617247746351216262716853779961446519179756871920929881589160952829613112548582522666556313724641665609109914386315253145902649215133717889413038104352713783883548406832545043923706068011785837607259093726995144742390992394860953661346248834373519543856724827549204322419080180020822144459240904650877489425357410269411023225554185861541648159855633479910993473883693835810465327491780622034272547328997294211454136307146243155971093851893094763820250181110111223566536222560987528381439696177198016054103520901551945077675158608126594100126422914124909784443946761106701930035562158307771894227440385618840652993190426019774560746651819247275284829680582291418819153143684194049949451349674077690786496653618967057364522204572560886713337654827778991135706991404260219665554322049094993479220908170779243261574271370463546609724445468510730582410344381962648362306617756883111810066689384954378608656764037243781173530766512004660471896571978766966659749534199956572072296724274133323002745321608170330413083656622976124619654407782327601019047256581870824710766661178735843426953803145264153771394882991642941694405827324793711064726475867088611252780987181643229809501551907025845730225084295419500443596251415415899650781710328903619614357383799280290404620630976763419543756120346575006705758424063927042211412117788216892997547500206833384423772833390647544102955243350207285384995475491781723182725401910480936386035344744654490778845756838018121075918573996719837350042796327750781215095367501881173729248839403295364166922227063315181632327981038271713941315278251945390367704688561990522305301281907599578474876645865349654937069601755739302777640522395492188571621241940150873760075902893669859071353239095266524297083941712137424209671805071292649923050501923258604937735028053546727164116046672894995158572894932615298275297693558780948287312128656278430012394110621353861394923187648161348840475521265618906601330280854696199905264414641118934265316173050698518590793847203683221214394229087538931443014065287552840944308195204861270946101094120999463322381095891326570482231635299441086533450541293586982703455810332636494660811973862978449014454383764445202468619317961453326334189966149485798011913960936867999648741164132791461483635847863385404547301611690669080960381499610510299039004463939896529769534971117275606919218532112540319646591313045090408936741079815419426985283895930401405862948467864805061134175437478475086970741049583069580154407695101535648684664845671967667873883673207216047999938285982521207885127810898872659441461027252670318415180219320728716798711271848240434056289041564703666021598913729107734979502216260482762745703083132462427788361121508071625350807247958451790850397331491694200466553906115956361176935829160999750798861539385044638494558208016205294813242279858148276460015896451351609260479996402328072875242674112954439558995042237445082083980463023776905666220793843837076796402851040259464449876468649417448484367506902585962792944785352870826426556836382239769957212040535587741814282762094474925112206791748371253121528307332541030571359215173097826505148142903137928975427039954818928167755834629100866386350997426362863575953414473271786911926799794762130928648734158177114330442376221075089179287412896790862395467477703089794107058928998656460169664513631930702620975175567632566739690531991106990899248881500750186698811695905305095286539203920628361377151291388227035026445560180155865994016687961794283170779069817281359550288815663731408931843606484257738978277527392951785873293223825131357952752952139601434201997879425297089091898209598902675339447566116027416560884259467948631323962933190499709664861178036284815236980049842572650215469022655607983148632763406503290454201191833051249433791853442684257526449905561662584412010129561107647448138109556993649474251961374768481402202007133756931944122969636340104922375873682613613261730345558732335206334594351099157133155668474072499171555661586468662576106240723130995281395823906106570300892998904264154961942129052944349119581936320110979861849435968585500636827783978897937468339817962021492510736593976033037350599779552583534673610637291059696730528340502629584844043263281365465909480424770983182991831862750592508220427473358593952093837632306538735024276845797041749374612777091573402917379981877020347346581131446232213901477959785210956635860229936246605383531845256298325322309048215029298260619785572761102206662540916781417431673487625108970536659179366316865367260087217710552231311507200731127231466251521447122079027732537073343154809211314067347194690383913316741725090439768059269634290058662231566849863720726347730093777414040282876639567683225861846060730732213985177900078557076073611080000021736696706575892277180583013941264253111782828955841852959476261894973148108292533120512472444494887733873793124116825196317720914774713947089021203908843303285261256880900234713287654391825027815054583322563645600738720122204719256000638811026733184815030098602186045011780210765245331902584719399596648351870636581618039704888314708029244876725996208446868387454795528434911216380368658184198876157601328595999470261596852985033562166369081445968868852188568333530463266875278110925136084204171879088921900248550545155154472302712339182599973207224058484597192880845729492084574722786342525744568019130333266830122233903275004761738648667852883380235317892895640194403618213104424220807317748427176879124011060093153283337333887663718941515871272727183536540626322296997166926353393057043235757217782878781441614934680505546591234018817828684529121472029066046929606205510299500055851191545848160735910807429490400978581974012891713845509861022931337052641402878303352180461658338758848123542251833576831200803445443183699549983022760258093727205163313323200879107939941270464304987930336517454576302580167590134804122782100007349092476447668270133457633895483055892216841535654188338356170133720947430361198213470590392386832163352189298363988082331698024112520263123320287674659647704873908705494597115210058190475757337285175917260720715961623145036584187485059167897795167060547078768378584585437580528340476606206419970177704167591684680586841587313583179783874206823873544932307884896552838382535540094394226502156049454260374460247483552516078478365206781838092192043754278892912023825025633607915862266163616097558960230092829215702558479509688770844800669090562731332731071897342984572090836340024576256162294863772328292227504941733006935274576250200359256666599963419017391250917728076159487716148416758880842563698730621213179112740011175676825985702513825516913737237737741611622189579735791673595351049345931058463662449951585738730608067042821231811277982486002344767875711196007970070564775078303304733752396012139138916165123400497173606876841377919825454182850659109122084736597157133700400839677560727243900502906426596742070227814399547365792407641507427562201749828862084963457450107644375473063645999266034379030422072225565237400111189904204571693293923418708402040700143894125125362022270877905108214386627697153492559211826933317674226232364605255840301450813221392965819668465782688655659743336916402397140439995829817641264980642378326995433276942184419517271147622223413408439884979840193856536893600425298787889246984358633147305722992728591950788178337223947495387970005914383148620943270176130211679665950832254860502487740507617801080136631629796477013565448438216504133211311557895211825480394997274072764612271795860520423184684242565179119980855743829188225312834009982568107800614565729820198906930872984139861962608388977024749681688513212613029716440122328454514147123356497897503586136596894409873204234122392141344675173719181431764227130943813948253047580327235139430565578352216539356226384410641608221136142044362234429082792580934862781840267286310358212856074775337859557999740765118734050856036127414573975986170600843166348108721721018704732691928548568925247611040421928392927226007442492919555508336029843777823035552641801115087686514939815306915390698508631239717645297496196784406601977334697426269227325240741123585571580657990706927060963024375449375381694018788853376526096529688371970985388634562144658637859347427264108810483182142082164045273851849271279330071728392886286405406149167646745828223800341851456588491591902512061281986696421198939312659667344236117359594852890310394483255626274169076988696361494484620323459367825769158809719714525777056028855505960125892933394607500277914527639974551194348545199711469123776561788693489727641063787767604199889767300364903688704584086025057712434957448123792079956606522795596538124887052556180530119268723726797546465566705191413063886944126022933519752780144320536248692983045761420013384873599165791851136668017284909647275484250062127249420885445836871958025677868335124685180371490324599260690766163460268799195247842728017016389310668808717261660819024150993252337892132351616463194800500703758471303955584242261951850104904100924366839115676690263084040697199255902522554665193076611666420748521825403720819219122648615183472665992147917500997712331166581017894877416127592457558166377178535092040531142667763191408689065630688281369210515175874822855523921422394995861533347988402917573482292006747137503669456824379402294064935631167514578611649040781979460014077439555089792703709238156167511066369178621114256797143259981912991753428683634262961815144375524504676556510793678953714773852144756872578026360621943168759705160935904954417177332688242650870869306775624511153128958045528238128753622961427178596669482260895866995921775030019196715670754531298151469115437646316840814997169425173605353795504208164380052728436143070818900888267132137735456253927434623370160910563437593517889126660273524821576449952936072180870290731912290817346404521596165346951827881790494593342829415188094199224373302824079424674472457808298207561787416666718210437930202689255852414212895226003070955207772596112601424559475964057413368508294372669903996838942353024350074421194305901737054277527127583599128000800890629152626793653011899998205085278243951155019328278530232426719184444234127161530012339821436651587140298835097704276028551691012341621121034075456754422031716388460210032859741952267268842202291787905491495200845150182905596916297234484678673994436721396869036370994416926872623941229825424479990183362629251963591601579004069447546123791760838085516923745859546195505946203500490253271054854411317868517350609130157900116296786765907444182722271863780546625609447730920541233918779336888295830936050678350753134262740569425603010169253855222893088426641105966877845710607127800701302371456182603246343264199400019041005935959463695770607540480202796249421645404266052853539389331159037859516319724301977576524943721392349800344270780744738685674840257576299163353317156437530227218176484684742577407266507065103544763196493679669613229787726277921047450743546797871489137113397027289651172689772665671012638588960067838335305225067537805864536157929182974695733693453010441118731420429705332916767561826146739471775128535245272737267409044524973846126397302002134971069555396190335964161078777740237918144615063564498886749765134194713698412672343946502705272541657317518098507117302118840611246587364167159662186417316403337254295038906021060460755658245460291785041223347591758235352967789425489561727868512998107086360125630740037759282113015512048677808932661474364833681459439880525310248051003570901577767562618289297181519752771625733258108909343915030043077106410155618234113981595062204837753296917242333157144914381420699439395772860605776975917863583988835533094603864939910512481967249733856929016600514765140592851752496419709399578136702110410328548439512003491536717523950006873389839543156795043973486282950286607302709579194643293600813061712022819839389608158284384650577531994908750953410487355573128201157492082330422883396493785826745563780007964117360930536479277835348367963988567286610944326678784845605107233497476427234079884474114170644927850858622154717634103350886325052831088693907871199229589199464521736310531760971616721478523633041642223132910996768316273317713628554275221368898220381080543548927755044528895914082873524085202754066009359023656417879650696226565539693907458053397988059853263097551314247899849602126742219011589540323559831309463027811716509122773945369938847191169784931653653252879728380038287084482667201879005111452483507117919209307727728374980530474490719525235834686493383860573669283738098361055974832282172674250440261941288372876100185182960491574338108000499517436112712402911423002252007444735890098070697090576263385250425832983206580627770972825141295564445377989979696626923852094047548938394830735963563448808135629800143387148620726183070656152381629239716614828122343868264492033981826040559640485882557253218878057300797754068152104435342385406632621333153613615601457260716174754531979813572100872140797730846484869035749496240542545192516711997076059890263268935956899257298025838042718720041883336456093639788066997016800750141998017061025822855875210513152467839327936632981480605726415245038042169147479230783167411255784660674521690727657994248820871893778142496459260279607546915003650207591105962854649425395887543916778303695330448824143868488166529690902496823810056661245280530815227608677702870577024197103534723129981119295829490657470139932954417039384355790592734513940471297111808958765457457468062539295830807160187885407664028223162327805670791954663064702371362449727808368650048613966932694522778386458073926173880482709094482766394322384189940438070194923091035264288732463865594460341281907717123890626440057708344774469243033616927736806956031841586939045018440429832987342754871353961100403673588274749469552520019921108871833786895319679122241229296826752367859186026013603823830219534879627926419519236918985969844057700122919297801440300418600934272605653107200373867611463607974691144775678249258706471314441699257120033996727172113660124511873870654280824791395249770997072947102600099984289705811518423582621961765432740334737521406573387414826298437773399980673824557703716748514533382972374688864633852644506285240394409202874193905919034667168908555964111828960280971956466474242932088535450819383833138672187507378271828398584561160273230036381097301909344184843633466648106280055196300472059600165257926292447108499354877257511373972938661672808408158478715180217712661299988438414426783403327957395799900590084426508283123554957386379855930080895713099544682388036593578609890989340031579694966349811693154998242610468630744036435545545299667775921110033092022194281183458969054709765722371395442929160875181914947453716054509386590620061949415662732035793413588940750602838819257166911698493373953276001851663215909368769750889640403252345728456968527404415119903171654786083730898798648745872335518398710012977171295018463623293934772214265465919379574937798794152086098242689818547721188043768242731562366344628600961887148646761497511101553016605734823525378922032060101732129607744620919313930588623785532399096224660005947856358006667886009334103672847225589005039439986954367097639449606469853530045540160978108713465953909157726881931672666238709677220928667811841581569505479419106708876978637197592130841611052417095971286299689905002103662397976859865248230486677036119205312986830206356914683028145843524681520941277415853503239874952511892263855203629041008834349390055992080743564242033156901193359339454959656274339604686593247006749687300969758395487707149463924488125322051720557011836100976668303951460576512959955594898146413503644612360063605638164295110876770012614126337231657190007000753286901539464832759372107129447981414539456021584521331907066428426315544949739200157850654312357849658196602346012966733177264319981098300926693381150379939379585078423679754637125279389836812463442907539310406197481825546167052574673400503419296672661568297116365820893507553502096105287848578970452823557725183574166439599793883064137599119896108630079844041984281604481185916291446735163767650925363344672391466489237785777950685015212127988461243579084822751393807897757534022072196472049060427937452452610658416307912259249677407816595572248666133111419017156268977313972279559832918375089656310310978680423401852656122034862423933991990127339327931198088336517895824093372530046078346558480342165134176047337801862972218759775430454637461912737169515508968624956323074196284445827264766766558227138062503440439066525717237200552947867783697022145805995771857365973304250421698325507533367104282626004248109363118179344441761343223995407057571211234228397075413200755264207631569768653990663992104073035246805953837072470796927429103912720761791163582048105467798852728681332174042014747989505004672993585102037844770098574216166687076732994867075446297786839601593476218276835311227950655232391113766924586084895993941380294279736133037296195096024904987896070841189267780495627351208134411974709962738873050238736659230824105359553580136598803233537619095667381191248020761917322725111523251471688609383921232706503383398429544306616253793936857916085478660102353395654981255579340763699746380913799922738308521183353638942174882503336307259982806386251934931341993043073617644274530319186316005351876166280027094041156062031844000335614214456591036204776582944856656632126475442462728248636754762791072755995847668975103047399791847467055523321764321182455148209901068579716475199648205070118107887392316817491141814001470814144339737070356729424784722196520463249895642385894849867487134944054482009275142744960557753014941877231048241199543159892721204434628447965341114746467251344199213152544944793303095230010351337376461434996218499916298737834989075162708798291035632607784707752399393825667370737084954109785871056133749124319305622950045419156534316616062246392379705949352640863048818809935684242130725722290664489583140916189730178503941689105064890535834572184970754576286340079354808841484234143782642010670722696803467043046182814655616650579059993836027893005696571536855116301119082318837440266110635245168656105573407515756376396377426261245727502411479501326499806548906811114388051226409768304520004165526333103599737246116705721140728790990216250508559299562149322803155625553123520409804383861266197678245145552101852183095597189386063920579943463307293233389934105477893529318755637478984388382980182564367558995162417556099495218904292027409495077496977748225990649850868094600804601035608733742192778773872731083810072650741862611540426544986510791387068551848349942068263571748533625450896936420116595974483153791640716737452730062170638042009598330557705245812015155239231390340442687247336987411341070559616767990820082205415478877299310582102974167083993652805397765983786241479939807030032596663561755590270875169170037241402234652453126562718929847170434304710281060052244033146726027635075553839155726761839143672147772804695236540042446882406215797506968374360952954967700128820982741812990979028113464615252891177176284816100122269632069665433712112666084326237659057073099732654516387851732327601355436746456064014341377356112071925002308411040375152361190005466890570822510499375167569496139210954366890457362726164526756882819959886350332931849710730094182261110609789426835028231542653760103141364115552859560338634440585279479374699112887749214937721301595692166408985773411463982653756055605881178754474494392235402536307613709824799626580577923443861887353130129697036449110943215824483574834818600354744172464904500951715698008229600779716024429856098134349029828192882642654083691217306740319770470199137772190324039431862118844955503364391870595232869346991725301000937974036412849740913330181392780309701146829261069802127472478792401266067316198731118732623124422367027508280190432797440307054341129137682744501712619869907480914386599987630266709420930906586299894278607632951273338755897131730431952391024089496501165598597779286479217041212749832938042970334385241935201827248240378869785315767709475528365214497808822919999233086772686180485612673128046391195782400357313960873375364152341945067177177524106509053605651982600578463955428129461938642189860280553779095084824179708980622723755610803634316681700807178288197387849372033683684327582511828576454451507132119906002037974062856353192100004030517158159498169653227840545393344449610491485420827200457673448600924606623057183312755218554254009350591629944613917395880763030631013441212228222700367689418644285294379825028761093211586572711879061333748997947332275031004404982163475578138541516109747565244141462253160796391051708681021406897402382180840209628213112109983281892534124754143469268492037241531562449596960208620827513472723658361906966443502365832083156988223165323570430960367505866673809270321974107980104181416081771966824130463812003520390197155968704523440095620871972909714978110101491789913906101887204325883832932643275751866823773597793553038609508248402845598938778789498342178069495006956254782970337063538496777041394281188617458605459412392035614320415179689446875846834862899272796738472065623853649146779926002738663037541637283785338275651964904525559373544951680255697655220916961856788992342581495781882618547736939130956533631581019289363806581024414955506558449846444239386527329201850977122466958153878005246634480176567776682515466936333607995536628724799084868277643895632495034888002006200774921965094666343213502028997383637289425536864966482634066783830667502890461275040409445091531033346361954975051016604254892441641498117430545855524761896015854744021656332397515379056733792263965434720969451956330151707311575959670471132154631057901163178770077867252117854286979113067533350691008709140324717999328878574274416007015418088956685027201604732957902637617315360732873436200239321769552241706330244744800517197711704684455952916814731815550742139630621124548765850773910479243391897892528701725670223318871055537071164419820304004674960548489108323236527319762655712163563968720172536172282988025469399877666848550528139045672821564231421040413906091692970918314737531593414347049780320094396687004823405395340483688089080990884692124129792857058689918336912149152347617137116027637832508220111632591196617777524189417168738409259390498893836749112703330560359459345486073777991113952496493657502140427029775285286961256560866297419319928942242910281533695466280179127912821642341989555518417432215503701212248788948404783617428687657368684949056836895099326658294577670533126780526460765570358534899394225832579476213282198635706672290835293125361739428731563170834660931450147157361484409445018355740734709576482674690511248755316283199647658406747329931831679958106850309122691999231542933409630256289614563522721063203058065040535079198047135917441135376800872672348194180454756795021666684577933073018140123502449111057439611249039099925820868775143404282608269156812296359788857264565278911148005643166469484790601196533737513823868562682821458850839761561670466557524548175471367581693128456174022476080802502444021930135271480281577422521368615916800148117391873575800995642503013478041715325049677133865942891157213793182534457777786159226653584342721760333784294352587919391034811933068839642699908328931938208082820951510387479038234939429505858039759027397759900267551777797289229097325584545769199219244464558346012459309957319456103996780589050889994635576505921405170096567889828513323748813770964755043659828927535472247539661692236117845505316911339931729749950634389669180136784108733579102311274582757819789332270949393401323536915643682677922182599510083995981331203015693393608881993956936466086658276109088985268089233160859816233328654676573520904910640668211143251863528138223597894464840908341057039816039382722341764172404412640709657438531645302249115430391087994275606363796505235177119479968736963576965306241154961249199572344336176435808538790864455020597033213978488328746418170078916787239159750982727953618267141434594480375292830181552030768760867114188305622176338647676233432261122564820693223934717806897304976282349044354984443907731387470188382207042103791147268609628587877698153661547192596334702941427157898276778937339563827221848234526877806597578309197336026399473825600444847650196492736330405543770272169215110750747657868881636628912523499366490825500554855345480337317846859625841103476060998466805051363782774820523679669927725097649391943381152504801951611666770271247959302513351249089918511396295834474065167767999830649852387903653213693867581609937330914632892879658854871082066722250213691941768043029986821403563497123603341726392389365603391439910786903801890251040326553468114480437339233279886149294924353320143771923078446767162960161358737365679538209873540118758088405169491385374230096459865192813491826192959469815329991716490861720162130286342817263979633355038098641449963697834344787992962063644998580483776096936377949473434519653338404111035579608319603387586733500756589513943065970772577593937283449661563466138982547373683883706958104164272585967917674795424078946175587358757928363895315850156163194631600410666196206139034567976043794203097013500064257983925137269384928804303288320855846800311613987204436911014203591231376529933812874697705681867923823026856847581852727699373948795588024622955659205104273160194494725615666358121597343189624880509473865494464016427031838724208052942512233885120835930910773757345281308235770695969151352429038068792595990565712035652273524208429031078182393082021675324024733145710109425679470221940772481083743915246587755037194779702708900479555130854787187770167211101849183119923617799180738047693588164325294867473025047587630296157154348846063454675758329450439293826329725943927445653586327546770572409817397568293686191894668512694638688897236143906381959770993698906124638054504412584470134309432316377020534580085810714153722947793938294976712647294124055338689072169564249843721304016873747262818762926880225991399025886768576879916406172279418842667680893171866037721348512943492261972158943324878558678587590363424137820947761996509148394551257016695670149985475276930943120771946164491010426791930352784284564275370967981491954762013559176161310010510050394836683300296659535095664554448212228530695351876426166697310690059627168040309863118215079747322351024551020600714246743780509570120258174133516177078447613400355055744246772797235707112708108045684099739159521330463663618026288124139291613126502843180788574838754657262227088722027974747838455176993074588033919815187100285963052816922266931550777373430947860981528365432960355661897709245498068441194382624045692082728006812963570283112499399501591734844442827785308937215124979121013947100222197058337209845207145849554713603371793508937754339777494053636895794927618719751481831985125341803763000718307622281377891030671312136799331214605341877678431358951544270050183645184926573090542286052943592200753259887369311066431878298535999655407601856702927262734412800983609041331790126700817189846326597187591637564745350932784640414919248392634956655941580517934469586148939915135903589114212669781577749856953181964618940157810810358377814411135070008538105231945239563102960472001695482525793779532273479864500077670274691787335899913640264508830925901426270938212881885886662914735958493849206787845998702005496121384160296985715542935981236197101293447225020338138348237045079269632034110403642944305266709700953105311669368069171552099091900974663729713693470057565342365039912467667784133605437204112788770651958258035908400265193435534079312983823884222494441461591645416960854615971252000959804129391354477535461412484182154016189875575635811288446188967990023632788177922169703659960816766991232491512909664346376234804906503226472295027654805986490372915245136292949274996177686249519672832131075730838612666838954346346025288782085311229300464200352489572876000136640523543425889109878032633989220735281441125265093996261231377490128797811965873649596765654616915215451181295757977810863857045547436562451311515625437185401464304388105406731490389503359168439082251219971118035072567921862738750446569208825523595805667422572140869498610219617132795681063748886667946949122999749183181193191191711826725079505509043008242202679611708998630419308761529110692880743315486314972267887398487796293708836796950019447736244538516700327131312585132959222126994015158104366125800524627579694810753055484645867796986382424377412400042051726506490158763512438089775676376463380518632964292106771175704001290276426509069802829061940303241930972244169516769514777660791393287418794793528703920828729714744949763469746522540679751717233113688787368221779078199144420626521150036018778563250518738276738500530945901732262961077659739645683616599317282449165164681911727990500016411625604591478073780048495485175818369984843229760293609028795997669226612503548643131344300407866575148751948527606389196987535933337788181990528084525113510018832452588114548641701842650237818757949672994512585130981371131545523528245860481259879654960147071255863778536212196097750373931906788401090397584245885560162307587251073366586028740293474854332342906043090080228807109328234446277658490724384761396886478213347181685990012963905983304542865592448646791011474296969184735357755399197497963958478028011589411544904805126160558761652758170656859916179327432477822361000579229418986995279999500623287516907680471562511413652408557479687798586398771283670593736810158930585955540649715594229796705002191581553917175102227901277284482146648269151025946475041472883691209375241995666712479970641902068475871169524667407613671630638637800909931537007222385578458440142855552731752579403540503390922903142514259470111463929840952197441015317340104521856938725054004392108826751403246026683125781850453304827720789290351988361029207914956142188641153627945869859358460142951811005832318083676221408648357540738107113456104047118428294566820863111470060017138123679356036082277758222124473556958508426645811309332193391977637621074944206798647652315502636582761172448935556720489026419556356320318450996643276034342131795480850764015382634295465635542110172043448773815935278432829797548250373661547818102904353458905693881723340455592226515587889842690085487126081171097178901917457343940615557065310300327387027095870786034002128440445120260030152582059231483696852571573987057693154580054709036344413529881164875256074013534716680933656820061264843973251790856655263175379279864738683264573438458425022369972786908264322421419711056181118834805256988591929706640614060636757430099228589920943860180139929119568577948288603156375750360096859114062824823170773338928652412995308424340622968364382310226662204096363984157645912498940989618232519399603827650960131816035435168218159138670464691092469392884556878808645463452617988587845080280365455885595518423230931367648747582088727971300615535029725157027258257439525224647981645277158254597647844910215815779429793718845332708927365464443375469367816461395245459456321315169678009339969176193110492741757519734516735139810382834199686713440637771526143765810872336935209324147610043763104245851076155736585557017320068586762279258791008295037431703446361208680029443264153371256503920852219566086590890058951661184077172864312739559667564365328963526823597840758999524614700054254883226311984059908895739326806201542500941806257134329086519064206227796212355276781391839357741177750391876886801408941248624779023127600985821105536970979097519769921838772786134443026724083313893260851049754783252116051530989998841991555244278193800699518109244646561825915261133514851366914554800956110585671765481584541594985088747290506906812800736503391289161222174345200520537522189790304858461823785330702102747010620126687724136734587787942246287327524899104301192525056021130544717756058644359679805005147546016948613985373350822712780035719795235800086186229041842469847296575046917750072573621226770988497783833893033630192819913798138503613759196670919883167580987037683014015890249065661404961722388843277116160544130326488001915957241202143435100670908245954366919980276508013441032704274887683499090974024993908644694405459996606916671023680480664043229011874323851941224218065681411870119217639451657011832404046908056007431253565038330421936817910925033066003126515171350911577436120854908438521004398130631338517748859668986826978821012108640992931115689558859219302293326263430656560769709818381835137013433994621742082458858982718101170925858601644476832211496547221524270325187405433572970324391598722384888477401604766167460675016777457650166935095076879877609892773808011739419756650252470351452076860747661173722362481895425699450664755144946031016334536631680793426530380037237543921001952882678859222993099127787453512765917860322611241563470573840624202657270804113895444523730911705317467306123488161265531090123595120827554335000356268476857578552004008388033578732107904799521734449180959455908917604384371293167137182673510123040274452623557439293035330607056089040971266756957921808452185790211588596437734904159425540425321577514348285756026495230659262746546640875594413022123785746852352739930943578533844093779894561325878710074988081140026083227582883532482218122286325389210320934630954968884583647235302910226674263132544298439257496331130356073172935146307306597067487888208682902658062622442872181814939311469347843475825301072932891173973054567072280492460527323182089735808569684673404385298579217079775004687944816424361039169933026989271046741471399273974863278717755655231395540446704406088350772659769092491758145517651403373670386195127804459697905186230874303504367915565763562890610900178907568501156639436000869293537591085503066034212012463714653586906978249386010104033523676899130666297321200926923336689283509720816577529972089519043670489653008662809806948354296223206889573090845767908694547493105797417928843032311864355781131833931433896337282961429996088209824957984373806883991402402628754009543954874326831770947344791215667674347059818038148774080092934884237567642970588297124996338781722087461333026377450132011753444246984200056870941116397295942001641715401942777132530220262183974770777205850367480790483954594396713174822916478439766029516515469147213569607424283621953160347662634225737324229637501763605634368946844278119802116423597114601855251883900794849362088820629111932551542282103817323949864216660820308403960285175383021553006932889520330789865576679940150081832207463182749169163344581013670702648706514211371391248017119894040853541383523021383572790254077510818290032010460829293203360529904939006512346271773381800993007110941326864936914309850006170943934022160876877633236316183045247462725938149131826229723237474844815621705223721869622705718644449019621009380012133309208126258316652507024636493578054784493268786642763553286181625624734987277856221160093362071543451080673731017428342761879876999959641440017845856835330156932945243838050160683889508212992471441893852485911013935192884966583048898386450990896707337437066402272275523492710232922263504654371833855017298759541186255016576621669141778428774545846644884123741960849762844977580816712338096609395113892439328542427951759082805314399086070736176362457658930138352961892209855366407992760206727495877939709405907167686551678015858255814686566393230623057225576880133194713503152202783273665195471361363085324492516824944577910772902879406255636413339200839175250552970718278662303795945457519644048177783442287975016172466020839032331447026740999215015883085600923151002480019882591406594799792530939705885276573277559426691066213163010655221764774107128650018781076125930541406912418008897106314956984188161172312960657491163174586551368122668143285381939534559808240367996555408923751664387186561268614109081228602936505641133574616170665196670850777892059883613142507228605389278035858812779244377057855841321738216913709861539440191971647631282153134737307337460826007495458032264109383305660105819305853206426773285009455344994165257900356429228618777712565562881930438398990975281117207299709166789669803228229832626233524986150482609563421216024572898361044986311412067024609441550146566184355367641867187845135306138690955256552569379422491401375151383184560827583763529031011638807025680466668070500935049786566902237189488727946590383299217676526269490023757739481356809385304211445288335136204917895438844852407234006034390867606497360175378692112173222773393352843147933891475178552649265667176581709018511617099524153920904637740687652461150644455855461251083010518092496503958751353949333206254560225354917657360526820821908038558043920160474701651402946130084447280391853270542209546183579779855930210987198097073044178625450186357636997386862452891705503285038722311954963826019547919089678736016236624291482083455415666284913700594323463447889878284792853184078323268395933260935509678691342743584414308169470832266948081604600163474545763730034230562684705868904461864912645151907574437857798345554526561106870262139197679224155166553638934204967171222167986118455282407633484591081218883397648956153658056979506929774290359130723538487235064871526945123341756117238299758417748195798006530200812513712877911030404688743747201799490019886199186165774826209363313185619823260568717388099514852094673008125157664851616877725847476204645275949352062767681429249501277036579425740142158192184103272869172777195889663111049848149416421727532430451606760034167780152296288210396683807631120170465734526314135146752072667068905619465930015066403319335889017996515000810040367509715708499832534149667004504228609494330413599129384594491016181972432908929832129446374330991881636217881339503328460729236982403401875907281178364213131891312917956893880421372527669325875706156514768174953562950127371345832562733930873552069820612798460855539058148703356388413790650560265030428226389527147535541211683282962409590002849901326252099789489582730845258479623323804951695355746080161330465518691915184529629769962675399940991732845586770282580437947418852385671414258925002694284588070901594560230877855726881126954095735332970925247583648068872622817224295811952254750139911463298095112664572290614027039830989094958873436457833166880521021080357013737022444393969132151168486882843284041676520555460943228842809973139551317060872041801280004633399011889685534479685328427331267094762073328631215034951138369016768812230940413784744457508849834131976754682118110312390194310126237353549129539250610001053202775087132737947555259756583938444357190119487754090369966378833364418833476901652184660224596379327429854655563752485698008336295802534010281149490293246902451835088901050200455682382863127775715532286494284544618362913956418984590251495447448172987009775238829303862928401425688574443383772263950469782376776218681418715829032553758179036403709937221565021000629304423036075825036358532373049291111839346351315057809123480558457348226455849755792245932240305749602951528251231450272138674696057472905027962296206674069745407214934200882432298428218771989314737262986073508522377172545273909260152076138611434513094884641563620502837122287113898844618722950355545077987222526057160578547760607188743432649422913765151034229179143717035115867393554857665055665452552765222914759428977039686906386719617006224867435318476832520407194814215377747375070198623663888316917187079816695910706235807642744300175173394387981418048550290731260809512515296095330096219266891009488238204349986362387241726562335161911239866952497758322804340157855438929316357049376647694084958921898787491994019803851224961412394681930173246709028455707186994670611896592169991817278107111371696008392303910805524129524352503713748087311599256100516447408479201803267430723347944220294922476422673564902610657749316652747155062792441697366992066795031992434914757044941386728793563896737762336583345312376642240052666823922722065539836746631569766477963440097196456176882911862899469260186180780903742236851100567039355841526883750936421914969371499368531971234520010342766053163563912894002181166404886235997085075875868083451028867419532187152151372134262333121767172534719502549465624133994304029272459457353089914716974345521478568111863325116123988850345540805424191709243484034722535070692143431910255148353631484700295946581834205818088422411592530532498178679999166861722025952552374207035257819466942595631739103031171001491085120051062732702713091682094222329237799047454878716361938377874605351890719666658871673726177801305397326507172322014774090541778301879261771308830303044038450866831081502255307756253435306939005165106799618456756612231547246105023398940704381892914599904736011870764680131076335109881771471773190766986186905831551041355005536650550614908082690783213987074137979852669648273277524676395442192296612179870547387969793221593696702146035350422760835250860380096888321951221195160394705112798405279800940381759034984638413310820614042932690207209119195660227743904618626527893474515112459587046883313820115591949475938579199886080122292545250810750195404703542824529010627266324291860587231902579208145036131119563938320476097908362693688380192080349937640437808223369298433799401462996830251470287038596392428485910199964767899951270648144674163888573953192873173598862838525916609873247558144182330626911383966128650275481579781705336842843175959802903295204894221878519165237182853520813953385435687074993299226420016165150100319409047321721657361124992018643767873355668156820671217203371744950926445365926629046679770804741317059104134630994493820378350342769638380824535932295953433303725784031978914951565982807380180579379069118145933547570126568772052560182771788234795852574059988774457230314456638632416621099128538023876780608089412190936217360829322516581214296495172323586984675076152588697565927664086078987679818491040779375091761064550617667727374795594243070394962026853908273065836411737544096797825339015104478101796570878855664768776196040606624170006539169139932255456350728885730526655553590803201266437254420108592723330193197547332455593027708403960430182800907677275411261178779138513975202028940823229709730952250919044776585615646757184007091282148286745317603617701574428561318072719601718879598164230279906209492989817668987216651379339455668116460445453480249255250161318426297103055510454577448085226822666121216239575922816816025549742639542601715909842268434850981969535290223872422533275347804375512751933023110248154811110560171701760767521817207135411623325979379254109590986334959741742160770772948089906910057111272868212845396679308261549074881682340456262727517674771769570428521651044645193219911777552213280680592115429473578029037742939827673947720763208860976882186861650006289569308466864485794108004346916192735008308651225117245535168743831415080831414666537005434620043412617357787242923125743599934654914769569900957237132221256880189076995624815400843882363750720512753644096986484497438451512869636310670825629914730747420559093611795253250449344589371354822055954901552697172647129496614591930782656474802843876961527904060645583050651746894619928681595158162596235597506496731325678827691202669647050717651520722789834337670279894528088474396221912785696612603117848216618334797469641334016066476178004382122913270838836586838215546693252264857000132224242737023136608505564229180859435983398635931910329425107049133986270644156168623780880834084295675835781041878373810955761873461980844965274169030110833122184304760620438844633704060237996495860124254479883420949429577255792320908863341255857246541699024787765087874018515687242416524536099471622090705915786140793349029300484091943771776425152621502140639069174153238125034555464399642962010614041493445775650494197886466205643799825010737962760285494000769344186692760770604533006452734634322663021017800345171062605894886617164441996162989270843701392277023250061453672529831209225403428513312567207511674642345506662015617873304046214580720711719391565177879205898409197204464582005064677852576455806557181614715762340777924937994210386852356658632868777688574941282391914481890642550604860585692604304308318595406545586132143280686622646573637023915161530147635819108211579201381274179859890293515565788845311130462594324896626628819191177063904005747624804053922677712060517349031638147840701835532520196800975414468584551085391649983665094629416190371019670207839297503307020328576644861553965166526923206551421854044841552168825747526138123725846224094382152087932916416652204005170079660294570335889715028649385342274021247729443038204964392072238106346495964872506213858099336121860208627099295475101641801762189608603949697052447199854069662709696025211198653832997489212496556918209955282749710961538135119956597062588271256280492662901489146223560078904910489929968532478858487434433690015023497126102456775102531390292919405284610084861870252129742143390390672719511099365204582959055271641368074470726312879539611638689501945064692804742822412643827797451461354670025300062099812160044888827827999497957900540565420755487015371970132340461791573683221088276706431696476585326308119723809432197791828441679026809786015284173441002199282197182960870792754129117507741307402896832754342295646076032611972140531667051319178837490573721950601337452781951152590271778814041684136809619062081060537830974718890320965024619854930831870217561292511439390922302741781482549218515262609220090552049688056912296182545419196446296086699137508712467516661093841767817881281839028447970743874158350424993580758682431172274191033869248853914176005125332840039187468325928309472409282102346238458048290238477678664864271074247925209527734639381028769686319498115785605935671089454217492366438192077149705543466907720581667623019931788952397829021080212072104547320757123218467112676679587003981410933904088071378643476743933075693201891656534792249287334838827416845922795576917702487106586481284989826113504032753787005464632037869899228922773521101770329163633285657270942599696992118259659303685074515293039049588349452257098077760722840524573250902527934819576335337240242371535664797509113734433434895876008600108657680885323683570721760581323575597320515755236946303335065993293849516716560898188116310714431253320034023702695371382831509701041030283182932983813970279038957369688193808755915133486747403985574851286923258689583270885391512349667114365901773940027085849753060445130278220962033271576174136187009584445758235432307571301217960289010570433679106275695113028219873860541491939669401690405228491332753655608572074185760097453229619638654054238327772781182793220846532078591163905339444450605473409338275125449869113757839460838502440792771383462840529870143042378971570570273547645292135918618115443261131010957067447172716771786062914372859279828390219429542251999111223099382837945315490857328802346561284642525793671052585622878999988378685718844452825059829753773004852812781670945570400019078308806404288055570703061246376449245573072039994928718953987888647644557205086267184775823038086432362935620407536351834995991061909825655524987021789589588370248174210161166278134343190495398708906552151116188084464893231476918496319743639509098223524323761973404001264509751674602293120430001210017043125404610290556910717509410641361241985659529270780554391109353173343338961329074732429609705069134892164901142831281891978830647039786320277118675242844671369283104480252306239796947471753589314332423362602107858666898331523818504020301920229196828961366619835249391761987247361227021870028037033843306846959231661701683304402796740033681275897363507777071694716125507213037472302466271667370468089037926721365949328189206765772958244908483471983412628146673426537250613447895385546576397750212588945046990036965573157352626335989529029827874444148455263954456836506392233016553629255873565627327152913962676005195686924870858505352090732498536976457782643081227672781991940360675594213121988397655395657211598878249240590261074337056790457818566065620267156749166885707796228791221457939379969656067224053368445194269669765767079867139633516888685169524998755623481457584444475491944948666195087240090532754081016499578379232520942270912750004883005833434194067896051810824743344993205178805307615412542960843326835695870313138474941588954617327104789280550552161316134892745749915249612122435628658964816927937079823589652143818799704444712237124494044085611656518453702227411670813317873682878423792126414118625421110077286428076795122187855162045914374200257109902784291321183273014406947017472341024026945403002438139612154525622944277319590438910332177838095983990519229285192337535284128228264267974736220800488868429509364699120089697970324897580473062585878850412451951331837361242071508493682259219763836029726953065550725042630160640213523359757253651693085151076199410963400999437096677439101880662851288159653488499878921911579394409415531137159116451637744707846382387632658154478226011650231371603832854460768626555458066912180881518645397121677194533224514500745949847010666912294348501999635388792949324942235104558918123267237237722408451115588723621968073440239772251918604768305660834378647660272356206420139265005289321577484267485678148619498315526104974335396482163701837324785678112688307204588678154639416809896550915353105867416241297834096965326285602456374682825571878914999688659505403451589740201232612785467645964384318238373236636131991322919314538670741988862637179552412823673817565128035563674023132002867407049316207703405734247847134949782109332014421008791763791295609393290994964771836921285233939645191276353954498770314611694308659818446126840661783125742354843365353909112459232689273118664804609929270069075333035894012018728723851327965508454338637547666517769013624313563018641319775952480890126221429774449098659172333697065692088240063335714962485411495162179358782210394781960588826535387774319886601059883555150444694169176710866440763390754917371675341051698147470679384348429956200863959016693718405779724217542422790642363254690058869517077405062329911779571873324373112647233643286785208715247811182070654339985838097092713616522859646437448564247163206471864828025140972775330399971014862773108579005864954555525600611074325717043526483961342946081099339093152370194439319355141901750639786608734666226750477836128546484613669645404291069409324857159839466020809366604288119989400075725897470516643909984414864813197160592081070112171313207178261304373774871119542121137470488715146277585240557586897658439067569787090085477747044952351430243806499035657706226256051818399321290859886683823670808114954361039599171229739165232904910654262514835090346295544836196725541726871487582429660114661626689804259506231918400199073056707138944236204007970399823954076184619076299629677281837748771804791288978850916632506734125392563315099311129813260133382237567094496470843964303731918490842542368239640128750663190889888177374652816293740986618663423430294095851880961879520380252661508626050480862705042849108601006243729444928039971824576365929666465392173484900857841598953764700456588174602480142519008266884670664427370773130435176669806880378362872437583494309027944731778612818252095818171783834567302201761056228446530902469963266578810450771929053132225854458884041888792914194487933014524041178239016398720831360211600572875443848739938060466493886127149794547014485033847827213422730392837278892407024911107068901303476211161917002805422577768819360400970251325080021853664425653369446060055544102354794311583795622963407059877119136664022350537507279714673056517850011483194215250681944949615164837812836325230374674541280247032528919507686190853328421480397579535210558422057389113293964577470999263594802370145037601490237109586294360399019384745984753713037876328765964446726982156364798186617218677747372879382315769982920351359109806604509251060807285374521046934817667654933242242978011523098796080880451243396618667746786771593797749073729423352723380792116039793549316814422563560637431785360389862966354191275618364109535560700154354265407572777113228559052297341995924187091929082374211649350827853637663499072252955266918133140382444141327055543485053176725319389774115215187987042417440082773004115194093622203405945008576410626752668004859762370272147217131731631823183681585688303557456486901542300976370097107893091089676290215289713085414159523851778256863655608114161793779565320512912624588926743397125038414314774085819870299927399100742137069646138235648509676836534927527610826270645870671002320215902413348656457893075855932679595428377797635371303119629984167984164989158664824879154628255541116124614428102035113303487557103481965627895837634751832078287690724170585883582816923142821168855853614614023622871577900921955688648458412412634738317165147624693114027448810397520418240921827878676489409194897895938225427853035180248173510390736056261509496542007866761383222896392247613723531652231292151020578826126801595618227995240953216052063247760034542153413804997430866994525072818764495467367304762860161930873753301520391775997924358190618120671103697698625206087109831648103987891353592479222827041981329479310331685012332657148382448584753230602947760123167902342814822088108739636553990998936639077261716462025488240406704174997745868718636702958070950885216851410162990146580034064259366278045825186545211448165639741466659346046200672808924001113666550475356647079686517603814753548968462970409649955939505315915797547539861229638508946896967105172197140943272249553714086146238561520626255054709407308536927303516388194976113884149049660046480764235846022269673506498135661153280491183139449340692021415573637571086184924850411792555372445433169161137431102711517086508368870740732192323815135478997983701019951541324349084089741076955904089177209480929231239216453090438527757172156033304917632028436687473612555046527158414792424893974519373503162865813647595521997337361731324806252623130315890711498573083577501468419665604732544236138882338387959102423826464642957499277372161463137384667959427347653029419685500378236842841943177074588705703921521977397018402480068580915500556914265829835954747574697029972466686513665125394997831722762767017247545280779487809639454427553956523980837534012971335793497709172898295671321765796765591004297015655689952371649420061297381490537655050006971344206671989809167723693958657278369869495173434569798013871823790742385219962833178163745706509109883382294588936224700381871975002054930477509136272096311292817553142457786233729435202544318583416574055038813388013400140568469318742972648452843862247618674475066697751340219016693120404921190505804510528205148467569691139154915026107548297756322467177353192221170313824161115696076965537994863358137775556517001847163853304450183626140803666957845065615717640264214093362884349757923737945606653779571491655241253169715998227755962373343635625953557124878781848246790783036422469817820149138180691366464111997199165499321519793664746750310006060564063071914088833838041528554371082848508566060476981013938736230602645535526050179797739344243669019249411829057900366561904735310951105879945380253077611441992439256822044094795076133390384801037449719923273300696521600574245851542476268282174728215504876408073289209461819256962197414110373869450950113514897485720877391219341108562734828862221357051141969828924506738929099144301198289546299888547468042508056692974579103977954389940671616201937846688736040187287078083200379505818972663864364592368254298473838260881801746256845827189254198580397274253774691142451977151566711513914511957441300098185543789626687221902458110808337667707246085180852096915768395234172579877406644055589951692777766639038416932320779755092461246523285215736661761931431847095274470001467317731782048267182904453466711704760308157946661519293368930073439615048248869587289900677653886378249603983594758407870401999278879205851091580622143880095551259959659979174293918616589714490162142309305078243065097698031608614055809296559774607575397284701512455376806877743628838706898109837507062545637088264082084635041270336720029306470967656002670227575051269014572242707483330281563895112980887500943830777599664411079775141095978956609372998185600936379571568444366063548720656062113817961919001759859721681454442547732434453394085645056829875623661126858894678587307969343366463694393822645768516846898134596124056403025130747434181909953365541759185461110298009156742727846966931544324634650459693606159070268498576695380492803800862918291048083784335058562487917062215550201789369574042806843367012428959203871564855841243529941677857584003979551239225966906418174277234172370417675867237937871208299689972706443745598725393241794085066497203993065242712155547448071845218752100022129874051715441022451014107513952592021852517645573708297613054417937640856285976387340565016681053997338723546555087720459328963370625275622027067766767124503237778602227414668008249219557991088237595330428673210619628188245065318834030928785484292003543522920669209015187320460890730715887825727088605560752506666778812974151126291204376941103276430262637144684808689821945211554619179911535777621807380226761192482132055946454646363619241199287343799535012765272840310057266010954265225376589522212515730052879812385281632760124113175515396195016313782586026020404349069398351118622537111648549599455780019783435408969959988249649798257056007587704481157132461368492790756064368146503796428407152898532853647041807789818347440875407990680855319165770286155459069744111564595873850427575490925582764008341638211220949911808544082363085668320124892596227472653745056898110702809679597486618729070563991293927384122682008684497973306573697959452535956868890451066074886932149716685451640228751320098478978427749437153073789256206030584029682101761402064782054290706653900121523996275613535433717343677644858870416619336561142816375233003769210739936616546393674121584050253076568169639597933778172110401611228471901659688590822467156914409946304495286240652493961725406295948131437696058569412101469398159000407985187737614050057780410754749797924839157698931730309549114870913597245528792791635976499567922493309410184467255205267666232021742923529206321340591120049734170288436452431817167693829196746134012935151402356018958259437241357400713372918720597305493142958262059820331551342802892048861586277099888548279047860097620853866149295040532591635327212110256844760072232871507913221534806891265599314656685275062593702662554169672241398242608337646597883239401878641752894488507490499538991614867595301007507961744917014402359494479511375435062686939973638968596245679166003625051401433326868557818167199914055554038670203534934177123598148108639932986398686825155706953541040629236778523614677141131985089640607521621911330444649185150605219859437377619530494352018762609615646261674251587235904802672204926599503765985790996412960781258884063582078077963054836262057841778002174685449931697973928871125978160685499257940378467332535582782499474737179862310836144561056717212133563088720335374782464127340176332775200762432268637937069514880181908004091135764570087207548985661257178480673714043695421057113276296473946292463040779961413306501220811978285429765969763806460089599829122473011456491375013609532242628899012276597046629546197540673481385906787107447725206722247016618270657481408797468946239589830979803321496226097494805146871540641081813059637877283545744969965389105804205832182980062555645966701483209282426457592076820584675922607165166323090939440308868901924452557714200033257457633823061543823040773778267105576783926032696408923259185555612851567507649056448545530260358073066831713151920504097584011464650409222471843991472759448643218656524065337420140376016599851677078453117938522836098985123282497614487333560754657756135492775190241493196894648176117635026917286473141285299198095013520133687933357963857016610119375202718077732389629378596467301446471922296257781711996440788070294749860872356112353915095069285674807326461032038261427714065429547543643118616130087986944593274824306989323612082846478863888367941508301754923768095868781134151985041148147374365025465814610299143408342110928787800974678251434238551509175148343245858629053797677552295055065578727511768748287341622579109177997988421037073771762345625353127774827642751627652059550740455725598312876301786115909511332311528550694426992962478751412801205300733855045408427049290152155276760755750075608152050341512682317602778626666373880216092707926703875312622542848831595382069840849785230502992348189032069860457766566496172363654803219245775000022962328917549781239312356796030057057252913668205822742768030448502009186814564595422245375494843725361023938512359291151175298432719146905890643889818567307137349684876213565347873467644429831504216831129857235961985161049255638385981111672899608673955109717853312688092293065089933811833493134708780260350771370216033277498376223281719114862430503371270763901683814279951579603929034082744724330044894668746100606764657121768090403945032546296129592196998438548987744286324351027490665289590085329938739265005229209039551340021219018823533886178364831522754978829910876820398998734881150159397903951842776455870595617336119786866129794567781162093660242724996855165578546723344904415004161069804370845189796317805377913467432095790466289045276104458562906348629605861972015270092556381343022783278283800863525227807460400873694653842242743882202369179744899814392166127960246194976652936330986695828782243560768533455047758576583742906589395227916877283237638485588552655945371892476347062146998670248000048425299349668347216202593516001702852805955191438426976077259419412280113843088370603052413406121407752204057877050676782484470967145614415504197015605322784900186430450455295017675771317803082540944499347597015230221825934043499155409467486030173169563496814130008854309522490828076298382073296738547697956006175139833020343675540154501306811439921412411349323442840272268974546397638834998411978478237444260289479225681316957444889948394520981926767696336857433740394915345133532499661248876205348303657512130029257930451756674396079144620732951407832718793747753833309039379593943784417668889004162228775874035256630006203281887978933400766994741496527420627382458566085435121588093095739125856934883099351232664801623096458276084007151205985040092619358176034726171276300884440841112178698612135434177234502109311361711131469533759388011520533369342888787242695502587398447015691546609999748114509916642485213794936337857471283353268099865084959217517605129066213697122033360598843051087619800789483558910747563028569687621094886671401383621988570801847777964500976236768398413776575904328071643840847195145948062125003873969903948045494663890372386176879292428954720903188506994133200351322894079663578335578760177320849861041037067085825530886058744457964604275185829882136294284109211142940593302380753628839658035197699157701631036766058577373596151710170275331113880378622650311363679349630430616158489069305045732110149734353346953557164466347358177764749072426318636755722133047407019444788978180276351228232128389707994251965695049849143702391672764818755258073693098139649697426635637424467422633115030393177466206369678521116251313161418634568989030590981543985621463801890841664279907846584641815758677116277791105015045071077454032523897653389441794197208334400294590482936978953361609919829208263801290634281179925620770994939600785256807124105898059270527334726988205696650565360844267266136058218940007478713882636875398775652125279766925517261280466366530910350798138603185780181902417098298475066807131262056014780892813285583306172364512463875061261340244972453572653385113907716196443902029145242941865943824430488885560325706105305902263926477402982427146585767651082406407901221209580511915755647417783921426350815245881500778327053769552660021641672416744205033895015399679411287511558746695781116319713146981646549333787627338072086309515338113937896436846011398718023140832014057251746433036420747769191607673637861249943738840057234562655386233728472161985269565274038691153788658550475367829731038384549133282678189533711339419040705027607503757926088174080003609455758504942780104916441239855610905671172407064858328108287323166966180782553893470397261267185816971607246511118419303987668751244653605162209097201324059791829379369222319792972607901613181697073861082718925328606217011470053763152834130129139014885481323540839403812435409056502486448382943441963508958648047000482269691742166735786368052140926576825815542308298628422166949513012907861645706104558882397285148350416380522375541998222222613567507465233637261351329613378882480031425381251736573551365547725241197125563299309522703996357224082258419176759995289604744052967191963960475764416521430941117179160708499099131612003331020587905173298310116504727069717837176580492051145955146377848857200370637725674845271959632943120797542940177215622840538935807909633840307933601050043540583865902394108118994221310567828540079042209418613788385098571218527789194440104057848001668886034143756995892087517560224084104230585248144038300577488294968376422254018972746678136064193709438107907207406689707552824546406378399231692120042611094023247156714878782758902925987861297272050259306092770025239161383417376474585064964864383707692252467199871418778034460409953756019901031457411663576944259761228756519031941342567599041329243958544145782701475632232066288422244043071972240219297802066226070039427602755343768374673951284794246578337593444817742941376012832250615244138846486715228638417726680380931407441960636271032345096339261834664732519859156300646450026550614360511688396449624524033156714847563862990172862983171552935091233699947858275445715922332158900250889067556134431076984278920640958353462225848599344653986002568369772787346612426641462370135169454319946892310082697190517461279450089659338147168542810794817471284602486131382931349659224623264542004313736169719287419679420366229889869357379858447583603406601308191526685984937356809575258996095286079314417929714480251836549762085093698579024914347736864955052547559104978359248333533037189092310775494444441705403998530991569430776897059149751801730141618322642708982562004000445704588021915698779843050122383755679601629126542382154944894745137110953515514735710356993380959533497561326147834507170884590734090563299179797592227935406437304928978437940602019133649329084994354189379120537432127099584133779254586036320866549235230408467530652831194799343443914796594045270869375007240801105243537551210151141920778774543044786423781814795102744892888006499898247333514169251008142374731368895266328093913554145559682760965679565650218574886321869251789362093797905772397189893598220204927495408128762043281770486830780412546964106696940287719039294800237066810094315604441815492547511659250556774848729823940719131563823282761555651266288244776997341326529527539834351877837555438157436557832868860884323377446967997786481507927902941141434135007295695827389439822200622837131407454639221971199412948360986989790962801584096819062929446769567888105708289923446839907439402156112216910476552141113902388559686373328699946763429418405987823757758706423872861275524930366863418545311340630649070611856366478476571686094321690927735354711799001756904608478363539194842924854336794727370999588785835354620774441795348804572017098942288311142412811405968649019369309794039060338458379751485421633305260918632141002223475309272234304451413366783437823200432222239040627009676174121328780262014179860257853419300662916085860875488258054113358984537826260696502082263881839206247931524521300760553327604649167284439866356819813160847813569647872394492488984885782117769016090280514951082276009254044551125025377222324070823872729729138336161105861401021145211265099730295472566723833214494975001126689680971856210609543231529389425974342609713934530276530725757451389165298608004543213905656396623092319024709571821276571079914349968551238279368820978949181970239175831447203502774280693232123316891960997794576619502759099048173145708351773014188621315619750638845348460245214600458154980493648866472536269866738292420441476932586823684772071968011633930830108369552237690396708385439080589803738839696695291066021683568565350285413955028211571243939966189637279783183528167007087348234104166374235791168010688542957075878843005987653630248404804034673249557093188235570055865308468176821073722922773038602781391395516113819317962455604080192734338592770005805061800679617679557005043928532603628715514321807536582013134975660466012697813160525843868025157849528227807508721560022089142015771974588919082900403720383885261805815816334181847675599044887712070363506860330783086374623134740397882057624574533532270591162435600756321418730298089260223359385308394131991041396658427010159659803861887367970153563053685179855969351793998828000350988933242353122357631658531159106195461691089255497035067582691802792874279888931679161689999321734986376367739263504981297978024580913376753119655230437608855398253422447784489461044143692455294749044937904032685834282408564636246705710770092579734106300203074497052612984498283347971801259565987925033329037218819852603666497451577365998255294975491478344918206509954850839946565897424434255992858516531060067929574622998440132894532618745051213363268578329001641477513648458271001076218934667725490724247487534068678299997197849033076735811196639886367695965745180907236293106032456110257592433656623619588291279048843573371524795937452176912261416289077831627770250156273981588677248181931641288868563677381789580012464114395392557129939291446373255676336030811630532389592152632174865403199556671747065873478767998252175136187687083450945231246247175862988348892155677964706565772926349879110519197505211986084328437573183019884563463929642620561168744010154422285690270358450810484172984054931096995563449487702780390663596340401221638486267678067049133549385558908845110663237220283380846137555097227574841899364542663518367270165010727862914253520304511727320842446475501995678403646943916685437002371946552522593193908081082500785146117943999154653138331931293353154165403377257763621780345081859143806109349471869215859630133902260621869770692162663764845060167084590931930637948069443863901924797678060260170419085147022021298790771992239100285512613698901016082376385924755022363627846674771277058315389922444223630343306527600541173387857308528367547791717801595734350868742194198889808849234474180390869333851408444712338400310349834252854048794768950666193871453304487344638274599983210685826719034057616718340785763238893821169268207982793107013798005414267428175618561818695147089056660162479121924820282226377501860120060715454937351996895391278559885714415287469955209221067673527595613252889295669296029871472490560664525040588600749556858132326261249158533304148582895649994823138247591714071550153144472380015482301565566889441528560121387584840437238142915025765988873313756467676539156417763062449646263822830411182561125469781866003052032480980109910254070533898488216497230776408009729756862381818423914141526678299996092188040948804580354898583987306261346039936437321889761713728919514311615082865422725893519271802427381803653296630861739591242791738093536147468002801811162514942009709686208352773323645684933646423091920008499934926793487215808040855975268240678468066998136663802853144491787759598977780708529758833916666257956756982451596459652586868362089985807326429367223489420020594107632353339948572008524807616272258946536493589576979249215706058545550603392469327818530170679735458172990126775422959717963133347421537845616403572393296504250629721472006966703860235270263646572018703356368580295856098430673739571141326742234084208870139755150274074377312111450192162721696139157630858806051418529259279349981552835950778296543463155045857073066470484560337970053524249177991290999343546997104458642366747200139941698082809614315859827317617130014439102896298285279082885644078934291581427607738841073225563047797471755060717239605616880026809525596160414039807028762842415780958329938625549400901885949283570459879315499287590437404010897147241912212360734674819935128923001389661844541737449561129435103862210543238916898097844966657943977766202001322583005080036053745095591253690593829324523924586229210948370082825100622428980939029931738129568165160436625332512981574376277379443547314671977448785392317855148457347102935990628310467412245203164988621648557762068551168253755234451267167484369187208836798938488990004171848219631366644650822180335149798262488471459705421798002591505458337351064954881503031720546423593115694165133409694983287679920651321471889015030905799338505907015010487811245709114497819979595263096355636603475441765895082343545751778784418531387265982165768720043786984804273296379044708338101974177664694850782346886856840136507345492081560066364460715307887327743958488250635296904034390177120624029415567547757613569366335080626197330333431511870195239073069859317740204201150473877260326743875523643658083469929740824717389677466575424319234895904531296211046607471631587464169079033445580303785740209529012982677820695544558688779049276659490870618909221665431623694984169058267998329886552760914981683373709539662309886402585738133100441397475025813373446385639824166819698334377139959263882482594603628429749544509954051453965379357236946229824125549848724160696795819051372538311961334613568276563641250692510528224113670514155276780232008429927912075383954937580133749934132691922274027713006303442009561001085961211748553334412694165328339663327449818063007131014331908224474037890541664314252187382877866658567930020236883361970044569883389892604925190283032277199501862310207336844875312362281669322788475920412233321937791112758113960840880690555226920566388791989512275231605770043141001149990491615819603692222361806334943927084370524916221201367454305326222329207398288552187495161793999538799532023616905604017458739912647766107880059164497179826325888380939267125636710634012115266521599621976926179334625182688620723270143505281958530596653738120150170357666750416683965695275647223005924115896924136459089011300448136768027516863263545501302757306642830084364111384082314399931881007194437693109469068456205484634888087660521063032423789609429144686905524133456338434934403102479171586498120522853752585664559621432174389023625066145909109219470416597425033203353614628470434905792978051976741413764714815308976594209525161271055731839823508042128127782608330288162164607983224805183305142390780571712229095966107344513096295126576078656413697423651794903908146662994932251080049935938745769613433780917679729131760057329089763746138342019448120041664004254295334943051013234044758763395939432516269105273348710322308997266034101455532410208346361255005686108115525660746235698977037826891959887486299371103580145260560048660280688172852219237326147032096248748426143866247944938204234684119550196263360943955130000602408280643082113058182374478539156585595546331902577052580723985601248797410552616510354105856698409669839089915305134903404586917809537185228207432598161575600640418282863450664427605619541374302163584704659046713113905372825625983162914416182778082291574801045738261482520085873560058989784643194582307583405484343135949324157959786257135989214023988013416607456851905339577356682728105902290631060440548251914453692353301135058428550068391737896411413920069093159110245923955006815467776622935285818101968270480586842840779154407674681494434779058203620628171589650343965919679715825722306653046282891702426332825089555447674180050699336020493541653090052327240005096599045635518092635916527798821873827119280411951137710637054136214861737265442393099400965914197639421227876770971233806724648715071226774609148532119432722270362660617090177517523351136383885575517557298833565163357878495647235939983511288121019788356529062523742659114678896493806534568623029143346924267024961777628751818535773822877214098616540604112452657736358587323996967216195551257099252946221241563861384412761084337350718468600494130887750658198040788603268733410256571586239232935755406664289300264984571531325608378233987077910281938384900056126043924243337193321698360909171961147402378041102754683759069618963902734744312418549124818304071337081595919536200373909392050406022264241927170468306198680239030027393313212234701563568044595829422814703625063397744747361419394146548766945462095770266919610450145340483058459788631342126726058861523800716487116745760054970889811673998560280043358907254621127880440282553369973967814209592088375028954621355501991692242496524214148377935121840633779570184183879872845004663989916121051254087843544107468978814174914534919122771702556167647256916426887646201412865629032696920521196870689168366263423472947165133292577184883822797878059985145101644940008224955089212179879136282523239996795607235019949316738210270901618198629429704584243585099378483979350258838477867586951349427680129823571755322033151882639027287845892517328148592048281644144521680890001998244978842978604273343318585361912065285916534228564147277402205682826124223453039184218651335041104275707299975278300249024803966092609292733654926132363643719860477157179419527787890967361600600401691308829299263905827086113025586235807858860076656670360428657239459598469584154313112985684459817169602849522443170980913987491510776288927631597955702325631405517042168084810729261725296135354548818877582257743009260241583836168339804896008902975031744901601122770205766243280508774335053647744122508607501874887049301457539203864874281385595556335232325262243488694321585381595643841435016815730865583186491043923156114456216001597802533633538229127783073217281541814326350510326714380047112528579238993006586763965458577108370214302857867894776551191644482656323078334877695608304001142581951369978706032591792511435390235162205661482516647209109686174127753959876207479333353969359745675113338872209942402160298104800213665633690972539120737089542058794664478235084425368004172714169988157355097029778802526202146680238644171472341531352054250102729690103870505087654260022044593221527435636821040022991902698071912336219329481809241106291885432614850528120886664987316640114791193563277057176331681967992569936577493193081803114121698020056318334222391015677478902408673605793148126401939744260709018436627298854079912421460159886919473982759398155027309002080428267692708481435780022971636055027436652418528563548242862552555195397366218693756641225521897387588980064383081275346901808310506421198355418693435626743196259821858129581211649553162728318453273169802943536713752021956412799068535700093900173162126362718446808861295559772193852267381244325897851175806251046675741049776731591253553794203839816816234472399949202091961189154592051706240521651280475021112754226493090971971839254474044167481360569291905390697934320110151006857073174144997207169285896535842694186092106264568615129162133909771556088037936450082988541054372892599017093855912491186180883566791709702281497342236300119656239766292287514177658804364439019386356019760665430529194385765438561782642440851951641210939530344302119961326084299112310318379451806249137828174848179944685815021523524068462367215814142031406177695618356154299244579444299981357724187205801129175846538745472853370228311175674792260373558402765683442457184900367998143517225138480441337483238581065361019013794598635179981439981042433086613962695171090064702154754045744916930739479006767596874132343908559077233627464879901338373638714099421691696696608216086226736193330932363199516062876099686082464807155571733332894395898958800648785193155898622994236267693502959812092513854521073755377163274165566066841479831902164402987098529790315258503747117261380422384089492534946591227926406940023205741102015536399858922827601522569623540684087876799410699319329435981418994320108178620859532201390740060184602228151120347083281691183658944154431283340053845547729627967518389162263556911422023014868188543390468437801630830734607505239462159016152872400504327537197676684671446374255933059734321142544730095947300995365010577684643206049347551011510454861974520984950939498814121822846476641024406506290235475076659714254559467751128143443108253910583161172264164403733646507179633476628920816916714494139038468925893705821997071637721787085403660486214131095085694831468326856819326893483130804832658472953903946664682808224018703790547631878663097796789351179845649515112679054155234095446925297052928117725526774280043259895315527835237222249979151176136296442400824643149230207805180264034424807200562047651473094083150235836616677756207306894342070249932518842803246913549407543222523410276762126226872480546659967645371194413929734094647600922754884094911166249215133271975999437322896074968602857175790127238402879392675035023987837608168354986720609561792549505832573249280436522616752658099578680751972490144463996231217340452251118252557410316244996469257819297500366007392476986365276752030027995342856221627315879726420287007556174823058098673513676120195172598532221872017532615438929122575952719301548763561679263137557317406635550204407924630036845031712843795915680377739576041490608816526536350418408821614457253692609368760981115233512017506519004857978135005919635178737270163038833391493844689955414764983264728646459963861995749122721709414552752692608238000029484009534414254601596695441119179272637499059215979542699899993621073887467970701309970772078019223039130991672931441983716945869097204614414272987120803108033510155940038659706558265461921286757341401560385848601925326066951169261823212854106401897666012821325114737515676986583502117866562458181841156958934886677155004281490866884348632828774258699115035139189328445185810674223069185390887780235345012050902944934615266614848898414253074966686448111790264732472625895238915465495239276577663504101860602844816505717527052002802266163474091751304567613865585917737440642890151338833358919418781519141172042353140710042343993671083098520156673162366547500273742688094072558635389756780458170872469566578392584283388089028931991529220652941589575931418080373913846401299478322885697424868417498094649669654767309616128879867607959465399501513326910952774333463642619807792310588289088555199681607028019391741835836684345079731678430828942241782961342669032007397642833242223958281803273187159421586562274314780678325175634356300781476984577501868722918806427666418037202191828262618882784626459806000283891045527850662492263493185704997183823633118399874514893732754383196005890751802464963033309232504666546025557308136460319930619141752381992624489780093151974594120167411434125679617678002039413155459757676307117530840126653230619316038697749409915191916506604506696267622693667720802023392530708869169771694654030479020822419497982187517083950437965517653204057910600178492630931814917820486586975529117608573049937258187554232137584519598643125938527941666646489842453965160810562745936360219538509702920797059512835064554386215061991202341701224459865622937094845078893541108061206727820670691497845091270330936241523362693063593227482162022407072366343247018075080954737328759281535309379713600102798948272084084697827892159264603270449945392185638210590343380597326802593394114470850001458429827524828276961842166398088624983422429698976235311131439540165150080829711232599371749631297056997198218825363482315228692219630123463866274783133529230948064823551619288020374941260781360198953416344376387295795742773855773209220171876602485261828781962669705817758047143168337474437331275854817132874371886047132737771716529705370277813751937127360229960950032979943833647418909463762228049077471928180154983351540039474873209721476761341821094557954495102665394780924381547316726968353990885426317135960510397681490320261973042793557479166352932201668262572489422196534860888815953135218549955652599883110580694285617495479573965628869927984201350214686385847517076881851857626068170185164222742335122384472823967460355651040360922952933539327597949336565413302617729224769864180130110706290290583237614762867374114077540993542213665437392897563674918271564335124735136858561860522582756218141672550138313640055361867721738736555256466216182411191874843134116634543964904383391263167838243654479401671616115489338445571782379298973116518263621742122452377542586571097110254140264823615241201364064128435126447235979438832342330228477409874922780150157065234455974317280291877766462833930653437985644164516148418850736299545781995735494870328791566448225208932407879983372497579691310744458576552794330204226198591526521445327698672565987337846603549895253018066990266151199329737734648117607088023284823872471534303971354213373943860513571355695821066326118502987541940483303365883450068445698764815412388012346492098029795853043640357773573054275176472986280220269865754415089048175898767208353734762336334525047569741903304233139827638914069822958704043668139958031517262256194451417687519828878043288836164239149725493742841855916987351351591166611751965954281670765412192440738583347706979252303954719990174208394481335765805591197914301438826861794552017777362127330600574145498226874062645940742043544316795321749126955673487594946689998947044061503905990467987426876269781996536424574798693144587846559119363750536999038486146498535808391414090764975710174194380901475179501794502580940132573377057448350449261465200187667374775681616379780133721757618129591734825169764960228316660958115681560069196813085157658083396751475714056467701357694805416020557515658392202038100628513886154546884153239635683092882107517016083435677852189283257909988586585487185380406261471000609313599951647300439804682645030789008860005702300808361163125318505274943260475828309701554187788698783020027958103381480172700665941044710846157998335179947476895135386812631005625081493301369158491261602653527763263763329349031972038940462001322926560773362536783285894809067069152927171823461079642252043487922647620879471781651123419991363893294012439768050786743661778498371900796006338756040267376918006669042783191817982621123094823250345949194756312059451666541847886253285879633841268205232161583261949279754580106043342447197897015894381853573375396973459072525586352512972905713899741456427194903778293256353488550800786696813308919426316189046643627941370311444959217063729318992146491291337658687780890569037070732172098668231767497387044035630828388530311523870814975989942549340240736353644557419869725880706762060129810782093602127814461647638842291638750976045231130404408441340831763364826662091756422256338753603729152854243833009967502122443495275539446612780466456471112183088197623659076974356341792663218006906552245612949877191367558003831841307643904176128517937376902183298532499776883286850580280686923185790890851349581317326464609300993522459072739943764742981325897125804323856586203065130867318657679484166833459013560062352761726626685924778707843266926497571126161135631439963592977490789765039371702411753412864489200140415004618013889937075659691764329138047801830119199476074884353678498272687883812986190877472711222275473212743777294652588510050472746173494495474973326988387161886462738058452171298280115852910537485632033408197835144771589104227295477696884990371595251651388104509174719633833806137768270854573837688207321556526029066421083753018086422116958095657653641959893185212629141999338300740706392306534469809017388471757638703041724793156958429451684824694591648462783086702488836507704536181423160415001343226379566759461390403799874473138605014608473197610751210397469440645397383999594243224211826872825775557208022598936542320064967428059680230050886153545262799871550035866837034269406471125897470932428099800260937145115793952858899951720125034104983497955903693167980907349399648658911702744288539205809058896223131986050212513831899885644666636520658463157251401220863358762282917777706181813728686895003915573991233901835397471722601456929875782476732982689350512529161040937574283546033344893880910037225047555003860370793743231772530347615830758451970265543500961412159774870866423253277887742377397420617255858364225238680972123751535519174797088595515773263346926690481792643331092802464111466655769318275833093494213264163402123028823829066146206246686548739230933465638334362257700995180630772712905420407892628536634660024012956110170836281325328761566129780847164148058061443570846786601080067922570121966235090846094524376126226898763526544318533638180916241006723189912597011074840395681517826411529338321391550277546222340454819851426932298853218575594987049444876832517485761593453538829269727087387013121704820551593682067228437763850343979672289260619771575384278933223107752776064942807514653559385647654011072150724743879488500380745577045784164922484683482638607971959902354335717221324201320600611232413579786093279552179910796928326120104690270451408856359751466477250771753172557686631793671501671073161085111459231142498039719225935516387743967275545085770383264611362151562599526769909053415655037788106477118399821563447067979792630313513122261363174783995903697526668537473038159914268944722061975849999090383271351503808077226484568822992883214130309355187197123823536265801411984591050159609835368236983277353687695905959972671060943670385841591909441474638380666079860647869160710720438992275250920970059813813416681536523693243295901512133010902727261417337171908990646505990697288824031809417091034765070263204256003861655625637971942672690520083657758075733722845291602883008100696650254244341739157834108657785547798854832400031786768763898708288639486556301959790307394057739607321275388159030626811911556609762035488112636921758269516392186584484691666521117028076816850329962561028880452338901567524870765874526703649376800972401680358434145269675049338163834313078902082817768953816980865568027764492923744140592632989819443749802534186571926020230118136191964468774685529192488976503818228498932260812580883499482991786186936879210433571604726711006214609992427275829736982355832669102637100654270748602639621218466150610020122703813395312102541375787709038152557329360612174298101704729442737569997383368478146659921547753019597733912041503653880676320139068732788893357239419321128033483972766600669573905509458778865464918352417746788790350901970434266760937694495176771998229875906095737187606606382272679582710319480340284309764592095942911437574368750382650291166875937750031884314193341533793277790452728547872076435817111046052355931020496722250030987568367931246534421487361698096035695711232503093138957600608410388927866294006812484143951842869440827042247863230758283370585252194477756290016942459115615692697643217629694882953845973743056301635519452220506686265886296566055589292372058276702609901513568638737210376607154016830287096814668722801208622412436145826157558139070647323825998116974108377797048567244444764944384031614081791065878026097420399792510399039573707901029953046089038163638942047440406364371367609344817563274285338552005156259563651156857884333735742957693792588997610156378923226080873970600426851336517862207362588187043603903369260696115158998815352921970630315786807896639042588997860350866270462607412727039269680701186519098963620197409495484755023474570922436450828244205470193015281951187499414079521348444005785694902844775353202632201195827551678729476317133259824639414718282470803286421821920638886989171005778851429714922685279554764279668159533466044728940358717119770099640244926338368718748396056097576899287948338405442331346844016170092306267131946930334698739805274318020862639982968024195892526328139560851231836161592690566644825474151338788950490409482053834318685542193702921218247190366268721336028928683712004820280095828738386761162124849321098027474928744371116448563373783965662067711099659106873445877480520355860168613523446635128818787798875276296375216397560690201617053632744817901706067505837468724480617770240699139782954683040197663945554101192925216942480755845844371598032413150698641922825191929982578630246564826817508346887482167341533068457125700417068492889084245091238082755807835586403714970178069805637745240956179270033641732532058647478984811798008277882145535147267144594766812367205097274209567667284783384200899215349840202587780226400674139832235408885694626231073694506428397835302840515499425322049909425462448778346646263675771650931298716410837723508149595809467305679853883984391188899197516580500772899949820838757963300262357135140965907566361030413747141736861333024038575186723399877272892766556248057879241756323586828587434640280362219721333856033093361400987027968967059525544335910284125780683165285958588198549391393935891371068592500548930872820264514727878225515371731952665956424467629837625875978550502592963237936514446248818621146843958170052671980684202627610060610963746124715850092287757649674329954784654863468675842707841671134960477634303692029127550825623463229748673632477507273417066004973766676512014015612772933862548699908474117778940108379008441911917074187422175108329852782839241502718557613264937969911921187593265090624033472434947252109356519872030906392885151063681983704643513439629857362728778394601690292414474662026184260416568030349787347798772394072499152950403889301759090408233698934148199759588759613711075152354244400416252865331842745987201694427950447038523289375690806915165992783053100868769660957772647459954937524394018238973086523813098922882988147911568978269662528733471795308958202712714678034096258549283657313067803274784780728253280729445017648443529950117037352491686140041467734868966375898860830167935194231455667398191325625502071643917892729965306484011700303498858795426403322760668481416349474018244583882451550721644553379609219831243343522853114987744642913011481550811474525549403860778648751347111314842371233029858210712144249249431240045250791405259503922988842996104151186089086828757153965094706824351065938660516718532986316393035995060653560220337206097735064166358596646188082032762492090859917365494119291451632205776948938466411004032956233542082596329747519115503773626903432067348555772077523690127987891058547608177556812761210160528308543696343682708264166706878349073208167865135416459075711466763434054479036826555078856833698851961772293574750963639198801670352836979501439584320320889764416740080625448061318099566789684919758677346408910415039655937440423165555747270390296819774349672058178055186060247062065974311085167230709396567390979574369064280543983893586606932506339131853772098312878963740215086078656784179665260518807621916201682745248347604620893846579804107693734151279794624109554542536001680769685803652646158674156388622573444621715870593326719258004168016765908396045216937206871640367515437367916562031911354822630112531584762953426097784999280015948531720907740321050903069403866518894483706876939814829607444794937222640282036025728657813654921315823385142513593450982566137742724629266339421593593681834849784071596301961669938867571033185246414521062978048527450108939472455551380327524699732910378874668834044598031339825239304945177221755727223067050081596186533391654306353803955306864455078307365978276360445098448372794190150263230931540564497113023419396694376559141095936243669699385503195115533305919972243557506602957345023607191607112061251612231194830436142808067898448944241913351497599119406066078981804325854386408096842097102399937251990697847707263651343564147991081728962294169178516706515955770946867777421483821140687016587192873837171988542380888773616100809962799844324626452153166359444159866565170141046067737383058962563656989425731124647839719839291167578067819728431273062048239809118436828337111453664513088042533449830738779712059490010987939590619908204668861568681700582871569518509537783310637801731226048744435490700733005630800610342159578167583023518694743582236329252950254182824371468122782017941550512247827999965795889623760567393540380990902844649993605414546105874638582128606556930892275077544135834657194627419063587668969255138077964837408427428848214176070263418018188959807701828647164877502864780374513505973781082546299622126124130476758713666993501138862840383505775561025055196723434875835611941566106344868124358070154028073427399939749535856710074516700861217001783431487995980192099065753570282189318891011169255313707764830922245339505179114797194332755101629663324198039935517309650176432849946851978098256299467619102058493728308949567348015468504884858088486455728801962842876873749744343050194452804427148773066045301747856391341007694041113826126033115695747217576311143895066033890023450436760400608368048730184387724418541778846251332756180379080086711031065232801769913917032797792897265279831209156713836420428621925527297922574251993701620336319084430691074747682817766302237158671048990458220186712744161615725740421175861965200867196350271596988534044616561429599671605987832999942868365679479126458204775704269362029426801142454776429889967272067734038927017236505225306460387921631840789711347867642011675261675489904254401814573265183063333805906488145339727046502013484668476240166998239606316070276245852359228287859064682219695827740984507734095443224566959816108275574113848592860923327034049650576585129641230177575995153889093111381860215344630092479730108100465137322308383151917908965398039101571377943657313914662182306206386019486398309997563471658982208967015038849693781553457298881862453334416215735296850078850957797673266827781695640850217877679471379092300481297173859625790303768450372929059946219036042294888018007642527812769569497116486829795588199709783732638664656760274484357760834599427828095366961161358607171504106775984832051059450876676830681632674203569243737923228521956734649611459670647147481213998924116062629026132422763051690246410374149240079266830676890229248120836180976280746911979108029145388832601144727699363260863740496048394536654722826429060772358184440040465072010333080936216998169700337445999191728420066481060650032271919558752744160676704648786688511172732472049319329298605348829207729622061580139321465812637072558704290365271005092444355693389454280357897207982430013506581121757721948628015211199508731692208207395518500546584862026198074756159772895670454966758351795592104982751175715519728256228376082010770374038442835649091119798402309924543785931721103228951148634930109096155828711442459513755214963364510074204644885751844779681345234206021037328855900160819774431505793389925963488854540987071251649384830405410227971637124008074901115001834807964196080780848631131201379075997903921790261013576673961746000415508368506540506934804941839584371968078261133237028942759760776183844535676210688870571657334625765044375162120971819401166708926626125666784538288400395664694560237106034349043483583880624551977532363360037291659975048175484748987711183991116767554674811644141326552528214655594825715671772671933617036128738220447084182250262412966091324716537112220138126499692364340722827492930283814391549810988744446334574806544665665820779787840917226548706305899216861470699054819902429529200247074342530454063983933020318285428493765904280603428559870630702654672007156552517473786431511502187555604667758959307660822821908254765004543554500918302259930277639862414668231586495878919480132314939482636020347101345396044496031142891864166757759344333742503419581923905757454681773708992404372538217275151145648555289769548455161701344405270856817940570318669270655448704680114043320588910763119819381832345963699350645110217820741769532683289414189280848483190526142180574620594240778496896215604782038923134023711754562001200851833508990116661983282799216484576763740753538919663351738059021670018670715029020306647933365830280694961730717555178839321536262087287619268806080694323916258692289312429848436075093482156989614472314067628616384816225900621125445607873095356995048084326473019252362428569694165776333596054361278271936474742661259196536207469638266776098609887754488383520237056540704711284945575190578384808081211146315953825095331884676256259070121416490270794022076880755457958956375757539352569425378600512584556477886077992375981803661605579072581401990593996522647613029685944111595431662901317588377049627202241067878599165049031437785896055249463913216784569125600808542444064066496968989598149127149546408571397816207643840491284736229464582478350700372805256177730565916468446966376974646070227167309173826575365092870823972426296158849607632925543969164702681228543191701289405272869773540796385389161821829092797682264764120538017941143272678326538550084812690775945616323435886771168705528570132459796802521016477462950375193649632948838090339752141516231156735423661914333458092140902951530096103508042412271078470889524041889510780954329540416422984847960553789737681437046186272073667537695395400459784047898160573018188781382021769976244728185595795945238470751151067465044309302759338565581079808764146961021775492988469480189227825521022851026243296493785269400526636023774150116014507505812317233099912436443788590776790277082411426785760477984353773235846431933558696409536262436247954230585486885425618381000800843526360479304451399605001293851405146401393796095564979556528940907991136355810241448930485474398144935078285528041458041686024336339433548025146577743592447079669295251125069237711065116134089248125073807207441112008173646251540280979704038454645927990457492659112249995628191562722302350920356694140964176337016608589906765265345291260054897486802809423812610412766572244771549244656038585727137362616540540624665959161856730559989344792637183425198624576226939690861040060427965512664822461372022826193824919706667591129160499080957879352496183114986833230469634257942823240378773377258544932598654721951410325542175372084833380688704714135085389236649805423971339448271509020154037930176487949201828675032063266902547210083106699160547389595340581974508103364796789373313587583007982298711318854518834238070503184758813705000002253678069960942567914151382694114487745292767837026024108132836894382384689961200403182195167143840547859911067458496916813388390136566065260381846333362447449272254002997011325405390756936090390857160493905928023612693532417658056399064485913920480693002591547820105110222974400102093796136441786000275816988981703751424082993192416017539344469084937253210788263329186393198429856148209514474849141768367216457982941011109160679149379040531790948419940782053024331501135050506085392273273699032710402103712913187646820360207597196515420043891324900711080557393433860542683515512331977072231909857199249386341538843147971585692662178430975841176663676950422098346348227443154431282455867555942757882854923451756269360875117524404090294125477525718581805635580717415277161645898806961814231322108174842153352627228657686493022915766248817030872285220245700064159416494223404375723897284956012385830585203975837685111084204680480947603689927608296443975249957759362302698277382889378858835332563526518674796089181265213071443074033988852669965203208449377047275479553810648327757739363274508856283424070040842597470500157962933975554060461775458483625283335590451905416667715457449241291117025184361686707166388212875140409413336875257239477586797911388140685743662049660408604636675714358753896600616598489089606900096167655812349590566985839565514423205332610247721687621163996507138184845815907449044491763706157163314240920846247621123944027070558269820339166588659722652520463913949475944648033929837365786100645521658405149445202860516531801210273437888224753428402684295341468842218677106066382743675922653712018308740934732290080212652128457596148738838428844885443141397843529251264533887342332496658772352194836907706674623790695615387037227581497041645637650841037804656194848705441427675853396557537240673461498950963819238632095874550879679401528100433715722959180609407927026890092085575045857883958477424367688983852716999156584490226178146430804365875358671493980279527942879063850066016185350747845582091362338513291381389226317528440173891219415939034563942660907359673726542220015926679606826319954527214778941100621659019717172068528279120184986064893112324403089314811707843520712888898660135552521599635463703673833609371718517375597200876971711497162534134784619901333428709042241137697320884780430704785339036413540143368845629861630324255154859211320536806861815227547427713923653544355140798315878303960648851547549494841658528002072844119616393228732329894247038768447100807018375442610735457537331701942865431792666587446042160719313240322671933178557082479843982632363667057293002886177983869365151569694136469822033000433978384177745895746827793003361962973615607846438703256842699474769741894461064425507675476942132999830082545006491937352759394579782267555170060467558829268640872819624226563857969686895348513567588405960558391689419879428754884190692360507036206735957560197472046286912700446312258911881670328060012607735260353608350594850440207485656286656504266417309454130913427766334711154965031172756188891960579597893149023949082727391659416385059501458829075431636380317174129882460170246245100235751692743492875176598265718510880383987301370279185132530103513476366071080454009988767496098409293042742046165259951808235059985282915322355687110154192752801051016328867904224059129562502789565880456842853571077220230707497414598535043235202432846248529420057914135602750807160433405338029830651036146591256202175997599335562724340880236176407806218654503267900492228179834849941415848971044494789921928709842727382587043738873561328234664890309961277841915740067443701326759851564168048890529127410606816472602179673658658164172347368358415892536364389409522485299216001419406977043621924341799897873883109235787249517596117842319750030375911451201756208151082482556757123504205527660611831588659134610163789759582128238548367270581117412467242522175546109341464351783267325760660912727951534029109694442740656393483847715269713757559272373930970095162431203357960766975975436877595155411521832112106057574990901022142756012752343164208838566493845215979287535982181721837436619705837971524501382240584459350205359377826677782148441094879490320292188826928239991558525939663197636150935711703283452812937874284915543177730181003148689559526829369836047589985168165703350976524869821667736074144711125555459540679789787977598698771248464665575906836886497167531357551180752311165586795133911623351538612325851378307811338308324944785362364812344315926614980666499998805207669038409547922321322161337479223433196420168014068514585570320568045388282685689942677760203296638226354214443420318856223976318555402816704690057917232412205041514361164530140170817305051702303834288612048386006682622382506383416105683929564690293809596859630147326021768213420078219260647843398595933252023735683681428800471292423609198041889595421952935647824988589565255623877756460973139109801851005588605004871203165992900125244481419183353706873023725493189234134879095404778151868931897446569336837797744224309994048545673046238490268552790849500288927204583283296880878558263733295096027626436217532130990071602994293552434185292148993238621523756330041067264997173092441439052907821298131723736039893000567497746398991931889212445630257425886729609545183208812878003249391018692081984818042568106896299469470287354793634129951104618785511427121903554768633594060140263559725124735659311207429244671715375287298313739975986971529376345427996668831401086561934071201498974519325619779295299912642889643732893825210481647968583260582263072995894191410648748945614850641824533743242930064492394040476471821677453750046084040394015632619886151764431678811801274296614709277214166701695896734516926647560194169727594747351354067440622343719719090688854909354450462276594099160217288348330648699695012147904359767905220853072468118281766260537126373456632105521531845702066066939025490228788620637279254287902814325130369591023166347863642316448527430938764310041319883338579937288779519184219155359571309277951882518652914547134177473386157603090102498511238861530597529490784038463071409031331596792110125395038134803146113150456403685172138595625648932663514606382211620653999286644388293886089623953103286947734743158562679699909395369969212049156694753862385666983066297790211052598248549933292524461973331852369743780270309014901887557401220794004302031006783456807182715918077710270954410523811514345306128568874041164575193445392207142682533205936931422882406252631103264259017993286072157819711898488379308802490590966623700479450817169704724153970896342917845588237939122219122949752764286533200519525389580137394924819105561734888594636206181430425734770879487957558845877487203419503385091142224705731606762644204796740590583314335479539758900161863405759953825591721073206911814721351127499196923607175755062674582429697432247046764998631709364064755389040257952879783478753222956190427736357989417558944670030184301000979486462881293262438365192696918235584409396576915812783899822341397708587851750744853226190453247835961325354212067069322383153231586525255703796281087458280529154131747176952593415964647600752014036320877862502079787195422742119115516179777397769087414612395028131636097899106143672098474889184069181968109707186928254676705334020111893344414304812031086763287624569394660277879995566182437976928195960976404257065767186740007879361235230187566872720033119261807020410459178341327075950347791887762132628129619792068677707543523904123183380174610025957371777950881085972319218579566697584050761376407892324742277322168751717214795710125725593933199189943041377152935617595271815451795602378755851011375964478783596970080975966372576183603462682153226062514735524935476231254544695328301680559652064577255298253978896866215741932041332513615082541016140799658195248275491559826983354658382777903585681565606725269974526436217009397533429577118653399729405073931879808425486861067014860243729767774622568054860071959278509316557104285742318000944676675370466152705401862913888080485996168088585517365381068535037660824030338154704336345455822244063131706089632253182714728675900523046089044402135364123005107246879584870524835516668747833176897661174713112420454532958279008048472417725732472222185948215643833069300918108669502361059322487576058330958050224306601501515563758237009234284940271216705586447445297573262018524897570886724683358183235613226164288096056301501040798067076846803447581658384394043940430256699949643402827934425763320113153018740628002998557659475124948304698278183957566995201985605650190688474054205243931218628502049564315099826950617731667559188146240344971680666838219697885846028118835424151579394577577432207704003739413371037772601502107928639985195813168287065125353700390351404490939618490176181312957684623039184025709073405373330472527664645075022702060972202606271052744467613859955794339569238214274922930891158116349193253613834850680533395590154128041041850652464441002450061562493606278060001474548019566453395452638524616142320383394734046446779313324191696509400162720902139135502155441192385364532660663828054370401515799729280671250671320354839753596957554602848086812198149642831707267554345998801058639569467717721268737723292450180292539082044714347183524953383522429073906569893339782755279625552701249030466153513221760347134483685826056785244509166450006282122828926271701016343433710451190265985051048567164623904262497251581392379326403647850682538118859221515261562114930484994692159637045829619660415406570019839802409263614220870417588335400140455839319443994923507696318695820921647752698029203613108541301225646866523236828007467773663337098232394381614767620936636291302866795013535960330939686111711731485211780629363630454304321501788417074660343343276649484666925192618203116179980644011763825951794830303761174369317066295546923652924789627990679917325745316824184357579959531019708209514543603610856442777332013124351349245724637810942853703644291957596507799202419733124340419595694886190733279969787003737375331571282315240241008025642124584383520569128232664956397057811752254570659115036413419070478146171605818718811636771137869624786675488458792709564472605471574042747590783094403022856612936898746819749134036548983740786531693362128724890149432563522811756232320062687955253342343166240210413203501920456032843943445669169080042385817774317849804696231398867043120860468095385712349758563529902533829832188569316283055904358054921211244215465447259173795396286137306017981455149487089087278994078559146046000785095498372079224558765486061717202501472028425726080030756394156261189270861758233116052627965898504350896709209582552829787093301115699522699896203852029205758855685224861273660853603917567049652459974333223599151184869955616169069044787410799401388162268076859446824722882379126590099418530447228934170080085959314988597571272782915857583681750610911149472867724196097564876246480792890048190161225148271274670501889178409315995568722972154801559428636821764637830704729661461619189935351626520739531567781447941143745537891098164483376609245568958478205511464217184403559042103283232003631673650436137562196965747382024435116814614086796143580944902962016372556468840722373084684021080051776053431232312343027832846711129738174133532589516837912388879390633611992203740081715961270753866240566802572463193782964990258821869405819690519079027751441615164471822706632804386698536383203185555760291724491897778662431470271328814225828208119164571111689093448376624825707575171016567822664652763505218295892477732285862876834822280909192390231243262813022608188646336838476839085233122010210325096826733825527241393885197567345872927204170374928184039328589343163450010159054154402019704230335697648007445656225773568421723930276212900775841109440104534836441381670004025281668421693985122934374316626773826562487054342599997267361325167766119170963839455638472950132564776899240183087447623628247129942430973243906430880011960061658166459539125056886942805313797544175190299685945180074583539215453478259885051751749336833618576486849971576081593275356571596356649957086701949882653613244787193112919342164584779059279856413092418933946504932565851139666960133764959267788101633934854156258443248044084702628748281625655450652359094842672443495480387903898090046795055916634021175874639044911960389628595237797181798323986531497477316265075869961622116484893114841679244257983147958331871747879818130785763786335519726645248583768762299391573263606554876233492048517986438603942598377671760058926874533792279182900968913579152946523972501600282635873258983535637028666619738982854213684368485902326876403030673628361244979780762960618433347932925214448294558670422999722139323828254902422980772511132030103136100317440778616009618186122464687604872134376175050997481946321238601462354615103139137807470875952693590637773482671759594529991222065423632625555683890485261096979018895671542866369419120924459705686745802780742229461622810174201695460889368229060673329374842445259828511480631062202230156339025341697860979672672639352182059108670956562727961635312033671693717350830369258242008392053677617382400196778350758784914472301629556222776112765468788391125880450592571371484240121235788499275336960364826415962428102015121051416330720545180434945828215003014126601988103315012661664318149291031151384917887406090640843960048034367578293136019380458057877336885520757404601135730077175873072773791874219742561089218642686622587012569857516592044612159172100293299836060212368717139605597143083895593351075138305786670780708221694594447863908446259899802943783203446291520985511526191558511305842817753917258981846345317210750901621902512940624606166025795533490890676687255922712694918721893928311629921274041132468696828764746645012295060763533843837371649986151904227242557926219802929485114547984356073179771940123608579830970985732148075520400298903862268443507126210103663017093915559356713952539680989380125423121162820948689066154876725938055158845879005858402945520508774434247873874721832602120752403195344758400304982470081456507700354865040017024814458981745471406875821752787919711761883353843400691456203324878051114335083508358667389564551302707583033681795361202714751886650427897033387464073948251100609150798017896677606691857997201344245831219099566080196152195619419788228017166989225883537901600103723613468630792815768043771810725713142783929831349198014786318464285749217389674738098606852278082046381119635979655855965205742522683519887694399649576805115106021332073526612528500673041514131317942579217229734286247436408524376429302848386775392293479849231458328540407213298071986722965935292193057057499439707637318348845774455980964240857020785323715906826565913472153155475449345528728879069024797935512846498318997864234137412279177936477095443287313867666082172417493538293280932479136093233964528779925922736207777877164918538992726388701692782141767635075825817104705865591790978164918902532743874595984369315670961959095282471952328094886708382682990561339158336346718890250871913865613600243280296262821276366316997768692914659183413618783496292815121848510115437106250378375023061630234993890576438473244133455728735552919717106571670733770813240354330978990765174064775527851715655087737163791810387869582654915673619689163520018447864262639406533836813498969219933524981166022691799460088702340010902002366092529787332090101781709625681691129029244014247178547336968808463148265631353002646862568102342959673244503034677136251279410869063282095032794462908788558936040037513368441526077267359065196932535718765111431953002748033399068929148036793560642748847091102239656052594529753793215301576074409121120591990535118247572066749124571092321445884510044273965248346377632699761837967037140995568778809615655667542535899584976925813262563381822481297208639252146670330427097919836129711567395528981044513336072798517345147789455351150121804160035376011157659262031407290173058655437665568043429215898783326209622353010270565606053417200791887394323803751980375630829993097320540927639285103857889450264452474494014725660431265205546021909550449464023702112134565968619752886071674766144273396319909668543890664612326894811373555221356384954390285705298894793628389926842679100850993477790038878997523999433653199168245664446480718693394032080407519472622335743411944544327797821405939814670217381537084320072043742513441891891029466758223177585273578610838856303560464707754825188192354189862794712902781130965733900217646290996690948668304169446920354564639843180917061882985104490227931109682589186143044728354695795625300082988018487986601941742739714545539164720833967858974973385062493291880762904297036017158666334117326573783270990550768987358158459027312235482972080293608014053469570835183406404287516731156985932982644122000546275950656224225943709103783158396454500919860694624308541260296550563006186567718162573951331307785181169992967247149128663269453416586267955842537860259280493644074104944063700471723894016535521228855560894593087881362181033658842360045954679494977849015632087260347255760904477617562335547942966105371041366951287859780652585430977254955484954339403575042591399991583274686254634663955458280600412943144871617863320429986580604214547293584966075656312483980354153704684814909865880838902450461776126796035414233634914921778855232906723060242104516485393041573929156620795530825520873815933962682224864710253001633935358630773195429721260903284857925543977207066606262783495214893879949239873612132781863800620005578457928223781721187399858476499690595546515689909510695522749342302789501227022191067101201939046853433874460336205484521008273750514865811033158373599829734474958818020940236355509800974827564044181665974075309691043952934315461449945956806661908113943271128627437952419369245865800898585929180711231561051747449220808778852811796094393843061910477365130248400416893332004641552233607795564233093188899427971697048548378414502296615550428884658034770661905947861376255616248061136069149616800791381422664652436783885425124753227982950018692908196715315471726435924311449269455753156795087928174926363010229897465155489514247184777529694907146150120952503428414798991447899955233516137269265891378430343698618736758530727010245957768580965556806077052720933321257721989540709336693713544068623385696763874915007610983725554519391753864632890790700133298759369735334448166165816664104035829741265276442188299530021434441334486209947230309875006047925287879002856357897960629180289036613284280642148905895239805721664684815254991663324853991127677704317500039046019635820417008539094567876572424731082489104868226803636338224450651100088554718287830817683687765974916563039459730327775842100479467591589700895313110047090396983140298881630020143236407056114589489876861760626716727747075620730174835008843367604091579145838239723286122467577373407141720219748534736874450017722127212127228818729745095766743225880672766250207263877990847134135500922153257292631557446797102186764541381385749456997742772951306178992566529301583365002398353259066401501334932961705094020505318623172774395696653916403070247095488637077286224299628417801641715447955758866676081070521235742474550904166932762719450751167381292718177300397078463823320180875951446321063954701891371063149772108878307266341162399270097758922172487257451388780799700756362741755149447795480003711009879392126387763026276835822678908274770524729078576578036960364078445552707426383068737654350924411149521767938148404258714502124333678986391109449791298664450089329910710085507425655232656145336992371705684238284868465560337060640315690049529265189173710870936219727770222073034403808905431675930204746349368710585495309865025543468862130452074206555924609658810225667410655764153656334776723045691834340808700032283433089110880964428189699780794194433489892791452580751528481411933330518733116321671908279311878455965446044642013937025284165861283479219712412471368314758402891920516047952208038432503631573789008470832031062752416041701969361154605796517678147087541556063431953637719133424472825303650507829302017951093527369687526088139585432163095652156771420786905546807558232907271536563688911035039313359459023125360511025168842304069929077306861895759151132484965989751843042461233021342899167744965773787051165073859733748663438699593799027146217324208782190466981595400005909247264367279212322319690374385580272634179998159307582480641455068979124827362041261395014120305860444829278434296341319376254498534440186062841545895696483011643574896861001392036733852993778776369317259437207700684732840377422528007299922990991868369424968163711603417812379880376607327076079823049487164830555846980119698926480602623961085422467603859255965708771739318121048520965199405221340103658894755180816016518377204326485434916333103578807917817939713210869401283436211188439204227489730872301767573765530928088713515434594821027122524266220627580067460727722278212355932090684847497458705389817379079930959090533818436584041479016780975151758350091710625548080213570667239024328147293447081495365484802578218867851999475551944608908779598306496098978376644575306920431282612305787096630054574310792401017481299792470766264533670040847226569437485113945270747221353965891981916585259683349677905762276438197611458923180814663476093689997640176789803530115608034535408239034464636467976462584202637585250603989184656849802306688628812848973751477481158857639172825276993814769007917343124872440400558074278481167927637840435694791316294572656975491910113099208458648817741127035688768938054859592539387733243739046362430506554061550609166102684720892447927363585285639105889580304757303523942926691247418107695349792730860536498083525294885223013926123039715377217682172952212296417970884434984712184921269365521952375319168480516300058445729448676673778370574919083420329718681664956413445534331066440068450168172917910241116532927167652930725020363108141124072472585611208512857263465049769953161341379194884837045315736193052370992760817858220706458979556182579855199238961019665217370862322118790546427315205694033897255948106775228623544693576958476067985001081446417553455911393684843900221252137937710019585035281014578760274400536615606421546816916591548149705842970866837570985743751211807000900895780571530105343316476754714957254839981615314502094035622237217110646363016019810258810217745104485120503412262435453249866223346200251665057098749280523598921807888764758207408788068703343626772754914749370603125776684300534302426768000369751245621916404526540665351280254742139030582399877189402506273732101309192759459089509438906826272367573238561570543488506387881518453852495776069645255660825001674235325776418240734840749756942274735916799638113206537923091935339868169539667856330613945618642767902093336434180049267618814759047746983830021301361882288339623882343119126398742437279704010755924528467740067426657787545567922292921981558916978282464492969391129503734578587367211003574258439210958984303597769374418167109149655264437885542097129151691994018351142591363976849576702767629163091828478260257524624369071236836892820943294602893687946707928124130014571947632724095006100155518840253296504819617729382108924219408887817694139617056751534951714963153371028780421119590162149970432121842015353027974045258896862560508663460697958606769761923221010817358531431239114059718326228112273074990694615666790157379773371443033637767120553838436768325477533053500190459092622582728441852014664988828391115597366815168977739340879041049466765960310821487057459251876794641517184881112082117006366583502444712818097870343123197187161093446812368658339298956083764511212172300116364746321747697901388854307615477567233425759276950041822927277827042955217939813223690336059101129725564950573955494087846877558638755828060827421424568703314590675759299071107094537676542704446707114284428203539061227293134004562895536164376122869866168921070587079867559346950900054151866927032945807841058181450682293020909828483228093361656856778987328704910044001854211264663513465390765231477958440763017246439352671222559526440323417256829356504605187506999008408244559390397720210234419976706450728002088995446045938616493992532214161786360596207568632146322060650167852061001314847020899762923063439239121863896022745100833535082266734277829975166398406421929689434318099463919520069444990214391215629550873410570696618623968516109734456891777520683370779658991294285067573976278780766749843596575666853086119810135045505396930477077040895208252709856250123681552645192971923471560000596420225175890445531189685468634877277995062210862599583362776951666074034615518787866798353832469276937289247509121297787242735387499017202125759208723948237980849507168998575400758178170774767906425367903664493596561273946090459356403156739784690250150072790990411658642978072018080381308599623499369209034553087728474960021100498381729997959502129729938002776931763003124085873626006966703564235244612656569332962499383504457622903570689228564489511799132896944588765561763038002931740405892056673446455494199787606429275585652916891180259905237820951296863443536017915702960803076966417019122725763787003815436977590953595575814132877511880731589093769626822705573562796697073048502183974844926265436332421410437911813272835649791879374606184844693210622450935227129216617068081233698032301569125987565331453526361628808106566089268558148829519866308358276064595077989721558212843865116432953694350967703596438609484992036736741593993883287611939115707611656705033803537578298294407855742479156434312217942295128508815514452618181370272732423598006298568353337455263147221612373789597615638050491469196028579185524884723601793863500144323561249077987965272402137637288143630322638538023668202659084530673114304778979621785141747364229363197152903678710234512594479592957784341262061768264048550420546944540579302066461043472414562616416158623915538406336137918537483456108095864778467887711460758886158110128326935384740773360034594557924348501861396366618275705332352203818067369991729433474092559058687814756618602724266051329477186930067511191778698409855326930525645115323401361070390617405140338252046120750392521126088657915690598610040332329544393045537711411071398809258910237141253413594985810821398774945703062151088705451579695298590702605509366842156483241314854917224839514215494913575418583252822436258680631441614226074749851767139107519216000487771912330499651997669274277054337357460770095048086174195853344800305270599416615215489175941720280695310411216980576423768570580872363359465758177628785034386494803757112857921080349090625991123185806072099902838586493978099313833876321356972640255458300358349236409572112807952547685743425451429400333423858093826101721845525296876868842711769434491204305236965491748451069056806579981709007212599749187231880720245288024626432718287575507043386530771444367890125417516785503645380372358113064969288242973247767278503957039273922111883774084328854596912983251527396216218914651949134281049931685858609121517988661847296203209714400007629950729518741883216692617754028817488057128370185295352007144984357037485682183233356531823500003544892009596874161677980636982790632929499527531404264926547467949324635358988995481940237874718224722523887971668293176776330183677574892649070900247007971966643704675448516098366409154046827930596301419438050658867353427695876150970726816668906502920535771755625892703982694317960121692698640657174870877152318268435760636112263278262852069875623172877096577456639077460406399399442844257924100976964289647306066545825725812859989570313920547435612210850776600769967470045370103992397402627977345040659911898915712789076197047211865323317997522771260254872251069715083802446593963505465510587471465132085360463921194774983652305434342095844069307172175558497566743888594996989574510501160857624991146955649258087961738173289770911128666363249643357068871844490799963221203378056739296827705231009273923264205080214389218306097454543691592602024114706932584486760113550643532136137835869838496908939734826985457032807191336971964986785322967221005399576016101386973794019722410333523224258064571349788699924048098390808272322886983263127282839659345116623335757343275877613570042799872718689110798974534866084267326414545655307171622905197408216604104120492036507720923540197154326796911114083814629107317431352131968814575340537287816495702275751275229414266400882493118626710807993499723778318507975544293102655051445663170785925101446525661558650198158440841772571579137436582840714800589275862142538702712731381256218323319094617549803357209138219307152233718993640754003704265758952892764326023511087104763666270292298555259186677069206427667815589736053617105261709324872494100342872725271596030266358016932651621929575223584295407796692620319090571025226667716716777914067475708584336884676375268336319260901034998677545895966680394259505661850892637578988005294004087776560862649261347549686571564508398718450855974667388632542635118649680296989484392493175904509534074736536296637667228815606923221006514658475785497917608985800405384597112320351077676871447185415854299887626227855928296704363692087631398052364568990286211177293522678654941023645605797111842298140910814831711833852356220624783251943835082596051818421365521338618801602097086210922309647722885311329184843846216951637879171862223309860173302975874889760769699348421286175297781734459799215882174115082133776371804421590904081175830604502700000554033207316801785582072560028479327202311318104889815591590568730247776793177081515006668527683214507839304398133228798290445576540109904546106964651953387769237452501954311786651857590055679395211521698394131842634366329029246135439769193607830806094935577415703716366488636440881943834560069135246435131392219135020195177293913673178645127442209967574890939382590221171864363007963523050270272658324972938841344506191680848192064451538899684981776665134561649390905234351663909461962854920654051674122577550248783540796349332447129786356059481188300733234637785122564872307435849560086229650815634074945127637834738980182863019097425268552018512102050801239299576861175323054361536867481136150426351924525553255626988229421223775251369627533067649862340324580844038316712452044676338143096779981400938907137905049894948950972844644102207481824609348488263893142328136763633597858961197963553422802177682093876198795635316634746354590154935868695991878057717852341755008307373017850861676156593413578752297894801137039180727425263472801179173301885661490352666729202971169224868994815329169373277943669487418658618111741791233244276188290496074561544445005823138661425583383104463518239577115444792229566467820840659860253899014278544678539011161873028264629648065017346142772724960969839765198451007048995154766137220047054463405619741025530586767203735544434925423568202475663629681435997716593671735602691549011538653278639776210469569452159585781483395964628095400767761552857195432011407404514594413400037005229967199956731047795440765047950764145610616053593005585106590079683408778695204802909055696774937685980038157337742599672874306714573232262820202694321673632013697512171751321562233398576796414424445913808279357959613320863624607672385521196945383753147348098476285934080289816834996925388027977351986364672567777958156651407569025543142799743967247409952274325902431186497062689746121487388997256247164636896682410334311587480095242866833425233067885742812887423454545805206215336143330803274705239325318652671932171269642297087434423211886593234592768923832913122486372983425557483666114995341151216529804335808406805660879669886423299663750180386845267475792048934704636122328367061473898485729941031410629361186449401923474020428959069081960341072854103223206043805807366803257030840469864683764557739803787765516750081144001518678060025555151563549212537245180019030838201490964615853806918242153331729211880541770106106575937279544872784074813772623515457921216324391245046679810719331287356435641079804258556609652369159652215949182659675945173288353002769674243212985580514434986173862590204196164511301416068257603413669017990658693232303786333524649470137110234671415271468179853023007358593250162959257033849540808616821075771715406623587155027840718427688461742315856086156192895915750403437849542935671618535545155665552906348681460117710026964261749395186684411701239469567639181104198508297182260819668522465187469942737115598075025307799681338524276165647951763019489753407340295624834061550375587596810007088292075402008582460754575482853224647072672326452351440724839729949205044668932365051719247153631574351296306396079931163299975697195621963383965564145768701719071480876097279946170111664099399304370093293198568546181435055769469157139573120440027606626904259637710821540367168855571515735038277627041394246748329662212508251707655239727472346767278022861384376719058387845434712633939642339036393772407182488073447106576877668155730046758375114463584306545841219203537093167910880663684039069474518992311004656543386835536718871977173054364543469074358427536066244534374363430560573969468389199850206535272866709466900043654073413135632688354334201512876277450581770049681783332477812294007561643597414942479016499245670255232514166195328268203816246662873586105952091461515081293269146255449978308516518960829015547313902150793037747760082725159622054733760783242729819297467987778558603632315376154064254969303672384547690092164838024755365059151299124161320855717217691627266178936848667265141550328830652410554258695624450965084263488036360509756196027707140548801794049984531701045539926528282244374851921885515490242067981611927444292332952998859821664360896088740438447420579457626557773357099917140103372914916503826224432290482603878167121344243476907426520307625746950244311359084451150753668251641361118456217760109383505931562100828820407121655311586069019642727298830629798016583908489344473377866757830418729603355812558490089843654166363137533540604492887109509644909738546815126940999266772141533492478075419418892158361664844818824813544041901901701079761781461339700721452751423399966956742714863740249232514820950786358944649881369833666191967751838812694425119639924989539255496188780693682767309077048744156238413598415803418897608599660620480473675617463945908149944054755042400297676514597716846421865106899827866490214599346928949504623759275108575665020320183310587211800425655243989035455020749676888275809112259184219754523684911747287590705102641275960721104156451199443060023047698736408351052733905251630434590998987151834332234548513371671751560230397407464310319937124728551394977392227149033575379436985286678609240551652654190646707177461956491704209840214470291341478714573907093756519486579169990061420648317580871838197448001666784957327679971895253999021391492817016043653332418841361953044266396208308801991277594654235864863598106798180526400831627591361916116972409796458331446064673085212636609136588929567599892658885522491196012660153592536018403177267719047477395363712467827096769490230493999035031024588775823767239599358781056183824674478428032462733254444354801177495090457557143348593712336206032843233286704656474747022940381280572017150370596740594346389902734398816423527816175776523685427857275681079806345539136081915394404176832995679886667515615240665067043603032434810120232455072561607532308790285691931058388375593383208760337031830104006290358341747976319232674042382770804906770800459182764729969943257513674564362088998144530716769763752477367638844505565330681683935437000409370601779890979134943307007619917882940986878045425083726681599410109577616886105515966497455927814287340482267984360283208968797772818955021541793332838933604839666055416912181562411444247341550572563309834699577551618949847622575559284425038164376788047586619361121365587899676266767206062213141559257297961596673276297395357254292335918128562705582247827591697393330741807513565072217611607093240292765523224859501713425173715569509775102208577800747513304630690135349673006666104302988931270993853119507825061555314484727211239420673709404625846800999055945739262425476120436925430802141733195139747858563588187310107330113472446746770977141149924686704456752036070795646760661210219424918501200495212961129245252549649462352261478952360455962867685659686151715932195333083186907592914113376178146200380675096270026601992141592634164296392669750082988151418920262751748951419492889279806672230222514671677108856555681985341951614626923680172529908377635863956821494569030123319926251072836267959369343082070587868571001215083123439063740672420171478408845108920051643594654510550092604752165163113969360156612098080578568093308441821107556753172564778150249860766122620191177549541897566710769304374967458326404594215165503843930921965855908501623379604410173169970921002017720427414767119301977037250700200180867781573849948567010630517036760944821039289796999706401524474655430556425416956403696052231664880933959339575912723565689807403293280749242747567463198301119790504141111683603087405511379122821259920320253512340563081764093417276723961449139040223794922811901194952973998562131146523068819317149741031899579737202504504009808113433601953503151755864375500971729858883615528214334648098738087198734542544418034366420357654770276550804185132812433965278827237336421435241986988150029478717232255163728228484442498023317180851738773379687223839174055500348603061407805815522296442296324733793662416980837386115507666717536307052530624224038025364487001662133956819090393179173056102487014693081910540931959614311448668287855767978350470809397118674670375297839950931704653012243678210734337750667686565493009663524226973617264043318301439653369252480908512395433744686059610818641778920976317743913052952752227882135773850372898968989076814070836684167665027963993758497307367807082884681962160565325401753972807286290431759811289547545484508149730529309000988454012951772809370335819785563643960690830890176879160856648992910008339898624137702070866274439508694138946683569006939745770462010425132679496276358164459314259248276636014641886005645705113768879386839781281683259641480429981434363577023867843379000913726626079591384855524321787506997283483975577895306550349074398089635622858251297398819873376069271230365151030522192466646577170434229676903494611743955910422547077038627100399869393656576060057886066358899803365305600609840630864868355902626537244568663832002081128756608179406364978485765716988482254424057695682293352100862265510128206969099526943578400497694403959299776913009512071627972019081106251866102288469253586905451487250106077887138142497077536309277702775784093722073748437082536626819765596666800380149151955673561814772484219425947842681533918080611347143597466931616488988966842969864580234516522288439216286784751331709569093085429814955426073752715600174174444192183772605333362138039486201085361894260664353160966437208122304321278772873866649071602537585667518503757531617515201272306388746599886580193369646471772612138525727258219283384901829309249353085224828887921812881975704601164841998790871365370724154890335031118610404966502801306134001474235576432602161806518790211320880332021532873009001084543221651540779938964850221741448154745852197238554295333433969461915901180220553644249730108589541345125058833724504972578799874539124136765538945421199943248249862336116942170102024368803361080571148820503354226716756824839333047509245129542782020689106088416789234719995311127635691217139414853792474790086719267720721275472161175230255569268300586034483878940684602701300335471844649140851829410595293997163834519979893705471170755364326247386798571274779597233279836982090856202325932887382290343011002485356922475195627240965129846470129670519341540206402173275731319277549951486437971498278307130770428128846147117670075214494596921646055015583140556807057101328641085824202653473570565187345727081442885023143163960385489066092854950405777671798954463662563231189299902674077282988774733892718538784484936183793014474544159134948582786113575506032120819311982676207503070417420912288949662490583135405726312872532394397067436433643563078428050367877860384664450456223207207794298595587787381048243537637276173597324538294498491650072263561355075219626608365041610246097159332342184366241662879052892579643780313507881646509759857099561793663494897863297629513805137621057180821283680813778039641315868348863498267506391340582333329436875505295765852598354407245233092752393023441339793524408863887102600730341109310940609240432664181431518078123043099894275962512676600312180038525923803337232784653491181139905355595295683985545969150718431594616043631420616733299728729738237089006041932241309213660584518293964377063746002441595204022225867479121326057922182275389174575090494114607482829773181140146863023773116010221153403591300709585766660952102448495009931662021902420970531354302521327703846176900895503631621396800877044782497800761623427433246400283164690395590636941848276872890303391634867964226077377980981745082012459879430930956755199297994548312483133993564321424345389951177138123659694811183588448767699675868376511054494270006486982345257844120679916273117706007677130027445098782551940156023788232786221331329271187841436450839082548357183179109130623612813085040343700386728758295578335061984322236948195637978219722710120003787405948762673460134956835592695090118138969786165756668088006566927119310111268119830878500588334338403224539017321112995792725630477175132530326864524992440457006463774574473516408835477548631203808174308414604037605691165597984467194972806371275254303454977708327559201588998546196710760704059979468465340966146936240498820875842976696019075943723188397452722982940385799351322942737527080434099133845211309310850281159586921947712636138750245794843927808109315949953233604155645521361278060783771339206995757829849523833929182666275117997567460676084629093988161323013935683114754470348445588673477075371822216470601729248923539530141175492110501559367750659413378400986594692721677249441649614659160186077623194136026005496199518583671372185007746006891891348097801084272032231252092111191433127326372481410790104979294886834040005004629878421100965667661084771347615491983232491810717566045642809148571303940863126510538372193325594366274176158899752996823228876854230310747869349532319464150830338277006780741104809741290975585895386475153659678265084679924406245685321394590372878618236088582179927324237111360267460044288536620582860263745744588545387555129882665257264198753943505649496235360577735475869331127227146350354922366712850357954636507701945389458949089780715555874851086953263857747046895073701010439041647917428458121448463082330627359707540794644054792580437598955276404185005282893312508415683461052690627559988494411119500126538557899491534674168457379256166381624707423356268916845459722494495722003230203740567824104276270234154948185352841173525541318036829771096894939119068851663511504720570052220629090311453968350087627778646728545906806473737970339341309075872500768889329581195920744890850631565797906394830596213388210441279030266577962109706469003741972930668711008927395045629334358336422805676070879395247578991488849114306818325751434597342079587595754660740770084878245037213045244045633391987143186383253026944841069085804626927274528349258257634960949161066767571203104677886734580838047951447709497156997104251418875635921618212494696780956444466587179528324730335796475217974538177596201015830477558366117164355832267722224197570704648491056998010317135956310029470154976579131565096834127667927759901593113268511020021685692347576301166413815870341900174312900510925277105783689460936094441434687617696318438874187723367009011287550142099669881729202873213110365603504249401226225271880195744044168097158486498592973000759271305588773591087944091834107155686569514568660434471046664528325723185585008843822588025229597806534438421002835171719728826534107806863001589792836886721333424528169337953356390835677048218341422868378807828582212201273720651617777260933202399649308609561599924125226519536033856425516199589403405674947517581756554678509835630785641701368757317483459150487582427849371288502221706807840631250897391069536786301960034530027005153609882478749496352333604858079573489593354757438946073362632491656283403255191572210015531754862719245872311860255261737924960984319625696062592117455445206226524177371190047050850012312446404735741716077222975951287554881352118873566084146287028821013066809712249394087632017478176740263141304011790646583969749309620844813051711532920908864810147561213422495697747529549591471553469193230813381863087939954759007746227994638111236253832502833612808768658863770080906454520773981754377010035955665274930865632792920083749663115918701854952106237793118220539558539203503105489902870749872862363672232562106007590181047284788421403128644376924986603294436877538044423058310451202856385185597496443125705879785632362084276296966627641742723943355819758244015959301376982999985398026291131622768411433905372470567516033353017786992376657592349986890940653387768678001793064716008778676109532030743347009191531567497289810073264286441847706233329795784534918795157594009280101005906279356752879879571853852621304596237151704728187683246494173150069874258613041436102341413747886241618024416441267560585445851669689952347103542093066570545452920259125759181929138342920047253314617241041452312075778755835310770505891721992924993060661249107176511298236376981665404804241818191518059329637908518214687786075716936358204375587646500878863612490932344295491926272464349518430343581212902447069608753452480203598772180104713859079514377172685622493595509077276008539130472433068456054680205140824896509456136595369689543523797387690190086966756944111874320125490893323034397425474031077475742838478981768523282627506051988784899957339827173984754957742543545531201905011758607190637763036518051003915088575526423771848503409294429195418761120412185757120348508108994909149283786473268659116833256429250861264554238874828894038724201307713132187863202382493862885115113123239320488782747118344144567711849409270988634745577211799931400813867289982876524222403477771433205919950793928032978278273465876816248614533856555613478457777580868298666635017198614329062198407988400074015460555875613428092526953909252156143839353217557084211649665037123760657542410772794620397009722537169395980324840504927936973524498066900563071158447535034183708697135629431251073797008106783378753776372733337853023025889877221081987990370621742032617887043867710356192590371943439712318217205685226933096522389498891183831344686450719715581714207678944237395947363678474385528883829304988239600527194508761157148933600741790398748583608756151056836283809181717705386029980101607952461395943319315819612941721704302926311744916453245797961034440704102530421493689001874579493722483064741634123770116276601124941029425079123520926712798202929659455288609827636166518497577340829501410732038638375102315448046139691964610549499191127216278223154375338799415202819802888018487971005992249177008350038644529662723253656320785306625691443536085466640246176108158800587622987415618727128896295297259740792934365618737602834989413597102954777402637171644998481589002891330820214367045315190708715102831896152528141343571064462231336800901262652970515848408084658562422807131622271195247708595527301954876857439056066230554952927709422118326241190211470609147760896035505737948502214377300025207097335641978453274497184729908714748146819798657664372042570578752513470164903288157531399388970671500030329327484710223349770178179928620134104310813124614969390589617871680681337809436131745221646122831978040143407162534659934677077474901977452595614373232807083530964242747000927667077048224598939946868673098925208271047649999303583102922761058332687920445144286321489085970094745825556144760226678793523396493728994173280023273069519114922182469520685349608808556106561341328958975152377785469587588114413094913900365342080853732669537735883571699864794314298972124417749257160646174337781988838525970414421121579588429380852148895151523286606823058385967959256420930229387434128307782246777892585854877837441290712376751448634820010683227034158893915604219721671684438903985607549515645719552820712775264836918284662748203156156519197157316603889291012262580346094855157136993882434796780882319860938636854473886502557261277595391984240738081872370328590335017134933365372503081046547533322040913857364124423101651668230037886726000988291621628411668249409981646900453362782033397338652246442731493583118982904874738860474678953325885383694780053978045916415735595076005548238479374314247454350858373754830369902694364524635261677930607165084227222246965249737971453132526859192977379544492622173344009874550704265972364564025295968237722119796949522040361324799526178334770916734495359807125844607493812192964500603965256638462589969510633319386750416285978811673318471250809969166480502424273510999388769188911119184097336620360507809604681298255671379214551144323814553476771248298280347335238539053015831622224973121280708600988865722248959059117450411027202478613955454964676550094440920386668543570097474903520845283638955034863043561975819224029235565498559421628305139598073582048583505910306464510544716335822301829315395716137825950392405397204062809020794756408829832105681648301150389241241383782187401190148489879507898042436629686862137801769852349893453711154189948048787893151671364693991561777561483253319421011337690527141583145778689923942430319662303802617791199726169912090344621958649061054057344493997037756825007816434753409195387136923706885274809883921908553994608093044861545454331809392500053377246349095875283542674291846472102888979465538949384237636491189464597168609600647967400339636008296691671847997609881716028471357287530948626626902721047508324683602864538006985517253297245620263186744934522014912849951725935698059876889489980946462408808298180938327437275490143708418186978337723797941100689730164210657040712149797883346699475802499667340602918701491383538657945276595096840772863896407455757424247506689034214367569207842553280512573105313503773751017609287115432675209113485763302955178964865494158422853148453539342747058408129208192154268429657408224067154482670042788951429394436374236596354305004174831188200473321989411071785752945233109461589956879392267629557689040553678094825050162798314730685593841179807176584944742499763356295428454658830089346763450045210312952813663046468777207668780230195843070098911484064675902444274055082021485759187919710605688492575117135328753199793843717632937643149171297374764930055099768193238641191868913713528944688821880979001635159965077388780237875751078011949485018142632421099900008502684778141398858850120490640895032153458246978727832556414200110482763660594798570224056548259639456564855644083428765208319670798952182460064855677479077558256981686181361450341301099121828580147291291011258580032238739667591598162948300601496870034262699473070302936582219991788072246369326350644616583274990516238337491250793225516304069221357849890145150593367410060174634739704655410340440101961718501286572686540885338094139215739606227822145493991969215650446952091181652347955706545442326281831081759208257406682517673946346371017428835789984266308866430434851654996245833241951609472251697067274376272362383343186109880993209443134840322108212832160437420372152136570941631060282544616498848723587685629766531442182994923386836253607781638168316704653025391141587050302400892641556631571924584725476295908075890809445611412603110289225855089018985473385576856313426039847414671608324767809003671122231874321465526921013281918128229161058748000467960320087884430949263720483538385117679238459741472523266061925094766546604987141559444519481977916857582807066228765889070217876686212066975570412984230265120113987879131906489281755714481104483609979174294745617392420261495367071844882382989889085702064748041801937562603320034287446577598075695968416590766221285852326700844298290960390540336503270224719534339204062305212148804389700436237320870652075629927924475336921538196864524159139513803657628764563618727217505625325763081679933940572335650359024942243758115818481506516761225658926838850368203329858645086467203682419030440004230020191237263860780504269216914948573419996652435629442840918856602019025728823416427186467931629636130601996251282857906410659316812185145922467415596918790146567381520753150823957990066260366439556426002705474133576962771298875621697211933830997364119798140205351266881300809997391133071830105496268876730182751061963652491359310664230988838856646333565578904966969154276072838479283001909594829673268209205655854646218295972505313777648521142359156692237757225469547985345107949784263053579936870931538145055941135312902082823049099735205389838698876348403098656130281926404732287935310291773666962599477687308801561866413092514509192065732818305228136185628949775487709943548687811590831479550607125511785143483373527371574578867360067471098523191437278956024201715770377598719234051997971423090376917891785947862384049333707838895692975297328073669954616123109424467932446178786897055044810189717983862697787863343684108173719120936817854087693374121107880140490433125567043522966456587955527070011951485026385511472659942651518123535128899593750999094929930940471873817254847023640551346503714221128923059959768565463400139083651707321463822358682854043196039974486611494799262776774990483847062700486613020017438868676076977279010217640078863117374357570125901051556169192033852067435088939314241581863058491220245218056917747252702569691874460582066845875695117856579155200754120824951385811854991849180741784445220951774284939087009905878098493889951327652449179559361968933174669758713962062450030080936821654976691452769787444121294342281816972319233155909847313793852570538609343528217219758751621779112536572697764000571205669390940507468166833369349601533047802128132759015440347149948389677703657387976302444357707319025593811962214311312666313623260820998451545748145223375838890160371570511173935509544780907700480209937264151687403189101094441859372310062609798735184703733740277263970072996930425937707069688377543092757449417073452241144000708563438989183587077907355872440422620566966637358343898460183596677346633953806019857784938335849380324469137192306417025663597348192776513352510684135569443746663802340891327949368661098764561838706162968176475591999651779687662207337708042666969037071247025045688969048749390161425430145352041420959053876286413015208022486724238878509229128475673152984616336235162144468438233797900703700426321189485025974609150260566148252187851100022605446946835249602115960785011969737269318108544540618116968165788757105989452058770456236070133805178469136877661271450038707745644135785295606111531156394245967081517210303096997466801713856314299537154094311856437344118656917608833465016152593141788094623718617153314034119588302923732427396660201652231779553432926963124464480006007625338570556445457905220872458560957381765750477297486996314216914554054650799504761621794055812001177309378351879835060567578127524751488013085944773738002899049244836501408424526044907053228366822571592968939310483173132524005489142403314995476199627633218877921615665757955263024251593571277609760911844074183137727207676692269967658962215255388452350861718266635866375635564843160320941887758050349471024684677865252289820713801636957294725732561108065189404659854653229624637810289952950994343472342581134305124570442206495158538000787015535528011853170132585427653552712619594735721943776159593573349082185587359801550748657261175124299516942888520197741486194293747494199892523627544801974555870618619257763180131835407033578095324442033501784657444720378816444760113070451178660649040552765251903389345021949167148243387405667674941316523994674844189197601157668695682541754851011398265253759441998843976465238961606569583891572518057553416302593725174434975614926718743884686340853085574917458290720936268495263168742108081603174958630175195809656288651775612608149546832291380493251442336923406213053882118725416688092432545938206621790889223388219551668901368501322102502291610510355226417788141351768486856468134966323513584632360114499546286543769409524643729432139998380056957073062489504206348824723577753151164059086118832738955259204275136325765385460478533267572375822094800154482727079280733487724081151749769732305950221098816144187737460262549323550935450211184343688208151941268638984979252561903084354934105654301330604143709096726279990177588105663871576333705432926704741665240866864125324647704403533376697681751908661808869549145247589938040812371542720955231748183910904909662153810970759777629043833002464312496901542741914357011034413928546572219696983458420391217655844610106885889891728730957878101211569124563389517236917063470072477524698308645886586316488260975361963366815251014680691292906106192046698135097836952793692932643428082030329736485207096386309766852863870620620207459158283142903468682514440266948217533281099895418405308499251964309869683120405652075185175940992128625463650783099593964068577857574000948445638820831235130097574991184029675912253595383791144136688984986139043431487917450075145866751923438200097810525920014663588943822915409972597897949416073566097513243389306328038681147974575239388356617497878879132500002743758211547884592008753655672192148150998121005171686339784811279843466692767654750157156918348040498841319095285304877318043669348953984138951218099196011212755978976283686738830222132206497760350962221855807219320508052887497994085640051232914158867067123663437399138396824023421324282537971767241649871474243984458981781081399114065907505563757866266714329670455421780505093566760975941566413289158930652948396449317786345150247893080252697633792743986375567633561497501507534733522710999613260284828749280229863589609888114664134914245451315632371088483545509095473567513642116767368187773636416599471724159852237978058640891615897896757520471304839587064416452975168122958511721645172228867611607911480376288751435188263916423912868760447459488260632572746166887139357259664438536298790809484240594575892273080289987966947920291974161783694054179580229142108800947671164500015306331013995852348107245948476209671524942943488147088012402967301674606776834985952402878433839347604795755686382466472160110022165961521579216816458798478654937792447281960444111333513771117303042335512694851279484048605749586496361231325517764838521525456878177989865498681960888223427217194709958081203130310004088924733330312431299429010771621365356477595776014224331425945288810771415486223556923706898177571228051534314424924907683105103763854892730664350826883158354079990053376622713937891012904135968428487467281053046413818871722095846782588790423653533628929931453635219022844133027958727221917928073508203900115721129165492071513069414851093925941970224906340157348977179757820432483524378189811917714544267803832493911580520392511814844230447173872265267583654161267729486446555035560380867334236288305490050273472082619269040632607720536187171110541127838283258171619333603995446489330466581759536290491115707258269464024879962154520539234927873299014637042664556056979948225971158142179595352880129089176431442988804363349740528382940438718412005118492040727432797143339788053209588282350756964966132359549585358744695251140921347154956266411656801891666096873575653811846065973903612122685655121544211980522211356244018659442159927447251845282367411775985545700717792450840260732709247752598963181640515747975717355238416660231812642471154740796954346567036916927223315220270540473040737209715146298549874435957784415843494396632405220581888175495246427021089406229284406520027384960121106669606992199615134906146975152800628924781114786761551175174330380393830664712099802608369321011108325325986645031031303840120948387633932626041562049108613208085637990231398758640158427081009790385522207150601089193226806137576817572223665967417857848536932883288567030271738212306272151901440689698567975582527257984595799613773853225801464361130330555973377324477662585306113568891728187727177509634854388169953798794211575180737826762496010232019231013831096747674353537901894487905044474336221047162371696947207615860896046440978150048696217426949784182265008508512132555743045300673199799571957902964100654304490022706908634257330490234767892027640519184744562463335090800334413007348363280793888175120400880438660921174905882645059868710348896379943922493142549428060786370022859301322975499320244723410495299206210395362713533387595509402329220215875293102038433501066898988812559580043773007007052629848596987891719573923108302192723273428527715414180743908433116270182948730140350781986160117023671599284048805138768695078442129314784911366523395476445686060919034430941441820315874493294898072768742333546248589684558605665266995693108020128582590736563075314486135701926538458404549991204990829972068479421591913342666766232975487784126883280234931935458853662980750533953091016426336602667560682946122783956275401154047753560738984696606694434803053182494653360070518140297979862521293280838992947504844537878649806409131690201835795039990299563351622005990835494558254926683298712191811143558792895280618225781977287700448515722671930961452834254312129378872675616669638154077717964424546172678555955834466536484575442082915871420923896673891143853639981259684182653043175257493694054446365697331206419669421048321592587850530763736489121161718803640054661733927507712641264889325543386631796523666964767456518869121916907819578146700953968850259031817610988103079193818392138739147248634080471275763501602014271152536717571604176806462619618334208780459512925910749978773465499874309269652158263995592909605005244960990457239494046078256793881736434176967568382729777066933845742441832585296586877570290948443401111212698206172333589690360050793278013339616891839563101472493813541929091772051006916795399258835060788184169099562085824577260698963916354312209672589447699529899788363481846073517431405945747403452967750680751803710493280850500193376536344445535041422535085060571342182627847003932060899792976712596531189090797926503641450005353763471749708330519216030844237247535383497371464912831645463272813636319632107211132098567808277435026956813720143749859614128283535339650209436015857773227835473338462897249115244084866612920154577890212550471187168525307468426304508583158299550541849642456641677211243846082240183796302864097355260033561521557523984466844443284638832595774408034319849795904063891061437925149914598012657987777612876984617493671628526755896438577054435287192993075290436381389069020829452600330772288367474223496301877474369569062489004569477143346634871364266096911681677131151508666675531587662695607701080322432942936680875473413677112598342528043047643513082543188168131075830026428550921269487666876189080012839380877189215179260910185256383795711533129177802227431339446776186166193099302547819992180538400687158085504681298302419118006490911739686903030891034266060542674333879324083308129861379897540704369416592938672787873597730358408899496956729455480989955458204206724189560997941768929342035137416060944952244839279141021105232309806442479069821015383481269659596034962337597646317802989590901487316972970007621637040891524556856204178211333472113727719619364699694564490578006613936220112593223751517362896070101572289062131387271111373394854369729350919912559230783160103339302000266607505039239212594951036301059123545773975852126863222110696986817427827277605149540461458526203949452744438364269441473124278576558297423304657923319932444852086394686815468328429994691699467414913301191317148032054671004947539678333271505032971251556536287775998224152751738797532505144933605008574117389719144684146837819567710921923346750499033465787790422255342088406924930485956934257403421589342755617583933216660396434731623916766317919564320948382731056486277574455707184566465399998592756259080557795324278371536252976911810045882767335874655498854055056742589637683516956722369216552650196135641484118973921010719256962046133519886762192580299819170797891897627561481485847961303810170240821110330762102046658620220465669368665734459496576568302518267251711334943027502386582013902553455594885320340567283395772970499112729041222359625176048493417239192738060188207690702906044240493085060830082180620146998480153029802915728650285640806842989969935300092620465343333454472322328295773648786762408172553685712530808130740642795516600281266426655685895020806089169468190310330300500473829728950075275456313524406672916053613224168430281608521491756670296860888580232735161786992698213165177271958159674428376432662205851647240681610014849736989305415439924166481927588875290314645165618028290137751576548542935016974563082667115487135060853183934909776185198496603178887638340221206443026987292106359323866437679671920147306184980392569390433832164212361908079439514024029097265620250192151676752910132278090850526932849242825591171476343593047861447604266705391318786291812493410830797834941827643364920049426165316959027422493665561957409566992783397439934057112050030335994064521847022942687695126307319022686610998095482475027003441920932518636098617061921700826774189379592256339665695151260455604416742513496696658122524456782997338478480469531049563317547073809966744580663024370951470773395166065269464999334137088595095387406765729534874127822583366336121739468793232103391014404259251595324121657885718574442425137298066247709658044078620596439870180168259506094799703074298309672932796799123430528979900125275685593564447795703572594449475685167148927531176933465589981395928627334730843968808858588696633478252488502502144266173113104654981449624007637130617833945607226076136802930154110353909455555256036409734218515415758530421817662510713862176400211275337748994788934457216895484772787441734439732909540485682118367307125140642768831574456253130761851051561150265237777576730984383351966063785048704712030561214381764190580015028387184985087739638258032751357991762085834409341494369121385639669171801500923852196050158721646866939711569486078959761664708490065432821145777439415108737818578593407324756320204384658557215206104273387412000794869740789442726521967888054309737265036041308598954990503412472222709650276017125640264082239645128618935790866968814990213517335592331113473353449151039924141071248730960678642231116729531652210051751695159249449224373998770759092923195915336471827328770102609175615428448564337773336921777110811979219176552783418620703543447161746852584643822782545971184866981185107810030554576776736834635061113741699878419176540601869957688919880630398021386422489773750349300842755565778854226375709933394934650763456638406478382310150376876777657384326371401754358781615019936421668237773148921224944892471417625326493390732836477796317569585207938184785686504745752799708416312703267997852757009116244129213609254406547243833210865314885601715076361964903148971005756458786014094090353213579593661211583636715851755114878434756711634614945999592314191917058516268072205824960317342791054346559539295839797468513859749682878557487258750348627016786189703141986337764968758532777185531353404126068248318356850870519826477369810028914380880340064566362777517427861161134063694436827679184229415521535884274693809523692412785545342784853101776789836435912193681696035467220980688515889744330856899292247433532344091857482161574495279708990371614038812684218638397963679020116982029489679812914253163131280973725435186183882980434394891783282840421485158782360025717431832535422583924603550231875910190900699790593642244440748300838918765296403990964604830545358811306660350047785412467551609146926365723209813995016729284807023986808008787539590482499579176563105909560308026246236575866191970382311828920484930239229203848107107694739162985422827355211592403018340838488025510721347984761635574431054501758913309990100055785464139748870304528637452135680637073442308585311807134965649666413272146759090031902924650082823980180770272689333277329563245884378024475471132887625357720712419414542895276987241509555421086662691685714868209222408943629584836793031632000122568764445188689867372155873906599017593948777525192440458222942666094915515049209110492978594355615473938132450226660770031939322875789403994239248096546481175197813770431761647357479761941279482800046990505160152296113009088810785586240460542065288482939770857036135632262387444729522573411864628255984463663614979947430446744549493147842005947714948687922289221026181923454222338402666143500670347206600879818709727934051738372365932135140807480991920933736732241488637863095338147400257808464129348631997165373995941933745859470394880506606913914697522183453139370223866644534699990244631365334002065433075284768338426962941943932580910336278917336344810334269092251998106829399385508964887931605564997520594762961281738395393190607286398995187692712083527030542046481306363325435970796754375731500783654096784655031336440602615301442581618061147574563004186661004487948246316636857914576943419348987487834356992627357455402767827552572327810420002182459251195611394652841344129191764844058178535297785294219876946110406444333899588720920513731826407711654450704377516983408608687847827242393500432204696163108432523617192163694171069920477588010816625752100154103042335086026904903309290211981380834651827518470520466443218005623565046104212597411237458026961608633884955732232010261131837942569629379263244300108890210873992711371933922149313513648182625178124519251197612531805987733964023856434261193734984056506996907215272030938784151952298493915504946994270626668083158728887495710532319623079226046266025801467300589076541756153425609434176909065938473564945305864841818702327978143534624272828997538551440140525222272538959023711433595647233739483244376050148370285089703412621841716009512249077581398201341842856789484087101719995946137709305579462712670536218525792514570906360924830565938494399332111271704271911132706513939548025054813468598786137752896314043450228562452208771586514244892165720949981536856368235145241292805226363546195847150784452586780065432159906405346050174523119412550471173172749266942654939687672794716775620863642158477160078509758132819407362285096407996075741344948308132787990536589345535847954467812637107859829418877021894398425025597010174379280156392892631477435998020290248692991158083100344496616693005762043714642858557836379487571822990407173080628298141711346799791259926735952137540863567409796380186187414649069310856948715375204739099155298253169430411566960193574978418442987665777333863673825624444038279516738266751335178469474392516693163611441684052832599906837856936379254512938085752361929588098852945984856659714149794413196883920702628821023615153918807771583978960861151508992674143339027523251826531147568689372289093740446116486904025247036083266677518627301847130850701192730038041747155672347617228520098295965632808644713766634425858258604099738276556813033731489207354351703403192266173009866352901354471577988648605957063117595637665987638911166185682242097630527116259171339486990341489496140505142365560467596473547676088109679681572699755100916415871459611850207634423442928685981680908792536069468082864850458384947798849012147606140272069757838442554195555317452794817759239569236152612466588722114727139961752976687434246388803665218109206187435733056662318992696388543383648771736174469006467196748777582250799551185480226861794779640372523381978328920839730366243660626278172944038137276841138821765704192259693734970146933600190206435021008278379760711279060863117353067070291410909883269256152079821749665096667422007680998020389874023154581627858888419529480839689863196803519658917483048134454112389575276457759149218615687468245369041488719542326597177602074720898659604052478941945507180461781763885112035570513552330932585860727454067332420446181600759690053075278652003933782046122921972596777784334097495765873096154604824319755624120185038311446764205480698849694009304113791600586675068396207970520623564516258676825120359466888484967006558735200222387072831724071157281972453612465683408400561958621821288858837815325501762962493822769013664875432491415439880302844999504877635759121702031679227093109114602352388049176757810088242254471376642694447186405494241224570655117676020088855680708239358087572630536607407645285144691534963473687798528685835790244270420722190303154572376804649236358143631374465729842631623838406319630982461208520255482305820338002250515339048871503510018156580977758852294779730891754373407486162447544486882211315751284468259198901990634488539901620717761381475955102623523055272782694823747675109568718795182939818513329815236482111791478464031636917954180532389161855618738707022497577955818992888071193834208417548473424117214665936067630355403980469151438654794330605855606018673298157832390842008845440792099817377722266781272969472790938902887825986208735080788437372555037690345498939116325246364803589670213541842088003976984813301193637182001490725840021389583771964792269679322298172042689576301725806582184437337725482202426562796926177400646622152296905677265689264640323695884624025599545883292107999050691942463532832953355137228603533081026378777586621350205465454604209885363413357159536511494976667726688300072196680102272676312706464031099457827655817581871509688006588570387556874441596125254459613407050566621053342280844325364653174089186932083684990454127060108852460591576964196269442263914734744873705623038547301662419944942537460020379703924487516745069538701268651879663096621146787691452779096199834841436970691240243232420864052651931746172567290518108160321366373440167663007828679517538745550856414693548760361171273853929433707497169206490826561439187917130308289815420020273063848893178215569571210906512370168283522498976449090699148483520675384337931775723337253767271656383630125329718124352612434791037514920216448488806905901004928869691060424289034362357805936952857833423904773581351409789282850398551010196946116654669430724293001413732316931130047499482192960098329955119660320094768865281285094442849814728853426673508626534857545743321592814783354627856200402223885627325343768170327795198696268856197646914269491948808782112788027700224497545860769407591763456734195721314106773262679434187845263298884513634776412222139579155791118999218608076077165955966313061597213497638244263097895061585193287514377672452713248334595467512194913297412040894569248844508462828783969691537571456680906597305695925830110334854778369240390490756673970336554951591871237711181420282344855300118923804051639760646045673195608289590281085780831517678053170980907387411634422159667985843789196259161223340939854843226875338558064466750348182564386425789646421388127455626010890606639683856340568631402932710375432990743187856494439657653473032609125127176681479106847581010101074298444070427696792565263012399221241257289594663925335578270891574267052690275498646761038004710990950302368891014930339108363980841508745522584420599133055055230544869371826624535576836796962177995501457892182284262662482855218553193375632460497072199959769669264362825521501744648854849300668814209226922942811161220522074218245713885250079204024156023981285745825151252318105345535763076832033649118222424942130204012802989624409953830525292648090891534050688132348060149850552626323951063500475744228365433380798400216088796392199044907885854618613135261387572719583522206257344825677444277305559017396704549073623375532590193331062132029149177911375790506461942945181980182566436215900098474991917578666132072150983994409257724357666991818452837639364632865168466259175292588109083494152468473831062774647757513604129413868746672265973164525087627345189253569799262940959154291517932985992633112928814059748754736507069557303143381985644381464032374634065122255813912541760755474682804565143729832295993500608715484348859824367645550689016382558713321248196489459478253761723518358780329450402840143206182775284168062282120370802576532750751843603587333108511543156366853445678528030329246200817944014378847920801927545128451006943097026026982863424915907346258275252932339366155254231813159223776066764080223387345371955572561528788578731974103312472949534593996388822001338733871832401278941565832514045335143323053017943327506629156698465814711168253216578644328910177324224915953703091491694840703748370200170481334792371615905991081809227087057761844295204597967411716445766557873817058415514000903892323656740556451082720175102605663230634262975659113209292361986026787405969937356577124917989795912181669491536327968950375159411364029554834886864902881446959791885543511128644591839785956050938870416508653733332220548277056312666958057992846444610767575478474584918474212010599883614201366716912971796072862218927507164425338330748462742203487253264466618756052641600791035514403954590869147940737874751572232199587530730183047977449006097801966908754969279778023629665570228521328856880567297686891240870030226391134340850596624435145378601307076053177803712710296403118926907300891390268387485452452496432408338094031735073403298698664964047143343892761848013264084346936061729321138200352281998229930119089600529005478358963498180050132866164484121600581495056753550838878061777609328865980976206895537562127283373953587086858196141032439727138697270610551584149923732276257025151818925061269846910271140622062434629407685888880101785475562490572117330006894987794094577036641532801172018021158212185791271166713934569832082706408767490707370266864956709003023977574214672233572270269149356249686915682765254388580068894761514972361582151270882370460316154373252438793032013828807072067183947042684750532672298448807902689081332143871386159541969550594054157069418159015800876657098266607535027007864313207905961488806557717092829420599118973264135636597195187963347192718858037933617380302338467288543753353415509566039636518720209088888059051709315866247645254710248921137724974550017327740880436475350950819147705215692829304783498320570974437981474707711143628279579201010710059391327723726710299954950657712376476614429967226787337664143991457500755379489458926436679238033544536816631318782335454689155643139920001714402484586640174845645339947160347125721187960667213598645765522196429077822223624261720230336850545742470597045168158452845860669001877911679778923628414901850106915018567249991365783576350302004784623482307269871392533590012692257534051227669949999607610291922592719813151336122982202596357304521981950177885288593403253490564510480361406200041139752807580629320838806887623353705023017232095666820502285657690850032315914499394435171874569066586832629160921812187530352062770036640037419541906968193482787221969130176614296064804609975559480187945896742051240484616952016341918624364636325917793221462183538335595692714643866495389804844117184883656786896940489287515125617161609609246314040351571632623455566860174598657800077126820543883434423532994297148390733161242316068512188379113706879850910874154576118270003665799903577226072856549495690224689371457140874288248988886216541728529462725416260454099047240511361787143617918775850811654288716523722179750752779270733020846270845923553816256303022249644822462332728824363880664329707159078373278668189960850031131343398621445776511743271745388707551749602470088633537517125750664640450833542634139605426567558382771124495671765629101254566579526933391204701611482254038572988074740839765432897360834218739513103284989201072315736895022455163058739959577661192169318204458237405268886576919589102441357760230013050664831699259825000921192528667070195895121352080027001244790139956873339977009250273647083957522375511791679464977798732451256834865219238785612602527860702431607514707970929138672947455823245622193491290641387546682709934784728139876064350436241591620866661486021390688919108702209305334115348857308511437630079764298394190171593891405391687995826026012790155108348387160850505685408309460551605589746695002903209656236256622904027410180869538693756974202622833143738426355734291163431801517525462057649213647915162294049196061537241581941181216946335323109124282969530829156781225388675802699044667981697002294998313364283149456805582432208609705839383916411320729288902568875915104255337832642336942235579381963632786676282652625120711981282828806386749648458698481455736982449554726902181310641440856951576702230855692887920055621122481249874992755434222597006673876030513483315292065723849424923738544358997250448223155939157303999110026655922017829584228059257912991829530045086359917995603167059545381582229455994224594577801420723297247316579247854259342477680637341494691975532634172826595976338886321144029186156717583460715282017819278165789883860189827116770232136788651606187560811179848934942730815477070637366046647657057646179474223799599298733236393594928670750920793737950142616500203833007757024064054460047542449791917867921671757644122627381672610874550097500850639646062989248997762932032743975264881881687518396907510011065634188284655201712570520238255000229978639114493671427078655955795009368321860341380586004065816235234452191443756515010100015147883987750250839375947874489868583053621964136062135251181811954844389551516291477493088232035694041042080182362413345878505552277754760725169056007455972597555677019560419407641731407385802585965792594260488975103825322763215252097667592246189190218585405585652304255464824993422648479277041437274361226324028100486030348434717900378331508192296158365789898262538617945045456342365306088525049113026288678836382273452787695227126035236476679013565057253723947438968698997241242380411337173652010537577969163764675589739813648725317213399622936167964925535538132565319331862398947522572649338002637722494959715055669048861044266258059705797410832088990675645407912368225400229119310055025174738048820773379080357950943847799283576261555009955104798329146236341274632238896997950913654299408019731124316536785953737827324455940702228073491516860389526116318906426041372979570049316817856262942764814459556589479151899839972787298846275082657345945312937088387183769107468103148992544067355510742596153636592672451233334263173665861225089896261009364233658068050364142213724664283307269587559074423082272555083846913944232570744202183070457047680773780963139998505635533325398580122532680413375200325453764175248698303227410988075759480476506450098041763659046265763656361116572817570146941939658092276473335302478052782243849407694783508154687597421821279362847862101315069823337830521931704537944852546146960140343005282019744740000809940461160980252216841786886318614752194234505616725994639786980669697970089534330246110166029874870954912816201241763135164623053955569164001245224221649890535246969647717008865851870858927070865662074038228095636275519246529371901783130445091257549526186934979171066456833610150251005168678956918717073874450628191092790426230681802471902903814314122912519501037225241067102319708314720290978019537011146510896279603183433249496492987949332769336788124490662733299590068366462864314720427515338677898785191458704362274984582070299071179307755149421418043330088723051820358386401487947640711973492539779395843134830709506190821383166738780954549933657206762399463679822030217393780740694243448115952026592292915859017698683713366229903057245654222774420924973455071348093289564341502023909646236341237252251123448913695259338130122732193266337882632249141190816574711419184413906493892773408109128055552406394341051474390842598367371534914764085107145024334779521769212514249038994711265304720640754841214370570063162769741081170145508238660183251698708373663116814921162872674611863398817796649020570462752423376670234087690255982540019848514687874861468152401373954292774455070425248333815926276402458258579825065583926307175791853343627182624233288743497105983555896732325077485337183970791892494144385410060372961811437651138851584402710084330802012103534530547281828085225086961195071035213343053126252056806774527867682776673777288949569628631721650068976865744968567885097066978950162440398064171141198147002198623071269862706320457363477686779328459766593153220118832204535699641002438705421986049994900264692925060687108163576389856717020977046594677441067872870645328761393373984163379734778309598643308578386063353485838074907886826407442144834920463300914111599765621078109796327001185712013508286242453775283376228703735502607898090477665545999292347027846191229794366748542249952099774039284966632133997503421413597421800628445849812549810728518126973769580581422891888246827946775217923704086774023971144271002255035274019037973769793208790091731973771777126278356295407228955927719503008328533984912484826232707447476751676651526209402719623020029082690199312882164394532205818769508374061132312732149937789445167258931341117525916818576543317771280774825157682787681308772574357356738137612697733769533330886635499547385589484834498417773445345098097895633654955331581887209632529506393660384166327933868488504516943090544405164122080123722607752805125983792805124213586877025945242047551866786443528323438200431848408102420796704323597784057624596170738234226622299666189735328215157362755392704134103097200036530613659142043842922292973717034934042925961947862507931882051846379001008361600965328981366045606982211924178436422589626637253438560056152995976517128355034869966056853452623473994554895519168863323870799147862856592796894049025291947879405116564362324277914043930092163176865501233502352821400359766396437694830158836108407089905251521838071276826507173664667663378181429727915537364840915725542117150228694499996073446512678657422895608144640394287718205354577745837407774585334409563835592630070760344799289880661134688608865150306035694360274912191331201181622506633307181745393217220562011962645112569155512418099567887874800259329924388705391511074784643254354599004245100324354535508563783497062390161655546587970380404080836818172892006076155394856955638516224903670624305136331096297631000048981340149478029228697610888907911433740761563983254428904941981130376681202288972613514473742994313275191462072006895397164555325210360819466354890851284105146242651489042814526736863473123037318680192779074312309630726351898876444383070798339422187732772603421962256307541305959585073092633516406750569383492532343984719596008380792688031128181358763921258074769922229753688090016355160466345676645005107865441503524032807200755456824376921507990364280813600395778393360881586748841910344752616780763380477071824686648732332834026105902779486973933657525656860326145453924420705683419868585793203347792875337376009717177314113213520223072120838059990840669045779726950735357877159037331640377108019541473445592031686981012119079049767298834287153499074102521157377585889950836420538126369227245976343057096963719442145880175764513441507866330417784531577002036885035704345484801654470491540252751457125207042031243637969502951604675045957350814359669397871181821850430014801296324681290307381267342262256664560325318433561657197683391474280737404397046981169787939761960259760384896112378883251017759485468461316495858823810648886323191311173270241013573470173545645983418243786294438171713874186891418412554684114315557934652868903548617444990807272565546283911502071090814302044499954782451187000233112079824052017657747777291893879689701255726164624091198186357175539596657266229794391268855459600306420808003216752488908854029562641393104886773566519261849375487246813670934489031604550493137076016743323346689213433584273522120814477272515703135065437666424483816362513924149194154029796083532088464917619772662047505749218567188762835861269308391599140498453210944350589491337031019814442936806689330575308956404192663662864271465680495612057148266595428895262647616908881416094530321760014693364148881538351173500205544770583667069189546313173671445681547319692621527535484053980809943851308903791569185058569886541460055980545883480416460185502573643335165170543978202604274336683648388727388250712112700535685155772251334872817328541464062536328849803000508077829053589025866189100110157846063802135740692764588797440998614491927860835610528060138532345601437492148228439802870879539744243733918917437401440711954251817914119405010495004735003695499630250549910271575033992914669852154545753114287017793325560876348394617580237221062628462752860990904310851232386571522209661233721099641613066907599756042953794251469641743660556931873110853087021754639280212280675045937213172450099573044717212399798951483637967164142779965705845825394819383516672182642194368248063563834225919439748987831495254311061043626186787420420165815748619588631022276179579373794005332246789559470645159291520789700121911647457919800219394735517002095405909387720931986296715750008475737222151957945303890045316901082463881232641270493738392320851487553517494224829665682130910172638798656679641360795653288996640167862540622341334692388714969510770739551508113842223567502113467178840067995650709438167297952407671582855109304049415795492378704152351004546165829593052498518206651871175667462029358706831274363369976811342021560724721434950777348914368128812953634505048444673684874586437135760371952942389700550826097188297483406434500451399418649567673253439099700857669955365573684379818773228410709833880998106993611764396978180818307881382109649617867244612615763044570274192630670416008940809943039343637615652159803537231974223783836862304862924635618973152300197851557379812038128440249679251454824752655879618434387192475029559717214777578650681606856770036028618312142458160719063995992662956482207170235213700142209720967394999206081175076852216909200909383256084493393064588943301122477333930829335407953712095926911882011636260397007549091845382146076298025843510909394150909471642450685600115397978113340102559888001416355207315100154551342201507236682526390266752041111499240395661234472507167539493899397899471320094589849984915831015962855983828841700163964598387005753051991278113735011974314310389972668123182705685959538467648251736988473697843508391675225046362130818357032565751405397423395717484839988002998124107593981379682860055939727102000829511805289294368479777347721669364162101131468625631896269784431202875457510307016670884071951873095080367615334657016701739595907744235609807281728550620123686771551784809097808729024948176152268096158133897196785913267174709325555992022821968131049629627690712948980716693898352794098201052135128201489177777436808573935368553663367302556329945600800508355164904249025153433029360091067397469396137619427171276972327083189208841672348104962631053879664807291750430242035627247265019179754638298686262329037749197003929435678440023711624519142607605932327626001059048453950936890779536551138675158861673933257778305672043225712333094641434974910023140422164423099110211616914317290955163216323239702266105530644305832997830511129725047504864456170534388629247777903167052623841449142981719562203569473939960027449082275379028969282238871415480074336397211365090054538673732172209325751982858521790061199132246343889069009436547287618677396048906236638481457366483360182154120084104675014449117244723336962775636925984177604458328328448218808437288600800709006604354575684057832543244341997846573900079926437401204053263670738501606082411957168802510200581788587159908474398512871830174799168086525818897603265749096300830668932643404956962399517246708221408624628014333960446723956366339322946457059746523682319775294865310164572271733029129362152642639031294219720669766531303310555374022787750913226622910457927984545864468430185430713584427421295731880235060303387489470138792624715577464546059183738405212366558827802559086740901981570217264426965549892233955788980520765630360789178429422977925247541135418799995604939197633625980055433303096274095997481267787602209052847744383524614344151170388141534889760470879035872146781704333377039017537220827039151547468679218796964538081525361898286297587100469344038286106004885659634281349786880141244504223845561989519022203675643348176033446019297630903779444777712666166323073981407057187325248060493928030816327952419060773871771687974006042231697829546536446023873739993591060732599604953811212381763335821567161781829568612471235255165514193781009173385486546606456062317532249759553859815982558510346033175086519985151654926989401806308641099788073544094633786471484823552641155747399703750431314152155002040401684924758549511281196598031313726415906195813680352045824441073829118797868890786311789973730937102790962738423112126859827198064663170932853613983679761959209420519216529655348182184008096632977941671856728757026477462244577429678089100831784701075538931671260580356734239605714922643985864181384242118728421773473292549564884203862689857754302486319974206382188157694806141839280612999134494928301069109738014576665492409659338403941236404718847967025935640768694163644059732964297793528177306096664183501292084126457547887907769029537820511122267872023169602888890391370079119010074867673867804540468716889874086442659875165990991565672253532107844662917656453449596222850630636110966238529193771636285483632527224255687566105193931299273199517001160470747355413135901235331967918345760374572079345580309765397830008727601931499158504599323854191242491235063891285513819106504372211284844945822861987130605579303205491241571248626261414831436627595871954202268590609694126187717976756061695696389356336694826615417277048039299641157400177804992447007975813098793647888532771688509575016881071397805449854930274704685420170851524226536703939888393108149205431969228502101289043647823457111585959600319828717031908615419179950498609701080927345148808447839536379909859492446664250862302967013133232943066703474402226932948683738137436347811709880860052220928409537222733007786356644047428031483740997254560595001898162994343076263590923407616453647942473088746265319015561820690903050761593531489829304128143581693259020062319842212989678653501488642327530094081196343664313139615520371111135796996643894937728121149540887286964293142198855532058222202604117906627793174055506881711584708474949693125058297531624694984566105833786901676052182574667364706718034843672763012947875296620867134081677999993899890609968104051942013264608712152840879172892488503374653767123159114094108397851162892013275801560910105348880296909692380924565486004241118725198358565405330449424469742328582254233171252164959339946188370581733247592377527780272025618703092161537790768004927199350493801251176457052378632261524798951271780730918458019003167716118935836339091658517215938006049984957188593757132625496334153884135391889418774297195930584204904750211943563593408326372624162005574798448594276738514078867740682927581325481090377061063118750578984452893417125191482430036204199004059355434326267020405229574849687576916495434714598689971908659148134970064986491648488973633884623684197787639074268643503720311197838312140440491363213896571863025095441222881272927471568342927042880118821856683082689774463156834811751256640718653311925588237563020505692501373685976728591901204777685371139302189254094546530195597625941507908742386273334396199064326848351025043451796043943025232377291242455963159214056395765830170392260203378740841403459808008594346417781221253098254586617063193412892569336984016443965618411859797069210177705740862041171156929466969453922421709992164340165048515934265679731294381973582665499450755283423886481125840161048128263156984208434360839920553336073938356230936014265676293940540426452495856939682856901463149299419413860513938214077211154066402352196645902951318805280044738101343004113638626291926765072461517751165040483409379301726749073675629328632814658062120775609955310914452718337490908374351134865775286941834256651033409909345593271100614767863437634381962131651504354706794016425265981498705766788852274896006456951492297302358865457495704103871085761594032161438147218411778924482682889454824462400040707728382164252694450832362799862475108784364345801060713215245441445712892012704135870277334315520864270698233347829248970752909262666291789203164121754277437448364148418899831645429480229902234751840256143629663945273782799423341982782323080912666471322012828732338050022273084341003530729076637868430837872855947042492504136726263212681962287024862464420457847187840431917911209970543665895492134505851362475452160514680319154805496925996239658096852900038557893388028842751705142487027639638808808810785007862874210575732656605514700244473761076946306859711227343735594561513045399345665102276190990397755330571123206479858294473319961601238269017918315149521192475075588741872807087533082570619337351884025540362792537304840414270165847784100872964921602439164186839862434761208369576089647042715647856747993738908558469646735496929688933067729496973209143170556476844212993378187021032887343248736541937507605245034637740129887363224925787424859627180108251836796250083272857556031713730291487696042024367402822543598126999602242094294588188167315291077034702116183120944079130004526220675321270781826819634703215558003602081086048600310775631499618665363980014577648203430635406157171806035748932690240891140940349657128420207006793745036236138078226041824222370105685604549663171404314327835594202588161841490414088703260493955904822436234318585876249295366070889919963247834309054949228341991435070120473315938452997266487853256744658339643937082310449922391253402165204083964325198047320094292258087837867484071371403761082130821057419485888829041922369670369811046014774859450249451912213465109456817542964231719814740013662455557401384502030760898188480928041142421218162274869375642296261680062372719839184005852075619041220936317899767617249390073482536070420723691584227204069448050172964911312803006290101432767919284713288782575800714281081287402659916688010020538886888163398300709980664278433417092833191793667186809760402586441915429217070595414347714711775916546990365454754530011180972344210074098092758314812496086175907209963148108223854265854085640603803689849992045045118829202989829401561308244336198182235857332069146112267597522883604807081660418327268992465022028674836457703358120933929276367490763667690031822237166225220441299979304137278893247698249635118613170555342678808946727128647421532477197028477508761594826072156145026834455863465029628364941146403700762518733397453636272043687675246647874696212165881133775605308169266592289218598073055313011323876007097189181604933625248711938958391661150723532925108514296554263730430698666137440337784023824873970533490000030104353030718489309202587080226905512218032129661198870547377281427952248942553647257393317316382020583597334737504775191899736103867997259613764201535035375526446209129455326917797157146987108437975256158571215138242738526820021934695529547457491846794469379749593018161277379495774303543030019312148773346233012866713917854084612308021030172347472787848412639497489852655632310124706214523268448146719351634850489610537804920662396075216874246259993808794674992189319957870851432175266254437699046899792137286620617613462661761447990291189983171651446556035921861079313279143394242152713160945096267685728847663795622323402729853396189692292512269883715320841195779707180154086150892603847807808194480095275265881064874390263650813944137347452102881081803406540340339873239122373570063070390220020090227089111058579059690406365015980297145604225401087315633064112629944033815199278920562926893166922192274169646247714968110411319549218448328350981079949614762217891304082181442871884298974592851729044409470982842665861863149234835107850630537401673984162354206185182387639569654439863212576705933618248508227683368035269917149345404027222582609946117604618536509458969145944356912565192223996829414505552028450946717732443806085012660364973742935302460411963574582800081292940452875747951611941275707048800853400861113849361781097051223823993709188956466704740568623795743772666322276934968314440607882841767574730181762298366167713762155369712062570747357199345626792428197533170599143198626430159806028969888231026305053796690843968637592066773516833834532864981907847158398243418060173045058993890688602696147974892143213185635359127292864908280475894717688956929353731744383614378134121734260028327868783911036681106191202604322548960523537511201182205572802201828336392670490000860723001160388494814406852684356381033738530519616307095015400076443381667889032931393221461390471585996579207701069506085257523655041143184476481097597318271855401300355087417604601004281517798044333152960712887560229191255137214258748846787759836105370667867627512104026637964586940724870287393283768170418523634995381897114060652452153295812119922745297612870716141808997419702049249285130316433195601272545208732509931703596255054368846451929476965384143721196405534093055587614350683451191443844467099892040465353833695605909128566856690510410840211824835666296133536817773140547939544083667701654573367341411556512738199863328585814455917905547424856568653515898435604072614945806859462693982417345190220009890239266342069709551765670179743791282708894351235114149126815301482161763901159255967615888533448157168460717024277900203926325913814130149858360904919309326145265064991068005133611975629962939453538319899219205277696612288036087393379362403761188843428409498074625767678492679733305478497208858767940438324365218630362577428775793315106992656869458830274097235536041905175445490129053736642299604123069892879487957341290685249830985109437093477750666420014343927049810724263948109603564025455793272395267808900202968375025472140932778870966895102595143247624388925601509211527041830597966427576695796496156940227600112444126718722752819401652165227488822864892699314747151502573821835095282594766668854184902697456331225102389057813471320800198270823617834505632675308218260178099785813512736313606784136707767296089085622783024949034740009320402429962085400515670931369192561216556615498764845880732700831139099720076221474196253441854831537582206564411402760458866368193530305134855941761364583404592646164124271500513925464330925116814307499299656181215916920406386737722221632385086443920898096535167444376226896126626868663909063550044596382857920734369834759807664435728119555357479016771963253018641571861736032916513031859447722026605863365228747378658533313180773675267816864970720422289533639703510242735076064882486427752614894729247514209241850505513377122134222840190765127350500993620898039045175793095210009454376679634219460804857642619690070837056949146553069005304407246840649235357582094220723852767165585473130145441842678478485146971497692267340118887997318674507496340252636245861720261038916370324315158621251791747920922712610125781482450026357898894463047245212203970626224904057444504107734830471365087066815024358489770019948917446474977758823253060036523669137057670446333358123087610910788585682032670215682783472423566162449781787454295103280699430037045809730746482831258160828344909162219721580186532230759219779778627634830121815666503345897630320773600578388329834280416281684351433382089023981766975784950941248228072098282393406044048815139419910564735768826126921213497954835853101712085797266224926584942644658683012617461601840559315566928345490993262648651185354987959606773604706650724974333841131360877126484210132054513532071416156975193991215966241411508528698780481806563999085657047180446124963071940379882489933028236313504253340805452777435551801890813373167442813071759731176819703528277235758956126390214739289153701503599403665444956089304629638653540179708105516620841520719713063800416114413275887391606893901343413645786384132616272057573836134358884643460004279311566312277317088705468957453109227670859000130654333604022906826783238223326520999575426103346170880838960068961813492977520957614868788573929194029028691632117801857397512767677104675815761148458499750835742747345269253052836180497324889224059368490935397351424030752103436364302971914145288427649240654029097242948516075003128024941328685987204425887313248562169600871314984611372750596552952938328129664045764230128498066957200326766273206340902939720964383546762544103434855638914252975878086212285914610527447936948710372228912874845967842458723374616489182997627440370954236643281443713347113985549098180463551906924049408021078258483494341804852858802542476685545741011767259013438398833207725536465337839025342794162667713402363968464291562265915959297437382060352738213208377605216591876343116900865129845502253720710298718651193397196675296331821088409167030761072793718348063913146789296540071449446036078848351691504782701727538883718253573606844803746359392245801090800650488755242445827973609328739256890618825834199004101746266015261879758562960869160897870396823442278197370202802236712148025416602074355967028816296065469402335335846287813321755918797510705670065236718403786301263731473162805977638030489793986605324412458859372686239820299122704770966775007764779838174780910732704048577486008847963718541834797593251489980330023517722325186102212620279959680621942999331599549123505828574047752881356695019977376251624516064713441258222485036694887363260062782257686878352318026616561691373061211087345654032671003941336252848602397431742385189424393605782904108028883210494971212682342868006727710285852668860185389608617519831456799032605920156526015505225686097688056873775664860282349533680099753730735224776045963707044368647375980673923714961574337293233121895602702846718953686675926198641699780849573059887640373958208591996131051802613803594106156269034792960510122396743362493648166994204047285227483932948732500898903647208525740623326478676533782944503510389045828260558534502059118674578242834032597549698021759213871383484534443389238422964419181756388057413422229852574292265909422634278666949138007352451458389927163495745240112697095153457293533686970517846239909243226954562573954432490333688431714226549984959140165062449867208480242944714050063615201655491722881619428000845218833858852939964301056084022654481210450625980231975282757938176896671871146712274789182664776159973838064394479783997567345476912526615381641087908514684925811666710498990912249685978058602975428364518088167770102765588141010611648469344179956731577967820194543028707135539806880466833534593606263949115962880156783633718622157507236241195479446374967933695925841871127736833486092725763982987500283565831262110506957864506258770503231544092877568998900891818615946791120269228883870924608962972754050985676803290647208458554706022813374929850133354180662285450517741214175462558417197621284018084797765204368419725957136224068786749348451005777970392784596463204722302842135555879204679659442274510711216955743073954653396246018952361379211921210276229663341504234815652838339110637701171249023064421672800676822649601670538796576558241269312119393525649077491996835553848427151503104315415935185785740208788713724550668121001264309322992494741900709739341837185931758765326854602947522082175759984449489960742235582468588228559502792578847270019159636796686686663272963690004517894608323588358050580113298132298640436911784798482010453729842027617162252014462776765745184205594423427192492062212112560766026398468184904597206297317741146478640164364781841749498281106874839347306034515657197955024264163624763398866358937810137808314083229064627067318718220281344750808083794757968513581926015290030011795331854189475959640908461280644642074147348433858017892008292463553952460749789311775363709340435464848080702711170937585435352726555190584542605164547613290042414107027137176899018488478328612128615519910634588398284257147245052825454232469528369418744060701432295284332873754872929527987802283581973413064400705114296722569160915588144858946484411420909454426440942902762998441048178212472413939569629724340227873977524374233449631710148380162781589976317375391758131126817723021923036122501536364529980659538422346250490116591549427806673771477639747916962574869717224580025143765807074972706339473124801215315720503970709047218978610532516907543492103791283365795719691750407999268073160342435586752516552805373849201187209144939860830017329628198539741410351872549253085760354404755082612901201856789015563337708005160434375855333625592002488090766354843801742907726638655016027967087733363431573662623090534280117988879420843508632157292133615828056392609770142472741253158191454329579907242365642298311138646672868076952475447617363797372150173223960663955257472726988520743918807894443838912770368382732771519429200993211981130043130086710763643714761853618452886935731903900301007259214778113923384320229691374248463844449231937681950723766063662698558746026126368057291081681028454864835324415011139081250383883297350405570451974139957098396302580442730389167842011402252149913630736695276018560046446072727692781725537279029785517941520589720968190508284498576964551952149765286120438461531646220995204151979549731219869255005416158261167925541476627613535170772838267190460482044641896111494309149831222026148731756388333978003625059065999196877451672417784031045783168225492738768326815217565687409904804138009884470334187565860872014492903741123929329927056281653254809723170550957069669737694457044820684230992567197320441777644309917984926107312912158718869727873205923730838745381247148786294343141267027342595930509972670480084765343042442901985282154461513200890171391423556024218724844476869631120166412243238200990211513769650011254103785959583776218017187556434818142847544671319461261391990895479427613452706102494219077699356888000285068528475066483287654725605874841497879975296248487745253689687799243052506548486240815167868543684884334825275334977314013968548443065211322764756693210089427785469263756945832478291650570377068932752955594188205186717158610948309157091505452379468162360134668590707960835930237984752768816853130926169063262272682561204877496289174895757434266307816233948903576012076064246355990245631651734461350086989760583068771354672053441852948596933213575719002195551316473955177202196103669898530483029528091479922702556063201969105297202503112633144976107437908640725833610954838077373222073753317295351342194014736593087653596876145891955637554628707595184444939289726923907543868128040167462124833274858831745815690592220092245516678597418141749502011631217709126560455800342686613544911140394227414882333874621903030676144908619011990866168819557677527179000473190916963779160048491900398049195824934781243044164843986196275761560267212782249645766967523276556440184072885652217355469070219120482819537681790872214608704554876097932607591011739652229195009558171586396644325611348083389569727384622620586349696786966738313421602332731402597508637642690420286636091081626605424605406265786451801967597300108978672133972405923070179527922121188289927933474034379167982564086007616357338769431791036521683621835094782245654660506675860510709838310716177476138552498505649178857066038710701255275898121018891715595132758365377712296021546767374167346193842871257712823134114290835634210169249886322704313086999212166264928886669534065825114598162128024749285894677002912379068559866299790743172384204079117751992693903647357942776902077031587746770524054569807958939670505421401081034973391629451235709091120737048744821446059556212311895695051853427390863257576837536512607984580599643792723604055883085898276224825459046464077401755856968825662451870645283483575545079423930770999847729388637772335601613808420891817685719389899974326949646206873324465881391074654949342273056679361193331824191902030353569022728782612253883109561385349278006417167120034591261281021845695368174505223947143536141317958979871676169054792314830150392052455299618391060720356864509352929841944941880235464280900259448979760964914782044094025497761077637553702403202703400707055712820712279728469134426961369377398524653864357903021352751381705909152794511224425804951033355488442052397523258589122777160296335347686220075580102714463127980483754873518278399303229883501188380743624771940821909560193526644206998115724228913876701152193241287213737746440368338142748348941047458764902391892965626148126331396473266031646228824872248146096087373872195897708991469152998905833488320930504419219019078567728455697777066278099751589400785013061186308916400243014118320061459059591652972628238098110857222258254847771396418732279621756430670109303212373093330123143678710708589043749437159191659398428511165820158005766246696349882459586759061026238937045102737359573966196086525541425545722153009188286717058390886461168347305236702065884413593280563420924629597978744145067952372399206623182076418796319084901041878562888384861753298433809097795116363427089369279126446748749423588647932842233317137413140049819421675194191249120734848288513919777245127422038961574190453219999952669453090014233457357592724522272718931593251077006080348926882872095202938881520122245470037169914391621464970161880818283089255813777230435787526154276132010802155644360922293577232365817541039819915434356529024457621779499186123021672350252568551830989710980475886586685061650355454566371708135028993077031014195056883696020156647056619060901770273143662153153146909999423618547602439395701491667500860034901018298772671455653553354394442122012826286211815175709266735717099821631313500263957250137795303397798153854407001272007388915537308542209999825631360411219163447115867613676834158235796506717126151180553643571962153045305802051626301148588759034173173328160205132646594231072077964939062423998794292300870487329981724738786378816665872234728237130597861948064618766453937581964148911385736615892721739340733012902527197951812097772192113788251519744524335878046892674158434585928292446773088488905986186844460753533609343147357815292137622165407890809877654272961383723024164971758330914260716681031993361338405982332443148664025788392459400133369099888383240780605510797612469275844998306689195755157067383590404927495131191622998728866185550591276319495272264868194483442416414156207606982836227913391842272519464604755533274924887543673434098061548379178611264784878832368909603736093881410622730673319024342173853719303656812009188541590081817110350758502090593126593322652809569774200810523584364907937367653798834362566946004179190927827525377128791672331694937702596784839722741777776857044798045253771719857108406686083658122732379493038469100841142339237820346876112072169493384250620175361457704052694861370953718402821145209675712489234176703999301737188448303760817879186101791636925659926582158359120314963067797185521324438900811268678404422804770361264657368483320238866512637529831939949041039289782798726399182593533483631473196540253981157443709877646760170965744438742691441346423364130115876972552794584667363543184470292376716870270602503142000434806083043022569023404994821095623773184804368317775829966143091400467554036132285186500131068301631439149778108998746404638160576097776062341677105730266053156402699056030172912542290267332407233935080554384438952267593483230145139516611735472226395830569376509026527981717441147452199068778587923248380079169434604362399456184578786755852618733411341027433915399103450257192851341118384033850047145579641093458421596470829708066145200207558857385946424222576331413733241896483266873796619917522219736194932896459266459793105933678921851881433940611121453855760554051780071563325598465147734053592940743313167471905631260670540681551614835945009395829624653404855454601146667892353737757796613955449649599488089251425087764758206155386466879650138247851632343796556921849336722508851939818085797287360388057675958850628196656551583380256928214465331888474033335499166810833742413099371316743956510041771909989877990661520348026009047675248479540716411184838172468034553910717394345605200506319244452952558487465424590354045021752868070405673023113340004855578112346876740982671214346482287686523175223816082985285339756347395020045192899165755661400636170268377247235351730850948332880459547799888502907543628909881615116168756760639486746373883901366554720268217609312278983320047405148216988012728588693701958523838804778225957932052517353444881776751926536162899799342739021061264791899741201130210650408730116125653524599375970275800681542013258849994513909930888167168204649172037447424200395667401136280189641069337314375425991246560967704134064541391533724819939638710436581518943665056121057428719067079959753821010772441929783193853752885988381641812325249044450826670383601577501427143276019207598784014378878249170482154776483079260144098605743674028849984831482175184168768723881531296639726362071982909427604414392704732506445897050481838628076336063017396980690588891281247784480710821238551199338722883602390350349809890775728667708246692233111259043022969905945102562209254372653920557298490879497293265852284479697843602676786787317085663343570575147651498677222040651699954912741885530911739721358379567431462314416595807953791601134070217083875914834436877033696992928778066356468707059234936620554809782236516673305542876142517561053581485310952286544111353812428424968894764572407048787107222482920291351395814511867450369011175999105327005167378495908509502446410175539789922253983374960592282180970511818271574533748691493483605733246851355369635915486781152568497462579849584041958352783854240856246644360603365922231428336473260780848655104689024011320536158999902583496906385223989823184174656814640332342726283292761616844168860913982054978260667684548295183092409327211365236868911477832603400416551355378195915518131050471953964857018876944547815990710640461286496889478283779540237193277703375115280980453030165360520200577374816577489710311495802332598391570614523873443341649133549066562977668680524127918971575043641155952133205482147186568997959345463026360216483566023487739182430340190858039625305125111205692938920868713678467213514302390905435100786823785032229830594327152007614770525387249915602853737067403604347872619116393302517195764274021465035371104725582878982126274384440605323507213921510681895977006986200974781153602275746137804868619664419427785422964051642980992237591884977877466145410886023606044175872575625330931336943905622910186988606069379890118898806422381301663165226998305416419940200179605153239620016366605027567884424057469800715072212921324410373929586065408833247167471320982101940900381259877596347951687725295538965842989735853284611113947727766253251439288473778976434997470927948776260455875047600956156558876499600967372379583127650733650674996945405941446638138273057991238883907805842362864275082983887922673453237492140298321562915061321911039937065287028243328522513343736905860307812752542664000181442758049258856060819377704921550150008192328970444413316417299918508547620748469163645824356297882640924217810632612329141067014097879901645867035727772909013018717005205038738847986806599114016472636003253163333541763558454504765828967880418130299074637465557923181473066449316624388739178064609013332459862673186038294462144541949377651256184962194470932738546325994774304052619880413728824300984916551127553226702866373113284203526777472221138728136485953726438654915832370028801358820773202447708923883979503033556294494574586279456560802276982442319539506946518532381173030999949901419372267470501053252549557029927621640430664211868336092689569545042663207060247048487954996458408168360717250573859094655985012183869175386517396176280654956172332550781346020946747709440981657973768811666607314588985754876917494269345372934327028113353798526275756517957301732048197566115596053614175312619405173688937210916719635026428238714779734073325909822905917152908892014248668697168063873907011831175659597878780833134646812866892866043673545726912955692228748784582681640885226090061809709319372645894169579687886643522080057787360613277634552367571629764173473148383262003472241746741327349121955166814674013734807085383890406533130688025945801400796125486308890316894989286513076174744724978235503529413780663163036135610280908397634163586458906916274148077104477251536617135191869245570649771968443359838887474924308923542966354569770072500577998353002936060318862195903349588813387314435049990857453725211744930045856586330179484052507467119097127512365614373811204372979382172014416080914114285564680077852257773117920391677840103428240260019154554986975846473995102307383115671862438732042015495847142277461382470002601108024915469583774776787075277324360898248928868984060816227343338833960283391438001754318661802548218249913812660307642259340322859697113434582000494479182502517315179355081176005695372080752478096245179490310728007062108534758921620518066388503265139133914478470290785893407831335641729066309357920550426872712607194956877848628981771148187737452223932803398981033164967950479542765099962628535381390717939759477105686591385378763052276953745962267210230707529755286655957182360048892456649753918935146860691288206750282551675434707977030995193982663666805443014328772740331225183220589926268861355226398502580081701021781033147922969017203838457157731831849299353564362155348424633430313870815499486073387795291276055009377488802876545969596846252070215972668257980001225723822319446398871931084268742943182969615167726485553590146850522356465208242927924537474348038347292801374941348548574950543968865970578441483710256571148132119867055774367504594104587847898175368259572776951121466507887528618622601811992081312905355059050970957000795744111020689926364347072194642529326708539250335692452682734204918359531759421031856605292475529350399002040150708160549907369868493247004555072997030707239643153934893373869496451176443237334823238422906101889764607682342666566444061194153911650896269529485671327863093643644107371439898481076399365533816243622158208705855184230374448351927232342461744456227450283989485017991608183520696661581015581718236077535560925668324706724987175596315440140654962337427703369463103229693083106387936629730537587331582063898313179911212815526832607197355058178158314897657097759942762505368237902840019600774526266361843818611896111063886525711014789091078383146679142621518039321647753184467184802426567996841633241070336758002338597747385933667651686261822651241865034952475457958482812917238175066472293017945666320062549738696779704309959456007206968794897453258736323684991646742345657500996137818152164148572780866346502803970032850079158093239937668565938388484276975488719555720905403087685668283778094942149471137691003924081509619662380489351593051544277346288769063569253640419226272988139983575097607147815261604796434504576995566602460416292957419540869594608622232092430593349318317975458650884469584622904452448776075822569334779195376394855762366580663759039658897794625660934101412867533811162747399150007007958514969441364355084091078123194025215260000800794105140372711906269651907199145538812911191627563577282056585195389234693487608057449746591806791765034164558359738468362623099672213733668322035479648019299717900755902908757413521201758678399316048704559945204697865228919247040441947813550063898840354836710097619365861697463777742176357703225456224425582057370973259620469091263232264289723505835687066416909619637579448274872349618566027984918510763189109327503332557842687602373095166981731566255686558469202167274465334205715943092410534983810471364778726415517040141204593052027314198779644879694415535012654436866287121638369153980745578207899341018217633317056580721777062092475778157311684360998557532662549781399426300341582759536309412322185827863922911420688691779305141096681482108283852140605342906018506453600051657083735303864172426593327325358979488353778484474244392172412205941949598147717918620048857635927161840676617674544519310542980245607505085363497455925545897887703186110314796860279794424808033225479751522911272320387679497410342534526408594790904692315271956434582554477518095716097708947897672406343246268376032751294373625245797661777657220163109507559295607296579772073394609520917085541480236680026565740473308644100355893474971994483449525713182588052878790445709477569412328372964194550652285204648170288699259769835696446643345157125252467902837324832257623019833579209434850388518739016307849125755949054737118091798406497918102378743491943267788134005622788982586822861814637933348201788161548847668340766459481154016658363326325803650166695551363723524492245437083362440417201554370823936871097191119070540933065069910519710801439304227080547143529472807064328506441762513075837651416851526697284627544717726793307194316278149248030452278527925214963194166478496379514896880511557896942400969111538800934789462956434752250937347941785334178861012750233365094854502248101443457724688934640055994876384589161884279224924182797607675283714728436854459760464811069800423761364263580298065263860181526959940136320212078676714719620115174801224773303552123835269401182456215270665021537220907733950835096636982731073053103676060275678497977419826787675134970708358258076493942760728035875290598698892325239865992287865500192137934683675387918043230557402718583058073140160358345392808548355520925760983993030529875566448886894605561031778579514747900656417148017802304305534507100875169940315602588575629144676038674562406260340228574686220154708763374325803342013226637460295829652619499167090837268523212909086090005422822893016633068792501650624035663110737830741273041144731699755930611360011269319838412307990940363750266958273320190452195321631874187895505989212056292825453145190182666333525080552920287657087141335606195310153532828068140724246685836378113993250580473830830300334595671766447684701798839336582441580041031443672707108827286888060634373599862550459771079275693509238081777677961489487021977793030974906825840233599363591898527431832277012484949219595306703239134329974276567452059204536227920603334804407493959196797423167041115944778876020207312940066317875562246624785708899027989771195730998211150091451515369024152528070413811255783458535393702000026606561332628594966051428639502558385395633239436921893437533077649087501943160617577269293349317421223019028217405301812289604745309978538266058137675296921604000519174297595633321851238140526727207608093796114222200843601351888943365151399352631444145086252370534866358261510552151582061186001878026245027635696178542214349543666236474841452628368762192212979680501769426983338253429296253896401667370390957527712223370458119473661790142866555130527435270653678498610512803656457232008360370715817808609075847459124842769660217485890631944130406078791715393956555621880889904363767170568313534593859150499391902611715899761694508844854166787762599212750093240407871429905882493215309968094184327135424938414417578459082014235172878509561547233222030952025848360978967509714517750928308321606943328878350898046997207468229365541382740992646261629283440673090807293639646744856323921240261771577803146693894617286898423546507906759088003433042471676914216190009797769689054694950686746740850672788168780381680234900493016202063409095340074334409585671517132224157387899808945077688906964970710219456795237610437963364643969774950111321358619761020754177163348493878949613878893620985649003236265872456168756507969716679235748124517546848711647384758618159610178110809389843188961644681784609563010806062470098632463020217251131820064407897687937220491424568635618908649575526395376438474465659343166307366147616785962365346504546901298576954794640538675448373156132834318496344639886355109054887880685225361644666389502046543284617192861719785096109836059678075150079904976512472552282421882313765054503585332015980972611348880441988242310069944806956930700937261892914125153528828390110846861069101776349210056871293263708121069952623769246003999097430287250124201953853784808841518150133566867817132363896066666571150687080375350283458641931645344484474293190810354424828064861263176150631168461341436464021241179975490674288151314408923444166426010287013166325798482613319111082155976270406981008747269301963949218279566448514036187430955223573803160460131670647995308078858626100725485648336835480717570346040596864978572780688926069905892623600704373742545689498342776726281119893298737427087820544401020215701718514280146874981164566844327065968916168914179030050462427509335634561145519438778677710497733215576785832669448212914532924531078538999861496743768685150290301339888408398487678365354069945785910478551173898197688490582895715569280767334533214569277693382558248585972528458828318982810458005838524769515706357477450455760158354353630783449999648196628804417232845488724394342568403132959296792191014324880197688706474352539373908102764753207603367317042757832963098348625752941121662093957170891455275991529123379551264767751489495529427062689199800036832594154856435626800753085908693514729444643259198165191067240599183435604509958538157517479747245389490394252102602522850210657666640721193378268807624155906360658775152916981713111493489969731742690337618553265443366324545945709502175899644417878380828046437748363325840871079086080592668398298642369631125859581672720507451946972163791504961563796388345428829289746412573284911122235629666776510779965687040496609324528659332138916010807017723778042132774696547998482610698462685277714085300485364622332441314914829827987757218201113385576697678580434014807245619214870131503645857405624059959701765355636766310241021645783703645480408307759058600160560391610988075863461643678601878333666259494622296959738089555202352374862617062722474936683383503855849660098579547311852731778676728123584019649212043581942347388435687752457599637774964493667598834248962603662826969768292617294056840895403888594834693072999212690058656448160017160158174976371647940893963961240231054168155543692068573371421543814075249455587574358818723643648917605453148368903383845239965781859507728364290578415506786276338664182422074165487599167181952296491649481234788094655248308874221860010919213363745901632990198173104234032944795429302985437046837105473861696616982553470305182271665777162287743723592752906191422229043839929665385893761581532663794017426977450263506820733970161459206847247595441064633791611988950333950013749422442435574992395573957344522303256942497362504718673755792056183231361473025078867355838193208453216853512782959371309857338700612203941270241828633119826182442322463321286655376848207762593323701829188240228657362873832947800801457909960956993725708692672815786492585874052819039730796379152262874624971396618195275546902996635938990339362306940527248895609163358628379117058134880110588785227973249849093033428009117435262597011873962323352770447761146064694937361761194689052957249040829157475255744306929052160550847280660934491660696684681649820584908072850741486204690469379608759706947496844936223436856329765937577996520948706507944285086239197987054414915168094883842429226645533337246230616669444982111729799306440416397011034798943352855157549065306258316578670106242630491955165958808560458760564566329165153817201677776662735296204963913552815291089491730689178669455533519355100603329941637878518790059827172595435479171706420370506819989579619352534149740683828615642588030257513683481197531135868922274880084270127514395644713188082879215939640305055743276087042970613848158671613308123287718671824078473482576474035071197790566070770136466386154336755828013509989550678125627099710807987868993085183589742175374854064465948982908220625754249847093848896251769821861161736412935004399650824283432263637025127947369982619577284204042204379073718518095017761318899879545501753238512497198831503260675901187540071231561671987600701532970438885651149653211256917987537283041375614401733214866347797342328170322188751993763042274325944899336759721100041836716722182655291851552165081080880655416498088154299314718967286753779327201087822408192238233817689191927765384025118392043948383718442078334376208521937712197567112843981405062181610288336576209721638851305837036609350038702102651400653661066367153928059328424663962203396829282607673573834075413250255207590614102057786906618266171083491198552699205276766762969937872764131395164064929058471683840241036307850954575807616959267407347570693516923969625099490265347580608553971492038476221013655660580936745111637735568637743179936774512298022853113802266914239988883009724599863724440434621763335110319249678063000076296980679589865352252425614164147076818648804611441414839926563016592325158358400227428550220896384296441806450675790751936744139064002499675119821497853759539743361366477870332534200214547206821402610172150500483591412131027555687741850534704693420527655337107015286504582122136014715073469580833847645576704785634778532699423727429074891416509275366289360667359783165930734007295499818592231264354571625772436173981571504660430541430874715314247549646581406130736621580562205590441156643017643323089491605596173843427529272045838167179715061425863483320403791129347592945746940832930012437579238598986436160048797208642693543378511008516113452130960751481489212186037560397737310528228188778666742987288454530980216908366829581377244524630335779100152369269963971356589220399413909771421214926643318134018104959663021132937305232963123411037141758676666992075772670997160202661573291363780688726948213642929512246477886308683431572849698538156121032353005339749925121364749154386748906838537821570106441785458337089996251226980636693264886979053269154454740020541026226469613319557749825501927281688050822718911421208110862114449534260965675740548290194264670595272861703584327158671998480915317550163630805255509011041643982225843191694010967551087676738460625385403553015909135445110108130146696965484723130480939601538786209000121783309033017377636264018318006347716918777702757351637485654925548853057077542491154788841593526495877723162126709249892083369978514852593306955921420209367987278552499160405698518715955344261540938411599648479853830462206596584126012848607939258957584803919759612082375398127812409033826923153901023130109535955620737931455770458120978932500670378329270933368981703269157574829372805876341817240375659267824417752470888009786191260380318895882726340372116357426194775152342630299952154501641146082032933770849803898365429096143169546780433681179141275150523416026785464939909340377772451972483209418584812923568387850294292498394653587297448397022564581847619649787481441317579898651912641330107844195748698847265593413858225317815511244589697529395438745571807530555305164298821594677486057820214197709047445718150018141214714565491716643807288502620343634256976607287910253714213693480403591427455391867948807985111812814563566146397143506054084865403941973504597875700507134568023637219849247665391458339102804699961727994458253505006521117552956852022108710683623040591009202905269600519256874445860011736246863947009416821401651578781510200539076626207457056903858417257301939189469669371744872851531116467589158826545531845747508518206604240803539953485974434415162222603033182655728840349338912581764814289692534679668298764757686710086228522128863690909351914427902211255457978197028091195577049583792869620201495587178932342033216033796864974703019000542575317697091626723413441201400664340770312008998202855402060950863626991894135741626362696325502877904708970129502219323579917433358834565502438740571681498252320696079525309989802514367757486786830986631566534387336062061040151905293213889156689643622057199511624506848335248782488009697154031480926821642291979496842298161436862462576255957014221802366525652579592251014691255572451728240022131243676130926403816096780377798271927475733073983530887257871142608377808230507471207182279899791275515480823238221289223781426146867747786930417454225259565955110339995444480651802001134224349777716276530933284307734740855249755485704677297899072346093680616653439032801996930017583625073401709023875466880746010389310521190781420532071585653465182106986936205146029786026136193044590421784316893065205575602650073227961638184855665410516370704723738017943469776242567647912910425377202382047192979854818451220507532658949136012957534554695758555084860066396521332463660753024430675919619668427252737443679218683313340383836333235961559719075352226841235444844409496905633208109297448450654675932674597949760599792572012449933418356691258800760347268823533829206451046983755065773292560119577924679780823011345360860204288478948590076140829074788357134731517970148230169358575883507774741587394846775030771189400485389110040580940779985520116638963693865009879484567918235559651649036510083112740042135878993431512486968136802709932383876790824541720247422681655772286759545148179329225867051975031842442719270465853834788495102695940007304894837034794667482474105196434298382602631151005157697109983428955715392921679341202082185393777081124989902081219580591077114787684066333293165356102829533052741645164131351428766105650568738251626059155129813480658706654081448223994620580952594582737187106517284149251378575884957641580843367116717508539872647258291986856013719157841287751148750251077563282583223012080207755435587172795301295937173094189839244567647640905978578084243023986287041556537471746827497489585611820339817989515975571025789202283607376916099968332010887712744220237086529225175812807195422028489637410476662238383209536671065492097025776430019823381781463891736529653816867079108174175631567841525479677980161291114252466106227334502461233478107106871393572815126743823440368766057122262877992122730239601716900086368760646504285375388185543744544777303157103529681426214073745028279086100495627165031312111111452387391456205958462023051294002279318899611252661566272268274866474635707945862947146439511120140812993309117661473265711910879492714566286351164754814384242570766926066437789660032806408091371036016211039208550041315583720079556143062701909091102957614716153057989141236466021397314947229663859795413641507055548767680524294982740594844188963572893582801129633683799097188113361551680454837059203073225207356568927792109383724398835971568241455172624544657962802444695330893725138493401173923932206575735052566405890699424253203053850275565912174436094991773548935112223755993267429983142980212111499272732799728031093102375649236920016019578444611015761857492018586662738517935104915963151597617634187258324686191864930493145987934416789291730508822126717151797024780447755142703456545619664334904625258612942048916094349418912419930976244418814400597662076602837272178777498628669108989499882947567718932713809199889172740125374657215307857124501390024083877217346544500262606239872543429988799140006151872760085376642738219825199328248359262161216703606602615107046975227165547365554008338564898355509993450188184701431310635094422130373323394370167168976436448453673183701205770213575330878477494859860123231609222997268902475589390734504409285902884340111977605769665591919904352500912774953253867781672756223719682747908908442819742740659119372515038734220684580189770416348026737474234523065566492815492633533278921597720943717421552526088306607750010845455834479260455738884870783885704549770474101018312520611800702105311824027589430742465926470804169310540274476832669138844183960646240278019727274940210813816065716650168665798669165011964601281174543054125488788222804900046940803492328004318580642296946616442114399973058984480256568709938090599151695551337519007045456522238604603730477200372540445139124041595453633797787568634467269181287937773547634571502621753245023779860870400758780440180499526945090463355313635406654546963048911712594331315163918173784603465762619191092039837221472979403144274796323506373468370337102807972973663501247630245149879888350056084006748739744469027602157564333352016152184733425225361813532108814201786454317515437872170620970249753944218850953984598706920550807528243592461027626502747169414726327571034263879410486967154528565149257549723183866511360450772608142206022430154249629095594171883678071451570370252859437297561684909961625941539308092468336093188462964816755732214169745498392607763810639336666898061293930396016415343299564423924967707941673089296280903160802111029320147810590171169279164829308706633184414806531207036937768420804161633235771490995298384651225891807951024464809213719752094228562285505133894159497580492766708794492462270085099786161432348894732987683287748211740591252517451194860475732639740051254054252661511566832979905224723320612787071594022923250910961139137587557216728453168459629753085094128071533416950377706313074747966983289583384908258019658305935423867773907475369758682851223308969084070825439227258142149692750670435471435463319146128111529262730992340861344942451375126005237062393573123080575698039982976604279778649811581840370097310972502908907223669029357134404947026198465473992732276934652341150167595650134110577652086418566869018785234070152115073915949349763242947712427071799954615025298258301105890251467329623253773656784259329420089426257403699572419877042078469077286438963548688790356737594946860332233902992484559916693680411594119014721104687267160140132907597847847432421206050671482930103039567839001014315086076107495884269863279645009690433995226901495890104884343010311861128270226627354756110686350421933574007858517856406656215835131972307941339555133432258074124039976747784539607940837895179419058313588714420003196725367511302159091493457692974559798650301646083503040035150751907195105513622653698131067312713691895997585730275592684723881217387372461325086299059475359756064680175787685615529936798766937697863406581590138740638545560423840291031955875363664522164778450911432601724791644030499199885528533041814103339229622826369383037165107009344422583907291828672853184174017952852674609665341748425144563714893675368540562799652495060843010690804825689411729949977291342164456949854432587175970188175755754593049186948726049252356623135776916959622022859746888192157323351002041334898208052280947426272834502774812145604816961040841559704998306245742497611871751072483943184388967707786196184334827957666357680837870287532169210047595857481571910434834092619985208144692461613475561580187753273950728024708686533408417450479512586964989281960778423418400540692858773234286005111036421797715457469478599520653044624804993283314792579442446486389808977302194777154726150162377199952964719753028367074075598012892133837800539918348879702833702286222286701303481159427101408484816626220125888107386794319210916514867269162358340114147258470042290315331962200173818751769871795668361083992216564564396768643124248993200555577649408738201463573394103433574844908445617813527021075464063251786562869099668838155440568387220956763501680729592292351229498815491579692535875337924500424403788438814853890509966273767767643033627297706849151844174305655464514846881117536772982104281487056077541197791862250892763005370534795451026783555064535859391003523707368391106325753776859613770487932613707070599701227340085506898413956059262008057905349710754246968567203019657122264670306576086684636656411317791202877748879051413197589878492292933236331770022648823181494795734901665247727344443336519274128681350992623693026655519361934850925053378166702337099547689346539879636766200945379897698057766158940539278946888669667963910963849932330972264015091066075036658791245334479098323647267601588396762363340265478961398698046948092951454309351718679117001949701470071084445050788203400843411437659706965793381281010791399517770590342190329761375126284600998335194352505737583865359792801802857725260587634851400548849293112324341698072372703959963673758093512150239318701414745476756788340988364501477703917623094734219302634218622918614927330535868009255708132587856140062947830707396032333800350243346339684804263435363471418936281552253489460554642595759075834260013747217187753218955118155193428784156334018384735886990437709963765130259630298181750825895082943035111243053647077184496975426143208500400207713713302319159136903086139356991486707665809894205851288025021823031585861088388393652880200554539440877514144297478732931853194951274535605489286077447005817164526729867135085781276266389903621737124312351646415157564251399013260274292634171262009470848664244295716680433511908941165951685520967743641735330713338552929408078021659799828698171893459275725619866890492321830025915364581487536182950429879548102656832201165450958657985610532179980365947194660101095993145510514298945432905033235522080171010253086664057930623153598547210376733064889889431454534804349346607072437558609890842961649967815280536264871223702965368290385983136271484840923155013200715536634376850823810825822641585740316634669503311677432382373296238260583593490840557947879699213921347573342905484594612566983348455492955087041535638118956158936844798195380836027533782464704318781701642691987530751565338250370909652782620761151649081113773781995127468383201268439084959873876326408255089876556065703838249263924661880263578720262828690280797289129658295407843003571844294775839976639333151933499762781499706723968795693499663634225289336927824152536321394330675629127421031692300418268345106836343854181725145799513677627790769570438785596431153970569014941340069870903295004206286895171489494384842485550269586180844704687089516082423870743835581268305976452600094379890471786848337898568514546427370519149210937821383156026982915767582994793900484693748481774263639052491239677240928119154010721935390137479494316650421593011128817483955185668789570300396664270838420213463507206059898298781298745065309176196747342161369236263731321814691367109410906999185635813247757401988327902997863553322674021825987054889600617517570316649585722328511663931518658976444174513721025731690045922810756278761341361600015341492131094833341915310295557517562587101312567640685345239841019115313312626668549870806770154112858127575714380468434919038792858091885356049997839631559823523154909442630917468521745585200413029846362771795043113473410589168721054782106574091265480318249105343968380330623803706079373833391867543350583733618225800939055793882068360022879046457920166794722480266323699691578146170308574185819592660716679333522457048178000378966599944030015511970053343753363179540224515192269156143179741207916415116415935321721969736384331801119422257646099398553922306011868578334193129863391765646397908873447681527460158644623760676149373870189230493958233665333434935928002510715157140164499134539163609190999359903298272200914842904201794481457625517231162053688693095417954842393928818467813197187806796881138695589104675915602239597551999378839337903976665957727720727710747665309404966761964579779048076474041212378791131280451225153074070496133574022803495550810685706121895820283780311628053886284421217335123868197429852482844631122044753751113261746106352045790670351048349781903119498208339350206082809755873973856439658793273921043762451324146545835352905492470756097971630232509207586818912825343167369139438219601415817185681174448155750805782559708585670908350384021539791956910025215001419759504759686885217236039534566073165329220721980044979111525299568273456872111699386374914646583018167182046833530365909658261601912323219575016370019143995317841119215695653532745072722752874992398995495776892819100741115086702022945872878925023846882694834968314035827382448645564753514169677779919047617180471206521927581033387276552349969705272262227078440968764704365030542798926863909615638530764854151428567684357121362440657693092904465647261687079727808287248392905131202327078397789668327779319725223103425461053473584850620743776360910337729335346539468453927173661295152300267775637005503241121554849219283622295970846899042293202930873681380383511890322528338904304756799235593508772535764844717219397185706866251219779828673062944821667252514239072485758326014798741727060141658409834022458837025347068591154751943346295005359595868994780311054744761629589778267026103761632007266361201863301797966540477040991707638835148820384311839205840306017850132855322105719415984556233844795352174994154525329648346357694967572823768909807633555207810009215323174437821042607002758747027677066519834922475260290263498926540571558983506311364710491496225030526438128258363942731274356465464808344693099412441499610898356109938785792740647861372161817489180255632499076868368769484010173002427507626856549409812914820045832073187506805453913308733433060595156023987956418083456832674133477775984276142332663554697532566047739354044440316403808114644675067148107774838730045022748443107401967736739299353466366514640248299594326832497203623309342804472212679492556605103225464278877126044540238672995533957174021434180919780360521926025479522553150624811257944839785805516811243037359817070516230489596869352549691058756842360448855907835840571383553488020388852100616012871436734042577346741436276085371084030804665042193276571038293962096486113896119181603296172881425506722223565089132817783839250857153672277895831685434958680225024920826684423128669780328607314293299701075330604025775032021523036595626472849351267695761176351119624538677329463422108209660352288276881947388746699499713307423703458804878210075736083780429377797494301229651045123824168576972919916663484052030243492819520359790674935536023479134033510655418953058312620680744877215216254856128361946307925451602975676050128563035456766419739162048832570848500334608305954639450312882581991566861412836418436407899712963319505061409074085667759131248193249285447918811114819914905353463656558358429640265633983003219063498254873744412708189561767208439166766306169233372856373613835512209104257221872700733254128275442033138037487842081562869587858083607950116817854701703290639671078310365532639748517043380476390711678552060972339153159110793452142700773857404323163435621465581935955722971369603077096002660741237685029272560109764722731869432698086890451532552337145514549853548074295387490245598630213589252875528874320843151226810987004565381490607717356072746673227843711697306264114329256112100580625233384093603415204879854794238446916549740087649555310187107235669232146876450778944608532623350927367272684635932467014188548695731694506658620331180493998645190635477190589375369397229584242086534788562889488928011006232769736507859316280894316515113613615556861026046358203126341983145423247923705705406374684407568717679431980925458572041625322444950063938489017685474903377167051979264078927751205567203399494182593365193389305069815314095001247828138383480370125432951925068724083756391143010337154417866479096671375514424047343838793920245366627605780323192960129633130250962975209905688531263189140790473470826011834321608952362325868841432846978853724426639089100116648079526032619164362113497380948785791082806190425795634940611721050988898857178123483621963375451107735091359959404869560175053654510760682667716312993487281129261560440750896291761429518163141141894303962526809813614946556731875374343626843031023085721131126084905362364939350038115834479494898547419541088676200528988455133167614446682215125900062529255832668494472645697075814349078035669104030880900136406940583305071086738853639511331638308719210509396200756514248641366843606777384591445238277664543624958569285744725467978826908621417350600327152027108311758461503813723044858418401210130438833580425997826690790525251413928533191920422715138955941236976839133122382731618761391348055430873221751517890995409676497133552298567265916685893125605273735060005764218833887251669801403691348078119423117371723150861135582652498509230979697308643303110909887459545800658382444537522287247230494696842539035034534790078046156724534675628329504719891411686630945235470554683338107323509639479774907979966887515849016571307368315676221993851411601437793688384188572617625473863864092103175046994433356291254545333328409958564874576685130512643036865332004296720663657157107537659452623590245717588799410019490994785494131259837899934360601765025403467181234097036179226946360882886931274035161404588624268602484088776464312928682578124183044682554364014831963404346807488045608246978662456585628182773991772209233611068642181469431629467441519943904813623488877987031544249544596958607051516191003822564095699916115775144961811410759904912207490818572232417584601247751803675108845321845703827168849926123384119034252026220422771862653363314155216649831091247159297640857376926367615751965905256844844467086072079193615876025629806749941243159106297602944490997537194495975822826490950891166714017498073126724210874982114347926702726756784782140982099338195314362737032273007348318929418353621175133129770522695893922501385629128099671852885722653761455856630448279929630679237090749558524481753517002202420819522862295220547568103487518219832490228227496492043519314497130583459435446285947568045706421536260743821812301074623700837361073616604608432811455036243655992090677441417202062603907537798028645274447200299643171979735401240875589897784085143647259062108615607725177937804207211453294507009953775378848988996261941553136418541575672138059112380404652481717299218517978430909050234385282540269540243762344840290909333680058773915643390781827262556070180939018084693158766352581034917816666997203655880857441628971900448063983573430309203529603435441675852961051859695918362002265800480252764806470199966616493232018919337010022729827769510591594165642630275423465055910290317318956551949135330285746782147642374807189725340210674013801512416240150893278989513994492965847711102685646590453374064828044975916931237529017516010980335761648066057671798709391430791022234771322441938337168972390781003106110662159529281235572564260714290108443290078608592521393418771594988321446323770059079199996653839974599415848855872514260443232743671348578049689574527635020628919994167062384063415835418113493109970346612565751639180975704039954674141671402897274735568883921029122134213025836923073732405844961159027755339923634939200050886380045241238649974669053024463714434321746292204339503233965387808601254469938361321782237995806315199242455862608908951793234981477360255908013620687508867577782948053161793085667123601119923982952480934622150488598150218006184760506821916184947594683457699016333990569357608041705665107802952957117008614203477087851603424626010401443221777354710749725934408704384244102611587367261085163333339085660757474645975828492928485174131057642387803767873730698497739070414282677637306714785416749904571393760550731856165400461925029910472141469026539558792978112578437825730679221736134598165026476232847858346250011791015795187112080055159576871362571089422195753477473168193902177493923369118613195733574307747407473624882534317786632691128836025145825260963725535378208141254850643982375448797556766871650521019298510795204447596238972858396643568308343011886978910130902699119187606987107185374349721462339428278409412191972516462390132216750394267873234820189787852536283125033364073356528522463694815589816633735136451735694491154275124178206629212930647193962687814080685953269975276919560271024328631978821860463710284948593555104742759480025363087651260348300731298700983490061881359053182106219279089609504649447562326338904958668548577806689070710031474395964958436584197300111136089063430275084200890795459786431052887096646586947855923857562908510832167186712063454959631598758907181732819944336117407096817417105550854349454219254919542142967428784490360938097546042788213264377227447105658152564439832171003232919079281906581353232593351004216290887476203440334668020172429845139204880430124507836998407122310288425017014329856544470824474095442841514991696814612138515949208270750080920775935528091440829692955786454142359046809829219165765959440663181436245525300620979485489297625329231033772255157514925633220969263404686029773949040156657203956327560130407051973758084978949020424486364192560396920885042253220361467183965170563925396970423437750178392786232907741354813232591407459793317437364153001373119100758631206307762765648683438352671320252038582562871622316451341210583053261867008368979720382694488141910545685700954205435429941288477014303069882160744300903671069422369840330978948206640900503769606805309639371249348068129662679067991276574063934308214064056169893325849029779066007453701570674807474178200092661965405511187627791275281673896284961664323357411070446392816739892710740588051466423732729626260775224549958414126346650758533342718295453565462129753866788690912180360294159315572686744107399670172846795964582175246478008225031763475798503057287750118479266292305092984062592111088774831637610523710698546246036689299415140818428623234126822197379542156524935045879008295841301394169888253491514501462791207280924018682336420576204165200741797591873182141172885454772166979395520361775496415652183531812071793759101542644034715309262084518779476128797565439029855296905586646517283828602421076310873840768989626758310730393541110744581277613015955724802445224699383594185619233474758445880399861149241495574672186323555261861202463366057942423484294422970772776077955921330776971037905968037158293720545047954534519194744923300506794280162254511396182697658597920997303317151324713464730314146342250626745623793196494067471447437560903777755675695003756323025624525270991086933609636119659491441555860304929903160716422081176122521293895986437170198919138048291161284458608599161576016339056215419681047478294158055266939078120655754113431884122428012627581410705545316297569830376220354805707501343061715757328778989058444708650025783293906224414537008499153500071411935394536618314874921922883134879462768556511288839375597858361114322629815444239746286629924128628977573643154549575188964748093173353067173632048707390871724404899143797933493604358532482047884268390716815459549059942702471789334905560568582159593584249523213947832347823883621482492378232600777630168440747722257607123087972971069574785946723116521328928073996479809429121099181423829601328665165482267300832853554847222130544177070717929975887429293121465175511653029502007876579956492138279935837081576138794042583181610535698201438987979442803643293879365118536484751022445545688112294467768236352773981207883819587654982642668638209338870361072887702849714153273242146945718119166532514080339689540382158780134167122064465014094597513119669423660733443520899408019701489125736292384869323154102327442215040256868242420505409181428421498279696718728120393166923790015331547391173235690773202767952524575084271577491309083193534795671280025146251412170070270825295432260415838773741665997198878017948037569535051971151353265043607123641144496162277301801998788078861287876309392571774346274708572795498396674740239298747569863521396427062593006422799060340864544167777221827377770428401080180944780449533737288143667281230010777613416516216551105831188173515722061649946028213994775530047143096943555441161947643227118423134585495992754667261036480669414556835921213671147569647427572841276317426770689273920109163027887316901904483778928351288449523995533415192604510820245167833211858385844962816854875072915854654818147858804593185110609722576249976672377590521873228023405788959771819440939547139452152695379644664706743229749093234876206205370730543649664737165411222581762570874723565645331027808351390789734941634871530361537633524521252386027301799705768429785843366342505791683187736448144735765648987392157512969449697625559214467156237914390632797680910079107131140879228689500117543765990490389568802164348025119285984115036264543092998436626358759069148974098720643657213741920173818947479696643070714864404808377918858195000546346912149421181777332996673409473655603088905416072722832650578834797596219058851316217195855239560527396091775923751551861976789081902083822860277628482123572288779168037760703321743214734164887409653654894936029897549496875775773677786252943249941469350068472183758386698211661852847079887202093712095125040147611136532717222104265133980942785838707866135431204621713066602590355391311336913445231922100536389747557551770405698575607447945986592031891551752059100364271801169131231632353848534103708994392211903482483963765277480483986521975355343020177744594613080505838742517918579905974432777215938507589810995721077394912251067467926538007378518653509721530692474419083483183925269258849777526188443065465255259860437498091309227167587191757376677960159538691013158317550438569717219390092778067197858262231477765125544892375074760151641586482728001525674923289694397880544977862079342510918803236590225473292912962161596099322478276965521591399391064971846334845307209824009093616824204729249861203454308405283278816206914755368193403034429946605491580961308566254151584419101174390192900194951367785205253251665651377385945942147097392761698041383512948691826409574060139694011342351532226419213129210436378704583057046440198134083996110280783630165942465766974904925912760935015401676381362186220959807651477554276184802875782970020036827241180678865687559807175589584225835743327794902714582512028058380057457950288429366829960929233250941197154983376249327350901298173866717398978432476706235020502861646374284340870427079516621388300694190707428874139614961929627639451185468185303193875025053843539838092852330200994918336210831833423865785503051749434857525652084702849790717155434008083591640929700590231962809657173346499244655524251796364614693679627805568121907479607155005738409109101492421998169361959781038480495665828557651571081271028360205029915613604934767472996637916633534299144222042650637391982656272548165674892386083365656319135695524767415265812451955560057204579800714879913918721418911364189581663205679082684081263554956436980073311357520787038896208912787843882895266887835906732497443092161247710411729682415163963929393123480994179194500237972400889637749386247832936956141265607552693832749996928794102627338358346544368845922687328350622344540548013114991206410460544967930696944930705264529494033597529623224167061677665318042159018101759691665974980740201520791281148479328482743804347187291740924203063215932593221347531000704307306516084137110499707457293540348576168670503031965614087772992648685402459396478993666195687473291452773808236979938484363355764401526038289347617384842659854947697426788347943451179008094941975934924306081514089602261571011679622840884510412132485211428414136763119820192531615987889250143279044919678586473474346315878131911381566702831606885279400547675161628022604824255677790586136167254230086596106522854832305401257491680836053556456488315826661686874691365412419695238286540706535237779962371136278713949739357156892358000304656161050566076164955099405037013495686382436286590756632341252439774316789984002315470619492019688572165304420993727985318786285753028723727688679789185689032204479425929874831229615472793631236694648472216960833170991504658315501129363926865494787336248595942003110783888253134640967921394041644972853640035965207391104174062595504584553959568724098272407486593193512879356392846255206943756769983110035108162040244108172972397656577323911421931763390646369150106899090824120656690947180198979867353922001491228304804543553712454695566101061665805637833070118245089260168992777060146999273865436310939807751009645417613122124544291250463614461186621274068127641992932396299306815835194170341284959483618449566037741219164198208057316755296325769345728162799052744404353109776146230390337318283624210421831873492208325803745252012854200132945064060475798194828263814263942311445418394071248392691038008931233150883910858437021833266621973819409648764560418110605859583278696607557339337456917861656101813053398627344729970104311104096375487172174763601575666004486782214432160938623903024967540178973697155556065258897050119193178892997865234253641751115152090709606886363592968340846138318986414172749006224361483575849745133013899632845934671143673412611263576460192461865496293843715216694678133839951902377026451854057004637204850025278382974161857770880880294849543923459958615231175958050501579552116006394921328666562902918976815820437910455284178949066585109926689087395474543725857485774660853259486963451241063378969329378055779243384525067814527006318531959162574818748327646038569349991923264119524069287037805305466628222991229993626973476480420845603064267774676708846505518538190812957655356083430959160274092309874194819868485611587396960344649065298671892459368869061254206650491868965323336268009362229224532996883121614629685779105340587911562702901887238274831914756427647218673442565281302227527452876710449333252632359480694646911593636037797079112016580808361219206487399673422647090420868827736287029955127782754139582241907795828442968257440973951302025696930825807142780706258800420743521816503690165450502803844827787627468259685201832345944439627092894746379085396269678527901229498601937939368526283595661089563047203861684102835927968304961992367897624601414439506350715773047467892232874960014182998848632108713995195110845306766772871161096807802451723170612331997795836690886275511570888615894650434172284624110233061922979183191746394200131405510119084836285630306173419355714037278391140889213198465638503284127501196151062987045774456405252210825995698478747246333621955212075193835404917702816658702079005489344004434016239140251179265190564272959845882902471161531056439531823212295082528191963480291136794029758619242444826843635239324284243851625530844261919420082110499023055389652113119372077070560946255859747228417310664141250953638915540347397984626020772056842566799150607741229253625917300569488988594252098066992066404290695179331365408874366007962995056171362975977735420201987409442332751129566997155484220893462885541779326134731058174899639357535432746125488097226292058424534849768212586467852433837760502711220379417741235418668569053303750325671193412820333737119694763509289616797780649705275941290650365373466994090501548665701312191254760844132154514079488360201201618005904318772022069430124300806400177045474510855979851387635419557907411770744385201208000843933883786010797863541641745292260808311800191520671413821409608481888808918825277639387749561609497071896435895673267924774916949373941591645946356304849254088770663836388100528769064251540368938592051539407108182404358018274852442855760467470979581453093474919746634695992257632623098861950145448367739553760565610322114500135159770467177205641689882298783304524236383709823646351041497023412855461503020348455026714896579379129266725881941141924027399937822118564982211886098698012806600832861430483602277831869205561219559207759093780216171037257978258708699973678927976224143444561935776982442742161848514774656021118422074538709647276953102826221400158487313882315805132770416608959515852279886117181156758571901802692485378576896711250848998880580230342648737383072475000809678046183954753389565200023273892350646982117860041883644519257591340979038482862198085199537645231729873008738829613918631219166548992274250357520793386724975447211530473191062224616298091238736491886046216709201596542451220187663276564665090571391340793050799395711395060879907289506221294624859056543342472515429284293023484647899953357222548061680308107840342138861920096822851063100745312864265522856936397755884764070025893749230236011763579826298462405258918838214398539025715271249408758080240763355512465975421509730495646244376143434612599588319367992140998541896344372479745771588289064617013264745667745658774444992092535215550960980426258276063696576483372450184330969263401115174599913638913597378687981694213493304087733257596362994316052027212661855838151256108058255692436338545754512212192635267245810560800979532293176948864923718204405024078516832953366792111492203853520116575929733290334323037850936364201530740762920539746483631587906156037891108114818789448152137322648668579338892103324489824861558964046886807850462692884787763495753321973986585306325630426157639566792901119109130170978898264037805501919367376336515592137423585679607939096561202860313185628392416472535130858092923732203705814047197822895775416335172440664927490182678793187090179711353902888835466344725591926767793889176749587101892643804208851249922347283319255095306167380120177530524802614231560284541951592237664612954458085296462231347858235789715653912110980357407114228757063038933934161509505424172609992899218930240141059249389302386900023603513964494274064163366746542701612417439106149664316510614191121151917319925935746760702814243073111584821347930973270232842185332012821726417100736104567152152863179976530410634597088810379394904389030811106673239321785010713903998384064379019375248302055040713434388400918320042496265153456679188435776921825611486083433827376885181980883409284991688473347494384250019482289192209510426786886015913016001409947653494030155204673629619031489968345790885281415105233557921241750279440707833895827713730499420628336814376132831671110896138800689517603558829089171983579727026146698844506057629029427544226752241464054880342413323965869820547811956493505960502654209400048786536566787558252703269422358857397749962933945715053494260486401735479980645191991781747749274902318180512077089616956212489247307686550096670705520079917126800279255956516703220646988447552812038041572993962600924640969362377763159031924230744473895703852129756358805915292199213667547252060443311884216581054284040266001140377824482915698689489769298067013674189983919061609258052792024271870665203010872096144988225887535890237603209899608434275964539827039086756809756417707699421116231049173957358943974614738678937075264128170789523411481508288321088641067375231975470165726010633708468843789062315219407955234167313378810287736838184751911221399986373907281891438363539984322795184423109900322081173144206324968762245501048473551935538860441333491495481227285246636143656533196009443469975619097579935197323094121653417265633224881244200368234645091099877400001999145427952800745929756509186804125862881793407015836495897146428568832643382153426105356316975808729362725124083780577164941108466324537643715819062762342225027637357127322836222986050929505571916334795093884893020503428373134782712065684303723569990256159558966171604282853783507430679861288085363362499519953535639257547263040520165682623727551878033130803184775426101669166696775432644432493498467360208149797436152911647580862996545863689581709454496863606012314777431684077264493999088298978880185466135831011158558411867545305741380784849347357252856997602516403041133107022958760216703942623286016638364818005311167269019898851815395364606855729113825792937614085605870577048466216198030024125828988774897076434214253059731013576832883407241000606229506274142555166653852406342036142164951149830057502572809310277706464493288525435616811091853196220773825008881390285727335430203986987306164406537445843326209814277609091071615398002510653345755590742470430624191045036525129996349276777813497921293013463464017482346407552745862244831914375853442812756245731879537783570959244530049684788198086363674974625560526575055786590267798982270687993521952036814109584489901544329481499768337150420279361189043174606362768133156724131874231636662931696126106121555349919212426634609757397118897667987217159142879897192454251691000417989458072292093788754589328827118234721736056366095140232101610526538115746380296386145225962227943031425281607747033592642350209268976341868890324475663439854013265135133205587698065478942391463758884585806928263866508227970613340900074683542544897204574545727752597255660140734549882811608033602720248753848770317025051618740803608365096013101936190099999395881105098340890237835536901231214988757191185165827853797662787872968886896707955144810525110132456089372884054085524834191513410017510514038130566706664241738670438492685810045160418414152036924137727982846777965804088448710468495356960772924354259166724931094205851320307553489294741589803434893993102004534488329377444040763466848885170008906880999467277753530840761140574797036718160712451795777072239367021212366217691261098418564055692583992869290557308956483390151339684546384281740053587105901424408033579773849948895576920009349147332050298035967731636388277767536549603257109373007888599074507158868792876974240760356063329290193991287929429617178569801197907624966118289293456857536139748802358309521999510691143363138703838956963438105147743664195875266153912836828018010785540410593207627119184772668831630953658765841281244507745069007165075193678831836122985072756738669873124574220848258762769205704935316018829368204625629560367920513206116835607661116043441340337941433429025258053318284171662610111592080401732993817560198855918753896243408820689966308864916548725075667671177824647981851445741817746373113687079496249997490097023769369190908634755814228057571283943580000021525211975453970659081465203695836145725968957324151588177221517475282704493317339428158907774789601819848948435582411897826364503038985511899816777822457771569412267812040401900151714561204741416530955120178669907528600387579956410900011835194115955414884213584703971911683366367611225692655080927309072142868747258153433436532146368374234312433843856250009821331990369431002685017483602234765527130622176284646720093751267899519872275737410588204086290459767136823796506201940966279331051418591297297245031967202360423326671387323397507834659702014777288067151931649590669955009735339868057888956113316883196232478784428659914372586757764411175687334357375782043685214640018088689076836045850076159252364030396791792845895525467951972375415860987615696866089685782452464456857616067138312848294606858727149783103165588355368697267523446084936518589647113153419554670652176191818158675285163734450590436002790352698075163860282694494187976632431650765300547135305717392078755622858995966624347109182498120228034418056749812455775901111206429241013064926676996449144800097507175783866597161486826624331677574768409536716509203721049184969924518679269055196166973757521137009945068130411682326055248912955902419391507140245345715514326097797349723282151711732794489630809591477332422113867977996448273500788697338137482227240227004881525532290098418943093368051721937637318232465461569280031807712183161451697465196682051733933595851212564555309091144887232364219465741350942512943055989062934525402575473098097161876532176684002284846025652795525846462054969252579797783211061910713371757209366668016818375958385980222420611618253723657554331953461460889478575763035088219651506699187176049527578343113287276451273194566594520564399790136639600928408638611762877088855230134237405805252282031815857423101411964937694865239076257308166848600091131503101976983639229309711106233991448971405974797113415363110557847654594510286078707866424556511833034075861143391437011483049799184272815266154792801003996457817516030892029720480664545798535721878715404565992072460809542478899279626227811793404299693295124045684148886256039717988137786611476839581209242825054190423019715135458507013372052478726637926979511224309028817788159460860552398677521415663612164408812750151046051553675084889133555755105428986401060881930765086087921035769271699104898485720752311656419969040472671400426962127887791551861627862374157940057142795641769566788900388452377657794671487688273686589531593254274641608705444609750548880865676955837910898146755335587703551725594392340284819251207367164125383182491789461061871150611828193236757622004360738500044713670976406676351935855253260871552998752293876332507945015830780092536643923507378909193609563430931903457360653511035226315548564192314942850291321165820823592206157682251572817631267557950833270318012388372479053107900305902825412562739175623142545027631200522184333092412729065535448698999783125015847202362763661342199373860372494109966846202773287860165394838782723792120992521413291476600993703004609537703169290255248502691546856558858099416860201523536904640320517641334782999197788103328507091581300532486029240043845876024348546249972725456838367719433401122925808955550184507483059043305942296471030765911910003864670902059439615435189952303573004915711609235169034587744181297380925832557161876947740378886899187229647911461627477422909680871000897709212140017879157145169384307148074928100786278400370181934993048676965823203027050131357684944486110647598598125758045188999051399274630923618745841643119530958775056435176565932334711267696863507382736920106537227459092561209643968168036026140373722199484192337929704552362918781046150231432053079679553075678183881128281332348089683219241491441994009716394086461566963766831677399674217647627791186917220437095614755652224608054087953076371455158805638936377685130532458051428591501559604206336256463227763613847763828912774194675857148450426786126382941034862454171457531649317831032133713298256836175919964242435242016662616486569537978778524611833563554316391377471514012292608857954518480855963732086587709400789419737065662168591515206516419616378740166564275497013847576769502280910875417267051443436561065817680290551140473177299076607158699199034750065212445865650315536195326766775378603322723750110400735164978281324093038142362657752629159597477340281064211434877054810976963835559270636694309975882817730961025713132703861955997114511690952732696245810618327559954330812463776297530399577497761729819956933189139229611064459051595568871896256446888790316158277117071753826533710763094561085129382699496183661101537527202421253615269679109142347982699836431377709370358932250270899009677873968378659837712449686708333208907414034616784624640589732798269480115042858844163889135175876833523539244247111416054093559904716403323700971140028159583834485605230323731324629100553831511508395026511992111629434894867178993371836124090869375865080597528746335496610710174510681196014135494317936775274748927464866494654573564339040063775787537682831518952422314817788565811602938098861570173564017658222330570244292526753880338987041667397206665906916872706339006210825904060063908950162426428501585479958892164820000793398911742561470570867176895701368635226174254303479163036698518959686793165161155675784089190653230779631225521576234024493492151826931753860746926063719684930557549113852814761785262570036308600712914270413468992427582747983580831857494897550574892906366094576557671067131011858254985053590975562398693923869245813398054158806765887853672761269402388226340503604351778601397461106737901730039532946688062490146500971075702030183919896655809700715166602007839920530710458941321035375746467066814169028493156587042243775088971371746937340522273043190644845181474793344713673439098955646221145468279699777407763756317315364393393556564824682290868574259190330882813316439788738051610251145110378687808124502541888476815824695073727451546072409614619278786708998112245283013303026580920387820950486311103848886828577771544287979530495219053199740430872961190182124026931919586963187485488678606805234559650876492945000053855606661656926161154689124983530127016046106803097767828642635687112370997072669247343938467192727895920005640284173751889409767639980661232101538686904007608404949867751330742282708073640207150905418025696316174539744075629252425567777959858392695636582157188205010228152361527552246990713448094600373194016659580253156539001736160085017132836844615428663851213071812181674179146941539046455354636633917595464624349916512935404535350780983855694407271731037604775164162604865453409014757504030976066637321969467620308859168995322624154767163101525904228679955240052093109622154736737646357910794625851152801545761035895685384187509168926977730282008993330207070912205553542593681889248493278452433333898948720949205567160434598542239906233567618766432757571806377162462308222956363790698389458736072478377122288666615261786287603929583763287784280802499402638667135934762329571916952290209703491331474239739498486351675654674651568282639831786664896908213560585639943709980641564039865394282674424855275306680965486259766252055249402182818339129667430434633313863501357184827034487005765053507268143936230312053676686798030504532458239572478202529380233144740166333652664176535113711698876156718306963679739972534505670799592549737980822092683039477544965945064213289365742964528020029115774278491703437083371085490012163940124227652104191484420926977370302107713430098703717421658328695365172563694412910420349915632681006097583978047859554937692258991098061999702654738656558146273175231686202019939957879090052329176396394645785949481034312205201614674619449170481873509766693466688042987850004808079491809030237825067809629017903466466944233142457558880090726491062398195383326620419159319628294002459858095867107774639180817607779230052120462286958582867858617534254471319237601605888336584455626766091579198678957588312269652309980115973233217880000691075226634001858825022594789789510234651565799044435054847539894824622208506122805350637155842428618600188265584850756470891601011493930978198702542105619191909543948941391326614624296361461339111524149924625008021239200485657964820898155348976236111265339698110639448191068476325691701438573527628965291366377009782010905611637110813782623900101514300300656129908035131908580537146507592446467964535634790732606518403164207675581321027079222186976316884915696482268365090980456423711408500938832081386314624978059114202844026502145491283044128731537047520192172004785208386051648976429008796394855560312427646428916303462698837100950133685384191550551502270816248724826092285202114245627737867512080973980546235581505761123820874196381236667578786487133053943704924483730102374349594832955376695135574856044278595431278778616660433697932796948939666320710835570345708749795509049118259810895697005105556911169812457697373120015006426155432089237544440027721954110275106855644147562931280793257892496514061871427400318188140905954364047447056856949602268878197802660369711901259512877732821581488487110560376129626251548096231014480136177736219901485119109532823751760267987132212267522440859066392724389340194841809743351942950312016734287930305388134766204531466187974995146289791046706174157406157837985813797985638402262825069525840250091298907484836465850490858081409434367170041318118873601855549347877962860149132238113251649540189303953261300051576446483119292080714022935754938531622704501392224251812768587363907712512160245139123710943788022126857958673215245206306450192554556089675153533451955751193057576058850874603989556649770560610658311782993769233696519925542959981240286502125891036306902593353493310837222380718490220251038821715844198055072496938336222485194967934673087188931686905308368310349623025171133784312489393852985827947896991745894060321750888680531674935892776143145271675135874549660387708771727528311358587490870545006253508262625730310060332854546135228488487093265379606438105080825173904321399160507559194004812009659164920128928333085313866770673381491073887349025564207209563986955005872471734688678729701846796544033446109121702538773530602955506688309450593567050869341196905304711571335898168314330299136909158830902797893189540370231401334354366087125735602748727693602974802375272428168472446223162828916666624990817097330582416932952110349723058418582850475432284495004767703399763141401536554722659152577232888993482381127972774348658356479634507353989789791254582914623317866537080707829571080517463406745718193376561529125412941061514424703311800319849104788671267470899259734946799701963297814015831677623589632891221149511794194188425766247481684771453431126322455811941925603435700669903443463043944390027684794354710654210707367335515261323850615907113440983042851881774736492236033268426640024702479066238307954052682974065417220162838813658336581341966120968558365858450695998124511163251125787262246109728282434871060863630048975895920188122445022026054734414143021646014165144105211179652429878777881930926485643713687314328032916495041614860048563152917323409664091177199024064385988581337363085492234102290408481183563410907048506596008299341420292873958671253418806942081226173470543158862882658068681015224745227012943306020867556707272677264955652711028735961588468832100028076809892728132504463008041732022406077449370067834594116488745783520101938825577922924054964830665208439431340343536262641788667581551246798510247615544434174550731982580806723210627142034114601612165330581445074221297922584503163707621941300618376911440373918317507543162434656639024104866974208020918901647266255523782928387381450771320615012569443647590118074732807191924687175776818574572916255194234147427628605220071021052963911180094779101368925042976649895529724252650576186579201901364818460874271922124603053739633676157853158030943956926997653546582224437108042151308958881678273254400641207747345860384473227192130324967248785217801223180113162273286916038284633560256449557152118393119304721156336847709546938483696799407990775734492343021375232010373076804918065044172392923943034737809557469508626563629780635804983607991053849902127345756306349501175157776902553335024016400817652323961522746509483387000220678639409439462482924056753981325105582735122622444103462052911561727716053807930504291752828265032176371521478728488706029478266965644617717559227418390510434947988721219130979503984566709686524011905265092149274102113865932795429083704178309765033947185207190314425754387342212818315820266272433407328351529344633855446475842699428141174456209486416653894370816363425037307730864855784740821243383595829204733738417972890836837785398084216323945755946094890370176829501351426093463079180022586306364215248472225645203198870311554271432921012301307147768629241974970688928241253941578709549339066255757859025226512534403430957579061896392264692598869826648065976868496381472278363182556441754433390781863753224257137103364412822944241204448999235276988316210481678860540062668334491025386498699436953733996632825103190524691384290370535868448471036296658638183483073622808500100814229784558205604019978217104890800366426285154110574229270984631218302692149397257214950211017207407509520179627582537488810151396624735809669337891796731467737056627870488942188432498289241289443609766757828204909243421964636075223507630101249415680785336653330902636469510635370577204448839853497492571902618953889823513386424596329334797874813173534389086392707617684208545852049864599507049787745862633305837929927409634132825308552333515243666636393002181043166304234586464761542651812932596989786747756251640387691131157586703559844558410298996925477155449095529448712532743737569925853838498455940077850827029935765647601494917498790726914864264297532082370787818407178347397738221839248021719323961329244246387373071149742751607820749020887082439192851798934578472780852112914666337688111145725006717737688849877104563232384841326788438546896223156756663425054755610048284357481876504105530855150491088082622561072715624528883497422540532945115630087943558233614582893450994812721449391372964860805631145022642160076309858366934637714013960615474173567551247006988114485415691602613936225693477299072122959351791017619731554821656652443069922742785951931947697443624712416320792456159075113315007110961214713247518156150074485790197964008665269368671452382881945897868380314016873065725787272507611783386158467529323881505844986234067410551897037621228373082921647366808709890296432199031453913943952575793430955852245277446784986393528882782126435475195398722626945071832266530003923519235747831103015636936728728036532905681603813002254415191706553067500157855846810511779713091628676137910600551381284683612260624311296462780793883491719898951081586325335728474211793165787013234056722557703472614332402524413410279401882145263162621411582190026957252957638910837313770209182185353338011664685644592357100754683001550671535300317804470689416561148020592385909731009899870918529762976914330852814999238129789899232157335522270406440248511276048458455746730949420963848366194413754753231303494843623445290734995661629751836737857425207543551594433051337645616987224583712365174704708847275989449849994109245353290499683552356991687571549917275370167362681693655031900021462735341134484729061488568679970642229316165389911093280174917737222886149292414424318047042255177104714944797318116174389392812196759479771461094526083441295113959933934628238025348837795971480117020844955628951929777740411017669256526422373607404713193464958702706831381708004338469255938006125217451994958549464640429432795263418185414598590980323432062723058209084649761243151918621856073874290162033087351182352972981979859613615396436113986711152574996622657039637404859075187214248000732095333696370960971382790182750489767765442412580881920886478505373512892161098599823227004294260875386880255292971425987299730354192683056181783783078340708669494752439941989002380196791757661024153254634170962563981416955958633858553470577613611035964151677030413552181146896411227267236200482534672259384467971764928966747909433427656819995450066808510899238354048087512975443738742353113755825345253341990942301111506046836055113819309346488455928471261966062512726904995212517407105904582271236369894618710318563746771161598665119505202037278931938423316110077696223750706337836611366663449006156972828243984524773547335614663035311657814561790414201720177044219498015061246971703946020042459468286900669367154915096821275653906963259775462766294023461119418015008048375655328943981765271501942377992390490057885083642379506256646312175363900794133188937288663637344228428208981050922331740240218076826970225250448208895530954636844516561372162368535033320589256973712104656029539045938016028974056960479224810037824543979614956980927413248158958793390497039589690549525935364775672066500493626725379516979519899213844212853584560503523958222384123576181808135331733175460891383195966969840269199623870716816415457095624541278946369239689791630677677947214176677348464842820601913800491157827396436898191204252309679282778633932722645089533799427671324863075376341254243707587988846468418120146141336306400959516160026730654942914177540984122837477016936010921514874923275950184109808252357975044393266589347741647055415709775587191054503684985853427203301291428672462152096288577716266596473474296394940630881760449838356750369684981549885377234863951401247883087277578571918045130543475279450507074263202087692491814493245961297813026921036295144156548465848747353430449995788256727149619952275491688334321480337169182730938176059970016795265779281320818125154266002998284663085804780058823619379634377924883346291045411201299077675899735473830935414759928086085281509407882611924811678058468760131357358032272649829200426918502447845991208558564665018293928067454652614484095752670412561990772703748179412425626449395948262949062191295638169430898496128567407131298843634706350609544856251340516013547630273825727418007116125908071751419912831341735619472627071874899908010302106644883948123477868421599467493222883647966547055484585644543784231198412515248420479441856484566842922936591104876259691538568116966443603988551435613236379634768041813519165347911038120878932077028354325335595655876160878819195169501703873570463889348751747811175962828699972996817028783975420760407162084509706018114434114275593278381991766257340731727150873221021404893116911219399710875046497818269477264716877507746352519777308450425599152886208729779025392981048781187414354432852116325388447334076251312361692902877668693823108681379665089868223128034434852704994345140329024039565467190486128286976141861264865702960853859686761397959056942685886661979344539760141469620324535732141430785904525645187700439700731599396897498650902869973760630039822441694230088957198282737764868791984899548990789157106286920495837493230890027851559791400943799128366021648665197372067323524719676494218002631275653344456880381564431044447661746127670231555830843308564200003875221644695205163297630079335123072552985990210284328809699898348787348380617325509488164237859431933746615736554692133260165372336854433439633700352178451822791683410081641161826957794530221417040757466219730500178478186312457736594269340602025848894596887620958468355077053258017046887411895207000736202752585246481549637572231869412135121479536609422151454411140029104060722080862574844737690012743353280481409901527976649272560486719366526270541905026203163132310177411186023979131768685589207678988010600709857191694227224129358231368516475612094071699524043421885647400967930654880240326276020774472175753811612956837354978056427057661797975750963519352561801030124707093605662092661370140118087493384253120364377665311893261242530299941391987698049230209793301790692147411480931536463892755573947508812875415546314765290664903504840957264645019520365829952879594861655895666971921573105496817131164931495010918108947792217774609958220489899885712953944761925819655196689497275605956360155880758810695529671928964583090311763839012826225850045823246899154474162161198961367233334231973979884384202943189682576700868149358308380513400656823863862544754948208253358593219808748099505115744159694895984271355611589822620329972508132791371542827035239197983135360218541265264020619214915797724191512393087104855726829050238965485317077872692891281042008719640512518583066734001403425579432988869673282282370616156108242713015543844101035877673881154190449502973287163765286607829174274764865530415248238456265642861938528939782840185166185271017772506228499491330402743782687936956179983113588220382696867232206655498650264349036390445724507197057975106733685836658697610697943911969123306414284001850310582683404046023855437563356159631254448174165623559000115122752282432203737221435720295285355943999389097372809302136181081972792140592697228077724363081105342266101389122325436146652165657460541994928300158149877911522107091900501847533511997342482503250613145710746782669307591802943848151318517859658166165405618911993683394067205518920640966964255673256353960349570598636940078747115163957658585785404444100621959918330378857507924101827561908096072148910984222879960484221590832265724543141591649187310444991937080136051665398783590897939564542634672755532230810352852679718491629796408214229197941118486123515028297089025596061989981685631820875027979291180255634685757843679821689805322418437146613293629893521151156847783595636990767867973099441910648619390671040690275408900407503226288628490709912654202600471022191753540571274462727571554845892993527981354275002786971096490994654462100082871046846756268440873355089602622149917988869121504602327425020118307811340786166790091812743152878980912409242823496102254775565595945467972251377640994148001093055299337125702600379815183124277595533127048310660314017244700418798600034598067118032074614984069945136410934275060643240916823656675772864558186087231726418871826974706930243354292088206378277658274551877420171611742296191460930762565488313943188310768631420364097351791048313182418051198148393488567073002647619063794219726408506694408573159443006746938036672801007918608883945577060327051702799431750603879679815987626482466634618520905267411503989457054684942678997890792397992055599348999861207839143823805418412968811811105046701689790829784308658689146063859720704423290616424992649110517123440291874802253144101370912625774094779340838955281427526642850508875770773276579873548020989980252272335366732895109758673906117371117907953253808017402132286830588302403049408489588367252775901354916950024932124979822202942661329145161549827022483165199591317229396411743208596281099543886839204206616728366738110300791498944279222546620247906506954945806910746030499385617056742185052929565325748787425125249978881385747306275651531567251155666243125961532915877168247967473306206258538831598204321917775298999053818379520450634090605970401592335934012259851046894214746105163177227741860650637965673845339495750483754510849229630940508151338331812831188673108531781971233300320752253723523739493302966645577292538419823096432626567785496749647242594382637353980617010482259749522095529989643353865732720826486095265554722706014937412420990033595096481669635308265265779524098005537122235979059914007437652224355142520557831398337739029245330096844552221491845924180632231538594422289334874651439342132074149306970859324870148415554107420456635767067430425755216722878938561381768409445199153496857968407787634310338375401149108973910482273860400546559412230429192997959197481991655645753263552755115381519695537516544981981691613755402364271930845279489611888594138024902908101767342279297806577456414413711682094510461922842646009894515552482920369424697562140073612329710443880007181894932117308224796443099083200237398677802605279816039312251675033077188784065598236213650436626742834227554724385429874742646121476808851220816951257436228454116907375937999547347046836756327324638650764195598101176258434268777209477887334637948156663669694969822562377575959604405361889251495573012921081139374366599171679272028703955694385766209490281285779312827201123616655219851289209651783501583397702482280160029641523462404419849511379505887563956749678633945979248059977528219766203768752992206244357788882608838853640706305746854202102096110465139584184221844279535088319638417060224757903372433214851483117181883832567016472072642252042555137756227429599517317327108333695623700961976624864167590394050385974858756946372143511314892746228505744971177636179657332791031337168454953149690509005553800729581503069027812958490822945228709807745989601753657777453826446875531870144914325906664135468803005692989007855567303448267765933889020002454260526915255085744629429492114919407983873390098741919856654790862033516766964195095817717963881541037789254031323958121952002462459655165934891686009421080162480048442867171392618512244490641810671906160862587062009103967420561667876135336219048298974578794736563316643114848241591032594109083538523775351820071630003996104431966137680387941477259869031535026552581136411083782536595729544409032699574625319309924234612019784203267690307389376790066483469817738768490390052248816929918066909076695815483237311983961996823122490760358482917135749460739307301594364521109203109705252953237093698081892817217658045256787324052620147343412295223260561455065482999582721382403827287644954277553024566140520552230781188866326686701237200334316022229193353177112964588713660922680439549043954043634996369898872578593629456111008161366486105276440409023828909702640938726790021964488135294354249529790188858028144747909424362289632012358899949219123145405786711226528479108750375333324667017113528508919838205659904518104099462520250199786206386834782801912833935859975174770258560077477593095620549079105339395730583733428388469929709233744315369668283495222653405960471796426138951330302315875436161485664523136707613882831775579474755416780691742823117040290166896374343224883376657248048230639622177494440673898616263487083102381596014787777322559181916441434801044169208655010198887136886450409264408407934761484121463639162031419571830092966081939094823177087536470471536873895568627127373948910933911450715700972713029460663161577502093405483876709772387837012947012920491931971459762465988759269538154730947678986237051157751781911201419140541814963270713323773191657242032811624935571464053056582462854332964867057893989511804809515090082583305888003396193280162096999409904878897831974495295611806577730799747691695053608224153577962941163175156189195412981035460688249609901743423575977378419469436298545877559313702444782802953011533188689747471948258283116352911456160760976307597912518493973606724219989311450607083058657315736110769259655701181465818897082585345245672947785311442477915718086499571091916981929435915907464808256484453512555029314113674987215491752079898082967788958487396577768780908974247193826954032395416304501104279822213427174424662099347130329147346323737516244226443838412693712213667678535652151853842560349758418020510558784742809957169050763024718420991657348753833948649644454814609141101747559473253716478604023649663378758969646058534896129264594347086799664619077752176564320355407606318306108899938151219868697865603926830895544330240871681095131627029414234110449338319839217239957017403468503312093077697845859942017849290508604074624632146391915649256382880590571703221658974402938468794395720996780805139118386352635314962501149882883859731647883110488392466859091037327883312050045410839339041704181828351440861180500151054858859514981370655120111488575448673256469032391992585970459035912637944365175506218752912889676645308560453542709781156110340671122717126251865921103417737004136053772821236702709480961767103830645435913428933396908988999868553059295210803615989373473782389840678067944268881146740302547099954132919060946895598529328919340083846687111094876740455311523981443470920671261290136634608584346935462174223581899485382150862615103841278658805556598971935525615179849580262577693073052727202999359817490836094332736218528640182164225143610524691787574013199528315421012588085364907694621876414594848945169149140374577136529375070638626252464813239861391979715250683819555488637247682416694354761440663505367288252900127995328631550111320058310200047777707525685638080741602059532677670955142362233897869903475237010799819264445591117836331854493237974875357326494693501080479333991971026976045056382225189792701145760937751528915506667676818401992861128495409608513010843562347507501531413712244915733258700041839174164266535957493707491379931588010600360772210132223640205325773410334472382879371928981379888770312113585398579491591016777320601697053304069492392117712357623868568611029038206301662410415829042561298236691280650317710519671805825322587069343837015892475740283399194689028421093488059247209626546530405320609896193044068089828689531000840180503092285299251931707193727016382850882223369962988932273947605519517230110177468563492548425668184517561564560975365484946375810721939070024758830140548469640966706186828692592049755247775180338130997976622569915181570487711381028016497099910623492829013780736514754266074363110179027497083381075657135067475337690350239696394763877110263914053687937176337401299952949263051394621411800301344077205957618737708542423746558030440176903427390848380831298345486550663966706843019149604453261590153587461359467262691821703474256157991169720742065289171085294514281359867371551879579133099913274748319082064208061125605967536773289827563336642437394178577970766238637561917289892494021625469158289653043964715232229910885874605348298189020951748766926237333804467388865386850237048094026201902094422344502237491148461085278740807877122889265920400708651173407688172011836977522843035719839309851511874999248960782413425867392952633382769907227616840457117908062460184557315944255840681388822068775137953303219264820755284272387879934674037492349333142647315315793428494910480420221324622226384575576351289474442664608251798807203979549966644847117563012337177872973731640106252268420380544383391157245034951342567496412774504164025177774630817549885777030430083695548842244578967012578910283246580903057561434683748671311291241888609377812918869808987790837328427066388879744954805937976880656616240252200494804722773327499418949715737916500303995310172599783370401333381523213920315589200388065918906108312852773307262059145879014825213302773500289157300845635979851916667514044783480319494599222881153546586842909319060215620624308989238699260604762437267178145253434568545351053244996151853107822115240490578340655635684125796434485758281749930059347461065155987919591151094146162879017716894363976146467019925763617903165721389157996972146825961734877090523467940841475983929015125202834671347844049596879595019041063810260175884160501336540797204271491997107236241338503767946088799991097994583227077931214275687901591113838331265097599110880078369589571866237340848415711305879579051867259560333926049815801847681417357675673752558230494146776202353191766401665734234322663634785220722327354653883990020843624664990416533890625900050070844100683422451221756622877022053272481114868980136015636498845201797407788422911558042188016691650647764765560593235107448125607080450440019753992084296148611152893696250268491451064453450043571187929779157336813141604120131848508817642738046553387541786256357651371352524922049835052288901428874365141112570005582726016094016149801599703244668122777302152230885358864899430355747833347652516564683582697836268487151653367020600763046745057907683188745956759600990080643949489823264120368568347978159272879571131151021299426670654339697255132272848500751803582165705107060541472683276916802143320873815706686431280533392563038703399979731115785889692873203621815682927594826309299911183593716754181405720140392546857820182088464036047475683386450204728020267609337561303095644665900239007491077157156199222209991108887421236787914299616097481813386977558964122530777832073234097613999210919693416136514681647995387909576097263007412694284063369358693318308362388871124738212766081283919432653355179061080201286510455296950531280293368958401588001346376680568911172917507954143667115819131971703850625628092529495155260974545603557592538965136096561134479086928668612126448407766946114437641681096541494404527670860936702672704918939035842583572500058648816718578425314591989767295307132337774471359333112031954827393439253932290713511948275055443134301665421440432054436879530246906502485241948546884765827476302496773030843145155707074179772261913988750006966154040711759632042575797111640181501798239637082563063879137875217136307429828585263864689123358718984936940949401738137555908182302870943722525472489874070181185788892676216888176577798410424994733949885773243937553094204599206446450551389153631975840232641305504151834686495879287787400981451264599587251980065677098969130493114754625385892625119949410164786312002510269336865911112959156368555066752655228168297756091672481964762208603212066692447489692655771963418410531070950043291470601981681455463998474520201510318337912650496590775439265465315567188017662635379625939383836504369798625647755538345666885257394669227582829637933931109356066577520372970835193150802155289068582577105352829088056344704445767373200164777711408701152674770970063231509944731293822310770542501447854137600063830927330344919262277730927104244931524755684360847317960192257606471008073628793319030445904244286531869963362984862292407989919586113136925399149711519719409951487019081548617446091326311698654193499977359973378344452316593608720694181919848442485357240347006191338472761841045272203547030200688317812062025473765086613096441797974647500375406697701943017905190380484121016812567520563600798641560940125977826680860475076671924804476390164819283306432291852713998207979532058627688620935416829684237789037646778327034258151197617703963411799820847161977608304705717277728468819091586892408385228906641765424686938520941418033363920122472574453925546474368442203961636835455053488793415289207879385920722739259337849052354024896355738098830139343174675694720701858402911698041160463059515258514345648466455045026360634468037188902219886243174870987797067733543436043549683551958396365195206666438802490046530329401156477959586732238116743471949528735862064930968437976008184632869071168127741342736659712894633006887582925189170839165556972103851671077163953022875161532009681999688791485527164504552231615805195474826954831102363547129078258095368780169828823146234067016402045568418341256050020186889402648996584477983804629317220015701134956079798819549508699054263570883090545061323722280594768791329663126687204494334829744061452713159067035569744018020655087943746809249064372333127608521172599140692864669365261693678737347476206977935470351443614257232351594429574548186039544915849405604876814898389302690560895894589308816419129841930889580271270510594871652303913615379224115401416593954087728251168280543117719127000801664602147690306921102770315380045726046223908015551298077719907121780568325260099368913881384656822490199384992250036616511395830078056738435255751958547145158834443945171890885657205600028675341070015229965850614393040919275966443049729695070786077045922625922152668935803234954904998063745275863352274758095620406660951853097401757393029990643391414889886954530401936757698504063627364770644762091794606258676759941781455502463577089420751849819688270300867199462145951997910687896401350388485439814196940849994922079337293742165719387871072453579628549893323174976127127411387844564707075624672550062078818465340762789652275669608617350152245707593061181691894758998839698071675619724284959893640494194824081893825534954361658048290889061575225980120324141196439282639961107439029429956433436291154402049039067945876653860012326329389369944990998355294167650063214795274643192721144663710983346363065308541472269278816203912512725895364185923297827933919054451263180218399755460906701734982005182920697244044365898438896211949193385913186200460706805426528263274582942902987210349845875205382880226216394425296622293793210763596005387114151485694496026947369374767385117417777547631562914719348505181849615097349040048041129733022152583922760405971178387768413648953622967415144549378352307751932214206452434231655299350467227875047631264977542822735481545667661719581428908043722673542199980264592735410649129128670581339918361461746052689730222052404967025937439005239450275188373148424493034735332869296895858155246064445140839927714517750962085881867131503210920836762635981622702480381415575360701737853969086743112018615002936063553892999993448087535158401744563146835227104889308751712159139216085518490616386904681836546001700737742847670831686646060375114510186535239868580111375407608997478693058643132252820156816663623164791911474014053303673444648057237451998220542851651626126019505259409515250384023173042699695167211219261779415068599841462400090901734022338161510192661573409497198673019774738371369101535334452756365644562337087806451288941110127088993826987966712103943952918062126152156560739430171003998697531490607506579764424517517851845327260475563477781390976831268791979940038826362092725753777318102511993841200287223529066289533646719107437721243674738486418746048367245050325694173536169531490546827810335868718722628479190446451054824840574530349332897690394101608458722295705935055576664939033801264510679399893962457343082516280319687652235073403501877669605571054163056894177519021268260312196109166119784888055949588329690133358684978212041262506308494608487570555480528346410510878225943330981978439258051716213602139119712948838004981972809781111387185658958317810340599656347681939495126159010953459078413979332114307616975005545264684396672874335220530263583259057064643343783344348724098500545657771997000217113224354822931926523793064609820977550025899664601496249092540643448105947028441361179591702593911633161466477147981411147969242423185175108336380449984920524567955527073860206064033010708799952701875480376419456206527431190987356386724575571726884843030145372685465265652671506833661082725949377659197725953648188281181616089342544947742817227213397440067379902420824433758783281127211792182655836135171192637206822582683891274900970928553238513557552960765925355807408974077502439636723015154759636212113182472595667908364614133916436069453770081656464817265860017857101469550819359923884471430230063892861353020537242041983590079126641620851189321618623404873780558738910409112203210258708549322905440787726349390404058395482949750482203716145942485948409264536393460158148440104223361449595518284855995675677879435182793542970648721932945198214852241257756904691918817868567075644233491529088225590558440907776233174767570388710082071484151958266053470401963427178433190261402277504230418395169167939729775979233246608059577305628355803914491860434465403089811174118052070630652058703032566577488986884060446437307050555566770433297637677487810632173646572432844596709495536401495342255620341284627950222989673922592645367020155470119710678601561350985377766527619621475382585027449845527980252440472430627674149058589091832049382979748710049681561450571015980418002375513260141967749982135027394328305519184291898395099636313786560118176659627927184731901697634656276989384659940931610489248999408375834677729350127869239262734434076411619352110547812535133342836514115387398749058961742866021934541616509625960866869431242645397065742819625893426464424951884759742273377334887913812826786816838430175084390243503389153126702674488342323668418593630661697770251372414694224723762446208984015079932946993079810146757771390498335112835758005534051824101118403685996621900287984190453510578235031840885701717595483652403037986811949262515026041927491345746399573867562139586064760913987098305577430582274575885860453236394783183405376151622007162468288598052333423608203130267842646464057246272667956102542602743543456722300894069665688441768253964641941760390253960260512261048632390757078119212270172814688222989383220374124982730235410817596401395021935753555196957443199046192423571528372773364695009469880235448758508155506540952863054545095303038809641409732509158675351997850062322893163063318000548853780013098772628804409922148174516867731761002000893285038362698807138099070514342890108873867863903887185618878426300078699373542544088124845880208748255051755355253028396802461781835054680869011133117326539966786129214913145986850647254371099540830367734644193663292199804075670457835379788311573588975736062485804311800140361170188579542517570981226001016423570679756672752578462495820618481373075655769863416450341480886054849144036034171391621007204591717109122187381209700904180478825669355227237594137264896878382992176176223822853869085097744366276328028867207500579969261038169982043099888938514131889279868763632563587331140401473055065182853205663505443569553090594265643489703585193351389996142455798649505607384365630472743407739591462732351364361341720409761409060146202863964500456109681556137495135430220814863047594249551838545597616151861764544155442095022946029325087664222807774306798503747623003405860250760308730824030105094180075599590264435408941519911417850192986391911015316087145227131958969441414221152098674630671774109763629838124002445435357554272060061729205754597226215073430964156288335315211882478791693368516469304457424984232224888623754218807255346940258666792315008025477884403695085452889669802536947108461981435998605465621380806538178934614850883156842019144001833791759309485500160501659279799300836519577417428533135138399120415779774267272754679546779707548281853151835902215652997571189215119435903652946639288698324192067877511867135495854079864634201925693270222022638197516391360429145282949489049780358395599384279615858164908086678778509135635174244734503198680151641802450692664037750648760081228203953589884672298831547271103115809793423281792879755747461133471863942635210963347663836049119442161050826589776182525571016808405040290296043340273447061175023999804771354062020920775314429664398759981297661141320524110658916310395483707666989540710271121802769404505029472963192517416985958822724917902863071537764238247884899997682614281960082493679399748118715286240010591898752170506824248907343070793834235584759265488397245177559601169093181278395378432746882018907720498950286799396850567732737268487147601590321970306229572724056802688455578653772934610599923074885621284098637050074395201895014693100697467535502486040784699036640727099868580766512326658130286977103871938318269199658110595280782140128193882187192827271793557497956134140313836426905914629862157424939468940595810804429550493206706147797361208864697310052516879408940606506221132856945292054893331075376599164000773918662188637076358708503826680742839600098095456618460395711984622381696629197297675563889136670826321625156573779085677199380559505791265145575079784751629589391216836386006886332197792550050771946369786302503905265006391141411992708947406071827873240306098553860447703798123942625242599454781727143017782910985256032125384349238490198840776897873630905464501339698172561799705515142014679720327605717105294058225710962106592283007999319700150477272929747872182153276601468763518775210219730065130892246347330573914252992136641681815447890890547093344459211731900038783949429144689331307291400037659096050054338745400121881840782794733370979870762659973940145033768106304336833657420958508022549515697166209120754280324021898890848237737665270134756268903461339574703033448871251885509664366648312399614414514271349597166187871793123816926020184017232547132659075620536059591590394220325228207267514428054628645177886442623817498609959824183147010143144203368520422510814896628049693014644839642057621703475660539959861291146689229750962105362783075320122783189192549257636413327568068246988542708383904488043835714334727525151264944533980275306766416474004706939590578626463994304925258839217544982273745058436334098180924211998622237925139766373223140563122113808019262844253860520697258487829706513921977390702287250075689846212865847532194594751293663625456105097013677953685210511257612880431915795278541447601202641895849603933416704435384318338244772529150365300471069876447881122979873319387405354504974971965844110904560075889411921308704578222013978063916795574912991985248938628881030573144579823076777106086849061285607401837209586420343727463116610820569085446346624026115018678740782851334993668575299351158041839490518468318586331321365722474782171363674789675354431906805092816034514713070511984895280608514422551943114250887158571752047507425978968311938938654923255516445559633818767261590927686085263666337709005216167870015977114797330785580869933627378576704039894947082320676184082294508564412102680315507635317401057164660063683869606457639092132618110942903113110125430672654575010406804497428467272247634899697034827212570235760498862616489423622647166782943973350214972291178146726189271433534706684176297832212500931165790360480558199128156870110841161326899911776319310621246295972039641356081909765116518431329769872784778504179171366194531406282557755985433907112037626277656611452021140979779158941921153976137068412761355634284128628604365117996615120450245209591474480934692292327891230429727083057752216063175598179666058815800762634701307232874890818045514454632874080938311587384524318364363142285101109464423404191080845376450093036060444617439510563625244582803001308804880914517989053948880915376358530446875454980534692051294010083476759320178465931776139931719193647392131828788831568920697274754796017127660243245768967347343214911504109293466392723982873126853063539001306886818568430969557670508963419931484897691005419654936501501349826396290925092497161831547251454603829129989040934992441999618219057099601324074481074653141392450216870455314367311045665541784384277006411910336078033717886021190695656872109454942266701435249844294860028923923261061663698266078176873850469813132372558130883787302841141182288008801313261850839773255120575473634072154048524740843021883084383315849190114904828165647579837380150353941212437097989238751934516464594728301569788571899066982402310445300187632345687491839744246799850438182999344848866695036153079124341866503804717137407108992350888922463057266269731509533943174629333353704132236960314094429329466715815592301419598520081843178571264743853203507744302320462896273750849851116825397040809865379560865346114752628912474601711037911788419756178788749443347806661464767174996277061050463621005175282228513550616093631269460039650272276973104149384742597769661125123814590514672709403431450623743320463706287373993978529319750982321307366599628724371820005689228758564494161725029092549535207440004447833200681643454448212345117290020306449325279421578444184399594849336004654574932481679158427679016983247107297092593256214534977471275085100160620857491073483765327708668693321002170673627777368439335658236663238325249612703029921364821976561385753031977017062006776638471881666887903556631433667907421262898283638797462109634640367856102844517661962986787763449001504023462529159693804547315153846230447945188032746016121191904447622095621039464929241343421870445001497626397206526271516919009260533738028740477691950220802081588713366744535062771450740811501628170170583859870892096514409724942447913963791271330155169529032936411412644016435362505858455550778031728861291693454416116566523986030415595158398542198194966977049567830372389915661310398026895460505118509833649120277287565935952418785801227980360014761183337935415282019405003415621333818616702886595904830060226480809704496648887535474441598078832366762402975623778832787930298696972749632466347898331196379241234869115315851675277110936960736267567380513294996168088111987699870935956999968768338652767032771448214041270714982016338468978673279019139085855488053765578240195089904844238068989931371179096867530853797527170952106095696579521170172394059958514474761101827355953879519255009305872766227520283293605923070056236447468823919610079583464270136345820585172253887182175998966337565656314734636859079393716266563780090403534756338202283149765207133322650029861653983767129795055393303122657899509747992228292715219289871178186338189334652798888168064462627195356992258515446924414644388937084570217894697912879973997529581331020254192991105493666068432308607134427192663151703024610199948626281496204139807914468193994924408445277279976331538204481479385021546447638603230197553016601782551665512929988846729861019169471843492543641205364517182548971100733841320960058813911176008839366064803701802298812002550902380209132686441195342978632346830883906789953391460960463777546941181357821528897218786897384722091882694281460614512428556884285362117663209738857342808103436503074333025324096745265587158621997185136133707328894335582162227631199863101605417499301782837079905216320796356957374800796667349359114302264711200869910332181535499243678899628166786487269567737479081861621863611716795061494457819519312371496120903391016162115115555680546799912106745930628953583833223310069251978778820552421500256742462109020660354386002297436609621150508903693799187333474802411909148080429269827311780247269475776945383079166479288221105420332561148340341760671528883020085772291365516571419076768297252209785680444688984726359441254116513104880034015449927836981838651388206867433639685973442365048143231178956667887580772912010029678278772106855315367558917261162200237213784836620503358058361942443454577071228280667880681171130289479950061027951179406459511721592603998838139455200153938075607080417416280557642116930273067516361640550635662183029107264974282353365663429896252509359283357652973807991426479798394909861632125866739779123022569089716227499933646885718897243310332793068113580352741511413871468840050850735120407159328165114032771140020983215126734580711862921339700895588739615322001118407688357369832041724889050000098318095627773312566455561763586176010346800484227780885692709832746594649864640619561099797183926621128811097872542879446705415820629356082495079464245388184521596139928810293111676303756833374445888160829023023687733742252466055255739087847979270953740378191905869299384968101984109680200283044606611322933550311043021020217930330813487897043323351811534189735649477403995967040495313268910674795290670948335901929923330724637919728616455574272445179222268857340257242570775144476325357528659202884081868719970782656367497566784123033459076086470321154482132722456498388266488965336031291590140721222802070210410672883924546793218463830855376169217337618610170262200354442656902559188027632987478375243355157936336421055821315011435494545254240480175124538126633649208644685699653425919586984710313027833266113946421088791665590107620290115445973899145860999566391286302099416199273866665178962341370765480688750947532742045452335969618242472790924213020235384862966611818564022964754285732436671758054554634196753630719100095910220026179409175072942718780752749600768911631069862812574302397596275569213383019232987547863767284284398487656728674331061746633052572895094373808776257954033000948528053320243539935332590033674046458636234944399051545494376791518666178632526045822358680083997278940585517089881866677438214272948056621743525631520200801419760929219246560259853209919771552964998847281282675177336716751563672932602095552170761550641255939380554161683891857310078598100884306611959185988455622895625017094109135831651492111702323524141307414822916196346130002687828066980949655031674143483892692377811132907693231615958268258363139610655271376534602375675694652700787694696603724616328126657293470628478721065110746389290238232407113523398538638291806296656850368462398905379670182482646944086142796221684833200174291112858697252279476726986550608592540845051429053526086545922077661471428953635011404531451534999496037702243054847993389163967529310055166380690052203249347863503525014725451697294799278876727136868305072214308052631066954617523837500602927093300988925929726116317800076473314893740803753824573352508608894054101835740117959417363991618474633712928571097226338582916987583316502441972152281859210343065011042707292560026813336702957870783317047821895038085792010765068077079745028438499696127284976138208057337074001590487082796130245252439839885005526081617208121101385905483099033827340654599497579143216211146576073247851358370533453778679446950969470019854811614405441715044967998013980005310619561158511082462985606224694146642722813168432650831308820601637498784183945415220777521965747448089558970034194953750426747115725679613442999126866277502758213764581903632870072434588455446331031761359206283946194839166540936503570102447920158816839073381318178201544363177110995992431933430008577964933050724557526335461634877225286370881200017650013772585448194582879766693430880542073396398144392745822053593575837908736872649209963699958839934364607300934380436354920390673100406232872495575694335930044236152798239868688443181653024041364814544618493987089436001633241891630927592943712514164114053620739970237733074372600014591161650548565633020945291812806289946399132859374036924150996589148102140218512249026863310199893688961788342864995113350874761667079949908376586574807648950939393879074225594785285339628497386665728323762133558682636935086802513343081161126192176752626798892318299350079388163357550587690425607312477135325404796490672321720695520796722252421329799896602645868491540480490209845248929540513619628427792955082245773631947016355401950173082551425629656564900633398016820628848561618300045982199011867599727444092841544262374894264217652995099796051284638095585964466099227657209826954644893486002753013072052045240907981140793864767782043776351378540643559317165318165684261675080142460524771225587295951313297349297110207361340544440008536450951091966386085969075299454506354310681785554130658915394335783472098617130706897267955531914918484428513639080734651128300973336561127840758922761432896642581251339297501404129623220251351532154358376084894292730486356973870465033439336732177175627993671037358227922705413216967815127250066364268356811852563942701072101925583063166599967080523604284877852562571636949925088728860685059513200705956726691184556819625023211219984997645546291870198935709975876284057111992131726970601066518551680564263247208468075238289491847278729576320705571157495872232683526821156225774546290855650953435632306940436094467937826273424370571560045636438884701912623454092545390618549058530571491392203090618463025372931614856610916342615196588249562390754906567045969235206534618497270240902423228086262880101383525970740583196110877247527174935017038190964361309882449803383486630998860784221095196723105642825371542823757471543471978433273277323103552324719431539496211643840150193361788766813171612880098079954934269238074927868810023056275921595812184229413341870609335463368117166190398934308295564162860355768233535557379360021225234138075506290907761490315754902180555282738376971180197720301279072687075915373828461045755212364971924724541081288952445850819227478045388255351994135518955146479011168945227201595417706109538280211982268279132785091068956599512215959954349916354029664077876410784939972602286047363429513482207235767251491571391466183278869315772573638756256620541604258900167139290023406836669811349000491805668492221628884867894266682070347666243142510227415710274995716754908086134036289610954445545034534147905397164195430774013653137304138411113874366826966416540825197850090484983233144413358067638004851620997229424492422467887239741614211380624650881220030920899585876301345622608089392225968908218920202222163269988253256286371985828757768531201125658456698484644587196644539131516618208922368967872798216712925938693306540684000904281356709463943864279400861339885176542512768301090890518483820211369834452747438592480231714445301637135566071065674678015390733421808082519891325202609603142499377163601193718290805816389379446315020502698967981650084874343006416965965793637752193213251736906334735624151926953996195841385912847093742450778803068404754392869887062531757442511234930568946120447600233891310394718806110291059980874852231158398540456784488085463038660391447730333072067053075532062102920479678367783281348470086027591373062838901937094112831807472746494783632594679750553992036129555669100034341366730210362621932645866541144627216214821577969913544711973460379700668570104705595138596153756724030513273735283746558271570161797394683325234160762814680412137859488344682504463643381825459999705285771046505592005206764115840501470025079553921984753223758790139373115875440910326167754504266613020853728063640815455936952788055036632345313581402910710389333218513045812475261453646088766683423392821034943097797981385438052743446770845010796763116963512000763483418889390753114733148092583970957245440653682150016458003310423924040043677526731784417931085110950270885972663914793957757210917518336847134503660385966593867376876916440375458878511408672291335480368452234696311276016921218006508792838502857820571403442611243947047768774593286324621666113792194954987028354521742375995298522670757541626473886539570137943615105095433821652600160097836003744932807269818707272805907796202080570028457923495909922892743749587820867445704659605341297796325521270646350691970308400116475193697088835376355092263097736023332494281097010538627241672745433137327462134262383101911746558491241641174541984921446214763475754349107121513263713625205405136094832497618408861484025711905503127334637211588879071651739125556187321634617391507183779534105253194855699746602189602489972356440783194260998934704229344349121107103124719286588926828945954991375997264467543465794019985124495315351228701670401275090716910928215574866129727090395209498143064151971757771076568976874998598238934784132008639252168391918051956441472720943730732403111648253064689185537813106711505634950442114546899144909841545713922936658825991672513524317571667188699096446447874837761068430156100389467680756896953144687091275542491154292968885311727140591300968606875063437872426953437138125056370999168975537956408082590410225673844688027913225606226192048900828047557828865092752090023814126523408638999492367998542714279339101749505713904098685475801920678306534603954578158307688654003170683418384383653187783353839794138413111343112493546031367803544691610357469669586846029333982148214766509659795483404211878883772098440105087316185410801419904216270061861189504755643832597332463936016064631046437873499805525514753303354641289260590154473299586516133479167400693592211346616197380021988099129011212973852491222473220715769728716807731603268832837728180190856769513665516122874164400714037220678344794810470019737265249019708227923542728480680491203294621257177592926246105328704587415185499929785123740710353987375140845262064023821249686429488353184857744363981929576741512467571884868378870866328656303103512627405684703974691607544331446212616588931828472464005676344594774586641260806418189355419249442825004581678819697724877319965364535674284944112605014981817942614992714086339616994641683368629893467467712706275437071150078035669162637146305474959597303021808690636517868655983546164103309366709700151603243173946891919249226279331948705840974935572745697858935605675246128666864782169716714891475914706972201990421845377418811771989040736261587166440748317993233927027030779158713106289326029536583984456071404537501577607115107183636016454207682672787181910040316736388029396396582002438519323797191758059379747328380716870283501765243881787374245410874433475762861327565960069282482872266738642406605580913909371311937974294469657800367027442434103734462268578942539483272209034456086037037879222006366857417466226668103927499360689636454042995280450320490340639023868171661399378678268743841895544388676320211652021320054038121025197910480219136664436193123188600841698777962284662340145392047613821359179358324853803529008098063442073456138976321792278431499047447490545338118032339383087614973967578311465788091620222647805260288628119059187826925263267758557606189632051490042776478340823861051931314451856525014666748529564990082350915768825826832544977984880198864070227885446739663116038760858499934915311474022374806942185892747076350235100896171464042098118495233466485197846327226055116589828599199111176815233689803620083910908561065177037802136838216372175458233143704710907977308675984551418853246856276919485343178409574985518188771925347661933933476897413716345009242652284881105909469267884267802400343835027585270363715834226923163709006910726239783293674441096709695285248859829205552592650241145935520059463020648481515059615156349378317789490995454494556143876972591421678586592107259239747113191943387084329594992797617926131510813796030581307160989257919882565863399343296846822914686371837598910259766991456198230199427896666831475708156557425595194175463605807881471729817844323218246213005058757981773302683938446301632175457151470539454055371405170967601855322225555593400539791980437023854191059267334838214674150213641507406054563227146141474872819185903599954146115509395367482515344526641311290051134435672616644649650093731307571242949556830811737150692019596924059350193422443429741651878833030688367770838757044981786957121923378256818098033784944326108986180369347133264279076641014122730150955973625841330657497894061845095030599063777718774648309267658841503003246576145594847645121401216921932929421481038356835568494888154791035414321747808413289901766985479830303859157394857796547162604220614917633173160236624111119097276432038560698833606793131059838125881208136136244061307546259351669204944721630811062202982047306758237659896937124887661800463111850011138185839171145285845004671803660310766736694307406681894288874440439622443592237482344057830498581507120211180277668092612505200846942942681026542464357003229298154959354917519426591242132859888615441581185867789577774111489039654560704621109363856056355560499383519417966961209289835028326540776929993452492214118322697216544629498546211268684572587915348536548458226235460919698584922626173718089384619527252789106741899455281029726738312562832325962644143139775872833232676995086395476521388220518053929123991771083066725804917689696146246011646124619076771727196309529628767356375275393075860203817383367865767807128518527273197682798804102519594406121395101407434855626765132580524907581465271054041847608270946794209351856515371622090874599220996619463451655220074178961899299956678343780117038596632484514141077175897766053854646623036176825960727808680321746425997620450570087077854954459857107527451838277843922870885536630337443234345981039909901383838271528160196457422975723197580784104800721221308953369042409419116191392593372758012461230450134556321819429449862619783792837535788390605664994426684430036374217402742616862023850566516991360036058504601805054077053850529050038836777343860329320212700509967655471165508568560769887488503180119814009467034433133182357705505974755495754029912034365854918320631628802053379382414868424899499628618680448325498964740918973112802229303012023818151524734348186709425472471512633361704828126655782872526271449640155839993985815129462094238662752841408750903735835434717934851557365484864891848559590717643319791385694589192119197090688741692009013347508064388389076912069569981932043865798317266086173808749906528772045616481386288500658435611258054233647389512011126122681534358788997412191070741776469273201781675523375597571980005759890443501173518543085211566861676908589835073296032227717305460666401072696399177718378875364378619542815910299381172715192195036944064575099734262343463816971687649492033758639368129156069548955577760988054128329669708925540074602600570488698658077695164300143441395731596990329335463530857258181370934376368365044878598662733996502888888495778250213555092437096070229961883062011467337428008483994642486369604313831007990025515092526547015853765456845162187220958621414413314872509615291853953702200511817899042308174874277016834925115956472692657576190465364218866422445057493269862108678583945590440659571295960128463034511259150778658440851845912915461544850513133831235648950948243847667365702290035591794472231349530739487524060461067299097318456905993366002778925861401357412050135006635764565629682218585557618117654355026283870060646899251514431124325114438677695275349885172534129860621872367649925682816568500621194546601891610428350463800451027412776115904722827390436917491624221413831004285699431810180961116540030749933580097600332303415908546691344044716192743919128262998550040589498796265774261961225233518440052523484102028205425782429391240952246770139680962664982573644908673211394515668978643443152869033856093965317227355075143489538114923697095856013681865652430162791172253149113974799010706888829569616946983333319569514138042824589854421386431230674885548630133173445188305139643159550306378649468245136329841904577194447992339211905909849662247826459618408073429289167769888160667075987289241070728737174552107894603524086986919854185859589323240591340699247904153994809731436131189596929970908985405684440469226018310292654824163137959604909623170138592238396492833371895661391225328802411604480869093826582532202282764001436401491130066296111301402202877904818399033991003004798134038240698519224672051515222896905160684862244202761854446939335272849488416784425875170372267635414681961142496097514400843753726275820043953617486041009020822789104120800288487930243214400784813137772410749584438207721001666463343304370882772212929418914626651629881649221813579913126000386886042800722244483186576845437176349308969061080531596253651987317327799699311549278585935609052046045353806236006171172124909077343051008168681515233229214798348838589154360487533747721185453353952715769430041000317811597477554812500811859050423332163426823960300390544208297858869542705953617999180172703841849955511183068964349357014190122673444321183335897581844134976473300233858172836997261706036231225000348860232880660588647954552384120569699164185831750065829605933684356915669620090584312028246153697000523091751547702113580539675774270471701178766776575474743925925798755914755419962759390371376056875264703882414489716144695424138458197280051523198771331236254709145605451476108249185732983097750577542875617448909974067707278899531085642161133870671721891135885792910926725172024908761577797119154496521819936360918297403341621300196702620527854738345638279609608079950559270909381572244338929469441066372856051042951605130329790914540629329930515768348124783418991155374890498989469774599725951936525125189495943732394932212607937565726473061208273194409269024370349873184047579860952589803829550795290084953609571047699096346168994985345704774615302358396137076191297860019273111880804662933460653976823772428251568970904464205091530578320330486851638206837192282510303457891000863803648367979975666707430094217770147117964551324411182324708083407026633820061731864403473701714259184388739521559837535392844903309900686429623258699396614228072862079773720897440231779565869766759661592014422332312278589563412020209133298165214108192306880511863958014628234174645739844990349093862134986653111238520235611571110567097243453629799322565566181356089728344780092528990937320369186166636103610554365182971937096484440967642928036605376598884680641525850618880448229712242425327338005720544981914580093979170657910104776617601288297053466568291605267602556066448424263286825531575458901691738352663346195666467984985122243463833578037631008143191300407563656790748335573620732668897303683867129364122104771785094311678683319333108775251870726515124084244237208033994989459599252611565812261534009491832973417668039892222353319108204010315898304196985874761019053765365718623795828817326897188003906326869017015242366977156192532778805583620339997949401300378899256285031188714171711875937673889738388948323141033557100958679860691720519596152037421485439638689505079048005763686611830211599654372781741507673573274920262396852478335466700263888103572659065091334982090280015372913065574398627635361436537198104491143481226383329886717624708292866683654933796101449696195254172851392965335542713192407903167912862452349680736267797926852536842778246255263887027431310481323632448321143145230686418187412976197681700035367017073195603393741476297778125859990294627339192366213087553619031786020946136803304055092848277507155001912192933521639300298676448602028123901701670671545263429646125159687768722607293677377557874834946751357284246811501421619340786906424480406017050401547383082505168547558230323744580125633934314833745164869724704791364017105874042750242634588140913389297040219312223932158159746050344128898227180422203142096393942357723922985786849754400956229858268633446348262080378529666358371032974515950486170887416795567071854407596443369938454594880236159153542240906435313363960598197981295596422707107429959863465715650254188373097854474450995283239563777718905934443942192890868353532494384959122589801294943594005694244302447426057859262658964524524320642673080343973035129761796451246808863207911372643998567613058529431147186822376341881254840930186932769297471209254255907544974652903940971037062184945615547566386008798011473135791872265610209323831972137897232817105066913570709665130443884294407112665154824100048394700993131324453347453825995026490667323369120781567284734380971886716649439243065247370463033994314412361904818943791264608045848914314394415326759769007383653037797942809550519493787222530716119884515710206175474543059178039832480734873879697834094928639323856857108731431829249522832515951447115732458017732288602750955730522508060390148821829298147039870188034423115383757690052080567337386567035617661512391783259113520914867709458987416216739044688243168949304799337971093075908029806041070395854919664291479879717827439427722208421190173128885847744956102910890471598166963941207995937678428156877516264253962979489056757333210764728175055921076606431217782223445612357154494891000655779261261589059667583966592211154345606074066468565725751128744466559215299290556844202743069213707911790262402662588745576095541339587621424444991484181689722319416853088624347547313847189662933530909570653301426476598668535315734118336202210160528555929982935310245675353529788826645899720518164216026902161815347800309686189846860836091217362704033333503328423674604948326693315408243591142315019960356403183289312659433323379116781127733899323706400096834110442562801108942850982765094060173187721626901725716257465798791293895265023358333332146638888378873639593395428173383237811423933381941067373724409656853907630119993802446820346351214766843261109250717378194042587173476985974703344325832732259320696128248065794429768926478634570104938602949807481594978103274757946575294387381474733818714036349381809102746463177413096397272961663911597949031886023702733327604597116458310548581237001353022885841967286454113740585057304397448247746010340466124479062906734659127460018168764464683111367831872030724857362853397955705901539681506050413379157223335211430237070053753290787938152668231266032068757101569689225700758701972519855125628190310900529785152212379482784095754966688769436726744774910601316037750157543581748239145820762792146431024729826884176301408988339315991087119162168609101500550272330251698428861789912884878781074642874242576820648390710814042948020607494062898614947262827662663239059525334577297858243755345180296092914290382155976962236873226753552784302961126348241746994207620705581012237076729096768630695387535695824638776491160109882602894487085712654426035555381663735742188915343588234874168786063530176589377479924087425062659829625647458670791615088647216594108604079633971981566191346136229305294266653871601824942615809235795786410856853068667025939643613986847511831269568850763892807752885185585425635606186132379850014710641474061698806458548143981765659675366427730151737753455891567502494230586384639003387473009045833618996004405657783619769563168333528056732698900360445903648064682982489393817311764802522928747303988073892789567390290585378583013677664305652476170097830730580851891156625598818463082760141409162670892594999979070433467990182856832819761680827169769691574688045422642562395242783668856669866069470925834862086743354215687311707398366009945460830499686945742600575261350736376864829993953725914290335495387133511507720420820153382134077619608859639908394992931077014207276016961814283516998247899916139696629988320767789392814112781460362390990997942516996576703304170195440711038563285123969432619475816063053456842548431884716051497344550334616081239536388331677353324046306134779873890037583011095128019269023393115531264245996596570328059172604485491821901084802451623332969269008331362822776181278311775977422350771655293354227623883882590321363644588099048828286464852162169087147335284070506853780474438983612596947950458835708034025585080503143677669443115463355668716573501156053780362135883005378950284747838848366891426059150161946929870299958177228065733906238446135794447179269980879792652848783459287130905022305738837494525172827202442507096503875663512048046693154205989938705061301866445995741562515507152655081040872759464718942396576088929239189273929709645122395665948825702101207467812576306827229123984400685788165996057227509651808659547233489857459634285117901533141768121535095094460579373236223598904838599089968422926165635750038643542094344370607685107340195260694657331465964190900764370044661236495429283210836864274280221988995836578816723899373092273883069246298038608923983486565494245874605852211078040760418419293334763640107394484163250700331328223177546665134196840853966886985556239423592727141745637512843638898680348688896242423916325889277073655369970398389476841081905291212479355201501471215251405945194179428500210524551487652082083171939744604982447986613680958542236527032712379632838837335489684596096536493277453527994980755713466553359636367492246548690173597943994930054775859649228882229445017868469059587782131761531855873661002539739661360457943425597299773276086940663715380799277340849050278691580749430366368163060472784795999896366537775940778770460974245880092348768305551712110885450121715164918282183154712690409429049258235593256519364062771305360691653303517310550694856004028407092141818433817950285331107986130071402709451718008136019201412270760310518170447585717922537245196089825104527749268020024150958347483376064686205455544788309727963217980845068213650635009766356665983737218264998888335246354176150757555564658538321970608061451861688285792803876666637003647039958645229741572802038105346825531572758405399512592129863915168082038465058186255434612148673466427789755011237602698172553000955516534031366524314398400072850976521292086938766945141895196660938748763540223968122007261023235183983802423261441193208692103661132675884343465474648174832903891491569667952414009633991920593581693285498468360049337993937967661220469542414859124457852897821770393578385247705243085117369050145299789277330623884003527325700057900233531920606813229979985819381075715585649343441219798333414285798484829479001461905951316782763934535324073341945751751211086716442410552199507152917499032200569094354484178363199247118852828436795739535463920317942640214664068190993029730625648759219360525875961815528428731465755786232626559547329297187448698819359312023086840932489142583693481866936398273681720044591430891572973994202304512273377341333432648359544368262363940365316090865197913451073725732329110369934316110445516834875985353046585082518010317932673562162434964746398493810765827596498470841770803542839786042349470699587369548422781494020701945664009321581565746083813860899492355639725732584072485150483612708875602630692894622923918232091589725590676233837405408436388414772454293969417145610395772597448684058380524394986213687526560593931085190668851842739206398493257281229705659791005660296488009079412685820597200046390407414666325759176748228628277827998234761994670340062676613251270952368048430340806014745073043006993075529501228447599494869081280269503011178631402260236644064939650703947064836148728113795504384846189024280924331426164031489978627050435205915993678560673198648203599030268347167398764001896545231991905459282368113125387778849753623418019130791552676455024295285701045385071260189941042728813347317896511104303088719072907887254941476568511616762404944604224312693517225555867136798925664700228896226886469893810472760513192113502624332955037658742672298869267663436254095341449031721179369683723772366219411545872404724419043975033201563637162674422672251734826647642941207967977469129429632189827315847011743673076779994849813938704208189204218534108648660359070051801169254781635046264402488462861852370630747520558103850063360292999145443505390662497322122248187771405228431914607459421101917443783015485713138155021582570158455577030682406564735766605033646364849463137656451631227462083920507152448640389096465782616380357838599319206483549088207645358930876792213888400977388474121534535590949089782089789869697808534495352868860255338003738320427301185043032594919193504383295848854529032445298044531941150249847104834834032200670029365640151743411969645104731235968416264661841426815558354719213859498313367844783799202872379455440334978401765614078336206725278126225435204058842432179745243304893115129927100439451112505106476011483042178483070154413771174822554398227841613716806636778288094165875856310693146288979219608596761470931874519735224495688360480151692996222252807151503259141648956935099156091499814637297746229358307827292336209437987512841393009151179264224291301959515927056829339911093505591334430311969825736831995371442065957786126223108476785917256502879582776130086220765039871111734099609944558333662423812910258192779733265784328766880465688881951183574144527255079051693954176463302010428852622239473815518017702265562806779279114898827753928204742080920177669248133499310878068596983110822970369767430923687130395091588563882163902397252682703781979211847023971597866640434110667613055805332266344138971068191625650127547040186610124874345405965754269962519339927036861222584494570892207095404439279806120539083436894063237245257192923907018022207215766403048584855700722389584973936570457292961890237963360477163631097858182723436617019062296635925021405716956283531241208010655162598202567354915502086112754329647184089654592134275221073823963705520361534665491990211895229996731194967540750891921909912198230934490609127410998924678329624125121966097149891361829405058305801121515865072055418746453246834863365343034967313323198804564093157115799526143281049528033097194711404264677026227952567582886113383223032101937341356572592187896934896077320768127061629705784035566801921289332178635392144959407436745669842687108204208814068736302499507794324783215364637195514377244615067334886752203149173975524818784436718515675228129093418195086244769941233338392276506502713251585150647178027448259894629281828023683815387434908431734553457259969254799771095346687251239995484967549596969206463759722254243902442371323681307363854417280448198293917408183499827179153795920426100908842253885918199079187248735313984706817020340436311012359079124144866951484632949032581066790571448080484271057003450350759062845519775607192224300036993789252422529067776418056050825443563994645281828842989069177579135219413583557514692365135392516074316558069629087584710347541942765176115591454263298176082773584190448439733611826667762535708617256055079029193184352629164397806703050223876354980908153954509908107706534240743679118533572016574428965800493910162320344813468181858072096131427783834856684654815085732317186714126131364238559895808414593419824358814979357716563367488343818956984809422700205042986999534115314607764100560915497293360959420491342185205562515444629710762422661629404395976361325139949517050187466424522929904960555704070627757428406463688752104141987687493556016711585738232689490951096639161006727784277830810406643434723971860390371013902877769048202476076261705401005405480775090669409606337307226743799315173630338666790236413190465771718824650925326735890624270024165722632696058942250279820850728759462291214485979930390357575113624595205579056914096496604748850590181834242883981765391526949111849516467702926977529406766506197522384234675873683092026332878532080685657876220198277182607394711417109462677174099265021664523535708665915648598839871173919413477926004217972714804187218679888858503121699076596345064727313779903301034905000910335457029438879341592905982426379888106082878706144637284619631527285390753409471619136305517319323881201678956636009256669752323120501550678528350501104141627322705428420113851261073032022531434668265542355312313792641302272935457137476351884421035620417933314627260217987659231206223692901297934219875524211561372644271928373167907273435901914884729729164608458927231899479971975891060251242368130746864545642216825188463246684997429121808578340991658530770220815824167335371054406975197081913533490818178754466459195264338156546966251236877080198247728963483021758564380786057938814050385979668444585698395541277845944634860656369096697492281148045884328188396183941571000275138763136015441016944987964148072318601977702099485956277036580726743562104604295658752997350977773699368028781171700374414698968069236234273525047952011696795971684806986078388251299632709516163378251053457881798372622851991243373776178858283130666684404498507221126785771351430452539639045156504278527434192996066511743449362021118162014576029339764477690083091078680125223382116781680995796209405067015429848263526208233181324513427880280551424079821876170140739385529507076480318941183689340422364568751467443582485406228470217622038248956277831236890418634220355264833309423297863642998501723176695967852994917349378879548323438911701681629028540005818393532588767423881231818319569943642274676058971780576727455279542479304053394082871954868453164876397405311585508157073412457246779635691705482609371874762332050277169244698152779595318288772997341677956769119940208095055862719573423696623101174468071474635531027927587411891699088648972388549591869741332786403892957209902338332342569342065010502818275152728918520293316639706743801173729270100420010069299956386271116815365783929393068834812340200000705387457873521528590314555723394167020482308231798808431335788110719681031837513340003715068847297285506264764388162462250277780250495952444745215724118228551534597602386632276402432464400832937638812084709386668847720666642295421402168505733272146418348939653846328214800725394140029724295713443433094205521751179447247207083560003311271667633760308549797899206731195750802712106096383307611644519616578297148756214772144954760877884685087666134094352847047400015964880864193759188507143622724578159981734230648450443595554031912483767197081976683145130888781307107091352488212515704948948059869986940461293387688288975020963807762325287253866768265045314852175373392219133960670531143885252262263864699202075992502591102532506264379077181297504157077532788920523827317875615273469680501383028102110245904096560558377197575374611055097687571899688766523047758311526268557452242956676792108233574344240096455958485788219913556775125976803271773509061465053617841264615152428216484663702308004259516550396319462923827283367028466716692885683397203051949062268796119367561932545980625872645742325922018304929830772560579420680664761932632594598442890972819814237051965664374273408990036439627994715497598733445577806095503167571622707402189881493510198440641667386424843553946830888736773522042821326808293696417147820680973201790971557844391127797158994296946032655649744269066552871919617167674527309146247273736582685283782746901793875363434439165262390245202647298402777045393522533782268907950530677349846126274448496302033693050516107961228795052694923056327299322312784779740212380569636883892574848533858852097461368527635257579708838023679762567146474067376798981353315116394877453527552687434998511299852275340597254218792686302297773794113266580945572036502958053624531908755990584405632020448515618339618685012574795251861366886039115986409418763633211184303378295080223275651204366872304954325111901824647422478851898250354809077280289684101690277222815476247351947994073793936443941859917362253249644482400916309218458797754797721498626867091273081025291840959706110719077523116857519987056926733742036395949363590230871365208959975956541611302932154714235730183890566801466243899328230632417572235547722144516597417995275810026670138571723269463049723315020182780921664175491900552698944996431144670752651618376550001642469863147104844883636382980132726771742459656076451811041834631882919939325184552039256706464687402069313743392450051677614497860872274364814364222142771749597326398846928112297711837848385878993142820367650363858267000957920817653612356565629904731290535941138933898549229361755359772327503112576642331253919810823596617630038620473318997925758638825581537199619198744631777127440035974914963590632624839698670092261500301853804603842524349618904598003474202202475196423824466175514419434136055330622816059985583248751891668242266033891757292257076537201386742180255590613995808431450744571497103497541962776905191116125927958079360446127015004826133442084906002938246732976900589158653534204511181203223565996900897667868664456891225011598247273251208764654806051290977077004893433768593866772176632857026944698987298491164835636365233153334144268837782040426634853485560714601026895472932527170610089178406364771940326595843644532280376659274983780391305461406072651987920823602017570864397617292903144293546534556469992705196173438538750100789057480583487628473919879898276311132059114876950540540572296529407265516240357248724484243430171654580932725971215090106181914009897407948507970862379917894278589760086796516946710305982360901113870464112538476091237985628709344272194754921760443280867066054845320732100536648484408277424247423344644776789627628015076238347021299344080432336403030495045944559912321321981482608779502333879635526423975230832417494130879431698169066411422351436535616779275842648434632498602221442663840478629022013205287513773194468650320781683214658536627982442879810987727392256515912882438559293481295223048465250740100859497140667215517603475737227834951012123431991994216083164605649419563016473777971261722808711086113702634764953975846758253209973685995958532124623846285431419257127257068943445939119341799928500217166099499012948760749770507211242748913517309137045875294321390315029354558224119175731845298018307493163140668078587999807341497123481428593525314786869251771768258289208652876922553593947472592359896521556767416681273191906582753898938534000053126941087231129746944379167567629298297914428021521413175302666177615302636175436015148410756342540483602654621657136088175658794003946341657078839173790405086378528571332389368788521069968108128859248990278692911187785615421757091217931793676470219631627726648581603401844721217007867936030806033047769245980654594636478604094105968697466179385114914101412795354954321810894349139794461318271336440969773831372935091211023852362042773862804997158515650466093826087769643776422679629960643283635702194387689434456781550091473913902560451692895818718982433347129918567087410538473232140716830820534465193758919501412494318927077483229111690271550027743585644357727238712870701823489206890308440891320256572142883194449374749406875983686100403997115020888361750404947126337185182618246651856516154557543141044302265908823112374074858019839056147024420817443015350427845329812165623319476471380470033447925835375894978861426736103854656029319139578844559822032714865534820611243336007553636157154200247355608552980723601130600177690257398498340367283422467180735901755312479632561168886421271858324260310404947001380512896009979107803581158865844143814841944558876650707327497252166131208623102606897459642030952441315780768888275762048907580610604854764098666938980598107798688722224993101975216096298801919249033642297008936824805847690507318243011715439262341279373860579508926030257686661135459337368961709862998216949526773243445552756276471625483035184534062391411823754053248524305074222786640035143390667366559109065044872199252050995823528123262285960795158734867369223994678682583004693809714677495906433120788745103323139353358346205728600171172513504898510653145074741580378323925443491219630863999186158654596623311755140647259748963164984128946342653292644951938063158312541976081582216598102435425172088202724672969894686704901429826908848670710190718469049667607609929116613848342862645629892676676173388635227883195108255363649404646633633645090775539062327667783131201374045299348850863328858282436327854387240260743892687250096069162536071642670578598351771995171806419877157918709112133654858487003597061238299802694737964127189340367060853288767422449998431431269361318524257437553065185680061212170649341186967000861021917155009131510906548896686844003712129513922715039427273110640229172048481366063710538255010887137498422812288468135032586417763665158139948195766808391610418118678126077646990273427313086586160673272840920245782846507548561143324413106015796600311718457661578365252961312912688386235695012670512667794026773493257295887561463717210150685530264155642506479238764750106969117339677231339166162630062087391215995814899248096220393077400163880580580170803478698629293732399247692071986316446422079030895941603887270512884985187369505139069055023764445387970304715979269463380684389549297610335816552921754334875455861053483374979300765808919651416311029073599664563572195304082009326085830225213550907324003279535324783448106635900685383980135038735580434264532608000758792140610372418897889223063604430175308618155924609153367751781182844978474917374110597966105121371039453621293979150153030783465538492301817890092885123663650869314480482260284853998587799886885387300626124921895608371028546524823689567122295077758511602213428158679802306459962922709457110599811605345760927718305205954132185490212755355951159718851453888654097067111104630855110906219768831730328186888818677226143919282252957292789481567686484148227411569543869389246874211763635472593288444047212776966299244831094941845199896560625326352568400388147541480081392208286839096549229279360413384356440534227697168664294157423743027283671803295003647278356602731685971442563310985741222479788796082069035049379567777827144690395594807564597161980913495867836131145619457970204333402308575105368203070686202599080795791300444388361679278177482480843703877335837241192037976321678106443025604994251526028699494792138955415618281605451477457867429205432548477074711531078402982694304847628765333010053701390555622403010087787057770366933871352642445304347959482097491001024816054406602853909365913770837555443927028213111257362635018965576342742110351907869803830827841201997936726758117403076223982739458183157390836752373916893831581673460834191487385630242407801373726318962989700998881237062897804764802363212080448927882836475449364931241073616574150645561010124969354666781915250801787569047445634983792539921852261845041244125792387794447033362523517470342687604194485602108837738698646364129202984737196876867392274554348479572315247491094096072725091782682295631405270832052118569760701190714660322731366373479115666298859779874156832907147526107612659797062664702998155579025978673435356826942543070478922817426595746240387052887162374021042537090242385339385228916829766248080314854453717933577897862736713657831106739501533846048075975285649401794057725710448363426793216309979130762081363340188591861997357727273741058890058578694611635976825661136988373172767253100568130759286403003099042107797270778402860017588760825943345714160814108108928955378677893253443861450722539512713500440366973549321750839506551047520141351266219499259198131883333582004323667438106170160543333805255405471882975747802592805997306158006062497389983150803848882812380451512732218025211480306503601322447845934563093302367323749014903179960890467079047167806699670574196704350639532374918379481494554493131870509554384929233218692368053580457552178020648511657485860681860811365379484218854330751155322538126516442016526292519178277471246226528886174193736914073122556071102684051708184660849755357122254874804328198372019446998044989859815815333619533238397213349246925112379711447611478926663002385955254717769444907968536317492043163162210963141011817553327409762519123626675519948278201565460980546857641922477225165520099158276735752116115262756460117488162753622124931809027042086647362129397542331684087193244499115368513152712482855425876610678560726800520351485045670641787001213444035890651917098482389308764158028123201419247982058003450000296334746079870240214742995075905359141631983503278172688565159741380216379179836692266475914218818678416174667782186927395228150219445629064505184741267313185198145876907686313253117602055689683198125146642016489524668586774198606908408088054833194727219963814548944793090718889361249600989267720451583713546898536710743799279455544592654626749718745867455218317948422558652328401380289816067216355376395834285002172016518532679888426768277846810452539442118625892009008866692253164052790672430981244178269890110346521683822051319114408582605030404702406244882542475407635464010646946494575435682253503431990814560981496861646930312050632217523352580761544306480142506033915980300134477556030603698884188898872618517318557245305936210524814473880856706475706571318044104537867469608617690536920020210868053644780110205353757982084983391373508633921803234749090585238165300567291688344885865510882618486444981617072200667142990579109278976697267936284368189725231726300714649890557314025414471732287619220237993216198072537013874105683734611518195448239890499925673970757174832192987056980496480407311448037751756494301641401694597159483412293909009390888280417863879180687755363681192532329314203665261521579261248758915250530864975471647267078933658899034216857042094069357943684572788083604343280527239104242139696255893097818504687013669196986093038097395693256557283780034957991848533265424387123773428896836081864514410215868831439230428371001209869585605290709805818478862180432169983628796538865006018376732240628638177389204716404692356775093730470832903498841081334102475669171104152667078176047203768298432072558857730144781635181280661886953171723047522842741172586957101000846509586330933332003637020259244400308552983761484529070240725809280687212394531879149825258531082834227670204767063139863485695906070354058065194008397209411552191993329106463021475008657800934801011965575235554037562040308462129564935299366621396198944741535727630369076360917396901684462924077545767819274973637863058127096838959728036875478233501044182459552343903884840986368845890237117604073854062336437943976166160290678614308057989574788331101686874605647862758226038884417225579190116090411076899839238912558773973574410700591359212189863022680006461562685672766812436748351624926028842081473792284645649100242582210491265749170275099588900907900173114675420394581219647934567388059668888996368120839261131326343780425508586286919650808760211488004937739314402696356932047345373345208488490084307957749774115940654658203546319505037633412511323037423362315139533084321977435863256286987122387869217803454839105636788084572259635289338330353440960300439769031151256405006728555249539613173178325145796563015941367519813659479055618085059228523533359800295686536197206690791633042260315510740179028518892078462582253826785015643750060107087114582144671696266819168209748392532951485577131202791699688188808830685136763244037428915522813192956775810699641329349835275778505175791729488090523217973834448627161998472441479790281584643848896574897927125673922441077135668424566537634655360201582788415192408184392014606467121815188347506364328936754769361558552874047563681096628898906283861311063125790435638775811599607862523387123645281120577412206936481763237277559572677955206899299709242005376102591241838255664859776566563417301695496760403069886610482643888887410304957974253979307416018714642269112597165903184465325632718108118170733542773813574313080613564703386947660129436730282587161817840905189483698223242620116685865173606804498902228546468442221448215040450810556092197038144922091476359819332631042560461033190190445874600717291132859574846059731189093493503292564494207192422929002587034195557428068819801073629018475032776567587647365586989459044795875059095551131486891442218754752816382974478473922880071796513001119978284946269028088868338839442383750355967925959181670332051603535679400298420360463548863732974025026897271485535659674193197929653710792721355373636160549921915674718160738359436542694332809709694728375655354186017999537607261820711333752700884096398360381420741537610729407858357930289348588322314160767512112591990843835755203795587318820978989355824922035262663150707846378730039830941722170630793963506830616527005529299340480898650852001306318349386801414216784607562798453475459030035346150169118978333382755011964737918689275442617000513144553888620072482332187739125823538592104087085190866879351861611596015869581958469423212229672214939371462366467400034981877300330933514400352799033552716270278754382903805684630148824809063734205355316893214500826670467283765823955472938138518947104352456716378761733181717884687192309959556054191814631451353980379653857167966288320791795768329806408846873550057743706895124610014803011190033539478839046062301852015513056445143979302317387376064958932295120751119745379134888751265533815664360905453689480984690772573069419895863692050192606525099972797220295658018924852010450003691504932575541562408658229088460792428675781759594083927621296637278170779430578931533053262368444142363740599833422017649189322704991795986500286591889103709643596179007172275273823183860723528780148988346111699027375121993642699462622468839856974751439862287572182515585196714545418994754776543706497163418887436846097735719193079734793565395302954983186410379993203495054149921653216906260244247200294831822283654225905380063687130388377052290647935717380408711739331639363247263316676474243648043829224828047557923332308007546849214149078608423318527911735377960728892528501330264269055725936719013316385274889454389131519274388425970588107281655148402081157961436848622139501929509071399625827385586721853092791157408447195296193558418422176523067944401737411603541227997765977539671265441772685959724338000692468778240407436125905492313926855742505967984106417710287542268396107325355258419957109204257115788034934341353230819550860668571563338515827092968451574552205112789916243411655444377631280345274819913907323571762406935432176017061941154163841019106820244327762407126806833775966072641196549647319262840104423104162452755934121299792383759641687177567499775414127326633115161036847771673452743424333913983396973171937076858290011848728525333261176361752826240521360134807147425150835932141831938094164748504954360706738104209206201829497301407650541620651093934966952772608834695444644944857246196741124594205452405639060530416570690116434095263900529457571053793990772618542694510252366051477169772291741598933627020239692012663217489802707176612777350495335409524085089188157438160909882571802501214004678871970559422049899540712479874610611789185432537353881514660698733992711179052743487392297423003226087138607467531159276979890367691221423839377679349142050757256216691704822941003983992562677212894053287180339524700986637004601531327823108950384846036764992391265191634118372661902303753584463314491447643917732578775170973968135796449935099239857578789521905999752320446112178218010811494104626254912422789024612428359508524006950014879728456249121083098862951830561277771241076194254730341537574589367573938768961280425757710064213916964511101715489443673254913079931781213509660361381995533595383061933783903361854136188676007006010244846457648599596870862792746480425527162749860182780968383307469065204900864008903046309932646864398500125171360649360189465996995714311367103988958269635077906637732493609864370778464457202603545538246324507904706799759707605565661263763210311336799595702800662570578491448940724253806350595163433894470008380525778690760806551909026266390019176215279870511144090184810058990715238623600874183659563610036965260423963429754274900044173538335360012501502916078462652425319186349922569863733068961076387865269929163150486282690353123746301959817529441474454005842153394931781924844180236939663222025346527285889795790763609179175946389221456204443439104484656409415293071479163368085594143732691142467772469754942087691038780445339050777800260902652861818239312012144173564207391802274898035141561059180745588171432358547291339406957298788396420067191061204429124048848900489014990868906975866359373036597704951744172541148840230506186567538112262236712868521641685902365947007150776630267678502847568427871463607536632648816572690330981411200129607847589561722353841137056353054622094507063123916350574649514895113407672379869183164834843187914480123919032417935524920971807837963366140653007086695069698779565563000702720907408775943975983827596550337297060608313256907053865168478450865066568247733308939116888805588078119595849281867378734686762866671727055689540408807531939751055433968135765732505258730937195326461838559207136045817308463071583180750108832362889009716561196713774546020714114312927480542600727790896839294098534598135235733685534791390291300242881410853170489806068187920400715376052463830563833492708825568657341470438046026879383763118416182063408844722003375155764341381857952813704961148743909812184099693493522175131335981256632567525805667268875196567220287228587699672334446732174672946720972875099273655819031983644157360724354183487085037562003343578864644047026215241023009849591265811008802489722201575575375705183986534751791837503480820467165356398771626657670670557943843012061008526032135134825826971724929535564903951837448248460300443138768723279183159091002937309781940178636870873230652985069564717086311936140636540972475745364014472244642013674026934624624998712398191722277546239118433046627630387716025857652072421074905563930390784737838509256759590173509615488741795160372902402753123112288192107797778492363594258440593238084570230263594553907473838095112184597937589423947080386132012207616551131696109155458612980366152895340828028016444435955803308676737568381217631023489828296059746852978087442442575087895017834223411664127072419374749464387161380970134090032978660487029345242580815960262733436988812491450251753363988228926648917045909515497463781011027650609309260370990458064768597353084340921805061152456122245567618858802330802510201824613942414550575725936182111998102454914359823060070477655174834189480354198688725250738339387150297741725017116161423196997466192076456896631707259319486041970004399146141119427921885438614728195043640331402715577455615638058191619610124437472130672438726864300921806593752864834534309270276472716671827332800958945075186527596599883752322839523870878445807737202716262849161542545437877647036414153386556377074959107976247568371117867353381200540358854688745252197230329275486691299304645334431578491892861634282587505213118424498312655083219356684317578181107170042228131190175461559026838393831970188454387252733581685025620394241321132044656923660466558475880564841786027808722376797369912200284598009392754107331156220573086970364287274517364644894222130774628548051189760006728267557684224890603496879640257663444932124136416300421279913931770812158477838599842641237240820072061279964658730357646238686365086242856058295497554918618291271904324408953634937849922686453371339413498207563162347266454677882352745202665694112732869249687693607715888923963453529055994001911868381925801515104973405301279912143191387775377461412664461727738049161947475222728469490887207205131196272404032071496576110256207711581160068790590871221913730039682427898233218648501778534463165350983871277921453440055013912520177143632575473285773290730276904903509899736322115158847608080202388279600844273802446186613405203755640209504126340247138334676902535651460426122601701149287834453549775868045910406478491534075164957232908760526049288077589882758112164988124773180618183588922309538130164157555449601157275864803113442332198560126041428820869210827054866258672368881457564179641817745345311589438810374510803444334055081284676800558621579548614090800267638581555104920151833997341850137456179257279568028721821998711614788105414960480788489526495166301189564381762335146452638151155382056908403146714568413521531891987626770550608652092220967614613413230379994369118683640038088770383145689816387672811087194205907950358140598360331909077548842174218819948378315423399648703600683214859641249554285080931649277078247533819319588046066033159303006357269940424358252783052728301728883153732766294314345860981498617703349502030953766975423960358111867744320587601304332001351934073017764300705763525352928426437093136208799965935889858439354237763643333520483283292840347512671770257046247139207472763755403005365094926979920988116117693662547490415467033486314426376993708725982886811691427197935343456652579399186387436980855995689702749496261842932332909893446319554069024378480108481068271372794262205008458308449145149070969323396198607368951526697819796876758007841951427171615923777188748243240743577726843146029512772748398314396147152759252792918108996566837041721782425031257142404053305384720412208961427635345455429021966322211187863095213382529004303681256623294451591843751161659334436872866272441335196907996432170136379371287554815044946434512474731962553720698466351232027959956984858858066877019634952014510276801187288661504113846634503255341863472837107488396434688346735487017349719438205011311850681044438441234114355363773670020407390593710540457672339973486363824596714557790644509367497483512364009082230413975202998948048607697477112464493550512773465708483013580277795519671593704377036081660785709020064147855407998943120115197541902027050827451452633314607735891578262812707030193714221649662161530663854986146161122014858474973978707390686933743547555463481479165784848176372124738925432761002244344625021110311777915557629240874969643503272350411222985534108167981824458851219833511683632861574617615586130373870300733016413769203258942970928738591368055164410294873161550454912120735949246225806585278781763243672515021954613493045164574294519305686266704967382212290163976087635179775381687116271460204476236287962428806723595871539620418227492569034497298093311790224980727674548068168179989566271057790644520211527417155194625127588533005690069076216963045511650868637971952985362801741643045492353063492372019990422436904234235760990018379426913844782096499315573803580711423744250319505341294838576193329583304841959328312720574508335378150698461707672713603450986478633112393882280892785911026732130332933821809860444718548397583527799579638307309998905772427748490137328579228070771834051198634179036273942390027611523991817285618492252582738384892386773847783777283227604939739696146013673478708642755983498812248709979955354652681664987672811726615010348783617781742779867308914514805987326312372426808347253820346281960192696866821828196235177285794541319338436119049655781675197413929293097598665433298013530334040513977308475043884754641296364831817797248146723345597501724745056958013587552764039051396463937052996639916558699880593503631503509030856043102732878834132373927631665088401559620554718352665890096028272286186711467081776034634966234437684933950442993049616358433025866701389594262458618538004563982789068673241260373671332453448492629109495829757591694390354374659254027770760576294411281017618271401190706614287509337341454957719925721869111620298170625936551102544108769374701982658841870431063064427876890407236699658427000576062474299733000917835920564815129894648754826640931803000297082066848184897072172481022112630254370772814779742568584492890855489179525062876145938414666713185954764925846785776113515566452251065411337078436414262406046491909792793451202826977466890902686581634102332673172983909027146916653638686169606621735636695208644470420980040106108197945309279230199760031401056072324499303195499054717779755598024681890757578624548035184487269622548860643529934453660848589799029398270016859434711556033687331203820001282502066991585661926976721208968211373372836401967373349182583676008289362591144841902913018612037774151336623978127851849618847321942148156475349422329926875352671581755925913712079697588937517290828883253702139826586575065443661017240416713715900062972682012684074151819894310417836415704825899492302414583334398870319223509987795237682006184288136777509210162697441583673531234514165499554482684374132998055366728714578307637463002906994313160494640058441972684974467495487993072181726843768367847940327328275967116885365442872293344952001583221930050581772211966635674666937344799339182448457039361493617384162949272018431263941787302235746275885897352374987212286387197097500789615939470117929842470168446298211275448687240163491021301594170570474182743824752807238425882306615200811097328524395557202829694175832719558070073995989054884854969783817887930658877014482144353215629532114450630924049414312927793482325614263501454665148014292470252430475661868373651205772658447031580924478969589744621408424645923522404426303675964702658640034194593582973447658466490366064106110245643929515864163440837272806807381350576630173809941812538214071464051619506146179174035310546180956389333970774668278171466440848573905600195385084114468292707799711944381949682572909226523570160356826104090275538160795893748487783295325763294059193092191870555916065269503595123699959296256954471971481446275224679585416662869324020244727166382003070221453553016069952747587710386253712523834893466305664987875722805209176202890256470336107491213858790183326214551120149887176413159275957151324514046432218968876373330521737401826556331048052570685740320890602917411822128933570625654219479286697546066318599585081429885607843045560468798490922750115901036413979741079584815968559984806761525364251230941458532015442777003915845639125103349210138207553972880349448586131133958191023457484330214967133493254782357597494876950507873945568113916076166949661102501343282443629598975879456076587041976292459605779342385528211192162440884473175626274934365411043017043942798456978874450422810027397728048534980138704845586469696279075905353579571618013046696188860760626850108377338828165835729427256318883704607355995795254884512838038070432802051358453611689575156211823118020646913085287291745599111865849671171685866246062139289288742023802609089557281071183818101851939268427706850083992777611641656547619761977342215927443542704978156113876707256444013082000687656296394233788916410456862176783445396872437676629890103554523095535709689298170272203860640788652700103172401452986774412095204395129974625142461296093022313286536900230599213733939040585843598200546337318091186799479549076572051357903720547838604581422710330949320313837513115091738855157431249571484432032414717466894327916101207016747272874419790884030809029554670838798850226726311839771548380197464964128433036088368964858947618490670784495558173558347099324849000443360831383586487513448298112578121883137803408512365925484177128886923070826218379373977696259907292527081929721091931279663280009343096206770555550808273820475803153534084718467802634252099187934505619546255997299139787620504949420431080847832161835819877670938845479301726741626244764742807157220236662307246087545846469439585728476481881883761592571942715064665239617336705511003753007585091587236530900821540746018485612087895809866164484353629910433045914669174621979007619775439189527253741371420833420159978677613591840219370567011051946101623258153205133575576194077460851759913890983560798549731643196200285350148285413146657675332577878434716001490759414587717339077755780920761163027808708151170688110004461247130312131220574866929281639691084711341628835814320682315960289557181399182696562361105187545706740777583482632455222809090007758691465005890000467255894805489679966437181995726791603395782901184062873210309582307913928963121264229148259010856763015820923719241720002573753614787720982036766461064705018163844958891022340349878758143648581832629845970417238642637526274220562079734746897996277167259634709762408103244305875522534949553391915707618982937711790496016945587901550309354122770489506146911025736618868268095272389571388120190920033311122947073971860857995728674432785242791547420956729180633041086494891472753700250766856207432194429690226945465750060200080289369477807876589043353151322050003529543298055081874192014253015853048622531768973946301447015466114773431904675040365506223331962186821894191730830264590968400839224310167048386983465144620257836724261761620166093277232622993540375024391568475048678543867115499863195138100188014461068659571653767885531836815289728267258834085867981681858247369219783561473905557221161302185414122560687608954771838041753732476848068456858582331872627169380687603659888206170920802732423995790300905679548182518189818691128771160972657799486971167717334030809148023541488348741817397822512839460240037581028481909698591879197277056359487951845450748170067127685019925381605135273358063732403591125244482784787098603547426846907415443115706959090533378840406548230309209764780303147201866710091618839564365974933123283557678185593509312337589704639762943466848788516692716725214043653802770766370867441330088080732849417298255483637260585620070272152997147990177926112987135719942848134762057009287368377093960117110890507632521808698037392002392438385573591461730557041197540523903502909495248813105150795310352626368909995982915670595770564924566928575467738168110336210404409182853922362031507431313092167086813027788964036855060479600399809656728637596441630162509290341133208167901955724172934500112660171568694414802350565856683218684389306520958571163235399854080441802774593997210053606125695993629360382874542315242101379675932543958965363652408504011264467878422211047196697839995169522695936891252553833303893082312782491304190570679541281138647584508268111109264022424813796042414085680229883342448318078797279996319760039103816166785510387143264202407421599683830174205922820084785143379009729002018709921032239614448027872804281593194668534417720304393745986223211437808793309173780376941798705273595294575041311203407833660569264437486818044772290905093050751856831071566676941624557550522058218101333496099216425135646324751978169014079527707062022070515458250457379399578165028388041392732661602190651811091631856255062696798198828334411829557419681527321928992639540100329119536248280427032299442901800496090418327305774797501324931959003172239399887516946428999371362071961187749166640228560032309364148886216878277882506587338587733219158983714595992204390673024998858460513493123878693729267994693125842687248978838463730769397519664730945667625081746790264158030657620523617661014736229091455787534070114332797132901453946771020641176469019454898912565704959775302358206502124836837427486201700703143786062070289292742478718862391804451262472276731253951249906944082581287365084205668463356728596543979593878681714200668025774395464984446587364828609204809555403433535342884265165247621026651517830155439017557620417693596417590559138592236605558458162438940726895596835005278864644251991862715725339654978335644881362307534365982148286402749365547514429792860279603846325182560251902889298361109838568067064739230687379148781511521006280342703727814221428041373280542845294374086108003291768772868816861247616341071060378251364564082603576005853981961145018235101694347091317443510228328486624114594053671531885669989926844138147323710597407644949587411578516239930994744979862887057789057423526890142314231735236417133972976198450887838902240269268432276239826599596045587728798240194328884317320999070539726164640315365128382902942418209040265801033686897541499587515236605551483151287067208252059909352773678347181435656141596098406543107589777701996002937524817874081107846658180511069100421270342653804574944862197992815378664435034496511398664020309100500017447442722545420540286437971068072312313970412858602374491470530260750217929395466863413022711590959813692126503788675020137415116230045976507593841871564856457304807256893684913670728123716777830521036348336386979978631022395423031164717415603217525711898130537950909828888866608935283996606515187855456523756665345007639844524555605943507807968894824147002164172420575304310232995256180518329765323700301868094199831656961035230851114627636418993438546395980446348518447971762097570524256283292644313275203722747288019368481066987068765242274141426521664053892042590445439100426124117893141401014688702321142329787051638588347334747130543315707959783444154867606088263411056936265873532996256627389371687860852440762810015290686216686919430548833913862995126551462791002767531066749250715038657361721915898714862411230812756059078946651420717056030625827954289593901443473664078060277032304202187374737102055380747563314379616670167029242622874041554421465681692001082894796220855581256503664570364172618124122979487581659560381132150048891563993560632368038721137930406827090620177712917776629943245693327078352136951099795537089505650321000517274803668800594571924374324430159353959075195031447972980749640188230889188337063712264893694646995052729405559058350559107692708760346373944454011342184961368560182743710637993412075735409816880529069443960815131102344032102848463260641742911314351065101032727958338269885861438507808822033473983536960200746416396189068667007612944811585100291133628008666388503768543991838654880256458493899029096827716817999653125394511042921948230818371803805898138079980853263027338318884557519520959759612529879131990274147698720367050163849576515786232061778067585830841888162079870339176904135655019285005711031557864342605071728111392632303229792881211672240626483502548694330922480613058754897368766630439992630619666174877992082910199526983555788107710009942991013415442084210663953723670258758421026756957680603758434802607487873337309489539732536389769698021999766063158499159559322717322118215569056450606631556800102076885317214526912129376754768321509512215420753657911638725204448640721212263195911951161969068969221717051607104644172267450670077765596237265586796236447132630056592726430308017945750249359099854255470700355976213371320561515088908878780436118507626847105462695168639114420451331342059286737618610033737816640872567859769358123880260168877386941886064891479424162717755170605594351937666892051053343411266805113657212376636136641468670809922268786050641214015435423568634615389785064501793665404497594047789864228062228598403387700360402298621252211079934788110432845452536351497129312540795523608592871368979020292451951889116626234757357000866908027196404934308421394909904471529681668347093178848827907383269046932747597990583964983673280035959734487996570619003382259103281863383799171437409960471253425844179049149475818848818279621536191820873854175472021469225962937506068545860824822140876187159122664109702537719305039698587321878721347014591489540460513472258202541504517669141957802715700355950399867851786805430444541445607334640044489836824900013918813555859444095331232833353795471889223814174790667357528370835282891180981327913329505869591214551854749411463079928273301806550891870452619129854873578690509268142748110885864241417792688207690325495465911694811608541999509676296765631256151563996833814695944499788670131049967875235698654164478183390189833407526773093649034741766374187947492677807127134647476373721115933838503933710586621192526575448277463084581773774606939691490201061774409840990156144716680207135400885176653794591041016229832227998531159977538777189719283685103983574985625102533246375972364202731370276026467225616645024473275455405472511642890065286461484244191262132026213457237019151752721532729844737790007791376888828612527864398073713791410668230006867228053088052741910704918700442600075483838590591579871083576160094319924646934426286320045097366766281905803928525116902768861228464638943992622772341929912474358094596967268939301439640694917481549456382949828416153539017652436954884525213046138976471548087865302450955158684924208775234970175005570502674736976128548358301948068448757971713700172431811086610850231442687359223987119345697542710879820495234165327260072176782428027144402767591401647732368037060594215900780616225644455985890852360650103252770692858756999569840842747401424022144893031531055910006735959328832633330688176690148205283070504560147583195683871318932158372561053501263250909744456473703420223392233728240730348645224722797325734770940009630756928626855776223518423706022878229167441600632380103805268448738081774657847558586980855938217944740822346634806973962633620311871234511166898683787587305426325279499685555334144836911688379026834842273945664913543452224421929918128870262377700263731878040243561217990130166755735995049473535412839990418771286661423099783207570795970482509347231938103430836908759080804232592440849179688944880916780971143277475356882244278740377895378288106832545053050765463924713708673027393475749057506034304254201830320346375636894127376415999374647770214698656204191267684540218453749866598230392781364530479842192208235018880841646019470039953037562326062071551531953760309123499071091282811706688580576216180627756056895480577841363332842243342091432832791677969674678073573081939680697151518051358753715453580540709838450853592035538729133912289790153919975047039277266616852159925121337496343420424594755743480096294656793015341656311876438718375762459703720976960126066331027013191684006524792532361972668938231683951028899233554983475669826135718300132367773534668614535651751476567155782315873443999159638739254897478073124753012234452051717191431714629115475710099229947020440857291167645416363323343498467561420135692810026363036419287494278411677545853425733097136046127923835588196832953472368402067091498334000097313343053260417078024621165869998773396453335856904947133890824779657555341758914582936937019040362724213991599257958110494188044329527328400947064741338613628705624376544040618800627196438842015278384165540836224261728975036835433275649200268418748011775481136895393878255565353913052489478860520790041806067601951646456050333140905822566102472859210975946515341836397388341438346638844701064825411493140862184071612778311228417885807036378357728078967702619244618188241667897273522281455460001825782084639832157063816846807959990997686575678307586064001161720041067007232764794596884548920795494222974573022168013984066968075715996130370695509948021643384219973406895747665725838022851166906550656351912067611680005292643824009045258005635610953427289019866838662200427784249188014268432637472824863326803265934836708205009762578793147203781248195627869458310425144209826836249521973810056659348143117540883436111231799046583578053919656272289726338393118809547171637196153546180352014905325828729061626678924917672933597146568105352410295895005990010153901833440337423483383050374851274688948880030847260194847398505439323540996267299714096984418941622817180103492185923474320094893082455231362535712661045229704056591182658343816937002919024774794031767315051343398795374086681810355034651545772899274020650314727243583642379265829140796363277500885491847122782785937101241972037869742768561864216777596238210037211101844037992316634155503642308511476050706300483571783942071667804004892365029146732665140855841344236724663326083170462606502565182300614965843011309147233666954781079564815353540957194666469452609119686334571760211840229267550615325831014973661685265928983939138433286583659582417917866466409213988221066005352191311259503210391237576232633534395957691614961441240460349452592093291984095446479992081986779825428945366470835362453932016139424976312606189643210215559575666896822362680171047766048250131929212874065780523254667651947061645739046124607900670046157622999990444523086642921394377503977843332051468995862664675469645169868543382733537744198843428395376995123842959507464823235954385473899638093246747249061830575722351629144838436202907686281093327060753391672149040121369233519667747078625916122158345401574632972616110378792583534055485912277101971951048928891110796016092704499140797966395117325173086206487107856493967642255949750244454521592500432251908160850607060270313354196386543631765777166330362145367348199036119271717098845504652976078605052877161141607296006216631957967909238716338503971608806531688083816405391611054566057307990265199830376649414293001830763240414691687773362108238077441524524362842019592879686337689693149568825585299632532167215007617943451538224520186747076937275885406158255038310378085539632169960606674295300000633833865597977476264230606613472045365250085436542291352893476640317033139405495541487277758278097863559773249722481176336600600901302732313536165449139655800561534629762155809672430566451778298230928452575753148707001105039052412249747661379591135435437152350070196614645957320003656416193250709147093324490315789477327852669608992291471920289234064433748729666141676604836071742946825528065976984629471970878334067589634741387685351298339318231414545741973395000069143200485398100257745129772519480734194454693656527186886896172707017853051503412095840352274043051988656403514911238517004591785376865692223634059589936432803235406529807658956005455249121513117519756816001537766259686216836330276305061981210901003894704474905084101829147126962056077522895405726404992671746348930300194434826807916387511217851572215808048686775274781172575791606810947381885874141763161123887568347339625520384070319217488111938274404679054675061921721710304767564656062319573628365184415041278725532861488199448569566231905473307880020526873706101601764874786719660548794216560174889615993895834935798328045549591473765846056924459753766289893034802695035110801812178156235110377568475824281082797220880163867309799255743044870121363391771318018472478525246212354986465197624168839829417034796584588884800783306670064788703163230563364766662028874189571282667977946601961324559058173453892593556628800884620064221065191782966105248028365716119132079131091502030466524400225904504741480109542904462368975094455058888361166023274413154455097390452609874643966570832066622765968468007093992209422793535834203842442869724689056422110760227561328969488477105083123861032415388987042801520539154073095502778077675088288077090638384232118314998358135151441103653699662072797620800563840441935267296916759243546009124683393566748814586485949652163403664093137822361886071472266845732279218727630671663652885730392356679412163261890619397635139632561697315467900151841847982980136906986969123056868836340541114949084036736282235287334904617494207036735213624185165412363237661130884630010814164119525493039589459176180432069921548789071942279150381326975179835154461996606113229970464134147269334446140532567256526238809507517759206480408737574837934786680611296009930980436685858853978265729492986580618460525927515758889303889844548587246785212371593160385676969473140548066270139586653560951035138537719939036403652727417754558912324360657172282904174255365609104760130798331612250085396674158329352607524823245569821924162901946588444720482496302172154172218811551159950455600565672406886450762555049319274515540652041612794567838807342720449255508282484114767321015037623150563709609422926748780240911627346779896419148291572985413913279108589093913243842894424504399873270714553908616782636565452172526169563495886034466988933541329901078016308115393356741824927880136683200688802830072825667207425269251566686218101481377894479886186101783942478802265400999428836953740508456462700042393632667484041123535957774039620834972302691949539295094888299859985844227174084249576907962811347109941950205678470001633756816530104695703908377795479953284207572888423573918858981213883234696227136285603151972338285670709138463726744863937708597118356030797304927770600322022599983928108859160321653121177457970129718250327985322360902536331993815824312622403476252932452814132067306055191990385888641547866040106434366986464576383005688171524576427059562804384431471461286231996038997405846890856071285449642900962754304265616830213017921583660884664844302001048181270557589192997534015796806908287421784402211977037751868689954622246997022646233155220323573610125887770970610002143499005818164022830662975345091992286681025908239375606109000971752468461369639113877409554647042183309734332637975565559099235124133909772057135568669987577365801951372628758161298777575777774236825073615784056442184649226534139968142618648115794362318758826088708838622119214776950820368689312897531125867174748093228270207624617663192271887805791413614260633844866213779067890940875678716223346365582505555826805634954749874242976114162316557269068881300556189549356293756381603749413113138226770710949422679925763978689352797771638259009380857338221229416351674904220098615993462436631095947614643070270255680727578452768603669461786930345921903090998197786572479978868082742811936599941054289523527328128088004997168506876061462552096108264238535239615821530554520092746756234134682165555961220568398510721267897532580072025181139516128338242469054674311939889742502454751066441651237713732156108874232237251763710049352703604808003014744102546849863527678471831542230529669832843233114827183721669889735852199094678913760561597575653342394832598761724613148105820731107274924885233794154993934163370175980189704072279827055921128597024337383349321392479083899091485722003216066268919190641055963912261866441279774839821017465500972982070915041160056988598189069494271763950329962086271662026756449247258685800951977037727771408984104596116712752537518716861913802752046318130888522478116718710691937235221330474163833807045663660044969394252180309091340774248400497247032860914776673321990219517022887314849612901915113289360997774452257352096272109722709718456637122777831932012032869121584490007879050059949542591819318565824712675097375352858753042552767512924330382668298475331751314279846436121204702264272364628033977345412359549082430438771705115977308638530464420854077383494401047285443662490114893918196771759334590819615326471354412867898133438898948868174650787168763921272539965670886725868772056658498512521712165370432228322048360376251168046594501195213107215404680102345248542919368616766198545916843579520099576029451571453292216499225209267069223619107284231473136762713113575623171635961629528603364041252804095645248412020829794399316546456269790867673147844121467510635931429720808250568406778904883866432576657067013320175686265861068356209711166811683954406705101702660019236213583328007918018643061910455183650842146283855203929963826702204997678851640792834432892795825541928705557197347066957898379230044516830190690569895861206028193532021699347855068204931889910151420048612658616198633135777404290743410328104568489721064317378971877868506038590115322785546821010351903205556579204453112905001946509036193300342164948938583081087352294481541957692321980314839852311374554313989920077574276279240354101302533204085137742305684069346840441115109022560260626503908487720788729260847876277893083480930377015966931266133440331300738641538590726831643220364133863668143413767062882179167272532735865535122332674452634626300179980520102401197280689405573157969884845082087415708541667501127688098278339963758997454563073961804032830400496335821798723632372032038848521917400320211241789850634242630079570617455750985415178447114472726925926877972761931270133502011918253677053981092336393759001743335730633977226019478409612571714864262988723002400122267456225705756200683132665218866577074199169028287128558870700616427983307443639369461639874027320697783816180862280416433047931012471401587151858543179399160761001227769562938948341301105324619134504488471652510332418660353513309103286666497093296682461276276937885489910748318557969266081955209510180017640995182811619364390730745761185312074726854475362091342953532291450687154630699176098339973957647521666994638321800869303873254794521272563700833321665500119332204203929988453657637825448925960086412531031080311024332004265176098147013007720246255390554245377358517057459351252038282138326785338462575351137994800640346916838547610472213276114645070029247483315371760937416225471883790611888632304541424251360613713992727116950740732982065576499374295095766663557306067776085154756043097127185118111444070529404090425317258025571614828547713822908081361958699168003743710452658899080340018072435561635969808192408618957600851553937130113819860471969374542129001474219173089113147776600504039744790713290102726897350038544609148537532150216526200396560160974855727417732032143519415947107084738098098203598363428089282752540331880149109884363662100247136649955619530976618203408820515304006131112548241181078489213412989017950045717035426162728520719412874811000031556218623348405668614907678565699738434550985743513464521510261801895142794701244700840446568906020794735906543539145819690622313870789375509419771896736710058581068120143129886097466645490296126432602845548904334401301406184622463959515030353969389762431728899022223245767361369101509410201063668185835582970269463176329281457706297095525677645787390105694553202512285949595976284843623026642667950219030690958771840866021239325315032921073807185817273968134300526168980257976904374306506240740053325185684372029963301939171100432501332207725258698607786389446526865530848251896324829682438316843766404060821901007085016439210137296762932238849569553717265917813135000054569380222431042566537572845564659975648336289260052812082699887635190545005062375836645170469575558372358050116873267229759844046768684313956002061374116805714072122749500926415663655291992901232407667426696823181199508565835252018088331993872315410635369377666616525272124692075524296634137194794723167413195635454363623956379710455280231377422415717747489158967904650880418938107872972425836646241732932479356368176771714427612692325083455966792757398820819590463135556498072730443175818646838387782742360951935003901052954783819436243792652335452070426485729159575752790670776021116175771824272381153292712953856716239565755625988919508629458681036568705506223371163608760937064168290250247739387166467650813607893820542951165407294919630434611598722602690284560766002277175016632755945386399746503181419646810054866022930675918744589267307579593709816397406995885332470229279004562791321751691750814198288761332637907612808841410543396000911501137217791876493426549053767640422923108809131116371309403627707422294930906165578865697944564422248923502994426608879891205906147699292314563102264896541912797090955851564431385077083170605613738585753915788080025304626916210125446748608778982309197592611614316605929524047568366063875796918418565221334665855733316245016484692320759045135735157997006057007096084951659317565385215531130236029755833927263019773475565588948052585763056351194474504379758353688007702088720173254616758633371961122329129563798678485065480111565280428482669486927382212363375313925566205910507073438451166772224679223688095323726508453084098712834445423726349210310849866489205175052975191496815327068660603452736133130015278834940660723813905928104019834434256179904829545221499998581198723083901094606959554124490219434698991906850517910133655534867686599069301660133946416612955566235259857819763744317490966546241833367626894691842823478229222689857221023713796897627877920241769423015460166330618479960849012375363816290152658489819821801323963284811681583681954825077628919697967480537358353111665940413544026644230871294314896382013970842444949763042379316619633877523667978664098926614636027489341600483370658068398580228168495306647959779824508270406021816129766676570662261439202491374378077790493294069197209850029644086553216862473937525541211148324142183671783858084067883201936471422530090722367051540501255651561153176916566793151823789276464936744049876861654815498782634685816650076881675093949748610651369087259969550527345994031399147747449197923159028867123819084240499993768016413723063995593248367449792717314500180901756940190304705780231589665241260103750241606328197208800947060480404555061187692908291134738352485004849615723054645565561613777573837522892842245426571206796085367384747245444936689034351496781220338596402350138712548556540976328918117955631169495741296348100558784481326440723107228414029449860516021237900484060605686779244523659555192842463148870957267450017641685287253863631689084314525502054004812836779925980793030358409252808951095507678808649449639113753703948447419122926405164386798701322174293022021632987201158807753152720467749107138609868218497903107326477643642459452953614677947165289077158442587240596585318948386564606424634633625255030913230406962900566403255478665894621116853001778448330379934775745915787742121543196811115876145675296675218045611936945513624801960796482525005863476119262591475504284279945677490344980440894973046236644989306491435923516353865730036969349387776492824536429866214923008590901499573168790301354648001910600244981265505557276307806285975137947573461065729836954958393225047549930488394919884388377413087387381237806782633208455890775558358542370326665632451015835695461606976119365204105987476867878279114573318036629716839706118772983216270883219936877263809004681097109112326357565373870156598663265000769002347739352847425277843336797011448160292675408969790789729126984920585585478672897983216350160936760019254931574560138586800887309196256990390360438641696725207112150924768078415927269056493175054771842774046106424864922549081677239527772051877161559035483607579667541029961959914419703441187750768630919466924701209668337820543872233301213470121499921567470091783607506381819433107815122103646328500756024341599061417503504191225276193096518347824452810370566503902524120704515784157242087672185508706937848805615392921688281700268349627919723789419273272046698253738234006407782744371846103445234251842855515261271087503638263832538685464268215934343258663417827753680467357490075796336229963883226275307755217052932258893334333576864717593157146261993577640438741116438426315748758231304551832774084161141880209193001777982403330975390918891215596862427821953692670091063697701275910645697967588288742298744015881829637692679606146820339491064899791394478560789307359773941474372792634988572755094400656142220076381201727535740398831343213345112845929869964794635316994230098272745470804871858155761932953273150691096909772766644202803840915099819319337614490149091082994987138151796540651926553613043402176013764049246114052548185756668552704746367730129811546709162871074843428301796518835785976839285662008639923051410650309398775046796169023521868257552541975981060016262148093383935812251544405761328087991670642252321819179473950909417366124622728748710653617500067970461914765715827582761325955643106500841354560157463110411966721813999031174233960162560322956469380810578695057361905051486363701725270961942966170611211430486123992051576681312601063100389584504516601749551024209200327883856402411369574500296421919547186708187859783451483863387676820629480477346622762536716781284886708886137662269345780325545457665720918245291533992303259761103287870864195909222501250673507513751923920894157629140255563483888959392341520122933915239182347413348749580999196634271853093522367174578619203323191313497213835188051289138358708333876672868177513181114298121965768699554703760521920869435662192460538591245954072182984091672309313933383551981851256060395481721453271579346798981231890792150433731779535481732027162501931433487328581038297525963960153841223411860897643363939912246566393317102991179044276180252495853997469809206468450542493964027759863294501508087479562810490767434188200342310923736175397438246080660615057620666208405036716569181617599521624864222958857925199237830433486176101741889617515947249202601677396938366802783154445076453000838581271823848598012748448588604126160500884574476326304478068532002611559488795505221419370508288323713043687367358113358360412411753810826060756629895590610578835668458333568999575667219124884466168767326584548730592708240359739337186948128355699610922456003922588396407648895058915323382044291422358658803351855454604299400227624940179635216378701606027747816414446772248211367383617838649600274992802052234786560744120162368655836119949966572349831351513185494824756645806600272827853845630379833112079749428256664301441858926611753462661577640786488291511938356010470365067492404021392099277986782286684365775503470443410785292867337177275926937416435695555858175093342429968178451010857663724089307992596920506132985947530608350999351927900082085123147919880752280449214321602913615257053171025055215742460630265586992791308747322252074105536534015448840391683428757755432058697153709104969596299248295425591417091318680170041696451123833347488586857243369649807152538062356197221692072900132516091440264003398047347545142925914692691086824184325478763665511368234500386071087598144670602385489399577814544698257502482156612004498625479949002812592758785710156503834513558365765397786090834124579504118137156892260074597438541976013412679863015634647716455525603092892544770862286729219270542682053923436202105788063101998762641482107193462802308837316668624428751601543052887787609718990462863404450804410922223894898486700258062952236908803974529826374821919766525216689162948361487787864867267277336184794161320637414454329104389892575435158518214725796456776805808278519772824298226109125369861217208967443276058640492250313729339477864480607598331445896317036175619140163189719949349100775421684151601133959569718129723953531071284210529834032275121576716769220890419742257768344845678223558097724819020554047099089045369745967278006635738282300150983009741493377940654241950468052303449045647342083798489960805129709008456248278313749908462169919243145997654986719879201628570771969814904683735569504381310088813967194850656140037751122551706457380172917578362846282496051896677155042274306849666326838136721678230945578263824920400209001386625962479271594841354134514129104523609052313604883378293957127862652032592492757099734579242965739581716272464902925227884931413140139750658173133074254227256210690823914558768124148528776087366699197218719276167318722725086694338051853036562510539068625197187070837733315124426975266895483785424247044832458705829552774307537862095983812133365918734335233086881899055250272435698745449517549514709387756369569683055869469662249986340261714886989210251267547775049172246538022332814430459779165919731745443824998177491344094053118333019218573578399108535511918453546000051438282126611187610494622582358289809912422165096838906518659317484644235041428852921298768711682658729020814419897512027392257095821197776809767297904684245588698882855314697092482460408723299219974636415954195097086089198617097523687024475892588220687056984029291959640232529876564161385016695100105986453793772709506704484224334563614651350902963204170886911452423881924937016213763143673535992724732768379744077413385763861667507095849781669393070449173047749517868823402693129423647294970966945770686378835616049549701370568450601035058625224109003947041036989484093933379816457294859012977924462911952286639777696161626375497179907256017655837284565307430952861765926084480230603936524870733674605485111792514167406680113715983773534918373705954741876009502394501909552750612820081545885758515079652150132863522135152039124090598645818471358075784052715953148608021806800221995487639758493507343397631420132224521710637453191693098220926745594780307025043670344502520810266557587205017004028766724988280011535071100375819895666575081001081297991099842892881995806972191253473932512407633119574820768622265857892747213708337481032144076648180160745242064282054386309652715421639498888848532877734057787233001532264659588686947524877784303712813877305304464112688970468550975222141849083596102793560692983321346184632919588114867284232355171855954141099498330142161892988739460350778292102490716943370407558846619710645610978900463896804073041396440001237802055472782369924265788465540879533550630604570863991356635549250170833679445526040664165617277477732312316390071560372673478041920317597455470253765604726849845654319903217619643518179094821481732511509406002383503106705963649476030685440309289755100307615674019293329792776182394406121187390118412485225714427699426399953554776875360399116184723109383808412340102481066353502228552647677833711265958620309227129352739340302146229406894206229633794860239711339055249553756950139536054369168645960705685455564447876700734014967947404165952484752454662400669512638704742186161704632098148022889423604182903938302311035573081121939707629934152431245912099521782478772151380892836720423854530965772277863984480916806476657539776512813111901003405646593730008991732454301228717263358264674825795732796084008821803935428681442696871158044564301736183589051632990982519627785100026700437792373938169727683738864594036614435360524886691855105191086901438528083560963348184043155876886488437444264960639241887800118119991474699643750974738572080836105318891965334165342309158876563823283861691152256835001949442771481886801356757248462452317659360828957213905064039577497657560479237089273738461987145056215557753757397788122290783153761273638167104762046407117205634047284163730443957357410935357296804241101299785362918801862585685328233459378032286755750442115852161624890514540595751059502745498382948874627129849044408720684357039903629580925091646444838726680930063389231373747459121103487985180350195235864892580717052623557355525306859120217429502989728092175287387605390891255281926558774693929471723325179385467701760385390820652351987874667112275828674190826449244309894429209917744380602109619308335827718190362569285530641706410119454084595624602725464988778758804549703033021998210503655026593808627315423367850724826732511404291228775663903122542842397439484097704088362337680455454266439840466395357846075006243398766949491275867438963760881692897830875305848394307196077778495208909221791743159446694446196829748623104198396231076481039665157216053470472462105900948096461989292855875923688181160461271779021054875608183487886851204547211767140171638219361880597411399577441628192024525682137119396487668391132886740850423943661795721819887634646336776399086935846459464957718003774179808481551260937548293019826229545727488964021704550522908131908462459630944361177262464305931425322750970963480037143480443898185648191601258268288705937670235072809617300572798078746267810039933713397824096895034172934350934853864641262966503090220732094733756845775462972381791439782280879774861199789429819723056525173605758854270150166988919839514507877467753270772680527774051148258939741271382823851917104761123871400388157657619355890290396220838285655054803533635040083633673926837637184935061841590419668262080320810195649858902440536980890068469319659688020185000682429461222776479690325042102667725158005769838857240005596311696557808542146606096042609886797905648199368026165033249823976897123801827345481633657176089277650147708515823776901738769429018516053226044279993285345255931661428750459690681594966664630482139895955216448516181120066682465090984000154568512118027247509438559516954479884256297036373309990536544050902865432346784594178857043984343705916806999787839063896836934970687641620391809407815634866195137163008655653157160090928651596657917908704309706369951775107880246555389336240891426542954059575602834375415924753780008473245972393576954212947261391506903251362346035347249388905373053727272981607308291225986673727298247971223094984876833556556366575968977367459421699445542623644289763739057656001623133791474103170708362653670966994735916531167465032087687875276545599831936232542940925757014211610302566769238491271811293916358810299711518080787564082826344242861826363397583680248217275881733879364682011056526250709330207976271659004778371224781819297832548838180059865962375632364918842077326812524615682262939834528913316495221077182122607191929734073247236299799656899611940321268766363281322325452063224570887094918068286359642016414595816876968278139626044299149706925832501264388010238978256877724684869533680287393642789586128542366108915008976643270908573197259801767322932554410051075197144373455503016496417849849716422858305315635126621401077441856302940228247809881255054344286786978350900103374853450025275952163210084644188615726462382596889366298861004145792138093582489058426517442778092147295983847373777960220350414622305281938084820583178040357537810535520658460913123501338743408112390372242713261128934434015474387264068459073236804647136758306130011866709905848401218515357416576543758863826754195174399301915899242029553027891765481211916115482018710335329133183962327609817197677860912720502180022544497123978672789519927660937261657496308086715598478410925854368385172245833652079537948187433631738284116280386504978495549100459280315483169978427265191816899753600509769499656893036037410636777104670701467082760845105951402946107538848184254109504002078684227041725311023229543889678073744341778956264086860815706683824148344997070455228874244853627513070005393804472097028626333993359944932232872452052044685522900258234541907773849365020493306400253560602401758071496717200068726053483233564075349787901373022276516889807663364600230585749973412560166223492820009956107664300158604004178786837484951963120233212158682996187359783438422172144809313029619090385257924065612415543738204930967318508147089752454422567949556747636739193681210921553769612769024442317076881650793146571223740289117750002952761829606102183059293233878850058890230140265108422859277653226050022825507476903476436885484384131410832135436265655236417801754699382989149584228934601816769119371914160326497636162655840084649638698419599681543183825150736024985358181689844342767751418887565582409177511375874497481428739944997438669767083210621974917564957763529185291584525303518324622187223903676942721383979229363585394969634994539218912506727609623811553255879688813504336732382296339019809692112869549871636291194063904027818619615398686469880342624696179602958159184844877288947875971405350954904895558646651064772944781850208138003425698055048544247257233411843578054349599715885611789542510717406932922281222605234338821702654041371287277537957597227793634027870261868436665856162025464948478714964597181002728268904033629675864413872201001377687816531603086925324431849025656683362335231273428755673014665769901351000822252330863852767910881205633810249342721251258507459632315728028473207482088524014868594438157399473663454514901103425776018908047208401558249300334210395954109208990080648567627932325299330082952785174007535866638348812771575208189602402088337317280572067473356750726761497727361910892237556803961885595176439888377171697969997301891982810213085639048828032655754512257360639791928684312112304127743008916319738391940716220260553433949898920197140119725250009309901499582913429774579667593828464155442534534129998999242763616624925751273173117377643390359499590135356820452019538250178210515711307827503748303067166685123179588601972694607589759506307174737693939732171505265136167398063071395642148902738401981290967529883052312979360801357270590986527875098007630149775796633695766109200712581599500330896386059970126938142122998296036094973046742710862706997979596955070379274370306499417782347948677038200459089658878254944086559490485008735944132881092701736885507937419570000788892911783438726754340290999461653029613454045767377643967276955791610945099011675683212536399327080461486907953438648051141278932646956637501472797185506050241625678446933199893100072998939628320323393309893802941007318203373700884394727191577105955414507329168754289049360601946087429605068340404495982185408838450954135645566070183426775950668359624319409212177455854433461015898523527642305328878808925611076700729174759400476571332054137929290284597830429810693370670476825579966887310144780157091327981576893292349007980577203227987946441082232603276074802579381264715841335418668771613595210249847227924636447477912770605129822913223852692319776930178912613199784793453928572726775694392367672288477249952211460332345231075200478263979190213082617288325529965935381082871869092838287615585158376266526416551080452054362162234279167735804597762460003960965713672336861535222182159598059705069810338701249820733233413078453712811578987625147113314544123442472544602823955497055794962521271263481699224655760505017791634215980674974295741046505465073508779468637770128454155333540740138025985018117517938623265738565417811766593667951205945682257176628411959059798656928013976116202719743738541225533863254379011109924220216665656200066941850523007103460585155082138307599194515125119118376610657813985929902911563982850835626661824279543751209412892329334266841474014392667930975711045085058740986167659276614653857818977030920479698744116152842078229162693095182573166764824747291599223525334371707380807461570412863940654822262020744653901947546840139988516679010789975948428555170016731962311361027985878173029488173657701359980580736010051297227362342638955314485135880126622050680973131049658673308105541533732697348218309801705711123595267899290435347464240077229260832494736658938193673713479000286371251628809983918737457969447013645216367398834796445183415764140530245702770596859222375124686288918209066321900159941725386984111087656249348322856729089815325593753350717697235181374000377138634195137077314248651075528646638045751898190666025947026272357264480181990087061093509308224222789107411916481440048436944696869739299646107061386861940011265996079571558300822925694795275628251176937423255450046232490827866319595123300368392223054074600274580712120163059397727242320387694819720659003977523440893337178081276771861210713611629963627004518753349307177500563424134445964748169043488319427830961319129159684082156410914904724485966851816677674144414087363349018482498476345904507574064923599722710359759258605868931370897074612141588261631757821337585361368580984506805327805133472648471189022002683841949982759433008515265393425161153314914920027720946060028807958224803148738989446801983965131846139219104967926898658197120350265027028550625008547918862489232446268907078546464886116926465975280213420331700259973938608349994537941092574171458137926742256904655392861250888293719842907956707384062069861155228867315036934591975570619551282547482628111276282884536957152781283268227891205399141277315480078160875614540634763864243599609963835559622476537228037604734011364697323823571356695193096647859795721539053592026450242883432637513310309001833774586346477100271906569474999287443555854321199411865391138248269981191295399311671650687735778129154962322039958496032095373221832834091998679284701318412208078562929869208964203574102686184155066013165424605880705088772422860055584218926176978753445304468984417974596316322484268000267780979986957944477310811357565697541116624141665667291672113807918601333434920572514211294594001087932688179397269787164027584988545419250914947312398231120140930029277067985361257816957176559293677013876942747377070203380225901688345631597859030106120175587001299329066502608890868555791366287970885647831161277179331623139215142941833595567208864409258858875074042476250937095398622999316406699427069301039424233883468716011040665910183011348918050884831795278135945834107255782506400088507222266221824015528285716619895122664610355110697258887635576409387478420965216767231780473433333533447742709849532067651393574300379896689270803857520268678870764450239393549892126687897348163388459808747635352294335537562425432207398667743252344688005230234961445423467435508840207724043252016792895757736404710584171436573808408165117602156374092814313790939725723960562982734389001533865103822780905786725349302175410369418105797181923353546653275355141477641659562566878147042531689523617885546754981379399348985867886105100522647557538001508017851520316181804568186602895671830673542952986850584268041017319472004538895315486195122311390873908512747291398276778927187226320371683948233155726543329429431051149016103363815807556439367065343756779175685363949936992120739781942034439678612721116827871770403314724098122849903260323835081880194919522596430652222291625789203994696475698335305841212121842783961303482310665996646412421110181273191577633843344646658685452153111324290021485959232068933230904239549131730394880260011847525082696224866112520974804473938907990107654843360249859675639072177630856307190290156110118309377523436182592312967779645886539556453437846432986279443487022481795417791124032932920757879341403329183933445999817457531668159621857909841697272108602330274397779681720553564697276043083948818432016559542110201010013063595678436059487380318587739811205942510802980077286397706045131385311438827244122120052861932237662045515322105316771540267202264343318975805745790144275066480062183370242986810754254686830187537789211747251272898971613077375810333079083430993214668182623210709282898157809066246030762910711996801070374738332919936048765154427708907417559328790881605835532671095064934309769160259497422353075796613376589554229321075588410674861551853167360703795651589346827936436390308934143867481882500229456216266092883750091218401576787175797271605919067048791884348632125501952203376611467532320166903314865339211218142897764881292446956886343434298599629335291325400707128065922264733567035128739845191865182291820382353505948179151567194456473242780072244665729975869090179010692581500678466037025640823597247445510437474052070448991215895506101766835183227900972893404490446866778657030569020603596189577376659529920769389329722325786824659654957032043347527844796855432367518025757639608833548390868809622111579016398786346170894738525809642144255139642749859626831170830906792458671299085058577413844914127502973142433501305346312447602136617256908162077988962033288762018097968059978813581718905671642780575536961588510964765940649875796787661944852324307935457514813645233674275765797340692051915631194811987367494885044670594089893924622013756341523332246509005246373035897447724289471410111582141421529359102949285589810118164090928504824410665287838548988287047719614171239842404529608775386333344136506401495641980318391300020999419103016321338942825893668396866681003306212551069926274087626053801856297664471260282439348943716036687685711407740064053932279304932665754033672320760296924806797694380198288687720829131644606498023358702816688475466686680244917785438154595103931029093694981865179348823634052073199583978154650848242394454923056571392298695914052800222001246888240680218157787113034641853563985785614131584277504834835619929270182154350871470657486475565340952475437547706172746130475645751027781466150525127135603095070528804378602270406580484640236941899736848644611464660364526654137460356237929697593280284553747335451406086788203041263245676235899077198703628015877239256125273238982142082028411731833152900304779282434451928519126765019718758574130309722214600486509407841601553901871638864479907797622098104294746971810290518356158748045728521059324442311241796511458925166793708822875607371797295885209862891000637763305532182959181305702384458950078411953729473000233860574250396207696250691501307766394677520479442239703824856107417050855769469315787489763336813680709122825009183591481489966549473101829810159224766411210933994444296928142696593739208342256211427349937486960756745816307293815204188162129766150393929299588543915757153617576702290591539019404128527043761637654133692419484922570030011976781152868447302279353773373998247286245354615578844687332321634629992073357752983540768033588260703085759258261974534377933449248415514147420679674984520409414564800066269118324704958876825608289445032770942430225077005943409189009077584146979245831022613065607704502995647547312022937371523777048223830821151843944992941155919229731237021080262884781028027184129633479723654662402696821757560777000580515704282539853231757452904527621763210578731945412191007287279118321198892340750143063370100397317476703135923779943084123501855244056973203280458750175155289871834103672917595746579454440847960773905357609131041538282129769337704014474655207485726925082893271161775800177395226961101897695924095355990455574628313819738933060499753693281200241383302079017593899456554005413752943721936476721544659127779003449646089064671437070721253033376590970679680564259729023783268406287225554316252030467497858914644159046007391229009239805458201309203891415398251400632390768042071398173999552225455852150837485500317706489920494568332733645856096789805225828001341124794517698286168838151285935184332614583506561446947335283157108620115585608897434743084962392118830709036639613215439594947488036975830526620662961014381565215986598457645304161858955246352880247641712716899865930235721519678027893678258587844693922862440941902088638483302819973530954025293656014170564033496871752229319290281255732629234804932705992298597946021795561801481425000843869822840891079958468936460369080284834292006485076628582412060151789000476583776636773690846185795802013507619194526264379373260397387970672392819092129435608391696632278330623128493245305595895342892720415542122277854489671540287921309207823641800928825044601170639990048765305819892093289939646450114178572083270584232641216564550229460821824107548867373144366356429392025930490038018930836463118166781289781847601682287044389806484570396257799876339805307916170769161027476924462311764833850976503952071922892414024403731113110027452442299864052297578759433836064340618437304238602587648134115889558402760558658169318562900369251479983008593442517877176824023576643860010237707273577512891555078538855174515568578249766434902554614764379978134253761417389938475060848846946536866371418940736307557961839579291131138076025755821943308223974361194312789427549973523611706458825628807766841559872185833666673400929234177751689776541377533240322584549075637334752752493037995330865809195674276926945581715584940091878577893495187567033258040859317054604387166578656096184086941553609602958971039090444158738958357708812017128868027600296366667096458022216793754191267882066655837875992780328944557934394553257701776897371470942033074145805313904158445127520169422994329842969705922355300646648061501393099803290071305596786322284284363608586440227815520231909850641053953977068224337845430723204694057672106018932143576655706704125352980544044621565351482320690493537054671391116942819271817797675616188245555431002074793640402709025944160593632270895596612107102396766512520595556991609641572892340805693187237367444921315997400330650763448428126873896454149995055613528528543385346529263751550995456945572470960211117352088778898215929875759505567911272505519659844648083062259201904718767871264943527289500690204895499955607085817134247037819290971471538618026766300158684822577238797372355574245096979496311329915967333447459223630732504168608834517228569383891668313352876691298799143076112623777670200558313262403698158879429489485297810704445650351044710362608452603950496026122923428123048173367065294092095962264186873104797666952264147280408164974416354086832028813340907321684154055702065023427921289464707200633830700761459358149886713289345223997484183151882219923509271514706405965476047793045534256714136663472531164982951351723895572126974193359822013771614159496152789390097649117442175104285920150531659325376389221503083978841263409235919766132273940710174163022393346864731487981363311366914290302162096803825366724760180897224281411108785638652250374861260297039455420121809483159305106091603989561115645579224971710456329324916763982152714705931015039732982302812109105562686491633589213716176982007779024324830553781772192576249219251450341340476873376167490308094506233267751989017798709870904475006962455805831201788634760927995202366385038702595486564256830363764800940758640525959961141416327002432116608321898747502281315235223890068813451993012638704666163580798551409298349964442236766507119369494923492871688060815167214708361422555326758173731144046521033643472304991126722815531720342464415539153450826393376023011683634250357069138640400938242201628911575424730259119896798123323964856944937993233993027611011394947505905449372594264052872472468344471099888682165220248526805919784890986296560237617317516366882864190929053120956317255060486512002776042970395769995003743704210689239817399022679901831192549546912437410648417380170964784626590195104003704935072754100167984327944974674078693109819955237796514512255781338638121860891295311976824065008011598795712976990707146358308601073727666618700817401488097346265825598647577527684879980742019424860648465705113706106089694773778018834424746817618189218627186938450866451146303180011907665870915811235228463454980329660518000397125192863910970553241100666381483553519209974243310094361801018010485910387399366114404475120608649336790950505556345469692481044165760572146517079459743666594656662295698559817904359610442557634784994711868396192455460721749466719155655539637166737286708742372470885256763929272634554627605614466430837530315865087084205821606089509516801482219604715772336836637900992059682687564598309784536390206834013128421817050071859255265489561767903749030374246324777543044718765224338348137663576167692216580020583695014937684345276567155584778921465519730978608771049783648763750628257376175358584376532361121805078302843844457058147221290074470146335524340362364332273422535588986198858691843820961478835422623124504592584471633765808979402528038561979473167741114275978733829813379746246988605993508994279859082809502076084988396322508434513823503176818745743021072612413922320000856950148980074904453869984861668494185959439294562499345934755401166202815606987726833169400871535514705147601182799759670169433166455308451139714176018370095438530544948354079004974563995220819067900747007662992089444829500247090298674441291226712762729491218474087212637487010273748460727187311228782930125216917999161359983999998482144148658749893948350455623325342781465073501467126354693072464536388164191278005438564551049841515816857155927711661557166816963180547173942689567103980507227952101567846149818532424441732246632262843316692917120808696487601276765084661825957615396643570789147159071013760298313799351018983419555233179073188356092692507420587753633552080303292792773670497837939318500456555243218225575673349387875969356301114455968103199503763755290140180613695736597159495957504392481698376712571708235681690165600020193173351539756478793780394046783719836555710049504164013301016271201441090901222105348860549676694023129249463080233565070511624753648737102078654498797217534024159603846975348263207522106951817612549361508722330237648229369221810068457601407447530948155746344641917379629896424821638378676286130673317648014210466823486776932155955490014288012907092664148799866664061717700715928392489703339060918595861301787954907269552674179362435823895879526032751830263099663389863123142099318781547678807541594412128611295081333494170296427482426776090823518848873465779189631346283491932252794104687948461505712320515657261413462917539831123098177521571633497479675637308167041203031157214796155083165727511232854244207393391689671509322237517257788891753632470014496693849058578822638581307239462898384529922252757299109302429855122096798569576650831975166977332804883517415976336643053167361272383319017657957471035194358897012698807819715306067139213029061229993387287832248588660252625671626715451807920582385655639373164421464474530252926609678632546717939628100920308984961655712027788659875419721057389699998156229832803734883071346225373259115158382700564964332295297536930146488823527788690783288464481645631521105116707537940752604671992146748043138520981726966410492748025094260610082357732782745159310744207217766055955371550380147549576187404263604129418883080328008073507334956548778309389267866795608630347129170209728147256664183757324442181594737727797272874817925656464495635252362633240081807624477905518739167874273382445550201749490371622718636794627315885589182389269101768673392960040284944408762796717616514443968753784323876579054085661734675199120379225845186702502171769781532441642337958224705384647174840434186817319101079718218314709255825651489897059944055025094174133405147172984782548678862541051904750587097672694427054446298387869952562245528029087124484247233180379287637946860257283786053479079098112772769691289742631394638539850387900457247919116971253196928764571933407138145173037023714111675402109352452467203242695154137254351288783372628999024660030386823149601006033230491855083220976617368281610705148434246653593018363995048249791029763777245482866700208235945332019004810793791012864054196132306392520402108909668214717396788841027462018189612562142905243919390660816404709132998596648395264933230057432685975036403564455498384364574538667301713867739701903102011959248500629306893940167382670148746183268706991261176068367647454268607212944173727143931715256492268325791232933774475424789331669847789226833352385486291604553576672406470991672070626199020296307220463405405758514358533869982195606655534682857937980779402738602089822411668200145203386805003586246324082296295366239240663616682762954949564069226323538353884378245179490765704748153723716462297407789019667046844712905161020826040656015323638169688546174933881885870754755091838546741457722988081635956799858974399387501784496316216664470905037108841866619137746380578864258672427915695527906375977661135189913685064375777945669166883034572350544636191069913290763253728154766859970409803400888049218589969040542830511644270012625240536813977859496927573258818366892313066870977191200991547314857147259175748444426341682413051301553873640953152785206789914902024180403208985198890359079329314432541432608826416829667279375107598538898699682047890443765791566454613349441480072535696354198750339345447827565605797355531597799671773004364223942552455585157536115535035686806580889302872125111575931867946434577709039404678605586444796781808367270937046764190477823988214765585802705171208092188809506007173065914807539196031935413997761969958939373306157046219673328459527034128723563041829680552030775813332202699383696872605933714332029302280794249354948422995910357310010541075418572676190662978345760802725901880607418684125793481103552744215008049223913894537775097130297801134716754338404787592089691156147386215869393687487262980491605214276805565847829016942623566998302205042552926969177016809363720999878577156414289678383540811714923066257876202364600175088128807195070561291464697063989994734349870328581425486085918560707328333467234118603064686864587164537943563533278391312610828520461907807396721128653220963870425997133861046685823829861718185593178543486262299667396713014693678984541182718299859035326580263832707380778045246149032213697126796165902612924436925185281184929373687976607401555315876955384357789472713662702336460499066886976167209396247038685637445232737996533996035273675207081972564992231912702175535656726573058316871468882064846965638749917434531037204202648411528546201000870582463412827643053743421070304078606006363634228129018129994232771082939776273191023846189638121370359604995618013858136413496782485141636077410841368246848201076535211654262752445206900381463806990598446255647334994090625785662049851908799368891721291884218526529824920387294448389842132373777789343651081172134411374054711325153816310757551066441071391434188796434608800534949927229201511235005946895935428607520979907723245188193904407998263848603194444282305064829983944901549092462920374662705095998326579015953452086894643305325967328375300372294551268014187910154076204571286728880279893479404021129676194098858812662662167996764091431813856720580950794012698781147372050475384750318765902876370387011165612267515754102767886198321900514229610237240086685219286638108916641808879981710927226749907393158352240816237741257841685414276182240997334862350877068631536744620564347118097737437031176896138116092369947084968189017599781326231610534449286070053673794475085755327558264930000930958596958700878717907474197604654922782074788743929613631566780219471684122485712685171328664783049765158806583054436266118361486659149957364359569583051916023044563614866664245739970838080480048025132821551819063771077798508559895229352171766636558903084310932503815546139424421272084093600227659298058935789988850568240963558295629627730117148912298920148518791811916448292437963277431945947962958295774425643399415705090684530226100043230620470623298403615196248498126780457576644393210601849794514167455164806064128989456644268161219099570402595913670244649862251386280462262155959271136952766811117754534032667699153123292879044326417760402960665577987151793079797248352637136346941168412371175353121383071561300903486646303181123830153692875213656377471788261594234844780789896639992144031180255133354519241932497051228565632041269374427995039446563392716215871390885694182588402554247210800847415777121890964194557685738152591939326699275340725118004419927313740814595839464442936091022121802443898216082231254149761776675951795053625759786645571494157998891508253085941120602200446798323696105586760717125751247499361273517399867227401791164902413919520031315146682284068960974800852093620373145917856875066074256125136472315930382477701515333664688094996061649570139977967029705050485178563602135870418639065197445710417838403619052886521137463321467057909788474520811595994165660282536168505079724264156109993849942151759829668180140962542500410021061890229074553812567837222618292493854469322652206651848585890298095830327499073603102621030730074451919306766215125529460684760516390625607533347421331351126760979237274177746402533913006269249672118153282947091778889936532707541401027839829435849948177212412477117685233225634703857215266933265856893340910125939478429907965620297475416859150511528708557798545699135942032056353833989087603874288332918616948261715768544238728125578027592068948141066558015377698206842793477609199621824989962477393436244382570150057875304109066177345723327800692042871998747091614739334816156216994893129357682619849444834365699043022854863128362225007219268350950875230710064304452065489104109449374992877303679768644410719686579323144026874338820655197202904282755619197853636208996024389872483043193100647321358360994075604477885546842226735985386086897821710689653838800768901592895439597479441359121954469983174079638112262283102704812257018360056881243844820011892919258604813277486757572252873514503380201657625179263309642636870740998030058018005117906356819288156883993023217654511124424520633475479485057392172013937917456472075833088430326769155681125574177097722201194482681401128831332673388892761628779671605710477297158756931998108370508026093711962552682091686976110021231057656064712202981305361569030993338550385628115786818965994158416839732914850743184827185026310816644630470044234020590895939740966804069789493276786121883675263590452877601762857100611451558188859014340685121246912523883497050812447073321102009943996455385129122964361017117589445856843812597163158993219515247423297067164772970720988512341486738220658125388445639454706579761406128359179067345285956873663753989933343706475940169181059930973015711895351969146530411299160980310532539318818524195309223827214212580517183661609770279591054931204915892842661317129667151772193043141840384189193668145793907487197045493547980870357052987189055277804349172514046433374622280834437334942380713384606702004184510231167233425335158625348929413248324357090822445500219152972765155276262000825337477467944245962597699116293435992165526807661781656048036705104989320601628030417405907551730613949171670127998397522452642112837809283933941121794964670057906415739962004656615912578568751049677749120642921991934379092956576079438259711204984699645325789075373214595813329875089202369732220616764996739108487959523974634217020064802063752600820054348019720843252433229012797603682090474953707760904477819986870221409477090872418177218550984448662199210715741319242914319628183718227030061327242992844401788706753140675697587759358157140886641953710264829912365551339909402815430156639907062071645498252328607290965812773942345345735134933025161425246823483777158989457629397164001753349538099722279762837902620856519646198423130541858830947087022635674184511637975741967924503727691587577098031792612334675110307959157745663489763979531594440183794221383070983677613148533711877769638581529768157480629041081802448217548526829913973842971768239911239624837620928142409345626112446566289841981696567547499949259772568312987686664879850839130593789431592289481410271656172385353301337909519043528615297202492675636351880270769685884416960764109474648643961063340793566703158276638522862003804475359929011689290734642066755659992961633520722625934287331840587568286575718525480162915718435280083716839555338299288370414011806874208812247618571614718828393097343061396562989225220501007742843892896612276723857180041313007361305847048527064362038187155990749357043644844122715576872999034273119644900794710054041275172605188605472791893566060689528209067433841574133767592478532786577215884243404986667530731723697978876388891500810087923819917958418940628322510312071657240805836610236358243343218836593616115761984875135199437384053543894525887825126543449804325873594962329949275568576438721378032714989309166100182138898233314726027027849437672822411329059193949761618166561505806746696121883043263240138428745398197793549164583658162866503161049378872423686039090868794689839218895883829651884745576443544276858062846200188449387612541438357509481113827699459819906675788730649110491302169588237193214160297873241700179436354233967006768192117948706644380784187172750281658965972347543414384687641957783024978575988730304415465390078216477687284706074172828801314451972251263855165799436569801593361530443806923825880575396520711830010335723288433103982708183574991772835285601949786500952107471739794131396721274416843790373322106437188797137603262757156123954647464817701494188563193992453359352307319697234513585432959830182958097037909215561971842177276789335908101571015529127762225908014979504267529128462648085269562429882106349552693398728368941430645576626774283043234394004533594876406508253783547396204960397131292933839958998834408998781781712935774595351612189922050914383188126135511580793941369513994071383843602080068898233217913553758127517900845265943658289720998638273707973370161115655274156265422363297670574826128143549902654317538675042309871671603323207288161665927776125916455456091356434166617531473782756947198500325901786404853026231932392781709360561474881383334315101543544140690614897903279052380371196276940461114612805146764304773830311225433946928077678413030922719141050015063026133625789306564432642222846444577612660339283616176456309322625839593724106005527737329010027437464929770697095719645432603149520567571908274506764735103390348871456786819555243923894133246452638643482988564559703033375455255249344547093450307697375319521110839672567800767133541285025145787073746565317827284487515531120285401636008595607433098012972695041850282549454072529263135894737179160983280364396995752440490675746184805152338746770357387931948922603559092688239049704431681445810046272406941288293542897449334184511382946617780544697319215123734997438452144421374988088733391661422188634284745057035570394771965236763926053272586473331799268661047508544117978767072412173964578204662649306393233232799261344084677581429006284821244981211411135251838020832800120520504184106865227386514523338679978813737213729836179519090604543029367341178050125895919430425901997747119909932295375349432138492046441776550940991133508856749613879135641920525760294306871079183585270579494012757516216000851759118835370923221730824914272647291805739603558914636400581447718275441265497532235608370440251653091104337725547170651002158815013148302404480941540862619171459126034430265287220663663420572308552529415945878646115675607039213894532969781033675183951879896413329185577929364769249673442002118187780001790690415962018616071758563369586219798769218014929422294045356935779117189753343951478000583304057284316196799058056463469335035973760131650558779311914463223103443194615196962054742280518856478212736822898805066534306266920429231441032873787662010781719435609946655407941239690154949888842021299602486386474376922830062877129667515119302936794285496360642965698148882232661693969563114396630837977325391504974123354527836030378095257867749982575449020169829922913267389779409990343113507778691978945272587264093322875979588542727571991760163848271578551993222619656612873280079772543503635153464653479476033966196491871498990407200000426297672740278017043180153070276129551870188194100646034268868670607894961952770484045580180182209708128249699204473839878773183194659323822524137810067785578770280828828716413062632836506787093624736851753692858843439188390055887095111469878384962923809410640882812770913360653488280179048889818420337876950081585504579078615167495204816310290147905332660642404118104225496194839363313181193530399061770365576717786407186685765634025330083442635659442399531741097318192345759417300381267053043852968633359005550287625961412589607791250156553517151246322887656366025930544201668096924874304392507305459343160031546856056855743508567619771746728481784205014887510955614466087158493148272034597035663574899884773630488536619646890324785045178956460756881584694722628053291950469344303712716094658897414049585936882564416039478999574994385470733225931386510224750374133045547966686956700932792849872505816166880623916311945768123100361510236618269264231627269035573185061306376703424946105536902892425957395406255441995506606348740990784553269500764620024349589989697884698367914954308588589539227190594012150679909102803126540634414677198074402432682025718744761512184279836427894943627912037997808590947067433264785537759151500725763946798128762616663908500040430539665557363078234980397805786380851132320016981260126984527987344078972385120591917034718958151792513927599395257269261609097802242891324772378971646138567019340336331044440453586628544173756716897607633423411187998844877721038159500367441942948988476232694513274403341460368830531002894436741472881058192210411450631890366722237200589132464964577914365368371522928827622500358185769641509811143441078490199011453786233835837064266585856028607999628752706583360440716075017217083637285430400001180234445038267515601213576487212279210153832163350142513442895749869398923587732055068380309807148682130556800178381347330556489910188904810465661555841855900215894729181596080155328899859679139203072320072802170015756380083865458641084909325776676211806236639637434533873554218233203463551334255194030210435090162615376100349161218651220788334855055487867288097281324783147917985628452164003566790028775114327365754365733559825365926842094452164461777006304117880790095203789204846296630529405510600857605109954200907625665704698617979765790707668234348701425492082027984733908661184700166626895808962145117869430711415169454280383171931795575606552995173014565089648641000258340694081945946539234431867115772301890185112457157540059797672487986249813882158952983193246564436366992929924353889253429004627066067603048491497847634217483748972878833586818965170231621074596424011664552625077338786374102488230897321725206163993908657980076545605471021650399535396574802682468292241196065210926466998459010817612567358781829630331747280021157708295772865704841813355121934140842775743697517364156876208473676369456713754009013370001815553262855744973802401041023973738996649176429374331998786478181857756000982205091946640692764593238407096347143152053808670090463617308295413857067625136169258446869989198976149818153290350296155662969459544741478290842651467212247127185413644280897770726906644147165734923248493909538839382052563929933592207864960866323037492917647076902017065390098275555051091507358486952376744691008569349654992057107677068847554159255432309293498033432573302889919109043406572176559162939357415647189662384754473687038280418489119814341111224637220981301078124798190045273451730583845611016483588515609526340940389869638936519926589069004009100640628620086663941367860625522291026528821443456923890993126229434733772789428589613959923665572958160797627949322873806769400725167786714354819658126464987252832525291106435558587158625929634973762961396220127870799026274699442559287742573424416280615035674519243720745487024045143413517718194959466222548805371381876221900259344256914842342216733897040804826832636314015029083959927840847595860242792453880691176474964349003790171865692902451115202007185911500334283828017388300419664869095951748537297320909102926957788291606229222629695919168578797064382806387156298498821154071425438807942007835297987009901743461849626885165076489929885130160357898208775684767439451502532979299853664589593418495539932932068767742601328742623651157219396884212551293827708614135329628948535780244532780890573451422134299800450850906151783724307163418492702073608681499668504317131277024842026149886898103784051237183126681094307236091553654327229732368790486500943170044091388510083479102168008657214695221897329483277021758406695458476799431545391414082306693868684353502565455582347131001397206725543072017984489682094769405645261674243255684825350116101261960956041366098788016225574182971472288407995389213774600345132406614622642603358607549094181664461446335354697687503968185554859159345324273802067109518603584960569194781481685746152503051614367959597360960698739930391879937316572627081195847637012679342341650900881043278036030350723727593398784395838325305278974078471374218758472156999151167658974670871133906978052908302481011712817464648847481387171471780326744847099548373604273275675711481454310451253139677828662444657585257411999372591435662646004017124743036121850217772865111593197850303233038835605817793876227646234340894037531618573484652381810010221061548624060594477226148502251069534246285894528275735093562507677259584946874816037323013653499838275840415282090162695453986778678055933672602659731013375346873432647965572678941009548275704261969683005103641653634971881965675775843785759111519472052262588793260787188920696537513328337675000280118016564429849222716282656325258409924942933045036860561284614934550356860143544701550078414133873814226490803704386822078677272752758543481292710597642026589136966274712321570264891464932183599918604785795956050229906904527362489800701539194485747841987083277395717808105307157795339813557244209419259525080340995923570401429485857803609887166147736505388935489699762711167788098683394162773230962980761560392670978861902794250123160978578387931702788100230327351059702762326816553261920296236062864227403824564884339819908614046911586554542926117760067347895359882429199670989226864266883938064879939644927321405438036315662019121467942519844296076309704930730412221487890724039729180857484168670163172410767538123697239760635253340614015557629850053114105016849654305909105504719393274952809563619532654082265554168277036397280139495840984154367650798449798655993086355340169362870833301405138885058807204789348321028821431341116160736294100646844854981199578694405735811123262497959970830323675124780980801303074641885193012872621626316387447876414038517823545726339565731232668070914449218801775313500915333869876123606938058499385797482983963492628984928154741045391651700415274186432822630426545567417725787816051078944660634980529979946282691824297301044213019292458516483019034296758810979520420579283222296145660745463533542156812000314434270947933711043036657653353462798551265586575297975063798372871494239152773348146439448505569996537296682292793119312131073140757281883624035319663834835720305209318862017311483963023382749947073762580384164614702542665634803913163157352854386777043493273990232351069985272125094060652302578653686794028881843283453220489045066119034716788130500546475166032832887535844351205082821876440394287284999389628004963323900174951734383035416538413207830378005165109301741111210464342176528284006517238831906978409716094158028841917556549348646259786647273973812482148943533054486132897190474266946216137254869745662981541516956364410866540739171809991418575388938152880978066214015331839673154120603990136756667616941657740559961721809753690458282742981580097012250623330110456237614482579337029452150721995152941175172848083503842413427358433052125441565421491582478801954907783890522947949315400088272330501907218583987042820264480919189116277150786512877074978138624659526244453218365444567473115799369791463987679827604876561295302553776383247547400525191836394670927087765839440463484642332099348858364295497691047850965801166288725018255265882366719506759886801584186722554800268516051154699720918937933636507599407868011737156242101263056295113077355498856272495984525003686814901100084383076875732487358536762876634725810246496894187416557444383609093857832197721416548040394479745263850612347209271929096653308148953681418393534302053499590147246767502910948809901997918622006290151198993674147460635256167245519277935925306600907331505809252694751691483505837795055090216957194051787811298855645300145567856430843984464907914875109410265297866356596594318633723165335355214918834836940314142348603691430102972913714792802694168281150880851129801087324050216931816024428177326802297583381522931331527368290544799881392172259557365510934583007098220810812302672907363917390119359783535618485727744914314586756315959430643621850017608130421904035808797563894124391677395603548634739797244546584570744141444667169788301468406300494137149023255246642430493397495573089029327268181164508753896220111693632154520750241282226351748134779119399992076942902337001847807526461241350127680687265426911609183084806206136860756091783398120019732246955204488976318636937836908593185912170313369943906824549406122871836031720747935482466934344473252816921304955207670717155272025748729005931289387840031487362348255587916129787459997396176804177918467677822425602728925532899961523059217993639490123339306024523514732418381807072219228441873373877800923277190032727831349629883201618834909017803866761428693122634885751063399327991966251602814105429137787222774651260231920351988636681236616718154309102255159161574028134080017274672110171924797279167504699695389137768050387750895852801025576413117854871308378767494876082744601592519223951139123735659808764384849226911955847484420451130629229041500641391923835946196824510450047670228483098378863848827110055098488644423473804413597258064330312562030461735290390935124914848289900353238568433664659014541634867936326352944463230833648735475391873412770171995955226545829843218784778705049328812554491821835322561194818373590591314648312882235033997945885909715228578704954656359952697010866746991190166758617891504879908906734850350816849015814011888709193189291282127229549060917640166103294120756040868519932148232897565450434501498008075089496478782209275682011472658323847723097293230238231738568592223689596757556463328278885944849051731567064266731824536896944475707812077579963617414270152536085120524928438985957221688690837763422579086793647901731863281413619343905827375227138751833290908202703851152575451042701764442885884721470382084874276884228743012333371474296665713452160768805350893257590082084573260735492548583438893000194444036271407979191013640797005426733626608233191380611168597061272822823753440530844202980901112001456153571203114971056560555564096047838640992775579618926802985135011632249564495792123586187695947232755135948088242160724924084389529045799236537253353636650471309060596950025393219623019838273059599390364908297400204839898545192512491663024365318410807873045025167282962999907931445040980002977988260441949314461177064482248443423985061243644920501440495094798209741435927530624032752479021770090483560157067927349612672687010436688731861530253763419788726893674914973514198690323631635204868238997961928890767209295560282863633673832694842975836259198998476467886357918193688563880488673188539562914604739709049137437790983100229088664820241257947245874488604008966677543842479396489220995331634863977185075236110441406737796509599505730490447533777431966055616018640672095660728857266196003737505244962440049502812107486199339698431095782898756359902499848780750715686407296506672918862237968405343167794282477695864977413745134541534380519512670863182474947460755241303575964983640653382586698236600991649115100586912919558223095853609658588932185829306339746707875107865742223941401173941870009419815868841970495593838172324835015182677898445229651058565407104717906825879374209465290367127040982764654938235986968884836052285689946992878656114928263461184006231963577441846617010375412083513589082868072981038879920168778266754192095326727707355328320114310044043141073894711469791784410595474750409783331068540946132707629961204522362011248934807204961267194102464915218988613468321722319392084987013847294872653977114226607246315416170405111836692503411374489162869061136384778061694383597872536462125662370352195904416501526678777860347648613118640067806486486093425273159478304619921146951428899799507127058308368706876463601953811379143813831447910476506807765645211020852107042318534922090987475246159190467634388586438194663002665879838381457969194935066383008330622342181571804991254729284767805518823426839275152917803640345207823909192732291942379493853036295567136778208799701375184151767707062306784991577752625746070130601999170625918348306354381128135048110562412666273473145907009694038011116431175118469895676453200248393676364220273362758669045899332434988958286114290714975612486202295694097502532289623736781340727316455768219860707326474359098443279881015803958524551194581328170830788536417273935151165152097236546904400500713108173194272642053834998210438898603681712767536666037902143404376488268401262653829693749348916229440066635792770047308550216709727759579026797845404545359114009474108090850374702942893925943980876057184256953292761107131282074532294322651066099094892765751078947412792546831761548878683423619463415220962769383041570312678838389193717516498938638463645453186842880469667353922985306833622243857722513085052759658115333483900959332753286580762746027005740468703461396381804538002992474899556609309662375333114004929318871630821810017460864722337261241544801941817489013638625885740514806459891988074834540145447413454185571697375529684385353327031259153484893115782267757593438040059248590904057248799317049244182180066304944900731090852480070621538806026744282881546552258223621891459637519712118565695482044010903841776848455874020935884244894649207135882564171521028714054162755156552262718469853561094459798384560013445242543974714605661511477044314153155782901531606581353932467407368329233553527168384962198111556902630308181930261253357051537571737838407071556805613085337164660833368166727681027760767898935339667475344188464749197026184551081916701267014121020567204084824753869306500320664708467784052803979204397508303632161368158473736223687017206309401891262456094161874283293070573170474027732935349783408124457159670917111871009690194788743368630446040388237746135641691597609317815861033194553778208269064476558435306436779455371587349102517664435546801193904242777462844859540567497565506317003565199381379176698075077084582770701830228343423921922953504349902621148313589131109486254827919700906572369107644135750817491758731699268211808178154426243288711168487044754836829794672591725778666056571249252344429283968585885698025170276819469193233664822114110025489166127970302556530633357499137526709691369547136385863956560182268431674282907618947553429002497721350074166919756131626375159127614419214662307176094757716912108785754238986849434327024140991699781476017791204371670730229083241738001869478176723342995697191551747286326518428320991370015072933420304651090493337331684895706024937867949484776712751122518070828545581951516534059904232060000062235905132279076077041759993437793943376948441517637388431203877211024701395184527821984402718215547059857633270660256385401920004932224139063231659835753001138630118628366078718627574067612728492888019994790275761904542088107910009276470841686037442979104147173635040847313793805992532442690300215660565966663014246795976748519151662257137950432724804243332997264352756641612144006511000032396498994915885896493484698268591203111048466740589129867363074458021551707614925163280267533129737997354072570435636902543483595005596395769188292836982676869354710047851584585186257316491154525667070512756395728521559581778990411293221221281579180437992984595961382889635579819394827222432657917071628837449628588390657880266493006034833522062328355601379617133287575753156901048953363677393383445031551060019220975581312118267399009724733358378611068859062121357395968295897914845520710500964264961697221820905636162688076511251167027771920530130389937296266776389288408921771672331818280420359531208546813602351989524068093983582195708929172401327359462309291628346883101487557416468780313775129067373352190573157990426697355130399582895865831424351180722585062983411703158915939279174754463961083681364592357179759244246236162276710843299524427745632644855702879426125510078996552606266499522505791050101038827208089038074251114814159383072626379002536310628972821596734842087938256242575876351709024485051948509801019470361483220129564086719816881445182368988431225516044527286765871042664350222242445904061538500161890163605887842649127755576482031381142837318065871469046706359814775162665561446318390233298688761049218527996720556792354226674049926570856332950882102937612290395043423163120286833423839198956103217193468443467818824732802910983004063132273415644641667983844038151353783200757387985419340115843608774093610194434533031695323674147944383597130816033712575424288111765550209368823003646038655657521929191366625088600932186066953291363128709653921280648943439807614910782669965186630670806218080218866504548258467449059801989728588820954442657776378562793004764239289813523510330567837663939266823603961028627043989435565742214080443219818275755650647079395127010068608333644378054367693295385747809539609558869743565889144119664644992971259304297216289413930527018875156520265872283944558772619234929288756720032175922976057909972991271242076470337993611861875247419653133923475021479381304481380983635622527130826432967642554451276228967477779613004497950162850368903403385779201169509364501957126814465887812645381650750124916406299794600418875304725563939438430736475121247798047947302713875045248576692137734029601692659507918785114018558237630321991898306219291660956823579569600983831575457824971917043605754661560913340230285733706345276192814509619752384164608128735490002579745576932857666786430126815536323159938546881805312504643225947650841446398955123670846928818621760074905173982737180464412326513327145859111321586494812529057039658048376411928449479971524560600936503697729529302344924421694596412942509535030836709241650007206480220351480032893242641139565486893704936399645268478463248848350765668542865101870120287957470980966705157671675664301106327336238680109513150710476918200321655048418350916139840485645074912703620376366273492897545521502547256135041563144565409701001073247864461506778817371582635155971396543666122288386157246680053437255927993314877901416688034647081485340196496658407762327077015763374408137982859043192468610440729549381130915628816524190800972842512564471989027519014908638242560276277791792166358663321167448465604202810517070214995144784008023456219459301754578864589685957370435064982002121758133170481006227674418160929036584225086020720134901872022857044435568898861100596033890148269412207783830463329540337777774850215493134960835878009974098754084821602650206741824504876633385318648846554075470391659892663231275818649691371757317663318268717325901175121794498846749990157195431125448668059050015178186691930139091940432977597902811868310797329424281035116587917132967166838777852109802353008471285729273125719293619215238839767163988168620258984459567083423594443105369365453318823002901448910193401164262410857472476234253990915875384705637252700249308915555523480022194289546123696842702622402039365312926176289111991929973927307088959497830088971689306329344102368620950194038240299455451111681611137160678319383658415691606388841657165281953747258814855083646471890306119335050419979648146490972701469066712696041416081761943880943031050022174830322797646612009531438334001035273401328711307508038508905731865232682604962360859241834296173727114930471803747587227388043202924613390751164173966524063578119853092824971484170706042153614905661536333195458365992915507305906066202278003044174411879372632003642979363378708680022005477273168891478987143894485537659133319132278329316652631445259730601157334400488087924311804374699560756673280864328430603030137765034796153351657529011069974295000423143840417991204819586082134341267863365245362936305778045255388288745827856634063601232138046061993512921645122510206814820250634058764774951245843195616792862016233112147753193812283805139351070295678651023398606261255036789460794978072286377781908312649235827630146541842011029075959511091053946205967286006994718978728828334180487096912612391406974435421529732310369554379158066467750078253985445892398807479813958823421953069429218880341509658883406770973129615506366378006909420496066010459944398200498733942043145702267976395746501556349279395272910856500473043713343054796427144615707719562144357600092352371963708883672211937356177752567018420538057161481553254071274067021412738124970066397947561035675673800279996643280985267245521271500195676912853142089806730904795754769269461638429676861882640349897055690824511255433188171497399346471761577331545613945613972795540668138466322632052881285000412462982845901356829039580499202917658006521164130039280829792192134990218029391035022161934235110849750385341490175823685331546137246015369088325227019118800795804854747341866649331347974047678906337618397502930578171741853165788940799344575641018370884603424285108791395720183887989050259879316614398123186767355858699689314063631801798267213580548999653725384782577468323554248644216708534636220679542266442033726403275068416040845299089811709471404007369684487706167387943153318980467968346907164802562305181969158337116686632106891013468494198525306118731051962433512644641598030394963934497060202687570178125500745350607179070994030038208241531522498693831983110854303712405626135764062849206753581491411632362146798720103429267234424621391383042379918936570399507711262334993733224830443417667346462063789611479385719978346322550367057112761469922405919494069979598728118405338728417768741918377209483051743460738225184387124451898965475390766814777834318054308715076206586291948388559136845674073347747350903951999308682361371867156789716689573843643584165711141481289801236904584050529747736710026090510183122869937269442013324219316399841627251104827980962025398820425447064428949194043121100761874535674929366596610965730828207893049953162028015621953538324007857132533394960467429112072897884790635465363045891750149735397309876653832320264429797922541936563991155561807446478809383636723748096424948473678629505061520620710806558378667313818616190597330251132541420983742494443634011006666554976373302033847723725756142580125313088895792508737773508252993701762920557488456069926247418860238084769637913123039743309564964417659711644737998269627220999178594306591885418670370946983599382526580958001615567660146674012388304744588625830695334018764845362592976938692393462568979653328478496388769590875253562990433291144149999418700054760117348153565567185321476799151616624917491020474343041386614191281171828802779578832452721401103120354936905442864806480494749320874647488013343252268700032336236044919225131848720237254451542248347092833558703770702360378069758099624733065348714654896447450843708912589963971775599891561253591838877773795654702274669852058480593300776945198168629153218153347753312603257491789043738506258994523794285990941455949226822821354542342170054309141212915665684513559145986395929926445386680284787927212735842057171166782677326137775866725204684370550452078771168424841395490710715391770330543250580214011372022926169145477332965421059950949140364389730519259328166392238111232621846629551782906224878667095741943746592203276968910707662051958541037246766227649573159591746376010271822461728319862816962417265742404880807235668868583994424865735208409488448343347459493655505634648275562102431862415984081623161462802812560287279553853315798961707068112357266760826271819804593916524654082132773875786676921871347973264506523820161682207564168557076710974125204157943519431243364423316744996418334683971830766019871853345872933610307682119071145408146818499197051088055551000720149615055501533718719658551985983512316290374404466698904891108766045662940528723927239512031212186107623972116483906493928725424254183920903360316347931075761231844024834917733126230067185749895996076245531820290311152310345407153937226107292955142835131281895762108929528643682469404966793859191508146930964645109207812883402519735633289357477809786963361777738635552416937901129912256533707912727274349744066915006246592586541283142579407949875177598408635809016253193679487194430916479813527745297087551988511858821470442129580891514167557747226127565138284195636767313598728659662637961558607538532166878399498844618612200998985193587701099295545523871296282447027336664763078493146000213966343205912136329001203862455158292549423115592507697879513209622998691562058701560877288208231925820544690989888850714773449427164594318729824392111061833153556993973849775163867160754218047717300331578679354760071580547995383792878452308751753694766277144072424907017643394063762708989357471937303489392680286546024694325960024766158147005989752724493009012058857060667720435250362139849086273830242074483268189835361104333487242603347264044793397483526086300353214468950948964109755774661892448666379399355818089081068993631077572819202892137380741989030644022224629177863814928452997002690499990565884692895240035689226676833418000362999457437057070916179646876270975225569070812095704927001057139024353619748109052923926876060813328894505472291741019933774931525073394441858530012275789175593713832209272030563305833394752619304461092526647297723621270761930034545780293045099558922873802523749628606442998990240831784562671659192159169230647545288877401429260436923994773780778460251079715060079650155590091412206455424674578836440389895416012473890054025443503403286170362067466115727209014862783601377369946252269858923607645312567788286214345201918311783891988784882747412389560176425463073618417496068226223192536817299559938829081946698460808101983011535051005477537330300298887724356757781782308520410355997689002990506051865119843495540167578959251322356076730732641761127536556601744410676770704387094995341301331228031958480396225432403996691884513785362036957782066873027204304177406484875265555946099228803855706144386332434913567531909183102450110065873656177100487172537867369427581865406137184762951934080739951577802165332962350373187892880435237036995796269208509901351404228213436952164612843107566731755944742742980106049804503365633607419095688457646326687981689451278104964497018603580314541375959697845434952881645057819983959540296572906356052418600986152516366944425917428744039728307770834313283919289881819228712348301567191565882668775283581211814364204059028568592249237625114270273022716570012804338271727454616384187574701524038412097384792059201198782786720020166066662975046506194991072473432865406293694185927408489335672177734064071920935841869443074474483620269600876431127122541828041429056586429396127745175118406866590272382954353292154079236222967889957781954536727612037160378820871016421547471797082156034787941999931420499641840215683115798940438792069266244183322342310693372409543671462486194920643142579711235513695890405892390025545664469395587680869795826669244151621825587351193577409757188221006155415515289048072541751798146444498962131600706689767287324340641555558581563701628138996086351685400931393495014915895717014590846892001709181374834958772342382607352298069288829478934851161432651691797312438142493988104975402281628019935596158700541381301905727700932118744873578211409955618313611207462196443705800991048509990743250683840171473143731017981093312999619226672199308554130707983192427588964590921515867922389945926511750702343374531016685687971469843549022728246238028282554075563664132356464132891970204711889478783738148088766188330172669115118102566352832530599634239522176799507001199644319280108913621327754740909938506309067122897947546426074379519597694753037503503273026038806868985119389411330613038509913666315325008734189681809582678434819246358161017261032571206015023264038905507064792394549498331793965037288062715897637938923946503298270341201254110515198223580549414355689647439457986126843998394495041117098395550098485642896256487085787672662402984494218529090636897875370181054566386822105869692258856037659424714868351657998281015461512164301721318768087106422855716565563775636946680577004430708876216452760369312002783925989275355156375177500386926694294283134624779047155183085972064493416792045678410565483469687344738170536878235969402236886312315258163502076760148392699793314908290974969729794517990895066779392528314132199165554597797946648269635236454716859544201662739686021631019155510975368113918792032500760212114130558009387953844790237013046360136435620177486247673298219229712929884830263049837156175059775001598557755304300046643169743214766603566566287255654240858909748454078088094356596601976314762756925170970697847445277446406203125419215704604669218630918197745998467926992207662338559900227542281470935699722058923518571839327624406958796381177391431968591766126473086611942639719540150838988588654938926568162783092320998783512011135117641141139191369909474200831197116816376133785607717898353892683767524927296705657746959769355931777166432880292816207269661972656060829207902732553768981428445431493474365735212568418252356461100762778303465577070480025700664895640382604825314432757248807062023857210951246322859287681586673268962415382422624341427429438272940878631354099916670396673078233959394782495804896929811293118730487210571803354295086726078395992604714878585577047949921618881428944427610743900661838664149525387107420241081681736198997721907626204815612687842921572103926184043755619075374191275702907170480876941993544940253469876969106292987232012520194824534687439645139978625033916377704044221784053436107412721703196166056825819798123785706823452391074127305826593914627015034724859705326928949134872450642380080480026866366892367300632395246844355624337174987992317134333891370151316567614313679161163803122978493027122415001287109080660505735315010466743213527476122425322543272850136989275041995095837876297958709402300910354112264829445819098007347621678451797050450618960444182190375276904153173763226442209035362071337616486085531938358642179232931818606436691628083420590834823746373185270631907738862948401175410955488732085154059093384800356335521305668901694788832412181925355450450428498176907247229925481428998044973472116602477645945255541002891982937983676697255014186553928671887736039772516229228325533955011346637411588452254369780777087536036905340983773445625492797919266190069794907308246574663475707311869029300862790175018712361071401765944678678175608357460953898291366778474477125967073874821800810352615929528753919866395649071073386900028858395190677324046986388215685788335405736390011356307463299817477349808060396607693734747780299736432219415684213154354783214303338929305316317768568001701574662616419436507855943615722627873251277940671467420027574011701690456381412686084760738079567211560913542536535567509370770491174283809491474975869966762871674072503614665943772929072330083090879307109028494170156444408238014884815110850092754551213901432218426455925792506781569917239647723788459444206459556974951573410339374942725250663291999001913457747167389349080480544669125782749471045087080234748108460506991398324809971737008782345634195483150795850003120185002039048525234733479064019193662808659858681799997167237980011398759322077411716138011538797640021483383943524675888030334230243378315655553144253408698530196978659046194732293044795400770894685086916894374536520737807251237009745611503688950722780611208756589698087021404265652528651336326193522888323033341395917971699388896684908530305747281609571003757116510610329746588424660548015335252144273155130696931013149030466321441872585851524764747259158355954013256765533997945175923728664020648906461294136968939152149645889010469087384069654290126156123310631566623678765415849285215271150876169633937603121393443656672799553885901278671519528836636152492739087993619689915223060806451719192549234158354764057441464678313263225115150624296656883757091431206684529183669634066127469850441032230113988712243249180193364478420478517447801050306454832190041932050161549415572110565773708950752292196784450263883201720872766450867537213580699120470343765302902719936204718124459968787712907087607335606696405800705353142298459576793274138076407605382976382513113558495876444159025775648768636396264830485107307048922610572330653447882467532678047575057125995280009933847407223381945348556891093596408867760483562613459504899621672205983972732468100039899345260169803342983738659513663622048421940661850855936643848062225625796185739992399203139700157019177677600119285946710376960760181625397608157093637476200690194293896560759811387429226160413037713295049678688159369320033886319345741298221462462770578075302616851892393262305172519601084146187275832224483355146100100245563526215228783466259337947488362306891286264975785867634251908580006818817626548861705035196556164888277510872009504431105186056501546097243974270350722151148874772673582017852828415978327312960713035604028584370773693787722385210262582067550374621409271470996857483551510689826789056838886021853072761774659287220726142961004403693164934526810272607019389338678499771048501730084296641175477615184766884448678726501457915042070149330064366422484321096692331343310714099828806085239375808688136491711618520486879530331887410820448485546070760724028931579846784138442130400299320287637770369899455114201939826347277033351091283167263694457989585045452230269178367554572188330088615367557652105997343434140715187012121454306523422712584392402075298065959784423971077126201718181786629568472641073616157999106375539242450499674459072670643852974479426294967889323440273706475488011197679449084850610959310263093706929725621728417640337669644623620741031641671680058119336617760920190376023409628965189396192683250141872801886551917920470480069431055982067400682297727165061602771618729644831579519659126523640172996213576458694308461178108105023431781597235548502301800829972005847338141014637947319124821664754269161328423353228601553575394955384309816701260966439179777668785084928942338267227856992565981680033790586483014602660301900079895892155657981254804875970824458581741701440828860161081257313061575909305337796863962078602026767558209314818529507723937523948834994115039232683675211403495831144571221887133681190429111257186532550887008721846722803374453054840621044312624377966084021436149114245457550052510833244549979154097173705403168239798086408676567047577387406021874583006783488827748274739707857153149855051548675074645236958588937217403373281382637170757773353120355684837964866089147892445332682152273208920422363791523242429698693077665813897974065910986353066359903948361672670912979505593291374069096757525392126198731034954692852448182251320304764325955291863892976661114749877245135162532682632214912643522899664240150096943884121450977248171650614749219921434940864595885092542198076862774334880733390513853099860375152502378002850754356934509244659588772107074663581287040180298277097667237707542312922553216221513413246642681676972561145340384190506839001158038821741021879704370390651470861281204778321218714196143904919182495317603053006540845739639549833733951305703235380646828401957044515405030503679721347101553504517176765210330092325843121301029241196020798026394553567887734263476181186455538230740550421571351957063842431017309468296960229198463482051017159146653864104445364119934571603372849828437092664934106567181371152487430642220033311100297964562980668126486267016314789722890265436000923033878161529101439621171834964497213763255599264592764206420176222111241368589888749299010217005564101249232103943990969078831351740474017175949271975535127705320656316838837861933228891464655936837162336438717509676193481319002155927452401812714926568155175913583742021133300711943435150405943282775451457263202751174537734374697285892514460048775277961589140393296958561319658344116378361412639697008242614172495875412479673345862099448205675674093583312676717178800212066715603619082695733517597654106686746067329555369539072147225959270912904383875220600067147077393069445878501487217270003731612475354088238048364495174009141380699355969224206654312939256369120574274637674008777248799018468915842766407141195900452167774494839198337837969860880822104283673829350617852336841525664315856076731291825208634397249523593890866480128015911910063992005426297132947303555666226399918522710332630966108677263878262186531244453750760098071676861246232075287010500305240422986735261001997973588183275435100498261337793971990202887536874658515642597521206584982734478101898023653419508323015372153788801700246191921305902131981257172476088632596984223557200017393397244822023940001404399114729144407804727519636312641588939809303950227336980416337810226075142531761803801456005365779303770270507898552556534162763733574682555561278898628251763068742793884637931371051084975127120549183913271946525911861826714672437665873517494576454308588054726184999660584773882644444802988623663235995130053860655975274468562712236346992025131932680523860762181351339263285517396449972148675874208965924567888794043458615866343705726449683865528304801582913085275047427153641833210816098384112843462204866586682192970438391934371890905933385265746938878260012647399178934523557743527223946192481475029247141846860511070295231689284979456592452640670481157414982556383974456775448428017112224538972303314151304515467803831484065078239947514707348000301643876751911868696044623268947948150976308247922107338042452470746693133380333736533537816663398154324865329890941473986984834803687504509559279192829811062965608606589773498681832180537227950443819787777968920754276774944030951075936646351452157864800975423743233493505851386650504484689083756725899360646108411728823676713032827448016849092474301175277578305337028213042276583869099694179555293563936918193403913542188155128794056392296658738078375965638266121245358855943632367689640027297388543576896013686553974879223601993027847666986108604102829396243479160209142447403038239297847335096016520444182222792202164918851351879835578410776847382987462049258713337143992746492944243544073126707217167426730197977295283370174959864120954567734815770621797313240930081053978981390809936957456964855671521820518775746110992061062539760005106448872794854914667743377024962283132500438531342756261183491521423131187619288421666679591375828733395195209946291669195052822557030330024453711498822900756868245909180495098509906368299478070656579327073487844349385843289499545740303021909052329524150356401646124912289160330462518134929588078132345124381627975477131706387717769006535835096528100070820329594755424218340444823110920752920136839350683906504853257255951599395086711290281113448674351884814533254748298154087288219874815370381467591714448125706701179630708750776669956266933851958539440585639877242891661308580329105861325030034503607223498388368143294207929454428758997821183503940114377851338299987552114919962371661661009782457695903326772902803987527330986204781900817838077480287237564178465964367346751902769294542709820968125465340880224644431437528881709980630439073412204181899774363815236467425673663689947758303149540711514342704754282121831663797566441121080106768385503173386038084757603889952180987391717258202795492025108069620841331821057077173142346845550189435867229564590433149343679710583011621786755364489657565365979035324459472136377003821430165759001347586461078791861705272963389848450157239854704299470669241885017236067720077320014067000396288650408146438419074781173742425183509356856556299733770854351948898446115360738246800184313449383201096541562759507331317972261588157867552803978518834025160124295305767575569135004539859890655318539541670087005731233942445459437848041332407529717013405974421873770850309192768668827828758852572703232741088241097113747888946204683318597909139010644430371370917035419831451647041983038868485321826421023177582846001797836932458438575822313351119024916954333915801670631618048353882776917405305610743976308618323914863584150507094940486559426697955177457355336536227659592238463885195844278684698440933886266641088186465914908823353929962118918738578871280818383577874973046223722674792623489993920192343627554826672108040220029176456374041808213060035910448478180289113846024089466833106624669846782896735429264757884749596228379745415087469200603362432058830335979279101216231239244973859408149097573755364452973397387336361252152494296929139268673553921349236761137452735900738687234269430925584015481481398841350708733872554946637630340514063853709886810390507538912060198354811362158364871761672079452931098959408298050217752755801214537575111910122834831170793220242563536104267868668916465078764982233086642383706796747849935462589626441652210620767636164883458737220954505569474662400198604070862223725150677561807338188360050491692569056259788748824105680095132280636854581492906836951746260376706913518127607173614409431808553493055532560793718403495964871418732951103415763151153960992022356289763608208325023717008699913856441510304949981295600362512017204360975628959427543341011476150081921667143599054732635231549076409737635008261230589251119301742535075734943286767600109322860114503705657827118908512031337122453065335412333889029315429207129473412460149707564433740872654490734973443697795588408631246827905609127951979630236653866124165886090296523629756242237595696831538577466221488726083318926369140599418422747365309186951527945699495549174537702534651721403707616361518335521806536215950361825858921546210364616677113795464137993606889991415766184826739338868676155979254184537531493945521384148956574128349369407428826193649146992703498767717907061261102947938081884844898375888609482994267793594212652486624401766468346705419801185268392849767916588415887087024072019903430462623320257510705111826437164715037270710049954842139607453206625924164951250481943335074524427157818019736304169132205881480974273854506414880988965187244334326924546399826903783510881337655492184679720225586290755131786048218898254022886204377193313281028475695168221569879585921748704985840490027271901295321706949749306390781177144199028951954457476282169812450509903787108776987382740118000960655566683962668952663339544081179319768108917418819874026051654216902292237731223991484377700470708696334588634857548512440808717266061166166786102093612462202249685405747050587779570019321770892506973267506836127652783535988079218117065891428951272565322659422059083783688627897117190088339909726236313251236629982704456549967147267588501006432665134881047063956763567467678261167490059790548866148530563901800768887002842146293844921418267096826347623015743086013821355301873937908905511487774060658688636483380132453313011687783982627366843683447195913209583927427650412492986039438514295053919204021612419369937387752307034063511610550680019228177569821211737939887143145990194441985218294393966811100007017455548725475643150043159520810286545805640375114052742447977045459456384909213261640003032688838721940641387083580689711277123031080490764932249137192236706572703411100377358878113378166731562129243104322285181812011908234197952087875601255719336122188157688706552666031143446943601419591168811967882996444111929010575773419272676347936116068496724850995322079200396525950391301569665521840282032739761725164580747089310634555808414359958289108224286219291215094352740177366519175565425452308789480151855618747676407679911383963013148101211778365247349856369115019356326308611383897432838602638644235641233624879461004417809153297828304654263849770789688974495671712710466715948647798492772643879744817630021433548103285183749965457231621945389461802162032135872581439608398990536286039794077146985824699387207197922191395459394204421790774924973412852584946871165967287166571072915827269302079371020162215413019454289339481828622410650639449301577494052455478213783584859462140727903310894404279609448936002530804480176173747828631846663936206623825545235240605660360855874968103994491203371329422683755931526677808679915777495622226634124321137640916185098109539299485956524451192155528099910453679269086488683591912278450240649455523181883778488342829129928656925540954684833609657878081566800373755650792776148968069163558424896675182311845800833606688104485901545820817867668278981315879167087957233112299762873798575397163520444119787473393688201977986146778040982823331270862547328567879023624727139325096685610028717102269297382300990451091370753932981202160683333576190856541626627644722951170028147961216864521050052588428224373871047713726682988717595677707004419819851427115144744011925878203914911258370330640012943603914571104372686466669991869724680241412484431077800945833045654620115854161545825049002432977249299842969571423310988569365559884814702133231773105556193211538117774799944760681775982488428028654391427099252865448066159479663462338917283691637865656422066611341104619011521277503171133824484218530868827275443375941785686995052913041184255996473090523209134396093007729335965526533555963895832703737739577525672699205278330427453479914929059375765429506995184357711658027996950371707193619792902785595335979924221860533205289991153491061461590888425093563874974433067188389908423656020979381990643068536416521150683699396713431882949613320286237353450726767058864490111324542307137835754250246138522446695061192264667748750408890950447046727237106164178233254442864722588718518515591671461964009585081861632682607917051709728776604599661964672836361916996911395231614855121284204357124704129894512628527657138005479530153513481160082100385289667765690602414824788205511086946839942782622477570534062142935261564358212144400085184575229181235155368512056712263610604264354347517744708283099184407200746502203976257425413008687090615377478802503602047076231102879882128774775903072386398918953744095094841582051150628732879073582040634438560945994560422890374227930067581281009906312561897166779454010098538908644568970142043935267967486378824698047829540442447193027171070815617961673883335640695890929681127995379825351121204164417277894757895470174900296179292882264570035139233283682415085110257625286395105342454830662225233373415890012936782935107018436915874452351506244249181430016787148356596636439110582541472738856464808475928526983463812840811575982252214139524256650860420763137435154431357819553171388615077794975584226452300237243631892674702006750842364850584766037101326564250561454991799548198160707101490447179496399765059082288612499312607916218958520610799811125215352438779305962524431050075256038545815243576997188906757291922179718310315889539911565435878935564106648674633186874232782707327524060114621297882059585669736874261635265092336850039289615302466663183653503386326552492606667175136288206091342754236094930218844234261552726774521558153232449100224895501381530980369210739566300873106477520612862983233950940179543217257509900309775118733355828722036004145988378316099022405506591262714417751203107329480848821576663928897539297278945068568407714607672528815696111181116115305554982619542547510716015453313818531638868981808421093355382507319933903867992970405266535178300076547846795352298254688434035259402821917491509963910012173083119209564856516038357450532036068294784268089041792493639076030535039466574225877355271723749633596353778482059507313609343741362815423143095087098095968871188953342427414803209530683944309240908184491378039429971664268230601247119888274765456876905412989240960866069857410938547491075574979366012528115909408978542980854623746199893039780985391409051154833131172948744126791270699061930956907780620593096277734211531059534088447716579225808402803810065224815986455506506589785961906167282089517126115767690931789907590946329229685164881220528510009639674990420117695066217849243279969169004004200726019956917413644586235969345251627512571238840710780619016854932574888385006621360457488522137483141838526627399711862124540124222417129123545445723756045276672863162827433144145611137967281733297092732322218647815272875969406509894772359711251830066564387613031072105230949523407130790206709284208685346819162636833120852054794183759851808076956205156444257362208357361243859603800264820006606185489354759598883222282131571913140062595857097708474147403073954576711828679679891057581411311440086343832394255574180012824863899490750129572567055106114829459318349938693425025465118793266290094603986209059786765900554246557137711297636388973712803212851115702230288861055419974540870338471611298945966667323228636375141307482092438604930328024582975941938789796633829224817121865453052485348131076140510439520737064288474266615458700795357291688976432981343942648383082916540643025548892910289955582441064395858755635901406166472470246112772258963591051877339934716469161065259146667947612080135381275032674027298810900275619044476330992105285353488462379243177427699633910638556910393386721264617793968956337181295021250460773290138932276832633682344976661258465382173920091331318966577382751542594068586818407491740270672836316907362970245246599998106495788627811546449670990831849536562697526274331413749019490053724175672689372172917583790872146365100113257380433727865068678952166472942461758519191954422553697727458034906378445702378267147779693918808599070137088132620387205801204696170166686834434278505237850412320797008587960153858897250869080880113183024785803240540236375555165296108264340484405437724145272924903367964867237717325872140568345290866114795133124939000401427937669802167047802272971349756880508233212939153409732116033499978988299567168942266036958968089898424003716841085840078887687302458257100276195391748103100493387538517414884031677158584143702567704066493885653411042253125146570085640870721353135105654011595347405032564297359221028808355951404965858668553638934258523118685248974935429839118387383265154554513347684323981748134638307121810093138877358481381888105230034662861745908846466937442979331395478772198169836861070309369908676772630742754317070988789852079446435447389437248618933730511916810155397459993039616796750090960513357461202636919997018376141340783466469961624767382889764859673622495605818824141942178210320501397355593152211198889570203031891993110823698292134529960573431219344574241531001483746582668426899301572290257277607229718694645711939417204902604719203825891873707828100311340946470869014981947084134467917122800776556889437729588773959239385801696114761597494953395231837180402221615738878686424783302908890211255458355524431396358676339478469837657997084347736403832697844727868645757961644510270973378664299042396591818478446796797374804819124373606072689350601009948580699643684614113818242350562747678047523840178457585290042602212888773230525813111661545598448008692002146814794480251936158201375016431059023934028170371265222476919483249322004339540159121144165127177230205161590161168345494157758971893720763475020601152515020208411818352367418272366716432153660361168953184253668529368684981478043500410571182649975053246790094746240631593336966830305911517774715630790438685349467496946901596673047774051510560290102039583726683654995032758390637358872118380968755041188945167544338237662517611764341967108899144102223780907157582868439157226620914561709374360782574460972364153393731245897735877203508342946131742190468371091316597362114475906477077033758710549591210288040854925956905720117275958997699981172358074959996246237577642207550363846391093086719482079302767465673495146497784854342753273747383951610148859534684469473759347297012371628082507482304886481466948010606346122262003398009417200040927922312992528591338370420461806397728010539957872105906923886174573364978226304677468900418826442358047191532092132093647362913357622576387218975523003603905080096909394552781834037253599351046666558889043903546494713315680406039769798470300605423122325121702919481210120812131756584976739845440355026833973799629716478319394783669252077479123718079536374517344944119475286785645335622461022009347877654935720734177594098529154637414936073478432738312101159653278699132283307659590908660314632041515625986274505895861504878905012518456489564257607535321814195740988080076761781859860807688609639704113952659859686216157449194928817242882203448884696863630842190098947904474118950545082513542140319107106721627422612117298127123146837799529582036797338042213577754804651948610372353666657555472322425575902634319690514329641021048241070533317086620461978931581009782049850925148418386673618514724905397871629028173432515863650749369290627543190270712750501122005459073893261763736866789045683462417156800808413544076543530750597285832519918036433946482261053209409626637236650979434436412421465274022256948568696518956105060081826874635956936572457148458136884213823730036640219229289981065628481548530993464909427149349591749678682381223065562614963288941740528493572725551957346051096426243821904523603441919931345520414305542093982703307828176955780383995823883764247687034995821712058083848254299566072419732534050484549228362500374562884171281202906584316029107352987372378370429423709976888433640588719914218048014041082400281957773553115008216208000526214036561482170588490777140695157037711787614430101075979155555070904993851123370177958960788675322191399595355501077434327127293190444066956152726103764364362886896376739122614324138747527253437808197283136155788300084004119342582481697236019265030943515356613931545548422667158064205233878295722622708031274577635665474953401182492250356768102368406236111690979515437942139158485003570831808819706219030456562047214251285714923267087954375963065136236068038622096691444267110136472480049717570289906874268717103786044385102922225174727818941165969346320010863168618125310197723125137158212787480809446154943409578334031167199436676814977662988786589036155626914163737276272022543417336679271790544975507565364555871587115271337108443713892988223981375337504825791038251320384279825839055972517511879397036724529893829699636657850903605645886886742381607028267541136473926033255015091525034462034424858170084111421107602987073842151862711463099138893618933816378361994469768742733178143409145907178806742858363001818055078344939638113210283429019454235315629360938639800904282208833788356206271503818089634007252144093861264380287063200243013101343817868537964382502187774995495653911168515980274031278297619772939506397343200985584380672029017156276913859539944751536988512807542293078987498575512532498310061774386648619189010526805804383478613940544678049028929343441121567308853532251304633155310832582759299549945153073744785437473677292622745348545727905379390264974088725910205027994440211447131721377978494035484047362525767402176227369094087783945933969495686416433254585529126928811059241466236134550494867556163452869885390989965714558237293187568284725991001389955232049271315135495309546911712085849423377555273021154628385538830841141543157841921196673902909391844351809161133012521161864512813029735550693378240291435204691867217537947683297740097910015360261842096450212074482624713650465855288198264089662714090820435770889934594887012591508801262086441317236003427988412073506134896340422802321488158090943888073521258366842812628934330607825898393568331736707491663010620815043481489617928539528575694714066800006847381794740398878948486146717806627068785975985158522099074526311407466622107434698267540876211442694161621751017748166775548651080112674630062085269417904720602764295824633894116439558542340182506462110504879566878774514814787761217089446351180420058844278532565515633169425763718733171430227761839654366237273582049230163751761801671228902443593179011246995433437661988861363359013794317223207605418393352701352300086104285936798342836657845803678969232061854119705011432806006498791263131346474188665844372155426629834829595423719644431833367204491609119137969931413811337222248727768765619556227654239142148215435086912728374651071938280951066020030882142236890782942573213796446121025324580077262431496928755600425287749411582002565588429133406497254665817851341556462338147347088688801928150230383702446707221817483388830327126057503644243585503364454893674887118168048987732226680199970862568009522073415040286418046710880351485958301982588113947221547820530563203309379924846753645421072480522351225011646919068259523082206897065591235478950383107936600624175046174763434971401624423781812487192652264782751431618141944213940540182863839948064549302819701768452946837904683895574543345003682567592819131548693377561812113330051539219536677517862109300438741600743877210067900777270051203091122734647679825973722449526276174916080018814761627327736579707579583568318222026325087878416641688068918596826796172892092064671638617672053263717129704462851206218308209520587095463771549557753370267276707954918267367003783511413532718252269533745820323363611464787169221952052825834627461344352724997124761639053317258314356943352226425518392305470500609410668267273921063221922286096031248285195697570992069454650956997850804280804594001456895453868249422241111318805815229989732059059690521572699479180737500346472710164943633483127108639710480404976295392204504901034849758049407936720757579664842624593546419074321379108976564855957862482666913680919551101662278006935700519877887975532677539656852811925175607354408384272780300926280400212111611765473923336868935797984464776530364169920072528425933747463074855620469027512282523007144107219522268371751691187481027243144452800958290485626607413760763077907158488254706162155123071259604594569606370482451622769467784024195397548386553470924567965405626033225484383007600840214401641477622450584275805416734302784692634141581342405087132207544764436243005813940932954023313962966087017995224609985629120606463171635036630207842133078454850874992361755190714138128453761454612332747109291142706931064893334755239528254655475928444023119210396439053470840588475719055782194055161633678282965734841160235906111985127094058270975792077633128269380602381095092109581934594639391495451653508310539752144157979602177411643393757021713848566138927063831826903635564330793298100309860128698556270769699831606450305129176295948791718608238833735586981696631442181397332174326654231197977328767442314083291482130037099559499104880591620534505591725658697991960501489426720821411151695849143908238581785727389382881331941813566825771580452804999072401328375934459702546168343547841586194446043891925879196795274298174774187452984694472346806869361704937148347062338055710287673531469584386391847410349011106264676818988931965486368569196755905555764776127640342504407121015887795428407565599507359166413091425221120045313847731506139459830786292484684656145740101019945326275808698825658055327639597468417403492857470109762720158755394975984375866038722407344081670023513217156914666929550593386257084432459983570534031714971047945069761448816113395762591838078375756550344103094780164987242192590059841505348092939089089785940714619290379853263123457014443138994842856532507707883341853654794454875804921705971603533857434695824786452907234357894988372127067434914516625694293283129429395425223557060607334000517203973830824207332689658011069040658865799196079953079749983328948067757032929775707493847101516378326364001333736587652507569047868437085886076218301055021464103672867708245655894981578706512746637655595537559423593048905487504601282315569809428158818816010851425430291920377775541973873549009057895332344046145621114456994042513883209194509901907764786187143306050264334495025959447902801228435279248619991054458128658573369626903426937022608532631682281384951090131890942309145694274277764756027447014905444600338028085383409700030145536330270607141458561856149266312737068484783698620726124188567198543405714061168303841222068271289534415637404592337550391709457137571090437404696518852161675274002592915031012875705388637739324223970087132661471419934652088596082755342139176319896466682592681192987694111842628643707492029521829216936902076275087742397673150275504107527310053862421512046045277734189066973546611164379810884208303328834246129855365926980027953516600316052062466391414993438912410926998530327069716054402935783364975566821819927751998729245979773834765245052845580324172630479061810434190710036090936597851678135005195289116192823424989158518739264703005305269029427865861588886163199137851601224527936409962092966015167599094826166182391319754468656152050688717281693847416807856655752366830955454413508464413214922377598767349196506942836101502223191853462742111141785946759288324609824475034359495695277821993078528538839799362406025169870373128996327284389629217115568186368456357942440516539307859862088307594060384062787127901446115275981113223967702589262123216743340599553054164724766189490271276347058132122781759111207881729452436423700305453245800897269186948488730511543162316704223465211507651018218847174419842716777929505807283151109010484242779142409917703028603302508510350931978923190589918172027690944795804325788436929660446490135910073555467761067660846130139126592192977119838456552939737636661365274001215981736428114268893798808998670281902114870549903053708550705358862981110943332781920659828394019689854146465193289536037614539395662839640840653151196677307279228198083539868439939219521254268723413128550242882790917038717356274489271122288450223164531413665559377453461695939874180468993699873182553366589984787446330593108704761950259591939825792888329268652506691177181917147576341155318000371285294276787880730587676865694605619788598654335575456866323766211502706156107648281933409854495288197611047785263412410350324702698918222890407587038840164855077625321644349157783767512616718279044576468938402639517527306437135340466746403322311440581645680054748499569293446215111589756616864345059220262220688246563895484130377312747628047524144018805491255353380386447187113669897082520704341160145024917563256272518997462411240259731975391446721611098882801680322701225433853758154895560685774432437292684605161766931962923912663610144587762315888548353889757245946708656942606146908901322661982746900457875255349430520052074979184852273690121230537120412623279630679047143929458641955436619911277050105825197391383252292065496546976976774145116115349535284237416313717369587109305478287824814210746899458844007500676395014113487931327507065785825942813186215997414106150277278314954770842000782078007247503074140823008972941231699206019079513510575412566764246020555839059088994950768761284636455440259605669234253897718757355989075250431021264001297832991406081934034672057859133468459007369024214252106113851255268761495943440084569702239495158892363709636749848553606434215195194842316314129115046527238614604103058656789703937632331088942359506697376003927649563701745764987139038537935774118786319842823984246818197299625922745152888821117820579977976312418262963166972714858559614089958185885274680533823361000092351363923978814731514089456562122970828143704369624304549636943087502070675875922971030197861724330042415310682392832941753636238002396802018452542790311759155516111665020159061456307689752535687444348126274990793856421378480396964819832767620360211846309641526866365641082936633835685771747293944511058876486592645577411541474646507620733846458036017666346327119480307911179373805902216720822058031403746667152976043238389648440558433109920088129276645806995818747158425295171839246197450675451300446917278496266323304972430446272039017947725738388683872559864652791562998486684251446820990812362206277204459545186288618383967244021483924596343989777819871604836102617275294952221148158235963115840879436588251022490878314299150516276081036647231301917230178563093417890188305559739415063283991941236388379691329954839935207508942787584171315349827194287841067796950517626324513667500755275361852574373154641913886154547678129430962008476301860142812750443300311498970995635717765345263027543289210211607847132734052788963829266792721097699139446256062175090725100890414789516941353525407542049231579436758077167310180408140463325389462771647310443664154754014414636803196320604435852838675881060129812263886184430162913102381893463534881689716296204462677160937882687229160861054126557200512893738786774509986066221106029558269572383839808782222305117900810212050582007545372825596056475349533710277128198167085181615699119103815522004712987152158533990096193473765215197831151929790597842180739171187068185430221042936166878400031571124534139785373461450095228968118271486220257701185278266568856766661205969536846735590976711133707951068358852556931755819197445627869260232317779390709993733013939697362915959781239091980787033743975759673061777995773109034986621329779210241853040376249520513847991215101114266768854939987974180639856447410869544380356325476961712837638036284364974836666790204382619538156242237789690105308819361980227448402191696756212305372403347203242993743152619529853687993767770651947062530924550079049424372366687581181080533033398161158748017424732369403130075781784467378678775974478942438339904568404538171016826046228417886906003508450936156479917891713016681074388991674502657695556751751353206112689132718321226180804898819400613098991850813744027856805049856431145904336705547290259036981164914228891131681117335556026516301603612394612027211823680085227110733490936531945690195989059359184185637478549313874925519814303247530783964079479929337591857975940526001914302778647748494595336445544964988683981131317243369432593834952521477342069704299946624237903166808596744333723127102290360536255477299961644866270635654622089343486256070237679514312016649357888845698810923862894337540972986769315833950064731677367253875936679337296947896825261406260428385215874133051447908092876546017714384944923109161525833445410814715538294213041376952683925598438970793651931815559149572420222781798095073367484353686716843018512901879280719648804748156962795964150983053074701251225195399212366751325281689203561391563277989330682026478223710519074491016385959244303421672630142678785926861506058606206591056968731908931311968373904224799616577510159069237022498975253719811208873169701122040855594977985883513536007400435920340898438340749574970219123766256527132699201648719691306606430116170708006708670281155417226620001997208739974325318878043893236630568031196089709650881247007173651486096398319122625573010682577508543868217169432090840348954563551918140888923702316185661475453393352340692795788528402571541686309635793602145060569403673399883767619869372238908392517030410639880059065699611441074141882089187932928166443208007473918095186712760529035150435774358494508550080277349541342600250946464874970745555661266386168474630286198080132319982041080792479369607207205592498685386436451908438351732136374046340664240544494453099320326851791495592270616450460433933509592687122198266452446502266519313228992581595887356635596223833892465281626009547878510390641634507122399387783206181983219733879433939563295749984043828556071184888360133228205501645758086740972514025215428666031017300989627201604774519300998546105147649476827487738377035529276797317605332942088627949580046711985198107992971892351207453155781140764847189153826627047554787656367301240473211306161952254309114258326631956796393064624101844713238839392294094453307101083396330954268353521592290525035083353934819789277382554159326812902442758179841489332698593429184960166784477486289387624434201760386168689104924390742405160409511906199021466005023279956692189886632152367515904773699052794718219190966167703565173579396193238658423945538827987622341430203229803461563212739911319596252319849108114855478081158500632739111616181424591592159907193091812692996785281257718016117446907503986029495024165962021307963914292411979616661705530092020415676453507383706560895456473685944681416776316449142855449888590783748083964264997532600843502280311914682538513513606758452727889735649411714510910998203213552404283306763959376142958229899223170268174955449403735179178621366847279970130075448159610346010966660726069716127406767814207592643505837378522132728522575694258678233083551074381472976932885148167359657210540017846402039223759780965928405703169498503037448978857635712762799108265709636589449201070516843644633932318671904451023866195765428941453979448683319689120586136803528784010534144827884662084446847410281578328435159066827696149552348638753806292598385091034346352770812436378015603464142019713395630890469148275526406810371024026664127662433211830062490054399653444037835730205958101648995335675066125184257411283097081860169309178923953344265553935216013404730872709088451979967561802584245515090562916653256340271676466738941760123782951685299888982905932322572419954711734086316847806564635587354258568623602849136909818148309938591723432372666062761711692105401848090944908158065618707118531609886626510809984194496026644910147855247951335457259204073206612473013062166868069450780083539977395876379097979604295963660015884386874588001748371188047047479233901816051638120824466440077307724128228673039380048556557860169071221678362935651318007574333508875547355034934172934332419008478691032196514716835588210610513312519495958903865756950134435538527032046859961062409671210758396835511768133471660479123196158187762469508275109641113831310521873758107100999563989203875022335055614805578927561345078800840614031047553499941795058774123399918453906502515321111878480411286770523168572079312475583315918085245826944098700774164548582689725481590479415175286923836109159043615798062783669091352823187557755206468052838265348757419817109494432624948827990669337109173369081800867398334705912876373006681892343118662069311191349084483553525255132839831467992138855550384835038095624678314917889434527199760128695293661161787929522948431153514216808433664126203227674948434697775438308067771150648546672215194992447816209721526419319864608120681096904120767095327681770015983875264033473311056968591743378437196116656937277526062246228371657911619031538519759349838550327632738584259278187074907774803673685740373080927009304019937516019567435868121353819679168653445138108941799430592709928568972961072085320120091336472621290383281063203638176125806817378689614342296463929291714261576776093824157990092229363741976369925843873947761073035922827967377487577947169105258194133620405667422481317132800452638363052672037958246044973889911466963989483362787108980195829607261125979832782088927676187814362616327768184191943430295814459632095981104412912288477287112030931967293412136829157647808700587590689972459265052988930091499217064951990637194673788058911397261085503450453416125128902020617546609143698698502059894085175931351395123720978553162840172889401383779888649812011917090036570151484670818628852140281198941363612831572750013306079904786319491073278420494558267621051530736153196928054946218258359304527601010629863293019873032565037638467527070653189853807382401910688112542314697200032737160476033232297981357087727779515750934592666456269395603810699004898880685527474311567278335525565166993195408003306891988410240796788274073759027230746634908849471074626744188125617985618042155901859497564757891929839993803123525500658432288513048503386949227378087541355896277740893060218028852380701264443108999829851333083818988706323320063502419461593562781396050967018636128656741616348802427956895533620343798377809067493686104807269547516966205419354313182953546083355711788397880836542015344833340266684189611063359584667634615627708316380834788233943102560571089345829574469840961342474938281993136674545800062120161363911059233227837185247326238199146596827230209703744019612019096064934361559617805423147736510352758853608618656067799471674662757788211590855536246164584502612476646233492808533354171381583705142147790378796025672014662575206101399202940792401787181177053723031227072121267321202770048466731855293819408495554730229801282051391987984678075013476743768877373158606969963167222729428805948056209129057171291515623007204186441258104350989073579714416351563353510537453645783725986431426442579708066257451499626657879841745112464638607842850400245906278335218926558211909792727456039546879246903450939191726657566253363980489615894632221784694477800081343911279634900131881979089333507409070128972794286994960539324991126510868704038604291823871288690672991772049795242390558106396636083840599444211960623934369302203427636755722383124394355731193323278168050199992684073922619619611760704418604629543391038422018520693772133771411837266944631697022922979777948411538792612542406024265044404959531672947469067875515582739789836079804771602929607889899819618924814479237241963198059782571882633524793463673368655337098392399907607994687393559700062445438683339070343728432746139616321431582109309272799131172017762129581270931243816795875770975246372678133995752977410679080949943097679420887498096199143741901470182898636547517611067992390070700717597757177596973155218317639444156699782652778471390367261141895950485555183653194396162273393054755228943497699847417539246281146188837968205260812329507139323017783461382276707844610310193894829274033659571160919056444086499519655223675293341348774499737148835373578767465866987196626393990791170396183612609687200809340846470793044951150979199819992045317501808720089168572529672594291890530204937770321983391531190872369014908377023883970530345198029462549040082734562504270430123290109294848562862602434936684900914913532031954004795619049498837694002460215799789950874256668712072054019438470161460503253040477555125016882388280012646506311120842663093109348358767884777638897584850519845228061299472745407719503452627646123784246587666102191938385801425460125328789038674171209875320967403512167768520439825962969232420831101168042258523456754505148145029879339185316526621737545480885481769583095520082149195206017620903972356038214749839049691603728330194450444534269168403306082555744962506620166940397499384093954226749076333482902439430488521022429457046399888239729093121706437757303228479040671170851252762506198844690434298175254811982246438232854657382095685166348026506738408532979084233715432959079553867654554005565623176920383043467410023178618414214363842788486341353857438386749876181520449163020310403496435821174759037522901616353701531350694835785429850853570996384812369808921173874646735661249509911864975896426840495712836818523315494738919942838627688273399029238389465545762780529234695908507072082394683680549093664026279021376869166519684391733503562125723204990421652564428889336115954606717479385041555192605730460979456453213585729419952464150277789200019403826443165310468596509383703799420798124556066989891798245291273388503244581144505109124984204751721932139635430615068865104155514756725735721251126243542236347815455674342934384907529870010955655601849093927610285942132156926526281300208861725459002837536208171558537849466474729293428069409584332517070569357435127303110750483529656918041392044481252171215653702786025803212722344881166746867565106389199273120168231034365346362306373664670944090270939309218650260374979159977154976204906336415582648078049706380129438561077199938290922354337896389418698530940696388661833522875490148337688957549713953646969835463642156381937010186254493120130367690962744955396620607190647433183768506781682170028710895851606496400910958729749244368656399619963095154881176590818344593926306333834813215608954766407699012533132100084822033052289117296394939935483919393285014255348604880708895396544883888849392954682054367589423367761329783924800766413401954762400819005544978837132202626106983388765539347741570182025654331016114867986628299920052843193129137538317734256475503203769587144199464847712106201132342326926301368136890550229238442057624527843480694224886840426911911910698828124688254505917501949122414624040286009367289955299469855341696327798333099892786343817211939143592006727345286585379220104091109791147922270434169135081728067769114678518819501142989369917590421607687389089170380971234548125464896911405319032769602385742454568368713862846434602702675004633331761459915357768218277114785710835133595312234929356587053395551767645956985122158443113266354198648404868694219181873976685595331338782716701017222715818006310961186492240686832332410461686700081551144443391666236023600211047264076347787777335542282010011158585276161389775562193998123669980647372925961265468258686558473237748501624154641054533337956561949692138102048100028669864184527750236681513782111337499319234660258762831250410584115852250633107768604841270208871232826266229396879946665679118875519684394890385024141252013857756134171498580765421106002218956558352668804508394081565403007604802447110856373407941590477976500827020421208820352675635549615032299274834961117392711067263102940834273795052794425236292231441132007930916059395413470890921968804492253404431868882361268311071345353724873851143034428317728252130856307009203935336578400625718748866466400247197883668100608576509281077047852798836362401560673986051241191320969050321075841282356707026121787346350922621320509158200949258914585464019312663485105462773856376857837249922565034286495284469666051355124925355158660394432316703329346371846175960014359816627658841934225474239271353928107548423150519305801289082172569562756915361063466489955777294864046318756245214645185232953081045813478048142403031607817364375108089786568777068164864744605856570838393782286677756785510151868470498594793316508655606083220201248402371427009617178149561195609408609710510831025174788752724906225923475787104625755285591744556859704402474214395300280603061534847864728912722472152790416262519613169955858907567211059898003028022566020509244922578915490498191978836481072567924527693321971042298685664045609616928812860300609639709608088419606682275663368817792342886690299032631067793943266759873536317371139665061873235921855102505294421607926822546596358602164823312137713123191499963121081933282940753682788128524598038080198212317777856231395272448031811358876191464381673518291690390227280470735891608072655681319663944425697477658742067914323471211553380240921412901226412717088284608503127280633784225127141993578839071788119889592396257010504772623325560882113535010558961963207170470245259194674756337091352821584319001821001704229443434268514690084978019054833210598194062879693855513856096212409117081252470355752284828183363332206371221776353282556904701785740198280907765723723617914669756633698067403401585513467258182386960673011791140326288352671793334793801336723799509000802289567558249056136217073364917599559035813871068056275421880936868452774344385273878285873828731052665093194139388186975469216935024058803771847123974055664417254553540400534204589924953378843049324722583725001240217144887195652151539637171503445360138826896427225389010766370061478758302656049353096235915618128227779460538502438711034947467011356327799480203727449793268727618615909418158547726905247698944198274055932812821111282922464548157387989668972450346286922071758739906536133715102958543356895982694690346024453280012380640712646200988725656143886238321020701448678343099298437532545067213166223339417294351218497377627118394410647215727189556023235606224039527512235493569364150669734688380078171379829041385442873259954213211250399773320392460540299776114150184133692066080177156540795936056587458599477863208478507157463449400274290815764136158046042996975064281663334172472276781345545170344556633293912127957860308553837781099792207221252951912627839801898370222341689625549309142978118196400762536014273698183615046050796944090236189463986878321073493800591974402451753628982557608760818713591991470074529146702594469852668871945040988884117750126131155967656470862070664949580104637547750776254396184623454217431716089299969524230590656624037012671448675780619638590159397330096758405098189752052457355705395109145216659062039995810637303450608559252195394116912125369979586824919958756219599170415787521362099977533176796076694070999065029687627626016047628689748103981338810129792930104221412249963960980091994960547223818908552758660626641845484837383489018919343855997836417046667778514772491065492734009903351277496391113443374589840462946621854394702413717772284555635058740747222119772349449366332070395510133862089867860233389837481099320115341149605855125290995922519172046514610080954947207369388212189141962390984621498907388247238689419564184904097900597202885459104701478543145116485983819092570636101535638124695069857302686098397899407169424036774482824729613825607156388210534580460866768443837826269896154844985015699336876905118823201895727911974111505734935259016097043260892212323892972434945290292159587769417792474182315081242690747603225557292837372801415013988671563168314595331787159534029619526383819300758803810968181493853335065569246230193497824180301661315110664399675613892216348975517349168632339270933072654238680688811222543501813818987215449621172615872270524043122376769305239547469418911720039547179525122550351583593337415290803653704861778964013653218099466655211581267693592201775737394958281266675398298980803638595276603067777146075802967105258089867406576151902564729443740785972935661156917810489069892904391145205598735472473502157137450951597399811167319352773342736126462543094868656803664475734452539691981671501784752943439260722321557968593658961832590732564593849345677824478168482365254414015148351375754590941264759280841737563381396404181313060108193361732189424671943483749598852100538351097229457843918632340442430789328955976998660661679886465322757367490838386454133841627798401691088177768026757174703899211301708953763985724775258422268267963360257073869482210195019436100215699466421656261721372583939200747348144973106024380063128503786425388760557246079420315840139840699574093440474331619457872037237197179235747095945238727463161344066818805771043079935825885564142471567224031651754622497786982087997468736225292700356858864898401393624539989625812829795075573187334674013223104707160121740922498571404071824558429429054211712226683261538191159436741155414959807303077841634723389029787885585148658944045395394500281939671793635594004264193247690489512424848331416606184552194867811233356741676984759048682187637266211359493507796025299112191832032929529037866673104184532152732264098250583201133987064496467081755884987379175810838806666757635297877412739545613013467205815701149512753487530969096604188819701574166446080714725311991756103784960756028039495253177965108763114416435875960036017548673179633130875180126804376864186566389964569501019533163503608912707174048654220910072114470834529793172700058945939236989668907590271591973361830359908155875998448955464872485094274295694040129747970180914289852510976372419366918501966148312659384433767836692188000637096400949589621055357559043170982997181653104011163258410193050208799467245312087199061269346482618442936511398366863394715418882657022440903419184675341794048658548119156083134540102938204374502892724276828916513474968990804188416555290992837540997480868779503013987316909097633315743978299906386434413070482061283516465782677747296528933148079226541573921065993080783417547718043550501682074152990383663791064576671552470211506879507022014684206148539989080452824115186306668986539451780294714968861174348403308365952051196561067583736445333123724877789982959726424262562729209738330958807844442092579240262637380662210510602872576043656636361325050812460942202773903723572127526072881369216700661545096121092730124376443061955055392992058720771461756374536513482473158685199785607360719383855827519341557420510855049641511646315981066497774581331875789772435104891988096248751947834457860615802912509798076337241337896803543058363435438019151271779425107050425176168638455663628391163380956118283044528271979806926676423897741164178442044138683567850943197337998545908259262273222024345087160501086054852736848499361972733045077462775440325999012019505387746502310878363079661086289636041735655135948585738048982431849605574654672576302104816325155285426486665733685296976743539196421919345828307350569367647442807276587354298582228754872515638322559975616893165378047430911383036806990891717736722639021378645135128862513258586048713481022893929611973777977394757645815024096401028919424569889493132694030045805952005949368767495658498777961944604231631413243108863813806103373638274341795949308976082658154698112046445312913464308646813498719852069060960034857942561547527534492448316422192557096668734066016220007603046463794180265993789784275422820000747208536809349612800244922795171124535933489434128626039302716966990895997090739686690232742605293956721745130483986811197307853751665361760253042113789688236344760137892696801184452842941386302997340215152540777050990440417321049809859004203124152314661068605213776691230520092070484821530580853763430025038586959565929729382113540592986211752002574968338928261855638024075555304023560789081560631341923291362307123170790869119103890728939063211472776854824917562207977943045291311421865996582997408782507720316842959129129162370529915683304267158825637865376968431982637388913276205623728892628657623518290081738716989349107293491104236255694715663149534510554047261430240318569050903856387854714497803688238069927021422156555088343030078374632411744521742485131977401733282884325576688485900686160427916141655473748416702784571350395981361795358636727776723583931627226585233820319622455843003941707874344148215095096942468608036759897220981894265608357014013701423455488968260377808677457605163442357233283262551147974079373186748784643841417982857054213693895519268561488354656684198606535480579184978612623897574494584456595893468687850260391314875351489250910244420097863137534778646517434996337068529086212331267319464464149637740205475992847921112524633366831659246257367373221737985649521182443935493769713351355700365547989872399195827487723527365280460603885617775718410072027012106126828994655570949721125497408678687624169458307631154592663816239252820037398193719192220530035241291649952945943772878721537712186445816421774872142816677546133877091842526863535452529916209788663315220960470841277414147703056893469226549517091282195702527385426120750226705239082071110652592598544615598859274793617549523611527954721929985470688744167215505811281420136795821190558015376112165375475678925091659223512271887526746006013363572069527376702246462100592490525763621323784353107399528146482573304790571133542578230884077941900755357028198865056828674809295007765146553376508872692474219964554727148646704963597751778674640713022589304469631632540614215164591021986918788928021764647796171407887509404170836482647211267392680769926643291905974683795196894671340547518302138086619807386854193461381868912180212981064529074815954726909087759886678476180084410978322360165461356513775468762808933230186959854401442601222076649204514447021170597768412620826718378820904459364048619021266681777132333978304776286998689829227065405828392447914607327435381639503893814448610321243558826207479413656515178770089273382159711908133930618968387255391534265545244233444304645660538257576122030113348025082676907881036852828065765496607673096596984331730367142232212154356190305955975096633234347334683891965414723275692727334707538816977751856715992172570928022135735817798471120451443352713732189373583560518069475597805150833267289935530731717779595728277504275685129596504277684691614788180636312158527229376954683653954930638912730738458861493989438824424604712679236352856102416097156142200841909914402079739820689958455495276490197385876650838228421078341272435840404799512089610459241012295474327448671342901594500924672617626472788980687064720979435772867740602015185247022686852695593195699784069802477215452798023995982517202145336604740794602012770517992017109121474354039808267285495153190090027223855269404149180614791618494746928421205327743374671421877780715750550451204321372427019180204720489671873065522070880737638773393261129400439416961561438881241524698504561820551593569908762534502635682176719702920074935568995992957857338002329573245201664407802431268650578173908138838331075772792427849847265336412629631381891888397539069786076800075777229644958583084685218460873240782288968123329511871770218845296515220696961198157954139151873641083227581065878562784437501614151434006459239496144813081418820711889486049412741723208002198051626795151135784431423694425068457862023485911117131070203395684289918925020667510791256469240901550717003248758986968594876008827130255886144940259740227910145479566536850461001786245170624706885427480150201627351489118277833660636745484198372305415643335022670922662489731674871019281819330692238292825432630782994251271277538353943302454809992400258103311897317696675072625789242650072704795407430322554233496807318659143434309404309451585619602234816010720566716742081471740588340665111344516363670205159695354256242685327815158318606570917927541474020806710922213652880224092695733883862394243106550545550743126376655153678822197704002258086312457625885592055595937878296938163292122174601804394139989434599290215751604115505796744675419966827799894661436331401882346874438031050427244456769242187832396526538303525387838677870528572832851327527846984806300016857505459713981414285295403585567757580073565706593536863268545445696683924230604628747968700611962444283076504060985068427851651120323595572366607803790777765031893878029154755228061362222862226538658090327005206482703440473013735221085040703963344855799254301597204885402473439768906931978274847312775190255216717393819086966845820302982539297900730676319397192384369665329877984905997560331453243710641581544683360452105151693264650907646110178169692538628483389867129613995436660923078313816995343251674018929689699907901444939168765921330552380314843817986149031215020586413500480251790864971820481388446819263786315562112602189698734125234358391269393975501160036017939568636898226101705114117839971035517266108678134144566955734775438425277075117051511926586370192306353439787824407372657460473767858022611066546380518460227050467054159889366331805871677806500941408348923490664888498877643725932660692197201234253731578090237230566082143162819725186558589999087538137737040833852246476881035643775020404683268447657963376175977355981230667514866307299034499859341239000184596135973906101493917742213284021101670886565845213024668077226204474805332673455700741312661577137966701859726784192698400249785034831269052616345910729925386276218567042775457209611899289952363293498616640712028802911224384384391150357494410038372199309446401229584013596880660063309609922488645678957508948587200912911524509196035878167699725036454305852963654275296335583404575213222150451722259135688063808676046581607033908493808405123369681727882385020335086974614428458893082537261751915677893266682183009222445666328310272021944174845040826918893153089335020927866463171522936728576945519317210912795013607027181925833948320823923453511225255811637755995034626967731282752209522049596663078356873423616306208211451872209878242567874037192072617933407265283150648263623783301037936762789614315598574864817892334738248718521160733860479401620566837193495374262056540947445573421015200650757635240982382014371528979367200731314538737149916384813746722069540268536756289912156388434037770065419928754487593643099849971942658053428888590740985059205320381021175237840727236053022098792092663187518730459060863230141136148601870205058755780108970575594811123266598252294903738056292394461246163346292504218400401989818301349444024049643838188834606687507222689777163598629326089981305156705656157966326674233674165594748408890256432438078767134610739364256731331623405847506649828652274559820369079016609810367341971744648833767679459081389131256127603183750459851670057763681508928868218860877246067558310509891184598918798068589432130293094930411666851945204562964380321642388928233011166750712871208328936334848559608550993326730572107283308568567803013185419458976335947570953358077672087606382308815224385716618279762285370022581741977744428761622219699846358967345125327978577945159587538506101876897780748011895121278687256676733175902702133705539756252205703055221121077741946213144030362762374384327680418981860990990984084574780176936911123848021015485299631214263979456300955824715155802774511921062475837372529757960306183926975378612185177888187038108756687939001233237822509293788340064535318886603943894083287463500771926804143836517330665851037154129132309133707258747649850429105846759984010522749849534244567836326286513839545322612624309916339495610065794817719878630242517602186241915007145289894456348811784354168168190220569412068461549836006203287689429330381130028898056552802367728418426049211320225846793403661049595127641062749594111802213254859530519006222007955617968637762396115077525021395376255848605778768881237285339846223978613730274673033595765290744539381269140073479373817155064355771192004987152372961292929666406620706427445867638126138329633375581549894629912059236980973686562000978881689431479466508579238323026107311554624624837555040161797307035633145060039924386037633841772415418456958520824817457112172067033671512846355797754047233640185199119837160637891611837739599333316198794855367131792916289736996512449063622935859094940754566386168210165994527905746861214946264048694376870787037284781353253490080694734496966942263160808858122935111284996485442952126583816138750882908848748612852201324389990926903887307811651778481196105876830068157528850266773986522786994122864149371318254071931044605435297700866680408390454020844867902333696264179385084315480455455387895330244803193424479716432972966015130720551360086391041091118051048886385441499577932030807952696235571716567449639119675830374902737437557869307682254792251178553468027833170358935514380494042563195997923394434109119959792736647010487816606950745638649486606205793635177602275855458609662645951862453998189246674016126629265934795929685059317064698909076260768183242373165868137127896938872527600847148028091834383735243846209122241737149217613209597261427561126208297363662741356567438578037989530886392292687103732958033106964769901457030828672967811557694726307750763856588711961989615274576571602430053719766714401631514424830893906178360837533149665124819121638082571450539005319930581548039168088581049000469190142318122793272466472684760386179384375317634058502278621550823325131030196822254981449105822152076288846836791093235300550637714750229662149444619665681101415349526557839339953369344448726199647295562730400125450283633847063321246121797362406460130624366959235293078587556311250368607251084035542776578468746333191763774085665110580935344406679323934078177161930152491263449298682406648450490942193630649745071542739838723076601800287056558873669100300705927953601603658616658756440177661234670594311251988974376280049590999507206278473539779454167400630311950284966522442510332008933027399436683985766479227504680840806124199813470765940727254530109668111473585836796856017408023321362318837959622882206252133846524761384606254667016400892795410175230894695108061076234500309601186494696799602732299771348315797837066631119189945585418979349003518072761130026723094917657921341604991147232952327934843075261979120739937426314899644835134939485785056660786680295396577359730083141630629341112393797687958355900407052142682753915444073303670828510496448012334524132861182530266219003213501666878141875352751976120091434391100912031370684785180531697973827756546377483701359747977578022875189522693756804677052667361284206329681455362776324332222759671664870825739423290347635798516392491292554106571071420490056483738634559694043763824705941476907295197116039752918055776338363155362147801555280225963425305231726641969442673187185360656456069310507447874935705497784986725103871328987405464659580985364717786299801314275171779557692455371336955824584007178087846830358893299302358908544185505938794839737817560595778473081293648711073448479394700026738755077946289726437180139142406925316032780535950394576229138670664128456496430092024238095263719862123762524554214945948306784253652354652195572203281764154231392781340837269129476166632745190607325953743114094403833946525633823825099023750081718197955893938729277497424609395944702507072810736268869569859349804375426069530289261463876652020838729631250381205857482001354662274975033701763613944216602114858982435400166727387804805604030647353929759430904197342727760843046399250278045245646661095071489367754396846506010772444795330444767959047607847062439116720198888272588028055240943531605191525647681538161276502569568328361950300639690077703668443097065580789933262171076990578069647682115461064744207738019798560719381326676696615185886902367010685550826426586624448394188833819097774691201727459679005710810747150942031595085294784450790367586301337120376739251983683259741598612702497232365018947917472741518930048189451983271235019265472084369021990896651524216559874959142131752607656624490196863306430221397429960591859432462116465389282658471472590729475433730113868578923407409987471846659331141825424935859395114666997838973578901849718749750998576773779062940575139859964333274629517266011490249501811575148395561111982217379802920847117539967534460400326832910346080413342405955534046450052445955056756664352540123426354552411544791414134165825871489605855977703165070827368580943850665608985188654798591730100763401595472799613166875606562045822864004202120388906797813872415016196817410011015737907935326538892389161826220294778268967014940174154203225601996847193431416672329589626570398900518504376126422774600114677893400928015011939756339951397331418077936027985747035777520408848911059099742508638950608909649092050984789686849699887799078246612228597784033854824214838280085692465818115383280216991146249276301686939732478556932335446179179227199792197270549126461834972125338086686534297389306363218600300146547153992756483176159301672387089420150148878330744193453226957065521006486255805598846391024875228838457936987207820474256348555858603200209373851690402966453519128059203275001359809956088514419574414323639831863350441875894287329215406651129289821350849203249705695498166894949279700876835353352198678930821859961914853775468407590296870554913569693033398188116168262541273493449835098798576023563111141788675925829326749825886428665941187903124446329982013401104273069404617667613918797203378432688282241603571836549812510311826416973581826868946461077419000567335143888325034861996414907178064741859635738293948150321116877243321323177542686597217909200705941436745308258552238258078986450538428464226448371265868719121501581059199190137027210684126610642320735417081875288854258677468498311325566676842637093044492043387909293558626228712655582926711517804520533652083720440633756239256767891730444366801344150938528700140446201752960295195512175503253176997332498613159237859460500830521415717098836008112233115887311628935465163310605299402301306288257682252299993520110632072878909546116958354797239454671738994432517642875923447974655050621645594618057832752178293179061511702173654087293815364622410318188124521871617810581464177780200330757383602619959827939286615741702397784492731119152406559505446450870874167468631050400573205093190167999051133825865590735924106036373935768312044024435657138727671923681653498898672882857355941814179819692835516535765553514782381055289916356649189828332997842342216628268930610995445611724060215450865202423205275145186945840615973256568113951725146919553871087235070582963745478465120411191006908824621752029820587129902532503048127664845945047456684106480513428935448591460263238709783407138967331435278054597085506508975186622194674488269491759045380171384117818329478533607168951077256764263942747664542924993542717224590576361034641901449650746920842775311889477665430276490656628562588728931498439396330273529284441963039859302598378092916492266574398670954004126685473675995556445015029261396022035788792380549183851241085503935997918683213323093964746469427449937634467327305416541506362317737417154934531118623986091989115195487772300836774338098696204968189387191009187123958874180273292654247487114926518768043452435185774825020449329282366826740156886453321830924316603749660187131979359808580704865553637804556083501142856323331719409498610264368684593609364633524366664980117343163157653762172588018416779167969509329939593971680149385114047307219084823920625883714374851704461018870602456460555857004181285408895563273330797028272639616250420591102873884314828902279212842816879320621808044461463675828325886719178764070358903025671304579168734626104402534716357598818178625127464055904865080077619757842720013500162885796117912326029272935593344320979123175017227117737316988045477490754692431789131564716633674574113905573154275787540672621245352654808847704572555247763015529412634028528117114316605546437721987733301843389761275514806064556995445377149554562584923921187426944494280705699035186276700273652182841968812685151484296882575932479658584398420108247749235899506702937990172455742095907137560393963553632811131374086416704264626416347199384413786532726812402153246790324377769927867386567632859867588719188646665978544139422497169062306543819193708193235651404797497383131916460566004242604902402066951160195276483967013512250528916392415394875883148071001552280335422303685505205558380208866359845058164126047159795648187517267408076260406669310796213326297464185996751315807617074861859287818969760699221137361734389600322064932377160802183035283190408445619131444869677162800731528736392029648568149253359566572878815642489194568027535156300338026272651470625524143433944786224009017178782793735523516517356295855381017518522078266678944466621250425294207896557970168930131477971318105368879908983575958727730088116008907217873837294804900762825608671355162934413880515825364056805260181229536662442508987471991950065105205717597554622646356773795303853979941041477853080248444429975670239284615159082579821140837727909979954341894536126317047874976316167160677056731015790192966742217301899971012008442093296974015777275618403269309951455398011532913700670309665413268800294384240926673233082750197996716515139338090497805300411374490846106533932773683011279606875509690902820265895882078443801197335244249315190553772455335998505103246183852935276402577243016330442808739604918498363800009960630267673872567826193686831079719944282721187156758281571201247426920693828544095300863518343763646692647079445440944829612071254655177134580524946449564501343037322683110610310036577236200265030984613583676764911414002948754810955654616965438306840559561815969899745912669902166503041268819677381432833704686568307856178378013198659712500692059477689932027021696809409452555964628455706375786061910158728325703944827755694303125535704824604484112199594238426592503547467659742902793223580087883486894693946149636180020113162397342940109954660056295309524455670985980807899199935199745408333542010248266706270737695862577757680366438576268663214748832199605936568618105861979122772223171798430670453626825789613759467854973935299529394433177123577911280202179179372579117916270501377188930297161435209288882212354377657953201850928918178985505328534503534210985002628137069088946430880766864976869397341908848083762406849974145627466933682640661283312684165331527652826325320218206561017553176494969941357498389645005580664243316847561222188392528961045248189810356555617956308445044114497644658580680355236584091397570653735895422064074509622070236632161457981779440275942123890205098542470841571192253387124650268776087779237260056163828854591448826375347694210550619578951992856179905245648479174697825042587276515122409284888777076187419299373392370783973137298083784295658436822014264862480103991957771422533848778378639204213105588377478194181165437962906964083271526890848404843661410415384941897425517945206898993471656752527512690600315578596611987943611618250390033012710755268435248003798811717639046585900920849300850966325171110116741096306681048589861221344848310010861561333499763778427223920003821504472377269541540133936849648975066771300265228503453339986935694900230351884389451192017454238412439270612472607792503394123114677316168803252625839309048404058118237617583165389413778114892371697160661999092154849973992196988330136623822599394439007488361054259281571532271373610656139210087481393273608520102145339246560145454171001903914176787117222123530341679048597935096068099265690736481750937372664626535335151646639234193777037560155508220223631718319484449550512119316291314635710950661693170037648229579850192375345368561487379697233285532951201849338780647525811889701923165324268690056639611486192136725273513076329845874839209589442049717534119801706730623148188401868294824504956880220975140610126755337579129082803047951973933816659784173552607014338770569468973335115557698931312968099218230075960187590773261595757349011172698171249089811419032445983271326753782463794369238932227315277924105959582223360959424389768150800452791362036676594804064241875473707688504621986074581989837896325834822801527608590986772774830059101593970402434884344631442050422954902888129391327272942899260442404517880555440207687073001477894154089799310249368287356621803592150066061745447451185619829533512522558206642962002106472828708678106214213504810709043965111023221449629689284162268952733843401009579707632101275929815823203041220138486204740900515553217957555205337816894095561110190480892939838067167547383505320471491914001890602737484587086001606448886348062198858308464771466600656662612253111152322340177593459650631642608796760340165440592456202388836469913560846791388801135218701926201903080498904528568902952119141184668182214860875875637932397927581576620969392126611097909227399854946269944961167294907249336892235275163575871729329192872575022745847253731675797045237702739317986840466896991762835657352254868495980060760403587611661039729525219629171125994644487080119890609330269405649378830273242049068217164728653376204089280152928753859165310711410814190830822866756225987879910647251407433011176911199169881943127208675720222687237814238085684698978112825514253947823208821731243609433372298488971755835253299103397263225900688177348634249436265513928316971637438559252853264764635795698780326683491465541803874157638898373802946161406052025410061489857573969675286748856252949022265335759880448762834039810189514247124750415935985588513679611172158266185962780090215072753783613802720323729676269090894227974491589498053712562905453734809162127324830698965794030076327392164515508376659899374230322524169063587740130126681411507040961446507358128960335813201328572563638510058841808269111656784025705637896797066563382816276731486790244461039723432038907395830010904343482155252278274239142314706747511972861506078672032305519300311429673371023872010208352308222920274620808412311973112775839563751453419802128307908186009376583648233280139741294005756318712737022352788209243811545634678809558450076231731086857521184008245800598222072242556876839493169660926270016031656513433451830618435348211436729863032130728210809234255125228980284266835605812800011180867235987988662145646932884555055049705784625577728326037840508205631745674546631545550691001420436442637848875324925795046768323985998454919199916932790512335057920407660647079276832474415504617420992232800779267281944568730031792866667111027998301598054730099073436751011776858654429321557591805671563831555741453830619409847627710558147045087941205880099581489238060301328114084268789184123866463424960004441403882185183341495595363804025411924196418491632969579006956061468527572929508373329845618110008769006828041945473947209068472915652217823523620847193580270847316897837170201738800081559450592040975265563318588025938210287202913388514487128771341645874018786606331731749570862094110487770129891605438252759575045745853856052624450347472182556929835611493764042829463745796001626168448042068292861513343792533288447428688704328284334462979803119022870474866030188641942725550788704973857584335959433320653833250111620234086659858644568291704435081705523731043989818012166365728049417157533604675723148226340172344555820812030595359924410004039639764624040869206246257050084732118190458958993749100720006218859891471733928617046682872257413924979551062386120951854548615787273022055935903777725065276293858489480877657372682828758358667203361641951930877977122775866301303165945736096686684975610295051508595338935391621920136632923116310305381377461574496411922724005094594582191756960992799068843217676762149656792189433997821772233913887441947674393657790349655473622880868643766541861885348797261694033655428801899234582380232093561597701281334539612165441113646176284584192560530616902560021876720761026262637791046885011341768935626176636296361764643758310151484722059840248261252233570693699647737025925708492015171307424407367093337804954670519398507192975097396241065203190243787557383401667032696753472790536100916265198330685221579131375374249094254152091974554399510234187744054826498070040092820645630165777434950485415929836387068396807516924653082372306331586652529975069817429107298207678714520492675274218239481991239086315875126868657234225019657652669152898191633722163976212831098465934207493517758691166078541458003820087011120937716562208760261424961958455345951145712147842252950953907925297538173994831472603159122269653308871228010263221285174592712772917366391983871416286345951070573619947940658338658043163792857104900075009740074014202384309675436467516826742792933912308496658308396864500465744158766449995126350578810308568423599211025502806037688902723906253121033000114281344573976159901448867370449113437301669384162134952282068841445150265675450043995679284156156700238183232991469305864245321638643742504568158209141252435372519176333892943469498708591047606566759408049288303498487893587338658104125365264914023552439554886356984613077058037327880624325561577364490081762167058632519371268865481816333838111367220001577746068461383330182903636228598427073904528298804224346562160890150871913093734279139004197115427484678405942868081727923607906756772244784974068613193652812817087992666055916398400861103415774629107149761766633967316234268257851413380325925686188373181401193163180697707706215218755944379564367764147517991715152550254640006117036450417652471272647421654178407456430215625912016035316160150341296111016524894387403884519373346991110804130708867835515569294868899145886955340390842883768566383306514641654579818843577878750703251379715047288405811790862114771727610912341682169769396223823605575895366894822596759474603931213270729280360142954093855442837517933501717574152162465662732147420003486499038374378919743698798871040692556294227576070655866874219527235319554560660818777992974396524082807449068778173928707235439190613287414187489966153468549473960824801967093503314236710832873476358106191060080746051133819261508765076201443805235027491111691775140436322828890007279154305725453549477749507058436513516656648463830849451828398820810123931868147742426093829616979866337671545657245221750230278042728579260921416425896318517464580378034001512176446258020023930551460460901687857198810669628166132162119034540859076788457469697685808502977148195813575963229879989108464255331903900969657113264574970191709004996779288033962275865677954526720393677362958623275136968573199527684218636379430520156500487902232231608053949590670844734607030379375632662434489762259170605784634570151327811041893824547781222975148841410342623525692331280776287440356946246909198160687746269531681410927232600234618214047524750106677829515915556182662281186895163368116204029106692879051471363948701777650046937067527437246137420345512049519194101725754069543510835350622218619993521894749705851339869062790357574260946615069739417181336851610028774128802240030307917640457832973609778761032900359797980649521541476707435282486449851945547948181829236836028249715624041363416518653807653956979985161145555880653508508136231831477597131997569723867740997611189574401904458669781232258088117150346954566579609018005275542416396641266128089912179460661093139305148855950577156221545142376508899044298521681215827364427600332373449942754562574180476501740315417857040999829381794609583313071554715524091254830682146971483924704575653478560752024636315356573388763893116897974187684955580457255918350143524271576362126063136090001366751124914235411387972222648791577166702305186343628442224535843483248714847771454364991285143854888366920294018384137590427757139091423065134606286736283674459157935959363921266295435648200247204753187881921681143115899160436656680259682161005058998733878456454546551603745525393243337656139695053087191932059249850632811337458765899921307666457972192619549180348406972077881749818710586620335411543712807747202585713895296774368574255918476109905364010971269132516169920752700069845325535249613848558388481192749060195093115610244922790541657152259495764327428826944766314168856718082888015519158297658215287241440529787054867802535924973072795255383778725497855141340368366879398027169725853846992742776519845757678573428975066966810059924101100250053034222067510405733826612464198742616418343814047247368150712051098104099488325130603470388721012548341841788824468517226248624394018888699257538708102688485445850631113151058454068527413234172960036342614099351568235680460965857179457108592714560703086700128295536652887708747774976869012917295933154721421511723127483220247265067937510371188281845064832925050721683828011578049377723918544108188591928601017476558752838385955475392247652497468822822633153227132619679841373627979413511167060174579348036525056728609577141591672230280586908992609623153346907773805183668245085044316908844837723210443414556981136978090495596478319855557325834921901796064487715408295190183996835914679463487314327206231275309803800019807264272636401060706063836889275586807905354866160791347417986241290700830147538736002570797484684532349084087908180396634065990465242047351280932488890970758250179213642283043888384435875897084633545952065944577569398689692994607933438400732537287814966085734567128937554361452257236792079050150446208726690680798950088453899314837296140931843024388540641354840265786292691775993681461838522697396484422842901346391441489353399659932744714703449825218365301695071932556965936072657070324991356648080173133675268343431472843956105507391893873088068101379077627966079836643814032721544572753173515220872411739884606462731163300629940249443441410426734780733717647273212629288398123952545520120789244206379539260349150507939002870368807486728213416652634481481531146014919070143418629154097479467884107118838010325618560034241379057908306331429637055257012275319253786301515521802393775171489647459268180706922746279885963771268904194270643266142172362558658513552590727459993897801803752725163170100255159466924438921486755589244079397009900283299462188299310538660675089409755920928760710317217452230528643604221805989221029321131600966974429318783690755962466614610997466552512646274965709660935479131802031676449544107254497710811251707997838123279320521387320889878523273572187339259291957916393049365905077535275223034555627361674547994299497526181307321134993234436740477534186458541297295691885217901529978424914506936967450559224552773869403725458111063242868286426865037301756780010790372474613643930781063319040616186369832611947311735642657843624846958992257480737298656321559867358583913668052486240805586495466952223967682786884009576863146808113405331179170123842427368534262735584385796553328001996210254413610087178988583112235178950827576774269628796066377492422863813193967760066191749611120129470270541824237006235391379723484568951690557015756681111901336085705618202544869040248685741390310700127596118879481456143161667868471302521979674324143500348941206698287527582827747696565087956523942602951846617360709082273946029810452838404801709283959129796464730811142119973643318869025904158900733624563195710925850584605936755194495584679544214194770856077556390214862432637115173181575353330760623713604757984989303951605730798516835016832238129217779806105278717014235474207324143543359795564904247146071219472459585569087979097461239140402135801064595491724341165333652115225324713117092238738619981604412802402808079269341149212431136400795253962313701101122858569073615317938415540188832976798488333865675448017228288905128653043626663090953607724517067703215636610235579299119282558034648827280878174380326731851436063867352907519700133975917202141215540970478855035423182919463383184741737761025340182549552326817884184760317710942655726087024062578493898063524639372509376020557005860027995598860491939056460703672955849528420470045618844720189053563482079452163674599557966148488354813562525624255731713697676334877766804978398958972501003062771008021311358342940444674821110857622923462867275148799627027652436183740529607699970124519201343655582739316764772239493729876524859398101212281849388559414076916870956388103113432858304552368973804274365031355485336929751578233446446447544881960477256036210024684350730333783835786463499959230533743441101534870348545208988313243275177751332900504236081871709593848897338322306857899781685795126361595451648827837042907856521908025349000151462936170241195426194207008329300097665638998573520110278214708445383748418539844498932184084916247985486180951574276611465787275174074159570779754323159309696856222891875554865710759751948345164453892034966590422937466251461488792262238820321352465580124798078880082780714144731290307574041861799943559150611886408973613355376887526106680409142067870489059075505295338929856452488145936063637966596800690605432638060902325283084288693316309536687322679205126738083455476235535940679648162924722738244189586906719732140219577050452672817269862579875944491727381216671521514951364645740684001411229160883275732941270473002528349663605646346726881308820413605886084118650888382964482170363349968370732006719312515343238902321927323224548977260497781330697611817980110385740265979478281129892129220977293567438816581091413535503797007578983813195990565703125242826619339657555257014003766607731468867302115578148298434962422123159444445847159133209996636046492673346067040701866520249852850718465590154924655127933940517825565077568798931337903251908198440052386439429229273059724140619670345963801056713842735068124330114573778917179249129582475496537843178639875631344099771167490086518463858038670205033954697057043556731975622813187620915791254232164787073247301113987865295457688343025405109690399243390503065412207711516424689397682709381578851473603063159937454629291416698754565458321504000005611656209676919342637245306638241378449676484187656294411076016453067925805478643042214760338013926680374339970868723197625973131947444230157208827122209049925896583311904573854240895935119091881137363358057386416503629183264954751941717605500370567505398325149921001029636388832016513412829054272730661483497959873942797405744805049897116945957721662358883844853878237114482587537920359219704766266452907132208366293936499243447184114864962723075586108866898177023600611828835315795894891614199745343239718831732292895697735619960173771570398788641689780938296373158159821322712724141685239790040464931699380286362510021997902266171205442883006237787894333115474404513875355856989176929838304335544586783247261106513976382295724868749080513158168578214694282616504018858639183153892913275376458795746912183756876912350804637453872474486011071450507704716323474191331599355998667170691784572357373771372134657587240045631715324211299798920549915416887424503190971894050363125688791499579420535715192395258485079022765296663627484651135454288289083544928588444855367953923612760888950208210025104449897767512614586948814793847914284829709525481224677632806199649368083324435570337722777171448085683304205549160440917218023799974121915996087943208069266581196300753932884985839054285100218892611393936566804511373567034522560755293321576225779478227936838452637380329053511629920119971678489326688776620740560407657778889019135069842053617885944046997268077263691474783436213622693287489428757032496419463304558983774220237125711769129718324697391626674601531846496415685380497895812545906320374151449740919856830669600543485338251934548732613796452059381002198576214743575170787213795067416792012647928674700997960938671144997543715131109527069916535927045782401713732124908836764361586582477184760637898245574665860958944985528599573178424928599634773750392741598210079973902703825684940317698647773494651753168865373117270337747308186399030018047965824247187176099714307022209465556382589030859550115414663682479399063403150563877455160312118553504097172805863663224511903197566485725217365950812182621560247374618797988524831748435938399450494165723004534167341768124025255999452377493623442209103854280800566923075595984964559394539758276255485836768535269557180544998410099720309693675970197768249500515252812002735176418272740444069941317958762059653339255071019923024582990123026412908967299174846399958614931351830427929008298503994835596565616407609423509380770070735361734122396110109872281350087482953898902278612737261366325667228879931119958544041982617034061812873461543515681029929442654249064394383647218283313885457435721825753122257649193937057869741161303714287324684019797984216682225132346184330504815211511041257561899678198281940428961222161114705114923045070140236283091512612395937838293708318761540162572354818156017840036959366183883407306489531195147796880177596169393174856697851369982308750050724039286719525430485871553680427911485889663000608933418087613056100740515620282247420818960190473085594117577145018990571674520319438774786997760029468331967166238307136491779740591324346269064331637868417259138701925868095830369571267310876510109673456433610810623816831407554328320864547542005949142711999852780615909706598431312953308262690930225175646363832049391084461959996250565434667268154326710403823975614066010699610629818865266347264654085707239018802411425804474908738823811649480663471088823052856459026106643662432181303227293088686492007164123428404268335346270447985923811373296293177845210199810575550599704541509606867296186785083964076153301370986459684611756322520732060217341614865409476128804997679875996737031934799592845858422018134950854493767158868385677615100852153624119204682048011664233620136320570712716614894895715789281468261541860581793811428445611623444572833865931932494833928188889804685669371068923397207831413973127329504624573821325666893631738880665542517886587911548120907181026989880339932707437637531102674290884817608888756673357307408311464480501904378554948673560576925325960680684562742322925817498920760178976175144857254377046152705049665450691341176428617787482909075440248959764649917129080564722268497500692523045202168856246659393678795581064767265136619416418275221697943301508520884281947459858917571740812276521513130504294538095139127889930089820548248547638904036096828085770848337746999486547379447260461779382932814081027356274615661118951197409248379529546085590098905124584252163005977098816918983499008741919735203360242349567773786414094817040413744997923230229140875864856805529497469194470576657446183062627431489280728348037728440790269341353628956915442268725823639112301925012979583965930516120621890547278039025331494050452502876454779677352300840606810074224079356604629442504194856344445369552771682190642709830150708620999999326103392456784159303541456188606727685820603072028358888156859643635014915867119282777076912663090001447635408102664614017311802320748085172826704136339703456936692716278492230747129906565799293938357911796655219249868977900618716966432581568227488975864721234251194309668927657287832305733002870604487551458220118001514235920959015295064033863462170680567603999846306467669812223869489088233065915277972957557639237424488490177567935190639872417377878498030350381092681650592141798782538546664284388238032439326682768611206157034638276059853635524508313982043081287291194667020921926302227046160893771176743053020028457858274750158924218029947392106617877351464650946320125402627551589907117349192943136838828902435345181966598653150003156013522034900756844451766670826110395737968569476646647232939557783571568025054017466419557255316720268000401332037221713579084548743836666392576307038479405768382277102312182896708285755066919073314745995807524474201962348199828749589375294806944251891261938761136401624875375097778412906827667575359711466213767791156438182909596606408053668485777359992078162678295557700831574806477396457314037648203602347309265052683637742162100034331288071628093873304864642451718893571822807790289069961823698228286581387459957515108545393808870675061235835655056618292370984119556284282681725837917741201187954811449133584809504733220182121055175022987811423691702848099197368190338541427669041081950355500224032812908354176647318098302896260572067030663171659834480763681605195854424707102962522745637777708154325329068512512637208919899429972273770655300270005351745344888198982305885931502883204743694782879702142690192614971034256708436486289832823089402772492596469676658613427602684059171445300131527773700335322694494220262738057557458526333743344482995975240027797872498809142737049476178247804769599488112654736661402529971574247455362699524027900151879328676112022071474165713667133789795266799331287829767692386777808456839014981614999078061231867385138861861003429722789340456979584029957133414951170597761713162899865818548801712221889422284935382603532387421979525048830286308303529306970175152336354278081148291656415017770255852153459755551479667971141001997787341147215133471872981130046911659560427633531322076049300836398068916845523575699702420989509414807240808761513255699382807846595249288567907378024623484651588358244403333089337034098231782523270026696140901162438980822973584984365223092328147894967537576726559814888593274257203846686479006008681489723724327265536522123513792728679337649750503745415174192064849596629710545832268412794280336525673570985921852991884240838391827913578386148312914849213445225977195399267910519874830770860548577168817447296069688906485427940253830427089468224319028499264258862652472919129332123331557819578699307385986770664072393800693423464404996711079756617223018075306280919444735181105965570758466148015695228214265505348034505548778676000231314455678630144043397536898044842076351181647375626607681486236009693259693615743152047110261076355069206614450518800702693659990167201126893872236444037309560279974114184603266166814016657061488671196066819946648037204723494138015503280268273364955113042014086924359529140833419820083294585753777280703109296642176368573006531624212880892585429395954464383732148454333801471311950487061349353171007140215128491702646806686446444875769744905891069862302649273167195208141487912041912634847850095487518386178726836509784375220795609985223172125927321910325111199341471924027684371382646100205041027679526874666965783255045033588227851160545674640179025513924467159042761515511664964348928780444159865641280839413957445251667103136103441078977303003292296404713434543199872817097248469558042032376413992811251922433401397140107032600126092147896838250961352504464447295102163980030153170295025413290659866220743901365696523234138179769695980973652213212142293117005065189758200309420624225983284278076503550737408576614736021496834508622992955694736610505288664779505201469939855691767195621071570774827203020670146845440596430636411650592544909863584533316246324555098405165093393015385718168151487106647754555601519651306512482252571775795549268288478229422257112741212071666157731043042580131255445919890824130638839054494475715185926914899664086492979689504354920817914316916006282545788391256785333554212901181337225655675406975011214569544273542775042134764575785593514260930729892102954659563441449708713632730170661966673609252746794137822063772815258291477477881322136741973513100525952349382365104612374421978594995455076386821243343209092216201592372818295104150390759893332608234365689182209700093812920155213875224442367304998105780561449345239861330590749556992308788598693244020212582692186444162318003132031257464943293869791661689999164248212622103122675191592486456068458866721904632620962060768769345661530350704099230826136959546686212452843538216482004972299637375595060586305723761540783224488677008974694302389680241264542326375846918160913531982565347955653567626718916018844696728255848473835029101510210279250393434277399832925763793395488307483183597259224705903209336615884433554383353270372356201696393457026338074039523108830652028742577295684516851546034744470196611195866909284803939936152949308331280612613627413282748977403495355613076727597605573341402116324414226882821784308345813702325412259325052245103138178680702868568526438076090876866196482785499728086907256814901422516502422756579531818810454398233909750213043533393586014291609542075368579446005265579788686299406893839804700296659649406107652538864023498263675639143106626406161266894960011075151949758839991410534782301165161115500088989135747564586369504639749616120520604149464987466788043265237703041654717132055041926701986882544130489220988556713391961922184054332964438912875490230708865309491645182114246543667600780601485457952848450294539291554676266506743945546597089514972109137876567225976292362540507433528765235552087182470948252101382157551167699634439561222173303004493379049890502749263661501658729942298642356916026966296082364710037073967636564820081329291373523964109065671180772489542795879518249078015154301469765041848990753415540148521895153966024404388549309545683758410529839109437602517418331952769562181348773678408958434141812307405304229188120472389141932337696817139804676062712418358277907923077823265931482384736232073604050534634526132615140559574694367085244175727153314050883327997145275082386219819615275332222047032248824052024243912141569713553983753545931988600674181162696382480967802570731591948869726523620543868783139382561881969988473727868312095576309215134413846725958767224504471481895995747915835720017658895431703639684165268746573280246624653193194572288249402623038139049450124068277939949820923338082049525653320085256348076705772158050266763109108457020469292608126064025027885199028758615510641603111121841458237318365635041289551263329454343390403863016232535717360960607003719500664299839685795530239713905420870735058568654946163890893053539742238444412831700649027012907040885511757252646168909466404024128831275009375725061239496733951242637815256368592283386116795733409138929012142843848164700033758120504646649521357889400534746381256267901039703650574453198123302836528615263938706337912358892490409471399447326000016685400074615240170505742465016454556157550149537596139676553265733510488736705804454104233900667234019800855547346548529894671930154651456900295051420536117614904308201477594094704517237468514803226672671504721693416697370803112856555606030826319417134399102247233280781802794638483230579758332752740360217170853065670040925247641117941640328076433973631161696980101242821767492726335368585622584131923434687410657078924761065466358932026545847833902252772047181706101454033772537853545635447642198081768573098656669277756746727569133777053951826529168007048670581215829268751084410450458740474563322650559625611825964572172627432669524846635870580506411179838146039940199235543369622316817381926561137226758896473997847630086522816320672898183307481834644457912159049144479922611720999206828797604096162150573835370694601394970100598952451405638138609299003116129057307422165381247125601992429967267924109210632846949629205796724471201721798718754278508682936329479624919346301123392531597705051908016363051206457779966846474899938051783380964495342318599059029307046822124139613592373667833685330808049156758973457972701940616840857085395109163692425717615871105029064423548308322872448443260197671178044390183539512320794330347179682573402512356328730521224841925241278561113573871744756581454163125242367369258892814106753778554655980519258360056806546697023654013792866967864102038258142896179361088474934145188822005922393603021628712711825519289220762220105039896365730949115376919700008943003458908268108704665499797954780992381995203578948270868398689620018394100262867521286285442936547779109388890259184419546369535964576603820951488302556497720902958082784534044826998003194383167708513939785992582058791033636727450581459856870034524101031578125570423764618891848232109060719971830101605353991066241899862609664715669485595514247286120559014786292241174928022799135172055128715029256647881639241437762429500151279526082077368712703981855214024623544195694487372774061025239478974616586592871088410986752801651152880547361382749063186033664025717039742986236613423288488378693667356507287305758000973516829432096613141387043087597856970646668458970234459056460167201673614871427785982023525703073352852377561273904519404404477689732618503712448875997962700845543508564131749842407408780125614297206115326940358037688895863132876934486616110760308794314534385723458449036022478735481415069197447297521299450022721475707156089343416866983298180185571141456597970169660814938812902725226117780975857398541258380318913978384268059387783097803149794416363192628421783056967651901503197297218584917851291369894883361207903202519908969385561285886887219082215229438172998285601004142080916413579977213365348946662187530808038984308334102971710172063619644570548395450445134738279144010781255261582647832724131392722791693032489174885842205590153626649997115999767039878322259871011218607004750151249026483107777125797249230802651366993610038003060498266531095681451778648572085857641331906315741193667793071632225879023511626209592468324357388113232314544990505493439618488993898610224626157909722745261368530758104690067374097211174526891186790550086778684733204023006232403613895558767982175548253168385101071872176442581513680475582769603457348450295251662520200530286359242502882741220492375773338915201609250002628304205320353106189933153080287844816100703972975089222706109945405714369042480453119489828456194905445690278879388085195446856840136900512030603391340206990395979847386499197647335986797832287670200531447409416383015703515991719515765771758528362104300196047442452647330619070137598241447505015566625915468689123715596242692565065450850161644654606980647976775336637390619823039727179248973903086417283314027402938462924187254421679724322709854096781409626353975164900119086898319135957426924541404255662864690745770788492865684200782884039337701142083501558151685892996236109325809934240533171593889777445974464617360757870513403501027518268869881119291952275614877442296437380102351276544128111582603994766854733573663003303420862827161751310254573028170343390329313140227926927470425497860313403939428805031260177064196941499657354887544067596190775706341109350646386878719674140458540353788585850593370093083024838333576461514592584789174727194152926498528067380872990437965399754426588329705385670463506211093295502143206272188714542481274010783917327996530482924159434246316324685663233221302609797348021866423215470916371139110851234965644995030420842193187015174642813244461530618101795347452090169148346305169472997503781792323798652624772134698165566229307456141415764793754037701987546957337807740353879426209456385766340571754878562430619836857675045688683659127735332401665678582113347115400117274984470788445117492732421050180213649228717381473156469244765965030297664378284499940691916212619175151747644551835404176495926177450455076215041027171016297922423034464925194470329407023907166804693184750198430394632895063859077981117976941486252145956116335202151287590250381042800927890125288165615587392496804738498136252772138638615598649447705403086283719481565895111327365391316486554028292725013378494225455774570399092731619704514548188404672293552290738927097034665385486731355870488153689582178859087705952728403062640127823444416965111495229572562660277556137620344724349301917246039233382140089606471983182893320296464344193970563540152522711142568617466080845673833490423091551030032902388250542450728848324120227265036887178453710946934630321827718947803669990446622129944783485298557380450001956296833534747606283455175469927221915236593320068231924198162143817101732778031606455633172442668577444929961135758018523028903221119181906626002187118400121608575106286432746101302110937468077875911362099869619659440044274643566940579223906408625556276790829006253079160624223384882103419197099270288496325558941809522435923267770178274863931994815729774485283179196285659519244827838316789310924485160256222950774862223846338142055668262394081210524388264457257390698926524025704277072882220765593333613279066922554338002345313475498029378897109634826878116589952842647250421190160515831504723936070631372434821588731131690289844839019535654024402312957766895847368554200033130184529129186981718605320491021258829085672110688588085358810905063682431764666779487860845941677541332525003673613239328793328512964934892191565816261162553444611334393451066388468839618345157761578198315865468472431189135969041848983925487448807185061307054283033807066638225797109199502647180202722976037583394521887615836753139757299046145531071029146359349855006694877432416977529333953148130627702550902046036708641781354217689449759712676471096726331240963828552089097974014834109136448919504070385539876423233622429269168524319783475827113400576551768180274610728514426654032393853544941839893504687574792799941442708995495572781577941526403201561700581447121560530411895544028922784024681846293876996201322572854636150738404182543001208714238114805246556115624787866346483945222406115323004510790426777307608815060044717395202937581725663764712929880723032121722032377238907067206412271517572200914819635338527316200211867840683860416030767596740036036118999641187459019169504956337168317252978370957839094149171100086454415705628092247171191456542897441731674147478637824915643969812474055731389737405266473760771459165628698341602116452348432523394083116854730252054366958182024797953628222440896946001523736894318620118163078776229875909158415140512172999579601382924984907437447238376988582430740097794642893634364948544698592417990553493169007458115368509323552968379234156429575262007301684676965627227550696924411033616622915671372410695441532181203384671003909567348251609048215406800151584811371541727513903859724916449405612144656522934986022660410368793695568080481826651748988095153266246162536535615021928493275246011543975910369062994738257173746878297722531254192057369316641582708630022851546253625411151532250097447980318568801578866242449446543140248542853250115406893170736974882122040476457282534497967097336556333205551917149038033935473085549457163944600404908597058294648438670303016804144487859551461266399871659842431566871226232377341277386931558076849818862438782729954533415138003735670505419981601841148692269164019607203491148312498646127835260582159328799550818729459810754877445191732426658252292165383826409763562514150385929280385401245451550672524376688645931805965094907878735344200278415292121983967714021096108750422965598717341942054740262862374938022678004547638513362635959633613305027334026154086749837076315876811458587776596097352014473798262117780467038833277440083398198184157248678901108176490404051807607563650826040200586566531240440534757781865962963927751250094040322178077970239798690666031938421390667919025831328613541614831917897751103561357601453212447582490987501271395807902039316676789299859855744022389789808951547984365046432502980160576648337251898865319124139427163687844888463350316312256189237633166852568303517867654388182784418737915475142201023856730418140517882131189536211217443750522894224137559781189296616945587675619876783215122785873938783668153401445469783964730563485159037361640552014670718455638865865963460474045910212547178277999952241715574030799074905548419948593419842033120980188268940596601990803444693797007654478371112356214471988233220267392662977261230182136875923719182862375980166437405735575772851880215390344898691761174447316067498079820861143244736599204014513814233594197456133858830208714433139339052820844572404029530286512945371465323116976487957503390105188528099530192618518245414989450920439013755738012203281376172175158501343317150067805478424530612295562837730922990518580439592876663315357488715306211366163484079432925185837557545934232077178893959304206134970755546337995650860568737242570422349325446929251417490088939638618992343574290983706382339206679759796495040386854940153127531743325740744274989245806188024098505334243399230024872041249767541359520283788023331598741201780556435709328245516930105886901767105628949362537260544030550967636404963198527683765201293044951912263171860380607725248597251709736667558074231046254063051065999688858137929367100762633045020273828003687853754720084864151305969860922792910731482732374318478137626748453778117584820136158756365972088624866392657900235637174446613497767305298843171697091819659196981542942990410351855252692257847049732618840589825096261469177313867699815518198134307512027992402458974838936969386846514158626050960066377790750556664546803393821868056185530371585915342951258005734798848261162487258875028503926019336039104712550665625914299716526657724859700231060846224065815509257431999385620575208686978822641660334661918522629096054153369380007997186076763365694226088509543519421247928254624996684650055065000084173512852897907380933652644737429892472543572073828102029910432086804476411777311212832654947627803210908518705305888200981679674218873763523041241263099443746788494325980029270550928809855670510042311591758587520832264645660336177253139296107870057203763485038670872384494894691088527673767398568828259068408062347123854727029567538579301595062995727398715996647539922795606788939606077385256372655023475610038442232636508847556591246017788364512473928784622530236121068072896936322805122053617604344137953431446494460024736886323425653830840728467479524869023621525155664359766215696663980570205105363464042161837073611064353761560541100383660750825257287733800589116867345228922094127378462919898864271858779668063435885809409582832739252178400195075444576526944438791713781484392415438735095482342316197997705636485062570851716001626591590895559679735454434504664279295237586845270593375126684482225243655606727782448062276519285892148558561367469233761362983080907190600376842890028445618154367305326844308188257776114844625695684880856145049945717126132241535144517683381305926929266742558450938776208663582816000925346663997777499993153992333616301591200685480655524569390970157287959192426953072381261704565324046027979413516587641586457989522634425875741564724921760551260988119790516704852463823854297416391607864986740919867365902269826412782617247576528212583632050766520086598952653043311198185661620183751605283158024967826140866718667568227557134678277253261806067827442574611993981804117369347460465175469135928300743694002650465635876950005141614048027065277935388839108260777251966968378382559772309400403883820042593697905752280516697192549805550383658753860975913701544965080710520243289656367131253056813973476292165358721385833294071110131962218249995120517734326762168677759296400700084572889582945311321106898687064343641149721973203900383129345105367300446319089933501693243890011973266685065758268255828825048551813817004017136161703420321331423779475021229784230352139566647047823732335423884035962501347900193573273944926119546946808444427582520200292479062730493619592027117009565210754336170813108306477362358438211163473449942225709995649128834788060974235632160106904565831730660205453220501483574926269549678609718447227840368450628317079191831500585865081124221702445771424242219586712317852497383451387393040946993141304198250909975711468350897781664655011403958691803377355331050150930197976685060635774456922002238578454218168671285255331643372822465820881423350122784250508718027131909545231779703472174305002311461141801839165958945501679176435347811961457059221804029762118447263953638590321135704590055759921977715167835744643785595030408916706729139200755303610953693634950120476774923331329703825140642865282125987274787534162924865364650737947001586681581991461945929405411559370990849952041736734717877284285516140719480893354465501515965082850437343147544897907793003250073505865819838914413223899025584122122126811619578892627857260140956458994647137978705605070997888543608651685953968507883442455372844962767963815694806756195434536243466317196170824228832066277374734074261802932858137731700716891037941137270791450110120500146881021861330609587999411725815372849173312815174455043400958447692754333600120123841241046223147186091929818239253119627624895433194079754336681283817867773079839698242960236428690933990178267179428597622983997604712637710374223405866742873362379691679895827822251238477287758040825307740559842266913617785439487178754860456736242744165385194537717150661032454470430025301888119781390137429941303774064534741396916966405961183184075675120583907443838753959101114927951421006983307609147601298767557646459453738041389384126483377811903399411283440918309893053516648260369881155210752309506974836959900017939136923246454585144307979866407208518088337840681610524479983422458345375615626726405244517293537460284785136135191919937248580992199879772941372218118234538885202026804827886362839124513883582476091236050917328029531175110654490103450158379049450551577554008103582960650811578958436223704844576029311649950588232354913575029634150525565169018406006197981365502813645341169083955107987396334774620808704271646908277251045843405348778489050916104557432308765267211055975429122550034163779443434647825728678748438410930072889214270136706496263675912410367073705668985023257453991562905127062743829144988634109751690127399224840219247636967739494733110061227785217366098206242819701204829905885968878644832993125441681915399883290340271907538026149035138033315227387255847008354990399125753726358214192558320196240339080495078131277199763665596851300250490511371706162548007819261229478907758384234526103538202278921063332784588641639577472836526853331455638118604470599051035939854595790870154268094904646104713518225099882944647337511863152657354610866616947481454881942340718012893266880503081310659533803766591135648853846639782213639008756554105274019156981461073035661341100750444070546221655953479178628686469824804970633364169495054647304474825567679399652409032880576790755862653105914288640857590362876898693159007367006340066862095185237030904343561766034300728177963098480674416004370097425492035189103849307178847126730640383120248507363045835133244333452964392366449469019445715168612110833181052676136005376472703827724575421947131338258704030230347786724094967879104187389546446077640047411562274748453657471807815879243907528824805507927748722471978648022517009643229579792421197205136344526284940582773550917676819308667245120513303866081005767862404024930335663001026610653053114215897560390595117062203677365366286459370759633787295644418049807056701524906449095826220329168062125865931063715139443905593011913970527805685240223238555008234993303253853128346562818404701258173305440621683969707156719515029413103286326795410793328072055332553463444832914746505640135972266629786173614612919066986891851387661733642398043768854188110856451758482570466859444793487432904955724576304004404001610272302530047285482651836402953542584554415966020609991593212347231396252593172032868350865921399457355547669135594835261652485252551712975262926051507826838629434369247878545889767766692722374230790394857550423530266932959271405312993434987196647241912238182354177238920911868171132713542126054759275185128923132399764208496724871214223102431252739570797285435906744488060941663497278182521523620582606302186075256734599973374922581824552766998539609199750080979470305532036651781528144649596292356221824985599016953438062478075765913043485934815451806224487173445791927084485433172348435028014758410518198313159305176995240124458099946424557111897322153645120796494173692102551298322769343109002771446404204323225622252136617016083712362296121701649977413864994484304396973457739393738213656235692668018296644898273879128334440031754307431112769397755507400685819687667838653234865521944367279147556728329128547311504288386279480186009138523372043536856503062971237535377462412733333243816630633118004380166188155755394919226720166293469615315483521837051567981852779549688217737962274070557235165085509193955171550632038942098522066568998199020070539874069721764779594608576979601102769983578927463396774001064063001310393625083938742999919823343531559060474205747779019846940897091974449579469080161684019325950527551094887644316682100693057728330364518880812024718460224160674973519492320778857959844292386683005340153985560040872676147295475518078012227692859467022319966811223751378883301565200870832000693909004012531405550628630978625221115622617281790828765519041606676767718047549500718240675228322447821672569423536125303406589334872203849216293616386996757764685423645660873630195012406116635535515192352571229175429518868119072719760188201792072175205588685747375827216833373007011534976211960294136524545616321769147697285272405342806958297295790156154207999915812930100407399502944849871590390357101519745818284203709368971051526840580338988787039184342552589343807583802480148985224699335082638016552274233048087643056077801321496026130077695124761857454172973875937223412267856092014638552116137890162379039776301852408757485668985766771148600036435701197369339070252171177826476029462442820027975020708422431543064117988883886105282746270649871586197839160232830390579645065438743704207084291556787310725932438931803842285093356537608828358066769178129613987606677522859700323332433098818218954455988224483603528471140744593409560679285329318281636917653179213917316395224433572086359842994480644717678643506357777408919907653570413990661289293538948187287858907164240448899785119857652321328822884895203906253968344086969259978763149576773725212879704114219612256845345227888119639252257808083954736539682194848689244244733708441809759814029455546045016964561907163322787511855118322131198427691141064910890014782052124105267378076671231230121831854949100806528985898091873038281497310957388672005878309786651446207467392485771505169083218869950378529819063198793210948003718170987559275865425867866162543840238569506234086178580632696441173218386678796836199436399183290959920060923764875210249475299813204482204999285897675247279675836757986264734713508285438823313889419526975797967116360922854367000012155641989901122708560231137660461304740105428082039271937864894544001335710080584159808693748407808419440453192798324144604963888941555024796006211983176787750654262022352679291959743215634481408954861515363478961064261852018503084280014624850055829471724462534772962064361799858163736686019288778890157857226882748415006359486954438478536574228791928838981565011652818872522892443114431569646593847340506345718522648637701975060457019731750393376552253298759417515224105293628130121246355263072270252917450308169927886590051465416530623501489282729010994121086979093992854861269740119621285881788417189589388105000190749136608417345032894024031501575596405368186131697879552972281953800410481598933477597762833614592056991866228064758427696129696118988375845195525460164224809685887420518054481118611232512138376053559967776098418795000986113156473576100390273666080425604671046950875532899353713168758976929507327814757080994064048303231963874726171328399899574885955848313585724891685872914535086070698661119437061172544303553907541612396845673002667418641042653490283708043877952382082182090299445752957783143288124125544974350406812462351396638528214843084962225454478535045893925802579808769515556861055018064372895857720533214611122797474982163754578915303575060203701975135259746297803480863158429114422215320040047443714689604446234230089508192990455137488880457623370072762672218590815578053565893376512242621107816216761353555181074078193920570830187285581228987039956416670744405830623814759138117382470588750328536175161688206042310661270242251185916138346173649487317609639223717487145972753935610436946012396940536564017042547149544183349374454656749979052939385882110652461684310461178731761644432506126258380763256904530361166452644785966692773421367075051264952195435244525495552964520632326483457861663587461388737108343041240101207800855909176962274802028201921272417486507018419134330767523736817315557624246132359240246516237891295246619442298505764053226919231746871505924348047971527836931691326949213807107416763350497973202044960140374640969624041440655499905386605769897990590912170622072697479670531882012591940451343677382765246992081628694156394000212225076973466343356582457200326437485768663989484730710241615041215585857743577566145523249010419511668125596634429809824959721280732982709915228773099233029612255950953448555637819465512014645475445411701955519403600548020454511799882337111683254318380882374184599228407019919216240290215661106418370994440858564526804967983976461062576693821104990154051966470324378091017529026843392101042890125456308559314610011632129729677745929427746503622105377784004824209461639211971193176995335750422081897747532871371191582554408474999903664916725271719836406677377647990741363778477093652820096442630659286255899013427225514608319601686276518358821124234583401471911803918925304450643087089542802683288218358466211242716710725992468546078546606624271736596389979789975249467936614471577188622786930418288213380991202582699547071608807732971238521273413741289404918242193594805426208946692741637795149305307701681065438802849728527898934892919893636894530791107060395004903251311497598059592173487030879244478758151402783842954087447077661520063960945974075754640160477399844596179090734262309313535730634957065081262461815839679731107901981514229482192248547105084824643075576159678744322373727745439031995612755777098332936581374031811870163055941217303303536599203047339978746703639668337522503672970772631858731759138016539471049093347618288858075286663174102256867894183008856450749263350563427844366787612112462260924893134523289327757919872667219419280442022255233543757486416197803495258423511278956228781415088378033186382293838706857909435807365030974708624875393497771022335010978901450135933046355214281094740501902251309143355281172502417847583825524702833855999900120600178775604967289949712536843072464494720804267940073948437315199935055594667047165049667218815022200970386815900448608094008409573980551938958517798156547255128747632168104419156972143295100429920456510888184052142897379738302624475790062711148201573760499365348955734284808610638382585070057491365340637366926512514145250302259227214395703516096780435725482625165261624768286166937256614373849906487504789692451644431533415145605663280816812373087956513089954309014549434866962058221504314338740281843405932776503696635415857710475513662759795829891219078623228987196989903489654490397436259209796211948825839734128265274042815450751332027270200991035450355714331739284442585112540944246692871333162269212983052710757278929961123286765085246435745690914568554507464875280756059704906736232217120361712719260823094028710959733832271013532258220115863917834207468698386008983987633826791281322379486696838404419524268902645547529757858931723884323756940620003121997708153602647759674636921405753962525571297571517449334007522865433561254005148586791685022230355534118136951525449481827409961743567163882884852912967355751270103808754497705280719751895589225650783916727058339243583455767987658889768684303517709422655402956395123474303676282171479082423083394397558500156866843340809613245492917875739427514426570829250046466060801441171361869190063404640489910282584184198586301978249128124483186086524994216839263260928192775012096942438121502661408400098620891866911480299419190777918981086758453064126075901468179544676445549505751333549377465723022243552156231764273590873005329785577813150464541539342899095495270094648673222765036792673681692069374156137203879285718493395851111520788972646656942028000734816609914217882844425340923226808694621336947247859818124954738763402588934085733973986449485131458847064410003962495228921333488309097129577794895076513565385530770786318181309961585393143875736246905601802599055772136646985794647591458920213186066931950739378686731021791450738104125465830799561048331548488966482191982804664990770287654757698329402116363466784703720476612177793493289598950319135949665854920654194634117589768414094168181763915549304519726220867355998615322215493910890027830731046453930028864202195250818587364587086165271971563236481383655714618100081511778830802883667405681075775705236179174117473814247958172505841970940261350981851081106377384988760339939809714586845426958940823768240577278858208550505440482603586126021068574924239901513964060015039363233599444185189132426891733072768103448518073347056783831389267329633235991959047682173936048608245824004295221254221537950367491989857696699525493419414733219962193442955962059034641177969922803288057308388183336538495236151632930895496470326445616257342191941170686927543095012157206113881775285915352177372833183636581155432207136110519755050005121557163516831042997007938536816741643569209850675488583032509436638643156897645081949261545882043722722801037038598383719387602351219705148776622176154933158121863437429982491453070046546431922314906850317132288811741318283293388495409507951400949844222655474523135789811383692370644892426592774538689669361171163352882344897352516709019239606095941770212398566345778478520077803242528478502854177425695899166657949428255101986780580554322743414123734016122110848668128605315752365585424170274727717333850226047327078722637466752540491781670193195072815246493734323755675861516520598663505416459277556452035351045091318399430964924593460805123390878829174130383194511371758322119010328402785044201521669721699607887963063312697214317018271568308615840651528239305616356493812282043688106451461807650936945505007537054428306214986615290847738101711577977411109097218529623342091824891138955159999627694509304675409003933800357210148195820096966338931507203097665329387259460308589162313502970856092831900207141762485517748392267688712740016688709396709024909188494943429647718329727812943753870805056052242482211276759572365285263060035293806956256023787224721529200981583413033918079198687598470904149093364924798321337065102028741182095170609028961971285980803730098530503906278455362882201380494292098184343554699369715291095462955754923950483171065605005566392414150244749989723015181759458075246211182665701547793315315802374420556031206097344873202767213377373480239760719430439185378881524297523813785482857680000758655852349161379063348076632785224387771694547648885905036226799931774065768475727093970147634269440788625977377079330500299268796360303395595012047999038171428165365916197005975008596569909147311129321465200297195530713647965676073794156998196124473042295377345886871170583163531730764754948525576710832450826182141703799466554244014439490250510278330126714171960805897817543948381019106821679428738888700880439641250454792996699589857086590941676127210242926012143672888833867970399709621557766999359706178682004289890400486688196597843561672076362834951042652568964774133087828265691953473997134808949669459326616694745143817211511563626966504631298331437903453868538055002276291431406690831528248590425115483234945101876913458603388288400282086577326672222947153552259727685084701919952716680585187237786593343187507081355279651803109754864303541798233218800724850609848587036716167874420278447053258174829419534527005422609088905802742695527039804040411327210852481814915842622058538434932525251520987543541765048127665934268868929472052828322152765203712187742056230427917601656434265723498662801368112713198540704028577813127648298790095263026460669674981677044264608016508779009508682170325327585452029674009009927540103901996570235602868703966770450386898550282958718913452373574267973028034473051369845173115599481367617918557855225141604240089890035476513661816614082661371664760836369752127224954325460789889510097511944856470950392479345006014721212031398354648683665126404043672969464301609640039572759621834545280924158808230589803974208018074880642186962588815645586673046874777672035439863313741759531129806891949081586082431446979920789087779762690835529427430885343205911977523278554952861155569367049436816949861196583723925714991799578656151605679594073259057025326643593533913576049778111733024238327623128122615763675236153354128639257133953165332037888012340002972109356658349332381005719131025065393915069335883457983633803029213789425378636095247846039148331227235774685020749161652142756224556214226680558508769108776784929548614800135909195787378899568157527556424201909458564884102125990340982554488986519591432851500088008464605265011839162329815585869268800373201340240379351910024631654117333346593153292723211195784257049270131864603611198201680312644909370928172402114439021256946684293562805950565344369770634782185725643875596693009179053728835725677123397416314437309278264526623323404243797048390789329823674876406363554517861773931188662982002933083277904462849313344902493776090528756816919678023602440753386517079704914043412568503932238022997961465147679264423527779385480613065272233165879330528479182765393168947405529954920694918907504777608919900857797836781023330154658618332728011082962217714377984141047873420153599447204333291983102986991470152596845426257290929808067751219671639033040502330833198472832903433640294893592798838422241381143069189015442500407396201710456806815193714292225728938036757652353428826109280824230657165172705917126479303437041122789688100922847717098788492390726390217936454360460416358717589886294350809738640344511755782584507098326035910816684794590894901558639273049733149197420457863287773214729570180770526824894142927464124304917545995854095979770204742016861059149702410738931020986535289207154227784129603056182451494953877675156404742379468897947560910826546093527445752593902688543096634806126970283981213376722479648637169269890863785929051443712777143264061036711732600717154811101736236709497336962294431872664039947877444437900908767192221644497510368739347169707485429484166453933370413443020903172667602874196236374153544415185468777036438298475250589394345902372728971793280931319487205007436867592177427260118463777308465787569805554858862422990961695456856016468474640084882553879713648868727497047777462192293640192389170699863630834794432057593980045046885929592416861126201830272967428423477252491900052390013343106528394895368417574544453289589259034442757304765368378411749569038866628135726446213775472516724897222975420160688007350291142441115540900466316995335540169864118984937059085027877735595364328469080472855449552932446503957406113680176467554839877594451440189485338241726633518447960102240640256878575148467509072801903159177897874397656087202200320997919083640857049459152477069330178835305707076629322393852173920009666147360818024830225542839100876029793273087699308531125129117215943787790782937991403135830155798713703431814226651501927719168748324715763675650119607443621630442310797577720654957728555691630504038495803645674359480909991893212171054053369639839368688015112886801834219720603461152026788377175649633631442751939666389077180140166575994304667586797095552788831198820851558162625608048923600573219509052377317251011738291617037352920776818465376434797981532193159297615884841240345388323648587947500615527970406032741010346047706953349763674493353302530575508717364358301440660927666957167702845286134225732447957629817823151152506319972167867788988588090846131351039109783670998650068599393429402004109842002643423056918195014436141409545046558988729955115208960604962450372145868181055213837059181010478605569244854272141623506965942286859558237848147447973708768615907852399210754344444710295837092546074185056025428796428788949100398090042301800929988882534667104496269091874469181656962457259736856394585204161486924171726024436932740219625214539711816687382735870665163016101494814308815760210112861119599821297409467820427685817558722770289908422066192933326456711999639584656739452567314457223114355946707396633543792023778644802415661194947016119238341886155885932919946339825161296157370510066061297597666560147820996172951662617820674319495035717770113316407472394848874359170281237869954709185232459686139915972359854133326543241764369097578010593197417699216642604862868264182099342197294590889958803998437394718894827177545065173974926319439134209063300857132338422033618224360830584824709181524972927396257482997950788524012799211493234331100582060544800139761197742507365124466600320700734737457895377757519418448064921609303244592889366825664866925165835917377026509479332945776998187868906624259926608528602712544592348918692354881416664663040512315852435499274397882307708558621545364734956612160667673043080541185360135967127683412912077468038654207875826383907495422344699132206988972119772425570738041432828469956067123270086703576911367516689005333818479892811713587585405078401163174140193021210541273023496157652437535757201318182293532506444246566470949649192235573029618592902035834171257079670419308291457920206383905450058300535453887086350910598253448315515550610700791604706833991328479280279384006055137826521214622781614668724021644114944716134985877457012630916613899759978348762443905686106389346303509935012553683056347297706207389001870853840207480817229058329587082633506311877765371746473865318717286344073442311852042726864328699224405117547658794972613465259002416155601808226722889211443413790533385115749928994616323188580876425752270920331899135646606802151827284292988822541778249953872306412529009870375129442019915917331993306955698480855490763706639331494518448936487301478031449660097538513988886984156416594211632244647414673159631363281514925495006619603548769791795723230092005899151715116156759004544152194310723244156083563937327962810226016333061821093431679246394910719843932815787090118507392740531543238594577357072049596454391674156808006359503852661972248970841427222224904804370189424645255989462717348733693888040784145244282248034391463388882661923868744765206767891494825393859888571977813327129822794289763189409857351233478013351352610493760225005065728096957763139497693541861679675019896727383693485413703476850042325022332848688820991791254806439768948337067992410920929011912219823213897993309641198257244569835298697861065617107881506456559069928294140662273962320123287226610702303357230519927853656353915471970386545506457185241269449871773237877346230087661165061360135608225814336463955664975424811840357140050544242517400905071487403077290311927317757245532282432246756808183371672906703442175907094426576150937234680453224182953365856518970313714140885343763143036055007888086169820851910475996324837684508406952130023127912140155307037363757776710168787086418009690586583489377565154324370319130692058619438840482022343814865494099576819169022736430824409850682793878966247312673790587953844254556404848743530469682300133479786353427395030958970544923167009629117452077922590974532945726036654267980426207377603821811540664121641425732738637496777577841739841269049256451192547069843681659478653790679143642878338349355721307727004363960715754722190219239752786147933420221049278589011366170910106679701224810755196797651956596341885207104913688055925218885770966178186465833818993701487120050913830215856675036924183163446170355644546428946444200686909868992442949152496115988111782194067561011614553517982100719483593641779212596956040068131886690619308066136609551820426512708247127607982051802185259818486547858505563597163503443140072299027476039988181814866411193466098201211374820859308029799881677476342832252557386604709061836350140123320223030080181796951744874842209841574927261334851366332229567660279028250656059461938554089977178962780075079153355232337407581421250509228225871051489082059542067020375150792812466056916214501065832353887086486773635817520555839820735686068558553447635198804435039555048929879964670617538045766606043921697702544147126033802286372227010125722024926951188597090347401500574020338607095961442209445312830380954204880844885895509368199964505845527567747450069742279742530241984901436088505634436214762046195934330336624527458283031555765430448018259081425500817186184920232564621972330674331479670423182565159003946956944523543708202002649056022133724015522731328604100934393915044369071836592675005877485188207012684154401446828910418410849257018559626170609180250140755339784019234916443799863447230057667824726672848751379939600988857174205447879526391416316340989402885408875618916172302550263450372846565590251888387998172774815729149211393443963239699608498526198689640523648763073585040232117838917843442663860511614919714107682261949183710636034986433717031626201821887758392081694316943258617873799568485083770473759643256613347853448578976255605660002695151216602119782383603979561148253020383652110450261665900740980085813376147413408368155666504916232121173152918371705531627532393517762922489270886642198590173117220479429662657015747152099248921556444135613311417945405071922349452946901155913620908860596448470281779007726082676760773612710828177507461310818012086669393544680511144637839755106086264084491786209048183648263743319521747778289173393448668619854165099475596497741023205846196854070449810809618458712821019633405053164272436103916861620418716479410840778406750868162244848253710209976131128807109105207572732749637559802190944784508305066653371755460880677617913792865487942780266178852095261085490781851841712182263818967012806370383395548790676927045494832688229416856300234785255983190329370391961236117685257745358491728841140215744724035880125233181151361161631136474081698689281454868943040504222931674845685527893758578994430956217785211337572877371719322167345935301075654710135081517033011506090519480693834233616974976345493508833293295744360461289585122910145643051363170490736457255904697585756100052678967707640974846711135841096496131125859347223051409699151904621786215309733314208553202449942820990651192517179596318768126674560842743354411858145805925158032866743550194457296114704521955535422948854015223227706649863779210855849705742660273536491398148780331530527578926484593045473987854790627404676620385800129960416829385186447196543485157453278208274557879156336017479838158143845739415542927761455747954926001856742805773900557228902959241359047444671937129987695282133867917008241860135784366995331615217348366819541054309223568185237396991692208293707338674279887877559396590578532948367421476590897877437693202196464267812156602179418246488320438985723312087526068664413634588612636811811676578623191068394121576193438679381380782206521638677996567716991831659062993988867070518268192811414458854559710741372875484213742933537420923416190952691927678993059370296625514200795946610450290486090628665824970951952559142356200699740778731702589911368649758515192821213085243267805181749410234748937921582487080890302914783978735915910856667918150869211417698326628297336825088815581634198266115662033344315181864806171877935412546076042223110244457320180294405215648336280928143326291877974898543670973347505989503646140879853396387316447130787089360966947442432238535861963584517802236526765923778215718010995149073916824090105927481879492128834784647901274776777815968257595595756824240902789968481580989535153044633072134637321985577436235250323168710896101719312461805075791757510333373776181172131101824992194979288822792144107857978852723184170446659057230090158524368632586772483726221284504047702805323354099884666759622005759479360997557560339165231559288329706772402785319165076773546704497376037497253945257075506107972585572030543270498556977480344221289728118551870992271666384430153627437748181700079252590562688856095982320549889184961359707576795162919021306946751546279217789031316219693065829693765474489104617103316036208258914831626154624072717201448347845119177150756044157071845786044258918732892375599112232518100268172291266598846460674771163212355784053613722290183759082014024549071671363314289190602756098675269499712281403434872991599516031589368141688051179672429738182313634859062207376155902164558714962598260601671875264894060278702994219384935371558118539617595810029558909528656339371807501120024441047210798360101039905996351181478652175777242061707466105284977353862690856462452147792189343620013179981860470203582118732555136762193584543198051861568065889433821506572596978281417667012018197580316904644244651471433767635242677725911640110729556592419475618498969269160048696673884203434857314173075228141039089910218276337048751962580607846471699388438874902564356355435657821590794656301360967176777079964237264276448545010105230019450643189597148581348470819863574933486001858365348461237312966075447073083856222259088568501976833850698708737947387474595408948581501385419721398324358133214825111285600623552210137189160588648401628149307881642431721193532928122068523075342599660379803894579418440056497417841973378589516640544060603325490326257045878330640960210227151294515733378705624554610145727592342636397251669561301223130544547088745308120935570071624742457999945465638387233389473871811258474424563227504242436449502608678618904825596601907763750603873191751228557406629182275706469473974826760970864692703747431048700306351873374447859960210901460905953680306460339990825513952099756076509811686611992353814876101629843431539887301537451733612533356535259700819119415827632835100173105065873956954708016040014688151716619346767150903062619221268816832672991985709594663210181419413667190153649447311125970164165322222285426034368055235536822298087810138964775839098200773881644010647881549195499598235283803106522088422758433344653171704913966572769887992972747783640553975234288384519904288884224133181111798838918564009832355637679570366101348122131752543129227225127108667612327017373070105342354913015751092027642135701103314415156848336205553172122026566185783820796311838361901949757176999330450504695821055219688185539731717920063382322377215256567996987095614535675632051120016771998172902802210714218451047083462290007501047024848699126022164887374810393327315528033264611290538897373817287139641244546826927286530261345759243772934475719406056478202936024431505696947391102297393984613860137348392230027212395461727188216808044957853574192301426232240272054794322663035559830474036622972298987985537626125417878678087445814566985866117244247397337547572054131073125647948395959748752338667644653104514565719416354688552828342398656577407784877183905215495872571242613163655549345146947125424921325703802240301718168246416588785437260988346275247839849425889266677034992632246790795826739514401698815282354365107829382108717877241171877087258144033177944388978804434905514040832945648593048508145622711774289456514388875162233548342247964257517516467973766272428153884146676587474447676313109114539405804169309470342732936375310302640733985591881169587749814566386794665785312575227567834364243530409676011773526927932217556515689280845931403638669599512448427207053642860748157015830641123277386313182955829780199117452107148686764191127501691323392059791188197372988429291530381081583417048956157355749759445008986682818469700972259877512591982324024222375141944510535702654099878164389022953700653069629464224060689457358884207879377786873264066013422517022393510604107048830368483890733052874095441632636489081976442771030674296766348937321728706010485425266158405411442465281420474634862687813253280372634303062732448715010065578269178155952822593055838215688623976831370747674680711387162894981405693371180069264611068405660461752999285313690951238246600447734274400219994339566151924791210538002982436673002146596097727962260352814115373493326511639074795649618797491293076224928241800464724026776934800547117794829925070390304697405508461058213685541817234758325246261609190439893365605772583388720355293670813517547747109232732734277457015193146484720013795653641258894736546738382694248851873762031541161722764247039643871890738451005427308164660996688992301255144458365497775155214466007205926537360748410017986509909887448536939436402438617496016825119439660525860609389783055620602033296834137830553688574487774862402366071215478584465110729940923552127616452202676767301642774941426143401059916618776548237945227702154240498240313474962976491896605574934848219300945628863122723369760020482845658890051578448440911411780570731348863260113908614151572410774757770257243803550239947606454407068376927368177153438010388749302016721595197265685326754053324356404179336382119854268781660238214482777512944795743948678592497534186241344051440534852615658247895496793798754043230756445893314411028796575243165227547233927624487789166886011256488648436867081444549404866275031416235328118871925768731776691181062677287551770924948201980099681373103553426635226366958630423649702533112083086223564713691179246958832534997349649455183266099557820392830036619540610578282370390522927729321963657073532803686290407259429136143231284620374689463903056008197657417078282975475926303086627081289600083138867877569391259610801474413153974560555819928968689130342250638963985127426203476330116092441618538006482443431849602449458206170339273783452997135313779609953773720096386162327567738209871359759122378240456050377047155004296286469046330966044130732542095913778376722640819489032641339270972454827606297447648518827665462035292433632333420816448389403114734514106013614031449506063330360562330184601246495733631451532391832801605608645621653724942151341060079481042082275788771366299838450055280428669068386444856578972692996508280686380962892952973038812557379953131004258697886138955484719404574951190902820790414907633590949202991240883479842452379164138685767016386824801601356325356282684522374854430129444668300952900536998772339369556108576557589588010376940434386601522748723091131928327584848414134616090993098974621754123747366642467354470369362731805752952603870996220764533447448346971387555970370581569465980629138057750670653363437273471444294866815052789819706524708835811301638075294015057204994990747642403269375153476718390968846407693366451335584704574106212901117426282644231592524199859287869184488528898081887038698258133624146609278367961308513099840354268307553576227274252861006044699500068034792558773491623007974417602717449943146854460427105079873627863849912553587827663851003299083627201712355619941399994240220479945236419187076312364118676619330169248183426371115688529744944416723637556576659239496750591085441304218464461731937814512283474710719107700248867862773508873866675363787290666764075988515457218371731594018108635993538899480221629984246179218689509417384860351587314851994045205542222169551292064860927291508472925584211189444470139749581643932998592868698691683056781939131921041193320625559903234039018608956692572851062277548438471819434707673170030573174458485205387922249102416515050717261416888774078380376432358458222937049221753967702921639146135207791448598905272245842269820261891609668254556832983436245493555218379548797409328523613562242421973236809297095193540798182772553137930816278651943810631589307302566716743166911813689041924312824057924974249867877660536156946138186545401349157451676978748530161163232463241609176416935644716673835133926213091986654767344809452596328943627786222387273883344788638442951314081206489968957753657125940625237978465607868544784170813614258226937724810164803335181807496965853061217001800626763228877779365063637860730825153061554561646635209459765139381212441658530461213245085142981041133851186173596495885171146639115964955836451945613298746272562395188963235895728742888219296491844080137099228828395563219954588942102591562256419857967136328832982105662349511407828504048961486759651660665286327811406645961310776548019751290877539528384251269684666252437213881141287516047928324520533237271670117034559468696026656635060137457490785283848486548175460407322271569226917840640813754306021659758625593769342537819601616741344250596875694924575027742231377648329487050767064609547371638433868027847264313376382857541602553620677173832782466319528144475098602179229561648005752485313891616775840728550482473900669348880736484613727669003303466528195446177453319292593440799141687478803128852141757540257872393726106884627796810569421948518877136612057818439141205419994618673598653175582395090971248130838926508956747190475841940851403973230269772997591899257246659199292647159138026745691152197447749602076196200499226540053086307510917256964793774196912595646062333039836686097727882485417367681565655727683121002036301762189024713252986011926140539309087783246299420660026344512559042769037621154286875494696292688379411741289329352300562613257170192936357317400954830278938762233125499370991816667080500138316771325483632309222235119824279797384289568789902861695578065039079562639796152119421682323270018706765129607581250751223738719641187878648740376693115109993734655569340343145339131884960737960897240704402722432144701436488353195689401182285139220020994334213312896376694803727638391493380980840496252897686607465574101289331229416864951463561754869643768203598690797763515956373780893627860218871281720388263935782470477652293504852094910734861435148313404257249909887985296606964877223138242765988087910706957123737645636745433343733234409697014071118978858228622577019937143386497040950608317160106857171720159839218023539447412238448761471662934921276041387687437763384937271183744591868874804616297936138446162525332358894181543921082801061126323553026337480786336562113222490184796328993590754689960837904512965472842323202231445924907634659868460046794638522433698681068299971655363606194388049389125291955898243560165028397063861812259276666688070590892654805512000370110000107493796071595828747094512558283842137725669451006059287300684709551309139940279555750433484980825280825335015758347594976999996065375259923911338712040798519870596517927551756107809234659400764793757340288621840352682052636896754495048389542856497046110615845008772198780360213942637392487228190367335989200276432623038817801800705827568937696295421741558703997722869978500007748985836755595982574231196709528181887921936271264164971452614601436921300690929830667315044605344132327255684092787215009480932636561047951993676764704003484012625919325460073093742514983630998749100424478289525690933382090250407683504144067383021376807589678901507650419889264268505056744316062680718517883960160546758574328773762027263120247634418772776376127753839881735191093860158235242672564490347395314468816110239922932390580641681163312569334213132078130486743294796923510858011943099708143899797351713066259210789855413410694430745952574165346001068449500974165777024350443037332538844038374957492659177128086468503417810490553061168647564482901158778673068858077828949928434718562788642558201429388227863788392392663191396781174846401140847809871089147087600727630580344664415163749287545956137593557620329950263368264135882716597610367056912681729447496308239800957820710354340263549908963816015574439893793088416694574195273112407445002637448207314102863751198098452374237783160640760551550582139958847666194948529401094721842028214979398180391436488747363418702569047692020561064737767449197647002934461861085530807505766234178147037549333883577829367374330703757552040938486017033182125280798681910888835518466666473133416379032496349659656659553592540749015390095571568311042939469658145171998504576136234174962294704670136215012096133083981893450600170691476803909792411293175402014215226641852126815549308131188487219535632515970078745669290526020000611637434329786403261555421619057953414225997469845758774423582324557288029764517323518417752976141443022244908142912313888561122170088257306612750539027410567130879095356490105026982546762907080339124771974904644683194331884876904670398164563654446276237152972334088300588604968381814266237268229621704526971102857400618097178204176555214142506564787069631112232652536851229177435703718812456695421235260778719715853872556413238526037523318472545936901905711972061891293573530668206770438614516484836222776906399974006209785301510758195310824027220734289854858560452326540323437950948523640999595784622177391034998957280481248372020637294649260049711383623939956575004373170778604168800697900143377253833211159969081878175472072207634675798421308639027176783612188313359146267026143895221431910199725739245489156791686011345534275010073983825188389026381165722413237956415314613728125456433357221170216743494548802142818833687678172509922702691733736337273206250367327718590845276165764221310567555262324158734612804835470365936013234305646726053497825607188832624048201000330006363775016719641771926638777974517297722084435157326038938821120929489123774506032415655707609412768579844090945374798756731261759806403830759266619493922561590471131777085025121936616860619132983904452899310769143313808097608614192673021529530950824186795665322050926988343943718186992179292925191360944212291476023965100757524950201659602385971375360958759307425286807080354570544240550879393261875855275189473297435296797088375127228611848511424743679092869406719766804652754373978305090317651678587637545475088226571642915165593736534492627767593325992204812183070785603465485162812781430847392037655152929756472696635884150568290938774845071677328357034196236254767149497869055739659599007362906848832861310259518892966772674399890881342600009260042786169753972285567940234602221426197291104661599656352985300025896129555323698739670255026795896831489697589215689867988012859209943585515360628323694864330401172165646423573395386802106307089585866709382658566143861357734876819454725009391755598842225886169928792416552077326677164732742969262842430655003647462725412557167660082314921269783281239613039875407403128344628010792025533656015987216338336002752398709885623405455249771651293444428431287756195022063511764421934109999447113338168954188586655964584384537283617102995741283871105972833187125123054593332257378631633277693295085455600867510825532045208393416595089611710269538617778356272190929970383066080028999397059127156420356474462303522722752872065738854988855909677809461066792134772547321923239320166571551057313270241881834736837950527869713731089989949952482872490758226081307532961287031340422723510899971155846643426030615560282815612730125243851512033703217930465577734419779221870005499367681295369120723410075619954933501502242049471828555303054999872616200890792712588664288272680900548681613013283425263515429188630719299924345527052707203311724262490466248707534702954314907257530285762610387049595572402492494972957401935120757281895362276848128959731032402519772100066959396980746133882312262606413965314048929855369243910259443484624972465046131945437437642424052275088939328464634901381927272611573890949467175044712900873623641431806490197134815809421873743841389948145145469075010677114310460760961114168820011871854488009683345665699847620638944055238305292318096678754209448032147545353241972484799115942546969007954582109045041943118924424662561681996411790451528719463844326673591953653243217282287437916476529063830280358133875381231455655772087916041780950698812693281310105049182066541281880471202334194094377856554153669630189342848426498509273880175937204308234697611415903896150213012796394008422310736207745669561950764853801445199587939193542642095147465155439675117407510746897171153992802433910170420043363038182905065093857064007774708710861420764550920276614488250928206868861742402491674512811974066764589521284875477004053665570054664912384644510726843208848811862086390020700047692591182272533371174864027000036176019588859579438409765984206386426855958921041371466239935202002278433325710887177407537787036802813189827706958811304548527140073844581696327849783356510808709762685538477698830505752504125919257821837366804484330990353670374895666163053983432868956644372929001734168149866894982127782832643541347931986551409832677614056234530719476199519828652514536190943860965942304585881045594761547094787334899612081078923072484470215620361044516690618102620888398119009884649817317150037765431415105419187857328645211973882167573048803896777383397719546755798738525358109503395214733706653393653749834012539441853029568904718683507133235248385134776850526670620014572853138074978935298096614480731612694089462454281439839221425806763875836968578597549547273952367242756809149631769406934616835122447672728756413793857252260975221290418402347441715042870848831422824873547022261094463360852237905478968616611094309519644517036088733029166446330505821956942366423316101789810998535118496996957949342818820410414497251478766278323767735846942643892203633269965784664092985539051668707788250649152363489854377693430022151894821768489343146450596852317227695036143065478260194210164282384329134783010577946031756958750998226416701957236320485820081324149401006613244897697124843558455439905514103009767007282669203704529187193978519507808545631196867082774510119808797711638387354643990270578360319131198039914502993487016021002912765461429002317392655457144220453295890563264190025452886379271734478873144455507966744009243663193492942113953310585997683034832715544435823989831330634411937044360495569508731342835638478746919780650999484321501849868969115794842616681289147639412116638819253645535832859783306668942796917972055497956680597180567862496858270516785861635848274478102622678925266718355888565210281207285998806735766574877240211006083501414663255740863884996952098504661848885405585503867385413227686145743636440367202178228595532807718018735409015699729039791795004500217242349183035446581826961480126926873042610175751024973246975861505504452415916157683823849037151808329530145032517586999617149339298478417771165276987142802917785687245728920926106310810057902204468565799603993256522178023508858057695972383116584348650483225997216733276781413852825755996503562390303658620255722786960389292012846664005160420494980662206111234015836583778752224932603252512418338409566452600885594286582052460813063636866075255688532651245342915121755334806070761191069283444136246255102994020565222542962622114465270626386943292688791212567435989281207665697556170522989122558893358340959346161211671414516542987286017565395747976979404389071417295423020037485538880770320930531597953088763563070578434650924407564916038398429352828451974858037253415944965711198117529790243723287308825774529407178681733728421022809623106342746798663204945019792161917667123244249705912962073510796994927572538021080616251567007091120523972300634759877348606014826439605334828968677113258141072486593242085553172119326168808034795286935072806910810643876217971392725563756193657549754043549745253059752022047861595219017556901332728877283034858037114234233251105054045678757447841648718301052065127716904629565635379157371010102732518884472636207269185499456397701050600773833835893499159363723168878405077895904649703503288224931922609313143770204931200539317307107399514435567377926236946013140531416875492001348647707197078308832509095526822568276280517307622915064421497625142275331133647778859958310171716088942381003656490802839075712907308652323836193268641400603004430671920958220932003268278024275999040616879014891724672384397815196583028697024046297026220810341574105115593037869969919753879013537563030076074992663800781696759514868121170938811320233191833149726938029117619586935651045190087294623890443973535228299918239366022716354628203273413585464986317181409475918485815569832512234009993355123400156669547506473263298133478033987166207359403099634035646149050538724357995179523723440101700943561533423280048651429373468428191573609397517301541710113973514340391272631742855491909788961841368447990670663316019214375485170814872475849640516097489067224226666419566453797605249610156352842859874042950460798262206061360369485376957096925891519307034930585807510661632865310644498029872646670483284664520710398145237000520826848284483977809384470334388919132419772689225482135324056082662078923207249296671256141400650461731060035338485724921810189680253902129281973708734585525488510332412654953886016771870757983080486615694232874628934495301934073553905314872532267913175150146881211621112223234072860669553321347360253885217539290647949431396144306218947579515248764303383847550665497900556335327671132221985853741627154929065396697481186455818629463954637984555584235273046803259968199236513390060019614633643593267857800799329638699489977670908671641961045295869347658834400826079901649324822124553597352932609856094246573019310108885702374058423400055775819178260527861617081075624534871049292121345503009757574219223242961337359701763284123012393339789729128548387653001013154715456774104792979978086768526311108701085273031517725521272061550106387134497466247747617225642602746631224602403462496952379721490735846533493167002812671626602507118343665381363022908310961848718853773583269916139938518433574324878854062256208156973747486624768366956385455563116889728131724537087168921787234691149024520975969734256661681146804989839162023488152855379818307988681562635171006536839272872972945062147410132864982470390776365724771213886658721626526018195431643383105964621436762705894184458245646580724339395016451949135029648249568805604453337650896607741066502730462682090483108567238237168205663996289294645913463781740612034029158182337133034951750792674442878396315856040942656290467432648615521705156096200924603073948994967776855634851098735886182845777176547817810347552989812260256368729340887397677300732574569058280194886337947972738583540413348364591469205579578838819650486410824058341422647999623046814986368171910441070540815392989565999338038545162762982966273980070022578017029719945871591101815556687371082187908972700023235340345714174318523157772960359030755610709256066975871892855272196508782143462209652900305048106610512709569403614361472537230371242665524422636418353661799163314901467194363105132389550867634176652993342704546962070315117980490036820982932832960961805726676220823704109780262841240924230494090600224246106416219429897492313848882741171272053212815250365982577935910566317978816933351169145284150209455525475666111942361805732073955842446994554458636914537693939350453686320187607694765996652414060978601891001716432596829215864034592235141327787815662270262608322778578255975032648703901384936913074133445488684151878060769362272323866903630601854994685461422131350717388305129098910874395251404054273329711397756744546116777774879504649176435261263490096958205862771965035566703491365090950223617742127223614152198634585951076424764378330875971564537735676832683096405218187991708509387033393759984319351038027207897098920691628913402030981844443156933847576322069659281251606496981632984591137021201154534585766291861736569578675489154329072766299672544198323426435372089936568194194459754440459927360301116581837187002435422285831415999562457304570470266652510058901583830830305657789953677634317132492449886365373502364961480116554239714872995264318506378970083068451995488971840274707679566784030923670076787853770824902353660944109694094121054124175305761129254100388000756032448817519855103979569214406108455058976057158899097951033925307236751275780198189743206709058821199069456523490229174984450460216891644230807857367691862061031887363543169312851737156982362659432813009821976953668022545845186832073777919144715495214634936695135350262708411631614477930531899916593050379817139908973121258727145839984576048194042281057860428122334701784965705988663894396477284411437855234774026806408386545160750770471727202425675268806984790471649230091875200837804252090351927001749443677753507626060888316154702842127572796394656529411186268359444564410383086578143370640780437621736698707107317213893246450627369362699189801858384653363657637285694148990825409727688981308249912577968361281717718557286295044272148023447861617633798942301639645489264624104041018249803989472009786736190406410358127888601676878438586113837167400812647393386702528253292149491053533696477244800200698536538091481623586158895210772350337074010580594291745863229494976753957844540420021234046054028847077488935443867974130762398639469705817402630431283821231592165386082256113745673877036786651483843235233175432142770845253655767654668181042997055613319589095101209917843678410741219269394948264984441872615631111064451478509921018299414578280546476893955356646555316099629034511836575088798509391163081187122942538101623039617040918962234623950692375679120859449941784760833696634874389330279516618330087280295036315120387798941113146990948827213654295282325475300341961260742263761090690314557801510657440450024068455840545133482051359948854554221360871568335911256129197516710251772702393006847515021078247998834665995044380816724542073187815804451482816479126352869636654240478523907509819133246190427707760357358692786907263921005283306487896055662425504436397720475593851288921564785759343097663318596410588590420825966403028568942462006562808109363923988029219488103147312726161063871924897295879356017948329361305253948057745452191292867525416220971048035408054581736760087739538947340604393902902486168818784392401039240649769224687007765251129590300751504973002153936030674880717311162183772140489690983571807974131254037155803218242407504861347417966526006175440288589552881296261962516041547971051803502842341499880440851341345253673646287920074427996918280159180062114732197087208094523694439517795500277759842829043493884131238068381425500765741514368796647357030444931192378498010104133296930799336278664119543761999188055260712418788267664894868140157614508394623722550149359850061520120795065537607869625711247037365261898174804388216724079978325805208086857665346036398847044741378599037146612564263011755701263934074131701821075380452902028735212713656945085050772387307390621296413826785846348096496105022877478004725929503532132529721184983093370330223064604989977622019586758803265625729502032473123114809794697115908459487518232317474143000796261589286349195525472080154308828043301069847793934054302126345865040491458581863070529370553806309302999860771111490523423539011003845501049849293339229168580465079032916426096138211868176292267094556417249513791515351768596796698564014585215307130997430269046236461084257492519222312113658895609242741793792008136661048290669691689447810751152108138356706622138251758470899991127539172481210910812327506254590227751985254217991870381042452463463413072091933425393964053160182226144588116831029232615747465165589003096465271453506088727471308986909838383047727357681835351196357338259440009666281176836889385549696199459636150237043897853301124005678556741394658513543018108619369442578498883920638961936048281709444110207671025120312802890092878963208261382960915266651186732918405631992620777486629652359598003070431108733061840917394220441357862376607062799709293282074570722821711955330780464898010895438671429016061143281795911443343880769418015289471641498772079375955364077901033899152081394102443534997567223834958694502031741005134966657799453302831871513710360290855148036692528207103585173759620569048080882816606259148588928247130920335780082844880006679281382019981101972807229592866458305821084178180561847653796434716199000922354823107789364337541781620959180702330998396703510047761917714212686346571797744306533080677629538161786474777835680260519080227734746902845145749850328552694608273790916591457400482775655426449431237875819981530695372479019410962788483146307468382689975885601337716132230344024925868932339316225515317842938654845900181101824464672907637892647896006506028073928823243021194099832814408793614591079674284323030652470335819021679292124495484203871058902719024345804865623823278230928867636388103560443031748232737304189118037517365041646495005397759555177081706156833724423548101686606573954517993107786252785486649317238272898430387382225724513788518285976585273473513665923356804658723329099701773406936964558299302744854388906305826992184326763104386190703664026372075936109995499308701628047431181228256855840091324405126967814066181363361886151660027510529045515908404344902704160080687798309410234435794856807914816721218752147786984011243403054061379539358358061733892937700137324600898707519576687030767615812603798221975984566209029675906870356308458879390273601218398959307109386167167419960712681115010838612742603459907772989836402381115227416599590136671799940912388672207034912784629265092806184520159667510641622095944796095464408564163289924652743114787606887055276739449843732887349868870684273527996567912068158120255827289081249718173515292032321524206578062166895256599441165520400149008656725685955043926813455984647931444596816470175042401990564985785997155595531609626918176487860269756849516011483620476710036192208322323775314484410750923274069080032544941529318314907428816948320591070655871378509387804267016925175014519564281705815587391486842886460452146149923538676511724226893457872474157832221639152158207937702003316647990504510822974604971760841631534656473119853818130549970936353435767174668548316101700909552382526983725792124567660670114773297639321992652628283886306129392731482755160915892863491197027408254426523896606129515510382619370788807382285343163350364712919988804214342477843399807504193657423186316502080011685747995399057599213756178772347269695647536094863176770633766112878798282596955615564616989403081278302196548421982055037380918237399804953029000787620840795416573593066217425984800430481612875036065654198955861640560620539578120681018565701620379722924382776164938640012793160790572397909280834480029420440005989013584476356494647137397895980376557826565532697650395938007343533241479723058331370090740969876806928037548110723934918778305706522134644245421209935374903422249602971090144480381784693515742709484227385660159793979545624330013193456361199007423215016978692130051435153869095248719321849990283781433921866426138801392988897779918253067605033799165125060135536663784797658014695867110505776630289139109974003899971820214648691191945818806056064077081291956732458927333420943017842716372351530277881499001436541472519621218181668691986691753851299783879476592722236063980344331997316109926945456913488543936632867449581636191679537133541872917674985302683518955900777839638421849559562255734681712202986207423314101889192617124781896761920809257999277864982987867353213776107093488549959843756947127213518794967810540004286212612613263327874966500192031273222562051697324272031414423973884811568303382995454081619008568099019364311222564887797598544779168442428152909264665418496762873252067653319355147067980570332850331743349370862799538275149156743514807100245423586790093956277687402471296820849978768343063007985721308652929777585144358413239838801609996091296149688076926048457061030329008022868067456325992666008446997073221632035230005686939997028992330542164972563811257191925851968970821164810595106830068127827615805798672228786586696549930868210269749005167648689963245614935291080536094456292831105323521740951985727174079665618545713338230492047891694891546182676153364860897803235227774835595138978818526948575049412675561984390893513418730819196662175318825071320511478191967403354374379746906533263641353868563185858297694782544924933222409601246015954105826413796205881600372891384665877551134589518354136926693998902570660002144187210012078878316890569389826575021058425312246235225643531580358860190085301278232970287022278958509696820789849110146115577351988913625048241383435239662380113898429044945770154796562347692324487232829527238728894434299112096393702233743589758132682123775161256028827549641959335300738682707398277767956297752921843722637320512157657877071389042696002937094835924855829979692019118176141316594813422102431501711848321044402449214957238203134827260837995753902673783621899331148575460101266907771309342122784628368587334367462695092076235657573124342769250887805679354179687807450946268091422223808895266059356269575482971293665634450855066683146535544416674721084759236209972541734810710876197783540416836609315551758784839077973804089156134711998417736186933321552618878488925042567954073352947113163779024376037557322275030793964181778618626579013250802467565992013833375299885701990395599701862444223276939906608947561125922499726915133621161815394996889177737481519829343822017618090050647865111746471560091664469705867100594298004413353081286385790326691606228077227013672149958176002709861135117774704390268199677366408019276100107793388720967974248499145663142609602712593380882746842431299055446057884946671625235097517997983431808579355734544681553298232949160851955524011332468163310700439045213626848060829563406041399632838227370657014532693999860673832774398909447061670156467310947302679247584881686403238254680035665886055309906147410324411235425319790525245348778889939367995369003051754378085237177392346169499311729310745279642199017119554638387441833482841792527454387386628909813554401989612811079316811578433156100334280732003357984664290091340853950490254345573893501146808228727307799803550976086932236670436205262538664955586350580287735582061349051718039577866713747046276582362030689573472049922740694597017815160859285099764429921900172824733941261316731894145411750702813405494160619944159323767047308270567638907725633453171025274738403878705609561420416913842359638229709329015508187315871206745996011433257290228268075508033545619304984604030329696777024433920831224261147370843612336922321620072924036830695509350264268756394653630833125696199670547619344571604630806436157052699075480211828453660318317655945735303994379914279062771827810468722990672691686708882583219824953337571176068161714350583041563288896959916404807634946481483915793307444930520595868792398615411512492105357437076079424431217975777069713496101345242918974100506357212676212184434442624424159031039989857172844120625001004655371041515448473164681657283192532355589343676968005601260236546083700026687409631264648067545366974853090625497723372919814933874266570145823699347151616012318189648431130942793257262199795076969755809296330172266839844450527918248322384962206655139029360804182831576226085698104108965087848085137569384166543010215657691424163558883243835987293880169916762895651108237521666091309203149630870307656625768702977158590610553431900944461175190388885945799953278250131165331994614459692573414504580507879522673005511184422906982485428563518751877039470012441729631195426902559534600719496915999799665448260194095101286523951928566944472822490074176548612760949777726838184343358057345541395273836214216199945199053681210252619509038836800885554613889997304669435757299483797036331579556151926072211542774750932948819139230553332039197930089145196086235524357465576029708094092896968310320228027470766235040561173928025915210410404421600340083350106087299960238617384649352491163467959303429367015220512672681769676514810599434153390173276680308525456847805380009336216352789676600973661381630652687108520410557141181157962558854199685958718777693698078117179957336285372733246112657796210522196586804774460850510562936552136362508816924163388743467518852081793205465816723710749189181158280294588195066440561499782617599405479230257556974948743818432039402763331407016273424361463456238368779950424687675763400959607160204482291129451190854580142800127166426565062955711739075789363802634811280536378619250835772734597486346200508742027269183962568161221359356632023789644384043698118782421751166009849809746357730150670179672014507148490130677335149446510726796598739999569918258647997462165156391959931385176671483798723899576609952305972036166561150332747643019128691937490676843158549443161282581559707539956121586161082630930035366577222990673247761449837172031928968840046527541298105523124516297504030718238758144143160879992438677311459886661426953031204581253669262626083308452290471470869912428033251739611275115183857836794136505459522086712652240727381998439243906470222513422192662235746219751507829079268448660795191135189137994521881867681092313695329926590875872088991778417942079329964233974947638048170900795821915007202448281466724803867646708538842646059598327351710070087147563604492837220495308234919679937197911500022795204396489354290969718348751519368361958871792398814933814573089222619229146500425625617249534916227221081977559271771648486608426363727612108180718595986015548898242639761931642345767949934113138189434094422400418829832310105862824046715584730698737887346569102249861864016026607428367484578049632221810918898548932063044996864176699672523861212054988290830611382756271096707924252440309943067133491812181052848929172940259603092420991958134280749429783472745420052372388320356886724859590626117840173805637323573833281747026827455058202409083785924752707689080359174967654687265829657992562491356602223172555896239752545266238179111337685610857184374984306275438941880276041513887807064923590213039145528666702062389168748372524366099717191806069317364163500530796147102046816797128951416839886711236226101311039530207726180830745278479986998809962270784332211350539809757766731785514711294306616938855513827645721580337389865342775187985729975715361021861299980952621936867503880349599813500565338584928399949189909322750726945960936266594029620670586461429238562747867398706590926215086699450077725394205576544313781518087762635232700163735283257063526595845326871540778298898484060992377310441953174596378665480552520126897254895938660120061410010926339462224133235931321406557087854003579065197521869822312878651272597213281967857716417195327236479762679198348477586149337123367376134943125074355307574448683550389210772877462989606808508304990258647292802855863800581115259939603160731405121280387703228395669960295962951625132382138633887293340768385057565925903340148069804947972263782683267217432909760207326112583088101972416889829545759411459308301179077411167512905504682658958094769113854124140894155596528891773537411005821585131203350416910434682367733320059932268728208470546652445929764168701166284878059901871145457322668693595190876144594768894373993922270081040897079009623305188304203161752415743076012166097996457408031964569407892857634532905444853613528419269365957374909776695531675949919937299726849529187065416098047430832517392853277759221025816712277100783409874839081734321315436965473479463955072360797610800147564129431935675932097497443707931971442133723167170609290654310020610162247199581614044603472252836737821917841200322463692765296765847157067607731907406448246682614057527215828945139465717388548591477900544805491518087246312397817814593256670529806306539510518981016181240579575070051273528607854148706171418253429388972380161672110448776314600645781058924778777690150487720720308039842745114307351564234487377732376110001872955544347149953462227205903464738601184922712609922980469749450721100480673445865840196562445762305628183781204787981579530610483170918263468723656756169339963102981244497151307466799917042661363999374411511899135194794919154316745996277986455822936693783450445633267470039221069175532452419931427963769250456991351646317355917290206062559018699843979767271933898905717796187866720491317023525832434313674395799446790679547882267227084824172340216245886505824236518643052784467024070803109983888212366078675345236407388743060403625184287492627888347077024366640135678266458167486867306396557532024015519284919230580584866094928403103441114348908827272403934359151142282495280745290959621489799101229323596893268157139266607684764366074932517671410680423165267295087413502131235212522477137808048675794785748000463847167291611631754428238187055427244062427799268201984710417856360572239669539727844333479823852354277027578456673780913498583514278514587802545737685885889055119869753177507742369736764272076099955691584407368530187439604478736131153065226473532157076133095555741802755730666882018405035577910027444207625552883736882379481791741622546416355024111832365221015422497514076978333901498479134273042825466170566998841777913202409016342143638429549034197508147042111057963404751390866625945896748500760912339124908806351577200936923224483665715063960218409357353984519608910321641827291563331413693148093387713026999670440984998311603621963889008882753011184175831490686053590722763243200938183336863710739242351555808276548319827486549823651178328266397845482580049131193433266276058061287111796086466362050530264929988092549533297234451778534010375896009883808634332227524755312576601306197685999318402019158767703015714433708851120491456384170964465343509180390494260700329951234426963119901076173440660057106937282924283450323269666185032887960884304532567378846519253931068114000750165108122554158603325403946151734850182371862685412938438349388222541556717739270264896133007455509786266185264597181274136758378890867343179339158871893711570441949909837420450692846511086671524029861200645131510377316802950189504142804098515816924872249218482701544123904286530120836679408214074868248363303004981783222402165170415295324581132095422958342789372266604842630467757386755831979434923407644540095288690046018125178260560833378417715203371749334938494291011194437260666870805654680643745600311732266439994595990462723276323971617089787568983987575065943461267248524504768237094050638004903217132573741000872049476340334683359526941543410394442740780244135041898743881264077694842239703062945257422122113700566358143183972420439212740557264095887735766228708227332035926575711976046358533305439321513765819194607169259720558962076944543685074838155685218594318324377086277589327788154123397061519233465037533407412994140975786682244440991997926011535694585760033669481182147704521117526001668588549759778077288877604581646282950234323489622645069898058223275250017178501404785132149244683294012774928342735545565364700665827830243241267116224384019683203449339809134071195939552349570229741547690273480334091248676772156259244770666008132349218406877258526858937479208461060861676509423185802892978451012979187069369975893455779522540386187469783592076084552739100346838698077503148951363419906617957307979375378998375631843799835431268035114127261259182158982417543512152074859004337521055278907680821020949126988759876192469698167351891364379666648641328907760359548231418223365886887169767059035504461307959931030051805670369271016828617456010747793100572302957670883713170218951197169158388039264770262363150844595645579600810084852854228320598643831211730775465197755531535232897904555601670422628041260845016727906731279710688644417899078262369892987212882527472399216793611185094844645668525635932019764264284546463556394399665453095048592137574861248715859704444321576600480110534712777095387195102634989470476674813218857255817183458624409636936350192354871200435686501127575644484207840920860047085341318423546906010903333254356530492129763841376799044194485673633804878905241109486709476526665591611249650605283170434991370637189057536618640262939648724330797758550984929388187544037525351624336637641007622159233308791086306058503083536754106555542758654480910111935131711234676558740236293905612279104219381181629042688218673257729859703702908560704985650315024998209956243130177832240460429415764738542686842588456781240088284454185305095466444494006430306380428868178489799571550003534951016463866334778718302945976216145837862343664298563206391639490506833956418149546123360067772346063142687573708531592232803200629274890311690171022678035091392770723225305927390976479561960075551772647947677643396012357974907840222349852987791006744752952038125355379455672674696424604646088053282401888225710859891235097784222227026296108160044997072014768550058836754556348055802394561497314024814616160691409268690538985651238766949066763705912560316259351933489645787359897561773509603412045486845117374165338385722281683141865246296552968538764047444891176452974582594429202476652892144814131724513212178365017340024775339883025755758944217874797018311996691325492331139791666432015644777232345022105102531505136404242827796311592260365455630526140482943347954980555037898342673132075389647641018403497774540310518718692678309414281668646268202307930288150982391537723588356410102559725844553887607449049648515414635530147786631538587341294825779586095402531434586711135246418415463740230536892642253040258638107623894557642031761748312539204565736107986506478913274980944118614267071187611467703516487241130978489377808839976800928532478502533856215531630678329645433935055254593810049329410752941140159509473764730310706528070041843598124969056955914639734444258133730592055103525710165265393330394539628008139366533939762859967516701675768581139175410715526883118230982535925528084278444549255810910555248304205699369559838488862367585458648450742796408914456246409726367134849346560264637662295537201404516769412139786737740854468360940245826435519699958158827391499008761957313320013059525522159152927566120352435241871075812727688099384285124848804065954069275520330409802771951502742098378409866735647187047113441935535746245349333737186373281458243463585245760500494168550717819603345158604876933980561436133600421214495915793015555967377293461293577166028627779358328383914744919819672144612884224687879210559546074549809067118634568811119187714018847022080694882913066359465177119020877121536781039971262578429918990462383696602998243637589228770187259161033710548735057971136360256088358611401691103286168908997225521200112379847357845893623541159774274028953127832148043781484901559572127119874103905406645444966273953754917584580396186555771976568586653542688939522748658737637993311471238315187067430216940833946346739248154713908351851938306098084335668351775361495432389337181085179879813431652183323162681098647483421035318471756651972610366047427263047237944749185082167712549873106134807912852838913881810382005172522713033977946650612517167213674682944440803436185567825138732660005328710566721180385198399849095438120388607089029282417836895850984341426490272606822939270733409675662962016356241281917269250744335593241473059955808322655327556601480387450115709567063150169484797430350110617839205347153900389617494014673042383878624229820627688849344168887581479402893004813276312518683134438300281348745297910271866726254231817543697160902305820004984532447805543220221040409886604995162731237003019791314342965150935612660774845138804130660440681577550672559351478002489093684694067071013565733792798415463063579312741442525171690416865017714540729663604780249443953059946503376545877987143141410187481874061766484128857179304047339193624234139492382663066961614643217846457095570961763218840067667536175909235120994702746076015933412168962766973505624836444314071050836170984881781409998765081616830759210130852589662748393210182052441614399002703945422799259465938028267715251398427695304117368237049627947498862891004422695953723196726328262208267910701579556554309185919155446039929782678491909840634518857354104483343899655350745756404527591092116503948335362760167233076149908589753472894222195639495750002665794006177656048272610731070148983004620352050856881401251959218401543495901104644343376973732645589015542070048354456675014903487508060359793341137436529344219135200526670141864894263950205644720660215843948266195097578819162710672807540258634990403532704476211158551646766288315710454994941095147661074645006987842221557802396757267100032826285728273414409027473340566663607141190710996029232320193550444637548010571892186980779996124497081962869807500131058015806693491968780919624790738262957797458765590391920087671198008862166669081099786346447564521707636547535350020156625999301722140039088525341444286966181766099998370771199793264575200211786491487789015866526998630847080549362836861806961806349068929303174084755175441742800236927454321303699435675958671987026573444686611825003251787654589596339788663438606726954086003217385481112336527414676015252438191465050902807363798079474305222591210776084145529414044117349140420507496067290454156373386971776245140315284960224762050321476933049071739431900821665720236128939974574048809021322718856705759131413766583086985100818065156479715741154153544085156246146459917255275883285569625835067816277974480739625959004821837562039702855716220266897389407429846031325448290686617300237745764168364056345291045238850143696117901955893014957403210754645764625280320281214525588766701246309324762353015162408379574307888382628651079324738504747010441961025516980342156319203693818139500666735687549433788180194448450828195314471526503027183868825009497104342519983514099280832677835297863970188816697005001912647603426443921283087130657934946677903903047834287143949067472303897626675487280841020272890155902167307816369847030071425375271301243349857985289613279960466965068145626179531033706307705987098132925723563849919865434575720907529692577565408194900027812887796660097009126939800633442247856947833329702973325942721817399606668363829382359391904026744937153802957302632124686850291541055996209965685128195442318026955813388527358030183743962060192487609087919585207714826471830209522354735548864837402995773696595801045265966034122293462172840828167427701683035338679588130928684807898532346334196445728790039531069702902094121238103641531891031070056389255819206411624758940538750877594879142543638972718926050566526339511077088330098035650105017110950290774548865634249708145234259920965608888797156642909910476894565090822579292121151639012764281912997855047705288860136571234029650853201123107716981698994315226741720103198825162977436339754894794068033195554674137131331590997618403854743884290714818506274398290596540538234650924769440277991321271721358543019101370335119826253563187136938772142247293608395682881965009829749446973170130408448741068926148803854462839430447231499450766188137390561783593836836661501396289515378013756948435807382263641185073055994798663940766202221772620050345915849369011858277484564793766747939197550732628131807917717531553784715113133156666998267425799858789005625788831419911453947196998022729169665584668939106112255767533422918503271899151904474831142615665857700934573303623804797894969907501552042073081565703850543313194307520240598496415391106753650626921920561026847998756837595144001840920352751958043484694878198492462868746865499943927438653228453609917987730311439094093551786849714791540039752446295449679170994935591910536703204375451237086095048687188135263739105790338574114169064661857667817593144654147978961419913854953994188696002030630506739874730469509240333468414433373713582156704085453964572933145642408557202266133054042924459017088044520045358692427654038879339669335824558142369152512327850842453648283277039438249467830356466581936665896741092939375696627344215336544119450991898639251022264329582755693992388196246877234080978375680225885960755021881584749746485458630126843409581327003428324166609145352295240143118897185802387119104254196754108413064567742737621657417547122076377958320905227682008897606415915997417415620770115796338949987357005397120983552604996712824823468956247315648703391587096408261396755252156489767756742796497259654366505623180491943206956031263198765982424138823092513556044613372270077397856803271141413050019482065434734669634174431328957243158685400855713642441808787224884527626443648596545011511144183547335393819567473052061989220954501404656327493999458304068368185084113882230483475933723140183038705053285347984866547621480942258527494821441246552410649748916276382209178411401777334390311009836675949163613675319312445575121045837600984634814191597437541251705744537450572049276609947209256601439051750663150817230949941719797470466532486489217175473887713460649954062042263399564948850114548506934903033577383730007275515760783055816449993201690804285684744660352690391797673919780771649318625449752182303899495676097516958923728298635469323507540503212680565604399267543465139676189588229403702047566534588948631087263257571618411001331902032082167981080526700412025347102150977308857561610320301609883005389178001431194696517861893092836425422029409218700680034626794896570236243712377009315832425209704204899110111793483220686593827456976118403765750748207025938462883417055317417831520913391121946180308721923626330656605535676315909075473678483811667623395597873218318835072825433452268763546751407993580935354234841765002356629092713038446086016643274347152701741863969713164523171370722872248494762391567318968953762272404721050411920651485404000941327113950541597898866422186859327348613155455280318515006128882450628101326967187358581822514676302807243690265248870515883589478566585020017292997869394928097198461762351429648359639939643634097775553680702001116577027460222561224898305136614907038468212232890460689607392824173115101566138510498527800968349674124496067814388213707972722779019459332361197601282761132750764517112453013996471086357587498364830004457287019507267326470384061694899321747621858563563115705619674836039492701179463220412125851509736056097619481349266889085512556071255733988772024728729426335221341053309537194367615418411294686244834446060979401767435915200578707286845645083930322441079684274972089124777362495957860414524356390017104129841690086857011150455090201558037405907820167863590029386198594029345140350051666353858363518809010744326160495171830655909621259308692988303125407697485149674956488587414076413402012711059868778462645030676322961681063996399059876411614983218019395288582302601237145515694841508554525780051875678496925963694939259324539778417486161290528049645066170297361444122757132625919395028001163322168243870830486432528926460612647908764199080190048847171461990562796487543580378854230759509802982719097733787146298897688878328962629993171270324824193593198818659851639770945065279310879844958888535777310385601011583648993423364234504348845873256360882966534297145656912647112324418626820329132707449951749863752324756534669775166830493597946490988315098372350623473550465678118362924038033789416291774580607427836488770778079189211104774538758153276913754173169067780226363342632333587497187517275722633820768112709448637314947374599982003073007873010036688354915638339075800180608167082199362308454487819280056916752654367855934074683283423859161298370761594422254893847606329369497786133747506782576482408934933550704833712523654067651458332274016694927936850337846732630455117815249718247889942129283526475193577167192666137539231375881123713313944323290121128736234385307511604789046673611983340938784681421788543667110539508116816271535314965616655163329947924498190976892195439333248178275500387809604392603585395447323961048896804461126267663271611026769766939166441846389394790809082834371646460015095663084748403111856414675154587694190440085592267568383006238822571406222035300917238795480766361260167338021631945179853241905248211424986517576292440237249519831268617398605813698332219304482523176253084593979069316913173911728663345905458593123731052086334815232814844230807848158381030198205473219472502642671458058210557924986791207472325910640661111187142916029350103063007548147923944601733942017704855202346997339879015577244677912186139767662244928221537405151561440023829203872131950318978673259501281619580097830375294430574166658524173783583183458547122404830334380966961531785877750443476423933120766253377917911897137856686868060952015658447433335324601178182944147958993243470153669852525695568717631964976729596774189764881072658629309888720587213596567884156582920532172617394982329581158891295547642011143220154666792662654860356980494787902328131540975700547189891401481227630087851746437679266445961750420993649298772372265970453034668843524104621058103339046798200488436639362790097138234057150721719426515810352609331359074145234996936088791012284961767364619679219921285412049872754584030675816246355854597913554826601824761540374651210518724979576907574817239428285991022160452784370501559377185994895310598651862636033595037805553367629278204978400972265898351959032587027944417454587301698754898658524587492514673764268162778591665779093817404000775927116743469655474798424677730845191568501960543191038660175145877776639636177443652888799152195449187855039998635011037187351154536571637445722298586777328471210901810645102867448059886082182777041220635904196527790500227301655340550749875748153357316531717703954032389010309154212394389394777859776100087794897798412856629750562245716573104080312455159591196045860350683506541843585557809401745686550825211692211620315100270252010260233981618357489534925922668275194468484989134007380086367006640101900029924602310685820639102069415729886707513414556683258707818392677856223316126886997059239579999714580052136871001921109075933919553245357136860637164545680955890627186057965080052462667053897072073762115429523360906375907299560337673301541074640793052715770667562310948485372243693768337731492072974389235165673313414842502393864001853465335190109396816108780954294184967672167624696200028373283797816944416070113971413913976504065406495536536723206669912955631672723544231894030008952638444976378994430011126173112039208666959999754041523507577229822371666937876528998409107952643548609913735827327023427681285295735364500364588751807957150224628249439129626441333674852802214071650390841340092990383952694119615682211197526207891147263435003319261276545243278400251875036231636364742890060716909463032395880146921684866108224383302675274266459550087713968793551471932745662227018283217304029791872982362274715075132478340935475184996238335329818442932985806861738144074749528441379432567474762713027564692442729322863754087274341411501285346837373014893989564774860082139388721510662495863794737842638002507143943333167684449350360655317322738870239041200630480472922403774314242992581700632139393306470721488585631243061185240852345193255178749348021477649923402727923976852593139672975000106965410394343118983468569107425094867224178666929882558624049849528595141786493809258269060460315115595658631766650731606510737013647715009613779388755664547820889884244453397441524874526260166454324342624092851812197897270604598568209167794385370109187587546650813838982682335716850186703691386264200989253966455575976423195407831785701746529793063633255392021474483815700478080726294672947089065458491848717319923155001211139265157869493755273045468434635533214187317783564594615717823245420246272922479640938217141867380219259589607369125668312492140398326209803569894213873865078710056445572717614242287829277189668788156865259611604506556645505789683525465937502906883152801600342942443905712194519297179983870281044355386673709957496414821588015086735761742013579616519746447537537435412469470739266801717884557247035576650406158298088080533248584189276485597851248387655315829635444562787997669934197955690497034031807512210740510290344882626957781325769424796268338039157477224421910100323256339137499708073316456009407680143257024643430680621429332716465582473795333307821386759243703320428857540523022625414975811594425401440366027060916167238576521983959812880873239630323449410848550636959867281166159370228350097054869085159846393914296047134904715413144691333210080253928299344524039860951857048922628681392507823485626338463423425319689493367715616634954358460970985145674531923330211646779481756701326268021762754431554014593459295464634845539734692772565447246773093296340584507618387759665224900941758151658072873401782302511420995353739791935338180367119449347416061591706121564583725300410570719964315526122036430342452090074814228934018290848924248720151503441319934700401380067646092506163209917531531979886638925339154254070336399508945616706737325409450461160070366968921957853642561104960232434497880917673205425793007780730732569046345394448504869669920692401565814570003554086801779554059060708375629531770360149916455069403853673230006451662285057553009871323724080941273689302487833214117096169263512187398818647140633139154972324426582469254677318726096469411999807380264105181191166805066776121679739479602472974881322690353956587089082343919040123124768234780109500822880749573435098552009449240860112781858763531888901303165193624809831644577230202425908648301785782232328520063997986903727890489573056449325327425524624575149097353979688857549731673313186291382627638369308937768533519355534138191900851471854342282894739451532638911266108969977742690838515547153893100867210942421609244589568955382606216952319822601499862344258135168220427465452928062539608046083266479840536393472449173387345805392737106620401323330653170741041241597122505506265100883282381490879009247929490758910000884093186045906948621530775472712668347939452010613588761566724463719269851964118057756763697207165674019626201154737698395814197669303805332901750555133565911263504816313400899580230777082700034557799682397977641010069960732141543388092735291206891160140801359372180466457058707797090325288962035094867443964899053121585421542151625510962815309956278333469689216133054986379279123667546969924011389527221699395294015577508505969006833391612592419820397052852913360568061623965590752074309539078363870733649696992496427794813807726324236661799956190427864639521591962063730628537176832601052892183474033758267188807840410431018239878020951901021088473351645365283614206962059269338717192577776906739515634821105483742805924029075596548108307820741441755090460164568805682987967339963562486522214294774259162306664603367291220762611823043736262662558645712048373194692405807825724101351615378141995049956489352010679404228764393234787400182811901530624357896382929000890037344398216556387634081509797419700418743122051583950330242683885689842168711435122699748698801265870661973641904496499415713392541986475944389509801961896860899896515104362191615533129192482258418527829114030158303509606908207089415269085935679584460126128476839805039004589432246046888206516134094389748055339524613154818157202818687425072101213161618777387053769149382285491598817888048612455906912760043292767559780661978594416979174161269421218837683928057870493003697140048782470063730633222304433159360955037097060896856296837730389710190214682864603511250561351652855310408364593663100626962607002049818088917665302385096056087696150374019351720486335673052227748142963106917426393992001451520853593415101020558316601922317900255503001358955316892414355430433634606053812490513752969561044938055090853700043761714753001445749658955330013000220598248297235498997791068340408137120231063668205312908062722168135092351855492163152943984532544999490598379686545566894682723711355809602520230390317044184525592185603841005364027752857100421826615227786028111341465307388049959762012065339209078190804772875387981125271290379916588742027529175006488445783041056882580116888573590087485838715814163977617406236282279398102194590214638190035523393863221938004330762444603879483272691054604592698179451498976982398802112747395165546512164785983996108356251137723696478013077246466561965974419381491100064491374332703113108484818311810281108327274307606522481994213324208653038140025128942225198607065425023489097140567569294422864596790928853859022702376987819311023751265127648814404494360124921396893967156566838237432359315280968267202695702145670856952400732375888483189281365450675402924009599430106201967012379541828065665150715258267935511339894422322283200011439824321061609799549802847835366992367426768825881168426174683753683677535787922702481538355406690389913445312026128167187504444157837915750574190497520405526401965271485185187524892756249028794890353667173063158889514861365686781611230852566808144342437430010445507786641109767198227863827917729286204858199847527027010133846578694773843475001688379370682018065974635607275610024840709282438174953870228351458604145510895116922979118164402365264734683418774599040662126554322346438556860209665276430936713256626582801401554002912955426150912682931039341655835228184799103837634291419548668920618009798828851145102336396693725845872505091516804655348176703984744765430742102767072681209156491613764541329558270017628587582391651892755716187717997331671758446339654484692423021278009377873920014831208030699830563298281428913606688223580711213272586216813490436807342105942099150641556373183501279051530744280016308768223510351652174918181630394159566035813978723629214454340114354095284621441931055640329542174364431125279560765174699391861717266366457138387703519530870999849921549030370836205668764171169563187471107233681681328396100597437353885234268286217054320421655437605132801925649744209345259086567711910645891186146864719507817302099819375221927289380270640083302041763642877812569582700896940569555213491950357725730635504978287685365791927381285390269432705504235829635622372271774818422700866752272999459436116000163551240837773241721293026553394905921632833328894755960796273598803278269470169021415505412628002779301165157106228694270423523335650955836751643894487464294471189079482581514984529536041956897554517069322558706698610663430256898722625294879174304266018705752760981741782728883168445148952859469566875626382143288961427804260777543852400338231625657919059428926103943189748482473587370661836913485335200553967473550882863994963775793164631267659374468626011634167447468687635703403001397521444220515657398970038966338680062017895470571958293165563352608052594289222025660000033736334612824523023007551729344647764568601727741152928867526546073538049800896916691427577155392631463886743188012296570450132278483896237333890554173327026379340806201084801982726361796809192624097215211892937866385302048470237082011249981943372276025704935568753057540737406976179276459560974567391195632447274640249088191747895628386714073034738377067638647750421633281356599909234651994619576027800270930785367750026338188233743680557225173578583990523781409872882545783701544386991787237772255763468640525969987787728288049007562479916621278971191140782595646249319819452086066326110510049784433617163535275582426455526475466077538262642169573985719712560539090447960762172694339901603543949781424492396377078026951925619242898616073820388583352187190212992178262420758554031944280938949797408974129259401841290800431325686320186246805998598760635491150599643882906821840216344844134501565765438483362808258600725963437818231293069363426298071699348486969351266712717820754725408670371242399243890478868547259165218378852801265484496346186810175514744750369166784867695204532813135096822614807826720944576762218886149536841955218361170891863033261437420996632666561062399018929305507498911106589206458964238820676588500388992204202830689287347080989783095106763087231646073836899673827226827364636419069658366157193713930612477930336101522422807640640873810640099215058863257193004551938392948594732696765913133798607107057191688557171163358118778147515138487005491996956466092296745330938060146646502346303510427913918116080411541668983825430163406747268685431537942663601420546396122267027389318756593404664219987687521329610706293648457676080198443321509115123818379485794553376652686891383875901785789337015693119960674904011850389961730536633127708612338954893652133790112133216504146215589470050722928490266071732094699282617988682485207469171789496184521715203116373433674248410702914215744617501536094848152618892625600229263554490217969145091233098646517717670083472949789440279603214474124469704443739107732896087839255267709188624279813216284506821729611565212435454745268810944340141655085636786461278687222198280050092399457819881677453609262908825737567365118736589152152428224657451802778369490097513679944346113193919986873933801967350835714027516157413364820253219394879068989102725178889083586344529745308947046616858785874462002856622052787190419964551152608437147599418389530020175242946529933712528532945470885243393173598681992778962860672334959885415101027277172256811476055447227490352655428506936539823527922072120542415054056049932757074893002477204846188708099832421464806891462498968300856589554928596220917615887797834682194514233366078026375598633859562243009749122260056843933263509934386443347946380656105256585939685975549384186631353532463501946054549590526041790916033326936515394663057574439933040503888279870843672147398525483213474418810471749743630618169326051017212487221781514722405000215938581768912660389493021915560072765000443943272435955521078889308367638692485295253432307211142384910689033102529693109182009337681089335762815227441681994182732044669756315328217771820799725933119015363965691724490137550411947624731037580590677699456655844617838366428450821040745799596902408505796337922674647836247388546995097292021476642338758362225364110888227063624173812658062128995234297637570558196624215206821905417240645334398453876282116676821345700317567817260827531645957108893786191582453582611347420366737293936026224229601623542991649039670819257070394208680580124678255760498473934841534570698646034819829432610997499701202395129813234242372857030762396963874903714536236619627724915808910970718130709948452875369422401377339013172093601715254116728921876490638957814402786018491122783608430756291174934077880008335147985659721572997840839440028687973053511707747181193452494026351117396946555860599948402869104635624836554021559555609650875420073807919019592618073834454439225661289259245937946115726949863498276091270638726057130735556407401020838352069076266904911343747719870890532271268428166638473637565764501902684993518798252222541435769111460552180389780162335316158841840806788042753748299510474991279608331522385339519202295182878573568526189641871728694768550537440039067528481647008783780740676775227849636540975015970030710096900508551917846801784123557057176288419384027219408508058414817916855855178769095371055641198122848271641456748185008575958651957115733785869258073037291450162234072268770665956387167106459110429051929763408210733867533681494110169806333002591906561820822067222600042545142171435615775278950952740878525833898818853559196260719424146337778341457685307427122775930149182497853959422743120142061851133769810967659411013035807938976787154526739080798563213554299366823595056366652430611257384521649105390945633836472704219028201074448274352464934307617526201534348378687505181468140091419225494977640369458875188155551325920979905396415562135051363746710118739827461575923323369493289777521616215078297038585033917027650004261854175792251186354523960072071194206211915689447693226173916960020545570901364082442327432396166926083278599845551257791740868549077578877099429541715851051468299837167096335680160350609199217904255097327042328570866372101519515220666829919126852970649616995186256728777908802847219222402240731466931484448057052047990672133420007295718835331671472518708564597398916124622905179566269453714722365141628923617397705402029106067744934744322140718580809491450162144424830208460563774689263247340517609165531404288163237186806312943091843493595303318355174932762606577977319559917399052969386828847334421452279107428914733926988031343842097796203826617107808699788790198185296053919675374978846798500841872069771198818283959188177815250907485783016988569547098629039974319637495769062381344850226374739241994339231622400575702945103948384350440597061801673498392648271426134288103117230176866238965706536423321729759474160168203018260796151464375027323993222868734062881204465072381224615787660067120620402540042058737921124895715857630811098430200772753125824449002242995254257466464366204990329047662934210574036151733167951444155477429584573220685169509623558094362982706353222012144668516735327032483838138027844250632969075406084280531350692224821395783846362583433660056465291345683599868811162517906135483783515029371288965143549432143544634149747311993073484667717083201487444593310500702941446253978183394223921952268784635662287893048667951028116842349340866240480928293325247462543337523488696258392235561597448275899045779437698916699346643800993317733960995974367175064407331004605976840535374546691738537294910499375026315487141878713738477613413601312323156250268704429277281085855646953174923793502730532071210340775893635986206454214950247387793262200319968011725243331743210361635069407003576434075174022579413443011620538515605366034659542778866386848830741975950955615974068521011211333572580944647522142531646030608512823332032460652567963593178196479928085106699635317278415933081100454954974359349391438856613391627181287042783504665330014897811208149085429885615273918138550306476798285456022309189655314966837108059637881340515504771762987530655397106289475148463750804908292561777639561585492123420056962780131850178897398624416607223626087939905204802499589352768308346354551651997511925240505146425184543303382818808395395312013377854160922401847102963833568725990047854303730194983404469807362472323914714341238324225760306810349898649596480464453347087187057915892821114680626313755876435545342032945643607882520477416836208791498062748331743768321262226987053783590821522244469657702084986771479270512531057091945138400250452765315311581111444339227162148072838755328201459051180053790304431624298950631719280917477959105815434555587088559865852163846499285717418080972721212333303935731359919330310687913875838438722923242674044397127956663119309294034648092755805893431477430839659374860037332044067219051422965099505692187612817549421751150134356908052850796228900204873760147517074468028176292441444884764848844040706992925947593166706696945361532624561174342183342122365640327923131959771182488766062302216261666048499548044202714886218473486269740671969039528114855420954162616268822891381257973649350856466932633879079564619982251265346105374042183857812306766924853564004763881032240503776728493238126474458651326039727329329429459220973268649546188543301774161645877220259466588366300004739192754363516592353671681778483068547861700545770698556713300849179876319148975959955162244546376796516941530562818297693958825300794570336392449599152367853838677237155106448132614351415437113818065499071557492585002631977528411892802970092395416162335798213755070729356430548114075983148257793895848268386963224239687145246098970620568245877982799423516547790319842835150510431403038066615578457131081572822009600234224209592742945154653034117999133590736449936681124250694274583496183184227212548099468521613843753062510703448284515253045053715132821790032976534313637894893090844002662392462023679557594820213039547375788601659910650285376489304142903123691124836737939903637974862180183341989335795873076981040294542984988226656163326418372006297758031975553792885816998979547288408924595796309218863877083634781682091210086123407084339744252606823298308788515228486596458398751381059868982984921557599044836222427687606975802377683620558831268392489379811067567845685954060166700701062644162384705865481885671118685348901338959412377478613086007818337983270539025059024778165884499019670566276717060108561846789577919676907156468698375944102728908865767434221397531916271672834074129061692822052156623943098811287826920912951708224781740933430463569219475269932638920897977293039965042917597382202180781376954935065854865573881957997859492473147508119917790870802742125882759272737413078676335086936192280511195915201190511942623467467325825844859897190836063771072572445767574751127730316592155605630309595445963969291666043082358052167213918255757738076286095262371853346679002821486729442888173504965024357805436740492030802033506261416991917422405225369739795761003503282746459502242046677857629832349352531622302633376280096104954866141601565308294393641752622088041430559851123298889307951487743995571589840540564240083921234148395551267563945068146612481122798162687801537817156241055222942765302256991238542394617287321464696940816431825396722959508052912115715367988635737606558957132073464216345305927997075214588896255915770183255972843857896607133255066775380724915894780802435735417389180906734753512522321211260052277719798544121485992355689112779238957296799993522978093790217691823016978298157770983994968708835502854740097147058301525744272234377522943065293108281262062424034852123927969811578712040221114086494860062090181890209079934603155158579749615217873849635979542104835172398274039314067105444990341816326214319295471004244647389524968675054038446097819449192623175713814997248374626580039262086936515450115712953650761380951303220566486986426074130435872716774503055992245457479910857638345445414817431429332106047267343282130699350620418076121955031861654499159755688408243338799366046119988083674539568738106654522338879411381294326496763833225842308681157870730934170311544259966785423929390014788761205560896524318555090851957375790636491308292798447338410439440113226935219397798599916549914647888160946977810351457484390007323822006894084570806243656527936397639087111939135015066891206744726003585919147786586005662494234530500626868037791207645154802072219268648078377728602642255209296215604571480934221493364926113585621643299613173461154291997267898984574088048754739285039163434375339928998910460438652169017532816809152990943240962600916288914872922007719381855712325193150637666678059256980475162847532493304529085073678782448047909117307256968189077192927213008639440485599857449535659552838604884240272659433453672281860135983105741779616018083999963810224680167802444840651186583788280865597243307689052959333252787300741210412926505337145431322569167653970027473040488623365365371026988343584732185719184190847780491410499235545934587772104448304066856041716701307934073010786156702114958521801388546605637044310143090482461913363183153370678032967042299183850287627432097284091124687806299446587995195567271204067854556127182310045091636074642549186456144686478954285142845793119484359497746496913148922028791233675905732604731619726193489739534162051955512946431802124432114982110778712448647459661895551041582026823518421102820649226751556589771065079824134245972819645614430279418033161155437827972530867153469710699712589991064602594302083719468603911742094809608547050126449621881912761525162738241259301989959082768054302587756391072544337152804733049212070079727482065376554384835251142164091492787603647127984092238808911921461061875090186469112688762729097981520506790537991216866423474341665771727401764013027992580708869616923577233574383991355699999556113796311045644492607505273762979069691659717631138613943907801100185830053889397370783406664535458239938451872932937989134538066810560135451661265815860531213455340519966963032572997695629139198639132207824995640050212359678960757826795927123604213960548321626742318383727006517098098088839526504144427059587443991890992407267208388439249860019145767277367654428867872848393333639981010958180817494532860062634086281478039444898619747064565136566710265058667226272826971962275433203617436512592253417049769091556553064693735913244210108709410309953226266790893225829653849901931262867880167471371117783827411760832359072437152381011984732360778125050137825277557681405423582149520246095269952390759465403193893796825104052128399589305186150818904953986152399668649613159561695285067440009456431025906221441134725999029831246777163198838334126358068794586560018405361627543828543322187421638651732547309632096790382204902617748432440144789836962265950791050238396934077424305027118924575333865164271082821707153604426286112592514476069637412687567161332536355290816110228037032759953367824676886151454874775484202856679862719109242495009680414672964343430864339908821664397031693224160694928957124943385403148684553423600083639264082501543307948020754757862511457975165663062964518048391967923201579198128678133939921598541094526071191636908647373800408764181963973572371204598199506360140350148355837161332111841210277738407966943783783287151290166820554388130316953265420666727050598227606246170018894976034764898991773400674121847179826482915505638394348488787558554952835542468692623684175714319874933021156688087503226674558647066747952342918559783943656331694787981700507860518140893438185242338719621871230908505789347107649410447354889224945964541009783619712006573220159358678575851708445847828044453326305000685631521402813935576335933861212307968729650615299380474127415082638249405962245368975515922464680347909500977943494937151872151140421269702278649352631273560136195465880372155918401192802122465475560098736209259556259949403125825433119335390314494662988473089596739037166885428970105641777381225161969357257570117033125197386828258613192035110564292423289028317741722300302570459048129330089595767849750649325973360848265960099900980875611411681493271620112667037204092956462459457275909488117214292437937454510110247311939438461265651566796359984133702893910441964845244745826829370491443530219117412287911720270384076613775958277524469771734712104310858427203650274001687896970810550076338217127234045487271735914248306251882622147137457167387717512955430722642982331268497462537799142417512581868125739273756701903020752799725229316755763541147924995810707131664915108447208135444483336414108658411797331815176626962061186329425179141823707759910188517644367618089384927896559451857404637260932164172659371347738262623551769596238882071580496973481299910740115183684277531999269144136225607549515468260866827367555571216092091321629197237167557772238072923460863255303740092013492088447012341915178654749983300525372123331652468877084187038061556303274153659352874746384356803802829064847458096971538208262078508501862616053381754184627350941022717369068980876433497475534139539232459407035662596119066672825639791585863847157913835176497133499367583762538667210545401228874134401407885648235687530613215789303593845560517661877290270731216543113988551399077156161879976954517594751332474755376332117165323419298121166106114363681146024074013170158654326103626097051764810370250709937565880340475988436110529555795308842560985090751054785875710127744235187822737207326063822454803162634984255283417429256957571685560791504354608391925224417938581793818372432927522234422205101724534687214727156940454147662159037071465533676930239274018605108300757429174137975213578294599246311290689615378005161130232231950451653520459531217599208817325637903617168329427898919579619652481196264501492965277054207834215564864307229654097065542918424541039706852315212957952059850839783571207459729512041120569243719210754488521819482513079322075340756845164475992902442256623983327511020142153544355396892820912309714301391779632051488908196791890524828525156336059065635397448790646359795687210683156806078388530607699018523945402301157723755021290885703355433826954308714720394150176147164455061223655914585134359220131770350676461958148013497155867742053823762620564025156883752822941735393838405174700429396382469972029222019099870155945029281437258105302496474253595764697383557906131814555240960935045230569321409684643794006894439109921816321342162228957032756262466638707947392318538347461820419593933483344127874445341508364608401931886877727524634010380147897731782250364780693228154650066659013147146539822285845898322659329548493028097458733173555660290304151218636920749255890871753007206561935478162309405014822911061596930489693232637973170332127839116950523091716865319525401060491216156785905883254235864680086241324900908721559703497065998870353395911425776741433641267180684963148542042684100225138331325300284266562144020560010930001010764770598544709653722200540465555937015561871797055188095490678967862672205554015428457829245434125078253866429620325087557723292152419911524181764676995428101752155605918536655061427701022525577821048340501184466181374837669183753559178587940241811259955493951279919703743769920352961090782382416220976441461250058693698757185478730391358502548150756586589236901529515250643465496786133374461351229766485428768961435791733033498424774423843672892865855312811703508300516981241950653559598079874238508200458072273084046645634887571357264470345829585364682757399291245315845971712034194631999567205231051149603275936919832114393108647496061821658501616682031255559136754354117910572750168005068051792905104693478575555400256759640706110309039626618426849271130570805096834934610480117803365721596406832298420674020618120491175474919780589120081983690062099265681002329328843458700553512756768414989330251449318390931247799687418545539961267864795284466847030391162709919117762860755265411155211721086268820390674159685181423837247534637330850503156538904453861177331038873145275011644549012775014695244074452481606898042753488899527834837147610073385000421471241172552622119592292351945257049469709050000878329886225535936050297627298879687082683937659691736063817195913739211502425512421511307896481407291000211136224545306857864367764736898230211538694393433833486544289464895914778235952705909299912397565254670382752015578225021553490838326819612137536272094762863523848136031196155446155095960046183396890597871298486037819959504643205324095571286142830716857078027246540451198192238446495448108787059127597211374611923318833475838019266183074756654592333459439104768772249597926307018228410807677695565327203937387392942273078646099201116213919364152776842629042204243453598432625761758249086446056434251782885470737843215882449851055057125419216355162317322959596580937318971548051131597663267841901298700857033175027882701064179128485462496029059510986466007245574770127033658333738156603025789825517427732558792494210080257763587220562384390365119597611296614502036508502774559883827621776089816996448506710423821027064129171989871226048248734943867672913581660364647398489466574716302820971113326318843750301416208802640795300520831102593964558140011336984599244413814786566506325995732258216164178565244788677031671318849122470089195378052810785319040594875550339309321517441108617535972235733203263128717009083456918608873116159585130694769537534082776589951402737059050183826856128822100641513289811068839608276380949421585346148694981291468227810791582722547666815963206804665397505516409852872321083062316042537410497795669515012036179898192548342775168489555589354696578978435966284697079943785738243265588020130030240026173347003450579103447854137676229829852382505670727756175797186240761848666867530738597867687791357900363763734375013888462874525727132045398253883208758847277056012018506452567208118827269082317899341014951920811727979372178913702494099626019965450918584264713945069837959554397451200901086140707959973495132875813694391372415610828639619896505686079656208740654528519615858174544599163404557739930288818877323272743227327478746232358438195198708702651519638755668888202926651918438984872703104069379912045960049236205904868905219467001451210918295633594673990581532262383561690620082388847041843035942367693222780411386505718493971517942648426164508091007263888546454918702888911575473733371824848672969538283303149881780086221876667785183358038331517716856838268585217512998340939725448241178399445421643719430575222051813996059051728009667689817937175462817223782353864377421992045651781224576554321972996309605805822438612867953368499166267180744536637635725074855406627398895096599536951788493268513753911226486228265862469262313098265246936233468345465463567033342114306998265114931616653814243649901671061765118062986090364582640211314327575808292313130011657418072771763523551727660533345924813640900124428394086092731930596130904356095395548085337586727997132633500560821862365250594789097683366086119455872018333532562625448327864219125845979256781354574458446906267601416888251379545666958836096771542515318368806754186026845036971003132535330486924992675824554516227065647531376208675340788857130556312363903075159539924108734440539623135256698237470155963937688374042501669830261123144507856813229411251928629749375200010678693715949843867508174225834303296689189894847534872098912245356177052380195987925296715471069620388516024948082968532416819406862856566059350288875252644966430856712778658273895431170506989903372081227799739989791805196982756654754727319977002011813540666918908095753969091153894362586709665108088872503323947964460907214400564282575263762567551362076840183038406584439294532040941502098664113830104554690641603695471008949004418448884976150808565191746207512253861622010203184181499660096940713174286447976969605496127236368619351129468365760086440726615442747829325766494846636507471264749663182741470514513251157963454665904966794689657388040601548477434039396753303330387651204160484711778554065211767191314134150912647142537499013115676885539444247708996837065751845799138522271681286596887484095779532388623546850681685402407155463033832937760931756214422097744392727172391590183768691834413858717314381427418438218965061181923468396235415959877902621694673213225658408469472894916936586774848802967000685307861961120561865070865091925719695194613289988215399348294948386356260169581136702739707815793150889468425423124203513979159886247641991177232036662544419176250313314685812573393807792929773364785723182858497367715667664371396194953333960844114615509605541867239228480185748119796903066912627228193337797533075192620607069825304252198797415551708351429358374821971592375787782369942558903302576077375032470797997634123639048672635286544646503750789157826372016667366605497881238152702696687089472012065867358317912082653308202844257272513611721713341681090000218494634502673801855633663313501576073121690937017856549921177650776239372727718969859279592472971480563147161919268077434473483518538560901735580390209745751042830588325895193644289212071666800960528423041136669401589629085099852865758534042978605213637509010259819504135172681256758990137299747323230343584170884971795803152751471996546978797370414843358443093172518923767545548812102030776010702721381711626044545386698720874290683877842106903387074733965949714384511296827083061980691733896038974085307003837539227337055890911268156013072461584224335850429608435137413670575488221713360083464025370551369102367583149687892913506967760067629686670794240558160981930819995635806994534369990079616374292649419668629089101866889209018634712549161919091367194707326772497031476041660373954690176319462846841218698912551186608097931084691042416333634116187325496828246609872693782486197644348416371999907091024739506223308311103883826972868489174556116970557340004788152395211293273170166586434741972715692483108824277881807132659021008434455351045363709092108800708637769169543071143462417201767377838550370939883948281547084737911649998354578322466912646903610415350952066052440331471159235289526993456174510643701391134855680437549023035046868115240199413824200558060423642936510712114728236171139505741989178032595144676797327540885511855297531117829781717636456408597312937975081392203795021505410438244986472240075293558760205556703911121808264698741250946837760734798791885197221757353975423701811701765245494384270222329428284054405686470324098281509141553820567591093213395203752210764477385366732847430800614554651881693980337167119211564355596255772563531689129780607158144966256504006123830637430113477465748694947300186414680746133706387549412185105786773930857867089023432959883377731233438946866333094177916791043681007813033260912804175056933391059871744483598758817056036376930187061732655268104875671966521147198030795155406973467486096628138864908551195144393120077875141268870534292007401270830573668433755591169294107194856123996248998017046410129347929985386572471104398090826080976507825077952536385612954997963288201032191275441369966183217649212494076292215907937787885869996434517270699839808804019989242643401056809684936337565979957545394310770015582317962412842573712763123047693405776442782033286427556626470318129880659214973961214789024138093059311117851700799144512167002022365552600623310999662384419112105724790223615597878113249149142849820764785511432388980694818645616893193998039670966031225785559892587955318612762967432214665673758934302535167415644143135350927061340416732010574289561948262274360317726672007335293512803943771849150347336064615455716890312670701841049531504106456196355094183408715327419958370759188738024735705903027136133725476261165832179854527138901377101956806072801896940409425536072560680953539110882355467097418318058887724942563085668583549971711878556654378260300931442667223303536130643116813453941005710228983284586264113119939239135936063894281514915140926414786199805567430689499369102237444231983648836187002000152346792940832296278428441949968913982389313682336831799995850119386297030159674966956436473686208334454221612640219914901435191097959174742503492965937546215136017684098826178597404026988508573555525231383902353528231751047979849859747019118520959779899690978385962768947816887622975304997320989661308627049499873171164715613050471763638797608782263505997286431432771403951237971682249708339093504126944889407870583793543835949780904662312529319702021093101010050679266137329498552311141575561616150348332705765694535699596091407153714089428302540802409809297193022439173075066029155806962645710827117900533496112912157732792464119104375197423055274772052845157873177306746723571162809793348948482923595847318896840129590892880734122069038643717197035267316014790499642730341676185879228389092227515026990269998102872186241448023168884426581018741864639164188941094093346557633203611098136910037814317222552425668540651630070376758223877172981434024093340532992699591510232608862989887598145872019164513793017727036441203299113143280748330535527969836019720184172502545338741937396995589693649322717042684799285401868449631641344564008632647716225326335021771528401717475120063185837555753097424116428554214009982744265851176364104060510804767117685044457214821672684781365035468301034130415875286261573579496416849725677636836705611550690732906612091720334358106612227429208172934186925161116199480467684249564255263461252871349308555322555684002527725338453480427493041109465254844098444513954774332338671219006503736455760956378299127531883260835306036024651832357876538413316759768665513818184621753218245313189315206338680954130657489424082501372829849916690703676900634882258635526532593616329146756281882876833678452235379563781078385500989115338379935536336396170082638962356293938715636053125421313332648737142720789525624834672341478286230830870902264157521713797654824786810925945992492406648324374258251704145677044033290560939329968876512969034319969716701081342293186478734765676275987567755520859111858832505428937277449894525475913879028325879104796651170008961528913111153751527641998610631938960002567035139764047988507399943362617428144174236697930597145107004872735051329658865975815918156740417647968688347370931655170052050444404390461508991663977566791778925712781257371465501880016135906978309848873367411985808594357073017239599764113723001550258306961241174062271758995422574293218994440028833905364265765072296991444059115700071794154808561563398675706699785932659408472242761201332660899989890827992219418667287490798962524904631829821729179053194641506435993662564287122483887319758764697988406807575967069686972510611894077410773452701163323684167900033599272799251967043452430281230730072877315538760442981385259302795565451326659355270546677610970426836264230418000144824003558342230456054529383666621161385487267034296627013892012807834692208523873087037367062256081637956812740412731625983214083040074493294992066199193642750673786451471352015578909606551583473278807575600995603142338442261860548538757992403819732158771028622688258240732217736702048458582288418496021223561085695426966750621814585023263417251679003096651455961165609901064696635227679568601938614973105248111768238406658337994654386037673187482406474744521357487437589513077880822397673142088432608930828838605760594701260476954057138903492262734772388119409181105151329440072853631134106003937509768660358034453231523076039352126458264782519456930809383489680105406745751967562295701725546947380327349026716785079690005585391430200751129216515110185979772482489893489543704143047762613707638566485595153902462944687243037686843658976335127804597130663221382664662983213950184342495124421429723194905918982294656184737153397339726327836676077974713768688353368867446629074295552799017960725640343089189478977226959396215408222911965803495399792775393499473228856120582489971830393145842500082025774131430094622122613941185832677810934736572122518087445506185906693402781800791931875552459489516773444004072616843481599722578103705261005951456320894721148499542145418638439951119057400357446099496688424879851489253823333251201895807645516071648930728990127624451941841620824657283261426628794608554119725955420291954503633477484270637874623074546601238531023094957057399181907013837271708659911096055773775091439452649457024886618318704573283812374102981524011800450629690700086555444839680110037240521319902820935212486094839867139307027565201564624498496532700372672041612058648879601191782278601279501010009411895124246775538379229993331183777444202426822519645183614051400118312099152885941632948244129029564865953405787768517027582350837965098423080084606350797577732709144706110938003096975119616364837450138388814204317162599231064779095384903304313464716847106679364534156464636107944828680681828594334135806886557017436696867616971763816016651096519047435127649873145749754335238410542920693810324527600358710953072552787056039494206345757991050837802851470490602223048751842287162316575678946551498186107537623978486087286000904468526028547534787441508522815529142912353081822318768147141214916363425645491288645010707613091925659316077410484534537469192658652810608657104424640215066941820435819825084204714685784568201374112766323589858843575764263147049352343655651637388304649840750294843757475809544864173955659020608464158562587973576704796320332103278135291351136659482907981833886944328839927816203647932125863729815186325050498203583913168840088785857704499633895684634410867263236975447027640039823183379407142816004209082491063276310734802250421619651763802544639489147296140336572541178853905447693171683783530996361212502249320564655231616445582531248056057708595310565591466406851419316486289469807723368087891122886180102207859573973567146310959507900225169525663534616924962915964662243366657400009599883955754976579336319421872597665929799859155036338215673579468670401084998203433351951644844111006600946994710494470969193459094914060508349921930162742492902050232518887321276259128170817444097368159247351386885174762297452824438256371962453060447246940642481375143671344786456889743468218875757427788996159131807996154608389569135393397892165003125043664122449002709428987878135574240448432341196234277174123910066794402303696390591147434857582201486494726652620513494034129039578385044500286818557124454291856482188896624166909864623787019006272957238253391496985653389204579727156124076468423187429538658325627630837406906704846936942392021506736875905847056180432471162105500251108085249284026472785666499139453410365944806195954694625353701501388731663852405081459056396657797223718118156575007976038077722410534719433777594192680485885398360526857274191256581287701303182715226975287272660208403685284958780074254039906640722123866011196214450808424726628865459403914178833041665735502032477881523677145872085180045344579253817630514609416375453637700854391659865173737077793868262609996943095698391413275742923930723246769989482097943077577170763564704247610195227123195005897213456230352644326117885801071699546727448514125707620713752571067472536391573828964871925626765390813236403106905541663593209868911344351578910440885948751659429448085465353285460260865610988795765446796875279203915486314661813852067677919855012699804563491213291640558786708425237504953194516993968875289017203725145449556808411854042766916227467260639707874267752915490658796461563604223417437852475659562079037123523076696682557339614059427077628147674753877290623246830696871338020022279729728852453639634837805676586173988552718207550184089564620669359601473649814170986820360916692678901260587021634391867403413650290721949861257899647508397056254312523458853384746650777340630291416762398892600251785528599950632375276850513095458981321770545340921341845460031135760060116890406802733854986095504291273595356543826374484775620066744171155118224224135723981803933089483123563307093542927599805197697679343961532616945674069652482728056335030737983967064720886475319615948941709950076507739285671792974531115624509283193606628052767578280265032114817938424717231494700570589117972040719664445807623305004447283982114694014532879055740684450432752850224165083497381916609560626749663404433298368319532211461358643460834568371375530381277050432391612702337402793803161433741734961536059879390536707846753335553681482835145757813391490979261993496473239826973309184932761436060953918561865357837297709873237362322026917195595952410108932462729151520775239177595346627287263068250115787571321455606346854156406782492516192875719330683824504591355590713768488242895416004771210266422264683364985169220356426399780097450218790308909448317651069090332807224494746304639738411177172346426373502333617079873314246082563159262955422075221233800728119653057947158571480454773830213875186753277154037750689237837852008023970209433205664739696528376637545552406620909347622519651190355186724849606975433580028079635736375932246376719898145931028171563602196259266159831045349019731468552342839903115548883248489623338489967501460641277949068969490412477510118217889052100977424405303959827083340898923049132976462368250726964991302812108697995086575182181118750138553879516871452736945788442278269745328618957400650216061713275737819784771495308043942784032544435696040023486179800125685259734125625770871678055543695198877046688044450066082604145048797697318371992464826398468170072878451269924300305913621512051483832415783074953671157639415932246557080629886514345378485791154482240254855429878227804191343067463264741189010203076521346779551928266727230029522265336880023923290915369371358658102677330854341886431829752989002419368538657095774038984009175464426998254350957641125768010149075806396651781270613854691479212500367161062125766620791498185812803178182182473633255815801568236477082134748182659219756483414216941055385175959280707833856482195616233384789179007052587134600805028669593248418694239256669588760642639036736022254292970867409598269406389170074675847319993461182662194035374564940202302423201067221027323322488128939969577988529117229089644968156897758872064261098182690791834025344657936234797266037990144395157651268096693763244941127861069066609983318132215611088752064092353917343599257039933923190593634029847902729989432379382573567418782207999005145793379483191967306846972830795937060868101186664514397741758989132704446405412661016716113336719955815106860588652237942090972725299025934475920410892635786760448767438867088230460525812288146362950265986931875751953847846743560973338064277899727890501741350410535926044676267687636498982632027523767726885893642953003414791449731995448884310047508913225750899375621661843202608224830683227668537042296103956666006986472464469522588759626190938667866823346157110707257319577689251195810624406766466427722872721307410607686214623275528878762547187975853634749101699439081057594234410726131347970573585652284531024639023542894116369276050341618883407109955077953336746505233245379945245229544764694645052945387907851163509309278402483486151878787625037462446309212395612410231160527585706127646026426742758325441120684407858384394314173266347779057797464806943518098262681827430405795263206780157705909884075143312691660018678507179583894718851425686405468178157049759339169018471181869322193111386803153999308303723343149118060887883071384112705492685288746427784316095115084265932238957033211211495019586659237132616345800840262791648665968501823872900353382289477804853294001249899490603426041469792766888576328956658443787894161967754833755118169377103829377032817270046909018941275751924312692383457756583996904985723335100216357082213926095235165236566524320391932621604914038296216426044490443175404191987741185835567226527448580753176230258035218024872312893801333663302087022305698198375650538123959535806474315168940305818174539504343762802007435699212761030966492453101553934800692004396795048478533724390107176767976863792837357869633510497047242176825139428877607228883501863063996039778812759218738721506838668847517296059682346784573980149520210109130443937673141350480289105672061913382419136745738330585367691059371586359368582912890131582023507677001279615891452488207373464379439884839643114029805152392089827806048083120556832460620608777257807535931651667816876066016836623651069616580583597820152535003197650539890120731666913127104447051487552930882519212934394888647772336215276798761707601112997650884690097798266601783813168749791668529628711790142532291585117373115133909630576062965111146647930404431915400566780490618865338829734783339522390242843001949538371315176868664964268300528268677289332485927275985244323959529748644140703444687095350805073271862459024130093990840006685943537650855904493669131083986129770668384310900815765605909923106850550132889757056433097232773734201993607982045195218003175247802549205729841490587248963766125452380301381010021795903136955406116196722981552824662202568863523592847894071504740086778092117783571965882615818494929492907291384906388599986708545534621300567898000741682484317540014941420282636297636399954319337326911263107548500781011094587393611973892031395177981171650100144923675201255716582878926839299394644994616263786957936992195367093298356292199659978078925266968756445472584666508075569495119985042838359782754838037902118681656663408817489678649307576836055222271277877255433497395966355321701201634436485662821230080287943285839911915881513230183304166736187376207003544501126181657105528006091481902363448407402271718730524961478862949845807061206196945826317181468946466595182200446605343444013861368296705074814924626349108125358345372569387561580827613053324256217384328833946961884191143774022357563831538770583740439363217351658297157148907215835708843021611875260246057741080096423283489643579197639062151512595730328389273942853194257966733588557213236149147291680448801633459182167459423222232175162195067159985744261784643174913772242795955571942666311614202262906077949920988189104269277995126284811026090155409573459363695412685158560181077953961787285946875723042731569160360730096328317929467487792446891480963667781393597051802966895517475027803845013019643207389675409359109846123761161678869698039546429733617622022588636905673669919719749160861616846170199409464423699564632589686372714762280949587626778455778509528999712455882610874945923568022403130382741884455470928906818845517477331620541720993789777019447908606328292460808393230490811720977053440100188253013808786470311975339870068035504232778697376904256459786384608037489768783850969418098389716700646232847389784121584446664074809607122858950259885255899242249465914136908604502314966663430359710459608140913800440030559123696400328321396837023269817897468259346439225877742228076100450124391931183414684219564706727750465330855086770853247054777708691611874187520156411452673622647039657233542806128390172195969311748489967423170374702547790529665495038988305450149860252279851069390934154627205346149965769958937965438158004672421385452884506437959087676823613983837678204613687062431174231041171190666641078636468834027019022526988405389797487696059297337357916019779908886113661589345890136088963547730045115718695116695504760321849174200049878714296209477246412249872179653301251741391832231484675694809177021557698533582295527276247389550106196183662479819926641895459615675770559039813951156398310587397765510733359310412555183393528964894263128231073000885101632121332338850901883729903753895802973780022914082051546991925681977942036623171861040496310183778760687314927139772781356109166880810532891517456864382727682438244131560746814669614243614286413994948360411308366799134877954954897133504502067413702044028964221196925103860629724661841525605563888578457476565712947138235968710493825333454243364050557651099537686795390068114784357839002952489051796506999952234795989565108642685766150367520454438972106694555554535232589976402494691692098615033396959137538384446038074385945459354594907218742496039089355102408843503220814538026680058732060189191343332383962252176191510780715135689623018423674849109004945474784918593816623014503519664933614762711703156607395010050936774062551317014298120481599543805497515588174591338584056073489022723761012814167404114586254605990157314371230081337990615129094879862451541836482621161412850371961586528064507116468527488116175021004497023671887332717873489379472459327866934047091596580505484571450050447053824914157331527130516274875103267589500404301151677481706490025096852132009296187628205685844474638389266227615251552599120910727506909081703660254697777067319941711709631537270194554305302033750848707486797109664485221677775823545042544722662892959934402925230544761287887813282390651038234299525375850892446555628127401920384220902753995063896476972488327077046189204687155943558046006153738564911294647172531952714303954809628670680635339970676804595690783869025230008135697678529347565632532304568529923247964854742822151997265313896902527741352675687270441318505580498732390622230238160465833883909705083709872551489307915150634434980378370327490198734626435402026577686182448398534838720180529677831752554106396236744960440862574556713500651147492041875725805056290561668253218775465194989647475902523931436122554018383937511926409376907133040823799933060663475932754355292078571861245247024109972856971165407287445599641948055172824624681569772840697316745716311315612983775739037221056494708639088313713760342884774786444872728804850234220214469691889942122981132412985938135199853131429736603838957371410252569044919950509857612233357431911427102757360406292036358988400031730547515809852392506430841690313330329258680867026094206415901772877822815736360527788181962315541857894922005045497293336088817942182970237616075128259253960333053366304632259718588427037565532237002851303234154849001934641745353483893033430789163500343848309007237374687665319153023453974000849046121079220359700433147378256726702152116013865455698285835162886777600345282965328649907690150565627556779689471441928063642059147651741708262985546717677720741508198036081937104599166129142494779902606965295930195749697452440144038209362326958625616479475467508286296074176870532343520522916301658258096306623424912842435119275148637192141056241801841970753564511161612747354665272415213130765448277913666866413397800056346486956645629724052922625038774912713936725276448762172447986733314245537243653432873423307789957566387760414285457806957333623334754006080682774855440176017176582110941886441199380581843415603260171124000582795203384991214659613951743708329404244977777579605982838352392107727764070377273927491061283317501839420858741163903732616529088553564989483969526981677503289162640555028588438072893350844990346878423090266284554548260557537772039635492871470094847482710594939140306018509676983480974564234217832018462162330716589376005926910295009662029726158152837519123276269027297635103656142625707479933161284672198866909967005231724252749399418887523261096727851679351850834746756254111292145715035484526909155467645047460011735506795784338362242437806122267664762859548226040190327191307768347802569760971420010408934036387639637170667727790992489874122991119864567980521570135771074035578046064367758430584571395494613926986168408211308283323347671040522083926560995129138076848720045231287805041425946192685058415233410106666902695981217201908513614226197670679507249598387907175085254895169912644169005573134655227476935195892977453564910828302548994924888689544313516108440544967411081147350200675188689027639148144823109667888268491429127398772250033924345232558066479035159387910339484514499159775086467145153559532492999020379031915644366494716630508484015242981639369744553867851179185025986472142869154525257465830137520826392426816284073263417312790882350405504854262324340421689277528037334948514338590542961875685637784707024275078484888904799621281409083101594141620830709172672609320030929435446577281476011585961413649464802012375756842027562190734227763580091556870173581193442528886668596147693057051643398131014675985097431893770989258385381337362686468708956228506537966402881104884031265783845925508553813912853520656471073875629490891463167766704966001759472252879060302170783657812925347439522466065709806972915373877870196903067442713357164502160488569514989742994291890866023272495502281118982998947117884782806869480348573127826739004974936896572708098569658594391598011517394533738127685145400254166634440552240087904165346388004056945113172759100916148812974291353655629085359565221085098297660800348248134404517044579406325831113235452736121181685132201173295095948268023487136188697588409816133741510552010212704710292398817670358650211038887545103712647490541665210856299725882856766072186468159241879157990593023035280877039528129084518855303644760019996411711102425336821818352250561333115714211646688101261284703049168066926637543241698349606375972252631499926738899092936040602826321129768226745601578953572369482161851930735534063417460877049728233751629616905175658531906836781693581072203673817805071200231089022258587691788351558755237323353988204239965786216889771463547016377351411985821082521694941411062771114525480521991812478683417527595832681696380379691088116351475854523191077392463726735563116047514966297240856376247893301610223097331009973650083757373786995790987084347896592579051692488385888926108180389407068961573482457401224288846861001547454163167899556923486514339565375123699180519085672362295455515420825302537424755722078396429129493828978151547160630871550043642866202375378803418234824286259733641075331392879939501765403162899699104081431341866538276388146825058106678262563829989694790979113042949024492441439258570790251993948212558905048107829853243804589722723977384025008944566392542805841312967193421758560325348060068818447323913870655306539929992440453168369625972981523034965490244016480293444836807303655740771057097115916565384028339172876212723879076689211752581390076321669471318251567375146248626432897070417853126455738885468619434976654396575923572690487329068157009329417584977524590986180739719280828370693246139352500756402010058804181248581804957584230378371986538979652730498030272612403791047036933564449862032965209666833524090946287577609248039839994690929730527556571056279581624197611562847634871759218591486441375544283273957980017769987961115344973574683491191573760506513803515663384564076492649758631727215784903119261038154385874121116953596419212719305225825025217021775899673407820693901710919769422451864227980318869178020927997032804165961182157739640318618170665193203067727023796231960413946600155859162168933476002005978782909621537492088365963242194470502221541116190310557646189200531167771621247789523946709998358862192912660120351360206069497702899743171725186070128604207661850197912109627950877443137876403302334457340216677193788370931162887315477799450713146866156866734419197846704993424514260072600727862183567084268789520813124154857672544292036513071921248702969372182929340651853184550188547416526981358767896916558243639621969995351489971102560799622345972465259729106733283065770347174948509812653395594586777351331360018178975126848031118853000306538552720723633016457924508397529868679844842693941726006155531667501277452087934184087352852797594140597493765240995421513757374482581671813311125264227184263732472369498718801280890197245857829341180647971482236682733733355154394892098810529308664491909223504149203673119658762908321016007523992450853487650176419844793029767365971640400773648107507273320524016983139023510118708007416166449449125103019850433802180414591285658243359571778430636873839199335350404769154148729142474771521812500516005997502292766417563565499375275565980831341895456073584919684151346053115600224315948488043781186808246747986564343984946886553361691835578665687880882061516175070962324991028698241661582581669406820436833316430713690076835154027585657278670321350345665851200863282733020404055418359543687060126559228117624864170165204872906999024345192203664976271455354880627128709562910253468139416133487364489308082630883254023591998837908013386644230843617998594277058258804074650857987871146001808177733626383065473625575508637895160734093979787131384209789571240522764474899083907101478299903016259462710397033128066184693375623620092494087256263881253032205528296088651004448214949648942129633099453768573848363604297447505903356296904745513450460402533791498704968543767656262031653148176069893059904635537340334638601065137565973349896734948923466691834630311770355549844348831084802879067614654023811192689202087597895619043197343613497933911390223112698398690537433118440671310682091142526905255141606657656383847492686432166374754421747571147197691028978537296873765908659623374277691619031483915768454711498212266856658152152692549430949326478718517243116946761633564406941530393749455688021677272061509872607210369957514024284407777302738021367715449666662724083566863426512638858745874132539542740776023669010742590954134622382086107182111966169469693201604128905590532278048312847029429577186116442447953768045958909605310899899861928612721341948018804005197723686144991939668561922385593287997656137585698640013842070588678304719435675182467294618824233263266676450154065828559384754429925263551452889655632668613347737392005900453158114683753420664094185972838009063986053738227937634600504061014751298165031106919331222514895593766304016891211658877013035409875578296569317080854237640418058222823808303606766840681980566932658566612160481868214609966461020051073184107877874519922012573180293790797030500206155246265147869294620888596482386783263524050122977491292176722716609606906415493333261431358574437535408354825076957837081939197724009116521395643199449968156009026217356640559645989108965112285285285329387994411113919889146542642800990950229072629002517397635846525509383136642612260737805962377755065442675040528043094331619345752219911140666794438366353115981350183915527953517236589851694315524751876585857234670367915956426906583608844748270456426459364686880947121892679471376748540230529362082737001115515468082753636398628828887240185507787977393679787443319036678651979077739123667124558544382693616853684084684651328111112008385256906385661072230495042297268116729508345031434386192096762888074330141459517146978218008523729982873544298678629789108665635914528337937574189707302505074194296633792037531322163856632126976540424538200032140348831176367951643811707673574313988432863292628508709921103385436459820307402816868699847846890044298305530414820756835674411269868820509034000494150412373094157272364791424633395019330143838401652576946596774366955876958846842464759456878592822982851982245855012817284284085244076521261359671604900280883797120505328673818390552330107778970359471342601246709451457522083706983652048531860472411951070369847157311489525823494615782669374714786987591249240679183721227342537733312717942440982672967407701826851171302728252213274919600134282871884250995404322178515252176731670568039843283301316489517256676170651960646181183104582973090694854022512159385077968754359053502665461030919370534943963437991689151805523911223040774193840930550043107054900948560763130820495234953039359727355046080386689759707280748308029085974609859128306406546457997627306556917638972341109601538760653153768623872556179675429073919163605624489205566949265031606586033135962603942152160650244670342157011245886605120314821588740146337984568856597677118455753220814465896747858861162647033456974874018157831619149045287207593574476735200758612907188779626490744574284886944932631108576429103257118088668475650156701671931578073651621188108316154794201148732834667425964324996094956584998365592534491492135000771106230213406583562590365956333462860934609926638999139492078183757038822322429114852865356949899285762185233257561555149193548618087814964794844260186542145203749622020863993573300292201508437669250320879528477106226467241223577552939617316002063423188923833761661103548384703027456302935991204643290061775697095629025112042007724561558678480341107290602252763735012020333057213298864710831807313213238799927263547778984968893910206253697397383898486018871801671365839055441678801325650366868671865960145457086621560358455985289361007483218942978459259403495184748384436550564688930999933688404104508520312092980734300998049125374257515476552420520617893115207381373876634506106592003388471142572457085972251418784746679087482728856553887678282703867526258003594911835836260285544182823806969593768246772321637634738996030186971269509525497126483392754527053760603293830099026791116842731242028520040841073804992315962109491327014677083333712099904101315254453344407872390150694001402554193224300672460383629352001459197820527127072148371743260750068033706121964483094220273447165674578793936515658240108020646776762823887690561248949522268051858869462481398010500739668742595655148551998232359144580567226830960187477993342286473969097056944679717893266272636012185142811874245195810043662307378939770633721574120647085953352888635271537018046580773077918745059247287706017831036908443373784290530409688687992104007277580558526286827968570675507633184515834562273901910874238003553225441437129000017422825250859187030992651848269861900737463293039823533671959032719587592896836798599479798848064791940116422963958396368179328695158054478079801969328431529580852808328303396892439184732492811540466594996377917326280180125314467123092925346761889080466962264460551501105990951069715545517334553670421705585995708803089057390233952569792624995752262089065018951781018431016311206065011362416108036460706759452369797838660058543166472567273660589091986009969444345622063062669062453241912724693996406068472571466649115226629442875535218081409511086467451143086856847021679074827172884313963742412842691951381285481482427603385280772709809551641808989067685486720113310718016606874376368388505290161989729647783803658865044433109721458817621440738171579219768340052396975833013076189202408831490676171492230353042787742315619741469200352086291303501377564286447415207075526905392877293272264855988828588337320805679121068693302081948138310552519480702596327882026259321309492690227002689504155143257694392152231018954181022240239016356958026803470617735428613975331301443974405346679050243677905374208459864441692686021257381210589853758396316451630457010989308735707059174891626818209593701184607133318141836253252197600506662919948864085346227202724084595950459279798998799143811561940919417293012649311641390324487046930948515481489782829469266387701892694668714522439601963122304860283435262321989367172994032956592648239488865549161766903139301556687860229727182172189891263120020391339866644297318390962917663671445081792552999092754608627994906902133324473210266059609928573592929751284697746503345914848988174347359268508969517259279837447493820164684282618591358565257222296105005357056826066962593800262311096143992588825819185258098600046288062815414126390765045080533661120909454720401599354001373796075516543028459389828511863803436882440263745619804902047025664887141432243721560717499842918907232722427664641215667803703206726640269938956964179346137784090963454779053199830405481741462879576142135107345155003321905833739366748746446210283111185918172827633216342416874749823222062948803717512873141247260770833969312731098451475503498817027132005196117091537170376359832359829370535511182218703332741524974915280330741443943561130670565120137364408364626499080108704682982953212185219743776251358248136588376180444057209600330834659269331249588266951300949508985949821482623619741883678020608740635455832248867576152529467478646790041488854228046383680281893165684748783686483691030947217336182525575047964784258401450144202721821447547499129883860139147756945717773127213755847438091311719557638387438550977191815326377340598248063556443172313082979615979209193809435449024479690573092275148221343782961434421325906100834030602210340939630854099871210786915252284836559176467634657752821951960509630695015458388080337765120202490269297671219375831425477895686875141625287523076131455892148303307224161620055195443513499419117721295867315226926719618956671113276626216174674402030840791626295216067925761848077312992631729841415454940317238145097480608598587460950063771977548225253860312443431040809296660629182008663265577313130032222119777065304086283655246119135137472346995422975677484921177609857090952233573366851366750771343481107030838321620339800493226910131392771151482603515987906951613845592466156798952114489764725903064708991265031921786542852062828055204228408692324613063813439913097897107703370564301432933481267321734171601318824864892449509961047853357836088485471729240152261368889665677048871441288404845445342890931624131670844857532527958250587561622030253964236291444550957448338974632452010015717060640654509033227058065472466798579866059218601177488647455372733538024396596868017111817489372651355009858382557899775249595605056833616800824542801554301118562144181082778539448361563991913042513325749266213000270516165144420416360596365741010498215442359328323935230314789762080152117541851670410879878804100012946001575498257378848468672012658690832543670151040243003625619866620408289650372433237085158425778510201848962774289124756981002052118872814526638108883767319934958151060272232553503942019486141869676476414641614114716127184221550377201516601478593811901592895281160626731431597009833397262501534932649866820902590962322442179896330078945527156709816545736294619658228595316386845993011043641271059987016918175891318246044561975438966815209236994447797768928571906599212386308501308902713606911387574249688522905094113681693905861099246965340383399058618033205669467986989021856747833668130028400986439839232727336939557705609137625240727360928566441227763733047748723336774574794560104728551316246312887973228392119995679411675908585333061651404830271461703700304257687081638039837193554041966515262479873540585442682055098629017755199548102254932586713426848463186218970257315240571102002670857326555294202809581027693511971962875359901157067925852963657325861086174440069035857586170327347186653055534992502215089638271742535348733326921714340502526740996714912535704293881590583349670356365383182853472265933443065311354988224258745856503041518431836615481042148705311160036057215491360859709666196030883086525898928680910776597449494425481828341704415823824244615444753488218964432954551250628658161779390926261460415878125318081899904446148376501651885589654674480139579119013661088117351270297394847413339630182756733640212708775331318823524497986862738818706876576202356519085086913438265006068277335421859159595745254243058529169884168894648613536419126218318146627723406978680066406795964796699549634513012245980940321594780263148582606012704003867759951557554064769119719976108305781051759035527555227551742321757669356111215482998245195471536100320747896834887744306707772303010498921329621647856719428364051547944746938283151163057578767944193781713838447841261474868693943320380823558086628008437106303649465124845772946457275540287244644912512300659508387915576107207938231434361748173735057404132017105737417426878419846092060895004344250045638166682204396917210577990797682725641240823590739791709315232636863239591165905548848116409136036261148233506277986204124439159728047875200366094987967890723200290342535597069966358158375722936534385315092365025996683972856327048442397192933780375653045502400617518175997734081627912050258469641266100430514325958485613521431065829688292088738750908835351685486618461577229694754930940459817142758785144077622680387165926752113962121230388029787371491994595735528671390334913640198760890418372486579693548619175173378167602498624229276557177259967149247208545668298482696881886183806191199451838440582011401520066068064390082362179349189350810619216683837717988579474103089668715316468821741465448441153041315668885034673708435537702608268063648501253336379245606748014546218243395712475835550565098894753537105161513787677096353434946922094750884245911420632444812080215160959941736331298902443167894129880681150632590137702325490862726995862773965754338676481547772181581233596097440240201982322866085113776891089991775931464144935836692108603684032521521443727007923242111802312930603439435789147477393288373067582385474327069541326672128498900467538094439303841335456884603290404315278656539025047096752573825806639639782411609775137966738838121267547243920701552703896603692279626512245076997011803432440467639557815555639447401981097268501747271925335341834533133957642882185969720633784940101286364259595788550615553255840065993533011829517930500314451401276161659839877279063352755807912498736047154540560282269800937542920229832086850673006101446079489932464766745253667097347663166343917715093808616600180912949276050184255160421261003291133995810787752626429782902501633930283037384738615438389916330663589002325207483010124342927922334170252504272902443442057422477483919477831520836686383153239448261698473773278486113586692953621088230128731481978285749641518253749961758666476843406566384643458673183961692614842298186888027307804085476515332411329145649259999111614991996738108582137740021761857612323400652904776956724491887576855922051520323251042672914209511079247872292116895588547546560769988986886383884845607727020741904442189577733145277093894400626775323015889859373050299926101030590868759558890853597436224228798690768561204791128626606981956174714245067848187868571566648446605585209669702264427181621131648533643845290139373167461767385096425367849499878766809998584734991162020871305375091417545575758789015093685988957523948312523274360183709043052933168681420638105094504972619432354302757789309352907807236621652100934531101594010817195187953108876400886128502679940136787332593508789040895909356524465974784583502815526798269014347243789176292092903893382560707111421902731425001268562422204992290425899275173869601252459991420149710979797986567395941654436842008090962648581149357226675056493731974428820756259489647324857301040968017564361067360366504642138076112823190019407883711233127615941295425255200481212886492245774644292703544576839523919625810356706840400495651396552965700998314249649050551211247815222500149101064645679531285326436734303779624110783022868514417615005006732136288689902346942415080857358926934831752825893797244449262509207956480389069171076433562694497644735732464534352425872056683596253706286501486051121208212311484931089139448452612976786247296386253426877613317107774469830230681499923713478291311885306794723996145348763430735924251344831652289403171083273497092085320720886308427447612669796266917139298575825216770833214903203669250777142486826792495731672960252986154558377543891613807199921928966054558797074984589077878520105706427990309743843358001500913969229638204533641374885747802967695096996042027603623662723121607895918298224630753412253437156646213696504909018912460348266197500040437545815356961835333416936548439833368351077049641870274802193027561286969839827843369631941413115020274814499054299273149635572740976330634934240490593904418420563543788674460455237627287876025262709680832388006147014776244379296397827416094758957748082823493498897779809152517669861764473579105636846605890566992414181677616592827595371475295257198451290970128047863506226116984910488939771186089779745884611783636202223310849819232764093935974798637427162070508174179897501200576771825851890296902946296500946655627730244496001173867725075882713063974875181448078951356248430745877704375312642720371744654308864176851481683512361780001630350151221696424100577881951221355242189845151907418551236656499986117979697574456786006840234049088096561701785090873743045854028324787944272017073502250852178799748838478720859721035229368499836240195263564130809256677690407970759946049062104743346891710921910786954866488068799075528346413656303909087621818614467601207765693729460662369657567964367759833767524774457089906739300728441090949627853104662308836035175383551202321294504076029861636821783514710800716280293014189960969358227949156335771455135480847670606797810826119607803778755943313488115877835465252549763255555557951882841628558677275048153984252738214796780470191316659500945853694496390664421700286997888173013611698224130108284417252414779825087533920714492127451510837384771461312423028216450329447888781677369843777438514736672124080385070650760159419024501204832172603638806840429672664395930903372303277511572275021341351849151855099492839376801347031858314699892228279012767506825311225526782800286133702950270853106077504201956255360707215685073100220644685675019643657910402796446173533511180646250963686010114435983305680175682725274130887705110623125590684630208692259149038950158032079606434063020446321717431606188355869381820048909443830447520988903854015405725228281942417778513634176810363797693052113831771961943627413664049717437125837232609040247227430636875167382373923351825036555639804157263871639374385898551371043506957309733264933952317933591386027686884923016861950049677885921076245668677782930143013830058494717738948909112142196233331646328006503486034440465457806236902520469961042839266238769214917071249236554013142132365640807446969749632782752587737835919287648613220035129210545914266959317484494267512477057913703878735938430326712036184017674592549928208802139370927078785069263229457611458768601918575233078924795776392206331764052994756033906388096411905331214450516304436404725181646389479824648512600926248462140311832164615265964177018833950310674658114284840233662904675199307880626727159191007860595717866231853054422943252390003949591670520549902844692274467938423422691471085491679045875194578240420414311536001010929015929649589746375746747083440316456856594217884324833458270093333208397282764410657873808486267121183986577782906431911795662620960176560337698211804273273880339217036422123636685372595861894270338019817809898536213623066962957065333321678775581427087677280631182733138746930284059414675110234004368370236721390762506285367861096540436538218817367929863408694996935945582687545889635840290537356148608280188722453921474230630529307730809559137679255977997581661737234890394021847490998067392420215445516947863084358396304139348177761188410299764113226885808147003266297903334857357292012738920014585105419739691743777227845937921339901388718546922715068978178747665829563104355636702329588795103146566585757747165025811481302419682268815772075929124962088573748333192651769048771642516904906439109632211623461012705556075388805738824702445664947896482152323868382183173378193105585663136693833536663568771863300517367987789107961200690333342095635004251694834748650691567342481584238851910924202044364768130259429288791678715105830553044713589571405998598878863747421206398290001820270298380901293751011306862265542578581654526374661175828962054984246175455190238697667049496998397962827626949639474634600726011348722001179683877115415311493518808318612750873205683121445701515917130367252994292982415404722668202348218239969022843697269284673684331057524019325614679191635823357858446382525847354387276424910850415524453588849926475372304737472006926178397284706493331227002076643730678871193746103230036380095813927849578112343417454857479044356001125866171821630772189987398814661024028332196358164403133058177537168268495537849180751613468671372622618826158620175748747594417037352597972029422895570730176717140096828570444982383999127380284196262956979437253448315978862365443905102649280179088556630213939585859207313386693455578412905922026625065030343524532903404491981785638773394857423432558365952630366796664189158042356414701305751037629667785325699630423134869384942749725578016450069625531793770345587179314642203737236310675518033244100291669939839900148955787914734920679624354688552785656393405145878353559910231747257761920102177324741640816554487234265443632157398696456546447461162808220526730446559423602641707004828263352847404014501243530332113751051090741441006205693910573114905491582049402047451952145407805779472342345218572513514456604365198218383207425533589267422829032280108447077440656006050994686019762668951892471765599696626636476074636782219176413068425557710581102951807028379327629895370165395076900433242238325145353779015662154195749780071285728608754078617831185777843282889120730799515651106418693226828492892465815676875732948440536403617047555927486205160172158546427524821602850254541226178941966892333784417164547124295992674193964808228121658526489191058298579954128183959683494816430939529413099851586598748257232816509039199829991671565490215062503237250353898143902466872610383451388086117339235897426018934969159657311983338868883297108389336211651667913628132271662862829845313251738054369308314525904617433711308736050282822893951555925083468205753094394516674693385601477912789983993169757316616546999405372890437266678783017735904473444296986660184046378153132306324451777382823924788771771162542916163661212734243217904397113150802724253931976817850508723226510467339613978875025392761699622840876687810141294011362418313436037784721265058709696994587706723108502130569265876762734505896254709866153930923240539509267408949544179633288710019764764460682588416409141407456165425923389482833254869107808288085096475257595498646237785378030490986220265204526007926751959472428680636285192104509778611613333930392432359702726620846148964702306054198727010860149599791817461417329667221495097258152070092211548204696872888105238487911098669785590706897956403376018315885510595877934883324887546453779974838088726109225359416505731086223322891309702662640084456335393897881510555371995745265938215310352482483957817599557750824176132048173307020432790866692326401852310819095413140154736603858066709746523134180653646568722811826676724137051290967598489237026079781184360658520877314194055271465543390688261154931669430079177598070971711441009051675318146767360565459468294995767586708859929757060509563766961200141193100182930121631621551763351683930942836209511827914629899711633681692920553157639950986010073402422107775558071837644893839517122520469239591684678097463825933906187076980415133374005114101082082777221272877443800784381680012952880085038627988174444781711591144115534525173528291870361802227269342444259157795872320093228723568492818442945434338987175730181987950816642215545596934841974464953853278844008409082339731929938772905698369209911039817702634762457385605422194465648821719815672099874175067667228720112714224752457693926483383792737852921063410433333790910059276656221161500164847837641466341159014489221531408291916827458027471720918689640883161030117449728710797397134252691570153195881468284861040609036727743429211755262536882363625348558600049984189309531958227882129417625012015376871040810335470062099318351675510258117196912703385146466345933881891276744564391751552034602399184960217347996641532364675281366927491371922297131011266103335075232156796386814041119480905296707290732855369228585077429802462520923491349008365490801639882269805019970342564108682064569434814929059655363847230692337772863426290384946896186535302253074619109288610171951321661283959483294002938785105000743338494963969176979074076747452236914482402398550585973133156788396047608270798339658525984355486242591204539879764315949561134730899525740478235806885139085018741429616391229953572745978956755185982682141661274858470657211013923811753460881875325597951436600082327512755223424993243596014338951513764568953104192309421534381390006335515018930405868406943930989146905371301469514954975391033371381054276784081242546759032587257258670871350568131115281282087153859998205514808367041652955325549320308468989214424498974494104077920158862505754769385242743480172592717034942413918666442584751881690798460942072677759141746099750296909455003677600201544189652105918787589899759846237716821496977226935538168258549070849473916634840523612155723368402553860854937467259426688117301607376042868764146298628546141924529356056272032664655670831220340622552298518693198228780269942580756014315435341966785420745633448008072340862394233506598650135903605954595457280064047329473920844840761874903068941488785022149679119441610155543544514351180348842737739294164093501867982122059188554453506214734298449875480759465152286412676468377279497401837928918885178934673666511618598353239616203178754737669590296144430398481454695301472224592333252721700506928128905516708738777380080571249381535254452449090923554788106642585266626219992629380686618875748258797124146806222674110683377427018619613211439450601667676554490404019586630632060835978828180446068138692995542316415660141498248159302376469184057166728674551293519398265209518489581154343104652071073734081618648878461778219972300946413963294597441528378494120089238990180125437095786937443978982341549036709044728044130716701410154039198935855397883771519266547876414383104083356682143755823088901683910613095104306624735822920915175119349811831460160603502785980128179380427740291847620673018665897935881911559715435219796428278401294429795163446214282066512295155662491393935659984414669522140023196024903964680482524680124565677326075846045289004473147189409645328234125939583472977996988286065977540383453748210484327930969884234366391708441629458251107921202373645384178839940166256039196224074384337908863785939269593776960348714133932572078287141833877714221264999446315046243415441926969782856631377385929420789210923047146754111734516495982889183094870691484350837428684410748314151342384868224753727606003800381983584592163651285741796654240834952493260458370048831113237121593709195197870928389279072986264939550350892763621703397484119538108046404287810960981094025081787974156028919471568468680469233461852940257092475687162001559799189442300876368175950361295844588658919297625076400139608481272700364541492140035486894544933753896969229574306327302582107458503693982555161692308827264483443953938909397577932941702010095734429786297520377190545813008039203672578258520171127596496915869222161559018556695214904818404268954282044362503092362994952904327097901996148767914622182255587626538665205246853792641058580320605485413448172683170033176788875969929878137927624903772699698509368360455475194008860457279270796214988248268097510475966702283546242254944052673686577952994675895647351394832931958699700975694871440000605131926304845355446325284559673844809986953304349767761544203903221105897386761509154599893212183124739405000546854894219390625216979201801893855555442219122813445649041157421483520719890313788791304844395313785652917403247688257370359980427198262840177900089557672811658607979082402052923129604097409821219722393560935085216588066463372775957256588112710171246098824514421813043334092833556406520004273033943093886277259078843064934957091858237244410765254608300307946140826844530888374802689491277430207513370292013809895041708620098271561049651986064952619582897762500185053143334451647259345751286106800209198992333470769836672446659910807079719494144911057595600898356697994008380650344548025313129451980553790025959723847757275285865813636262592776980297740718394894600100073816479632998610790476632997275165135120994372425512094108444525983482970998723873239827306131540562620600221395279956218532306054721488481037421507568745298995227755444327003894639526739658252119754181457303175440453748498349354303437574333686653421808565001923817407880776103372994047860408010150627515884211973002629456937990459747611307687463516151948932314856978287579383808868298042386678454880347677285354874060575967981029812987819103446824442596360896344159486640953393310902231382811698706126488421490717625828847784287104470445745908881229602868886606118122755481587612648828307902399336258298812795240473456486936010285858342101062932381037681145513239717497297381289856573679647078383941098348102899784336575750540597328519913058603509259810496092951965231675241971484622512699308294129445286791400442049853294881330440096655883888068273664089041422257427412196162658886059002918819747361504109581201422340315362568225424459055190549062860481891573016784495480169130559089335713815322672099656700483924184042798890307909253014397536990620848175135666153134909115511117586571482027250348330017613947663856202688778164934590404749511555660712521097844041258114260954851882471634904237708656835483157056008916486338554370596401692169040712911104150492762146860398880375813565566998386309474992557580662296546075540959096877232464090911389336505338360633653291607263719585348492418530225310991801427403502203595068317290269476259591554667544944041346448366876718816025660671724762353519160682489052017306441746980580294299691775306647199846085476513493288531684422052458126318985571770135238624897813661261674703993806493113921201694365754915982341319717191497388049232595618081985672206804838689762234106632783411933537930438696529007070613797860363938732110825953578390461554119756121680504443186253686216889794023476007540034025707148474018351384880315059398352594735282031435250889304253838188071904617071753722138010726264462610568729631764224600954023924336915757743943920058692456427271751225615114034498409440543342723513967753335808556955622726204084083227628473697853809095559173820860086305283689166188913083379941777040677354003264480830624228608824811229422609927562315068461494995947620450520001934577495784233441865239211891831473771599406244956642116018780522269661114562066632588580555823255225902661845535013100494898595278479767415906294454851833991277343111042177456640868570283886066174661690961356567033524976928137631511612583236761338032224667996285785586251734529887773472389470005252940223068572511684833580633633691366260003567334094757693596105183103893814657740226632846443023228531331654857223206832800188344832895819482945821486654457504820275040647469214223090789699804045275390427950978092807424327186022479178313018086171146264978809409136911259422876781412761646333376731020204764580909785028641269598725498934122036407184211893099473434213686670918588820217950552344183678640552763727420770947388308400789821749065357030448753256930174840469192345337739836969429846682282956427808611930669219186218594560196060651241683904401053535063669123041156328640296266928340118751379214558491720076013097539468087036271087864750748569198167652480648513811713567381499158220270200672067504043422318021662476476528051807839273311177520185405522510788958186763826763159972920361419364405775453034894154739649105998494074026090299318607294797945552740582588825659122967360296416496318331225440313727068417768348270530744859797087553504865337195604407069970203434535302609913469396854377222065342672030928411920424236896916831256543968777949010467346287584277130491376461986739146800201172222495041629350122273406678767001240166871657675524655120539351801531063044037429099204701777768901175779104721002966323854653059900952445935638677717420458203398292678954581508467758195375217157770226951438306247991297724290983518379426435640091578140313702429100491994860687408642409925107288650807760082968940812735971670116850752948753737065722335442466853897877243644211889914578741009109550925070346389345777614648837341720248372030383031973506776393401663139942951545190147245704988129479434746772175875372582138902797587213835183630564157961195721886733532262742850967905447669556728339451069812538743855558164502135332194913479732940018161777770739863136954804885230264613635354510210838482572450298443911456456777447536598639078180556997085070919458747048399179277313597254020761664223495470601109144998557425166070695244694545139587509857344320488856060236821679312359573419143257156280918312807353918421039596567295036542656859120279035146776466328508427435635277802501358723461842993357827610443539105278999388644222688026147257814548795193844435277711260930660763840400820596876813685582052298321468155369250040573391027564619839228511116626594713697448919497642989866203472073152472326238473794860030039797716580276023518208096583760332695487473354504523809492418190103487839236998129052922715237903685859549140396113386062698003889421076036726518569960677067067720508902458624183947748345240342341038922670329446348286899420434546548071161239325506722896277817192989966279741904480277865145378360763459964342481625579015494223364975602131588995540832640363601736185940902262203345843334333282438137539953513419425968532572840862096957098384351486998948667853884712513863216172001956260242690560653844270467828721931927146557517759735646027307124701764558095558004802696804266381090068355193600485259603455679325983822122207912911752544050089215511326824392634636608276690252749499056169995860627737515917572713054693747202561644746433357258001151699934224753036597079092521113719124977938132950403140123594896723529973805439895159120953137171773286309087539495908135374122381605075728311688965544037818330070665482039829859068140874327474027922061481559981664249177480109497423792431782683508195336818758355392871651417448250218580543141306533191860520719548264172449628556483192340470561351201484890242075341317034186985609291906494052860190720850761185034623865918544386474768671473529850375598943597897552796450598603552200711052594210179804165080037968366338658774018952547645308330297501350789284756859536087821035397747156161846863553139418714453415681520537581021154808514824252668735133451418197497382508794863109536717621041074123970851427446893211369418762866826505024886689706888617144143458913109337356692874691242502760423414286045634996666026053290236860525697117693754894745599534176233296284571003582990735703920942278359287047850192550484311124900155795571372953466000951818232073760828785559580432726105923718609744331580061085170003723181304496309965958849455935216553130458406363754046072665291867203466929910346841441151329526811462370023034111416378008295003959911467299776864183612815066426629630948799758411931399342471018099133459135408277570784626746594559078011643164534522553370666276126258118311961641062897848388013137051834777575167034085488349530044022741642373021982276657113658947432234213500446616048121107572351770617072800493767070268333287894434934134956322483780007489158193533938433609151379215008613045651530520249110907802065180577358661654465714054180502274660686591080787744805780155149010397756525919511900893905549064564604638951168450263117871261881206628174527365463574599094939989273109724008351399535787051356437796156621237618000120583759530544681883317581625869920357530050482457921421470558371762480880346807452507257355014136819552860127392897504435464437368483036415936149774349161647281940071830893057017358465833230180011813077700599446300131458395185636042063657734434721636797097196847024123841747621847958250189703447137164103039420071766253958197386902736025716796378487263484466963107926321162007477228170802496217666222604555769125342114127318170556213768673791497395394354758471303903116794246135180126992121503171167153026878565761873930736696384325773041420147072719223865658783619652532677589497614680807383721259561199906203586418847753723851899273326024925431261537443244991307796685809894459044051923877880407513072915839961368544166510970729529935710804910442788866506255605838045034202940642721453164360648476538445550831988724160814710779635503819649436664724503418875831723618513865083913045684251364521500490126822415768179357473358744405138723096892617081415305853497185410813201170008515435253632161086070745096324293360587439816281761518982822539494309956168906351662611320611288592689252130382393772112300062462088569074193505850474248687808626466591106063223361978326989586690743789314755865494557264832751119711544137971795222323244902305467893232468135392245199340669380517215186761882104006594708159180785273709781413109001552463612869593981257016084332386808171881987927788760328919577947756518840316432161423561273749329227775969290651404832188536663035438527633873633624730338414089261749405160952265030973655792044987664233971456452127588875519509325206732326336047192214258680020060906022803820914652024255561330176724272428346446385627435544615888441358175441881295753211094437295757605967404420089485477041102830688079957441592591651958794327825852921771782710482890738978352726953238466902115169461484157519595024486224023260284055946103642951696630665686437465917143768944114501797862212732871057422753344606063263375812288831649011366010802916008783030701449140438555892001879561255480162972048673337961407296290347609694618265398186938848567002608156191253552777519981268042279626274554738117120547334576536162388567666498343722567365309300803402204374664460357340764628426363542055781329810548695676834404364260511413674530374480919450742572785034091445818346379172906360211574308791969001898879557863746164244631409817328529702321780565075309062418854723022104518023157526401568744200164986188020306494454786294059212311551044720037647050972070895485891133264101820804246794584513330395862155577183143537982161094835446159270281773393624856023769780810896398053401354553002107622011219638321113300307959862362638252009101715018797037264421103706246905610846787038142695282998031860712701491849350337159327382923911616657100153373470670319512456134636593827997226185570004091742914938984129464209406794840639207295829234555626869992217772077532993854607613931169575868887664406415550026306116900866339164809775280651512434628480989972557946227906858338867553856946580257207902414309491293131053510989122315964814670769091002307967950227120317343076495895396137449499467315295148276015389234126572811216675365527678792447312030493142715590027884263643797033203990601452110626995646597410741276617152889557544212450414487380573361070231311457855676725053547999867645900439728618775144650463111774730670926113297594099771025020668716841155216844204832195586473705910132652635953730680191148839468156667168235339200769871672766036980055819943353944261842086061531935478521616380455279012272180383139029248832139135235729530848637813852289318832909608550895868839666431771075062556102194734083760130191311465899388102210592605600195626667659611119984716554031081899763092656147417065321519671175999356690846313312802122620544302126990641464547375220456373319121001624515591915320412594735517063539958457882593325910494727224625921645126421792557616361583916476105043676248672196381439277642001333541062069953718069070247799587226092817413025480245413678535428497448010577076348921350593615464021955011608399943940146476819567950987822122783574510980675328758066277632983555064528977196934692879181736565701417784487139817682793978268226942908857755084137397209461189904924392847715245592217187053937386467376115512000776704988836009540654395504261047634672645648199216296622669651454955642419985587708670532919683483319871381840412405090268521800446057622112900505712890124757974478603969900084275415301019053854869102611482369240355836328958231813843460951072784333554095786420300174172439887814355060331817045937697367802343377808915711036601980647585058216972427063539157199662239170513319014618380643321438705472164514787612275576057948680222513259631098914237571508774278922318205271619247380040551787596132975302898897574325296762503391320906025706161073501180132445437753644187502438780750435264899861617997419896687795520534141000588089146939822716216844822092530404812642775515223738021847824746564689429863429288590757910047835115194433020534083180428098173455658488253969433964848561224797885528734969898350719425555947654564136561137617882200672010033337572487088949257105690127883233895695110858077065496839143419853911572265407407115946308798181374538254901316023259178739649982000198156313011815587681717075704346698520634829701423741207664606564840566305376177191451384419464451414796667719929681520899857704616886827190239605569856105748836074616217858969953457732982302567646279463315844325774197774811586615729396481486551053465728385487027162544201324567003479460758595011192111618373353970822327506623580374864725765142962484293601401723001169516406042541788295903372844303383659076966918603519340801972814386911658864445036805252558070235023508753217892915381298746322158078300013981897413839965825916492878019622999223260895009283977198999341649075704095439523130872531281726666692044796858739162511436164345513305905191641810533036018598918698103150817264638856961451172032395191487786737791696605630590039209213133926812708388999182176903066752411109066739530682581176037808579137377188375158724495599410765599702121703637714929414627969070145885881505394882540205619565640543661651040738312493003740432164737891839714726008747010105995006762534711400313784235867064773813635423128347884723439486780182729006804981127226934817347352551928527198260520088911613370742586791707463757016799894215259949894847256824823756488046706577002082297907840307137993522760198520413250163576982873241118803916783416659284710473765100641058493612127457122452725486077907344647824421430823504385151216892319589432324472573819390672858846265194392873477750384986872574488893473158914021282309025100503429012926685808374016842577182521325395323009829918819439228116232245486598878156370010133962334466284146983678291724006334152265621676042691292818979942636353183317058625258495911860635979657565374310111892775526183545048736704015439077468243134274653980592242213651745954015190890872642320784285683041346627102826920847816450984847083433700673956657768111650995107245063125555776622083875421730423290886544078900461353768266013283885490734519698579479994220298642087109408020553129282757678834850600247647777558106637134420900411858581082303920272717659977466803997275424592887688898953271390250895779166457172378739525137564255771447262085891602100557177345766513983318805157702172796876390086610541510651690095131664574757342141581272822417884544798907451503974847666168075815058683696145769525965891475906614548506546584329115278199281693353932913676347857673909558716145826904400825994794329935113008647160203207807593456283698858837082960624978322438621927637400448057674273517076922226710911637201192546936730797937497840440774263530445099753441414917151317374545556167116400722408408692422559092765912955775455987691864113763460566894248482381973306172880964386153633100878022898604916963391449227438324488873855174739822938081029820377045253193066335313083112847874740507029275582282755181355315240903474482664072104867976231562189504730087619390023696175520696174557859286744591191680470539282877643338958416355404813963763407554083943050742521250544124760205482690951099514118978013227218221573265253783513819152666639873510235516302221419985853674479978334949238155272795157971487332535000156243758464597956530717341419914791682225992493588454877890421513224345866249135684903868098469849167675818946384472385036385909609110478063435499068477226301782437416582049727778457005171739096546494972474072221610829364909836294579085952289580238087466898833496943355873925204453906568520486302883289135998228039219170356091675937314298266010524540498729940407817605536512492325189388811818186515305814882426093448572074182374034296562403419590332228193300654759448291440138382604217559737033212444453592688381970602643516038946057526454565284965317812093011984732528946075848718235836328947265839817431545168772038719686657297611987541505458574638267802794917375124516340304093253467032768443193763695627726288891051033822760209708457472235438637128593782835199009663649765858819019692185798028119364323967868232184633323473670746708344672076883690569016515710921923315402999369936578342854083564326921654123971598924782419040844785318132448985502150413715268179336358101220219439233403871099290120851179123080164918697753843288982529573621903277800788360334566580477640104317250177284890414845638567288496870385652568254007119399868484674654503453256286012760449928944235609941311945731987249689781642962445271499490153930285801167962555695186408932799747808125539289977926624506566230503543261511213230676304954789504233220502597591076401878516060585691611597384723133546064241255211932655042642410939060868276860856102620493473442664434245665142721187707883683106406127924797254504061950096896250037609648099844421049694678140320069871935729222581629085976257761162701585910012465405555784312315028241375127639404881337504221221013696852124318842911003766433001248146413898109219043247358976836635614421197376003840165512620080448483527946449173644179972261623808027967608745817900686863940954790140020493502309898567096181118183517642568939895195912779742558990479779904150013596946088518413545514372282293219957387526940858695518897732242252646369647642752375439498055672889697482620479646016583704437972728557738255331654357754374128296091054929472959797147765349203553215320473789398940762794495667061043696495003655072523143543882381521599379960229299104700477253041825314680090048491286614481042669634381580664821245293262191556031206795431342914376093363291663321219900712080702537836978131086052775820357542476359190565334299614575336023936536611150557221259100241120926698075842857754638355545436617819153144252348203995807230132266600734953533407327999601094985672504962572037479821081756101685028904620635834377907989315127803435589064440688633838506526169352924422539428689578780566056508800536634120706264125032567091857893400194715077036443644774578487610395531658673466015264288969565546501027788726789875110513159108503958753448510447233843656447113985044490928686409608365733669505729622588482704633675882308885435212317840768779348619487872432144507931121293196094290140010292867035291451411842342827850065925807241464965552096844114479710514738749804607022805552793366220221772351947952906716983977212364096978812490458870460331110389132455435694291383679487542630827194838502423468121015329008406857707299561726683615442588334760846288084535917383868017770991006885402752852203048939949461544518520945762201592070748910700641012197867447461962817207305756711867347197636813776850729172616453151448732609964250514801942188545577892802698020178299589007705529670845037438690324646440739609846988412111783879246982692748087741843158500699783767473948175371254395421335180252959612800185849964611618737614691668080585562018138371611619347896732919464602527615182123085671725479441125226211403421314404996383264687118052576162340215242477346842895895420048640296235525041411322480939083317837449492535088228293361059349432408394367423834758846202394688447059030465270233795745703098841064695479997736421423493702805242993188352213319796211934245732463818284151373454198720732601782157224232722008486313084516993017527396723253005435208594166966934709601440894276582071279540695714327401615626030567814387117056874282137721423879678825136134888173498828552200450914322377279412280499693519111341673818328614883193209527270374876166384021726919557259949908574901331989966446844218425864316888807258228291447026899475186346588105411235142478954118246269345839332626653907423336377402365693525887216530451511260821349921163752651826623895881849332458029768074154878875609027729104831997008491268813514982890754635279433053064877850042207258703088994491937224532272940067098962576073176333273196931260339427420575017971390590910276517011872364254546805622008448136572861741064623015656111435283108655100939075710056237162152805914361853993306284299121514858002428441183244832500769695445832691124464809537039567630621826274584492017017216771592143640894976593067905458065539807234814975843376373543368025561606434573209138341895814243477352763349093967394661682692046173297495970385788108616647002875200171071733197811501208596722120659345590437559770256565328130916119011661738365520530314882486266197985670811732522717316015928577734092653402213735202308329815713176251578820117047226103582737892087020328389067906233708771634049002465520419152922145953156498287012533376640345229645959303255943822438786533900748769336892039022728892164080370941724937790475347649677532289678422212645022562071978977686804324027097070349587088277184163142148141493014310299623663447691710944107649847098336714586041650817606985555595806694163227921348300628970053847667301856706083631131353883726302418541929804333558642355061114151681006512922512474841454282381679851335425125037499381177345847656240199421906523157905068328856860105117072042575834937052193768036758278704224317112512578046598200124201701719046042650313371840850096791107427359628026350640334700477427907187539841276617949186864135794798723733837119642516947822714915135468292846438407454537134458374088642748790377523039348371605019408089359214741087292284369175981564262865102304645513633985745067070709842574424161957075450422431605735449447383768848311993696793428462415458281347719908762762620332051673983534256698853471121255119075195407820080935449913180710053073669009446485420093042402909451846044006345324965534063675548350096169801524054886136617093735813325396918403600165431410294950500940665118912032311614525557814587657912237089761735255384703615338699820452037382470641865366867009327274246803309745815724555421712588291890546621850401979951836217694184323272979745030928565366952809128859292464040273377970150504678601744415654158618835936653524874230870915978795540282638715319678731239153165629588173827431449637115548215965500850923258309936139662616208905206206085048004750219856798573765556489467072930677082878964759171604337359553478878945385953088491136396609882802810757226519713287957519537642027456777091929603201491031295940048813183506795752920579245900678138154295548847239155160972453215493386177374480351619140890542929332396661595326046547675116722911273304339199291083873446591268746451357396936662767031199595819415490648629748500970672011483060773225438018130961239589151338231680786639039783034325906396397162561137822297464541777522821434777523713754283743442737792176918280127081897776444244742761243993584919541662116363477187945082330359369269788528816584374739677106768955331729726654371278670846983870897711864647321145316084089322186035459608831678291097960894918883794617905135811460898342596959404921351260025284592486854897784909496407287067544558741640038180626781643384427314426871521740656256244882120272088567657362906484492817444950335636084174765041568392912363520306772525425009467731083739573062868232260783739683001084136856224283594269745782376374299414090802588735334162149203616410237098043852299640458136343162410339489835593437587473302244096854334923505085285414096008325955198586597392275348967466147801301169663821606146723767540928890612554447809405287582120829232624595041317681749368141315301248754888452788351223349336027313748538621759260268321887680649623897232286678950961461815305910286672718233907707547415383113278263440082989765904287696457226727324637291986391673097808586889409685423917657083331952403457316342159405774721719026670398995782179920726460507764624603176252514399770883382490119641729989442506388931051670810238787266067312655294550050974933890403947047337927496857540261417856040847127243973035879853896988235847217580480454831519309154584757591621938597384587425826740122141092242788771539440635258757380609946689871166141123364281061402539777645561854773489832824298222302311225008636636860776362112046304556003990869229472452020509746017168766361467241781225849865031858063726112357272371513881538470795137228655047490914406131410037282229490628925631593488346709172819013891083594150926324810436793912325959488983076818514709198825609467951504982601461453015567767760271548161091134614704745156167097141634606271692807556289558837570261418363412253893400104641141066114590455114025704055296668875140884595567826570086667008187469721126359163161437793350672708802400408015821562957233038834225754481830046857197078547552404156789620675810133940803166449030837672961668446819083740070458412840836675641432082026593419845187589713275500973903146107826190219006505541844892713487170211794663153121758045794073233811841405364046804320218055937034725976853693287146835906459158542572004674348728751967047287603458822129813592237421982648932222775614362551749692429492307230633840450117264976688647045882097881769261339167043408935743266343539098416704996985073825894634575675824136430543017292335374585678030271503307060945346500375697808107995066127070188553024121059949319091749547123466685280327870732036000316232024501205567399156515698327193440835267504101409430391741780416508557598639393172712147027612993924438978520966768471981840301779952325477960257638279200368660254886890358955433705550064242891624823964879231370684064794931803096960401264225146382154371970064332061947541186428095279188512354876023654666040609092672766771702690735636430090470508313064730252592633642204054529874447240921731200874040751775745344489861710485796460350846097511904609458536846502075559034290126716613702660257064204358395377722291683373953420801796831270374065550613109851776779881044431028095944727160997967789847984804734553753226335936264426618226199718984476962575911350739049215993588840205012178832257109323394402374302103692484300815946463192560502314028321636036125839603041818375870569697394747016445480239208362813415618742483800706892590225961319118258219439003388354553426090070314099338852759799883849495885437111166591174769204989898403984739683042954391446859077603643993371503284369057569772817146835476956658313988854582119603324859571475504465046046010510694742549241230089325990640064988346123689734990084092865930390261544719735163481489433199980842543703114053461963272119964174886322642524471828374159738167239985860199286760487001587053412766240698731702441815421239287968599563696088710746274255150463195988062083014961317071322233205266554077980926744219816121938185763373905615698723210892821110716045999638986530507254211843592654593995768003548544223404362600617967871480569474646457585106759144075315303978931816665707489092461743272842711275390419414978209740555023103684589915561733568418905107552657716456679636287243698264344217906160004498454145315007865523057682819352031089553118704541044089102984304114113909792129793667402724322551212869429716860709621440071075057809799967570835313337841640290791261020108847357649962976147547454516354497115463307888198986566722245034530485342928546834357944672075886834780726291663431571744186432908265578071675470460423576730561355997952508642740502259816023898803137676490062886942800319104251116111966543705519906481096219167461117644070390365927861484521488940088562899418961549308313343082069503621142146109392333733970357472822080267471986244408064793321286343471251742925776989583912342828238234835733101462843764245882078520218214469594740789106406843028250383824781322297315025287585276018293781995299854028627864116228747413682403559206701405339701387901555263866168939601723536272270398517877255952922286841277492750898833577596240384283048769847586156455241157445258988171142692131039547197095110276523935549976489977427616190564692871366048594481749567748112833407973222216541341812477467700623023015877893371985698465016609834191405321626093752070427432059420269388702703587434078745570255800308778880518026624758184986683967503936504490369887879362434551688041542704931107851299433530232774732026380673003818708474321316549108183482209291727574143260581720080169494040313559698552383413408874791629594974816560449592352434196512101876210339083879588363460487516855554665460724278005406058501677147006568305199771882254864245657619759140817307448953806219969932646229789697712664673523357837563683040301713755807362529236689118207046902886486472270679712545299039271679760866270284405733071587985847752616056117931276091483301721777681742728704031564051161803287955635352269732677698237837728469230089548042563065481717467023369736335854094938119885352948880036589859307621318076559868733996779532893979901161468994319509255865706409327255933004437491134925891589446865094588634448749900196243162156238818286480356309346091565697678191115785112559531353456490965605437850406144471907601527853106585314872750464157531384437268686739440334567418198394997153592155397047888141013727319804180025308109142893821083926099812825962278090070183349853956738713504765617486564819360225862322786765809759639136003532503649058089738218550784362797615607347855957794802895762107409984465350801666674897779901867601986067698277011601696373701061410803650960062225771412557437476382902116788132299501118345664676968311127630626882369541117549649514797369880629585648266436917035497259894374878084310637675454755941164949817217537754336563565741504313851603980601502082736862214582851658073066122217616877604766169139034198471494729252287444872072873004338107707045570097303710801592290237526541593720176729821108891082609258748057691911299385537755192981164326916287284893293119596112534508036859323264639764877351642243847410163761499133281883159864550019254324243212459838911110886647653337492387862286824432408053509590427906915974621186439056766278754208360519232890479814600035237214367651428712310648157579308928888687997126307078163411091532934502274988219874954379655986515128914647665763093637962697034196271428580402281758653251085380639304389010059620060646498280820952817255273739301656152145051733374675979773529656088168216019004009342470499705270602853452212876696721084431785591159233347117459107304209547260064288326384074721769294886484617375483711921393641356789697732066516249696319561750346347120254778746748154743397844871204912744639981751557839774180369582230515424524072713198442729862713235016415427041934412339945724028351148848842092867757032598654157368966068001892847632038693792511419305433388708391239555756120425875177605340676485802445437217065058401937922873477802500426850055389982803236479924033002948380239266769800964069695648550852141098714930214234841822213508183185815060290402417865334839451772033783306728061321638682007632862843457822249667984088341761796904517210054062274842751836016813131199699040491022226136127296571173659003756689659487349331687560136664265653130243769941866143618944806028430257444621960108746886902217066544594400761065975956569186076895656906250264737005472295405875704394083829064862093740031200684546326153432035301530491204080663689283197498761503156742116133685274703897171554315540691282658143551097785801978127989027595036755910715988305522435431922394758279910432743231387017972353791554269468901917244291655354373904815531656070573164692706052817201672966898169717982386254655200082729469423054219862178829071833143087271373570716005937500263543122125790245770268544320391255660100469777898740310419009333343197969060095797680146938898048410866385373338965249975224182247697162486095394119847027057305510670353483821261718411891166420322037955876612943607586798270052721412826258891388312592324416360043686075820357516290763314321366880451656052264491426105404217217865289790433561670471907119946948187537418130205961826610534931374091741645283893721182785916371586960394594481717358943309724653811212370458269508537233307942248067427091173152756855976877230253906536426246358960903475679870076118470377556859807691735489513003379595185487504360958355707183410103294027417564721357652989345514779270631133368208409704088357801299543300241496192919898573913196942291820605211498704146122276418439730141819349970943479985679956125517782260490503275876255296983855591106782315976755115842215738744710574465002179315855347904216854152712145299153691090072385945609339015234421175429088541113476831155056868386887548998724680444329542963483105609434484482239044754327555658253912945123556905845370806490089244627666886377838457213053534710540464034450909576874861366608201135235819317191517151417907809452818448897364867732154186780990643347763713594143229027817763630563065451483869647862593323533006841836916488950300655315159948006275677707445459102490737609599354374469725858122597090053325977378716158128318180495110382217598251632036328901025893895430688908764767091992198099398121074509075129325080721909917592635227606672280013205168041277383804105897001540110661442394371286094561366313551742408044090607604273500732753735155966241392604140435097389277235495167159241908971940163521015457189754737096539585681169156946502132898278711863266636086012768367296498037826463359978048377342471646325420311834580692451949331099989123138368016762974362957698546320231308582446605076489519615668352118997162297487667819173040931744949938319025201418863339591407676688306228799567652517135872712584398127828249149099204198011708258785813921127019307161529039338737935147559868519370075486939084520265643752219333038345633106390905393038936010979297090973951370531550938894694311387761059664211318503432277440112820310653188172508125857209534591414851009499144050125329434609056802189248023561552732720585450982513460045866348456875388376388501780140047234046812269872036227598243721579343333001966709335392566339692661796681744448002018381885628709146459858252426224711246204397399315102715829456351883095518138765711088894590601128354139679917941270611194182791131177074806647474356902412937956489416655497077408712470008295122285298555254126011784479690840433903933003583492723551236829244051444599187345359183954070310059165189706219569995578303580861404443891819229734129401860207660560794115979550591350802767406134966031507686642322520616269845839310429029804994986720236347547560896229531732946040983172736853513892289662297551171461349425997167134190310505192909779788479778256366414604732229302876826486389169976904497226604076189652333425896462561208677525907379133989190854543832081310776783032743256197419200746445500840556833684503855419850751810704931922832124815935895392124519439402875924846350526042816316098397995638183013106539543435975757667532715125090635244904991344292751563143022904825250143541916226501283250249929378805741847968378937441859059795540100538656068551727808142837956969303514567452706459136695135818769391286125596401653760685267323642646450375577490047641863641344405758064833931145348020197513228870860868940171241718375630743984703180801094751191070092262077561333451993696900719952768788178795653516837496830626901068050220891727447075178263230986012338706142894547806220217981020948932334977492569155778764552433608548885461827862515777850232697638590503340024467071768468302767852439747585964642476580714050546957961407262425852978045700043308728426214885166366689992069148138077235253068677123529690654518007956058923496506980381804320202804465173789940023298014905613491802189106944128956345777513355493279924171006256408598065222443737501672457567016626305007628212083152301323639968669168903950935872257892096893473954656477064925065224541404931128725405960704518817784121211247194094018010648576177338052019920190426971877166629157944280921324844131913307944309728781353557640790626438032533124791043627185878140667640413024347880054379752555129638921143756256379542294384009804303051477132652394715589392777538672363650333597156313632765631899550536183834586755318789977593107042024488567853974893046133010684081954420617501212070983312951952553124114928725376129012877546302526177356836821473138355505553981345558803667149545358350886526584771805604023564565056282684584658021959360759685298824044953519920935436918621499572872947366798289825887873977534869645251439748404066535695598544113148201631739319571349206823702554239622241764635754121429339377299678651045875190109479356642287845800174343723780021110515813357131209395727752013737385922376887385423293523798472543572894681604760772870836440313774047208585493603453270519560124573499526256436124780904350479527379152417540732922251841036137709094163688332752041520586373522156709768575177317927650046122159222505837731863932714472223379609034128348363012975166457302412122429403114845391847066891221661974047100554911516939781316390128580788643520096710357055068191043505609726241320629558625188014515512894771646205678103146261339359179371199097692731268259958019617896399099582768820451450839342732901478810380815837135665178419571725600153874611441505725761639169727642115016773948983209616798294854508079412695378586363804033735299972484141315517968829525195238263279985369513843751011391456953058648678392326175085088453627971945310169947915251532192975629386772651026951800830061056653203654640405115695458561910251956887766728286511757665027094824633271509950526548317106365161693859968923470279835291581410155597182742686627719923620173591867901918175566089289808177850836202528726931864312020909849888200397623311722236030141097018977242594663323547542076565766706481991962438518294933913829926586590554523545226290104581584211841602957342629871650225863943075832195198976998742670129718020103805367396192234082570861240277865540881709223915656225262634880090387180145100408862669866823309312818469008565133353341007033619831103291366483710670932340765818322572029528050204026554189779057315727260220525002339297133656535528654597559230984424738044439532597791581614925873798633504771471135633713896521355825178632898957982586321249295445847250208612839456142832600540200881394854962272103850519964628384640070560925360229255086542932888618839946288719954246603321570086821392751358879798055890502859221908518745375239895593743764714381209260231300293963150140310454614908739872441467974408940322795129564336774245499923911427059254523259202690103725452232260878787573641727187018356697681634429553985808365175938803920105646993567669981319512570306016943218442701655169305990890710931025327833505742191639692453178516031611705589356456017105758224210515630552520479741516018577532064844867182930889379957667900672776663195939288004456741647246970810018194917004223717756682295130114319580856522353722254537962090913185936391361836868640051320546193705565539359169943834472045871533551265457348189814429415114971973399218866047511945594054665294768545398024100118699058796790162897399840506242068626110722069943175142652166919958037843956885821542923235986066068115558610908754003577412311852250189273944342800627311076632778172636588134649559370054149759689467581998665421910816727938464167736737498725118030674617105712125526639071539572746079860651324412987583771725222882524871707352009981696465433084130829908502170042156479737222490735716592997646521811114551217473664475260504324668144646352608700735725315217063578799437859409518371912423002544985713515542264800700740831381072564362504445727482363956519447154129857365907131376494147175222393894079253470247538245884957364166327403912524438769735994567228266792209588017043321752167301149576597389719933115760900827972172200861254073378666249641805426509878937715180278764884831577571372478443427517270360427886762128282619972344144367358055640936395645588111174517159171071707405111458201457681901040369135354730996058436398237881387397178928262392923336003403503137620965936294616956598719209094720767965904054490678679029866823326739221099052729214817076427005731589947691918750625337545418024468411689927159291204927399009078329590191327465200998601426551524000280887071369751034016229169278767534590157063674756251911303205308771004363280569413740678992663748713773902810713809357357366069228508720967728107324929693977642853516130664263552055191661194822129767445420096126318824278039445268368730273626884545671938181117154559996771718916082768666323671499378203998496782438182762949858761684231135778592462250143775178480048030404722905644895010077819767259632435473844489536448658079097565808720102903493773825099114019376513883308707602036730071450830487127226589943460662306067569952258739670046646708664939627258383775233246863140875180132338625777352607250282545370424224185864677900232817251433710771878293516487344754265919631936348195353576180646409184134896639426870119346558604163499412485858888153463936044278073568554920997489293878534333618121405267283616999844062417279584523447433328935005270802140354232274564032351539319850683511578119622513806295824431112903931717243162125280908360074746271605783325668448493311900174996659490330272889378102320369671116589191671120054562705633674071979047560250857358879441760712470602071746155825221593403127129523333458915304124739225142139022318987750609890368976854883501361258914503803249519540173985363507620546525455334675199373061704266642153891951003242960299267321456515514069851555815516932727697239935511428329489903632550801068629971363715719847769076158534303505651266485316704535301369905815662522485190768504102965509047674472083658340864291274293319461714860690466838174240452026372748454615651292577185909082089925128523028399723308408199422927325966351527545954511956370771145679426767593015218968535417167927954458993958297052175414766583550206764997088813864401806827967250496945664652318152131558361955044355100989835088497392539844367989197489020821576172427823659664448030051030819944813893805525370139221624546524795847750606085155965454337313016480282875405853225450681563464661686285937873070631716593001490184728238054511018353083383242256404840767484228849544895401829665867326341628361789353632242319117553179881196101921531300140930132710831802118264396575968469695546626176251972932262695005894721303732431513657447073665237659417831921662324689033501030084890738596820071013261508573303721750819741030476619421204218924493895949162939491143448867749556465186226666538404454235111374068211653080312536437965906613306078047432071599234024402108623751785099067582361103814077019247231215525367420683390140515351984843368574460314718524922458789895024083769890158125359705121143314323089139475569794560295000955497411037156860192930165657623424394374601463985331267351231870029105533659542608903632447849818685862836390149470531006268903472112583940844483165526815384775018870557633263404232261647600709543790409587550019827387312743081515647301803278709527395560630371200457508956006345881491367752200233545662750086848560066493585484308312935327623654383911193005097226157629436799563876741980530901461402542376368180490088072158640989355833185202521763609087904565975299938638039782489534331169771981980774585668016152038248897227756232501131851529977843104508853547313085019867063261792774293952745713310676655211540847887134792794063322778920752047521350015797078136341287184390164158684270544494000632662954432054786747617285984893322975781743365964589882484414595880071339628721970666708039648963684534926905022764912462013124768486168381039620598683847990559715234684252984720827059722411631255138764901707539743652247028585130082231805094788115027569018915695995666637344922526924817238998460516141744489268084981027300583818687136240489214701193474289628553547762699625828629776549289550486845905602357799131962738953873388738635694154573731733941863783261881354276444215826998500469271677994665991190709060069399255510262022107499629339244471406415569974474487899917823264077023028236303448202816835530023992642727437169488340542885718442284959633597258354461126350138538646217958106266817982523795421460145722604666143613958130906502842287534445782575859851715675210152576063858923014152199291044657294852925397959061330306385569797107109264441463767896053091664556071797005449248996538961002096321345060314574571919401095516045890188049480215288601857183013002439084629012279005991266395255816547339405605968311371328973940084128298831222379918208364316340447362583955787778687335124203009964167680068678918580625884850111566382253519786013988286213487000391841554880164606779089932549484789555922829708268213895528643168198980637890215226537636539747417425423561958917618420502835109209037100518329604504123563065524245492770078594580213606348529331793642332557412709730624228746991119054266976681290813886725726088430141416000282728912856311539409901710764731807371216861246853167201008929689919265334113810922948438877894630713004094409289887129784899274534993327385566274855894402786518010041200345180098737364779210244320668805809377278437034976341033247824972197194825498147082690512658251330872724552822583230080374221066856334389943896328811253521731966518418572280036061512114504590746464052144695616388553000870764843457808279889230992801264244118689159110456608524268528098316238324804427175376781937070983835821052852632946598385623020712449411334913874766263865103857351576546227309535771998883830795803839085870593542018571597857285288696161470568304340883384914213496906667791173607880961558333710232669845020011742024401227326754658921866218885845209462910937249531524808921038168177673717270486621917905288816291384909656631567514303561280014726620740071246346684567236527613959840997200879021380854665471080378085087811123932902996701060410674505097593070191894602405162703465402593303369241997470375934715770461366097781859986206497678757561729739335523323982815997914373977501919714740561391383690648442979420254846948231277291828234659158358522275290321367014661784215871849493016004946109172127814152265164895157731612371050258369901503645335425161253967872388441203861874516651761438436541981450405643466674385689297114280165703091905557414819527136034724862065962663271703728030574250103324256862012547482758386965212558012099077174540038208129538789140138384047296439752349332724316888128158311498061702358981977858369827388561365265890709262193706645686556665895631934197319011266727750887325097104069884084162577069104240378244917921692347176813630607878192689496321261543831162999067107998084475674722811852954596853273819858870961971381390638283198542382777611742632366254716980621619406704183041539810675475727202508391227693897148608019178545936022204474350244273983896610294053186536658167115655044002617859625957268025538636671760845913180701146984958052213973307334935745867041065083850053181597701455487037434590637871376792397019661571303125940960326170046480260230566823004411011202797190940788446653438752329263105345098698184930487809219487482652190731114835965681315260021426265433357723432934119972777079781404473456308897792120687350814868124459263438074275104400078720996739925955104214738823559978099170710527613629496296185392672252219724423503162982321588730398124836012881862941712877412163004181823157011128959067138674331998370961491966795387657820740636838767067069394811190939254915338622331962432876525488181691263729639425894067064640006557278484338815192765258263608208015282706271901035505878580507816067411664447544654375379948245865663864283518056314412141670324909363571161761880035307243761845055261933546188773781311382977392785230970954255081765808557419354977569819233757383130598310603608972058485095873221588514302607492418431277564048332637081027258626797696165606759617717960959329202639190734774706979325682259629976945780595394294208507529020197177494594257104194357319693848853938457076951210208481094182868328923298498539949616557623284786416829339354781149792005282008891296311208043344027519709109839572549023435730625471301624003411741445881677953316092964432202374078770755444886176081921381307744466063928449384128685761698427626606902205232592911623800165396341877956557524636793841821654700547947687035662360634806501568920749539083482892412140066358524935653450558119580041687106716958611958609997844895245611573730202354200661340175321289887237460581917357166594873464678820655923441241421719574397718050705502323739163531418020059395061796692852045913603336912215003666783481883926692467213846530924701599580831444363732673394807454251413084402092744820036203932060309974707679822213085818086703127082684968919711989499110565183305129644632837570172851234911154716024755305183464445802616977399909087828998379216854764824953986563404579698432203451221044919843805076472732894646897504979220677673670017587343350907960320810645294588906226688556689906471692937447362811385141500816252639564325443244931009978348032584746492910125488585138177777117066695840589941818046662115809608579681513547073183709991525512962287927503363701577570721975747923150426591579849809079581170570094260478729310149265877679999758666877597421269509020907416397326993411690148578935784344693446983127361891622148876953507230575367551761586112934152284876894699083485045457028226096569530339357596186856211097273749056209543938941562535055290450890271963837238925016256622532379996274656296408037064640328247473043015258659204952005726659911009797206828013549524339987445100502286555628165874602804273530625037727250988145552545881761909617781156763660623520879248740528226528339657198124399901104788607762956542205566910939171686496260387423070955560664718725883225368567168935740494160153424175579651422844740057529597324024525909762408155159359201168545609602573998328537792743892431908543993552021208771699043326153931749623730593841583632091787317711690687169890792608289277423123580445278642615190531862380043083629998417292773555713951998524220431458975829751265828163966159929478355923492699664884579160459506039234872182633318277482341975862482411797669527322223475370747600073262473649058583148709154134952793548500074833892625391298963743337967374864898893221199509069889892207596787097773490978292104334399934516690600866121940231703495054484457541668953396060884106865934678862184383531182633154371082277102412792133729875147452055413360123946335796106495525860552532555358537598133645674154963151885991560969042765184441532551408105455128641413787088598691359977345180913795704420359698452568525039815600194689228956926572129501423938773977730302014517829647787719841792231495982757445093851797762291657335010750942047427995293263641246840471322303707387173806035389656206023032350912402060759074465508966156541303764865917393461469631385383880118218520275698627166464092455424280383581717936298476488929951626700242467918849160880387255798884115671033132695138496657311055230955324552383435736864019857924975553246130537884353849682181108609944497656074562539594656081767208282217046066266334980606310012883033322498283234643855756755005610407759569707606151253464225212881956784884758594571128346465196829114192512543450607890215916827132683261763175985088038478918687786167469640996145865874922273812273674140371378138961255685653155655025334688469721026358545308558898600562229012441447474356275266898031915729760505523883213591226798974236186863763378864955249466211019230282113944553215010979477735004917021753135612226968546329699838279597836898013065190095887830283107325294603079188489049911637812167738630458303360775614805757706251824240768012010387176204660082780397925478754260712594527927687873853035559707068120281399115228993841483210124099819276327530528604549990352939321489259310412420213174621648223566282435778759961604986595910502888620881337817937332018016300801054306348015138833680151037134760197486415550934667021627391088536775367608403076234831385023018342332904432806477337699139758730130401225287393106893131786885348434957276344583407049870325211603885173964633964395054635675870990599066134855358827186558102532066154557159530436664220556158632035994187434764794231810056212875989975989416607492999795074217438530401038272542076164919228812768336190851582832872501149542887852406118378372732559834457512862712114905941445036786265089156385188739181682263389799765201911216449943478793135547025828496255935683756195482226700830079529400410484569878142994427926078597043416352273108916897115109310181439080188563276962686360369984428234589202784431522047247345841088738138381308038918560702738204439432345208766885678213385923416590399834652630267668198198238292300437602455047800866988875295292570152723585172248412407355774426556570448325473646679124624923292184069378954888414795314304059704133422702647605329494336946803497675580237397208173502405259226740821802707318080180448203073178608358964149736744218004004546727015212696993020567651445820190368941043537099782322710936585029430129644996160600716748668511060061501768059733164299301258811044083988807041085932523736510847224102369734891014766967367078532856212194350690442888959151165552006639740767201544137496314765766395324855708802338413086693887314833306927881000471505072263707121711435300963749163200615271812659509086641605282400088776420801115193357693040989888766407934370400462665955658909496025882737489978958185761825909303031943272873245438203500499108008779928303423587457950721777049704286996405125620486263548340756118561464385912019000174439641267246724556016580759489197758805909137088852243244970023806423732394834034234516036692819723492688014837096465733328620778471059664995217299880563593829082279896228558679819122593565966173223926189085180069163206279961343191105203477832707984069595796038413508792417731330358136828436002922507214043926151640563471446959129275706471465427480858960881968637462557968570293413513793131642601949696068220622637953645363162094822301255418332048524007137718317646313008488612812941220537599780445392617305680376999529198080351960295032415314302313892367294049832028367985818255720522095983900093185669532761300559597800620849014220536997080633409701433176080772430124545562012915843894862123673016849700575110232026229652378619591843129259075538863213038842324451285965097647596065057384606248494465082003902712643736333042727747386735410509608507224171108936823193682502290611841198056613898740496743656717453868467551212535518409489439826608368435336815608105661408948583220092278669866099074889682423660319546341486237070601883895610448937817483739641059802582252830789559132884385691736903813006261462818295861789119681835529905639069354115689980245305072734468376448347364353562696895243895560538201524472921706730784226575697967203560712984547732197924414536613400914224213671038154277922614994308817286703849074748974890072237636306401180148460325449981249072417833004527439683118229916953219468930882299147922750000007944445540819709607579468948176895227099995271225748302186585977482694058586606696250550036129489772342011890350494933055529268776201534568648645986344327217449128650272992809224903569033185781064887388478568194385201964520150037117325791240379294231757269489285799814633499495644804312166283564336276921898507809500389934326000018187719518747658512006854375871693584730469427134052622357777974804278636987010609712376069726829818979137013556517267171287108508964059266376607953069484050850754223230772077104975923742267181330379506023424421964518908031781338201516366890092701503579821523922983308190620041761876669312232357448666669963693859517795645661893408629054700718350309225119530323004206732969293128258383864764347166347250683130169278608431935304857293109923546511632594305285221095863075024704829936154187066064209995568878181682834619626130520115347377181273508604652324519778471349109107067176135345540876193510214512352719262571363016771610176591224217355434719132560349929409238673981263528790887275155710609432639460329351460580100473337562343661631112086709700118553740272416574910583861888524663748473311952594893140708452889069983502708312231881908679402645220680827589206094895123855525173824936880612634978412056497642398871897755741007167813376116190668941536149781992488290514308935715538937121738802046682703697712788249683013654533647333125529365752333016937154245280016222658286439990680456194105808281267859264077969627934107263339652240435512009104241017931151352370908076721606115264730674293067055263178646807029006769702609407995021714063898543098222850942302859778923948316904755003953570988364397298515080436803657954970180358666821493640092597968993403918943343733325008429257332557043635415483305298788192701742429188972172934037298953140275580404519278803783207522984569132822791034791126108365149067629865549103909432033562635871534120346909872018534529903291562038083490826015233409410423500646101435407283788564613469879178871896422380301759633199661883870453741629564271697784859165755187783249911001820737224213394581879254645151761405202301174471782115661152118190864624374753041196171786172800260722209086541410964379868041499855243922829355072909907548750188980057785179681960633944484506029541297363311925356050657295314259500566747198863476588241142617428268504895789330035014467789534510426441337613043154599317957264571260988222484302928038729702523109453269599099629116429815464442016754291686578914779503525623677398807204961571516085199707642166434306060008675868408731902188453936653110143761489077278320118888277735690643922009057002926657051304780865763578766301187242576861612833237035977817299048379157364873957966478206913060126337008113710003389385664037656965779712103352541821059591113104054280126847748098737265892816339486175649568518929524286398541154859772571659643360604704196613989685931713510073325744701463159553031195089883656246293738871555018172765704286790952937499514615573873694533685885563785789935146429025147352355934926217827919277249331780590506368153357408377300619402593886135625239325330745694442543567538167024978270275196322445434423459025497375386669201507779952537596837183750113972131780243631584057708891045962102029541334619966641089705384167713181280837049072685027046194498318810894972605056863171925767971868252348143511127296067489922566547793078048040843399470563631204234110538491807010089227054845940060858414302502692861675834660401768045189348930914486914741039745106128045581033752427506433141176741969121897154109755867891533705611964911695676280774261291218675397237379900960201228924846067068655031983126166978130459483778378610901079224282042923164860538501981512620770746839599807960600180095369261036754913857261279795800850210766102419934990388246826400309922730018519736999031587919183278548525630476636686643839258696269446886349223147641788301110369098074796671061364474554699512842217291513237006973457336444454345531084669592601195352266788278703305752888323560766623100371717302714123629038930572335884920383860671395000788056738562305033769475063017656854661509547866753004355030692027685915693362544178593568714835491264003969705797413374843203286546136673034319629648465577238153388874825756212087064794249005003741797036694203150520436020019769160693388455082471372423544434074002642798355930033193153275279235942966724407483358738685389359999244084416937535470093935340909649503075264636961265056397689512551105093991712444975061924383478620727693643204544981632418369142403625051985179424332792409476491908375306551132469580606500443189992382997060601231038236624177827208658659787816580462045519263496892670319494851858367318755522736219099536615178270238012408208374731554165986586854341744812169218842395792621874427660521182561820449271666020328497762055045905627333714624215984696254428498380328206293166347378223054514176555278159626845196559039427397923951222785407286755427024556765149554140105872972307143805121351746918121122839954384435882581040151641850262631374674123576260654795956073826410750167414827975053940520159920091015911019265984881386709501789168867309071038193155831964183484354000659425866909240788251560858879772252925548877497479120068785962701710187119847100366988016814078316793888899690842931879832075744752063379612243984043836673549244756646751260633788571899730047258728844302002949814624834102714152497022692577232525230022776342443062841802101849928907912523603324346664202226528258661765851126501055671369669006593439860433141484476467962560271408814923948429842777122192643482854099456085281929107575830638513470205889002206245779810250292225731100606444137782835878076155647554769153494472373296693985423580006803709494981309476321234640996950641233144517394948353675473489123293169167178248783279825726050329769360551544355731910837745341249032449244613448423302539096291647189373356047036079214921471303664088697111360749135378947861001578567795851466811511057730724855122490696223539271254076405826413701373328166394361332287585125636724584685249481447429817876672224458094130351129085431177815013835851107455215821394849367546963533301056062251079990765157654947189644278799464280543373044507656019373835603086019258718590595768987430050745247162567503934810285742717518768612954543802867775978388397613576723845157853325482855628742056434024285032939053468492269604064159932054686575445635048272627449190710455588312599770919669899954529759352719743583770725768179442099120222104139075722136863529161548588411944048481674735723554948602130327678818387720371329860880095395744139100512915222209319804233079647081455553479144458449490169820059015756079537083180358724484936525770048456075945735053912421134317290911606761627362466358038960525818010586355072345289733472714741570321581143924743894400291256028469467123062030734125056690813189370188544985824758498372893747786432848594959482360486320305609625636873351811196828029043513192046552095530704896640731522169401314951971754499301960325840323436283271121665816093459611734582708347774872733532908377579698329113229201557106467083218068767913838530988441100324263080567397393201301033309499923445606164021425266621643458386859744965459255161490844681296116375791071505890830404965211865461259865712820253933847831522449142098961477702191423029315239994511777134567629232199344213488710410748381095689214646164682104275077973504438467262644441443585924861736537394273870118448935460700270789739441992340970396974240953951067485478788183650351342075419078450743006777982659030042256883106724342835514653087100292597889792742579642347790132014986917992662109495803754587571040547480239310965741494922099559834432184472243186005397936773436964653972211255958513788116280946521405620408975514355980211126446623735174892485871302593243438688763166453855127838649254126942364079307547810737622186313178987004528465215699758912208050858313873773352892952146889763287910089032741188911872330135440439833041545312852927128880108277074592149542084457455440614683448915078056678983328257411936851160505742618973337470657244542343369892645002433590221220075447028548342143482013882397064767956478474349907255968537494562455519289235934243130172772244320871116846110261988125496458514113564601515273627608519529297346286238754790131991450305269434135838862565859097709552656642296471757814365779209140883075491557631067992781606776056652154016936445084919758794187491865650393162208777293840912946097083218933584496224882723370839949785185148077174403273490466747844738914979562733599368185825680410453869655908674489218481068789689656777668029325338218292358595108922807207937914903665470346123787795240390010983788505735091480945194519120825840330716610644675253641867402787706099484912455853307660482596909969565927896876123270385388689250006962830364347487503560341616743867799086832441248909765797085741380118928013437609334442171885816137041761792860688682696988581569623970440553943223265846162899166079815216570798566504705298678879760896110978461099026204799927690301973220143039742583259723967109506778286649754357908922819896014270741291640049699005227752953912758351102757034958533103198886327796751703214093173536312461450359224704986095141547689700111459553894420791886962085616828733074423011678174604564597851845764904822914275036430784276081357790968772904143888904248277326760297338633097470612724934961017915781355674844431587370126225644339722691079799424403362588972879521546000318228310674469301433053646081827121772096545182315057096961564852214341447914009071683649002317619491883042284090367758813543810453645395745312198113706861141262680292899935227357276083691845761354820853291351767251839057095848346466847136729693111848223328931505833052038876521861132617574749568691378668521497968984749708214554032431710320869387239795334002758371760907831459272367812425045646862024289365514577274780196418863028168220311111786216324120879470516090813007896570772588741627041469626080418365001246454562991303514684467425119442353385871964682834131947961294766731805160154688379000079408579233208219447261506341040208947912586671412381060339402458630815753866450992828628653088638861715749499276751547313063664038506570029823263090405554843035063970600471276871867198370839883244913523508922624415226490019131352447950956427673299717477761387417313549979567752885819884971855201050374334025779669217023664969974703720072773653601334836282816289192630423894796725098888756124433326299456041961384891392946021221492484582275028478129548800443540548931017021538314730866871086957147816632570150826613170736565335127054448762699811066499929789538800308032477869613435732396651343877661409729840697409055405935327582131666872776758487136910831467465175742978031823868488772716269297853890907684898069746387463367980540138502728340379988127175744502883294985085984839455032247340651235691158140058517939625813777387038485927975412342032460338883409294828432747552376174395255211722986616307577790038947689337877302364841371606777961517213662975123477798068189880511311218284145667514524561075837091355278245681089147395273002833134313439957835743547848827365218993436896827846613448187188790371743418082241698831891156992449837497995788739812637216780863238062627553914543987153819535535757288286466573871634116869999798266649448409271716102935149632169109515466292187066154297018511357214864981299426573919689013509324801996113585684509041445567391152999731341204321662014250853925060525505516576916052093385325325077457030515886838104299073982735607572587961501176951073848874635027559450999826449127813886105273220795368315804201469995476829011263116635908779520649397209384815721606159236734209380003000488371628254376618488520233293345933767778750619288843253068904968654723448194938384390586066658480448959276836958576947954123340918143814873536545937120814484782181373486616208441589556496043153792973690933744599300940420062910117311805260465851951266408257506903058864134197699085082267245542465436531266915096591290187011194645032260114069443525109801698754980851130834650809692818428742653445189851522667863458223513927239565737063279895756198713352578292892600565188671891340003161614266121342805319324366132699402793597486840442063433058792722871711479395774582698506501228243051704424173264144389374918669114088711288022724695479443030008515846644950162277011066724087705448218760019029944596007755159100843515355752933999296905933373430712699850003363609757935942493787817872070520988130333613027335036073274187822397146454411542615280763921423359952155322660949680136018721408095959922422568971738133771310061730980990558351432559159435793259310339859154656286132705031362611616162341630282725814860996698390761554528742548248887781294141164469084166240295381343371032007121432256718296865750803274118060541746889413742970013697080709823880086641504208511761600418753749912561885642014676436344046652016536904732855726107199226132324157985875201080714527932974657541495328743472824699162300406678326100108245889696490850999832838211489811979170007615698220486248842739509426259793856376253357004222849837096080408733703056961285883170550356738481923232737441839952946513312733890635051381817712937468910550360205212616894703930812001073385220291585688828361983871040398919175171506601903942970663318002066706781863570996910750230621616895653438143789318862951959276655558121814529461147629379083072217187031569446444436310662205111437729361510991359959595997872566984208208051746154053180031902357013684604350979823663890005877921827803624716404538050057319435122266067922512028842086769859854852711688365346495076671942570756606909988163116513206326104352289157459483216554422546959486481272307463851667236429677768285597363572836381268524574146214322772105754619642226986839324228993124150700970167981906380446031540473526844838921273481940205623348827845528641376320714142639751675867802041721015657665716808210159370692240643881606315003201062964278431057261567795162882305183555565042434264655857621260774011147695218961224918444812972329437151486131400500900392521169486769518094021640925752067750716269490291000731174154005634536270345946226705477831814087468093531643011698772309295578164591640240510100724054627323298426677101215700161941981379802312331369516646847401979406445978328458738325774361875726661883760140372357919903642721910429391773196157705954872902557038695374285759959433976150507178682998175162018494540835870462106036713400506369113197509360775528971288094939937994256462116038461638008847007963188655743813098719593760741974156121397245378646735126453544727848190134736280541128127201193743399626672386471096693786040123689246198915725187933577552158707153205166543813044347243493261475012490217297441711621550155973610131942615450936247515517763491609848552160538635048025136349863490936713556945187300721328352765525956321432857012852272500016517347740827040852649366551765564965477594306271773252314231395644891560802693769641064506720802466183999406740128947262317340877804282167616386342470099614866940868115628223064259225523217215039999521151840426845507131701730527352131589723693801979812257217172052037467212805275592251150402126337447987827694224366442960953623814876731300741003630552669880511170611750257356445728783869958163557131101125837140235624810513744930435922566255929519829150392133844523910372126859346109213748960664903229510935508055202664314585083180137041442420677339237674624992267840942942358134553347515257447364525226829606309578802908708925575105156552289390011387973379644533003432079077921824620889112322550378830178634122275585217249765732586690112745889904186437476309376964927540177965384396446418943791464105644071063311304805765871729634748854191227214232353865538627711506695293177356825381059552613129554964545251282353771413239360380633065610519192036546085015334996662720322001253097455943549964608346888706374271608005950459304046027709588797312948959775918951480049742707402017671319999566635469205032253230160415004366177423818192894979049374724052492859778873075504734613624331846029294256927544620745377777074585361486627985210436970282875065926535681226120124139597229593341221806774101186802472091101920495001576042728667953679935589687873922913236168248099085889000669088270928556890766977670590858144568457277556718354348890597871133950717582419586161337620338161411659892742420229773565534679035465697228463869894031287065362446536583735538026780349711179645441880241370698811852714137803621732989419642258513307122626776297503954472785889747698779302694975811196637709584994119315785422755380247857532481510821932362593253729182138461228199384600876026084074267527215372035960842136138606606713147360986980080904712568432860244800089853998056540536001659447554514116568449877498402205088576093882044440820913872736463501252862441542764325102335228887736409757233319979872828061057031061732601457455563083179180676253054802136687766068272759688009207085178139506122151282934736231696864224768189472996319849693115330514832528668013001732024125817184685161598720402743355744892987164957329121999426091794232716850964874681834337277718237361650675801934311304672041641776311007812365171366239103371001368280023364732175688050332210796331766263164250494735408049475140739706650119459484721002122862670188739225905878639408598552497479850787226853372153343849317632457274853513412285345036057999034175734828661775225857677274542767369231419410421192997885207924164675772041761306990717313902257407475836420880262657065998827650818603048706384282125733122704319188133504927076754054496979289730878791179707865664900405812058972478992539385137687614499545161549531247634393388862407579030873716762771644964612998534518853782614178102262140849242239313448591355644952610806945936317135828098137440931314401704605180427825828721008809373470979745933292183736929879070876236012031730895195335168977675027564599331130119588095155881119523560004041436775128636344650334899140795989708502571493947731570537801745599530627694349469950877754913616482475705354855383757461261449211686375912704458767508116605996578684555508546846933068311888174582389538753798795565897303974300366029037395322114451895483121453518831748173261530579556346193110513553084228706629102506340378647888388040228868949616454651314505939874868046131601905833947879371005070060293697002335552722066112510401238500177108574606155373016071832957844044463402758149034101450359372082804897496542759374957739786183888765229917294540643536998902070754183101241736972534379624588547104713163311279958163067994955866682071923710237382009974317948099874308854826612505866258784616879563938449583987115080756592722539419874044019055655162295964958563034778999792073401485956746299739312362512364665314359435728963594901213499170952002397990782649248458725006637212029408823466814658972106380431123234353061005953487442515245169624810794066790765002474100295612891034063552405745357353889671984509117358014417629249624284256799100773330084202009869220146843853331743532590535840043580651273362046950420701621325224980924614430263593441947980683497058025308212623222652924297219258433919714392695537823053416512813489322334278465219996554497593326593369199275943078378997840641304370215871985927481644018389770557362493679230979686316815173679380704690340326258311058644054267138380483569266229478604344650644467757400579621477531307039426679984911735361920828510860639796025245188090040752093440374856019282679715580384813761171812132803426994163484431335473512257155410612286299828242290812677761626596536279488029001789759608967779115269278149413372629259427584146659871837499247753493382939049715235317830356555877316472072710452586536489598498775497659630137241186493759530813854456024066797347566299550236946740680686979893675015855425446806475197320798711607617609107326370035310110178182606506313309703908420972169953520766396760111785719063467793821636364741448745261330413621019130506409309437732061666449766751231167535609258850624861897809623362168537748036141855283276182388267277379050840550347544897672090969903330292631355012983510014391800533335939731928912268661614069080900397935392616798810357719316308176768399292255242428699012041730741306030658459155175334716183138185101139902263927963459904408016455125783617417958947413829772469946897590888621308785937961369033283371977264342705417809889118358689225327267679604822762353529851872201232231368034370288310646375322377491186166266646393979285270497399099796996947591523837511536367291985393864249445523196959210996132340048462133138946281819512536595073880307009090867521778050936698164628784969628131968814840080594623859504664179222854482549293610094167763506759799502323449849291898846097564564219127059303869832183648706859372674541157368703290137825560383654035010676934656213461583932348810285462730379917058945020924418685289118581538465775875585671994282275633992326564952670706123545514429883620949307564110418254085437752806959460301891372823729053903226271164044302120224827412810224408809283063136788542492090591552873608096147810339836839942033387788956266226507697579078930998622454681487850681281535420192875430106239340780495723638187741948288531786691219353565604055159554075789006434452643988850691015404231003371316879197006128566342074076612839623633310041019714876508562438929441574918290464637086572880061274229397445961669465801101131224654663883551056855899737826994341318559450454417548235938608029299851976374422909246630756630931591572262204523357930779865207274882858071210930931861988639844434914545789870118204862306207065588940596280191361159643107562267124232452415543117506517186698394388989296562490506437922165455166759316958959811647418796728559710140986735804978940274407319404317160845012644617960643581335222694461270214911446801780244458235252161701294383452186007150572468682766591418356922966496627544599676404461093952179065202435808670097797462703248818932705578730816703936055415542081166449300773491609289223557606630217936622288017554837635325670864562218705114110360638294650557941300289332823807089677906922160801999264986206036091732779325609296050403033324733485452346975778136015884388740866936298034856431844648552576867163278274744347763095148579170091715531108975551864061068130945696380709263607619834364611607049007055593426692079432337286443215702971621026177059297443116271624670579757284908808798341435370652673293477677721591719980134705242640538965167016353366326429166715879977410969885814160031586758937509921153730791917449644226021662031297489624593081071030661463188570744988784562558597604010561915571563107476424687947113754754900349104201032630369856107819846070929699484015302546319607986078998255180741070965938548841009310266688982807792193255241403161017566970978348092294752676113709917228874627525880847665101248687203150491726285184467515879870764614637816470670608791227125518973722662798662756230003094949513440592688235640383526203579340411199711493409157466441080504965513873217352657903609750487523546452610881333903276430511365403930568040799625395540513985208340082145101559269477285389607226591225637293861519353471343940870283483382731915718946763253346079882085833515436132766983345028537193557220129186270896962692444785617413217555308755994726898470587113136702136359002664910696927165551533836375411586349857915390699865187215242039800635282200890911279606831937912290463981659593946919579170012426933146237322511351635313444682568689448703625994010891171160316397216454444374518366227663944325972764667586201591466994209192226981687994238474706418765511426337603318087687753732207675906317217438596476974141434517191903681448880671312613337397537382013486823576972284512984864172580685188403643353694114895317908504887400055971023143069416113359837761114211227618997675426675170519771621522429039890483739948022858496021737582925449398746546758482598496638599738810609023987188247134020601514235493007494277715536109541045283401576081631091758319829523863082273386802243199931096435841712176632490573416676627811995771302819109540640168360943800635959805380330784837160288919867736258733166823973590264092835520259111200456491003350543321977297789270109835930574300805240304949943109736210623332415958308688596955586383699537949600820162082185482431907663332185832101523721185898424012197126814452850351484224995714637504999081705417095291709909170828787894166188098233996070385669584080005544579092604387013523252765294548174999030739670259037236602811803550309978523891610559138442249115143780600500995068270665936397154098485823064152195133802987080529785277650830041383535231200355083376121203532595232529467003983692409046454430732138601764781043931703167629907124310864247822775888287644642464499120953301300723326345591330848642095243671280737972437142277066860058920460522790478166427379101783814609494514659986751966011297974398941787740083445499605939288867981445170639002963371253847288701719765983368349322729561888457076592691838579207953237878599786289809419755427819916121121934255140119143890623900448445323670486389303695772152869131350315962885906286555214874465518183122990473507947265950545766863936886436284500290358343805037732436131424512947120905497485749886546791305631786155468774321048665282425661887258945671397309931790158639537076329032500577857031529533323630866734992814915513665795242027960919373926350953205991985578577939402554586207187115621723559433931098213267762199344592762649640128537858362852244190040527036817846009445138121187013096221811340529394122768131212980536264383958064661683884437911132758638651508802129150098316660824835247331049976447815970650104936711790899126796561071562001207902897432859350459820222766509447311087355433485976087417586943790824321336699323331589727775320594855535791392040841356302951867600882526709835499467396225996442021021084772026855115822946186557969899559807695178196296358489176848499749585361546162446149056612318288948989837435529141538383793780557369291471700762558128635126676211048767403666321255754219681505914826649072601097877586867271959790100453883882261580596896152599048432821307034641012637174823938596104198854579258121134108415360909932486845182543426562987489718835073256789914021484855048793788247659582183406791831511382753191938425596181306237721918476812875791731383599127889127834312603499721007756551432425986462171466931177760625909322435383501950974561667678628202530605495917405480175740602388639412634394793087229378356838888538719116577316975814014934367691634153363159768788963307244947457931887926560921673541846261815540057108871599362295809495238599008119007910890686652159397417018037785290674665952973965388845098723105228821873610757483096397635423830318497529623004618317719952066456964496575675590937376122072386258918451918432531749650739458798935672339725332323497007401300669873106558943554773118096205272203362830493535616440574105237378709541528952140399665478263738348294242013392828405414261071253576901729152291096828089817204378692291632043888995832823805733476342217673903303196559854977039555934660629731783407513401897449053655393977190271686872218968666201709304028390615981005317127176212863640935954528453512911981828336920659081157703946121741690574005367932761776584599808335684552244467124826324956912839486478403922191695013184114216267688354039549957952533913809064224767907774529563267240991403649203657762246125052456928228483589539543503722677559429533936042192411173705635649157874594484381724969332802445105744086183154062805249909028114128649979766206727603779227894788501321619465574404558681454026088382605801106027583384682315609698342141105759729940914594385856291289980608875286653399118874215380941256563338566577041205531080565523821497500989595225354910718783466560857738237266041102099793499436364208028132998547760113956618098123620004553761890553996167317918782537161866268065432556313899649832730951320292675709413078207303594504830215531175232966118162746362375412704255443397494640874038115482189013483206364655881085730491244896920843727428494924330670945847742165551874365468948995950084002578629362327101495708114479872538138429676585006717437459491915822751046507957844745172073409988792538936793591082879571500390805537805567763207951130765848754156876958272859084840362071765369230868541112112980589044985795131998054345409620203920525417069829838110624675319380639681195317349646301533776700743201654092092654093506237785728144448359791908864327033168249683298773963760306733236529476602857507758567473016598507414433421669497953025259961991896771954411923250923326912998346193605985055046421215676493986826568180555760855070184858173329138426741728340726986779201145375598693726229485792420930651351565520591620252738899252515837673218568179067124757028669684707488944234891579530737302644561512716894644510030479221423538364759690343291419793726874369544080802491462220514233507739959929124416733463976073728274280576641786758505044679079475058917571901796960537081435923952491511049399802924429430146903340226720348276535900249403917410764496260721915309437374952054187014098665984352592270492446131839510009218116200180219144714982694927541005562898115688156168801290329670171273345956245509547034656819920974814753436146768690935497608281902467086089070629476921194900248658256200666191676917073032695665102914905892641381038555213612775461764105981345625630150996595970138369282031658552372869432447201358885644829958378062285192848838108734468601413794684692590138254227884027089052714366619248026794976357924632780622253454811322549668327278279215720849550033793277884665885397865537665264456756140327984361739918465341817391262859650254175737635980233121648931089438018194120919756191041175425190690773563990687894484040074907430051960936631602215326825313118914509084633422936182620119944550360859518515104610349561359737840751578859757337636527425033974479980099613558773714364701500907154878115737488535758299983421992399544554520501102467130038710974801149948895086656433168946589271617018336069080707882335844881472002452914680255367547189864084838442898482995391482904164079642858211951291107285973021678395617042826815689490405762787319056012963006992163869432875110352588950925938208148477917768399939758042070708202939003125648635703320626474102704750146996190130677284225615676617312849644835409824153343614106798961419737169238795987369503279358736989276968915030080420275416748718681437324411147835378025529785943725302019944318008200583036295668785512195204294564393530420633865792678662189931611797775757629049951107106040917625270254726475395932882315527466209936816801635118291215764284666066956324438099767035616883820652688573735477398896537940868297542284433084401024006333366884243721406331166287876642585411649883898513692273513189673032965708099871171677934028630233330873662169362100429396398865655586608089513829672597760325145766344755530744122465376630202259047131931011935907153447209686424040987796356854759838437470748904486015235899763287386422631861426693148383122709625727148738182605024576331188383045800975259897638151815062308309209335945841641043956105577344073260944182370548670688780937406549084260339900189564732117247346686685384097720459548966174742311969767759834802767962683292619585357210414429562164696853047738494897295803404885722675459850051080470002785599265437615728795105497291306411338285849024201223571109913271589017594582912934713920116478258784337094074192265953877244016413995717458722408806034483112128939670881031682907391649820832411262928867243467570224428011818220454663721849856961943069198451747067445186575336802290669349237210304689517212921492374506750506693700289713798726511344471360734755937564234381934687924172803727737135228970907590535066245893596686637187369435593479656958603163141554426851212676381854671933490404807590471118484695216955452671518966726194249501523767268128493518797088890050454267692589533010429472616899412220261527541541171284309411463305626562992537864746614053907866667601638306370275164478686484912185979297162337529705341663901981276917813729369848937439387815011067993897225477141482922823993336098199657117902822617017019786203330167749517569221777839491578438082051096491700558594464285782579101003526520134729583858346123165827506064783494799905801077392308482685066127689785050318459087326985071094503936363376685308744027462810573836263719038516478372380087354612894590601103219725970342417489159138958052407158841357589125278217011902190431401952435493073692486871365090467024705021045345441061813275784681376229600849729194223852968806614125957908788801131074353716529218929966787008361194201463734544417024489252138873823570734997281803680467515642892965792738882378698399594033643316988561164168541096148631230788752633727313985930487863986247251160157719978423564120671776062294529230209723585103425089617358020628897064896305060593330461584532472148596994078392017905091049059753311282960552809478022570328284497516691468728396958522764144723109555950144060204430640728827536616667723788561535585274437631858817804024981055895379444424098139595095073679136417735875421630814002502405759914857497914699059102535144759193231988231681555041017288947687136622593181481447669286468402721206975953378477518574071486389758619280580398791141496623105503791401505141931848569990104368911755591272781498197874194763528401129328200017992705155536845128977380688273165073118895799521804976790704589977713643424706409003970672082480547360656758259007606417272959506968569385314772003246534133018214039645588806359394387590872793302029803665155672081222810757936366299917892038216276914840930135517651404471798418774577819197641552294843325379370927514384743505198349722810669238710169885109689777865969575816878908971406551906820933033307536846635548002809812010792189423134707328198714914137663631899606096078143374248824326579752292133500842275725694937343678699678502640486355911464407047942048130586854761492173963720706461335696041194513741801636526932696476639498801875372607995403185320289754552259205600995780691407166024919935298556821152870001232903464284012651910557893873524837684296635201436266999337655885781127594371705310964618007817519996713473497970845831486448056692601483889768455891975479187649439214091916970897785527661659995179536206193303183404088933915756597593255892492660506661233577433175552253078588631755504566770540705707397886985950510803229910571179210382126989485182600090049672351797822377986854936187975097920055891355529252055670068000666269911072285350115746025698829355005901525232492099172056777721206023073795064728129542944177508246264411951947181662699930689992481790360699714108842302865800526837287419726814757771208604195666040489480073396940868248200918294472556499954873056746576814684806634928904555935634733658819317045710991947347383024236480070693484030732992480312351858724473397830299221032331660450335358142503944634577838269218440889819049767606640017482017028215357577322938181227385609519539510467361943960462770213171303058153389516672977208232878824112393825425543253836197403071473979562347466576910479578725347979029876419366908656662825622989034686116712800284874034526083711480976513645088052958789106400765705180054180726210723858864825990570341998264031826493399890890909866323396243706832191048013862099934153445326370592249088735387576428630569211445146892095334729823105119118311992097301439146726570150422046896820459561372536652003766687647923743178742004016782952365052063366077126049003641234566464058756536795516818874033838163782791940516971878310386709063234426115637488531656050581229672886317503859242736101032651589934169799352966444024124580244009127316139376557545909128178709110443269680444859523020703685767736041648825741586549647626512353950537784433255278700015371991964114938035456400874148273350581550702415498568523896694666932218184288685883313726307388002422243773919472152227355711281663013923876139037459475171498862171207520817919055608291769521637604010248738897122498109074365825218869651036907960371113085603757458840364551928220162051907833823616472815638197599461124904754672562105838800651019823475631388790402734561625776932920113399311534358577496760005389901537400285040114763792106292020757967789402764299274697623156331619942795732261267367992998796927054901844071221548181030593300734166636545774837175093638906135533318120723192158570636242980839954877590277432482792435682985878522960755398401245540720394576309860381152138160715177717724314757202370940899572929631564969155704727248836484411547940970001817545431628532049715143254134029341057111169807096959740666664395664229323797734300191704508440037704597336315001571076944554769677890769036432726128415264867680395212867178396446616685886018526212471375264390389291824376638382986071514811173177393725104874040011657745260632780315561796624429903754385137497983147526123513543148452837487873043874880456106055483674028914536703086383606173739086422460466226295408547501288874483663982935339790404676700324714667484307098413181570895413999310446871812680786064683603406445974991575712390694782723410168053813752603131712338221768425741101813658786897076336119066270820237217793694456828332858068752421941714018934487099204307652411750554534414464673780959637527259783217884936370040659624830604076544450617206251576636552839928173241478103855440524862014440001975716274709986361632302405170563801337632305993149940386203717156839440774018704944993428258372444027006672446285620090981977935602708103546448478964840141039391845555456214836258055811134196863422413129192287667543007768266355626613810862228175324533013943331761176035031503523252067943703055773635280114369846260740177326160448617379140346860830394635402879455194722475995753962660343415618119802324017901563274083064453691089793184161476213233824647566980947741251426410112762769073931066290176907327014711240490115048176961614004754725881225203247303491708680204474236908491435001386060055369030995739972975021783329557806211174250736433610091088996052447771301701668554923350003537632916570712385366300273629289942827707582142492908545955619498833394901793549130613161020384920578779745490017804968674959892708959413828164813230851607920777903811491170294781872955054104962648993657799171865064429298359157092641401417957134161351020192065834219601767234214344525292445795492795627660385817453970352440035304178586408813988867263909767923843706624690655554939386603327902691650167969378007926817274058020388712494597355611125688498451313892722813456214395009814612185357870494420639972582727625568063575315566834629121550778443371379780837421820322400403474281538144615228373100239459062114117605577453561105830254969783738326762872785865981346512867766977231576844741812285608075322096413703851523497768318929187155623552850203973248866028858232250807833164708369307861448566280529618807848907357120843437935398132821674162364208464647438887383111567513379146163466287281129570261395561105692514087565166354894724864934324779330550983088072459269928194128935153802756862124283989229553794003816070243119540071087942131716820833203676312994574994918597090270918132765090115905551943126042323333254479739215609093542431513876824884881517104779616624424818782260715023669933478234420136013020974815138577017602656475061543214426927578988879183100233503061051369028239829554548445347623865793535822283204947674356860304520919782749925630710119172968574177761259592256391197780580927928613976633618600687920570517318477303148743453638421414318632965461437647915190579933130445966093883408923213786945518260619708641542676039923895341251077359290858922151162985319672382008779001633351332090213537838700224567005557680828522138496806421211035185851661201824442672529570535318161633245823851767492575489049994929015767827557576457696528499041361801866238101656524104799487760401576316742549929953168049747959491606526534587310430562234895655734121078115664495541570123911386775552405050806058198344462525235167370241758929007323210022150982495617520593680258750776955143889857324082446538233976915184859688474573341633314083285195544664678528535145827327222161595379959991415711097926739085925542170407296840744489590819651637232537093935399146055104486848977726769788234077692394282646870020221045468424580422617757892744893134011545563859527316224464340864975937979890118618392944340309248891792155086726517919477194286925327012992498549245415348022538696618602016300027975162470872366279991334083604673227326241435887490861586106794922673612524215677834232629850872577015517284939664791123045877113046714740991773231151241150956755897262612572954797739223838290859901574393924038018946641266359157953942822740601869363508634853907869990265657508259331597307966792043307793098336559475732766000072038409403384409578754211304469247243326472839072496596590084667247598716511003310265826588258211801375240172705428264612617834427755818368406774285295747140200120607428644607734403158554364706883884183431038004252041556666282514468305441920737449344539520352232952510750789063506576204589634546516540726763239636943036787419613539421401348123792134898825251842582761991517241985218081353405754493452987575973411723290587746574645125120705765579357593145987048043469311510203553055058291924147855466689046735552721072863589507250134005976025354519244495123538508777396269072059335999396192568046448661374398828850655586652000502443890284709047445963618041597898367201536651159889852516282310694161482553960740334165777850772002151719902494979226670443852796216814839915785210510815385009219119149853771251208916134214679247504199531201066978703754551992796510958814169246297650778441290534257091831523377640320992612720001130352083990998399544319440377858495682872994507447905888907685973283642301158739089210679136846190997192612041033057826581134649383731781861179154839693919946044766921317678016485752497313293049606052241860089937430660902784356859992394738686345062990891367745982314908909139508743307998421087766512307276074609184024329242582915200485122555792893912370624396752998624864496676575835904403458744388575043575841739383794769266396753005960530495094292635780669578486876732174757737118619811898018639394593849792013835239867436675678719395568603383798846959644251342772213630024740433715543720585247508818263801855412760144236383631746725301223130287039368255878124691647445421171788125629552275748289758141239582513545334837097869801182863443457874531639404149487998971943988949790652393031461453888111589377160443274644055070276764544081834428447124635166575396295489056695270110361613659857798819387795766043918654197748559342760718789799083341031397193857481484635824319248215665145253953280969949086911030993718087074299734541329843376860229702501007274047524870898936717516518573186752364428072003295388588253383363994884650991942608990329534042766868341770666387881936741508585333601922732580796906323601065482246566834721529164967626654631805934520561323094733185900884909851139527549653413454935678088195393608589071493532994391065954880848785956055623288418221146550851217890592244960739817513537133253362075871878998532541598077407238099904043758218222989013418800758318870652519870818229024861510894045974965118078533834021275020036658385884155723345153639012684505320968264951079031767249948411105246939589202897427477732204900063279554907680219327045236973588355449363287937810892093420265946441844039058415055704796267013165369869363404206613426249834977647995557190413015567760976823607457509807038965716886793519028751511642440488368120030462725146885499265251657449843317825292156878251723870113191156497714530676446519082980608421101072875986373154434010813685343343886632714818892935351031503346344095975637629836616578527351659466261037545465496944105234147592810151112465260414388584205780410115701118957675169463244515191690353613483606631278681173004820197634235925983652230748195160138379736726358209032881841206447101188178185368389385432281564053525879825643389363329474789789117971764628305030060127677815892483586810560593122927926471812447143739520846598216752414760457513255571694123842996966917107296767177092552598541723126601709166518348831974860517757177460780194577468849872729342259845462088670361056991827882924136238118440008629382718180384263109217701908447164294864619296132785239527270932359216183692978180729448544550366113850485136827548438155129016236757357601532735953597284827120006228147119446279423032012063899842239384077875042353918691601364654912014620020549326244070618299550530277887298815912362514740050591823696907035736943456222097207583395364099274635954416447628150268031192845503569378349078350734598824527385436408277581709389081030040784379136068420823591743959738067992515763469271506768537260874955525102177328870249285034031086401632424970403633456134928724287376568050948441869843855496559420541163382331911239824601799052083319859804254818829328417328730899760347952521899974129798458232257715790589193045249727845547010136470008990628977525768777223710604415960739806108052931423681127184018716881070946635402059480013413731696688166421920485250834047140653240121544588064382261356803743084798589043768799195178701651627645910214145872893744059238192529774278201365409868602884564096908914787390015089445713290170904585437575546046453636853692251199645845249499355855742943564418513315367756820768174941883405340466484191891240448610109601068236133541842086459125411172758696195277511605041586465705151574605487640091555705423084934561421783335457657083602756797319685847456173831852809972710252125518170131379213916620672965084958324960159637777164799604061813049970602154915511011478458754160299251162324945719257161896062001270595595385541272683377379526321853659812966535257114277796646653544526600195404608859067770288986149227970184149713955327662712058773644098264239373017372208855831022437094533776554555093595478865800663654561908703437937638039569644068513475754839455818958365606461290282873898256350513920454582577508449278612918245924924190103289381241510862041695857953919163624958916384507045940598042104940937186791683754922804215034352162550244273455329665422680453657381881029767277539912334452741382962856062291579893151700443814301387076977971923523738349920278669219004861927869556232473546218264448080564202115190342106958811074554087685866853678903060658496925458428539316903385371117965252428730314060922138464644263863008372919928488396185070562237104727311417412245706653897294449975653416222753413228217923759697170611542773037046894624408219606644007925382465775570671218605328594928291054886655633843514653988166032717908149544929805758075845100340494220514175516537255504688559091851075901542789920977062107120681623528147989008953743249773409342095216282703848901737112734171981446696371096214332520518474774309275394559668492022391688328591305941015633193764739927945995525838197336104506066489060384680430510673335210702748333439989508942892066978826183622439583216043614162319078161235591290150027788774137887905558087632641527650611057891594654991667877477901069027040296857180598268590931233686294167500196567837072797049487314349462093595676703083375999963912097848796210831234857036155223810372635443533545155088414206343276904313215805693460242632981527125775968032086630107840052020933409012405232285761583632334425135984840233442426246747929731407632576339436851248663124654345965721445225173811798223880543790020482478017782166934800309623067929394460152785981487682399666981825324383884764167688319721120487386049381246259990809140395956708525850875166824304310313154825655388096630142562450251789592420639186379941067509043167057253929766665493258739675784088309783193478693703373286635030798542284133733243155907906963067263684901908569475968441023910937592225499704076914310547060828655950179882671345494318999717665868312580776938975438616644432618579665722864914818652208354779707462142312060549353564249618198966067945044208199091552581547458665117504433595124887271726809843011703620322812687849639677715566689158055711274232045227286487252497409319779301872525342004028395865269521578518074826491130934120951087959690130539670112844460208908684429762166242676238859021212128073533169802791984436658456488101476016244174017330963786932927040223124588688873471511704642394197319583727352902438704630785196980911778765453806721506662977445926067999160228472003466938475429634354032533059539484266098049775468286675238177779800563175484135430008915580078969300352660384100440625530270162099477647639070713003734793429276937304758778418681734028793022924015599315967815535057820445059875387764645574832363739441450580347862968671497153850162804211068224422134036455272312055243012514079307049660336536803640370786248378466964130981778985508936628903060172513781824898634222379700044931045573415755525898129370962448426817737486059169350783039309779976158112056124007609727376741253928565822605031922158987967908788940767906535464843959788043826961610646769548013428180120081879797465601968584812171863297705667713780547941937858506242633386937465104623094396408674276271588422496076854832098661772833238529081091407566384779034221446417324167675247664680429003724674380821234517023516568042471883268623136807189071437672931004212092671414720511544722291290002054731032365599469254664340447140691090757912993359201804533092214041303964995482509224130768935846466717849072758603229171631868584695181834707462741687481634623695476026195850549581936742980918815190215970060318808313207716225848397695920899147416017448808654197637152505903725080560372341732687305615214475417601839048020381232356936830869200792015201392211003985925403804927352189566040878239108049574764136640386325194252066576678017231563927325557304495317568428419806576976139078964011691113715162819476202830485954873409522748630025880507424862620934979948486358527939186922163089950595473968330432168102529372786798349809177569813499666432475051191648117147467943518591083771067460655610977901098711048700744873189633756166175512192959076603917471327237280185757206406557053788790749504054802989039051509027339082063928456599105307640069949776968265692836092612862890430673608508699339737211698417882500506453623165926316871695790677791850290138398027832085881222961649683748637577898637671618453781718768540926015584288896100775924923770597483258589906828255950623640924807890178724775994604982456453395959717291225496873698398486271013757780026531955799973826398842112212046388137038068322132410598106707013386039988800469255923154307838854524601405885261952435584811107753287530657458712221486613930030260777988097497033600682652445567483960520581859293216656417513887741237678462250719338786225565270937508829140923618386157778181547140969271190476147795698529330316433989977351667485700548162682225037244902759551367864215425146248436709745543190569427344412013739159153975435772311195014149763202091584885931492968551599546841741917121466003021581371262661006056624965164273147601742301476448135532667356597692022687410499369765390442572699828366947567421714908488242304791628184649397280958048920242515617316251278995621519318156700870065468014437052392448241059126585399982617801092422405295717380588195007924926051200837410064072857638964078911869461755751889743320394144699682730672996693655948924554491539915517973210158635112295516135379429864597280944359012721554079103986307172751718654478471631004109889204211823776305023716588466516234091084182193436705707809724155675244411444897695082534400199866542488364004413538664552567780035919063082575372457319392095578700202845886866329995937045278575481826201617627161240457383791927186365766289979603495258344631309674624781359706245019027161749390428061117772969513175517849692837898183255159943410791156003379766730648297089629420523213086904286915715449442291022684800089861270379290732575144060992309958785297069782469281265090233221649400566466742700542056564991291110712244928957732737150005751378606030693533715891444511018389570147148987750795220634157155679530667650346372486555049866096391956371722952824150786207401255628528395287959800923666453432261077546513431539124932311391905548893177014021185970963198159933406797656018340582339516912771994440926489368657925565431574775912735496314937241999576314214386624312952866734749860425037266024092115933838725512229166233487999726627942513967811952381332894425322992390923253101502039770408147967290681078078448151932093165323539927973538534574166151205958908792510802969166798810199071738637020295833816252903526455426748509607890791026336611703658382392699268835605888493689504036032809866281055340437506134671626256423332165156231712517946095794864986857843248171658683784274626323418019409129177387780599851409949897218007783973966132090541886660127018951838246033346824295540788905040344321915256149672889530930539135415344764560565388569364378181986918219920400563921975772758441459928696315318962171451807724180333334964909242791820721730861851549702287780336845471381336173254770752386610994590039099462179716712929550164506876436838272915118467436163782215722258945294841831818330043708055531451411608051370603422058789234498812380206910700098883183372044539113955860286320232296959721962484901574719780474878642647904494505802059018054831061838375297693414799328003383401010582037788050901648231563467731037996585199567283918729368463681133162077144357693744505754731670183898740757616776649218864969628000919891048574337294902862071016606302165305004250803215272308849593820572029718039888072679486593643333242712052043284284163720645117743265418829885713713677748567799563492735087780547975917987193543915655849396542825132286272198451562111424920943893191013800619052157785334273900316828044784839758766701381740656194202436547733335917562792298784243718090101542393539500438625561672326456914398620263458786513695642874649139978115487422218998069627922617947685935177327834567173891281818338774064269739570457853745463478997178169833995959535121313702066951189410129900248528877326482111081425140785534496683098996995572515223700475427070865518193736804787725415573202921040782832337360649017874242370081734085414237207845847505533744071608689608470840592479244100265433811456140410829504776528753688740931465511822533744995792131999687881396366018040766988369423646170453928359594020235438535581007120427759360837143789617368898268111497759184572529144810718599618046227308279826939560783593655234057031734917951553268648532402756764420500150719815621919673943631705484774167207086324021366813173123825333243335589996934916957618991392599960048387266297631069115808876205112995671943544895093588844318264798319644107836520252590922754668856087733219154267634283048758781351795055281438547696162281796807692252396856493326190117556452350993725895161294723968037090917675866021154926345259089554023852740851744935381484093969957360629581928856783233542746928476900268421003371943009269370882973954099367159732499512420010124800386443464517202983582371864566201676447199921379424563103739092138917280309092262809282768489572642042412931086193232108012413112581576314046479256758223310683588906370841846253628460136263291242270669654955133780563915492350418497502084593421402662823520155558117536001447001565330616467074328881874461145403265490382873388244387673307604880742741633890250393509478524916808457586342068983724083062558429238010021571477158829526555146150683651971397867528793107097613313305206375452426378077145571582987837827688996580562013745802654089161129420398426653630876977839423536330754385610220679256298390051934933848964782816050686482942068574299183782810375040812039682890445605419515466878461047398514246373159592007358944397481617340628175286503041848468322976278251815797194099669283864156521280656600823010857631000897736639529676288559358497580233277384528407979903384148077560377816394830454138571264679842100789317103285809017822024747026104788837221419530153523708758083896831995188666519034025442843762056127208455447645120753111385713638868907063872962506105704111956920606442782487978589731318169791913828128908239382678906784487656161845654083677690990281606581526545437016630841530005107137190692667871422840083395439473639396723344146446020777130803304051508568104375180333737015902999059080547395096698453605534630144794293714080968140215427280191130162650326791165223825369061032977265942474935782877246277833447329508399299359444805833661663698065559531730760778857389113609559496698224732332923361993297579646690237166789488245254105757248506432481838979218905792410684587735552587071544257312109259850295946983922891589624730982954486928932601379080101151350218230122103742320653363845173784286241560578251037441804637352987735385021099204795474680225760557686354526596856494402246425236272755161581484241130595177995042605261990626345466005162311392661716723600049043758145568076568910971522909650947094347065621693110156189714269332962028483568952272197860452597042781680220644984112487097860564013723821502670834002285478408753576606524263733758794623923379603152650044370706442882835339572810938778823164000445210212448895310040066406478456766544446835677488704384450630800187883661818547571906334926587459522382119376095566606883052895040486532567941048700439889339443402076952538554498048998728792136996115497749881313426159393693323123187611472329024026493647495306125410804894020201872599711304186517407300634092350512121136490348213265794727380646655178217306744790936799068531210384138236545095829395270501874328651387153506312596721054007931300857638091750518834830500771143924195610284048283023451262343239379918339034100936402322525815460633002233314120958760352219804332333333171010080850988883255606543163378458739597761095071880190691365330577842651622254102533178566918673261679676941900924392658639439007916394641387200907236787825162469941856547974769998905929855018379997653427701572616066929393305185539299010950229341707861861812266192005756035488502728501384337639610891420280367190249936530069410467791105286137903401845890085960371244451765211106451940015040841781896414128265948672288427683048322253337756774619656999012222313755977128895055451673414435116673482461891562331192090820819847537937765920456900848246670584834422166103944383065914928841795747358128863580432652687678688529463130748999915455985388863613960631692977835677369532194156180785067995837558707272383866835792296188921484375767167466126444625418361695282214800443259362705957839602889630911344231736283672759076180055953232039048542845313650754512383653394449265268041519067555806481833966575593767146164952860459123624972485597980802507782220002330752376143049220932014251279143739911929018854140818078193769785767185989490630268063038371913975051721220103281752769293655387983362442644564669759686186977687650128360875734314067688831593406937214737829231738483654292772908839233192562223665202182670754334635854641990033682358558040105072157955699097671681192707822148540839605115535371815812129498920259566920038959009081971336267946642322199550624458242899835583783232934629453410938401560493353535419356347884206191176713802859933420145792398629750616332387199423305519383796595187650437287337145994499294651683311244118292186513035060663095044165637040351781303852920296206146040328706687495352547699053607193842807940378938970560566676262220157753097843178495583613037715407929760519126665673412464560056043926129582453214712665627092286671907155518517779621258202916581051068573652455457080287184401937225349228370448558644738151590036403093033977591879465490730326568964560685143900895003341082623740798838869256363234185345262972030616821486994832868437382908979127899633155383586047394387744042851345001528879573247548456623159870185053767180046082777179960737334252998647419237805082020959398726844701256266136267153424689585872913096463408013821418635421094635104927168046823630374807471868220634156932110092905497524839367580575398180312579526975071395473375979253222309751970788422123109878295749310466515244115140961686896971119667920492720283099379541128471486587129815536602635042341398134136314904055940588387002195238616987301914726833683585885109222645222183274495345096012700954503821993301947720520287122699103451026239379071888243452559234288836427501823072191877540060415559733053306843068991039497255276117561526668946249327318218469971600444361336568716912155370063489608124202527370709898131673375614095049974287665459246900197437183821630739051266836541006148987966447716446319807581122595220919088986790870506151321958483888947850364017632056455532488366977131267798787933732053481902490223703742691957465497770132645284321612538127120194123779341764706550192194565411483042185705633376473333271274017937949924673415486349788003808917273793974767316620081211957564394322533323046814591614162712450766393331636309120062912796374050023560979065038890394435888563202089734382273760262659420770374328192609429353207778317912894199638022523952496566324352749974199922671872994006296095940969686273643422695597286773754200801059968291124289061291395835066196131620465851311545350577009855460744076168591628490787567338982263720711864976914629520312989097203970707859931251425621561205219629507366312686235130261985069016218645503649014530025487951342687490132075580820726093923692931737756246835552997700640178462737111194921754646109370708099550201829082126712705424598345734970503161579776325673631976408183740018229545041316203427514143499676136300771184128583850558995717470903168997608056564525765381716259691398569882696554189098154499293856550663066898368867299886492051124701401247403767741101635301379863178993840358682094957201215015930491482231789514903750213022970487222496646778563749650803560029573987449588405552953885924042813712592349538775776639437253945722814180892250501867368252629675730001415215629025438980841530344212249513414225358601657727160621202981203587867250187881910162052468589942428379872048292878497075304598985524736360436897469819972853638638457922891413071964558569353005425961580053529662777088866583722618425779663963646736823355587255260313454546283057579503702424219551762274765550734793809758895197061740253101062569915539756396075246345095739967032807328095236001385595920497890580973478423840788782506141739628724692975789806583647827379666727068658079272942943567972099582762279984254605465844066796519980232755770767136164361717478098092346794549549236893488798749010722328109044583569601797584530034291667127800878144337803927589261139983509859213422886125294688286444053801965939059643803899788947182129386208142296271642332807234426956794215905819626069753913674962871457766369752651731492083178145009689442279786233300134916647707797422256995554879984067973172687704637115531868781132105646368399647241464901989634652386670852196309293562001049089502457104938316737748229200717388133269147684147973495361125183437551289987008817369354197535715997996422565497024039172960042062830425369420355340490340492775520994923184937797132387956501494728851370519456382315148280601972700998837366431248986021947903843805800547117845644640358901078371404472239414588215653482036998085122183971907117029480009692567841952969650535023304773225805464993192424355164708407020064396091771078313231362729765326667146301718019196538137627542561231479026838930029630356280021707920131424055877866002275401129644276387397081980725884274458702045628784392548955150645518195646326199164077839332136201626146142318183521342090224136865831272641964858650664647212088027628526730562854399894961072629508036356861150895513515165744507789892948415854580475364884899295024287351765983887043477908849973006971057833112856458819547925461064018318169737873949205996012489917105906086110359297360018551477709460695765557232165895987987589815093543313082938308925883788384783161674245434317397458714555011976579236649907700547568925132333899866244663865586280830433807986306512259584451595845706762988960733742718718645544547356193170359791420991244114625638883380772194423424705947774626400087652875513605865150483268402607278005986768084626081518239769879926248600874192808675355657855967348401406537483696339371964222052520999245676198643376991714212222289075477766143919799420450907362899214549984575856557838890597075097150135295060067347296063648708337650640935461190143114154543884305288331375919218714659451208329717731967865259216318760486901661909639022220429898874824014591710183995042506283614089364004740596043130259388181502703109416854248123421736660774185441266747519694824965434475653586659065029572737100394982950209257046894543707997560848167015782097493636644343486224717472689058914281430388134666013797941065358520716414881991545425350112565631417020561409876292892302024119271752842717108001469427224633034742790368776140837190328335816276301627987289487414500491591138921457554924375477769671310346413858421857220985432076657993607751775952006755335844804227709253465987320672338154609769567300830462574767809199603979675754487861641205550989570041645974458449434743701650060564311165205000788749182335081935793087430354269852744327054809287092269165074895141169500384776600884276480974041564103665957171275030528928595662555255003357736639944467245755551869712380571894872580342314940279894532519848403008930475149498148618817455656859162426292751610804063822931281733131750345910832991004132743894339619976946385020323707463289232651930840601899175295648103727389624823895887862151911691772235657319769625370730390357394350096549156258981333825314152938806436602686112437660465694395965115371880843766775402043571005858690759197408031224815952601783222557764582201899782613843749343461069117095846431576070475396587172464166353672570628090330266164750477804575877197583027371948505931839023351783094080833806822424796430071391728897009000516372155281972658786754115704694318924879173371611410124199179541328806073275488658837431729143691170283381376377574689274875576515221906266168433109875565677051115425950129870068106576246712989372677932339154659369230633823923556469096686758865132078023431227901754502072571718514935557608195498074345583008994185432634038023521326555555436888237389087845090278724417121595235319622732715267745345822389159085271799195024266847921653270147115290644545977166605936080362908472081117660868059455683181911666151128450697636963227028664111732776441971473495715788991498123278315969252985678319649162621714739120456944353124644184915845627296839592359091045719738533974370081515251480735379088519257626271936632180073933005851225637510097449086313296839583464176834838983187676574456377259343625403170375972314151151585064419209081128115545645953695961869861178826954155956066422337965050736825947330921518446081724897737892854449057769208590690558218790225494802493866644139477599988906357934806389818610828694821352243464727571108850515852953722019906048217015283883933363584094361853279579256055038879575296371791104189055553478535524770674859064365555261381070321070554886175726465226546095036910941406143241764866957115579893559376510123555243504048644166849178312992765349372996339166231846476742634458414510057027494582287133954408564896487149418856897422327744226591663253364313862004366576419523297686387475154173018054744947070679840921340320805101506880483462807449606031732842497855011593109560002752305601226049380844082492903881368850467477226086449303214124149449704768335461568463910346596428671688032100783740659702959179043015823410950357153916763289194305100289328662661950062715193861645506702524324127738096882255632217013960271974854149370515717062086732556886498937067415407204056447102674363712952265650163558746965793406785265784410308040015149729088535681907060063574282965362617755074317556544884613541699490335091708948422354378556379970466429581853685927465210876173835323487846576821840317409727744354624980914322559228059992174022384610420910359205881195074657089867118152623746952923768947896721265527719226663310440125004407644901789206935457749336592213680884051502856648233369508134541239769279119848809871451855097119679274968926762760538212805010380006277095510378390318891952243894660557951957223811210514242805565694380141156642498055768757533960166616485372534924830895149524902800460116307525999457908190636925823346322818759586523013613691148857229698652825184406107315427775304710490890226664517160685384764950903094862299407418456928034540298903534736945754748948994050446019030893255935893835293872738204041992637024169057576638568380117698424536523042780490617871012042284453228545851332902238961368012588669723479297329074452095364881407236853358907109886477703405694622689940035865168040559727926922689548356777270477166609648829198429000893891521976430488883209713119745465619994495683252793411462338771692220071031167508347463369193676049350215556627972067387736259245400516697762445129266883048831689907524145979237336109696848459880914558791356844761267604904669516612056878779517290877608188996898235370802637022408014428838111650301332443146888149210125561777881610422633179977392383729244005834637000789437705708592360944084708319241435772986030073416523513654795325439522800811172002269653520302146306577784111922621798497087728331839561243955624547481976521765934186732835168469937069448429306284384699812166183352049336582929941891879349804717731587968853897971601111874781819017282481913117928915449571745211198881495609093780496429230839566717956501018428175394021416430276545899363573219150883943576920536186513848800154377021954310233301236153345396239605466642504325343490569935149325060488005364328023777979238254753249490814838599257769524197081741611690981801165106160150180969703791444970658379043769526414934435908937354232260212887922365466380348714679846579931521043205476269783462433765780839195529363988663814585018421725058192973909749108484208458202588769648931834911831731392340201143448331873777129632816518853130368948048131340018308583113037261759315389943152050387764675610542524838787769265466466306397810074321944750973841776326630959944802183783537827973688552305818876839305083662794405413931599644755760801221927647905899716266307437227388552744456778995466287814101294408659614355679859189159366666164633269061152658409732802829747025080755823837782631162249435329209259603908258907617010697295941955057183073122368811253169025378696823722493093767865544780813327901549365504072331693308515707425417636138501351295514202575189312395999637655728553407666635991821404167554946359620339173231881757758883663967559019675707059737814219643703935546577923092625789572624406808595048383519838754588210637877530281309386444963968941438285657583262675955550810849764759298495105032382158451893112301921923211742630903236124214814464019685353105871884388643836555713604518162973112308809700653313733630901269561073601248254776877227054266070682650209484261830840992680292456411322509115017869005938342333756032051406890411874951980027068100234199241048496351951533977684298732284285592992919146082294470062408708529757195800764321854594442361954711784998049079811060213467837538582424447619554428486985054752721803304521673498144964522003135409665667159630988707886880575031940168231689731277661549923672271304647382312081071904968243899586287830699157237541550656694580464907385526691832201945279570851382404569948342860126072913096644395155924170320553305154042860680773909021214426868248859899268952041535230570962553268043198532148065315347840444014898875090079756145482766067083816625359868241102720565885014253382495875683372942621365328365219175218292073208879836698203656481732619829054620797593449406814882604766958958995542521041655517034030516183787068313039692341261589308574222209277353928838012789338100844651122660402886325399705672954650894891451313357753674167471034612464656169811913170559671841014610717133300428856540954248586634493958844990738462852913838814605190961291751892644890594893457999894476305178472042767748672926836885281403843226285400745943551076490487801696391412228618758003356522077860586875837901552473771675830740368637563292640499752426498789378222278090144857641978744024122844153130644370885074733040458460684827406360366849071837645054626217749267468730954839768552311949808103881631035431624903871099369529113057370951072481367992927342249977453805827667557103248338804531640246895369952098994824032076783639712536410459102316135970558115700265123264995052886825357753279454910987264879660686888459770377097805794734157296240587191976602413418493371456785601529199726002150957071557279490071487175203256906576940108811392194463878331395426157827540522396014083294056450233387106176804056622059298100652008455548347183607958058022044725225404769999690140432523373518331175341708639686979161606744866190013157375503811214840544634079425761096165196631006606656191703920643834216575417177837318331463636277600130814304265568103995688498356473148316191535011185906375121803844851379036021518880522114154591097212038119321511839712305312077418698881290153292560051830762713142572710440303791569251108788465733753473938035285326797520947379164762032568593362049000020165276670691786396965792007778516463203879324060465188741388951926334447384894436847321669696807995621891903238142142504632836212570222169424685293362816767110898784759860989189505094577070830066093740386636189500312911593745211365726781863956100272224214754547423338199829054453068900413092782481058453583871831958537075657387403263473395795300533922414883278632858036618185750620679818648635751556015833686624582334441657734177491760540608551457409814410265704063092734005080952059933508924245002335738378940920255962996622023360452411414402319522870650019601274224664881307475439223150540339277609474272823900721557077853999182857017485828958643764996794185951190946871368303052354506053554129827817337300171502511157226833971660813602203922592023795159711525253121564752246996574453381925033753537860037494145868669654534124873524913287561505883603233572926464125382281090533148664395344893813839323841040167526496270687813303326097937275459142483692749125308498493584375141960999263468639588769991769554105637905668370400397903497510038716437837530534387523384486599578219847628111036372104393172070504116832623536609589363131293065402245617369520466530940295988087319504042087614932277800225364989797886829287777465105542742726944237288409427600987224786124758811961896892936986924871521480063771948333249658099875824145987043613710347237732268180104149591200968014371715921607151172418772719546301184048703090900066628911799893441972927367568486154909291451387259573824666528368152296675783883189798119596448255079760851392743411412725468083150405025362211573374244467483516162597855298079038801900456910404436969656426315246240644694903215994981633829408385089328091550340879088436940783437046133982471862786950979610849331118306909049412706706659235372344888641086078165964158586428245344925019415687114063166384609264301127441654490384248984210837112573819614394683943952354303672535986876481058211495802967379535492989811423820970491249319772934366324189388901669719245773298673527000704278920706025782348157883152234728497034365855905842755158344309386652070185239791294512982596280708754845072516006612588931499757838655836716946552420982148182388068465619159462307410444703696452140235746856686353165602115116616486005238797432261563051958146535630051304710972544719859949833677049002665094485291229927966395754759790379258818547081675959620454172932772844786101066153509163198870754467234581757822814439528859707449756440465401314435419196572892013276919873621413630481100921040988743109229446342078094885919182932315598220853585525311159472979192296133571435739298475208516687930691311063388821080877482127180664618746583026247495547612192056307295142769299729862307321483577908635738459337091938751234036800976810382075562349801859295061257639038553321752514590699001278708788605690758719312779250596237108553268572247395586593667832214351924936994126295207801521384809135630949881059401106719094306743850378725244434392744385351784366575462067387088404734923359352293413058857354061057089583265976857922732281415459520210035628269449729961632249753714171415725539807293739033757060537490821471974009481692521910699086710913312134520803528368971443636644638427121268296738207557305858466895840263479111915638071985813811460203891347028365368771221168919196276913642216375585602357054449351010273907608943488273678723922749572539276255042894563568933944264359212115901753552336738543465133458608637867145997420160398630255405123319658961687174138247315094099102678905054558341230864716521690961201883854579607766065671545439025582344390469430215652703523783840006210322018110282048482027453423948048543123781406242027153022341529858669069971361839671680644367774815297853729733247280278608400103581291628270971059383286105129176016809989084728780910578372023868772397072667553988549134733141202869445906397730436507050852463185241549933561631318774353875689378604845433982978406134232558400000515131350377725292318535533029372401197579757583527878657198229559438397634741902182510131879379324163303251559173703170710640950602502132166797485588485665440039594005275532443241452863660354684944577678137940078661295156060339935454405930996397826183110729481359308889959781888036463672568367998529632305288118034088127595977106724724098684736690591529383900753368803870262548040068653377945360490522820705868173467016024725982306944735935528757573451555183514931544163612048464366113536463819457927867563932071388630174923346717507391021034776281502562892945300105794745856392208007980955413657999797191768945975622942164529538372488200408401465226025975060235125574871007407569627039294808795538490677655439335267850989816826671308049561178672724967627653425492163189186260657586338686202527691028059296608663449944000077764959839457625240450656063299832001191848542173680716664406168051473989679204549214249058264122833731456445745444369925603423341785779519920485663164528271032063639151780578185579565451709366910844688038961450764613727023540963277697837687348311895769546327102369704587856843389109578626201516082975352565878567056257541751371357292171373679113773853896756353037538943258521327803482733441625559903733907819796983598057418761681855946601822264252106427953347548928130293113240844109320022235335952987885296503448898695721738508632667589011707766991512523995015852848601656003532183334465918500001084446255361153847706702555089327625968681319590880937790568014846214206605062673888355454405208333833885710911650504400235704798743961137641919587245022085569008617843308338301641008594630551723108093332645154894788597924612600234354313476657808813365650123054572367771650135678980530583037835226182223305200308548775495295951374137913525671022851659129242177212641575530887615390529909618182803403115015144289413863222289735183578874261682947734013900429088112635154281537089213032529274768172052208694339391101985101320864562190313526166800909489016975550885201166401843337995150158650673101491549099529829913998784712964189184836227659005568199701563550177841927193755070990456264812951964251762129745391668678071142722285413462646873902329207299667837268774611814318843584693364643343312354603083817344592674615019629276672659850696082407006815490145583574699337164566673590125191977223909321444323246836289938144921148421320453001715265758752770585903962015355845414295851061220316900793578767886084260655121381774100562589911059384263505533276329570541488138058893035954994507269990610620001678152144564115529421845914069874895519169657335855754268423669224180857783499069392368960005944086423785483211974836988964381307066510206415846370112486670719386508988549746892219044995822957475509965807693352631705522168606244366444697884367420532581895488149691346296423347623688046829577817384570503200464757613663522368508238069944265759156028051823371523846548279945082019126681475766393597373741591493265130115450860236937341309714648582301031092614974607810746753033220294292139960139335307956628362686135284860835235731905223823642604796426833359073434609925965066538059694893645946164603148390231106940395074877099100587285480959169938172649765950850341357703836758449944397174548114721272445397233339999124037976936937616498113234867801011998073125473991001377981428335761963954407670397663240893174105304012345907526631741436849501972428941521869664590376138050254654597379909226807147453977512273998731094364657670845143460572422643505478332386102917329154745786588581329321193532280379708824957620193372771625832233449422020529231113725026285971563848637287499920650519224402153142621301243502815843572074403398174163958297562698838659310050143813395596865860948774250089695807163302648312507456292914876771707756467216464302624376974505322487945935231622531487279782064135925493720096715069995747292764892706925112674332684434547848677453453775969782197412778966608584948026289040942620152083852157888310194650660409566825697565071867697460585304933396636692492833132691027820645450265907185216529256574011080335146109829994661877197499911124190925601571438128056557659922580228871312631318567744397897525645379812371051282554750088201489869413679486164202504135988151307273203618367826541232919590059327488163617250807607944697559552607039436033858838008364432065835008713146179286140534272406093181287315652604693717960385963937851270707290824267169815100841002796264037979323172671625355189497584209241726971166432749481306022206557415352460044466536103638086868785315487494339327993881032765566364516115159269497530205190051687195263536958039979098673336805563311357149008630248088846230127206554997593030705709736470536388647230316639027617752737685059611636239138292232554325026628506659822895936936221634464922802206709556836861163257688235523508762917080748609681446616016571726984797687467440237824435491752433785809770880971125798660767089984543266582574737222123181774460077236684034798787872449843121513385117892149361404100510303871149482295741985241581271356168595886701831550070298954732258854730284020400440417607744859062955199431239566866998725970691220219079047802454417633181462466275702314608965286794551340778780301554413750853132417084921552549938774846675416202905221259352844908485561088710098561123517636614896066785879317155042650615541359790376905401844410052871345011319165159233623831610933452361015705104899226761384708640164459230802957973773043217133920831736578531753087529108621174878261067877629901369693113726697853713195447406055002315986529658228864070745658421563862640272813896176838823207103662082879949635458392720807740839155733868369221711048859936107617783328199413738257638482737462526280117533042072535462928161887037485185581531614624910186177233997006122270152908539134459548240997221456085259003962537998713206824618215633438835518702814660067349943524995397561639557958134739403848069802996692134752087443369106634491842844616853883173054502181542501513043432370038114971686740728902740112235815096859963312666056594957223356725608194896962636477601313959716022595404837347647308871655550601976991405004742976180748624914709282177256815234648061465555513075639512075509078846626804115053448200502558742308930276838240565489891241749137615833009250642601904735868951712913689088100819813869166064983975832717655119065704670880056591231471443024694876321070533347616068805047398626117177069639346153862704535836379060473168663750939244767199147693812220871193308003749451253052823214243601876779819924087303412436836934569389908355099640332021010865623250490190206714839253226410824345771241889309167464895279719922088515052303946739484445279945192453112174245043153991180940824271030393987827404040782778182257505761721452167285719766856671898429318360513412538180681177774225277670152511450938796741324376757330910562262422178795558120321636243829054037282161946696532084146244197983272633968120410091468606710112665841810273470692944735830077704135608892912941169355182586467505793269656175046740585485168165834843973775340200538491456127457447932974811943438162382416614885185981223528196707067315051981659109487166988617347782295562904523912056779512043587515806701511972210556951595117556760484741986476453348259144248536481748900235364113358462240854586360698926064984745528051965339861567487129855966138339332136123937959344651387965923682063738886235042957966741483689789866340308917327201842026002828428194803210316609792440852230805439041867191535842451694837999594510161869434534289530155272421394759801278205848778408079918539257266514820060022832872939033339722484713677965788715407861666053515716908184209303939828528771619731724985600115727836385709039475568529417601041383262505716252488755250009499436099654248004959241967780760015099631450357852095108135666010321166582867091421336687775093025969100792730084128182841672064575437021540222397672515437628462022312241357811197392706945199386955394199668984194620739804177628989215742440766754286676693945368415848709910827317084278347074934569974165997535877080945651221967291428189712832910184840677285973145920113793419933776479231917243036632357011743893732117646790201248971757248747934702535899558999404020818434507469061213449606420201505356903774493423189239062391113174848520849356248053841880668977149786164468178977553689666445842263924552045228522527280742153478440504957172043297308122772374211585600138826397045799795906996746579470728001919759587414985914063728048568413386837324593133760022138039347060906830145548040762182054703636980421186760254332463006512744644854888562890345344609165673522252471724556984154213555509468004459429707409594551240307401016349671858375231693331199234145811456330687978667531253886530724721614315811403810011269243454511951104467102318268305906403342641654739691974743271678814749640897622830323353566006753298409092397738879483502217290721549685136676327763746318630701037158975279717890598449634069114087353463711873628022814845037345821818263623465463385368642734842177611849252336670171518299817414365742691722357750382727166221945603127412022349548557821128717216333044638685014651313833776923376354052681576420310318649383824361248676850865049331803951177678944750357040627201878155281758240314176903278681803805867033627950943436000291940573337822783704520665448426080775457283718135573451423892808107381887706103486063314512517485138468425244111678455032583133444352021573006129866702772921094092346570548992854714622031986205602132398442024359381950483629602260149986752307194565609521726387911232676630216578414202799895238951976048184657794309073669511902778629608099113891358319530542068968504767044509360785708031835267634172880726695801159179127075091502679203871785418160306228658467986511125974199088782444605776692191373648628208469318804471469667028663102719648642627022053751080747699380578973695112617921111652410976012989170544794755985681990579313778325235633603746091239463568878531755669185901387740231250412255005830962890522245340434624934021659117675613906037521045038248107816611886303300244252721769363529226413033904679009469580379217018181189199189340001400014516387896826657536516190534235570984017781356704291253495239985054892015947506365469046190592863623176397032238071236757450675280358770975754637563356291373487979153357668293926984239018827871262932886348080677665165815253884325643272983758918429055321455522970200668646626248878361751019903297307215224399311850453947535255186288646459497694180309457342118806669473096821909799236447689752145214770693088221586226150984877309309370987320619371839974990180781409498559181284135103160806397775486612439339344961152123538452801539910184084048665076047516632926887576721992907269574774042707843552643146620593365765771078374592528424489680613274236122062360407559063932588863049673564819204088021940474261974626776195162397213727515462783389751516118788272648318840472238052037196431496737059883138548067766469078659480195128193355772615721269546894083061695577097308034700604200535615184242103517818575019567617875996844124882608811573244776509603543314827475689989432809625535237784952223812136308810454404520938140101331572748998460458133734065457490544725661767953724633153734795306234931113280435555804800782802400720180511223370867917463863689435636555876316477832210035801106079166446442468216005649466558791838061906988690271515819472923801492030904820171862674204304607143320014973292768762493387268974903734389115453881361846248118344044663677406404254232101119960357668459826555600399965729034346768962863691319457917475273391608115373084047289513076877137997773315316542831852756480013299734072615055231418864203726591918304653949427240654156289956372006400921201754273991002873565407049241084014231468641199405430256525273324007923388462801921340044738505162890198806324941149629964245024037798071093562570230209550664465833017088411547206381645304731471115388154638811842090152524116511327748743382152611628960142459648086411382215786835657163073510892725125175791536648565555737582398505181070359448952002674893916128476179141008899903987313824700123028506013117473783681764607966972365977184056010959102158856772107882444719929450786951588586369809584506946065864981985263268149619329571152556814528995236819396717471246500704173310351535559218325110557957281644008665837370452980364971640591543256190302353092418613836677218341705532517224373254648446287094421000035970121990168505388762878227685768873014866344468045302316429115278040064471423292756280873469765102320848584404924702241718193469742443273151137945334575975566233999992066182212319117207876294791484986346046450110887242096553379495348329326596799230014436248733381061523195436748337147708172779431575085075322177715154165817770756178901050676435747773929245234318773388395109096540734813240423404251837829577818337113165391632440544197109767324721049936123693669846851200101206330857216148747421737824941900479737991862387325994865845058233901895662664214710122965074431495207879371728752543648697249503005684747606598652579924665156990849236457013537526715335279151435955344144752161123494625458180612930290830828404083034553304921531120793927163634140543037876994094120132345483478747418062910543116189994974877679806863543798281727336423926914281099474712580903607841981844737593262451265530105171964855527607806990569967354859952511386051441133619952168326390525635601760211243304696671224451383510952238938241655030735708602473338122426600683993734602182370256056661545244673471025600048294191684329726362570273024670985325050378526845816368620896371423516661919674713403620179755639142604179775239212545781933245985890460880185244931115815638509737686627204169464252836579229891324973785011469245680561590698383103265182924436752479617802350804536394180817727708998425834580066298248396393691086465621526857262194149082472785979375607232484070356066319178807584617151405676187004503114080899230728180597638902657867291540707640086410889412646772109101675963828256681943415002671760724825372072662105612258321297164357269381758788191859485444731217272664664263402666956762334394581312255264553312821628860335713408581664688703916586066127703872817647817263336971683858569241459243600599552193477152624069559688637965827816202680174877794038778696841868679816694982162512847278254766308805839367315209200252972732691626046613298059820080460298793209708205924369814406189500438111980276860916444860440728074756306987322093529247096101592925934556242380451846545331838115516333564276090073431141050441790278861488979029021030781761073993148926543275215720763083461603357308815461342992909166175685558965755285356657470247123187611313757784796548691152644106695107802454156444430906336140468736163459445930136767604165325548517624573576992783638655354394758218297583868718022979052658795020440385108350753820716708755021235864671406235937383476317686902601127408585291845152255679650477167862713241244883191325813868467166292948447658662743844074124616310497606994015919760549225084777509123670140758603425225268149656813750149530870895636825543007404916689900053521738164017121907782002957399441656305009232226737776925753295073413355392400598670817952402578552059114736408911348958994792197268724080041122709000446011926516567444205585889694370015004766093644590797056456572150848724785288356342819114176454070191010164266721117053602146455070105225896353280114233015769563150208099269867827398086269238658362009135612902373939281969929492399025323569866068607487547461499345258649385000916679643771145961897153316533273244979549996515251683828700390140070870814441739239697650185950317606631617218458442284077104001036592542188863941803700531900112938342517152195036503884439661871562737548358609709018796604870025226250995475292008783500216603453964277170411551513328425719072329276514968906316735942685480128864279394097929071912741343701325875265766057406135616819305128845613288814006297353429120314092673510701406731378523457179074453202192367883886816035236300384020650048321614651649126534450091093561044786205933919645627593758719068253471906623287533533509150421416841588469564453312523932939818139895290834192257493522692268881527580562517956740398227712322798011329147137207107726874800038040430025403478381803899373774502675977187688152598940088824600987205412968881366052183065590119187882179287260924697301371457845381160907022979998559484151364178120326988917802022970720578022626802719424800811485192471799358476157816472602684999819601247741976711248252960544702550658718032324483552040052353737564302701385276189238286236281121107386128138416606410846080595546578229970774947230241494861323862122704011386527146078262914248665610566097046445539703186122287834622505755676195574855052272082201285177867860174207867947272462929742288640880626426631854165036621357382889631480255989085104741539557114694416228095195866941841591814103739289311709346398853132776166658846377058676068868915691876090135508709277853237591959280903431316281407140141090618882182520241257158848578290204265973553572046431983962811539885755478132362884628897036826433997131404623780759664128041338980723559573622722268877196719953353843880845595357910502144132324692736732854148974452677451054138582000149528512328312707964149288948413774401837029672791314854871645380982062141072206862654633633478445325665359365415204388608759575924229531043043504092244073938771514698327647614975322431014322422092434467301670806450456408208872308827395490341581248940224129675040650401157752639030267196188033234853741297224801023800068561011742328217289645220538709335733008405408637618691586468758268122568796289141113877113591921357385779393116435800841889673724592628749720274773139321471250346778204549931608341342287795690766022051067035086882114930422929430191598440776673269484335079881309020656963620078623780414862799301283045237828106145020489082230890916263954242897891042529947253169379823987982913669292627060763541005256743724617313232559731659685801481648950245620671640861674049967757751534073050744737178110514439056339731711808525530090317930757094515483918289692213842215745916654315970941331346487866494489047281271159300989831767040572865305091651431828245342615607827376189328783488635502853319195296398169774878254053783629934787610179869672965276986923920525650894934340991868243346062694618802258570083705538739228232825821337995136505152305438783424529682643562513945163629852581672735189706053507326729891877058987825002549136983337856018493462550975207177694492482209205946086442137018356632151499704383232284402022010288421700146779398885435407322002053389261579531529001422627386744473932085315843777541016531732089208306391711176356312141846547995061023475260838335360706596770028069840778537516708757551319675441412757858388657675450033909857258660746075643225166108288041049051025335669099086210956848551786732500964839155098411037388674539326336571485934871570897943759319262706472201467102846403459910988532902814944639470015143178905307046279905454433909018645342922203275139328428814184560225186220405800366258863726193189874563157148609713936942001759486098705473652548179355445126432112438554932384336811833140112109303085189584985305396850703895353072554086819967055120537894243417733848864780865394174850169059067884135471663946080882762564992828309095851874988896991075157122299105741318764998304666783754277792810148694753720764538491401229360204944157453944732332775878510675502612694241514815958224153565667753504747378720438715436025925042289706161362544121765068249848509124009133034893828078809653248549077550707574213017641386764318029187368773949663634171231185050609350642660267300318688164759152466479328929255071825689677858491494309977545746364103134918202867945973993131764500247438565632403669882192100497961298613911045177891329473659808202135543639104359971524483501256754509777048078599529238214090757471124227526875745715172607257118455783135054083599613612364696182043821050021493750867474212339138514617374100429137025038524884230097700930070197724513954608005418891411195604897060825175632474668792410874239771755327123830967191604180845917238543416107819405953394604247630846155371649946522094233394672676778392836736937135424274034348908303407807513539971524783245795723639316094490566808790549822768646505394621751724240012430167749151009579756551753509456158771098848047527126772838599360140403800310353939475738774910176142158144215539394014388197700685370948947343360404100777530288807060983816134940332212212622871162510398298748640075696379114066331070256222011419625514645360724600034273544672635977052494711661883981415810796210274045271201387372275294278681938267860469623052155591506949054092017298538065298191185243923397701800473465259690173495050658437733320169560959701800900842422563421704923833424897672827557544082858791581983450495880680028050046475108222463209919218541351585917762663073831043050502715452188282832541005217972723502988515748574565536575668781154690291325453024016487099128652280884769745662884984790212275134718853552049779383363054241547800881400910805580702832798138917877929779446395985408634121236269642976726157131730043185205895561034879219942027783771378161306252821084709934161021218946541506605244559092143821731384353467846436405343267844645908327247887420650256884825681936269745605672963933622777417904026548686774469770929962008637141196731237278337061608618221561756851896618029777868051246152408198015632776997998066540603582212973814505366496520412922283804741788943301577132842215489946200422116183689868516294254519550508903910218631487293869764467842219067378576704151428856767270762310116251900684607764446236763625592024647941850042227340694715418125171459083138286899108769509726756084866088513579533237580563830348551967815419215429906904490949907714815598794463524272750997755777199562518559848492801119767744922116602654022062793264922922678649479820957007647928894457881764705671126068066600013458018680690609607023757433986166019420617654289952878973814682167094547170215579777685881508365638568074078052948927351510213941724376885427710425709089693803952287312771395619312017194805162706702736051228263703574428495416181429779306678839076954584295177999733257488041372560348527213339567189835820670636862574773672743600761842284828821630412264869333980868470244387583252423793613261967257586357679992035716563049387685953418143813531642204755140646937456074807966327356681763774356869809287973984766326242234091344796167262771559613817222067995130263305205786592383420941127427653749719221588254858358649297817460451252899517252526120050159731996328255253213229514493851577172775166366550095212891656656186664782992081924973784889403133674411377900559883686164858851093329176422436133578791286767409657547872705742567268366829052076591256488494202021897211145704539621453076919828905823373347348100557049562279426875326751353415743131901037911697725359211615520181957554387089832657064357074889877638566914535287934363990756476312269567441417149924990307506639963778648989627859896424397623607224465680708455712870514759019534103798348115321453491472878887889300386774007212825808215163825293361086104332351311689965247944932211020063493500409808301468763975685725834811565831226043182521501275211064024921376364397856380743568754145600390935672316448453092967933733033914414788661027796349915661599423058228081543938735273194498030915461673020358360124124146834726370431942983807072583233167020861351026281870123072461594734614870123610598941904346306495379087009559259881384655096914888668880793486439720006698134962349106746387449137920504611752333120170353478615371056440511429711248562296309229889033078638618518279598554273229382745326271406110648941158599304656536778056796665934394520958538203276276146456258902874972336306189206051685856823835576326191334857236790596160382742837363160779898673041511959694147895714257463622397490098977842139885927234694725702655320360185171232002242870500504730549956841066148039503625802417728824404512889526972337093713556188253699487636766717379263508937563394697539216400060487766297401914682290962635889023548184543630996169177575784816817062039344998101910968811646283697080345966101521795255203828459965348086371355506545158402270317960084954169888307477947760097388171869950436512463281106872973824625498974728200946681013152625413107129436620229287961798297393237876722673704219542755236281438607646024968911063541163224172096240535460865583167315594751789163648841267951060187923012838968196146596285129215423550607043881636294029282084020541874172017069935422882633103546220578829770550297302139171668287310755771079506300923093509182494433994705122535878914974064697705484013277646588638299057244176614123903300527856669035364878109860322330966033974618429231239104048151840707140826733539730003272115206503229742834408227998343271274089542227467044717043764858945529939431859434166245939345886887206198436542960315650586558474257484852650607040889449241515486598137303866782846711368648758332414011858824080659829786317446697157621561540792430623442243849775406850123298264759458641665898828477883756248927025616302865380401896982946123953433814388120911759705872859914811874157067551139599585482447186256482482494774678155285807354241214059541931497243129331997740653723044513729302927720969116182362196084733582268169995366005469031734003625715719657146207078373109409054646539125763042819739270141581378516391896433539254739259437371139814310761127481394661863519894146001752798901289934687021393896192793336153684028639205861794721518513435789535753880361170997899160294545444936346635050097885905661510948565205572166983095274600974277983949881811218720193881330049534345896036473416579372404866513986284224016839538259082800033623302387192531966889086942461547412642284096960180880103537782508614017053468017560151578423902101000088807335866862737077456376413350439569293540922342132337878420671880502654491242136855038114311430283611614831561391715402498704697963719095439588114737131333999161622857278444775730029500326716078916536978548268361738472248579349083834236084435518387077682864712878397619106513440860192870474733549423840785018403116875481211667469215902898669922614616157412853894557230194015477326424434121973307748155004770868149841433955408167017107079072201478263686691139137873035908510905112480054674232004023301250005522319596629404611175805812512038525866137721436419585706645704426820532753586895892913466521442241283921542010753280940959407020655254746338756454282580798182300463810817304280383481946887953664224906546628969084689664013369127828361316488370636510469494248815204700180300445557805518491457683606198138249109246198561253668758528096621991998377116750048030506730619076208370398383522606544115594188227723256677644713580476626220020567996772039376746377411844559623154786749539696371409243976900511104623813850152377153621447120429010203915041406471541789717646793719942387684902146030926770844408587028848784936972757994221777782838280383436219632528430769289745489792564374342645008953327793612242694597810844270008684992582008956648204124009021909068390605425185568372684676644037112144196942238456264077073906296820368723120629361414539160592235540985378095518706108144635702948701529221411153128398165549314378516669388879483154962597790776529298354135482491339145029045744393382209613738668116220927440037972240499164913965488870986150421010274206024390300586745689971744808673717286961141218449208497016343301482432443796157890134946621432663908149685473919123003023248409068006169679153513904866543547080670042865220621375725516426620603752866938687647336407755357857292010316542659461688012094677185984564698459662016715211991659617417618572426932987772773258637996540877876224168182828597726001027271080456985148555130400136395517369905861959097364868974287090640077366253401199695862941415320795045100720555733702510542507202272358132220195793603258092740531072883572250599986266668139065075472969731986479272515105169205354715452414529384333589265153752343497226267445957349498280326053870630233140290616382263865360936522702515158855407501871991039974900924136769939023612661981999790993165724731002200946594520688691617462945049118449302477402024780437013687695067987029672617568064203403499672178332829533363099773522027416968114117242624477686271321866766550059909507801315431600493851345483492656892096769587457465759929816699247332222274940593925831327010810765243232948761795227692442368973211347517319393005270618986472980720168469165583379034063759959618805189452448019575762668248285824950559446036280529931434468619569088164454382398169425686309808817364502194152436148087404717614368915772987561795675785392847507858558043297115375422828327585741415824326216617609959319890792843842109274582433716706682701249094825634048039680237947561857384625885204890543334560118663731237320754500756874515795475328364383271060798608839533356716315583530246207791205505717948003597360881107421775051043875491266141361302964119916770763886078986037278574815996342102221228336600542641601158066250208514488081974348413594189542742652925208146537165179849684182567098801561867728830926757212527799042884126283932218290973734055922227717949164399803004398800003867321779357857806195367812012871719865528536371704939474359388561610992194344489936013102860817296869225911914786489873693271480285025078109516080038504414214464551235990391211344618602015825812920791304488773545590088930756009703925662498156024540094227050031955536041000856798549181223398520549061868663851863599964270775981132398284934674027901230426539478509841006798296367066620476829688422725333580690747303159041075925354606855112961608154041786191073928723794939031840916174161041398077722441195099429277677527878458345800640844029610276383770570097872434259963206188943404582839992575303243009256489419855244810913596370823755325973377488145985847270075953236617989188077711296553669581850620779252934784729032926888968670040385269164785183977268031416897692690850175421997397260914979127950077211105178835407590481773193948123322057953741977188454899758234601194169685087841881239254684705896460491426334196863480632903652382998934834584652235503209069944544930915848815398260940899262668362126594564218660925929489930890217021044869338382801745977203894130578315283026146742460553643948486886510695919096835724656148037130593897630245874091039026968129922927248716177704698291951762938542510468718019918367613895318552434188605871927221736760391923971113542400157973368379632140853831255962328453804035207594022369559128617795791804358125134005889071436750640830939713461550222840090855923848066016371544899424194766225856874372132078373244015054404952770517073652398804973862516577883770075191441006592355511636071506316891523571486960212131942805098427898002071156660778074745410737759348811376849444697274906676643043542331554066452814131223199418069937340421796002137931509793678773872995335124790077657938624310417702552455590031960873699541280705656932959271771311437469988501329696910190094560450577187556592420865350987416171070689521344773558272381411611707967570586029853505144216504387256993041516054571905199270627337835944302634588339594021842868899376364084413847035075969457784325840376499133075595326770353467303189033981958975248569509038640904614720370808226744286749846894439922971537088039292947175207745479465371191037719619956196480933504804874088136364567672475822848777502257272909533460785154079269391913352953891535296465813835035407956840291492125118133200436929864311796067568563261321471697202226235430141921231701909241935956988618788492722631942644802591193555286625741059991708808578011849379429173479133025147942833665808302842121651428885733315855132199571561005657114143000317739958029841008612528343734070578692712852483964209597539073580277237062206841228538320835347218060731025254700035673197200165419194092057352982790589421186545597983058189498152542511084617822575892055879840124682798940622895857776593266407768729586084923306850611620284450879997183191529119630201311119297836204721039213474002994136404739486875483644601318008596589318302197859591162840712616070680443618037659663548530397657737717729279425017853216588043225287543303424182430972137640353793156859934424204795407474071219530170146579393951039945572706246759389801869512934843047719473188404349630223647979329175891666324344283432140748984457866546198291193973092260505092433433943033371729813326221043934284667816718042562804826268664131845877374269353390762100378998323643423619850580541815878597612632653295947506542167157535096254049856853930872483654448266040399944834566308498267519344888192612561418475828864471368253451529001560046084724437004159544561398768815040884607325533109914769569010005051251339696153215086104013741528868073832439038316395729641302521411153783522038381239321341073075123791257495938505646253630585921629699319940041559246004881297343900657132761074283938516261503257916525170144947382074399202866974606764964025727727925126815840125167835637105726390901779216825909904785849902714888661697746322202284009604455725709597024817512228790253273318179569956265730312941343876368061076719369695090178464303460717545731708131776005845061571028768693401020898006829561661487421395103546806120819845883281691705530684392522750023206557347702285087280625159733707999428053109446001369548746373768082246841652839668160079480732473552518788280048904113645696541482234287592104144670335467699289783922118823186689991513114435295304765906864205583311887661375954740802429247502952856032556504940106256213143782131715970248213525318675850599815830854830698068567878816638198896139421936741418978318845869687830306931099348345674547563758731080867861971736159341254365560368895598534057926078101819585854124408633320686889511746962678387910033414395287597979935126010485393444524776001852087984044701704223531481160235357849483599873089464420391481672170659485757047210470390269565962559479496816461245476082157912138042174491012998228873646425280771425432854279982851211818759729279271827213432679290466560850732482417853635682994959271646022938309704431130016974921239175491477342014060286856290339385800250980522611696583052043467658946539652234632089674470521776017119165388980212867291129658105539516635034725183844207434453451554486532083540025842115425936153122368879603867203706441138523125943112729692433826946041507591770806213700108042784151216848988404012460576043297617406638307627724133530148268828677064036041270681846141339427165005670881687843698372204171478211460874664373487102771532955799307385352794082023095171698170033462724579783250670970664716002157445882311043655104871290185172095129871688535159164398178000810461391840466809034294301242992315710555459871730721802598467840744562446248603301920326711928397175633260790976915649724621767698367483018883374106643145205890644945166106360086785020618492656397760878796909310229182199824708018743785203274079490060302554050252676698014369666555273293125694081780896241221542755629621884053765527540011422219274899311002802630409118222153954432722070593167224521668739961324912001487374012619813552846293195190554626262097634265022803530197100414300430447462023561410077973385600708879100021149587955424640199282360810024983616728652773711264680554498262689924138851097944924257706039227241761616772520970304769770170303296579557299904972277616196374760879102689706843419287003325016283251265517620641885440784716230319288893966672158143355719019487564028808028201857194435173633436856705391935122105663866472398685293709933601789099638537140181589748271770421089591287615270178801336059661522449003300745703080939107915530932360900103221669071472113479687285684390725561042097502139406181822868580632029736084233746499790509191678005575864005071109022713706888496639456071206517731949255116609173527417786017341214631898672965939750420454863112411821649321520963117786726557521269392477861621624279863455516401664940957997508960207023983648330751724757258936970841546362219776911219754626172252501779067715487344461334303518611311100124220838715775710474952408751540863075778705670458305354678266512308096938950157724867320588332416312742704789786560120169820470525395921891114306871182589741585068177519909342499507969655400573861252620642279878229877220282049140706056514113055353194624250531487866267751864576349427167484049242616577207430230567944456932820378259616011402513845494350213942702198440478299649210877360725712198346861070514680120710688206419411799921105351268194629527282786273644639217918305364168475590795721380056916648581760298746021853791031478423064316597629875844214625197183045939645471056642623705415005862438887926777083771805422681356492554003942136735704783785316276825622327227561264970545207589867701419691307745966545711503027910523905793617683595635308220577557565883173017509833109707628668612736971883877310837619598613701252726662980828847134775757088935878063646997841182865348116246199516012756591670396645636276977487971448836084016248905321503551234907499448726911392238427597609472751799356386824931994295938906680102569744395049110827449350335283550409569475295414164360426031473185928376962094042636362404095585140371028836348773360165748053376646114164393874453182874949636311655190823471747564014538241414405219482946729652837044884325825816465064783247004865724002933720278654645780325224815378460356435679060236467793382160543824306029309472163958551353293791016231292555089233164559646178532281100785007354576767016331733194408005448535370952154526766005512184506608431756136922377994207708129062653736991908783000932504261042499555889023442511358374067687683075222975998963942528799061808956531543895366151186958273706059629320474956205596998802208655907985432514391152741719490144304108356798455768252296201669679643845188596899453008901265081720245658232262818446621565533276161035705919457974238974662132366439593256200317046649473668043613114881702913018100711454886235257077687445731314830864824081922846608677402663798774391569277567925682357908946692068596827108312084540389606813853197620285364832058601912715809473633338553263070801051546136460299378643887723780813504165288901848167585338443163469565911833427140839835449117383895461481021609429114036435937209431244539813209513935754222583224116728167593977929872214620652142166300267105516273931914778103149380988540941644031109271288796087553173815994835520120944522457042869636376764599747036317925533449318959664255456284912252004373217020620998438556891071318206567131363607620424175407838107798237095476875215908758976877559152312743096016837304113129062076776213540682448514608406791694820438633373145880995426504907043892615112319127421568344366178608350252260941353478742466784196107016059763701435520718450182516197670373023547845152700282643258616593614456380363245804700843499035374559555675864940645483106291629905006562456771887097933797242010348945172577540675756390464535201644107186829976934689683990886477863059445643316332398916310747046543266615972499946362850483940524323476839950956889856803327005098480670995887531614327498893057603933411835909069231482142163145473077075639416940993769423904489447702924054435798525202858787001691455483721905829980111633775294664792976460699320332576816493957146082246814465150456071860058772273677517312239773413720590271932800531335507604728090419155840126899790853425760483817480380075741269146882884743602340607479599477582369677716472214761772286448090670234183465839461145470080266331507551574758255563189682842220352335153571335027716107520095779730814648823364759815533401001174230255619336222378763874884714398366295110973384969088879178107796834991418622740973145390367362229364872596992545198021591686030851305995982419793145907558756113001388519829611707277175663919277877011237118260483905112375091921545551728480115618422554602954565062451545859107119151503278261367775155732590705783959761451993307143696467042112036862895089181114568930027083149685687835227679984241073867818138634263207736297543488736501265135227792368494909701411444869737684962381732032446433664846541403208818273784415264814795163231902922414012161419077349579644959152916834786990161131635699774128132395959472193598770686488187801032461512833563755140267111145165783350776481797426946855779613030655356900026788193254512092503399975659939283659726122930665984420553731920461724765114828189768363130486798324110840683353327855552044057829436229492432041113981267925348463737668606053391142618431712950848503355159301324322550841846117162970101048403204356844775095203803056706915905312049270585545483662367732067477994153109581812353472897497258220617599142456649074311681897666579783524296199824134959408307916758244975451484489270178576128909669755401666240557634679004204356763552093214459052478348518727262390321895615406166924298675054810121054847928645371524916978024381722313432451650426818398721988175223816619805001877645786877556853409814440156856198885267266529310300144518078048391378041629256435382912075847710075446701692533139599423231707152392917081368081750723064963664949811146302751647531966745069649137637827567262834929768948828177736614990472836321979827680453274382748960661020351390160422704844350000376607237529952469415359476853252695438105938358253516794802332986788621430330298774380959927015889080154473272221005748419653416454458365935818294961357884176020466250258601087843001234642725857886007378228335855329585534839680330270849876716793404999409415432356295678585275320505780483667302926804855038112413483001258823076287306891159923636094513334107300932162012975612994457681071618734717524327748079072744578583696649132108414436409311252832413559547803251010328484399189491616908360342757831536109520849240921051432419879052397065966942663411490460627822403942736313220030386662903246722600890914274181413625967840227180738401552919768103306164740605776522137776710912272618376737084192520443418746173569949408554985785964484625828276554845659912551511620138307523899265159398671348015755925287887060568962025340938348692048035455177009081743813601435685624947410402142867133730475461191492699032184050507587493561004342152618887761446852578936485984247237318047690945927559270817430134640401826723556451064647194996573633349939907949179837782943848389449786142403672744662201420649248016495912041399299550484887686396390675183288388064361974017565279841860683105547683437337553820230185604544333352573671605158586209056709553610354199710212326549654366926104956513070177529627296899930180777539072857614424896885202320063511329930977504983204913674167723465821313618125858805906843374661111177489904550945591688161680315312505546843415184135900976073490626591110670719014926176514215234513025307344238528097589929421959227345012663255889739866570083845611184251714184804791992105844979668654023890325154517955328567340708704270905897409011606433369930839638189327130027113449774741654248698075096137516052624075040981946491416199130942727594124021515929958794468381776550632582492034645777395929853227830531507600588357856664840131615876743887836546218985433039563524008761825903905040294875428255772065256834995538089764450214632302842160014106417999917245316801859577934033400137236827409234889904276890696100084720740539971244372286256176106768831924839238961742314570096924668940804004322518244089507401920702226155781647865224772252463596162752659758084029319597804511202849104552782783274150288993523358125172980973295984950908613197040242827237568137033789534126355880175549211251666704135262106231841950705397932181504470158639047793244622237260417132333703260865897472742016678195252141803562625214441056277446432801841878788262261981040783200088024852299731781673811941090002522038010970908307673690736475413095698400000369599806574111879218628583249751000717881077251477086913492616340586085350561421352043148262445588001225198756764708497252707576862276601065756108468727999827849496719027797955075153100358944949036722321502826141664517741569298382333995534854934427584277371915241465365086750555998621214643645010694223894412941797571501386850011770245556199137575538968005154237605027420459694663304135803467976296684712691668178227019225467912928086524810215959020646875706089832159984671963107166319239685821435748940977788207965535532949747641948533118069667812915658953300503286619136831293203745198520699786569519486121533608530138961277070330884674575943537088829828915189800951303187477497225481587641105230207523699216622386567479041293881309896773570793240561709500248312300461231743128688386316604112967122949106791125637991454490386343868316215733307874699477818247434391596071088931985700561431751905038472154702763778912147100772899817146861423047419738893406825911442048889774899499144823883531236211821062538129676102996969326250955773809672371148900104761020473285541238586746586609255370839743364401291340011042220802803581842308266609600018227421775490188477793444164779867702295893793277124526932020420966048406403098586114313802074831883073166029598958536774334685181141973593001996584110066453187065487328716638775425627397982244092973553130296783414898437628464240788750010001771470251470768111925021418954957423798407083136898428399372565451161429180936580724946230875798743845242130088953881511118196785743534363569541177465190033996984624831473350148608645807482994176296443772991703206510289739362700174287706286570296069156547805348296503921078802383162304109381648978846643922412885483685456009783340124872450348834950476501212454127904105976141907815079716512071970672617012962846691369197056588518767613942666192441946428512039885048859935002076417630618129933858121780761081230343213587783158878781479079930320760927744740811252084601251494331953243145345932758651929659818856029858777464209865443359080416565121086227431731740222065872917459026803048877906460897112698625730815614643954043842353943605049418682614012157656916651941456915127646283975255325024083476123464730349042813761581062457748177774488712436085037993865318680690586519826146202971704286906444879833860641938213978076111811774276500086255719371832226864586677449898095708170493361785925882748162307359477147470251215189602844785534105124050228233665159741141000368493325548902968203824171789813692239946394193474909528180670411405469605686931375292222722203815166494459786262305210551334747091950027623204094313259634144627921416198041846936450126246464960037086343734311327845121420528123384866105743446884549773723397809706814995627563967912203780632693251594706083560972608568273375464556531194198224047342280611409670588598752974005264398014713801326807226815680514515888622155845924132151245935333731432650514677025864593559534260489782175561894776469523230120334301752294189585974897590480276566383303363817286574577242343567172901800271155960980293259412422584759173337736389479051562598833677725286061598401099285814716296614930711854030938127512478907451119302761539932998672328908155752603859528420011715203335376199570259470186791229794093369567732353613184548944942987249640190557644259883857407260916191737112530167919569951309338945390950416337138738553397055978559501786577037209256536868134297011357766862211587558988557798954114775126933125430244407302133620315625009041711384155358315225550997765905799097548341261373758515729300726852228275723215754233422843041705754778007509003123337678124173525651945122011154580586529117478483472843095334093392593035491143713248984060688689219302039708697946700052559629956559886703020027481309320827308178494908551707362179649198793826952088186621415946238277571065283835602590408804952875446052612405081890320143136736802308312227651325992012765967515815027431759843356182109273706036974604763258213839600989041308581503147542902675123448433027552672002638485854141819657593306239745807882630117944500988960473315736530999081808787978018018306825846309446422480447357289979800976398107913562132385126257951776846963720391785565584135961105441737474705427251502187397111929682227503504763005126836211569468543959863109244112639012088702689954130413361605000943316438095938409179444237226252771638724099726833892481815007827799785165318643033844635538469218572614165351416740005633372200080750068037029945358591655980642472151375162138010063710157417880072116689651862307142447054929045520708454912750355573008098233211591947678368610217577759770380626445516670819247285816733167866973351071445067675663450424807100147139438326450671747193051963239321708782134420988297695490049924197140992266861408727809904232939142496818120779718606058292083430637180931309076321972015489212377000299732775365783802457571181816369416564981106579304469468601615544731295650100666740248870610791825707108030032498266611269708506337268674570445550914789708694933535462626323708790880499823652557628299109834430875245675781360309300169578229309237808720558813969525613312597585074570451094394301556029904897553829113944707109162731801863136052376964583157897949980615864503125524586930502593719928424785195960653446425090802171881104881913788725284149457322913223676287762552831636609344836142750844468759225740072383972036589266183448702168682990830048722521768006340758562902430842434291097715729238896276403970390400408017198319627411129855194365749112972154201013130187362940606734414002424922098680296333947673941129593471639999268271303319763209426115866600288537821856582494166891002402444715399654937088908095999257545268543183065089446402633381450867464585464838360517217424476250937367670660606068301494658097176381105636143420612429019179324326625634133951636841356418323868746466072314104938919542430982485846469818607622079709157268102529804073182392943773804075319439704421893155752381062791149672241303316561936816312243053539901300514941806897952394945671071538998606681335805986759830007132446246968280443083822317846430741833337208010660331353605798047133747757187012973106667205917613131701193016384398234505331487488769785625885512905225269985124488639887606356278094773973914896173343297927031125638229811337326964074506266077685292149163267968062976061072678455484994534120557501968036644203920515548035827718736466421061177753794135064538841090758492487008851286564492780844710077706765129448007462304771137250352782776410857760936710689757400602238077522411421072284439759360763295018553437450119383147601232047647262042658690943572611712678108281622530465559525484807684465992758837683787599873069427317343403410247082987909999478433151074341914940907515769688449980411264415920529004092323660723020675517939693171300418575847894048003121035716648521495271965881353192346510849195680646587243672704116058953875683053694995382950063510251227635131218246013354503725279743130228148938991780467221376290638388984145706392353204139474339559709194594876070769611220454792403559085499178263080485103212843515432142761130305844825014734409080821054821367304605957026345711746569206212593041828910809136197248122359132450969865891522815108877439685351550268574262179576485739293637357586329001443364328285487456681529415476959504733825295334954137372500674067614723459568253361901927886798785894908586687729376776013374933467605731396584304791596969559158037231628318342756464979731020709436612404115025483395413375723033094447652807295765309341629444060842805345288989841769192106905168017419738032358205282613810122284948841968062696915618204476539886541450822996878739441130493980908850094134656297470910983439767521016322272250205734392560181364299206412134587232682927113327457557509773591964585262288505338475394453539682494719091251296403730294280059106184758489736681672419900665532161479653901404085815847984831462787303499520847562568190110305930345264848156388593046159340431708069184411252777061383637103563779076906749721675424514907135582316264658842702416634818757559309118009002590534345484123113732545603356755968366597035310257090800324911487366750128864759123298529986184724418937035475928331811598517827490383173271424865889964298254134158433771633838924426409730364022364917811701522873413106321149193299398540810724720076632427813690625786111441282069154270028825206088952418461337015177764075187525873999850751118082522875321964402343447823756093608445708660673181078423477242199697749467217855725097203151598755845120856764171711203662006660782871502501890557509762312027862207268460510600879157658456367012158610767641189701061270089446675620532430357680125588004875766351226889880761893899559658151303941733463963642412844286915467538607526060848806177847509789554129436764203772662750162758791854580135445212717123095312700768319840626773404561520968129796710508339193747696543077524706345595354222179041781112910575361451621086268262074779344328086243432973728668285501254729582788161595967015329126064940988040797791327435779076828494733433215793616782194486348847826613209915461217620274821896858074590054004218140301554287550503447153599211899254953642733246355713926030451535866007853548346510318997323224814149459558613212342659978573481493542938902710815824845692491705940577293924784480771453165702635005276272579537620301434263680593229487841407690963187313121449183670387533029239121132073748203620728875611521358827154991279943426591970196520172022511227949648064911730324481520239936530152098485861280813410426668066284248187182296488247497769469136228810429421309643537285806987542238410867918465873886837592940568742225717016887215096291828638834720098361466724261868218997903444096014062252758927313684907312656549804811144137740026912782106036935227494575932629535704611958284631540673578706591771862874672536244804248098953694671861049234601125339376874885621200211458851812263629640431446195618153514169522947345584842855306920734897332577438403312222823971914560006719915779541820673091260264537051283576585683394301001883516576507011453267255208729563024734725212455558498962463394337825558199942864425544027018930873325773152063529120074888000907682574787342260433865116087463788689099302099383288657130003171812515508261472739041846424133154751639149486230464844317231941539691324402116427805377591979387777545838212103509289814877791263823689049298403369086351046833180520626560540570454637210386064257760387999216500585816326698953661610400845684514168831647074788806723458186887732193386241152877428337524505393869066779155665346532025304336698916445910559725768602666514795438076632139247845586242978661152221757930328916221529302775020150976882896219897943466464498273529281859329362453660332442244360133301036557842835635897589194718093032297323506753198788200267024039027590095800016233474429639376093999908353000931034230651527500304293268636777065852913214544248242675472118080752923831330687084430724950931218211533798248886520924923752261245447257178844019340736170223080963369560883029215940457496069559724756033151895370740641775854171114277225353630288617121181025189183157302936214637905072102347428400642789374645090277945268432625245398273456542641540418264763671165655498267125700608147259020118777999994327767482965091555516730967100006975266817759677843496510987323246943253601085592379402389904788924648954824802075834794247015911395208752511434074818608387549882050199432500621217090772798310893880361695585817272540391422442489862662726673905291815510690528013550024813077022829108869469822890873635553698344568074143523283003058266536298739978544691129850839637756799536235174554853516618235869259232937775204628848230147272933851428691076323731362059713347511003977097947295542809475211095182254432921468781247310964163317107828036479920624701033117525109929699825771825631388375334715459742791406036832981019953316556110577023302492914226333437155219767458813733130629117728305948619657686647584862522796267027977619742417568282112412550653188975466032964941428927329662806428702211518800955984050962748168435980221165029414071554069693537143634749056479702075862663884938546121986892189562463638897427711377264713720232828228888145951777050026810286726092635796796981196320888132957723386276748842057413943719294969403531863567051277004775518036240427319636553965740973297034556834148981858650414674739966278842072034113705061702582577092309042637883852834686646169165924462744585741070985309097797074728232013906979346072436636824727858853100433921052535460002922228681571054022141073209135817757227008572465274741666100161547399451433438703541781601420379476091543329519690321698667097097257864339466887328148790904924868393293733763753062142248927753124392739545650923862388752338589483713899159020755791220813362133272894891528973577876098564347806303162938522492419659474213203503737616397761444800084240539316250274359856107533603885835110572129109082492847638275184437653259858150139037924140852088452977822156231408775434467882075885956764744198467744409729783573838175738090701458669920677797808873544002284399323444872879464393564421432843873233178645986235446281569692897472423492464907159410713056274782189231225795592330039673100394656170210469357644959686001569060746441877624583997010654553193050279434023356815182834716417577285525811951671145140672388106745211340469836429919647627285327889218799841123893007580476761122354298341049744134003743320755899459724413578388387769743229844938675334962434540544306439239334468164370934096793084597947685453431954683131046006225782406266921037384600781825622301835094003729715533120794444246290014518652058327919681283511088977337488915070650301697090696817835249846247986011687798411254158295569393382176373042530144810341695084010057676276153408348959551927644190950133234498450620977951774104391677330879072313916391944192847388803134634818607987534444321281595109215560383612395911141332338200309982116153373186157389646449715383668625879521495957305885743576167516549705289036875627755032700862060516223050883030644816212720789718976926760244586468675923581340504081755787401029679371434219452788027848888674480379535100743624243497491744274557137604022434461478195814676898907458419165732085275570183686186945812405272060737918949274784316419495721719539349515103883970067228433428962541082190639943723529219782173765242986837655167726072586704513906644467410399962074423216252122620522462419713295145143434716429513592381557724942142314286761731665647845890186395365044025965594230996271180324198288551024758345582848739279198140562346980925732161988395738133816792268537923454408915325563433128932359601361665841611572375755386275487850315465597798834079687952245718786998803032389493482124865214576416753115044839449037995654330967287508135778109083352138963216544586821570033104918137332001629273312610065266282534092549116314640717035035360559156915089665555144204292440754480002359718948326730743587248086570351235822109261471276940731414642655194502208684550965726710653854342314210024574072790521804857050780278133003413162300065258768380980552363910475694868532555487363390379291353596485688126497202575438431348998208670573467719904168863550421539014856363893599997536874841928156824394968817382624703873696494440123839691515544224279057330970861078892064921566649988964166389599398428200944238611376784643568698126492772178318896663384191134930572550031682262883824184817954756099916079233805325904873082920859409726692888862196490606753306343618145599999043092813403074338788117385745590675809862057092454575182221896865366759679802555633481951656321736441615485958871583616995518325812569582291537383062757131667790938949468897379541227903488316895653437852790298632679205320981994936686030768337575433295853473809330151978025209617045274030470372947823944433742392734303039715224221008104099966876131891902962877058489222816826764967564822862972683086311989934564630418724417094668109929981225111641313092406696552325125694429562063035066453323223235746291038824750350353685289431212295334277830079207286096047446873812624769698631347605139067448732368257321094735359653318231898433648354964587544644590107106670409179436493593689678742386026436420016146520450534311237317497760638736500273719835738869906698336658438800467591096814135716349529803558189193566171906532326670863595475568230958538655553826443856073693153394767078711855660299078007459849564996131385465604221149159747940743287350138943074041033444405338654711380598341973261062773211370875676497228925448188560395017883015882158418378396690426870290715191353681294125015750687495195108591869813932705353377622843715892966775048092968832187796199923311452630489368374244914653885479485503651562130741772422370959009291220029707845045699888040467780044953007107603717202951633612720838585979032875381786708811649163634447010246292323302275050035371030976912693423227897001347389805339540094426242576227913027378776144400830796666938330778014685545529476713527320386705250040083983496766986257461411450085480589338855441157755492685324654437776556070841643989211651202622524312147141970887625657117689098763442767128192159192335515223504569035164192031354819637603097337555982167259788942334552179545288208075580998057617311147192879608222405355162262328842874438082786230991788413145819827311029598673247061205566750458576567871703590574225361355101482368039573299553899787302302005642964084932193219904420450953012014351839667919872190239336585851933609631228499028863432155570460932490447763116723807074673904374736633460329086293010004262537304889768201272611706950775572929194744393642215650688232517743876750072195908405609724341221819671629756015689052441368005759790161410414789748462525407222958050009466715311752189312889677826964763145194096210761733654619593061456801699967985530802744386252070447105604949349885396098279988246357342614126945515403620193242598318492523724787126135640291868373839213564241453477859234941738731780886230252539802788129695107335746115395395840090395811004178976495158525003273458508095820471438882886938025758793028182076753570196251117255317347918472603247679020729233578118655567642815599807836690711193600642710767409341651102123360458383051654516267633426003457022541809731377546556449109332780270179707504252767343202564724673492959207642672256644102262413440595575641656476855858023559188676512108636686224156635335246888598823868269343966271074323019632638893544451173441024339664011232586180384384763445196670418472319105178083709932892097949474662893367159359147470067309306192647785309152698738261352377627570820054178307307215938754871457849959097575096656019857008449710859994724986831398486280892677618608985088758735608081237743963463391038995052531009470910284764528802496492489827082715850429414461630496010130138199186254744680115503076394877926515453304274966949547992389812089559493982323710964542211723564401544330428141034402119952676988534582655926921152877670330414078075153629748314880339372424380413350177956439143714139391080212167603359804060712874759251608253882135048289962319597478424919677088968163948964654236550845762131993781678036583016722940504481139069177839290642320911356328136420952618326119579995008940969248221763339183973607644848474760942314776831126037949746236213772610305343479331291936427911804622592453232406310403069049550272645122468802304265186066309696664613254459291100369048743177006914113273065104495680741816165475352340029028291035699502775421988237611437423864340653249165368953451077656174578360947719647129469911526433633457694946582208728989475430397878770958509464504089327308979194128899457393648627435514736339926646778609042291321141436538557696671964831062318082933621648712399637377212112800646649075674100205374728430609840821693081480261510765133157647577238660008243611950150265573591739065888038130018559200096288555154005015168914269902966482048126496638283785214294015251058844387658250062896870372044576703647843930813131635815131456825675880526934831243245751144920637282959656603984742353926820216899419608437475056135211434646844333788420704567746534709529298561773645540030484707349259853652155115652128959621377955204726539081989345026921385006648264455479105239161509359343396514028309209497170658103888240607312782310427556240680250866488631933888956473826387132574858399499788509682917491579686803165187335835329563986257386290531850855183706778037728390844503455084645331359463441034686062524990885366140332959965175797338176007667433877938925025582424114730512362742319624183413184531645184623344692176389060626883321659120358957748284293655570423726252480738078974421623854005941127507796525537895007150755439272432400500431088330028794627850599971633865071151866935684398169450811399719784967840403016178785700361355494258742888979118132116915278943453442005729634430015215681130534916204771992879573131789280480849952096037900341198812231203949879854265721775152213448800325173311742019400505997670842295068273782209941041852958467683759938069075217663194412161342966196115984236647473426214201091743463839395564990344696340241424979583391069475875037085699546645509005485734065867523619175136264402511261468957224473710297306320120520081242764749159164077969004416302786668122197025127386331378980628112208249643309242026410029391988333384995812767858575926591414727215477270933362422130247911964985549374054365149532190616049268117805027328031041914866297117321372637347867839279072181577669058359521377952599373245510747415853700090375385908587776780793833124038421490123369248128479983474181210702806699086612458213033863091457024237501415644386665353969740408612226445139481656131032366798460800688381356095580117917428357036354284918196599563405379608693420882532429479030736708065460307713592071050566673705100222366552960340760871449461236745615870421193980655307970565530639130845527005444229909777050863579203185540782120168339275153280093999437407605422652473046484974596505543189658619218522679297116239523324169475814766259992009073478094214827778400776103796338298127595714745460139398245278611839760055621731350367839432606358470623441042995510048391643515954098304950703697455604281375229498761349439134748529619521509281891490011727949235123647806289359937518968666778808202177232258090146867188349828480559343211948436051284000306221588229109054343329804902199849696848414560813678022470126346297216390644514170782515016855637996214099413491401787905135159204975607674252939774036934531866787962475443285196226549093553017790904465486486361025211944635915769107406450969019971265362336423105749237022373869915004165848910279615581871048750606223343030201566041945815818293862902854624641935188494669095997560974886039004069597326861515981940730983133140845571727478920548392582883716247411277793983984535272805324087769436223597046764196435366678416835679707561201431849827852092952463928349152635276590305813557050084323506858024706006878961308986065950158502598335612903023593021818629264586243057833965705221590222841605590731440357057965078955767676009474516096709879921602551657609446985856486221373686027592260121549424293437893075913219540572637214429606249950993616565467679742027068398554894799080912741183831372399614037660044509026433359333935843943384957590836892133072266942643393175298267977443249987799283258651935157738536259339227254160021614977823129308530526690232974773589330594581218609579065341185385145716373912787743106231181105859686020787730030278737700611987225802136493889076780224343796154952915845621348794537575787855440111139106021526203256602299237470841335291848462310212524801056009074056095612493464392777557974660365178640222167879399938425721291715857183366759664194948301648000516317281747049544168521363922000132890930615311618909949507956034939311827886462207832554323470186666405069203658737344216881184043403254029909958425833875576765881484960358137146962937298658541929294122511399673606892076253851310563230817713990885810482427676190251790021768740129936548347848286434676656454903818768647346234557869532403720465770655404716750154506480083930997322342970725945753741897454115075822062208658913288220493534577646205235378713495894488201314502970514723058541599119043492053851438536654769880960916595257952902091257494674251535324312871228627346444002096493141675488368698314136838008944030573200049006567339945077209433009087960865763233432943692860354415515241923138618568867956139162016638622083937523493424211712127861405124101747779673799689452655545516195556504494215612361008736563958390030780769898284835471752983671488763830551623444784033399611448537139141830185178955398681179368511818049098154711283315770640635906567047378409936286770643826735073521140240492895497323807219335437062390895678862139549791271668979745042227026808658439822525611716400570726646038721970364772190713980085158530298456033358286329130716995834600347379643740045509420024324408500665750697592697689720802548999144824940072057023360723682116629751089435344482216288753078958593771336916638673826057651268246792833594071219948304507541782176836107964993431881206553858099107050654988632142094360591223898808978134253053541739327571604182597242091339656164591647380311181076736820168065102797802333114966647879650506315901802671821231293559580235221273541830370065464091622719598977534026998342156261534030781038214595895410636977200213363830699137314111872814763584809808666868473010289379918722841447280778335180398628435921445685937409190876482215931110935268307035044192440236072030600919393914047834097780804261295704008304949441010402393800005515324858265809327512442222525952191087970583775247295665137945509085690823836207567549443250273615049572926335300897595568712552626387435538212326018170217496729476565687655306812383154040846122233956306231100355060002550781653445469485944211266707330504885729650252215988148428944580792270905358656342921687342685309406665776233003173432466281566319879867939952315054151089568413144015674468945687712020975470935975594465823382172305840934790998385562078742883919534769861366477420552352176107574715487898984033557536892311036453321669424314093535118794309569024386015440014771574452362194825028095201799528421430651632655859966497192275352115880508203533935730278774653896634194415616572595298363656108924627624358116538798882828417056431184355291032270444492090538782667512188143428382274627062641097391636323762093637167378458588890582767774140793296841900849794959644611407647323152865063891976244359532434560288946794824664202316106810502152919401740563366874453468115288382841944600797306717243264806731301364396480867878041829021845858975914281417585036637852987763624914537947091435179192993981596633404797037313333784567986229140260567261559960310080962489440897468680426525525831331176137033914364692168749191184031396734553442618163195277573289806250134918027549103606306532649571030036918526444361650722466082752568718081585551670881787142814909981724080762751547549394803604194914699573376780320993798281669900149801960592457313540532732891726529054004262558164297348242781503150314700175163091463191660406833419803620052536290746300553812820203856363064755858558199220631260914249166434332535711222592773754300629746096564722406315538688952369094342722862807673708853475751000575437654312567226174335520483377572503931446101308532574558446526105796573522693622163478434054643248695408495972759143055648354489735529614794870988101604633491872787248266523932251648702919424709862821531553603141568549635885247508943033747331878405836367358702763439384483666884231827383615613061536286111492297491657572673808965659135380104186158226200125048208008427471167461842039644167994514516452667061262738924075405353223623745466119277319270223791683691243139945009862060897649174238949093547847651728285709116470460512843543379667601119849846357054622507429276064710952364540687801334774871024311931636357252900165171052784762925023453883075068965231686728965575095492726061934753575194512269094525629596501471164823061983648229088526850097074913001516217788391784455909947373832780554138341906219233795409094610979191111734459700682619448268843300461447677575641244401161442438281776036591802543618677954008961489369214378368474753290271633556502499543657982849748531573740116895743092999529447507265629389253152940296451617477675733532931361160186632825194131837363880947472793317828363570903753778205089905468176478763754495643904376738699720670928475150178111299803613595988936075462808476917931325380255699445511421772586257367698424694418222278683052348469957709395840562920462887596963967491435593140393302019979815009079366240361866521448449785454667421116664389133109725355266849758265884817942753147252784715643677352640563116265094113321342190706530142546176995422826200423613098754251910691819269793842343458766152163574311573808328454253425914812142530604799606178274408891947060267677219569157634275979909597226876581263001157410698177368688201579767006717377970940945821441008023191165989211158032457005786620707376937159372575269325636342668867735886126710782902524793378288298312870382192177062399903595309809557031039540796469365915403944933765484610363709920446228571668591254851779129000612112814511500118419049736299952193454336282345075294864931789705655606253002322676748350577630927785679429415581369401654708255066102336244659802110650068675810093045005275568478699991740073425367221821114523944062985742442123870484006939298088539410008145070204207106607051734620440799867794314524564884337530323452357867471066813158968850988915418391077174880594559893068600556114562981023950187652575243321875734962089980893570047444928764132361153865603370142904567021864170854872628477882106355239376404552061602680774734834879830373961393827164002107997540125230243194894540307217273181849258053677829577710734591811701299304155573341634682049813040033881765735984453160842070642281686098288151496014661525465665476112802114543679738181278346508895871958813079343660984344202711788556297382689719949902462582459384908505911991992577879618165655376267970605967732596253076908936765304086358511220296332472068994550115553138854490069345308611329211721604745173621410261314953917360650632282648583897461986404092823636854832028616579545064325899802096403107608812624510598319591351217163670814533624598333230223931882240684728980236152642867777699891022805892913159846221301943280968133556189422740588528956563453078944840842674813104263226101447989268902477634262022786649590330711899874618253134098732188617288659744623674359567859578895273720575746096123773620686807300590618134164640935649523543980192087550576658764430797649485602874165793038904934884947180323587267939453897809197627732478973467733193609721290756998346923033540050619902185642290576400109852443306104113480736249532261610557284832169403602472500282530002579276754910223324236371678076769909881794007678083327612754798632963562556289345499823050569162154567015719969120123353658260331956084784054209551759021431945164947596533876027601968898021841603734004282170669780725987584945327762455937590250658115496150194634070219011149231323522009245441530141303765070824194346375011181134568476065476867962184989556424129791081537068789245223874519692507267347549886654753824285951859712491921904460300157528654436781056846207670196117243253989124406793017481931919538612126437086572757018278875518834731889851714160232812703748827419829819134998456505472236482378298657684942259971386970191879780078177755131717961957575609743367013778662763008120622536372567263393028819782484398427565849913126045725897639201272496575405997678213783981211084572840121625800932233436395892803776125848087176130794609723764829295211494646779548065327401637467461293431954482550624326585463670196648403640062988809451446749637307863806773314381942532275310397616328663025810548604787947378211927702304758609966883423028371213598907702587505268890776872692435612198977114965698968475026126081288744373266805641837872714337952988919075053910827147601837634822736548504950213679562468146227744316690887001999245938883530824836862198112592653810451129244965054555643447115222204427042852873499767702638354050382053660491466708491431979851547939561081220038826509528933971767050646092042260735890760406784724318768292695129132076457779003355479560656297857554055824270255510871305146073465310125565173710020692177816205261649914672528642125544854694196762379239828847690296521868690002377433293686356328941098967766810620322338785212521228643783905880182330274969176474125730330013035073770837529377635078295342803796375858202919946872071224686175689189164426562645488286170148215752634226858843461566836305862095307115463953127289837591758703492880180259382706597366932317828447608935436188340604929740632290568463933445066438821381999195465372236368250376874262742810199041122916689031062862860763400008152828315656030094187695538186604819292635162799436366052725718149702302325378132237096844119203116375919819188213032575302720469906008814704132348736927337982909044112685589124315988906488734020800665923996504373965459869028156474403678433551390885148021537715615107570991677375443667137681045390377418816625022448017438338370460606707381254012961779557887956202840773580751021592221936809390653066920214342607342424341356726026871705353998340126415959894923823325608241159209960024150512125296916999757026081156525833953741975974054789477458794454413817274863561693753362397872514289313845607818718813626002112661501272601065882256757608509617223172415160370221971932521166354212145048651433267053668579375327176397986004686768658831202422810575759270566623838860731437042360067774736419420355117767812963456855010352141571404357023048517267999169777033406382356534014405635982326149982214538160498999411568746709452855180871889622070752029490608015245681111341534704699141521404201570908003076825043373960538654520072385892304630016722140692175324291582441823558730166827530284959295466848103986416356662888701596342019238613360727494720841268013211707138095619044883528354993353473060681146075480876023482158489986335114732195001959075346417917117022557192095815693187513949709578365877091600389174160848064913061396140317011443381651391925206385063327410631476549257700944283467118797616128074280816153973759044014100695606222149710126642345415356651554702830367157327470744523192176666715460938522796324809542124496989307592046836090337820378569832514198128620640449942529072458660319196382527260344169565149475672228215281831471758366414958526753656160220303701768386014067593186960644194597916100454893972746504478834102773340069711040350001395156494290985800287217211916596085904047171285930053009718543820307093091404476125872418289214620920190411978055318248878623297501728603219774414121946925624038757013153863115053835606131280618531891553844331068337537901361837274070549264231740056698471183736593497612178297322337929799871822599494450009742982067149342110567549738368184592717304647131120642381018503383243514492903445443850809079090413711114135706707545330159255993094613068487220443355771168504811772885895489054036881641286851794692413949663316187705181832613704752100634900705938798207797933682337019090857686485306963634603027942890616054706305192875895854729354616928452406343249036528017622721182010582864585042529176466130900192811422719978342570810673744962407413590442985797523962123921050086358295385938107212570593965143479470904627038781809441471151528583001288436293789251434500333179207757507876413983014983031080148574199955523313402497777399139263688753101262164803838035943950588691853365721766556965099471094336146626631192034458585472447147496673445342169135817309661967160531764006544374969650770279034069235890452212038273543758598899729104205545913251220654266391960231673940853468329835313563707505312944058638779926522377705810191579935663214037415708815516819223982261008484228171473444824488731164944826358351932667625770320900757117925223699647844050801719361624202178853164102328185548056021570283116216920295230747395068873766524361956140138633366699953404157237064823123730129159330409190158906037150321739084087590292140691439803072491719596225454543895791347842520345715793277381680702717410515211202103807633058922521978707098944344875588311283691909560664804632426900989590160308134776896194031496988145787578371521030397012506122372265640806477560877549209633627950761856081575236926946489169548221778045738643239473082059181828482691633423722798006491702407715938263594415487245803877894839995098806338924322076812971299006112866240951691623543072948323047121824738033868507155228848692453311067644176999735883760062675428549902375372221183278641897290040219361792998408483242282331871765293227696379989868315195060698217512554226813951713213777789417822781698899974054925372620926842555698480704383301189284368657523531633741816281025236278957730285899752143854060404439263461308098704594718700244506815385461011776783179694685462268533766960522692107251077626274374134165004211719175871465429605807169409422087086026033846547949415608894440743305330569064915119703665707751549259280493722055373290620181284646903456074212735835892037953508732457064948647323022172976300422702727155588134324676037133834297795317433824975831774609251971880430631561248370002172891779839552032857633737239879905270865269633533653638351165997831176521420963258117191901718925962607602995141222255775694383463667265104725056307459975343242544411799684708366739464458249780868693161112505605422050349775007334387201848024094824431514184896775703361593274823256806809400104579564792366709748764073692344618676909093809825299626565053738550867902940925481265619201052556476880456134733134987580918840723080430897598211570889145633837589129373097640732709849332636543762108219232330740722077064999507908320407408422339016467597567108930918686573052168602574040419993334396325650923388587445098691159391742044018780452565008676552804536290833726207185957880587595082760569825122366136642453702764960305226072178384193203245094073492324569540912787841535393392353259860291092613261124266170488153214331122882859357022973847815628077266460518551236073123894032157444707547533475619338257768354976730290197294400954138953066400230023490908923434585210047624496136849718843195067223376149550872905031498305801721878779377996459936035907103386297246688069724415123926932231981870529058394499161845289761313873799831384758255580531459855822669027674490943756935029411294397006115089822788619387518057995834972414410692253529534063652974449152642267691937337024105307231149439639837561064582853343818089525040105843493787024605661453230276015989575148135113470461825315305869241434540222170023425238361702662717198439168080980501956072407350552107434747133601162465881245049683255186584610546118906158371022450915648962819012059535797613847193569722890460945524916746664689946340304783414438066324126573244550983019581064713644349781983865660003898180606639995990203394901593843988664647657658749379834960847155833622341242845480604227266122497880516525982699301288585869511775876890969430444560328063926989836280673192492080920079059548250087581437073746889148528166158260431991771964454167979010504780345051488169720776231427786490866094614854680501007879737658392780558527768127454175572582270241746655965321510749552109984707950198759257601300196740992806629771499900689873586824476998061729797871204139581136846067116150819803281004852893998260773729931617331828406007270258630291332996188829299395697569431863838267404170273963234205303630433914139653803329471855500306028069235977492493851073799128907105079157745319518945621039709644729898372011847644774008933183052872289278367284902494786585455716738673424420576166938834732841598819068303849132727272763874507678431882503684913831828519018510512176873615093626549427140272155984417418915629175284742079068710259222856649506713943778048959882894448217771971357725712754128655219060616038922363281203158379386974117001510083340267400639017344779179325720386866507718911943726734110787630829522703147235797543737515763332701144359585509785659682484190561725167838758715639550604223153134186465813128532913911050776376531187996280142266312263952797685598309262413001072735088855523924082029668290877464582588986466346400070918843512813029515733551393236763704625055880346309751621820247668308589081824043989715127713815009543342545059995724826973419811369762078115669772259613890894201501073965255988694163071709502662324487708063215120282297661534748807140409130224052815692828533200923544032752184983229660633810814793762515684506086801776868691117423665980080166348488197005853789002335677327785045566684920032522069090186002495548589058072733867904802046485615407690540355971293773498721218436015431176375049965909385661492991388941940362229921355598678204994447939026327383981609378099937070768626666612464368306034978014067289112048891857085995818363621317498505323349016992293674243848406232778484828265649939658451329841282545854530198603232750464084410660623498049601267856845367351893252619052999499168660405079225531049816001170770741000679543243654435845652345871037720834213690501703098409629980654918186425203999140034272279997997508209945648611234786429321447117562753344270491035609400621493569088795719766118367988639109164481411831937806653057064024681974292349032523529572631931125025179180359026848604385568228334878518077111422097079602467989210523981173546660456892469624819930186040127630119479550011826538129199313727270151228797329129377551867490154110207717054630169889404557702069252712404200893311767978113542250836871492218849881823736315973490540076339718236339721574620001611361404325374318250994579938665594082646312043097503659027904477295982501058484857988917751814004772429532859373177620310250257068977180293869203121146984231499209411011541526622418999652604702449253084226136055425126091938053174953420419347983812074173591391779033640583553299052597744382035441025341166483760098815232394098504761385412191736347895744860348783341005757109035592457454058780043016935027869105740067691185903405813166696397736752185211615455780594938563435287797532913177456952734353871820927675677416876998874335972023122158052693476354503825481818920048221465645891387605014152351743573464782233367094703481767749778043527263995685306924536495512309904165024827901862459577775469978245241558219055761370249188433750583640015124297084972504162602061740493321888025150721841595352441709679746049554571189819696749853651101261366845488042044257548472085567312901960822820449629526686845174203862485253754717023345622139166522902960233753966493391668171449095225678464977571482290338068338253011601588294553118559866951139278960719274477311005372193227062845232420566521639716614068596357292887615057131094789261410087156530422580637317485907656938526158686831565711068556203224896112933710595515263920409467725869100027528779714727837754014974738077705682091579445359352895736241316936405924051882569476286163461645356699093033285437834198221251633592600153971378647164536446274989150894124540044969043587857798749851467276219838543434089500396040189249051015479757739701606721059819891601681569156783670219522946953395866596437279477205228828744422490400173289290515870784525654434176282655450175884307467274782132441356816218957970741251509467348354599743333819619108731003706929977537874998289533970983944719875761809182066033305747606871723865229381254171304851183341106593524412231324883051993725859957189504830841093402713819865234020718561855033475886803334892817847910531220580965044569610611500325515532592807283398462845993384616069200256636771740455737550885986412646863757397265078437930214522283270821339227866783545226442332725199199620001436993862145787210579688001000554881218165682148735938578937070488589162919735155286339962195695562391331807349647929832974313243068056670278128479727484000711625780124649770059235213660929299103959333456722711835677390891178293970199523789582215090876194912829797645454082598999940750213711789444174837037309204391940941193239900787050122886393837963577290540674558403123620907127487545335665779952403920716379517543912085232975232812878451764281346745319384224788407731501998529959762112763376289311853252137225837693082148628232465840931539135667000604531712607003772278690950166224603450530385681231344318420795900170382774827637386611638402730515212953652984292360583444400813968036960352299252504038252167603468326231948608763160471345268730069687826586563125047139311080645263439347963938780494036090567135905845244418423402954172478527094843843909777847318390453743810075789052051651839551319801308932876467290512695110049856132960930993439431672858464318809610146243630680854902151734624005585231062353811033019757241539636497789461950851140994657793055979824148918761904188575282767127530993535575074925336968305965872042961928238155990458134264367284680233741445815895444501951941576127615870310265759656602512455837155500013389904880781732089137291761707323388409690624662292756890853368289085805497698100706800365124840916043916660015917095138937709118924916517868361608922050482803789623743598546683205936396707615294226620958740904513884062959356559804364869769341030545413493866631787259952681021042596542798638235531432485252397672804594038995187261058735143448582281123709905887276975256418444382332675136555744202661601752200760089781989064060565938364565983092365480563512325242160111939534767507548219993427027798733716490454137075665707260236283529969671517917964494613225029100014534490365391905691513579007725701967708669754152699444216984898604054828600133418338157959189882830514678613730998001608710903442446083461169663559043609712972766814423211308457607435895891581606543205332727296838385025632627579109601312929540853496481411560068151010286712004552774901857943929117847230862680269977986192784032421408922825278804462155179882063382300031155806263739766952402655156153733589024115670266069173212590281735996280454840331325487893031905275142059717120792158961271098183202630850125390626619870940412836350147041288599684371524065530477399904617694518800177687868963595108256674311905740634759472261115505755317393117549579947909945601164660837972726690303972655627822796841059319049489981715705066247449841802658446052470807559369918856961867342601580772621302961857000080776679945529204717336884581217279746097849148055754310591664082884719330152347918344253213981195313761880935018090512906477547655925648697478717577695158293282846732853243682718434250159062797100201492587874711967709819341648546248026693224841646253617500880224260896162467938679723458929779208172580669035570320659744672007892880205186464928259883794236783258211885561640736198051489314612247061843919919119880830419266976736262362085963797316400791599814813860377375351798613796744169390682225173297894118768078063680522826725912837284892626194749648412518036479770647300950552402582705138022651987212303678217751387300870930089191087099209962411429835778254881358394962875846694410454811768794411311204619719518531387841960085906045735112215603841168219670776971718934432613800187700413956123667263462720181181211036096858232996998252056384156612714016590084849324231149302886913764729583944842262530801650218650579445149154614484795777052810004922835035769936195997824766072111734186028395300366514880995644685167828359076527704861129198588583506696628183657529704435832400424619767271477362422139973108356303088334012711780095383547350264659161740085249873119210035167722066237137849379239147604102285715179901311730904138948893670812522426683049261839188695455095180606562535762256007022778580590663219627689024097911755703381385650732364386394266282912409081794356031935119468138361018740615707511505390663734976711550287372989634536962925839517500772466821192344801459581970913317276189327255173524311472533743635891725499740718623418301127010325046906721996659845480235430794416868402797438765622320566282796871318575283459668628330350223250867802166859740875248393293702134889462736336425054967048874972181870386502773452858012344643307906855938176753322796164634309872547737729938553714968848062288393791743462205411620570583522945722583811227267355403286230460169032413155642445759571987211643768089881522622255676469248018181054267217634128377683047878630469122948093048613426991737370440689649605676962267220536872980453828403530583168019463712706140044541115148166115729653541511860750642738524510928228643640483598575865165942479078532730105825851255493601614401492273646496197934352097213638875146614772086075923935819760326974214378018013932553559330363731963506133932077670040060207870633136381840695677506125699617170768219398676126311798328151712578182697310144279514197992762977357355415100046087606433808094029592969544124705936248425331653200347496744650142870962799309063245469787079618710642391373008329187437091310632870003980731378367194953783722849057804566384315714790706036918305242027270634766705591414869716169877145133459434577215530996698820792133790271644957712465973825564007285743300536324889676219898443644417505490506384872368786050446169875918662723299020403522360020764629233814629553638101777570681053141719873040823259729288945529779427748932616754748894828507137852235379528540370875474019715234860100850990518163948872053942025743288924746991617295937497214988477220664649258381231514900061806494653027393174021298002392497546643514003356412683527176139807796333556385593370154271090821128748738838247550686818498869500468195570569806673177860845348497795376873194046013903637936750895560701626857691202885673218964978445824736107647028564689738851883624812743624563400921211493442593786064040897545604753440494395026222492082308895787344104364764222270522757339261643905300661997760441628042048565614536903237819836347885819578763862924682313723135318996081274408039200908007577135307314383743236231838242469941481183489423273901297734613043443407099991663550879618675035670760369168962533976904133251894867473622612784459557861482381617104236213589871653221975051871793617656790706159050686224418860294576044217055004787640121338820362225078803985804622016803574663229286902896267264718569924881924187376179739475503988320381252703037718916639332798901838159618865937770973839365642368005958971471171999349347016774588645744104820034754879044331404663538240545208220331092775673256667851284161432073151752957685007657177387323248464825045496002777448412184382546536045092741893789200726505356620479078408950657933277875391214606899537917289615221881547283434050656367221298274716562369763394176630605165992509465578599452181435174667931419682451855197827053991048019506146998735717863108492925579692443922824354851715809066591216247358843331560207104283476675276808097770273795176800341302304227695772563877263619843539896063028126637609825425573402850507742793315388103338180323800247686035628790712911663394281243167634879903590781863044012743493956438094461036250882784764597676057499131840161580526245695817058971049436148147502644465115037682075765131368842356319266945000590036789870233809192380649323075526360347740105624659201399717268017033869949192168778042784461989399684093460877342477340371186718911894036951593895421133005717369748659271389300745207875974263212710258392944920177218658367908353151524571274299361612157298782301118066801434221886771180996557554463005002624206400511545628639790599367112592007280345255061080910847836624748249870111390526915121874806793394339223060452405861289981998333309656403046391744655330034598397288470630178238143131717370652231627781970535213307873038841007778305816023096445769377163415796050403008596591776729433420854951530774004796401824575887539086564458623895792614791333210869684355989412351971365887624477453281183047676979594825300532338815806340947262660667854903040174975529063943829848601619705631620133322443476776350827332655872990408006811308339201107507542678664512183367900658796208933816930962368748519565544313409726406650464599238434097154490898266053195331636779262085726422411741108260055910262448905874208737426143239833663731968145142821394578892629995441957073439143006105914120913171959960111386298330181383796805626645678587242591550237533728841121038020746393775806805729886158255160093105433769946784805039497809667778658786996404772216435227662768059354377422202000053393214455156897543611977927772019533180281945878200210222160188670492527505735750861078513365484507048457188345232754866670222786784202655639612409554219220194553062821505332698436053177082492644380100711911459945057172129256083576661392219502424328014517834315826000831571805397847765924974509969758955850484806572911000549278638177768401703050055612619286353228052805362854690990975011384268296029918981084483817395518028661028485018326275749921098349871307611636747398475914235219850492091308836312108622812090553396010724107722969165152239551247960716590098404670487644236030158770784656177665125288946437069241363026355694694371001840608981388692960727845257935629438624654603100533590406776179588980113886797960039030524720790572820537331753585770305605482606749000994243193714763941605875797955355232848526679430439822519845149631304735411597266920488917437937655757088695960543689696701618063845253209411670714058145431579894034086895632057615687046846726341083178768866982885080141220040077820415261680474103862301278603007129479165037410424740005926087426460986119716049749609010467230725263124327777093022479504127122656281348863375373913645780789612092103352740904768711484512348893296979365452817531571255898947235474964056903778415178271359771179840580939694712747648054753763257376007345834870821500812971362231603327211478473558562271999489251531345303279750930697236385545137073602550178310567125422936134862154401567226605349696360876078779699657523372021890688819750145038108797623132089962508935165495194785657056535097031962020701500799424235139748212413263559244851996020434518936893299985664616214003941344701305664608361276361936688001256910810579874544096924094009854509107385801911254261604167301217066169995623772294997734206627852395185530848345058633000842154836191627145860381343582625232295911102619057447652098329242597762595467134735937577598966871770304954771261527247271931368554912320035735120142858546974440244754196460603609845032298740501231830336414755011173772791579101420617166520326046113776666006649300974890409321569583031936535861482366746790077743160912420386711449419459169537629669021068776892985496815207127214316771364954072147007236887036717485978541090311622848719469266002587904478268988814791434702412895595670282118684232237091095989243760247780915667079806210944941424909688373262362429316269684189024004952951295846068137382603865122603269675492180297300371793117650429075651167783890970060669173506821251233691632235103853075131660050359337509407166172716302567158874808903171398787996196111735276850534771720521231921052090297612256861614105017991870527355182785261878350525206757236260018429906297175512756577343751391652515951479903930944023668580008900759901277742885111442494264470950538450668821569493201260184364824961017120285637046236229005043668302656060008713657538447559975160870277235594917833428463558952399410117153170436203596432331372448895164631720408929815794631795891029264139698080427702300060934774784547218236530024000149963696650701232776754884427299432814817242387754090462485424936521213475292663608476463378867225861056907900808951449650057824351970426794658716542195299033419631439039555767757771823253385836706663462011613646165245283525099295715854145242012149545629391577477042873848851528886468418975827401482021186711519601010973144943109360033859934498785627417346454812052778470518127858344297021901454639984230911150139841707211548865908013545926059864827537386129245294483040355084748046619610202259303806720170511927497403207057628230496704277071934862550079710731612149267229746455805480832350867385188513862109338863636192888237906398861389373979751925271700250083530373751408845102079847419849720993125800624597193715891549895383913317510887486617513423496742580739542037247414604203109904497988309639497586287621916921951086919329804045258597629327902010587494427069189931919113627566015617312659063030575118228617355369668712977390658122402968412862184859069315256918053589804245446219728474897091695823938674200152803734743447698686570549667645991390272385258742742994317049145591376027758099905643787562667975041869609617411725337383073399169518170738938090574896231800105207745404582252789225721634219342109809008618663822671643598352969099778924019239638739202580613854497209045358098555971788555670888370746207406379413992798660200754643308441251274560824473317082817907762832851081568329243503015213386880886766380595891576532607832829308655970779470360260279103235404565948176053617247801364365377023301456110581735606853437330289697823996252267299033324669528602814576731774780350611827968308733112531780548600246772153441968491498715122808126637142398302091166853294296297966098436984952216513595464998215409106364837208898511129589576085916894254104911367770502113591868097906480544821246302874484626152354239323163286078827851165199397082428871376727697763834271181064465397413907205077507589951696336598916388143591661939564244316465054555067498812601083135841686473892213829443934580859603974492293718256153157388523375588443163563499960053893334539110843313217334963227085285693294752585118833315408297574775645727872764440305470597708966795746603341498072302814406326061449405761114790205120969212647740988964947760217210451238524094076242623674934010230720630462344414924020787663515029113052532355718614870709267318615135689663096066351235618844348925821736392610701190313745044797888542037358620515733131069076386796673193799755178224108065680150763946377379084456209319994407893913362550392343905591575115602789946490809911596528353406142775753727213450251358019452320265193238490437110400330621270380292385141839573362353569831745806857214923854238304417631835820240031305933167739760278187100701353401020527391432840508300099373528470885952659235192236594500664596320267917988887941395311168051149377678447380713246673549439231113211054616312091945080964804951910418117778635653177516678592502655824972459803890172355681665238129979609852512886831046866045039620380003918796672004421322263009723213863739898150817248158213574582126497085355159307779944781239331224378327811019347856018760237949661116283446512219572827744841306596198370724191322172316579441716494752778399745074553610807470434259334611543727326209587387113626415592641486329493428762972687033906505727372147693882594446733601409695373964140551026828392615639124882438975937817472474849914369254823636891786450430305279116024933731154755431941471394756282497240808895959718135373983556913872873900240003880559542532114071441004277221793161386207066903043863938707615346367997242634337766004394606967048453827734911254518742075579462876613641537489554538108025100392227213195544715676329998371875307855559116251764510952776089191329601398589355990802176276659459725344155812475591645461068808363555083341451793458678551582884398652068273575027447928403113583462941710364992919076765136691233162242172128265282685341682362629768823955005767880715409190776640270701717435150852236553859554726344592505523613054671178392146822827257449968280667728171880474688146130299970306402908233356395854132270499995814136788782800581152097179597797636785202301019678916879642908072462949427569615764346604154103073692086562690835073995123460134845855082472542546054172241250452271854259002588476063012815186367052398048786261029557830882248534068956942490408793867608198161855283442283307720322660997931721790726355095532324596924281792982756049941808153137551813879270973284869391575072721088441416278082893146944801763035608640478230792580668253930417997623130656273575144297228168170482061628872155687266399063995928310166004022432349266945224181155314612887777452527492042871763551896917864129228456299042880340719066523019552567707008045284564841086955004758921019038473431291932226226730952062199162426159657556436319573055942845959202863651462125064742989864479860606351190786620758020392569505000298432972624290005170945670411100265021570331217975106342547417069572623305303476738882278867643382262348256016033038975950988854471333567507429303940508089150000648982626275504957429693091535293612219832548367724578836275109487748971442629291988869204798125273448411843479931594469453598577013400189618715921381678098472846978264302780998291110227129349918683250809871833307466570658650066258245041994664297532261168966096657669124432995139747414854620784252442325972074922442209743541136323450700610544820691650740152689707930769429356415670431630166539548259185947390002854287024284037869024175398721618398917842730094960672761092497701400503020983806376441771905494868649970851245500887008145470187955219217018382798584256776697261904099685216456466277349803060497839830292769294762418945336323129205213057657182931211311051480467101454948348555809266369389633977792897398640043944578953982534427400580394766558641608887229562859156344556553401307835552754472179090423608668027619842290242767901088769982306641020035576742603100945157610870856455202834233823523546836438836694332390585044623318915945017633994517762984712678330134056094949794628821590816847692020669110074367800427585808343943767085667943655174415705375441210906223941766442427972536120938098702695570613487964911740329624047259077845207122604933761992513924709415990969341437236240437554897412601847582641647047190394809972488350372877538430844154024459814119770022243446540949016731793671465173680012578680033772708723960703960682257947466265095100900761677827375082544064897136957729299689296932360196112655371782230648811624269521218091254875326255878414065700572222856015885039206772575132820012310280359278543825569910756607466373944382349832897200834457368415630038909966014818666649938309191764899525103146360020928081223749716608016226886341712464162924030903225234800486587317813118574462449512317438337882310162192277687994284094375848602103529511076201114329083769450829521706191035569578163350412418038875672770117322813967726572128674685738258292467261178326382516616538488384942299453434388945534393189871053933486742328266055001396647034645780997667945529376123936780458041965991858431421125721090237916316919761147344040809138964819771715916625931639803781051734953896988575659060350844148833423674234795785019573699762453375578714948280150176698025616606854288063099068633632204566233772755091869825231267064121551073383469508853837219658822156338114668558398671045295717553012223189928795594425754771675896009054604051293099418102629736161221528982697156867172657132821130026890498976774298096320670673960941374144737091249964833505978293448854368465657359040392960056863657265945827638331238648255110454320749244082225481508476149127470071198117879120960332471621056044865218118947785410835926900518056134090271880957752364676396928228529761038532069422498558160643610544371249440002153484817248505827309068489877230241952609174002939782587542460478933638344364576119899779121723779349358715635910979129452234802066428672592005838376422993273051558806494811713455619420246384099843807454398668020021421973977459278344870018590693560674343131011224585956406716510447606285092687404829662699170583861728732152913883819339578633746954193190544339409312654157263817344586430213974311700204662250949927270159252920058758067485151140345795964057904431799613433074747392279695607412554118622342366279441805566842721629379550004595058585869263461503517325074974278626235213884074997458570500854693393120930253993650369238579540072993162215511698732764076222659540281937334589572685619037185177549596433536243541450137977576598960909038921818748415399489085610370795832635597056591849603735602868390724173486603354156590426196850451945196363471972888336148916385555123840949150846854092108399613391887069766195987899713232286651991733374430577705716675218147773923211244131406950220181726888927234771424429724093758402257809404833371201275475685362192533078897399606367780089562925376253741596341731363788129227552030912304552434156083269191759970739509800518213995469271041641052743468193480754111866284837592439926904177254026469274078127306252694817379182407962546026677728568321571721915525585266414513426514448139572421239897904776469190550828586875918562727095406788066558562531415165474964544688007757851704417885830339743981248749013494237432690368933031223336078424464802346639391717771055042616473643872977972869338990989216383031664964824688256376132955856416023549132534374899140881058082857637909280742365980507936177144067612519843076608622514078937498100060344083404156414422096836691229276489930857384331560140160398600938971590209032577019416362560907116036277038458365930655853797597094924884127086421508269411077393119781694230003984712223205097784119146837379997818001625863264818895280630210186548943885055243670056553269920454554692514449166419435906767875777831870525856699161746616603022420327518837890231954128612007479096826468625056620725900752709850889997054159784782704574856136888647576572331946878983690208069426596014598888609187917842041753748736074297082922809313533032027128549280029083421842565716506230454086180727822477776051334670486167649847920267350480285946774366864384862630698138931195008151064768515446025487031207200645104709874198177951852379690495176679648556685313199178512132502091907039510708101429081327248207244969308212295897385489180667293143779178626582084904540281408461223684689235881010904398203358575877557047071830445251423234352294269059467102930348853903917235587118231506289419508928600015893230634426890390936689708126536523202075486095102887185346709113179114033319622409575214713652918553189291203163917007666378188842984248739699032321327730065599786899158988706319421669479531740441326580234905818782615123322108927779637631100225049823125876797425657525941243981610296927527180087873791187517070015327634869538500697358082724441652156325175110427497024107426598894635122136114733195117438481819942344015261165272947030908552167510544033911384176172833074133691110769431495440865429375747633978812146545134046821482750820401182042452442410710009290987184814113499847138117014670438964052488589547474304925491262608287255976974670307610185793734209990694960687719759847803919984901975115099486233482040054271487511958563700487237725577634148801007757813907651116402978625290365102534892790593796237473822010323569594112709414880440066207315722438252679421730695753796563817650580109303233522644793096749632584215170627691594136700755875964166848424000615843120608100277411602529724237647977121952537294200246000724643708947383482832396068824098959753782992666340709555473966974797695018849337366601744025175513293533049818658210534713626368987575456361630295121179041372942125300826735733631448319449061191405801824423508698804612951494776684038170344237427307607523475436489812354868444645298523884159006191724264514715295032173790419684613776248646018620304050379186863832024230451228637571165674595887061677771143211243052266174021506290876101399239828355229762140800705265096504141418056569334077636709230860903855341307363123217953235873002087247278039272572924673138995275289489696630428630845257514624914010509562258867588615342434902632084473233365147606956882362636839565618343574540279502409962945285292513747869079938171204339607046312896699745433262221025369793573648404104060381817775781191724508760431424081094861992735984397674874780048578435128961443400814733689907736702392921639564062025447551798701517232947507754827414470936029881480589685755658922102914707274321530869809103208964163862625584865443922709003026723880591273963019645023986166084260046955426034365732576799416632410915538942957246166146349077049273578670051135217609933463232282875986406843603616173761718521144749814382003957521556458104232930326903613477924630792065769064743793383244818867313129119599577272495298856055382809999199368571243527913295082176039081089516960822750339409437104051600161689444871207574332409739815078884436953083597686336732296808902488877101296414466883127791796106803005327708107380854858933180416267580940511553341589567314716280876296366029919819276593429525013925832273450003362424948718046167946952520932904132113326694802287978658166002563845653549120192716362373055679252670326549507702500917733578641053235554902768320039389392187806206439490769743414730152631704838901867739567676555857842355419172278065417936752357999386316478596745544089202341343433655885082025965951488657505879847140207488564662685202121467857878468577565749031354776657076689271001031055352315375017357813450592353141287569246879608493194717519581109218457788712925839452115547391167239426508586712606140706392146698271348068230852605814016823770147775643068302190404172451477817875678778931365148116130991791266062591842765060375372210231989568919971199840512417858918949069912000672298154149991169937054058333578701102674127846359210871263378292004876578910668715974579116977814706088785936215375215056747429303594433960237298272730916400544631476745038893149126091587995298698762980617607342997884510759082270358729431222916226226474189726610352496577056962146981225873534415613154941259405153122641165117731992037574934156108065189854084587018789907590648331230478756761407421653239329378628430615811216147880143723548131929480988983227249586930340992962073953952963646063854552934327161081224520345258507094250210711966773460961443820637865314403358505500582950579888033432737207466228927673777023483911702939093179921098102170730532044988742439763901207954924252090090534048457206305156730771188938837155661669091578873102114916152573486020881493340477911731068848827833215880467553585915287621851746149508261945335211677689195745058733513980076304080728952456653466922755213875425064433866446732812841786523296921004947338603220466499404771796901109929516540833013048520563726549873457523158362187255210850536998201962100204715216055706956421818289661375936057861794064032910630112724450527688854742058424427379154790120557811816647763667519388077315872188840291501517671417107035060910453746512955866579460419343549544775773815143908708620811927136614260789502741827410583453817361981238793442018960799762449861878046830798970204587709080310415766832342584894292903570701928213380236352368746330214424491190398429904647960353811749251661896876671159365855814241998517078110626400588850028702754669814600697716305311567615978802627568829620955734635706848958773575759562400493293182913039140358081612415863779606510295360677974385902916511506320375100035604837856555481421661382967502274446253354538911000480189525045891480546534550398195568891840649944021206876370078249408196527884374335093695929687602959041728374913455448262522003923849637170516481004897566222500050713098895339893118818395560826036176816134721607326942542073470462079296099632841932246521150753587162483305824049601566606855160713732048636359716303366712530242044090375190063181542980076107607503996348969426473361890056906912920563306594629626139949386613218979400604838133225017783561460350629783250278383154892065122934352660101839786564125535030558659906129936855667154802948323706473845236730560599993481349915519387787200632066160792083058383173746143161602660914229896797214007926874091593832722705880752295296856039087524148445396309886040932216904881147136725796876469520627327147684105551022426736643152471777722337909600569607012737157233207746525826240979270243264938890342588422372570158990770146596823505043314900841115240445116671481863984943455573699217159391733646747724554023429715269917488011823132720553225210787373197642452695066316448408516682380089975436582920004017971151021350709555499543560859559392382727632873699732025273252206954544473407040395742875708134353742074275035927379004660366105255869342225756347965923813269108836694289135765778984012866614825566939563433430476821511056839722762924662536163700018160007617618823653706055709234755631463135388340351865395012009933211669238673696312705885836639122418845593856025541817570444731654608990016111972536703283132823234410511258935039696903376185538255844589314104665907633903013315877797376422905441284870949992451288604399745413979257738059763599484458947235911826661832372836989748710736617944587025348761513185232508523156551497529118338095158092744897052693527784268471087667902738092635183273821317568792379397177321538925705484377447617390190374136738987704014092383078583061080605108454368646352433026967729669873923671824041100509192268098802886338240218685075435613606123451435748818826371228079175219736665705227336240973884048431884006165535748240214329860588337733489708273687597439344082254326363884886297812322746141402387945878672151686921990644370771291799367795099198753799204963076366121896075808548295542032874016971532555324545585369918763922163173456328632427958682640649772011725005661477007621838026244574467278276483287883645554816480173366357382820933591619293985913431400107958485865598713871488116696858610104344325166683945553678484921626457826243150065391646729375335736500312141051347211376570783051482812604102147255443279530929111889827945825072903982532061149844807907718551037314263829265193873755815957155031389444024266264889064764407004193792085257100001047148971698790270578069247992320223761039525381684886020195203941107183800148456290213357394649184408342871526432231828707458674816749214723044256787030537918246953905722701476090810980783040502826221938165182907867694896333388261571453762458213712376339804444784270069887642244716589862770642724919911695538821270528164957405932580329689164539303627294510174832799051663054321865946052937219340195343235481356527600521807079328085116587128245856650628804719298418910890991040665600262717391913186562552433603695868699755344764230385473531547704743321462723561578113242613134744638719248113751237939799783903220027032836283332659656577301537541020547060635961772092356982385191845749553386694895784394256769842905287517412381563879633997050400293500407086991775716272800423800315844994017423599959416278478774102845517258452808584817130832224321877026882270603272016389421473113058690822445775128415134143051272657185413930662579888259830069600640742816513020506651375833585451734316390029974530589903199387180043107360928164337754475975190826378659092546253884290169525507389759966051045298143649638878578347777936385748486650046232514715050225700811583745990929064451638862341028151345287789377951921142234704992862080962707433925810764374789860869748537883632588870833404279500759437094480192628534399293736680404315457653006890496021582093067642309996650396092400125722799038654643314259099201301744054215401979944456970571495987897538363527013311780585890098918759017948283288981288138503846911884660269003979707950065547447358893574541081706067944572032285502429047709459382284728704533951834354821918321822543496640444814321974695599311711261519766131017771712389978392853050502098982626713599640788058386048667427639439053227192721884054856511433917094591933427828260724932657180886603118457473313564716137496651420456918262807936332149246844167917343284552102834466436968894940683693448714429739081530886796864500332141694294745887750248234022563341485870586047640611331530389068638406509146745044074625450775251076273998265239046853839253313615382967514418445712095987344614791788755591317109790245806864365055955813704463869556464724504317063149066626173381010668236810503724076549248424579947529980286776115800890874516263217934594981575077404501228944401705682167803483697021017726721850993889963052307475920954420999528401106903917005328814080999844761425251964365605615655910511988768561642010311934896351947784177330042661742164399145893941450357933984898748075915134209493740749097841341495971667318444916013651861520196165699588282997040132435869527858295999201557841506396643948028072840788566580946939857742629607972373963110804922236140232078003548946051483947878344129874329784066184193507446840314109352308649755638941786781712567769740877192140411629517724507767647021703475295827529435063031104635373784254622817990918944036461774843964513227537861330388665245447117208880992690952056701207749111069319914034125239043877433045398297275766142248633965736457040031442714032611534971944645271846387684499087980982136688901970678446344158489948350358837613500313599772378010813878408042364620979467659609937252063286285553910948140986772786909361249109136332235364759629792090902267696278207119627098803123902759335264318583137960864224560780777293036805796697675862774061725740121058674144286791069443556477324779380164455727273502786536184534353727540407499267406175966100159876412476472647649364081873559464030140193930144635383903737975923414118938818122657466460898947525762063717157648431119262485103102260472137505437652961591412856909338143841999858601960381197757909270843589822525226990114552372155088571705899844575260401771187656351687620224041184588220682833185856670147862171476800535568820344898302439039692152589807733010366402956244632386729353663209000584537723372485724558791242010086053669220618492949127444427065140467178608271489839573786736929172307624341059667020816757282728609640115520352944057021554039352146510716880303178401051498974489186630258973383095935950013776025925530860322580180567610112023526272509302088777092128441434944496066143163290552680328870318192727658342542962194840774274848913049584636006310521539149827937355157301212767484056939645909393949087736740274054400033726014137191060230021542524135573067315306690606411290501594702151224446803180554255124868950432718676621622312040770095414156238815352363556629282636170199675626627731281865611117036913574636464467065103811666538435908268949483850638660572671720002904850086574957191075928333421773689367774272355938214962012362612708649297386802879240381991570984951939828819719876951676494693522224381406544001999909562005835665312135785400186369115029363383832916144691426062271166046862837390812329625995566700958839247170897321204129318622057235746919441970919204865768636292000078337835212005068169670680376103067619759367716175728313598059628175737903360397103999022260528535176421548907458434539456316497799562101996069901199790969961847500103343577957366628982951787803795933389376979060137034345349358999860913278643431137458882966759718431029413796791374123484890072369088193572044883477200958889989499523232342436600922357916015455071213567985280363811246686494289393376249940952230735628342483673505230546265087238725452876247530941291166204326322668835897833252023278346074340398346160620628740079673634921186666233254393069014487714095924048702815043436882743306248310540838043775832596252615763608957260601811797942435059084788186861822125362909689212830723860564416057231663728892657705547702458676412567149155152733858383324259446048684483633158961851041974692155440904774664330740859976008691877660686968527833107265781338337606615463488478795102212201834818404288622899026179563058443452017443668559042234551746271650539924291590920117896317866363690146376871849283640444081180232706305058383563624341584077864104501522105244233736296258661174791652084430759577780151244842851326446042687772366858544529288327220328168973657145082248474156268681077427876344322951494751717474923701390424478884354891591838763802283342991851484253691245210666323291114268070161457535864134668104066563626511685863615899859223728148282236734464630709006893686541963960481356012991867350301684993178197799136193176165385232405592434250540968107968458082139549348956535051685735893691881039767757078168507917437372167644028044967999761909988017131473215358274572933662346845662580641353906628755601714809203620735423493145407822702007677247811536681622518544938404923590139753906806186614634661042437433335126994120594221954355528757623924942709551711542743426030366293914693686803980635749981689380618280337285654671265454538059614752723872442532327999542418342180438610459973822476351951425009577630147509428421885369831673442103507400888458555763979385501633634639029534130854022999302413912685107551295858240594986558501007005258158076868439963572584378181980709889862038109832703610302448607182868546827548842117217677087111958376433586047374570183048418897480773740693677005070891964931707251824547528883171022412660628905193190404881197803087014415033210328398574243289693156171703815229155085645710716957580853523627380259095162409361954882623664459814139255129095237868552770330638472748626021392418350457410696900067084867737668613004528580639712879043026758267000063236894121594435551680072343874038669616816088623330747296782119974225952113814512521587986756642926568125334844717143261794208520318925341532194315706379949115483688985526869881239888158100599642310715425739757730913327456155917768050781489183643707966611204865346456339077301134005486869832707349542310967475013651111332741578296808365460237825924752543970886208061644646504591212017084961452678674233847297276590012197024179835705195864600639859935553423855094926603291851384900898851074727640200499404299268676849091044200565293732638573992735973566222685203401857760161760276604981976848919761918500641686995915136447724894395118399536178771675419655053748963037925510299163347914198384742740145713786881296466459686880101575798238077389105047222320716993750178392729312572552911582787969353889503295380322718906793035314939387865639038773007523438610111648950056590475964925917399222987183701072668904129384434262220192678299869055905237313712714260357817694264680062956777082599227628749781761575825118847961996639516459932689784638047204815337178322391484216311807354347604246902251025135306212228127831841176844033508786410895990641020524258230909252399589879006423122448174092814766717755918484860230231206330765446744751811470435888688276751575782570373682640076670060892914577736442472673882924212772189688034449567255179376313949155339213789621115259717784749807066342135463150496992297096664365948424342945687166713993245801535882794439293038906727925612578935923135993835865083426743159894248526334247144263463221221366684922934017972606168014991605714660864266009704578672364451781244376714784094105507512067352635574595260006308028951497681668805346982791545890969857752756268579872376123999943846239878528717870445585986746158737786595961329782094358443215373797972568457949045344508259856468820862975170737298539145056689275596400675560880317870840360088835725585578356174554144196258237268172733612668893496959416770979898155513430490281716588538706244853193164605869913143620466221473656458540077600231493821435884415345788631670536248320496612468787000586589544026259985305182057523420380972931278677319203325058189965010048284107189084797833841135053756985682083085713948596699785567068508899818762565679192828712548237335257500624448321742106113457729799842281884362418878861162274312681973864724276571976015266181987798033774993541056006485339809912292626022676274645465454671710898883313395674054726208873314156894176086425834790141987311844360215547583341454803540342987167518158302293177608036023985801370430919048391361674245716898927600402886072267683506164443808093528311293879885445539174665560110008072999114221175161821414613348649807044673108208080458886500734617479848173687558683489673097941958102389101595382634789670798017139135701239521913973077936943945249196743073026828797831588772284361320430636564782412035148041965136198236869164051493570338910665282857244842849257810463216832765176068211544553330581139201480949171742798552079042887085240127880553191133781581721691535293488369975172238754698110689677776684225829337177262798533320834434549454284020529256802670020179573776359241753053564597254060232668073648694244438203521753737883369733487246560897655653433130750993314924675423589571660905093430899695199187828326572666654776226003707318860998344845166451770528329668808546134640458709841505223849308191237632410132312038673072123054379167220811753351629412794740951965229150509034859220249139521941492523614589639378971301263486477732476802106291843774307005482828435554083181952509677158042744227404313657100194871358460488413846257683550458848113509023064791709293608227738761548885652138475947806618431479413323396966132982130226298930595223453151615002055749094911845555540196911128661269962499335229086230783133626618526095313453826168461286385167597335474395593033583022995200700967015194819849846535197183916459060367111928535208637648213347844744652873660182184394860495447981504877813471842344256585984944994042473358584496109456214568738718822231283335140000441539459193725067450371083642358518846775168088809793187118098478460890315803493044705705367228778809877246074919205484628556816675974850222198403805405777363257597901510600707392895035643480124237697942947387082761544582016814547216245544580576796579258756934682023520441709993833385204274370654553764543211181609199734788001545314938570456116835029163170808890705063075078131017700373052963639156507577588689204792487731177425961504139595496747226411729754762840990279703319892491756519805176927088896169462725488148056804681647739784169289289704213271994859024138493799151586009074181130982226689952133303771332179424049750446448635627374071087269557811065419640845384747141652827513145514534989662778458544701045745161924573628846459514796318833213278700012645366241205271313234963634560205061644989670909323125093378440230867386546469624522759847970537737225511904243597053972460450314461646569858996532463069021550873397367868465843983660406795525566456735206953561297520488800124604186794878548001982435539476005435346266383582585364192299989361171444658263426080236747033304873567317219134440515070012103016822540152256331909661515629864479158336516950555426599662377739659723665282329525251609672523777412353504538495247155653070694412779541715744251141621122734693107405296124968827350913889604692302725615613672176829243076950132274633609055504165892394975246552611884047679904633314923617440136171139363341668467293079772977564860210705289197183698466358932266508554527345099720124998269123311170137410420852845519331990017248757589752632639283660696578924945208037670728141184364366530924081246782291502980103024368399280214165279901640603841661147805512150409668433299717979081960528601582236835977742589685435273679088281153895169736027181828466933450471784595803333656127261668316671400677483693759142209751089130301674532453284220739039292869817289767161983771966293125391106188661515965716802745690847314304152481039515558579409691248085564185714747339936202853037974863124915412658511529918035610516036245579667046086767171063104246159308169654058268653775897840055406613728655211183540112845484231978653385549377524640362905593985075654138416404673248716550303377928487140475129291583191801879458494461981714906724001287810279935076762998302282510206974634730629329903782208119412732694313157439858571739048208528276842501878095474939624966925208029828571706748426538041376243139574567688431840279497886805841444455859726662618950853566085947892823494845156236595002631391975257845821255264896569848906023590874420701626052120862482403453241514514137870258127764657969130438337706088521452482579019872820997023714487672137074854346616943931831279088158991774774574749346680398453819526365487205476934171167322752768499208006268940489568842909019438189299112117811683201771177090032979619317870885072010971032998624956725580286407439455719707383401953514719077083874042936394680753925122290420411300394833696957571933622696905381911372867679730693865745956734703971727814538208662571032443028285770004055987058745847507071773922591576416806955126698252977054547897456314689314126774648706405599053299322770189383097161660019182544117251145261492006178493809104368896218728688593938547640530535968929452846363088727623507168175944608816453254841519850005385800304113074625872998240130740595941419416780967436834396879836368837204281792073617770910217570067813759641568910392700975090200745711499624949161044167218288972322233050602778225313541582267799585034850466735433255764986085941801626434228581206701808319379499753701352914750534285579005065025974086702487362912665249348441483622750536419986643946551829350944428439036094717189820003582685366845983787085884155323584073081005616131622944928345136677522393045324157619264796346735879524123339031516555001920664581396404143676940727653032744885923550826978843951814661652470173918555122008773114295638647259341932719669398454394041775798501129611354968450443921988530431158350826892844002121749187909276577196284800357568463683336532921768389069027263561522087797791565226883334583609700451299034639201188333380641713452215476148708815977178693858254152003108832589889416066002580555896192442596241685212133939676769224984299884789470024054457899226612265360182005528975240567660240556788848004407993360090329612068742568485872121081241712039223229293992302630557769933655569206474278676800811760536678418862197352676226898090451683869327328579992873118785221442927547701362107821249146959504977200579018631988697572868949653657001758585636471090911173190345996066516390702764208737419319804983910334275923495888027819477242756758853226383284106983362689101729753067094977389356701728230818361018790954461326994465817970890429174864230282456521243140031517731524604477837984201554199446613801809928868705722940925983125837551571751217866378695680144692289161396001976069252543746880492323279783824117275211017348667039178955181654503740902145465877004119762336794015477327418130669494164680694631366349029149871877426833126162721528067502527103509680326321755490230027540491605609841477824628094919288357797382229974575410520687664848428660018435230443015314747317097459762665247429912114362875444915238008257674086847849042757646704853867351153059991748602980671348205336231573535471302110891561160194962273099080392032895886044097354278059940576624263740734548883664831692466780321613093804453433969244939341742070752330588103454813132274609748047927902907044540594201314500687827811931225024444958035513489977088238467388133326223246558807526653864073411246387740263765226335474283536005584380576651507486545339415324188119636112851586817901798175569163015048567010941473258779762129500672757725435211485311453933820775994670169122214654342209993601005252514049000279740225317350804127252740803938845285382708983771203897545723944762826356644418450834583395215400387373918666840165821697434285214662800693329156405488623564260509580840111169151311680143956007659486032531359367286460109411698763126732976520235417478219896936449211874892989689147524336061835094197753622619885100007557113925720102818348727022839327529952942820811718893537627930194027255071973437555426222946352150034416231270072241984886498571932326995421307133561703193512210910018296003314968288227415868765364161761560230720639303287749010691182052737773913151396102695133414350362170729353206660592995231286432565005341408616521072991766314182132055185002189566065390109932721246957081950503605683316343652390944587382266324442855939133025254705335452358290446056031194153379539354983286907665424171710490858996746493721441225246292336660214837084675932531287284381758514423451873629259987453922606449515721632547131718761958473187156931242693358983977033262837702553381059810745869730064393279495611313660447804321443187701110249189497461699973411377308843649452922746093956514123612325762284456235068323792402106662632624200518829427430706029350149656267604590065057706476556577298918413530742945428503036318406360534479598668798803253189770378808923737844206231568368058632255481823205801995449423887100563288495910352301419206526047641379716263057146957809129047751628285861048077040624110771850809230019986575392214530304327115914811723970003299509780475718455564267829189671038026667171771897181316678081427633900107187629046705147844897015049689132657480504774203349918317635411649319540859864929447765010743369448150743186897329469930327177070863173292101786152798279804896868206196874568694427142924737863536763055366613085470796976185325876276228542772387536250679416647155676734512352863129522618242933082957984334994330639478434266400959629345119693473627709679869536479072044425015460200352539252649721601248707767555364292823646887009863598512238111549676834658393282172259768743295936438003869587984131423844869667823616783122911205064497502073086225812153487210088222967517819821004415152004793862470771009424201331028278892276623759679576661076914191447531367898260816722450782450313171326903032933710443611748692897960224029405047066726361135825220639056623912193613878755792423086532506237201157384609977218772642376465688613223959383910302722235187175556199241122640504204877358620322668820808620443208053974875027671446115273647779453885777893195447827800990745119269082265739984634985126828484355213578405510439525779005434209408156508971113095787381507885647684424078956967356074651472430803394847553242066135451627924621382665552386739788564038152533455121021594966727536135014115721692457320490294709752547092811056171295266693948279923074118365136263095641893315730556057740054979465377193457373505575918221494414153165594602345225969780658078353862425452939427446132180006184592962645106237466459508611111216213247464993069108746034610131322063837381661222608135904260810035342799334062997291521440072835462400605709077236971514790695811471973580294752071368864419323865258972866478350586973656818171235048853270494591258333315667002765401532244032549171437426173359597938686392992296845827783725108708466439140567916971443595887607972570244515827737065752722509486496143316246740261920402860315079223814423903161964076558387858921257531183434780413349373422561325433116292678971846218559484376875975000748376180084128495717915974033689039119504427839018008194360562370204701736163680176803138061965227113518256212869593261242715409704591369088596294592494570433416978951829924112730771903726666374308608958543806378274572845906077820536013303102535242032234123734865996158745769000003597769469250776156249428004898352363874268641539510035958990228640475313340531983171088956975774546946748511171977545382974345746472092209068813636359755252706673441138039062181321521824583941232530611627920661381566607879337506644128897614149604255901061131729551073372755222364413068743476285750253155886710338847174799090589086148631776223287704917005214188492282505832988378914145725168304478452999456588976092996254564818148812115099090155815398328181603900359681738253187406770859250143754057395135938023386626779124390238125369133656351093967740676143750850096290538804921226919849361300748861088510086346295576948755097695836009347473948470235701981653161114247921842799954681312224109559537848195489164103687418061765312273597313184778481362704877587645173426774368617792431966938074723472881143779852740340516363235676353427060552232005760026586240590542004815786978047040220043290974091588346557108443551717990324887074967228835389703702183696324111193738679048238002089027605143076144117136687495809504944949675945331683436946251291280265329495249495624757266730896709363642886902857243077596992877439890133911212622640286981831568964857634539800498984898466573011895126917594733185200514882173832826099789479068606397029406021204699110410503287413870899380075846904128437229423346159592451909186467282206424570119240422387169712097680892191637976794145085404550198942636300265538270439809675634846562967294894982269873163529947520707306798948267491079938660510349083041233414995929771076942369514369903942119387570446441865015600176539539182463276182470836075925005861810202615532907413891718047387278790819930893671805219659707475665820374292026220241959062497163386344558799403111837690405763032556180865516772386799405492312024345241627828708292738779612404016762366520329872181095211932698748459463085325583327903473848364857967284698485353449366257708410711368856314173655343131016903080586033138492446559716814235102567302982747080667440651098645422921989945472468796162794011091893336772598811760777330998223377955213929320102216261936325823123417352852896409367352277861966249173840314219379222017181844518754950659740988169639019527684537200046941631257728856221328847944495826284438870627650068131028920991294528599264253223057688095474927137354267875152025257791478575442662462384816995360089842445552701885210720857324039699343560288877844713946194210731341132830898350383440786434628474148232246163906489491150465606867211709435175857942454912903998292709910488849316922428787331327681787671796878730372247452563272562579364430146483161047980350284503204176865077310187851268148908366256173891850168976476367558129448865510065147285381304811792257605670957280947606590349191843727676833360917227893311722230124626656572736915485021538327486991783032566598899344657240390119787890839873242224896056111941063889927604014735243692421995887479159273062411513577915448216347418373748985986209613647159106130051053775666192318114314450130465006821452955364120895174407189672502116970484562521140447127548500179446769041283536930868884637069186667921456133316100851694731022053035590026591789441062903573855708860382912397560013896054418465820769755880964225565090776435888277604149006660989308613123375996397683903011765549734611018591849876342237250221124100256362204993004608346587419748258771757073836603532034520728705524568724876835890341180080642015109453301701215821045947974895952519283423225102134365872203968779710126815332171708238559468531708377027085203300063143718456377790385272448695778220262263320995762362567958335461132620928956359304664567351648352639506115485017073540259983430024869607516218690259299538695960175235246708238837319501723291054141452669830929631833074884195246017786481901867005173350054555622073948348892032921301171878977894376216558027270258451331091743276022081975805910370356530751450397204848163209503978683455805682512021999074690313200652405783635542679449988875824486742398728809752540654219304503713001496937804485071447297083311915901662366534403959830306867359304740524609170422494882655921342455326571611689432813159736183095002969468347711773202837761295436632011061430832239145726678541831359152716895413807206776639360290314795223825762854723366502504535071167463763529267136382014973528503456759749246511313623413250135015037518041111868945443733578259484307904506862745859498459783006201827248032209276381181236171363276430214833743413461186971349948690265373819962710143434505492679298778292219562854508337234458053139185717307419533360866071057006602296514665379060927451567629920689539226454224155122167902900421651589811571566459640410207238750753485299774998560037252052061300752603558560102791862602522468968295684235898942306979880499443222320749356961063843503244459220642959872164315368425638686646004408056301848510344516435491230351957981170374045967835750527421802339773321926701107506176567671791837355388104243634976851712024695982988284684210241504030654907776327321125110974067920659274710862267747922892483486510590294169879648363167774320592318064997024293155268807798703794213694273209217326788247995417078011702417553160630091091794584990046124742857574212054214831818684966971225458911850726989329852883975264919660886123957727028030733642752680593325906823612838567626568066912523350455745767541931618571686548239104342724070453342542921128143908556573951371817249399609651827913740532206647304671940763854831851636190941891447593150850782472292822135170732806986149466669047891924517531558835803920219204232205365016204386294981664513060884457167274268906926398009249077308149664121214427364386118081970818087987930418511669928160769771342538351501162720601090971962473406267559973952316071950546964498047166005937313746363026016627418760404634390475705058492635919399022253048891448973088309567871909374453580714234634682106993615474953542911330542636277515949325867859504130279248504486821510570859419896868773302363726407211444820061114723665157036558707611269800281977536322891760464415909210029862672608644731072402680196718849667776971372960016446445194937689162016804564875888221226680889869275788842733100776017980630074141276663601065422720406195309263320750377181647675625429786532136356192153268947586422801223227938291643799295752500959863314457046786054641897113258041899587485188406875256517595818708944895273203331509884432185375949527510070211169115005190015379240050540536832616230541693183297599134007369092090283705410203786151375320928185739576130366906467397479614467990336600095013520537171341630638264805927970718504845412093490584925564420396872300876140532876358214783030308652953139484552913436791827045669099636889108866499224159953651429437148585205128470401258564238896848273568068865156023252708721115285793172346726249356268700159637030161956127195130435279267581462228163390259124459371065070110047523262504688712106127393262176460512408722430102660135525004777880059339682427744151081936796505112451014506632776354774479678919236281533344228816786126069312385372657049881438638814601587506378435885579780367340191172635640901074512980030589293370991359732301493416944539857985058316079321426442285420435551401710361660971764615217025860222904458922324846282778663619187079795345201984188095342644761234148730710966344210708121856161990824074173176883319968891751860898634799671417952552067657226077720244263561609123502248318299776478717877608224833288525755174680100763950985426893407194448525563410669578920383680819527190416928014032914341134085266392137505633433768831771350126384097971195841985157843015901104389547723960281241458150650887486195207619989116014912616185504279453402012754010643766794808157453071269656303517357350706765850799009536113848325775272232361780644573909586782666154964300988174113540620891597411137619816222734229516491020111593255952014868351003096303913616976997898015251030663320627020000109097146177206381336585166312934549655162625083296010278387743356292318844355630999686156962288117066828164358077417556738388721838416356513320767749030639162523729406196503580565707145684110997661560822305483853210253223501947427946816832206796705373801888774642211482961744901914167109599922899917236823809077287563738577200509112122111354974746204780202158266551768606949660474451736362997812276635908928494149792850677034756129177437849207128142355587500429419460990663823873727864309895207362230826106740996212754934328543836812111461875073726286230719848657259935399087164308652895903273786653145214980261082372442443776530763112530330015975992645835099962021221356763579058374123719344737941984177053954403097633446486446166805982056139399170706657360633739166242261756723492928876454024730220756655926348517146857214089800926878575447066984223903209434261910575741827960766112712663955375773037406850214089336322277585719356763145407003782439597624927593867690775199148560923109081385602325517322301156727226677377317791057511625702487539832908341962845942421914168382902340759498019605360210751621720126878318904118846971899003564817291379574877709044726768172733065303511110816804335053741565468373302139095846967944474128695419340481267192603149498234517664133394870340531476014317003208831865086373304100763986926195483070626039644261821083811057487243637197491644780980276783398517515356821510027218124881444339768432150110183835925925449681052654121422341796015381928630868413046285609285509803312115890508498548551033005394139021934139591252977161075533834654442124449029492820054706054791245642424264137504155367836287904893791926055762794528387954264770801149958759711705760582894699388956122841206098448891156401655218181516644203445512872914324963534245090803484436364936479096746972467075051631519707323729878083903060014729392831070917294185383314899136749277325821936807272374900685792319063404686124932207320392178621913111524004956075138429934248160400185976559982703321044109496258323711891513326477870520169550810502841202037464698025530949658985925346934508795542527261990725074943438678754035670063800444287262015037343030425986005525173256085733105971148027124436457945962301255779044083594430155278468196201032324702132198930642282436909009167758913914935457114877647007714500109331067779160187494702417265329727049976526643850793638587091521214658852295269651855308332170691454568438793121374728948191995865262649506141431160414751952804127100310879957861245877049280621669710016066617084566840441556657803085583106463151492378153838792023361136219045040983266147181525565520838765124239220204725376004519156338315187772633829817482833769907387682951726965954893112852589352742461425952803459372740416204124079383561778651860088636765545675623397856812311119490006384603188104260622742502556836354836736341129730555700636025577558013171374703433930272586404417827110692058845749635330557695164408625369183654272267504947895744340754876991573589481849735256797151446433783537646214805042087377488384400476063807952879395156999423278381848973096923159252604040976930683508479158450965118603625789802502878476798960409937574266294264107467344282876074753522176033913648386318756592366071105078592885241309473148418670473765734589653268215278810224888872940013898259389664039914055386571189582261797562918660305161269761000310648696232624451478335497036268391821002490307562516167457961999457445356324626825096298251073919295410229195809151480484480387339189989686175249332506756138287853112519758803630527554877732512000795082625445432410308284542532250043828243814234849276719746597044664547588828858140033185752052122362742053310027417052713634382293227243173301144301403441915305817079337273606876826147351665228160608195421662098305226353427807266889517286556013782401812363979003817640804398055806940629916746145122032111934376404461661459561811488356672249733433026061606681726134226988617138275300047621997551647097889701349685782866521549180509426848276117903326157262464538700144189309955011491205101477017288924883971609128061497508369094294946197451536013898452203376995070546290211033840136313618905444977350217467452209614174186873387729908588252158154523163660622246224780534870754731919553521901791956791884932882415197141979902365343502658116171592243253762666345357667953808905940703203919007132532179875277474219243453069136267438327069838513647194523659510068511058340958899420151118049792707435422248727929361460289859105650835166884185692584976363514971352722938289620624606994217517028934195049867629052039061851539521737533898866029954831725881677261211178789712808879830364716108300556278395304245801047656547925727116915807711325462903421767186027205765117711854280802355117502769749703238102454531616470348995802665430896511838659807831113775135914862022688648098847684546935870136505828453818849681921721323186322689728157415899200657413119773386895415254776257082845453641693169618217805878204765383001879747673238551271181247192354402702548213825944493125603067750385563017736291107639732992839514790425512344449010121610712496035433994383515205174416470145638130544209878576337585203502647370156258696807683112624736863675024266086124196802602356306819584127481660293334205808188625761429589735172034739343932244902033073798222702740107336648712012795410513661214568804357033552895469224549772733145718700683447138113594229919176061235087855917543064674513663927170639854290598798969545641327664947533768240069870182102466956302087103555896639684375680379082599397056714301842790430404220438318830677099421310498890902945538608217695845588855333680347979002254860041683608114252812803899672119554109083092365825651139642075734652660625629419536498003041717538360256805990454239705991723176483143742496405997033793208396295640221440275544839390475626955511370379290389700997350916510770744230554580211911640027508581227772980290552599402476740632233314814537916602292776541072270239327408499523078177307930636436214487568790560421092979690355628751901545661354662232822919596751612926615263087250065236188629807393276848190884467576762004639545254435721119953842123767180894960567552211943522355410508969566711770309358168249372145352012934944625672703979120923310447875795182347760380268925879314383814910658052290961833949073452288712683537764121711990664515233744843909992686485047241310998240868262640906501099132040559086041901758947994415719291859706613985347719111341563233171676453883505140574384927963380796578606734724480239666346375207202080943604338825788292820910551699150974258954968368147381124913970440760109946444764248921527328763635325811253601340132073410909764776346967120631127783459390150370709219150175085981345812841827448506274293849432645498043394132364520398167628300923525858348995484095193070284026075768819467439342867654991614664973502984985994133169539900313112445198246405267973701182529112837373995305539823089507844532913306832112156726459121430217351485884917721474491285444735503205715420309438736601976858691706830602875369169956906054103677664778115006771723778193818702639602730079287972910200932709057878760192596407207703464002373713297591948549743119386797779892404081172445694337690540745170994954191826177507407137015629760871639700641971737380757442454375386961692016304927448783800017676663210422568016466105212727257815800283018460775292947912237880956680500270315600391058210576394993035403442542447043196346937341300708066413702238154162931160023902101567364970496987742903475686002954767957498541430624014436942661132922952575289661604298267545226269545243400375734893088336443714391789668462719805919510409079494705083308469711397742576661138806350298707904680653528179943953768591293762244896373115806976609276076615469462208519785372702516737690655098039802355640042237803987775885333619362597635780876387774548781268492646672260269233992705870768538846113662881565645715906351261147657346323542649774560712058378447475205130699382735991912384603400515248346558542975619850659841390385554173909184744958377723088147011052030175932296428787687536515607666009437524142199987249013522202727370492737865430597815851055424118817705891486919716112130242486653852979459768530894622509534427933822233463397764130952273443395927173379032912117409503306839011112558094693087106411364753740732495018370634592490570449337531102030654379556100249045662723639585911133588829352839891823909548148239210158296199755210765522530050640989916275600945088651452398549603664013181674827292318356070775989564365096470813949641844563808852880046495482712152297490436622500919155282960694953733723782914484323796158671769884679962586116115194909080153564916680802573292111157987264445548137332960877218697031616207594229939887328116769225099027686590145058771556985476625176174288410277737523222059380489219893974052131742339661160892315210070555503569568385783209367095358299515052313150282725602850072368072075824976888835639519220332800954394672407588757927064681129967354870044791035868503666264510893568459419167122960837899542837269735601720072928028725510779307261136714394955545645158007351049693939238442081859437736207227211057435676921494657424182600866866072062965121835718188864275704812573107921090529173993156013362718786607223032099159100633894017849512726041738384795911178348056931645276183435787597715160491830881862384087885397283181196757388620920786361475400101040850371090687199890586730569566139618454313939766813349960247031797510423140476982540312905508870057694359156670394055562274882527848776702351326750894814880450832906951685930813570312871368420861739249076990443303366882660790272291205790636677180846575765391724957779142262326031953333328572313550611629793020359770243783226288917372039900146460015634392907012543533836959521917771371567455039820307668405490138186190609525228261706727548794781790047192234481973066007758038416456581069516484217873613889618868237038702891825478993311614408882161353789111029420405879688028824535488478731682582613438703942721969224896575466634315403629905781267786952785324232293512291180599151031967009493235254238734000264680762944045945485484204712992455734197708665001884896209881757560104701881598184268224912939951476920903399519685256187082840849994455365298041084603206263431991376381228868686209278162463539556612980280167940118718971250602684033899582042550877375617972050874424959397790447256369314118691112816469377318164939262704165742961660858746686314255391392729463531580164045066203527072027881305906005182267825185262286707027081550855863294802168761273336903017951737771995843433798566658308097447071821520087352595514856114677674802156067573958127470993617543502468882929713111807971835334378804714379689702070702106698829297577480224910436525972554252385106564057767350114370312752505976603874245431187346070806296824095210446043303392640595432022237753013888435546647939145648108907201225341253083049349529920838816829307593907136701025609381218844032315476124561150371503628365951619921280463886341182039197651606770794482422426107820917520021162662510089053897206822849149947830895469783675833245253539627668005748444612372291949174307549810197182327063744707185501354425575711611985663574512847348451237803970158036587869230317667316573322241066827553639006704669517231570850820821959896571991793262129740451811268269917721685192081836588184506276882275574079844448156489180644090843321818397980468949889405122358762288114760424361373530344084872170917894398215617587805254608502210308431316576141856355729988256786947370825790701196194794735458086323304139051016752755253479775816605695275605859529202782455918851557194816632905854260544249972244314008442146630791045358645317906267107999831564014488926261665988521671089226358890602536098306211530236354532041820732386949981316381120964744392875077646469452286220310202316010032080779687304376522107982589154022174206685933540870967522618382702399640658476430052130295107016640423230979322478570499761111906922696541209927380567909565689468439323236685569149916633337269651851210928079774708478718633919719342493198024346009608135358444467729295644559368524443892241845195691074928720466431737080245236681386072372881235237901219461374289861160168055766017755635369697966211340709041402419377429284223376414149884672102446068640636240784593747451498221667030193993592498268412002678216524074099039162006077624194694417172735157190866645000476582466249394472437712912892479923119543182482206938304921421410824335700969559194634772703746677836536273409668775069643506273432703325223103780607869866329201833748781752400378384091915750202225567680722795088323154874025955422049702739206605052987155565682790233700818172151720165115972649086442011786445768103393387849095785718579804057662427461095070224662297420883339814725454455306599122702240651162678672342193890549971820260798961643027493589709861597742641019286787454386162962248383423848003352712735223761526977495536528961008967409910056641850200371487597513506824851730132246501454805285208601480539061386234013543641241446407813581043798343690955772094654163259955213884187989529888459908241539686503653667032437542323758399797415681667371137499080400003994339543070896966309915221706169561042412246089998004773887154932279462063612879161187464005632174043580898374666523468238960599219180497337633930227894387865596865169319292248798454736656584637330050050604922527464092953972640349860019627180158648072107775533677797745752624891714437694066267569428103036848763006324663290392326101536487276862997298145874157075516027728980955930192489531978905176087013801700090663187583222306177810280358616012653574750113072835948951001040936322413156415401662655486343749932045906024626383135575511424875583100901520227768319246891098990885502565991834229952511697745734492499648057514590605644728587544451713057497450626296951127645576260406251349993197527799384918909735391634665728194269277838869396667066388712814876177398520775459020529809082900098425225144586717854274613618984567211798250638192616386944910531230337118345542431711257842803402685683083170493307497384171542505277338115889924904741925780104446440657794005605825754168758781183355196983516346011346074396937918983859228529595927793216836729557552111164466849955785819080407923382908517506471152525561786876177359598859804052172823786822638531884619156460348084660939927053935695052948218154857863984544373078921377373031357108652945722768208011479559053580486771368377450822421723834110709865549242496536874716142808998829104460689351728449048467620670714859688614940159384339199391267447024247628989387792802194174975524214156135855497732620305265087477712155757536855227701774550822913981294442752563930002592779630602029098205551389251128621603684335289947200907563709981710724114771139449650359531356185859461137512207287252334654856604569709068073794512022479915312243166873690148973343154534492398360947472923161262252129958266553360463902911651147920808210828741262066157977657094816427808311538370252383591781757521520572399738717977607183858854987608601546875645520623462253286189383617402373136975677679411221952055168309866022725503314842442043742959134448297653598009174705391516302084263181757089025948359472758763528283912738704599259069944360823567261091947671966510284000096626103261829480988243494644688119214623526465897653656106482408658995175334422549223600327165228386227275099968010840874530009859615954599024091824683875758265272750258236772842861740318964143676061270467538471039333853067121329656520568777727526103457788988654530446531920527539835689080172653312065264195566401648183523801922756259715769307529352626684924363057456735649203605632551130204284588578514902016246688663347062115013145084772335202928657466946934499401248258536777180026683272509777576032935006425221525835930059020455629899516898796135818571983318331358427916581981037183319161179173550222717793633434286241341413646363570931462518570210911918144669517370050074188323870022201827801021376964747167888634848913578011360034655729213757015825555966695401393360442505970666767411688850038889234939023046178703940278695213772599662710651351466511834594624393235262002129073264955930882962269054810453833257785598055042022380039329237388591893312383050568467876978424966016532494868169429782336299737849884246377173359273854226670103582397507874231200301502660666989183414626264281239880005265197168922802036401921389293324150832816474336620995233359818581807233849502473204853954270625902560255373460902658727153589039561829944445983064652365139254617325508087873395197644125423617771397338539386813799577735210696161159678440572241250965696473434219130953460283928216549271135635765076827745490793285296778404876323350991440787786972709461780897174914115596090035077639197002509825558710672252114650309004227265023122135315120258468530890785900771767691906359450304671000293444431107552181152974732729816775885498963976456126063111090938512381613904573214451015981639599828406807137195621753590470008477899695838258571110892266009925471953705107693975377262469216577469973619177286090032992756254697910868246959760297058751941350693652105462491607139470127580266258645849689372989102639887795796566821481168164807237245780220840564534794445795613362659916069347736266468585002783095903516389132566494285712150743521460686835546122348923633956741469945671666481616669308817746950958922300037451860301402348818063847143138207626114374683815739165957781437104326599760052312267274801887552272517898674952066519400941334712445232695160390206327215199438725618580149918883311726760844747032617399849818831447004881741935636680174277268017728697103754308659020065117246918610206042905055803650948099957899245313970485389299320159313655615891464263974067995722607123708552968108555718601560837325171659589229710222321398314458328889918615490002804071411856024705604613209054478103649006243231204972825795263636501002190711926679539579772402304707450472937247961579776120014572096069421377761382536355545156499593778273076742110452584229070512263106907822190678935082817333668220587883880994773965459028109911781574349127859325896277212671420331991792185826409846301851076920102692477021219718665703062454299667503878679695513626354236114208995316965910782564288803513777105387646181542522412597403791392382430833303138828473494672439935536037334164324933209538311181894042961532157178765691120012023863865895380438371714430828859337943917376564892121160949655061846372110889626508933382743595984442424817255646343498959886723829093521755755538624305992948606974303424609699005180531101277625831252582756651992654146391334611265894984358214138778419609138441121902319648141202139905722705709169153440598933047944108681502891884426328336884484341984988047977425090564349945029718090021480428533253382112251402357099138002480377699193739279502465525060511845547096389015383493618229814437331520821497422949847863773882553728058913498277061804801195341344284585031071520692456028901440542844744932471934085622568547901916559159764124353356064721376318570907192020018788563465264908595008501051258099406797076421287940653946755527077135009171595863557400556878502406770704538000808745543764908592202986589884796638695095079665956843471090364330286271096971845510581926482634090211494868402803147735537473643659319613151526234834213462728695252124880363532489832123630797220501715081748574111132924793017128830612204328453600382977606725695592961131736308446128033551121028745366997916273734994488647402237038860835588432179079619840197442760741570044487883511230573041130672694290740764578635753784918672034726060039221987052745698500504803933950878054434627897148983285620357998032554376592694642829273625608906624846842479263122333805150113499010279738126957174569907143945448852649032143574044463606042052098566328678784135615754747515280541563983488578875583051566010387011252236510333918966339242442066163535790330882181322386282423982007936986390648737642357817477133599502968508300561898512085230843286080537711761250240328584595185235950146239849422709105377533165076672848611782255942654482922550408882594252511421980628549021531846715199298732354505120147146356117863103876479903442522748126490018451571749995305929441976912491708340299931362215097192380132855558872549524897250578282499746039010487211327387753255714864775035315917512885811142027739768583604279785074068433511217326111328566458323641176444518408552609156120778587759038912303589342991132238794566819819551436193555174440525861606430255862626033746991510620741893244935891160547890211733393708525187805813262800209392853373464706093049640090082689143044467671353761575751946476944797621809318152826785199516805607587408476468276638259325663067224030543305950034550034488012033659907890986636914797363226708056492544970628164029282666246042527412452712868438238694769565285704857862629481417066018368046975346746937503243914871826168844929541373366400109494483646666737924978970992168384483441922855476786320507649423439665654061796412085172193142814314954917105777978575404915391116372887132598097713931332057837564384206232018917110108123492738049352037208819527423568063769760929261827045439593207366040201631618139423767323082737867572557890726187278730723774161148848057791298927963345519501055528295880831196581444339737181995404668060443249789242496792149354502082144437893275461416213022621135543202496872665667427484899464289240688654534554283559809587425039985829178490124328605618933653012848891379491238349334716651008748232335472759698777264480236615925665713027714997567995276517050405303165697365784941100873187342456542156940666300715088261401957932265528708922460504747399144249022060755433766790921380647978485329654035512069002135108200657873868414875670726065710037234838093445772974868489584035900137962681566869905392181647765036371288276424494043119582886477481248096999397428735645312459308437236887475687554788424625817239005010259284598294628584119587848725583446516892384463390176264504179436439085458984397996183082854645146814429779374213586524152940100283949575585986674120821329202721694945013627647014823574220020007510984758844232971007797793560784812045755320572120730238903783774075313503634480707906420226857197168676469362992212174611808641220645541470879916686418847677031260812455580256984059680887161694636254071160427399392167177784648729205012330710678665769646269811207729347610844445356126819612763688614912234262046442944780210225248035460953733464704498512958089134290909556239358019545057920443088712499277580685505092756546054278052761742887359737459428709858078008472294464659508911984058328421296479123737818434642353625603686443832189241657814252689998309107271574386835231422978943796099512755369445238320565805432222992048933603977548363469647673815961936081801282470439016237206717857365128721329787306528588071778312920249337674948354806502209205214707827679768333876123829271436071717201352909237094355165873815586849168460291991106338157607950395810296018762233173356063147203931321611409412781540494925151374323251411576606787464133321286174026544905848140755488182108784664722640652853079746421112153817338052035319363028817268217413234083965370762787833964516447430892885322132825179103134126938886023687170771392031997913127022236348370746007139704624307939531631011217668067911702065179304610526018068296470304615100882139547332784322944496045652577298603639746368397178111477659854947028717942468953601108498057685249310418459728004467330508949529136894242834894572171932503982566613193341932003449874597797090452187329138778538086300784779873068359601005817452838554692959622041142516200881312366756028679649759954300862730057892904585968185663321030524416866768366466877134613062401987065357403239298127148466424309771700845545227186533066960259907518014989225321435764514596735142693663365813968113291307721974713871951616377788521575120835661265907189145353650979990328913447110478432875094942796411443133540327695416988674337442470915260982342701221507056195797492533395870687440775539492084979356311711107807906423525381516355657614955205899744167096335246258184204209774695145499746480959174528977542718438488702991981483891850502205044058737867026741932759615799323211944126847558606836004900091227277859341633100649072186156285556312966789861378118546887031785398344758853190388233090504630747384619023333104145440755280390812983685035238581613650047539762998105080039093719759021225921925262177437037964111050960451586607407107505933742259822584566711686123855278749816062558101061385024154739101097221407392588653136256854654585290056638557439689903445339112273328406041589867406510792963333616395637672214527539612739736558908704393234448514793372660293130317695110574816862465914116689835889314015441120576652305451245479082317220251274050685365908923160978035558559823517672228709670978904131194752476496158868981179858875709888931279151864402982385815436962970475813840668984283506440435290798625362927509062008278110541166225161044449925785031213536137722594996659143662082558464256328639411633372163581306764692008607620279808420047676220424928060787636173589827268407778420883463513603594684338141311185856396067659360197368049900758421734687195404270548117836999978851613129090377607622570271367571751322059043228590976177357978291601464403702307158594069845034939144995259561253607203109926153574892706752874162414888658847292094980349777974365003576718430151940992450449741280780962565006680048569673712206242239389206623705752774094979751168067841761613167596359520048646600879041659255279648557099628400252851764856060443924649252854365578751017065547642648518371915508382943528354184862027860547712794249086827140337734103568857042018734271535468336763661650118892631744036686017312729439561759528107078267357810433744691223361256822033701414603079394752344607685487229858510947702808671184931400396218590644939011982557780371983719416529007974780297000699564208145126837010488575271326348594171154326045045088430008347659639490044611241611923531188062357897850782453476591581197322600850504316674601488508860916673812851378548105910201889780597530507220125838171138731780158071387854403651576097475044768058953876907380791771142499240082074363608802834328984377399078486928805199482144208392702197850612068842333560223100216843068028295534154597239074083607981672398268521060257614558903746387540423820329951393893139079407425551457139979075340553898787746398232505641539839041335780262596664603785326036556413031607300423813465134780971604069730186155461130540001841871582243164543297938245724850245881968677791471959419337928407022834024508806486619449502054606849518959950926826695640817168605213366176937984676524146007173807498509648542616316875533496330381773043512963284838497821648083498780987889483387025635679293742639133995715238241472080805148205935038595065436572985099472973004525595206983291595138102311021014660268011044138982820610225468073367213393730567229212229604742593107071709595752731299137965497274888687517551769903530514100305265707141169733157328263382971619619745434248151708640633866355345166487167123071696994991474333247063866375655481844841692848596764872210931852057492074160702610255385097754897878018876091794899406869652906518409023703016401819619140171002356435424578244423431333307645740927398679509316419627422173610273043112886478440185598589442982691958795065578852686506543151383262656525860209903187986879996241965540593694156465325423873680239708953099472954375680264880055062859596098989488672500283203349669017996836370259276090732204922431399940977786774305218829838867645716676815220227315852338889009172563069683720862363469774487167973176750498304301540182869110397504574936340930342489151422520244073057499406964388391052151652444807901097774644110792441596123715169806402391813543545507051631372990497537672941338942921673496853883525916466797095433275377629399663289879937678319486256456612024016416136068878708943697292725436188208869561060120153363469262632172685592787430328725881547129330018397165982092131416301450696822248440137648582798479142714136725623233483050233887870451501154084285448104019826832675759857348089079753953503010783500757353573382983009979441147231761737377774468586756672190872839171976632962423255347722655443036054198261655628711096800198428829247215897321847426803734273921302276538508565257160279375648194313966966076017185264102013880807994286943985168029698842467208499491433353498806659369775135821619785844823366161287145331833264251653842932314972160904229737133353953932406335593710803868464508030528264889286908072617995012754758836905530366023042781390043508826404440300265624467197614632065194938147698997162309269949461883625312506781849556282441768969237893336266864267305297604281046482750895838303586788842717078929652164375149624262602756318076025656278488254767477126698214545003873992886029477084605769096668011945474010727474882451202909976578555548183460009901649031328461811912904492155262322137421924391311804205307778392827172323750410362286041126248368695297514737565343226628169029815463557177707350492186390115490564711495279862415592948140316905838610498874228465585616475475608411877241584378756780957568194965681586305525023628020413915081016966906782772527719814336587201871580750475897364769939669451940166933493468097355253427980083786671509295795842807068394275138404210838869742470586674757160813245698878414133409780121689949946591141221450297557571154453033142814980351678617246694625182977634469866539439252975344290138491792980784067947585036760708832832685824777494942479825555079745363516283688961526267596558499874007715221372045341765568912235866014936790876576309988934457004083675508491023006774208556601763211716104988329961118556696890899879925088898645267082680041429561021786469577129841230194391327235359490293393909011083865774742024527204505901057248709607046828069501701030418198798765859715254002554011387100510026934724570178502877032769329364889990253554075989906663898051908080552981915280795824199550836060564256759230288944222533252522784392056401125680319687847394606981102286289162522920727233309712113907502791826834391978854786705556524843702593118130821063645122068460422317711951288612783410918773974149388603907255749152628342729329832156663813312799152220318020093678766683319645267984525126766289973464170496442515570648891851563255533501784804859103168968160872986656773470444551603563822301961718145044809286657642491645979085699938362160867770943388677989925181028810074689534530807559921577830472014005041179709413528768200019555088962221492208624902511130036589411303152697307844391090586354263579271319854641089221489811055552285527553610925262907999134593476536715583438861094753221050492279566810147836450262816148384275364475663342129788383571838098325429997444899737963806876189028253392653248868233553510167866711162533024480022202612238563765963291322951438688387818839275593507043409702932764487170365241531550122523428938517787322815023107912900938331754811621127976751007867318639230244707817136272827097034060330973918623671220373867033122797338532481252547841315682208432351821773886427773888950780298060507702953779958680077059076030363395717516490753384801159832283120626860760724117575832573091593074918447361010366713070165599120105555568147700617411580856729743887426770405450257683638866167791935855043936804966044609169904033615361230167547260551576753719144858999689708071148499207979657836823873051195391323647382661905571217544904096704641728840347514952173470171252830585904378694409115776416272169225020445687455473416926835943117046475212343923110300836133650120439378583693015484676629838578733548284165653335124593123812439213045639719162385693256595809613199265862923762133155967860557697173656142318408631001104429227998829435725194234026516429544046305211573135518084057929332914307655804616065373237969013210553445290209802456315527829644008094234930209846471870918736007193970513986328183888879856260395597299667586122002105898123431848797964537451577028673021374301776840344494354109679758222589351266403445547654348241712221435683227702547367242872837191252615926575372424153288961111182618538990019692185643939806487360648909632501819379968421183569159600210805304917243271111343907729044084927554056084441862035951522581700459195607097289852886233203697788957056170233456529594097770019494215559118761292519943885781413783454008273092349979984765048630130654750907846294449877422891753481365938923842183846808978162525183923562701814219294444686097885831354664640025960097496464607593116879514891804181382717720134487930772505910435747890426374925997329690636258730664962719420623283590665914852924662183448051217181849559159945675257112410912441833512741862719665343089488626694008823730752246388053942399712068345809210414320295907931734110012699075140435830564061025766990332043494715759075919904107656104581202101162065695901399470703925684490659979767829741557138792648343318340028421007376887851902090528671112899383868981254388770051348424499994288883389310768403874395696245844513821125905751281615630537193944699288955719940805311487635190128292053395064262816033215242999682637610821911825692520785125982806657829577267600233139659345761462051498094512481264518488538155383952786559623255536962039664470233790372169898695147981611754523096711687295003356107637449253011408570442434394088859264138340697189259320455743617284578641169266668060163882017894878182045776572678685523609335532560267896763297113829545252529423490840004518429386327053424251568309066202686021538133389083026345621803791553321402592330601577337449795814608634880195487638548039583287555117290341797641992872614324118867549055956953509210142889062571291155380127950428711268825079365767230100786003510177579530465724221551881430115669849121763478238265905919466069073577912630376618341419083466321629867866255415650268865542383242940492414918670387651339926800582494667894529932869394765414652690243700314036940606584879267650415354046542491857657959328370127378416546950260289666534029366714895548136921189809109112401495864931180784035403885554173942581886678171306743868481346605520245593213122939748527220883373718964068374405652750330458260203484144130351760237220114908432526283937834536984339510215678830433639374192853013246151516835698664111130955668923762558700919069428478363499118354449738485575871976381201283212478799246401054384046407279033278414983835799573855268164192993800799490512770030971722458470554466741844426107968876662644975506768656106030461096807628899304294861171354124561316823517901659408203349686489902129998168038639913534753564642257165687877868780587486300648107899857970134619774302043695934268956506251580719328362356527281573450041658772320183274083959928527958510603949475631417831926887428104555131866758956530789096499112940633099372669727539332712786568301290754546617867862262346105086723823939658603117671914053121252187531427198978081201553059834583513631862706219803463643788910431332496712595718348048970524577035259693960845564157643840874765043851476376235782517513418239060367058442821797631457648175371135280756496515491599554288125771491702168819216132586473860201225266395886342407576214680630005986065867037127255464587524236381418461955807012121490675165017293673936800943692179155168068650015666836993256130951939834932725042816106159453709229971516485184447025979048466379762282637939171325806849448281221416203516201436151369985601902516177253709586793343327757095865120889910067936984443099910589287863654450996146567179557952006613969693636480103241459361870148837504505296888494318338241624408994439628475608726260894667381428269649688016777605045320253151147769247111325375401749829649063729033693009547902940345261871852557348914775754430110564752004245823039002667195622909444439903835881539106970964912224156118989960885587737576897257084861648366361072003849407619827297900535508968454080102587560800219841232876953292630992944952497777342420634973411074351723022787786200403952575082707820218718696432166981588466239598503592587961492680776673223389618609945742675942185988214028445342935117337012929825231531505724267620708544399619353179819047592297630679249405857817863704240818096287070335452979254123557659245094782150103330135271026440799004921521172537344619868959473831957833459609384800101424922397606273080407667125608637030887810718087970183093546723976703863780053238005427117109973451855715206276057795236659260118004556231104853691412821592598286454296685202624567174971546498864402219851218580612846302447983051567234821108704050839975682394007241372681540867080066181038540697020780660058465517864215760888562879049632711661197460691054119450302969238498500884083077524529127792353094118239739633797654188797160145021447314844286114232945418088880147988821358116612508326843934589781607934784222514423497624619914527596700448990379573786235026060371338049155984169344168804436803788232684814839721203722439830601137279022683080554307706692597857155786804860081420306451462471776427757445240722618698845460435085425168199344975306962001682553436401928995777500844013132596238200059158880168445073545753659023849926931547706520102866324671633290271044697856920063997921271475772421510988263519997340468830883866808446961478395529075223669868696852967945590140709287322633695570064043048574698981544837040981493995612438028062356629396094159941373691333905055328922834056474528818356336812222373240483398152554777332798207584499844638417747127038802921580147089328891519317977303154377098834630110433025321321705973433155516549858969230327489807920772232776475501708390114374193101619071199354170869041492653445639843334322318297236180530003812380547575405930318770196455820596920236564863144756808153006030001204064001301840901372702835900831941505542818986249182607106170557508698716102263083433020737147730486980157951741268121064009858898965489594501571798733393721980197049972930384633883811311090639300692735680287820931958724977390453394927730000050473702880531125799374801885431286326427243429568442690055859973962032730495569050432378322828858093646993111118954370851630364960870701154193454558243318152599300191546248635932267929600848676110141092294952296727185728018745994606074413662109818804659616084933037902132879324765112330380120339097118072592208508705142003086992936115728650966615541422196017690096152621256477862252503341277057579745133346514794122891603328406766225719883250078231546748384407112391128743130547852423527861142127677405640102994628122216439802879603075400641602206434259642232614898218171577197911159528556420716615671749852130003191521303812896781418750495549246890311482414581903725450338420023843090061635057633076365564209979082470399868372157427485556593760666478155996822351384975923933477742679139461956381554955913516045109763886347058246406682730156275821116967065655542529775722177422170667424183336395305779849696345490164451799903954363958839913489406406811804608886315305809512402227106580420654765582142441339655865317583986282809595420193789596259808947977477927571958151117692492300750175274665894134156205670855534297373412845834238087893886835515321268110103271120393721985527318765177739740945186578732231205330795215881019315342472842569107235801450355000759214053146894263883488825119238942525839266838474534334309941200287541827459194846805688941212412555476869509411459995016484140543144539542957271147416341857669344909295117669855232247940336358221386697942462551498744950277074783417533169047107220316135206416495589632005080969872323437167458014215164692673458710049247692028796242551712857716467627389598816395403312755321071078386823375364650780257775749868576570100326797725659258189814390511559575259496457031936383274809652756628765653910360160605561360687408944406194587522297583603908435701149280268263764448950120064325179789076693680065470191362180382837815663678070344213135148477224379242369576554769402332756257721166399444270855665828266224162966399594873300113575512884735930970827116615759051512402605533671635835908131595619148608509786811894118522975751772045675059019891251483006574334143624764846140159766213201712254335802108298694836234920683327768158201046838817958536650766023426829729150689102964698876014784866763279263076822621224503226369695499311609964681278525079148821762611163458155670500503609888572881870667043851343375555894770167945165057280659645481835042636906820825074655142608129974043847111612872621359004746662417343613777799083246012431602224630268752482158211381205260670963117051705490657357016608176973468888369569614264614704947727023520054041161108438408317324487891992406902414800430217585326675035636972113568661329939331842423911732897211947193066161180251767189233279115642056129210609663737644452382982674652539437787764886948236111379741284313565120986309513320629146974393091138627844087599595100078518705101260361510193396978998757614035519104144904908634241464890842144156889635355073634327688799139456395180227082677817244770939271910841182245141322677865697178088101088036702394459912026872214940081733549222471721448663148250545618151236346872469331453981838376558340063325725020197001188194792270722140020272334934270164711700721302036180911270310336035976178037968584084558820059879624009658030161875088847558253571179945469638500499824865738050278525212843950950833916682666680663208291695962794149929611582062192023063127500107993085558186119929741693563178007694784410172218131510875099343887126643075164483882397769726867870033000620858554189305134021969468515360586111920513401729526214439402765592050834614805332546326295023795481452138556975233555172344291398742644116302696044231495663715121033656469228860873593869805096341707752196910513911586161492715572901607537979401721021939053295421635618935223657701724876128862147414153028616327322342895092180451074433726443507517130906280075900661890881905899958319995022337026282710710296763592629746491269685019363390294640827257734089076232602921250022918477512992284808088252887448600970016949334111604506920894267269862570072976219916993390399159289379776527662958015485134666090105536403990105564612869587242333811593522554398705531943164066063842481008103935471535631306288558649908218455678839395157333224819273496451859341154677231566440320775944707460475370090715990287191681246925955401517279298340559869038561926544845270453170590899279717397130644816079851135853934014306496695670546022780730627596206095856699120764345349220076286369719965061196727823189307526758794947291487677052671128333112458414807541387517851733151738077154843413412232219576030255401404847844143214808251988010134847101900238649031251511421935246139366903419589712624369097749681080519040776988075004116329559246099617235734128878768628557357725235351759167672070377197397084490439556902452625037566523023518218175125917720165071652513642129690983469128763902760378084666397827190966993232830667221660415698740677899644002233569157590181815057728930227265605668909166455271234601828488785039548663751882014390505263893819464690033835091418364323214295684945228938172805384650924203084811593660766723621846938962589183190928021684096235917252639889001030768343061245908192342906702881811433728317138052748332884771991823780757260275115452549363399332851676629503862786606983333517519443780111806805252034073962414883603506228923351434059856717173055110798049301969719002827523934024463119227453677189351989217076692157297338849645909642016788479648596381773040438647130064518231998354805717712644473715258696228984008389731840371572512803720300904536308540122326543849724091811820542730214907819147903674121988486218301623779514974456087285677615278812621883463122219206911654512268766136162858830651693884535151592109929042352833444501478097562437688098066513786144661905846335156888269397277381096257014730052365891047255648927197065560964749421991707788309522843780630191813860339698187053207157190947237681750313540916508828924799060840821346620388472980339034244806508093687137136949675090834768923775487961312720896633217520160823371788444570551615658457668745555704657443991346082596403574126496493429173067160145443758712124488878237216176328964085728579690350611351579726061609889007980098299705769673434311515671127254389279646654802688851655468517481759862986313242325907746963307195330476561287171837923855863189100248995828893843108942398881749450354713340271904254009673893714398616743620692722513282896904447047604672761011394598938483838151245572324832676521271974419749353615015561562002844137951138774079456472838193476935829067902997150219425528605613284677331789518138629259566103694493223899503161632092617667565232687461404674541107313088913295568495988663338385103098967218914458578615407185935302943174759309874630688436464108739186425016140068528223885454556675843989011748758826359341045696886882644477131564725095438200732287044889461535019920760322670680092883088002997578062471219913642591431491546536735809801103604389549196155534530419803184808481714299296437245619753639659622939912923448595992152974763729662793438464964049977504421214232144701761725706481945786081621706341637090290795339290288957004047902695174789678806009805596198695680650261990129103825793735353718991853181751351954154339881950400766155955671094479252979858524527190994684282287358163938429072427833378099849586357910353181512525982760147686317106505635746301364684187953282635401710891434281991479479796853120901768758458590772651581402097951194718091045058222105945785700988930770163640864686130209554947934074050498334570242399494498592152759609895318906623428309404897950013348853770441613765446618459326441115650903247140282510628693585920957563089038789910896170473475031766900442545428205464494810845474421551066652064309813060908010219738445209603921879600026232566813217246088192422533276282410173666537327589453126693392279552462195658503205054238109410378772295756954197446445958956432873288523428460726973529445374537305342400504951075384645372306905957683209549580955299791615596840617531027411344913261748475076489310078743120135608943382605758645309303540684259229423763050615162847066508880327840854237846786548858466189615951523806547959831661809389611917062221756119477740699122548430274462203542494115416200244042556472770548969508358944925820533880811472539459965949702961483006774493851980702027500577216538291592007110582168013551204540595633784038487075737489080135745080148460994495069835624779992649788416911179996075589052476453333269114292697785068619177472867288579522309934724402415144649801273371663110891946839015194536231373701276208332027576259029993616176299416224071552528587979920233055891347005970503891102258336923106772537164294441050824436048774099991335399104305409850034429059883092948080730602788583084495774121992777051473858167293756493973679692840375533659163452926279227749259353449961647251503972662929931201787039664408278387289666491377809918515710089984456078648510460330238298193822169985580350027782810253211635564014099329679380486467628018303461385485336907590280677463943879352406365537325405592973183266396109734072911007398048049267658128108501508092511096411733173684124188803305578925818269176947491851364239666007755986738401207039501357762391305516121429688072104489525722705112005209629838704961982586218403599948775068757623542349716666816035238439902886912038633618601561046215531091089406715434309833402761920805749541344413301461987707708788666068527532345822307863983807264363837958736046086190274186221094987910581787570699498953031011240515705716583723593302721312274654603879557807376159231811903972436001046701088061408887244273511514583111640059550764713441360475059425649267160491701594620838334568797252314653199013805884216092279994628646438724565334257865582314243070863440545674866507009652804353614735525215211031001961244018493731935478337884309396389883486220726984634390429998741063064809651442210059595737224564908742455010138483589807844454292255312482171390901623585205196137194556582202549060716935982427128198933935384528989826619600615615131738497380677174623549000883707554040499458801749759281975239741719393684366980083887274103119144051958339627185379374532856198279180056664645900312173701254103193005216311858069181632715593150794681955520629709860874467101744952452359548976400554586401556732751758344563551815247769427538376073175000697639485533758717283971331285537199071912871768069254203923408285322628765646944614315505470907245093181113109259347821973401799806822054187943924358828500723996962409073499198766012092374101154780864346078649841377295755895718889674902121045866699667685326764614692854113222363111473929577629651876235287694535550289901279687079933524958783657837095882147836765633214251697009836153294286041660915551930298291748875347404889773979499557375845480163617380909721839064430536096574442980485579049740296328790297866606662034411647622455613055374328157352326143815421784730132485451681571900541785516055832583200160581366806520271520389263238064944798005137497164480337196814211205592689889003377218618586296253180736370405377917512108355661524334493291164891517296508839035080335887287272860321277236353883749017999363189869410587197362311773218551908654084607990221179835819089225018432803876040007634839727568971877307823536936816388341882164363312863830512865213302093157676569896770645866066978566884564181021264242983299542944801065085036389855479567845691753505245907305400503389253845144061159211545008001307700331327837880600452576930348826943653135766898061468061801904903612949034112831236625621559368230596746376619797669751300641808442530587793152393431106439937563645330856209181132633978684555513489281251568402192841872097293992321405851944305495738066088824027301890170332936338426033493035484995682393306332398858795806359280201183694087664670915518223920917807528121284864362838469105633155697686248757673076988622487639163141463051286179232662348140123367154677404334643839162850835206897600178634269606149420306603203741225175548505444276461206949264261052315799504889569815512261548334783240376128107779897508373643390366502962487185134602313961394484543035244792125652503163613082088594458636902145494852837781184704055898371192367673426991087484126713207001837029233895355802023375448820827991297374810937041519383278151603964365339441664340999863175398442713363196739977365047263271960435219478438993897430133126157641014169569748134638552638021150167727506291465273132586386625671074009269122815725788013515348787890065935165295988888753929901424524485797745593164930312682962245114064298036496434896591239995939423415840759114762772098965636988016556361840892137589438273654824985458556985550157708307835057950677358454488930466279278768151104319387490631476629899126736484053588944299496226397620525083143996093056569512540950192197182729709280025004450079778305352073316883701665198044115680599712024348444661120262277509500795373774773800648211086769221453279569536747822891522407586620043354568230556120844385892785095874512205221474113070449550535007423642677227381536410826588737985229096089326639981474372436763179796250712497331202375496644473448502206736535989900796862775193275263899714208518198012839193329535850836372061023952753240435177463092364193184968007129768218782540570265262558313711826354555672302979464609399445565920754199205155693495485349853263000527078567047595032347338213622996943918002036210314943747447570723598946190847485784682433139836759289774609795076331725421191890276854479154846630883376157048498235902768961343768796437384762545900496471823029880253701612756264479676840043579974501128994927959659168886263122873385346362811723445961784237699018441545949191264726555905138413033401969348672713735677925222682736169047922283554482581778836712398243447169645363727344909877191475913412048510651898238928044312319158217475399846338931410827766520459217682941106820413344170752939637804337955383037412661325432077523533429538010326844911794978663150465614905888718654945223319870638950865824275016703789175622296835945433805673143748656999085936013111861179865587117783305245788953909178134612691783667147158705093470581279601011246652515727326184507542121941475410474229041614944724825109486329890448741215696061079008210850592400454375283588657330763463072483095468356705005990206898001423185883957454115023253776757637636724043780239581457206898836302781170192415399544882312985984047238624704838540880900806770557172025141964637412135368532050229851082561140995163225189525101438746442930128068538241124921000979867558263992524759057066321786396928206241876684953666314813500744603480910381079123817203317859707476028518986543741594592751476176387587423431893257282703650181408642134296096979310919412684756462805931694171090318543234523537470091530477735082016422566973525714105148723844441607011720406895981222312893591608860966924969413950637538876820123649578104120144230195399611374378120171514759278505927818845043443205623056963935240246170727999590692231213240490304062246162141837238845548394477686125024571102871803761791527211620104278578326119626345208731314991985919659664720771502799720466603360703183201257798247057263720155406643204718346115058629230376043928905037533315539196793201642707520329355791906783305508478326030727119339479907595052611517202016726037638660252291685149491743523667184346770280213221093711272093505470085460801302981440050205616437382072135931272181076177088166029706723955527690511740257705455749701850662822384587846933687251753554159743690118028354701580898132340803290735292953791839560138879505411152905758564327679369793709423135193894432426214254302409162563622580635435089232387217060717239469786941102402891279551985601712862155873353146181872119095818521490011442043588601426556184113212784298793189247785637661828452272558056080441759315708599569968095947882398426831108709094496843840581991210739488218551987610577730708406706478589570264574073459995092809424280945581278829043730535027767107540731604111317170169538045562423315036946575328832383638695402361188750064089148027632934372542511564451592194727610077480416650989918903284892848251847937918255499411014342967872280974967100360660685153597530729628641487074760822827204034339278000151938363120395619995788723701803353016118770813605555391043635238775308344400597149405889447553188051822329728987796248281996046563935992926636220410087719835650475245038610095785583784099900034045339772357332856361421982560856852885986760334447110341242236794739121461561596110785948083811656537978133681570486631454141371112961744755616635497156885334595111151886333939795910124221652267522166785913486415533434919912135337097590455029263537133472626530447278612914927400911937386163473671283485315315731636428115748999484903822823563762147454158744726840718796007055954592154995334269378893610026261554738992233975641141337704778857047490962282878796007511622148962245159833035695859804728357635032034366436585007903424421916738349148490391517968556810848719624212452892730136914417059576788769431697461890857926614110579303345669956791814990923805456775985847452571561023469168919743648054391180209112906368245522640921608135771164035069657606823841042381785230838574100353552290040888212410492991260039789580087745198617141130217156622154329388354234590866626570149870871825981804869513243969428254606270857918478458277985938800956019872870237870064134777544655703574242768203398478520470352591042170929245996206177309444189989579276803104478516409288434592727474818595402225025853298958799144236307073075202711717354791326059272509956528695199957773162364290634888897687977581184350129866775679006323333666216995564563808782409937675580137745054292647077786788873102121614051983207163032056976307487913698557229463044947826524663323647013423827627069119820539093494625743119928464150247549022518992572722740245766195875139593174300281597993446915321634038228035684764750234829077045975767807375911704009318828392843757500673993527132450126360547645984332177470869613346770448617573145927752825101878790948587522476645591542900738872288639724065953382283275416090439999333077525251505059736870894071116826432690932461478274056887747039317165086834862817783831151804591527734334911529752331854612732284044984805196172174042781826426226252641141198567018200935831534313534847642904996517457371732040426980847454570502129637916510298135358217517993806449630916995112990009735923224322075434167845621959978620209202326645180082962031570676783153233182487287456076623181579912761315810345674645942289174323062455889087929338700892974069681438925543821444923868328706714143705913830047768059242494470396978295766095108815196459999221041415142310706530128059971879921914671930042141953725836895245508099213655318740665187711248516848625467263067419767907624620493582647374024077302517318176365557532521643627932355333795069871992001278599278000605885155296377112739406312023747101604781924669652405454653447480535131628606633897631257537006197839655494990269217074366449026190852769414807841523218733721034128535567108591518768941566544764877748768162147741810298024632330232084182880729264145238720367635926910217719635580596906969985643730422626262668147991458361663950757227827378733962737882800027835076370992006161918466145622730840155613622444040136424259954800362751179966367979075786362939717866901858120543895609642059981368728214018386179000009315106677029691858270851694978232735948531608246986177328602031336992877975805481444863643281695998505391962222302333229261107245236481990960523629572304416179079312292391508675309487776180656705225066345624702716460158346184080380442743837235001087318567846183442039430235078355893630913917503508261076325525325942123748958755156887162037838357405647697593281059109497162012814727943648103577035877712760234392738880076936321312520050177568201298562120082184990430606558142571316991368910283043490695592052342912345207980345130925486478422593778719739227807766852185308140444984218453775605783261486671055693470555022472805941437244294966889898294136497228533634847961219301738985816817198470591976688692636161388154218202531810658544577141147877004889986108308352705233872661257741352867108906762028658579229867126432211507559453304147966138684545735364802820611906659633780749743484524522125589073674067422001549167461300185640553558372214401733056383590247390875923434368782814986047203308504163959527905678239742227081724737613274744458796762257042099595434121310509159678868465426665117716742593715794869286517830450090764598485048436999270963193314841027532100669763764626956289649940228968946027992703647246021682671375395039050454615006404671139869889475936302363447393794883984261401249725684916961547730228975639796619804377432812803857524072711161556822955191395647131389755264547978151589659556240740505483592083678817851212211502021318178962474577050270417381474832531095021096780580188454461726823278311970819582148298456455652603355000286726539153983142064798073338874718279320761973271290622674098860953665712593995471608346707511086133464876631643984603623117653265207259205544350083953986897385376094138091082138884292538643372286427069585935083867562268291174472282222229197550382639824139685607315475967436543490058297629932929059576653524097188430127497963606717217458943687889235823793500791166304042906524926517388484860320760791901074108235999709114563446673235021838348424790762954545304898108473227387554153361938999949318578977111727444881669327794655771323335335618001961931873337969030784522225964067936029778380261004278523197641883043031341028864556773856176141765346797712056910533967453483433426883967025840579322149922313124113761807315716562279718256784847084523509327627583747365348138886628370517656327134091917818856635864190369132847800897580169623445451216363163384187308139132922714890151908809403492051844919201512931301641975188730935766876428485274777022628631442567544874802971213448707966113723798172403914556622242087358505305126849154450728929970195408239372381357419026153438581790126324695772515819161981365920919794701328028141172856737669804108433820758731725715928453489661496715068731488022043944034306887942367279959933697661188873200182954517144064939011430461489213624120480663167504060347896844450887137781170216579726547754807957099862512984985680978005016690094506948600370279017219979748514138687025968835926734844523524773814992891655299262165643391255563375962547868871931931137487943775119026925541927156371794359745791769043036803144104912879926776487414914107718417693506406080781626029544203539988556800173720075437590370759917258734268105025310858384807294310097969133109584150196270496726809336721997517735949881223595828500055285460258579774482057358666930705270990198984550178249765681457563328077933386598770131209384810353433573411109026464303268806466699703149978980224769345830506807201490718022794841114905127737641709347396321058037725346440977223444988560151898176927573235511906644623335371550679223328986447551487998728686367422923917974640607372504197123434313973617146652501948531534481525511049847740529839624168193710582922587646024838343307635040487883257071624349297060095518771047143492441684978605582195671990009359747150375291740877014603552038044117006415983083033216139663193916512181990122238591839879621851657106046044977907048244447727157470043098018786959146581397070967693952855753693055442217861781311729388630883834665202814692038884605695123057458753120081827833347686798373044054350170831791054987311564129896828045207517688027346184513012388901031113389732899497337967348171780497372941298050455136148910437540569773225737564243151530914661704437119733219505707615718012985619867519808338306451051494621061033660802074972421666563707898215591626192625554791835533570065344194706972496438335071099125668223491454879476712518227813045723271166669445324818403031560176693277506525631529485845498541909045580577276183669147513830402587199399011657683103726163028147680928994323088505896709149050869278190131687919626998407955028852584525196209715280699266983764913641532896846635417360926072527500760881146194916002586904952180815486214383350342272583492086348331565077402071975158832919464516848248443052458340557499849726273648652395481678146013394323639394379072783476830912795426549073911198753491684068146090481112224309719120100748283117616704671391639322693523378836388164025340312931098132290892437614899263358407868062113374255547170574250874460935489944483074937855072147832281030950376252690003341296779689897707382584186107486560189219211564258942448710858504957045551857469094179169636612768256369855104075144129681603936275616106749621957895983775155832718923645933125272524139792208881209181851528515623515875474178954557347955643771156463001699584648853728429259670407531219003873520308644112617414594338079458824705363708195222259708160176413092111015923519658656676557652385238755407352301104396251441962912789631901504646007381790846252797179725308860423237624260126026004387775487165433744358316084387152058032918775941426467829097062671538293077745558977358302401213614513505141613107496216560997392713264801908937761755048925221789674734136858629873098286047382512989222433168844388602366331247603832837034298896048110736460906711887128750898763137282561404783634184646659358042611663687893652851815275612942384040624814057798111544206231687159843911321958394098544567564332120734159972291604918031678987215343459259170738388514051097454092665555664766762354509558399702072242312052311100937955760711546564354209437528184814356540699034550456559796172881468911894765046647556167760769915857856176798058217021639137129316098020120590356011831705553703030315883295337760527103123010665238485246903309799704609844374731293377905748713179483460150319139200949070592078813022647339739304278086095179156487627236945107187959277499939262004083161280371700609761045974512139399031449373591587272551354106450653053857316027292264692616450125417892259144855675196166170867863916321552277644953588430374427012057064591678268783576921163240768279048486409486809896445523717714789322542907406079834434820815151572774767066726155415490545241407577833832509880289000910371587122850297920903766404752183595809099911718073984026658052133143700436224040488508720989944504168245197636475798605397138387939953826678079063220470123895436667981445366288630091140900035714468640080925241248612371585332472052442590831240840274331935748425189955956857482057432549882591723280133437978694755983147328956193313372656694049901594032959087826095746191607989771224061767958729512210013691844025277687077758978306028603307680674926560265519364657911998097164218152928846770065315890026710032501861033126483954208794532431289992452994926103479986427633642159067302787558833313240153673852873895836235769439497536144091163255805103980083445518140830123593923848292957496921746407680230062154575291206787751641256303331044094957343945032121415425025556015435997972439282710562431534025112053005660304569765252577228600280914259944482475819363218022491573839398422034161888552803298282137775290922674895212121073164110443666487883957390867497456925045911327467485878516440692425511365344423932000381528515156971405360746300089984707717249236330855527519912522409359418944911828023303763475471639259986047659250156210044758583947375346756872722387293922726941890542722534906162373576883530236869720626672090642583737999825972247111624595728243632916459804861820507368083081127455412223268418443146106483144544465984171455030260260175406172367349755158855745049324439287040967850564518501906450535983123206311997915104751310684172430254874819072337613077819479054244228413499674927472772052554703965097412935597745077521556404264191761452626202112706949553203556339312204722794594664746315315779343125092741276361498810464344642121946406171603397694575867681531857116523879909305462598622628268051751659545249954110748390587785657144335712204487005609789420146717239809828736729087868906002101654002527854623567629938400397865782547668716322769494790178187705817901887759122721441962462088671860498060042795058281204776624064412709114516421568049031175133370513580844232202624965485631305109575308741486418577949327913236473645006560040848361225687041731491092492271328407474789164439124051031293146128849955610673916284766014192680728237371691247823219522980098960987154980614410965572574471546638178786376916248776442668674217190880548213877666043144417361930983384784108320402231179559111435595905871912059648245168818751063135674736064917913114956417726327073725002038931722343472616702564988404405357110902300115841367457849159124328162518149719554339273470669655642048783227137535616142551007896936700789336258531896724478343049841207436041788947115361656702703255076611228622792513622149516406446979008857205535776884174827540445826540519102099799459059058483101926318175775246785800676334646547706641240656561571276550706140659273410785664621709396987173851556512276211123326895352158861612543124615423441824701308217464831376160979125160993510592202715193185417655472239566451160955544257792472734175806612844556585092568386335270127008417500252212497037060759496357394706573156229147581159498987156509401107051329085473406560457329859470607564682977801058475971114401773817078394451960443164332134187818808732573788745351884668347244799408100398493577649137115713864038120929534470536139761278776815339336398735558848453435627147160522390301883711318953456567493858146355669947289689394102213563932795410664116762466170478828451436493642465763862313397697467310738781869797800058289823958742613612374599752923732606298931147440192770181616528764649416569875640077327750569528931997861495656209010564931808126471166549128883812008544932222347047196034075533756142796603082443567699562345132213538200018999013390771744668201595702495244004866143691430555375477409225316465151652181213849019644470133742674568297837853969421234769919510060264252252465691597260986113625021043715708764248726651085560828794054321542274697963117326929259488449364213810073452443625085424887555324754255692884780338649065864682891175135766745636793753300639240707851056206622934564980335384662528961571235919522470098340011578427134141388666541770871634421277031504211510654025157615258241364801209124380657640924762505345392698956275328168741552133188549105436997708917047501043182940207789969149722989073155383831171860465747624748303387997136228172805545060011583053550517696608497854635197067504662516668116380196415488274902415171945210107511738145380515767968812422025691599842311166966540971347044912405214920900431150738650404126337684732055033648323528261394279373506131218459270855068769970261225439951522413745753560797047562521949789227121069948351090891798926611786240207243947377143380552674842700162860584971252379635180905326447242070009892910131810785675970196039138440252630094289962078084241265307953521439798226780384816290114137856126739832797859671791808541332704476165990908379751170351317448324103336242456073862017304508691304703693105925611394599098930384936737274660610058000183905482068890006631756521529394475491139761732418381216274902408249248006516780993667088092063637938681435217173153907532223494997596974211508317284675463546960600661701558314687937213786870678219011729081572303121014503519676283723203826375686840022056012956571655669597261767345152044583046383559424209376852876971418141100109233275994765080578007977452344108271339865563417444509558160333273819161396152173137909535451933225679847411573385664590512783465323712472427752157612501595431961286251021641709499381427121412951360011424877843835519641626611859106427409349405394264373184342090549279258653173284114409377473877530763319535688560726112213305358326739147868571887672161320440359088196571409155229190226456631332811908976126098310977503919378608329752085838708698101535569935994255305910552640562277368859684612642274258597140036189566103269617446169608022996936940837065623056229362441238483529297714447900472229613908356016386896816949115483837134372535128660209606525208704397403552003408504953669284756758301794583198545164398009141125220048203013809814160381235426515440334809246179132553570986038705026294214855600706439078189611210137855268630776266988710352885936702094155057433113999659201744538657937558428388409143676781897994585912455864724581640408093239378935620540440201595390010900901509379610942880023808047962906964772617833921411090349043621136503513717634690338381291207385756286145033560579274990661785570482520899865256451781831142083678414974363449623673002462582178724265294359166810972588659331842479012536685019223559358072152972951523669365466749551402421956571819382089927617450063338812568174097853343151022949361907497595144142307486888822601604067433282061484108093039764016841697132164497160574658747800890104538109121889221579187988474827911815264449429306402962588718216050861926904339299341061107968363616166585883235764504834858922493450552277323061958848141636387052767179808965929169822551920829109662884187418308935416971087766516745169367040393042809910132663656007430731827479345419975357006537377926115024056744301857704173237523108188106497972557798218533623404933031621789596006924124431293009779703418587461084777553128573220418923039451628688878306465144583042410361504581127570230560898592764418658259205763888192543145119617744267590663841867293683751810705767901425821330340282609943353213922444091438708555693456163815043767475607077674069032942957325082591027047334344520151638174888465655028167432268681949357587147948188321497611779475505998534044959656275209130504301290527963747600782464030918626581515438165460071177913433168429952847838147461525106797296669108731985243558221707976445729711822647345933462420177573823558052895060536326920939350321440795822686789192339245945765953424518364202307088203554104631203167027208688783253468900170977479550247611833504790518293579243165681064760135274435481829780645446319930083486513359670535033198224144249604346544883537739596883790501241921151854243553845855717112670161933802561708662343804599481565436773895899521863044291653833932955446766450587367450060724124268242563564476575765039379604388970646111034180601192628817832346450050648229240132454551252022484992829462645813659327551939208882925799457415727731318948912335647672637552632496463076461782933627255662071961394846942108089873632573333563737346163993811498746464464675026277886637216138879420729022221345853648209820288334349177620212920842082476859697049739063164000970260650849232703538935129663793845583065642830371514328375601635597867559263788535847133134762292108190706920054846736632143171055402446285852632904965296327764662927744329472072370657149185311708209918392794512704798251878096180428189947285130308672930013596072685785935776102923059963866131038944906709815204675341789291587329601462175314496013328083384699141769608688963764562167441206667360104472977703716474843140741839451576441780582258060305956050853577115761834092678318045555689383291095059193794135964688239996138487620067921768246665944903316141515923486110710258644608099353921688118951367357659180343129120688151332525229022532131039969002632419614894362210832789217894711519291397877073363589214829352646074245417994520883795397743437641828799188203021046968769176412182477734409075945072867070287949892003285979525819382131729920026789409577331200404170301262245998887804304489806368155031168367806905658212446480283828620488675797843190865077497284467083015616919185779668681207789128632425461797177321326932084108231069755665169210074825088858741165764203007301606868917346732984105573717732576128755430282819267615879561339688766726683550415519731783206804890063976333692899640813582346867556875461677867501115094108723677030397358200419360051834091004663962477470044342782424681494670178870886872936796506143722450078755584190011164879380089848506286696166701025623964379957262044009442062112668566536162591906346014880953674066057616063976709309467065868653462641925820955465675385128367062466976302688338116334275076460983309968176332226273330388245717611226497779435298815580787011683993413536351772212252438845571569518409988350208080888212456934370903225186828756512158010909282623364810660866252573920059719521268900605611517929818773123189749964167542301675083058093404458378718296813368133633680817751775118410632635138344635268413174030726403114486482229299456383327075456726276655681315605247267407963533563286145737438366628782891093523228950975918313134315804965485380362540419889340378461675098076011836546664965858742385896591053500744474421568100820792053169491780204869121103197187843149826210383344490593789297485023642120619894664046233467396134175535225033745044887932630669863691075398536190825468145553937572600743679907492154212317426340599653928144298746670371615150079739642398643461998202815553101694819468815640146817789842975136175364764890644505323186000484157766695127715221560866282637145453877250153065372192665672621562237379952849529407411912149667229323769859614709722055931995668381707224311249213302645733447348559515060969070438505771842416400439048144004457824063028868011843409276703153425839193479715853431236181365779756796795523528601855778471616554819169819469982628159465469892801033146420014243572361745120339347034708085720866081820830141047149086909392451709898898560740462370157418827795804804477487290887139198829478690178214610569234198316569751498132341334558026686738103823412115603664020593140424838397347675021956937684671105171458447691000200962121065596255161952947542207599844781446564824767546514552854366878689421647451236692819036567222515365020328449119877602789954019911150687814477762661114830205462809032633370216365332125280715853424288416368026409629104194861701856429688933078714739258576783977963009045700037034606463041541019651913601763497297185026545252447801251120923087263954053374503158923488906450559017548219320149411633649188152131573608228531952555822850504226964134503204905767130883148284095484751442663261648488787691779955827547516316970672270585722990981224862592296118769358930297208831092948385990227429309009535511929946295532852535145108486681679774686385997313545075484526102929219238418957562512136409586692141389134797874067575881180742734631939959898148554521521143383922143658754756086644589064915688000480589977785573280383158983360938217767092786469637700167156330423219534324831661349203333909261657035335061437459798601568544589759725644465183395409981100833122610460903717393453949692727254221376120995840565033146937246899930427214443077930971008407559620797223631831562187054392486244941987393817825902036849858773005480422232156904944148935762430864827979226182863165914336305589634636503746033680795480505921855421844421032579824652695584019783520622086542685497122054158105412628779173188286315512154665188073659127065232310847445025765537400073572750950067714457865497102485022023366717245867721872247664313258930088805989168206439173614658430495192085451174133353790883822685321700073620555746278362269671766172427508087682824750566768564986162851550339594380952310003741668613641811081202904569131334277803000729767186056462195389561256622065478646258765858319067144429005731106475480424913493613436685872723121547924168432162308008937460526357223095008161291350708060162503157915051340202476703558242393373014606542771471322527026921193064224477867346676931558351491387272696923240551607823007336376436899109460578607406677524998214411107479084003565024710575634788667587203464904410643778047243996740438969155303230636244923542255045816621652797124049067124693970408652741703610572342377865928627719478263956178193198255952568284775814636295736601112448804956058816035380388788028139883035170937362660443101339318465729414188101746773297212564662222232096443183455624048905680765285049721457589945523609523214239606179349933564456613209514209663948143742722192595193531510945019706371133354214362157914649493942540418956139001439173064593053012549102377561732411420273760709846906238260883654545741315344721516494330819211713228209329410318406903701001436318556464885490904810647227116691432803622382159121541405690134003597639280412656483684892096668031509437566482350063378300651078252762206411354977548414490918837962978810341588062404361801903185615182584816423375796066493449246528598011598422493056052666884743563713145431531396787978298526066868157607152729511237370864802216374621861131576225168168160782523817006074689022583210721804067387106337677077815310906235412839755172159711027462654235054351465083695765992956184709822054085395501180705024777751262726947655701735549469816289575264962611036660315247287008925724230127349322950635912757475933821589025742294922838988500959413640448511748726981088223226362841773277881030224239123092206022042027633238727159381170666673733402516401208012796489029248565194657475680760660286238742920106374200439645672989086420625830858488775474120461564789990749536374959656341643344764471268935326737292230667257184658578087904004617630917714461380339578205570000097254938749192853357603471681996399704189012606776967464989338599414609527193102998571967010306061948732302883807692526471088122443548165229915360020132575351217223217815563901058167896974171947771095234593184077782142154638714386252826509036007205071371909235924614059117358780380441836986904140977254262546038993685107748940230060544080163477193516775451442991763122480162702640388505044725647303526392041638882746601168374814733001381678643985579069980782789976713238990168341283969280517195680792870825347309390213949251506807647964939608287318553924211722137485162421248186945308206418419039445290455153172329127580156669993883646378021655340636250631958946791968830437797372918543702982144845665868383195583689387147304839203873435800404891243095176510499177465956305769116374621980090988478761359026776991522074618213391001335968800978154580061368703785159209392228833821449394838904566010441926337496382868246152292440413471233181909174859844221121689556445603255602417418065432958386738250247392011226564461389033629693292530834222395454473399698128806481025238486355038418065584701654523298114093424144226499003042074707904917258962366927665505280991102096140547969587762326729267884582963861677941261247466493500131306723996300375621138374656723659795339743301340189300754801528944286019653660870582319880854982022046999518586307266337903797362219467674071474187930797467599771530063970753612554152012103771460719008663886587349404209913534665562911125527923054895049183961307656578327165590089921711631313698229070241026878155386540579672979420486412351794125314143487376924425144306702058722095172527529407658494285874151194297693189228914440789248933531101840252913197784824100015283991736648392136082578277998601522466747637623366088827083637633968075903785050776133254880609762279763607543966373960068157730926815652864028425973558348687943117565671379237888775836704067740847228925086655496487938917893343970271598459485872028954068329553336705623485132522035421100640033453082080519217830684827256964162317961987900514376161027210905260786228513652110254022969316795155582714855548087897131106089741283849539389997791597062444015732859280481555744439704897906235169085372002086817593872733408506068581509345769833517444433124097615669482353937003534120055576229802074572914722464459900225991613707184834138246970185319989970824434855872954807323820694205228788988014252895025318182478166103517363746571447633150114434798147401402653484340096821631592283469875934673850142182600429689357122251321490700321515333990788432467289795144781787215079979284625261624862640382421884760905543223583154660904393934884190068526892409313243824595141612850626826256656625936018219728956773921938953080309644443630117785492864850584530935088896230213349273390415373707166661705335242834750677078687766457042149043577076788734350121155058560222905638239827391853093783587641601167062252412949794439914146834946038414349299201654118727314385249789728681356155498491165331228036966542034753923798181321830023267755563139151100171521942209120203518100414458819022918525278735121852321509692081194662411408488058477339260709533348336388898141607964984115098570747836930429591559791048324838025240866407432474372236831208910317777120730043127407155700681836107928410581691024050298855939704422560956544747026980121646123158989208403095909709899904758467324473068379272017338053590310170309289186990335599468110539978329988680820361721698422331793608243488692703610925967075813445316819546163984196744526365769421318580807288567173187102937982141178032286493420947450631588919695580047013509947988686805147532461406876092752696447398731619805960815319547967373243694756729229059095714907406935344827378607453962112461777100361516661812840959545961586931286715866814652545175650846260476332870145884994509962355336354935500881841285682706735848935222927495429119283614796632219101066376939644146743223072667130730628694440388230493801219490705466947636640597569231980806879082894026754146263053240713752117755486067260149990838820599832406141863079052174099809777594191063193408951035461487652875374891009343360860880098689527786010214798588958184237566578396941716289101122540802808597535213297942888696268425329450478962294778404875768933348136643485867068293301386375200420217249902674770090293282251759973362801705991693170341409897297523202076477602455140529712353870290243851154818063603309172087643099237277606833755561169998900196820122870055143847967766002593585599020662682176301345400050538817294180901742459965972238699733154035169137206480404212309374196754101684935158636266237795660944271619749717083776938197922141748383331495177488656182546911620482185194061918233396708939224876322682473519122483748877524103030452291504217398362938286862450130987234097618932137375233203666069979385756225102071707322674677819118910612363974459019634479671847587673989977945603159301304290722550011582106766618267329922251900842054809236055105359230530408230701070945535322809232595088967057161511682210543849434827282355972524060402683476272048092948272757078883990505535665602671234403823240799975465209255398577852282430450183042082823097244535252620411039756185882645734847229888151784600026789380856879689792983600551929697352410540368209548876139639302386662873207106584156332798009875036282575302251768132338104505467811191153356308040442917226634636434237559197705765262984921310247859457568930361326290533416976936417158790828744171657189831270705653884383628815634939222416111505827943106886209693733385991071600313911988398143216218470485548520781498490838155177218162386590217367270907999123666705459493512009090104450704249270443720006410674965914098246433520405278365150251354216284076259796132652008179662600050781975230874785648384750879681299897707973907448777707252962256902175752368718822104103476585245478608196398327391495209582715110512390299169096993881195566915778204384268913021205325338705047777275156464616777189197009440918496371840630424247048650860628034827168340835458128091186988267488492827936769708299115132622905535866471960657862028091893796122176469223853040928255561659036518442593270580207126012362589187704958751713506977770024645359632089607058237493512356483848310116703357310332150003153872342918191903885185934503641763343012028995276878162897124613308111351349890271868543968484097618740162571957673680093528848174536518900158948390264078918840037836684589704557678025209753014044719020616316935043880915683134612197736793898678349628375511563643969692433988100292928393298443202288325985512507916496339759238145540286895033538225176810371811238894399812713979410136300896921245972378440031441760823905889700904894802099105022557548429136804205122759344792543746972672772506888964704554899603957279168914015512945935838987822561222035457744478379826406202936967953526084304100265653511277783260709168738093466412977296078493182032963905695630338226770108493007673266748804351657434959208852379590217623256399288154267644333102082100780783149215440749833993038257853268924148553694163905620212808379469048555635905401972795964557018751576575067311545893271493437106260488749266766522058591296523628988676007963531647113657568602399270843673556744822608484567967530476075138823374424728764929218359406151345431846594393146357661627956356371150776874068219745121916476949790761291941216836241640307899859387408137584891689479414888843857307644224507148481011718814400788931816063710667193116189954644604680877662442286390305881600701257532426329104288952589272519023827824371160205639075761562261883521585677745303205018328687584405607189514307283004542911681448615907883356033599715254366714224482504667814174386535632996268024430346065892743245630694906072286549742950774540051442475231308196784285835758121398167857250724261487414577477257474777578655658708097397988105496927489975008950394101268675431236747414505521352693245116475914212582795881364927314610969075087394567072304146258016393591892678303631603771061852204249854477207403405835723215270539558019745591601595587231515216114455804835703703767779478584733938204367310964035682277651155318382134949367836082614586173097385906659249805313754604153076942557705401601419603627481761232617747263621262002604156593539704801067821844857461289351723139749183629199153704697444216617191941596383559908259773079372351819758222435847040414756165633317239747635430246783283510555473965850105659837711761655122978327286799322849105103990273902965444528616655171331876205581155644012914083733211375634254947284739239464213892103725911854722350400155994984709159200868837627093936335869337925474761092341140568395943178749720324959992028521369770508437386011658351610227255699379982331066999780839044981834203242990660592912929651311852102003062107070162320428340191526687286170315312770324740394293815588385940658076320886146369809745393398261508392130717578045794806507138917402677216641848741519855213957217971297372193370484025983997536074232808507898632306710746114551740890814061682834687745814555364338991427763084894991687656961610840754093287926237087090195148937076622578276019769809324342956339475464676860786184649410375799511027853777988363039573902262187982874769924795405526494625643207636598986822053457129806645050865784906651994613227054384344327970557106967966207060730795622148183978314105305518549205427719342791445588813479242006578075013317105584215296516232464206302405689020694101180390180967719468613542817764196461717762611539684843292408148846095882293110988985950553178921768312313526439778885143392002382387894361690133860973990819027169616828238493291243781759136855668261942562840218054285660937864962688416223972065454296496240259990978925790946629866839189158591423897245650330123724804848348730268705797233439134356864024545688645346402562002999773913009883034523010117360362439810066495379606006641567291833551671716355323101063845166746108108736560379938773481143417047499144491691375116317518269174993185058124180638976864370649030552699543242918931897631712158257078260576477795266502865647618049493982302574536349373694358203290839987987206446745692474719582249378277465341494062106545091966780864980173975500221443516718662283917245489935428404804697915140188332505689563575243976724752717675144854446263353735434310473976701841544968476912143675439178449287428707415623207548459317008766844329293653949418427323289371967515078439224948010488213526433245531525241850819139421961770412638340640485038327236130208126481133627965630015326196106630429742484974705301727539678462706189728078333718203863269554661095803832919831290017625974220082370058760171809560058969929537827848630573559147747645601394687945502649433678825205078718916676554923667477552839834882743418516503076759679889173023328803451043947215978730633901555070555247469722988311738607841438552864523340788163645183700138702070525830329100542599262501524044304382000394650545179460343165633241800930700386288203675725672478295732619190023040052799340773819186803922759482520387613410222355209040425306409665004832737648623550631220049294139717890020645329818777847232702109200920995040514723142582231696003920400726124125009351822021831794657307759035542143158878457571975252584357398539851539289458030925323695503329748636224848350810360590538404714935975773317391754766021326890059521322726399784077228052197210213425395130913976931903446126643474402996849823227111707011632171706066612092073920752695995719121681597256794702501259612863396078457191932373098075895825446479587210826732667108108561949242688859758867238436153065793552755105492441781807991445375747079759409173355084018830222870336084077793346792163986954969478370005107344653494950871778768231588322216398858923466193594064612322840989290423160862956443520781046035366842075022904282779814439197313319574666781729102278594474881418788628649498087900248946454612471233220479107179384952919037591503698630087227737673047968049672644758676924631584201589522854414907674722419452727631110276701763464373282789658945637316999714455114650146692103007714983889295254815591566984533439652249501154312096560988816767617940700818886059677573472597935581886025212873175617641743906829999302228844452707305817917692569646951895218661997335400173738849871949848954846695245984791728446133166530251073747952693404283730386117184518926110346297220875066637504671311521607258603962199268543417018990752030233450429554010013680245344856093856690176354265449495244621500053670245182097394161282537129072586387305190995532277048746409278952952495890264740172561771453568168314072888455231021915154966788510369802449958239190105692599569484416000523087052886993041978321126467277956336291445015755146923122851281259269334758043721514595131550733337339528364776871333202409038492134631663147302065468428341091516668385149685943708166939430502240222446600456948232293809690191831252460898308349467183715729910546307540152643289023640968670019743653061202362339432825305882375396278465501948636087557619183575917380141944011955749953441507552598340967069230236552839457175145748625049150712201287108631048616597217842351274221419727030085905803186520841581736035219989621233037645092257211556353300810923290256602320605052572951476849516407088573880271262628489560939821932337521276538832944682262090300232198999883932018596688575235751653370879881544526889419189346538927946435733689100475467237144483439121123228611602577119218333857694070111519586858476210322857013670648321007184707399350591841401924003076953743500634482352530431801411247229828727558175880256478397534855932279354743695821289296216792340208211105933044023998005806673775710501102333592616024424596767565670829938815862139473092808451309473017284853434049296732684135709449081428151560892218654750410864216949064595734040560293751520820695037674754389991375409266513563924706258117024217567518424777751754300811118359946650026349498315996339046920878910739337253514378033411262705089629194621488576336532953587415205187871223031818998392057540546363819148956429598063918134283803741326613097461848704147473396063281254427800971736457910889157694175758973185293289408176761110661327300186401435685119548940509087422776486030809210521121402473574877429170933945681360253426172536506619619360743010143173725655626959583395870589744040219366509858138977296023618349336691709399218473635038280182975010777382173467170460285769676766662712280350758542254357334972845564251477484034964243215281914011567688076032244269927782972738668073428932027002983457516714137982603927355260144376649930960388988606726714738368231688792984457938891828168659926400087116015962175672556959949551466804541651055479274846990741335308343992688516941455911586205672956481313632164071923243185020902631939424186940915162264200216718229539049393178895621544541738485884873539059842961682043719520956269252537886371864908363389749801723765245104106888604134146445839355018069862522342526307469775935702747832459384703261912706563290759512098453682762005240460047575313785365324814131392826327312594478070737345544269785119262651229188862167088633698490128339909585944163767627146205653854646718188363414221988447458193728785731469689529137210632455488968121772388563417556715845564836524633600559037586500752065436656577708755452372348424318503592807978408702819267821471212005925525579088474863524609492374317336733197061557585799804457136150480164889903721148609194306879707567303460183902085527454477389555047832529396358655772278339199291439794708800768854882236023923396051232566149062072261136558859705411337779229948077452913557671589811266326018865677871609154956185741753513058159395947601865576174087524147739172092792815278035270380138329197313702151695683455182319596098114660489923489534755406574464926329808314376696112535355326165998894064181716760892479048249517424965997570700762528813563138051529008474889076732475795374899067128617579462125888964636167933961903576137889514152961510272425047859944761278225549832140018003843858652443129515864701285079159986685476654122980911166482629131521462590442773642857696764203200329639862308687440517899394702704735106923632400445731400669642906515637405403814097250325417664609443176418115383205737188658261817634813412006437863411775460031783091246526319777158544547804120740264366191685974854033768130301827625954734025667875704138397045017947267095709199678020475299280852458623581843388734753491974021411169151071583717648086070979905667944780501893695600257591182950165211718407216423933374969637181694526742083099482307754395794810278618261267055064232122603052770364326309555700774018948206219128792090354220648741476485016474374850776826997745169308374366955669116132295709475930775885552513359974159644379029928652072055082237011066016043495004460960728989912735001913927087588575611610915795342323135328420546393507254371433986640103894724409116338668592920034705729268782825160577947240872034614613093782624075939456193831876857257025460479595867027710001395890643845152601827848368387304268186641142217121479756881748825011326893169466128832712999976346092054228603878915114322404938768936028690292663583276098860182795514946998602256349565529837545351220696946516903714107054025077256363228342926402530001585312164094547727319098584855868505083843954093569146002350524062284473459290295314767615250054399447407051847278769326145621437335714400578160646001844479033493308360711052007890950913648637725869597790120963046062641304874067553142015475058732857864402023091069189305570848903886427353132980007698889962856529629306360350821264154114273404493474477748314969198926399152993730145728132516625492008959736736546154843358887541581683306686233884164901012115356948916267961399088196360774034389756992867025451273027381858088612468223710770623247927848309706414330739744184490996998217402223260236058394839716854032129833387770445733401359786834226166547603847344677015241843637056896495937867967550260124131827264705756946792918256709355417873795316214392608737582273759509595819630481803509713649259705693687286822163441485799507418161239833994772111266458502741714326989500507225887381938616973647124190169609092563581523786504460822840710709661979804813495723881278964311438037885615324701062959499583587265675212837384506663400709168629976679368264343467733113581291392538279406840452264020321237386323791743483325129696515441589718708107511758029657710557502880023517345965829718123881045079923287350587162046595346328651821833534446427237810568586434498208647256724398943126733873595029642628535790214100271017666784010182779709006555017192116107769452400370689722131305032793319751943790223910381455483826840570617869158793915659374400365937794119702031932134465533405934524332475988371956126016204018333447480348568466494476002666756281837343256965847751944697337017049460315990569855986597672329210626874421371279426800931982182160619024942805728805962694894634612326214574424480019542760441315285738982536750457664431073596417155449370045199753468681589400311439941455410925615876780567743806670852580141509885748741531836718893145837290843034739173007493519870702528337436865253716844663068933795475930221329728467420279989863703336022424815775822072086138391682241176614902740467324404725372880785287650146201165530917541105533590595971256464101426654898555831555227098987044580511274932696393903084684144962538255720283370746544911114812180973876566503619765321295689839140738439374445821802424285011883453899501909647310475391228655697593527787320669400546412327840008563630000635140571911134945389062056864675434687228692892327378771868969760345393608284014862364670061304111729740679729247518782789715920857126524526120914989420571605285886062093541529427566273903372370739178365717253869858424834595770248790606834692228058276937602147446456650975593278575898482834844310018368987242685051594081405986539842239576268283264940797502120083490369408420827217124421175624619453365141351804451591292663007977844800407865158001022741997628362547643391273238674746887935009801711360967526444513587114894601296629155608175259664237735015188664723992113982023192887122313679099094113294630648460115967474560548630848282832812939465036410745869849025145921313794569242484349211618301891374742269065163589538767222309523144214638516425291715332099867456675564865282514828007276803635826543576881478741285750217361022613781976829212020131448704269292760033325509148942837007274467456775401924684942275602609008552979165660393484985483503213815941766022924463961596725218147628403007369443357634241687304639275594179796470051883736318486363477146572723558610027217701031529429445127187099653015951805373618517674408196419620369978942128527943679285409482674400626058599976759412629534127307493656870778898353397781753556172093340934766018359841413507688046593912527729429019977667627238222608327834309604254235637603847667191441239621281916294472010239265622499900105246724821896742957880654805578522989198524183179942185692199076476158823333240197426743542225743894116131933957239206950879805050788113711197521407337150403132495893188488535413897925711739698064216929645286700881384527974710028356578791471904321886943776017623344337922225166364361570650764855303014051627519070180917228214768451797467009723279542874080427272079589174918276902806129762157381641260687320763164582882692377274962002135168483818315371118401441843051166015349209355462720211229305232952249000084274301948256293579439782971533326898236190125999530206607540735114159411322146031249919406123750007154573694610983149819365791892719486369343534449477668469563754505925469393571190772606381079316494426193371125229481171888116908414438469051895217068438453448610935811214160428306057341719963753765163582755255900945499343050325555712536309470743699766789714912425721155890914801745369723329131918454449144572080674297553798784658688850947979122967610157497198248597930152332984488852479567907591350291379701367991365855853491464987560065666209589401895825898101629804596116656318956379209944254210838806594029574021408111856516064553043636131551213837212235848863621133238617755281114503092161622717782063935558190339638280881051438439197067993664798297661769602982988965466259830919974594193925196244381978025058126396974446057396150898096784442721612938449191803720787134100942135894778617136768673304626096008322059267642025468557859876401196763154651559360906396549701449278343471292983177671716255790959172302954970616774186735992676285133401122140101564076888919263424876145847824140438045790696175520107210806523557512008416478236494488211594922126937371056729615277071324659684410454556745209319821545872731778045048502400293929098725470735740759991271509911221467343717801294879686828772274464237568757340330472051020121063254847478691501603193732158060990739779551112867156533069574474282054820563149036679813311881799518198140528751943837466365118216807021802865333040418674705956124956800614889638066344166544015322784345912380169879428913700079500195209419383878258936073870809552239715603271982973427130880947565029219944179161988582677696556537419650797715495780596079913750662053003991442752424450353717203516729045120742862547561016405599055706087681558553163348902827791414946270689132395088583321616261245816543468902036962911954497755949072621648623290282420470258031483426970736564890215088220029211208197524980609518882026566497126039597021600184283987086927678178757228382225830647574204267376669458266113130610536173127585198986480528443717891508421836263261676960664043607421793394519804694127827023257210658195757613228258788957757837064045257615508607122495910253930320469146223569837152891791338391117418140044166044777847253797536929466535243684270492460023259521685437572076449703774186743614464580106838198744791702221545162989423064583648038724669918336087185599321214738796239866481380944964759985729783861963263945886559984179463471539547585494717042355152953506464350017976779419034436961241563912156327012717571680478260268434327195714316524206579392689680679016989137830713270149375584606051549711608872078265703191209176570558840849109817225706188270646386273767751723961490058276127260310725727628769422057482036565990874595283679509420377589271339257463996514143135414230274300384002896695095367246410001222034314662037645074987595411685433203997221882260469442706234002567663469283077354959471162599441584848864313859199491999379028813691332083189154441128486453819679918561149017042349933150444533225698397978734620465833351436266833490957668024738507847913552927985862269477782920164220644677944249583948100763803161131677774993683151855825474655648309471939377492321767235706183398462807341903274791909578444315425975722493045373572251099728344807384635149699329622873965878213076127632093746848131827673205595362799033859797083471498621030763269836515780752683567413059627467972546683843882454913670065275778920314236069860792331244846962561680755067867248885191818555750912075827884203705162945187433790797093468227137443234062347605788556339885487804613849406550358797420160807245253957924743070055363061760358509682067374136443231356246820272301551618014328847978829896979117745695837332629358220058744593724088392911888892241720126517045606681631984162829226458474727899442377007519339467148421136137065427824455725751930337338244684862585034381210701243927876400157905518393461940940002135452245922236070322787138082851458669490147222229169023445374763889383219576097348739085003073798472742107705302644896654779627912671711857240246380056227779686010264268919237130854351651516926354640432126116192523841806408323303955676893155365418255379631149959603385793221336882881092112261713343407166650614937397920836653995479214952252594376715096641068337482743442629876434037397460786010134079797917531935088657971839090391026462384194567957223699628142162042400449176338682800193335412679315604991058981223740830382132688272778039733708389587389982286409558116265658784405849392497645056840961384440605938372254049229088705863476352505710596452644856761995822454846435160170803113271642489892773730600837833392381859901801574263271641421720840156019975914782885965023804658283198989053637803798211802988743246385582516493253686108054365556963917196470164936015863089901581292713757151726913022283716700048126574399890814402913001145764526907010896289166328760314344714126129599241726972878836561077156570500996947232915820405493400215030221642832964433207179992826466345443793480015174707465919619862239148144022626891277657799948959358557062049857960694571912965049314929492598964649172019291012934120245980792150601052172021539355878516806385992847996325020054792365875512336977949997155066957745414487148472586864253301912800338111269593392477273776792012379342642378042612712861730198448895149885723452912561003148925097564614204402450184565591500996569199532043390231059972944113814712273909681007802802516477681257919849154839556156973619714985170584461989408175493948452779550005200792679244148679371982143690580002367913394092388540729156399713497488012901813796068670737422209314121398094360349647002480896281562031641156274646949142900707263000771588965983718456888392295026769035787064210078264546680429733560345981312359566227201174280427634354323522240185000885343217063118217623025878744797547123806734513919879218511148616729110932766786444122397817673383293413333902944031114598771948104124084734474830172496714207920575086595322630825785640033681474464200936948038251418505464201227821199816160807427269307504378312872484788956834253989883497720471641848893316871376492067421434823276560582781647828803481788521102150610706564303356471932655191157889178246257759649521651884324878247855779057914556733828707805882613071404190473163218782314114147832721890633133988037082992105255671802284668092247870108001021144235244438245889296258714389255192016287490228914683480538207689082179077227441397029471905356872144878654332351618916777982166832085899274052208375224173576442529597573723323077792918644735072161155459603287010613576980446636098669593542103058332241254807239633849295505765472226100637369068092435678912813305444160517341458878667371524550905882116954722552166604472895747663559876528282355052426061330837627984086128726653509223345882602003565375483016797930046391698930404781473973516940016261700530511996909752319777246904475626514725689708387776014745885386201465828134360521740048261163932282249763678192959161911814943066878391709346550101381636055463052426612259765995637656990803904975514695913177204637965459754691092985811207950545763713166304051130245711741788717393747570081129811391916960293929183158900606611831925985703178261816005617309448214209862187985601952520249850482836507602664072530220552392043122472218502544081347017666247530699480624532364342566410511282120036516674207198173049604560426316927576113909370832388659677162204089204155755781303914226446452888231350951574848992310673460343438758851987556412862376923720809085457526003201984983235811995718890443382289901074167678413763445931560628218208555535554826665566824508267921809011736825552304423642478892678666309100237670830874435672465784664965815901832962087687846404992810880491087803238876012030988667459645731349320602288363109080851301146324717085576870593124753569312840738300558054026393581386895233417814989243421699808382741544467247925267061487950344234675300565198999430651695317531638492575243234305343842970988019055113990228959236888898670843096794706244353927256379554142702584699700180785330363322180518155008557672010064182982099669531171912394926267665183297188085327510983282145555417252096566290469932893656679282062637308506275378426539772463620910837910231548476070452108662957044449787570311240944259892611342141503046324681712912477398490198755170987884747353626069353710600597731275401461195641326060620766269053439315470625839606582612260434104107369712863400384415514724844450747957528571289420081303573748459004744368493411897431598429223345684080919651745673855592176584267842846694327543887607489951680883649975834402877043248099968964904039404022703445264466242043268121824726013506757253183095702279103394601913634132352594938931511189397254355198694091170578436294456833665326431584317585980292916005106156683344903779383711119051837149991578663396755279598749198526402619228835621791112854466116128796119767414984974375063860550002634922837276579927742990730225852388653115153604249673039827648435230810477367896000174236735859047268012100924821903863474008478027585313477805708435540293630706121587652855379669066698276758108312506751932013117825757096008165092580304367922895333659998340289034302320997071974742202787096927212679230812263090459983838608815980600242286357415718545700860319403916746062190661291767101612646885070909342870147014657569560518421324882885638766616073010838373653703730927357073396842364961524041791865670652026944422553813182312742972659646856110145800455974391091671980702398492011038166093957361107490869962136016670582905226732991104609971529885223100569862870528689791920760880734726427410444530956764557320914655355166245214293738586686430874355127138061002206808297654972817167172153746343940015534869371970125553416881405626547428950936946519731377339540649080716573466644851315712097929529304710448130763543059774545296020159352223356294429029175376963886201821605429369979427299564671558761196804305350510572747880417085705187775732452484507533856486308556573467577108724113920916366650386919145097083300797588709524451571653145994462536606183399660272937530217515568906087838888658243305981344875534005504897363685869701880302870136103226495822201418465369398843603476872393801847240539235370957591791828512694876671557471152972719248673460622505101305053852165752231225348519734181549572159445283295370762281580345694444700979599928984863396788305141709881065417133888089438761678254324063147446012543323680800179610306095884505836263023445893253615152539263477597341881409445730446799370424457760554912782232666321726484874200763330460183135501415024792857771780307692629065433837564650752848029037713208267599518960239279011833620120116782391612359731292568135505540396309235061376279638528281750020804863044849184318594560929506443012410639546323508238325780837060749467483798947984159288021042364304464450624380762629178940123360080625019471753715667856864323565205346414943901858444009169298514099360932373966521431297098641759108910450848269561861929142961096307430696741895183028616772837269286506019034063796362785863735640832048335355667398484646114189169369100198575357656096622991779007584630757526403842895633916378905263267149227667599688628081760592548713058303069513740329817417341921915249628698191027222001277844541380444147085910577285259641894725085876754398805534052586340478174003847348807029982591093444317291453797201849864681764939994506042287764499322046508149221260010530587454735152638455743903362392795491613458610558647231526953682790497320074194370260122406871471165449776263725022772985653754995972046237517002444900068655643084841985975550458878064705998535690717392169881757188680913906945292531604977366633044416635654644552076335244082752866011932853509764602487011752400749260908632192736826063376181353552136133968718599654476391180727408388332626847950034154157694461038447328105106298745178905739468813842351992309367346930648186491865708753174068770145944306653279039607975745760743599906507364388455526447679552013049539772266466917965189657365634708469940046614385309919844299857799152679461644822599172190596064501402743438995852280521728679648441774891548439388265398103208987784325145113301613282443482438055654365699537975681882767322509001713415870659452501229350801085919493021953757405882783107463851608087212226107618975730319254265202319232271807441814205593119315257830042022940967877518493251909047122868228096927821996759095368842072464271387318596254256608453537653341008696018053827531389078103141026821539407794942060348838224820996716921218320019982600819224271709518394134836095243174241421067590515787805858214364849945260869746189400458446063175784762517961426596513458464857085352588934268814455064402221114571433712756336485033299539412211116907759554370160900234189751621552739113579794362031666672174174658683190336892965371362705016065034116744598543170048795240233400440304549860728909991883777300111660169842895660891916919166705677486523782738871427479460677805831050617690829008493741485783281196800850452900113332018631300258492119067198466447905794341961583244814716297839035862278335284715323817617994090052986468025010395012814174769972641766635217341339656622191163815583629615012276041606733338444386054742593909466301708741403794057371607882197298920016609253314854946500213293929800357992354790414651057977220225749463560543603776896604230980967477768763272107940960670583927146794594171797051186405921756235274393561782381004790821245760018715639586920239297038953454893551242267800989930338158418331106930034025108543598310830404880304036322640482164345095067723388571707298255573979275476223501744183773180473537051278691002721287193601828890885427478199635768355519148916961206311958549350231924553197764350402650746997290173040857542148123709451207329740143245664316744408305762883361434143958264172616313009633573105546984271128970977049726766178089179537422737365331068754301013968028048568917315972057454687419660373832237133236326571576864087661621761253469905791443246052386289200905417614347387275553865235611576433605471315377530147759982221335192288769910368134959854193589156693384797046943680169047317876411171460195797480877487888356963134691149318035988582290636351785413406013971278526630408935032974710487539171110579245271139914684045945148285933669731230368897135879101482595519912390377875973983171840641286607759714627157525093773869963228746969905635264439977146062931842971200948328484139475337321895178931180833582494234470096684025141022988763417206786012690851512409226755846871445822312980981533235787220994492296699559679515623249488411761693311000019844635594896049822628196791014278269491061163817608042852971401582099635151791090748024445608758668905692802853810443769875533564098128061032070360926403607532342109947655221905978663398481446131997094153925723280306257102013601843080076528270217188512786053116825002791667589137074231409826603616028391996291526880650367995895862886641667331776193409207447713114844659663615577916078632024595414916751527086999063825550713277920657671801227037548033593752835192894413097782398728543066849355662289557463507048430484099336658606399972144114176308573969997022325640911882751139909597709699195564657763291167205527957406749357432442824351451284582388983877599016316810201575644648067945178881768409659451509296043641362022094946584041202896148606498221285643504919485232762062335876258587284555188534863088134696138094233027715887921819505737316552324526793695640222973638932461993226310450501852036766079654959941830561657741098181513517100673518090826280430724604806854657448741139534832669302718151827839281715766016054035721598184221370027047121024960789195931494290761432923667100844169712543168637498382212003817809302715112225133045678506734837246502161590332281859460265373594912763582817524053203440650277060665053506362471322753869440231202448329820524205576121163951631797879903204425298472221898571942360960362467547135953488805532587308820407240192208133429275961811167408849938711526917613587138505432786700273791515159109951418588868206033158218334010794489764270783980270211659495330151457125642572172304359080682391271601345579101535333678417912604309770281389025097005903252953480513947675749737144591815683001959236578336630125834700319569446379458859664550791102959310724344275185393381228368284042448991107919758531009723208325454174431779214361089990809100458068194500611854204567022167719717820993543713251797129251718617317202355232342460408082984377373073006190183614583814215438004517411843950824184778870153555216360766018702427848020264096984006512130344990594375820931207857132721366243012746877371137426620170684398159540771673450136862628656982066406475017182019166788789047199397921153669507243912165249701116390305144950992762881142643401972299503212599982534043199147364324476682284781374752940467314119840826576201773015694602155324526706303288360905082738649077308172597091141542682433958773410230107022843159659930456561285929070572363991493601108207788415323004505430219429730386612681389749850997416599187329601397411991885899974292095859384569155507926523912711742894285211891411356791486353110425167399092587738354393397000443607456912649551518771898180469073857342252510684335884191196904726043725639082121392230958410248026407878814716462755733216167930764620992494802569884133299677947560242463298204455401836439271460777054094716482247687168897335558108114598315098728156833638209251337247466407874680790202692481766475381766627582813930120229766394061255144185011985769333506186818887752279209685724358830877880498946619073677064959205080975131909948683150484685927472696381815699366275835700563150741459056894464565959678582329673222926946074697495798014242672927522168088381861349478894417101568158040154702294648954293389962130706354367946780128716728947959089256036493909941514511366072311048185905379407447960216916276657987541908906077625770422396561596306129637763761162427133263492490728814959986567325993878901681790165495505880846010454247765659708210524674738434538584308191667724021659274906190411114383281365670848788787554691821088564232492331079499105772366121674781236330673174560369247019265810362422689863136252700436138571941530687069976166445746466021229572022483548857397894338243215126651822858883466943419628500396756864912740308132911819081592762422474126982418507948190704648946412989375719333545725114577852447400304755467138953281560175937709067910434779930146583777185017150556350710746746981559630079366328079231252001479470551226049165283930799169209204240693045765095626993512774496465117640215641372471569679282039729278113324849436993668982324373642463959664090033312884757155068981079911056267265000526569883751118750803100756683089539214126516646816976580922121147698883081986110575362280760935296369506654437622018536890732350651106100169709760575647266546793188116598190096811259891372543442935830975352265684191455633214784899416999356963135898381971730462779305256675351664303566031497638923302864426825990278767546729465856446427691944130077631823327298994132259694652499926619522867904829906750065793719276869572535581791835582767808097062800987241076463422526873316785701708070763371737295801859456381720838678393305003562818212427994842484721016147967883548987342870985445710083599959497285737483407504511837547607192006776702854120147155438608481011982219084378407227328730167173595060962290255893657873444536940026393526170676285570442301348646566090424038953469814782377204370410652511797637627291984223130138462213303976489389985323871958027914306390543667139430788809554155332810643590405961363158712551549677662476009237391459136744787214528386068149102079529849358093272918054718796824676115867666548989358576902810321895472694101395808674845653594311086247373992441606621297270681232041993436763103940231004817320988943988831011568344791631255741824224233049523590322174692925254221754137959688646621705202541796692724097057908357134416977000585601057340149515021358806880987722741277248673411517094254560924500465360793528793363564703315071441023398620022293403026813449351059852498250839626500441767419763040233345579771654067318424782556394857753685358790836573463808206284116478601190080237744828753375236080866608609913163608151379991855510490148075882293775719421218288829824478867476730496049494197655015485666523530449889229863365556107002074304628731990901562532836658865806975097869505085649847985775678341911583467438596288386802942828436231970285204171717662940616422995241059491978429123603664886989755863155996348349691015157932325925585805676457289961163248485418990892401139436311016900526376612485775733883416180300098090015983527524730759495716701074005307440655665049764274323503983649448981671913152296126278902348344493987527947200067654238165837083356780174730456310310423105526031832730193164140380329262515565413179278890432862377483912963551622906411447060554456481558139361673881825742881225305629840145982406220802324895953630016648964287951744400605805330634595257750948436538307130830824889142389039456770603871627452409754280047004457883314702580414849492976781079331605064753704317981779874749104621667940149951012747667889174103875617018839559043337432504874216346174304642327530402005608358495634821643938958978447438613048462335976673642062829611880498866777534919601514674150056937785340176443458161242265515806367921499713157253821622776482797015909285653582595875440501295857621307734578114165784051144024988061460634276708214541630183636003610007681482316220616286467939814460747332996886498095384761852218484879578653779782254327593230949765414477853611219511921675660164626321957089990025315492491892172634704516523756891705798471067616174513569386338082858032810815828979637953074510159662637361488693258754095757706751860350029618196240354003942347040363131063630816403460822628133062229363736374305056408717167793898932514076979761818013595556303166668997021246485955847993581605453823281381352158384756186726662587076311290766516033953935025236968241850959759458850371755630956553499732117699842634876416357351536919486731557784047429047846101531644109721638703242429736279652776455764774287812801003321499726170996487642542562287853982903013010500945234682716590052902371179981813255113614074988135436148417347201749382026672614166017543503853439567321130136648083781168617931611362833384590700262008049700116423862572662309655793466227634857236643026794428898327928324944163322886614580087463235407581525563864366684661637859280023518141009510460400735920630469154917246616161583037923900976090055240390754828741056175424111271622435913273511981103932484102749564166817380519126327990855136634471801490279454133489551053075355074853703398634840012325104690068982315689586555273573577609945992737454689089339999302029653316445639055710152277306529719345226472622755081228992015362257088836877228173864778738234149972763452347553754186404852621824828679199409578284504486129112144829724441985012816417186258877861074219643233238920557214640359876662866036857417728242769061130695138403130871097309066946593374352913332144463477811213569794320008504445699289506970238417612708616652145284064315671807432343976785411141790441280864351454331073154964940812845429856797874261944629913901448037496212994781577640430067896285520405962202411750896480229075834960929696495479065762819115816460297821151140600248806182972021190778168314389736789589270439325962499683851538713955582597274665060741783091912731003484032369727973768454120652915653612959912834775527132585714552820938508277614005526055067272965706601594466556894980618096136841825050212340642627941911116241877943711491048819724645411846029466800670580598377656737369708433739856247244952597660876723922913224957738709953208484637221691641765887316248128335977378061037984779388059224503361524085168162208667324396023413506842363207477351147513084268862963411422329461023438838317323733630289277626570675302004333507609007888895679778731541347084472761135849109073046430032907940143351323216776228266957818179663814502598500522390039547226976870602736558124975247408279867611355309309437908246251157610444397590288413507942447460578583826585690081921936550346211687924545288641099727148618562635434666084087805651957526262099675443451627628016838687645702433601779370179342880152742163523185833252078991030635741026158088231134869288325900564729228256702847414978931988894151270735283578488401126168617551651808618496885328543431459443070291454591419106924489772045864108918920060982654336823287761814551939737479789563514749023495996012041687499189488083159980297848231091011030635130025706762672249379112906791691356070299574724265553800789036070444767879963421527437183028960302495517946341504130343678470597218899782001350727115993272677818175463233209198497464984078774462231962954715797408990568052082414957924790942657121641043740664891369130149500001250458472495630913226524840393777090869124954573234614523752632204490600701692498215370634704784532232001956883959742492602539257267812371628921727703686396621574403575862271030084684192197681383597366118992639873136551935329905288173813342288792841311576871224926903700033140933017062293237019433385168601113172466887049343666234695488803036296594604215843368804401067407806049088085342705874617317669911174381958768812283784610912171385625152641549734687068237042419706325171490245014706940039732592400915276320801302285507040935825262879841354735512777479963018994149584253160448748562259282422102411767135862923237177222786745382481338878387367506759905182926212971791943653512300614758049299207619000098034171173082812982850393281867572875420210545177532216495459709144213724776048365542219908386289608359686788173311851675573035261412655847064642291859023332985654712021142494660376531677315814142766521673106015374576820390499107358553873931040889848884042684859761819346289006018201767492273268019177616400158014319548623309897307490609658057108577835014575589517266500072281470575698136129374675515917227804673394280382680051280681269381442865372271482795329885969797445170274971962168838876064225574272694399858208938635362178555334989393053757248396878657831293596156029010439664285384040632144226867853896247383152481765134977047746167416403730813258785693427545647953302929793306734969686193539081425505015390883487057938149628699299221735482220382245671775372210112805530691880504115280836398083401856859357823309715179122437958043012543589998278322562325014190183434693936420844201571991537442982949503224111388413791262288185741515155169180515567405743966602218381875851913608053882397369345158849462143131192321716271864737875181654525269466004222259136080801850484747083987284214562840725576595264204146391625121874873524491218677271405593644943714157997526700089105953919062478932638536436643605623227632360999100282788106993497213870869326590452329080367852334858905691640560146685148495399822930319064205797699960054257012592518036703610961003119146954781348001097418026492739868584125375666116509890576262247941202705111724831037714264476679817722337926104687325381062729651478490080722458382912522856985166542013466971018242957583797874906722653636520303472548967927492391805113746701964016266791413355519034764059871985595503300654721524016606973837408628044096713673332787350065160458198303141235446939829791168869718602071835191850720435712654902561101561475795528302952312950521580875980444505342088969345482466112007044071992232892889831556094993347904310610375057768492249003580237936808065581054895560772979995532325729740256914583216369765650382367531702368318159000382392162837586171002294593418078627154434561988017331589589406737483792453395330965634639495699919312430131312218397023740837344160842792866975348998759488309849245055874701599470256789514580372324589446285609507082709403416413059949297544203922835621886556157754977675239893732773649783114477804244542983360576917025435994066307565716211964892279250106316798319277928959648359811621106836831026577823503588439843028053866992436882621352274303805586395110739633283155961404226346940744290817783487576541452851936132372193500435513146575709605598178360522354343915275692380332925005323829586009975990106482658672300947012162064603345722052019649719325852803479620508557497277465376624376913197117338792502570541793352439269342927129832776142933508149473402654359824915431412044113981147759172505728586373393083631446704920108439128852880612292748708210050254204669802358197376282690322743529877324206464499125792703652911684670244903068613473567155655347945021411002203512740999141246130147210780954275626850629092480856940171265363216688823943210340179481230457775966082436300800393647803784663766687787641949177106610424559050871390549008796244720041062597501482938175129015529085972933146638319780965173826137216638281671981858520313950160171073249204277320838346616089964430667592019712416233650870991382161888678373091751781248342518014869777115329163859264039070873760370280681257925900088463621406432001875435726482260473700370158558545820794916767859187194388580903452410637904453553729771047875211689328312575456582262867536745724727413476873242297402266003540192712356488678860816075204319214524461291404269717325669993238706253911362380622745517777724549326133714531876220091531930538439326963062588037764541567646191129883843280919810922487878264692571589211495806748436897160867295215408840862365698260123297928611160524639812097074664038561730385691971413184198226426255607271649151428698892592928459774371094158175047783286380648005646245106053572057518589643427798553600121814900847409226467088081250020518615491603859074600953978611368552151202070080020280637235268443724241571932840300383732516316809524502895929396850661631773437618271052961343055564904459560202440278918523632046308254065564963664441284424249883851775485654444061312285231240597824701004763632199974798403066547054658531790171481226485483884021342913588715738672769978188901170957492913679750663596467023542602890232044446639962065348739594825165979190393621051606819379496352860192582807122154045051318290260946172990363658772275472442708066900516299048252097731292335514415683701748258715397333371604013259824987218562355172474127635551187973875719432762739941609609449386980377617926471430781496109955813001307892396269842028260670621519662029464873152169452932472907823251885521821527993575567949966165396128336882891876153829537523648290976207415734545735826616594809418107816143273356603920314250462258702642559412599530042913891139495277908654091338793951041189501470243434995527571567086666497620251821150217183324035179707231380617680860457100959759937093652484736474989288568831529186479767363054739944777824072407321912948676485820758143109246510479109786097951202098251594449936797148402348560800370066700687884296748165294951835678837398936212885529200498407398528923151399318354158079528757803727663287064535747384772973728919250620292641903876057343433091932555791449945685886540419991688399922673958014412698425592829395766525681472409789032913556040240921604249496531203336889915607941052257380411383080828489606874049345720795486178217357565513138790878349588189267378813227388606674310365683980792790281639663987559722576901352695251823712383564867537831649628367803387276509451608784777988896647173199136933255790143071778087783951223499538662705056294845269253314274861360659339519704467255017486977264796991463307002159928024236391763217321822158373588021141593212406470568348208409003767262919175398532277150278882018983385704664934381960996452849401980950281137214921636319389562083865391475837002610662808115850576862873352387440478749610707283104237437193274177539626448662309425544640379320390244791717662112318854094511114362980501061682099968890495794892398685228839202900740002038784115898857100627998825076455971189390207111988251912452847776152775688908741344225750136234614132870116179876191500407341177745174757585603983149318840646288744694457424744809723734569308877616542605560123839423937740731234183831703933385094842596275377294367543828161831990685407591246378743341624553676274614611487914212987843877976399646299953814372476505410265335549528273885105838159684670742705924466462226911519062163127551242687965263234717749940416271347696204510111552606953477845256595901938769640791245248319424429119620228171786310771838915758355210633350092308215614063762589273803076311755340830731647556695443253578953546639349327907239514553237720227124152185992419674618401888542451911372420430389401771340541111313229995853544837399008073991596565865964152631834833848651850473756386783453333884618581472736459528335767826080437268822024684256677842973682172275483568113155478667724315325738769460220478870620196980013863284768146694521663548361844289550466272566936319809655109836997448723899642004134986396372283493330694297840637828795821597921702484774241908883743302813747051188675581716632643177052686004316540660785750242844048414904789603212090972171509528076106883589965014336649976465341258205870325894121803618045895965064934128366507002802109201574600566244064172270481517905923239626670974857390702082427290879960438836425767540401299915448449199286685091598899300544506047117110671495924092086156700856309999695692882679611306368358318417041576951511016580720247629096880999926101322698500904537146577522904280223126986232086853781122206486295711606331714203699835663246321691860482347928393443567966872297796298903407769228021557752903044289232880199773940330766936980768168154607112383871814473862983881607101942467737787425697907084698853236755640994047779215740631142687392083235407117042631222646953172406671436408801892276808886816179141321074120944411844426498307272795681193076927753144715053439034532735370600429978278312783465450495381720916525456857230634152518975743826035439089785953661880888380908717566478624312504592698831993722830870426298886361315002147743693541634352422232436825419155470940065740330995437255712949388283341615473181099110174672707467924907390574663465427228280574576628190992182844630265602720831046801094058533454997100517460391026216135618026281094009456133808291285339299612231491308368119514292057327125344010872682447041271468754087332035510707606515706247748235940365864990726275778356473865338723805394014607803528467951391711111144954481444639723404756516459329915637655052154456021694844025259814811517125695441704438351322960429584617650275375214739303301928632429238860023227171800535200597479559525153088486917137316623023462692043153138392361034562159196449431234462541618556769763187724659238362984048394073807696064316378569031590665040538793892239118890033929226531239272630813898318660649690735616170884996614856485172645405217842414756504327589269572212296294301804874648455745039903621746196187748009625423500860815379939724061171968846593900262691797139573777206110571253231490565103484877317885248856395560783756248783938379768061228964589243126491656731271612511455749089278066910102414775929692885715824210178747402236919977890570726719536314311613833698068532836700050871071545487770227198093030139102026867914110218781483578584031553811201372219653590255007054232589431085650316942328535260316834650177499339910122113929474336437923448375768980580227281836175787255115977566511155327243599417221369875035245833457100440104411875166291374377465043156342334208105976547306187007522146628122919309521541210901359543209983660430852597245231374170242148224148802705097246970588583380778538432353477574598625454148908547935125833182363965501962653983969354487795074881476202079477068750006498242892647618547991206648896755594506055897093370846326429211154152895514779798385537941613300110226713940484102014017507623808768340922747611073115933342676695065896274999994782484596018980601710639101145861618200082409737912895052705871184982440029063852866420164690731396505191298806414851322805792836393341686582315976207536273435709925279777579244793255920832369410491673239607375441611103609061958284244687139810517427372251008545036241093653347841436374284091238770633766625500770666049999820360049825337317573418677498502084858880457411690138589505605323394106506283865240878335830961475225778743032524998559554853843943395313978839961697569596665036811632220019281813589759169813018047003194712121716346518266903996400332053687879290884505079118554205183685497292111257536449767311485143000327424758433404431285677079116838189499720595940360081140009818289743669072188166055908691688294810481165831267080021475115486914284924731124281541433502337107136879796254678646687117032599021209060461019387647413762819550060857193554804116387423052128475076577137974102941618913229780188337568916370977314712631892486072754081005476159692317191242913649639289424028897445045967598721020500334201163389653679741075131735433974348428313305737677668709421509052665338880487762261448434517333634895781948659866922651263007276315543763797657519386182280736470473939178827104966828404570459001490407877300035368243736779140118167942098389086922733476377522084956779106654255371822819069771355361582105915367891021843639206891277459581782238438066715381944762153932318425774127586357453265940708494626028652287451154996443742621096352499569719446924409770945195806130624928106256972037080055020470195458019590306154585142313241272492707438026335549168791387686043238557105556057015638610501340425213114170889101245014408145637915964958221551392123592870357286457875907137997413980143052000696211435079720153956929625228160270424941917850688392170149645403749650574724635491117216197624603149558455323674056479160636591533383158823480641118908337789738400320802562534820322633047005085781663935876081677941813045596272823653861591427263339907205297625977251346528419222384571396683881168084315069783083952462570633075488359639966435492405887357617246562231819530389817367412143493314892725740714213613219299602328185106120564222479321776689692219888671933097858958823327989078730758156437624233259212372048900232051922936945923862588400433944565560316034258368076609318835905701818953125226315474227197470190799583224122612314917024321597415436921791785141183093805161855666584548606734020179099593611325399529668854864525937197036630201303082371213572992935732242560818179410209661602910257923227624535896642199882184135721349531688075966061621874728477637779135093001764492154619790510037995132454133483885848610270608519211952245159018215743459826073213833748083643043090450522393734800954910036610716344839728807154657394069142696139610495612995822981162618778425273104039484783612906741814888672476677095841591005465433856106780499170359158893802926398899777798601250328675946737620819650151026488044363242018926372211823824824110350032455121168296305782930493102809598493597607406838890543879111326169696401559376236293521574882763332500846123798470791206848688491432742434224874240840683001707564407358235795788902163546310055667133675165756113606023890736123586834949457654238959825122889075011235567799629382357523576130043325102529541994179480684319795300936341231394258518610786117620512163797235395460077255798966610388679183154072040348116874407322682823431707557265986953747280587850839941282250605553690700818671717902898094377255035592044844534363255793713643427361227653752637645510756049611745163868608727589805445157575903150947142268931473141520732821496543112713413856540725528764838263017513506681202206494271245280002980743488992179349503137754818037973515825181817269800033333291503288432379274186021752943222198636477175113825991127514336656587252246319614498319214344086835844400314406989720031895118024284669786694154148714452989537322862481571578635183982606968876806020126108336673179615359684393748018924700279980746997913240123872898862246681979019293618693985906281098134977635210944846962079080862653297068524344186876802653432866188465650305409380913256277054738534145488171442563796914389746785652989013177985100078492837759782904471048832141724527121962536362173738694584530116540655206648535849399436766732163332085007859990257176197164179865381204219888565598965302978475806006925722027609072357973643387196491341323563377264500085835107957609871851074434659778912543632469411118062903840095429461571698585175960766579416508944768514790224593673532225485430534741337064810137737218357789577454115345020538921618599031332039595275055923083910012407090996390371499729011289809186827446562840747488893968303917102386170543243587934753892871036121645244665274455925571548798020798882654127960946616159821681175662643468460619137862831466174196792580247333205852759953259073464454711374594241773342011443411542709034591350464747577691584586521116936027334315490915554611426525394821648788906906620972545402071019303015486580042588086704055154301768122242564086758689917887642492179846655606180521728476063443987957817161560763449650294428401424609826002073653389431069290684048842821093495446396196227268546860408848010272675769803162669025672016603527363673805187406631166612763538299309135105908728652267993530429548648799080288270794299617602352950732053837148805015372891495035719228324701985448707335723172948278479129402826267458676385107571116858025818077070700420981369607019654413832297331800264331300742821335104718213966273841652393091793118512035166015006202598519393609901901600875824291297287920065404827051077645328670414585597419653074267563838600242629464352537547955064411066206272961239777955153109904831625474507866832633191371708817137192827966953151501698696301591071929915450278576648169802277006296560982669908105737022102108426923830726444121455808533368239142466431062440761609820240487438124657792814939939372513273563676189927763390982904040601322654763456016455776367505082501170108362610823650313298822770393433929499729765104617545033022179947065908503937282397560249930477876653052031639126524186554992321771572974966840706240969470857197739200797839522662216212208712382827130417400358792736080379385438668717455230676026700174202402215879127414822344743189510464048134887834236747886960964939488580089833742964120578913865894664938445170880191561720806948011626678928216374475494173103612192058741078108213138287147933840105506779108127316296635569550516137979008727994552021250552545711727670298848698859627874870796558857621994675407855047143067930720848146516206930546335548495309806634537855333761119524901276062453599896699238376264067189883422911338715464231168878942086609466293284453956862292651634647180064839546439959941952844459289431342018581894582591194589712196818607967347843276985383420128353403417802528594254747260122271574871432455578444625731549907136539656545568483796919185600828095015579288545634369829487064207544966225802414019191072759348381483248345682484388381775203718057910062239223323896787831267918810548874260871445838078029583290676202858777944353233265750260145397356506099005842092737581008146476473493095924748936351040366907076474076806500785921426528282455487231379383568490452495348020904920878749212175822419395854838473546956425536031842492288539175802136166252681822675416871198746616292927100964708579560008653586535242549923440130676785525051086341601384338692793899090630618698864270401715988615999201274693332078867220000268679944035585177095241566652096538505143820442037415966455294862007192158309720125662957919239320807637724338452366030025206010226100217035535343948550935614299403143755255254237233723611803895869033944216151113362776698236163563959464636548735009604255277838044551111188265018664357247063744232688933687156727023399577909134560127508472253448011910139722085304619391622505369381870935679006421683550277919980525757737180435491944960988121707265730251561594827718013180006289476099535923481561617745582029450426862952896141677032747601238800216243508925435143479463841652077865318703573340380238722132809596595526497408566126748955035845711997274118191563651692511615283717886035673049220245551807958841807779754043339755212826833839408370948914404880464407020706201333009702616209574783206790062911559587577655287784270017423369611711493926889565452322921431950491695159335025719158595721637381069744676909221747210998936286156100104818844744040211805524349498677810397273367963320836068580528119222685326225153635018059569761264045913870587362181826343465570773765659976983101610148526881784276746737356404767579473280515386000633934607166368817479701930953390034735432104852694887016820589782257888289779907237940493627680927617769132139494804728697500713981399532282440242520143570541407328651524426674855920729492326257016071353625232646595193084833957834155706781481367216653368244392278639070460536283971450311404670409691078412795264742430187948924569587007169242373810181661986207041783467456493044475196036395421410844430957459037286510913959345468934913292027204207650611453004452565447202226630661595105730807993644974102310106545566472293922854515764354396152900756370850225453625973320715746234470173286355986690599343698602010780752781362954871657770381692125669808574954104803698534088050020376742501524418916375748990012118362723955297312952993338952372387194786343532482086492642931913105757137919186698295073427153037358046112158713292432527171124889584492355245136013621271224363961070532304628667453749518588895808346271673286475313636525671772278394216229880927856713208382827055347421010809272524517279028154897192868108134487850583199086523812996315710920697721505319919483098594287942989358782415477120974293616545921305130508030376950951383379785637655933060709750473220049985163468109433859554183243151324778557978489777447850025509822241468957081074975186509348856072560081421197351251671597651393118080150841312333701562314652239570813541921859197849951410557413180567518941587473548460234907787988884807362246283566082919545781297758016611300006397832709009724379428811793835955744973670690504108022298939816605968538516397935423233532721680028315904072060288001295363408239726106803713946505567053617628858145183130822850028499354332706505528891432673351405929483159035342341910669423414361909138862495579549758627411680056826833393563921991200710929206231777679952828064735936844677994148609682985719990571775819307570867227148464267065363254375861096099103361101355801228481175371524703938711184947594492004683488956503657683952363739085906785691719735632682744739268318709505653897860458367322154635596821132711071214882129351329397387499102507959722304810248253398810957420962383469109311582755419481758045753564343856713274358395729194798149754331169671936062318543974001576702696468849749346046058982931125734681182728043802335581554279554244977687157390025934226043447026238275241349953053276170172229656026032185218779731415428311513930107061314710426110795947182860413733190502445541139483710366064988720258895726019192682468536561773104812106299234189081859754758730971362759053656227674864759424996645057721598084190103759363169476149940978580356921445590362010951948142627929154085184932420956498531744165164686048307948505963017266150941993824078490088578510520146714690649722671992076033278727248568698771225624527415933949532250170244600072857011907333187431245940750278240044953690776629433792128096515103799858634617843928983192808077007585837164618755721115846799957879902277243271648723999082145283334176212747986966206217897391917119363953297188982893757752683405398519518055437697679237666167980025537422676804023976660697023313036646928354236520122839361165692744047334174034247510335030984450806657916149686473681827158750074827945161300916745947578626933633086358876312166533701153300187125962851177948066309523841433679494419382320219742727180204756972055495612048792380868368728926694577452428951609246574691306237312675556375190640458677331117168988082308425890649749918215723644185576144085941086045808518274738558613135838674956562909047586185252246410218927027694843541247424764959517927443054188328085406209302848244551815664385704922520455972213789461775392415597266163084891618813653126369462599098800583572914686927096926479565401421917510262265445903025180593574362936757717516944840429389626126921456401230235457315178557357665467327141974573148197687733906530764260310205816611599512930230396682387290068566326861903118849054674516263202796198053277490082601782012021576273658303907887930753149120291927623114367221136153971752704133341027765434576602876482929783446429041321745266605678824510133079737091742282816389625083719373212705673755002033994822474274015256996069014473171919467365755027546087282952736556221582620348975021383901528429869539096761078208078764953763651235346034811763908600537010565831059269483278538389697512942188435537847772013784220435575350912351739705062372050102372968928442904334164594227159177304141250786982525794789472399321825478510336926822531742788624712727623755218257155469296089257376567491554129986042155422360718829438005819916693661265352608384780660946770304866945157411266999999089519764438865381173703804268297221115101039536595942903441836695759342167291590765407435424814438944919257593301588939711829914515599310178729863598961172573047300514725105069585844466760952994831836919451976790475858459094296402122630158068559518221104242111741603831673902830814822315860279024158348947413673136739617673085617945320489663195386143334029113945537112446446349839283662799043165958182394083888212173201190046022267549277968160958418895358645929775352422341511705331491743407088761849411323201531407574698736768463270439928311299784487463595883437098718109449041108612129336365218160052955471532931193580414493556786233655069530766311896489001447025690940526812190228701007698553533662387503331470405050934549067045128269434197161795290862324191791488256500190580805907002157272356788533883479005617104648091747337519433170127827865989485293334901397640360013747521288404102854010865640684339565526387586941527489639375392662260593955544643256158399430563567875434872123137324764291561638891721802142217810899918970807574274785140568097282444752965571548976339442603982129659351145679735858260226257869563122165938802022305364462606810757935473053133069214043349258310941393650268260312937594421882798945964953918919933898390204177127727983964016201046107124335671549424781585429582148999467037884263673124044523795165488771671464106076020699976034673955086218010696165571987947942824862409607340887723916050412385529431713120143673276472951390104538842781314731471052197988044998647618386385224761319037276517864478220514609865601237629287676666565049480371247231377382321790869122695986998573592197016025088650396172630137947458912488194209559462024008365169181825452017977025214182481819103932045908449584590450575340508543478908916726911300714325357268904591256542748502245297536428436065876308954512256250185462947968973913283106475276545342540587353537963461160116625693286864843619319537987680642564717380931003605861125040822132860946640735503194490271764986781935694608440038420829079707596249185540335081136791565286439445701351040974765608997692272368077719817803043503470267515118396095760623509203328208486981877840713362588349037536347759914136526463790483255845420672082204667105372402220340354495214568601165248761566258665594932056453218964604122589959122673099850357048903477308752878077919337782781329404622049798870892392253187609660292096039778065251991968128763567194629582728331702131310977255144877315217094075158001454749099765999428153719250191894225250960933234026765595486093863909099988300959024961508337338857099456275626970245540554058189056115462752687448638569255813278121450278905132567803216402195850398390369367026230983015206545802888492628821516004082957542971473717670462255266258499281129839852621668143698512718759477911218094332411143717398864344654027725360630559759203320554915768322009226447051316333072625636997447913069302817163176647457527125275403762914246671613244538072388272897043889158683425624179501040734829375651675156578363293584606510173157154244302619404906718603169968104574825284629553997346697601893703285469725710022142638245929539482418014343194943805851347895098537756207934206467517709518741302537342913404718668212437196454666998327680097719914279401887621343152861969165887089001437829890615476010220053607178846673025416028537386753322213970739218027205125416555306436466228612181541112554248736950535949335526204284352856512176722993971649204691794049935548264573423640764900166363933569724723301332366848037666609729610709624354875543708066666705380791973751337575811909683669629426949937101064882056888335935318041819818632126644254247216562597101277700336066499266004258208815519777849354486141368374137049676837827139245384206683392824020198588794402815843305106325226631552887506787496268560800143884238899628375877968880728479160492936998024946508171290944913423071739936740523845571411038896601667730202984236374149880400691787931088667064393950746694109092240427915576133588460075821464989613149031275417856434791407872077413935976642597906425013730615417619973027621428507061998083028392722860134054316453646687748675398626275619798008787460700585541098887723553079979755233004093753321656021897819371332810741801456792402754252677076255110979117093600865845794630554719021988530398326489897210867392735926235180700790717809945239305827676180217705083643850925549667266778821597137010515122601875523990905141357955183462643085002000720756911464576956099552314893517569752876165646324399300249396493338773806088775619267752763763684014643158616467706848128072137420521515794743887864652168628426701039816524314843705113148556805618144973817617180982560972383926036902692925184195290296749287705243283568796917413557169117243305873450193486865380783831574117345878943443332614239628148286731770898125009794371463780038276914100509834876230170783976373190652270192431379467957153528547768303233578069796810701208822007094806153805285629553770277057338275926435180479790332613652428983422667087012792350538419988620868229367278543504468600252123806286636711182821385519155582181408120411651303818844386052503416803026725410261502485648922889015225718140910189079360278517407557269911783171652635573925475385261427694141322244797194705043367974609693523203250564813058296961987995117324814573604416157148215316157530263877525585203576545116264661384644210254504435523694389314887523109176146658582333132165818853208876458983970491351294596157161009201922884785806976422818197718167797612405850156686380509317532022841772476199545213290162606008283097608046340765634143691715836008284123654049318963677917740549594897213500698847673429626864828085568670754408036908879402485066655173030844633512639084067446060835307095904420606015301718942454778943960949416815162176112903269761212190991246480438990320962433585659448144189411218455170301584432061166087186195726025803732500770036273746418654536149525697779621436044024280854181585133794647823981405812228316623932549059787386393435124121064026562300683609359933248245288530017422523631104139256067404813217665237850041557526446176697386541840679602666188603297908077227015970608058142212404264806077029321788871062432801511871227177435173223195822512956942526526534954261155378675039015561617599002791275055291424672698463663858972431167417473597615552013004625563021166023708294987927825680811751433038359843671892921456314813987918189590572794879853172320286598349513380411921635393293125090573033970229301943819734527795680604759044443120223441471657546867749955621204641711670580477689958034312707995805479497809705805213903094783063832780598325776419905706233046058955991954764056583659253530591371838276700992991956771410144230344554133923085681706735490275562210631853841327497175073263892089579698303741508959586454390088201973034926233495827349525949027351451474270540612843105728561535738329776108144483061172807398619696091214618538805890453826894805914837599922352263683065896126014201484235105491657957422242961963634840750430858747180158057169793008766218060590683670953285172084775220032676857942068996190507362280336454788681293799772593042489732395769255314868906616218314196347961047483424794839372230178672987151822576392161824503015019265792907597978385785019875672306305510640707706261343222698597075184571239215198598601255487047168799683933129018836379318031598334953665196039169046294237056427968835085735744067287845295856848240430997259667976262919872409068055036763442286935996783859364973817354084704276069577496639759330254230093597914264274415147959345144377357949551562350554580147079667375860696856664833111456880678284980399782031676260434898773332354912258845482448934429162499234398295250274138240338722058762211124129046491620989891470773167870187415923932633150707782693262098267595169870193325589835021028417109944072084038961660986878087155375009605249110436405502970974139959479861328093334780863134256984197914366575443665072681408667259802015896152766746843496658436711829242519373206416198827400559032581068445187970045220271580754280315436747692693712198392485567682725671628500647327757261663367801701125198290543765769742481608492626589756065041802021910608043467553349295970936042231930214813206924227102455591116390161940598632665427399493814365478412698162888785329258819114291100461628508257972363053713377097047025667964966444066490845937444696364723595717484209272747169585720198342446691165615399869403537674114652505819413234208741895530684128648889683727142126243493882547950235515058789168087840464809304916161732301625538248731805233847274312345684640722805232289816479479512675456661155130239298695936658207317532216152847801794621553700463766752175313402939681093042517369826711397321505348424197986329356312484070032392889102370310358255697900811468696596494111423530994610528250752823515226851123128851366412920024856587372341013394157891624984807482173038967310443327358848594675677910873158700442729164778014996215428424020110114532023966247600194570317338594365454791800095422913158616269208305691620188009177389320581513800622177434873381475582308070900201893949533091350413212247351610921070862550641926247974937528918744239465972294987189310704888185716858264644197618159491929200921225957527126717510763271628546087889139138245648656967256274051841311927209888509077704701312841865755680523978034376062150502645096767791633138883234045115431005658351496217521421438891376062314298695607669386646591040138975452598552256857113340938071808505368515667158160268277443443543234598055398533557242442973504113586272765903873139335687008878346817757658655259312431979195337417425759871215720272706849083938229319790480925978833134676959847150948659506093867456062705562031275617147662966634509179538450432021471043435260314465180799908910090595781879144932799297988579125909698402461956249979325208505976800450987267673091482114817249567284783408386316611100888053143028285008318906150599019710643534679266970700682194295049144910364293791638464982582853713310366258935300899166470043319868339403148169908998149797846699386788578927335463941355098621169925427425873386260168588377592231797583311310717458450935548691201012541798137714558679819002937976485649338133183585786143187557330975408952665443974842536887490015803785436389592611453600345355786879079056632092965690553186425060481114387784750518139242507476198437150453478935455884833501978501753799572585664500216737909475258124513900168995476431393500674421538050063288638809792524430933554674865124740442513986918697948975894898539609769094637527826253293705157402434144763892541430638767158134872338680220698939181098072302926487479910758170874365880601095736499038133790699716192562494317987556861870189632388606701964805748347680957894338729787288408585532155664403384319748658623846111553951064499620375706443715000300695883806876715050809679909205369231113085450562833610344166776711168962750818525034932699045702903331275531914455102972888223276089058626180358951794744299237833626064594381608542203056973947972959056385617300740129273361294440449200699399448261954419784784749459775727617527109407204663493354089125722918098711185855336765898923602262526663072011708478715347419902275324528899511751717129934261474804772099808130095452385803448134251284894724034466767038265492631593688148021753355611113147049981948237524245081945112734894189572863382137342005418134418877481081803591901078569332185785724509834486243747638433199923363375472208002947289890894690938499303436229494139214743860112761200556703574138547217047403712473467713317991763995156981175548290749016820114110840507788709560259328485231015498669539148833239642536777779546736297109180189992304398804011907827964179030395327156619960780850499893455352199082474673868027896693257512551362999451150391896376482583121531509531278744579123954209740265260270035589702924516825112155348755685522572638213969961791916812104397317096854396816438624467962863924261271373616886011039452935822269884457697725012410524315249906872829008512228841175969400881454099843987552913221554116865282923301689749346185937439602804145440443720842151400987220888759256918518633243616265236258687553315001270526000749559050015229893872221846834920553284632087134215120058697454821365414555153365101559487848436754307057233026096950537075591219279928398837865394849386669472811308610560222576802420898660381027151807567026865903291720641587406310782826162781383224102131511951240725095541071764765136864447491644747684335167679019216376306618255462505517119586759667065128789438251452548218021224208220100310448141423537732398395883646988352148431077774403075828453841258349072390541323129004320995207597485429079755311991500113943093235964785544405136787783522824647527649773050735957781611419503938756507102264148111667280831276903327938016426630939865353592281095504755593459274849344942543496742300372702914817014158820547519885987644708339127619421951167468221782344187441225577790598146557299317322231167071748868974090029551723630742906142901834861446186479031757856205344548839684972728106331433260809994070020219856628357079466150887987185528575694099235604330321193120862028191330296991683197903158257179414375002113164805042221348227226112602165808212715071649050274739494151281133594026748012019164457383637362322659663398652339147142683836672105491461907590561282280268430988577624845187399555821781043153850616312085198983020918366120854316587481293985506178409804026402713933042964308927515722545245618612766230270649389558656041635624495227108900401429422206499378843307703362724019221550164265143514027217984151197168452659978974653479670674074917075630912873848753036373745698279708389879978705100020344632557978035175703415304159695610727013490973509435534792116605702232008709252578133548652916302226275538358562822772138268428639034873351511006484512346572172885359606730549415728437231161186022305519394546211606617117422934263824847635448668520394476951349386788960560921858686241271326182096665390133231317897128234538113814285138048324374685253989898339341941809853934812741690252754051480304382431809901464033681798913916125945956859773066722028182519555718916492429930276798019954382030871300341908319960769508313620182910451062910117507057282168130140415754213572237533302577569984282025129326052855725316539723432354572383498108313066520857058714853798418705231792383246066899781022030198266418871545803511531166081363006836621234572758816234155770714620431200536404868495656986163600020679859335041407395025290709039133627451061035110599495821252748124449157985304604470289537175417966683617639084996914980150458167298544487133046321649902003235285692620920999643705826498627012104931527522003487724113424932138582637925863048943339195561226356701994385713903355256463437103560987040427197202971725250179238204261525206197418643521170336771431853903749524140414539776855653914823144065331879887727181479341155364247100104364906372524496327218587147844605761347526397046972584131192034114954946559259240423602835411147763743642293241243539685444881352097014760802880774570328517197557549421111188669256812953050783007904505925807650393469925097121745711203003702352478415174061429355408098681118232045253317510377203513218270114119156074476665396371082799867398915023305338698645737402629730602066638028887451111452493293965073015389325936826235082271952157134686459091595137554368436538894934639415290927153738222243950299746498106112295205593619259264608711165826257274600109221385699584267713603374633446085397947552258323317509458616256480008747369403461032922454729586817023916092593900488358794462662439720223228782397778449046865017387773388192995957802859595427704496001714457628828352679342458699964818553532881997202961475206213779119266988575091009445631204071559095111700624399190553904825844628453668309667620866207712908231711060604305737934572967193203919515807347993214469884891678781488681226736100675379932194477805352184520672801109165499152783572307087767095442215927285302697758248732955544123802262747532892720855937551812518367658136344813140358587829872346816568996407452378085183371508683136648500403523232575644814375024888907178333426032829705893776354907763917847562726016931904647853867825057567813392733032170488945996431221132339452576938262861249767174591005505641833154214208460803175965713083794196482075423689587956607468265715064994346542484030803776872704683976361374908811151528474962953790794628747178105604914526763361825018058008628667522174268736103826748405986157858066171690750713783349173365414196589801729991747678370366109548307427597642101923363598662270946953082736553902498137290841916413125259429601201932848444043592127919353605268261916948145945017123222216062957778991114799589555408285474844748188669392276853936861194968056437779068341284926158502537458347843919162947541671853142478842654154873898011879428323799707769462221690908793774571027126658203701462910307678038810261487920244397010966297964815904589547335714573578778752237327754547689468258144401308786567978545436720542004887906204414280870749545951429425373523686288605674060151299050945130828960837864804036238575396381791798591039878330147169076754245307743381431717125919142737226242904470721375597742700195652353543253376843512228826364436425868450986674967271609925053879961035547680318925774473220374734577481290129781577501930427660338146243078480380331070405787693345889406037851392925667505940790131537856357306836762331021543903320224199315645903827351101853007968432609569485083110308753216420929361334743812444990224748861480454393419011951452251598702191799745610594579474117404919435234317354967415540006179897941436348730321136430567064505202715541235406424038576948675252769144686273696732543345787302033093582605349444389451072784471722320371891469744537795234982192840484087243509519263034665645926833975767360431138313786339504150900962858181619563972141132637588445747618857985950672999854126276189538624148063732040441769216177946087704703722890214553581143809836764255711169828424459993143087935530973730146451947907254044898829041309895726862904597983094489337351377608411667450287961001372163219944915294412047264169970566642876501088077146639133805592041423031357310403273970023562762039422866025839601086994708979394559887542084271941000628776504891328726352709532866714507401455380672735203325766962511126581273819590558508287355260573087488845823005240571551994580230236496634451796501724606741119291539722541040018591188659529462881341567780025910677333712510314619282630291107869294425225647570102307553689847298988223807136893191828433157817659278548616498748039665581749745177181227655643849068437419951820105291805583860562278215868360900237801652038446333411601193735874116414784233847296771330609203409612634041017707122422895574122718701773317145128353324235237402728024397666558127474964725449443832387221303605237858527775562402759369125834774335060658802670346185991994850685336254790339413872585442667961497057722897374562893257188379473041252240380390796250318413454762117249749075345949991329688844879235755762963032094507859967298571278100307367882580239175921096424136549562192614919966451352779641527276774537747094195833352334220304088487915154208569011433947593193035814969323456484834535785569930231777438175857538288194276677616894507836678587397484430073602886019526695618001857830597464789074927196895769517028466448033559922622670242689654003590155500061823804992344627836221111066527488286006644213438558891763817198480375273426928604329178305966680484709953934177051574757916811215465805686821057500570593520812026355818274502365919256097684745804263339075304905480543364228590810055441406615529993019889974118994877084439029255390449653868397813194419635276797824299833350033272094615318303442134804291968874632875491484325614228167083123591105411786326765164853172423543819648480840822771181995522164715989818789137431643427397315479700222879855544952068611851049626078109260013382953656936175961359925701426072126711568400913837586801411314036086234786306963423931431917357299520571230631295469448019614886437132841516283080169799745963864236532442281458180150400174622288385264016047905551402467634447973020015761675712051475287884172275441620754317658914114537340434504590376002694995054892488444205931462998236098590492125569462853491436582436527058577845260084370625324871971560500067135602363839381521122975673744367698085381210763202487432495492382672907024228868065235373294267355359764941730812507825631208482506609755085665474493361458306594988487670848466788281148397480176694606684953600005374441851949001545796812098043973300269527536628818427528078956050834688128438652363328124208988806169113680612617101184579999879475119882187677718160117030249945846555933772574663357322640473610369373736161423410885417891368674337317503741481495870653879265974727294269459840721554149252240212473702648933525184730886476381563085828660160495284149501034638906042774069054424195784234134042096605273713694086397716239004073512343231305380570691134604742513751963988564913057778386096890050417232421884454642134969143217742003479376067417069606297425474744226166430017817435661016814629664129189205764135920995673903948156916032904087098769327435011352174783196573668170590585807556042817162798672180032065588006300766231819429651517471325965068049345354818282179938734281870636533633458588193265735271628570074131379561466043477787710761610468837833210387709017823743985439710067170838602658456569018226878769988295640527383365180280837807540381959555516634688975227896715417973724988160196977142388866450423713541610570655002179674443210439560339180729519105128503993038206717310370398124554706000488551793240759642910873417606864063378336383354497769435679179537127493506960482780893823311768673305115060082775091619412331052954351370696646077091242332676392616397688960142433779900615271456933444662963918460841357440451690423498189202534151788468972785027403768869918734092949443104156239205651635443524564617435446042494604783872921213530994855562158106911319115608499062664379193610803848250069851135516171748322338379745239477309525893311791693468208969654516759535005329259867035733339029953338518655904840828276932505217566503537325110267563668920604513112501906455494643642543771112693416587258382425944131736400454971471306013740159030653465070565286789425144350158921244787964094747153213723261814946498941701480169260516141842775931065335642622115270197433094541565326329602481295176242056186670690724330777123805127407577248235869552010725966140782538920194025171278792904983360118292750950967331919301155338207114360473676465098240086614594521651385780725941898105548462226859973515981909790142868496652855181620044133431538652820671842486171524314016980823034115307304617285489633125210770829680756632484508078208543504666341570634990908547756057167291966613769129640964274955315049394986503949213847064931615891872496380880263131070687045723071104468665512951508517696433406973444913299851211391097882899938700483509100444616386541581652814659973474815586392279284107576881308086619776274667809644589860008684079283666966905133634750319612653166474977542783027167560052801420117797964896884373865870112348800248241955990368474733434515300158996183598888064116034679925472480678843480866770237667363678281874832881333492844601498481676854715058419825698721666319493221948770209328985135001052696104260270073713408847559894909874167690340991570160572728910107699475440057846892543827868416702701889411209217927347158957843670974665756550828291170924694632943017197670582881730112699048827712580949799594486178750114729985205015326684315102533785244061145323407906911764276049539636019168736643492080920217252906810374714182626309148035909581239154450245502798004811962084938113611473134163368239851874696860225775141171632360920657106313008392613667145953660649310074364500220929597612384408802041272863585899728928648118085073821106671756888540446411458607022978863201039102899418951770132534872972765855244856855653691758698999834680184845724810016382428616949372725799489735653236891260805895870988860970187710185517738685597175833687040375609287228937076317561509076537687097770461962562047758575640149229006359777283560754617288289303784198356603018332011727932787961036850564672741536322409373085166982858098510657326132822155024976018006358744890017450962535571775385890512857819539122016413781082309812977049072753412960773595835187778890165634484635154444015871726671566277818688130110317304395419576611647609365827749188152947319763053864017028439397624153644058156146286188290565059774281215448937108505079943169401142172928966491355049754639053157638411133503220190617523535429010864881863210857666289925255855447151902344054337995575432743726713729217505366967017345944340702495902446027484860455090629844506985436237380282098174774237662603830281098927636089446366652062696050239460688878281665202961095302287867498874512351162242717374677911042478752604801494238965013721480682322628146065553100009920562791132826510429332345697036367161850406703074449846115240138067784450050105850769844450848665739069222685423847216414531821455016407559386049679024247223495554921528120642804419479348894510679587031205037382777533374944244353005464739324866997777648815521981438651532350149267177196297582544034501673537574615794740212859848964810565356540619153409618619087392338558338053413890230113514242454511558504971430783246668687389489171108253668295427023119584003466982930481438708423800273234425487931311647400167567647547645056251247190029780606372023142031795142226263956490688656946385972651417306101800709928308467687834070216700852042279997198206481872681814774552704190879286299745995952295623253418888861290545426326605896213062670029915165180741364880064756281789917066235915854181850927139625419544785780384057665405969747683766419655583523827655919580906833751647132142021828420285545711110070588461441531439684733361911091074358908405746483599847612237938464500156236678801270049119739607561231607739529140339220130201633358958958815043248093774722069742072076679036362982582607030712493559427935907474396771707649075589702581325253019935351167753315256650479872854847117747043239984151496556521196683812659702285776864399087510585220523992106226699802384491697774517723276024609378230198549077402849396136054268899639396267960381812125004158930323928251851421045526494113158903205534889022708305588128590457738799727261852751057452694313236885883032407762822585992562104990817449990407379180252399316589582414057149581666665128983948515097410005316396293966925575609971032333435007225643223456110105906233483203159370715762774148826510296647530605031362156705196457641291021535180269041795399613384665780305283279812339784071137685512652578061504854070717981653000976256865578410876531112443718924449396047652850242980484288035681010200547184819207770132583910809915026515431457078530493947040509601972692193068092946620362993073091097079774721524060788299994758008357456890955629839215746175964130380474807507035822530643066673080092275633386340121422873810077924604188380284955144605012228504408179162494142501270515716582560656082609593026385974030444972336502612706075232430039548916438535836921530831545718085761442200199254154076085523003244321892474998083956752666429930242158189002330265955636039887969501652968457043171738512187094777643689197050730751974687562656659162178703485966960823352024012651646852254735492095750619412356551448313201195254692868334859563457410558467041975052000248125196527153773351369881809165519374155375777932960817176465520269958045085484428595004602028132835813362681940944486607129702059119400546164623822044242598204585781531745787982086536054131286909017721449086030933987361263699878664807026236033495669146695999197494254884563915465131164405874563712893110076224794803152766414801090304737923459915238959353319467306614333017748112456773776127953419894071743437389596079544862166971688737043320635835593914384903196873626673565480956805326060029998578455693586660727868879325591170042975440261460271073838224072531110300981687535536976172048530898356542721582194345003756548736666508024692346413114828429951560287834407098210910526300326428270667224610154952794168348688258426046645512573612001159842934487130595779859946916313434262501361999805963967758134279978765959607285549015857290564331647302793961498431142840301821787339392870374992100766031197968330050132601586486749457709814505670343417388844464435459426759724656355134069145238429866895280978743143131466308790855352843085379037863744490958936966836113661014277596610461803766213812888459868177318115952241896856304214174525109209123756678110605260533774956216610057027340766729907578423334534459895559700154033471676602180143720427710542386772925668120217803699684354811243244648270796012593811856125967986359859469252650660095081242492854299629666464187481837775434815600824189883080970662951333560674709256060350115683010388126154640854383388493751883077113449823884770858147523850607572888471989716161337243637571478003879440233837275060265325335876954869578032249151898383410931431609171387255852209355143759731404369148198378473332301606675231676748063721444732113046426077053921706876625066807839481752805574934618198034412104037187431564293946822943837575574935103088682646322090806376497551532194878000000386263165686480577670252747193883401208577921306269751052297754378270144450959357021180444410483604675451807824255139025668494959635382508312874233054915685895569862674098750464948390576136276196981591127267048513762689310455468349463655596226586479070331642201890732593368955308060486579890593177526302832970762700573953557227114699275595852324464322589788951445412622277807741630943973804459718789744884735686494900134791314830728869492809948706073055701280668999925878987011777593757618785244470603527570686344944439648198257003730362553118115108251355660877468931080040409044063850377382725284440501793618504823956588235018732193754090566404081674958943700400454564338921271610864743225995846754401187657050533881479121832190947143666497595397216831645678767621518175255447184992894301257964001819785671316394856328925532401969275043038099678022425566727539059322236593501864591119856034842560457774005956379404744308668689075562392658219413051977272296127604641351254309501761420154165404942345700505347981038503220102630078908712200811518594629763174576742042342434988703742842384343771140580930715196748310528117395793518428156934075353902136695386208305475084149947059921684399957481620438541118874330062633303604052126997581330740782980437011457914120252692372736000279393055273899170402043023707954326397684598978708123066272834044963120721921257426482300855539373794783138155067614359821319859328739456716205923881205483470890656790486897832023222837934593364158614573403629093643894623627130238150572726692655130416804788700898484324863303488874518121514364578639765774112591905586852447774545990504670239893544090008127807508644532813671100538590765721562053221137983045722351732569608699115345981564051086122874619473039155479972685626969565456858719541035915835106204775273593752319045641387837060150693965137534104228678769623366551086818460508741530223774619829178420475408238899443826955986200759082186936290984405568959114952932672936521711325710351311857791570750120461748504751152065121411250101975933986062622278935801220934213525343491932948963911967726656885078458138835806706761293373951577263212682663736779945589468551010455846355184082271256101388083826732322422679623498555299702714477547472098013119719337113843384444538291379429667534038759625475617758075901525017185056443012934239119132466413901542947611161917485480810716663876254373808513295818573462911046213422491238117773212087623418266324030795251188193009414927408306724429768784891698296657180855920990382521022459064835465854262127766787294896717232629804603084584864461357504734381763387405861168371330326242731606191167591689419306895338676428464833434407431769917470289612001548094196771165419356873123086524291539045607478606060008712258534063376625888494168730430731899900782207747119402828083291208278353588579938653202209376001822309653978826638946811051875119983490953889189403356759209262611343442631134356954069392210327399995214149795246481535886469570243339977318169895941065618939655385269082778243570225051715615698611455471062064245207813582226664320020187356639895303663327756393858537691506562597075770270931395843289914559054654049361050003739108834815196992796224041788805820186147885433420949332246351733742022915808144501811698849745499273257726299546992379459893330045775341053711224677139704637457312983486223813855612231720057455471806077222791474869785627914955266267742848958248962248189555400511930197504323833181834503169513704089187684224239972371852261265047527965010686838576523312893989210991844969549739335941032326351119819180780068821141196232490524500623590855296370056027228988764418908173994656697042121074106786081208784997074629244050829974081697730486653243960141758500753069041961232735599330018822295605563705882103939884869069675820495208461765482747007456223831979312889336337017271385836683245324004018758738208011548398944776019614563247828482750513306673367365096666899046643573948258054390499515821791049644538463376196602634203842011727730331193737244113711475725615707568418916324153395248547448851029505723291738553570657897313355155724444613273596355975861664680033422376276348037758618418993284866383400140266640900394128627558521183137290332330657250318635932347421187699790612145512475186454411804838649580107856973181425767032012673017280283305412759617969080953105372760584076100573393975793692404483700303742368604176588067928367761595517433806996308010964686009473128913572339037950274086117989005994442941471867586454352289123708427658165279833229543425507148039546867128790627107334826726079459946336428728431362081665675853679992961095760829572588062724671748287007203546034046713420571118009737460145639703410225269997299155018150618970573327301438505986255612920352189261717983216189430127608386231174870574444141874529208815196617256065395350342197844978415296353379777472955455203818453967078263027369929748426109712616281054784878081280659304337396809150822534703872575827803845439838845019239283325551227266628561363498606883683544408588807356722526263273554619221253164198977868147847687224608518669497104689319684218723951182004174454308099168612199328596386439693477608483383649983593616245595312244610897415960343387758200985774595814569522444864817555252692573605433023231431787992398369407946308216551498788954858335141215732880524760493406564746196584030705144560142839261740234502297973003627371688488058205090351283431537974584853375954049259096396549025602634111448694683207789400549112332912348224735757144699948177184099955888403748486565476041604192551631663740767322645926839404702347618569127693827391913777965169070032286653477352232127820958003917426081469372398604512962871284797332796676992030814525979638999138464154832990436405446861108549779215450199641947812998833112447850372033417385180747507317785415199500034533724660054638310714216166334339686792828721255691055411417437308239614263975338995251738905997577665552944613487985850722605248044991972604958433989615455347399897456459159102133945673529735388492526625944841047085200073899020187054680167418615057256935243818160343643766202847877624261242308027894514425086209580118889349508235602346237753255926139925516869909426543414633276362107568399967382056333425437344285914370878089564397750098693478269857196824454086915174630605408843024786858864329817456417066716851468503686430611765981385535725923474098996914124124101608109318523475540431121712392480532538829988168366661515582438430337997405883866843739238926665342154258327957133424571014175682865167192993754638338531595306221158180827199512560041322908803071996412639013547555583875247095849881954368579547344585182315273869941205785913180841862815620501006933504982091935044241895489898635987292782875384692058880341280447675886703553589362847503334721916157328650063696259849136723930166507206435144497646263264701713107242093563225639217378946541182890015617952703482367977162276807283025628458088231197231060581883165749614196303241865218581280670444074660152460583146601820602519939958224925242645948359486618270075145955558983013324481054742783641965006069823243822889529041538554590787728480566485539913757190546277785226045682207887089850482795936005290294120631500677559665491267640057160148485990310981156867833628309502584628880455599383753290722187336162337058584659672020871510546683484183631086908350715546331114620340354893681290440880604323783310320254956085658073248673512818547790616614331831874084683204531967668312938483203272908393355197509108909288017373657160840496150407498212600909896402942219853538934036820360247037058095576072208596985234433846691738831306930635833895745927284153635506212734971257140782824876986697260592571410948881298073659372122623065071761942397976278547994605455901657712452246408785509378194317698962619105815789309014208783748613018408812948876228527737925877729800706529551392480384947891196213731926018567640555077125014306696064376234716862733529147254283050556074357828436780669079072663666874012545651939453426773265797530712326977087604557585095825221181532804811666702684559376091494991349789632975387596977703284455594934764509429377102123077914655506155847516106361124638584524575630908790927995861707285738514330452893771195236965696252301802716776768195969794062965464703937014310852021650108675223185243798513924579708951055951347908316254441581026222644427477933191017051225699624265846549455582545553067807348391782577352654508407790011843392917749330289203911267645350283675399847319702771112729176469114782703621592157170549748654636538966328181883301040354917074487393809962758754026329335006057970440647455347973200395060900278223352878780589224762273420608178458084682362207695362900487088467664714151768513804462234542316134683418035091221369408424551861958951390000022753473334707496836669503817861628191655185205076202135758184087060943905030658396711676706887751320414627944174850357538778794188067184416869272181369047864983928661591401267176187157059624160686451516183016241889923348699123218948477682777695184551486040459909557773522745103183566710662644385451150232158770758955202864727244545742067880027336127822669920168116308516813789134870704017431854578567975349554709269670671192158861205160486760894494117050410042006331006904731264293706540166347303685972292326170841356046545222442200912274379422312234466788163238055017326707003080121754139675843392780949840736209923137901943059991577880985992720225955303195288498816106169974745886978342476283144082315152090781162976813285691201683499871076022103961667614352363501704747275810398138943587640053514341101265072618411005004686795995078940240789480049633042252080835346027967768598864135058423742253819943390190074851501551027805900711925045721340002735840322126942990795423639588725664947851945716071415024315540790774433013201631217284547695636527706307723223080901767122913929150925168575730748238317906937092465067026693465105243659883156443735070028964174684397346752341733373086538115973774870880338431178438769890045919451098441150702547399826764750423968448297961663534590468898814674121365778547251138598226746921397933387148393133764884563812451594559269141215800476382835633464608473435340923939901929728199987378551849657260432119884916131191276266239295631747898277499795623413817405577199360156667191747833243466449149141616430702302564500922900835593167360650555445252031529385231016202462274495013566841698409772703383838818179637618548967975350975294570262768509376478966762980810810158940266404360392037856389648314479343646741444954485693255407153435252653518097426554942939777706101669850526153650988608834877093397766743907427232115189081744544370279969736814850005030063906544950540319982901997112703975875410201607550606273394409448406958954119149758770130401975701758884332280015780245287537564665173437119708586319054804019725593880929490178634365721522647315099825999167284827712617747735572437373112383948137278955396611607647614476392139885557218227384072459518131439982693837104458463891722319339791940568063807915138443113944851413127264645553430373974694772475954161647921120426960889584373300569357540848944373990374312869095477978066314902906295262923067711284945104717936064934281256491385457456543439692762781442040728660059415936631325005318972517190208133968410820548300373926868187261846090900264543543762475014164958749213009385778454735540139492632193041510279786585511798099394416353194158243782389799123837465837941383136424631781259444169691732283989799380259344581327721232863481671347374996808524778474456237274290691716924037898253684343662636295851694407368177942867104545151746985794507635929861650815189943605735596117051337623775640486752884177365250664216268877509050882973097443318039803005298845298686146546328344383517951579466411631120637747663564772463963871949296746450532541974330382007324811120641456641477553433644432490910821602339469173682242767580483148184352552031466082432078776187085649965547579902128948676787309431588961337788932525517128503072462424010821196608609656485115801438840957510468723616628050156729166789976464272468952855092732712235142693318481025299839634671814568371946378491206295801051651183690854848825092280531881475586781304064753742606877124666916147165138449519584068726506601251542624698829885171450591336618518129553024460780911417368136037411394902994728811029900516354607475649355173948173927444086725648360896929240864474508364305121767884178783031400829323705695511506608639089778765031429964091732068049050402060180715849908272665028080910562713108168665846803741992146791840377804287161382257791077781909526355573830046360208847769880607332129884924855616616111518970745309055463906999797454732008871723277549255144915708021731248157055777793280762108572636112615477716773495988379557552732264492578203223147953777872982159244994020982852891602912247147579427012024389668938512417934896223487132883728452079654558708094959683002256511733677270081941386836878604198780308931569111253351544871131523797215960791006432494646861126908754777776810639087085185530733338932664129206834730163990544031088790239474502026517604362387234480557911441724775744679589453028897160197441313538278243106530179445316101856855885347454516691978819278138094484094377997941302001468523313072020364919855506725903154773122733132191143279575910620816653322285237510610239563911801131545839611699425313844596931684208110734958359041769748127993174316619837663224387624445465017002187088573731551568638620341555296209189987369593803117599730038730949734620081736869636735543267242526311810429846453431564259039018774708282151328318021490603321080472348022682135150973946502504553941422167046361492954070348947471156323261100098333847939879267587485020709274011334486025790132495491362954681537004120765483514561183022767848638626802856860638414649312846625745168577710870240532624098508705103055598251229540329415925070491468378660225049341268780357045097818113699957571687197233520029172534628943846081956315774806506057377646659240111829081480157371021354172085158015163969769960097857978125132872938908836352925154617472311263008279742698103613557886450984525611964436615748513471422247652272812292240405871035510251049535862146893101622829593356709473946694544327269349739987058984199201892538876706040895480998012251026408975045873527038229994556430454944704814386410793062933486611127012405127994946913914152362383650874341779463033922700737539312765674738631171398390008983201122364618009165255792836494173087132141113953319692850019966416829165310948615450375523965114941286615146869448503703460842581359866057630235487207432361460977927666879893919551283016828989962278587399961716761633853578326408510219876322787915774304311857816668009790669745704516939832799524640333576577942639769638114821017390495543625530039248619301091120174546321846837549136831563879625207846667108238091243526282914660146008123598843780473960578759695928305198817632585065353801820192182459968638816386160490299606276222783450692449290588469615943448220438709959778777586423755488035105152658410583072426788871978622739756242301283396011501522204298299242350985468632749807619095345941881436507358983216459371725872521186440895736777009384424123786043433896342594283999899955725383799282937354483321230003368649449811689724991134051953176711852836441813716020799306528854765323276309733759871376484361747933244426094401754689594497701011812232655332493729026818978783925692393105138418952373766208403917845306791449711038891578850082439550956745544866831003939547722615237416156788817604633092334779406410765994617345068327379016087289783208222863946860945275309528753647212189318544107867749478973468712981276832679408002651588144208250128426491707671602898745999366028465093821189790754319844069155698925324031487421923098649401837520877099767943343182988647829887487578771724313347488424611240456448631448936346317759129614938104662221999348460059282612418137050033609578234330497969121160593548811775476148816031267166145115694441234725912656517480504419713931100836642642866538570635432098577017191588401693342258301292288544801092362914240775314428426192220371050945183100783986642113443883978984542044714590998794057462563722939495075685185465338284354569513166467196472170708713092053160485362491112828312904599204271568935245063337246463318361658109109128816689061127660061006446387958150662377095703327087806752852324742326937034793176656881137218078939277861860919354204872470061251518141308482811123139861632241989143963062718776615482855113750021823044787407863931686646493462852813537738790002070490792568617480641242105971174981750686397216235758324744244809368548327561610212004557558726488268524049771632754223337535678069414994376994110349436308257049597328256271974781432087173628618658085498612012528037276463768101855272881143682708848998770321579279577196797029995601635314915157184991383385287973363045498992895327182353744011462188331386413154294205128327552067356697530992384781486310962304860033012534267584537590618545986751865558622837222462643509892270859402169173037861270110473479943534004323161761406457202881164102194673196692361268853480722803493264939750061972690422494492796348386051778428575709483651016821547738390813085018578951572177420590702937435619507386765284859058896063871114704626423637727593994744512942324643932575521871339366472009979020647209189003489140926572706381373729329232278654375995828885587889641063724065450402903908689957138454479445764901507178316551549689529371059696186062737174846834749787087350023012927830798356337718789327998505232398035273494536585829664728293003910918030549561501241618414693845305228412077594324616917428569772579120288913635840244407883272607084785108541701236671446575541955189057804487526294528171915606054769259616498872311665749651615170447135241655845923770020738328665926080732126578303207481107325635644103673255966150748693508218973114544516360165952464083272164348421132938183721421335969105613691588074698169775410265271070317496809966394025878168945574796250738066238490987846761094289618983015850351351426432879137095785590553537411740228944453220679574535586081864691952070195287102792697056909068246512802455520279595664942780161603228710871305346722470477989854630423169646934853507732127947735007970616272398075750763849566007359543900079493867712351743196231974060520340881072582799332654228009708858342306301497542313853016952003209955780524293424699253026093796719830662924835414672545655307163448895771968359963344794461036733761461079179871145671688125123004104248743577826619010217650664179725681128194492243688653513701985231499508839207628299562173847390472751719855230306578305464850763202997296348824071556813179003312561590848485320850852839230151247197761736432733627496169624221227192570077098106205280842048049763167756445442348648784800433253374179011205708443410699155006647662490490303338458034132387749341329768849208474071803495844274431788761011592529513034983333893719294599934081103076229892499281383408222335130678919112132598023879451207668446325899893273341327800367432640337131276159476208848411643591171867030430829229257184452979116313822891961063167524976088967864573883079888748453583640465614091564104591824404886626630619127526641324261386977773129530770982502253678519988207355322800888762702159569746743202698738308404705764064695629107673002102374537377864741032148028035942254969704914988606174032375913157022818913256869276431581387531593583300515666039974979054120270123479906540069986851523851387774190511078681119685633405401118081960494624319131036428901716633031727296514712345543485474172030992572296167142679868020814572215935066779998241414306083925721102704321120240615329386299036788917333790031997327640584711172591768994305038943691253742067907932321575891495452828422100467300695194790850733197575565555545469436216523429419440868914334386373203778627748293070014897435924590902853926450968937498101685623324135154937928519184048589830327220712021478922775354809132856972397477935070673010948957630484047234636332760569818839544454712767898231941597147693683404254259507168685405030108296624615080787869994340611114303160546074332853942924530580170664682841586047192682822947021207840212461373326361917114118647797265959049911899290279984998802994530855040571881647341075438213426351710292993760355801729955667878081188565889925401018287426420527874392839212564538745738333233401247949075573301584536570666330179200880632878734822379346364607905396380580510305681729278165283514756286073232315375387693562508303695731566014997451833515244383497650592670157290677029136378271452920293650315795880729215063953235428875080550549054499295882188470782445221009958190041740804267376067382645158511354045493500161267489977225918246171922116290181864513693315455089997031190982768409114954008280177369658927349752292109589956721485020650557236659463240415906030933253567290084965154586250953537136830210668619969617136778245091898253907407908663861118160847169208783116053832238098237344206047971701811588207288314564809446172758607733183846149521903224503397659911427381413949751728643813988317819883369917895638627946746912029630019043735993331114829807628694880952625922123155518560428312832901920081529696878478929283070834278668023996972823262015373011037541817273772437532542874851080545477982438514516419773856719276772588440601481969150722531363911593440538456659309172862942004945778485752094675802119021643222474732459175433369698174092239022513618279561993146311452332136323998637690489017231141025760418698257249075763494483230087812830795164266188996598470235371204658688985633781593107441162923434577897326340380499518857151006598580337201176702836021116500440864799899119569661796439652500308859109274597901610763672338225553440211819844905197493268716596185740793722684960789935956522063983012514876238200637603995014099669046993449440320872273479525075120314955373694242585044925051380469542630157601899210743876554707090573832873653552993342843330604295134725536689985317319207927613942919299393644013909060860077725060150947432413653760612557850563099295606739352188390705466516986760864419651855339230202325419753858894983309901951611625252156266398604844512417909320399634364392444960963758671337532941559823242403494683404190398812202383858459602646478178342087113965975096321080890695935785161498183137441168594430082107149580158613403935304127272714628361388321260937752960730524581998266362624322900296646275704286643145482326995148933466348513439876382524260653095971937773252982560654048006443286544078578305779154889233876953807998050527158039327312847308261245939539291051580445743892244946404299530209701087773675536350588519925495248602227283838893015491907354084199234123536224069496747554517301472231352084157535962129818117709567903843109921944900810120601966517028754064484766832387765875276771491704022540654373985017694055947566496052936473732577404403549812924347973327480314894422119061865391308124306300855593725755292875460608961257818019036560442722684528753748897868710714135858483766559280101376983121077263471437717376493017806625833372787636033684371033112796028395069170672573358113885644238475931485418025078616707882535549435443350611560302191643309819996659446397665514240618713059046289482439911304404419294758124194997058871824157216109275090575822174767235999080075962209130953402900090901820342330320648540321330946240536325518517912984737324526561592107645322300189210217057259387256874806051314470877469965106171442602459009185752754569199663624200877550852959114890286329185412384535980414684643648946103856758764510300348274041196157631638118463679749943654088950469372249124042491190274240526405705084676441858272921754942804991223345249405904775635725079865133274709011232682544793523607385942628885570944288481599912358905888382484919444753044643611704080389731307548794459638597134780273872286855751391671270781970652790264111881825788978541162104529671054432135436888146283356772650942825838642281904977403236587094085777140114767679451391228008163619362807404820088418094848941988510078019199195787571153624986941275671140363306126527810482060980396590304531006946718165147607402609028643264185014090384589519942199889083447194270119087343709709683358996726166494330139534375611583091618354653958493538789581021346963504444326366846845166086079821397172810568804913237770462328829147585266253205327464379341804253689120101225984721829682289185371844055486115176435095364332050016176396841340820336529229280967817511898356650143041666106094025774550085392844071610793216265178220643265030943300536438207487039873077980582919590519754162415257728154315088860617301263252090170929691369236159855326277309869309596415175914531402036705842556312293736257918587520341110828616902203508047813605593259279516842361283614182928292926041310353463760584689531031694613154004315801411032829727595254419072507519652389974973959136147499183716464628374791124051800295465119923218721613262883444856643861524418744177719062197687545960219814811242513595123486062472627165847787932124764186086407508594615728413056521892759627256699676290595783992453083450589877447185314495074661309782591607930974156327477437576318698555192778297684622462126051894366767700305937725257168913349282139679318385796523735274098957769585185881381402015940745521506154617501175971225100966482662342164548808327862282610907036522595155687820067797003661149192652641795978057201608895019207019114467814070627329544774233997991860593606095447498507120131197642922956340341318773017549165366017060793269383019043897845429025936963148680383776762961413140801325838909919650406145372608022327965177568756660589544637302981020453224598213965498113495212132285060653105555843903625330935184013704176058500878771915713398692902251021336654605481368903294877372273388817142835712337021886699163803009800411268803330090106336140946453037737947485676781390414966390694134752582705515447875862956352295195028122279842170002644979318146177315418008375857509791451334984101644282105896883018834160074557030678293050368639754110712794804033511973414211208471118616452117207946747935013211384276676199861010387171192729747246582810036024929145780061196003243744738841293817708068157878334086199749591193747751578313146827539237716776544273555067436559338201770806512296767249445129656618503634566210864855702841974494580569056441599346060228802050802616199431712886005357665596650672463522926523453796693168425993656236989316514094161645261392400122968710916842769665453042876873752850359989825054497751276377578817733021692836072683927245531490254216285777102589448277339566491627634998846948264706657122983380439865569030586931733363264370532707698966421370711704564083564442481260639242952178009053172273242710204157469295935647075122525594935934359469277496172944852101209658291624632623199350898903847164260198640257285739475501360602422768056091888833721597112498049985486604387291612634787035255199924842054058550510034187604610055696224043631821785651204316262471682282632337568697426641528090066840262877368841910784942360739738676451957311603909340695926975011599825654122141004092759263651942921891445293209105775737540079337984292316476654713081629239483560735515621357631745947697108775514191509878803079550704159729758729081061923703373488662768237057416131383335709218426594876027751159035113752534852822230256834228469395435644686264410286138582018564615263140171033259669804532611105608348373196516965598370116224964176648344929505158464122189663463647979092293291980598282749066764030797101354467435472605942386058098492552064550937620364929483951919858990227256072724395059793994075022731930404724653347563442681505386212131825733113912548719183176990563014709313597763448626541799925015951982808899082669349031112209879460923399991787945250048693599071013307133208473113582108755293013344445514572156797493730123067691579485905203926089434465563626038375758520860070248093368579153771269076997592400925502078038028408244397163556850850723515352637193106603462972584784137731511209078973395076303165736131049368133115390124896950319983770357862975840306681122938765880608652530636209389206899368016625865748194241383118100437361283798120413324166699864008887842826506811392253641673655564060839207994126718754779061271598764678889831026727587531444518055114663252528646663867268526573715904517231614694421583785358102151865812103661154250843281673791583478224714428356722905147672034128703896807750419075489881581621998888355884298635064300310955525453871326513268853377579030362039635037308084132866946940825862037297565923789156650329903302589044792871576892766760950234963396915217318687939408082747454899660489484420957683072847577525893286262923382977313100651798851158523414717212696728355266345658189848520545774007847704265722206520778047326477789183941935366701514275792044178076969695809360558407696040946308088737343438572046948644773868713300696175586739522319687127967622734343277819652594301881586091272567934782239410406550469501712007638004931391742450073262997512460488583605577785952732521699215520107635511453823012001277904307853233422331830288881516859730183097703750191173104379217943823043419885355729276930113758632809128136588584588336589027052983388445590245919289826180679893825222219028820049676501182085496459290613211989012278555352296972341707276263613809292897686777699033467492231605609592855757438814169235857675923823281212717524798825877454076367487104167350639813238526902060118781109106134351520056042808570693585484981943782894778633450979115662966596131021716840347923868374995397482910651697931126038228837676188719278964789781181235762134982585154714559127637956644767915678216263543128935029292157347179680045804448072930956466354599169705362772530462078161516780262876747508497813658200141935965396673277045818588741443064298966969781404288795755295440784040316211527542243894165807310387647104894233977514715174882013939685963163298611613864853459767079474540987061735690864463162839506731488181609797042441363986435769032502975380698627411476311039920332730721639089711372929287962488049359857613158806892741196602140060829088811573078119281335495111094576030264652049133164678060690296218857060169150641680674278925549570663398503187179332131359073034838924390869325669703003187328455187926559657361494936579207396521682805427287580591171611046242879769913759882485046039211522708192119464089995812572661493708704457305893416113751599669892253249670061043619106360760717203185782573039983663949265838957306600043018438352517282114885166245375290340197517306469631343657312152086921205325926060479940467028797181225969053895203749397495781502217065844266921053949947494143193726630748472834710318281646504960545079717284172123274869493240372865991077190221852734307347558855507366069371306941819992586030470208936962432258632288477990426329732486138852267027701397997295517206519767964740942310143824267560820508300821160150717122850264154311634505451461743778304331079140543538059820660180682647436003490515384591563300612733331802208925141816780494140598827274957443039988265831021309127793389381873888326764710499331833195990638915430613120852773772514973283220370565037177478901572539535846520181510249693143482015547010466162969983857852377597923579660220246059250445491866578420786863370764841926285945782030248792582262937759443644071208285616252173734307617664840659894981373711295312284357721659342348766134767963647462288261739581005148894812105801603708923506414236929102815002478898902492857715859903981950764786586017938643114953576568341639866491683493149589036617038038346339499855321985588733529280182018781925262838048385935683421653821148139985979163283809681903491461136612231259632489503585127146389645436492286969066136580483411249685691950545340758894565465472444454851197349076974349107685277588576255873988776561485869181524525756950238965784022067097573032504432472511068575044254422984900033611506793008377639465228933854707879104370776125798294614336024407315800763867782633101206112070500810622526378344517853122449286270001282090638646258504027723173222964353685331049158049269346591526005803555969133698424730830956239352077759667128921512063625873501331217128839059879574765191221464677665589385880648803788980323956493027099262218439739020824722396486739006317843181098260575245994975819217888530438614720298303147772239543376327531914338340812911094815458973943395773336709641132817983757705657197402433753911310328654192411228928068480628393728837611539589091992805726073860214165711029625167562690741884243853733967955359692678053962189298723657580382529605008876041785397019464049147518644237538832860700987769652971325974580137406609032342176137262963125353597646622556536243710722863846889255788010904724573971895253824447794245579067994243496263638521179912434199208966215663067204885821205248310399996335594286551809092573056387325459421956977584177894359452221606093516387669976043456782034703734642601097140071918442717924469548887613418463722298135787517032608951970387884464121076666885103319080254519731740055869424749520314730645039981459633302724050386122209543528749798733243854164712451331982711787821778586344934080695331738232167250367103783086986065645952404487445640413571408519094834797934113237193199975375528442110846538448917748728732825833258485130943828926629166159604165217246173154889399760765386992932138233115048060953479440001975197125352435473154339656473810150282519567840983086306198375331639738141496397409847089728067174315654082372212612432198905176289630724299148128385758672904304412378913447197272350418867642664579272492644125547224940661624912519258763138530602103779736163539732180643129995445605334776968552042802484763395512546228370561114910990865710222733253513868924714927383276212112638743679726172477566093001774768734599144090712599156784078781496655907942490068718293052917799156532929979990380041610732348173319591998201953446321485796980514465383158545889745432546141821621627265939290879556529632661817011263495623942016788204745422368658185972965067432453801780288047387557758340247361757194920924308093723294654382426582704647621938354771688728984734286381220375789067664590512599295524555925416887335949598132841259405977861043221932277347391433984815648908596439774661484249752673137412343662119328188354373601525630753051400666744186186789005279352893230789235778824369644414910684885897673957776742923528268483369573006585361989084596758369259923768366634206451114399024715312585843510843569208143423279961668235646646678956869451606705809906353475803039271623963311225282653708531977556942426774511317868907567226169895357546597487912303165982390863264259781648763872194471552436624880803763392879269150179178434986862321910234055648558160993605803187336749897485928031464461738408253767874925664067392711806590141971302837993507134944258562396127850971498932178588549533422207179287370292050659657140637069256820208159901287573512511857660389336526594071196898736263396457869850521403790261452214558058522028888919128718079933397560797400969834947989120961447367548306347402725415178318118328790428479837012589621282007933763152622069414060483383923205582494059751890801949066232899138657309365973389465446185756831531064395342380765674424540084888579758321009439106796725063020254871518929001271567577919685074408499916883979692738862792498250645543422001105174945677107997351268801689790314146054130573004828867602668949847923073436290118860080119876539620167244593385242640262715245504320452304214534887650197884143714605800442479155308912846269160692967291246107791799081789766574044027243007230697439659726031324156421713842404205934400239124252575898092667570783150413947660719837736497731896151407975492450234874862019129138263493682732946414471839615297938372457319023883810756422500008149207628350503489384664556725977510119243062566462019151733395478420307965212671610787318491206551075234715630047016761649299582157359661354080443075902225366446551331043804078586615843974085740449037380949531104533655525236825659582669889110383263996149898461762040467366796940204670292024042307403530763154102246973725310722622707512351165773469893636501046624758425054232047219896838493783345267490019218878100239435709439456329798512469006548002788934589141538136517914846363723965367883351602085313019634166590224975814269013228893091846976350985064692513619511157921928684811712260182819002499872621860974521697864954454203437929676281855593254681161918864797539007620011586006942066230423013783730126474843769903388060641480253843427301811405626958704135805635143934662621163148754843863818416314582312872861805075175580726424535439055826204035849818065661508287754562373982777670034667328660614242938099758861396459142932721309004593864894237420476360205920497190042742449175979450788217906559973388399958421326844186270373950577981738956436012585258005400535440383336889762539272148930710144674828656559113686676444109156031078294586556803727510879930161776862435398585303622554405174713307592423487130010373992756138694144231788563007900919909566855523079575546613386293073676379674185463045198833223091151959696010400165703628252127146771786817170782296194400471933350718909585358884238332691074692943904006212596722171437748491600827384362414446649682689670319140353891931428023285050623084398095154480378314934513770052033315657276925552620343746786929912472477923201001042221155338935812382771311946723399398847560918371894816969339955318986407582592774308265831614858377106531711598644735290076403039498206280940579713123477290711740331306941364774779072746596695839200924766629243174770142902113470036619143927284297328817597386445609783219218839895454402719340567238627700113399962341855535522192160712973607043517362842951625025960317429986434684619138928242126032918033014106953550340431918718298442591437433117201295922218025006178614120277990846617982247018879932195530095451947761058142256366001777196059267005190367547708724311556968067727864480578664220801738584951113135224151465756979614674747660078904909919329379149478313297128049081840865902233736791738601334608246326467566971688486398796396024868507613321372520447207673193466813588622567735660884330586112129324285750233927770843264616132455737678400395221929461956450123467244301432979680368900914072222655840530422169248556948393148067823089739703775400957179428062631561456217726636802200729110452774604653570530887635793742716391156140102060220256789368546743774693035012513048329292452609365566535577886667499813456411102598585291484511251166192586718786545799753358442069280919969916227067823912031272417015498339524391807656786976957721848785495809915600750426665010934334502487912042363477926697028907587380349543325597716226560943516684214346812427594608499169302158626110124515370871090316996190400393337709349152777035412348911477800369299278597812778318162650063537898986051193022701750702673090731518083645657893081933225359193521987585005101672131251499446002861926223638882878073302121614452965294559853472981080212423809556560467246034150581306240403054136842689944345179314972729376454209377531676440909548488091439929791479748029798303003098146911186509274369302063859091403372296267442122414463270051369808539740189812673305201151454568867594298639835746534223262266024928538381631883600168761048860980365386113690639097515755511521143020161060508754911087775946267969881044453593468361495903375138894422923475243837088760597810344274184665073829116563986264172238085544502894331330513353885764338595836779036012590636171097937171481249866103586095722696604181396395619021863520612439193058785157389713490001265713920621089767416290350558203818453475038995870372758796448140358248587300015503082201876469234206552067879754652812493020899005643814691842642555085337014300350412369091850202568326726054527293769192212249777663073756065076421140457380656808113959518394731123403225812584659754313757171678898577176746061850175227715913631123607420497532138649308748235972637592299029094963670480300493024485783598848602951763983760532562509456819806670134326082444506593274102400616707066625787728035610880500686207855432916567713483488553236457054850094864800715024785319882882393237258263822477415061619153489331902029567737689465395050789538819878787502700148902077225095352937790729154256089013642036529365462221295347406614556413036409895033234995258287753689360112981825465848286512121889718888991463889889373057467174200302536478834735059284088943759155318903352182987357256316322748709362763047612233903351037002255733358517840627165061830415950160311964552252966292921803921076230927051812515680995413562801437060652452288473330281662018376296640230568960697417331771188760516352272212374422776001659425166484452568295232622981566622775165321631138634482561127022640300166377372034061967863889736854010573214597826218880890387553522869471293386264237485099762915236997275590179997825592714415462072626784653604601188163548169274469087416944926709182934033312390849034713337495081488090392226865464309413655860657409334202296443107270002776420984806376019302460899044921475704733151065465417379228292098192568754663984970261254300536537171424645515644666417489067221165125888065633507564203568867657747416807585629195826993850804546039990354707740190953360187413607305653741966625838968892119023891965394342240382200403887401015334583278329080573938098493791764018173587888447877523650681919591856532360663483859915347944104607391452277652611021162769697478295677850461605838877612268003750968807574640185619727921659399051314795223887013487669175792234346687394984521771066854745292202930084135072344712712372307284387835998999024958276155106478567074892647691382588311717434068026033374249892552013450400630710277497633032511123035502734705161763276559467313047720970651745409499585663475680575688448710663434150189100951007415415421698419507402819839595856664715321507669538513107855852258404317445933159608408663346575837693462800528355168619423862709370656958107738291649672492082970840568856793525193851956716810141314382407394757630657128668248853345563930044721415400492633332811004683395848546597650599613316861756647649579732260594790032384858050416741206037953837217991896963129247477736921747834945616636286594256322958772427025570828502622330252399754510945116523848023665094225267684316848869255362904636963427785640520422394693218782918525205578242104825703893125893773753808595657900073951673546367051768285295314911703005714999830909883222189623035530322858814205892650868322255121384995189136551054050294028460550402017392112109133957243205689402303983421853979891751200533217701516917514141752357522624021679156820809235355483519622047355372928665067951532053056291473953717530203536285661387512217628306909747464260168302819320229038860100813102842532242720402850889944224491579920835166883173624131397760179833512335322268930457878255077372042991072164934081861444322505029685045754454768937584307857936767954953085898760701798617540648850156615693126091083918774886828474469945090871345791978940012937728689402619348501579504900343779243826856317706643850126416923153068309458354697277453133815567865786917024040908399079068571472629906833997278548552795964390624532222785146185529787840926052902577884624437305923875882477516710815229702444572028679905343664079128854828354354452918427450818176253286087915397746674796826311280914529671651086945107317564794005068094870783329438734628522448036055564748751748696301780079387680157620995474540431083672929367178511571016535717654019192918166088026109350044931094485785043580055356819545255425599524548957698096540158521511356064889943516892209370946319942790443733315619163199306511049717851725421202303017223147900706214887046701433137629329068092970381680882558350885888355877367709023472455426238137318127766603119718423248473049750474104531782744187211386273786175649487760745001047442996021838036084167697515534047642806192570696302633372142152704458815031540149191710232889713695947965755550662086591988391810082197900077085625310883456806772032359405894783018898482866625611725395838269380087406918520864724088667933811533740806545256999253984130502866906442079728783746625463247225329846487785452426803089587850205475252541656680015661694058801683875653295141509107963299007886531780578747263941677656066600245414140133221423877785973840786645181207497055208569657469235760430428462743312468648786631149874823342544371104143370013068678642125227897297369517685846672732278701394606754304730945877240322884683634745674927563704151612499216536195047570611246499354059736898777125591943685122630761008516612520481344020203090792222555950261278940557294144947854940745503285383506903352758046393691467405468904268684190431752049923952991870088360336620380603586573397816455891120631933038824808092278064119934152514618161850068126810081059599232424885150150242479741468773022229215383661260566108153610465531172017257854515610448761018803530567105882794162785969116760576844039140598764924906383172519650654487368584012574893789787472288411043978735194919127355547123062136816504087148599210134685832839801819118583276738058872048970646072579768846196335230925038002101075661122612816183896515450177678767257266214545451121636203476100283804297749713145033385078493844336846599725148718747254267740378478843302964300073161263178712030456988133651107436246618602116784978829775237369788350628994251246696574334527109301804761626280944395536402488675415612668090819469719925078581276103083971165377626421603064774334286916686231309137684934141949629400153084986598949532702645782050682156514831054161393915594950780273053712084438558538686996551411872451718391160696062805716011242809511717948800674477458202029801161600584098204764749502451475294982024558536304197754282910054655733287539270113306519052548578097181844288224493413152524533440108622470834079021668861496835688239702632003645476645449281705633893883272478945441007280480276744861391527131119249469867172188621805513233306063173783002674958257103342976186064174925832677482003826661055179079357650871268481412629802146364729468991849864531145764367033193108149942758386150143623923670605313283475567825992968279842014080071244486403997886835292988852233854329470263960560156067710190512014588894590219770428964530882484607367315471606189065996315672363767349086524768824080011233364046362555318166489326611311555700002718936709239663984094955104155637873405727086188058768541349698553054874220624151004026192908302845755756062005651656548497359547685964421940837334897888427102630382597135938060115620428991462420159535032008946837236883663103724954978156680511210022042466495125890217048109673112665011161249667755844008063253144742826239066109729693587311344609559320125415081973112602660240862787492413744993079827030501123087574219706182052743083364777235465210265354252615344025427081933501890970283962390995221970146188455150060101464015888596725812207252668687047666945909290464694115604874456920989150787629498357504590260711822123813210362448435343183757785668201821700215353215733117637226066309647407280223389272689211161399158158802116100693331632181791298198216501457265022579129589846731552708095914228400500894336971375388167527198981468977459704882179841910596545085304943887222144839611294929155696484462892816100510224836981218068093256083395828343028409825548003677325990977063274575350588606487991397859377026405566102295956112512933737175948289321478953698948319875301886164340206131715509487967879004621669176341333572981393857760506691259060758558984940545019653482095162343607953176187679789108828579476680272990542049997141902781666283208059496099253413103458537634197208436196698524039504352424866809163237932081177529715340223419444435943792593280877502627670793080396789369988708753333616032006863918087605465790356691783797576169432160748783174299273597135459003992158631515107349903046095923923418622104882757601341654967334283500591187422197305300725564599427477483901149407830494335627413422294181784815167391220364159458821148199703137240120910833586305187943654395130557564982298219841282992463901445279109244834968920075629316012956530607047020559404676794519817590777924124633226141099488719758768519111897210793387828480450561939725875832807601036413734917881386939982180463219109743028146595158945645738867357714077521339570615619549259459215763134655716517417095201300826288962781124942785240244058550308047511370045815787046556621738383387507469359889206619332955652144121059699601578613554644692728145204553127245804213381461351113579115399701938442790081299443783464688996700871531645865232270774842058768581435529403748688574914813626869816422645482175355931264085659018946928174636941862130955015716830888653546759261804565996103029039440751756407316483834368366334420361939662671651636863188151037748608862464845069901836176025293475532142820408345650681881974816116120868842598137303293871908649353810544152514855392469643547217730884182798144271956908583714454333834581504378591545328085776758931196851699242360511993580307691353638573719897930764778008877478677824327683383054740141154580796095832397976960285918613328824333684937166698080955012798724820033019119020196386524472222263261150397668418180659937751213853506432846549373566994555315908550336638642429714213829603338437268659234141646900431910524750737463870487886608293444121335747072566060261303046208152557414743275963857536510915006610929482016605321109091883428010738668028749101619084561412162381747446374084873988255976111859054872030279528554318068714945620522431650090923496650753964540685531546051498170468211128887170939163367537312104223711478977576124834992859630935779715080510167375823350665390222433310790439094693324172725131366163656815916299182534400206020825742524029050027271698949063989630310364131473800987939414199755777672612230611923732359730644073090619603362016488052531848553729774234561121177291052395879759651406121981042103460020257435386218416604295244311943539147760317741725231498202666210303006407596849750016005808888333959126729911343457293673453006656994641373346050112510118826782990013990684252547432979555286012094741662146443656167261524020161661772137146538009930561756968746222436055550345155847755649911728893276147408656176236983644026608229063737287579837535820053118185526843003270809002918892283715299759563550036742261075700200497002613501509807610140876723053927327661833294182010471546007032487794635617793916932373707548878566279369972912433658802157324767531856441160624766888668100406823777603316398138803316217398236227290917938841379255176869846106334043955634335539893399970202326832794305743116470227647854672942916769613151066552735767104152343816763067941296867835817178554193028761457625696488855033986531808232850457795106924739686711371779115525473391844176493148758535992753095937903759714300638330271592483479210136320311685438359849085809850443662078869933143515439258927389976063996129856494834530254887420987203441868561320738956902638796661158007096217272483250764443083069311337226275959357284702614599240157299280256611315356831254832741936058232857379922829452179813710477569804073309145674679563924224305426985966564660452584208176651218310645748419648946463264781863798141243465821993831419994662485257903779789093751872073725190313850675732208268842556027555768186608150812587613996577223556519922793165858254236037998946457081168023501403313327282833130021389365873048547820751755103912408363611433082884100936010964903491393248971481640482185614478693708702979105968485427960828740385471325965661366858481634684276775730362280323657272918343739511584751661177879431371815467442235088939545280496327410126960997247276494449762798109243759592377309923650765738520142877980882502307515857249279629828556900751452271087468351822735702054594672622284877073421839627504728875924080952944363138735772609755813905043143073590832701542231406681218044954987053254953208470024633797681119005837061428332437865360920795685698641471139855822524699655020814242150362601928357276602001885892218097637635174685918948605404151252766816114678176884912945575984364054972295221861233848705619088982733040664198543993602607517349453240102526775397430178724652736328756475139462343687512385710826711820598967426950032339286979603396598182216899503662076502599349902815698500257564486701121056376055515155622323675220199505474987911099670892259495259642836320131351956273257267768944129247257204921728471329267543586419924257646253169907702625830190755922634548736964143226041039312557764636908717544000965294553190799134030142633477527093692472081858023946966097030218697871078731446647157563070334370560461371461732720478093676867468346947148044419667898067645502133143155703031197388580349304049294667333246078720688339435775234288265588755937593166554316981196362184040961803851919475301371137858884563933722943010029599247267225707680024276200532027471657051312625172544265647696792450628795921789459750985062686903017992158041074138108482869502002629090368635553163739254396541505006141335371598421258421438518366451732664286251843620071539591534262347035970307583149269821636608513587873670044312030361655825588638154767830442135898180387520791323964639488771622070418015342558126680566874106527748565636166681369041946583879033533047409032897863764358901965110077828689262481678607440559079126241010538337161709556071915657670656198521614587455016235206429586252095140324592860905367086542035555627396316908951224119306225688949054546074302964822659012550796534642427062516058227100787532244810922661920546817369980663674647723620933560044904089929390932357893589724480146546398021407921354754465225071380615686355730618934835609129768558771343278835094414315043451250364087824436774493649793710505866993773269398332185108311807283835221428620728904829296140486364977547913645910558091600894871052663049971571830307634635902210352239549901818534367545744503039444974471282838600563924984222051516535733453484901364702309941363677086258973177985876176318841621724283251412879509002568097160353237512747721566641019772033510076831031845953241300053812194989967178913433768483548741648035464948743681637021606140917021824865200280894541573832750878626431163953837424839983020425940755596163524284338407716310665436255018278487680852234670889955608040087133956301582393549668785435273322423438652350135164007525194285741054649388945000901621154190331617592100811774449370575156990541748646007965442972066477782439306474966582929634301632863400706330543598978463114642543280394094533685344733483207220864983340215507731924119401519700115889424384474490483673132256722734676720979874143678631607296448452070488452181019615640822751824407610288885737380854947665099409629239223512227729652974317715465792828989180527186854172742285281053230380322141286587807597489868144109801079624232996290281218749902771266242648253742949819015990546577818375306986453576288062714491514545366000695412755039215098560680917036273517980740370252915271869115450724322886965196910050159410262437253481519343285766762946949126953332787708955624175456309918871765284472254716799012946717394723889155412893668561369123927158897890656171027862151565145102560357444185163735003873352055631075064280252030265635368669412842512942813269411100014641765912957686533247616959734605579521375091910512787986368212063586092429463025022584746312923879857787599466098061083917411839241452137128486352465327633726281449334924867120459337136763392601606613031794392171726119482576815900917343900297414254712928039077028007795983442825928150234974180125217341405153893442131633043874013470399476925137456684125185598313636458862589057661588853944791891498756550468943314530916212300347818813183464709682700771484014951059123414556186645515670273519355409271373340216335231386726275289922063834399863116267868281944846305535246063501801943644160358706186078497506077267988936731690600187641111398812077380063846291381759294155723659619423638382403897041959176771660501323328940157514229137837393435874883862010830818986040488601611724618585249573809559010199208286835065174210081946287400507148753263331796401135113726726131106277733686408686247624962089953766664083499452730424214270141988733252677636549907652241147631666210091906746044225824052702383470939097104664510228576002847791058241622249402251645250616842313274022341248927913595947826460458288047844868509033540021351990903606647540199652627596726163606880618394340272930209878586132468727218744456463798954911393076852322563619047142623391355240427074888856706865869348303514733045179889806315207530699699801993479946628530519856797616985836452327336587197407773932332741585129779921315650392232632714993898247190723056442097983323406650855832021913741195154803994277282024625814645573813576184162876727870105833892802462249235613166044320536341487489285059342793583801053221144229907147337887105150499210610648876268648906181751320695387923060509644696466769265608915702962495737398806919047906298951086159465042622119295804298579797014371281161577296013756010599560010410301437950551799712932256612151566035050070081732630622750854451769370204216055771687011229167686039322916491816295358304019531383070295607937220010889768977922996991067549661426235662124195995030116358933309714934053727903246029178796576718273161266386355636566982300326311912539284447321044075234928422861551162010844940442203357931331650984466728684388824073529002579571883429405296602907107213590385127355633178323268221069082993077167353692653327002685894342339398049829512701351034996874250504684797502194518412252476570351378367581166199439328576965098853134898509183874345399507382305732740527159142835873894417410596304087767381784645033914145455208164505826807078858209195944444182026222849043020536486621124152679278160972663913808660801517286025800070578356432238008412412325469497715799485085041047756077285991599691420856181815942154296234537190016134453755967966410293864368001400355429123759934919036920292767128142939718435347124812096839137230272502437955822706063150588704000027140531646555637534399839473998181928902385777288963728831641210375190161448475800424844186859445756227328395275378146522635816306183454645864645385754416874070351484704051432729654824160158201567590800545282437487338950730561449640557706672426862999138545428195628196433939219198874571997627463616669162529550464717137393830694747389617785147064835466693691711367659605286348126873418150908743322314236191100088924164606438953551060529157661234253118668603551735822648949565229500413308388270368449713687532475067867971197847989123704499340083870574483987774050547930990517971573298990582783770128568211213110229605802904182494794080779814841491547986820918792248848489995914575990519389091424449811484462920597238505804118094931044044956411337995353383864980864621780989095729885394635678615213712055826624325179761272741246082892765950592485448484092393109926698096302574459888926999050938642743834872089660111534996736351481863071428655435801020488978648946298059103252819106114312977349133025939158336365891032072273913138805925043297701927125257170673371553020813879812271301039474406061963693234610457335478518533460424365400166373018163288778116654791234871654632453434920602265883792188760527408743478499153943264776685594228765032692087032300709045220542761842630696519588317673144409759644218216516528516256608636951247206443380792583422890443530369599839889220902342212112736534780453290948612367941293402153671912422368219627240532820476893173166603608197164259702362350186014390008162762087115814918172505445584207224509611959617097488890899914847621027216148539913895721981860738012111300284517126737096501767327415266859087184950611180857853091136978799992084890655721964904175165452469592360776529429498801378342385912357121765360653915313784785360529928313504537675279411202215097746931974760691315759889714613903793601263803168584986994470871031810689096368816734983185012589282936173005796725849727134070558168546102498680405237299902950304281115141546421766102325128113468039599195142040769324196512925314424130152392404425196330428035378446937942734918060824091505572183603818533102866221939038322684041920070687040016929027315075062423481975907135407316337967922420632767725846764765721112785192264793395475198587464528872587275533413047598633094532113515110100710810359074592019397604550956055828054468050000181263278696378765505730253034450225684207643573263766710310580742920707967324400285676055593837550181421706533830927279525151990859472379492419180329778054363946868379667272623745951236552366667548353733696331877325361882602824670265487660665039200319429110852930103990165631347972308585278600902189360828047114754563082172666337569111678790983791129892521431166911732744890358752834365827710866780095221894873216210069022094152489804996398305639181695377162226973458709123492350688815437537099443948211796819123055844523442007405319887886928840933115195262121743599489757073263331692663470682917621904961160310364985412658201214693804958843371818339516508070222419806522260895612002197057197779405431127298125511093614438165568042087010731250044843567020608257034519158816824058128356313714055161245475967953630810932009058157038456204119519975922257061252291943218972495194935577570612518676132598473872684156814324325355438432706176244278195180058450088682556092962936238749770541708442584202202515944981184495811713014214197136129730359611623424453154339958440010569122742225653393715669188166655772152836659265060212202915085785161739100896295721311932585714667270015526558879470421755326490881419168243154956779044902142863797269268253722051643000395070422086153774174980474106691681557500063436252240237558957285736968694210056253962723908299130377928037706956267545825921063855810584354338442842249135966886053728415803180408487687558990434732155616728258814665335109408725964274760605604943986564010593373906594633448324467085659554232066002249751540182883612727841962653245571525787751426798411431288666850922140165578106258649644988908557013454670200381537581259387182579716929932392982137511662227888203123395104489472553736875584014227068577503048110653857438325388378346057232091184793966102443640806143944383733029767448503533527163218105095280991498354252087150143718014301955559448811003845511020744876630263231027655955693672098759962776771292505204922850562065044189316029367508343708562188929170983997694803268303665267463284805511491844790844477775329762010391057553063797692273582073245220140224577586019711757358632750752853979186790161878656943626849952865725019851183971821002929150108082669476858956500255944755391090036131055966016441229797313491416764507480431785306798893490523211596979164688455635731992135332980884339223308517212972186791623887165647359693610132085869106300222126091401888399087628875742692384791748664007031367752423143061057988879745126188695027057256792918773888815112634154402767437214317634436210805452991016195052392216887348762181832477217866594034857884067598688370875525230179274608378283407921601284985787213341066801927311772132691604210882543043813851538003806582209935471071241484280010550336189813060357962487047963753435680672683741100178483153457481131590978079901147933525579389747967679688374261730659254934584907257941282241495302747624809379002337461944790345866010038269506858038421189489992042461237882860340763560187503430092696608996934885402094733061149930502189796392040944087740380277915936624869746560033177363901555767885350937133635359491206688240401181812996979142052353280860433676588580538229228860903893349715109676029667936511619096990375350816336504795395139145418094561353981374272460863386491344559330285024438632006809566374950463453364561112096366985750437171864488507798803253579701525777497908633978402064101056863946423731570505463611241605359595046802426045913139668795105782506539811487556497320053543928147699230815756707251251157928001753917374742048919907145702945920816911880294109595437973494338150264637532709244686221027524365100811668464407687839400218895712411160440351978089813003329222683280097443786177271603683287664978077911173293520724764300458126689291987580855499314733461632932832072557868096972703989512245488144494662028294975876938832051083160443963425869635410866522423844194390071452151964222042315588275591832013391630045557114992754248232002473417701085115838508848581590357476923777623639323317220656102281296539955564662339375313456435471803936655834379324483693339219547736233472298283457517485669267098406973185747529479778556711120325799730711867595052835295179948250138333705613745518623625744601347763262094516876447988771857922530582742819503760807121861402933392049681667299831299283121281799781912708327054730922234823586121527782464130061632967545987239056437978650822010648017836068638978908601598185415187608048616999396157830019422582264091991113431667392347291126850119223192795979278981616578702911283826015135647787109053384108088513772773726387639145084282257643070770288295497235239100692751335324505984231327212215080154836899311612841485004699583792023865285055799314076983374991232347947648912876328264288188202250950322157445668399555878418117799723846239772144079486384280287173664822909918654411595961720709363309798861577953163981517829669639031799095997125250592300600867117758352938606300469092508021560679856925542587122513228440479241344146700534158652377374291486017054018119032324842097720151225716218065986129405019939929535401123345441554190226667612959708810207486266136628137581316697048568234041983649493764474257178480291961903501978114594457574381877659491851187965133134754936239012259673585517642484973809269274907188518187050642458514678499153056695768774561630046392478223665424448051871581917683659331936468338378623585686098889885183195020484716843954686150471092698395246111939345946035481474348491601402806320677010623729223511053264613182103624466896617024397788479823350914862111529325287988837459617899203748309416684418906276078895094553680177494597149126184331643157791836783011140068307538986963885592874166731476038571614215301246735248003819446495865515528300586618605200361955500082522242914604073144891406076049114771868812119264123289693882288562986877257277164794087580749289556539854099400933165539160864783668840095996558946855358391039436708139061621880456352229305193487941490333178500326110760683041385383077451474218212687416706147851731259851624483411082153627002598038930686523638400334528894075562039528290532851926869275059737646201101793391743392756773794064456049906909935151570420252980250467053972717964159443846906973889544271073706167357537381976378898900933844012504513220086008041662735118921593472808645897750177065783471004581176015447601799908168289981517456342648977906086371451295084589549498695430726453110052415886259912257524214487261745881869923431129250055758323109796157590327635988645497660215224988381498479431694286796324003089395898400566430144070350914930908302041902264430493666650974141580687690844468065610627350467999807911827178240948528819281869561447628851371183369213118873359555301764785750577286100550024327372228769449113534322396733944823327673184794054264913274412476810244039337278223062234257568584337986743964959073251647360067847367055272461347075710735105388539283577241789833018951336034030193666698904537929790526348527792945311239993287942563570930121906221154378580383290207588709935067613885929552742424844311339991409954300073393601576160823682981364103032569235054702642595198120629783426297820196503534597683718356880862030587017562174893545366074944155150225201402130505748749105496303241771445612901517093758413906566210824759436634912431963107397940142651915856592194373209082381000976995702217836829109393988165695438840818446863303829846914150417402585930452535549961062823263645343022911467124935940060391942499935854900324479334534519998353236632235285435939873803749035861002610381363466577459637981353834935488595982050820711547818692240849366632985886854725516058427007762063823453477240764276833020801232264623121551309070233500275257704738035862380490957542561547860541930688190578294090059230267627348904731697629883199611164529164900516738451344275503108075871807802124077253482288337428233700290365917060801050380159149496450289431034396799888682865443417797920405161387098613919439189599288014957884202968947850588056603635920390293385796483917081390050248353481612542518576080561257953247414169854772822945320715133487321479304148778766256245530168990514805376151293100594455928982335857025496528432668988783534568591645543412467144634257511099764584566836668651211527688115934569205767407149098577968664717290554450653484736514632114114118173415590263279927864493631681701325700437082672741459639904420209546790883455432442217555749173267999713585582860035236612777468461122727264912326368644442395928279663960596356455119666688687768839383126356465163285569952540926149952713577128864368860958005526218492191998763218572627292659597096112219655910995469425786052454651850375529729600984340878290470190597373741621909217401893855210946166739910507618289664925781614457832615659378836827517027916901706083816732356198151555226354287817870948050940759704362214425873619725003512402682601779658938370697116694882470488936584037839262376187131117554619188102682857314352103544299380364858017331610047102080111023801004939385643279122729468814025598020912840775493317798458522482241303606556968116119885074121167295296178982903340687264542397332183954421334889283725639518074922792686311873478094573170674176721238848037550552206849312225920845495889886503453909438057913678769471134739449534273045581912862956448926517641126632072257782393244223995795494618111563093007435254492182799806562027393649956528807663727272694240268110671422067037086745554099073983702990807658917878338543907275440013933055267586382863306813300567481513369401270736431323907797522202532670311115355594954132478006899960827128311429138169926711820336827650624607160125471077913285161425190362680352215305840017375643594220646617893231889270492275446218791745135020168969052726728593671461573528721318178072768734678627385213077911269225941206606508690824833209147690726660365644524949277442963201619617299796838881024283083590741683153199329355282856327437036022493108951404853961287899015667529634678530836682102839658182939296132602740816209419584952758315901717289193656448302773845085931825038809778501062395543840661234104585424533956247212701610307654476779235060512626689833375199970318996062761258578707760350195938575500006113812484180829342422787460863547457613783978020221065982888487680240304099202008398746605491981024115365726544348025309058816850774556370884661040896305525089681422728817567349566146330001800820597761910691980148575635578883096796794200657201258193374787484493179510300028104417527539060082098734260323500391038012679237787817275723869095898870666119342025486370755913812334742570940322877277634788485275355805352495746241492625295997210994683921990518853770880300582298573741290735991160514773065811508684059092206277314031446530683379605682002219068355492423943862891270888787286660325563083657085848834860919686805838330482356799277930364975674608083698340687115752244963164451618691274210164888353517324260142891659241920280197312623362242909717453413632173813226194420609423874154872874829317543415547458111581526564913254749508920065015336143776042142694917475580880918550934592245958343333928939730953885247500771517982163844628145103081330294432465747137993893604422597430544979267303739663367660499961373023551885524043098090192906173414022993614632389005962936748957251417636994209533829423655848008861233996395067395609916542283730692530672088334578948264952316286418074532859109946583590803618454730705705733849035099196607026630051365622936315809442861728800785324534053850621617219204803327259715253856769163181706248493399035513751357137716833714811046791861600860738537368891261322458620575819492724649193343457662426535826075160007387524705565555897876275039596425343661758702828178835053490415407730472927935454396568884387074790217488597560147274509879519850202072301276424273607580583377004007293544958479689331905112045118721833330801539445903875695581012513726162917401551098389361927981335983581771879027438294188679416121058557012210134097228116169650377378269691062932263825001189147771607433978582104214694943797660429177916863202532845359679038269135292347247512763635031169387454326788129645986521176910355225035603449225723909721342569662704582527320294635564682266286181892983274416854623244799202699399361180174398807594994621529752012319241669481358768005455977448237940909395523889412999169483494884259902489215418853065878177277579528152509809136043786257711834667892331031488656540095326899045543068072102148445979563129022621112944662792188785087760137374259194710824096627316720014444837300517158637571695687222343478778959377601951058476437753708404565676870911790728985012523064974999604751126747176011817433101279715548404643500487298807276643839761360112228839992347389777929981044393808247479674288235676695265744260108340836506446132608482713577231801708828805693266911097658294236418333125587748608198529036351412927473415272078357526787978935335741744708061140019981646485817151426699894823048053967147441850388281265387657233957357015896006802359830020739326851160202810673317742463471015257102315676532461097094760877239359597945971827233751533567992931776149077344497087056944643305583805193848346505604308473914853824011904416748956758557288313387524666233538785539695602274679559305357409788408242501037472930206746382641591279412716178602468123909814969342301306184965588751997665916893731688712970223726524154621490938003209439596349472903497311203425931378972573372831334891875121895560851393521027122758423876736896551179612771539968209206193264859442803991583203474466945814165809685645505243294162830821240418685541591350613326265027801254040030294348193514336108631916622286421992430249483223718158366388434857474980907139655836028826745042591522354587816132814196900901017897125787681110143507534648145572171814168978803940691952890311143778935094526001925650551403171138344151920921074115714766662007068324939115112895139826161554186886146959557041399678370795999583580168988568545073483280148860568519500421400857297339104934159833698430028158805822047823419691543371537248965298720847378968528996430870618395655084718477997247880238558047438633991022889324141501541595655396523273283832116256003565600401608064676853933400218988877029637652968570466870294089307094768672359939721493641258246024958387991517828559258475416294677962851662480149658611833698758285006295952292140134138807459111570958646661196345219893697797592959071416061325851617138613524838679772335237642799708548933904168119916603264118703281204646650172777903317101226065642102147580200911196558926389506492329315326820695121221296816132819863153605461100341812932758444273712021784191830509694962937268500923508959291021883842836942950708189081021144534374036680621075059630074406987892640175262493466772761344505477186892070670524992485350827797694027018895941257338749011786100664201644712580412151164234198965563746832604093072557650428903090572222195073769450899383378741351110046678451336885881482886647169228137620649554425554019573616115769272991802210439295458339832662629193267311750795301636333326217092394385529257744755778491223424542977649391895794636651783479100613407969152887494639795358725203360172074701897464557269959248757058020040019927999548632203613546956083682919287117506583921426481841244844344965728283521046493423158160298487729453519779959481995205301755282541563907457710498889196626117680666788393900571942801011804883488303666449065891325532254786113000372239160532464000761760169189873988640728623294777997165869917225004770849521490516720985447296248840408989973654880760752106425935887951433456830569563969939926147387853949072803278238357818875706805660497309200170247715976400798803164365640670277318358454751674426510706702199402276576233430935133079927927696738423435533500247724032218993167930425122442240369884632060400264736799438569153399231932293211147768872794403656073478274047360872562491252086450321667973260773798030943304244009089015012965962037913285067529825480703688851670553349695173147861598776529246427084793154127955830343964388904223650388966588165449973596833262967656279998101444631109883663341026563182723656327891439222319991715657586193246344741547095586973596143513934915075421531886291348214149890443100844915667362616668145664575650069084387013327651070575113587574849067814275646954994183929948667936253620731100155349682512154726568208339211012360012319356193129551282283355569007740855363558585905810779616198695179432146645330582132330515589862096988342808333538474033200468285145726461912727225060132565299466267689761002795791576971719533220758455552987264282318438483896261324815447314770898175745173556056659536306697790542627197571678321399101753673491076046200094069068818307734971897903902860018438211615068677726937858835809200837862095940024773221053873129773724220815446591974634936922206940012371392572250816142928098256320692832916763559394256516172868676169029940857524493952191068992006063372732098622974931492419199576147337356918532096981401019702563835780640548771719023852025904493483619859759808088135263355019026265803907208932419206150639917703144222304005321716666051528013015290558310698019029231647266746086955323209239206349855023698565240091023029161104400270647582082231108513438976909894415101117592159092492077815533441088929126303351208353742777575118223225286566604545538662124515961877990559956152473446404942023068467776361630921896826365694889657103615388765079889305609969470598650806549305851710269375730248528947519771742788142648738199480180743198585746068444763578463077368398709857678533952013048572502332161507553430905619322024207676081224763539405783486556168155788929190582612676717020729373709801910461166458139524324064131805019055848890606177354765241924695831482017400259590625223753424560552213291015155345973708576550297670839919118174292517457533800212173491939882517420113403291015237450258401349088974798396270107158078459774534130401451689081324287206524719739912565246985045050213028141242079991815768691779876472487018537904534418727072461129419639468764695281426193249079119451086469068195256440645597949679932017284051467281443240774517217316100021336785954101974326648497297910680968822977968778576462591325044751287140262577640731892720385992220737467146200286571731418985728108670019340443492266090745821996240102581605029919532969126555608285408709954074192875461154984219744357259362049206863323623617267024643857915441012318810524177057931546394609343181281452041266738784558446443509972951747664492439866426543372573306108647755963729644770196755862510898634576805429730778046850637661605480227076334796284950878908222488412918362072306592036236868503101866231656580759824881922376506853521832236807243574825885267440500273893082254862406470273047897311721817931820946931613342140909644904101864601169079209055640829342820225127498334022904225983436577653339891839040858848195920170957799541374449932655671590226877591197986442812721792571465307675922274471320286875788571146149834793545048160242360456607742552506885972979445750649614403891441270689442588090234968743688855907421840430002463581135919043757058708082644678754863036544638644469048548758130424089516251517827078655405613890383484511935737710799906632428866092355389298641069094045056361393009803392949452613839329468466108559941495628499296181781574531444025517786341162880576855843674445077560362866251011762730782271658436300156696133353716851548945527693151097063649492277411290765360334541936594675012655639173748340027960732876459460499848404834865730386812208489469769813043361984266555000634266656841262555495508599938575455222355128951661417468068937467893303768838195276527847368408478588163173058735327906493491824363831429388233568370940027964338774632971188829680947100047334253532786223253498587190946714750229286072645518532553377147048461481049724390610514533664051725997560198473086161999580402936004909939283626998659825841238336127290043630522973226709442714373134734669591622133442451418426197358846264329775483179080526512349706913207258443341542471162537419087389620407673459243508804473688787541696982128937432682365869481723472777274453349282981170971614251070220288950669403491913896701274942901065883883425625306437952780178027682921261561550319757364701467020255841340432999126771827246425914133409438226520983230407783489607444507871167714475974431970916296127175294653686382428171544128081159352850311835843741741232300305951596528196832195219805554202021014518196236149170491073128168989370589935318793203658759859019741766592151129199019300666044021921540889259634516518501659253185343382375948635148221945486179495446181605602174154002470793657564023619336502170574764663608213519703542010326607055947141919947423709159596742729477939058829216412139180925310075359272612432244544261415306179480014268049363472978405218177538738926669441988012028407465255657056165335658207275946237320681779642284521755950536555578434388615134337332610831670613748148549232769678284532925317521561942274881016091272127838637163512562709059357590245187619423458654119332920546134451348021956748264145178670358602310104813642864701821171155977966542528195863588838421472828169495428659561072197092014829204419029512229855457720206280244559678582853342420863667680041167177941513209157912679332010413835244726024833830558782892270251845801145175363323200316035968139371377600669372999438583049885209487759232758618246978502422792409013864941680901088717467613929966117675250345636032907299451916162208099579189214204328073456581470462760108431850431119460861464841457957603951931737601986622847455658344892195354306873271883196073436789660244621355497942836041671447264416935761500685639882898693630899133680897054982714536232654522950676335117020479127049949391690935494375545271508507837818523462841366483666247915452172928527918857701693169865723470153888335458358559595280151407265234521815868869442965713155626662590707575814691101588070700765070300066364870613752132647337178051497261139193065432621478298997168578247847607022613207688428147609104150666528381911511290460631750036550077469626839298268472892322984579032312251234068410522523637524730314534503841566830059722963812566040615282019978531786014423347315100222394655596972243566517972471154457332132459702903397149729219696093612121834001498086719181657830396957905253287496850472732554991087613452122038639549497123352525321926640763114374257920167225803428873488071484265164255768846379263007074600470465264262475115901421187107806817998931287794544598515293234506513997287398892640002906769290934976012636165746993874091960862576236059583697121663009622597440296425264120453113247791358599531786919696760588334633814981484027371166516432717015702146073516765125693452802449487421755529677773103859540528682900433804272107097203002808173673276562588971117874926159771480201281897675796006533126163522613253370288290929022608763074751179262434252732408965533926469155353187364583748351965173610884450989941641765164743486218831332776101850320173795891522455881237784109858042999578380818084555529520864667349851002388757307992857252344754552318341387167319551929045954453832323751028638406179428513222936081071196590102815586693866575241062903816639123469228985878835066294194394903016519103776820856058637099560217966081057487285411031176118033900075177092710671589008756086484516162436631660979062046199172865508354348432191114638481443238856231912748431676083671753985351812835699749250452573572280046961009496637429735556170911821002873831073027570528792158953674397070852844990457154192195555807028943924726730243582516618169845205847817641702408213634478491432800872303754918171822224743543200655928596681176897826898456701933955842682617957699002671034234150837803311058396977150577547018998659821777798994575229866186962944001196764679688841694891038057168392746349664570503375617437309403820698293911101462972882506469489367632647851847093683208321078484880394105195149275648785827373578335217210443525528565440049047923144644393521922347535805419786105939564396260436406628456063591215818227376891845380144438899760545672637290793466303157010815562218992734312397683051373663823028145587940586318778601501134899181932783662130579589715016434448833435530475926078781278535929094210243725415382658002067329899028814192978836162974109905852500784136082312900892955973178204829418288287988845143583684149940305824387462075983153782540494648628298378828082245157432631623862952051533399101154893084082664021176951346210039037346821365881349062836665059907745774811910040090821678165139353075933047466552513672687878871433315006494303849818482859461119695504486616168204247019379812709293785262479598408762312123150235571448650100511169313239177334334569804613156043984259960997684439676039664287463197778606113861825817366612239005160138499951491827359136589515491617622018303426751203147429124111272550530125505670602542199657411941010243712188012580959428769438380276959991539429202642009817405783761798498099162403109628251081279424533304250269909359946061960030828891512362469447683313960735168936515456595563183046565288239085690322666306409520459295084701685645992197653097713496540340765888663127129573256770233263640615663920939449343331387046639140511181781090715808146255644493820960083841438553185977206211213422460460226972178650687926269905450282965349975824108001609127898293942548219766456959575407604336447605624004598021281841248828870809965665018924397025117605619650817645730877843005076557711716842597618359306697871693824815286285337820879749102406410095546973492503683642722756680526410474935733353026380110522202902053121563574565958710340650438340235977722100748587582052454534278772784514145159136121302534877959535987117121591478774489164961406600621165556687971062019952347759519796031075942086280350816375413844215831714259451319627711824713891859577674143764558658090407038596471165007543446094836716144097965286995906817501339862469371461564591260604168836107110209629208946047548001601265372620425165777705514726066785356859446745584713217278116762069168033985926193842618879738364434341268056482848456468250493354300824939838237121635829253724861611103680998034655294782238373655399367755249224096629338354362425617247470146155625429684477045365696601967075054717082832853571803888460788264418276021946856373341190211975200164849285030174198110903741795789715267986582839059722310019585513439721978430217284674348753475177554917936543023770626021403637840045370711114081734663583235821069064713740432781384954357420873601989338767226555972554260748595285472590674098554232263826177202523791275582595800824666490610889041209622841817466030913809201540986475052556343862151955987964833265626209237375070518053390630830303279202063646814179357276401090170440074319246503646112328701028314927718410634392027075467775732025594643339024808113623237489299974034907008191523869662662350622288536889405502038512712043106066386652304324132583884729081042074421429448987214276802832166509817679460507577904119966398269297778364899802773427813644646770659060686635595411491825266464274867294863777580338058215462991777042875241494884685447270115708656418190769248532267015388806027877212226111121274433080876378877836484151150973525888793760721991221496163864508673498326726090422648277056927181873158449648469300647856700583222272372336490080983619017611969326549452464627432514086262239559667662648707546361260167588176220120125463021966735682164092100584043860432538075815913344212540450061263068210108339166891512624347061610851114075643791764718691648775399735249934708249867420044758485728030517789986602832678266712009362433839699987110873610697251029674830938915005469620453954276383344285843136439640952514029015846326617763205503599443124025900389120278639798889070940308200589653515655669577030553939732892188217823530728952392737046001651680269037149097011547868132028946701303324310471789194445488807618647440005816548555960513610634615259338195858702282198549754511546558203087477758427278576320117183763658891444086551810111482492281894329782323723873070024402680149308702265547346984671969171583454827712167159458240075771932902848025666079278121389878874484929461570011904267472485661616217659107746252119554429161775626694310418936583923596622695407504357941812288957260940982845977477094141344438650069134321701598830558091029074612619001056571239784803766184526388649373025860601304761261676877181581322852036583243837800534899529968574674303284236141270207657029955609278686691930524305664089693305535603115010308177785111215899520763158151832004963016831146645343329993846131904937834086590685104825696989972245073405584203587198026993395114661115027422783233981758301974358237365782707641891037091141176325314994415767293019940534455315413175542563571054786997882580850365683268869429042541132904166306846127396691491347706500152981491180321338276156087536057457446240877605960582013925909917654720292030586256534675079771322715288069336556489372396847355671974904729626446426547921804893809982704675180768717281549001801235826996769721307453705145503887649009088760259807048832520467464068407862764213222558429529269599844981619763159193677548165769659680606510565592668922446020969316298282427551102646247465629607999088139772101116414093098450781254250529930949489731161975094644605937982592384086987230689014957807489631408123568132311311403738041934266201915773429198991125230203439572086738951093123537981992627155364662957729743978567057084098113207245587498350071259646214272438064268320625493265588710716694980425738977865477386848520484135288241473417855435082936168270169651226901034160790182596379463824119649016484231135363470454759825863094721364465133557976269361624105137374231638544150219223815976988960216284743697789210069499892008011988721716175753073464270186903684380413891502992499899697208630972212440141025038287259477403161975969864247257379422642361815988109717715352621665790185749170620374823717264904765290561148033749787118899443398663991697361718543976284830266175146838473343315920212470483178309195570116920166077834912886280846477823769430374923332466825410788815418997258122725899641509568787147260036737688560384931291474824166305599898325320351723895494704367219013403704117664921401813322407148443525234042588752692181903799497663701187143178919269573219981835894478938501600961396727580082076128772132954905433936677859787988523715342244948814073066605695005899336086848119496285788462584132447783373885931182325327101684668042731757451853426399351602509579819889754411710871856527704421805930457316356581287415257584182118282644302479119093562598581092588400623054446741252859016865837139562764630749544815932452152209676232065894644259563089568378816836897755901559980311613660363084852771384921217739283792856680220905044909278673649094889913316159986700484369255835892206489317359197267983356649985133780362826638864604785417248973987718581188808263670815989711663400855704119432022759826514071074843546078686195175396971203926129234418452379193793428480483041419847540943759187200161027425247782204898384625926594156812302705659924794300400650118347769975544208214678284872915519308741300346126119626144085351336263359821072508210869561978566916917960981360354942909803365468189590903915735749498286537410174991606076155722873801317625060027860891597785341467925557460712288506044761581626723047235730213925749277212851550839978437934923002568423200388882102620882155666587226023508959958292927459128324567276310109372168732730866076651309711207343229179592254520349431348943328944005632679383938546646844586348034360787768358555021584084708682177482209417202322107252302885768155192431971087763935467180881677069459668591917961697922684878181673230754905217944503410511565114170893664054611936980928359340718200801847782084181467625641530419980669666001644525360021768945012666715680838327416509179200410217550591127832557331069103398569391359055178421011217896368580084310537726774819116795060094740482364496597445053927676619415141075485190102070440045525578252430767718001781087542138053402428699233779333860540119914383998772179300710881956437926083234226402966761890389211632613408772195845141917247518824601480335638219710349146622794806600163305515534336465409757204469913145372246311384453223027124885356045001517679435167971613906510728567296292486009978064222281018918551950300549914567600427395590965110265749919947369983827292002425304935351213048263553553412258435905261321208899383914161775852348494069503980407200739960676181778868152798375051864010774053572627608461042770312509784057453045848943305482972283525110892737284711965116592428126231548599378552722669542564276594953906555733134959768856603633141355272843923268186560445150604800114511745109363889260549817576885315178810498351753183241914349815508162632861109184655873611930153377130937131183352002941154970606931283520530562016976096370917688577681164635327686092658236522043752478568536074445692545053784618196130328984546671644460945691545148343954929535971008358598514299129486444000962450371878997798664738235384286517781165565618317522425889165572183681706631166411118639994558131373658999128056089975686900121649537532917550971805831669327474320869287790460700796017599854723206692389910077718906420143099548506626949786665436034720394495422824007495468590213073227383651514730705859684443513940105971414934670614306860118690711808041472025826653921130125762252760750374391789568137775673276266462082524332574237447533444665205597008843371172851599695902280933077318935265497814312119795828331382470963573607176207567782487792011187432880948948124667404428107061863381907476476216699716097115230599435755305052727339176925365844310593274582122283238394286869506143031065671403473041069505082617835609341706813915315598320937287805768404842088927689521777566868474799072647934599424048448748137312110579603176274593630210554030130336296812530059508599873373337522079760701268198432912570420842183572174986283871869529418649007375390686487116522948572461645359819604752185286427145185747140102080159103413326852010361314194612669645919883062496133877947244219867354089046518191272865042314863166351968672348269725782138952057048501120882464875141839307506720854219111297205590185548971395352933580357319797993423679240159559712852843872287751704625038695040836947129341383119589942449397930498022510379780502817157239447162323190653405679955873664333479184803623748829282169983442642989292677546124876671887590460386503505431171444783393756485490021157907225839747614937398071033834000395715672304070331538388270059073409024073339630021934687359812353760675979144628503268104411706722828328181292326232467292148051857468288001484509238098646269808536074034906216166749814836833015932175347035088402583363296529709663174128581234029461103328976873504005439429348345555521518409325773791076485006138763355886020325082207687647152355440050068643422790455065918238564945490389914484045603164277466404648231756671183357774794579593999616085932284280488894076645810409103739097729205052287053461107285309021628912882644216395003082242078212164884680245052782709784898352642674676057991211011913556678874405196897397188880010262405246564961639853144764126577801791280534408665937540587681826569024875798689416866931385044039557950720042370178670731110525525052723045190607079218205722642904470969715491677621507000704257351290196092384904387996562570163261510348631738565281356070364220223908746347795790736175061414237974732268341319908482782553693839034216393032925781357628741914446023982012438877827305317063001841394719701610617174968709363755022933163941104475617931232068139926775855611015347661328997477688611326228644559652255340357903781824085079321663877139290611430768577322869134226953081776155788590962379567940830089208757989698742735362937137024008292021782764504384815619790061031225818921828642945053016030866901313611307046946755118216009114823852272080229143891848399511366473199874506011954807141917750487479858550906448791535890736630583824407195930043306750342156336216099002259831327417633963540597834076892413572946534213144386990514579272204315816865934996166725429941595295159454921251540771481203223355222541137194324915540534497456916918540707462527614857132319631705492203419631426743130989259987641130604135478678752988288402609245163500191799696367911017467059303793755673648600290700033212051931986429507852592021756879010721181420343192770970818833654936226658370736120025812087350753076058541348329307561529862906236813842524592436114273190579652794523478304827689743662100476806582555123043429163250349398743874839840114404489120680401574245552803039025888519333235817317721355757120902020576902611290563025969411319216121650511429809347716317297608069222217700561719053407058018591096342810849175428743308818227093589067914765290531828195616242595977515690376027815152436055594341058386903945585865815893404764422145033764479742369852570317204088832864275408406466096263725819356302615864271857619724308213167236475459794682138617235053814635076491724315117503925889454049966344403764516934618481205628172537899842895196705675101108162663710629847551697413675539588411645554874321976344517054225959404640698553146915467324870711598232704168537301931462354514349541290310916829074313322797548755340146665825175597830642320336040087624766432151968250478164813182448675705749093430281015542363113896086428161199252470273950487882210437381323370814707536704439653209871254578067782271996905340067287164887207548976154144096545129732540904132944045133044701115468254768522806194890989617408805887319855166619612730321399571934515373266938589005300320170327524413316507220892418204692223933504995495177499176203181416989770696316759853402837327262586054578220011657493914836280037863885187221828418843759788052774548679978067504585573224661695035608584555930735903161848608468599300324340865722609693714504527782676052321880672973436616996849801442287229184993180036041235729363541118738048835443355717166678701388432281799919349099804981440863110939423584888543105343298435472317423517594887144670869621139810674254896688317965040024196132109929004518945658729046865393411737069322679833735547430889443550195327979623434183533437468177826765680318992782315325860489942006712150882539768519192591515620142862393143211284902611143631577918082245136428513080592907341421696119603448094799044338980875172807934331936115289550883495815258079759169231396289205523157485506225799315651681020136658167134001617618544870693876020871408076299867945217890728182778263637155590175361968458607960447585732006398134300997074506518838882338377135423817119958250372848927629761832203158037008897070086734292718443676916855928014929458506081657126575206926428734026910466150812050872099944873177755237140907259051036276928658939415965910834591276404360821894258094486762863645444849410363796006298406479257728303903561540350701176790864711857383422149366414313550563826353899806030655312034491917222332318031788072328413240704940311214741552938942796609546891509540202122615238728336997876273322084316047798231417329399253917294236923188337887415691248081209135512973569336171352232203136925334114307301700919623292424634533195208297748010458411889536312394201829950216491407850400065073947028399323201210731230223609413846662287235848306009789399939758722897029940191666842470290545831743049553471461539356177101164289734054906061210768309882056025434409931071891259050031965042214223533171445372323523033598730089074763212053611796483271018891652963539712345535332965235063638175515287361808876536819661857144176895410227877932054405639852026392587676801096801079863167974919315395373326916482171209621665682562945539076703868803039858122160051413681349789427868501111243421341210859030278460963421860068820685042989524397835474754127733490735930252507866501192028453028321501769860409882294105814811491976876165445203527272623711646042535604645654886098994177301769560282461380939396511271320393836297051082233935495242189781536356416992132263973236898611757437848993142952836119595543853570581341451579524979242708747359914533661451438079983197265060558824729861573889800207402296202387128140019682832625193662856564694810447729764933704489609719999269956643480158071260797517435857720260019016435979007927490342742487839979233375799197714118083943381277596497028613313216865599259795466406034611440236295286103340967470967626993932899431427735845260253970052313741656048776675377944903960074317030567315233018457088351088940768570976565350557693087417001544152458095908282299031641508693996942952363762459461787197473055736306021847068636640227344849411383288732797177503914514146060161970045656591062841034525353415820214746161266165480289370938494089484625424516846843060982980020196594407953448957258964859887313081955019973124502746549723185808934366499229351306571170057427320393822990440679473019224562700544098657113246112825063518240900644048433128968212756542569717685175819396711404519951976280114971521084239850431925438954491859821473429450908518398439315693653750224491670649275934229641211213957618119147324472776552319728223349936719517988602748880110249908507049078205829566304231210832939076799763189726618396969791403005852850382109218137301434133377773199814543526260788016578317769872295574425562881609731525952061309789197843984904444375105880583923707744810897606482244544444128492722793282229441882207070398869987507911519024095829212394457711438778711816442071218504436345258542410140387921582535181667664429168520872293703553055506171626053091161903297762096159897535234200367007631754412991014033018170967800937406816935476472250799673189551898024028592730465528300444984662520995611231608447805548170380433320095087748035577048785439586568457705081556716799386073831092888737880168253190129302084354883637658315313671616248150587824772077928892142283237029271294950711844501790839845726547324697738061779407627470686693556591770171539202931446109325060187944231876101007537796373325763617190418965627681625188728185640656401855982651761679732853441619565145645792859916730122114451563479430880991596850936483112623535594837807778160574521668205787372497904941674749639944247528857594838783086175435505532297949780419837417701952387819636395463873177616680540240251666862563723844786831648080253169505027827472639413272555058463064769739183253658924692787345617111790782036167431558532394143763137364838764032920255355509747616497129948239191354111914605968203044351541510840335761299999492316651294466526363308780291711562336678127749444402401767400966939509604256954422376020733995554032783705443710594427506064230603168879183235535203574899633472693378758336558319318388653988437925213098625516397173917334845116806015252312745484562047973090679273927154640172843095388939075875416206000999158688353667910053622668497169282544646929548311335240413515008388526834334615832725314769062845224896091694097760885559820065689945904903510109128033574795308458446287182134413132322798117667856143018881158223372011981451994414260387123632432886469598213119196870424048519356896066878939678600150724173506294441963295597010745742168358531565115120246960487904856255008080502267037122165750553346649739252588304728822996106607195674905193414084690554381939302724387407480234912726568841366501420041510753931008807103406473245401732358776978686257169394955032789883058073170163896050406948383096335451915519841227340303302280300679363660664776756513941816901705241042473666792359525087624632192897720876743719274540149106160866081346738384504178512364785487144529250077263386019465002120882024613272306499790131127249289523472280471105095174946605445226492532041467095918239838279828307923962793142464581935649867744023450875994307876718431080830373974973104530385586905071021205165539017035343198406266636977323791184927281873328464670502515561121915132372032572318489454025311176707654449192234555044412702865685398145548851528608133309114308081857402915243830968966089532514973146171802843385113741786755191580465404955683616065794575111497656483866271809933539862412777205915290713749563275494679362868737321408601189647165396544191239832754882861753514105700229250372384740252609702775123278598477683539830439218792399457100744711970632381662334839067604649403155193832701575515871061291063617530597861200094093695463148681252002855344444829806017303738037086715746753983095441128245722666813417064086087170798470745126612357103629785508291334616736541041445115939590256158200009301563998659981016714210029211455837977203031697088215405685953585577657703534989441957755073177414099110271566378585435320905013148257307024932355505518410741449269341187753521092584738616558078692215891147293473780269643452678128446168680112198223057010074794316386597475208472501767613471883937701292200855419346691406126630836352007707648086205182625118430103091640746463841157414530895620451450481199593484130353095855411523169692965600767231073613154091718219559588628733995706265890135515894905175007986795578790827526826620520067926618397210622185617279772154874566031096645006416064956731072539500629532553935267943402905545008616009097056707027650204560106224162049403422200195044937863837575931399527383911282628167645226640097622312195630204723531914158306759367168867606618827614396028391206111247113192420131624447301389607046441372975982976842761548514044929447115339070750016524849894023597555105077560763185140872911412221807745568093569203070419824961840511203748186754561029716494659637545692740587996197319358012140549457297297147736564163952627411669576826285977922487397094764687003502646145272815267015310601014731283680518839156729361844967424159002755490083398764652549761750996643526951297223144696572999234676023052830169494615419405941022620799837553162297841805230805146002970346808657387591385853973791021629142303750076596009740384285351010029716636922619361963371124636419825044384512936129725848158138900037281228131952783025142738051839270040325719065499579376382092427420046979370414009878159552433729670817491238074844523921891053868412957341205878401434767538510230039852782682203420390056596699079490991555246794580345605331742023085849324771742701242116247513052953808513662494462004086492455665792037630904798295977985945614791099371577778755650927683169811437835043668133050059085164142016664319074907896859667776621043224984042567321607527152034851985835007031100347002777161672403193664044186276641097081904714146678219789547755481037555459521838636471604731054652915972055729582850125414709808667777808899722520058922748608783503511500205057174741818642432455734789903849418206629554693630058227297885396355299512307456017274813605657787811572194694847939425734694598170876854584223528097714532259956409517878758210875431275943024158099614293020505689647841238323814080869577618548306891183181980394552335573440837472124802986140437455140258534562750244757200684697292806513239161640808639231804713293029205355984271439746688260453417125336644430303937242963386758972517361473311553609946990427951802041019351845814147492083467477836298200570680514011508358057159533526738677352457085833159947140627698667532726834820039838851260416711145287954244216375844110290228241583488658148374245961043029357989722272143423833946054644092906706891918711801016796689164614848424172685330742031376972191193544951788023941947617616144639618565004283022026971500450213437398087065991130294418967552026306851744907714519772996416501098390800891020375910565459342717014241123092441360059871766215930025714126372722947508434103142887138516819632893639489336947817220495649944511330510600820864868945969474205539769835240511349915436412379327785457300805310683355496285933485406531060154214077875315019893869742011644286184611682968861832069593275239763637618000149651674593258983820464791124693905295785697803501775653498822111464891154167205944115071102421764362494239651872871897362690285607722673688179628514238895402315091944165914525075138212585550953943702060864975603692348950301199660695688793236897707872531900392134079857175913415207289039293700882413859559304910489119371637075616151258679861234672854869063410812317881594971849433408397932221657031887540890962978671880207035194549586672751059750979175280879824830092072494142949832076648721718398688570126299719682861089832669614791073624397113421540067337233553987702592551973177913294485600737579231890473859902773196683456329509262813552420902422465523406848088214925554281042863348882108977128711962821329132215660194380863116408390999751391199399881823197940990443484246661269086650986716488893632628143208922124451320829856318081211392947714387340053906356320723293753972450812618977809894817277477442897375385888299141260123988257621695376715031925681234631603589863558389806826723953993319499483499234383979585531338553089802498850132232027885260276467929810703985464589980154580156732581926055207239843873569229818681242861513704252618922901422776107779362255899506556300732469445195165027616774080343391528240999862923891500240453052343724344332429601418986210898595222151544579317622842812978252113943835149875513914656281881086257634785682597262717703227757225139831515589287789846378751660994805435523333095361625767579120722102881918914555229642190704900216507695678358313640193373576671328949930836890362545270625159022996645525375124634295230375627901204389014978638802236924377429997991006269389893223280775709156432949165409695353927369994555986388362337246849884229246362577956760102459569740064802568660009243071068765476746708689379041986908579796129349421835025914084560860474319764238630338044305357717453434011659539361553261342944710450359369725785232183925625116808276851220990888118607634213748814993598753155420931562515708130815333817608699721583499601038512691520676556116327705086625531748573507177185638860726030539126787421695117932538892022141667581962958358467862981055475181325708203273651526471340929137819537777699168350662823469015456611030876564820168426682684504130157347563641445680167437897803639527506275633693397637981444469719802518554038481340489145871363022142721824037130719727277787868321786724936146836509723818115724160376993016787903313075556826312333233188454241692012752724911142110680769459120966489869632728660229872857466528855692877970102851947353227092026380403168496971327739497297422454055903523241051548156435938321588018246414053879137453710045821281133755601736380472226773564598259892898610310556220113227977808961335124250710345131738687486254185931460696079382408543591072685344242672068906294716510486241270582664692553384586257245167392197106391281100729971734955379035230979974315321636883122592562744712962309152827472420924273814297078098735929928138515090850565920055848370246667029435613223035205347239320219819611068580754532556521937530544405433078352677692846789229929644941006688846382002832095493827171299983448404896189504462708810365475617106148001229047423409678152147270791693815280147986142516969390438588950331718216923694408121639897611390497749959963045226309891558061462880956362422825926807480855987885322124330329079326520186048934440450749844765043321670195146484648227295415740346088108818796404168494377549675666842435430783573942730752613159497479306844006381825787041862250351642615581532392485175699254003567456055744323858068141676881972508945868709658485431598262269904760417911390604919827153132209789353340534125996457179403838412823105564327652050852700553718884794984526660891698196971920341281413699034623447141873296702504988078522890536347051978013051372853238455223379356743331995752758753972145698079720078086605549199397213868621825055970195666881003648596294367252378397009009654397182559477232967563958458047793994767495505273204191885400445194422661412958095161012380098060781164696817670580065617796001438027158840857753983419385580988117525590294368618509878379471508668142624953867464472578521002297011353523455580435163914979304871295402589709256318086114759382848152214623100228135784334815515489163581744408024852952884582939816457842312840099111154577577364806911649825301283945026388410688687377773294619631471839688231760071982958303643026546045839941020192663326714098435897897453772196368787013934178286586236502416374526037138189566125632634314946281255156747441966690402971752758447824832004706732515847582524484430471992202701729509292124092395518732452526409446488362260140356613217492217953644307970820148793324606050922474573732656660461000395921271998712952561756946638975682418557400570704278319545203841976858561419267492056157990628033826058639561922277014134173757002046083650116751528963258471080685379535424069952872006062695568650270932276649085839280360208440411547420724328537193652826405623320327013302693514408620892298215058408942021216317875374057511661214575216397182516887852782951133350941269884325863474277578811210180237029284590222821260580160106573143466199398268305176875756760107266068204499255347613281643033161601538277656939467462304221648493990036200123921394650688951618073168717201413660104930137545121530043870363795805024265749346566942591839385290294621035946417010892156238547697623090173433360058334460323118812346142250073220997971413727696987872998596003419068832666209963203993896317933875831262541513731214159689616850475139283910208534761101626971061690923996088357737518221526846322167609971795046986153446578360631878750385114515964652154028573944523512068257386049571879850764626465421653600872453678678124946091561424742888218579647920367407555138528287635459571429975544623437376314820079247483890907328432407456918170973865980006669028745567048515426895321085377284573522505656813358900268099864358041399689690943955614046121092101749171037362856691096400504713442114757809207142896099943558309245277069582225319737106772945610926126460680560019769380290440697498403411614152207905970652431303084389953126043233146004801835250447991805913620348305281698444850500894139576773487910023390207544532764042424480369866550578422746917298599711397804608420380690942146946634050292388948665703039798423243899584871531952311854794700110275866236299752588777185567674339518068494417289911068561458253855149653554446410426853869157933437801133612438961852845404878422029841271341562827025515188851328106887552788339880487367311452812438865013264076753908262009650684871440450156097425736073594852094678640834894805688579288070269412594550551399874649708134020169742772555918067430530479723870646173929605946503609870026822514800491861373993991125846981821634348271137570224607279632577052460676752163119980583946127125218914001089755873217006431814215413107189583186009152096091296576765939615676609474156413483571286087980661302607446932915646658837166126191043379524780409896816673205403604824362942507396957515868608491136762613292714064650518838944212053914215302471934557567804986478375869565918572068180423467878181351083072677774444529914271557519484275545848851735944507724957734197872217134187208195800300953568966441345018400632029742292361232445083606720831546185939825173986082081415553468980447048751888119359916379757784913280281026454456862275355773819214027164509474244077558529546795534549039591492335901045087121613148985632981207303958827588717541345445821689172115150253740777322172218480870737190011841011435967955513634391430191549941169768765589689286530078477411198325222986942997527446504208722662905175658796759333980681664646209721184855496743799207568765068952972937198328468223075830671333217765530310964903816928856508261842040940975487824433095024141726155223439545937677077973666807071627386801078424377367967137205488016214823410853015038182790099430729036990522359942417236719930502032308511065627757049554716274549834382369835489431421286107709309694093377260587195314010908098894233686954601623739052534497637625121756765561441466465294426560318264251647492483654730513587236472515378708582100592120612107432930248828730587165414858389315660452062253600261326400313198541251993703839591894619761226079532399171849776497663592140331657582905638715608089069626177851896610012753902876740080002790761941462919094506566999516385626253999238720821635067735095451666723247538735021395035333575600351648910980504508124277890983037358034239711455745396616383388619893631785008332025464683482965599786008390438541633567090503028266721777709409602412221665043137563440016042714700954609531557258173580137035780252733216396497534441600506015241225140737183476637636148165234763082105556938017360394703347111807064361162665136928190982473047626827577622721153177109400718331958294166054258189333892446815574452700456571651167121278293193520410468826579982477626402957375860895690050236512705051224609528288917824100260157529525501894345199931550656109215488379677479452202397622303119371917922301157737800159268110464604828778424147228720486091892646268296490024901613593631050012669764499528382592795888060860139784457018891203876250161284606112436874922341393824576483484827652092017002807071855320591804725006152734352707539990738977293629598978684466900401565030467150621228230750313394202701898868286891201306080095075788394051326859348034590673346986628939806331729270376324618174631440180295016814179520389682373542787465663143425718017887231523692090895383411617917121718721589685533790773154870035460668953279421578383802409252480691276638144816064374680967648040000137215875165992611949656096829850817255582129296481967192354064325422689751463485071984851240669315709790836781184900306565897446157846968731165701547058295410587620606875399306321506308532243389597413313277816047597408297546004888390623208796353623259123774144813288975108854587049401467692188752405504120878934927492014187958637016077975743597309982204954569722488280985294378068790050410143356897728331421072080472686818231271906868853742487513968525189603416874560903928079079882974494934206788178803109269093634000422069994995433776452835866157534814801880440785732312619588876028827939647385458510059664260459210709299028795263067228239144024373677673811625340990266338123295766120625982853053430764316131211563437314272212940167915748598980332854420158929133820918371080715334744961190339386255239374257182659801639298820018945803990904112772664398863273944554103824253466750814586116288678235155607284985336109394447479302727851504092319648516769856438798904122136380861207123137058213308205528270425762215833689808654288887099879620777888044635407218168790136397132703771731503207291642340310542275565159454040208370377656146754953388019116164243287511779301726797217300374642082074393396117130858978396120191559079064841771193694908115537527008417400862107048179020699142611600242804416607715985646539055468717223336827862565164009937369335686942808299351628591019699821940618239574453740700720054147085811537514156827165278233636272155638650222861739398244316165829778777010625180295663695923252945560221896152219550328635670126080351773263037984355402795118925194909674735567137305552278298305608248296984027931429946887593397461837816363326272289599963717407641980039967443599941128169051325249547586591035711213133907086392605749509408129574386209462789090548695872963907947489577530241359834155662706216490889847497384495246927482759492191518288538938323149091321924625404857923977014582102635751637327722026831308445969789078840561345065597384761527094629371892122114744031793182163675787266403810727310478574444187376274716440218478287053487929709207064485538513984373567577016404679220959078743702263060328439645017323312555946701440976739936522797447865243778214835732139069266453731738802444474977351914952948108787847591376857569461846160052941891131714784893586069814416666218169967799155350161500380831439516918750931270438059954535955810747252389196373246561527607009407539212017091881544950673488297104396125823580523338750955305779674099111535119182121219273722698216131633124448391023016924394775905618291226634317430389512270813729624652167819918767915067395855678580659341715172799402362242738365955906105716761098590436858034639719483806998327146541692869188123917892981860357091175687910450011495066243203890804806497384367581659678450686082417045388574180113933150863969725105263496691091687910798064096654309919988040083658942884150209609540758480500811048576436213645182536867656148004881430909803751347772224056100672401806625313695196154167134470409870455965400066723664884232667425846208051181908774487178393215754274088240739294776106072038439501653118220287734897386227339129884216357932820562240450479417839631118560864186349469132835466413897162653755050381492319507805605208282681321285475505996568304779871383232784644269109842789857833954006811959730761529787576078269354745764543853302779854143226762986848789282092295931291767489792288373064863447471523705346446767716664895416748500899670938437296747473897472851283078521459054789335472083545250815808917502059614677717453676423010478580555980726744887276742856497958813920693707432072991425895475291189389767348492492152280541327608560352469700391436071856181952239533534406078632036755445728997152934104017858381625891912903535224982359120889790582112990708070698193549076212398017123315482067176077365719703072199608049192852890489976495372757411971950513915802752583859883990053544674264492891196127276262014057425576462366900103862652898971420101066464661076520620333677092759741842001979139079392022989535958511197974048347855622741791673233042443538616811292415946568756494545175139845649677408853981095790110634541988961842212523506265921856538519922692817435858525432530191983431556696090169440411390604141562883306622859670486863389827468906593302647360906413950706049268530725695279199954227670361482064750222928886975192209776675036856716222433596065414471932443027041437104566929208823596064751481132106955411566168236636500590206334525467716400001845525807238594120034342905804244942733086430494454630275374542000487229787797333915594278396662323164712857660693964461649414992203154159407119647988492426577601048624562290612575231427843108047186853865297129307523664467525466876205114756690795154628506795816002764564758033089335160351704626581238204906883854351635784968099288767366060656594194823525893377176229300096234019178606503514273819971183596345865710270028529725478384921966146266454301848752561125026902998859016221736103641054412711927480292567837275970192466591197764907786619612812145083757273755095003345734859301593219495910909726403817688769092374673431236297763283372717871579403773660527150769773915235656308972938443377043962928148991894813483326700918925924345965827533296647268282210501262574790193352392144784252876221894608426959869916720031992657847060627474756951610945144477573588757471094806180533313473881792530595702973820105463181496004360387524323523153192476130910172787574256785529625121801153396336979887730177155985788091881407125019064943834535848925047019807693048294851424282622569924359560312210167606542342421012976087518696968368166349272212421113471456521973252350768897506721290615822882878605266099515649731872935010048021765700667353651314500932175011392568757778089757697790788131981938332608390453931608035782766126335037546969543415901232293962918905568940298314773314400942608759944660530135882111471713988686825022489591093800550152726773518329397002908574289042234405629258994277206483932628584441629540722355509060009746637106648935695689914548207717141430836728799102221051263972626365846155966176287364265809436610845709046816485172146432052541207530637741225974705481872696401334497911958979643652710139249377546099247207245172793460059095152485728213902166411441816259088488688246566553289929542981285422275062291184970293866513956220994160464077211796365371154139560785819649145099532604781455108608978126573929757464343878804275898822278513700882722077941906689454838717516949771984585551183693504281341138051466570804688576840180388229124117767119314585387120187338458231419405644732464725730945685978838623438917786543826554776053811692775696038941947300569034473151922518020957273762838966028339551137656534474846045081050080444418213782640696437710360994604307665982822849211394498692433379048726192152098168448571918343664327352416045407708586403886206621534326546196053859583522962851780780936011632099941137206438153352428404124917424662363339603762967830400404811478649699576222232449673962068819365556526229722179282644160308119344034943521667408841715825200245326323475185481943546154951729690756765388085932512511420543230026907748149900236257840885359470939574953048913048647302460607860608717830625922322607122426008934450941336392401057685230155171889720029277936289534026955097912459346969986043023423617030643473942232384398850668469855460804976484726963480380767566016096084944426712141006464960681938055875322721028350922045582587202892782571976833985434270410976756638736073170154792082611295937843054004781737337453287883925331803290688421645581942798213894593542128524061939956201743061540010876165456987241451742929936338230980160975302701129017876077383724148135155756264774627448903506643909913192070323479340348430405691629483265872982657142366395747488258004858979166907633845712387495181736156297113240343177336214724890328098654841025651456595056024362135445837715756096448380026168103523989618413238958876675620208794780364541164410058347446124932128604800272690522823754876047428919738063556464887120868593835165014938892729959675472518097844239260731665075773016973837428954217654413738876982851382715053848268000271795912345157970253214806104114619930403676300297141749491819160263811989841183561855495454507237189074065729702506652093879685162199149630453076794088351799300209849069124277226871791869771101353173412943942847339418673275777975370049266408884653101427788218843852949513447350178001579132981417247986665201556700989666465056839352272554842564485114292055517319839220581396314486228152309906645169530732558316053988902634871671195714224385725844498045068176002221878013837721530278589043290701475756676353545702803419527121953597313786209432257177009357615239414414733501965330450070961156757701060365948283599066853435886749493778678839343100734124697262294706490015628100877283370928636846991554362393513908487643320497332275036469951180838863577918010095729260126368584064570380203006021475472571374915155007047787955555520994735548204581611790961526763148355440763504549633824101991211028291792238398883281224413344747219509721641194689928350230013109945629416390628543925549855772370389084735830487585470339172969405379859639381875454772944727265426256370911260888680652328720562138698133928363103538400305429975989707312026954441774794878730591848701098153322066759501054848599965308469203264965779573150854872008585184881821454781501561317579807096008367647356142953151928243507345511104619910322149934308799978042138517657683334533424112936450538398642328839002906393692309189858528376877355572479264296357674925674012163544081324985430121267330646064939110006822379336279900772242792127073681552053684562112855678731995670945894023217359193338839019162950633676365464358348782838403242580260967017397655900841912097375401448652065443911444552681860525096605024578761216930306802100923065255331859905564493070543076112312028474586348347763449661423869368001845866628752592264689462217188043981366424610667349274877268650836300989060295080185981043118393732475702165675502700429758582051765667136097159127713648999142777999769095137589095746995848654479894901740206260563994802412444279211765282128453829600969717464619832321243920749926017812427629101723169785152882764601141519686100606430979501831456862906187985357262431211920905085081692271056647994912402397398308429157496601687007985980399850939429016126014592051458872342468232173060436665281169133091751585000503931286497550359086463301098398036412253707983030336030718592622181757711620859283488174595770964865912905965968218843363027146848726031338055523559637522082954498863525177045662381825304591812671061045488612110742023634119739753111752848575111081972674387874333189672352501598663462879430925972360217541862545589285071517742144198639893637493595163990599981915540439498793052371039473249630633051778686709032138588832124484761518823976094527165789299880630513476670321373673616431176515137345106529032513020139047087342440348486595207371405500649622083809436494184783015520919157654466751753144222431798200541977520999137253778094787374672054573807556428451762065755252856756127220919680226036197823411280461118896691274507987392873194666085679581257455729285217051011251424306688854025870862498495515631808992799032847626466799797419411683798603303956620100590607944335776718683813522667118259872030906559792870355408712521277403854693180791620173534308234250647209670642289071310060535880883543283504728710954852291341936745869170503511802349972518599401572946193510699015986275009195386307495383978821212848920868563293090177967179011095161820680376552148811305825135619701906044808127029692492938219476649729515863511251892693788011420607976129432687764455241774156947778470979445494443713734758037466254415366228715317490139386151924214751331913047689853319611063120425943010242520598929343867566657843903334324112566248606791700610666662183750841353150674483702755198965583126806534772728503707594982163510855688884762856718564884238942047233022038669384034092587764068741608092933189145299521450884033613650400088219619505582972737346943693306227298977556681923150044451432641421575289222555979378041810812382710557823054267235940113079885811626186398882505695794746725011912138395486129623461742425977811134342727554916244685806757316340318782046592657977943345529457840499368802916431716652732232874329694785623285484059027302433328113080555509589140675202689555705248113973734219658165991022036080586985700545821507206599805737842243681084243922076829028309681626683620530569653737323304667649421473492747330930317942648511617812763808226458881065032780739556684820543921310720771643540629836470514340085501760671745868095254905838097245846569687449678688846088313082044863409472923958835155022618925279319932452383950943072140961698066032734305505907587119572690615131653230613345582632212936444684420231809419291829483315689138251530725347209789138815431957995368018428390666225280712165819428076617293836529802243588746412224639534346140205246370307147148567102425526692361092418400016920837316140618297898060760664379649431710186520474921196544024607853182986745279745893681299308152315830909076087549097885676815503853969107452629556335464291945550004862371369217961920329189676291275679492152680914339137821203736836405725268366109282653027266920908621011824143661426395759819713829839400149117660877717013214153630385964836079938416618619352492963944057927288548087647226282247094787986510410977170682366016551504580381625699518367652057906257456248233794166615063513144153666275126188091626219972611413941592510820941660224054579281777744403251774843566211426878210148802151315948465976878769471286541478649099897817903693433646218747576403148618541817437963628307327514538028788082199608914874797775128315259372496549761785156731341221889941018909228350541198832784617863812529171754759413942951501798568261236881093582573846659574836535846438064892166905939432039117304924353646260659534039010914933535765252877025618862688780628848140914768916194517605980533698923881610122556029513968262114885836217451181241185273438973825348961918696955754759788436283142849427547170477481978218474156593682616625997139642320953385207870565092971944281609919483087390102889356801721504982023013718142471873418041048476549309494269484042768176828587813641212582599488807097216309918143079107779015213095779908788299732404826915260878758162837517225188862586582111220766730309287210354178605600406382305850065462216325774052705425846192588452276754846600869892562182641459621925980714689244886559641879149650132413325679496590733697842778590255591441082729313392948464899567152450445966134132858623607746381029162859367928606740102517858044089718278316467358992270408977520106375220415081780277918828792813327416700730714687140093987253371630211298784385884278841384302921619687704151652818080686631731136049533682486373159080150773437485652544421525902358404635162156606857919947341606761366330712929048657781780258070945841283561259729433353059494752476742362312072345172016244855470559229615463819584865834182249700540909501212450764781638369522933461689832369932528089807142172516181901594097438120551845601505491831089596137550478013213360647745575041953799110385951418980150778886109585867835675635200547526936496435642038882991052184865931959598598472629657573418034362737244809296593643027370928935563287215498086358543082035460995458436231866855042532104713524725804125550555249206589878783240259224837005044474210876443005598565111550925209575263421896093266781604966468569330109499470606098490897878334005540389846423263420433193165819396399250344269412132345131457750571901594438259305358883220220112012469741788645375651792795846910212276966061960831890452864020409765972052105306442772054642258875423925104969360486598046830138066625480241103292636981288472551800462470128920005213433291670482116085537490620252942314416961856043243976414169827511674474791608229615854300014129590387483907363118123494374688235775213802068347158616653103729501179999240467982661413157001085079763865641112646255405683329699009505560962729121281753893987615627521477953222460192299464718312930849849704755051547356326740274821178236328279676391952992349494946811898478351780980598975026892407667966479144407025372411977844934623278345291594195826166610590689496139423755395759521370446406913287048819231700183051635079773426201494321039205381004003049940200259050704701152792033985606669018703494823660700944045480704801795180707566642601706991292871262580014395884996029402913577847452081641630816683896594336337199821968783428503190200978855377969092022165550588378506909352939255922108513016682791847486411736888810080964213728492866576585273215587265695628633439765314074454687819321409910311543435073323733979319521557051590605606864590707649203287631861903603779278661492334560863297494950846514501229021030746992425221316234188442882302541405866057832326042502981777607829925271414532253733536413288020218806218340623073524004609629443673549224962978417976515806668204555532122736099816373089352718404861850787040334814050538169586063720958287819441702187696086034770654689127958060417171256810463457986908754191205894191278914932038004910166924797143813051916902077380506482646148183586673443895384000095965256719579633314765958057533854989690350675007584215600761181512556730004288370884750263283554051668644293567224504425619785854547383960201470747209215476741327737863819103568341903565163012249792413957909114599171535826174963736644092815264616460800662173815927766778690182865105514657333216569230214999832228858292296103551168948720805628661102555632859155603860867983525948614520577829650083308044350726142058912676319573170218068289092437782707254995389354347747946732493077911316643400110261424467077965522736898151058963732179755902226266418915980903095454111627577729366696006963883252939217647151465612908650179270015986964563328729497593806776563380776014739275110716687858412276430298262090809903890771944347495633738086327352331228969166104886101484370565481180325083694627927282386679610406731076974257311305530791851556823819243209308893440863675786741535865790798256704198589601227697652803358887171897743103143096311735150415761370940442233367045475557900444996326496517106116120882335658740204483385833399107123982446963789027910061088583167067315659299543408936091067109406607672131191458968093864101346512693087841776370217701193499787696940700925794408007050831990669872179551540196826837373541181612692537833519739819200476238048499056572602405429874248248807350128037677953341408556038044218939924558932867427733510771658816349097912475901855375048016023367017579382084921249809883596361532183298953002055327952307983634868662795919289342775294839787900772078355536437111858069546705362141706390862803499703219079095061722723613865161439870503805017429482596683455289834856981358827247311153633976900436059092680293403305041859499060664103635669800494561276391237220744892988051158507547443466818215384240654387638826289590841059634807225743081030056006715941461817893531662732247366282454459345459725183651532281004307328878275817570880501105050188073817235139210490259249145190175579235341964818085779339370137129810543528689448883782549290232694585882546314191274526012744046940395063237625302446714518677366409574265027554190876275268987846096420876516796699367321703554026995972470610138284566465187266047164739186358431410117298042870009950021768130663732894692273013527833425606145300291423839759809258273169327373105845376606394643347378195265149175669978641364860039563427546034586076622411125882497015153393922892486512079794263534263518427374972082548984375720773329576818692654736627777229320940728726210717167503473092768953659264264731799321669901784861206399707859743962725092040628703303512204148094704847957796461907051883708291137032149403060094184500991011807781248242823228824372507648180350682248759269359766215923185429946704427628600887848255212774412350273892252696801066357288792525905073907811033091740935260644885865738020161430057742231584273737241040769158470214328559477288142936970678290728641966423495560752166442340904937119265571276229521833445108086110065649408430578869009006735515101951332190155428173872434843324514640810842151338100973953841900503033331142361395917093216864688179656227940559990614411930284785094585628032037395966901918864970723723791553209460271754578947397623965862024270942510705436719467725314215454312030003927248818680385194405923474229127799124854582214223467351828531611072406007239294057585658285212945945728773970045608317820319872789783485509692442556307575575730081516362248212248382848690508623209005533441326463063410371469601106686704922783166517663522324963479377463220558163010214048445387864295113410329811410495380119016501835072211106288881355052074466397800140931016631663438293859735027599232217942629456463508411723113947899041454591392375758349788241617003398344055354073894983105830901861398962200205773935484672137540801980505463048219997613979076997609678231041470280062082868461884038795272675417980396673114166370827080589814296039676647542008462427752124280397094964229450195635677940898619586191201080789315493381488428050468304739827907436479472067212796343463432677610848137238157176398112582294566518127229410232742409141187690161933459885456893791741109510066409792766477741071038434444403217938872003075884758905967756651769058421291014280243314929552600109126451222348091439521340316522446994015610386867061893512572888073246757946102404461671796987789365654021625815014551349557559964453458717862713584529104809107156029579766461734451479726574715119759510509419046089298728860533785331368416223973286415806856962495736832084756767099714098339201511853627898613116776793978252177152640678138169154446618777853351541247038943071814413142422418056362015403768262592236019850027440702441786928459140106937035044160322290398023445876330606013358910924864964107180398559358118606664990568481978659940942353424196251047789479293844448805759802551826506843887976611775432638183702661039141531039581794366562851178413503077895564169039643884499803776774649104754079903137609989814776852509746575551674139688660046200263912337924023247602735390766939737696749932105065288409054559462494585857431809105596774082714527065861213583111607428219068789059834182791684765273471511729405191267000615806807354471620062825338929777401420698511465656723337650746534546553050687068638880671891301931279829394254914757963686423141878642790297144831986368466394053984355275458461502879070325515491142204880318954628875138862735487086624191941144913335499477085638603267870130459158505705747274053388405866688947843059634773365167812876365120313416161409663768336265825320921113852839006188176295722939398658196154096182706120961183926184348282172613061480303010483565072568946709337796639109546396831103267679238537997114058317132601427721985422421147097023050051671712840332906656737567814520187519675640089975404886809537313417678218334816296291061984758049069899756573470450816468899606744006540372628086096402052485567588123157476898879684531365698716140376260396989143260890127902944806148401315363232298517368066541100096236419083714428017978157922342759087587756938312568550664585442768603195771932848766897438335144806852732818176767678328788348767946737554445337602326140421964942920462634936415906950052801516156919239036951530791020474439252368720359721763637675466205713116758317758111728507279265368033389463571447306812004062700971278487451016744151679428085756499644392874815685112462481445061853839343339775695052821866792750189601553540545364540056698847440668265084629019338743341272562998641551281697832977974352800338568161864305676266602105316906651920629244845456821972576633554945418444498861466605760498472075538836584065968546186739993308192249576301925480970999165086017609274840932392824036636451790833268934676275890201527782776875755346690706602115340024601141711892864833631994112915818572049571877628091652000224180788661553431743945234557354082548239308647770556677882462877079814946026918598824451598504339163543118290255040597390941270536094668097897135353434405414136428264424011425211660820230360015103021939310401565827804063774247555791828480376666058563337973278790540519698260791964783076393817602116431105086822262679028741735284743627772605580570177914585429102659146807707080990711246107982701689943058915944842215942691006164194014184099343076636261199929141271438084519523107950668693207073238390415124423219818797959034035752016575032087210855913333106200714101113221120844807112629819884592574461160473042465801733858481138402794716890406678168618659005608710925147942223995900659647466967198832870048104175994438225062571232438482524084643552159993819620185254046143125276849260029899155556008877188673504535907257603399066946586491021168902474326156300212165139376270607617181350049656275859088212582433900510626894323005890717543036319621675966633196185841659463746948450970165814448801799379541831826070326989266439302237227995428197967417624373558337728495166001797374741832925120793600941553049495188473669647019210489703135495833231419829512236099932511754524101743768325245374109997851272784282435064276930582533500222041867223352870077843132174008711721140935513901183206908263678097134152582670519358633280964626617735105706907528914456049920431610283136278378103325015355712536441815425428875287661937101280529479377943330184814106695602767898909042386286494970445924382646665991852021099227944606731559939794130047187864130495804296888106605079296976498154170676760213498649604140996997529819463186885065718082242203500833288452719743602059732713879455175188002491288155136291829063523900926545984228642705833267293381660406951089919410484196533484848197528133564813845990804246319829991836076586030131691396902405142531121435338178902447147505558533964293483230406804419569617208322504219338410108268406360447228262391854475309517110245623300179630052963931309645127866354427901816553860513448446949071831979406720389560128263567846715460556103345038622694299231608178271082592761484282461905914211492558629136091258455310664783427624243346820648433630623785609394890473687303492141328218474701255439343322512449028851221469515898131127584978386137232274438270909401507407118259714960149197309968233937683690759124869454300697951963917936736680669159760800939789726001123012484969023966030197904798632256958641605560115618134950200488488065367304443450864449060606480008308354848310359719058614782429356371235292364054483692664270118723164790054822796225625690999452063706759298679548738456923846685200002484905435890140042855216105863710323453898717477053838655184712067904880236118780993938294376744446847475056870073431779252031153428727929103239548944219543751847000582211029302050188425430518423727264574885079617145952572348502969057800463258519199193248487272271187098665237315126675336973905990961548765691524604007625529033469902214045259751463611379160410142056775084437505377727200255609483050670553913486810885030748145155139599162656607444415250332370063088469977459604118406997512563375656394308479085094453130606007492180023142670531327845564175002240738832406722499859511251683612044930644907497283886077307578078461635055719642398944335567215555902799299629268877873568785165703097193636838266052766018261534313739021530274371978741139131565445743911162643585045112222145069726562921605736244773358602074326908595023087008303213361694830490603091085045405886510441711311318842036376832298951977722787186576882755791374659674685590192085158118334278565071917229413816471455161799728559633751679210593222113062392136786211812295631921960258755767258512673767015784997871453525746067350322146552271727183964250556782742416796072935983153913918959075931553608273534966368535850057126262398538305052427927803216690213528049217119169540045022269026326345067454970168446785797505762537317403502365225051695278878088333250427749808530920211639813332348276578095052112417041600441747885527587067640902617353180712291578035916140984144584205760362470966038279739044784656019965693966180615177915247016986359865003801693947620719459878223390256786734537483541081131533403320161215925365176238824062111979664962876092895676438085030421025792795398307398637759650336054210269778925594685974856193954852548173961949663135069328753889005406956844583356044251653643514146258597511476228295686922125096749900356286281729200472376889221230486282495202745170657815099973824976386455398246659486590192158482762830963098986158633289078626223363124728350189131969385109415033308139683731024678165570802194274287572192578335734960244647769069683494348408514126951951327189200754491941155447269298729639913067016552038911556777256066603319937747938448109501088814024754935454304946875186696372612655277304842754996153764740070565119004902270293282325088959050817262914382429142956882122937908182967037859006034584839730484972510684806525321692056111765739769304437285419253589839477314221391159782594803708008568707362635316478312921977922400619046049795401478697461210216119763498269973670043147971866320362722444661514787471579714606876582793602876385673059855214394820548201748595614320359125403595356173436846184617817730422638252012693175669939550352350631914132111521260243541831247432859882689213686841900584999586870153869574289499950642446320402234524552149151985921312942449240060420018722266282502115347195101776439230584070720414187722558464474317081864898047038122828028147458853923642710149766386629515463502337200332915402198308678217905856316693411264185145736025634701279846361530608083437070815401936734570829442702045413727193025025892370393124428143074886621462908734501783478560222039537465238016284794679303797859501200073204003263588143878919657313845157854031642301913941420321410583708446730892216381972834459997896839962718478859729458757688351302126412722955225160891238854343214830426094880450753792620011811500212397188914689594533332754306694747502006996235004577522383637023014830876197302756279888261666225404016128537620153731033305786786041250033513169604445306919277191498562070356630995813842747967292631990403878073280382009558461471788514242357392246222068287345443429248242623311215584126807468796187512343195127178570303569265426262168108987341183299065647908536911547403785837515623766580610729652596847255370094316232255505727184745188060314813033177478295792909982955774866049754137211323828163641587468374977358405768402067585465019161611353420488593645892089283980955711658303794736405788550080559798526695098512078858740270188219891594742186903217545303989817666577438663618116997739902010209345425186626628824702674491289843166462053156253964011578746989244829708556635128229077764187627780279487120417223466169649104724830288911179622365445422758939228791197794036414062913075924572257980563242968783951343982298923577791179580513766823804051847978168476058262950737286723637788176210304366623146470495235926291165362733569613243261618269201797240311360583885383897769917822829556749236420264480200005582898955702837090305083709659598422461636863919174822939282461247955421325150270695613269958988763681672934428529467896660848789269227945484033559179343995410818858256622696426447453498123958175032573829648359887945357386980791888699706497176711986357779822069284971827394299442420008540233148561593382408539441545784483947535647971209464245003376414346859458983898853088521537148387568885539940045572274688640411779785173848900292475552453956855967821891373681761895720946630668101872855716763078249642977858238572920089603500337521882450147012979354151941289624614549053242059988811145565496116026304413529257722145765485826068269147104907757792938386230413024405370915245463716674034342934149534563704380484301808236889469800347596998541976265052394618951161390919016635219041083622215375345876248789650335171743746462929394297980674914841352882223354260869124273668790840194278039324989315046214489296084661391855428586459686111478243835772912163510835095564039016065758005605706414858375596804276845296529360802235967398379192038962645492443834378338976475277274976477799095866800167497631616040957639926674953535079234335705028281475849582234584818711271786611832259397831296421554847902296225061276062633252407811420081007141290483191190223078440931923801735438445009509792366050510311603116457256209572921403556759704644830481434328747194383416792938918110113983082775991108576572289162575203752124183131223542753106827431826755210147665291585690769206729616018314445754307460954639704838560181558949567514360664723158657311417262093910107366805203922610491480835830940188590666730587749311484176061681520786893845736498322270781798851423497596222965965370734279757235241846897890077676329361876770538329072058015306819759854464775602757081976503729295637879908172154605469421823504893743370686827367363671547919684456686907488895861227067184998277680021287158849254668825639342098310374578224915435346979920216692070528541112776210309070023923150528156148176306663848442989160103893753865900625027479154948718644739680366582356877070622805995731540970856721949452193755574954703680187908406046989400628534030893269893924256672778734291753756619585441021084064461869603860069753603323214550109666618767059470664015061207486902613579502455819107299539464289117045007678733474339569245937458916122825829953765070586337903802018982997711194690219088464330479482949330844110197230889206295871503494983083822659193583782266619452669351355389085759736563661676341142762008948424622629049839157053739549531035339840027926696289861227894329856098152384209922118593338131230442335701262571350496968341453947602887712797509293400884911897814483523398503340688944247905335206299570590514366432718544446986414819956117074140153669953572714580696685974866121637320815058404870436765323825216760985540174608238849307202695483705545843684343354318329213919040415020312685883028287690167215054734357062456227232598432659788184736777350206335800962623335367052249509259727335903177258618911508765794342443686940297520536385087668822630996762445619355187672589702522978432333295748503167348271866823297105275885996117159374070147244762574199233543567670627932490575410958235670253515253228554510728884179589733290421661938313663505669355903162575377862863079754850955079796383054541622137783238715693234987821023415772387722179639214972532577913353605741447235643565856480152295293293468405401449567993530419427593554718110657926719428738228469426499410914617682536964033875872095492535439637880253476925349640243684826918549923469913721601936506950059916517452837051901521624061740166118109419455276505484847224742368023057247417189164700334226235429339005765766387295887189807696153568403526862250714812670821836402536213962288539791239988504127535077479938244435077766282943589088050737141503937116495149858653246742342507560649991310221642944973076035581691799741053669319724769264330695130972075738438696496131468519068109201613944101831705411270614439520512786596278152057623389741613168736595420327107977018753821974404457496206976290508159858939803013751081535966233516856071479505247790670100311730934739554660000884855049296189026749213927471551648855089351246350702652922965386888865612150310555339086387981237394362333294000623742373374659988496074699958009447754264279492335018269075717479109142116808715152972166605701845608727972513170907016348226115459407905266849170546839792793928217707370587325471623283356620477754883385758254013816897120803413280480211696539302541995453462537447197190119446709574848114310721310114050895788512372581835933286456560263455770252823936384538603844482937141541484696254290734719956647722165285723498311976880857595043977030827133662574748165583953861146469345399308737051959953006066105925651008112934487497715448073876170390367128302249033041382269693504503264458468746693011363748009895763892112057324812009726777703521878481393637498119273168522994474692978340679027862763199849151102704274725344313106874816734125478642768302617001521416930985246960021537058918261358519817997433844258390935213492073499192714248515233710065256573823272422790044563975977364900429766644215105271424864972836127922246588490319886013578701853456612269158521671247628376899821861597617710850987531266529661806012970124899824570591074127848188167054294910400572993404840895266348922844627670009421911487357520865597410055937149939324038352433114926847219940157225303226776461781992608444491288463075085320061346291868876397443032894968802723916721812298112078265959072386683262443692146091191294011241834283678597285728836632797926752265814782034487392691897980589575456568958548272951594234549855999252553921314541852278261860790953227862495267710399424832375109192801617035265392666527670291154051433594792395801394703624090981933152029719043276725186209621776976787023468005857947776006546615196887554819711913001916260411712080305794601347890358521994849316483734137774952330334609591932079117528001941043885698981944721837746488702806420395550230575711232315878056435317056479429791862609324960837275427172417554189909053533338308849874865659488218796868342364955844361992059416634845942464804271219396621592716836002568549102271020042091221682071557469095334674089572848186479243987473938236352672001312289010843701926583430162000367749619503879716848201024807687189206810535973151330243617982437415837643452389301464064340457956741810491431965969705268787091815410372086136389184689607799863494821851560446610602493990444349919781775367429600769678653586251498766753769756129015086504661711973321259275940687197787314305142918143849445634525873491678160184563610875761248770874485670097362670041910868855126307831034785201528916859752113186761352798498011653615970985643902552374899305192567834837721643527097637516632685242967161156623975646947789375106678187126935544942788918946350314199330514064008023692518863678081201577787900103476660715773125058229449093622037873293410117206611060615712261143402855961913725896152938617647070963076950385745025111836954677192245680168637358784009278699731335863854653614956168080021655762512154405061089567903134670097907621567517085424182344933832980366610706309107998466559092202201586867866986208528381356009190373502109771138449798978634386733138012949578203359611485146443021185993045103197146183435102114257848134052833036552525256341516424008264750542490373762003061494305515317913734972125187995594979923338954757748534066221097084873868226976800439816780229035451140872045447600014121241121280387165972350476349059369424774971707378736897180709042735807466006411412581886288557134654416148390980401411391604865226104357395398726253977170085965211238914395854714102112162061633160975397182354142755723514275726744984953503117853167308587241083725128960805541521109678936489987928160456049689087246058182981644393595803238895839573767158077418272867945049211822305942579749063765261704430793100272441147958103272418118023036475008047799616028493198764916367390629367374340717008165495979759352198509703620850695134275315034010189781757195980639846217804036576962867350991372551581530207316366457219401819644608159730946311538539085333724323509745867881865564845314622957813402493072009506630556698382845358930911072875008482257198214104055045174795619620944312704693812024634339867215629494574126121405534886348607497928185458014113763375791993167987136382548563413009441576474559747020254145993849654953884439288678100482952589025427373477645333151617330208417766630547494094856751672376084277289515006906701655924870245903053237721746899634814517159970516092100205078065494231113085963210489189325739187149798301157683660584776222320348683805042695468204596172366782497787914118427053332695285580169000344371213022592084074796478984469079010912994851135645580901206796661137835727078690862568270552571438333162123974289904092724243530256075949775045703840148149729254988576943630969778528241357502944185227558435207301266499918008001306020471098499977564027364323458315851746618930150843185490172729292691332159359395813371256112798066509678229698627536207452767476507729366960604248752934845349392757524023581370254160618516049129720705702676932044476178352515997474159754990312683407489689596175605907057319275686149062364298116569591738297228976866261127019649804272216803000729812407298536065253621302856949096464750734574621089315825159910209028286259600269218538483342955694512098114648410994130235945182043292072962273753902153563366806508972500373400296904628339839382833266600328115740617111955740942021271939471607992926042335212753519390699202572138143687020091706261670492292876910565862841853599393886561216589794504697588903407976961711270194958163323394730844282979875552077940640013601269638337278303542335840429082308023513973704312097429146973473332071106763311811153833201086898418035690964861140543516273923698496787296053020942837137666087619298762746494207226001002298159556832932715108341610812711627741805536207029608356645750971427944188812101860397195176555416939582745920743167908493194343706659432738124038594581849239883188217966217208364684607242173928828661290796960239689929818482485294328953618756887684178274446416540581743298323797187360666598372722107125274859566106057766301956559476329887423566945397365806212018515637103775632530495373281641855088470747859706900498853144251694654324175021712533010753213321248024141706063041933266538363452022111901889081503071904799483363521569360784591531199546364304081508550521886575064425627011342071448470229924549334687235339327129207277091370451053515951447838131519648547970410445132265182251752658352661641343780128272641299783687686309519764353688487165750831670141688576321728704509015210741265754454460758069897610593676988977703945259463822976455851426702573628230463437220319790691764000226887856522519785400052137019552394225597146551530105157849397864254985512202011901217145172639694380851783446948878332228601732464669740589276827981989610208394230348850025511190397059558965361989197879803325292152274635324763472983016727881409575734667782356804259672013873137525578007734166627961642384885493235613897431419550627551840811110299167584356578201945673801352865793438247093151446103597779493296031309985044877387531788481881124483810022320449016867244447617190446886198035309625785031327492349453314494492257408958682091795407127591036683530760188902736182164442041602788668422222108054225793906946298071792366003758496858915414835821662906629297828737764152068805416769255013709782043050652658419474490727520751332885799916010828267064171576682131096846408939480932019498932965465273161864958093355549007010460447616391112613468527613719060877150798516622466071736072008586546501920498776195211226555235526208431182980866026005484514200755851003225914476244064132800987604968679188042459034900753589896254466469400958797873663099050414654551395219358499108024208250475788671101735696914066057392937522148602981941303981533235252694497316055071019874219986705591632063519056558607237494119394823392434343854873044099764848503145186020607236970778350657389928347874156981212803184600424208873589046625861946035901715685905519511334072808425304167978288742393805004043154542567796384939217257097719144912520942430910012987179020756785404594566580125937620905913338160666896819621545886176865315081010809994907159271727504004835348591294216921506716184006103116591719813429349195241727824936258836542772628940617692769606298214432450602149513582057788155303917366620150559191249882329063600858086957345216789112312695500765337148234444439043984687253659268379234001165566408484242698519967307086359384222757428843130372713567039526740552454549103033178727132925142066807788111984239991968172762994033363825924106196429248176304990255384615362268213722349772156148500192101176832907553690840205412573604327043237108608584121869453669922188772005508464639729371785397559615147379681665159016293312199515555718112679118443662361327336438439592071189468986903743203447733583508455470591026544483692003083464242799236632200790510639518091169908210115560861368105297296279220916379078770019483559740356675768341573691383265294272781673541011520349088451564680328699980600275455693186917263065417198403924244756494413943095951482055249801861474273675778126727358980669357802210275499711050397113821871687364026858456351271241727238358728738165999569886594795256853947178541921493408863164182345201919281768379281089843548913409723495635803738869595842086893381260020399259402496118326064829447330057504305386282373680047411424839960382721066914923754241595537337000847946011040405478595724523684942906969218245791738893216395605511452540321951930058861817607720449907631657748211922142964171900024314498428404744528432487524721653750175713312295069426885111574077498474372629796310364005615903267159385860758594080381407049671042909987049453821734323925795092638198626601195915174291742769933658053966717071589183009170789164257324272428848490526345774742085864645344405418036651144283045792519736647542585206657509756967551124468717131911145936749262333310205498639529306180243005904285324141882158842933815812248492069381701967247035878509260345866213028914909181948525844695833101597033150050531610566506412968298589783991131658938459650296763740639310435407409417777053593500168177647634692160411198000781627618578696990333363540692154182680001781375501684279824609112398230867990907824321620103233117536561644826902953008515504199350031431517878388329841380704303535666074164522789582054906212609673511436212130718768442786647959870005792473427137562038012964370786693357491159300677078419241244552072795763187157735297495536571671259892084157750979266731166643670654532435768417857670764194768063681221717579763794344361801701191462521686342436289701937760115867309687285895479810609376942063496145193752016975001322418197391947725075871785948615573904853327516402879175419117605959647864793424987693285595278602202141618730062290816984277419709527121822263043706610475104078443841458301345085535183611170366770901844344488886426005112286231793135166902781114995294005957874776940446735964279883511443892197603689472394819913223780151122959800908367468597202299231594349864674541610666076767529002479894180518537609655721662799273453924529598011081937348015282192281654527841797183865459405186997886452378327602222186819251710728887892932111896663078983909036806950197760233906069734171332036051799270805153890277159516339895434271453392883296909973175139770028441755638356101898211535113255690041547661517879912421591213203242991576899722275053748108756400520158584482896000170990733654106048763751803557153116405125562472122496693869450007223251403467935505836508569018344950401158267947007410233216324533966675041450021933390430407538745609719662564587900694483092775475598550274589817055383102228109701133523278075324507687023209006525302256235902234667310906774809462499775558182845235368902846632189619834617945788672389090061143783703924962441870723173471017908453982843586285994665485965422985608933750829991912758422919348638896067506229668536027172720311937988055300301240420390840204547180618001918295710547105275796161774155749335467990942782518749308672624272986038433412391744861408555380384010383126125715166725161666306322073683563037765020791109942989134916449123216011010645622347152510002314546783309905034313910466065741467552770431776106585848230589515060534189726417783130322655772788474735355826897477219935327411340977275524492042780769238567426305315960925984561121974013385906554614165512696980689215865095322396859121923851490322213197499984548070313257130350051521466411240942677675818638506232719697275970798896552049467091938635171226694900292815131542972280254980986006591897158477824046044227200927655042704994337536260016090409731578357082505084074574487201295363034277930474883674146578695101956855102221256628857465985462615821813773563093322087979993229125686255609600421895831987150095870370527633513328609347705222247092321814357992494195405346415973154154287227154521559912608184122099685761330068877917166091916395309413686045429234646932500071315891264353086278826261924458101870781423254829128055481838243073098984349581400935900295651610689961501400641876172244212793714470684166511650631829238459343062361643179269416811888244076744595943100816492089491994596503229881308017309537117787125448193207472917907281698995932263182396183611593012408191575441899214902844211421374037800167662946840771648236913846989435713330955717827619295983102733169376012607653820832090147806396873029363523372636853639188460668882603135756497092029030161819078934595856748460837511203739401103842297804144209749402619849138171930496364218879141258736134079193188529459814198867944435983292603347901980745444876508801228239566089339344541927730247977075960915866822700992284983685602107953093086536256127333426014591975107433526647440602223406455990962264194735741259130655401450557605806194958989413394303720536385704519272297461688343761533281600793177101951484470944937921719508985742146808759371632756729471567522536807166710489598491712296397504065951377449938963378848582493128551317355033956362430585014970893059434752238000518442176362462125795224440137776714471129963324751172592903060155368397455409669896126167537242549912629078669186126280246254595320376733310010888828860444892700243287968125985467720055102096751436402155470716419373138064217619092722132393658524685467843579912073264223866336533712627248613704895632271336337156352338691655615676738239861024637837579464168031932749030974491880837951868514425562341501501801791671033958927396701184670375061949522303291569033057581523494783915233866176767066363018016336987376582279307316078997805671569027176842563761051422418384694844987478492949483679315418857134695452696301383346660604890479498293486417592795569415265882561313129329458227168604684459840678851895514240223114243138446812870394230738657251819340558569640814941843776700866779127602464343207553655873315051719248269666749841481159260067965710778148720818447008401493812132087442728475645004616870975252079470021683089974966587847282852266545571251714985331744573428244632033437281115388395756267040833769733764183649991266552167295898037600066524747020817274951789289131180119114338619041643896477513132267820026264441897466666886986803809402922984571746185755461239667120782045772839552877312822626612045112349290822836832394842706318318017105312553897553349790023290030929364622908078015412424495924163532710391070640149142709835756102518462184104735832110678875064091338054240239536087960768074523050322807659737507667600819234962969899426823993530486155523468653722143117479231491380888458879066688693005116043548576285656888452444667813282285287400561035951893553474394184717159169105214629437600200958480948332350115672648948171262920243345894095384338113675203452688457998527840827115943010058832347920642723666000202886044990289971606511464781542161358092184998664092605210625222291945300346659278679277271550675894397006497516824058245470724112834398160232188563495402820886292048724158055698927151144838307039592729501241879410091979819300437803917019526197096624769488633371974341399748617384205461596214308437802216551925593008179345841116176003814242415380876947897628006967762769727227449898779420285950626348008240466126642309435120036908642724940295669107609907824631227538290291404740726016083214655406524163018274380591544430741499418357497896633640927149181634880052749189991869309190846903962229020214679813518653490951709391719900418414181245876246456062733221981726293879728668510916324136295868211092809505679267336070043959451889889487706140294883792265054421656562416849251777921305091064596810238845931701344900878805053195758805717129704649765089133246714673737406561539187072405782021536122254374583355045043898801588981898091270575603535797646042533123113842056257425993496498807941044566570959167477914556266059774148521584602352705718807372025879881959721051194552404560580558541032559305398466284814745602061475204654138908398227564953063294474892943774475376773498103389616516884141462962367212620488520884762354297787283251896682767912561329572434129644207106896299520828043793320338723068785871051081195707486942344742479824036916105224593380062819493889904688057372793013117117305148611428985199603167522763195827520984792974580936559802226000565677867608451672052065099156351752288095466261074462329752280656419755342575588776147191141703031012069987808695585503760222851482936601918636147927524179464345601102106086034939957466294549115390885460810031499585297996775147089991123343319532390710888940926337312359192845910610762006455270983036339749030005219162471122968612325228434136860394237008315415261861271369645956775803986102416410990063972788494781118590022193144039674199219065851149704955210289390442472772305230138925879943296829659963518226209614173813531336814675918487441578679785648385765982338903861863580631907103409450488865282811672824817064557801092636036349861737194149186218698103242402527108513774870380410254308035366906443781478214660229939394662094800242937541228706293339706547875564589101640486953982141062183731618847850009116740499797252897885489889279401057637594691712284666460002571472159154136885067057147035154773778316413662526113668214579256507380790493459895384795006334441877359299569271303457255733811052257514976790085139386500095515948164603115377134622160883562299779703476325646640858728620579509079598633969106909193082808146748407730950025185957917489356744667011843385145105715098544909734378614212451519848502357032856627426968784734834403328795520710161672687788689060261675064613250025431942211803088832781164488053506787413598201874885712118082674079766849758208665141736423523014226911190261011556988193040044664119658906817603970161500958081974335534922007661351210028935551084460958885673984686527789247057164686816841835309359069670082171885795856964199395073559538787153664542137726456530140907544279776276770033091617545919867897370479048985502152553195808823787298904834479718949319729928151596804557099498537301880227577623603051557845116831448426675151775536001581798968946865457436866150031939061032005426647572431449908209941996971922911728114992301808320128020371962978081042361223274010002283763332932527731438323583051336660709404920510441689556107363638210564760874623960986210909785751148128904277437653676788983947284351852665778948961310864443116770623158593267393926938687127663358005077226487793825930060519125535985791937155230999759158751088873323215560303541397749046415347199575902741360973408556204679496835539420541000006082952629640852976342161837996668106539624143913478693347766859400816147706783675389282976300681302175860846733717458942444537563308226086189707292428865930811331940783764089114413459521306976515881147537348624974015432519955489015410960214368021848918337788577457489199715423642854606427225758955854419963100272189760278626102042421115372488744856327890058041411576565711308894535287137036141698758113816792443506185163327089416293598258953708084356831208695665503224960492380240875776626900723356279871817358014406545469575586338569001585131325268423615755573654148750087473666728279805055589286696155530722143168945457974036154460235698912055415673557197788299544222230614241090466270937320217851220791639349298126353489523097830470626518100279577337327786333405598871180469089186169121799531109288411251983767106493100936094252985072733473543749975440280033289957092327684163727001038930074575716806185618594711057172982120842088886841550469840399633753601883136480174066102972467941033011626553844598670620179275911823296358646561112795049546561414719548541441529816778697921288596071073693787854839106401695060244199260213696646861918695657968417485131917926324551965436476269599616517837760806881081569704357431290937267103793517237673539389861547420133350182643449171745007054828591274103282951373881627045248198798284540551482086350037362580442683683277136624586407804858774113344659867924721090116998662417513771550953778117535575718826403286289666706935151228808582926298111114907488657376819328504041214048182298129357092035462832629481781002053500238248695237666236563167437019251370259073351999432792224873277512879224858683569114121207859539156992231890751318181997534942092503660775816517233669763215183585765745675779346293484276388559562378794204103659336631701385376654569769776029472920066450261791072262717773810713396326643675407791101159368959374447539342174998111020450220477811083475961512992032651289566171003816667494322306883884485243017312107921760651790556206425026474308360348575199320672764459329284026421143528951415946647444364755278377447152420072946513170477148461881796742636142680850908316024639095579340540408363423215402991623726044500976498975229087122497408794700249214024868396309567235565204755306275636689896849069690841430010299837125216601255630323458171300481554884881426737174712827778042342666747435273557679764606877232332422001598759262410241278405972966806454595822532077899684582765370696574906841417552911256877635670709814859982746672767381785612973283583678669224759360228153025374700578679258687783543513086115794814222609520439015995703089185373688812579659766936977549387598123464876433634865103182332159638969214839129655675011394728152301881942085385555899621931478832706437248603210821933932853071086872550857612580588590139996054035631408549578224380564587867930183652321585782996045462131685592917283268344701953275865361460058777921708654943290567280773685702623430343642569164450663475497780132405838369272052904183077367909737150497745448980825549008526348670577882672668079628533617975280601470857438209627995600822823315041427337078997016827915801131348096000927837129950679679882253849320683986442858801043463783221801131307123125487458298349570578612126035436110186630965381945685249780705026916457378107112357072735634812874470562461772450953060653001246503618908479468631469260114657819770392155926266101714908621959128599539024218895754071133368201590531362925508290868129000506180139220145589918110438055009383891574227682119479802055776978530185935286632414562694823950045453891815302794139074862489334091597737371612038542459072278213182514884148254176694303028352501155427433003224278318912843908344331372466987353460127565066450403661909310665868835130232433319786078919353412935460382888857879173179420399672933196250167252828435976732846397572286122937957935086324233597596277127251961783198435368206616427864778290475269584940277141875674825392981388155333438761462943549552025431046584765075433988089004174654765260720141986358047007229640001916469840222527852721096004829124231623571399256627069766185069758199419156185261709999613948622942161348152117587131324987716447821653661416817933165976742051303124667170545637685505012885373109255087727941343042516625391314094019168918947108441555042573178020160200549224884108768465221394640704311255302536767533182956314219491700135112271382615643605235316809322018010838302019144841404130451774769810369299386067176150547914731662216402779241343277330834851099859650954820014832948895070934968955685182150000907459781204641361255425771486818110742152284676096719384994257845937357134495150207028601522091580911674643165133494368237616475388634545390473853398197060693402586717849762753971191731275228595317418656403302107639063161072080207756159312754718757309281870231778364788310148776442432262063401397440750783692491288066618023152609432034046401109440829828177637785455317981084924843931065942415959839743049430661204391802810965509428122870272596722820080945770232549062861565136326408932860882725704001453526663078663923516526268769711497977590689537447451642567780827361819219022007106888421945855910498282104650061364921819473713353183173682037449598838811405759764460522977272511672354595898498854979815259695823788285656544662143360661323981866895322498647282830481720698858235536191796186168736286530312607888744476741374454868749906129946445325900980339686093253561249436242239451449467365541378692690635517290106818083410215591248773295492308837191837052743449436845821532633184738871114736221578477373723643156136718787313802881763305921030734460513651921205314024583513115876931789866597662140586862527695004481469442026568718561668904859790081139628962747946448742663620951670153325195943425610772262615621977474631902193746393627028562137669917304571557076082368213600062776087577758959608851590350267991394543913289420415388477111791192700788876671656515716170501834912860971500533702325735641836997911314479739640741488829248975876437801030170969048548613226433606795836196895465387450768607274357688462339352275485881876381870443857489802831518429305826670169359376220064460511321791379546412461368635411425456823089672516766423222507817453374699114249846354771420219605191357035037654874948112302811147140369291862652254180975222672247984867607368642862747836735003173701153440080394251598631937136553786786476011046028153245812255921925998671136802668471779702965535241666390247159908963193074801254273787421036580067135514503142123651484192590084371010766112252483832318213020916043531942024054186438322987800485707489986637000652589956939684286882505035693725046216788678930951312035779530332799605335189172897698991335156421344327326143135056450305209379686901722670007046381890936455673004577365427810310341192740348383723004970321825255399451499512774092029850260630576298378316877236779180886184270815269693017326704273573509082628633949934665925141240557121739004605303099264991108752633435091772758364416867575910892601027429676365850491592145913048030197709416297528865745942482134059733833566990802923095348356455346944137286252070700242858338178115966105777465059542581659487210534544290729598886518866787832729779388709873897623173440771786203993173093826278585343621804907241702595129876156479547653090632735855743705036570936650848341488655837655310526287940226563790794161403124450143928540553779822746889718428919994293306712567140942372051915830935353048342837033086037348468492797231878394741580081330224297477513843003893045725995441991354761017750393922468501454666907948461332445904770465526566404366416198578867996111852953713233768200060468767785311111941768900691619335666744145701123864592601574216497288176093317341248177413559105511960793720236536834994328811746689104673968510176325709334404318878057203907570734217666585128439832314002527065404644952607214550267279181629731994056155015464849884375842344837937639115776646365589336436332775627997513839010031664397488404820141666038859230635032883583719817613774828106810722747363870235755206144810473344422377134493514006756511499738249227439005078459233729845746860428818127713715934527448241098885404695953878813372102052042898712984410887132069063098438092151385603864678552934004648759352265728079053961575467028968495788894917372614254583040493538415140765582269215656509681008457699209692536563305991064726738772563567216451335999174781593967492554648963792078633760364494476166805317877858013424848677104357229855400845292617522442322322037057176744917708008728615298590906979847905901610825391474922559188240125775631828624268526343927176732358913809685410317222346236883230514981281670211340000336386102707305170585716572692691318950141844511810456720134720118819017796747306535955736067841801748221572197882521777535678499308251003038133152684937322324948430487895067810385728966653300235973960125942845025361577638112370890373882465886509037156926897633083612466307713979032039189658725455674038870521801674190413525294656845033817523495117459264105781322404071021387655623583678060130351226901576991068087170221649917026758694566597897690923522402596390943701175290090393062727270100913885082125618259623836073790904949015425014274861164585271800147321591053024646701433620525982731534629455597803911349988824506283074707179196947024710159526668500448431780631855319998167057569474034658236897242402475417701678435645555515720788825972790076641446337966067226335919352612542550557716217459193431285046374441152649927779733425194327243337893785230525157416885994499629828131974950132645045309744145205250671027137647448594139060293672157255608790059605448608940766473439975777469610147465841090981712104306501310137573679198626551290661229660520598991602104894939612933732882837355615768127241533774132758647955472693394098652853938220871580441268396178225318500142741789846281503945805516455488223586159357226352180270984681244688031812045722673851570209462180035964087760064108154869084001842767590578557699606853301259677606142442609089011103058635670538084456602046948805213143971098847032479002912263780728347067414929135537193642684132508075871466085860234918577650060201293937331957391411745145262666939169174258182867890077133698380225482399446704819105014232957981169699244409881013434849886682970764440378062221904651206091758634045327004253837726272015879109453785546646792834060189263356871294252024617620812067330150693774679478309832314628581014767704706253646194000507143003471891092370965130538048118482425325520327082902847218595456907290351704476469995086049375061879038221422843950024694242880268583095199345899883176896784099288363481349251882524465086249819096401109193250291532476121682003447340230359809436502383382898183180878551636998428091497466580530947569456842922793613286217918067134171791926824296079277151580024223709814529350141101043083449863832566761542736106619652714830425254826029208238191046523769022226292341697627955365473409883976770393471404407413261470613934288248310471255979491094396470924785478773846297272528241407969153190058624132308046640279515084287345299302881672246865175329265565204268570056727859730924162250970210658298084516461132665132383857761265273218921073758944251425498247067436304539143227020806384828335264306622091345070555041269555226008057033390832133126953289666086112297757948181213093761349962687174002584272040738953432853207093604980325123495593704959782515514344810575723230929754889231643238935471898457078348114824164156974097935413460110171640303127880820285551522582997473441644107050769890176765685709376189363339374653605069809854895188915787899273937380082974631850277341849361595505383174894290998737450741991829200753866390722094512051190659299097289369613992584395173064355108325278696656429482826858058493084370968154992630607786567459618659820559808931441305171779050699189909444865220555974557838385181059564342605177574913471088859501953504794997753445376761110199060272971305833966700244486553357560583173133464986766133198137587049378142731533624316911021437856265405283443141544687014673509303327508767247476482324739551029589971158003462694641368192438629817073657901634259108746941165027286841322793469589887379136841131682689155203337205487342060177862571746003041940574878497791908086416474989875691827486954351464160429704747249881519743894368101181051004735265310569762921108657950738255708895231264254741955452257399600462212465174385629930802502679210014421642793980300435504766891806914890630121344312058461743719802140618979308460574564758904388680074249755514238533535375629620161002897744461213022607541745716574470604647755488513166810345320066003130236426668884160871232464186309336693920142315984573845431652170498599238466066308433535058155065084228045102488644049201648457307633200131296829555902517402299195679800177304372550899736537345132416805184517999792222701860272967642714632762233634226654115829367841524887497630910150915754594564257035319650080726298382526857873122278448355286132796807706383184673317505156740415390447114322627400928325499757249425496123426138848674701858743817225784905181941800248079233977519084916198290067352406186930444682413048226675777260859918831100030483515211907260102317437209600764867933227013712645574083682501900556833324896322393898349217881107657912952597144644413679811956435133998228796840409539068578133631089909458200850545305854205901608187131708758848606840474099006021465477258880675964081789904768860790650853982110670709693055036561110298554244852842195691784416668043301388133962074125415140488415538297261038743893208492876673027482938728967807793525928085890894760857384755656156338666502596339971351798783117036455187258906362968248278884715950955856038315233725559679320623592649492946591249139107081312895456449397755775902064706583094238328023976003954273527457640110999540682045702123492838532607710841446439108964994117106041209085206600634687255803641999726819800512606511331782152380265472942789594013211830303463677319684232631887716730394777682500232878601397952414816845721480207014672338295572869231383666741047931684825718551541365395599123599990234232014035435626290837104990410334453598085037442284613086327462445944729145611672739410449057900067147066365476638627257594214538350776406039937633662264213448079660764453031509975910710458627204923269282886623100415894477308010535030797432562247935240670716495820608639600273799069523064660402301249681645663502869953820384192743978181321184993802216581838092114346130306147483214133617476161882596074486769542529839453509557454657231048514446785512504196428444801915979667272583806613048129937663358441819747109565149310410703633880674047657056376885513392021465811540044871060991554724057876259716444700364957034385118368349190119842012290234103379814430626054632536011167309911533480599368161602079303374675673058354178467367816567413108308563795888850594235939069587634545106687815832840813993880482659730480316112323200399032785996459185051537198274190074278844203252643755484253416057124820464757307851567369097218096376844492618349387197525359301435947350271876245814511011747476320540726303756427288967696028893988178998599979010059380894431881007556276983056759336307670815145480628571332154165214634681566414447848862982160397548808496482229457679248486602756171810924103220000202763846739555368089229649619695476407344099950693888471541948716309494205061985075725920879283393598634683945731933957366523188582316280802227302566163401303646543512678631678809175624006330938277622488165928780662465470234294068461408840128944254973150836629170684327932618639617773884086871662939488800248624561481411127041808206982061329845692145388762585429536179949860056613519443984473048287654628727966167583862694655454032830524231942854965112601029264294848410088772875897891305896386626612905304640810891063798146564183387346425709702919613024156283212304949909433323089619660297960043000856413629182941193718579580550046173060905486477681969830622783595346228249477162276608517802687977197727652955878251285129740093136170418568575954030248725348760199655852645421990012672993606603239007001908392177024007750914396920141970068008759697987871551602065122887105470210202497022528383546503984516869894290828407925626138172528308728546288220042688532157245682746311443551890909038212119344850467122490050739277923814199306145094277928078507539755936731019496204792205469792276063748785368066000584445325397412717712000646462110043589358034029950754509587302138084551103431228213192123645156336699246131932646201989624640568365605838454706836805303045545373531736948074028366766479108720427649712487562328451755447842354177855865922068309285434340426057095550634742549148953353649233610636694565624089113036355189667986236920446261228140930174222352114049021886657809782394873599282810154619633912021581189981046470921551999668054786368868901581803910312985927394617915262821051771743044966442329330129091439618350207518628779116917509081984070702750683488521942633948905564028173788158728603078590300322929779835402769413210583704189337814407075229695721144922089249446367737818140848307140904605450923683623701936502859291527424388681662900449992003720663531550132013840705289535815589298863697481800227809965026172486184093497762365311491076026730624972322973981291192208811228286864993694697281189345662921159220484776916170316202974861010818758304701084821791013784977559576529072195262683779304296734641261246724625807314348122088876995154870546868641375647986784349693583026893367963034997925620227050748323483704094352408366405437066235472144973169925770619817583415034607545213979577960946740903660326820397943535753117085834962721580009415388739261889938234770782779053582248567000455990342660137101190906238258718092797075645429646460349634412094756900715210152464266818051895261260732279995309772702954846557528670546209739022255760448977113853563758104325295029279477959536348302270099077705666261333002461599853029805355388841494388333995986939047039434621415112782168378371665861258853026888027324408056530554877731268692355168366624034685307772450331168013055466800624660974419237737843785428148943619958369573571973412427869452274822013804176151360118775519909547281962596852615043741297645778920235340914528267226429560550136211793548080292558971885838412474554235656708392804165425030811800645978557000564811147050717270804269359708698792413630445507419397627322728542908532391318883742410289726947865310833580300270407357082251331579309783634043094860645769287661686208950717112430005543983309696673577460896734703284550368965664380805982157960413073749606911046952166637415912850019535589147012172258889536568503170143568799363791867628514384855721988265769812105485479739640730955399680172379956657889724145982512165312701017985268422109281938872038864565710873607626059925789245466194013616214234697638730540048636250771067168100329909127681499200751501427893106770607168352199884101049598432281875661749421479139541827643771325607518498069431159346914185580408184834893968087952383742693504212214999658480835099126148279096578652432523847295804530491919181417492268245537471542738535334325053209807586726540686036076354885668818967124625680039614789213674174306158415736196788433991229506690473191553924152306099604711583114937305789626473847577918693642327439861808166981836701849818620463190561682738583205258299508488853721132754281707990762665936130478285930068324145123669527202733925474011259736473657352802224118972842207160279496888795826550527642089981433349393963032375243032008468271899399689806276451557450876414326331849544595321405842752227346126704680047292764790212520650064392450303237181287957032539630334297606216885150096567120537079619006384924999313918530856871913313455017545898679571858375679511382291917119810807688807609355267937320701413187494901107182398720932277794254844033317269191128896278544662519076565071715093370732089844181518969662634734633577327040663615940891275527361276747261345025082823593020902015084189935742068200019307333611028927614329237152775571051965671679814232748514884629216993536391635934350899575650484086830840142557355540901283250266960756494537093030508769814968499117767923699611398300308350408991429229007782958019286597084243774134126108362876842024478211959910320912077933895183765431238833739748035279634281385568054044150226619776019792659450990124950717587346094701913916944804993034345121538963939213901924681328580333170569131810552730024895770255804879544580490106725034543099053406868121479870715753821558189272849334838560061092142361614967928282442010941089251794406539614074037817219090862327602531012663273678332532445079771640970102678758722887023207995856157358548472735179019168294493031476701702801799174903487209862592283574892739404925380761091574744823723410742342997645976896805727049264061665737446910754856160614723373944435419176258320784867878947796101725454606631834420519201961832971103609460803565483457192473671076664496993984150733183101292799762401248502630332987689151635077550979420424050100517992080618276289923116208111460969069884461494174550128869224958192894614464314337725441824175854442046761210897698172263047962173743351050901754787587645666125587884513016964420153277055209407566171148100200543631078383863160849434774170898616835981544398253611174828382641781506907529415259398043549026268114683718843912576532298830531866222376921128757148660796110452375390040882230150731104425017371600844573140883421256783908031830054955511897721390676546680830188795721963456104320987434855514890083358230219033728780721068337359233756953428472363942296145350376800745045475146544266037942159796616679807916050793355979727051019084716263973421134268216217186414989772193735295358315131717301425934367388421092395926523650269693947551403382307263160631998775761573977601272685358351759957760627615040540308933231622648358029688954948475056853201275448803970656432949303963442952112242262029811038030126218607003558555314560088248764020578438411354078625517316983612373621397387443753983832600871901775604991300519751942686668231072411456776928902696516813577286113858237744150785665939501060684578128335008515306694220278063045600838338938004189652621721665035256202936426277133094273809962591052969423384489372342316922607894744198339338134504989998991748344402167134794875835926596645026530571910166098170159281755694588144416008724051919455267836191701665194362585866593614325183519642880645405614607910818657512561767336276689628398515900876153015197914541231056818905280479073017176571088621924082341915282939339285761611596438818988401042190439432578208359562493169097433794317476262970715092517641432122127032073377102724882517591910855346923560923986928458536951680633350266362173017001010060967023099688164132641994573400737565259806295625213013332262083459107981711519778110887413136834521344181902558215079332471961946677653493154833346022570207034213234928836717114663598325135966704872485916073801365717283314937266207174494468598623625581680486944420462373567510753198517344600698756883676900430662889971317794636445722737565534623658768181729485251995398856673386745198185703554688120387590914175276197248354063316119656429434284882383538352413277372005702899353678152942492859370571144980383684908685937802500844589172220711821739512331081520862290621375469578003880408716476089024620204686886622327305575055472280387556135275124133122114583156486675107274957892297071556638909239222519848656600540219155363794108575485897345619364605514941028711620806522349691086596990472627634219122089504398313376820694505126040234395670509030058120542513297953819697702099529157347341161504446119994377883955461875700396634317319225289900234477918789373370696982532570322250601711731308551551794032845506586239457915680610097234089721759536802661559751006025673654043027251217272985986078196304777871528378163313110514672202052892736117796670155913967586407920406103662626128242193051222285787760238994266548281772007592617395840574657981872828832455302249678054550711324848639772818521814752378286818243101519062471737422629596203148682080698517503013400945949717375325269568483615033691211693552769156636237035042918129283063503588192133165755903528511467206241516895580735850619637667258843227185388065317919198434154143602246583466828369802155160056523708953132338586847981781114926176775372485417956015151713611688911943989579633172633439588622927211696026536948863260291934688894056970535095367126941632117907219391661525961767781773958482390529884249727002415859095200198752102673406500763298338650456162716037838028552041585265905292933794046983685257306812592177575448537542641111439935112743580995330122729156292549459272240691425103541607933793657792593770263242811649317538242749029786193760887986694944976308452801697559687587410340463480709413931961914608341466417594730809832394419031889219893152204692262966677281447834528839590394082682259487089182640042314905576703299744153853063766661987200153569848650911591170418457636024513897077322126491148553789204729865543258457254547503528227193539230393722900170608623065385748925015697052034271730640508516609548495603165106937901404036048024764863717714469740319124367904989127151283639771522354945397884790355959841423339416760193544222735576103719417202180555306219814493387432606182876740129900737410090695794941647887503774434841637438319977078726114055933866605148727079303857634193408186934550181751996453333419885257308403925276229011129770830543729757155986170134457173102402478576251268670931960672421819206453586896238246063434290048912222253398778944690861991342940433746523208971161887207433582246389413142856093665088897469192156007625255608264705195481069030774152859338900993059994149351387891867870238749756087705433426760526644570199600205531911087652743364448814351837053065229738274828753522532367323703883829962371319259909977883485358427310828455630776700259349723358467444225539538007304144488016500556083475832148331921867939085060161813386529963116323126668157782084384398502008429514353808913036907226137526561823417032075988723591685495323504669436138289105907634548797252483549651892674808248723935046888073447344896105332248841353012662453161108051243568037803155425731313810057017928655026202084549053615758573451336727473428577945437444411477965824014224674708913686254342335427668810178486293311766632547737522664707154786839629673347305090631929308634420691830059120390340258703316430178557444352416900384259582282802444186604966302627513718001059650666059030727167317343503795636256428932957772369510043389393784742112556873061395114957863250582935261758738361847779183677793829098299463685759780848232106096177802445842507193780943924285813864416430725061312170732362198969055582081476009782924559011331851781068514536077595002948244165063337820987461448820586219327814972663879479216019180629312287614287575558660592788531389560514050505220748931366904297565161336244972265899855914624021491522673280524602842155859181866747105315073684013559317455923230953697447397276617287244233155212223643770942738389671933655599971533126470237459618541804213140087870692925481624107521363886214999921635294963206956639232856755275006356411739245928739450760861283735065073647159615242264137238624226430385924821137863747557389001907498766634860138780705099915232765445939212628407414503272603625456982547399425668511335109654687247969486837045274045895715155731623417768647851143922605040375715169625021143971445168628082473889092646496882135175774053744894602814037451478653074466944881378097642746351980996922332104284548145063168621531673361674757074187605597256684930721213476552989552864271940805194975861670783779507501256242059327023736538331967664215353126173820933112921289786903490421542421809990168278629973892536451661012697263570790896174128709536193322467857036304187106608838896165005625411563838166581444507101003360106770394375246337304280893712503051788371223764712625381080584172771225458022541994684426215842706964765156781484980393326985719164258095772122898049885651448632469169353346247951265121516524078070290847791554841038681962147728791768508865421992848602148087653416138511586936887620813590343142674931625475051712603527265808658126352393376944247050267585991764430397844470077066394070159436641601338972956753866213700463514406640436252695775313121394762957490596610457435094114325842322748136500291350396779222561277411605638191841652305304681799717892513844984984665221680970523036511792349675496817846603487043434842391270098033554670787714683698545004157766213949771459570160504662145353740723754053983910688852864778808585059439076569271695193676264073835724669305754186729534147281819960926607470134776426628827466174135016850264101170169025773401731039540876927687885723031057411437822242147310033522841204293823213417757202662021898569896339308130886210908204129623932381620376381540203496706842610362850190745014497529318672316818698997884399928837114284213771542188356181463328427114049940721213206089293276385013882706281210622960003157863583896997694456179974333126407006443157391085693974068933820258206495861336527469780587004423510036731130487841474996607430157579054760959848008288397659829987623577212573530802181095371257976339241597577591264510592448993549116454922594585665990669078927027675644909611776871304573291379385111206085612876304563727996828327103263622947228153251641695823090099446054940784278224994966528258472819863261068442731841102441128715160949189793808222032512423126153971693902103545845467150213685260183823101026127678341536820807275700333081963697837184155492713139484227579521049890318924579411607706512904865888437891890157394254794193342339612773369469565907726379514273425071457881869268457842773516244271169850612793411241931483837029874214623395562460683089407604074302579480355002525148623692439562837455907544024552744258741712200535484659768458317274056857421168038533465327918779440960629348695871796387966570251553454461506766524999004673416185984258660638362433834504159061882593916676776276800175121600861264150789725526738078029699517573025915104405206416930662149102526910119376816580523166126984283466301512576874034601314018631124006670121661423006153524519212757943156555171588775379190932592892551370190775524644038941745575508242865587230072705731827309582921896566826866206672728586141790205329028034423961236728208176480591207454263026519058431865267168706509093315463193380034645313844868545405501163193475516061126303398561549380605528226518875904745230911230432836507950337688061338428060270103256888226440581845886199086450807013599735927689464606410627585697803533467861774056929175706453446567171655664543873682474746913943892764474524372647140328886689157091080311229210168995454449070170840344739270196340883642930501748944014391969468654448125826448580432966099299385844009970260344683035324035256787731281154324628372048674207689758530294036825302891011265199993819507817001586297906715173808527399315194798071084688157989728712640477805981552369391599090090478004692197784319955865987449810322391055468829394869521804118358705435076239439495626766477932565250175873621872927128550841906397390411630414242700356599317904408693349959512556770940954140976383662062231324637817990521232413134312199496855874176125927673347542054901557630218215157086498608366137606348521582061231370081018467687541243557396151696312793602644071454220165843077381365599947865577031644955687628934764068747372957370636402507057205780757270366254123367049672560771207971327248113403586095547338000004783363837804714139075635920448761784617993382445060483453228920170620016453504971061958228695085837950704511942735537323689392751319453990311043402046282702585770901589918464566599676040105660407906372664527689770627603929695018139138984886677820017686878073489763894947061752970936657426716141744288119290209677746294368856724827958450683745342641917684508452890484689569365991281396486654787286679551565231330489939477965512165380261990206733418635804195299511829653915048097277330489193580953296098265511613333960727018785616919048902645046107170182718514869314023997895125136116848040807958414051547003083287259751531555503578865868463565409598907230355847258446129025719501775206785701064284663591267543066610100765184471094880645235068866020103316000578197826308245463369699328109234578319848515060364450432635809344746985280312201933488959559960662969423855016716683393950881276607126768594958615951754461023372591663908642094686111076117692771815668499047134668398560409893299447760781936284394405360431372522111820226547194429575740646784239278443109613265082721893649106225198456419426254499744817177957691417739712748697107773640437066902090709635762931456340088527263555217330484081170053331302973922502163523258588352783884203144810713570069894957254615314740967483787134866452576603377492726463337285574535308258377664591733463870887157512331258837131953178806198235893147289458856567535536304252514294903957547425388554515202286973542947989158661241523271498264849191811735537395984038920885316443739923878106106402405405755094984463091926441816459412264140528067019870218349655018511677602295566110799597027706544071020921425579749022892718407301530035318927882367866414403783775730348908559187184854309999049020107010030608301743612883109423437441913034360948196791079316781059954645001707946298160432815553021585702952387351328397572039343026347045705323869963683607752007860006127909299674971004335281931900881116249764907647770279539530920002124425526624448561601875222031295428991599033549617056689940046945522169357303445969866307570257784055812176823290620789103213983159556851615693951032839046261356534447403888232894344881880621684841237982526721019478947492803266808213270332876829074279153347216752260760155504949508172168432327079164135885094512557716066231601136912845157789763440102183168247224245198490252752557001958961197212823299945593525061576568925889559700916692970454542658556072613030274817728078566762735735875240318837406168760036636904123787932918923834806613845210293631787494906285576957466509087924907403890304450781054784309462992637609031866172553758661018038920506849164836228968960728697229559379951337715090361666542306308089821960421799320095362126461888072631871771904968464920000327886012429103385377278211567502575080435510531451934183978499309249426532874077146909458184297843277558437526071641139552315058169693462532383021406636608710653053116353540799676340516633698021210893541843338561077264669042699424630034527236893644381010108960288902756679694895312328567790385776319457161309464597804158688335175111711344936928366357782572158331379959524430199199967357442013199765842191946439806414123674877748549813026904585921485695086498102155612131655487617250916010645459561662090488013939059954463901619528375309699457580024059977399504506190984245452070738563517560282457675576298626364154787607974253098380519157833082398628885781370779403939876592278586436101231145897973445750395305822459124591066600477094412277240838589596416788707562043755099633149341015248145772861995048889952271151440018983918417067342194807593290411123820947067804559921145178766379371142661405392592386319835683561988161296959910755252063640050198133542841668678615547589362835225710474983799986241678286601938996946572547383152305735315236841209437164273048834689354445435920704217872233223847146572602369970699337171246503947194672667318896093644067034600687105869778168868704441373622600811805877129533085010161267195717953730789700126040398149836759018570118439037551531122153245232214849017403082806506817615987360924159499497703225118193933963990039161721569432427986482641890379734246740643359109910849216502376858452344428720452995655835624013973843850896791801327983941433297860677086052499609869540283053639645686040194727113055232680359497873568919574385839522943965416600694665972427601547884950610966263735872111414895622546236152813709730341212206078134653691106674490044347217255007977073358880297510909261462025829663630098718245717422552878650469962714547323375108290516726398355606673777682877259347041537268483954835983301025811451027017859184769107102437123784260411994472562352088908592716189939247945883318673193888647634633982046947945732700399073711592659529481210925305863532446916456643519722379484877589641502578407258259498196574672067071668123966547935037221955433388173170636263211082235047604204725030725064489453026355628887758515261694531735586631030590360949866808477990547111151286164139463101794952460299934360496907387048954928813981793060313288735528879804823948507639782232490254697825459854398822448935194535698172662361883459329494341237542168773864258297401130365780089575078784282204892328138386316353006621702776176171196084801026401299761498172467579210391636941734977613548022485339925671032353923846638387953774628667329862858047244742528330372071232298352624942731840993157877355840617318758007337384964564129013686732809693427024261587217291688313054581168209888511871312161978351889941582329131353165985886124966226835280826932371912421384781335137840573411173317486970753829435734066646609570945693654977510034043393905486287347934228383920035245269224673479604135939945286088174958269677495983062881650539609300576097263912691274416432014537433975270015171566434765589997811189285349531763290457667361270352571086017604644224748838461153024114251336857449294790565245248955543986779604363078556060083673297677556159259676962643640897130505521639007760726775556149011822860185369873431581230685090759389370631094207070233219812272467002119330006605474366509077853980071561119528875848363637449395374072397084136579383614211701682351275156762994280697156062925512236417909093538551733648509644312775870465855669728616525937938132194330941199046538242458541819137738253038834360607795681579488524507426199304855317649976335263886527646311154255247857267048561644757572476553660871272762348689903194775369327905727254052344423049485745455572036260242756525429272680274989825189839332405187753328375131349954182099688330818298600089515931928873507735989474485010311751727239420372951379361312908363844653852985255640446856495232595325102910879022462898536582119933985439532263769088846899027060007466300381676936522208065779626249334688938421536105022607504425313968917593528877825814454828204064800817843941195230417511626236355921198051416011338544279804169464572846897798862244819886355935692957526785517760593986928585510352071589625836707052663433203056636789855012865616057759035569566730158767085710655761795752422439737605195199319532046264390191348399651408425768729862298667555346073427780237636710026792767666389069931731796966235411127338451013843122990048393053948440311427761036221435238681776298174887571043815183632430058242107372500376513366117378986617979139480059143783420229166577116426525237904165199467759828112598811940126939673119735742618419238678068290008753145338730939586836882317559677195660656599442230070356686569235777696010313563004684161134735991162808570739923588500752017505066106197675494490871522378494478092429517930516351924254572545540317724242799961622117163269504182400351709969818973046611461177236112256614581596275330509933588024546864823623128354907722752489674129350094778595703176244199465762836170476243280765981648309592748389011256617620415010473913879368632875470185566984545882522953945967007761099290298627101449825155439540773563179878483547086417160791838227386546664231820219336438306428321444474176748047269120695177897835777498216550179931324867422828612150180209780226180994143804110622262397652696678344719063797833278551755098416370481258960788927747521006681794368281460962824066654433831267615053393141892843661390203864554592730520468845098150462549424510823330895815557196269406254839768181138406495956106481317152741743908129013103577933753209792349426103960500085134070862993573941560975144501828578297699742045938561371197932404404604713092471345376653178885209353407413312863953631744422629986159563034938123186510029744922301600440299803732359217864822552449054585128512703492908105271613780310931437243662865699745397991107901800600340800735651908835544213298025298820885464148093070692095353606921108908278998791576751139544799871939723713604356770358419148860044970044995553910605380788856452384113327480081836344669909811032835753994990805273264956840610792985866283845037603975519770508317259645441499301998239371670898337955739164058264950138363481763223307012106148649341063910890918650632898762216381310172261307198763987469864412831201800371115262757657421932261938353162282835966712390613396379949293106107379347040847575240698320910706435293019351519075344164354463269805129441664517530025960853907842578062598975338766789231367797469252694027096047327196498656336073542894864349327554915609232886136706971508117813908639719336263481220619791407385770136448965328228667853137369378290679014101772377782729239222899144617394008274706914905113521526766880742937094942115189955993325451221768144385922770398576952005136935995500758482911829828846173913154872344953058065991349541061246948423732772858988522433160854020311487830445350794074853688313315483816767786137816779631906599750385324135782255792926686569228746368921902654545864449918128589771436463637103590779823929063016538953806243679843957840835232588202778149460873781371522086489064289022962879071008556779357794703677509695423315026023430140703363958335764573494917937231181698049314476459193795483366247230735042736897310025005656445227683094253120171118674815584058506701511459390929556980114254694812888485362455044755770681250207796207180057393327301373358995990898499569482090507498138721558888610045777430809719873954619125060059188866945260763677324085985334971093821547134918845935132715033756577460194091448800425692322577575424654222751476479630737483736679091451185359714822254734310852547247161283064939010746608469645904494056142250817313192015706667878340261636840657057525547162851060586728114163818468878476627800875316934770027677884148938780561734045401795365531048698466459502860371163321913067635286151340861594676165045471447903703563144273090578518055017466684600472083690519500196592151331202127732021937901283538566356298312276803156289629959394405867948038212016333893755540384470521106589043592931366478061422400871376711379058627317640574152743389002950103733557325924635147526883703914748758765744595250399019609855893266546911710054205805448897779950073413855475862649929349393477659729862391979197400402550393095913423945156519550573755126977689355907428926861749286222964480364888090635143208562394151095385193782593182755740523214481867410349830099117087595766837748432586406614918681425250754076304080849990473503896055748989212602920066360530255161070136369540699022078847712221097017875158738322697510869340484482984538875186899408552051186578951181221122782683351987655157663650991719062867551385493493280072185584793145877503990686509931921529125690513427657609446092121267994895275195699112660012985250859263313062029615272100096254950253751102534592271854321025001414654559316306517604360095495016909534628868731455899564627973040619827698330167280218707513067581947171294375221055130714556050956465455788788109973371822914828961567514770494210800713603142907823430639949255382638187264875274289135398366415631554391306221211579949438692584371145406120201061857551845827838031537456891538444357033963567002926655265939935712908058379633005999076744715227209781728503310302967399235066936197647825138531586795974577726928925516342718410526980283752060859449059180019082964490284186977245504009782044822088903792965243522280403654472843991646072322640375505521429077575447752561443574277336316134924960043148974992968666643335585928427059008636616376634659953536824310486774513407506971265928860163670262632988289123899151615562608867747046694984870800463530351020127300228625772250377674035650047175251167182765492387185223268711437232150276616414709431411984209376751481539440330552650777416624922245797814635084471278528784351706672063076866747234668300552795294334990813374645202878691980962195269864307756148159887202623800376316540631255065236037373316244052518403628814955543369170414197169091193416639547633863782856528118206822771819044594898770214491669708659384278867276043262150848025055162327501306563774995106838930024763335071570383767799493869098975601333104645673430396682962371230395307565736097382756253634861890526330375495880086285300243407925826619748703516907871278066846918063574389486349487539116360724354048790416221663653928114539387461292544661651869513909744736906515103576621174955745824646641734253290865745493890526015196974238139461127159616797334546953239269903012477834915300026751925405396564878405953462245096776036101753093315217639139426134055393759625059985645283153377512716874378168722434431659422484518160191015197688409027922363620358184194342597319707678637475545340737160974667068036933836650379083907235842278954237870409414634771834968536078336510510122249385123794012346248704414089323181760323200270957685253111833479382152545047423149017051382271893168336197585681194561378767697334524815954420297177736546639478227031871541821257662866298338492786520249370273163615280053276531118563745445050419228709930525603593773498429658969009414821123927293924928695140152557957827125821354569757757636988574482096487113633255098495294489203038764071379727878060383448685625820549541180865009232292567287578531796580430375927980092474652151458812551340932291157359618100137425101988994393985264782574912066665457176189100915365066023097774456605495564103498155671339360864468945596753016675037843405322900690946528111475976128726347213930949812018914753013232304960696997309515221033966175759434706388468933833461081242316703166507649058301114643778153825621793574932760819058736751949834851123792446683445970891315652819264947336242470660548732977057897255069165987151022289638761099604467355787976127821984796326019484303864479345958151239955914013652585546027187161075091871999282458915551550043048607716602007741491534806426971310782628263691204116724289904680247676550977879404784233650837663784971751114354355101000466983789016292912664268830792652387796791148175527619251221273663033282920402664059292861922292077912255952378573121230633896452642173516668721057265477419781234418751519078642973976844942002189250933075997516005751343730224796316463561393840733087496445184084308122746350650595251249272705776232628284900269395216049972898748527735730922048005365243870729814975970688362207903878428017015131672985375073861501391574989927454196021698016808420446524813444331541211157704293148004621393544375246622234143895225404958977687983445455905611466621721971160531885910111491784230383568752679335407929474347960815464950526670649950536361133939361339644646498238619302712854132228418520157547232384562609385302584494266219107996720014307360882084109799597398177988170555618792741387129100723448581218357192028514315653015206250049367856063938557456655143913102701344149293047128411682907091752411531255761925619857104783056039289722392571265078241042546208588128646132561176796534753697702412320156355741494746361698268605571850142752470980160808912365253088497214863145597076209680990087467838081926126658356466958167998549725757860028352894377995372525501043242197536388160494085178362450450266122389237951933379426059361458287076043837422665327733391277110979579972483772148214017476731667828332855015351229943637191602622545020164131076834791974348659653790303531895057169887776925278796329755025152069419266203563785659870586666236088131639653434342222566538258329358918654261567305722718093053221020433191404946345359145261398770626620466224709431242636903363775831957793338000764187765710481694403661508293268956516555745323568181978890288933823036142468392897825525576288853569158678241070097401177198520248189343442417174765699447123041692924549694339984656709089559089843042070168531173567294455733802780542141145937645179992227365462847263149227678609697174061090114366390791509135331544208481108236424580416298198476461883620467664453458850657017501403060336507752554653005639815321300651829532513955158578427992160751325687206661386962463435104136542927538801330090487028971644816640449051286767580682445363152301845943910560402392445275577097723260681002142333039004159325680268538489523871325935083145592524340181339385099301863302140333148661026549060601031653305879962880619995181603100962220774204177319819658585962124902679397274222749432343666156291137406759742339665721158399936737792453036164306039646956028723081528704859471584478614511850883206803985174686421857067955074933838974699509001421648670838329479410424582657525412789648949964217911091359052036726709930602481991253326192269921787278357714083764106829153915116865530165540047822527176572742915406430802197999932051357459607821748369939492728659008080880256043462417316543839214914989238061636364001582663551268866981352607109411902359529241614846968761346855838446134981140623866924830973855952990232041977954663063725741902067827691213093035914555663445396480066093947380895555223062317136530913781070810602233908323848354023937119305771164179542607478849354181689283194451076650332548177114412695728203910709121957528302142461311994019270154897296037969980624447123126097957003584422297143099061636606186244915939692265541562914638307956823752019863476763931015952585013312011831718806671418935662066492281562444140455154275732796020864083980241440325050458282862499470636603670570961413892509382557107505016646977224641150237559270767708119302587271851412205025718950740471344085724759457812596677276365334908819341241582491313246525130392350116226790723775064678780771372815122971845905370971912353172667865617088385285682355826159200040428439468010984306968322678362990438572468957862310721996360905651116203231668485171551867856942740380553877096635140217318516436439683318394809471235194481580761289703868354665022396899527052864084007566823992408960676163709002246059193084888664753866636515635733533819121089001405440381149367450901681457219423290006395368805186198100119713232159217805366238030596313148043600289559544515286381344149140842823375881663484046795341724715845351085730863089059887635637766538305269694551793106401160617353503471324267185314561385392660327287288361344916506545227081115501340152211647431375649069546037486377803417526386871537976534965134850362871015399390941819105608892512492995752215009154741208462269716903865289555365414513511953605886945959291460411306720999077049472684516952113035584190541775477037757031937456917533236721103034536326552744976884877336450510525828926065592219343241361688932460340882502293168210822633007876695794397238175275088050107177937817523653684300156067296658378266004467035101582623975147859715304449432769095635306184780740403178800296609970097587275160757409331508930527301043928312360215550532370786518102570908462957746746811962531245908475287178299656738299989964368687862584651403581750495883269092263541532965738553847242121323601583067486889949744490998774044358585325171607195518198569857576361608507506651982366321996314692796641912075425424839517273049349389343813123717354202791062457532370388321779557894537170304485008653088260560043097625581117503995130717793279164238949552982653847522079355960932126132479242996489175152287557637934641909752944256960966698222466214693817611244535189031272555045456454873208070760035723069852843702815152531019773083866252043117048540477088542818609098048815074748464743742941088233885752673272265617553194947533542636182709142392406038267140629868015713264361828139984522203232246462257795463838011937199487368302702681497631256960477163945156332627585687079918239072312519361571921362642182801368415797456558375535671355064143062095564356005398270922675569740033983465746550103135590690448111893727253430105151513841311873844374977251193032166313119895548506327595213710126627453314201959561676983737787197047543368523582440904991526996678609096541377918252059574176939353612539809486607896907775983958572049190749332890242256071138251793144987688603770460879971686510129872872063333097274484087239851929394683640087049028461783419650374900438813087266522442867867232128029804415139084994801327977114048966804654903123446835298205588325253033164178277067176769090068513681671934791307602074987298480609557312404743796655172814524492978610231274587530706112975243900439319812170098618921547681146903996493478244584575604404748453942936935422490552567183401985000395364455108015360597169510559239401459404633086919190416784976955456744014931602131585179566262020604030292418757138814267735868237221464024201583304995351962846217190438451346013336041195457794812565672756763738212110470347766079445153326668428354576424787319176606393106835392302718819252694677748805595825342270650970718615707290773941568459844262934294388693778011775441748876455789763540880785077807885084441036944973514853672921687892349161036674739889837738754943137186615107161192219599594519275049340391719607100768318149618654501473627472941340197632604744840999757149939222181702411878451781852340453995453493305414732393881197344919466034809102264768298078091260291135098020401929410949349241826127564741733852668225688723307362098636441064462221172022107447324733575922227688580638247348399158245478924071132656375098285105186171030002714869599512030786316423133028454313946670180095177556404347465676530077825414927434890494418104328595747542034818778990725255939241906402248420143908197578967547306557774939892245420953370644234245034897476766946316528754714666954442119250682925685674582580408746743860838839926432883577476064802597938974504054698789343294589828434865278138387434793853149815270125978660450178836767076288686349137558579379284367288319215869511043559041656727954293121823437365289920155187176941376722993832720787719708052347861644595690034885307315955264506872634834235868029379954700370151075533577966368831475137141169301253098001622384436020478064136305386936590773012854478550250761800377360921958565010717160286594520071499336368542299223530050801380620335554620996233177296115884572362497527665238648146984513642038585741813183881615992481266121343831222864855323057382236573301361460938604152192543062762891922366221737704381977739059531229349716889130451986430321598428015383843625333854086944838573034508508266858730949867190002808566178782369538290508121599802218151271292037029582719944765975866847728473271244264064193310274719153355347407549386043160724939358688302354609564174798845852173568135998998079668224450876246936264376519933753103747999788166896132934687049655369927581390213520881415165735266247768362467812759458099432062133978738985193818481643297022636776994030977523223587311000045754331076694928693038739450829239625627069859311482893037624481766151299333513295950118310112481529475045063005374418669393696860719452792559469064653339300768060999975687002228904572639814788889377295782688327517584665541466530244095759870353780445469070841148597715147629375944341538929100944356063518241139456580815650770367017305447542036263550285112870263283365103235511050102113661402160893845719971303552018598890974509565832757088610974563957039290496947831096171247642107636247313730999934427877944197013276649379450364206510786120717284895773101534799822906120159107411726592471028840845105689746024612713923504609146243143843613407093882280951921803457653776309301664656700826325803190779425511871218110404648211865864456796321333746828714776717182470832685178819991511902526946412981844014263622791391990799811845266720034024562872620784203066063076821712446381578003663565899765751591802804504497407807991407359662551229043243103517702481152043742309504064021453741016817876081639692586535926465008161205925938588282750406238736394564388975810477444100621384148675246099216026841485894288709642277907630034732847137303341637280044912319197430413363411417696035360226541206636531858953704418216881703996613923799054603584832767835436108802999804323437753511474011709409263757733476304447790420684370190009568443050270127400710092365989551273313443296109238492212820353675273358718265305891943725380808198693557319784280280886377988903592796030134064904226191813313187839815526421801386221651007594801768441567171513304977347823525276649435258203077438682507856543149978702407227757403351845965136663860124398611241836506070032130923675851504814816577386268329315835239599165155534035431558295375908296874704768436454514884342979100363336359953198931927482372590113340496073979672859397245080562397831639535044449527485321117857384578945945238743927895981380204320014593097667674227573859650703889388661834768223854040022394029770594861328994275131151315929744925572787715617811633630698425503088879270391106877726996476912235680284093089418071485441721488325495994098255167988907031230999397456209840937951851798495032971229484045832432394260847392383650288610945968588022814942064569990460035418071063757819746316952163232139294705382877428099325506639621378294233190705474838437858647481418113888925876995556332736342127043686199944293610823309508112792419092968288509137412345706358611819318878285917242139820975478915229103128995240417347663924817849037927322342448275129267583087986046515630991781317793394459725168545124820380671052774739026693887738333499983534698391083497567134026078430879749136535146221901459884472429894210642585452234951587486636296175062176320924031242865897022219697862352418101008966878951233876403635077389025343923336444746327219263359107368010815791527770234514678527332961577551261441214567634665579355563864596146385336290593382751250251701365302427373617519601355918495163989060638559216202292721704650066017380632706890089943706819840104395501017264873416012404563094773162102840105996339522570951423873825550887595472942939805048219194748574818589559346325565780413723129365986899662431809105515331162168824676570808265276261303562297960341654755978230038299132346347768534841632733822945368012626332320177772030201541851494323058303590389600178641207736638003921792403555863031265429945536539864138930509538595251816518755515094725846469779669739271831350845634553015364654701816158738578055856446658987420489675988121015205435847636634316473882692894248443341792522795682613798156480229984519815410211160136810123122906252539356932182084607918513385363476780347098491681827933768621339268807902272916744986136498728408442031531659999898651574198232778034777965182562296730053173036410771056905532479608115707525372065581620290200106703626257300587379559033150042120256672283144902742275968424159338195144344615526440008805502014059466795196635438068250611254590337834657731975560038143209925285214072639594532033184786215912385273442661256472176226543534380207787239256323750369323775020318645810004867340041064504155435552858137969398311508798155264495701730964014917158723340143009063873536350113212207853757127304233021079750333265751863213277847260359047688656833265554576597983058323700180606511211836075595463942635970820701748461639766864083399442273386141834461593719385353822380569331013266920434384327957248691615508097505177956438708161936356987810115562598543458055117887620986798788894737182743720428014934998642042282166190072895166182762760905111062970371758432384098399891677344675148203793497186828283213012288965081983635003960790105197316037923288410031321833470214639930955927281149543555985029318021173800794179915350369868305640908450373346655402393824349127601047099361092610171637405412877300950229423323485885216635274416091300562852430323902030616439311188899650481900929721865888106150643017079818151294912375813681096685805075841942522146866865134830451346909113095672535221143962580622134462656325980439817597352950833867853914615390918463369951075906779479399933509732898911969096818756885042282501423877377368967859625672721315586942547679440131275142124538642247608795726581505384533567679223103045629501254960304134720580985172013485494454750993277264720803662969337347745433287403250764882335842756898171430477939283011847335023321455743136106830718826461271195685823021555990949682053716511584185146247710817226139486137776870389688461187527289134372312144975033560447474004017071084558057005587392218979255632419142284266579233110783169601966168171248272201842847209959177803767954520581516037653580251605250550553724314607197647710768856776542067125288844851002532759479195106844559637491818612143443807639439293281674372657275894784063583832562162671523059275419076060146086240860933941471950134778163643151845512777884040897521739336522122559318618600563424024381206501433629581803002350288183318053089766220391363041936020084368599667524817073016151287873239800493021681321445864044273114710885225553301652995293413531519745430596420655485108743958268104589849136298058652139956785631966964178418336828145473031703470045638659990535984083638812000576708442121568628352862650370514671119085448968753770369729776803954409186224909977709484936500420182643865594218439233148879157447761504841704776873526803153716546891785397714249902204447488407377814435933806280032294317572324655115282915247216460098868843343309606615543787335829500601184600136987083785607264840496606194962862626949291019209284824842201581562553096245235378987620994306275121451411583240907405755629071932380859035654888160393387730974044461102959835892595446345763127545498955838865911198948042069110753120002262278267958300894990335081505990041587681153923398936303140339999500904449223766870212153323191321727208848760268420488591083253033404766203041368146759444638110173418189007877600464979183651410576164752969363071495320153255695338007328423241317937659770387858533996658786113378397441029562813959693073236226765602854724202163979783296315302721795736433841046221103971560751378390470056089836107124641899877005865166276273320925674595563024887347854986883931881628660111938087042445277466880924193823127042036024504455735081444159904485937684946981621653065215796077174850373368942480019487488962799918628341994084965031188637106557282194159401609207728306918116505705698936412753072117753280569818688589467061319758674040177698991756043797003125725268500177463372337954724574960869175524162305521344568695967941920071821670712306558794210123393448131914055801959820319963415175464632312626161989166349754499431666020458137856588393479791314423638799162016238336980241632563006236655210217387745810703733737150805205118835339218236841780992294103066689084112170531528669353595427822674130325499196010991730725536094686881594207507901773788329170001987137235397541057221395592417139806859630823033431431090254968470324943143635346910248858440273367134907053284662877645540158041500824857481806656288104560294524570180645417607600992628662424515154956327329910518419572680250044476560970499802271516407186149840573452797748868249245288209222994424316769835382949673465839783428630280297267589153189061637806553549205284549986733950517243304238403892170608214575062654384639415886154713189815355147360465254584453764412769519165875979589109747045383308690422329638511759272760246765108818708176603315857618016218464562272397732548726327373925817533053221218156927368003493853278799830612718113771240200851001850686362911638772957573705879216299195202959743567885740308232494551886176259924050992914456452473246484834065888831189649005478688244147711250551361515367054260338596999196171664165557588506376493751599706557646491299000762248575640206794245456493800962196306447392539021582742227158782610515052079580111894987354766816830638202120220748880504505855153504794958730870562690861351064222097815845003456920136998316307441932800550666227907174473976065135524359776748967834402737026570457227953467740193698885367407473706628377060389057523783423739593042824522347490355356278015303590441050460202273109951516035313950019028565903039387181015444236734809075530571652577408229240940098408196212905632304266386384653881880251144573466101353594891378893290911892008413918430170934826158441312247951133065838995247972330629768822205048390069203033686839564012926293700417767619718069302377213878174060169912608993528165254521030998800093478445974281717631120264857550163279546309133668846643598623511080202554344015862751211764917711993945435475884966349685842972110014233644967462671670700284835425978508881104104629385748110717971217562422941918294638787370106534735539027618945487413398156909898644575915785966288059850496998318869668515858635189544950059196578785526930300845868596325042094653492775635333251794714962740872891956630156854403385323013233028509927617548337971046325507944112063887504354265029231728105947352116819747487585024633532636513234296218092774407519987442460142985952329690547223536546693658278479134130389940212102616583440165538225357505790142099293933611104289806511364596819491578419305035091742464403145426551768784092430784914749861291413566932984173905432457550490580930238514934081754704630664184748868349272404774919547067955764533459738858532343057214091255984758162878748961070092909529496459344311939410525072650365700376181775629975470554017781260791695528654722846854530627462810505214318109962834776405902917272184846736494038004927349792432030703188672456518525562399862825814993692724934860068817226426272808867749036403790903374332381018231860250009634700802114191196289963694306146056259527972714810082076803300900717851631640599861967213605539234684936777987943248863842274711386546048093869089998091688242627358926323313521355004021689955910820187955963589552724932627866257944579696488282498335979987274239838615057775468891975898782161381584229775726204092897285395419147185428136807972602473942664182145320966395299940394647413823560069599902713960450793684872632853943492429347264907713137215999924240207787203335076495481034015608955626207357606369959638671529219368454044400653792349708017994208810667889736838087112680170841739690428884526445740178044096479758792316521990187126708192178908908451754545272063539150423458313271387189974729681573459075288887400269674020011588908688778979015359571088226778022905003557643259709398716286081388717035422737190896789607389497565227800654826198582893369672265943947546802493001850084469645367269954327984330371031075295111466192809769843684314917383194602438927985525424982817860556635854672332446451934329220275051056918409197034016320750805020356595172457944825073809692701962121587479938094307484860152609447601022383005315053982672767109723905541767298836461603775454129827373040870194234952313796174361628890835812752054086707010434080240169050873204464115941467049604699452742447863661212032489310539737867200855840885601408885924140236478687040548226629022696888496510572214855148529178614718109703731179824304176981150459179035996472946762773968195941301147229324524604717380751197282751974770186283931417848320670238384866445611029345117931453968886206687968829870265535571745995657380394368758768507865503677017524518788790187518427939598115597756171336213196658404012871827620268811767069744619505403114851090792269960892745477901811671941357594182189303897755819776058039156537579915292059109948508610186741931997558229337808398513730167840452778940217094919540573869157615024312220684137078986764290194276689109873752796583922430969044483113212887388381731262901486642671077230969853127115727967450289083421449212683285239901541761824608963820884301436866256603812482041962176202361956926404173740347803333071806272741857733852256328800509061487179784120369506194257151139734447319087673699832483133292384732708069557758724358436219872044693087053629564368880970186842805519262732500966895491623849135370302585865562559136326417655142143430624063566964137901622028552559326903781859292423352130014637377620166379341856609020642287717052585682799386547977049279269999757215983093153922594643564449413289356143963905031676265586683984274903914231627730199595441523260122467539901834468590068964573679810949079953940287724258317807153549961403400459351171322054336492202992775003391705386734442834692495202991944361629494501393636886025028811098034673639711712907751843782109591345176312688203640653194799885413776486756794280098201253340224110987548386842111601159399147660839725803008950604042640422787023546574156007732826966754144678065840458996052475096988174573712527089022078245389823248608067613550455252475724306064227910736498903270781823944369965433982910106846340793711274749058304872361964264403305183476195028775332134370165487751649411472460342112861997911140144607852035892056328331404971367803872506322387965533912047482925539303503515220944605975204598294928483252636417252081090319934854089593244777726857606890738575277998440950696834416949990869893583771240226902577257694802336769062403635217026265679207631293531490311851862614200270161431981763885392804517178071705601420555818373662085009007236172435278521895723903385841341337212654184019778751217389146877259814073574182756474212707393827971249302805062236446461123308879140153688094846674678830930383426029964644529386890152151313857425262198997765582615898289686764635784198911697630607925753235700030916509368014249289063378311157537179071207982605438775981910956971510502875383727474194713288592810301981821017744516172387102281791281404176069520997527304325675456126941835671426269101243339935440280746897031439943849796988304453061423617194610841278798711111848546359831296445319798990936082668241485451725626837801488730498412238914372731904594661197397408683313439278135157277529040195441662921561086327148256283567001705578358626266336913730004555323830103283995233589248780085882513016157858419321337004741908008849190912654474368881706307834601194211655174409840061877249723878179712265318661444199288969410829739346979215175663709041649283072144000883620038750684490125921385555362477228446961531622614562608224201171930826832082951949007651880612044887110990054928881875703760155729859349182763240913161833295245860073006680861570420925492927153499258499943351888252566886399920348017103834789751535768938888654315787341189607712300334887637917685142665369521343793422696493135220802871596145384678320408215103551601054874343550702505325163460554616597286751397244394344742387190326506646624663369122137119254188099198369478518919211812943032234880165996665523097367247246224640583497095431414222572822550478566026341621030103393374478252162928073972182281632981106181557410763346153422223039888295468175598836318324532377502457385249920784253623071342484197295592125677396638139700103068227643020072352533737721480383214966070175567502013975802269006765312909219531893629069306840884565649702142686208412253235414782798742491962786653928752996051625355705525647204189290960963917497594950653530381272350422338653349064546899959847823267496162442269091203290157188749713717684375633351089499829026955839013032697518889651159062014576194111782413288742794476058693233106669810510232156935844139541810660639857365234905491079977173050088013259819058220017066847026561970597467987744016456722556259030565413474247341914276653388467397698678903637961849820903456922541554028129276778344119187713062208573234139010836071614622196221415207611945419569356631624088674567970889602949310246127902228260817627320741127171960469111624517882557013246346554456041725309860349962473958265338737452984194162437539130653544375079272379468828153520443587048264574503321540384483007699932350218339309284444167710513601986270239241754183241390600302717792697182221000703013451096380543011032220205361316459399597686561033868932682962826974325388222368774209150565162134853732025902991314136163357228374407954398931886484063175786403053393666366569357618641624795827767874027198000403662288346648840040754368992493861927803830689817978460267788471134206960302806720318670524293491527029388264714170273011685192366126369922328409681402748459777427323407569849670345520092452716105032658543275988986530012795288193331335459353584922288065774344378592451617820831559514015732556543279647158268969480837695789523091829095261223914281769571740304144568760782573506151991988823015790902925722710971153255847750456711059291237284031242973857257416659477747867816124169727210705782514601944968720487672291459398299401004104086188387447739936832036789646275861128756259360585389335685558860802978255417946866511421646403166082064694756517674343706799450661524710065214933001864797601111302235243902708074097362147473188677342902054535746386689894649217189574316276204832642189872748369337347392859946519918375030117908317481793085279537103837168622984567549486295698151413516150628760360916479647111745599333708269345600515677430841362842074444235895064140838224431264237843552808036877198453554668091728361681577359383849306762667763731499370403566749555190456076617365179715466056388443313019482262005220035555134543576500704379919252537313142084713629628484984044022655253184462807450869891007483143128942830479991550289650973557543211413607329172566167096060282124697421988268651464696093598319290465639950615170947325431345840219427891027436914622447832765878244475233280185762479823869024783235667385913579362160808395677811855942950997118106354828127689408698020062284849658737990191961934236456907902764518602091044323380688364789700777458788596405512666391590473284674299597407453114254031118758204652726218983631542464884561461518307033390654981380691863515850802475941837562538564785696600912265813652111397404468453301090156915800013592977204000533852905434232189711055626280516918848136760856355859302416182607442081615634412186299507013792383382435088104261121842560825722704660512075908143231647246444126502889564419202949340134305034915127042018046610710243523467373509665640532332071991796796830190458883596701147735151399707069690369369316800308044751887162933888885088583972515872106302403866771201181715651138299599623138466386277406744023467533777564371228576241043701131979806289803174527574980206591132767573798094750850622276416190916785212601882211537023507538808574445378233964940321295529737835374723911985248790334300592900507986859314459307572800586975733251750373019502782007043774979697372118395739531182406997187422036664569501851942490680354197994317012473695204405679498647100424171005040650150418584468567660410648883823163068150575261129710739717311759994861456145939731896677513142307708309264851380455303169182888575748756250395620149450880643335491624862278486341977170303121843729630765424968484592625805916656178697980304952637579583052626089100823309751677414261355794276684633400079683467790397700637567916469697084253613183782118460015103385897081152102854732573105808849056924509767995636088788804374017490572428076947855463451380164587356806184524725648848998637972449031610491093361307500900257518350960784226358684409463803721971038419535465870048873053570297753745040041991016157248896804169447572011377355022047795797003651430028195768100152112544567314632738911232127940923900070875446761994539937754003094883717517633094588457070082800215602062523192590642582914963677103050156146578898097105975325786232298625185341975353009584898292395093154402114582772205753082219550328081419201387475626886205430653425559915220925635363726998617029542410706011650268108481684500316019485980624976718307979689495281524650276639342647408043728925210345001807314769370887476867922341436518463050516791367115456187784533391748954771380679313094153143119212294173588000886868432635210956770466156019169696320249601443550036040531834979256601186482797688176431850602118383627622933480613583411279957497466234312148733711185118018387945332951112303129353060720521342219399929822353868900337415239228119246569113038649935217708667692182592747307323367887936015847408365425612949034120603226762352520447381419628440190681823965766698995531768406747173482274254306287933089049132607806472123324286805481430941161902219749383288267767195611380196142747573872965571179080409466402104638441087281428391129540970685624904332518923479449548607833780590513571231115476345859061267380590471686495619611504246207924574613033597870856627820479813085546328199028124420934394015883637856673071600803590768428854043740364254197177833579608211219778459199870094221655448064604837161068575240200935239118299201480784241756062253168722393395994511160503348367016708704336635972994788114879214695419806263137634957005599737270026172982946451107673066447112917407901563189248962507978390890265998670498445917324531987105744513663761254088035002117871995291495085244068843880441281838428849609617855489756459865399453096916452266044518056567875521340154775471630141918000115133764840920967778389548517979725236953022586528191009025313977580900330012592299011679634711527986127148310223722191900421375801806326265688785397801609529580686587242562268166640711440790086977220128410055210599248174440102846475430994438020111436671139303245159722236411141905873954224665111623063762158945684627721743502277534332765987305272281906941108569461879795389869976727783701588493588224659806857280643296038908960186017892914557956383632439313995725612262672702476729810994682548852272695699218542988690810871703098971267032363427315182972431797671781374802270014814043520047140708762272581977446293146698161710866885961421977752149395604726021776890173145762937344999140701450620567768044552622249961071480446479751098621243218127276036253989009706317053487262829078394869813366320432340865997703930727224486522920940185489396691587998174749135861963081555381932409731579403959479926311510392801399475533023798156211400873426737656795339830575624157703495477590840237651961131810631494032217549107547588776735468268017749673272291683641897851025378394223899596123452760846217371025855575230254984585940912033411146549963253577840951251958781209691605257064201110877322644790370681425554792275963397784737453276073634166908788773362102802872750131816593668265367164319380139550335208452084831567505615324460109581445009088639448663263762846019871967365972019334281735484379875720975315261231814672829901276848430585363546747062955460588764296579491416946510612773955339458844459181634035439567758523233328279777546958397479357710676284883251698938946071235721857421264080857055601999261340209757326253336388946106857222943605158466191953309139821860249444427214677677894769231253137384239221055384673739980104706078002874553924015649683357128226658478903818153500755295881870507485783333614359189646006066200396724367147386199446245265554477449743455041251661359092832772675825825073209635836823073209080773685469332040148737371262822883483536712180795760799920896633350776006811769391528064449930684320081314454182881923347447971570527889623840321504171028672458729308056800015057172196979194801593018062337505073469682289397995203711770050711611404496451391665788763613619715284242389506395606452542871906385117616783213769657767431272625951749400053855213580409818943171295688019992260685489515116203886105197653757582028440816882469965584576285686042179791002030873008618652340258363040405471961501867225983394603030740614479869490188325370098753032874341989225646987784528343004187928163287376150735242779170702944231278924704414255954713203550436923571611503507815110766347030924225189021112741642681128305698263982047832693266372393757417416064240570460571058550952064218376942624069441893541153850118282164459345156175168810677211718144434784405151063472098101704268813897385471187190278545083558432462768936922158760122887009059294202090679003890157688136562575204193568327485522664792399744415753582832548958969286263897944202241856927826857226223810166036975935681098998896491043348707453641266453798914800086379909419963843421949517822724837226151981866093035937090946578563516099559586554955752303101492645149372317098552676674781702257892548143009405023417483384111149143332325440175423862251631171128051097153507602219949841759371852728782129881193250411540251330346736904587909737021862154239866250511435254559175689232192299543209331405594949923428678613927227976466892253990586416255522356928637376166332128735501308894894238740980450584424624888747781248639282694428988107547643050216810256190847872071984092437267581760352242423680218923300471922472362063352747031760651560328304631226870090463824040030813160358136568846893645686193278539597037256482647316310528834262622572439018401267417591836850303111400767512636039309585254012733380619512559443802744535270089905000706348665071506984324704457076735962246060574258530173570516905961720546425151298474469511996760377601688354620466377907651813468187077852030830467307093724320797297828011927682884114883836042550134534244505217984789607854610144404831654794229529814985799219950006943455504095209910714314378562899272723539489258647899746112748844562012613809134379108252995353121455454832658782950631052756694647803099382421095412408271456917724583016069300657804264946659620775421927758178172747530689081552449630040256958843496541017265415483115111539347137091379630439603876504009902483161154097437454222037808245855744054628774951329677160871364517051511857077081580236141138624277044291700504258325239353013522238815086075551893748661626573822328484237176508220731052600558875184111927552602203657159293862996512386914371366012710406504256277183735930702088339295248639724995927765587551076406245469151476659343204920228897309966785050464453121482348193203779505511068336698485073061777728310079205402438065543205260898985214725750564746849207463108694261809023558864552834261885861811678878449427378883379572274558891388678076083880839485332462086392860993703713993320106220150452258476478329320569020423554840464896008830620875989395753444272218323634747066665846415473538237254909167168723675580858531268621043588715673439963454615109950249634118740994144693589813798689247747765036361807302968680653791573518692778540915092098859091508764779302382384942611779678584805528636407351000211126391426209946428964348396633371390327241216257237023625792203074572879062104812398573759336466676088512486992368007862865365601577315431986604387453690287735195266825516443105485452603143447199790336516906324196033073625508819214101435051238491876162938134293645226672947981627672934340246818247414421839543884571683234526061318899073357227729072294992186160088668379520510787444472257064749454943444084010879839112385021808202779609549508344957355005307338058360224271175897875172300598257741859289114286053862990544994583112911408718413415840126275745891724969033731460480644359999274058598988027250016311078702026983912153985485585101680822917958754028556705549939301391156393574766924534418881448890306708494737053945902672057579593987245575070074839944500927745752182165127680542727824886001486797599647651966224521121103006521832076091593367796584795367663469757043410764141908934334277377020072452290159653896192882891474723946093326056316914783048348444856140528750405238964991231396776273135151394502338201468173549154593265566744331897483284698325672867919645245881439957481295885168571011006959931565781148778636538680356363232777198724457377734035611758072360677638477475420538890534052345602816005161843015064430789993752288546310266305128879043389352451723012074436456516881198422770247061927307981723735579146492792045813026752675549098414291855387304049828241283159209480115105217689242354449640218910701810690522660355081284761761125710249061473251970574158386176442015506448564321496667357896531712003156529237096232982418653387246074082789485594339601276371769505666864645627123219054589185909532349597389471322164682897269117343567319167405641600194838260388456511732273904409228004054380692556801075499666944950470664280408382152668298565982386104570518045049854308121848066445949222613373433717261463752396447412177106611288937859334546216116310799070429784831256816624076306486673685022820313846431416085457240282482741696224647293518645409178114177216603262602695763129063345994607040621110779237564976229695938874972659631969296390445065595516059998720947492510262922911933060635080045931723587415301217425321501016654516991626304772394131395069639956106102887280159897420028972079482595506174025267337179757322542893373141249226807131115547754393552760719352755366600718107011791323661112597111731146891712022784164477504986730723169947326863817059107191089713556612372976378225402775897808811697432116915596968466652408794397474984694700297687292075342025038962604624987915376748079786325691186648517227544362130293351423737868440363241490785371691813282641392204013618598440426555286334698499075824279891997262562129313763119147882958245595242423015871501344171858561796095293502371081045125640627330855338884480976276670345278566914547372598954506247243943361506999745829359858784125949343552438616407985943468869957601375162206448466149477984248590080088203483651100593176106854611435961152697377826951296121524236843296735277963415571094980712205542675316731738918430365366786283518433351650825002574141413613696195805635053711302679717897128732252737912273567923049233992544744819628170035928239578706054793385542213239810898070219644811734410546188955391963360316286914109994268780155191369518046394256183021343881194689744024261689453911905493347482234176910802542895123996800226235813100446374101974628100216158473608497477909725453926339214522582532980302284097232729959109316701520316878634076239139100698812528603835167435444809905421896691296675076539527942637866448540479891003359946376570636850861155388133024890326028397937781283581547336604026243756420444499079471560960344501461015147862263044485013154530287518366147503533528480825613404740317859791851046427817494405280940399583554625414969878647815269497174370565001384405617456125488036281994273011611906361032068709850718295437565083701354302670684517198566028868414097230005438418456446757594670705747164789447263802325070075038003629619718138700021783367470033648393335678800361917173635302119092830005466604529733950336538419737286675490293087857360599577541345626530903840618492428927823696898490591592481165293004058090766587277761485299742019553237923493306022204457085115902545316663581406645979318520881685048864454911172019226830681513165913222944349771935878882117567976318595291161253447340214941898416839768404636804165517767995256626465171996877655719140256879673063935180188220493577514055415861388034453177312076183685634879230792660994088597325166678910593567622727308077800729513968294672841770216763471924429664823212981805970324415372269853531630424144286785613449478846102875273975286020024094975349451922301151428863043758192613392170410958535299676691762771323292661054632622793841816459124850216070803836529155670341876839219444350887874782785363941864633655600494749205450399486642274755639983068412676732704090590507533587109221625506886590819612890524763426601941482043126157958044443699880903590246107505197544289569766357135681525975050939242689310609124153115290873258798462090715264450681668893691588652553489341760944794569510929315500855072871329906498042503994637970069247048894571481874978638259051550897770170265198978128320799239530768735682582813891843473012786079358574402410062467459504449238137929927466457119315313152938497495098099107396203446997260228519583295009831197476565550500949007090870391398317783512703857149379458430283339634892268126135507460110285493661300177876228267693097317140181945611881127680260872646262527207153891200827678723967820038864083295944819858310208934589447032196340152195977191813367875747305669129260278595025857409508075208501715944827402473719532374698909735223934625579835392264777222417672229886158703495981557076501294449233805012096332015554520697020273502844699312718779210797532303955258485814116038934268542579359121584150714454015446561556571789549564083448442555412883376905775719486785877156076827563864517302110208344895297996073040712871904814487216096432228849105632651086423702611168239627333341837307898597065262232729071227973852613779015902871327390292043660010801868644800031661489057100489920036448025110229728245510438818503514902625778242133954657797342121697106805068880088831074503924747769474696091311051371704121997798771857090231101168111945782732581155080609561444517493136528071198556418527410482757112479270750171759536724822609072930587215626208607721885842262848975008067791830668326205236613313799243193075256003630596185091892861960716696033014940954622640879431290057841674064314010326490919292271805413090260928587895401301978572883267136757168434266366673623327423689840390911754382609875642505467366369824922493791442196174705474041344917386541820554756082370508975892756148544439960105039270125169460863715365901190607408208045216651086594285491185844906853172526884760045005705453551294862732187945285330144866104389223284916685517056627474951563736066474206137486690391959086681930724220960635420305261053941230661621576775086356135529741363222723587938317968440221295257473462137765263061735968329238262806467923204242388142568768408724990650156583132245060118085330021262935483870824939485978586345312763262052093639246243370865083969009297933660149929592599572949275283323604929371459650189660249093343941383547365425018831568435573003864482567837528123544860983630124132738742720065575573395918714924971928876878628601654922211890016945808951887925818147220971789442326673835989874605498260976347144971505298769744425508055174344100219257461258742107584618766374673219730097194680627914503150280011174459096517545457775979501336274864257591373017245690122344550886135512394894751230074612419824745558696686264221901710674185263323844500149890193838937714228014701887047259999350036900043672641084915385731626987692557935210772629129485123625682334065317436426842800465130250422680769356586120960362674086586373582415351567144154008327143039269786398089622779528646979960683998024685659041125279936407057015259971705106815326253222697644014312535763241547115513579776487091719670442253509127584877240300647976884865574679492158557641626510047084065906927499301432614641164958589538111743370445767410721881133462774905578360476384146498296897748297861544557901571564301262671458065231386589734106582025990925464201420807099586937218892865261147709071945688275175237491838892581925110900636886176060143782597178411763575126644803134892149026179677509544458572567773403730371274698563091151016515455727379476816998346131710543200829024086558481557562212178888988935565392551229309851359547790684065270781622156635067890796499797532638808797897612545605453301459105835162489420183380609825177960723180924568845143541902058783399787411470789131363308824215904924846483934135373133168296158240955194818199928199750605955448933290719234398523643805533921498698630554593075432355949790903769726073678326012074003149790733200303495158298153567380676133544391772546657283444423762560256697187902098853854992031877321926086221578616244073287849862425760509591689655673715056409668099011633249532993356494088856867595172112513412517936699650900805578198128799378658309911096693975155964281886169400562741379000701349794992124751821779456729970514207116446027938451573017493983282707503811224514126656968305294362627942149489541268135596267184929258716255116888169534066561893143470504529914857721761142378251564156547996606332044052655169928186361606978415290841952866764358073184850079686647780623705882994914604364762078090865856985683955684099128882532533159130842728663499462441263271328016687460818320486104651678622681325281187165589009685111826055755583524571125197971154452734562771839290105773166956567091391165169710608574912454191257831388831193287630776515030895377469071740345819623547023648236979169925795541268191295979316350902467666129686187777523067465662685606077425861509608488477777926752145968790202439952894403404842210902231268809900488340985529073946156983425889308446176290264668587852570222126147110781191131121798582060326072037179981611137704980364428622365135906747731379837080224578260172984627193705112762164821979155554321444928992093864135132423786253590772574567467511514277335472249517209501670331060496120195483822322493033652614618115978488786582632587468807703239281002190402504327778829146346718056646831679478779260846604668784185866429592428725337674617644297088464220095335598061178555473974915444526334882786708296032164711528849037411621510542778271351824941657888939430847696755251932825230307711666676203068501232331941209114770279842809042686319187097485675321275392871713941091871697044990179756378458904138971942797796516483860378196530007613179101121660118316267655340197237679881255131744300332175126298044128659541731141349813615734185343230953629749303466552024013864888012119742509684267092293783652184333747917522418928246742311582607843975094823068834213551568392927538257875869087400828061675833137957441769229993695481696246250697521053746288013034041758942316420662522118947902120338326043499547179951876286541342718062611440899937158978111301873964072131050871084631237015288111308738897142348214064909149142827301141033514451881783322034144668052196585115536541518841052355351931462574129219373413926343965655934210549329613397637799751041958228122693192133981747148373403645199031950098787521687550411059383868460574449496818235899984369413775115193492917492815980256276912653807114850940262945047632044662746981364069888780018064359534507432984018064903723357373849154946345023593573173485821565243538325027279048872968804907359405090372269187716667390959927308307250375261172469669490612744953262358890545091389712580304531490247092741081216974563540994288147882507039754585843098600763852169848135506196409822925784305188592993695642278071156199870710368834830957907690100957812669936385059574788186794711475786417744712756347205859502060280541190299263913462737823144463082593947927467344875328101214066301833777704584385971980294064078484313596205351752213933803727138658293604020135814170906352813518068916896795288118175263760974408650851753802386565890928569761504905185439372892774049169416099653330836123360178872172151714804893658958364230845354751325732548981731845260305754158986403042803188814269592004128965082840757883407522664436896198034877233533041656654799219203910215974636675693809026754901913261521112718709598990578095959039755712018936341771574413941554248220954984150234712364727187779246841452167458987830442741283249347535564089958867986123937950772877056354211237544797145753221035349350027028280442530467706202471771807175477793911728691626486317246686070056093968624282401244929855828292243554042527922524198519911373002411423238634834563303095941113020623700686290722244125963087806019841645647713950654212862766420573177000500783001808603609342299485529727169784547617606887767489818873789195863430123454729069410196137436886910698615375099444161807650322903890089330252536323622845269946207710842641701825642577936499913614635832428314644413253069818145040942065391870614235708260224308693774720592987618240039912390082508727163109632927731644317479811041273150892104038527889091769180593515222251191154118727247876883067076392149836697376428383849803892663571158525197642369508828174221372483571613437094366901924608717307254943092743923510030217194794047070643988661586739526169551119812971671801141487565839960513104866449467898642516870397852556819442596112675374739680837888502418647901333058158728707083147757464848077170755586076126809596892997718483314323497337690466477683064266151075740544039702674382648588053750753011371289944223675320878351663530712807233484743672846338290058352469472119078877020964047381378382605756170064614250929201301907110560478983116756884901829304891031960883649363908833762345764319201231862775081869319435724710926618285247069452052144414931019479552423660117121171985116953261569836694658144491322883009328334360435839433356367004288049201363112704410716398590718974588874261218561597327458211010070654812892168039334430081496976218136790298686234640084163592076351104872592903325939661866894361517251639405868191746472370545955803251863495642893051921392671639828355257122636126820127787827664568869305706092461321724986558143213434863600198579378356324434348537975764849682313306429776954253920944835524848845256305801490872069978879113626502765415452017202661431042057496187927160199811071576769192504771192385786852263042635615472048255193556828068366787735161213195369143894274659794293852523439940980500989619182850777187012586425744998353170631866858429223581569683718043814036182895331125406385018750137044058283851078281582168286115901882872115858673566251771059590993243788754250496576088267673532128944976625751962582875012651703026739410096570547688024786798449522926416714543834778987772748586135130136644437497574126809398807052482183532447085411752768082746233147936233232215898934402567053644899533852261253465433925941969019158273253516091109334660984295572385239437471277952150880802922960734846573245641695086739437950170701897951437451823688627294140252008555114706989455764871955318492533627432384395820937324604398525189469775630278037983685964639818375799453079563213862931275350227738402127235986496675840685397303194252990131619350595970687758968119742272615411178456959061551106349288371245396998777069417661927916886168603432268740692378024391198675509396526401996419857928433292697449008380053994763039380968528952394924846625537726153491332962591459271000318325294133733870125246365884428903531132558668734724661449160723842570169902226056977582798751807732653082667470353332818197412274051110394621629012496984906468879363437497265100121019507496566673742162850350455467877280303129536115063713755158511914312222144232344606490471363704111484982926623419694613595551411556313934379305405033032157307799456171987348395869681917591396427355584312729523398698534899598545812418098494131328339188659892857388251156299762821161683203535691250799858537171114902202052427340625984084913595368477291569339313542501251232052503326134392742913569399198531896140298718816247842353997032551538793261561483564123902447587977074814041332545595730643451936016348395506044479874287982046240070390901974244303483472055181825828037315766747323395412578909749131253432497167765248841207840354538117652265437701380762215808549976428677050391050727786936104846271430286264340483186121491900168317898451584208151407890042120784760439702723153013060043486529319468409065878158329249971554173212425297361392003714083749340295734715150043790371722583072837161521099657270184822905476701931149871936407037123455446671476192980466355419378118190165930742847050365534200435552892401984459508070626613556512292718558183513339264062588091433432068909536432582483795979315131985488504985855378204491948345659819179276134456594387196106034892420901951441297252951254981391078233123002822701167426673022361310157873571297509007193599447136242073652901331489051046919026944959114518206080398237542385721415860912465515265022027975197284113318397395691664132629525449092254131277920460047063725307941020495019365977201531967942094860228674420626972547481410276235747693187924633560561325757007798742492248175357111678789065171509090991725960248198483257659630450570491190952299484021406872036248145274742755308914815369260053245569534441967188402323907068330113413969423367591789837729986400325935741243047029225851243613841144470369536527683823560278393165840492948746129349552588664391555359294055640574721495861591418192541317450837477231011325694237531415640530809409937897453323515162099476828805379602421373293640120676261798573094113046662134219702334843075378083262875017311830657970879808717383570619993280785988027602442521767010576277324613339719989223016525051793861028198298694912466683787743020033870845690260912448303702702488213621541044968365288341733275907718152829551180642856879027119509093414959872871531247514331987304528696622688487837752963079484239823153124590035966641386479625428808920269696743261308302268480913454799328819448801149852038764639153463834592017991220365096760007535027591377130652392688442630607037080887895275857795949516241829449981933782161350137788832071488478663340125162639466454851151014984719212093952152261829104259251143940535442309504647874243857739666563305390288714514205498304458451341656150338801779299035299197825231541936063162323638957945561710294854489568729709557648741126265586316342230505343527434938234839996341372897108164725746219080000666842052543979027095094229677536863314399041873718529135508743520180655134812051904541769856485417213959515383403526785325688991124975579916575144711264212030800803790449205179959894703261088560996618263152211200639394471225585402266684036373986987684540343966609624671091371921604341871853819138693282590978369421682455333801450189469093666775462515050568937759020834630583509424347906770116730174290983485526256684840543373913234638242504017677253487106883897022057447385799074470405421088882582951084251111586105873473930039424090528490946599727854149253697919185839539021870274738753913024125120095230832580638982189144359347064764633079401968742468499758346170406158489009665087264463904565264255167173989590922798790780154932254370692815123086378484345288388274134146729287254284888204544883072243860879685156352544718747319463382461672709375246556517226618884080736989805933942322110628788079902574696758040013805905694707456281200161399732442303160889861239743307087762769733842558406169976685195877586431057572256222117001503846972357421434726703904313469854968308021227904705035132036571123237704316779530655470806471735477922091659744459189732865166043448126380378869733267591386390457838190804814615342942488766652540455226689937382113157371901494824135371186070755367980559991468478534018914548619388086927940345236319718963574446547262322748282111480886980485085335583409100544850822125239039386804274250941857084702678154786968651319976814115391880325614314391215825265850889970607611080991361012603775565183138992499064729996423552075252341553063543537895414568572773983215416875854147664011943415653049179224713475818931889071310767461474847764364547962391205264882257825728898398479554615171822292340578633019514738894590703511049667331193280176394920246302733515728625633315930865968085365930299698291795992944518658428814043028427563569618389511997879882518505724762748526340344923591648060539844909000136937800533596921555248766176449384133849620987722124713134065611053274716785093996505460292609374734841449434226080456377463483869179339516918801462910374524752111170174694658175669319735012576165003761305938076371614818824439193722691245270288963054699274175680548238146846487655346753213969765715334194839275291934060531105397769594660491187744819481988524645662162848060508074624584045846675311780088254657945094308015010763824744607432906600114089344295513217774489733282234616777732623393463127096995185671516940028086740642316026948417228646372391271642971968268192269640242863045356360782111297456851339590042986159888976871934857201202750357365263826350510190285768597403313198456223510824565545612693556704909866261742909500285757924890729817879549214097507812262492719197237357649089810270264938686330743882399699744810406451997855693867133178529201034481863243420873232157294804931125686906161019350391680846567018651155336304583496157560562351074356744111382352237568594215247071453095812982686155332398969614750442129171695258342883083184504150817780854547712424381320514553241606566605016341042066375006098545429594569879497491522578388055162414931733591654859985701807410661559359396556760656089365904119649302049180585218871978542156406283996729051175173461840055967582549071761923748522241495463768240336723854160458948141561811280912123724401492360146911673020949839808649784848143152184345933602922632300553916437327956703591487429963448065401442128126880456436820280509894699446960806524569808387355635044538911454145079775858214903738721299222649682239931482253006756785061319300142283386197499592729542626997588658414947247022215070773207913486252872805185705768933746483962981168572924233074774535251058161272563317621214061271538026014244938039962671010688236787932101976061241156709740499195527395784631494509127282254211784874074756279177935014569465362808165021661410403618915302701724227047292541149888619033021367148609005746808076368555106042703321421924593653703830066815765100102784267342745779894103249380753550677934148070152436372802888275725121095537922930452322747753215949691051222719617744701090750519356272046373919830419897864824787706609241457982463511290625008454571962174528636286519578046169579281701285386188915494530060708853114103202028865776682698418868631560357864349683720891550125686003026367395663696629080280937649444301416905198501450935451961298751718544101548481920563223298162711530857450100465278642724175978670752685108693762464574891837929653726029492112719536662171157656587317744184348225400978432081087246037445508171909040384309822966851240014115507000469731743291545588464417606476015324188108668519529377082107843131907099984780822380990906588813267576611871098751185762032183208709588705873055569622654784637268724977944507519196691160298817092074256902210260911681662004695266130470032124312106113000848883061630042379003045905180981438277143923341065679720414290925506302799904626431771647079097155806075703144292586131229460576418761455127745894233374774034673498488775540734472154497983448303240710346902907570475220202318582374751769994960798538933992230422492682974255152066939065249841465248444054450310341952062899117720105202415776665142190255880858821694983834457382135910065436312439399761338823941743856564304891211863621149436845392232906967185589454422089318996940754071718095504190730436385478129639480481937584818374224470891233522904154092445211509549135785116215784007860083212436147183636409897827551318147591286242279046587290893074349976732753678482245428796688604352053658366610381898343529335697357484148095243431247738938071315163399031181560380436091674089427377629217681541923980373285187250160053342031450120136536088566254791831725498492750430764776817011639425850043142066432277033345663405594655115313390258407110091673793975587506258631469302833003295865625411545052164292275378096741444926371585325768149201185688510414157548354376739129431426885104361340179669836758856512400823113332265437634915539019100569250611780330569665867021574553577015242241344958266989573707777946266358380221427388382867726459135150798253808103577508762647536026559779721148583183080562797310881130639217548552719215114177786909824662791169568331528925388806911928022667505301822520502303185632957270340503141555661041375599380315147852029259490583488046422639551800377478814253068555195951010703247230749151676536818597915805171737686210405735589574403695603869128227149747581239293883846520174498123540406124321036819754268651705882953727570137930945780570857615759235665187644530988806129635116812999529991894855996667123197284392582481222770377823618419441163690588292056497080964156975714400149567996896778758107425118236626280973315346373291783471891480912723927165594543361582436621899576850980308237493881676958517196525717218409534036296236355847830178193993880871123558941393902394659206402700630280950585175742843775270632023165605098719659216436107673922519463865483291271157364533555065627069369083341122113662838632408815103683332484955064599281401645858172428455646831734955695691008092420903187132927853295083061312022331640885906086793327708526344306056390640907221346033472774718581127980902459312587538573489907603890305971671116945975179713851901234761616437964512274429676837880805377098083316420768695919650068580803784051882926901261490807535024014659594663770275772905493971919945575761044825383771458525707769213430429302686225604448312985893843208631616423927220779548381325782243989907893177146385430173800681293769895275529335990374939566293929028950882828689030468907725234525084827553144514020845849164475691630400845736754067007478829916281984079845083421394090517703711778679055878211247989854291448987982593748766400476134325068602864484796554362906680274974211427339496522945040291478653489610840189701417047225643371610298063904273163060737853604846043405940449315178930376466611187029422253354606038052934950240544034941492793620989341234791704288442604627903731445216834503034994216291391060524643200182320056699049698715310403024382104347493451274547871847508304806011991870802799085971558616464060827444734839931089062423955748138940961489030201538833072408408068129903576444438565678261167713717184012413510456903578489732515927587016393441869620497405320562426046932348672652142713230838020760707793125765562709616600582821389216366582602875914731780193341477490623905489032009301583066105837723935391662275844496319504834301058589907577920375940233686331953406524320244325327478891177810044678231230766102084009836396441719372148990389921581574693797100091567690619791397909658735503491648556906995709996723747914492395853691979946746860015594056752533214524181585402799043606820772869914644926333906693398265290836674913810236253112198729655430049175105642903238237878283744102865089378249954262023248777843433914114655916747234789847743624784293151450891327114449410346081739460489231676208900297796532844691545710563769926485371364343860112067921115988990281503469367014537024590909068082457105845176816984057247436702016327905875767306603878343998880598922574787303841581334046902481999337192072849130242697311341033310214492557760207277187137084930823024717013209753126007428460679223463273303634552498417110464347401295605642810026709992716721081785746262710074021555025814116952652892558224356524857258871402817862066599640296440130600749812963231849420033513316243506398708802451758428960516712162470165470625882158729240848875931234454426363220125413444393997026039967712523778160433348300550368575458743570745420468863135139427222389564052674726782811429396138380960042985362146939115389535340869157766086507738298573800074415518762544298403105783222115345108801088853951799567635089562113449181064560912571362503053920255703169565205239384174476863544985817761957711634058910428529074861967653188730776693748868351535335425960995035694933342700902389782542444157650270905085906965464456399210965055190142235553069834172114856640468913206002769558685468661325640697997634528223535652901119151781136700088188489929220998682036901907515873615920641124323706094829022700371023861436365768238346709858583933303851384287911449746956399000641382989827540482109319466380074680314743218788773548945430981502354822935459172896483551762478239225786383618554660444153232410798134891833850187736450421129479539577581160103103332922920402725632168434626737557203849434187026920658334061265826004190388196586311206812931065655800434588271411937033193134865825876101287700569424125701918651103622802478701617649051533328833779474010357213571662472860768599929893994965520756734465383333893957874526832932885571437664867733710379583083049250000302970942296670749969477792192897796553691321553705745928942324063973314977489295386255457160424950211054081199008253024002944405674640746882015493434297658061971149906099882553333158699823164873220989620231059465409575257169947223390887333423576600857489836828623193622848880614388241852862009836714092750300092545823014322660825758000839209355084934833024851442819158934658461694917819172095925151437871656869914842062624553623484752955811177864336016332163430560523851853001353189782934908883254126938683746297021480121917775745038504042091766502511545331235744125113579782757412117811239199461309697559001981472115349827557013308166646126647299826453700996801539395886032245545975820035065661486558008677312932884025539854749459136151603984316079019338391030640900379944899487673729066429258077459405682604636034806861739958963249044317079520237445321034486895702548182207391842582596829578906073106811695534539830520801786167143748001829266093483410057169629740417615513309390259555637477419545979709014597036757743323141246346631675267929517754911385196690985213336064899523163892973309323801728935105060968841495489794252461789550680526995910737019627280824284839327478191356453099537252429876358127731725627435601950359922510776449181737870219104923527624531991499520797129015110873013889313321259171509364342973883770521633225001742620680206874486049908111783761684109165305566924784293661411261599559446473155264150913915555701402114166491799610560843803157336588043625247709069320386534413281469291849743203358790395281285866986840861093524792115171498512966120951509737080540656606745043410414505115903737621908907883195444508138159728733266621097967151617735808439692736166661186863021272416254739329945010488179032265724211740038081343359438635088549155435366532842547822848098850700798916315767317554756283375098395790981870996247844679802801329882368460903486815831112540025121295965751408019378616625859430101222568881664042238787717904708290424671298706859625170481236299262796827978033997158901492435900783131270388207216141499124298112406190410730444768636872793919846329678352618550880886236491947067350233777152798235939403055448418602717824800539580943484947305794249305182845583345069700561723771361718318187298954126609262949290393415127624876953380351227525866278694643057133491602451609831837787595842292013123113664338288840991606296500562270640774123004858700484028662123539090987101869648073424956502783619702349221572010736561553942434491458393646793901803932347828126196651186107305901367432847266597511683157422489327457781246732070638528416860348663501887016142283569725682119695001040110157526872819887184391090173557872320542850359063119439165040986739765695767499990480235930062893723503738360685719633505421287095510976838418045951983520488018874197972405954990388390693006927288695399472791671174542219050088605337526977547324740138220887132538078081155322572036441076754189313262518719550602830509825573214455809613093479363796633234520598580149936516364586704038012065700837013407274543751400082361701808196522194926180652278450074765734745027739656318633298175014375106368181333002824949445724395483215515566369020510344981330503945806384648407930123620232220022259242620349983077621678668969041746298692531002534354879696246811927739711931095794572038216597507445776724976772821519021891967285856202446906901421622381544466218561566352216986245059413538542975728390829057623976513258107368246036867215029388114655781078293019560814909182169697511969923347314374480014251780203337352156053526393073361193037626896531724023199623669835613124379576086049377704802010820503829440666101189038260929608978530798542389129362291583054579580192915090027253878855502978401456908849598278777167526304050466189641923050459090437157069808936713556876211102599675039795778249669242956252795965699257760815593311907511652053184488880630602200918608087379835218901619919281998580765473759825614867010150350796243548503732594854588708203859408485312214689874619654278580570159506588580771523759469429998473117842014889016971251718996077909149942461911878226855289196317514092872007783620411500332268607294842584364915433060873519943848262366656718499244565741528913255826204918028949014759172752763199709309029010011706831432640709193127703519804507016085210983667424845744997281439439846201377653899085546002967173209533183962281604292539222638709554000574567620719644574422085865550741335523410416748971965196855378555463888161776558993753284670386609578647390696729595063596466995441706029641804107271466410167115239343848406336564199014549136233431261817308735210447060493409709887940031106345573904122666578928669484941114537096679716658761847607206251273717904531138999345002945480436087554645016981400090994705917204229540250206825154058678355406082987490318543108762440557148529117802309322662919527763407742441350976893308547340816277511147575071303824535049637774541138830670376929591533867317651427887554218093254626406217512453539520866049058176471814710791416284573471618450318111324028928064041111081297810949261184155739729685600428694360634289880080553290098517267189410118113599766901189740849944099899002831322662142667087239278605002191104663181553508157311755174781429215043631336829410706608866612549414858841784201767213882106460612773315437654849139880097218411826146668959236879262640103934597895437004711126531295801342336266772679430751964420701538139934781381322583315340168824081593190303283712281688692526626551915915635692270958886062725381714115654191765529487998645433580422782563627455111799149500782156819695460009026253676154059594468775111505573438538595424794650492741061798344669412381291931417227150457792490911753019119145733334174341789736642166819164799652221324991941052808808161640432786606140705314591213269000753800981511682966253386470621383675035303031771387731530996561531709864333740580864911768567952080879724015391436756844353468643952373732526799906662898431840080158518219428032679774561146260294876024144254132831604329008540531820652666862413447707316396893921129173534433936944738129168396245974699543225561835721299903338173360441093191220726288398307345095263924734975680339335058005029396591965859329797774240377248760530058575511638473456581349471626656525400101496063535285773044507836702816338453243833488770214886074613301536616214115278078843542736159438471186154308510914477320816359511924771152248604108596666574953814756738867311116146170379112723924506876856517797430264233185522969867487284294370913664405826172726725874808311981518038354259631802128862284855598713712764436411833534009063333220149870775961103481075108768587340455894164627624973956555952039596314877789810473486509320410421373334353958384230110309054220923188645085872849908452456328862349462806197422512418538175893110295772409134651370267146177181547068129738939471702223438299566526242090327730336171673249205341316609013387656515105817669927641927943333989970415337240498658951044704868457253052254117221737303666092056457703598540830431408490709567543028016876227506823453800617763793780552552630842691759354458435120972110522001172490403735629484756677255010524477987991649427337775089206671884675800848224133794236306782155335149426087864788659328163976816946360446197285153358879499558258770917266494408369346619951726632507587514091883528047288241918203640147133895339066629891149150619377493559497544258494795426060685508753360313739151900881057401677472720756979065702079839335950344629705207924205478066474319822167991742499781740117950837482613804836579158446703475716707888094265026599322621837097977331891103288831160427901634817543746502431424941293396102254572717046760277582546505568789926427086326946797717773472974995228663688949408869074810770685609861393069473635899571082617776783053129125505329394007068941033383050163197803560314655911776881591070331333143376637973775101654077641952996502693190127223877366485449566906276886406832778638233780246813571941504520518486437593882969536909044341162306990137664794019040459797085924179003249363059444018584173988478155813089066456367010255578591513573421206492880685624477162034946264562280377309138210641892876061687102740597047306866578412873603443059888657468119405740951900252950542649642523413240096838564521580816351926748867491378634977289504607502510255743742412953132865144236798280694431422532405078709677085422884203496823411890330191722131917706231604086398943359638280832033048853551750717311938076463586723656393953365598307292343927271063250586706625224405236921608476010573277873886986620095537891643518426360152227105085622643503373761912859777777136955101311012846417741996911307560192837380440365294472893182913358218200792937331119725831422352514110256673244610604460961387930372877141189402388825217740383134890989242255594806301148478784417010058307485317955604018165584511897947434272363128818529149542143325270990966940949107991871547977389411270597052806566657782242068642600613211611029971381412086950364177890095329314381139305092559542647244921703705812787128512716357562786904810914123761657015140435063969271099849463759816675935083767917510884673216392556386288907515841931892113335684118318526052871425960071407938422918496958929675693627398969629088000811868263403551087890239014124018116810748360105168005433602506404507655831558275269273211068701044605206910807877340684086247873791434621402070641812111140440308329308530281846242335729134942886826529285973254027343824717626539091772055966973405427282398101226731245195318218341766944777882579252285385239734759841094417919587704008654969247990738943058320856427842416279960295954545703342996440103245567596879428917337813231819167276952683183727284179623398754918911024023729258170359091610652607152619258816831707456541766092352506066712542916687664002171460546624935985062953279296369885626440572048424506946174355315758546043063276243360962746804640296800934307376585346919582785597631260055133758420059273380688435548283398815410201023027249961530075239645277182483071402093911714421651642942171235326085373105385275285628086103522495237544861910690175898899002891185955271325005774571676357034615416513471426334879047633971577555304312407723537776977344190558488985272273310578993510775274577518751767168077025978808826043878439977773661372680203663515154687134874498108996708414431978871432859407081060523752658241876175580756511087821133643910433626890981907675729329612523905697876361444269849859975743620178442787225107691115613744595509268110199417585919081095824057263833526093287710217871962012447724808699519827823240896308899266911310649948939022299307609200540703402045703218243449733930879706724210376910342061577528057604404843559314040888926618794625635267740541515214394652188562765134148917946314824651622420928540214426439658536265552206332540192028664114402756208076781664042207556779479139935572582881573584392389199491561535529414972439211380330357482075247979340461688237643024502060981617801887446377327975677498728533611484724028856583056149046817239535000150788568754166278296767173405683523153199767956224534152738373280458750974727903998760849119860872075886859995789163971301055510941751227259260023070147560804158594769960976887383632880343167948567714339479774637332055307617872662590214897731862397021621466188483009425909580515745555290364322684625114923519817797058233294866331404470255114543825540267626787565678577540053554860418891042131866293958890188472112910840450530110894839167901589047783365460908490499517117956207809061090157051289636524969767540233096108049014584495301220633783898058704813604278744720435359911827512430677706394647363691744693105590324217651466855251274413207640229714305553731726166953255255219977224426877575082344682566724839243160588399113673521170423526265542215288907596917282030020439079423347942608686077192076119277111632130274220595401865931226074654469131878313164079714875653914915079845757200412975967534911814121217250664472613777112010571608259326774218983448202288767379387699963588072898725383657991342427980528809861722971924187149711820056587393501569824265779598566117506407463861158675783686914858411977950279620878404045863806043760476733861384536287840898633768957176823578881774883130450297341328759068583235349380854766073252044548344790407149603883521308844404724925561188647737542211929741855127931997080161813718545199897421280298299908623920336688702542422732491853393343267877743796473311698632346145337007137606003324426055240787403076920411275804617676713012989004017849269585180445124944698951711462306481042585719585059203817318450485366410948772012025983392935639543455513780176765787315497055218282011633260891651143252799217289598223716141720941312626879096499349034633134511229091322139787041901551770621349870212100752846772754596197157212626679124013062414101991276062668980942815597016339215350949173971535202070067301948031493679036405807028878193888195674139818282179455458547356353828792395427034259492518170228964025898997038620804294504435703472449713129375280542192418035742991301809325380813987800946176792152874986193645919477658986190636753829478984361660890717684810319256857633873767799142418206105011113225410274279953905529335850169344284159275050322967352290983814121705793554370431519922289169539138274596244197105676082363812712432656474974794980051657436463390770524206578389694795451982053364874422829943884627445083796022011022097347886083163538283100746317566362710699489625928063264727801458478639197729008419266056053188426574962248942401668402915524968405438391069807060700074516862396264913373349490801692655971788384082223528483734800120744233181356767744438073018253029345211114120400793508253812994757591694652214098625100166609823817581480471702558193214293904236160918502306956091296929115791809509236493980230975178155337035086771358561748487366172531313986659917689778157251089550400735017042901034593578854279696411930148945475456761642370151748864299480963511158810996931741742156055239493707647048671709888885187524285395519702861897347123107930630263985053122304104974975234171402881175315030805209886021468237329616975470951522609233951645694462251353075225701704851171125569376289855244726256408421803597343861917450594535731317210518829636137043912638722116187633085216219603028920676819143454637467210431213450361438338178344806991416544195778529135136831042807689780062161894474758143009532430500371743889933300715908485475265102186702981873153951491465707499190298223663750102774972794904395085283995173290116402768273698689322436327718491559404501704780190162200870818658683244364897163572683291855147040405515194346496235164234478452060185203071866642241829138142804916270760906105488044866989063016248405350938147605257872965253200573691671196100019594628463117181914774589237038602502563405301500849795304104092694658204225745277516399106024726991311514448761280875065890775463128861146377632976798766857026838857001971730017242511328710979950242499864980276855044406676082779038623761986708519041213914224783438615107529334174176147324794444503525867675796378473757411000070673447508363398386654207917435111541056068337201875102894778280287081595905238095094975556824541736237672027310477597486452185013529274691449821539282414796019941564501061225255523710365002393798877578771068421096668634888834712537971392716372431363640459441762494109423975907914448656992930591301422678675830714328599751128360973114460860252886112696642729382622594866657923479825166816923688414167476762705749382952482304807775138243004154935825780038035360294900996175891412941816560943174526485873301313904252990690033487316500800024558279048503554069791511174591874417196595207934031242545643202897456655049137039439451512754635803860967122842147301571611321974567431564887538047849234333671751227302871097493961135866775880701635864447320812898580676894468041728444413434333810121950584326500055377439754009004407511515534952928367782115380431844074257012310238812871574099935873188476979795441603145161512596765324052462178351452582180422223903128844992745488163189217399381845994591690893077305807193370015026890951128332069863729404544854927061688897831548784930482639549152931489260120527471965116327560033423778452032543141490004316662395177054420624740421239602355966130795288313349488101071713150482943106748584875863517765858354251291019963556158579205276837095509591633498261837203026318495658916029676917842528596247723522398225950050725318780675823484486161013402374748998332726121431740709399329494478129478512890473200553673918696497383685715116842894503458384572123653946962401427916351777280277262763149035235319149652045338351330161524952890386856934292339663916682033961050896034928690713664593165021513392386489540984349189348258492105395513189663955426934166901550576598868472301746721306288500077020329475792931804402081305287654692567280103473233018864800855422781135461886014443125753138747701328708888169580683819195244946092243395581479663647551335280092639137769367619969886784408683055216630956199319568015805449979001070519225667440669897800696769075722521624003228337690984855447135740624669036933328520652395919184229374950588312834527078094574014768504482305820126947003627118584382332914381187034879481822739323773219865161343557340773567047376028067547141459115063338860159141714389515171490697532423568337449133258211886190624254717424310686135768734437875152496577527109230483819827407903914082425133403335592739176954398321078921164663065210652296691379330817737209241567338774656432933315208951991597242683895840404163039141615495539684773709773523075864574264784470954816449108870497079544673133326185270755754928818776771098288392504680468374290569355781850031711483550439287863755785956403562594152219785230585779385118450589449101274098044635984912987054326939137735278458266344442501621230745205472039156499456171563768631348507537009697563415762392262326591761627715454583573325803648065620681177846161045319146138353237220680040971852860628732180314075359318855323145098483449620471329010298368201560578217416488347418246008348011783211786160530561609222334244652407650083606513143880408515446779161562610698078340074814027593457493688874303738467073917322030029946572298715188914673373805517610599532285843802514069988207880715247828797553818760595625756139144180136938132354573508004918088747812934704426607397416219131220190946388260401072900236619329344032203353826185295833201923225465703788158974873811436072318289310606601187791595357771513422109506358362607093479621051988022944518199537130847741995956453528529424065362411842057739563349587849160718781966790126447155275717536958636126649749521029109460150640002563975475876879970699527098681833542057223275447922550745382097323919505357893118254162807837165286133726116544334218740890832820881134153499596359794448137572174614944416824220589344838590396639977722300268549505235974111717011639582440500890341994236026588345165927381756066277398916607868541555556306124596363161218518847796306891791156047581111678200753378907062093250086392728483818867606879130010884337879684904061051704062159189161419384944044359468125225254962039417918865484435529139017517751811716822023501191324334780788803600385310323941454725990445693902957315883557719716130749890416354986029596433147759285417775023708642264320977446869458185623080874310263816459129233311214446115547630609882483972580550897927804729716675899113871649417775120996985121363808629942937701587092174142378149903883714292160830058077921056526254599612745229714667206165338009524018662909508201131881837798271024869007811171905779719493435210219415612809859933929950100978555647078111855520516238424253400558402973050008362704615590144938830244264684346052193803346472010866111096046750127849407374433725470710851766923994016440523066936381810846645214697144960539127101822062593698503145680143564501781592250206809314562229655612221539486309958246817044314647195730069714220099968202932280771034054030902175246929617079267715088944865815132868140582356650977225244617845847986757965135411254855565198355895826450297812858311422677158812829028197834273420102051322121199492721198842241697849642820869648135890942402350741905366948515692141414948304910083930893148324193406274231104480166887020887742536647682073253716319764693285166346725328386182960457764161772294087424302662094244983551609050515665487072964073204094888300503904958087187022643545223655345906770068365037927776923297572236571768503945352684297884976131298513437698219890973433080500038529631331118783259864354082633561147314094810701915032188898503445496364839535897466551835200658820739620792883793735672286393429525775716769495668152976958799541695772824550025106787538066114244023980945916965450772283769168586411729318007641389912729403492885670081774814058089454080397314496647903496044345362225739694694642962732640991162552643789734302253166403026818445555982707071946535475643738514625379652852625289269022201558607296279673789538158648526151760752037301632814319387414668614704472553693903942093823030600329316404367070943391762188724096331957197568218223921096244971236782418764193344266030629113812478427455852064395427299096420236304003218929269593747119260853521791662027076162293305261410061095777061184604833890767774985878019166048147876918107698511291288820896926158927748627806865312258114449279878229865364530971377140535998119259892999112262541268908191551581145604455442680713910733409963945635410414923939659137974762544576723296172161234180353418909934795293153106326579408395697957186112128531736056639658440407559724903180296344500220760996017163630350859002491985509897894972447859915254399985798199756391245843490421572190685791401240694063527887612901362555460291274415690034975063948882102742983783011994556990197945632133456462755577207604355364802614808522127634999870925802521410372221057908155617299173665649446333028331079614746841724369362332554918436243764916574360250261204437701336771851924280876635692398860889208127322201999760858822112933813077343962068904717219176951082033907848858212524391918787428839573397742153257960097802578536497604963285299784496594163373150777641704891099513132589359132127099219755683904671924349932743604732954503931024159279780714960768616683654484088250114220297717166094113703898167754270126257724934935978764839246945644484055633630136568865058196132309475345092258066401144513518769364035117492560655622061574107032052462041578533692475062057389017399944454862754902624800449185735842559392536158315922928741138977628040782361169447945168903765713814387536212385921981056901242772396442537481416490972447978508727515906809985091738143183843170025273901389854792227386782750598189694057524897552518971716792260557490350650167407781352863932486768001813756699262487667024903869692283863200855806165557893331898499632314870688316001390961766124213823613191140730358894411431076432568392415429564641122938573028730538586710978368418497480255585177354057546484634651749220683857320084201631254614288437412116194975549778283985848280754392153223262555189002427077103014372287636989166091793837470917932692690915270529091405299292625589271663325365274344054644949692195818879906002371005334618749305909707104058254292861991587535241197429033020095043931015514967683677160494373478601437455918955032200859677034402714165209783694074907104015450279081021981325463836570336613361442526566920903077532062803721616104095515369441418868785478041689059498852487136881830929335718692796383213565911514026091807094273043788575293850740676684130872490030488157714502913952595952212655063879995276222847459412931683235528413604302083906918003142664010600418769298877594270835740895221717588194979598385357971702900731936293318958108839171610725501356627097404351523464291887679136654530217089332635886491773136305490731036046139356858873136044684461621217743213596038974597568352403989149138328968217381500328641580453954277370495147896044445819444569024685798667702624785300627203266062198017841698197457945616517095223398714696962312613049267391935434166718915105007112318441332663876686800283126346925330182926630690790197961268808830216251446506626003241710515894112252874612756066350960308062378944705296177462166641211487145506204222276598604427076149593082332692148279428531828402854090798347954404779344278143310705042754542061330930217057698813647812874602207543224932787738757048605233709810641042354441241330955236877688009195585851020920017026207937020186236171566285539802791568948455398983537709682444133220031925997600490936074765427344188181113040620613081902503871716531599494621135612204249703900732000508367889118656447373053939270104073738722417698100697077387694456418765409467921858671594172373555343153309888062891222973968003496438756125507614404437988334841048124271455939671381135918730057844523427354898664236827754603084826236694074272010321519233039918440679398531787967181491211038049496519454799718334117976815089895158475146071456891006606244757428805563464734763938878873342309111065619752698798906262425533234046701772416014249230883475679961523376374811126945345619338319381865590398234545159755974337336908566660263769696460632839750274857826243293960677846730804371104032118229474126563443645656074792834331669493093934319996722666965124367429952202909380718294059271972065071873359113950742281576559172960956278841209912678946985157977454536344588784954518697190733068410610415076647760246620534743897987043553420527690548574503974235965418766162577905365708691742633984398553732018758896906933193257609494698083042995110691406098040925268051566387369498216503603075645319477443682005573966390274769915840926061908133887095670755574267532015457122385049025215375247670268617849731795595059189052595772942848335545139900863926750974299719290081011435521922198292236073659365548271076742611159651635946388238739044409883598388981605374275520493397825570525751227807877708801756115508572868714660229650915526724303640155849265225094540209438205202877676569945189721420127269400993631040202720710445558463446950667532083000389145370452936227948321879325561313854464493739387796606419634095568006089927003661518699026530242744706771109051104666367063745177786745567339133862570524565991010542009475265366886068077498775969984582328254203724340786524075716735080895138578583039939930426593318157451773162002193522355775913528979731641827458578324466744350733398436835373826890584645728997051255331494439677661273569751412852392553065149309800476786832657853211107754982210135031419852018863444527464277881732700849853004297817667191489039812316750990614327054123393868795761242674445633734065510111657680862873785720558014054138006353356004642705910886432409471596818309556773883174817142826887687234549834032255833065262362083743860785996220018438784730616047887874815648013531607057071670891041516154583682131908915299410478182679538422662651397139450765285364863850820850015156251201092042901826440207133499561765044930857694779191588290661800258720297678508437203493271447221644510096610168365133920364691203175691420747698930752925598945220633750685966746141744723824780086505906810258003406919926857199361410182148611258539358305469846363406278738931353145834685440415790080995138284168502560977135837788087597360030598063488228656910583265564638290961233598214658580895814269103977726051607226171091021197372425790303996982507193229931427231553785338654208367797877550202215622960799789207173903959138467883715268271405337460106994295527701823216316803558592096243641150098833131051268094899109791563194407166044312560816709961557585935211186157347601020599493622708295620610617323298861686003939805820140708842241308483733392983436173442285545160555512684157785745610043943378430579727517185690777433328102924614603915064963715872290092384579682480149475154191772376612413786303714332826580604099974333763327310631927182762404387230390942475840942821099264618959377655588174460063419774351444495432794469299999810895503533236610030820828216257350809315049875762697676457192680928921882684590184768247821549824121157393267394564364721057165352858205013379508621675692198890550733599149191092664703958852818509023852272027617726266662175451550889796742394790688794819002472760040889750285416168305405364216247798321039303117929942211046433801240240614806742230261838916148330197350750178604130678878434948717928386589529704792785313873655816085215773651198389427416585623735153425928669439496306408503751406197131372476394233847936517458989621257231515055749105328558437280247171488183351689853533802598225612562966150091111757469671936955170498507444979690678041635326507275815845836604332699734961169575513954193482275831097855138938628171450109905459650861326710529784174928317824732945377256627468586764687959174182772878294703184934760126986975752526158867634588956824334096460555828592130555405873653297698228535968400607077149629600339791534302906051338654913958620410459756095058150412048003839943488264784970385852453562655617315255088601361069974635798124261533028699552498811790561173867642209657825953318566001551594376383955496500439555650055022003242825945327215936732007241482962490103578278472143807562146085487936048432738056623717206039672369066220872690017628878236518250970933784703807041228001041882677807925949708414364162159212633472041868517624166813098695985510314120870193267116873677184171395982335307217445948797817528632789221420551187415204771835153870131619258828150900950531517053004871289599551515274446118710439527448934074332241483479979292690048801977937278401388510692942534544860347150719572178207824450102117776362232192759131462106147620298856267968938005146330886108639477854127699578576667096505558334991035626747730639103403841020953633746315103193065150560834135208991022652037169186761058016676572804882514115891981078260317004962357805983139398101319083798696940374476681796329029165831264929334243157592587219151186267740404357790128289866064917338766624627749137413294099220370375441730090855553832781137427952283776238314503392897344952427386963808192853474414327358399757219503595103283326067405848595723173179667758304081889573006686011824006779955230418573321638486463327124513509289293593102124197255309360477617575645746988965082445131933732233360991459586913315856804826442962850562887633070857961978624999467905743418961380196431982012677643053673831028121814100691923886307405442988282024095745034527918061895621391018557806186965879567859480134919597916472993274217259298767838110651368850175530067012123797894736171668100941075431246815580751668905133163978470768349739655440232401782124563055415175351995209515965747586121350877629966944923612104496822867262443265342369885865339981742021830042459437844997863925201714713983844264996472680396325496824412244234091965206511925073112686433726425669460874559680549890003532695338383172786395715016326560797521443555708007961489172756401882788129941713091258999223809095696245250840649870827940665067370675463509150066915216198132657385620478849913638368968796994830277531075039933873349967875235854169947666398773976453371246137180582868710022759410548549262046739399647200374753359392267863154081211001608609958801228018888966112694956684913765559647268903850355770008625452775179632855302324128823281827910404395691686421991817201004352720645358729654331780260880741961156223989013341481798073489803977615945297069218575444306087848463950813346961703395367336702867965096483460970410663287402364908523730468496175705182419196663689289102891862568594649422973505196815179758833300140819295244969830050539808784637610577341012597141535572223323009806055038546876387680027837808872567558217488017224276178493052849915434553698845243719815528851190098957214643880395035337222973183798804749773112281701277651690454159875354919283049193083248483505736035646833175112004617021633571091614653602992038021754558004995548079861843309637210231111794204717429764586574949934056889243718995026404877389277463267758141002261740797869477706081832793747643237897854183335864990723295882612175667014210406627723996232899801925259636447818039156497212935993314121007615866885799623161095069097987979757170655201355966061163180716478909797506916000778431955820699654525273378583399893090769028305803090117368399312665274045404504296480936378357660605035595427698721841351355229513887950746940686219688272836456683981623084204568444596342761590292610847275478301700243060330890761332281464690378340629231024191050229039214369329955438611749667324552247101999817605070144873834884779086667638491788352111663552567914313454162811040135988967525987185716036521150462685644282804934715985681932458003980511198031288710271366169439582789117126234231376245867632056300745645999633242626306558109340928706145109743060236299114740716470856684993952250168720081276927547288446289218036345218933489078980444035256487855020313107858456698770903346558025123847601488842544115231667635002216178768995186471489148746841267899517254705509962442451918450776989467981527705397378937927296246669864564844449400157001287046972172914616306524187272169862460051681882156640585407723152210684194393246395548434483367754711784594313634489754437054164166374910583173057437065303804876188935840120760199809345514332596715616218810151883357098285644840062653065546465394953122263725804080444605840955996508465551007660747956242759629804819018677183636131974713672472012528376149978941141501899568292177570801585101620401938471977421983070007703602021204140954315455341242720843014196929536367305163815404570889252271928913027099866917622250282321794973892284895423568386981340396987799298440359070280709522309174034921992610475696304926370398104178863979057308523380383370993633269946342925952651228146787858195756038765249658022882503401405457878120809559169591964762936201644981337956595647978741310020713123789768450012840226542818655447965186754155368503251397781759072289682549232630319416470663829496093920535867335368930441454522188559839088592918919975083751202550682513391913122523365407846145320823824367130105564306394713408558401897085548871007652114599042964224375606610210050159285684350891836894172321179221549191001968259399117519827521965059817160541408635653181624733941870691681009695498418834893078558805814391789103595982583851640112811798584954741586573882230364650780583427115566610310793661417978760902842510575793495446215754879765028418540028267101948797326712408685700473630566372732823516978031426719103948695833421928676656875222594637608371559096860639100633425640956268485123054630645674411508809087866016892615564477415056778987822781590368256245723410688005080000711448742579078484117102561292595713393189141622701890223117387257937655436739490371966736680934394878463361511396752154638558919305926282572501849531782438934325032644794115303909435346732945589762901781226373019793769931927113907442544246993601607054193885037183545788550451823349556721817025283052293498648978863259978365794634375173547808417767212746386451641920750360419585347593823921807093474992375227194836309555987265527587864737952897914621799221522133263410821079010677169673664912629146617144136724170308906000108297178294055094967963577094888867832552667673122929816651598025791433152160896372358908552403597137645594614203209506076299137153837945605204122296627134877146100167543321856345483580842299416862908738498260739512900666587640128712915394984397473843642750370299879664340975285228746181560424488754916929901736314216340485666775778340007574686641497337010014241911895050658162786038560069297978359733900165446729248818703269313289613228978484199503355639450182278413690955030163830388652003138931102596477424190000531137881525994618060260855504168521537592819147407341102015990900438855769657690019960347356108858271794061396260721454100096797857929076690609348027118282039762786061354682475591879750685952412753939467623609280138973609486902733838514236397452835971944103856796759096841826856999524523248483271139789670746581806936118173941650895202817656671491346889343341831973403276527226478986793462365548055010085304021978761954464975159481058684125051051724919576401566682914920909964091403669652587228867896922697497027952899466551300044416529900736591109086980677415896297907989346890693777141458211225774402511404635084519034861642857538624702845233275528351628499481465967989165673244175371862352264906563183253166327941913235683715776758842145645555726167220114108254878151612880883421950358600486237836451622255229876950631792029566827803869397283055926725177054733774770353259013065839797724559978153683515695182980107908770454056344295116064893971051050280961097328050131712288417796541844787366989992636623190702699026737819211734634572080545085761844614423017715435998848356213244080812162251480391751489846636266556058597121052671906955025267141654522651821759386374321981190833557851441928943682731808241896229634987382903271294088355468977877777290888963026889575431902484383765711431870885357832862079087725248151848012335620325709139260213894781779135967487711997031036521211670290376680369970281629350359497943168814016721748790188916444136775595159004842396462417950438251682508235686211029181877399233449471782291988521827514195970710699072570668249802792062514223578387177564972005921063795928553349727147539555446650820987826612495608693292328860983956920810892287427571203770090674364635450326998395061487731721383274741084918907523250826589553283944306188610872855125182371189976845870880596327298825154642707863456248942087272103173073848241448780788329934808665444566470168448664543724956087845515632064459591568954092914065593938110152486932388067001679708227387640464492075644073830692015094697732161670812901641793379123647248833846240689850848587754126386637107664866574967321653645708277790883647312125329393115126089720025159724387524577735867722430292303645386047303931998737371480776607720232694426436039473389633255420772888797173334178186895943078256879057121353589379077937818249460581816372518771613226430898983935735172534004326698900092136905625258737704684943320938958379920569797148247940417784120061339853998414350604956477405667357216472631742464486530153821144201164996249232671469475947966135337091744439583943248784254794711775055824469762275805967681106371424223641786859831348582832435180514237505795798029483318093725386063927715574230102206393910308222079495463023787138639382949207236086520966395928711649540818232680613346692835983945481066918927104999094904081920695727542803406235453021946953810485465568681460876698497740071587726037499109797674235088867514172255895643387794358713776794193424961722957671070816831156277030088719483861290060219285064235365660568734193529340261449093869788778244457290172644214824079388513275034958456762723355705089971009447292428715591279685307199351633567824864842273476941189085036206212605793230965177214025497726739161093134589846842543923113733530478721612489692154715563425877299102405372211773403538066489088106333526568919902555824017047226926314769778625738898725498753416703909552488378270156424445385349862945330302486109914362907209577149228141459626939661716491886898351821467959857086914916043708634747664183447183280162342672191571468506506346632316845727132852645509763376292747819042341676941506754042991610027982365841298568347238971121600280673100074488111117368583185544673730267634929249716562648082049903262821011760482048114570279431683159572854501987662550958338047421379010867364616085984603018531516251272711535728390568904292730363859275662195968500544691993595142023588832121924124046256680826739425667936558311341838462981904483248420612128515965497395321313655322208576391112744614522785640747613230432192181671286592723280774385068913905156224994274840500691163441004174699626757728504368482083697645874051502736116183308320201727173689557755799524476829979145989825546954983911049500106157458499976032589188646031347963297229076061914462311880529214806528352156229590005461212094903735761558756377632318051499624331449725415024085832648961519064435086868667742644354349489656951588059849283012877471657399370589268786387908658260738444728755114234702146339310388146475311343491963345445097314409312348928064138845733622577140306152872337664254427496568879949000897417253090859834792831949301501645119020733614294144960801821419749308061813216337053412423249286648873943905275119399118551012475953784332635656175812352358972562660857507654907116485954802438787446945514531893803952812593112244899801427775578548513100769416916674607950852162078410687962237259479215160511996171601962968271963214488195611010677071986783401440633157035511415966250775622395206954267436104431812262116854882618443255386925121903533851419812468910410551152784649282225208104944637415301222607974672717035006811177304737744865944381784700019785017930564291720145611117648891785047948346925861574346572585005882462571663307131290003689345464998966864851144835395488051236729859243033984684399807735927448479456217960924403470004700014522410866273926272158580837619913959636344795086911040536064235920415753069105446746470008461103601924335317112531345501873823735334885477517634328452480500419541582775533820430403633182384861173233214762200295049684091218955035234018819400827611979046057962474134497454324266378312029354120547976142750902639661984631775792025959753406766872782305278714477179786942641738460761726158045635543978108796242648501616655792176226242277170543151530405344898912337651292505210781108155504773150552586393349867994592184103651450801594986372304307277434075331369444129657513283629526482507188511388491262600620483530460213274528270724219994570818461931565748875762124855945694697140662416323634563696849699529188723611508238332674904059719164553699170946224176694530270316754416536488765764893911140455178189311895878098815347771213752238212512654385704891331777981455239748120048047206103315607581508385979202230043551113253623456698612450359748742320672145138221829914886582125908488211760727278550417140677680205994998844403371281544114335329034083977713699406476930034348298690305369551967688332472490283774772645735518593527034306091198228153676659694828566794771498954456566155273929954969953286349851144843869852694149016138577108690281141382273890333436082853603605290671062023893939518713742536826010437469312136278372649458363568038817782338744528527022860232827745000962359640446819776849148166280823980770944664074787795380446962151920464185985104421220452554423231364724375020982828016876407533098422942578863587776038869846460331105742852461557740831886686877286196853693777748669686781538800825691354072696214534816035809956172694454048977111089001626070164226828768966992930468764161557455094329834296323793551199469834941760712271548022408120476395458243994380709326023387396791811367166890724830534129327328540652190823427004113072426135556267382911580521836959045987777368260689667934813765325056458144665073124576591167165913427846293940570996565431279305717951893215545132397442208125723144930230670115942040237088294552557164472174155382606348970357800513654392993822978255547776083891513362459207520905780645239040130794135533631794908010008291141159918208007204486152436434515188395682904994856182739367067927275803287063533926901422436714458440397073179716481128269978402934720544033722029372595917186672478406639694201216370484426591911484626769352339859408607226913270441987385687420703168384459930160657184037665003140891756567138521804428203547749816804397972346879207678554365487105384281696107837320711830567947066191022829076904604192858861186444513541967321397858505694402947431698860686104278366729541156499186610982227915088131486529955284332070439550306078402824268357862228101401695166288618275050150024070739529452207430590213348662233757069236821940782705466675377152561578148848846244045707480953882158384119766501330558887143842127822577864724875614575809505869978250710268101963536689388577253597485339831843517821167865372666471839750775010140400141928930960766504375172423939429585283394538558302600545250562186972477371299011234320165854851626609947789165585054351895872115529415342219673092033334050908065637465099114722117296076333845609172566152750605456431027735610114563351959229201049319835293486161918134736510197581588195915035066824918345271690017233704412306213370353799305840618121326100558233223435941458270362625846386391364852254678474352268365724619401969700313977830330811192983510299896604372489524984966927772450879807364902558950135151820529055372948049404354569068683389749370407199304376000090680489379870076609746533635690566946610812369774684813989320454212767982636543811449933578624052625682023980833325096415505925514585137639200093600498386698776787508340053947145387856646160169448679005275203585253879729092979491956357139689642859582800882999313969029999220155781982908338001152310348607615360744229153285755782528093303491780292926959078672345646175824487740654067744345488280461886683554070706358993262366799609239012982742304682403429759532960314710376773959085651215057544640206568835667181799298801338709666391594441505446286986016508727502829491099910882878537635508800157927764701332912248391954551840356450203303517003047163102722246115302494496244778851603570381297803944317281501762110607833800899384656113027904708198309236303192657460706954006689277524777782234642559053439196575052766729002596468831056593735571661459603321266070792296782300844801319639521154475717804739560353120335514714856420375356733196279967131417969939147937858027844913048028775799455124683027828564554016088821759804778909170328976879379468127450874347852717855992556785617601961533044658656943569429327223955938914392714458885776058800365928182106720017325931293202995872088422258536245236220214203921728918101909290063672319878738933792066100095933142557899507724977738244346175886761421568134843507276560738366977484829782823683191355793944987629284103924873782260416176668581357583442264053005643708285979877319525421106933737843877241536280967828818224360782833317910872188339978018165492945972380732082495672397526415276262698732258237743454600170793061591745943078548107077470210787446754106697735669014260883438217361471150947063885697379688461108329078118257291239569674420750433507944034864629209430270471100706469956885721356995051655209806751969985062597246233682294876919725887924232469522417488684876834712142700851983248319185797070545288428208498450016133775916593993550844424578846671519793266392549238161554169225852960877081785138745576327721471305736229408816266268693907668370841235119316606137616624122079679939891389710302628876646889538617669494704229788853764057852341374650160858926114900308048171429681678349227214059616249080995330655324143928228660722489374167946069515143002960118498855654218332213832424130734285998937986901983810937315962963572415623363096089369123771083812314416311601758114708988287491915834661985541267505408347006394383502263914253632938822285538470426404007681554229530167472021810349582842537994262877244658982409758492529175003003944475778310219108381764897965804396942463821111806396820643459968827625189823339330416187388455867052963736845046166880767880881198883052922378658737655073030778740869521514745957835510088427410948932515933565080050449094999677089802596500219937748962694661051157657617841688064353631361473272101429530282282968844265879403095008085710353351751577421687487714111196625265476959722973781712934623087362658118841807995658154513993640987137857564605601283123996047014513118403313786802889633617356149104900999646242056871182611394885195986532387779381302693663503172346174733181016579783330171062513487046152381107365569578799017948282580702152971717345218156739166810213776105072232170531134675198920374988542456739603350990001197408392467387271340047057285238577444772750145584801105708978598914955458394948312128112273869386941539304627922551081313897594550704386394685764421402655143645982353356967078178930388913620147888214468522440094056875157559537401858439389253884803468953822612401950669815976288714250697562643408636141860131346668556713737241233657959318490827865906372910407394972241226738776532913256458901838888178153663452744419116271500357534583774717667500117225904294912233536251554103967175385616822341830828037854522862280900959990917703612890597890648817577448257255252621774445986238060229402594744668054402879203338004668036475296364759706377709176276436581546918639488942121480548550601205083149977039392207745978594471964177663152517187617888896218232083523275009546110741050948231195468447699148809816730504380036456472677556724574286680034703437507508525303992553174572813648585557520412046659087037539647963177398400319184245537753750222336905883167578027859739088659117486038292193756451539082204632087974223143369034599700168790883209858279435541850023115444717499395658450840435310417278289768008932859649078682649545383919970727234037147424633323465600431028698411758458807125005416555157599351980221732423297511256851011684914797700895193108286841472039273197370065343406524858560865365520973756156153871781908188125271093095511223353568209005740173054395225222105040112665589427869547532086084806043686638425582972977260640079571772371649138624243049590483666320473864843374238301340973046344714568144578973492268362109133484628278309223674462981831313755599569157985844783601079513604361538785818181152120141235699145716856304615267705041723188172364292398512114753583556172946391911072461044136032334712376839888836319235535881063214515298304431632834614926869046307911299880966854753829234407098669610884253025406608722838598437034304119181659946663373100720274643522486545010535630262618563813369299820330628991536608735278668100669044533013728659754200723107380095758982106993287190925340734718969420200584327450903080947107320679825845982798478172337437267013845522714835153480711608211089713661568932076922754159865231454922126475673183270525047846591507637579203763156453763460395094165992684392071631561340517925310660373365520802548232535649550852863641009213453803352941165306184433641617661314338324936993191169571076609747170169593985435684473202552725587479095370787881128623082486299735161200069677918085256691356671471483609064031203103503059664009779206771976267230582256615023522322308537425844801651863689198184303607865388288804453296931624990775620836097202466418551481743682596457991005806850601843778939649046618520036053619081379732518998989173872348906379144794621211146182896281359797056570544616648234129097273321029367721200573435160737173793483893288524509227819254037009571261076746157196171475664403818128281862188348001394661054345994207133051597744839763991554968383474817702015457615254835805586795342408127704083315116968393255029848857852534478333659814448240280502667705511406141365996030507088171135394552246474451983037601252251838347615673034884512647192459281588561287307017101575610017984979964984109941714318884112702317279415558210826402998678645561790477946130385926487717996591188197602711581880380414693231658606148351584693348927049528034180713301481309290167158101598382209779241301499130377299907986089199750481112974719839270281746746212862432928504971158419616410341707799119941073223297891130231321221129759886504209819653043989348025070185729530664190914847525865627989661194131687510738293517553300676090352094651415687992169951428884600191759368495336470670257613414586162684141427450588950678365078201567263576873110980539550980025553363116795012110314373402992533247376057636910917217826955946289303925497920506114040579979118574309369754360111449613291158926180594576971372650932110200046052976366396051547089744089475503386976667092637150557426318446393826760584145319205371315457504027134058248209755243900930963273266443631787272080333806926967504721094100304342386422753160040710154387322751408716314418431505996755648508595704770436244659842269942355599128060480219563742287759388139412778483210157800258713740093607600865656202688962352253917923835693528474052364476427726999907204534813930779452467060233880765012712576200477645722426750870068768802481585384837401333131328241582771479345487307593211959811435113070208539319632476101631249330574825588224564077039976181050140255330476149634179215151171985841143978839062943915869806322217995892483782966695893925089635960719986482050038378238756501797855932444867061625182315030774354428112354834602928956368814665150133174217406697266302585670630795502325215138997232811653841528034279035533752828042032997264522817440361254865822192918300234476620171940659049620632437806513428140751759325962612485887350455117976196445661649761338333401216927275192579230182219887506265586188274013922796126837903475710661615172706776040828167629408335460319300377478590465199369184265186690452153075609359252947092137029382390853819258598807646116358068297232020957272545889332662421250313863339164975598112593397495342104563016172126179579504561754039586089765577662593106926399666318522817411397930004575542654270830919132727202707177974406036666029349420545880167082177085115057712232495744967963717113363955356293206324562763956348818959477051623808529672845354166236682431042526639932205454794344371505683638823483024613185766189098638622056613804870661602301321285901380847131794321996063750313395528228047546637256660046154217152371852170268128725948862478686399866136208429122290676659553281058483889413516086603680777157783009845820768743845743722727937548492401822699426480858967355770889408405930355722016230378686432927488243472700051921155605231273738542484340283404932365199439569634333826672686433787692370819980285214607206679699584100745570635289172750351814846893252183894484773303848800001171735335460506853295256018709006299092844536488601583097126318090840775163346161699879752805085631041735658974900269751624225276917196003813626688981625673056731721530460051274007653984218222483741987255609977771865290109519642071663142614550752220978877649003437010451400306374196523829175233285507402174395512599971934885450153403342021614047171114849037246103916534413959212194150806276589438355101514924242752933837153336888299140773038219491457022985872691436726414481698723979126568051563686604994390925915843900445642589133379079767922697914416146670492217693330401995877471682611913902755517147364410221621985655953058566569047521518720055587823315625116851528547005337042214031889237464952852207250827837413501118488211330899602016539283598966951297156181991066197825356503269788976582414578582170858601085120072368435375632332031057859342996513860606004951750908473771015367822775571609411506367890355236399870929978400525026919922840143541228380468848451351628061166442986367679380921374801934950325075194368700200236799674965641850685853299740023072405311067065589649255773186730620551991332002522325468660276468626493792841310916773665632791718369173208962458445147796960259616975384030283865914964123710732086337009715732839367223354994545384647996639087498709733465171785449600354071786462529200678275206328089019003687583581545368724418040996129153089704529996011443619903338058382031232639438152418548190053495587643967692440032252194790076528626282540693237816174789955954568023148101653004747694128937592490592304550206376029881130872055205727819013355194447694798163489804068798565093439072845046993113180192289666926117497776788038580190119640713885455967017975847632710888287692152712522142269523765434765991611458691794172325233840086950049240316012889933509085825330540055101260777097871401591382557261980683948291937313523984009431127146980992649676954110711621560101791031723812674393042197198774839836565484626904012456388825892951595106036743961287662097292217750946138587961821019809946411034649585149274076223936386082652370194828845021526294941872914919463647519605843287574017055908210731811778299073996214094972124604435645045652181861021498090261372175345741232336878011377338465078718883974267515589376535820593693935622890261476832058613088013473188486834902765720279378711265088118080096488716524420770067881479486213412717264299612167890613089744478378655518715878106875826128988257821777165067475820804979276285495097071286687293689097311840454825851639416200058851872752739898525404215357076537427157354002510701482776410286746712863339371942567138756107180013299134496992850091244355381308334164794873229126651889900410067471398299128094980805627358530293004705085023171235748652440196478998534770588501187603219264202397090747762326165414655839739023137966015232051421922902919933698298798419750064438629154365874079203278816797887856199826218122126157246239916121677842588339942472767731172264708466096695585226966659833424136400369497818785653123714352412680639314068902949847914995861142899806519806956679894184596169652656727730103106565494325305580690873720006183654936467828278457126821658699214765677185358730066705146544661224343829736009072362599511651651609187052734706569644644961387199243732996780418513763341974216221520127222821221637625059763065037685054744899929337648691841804102797659149561001300965029311404570503200784482685036924662612758853136537632958275892101109510912468860450477278713452897814002194564873033026354263598697407260258291211943645280647037862113580688025214176809316284213438155086340586379002023067813500795010335258571039655447178059871071726784463122734520508000183580314404825406317619552811297424317973508965237721097147508801442334535290293911499140526166488663403978877695951793338152942735259839601738303688139362652412709633801782967854237267018043488296949252834901064899561639579216778198443639812268156519958574811304624142666705220518792455774169972627057345474469721192623806370640892591970632177579124430233382813107499485912999903882196752415491340260877205715799760807416346824529680207053920560868261873944086777834126160253286781326314286347683086872366604931705505857345787833435564430827265362712013132230210841505847957200014276347879276458154360112040825972032663392144382448303469349945290326072278454609276100418690548228790988808334448040795141804992766959503210398341212884877743740327909935892491662044480766500772014003027466169444096109143662456798675478449032811450664653262613479122167921834269677761322450985305597748513136653386359265974630652320372902875206678710887339852500608964987073065782185615124998513571771146811438384030357366269748111166697963953691544358634929894784329753798412736735023816281441558961428244460637887835778761606878641155632558346292656233743068997834169947232591943118597123005692604723176587809908630800747688576572720592785765628271384654155469932287573091834640652746912360852579165724974928953798320825851824270237386425900073413674771315189721836524231786880433261352724062944449366940918773179986378352037612870071552394459658619849914694359412970675216653436553334077703831268172093975000575850334522679821701853151437027652557319056617812075174087645386389521660260305133422713351245357873537011513919154262627885686781709060886749632000292415833624021678462728886296954176382049546795934689271273021172296846356199053862856864557224009817478644245482088280026531584414509206278091835703502825835933329563070682719450638495417178285320143915059763143490236796110194298434364143456660194566339337986672537601290865576879397509518957333457754629843642025319120564186314091000149720439361325905707247164052866210357836181418598885766480115234978166747077885160001804871453741114428944105861924080225709911858759107886789874910072246474063786221958824116704882071719802077569159714343304553211428527968998575020165387160907416096813803259758974499018197809467878660477174298581821459093450908234326085648589326240219545750471592884364692793938928349584104920767895086945053003188362738811074836971251685516315652556514039860446208272097512027597330390307555860497867570182740285445425032988444410335775175968773284226013804911943890339836482976229106399583786732564253792143805061968049847072837234078706760352526065976754831112447653557073015560180221591916475420353645612138892511580896648648978204920133851369898542440558199194820481328055148554541821499809278907548724299544383995595484747828176558600615752404407419383307932221350194927391371974323998755574825249747443655023528221812965915809258364460449087937775288081705568552778551746719268196487694930025246353801310275657899071562870582705475789769807531547099072346968988341683647343502853005727690869986737270826021769563083043091468055409469449022028545687993009846741687219449985868855270527368702524764008371603052091595576407985728105748894562041499286932011105914913551265877981116735205883020168414724653490006141676345564209721380049526999998406759742473910031885469122480319813703090790427137637367210387317129806699622357152964420906651565799425676480515549022322432824063108458257452417824137341061968833207708654140255458351805240255554974487973504104261488052899532973077719430662107879907452402044765554762877541171991274515855702108496000227933426024487782350050818116383493323250811948370700848285518035013460900543208925960894739555706118643517430300661637104711077054718212397113007555442589547803675139268521646560911960022147995119924854536229516718767856654565605334891183070717389785969751555347660938614123008769750948773185841311380187956585211229874188170405976305310597377247073735434995003057352915480498797643875365790234250229576817711573335897814460873945111193356844829276054877518727385820358985748934075193924818821505090022270038905482271454350539590013016958819403014571304598906241681564346867461729730317076066382101213577882866084532022562095935618526108430549663057899645163070470308530536163830978091079882430860820097733927861443750037258026378133512606247046250234194763218878141652052941068917270019236532725934585437317992303068487660667562318579357695968350724703147789680339549657571997726706725204192813869601046917561450568982362432875294140749636304151099985843940814048122471805380365942822090110482151345976514996136355414709654604833273551964016036332935893696709196223998347121686742920410016239747392171392729702247369641933609766864908715685178069261979990171355362966206248173018378099145851344946566323717682207830223453897369933655630420369878674343324581421299222964775548232088227590211536202551360399527595155927013682468879410112771812003731212812162048175233928824465065520900598829996895496252838190391178227233575962296321189090344383779720307532712111515570283516984973800608539069583372668304204864512639975088774547593989644312698860347570067566434593411011886843000457377080208866557811991062141856300244876040722764081579939083627650728765730598824981531263584732658461624323273610384787946473115080143812690060292873403292209828021496420905573482040258329385143749869413901759459600590474080483740805695396511268346786650924647000065669436411754415628777996643045932579789603344239990026799246750213928517590397009475751560758621562996446464005971751342564311388183186017946840649435397115008170860538935170504168498996698297039618756198407968914100019646797240413004570031196365296044416291989617894522277838525175253785638790813344920889227352568391272970102542032119651084803729356695471565801703872221861630735263500352745611155509826775352542478465630098517334732339797766222077116627880299076659907504027733962702763757400790475511712942132694233533577932738142320203748877180550689261539601367609058853308294774110497218934879434417825003494367357850434554455294762033791775696013197803355002088113175905721700105139116749449207579886952060923972563873545555094762099066559249738405369015327073256085897038567339734451170821510475921578701363113907581675978047616721935138140891147461838479613090449107884092225536101537151211314407751746603295980405518088084118360715446894909333838026811903972261899865791386613614831383616456708479696991524058558615769428926540247996808776034335877923029765592644988861285690498739378723905817153096228746660534758950238548879793103532446066546866485014431894958280480856948966520365280046873085467394501166931717994966263408775560721409347657128413653696853905629017433119805081397072402258365871798798804454643737029434775955678630785949530149344658374117329316272949859168639877045259111962996937276586269064495980492817801452670007001401646459405096046172465642838935246711563347926916493046167771018901309347119898652165328747381536339188134731084929976677149133339250888053660657026162223969656980799633581165435094386987886894290929900988221294408071334831382314387012283527093206913072356390189415318770701094377943247451602879266056245900564790884708123803983457260081167949890283625566438442591647632361346663052391360419637649870380772797483124604932411398093000342828473024838556104549093293989768050335695861284890485888997940590061054439519954529056773450549679588870080713607863693335647832038673828272618353592113752450722609005256127051265051152386123200747772035700716483090095079290921710418706306356207697478403226614019294141914879635883360997187040713756486396890386301905597678884813176698598718633102083770043609789296151684477698411505846069557224396929711329950097293267465953123445169587548672780545500981529282572451370931686503644479572116968857669571408278021623312602737305951854683072132564595610706137144364858163753289415202131887064012978310930607603772281489937808689623185378011685117743499505845814761768287165016175434843316195572423546826588795774008724431002883503189871511754617230150826485871428232760119008136473397000772776606743931516572109951062440776728244267502846921497053499099917857558078384027937272594334544047126037417426781552299397628623860990448640503320327501032159782485057298989365092538840578822512125483995198832410627383331920294646984520598438823656871112806021621082921412128937391471452095717499933023023396603752300117430900194128946224630985870151692210870977156922635052822318995404064801945486266006414081527296854210109093838399850167976279051589783368666870337423032511737382887586590643649060770107411376558119061637562991863504578302108308245807833609546354496308740090932426900544431932775105592653465190747584080127405103605890084439045635598070912952628436589473351545104184131710559548675068902380626325872292501624099100507308055918346193306083827327463793219942651798899343942804511235025732476516623165524089854547264009990427085066755846703285521029176459731557921332383269604870097259481165900240006909296807515934262141249331097243864562348987034019904685429821830508727843520232985670190468187854892239422438445606487523582664024599008234678957514349060864330328995779303605528940419792911174182964884586578264721681724202008854935332125706875353049871106434132866567048853575552523585287030251176431948033496836062170788399888361675950139120296738020211209899267469486813188201099965752524191082276496942490934822642357267687252447274631832024410882744072576223679009045638637043733204792462107498003697743441083110828746942661742473980722495059539296873887793303408488223218021528091399069686351128951348956464582767749227168645480316792903374716088616520128804626725911970931246736718105254438044213085227877915341645312686529793950791904723056638908309960831180526553885476901188541087677848353490108369829599660660767097842418660775748499613417007447918423509470019649960913101802219680843741320210408308837271432141096728229516929118173804758059336081991306436810012091782324326106596319747431196173334193173650669090994168146800411339352936166496939141402651741067653085011994736437872813118079173060455369370548045965623827948985174117446144474919083145352187976932376988221748075473947776976957550174997157384280823879742661546202837685779161318457432170147196091534122176920624450160997600857034810479669452946107301059528538771507247185407026073742726693385081393541887925818458646660689885465102185683789310966132750490608098456941781207703567973275325127416217209443791787552347221633229991193396375318112433374904307988829330193166658376965276195982963147778186221134171283018989089901904702523755105311612396983883309457393687625671940478904001831472868391965662808724093828460642317245387090979611312256934246072485341671383729537246383618808038096299400353328383580806150096425011310368772225397563265730243270333515335257200350019935619197295849843929819278183990756725211478107336717996742869116976766219241178211144741262080947493740393353750090413333831580183657800469318629910532179640780211567975128030349371797238525413955104353829249801968553419851656519134222074915528750043536700839531513390872877897497568436158157042107059055353261421753188813180199296039071561491215453991322425527800353263847601395644648644539123598257373625505822666296130771948857717767517790005274743743797852954776226878565439358751410366739735825540597703739361643960304149455734568557927228818329760971008116050878795818708238290752992352101233497304842648872520160033618854169687249758689080899338854305469209961374561366907920592456457976546713292028114774992298357058938019228651967469221716136896196961410214482250041999315495765504749622569811166127642360102422568125610695047201400710474434619634834411225757881820445350931558284645196613933499787649126498371321326284705395207559894987867835565994018222881269614072973314796630624915990820630830651115190952354212393925597154045127084904678853089876590151789310334503619463013344286589024752404419950064328425400288955263818714302648555196014557708774769738182451788483609316862612879990827744947141693416237216980918378062465607158274358194225020701150954135215524166349842927826853842479628258589680256589940019696389430013370267451105770234188740353014094902628536355497734906540833663102890380607162897562954912478432721942955592190189734465973470365628806117101952180478198873855181777363634923262580694607743818700531160304463579880629210029963592025697954927996347209536018778795101889634207815409621442624737745149556141139018758702070063343576145723260760340346383577453561264599350812776299605277606539863076130514965334888901587052924281799764529199091257594752743167192743227291460091529806176480905597242409809639523799123338239367743960190080925193464227933748393198091296545360794130297604096589959871985589021978916309105745908294213021923185624783108406018194490178718848102651875901295667168066271264586604638597485533802881829142220078329582034972076690076768149053690402484897727405303742216783516450755727121561019005945710089427313800345034797789905822048369555663992737447751708893201809189277921872556771167675570532731322259410727010314178776457109150772992495389931410629847224199244801478476396070127991578831717864067834524416600687895970388605174081615894807583506961268032615733373433772482649595839740319172035528306845051253942691496713745736841567124610973259766757613561654179454149832844587705554897074540565338295463083460232205210608698912212110710694992350272237037226051873666399245310196332173313975453988793261513967415958741347418951601447657103988293060020403764751638824034703349304931697983168301455992717674915573009252198253006925865286470232957139517108782031519525372537998401446430226144760422208889891855930931681612758544036839708095041541229540290335549713249074010619149274773720441476926937354136897115218908963908106659366386006410481397597451507708890247209686700870230535525911492969431081795995210215096871589565127713719682755376653480310310727170588931470599904570079804926368494761501056850566542482624167472470018688100832617257376236347978484532446529942170548458019081184751247923507205932260683029276219857576840406192052788925245769023793174603646886211918677705261212181583541924253463075842718527484530263962220444347312094615219338103399228700547248564047671413959182444971334527554846606974947254545085518858298104183286851919219740156314579250090414757933246615496498365865700363771321878186965582838985332244685445644467919110540488182909681775494132749590760544391206569781480729416398055183736774804710684693483325325841625273360454854760357763392629058322782877169491850958408534500721530802621460877810571658128229750691957129083695769637238554808310803119398858918434228917458440417588636047915889226551108397037937985462850089928031754913566433374061647922458854340906179736945501001550189191368661061410591437609694766849374348363556428878137448999930532214975315245478240290577784257995784428110981723103127423517801292128805197198767929787826428239801737636838756177500952455277298989344407757668989793876437398639532716908710127600449367717270280009807421061365242314696835502965800404892919079090973286029855294272148556106487485196766668238375984789983342331329352677932460173203386799322790339188273637683255361747585983981502882775311188851533970846975831062484393972297594172616350382547494495651965659275069748957341523073078063227849613827570470068530049888610200740198942468748341901284968035140792652316719843417172313562437692875527841814415806492191953122925444440859712449301268910619042810817794869597919135931801297390048152890490068414581024982479253344266656894414096004536965039621393582806891892271511444555944289554959274481786429113527736286997992675307517984899286011684893006270261236240814231193172254036259958172855462091573989137649453600688422529951610878690743009637484707178656209691393307871143601105190454841118966072672558192655761986730995209689604899644354321057741819148867602005086697143277842930069198689106513719783810009883498016413569180225468545432967084287502888949938716402373448704363333596793594282596539433242660768952224469742050814309237816279696662327078970952213570633125258375144855903799098446418872979946997000849632182734338921712169035060231650508880483407048158259989652502573971346443754968217182634365486213015530424111671666422854135462588890988438505344553643889126591130686080876852224726248228474464302820482441769729340257727056552776422545815177934204738403432998466299958052230300410997763946420672425028306028128673450489874359521036168004803944240655601945856837998191616422328513016502621479188031613900464122148024457827000833566865899714475449258654402109359887595216503766121344176295398469752077800001565821450525799022237851145169112881646779483631571265966897011683846541616851962702834840377054288113050276432059736914205168445401478548094620148660280498954546805985419123239373872968335672132588065782860104939289702314338940703649678752116330977567582113443443964328394532898183731586282335451687123029152037890877889224001964534363908421489048840291844201221586482223972808621480812854870735906023007043365075840486842222939983918335082283399271900070979103761797396660514128963879919378263718056423984345435396795749267944471725022403074680608245866028051727671741930350940107362953138545980933997588677639148318274085037149362421520374873587511321154430306689710842010472074852555536066937877825811598554992010181238865507363461771639842635161607834942113071871229106210366205553313681327311221995545016682048418367977685723188624589365174565324816116822239582520040162223719928753546152016966479829510630965773749313750355895500400561801658007199675912914599455289651910480938461360699037668732154778144524439214806810745036687139183206403063046003496674004806470561973522063829150802215528039120100264014290585660985723538713785826633419125655748966667337307878576479190762199612703920442986698745641504484602675549247743690474358897460651924614763628447700191542559939104112621520106329679461222366497435704170488425007035861824424307849975119727889586759559189824989940359350739735702014581467200575406018464502430718574910186573526183944700683889895274800804356035988254408125015605944685591673916589362589970446077157157257496830407785836734957782961586246028570774221882169816693348099165263110108164393125716631989854228022895432531611455202863152825041592133819587197342593445407399006323645060778432276551036701319498247201160859541065004611271115824123035673859313080338949821554849814007558935779611258393849540434668217957761394087811232580056138624895082539030541877232626003190576727579080357908089814121421459787723748764143334447066820635176209656662544764168950921161891174328491063525467890723169133404371919446315045124085358213149747043114631928503943954313091826841378047553844764276103826948587654526714836218344478275331432802311648453565749284020054173261239332342004295139592302018460328242552341774266836819820565900462810868797699486590314976049017878392525776601523840727330127766934124305577359568645066006058069630258160899967907747173515646355860592688623226224172159323397642378669911741585930854722681210727008300408686581547720704686570485363489580781584857814282947363137055297976015607676422616619346453037141881029545535985766002006312187429401130978074661753657480806579221043317116955708444790718261210856686296095724292954742102621386505908186562238358909292406634298401446223550516047174975156694451369844170922768446562926141768676097270213903209865327781017869029113263253110494600393159725564286158026931449260135490230193681106612846851377157817502991089833485161346203102319322280952260746664597937237133441738261774794620915606165679039977921204624998477479430649887678913735389680513092924072275321879524364621142075661966576509439917680803736863103399336385935643405538774416312597109006764283623222899646562035060686067438056633838274646382986939888271509464680508146999865127835246323141127092952256572960243199218116512327680727265946745291142484426821351940064113871713314638746833266390841096818377266735693442799868894161000065861037840428322856221865366859375084118706427584630079619271758359830089360240263832744253221388859088071632222777770255415168325428415100610403708207134948800764489677516035307670784933977518038261552913229590593294914265505859526875320488023495836767256554120665550071406555686257337352644566326012547697880527970855307486683213579954067408511740323126008395979418886153791898795180220678602843612946936384757369480065195170439274818523139130806276141794675843084092778992048885556681601270094054050145261054993785079267446059084953137472236922551510733821399633331745081204165387798444895776807311794242413000853583723427966095411230898514954572400684895121092381573182655499945466679331759786689896021633289401829297053084012131256456654009743351659829521712058257844535136155863173972607750369527331285363230601747606519600842185131527600574362684896143751018430061248506428352088777538130106691434636826258654830641166218402555192357093581039400965257475295658944446535911302828796152510018159728777320438150250707321423260183156832599880587889763416121988260769673688059936305271363313713275583154442055071613524285077053676614058718238629023062161917072588895424007217223382685402996795394639963844165652275236535921217669396860874644559160685830507835391367468759924302028345908577405644669315373650235062415344511688722385030870417775829484584704740228086851655952720379172818125121459120181322876474589295326247650710492180630339114866013540336781093500964163072848511737637536215022648086735181414435400282745383538891923190956653411924511241055083060700259290492064646406576503897399014797374631314201829736176478750393925684414114628230466170750434766851432017577543117220723516169959344428512034608954138771781422418735419163944510759681256733477430671201878870800740972672392919770110089784290445856844435587625533194005451112947656702011766554226832396961061903650526817031549805008960975653664005478686235433845080543904286016551573328137271793996898475115039532556376764617022914501803889478470854354669629826189336257903590154178071385075424484510835796488267256517543580644637688558664120131453993486311855036967684457559470552282975766663638924136552996248755661890634575609431885028723849966554461110508271988150289861067132865015979665428367221854868286200528393349416192019429786264989244909791629522712595842463716426282883809514403486996312206203290924360273031354126275666780558469598523425971597489929236450712443259614039078923901862882126397834607429536210423723044332150875809183999410526536281117494300367350839639494246677048775302564802229174626939655427882284460598244269217249859977592073835956820915459747596832924614823683038423667199973714845341899790996003352280618382125899069408773754576696352532267162968951597636127856599838030727327992801958459086779847329663319276052321630989878917776598692627551067621794150838465901570615164107477945256622080295288183581642590711419466507595277814104081582417633933772276650472639747103335983200488166732211178055212395485116171564847168861792586214210237606692433172537800358180765792035064791541413860859419061834799973047276199939737906157769592235659974764017177002352522088131672032130277804457700458985510014582456549281282474031053129100057890461376951404413281604091196357626134891403473168725856303995085003680975421478500161472936748056303179376723106104318953402993718716686393576660559910394840200739032736161998560959625990411485103758092114161539526145611077223903021651300000293462161188381706016557022122463919184741533768749054883509191191964215112393147617451677784616308109921006606814668762816066868257419275277904983692695339846476401205905304160070922945025014592233560356478692325038934214108258636216382570064043424708043046804121268726863235415003422783811357031571998259435259362073050978774411443294933034995793279213249145986873998662926681130680543175341604646230191745235812445756898449854255959989278425630774476686049546003043182868474805916346791941470038207675370257608222425112148840581536909987045071883043173400087731507109846686004688974127556930068645329056163613779202510090474131147651968321196333579479182177905253957636023486180305254167694359906097062517889366767203118943733651885907845675012552963893950796542666346098408300539115873803474064548122797213831677330904275157677921645053436733285113352844129607836834373380162061814766450129179116568851052787499138465902571663813170484589899212730495649340677682968363624409330714725233423529644278190076305804641702970829769109992974129560314504754695109904603866025320719418539216469867127928125112937448786615282676303015193078906096558350194996365692042429902843173092198063418128940960900941507308001273648636945153249639151345446203430289905867008530905922074857194642535442056651936994055172514434926965551655490981882583394549962635724720977904342121734698545566662791765026869437676054516685718332066328755630408702048644636113698768666432206293164829712222305653301175785958624569423901661505144089674778777698655793974219568973415715660719079473947007233029742810247553174076762842201807818629090180820936143809961335144399662906086845348019377649638651386740179777786243509553936029259262557311778028314679880897813404218866943476944882107587313659176073942253279301702534685079042534218446382989310505331708968942849125420449205991385922386481911313940666743238168825370526905426061287558884064982012309343368970438868962202910887805535868857163419407687692117912767535095982219449918022082635927141797420146760455090066971715119726923480813215524521962809972231991905745538681420744018546039024895841396855143158374858123812911692877514090625924711697803956083913470512112818001503404075431249227680223039086544312496525079434724550466823166084256364843855928448433989653396935595661807053425114890024371680082550482928223173528017450697174305607744863978755901184112680139922429041324487306258246838785005274454137550135973476911914981332979408120924056316142514823005035024409392803347744793768729369657354071404931483485147858368963670874240387532599496757244171241149002276218160305423589678086623087439338971240873684693740729679064671366581461938823046103875069913412890056169153747028872141958925604386137978428612338546142806632838625252133714345418914188664415316029125251634104697392799109597501473494055501045134235655428550454958861701461573589939554540428918608194820520323624644794292070041242841587120453467057221403664631406903699355401023109589890097301556515569293312686335609382101814877581968321854901051306793766085671295116563946599823473283589965684870645732612893509816284935257205276990345351351621918987158919453648309018148157341451042156948682853163418746147598405891569821196158342051376484864502679587390955293478475099232526300670649627115776073238309648114821674156906608775097179839227472675363489257412499043309252705891062897567457812950727669360803987828754469599772550298048753069750549273955469590033100882541679410618627270220099182938355177956965032908982472624984983952887247416877970110785184593683522032025236087944373467188630360741139432743537488019602416054532085466844574444267485213245370768759828559078437457273042944725797869512243066466003372550610983995063378258588831003211340795893925185625604191830039367422319537535252412579975951625144108356096556669452820978355514614417281936110198076523761139347696983915398493903887132864201285701847713179473443889120634296782779781836163221944319332370623492990064049267631937569398884560710081214885511404606506918658508719057425072097268557767600181549172564667894061997789519833442352435799776629716164763675885916881329780067536872941317177059639242833962200037528148474853757576274080855142123580212770301357608789102881434754798562230334900461149522995719662867185546284144314967941370762703269474010347051036308789943746425792858850368509533128577994719920388139570842855233173194560156346167477626864771123298670022455461580697591637858980677166527179519390717659792709294034901667308095718006606706837183142171950258615928176606881988776476856549430339944647849345020069861697429775178625250266771270687272716132127641774354702116149108975971686235837596456405983147101072140671402941876969108839249348354666941977884717703533008717432632195705080591556518998160989324012922046040775050149225842306967205606218802317491512410044943318665569233081840419395867445851984178380647555766793726899746144422330852385819894441070657601488007602364818462891089847219979933856219865864490458209231369882413110761549329191025454173494344620627169931625074217012744921194799357902031569816206319303239088554766219349342477757230635004063516297357559834799330542294543926726990687345517722059593562719459552738890170250000163810130522835623490303498666812607673022649758805117447594511827010724987896365869005209470926858492219368225584568873788649276361638192019984589318163445393792040918056303442648820024655781197420553700864688658989099747951474025027707885413131769865142652168313398599788463551329619722617697924817325540309778227747730862219737955037094616008236346726112642171527240735003688653410156161513535443077740211161609407108484139954947018309893328532181371165423895683707981744587217316224585687200042043766687770301741221140037168291430442866832214695378253294319620814619606952773243891364031627998396169764708697628915016128784769762240295898999757317898927518731519596480879200891265052445759506828233171459815353554769601969642291916862085005242321405577623713553461280205976945776274829563004877361973924097800607216207185053736839159971001673481400422561163012969496713261461257630299597492590290264657343288828249597952440745041608340798939104230894302971961201695840988525791048939646869555286161568396737233341093314336438041479405079546850670887142157892930218873754281447419594547191067813910511713831683900798568033247965663358680158083304968224268648771074221878062705786996742518571617715492599385889080101155112492565845957228535001294952587822541425747770041273856618864174715946080157142889331261137561544570563163120015924968774293709965300255318349928049886485821768953539049889389931415584251695620702612949202288677483460740093565256865579912953956965698269731724241358222458129895838542562918417201548216722719302154786020698029405411977345609459015607972258488869607693336686742978645784515549767722153363356061254642709071951409142104451736164765535098208733909419237447494267571834880867750289301601183093670957976904376826490240807862371485486402644980992569052127018202970457908276371120182418890800490831568450286062997908295261864304789166760136468046236027068044435035098780448285818129517546683718872389974049301062221724652346218392517814962261552940840240611819960753432659547165980543424780613358937329739507411118486811852979744865713261652255411137072716997175238897401805011352818263704318041821415130879117442037863477638118182982616631830763285769662079045717643883775901394897439533199325053977725424978652057590644128056664902091539351049235675381914184437759234785164588979754289439016572966353236585796097981840382978384438338593532459030849223924037266991173344712348371130714557792454572631715078837859338613697429953553923032860353852140723423787338535324870280354001731347807403363048339769502060018711580384158776413517587550783307760043550371538088594541870286205980839399141405751920156123078765282572752899514999208323151715423142378443022801227170224871581211986101940787550859528401740837240502574966547056193342824387682015218702924925645586910251458239363080673708348349905113536620698443363714090536877181201159737107575969716744186415836712115920954682729250363408289559037326808709644340354241972500724780737991531041030694708898983534794996938838058445191171668501434857771305837014420488567886496400960235410623005183195155714096328028585417783431673209515438822344215885477061035321743851598171309510976027598829574210054247147502864147859843347763375983648441098850903229412105942994267181659576102273871568151914211997009022806140089664784489635710262203611976631301843790874602608822151942868035980631812488692168726251468717998381012035403178255283610843681508561953324865850774158408446186800871808653753717927320463031598282851000293754757821438624918045550307743410629940020083245277753616022137113550826890337733319788006122484532142040682640787855886367080161564292286876995961535740324377080339756328835759134918774268505392789123200810757271811725907101973255466138789643807302450968314923520549353384327185470944218569565140773701581491930675321316266822158186725278576783583935881216048772280197588631212405349555688624326201564286411510218063892992190682593138522723567421857460210471681872867810019084351719653151113196593512278006672728958627003026327959972484447658334152538272342251042871304501367916257523732970341733330252156662302856085709012492885674149318721485236476689418521498878828030953435250563125288349973535428241272811103221246846759665265287686258153824752213644737683775303873909142121180380354822883813650758757424228607441912172775923378563316078049852627841966859447814022863713901639582443677946482640280593087879815357456309669194411075830612221940802051940887972022201893463436888214085590950736094949178926802035041822986800473151949156312883219894554460968389990444200846120420314590627161989556139627469029778703772490003031239015944705936355184168725525199372206256639964119668468023807041792295720132680118480310389118261473899255364499828433437396848282868993714546365866470225731591285430020873264262884362505644326838651034435975344763163867955963396542988626018849710508314010744010930273235554671257040845643545353286343457888622411473895741977019863828396196729472842056996378360110179893700610786204381813470955765767258939456546161357107911313489112790809676456213622956310543631612610382250546259102891696986194415911910448695286186540428427362774908503144611461021426477947360273852545502711261921322773075271453994814696666329359214518016279508417206799009612904001313268829504445377062079554626542712208933317229818806820795047732170922235124979986589386115052436693194019080143212138505413259077643237450232257443136623957290387126689317864221407921632348302376527944569518697785185753529280047504608390175345987002334483507454610219322424108463528021069989506878262346496729878026122355557358814799879748675585250168752847483403317391829984511730088744823431322309155967326101998826204101829696797449741796542828440633314033337310498902990701652781447796819260254039073977305542806243828028459278516765488919794935422664036132261435621937999614791706508027420343465291212465266466956926903223499564389287685417284968617606545794500613166419432273099681477676718153902863256199859970364991778030294358098429284888997362772627333792516865201969025866163516779039491935285982544808316031514378735170805719681174017219046268011268994170241112675635814292037892481498110555720904966215891953415247008293759173333699416170860202888730536208115740511246856569631929697875669018244646869081901110953852470715229731100700800013634119577964278819432385839120805255951062592281953567336109729787131644103905659286249607409751382465834226431227000765307716534280577031392771858513615317209588193201696953114570619989663425694634129782964611324153250806255382074907082977184947532587760926795479250420440359558851587735556931430181884498443771372159471947736737388167107801129300060903732593381106426623205846832121412013657515041794268168428144270276057621206747841850700854841426619898547919621337098720801417790891939574459722113135968625474486469269197370408332921339061886171343067937894261189554655267201278031609859327180807585921325676759588862848632688919859805669916350594355089817978074433781023642850097524356805750854409065794171345333277435408104369114784378872262621297717244387012697950807924490185221187430630292846943790724016392586106803654307300344731761048664865009079533116646308014330264279300665556746459052502429132476771623908660943439981939845100047006751775302432573317972449518313310677185031966498807632882313614413111459973616049528539721241748111935694849010689508593705597904697815874323829890407858564075723067516099539047050048913940030371189190009025860895807353058965847365144386622652530074467210913321654129669493621855749326068542231653882846604369370198529105749719095526651647197816152110377389650539958855831425847257099685696281287057369761621183323090383100919042760075254444718993619954207555292962334581800725973104142281900429423535788861699493181268977727571367552887594940138073719886048072741892885792819321388332233896139227664295310042387160211209401250623854614509385604850820856649747296027023602780379893241266763425175040885998352923684170762351380100227032466685413705647619911627190923338923324707813279349416937643646722674937715201921026712582833574390443005360796142654974911073155066827350767354478463158638768643850670083104868153647147734128397969866247693797841855218254332607615728202916737325093986388022777482806499272610812638889991736568912110619717971596816337943996585410020092001726137903972223190369881790455215972837415686620652025535781489320421615709264812149222576529360280872125787156854223463430444884591478196472806781805446074667834926595669826192517263653739338404723770223228781027022955110272848027554078191214023163463623569129396625673746460843241414115978212962937589279163320098016334286727192131638847567147502841144425099708951312888940093575356648020922122675653269093299176216662347235414664064199346201909631579486728724360862301191229241942335493222448835384826689634360555313765459001730258207991594674046172419577122785159251828024619243256369632939427172016396491726052621627639677621550541987516523892215463673384003570672653444881162387175355005087274945731173040175108701497656747388869109801982815278545762238046591943677089514175953437881582268532978778377898946095639281677815263165363275816530701265631647550188600909596779656690152124033765887778998829664159942816273048450641090677003005967968370909627318490054902884287782554977098712719742046635615220654567886661065385224129259189161532257111567539753460311427334002235624844077668430408798101411189211814850361170764107362549332360642203834131743128079883909375603602164396440695475700347457584210026464348926368417231592508014245558363269845914160169859602131746165134167185938109963885122532914992668181253332645300981592332371863760801908708665441222379286101558577915636930330615035844332978416945755228198005500032028686251485049198366381519772565761580240276113691684544711018070534323882108131482923215078633848126903806936313518225234770755388598399045612059610221375652676395137621258046421477943309916200961947548499114465130434548919932915005578480413982675348807350566028106243931723188418490844648696136236019430576206756965755914792838609273314574273672659628189689928615321272796453602484643264591303223860464263906864031381717629906804075146489236512090617794902880384464192009614460618325354584335646562073261081342782519097992939189171024398620596144307162133345146228840846958275900887520211025085006598146602150795696565804987164426578673898455501610273565909613329903539071126738142609952786894528781072285755360601703682228108298429165212372838870402734890323646833459150611860328028055452529233916137685880485666671642890080007936215453004849440591065745863841747495938025150538550322579764811567178085444056388322647831482618340969032704755306508040751826582150629052436206291071674708380898934329052796881134027081728409335819143118524142419962627424291219027795482274305854984988186912311761457263961507672589474754544744501315054553945430722975199547698932421784839084504855220529764166242478679607486854654744061249735763033050548169115893028755129742871862075687153096042713572375773539411886689620535369912582666190773358633488210764119627741471773277788673590126756912515400023111395365631188167818846634046404236562786007019403726145149536364991312924873307034840773952962107402734733096922053300001638933892422055635826334845219894672305900256955204204239263388500216754352057929998226024737269649381985306517008103113257646621716873897822332895439024283892550926061368924365305147003884545118375235724533402942473722020651398203763720842066162970288125268425588958096389576946223672560578371084535765176674681320665990795657285368250583299370579684755130486787755699626471714345341996381377305189171833165923984347961667316689209994129809614614570849070631090218206511168793363548520951950232271375205324760186664897169912160900850661163645019396701302279315327952569380075329975670645897517469740032168606171193283868908480976231476002347983344927893561925933802482492886786619253067787995469120216868521209720210393500860484657265452363587597495327046186019664634241504674362440365743743519875566113791081981737848673031169020338985837458824941608608743869887043843590973184850599826227171801911433630183284027604907916899517822954910157578649503698645354594903717348413555452889329955136467366425084753383573157235683541048693307632407371146060234874686910513578237800841142987763165958829279321269021559326100542376602556001880482002224726365435176351632176596591847084825154455431934093096138962598640457518797204222664320421610456031584824524368720991025866899718829335692220414945632915383105371140119166580488464110990980248642353644799049929457709541443168741456953950104494475371282517887450430942561090660792729668456698897709927945377852213490424313635735554220744185498280862083670870124823201255498345804842882820323744720847092366557732754713553256222984403790193420444172830054521509597895622781228285191867876607566573719693389966114156759693854813529355011814822261901637665006792878719521835993613090714044045014961005109436619512088080432450972343615420966478997924480762882950250291085675862143590047537060991118014070691501326042207461559773986067245824934129771263229472670277888909543245057321180452329818104849061132618977990332196708324580043266946642576314424177706314315621561256810278467418963892130382412009724582632133846361257024792237166701754440183042527705858372835215843659572557782050576476605749988466016282114644953704923897477411674142175976275073460183428177219179717044174148794438370172980820707927983552570891735050579024408451813394874165067654071051695671382307597657553753029397006793640680326587510055037585129378831474746543909283711360420416762869504812948425796499935157268980340652879261259988103118409524768408840552170496755786942534661428772675696700929025296287048154559741571869150356463544424762202173064369536999899382472340943742695288309929475319247232408542576214345259100549242740684786778922017368207231118941371017024239642569626907089505313675911678936799185218391419080991887590017420564075415652270746695239338823680084182945301311689752601170940980895586453853894284921588237010607484591786193720871539838876031913472798150794014946268628551298110378746752465431991282064571741081264346990047911016481969783345404781471460815873660930348825302791502248674715261881358721742170502184273106270510294891517411859178057973322764806339764795932179048106974250971929481364902931877518930482986824446354272214685123419261284149730741770172463317000875660231287304644684966665071473458241889303267124051633572942371044296595912542151539559394731979887495429080798157253481647867172444520542541715496719593346409528020836976910461514876726133943439485125392216131196392433973464723635618400643647331159828439216805781958594792557702218838203805645349585617214125261180893630174655945299336525035893154050040038345287077777616991191292866704966571426468588547898732588502758104798284949402383206672543492588976882078835323964475060594693091264806242740463469149435440116172214107806511085707256733351326078761874936125091378066578112394181197128450034319851484403351517203695909993406737343016422311978133174239879567196951144160276673430891499582359709601775321371646020833319798953828853566846925980336667258883591667689278880243071654520123625127651357458792937908371140952454487558991255456552273356462676240130032938995676560038458027499839892674610490695946229002792090811283856344183543845639338666502471084304330687432621460168337508370661782767187391997363660624834866200083912326644065966587141357516253997298841859481685054601056770085736486474706474902075467943962304961575344169166038090490057011817042375342148880569944905015188504884346146388447560814552167635572389212583570888366658599497486645969384935486068818382532694652277190869587128162487702198222219831991287929098746980390533393054694704960498107075767927624574876714717212134082781023361324644656047485630168567536352468401893352415460840248865348440602973041400046323635613516363660696639743726148501576613015786926164622121364125028720510534258625925891874767890006557054266234641287991668026409374446047491811567559501787973156250185327129158992766156041189434038639144242656644041704721304440641277303854009143716574958146987460092849598087198951208603068957491368582439668962351874260512984297059152511276075868904131570336721781694681828984913855304202538565642039575793763593186121545933682793617678110361427792277915123905606691527842181665174924458096841999113722331041030642665087237690719653796685039334595772815582952227160061358762565297366758475155131961070109570683109353166575346823587560698154464974853947125294416547796618136600506524014338650465889138848229884797375463239026312659202940632327092421760771001147460314788598356175305207547956511105840646234522791205967889846288708130067196258584250847867628295246707222934504124248924611874190081341597628509507440281929665637606797861799463330364682990554706580955022663486115589194994753293778888907762040012750525045945414640733759296812229180424278803299028575476730710841695876432121096466961210510017844761155689063677108363400481571250330096175362527726683430737082683502601580677118429602510100357138126704394609235407543204977930064265673075410370215920929350439957627358269331636614920272891580423292336255831212453394097203893407414893707100114685597544182354193197105009159461126682786342026573223139599688189065368536030292254581389713375240342775368547759714653805001392916479758184741945683198801582852401450761385413887409894552751989995330601410629712269047076124997342235541814312008186550113934497366566702847081915672655407406438757371312497059908921862556614703174602089226974830568394372737691091382449145341248641057848734044551813462646330161382351525076375937966728380218239345713858120982752228573232790540483379305066029488985714260182047166570735243939999207952211818324260220265748994148384375600057439409021593568704134469459532405152166704023627201530692308247061291765569669480467890737237502817445830187507136609259728402755538189276201867621429255160829320164874907443261893735346639624069614854666103295452543776382397980857265741473807617349588343935229543998897875491903877954910260122830711317799998944189656356857948081438318194134708729394711695194390672299031356550801868890664806554439064879244044270892280465434320453214774651610761392283315061383932442735875131665038410078592321482852885597162854629425093784274766195024396817718162344297369671613167581052482163093045700873635767141383319177527287971960606543803820237083822192126321825877137590353443575580210576258380927303936540145210468302918941542808654471425215377395845421849250498718950547386840928745412023280131041051968522405947684005175928072549927987548693788543740404439318823325684754841665767192418022193177911234540400577159071905038797812439499945602247115482951120907033161800053882839929318549028868548147891084966238455241437654624550927462769694794652529275215174253302334827474201145811573758187790091277847136119528825197329869728720938231328244204845698310438917231484420340309459380902703146273826256391357419716494219467483280261393688399445174725286832283295329009346210379246849883098697141049003538029190005394860812369632231954411287207251759654984719413140700411900597408062335435383622417703526013399932069832914020950132486825958984850941978883213553266432534019233627321116796373367524328590033513640657723734147604040729831056396924047274305963131069365147228863909210179257177187588494457981562868967783885773930495566658855282078941392274747872480803870408801254329256905023219032224504354239671096237258976305135871835508458594730049286799311613179871920371550460246463298573240422422690668767944544880311486644490727681713834735247401717408971304566070926512148112747150204721226083520148612628213147527930587575353061851298666339520605208128925705380397709047508406448460564970067997212783211883850807731077043342449628006919955924730404213733495498380757748375577777010632091170683489421357091019626283433424956330332436436423860521085615756693967984214206072362692968224980083539925122344524795851394927961592978904402892561658450246362369612351067174779605580370784486951311063951810561199325534321946678607442528129466039936719464129264247070943930554103504448106883530802840326485275215812320563174958376468790403868476813326944496337677492933641071338078575744662795879373985413864741262181876431878310294328810395994408212526854361778451494418935450329838211088858891168017030265920936665365181518289407800364134677728198518375881933552746624543719334596239003761891020604811360491736397159526810268073448385803857089691248213751413473207323213426945810122151711585704398417140603224384891550543045196504254004513874987457709184067705194382610891842899573959008031967170564301124478909861510540002787887221514714029896842337893956730312390475326688870253738510813599717960110488172827346777512908723479185717451410785825502723813033031219681661544146069167366407608301936345849510143985718630285634106396070956166932166117568544057822772043306910083160314095687948394089919699150301634938681566854868796037475130530462711402884113783327025260090861908152706018557546012122431916276140562261351299997321070590515921146382126993079221881722950856833836501867300034085500321364363621005763168975449134545046439833491716818142366114306908740180986948158434248489485921522072013093732779977631662297785921897495000409035842644440585164183809442898809791021521526034682496409789185516562404517788695692733781638250961305627510048107113881268434160826755609706299109757620215195411076400401168197759799661875112909383584408299517510861869958737268004497809953352466117169795237783917433783612554228418871670063440448692857428221665426675066019460140667058950476626665370689400360935662021201705925710990145048216961269368020616808305382602194690141348599875218269101491191647596701867164802182534429023261929008633011463125760437969102356432753654398022232214604228044138154904737925592732822128249044239414441062029080991508057797492018406858479734139100057428866974805245460996873215137978402352022376250066160379876486669014837284003345530176101082716243370914720887281599337617797034278296843691298715991728704592874284401460897747585659505125639311773299336465408462745308445326190084373386708105985860642613098110629160206103318453331595390534611272043989210601232775058341274348023846804992549513876384820315387256668628869242873929276023327966762956681364797576370700471617731299509566756919516443530139216258300710105151455490921185864414087138195673560348607451087358892093705867414850716585949270066274296110620302060450843092646554272994049240751485723337887188641288667860059393630941509857318605514419061782581154074575083492008889692558390425363568784239345672283252733324981627213457399714092100979216333439917117251954174401508161619269226895678220491184588760331405656431997344546148378151873233195137698273024866473998699558566726957999116526785677187798966855549269050758690518771375918125291745382661022901736205252112333528919277148222273209447168042437278719166100395814716595164243815420169603312271237181323354514240165549973149100082024249401880977773392016358392572741068802367077119481577268447195961313000176471157268743976713825757168528918298567048352741460257913470728412036935108082025705160601364655995360524280793894168414780941842086909331100273869302745697367456400787845907543573079531471407179518642807984584166841878841335831094784731921283966990835975046147106213016652745346238517788576508275140003160442655184894050517957261446218965322062627757287456474660628435867967012502370985496938672202321023854240896242960979306256429999687299721258860818505704961248324394190672575528953141343540729130176309931690359148011716562444026005139918596263368844738119356304036307138373257153550211656742013493681529859350818037893973123056499752954043539728454120356667018642141977521326621946623744155548246024342408195307608016593408430883626651174006249034396628221815343483016185757553283849951024432174199620808396544616201760938749165377119608912185931639454178240548048309438347314353238994227980837567967967895361337975505651925455962111287477046700482601555440416095411348479119694378619458498994293430922700909335292481803710718128644577138797757438898386214042035976002194131677837736213693099363509126799470425803800982188825248141183862188299948686949537080384765435739802560304921178600382570626109755556386982811596789926460393934905270025880921955834497386193672370562559423003622276558207907396233528018798178312409709485677224776310797211348378688496186258241543175333827803630462565664185493795154753443100596320624054778895132876703953163231086446178945439685413636806864869263173171383399075922662752399610313859084661544132598849326271124839386372184646413653169142163718416671841656871236267272413177220714341140612614741515789682031743582897991604159981023033125099959879942430571113699093607084433591225320735719222080309623885625944933721566372294793784613540048065551930365127240774797802883107426761618364835769591682921372769531240466665541888240862152865731809752560717265569325798673713026113399788693234337702575932473470242694675909182772247150255146331985725106282975835982061914717590450070715256546079583167514372843746417490435747248731283014811771370497357345060198579511424612128317161321065102825047305964342111211588769242431997323809200035873629553551943781268836241895024921924622002434720011272675246079103183139611713587366563357275879837282852261138531501394056605982775793365836052461319375894538048539528209996114912952095409320365826501524530507758154546019095438122584662173167355955402562639254027971567650461138251423319448907071593046949858138108346093769628209248437355102855715127754184495904906431594074054148576295803608016371400369261401681452079778316357703956529202509420784161685678537867206441277505218503515378116702933458877635551257957986358302335970992619130477064031394545930076482830012633369574969257568932346216476985589117892751577458249948149207412793127988438653096550861192887464454014633714975033445114231365415576005572869179483234686332702172308634811462717431567626949032891879888263160492100821781005212691853429043869363758815832843887780000586284532272830453066026576337247993953716626723933320119212859424111006492787689467414592524567120322556606492698480850774394306001705639096328698076269980353428050136756155403879544126196095146207469216972978657361913685779727434442760723160478140156020529317577287274907622963122076131871293829536656520624001224106746997445771274107739451237851207057561705747465885421435141771389205027568709195365438750394547037209528370545358204100935389019707365645066077527677679459049977473649138047380287484525936494471503534711882697488340490051287912406794098201856541356632926277778654108441435997302557342998527206096796644366633923087720329372692590302812984805210556068751082672515957696590547273040767027397261707579517341528023041859267827864260307080678137871375762758021083618541721850875556461793895097613752356825204747045479756906934967552482283759553452663840883560060884511740096695450204658159689022180716492328039313269418336175382767408851623079011727199951164401255106937994084588182926696325007493272845010015400339307400062677294186100322985502231477696658314273206212494616569033491946337220999049977627806467377929215276168923212475401639090394982852660829936133325275621314080889998733655779791962041879648783507511537284951704718659610188302206935121694433865226145150145842869945295800772952237105065060733493517713726965858032494269240833676316043617021136358620623900031596095501160441188793664917991670844839697909578803522906589223231309434736414125720481431801351191961281154852057763903818839101191359054289008404371459964544777285170060147202528258722717601223389356670640974979729729723399222057997184103075837379547831373999610819082316177716275958238719762974366006724967002419553741910576515701164191725966677323113022939392055277895663774733034120500179296502563216419730754981740362884000426264186656156129161726711333113982569601014822168252385915699761563566982203678252198045833040072567032053725168053206105461769664178894482650567103463293673778910264006900099693444664041814444458896280459938050521369811053584105813840033503886964381468913348089035054601627641297692242373967477599678023711633787001338531114785078170222082306699521801464015075552237849883240426687391416382533155597077613099725852405631405022708593703873305082537743796324315016036473714201638626767236879406576498087886808397740365472007409392398949141431721911730072685553356154396875223984143350667697393404043751525649968172444990653260196090412937314266089554434866834413983122031631821533684148352354727249695859035212881937352557705770485416995450937685486433001095000005491439501465053490202128106724777378827813875024383811395766401154209241230964098577280370751843960725936440534409608548390653029754328167522617096198519904576210169281362666700314242880327197829756351629218264778662295169141953474132682561072463242945362105058264602806840037487128426665327657921480288531483410047596332249585812445671164123732079037199127912949247321548805463105216674374801519698939824187946441342364053496591774590449621265736217537925875798154131412151452398020421507683757600748528270890678414882187208625654820865531234555978024307103985700109574909629575880091075259502245188333603846008109118454768340657400870542134007599780278037889281831740309740535918057618608461625260504902107467807834723605448104208806705039818119766033417128101286533553790542484085997902619512733358789877911744952330877831125498198257313766019495188229301448378906969524451221013234909038507985730212982019330826672246965350966189627386106354839141771381850461057599263378847277702857565491381655441653482123487235078873902802833952616992322453947062628036244984118139041361604047380689114575920214264229625969524467377327226756741229841514364222902374391274002811463196936978350148493715366996944700844357370607724078773500851364945752597779575243740220145351419569348074850582080523351530220683329076367207641833389975808998852406965631834258167620610750797667905163968642143500052000337047470089267228113042817108805522865817304883723219554271734209132631852887851132231180522329521838469195095886524488100463209180220133530882345164808527282403675397077313511962706416197969180935376738512803731498529141053741983441887761814018655966529781417910391460264208397822508906608820259744911090815231500727582110902661607037944682491159084278404642830450613755786577676732625278612508632218673887168324798521559090853372612579393381142627629809340382483263059234759511650198028483227713556803745262096013955788593626635699165505311182461385202260508233556142980058335878705522945503497500425949342376543776156178510461118664964724464745891641641295911406610379045011263520469672916187177285875025279672353490763303284303589234660921508205742167514137367745293626346889920667147546597114926651032480222608027395379876720874729022448381647479981325139897030008959029863997536550661719909013420335147826594686696604996000867077582806909334900825823440091431814564489797838758134626419473015632200383687167824001972434166568662411728970850170607555406394754791394958094246404103341382485842808160627317090779458320483734319327616217451674353388577135461446295860991863409381707455702711359136172503693859237849213363203449830885766956049387386472054735675890376505155474270909686139629555119665854226904629685098191145587022782632095563019054751314913024460336350105582880465395251938465591451147742690011265147608999271105841240573333117622698757825938108570019794986945031674490638287495234667305915199346032327740944760641223600780309575875830342094237884370473036504584810071077344577402356648552648008583743211826505783220196313959724477667854169239923235273657218223623933671538024275809055829791090158316967105918014927701927943303672608343357126765887791280764010755914847854797728656023462259809979622517804926942678668613881216731985551802047567514057944567879752372201614693630249531531215125827364502316236483080920737104531295729884769740477838984656927195176338400641975544290496790381209303591966201603062382511821065727059047275794817222058032952513804016042353840730769330935809752286993195984356875880144808659899064870043705602768560897536807496362303779486860307797265184930544464450080722174261805665624155056977536363865147895152703809554264983574728159563252888858011141160596134761484609005040945199578364663419377068355505121461982985231823265450831394207885210042218019045039099756109951703810333554488002547469843462726110694736844839834660903186882373583094535283266589474220437486831877409852907000119197842053072471920569560251340530488157578954103028835932088941229575282929430279659668031152689565835822199215273115616974873773853585040626261996767267032993115979792478414568174334572915785227358247376363312857039734894071437735676124758957105717794481567532675472217727095578101480413113871184643781009998533111915837162801028387932114037170666228309007176409484556120625051991986753657778003061547916053275721806888044952011442830651131689194208805167149490109576592830019901815865409563494487735155942737054189701636398500585855085806780619944494946033620162586464942260645195748739221734455585160223997091688844901846659056174156348124088879957517812580108754552320975072197965485690153782522248157290960159707496843396983463063127608197420317534352959200745197009921804245035163297024850530092921678526564362172706332564495579587178833092703917177359524473468162772498194174433831925216299495077007290592233184320061897615495720210889941895321849504648297925296835910656819247171447419303699137163845871248217659608842398116001291683702154306432666127622543448707525794936093598392702991109837963447309006457451391052336112660780974685059146990049657892152967338409840652100267235555644008452814103038998443236750254797125735970266181755081614610579621816687504310609325247955645723063451964269977425033138270708201294493080314627552277846807066233234757630175429137641869082444509810553472199482036938653321801712967766459065238053102727148372138580108395282607847623403935888106277943324419742884855641052718691414109471504011412940937876314797726844961956081649983873548393910046160153827166927416782591360679928599654877721127660134543037887670539940563468878007365947861117048787261309058907970959555617931045329034685927659081307374781109736493682247057290213599576791149175124832455907585037255673540498956985029575335974120447923746561542565714049813168203748987403028308040390301404844646808181944740330324185894295781906956917962697601455209004536478208154735634087755877605235941248377097403291951565570399143439115127455989792881018108986154928492802893716033846885231789793860681912548730330705761120710762706466901369968756194989558872621652575472368758612904661244833683452415848515261043953207560746839489009604061954477278324252166862774739892175680527549361417805356669826463280802057688505808423430311791549375846198211285507664885546331421795511008398766095907421900743879441913155118347404342592145577776876763142989623613049912142046310980193216032291895780837300436580954982369931522463838265710223634192064865840285257748002653407774765412099191031193325169425929117276551256942146687691950387141653774418541434773648890990893040066882312623089212571412181332188698902878978726195097312988581157247874938382908842689802969988796716921115044735841972982476301561570844881598790618947373197851677370726042799195014280225778093993629748869594994950234174132554035632970562873686587848503756924887071397071626635394708510995671970826400990185905255316891698219329207059486962777427359276519981896856311135495698859284625518267429621506180604506951691257486542130012346722714165441891171516545944861661661549652758093817102203153201147482822175275585411023001261680429583102778474062021245356811435326592429115886623072759720701174003302395524889485130091050737642508069593116351562606588253567034466504236899730268222499008872073465260829483343063013152379759728279197090806691417483086504096943317000600411726622249776927757668686833488113617698263322781181949604893385636013586220390008628310986921846857380048624997492661044150008198157818439169706464710507158451856007531675186121788163032865722094704722322985793311206741899890751655358559847188893501231813365128593265986505865880940223187897307101654114898476558445601590743935620491657307131851741842713286838651239143133293244647914042585459289604280907585869378931105256346503661129682184302300129788158123961064105965675850794460859668901415222504208024667992824416323394126747841516050405220196420027653711476991193159734488656473413974057652580206246614289227183102771018450020913839970217830643077002574791516707293809760768920505357286852371244723679867167507993833838006906070978006200396434189257749511418091077926461387133648955032019094030951131643600989743892594191181253384871336256126044217309462210206224875746450169416383017054401422123242526545076553068235635836920816117009850542385903329497127558560126545457775480700099162189728375529501873995599717956516769017929219140827427985621874620912054566501819131092092108226973720264147587596780521939421398086191273726168373072316589153469240881913609026046199008435816453684261981171961769924977099259750708980253606090702900546778765766636005629779207485600304433892543526352586724627116171028083692149697461025112944592291700496549728687129414654867250180037372868326651417585894736964986176521132137375211287560372128615401205820287534635341395621669388174305913320582518515370445190843247346765985336949931162602990084178329264792397692521021658848548348816326898375099334285042344053414671975562117579991220628893484386401513680651653355301735509609809590989710311029501376624387054000692776264218945203525671659339982060508201561289551844305112306398523790538230852544205736382440131163553526333431242212900435253611069006896201369100610448197215569090076467940598951327550711681468203901805971407863347550495077312939326424487414195316882312435813856298996594090868534915779581006707996009174809728361488720913106927230819953956901309180111576460593916096592300358393279861779120556661670977101647009640969105649871663691153208144875766429514936320542400338083340659624935423377567170739342207466806250653591082122775681069351870638432166031403772882370323918519343375064485448011921332477854910865976348068701570091491618287874916039706444384010349761540875438734321585564268976612117021363978938769597560614445489985981408978092417583955667238549685373216937761829356032005032523959199320093532995296322516686896650469585838078188710857058150346334273175434993897330489911066176582509244950452610502439573555398016943837983435983449203979791271313029144435081210186630804291195312062654877192192755467245120838020046054064093889514532005350149643907782816265180955798115799324127109669691166939772575177559922886763557305285805803176707131287882716674945150570673820867069794591152563458602155019286097743373060478722610111980010084220489474410175556479480664656499865361567866891521530151926203281469683016713471546973295571656597567088476407751919001787923451369220772232513437091273700341175035869737129534325698731149264973171275007153908493703963651518074913638891723181020626740011107599974141541886164463495165073051269352773194788074103564956105756999163864808678573644274466940588119160026604721374906781764345431256308967314599718540668292377498719852834872113525501926218781720612096338686946469777699602428607437502580212774745649666125400167230111758420803683579894098829695815754289559656626214311897207054201347215498207810018298276854098453549419039327534179554845201387829132101666590060383965338841512868870368789577403392181507494114747356837704397335498700828013486390451837603133622012239637874663045729854374197386831825851652489352946613061080142103460748885421412459888527959789043266865065310611746665573312649844730202238011965782610165302720493351617218614887135585426747273757649948397489875700118986951041538466672238364734287425504496669058442682172770715156796287610178431080904163638352268424732319066567919472968982673377397071540127135835918966883654254003425021497899401932476862805557008464383355610513729539004259638234265640809010643386329837202744261713340938299962103639723707282342988318452020514646730462646785583502360118989557326918832334097945001920242335092443605334353400731448660697092573244644655584006759090220866206716073967839261945193019154463785264032582927293849223723053476717020220295040297363063944102365594140219692281364290598862142166080504693837173316199236660018051929706662780264907054043553621019414434230544084101978014798643762795299039296595442714421655659164787859513360459628840735972073720526437813134412260144046709106174354277221840572293521762783420581529994622708857558316646946200508191944728345715448420245183627791215098866018776631397734070739361802318372987738702673313571214934264925147494681815312462006235842690359679743154351285214248689277670833429931839275344827087127613860599214750559415717014860046328436891693665631569677058396884233455071489678708045730619984600276707866066445120399465385945770589317488912329476904817050464091850450847671864982963296957837949995162036670678152422887470774721636393205862546488346729280947993117709066420194224915789401831928799544058098316517441908590403418899302712096732467272852313111989392351871449916619199416936000922308251852265141915836241541628891252662984931441119232407208099183115870583768523768688947979446619230232327311917751970172140772237922078441982205047236168109394357457362373786961929847966264751079166945205704216184927397281955504779969112351935682535451481886188278841301391096523370487904706766300178392311611665581424324568498015567019678002358933660744100798796713172983546222908664397052930733238131046657795347093081676071682900587699780214404392968983450188130597499414831511179884122843672681271612563685629734842333942399605844626857923552940842686815934915333525416978016056674330140901984633961341201237734350654597904043323951501727217670462084481080717457925621202863139764299372298334921742120421145362018461143520678060093788241282709515532835922766368239085875748912667256983186725473654742450830185570042227267292856350748691911514022145732659573958709094029730457634177602821998792050868830493366302142629457305458928606893475425391150799964043452472865760181347973700735503442333105969295485200532997645857050528134835444291699233609671403363735785281141696373078102673178439168941827352316155045908462959299348198792823843903156438030232236975290865026072383538410567022438043196163684333160389371348832015032375218341377857273309010060774884700203340084566372530264268175147651768948769548055359359816304475277779086023126402131435483464741716565700158468980257942357071865721145035570923340112707661662114100494965212409748426361056563308873523622902489358439957351684272490742014854997023910106671107347929848059512028652002595814340347721746316527339592604407445525982069324779440655809541124807010467013942464761779857254454490165775648250105442150530779547086035038300583091870774808955769429212961973676013501143643029202709613590517512841748779536790084098728298382153191414451097358624778801082716499156763293682412794202011480161954937872486108040707049737470926448257230551191814180343969226993584650162290873351783874747785796891358919848451130129069005753235382442853191658810799076490343092660585869036786535638524751013296700333057983505268727214827052936365791009211349980412205871383402184300800891106086324129737223611981631133090362812387956039857572388044538329452452855792870968067929009450771241078335499963280543425053381854269147765603894896506081894038172128473816395615937363180261516279262797418646972041470514792827386647031273331094363633758262945561975122837832702680044184286287821082426056619009827720328636178197372551172970798839549446843313733243533563942305418064869055895048047042088655227560182164071911705175958484781910427307556067746802930005662789830509275842508794486912820870753092316136058212831849369068367137426142966411272513420417648476457345900725582445113909509418870576977675454365792795702865682499915519781344291510834536471533806634688196450071321673472898856888730628978212429420111409870151814276884829154689492342693572350015099804405521467647135179460778135124081612248957805633794324546788334856681599658566587506042779469495643289652878782385314300125764642439999416004532346172363441420166013601732978467476178893081697532247282483686673611504809698410948496665998740255301356695228347578976325248880352867142341433584394640143242038118406638933496385053270816157701683721731608817317598920249601106127922906792351740885610403335434558744296785461518411363972067376053059393828612526899216716187449351159074828746186349701728669259434027840013913939191358315486216417519578277471299497571222356943488009078016321738910306917557753277667317644320870125779536393510859426860256870235536270697357352519879767541746192157638273940481477895220233011464907933523479832421813155440577346150554382431955392824606715662162791185661025655676050255383195770817909983440773350488586588696983626082610300008150469137447945892290324521548992616663734085547549033212849738516134015958434350473973836716076738842042246993780295210666220258054625668242595565099874659797587480364009857528329951688552304604027626384572811956287896219645847921201528772665278743180949556770033300977954887688438257687628412290460770351441579598396649443135566193997296789923754836064086359461224792997996589924384481772137340610870009116057714571973270726668304769653648402495742310084447868181170880441697350152915394945825748451879101867942138459943195584339795888783687299255272383214573446127237525983780876912830409862980804070125081089539585784549777497820246463925067063652316539444568235989497697169291022155511359083705878914322285372124975906506029109481313407935999797741182797583538320021155971610681946986340342690931592923906368588277504169216200990754289893497545073313114576733175670749284702014410029488467829125160145244062375137065362979797614953105584570030195192255467341566910503923968606581291347409331540960477745252300391408412921083786612280600144823369514363167169801009090603951258287306663361001214071918398593211815536495743563893610751404585465511870799975637131094705269068588630438641465852617519984835200365587084602242237431141515373664825105419469921629815924777074398977223214969320767213943930657742325745268035441728218080366327836840201875015579011289883552668678070562243973567915055301412913874552766901449146038972542958088891788073724800149204849049012325905673948340305100266337278447648563927155976689577186926543282435975062510680285089860466481691069869374917797388247884415986847802092387355246361966025601427169115496382568510211620220084612604332943778115701174330590212624003170892745520425217089456916895962188213808932798100529448241223290212443175248510147825547525282763054072708652209680151930356807280481346952750006512415834965719633935110031254013075361534301430027970456249804162927632896677916473508528585699266730349006281232906470435528739638419604052589555835039782552839340992694018934748794117780626234718175284900715028171009278683759195488475776022633333037064582823669049294604330074728728730120165370292998759627863253768322641918781096302191711551907882510223118184664245764267712011188881288762565955764401463916611375599612208575995059252972749878281993439532949101921249697725144282204379762378274367622147634339502122745560375859195498204230039018186843075345915969216973308529279938374356130024512219922844118969943848221064226601509872041088803049300003249296641984779371588969470306373295987232860205399136143498974281789517611261849475360712585520523193853934363340253740722750033613581343116784507141701935526077205950748477275178150814905499141157844795593440043562374076096819885020218348770231466425533362158634724995323080244670015844889188470941435605209682172842341259808665797358030468899103188617278325771504779997413803723751409090576788439378429495291486099007968950472701654045223014919475143603446313737378826442125712379548239824840132250967799588997975238884496038265877292377414840606508094838563331313779385079964973083467363736567492189152421625450804496951737161728850656736539619190411247567303746889980579237733631432035852457560797567772557536941507080145069906977097776646934681790775603642598336842126151209798646691533283451282448135703877560494385476031247601540482310178780061581568921934639973322784213409198554776422235354670882060549241187237414494929058569509241639355105586573669925548500299125516749205414440231199756281869264664904892707249818884114025303432793613810927117386786029246416386289617127106205144140235718681657711201392404195194722910015236086317441028007335694459219699350842695303519942648017976311501636097355684812142963508193739876263005648988056581845163098231765416924500467459730485180224305077631509184736741214962854641091889833965821877659050923366926621773532497644466021403440155554186449476777901707063901752060168746859973753985058106622896526069088417871647366528899433744878698921073444682694866196275023519505947393636943867946124618697376223410963701733648175883476210284285655036660124381008137558398064290958408166660529253377082467830836565231940444245169579798089999072301362232170524234710992855816026578315564684761962616251511772437523378893808232766816377013911939277360965617264043181581759015232063386990760245042027565836110825494905722090190998788725650532665857384852415096490415614287774626976237553695159980201007676108957571334657418539525921900357150973071029071386143511101324431558505418244693068190626194144193918899564230774856017237362998273540153686079651426456174298503511254887310557434354808385342999808949248664946347743440895395676815191766283991203991229721342358547805344865305063118145648173227064397762756609606412729581893874726829626357877833894142176542935236063976395120469974684452633366692352666474339701684783052153870669760438489704226994492832332488098448220099851293341537444782852327576863046235202207726317784435951659111589854904236093393397709262774323558777287966931561166877821479373828493259828031930513011081292433603377682500147761896443982311122065345273205760556165162552794470756433702614336806217252868491611561367017021244889260899207973550962745841429945470873981848329000397562923393371776561169994247107701018569795861819445012202204355346287996009956338624648479699460424609083309649466491907460393624674806827457979062525757213013835020935873627174115900980331409853327403316158027597953325466020773281876705739207552120883396952290902368909137926837618274353527668348808055728862368203614403964692685983815519130298863947171227566676136163947547293455580758364410563881553466815051054440068878794048236334087150450439765219614626179290914288667122388490773560268129148819204924214387501533751396894088138372167005623481473762734126352223097493205782281789384598631950001167385004043551811049985583867547642060753772068595021017986791653024565215291686462846667299772744613503266193730379132634608896862743509498368049831562427413883894479674141498773614054658235188430965690572919027287717681098374088087929374738650340344231957790850161654308971721320072546681616668481728989102984174742874423682225511261451678121095171935194812723744392984739910663754445135153653417833485101136470223807697736642018146768889933417909820835108318901771764518034306181627755384540430336087486314943819562762938781177521954186471451678988589384310677512804277976542883883824366071242798661228180987957935880077524282211760488831548897693520132671287373113851662337350721972836524504604358103687277734495711631825443981202120149089718304515011916771886595605023058277993301028831688740956521674826594519706421185084066949995462450914710134601887397478244773719387001611010435113555479172793156274329477652828846871896161427044503804739925478120402625688737738916843530491870538602362310015508827908868336218674972570301915264081678240677858605485598788804922148979149969689504782760523592531062218711011963821915806118388609436445706844157332758226110311803920941291235913528015347814455963472226905856670552477620173728164516246726416330674906746254102661327971321889345066624763339149336664510031875875624492207986139659441822087066997106233564402457018798656450396854633884813127606609823747591049258311013879265176474962576212039962303768469064114307966818532184698678826217583209052630200624757323888193048501220011762978935840742485511402956706569258763059983172224826651087705787071249515507477958066488253489395737419162046759632176267820270041590828127813933145809421555601139519924283279339333944537019075075410171542704537831326764766199792850515169970808869782181866382305023793412096102552652878435840221022062754836669000530677814760868274220223024659341009062447945565914627518489926762318004712894507438158484912212168633455301574151788295768997854297251398220705241619069473036009018572227357241796393298274673336131102375786008177804307471221310053232922304013666043712528715067770441126134472600164034717778603249920734679378455338337485914926898901993449400692127596023146420105208854471558068227888270552949353346139558603087356822691377419195968078357787809956730880591873405064815315327827754991791786683645380460949867969929527545758965731298759991528872884039383109199401436930186578440010150589012913867178286886610556165402353408814840014364828216481466522641881550689631809410734512074868739759355201422776953528376739952434956662081229062002618223925511133948558662107172843238741653444550663637563889868116623618297504811250951080509917513854730853439162992802682344747351716852418833234252959189669305832788762387633702047276443014347800399200467067576208439667704222218165505981737117723426384267736478371982181029836727943244853540559334308313378381823979651896946387809713546617727542084294073737820818425683131864894991531536555673822771049121140141782767484964970439915330571456970650312078717708008827552784896079134874703501028921961084790449703307765164368178811910789151704418452628351985539319300001750446232877391798184938786243960515199382418635371864587121344992192131275183510242970582562034063664081236627869366221553845700863510025064929249812745001582102989548371257815106759814767437058381748313642293426578984055021863354016897893379970329943017202699230129553906923683133588276503228975591191506645330091983958319978321411428035268974946298189664309451291938111300983898103548020518492873030859305158221266004190060861935665189937217614212917029361961458402580020138415417139475260426323161732476289449067940090030692451663329795890602599408098017994881215079645019690613350966074418525394651612160061992967008154172068242720020888658770984846742780851072692985577798316315793536235569343170082229459535671441359436405519046730579907595277063412431271075904268140338118598844543845398100177430734972724274707176511510679230732106868936678438418268804042406378058648069144388364484624563737751922344273600592549088258435198305687381410750864178515526065363366953468277440933356841486654415129675755741734385951160439402001213412465157942397379298065051038790194317556040821060364281103294200099359704565659209301132791151339034954010372854185049095987511062681865027219714860162404510593509645113335510068084020398847457153775987972014341079398273002266621311270584239931210338091679143377229997705563455450957611076315294305430586003218255956934657268774637844980647481801787463759015971202025705623556717160395203825385825548296426873730836801679002277045871303120042533540257900765843248644581903821974061015283025293984984900013553082720843584800593836979433181560639976187765159176259475355149052775406254175694827657539940882494432282925637218122843745649993041572557163541110485548483278380861318602305156654057271816317139575673350433733247541402911019624830115366360751595066809408662084201994126819685690277281249249644502421116274675573976214766717552242679103199894820507093664887220707497868159818971782634482113963858076227007124828791555582046048111225394005638811057448099535617378295442123681497779891665862077037582377788657900243997774159493649527164413444244329703179869520932248080897086588452766362955906622706704556340782994647487157310664091023582805147495954104840679347620555647705353626628248027994000368127659022505252528130625258474958910188806348542273095134562883624474082542658622243591621418158884622709729530395934136891586713097413265682337588401642922930950640621412761781448478596299169172032543782108602008323839361793672557477037803265876003858827756221801263628713237924371696421963297840767451333426141224981017129386245018669368018862510406962723753538122957014604175588413323206567820537865154469514025592300951003822318959762882034700220555500730555112821660716325932557301927377455926359768433451251480827581984523615318608037416294688358531331794954229248630945844539038898777457666808174696416249107440155627384652858788991900983378459824200589649947017471684978824020443532870516177215763711745702801909071477539000133475603734545396600166189713355051768273885490679723484696689224964007041242101606293253859994063742476763789617861530639898198144642200552451795209925784196560224851046188437493637137899469536206587672766037816247268776163778031721131876699872554237988813679643491251258867590475685376223987450471465310220858480339500425047091407579119887041303409540912999273923066690279302458710229697929811963456891782709198324366382200825125811211216054648361698115144810361368542012173724553799183461811688107141055235444756009931158603880089635186918410756507256561102538644589575323145197036506694316274301449869732253471882554944528587795264907935860650000522137369184855542954646550865934486238589106357059971841475196555737162466565162186355557162161041713221307728061120963818138949497417667850540415402967471949811334865885295410087594572239603020334984534912375773468674710426517546936710339429469841448773942393323513112687047624376873866252611879023296692430534982109274498969603637068171227148124861526323502602399717983036494375795856037019337225899338749610682604619206372545439788412612578238588456805626795483886602185914797304981322514599238184437588391232172338402043822514811920745153756896772657175010018288479425893028997472476441409784682070177759801701633934657105586200958067820641404055888882031836338489800870964106217913343065677990703176516417265056528738967562440961807773085014728060184833827856196114648178793113894069820877869323414198378849912169977974043530329268732127421336713438280573343707757651104225389351876520835827374066681681398121943085500207716640554256068448843405952693472011591855541252512024962179040208903414444593345528141697774171143242304729684841133359227456612812296981739429233541043540165029707099461313850726912265451938301533861784210392391251179426422831072400255474688761906775341504025122507016894597033118382835085028418566217808580249521537640325461397832347160316136459019124225400972531122494532010734548543934802222684132680044384380971489262543114025038396540461969057894957446493609045246701525314568524433083488603740700602452308289543426107370757037435785639975279748927691875990818948240379623538097448659802256319577509873807872353410708692025665535764039584910304993665232670057993201658775091938913923239972221896284860148030144274201256706171052721813275458068962751225705948408966684888709166992206680768851259558018578553923042860492230874569957236593996267739651914154851382229218509519500071446553194732118545124088989879063048862199288996854919658517910039263408840840149971688688134635599423743720056994448142592214182749811032268319396638299148139191596740355463593966655624029440583995318517899320787138647241274923330773671797402538668193379567451424849532823416265234489179644900852479485565192349009334358465425397844723731610056880015452815224902849022851230585285312162404747839928441854255538061915804127244898245865098646935023486914426401057880704309899228203804086465548430704653979415074049833275491787160039942366772064761165302145662194946130572522476010070448642561191902522439797505049776602708392446165082212742962415120401021197318348026584128946229376250158509803246315821572536933037511626260070013446868326719403032660543801539919799927690910090927194614073749454927177989890079321579427098200938456095016276042683058358702623964761151206510108942616636642459834584639848918426661340424600285461955818148413250301310214397503536613809803988940115612640934853585552399447922051119589972531363333654358639522263513308120738398831084858982408311076889077442404362090229120183176322899463316821390127771346829226760985410515458082710790273696325763844331933215193234996135914695756263901819330275372083495607521335973314322152044188345794429724635406089244901327167717461448281615850664172060174112627596423631502203947417430307874637633398247389422710889554062674955580150075615177403157988562402940978583994717964396643394710610395299247412019798315263711471553769503279226457069544681379084892223669867469315588474427705776133383161743010128860714636431357366797997762213380265504415057278623720094696238031809936386782414504426917299501092207038631783013336365593972042959035714413152320798642969653772144843948975432100819073435480653733933233231786822794773017146206552110772279717413129996129336237364346003715577299291247362972190829786049980387294136727529820138350617390612212626434172701416807993633401131989909032736554675639265784257170046532729212268861200949685113500892742487503710060807414050855191391075471463227672049236005291899126981373386918115194965926573940412847404286573396338641157029694624079412348274086023115909740977592220662867174676263117749249974407589840664212170164351594519196542123615442757020392463541958097470803969269087084089518736924411345978486755882523144805307765539210098437421995062063034373748541637995365029945817586469834153235795361219495996847126347476558216920205449429652310732003377052325821371095865663635576995272508301138528498963850794456258743946344635089909715664444826812748220615166907665338456587793268780346385859014921848925166319145363192904485969484774646259988847605692764483143685334332245377820092366053327104671292982023356906243614560713540638201372009758853132224814079864023566255099485731050751562762760505972712680799335304181828239536510541366738558813343267808683789868960238464386292265998710107170053522058263555461008617675267014841876731437005510441059102048720047305992479034379936313569361932654288362785849403596966208101479591476481738861595147058841941085288518613554971439503211623074842493071886963315181460892300266749177743135898807303925753088765673955803935304192747606454096394209357933235091273643614486026109034374017662518951988551898137402965222591823281868409455784351475805802855054305774052368498107134136038389137252264772142503718152812316109310169396162360838582063447543072522081253126715075071479889559784914557695122392890013178200636729320410833280796635113602065145838156405977577740589022782786884831160327861542683464605239885998237776096457124042959919857320639500866081808867575031631966165172840412876945337528778779106065359316153734402745768830208607807365174401796531586762312020891047518234370224100156460011604129673808947861517139046911674955533675838560757577867072859972352949090026489312178318944207111901525555653557505188589525824741261684870216870881805254022305557122344466989153693520989544250614957897816896003490557433317541104240511474484760437699222290010114925347492058980014136241893343838840058463658981887767297327732384384568010267754430129898864556893038136576384486135967559648831315807514537133728045916887731614909994812024865866211365852625789939377855206152230653662756947626445346022796318846814090288708001473020243086440805515847867377170042752679379198010186915835653488371835693205653179816950176926076756722314769126748993796950877453350532813046131904122200270961862792797861528493065132976671078111502691717519680459440981089661013726646633288538561460720711455252768132845159437777886041810626775052872408164737367793779795602003946318089002321115340502296957626899758529320480387894306320517369279154780167328636525059465683574939916235098170315880851227939680973828246709230449266954434711957082485597070903000126289137184614784834935881245239946589780592925952484965679840231511011212470526005872217530075940167333546532844268480379444752807469210280701186542304164218171626977941563965566758231524649703510423603234067987524113814845907815064393764095196495677449041413334274824554467078936413912159794816653244502373070964281792052988733874260462397736219459476647180537446720199590050563011084599393797476058635829338991383248960826423557983033245615685657617707662676109973825995636581953524711776875130594363070695577203103235631385577424179481522528119689496699531337162232476296559010025275875411719234578267425775560819524418125098359692697100330047110136855124846342595632419480050731862940425049815571080134898076739812839497453701338815812005745676277488045991938717392687682885893874236754218192416696693290124095019198935944213534358421948407413307691873894023686999071736411768947691505734670212283927644076713773623621433773237727413793481149801451246863794823751494625019211638426570663318575211500069327478033418623414898500082907704520333433956120066851041164553253081993344454120599554052910664210210557298020543839896349956149895933048475643412401486288250084869868559196680726982511438135914746259271509500052164089268484790179119874493839849162698117443597502597878951441008219342751276037832536379873958307223197997972790105159034609211816568829296207446721220862501153259932482144172976695732827977076857166623595439766308913151235822028917795606637740608762578285027889181987257322455217916205908567793197143234605541902340691755325981959017974634684429439665307603376030220683369480343504029068958073131390663734091915462303145821239182642130428378667562772746458254786254399341705625577514159515763066958970330952996936883337143573968261912342297655316909361393083322601645441086529297223863465350543885952983258132131057484566340763016203097388245915003346164903810844915246037931681900559552138374824685509786527634749579029926944859382019541505071447490894838589047826435368495519338959423583833644761270831844288213838203673559846472377286590675792612333322286474867711505935528502416206728300423858625697193505019168176956383762322299789304803403871049391727212005285747682409867026396704982020764819120247692945118511900522602336986597132038302505848059120286235210331760747657477834498698274005969267483684377308936649770196654514238879092334563155160099907508065232526882835474973938247626331782878538689894813001858886308397502546076914732584843233024125933904022896287478386446874844644104297600304529983367201328627862465201062618205865281823088400937240737453408413968894718158693284601376684839765522335137010957286929587557590143576514448451729860837802841942780145933261208147474062125395460048557904547737941338756212753215983108103962287035398517019052227360928031664931301655330335907164109019816413187898611523826393710428617469655390778236422459449846694754279219303617845144469427635176173174563268020611990968343017680377976549048295831085283582646057442399914275380282232625653034027140922475443287155700098405012592552709393568854212333165292739098974261252535049843582002276021468410011364551434126887761228010065487743664341313627291229777675213993477854904740070339573175311259020340373639715515545339153891797524703918224930700952545325077256947558536052757582250105945766753860146115823544722601871194547052539731578278474163241392281028890324653297244785047831842964192527730668196019662989149433364285567569669171935417292667975235781815250201469512082877105855988317319011703504361910258137584632469755380213364188242605925557372978880894207859098797208142512707418848840311899060412141640695709397517015086304799311820335408031858806996315933450229385700493315037946460262635772480473072110306722530624709083698330871842282787910818697918966247603920572820241319374782976887847141115233037072908726763279143258388495896825487013708131023418079468497263083521323440764445955025029699506917814670245675140896915910631442971951243800888270942096307248635761156741831306915427112951646794324681856588802500586677111774919010819690047329688756661290679731168331653740737951377677887567112051079458145708057983511667299272016203899344743093390340070471298228611022154714214421520139409397823550576565542684564325764512634358784743298908488998763152826024276995385166698741419549603150354399054735082455442008550248098115438656327402262492562209479734747321746256569537547410585151049541708631307325238581401477457493358283886193602226927591845102361713258096552684141872046155528770611908114588133727359414967369322884775734248790353184107890329045254594272609722950785896426181878915207392232898397352487580034769028248073206299711645775697105506579426948524852260352665242015904410290031415555238728082912822437946535561497829833827414873926554678026418760566151344658868909385721268335116124435365574684272527480520887438668186600750159670813674984465827537403419789195372302353727900583280384695677429187806254082860706419196314945594051220392180926545043172711273001249241086343072415675174243422411552509094396503580398716849628791540158892435092746908267318816131949950758774427088963134509509807911611595566953921149405504140055793088265689936315855370502197999544063603076131932487529516155110232984572779908818309922158809407107890636469061964420757952994327557304963034671358048498263394219818502224481021562970131370523655633067136359951055946130809860872089598302613310864729062162589674113844634330368243079653511459690676445533704915363094403870598420132779564465623923856618111887278700444822332323198869164989034325880485568381634369479063961110046516793427388292490212031738347228513791853733393387078813046149600235194065505573312943136919585414970919045616437221760702423459567923088823050479985241782946300169024984576016382008518978155828748104922283653225669092465698255070367695533720940212096453909748077960972992923445782532947470016273425636768662415308679261728168431520562074985789511340610379491868604030681640482300659079215803983366883051014179162813603289356433666792984956201644811229274306177723569766908310297882170326267488062152153027700201023764694865438211774163156051885398584854287117013136359420797426555865872128511465144624248059408118628239638568683373347365193131754136057785013305405431813417447452554902272709179848039928563294899742170167895243258622816349291426274164993772292090501617928517122598390132415818097725643375139387884808231188569930903828141989589928490732631682854823026421779588663931743817195150029302413618475777368402873638382069854643516050568005608786496590478890753373697530275539817934511512981065691674559449599310232875299177965222128002246937394442178581796589547069828999898321890945397373576295200426705510936138214068662120154774471012445256556172272371445647626109011721990490880579944523480813327764087544857449507862472653871106596609690718682697729894202028787154860914682911758409682068531712855265196011487466931361652393539049838184553746053018262015393539849202694850529217166789873324728918402263854356113424913620499665832896799225046082979498068377213202935425550420591214172380100904210601463231553892202281472894633084437203049319771524447696513058672913894955066219724726006759710370529772600502094456324775278359268424694618422168944973028733085610435488564310129124128110400328365807337929206980069682578442706774598385407232242371348100594194126478973146676697627249341501774500240872060305300056306519866394885161696910164322373885990191477966202514254084378623510992673132581297233760518182278650240198858157354192326057398936994244959047351527637657285210559296409524318132900118404540274437843031857361294086033560410272002896219264407506788385418577733788420429960423343057953891135707977547991282715559979867755399981871450177456123825195346014643512833249666945328174348380410012566264398143497998861187322044830692521354780676723331036418309952592989422168470811192925279737525396434006145142529290851565099702789190109551341297377926778949737593606508678195435134726372726590182780580919970085670291150738947011191374328225051789375591322262845909671275365517440487015670335995013809105845303764601775515932158462490995381656161248012419379357061116093336150397150240868283575021561434224766780742829583112485918882467647391734482644502570141788333408250992210083544602010883019965667005000335312492997353009799638985619465665743576823703141280322627655082961410573627383809381742765329488159942828138626432438010427691106067470064216559974227981058756232236426365467608028360447386853712358577722091803359209461860969687834914745532627917025032981825894028325368991822289383647047382203086741001622451088167023718152002834820809575580595374328361623857421644399084169392056697560552174791934243551361248793833627593850388823167924401549790597273762346228748712867666312263696333576776227397907535588975756357495145711641789267787486816588765155067161410672859509223652400319950011376984806444062678071308234370086895691825797410861458369867203254998335519384281992425959469754852146735547209820577781287653784620170746724426897825856886822593610714999956489581770930655896680410473282274702033136756353010112045596642896657381312390094199891122437868897062899615717976267795640049061808942244060663233817910060630179324531315890296854225231655256442014024639730152956993630032748053507870823062623527024677079634174407289829569137447445781301594049346876496932005204916391693655168138040054554602931347918305136969777999416742172334125470781314740063163036982693470506224189158846359526058794971943469637977387042748908339757891312189826792024688460449759135943094107848164918801473331152561333336981706393026209268817015709532336745780479760305981983357260140526789395529944327317709914372132990928541464768706543517918266856682663403466153618121949170813137251266640385553297568208492648744803165320706463761670586665931643326014459744075932566588554140301790506647636299422935126359669385696470516767535150125934781444585825239233977982803432459883835284181877160920105712335130842618799024177500045802071484679675517339674028785958595193054624025731666541935178123105838348708939180201194429616555108052165310785616541521153969689084908008808385469392921503453032828897576254761756457277880125481104299231673596956709691995270997485699131524913645526098074645910027531480034282172215445193380851390862982208732644616956140294677471487925667872500890160325102973618093879199290801304505612301138295902522251399895943505752165260164408546301471383379791389198988984591047371546647877087145185265388134668849730113383015694054188969695274459548241032668426013597910278760266433156378431428959032939701110558773421504575974617035164687854130457440619597499808780599207699943750461971848892426006588389062568893420250231613174158143029279906441951313299657614966798909403035503536479949624530810687196660841749126563593773190100624400098529357622265272562554177273680780169211747214210305923001304656774490787252873111060435493036461338374393969435500853518313169621016347257069918255138289141442084266368244652178088819451824910649020927698766194561189158802555376246819453898282378666906865166164501353340309961000613415334022541310877297107231309434830990248866436137876804914113487492406256981632488552622205669941610767923677805675362663039999430682477369433854831514717856625018140838919114406095732883339966458461264917720196193964075366129486761925636610217424377126312018848391533162749889570647301501150375671993636726188867621357994571348977323876650861748856667081721081867711338445423122654682307308634307327868112522533818932253792921612954918077256807193783515818788496892903832606480773001081238891014359342016576818643565513200265557568433718757852789843180900597559274285479150396717770747357202878496804061913545496230176966634413229873621006841186148254992976875529979841006072590084510117751866559187893213591560583824395393274255067273655031437323865652525855980599201908263828932520569698181521919319584267193232775694059431736908864712856248503006672792755678313860658835389010431301966864800049582951390167835075784533546933225184923851962162142444724097565969956039702863594140324375590805283373188725041360108422504704524236682062613478309883943074976937647981361919182430816044196246947867010168093968823143686340600382721646148762889178712995468446378177940600278261584563255141397822043575455366106178078537055325394873030258708927113000142018131010157628119959733268767219943387537224064034132712136390388711684211658458732605107059105984577757153968470992112150931474408881600532168106252648757595460797870247342425262694530857220828843494530558074229104470061179197352450302629820164963257395786664832392901273164436655996165978761768226144002320588838960303116974586395228275445763670714046765953723319004698875750531301126161265379616589851666740632878987051019327803002419049401303051347604913423931955103246037253046447872844997616310280905165332904306822503450286991904503893923025299324876120165207944837898909179312732444781797510603528995459204941897769034473336126276282902914941904329203261224231539562946054670449404160321545796219009751674030349481971921076512492280786172510192698626936483199757672097383054725338467343725942957385120837992056128191979838795731942723663548492221292706790732394437576374153542405468211463258621418920947299911350140376901581604756440915494995905139322643912741722181465873663214277693382355832697792129520971362907118800010797176969810443209595818764080895599058488696555492893380754533902352877811611643509261584756840326294183866570940785752223437889959573424127715533869244975900122775195396714652337378523798970628620357869531048585201040011461354859524448517242326421240722247535577269939533726403792390047147616984718685221383601530982944909875185060364471020680290230330554191634537313701362361957827028019256293265911319000096953027833577598176331571401775303301016806866203905027461170394120013031747165259502292072611972152182216124922932218336575077515336939873606762117063782825487633161024086372019956816177861455959253853724791159162316547073099100224888434526885659492818043602555547562401512183591781405815053458621620648888409392713633772272999986280117707499270355384685096493578970832760723144618440403271554670853298826183188201163417769843953405846955546204292134380604561320912035932852684183683653015155660776329359404895258323376858570139501855932819136567977110645612252417242937074173899764691218732876917938090712970553242834908711004375981631268715521063364142157034081771428942336964030539736288148841441322325676856982454735417910422806836923154751001425980247664078983798765694945955442816395415267154547231301774982085166676065552335122791535327846632889765754803839820049419207972649411985947704493002295630966764964649248420903352957300464413600252866379555552716815876164368185987810370374004091994739706962020519675337638893433385715326542707784826782787349956996791183599350898131234579077440141212085184539912579942578930876628007792173885147684583710481926841738134344587953856967873031591386002573175196608542697943052004818427810662013715094513348661822104382004098241464633890962229523814084491110438477680445659615598109083711681532492899440335986004164911009765870409865909191373926442842010851212420379269446589154422673156356273920659516067871559440788200621714381250117019717477403658241470455738131481395930563283866105804612748941350010605116107724211219815528840973257853473763371129748868430700418205616346539843869426759563300943529677045973239784754701494623202219226472200742126314886481862003438352107574224435061878292611648354749530857056771574848811412553585098589241058860654829051355975818515172582728171324317347008205406679033818645889001413565550801950052026569111356038018597724779273437311389392763595325941927650413194658896043137524552428290028575565437773644643329846785115797303350757343058112171601267764454563896203444094329506320822926800229447177897953040807716189085217297058062675845650788222220546022168798737749599113975261984431656640860826404823020853994789441416876423774094144128336059656736392497726759941318004832429503214792590060249158378888530384577066516509056493151312754801487201370971486560907707031370458023749433710351716520239318197744378182965987614777538125018653415630908859774959311316657452781295365104342541401982198858580625201328199605393223998380101777050355364482974743113162460114429908496461229548174046875717465115575597703665791140032722235722380360721493764449773427213714279765097987884239761961181610111409064692899149845864126110835598869047600762683892102032131617364943528411002596630476704958134380017290591409872882475771210378466448129249337341599009655040571195896509690494169851765575153735249795255491617942232697741131923909739062718758161391708094183132037641812802906853829624864440509903994538369112942852420704610860874011105483717121552102482438435849772787793209119450870510185457547824968118302462838661231493802993451411771036142452852458155397815435616365020267370586293068654927212363623825710701938350820874609048285433627291793803781906203479908534206558383362505217457389105690828305915559112643445406181571611596010394417338781073812064381491639671353833880206557103942727261531598086625745111862494251968932131239187680216325858550122708890751643178017546746697514446822198304831123719527856330152432686838139800857052520807205665909813375694282189615904311550745127697540820988967224267616408049495552836242911617875543165112104253041629684783905879902797163544635539823030483513755893203263834208951222582482012566870188130763219958447419465772112663505759265175834713378079945662251074996839359726852615256058712948110187478148409733174495745142107406268180359847970351169484812065824219366411504534128782207247225641972455792060557610601675918372569477041585254588998873521175506262538825974417831586380221192068736265248227215404023730996080293536771882849518984451832282554174638661510094644602881692876502184741918511794907318218332202670126513645359362161244197506274409127328681077543970359810840270799512017990213815986563582091272747780863754918824938609456749106086235583508238898711362970456327265097265018410530214679647827675253365279043162751384551211592533406002916679689636708763579232125008283243919075551440643544522745143707073005572673686429303917430230461836372398882373718192834372934612671880602129433417216906337858850369026947262360305628068119206702521287120149487493801664163866458111806403967410501424280547522824412051827216951689512588988706643570457959546772512812268817116221974294375999796760643378924203114480738855664115043482247676600714797777631811764853114458064099770546345494220155162724543468520183112166901898782484550613464768603252900568679466206535270824852096268606569524271024162692055451642892903915415016336445823095782771200552069200381539226291738508781542937409359161872425754333881020149424375064195596067861631663250504634799166960670087832303802623805053128203673877030972612321269528727931540522958397104016176947636387889140222322253819346922224313557002088668573411606124727476038636198919110267669861478852940904073120137949950145529755945150044317655833147068760205869678118678296449625245154505366700841986443428219500103807716318541422653398944429716631058681137449234641867138893195850219889760894774185425891021026557517468260275100190044243999246351951991681716462711214438174715080328201250738436417773714803085767101899977372775509586554922402595614682054579559498635518373569246271664184330876521345186283140686103706084036380216209680645342868404796597796760353832905296321490672519054707406873976633548783608343003462365324836368840285258628307615916355097706156446765174949164567410428746824359625230124835123382759285953240527042958610597491334805749955215443347549549171318053832184725156593630227966975169198662962225345258049078377259749562911874075243419118199969932245293316597404226677863410210398779513125240722485652762110722648984007962993187889686686851343543632650304280899092458509004990506103279138354617135342145639399445514941556962377432752813160666293230332461189157774215876267152181381451412969200231296670419347406927623705210702486364830785123946665225933114527945847776774111934232522388793050036383461370656648930952535191306569943266216434587799294659199402108533804538301693417107158079762714487924291030474220594872233493046403064093678634172493409974074507752685671049717963453984846119892766542125947758618612559601816722885106130007516781260699820959942708872960440571956486532333783348134454160100238564671982571516016400225596982059320682917360576282726351627845543693325169619302039450460101356056384512178089794100228998112309876826508162140362420516338759002058752597830986819132370362982132571078739399767157271087521650473051763315391088472485719006633395543878298773557808471411981019968748532084872403099571875332261261191402371265165696818110838208534120246888974615087936676645791724228353400356556055279473379545576272813293824706255129494178143405282642299380471154570040304584653971315143194398127960288386561281994354916168983344848781631622039772572794071720190653009635717099739272438222988796746463811449024516186984071995269551777430350638024384030998672456192048330570717829610770584788075467235517124362956741523386743374045162908611540822113142023065675296058607501756268555948740688815282863112480040808653175379725035897559428656716357207906545064248442801558019359773652324875767740541072075815947731542239233700228885459151261916486413470619529015133666727907229695775107978863505502090706168349694774572447136950641057302586136394963887057824854212030407506600945924256760747680814675744695822839974880818174469579740737922895847771998026844864768413001407906010391843762632606829935331425719553012346214619729948147647980069559078429914208566381258221306733053639040839902696972305846433665398557009326282344136054367950982114618732938121326744393935841849495160670024686902128928632917416309767403472841500500655184768888997375095137002621195742521988208069605591045962710504248999194491315797845078931103896703222939073855095933625821213192993379315826849262297752798970530247620267037162231182876456587208741330321304366023030788673333292752326137662042903613562726374445898363749114495935091725167003141990850609058770579224460636858159244541186550526094669799802638232884729440240188984568791850097150335123905002139806159924893455232895101862056804732791161833506369780924723333598839919137216674575738277673947077055273749450494652049991751152549201953917974677439192668841735984291788940051668134423450781585474857178377166600473019258236960362749302238008300906285838635702198153211442877278453931507875050848485975101765952384759914614715253270855583348964162578872579562193043692514190961122955357444802935729274553091956842317861002764137996630117534568462591293215731789944015075766258171940635665461864315410457791185409727628146042661811999970916051016409016855842873197350060661025591533977172809567324410456942958200564387935492899576717615453581698576264937802523726107380628721965712077196767024484064651928699409245781254048721599634105516432144919880721698972017672622651521734921927346767526938500018625606781953638178788932321944385604550213009584680322024568762861195381526066149980169424595372970964582488718476611865949241425095300499787504038068730391881726087732452426402304793265254123743452213477832034075312916846430303088623281744245751864438662900619394101743399380664454414447849113043237193200197134464509861972125773259379942195586006298834716235694603307749038709976398105992978934546243830267577986292089120546795456963034384549425331855136402036058921406873933846681084190129695475949979650734316011493601838931576971318923182969557108562068117844040306750101690565538418711055519156526100703158595703035317559605426381510765047869792197161022810676975794164057838424692754673059927391378379742557529218115992822925202072235061395752646140277102986805628397912174918673358433134612501426236707696841045364280042457600750955450589589935078638263844686446786409500626147308923703668986325506759724632756540921236262805396685370216998215629102611298435677587675944411484236286918330367165653340715662285672805686106659757122342039836497461396719063119368621484113159377920844182142436254405153958815883020555921275616163217166386759511811357829949133464577855569956576770144525125612699133779260698705623727594577070037565282335662028783902922096677021076629692433566529926605660027923892902549813148958801085063222126776855091583714010170445711186441704885436013744100232191330090030646604486351853714050941809548463847613744396422983558827100638611435883710054083686805902570148029989821975633686176632733160014240072143187577145825323638330392813867284852765702272069668163090916301079507137483701195575158056319366062030692011012558982033723314695748392224480103877183795205840184111376962423336496649332084303896342579467916372131648289940163969849025568105587506377477606522513734208107313338432195545457721492687727404969619998357541468278206943763662762013264922441468717228595026056151174267262320135846447482993548912936740378559927147748980149135262349670231472091823872589457564762006323806055613647263562501844435946968341707121066834477098190281247232859262819495154609441465309623741475503270472017981720089877926594665660104090494463507545971107910077356342930633896013334356622150008219723201055488166851282553457199151152467560715155774362591424116484749449993356620789088777592296715881238203291611094089580560082308351529085710772763966269852825405834250666426867836547691899246801216700040004553432067688028947363255352855273832353277788569013035468861693091225491831371540499531589873624772159119746236017343768587466846930695884475647448391626153902803956959946526345046438351233568759681301106285697492955680105436581395774172763699137729892602898503841518827678439955576437241502428230378739834382564660265482314195448480691361281212081289632599862244287539383248441269768422814671763337699689483944469930956712983244464727872429971987732318683146661778624865329033209592093124909479734027914163041228061127584647616453387167964450873065141857909248265646192592293010411684990247644814802180442826708314703196935821482766160319323944095247701394965591926213845698375387212925810787150449385896415106891602472001967933917949661312885381077807654878489169671395166254734314979656359329654968310026491192966652739945474192567477391867203771833132588291207288913459059937271443217121751475661660010939356499560383807599418161865453757632617940685498269555228044112275064079745175301621125630423895673029952823588603609555843968066338757739903625451682907221303554323037919831313458420863974649589509074395791642315886788071412395692393412811187039274911684919937747197395202268445356084524494901431903009882728146633908753089362250230413655673708499926289514983374826362441190843567519256758096054732503893566352432855655510481077170775937851767188097531414279699497948237116208695071236679138272228477075839146217367379109466893009387312381037488084034313819566444702673490356383744390976299578196598617913602167599623544175309871854079715985976734530892341802467747482331623959900370685746049793905134195939353020900567806849369078191904653891296189305667876762215111650770349205159211216734349848442681137689857993557349039585581248262867406811491263141160761474267304230459642853244730222163920987031380199659536536368853663511684257575767593339972106793517090113963592331751397068436642295856063178081516507978779797344889475150530411850489030322006096769576981808764126004823765493528785911472268267523170925997027618098372322275126857351180496808380994591472790317506276557014570072622352335408606000162329003721819553027261341720974467775841989757394661448167365926991494172305400730669622384192272155265290134527441445324306710652600676029664477416040246622365608799928819550714411971366620713886853189804320254432739903779483948428379098915740011458647051062356332289638021820839912851948038554215790691972413552906963077765547115640656633993262994205262105328889863807608759100820095180170867150092207157071673498227014018780029817310758662200302498788261627583883814332583231918719025909329055904740964613368037295575169512688332937786974680826589424034547065565789335527210723829057731834723154935224290848111114063798339692023040510268841340132560514614129661366856452368983528903823655498300252995293555629775230286382087253550351295588604451074686169810705476897189380955639886425851125218425090054708230481009194384622514142006205966757485885145237928252383199600823610452364510742707123283200328675940453673415998038355190430564138577870606530043692617434756764214211616367745296515392598923502317416350420498093452565820740932762355395153430236276150456515507427411530208279442324339476909619103772035569677067411577337315343288053094172065829930380546966472278275929195058135876307341213072595932852429144835863413049491750872919258871013751304218151392176826175645787191150941988724553232199908324195124275508496468593751446493285798348078720360878439585225715727986091513684822616918083479902452787652283661968375934172640850597945948687764164281520467489694382737379354053563091411280475768862154118971050772524921153728059873369694921415785577175143523706857607320136720798450832318912442646210970122143434505948356236949520906792097264535822579369446153538141840465228480192170566463581573260022600148288285916105820294405576304144406693442020183375707075610948166475948201268944149701141151053448341519149168630718990269509602300256887843534068548662103021891832522921101964219628399980189134501868289099756026573182313955551921413744397686107716924535955503397085596916458528544586904096165319296833462230088161320166445177465203893066889004765147341578092792791077233316429127662994368949440978119340708361953034952903243135525660973479499444302689705028001579832033263335328789156671553422810081467653372891726989726519293523930257061753886074239158525070626675737198050697087190436737366694987698420319196744632787325327943514978266308348144491906213531884267944042979633013657714604352619152325047619427937762959619870476106734221458841740668947062152042673165748121955420744004599234741266701439986420006012590352804437383321903867582004335375578742838055853169079610980056510041009627027901169116889298765435055553253529383420134536642487725288017435490619674224338186398119178867255446059592907378883786848867124372413624128632498047393714806865446530335618292302966169960975220430239841224271395279427456037950699447926420771931804927190518834381181310735120735636383207129974666082771208156708847826380050050446740059176171949425237803540670196186205222988717100946473824406848555270487799566573966221164742482110378840550533139773910991615589314981125326152985353552400110666908166411842486222070826550580238715402836351840965668104488216850992599081734133578401285758751504873881551587344240221112297127441242021959135476518301031078659327266064342258414041635697203818300918727890096798825079569893482329155993111387853728595872755923144148765299112083390279734813049799302967528901590206838448283884256352922120936304776816299006386907267216963086921941206665826123744442473701202523376297391506569530830069504772070174049795735057864415672081180767139886696332111004612617513616350714724343709034547220746051642864791036142795917396973035536251254338504728693328537176000656214728237178471185175969540627372924049886339089275834102048894329625850100551226486031194227793839445885302709025012186973298061977385822499695338915310308045583561325747371608626789172181224066502524989629865689373393840784077767585483495096398709033826538053791123401312961493932715304695095226456652006917285274726286982951010322655784609896656706622148346126110946277209437148402175874422608724929542838791390622017186381343837162967726827801930420356622573135741735597915701322238933189195673022742609283244561602817978392019300244207563882595993358366611375899349382753416543306724920220305868528466758803634208785106924012431409519440759982403015314410414961790344997261843601682246561388032143985093539527669828771634139231824760541336002808243244439491414808908814788791957735843843311474341309754368089111739652911720098413286444502363899587558758775981534849077192331800861119849217597632594020417604882580586801566506045973197335524879468244831967675292392742393631104922370018527685944798203472494409590793485571880440480216968933957882333430021830080272803761283069521306195245540233878166499498766959170567780487282752079618896494382976519604603737606226636078623340572020994778579411217521092509457189045055419263907449335998053690531257052034347457494153275692170606418851198570950773417699121240112117864082546528830007257893768996810665232162875090925250145124132164928256424952496828647498685509734169723616029961341476672552687429801446670329313645146144701056902573186433468656478860269988534749899519269811552418315020354692062852130520329375147645819135442106178927123743385294691936408534474039861767545141404911943041250102539635912600998473219434063937937402043683243220631256528028906237267380701091551645210405050263937450847301284134922773023600412438900670401521671321454166589727707238422233241361684871377913829270419790216210887255821384254598303611521339607449274662090424768367402023135641523107338035525422244546588004526584987804910752727640732001171600733580200221923100396024738614483651780821207340202204792469690331423855023644203046236566320579734569774172361415837171675341124021285554788357825575803980062025846402540901576573109874423777816147449526338809671621287623979783998624821329619340752278241445734533537669026462262365485665166621723107933920717115910159984516939995285121172399914412315724912574132702591376251116936617410032022489842770506632163112031469987024203347443809151684808371736372441639661482615063330491378497368841723987091048554694845989051821461055475427712018816167918528565497149519455060728865693134865219750066885082270556377852918698264840939639508679817494611017803836352549192350371280342195984091914987423896387613693388689921993876497741331932658563306973153203441203846517825012960939885516312881508781796517544665721542511917513668543376227880991009293445644628970890388478394300215300205603965132469332675107741301365602701295998713549666783834860847655416978129629991984402375137129715013987206920057436718828921953688384817936718150328638524646319457777167723796752134221284637926304731633661621265655002496542026266649654965233869201083776725272567562800541199637689600372886996098269752911577063014038502329687411198369183322576396359997657011386104362667240333098469449798698545752694799482065574128373510604747317579147563972932314364304849858512436429466457616804989854367354708380841031690209273243780347097423676774240412232603787263508374819726464029173934272976134666294170117722912675164506678409479625275193513701644936722739251633571402335273647454167625685111117711968371816124704241383776707599330739068176034838765494516108798587989799465523298726236644981789010549465109579691760690357623554706651330411052586266788149089179349750981348069255035654919020953895018660358942719557021908515633263297268899904326691535170994923675412882258489713696707497473988841589076691731590068962976755885846442640747671905879770724279231259181834925670977755832936196192574418705824757760976252145663370374656800263944732433127065002336476252278359517755709605371580329322997371572217510016648295960423859390434330699070039896354871192424329560987538359915362332281724345451064382527627584397319664151251190905364990150211685487983119470876248624190077995756281440194688004765088374296220711696904870579836680156264360411486682677791722423167378376627718842374442286126150750464799809232129439966516273928345288857732811699478944855177914533613899834897661552247785921855187921158849776276959655912954655787718586642005615963437481627283308167365231936302414451541782600533326972949929839111947962049429173111337311137545930205283659663104521702384386591232023161556372199037849331461462487918523981734531764536330781217663610947631832800396220665959605762749940562840252145122790370285213725005940051526997333346470900726755986613687880738439717162278731692461930778447975087205843060446665716072185027276557452197646622547890722762061605335214276864851739514293069101878809786681664793695153060284187485873282746934798269718757761601141748703648216299497366250526327312399098124835135590441070798398361990958626387296125751430663296263236240120152090500620092717280410550368215683864075104771538511224973342620156232413822004788814179750188234261000270054363423934099066246532098817233430950628278708605129071205253654529147248469349961963290164761680566826116948733731303946142736114559039202222004909971853856823745486793440645879301350744715671824936308545954153699884738959040181790955228408592660179489591870461370276303678009755279062057574732053882937688167760247638579012398762548103545603781939671869541841701244860125448421214315232620378116311773263709454803093964787437577500798154650572426205316845516378031575737183386106537780230154013460086407509114926611413593508138007442307758444501363704977132966731898228045450606518955926576181792407598143658835513281472693332303804183663631861006815708254467223722729690188924034822060179984853483214635768476194931810406362038352178417683270892612576442654440556002153630232671365651396486036486101368370645197016203336879465098402690035440307551584604914284756968560803382935312513647829469446221577467522612989478935786362290620919985722228417108214810522026100788276953185689454869601579141695629081907076573328832911498474937677534661521752024210000821451205155001851010396602161811313420646708299989074811175227893027463580218260205063348847575477451949191799051374930838757424829210452273916023849105767928243189696122656991613703272554615610044273356665145477314354608885765253577867615883858207924450323603823550422115597907321405386546128893250190350809374820039995241661527536486285840399636730645597455956747113605534076683345889464459298057021176611239314252673672502993480595197385914857773012247052116440543567485344145186956776519750636403100550935022108673869414206946504465634522327785403008958228418615086012920108791780307886588210295987297690640055597106030798332268836368619120963423752530848451429687379112279615082864864664680063894419899952096492807599036605570291203628406115460406321180679032875390898822606741010085522643069459485651078717806402488408038303485771715627921845624208777147623831777404142335011055712460279314643224977120249591072633458833095781305126385131517405691894236839675635253160199842659715487056476408943978811858440160204608982307258629834880011879975329675453484796200529524709459660306744079549963170540781062477358017354166586728281288876435675156582787315337214114508438417945564926456706662595166013553443041380355293246767219800016525453709618853813435387487248704946902428037056579770348431150712083103351725458122092659557768835706030544949054828116906138695888746433340676781745985379134369917942617656411390120092556530038108483180186461490369903111255493803569675595151121517052905578245212219272292254507134569648724999089497350037832488664972588171193372121800617692216449319414259050396907596995513418993935314412453482421144737736699189226371623075527883888693152616365697258361696923506688966961876374739847757895773643629414604439607357839538898454590918749959542348765805786555285831627787008968976702557884996816196587947010850842180316452857881614687833072148738959917955929120622330533938602664588436016476267877120110518408591302018063928366218343678661839593502595432538436469031362893572572795208236382493121377779521985765402587773883211128878145578587023823080977101943665774338237294310284762573968208676084767852591027137647216918798667230998461099675671373593245638847704674532113975629385924874326416224326573241353377507931722079025787061676364926543452548285256766502937667210149323010814225402444381797122349138686864484707571186578109224598679845429539552510029765125338710457132094576540668302199545197763986302547592159766982736200354162239112594247653892157079048745772023683526158168257069573992795448415250099774720828766242973157622515849289153028242059613653029591032696671656531302252910409818738125491510979983758899648994254441689773508658043266872968957721093012816677072720326886548525851558882262904355669662386915206514945782237270336226949654408236303445249421152640621923432435583157727321360673726150140731509793553576182325814190474839204319348833944610144535514511776304801583445042226333712593092098605903216834728374423146186794196828758714695280503794570773303663512302398678239845294060804815546212225529897980591533195526753119153146563016891536793586082533912334292032201858004671750860811642527602821425331344245307963937053480325706956903073508356252670896389385436663876033215060799882205711957539790272370571196151026089268740599407451484762649864046286489920298922884564460036161490162176828771901774138536687931930169015423658056488092512386554474728678241774378451183918655711212366626081459806648142769758974228847741720459611155386723190549557767744574190304437563695870156793586480419879131063155961640713711297002955619712027434178096659758798258589492023193502432250193268602368395968395383195324111791973396965707553040505351573583427403470668974167362162939911390915436386522354321647761550411673883783678736433400042078944801457734527491976252140500820144160879564972342668212438278833937133559553988412827871323973931190424506446416146994231124128880174209646048781342109673889963855096540056235221511314140334627999613700570378816053103506215820487620684134370588062600096364901806870036477273258151975516746564098529601373242111089069199363389620303270496728341243619900331314879282643218995725376337615480341885574537970120520955622438871862562380157465273138419470503278607210549529735635684493303706210326020106763430670343718144829820342081331935321305972656103386595140803134838843284989830426155744746849149753290878176401422791919452705812005988441629103308036577659121585916224488778222380157214480571217557017154672756846136230570886515559524923342063603655288497657360681623503102692939773327484732924811280055627311092690200371280933925118620529689352959496367071986955138420515934707546915988187013583885166837702273597963693705773535096533023369793935144847022154850992667813201690566799984156053402105226514412974459846593923166572730121242190054229525741806565057755355904365004864670861128227420684282274678410659668986271793809563149724158758321582744484275420469094429203861771594127010994742751064409216768420488401226206808088768992932569454391123993891353401701168738414499469006665339083843687575852223021324107843469158113295213375896328281445389947083085080576538073829973969213943597156612412204185537666517937086248975211037296217150833061286225090442195730452071031921355631042734484581192809110303248602415741635962188695811056572871447181538524229880534538476385288190408922874597190056782460663619079401557400920381352995892504923817504026680337601807177762731918784488516795603322818263886440482990125529010362764854946265570084599097477041131499210035650923657445069226479556641776130094721097039054915412507338941243713307877084551864974547209651025875906008780386089566615273929393335745403167618375062574570430116101400322113928759705226547459453547948872505815965087957355890652390336926188929136015935696831248643196163645747088117239954305205947470500843802000040931829898142799223687469182946405220395588122670512451263597012275439177703717596673940271755251549182507890714098319214063040004641360964418207712380534451847838296288398669660524666438009778343816916793595474594969903902096109985156671304710988421453987638507824527226656436297536910015430018000069463030688678413317067981493804486052815017347086437496364007091224499128276965691681064516033588276105820353065532503073325647929957566143340735506604825015761918106220711332678792511248895787906884095942111752113771356085953736157929114633624947917964740178504942701621053764202341433205997496229157569431527649104517478359650784259199266135183290602461454407549228888975381183002348512954469560616759026401435314026846231066656959271196411189176811559036939255778917514499528111918448095180666785758264291606842077115782866262753546718528245419233213091532609681299529537436139266380082855535805832064900175840244144742679115310781096255744354167187995255642232031509853028097978702257534623472208318077145117142930430108315461468362483802123466948669677776413575933989610330434786007847349256152574093803853485994866422002052978814919099037317629969734439203707695540471011323300924725866207691081080595162057847803505552907650391511399817074081609334973029919820931913444493777913939443255984494987189154081872663788262137115735602872410713685232392846436944512801164248853877548875072258907624967472852630533793557409906559885393088408635012980362977138602746690787852871862992896174853123715797509979306913113473247145930123322295324180115877348539310120248375399879742174354058764649179525557896546295089951595446239706946660088276743219114828333829174198256592089851424751119577228241659402491898573548793549634407104743836868104020454375364907049421916435240913907473424255705845691051679656891258761448811603494287849290777194271570382418556200354971259660937261878030546062566332238363229212158491602464076001765017016406323663825341514212879503701865027271278312431947736917618673881598883565190309898824948406562218351155770579655895641462176248111707661887523329126748742896856768437582025494979058999139578031886287324638680077070336442717467097267191935088741714383734701596620962285005886416205336428703135663643922514356169501259345322079891481665620437755393217927754879294908313567663837637188794292529297398978460922660650315869175940349575006097278547510727818136035256954258565933294113780070104401427765449897456068262363751643226055464939317027011051412192773144443258242899180864866115081016532826126391104614358651183054747802449913036977905997779010468420314521828842808319693262128986301147203552260654312479215617523543049345163118889564453303493565742692626530467939342185897191228526168588714910582588359830560686162292632221852913360520634563859471092611477856212533567136475324246083619313489758288348670136055755857154539626277470689840435853238575669692016674899034560662290435807078198689314408745913506087948969293654755214122336928604491403744989141835832754855700904823490582301643943638815416612024625661690951525804211392838482476784153945485288943796357824097222183104806572098400300486773718538632688471007273696419180284106430994654185492248356579606284980608684131361488443919483890701564401942858976657525457406140713075075790606690079663187390467682570472441445813438459540866843850846506225721770205106133189952669048818991681190038142156785364212157451267100962810939025622115967125310253768789856599958412992574374222071834465130397531115504450813792211244475238782889597032139765785393680347307952691573080242857918605475279135080703544066921907348719486494975300047748935786856682934704388521596866343148822430819638308367267024956084546469027983059503984293437161672854155869688318842331716864634749585504801785503747609963312546044064228213983173623188347926718953711413399782746413349663742763121614150130364917694001426129952987499148885973223978806333050136900766596094362326131963582001754496294308139825521872535852313039282699074659495524936458776372033386357328197617624921122897940386436089958359842525355987482720837271341362692775842633748698533847558748294994747872765242546392786452481939833702222020069426870491668994399887256611877470364727279270496677816538564384388623116318994793736580932839725565271673655497627723870149403608788456910283143549652723820483345917300393945381035581872730251837132699213360818319938688648411688395576482978431920322074672160318041094375407596414114408154131900177791774872568194459171753273780833775750240386255262589863895831243720363032077038996649751487099722553688482247991487126083409027210246894629804920789559255938079041785934013545634028139099670978606534223121330740673167820643364694852438076230225383414765516627342360313339017598472072637480677801338261128012171340025754920247060593136526668592364492280614313149708952255303315760732343235840387368313419529205971714253787546673897091394262555780520459770780934037212702266874227466377189337856899634333427841834573880578258922936842701756112781868639248635759047140145365263472400733906045547174345470811971688862062317779158042701744837016782376483301816456118426006342490289412998980736413767168415204527838898824107286668817838761737837455445885518447455078550886918787458255148626972969201169669592677193852945610947189593028367992328160399260217064728979410008186211031957604749718302366071363037403139216068736762293748419088009219465900406874371725824283133767399701785340574914656077914165956952995486119082192443704035380970896737713871734001222443324486046786271749485753663263369159794143668370224664542099516443630512797500654509005549913768402240267493650086448000498569853873188796634031936828373291662772135479086228964269961528330185114924557779951297887610026494327601548554307819659753301280938776583331374346255245931791659073757138791974120235169265397126975339252145354479318397337733251611089911358484298341230525857119220662432640262257199439536153602258030994885111219984076441256542231026407687402879731073825402066023015676544931933794116854091422366418204018582916811425301216440628842001864894125613926078564329030212550411019703282414024611088134002655320407073499878756814233831966159906449944911987905243711578990523811082098082427591504024498764367994744596488295354469471093090044901023372152639852521763620694780557098149126690001137922076362765750178972595471831374443583466995021100045028853470011509031856958580368688927723245440654964603259624521735884528432579426636228633639224024421193079623353623138799904609340460133527281483499941570323421551120001982115822991097557914561284221257366657303664445371645540416990699250950820957922333731412036519887670098529394912298871279225217639636493834418845518470433585238199669984631837422480178037441817444467502790836767992314198776471616511367220163256256748077783903719703813781930997891358010023843505411093796395268625891480784967427636879910025301621055663346155254245862942573345253405888625928899010962396079610602310155834554033476792622625642376840683021686865956080917440221714399656721911346431958445767150747272844678281782846308957822312939254381160952815495316964546119084083965761219370533610279529591308973686371777945924695679686908061937967352371055951721844780386229773187452645738963868528213460068030898006147420117920245597877421120868695370020405842078738963307025499122609883780797478080003811161990158743178623814688043658835337334899772061349471997828227253573146175406624486052646788956984290285073805841200213639758280835125177354145153916715500201085935224357524176508861476433596506128399191348511096126538807395324594906891258850840640806841106691763739428575136499907322923143986180469132975637299397326445556065229368868246267623043084961395138247164972950798562646088413607086650037921916066144410071225389696140590459453540859324737111696070470386133272600132512756572750694184767998242535309139519148369078049445443085248387212608566866420364440087270436480030219937118291242462714448666142173677667771949492385661252134981457602761554006148208609669173219955343759021583929940645146476964140634916050002192608531177442511331742093083524153143615086713108242742688512803491885300741876425674174318695779693927908922504438815678392862511558490246748748305222419680432993431519630218807222130602857223007572115680683900274278842770336334333242340368376982762101722328784255053632658641578601088841788111834732522058116844813277156588169467348817506835628542385302398639502141368689718098360096883715491013630941781447133459218790685204985043327645994755596279877363107803870301550085203238416423104071141362520348768763681395659136497464278396114520131483727784544885767453678586476345926641283706242673618057729773649552165356858798720447149243312258037620967880476686876598542984467746306164901878538947372691799859667406261779595984881887621537656856236795553145894013946403057046743795459913858605739956123230838047456898018931352628864529228288699396538547148244781212922977561451830003584719774714765344673133662160435519007363668667099233931571939098904528911513008123494762543292287894415494569735887946947609863814117104893025783153836469272760602980408646350067622000777924723308672839809360665102471976147619040162363041287123963920991250971516188406272184665841878301620862783578690076249133366634225856967950278180776779391233515549794775309750996391394086975489350285718670082450564388839111183361455722753867190158444916577244643662026670869219276026188478304868569240071433182581896017952994703909625806937446091945014199472813502996664963380410246428628638055044773315522873271882938210159344341399170878059823238679216837603916048372444924478454814240240202774156224082958173558477826994815585690638249588231203914337204784561007164309728582215119125461048839130941919083378406653682347782966547576653512910060735681527242650039091358203627499629272553385961616705741760121683234859748784211234245344943478590231826151098100106289894954827498149218846116007871120688028280264891004799483575179194826025356648168161169165170996146458672451418041084936202756892686004061494242532287374872027153102066763853222671968590866003962802365455867591935738117830586045665579888771894525169828589455851363171654562915080716280089026872641988801393808684060655301095310415572598651538436673957049482773800599616059781393597140382620303661744437077338133907690962622348820817887241112565226006400168279876501634482567129256294300684886742447694889674698709475965799064719881822711628117204343283252308751304678409067551439153441748593070543650047015648673640202506325968218740988525542263580415505867986297310427963462808382716694974851345149974572453687428911911968632248916682908740433437024351813417281762592990203737784829658260127398666701590584332628081115734092477947813326159237771017354609276771941063513552066987227620443953007236797080775799661702460493411430304193606510493085645705871849172198251616559547380048602023951276872504755185708188854746657277150562731384347513882890813382192420619466734277039901380574274295268566709085197395786234365227532095153980243786530409632177680988790599698405056126316047950724707163586145221425896253011018067477618643752858812919602044242857258705763140507927462935936499850867226633435774417111089252662115834140131118064706523546918570010516628132204798490740671682883807216013659817024959679562819154894938880320789214138512404675330771076563760490964428399483143937124476854728656039583657969020967199321390922897813286327722970882815950382883314567462541516255528636786731417039896455288797133297231506909579740536927182241360038626050450619343200673558552247835200910216932794369471646614904492092212598513681888449505514305823852773667780920343805929347271398538401289043611855457145321572470847545527948842946326491189379299704104181369409001871365633166163228389374448703604964134983835715547752269668425042469304459114159702862985905548432043402645816431785250251489529474859347481845140183598506885485841360207723861889197321081838478856607833985076547732658665982993052841584980386126078326043122192500200494527269631922263028631587179598693124388681931178266353030425890026135522240120394158592830735045352170260391410857932733974146294835353286157572641687020147705416945538814499214966167231632758128351847345525327258107080304615425067239725564366192871624750812837517799249403011990513538791898560688138533157791933218869215815689406932129932813178127948750379920167030447818659384418612856470401945291154133826575770144898465011663704380858556064916131750670327573301381536084493016519645234647653992256563879869774511349788254163845235270066357707579876637549489296215661295142984746615446127383967955284295912275091474332676496821548241064731715544203869163088623435538613451650429379617031632522842310043749047593035338941606411159855768824056930216119214452050103675187805537697115090800855140008192207612681446043518744481245840022570864688122697805718105414173296505758175169639440630991097970372910672100690802023499187011649198990305288220615047720813302767426093007467802073905435381903893302225846977134002764268525304610550961040634179585037535252731320466922544000489454437642664010106557962528824529957749734277924147049289911648897169267394031590532164096439287052659458762984962909115456333166526772360005572183311461038864879111046476344653466929321962394362949453404804537032049861830213543187967652113390841969751918709290435138288107590173148948476488829591264403003466248978491399897855444480754964799852679361333559580855786418831619587993018666863635876732940432315906018751780292127573623181206320958043542939728284344454677632627834031868526459529240583712705899873396289249081818738864133295865325863906532909958409103590190223553065667461288281950908752412119904935286270779691835639639233413676089533916536116722366998483457980937258911241072470274056528759471620383516457759536360094734280708901582633250394444929596724294541434727103297474672158628926199021688811929583625848755293446030121723361005836116771862615565317194231122724265940381999161409361354083388885975087812993485234366765304759747898421145126133578819059226253758287320592374426647237158342541315631890288327466475571903982414035660035970983517243879312597857482286861600076892768521952257103261057377982950261325038244243561600245535089756110873290028952436984438520354475600619521370891233111470542331771661070127582256985514425943265594520367228797414814262018581717085370495307276453342004459019576303696270207089941764625819844698968289915086438068804671608446598569192809206614218777236597163270935439499510745341357812603656429815325412332255964435255055332680325911837940538799556666346987024665379120457546494552580144361527962108396990685625191431294848442695881354649445405428045742385185241253721354106996847546022572172972729318390560933472786343332118874580760958571358973360358793476654396496047661298463987717097222644890519215251517472145939604065175437227013257953798852852142328733909855052839589655279247765891279635939165531985409748109347106707325031592318779636807514130754873127279495539556805895430847296400864276366821836139888453647464518347388752677888883487738257417307174820743790734304603334563903288300862140754915658169707771092745981455677628315739974699309888535569536352119677136468812054890366509486155805398320137402930297895432319428387934051943436442768368841072261060973314155846241476836860929384439340841702080509195227399648204933189189754905977811560293886101043297579334296461938463526669670541611330600272323356894917524111269766024655596215808668465746248370263040054348641105733966603779961343639375781340128729367523960015783580343416937331981117373440294012226917193187271567378299292947287880102504854698830116502516341891310079392107386861347073489138899331508971122380610880122821687274095083272092495011785265905638162345662685792460182086423402445928849748910848525710147999196879822463068329362946996855487689090334640620144287294479258454261766795695818527984089443579679280024734113470810483934245237056956530314324692659557074200166802272120135754712835211971008312735973262632718587236656746643815770255227014311854465243935564909494354483207412666447447129653886514856810941037565771321579213805958539971785102648901120886369556213568126687672776615701634494349339238944610756333710291361471712873763891547933825171812018887127275912623669406657160088413142714141279542017162012077005678330213589520883866561154697514289932985547442019581297753830157501877497065156246440828649646422626886048493959522058058060069949727999062073019978010026088531102692668738528359937115298083343837899611048291499046399763273316760026286945670674412903717897477603294699569522301488025669973646179487927760302023058271720475174449232243277790358558876731923474198772021945145860790671892875151260778504159118074414080337531569203284681465455865539112261026028555496915838775585982796282953528202875915224148785205104657978057295745776258102016752180837706945878169183110052633810414088635373812079961356401818456909628143801332203349383714448820693223142841215745377974491730975985844700303792427738919184346526701713857049623323144415903097824553145172585743859726690571022841805886445951367504639915748021798198469262688470989894031113573506055111696943040806258459191794081064693510512120770684449520821544450583478549598063557501632098334845987579503762776200308993640012626128759898505960201788364878292261101011794448405911064501126729929862976917193886968028461915353857515058922672905232237695952916099920307826275038329940588343762389788955495903492632590475620590912846345620096299251886204336558069744425308253798337988885012552462705415349903135327774732879870754610004475395391301712605131838504939320329425670332436665552086307305412021638763886750151476849295493277162018987420360028093175635520253082139517978931865505242270173028412676189825943487103042838123677342918522843922242589691765117124143200048549124762355300652211407604857068245911061980791861123483259228350693281235843804364532555989038197599178765456819344809810731442558812846855502523518777302718484052394758667948142458641390456256337255880671689948186272034261172029317599604732570473186295116625979184847974042722191013013697363047978335343858876854274127452423004913489719839409854954079687904616542700473396055815894309401315832796012781162141166805735154124716025516708065789412813745719812344810736639381051947767984321768819638283910001980589756341165168399424716484167594564027535706364685217881407699587473651525985771017550256378678711423307131986567901046775013946518164042710400566232644635155976290214872101649274363524611548500320574888861824545526301410715714290267494419054747396792872870534753710847388889739523367000283415891660127298424299609420843198047173530411050314418457618140225544589006670705971847411658204893970860978692326988762252895235009688935229035199695423027392599665475877666493537233392085310469781949325890012133235701467691265888308098968268693587842486443471183775106669279180985956239737876039689871304107309364554345477889975864101623385196566558187577566862701494218490241493072578980697809220690413722754705477413133193067873598598375026296439598524441989775809635296000430376494168056646767272374508786758732698886601280684479377994364039743855157727344458285159208696381933109778473772961098091115638906219542345815235854162941549477352755826246429578327999235309498159455905948337085832645157002356669270031330933810183025662339875649651950288801307336955252279590260047280905900582534454989782005225933322546820629422085228805452834001911024806241173024721748235790284244459329298299012388357819140368544324818416843506148612734917549535414675859600647650970068862613570219959823098095166379936200387603807762977236851165406055107472132588394219204299888297936153298661322760986034199369847582010040769275575746005917127005369849908372612679209939079944646703795958351734117279652284506516000688430058360515879416833126076316855297814071618166408750031136976989712151592902108904265207000587202928694741341771202002037623851453120225584268593013601869246061482613803288294726156675658650096309468817018646039696011313276526530690025418818543093514587308908319400751668469659124136736611736358036814077752206413922677890737500221108337093394772371729747914232902932470496757918735410153917146474851034389674314038620654837225699738248842206555373226334226099790400346893912713816536986047835722248118372981209895905564802840865874424137717970856453700301641098419157424175485229976015750263443146860564011295820495327350820023558561124880782944110928395026890445771626882807308695881966402336219340191032329103255629672641682419611128958904093570381892148812901375742671609826264406350349283595481532223035689577477909935825316109207749715103762680742860031224812037333322074409424308845271283855026334509065019314615744573684524343981392339394636853825225018868555249872485477047256107749559986461487559949185313812424806316558311162483466813598810696477498268906759398279959804174425147517716700512598460494442479816830901077295296100335588829677686689041559606389213532624712969786351939034059906065975874644628103424992263256522327367954331386497485670663532192819422320539608373073928321529367073673111240146288632041852978005812431143675090314449543645770144776052713841711222821244032755921046833270420002783831908512473600678990316558755458382590922389697623364697266339230745008507097135805771739441427398998629732430059624216432428479348448751548939275329931591757367212973129160003628594650140933090732758901925421179334899948185037621470254586065608893754637881426971869164118153873528213939274797580863377568534937563323311363599976625804443352548344275374334366862501568432347440005176182108616404838936402078535450792810692355211721901393891510299829591961842118285380480773919118683672923298582163067129840102028960680022261869784092293219834277503915000903547978868618211963668091196997009142214522273753107697715384158781097167444709123651015240202793706889284305934041260861349515929239151161789850253126314896589453182551569458642385695479171169398883903074854534878998324079308217006313028223085059321005688657846575551952601051025344327919402811545531335569217863830563104933218302582089315762135865670326217638056210487017510806151429576158458224444729539115771730561611821517107250558578711500248723552469682060202771045021730274885208914037728915167810143791230383488498783519996336737742856981927578503577222988447581061887982016715317931396453229952898407243705067963117785002919642477452845260880079961737385891730003050051714873932053981686675754268217564436438244724431562812877640901849037073450207508400579147558927861189808763889599161681591006004861434095218029506367490468742460914820556360976745787036243769169473516741489058352088625491531901719256592184639315284770559927838442645144337585234925029296178384210406584447096779331714634006262853847025735249108094830353317112230178243839184357619595225206218947213082342993036339737061251059294646450517443301307417192351344393150043093815880342498477166421854098908105682432464061066685779483938570921634236757246814787361890344692451207995216122154691613911858492328276168614397428834249600345447837318209453996730579165719585060315520599059890127793410716725661470835688840289537933462618584811056376762912563863402089881784735699690218261429323094666437087355595402641653611968097295466652958016505164748049071533762953726455920478079706054847111950598362219499589079032353913713454931769714179928662725180911086541010716006810722893339683836503824741950037972791592351252237833927190370986382198631808116393934889458891630823020995363329553629762343115997510560447457734148000738662080208447159839064323906165907816890658665755627981018631722526756023702479032074115147650543254550179164109062587697637251690590982657748979486027581106919647933588502997647432067191290921120688784586261110168560518832344646003925317219058747766560063210082366853512910050255994951152168913680135086575755737589374166305044618372890814986393591519913790371186933822741921810086987612816656030042643714775695424333964386036820428552340383566791342699318887811544221835590881632039044713494735928541653322823872729971899040605051818555585761781022170054988531402261677019134911569508236468175843795299584932236765120929687795660488995604863617146732561634324819173992807389884019419064005043504819799865626179234895642439993337214918045567784529429182252359287586274378271735543090329990696692238345720732239595847583797679911562610641233853073532074742117540263906193004625135559027396235672758207716778806263748805484724750830657510549155108619692729438697019228683172341044188198881127080469695630265101014483338773928904830156730194027060940588671054055649711789756498000712500191665242072153677716640163195089330875117989103630833127494243956351308999259905953690353400766474361371811720224270918364281884325592718227963097395071725848478529287406224074834225302700547922186118061681477398485667997778358738102689500601207415820539364968165529196573113791205627697726024546794024428946729196301361164438014298448905521782287563842260392992383635563297800148769440393563618619029041042928183591110758636999528353735410172117942689950190577928257514782280943144047349269459478203214856304717435976858235288691793039198777417609144923463069432101018871786567235976118527846563381650563656928373446008126577940507505665583717200120150088231375025201368396617239309044715346219285049496996797243208978018219148808855357968380746875849828080734509505430302769997844622057411392634844159257964273757132576343989287541337252672516069451160245300567263680721910090763563851538536796264407823088194611081753621265548323401597110663744710851740663757260514363766924599993507745242349505690200888556780784834836215754076785863050452599902932793145831596671070866059839934710905964911092728167788194492838668989447245794688410223349292632556272159805311338768976448890476750536532979284382486423141604165086048434467319720632042555268306955724081336976366325742602737886248333884901878968772744939534622611608517262672851029124586564968614260444503763661875646484722895296798491571804578393145389689920227572811837411102939394779436561513681589833219990006118281733141915731051086638523651548378434914783597728350434249445687587943573277385213513638892665681741176585953447653393103099468525776771361420142298606801515874440033023248796169381910020455050776737819360052150631580935476066317587952122344991783011820198590875957937562181360980598873464814273509385113858315588579953901246665574826190656913150357869171698843083064752975256078113138771492135899414497820097145876603051989790107260131654982414219957735065997397894181660676142282809993935953917067115615280824385225766948412911641545588310826941347377662995631759206090026445161720802756213400387451555587824481245822145576765669912090441253976957156378419256036020294327434646705396506568829554806235818214582421418520153347622903276330361646393632403424745968097308212629660209420374659624299320193648604589484574996012714017067817112334736417167500193559280614595767998719693984211634292744929812145876069976383645078285536896736282291448317707027897628087318574910697541509790161931833955701790892558832528962671213891436250637475263309814332074526507713069391600034785036125670520771702033189546526304780253850226223785448775128951131327499359306201538563317440792473526740419350936421025313387191156803193003005867293200154347566451623693027415160324287381941463210960046059020303331641563079055384703478173814935523238505515513851846335444189723798885533679956670872714577440107860412909169966219985454824825404459616941079342481145529204071145372649226572358058630569641068574793220345009893763403223820624019963417591305431968559338298465756236933495863470110224821062452696923894722894097099630680458754150263326225852895677577329005164465386645020513613675488387409246479737848610103169256748378342060605870614334910542846854426365115395009117280933746370321923305886614398290343035829940454041843485475855355824713222556930916083971847943951258884173764939622982112612974252110252178567710463903866696107375153905363507012678230385122189311337567574449033475382075646555696330253554784200332470501557801993365494527257638952328010209300849909206306269690458654407067730636359565753179703644843013121327520363816536556186643559719178531213053116861004354644021799882936575453694488730739907469328048306220530162387819909733377158214070488751947827224122380468893652201591832560712230586683467829328796567531455383637480541002707564997530378885807356322735722401440710848327536903443496922577238874021946846476082369149233479426554218607244297235740736857472482830223125338986954127189605236237820804280592274252416786844999945777200168801227509134808659245150576056723206468837960188799701742714623967035873068893069116365281917136178783665097498192265623737072268771094123775388999925814823672055219939745719202205239085268422670304397358987680361835645155646710041704544554485077726623165860697111653644181398818899421505078363852907672950178493359992622210915708508337488351904341087378455688192184008154069910262995910703810684727658164798360259347606343290221242405916658650989164504850727395891415112316778718252611529836795942147707468926455894764453014605756962137044958243344874246388078292659644349084624732055706379243157208942887636086387361710456704552152324515542608811192180841858845703657344722319604590315309333011449179291932988710848807984468749824106145054873448773664079144624260092508327804991232889602054493310998455699481207415358248175326139891419464235527537655613445427765944237371989477151732281365292918302609266769139800956080422206070237298276807169432330381249208919245701233963733749046312029120125316485356569354519389169040507659496143295834060224063358549509006563987856234315891181165035726911171003514919207089009650461806625846265588761113886159242612541192580768685941143012231177976627787900443965309799407545193491316931810059153767442032342338537505816488016122753909570770486998139170125091159975039479655498592712202745250294373144968893640490049633390150753688799950197467603881640346266440969620733299327169431759322591053414398657931814077011459249361726829471831649693555709256258940388060193065363188706401394006478097909733010086582455320189680950104728639014629818938091082404433501438624247228710197223998526096480094851202614567403071448217812496552676240849169968216460827100113777194185098947700836129046284693500684919735315754304610536065456923284895596202156415909151374749746805473282433023950454798288289089301937302625052632346669756491360095643145574773541978206669014586174586837330446144530741017490873497395180469794933906979546760634742777743458095830484719486857331560634400035419667201378785769801566156793564530082443646144576315654138441441948024165455159669700740164244262720240581376562158596759208960909453040905918386079208158568575041493104953006753033786969630626153168729977247018774148751304592149706573351455098845075006645709184611577111390751211505201908318434549790607707331218580736814653375991479568243116490299964985307988219398838682079928962724090741998209496717868618123317444264960841391720733215804961319183234172373250145746003849999527409116736566228497660541436573126298855624351187407397567344638510388955006981842441586986193876709148542041826353389903274350318015364815574600381723068561101533144871432265282762324159703683854650503658142903167564850050198193287365669261033872165458668299277313315930363029775348944646702972127789678966264036650396859469391799249944917411217922475788939940211523592240836780010987025217834041287156728346770256531041955055611728903988862254250110920586555912618461396410901494761264752317695594658809168238188998111564602244348561040251068930597985200583703561265418363616769509733498585828971960870885611253700034582462186265401636400669183739122014403295268499972000077684952655932076339038004229265056278922681085952272703710083285619247420889712675397740567303909370077071795448816154853704969718938243112031326532991038830987851755382293648090490646125621032191739123664322044769295728494222759367132139463804833641379417060444847161427132704401093789462756536405327819617324990851561991205916592730743224024147928185753687435625739049075686260371151421778938442917045925866058967353497123116476810069809886338762266942046574467505771262200929560420425823880686942299379753149174959589009046838955541295212460790070713646659142572298297772651483930346014474045125419684567246766337004429625141867699547082238164873565575660667837048988109347296072707333587933037824434585916536264536677079776769481175865648084725324406028437752257718682391760211319007892356436871892154838861124729851164528398409049452535467113252759103125290247574514154612442595070725138698007813833968774370081838659517795253217344536112016460369101778591711795262312454191677893460883822175382537867275343919648310550031317991913949865619835547179916473943733493197107175157232455370468914511297878574228591166574615539127075622789737882552844822893461834855057844306548290057252773376875947315205242035277991016592987263612785328822970460415143071861126028728305994857801992638208785835419155647011995653370783057253882669457812692089626478612402063192075310983863448135574025654967774107144324167960506365343790140289908637728622654313263810794944226739299647643647986797423499803480751091252162007977819547007498142406817667094884148733450268265779198239883929850669084879258023483526279351047992087919450977440984594235202402995320030496223669750331087627272165271568673007706840878961383099354151517428804723660932466743037238451438635881203113392398285269741999388614373727430116258340580006154952825576162158673706832559810264947701822274082817045098515699110542320608340795987471723613684492538386232963626649659141493109304379430192322937161106853918831410516265377120202871488000702475823730512741581234978429387194259361263673120579242355306845346971660899392858781220815298365847084123913950951193803015768395838269897463330559864993138098119438220647122059350441270777000898974090393180567944681262980975589494109601424775801238433635984751192067124674910936480165775357320038786388500948343623067250816264196746461489583227397064929582679526230851176013870422186197997883171972064645660053133341722182115392799320832638815677733902579101609882811732957884301830880809138431202384723987713683352875908500201307135373560617186716528042767794097516792165142342043981148874392339005433147559924212321546155288045711198434198060067648733684261370290729936056456273539727162164142633673924737574615625754622354053471315030301826580269424010043156144087281843157581128958530645996677447620257923536191453730186275468783073458215725102220147698435880341267223497257335720123087347979002552716307577377256351624437546905490804060452338451765228471227689034996902422220137722086250246740882199887600356776838849824455662174726792209914884634311636584585509559989816241734135027518096902564271615149539753702162671281133032812632263524469682143895621967386360359069918258624789683382158209830386397205139101565861449077663323912954995435089723631157122422609627776333216281768545456254832519924621844542208731932099914484575475226237088431613210785187612778666130522002436592305769215128899330865680975004751565094824098393008742878044321527995912152837099755298329685886750586270366229307800973425950450727004595776026971790754979755973516591118113272610150263709943786502601420983747160698159086241718886176925866825110711507116896481830920369415231154509530513700196591115949044501172291657346311660921985982230716837607451117269680612080184917699223683372092198192856377150235826026930480455093427266904975037255013773340773030082023578686354119631440873770446761757586132318022798692908034658546858579203136442149744746769880292092575768051364151927395555601048704352545396670661971933312322632888855221672561676350959520906375312070645672947698321196006168118776104533913841641531284294814083166433820886448210204788343615752967017140624495872184319885918054846628284517375128761470105157408642084825145008055095242084876598344767267573461589353886038868893048294898031977651018857124359633022879919019353930910861830315250571031999175204493668335418189676512364171235465352710706912252070624233127374894888184274877716415319677055146350797897562233119861757265556587445081684959000682865128557847259908323962322729773020257457007849949611371644344868612945370803386834679659153682247417428684323219455582521116062567511330464114643209632096720995086264740086836785111196125140358499044114114895988489555619875955908648070136803679614847561107601570370429110271999348165702042851398558601308566917186525295231374916695118610570008799364548147457067682692338899516169726402676540028993610153711133705123238783347139503528254943392487695534548963182956287897985594883853873392441303430918948345569669683422993716729710973860791241063258050504258523689786867081162648861228730103514433152833925142018210371639324223243807872874434254897402105970662118042843528816690771805727073289273653334848029800178335877264999922331601108773040639255056434929248081458461568135091218167163704828051485829703010411942691609880251756744249672167416520285230705140207460351695650810269515558883904208011144002942440413190430240417932491526389890392014254025452310979982958907008988515439645800764440701382236833812734298348899564851148267512180651110666965851859403034335532005851135949608956172743020550662777880999753731007784059969834742139728935802303922361855223105181263084564746320899843855436394471224567758984551141830283445840555460862989391600130113657292268443514847679721093494022694526927698408140437505800287974374707508642611820224149125586376841587262504726658159155046194514890499275190465090297196778026558134638528353954464274810805693450617442440173888853146501185592599356565232766236642626834811906525306432201429852432110805704645872681105936421924568492907332813673728810765831449361355853878244745887447489382074287854762818707201377672130206266199701891455844210824457813899639798362706734477260992380831773544030607889594426586203473724391135700104084747647711696819453700419173215410383184635597544904393985682275746044097696515101834788997474164923385879589838624850405788260647606221215443724546844284911048283085542238943071426206345750342951259606536551351205859108831962915264074820966673582387478105931075846198914306926108857399758487531328687103214482442696246829394798432994131258553160558955948962389969761001291792297127755523143817291797161033356283476924276099331344356971995133661611244064562830046337561115803176415741867758200194956634025967009164933914150790583390148032499184844642970034482261125057951300616292329323837878264327440985839947841479265984064837368284541422398542596600437555532689155872185214642641799626599008535445451093963390043225129656235710898758170499214841775999025736882901142212639792497647677842231597807282963419150392127153675655541207176878554167236469003604014154311681741627834435669317937231822547881890102342376942068939404057195306268755579559415309125281545554572292299140864729756397434357497866220141656661151877924477789050881382214231243453402349045921246944254819099588737456583140869851829705457798143852218692100280747166154962844529229102953437250902625880608547265362941958194938077967580749342595187685293189997930018887760093749543817659273400155959193329109558967306166060219937014837166674267447410400650752777759119175588495405475540732623259948761963846495814680687385811215038812677021573529507905242909403850324883784341805498624465183682719171023628916493398135709063234654492519749983933263241643131365068897653202651958790772270761178067400006564135666997995213201767631283999965272347946045505940020464208833957692132027388463636160174731713959878923290987380952570044278909888612405487866100653087913797340654839119180334326507029835351263468747700207417187823616786877057540546326383583277782018657959934426058446024224681419776123540106106730367451939314230193251491824613371487622251162319165122717377047413130907015667819686617375556625093766923319784897562053014475241674157376738953769352795762912535112193855524787363349712087649396575121346895384099356330609416792505870628286317627249797928675844784607521050899591083734074335623267826778697141849560151332191164041649619324067751335270067836873396184933109052233188952931691251447769051567043784148035601926879220861335906358512684302679070357535992431775037171823878813557847469120673148177883626972024786363384551477439325968406034808357695190514485476335448973193464764038264846290395515216443762412762754635537831942922562122941324858710597562703015457954014200164562228342569891167893781213885313371070440883390610831709129817589164282792031388891439922729401501586706921242741626086416061574363952066790629619994523470029078582678556250379160344240094929887261868059579403329855691331038222557422787229497147304416795714495468303462381030638455278171754250098108947329589537630055106882750801182384120306828160362611140201447890171397181665798918141322022523331806133577627580449724001055677141968704203466941789414394462465495158260332022467404322013525405041154475565566528583557803569564575105644583930284915567682371243279960906994565550589935210224617715677870783652136681497872710845886670951952379296337107436795670601037973274946302964880752305235367883674762482784647317681279027579571347431782210231148595374222714021858642536109404080884869741069513363644412701415292814003199385211990108208358179195221726945855319861999638379900483120298595180980249903621424437742373613400862524659008205614035399425356806201159720085618063343728310505917985721446865123469564513894811057379832676950181967336593349849428983533396226799834524584118587734160439876148516331087415997261242370546824519552699817510277138553918320956149203891685621995551620873247213746342649215670020021831679150944663795237931860453342309714103502932563468143151450451770694630949429178703844786621613392881464871812700643295788695900398519025900635599650567651419960889651247559826152121444789120041534155510511690248888710391410234039245476555149647701954084288034051176388876214552884927410281434752470665930173735501898514650072348768813531951019356107168036596257772609487137622726455485571166372641291536274834988127762602860452734975327225036867345218679436932059432561118481090293066258639945912680750212808517964002820306584254319039960589725787300581385505065326832208765411339050478546553084016889675841992490048198936108745833099285487565764768654488300950523081101065446346247375392910311175122360658428378990029223526095510954714411936714932426497921007404185770576773175181237987650059393638239829646182887994555852908802675411063734400020024182028976106512883955216119806725457020821263781160231391977931377313093001737530827160510016167346124106247894102933420138300128255826150161949618146876675306303862765821609513691372566559115985038737999117725955337640366532412740364346774260319452300001822247646254399649089115312255520910479303880557851275131251939809308724541633070161251270519200072540908563198649120582900292374301973119194309453791658288800912184662220998069801207259663585224858986121305388843096571642922309289916091678377343784902075251078872095738629814578349732319126160198628180766870300706723635557050619507257322857373835736916353496058495276247793064025561336077872550054449277516688383563585282377885768976515540282174503579045962296785929264675435957704234768497064336020382006324658983127230375172820110510341849417585625977174514127556114662200739971607378601877971608231740685976001881989510433985147434077887991100513467765068652169331199384480733386600286333194160417123294101995184178005601022925285410563923587617729483765801748894516758486107927828091028080282765754015309951848045333917202169473161153016350213847229352279242941315621289583668558898316445686569423031418670591629041571029965999725695605851775165460093168945720016276497823312106878958709869381753437570680181255861767388033071467447534233615503632190071923321788640035460396938959420660141196204867409195079275119617185715562174896361268902009313454278555470175519853041745527257341082338540447652723503706397398870981308080078910280252596441089480390359590091221133215254304756257699243363512337704031155529915781413265517315152806245151032260908574310605892176736827323667057946698653574152219502724855615748483303335216401982729391917293863723843031890689828217596894729716593309167626664569307182344146122222644795458753813509561506602987706495427843055254822478646552025422446743999734556939653539669020354807078242520024680359542399537646375204433285894255977186842083058992355950389524397263872484285530803672501429685025111069727488860675701433748628725423510404538152478506911059636975976649515977803523278209454622354909320144793039963504087820873353510048748466011098790146447121701145178811146104498906845021147299908339988108985153446429613847591728161359014920084747817284953148582473247066971374950454406656023884311776432147209318179506249548909063987422390809916172644041962695044939417194368018775722153054355300607529967017091714043660993352514867501394112643519607101313000918830413588946970821583212955969767941204366392591672313851825730008331715759285327423108011662605139100576428731381647367273550630151111659912197027394116047137998383010091883113491853250876177005009707138347746399844137025224823364301719722541710740740511289754472563848586848210991627864143795141624918217359236552653906005503903988987283623686156151409710016754106649842401204849453793085104825553862358507398261815893136509576394602494221513838188368130979400864977831001807552186613564515408097146375174247987945106661437006319896529380019146062888399445686286087908733663820641887898432625544419068288898052667069914391193905681851712357457284781600078226974214451700213654559958525990481820373505953886595270354197581679698703992565907996809178966162172626274422401683889686907660330399045840990258998929901217574983906007880504779513104348880515821698819269649812713554774225550692195509187700779041463789090685627297431537862980644268942280644305572704573214773686375302411610772134550356340234038005420870158964720472854839344784129417473443591481848669105284857018705118497929497734819783063448763158989388277420134764750312028843772108641302234563383741250834083623478628260164183501889463257598034338671459696532305965096199517756317779600152744438915768453643366471370700284244935887426698436406286704076331563889264217068204090414729443883662511175435270984129394344574614852047392317362211917976496565254874613679533659002428602510252660694652198829730250166703467953016037546285700163248599808592948978233086409451334580228528112644157883151078835145514658829111538768789410074720562057391114130464022631064014020889611300574324959067308264881934674445080690065475465187779409715755075779204130474516734562858416706235737731423571109850568080919517044376743605980846632322995372369714640473009278231966131071507301442489877337916171785745079641278336070908190407698376157935054003489046301882613625345550533479796719595849843310992435409665907660203915978928100891456614798875784967750159336642700114535431159082358354914458308005453373872867287158781663569898349657718317021260180887800763556983979818997465807519306491961488553818974785252176727992666929649236664194980640079524092285325214148661938176758676632768401748485882174676964415294722481019535671432328997506811977612057115720387695425854717260036468378667019157869659545193725921344940364747444990811254726532826634640242349202869727456729361012390695580171156569466932794290027281626406428907725502914900717687640158217472590396482969959203386353146902051984582505409671725165701000929032536992471968120376948329792921511651677703903173902598449695925696249893251944998630561510425942678985702709794649238999280819841060168769330905807628138341926562693793653072013870165398343779677389709720025261868246693571078982911405817570715643709483228177662857658954364908798840437772650913572972537566642552819390137779065530293004738659297187182818938039553762353500683437734607974638283247376355083533071192365636526532234557774158977823487565164222167416874717873175910165066458439871835265089353827537947299271736533361443432153055456772003621139778436777178233057438816968532331835428065740065980150011584175981650824059825361217756128438604282709773555797610591985305795890352502948307610701323105832075861950783086156461291797267759637517223375728980769746603893560647132012320272868228592675534477306735765559817991361810661069746993299166561246232859375762369494084636376458343668862326433220416052695321725336937404401032488513860512086927551623657371181365113143901275871663991917472581593883141457303696047476896362207122215412629711573777468803967324776874877162569606215539267178466058395401639680432864577994779001107993588057137668631745671560715455722862124595693405735355184563616686957592262098281557983006114033883788592450325515419736831513254920262811173755088790274172173623146006668198786848320050878907546089407645348034347080514975787972188332109980147675959358498301680660215079332481431405811777495916352666899622201686598808503645408556649419802135037758460745302231037794710024664141351614288669146322659700018501794246084902211652273222651886339276205342800731899271787241421977247883737822680158687733848280495473684661232913156286611370502876121951506962337840457822280992721389522381980296767456492443805277645574856348440637690285320392825234644599183078589430753540989223569880940657390305420015086256379489903024323560525476888616998738907961332328550324284521875448962872914895351487768943508767848754832726381827266324300604868233056770175381670967727006334870986744562628088748951549025425076447892602977384192509545161901265493929243572997576531738958606100982709147033101186298332644647096136523383243810861435976036736143636496589514238926399094291264593916890546936211865008892755207070371985253203063107593656598094030707973822587478011870923378998899819680010810425497837170818651892910711616962086960598860956340496992086485315459582947818891629656314379811484224845256185905733857842965450995109305617811318806792714835336347713824785401720866879391915325655380490540466094772669555643020007470363711539031135585567971168286846011336507856728615756918740048553087709359000377931563356286824315729207874142634540357489443100620466529661664252011967636299339752807168194984289043465557658015001436594725061975501367058576187798712625206593991260933024282847290927408330155679305256551758563044948848795339749436093553760584173830500816395364779848607515032263537405962549427647296083185367848958430138592625432798339252394694417344132042501418332659509253254172866209605727863768955963501319844906240258661206061668036905018774910719641885990960372973287526674842055915042911242101939194386923865235133244294832030992429553340124312533507206687062840181563533671389539443274671318654932773804721576802391846702548380159250977923015082979165534588298331936926997700453035850876131178851591022469528781073425699721331472089202814896978210367140172369584972294273188735028325622096497648473419693078609534140597185440778539625027417413476655791815292797825975409982316546374555077196418956688961121293949149669621167358263559923089349301661622030263625986962975595884710282164518069730741158199620271028433320661210736051548127273708543030234288370304855383089110323671530357364760120834763817340504130337558025423419683495321313459548181800571529419476697623254058807863642423940194626877850718452215574653849023829758039689358607898845207027891413597190253772531046813417370803885167009680000376824968742817164916992819812667987068074718018842298142786713971004101919426839630980742934373589356176992058272223032947257304831301766364635533144483114593360954202984966284886053360164427472315964179678873498013464751822352395223493715485284130460264890828802434307956224942412489760948762787838884182329987412071824263659072550078401739455284587191481924331288286911496870329980957478367040064408366145153518325876444759945017865992880135034742930635933878422530453095136504639079169928393806080949525796824195655973346660144093038927814234038741707252502703234455940588385603800287724536828191673875114711889177711337663929613825631712548967267074062719316822926478836765782617529995638462927822765715916376615557726939080263211526585148963210399065399396822338113291737619160569347976499747241432346187512906623483665080227420513166522488773812581179343409116737057848781986469847076202601103248815202348888224870769920049707116659635033989726470444074267934532384375373275760428280047744141571903122007421807884384418713642915789510558012764223360954590722153971205762933994901790617354605855507535547980768330128905192800283496031661204754092190339035315012736961318977807195194915131230097737376446501706694025522892455781790049168622438828620039656763739988176144408533434483658404238828326474464334816747338802644582556792188423372139802987476621599160731981651586440102032732555535088513309461197823079099974733345507191260990893547527153601424315839447788528894873147179134621326689885535599941876138135254539222220901038133945705035800184763478657375644821514772941238042410577758057401683772339055969011473691967065671761796134315488545525147761596741746678132978823992725799435473871959181169208860677440203147697365460796984480621284076513612236011118901490389969582301208739322916494107996488764162724255894571595715466022666720315416535564653922930624781130394498705452673777914781539198279866654399009702203914169100232226231545754400216809753377844568415965186904697639418011520452530326403375321640739763606731474345182321200627033026077237813505065829380634927802503854952634900730935298086596215049292225052280549795064053164858978328706037201685908110945424150749439570075908295872707331373950058446621858520303641294289336177447012044951488060358328426852889060173037230779417394597233862475911878703376999091134740508607586644163162704798606708493148645244699888062027078947336167141214093934808761808427910787483120583947961458241378417532788882811688857234545300138918258274257083178385740957476762628446461170718477025354443050173518907464411065942428232840175951735249834870743312388513495526994914062849940522965082828734770467141845450661117224745330894298540068476658025461611508038013790896276301621401657956395357407936789299067620789938986986446113162285907862903345425225254503906891844986744193913013100863047375963796484485048971895092714995838150273568219452788489874179386911021818754632193885728695363872676138932214980311632759145313308113584720840510285892895843159466689164555999070131886872338369216384549664168746719118853615905257060034079585274045525973683753142763080822550572059118604367319552876457358505609106690357426977537008873245965857495832242767933844568496145484030074558688594976812661889730706562810495587703840435150191488533097936595187634552646572103314510251164886903170352744275392489746847160463497919079395807522973519121147663800497028802282956909723537645966726173996915279510133503755975216214525119010981420074686046841666560457538297581291467156824810948653299045639687034105191579732798176946681525573368401732346725521292844435965949582782677446531081488997840108929097259406052542780109902265630936754390624876533211554893866596238202834772984975557567744193257229147179918686390599377094207023060032419364595355544308236931520013312624132924373101723901098851133781765976672578876721320047469704880976661743591971027903441948776132546033300167578675921869463447582126359018111118020166593912303034501834335807463990456608639116532467631970473630903059843721095685389641316489383824714743211199775401941402701276633318105010691497574288249413376447519997651283553482364505127256945605589523812296107301854707457701782724989111327882038975096706024288626260038918448410967907089613475972083213881587616319909176674572068787760493035031381813194346183571628811609059559997107358198091896342124827978463321323538553411575809991250557762477656234538710421286947581869724096929088310772701334222921581620827276633390689171327576241166059195838373770307263683659093470663832431444746467169181215138033448312562312947184142916361180164442328634867820729671568534326322073314569404332367787063041023787546258429717840129303418057570869238987566011771857115715016576296418791369902165945264600593908989092238126029323887130176280391361921467123005796843368568388345042665043862167314417421681509225762001476886874021941409272050025622718035607768976880096047169076596731840085151761322543967900137848955488961510850331029219134843453830867066278618731057534456405832486868941094480381702631468661189122740641644654970942587463182705031617429399559727776989295175088895305525025834584091012089749787712028051006228705684704072235666014628895841866603918824740682117910263586793665518554717685350310870434375869821697484229595791095218699548045873526632231311809336494533091342604643661424010545665626153470286980440357990426099771809990810802567193216992684565194783079876165125553822212599893695138081788423114228631890713521049483357248185414990890884989260997723962622259218552828883380896134037919859119016746184990752519047303113183723376497257889478264121657891964875950355728600912162778196267007640526988250458494105917508682421579126964725176278059775898222535400164470782732253153033245733662095564016309488735007754899178001466085291243659603831123921425153935963923880538773549690779632925887341797572944859038531419874705898674211528755594241827676067692164223401220572854728169734130966298402946109424873196118739469655453684586530768875164901919950869415667577320385207143644947133411219889915269074582618992804518985028484837160416214317667485240593407574533005468435952355229257127424756987828628653777109902752013960284636143149278125368514047093479582010003496046835931864105962295598281274799660204704143651446719891244240993082782362245576754709429270297210026985006928873510848648512291419418286014874352146471293463974632470341881442201006349035148191635928831923120002474857652081016764396528651714473381259442554410276978884637802502345247746604170274109851562502343748196923599043120091992918297883662653290890302518793944992202693414447256549060380342725099054275168112495258486446552347379835143185146643204905666638254669715286134082482243433513639181817743467843336616836678459812173997371924271928881248573958612108820675472283652265519776057106026764185017535164849567383747238887381924017307578351723980421075998129548172335263863092778669896409821949487157466713818350619487711922163350658868855688460414285384419668409191155290459324186420589562525497601748742366971485895073331023926789675581281947177887545321675940147094156210865039653910158307286475106789668294045388793259438623736386190305560740487899374513221037333399561788761755279247292434608190939478036913147875828820068331533374169011460923059543159933761867692806088898766403088090041161276258450440196117154083147893988031244635432742751022348256137727876692790398523704684471652441399889116687828430016360891369222471786400857999540587575137648189773216362491597575547372283867209443547347096058664487467206001268186887079580442194608937363469027835061357951870895200952708515634282248624772934182930403345523578189365096166591059888161594190807759402086054137462057651397322017635586017278691630813867250215810017200422001251091507508828084878783602868568856631339972499319951464578887928615582384866191387235022246622226329958267688699444279125688256673479936013517546408551545183985876272258783496436343506687563606831115585632798057257210997563677048513861520866864615778805281484696701824535105133898633238930166531380088617947838154814620571425618211675450818152327913265711606117007355602872538509918056355273632270917341403276102460064231717840670107696018685348776759322263708938831943655638883330284636612306682572587725180309231370850716937006211022403525927817757930544071028244543030289752994230997984902070580891175541602060525848154895230069656290232023100237151586502228861506757627537308261607779803126668659057423204942678845452993034774997495926296924911007144753496077429541196491925840709163238335520691165081102643935697194396252091607141979224908125120115683066250822506871044766840475462663314762464220636453547378420436632858786577080661362415668612347667460079288562746818573245770997932893452323788543605128150935425861969496489009562853270983744813506414113198315023808287986114112554500649809944837552352359278483413614464416958209125558251483693327501857682668349637573473221913815672594655985540134963674157174124815651160167401434959614244001663462172294895233681905662116394963251350915397957875738608094533375933311816160478327637201033736915452824901050262803169765621366422557348875494364482925313899490829985035299038943103554911507945190569036189169490553077050424680708503901868986020555165716227810535321284707102744191671165866766427667762278205544311158632838488881745023820986257307534624797393342191679495595125966916252972582452936776526576515615572759342706479561675055896737165827786586920046006947112343286659578246306677711097325536166063562568643883054539975104370690988598256583126219860414974267040803363295050159216938989165406719865224636306711807022673590599047287689655847497869685925826501169016905928681659042755301008067724115818067154440958654719314859578888957065078494865154920584375446579211804269928514283655143135376381051747264407563149506414064505570784524412400491028880551499151780226894572241471379552170470355672221196449524491822008720236422580448347965088518105271060201602952640038518969693547538223681964642335634414773406503131325119388805628020587997331437483223215314322621087491926582288941945941381075126998771792415900875718327521759876544804861245208001146473841859143802962323191017279010315168927003059003096240737310888746616037326084415901833251327339154098578343084361605162163948752550446006665723140779831083966274255329480345375802890486429639827531215706486537647723068842754895460067791182486942605933114629926463089936248472212514726381293576671760651974179822923980349792679470824688304393442927603614111369531513636835344923759318410097885867548464005051667477275451332376296471936409381763623736029685560982818493834435394858014784365185750309849536808230429111179468013419047272080428418262575523374877217994966129763612254854403734421344804200276709071345498266793840785326397343031117674107617441715572129262059334228367888041459967529089118509614919994446227856097553575049744775062015966416440535457608564981439005444511635772898367837947106999037394416034051783188172503911669037252984000703311003656830952104472330622422403748258771738699199888685298823769100833248000451260611949571520845474904382081738994634761300869656992908418987780872883801641486308498933072001512826494781214039941563320428071399417776732425699799964770708906568347396664851922471344540011627623075843614949491103671510164070345357417933718001911565658435279831199626307191078475035780453525424662360780712554177351468401352127374459217730120610239196365892304537355538611320524283701923948099003332861768812816331350948498192712650413983070292529267564139213825295931369822668905583736539787683898162918573818048455643097011165964528478411670055213531416369078323760339894037269568253547578588832057601963917258502277384463416022967159968777605881102881493970609317345246855777743821667211548638514399142176049001344848084413163899248504943965021045324857638661125871325989662636223739954207340517759111771774329016710156050103202291409205294466812622860242381494775316900993259079515626982113921036964560076367172949445568524294619693013742036896174391479015244853702322550665440885159309747052061215392156490577998864237950824549207231444931412500256576772804472887417068105145005828916876208012943625561808831972523322214679636747492256506315318519294487163767243557016147936287178620495447430509986642792340626710961777812039637005849851473470981595261768756352428327160804937524420388761594370330629669939514445723395191516929349462705653263285659897314190504043371574218706436038891400002608061697843154838268178108364236520731400959657962793506459243567613410338279830015428472301594345800296480895799925500950868804170255798497367375444704776151996637767369727737458560290027618619795846670583246690779938866016044847970403387054206565795233489246516531989347013007983811922380693586328183682893534517281031067169510953608334162079818222684060097871944696517323817642985210123190533351895545209496771568493602890344888630908607234575398502473345402100515111944919070839219267437270981423609539870817628023343345827663014131477115773437486072396399513166100267039758825202145042016834734606670048306719509082177807796328946148187144592395478040554560181706181408401880921481856577108130397837345739015152187572900472120825910472611403935731490862050652393137608634358488149903904316038317031517939299295056439959582957861106961241374414236086444047984727847635407105486914671485800566655453020059307137652759386096790976998070453302368415111012648290425082043014202200803779787080369091280286085730161173640361380006210490399564047176794407705130339164635162590698438830600510096820149578073824281349143250596060328603889560176317051630242279098533299727587118980416521851991410244786376684521275341497482446340929449342629061028714895905083158788867961495535662461693322685201600407639799676201122025901511535918977611907508777649259872361649223019546406974581239927217564069494652037720997532035007106429605847101207343117533233299378882969563627461713736639941537922989027709337216146288256458650309675376143773563835435641339198865096685421672832445797125649656047485670840611561814196911105805448545280089307455832238787923097599641394556155317812026740259147328879009241967393218228148559043615511045189131721754151922038230263167377543456942008446471979425109584978612163086612634316952098853862886302590785378127833561815403785436668460408045082787133243938498897394653533313308900427750270442134354916737996524693748512743252138039190495914944653527831941639362747324182040007791525147628915049951799293285894257790253208351641925529396236626268486696349091954982964050936661413529429814338030426655516584327455378532028841350629332028507118842789220780612762679292593920204629678366405253759869453186053364440111600138720391354885840648707125553430218663965932012092214566126925469977026986258219761714032119289575863727975332171068119085991552173810435057125295557663257981042441279045562166514133418924347382822079035134564878672455359243798824696304789804578112024322004989149340565996146714250152648853524563679661165796221075155123780400575505431077566241119335133065647911185779469663228650911442906601631805723093970528652660180829783440280981312442721651867615396281964850916169301663088715125187398781586813025494616038314971986294648992517843141569170003864095181712642937781868138303748461311914143581695579656950541565072624252083089651615438348331560370497208935943013475254748102458551325462086010297809937968522928525423140147411849147144984341150778130695830466730179279852258337411658281875789400241083766924200844441659437844914546441322233966202110463701694276057228942761515033929516508327139682798710897588281431240407584542853699672694576283525053862511938591472998775018263446939800972381216919840080317296710076020977284615615661256072030895925743951784266159302583097657961080429262989258066976225617376453914360110040700985472661523844098458914832350428425364084314859885832707703777420035826668326603523653512837769832836612514861225168322490798005988275576615752483721838662942895630623886129832697480829346309864918759864213145315811717960507791546821189425129816767701829724586867819242063482812843292525806151500354482441182204418495794262395539703930378658725645713270503859362785892166159960503034310047527594915961954826867508555055366770461029590815996151739822968744185878396208216514188135119040954645736103898738790018523662224664901592958735338528462436782421971405095056378760139148195886777989707389017899914452238363857939885777251907891339916455419337454786452856168919006878323255982642906439155644969848933919712253466705743536662314627491798794601077456823261503920169817368881336648542890116594738429553341635526172755316268244223285987501345985391908670420999915536289811396376450004407857889630749489037779213309637093148488897275506983003401399397253672743824884892183725470655559916505727114535295678466923845878858149824145503338742346997598373680563491409107170414404316932408111854973143497671064764790163891014088639267843568417855435981635409049799653455172031093052693680605865013020238306482146644200239159900830544592113557466101111759805172051125318799215885231769150563241792985977513862186758375222044594367735428989292966732637928922908528168956734398075727266778589123701152623644885207062692084848133097127470061674302328355163441425683294023899810056515978041204819828070660413919840013760496759132026013497492736785563273148184071676429648002527905283186096508421779448177526317487944484558554476835828518803414652217997174044174498500844928005510430142046674367112493874827947607630094807739191032273988716227759119226328778351609799922619082343753251445257406655806371782275783267245743797034412017027511531902260659385233364014403152358218377296495609086514316094351275124439354415487429923623476078524192552283826074424573628055041772030821452675491757727360465023185240212868213379321299824543408166826366953635087583866717459963019426073270420125488774180825150664675532166944715473624022591018238148057962510261619223238656690923743934840725254815870937736367759875724290498084432940681953912599204506342161489923454931305023002818065971406017221306748962479413000178086163557441499385554495868964347766391689555148061742891779134169372324059341043461519121178753708553157179786254160545151776414863783931259462576522844495719038170066449690886069056325546098472180120396888734959028869536050776427897279687703730006338587831879301923740434876030964937808294857421853932555979146415189194379920092596490642973049229399605154812325649418736479712254475950580314121582044580015704619165669963362095300482580617220376817366453405948076060359619400641918699121050085203112858571104576131854683221435193651684047520647841819071175414557959424539566766640216518788694011817373994840714817046155647139368063913365701155728683394631893418745848806779580902483388523081931747948392415668696742771293221517646619326596993913637585055946982518426888026988273837369059889598725155322719269784404169877455160785229931600661505053249851539268898477031361062667525760074189668076570458280552612968889633817807104708394521454083785315766886302751736892226511914748118313386346745440551845527004750304480641562666612960781295100878186852360044106764048168375954631097113193469543240341105617194489050075753628266953920800893308493860890509829265838841070230732768353560490161933483443616139285383745654582867366906138319911828702109334142529132598185138956602294043296640808523284158050347399720280627668635237812054897416677780685606299034001228366938149652545144649261311373594590350163127972512080631178746769720545216176559781282637979069963185751144484049655245615203522146918386645808932426657178312874572628167443752762898437281004230802666561960433207920144540139279404851320079779831101510566345788046473982526758053691555421159363357788121587121902789575732510381543681563284408720802483557728142210719689116319179074748913646226495476189265453298946015910377903609939712750379494455475232560915924465409246844822595824817723361442155965954420849940246190294684352525339083009221111079257058289293937947649633654371478180976095959540369238643071496300577656136784529864313807295833360055626048234016071554462765484919601795152964951992672854411222497040765343319114909999846971762063002769487010741224313988357564146769066954218143907271590796552712675464334011779989624059796995262058564106876607906042778056643876014412677297901984499082044096581292252670256946279672095166383541297660908042744218541043669626028558378512079172306915784656604590283605645341940464671728791013774777139725226209868747493909266940811126260364000920466257820236224676226528076164457832923614628563783027442829222515591810358052929890074504712889559059402296270207580682766648050769696402013888731847266158976422342289416028116617042196041141594982443468228329368249363716320260278773348629106963821306321457817205806628634813780911417336680163373139090577224846623728230044321735660575266187925884833214263219223688386173400465856117006125762388512432510410830659988989477977994087915520846153838824847843287692496102347678437413450893442546454522795377778224394760630477103178914140574239120684283309382480628629703818191731280192306349932733413743258463309129969811577862778031477510741239849142785231397322372307871284402445017447010990800745932896544932363592654763149188804457222809790501172527100186585135111156677540070579522327799202341353141256006198837243884373874722703814340670332727228264577705806177587707112659117308874107093656381923310780068903652357467298394932998482567147795575488882090221685802522904820541186309118274540757401459305587233843944105785888759482290872838107822045336243648647501184895390803790229435223602767753023345309129850405223457513085107696502365022936654711050388301878701714599712504936460886732583763359536437987305246270386078216936073491517028641785494506362134615197633920404317993611919847180964937273819886176148881454260227503193806300495500045168994194182994390243234126632385046262030643491416237566634790291073020158687134308992531314467509499170149943731735469737051409212571340250126911003319680017601120583346531220771878551487641848085465953838696823162826080630124521421014120539981244952863462565035027251250618058178271938975568461123083914475805117533285537720686674329318630306874787314327460575893402114562191503180478757432882840455099076747097573904667983825601162105143302178782429225150264706696740072392643465261256824798963111953314979031117997032046332413646755075535527987021927562262956772744225220756223863625899286650137257091437625343864575448804117714429569556333912410841134586150329570735052975001646669682457352372110797467348993285992675357694585695227923565674141857314997471405367612439782150494008207897827634983792030239742729903827802318063301113782881085753259751502838362604780397296849563840423714995200037937686258730767601394390701926018596279091587842097367054154575421594717294668747353044642312458639042830926958344376807366041902977742531842312756615081908093082135830765298362694310254553779993638491700835684700384359166009503292917308827402992628978365283236261042156514697036674839660066174635341018113990656717265742674270703851014174695743522441628521889846604580750964406423580667107029356188315297722813920346387581303660632484079345276568054485563309575077565589934055204481074435047592025474431204027799475500652285292331696090138578622826996603843712207943958834889399807356033553838137444724591218593517522936608677588685358381850423841452639921822795625447747508186105046705280076263951444140764640481241936550185330011188070969253930839035933985568802224187657398627884435885795280428189661568818946414571191998876067769678111638997315140376901079210860626772812784753204324261246993764075908655518273060591130532276135619433116275274669688885785462884663094759872990130143036202490682277283813603413338592216329865792409046180031996401694475435540579253829419114304800291355064366354005574782521793423055641678468581090157852292705120386432981660210399101720790105277786097427355185607999073806999503070573473741570110780560499374142634176058300266225719308091544118101831077063932548164286758621934584316411495738582357796878639912649291142110173261514615629082058333394682896850087915823323399432059045168290547012361333845399261413742445939506326044619364692735649661688871320731400764575655835446940041933641968793969002118387413806242294042520194952714056992839652077183221600886860888770031227038572527127937022159059941218574963337400400063089221923369474663112131623176952142617645940446393865333097620502057855993298894957772491822685194126943213980760271647194719993381998217834480030440826523242096535902568745558254019393219937388428687210766169133351147663186063533820073426239871521775774283289489213522111695119679636601184839807890736836425427559609421163676040678519468082144163799844006746641889909033784396583797762353347750430515659800847458981132367117778348478284450590645883520149918780447597196895740218560984089591477994055212929131998003528934903032300787816476778405649361296265467929990499070125141408999478665112497477917342462312406957455828362335823914149755603863009116053780977760904054605359334613579254676456289813189568159158204982450764481747040583348473703678685774038425156847607377340557691851376511859627085705171809172415122595243031752461939363496862836380112727501780469901006199702126582855535034754489727498205380114622100397237263225451770821326301774054389335038294771162357867285263308284277750697446467143487521874425000664467478584578872861039844471776355341445360358875882091751445702082185908161874351332379329358779998154627012389220069968089787353513393496255721270816650146201593261185622142939817070023134580016132707868083158489811297630022620952702654579786378562399990394887525243877686433064494316791481483821572675550147620756485395979463045670178528347539062378115294878264294225136199815611081598353082819396376654583677049916107922802580724995505112417687552977018573148732867786192525321431037894988772455427158843244917663598744467633238698810616543373706087652325979299226431045366659476910063251345048382079702147336412981404175999121598434147549062555501417988813952036738822240792068562282479395697495627018222761985868548182315060987155406181318381985658034074888013349434269792297085983645522823643566112608476692784618258706969364394680562299689568665165698093710191145889676921061537075612441603563159466790652507158722571223285044509919257377436800294533049656235615958668031927759153059707453290453898138658046673255591841721075523454991901847487051758149738064125860862592425829898422602247289927377039440865218915949297941316571767197791121757418595286763894496397572268946787744158657396487928272086310722239942673075941101818873129789908657407781929214975506574808131991951857654114495632071279203503531755713798623515205399538706092017443726777239370553878417625249056991974856128612669938622524110378845626393080241333345626252037967851185721128592935786427518504298386706260318745511289233012813261037002411861022320169674748415179604594186233851996435831475106413999607265223147469969932309948304549088068928357885908485714915221329921285098400382982698453773104050702830493703651543884879173060041706485167187047152568104759919303880033957592647052898983442920833853424569793680314564325636364749563091916151446443969968866275615568358572320341602181549238061584450079605250519154988421813288651236990712320372950116262294438158252470104697086303585823021253658256714844554192915663001490323829922649618720824904764195955491495387535305455007759359648127495687960311046333012890704890964566401939861543295923782332052011513280439583181498749102639843655155201592796157779945710243174605842132634764607561003529492492311340348430998807764140907359347287078200462378433402472580108043588380859654537415656131285086694529297448172410592655069161490123478159033967333570867935317973278186323664869967346718487977082044486962521832722399260051847719281334647773751209023348877586269165701280002115134333880036942730980016485111498959585658854056997908321312904032216958807714995420641044055270031412694421357737546929455589327322118039631107081824723073880672979889295195191412156779438334882922886038481718805706019004249629614164098332416781605405329566126239430882207216393796936163560948517654629050898076096032276397418224864491223518140000091567426631769378202550029647044312674895728859369594619421284967465358572786688332971202445629754632811714783372785998333269860929395737387447249779055937872680825958287581430541476850405897563279926595143029220272631271537764284140801470524276471942599638683220218671357066403675526004348824764549096388022515815339615457220156393309325383006198613020968548792119310446731031850545567467903418580812209059037760594722986919246458596171094594696961917548398540411723452326528165229796403013666322246208776925105092317543544118639057238080013499339552828446681215866949274133975468239474647646569013395248995256004512684191649398178160268513269267906724287190783394691872049514397586417246886589747658504732114372825474803671669019228991811226422121775102293154265548423622144920418907130740434536646003238925235635741431674721015240439358440546950779609189632751575718659175630377602696535694799208368681395699131815225546663894349073890771442227415785375013060959591015994594525480578995776843708326619294428034731838375736774603007083123370188088828514347680048533314134048849133009670060478160466227124272584723756842557527640587026496943090285130883464445115466968006460579876686267606021323315964208106013103698869501689422295179869887178470857753382901749509931807308032798453635668893563866756171937010871592759866908818753260289849081392235183444058513738767015324421613865356855046971874418643024887546354917877555497817313192912588395936362441184508158684496534116282965391293952198408257217057001949147557401988993725312089788058022540751229093776922379048064971145031640205708040641884445412323401432155240877237274621912352874078310397838326054373708561861549146075072018726382048731559923549897260646021987069034628630805370872636457978121562146422138819223045824060904841518884360226157349139487706728212916963767645600620710527220975505037001859722972836588196491388754159741769647153130462361822194629024733635700810977698743202347283201800030063273291034774956255239166472984909723208026331585216595673043691154790249812715969928621921523850268709933443365892497295447950765744290793330949815196862412768462489607703398703966314173358776343095617818395767491261560239270128661936901155428368746711090684226890438329634241655432418486128118921227941758635522246807169563789906942138692817860851084393784996765027123394851201162152553994646590047702499977965567054466393283025042674900996590151192193851125122057633420903192909574441031845545226817163363342005557883017968127831229269424628882661107114435484245989828527489785156450028803691789627530963924174412796321305855974806186938327247511859954206894168744994830048582978024884052174731850348819660241571395400889710103209062527974728435168965954867899561482764661465696387789593533279876557400598375851822967252707088539617369192150912657313005559791038043004166840928713331243992305287268959193586556347731798768368040818672512611075511403639125408942055739068378518937971651772221749130670664469418271355019043477736679481744331903892394415048175180627544534341761611174000927872190435100856164920336661993092096170641314258452501162978958639228752324558487066100816586348627218250522721079936460003003883522356846479115840304719987616755744062432466791045675666411421389420824037675049156928841112559876860481397005785111854807535205981297237443740088828956402279409564058222541187609401968211066765490039810243361107790323134842584526070641068654084562961826880430488081380636908618938426872687620931615735748846050584407597612954077074833035754758211668823517260129757877090880471247759705631263836949917306431341531966971059283708180420522675772173059128318307402021573664045197921294660019884546007972195671046446368661900549743951471843019451356095944233645562057901190007435208071091927172717916213150629131923961770785216123913742451487469073475850545187331425716407992221364917307898516700384440679500963109897446947135870725007070287787804559561377036977722160841433111953034536030201811206726102504591340974999459646924622635528677045228882130659145711600967640034588249171167581918118206524108133935511474881469104744284715737017207493311171164038455366066189240978232225264683409450439796431331182726664464151234469064505649694354765133519060950847058241000851453705977151097301898252450387322330931429450278073626467026657448657420499779584182086109546591926773371950065392359374768979287098940583791151492397209861101672344595200799137874643563104945889904641111809780416358217560310332663889774896311158982233118675120928329120024003513590054793128076297919026683860492736712290490451952534438930009571880480002518169691591145509078523117542463395825766795184199388519169963096903980936646640278768413670213959521147508110082417661373819948452453941120425888080518100068241082030858539631838847748478072363502302119606549733434608038148041050263470159641923193800098050873991653387322666316674616677245952224752167382996176867855463427271756611664565849267555262531956176043755633857818518713303614729142878922356224016157429951789135837745001448570043954363399112981329023666958776269008177950350659561779054237282317859633455817549604170550256401894831483275719856574028119415428384417622860133607914373233667805534588076212342718891195884213373561087755834494649429659969225619633290491991358998697017834086449613870303978713017935703770104389079907709003670257396881138891848754742833611307995937476274219036481265609465867050918979851379884045273505540825764419114707305291631486331410147488874143810713974425905604709562116691147543624554636343986065837856845076118132625568202935845769288441915843810813103984933207260731276376679668144997828155321062676685152720776857767139450822452425567649533340351641853579406409173418468671879851171846699789106849206710404115887307874169312159935254272179450312840650533566428837196030999995115537662183760659581010023517925504646670827977425466875991489777535659665537267894250315226029906858041625063548599059644698796596978326370557936691810334582424083148650690312730199353130330096064972025093052463239452167026754302257037435171532201550419993836043652980692815478554637115056908034503715873147907574874215024630568365527932648759391430890425472311539284343849219856335118730641107560704957570347560308668122573441436035541632072460260677394488462636368194021959104257548319355177230059161097237976728866223417277953854980834999313874013039583249747333853287028075742715036554247950571189812672743748932987565231264381352040964344550231699625233819142962108181003551420242957003622083179541466299232497587877581266923722528003951933356071619890200593673965002281821149444649754788508437527985066852323060649249027255242712028044705197280434811169745451621291502619549679681659763128984286955376929255105093037797021071809462761309115664861578113904271992591704024910512528138490419574006242466940936103439347985516210339698211236434150604341810537919181714474820143197227247819094815392371408077617821784619861638798938485261591352693226243201877299633348582428846658653046325752443523055936128418823349587657684987182945408374064665796509129420197719525101575418794171149872313650183079574355509383799092033937928204049102023944910231495637923705016194949412855216651393671535039808061915937525804880362932875221096092857003230990477303174781514240265484202999662093330831312144234931941051547734931699513365861114441893901395760558363601751826957910111966390777348756124810042194031325589495741653023488153021498242176581719647508959724795034787332452046055135904578999457449570084277036663104114348930822808297455788902881971234377438360619313714876498825665795936213595583118136893456648938040862119713204948641939343405313466503763898167790832423572524919380711967464905426551314895625452915676517238340852656103262089218588822890399883787193913967512531520506148571541630757637937949835777616907900703459453692276487862691584052253126216584145128678759781681197537507006433161377252142206611686029834075822998848656620233594433020973806631955028815470943719145458186389591040851300722115294989788857777384578155014698273670428894808742413616859321452433589651547802545047047840348162510466978514476436325811108872837799190878091582992496685183640399688119101628395318659366216714864721645043177774224084177854993705105632927134268327754719355830614829060160272565290572598097970725340363553990640070577869595444248620080772083228011034591869727539018199068037760834841823958757058664767838710145820426145736188596739685564238153273310569186139026696895328304910604260655111806075368801320193297083590036715352736160091199460225729914521505399131779971726557828400127755373197905514913974956094490427478826909616534739558639867745133686004872777322538824680370933860946472786373385946008080277221254413214479761269756388900617494218967498122608746614279622446800463927686981758411781057748927162906736825248208426057994817740401129917868420842181210770295682674578307031535928488479004490359785238062318565502885936825615224458878263734469715841062424748110033529481180954970085504433524080495647162920493706226182511288608037248291210517942232559110709678143802934577147543093465764365676010303194508013473542579717804087653177180164238944934521482769108776470815276340505154847864741237859363640135867661674287062751740612502800626559421550551636532087123359603393140400824465724310731027783228432918034417048068515418644433720043761009752795533579515205810872504128878207256213949069432710185606743741447029698663907930863692329325984468976647555968264592468414732890289817157709391982102617607715815018756609170395337844142422834699265621042757935087598169614994912866805057256130963200236378066913873159543920381698867327938418627708104931605494472034944802885617829664134640885185436465719841127772765001094347833149234405007868578999705622200718031516395397303997082005614772568038720134789118947126283982487855149600216521070368503440943412440518884446995442512936229538962755046706745452403795509677510608295269766092608530170259304362254996005026202020552175125326544704828053638631099944005413964439448064337872810081890701001828830780537969285311349713555159817645364205452724089641539448050702053504151205991966342832445475884529442177986091801062135876902725045145212421477357502943973430420453153919921415677544733485812824666308184433231704825224247966079674202207902838377213313002612729026456246459077761923005330118409153265512789478250059407073712063033102677655977466024720767271933441042695352802822622872107345314338937481032380784086290264283364837536643634979612295278105473549596694066443129600966188507168503077881065738575351602533731897786588813235857112675721225914447412826520446243088316572478608304009741277415381961806418390101971058260989366681826545904618944171613283400146706672026539717858986812775759202233413192057193908896456741360082308180606088230588946127523208594822006453025356609877144277616679516301034077270000983785242954622971595898762882847285349563572273422685159386073890507916397875761999869652027575679678324862321213243383253984987272029878268341850255493135292680251693175671477720611108694212382020646401996383211509750915189294066460288656062433028826182036413091522759465300077748517681702682461003082295853278085642896076166974621309160468882224765143780028428944365951954772695623656717245332982481684768537922340476891239024753029639735894832433704173254295156108103247490457582181636097528345311289131744735786361941762963196023064585533169479557186226811045485716435859313076450988788851743123085724711472969559723908677919471810390453870099748124243797015087685180570988971136828811958683093328689082323528892254165155233171328347099127542778297463917664524085802513895745507028724489312952565127782059653993338834111874834991437875246582116932226914036913289588241139238121064646894981276450905072552018359390382738890066739146955648896734065582040929399903401050607491268207808392863473883031236934698996050341080599640989286825060279502340153934865511412177742084201123512749893349233005145468490395466208268521918238405525956847605125109705744556680506876966079668196094808974527397429650284363705849622873574475888571276349861302834202134802277356749534295900794941722478502354104941553662712344368311017057404096669820743001289995635887204701959521279239088102437854703277435679461981404012207291650400371729836803345787346896079537163544584645332598358868903302038584702211726021783983903578494782194373675041761922068072282420053645841205457509188094462522171106642039112841233802145462282576091164874208745415229815657767888148609756317728148507587927542869641376656148067236018980370551459629978724203021782180067378593545740661353938629696728154815888035750666636127605024458673198628883396155414543235277440880617751859575150290970316189250624771287691889113026768094169095192917525628383337514033110446454494576672606906349165301285944885928296347555310320498064954399608443926626552917607965504735160364343277695897655262285406021811359632136228582485078848835943910343807427697404937846135019259372816418780193759437769289199536309936533829222249458202207589780458309095000031200097590680351538148391875367164578882882793557415085739997507237044735163280932536638820714885540250679084200547258673694092366077547706772304370932661013721652482604175025514717807611338759590063290267754492427995388903391351513085283773595349412810577727682167181631358677351874077182802869227256706001535868785465237537539749894123333753006977159514830794594937142084308319752645906204945499570248353626800677704975195020409943804421137723038542653336389546699762469734084219046227422163702159023829060282167114163197946552717999852590492969444555942836239931444202618427755894837298803762842464461141223879726140953267919438252011474942054562470511450267731432132076853873547304859616323095964139355869643171946964859983890588007278997260486874400051084379918851983472328982105060230570351932898818606613986762189132032205077674701398731754086325771914476882014617370382395348014569386878136409223289737464582117709100020939401766883788797923662709119636044769063327009023203915121598059085988135580145605841112800244446268405677335172343007606996134092185253397330632838419106796307258883357648459757995985802203908867095921136971201592738357551249002262704016844458770123856553167916850016194626207341366893189792076998452329447076553606477851825925646973585207945779685629580514997511090254630825002670685768254528563133611947140776771036117177670815620101359801959471088246461010673126487227703127229620025508673434748382126067408802774824976394929252809299377183531414237879657536292934096476186451813932945452011008006665436340966670823760204817377198313525367208882119875750025141429006523261403682858363573371660672890362744952409729599214151421885407209298453717516920228754563457790984846389336259267098960426504612277758088910981020393356363496047190582674068572584855225152795273637282693818961498031721897718032489418829699075769058706541748444702536838394669635045138666175239853294794116481773307388401280333271304753567049674003144123517440600309660112598016893848148378360645899029340393463134405901564450938903488017064264667043472640838466788942144551225185970061815849897058287154742804557688097776155733988548191019987051774897932343235371962485352604066845021597964893725727282734206465346355792226453372299995207156499872872557501357772677539650624505028352927220993985998714741403257341564291774128948113714711635724664493327475684779420573595132095754102748524466669453996624805388242584019479127423305632191717421944094961678607867241693951891304974970836507891623340081741409787835727628228580270861159566627120055848500183605224318139679122029677774369072410886789078082307702147747861134333138402701988896497464264629101459201871694043768645831457063385659969407825243364785051472533083473710749523598946313510538374527431380553682719359043331903540759748079033176683140636620472429599767886182454807053044162251084706363472016197448663120314037424178763176441433526276308362308706155152764375951780455036681941339581905275643665090443159235504190685042045134774046890113188664928733280695638051898322193544748280341791259681791346627887729450426497319613835113744301850187973590568866937110885316053054163671254199319677045997699041445520036372284469193902143135461952666642782876234699947668973521549008976702712597944009367829133786881468844013363955351302971581019132303087399251276388314502428562929275206511520197144107814751039507024353272587344596782260043856925804418661210901367727150479916596543681558972748856469077594862981843255077968721163996722749060016895035746798342955061700251692846009955256658751511474834398892133692337888727471167981360305018230463773808761970941206969389134126680662638758849756257126407644527760041913010248229846029674397402081886839107927870388977645777808187939775180310543175739378724680516383034722345961974485366212253298460130460040709088011626005175807666009193713637559032111083422795688808638805945863642954919154719993030590670765277970864341899305540671978513835546794114694300938966194790645168413056987705518612725483070877860339229134162768216971076071928463196013577671380670038843439554589074311420640068205971278846182719331067732122775446544945433404226363744276497936790841410117815093303832565758339446350493347715676490024501034364958243070822589179182427153622573280209131937155581482397967139382711451842812400318781712872715679405259537379385118961735876655792483135112940304884136070481060949286359857997654835733021660386595207395156816854873546158507822878827166135869435909611403636945128067499675440516228926141805065550739661974021439510356912940776457135594284579675273299037848225948152226057780906093317671012075331848920875704257814750841014698562406614615121318223498089743309112039555235845850840030485492536081836199710567433510686693756476369426208533378776779392081489478683597260284918784409757331293870629982119807912221414270117306241079450387810820099787537394782289117602580229256369973485110816912219811705507352026333787228761393917900029348908184275853970933086100879625483444706310009773937735902204121927229115388987189091370155679817126284051042362789468734871301917093999213253857837919561348844973339318316992181427907278875425027975881644478380766178063478482146958371676669852299575541084737526006321505693813359157508937331335380426911356731467748805150263892509140008940977935919842344194775032897496861961398112056415880154542909938192741479173960612864764194822174219859772528907582309601901767807459689831232389688556668212315154739786227677874777205825455894331974915137041250717061796921956643694475565584205883104275139437469455268220180662423596771949026883986302900177937668682227108492117611584148172419601998944551601771343103140487436475085566598155732158101808135835267962342793589244099369476135038067853020685126009064290133290406257875737364954788200471301068623141984984778629402724111184115047534836615288494699152348584534300964492493667473688455762550036219796880675859766269429362278882991059120327478859076644509004310506834350025429440940482385445730767701934920845837678497447043099572926483729482381381807086802462929033948946775425699921195625683171586043122808636139449221476358964694823994267870348460763798640822614444455037843650369687005868279744430480327021307844054072472200335823550279793110588159248492463096710661594832119574764531911445983373843944141372968113862718529152428258359249073891083100258676450987039052941851267629527338075713423426760465836336319212576053028194423437114028816679937539657857492871750442968509986546420206575702055544392444271082513093854743596449089627454411242221827846113915133902269364389634558051247602888480349545588657495235824191373475182298482331929996856719154435920256173782629297828717680965409195960502306604474505158954889502503549050060287410651406354201368973901411470812317686650580004522820946095735778489515816891558552288822409869398969632931431146994454052524468911280636501878578776259650265837593763868634981987224430880571542260927547757320625168069857728420911819752287688434165284668759718209647559565581867187668294488947354484611873797533289449505708697505419245823566006512978055614901987430705272745320625369636411327194663440861512125346449680694027746281320256482216458187061717503590350882488660083474397489436171716079653708333558263806907114679994416139949296692310157503257793349831167069754326746482690589972317363451530725967396847114582184475862594311811251015532946147208534750002751401687360503045397447442301991799809328547173251671234259873150283560129498570769615890730852585214708978999253491222135226502528961875151664183823161548463657221300970721253165571123897341721049978606923597024713002238308311357606453017206342014704749346557416340986332369767648896761128289577451874059634281766313882893667834727574817847681952973451734937409672692685847176161464712501945470742452624606847230508091139064335207148436373477367580227051180716971301381742970014017804377021500948184863071960377652962161013074864359647474375937688452794327727371085593024874261197688443778382569259135076021057808460274829334949629063366539832018196386335381771757956954943228129472665232736462386515386324354496226975643389648585360587656041205480215373133873026147906259688616177908479052368760549814819692923415912569396214148214069198083990495781683768758064360923095082103971149787312539332275736632047292195988768595724859315146546067695769434670024916597110203947929036542701745778432095383234280760096212317314963307811918091887384010877268500490599049632757229808158641476143111810405586647437437760099037073404588602761477311449330033223443991680933486881637768145889742891501969101014410368988604938468487614023700138577605931997657801887144885305551384717017019990636654882922354923806142796452325033692853246559138641288326333415870763686158579693068374848212957580144324455448455244190954823548239653442178459945115285469306517974364182584652495461956164109014076569451715002121815593113387064163322028611145904563337323342938935793627636959211653672039405750532580313120636589124404441978059143956808311497719531670533680097190630219124795193483397502863688962991811307759506208416573699483026276170023151210122784936129508497386030984920154257081881195760331844982329182891629643480113728620681912650235468456505118870454556535720607630259593063549456236505313579090339588374364329245443353911104273540078978802835199059468719937555691545372747576186337903266822225840887369080731081556949184363262073932215835678009538747900009141013802382354403448108774764540155578807353856753058140262705949563252452656620554918668958280776269599772599877885009411767960747500290300656054052452675944428534907956303902538424618391279180769107257614842813495540197468819232305705672132139209763115724221895142422473203988825018238839961861028042798345607888003162608746581204429540597684446147482676547925236095725463908396147145450272581307294981771082344903382812184425629908549327008430199603569705156350629897453965061796381056388990381652781578568992275343467080611435773489248941874568701793139853201320951492476205387502142474108471027000359532541040641101627394951787572878273178911854501263142466424755895798030510742986364754067824949856956639838167562837859405168727910989041366272033971584704141606020243537324066380999725877738261248210446024247256037161371021885442325576660103813378969477415403686198787308626239203227966663827339420377011842820397518350830494456696165440225107271746754980324067826998290385035103947272198302906901798903218918816793643298721292337451010500644250044054706668934686153840354501837713145705384990863875809827386175891409747181020112591069653227867614156414578151528707465949912347473726558887032125753467200128008280943984804680926702542316486877743979808149059192159768114392282327293521694690418712265475456995997817381147493787745840573011344897523577792729623647181277445817765690505603334879358911979370545018475767831339998796151521605773682100051100069676280029360267683582896167611604878088195266790273467818323468140564063752499618013377724921695943338203186780718465715153443222976891514054574532599758273043194231755185001148338132821670900536418562748900435921332215102031891900059785445230898745331735727095313236688877202582090338895071375711698021530208571167544649655148663833724677742589820396794940313846567445549785091536911358169651993754015458565433897154240221794923973179489097104213005018227202364490572056070081404289995561620809328775648415268789675099106713490569209981847779602599876212293844625918088435286629151313813730606935296753319776537316313804622609812733250834951740823976093305347159543579677176933951103801674926982607151860416767026169850406660294346706961255940966782756699104492042633533558439863514126995458110146886614498087042854737281760391033967661418987666601780107963000614871467774478592622105009571843315759945047683023278124810732011098243781584405437163774290318876105929429700152814460121554630882271459445439269933145114916951681039635900736724898453560821381151480150304791596757667439366901367457252602281387683647338138709679214685401137896404332858534778384103652413740237398731160302840765826833637593939954433450127419314713873319682993335330134966623554657786895555544932800808589029837819068323590615470068534015367664732812324278251060986452652803889483154064283889282142416209437545672349819742676604762431641867810776757540262444326598651523133445586145578761360419389620413356379526744436857202006057383040249065143071755976114537329069231532871808876726769597505169008034441269121100692593847311330619196760118235696029003693347678527162675988794208348833768512077028264552084218888963792775917777014953976221752470806276656212079727960195329238251720826816459969495625812614347658793924752879670383138418734550700398849457002760716175324877023234901982927616160800959587726940411914870745289090105879938046379401106335567101540371865298533678150861579668874537973353625860247183874844447080637480569363982552560644191722226783722679681875094675341751851391503433260793615781948765605099741538379338030583319470071012459888168727243457637173408724938972648829857153981160638491577011526043753190725956374753514048540325193156649850883716372504059305236933398216084737293893647039499706508739354429275391721215633116117958899554453095930892695179750759218866642067156762628017638752522723662279275725844123490874454539032861079270445202381581181824244342607585632718401031422854892699141596994322829292631772124644643252495634725744063686870957537136712271336593838975809317989479679120335857430810710772100487657474598231944362326609358723887207767390156460075894294407884449082052524933083573307475817578851675731666268410853893175912245321822575645296865378408725745907675637100023248209339366771930504267955164996826536823743025173956640394327706877719201063906967025559662286168797687200136773253946985582315764785270241798180486966073103756005365866221948345882220985215967632773535601102740712934810751939375293571078669623198103013509305715521245959657410165612314570352642353991201590768083792728204499790103393517000609157879595338688306307724968331063073975183881909987328487627836801196426867086436109356699743665692509799233839952787103524680042175512853017744523660706972341620071372146606109589887308207842669997372055150964140082643983840306782682222797375839020312588596212292492129048677453065891612935287519398424561508352784862088845709541418308806895434569452395586909824226869498771210101650975544719415729119973222533896957563115494295208967813105812739834163902270333202775877936552889459903914281796208915228453426128028813468547190499882328217698806555144220105990110978230974268649646015813446742046908290721707738786167001631803950760018838103209138616890873151615024431554431196300901682923184942711506425527012113622658636133086032324667743710224523602887727724061456722570194762961574438553324604782577046376484608858977083736794114486065809796445703435440489210631793447010631509698271748817998034755789030802679268141397308935911461696107517227842639417963203768389061173687609609064344786500197301498086385656561233747969839598347736625919660848127165043480872892003022930337724135842323689404892430953395125864765629604499095160755806692220906064895508513014128241972434564418134702365569772117150835898612046460821152752484899406006047611514380126133255351798349949836528157679557171265049541776461628505039250004891804852099558284414218054964260386331319490978040364921926559928922801799699583602139127619769281768349934215300195321874329557207955244031178407673334433125142793930638011179723286673517326973571413957892869455650087461504107670632473065077884413390924800638094362435933560308754961870905334510401535406213625442550924315001153836885112996719041328469918561076006647982480874163326426235939190646261481539130698728902846351707197148381039668331293298491443561696827441451757713034500638503625484679689407034051939727488274567635522518581086319762730237672558863236035644829449652929191316667129198026462573806599050222576970964225473332832487301748315513440179691449616037321492410092592401367539217574908637773521881320635644795138820101063567486654490779809422688487717879132496595599909093090573868983451152020836561235990590187897956902477440553380019018069020849035458288434650988062617453457608705655007347131439796507066180171814744493455844054269870991852355139350514626288323630143723791491608075355048190967755758837078445801329668767379366482598031296328183312745958921294961993523094488647091196565422177936664879932922562112913874842385078128036601517122603439757979747720669226291340128409898504847020488555105305079998667754951031206604227873550390252322982935151950026732383653532796637587006644665922788954629255896889531923283625637261553358049905569855590087143850092576986111897412613729865585566682982332089960772931896916249679822480528030659783611855148268945287262363291391836152198471186079343374164774511202439527704535168313255618884362816176681872629812096325643932057997295367149281568612882763643682842880134660827058077270840486020512113914920449071874458909000255072027414119521963219697462223662654316971910843926988173287880774134208045359526968998833469428031939090315704924158663058846904859926076524148460780465326713233267347894124785916097945569457911871141350899857317880897628027477518807158347724815274691879743105021920500123790792123125418518439085033649448857264722213133161647480001468185397938578938963043606587344604722494390517826359294855843400952063025482918016135580314560373319792395946899037347852969193930616046936580141480843080268834132426566267709467509186093410583225518797835813462039619245153144157813189771235377315140235792319867443946096830936402687953234346937777863937306968634083181066461220976020917663630173690167084340914052596624293510545255348446885462428401009331471290208330812598568320565563623833459991387957776169244401258244999506150589084879585497856259331948726115950372260293313289701598222637463366478950952925708160551114408943483033027517202470668447905408685848177671134719885144339164351807830114349560605951462952484178319028010829948428773726667973948985645236218449644336297735789430978453377635434175107270321420270008310785011642072412375021937072049716185813560675437071669378537086662412818818153719225121816154389687354557732007656090896411841879219215115563153791605286973750050414209819182667676854221087176252070735977152781196913101137443787871129634533142742594109734524643662649440268535201847239911862807732905747516054314133343652061868361103099944047315730774597677818772901632753698683996836283742323895385817643313165104706797501518417921264981854435709919495271802944240517677872584034017947422636608369374498247885714716420253289001155010528573573308390312887840976467506285897962592813586076186132728183498310466458674215249371217199023260971394426824422141013137149178612773492114622634875411742797446349537427421657568730013351999319361078142773302557147771358070655788003951601501332167835091915561956988968423221749041771332793279827391206012277047564045265483453781039817341995584876829391268565631942620911174921651525852362046296486479114615111069977581480727576006669720504413098707844483612377993498903647290960395460441861181227240373878780550042870512215968680770884541806778928593422219168373853554908686915039298061540616097678476076731074234990884502259683838601214982050128657773250280388527150692102937923552826217343750226935101158182905453431746037391350494253200831729918286212334140852555939685456947241169943328372833739462668188549970947846165839220130174449114863203134212507019503884388397199160318619122636172044774554921231890586628559043331776663050508856369698752397244514785151434800262393465969493619151238883667924365793305842669601678767065657286815625620368625829604724508127243308780502188889229860468870910242470658466327300347961348428946089186767254368826999643701847469842050462290398938611731074907899108494418382762294823840783958262756528088710076678580246683987047269126063546895149932053157883729802423701673478425282124524604049950665433659519776307038545817420119474205156576558511592683029319877288636014828470099510989221600942007843078846957891064428153767164930606087251054001469853649514770419588296951415392211614014579030177018231637546599609592934365750733516711306416137575689297225387910026246486369200088247726283810112222383773402805808407087681884678688386526518036723780352071994964931182553091284685583417748540488488490541223785603938131852775658444398922627694810222012626650302856354850847716576194562790365468971047410764877636860309917774141934473062738679245457080427420650991702794812950178903269710396150937708473952268591619835715090798914093857952361036182207387707242494881582080615076505740008212556479004385979326253382052122907827890067483640149814559229069437095365244239387458158919376678024146997194379246523936430900520175282287075999032007467811859369989899452429506094891706684139092793530279817272825749822141293377239893481004634783353898778200355936702825290549941832227211584063506988717276623082985693896512434123166054263054081841610624258411803877192215876963553390719161524770551134198959078540436880194715531669079502636390225864738803360878087399468636563285738942928858235450713081599902971000918973541635172533304525950602030326548554766900342485700073634995073914039826896021809941964468108779517104306880692574607917019084747095549088012460425288198438180150417013957112318253268359830322206435575360329191461385200946998845098492441426376967724135288342467206825472530159266340304200463195243467976290811110486965532255427590674957263416837739529592561563536693254356291100078872927072559221119461161411243934120526843754198972929842001464834822397878755725270289757818407977569109482753375929716560960000820927778456838423788027821346689854400992711338299817067103365848063744328431090206016781289078414857871699672813018607219072957600500739239800906543254342982925412819259591651224713007449745812486099072485004647035052685967280473616684166129754319400313516545459667823295401352093503433716797641793900433163211609498079666269187629899405298981146200951310351322061781654382139784041889712080873684905244197176309798643435950193263706673096352301574191388349315519815148360579966899035668470568939405314960380909927213560833742596495045953075507601618950678190959972538078105293425581584449630277948118617295581124214864394587976215454958301367675381098545224649370815053360882138322811339587819696319542994440571224313938431237068065626115428886295910304333211026891951776123686838761210146837831578642573308750881382801300561737051264872821876747094361337220253419774825443589430644314578741644195980791639037689449511513276636206996223653951488204378888262620317409670765496365390673758409451025941417106618235678225652816013970131009558578020889805874689981204403943875197187583553428703670935191902433407812837286874604658176327245525831054052995364760452193557809912442475522872478328737890834868110938845263123258036459155670535423440698852324100168135611376810962610290065155473993222642794648499430570545277429893622256522790326813642213355558353255229216885150959523651567536712405943779571314165495270077043210517268849057078351926698648160240602505124627120132079017174116133618777562006604231680261158766254898856527536970589703263893633438520978729088232042391771746878337944740030907189369136064896540724820236905992393159371224623848230020367522874888047348080857876830519885630916762843462811532835522318606666385466944308664878853503866322981816340976652507595907421288629104054956428775201848027320185879916326167912290650024429933899144975004079342405696726303980506760333864619720091547559983333155372664720094929785805905687837206640458645786616918144420333225086548931521874026592750958978315324767084041643166196298148515539797924816842921015318590227786469966267787910554353683604645577214297953857338814186987719780680038112596183763165223118591925121768436170594398845247508533849559666799293822770149336419873376924838235139535747273413179995036041650976273364594800195268633729596627276304885611073906410443377724473359445821332514947864087134993176330341147946742844215683804139563222162482541312994762897650192954112760713238531375209588273678982081377790586419435260746100449447538590148296082571238075001902235870413888998743317198578487311588235211314549738915903149497537496918538629095603540287643052632098951336251958680713188086909531247376992054094109651024190730184628532393549957367123778226901887787092678837419566893119936405703021103966449536760718372786352860996592971551740498175356462135514719314359964978424849462635609892611459395548899812620543114305841292718939073104367573302474937927528891599818557291007050456636247252821033815318067628994739190888390902630626546705927457264375680976248315965856993509756420065144973407185566612360395130595509425694216556495288468525050452791128103941703238654517133645175747650204023077360359723098034097272654111034741042921072901150796022718127782593389525473103166128652917812127252533393782030315558043292133333153415659986432491407448999716737417917670886466311225848276880709434020342016055489683583269656123740979624662301727431674976549537728961654509521463384607685083519727139924370755904323885036775470592676159632718296880705138012533793905820537260111934545262706609431554774293571253975632455859981647234405951331420472078381260991225195312757004922226070764341474877811149046681928826152868381325101533447201856080586441625770405153602968588710013813265906248888150394920159699362016833724419583677381597665230431425057072301551216963128664065682892396833074518869906044108171926746978236696677562529305509594585598188362892804417369587866346425703587311900085593399517174832379096502953349765282729139864746365141509719946667263273379680175616843230086370950634571672254122133095509811104780746805931952418113784845629422623668343533814664646443727719217877103433039275996277775826584461611440913039217911458067253778321604576760645619835213091405089473277448059287631351895294905890382357596933258230819492278289697914307892147935041129577145903675911699360810793334225907929048529550062592852280979645200934716460316057911701004657688994886489655497492232702695707425894004228906025934156884972523200775808347163153906777297128057296023017093760164286090699533694535844011362567492882245194123596178066361762289538051505609541241695928973421286518739261940833222689021713462571836538929523281362547666359091134771089854697415287147517944091756748681774734017089688407408964678988109411020941055219301051333626114794525055587031467696936006749359179238254377508291188105725478633174697111885566525602308092669470384406755379585946190763078198362695045782549157651468674791324882536368791078726420221953564498403136564049629378771722726005330483692865846484133357211441222253043532910245157994032623441692785155977887986916574152909133306279455358941404424446706106838499082602109979950927078588480981372639529545206778413891141479234543083131034813652968885201096678991674186856822302725303563079209376348318123454270469620841305202327720101024270983715493584021764525980436203255787445023459717099651146238221741861712645715937432820009914279366789534704607872354320851296384630030146591270221140885678411584468483658702222619577149993194376271528731268486199131347684154985726943381369312870503864233435376971220205026705115646599018338773583949515811078671754178943692973612937427289132314259961189186467803420331068059883729473516108751153445428912519737937588459485989271932069972725052380633232232126268893077853495496622195827063021290736305100673752123934797364446294789644171043175474766583775461800933957472965725505076106056832078981418095940246230989351374196372389121532545076522744856905211626101524191107366949603249615152205374622014331262071126705558764153774117903151594700302010320368379842810118400298475754517272638718023548807063462198213730396580956100245103844176756451484079271267060573242799583782448693891646177285166319083324000964812821188298955269769214062062151226376879005539975318852590503613856640277363651942186677639307017200346303222987566806607324545921816396031191441625916988119857881768612744318958941031077060259408226014448660874764517100148809235326684713404893987156587144644669980406596461183618530945053527475071695101224463091998468037610959394667403653727296404689548612394690912629300387481030509419939279318269500677507389443114622245372795657413109585441944898155669333603568800044882342178769425709549256526628916410361002295119510859213285074420569674644270343892590247685836374943082920969131850215380010704969511808768221322702937993022528101428842170341299749594163187807955022951663744314910801512610436120455718983560348655033777066618174925933285654411778498954858238173947354496983670954966149539682452371609566851763982434283287981024277278537010012259352032774138234789360953348348164260212659241352577265355873356694570954403994902978773006399583613702671444845185132093646970412501801517825962076922027267335246035915118313029730587757676720742668893830409223967370035972669939724804083831568476795640819253802135208559238672019468701884396224868554633236898988874752327834352179324387583189564278182964549527616565253869331289378667946503509057904438608962999690940574677229760198969774640514888794566744052067872974357229282528649037496337568792704595196459216357303162926446448664542604067806629047940002763537297955257336836475266447767624414794355805623661218388221589964922003624959580102949125406770185796775302015600234334691957163014611004316361473838922799273290222489190886301807102347558864273979452743541331378913531192306883225944258316614528950087439608129233900624360089531197531204581130401101153873465115053585982054282148040114909276987969021338924556874391331293740186409118192573882250897404511891417088068723949444099160254229709640933573547909098803308258550571914880517619247235243472080737866083842258924744039994892531837691344192454435331774998854582438439049476101517657413156681966326115786596576202668581096275238149900378610843648166320904490304655428725661984137674753056382896397846477040737315042866964138776639930832833432451910325309532021224306776800993413685805747393575556984756499610823200281636286204650824766749667072861862279485104526942799623566857422584116365414826238445002870757307401965028125786449143342224031848615456242789236069248676115945588141610800981189239507531175274656098502742704595412172957731924440892405099585713842449411999979182004025104141917508437985415930955976556943087420407001983352182440889573214591923026486177477181713870772870403131113820459794560561208431539476837487456275092649258605332392213367820238664483234192479338597661439759048779059104444086178719545392032929357460086032489890834848802865210900446929347082497666264490600055193602579885760838141556860596706920625961665184053352480733361963686863057445533300723999460452476179577841107030264361413710162139718300995951103902362598784049726174191114099889694827681044351800910455297464554404473775041017896589053510090034738245234222125762318488170915969873318450332760873304470693199503687978351292510664729332672674500369800691649786256338472723559343933486142114214206722924705441411178385432880068736745115420912439740905619745844536785301202315830336462458267342588509894834097118997071925471769974816940407164566146311009324333564634233729579488928086610924114988386764299351935545030894481682643466233531772449003813065195455597670320539913370885355019094590021379383268271541182389248476245862319205501248597068916663388535580836911191745485917788261727159320853320776113348589405888293920573942807070181150129121582404359496594854468346128316972656115492896481764514153117564205450312193068173024706608274293353687553576889177721110880406128235113040627855073897641436210589443785684921211900979750320463125878468190289325764294361044247210743008970180471520719835516087077549996633221656863775476967447747217179444519275918938820692389637982102780624603253690066758767211380913108828174460054038000949768270127734149830070276563421813852367459375351906577800655555265828763110720009392778766474884608278241808604435782461432576797698757719544884514505859007596506514959246130745791675949122497558410846008165377707335911063490790172506489081781185858894665739429054589529733217977485005120709459673017448741415722311344770818149551654993774036943283247053714929290583517459144192923247347721456816652274568054880072131691330329394449618520070970708852699052808689305892929021665552641430637254598790786531328706753465743006355931287544344486222110721519047747305462649926917739548635078312387830974725356581092295561759103238549976581709451310486656240503456745508708857679976401067908456976016768983232439726036661375186693887599366403722246019028068085836801709539297746415146602367155976389670059426097608372283289100341283836254714744297874021143428942914685182809862671604984046473391492890983096904461186976697307267337639161729218932030893761674729546612526118266806261779677231383168014057382113740766151680843714803633634301360779596988219946352166009584621327280692956816037654835730142030453458602811517930026223969180088635588108369814323018255154908055124978096598500421624055692802062534814631282990815340788282276545920611620526664202609279969208501924644284752383134291187507744641559784883882552402455101648764510909765760104517727771147914942708826145885326542231462914267147284377190562926414113498665170506911650367758860397174302684321889715648717991717505195531486307930402281673658063132184024311473365672967987800502071778555313904865628633162299370974802100227158950540694219330653125569338189944966053975898545594971195916294269704304728726975468149597428172787370758003537913549085032423967468745921369760410771459858709312657561464265251389142818132302882509584608513550922747301273837201859200708781067821938344268392639928536485663074389307140227237729218774759467521337222565946057147179517298966683103172280072411502571837730501467299279503756524774859368161380786431206233275833779775516687576218971047840001610973449639806854052355530232049800392627109115356009149807621574913878468118611979693810715708133800267161619529981541623164159572140768085048159401127745715969905346808568384029417012279786853792302213943435767573385792854587773645216768730998655165684422610312927896081633614286759980493111163438445011409920225314057687931570688314679015592162663209718884011598540703442068502617353160689125145584817529784612049055883112591690661215922744211800906499992483316978724811558339790459504794576562859549029429112103998726104600936395730852759018552421067318075213908915822156237922829114016379091324617621352830356333875136358832935329626482667593058658173138386723048706677853907132113588100302925771733535335240920108433604643531935137340141601719842065841112686815012654185906063900805295128681528779553883611878695731873868972846638052051463405593414346788044331405595981657172586954301961290843532339590428764894348406913034392160112670715605679548397495967198638612152096538968159297709427232275306713180280926898527113400247069294821696104757704242460369876701402646641913235857583677642903551152511965812024686847391881749487096497351909456780677219535778988287715932111332575222620709565878052112419012513334064441461500491639169097762301028636432626142034101565481020605711325542524716264127707147507921109992269582158179651537211542779626781178130379460455337281787084410770375945958831649771910124216136817877737731908783300496285923885771608498287252592664634843406473419023277685832190834320327909667566909044600691502818582947185724907565147601360998181863747339268703210999142564440355311709004411487292407673391777618745416989808462599853860841670771867021341463682569992513037635984868417017916075432907982479916130335148326959588574066729174437109957602632137633801006391878797721443353908068148225133042364991427940765146146885608723707397577591510222814547432968116566237377691728224976222861636708379936239788289240278377660647294142111521607316541767094855805183845509468612586145218391355114037841387696421374041785487954331611552744771611594602977752797036063541525826511977004558683171822623560509744482663736339405283525362645176133892739348538505007701378548015557018903041032502401265027206809518846198796449937733028241618103232764232486873372875716217893516583627771314433036874084539854383557196926615607243469994327523727277460468611254552371034194466878376852138263069969349040591606155678353574406553920083849294455327087694350038631895928925014386036632735661617189168012849439523986822663249353954882938901242597902016318942930376734038558249623141513438763868549403340302561668131983896232515465974009425920005467787559405638422937019223335609579557479743328777713162157163683890296352463681418048584538903947311261659588679472814254495447839767711773077033396207061394907818055430256720830759394648504299924543461039633960108062258019580176938072702925085656486184110459927590218278995683903083631320119278067763140059841518640097001343312299130262879891936473967388099016305169684847109796722326808890881803915976689117760226062098112230240802767390218301359591101703177819408863381891032305214330637797691956303472553465048384808117600934066940521669715537737190833871070275276161263683356070598993991751128439498740072192345825413886452326646876176277638552373926319420550735309276144055404636214564686917694353227142489134951524068464228623118366017694462699351821202165065301192198618516995105859975161027030180083411223706499568313407333872346457571244495331292570662485730149794181436095975541552313623377265364905251542383229746917814362057604894147265737984570417827607952667954678831977501081012643643173510440288053366661180312738375735361858233493119402953269062377084947655638075870874854152078113727271016104208472516879106762360515853282977405453896075334591114357673538112797763113462521002855409567805142563004943139141995999935184597865328339290761129187480731112691093150210238489001108400025698672667113256074964544823079775086252378640975280222775939733648718684426839877201172145809651656433571796634539136944085830714444832771112072338796797336663223175121099326404679641517982822717401221302689238736695880814020985430717473734594869193053131225191985393049533459564957094601199932999140626946210814579327515140845505353308753234736009822769952459436013679279433371131828662809426102607123293362019969512921200396662791581060853014967046947668102337121603139683533375205898280835191100008994835063586183691714621056355120906867528623408780676587735407963417393811406357218665092692361158112615742518515786212526661440852483683244670887781599982379779701833501480490872914365208110139724333417305202410233673890387205540949419797867294102110953590489172265416484613730293707906928097792117089528414260231666718069827284610779953503103931371892147732295494893286814264061495562253927848471120198594654887408420171240287613936269396103137552642060171959212533819950952523938028905437753365776817803336790725123205226415912884892038564189630747450304416499909271495723854735369577449990040743298407905278926637153506964543438436339804543928754131888575147967993429126341732062361401516948990596563353742632791560396168263871193964951925161637395212373927373994814207749242494820517586033997074432852029976786801663975076956235682366516808033000754675849520406776010817645706472800887556176919928652785172045450437517965300970801138340412757796923225875838526230955608913167047759398401172522649109629199443846091128797694466506187642856323258316477452281088231151909759902504427552185628447929766532004039733249754875421576369522488134858118678979995601979026497935879077783032128928711333105508096580360861235844039718885115054504477683699344798741374454797374272173723764362585440671177059529614404743944383190735883219338455847350795395902637317244884463313872629463080284204218080257687309953216738749645901380937764315159173980030887700209942067754813936076795703414919681663332840307181449802596565520781631117340936969732817512374974122222306839809766449745970309397539289489936410729744878202724991684625752857775311530049783890287508029867792013654893384220072580587796572439386615665065015307563570997578621617512052762719532527132946022027567320789617008661237588014340133880690135705398549554544693406513387849368143887024022188494637875060104093819265457389680948679237100761890045101434701534423447417197688399380159563359685853001102903208455039199753705012170069134898967939111942716136536803912291936288827193503869997980498906537271340255429265784344239903488499329334231065513548959688058287466515577509127053323120081549606227235045566564532449394847215617072338920764432753054598344259056401828941697026385175929986345710459227939144785948062885772391219348955557841525716160131865214051817891211370401684476760948702401834905899843575579619508434048174595297067449619793047837067727665541554237630652183766024818509703568186797065786587730659127632652046595330924808273364773759615120318019593041213547119062662229191394381225144784167003025534118138612300140383956795757337970122875374607258407458376816634290920964027348612465318996058715409579320512728929030528498926067649055962738843771424400617695091875173270449413521347843452866889912848406675491949783077334889330558092304049491891905662042928137709773035509153757490668454468855343719550439543783662214539285918269671282066000631650910573370149218778308105563113020484189918652911569877244836390014878294016979872671124213995154932328974881604132112359207555244613571190547928943296519752075300742517846382015266781977583874887171180900279245819228573172144421692582679715339298288105725216978428964853660416280121774021707216400474388523685384694421869100245970334039663762832957188143977754087445446242537622708109278595272678371439252091730253526477444878894244113716556345498369303073963578003079129376707389273197312210500703843087587112068968968150802978533453192631909659538239683080290088163450630201747550047094367985293512390865062009245814881892376434638520871714631719112806321333608286965922670124707114713324018731967241236274376232947850993951479364501495801130402656606097578887779583895856972895228930303164264840480157173492998300249933570965284746685244152668656185609706439467503442359549663743799524238406309378607728468915041653821979199838099946771971705667238741287470002729383339668596971972946192650867164329199950802998473854688461305639135022135484554316934500644652560140063615976848686511641172720461195325060699792688491443360695334783496141378801458041111559506581514143071152891172130421334201992909939017132577477824918573283916207553117960663353405737440843025636264210428611731148068245778141374051948854179925851913251096756477028047845777339651462259323966829954263261977425060771344891676908217440582747219125509332249116599562920758635268212301866823030296280370879461512500087616265312403787205921725610196456291073189346866697878871300905328650495113710892387032855477002556114241901524017471337084956262891345310824528760523341927477430172275219913275950509762332965285341354091837665710128368304097659685410120971129105675367795363393766554950117753823134423760621837332742129368171154998971382629436452716470713969398724765899214319896147403546669103413639269129281832319656787080769965500209904614565187346240101313445485982405664660229573133847307806563573374573667768240551629322744961450856620739460017907094692185235167395910475759470558166738829705562689608914690988041846111807422423239299019794544744597919542878074680000556938628549774619447196436903891633724442786201376131801613963138380770526266419168091651077655815912450380223915832405687760742220797483342661229326794794519551545310194817526636154385221379903811359370509855150473600284767719006012050737810164032971027329226535247880727940578423837599781532706284445756180124620847442718497892438547833116017262805227263536553608417254135736315068621057854039367028586416074704257435779714291514160737492116885565310140162730350691573540249124975518381996042410531665830739010399070417770106911122241707462951775304125757075520480713780120351754430673211722091853027257046266533026849174952807934660034642622219259165510811398044788916847435575235286004645816776747938491318297761605263540768902279721942884651329043436047972520978302788800040326779298371246712696054102017737852162167975505766954849840029787759908648300802114482192611443336282043023180317941043397730832778036675965698787898852385455415000523595595516409410360964435688124824111215189888058094163378698200775954928318849470083353852448075183712896932961186156737806508550568296802587958444850906519555591729358194463990765631791450360284738127810650766645299243838707610995815114845360911378451729956778674017650588909632075635523706763753021467501317862970537133904459586264570585580878132069150011295807568046623199003462452769714693789108056440121661311234110653936544776897559204845431602651583804902298433752947043626260368565094752199835785586696710296969526871626706959231561346230437927044695965785297747414104401692810026899898139889994344290189559755007005650227312848296907289206656216159623592115491333435724426453509081818871544023433594234642300792169374044599820986507950788218041906848542397103058668087513590205036776095155896819230197071764543237476004125736950654503522380534997597373063748848938343095602442798867008625917465098350876884875984851711742586077432597432848766254395008800124894818416151398300672013217968216401759528833900087299371862619801519664900008594104287763436519039321298053900592562674506043538913689412833848446739590143348825522313401345751409341510199927047926954297481117089818115464943450572073250739996359679687194460982495299606136617990017825757484263530789926115695140944536744193448807655509006756260664172348427585050677665217198832807945117598380261367202127302208787695164312526228088044532121512372652123569344927517573012049762988360890385479803925543887731771839579890575880139438267494368826176289976512258204890537944241340910692898416510218398083776979820920777243985164189204552566203475464716684428430944711808913563417290601707930997437451468685243906945175197794971065321381701366741241598902715785426699330864584033105734975645889492305666016295505044398158087009544987318099181539587555719259330204573004848299502877418805425130026171465763468542151312309729715379722743740779781914513128214654471315086399576613045250023001084135247418419120870511166127761397758967216026162463752995258053929550298054549243418990098526755387478194881082971371858955324343846599708413223229169325657914915487141785606150317552332132647158214917203718503593784365895354193816389163456857155361141300905198321900479178845450010501666647738023657081148002808537626972026363728564950393842852007077533715399500554578346564328976387063366343254487257483435537618428688425595198309030115161505219276298807945728557530031698639585722845078775442049825603465434447100560614708459823424258811791953438196725154696822523642742635257767727522506948518137566761545721768776260148836005257103721810853979456195516479418559094723680580656681031739877048772029155640474204273357105875776351180699042530691824178629962536215902237308938885195094083543201841124396407650634647733040774801509412370926728674715051228459055704133704396405244117077470253592352323765829458511044942996884083367034864499201607692265386896276398320756986091311112964587382046650461193339534361413402944704070637854510871698861935407003044816358106817952504870966387145417280595603724167707908549070971114859721203896479845243168280123165992964072097671128126649833953132880901437987334471836665715685868330763223336536406206716503531781963570763289439628530835698216082768999544814192620320475700755035015810495867838548994327625923088986119363845120851775075749153575714222747967141622192631840966566749255009618080336678347697927145319548671443901201622144528372814154673624954731507388525159062270249221980024584572527473705176702452152583544032869153940590190904621928048560049763070502972320952347752073306364682444365531913189529032154052079277532668787445828205967039068611223896312464057469653472106196034550564553879529376473407511279621757635689936217742112955783903099634032294116979250276691487086937288313846920136338813380748393234911778370970198131975015462208466095507782135291145877595115833052766281672995885372037685318753714528304510056738241917821080563859985871337183766632812111840449891555886406862520258038093765548726324000485440137974472767280929266390757393996522063475588130813474283043384612367908234437439146141805380647036613671861901979461170939637359010942720112309088901527385481613385011526950199571099796318755358669882764712557569625918599375485813779386814596461512822737685694101153990961683983260090714162781207509009271925454030022862512389252463296511348610887780266829964983392986294551517034389506871301315304851977528500625522466404098264118050000724957445156515005569799203073631183973556358188165152071497925543741513339400644301242366858842996436023184066152125196493851337107622017845211629361441861444143621786992493601746255071226043804206320896283610158252433027004159128778468871280509618618380788071427869456807332329802322205492751474693598532305703427993262313797381052597343260601951259568943583605337332071238867010113540886301000875878650289967063712125964031166709720460549968165304438769994376023664452615101364292401793838750818541811443978724581909961136601632209317208378193567916406560274911751691675811042747273851475579753371513665725571767868248069102697981514020339780686934284399382684867621928950100829228084775997033208124729507114605402824315908269227611929958604438053924985994589573237927645760839828079547251494240635500919386720916019760915515059723073576089303622513502764808369036178034043014719613005505810431880769563396575132813844027303561385095297549826358457819626386690345492389105040776381308194143428541436097733632097178972763330999126595854348962143751126825479254668775960687537664572994180505911865078797265105739026063282431673221432608240791590429748202895451680341568655558254478111141585993784162244896852968339078987195854212611488201700932262509046987696496212348527795719012783103083276054195263872540217487831983553073375402794387788827858785804489676626072162059679881279829098432460962117631148842655483821375128976993025952808655019763032462586205014782609650671571730929493176403516752083358008556454850707448453297076812173126488862412934731268749347997247509735850331399462179703452658073322768122648720997391884429116811429186629993306967362664642079133159210808515992731711647074295087526406998151200606859332414597343154678510758555998791594988714214805373047490253630358901669629873688215741095237258346435351549892648956408861818681544135368282867408733644590938012753681490950482422043355632340888829801164330084740340234122555227917485178966116533502626845823352134963849035135459893322164233306465139267008103594449625709016477529669460535998858364129593478482893295572152448619549307352238340706288110277773814241414147884128236843839825999057664579183578534278719065976877125421633491082398697283880589781135627776337946983308796034276659239602413245008656149231436463486284304328279643226233295403198917430440312096569658480806576642334357015454314596444992528301853965259036719238916466268236693684355975442423500565175582064846285310793772433032948564167879046253347237029074252834992870464938037231561563221154412661732132048853151818752345573280132697624811278043693326747734039432399192217398781762592501476307756711382109835769793004765818731605504990405852280620847207885091999138746330143477426333000513783026029188909416171773890805295369286289487530148866349125428789009815164731717282833069806319753396695840664984307827844305157688815886103299965033327108225874503392532520520989452948957349106589418436436087814647432980030781311312198362200367365237340012971701080353697253790994654556917955454910874031486560069169440426764411177286151621096785415460099947050049025515505526144488138920448290825137966148165996354537689671117516819467770922110532246988885701629795953876818055194855861622851272686874424001704877573561169166172679437899961934431756437881251512003390066702961642197373207466217507451077461100967098084891188610037770404777763902525572159932313755128466802644732372891098524426689934393695131507939270052059550277328966895541976712918192198825916404675321860077538273224557922346490633625014634578716971609044079698248763915819827250732489356375046510203531131500667900146492442310614929793062329633356242056443480117768608847284425476479843173053923418455878718401149431848444620944890600716391547450729024030467434981519245688916167831840451540677693324853606604513152917523266452885667685908089789181654925916461124089872203158220870081334928467292402114755141101231063081674493878524242392714243737346041650101589624295947500870149645562172186131183764218713053024096247088080805572461537217145026466007362536297804553103561175390103223448307250758185013273094468930456115795451572306289670229184953703010185569180698092966974968668916878933825727565011207643432631396869398767959425807134596695433378637466917979170652083543012284721644833182929850708923810457225195597729395827091954019267176834360126306306278396446338572130736681104329312884827176151296864204914379315068057732310282354840606603683984519586348519485466027965347731724853124556750439963270939638501701846527492694626226235885425073205390147338442625416462949911996759638752607689741212257779438721943835225835720319962128533547287863917823317738853732914559027338295530121590077189822374370014171695531747861491096213973077843927594472882384253009819073974844168310484050981729460170911742018716786273289235390288321260846412055516835140460105472380757792943675825792255264325147365875298378812353367437211036632832301863174194740973428969564052719508171752332826538557657525312358900601015985820910466702087804730298677985197970920275884040291232368004868110625801562306444820945235276326908700000637486659610373727435443809154405615276232796961351355255872837006335893633920026405518905856559756782405915376507078531051358432541359930137214661487175920260946598818421679469746330983757604933698177187297080497379626136172482192281344988992705761018918199243363291250891520517597270855768635908690250876882568460934468167186405031151776252714980515714947635226121813293809258648577031822582592839962664055153017507404170303190914361224181441524945628879395596834711380313931316296766357609095651860171012496910562167875054428722307272342599307163423154228850239541423252713332497800546089257670079216036128344930687501971335817773644206026030265361680464550589514071682709773417628335689121303294444122130532034672729129349209063387932979131511913237093030895105287834673024565801756001671276272100321966888084689523581249113838430153873850200161222810742304759067772969408786251039860614216514284701956105764618269536313984604739820573592290721842508731243757680068737848565495653885455947880055866881135255928805624827837125108557956361024436289205672185299848494471113428516918954115730576480909769710542636958607832207155413696872029497479634497486168953024268431804018602734952077569340781147495170573123236253734415166246447210152886617543910489254529309222319206480845775689543639928980819412349619614397151162914735387326724473383964363861862928894853460194965642204401231276126183021755939004001685075937779497118696864950019129567333547194454268283051523314636588830223646238381913578271429647838880876778178065834068052446208779344149178288272322332033743102009196840338202706201459348680307335358419741886770440515745278117583633085490467190401075410338296437260890068785215894967505366169568415484331010150322043349022088214939867693550706204945685753256481340112185202678757787552171922798592165212313381918903487416202807529265182824610087380394082956549698869234572518145301957683881974847053578168160253998620602367490927405347997737149952850665383947719949667433294508169415812084839012117080520077856574292353214344095131992940618431634653765041764530856265997213148550653067443631547981373119195666348283254666422542033161350329819551014269368972580849877583497172207704939316341758551636563360756409157673749161406855697168547420859326495259565865220920627939026273584596091867046998609148372589756072563567836265037686481112978207175155215638782266305475223626755385604267075675521656732642319678792894820860203070933329866052928966675009639359091972132759394530557278434458182565311216183977107294487807425244268986997460746869327572957381946918627239998879610849036112795643162701924000841168714898964512343176146764128721106559923347999366475780524626942774353312929270552317984924658585912333881494616410007741594537829210224432589301398117255060901943168901490540921678434544708415410990657903374068823590394074333282141387981196810294568380904784077367599052025488368365347964661138169424878808664567692680884606517420481172112801962057626334356387253897113260735090673754602807506454579150187961875546906751111250109633405641035877856033522450836560737520191035899808263100425842407051169361736209033331211207808208067855326083236648471267365282689527069709568943788164297587515142808382209822166687177635099563852465428543929081425107898015744854128525215896055097267269338909197399462854194411857605074901603508569231960115083845011648547689860489972919844391889561380880706924105322549729580151102721876582266579957644152325421845517906452084490104182664353747163448527835656445678339136592392843098730034106498439931006793532806563485972363325281021585658090436639474887245299628112518757122973699372002125856140576585731251940932846787321933767603232484222381290874724843123012148061374403033086736846430164767999682824272011531310928560258400113131970911194933811097825528841758724461844501770548670708450353107774919680327410738948694473240506683549625253991346185094168762720544716922995566134343142105208644028663458773269789809859382190550987339562042285433357470367417782222563345755607102653437397620662876997739298024125724258003814077300684263355915951949707547570973342654315294475499547258330423641864303384874725481523512189462802248504671068472618009351231983770093070190995303490642380368346905327421491467470595665451425328003188518956447496103931379278991836136640293076615876575636733761791649069136845965347589659249789139471271559876168661881117121055266269954392302826250415902682951668260774879155183772181846608139763298855688576209908231215881801432046358421337065409019986238229716211364436134807039781003047152859845681536026330708791531233555566923969140690580133765416928196093846435276319089783305591181591309215596131308497239481927578861667966928883294717544435454598232198391435745715340014016252192760845570800529152682014240191558257027456234598180861939079690824993703231797614802332648014066664808026458413720113733903516620823443621062841743088580449079723045452214470734213419264771119538932007995759455992327180290640055008499914275879783891510631713953554980582345834294484355938960368007826716301916743267373205245211128527315687670150121116180284711767847233896287021013005753037481206377877122556506950747215724136958580598486978683104544561508321748368553853155833701568240455686689050675488223626040363967309822048509741578280326924740962020056833248165710566170826202216498336310452959365077274180550262607283960285090040226103776888166321415744961942312130722244059151413838527587023632817267197858182308596895034675811649205140910878124603822885914474258098827115786662256659705260203841681599221054903562897780940294001773318455063322303557785090407669232675394431796227375500612901514639668305055634130105732421384890262986666738377829739362580990224329611231963563468111951332083515145323312291285043811677758221264501398585296210011042860506777644495995021344026032408443575882401979150671188551669189334271716514244076232981291919637647373756946890152213571761241397288158869505297292079777262972041450015173988166008413683340388774374360049722707380287618053651034613913250200729166306282203043144506333072119063825287600896022576675317271123728529731375121497209944880834411181459512932900066599913728212027069406938722418954703789502214438571005031586171712911650943495288937203382857959876970444623230583734992296120463959396046823657359036167274873313511017078605947655620103835905623080783100330631824362874861046024902467642634824482960468953280524563053362089031734623566118597154243971867145502145238490988769227162700806544761834300191747832036052030355650103578295698032738187310719501076601393503556028697279764187103072783669953833321505325983329865300040751533118247602678103510918001802863493428235563149321567006008822010110181729045698983476549315862436030549452156181359286748356086594250082695294197909494215638041929305156744987152731313947723158207346965701889114453571450046820658576823327676552835252611721673407055599328260032364774564047141993157116200246093268060432860280008540804958995474786929002594073185257234463720132869750753895318037457489971382615515422639987723479936469979836986692939007944379464777633359782868208417884458290477540119651256535941398141908832742249145859383340497281669775635062166301451211831305288961197681384560557932224667554966929751792937915038184314580063197422840808998468834230168765094786811689079309881670117572094542910857959977417958875713957198586087106195696935420713918574287418513749898412549412920665074668592339862296369447495457494951203593621076418074823336941224250836906206876118086413386070812030843054254156082030824491387881593614921052510143505362196942732664588160563801957116431508011841711269320690758744624625626125894405421145790111455798959508765124653030682499232048378186635533680151682108067062470964171890293744706716179326439781199761767416798397686414123625844328492341585673579192271182830462440199299723764171963362233896204143582348787467803999791206550983043000760521584066854933035854460778031267356660467610005453337443991358688332592672239649070825163167466659948529203000951622580769364897925180439783924708631495728120295708964974968864815094749100044526300557184722115088135171377926546113527945893635511096326222696968988374966437115954895927496026884769049605097000727783273886757552917447317318251992521140349915509168602016024030307178745714662622737239497276523597798865467533292430035722640236883970121616612102259168503694084208102823872609761519368742857050004058347837984234618306562316811185879606832610804625148061751433389891223947827558900607723352171776934346672250409555080260639956490298498661353317001388371892108488316380427487237076733737874295623757548321600413693051574914459051976408064886970485004201685138420704937604724569885518085501514685360142548020353193613667551954690253998414965804494350317774993462299990891768556958916670274800515055599940244470659420014900423201284552270991326052676079606540113855041498707266460473688327038995014465066425259362142971207869514072416348929261274814764771362731640913776265786472347524493678511448702614620083357862571945259561048029308538529887646712770943802061809330011829824759879890196197690225015558078704700397599310813077524806028135492081698524115468691294800309037103118121338467528952193839126682326469981829335116052054008852947257261458861284174355719871665601520591836257952271171419609296658070601966615508750072323233947379775489097643943457070944322974048689715405066294059746087627564669001226422030334548933831181373394992150120057588105250926085738271521790206825455510514287324325573401374625680628322662521028098703531540274600409321402343925128174456799545208123008966016259053372442109648498777381622822983895470479767445893150608833198128471450833604039020688420035623605617578989693912930312704277360556139392074131306106086005119333805391735525476669695642868863176792878681447146837484697178044415405027900056878875300887952838679596676869618598001598256378888678650039242990228516874355650794704204526510544346165881032915476595129856975339263662629128918811168283633111606603291013629908194954334072738086594779899795075476195974110209345249580590673261805679210013617825802727347164079192575078076895184107285453922988558174340550550488547798111490507014009199771012804482765534304482273941519095547580056524379504092449093574033325721466304480808495572379009201502039633396668523354649954751686238863014692746070091315832099922347304716064685751902031204223092044264651584021513783316534889711848514803098660043032797162903067447099070563914907600588520301228783829105294796849661465469833798724304343105643986303241222472680513123704443826745071162127994473722439612445936331817647655157309301210018087959123070716104155449094804328853137361849951464020896955645440240275237842085803725651902384970608221761055992359045359077767293247181233674209238673149933941029810889950798019424619776831782026694331420446259772176154790174733100182712281865979314126147844281006563840891439914512965392929555316556403364828826157548345344177119795907235661809844657643806460665403043807587092051900969885722792186335708216667714008965497052722222692787464255447805262792302065385065604485738103037251670928978946498941861299503906217430875988749715831334819045028208125432880018157420837326707250879239364909984957496345992818627189880140784373400896840605994522328932621883271109227659096917437188038696269393123738451554131504188094140952328066651424479553984903731124373942301438209896676913949283324661241945724241484702949289349999299053250717417740497011116531085052338734017006300120194752278542136957018279148999784468033109657371025513623171762467269278806523593251743733078511535065790721589967615970277256652655204876513865287220908857714209528389560770543531217350189546860062282239334010836558445294178082301720959128152428602818966448770486279096551283732256403045201382444794848233076286198331718105120091099866484704601219623621978531032260744209173013061190905449906815256029064134696922839253765328083954645076722575430549210052801789697054164625327936737585165697944185424296815104820093154052356918408407371025871659973554254220328016119173559704142961540502500836058878752364981744263622082448135010353423363228346214222531424224566277430310166126120034238540164995277711701650075882527004639002153357617027244402900995894882288490356804311918954983724055484886460896559715800552352364428444764030710240629254693684976111208349433435754720215295036416241773212658343240936633597870793794796757895091031411732999608016202521126549811412163396336724110652754481827385187511646106926473030943208958292074676535051792290224726961710386427381343495743861960835924818360902593473553977295208777908812607506527534884242653477815816405606613051805203397577385273043680302872361063997335073348906074619245371368789291727091555213048549759508249999245932804589762353660622863435853260462591197256397077855598172523911104271301648833540462613889852540973405819014358335701978326270293455328419026763755979979967760812103091267648188360385785841210189026622735587148931752875115882086029826186089389802417979081673529623708803089219747743843614977622534406846183831251036300729992717104399502039153119332856321048352030244612940397699424062851444104169823054038328235487523498438937260926197321301524363143610687819023783256526875072051809315977758918767811099612995276108096692854177626054416791309466744625947916593507564602166776241468654111028143196323142531269083299203668284087928075102414270213238811723299966873301153965206980451865765052874755182794376199865918951540280152990596230511074768911641206876116564039727518559688794211016408085884927547834886474313322530990160890405927109923202144902924241097040982567193944861246700673251071237229041970120020757935795747084247262347547401884499267897947211880246049598127590956542703796460933807260668474705321726286775593482899749813131312012529297924709626123347205848969135444012794447882944384128725988303584223258307342198977002382037657950536043657046156912941771749111204305011223294256253234537478955583783260751382779940332869730537349906748842953611515057860991434366281918627630435897005657497569986757006232371841724920282616015231677949993621963681578665459239474515059188136583308491753646818547421080568828896111933978189634552098249036414374837781498926716757055436765671357786610703858473673892878840166145037262834274493990363803131087116437483113806109150948372796557920366850101717619032933225646714427351566949425854511834273694676245428802983990380652540559352625341074494816719185755355167636602689790845049618332357276731706120859246399455765659750707257314452249517334468207732347439102627313874574187507714469454482200268598453412157743548219192790390037455675704098931493378345807410343420423909391923513298387188881842788138618871315036891062367596682616495847135475750557707759292537349018016187529416298415561327570824604201014922883953478424899453941236866704978632297705220888035740583651683140536069095785930389038993789687979305916252023711456834314128317353370536772702739672968774402350742740744257357878878722776333381400604068249815751187604117000630169149129870864637599125372461653772231291319973541746913383926873256545444909903219871603685240235654702503435598842794155520005294001116554156566241763805791348686723876987892348830826403671704204196850232117437515555728799392819697138730719105780869400922182864594418579543534694892510352536546834234540132625874224084463087478293799510418925486178872897194400472326175007266281481914615798937853441396751037380092207098193490132505472056618196316789469884432211557221840884626387982017415406573740828180329174325575734504347620439887625075718352224761207578116577332675136543092851387662701508783225896863450165672032871779394553885464626113412849288774769532125813850213222375131753829417404122614874384220927315085023881878807525066081336851617303798747526589950715224275576992464882205101153046218950734921328389933245283287805770771890436580410248810988078891703361778070605841343958612424778727464266051273173397772928401557387093585050903625570733208668302333983475350627889929558129590408881112150369978649909915148032845057968014181527663775881485411254465962304963509859779847404908740682754917484578288423059303149275356034129985007813988409468345511810711776911885450199582580946672155180779439046650734029440233194545966195111343470647312591809156083260676616362696049791904166049028582115588949155410023413308887000719515975496603156478534186846794121597951658978030986920946196186780827917583826723537232428369697367127564682958526631159305810615279949775129495356964265764899051743249479331186892875655838362173128085097192112589512011083509519723264272320249198875097146067613962749295575582861841863708317192653815683465007068335129927314306471531912645983268243580253640418306352939235978786224087284330144184357928815320736873214146676560926685342595449838776777194202778062097924385665830311037011934959222786760746636305445278746282427550325935972827691982548604452196947530219872148549550207698341235590366568384262532411132620090442494091458531325955592025412319187216783803285397229256775178336883147780177200154199131396713455889906699257750830252044406125023244886049228657532183079742940450518596565908925486607569286618479867770344623545861148944633758245280120875021668498440091840219421646679302691686673116719885366120602889342334679482787034665456028798655764287705998485621381203903912459245248817597207787471846658616166560002683329902565867958831080296877572528057696531374044024220991113729293074409835998452734435196392097241698877089108898958681722034770196516282740823844839445928706668948059866966554660638815286653919160715845841993731267866804198215940975271090496445908976481769309920347643698336339608893919747496396597759122592510033603117247418455755911920067293785402763075937737634566182022372838163937629287717442839218292464499397132780961476084703891684338768783745954820969734993715966338997394537512054443697966892743681993910738092695611759103540917733910935907960051402060078040477518741972478724109218775158164937096282099636503704658923762293190917509030220553252053871474619547202481282240364620755643657361195750551078701671049117954250359619733247839849167463371328924733659792150117473021619897641281165945289636091818083209766797892997991242133990360054146896673405379656492138069700469554185639113817937562148322303368401309061912881067204661519058823459498496665084113378629090739857847121285332778314700193114794346921830378757646282022820219897437463072166369452246927788130071534710190444527187799895418290728796020583746908429885658898733571435269760736640052374720516722417863362555828953623617985976679518271988245413419710996740837188851563034650512712381477707541313130159745664932121035398281626407226363001301677158523126404135518308150468494100287414794195173159965110728568044248439471659510937267900761287232903092883314437305120579833456514521169628282402687643207386381750863292629894204282941269002263079694114138723717639566739533036557007161990240530309806080485235328669056515364221986392502441128674143771830603045540401859425428531766308229387596416777133979970914341679357120622742835842187147028605520710537233006658434596649863899975003514597792023091813356920958877889833664993779919746453066318687606448902775261930741493659749423840223983425791966295903328894545874125613953629243089291985428348026749947797063797001029871438760806293483192990300658218918347974224820441503396082590408272373908334267844078277215525995898220985008461209705701527598974242893025019278460559758933723950210104978429117631779809954849513488339769630651296741710140346510350321634850752494694293417020183589730470364163089521983783252606447034521141508336533589335791709900221237024272696500496692261292556941549196807555013949825461187019707540992899421895570427776939704637952137904833627991710444471560848784516389420898502192588686619414208278970366500365797565360171824897377764258185976019568471852166469935166946690004473716674120944001360061370429865443642796710769191229404247694121715142543424500607717415607977246510600855247424510748517474580399331867216679434325504885759914513223790692509100871904689314249050174085028317852413666418699250619999889530979982833018251075308374695190089855957876529642869863508719553059678827155720330077663856803559779117594040324981624447887861707596958010511205863525866366345004859667176549100979749315351658595820745092916926413985399987534904483500336019182700897701274292783067961756109416484469613695245055142765109012100569946983751358492426502467102284361211513103103055150383341484993287799285653909126498236437885611770453633132532966261939943397784116714822651391190546880815757981933384189845223457297864499471493277522532261047242165973914824611096703544953693351201945132713533633440494911541592435835728070986252666915273088456362379395309533919909751759690291414744941951145226143901407863866168283726290783510377561208260995547805964356799847850495748216818033330424206264568507155909113850402879014510161999075154750469630736858142715981659836170042044173007382355312279734855487503545847918529636056901568877207299668483257773047630758866544186480205376404474323535581051978147798328206818862173358139781700968591326009070808891430383774094348487071215677191933327737971094417790500817160106167979133878628991946761012574620176216766032962219764493494799947158536958604609695344903848135844490385217440215463610367290800740507854864626058857059231233356755905029867942641341926794311838238769708721323604429015645700797812935776131798685038465154461467132387826561702391077443162898578688804806221082527062402458287869892287105564245559231308234677650053148610490912685707372330955425513106354488468990103729465765928202773984637759612643245066643477518174473920360373531825572114173264965575685788934571561251817964755574554560119123417610335955546242168239792053122446842441073873073708583326151896151753821832521982914209203766485918268465679148742237656220817050188687080505667033369939791715636805419686056804914541037034086023065840032390361787758237080959753779336923961106469028451434572541139845156608323609622233415889209656174272967576601801831386763089772481033104874077846918282592609057073286599911673367675659713319678984776638267568777716979746080644905023945164848889916501788181622062111223310853392139847810580529318674085315285145048803501300579668679273985641954373418294007977320186994882002548283973934833038179138029735223534667705994427799521449111653438629804632392013543877370460626452724501211256015219100773175789981810222957425660837843474491731006271718667449065860836984796155704896038490568799982690630087040657235400157643773742243178143408787721886022812158698752007374196745004753037428030580507560911904666772936520297171362371488750287348572204899645441537583568230107770272613606338055727060804921503533145344375540168611319581829525202660340303254140444798385027748386240182275997733597483033316694074720920506790932695884925298935559409920559450671302459182263371110594558037299250583704889940871173465443112283735794781797384190027310824263200712276153549422588850810869658609875507103612885507538992289031229294433329495344901952273676232392438493146068501704841180981539130770940698044266861020635660045961112560131036271105726150671838046787656838998234328063490941909069496225211062751043861498211623085686997020536042240965182942192134971204981489475521955258881440233207164142451383467854392395899078626802758132118243697626035434944186936835394299917360153127998334732185377116978717541941267433033170228719646318528236037184147859741853053561030464603243042704399162398725975848734934849020948016822353989567988399960788723325399713788096891444765444395120619908617863043512718761188280268765175603405186627675579689854620168007008477670011823531763512679706254343670326085982750040486900957948371520958933697221677731291065851778582625712408940014382059731322453834732241783277320102432894910248435950821835905440791160360698295974076344147976824443156241914176677937064446493291344346600352956089456599753007543848451359327659212250333998861893724265165290510215402369205555703976425738038202609350758668329479831116899540775206592382111654107799957458677324045013334338177199062519741725270643084352041950968475651583618073586920849568759961477100604719575355230111634093298805246094596476961168821324325820956225721434864769622782042955015350467393449813538036006063983091125668575555170048601798995726789925689514799278231501132741395472799064342905943849917636181584742328640179803035537528010084524256426131902876976340557033814362935828911241411871433716327608945985299850125689793335990427362007023228453172054173884320438318602636264340777191676877035812594447211572495464978058160684887051545834480190423670936284151478220509054749368863745483944803627534063762401303539443222983514542609340199237337631147439924242215780232984401214766418329824671914900845358576092160951354472297572134814368736228935112787934651622112365390558635283759321315289343810058646083715658683578387211605890526945776627637715772241505169684469570913546191042295958380514128837185599396179968761555318213810760964279436478473378420753474457413628461583724992763878655227740629700659111873113658356678540214243905700012891543693488594143181563119353858863960066508786679021898510618577350393134426051524783966554691368005655200190486513672040026787470916535544018283210218299504157948448436376660868902751816200946020192808285105656165054388301106696474149504552301424681482186046214308393765497352359020384703526680105506932965484026043336964871316822198812410278317356576611075702446717427925222385491387699976452546597258496528164154323684639920991893282942237812093826811190867772852183271379001847236241592904921296782024135676660127246584838360000558313819940687512412567399569821331876905045534080327203721134633916305118670112174816628567096123741282977613045861259887571456700476121894309070638591932163310190848339940647650305716263361030906415327923654503676258712260733554199942830287672333458837519398190792840229843088404956084409735864773659818111646492466336325014166694734855098689832641182781306154703955497175400097618686679619246035572037378373123993117870089423538240283901018293258997134869264272182207810261906970017857120656670871368436662513894195197044086006067570048717434419476989640927143622480926153429961008061365227016564603648147295705935059862910701203047149506069420331801901076076970466773516667377714845479024706577022784819775681796040069686009611276698554519689574551325203858041301564407868192453343646370522275834350175482830560948647898549483087516064731914149007630736346300852274750844258555043352109525349752291166935225581691290599248615133521268288979252092876483897841454037922407418544259886353906387009016580286282666016018756000030673431009891248912374772335550975570506137710212920312735784705125527063701361545497378915297932134310959931615643460219161293432925075369412311295272080937637724108363859501090515123087599466659094860022911639749958871063290877608321183935722549648310454055532940792917402285490697376431413425313129354164224226380852161866299586833260908948165988780101722750284136114542076123177689966430539642362441320490482402632317510060981891756425240778296366546465146191897755348584367301407285938162404928489805446877387458070777155260327370073142248859159335058421398891326210882149637596067387386147971067718255375445116408777380143388559841841049312972709578373369240854663978077903174351272800995727264699410551302133468400232026905260195709249095649977701252363562958336160637274338347887423070378334697039285796566723715337261994629563970439381193648374362573001520684994760752232786574748690744041730817781535309358811826918369641716144377843176442974307673575789467869297353618454071243571248620344983048764372249806051146281290908098622196152300391251077482759295221949089278670053124755204984461827377201126305668276824094990870157407908416167275429167415519802808318803649554164361345006657656378671739688454960077382143471172158386396105150081853414313636290141247068803108123826075283895127074092384504776523256943136154179004956358958993287953281619839334419590862279754675922424650399401547138442147873573701047560929025084213052570929760748221613057984779771224806592917518244887091927969090008566714944334639056960782233278582187836303125939571419742078195929233717137607263304055089111942911930525098500303924170829077617795514984762599463254191831970007040729033489224558176989851192717703494706133955957756231498277400493607955764739347880291383920195301921958299206952955684207515012596529229178707472448137295267455863820532475908137540362987039134264527557896517581815509112503921389619276243345303627703454390428292628690822758001484928631561577118474782551538531809325450491462783496634600933537502245743648111373225224387772072933134981492374401983195854063336736081825394584587711520483271899352418408452363281440946781330555632202334749892827677043830246656845744859853227101110918371566211978450566778716769243752330504841450055095896262858702167226027572635484523682218680778325917179618176046332928192849256409275498396538663769020436080965819189261726235783556160136893718156767324922176634151360495836157926636179295425753910571755953215469403475220009885857411031935630229022552794674361511730051421691318109359994539176881601045678305069197381781499319708612958633616357896823721194734649134588335663758123455210429831295321741315038346423327843584372192541635318076153754205117635822191419283895526387535919801099102175009549822994265717848797023527849586847346037218322233406814313167439739537948671715329151293316904630161612889359059321743845182145216849893013566282468391400579005975871625418754537323938947678295409736204206966804549361588562986189919757989503734929551611308389220568972979472425346686355285733045014942239395041291513447679892665419570873302278930880505957563984593545309742969783638339820615428809539513145195274797027218760563291239808910470403501879503275834798516290824666419973203092338598277357137527955348906557430999366032668939501229334956553929531493429337911384944575569876185653229344536424575624680437450424958430558560421971254381380134330884490571029882491208112843289922316330169960241578539366489579863488598225135625207403050309688471479624177197416229237592091887725171244074929638762162537710974204160837877443374849623787786083836580378925527151928409814093733463833585651062612801810457188005275670115741592402631467059330865038256454175514610357535987310664801350313404324264935587339363577742446140080890950044222903571943169408764442394984466427487457060746034824289721601580322379006343585603546464534440634509429962681914751070457399180538971892688803646681869754942110533407209639996023969441813129126919462932097354891627164925877400915067882872213543469105032277156460157034810061019190095997298099131200001669168502499157617174200862057813269607284206250386011514960911973498653986100853435815569009170810319956948830496749465608336738922545869059331255531598778505364815684305837581173032866975023733467645098938696068174818695459714725814603395352492763472096144079020159523960376757239588953303095502616295229834540739259726976868651691655961027461980496076408555821574601575790570274677465100995651750635314213967694944006954034504117086100188937340497468987547176183774906635473846988423963189976961331862843381157645348720865923406229043409960689062253492654122890333122255070818672812189634842605468316234331513442554834514638922103744818237765048744519951797598398331203260663063181122208724455213682456749344140081902042072134048928613586232480967381082440296529422919143796604918929352250392246213866689803668564831142184105114334907197199177136439531327252637016809085013908569843933585832685621262655307024462182864071448281993114586248893002470254276807732272874812047643643829661885222085315972604375283815483508131957145298969416072137201639857295030712444209161098298138808835733320106989549635137231200683855089233482086598786077160340039042957626518975028971154893229221598305919296709450999203560850657966983350907566305950159118345480209771900061778301449850741118201672208810728998430956458231426738554612195231370771327841916132989694320598629097471502286672992244706627864996191967103483194999673267338238308566910708304794550010694257153280203754095200181166519886745113034763500244666078745677508480266972082657676386541075134886918215107932982958202772162075252350847883244627100009928443149290727777468929752531153250592514421256001340500903907964408806229245355790802068325011639823601698989386684929490524948623568821627858819426669247729291340398021256477599523149710036431276040141140493088377636485651707291063349031205061092602028082134266730268196070792973496662220486733851766495873762280668870916202781605939097762857809676522699229079628858418361570291587365763992772153089802348682030513217289255173441928698257033902382410573257188933508422041745238233624380896363689369712226660594482288240874346357407693731247656833358119921167699202442942097330870522715593829687924845198193758165603646679917948062973176071475776712716283854053636543746146687897944915852332830902834555874092725482011793881888984625238307057177221305244114767610537623125630369605073388063997973168115172282473085327750360762702029874391450662060206261604332286192602805308748727665259824678219812157203089934027082637416366721954231435599269443370521319619431075303498453073564534484302212684631519294557657440742249925888190952994170658676832726675166968210402591286867065110193273851702585639864448051584271860778131527768102960654266055590887369757322258529682651786517651975173608516222036943740256357970391126326060047558153342595255729036052862390947526104431093956535420073688434739951306925553466736891250994709411652836268220277933449135965988245108942381287919971359520869973463541790182266434094670779995264137870778383390279625213412625639797600752894994259959495868304895683027369756930339597811301569148223129356693334002863797847868839559182991103181006991857876090786320271895891800273495772327413331862328859986266225689468046519361430082301146326733435951367247657970350116970357807218155336969458392911206303840377666106172112370728935725117120731075291449906664127903451421170438651230434414768363926137272195572292706387185581841619093335001405941465151206082401426460736608046887872869054191496260672900956848204310703683799967637338785287360432194537450992023588798991764150870740693716655439661683929573189637644556002423927382422769438062622769507276338259889999067610696251762747787879449207587811777148564042819265557636786159026477707256396419074862335807986434308745796857559963699980923136035349376338136501411934641579572890544740663797230988192905642965087300092230467033675911149688016506025598415567803289233369538727018935410682359904784872645663721136079366490832259003235113658586107902191915109591501062083731383050655729047753792547765390381266192783166764135335723904623936335705605865044638299898218937936717488852980072120859224887512505260069721478162386301060451856278672337403855858534937155184920252115896754275679824573914564271374408861580441724287068902390038183199185646990271900975758731074661020382626343277905101167430673035035239085103286735905331868069298221831576547243281608578017155851950080817021562819827686711556708561407621535561990049760969207167604944582931555972936413705743629744944059867127490405868370063504130487314569872156153992497726808589938000345400956061741034513104494956752499726297874725996958261964832300130072932030931644907471502450556842085918736754610047671811895399185278572796663862856500326380173171410288447595025722905559593964150510758353139486301035196814219857271338702504005835727778102737491356092200485659808816321604825051966071384207138318225864054005173177710353462269249633611513921167165993669786548938375952130855287264150826132817393366450999525458245382570418046230433851657858819171503975483444380208269506399163857240473032906880070897667537491855349825947342231881955835725414902757580279739869650061430214065351094715032158870740338695436981032597876326253167571093243822537391052349857977895555002318286642835098946782742982185805499376886250465773663208521693892207021720252524679301631552226451197885561747622455706240568284932194435000969099151429264262180547821785688402264959562310054264768982871278093816350425489435258155207664606906791277620824601357927393940572002851092345177917454607403816552451020323132195945632927904745369067368187584963005444567755922287474752267462705820109725063606698733090355293521868060527063631828158755832477605469990820705391925684707949724398029736811260236437840736075449103561123467668900012217393545375714040976674787475759899883493164676284941646339040437876143218330679755654500849594118667990524182486086834587414415055762583014179539970656159228217270550996557288754787697651228268040060863525323788389130211776619972094681871419582081519547315608346654657959081273562723641175586593548629406459182733472411820545167399461848164920860022499232815592708574780336334063684575471935078234159685862561128401625078605517579388168697218919937973423194297320983800659392523458276859851497813027808292769989551385979049304856762281708223638070270944136500921361611065056650986265328025556180461343612657269413564435860513681450400489585385409102545674171923269751382288065040179276612380711467434887532523278562111992248665164075085753607030277681414729906996105177430869141259290607849734635836451647681048463363979334642566220965103239784477088434461247311743102429537810002002621025015240094509166452095416859785151515003826875980404529949714211547479624447102943647399585954444414875914475369610528980755240686362045043714883510851806657534315012096185351505025371921124443305806985924742186526777357729322916752947159167662938454078425122290509083294302272438321698546972869436090915668093555345952638048306788998892255387495933288987360847307978003493043439514521037190335699402159582164049829932183542768504881195137067208622773699671408085342191229482774743074081619696400626571361402678001207268489825461202166702013829442347376393975635244669174841341256418267836265423038712430684776474410773032111629353210552233489474278646255846469225070402796738944475837123951784997197223366882749482005265064091405980163657804806095747670845913268073918513165560826911671657584959552683871166498522622919180910681224872181892020036723389971346654940985517158792675480931619476122199608002236246308144792331576116471330167146286801373847274686876518019110362309993111464462929570157587775725572316760809506445789804970008871581411285544581721274096261252004942684773722714617969419789615789174276700951318831363486911826075786747665273064813254705393943340468297753244972538307462942090602706060823745330508325934270987550029348057839635335616776462903131484259669503335989199249931568557354725893445692641894307753186846770731682335971244297962037157578116909072164276786545764022806316056808569300507214270851699687680958600637094071900334624363654672802837354711753950164683465042833393306894884375275499782000790270774379153236188151446532710406993520161204751837810837950287003053364290543050754456435574004873802682657647128856475293575655181816226390360115057401484288363669422309776029776763476639933813607334466552179656726669250118941370596322313852221953760557548793633345061552058711183739574041137123768090710426404080260804799541589348074083817569879022431065687585097211816649320996735910429509108754303317368710032769214941492813873533610313007622012515624873296776600714575906876010268552270329806798681777307608605219141078766997727609732315325624897916033863468099729489635953216834834572454191250406877922015113982318729842546286239966907491131471472826530861076111966536067846278685011729511925564360941318789403432760593205465655033498945851097356664604906732423118932643681331675767203167147970327328167562512501490964552102655767033081194975392386637202615457637092625923287291926142974499184069845164761419521149123026901095208846353579699079441400071461899451774598376964171380399005139973324716726003926756814609764082120750488369843075317422674395009036398994344573333923425663969135179354871488451776000577253714549046890997848243132329377460411131747575671689225267803570763417416049420210546911311293102575827455591316919570831612534132815550342192674806417576371977225822316393018461925582086782175429651826695821206254367616084935228595679399337343316890343534397638664469511324375583938676331270952306995956396022555029380686764688004505448517975978304632691227106032195005311274382849352639414423676872623459209714596284240174611285984442431381585388115241777401961334444981689317777161781525715214859250717416504897257147755674828858049882231855144019050013839984454829002450575980561456547485014087169162335005573063741807626642865368184112745704053206998097526525549211449682839701007398640386710382791804209085187086766702021730992849504282428111607673743071767157474982475145263769065418521807967473614747308411743899837942682685605267890929695731085825189013474611319046320606059904433255685775245029985281404048753441303115480753376701636778076469152508422026201082102616783998178622105195219084556319388075575865604756377399942825030239139634065407236016571156496615988109051516622302865742171267516366423780853298454029929770132908461531905596365901650718701842385400791015975353892316526677960583215142873561367001392679190477590500121748804105193629864730783331712789250311053817827583482369621050939957260506130049093106810209233425158126575480777284131398993534060171738484006651417445790749840251920167148288381004658697481957037507253635287464952575691817708092281711967796428558726484748759558067319836991446859464961517091328826532049604598081643269979282570482982304400877818075853435520552145258022927880921194435433619079652544181372412578001698151544192472429122972214092476381973264632787912032660228400288193549667407959476177968747479053483861281717953985241244340871325304371114986983085525863566217542327330548904093839940700054866125442299753035991403704891891159188405324926649038658628923654148717169771335948362937265374735515236986171136443132152643374324606832885558189286090103162866890849470985542995906940176262914878933200517916900280867907686170202641273343612667419306779993955560381221520036640446898773194440388654979828355481048189347180237631025513608367354109701086710637914933230822687590188624700579199778201990034253272493610528319200436468818022480130023274929424526755896312709969552961336334893268558155958667042542250881495292644082430494626759188676983338159700713510174805665745495605807791498739229960820221580797994993525680996639124747713585506037510984066511037745445198631896453692305441180328048131106477081536195575395119860691869073610873260461930670755839186721933237827878083027545753126955086800403820506028430056045535853888022329716425951372115101305669957583890749250143619456410900915449863049039722685301820854874458013020991916714171452005679308386348805953402597550240732077436891679941388846521161208823612696091105483507425215519253191442543260689350100831813380098530338666703843970388814582174694863346894028194588360997831788126132082429031540374348502440265881312300372731883445378616542920551807654418548309312393139596006647680276744360195341704716231127840562426157162586955068125317280497633323960851659985893991891370995823069300373036542881330056647836282966359797389353670205296366212125136206212049950573374643172615070813381629763753160740748366184365020771902292493723547502159563263678045755640823423289556099537958096966123134227776507949817819603094082830583694683891864488308499747238043806647194384530873814574060969602979250599423695320217686273222108377772055643113007264169094315331389026063213984420987094693411125790041514737383473433181574779717045014614182909609367760872944120211615116280833219141501722374979274140239883422624691653422445177011778314066412275552322735864505442706980998012613183011046646085322677256280653501378436827505052795811709546664078408141141877706279478080672933848772057094157453773397514112422194912056836589776762018056794584190236055916723348095966260530329972374425014186504232101962706891125350973406085081261297091040344628328339096523950617565572396303380542352933946946564586803446177978159775953037719796235917300397306836996844401859276223295372761690092404124267982959382325117507071691144424596836107557586168733462335521096029210097339397132829058939572753625835685310540943308853963485576234391894388340254508888436940785305365975723720543544051925252350382750858677324531817357540468855191279464628727630546496713750967298179895799312625433512472930668170524756534422604628162916842483492071531938027118316146547474006266314548085512213576766859575798611797670261120870391259749264684275009527125361612875944894901275278202333690472576697029279878307052440443085266124718931362531657367149952031442235067770130656092673887883199603357896081419048929826573963113312200148875838235470016398144160542420707482261548569394558859773213484166017997380994877232339022342870135442293607361166352010109424468874361442093759797323808414349858588621636402997765371752485693986249839835369824636807646378905724510397425356845878396979947833355870849724861127772503184873816502585912820697368367104160432903900169526387278666699009357491131296334827687107473426329900687253259424275159497420988698475069949867938164591297266835912626405327283858674816520648375272421112949761470353972863287810866617731657049392902628608347101249460188925404110080804837561565318204818113013924115892090639816777274699678307323202783831479314575329499817305809859967467524746730800972942455637506225403951495744358773857999878980871965031534983212501578724086912967057319627207639721315176689611846914518816755951908587523891276140140021146533396015312278089606746788159203422498013703320172345262917155796332244992987008786247723717668590788463300291521820183053199206969887490286756034886485541510147661103911596307483225995893105623251016544539425057544118042804671079390931607373968103316642123491721340511773457072919295880088681589806762534923305215452391846534624672429138002647055050930233620272679535719714856348393636784523179919444679268615541071858169677115433351293770621638448533434831294044759858244687197615469481630970853480235729898296425778612558909942163796443387978718152723505130004926922700052371127416583078270300152149702071118472087712597412558284097512095239089808426951969228388573538657416256933111007852412134264706497971676807471762995944161109179861474073227887224613779092864725960285832848079720839186591813360586513753853910561212620008357608953405184638228665552129097266580856681499163864342149727449370932839965722515369078119714947142594957334216428045491077285323187112893027394994249244224100705263386382639495079360970574000841122465603906890302171021683785289364460485300503049085154534329888556311305372122360094373120642833313100573245222498996372832406156438753772549698036807428740306337827194222958191317034632160101076577189834711743971615478808766266005931646112362919030833683687638939302641990976747450572464105812448000897317850055542482073020347813874863318353304041935575363385445451205050920884902047596770742843062402328737571335612358837390335963651217572458008091749270842824011771520738509111275264734331228458431235718190549078417178098484318460881539763231400683273289897590204245876437024786770040928940510566265271634952992823769345056769936918381907626437623771199807678585179328322652430468763337803922505316865491437468582465789031042573638696407246448636025058563006553323595982040726709396655665175423276543935259816516466965906856649637880252305974060384100898030662036015590716376275142102405180435503403834512874763872983854469316027174651924015956533401271434010686695693823568250586445300692735955721993610769252848298502237635549991806874192212379699843562526697587032968557041360180561632786763886448391725493861417519155107191683329798171035055879952044264091654217454654292385218325451680205309377678547285209852360493484931823414946164834309478861151210568229473726215901099415707808862675687566020308682929742007563812581664816468311685025269528604212033151952817010675790121868485678772255430003643225065558541308470498014256670162510453932062767299375472798082420613621748671777966457832449551347772537185312108390987703463267871025519826572811984585961750950372482325551188822463137514636420747185564014869031053389335652457148367009348863627398064350789597205484694036662466227617618274471083319523118475476013136777613251062483479637688663566724491473923455206162590482590162567188167603481609716474432528754018337240938445744937334122724169184566053916451530509973066143448511876174918683858335028211687186161142082526084680367057941685630514362933227034676738834564491132721908934689512763179109222002205820440850761193799754499999558018852550736090622569120861591574368047323395278074016305410773690516360734644089158268551533149785353442950202440039427625795419196202477564471518627935725847100494209121035641049321048310734068815813132770685070899790381759110070909491140766474983326352850523518587001957020822894253074359395593374318045564774546088297775396314832737601808293139552429342928099570906012634063202626977665936113097540037337937629802069300788592686068766664510183302187968751562695948399425866260856329883432399793294766313853719225921360592687072780851016852659013533696126201944111794609412525369011268465653402131008950460627314574780120032785035485590847507756578627459705376741651168463504090059212649748415859444234855728714874181063678402475974757588237735459088324307726844993680562121167207172326724965635079667584485351192320560997154484666951537194529318496838842873148384083114695382583408324469828952934643401874594137243451800524248988510226249681872138778890577886199886440910437111897717220126129997228517216031902405707466506316321723330440966253395017237069894043849237484828360456255388251645018253590105655973775441519377922804944907333307244672828255714361814773059488932483245390456018646645090079021387667219040577093194334785283234912970477347132401891227646185885135701541943149633045442495079970449789427093723503946980573242924077238792626995149527949428217597790681985406210856202531441083405584903784761148841668310767773868365203282817356401459931455161207517936455470857891323242388750175451070545829025144637584495028306269801995730691643159617126069788906188514657817659056174326917291695470463066978431415220308966133893883240377314775254779003005440425816995862978982133033652335663578481186585038068121599078821964696569931190803398964053091016756888012037645583880221572178793960944881016281300792124575106746165928555227008811874451835214839762347425633554339727235273771191792362284930813578493776334247662256393267731860825475212437146329416908797730065114051490278979541125994218718792041849493574524981140435761701852044070768645775649847797696545300114950639855995378328648721192210628727976518013008038251015131836733399832718312726736984967093251950218747532834937730180656359110799586991686307168095864888197292599939884220902182206712226542667412659600778203361287772331923740049668509311197287711905712101591171187732229436486965948439485244511457038737945106360977385836289906921943747538960442456552554692178509352491412810268883535578305295924064849525871499582912258494891612690748392472001539687875832772465814058551787683402774690004581113998469963991928246307359545805740095479741254156548123438274901957601010721491999030930486591248115510069138320678859304470892716223438480126796839083481091257763403789736027519729787783746001599930701713181035916765572690199107384939175037793615054832345000995058177779452973680461762885198230547049910091529222385086834792136911300582876064640595416767021473239071044820585874952080845519115287541175394097261357833396576295727573854774027644827751069389692390046820820515418543827314154487914514448328609189430873740839980267879928382172751074333370464694598316604177261239847611421798341356312496303681268888257969274444096144904739176404644376950399968098323102158687822277824225018300981234676513272066559863346372194120586996118509709442789548278720418730708129827072583098221767581722449090219387620759898462653009619372641705419564866022422250624318902285103813058456668646989775422312263371760679531128171356688082451272814352917055655448578256353482958496115329535717231046159758773829588122921903429000249575030577806407902143098037197070971778508157792285736996054917092922265294676397088009428709506997172867128179691113849850968522337177961592017354900714249755058621531513983785374404355432176660948622157138399021097509339252514243664561545468699025530794119555674778824030379829846326859953228997376024884068634964539802114470245310957590515225052503578565742765187506643507928743843505247975171730083607836873423846795010062961004097237439948527058831835066738197344980683523875115646363434324163807182123830489190646891987164636864239198047660091355336633055884856226007078074212601407428813071003563573197632537419307380207377626998772073171404937157612872212909080215490360118865277882090856949115200351997263367807716357528807446742377652363304229666349327770713028476828286374314809690636053018022989326797195122302459842219896386103135945365448317386013289215391773183865452313312981084981141021172730583580170272819832590830953018012910866312552381637016339286292854530098255996944792934241902453279350928966738977297670762379998384589434046237644255131366506350863127154401769050126203857994150414416233417743780420384068727723607641623240130058361173779106472051091673270541843093536592677165574973850642598321883403251598625922360155995092320948327272288069551203740376037133773729633906146712391195907581098987619523181865213175095682405916493419353867701323745681189035732218735192712416216229018812563870555860257253546438971640480334041008911194517459574453919780773006560407771786817209487685932825312168604370286233987340197714771655257482902540686700922554865661431628185945785015133462953867833937899744441010601839408978902715486854328056596638973521097740102591474522697339032807496930374289267338000821883261363199994416029073466565902209695787667251135663192764931125626616004744224282080885811575673135337393148865001727855839861892266332493495556917824553926239097808974376951045270012196311620361614176462482603656435917325379718075033934774534474127869813574625158362244479701820993845065199472278961917849854888725157184528208655230849693131495434422400988928738534204016580871038393179376714145496373169742821786902075672620357513285071590100177013937329123726168505661687838292136306758869369648110857953183976308750988947551030437507199340108375964764986182685822080667977540998200150776095341078538152328459697584201118678072611520801283855152838607851080795007199896751921780876621000076281368932575014169538035313045584633800052216234471656015609550474110269914062420613603477980606765398039243254807260246390938155728586308034864250478736282821956424162103284250288064734389310214846955165590127787532388540043930625851719243281810053620064297547128264005825128331986898151517903020827992629992402060690976874511052503779315498548922255274178832679837153950461765506425988235560955235752620084166928542499958897711124483331182594700994851515124840956832006341645338951130333188713189911048833819534546768261989392628725968032195612175666323127129108002926557566307972084966258269242826553480027347285441350353892810962537559978991778506877562687992426420256826079228438109733434003974737991491092835276681652632937654305818636869120878798070353758292029914754519341028722382504112424693630715178497754425389874168996820037433474651143089979356803780048439501061252055142739261890162856773030730897129013544759436766130761370996374525957996264662783857167256954022211485585737199291800820223183375678323952841829381597262441684650475217397008627990000542451358769952364995802695152930396965419468921725600760541272728627747236772653561227595054972743638546378699438832006802968850451460897584042823037034791545618071650220945577529644619635172768008971763834416585422646101170996042423017722389510928373014297820510234579361448384905436346340422805939549602623205404858376026948639154451308009819004947188658506092633747002350217602547762424789288788268776246093956226943722620050683184458089418123045688963304695965096541482382664666006526122534299797889247118983110234452572291164746949629321144625138158747541608431821734676914756424427294032965656431194826540621693358562026885718474697217434276459621559939580064747342944525979101141310354098925788780326916085528433048377942690383153285908758888595341175527317179639246821059255099910029657713502021379129394682556229943775942974193628843759456708324126831930682695996333192090750856154304321625275421653826595061290293550451067922822689035853503056421983081165272709740126123982645949363835518767549955689446266160472250622761509041569368732825160842232408188459643964250687330210488423756872340197113392705115664016715600761329731140181789680195710407072425067389715086855074090242184158502279023195296203482269501056765807210986632221131772966624233169442580200623527963162486237671485605111615002989184983203403698523156857020589246358640513981073308061622523142919792055209779463393033031789561724178646136772758959586021142433409271417789361254388938817479347344407433823979810222020075559022243956440419828249640676635566743686019154458700326682409144536595350583529540418763130718367799456334007557098223110390673484348326980085798663634864671109680636339459370724560556079249050915775211974467287571456977979048694420370903248437851280215640422344937451900108255353022517840812531487645343588365127892046588684212443983709232162748630961476353965384499411584706297307353486922410022256922602409261826104255445373845044771366798174966667533967665352012490207080748406108045504950765926432043846207191681847942896693824811065067794986405651836102946827465442718818082017872948770725868885972112801378512597621361053422307523622114380426760567533335722366634617535295697385805605860340211082346760387915162855252545479674314900655437578793787747450705441841540540094585500106097279415920310765210211881902973356168349306453339145449011193849505549877035148016377952602397894510296778011544899372600566485651586116698771671312151640355250054825945531703074979035838471769429135998327409623284296287215760392868082050821236821003234091715283125315639752601579273094728963807592220927302204153106175307404999493181435538948857554534385432743938026022305728035033980676711057326618013050394003124217747631683230011675353473133169564749371942383692681115871964374930809163357825774624493192314752909131359027252654079924794464261006829147452002910870932934807391441646319962041026834164068544453962450776050673898066969495990172133607153718994330243298446027942645251038786779795462317576162049339647331912408006434393988625715484101360990083813144427767286375547177505641587909458909558291862757275985075389790917229972445073586533185244404284240147966002858431707898348226369525713527680559940443961330551994579113251700559079115485466292902713072395351855557853367760929301440898875157526847153319966661373735638423872884474901383920720770124737230833404151158963557697704571453530368730621185031728947808064284726431698967142622944982595744498655047729392125376064215597408128802279896704129502432161345851485580173626887697258711283689604497369233266891226067474076703975332473688444718789862273872572899803732863912949646770692790104722586443269293171242107827492986742756992912612102277643265671739998773059960210767698253186292326726310011621369612189054044132971305606994409805102977276147663264874077457574637621002136740530830726478693994591698011315191198722917944243250528626365465367838546072708627428886043032070456394257179605782237876555511796573198680015188809671645285022904633214564455639779917592327297034543319906347066048527969942256002532369114996004642035313113239633675993667703446831110304057819454268983845751030528722371293552558120794693317790841317461271738165609875156712501312294090857627316459950650576712553405332631788329401698206877356115776277402406340490801643920762469215249616867246774764716778178577052372119926019851178915342499152006792300145856130135755960721904893356513760918990837750721410355778087352028123399308664742691369696757705475344530102727171090799592660536304288650966506244637376599048052296699153688845745897825297172803854049049744415946925148784064962739589520665145674554894552652490531717167629892189147869917494202675093952733828540109369447064063122782888496299777671911356057595778391957925183312241558038228495212556906603511822929974422066145984365489269108985163058831638269293280961817125119774367937859374263086059893086384832068949202855469843042364519069016382185081689517165916075352925467182548245771196020410749145286776487103856694369382377881672778941433516444490012260759250480424265471278694562859600718924634008829796125388263551331999922719124612205922961532037572405285091896052800222800412686158640119139763209573471286419493788522040635709154471266338313573275048081047155202671598044832224142401044161106566540439522019789006691206597989075908995948345271045343837852828215277592117248496425426887940399074882523499562088034915926482966111828593958308371452341816310787128913331201354864056851664355746931892195161692814890239218986758217083941841507680132804784936730005296688075107986843859334368702787254638056589669560682013451247987550846042098421081343363817114915323238265903778578678138474430339162370194137194167461808143614075073967615004387559897083198926487044975078711794506032418096636426327349275956263704918135594474311039763418353662049015608913068895719385274680707713085214523299564843782280151394646323169252613706114549047568328606892282132249025001299605877584633687184333484744052219344402465663673570126575255287395318120458620777225266355942942340665323438177873766599300380626556280242580933512533705113326922980150816387450258906181015667043701731439813396411386097498273326201507838734954355004894697325112626769500509689866751573167062184642464024139691920292147713112653567005643581424246224035381409290865370476601189568958738840774557858979746862418816203174817157833034212481809737472387131498390753273827779818837061703891554120747312669878787066603771601161154334844385483355047524145045792302203930559938757356179079660762571281639943719921278941680943252534385231922508479967419744426848519316302956396961835178055951842208221504404966445655982764648454821326340909709147798382984942088288274775954315696747718890878752452540429884084883323691267278867483698373153998430999568910680663565756040204242186084646895121135937081887092456073824400732929156867620156248034589058944677488850518845418630205334732757996126998882351619356460787134283941533602418855317228639905460899517624248530209323507095639529703616363142802787738709378289660222926557280660494304740498949893209281993707362162332511514570483711019964964304679952604180362809157562056557253357977721543420017418205147680843527235926326900103139668923906049835774634351390329120040606878962783081794986665273197327658283011784170234311409075561892129659550437442071058764804739478741973538683421036268010584804203000620072373951150550190305525823639542846065518827077063893404723222587957222407860842701524916457739002575476437794997683957745566653441492519379991423493270260759554972050057610949681720800385763751905008723189433686931951206203649562575329145465298849837847667895926923552285668720200945326859163472019120983297946865103870917639274178507499055605512388193756939997705183750427997801574012750501574013112864070922146517007835119780961193184708028242232503140905882131272063930698129783986431319573552767826429303494923797981527900007828608791345273920050177864331596506301951893016627765409854404124799171360605818704666783281754697792309753878179478359199580770641699663316114593050357816225484020578674427058748318264674714501003681910424899318803434989054336107708462728313040626096939114649882702755182317151300563528436170547826145032780742443999788869817236439399827255279129145276718334077647435724180754195130575866143152406769069179651319990762636452508913903755696928522592609663839201704260782777459327123945292210993871780877637563792014693715374366603009990762788258470216372180240949766376715303946135534317136094383318254775248219254129672118681368567488913211961255359031768982433686690855114478746040486134903955153762637826452188553780426263025200825556099785702082466965318970714769809820096126561422460653850974893586516323121744012992163976725328646557227930118545114904902557654418682623758587084870709322442284042911732403658207916290979829567891373637551296731535506410288119684399130133514390987041982754276120895845815151355673356750620054702852203601814087384072126267097274425895922531248827092435331740833975921442448743562264315322017689427749294022519565656342351442995147715122159530675667704496003911205374014629986929432619568615848953117281380761241372267929008068349524277053861836744117885354105408394711797140929776331372255039666267767675206928436893746063563345541388385246347815482221834007362672256168840180278282466445726625594184528045545875570276297105845430657679616518501556960353127678657542928851812908648784397631066605730961963441840899260202091893477357667846388848296683118582049043969245111286601871958360487867575418532498034905608713794505926474601806280010535516382566003919740412120073179000679732146657887433189394723245672470698728425183827856403284755777682108319882164046050340700994553740090818778484324329191338534197686996573837344864763236898300791946989496122617831846921553760071539445048651842431655108720428289485592130125676168037776593638000991740816666809462968481131658956823123372051836228470843101964487088878126471745006127999375047654593594856052055827872471344631501147167760259763729133985470142021583209758523282636671627606740556311337803972024852143899061746345385962774688392237226607871387717637221260353003524110171676700181296949205603873365812713784977798066870111897083007089099681429522481816409513645494523435904032599601677332811120432974597997670983776759305291672839093088026693786553795399267400035474074223373168898064542807815516253971070391001869599849590073080751616582256819924248982324885969025161374723111505165216210868290136796720383935261475364453940823110952580042700011960065568485101184986979863136045902889472705304380315054445120222635706128455514872471427171825043723575054594546047965022966190911631402988257264481700264362917620725639557466894903155319501533879793258578615201509698761520177958181835874886531686437217139001642311676523774699189630829839660593763324035005011684625311186053504923365507041300771111454399431937378481288648659161400932935843514092154941379586436828076363865729779209411500539466676314391832640497740812623504499627794411107959940887215711860280793667572127240916562947181293034491401260010376875573432914675977740492209152975340049751097847959151707456451887421956262061459702847997658633290670053345211437975692691592898099103772188350736761034023953014960408983787684579370882130044592861602576184821531910925194352078677334920618036427323540489836007869785221133523760323399231657766042900725036445148253193346611193718388099955396043152011479490985234222139180911545338050680739429605927448198153688893151056581747648779554795860270620139117168131883439282456253484353760697845067311372704606461644751372675372305243300220649570928872890508232764080424099957458685011107963843035146792991474778958609166480888152920646934265484751357782467608259023164542888755336273146426198897616655257054363388784873289187910657258911362950493099958629624024124499758746730524177084531832562911562702335976177661339268904633200552087973659659024486546232189099188085645510893527252532056133983156871010526913626111223972783601861941486650458446944980125569138321134111461778812204231322448210436662713292495588001209820514383009911046344551082059588908775211967709472887026656001381881016648435914264177528606235937519389731245501381011433393908620857017837862390077937403872442932370193190085483400214917802320720806877925054956334090996894548850450923833893180579279648434940421742709828626150962207866940549623585309219793303936795804627839751779387431564516462468789659483029622001770870740673252467407865688397900875102870906151408349519849497586548554292258476252688547535320470064195678955490151253493949514935306455711016637886062263548378467305123618889480852363902702446458724099767457745127636418758447160010181482456732950943006511355448225251245838381423604392367302308270120439468081544375457655658324614794264466286074190092286162616833568511597847412888938500901873656184977513899264024516106808965513208951052396388867947326446676554342881759774767621035294979937788446678924360741250365971909235809147889826499088885850889491142719052651706318262728131557534286679591311114537305996879971914565504330409616876257563017120422865307204107892044365505545686452902741691052256866231179782170766232804225156214257415343859770641353238450900997539100309177297291512907381197809507718496984657284603494810262132369825308030641289704039640279323732013017874782194333588185819392180041355967823776524946641648732291703090430145882049941609787013184996137524498579744405446294591617857696236688659214569056719020734858277818323972631362763220237670675083749341330144686623596431387982117724509998893038965251633989926183214837676846353807365778090325616335283305753153294847521784837651545374290442711935129416001327300790390802754355404394772527518861869347006331408241250245657446991730019565911235880581004735777778898327333571829537174790844919717494861257612954385323886567325203594087647948780785634840408536483541960993163220102428287752806383853366493066906170548002823637729828921509176219719537392822035775825076031403472613515033484642286875957393724154515679502039423863411349974463667109831278035406098404452028739463223624553224161918419663043242356899945230900157869705358811450615284809074391045956031380142880315197915853531272256086550515129515897400568851546164513977470314722240549513468147540379657805064653671136415877726376708246115239761813947715925021961568956543410692848729837658702321176217493528458586304857066568790739932395032608417014154854850245612916720301415827001619148829013114845104349108341734828961543753725194242257244943766754199106089037567671135742411904928081938737299133153402268845803073841026897549812532096050000717167381701765763183901449872954917429186654300427118642419475966396482028813844355311746174417187465617908428296405966986846775794374689255675698074390168694730205753397290989686876800984801878739264134440825142372904169663830653643903462520152777841918514617618039988167576663719602158632197502256773232971281870345103878188713306792407025230028388907885147687858093742043340530462044540849236328321124651695563057004375693263556818182147822861159794671104104503659151706137996929499285542392187777907007358021542292927150900753127658752572929631575637114467465208475425261546646415810693791038446188109050104008651958701990026591874759834541620822359777007691920134357745119899316611738357123761353945598049192726063167561660903336621021250380295138900462178244080375497922059428638253634118701546735887649798515085489143763058952546282763817347972180241532260503801383434346299967411779751575365563998645976986072353790608777874602523534278461069703403618285631944174101373788314954420693122322772327940277334002361021668679489064570937309934149350317265002061182719147057599768947644278511532649570591899045588840717706999691709857534366108539546237335842337286477204180938455645954753941190128498687614711099035825722488846705528382479439828614225250363873154774190670600225091215057110475012334558716358375531744111714490140558983191449786569642466836767617712631616123023845521208639417171771845651297074761959301565548425808658885834543692381618920607625937238090919412371248937507658144448288624031651777545567714020779884089673138766994142413510979582397319686664118092048294415851156183442429257256050717455284233431306262265880243901150077722025279998682105654943293944492998971521389052238341256901401589988831328360996539659739968864196413448249017067300635988469867219937103390543660979844479613197234291562245827812539677778661602044355099427220647120697980098683328051835783720544367508750587276925666485927959264180525774600243691326137346204533072509256895250009639135056946522670960773576763344581604677624702314775632761072999156816963374140064947199746360592930833440163363858929544815830374831474327452091570627582099706587932900933963142759368684024267657319025557605073762976193353615183123333467506363492868900796078970059608713543211382354741696136764981948547822219117227298398820497299355085573811723462234676166107097752049460088165893754140261122715162170788010957917746609621098794969970600790147617773949776125250942878488143082205620212406269360308727582443769350737148139302113442416234330695024070052440409911686074749670843250186986857954814231413326883859043195996855931141461361989190037352049944584463590309329308337755323302331557600654444700615148773686135195632664626859153588272677436941349971316826553583879648103696071717951648944396148027789061635344909328926018646614574214089427409816385119155678501623748120683325610658212746015786904487064775923135792664052879329608400972249167982900285187351215845001267962659921882465239821318191111757178334495710324464434136022318991701966258543737838925563151441835953352832828598710159942270683358411863251939666316439509207915834121518861820055361383326981975495563644757678860217231304081109535343165696902767814949031932860393530655228674600226937682432067046663702937036315799361367583777423803280117461481745951903415275395397522371775412815555226674934409831535946532495091446567188189835206039714789986914693060234655708394952576188609435810379304423988045034148462689303898354702563051423425146809971748369879501555543733442746278295801423673466857141559714914197333941580827264689293788650374786940792380200489395994441798017883997616738740946308619488941520794503111704875226728137673927680798273907040367426178810663085063732159918991603700875926252108921364099472452234874690206780362138143199778744278384125149644582551406395724354881038494645599014574888940479869868012497959078425136577962604792671383103332089345765816334263685646793927795998030311095221069674364339902298937758728269707411165242893983615608047202584569007287578848919752677393526374763892411044907776551955354564334647872065125308857216814788497181989251456781040003679743236651270083432408569690422224259142306006511596890077505826600986514222298739612919271526142348084453344735437712984572223000783746294623692374402306504304988339153983155312708814514642370995359409083726321384084765527007160992577850568285248719179824656208703211375354228167818741512811314904181023334086703252734628486848486935109928428926690500238923598594182478271667555176532516676834795595894825222579387082891062425642274956909232315446408456839299686125527748239101295763349707686695409265229599224619585493155047375947030033879634835638899559843577933238534010996208452742094096575809719480893493388408650919852134447332648606762411911823794793630019093231195525358157505181789852563026604769260557310411686348956256758902005934789691626258572684852741983107917286527045649262673530585483326310226673306941936387042718284046732761757772054685360201515765342478275120165514618385908409964797941221396455129032056842303334427790064591385000146884966724823659109739447940618323389644265398631867821379086307838664532693858717310887886459640724839105166439485896193432670656068616201650678519744359512444271743003396614382006625902472774742040358157465467063166710307121447969724757586400563396660416423559563462327495816704190677501219485479471433575933216230445197872416539977221439829575295348919580142733348614201749462205268791355877388065506335161807128638719975861769376619215937338411437847882316210405847117630629277652670084774120732903492245429423763527311422316674100177281876734122543497383310633865366561001746014451259409734949272537874299174194461932925046865157140657357365620013452867858088962517073668208694757482121656737925801125307498505493995914306288988880912914272358859037966856095621570001175088065043165365707937834523240966971135517154024754763133729017146844469871501627542073943033548294409988664674400523113704883122415010565930355208498266936441931937812307944765310877044432984351868710314405451080297429632585381817381791369570928472453980963163161498650986385749700841516350819231726069700533539130686801842388824071081425876285546568685112857139472879628255974162554376846706145257167346666496844476365651634562799774198821191778296441252648821029136619150975476344487853841258708673388202514789788126573689045230020661973659283485259801033827678658268757710772987008878931627096499630586829592503254261853276938870038866528378939781912154833167152563859077302236429031387860659951144830187942780439928983423335856287283604251434416131550878357317751894359627036692767786379046453805025825601962131670917455409786207682131171149209257199906297835532178213336014755259313547875948363644062752239038223870381308504718241635205156102396211253965681496158152629320834817216895028044478177870491816494289780388910509976511859537200641893707556178087082968108728126032749347103672035497571171724094980606641795442220598284720505892600853995959458067261155347895652691760197123771996880302283007637899928450398132679610329847705620372891465474596821227067390128409451894373059895212383003385279517722732511881375792385983630891173877945385855150085585802477194677055030970617414711110628174954485375723937613773925822332612888150962681695042399238186744924571459935885766492297773770443421410087143239010196143405873355972593769039569483202970772919962491983015663385658778964125980330941378831994135309365584507559740222811543343070600855769401786330847652930246252786500054745567824185223556620932965268135747122424000566407652647415048836027040435473601650690204143850918868327254297702361397518510125732306034262237118754697980298474621111665383647383237535470708987355289134700529060970060458550479861824841229367499727638912781352695080622082115327244265115649713788556052566795541083098143997347809881862393289010370781386241249404481503365984797827430230962220390436092888891866471328218725921214270711847871228729202173469780281543385061865488592317344871200016835642906705836764208659910815966758194527464429509104718234653551350796504798529308807048695117435520538396353560669028404913215125933067815995961863999381104076044930777865900358740362535459413575869807198345725686759769829256236999505888505765157676189578262098398451739509339345426322913036305490068756023006743638248987474221262207542757760890396538077648647041384166613588652269529119540598653775837399421355322395600902099493965389001737095043242994891506527798735296551749326519688590734572773576992879235236568603405922564114388943290558277060774908117603222790685291169335298173605216269818218507837149462447529081702724266840756523077395204432729708525007441624057010583306831131680634112525322924304775619926650598638702708892024208540755390774766001202961203668201834806731816295623375387360069040500554256354016414191377846795587543281332868295823921568904101919911371118689955385575825403009135909747778616486141827392476586746491043244656155556376802370355861012861511242067460771346405564719441983173205065513102478021033369211898420984702318748271367979753846314096739440333353808359475468320279468457168246457462564931730136666677193872178131593502872072427183019417957023824696662052584815300626357827365779297692143790370078107172351114271656453745034612038329663244974331536943063283708284768286605315797039112884275574412589695066556648459784079831607797179496199571111195356906704130546716512247621789571382830420946489795853838520709221292456765083310793681486599492629003430093264799527675143525202052753577479935050091663724261133685861348442817730808039125651906780355161192307373141090978541919620213269000946519661186754283406319694666788486414930637343302609117034831593606722884281730815762987543604466671257098550571783206420166473593255367201354447726908887964800223672991079027903446582295360251132256592881986943187883833415116219166694017677640457045705920553831062042802387212860404936766791479320654107940250438315290618775068408079532481448903722032866377389824127123236087523607074219594137853126833691734031781929907284715724695296378155971660359931862252715166940068077674538233104340209031009270206467910506194342657479687886110948249410367951213270445068845157021099342152046319509883000291200095498354337744662757773878119474775247351504740729794438713229446080992177642983872847334704471010744851356459801218430016390366323021398448566467365909546757207499127910882412351809905457651288605904306083431387391607922233213946237103743769322344552809601243057591740620446783516938500189197189584854076494305635515678577786579561588154906814294304474119139312359122590966145275488150020822050279358360092992527885305091473206882847747223343800241322301739801710873795703304197726799023863721189328968389254079297432427825588632757006943532633175317457425330805778477211660196946126751103491139652318199919060495353741088476077853148200139419626548455151774050746345955757598126877590872736404621242944539191583300165051890352232642245301695836888422864304365589374163168266720975887749187142592767052029326511761995524791265547572089339961559864621300061543561898623044306971467934811101867765419461615122905395938402760831303140525013743224758068217140922902300201277470897087455370938786030844950942267107684869188459508080782513451794465964764330679736779874184570267963391835204293555468109485500549734393994319436880540344136044537045374102431282958340590906870518885922543352754098407652153091072792076251403902026383311377037330740463314552145765408338159509491193034303488810902604774964054394963263693797174649360939791185432957183026529832257755475122361246454257604008676683661997871261339745197410817857035907627876724198608646013517707007308795424272707182233113713511294599541772722223313915123957341851783724497708028871195725204972960151149559630039605804436306335577328810338515855226214197262716307759392160488783273372843161294220866629020173794249029475661632153820287248970965117866079867220657691358874474122156092913791944484804226250933137064458009648207507543621315989199310799204207374336752667652006151476182032202367042562255903341522935489654671943804239496795986828410819236677436524810033112822818352241870673808610079821714421070510177143343059923644123448136768951082463461926037914737995724297004700012262169053736291816831518458798870461436335932609975202984618493057825061901651414672450733273779433822966163720311523374224599441840768194315432253271681259297115167578339606073395629563813496926342717335328418672962190481721602774429511397297958472021450947010306232509065157251761241567028867135076897933275572450594187404542395934260651157481924959104709427234572812794417756777409310494152386966013287016810959050958059589373333063689426779682707311964119233766068596149048554063679575526428949393813236505267066717679207847720690490143868019711796655820830723058154658734773225921602406499838529314825559433930072990642771007237289868800169818280569086054267797443424700011364392426837021619868358492428748572908578459140241253634643104093472968584103421394252951507230209414255134648679246800668533736032772731908612350487355703995429484443654685677738438182429566372448779092308365395229143295827694053280822046986701492266969476527801642702471265033964532791533334555954281513297852436739620143462262225073772436027143678094189745894187062495769951973933941051919273072035074080550525811726610181568764884957421841771828381018306850235363458381834557779196607550723107039639112817846557657291742567737489973808836062907360564068428070362489037663014654917551312069901194908644774802343016151927035186769038396331775667684166635206282353642076547283600844707947024635174269107484221480624573472848965817995534531495082869236800833292456518945227834655303698043465059371313136983231384608738498215418951978411501793887401791034840997733301292597697336939100901692222878250033913650341879755714204220213124217897217320102517618710791495666167883459578290664602743519438803157392600901604534928269731359398708519638687236447336856870589571851931787675577678199147641975853587348003894304843622049567581798040242438030107424874928366012952452299099705852010669542097330385326112020585339041469837053988856061036038060458011607455149603986802285738418654307427715703417553872685030616576834327500440112255725072262424888354285242050003133892660732347599034019885322538104838586842410165042763222661164916313499635888847654453142701389537929664698572265788823459260071964265233124325159551699866898612114344544499118807064380454735165242233530593349760072328988483794330247652736368856321288077918459358572763961980026380185334480727630565836792667551371272082983572927183617759003406127851430812290789751463816934477509664159963526779860493095818683713921046045404864876048407802744257206361924993024231033575623975920299772892385804439432103615213511529924366086651926416449805653410028097585372394058495072418274381026847249127654708161144085410841979282039879189953399137432415913645417484100665990887356288636028797068181581221031866831503222687077653210911807414618495595808977457031620035047993258206357806737094317434342146697045867073864087801548911926684721576583722903760730481362246468567323213135135342331853696390226948464011629709373359165497205747669947410423490755516045352917726411841250895590183039756051033362353557475413929976001297395274004641397157437252424344621938066202550937778554178770844596418308150338451528049132285911464117013778240535928029814230167143928554113606345299076942988005824054188969471183871186260531087739641474723333530551420154267668627383027707224682768284385196697334934370467405513529496729872228380830842522743700229129561563323101817486916576747703631917836534615938356706009007110853216975489493518508824243424502379996250223447674801585857232919365960412340585587324971404508936601832757369620609007467429177946199505586619813364676508776640710908910239778889217738485251101449902506076891083152486045978207512110698228240038698812794763744075115247576449741272304666098600256664087604840184871584945689828985206206930900800350174326600272361918221274730573036653598974812783855411633988126717606668088114698367940836930741799648977814269557659390081689480299907508493934904983277103702821402250953277447452313092296795847434678391987697976237287835851621811293275057270275665122738034480153531073439693866390984508034629860396763196700980039486714315037565593920120565815798624545012653820854328667501665897674116045730730970177776252882310674369351644456014356330065751210538580076293000893207989183000750785379395017016804252088030942052889204865421553216902723929719701776709631199328169348484298841879391099358712165294846369751705558619304630534683497238438676740089296078625593159762824982183551292638217366262694504162302333219053703622570423263066799543294572081075629051199214530936457012561901247757264526100949831522197147576839216865914377505206939933898472228265459975457300170760447587633491832918526789469022854996209394600530485734317256428127053293121401597562519768874851473925517073655717576305754669361477104670765024845192286263229160935167481303124739690824033800394680083452118716380918443758944049280796928396920829338951970758405355708833042951678618154626975466707389365256595073980151058477265108283188362617627085450116096104688261398060446696348824436060875136562948264319781544146130540804663725262340389865163214712150568049738045669953601889884658295252732041785145583926222441209401831952997660503333600011984053915815706349218971321714167141666420880747360503127884319547958914840023568661300996705762335140916986819595949158586672794857151300215572920985655455957731886179041632965666759307426718344097589533313621440333983970938314209222967478761041129544858001237868105393610916896186570333906180462112379606272010255256273898459090826243656789440389756584832818766700361914412733297615936512933674563063845192146591000572013928075899473191754518357638094802789969065937517849860163553221628751183641848697589383776566052147302816924711621095976271580067525127519868088596948831216502408851445808684337797571559070699313740985230454004440717895320111137812129712548666566790875110043745986316725268532720391306305100288785564356532328162145272204784309710186958818897960074999327220636871000347831964021230869861515870021753534458283253931444391600474522176575891367995273097174349879829553199063253768390278657831460166984958786266718630832329258385069419921960177435220604860932739903528807433607217876742827717560947126461329602476217329766267247312447426757503373616117285938131583336065396307072923501051651110818967616474823777685965504303365835737099448039052542560364244754887824577643489706796829670749988623492399278982626508196723749312340304156678422547981651259543560515533901465791246329206380589666164358358802563695631458173349351408433456013458029564252604702380482098345059085031142478540295798614156161071189963963759756792787547272906628434861057083997255389147954284087665008679281757202902720698810399095233366477709455437118032124170574459384698864310103536921574744329667836385842468504749931690276944010609913893527748533180623716916789398017564242856764284467992937061540688872878148924404040634048099750651709068425115423592646060887461761697827479954754802977147118886476184821923851148857557716512508303809569481765282053915534023457702746067741052426272577644582182694959066220523130809775679989156941611758501902515598362682544551640124581262822812239687087576356869190347779840588741062595179132991916828739794415794913984754246682049198838860467925651592291242241558301792693267164512888374395715080399799594835550922112301004156342412109078659941396474335280724311332986560916719707491164688494670486272018184886719596903194658617643827497527066241509113360058182698781237524904491327473383604385483052958045571520642179154378362165662022301740181376777247325522580146806027254755594403868556033422120180320197736142706613967246592825339992806869355268587688295613387524122267262129023725231559103975833624712799828291726717576576310201052582335282191385094797015992283772472754859417658531067887409669008083125001644620245360848952481595553864804668379156284545071853600655736199956401448567498986726281244158728411945153112604048533447083870894774122180899997172370373199858897374663154729984237522020639987751317182302485150729811843237554058905224939254409197329958987086437390335407556921846488969656924827652226910891310962488518118334436457928171149060889583246015788618152798764485503646302974103882128545196625278970612797367195918279340814289956812612083155017251600249116195768506156820890330582827987649244494716170967097683435514503507430991123641249440673985079456113991044362437181860295007557426882072219286792485236097186017846773989860398789845847990313507211715959988097674125905094604608139807243753597298586563508494566697005593226425912504023074423724841177809750521189162054875028013587441976515598529570678829141229150529654772696041232566553799954538829748987171426040607576052811617382159205619923319489572293850475706997517957060711645503461874436118997658362756048213877489760289741165491673528593211566060895107961170326192524163215505311751280878420913424105903398769192336408413527450036827982957521282557622537816973053363408794407374942300479270172091513668155187077217947169126748763475211975166837163684300662261082310144022031647659963526363462423175162653895038295769751434637412027681774124493405470605840947695114841683468978661710767032571851426249407534694535476420638977907683284295220350731885668577383989442258162180497340992180389284212961939193306864830455485728293410164408457073307289130943714991578243877640752722644445970640282084246244849780702597155806843805925190750314850412856157189599872213231558440539792943429884296944745318167791603910402684824871814183543988010432354869467123106346976840124544319306400438626946058027207330372592932407440624745015575010310232506572893174192145532500862243927425874651765257474569325556193653707559547323297871153349192925899305698807193079324627485459173496877147298429672748600344362489541332727930922688100988503826383333419670590447375811081507191194246808282402654036081761824456826700049993709790179214626783204495212121712257863984685065797076288644647275272080263801579351305178428025849373568489786736296277966544949599759748956491103285994896153112630078404342514262704010013724235725405894450891823692636162124775474820149218251632243179936289975466348969977662557333815092428208811095794524030020205151676907981795435687703995155821983467750005676451083440693695640973245103877356659131888171597308352837619065242938728798780859469909837878555256822192381368603763199544031441822482701015206497219539560139963999206614267872206801549252906988708415225048772292489213875917920276207802593690492580402169778419861373183027997758287963766534287251249431316249824654894884149901346603033086848865974694105189919886766013766647573814888919730219604756008452999397773843583409579960943805252560554349546595150160340607437276155821682250264861539507742903191136129501826223995456699752672047769931471683466153845379839491820189223570568993286856592713421267730789758094019608760116073466892224811922431299642330909943435858677670268417803806496553101806030164064051084727851400008507604711063363874507004164905116897380641859741591280488125264368998328180468799647945217136298542954249352037070658324117687034164947734424891302335530309759820085287169723656974946073920046387519185166041070385402470047222379121107867887722686993462342002019998099215810230637798685521524527573693013237623263431635300104249903086562521370120058349153309600348559471810155335250797293474157458467711728531134753208513134704321960708261378137927426274769519685679406804289282857831064089855249625354897325258818852686484213396533867665055343472465436570428369279551978227451717078383351820301441089975178972203168922432050070105092060901912414715457166151486689103443226966059897150068670175082237850595170111684293158335876199650628557790617716952323761945675950848171022927847979265214935854627583077804694621985371605065231231605678781540155372730305684216040482998979956677269298667599219047418227796220064634109944379339087030455073342950602419543556485416429619629615659410530355910555116319014924350410738252152654111705616086182961536953622588580170743575618699532872183838665477629844870014643452764203620891125123832923632250065989297181290862648954702710187091232409102424851297334954266103390849108309608252127090604384862366930909743808065034609308821469449473160035920947901512234618625721953696391337872740150454303338557565100206088662488480027155074944079064871681803524803257151876306483370462867781339806383105303149711415037552192751052922635547379798336618798537451385540015938620679102572019185921060280520142202548070181594969999529929990127244359864225591365076934906229832628088124914322540638739285962678522750585302656919925255651374502689345165259933354923082640754859633958146515674572561129651712324824174871612698640053215497328736031315676625929392037654492125552846342775929819510767403259459064293367100053114575417081575981924033244375139250192292649633416934134372334042617872840196730073994364738275884837529762309833394277138420489909565717876123502155076063486102696341915677953697952048249987240964425153786400484727799691449154573926497425492672942100372275916858424223254917500647766240668630574356403572107092626854639357852723699251222957478416003878748336251846018168475169560254662611669819911391920950143005899104257019074000385066626090066199582925538435152694680043519415932291476298305344893442782206183475816216978504351578105027097705181203619469053308259308806425755664621474361872985034956867992907787707834358946881422662147764986482848758479335123232168484894549387128625711803919422487624201601437136362088784019920593581016440407643127108220292055801008392517107452055074579250684866299710728789463111270303350005295912523866658138475973903547145021809905844227264340769442616541955502018559572450376274697939945791712270606622316095776841996360277577939855746652386517419670180611155462915126630346098352539730432217234309775053118425853736732323304723700847419214885840965327115843658379812087083205119995825400556073150427550758921526623184579134913185581072877421345850209552099235085571759359349866122093048226197277402839006513714436334107026484336901306431097277847753320631894248405787549613437735079868457498815876023934805427054023235269547024271703949891333899473660091428792893202185052969177405952523359450081725121971297568276200791675569422239451534526302338746674266306938564119509044539851218159549213506410650909350797240339606400351469205754149725437870136963730410491711002952612758641754287792881820578191659150870221982809776578131117693651325369652399248841947566799940666591247708064891643813151542855037136362744667700696119578348321880639511577197065339973425803601233133377259139487109297687831076433356425727225816305424070197747780565527225405135704775092389397239249745720168504664942699351112134268295401158189084720941790132461969361200341229747367825297570327055564287735485588553814969015038896745060811410585560055662819093204935096792623163063534856804532613433485495422969462862707803883806198079640129839871250670118254869336038345667743512631965367355335974638740082960557654615745619620304220577741343075553241049310427956888684359485662164948957532268113073818351683351310133641823335748446579582679252872801869935163427660409064972156224466122237824029310440576911409828372624049580694446907645652960334892273301861831942485037986084793888448319434858724000007289937534232257735598231038907763583692089191902791061320888564271279018969042581605287223674375701817207440713417944760484490771341408356405442987572785878307944249079964667483570219623217325558018524969098479456158708556192670329978818926635408332842337372692035490233269775856055974183205396777796679975686822971434048424050615306240012396366282888013913449152893814501539273150992306318312128667966693506072256986905991459671197779416174133182620035171740063437832220428330612020096203142779598149648546674563884144329583073110575972778690446867679453238014298675559408791592057180497356912452010140638107490763541318205372764227329263681001090097557035513811244904259062387202584270158915113697186742370593734990041101395772569910192139759030994157439488930724147056958213100612910705076317213646216688602803058852709326978638985135095577748974075345223532643354444112487597114306548077514193038198249830955139369248001553909701860791354749585116829642134771470903827086359443927335744254266152666099907905270252676979595294002122238286451074126680131811400899136293116234857930284142186309920148365128805745157204875613858421111413985294088348355800145810073152113193276650730372823002197797100819940665202723474048535710290400476620469183620420085852693947361705446956232482988428283201765899161798314819986612041886739508923334274072111947069269316041187203757724429124864505823803012136562611371491952498602826779089758748515297824169410174909047620631731352440017546917570726435339500736921034187651689574469551435632396772381363525638263745649336414615725376966192573747956539896334007404505804596709291225058805853584093884869903795628934494128766882149836688524121413835510849897770337223578710306671663465537734341902737198886135410127237148227527253031006442485580192231320965185796340113458509231912802137530210700605701641165003663528590838247393320376378060354034008099988228566430809099819666042897421810800478560968540484852680081359512491885256432174388055921983300624731642621543237278505194420338556061061261843400272247688211021073407676501458206729700558738941133583678552884023935559733251321073332707003716968000951991894831673797914612727042839570976304846491009730419052095476812707604183542429880116867449233880420413768133915978869273793057473618123092259272649483861525141305486989903842599731963694235764062897600960956061437636426541239512045473968997119215950691120415535410538073868574919046180133864911630837806057344126380568731718175868103379694869955692722191692539152334433712264874339274842493377774802584102042823003728817678054775791426645729949873565539019701664386599321487910667000512186951967012907402288071592677573939496399822272746992562816521827186315890044911150906860198005723781452154716039331777541854768205162812967371573364858787204923970556937600886259829777995294839517686871479627014630518047154306184766446657244317522153937209487396814341488011894981021266490394599270456928197485220609729753881925164088316581054622633224478788047866412242232310162537630783942158738887433936645794230103918742323497086251649247914130524720522923608626470761897497742869133408231718476123073984738088351943938343901131809122343240176665661390795225449127583914130333991630989751388308137377735026064033128274298912470863557014536588920852753247512436569584766152548818577808557897163848111899045147681572855840676083060079336003897201049827229549732253757251235106199048830670169007498172371588108840872357944451127172596347212920256434768764809483289016739245625412768454030226488985753564046118649914000578612272242471361289935628941834895974486402152436807189583567653969264194070599476362836849621219147970498306473958259377802075738652248341994119367142801571048661786251964773059488277620618409722578798883730088711403976890180708177815478891257741042614476835884238021411183221743581169866433521802340261303720317652620474949326550842736335916784899906261687962609845485326947683990447185382113490916003054390518047188179596639367654728937018720819133577776871040193837095250697709687900851101262349758207172428515561840165497875367970767922762807728029579983787452829553825385064805276718674996473286544390586304636784985952764113455141444671686299993897337543031470717756037801700019910604146102655610225121051245446136459211529235683311634733880422774912769012353808552546584056255426395186211477714428906752845764187472551314973185136325864590524296566845093160239078942480336591928859483109104795767795278220616552990202797762202045194848270411002297154280597330366816810468216443816859173881296049974530172749074315042502575197026644629049858420447926035098753138587131066119383098914838625788251723542313889504111182000649939025433157711761597252129804354373096195472133251447329959196722447910338528430246152055498866960797359378749391837725979951318679908721785931323668063814732577330011350200515001101486164066522609252315670819611832156952694459631247472323014665587857004846904059080835252145575526521067241490862882368490718564608309946030641335049136007944465530589839557666194572182098190813676156562254678143844143706681960869168925968193013382898580983965242448397350839036854306849277096155671050158970376902644937135488828745114570842442593013245733599302104247388634108707236593836161867318585492453606514229100957767707284675057031384211316276653918568118840056461842884641150428292416845010288106180951446773063322514149594288438534218653389598605998581539927783891753874164421391922673337371562597513107390618444060832807940746434169751618665009843664322350607186263385246482624113443867186978963590302954700142607704704760735412180658296301736702157404468640432360689563989694445839066463119631471206337463283365123455130383496207393734178055883206299166366850473755618097251208585443069830854543200227643325571414944304273878859356916105850862076118717373916023349076629649876428098803412831092648240777583955268312350443562342867581081416148528136023342584837626457809524185158783884274079596316128123387716811939264240231894958580638671550901119847352415820719068365070074174931718374348244607167980353092672490629054500814020530659316138873417516905737050798691423881614785713467019477706087403464433634362786114399112086534106942901796468258125081931231279340369518450781908922537533979798387916806238566400477303740372278149121709758890552227913376965245774530370139928567961661871739316156815178338999776403378995509926626906604552806007714675634579431078329874634600740938834644356839927784489708186490509805797524118965739224874983644547929660911591480876212673622521581677535447579134171542944750786551575506529154942627881937061329329169849788506808376736372346547689599853492169986638413208005893410675546912663533133438464816630048590214638308449444898042169894775529529943146166324337881206204410562771623392609428663103952556772536235651700271129262675146849434721853520181342229106371263617241722821289175230176895720027670861524348945644020519834232236968455995244142647530761501352218007368550543458690278734937176439270452549985535121974815971825615565527481638572284608242764236734759773750964070631826681904181253229458670981746688079267364598798453285579289421493350303625082053809615037370552880991072566001912485650466954456224796047811092339777175823736749202274168798933285542329270718019574781958857933847096441934147925802925758228164881843493015928784464501747572477227790333079470179631326659316974519075140476681214034915207587697593861463284751258363717444512949638530857747573733301718875766847368137655671919213467624283620873834819672963755673857847894579863765549334654889795513070435638533925072799024719992617573798914235755728220736166114921119466411697723970027611524267352236405152842347480110687097563085229369726388268399786291975226029105728993080734304601067236970706792711392038433676021823512978240012428426727585566158285658780652317670939041091417147376943467109510082749918026342287532638074181507342486302326842265663856008426790976374325111142420280030541212071986242760073583091615905874131837184015943762471251368396258257246152111862234432529247384120258259746374078317543126681476210386684305234654021778072006842477326008848096069220023582059613924553844956294023634727295296339674979029977197918851558910754481207540978542558498612896200674400488859507946856868101349424768702595599008130399492102915675158016499075474268403224608762063093113814980861132481075535391193808740789933644647204145749136442103539716207323794521664939413890872982892518835623372887826823654895475144833432765301012429532076000666269767184143896147480829896841534586262848467924797273836562239701775479028834160732321519542374177043533933133520965972364886003032397515609457159089314500408492697923002392718881184675178405098306399063393604014562074943829211480428177078483585362541769101535100677445854267845733309963156564049455894455539768007343268692713880357842518635892826897275823119401179445203636705199823045545083436718649433870460586240961312024356495841847599609271435303325089943699747924603108816243824033940324265485194971929626009846601545053530855446201474052032125912085325236083669385179774391279755403778404150405135321152918846127876924757012086633998674462863625502405115888249364807395378801541997884892345462496018249819427155093624534052591503208397045611664543006079871164366730004946443134044593195778218913842482150224304842264737527017546706117357674338796467850913645361564170447763225659117718960046735992742499224504797611517798068711602553095269612699307668376483235168633886800184551992499789639944129284123974851825225805351076552945163444402257065722273260130005203739522988399937925436331356443714763203155369137908134823496072733992734386566060123254537252436956161410974596816152304529685075145210723064145180634530318912121842628889461926639328226664408885584720463922821730416717143222411218313845242448484640733614340598238485722814592085587911822642050173882928058238370152218145719021075546206954826834438158732739761487264751203299280760200424341819914512173700700386415696174658640904186977091211300021042245757322881574329243144366855610241946261844818021491534574563183795938311748871823961888554687777495009559398222915486004749641738766139961811322630580344903202414239411369901341017199199519434048303528638769890823788361472104773450303794481987851999519393952377022992033474105111672810862822082937952293846354115131389774321060866182622249934196803712999915300647932884455717501430092743625729680213895363023996393520495241924910817854890226619236167587901419331612790880203726721312383131638910267916509545391792415381020379692165629264657805292404361839415644570816887381044163778913916433748080132000820553343365002463933363316474133989431153014985445250626872864583207405659939638361734208834921225472692608363879214866120029047041803047425449715089275467361138626810429064365976807660720272530682648112560158116765696172565683778455670017580508310588154208767751704184939152990561657168065469213913609120280705964279559844105269116830664734011997749074032518696317454480333358156609497499462696052944056473820831232001435067135310149215220362160121322547754529240641534684210492846783362347478456890810236301567982998359894936272221710389724000534493114164879622815461837422377195272788952596880502924968530915354253798862812734420538029487856140254106591186889100678489131965900749788340738467673492870072013856658789014710322389517181575910353813889558099990110851857930555722144442072406276176210037654085654740567909956624223972240184649813581069018046057267401926651656786999215449757711007835498384656588602407196533459321413484669679808667158540396694050963978809264498389329355870189706692781766282891781428570277098483779636857100957607606064230210865786297271311380462008091598399114426304679239610035921230274498723063678218667532707701611103565616686301990313611461646113823990151050843247118627905973938771188157985583275100350709873752718825040510616602407101014649616417158149436856435441417226943118608511501030283846410754034081619590267890155334841343784462443902714664388055483804281645703608423735047222934364856879236614367363123965761200062782019867333149705582768418727045196474375484280521588112279575755544039789718811453680447154928859030474346288257693468759574864183996730136491316823062972117576224120954221588486319344383473171807415434471647026788779897877408362938838369053289688578661115001618835559679365899211754312567647101830407503830607414596291918487317523088895925679100765388844615770964503049664511298622687834027425847548447429268610586941197205042332823338428480219126158084928509114237922197727791599819656130492910761746855105327563196748365732525405482721216729514679074731974665564157871504834589187723807203445156973927152512826020473516739170373722489223761611640304252215689505380691822727878535309087462525340784077003165848381428362219087427128739272403349620372859371444855453118417100712410581955736752876546433439008609905889587633003686570516123998636149413007735211729326989348080160814892484396352225724163421212551685611930655915702573746386960587728925280539626413613020543503027345505236186892037710531072851682786172384135992988201298160015055398518825811117765705555076365678295263419945342809789414291232742665337514926908973960809717062489118293556820203127648321457078640173074480027887256709514478283744479198886695445096714446311436984800186627011708728991433664213699543796814364300443585950302694535473299673702727772691249422052171355535420264131990195178097165008960961049110241284261692093365419222860917611056080332792902743702962830562764303612073587171355800243814421057570934182069487309601885466785217211545366698227179589494243739226368622847272447081057338408969357259490753470919928188856564119954904325616264218536237398088444901281397714999062913981815365813903017743481249236856579760457171700739408407829971766948101554828838715448194562506274465399829282934279145464086984722350092895879086317195754372231119816783305615514527101458532618127762950009252367095624852900456051889513931746711518824718570405509458609887397752345540922201759681527931495790490664462187878863632769971662884182969861210471926609798944513577235553441530333907639021783676402414299761607696593321578638331261238013194080369076921001318442158749794459023757562258895195100921491898241374383707385342245199688208767865368690723557842262570191065352146174129013045550550964551833735620565341405024316481637636679583770465365149284375388394267480522931048547300452842659248741608351062959146476345894556701853834283816642069426599791842784032590574297553911620395443034546691592481790811833649268002838626161821131121068109722320699899403186839911276466359294765921778584901026618562232370127441599329736861201651872504400133209932050242108972185632777871176199623505991995924554741082569173517308876691793406073907277386131777754962209311989054564008129049866471570719577838146547584395699239659610180992630985674011057901150279056356572710412765054789720540548558505770441965259157077095364805153831728853840756320090193510519494346828235570496994443783157557997922897741398951081713890106747867150671797196796342516542147179533358636954475167678372924549314222501177570821158736099788863131884053046355876486672816478912100489753030949616852854698662200809693436121007675881204884819104995730086196698889753287523529259472205877935742932533340546162847520113227463863750502543113241335517655489600674040081114306297949146521783661416208832780962784500993537361229681440038500273509837362856935136973478787067647724672724048472658376081577436304726174358366688792390039057389630748412406471951981506206340360810967572951438919219712214696875400810794466605600087732595304739116035682973590164989186977811958376178496628989022766785100917362391032890679543097350777758026358813029230838084530434951868461275577988984135824697005312553926639011898348873894501339286246356395949386903409039404445479509743517261727092735591700475211664205625919858126335946759297863811569487540763880595089124743067039679190924781383373860346935203452397266879686888420283195461350326467714182893598867500515740921152633675180523090598384680470883797638205483994669503963885557315992728536224484247161748963508469569426820119499679822813548081684968981373205389825288334924712283610704597948024890522780055034200278492117836359474977791712706430026090152491818988747186592158911495035880009997246689542736285938158595980257920562093069948498891815804018104199406648028910997960691522910205036345584757747651055679834551393154833929585206914763020501592198690054155706773811088177964696633855537371516317957687936767661154691478001815498782497800231873694589397472627155111355996011754845217095603656303122242713826512681376258238410704460607628351136336748321058553446796681372547063564681299324258494315211175116414718399113513506250870853531355253214371582677326039592866529930486336154867392444174173841360659649447631082461124485399091136323066068887578609037447942763727979131503937193682136095064616260948725061964915628408688305603486063021183941767706653233765390635320963104108321154735356198985877023009308349139757129033151804144669532266236368423273212379845640972964438402745071545558439347716434103605334733397165051593226379105010577199226508191612138894883683051783165017033576499902096009435997337993514190219193208234476339145127208986423009109400105085452408957899753260864402468470284210960517199201816534627850077395824625265972042971471691887229948819938442221935534305003797526742837429078872856240624023758433560850158049353438237422791041302563461174191398764272360075092471444797855055728891019100709370153282381491656083819235475297116407414552306000619209790745471779898564566350593676805610219081807967630335592675005279855961084603428741509904295452825621072406341877014427226507684450087601367233381276030671133720884515625986270272774568054306399912871882887463769513934987045377057338012984438811590203228127076136001423864382836448353783809455153456859997251936230717325446028104597954856329525646349194157584043744626787756880105846944264687161895875332351131538248156039877617003796949194817043370315388311171730149203113153014996649188555337053682009388645812095094497129051524791869003205712449610361544916453794716716809719643575479694251795766016920889163678450461596025673449917935414327253838624184579773710028602202180016531199969226546566018280916718378471237769417100947576006545468086352101411701276623057912700204448423956221750295803282586623612275649399667325720793044069345908729415072924129675175225123515472034581160746825128599003439744163935190634081211488105927174967044124645303445581117766608251798349815699447532907118253696163660892465733417617260744895648115831889991946058730569460682302053721927963061064031166978187781091720058635017295091956939744660541652437351303556099132216802125125999785990547477525592149085527141768984987060073636530268057227230566146461783522697942342747143654360030345145528980096195742847617673346303345399443965448629591261666608020106909003724173546196479704845656841788520434884902869089204014433288624580651589187975846464431259545494218489658336575686776398138872286774931742593278359153277484271114719838557573707310722982740940977864047835517677782051755520003885432526047218466524487146393007669564008182679310778128995624152620331136273479121314723085683074836542951337234508421320935954986783676690839431997952430503490617367545275510297157386508512692054067532841438794655284734383690785653210304080551199470513807849883804208331506671980364111106991032705574898249806949740581791682518373384781506651045540850993126741321701684530931269117443260222972613646879696697301502890778084512031489539491685824194092254524913456241997299754570953909706205408797940110076328440003340062872494874856330905972623387696884392429641768329235947358571021289516793445155152990772357602029935080099108667445509533792441971516264354470786806381248722394733055716868421577869773616704207709167389271718457060949749891592945018435078430670802459316615124618311151773063856161831522773018363570135185632557144608633514079726325496713627241156183337600860685985538921826138817979063743640944548523678116886796713908838128917934486556687014674540416430691119717067779070004926486941498972577061032605417521139579860243835236599757929731101446320495009551194926234537278142260423985377766520983002164340483841557356774558536194426034648209089774114781832057657702555543872495088694538029087179166218703362506428864538588404402685361493509224156324026061617472989104768084214199630858080781314687594417057372430175270781202351151315689807440254122097992716842516665543126765345296098916186625535713058519775893766614114601557872951372697193139639749905451351332356139247550121768288676557755612212015397282025554004132803562862473456718647907579101548396813490248226377437602838818331482471097301029612139319374803499075235398088589462872856767322852937335249034317464682342127362704649882750410130052067841509343752197726120205502921566225130287121716403639351182978025930842079902548968149971543233097101107711670032181951401153307181770643502668714729403864695384477862361623818978480438802052884097213028426849232270432725076809100456980383996882969887153151223661284988109646347898855294343189023554741606839591006170630391225740974465333985868926992798449739384743270076327246416656314278238243094452789047625495517880576440048584078721367251671510774463095871551932706987049407662187765836433497837755181453872932054934567076816368238596163882762968763090663206980570571384554599214886146356608210837981739597201959664962370476117558297808426958449503926209361608760368927671455962661729696942513007683370840576749553815422779853865191917415018875434632273418306094369660741455581762481628933250748794265569599193383970010939946659671891066218818495307931013954907090693009320548931585488702350659965522546563836204572075002947871309903278797433954354531982822701993884891190120116451394353015601772473787740997354235536056651396443300284586273223988962871919357337153467416465276492370233237030385713151791808083235337875824790519894935832262330898535451720623489662192301840518166964869281572264750438338908830499361981580556748741440407028043107660057489107670134875068329834425266344999405668082569481813377034271823463971960939320408610776143050763440849178982721271436355875073049470191599417399713451690038090680079637981860332155646636633379643458257680398642554783338713695217080337642767649815252989429096086654337916171476122391289396394791920801680852101210799647969440429104372278774468098875715928369367427881030903984434865240544090640923534856930852775897804683846631109292724062296422671562155433786869801688180327616173897623660594808520248504735270189674872833402993979714983981146168571030354529556835360704505170022533823109305141248521903739858852668499135906842979221872540648213436806766945189072227951515628742390327419454164491634301633802507038266852521882867840975947686313496554387686325026168735472529492781255639062792621565340196156905592610143067987819027167500364487082655137899038963493214747158861191198799197191119284743762622604657704521656141754178505426088068863554816881058995311250536160304638192772761163560038063543207709582160748775458571564001387235130751739494491424891673861110909755932394614299526335866388857244731446837593256424556041704606491309080739612890131335392597737463123663580510101017034607900395992568692918525963594005045790808643084340127630049224171265066329365874056619769286564322614004879175191368596719498944375847164521770837114959787149057338710973691514096094846966712219266150315999501761782056331846028438659263136769332636413585307080927937949097915350121437068915873636999431850133770722161521626481483086468094732450247876419561725312417188912278826665501661312123090127372392591850921962839893064319202872825032087099029575771415426618464035553732726330663332532082803852958082154595965640958642065717161532579821466821187303765742571068169221929760120796133098534451885746149369958032308801594761985897951684308237360769907348048417455179439219561349230464516848524841601676892114802349903244687056689131514157230141412988792821597164375803871306567374162449607303702343576498946161015419951066098706991697373931651456258925701736259540078607395590701189803147869467421609400881920080503152829114925666296920460219153426827740327830227211092387982608078081110275688494769504198993750405942665732181559701924009000552963147918685773255490132546743155763277245085507586146996379108467691480765575051112630027017200334334625629740991384486025867348743254623633169751989028714860069636797736801746795713596049994534877908998425764010470050193609680648386247927981143635226349583159083363065084899179149345511412404264620009619921518755182850451245572896660205390812574592514636256928222305286927474891631302057480911707262835208088110057965971150569677260952452559752082403566218092637201300808478902375708131707262203093147540980171377332579619120212870306411716978638988560953187962687001274778650637879902881511587069914290202340096397502535560573698152494539917548088819791831610386393094442688133603701256821601300775439518778654506865480048265724816136872507955096437014587606509972617030749831274123823271818589432032559092390499054884677631786070011950789526815032245258778595535073981211806165563692037724332521445235740915733226095922476077904113658810491888965389619168730111599585068463107798357421702662152301199752831190374598137178478201398725723864241849230381672653042074508055879641793548950723705891912193632805914884143368376142830135250536063445824849406073296809412191480494348772916513602973943947564734534967546417169449264426629293693942130596141711096582079049004804497904299084919595971305530617163134186639554516096470720765205750789045485846849103097089904585841188052899658271422643029049020705207756843462068793343425851640909263319836389011381570051381690214658058612263748868262911841872071860154663711929595598540058588137231498003329888794949386714379701390855182811776906247559210099699993087350914074730727299495842017563611988614239771563098874218613838584010799624945102609901633387028809205704794745232729971020956258326207561563273632110422807868614503378664928966210146784216316137690248693803068974512194417688074188414771298286573941053010156157714338364672512980602578330523810764710503091875010542828054986732717123135823028711354135625400891203859523395480199079897781486642638277939298198212342433622520964622912005503135710814846568814705111088706233226726548536037010174821098339396102911733879796356956038056379293782163991128135855669907630895465322624234536456793792244706486286721611603411324104587454218592401837946800675162844528389154022344150710524755205587093526604601983500128584778345547330344921364688871952558392618946976431315217803912466261286142868185273373273488394104076995478231610718435662228169914447868744442264285899988122074823430936674523758005239780787354580358751990546233408927840833452016389037958562970960044338917646637730867604041217568808022581767303056330789771136869956418464097287329449996160971036129693908481922119164213597641293225844892206717638708463622764939034048250981389052108847547752595072357658193693161435530185273982132167176212501730375987095444175433656301749842915218863790560448316321370314035517537092161931816234231775478909187148443523523209618638431232753250741286894853741025359811227135355870293519207356672465373182586390723098838457285366044479487555995075766321557207263983789939191998960872864397605358228955833794148814057217587359171581040955181789327633483013365667953265874930766270618950346796269971765928727651340682227751094447555827129678410711152329894384630889505072511506314904436654333291766065520043702359377152954577407502820552748413962561480839113806082066434688465752157120253208588644159383423182845283114810796032838632042401047740890427386885287728025713346891496505262051924611708997551350506529877660685500952979669888434896659725966367829623863966421378586875409551462958683033619942011628540194896819160276743838554965994818860858223424141043344410132190120731007773492192239579698076621494082101299425007084902967329929422754753854060934668628934257695416805432277448494045290604089793987216798896423772429568436766403709469043755733238708262633080847631230550144180530395337893057249073040774732052343078844133278567113358475951191140739016427112124519742049587987687758171108098766185527609779822499729165674286194773441142882003716490880103846788780455975390754145912797208667344170466715406774793096766602506153666062279760015650687455271431906527507227301350388625159666709386233385089757624794910977772825532279349913114533021019082911264130387751072925750722686035748994582081377680352886220938864449321094583259333472076729181863175582211847026777297927783250769952117509087227956849479168500766345481464095228128395513517292019803011207581352788690792834471326057080672657817660689282513801498645586030363966248667027129961936481723299310101474057190511573976076686425574011593859459380773718707421632673652323715008893634353744655752271436186116140052066676201071260284769635759065846403021604847966947819948334658123902271131929382986246687984043742285752227094954697111071717904646182287144351833255115659235546107251727179564138490719852751660356242941374687568488594419606701407654745982453303940013049883045130646729746984396219737353165072580854326345634819939390756819062767696262859843830183023590450650476288316689861536320319080261370042920337099286078629149783105368864249683039254845984924421735564545980117577634165983669193185687472431108228555220501095421679732792191098890732394146549679534878087643489758807514646564424159730701315255187694625499147574696149399326127719966986717709726019817752624850157555489962161543928973364912795135750945643464683952483703952342251574174402704337902527010179876907088314159394810822877632982170435940434107238168763861512507007909039729921234934201602674515797214007690655390102340569145965415754966851880741707484431321607403149210018233487248162028379455853983240916052409826991348491627272778005759885792513374288777966441484548493064418612611768139009627118483128174629063854914231093121654352655075158398712330496149356813243433994263444624889641337193144810153150314997145781694298873696265088477792342768315671431333446418430339040020802718249542997415845876916012975108005428529323473625497578916663631545302267929403959367966889104224529098150722317049308278051502153687960853745117657462894607801554774805449003099084775589210763207846244935955084451098676858501192305360572126221689179716281019713612705261362875485729629831358851446231293284414381033643717948103876619229395950907424817321027527374205804626761342027470027088870343266923721997741895448381366920566610096185385552555833065981750733593410192330388478061342243563244602161691317040753792292575128212625665038619355272805526619685959697989374558799491333272355946563862456302256347881151784789756979946441879465547505294859649486695415429292758479116931536279346658512052408061724424893751933013460997069110751963484709468049814152086128127936969758060942302794421705541235824036083661937258650058585613115367687632770764229813562651240130261235468659225687371570081622512349265470991246888559338865198836021860756017658843297281262375730256354163334440626107039523663883490788942927791747190475635951132701653731143719013333329487338779867066393614444716352707036619151861683619538466215199183841052694354882843649587303986273310827234074418446271993689160213116637881102751179296555247328754777680451297426420505764014383895545695918298000980220609382376154269088087321412199226554956154507239014338072188462390722363494244612492459649609323632907493638697781361683300269770241891271704775706263838423079685325843743048979105579309201843832922310451502520592086247958362282238836421946534650859649440798631328421589068571553147504730437359835093006162778429026632836528905556649282081950779667279453793286990331941471705750671730406795571620220825672720053509241886497565574652854512986276524263067728865567164627238110151254937937821524794773935316301428581922713023232800929022555909857112357130986630641500330729585846533547175672522018665668798587965216140394028977642298002119822090495942257319533343067645192247187475882077479287147771793673448221612776049182956662164259272687333452913074597803607075816281882876956879173960598338467692594964636969961503391288006558599533259864311403615734050449415085630307657493709734547826324783903797801373528956581511747767357286806538961736596334306763478594551563016288862188320581605148345620498412326640784370900548833674757990467422767941019528254387615646315935871572395734560890411763036568798901893515192285743688566600275716296187083253621048443178874486283679456112985793755333032289586585090928757328381703280699603626705758994603315768613202239301007220067485569569365747545323368653101021022287166121366674840760709936399760595575018181216488836823385276199888592342405390813861113873130779348261184581322929607095773047166036799742424906296041577280785880092491340262398909760519472484939357324056645045743188088448219126964544311961592136394078936758628470930047755986332411283814207431782746464906213936514480719621033508079169117588984490364215586274811816199900561907161710137675264026815757471244396475198563214925025424210818484513007344610833566097654994430342403788806039374525506514644116451531392976373613654645472203163334833270437673154142713188924432322156938389432433964954150821587045794955009888920622148927081131832556845598369305066095406121307810692326429056982341166994269267126282020931473022055010908655762007202238662985956138916600589326992537171732745859628258081736461084399712659219850022028644985089836550359640360490479747950048835034069857790993896788826416477554579105060836565901245159758352081270658222493798246164909974312867179024155996591637479448400257259476891654871058442589289347110865451794914622143713901522159330387314183226592904803158047423966827013368284181096855136836028158482571418720812497161778094361594471151961626339723869872373952251946809224363399042918764251128706195530549606807858291685969935606499350980185896969897420496982516172221533352915251136236540280860602829042198136931861032524898150384176521688692589534929975897197861209401429988740749714955007783286884218260048396676521142612386938688637250369922149617849446077689694920262899944822482869246795089604553074868014022840743326107150270242682463488811299008549733586799305185895323450051525012129044436770234184341201907023484754967015639203207647664352026182141374351129495533800379054828747234770734719702518715257983648935103112516319347435933742210216348822814582984835146617345679671008619104390982145673620775220055696860551886172162752312035033045610906050714711592635423673597875394248024192695808201802904885318292760242154286570551483720235712551421260131617297993474233949752251187477136243721672302306586602853806939993055117478442351247737049016074175824239994498175914291490572327726028553355310057455117531851612821960378177845224108489642313366777107023907944843019932229205609247185032278269085567206082055270591561469772656689573065924795177490363007724003884541844813643027412766704784770431901531279403796587672345461357975531729788235379711384823869877900500141989288880950382494795183517256598116968013984674635567496866496073274060992593719733404042523137965906503623369926496714073738050802000696564708075147234832795332171355367605161904370820847056224763262539915484585266698582959990503059074363988133321187560683861620994144715566223039820074346640074934707899511665720556253848233640924587415730213128925893464631003483508082637752107552718655228585104305005584334693355045787298949548373844885023402966052424032260061188505020052472391114277017717395250959042590238513840330223938431956868369724466578319546043797112037933758008419975860949576202451818619691951640347333750906259275074621542885999106980003101606518170008450905795620035532714185214952008104139780613555615245323234753604619180189108383470065554696912284749912310281087040330104980143445934408802742165075489413472211178386934940768341604603873826475666228398166527788794203147879205338439323385921961251580810664025661310009566966090856069703931369476702236648562002421946688282871177266624805091145189732358967440386291635753635358150339835057038230842665645747010175709403267674492253992467403558823711630394347824992325080699864862209785924562143948322373452179122403262767191250258722086149815314452074165765243065678718038591631141740358057057388054223466926990109112347303062366951048031463675843545146330547905649677609272797353461643363961691204758396553169492315692404663215846532207445301027435962103176515176553647172509799210387417179391758456096310690903799501854908697964172422464496454792168035738410535166641040076507536883567330226649497927408062235823578216775355614302255835371786711051860956423506274589022652437621900834930066111169449635051517229493178651637164707908613973091790975984834583206647015154078569062272989032062547573146606630998588663741753637314291657903832009973162067103046317044690147327119915756510800205188126567683835945827035249210623887824541379936207343525887722467759272611936433455469143124520463428154192579069136723681502863237263484584506826070334386354760231843633561374852860180452689740037079642757419133847701246899357855823061954386376619414345573676047206578514671052979977488465672391334399341277344596608178903244886796595150246544657914886623572196145933447495612126695995972961999282834190005734481461430234712666440014597295926873704992374278914343111701675321910407908060783813258471148952059111123135879685452504348689390777058290485222215588229754305475365191617919365664396718963767011729696003319991252231729437887312736059898390565757539979116078156899989355665565563230558428299850706189834668643494547114136789379832767464676881248347380555887184693229577002531424612574991556281857578086589637033996665142295288835858885495675658330638664283211535895110948208417265551115461786113774166361503708955127450303677665133914930777394510882513641043364610627711143260874390886870622620285908631067086008529927030200614403115283905935022393027869476991867176632868345061001779579143442072276492352759516726868238650166086795979936251906658835627369610561547913380032134840775132574663785872652563529840964263345476042392933139129755894228086153237131086071719169586442512993373526637164676939931195338170442110510092718600135854999465248923120782012481313492464753835528027016040908440579428307283965966521520056443030270447858961004235026804723488332411222548168934418170445231272644728423602355340616563330228178589870190237258927928802264811368659016296917382061876993994555988374856855179572813858149818527550449053582461003859485724990953610250525829248198852179104305431987696434981952044139623071459754616284740637076283067992353620601391435162944592254394357782631451580737978824293106447997354517825406750220489997598423811031443371382312714359884534683681162353880230077439773881762970097010355199578499640166832232566013805206645527931076268218479026079539968195099261494673617045920516421734431831635135977101242690449351411136648010525480259984495642452498124329689461097279561874473317247886181369789819337740410929153311164634458554768217890237513405160074053096024225531854586779589279713167751109307410704992870155768713815726780081322517992873479944832945177021048265973263062883798157333312398418598953195854490192899447249672669338042045030337399170181967081133530091260936845238219165833252267610096101031376880573277787983505372356074612632741004085267096116901717301345812511862172961787740917794241061524699919576981169099000460418562227977425907687244276984292002444311279357450057557270332458884362348755052087409988973753265848444332570707221049130044542745695394124665906340376907781073267717080535010329048384059543439858731811294897576739861745611407518067977442626028837678345104246747549980453794537673657312114363473131867632997044428160318464707790760932837704614082908316319664152967357102884154960452285162644231975765703944799487626403322310135616770023098742320880969133113660778456245153730420508278162818769571943652206381994473199777319750757050827747942564707048138672644889206567490791929461194247245775740465050998621921582137686436979836581352210680121091301101667606487751401695902094093409114572129827088762437908052297026183057968607599899011250633316933167892135606687932816245130618026784634423177339436443156446020037969744399825391306412129460633993330640633466142337185011406100405563103961497701906888214115181056797674415029150847362391010441599370356888764933208209931861900048307186172746908005360910207708465132537297765397096953611240161998457931310139181888816815034241062240509219359775185589174375293980776598614586900127676661777637379271686270109720878583984118797177513508665555155853826041839574589474016571885895836793134478756191029265383525066041874076545809302787211719696059085390533523803845582169044351678699654378140652825041370324391058857918010112562641893924323047710147625510332692415735836448469147856831589356848641318002837631786857866595291161348269561795706822012866328111789261940712630260237543661644737288637145737938289280803724714686750582311775268564656319854111738857337505203138922064189885481565919863704587779674999887423888115722394503530104145485433417027551111661456823735410469413699986170720780736827773025295046694844594659273206832874979058735172888272786371621651934083299482223545059567342975988068014606830461003147181574169816531402115363214553637611462199721506869707337453953158579430277914527936797479318656532957943632638541652459209226785551092132278060776568222639683066586375279169979272643810876750447262907402327623053429244016240574134047351025002915872379882711029078697673648884608576046870142075386358150881251509909462802326613586102538073887447661173510602956891474715049183623785009414355741721745296881550781068669932053414193866134322735643608850060775667920153209786941072691255058758728899933083620766335088994666346895764498211217003289762521188069772497301365708632440189123395278595760301923973046381528310731052720685100431606281046963902465159340749422655097029846460090566885571373322415465191594827558191875248004819480342147031383071863637121756023450488751694727512506255579789746509299848530463236192901934612839733718032304036209761814263900842934997106626216598351241430988194483651227999045514614260683515667602519218203387927628118361329713299800841144795695111717572299869915547991547504168729426010482545852263812892490001490106690241053170087917574798936777793510628972753545661736609088681963316974379967559061756350672861608807737331953750407111729415125149049094142626631783521207657369439497941751580628186429480748861538950808024045836870791169005262353161273217621127420065551648018099907612775914106165579828681058958357120864685788355429334898870505443174169104870494193712577223068931124240035330211507940120060029870528020803839514150436873754932796264363226218155290118718043514827905197659979968254638673949108456893378223670781297481779195729379286979507478104745028904336032613801770526193805065609044358935883184172991377308429413729918054888578038357977163512852781210364297218647615224910942482252807245383701139743491375574364077890170840566466583043764575773071232502690823260861219148106737253478221987092183552547337669750954458904753294278146493811134353769015841529619710340900468827085835052713596385044127803601530377921235704763292254310177252652660969123652272067638695332850146013655925266461575050186070146329943358336845019540888978444991340425234341862606600511289999134126992243228202086569399022594162278133765880672176442417049201843426429336242828301681428098253835034029237097483228580745201418294347299793139784852427312802415387557095758084508004379386308252908978146467230902298102112162464744442541688351105236844009726209917839745905363452342851007411523896399460145387169725473133072545519532567002975165988033161845023414098460376467424376889749523018519271511731958977134555207967095350394702075190654597207782381696756898281722581674331669749171050090760539374587986623587685610287976462555283532951673802207433397554976931998087946570162241927719613403890905543184518691075729082291542316727452160476281704223966123378172511207055117358702371798738829757083291107941519477959467199259653002730406662223093110643295092430504600493995465919291725025037774345482807603494410742500459480708461011195419231872312185736329301609835430943320005587019120244789606346007432001145097479199318796918643556869878945767986245508817340808227744346967143067230956630350070544768824918253190395604379449579447519264777056630335474350612895540113259305235055765922077949631811995347801356533161968350758282770030495816873094090509376367907545999509199725923600074597752162033218679820956452792359013820218706360877542544364732204975970366595335564452109986103641597743671537860705139030157384071716691228546124937917190507892483362955898608117980579577289591727414348514512645672458110212285673690538749599472203997911183516097177068219196291026806102008344247044127451750159954120396703198061857647256286645131612615819044029777193786311300861828225289384297211585863692885784115705426763065345043014780291847347214907207655173481692067171598548393935602369561687430192272960764689706336032044349548912463095852608567733042652634761049747514404044524336123087256263550320328694190602061670586234271581498884621193290955894259917398356636890803532151336505739278281998098878587545442536095806402842274470786315359668795134247088698586259289959267738586887571616664569951983146646510280797759208558674441039271967842533436847780162648381729990891208039822818046218743263082420067544135809180954398851127115538818655605034741907035229697113938261377080327116186481669759826667704374217779742896408431173248565588661580831654135720574500026983562885912888917123081300973329829068572798195738789829252971575917036791021461959624963225455494059777446781260888344291526527408319644628790669541404246815743239755682859141027760898329604409633901674528722166444429182737425629338311746675769489399302290139276873629036191021546785273244888286542183816852390931480247177512701168278441924851189040173628998087627111534560805114820962082690162804852845512415849692197377213095386181258132993680897104073560623721739295782578638189024905503055535483516419740893233865406084196971549355920240992488361922276339155819110831632077788849898055745059448739910588366789204098736379399312904078809489895024638958449440146169567609116889080231830078116124811576152727306815634163134743636410734097078529399719458115640565270739974988965188423526002586525527221592156902126136840149913723330490187822402175356130873948774998655966008778301573230501893077023109533192448433722025229772350011089541490509533642887634654490698746747672446881242413324087816132902692010563777420605880541081686039148006697881637891854628144095619116779260009224045862588871898532402052323144968202723817672035817298914199952438590651858435048587295130724141817725491490532799964933255671706988116209073336961618505692781472457086869563533761498058618115522511765489428805733393279750099494214005986336096233502491577485210395369343517069385610791981118113490979618306283173706634208900507911153727246731132660678789375739123673780687301282240359848821397204823859805669438178413524026232253656865344452612130298147152825121184801204859810024900132710474240947683290419015085446972047608380038072031573972868645064162328744043231565921243890002594826218082890148815707613969721662109194902672847073401853400729275852427785710593025876507058725435756655953167534806154492998411547103308474995824714112428639481729115115845332873264712900177402391552624892921066353570659072674330497636774194660532009695835358602128074585263667451130273545709923357830120002151043000913402192383560048553540327976915488665194203823585944973479293577142478503418174204550284798372952452923718019103063630290118584999053621646862266843933224967189557223506338217471658552188467644950380895449643243249380380637263021810429274436284830798541380618394660072886560212716226900649645533723462723688279646976557309433664098848275892535074877165352204935655800451045719618194691514328932963325499765919331171858418475651544857059099137833255672835110851175106160743432674105155392681886301131257308453117437098453455163031245288140808441166539728094970670693936857035320962688179612748091512423163705989224681964512830528512389737544286754293002173918620057444199854490883328955012081614519118996879700546861346271525553371245781162223964435763030238818067752531615942942317651122317575335584251237599814951123338634263787295425134893798140027118798475083935602116265103738011608501957784904957754200074436853724386756060675866589424159226160954803070304037184719651881841683454833997866298022178270139225025497125163990051669548819784575863138763644579997425989552378685045444110734653740221253520420541699575272456727577855307135233965326128526043388106523133288371779798998444532721145810670416739636554078036764467796080390100695950741475637334360466784725420024223314194150412220668650171707174803079873786513534728267799385745105627852385371964057139357105453900058791954937284814971850039303774216659101234620533039356170600636909463041227284091308482951465491374214356193981693468583093609637085404162872364777916612656935488593606889494155604317408460769288897456080148417335015285485347789049035462102286208530640058434142706978668450413701093430392338220455469788942160887593853381716541710637088280144983138632000943249447398663956984139786462598409183586285834269044458100654866347674253871650164982053121944775072938503886706120464437504322850444561967742080876066255084138255438457631479684219905009102288160152906737657952066118876984325072423819477350599755507956002728511039461283502029041321995589192890147861697964053216485436642533408619163727707874805572265276110913639260254154402087689038510952368953835571251664913794671090025850405810560915525231335887684386512829737706442958743571193110987665604721080458748925330674844178537809438431005502279616823652764511877205736110462374653005448036090384332539911824104543005441149143653322189288155093494693871052884530453357017269730572828530661292225127641046981948039508321445361030407317944832732669245663285781944579135697126254365078265877203051319179277759132947000403805844813829428499916361610873658623808053135261494813104083424589589166226622549989337665643641199452259957917553049666730746148771821351717517008525945922763496233170082744656405654685212848566804480488208778271009490315481488734381846842030814182059697008459090751339703255076737324879243602023745986906237012541662618000875447846159059345397410394085019994563094227148431997858890523225274956513272020895848181862632874882850392857707456345912523082864105535303019674268624949450876316706446149049246564182490577386318296506121353734068607130194420904050941451195038630441631983662256350375685036563437907940754521198765814932103814734362464351376376004750874427630500575319795853385815768100966131699177087363923988483869495869477156650090701197664949861077456488270138838570735606567984183043978428726040108945826585925180484969647763813476879782253715544278056793759916813830310210470726372504153778407460470911969478407007814031560868868462600616979196981340965051399671506386950034968678507247784020283027402507989008369598966494945477799763083985416411179199511695311733543345967687455117774860077045438379948340617108014866880340585264134742012304205149474493632351679118368929799688441252746760071297525218011403059795072295223015605201871754245745826816604640665408153152187639841966253288923846781500406533008429819402845807247939926471851334175466182286179279849275100088340551467201298912709268095551263374102895349165180867609436552467997781747322135875736211284585575885395844785622191296524501611593875831299321909053425865775972728098936553957593722734137426676110401848412775316447373315208843792385198841369670142401477318823543836230072350421739671223107008899516671580589947607518995417054842311674602973304241272265139205631183553797955428895900528279367836603087829827841494496451993433107081654412828165523075353315597622452855677402312800403983327138684318290765036988892995669941682271200523914922888122092533627388355897445698316600128514467964966898002238604031208119333468410535442863578607920439607026575767700656161977186042998621441479863566317257848301556165068692177329826620946463942362982609518427996702237447263282146285199140548755482080006991834878257067228631995616723807382980282519892120966996396042205627435818451160304938881205263786046679699298696936929702782224899816121373078084670060408834827924480852296637561444090623458102684579310972911300125707116166387502768782917737649127685622462920275618284610246902420200114588510623542949264070560652913730129607541071655162866425152768235223682923466516821709402771719580024491693709914871128240952377197664061318748017536986165682971658020189148217166247407760426323626469749809088961751595255487819420083142395469621152478890573232057407840066947408895131701206307068324904431262782509606098703349848231255098171368188862452838262028691881511786585853450366212443734770119130818675068660939150531032840625862692908725473081871377814610683023090882208042764428219709537767360263315206231390543422368377805991974796736426413236586727024141773815046900589382448505368775416174364335997396649959328533250884830504628292330619186760902757700589690644804915048326826173253037559802228398046408518611499981688300763892770684158352268921102263607335559894711030537832501040777978389664880422543538948903383000970265260900953348289179404116351571406659066547658622329113636247656566168648385249873341957679200582021774104126554563515314449284835585912244341438469905379135290811990743935969357643611903574073621771038127676371512460322356953505632757126048139257960550259885690896800351104379779475754414658389441827709759792993244658726002192802708562969406551113603113025613792418117918581821239044871794066795503670119044636009836175128928651417150900962748179828523433183579096903618569491258018208865710505307925665991130025960681576435131494840757977994746372086756083917408444174767313402904599159172313456459075964313301148091027322530751665725983759914804413719998785417029362522261601138954947975881978330496667836156714452399897823780233803712780783790204554188550606330199420303434201990680836305320708933963068675873863851261006510814723927407794227074179996676764500789651469934852098062953040783280102932732379321368417699979007598372278098058063563348047432605720648181357775527244446780189029893731634942420768952926118125176497155037439389048712838202738419072248851295261842581503821038164760257630851818582634272139305077442917326971190729223835066052475126235462581473942492046134027349968594859767132702223365233504007490660347302674322276001842506777989942583870433070924736462881352292981705346298902187120974104175907350465031074127612049744646212043287602498872606593983758800681547870161628531889920201547579063069525288511617391134016782093610472296219826563153727295334836517960680727442739290862426208464567814309289594618207608585934650312585067836329838966004287534980303913672395057481221528678309889421803777532211813521850560107400883694036893766964086132679317479782565212078093032064090553384294516193047250845894269736246407473209984697763869059156959404867321993203206467509747966200055437262579693177695261043507626846941417111954929892079758465621621641267931993577016006877743198468325402642392288875980772624699835386657990011380716135994776844999061508233688998239826910906914556314608956751836743079836799130072821458212030628503636068085898249015033174710509777394301743220513110539791487416380969737965139880813397281721372591814495387781942607065574279844889436800052212137202012421462247099710210608513745391917485412768134598238095941972708761167138831977909054975943021108630487423340446376627623184792438912413602112220744936300894212816819460286318311216332563027052054603031175580277048547871288982410601488255046823817170446253792197306470735546000185134132663230778012923914938800907654973030433299163657509466287974358228664408138148878349188439246859901889737382024801073008551342481862774786338953209748026624347289283766343350307994208746662192325184029433305933451310913077206977212234916945700207154207494032983608454430944951823546609662413166267514643762381937553808315587534093385499024543630484643475408278546169122658593619500242841197317481371449812505643915452705628919216959231157667175006215825023550567886910364349141624985141243782915414686323006937390746767387571448675508332617541194546290368082402992449909751542518486506478429504998003226116209544364821203470239663444886689687519072685437994221417863890480979367358815363709680285969447702733889894446752168713301847330750975831492232492301229679561200843570653759577055152081289334355402244703085866103707756665213228413434169834690177064763920940645986136479025618646580030946540340645500090142284478414582265219487713905256431531711711828335868462224905495543860162076899650582446272556909872508231016725330206053924673208529399532709958586759119522529730877042333260634283107368530901181528593471526218276835990638654647908221161471355687729847200145243709878659503552843534949207847563022527180858384561708402474686315336529725111549202501773036373090579777245762386351853882093403393855396836699965877442306572923372434267827008475193244822510679594346926157106476855060703411847956493087812207454889244835201373001667236690206635814943418206570047214891378726581295118615959935948338994254302978445119553076280111095851991135823394291801685535195713115638377180759673938288344001398057332006191744022956529011689348449741466068697602218224349442017737559794730740280597044134615925273982381533144822888531311633852329189943716694330326190467529392422485121383012500154914207351949098064787642783505294691500089330729358542837590392065511718216665906613399939650433772337297183434460758563912073871615866193002305550893185223782729510659346985865718479158578975956346893503457570295901081489393248653176091476733402399501414437212151124624351914110839632417416869260359027880799234859189083315020353467815676613437428722032954709823496750630210391877270065597335088919522664466452247849503125616225114677741367886222531410064988086099259266955571682313343440982990546162818598367002946910751444007772487298322792142481144365557627862886101539222985011598220973710433112631118053593975140665325596546346966575013967963576126225745668779198603138855570773908767805279858127194108726654139652329632566288116630619051174102596121607188103322666850876581374914826201754509807033928504383138924483277956088176065517495382456331937783031510845704352453706156458975187139748592419054024915170517131955326309307507605544720563407626918033829544989929310049042075562787370844765556925101848551531627284759510012646239436186528021556709858446491777312827854419438032177412484274225116142672165609588835209089489164055301870871451442737801547211844827291452180697082308028947036706092849296129512243561039884591426957331190281789348876054672694405382115661547654234105441222128439908550339685632417784150364534438566372884127387764770214615332006196662009550273182048969245559227716623287692499516607907489864890062002246677847512285769492513983447609534534619817334256867317413478588712211104377382636209189108955554464436258092045815849174815085992439742411149640388258566095817188332529563126213181234374174398776385818581718961924524700685891080923546827610877474986795402880422072315831946352205486410136462606941370257951175672345029609976756258904080238798387424634101692905257784196764013092245229321410009473127730815640750523635686555977465603973624539132847427601317191188074861647231745015858303203612977079936121468603983558329291469849574414702817703487175161611594123599942490688103646420967056224676015077681373644348840897322917289459513454884435941482992455004634849702458910401884714374614636039191602265481356045138962988018246181313943559724689397175906744991823846531422985577120999385100092214476889787972473461509815258679550222562190748011104338615817541196114189159543960158504476869164739677315640383511431302485885246476384316913197182546118254549610681677758095744058078516283981260742556340569172889375232075222703276333268755888607547343860582897326607528373163215936186031523046983899769593486461796605524785559821253602199804236623034503133692984648925448861622926196380271824873050669203761490044084860475148217126591382788296783034163436057284693889840959510547607370336486802561417110308852685771948716384626933040108540617063690676164487793885008259164161434625055673305110094093660363827953830988540479018009370198516406575642556552475728257988578265454193100267490453941873442986999522021573575940464810359266357634670250151415419312852670777482059584635809024268083362408043031668918995221543806995199075769944183098143442312687466027901064982364764824372668752601647544149310210544303275668464204547465834781700512510933838961024007045024839074013885100202942828094979660410056829297986880823976901814391435551866070769401745865981843862211861638711550364172287844062888984693871123168212618522820175566574058963565620950644264972572246067037583252288285281406196824636153374967933068772228993109776641719878592646320402307079623868161957710162401169770512615636254711242910357912260517143582490436920745521670742729437850474150328399925510208841464441282652840248789297581979687650409408118291780971099510415945742536356536547117410108765889225101715350016591767408109481135697249897326300816976040439853447741980695861717238053791600944426775968943287000736494836857697422364769072514420523125524951659597736672936768001714946296590330319934279969259123675971566837190354551616789036128771088144394502892623035231335604427603775187257186303040975170583587275939637351926307101535602385224450046863884842566562222212026095963111719569968330825059711621772967132033711577084820952135276258623497040004777142439154450840279521080871208971676036795502989537777037758910852024471219355168592461497545702940392264020111523898850526353676791449797230856497291821179583079949086002386438921114694570310750225413924095139767271780763167661593091917523864236349568724929738390361994313919503113878593833728933656355161163625386496027045551382480972397610072289383254781123535659582254226234842945832968044751602975019329979255746422493044766204221969012971845160142339884909581052179374584133647296499517724795485495863008903796589199722880475802371923703513476814221592458871491798597769157786673382867154711711208103338317799310328061243690888742765535093940724438988528725630411506434930401150196774733687890210477393547101881913589585154250259301765152352562897893734291451855329972998228434024167535703754908106830526418912884964950499950930257025904428167309309765651243029158369971966608059768625381784984999857948469569478530652243958844829491335849950789609353828903568623494717657347298367228934644660571543642544757754324985259745298904066370112145494543920273884909221118865963096617720050665230246228284760077920204328565855991019945526390949735188102939198722833169193206627699876502335433119236531732349799243675946807456421000301647707545480742742596561366282584214459283237841702963830958165871037198482008230214886452593142623872609322193356470929065591554288632308101792793908624953462787889459351221600251135021245877000989506842403313662698489290725474621306009100938276049479599672047638899976459199923154284180574076253243195977442933093660364592161970442714640694444735541898826873796213379835721909935432243680438097976783728810224186126637221969093543799188541880697891354951902144858022502219410839993052224326164518955519830490986701691291176038225694882996551890434349577778847912678692261953507556283516053545569651383507635948126734557648956599892757025576756624322262964372483916223888010437190135133554880725444928513096675008616273323386963713741872929528636681963340344296165411345333253788732392687533711612651977988245291938354542139153635507401936991587624009077303982746786484232911401714327824439879956576327720443721155766275312183800064292959979291842303944228293517309264699680134042376571476014408932140449772573119866099885285198094777061427435637910253490186284746017559414729603863959181562749644434735839957687414682024897580785997867163072165582630860330051374927893719830481480138361890094077523818653575980721375519553285316907323691721641158952190436360676971266093235968723495447787377351219567544577080762445754287725938427748750277980738756543525729590226399257641266121136884078766405715014035412330236996693538285391736600542640318724739917762438499436874949089912028261347700976651947362737054664061715477012437196215648912617905902140288386668317789056528467522385890598943601910687528534334929893484080705330075352285477118247582174167390422023138550043890836502210708598028685808851195553821327835954251488978983440040882340343036045673319042019850396971327371566823484539002021069282534673169442490986650715823323279317663217840596911788759532372027154570511304406203802084626296229270468071025289135116814154202148390686104666192652156768720669552879247549758715964274347395808292145443075536243418988103599272190148409786358506210909557357507729211636001506235473861288690734237551767591139518997530116026293723868232741559635196476197358722228046727325284478422148106825778058846646530668418513439315684399702548587334858543565067791679310180868498206316152137250354502904649689807051178162028627096819559644402923347328752625076631278926770357783401961365480529785746509265882648828639410762410689667792785238032534562192313913846447674051878798707810483442994909966384318832838157740683616234876547510435194192445139136235653899918726075369352814121627484389330400144661747827219719566168731822059786683323080464041547965641006548361892247232371762201674959497784830562196462974617716143548076409925257964555671620927874697263792066601350181376581126836680711637429750653709954575151243958480838303107561254987500474089091005039704409663675508495097377262826168003203614858802562151820909643603551437149145151674072390314654303717195466084710216758106987591084999978238611811590551596001071555582312040050393112114036993735514052672007398287840724479555320549898739202890488348738362969603130541794108969815741592513661556391792318189805664031090576501139377295593725365638699929199880827640387497426090549968026085562528437310201009522897453392063292651155933945918422048880072443397916256460492734198610242614662369950604602835025739410344363554689726855111697361586817299609966046011488275354929916030876400259619824895148427943103459490899233036264985825920233190847306197929635661697222165077054642353126706812603825774503785861448569735748042867664571043968146809814774702564465983342778066022949666404396741265573290888838688914408696271722260424410274673176120219432618613467222707638876439542519635404698935287759312036907633410340463503765426617196419534986512107078594233960974481430586021119035898091059879461521175740257674727806269166736166998126026376127139144495852090509148084665952370870713853684556138150259507982802909258296716783319457156751364428624138213737091410541231195401456881757572741748670410810303448972760502251810892766350551088651760270621882277819127028599448512226555810445976482459520727320581361298255107935829466775162856592932198706365306147859217927311127146074963451106070348435969113689476231137358573703783241703767846499371229959809335386292462703063685629590405000668775978953936220315385671147843476651498624333929373999899125870316131793354159983626263486679925178112527346506775707305441076839815425299056129483085992032825919933314693467210074250089567225249615711667177811743877208807849974014570536109185297118682288748527376027897276466942289260174720255505734748280330030716007660588301542581154856836762889416857372258390768598831857541594428496913420783468952743653136261406110597755491883090158378032405687168123718149101361851632475488275186744721773217645554576410592262216080789433471113356843755256930058028832606178134922231663620323576663767163020811933563197062671209561954439938051060842229739468205196600553508847008185168703136764138571050131726652497066058834315066583172863170464184310817501320514591721421622408598332387927139152669427226474810501854617477747929544663413200380632786004678941277330525949218281851487976890198913068178732746659584680096410573949985202658466285858891109303291652549626341457122141329810014370295325483414060395927960623256420789834994907858028615146220327429692645106509647078105260826158549230241356384852863332372080310295787167963759359414875609255326533617791297880557307079074398255559150257337855006556494444883678414985284796767013450998165480616115747607046632009775680145292091441023778486324642396318272274131186428621618635844288039277665152735812019368896180660577497753460711113045730688849113495178352734396516106449337875090526947609905004297324379368917485054291717738634726559465860459706716325955384495666488468136508507954680916272670367499404643492263659350522174959114253638305117667339627428275119448155754684193243427818037434904984195468529049772901079422532765967018901876276579893689491521651126327292159022633950669165171030314520295374107402271868557850790338292770988469325745864314339729561326048856858206132890633683311144810567789247218202167221983164302258962086427722155147016322373420514214198314489610443644705310462175081259096288989822098625971422225009212574034216243414287960884973592596328756890735094082861131317829487010909448018616715081446649623510237731748713782224620676852757093424141376070639100943517028458766117303840213228719821033252942585341748457279202822237756658229175085298452720301186810938964358752908445257131486651279726812067564314859460036860506472395953009908539850011586123920232541346146926685056030164769994556948135782935841996646583548837271154356830315606921433434217942365036788985353841016346509504772797563600969413220217623786530451127330005596080595194254044513828984916551309098677477679942750703345572972509730032805749584450023768918010682751063467942918124794135851813563809320835768827457894331750156815219542311879037951982968735821075626398179045115705790457667919356251935438146648468591372958060190181470694561351602152512447699115154003732200394992288342466879890454617535216043942664597742925381921561947321277784571225067579000574341497968056411767403860111736472461493903795845826102333627287165394593111078077396683538963598771717141580274768826563213041133752074906135670700796561398168498015619248327438941783981196135530782441792141683248709643012799991001653742387434381057947228178226581902861916385952036658309997135321262420790928329246404879553859733782545564472964315672047453156580852418411801657143052215140016413193373719509124209794822115330660862152808487983800081994374359888893277970772619122759892453284676084568528843676212066797503042934222622874032304477087332600365069660552768246853101091749904861703330340044342626516005583229312575956538137839096692299476653928372408026390292482845336950273410714713008218451665709055787349012723454517301710548964081966125933698716789455277409932847121445824314364517370449678180339561566960413991884159468868257492620971118568411642232097362249235651667637676388734626471696497970175043424911677381994230904996016498629284844448448708166333544551229925328792409154819178173772941104833654772991172773010697695849211330621436273545535714776194180068197033198635492933710978036680432381827316623957573849044978385728807133612221258133283115508917975766030963612158116150288364929118875761347938596218887184751530281341730886116871140474461668334969896699168904828800560888082795103608140800483260711535122336268278969031675510164808361441047788775258749573626542310106572696314007925593415312418131414189872119906540490596710481045270641009080946045730309806169694169746105680984681480611062532100547055028905825419986203443526943650842506387063665452988828075782749697863703471001826364110776212091959503647466323201885804900687976867878798528402913742411813656561762764556474529477817675466858675657365592436219033292876134726607650242522807535173529626317827607680751884984309863198332592414712748602843189906355128482606417980933998814521480725255606499061088340409625068555922052024895044532043859641351364039449209397998469668824754807100595668530060024974637011383175066380686263140756970726924626725836190742207842514453073101474006768885579077396512183972317641152313513862228874733478930914192105418927019442519414524203400052161481824163723669246356429985839178808379446908344953664352385123803099650661247103636377279850638976375413452739404035290471441427815649420774078912741519279100516628322578135019801199208307260187111460880093179206474279645053458425573426641332146772112699819554588342490029849945180441530591310941113797552742089063286955041561233491070864770845097614409655443000395024786792695649935741645770078667613496561496890636815421408845678490414196829962301449246599395594975742555680857322107151851172596391359237271297094795115553958448673547854184118957696412556185638964095835247567081675246439731864063217979426004403567178392143148188591050532196465751210883992154006411156066290063557107678550527528854947255230589161248398691382602218189048306980261287897681386897396031835010295715704416268702792240322773741966449089732061579675742633547359716495631897087508021375409508730163049893360508236535690517730130918464420373423991192005429325185783390614034662245429208687497248680266062983807917088634721499802596099559313527561739462992393233586758756774422585466500774292031967679191583897566146869899299712545495739646815622943782572087673983216873223077189867011115809817624330547536303638003445296078470893137432599890633724372471426025979040654636677345207537240324405257417005631004757380396849192973709423416688028421304650587031759720268139809434603135832172860456397182191272893083733622413648386813677456483465498671266937097445352960650871700165175386611587679079957633589562364615528220691811185530439158753398961107205895213012652654194797566615422381750881716513200398536530847555932248580590093778795819712424652784354758998716111289866312765075996235833370057549385755508761223267523801835360065505583437467592685043555394932792167638303102402425093986358829904975847279525363052948815520681429746543894755675192566038123313752368106554063848130367759263991892535370779958463647113641250922982817528590039915694974759570146577310555762568614245256444907722262150615212406060140657166348837070964389024833373509152073580129558074370493684201680864793695214583802968712106829204107040907794079306549461687174524729243028010653509009166597714963777156861098818404917779473461368295908841867785057368044897226419498196285935151609839213163740775470442373936253691490508206714798265831597127010829633851697534705960404035109732568004809715828481369907718986087903657229060694098579673198682370512605987150042134363271843129692544779871410691958037877253328561158030945381383621818148216338676297815912563525697010613630577085236979317348511317496707131512364921447710545040300567521177645130236323478157757267576320968536654384841874452827887051154752444894201749500307352910197765367198771715745385026151226762733124833721894082061805016247887070598385590201372022327837850965715856682985196376307445515487833879282830270353769895292019757341757884016716521903023366854227905521736524415807452346303983177074055403475001562477946752896667594237670268495785956474685212872948088267009931999627576357270069618906338393417034342240400670852887615855961994922288147119004008133700237076742335355321620908810897360763619322340660134528721726971058219025111208323635430780537621379883747710623601172844993241992177043174972504819812527056937264247514820484964305233365624045882096910892974968811158044595412322582523590633275421840358622740086246622934974970020021445587032422977383539108063830148086488403332185535823303161486505075042982303207418960324359215485094968867725852643503592530534011416394429403774455952668501540453118872945153374490080725093939814512230244883033114217069650151237166603515017923782465803360811104097033910368651192660687575473389316673130701088029639099410183769360330945470357393679042572655919143651670665638296029322334308945155863130004312618197490110894274468973225525163944358528204882888320572884142497786429589173968343649238211139550398710890074149730243884792775371935581752511484991864467278307961549285285163959584185936930970931569661593670622577941397523188069732887712228272033879500639544629899013118407191678346605693689970147072861202593297664238054516684377586016967386132748246227414166692844854206241628197284036149844326886592854956177045283320210009486713263619750151568123967296286318661980412240404064314566168181984062709755448382530778093615908442680197796121998492688249263027151828046377557500571608256172921937251545732534735128167162002276788937607548850344392948899821510499837486866975275016203695400418870456994409158387837310348365510829141925845366462171546906442911605160731586711656463384032200566827335886029747355830046551346088905265388971592502851000778868134864487480228543893178601734454942313914641319493433533124111428667898588473452685396761888846231915653949455679195516563867973643246112514269807238301709662547516275273949815878891563971205588252081331022463877193488242326146850471131960766198934538421244429150324987029041692601294286492199139043549690447315094167340479484276306912270362922899551572125697472305405077936077459250314415431989835791890909577633372940709351331633563618564071108171814599816310880341250032758600889460614153192266758690250314228736926420146711554579000336229709956127272269941847345751242798567204972934549461067939102022753742586529835303440735579214464620213520768035218399535795086666252085266372858073897118179196074691499539216014128942583147834694807164771019893102516066915779956598422364124879905525563487504095730306229009206840194907934497740120437680499946771215502619002518714691415431934231222271775867911257152380865620498873401824320840179255737815601165123254106437510774724861599535547055671841688711513815926081741236574982986556687634337874422355765035273938720453609506025131962665858354370242246353217508183832069239277999429916802828236038489220241540215521915471580517250967311516761847022637820690168370672097669599984467411748356505690723728142989830508423898916420997788310860116160578117190239322821005907807745659230611693231187919873961243207325827750970544619334265615630319305657051577903205171180771536976651906039771204452442228681531013810076154403562249864146404583623964219220934992971444582794156318557236412808308012599547062822385204078450813624604844452459886167094826619212640457684172706173960382554538311866826827079135614249115973881769836044934613535853264746165180647429705540171969433556002981417417568099526675838409257147163991289688450818284972033275810344431840074870393829116874713201397953201597853694533192562571146543980486446284384531671788113935496842644657193266067519420042785116437437196707591044465060907542340136720629107812020053699696578900562677904307741030592970968391055170845015461863073914127763718260597009410459909051099038529570752653337743137353507593943108600327197291525493225792918630042484160143185496928064411597204800912806649092061257506138670413307624769769982072144898870368401122401025607905974428891132898915702014744057768838514059631796470139006301138117803991416434905195171573676951622708768979933392774433038884664549417993861673748432871091885558536415413084893398227608455936536224861561419302999332797225422181048583519625737422173074284723406282569560916161918213848792099433187925705688067615053542300426769121911563344315360778848470769669544416623970571810508934979015572935238671761094551655739336824455063320142740778757861001530659396728872640853165200049332610908244881637872295011876814072018480931534325529353317781266558171812401340549242077093473489454457922003852008484822973263630924206109578514520190742887913272638779100566132537395458521272513657000377823793582730329386814612143878758765911332772343766225579005363118064996880165145976272638543610355851489663347098526885333949126023426224261582075202810890643403133640764331466373948495889858335637033220299224907818824404130698546748933432233569018989684904195754216219017178500272445602503397230982971190405983613395577663404617895866154346127260223254646540370292940810621027420889079047717830821985462069554266271607052125533512212590852894709711215515206331401162441692886372768681434809694679218451696679431127589111261841110715998963580397229911661406654429318283141184739053437805791692430621941590870091026368739958424522638062588703853046327738229721086955456531884586795239806517762107936392337738577147102555425335006364511222970305330976872271935337909978925087735698217426877417925859894719980901066996678758170832279951239416521858521808973264605700571824757558834429870529858175345316050491726793806266367816815665345782182419005723680310352254048286033136995537982342275870621687909292856769034642620037688770813530247225486451039310420812967269295811810682181920714409367271125129384611181035560049322214603663206523643596075634451467918993312469756446117105416280133707589593637138112782203377519098581702887468328056756236514671272401506275809848230409390752683429450205522668341544657804292990050889405277666794846767904750871438709009109159842426692243081128724945206638963796637992506211445986000426152209924480108995756844120259198444806082089484304442425188866125388766213066147914936248813535533033995291461841100426983767969180360135593563910126397941367601649208869075469197590467357575620841752559529660842980714296086894042521637795959285952556304880449301886026981125791922785482739935702286350273784045408500400489296492381813293030376836820795164839341828365605525932231689341401100338555305878681808768205840721833307355689444092689273943892434238868053700479161259844438378202228932934897235139670431078819637846775319052119486253972770187169692476480472423894194687034654591886871714412049381166027622617727938950325634716092060808315782083429941216085251809029140921102488508052928527467284844870476567724987236729477918675063588834256318304991662558798122071815363729656967697095927147538606059034312884070485063736121139216514307166852620731773323651107767026078440169919191771098618133099346576003462353335713084254746509649608741522273654142869450058704444629327943197797919132735362504200345794561598444989247287822310453219848797884082637141501579644967248836629752043534566050882796507965784677194900491536594329166964393849779304596265611838701873196300840846108561462565413263014618556511040221923928618125512400495742380700395789206078954066346978645660212191624990617728672403645349689307826013418327183761892882966088583666259247631759211919309958908369681145828334720602758479157956307897773314778340287979921159238149834863957163170368186384084856064081036371839271905269206002368918359063349373806055164083449557878605647789781741902277913077430969037496144945612096707808876154878065069459102626807848054468557656847943678662530760646461717039351819671755748117996630698555967250174049673802617972395015574046307775838213653606385896150020165810279055163031050262783263338262247156478814168337876921462655339244248780659108350517273076536853731442878293805940819564301958274638130978738774374879020169765508164561691233507535977684650368222925432951837813823597816760285617606390456310556502064336783522217131432691768266978787921381776503465901633361643405131438956271543757857508827897360543009390264596597503299373493837272880372722895189743874884084678948058725959102597080005687746504690498502324380143584083075485464855323953284411221584138001584379214776352342321778272325226596954596848275400477900638186135950243273310307613363813587290323236225493420757131660950789746489966353379380806981053750693977327753927970058175309934391700601408289877395187942244525154975016183960386006300042437024858284531140962161559471631125866580044610407379228556896833162121983711060707713304054025626746669856840507915991518981410625583784100210150312304988306841237715567984943569323731924780243898093740598980743882692233422944103501113437934400469341964477355785471342292178114780196138957789845074724101848929154586970235097787540121160195202703552568828399596234182886146365663604725704606853403532031630589243566123229009554723611252058464202582399069388419441621636395335542826299388236130342811532311657469635077172361331106994296129040520904981960509257675166081321519818570200180500441161483199495517816467842213961842696856721303387201687844412238228810426984032370742892088010854481011150854290299400444001035322621532921023792840024733174952477129866030012024288993078530992439571918512346250099422275647726029485091090399338345270326497104622765983224145663112345900484836095717018035889925625179217083684115831551125643865274220714646257340613732983253894670822475519060103967265310448901371663823182553096561152557284194369133900639439766410457385446604520790883186915717959147528007401366513203730106211296313679434137168491379092042068919363967478824157502344412052575582871830645983250978906876166003324375060329432568500969517080591127258039701943467759767199432328813054565432132693214672652333144872939630727317365327633001996585652689213033590819233885409952387711447144773715879125844688838998228809264289611926054943303529328049013060302518905624024889377697662707017697584133018133855195182866431939131153786267350298217049510872660166638719135936949477962394499313205523767671691917934625122850923482695986142919239955978559576326410577441156445135543366586435827383318894917086363365494019608853580720416560681044202123178742867878002122718566047006992738252523677210048853511607983782897331345279718380597506273965372369927575964115120191558775727020100659143585465052516039271134961224817671079264526363646052703499812593145872194306982372510879145956485839703978525997425180338673024951857439055888226023722029934652546580221772011738925286198322455578496597939542841775490393718981262815809165057301835461653020430872374342454920713831885687038400621959287168244697846825559661203048324341840229371287069852034591102633618941334447637784972170286099090265689741378831989849490867400911476659295060901598376036910880212410946345359061817818191046708216497672921408409130516790423638011622495622381357884933619084077532651346276010012182581670037862114926428941690956593016265528738385822760974003392395278353763145963286297898467449262673779730469619096972223163228439194457261601032886751889724129052840946425080339264145814340348120714953731380651377383488739990683000678307174836895642904636423859346879638180418091587228651365582125301615887795809589557412628140294929293479917021412528849129600598407960329714097871819738838910588175003864394102888545182504248209539643508858650286741857624244432805361458170894515829981446998068419843369838637516500853053787117427283516593904735981817361896295537468247548730246077150014615379406391734176254587824944760125092664800892918243351904228132814367134392221763644778612063040209794052443339394733065036106458739632945803470599845802570482403629950265617991777606697217211194422148252606350451388806532805690775697963206478954142742821721740094747240579200650769772750557685728332458295633418103308997393389924276486964909078539395244650268480249671975809985153839927247142723609097005847572002499669927611409141384560199958325355458132310535392570945198942220781630595654215321767397454749982325571998607825038160479640760970656422141732522065482214389739757215241506508060525117506723593630050336405646698460945254951847062549642479121923091918906217850108881709848128206762289758377264793458607776639495810728589556639097667845105334503978784808333803250173227270631202263401004023587131991970390837135480324747544277853672672730023243515139872492172571713916463446208223933005720421774641603127929169100135310137447417849445621590711811109074241351690308505247427656408264402819878860608635707106563720186497350931783580636992491453187361985661343517281426089547099526965368678529373908574230806427424715808932323383592566602010928774952126974920353474352777632203998076906693744154470130809357444951921582815118888080131524551524267832407648625978750958976263840314598450082529050817218549452528847106479393383986111667256949370971611033434022835354839658953170053300115423198508562613635277637629425251343991781245857958745474064946742318616730048218377761283679844610618624906457530035994018023993045374849046292304286283572802744996313526671261172725293634627175799214248216575757558095707834425907849758333149391380450080996483282877296687974321327013610536111843193807619041492694313243821473359789897430000724905023358953072436525214648045818294414050118318771799122598138155848576970579463711153794385588553977932408317373536250888605670697575924178832935861559513911955309219063505371189085827717698294024241389361288460822625489973595260483829881093134949278176347450058215444964997838855749979440355613176656828619459065053121519671339495243831653280766976193609618100423821189836121844382364805056730178022580608989592822425485619473921495930618795497929300338714520797873594646505903861796246141385412617223171072478648965634054572932006621450451132990453201517249535092118432411125818729274302903951217543633628381723039501998503878361082753599436669704262332501418132635709359384353353077442505344419788263835297269968054371669284375483262440108685060987750637315147222472569907467779191141841393072109049636912510535189316326600742441703731141434374636261820135853046104797952030107530736282705935895879921439809658707412459589335905554527578426762747684240563002528653312795001532789389271257358791349688788260211498343002215173270349411371736824570150941709723002006650693673770784589031770267378498744314664883432547936941259857906600405561470358506884505731561986384002131800404098094768676902257878448184105200118343538058903177081338392256293435680231721008469683096916598088425109294235211430667256503808270351983943385052450485810752923539287715446524941888793617608735097840993682479548944965902583488359188974391641154065972270321865447397937132229838860452352494317216089621193138381778818595279096760042176617841322712307562975708667241452761631110411361011650906787465535727493480849987995175132065398661360011037465277839369001133007942374271694341461377941763749843724775433198936458539911735684813398370770486363891583545792205914321864520894837780684719354212399139711246081904270330565917594891776718133498362326884965647125969618648527595443948335201560453981636693166682446378990798813195949483838191678424551312689005829426158907156643384422467239186973593201995936132986872115985661072984144089778530940792805768902451007578836088996795310468094708479915512937972476408485145897311313879230562123796623154988332126552575672622055330929978678686198484472171471170873670054615252023274165957865853337208688827292064334893865278262287627013415672390151427236718572558118652893127579304154600632812082932135993285009356617141826669974528900336338836088729755306781358067082240179410219471944899191171619983086444412482769139507387264776301544299991904499155722372174311394069775416947238973034272442886519700795147781847275983597735501600496535110663789892848743000605928101990762913012720936842393418226157890721957505875902108639383145666264152796148558987159024635583166285950504831858865174276893647486124593626960927242323552729367036726116083522395862163730246896734143496727336450428196602817439988788569134412766875766129771723281973235094402957939078704956927406521552722010375915637479289269184053517124607859556564415148772914643131760585217295557050069707609838789537284232989015223106391088259121675238266386574260589262728216076949581670747546088640243524256282456393154996153658504355932636956326824707312524205512554902113346293889644157098889150315430601856028819809232121419940769728089693991837520706609413752828029605594071058024694132542553243461460607120391808069980123097302265736647368963927334991320797221328826644141764823363357343434438460452391947605911643282037640464896648694180493247640991699772478535677468233210870052683127346448520681570574073996349159799316463639691067243196838124029418177963760642628710907799575121482229667702286841006873531360494685962100737886130115017743509165263965099447274370554142874194145107056657140618292647254584573721698990381213832274770010701942269458810258603706382051207868376129193837108003232569778591625149409862594486663234695791752526177701051024428341739088490338660945630069868530288694210474120794295798581222858866658464220926625870869680061396472121134437208828770374813363755153316183209043140220105168504598624152963591022102294313093922668008605676276129315646571563763004690316552511669282108193293017813216020754763128264202372822967899456664939822054646409856998442003235273951051829322692743535064123479057940126351145714533419075564207524282918674619634177823078585895549688911302861058299120030507496315695495155253736418133468296602636298285088695465431949429029885776884501155711709459200895769722461766582891593200706724260012484732794489492643837743885734346505048206771855470297497495091044419436990204230495522823760740089646164278382989619708921439226688343196054084824329529939354373786341676030967589138509563519910630226307603978964905865334996937838838652820098915683296656323837749605780320602866463441296477918902047621282265336646929524067230249629681291647888648731536541966063017896620327677626578091272763118237902413099959140646975189330422661601265292977889504038920252051967748730311041731225308320671678928414102812498849819669695550003361454342499207545821599261413518644284088882161114832118880686852134130389384571292498500060679093684500175223600970180976807760083388241541983418477590559433940133921891190597904309092669190764388220876116200045761129499386706901019705221762649940427377453028930593906390518004220909623392284167127370584488318441510015311475307219175181645272061528552942463420831066685414997779726171247140597849590518026961113097351445315852220610261148493198043289222939225272702287594428831084107101307578105976648638640284073533308154507157111650183090141311619177168875967501320023329485096585948699535639773470850900041481546386311278632129116337969173718484067030623504359336148085846472806537057679526087930034702220787020309753132197610209480977751116529400884850222933512382893529857071709800260998735665276201566057508703984956155046539492878531011022809183836904886312951504654248217081494379637091500781465452015019181972430926653065172044590544636188948180375073592845630651416832693932993005220717604578931563635390688554154096302316337963616427843758508050156261414021695093646431630823529804605823634799846269125649266864155821799948747073213333709650166220087476260720697971947889379295203653179852807118971005437326939732073712398275425569060471664101226864376365076891293762651380399626439859661281870222381944025995110437843028430401906849173900636864865466528925742999127562831868679823452381668653624860011393755882701568662589896923324507398178103702512921171274093159692895272609803499091974946782223921554038816675218965006108695304967946242519283809058013738899762123293686249805344320333736656587149481584433073596141178069898391286224028463900791691148422730683021349849987434131108852952559845869256141502645828724133139141994676455189449846411981050086017446203936088952477008294677489744076234831743954022285395162323066009435607101271982613268307112250321141516353176056674683867034365661404079903261212549112108019962594098421294469307955638557714605563101747388363934219223882240453290667569627703278809002033533831626121357849146481694370669798479742073674765078796683570878735722708582102998642908645439017324166489596612400053263477638602252413626509670269598878006262743683003228494934047877399269423471993365986260517232273443038126822076102104688714100691838643022983454143613518181323885427766626494797308840567615547469250227461999597423700562512073309616482841798541235902843848628119934651934835630900795571177340643380935390617111693336570849296597582998338515152854825910071877949876906085607351885648235545420935320798829202362582044031668644028574012621588268514216513319167694018295198856445564717742535713760654788441239243142797302966002430851490985825046510577229777610188370056395267432564948555685963636186902502042878368546347221382691767054853544695450995127468384776273461406295913359033651703973558597934330869261090231300799124465015977855008253047844941582540033660388204401692859942605959099262972043262038588040097166140215828792336280130017304565605122991962189833042860485377009190980417377098041307442743256192860909489652056147430982124535079163493042875865571833026341487835503340356108592567953719930325264844156296210136086921804201555393743810716883405177265424909442991917327159095026961372803858219663097097185999445442467339850422663011030647192589755385828663255728431328627664513141044206624625626694042240345629620521150507253596007681257188855124157597608012599303487399141663693652907462234234740755410620454837675081299666656131311227039992326483121093146987659846188842125479922114129164328650509188387446549878006063862903614584877011493521190471929366433628609587271396152636001167568841420083484992294185492350747295724942665502864315562520721888040442893534280204237448561099462635251268887624604092706015711478011358622866688966572108217710238732062808812477474989681861136946866152551832482527722075713889674125719265885537797940823756764996833523250557105358519608191547904173929772112364575999070580426741744361332762146153329755387898113143259335153997316860102695017270021989889702288577547483480376274000602504550582844401029590229494863183975996878305141954943024692043068421134838050382588708965955122050581588231337875730885667910143947471078066235715090823891714789592051409007765385903202736087804058657257788635667387215008212680816463751968969783768579007880432182426871065766400948764592697836211897765890233875703825873758661088357313806359528569438012421287158854185014647882274767524707590722708194567534950045540711076763486516742815845643597623565622997597803320152709184878078500402296619335135152028820474854190867485015601794945966736065859657032028099968108195940414758536924418256665947483765911197099385578556213030529563119304571504191305635624469696947780222656861984982922372661088348033932131034269315128069581859231129077422883743954408515037776582275788056071455713511650940018799307938156656455524507356079843492630403357977767456162671419796667818061755222476500635857767100447213600936897948439631326485573773326093431653928827412714634099476796943382474712876943431444325998594128174353457117080597823344936124586839307323094223922273566617104561270713110926796493791549400639605096692475747087858386339479345810888565741413298008179137258828216110098463918009061023770443510329625243511478799686644890210040297153199351551067561613329973613702304502854659555630598210434129812840516709107822408061502780211019437609854160108851652994406093486346846558372219803803513772952129479523912322324626754982617670149875985441177581936628241040897853441600913565743210558810979024128940916502415859010621300132441180923787646957299290738265151449999652673212573573698579768521694501240475542471596912985862815447009020261479262306851221586396240572839400709656406803707703447862079326601630557450179233657755459598904401055745789178209406485961600791985962826584692600073294076894343428717633504515352032968300412334142809054270403321501568666750573819331860140294401683790027506317035724228589921296496254131221693157411762218814033485824194344006606772295279746641111601800922966793485262634413370564170318027145191611505323566602807514192421472310320181241890871137304112848592860288386036859486508899981113250771771280664629426448358531665637934364925764459959372868802027258304819265986138791796043615027412561890519727235068677090688803938164086873886986451363295625860895870524486100476245533421590265150157193684843241836715439202007310021275881290359828212310734870240484347533764629791488762144504754420329453939894050783087460423764597252075584859896498510514225406422666515231096407166216226644684866199796794827728871081713904041232147090603160922485185395659507370163228450536347494618649108972102747562699106251497889472631034081303688820222117389488337481867542796370801708664545292142595882858995021424174019751155284398190834387492916040072287402603657959335008324350333577581462125930704003475566796775319259719815784803548851704457020000471246593292211856439348495148686208589974005677322853440656878084017387607673711557615461516428227638368711637966910103129476588656777618983171677572376043707153797470518085848789788955919586799626826680129457078368190607705789332868348457306641945400390253935311045757708445769672619429722627421788884305897863707325354096033421459794036244569495227799519665157588224511428044828440526429847963176529137608985620034284232528740408216805511687308743877094199268240174361017219006261510346985526657482145282670438758679736791999705769740844729479381148528146802985809904791994690477752295231671073230689150146541149599208482646856274449286423464484436614222590801834206785122066266222127385075986643736509052622966854119263114639978997432260388973120875111857479390911258085925902399882608415079966680969806772888905530846343567919437608419698093356638777092483619594101788433074542432812635236801178779571777909306775648695965420895376340692077531612654322206918924126654092024344299484824355597645790234640047826209449571873277364370644161851158429840661289037974749497054966613267947643813490033216231375456115603393764185160067748550362439957147970119278953593488606307858309566725266501946778975903321138111995865156381835719009410418526696038885088866505298733286970462331134080054893557901475512657458948498001568573150203723456870777227921694089779439701341271063870218926592275199264766065905306636119911446708980736234426295997015895005645036603320895174990216205676258026541212943957438157510076121998364662839895321005646133583214137706762386509594651032800032348018109165258492835357264337911872279995752556986957508407889301953357411689734954406238654430793750348382017908867934481811026572488309242940811055362347773105273797207292644878884700880569248259856893200624962288033936543870815623319627504017034479179474774592793065587187875158621217915352383173317959872979692618930489918470491619273723337338651318498767063115446319565252224354137518706704742981264933426373911447390819840279122180985601070259706717930231489669297701911622985184456171825771277686950169892323882874480363683391140653696546585277666718956454729404201629646285869645433098479704038562303228181124556691457823965722687589147933738785073721271255759867587949551456862250050027949495916756499156903070341577809124642687627859805015850767180504986604079066562137451205899786164831259924993994539822420924169272949474531619196302662954206485406202622771361475303831897294501059783923537248896708419476465259353117332281992799228043333409608228347611238083732675893439764216868245307771001474555789146642461742206729231692799480999694749965940606489481265733246209039845441168241893125673512334483583043510453464868632236225306463448453042016738646828649761511217527724108284390445390403100049525072691637576206683879890013176941774879816435214366740555359009313463863706029074065045570447614195961998260848879565518106019072939295433468370544760539458029755830009154899762552359219157844322489835334272507174522981720227321509380370667234004645705958186161827973111341827066201277411795319314930650043074832162343149655770988552939415144393593543645245780743345202839092544493724319413816826467597082785175365527326299798761703777032544953184402907370811508879294748901891553243074587487026656502957384529089305425879406634653326150673432022230185565247133297965225389394034375467302117972363318101051439922695880803672250784536200061725130811855551168312104279563621496075368533467339274619234452647821736211576973333362852335349489889100351436994466098207589698378591606561329844042246133917469312186239110744693307677630014089693403086638454398114972104567549679944585473297157525440880788999534002472955886286495766814431195322551450825624778740028361044113366922929406403173160246786191330009294010095379760281965238256502331326451387879280442232842648322866873386032522558781389168915244852557019454372301725478017449576417623697055355366641631588290366382158241132563462629506121147252782614808558396828209739906422814937891174038845666896856018105832862138416335292179974028026818342627742977899863010110779242051728170922659962149103428886333981132056092617061984252456947590672632350733217494872632690392057090235817075162232106294359808584202303529607441837669997064206224129716757077748376772949656490800530483838850035596307846134896586413975137342449742746808735615720299836344857656093919220517773046964924117976741484892231832288189189245758087357031023157597740582645678406402475444404918652899076016478624413896107428072854368659370192364348876370134665704429422634719869804005340784892448107763959639271010859102243047655224351736840382833806786557332676536318198837549433626066424960727512064431565703267757613981627843821462699192198556095300606617903143148060169344696314047990329507939013914679363424133991271953386910287365088946657717297680526796531866482782741376216949675452023998081965978644096651753103663315261250765067875155201531553042351821904369292686538944725101797363546380912897219907736603167179350049494914650511349993164955397099838715356515011210157607434068188625251459807116071534531559577290587760705837399233029930937756782763206740825790338073451252525627832938165704599786360044643841086532093360236792296615817750567972512314058334619577816228075694440362303477880055851653866359356949478406346105931208044055134881437348497514499045600245948093473537042720638217791791747458777820533280932974579105551246108647130201417937254145029667434369099548197393919950043191087010473710246810417811692898015987118308578326667344908606043386066212445315723280266330261489776223326791551491276460681210217946009042396773232084509646839046765864125870316120644888167133232008720912674551864271716637094572680166784206048689938427552565636225311500175857351834920954956346586246762557558449402421838377475994497634095533174999987111521197056459640627110156227010972323940344705951636143478246099488006112759367043137672744419098508140676507032747502274127483316589652317674339789849015899317323608121529540324947286823002480587323850902804845841696134166627407025493382344657903323411734004063812241459683611929703162230674445578760547738700629751941367294293662519306341453880096541608544120112388128076131190450578690601236734599037853196856549537316884513778528783688946833966938702192488303486384238876519659803625369312056962381432797484334461390350781924496415548278627464728187707293290789001756003922495660626869569113218279886784633334213530903108501379710867889728129567873682523108886561543759928402411377165813005632333126504471537480153333063393628955853471520489120681729636712454509220174094731211150686839872518020189685548505872487231719446687716391606742110877437363836779597419145232384772228606468854112980400776215990685709007143395798760384163347307496108995737939690457116570805333848364655303609582040099836067576686579422952321161559479836084288746175604405032020508140256998758728848853593723985594391667562937093002169099656646670436085173863125666792649142623507003762114852653403076096608042819832386514728103063465410019941248011467723736094403841237619086647293728736334481970455046284146943118553066267757818331810389866727308903316088812695459416804615348177153286881905544332261866635950020348656564831827256304266183675990666977493876437584232996750876357722347132078756939610951104427783015531497787815985267164757349817714593163071214620213936717714653345036508858026359709017770283450920905402871283138274089217006657700971934123692624873600718159073095911704243367616398834223487391483005132296918968004541379920189109326355658579532025747151912408593013635172123256882233265273324145870862227714245007107437147458766087220250484427018974331241619016002852767220890204560318170114538360422699067839590158760469775097074977239050054457199418850053119284465739423964604013784049206861019102202063462168673455500775994552218199756674064769741686135895531296558987409607151891112821975212807811944462191159995040984531414596468355919285166107696167311727438491709862015578001828730413206124971754939481608291118657280681070078006899968407154476400858059352331223363459132193439731062414943969114632045618822426223775951677254584850338341446213403152208801203911859725062427755078451276313379211487279521927798545533213240059240459158330330338582431133855884026142467353973774681398124838681730190570502665310350500333562381077716331590156034315808408252864620313565755289065692056102130729798718840083308039361028263290127678861404650301429639308009321991630062260357034021004471606145513716546429321870325411662601906394515138646887458469566080357654353991463992915382570603446956724747966072810818883269808673576698375341366281964143001883429318505850261826366553580599825910747765191181370013251340297700687649407562045252896330264708175707647841578774914986564730481218264826936191591612979609572074663977013943159603049175118498571415854877661876499762819447173741185083675101121908732633283885500515799250543615694612699507002854992178005446243274715755586516253452305141048933455243642857392484288431527502377318088991109937777872390901605178840637626920452929167628689879739307542209529120360905149164766786327228848882882137856473989200585209379415647300089039112131729044949391427087387731734759850135976072911245850563062488459784814986674539868360059713363940663248846881162366989653975796036038080003681593052456359258251153987577829011177262762754986781922313484554678518194775486882044587170067757666969759018681391207090324463760955446766054529084069076178157722943504457338457265121964296111129458431369448019452779177040660524282297072483133425918330306699392688966152654203198615369298101958291749262486855902850759236351826092325635320602411500733248475804809060248531744627418306054526532928297625707659331587756021451940394555748084343570075446549591209092592941933756966026779748253586333603425170760553832751442806347460170364678378716848249020698359720636141362891583550478331671290114339741814860862683159815121584793035760764470520448823876694874838529571203471787705508811103354578619309105393149088401316118304261626014585575032175003063304376773146794748535257641421230027385583771568536131075416890511510748684914098618902781695292154576509183364209066227209261929403993499941795253517015579209358172337331386403987826789743752473445390111869247507167952681793025604889049051731180994294494968224845269415343205968782803185681664455585395350247883529850165982230684735485619508839805718129048217393058042643604186900210358599943041554188725242891866424427525272188363633533099138324436945108871583565522424460694985775389962118882070276804444486983874919768532396557315899285765965457913736524884546268042765750019601328376953577595006141643195210327024264327447192357257420387006811734254024985449293162159036074181749149211909972160123223558663903640788615231174003855481688086499955943496422588554464352592380017012759277593902176767267631970704282020135397369215909915273784320642619473775338850412338384412461363087089929129393461856006070871122875492641444152211967257743973098038243971569027317480649811733474230460836197367913798514835605800047479613615769979966873059265163365570230217786262935951402212217094266330382520388464551134317705614962314483640877412937415157146164851476054720079141088678206957724264806132748347183233924716967430595434862670823086561417438492677400633546331992405107516774300350079252962369613806797508280543717961766515370062276289623426781100086153932754908631338671947682191493142729643161342411355953343996026359446006676353338374754582990310436255899263284906421073679136444778901033145115767597022382349542602893189801642732747368291198697655747691315358319967398888862568478307815883080482095523636442525705929031818666496651526595111292569188843078929699481397338174314153321268667920570712333889875916643833818863085349019061477069478583425138050014560261282065665805793354112542741734062043547872872993776735711457515291188282922787289080062461684673276464577956009214084354715716450135525129140265706932453609400824438498042808558295224989170306284334559630963847384304168633034584311282613385362788617868504113522654743669823964108013293418994785590143097571755000084667055619894462017623873728535499902902815831788083543287493840786490256104815681014644404706959695016551173801820575370811099176421042132488459292588364717537714252419708057016403115131969565524221751362017650737298219260859787851817882246400981871164307567985238916797133030834885876329414725299860003462153267640974205550568723282969951974125974548184546477194069426837461526325342757159341890079882883330038891303386048613782533371027344007275680465893813873929031554011604859456893958871414351228739509477445766051605706996134467563334356527705014829956377999925284335343043580015107955977355972385516086894514465057645901350805298298485476742031025190733631377396343016473420931288416151538137116441452128284934169209720617151499465512657220455694343821563155947815242004809072638125669580120054293812909838380696591931627114289508510883100492099127775815243805548102310075951614649683106514199972351855941320788221965622867733882749493589544442417737090728858362187770491055510532605614879290089164244112478805969384936300324048925682616838304142309197136253592603133063451217641818292602067964450607946575913325718879317051345590367865635269341891838744629636824873130588242503160956285651219503128332862736749497993268433883940075637197503815544917489454808859177002178820481366987465754759261760598126098717347245770720792265829400659225827305395690094657856247577521646296281293871925693790789617637753834229322065268254041765242460930810891900790270059574535409299636220532189124459678732566117398943872956834851954494845894009269095696894806779539309494527230074184315332050457660257113564565152682476428932933554210674072662217040826671185695207047455642508862059785774844557553942734554064893196707000375537339288276758008056833374849099315314377129546938027736225272697549725607799023433013171889422065141086098951487461931254910079144780288354652504087375329890350909011892163712297180094245869437940418078075944448355083570808650619311839151419135344365073238059869650478343833664856335096006150854349738459707094728931191663225405605224899186631873210409380916225332115831884469516837580612056096815036137868529099555506541648728823787030254483763999773379511925964517522872465171617242488586141816953603812488982239441230555090763135528142837014166157299526439801617165895248487248614622894253586180247027693374291603714694655523457265900187188441624677345118074007172144494428434709720540519784064607261418887959330889825531515027543185200803714198216416614289322876238972763000733505433505658188776171178789863377965737144731640832400123583269626749549999994971370179995763500635268078287618527858838714094811618248421525834147089475576723423407557073473501603805680913384483308006008779388150000272662120421031958413198961374729687398159943547652263212319922871664347353230635022307392123386081055399671868417481679219520132128852446788242192161364741180930072010275870760021438496839642352186949715168779754150957199945827238169416802780449755393021730364546606373599922569150778588401983440948907097486380187529293456702106401274959065943688923906340474475940278457179015368968224951594864836840607272570392433508860544273338013866773173354956450369042643486591443361861054780037944317940834391824108771414286399608156565634032175678350877641100774060528310849771565327406644631108487490875892338713050194178739288954187628842959942790716252333065622192205437289138041670880742193976817000183226212651029847836195703613098305145785858002985686393689673605179017531248170403818238947846828107403836524859246273782643845104906201678749597140605911470779199985065655309892206625163980976832478852156536947645684339975906884444938858703470923043904270585653070511165384239369639430195579115242552577767463824320481439272587535003154258268783434868295605085580302118079235417690595155327909531892829552452261695047237677064361908172723211180283905949058664479328366350350526378561671319112784369842103098893742431158410031994154744706243509509793317070646614643496140425558868259769086565120177436397854187565712396796374196028877392731366926003264682128796831255487361584964133238466674230813670452152640970575451650280606083932563981575806398140243389061094096855056859755009376368777558033230585837746331235342873974298282906603334404173394523945261720768786488409086642012623093925593182554813827974852050952934757191666444820835162233433663667573233896813564109065244261632859755991212270363396467580380362030080443470732936038744603120247669649330786137712479412734339819429595697833373599573399247377549253655016603085242601121491269256363798675379930269907174347631039955276921260509596845779215254873693750467369921767559477094327582217454611597919588134207938795297688553992393164527984841691311291890810427630401066095467038594322876435492402303281238540167421253430301449138304535117276626850420993271748647809784713773400121633744001889770498516509939273183040964937417204585464973872196287643087161319722447705631745027216569197739728526721625438034383884536202317302468644865614299201442766367705223057318098316946941448415431750151805897734389684489534273694597614009573561228121758936278602260859498386693196277330146932189512885120133824343299409913513265888437272694048087578897243336080903306300621217813291389196676086029150172421563409282073332224359610513820444138307772728603595743287206779988062447638757080031502812899042611349459134012808396510328089219857540396395293235247041422385322214188233182338961420844964034786413864064375502407253337143763459605782507543327230739513110252047781525588176083154278344492918727519514952965572841250306697592218519868653295321700123458415171490165647508623019594330474155719232112428245791670716483825497278658317607528085507494063979367989714077706887592383852542707687225067189420994980806921639100721556194770252281183414763513888906756891724959214460484181346519615441471885433798033636631679215439321842170601318576234861399059517290453879964763176141418406831937000493334348865520769509053760273971990394422577982814577375260548787628166269006107983482759066072079201453791309076276940549728523038937387087919265632219205752995698097309320502740272196119207188174013262043402459215291645062540925235936862757739303166714202372039906786572287748875895108460859940099364187356454183950068514794763798830264317862928530561862219237844450661099301595723260550713164727576583285448184620370746792675717843790854863406681266071412345546245411576352620924714518329748739116472952878188803567571625789502926967466869258397533401977146169534501578259991559920843803076881294293330423680798232683682380864885929851069425562351869912225992128053805595134807260406762629993990270765234773081509795983984280717515122342976632416894806188945139101600378259600263541304480713694035503565920546817829601759353415065715637779357554272455811497353039626544038949310556898664422790583517983195906645479658893974167844683570085796324412126656561747951874650922851094243093823565304500482031116078500804895790971700514714306255516031439554250451540787726150480034436947494376611616516699579848370658712628231407511953994173877540849503345214872522041182664668676640795112358522784766125586294511399710244749472262021057612021546508540925754759096129713820339106918016827942631060552478559777457838320255599521455805831779914939538274469963491557999222209851593753598248194512362271730291262116239065259427257773522848144697269107870528838721904681918718502182269856396824497338434867876482805422920554958514874612208956020854163763504320967044124587464794686708078323618801693501841912704790033656816808280960120625321657935811342417761245062636818134447401640073829788557726069647848487270085513532353800206027867958287619565016492809910161933459973400383151636675114909790221402845268149391015798201892568221110648341527395957274744821808994752853150731434089044039105013084156362250358137624416393892332611385038745509409143619701618238908620680675053071790551312658018520144241078558136885660034671170796201353973867412948592572893495289558437020648022074061652008152435348041167409569785012202107983970835335584649323790549841494302391796178116780260588986388794094304485533346882681809488938878263537452544537171178820921404398826824664747436442096319552461993667662723629130917036041740345480682911664304037047447485957935069493749338737136333381808374899631098145144432625322464029378508653052416000631744716192094883773952778097361513938903709653914041287955316725375148383225068710482882584776102318963158164242232811994468527891428607311497482592226479730844837233564730077524044640565884678829360330171082423653585649111080269808999006076640628989884874432202790835569039488233529953483157792770718153403503143868319286937393892269213282876696594045753349653670904027431315847523108844799249529606970633874404748789211332896126768544289990120208670091930707378640437236467061436996688473501655323707964761720220277630955579407048875527243865137624529691189812503739068130867103033860218823883664508825813231784817202139146655079229864685536143323521262214745637089578297735302730022089142159954079963775150158441317308884442674258526330159406297365285486943949117623048225062693650201304261669579468356818968192867335663566760514571671769118240195940380843806435408388705265675594644085079525864116101483147453320201281076562742840510194776261590195032210114858833506181796676091022532720512378464099346972200758976139512410539733346671160692535373610054324802358798910593056465963978668241332815650888843312981262228852078895267272356389535851640773191000984718420169617984045623789822432948779787321647570782276930372255537132200751259320607656840405702344185937004527692422059500619084536007198733346249177794705036147118151523926925696795425064386791511059848793129740297369375797386345956220960692571915580616548240997763907831024946050099182929575777867393835823513875513478977646299151696535638891800122564052972698771889441771351837101124702182636233486484306765608562322176091062319589342726225129231934951359544906202949044452897879888315166254215720173455179860049457149936471919800127055148887270869864745236541119134762935868408404747532202195082969418984277395140863887367029818082965884415747559539329620504316935638662244897309901380413675667393253849695875937353569479089436664182502111554596074089305797791185065113682067096285402778735096148496177803013510644292745789358514872166837144869929029319026800874836590324086454030992715127881912834446548222758736079631875013109760066814350104684956572579306803507281202930870877882658707525056779608702489619255864392153182902987859953326050145441694983687838476349943146704480810227907624111981921644196984802333005178706019503094771672914152861042840762785196085365137112144661900028179113373638803791653836117289403177956809652940153989785782416928632280545813705758447346543747280398685366472059562329564797624534773360257213538975100209684333362112543442568401673827742651789957726800831358698658220195252506954463676377790325147420664883870053955678710206048371600958561706486463166528079476733557391059851468868665017977264989014890590109185337086145553078331333863703688763684108284404708887954699365921915668745777026386586942771669092188711128552269673553631659563206535685109174161719634271158141889012154385420026805283481431696584909074268204399367220305010111778696216950362562461044075060976256343744421174253493011919776900153913778628106859921273201642058459758985378085243799886488221609744657811026192623029310008640089233340262682313742193084010073866814568079343642959890504263303222995386886552403908540555881930259051452991903038605278635654040710596693410761322812077149861759601380559034045291398669132826200164726834594130607488597021185051013489348115683611231977327385590653519527646621296781272143221487287294065094142113884061348999575415217631956787498403274084837450987240978768099034814002861706609562117800489808332647893627064058028916834435632589777519159963613764401947150379878198045531876035224060569831105542814150206755791421466790532763518748262879312863405078787972963037907384890155785603913485594636914290402952293044317773362347954135728099206501599755357791671013167061803055535758136782119286318806850050721903066632827666566697673930400174563613906555174656655069558203417488302786411063663582014205031436092122172786929413491312644987723904900303484127296472124723678886259225544546603366537553810254665850953400110805712334656484783600458233960582802523848734991282504467197659552981633514255101315424269440919645261724209153200699054376009369116551998690088558705685253302690882745278410503967818786518651506143016429209194311175323296972966756792597655487454114071993435495863315038744900563945366233292697349052075467847384642897149821319203000142759654383631859198253174342453816765719393312619107995328825891026777569016998031584276518427989767375767192392796408561900647819737306991338178932339255480652916132920784123013161264165930197323387537755894061603639881556141307157183269182740495805397361660065812063028359863149846434515076194585931573910896834849240226839072945793734701745431899360717972825247285029057156338977857912365911902878039905978820548689590216142851894821944321738670017993906876188261011945487355367150844345040971907182762635012080859688762809382146890550728512489481448121235742730375448218567668138839858171556151299474478168737884760706152920084839603973666929352193077177315039300817367284673928643776194279264173856729287797077513714673655548572646651007605534469193744996851386242659584587843019369808045574172802134911058684963384680928132222728690664293913031519270976489025749887053040095964239516611538142030758755546982625214059074022140913194756891648626120790666466286312561224774109857747914421806279735281673365234918694126723868808797165941966888317381826133308128785485141393005235206339673442058100928622336725717249507311647837834579168730449302139442233467655958300040179428848808668741425695400344558200964082223496142537998803081515315279392905822864960379309226079179103429152408270210280623697518035978026440103869434675432592411156709142639091352070310143298999753898433655728948466842337722663798933210494864485794591748586982812348990618496953363511218782393927702438037273846611790788117090941556725347164549386317453549136275437757949113869348982929465463294435654515683966137028177853768813269480877901541890095218452805035270143500172027408375643178727462153682531637128314959476596493629955403087652733128190404977390160133857011420287392776155574003631634030552765072454592922519666986932085539201067124057298819316401482390454653682054191846845206035494714771715225703066703856352558123312355362842206668213660336159585901234520313418523113140045468270733397031113583610726109938093323389926944721924687030770614270724493191341554530109711063515587870029827770632445444271014681081475368629608278649027310758347735352639241255127773565833325933951261026372726097128257014990891752609730269196649863685730298546907616565680854657691900300980931297914777817343074168337292608719589420867405585237986879555404827504269351275367392704345071353156090329075058784242020077047158817157895775679510663874198057878231294082023983605912563169810534552423652276388426645302970790900688645713158315383778407923391695844348042958064649862919459603371400287671926606004420376466771358844355141911262569747800080525860950110634668118984690472112113557246181194316532692129250597490178744470261170728045614187531036203570871482891466722045772781898703321266944561825039204234753398711727628229507063132252520090202914358498500368421940212428298037492830475486335144428748590216907151377763752375772395784095149568699499631434136021140758393657033554800130345261520299662342874743487051968187179303994103763874760226310739850054135912301760183073716491030593847169186755702593169890519194765773797120376255928603502648229230002820217354740514537423416565462845124816058439957609648880754121885836212627341044919545647289492336447387980483388094541093095163863349069711937996036258249860250213130840536833385609300270845216270446834026138242850369810803452734919326965640811394009536583345498884928760622843193471956329251155207932261946359887904717369556810410811835429901223467531120819137036977069243970394772193766660248832120992188170838848023537282761660525940854530478287759454209572951672277159483895735507172631461544230591209287102174505386717410228003317166924956930271346649644397175848325161206889571944126840958177284206125578878573053048617061259336335500458328523315764624066386374437491205239508914541827356975895882491156122240509191042529378665396628686865406832495617029651676757469138016053387271962598770528935125390438574273396871399790296597790784555239783079804575506282880270610663403422299621809425110627878884544916087419909177025247960816536936582329676320761915775483307532582492133482086476261929466368326538099192582324011287329621454126859997132941124749239056937638565078210766553596602057441280956613308613319137399318060780592043796693469930039559177786412009917325227597702642761856720400085179654342940387912092048728706918734839426622163829072144816822704455579399568142539380106652875901747171691877622234744330968563172536518024748329605499575752379549318342538895675227490893077824027889446809487540915244246058686206971622905767591035870657296039627893626651058770391809607420775109210148912555430076916499682116958647680956087783041000496592892891236411166758442356217085913238881275243309457912922131424975547688476101445434423440802930341735498355328944604611275420752362416126914747366588756320057340497676123884963393533630387777454509028946904575185806914494736571743589719712952663889382821344230040080489964367278047871905728955082985245941043835581284912750629512700765491518820248837079407592858502287205929996858717945320184138235770354886149171276234345869281737701254183584363183510659997185706647412987337441573956749948209699679655482080416408034641746532318568888380738193317608468961555842363889712045343124070565386943534985542517980550086432911048515364796292277434443469595655012453944697104113032808453864554859244304791865507841458343700451425187073224448177288567268523783585052382040109577489605126937509998789381605172170291386557868794616545683788971347535334698958327323256424037776095013784697428781638299398114308556408813098137909647588177126583645861826823898223610586642147635380921768468435801213876547174103545780594057265063942689205136901999552542174827160635012218879798458107731188674513149983148371834782113934523382267241935550687502490145603929593018182404537927189976852547187051321736013387429160249833559911834673565952582506492767417979317380020607148227493946417016108353508569179505249900513387433195326787588420732513009694698981089221212379956151972149455511336533988137164116407993013875789031698852989017795608816598734577546490952930947494115422265254498878816368208361234680253888653559422699426682842079024924181956067873311012646650529845352607897650848260059038003256417680598007436023704055108122479533918496527049635292383962040964856239095678219359890030644339594121091244609373016507881891549750210575966836772773632325052659701220363203024307797655100960817533339499272751652503382931519707289553545413410670010058049727343832745058494407715315110391387171375751269744497974911448276026006068128012706085359717591461462853722842499152399392272932918118527911313189669537584081481857123924485857349543208273894000958150283763660719795910023715049270328541789740642426954606473422228001348645336841151256812613184526844134989011021361844914940947548085617202045092505164419696143574160565889230667571707822518731107065343570528627141828553762439301545463584482235299044070865702145397322661843706931371980625117273607201675096244368062123951862676331755224014216915634695098450896581103553037930018834971498250033375871501458082843248088389007344145212494798240522829927153933373542855727872451155699285103044887888484701118264004812730004360557840068922770640968938594058677680415175433964173620456109452987015673601656179857730387348279593993344130212252636512272458352533473805328769455549220957394300267405477400655824899682923717576713549058033770445077649191224664667745126922899612066676917168892945834459343746537122257900669002750736895405109516510599668444269292353472143322084794761486333968127812984950246902736155046868309757082784916774828806223507725583747865274922575598487908840358114969913455898183577217412308037895990784682863057500726571494686505167266189946741331228545750834240733747976650438487927984428536519901057319896889567433090094587028191020794785712658998060893451824131820755147697204339948823495673848693203554761686009601286219645079364759851163680365441679830379573875631956409011054846134162518794895328316928258910333749858487702953083122234513970884364945919178828959588205839179931537001450534700728048953574104649215887769034252517056595331080213891914930543279427982615095874854577227022850294749686583459028012635119129812067742497185705894296336308688296791500568890917663494593220066357303907084913316582875931283257358859476651573176477285374433301413181753695060818738088203809043835673671572179327339211548791946724376958404660529809353412789672314276503648568151037679327525225959152421665446435372596081497556247932014040744689141918644706053709824294431384168186631090698843666833081324858651416983412987762767837067573043367909979116327326067029745452044843072936536202014683305281364721703486945216222138456238305272283625467600587620227768215911876268422694973057508852386277907706282590270399835703481443717008381922670788482198731773500615283263869829392093099378081402680242608554247211226875389462207558609505419192972533587425836815899915169395375079949382657777537170810829719878552846703919156715579346180468892206607030311723596564715322802022561959760060414987532972628571340412038845303955044735753884686444543460018392729496207008140725961084432630383034175230133482761634752071201766986358557963297262060969929863148296475041936207184536843847018076182111342779083489535054953268303784102708161283596488987715697061311552809191637234410803168799081886707532975561041935101402637701929786120559509093924226587815949295257544648323665483452474142909971653734438001550005401069240147988570375568509893277193846475366379465625381034888446560089200911042631199687859880193953140949824785625778115949116057409949873721706371537625475917727078984345604387196246092413164059807746340623809644741982970523599404452847277580720360258673680705425063280982279314129644132484228297890126047397578482403665450612076750573858530769143377914399165657019087472212815629343255575809643775625629189931357362423240351880014474610986307288802641517895983241416561516863915382950291301863073422163392929529553915787380607074166649632983826248399329865033767569711858724386340264286213411659779416567578883482918947608277991503209632495150660440965965969151239119048828450932268920100313422789598591210028775127170614854892130736619771080895042946659334885709921462272713397028448603967256375095212810341808751512062176441259229644791325734094058740451272651422626398445912625434868310375706167587508064338363153262613271005548615379190412942797429121910423927690330852192921580364459659103505373572002556741166725692258644572309856523074984768971461233565207558471206279306024756978042514896268593007086112002519102458210559167728949518063844163332544715282464821866253779886442020322484975204533638160330154905088184832643588191214613892451619025015419561543356944362545293574669933021752095077687131501775558596665666084211040232615607350407570653336165205157838861255649926508947636742273952864382871975662930880500347055723822926948840370325684789534160180131706898937565022332592056703363327311242250320059437145273580023788448531762248290910167668482696687629151080381602929991714559826374915238769118147985359087258541480554836207156797611385810056622653392951693137716206164759386901984404514858459085763835770576780286671186369563540282159444271262525001717963620004952401218008174061546574560209423059895136417537950653656511507971512765313239230180752502960590219471930272727437638154256867620503389206001507910650135662802621680781738906936600628711990907439408795641325891069308113354301428547372202649453170171975061910372536140138040104784045575896788423045124594148034780229167460325259951788474557879108856388331074108422285947863994659034022496565966681463168731024137143461979488695201279925347662608516362721876793192301860300375663745656913678504115833044239321875505498351093400173996219712882434668816766876772774209994384394710172256231761141132518064813433546210869072552168974271210224464117203421712440001611306754680059377251909441026120226982597900980178101361720384879041832435278538507334865199801632571255501003973511743936335959834366962378139855582224984989876948004153870916736734467445929774473928146036870616127584043812505638299021756354773990263445646774651599882217621649343401773074223357689875012112143383755255524051664164988153224447013013246285958708514289263904292503006250711975916244388707260097442931909035886172279301630093451543591196292118806219942546512492714380620324159709667133751844189589354696383684459076810672205908961929831893072431814010165823522088090920967557351979207091789605420866851434613505967162980539590893332896500345580351525246777692296657458981241359791509375787530306360621231109636964347112964346446666462349824841715763435777507324587033641392547190406802177736259004969377280752663224898996545112047563532305060809248370464162080146387989810356590557193893152575263985036755343487040382444510316517874578460901478277778609684335854124394729121843130793647002140353366007792027119486699551187346601346350182611710317243569219747762975760729308412082225877007439311488490899832692861607130088076894938377339925942271620682790234186217726361088600523212740197153437520579792598147795257483395681304305375615443918839940262192954916607643274667451910458095620771721421123398825867157024119620309451662836526910780532166853385593973770321536192860662588710030413667066123385941881532928803455727145220988266533261134148770888413046086859166441612636558575862444322153809086797545235557922055296268070693978939073034015046641605060306764901301195264913627667947359406732933801165264233836287909486430235762286792352376740596016454982926885372464178969604704389206065370298993207169845557345144467917961232572856979809016567245449739430621234996116880764522793781251548229997629151282991922627765114645369502228076565907530431886846595671639312798103871582630648651122973219475169287661990016420835279765563314624367214032348543335338417133949288322223209811962873396113082991217612373554406042564866813885862886260319396767553566089218955276009989062940306687440345417043515884163173319398578796053629332330321002696158469599066447016836263207318576735041331441599111060963346824926728883238763700655077081449291487719546627325628069648640973098296241130178194788551024214932091865429594648226894460785475682516318489542399739600536486415661232009744549657347852289106424224985708499917163513909808922630496400350144392553076842427915729056207134847537330588412427501177891689542823349109427798716540226279602058687742971547270656619107958691121067623454606612148390970456377076004025103975868806683172609666265293527527459106300768741716436172288630582751790571644996451161532325940710797866892827629691986085204799031234914260962990337077529084335687949063880979590854977122272604159093454832431895831783264169523354388563224985123608328756902434833233294045833930889413726247365470607943414367549873671672837950485016990907933350737020417281062282797005978535818917502047035676198912709790803686643534275568767285690274776352568205796096660425746898013603782943136178160045697205256983190576948609362914834081587760535061000208680026907731486922102389941215693348662583829605250788066386101836101246177431307074396001096042501133898781177453626156150014204011900931313837696319950791516343767866802026258222840093043991887170127383468713148415707936070700472059105829144419171040966954432902122140337262065627358737310306276395588515453122804190507869688817799975223771962896471296872448664294263341297284411112803690146150865345992925137811172382927015663438946128340075687471270735454312051511857404563380215827886501410731391633569305366326419005379022276634086980975036924708630495974143487803757012694183212382233543464065684877297948077019477577539771565095245172300566154587432667290845607857642865627061626093548715956065215918652388330551538883407169829890280667080612697881332129574229995399931306455634583591916452263253364651785509389031747042323705559344724865671825040371992806461305397407234798028583065428403372723512124945119649566358445852662371376194960994253322974735008910377486586489640786890410370649092023091933593530643107520061581067296145129505956057001157662527414698061688127694866653250653227003629484069967090558985313860849813624311693753146777652650787831675294927219800694009468618784902948612241733772925737560872599267888656119965851127858783708763274412399825173225877336673253152436355190916122909044125730611923657805098035763038541098242988732601898972999276940675545582143919576081251097431862166518863482824926808775908260697809636283846449049054476277110453263031188853719634604533112657674306382773137487585815563756841521163325546142914101795378018586051539292618888256456421509464548656673709714925189266232164213202539161805312046091565780197326021344081478320435482891330192879416583113661073253817978236387273409555027459932200212923934734041538993769026409532577380125518098227966464463423400246465284966378766053770288399520497017236696651950207056236768343563580386589383594818602307018587068197753779287131112436217128389945735132272934041321837731375028260611226081074989084053713710069103556152167896712000563007251187694402011023516078060754466726473612642488829934973612787152674962319159467635801782831041690228053009779096819957978630526023347379687408879202020478465596966988855484065300879169173200525259944614805302186606181390191415840005426850366228232213669545662673081601109478223715683594792738396433022959079562357294407160345921594418848469476843050029615443280220175863268164463847205705361543904119104794530548379483171009961509777684371552692465274928482099548368113245359505167923879571552419440963675830533018905278198107264005359067754732717022722652047533454256130666244945203973942231905031165677921989102598630550442749255150925060712211958870424206145618628622331818254671989668457509946818617360909572678000173815665930634310721655071615650574788602458356241867821372414546516382326383333708585441333220796490087913248219002335164144030564122786343213872249212747233366140070477713520920178549989308886136997264063970616945389073105271713586896529439589342718906181141187235777960458657723651918698806240495907765533210129508858025453021440628935034683894241172610922710044632114136797719790641077024480068842070384379833271286963109893009281416409631293274407653961592205932936259012527200602121771099799698271775402327635443388605096631675007761176578605032832889620879421378284208668538094581102006749372569842865691945982706420268750101110998330284157366780914007446951028335414576046073600825122120464718891706297952434800471020529582061616603546427184136474956261599644523078578750556176872819107282076363639552081506221608684562572632363709985039848167654546078290936602230938534522854256505701922566065801597958933684758409781139733913064233856049026064552429684813850236513164037494040755954652292773658026527028670853183049984065788091296065263608241613473852029856430758330203713734270322726506833360912629014509321035166648224855649100332136454510964280013945663535531776100425630916311177346898108259889708358147351885730816296213278947009909462504919819798353330274870316681285421036797678793036471340507431192774416759460110859644418886943894123647169163455526725120852814045637867075424592308091383307883641422290595512299205299339514854814104641442912669544080637270112331455212012233064201555606709891343443374175723095587465018688913011055846408019763834079735026070939118906992929638038199925619187481801270207617581421566946967596330167384425715813542543939464111738029931085026941805285345858259183535868252909370172000209845084890763024889723364321858176737562334824751444053602811853919290088112467117243865941999597314566245746487682775958888035303943939922765933911703437612647776606604342215806833889825195508988756901918263433316002773039942289473533459303443843641911832176331374192742700696676287932616817032252931798667123973415020276539975352278737297432568875732086955794381760177060451542641126872206889672368041703797853020471864938646570210637378454039922572487650728417310774134944035118083253822846570029446134435952082842829860766317886837547649822636097964090222701832168464920140120549801739415364532171385486684521543306754639752513067212695225414979081901488682440658279590960452170534548544554452703389651776615950144727961335686981656706221543718698539307491153776601380040107540687694246168030454715678367271807877470656557920412916775016589067784241414213687210571728295807108880373281645739836157838716278720033474179891089570402497597676806691591212166463412122280865672363772765661920280348753592925061350612326504066290515021127718233710291831960902208380729078028530831174573866500252173261663752065424509732613669176394726761018342336017823365551382390139723030083257769326523190628398354112126956100027043842526790867631424888438133379444432224020020642250562388156951695735421584888315595630578352497770683023678618434739659112689333922406622474758682356743937586461012231400599285697554043363878982518048087113248028465751277412564369044359732521178635280834304729686945575434909337796662672986071530857630100884010423532768992626043841991786649387613156480947517561220067475720134139040058137159551311736766113912747968973694493033696160347316770155871675619506860295260074665260613217248025986193612395476958974497772507589193797192755745462223063762432554510754147701906114887424036263510445205653611088284575548601645127084150238744492360303624882965734777621066651620255418948988706992510855620987904974405301799989088983701639681371118664632486687322106758730936439441862701753328703450960423003902598864103876213047964288426183832010398836535985523805750303817621372480247391984192118733030488681669740637864280293294535048457106010862648954564454667392821583345458209570056960135437158306114440629357275084605177845624496168560975577415032606990027874398495424358424697025756336431578442513548863333721020936757698270270745907957801610161993312064442432372977344946261335679967788611574941770893418496487468289782039661366304412372726691263619126955035624801017746076963936037560537430476902431765371243554296548522981287133355222341339157315928573875629578126697725841393859062820511709771860656295704104192135266122544093720375822190438048990037305413155989195658537073100430240890402327232467948432869729969164339585820676419342162754622635787622677781565630806163551121960769658624178257958610447530379352023125483257138178147822792244570711698209079863947012049469726165109171256191656061019569782085646055990162879619963135038988707398873418505949187439216580120552841509165711557589997663772591409632372191091382536817657326786657988495860105337675888142867369447941423390391861097800385511041248723311402751343141623613115084209513817923593632478590003035503249403806323548327407690098306734578704049246630427899135313583848720788449102485829726097266505764438834001254431040064094151982746023104185412375961003912724546061693298468069311009381245112175422225686194111323718165892237003690155482571720499323988161306578499209358291253348339732200314904516058607937984371231395473147615261662422040920854742998323643411437007439754446580471842314229164689385643381884371953822179023532195197709084815285855207751426256589514840285496716601585141509692811021402270978917201360125412830233212218596522021139823712213081202718796747301117293921638439379431709580613042626135043555144773552704904747729389757565496638806980703288048108338654608406526366234546692720051411562998880667614086192655259471393152022831502269011409048337380358005413255565681415158333658747523456652492695103587942277671280673995232962983769083097253805000908207010819084154364185760509474245706898803426522995222129336720722289245932401460646344364429156978406075745661453651099785119428595873159423182371747617891465967297818494044996439542897599125115109927082703510164975958239326787189633143702248544633554203730533070422542057734438078694813153232743982261189690990596924940190300021021920670338636260891307710905523816108138665462891465332268565184905094214457534954493063168479193163005534865624898017667972540447627745664386869614613345821186543373470441329589383519631464546399800599458345693883176663637626553527795872154914938930936652983390620656276810481668229910167373416181849610323919329532382146092522936111854438583098237120544518135042891308725416569410745974530666456804258639067941137784511039243288371642776244951955023946586716491862503248565311267240708288510219854551756252423438106439533760045541185353752949335436902112814438973775926136913527964327457576079352337147618875796687174383753987976446666028708347587725442828558580754925959144081253313247684738998690924335404702891542555883351651627406638807325893204856696252795474888851974381149523592469009370805957918166825880918497060341157517382529063315385058953846945658917641082551448482157489596598244917926891515824546118509381923924142057157443492599483590807271260617725138520673777917795158540059446123300409894833349936002157375128383296448495284557200934973526933662298119767186400911227126031058265530839594229955882931022463451540764746254202517545330303754912530205590330423335730374167097704188825867996176257654141534496678608577521132778851988180578659138992967892337521462099495417381971516038052021380789808704326428308222690188648414573576633944776322451994842366956496020604888829153217810045616048539296728527407264881614804206178907343639981803456645138408536078537289868190074012345607757928477900815374667729375134859399660608164952571391249826992820189438159279565011393893718320883235237759547348676082503706364324261449472066990342850377065888502499980423854358005481485631062571534722045343190278923542596131899733246189032121333300965269028482604783872966917130986343850003718601586032700739804534444662400096635849158944342569759541019124177977875226001146731376211503790167032852827489177280493570661084769320248758501737043507459218239537642603328075594991051031406746217120957046697306873074129096678707652788644494563875476482241918869254093782000969815241298265003061467686686262368347253408626723646393165272993590919064416624983394746983206909278872837680190419518665584460444712904759924400903132509021973282995721917740670045338582963504206631405746986256394283639531950629145524528445223343515553376683034457583579432674200982814845219376240037455978912804984129249040087439240392339134303526206338898915244149780519140359061251545115547948598971399695780234705165925976987845748625951641609684027822376897748299644887458344489760885203292084491188696275764378123549406994496467003049639751791433559090697866386250494169335184610015389556955859765351716110136716762373832547291332973522531380664493038578827911627214807868446824381291913428483529294432696511305713771667640461320665789829853518499419406397338104555197769534169031064434974707753667787739720642743282490185952849628632519642214357601656334878375726169737110386731233677100389334406968681037669848705495113736131387771289479719964865785085258428072579445392697855177200048711930557090321407440575161785566210115107453722375212855834884970796387286930047146860273271199656388436911296672106181674190716812809447563651506326902162042453576004183170714265155142457554059954231726720932702335067605723772664091791560981196371828299103102192337004730511827642653469727286042300721611544741598079508732956651602945576512156073410815079060567358690461323673747721410381542865827674280476744858504827886474173763170361870953150758661312159111761785512457058706357728535790814565290762280051242173113690320522783259305540275253940028346100484064860602908779419653625376325396311457480064602789996090679589398839744348796697350515732205943641053965236943514517536802050403261084774637000962318973372450078339655291767739695687443186190208000256178359347399939934493566044205980404462958588880490659881243270149208455706225428701672744827023868077036906363449899344289182353041153506896147328998831445194294730570068486829318966941127646417665120863051817495966725112247543359898462096038988946799614924604366875362842801353387490102780511844538164961329060357513295448039699759031988753558084798956896767329453694197363153887457516606469611796788879368165544462610498833284363319062677846389189532539955679319280191726703631370714764464750625998853859779574911895573879486548689154068689055446533491532739871701233821550035373644035687310889432063344303293493916195936260967403055406693819555838772899606923790284851945608622120179645535123127929019692097064192932569287164057564517617698966060482356250120011878980837845559323300015113183145613088800659782223306737469292190593023942441098140567366429254892925336786017373135572471780345338894871961811877762621524522078085071614659569626916710779892187648193776967751504213962840947564966432806864971216714486371896812395215438072574335160148285317099037290333826090234678644993708888671961829629972404959204739249408452392553537227578040595988291291093662606641085581196713459272717773787360357600841021469079288558231745651555577259283161174282031543549651851371161087384290221937339146242678864917733193580755764247695632294507842803797461015982666091658284224637927080543855787884026375392190254565567812749519007367475346313781423591133805829828205011652185616572086777918144580917612926034445121515348496271221084393420727147689948557765930276021204637407870614523280514148378635312747740218715815641411920789626428908924156357007164418553765524393294181801882514695547111409595305522941969639356843644096261273436158975763990884384668102747588370424742944810503194847044073012377662536809724610843064554027320364034914536920348779941833409898452960940381618873832426954868900518453303262152731656935207113831102680713770338209698687714084415634938151965992444518684321332247820314277319030366599445153573956761450574387488290427074614445252998188530301259171144075948270049134437437664372473906591803351760405864106562537939250685821525179655903234775870128144197428961959574190347782510358098520761479962803779983816752698953735155878287195759931780170661950151552497913910211849060503452121933204960610702203705812616385368198812228936663255077857849905496152606747211318233715256932288294833007255667206217487789372693335805195145623430242161317457986020382562038497669700355732379518791137772575297693440754208005948154684388603306405704453760149065312198008663145541328583157967692767721061713560841876649944445610744340482496111341931907720765796466251876679833221015763872836157897524992003683345125032544142038378499368318252031480226467707812953423656763349354322760984101924893555056650891274116460353904847587322367353467497727307781916676997498728520124687129218481279912586892408112867553931746978508617146756977836745899202679933466812263253662413767406523609977081412065978305525360940504990484676679464332113640146447200574301865609504293122189762212649891425940794434948247143473735903014276699921173725602225256335440862853879951090812112731929925487069137940799152986093814246671056363304669241698602269437569195805909163847521980739878450650924521039186207791654545856050348134531762571736264671392222562956903711021180211546933278707466505823022085856929314368943389547990158600406780710987888051439981965967497989674500793196186916840710274794853013313359460249647334667577776633271254547880535876221417513420908880322773884366933374317497429610590345688203800788065200971257656409512921003135286716983901588061719433861191344359703549545523048950437885237858064534064566740703327032858115352814180266760978314918759576063382930046294316750749842039128551349999977437475815961369887563673632714778020569110477189339673636882449067433196001348080132704012771252893657313733629656252245402116230040900047317694658051720703108454684932900588801293871951337112494208743935856842131197586504303229480652637491727336384320025929240315765741409381774059291401327949551358610855171200426126561723397305884793447442773921354407101575156513926289919546605869536889612861555787082947524114274448067255748682350094401332723330359949244770942499163572618536102517214002258678855649307390234003168131493247576745521932742365442845818003936372436511282714266109688490451695616440707331980405160969900810922920422135457372546336322813619109987314939546585188117742564440811601804751309303201301366215208499142403526756646882369191008391353207955995569215805874957138075303059043652951262120064014197744603361851967494387989267933471953293872533182961958289792563648147857474382477265964027675025502511671139063906835607664277485999342568628787517947141141257832284701784439014840010656344164011042102232461318217526289736939231138315771879140038509201526191180975934139473585841287298286454240578306160741761519711593777511768755383952003730769424839724583863553482628018236035975952127691766386829999533062532577710969646440359468481060680126493522389760517854106501827733237406926822920073123657852313156260047597940706330339984722791386989101523461812136742094396357495761482102937046708113069180393710017250442076526866797725811727915289464800031390903987848157478122228500792015466616841905782964971064839148855026859472017452833459001837632466426476449045892966379500277462371844549944475578372771645624376383681617837355771140160504756542738419947480241811844044725539040738387131046419009764815914260001582921794382412903773634108223973420515114938024811950470297899283534818565787270756820316577990228574626014399560461153051061877388354628256634080042989488896329357531768522031153849993750634066786491809092056015377094044631307092236551359838010328674914348067724328198640797846291340602590271526132802896428666983899869313319287483274813107641445302111981050800618616901316108458193319890529680193930090258795008830604191661081172042031394357726677692645344520106971375066323991741650591396233487216942451345278861629617383545316859091709876070676136544794974751548033031138420444578459160088303567902258709242586519993371244392924420107007019520200165755800702593943295280064004924798421896782596490791997511631967778261244232255243224466052007187893160136668542785021938132327761069824493783813696726693548906004401145612313055983461708783220694599130649648338660700940957902671711137592428708087603510220712624004540405366871254692721512078389975314714527961116832472209510974917564770820939140460253350070153844056749932329782685420478214656313606922237671863426331340974837945036469693067409335954218533968447253053363658902972166929741045956026559955658864662437176572419843510570396256521507199458768747946177526642488156370194516932155638843078441738915884764643983232382696583639726032202760753457119629857772549649752682182679337485277087696386786262644730077955603337118437069448120042928194491559243180744613632828035956792570727050261237511250416205996117915970104176110441702060879190834821667200938479066042760279431524904062698496967859812583007307206751015799258638458125856331543521323793722269153046751103758378926757525590914682514669209603738407736749524096562006393869322831633402196369748224763057191884315949084322679835622055358708958867905923086455529960372121428712811653327634938739202869682843473051001462652722072562924891081569197231804860516357547092643385593426460533034888178802707278421336929975914847136929253989567596475819537857773842263430245389762384364732682239441739912029662117829153871876731653485904006731582196394328137959148711327338126250078046379326854604781312468203573787593554797438274433164960069234617666520922296483378806014809290437847546320724243820409880142469312514024519690728308674252767424727764299059260195520637108737423980049605741034475046443904239623941752213342092780318928623315829931760429851130753777929565742554748009057363919581252743760136218957192487791493690251031720148404415175686114722337747247668892008712394572206290368561748054227010884962979846579098117773931581464120090844543827342453014847769040017152276602914118896118455496607262326345116625914283819189716257719867631355762714549514806383984549153094736298307562937978578128815267045560100608212356363588745735406010012503714408542109457035383009181673312417582492177821053013667672695450928564756233702262472599384205184513252859511295645416975676665182829999024330031416385591828994123934454596298710939759741589685257880069801689432379562100866229727221418818376017294878941450688462047487312267039177230439477792701927295594150514816144549057514530185109233481663273565837465733499293840907563598592266644720002511611100835040140513725701914340794257867773684871513358249321719236777575228337625775509050384376440390081520943382761989048624104835817923082081621643254283717549396913666993304953774370522094571908219447046693978778753932687407829526439610286341213089704471156420538246828505634139601307274708302013446670469933117629861140599937302901738754223864849211236529504855647882259386301515048920121508489213932148229117040451231354452466634340178531624492523246705847292571148874789013873914103061935126892597372623276756251540596222855276679876975912910384616365453226162792563773982515744741275714905340460655836503375785077898105995764867601866871800314212123887550204991482097676400134245160232923323892841348212445673108403550249375337472182608625277589346756664814754740021176229694155808114587051257105907400523240756597838435990279160245242924353958964612605651161931435448025967345547928992529109464429175886778234626644360389269587807006607904182387975409941215229913714647428115866983902859909020169109148557389111052871214338601129007361426444518780401981086668943480396210202578630578907393575626863165887299855299744937819978691648432219461528624008691665857781867504020138988903711220860096189795100799953305025232072570536520670831808535790729829331848976502398300928220353839508396024511309726172303384998721396996105570050456449137518595642340252878707541028580634312081157039737731873825733516412948939957624058926370483341494108138970921776258975508020133061759039002544667592367595015711424006045008521970075962510138553034479613015376075244326894580447228824213799373964876355777277235332060775916950940536179623070907927247470261154864692860617467249950035319138571855529428546117988326225141939877949044288672025455139618782892879530696822293047567599583931517942141216397661715773608497872032789981393210180015307262388327874394276515258440959097332599260514885981768890797855850935250455422498918616168402939414485726876700965039152457319085410917571858158860265746879199224654355668166718603266759135818704516499152061197590715712580473434835529926485100661767154484315027011347264487258943898188025706175418864321197849697268608732032225067468649115467609530165727329332941332551409848946892620238497251457331669401615596102309248120225907397821467218479054839412267027226762399977370879413851122518847629233043425211811360828438977247644359293410612347692968782313529250786057630445783845302093076904843299670741882098122764380245128444114262759672981966661807198975199211093794694797617898224351438602090052497159903312996709618376210324505496381451516358058964808166700961649044501879716813181093158569839900796159466825309603146376804985769011540238756479787186963200835375724807809434483139145353017073460887204023379008403822779982853499059813541359190914181036547033642916151061170150148889947357699771328699935341748150858337214381627338936864640643803862570056657959591713296972817770405636156288346429924981259696120772091803502082968837556360006901229680042819194816186156644239172826952617762851416700274921609512660233345103567599621773357008046170003900895702696595914584606985059176696599713635477150502140336762475973322486888356287295510397497251716643781923490936395389384020046800335936898546804223248173560716286607755442636157669272844704156857043188448867833978058566048717442572175508053349385095236096296347522796083726237756084463874847273883000461373814103858396478992312210423697611179045728095897328627670698347459329621068233107822081872931299190043085801538050176417490350733101348247150896016254663407359806695475192800677198830194495477998764272059403170073600790737451524935726082888326432009901908802238216923972680703052072468679587934403160035372006968868089388102103739103523058496279269403975994496798540960466282637919260512264120405595334057194091468204263148052528743166762697333153838633152703868934429699937108081646325914348378162634482843940129174498800519119268371904214984514499781565232168678539236354289568481868702349321779500529680651136650608477729327135202611916714603510416655648824863434778798365829917619815248975590663079731329445393919138296234836833758313437849746499074762496186197078943100664728207680089134103810270174262414334709433849747017723636588570458737697341692725735939660624000940437502979430751288492563120276913558357383648031185101514564130860817537821240667868696815278256243428001786155131745528617634513464239907453781653999834105707554370917328708884928004470087234234302076881654042347028604902203991374256289807410856918843222671368988924323466499447964993685299905536925289517009874387682559836852681111332860609487783964494937882667131684098013778352630923700065721509716951589387139159092301993046035541779603670874786612470685821051433316827091920421516390322935079838932461737151046340601391767391973823098806539454940629009732467737146793184123672221758516917329320701304766152219347963299732244368600166562336781154569543605038073797788053869313841105287105495951849993807102167253699945374928928381968079300049042681430960964469004221135243112685873568982372064181990720309865020381875772329287996536982094647892610724629266740380525369358291123636833984254046858116967946818738879272174674657087746540348373276481661869019881772486560028399770999931370176214525376514768993739267031972917200058327085279999694279335062817522464618320122764003453573024184264625584613042431015159984667718997872328906685652706374698095883352844357351762933729354403086932577124868596296241296328225737633248962044347260167149558775546217635556113756835684592738277884060518225664847768561516053172267705052539353145775464605833806543672125076992511871697918705906806380465775726051757326004004889302270517432936295139321035975284982035346820019591435044794625787620489778240232651710574729441644118370256474060406980962963538405368048152417994098490112325041102893430108075601870234598817818494290914600206440221922084678955814668499590436524011865264185303456967178955521559761004347707950180447992567692381281560452142318072248453638650125674955882762964902141297408627515981944983541762401311457196107065530177335351301828018940659893992782392648748292630645262446298061908375293173691619370086807065534793070840445652639713220810718164714492775636965147949822925146002267455831297750170708368365004691975823578145220562875720811505780947355930629894237626113614195826508824687108948553400052515420462474370812562544178121124799191179338775266758783412478790833580835670370803003066506054125262908389326729329750803646171067007783158961440661673499806120018019006349744667077772983913979664440439876766723020133757774330552895059190829074951265871364596758799043898178434260036646900604924610303036113975275301179161765734207944221346485750857026602182241272189493056332578887208565293633897781156141298197315957834146304055363158930646678208429532119948524399221743726282516381078386697278197408363286521484791358679981275144069614900248495511100130328598525149316259849359706916254123327559514792847320152220142805552252707859712922453704850347154892282969234277194355990482608167295454905064070513303660669159853539605106566530868875542435959986187006395014963295756474558241509289079988652154477212979673044674336404317012365865164313007164157399331747750236164540702560215090104161541169658606071498115251422983283567667627723955226624942481051259815387410707563240284203992246480357508493156116813548552904207266962581607569984132750437561791224209685825462166017648879239540740410113689335689304598600659211901261405614601339403748275444113457413887054929899388469689801878857517330778671747815941570668738691525926856295185559771769657059395341926563575244146225804634042281208116409172551760381270507935985283166109668748800029890047123586087361759997902894510362052150789541524402162268163471138015444847994701714064742954180858433437905008380963013602692322612189533546022988853661319355415945625850513670178054758104843236402417927074700752247642226434919110961924694429449006381082402170248075875581576342018261802235149821527477833527339028836473203501543327634255644320660454173929675035557675998808043527817787936486685193266730883739852665794491044697804444444358600351460590165857884508476580894824782107186027977610798754349698233917219984506397278751299950997358913431591086483894146673712283769398235320292571794474737740197108283224958449980338427868825879792747847921828557134684883814010669918413041356118226827320681622444355646537859767617755450117815872260475673191804600285949664660759198282423158406955938758030932247311497867641815094182658035851242085301870021172300974857486389384653217048165021421987549219913085247959311680718065471898597859108212692211268147607926190228357892450864813250797490951500675178067339622974651098528637724107244728504036152485217198728097715203992221441925836169609374250854305537356184729628157671060028106290570751426203335174064696809290026634906919260751510774502492111364779254711729751059449013468885261869594508068210333396147797890931693478640933762827468670180507081541079040719649968289099789755421023902803126218239839765346190810549292979822793168473423651111797422006626177060855011595020971871891425741650593105572915671861448448381903817509846426620835292745496880994201285053157155512306744335995849611663617677936466548229803765012172077261966777030927575371039738086844115735110073508714800138399454007977909268254662132021016233944413477556453198369553868931511285534896933903520325234434271874944275292847449913808592011532157696343376982027132869549665099660773505382019096029047584979883477840530169490539962158422776490795890661987383530672121288427175869290664135541312823469552642183023355270632502539110284056982658035271839155702234784635225930211842739957239163407997720764072042178001885430099514848001277200170391670880695043020801721216007991123193820477108488537734209526705632441210928755498068521851186314831870158212785707601943745492683865009535647565441850120454193647794943467892688063768086819869866085224587589704533718623078322674836028803419446129824199337479023280902327135452196512696578949344647651761367160718583971659687684928457573163269029776671770220904733463896245155563007909029473203529255837798566551025163600634646071326511431481373740411478121519231224385296487478908175401996825656018611694363578338473603883030338601020896227830269952231455451922409132263136691746450355741269037533159540291550730026767728723213946709950415538606730961270017721355994613483870352444093320878229788057347302429754965546587924054514855501448198668251850161124992972880144744375495281975937974601617225015174040284397712673333167720652594378032220212982626153268960244048730146458214915134096730416735360315968513713191866623768620732044698013147362346136100762927527354484600037092475885753420910871511218461788323142827183308934130445671995766052768673230433294739327201847306996090969330956034447972435210907497641815402290092026462040945897696756406190247883838525486128933697463122117391787546035376472849156276072101931453779325082469340388667028773979451727139531956649046842922069352543947645215194021392216378246315580290335809980561522111170824548384201294057696556645842892153904045040162631997997415650796634019529681440060967400455717792300827330518095278889259066035038856735535533089925235846119277506980333507334892870538792188611680299819703281465893245375818943101689841861488792016579895738578993391936185486121795055909500652585206244649662941780813766238261781573578996861374192385484642024516749884824341946887626800728694600175537385569012151031676104546040508747507544135585330659197628670235364752934833403937485146770398488893833491112694514856419741294563717682430929030532382533310019392835463311891317142614117851827580315877332701856234203222263800124715283794252172419367595296752987395429300349548779884377266670857481636610852871323712081091132853788551712531884906175774995656959952716787705031012996105971662384488965258475587096299400182654471884158549816538021185536923511437507777634532120223621360530264787953807384319219362667056694786620647974102229799240951248782370843294342290824215819438979366726622966523227145401338436658732181404217497487014688795241164024104947991511905328406145561149555948491053744262920772376546929549217403294456111048438529851008690921206180957969714329734320452505408679914770199690637684651166272108122966699353988752810875719105340103502417600409691977371969805088812093549862597647223441796474660761301116769784734007206475668317630142746046256279328265261322889112122123298334774950198240829662846608384574565482656781856694375796028544994851233834805643168068555623963501631771024752130970105761957797193997325928887685535851047004593664338776765885324213677120089003803469784476821123436176551438654234367675558388170265449323939113915892269116007018813965954553718402989674121807259997429910456705989819286597451277390226050378551640351118508827602889533367814279587591770754634855603076666634662741993349437232085236339337867940930722195220179105369634537979663666282099117411902653144583431036991789551091058857340185229149920924730097304402301617777194212443260591591405292795166765123411329863854166498541741747404979179113915586451147769169538317029098719902722828611307677488691861925540101666373752097361734233697587792361079140558649202955596137316684587798284647844756541522934184296119403022485009407012242214074676406643036942274118604730808996716030070391569871611927125494409004235981751922071883828157456438800295187915069616521195773241676127286204419805887341576854457858967177583071357757484924582245955411220995987779881189854275792009370884509035916347822638332100908109605226830828868206721971093517185811391536535302733424467500521108686748119614948305954535492025157548861677384635257865005433377193429458612685937176405715512291218189879341382075146248823856895467156064636009156076445923548337928808135828320084742159010323257626462506894937590105448197174041712219513113508096380953627005871064837395823538941336649269648860899012773309282565057365300065588078706882504596497412170361947838451000148795264064940371008922894283685515383028070231819891128588994608918491758092026828942034681428779452744594054100914621803979272276975857024468789889091660110380629691409831934291218778897033140147603627564905702865800933675266343663325982050105265966597912685907157918686179437949687909918062551929973290346474881881072290741055360423082698793802701930265838639204113814778715926056345701022635615606688258596621678855713674592343939567960339803423634979029666278866421570618481486044616384242442757705472340850994622026318189092467696198245500779406265944574917836699900352184122453374024328498713895456140508284652890934943607233146828678230130932996583940597210182017631619574160518443155096807668992395451233840114618536693734931483996396166805066285876834097465484733567608824071359738272435016843962459865884367435641203181814425347571937164722609377263157882884636569342078938226614625353029807772582773323176470990317919436242283285798134843466699896878240146694961876375553256166015754242326472191456377087305167991298165005976521783011241783773660147479531897569180975117278495088647798261396698585455490839808325200999740181685708057046393457331325711421135336929031469218979718208350981491537926269752555667386750255608016043768059904137740694334996655066789226754323236273178070776620598386344532975157297199331286342383053154600686727543830342466496936527127253195116876422566252326282834569952545260213418120305190894795485428248798257258211643450001743540660654779554522707147848162817774819893523714739963697674622121461139114197663569045072688376148999372062866894372506651548606553577009445052421235575359145542875502796392485534296497662912063827686271090087884280293364613178165038470131092347234997627493945639352825580125755713830364017455818063415923070272653387307545522737830330877127386737738494307596518103655645353065642851470134090955613119199346108469572670535525836583784587475356580680634929524323783548066119810632398717373830230439695143500412375437022308021136569861071329577078337705195347565391616280635361874932720176996729659852124504181296080759096517311010946016728359810922759482130617931176807564956922694204605635862461591484066840595528968021284692797023002394761833417781840548275698866294984924975610083327291200233535649206442736061265897873779231138219931832196148322280682762682992338646386001579918526749121010747190003194723621885610955367966675533765220291149829392059592906201748899223286721156381774535476761311355012004859317584215656368630300786280482670706274684553138984410748632544330633264567333017098561283218971038901175364046544606351519623295207256904734312050524452642935605920904147589918555310929706042934817183092813553077439313973612585923663209840255948233768064917210561384521624960946836419767487587053934564188792904743711780943465859453093295048611828367831374384905037077830854543604632932967399229778006475404071068062805157305480703221246515747245784902035036265991560863497819155415289290885109108120238846006551110101936858397324894271644608834973216075140889044975965904327699291070352845497847591330804055042025463014197298926387460353139157356316346816860408676766893737301814275461863828473975395354270898924486453175084529843246057431494183564274374827324407044530065826365026321215199655175047473431844723243408717368129956463485519697225721312586722741895580538159184158789035329034858374429396060587664333283777284935254232644363679636866132977971519106109387122447697059878975018860162608328475636404278669240724234747180224850172293296542198591508096533172901410904908340281585501475209737929321053226248764769066579876843398887496111662736459298246136889608056190495772180520621149987986719064842161615891922367391080460710034027307778881660600677218099486304954571608332269231120939817614715052496539270313652041055386529888298243139902759188064058308299023520465593414955739837129671629945825714858347405689537754504234806825158272383183650545469431869688310571283006209070182631008463962981568500119124668580507725929264666410931808848477592815124386355227202877753881669822632888038659830010913522467798848447864595140991134108504423556944197905510981569543032968296868010195438138822647823466898681674892365602781721501037831506964967135176157602683587223708061358871047046573100950281474254343981979216558337873119596487830317351986858208980894690027668258501907957627198863136893054616768951235485475187689694235914210263543610620919199026761773563908887009931457174960581909765899552088149560917340142464674088158730191466026191817266186879703941252311898685430326323562786409584948791548543091306149615295168635309920303785635746300857064849702662278799372865498237610555616348279630769185892166914909225497561273116657945963182609569620762868524141782709227339499469725699451746736749684455989176804141033576846549235488342913881306289860683560750210964796958242746955545762474153055865682670719347671610570728973992732975067599175367925214245448556853796920255576164798475487080085022601078595296182727146032719308243577260384669385563678318751279283758305495263795707753198665334387752515570310551640481164284630430961531452905995713387228106209218134703896107878919148405372650235759071368891143751123734987137047680724649646110812258930244512942235741573481463700643253019961380816643515033273038110964327878253173593373242477711225650808929300073148233548110921052305621738633677237911242066542645552740339520293272164139458359926114837363210017060675217336795318985997824609526253379022945863092590387812586222854996310953626710703758809056781193423757301863958992757689135747694398018330507348469497802537593616936639709640113007467763676046671987243436491718327054070675795967218484590847962078916758463619828393560546610784875460598927023771309864944391743676741534476892316744004014631451328033472603356457558051829607860118286249735323964433732055950406074408127931973069102902487167998863397895070060549673102205054023218947238624194173564154713796713248807182404829500702848581686933379775619410640646336131130275695581898746361829017670410695216122733484898064873641114964658753890762902357456203859185689471163792482967385838999162445038720004071397460900735009374254478495353307963158139441537175504592059121495108689268922162149509456923805054619757729946260099650160028870681587886262327306916278378666984652654461656354135691113696693314331715532546789384638488257512864670964195859782468971362795182042513943168817308657728624986114753340708786301803858456092773605127952490770182834959829892020356148036611488556377958521746914727800157101083786562151436461189707162884959675357400807032210775877479058509032393699222494539128638233648199735702152682187874486907492313735620485243964908082947557116747614180224538718793769518309695997691291054648129520466128969544208167351744033960120650000414236834265901853619943497746097965505856254395968495186124193158906522589546773147222616241146680921677932507127691195567356717193791771920302149203723054538333586302336051505048807729403525726390580271989190470153502994210439636697279782461311527962038986802712677729725334049107942572367305979991231771989122988835741898532405170656571100130253409752046001371970898319154650758655906412092536399973182390546542891175954416383608062971110711903523080256036835655647652608230442555354763385098426353052800193109183628709932433803328432786642382364688756754174813547188721963057526780292803967520547865605562452757421416987228331065577545936882989234732997293137130611157891956284254933431134682722624051263620562185528749361094521955121397142416625428070358268167023883731556917399510784589060288487004651451294093481995445525754964858270765128729164187077397130323575633414763061635317025789981809861695235682415916899105931160013858631996093001216156930233006812363214282160048060327880544849519453328755941542799550143519883878052918000079025574862892199864675425578842176159846869711250918801439460846255973876617758411352402304422284510238088241136027301099087900546386995422503584579545762309005974379848143219067663380703052718245904601831016605038996583755595659123095246051034398807735007521654795143400915907536459814306524074107402182919476056662886353330218646890913527407352804649069560522391352303256326105036882012716132927018004637526887680033467328758876796322920746902289101640073749230233616780950727960689852532089004819014775252523941501044498598094221217236729772369877798562244752194080697378945505949771446741538117394854941591544802304863916960150132939357925741577798765125007770308425565186682712650507564509284653669181677292867087891571582098599614145161688800783406740839222907714063979455031608541122157941558990328233631027625668642793405849743876655114172527017226963067018521918864075957990303716003138177939727866942312780729573444158367808771575741470378477362864279374982349938970390651867770048502510715356545778578789715310559811260326158282657316921082452347192212082458222322481896032298319458822397748896496574471054124849320490405432786008971325011311712348920721302595743212542298421876875145248503415051678141501007484192085864372924466559078495134493642192126871188909752977539943700938800060879331031648828593208500507507526853321069366941461944348835909393229654766628136933975357300909748124176986737668601630962525784843433155671948640046161373294931120093781889413003349365840904480590619405411136660355893031117098273572964384834509511294033493382298589885293133785521951695105702492516983939298072750065648599556081809307026002625805799755566678227797723261820220936602606163661713013815488893620837757267114049056247246546049512238657315775035703261192992102263700818103730397823711275535520127301753174582166983343010395760804179056269619368678438333003436634515748889586887499467515219850015026671180505257361257704710450487778800791867072066563733770382349620287396954021433390608666590671786795372182155838837119189659219143665040854653923347054606546273649422887901954967617170684748546394660140733643848730220526687041262219403570841933680969681926953937862105820384624267514992538854832985358299768674988257375501079189959027150722231713068486256116940121977073257589233748835034616731163111354971407102845584182380373570499389026359132394899977146700712209824266490856609763487133132255287236813829011009643266576251882155880864750932786513102822609296537663699076113632442916284016615563494595151797605757594857789542260537695575009620539758822198502749995759118943123156444285077895686950966886294212752861467902611176810421168248566402814259485476424022643082549331948529923365016817815275559421268236080821690127569477934933395656588225744562822659566568554153003589932439593642636855181244477546131466174253900325869188986888276307164672871210663025109622249690784132475342222879437789109740707147774489315938900018220848208742358495190285450843328312620172761962566974943609672021063398688463455896399723428126805084809000375217622062794756386195017083346850049589631487537187710120391442332136996869753679756703806262753674795462123098006817519400112472600866994925596898569652770560301937177642751222547877358547421534860244092009391400930911901363806450183797759100852793467299800410714442493533635303496979552096826375135367925289193903961475769495915327632442085582711591848520052014986158058499813135533132029800196229149823205797189152438055803068552976721321840395420338757313903552581907648185861245622501267642964439826716623438194382212712442213814968690606419186548544256874010978794955798973989649487005139401970754535621880833203970898466089759885691457746672968233949888323426967052298850431435638164859288322871313247301451961582243450805691603826669906320795752734200915398338926744119268667987890559036731017962721282813789730647234877796756108471383348141210733316501671939273055821287664433536002661282084407596231072157625548246846517258472176495682819268343879700361354616067054996598053304552254375780675584645133652815686288867595131069469995651189860687471168408722410983103107949700774267176760458652503005372948914282284682911453505254137863100282150322958472032041063534612046701701046362045850528287051206335719695941233944853361853274836643318519369375812416392783732284944150483841363904314193183386959206613488110838924084602090513454109340177974218411140550203567124382730700737425095229104414453830248120257697805143917168285959413734051588674814048582158146450346371488553472245765453679821792553130506666283016293867278602047128060135774639129752239965404786546174041642253046233308073946765422876166099330395836596896609976956551210682196497093207961099854245499521690197371481214978414732697575864792153618053788932602740885371834733038556864798043219697207969544079239807795345133837901329864791859854800641677535888252918835625349141936185786147735883754390350386165348606464060018366507437640297294594553200698863057301800319492443354009157782906480419945507786615637482656226975259116053614235282634567856626192085764053121125870788019786361617960231766712270098922941740517459048338681602438579872470019776595522796638652973528254008521189008723728402124951535077791612518707880966113369464181658557508438696109923911683318054258873563668161176847945109993264315440227447115800772665253365741282618318086555858942418111645733878601636208596354022090852889243895375465770485867369686623333012922311753281851481412086887783170140094410009098936088794358762209390849863195544817878789198689617724176598057985576751586272648920508118430827227947089063118450908113190759256308491666953202395442161957223137577328184580173382677017832124822531473490904943188326553330987586952269523514558700208052249667850507380718268129271099726025202109162156947071680042099205093634045721901078801923416111308613023141672173021460906815509634438014850686236253939975233391524500458330534180545878254083363804493614243693609368276430259664852302363937036960703645819521767323611393927692359979046590619774717983214356158419794553315678571101205917172335224700303355037338972279699027501677045374566754374317447190911419872178420983262228305164462088193146211809163765889132765413136148752811089252188525496867125576397758905821754507024379580937195699102431593199484992106322139974100701311555113194878940829812613355324475202130130723575042624316206608058575570002690542718121892825686871408278339090152350625903929715744017493250984859216559338512722791239105287653361311982693292059777167233176626894086203571256413053475186072308199012722154759474268045424745412749887013078814621076664845123626293340113822232893070020709428408775262045322945586129768353848457951979230163961860852043258017847629471237228812591613342322498315022104065725893767615489064653345093284257382282707308924765347550474395860247724491333409747637427919789511777610097070151437612724679525307093915102965552185430788189661308941099048266573175358982937588899807802206584445192680611595992255077622329228025747402069450027631639642861251270111689551232280178809879969001702464265509274330428419223778891710660140175620632617140469785115707899355997133848302106857918573158714474952064440698797410876880752410280558411598812362826308831817745089595323664345367135719166428522923921300817617610958461284952906332020679271327197041315208171953181985223137891952561162614098460882534251847410092539152452763252429966377298862923299299830795453270742471000499941043352562262183434147444145037835973493299806401599157217593865216546454551539276884919800504205689736012006457760830649888655225623451385117643449302096203894056173566928101967638388904650631163966042192439804288265699086998979948016590813396205657634749741135249254978077532800707256808004586767054563788878098988120599540814112612628000432242077971828000024464797843932928542175821508286675203308608920089005851288603972920186791495538541309875106240017688739297178304475070158310009719041997180853395930682973957685776623058033911394652934428743511406243795066266328789667270914095405316999874191317008685309821079508837190124672397563191855752880701584974616740642740301524852865820578046436355092956313766940040962215683585565048192831452176206499085591477286392756642087386180319676342853750323144902529246625208162217977022873808782591163539298470678202523704312096436011011940177522140059071770231773446669450276671288026965444269643973420229874365375533120983375526371644183334785526939145303046457048645903558357186306150371831590077064663657195440193695212727354090792370263477979739724179584489039624562117379757646525859056755737092307710331862113945089235527611758148528454715961580753799812218066026064820056658695307231397843409508355730998970588219197269108685164760858534461746577378900446906542446448054607127414244119262527223559069085449197496917202452992447035792248260431717796601489989899342965823914287809621923378881054436055873247604907964940861616278651017735415041975631345929776889206560161124203035985824054222098347895797787242369680284506395124932055448690507377665419108336425763432501588291506045075875297880851021301941052483622450074251928425029655629575873456642912379043530238400555556637409828341894723370927427263970133367040445701902651095154779330332966331959787557846326407578784180872976359689716475882220447536254058461407643239735035762467604303367148428451062556046509937273265124094477500651476437914417118564337949098610869192617182443125530804859467306350578429205532208133067933674832555544945816311255330183346320864436701742282348141911440352578856860561918364697356213181781903664539615342128397549193839031927809710159351980688260377518536257788882312991564784097878268993561937447390690924553370599785831744305480150225732689273749626384654250107476786754848660760492846372350843606984196578892459151439449694458124065671700266079925609490030067370793415897137343811934041399424072433579050873279194830474520121799319563843101282934961967154676022104099491909782613921962771167860368694387275529512130461596188601783992984385768821029895109327760181793469060166567683170297283483593997570597553569364335868509671005847740136352403355368216955360641513758610263212835654476079561950650640318895439498582982323928367782971126856325026398006219809465034127403361893199604294328424724299380462664929424279802337094159442274512646202932650506970247530812888335957185266112276898788931948262647086365963412875737962652759962270244366519619945094354607971881367136444789441094025668540837524613551588099154367734818893778095267876060932395816274547275846136445324481364617028831983194272422086786468672350402915875908433089395885744399714793895786368547711330067316026335726412339893444571772919184140189644276019999756155492923346215892012828515530500048171839334590046840754494397684161702279739570228827877301134326331232349467034164345991359683377174433213152668669600293349315244641323580036588222910289524046363840833127044709941770820621038372329714352886663812308211564448998171090645242612349488824895871153766928944810723276275346961014070107752726856878094277979934125482918652293048588786355888833648072044073997807731343407272254838230317709479870804892206445805758890914622410818817115558080682201933895458867617270721435538918225493547229349191469082544493092239670980555251621446223514340178371644547369609457038881699265632675192899142738498339381767424029593424286618830796326919991894372691350729895372722717664879540711850805820166073227311975593143814870425155725985383400709233587123431532810644907582005258443024492666598067386337753406727286513292204618082211059099898818155619939300293253192868514627120560858096281455218263649927361432381312784667278843229639217056937548232992918806099502352584805601709745423553845297046698611464496522953734116093946049292162718134747936589640835344415871246019217732063338753613630580376333313460228160236282131205795304611385208104102841926979363491448946998224625919046134756007422840027303332848143285736124721997518690263765857784882760127772238659505097484923137629341174289446457965044122285775536233704216705345676262251761806956474524075070731414541015803791622026604579174841339513373271438799584056112449895937145299913841156556335845065368321935590046575187701166909322640067808281898830457687910441533632487555194481586164192309665757845697284586424749994306764744019242110653272685815468468186745092138571407658479827895458049176645966999728733705431873143281575824413098956816187635308946188178574927193097310979121899248011799523919211917658397963367479364914538999808498995757687154951951343351372071118012551652787555105252768524077528367254004299806394744664630325760374409980326652844123874359869081962522564348564307350688117182903592928180582765722355603795162197998301959707994734726683237035160201982878626277077273499483044224398602702234043182196207096099718671069009009076010635153886441979897176672260304153349198606680704431551745810272035055001786151242235923780723457053432954029536424776157107484141337532117991791125804821330944237471725637815668320936488523693903546964198853992889176735038439028903554970209761249769730882135591839231803292479067512812559207448411078312626231157684359027830451455591422236242173313794709274310128198106883064927527118922689795089836799956355974486928582700581198424653763242856507417037029389828796509076939521524758449264102627246122313053510847245533439141058730040018570261194469837857945653240518541268702173183424657603238690928066111525401869411256341150014010535821388648615385482463139934926455321564760370269431659448776663381021647171481366340710289987779483137394002773336924907162794935463835485201878801695424182283847981282587541660903638352074972009750068231982884880326256254881332544365866885189447808142664580590689988034681432696852733985716470766751127844757324391171303587050204182219185396692927024793610590563696922030952764027619195095294493485685421078942361104572984416831565574091572600892584636692130440289862365322496619942702231972845617108573052120050212336086331656421939371860993766620629940777736915866641278625056756310590284562903784276600254752960332496822507474467580085618103439185217519281461205852558818601752954385024268635094116866486547994492833650446273892638863201826635377091369143063843247364179669521858697412062820337106874344271544995444222018611183089955007186273231364284691745657766429237649929222703291795656856705708238865629573605687609111756136657019307622686333405184009200409662127273099678546740336214750670194851946945910780630443543872662101279694618841446705936068732295635270705106657203354882834871916372482582413458083716909894275389417479593722893313648244769821724259951416286327026350782186816246539177388921997051040769402809156337382792992804590824861832695704949513654897698260990951393674264504502362217078580671821993971840889957281368673629709565339601493350178078940635042010995231957137691152394570236989559044435508358427895142003758209336132189348433870178834614501790441777116358051777159547827504520374049573463564958588889685060213636338630498149558170413529339509794515611149631674049539599590550859182618929961605499945405690003395039060825412300923772374422810009465431536424655175288838822846127907895792824860244658423264470789894536372536371561450884090504520026026505862053083793895632660859784501475649464891310600200013206227308165388372851751768770503924339127174546938605454920464486335766586708005712715066672454833526433230169924447932921184715207838988197330105090646368661313797191997107764352954880988297620717488664485897102740780241530503304856379556379430365726468089227192248776354204193550947108804978278041430064815525988757186206479973481057408918853445981329374328254411212502802094168013437717573403271015705380057569339068134289713617169203262107686842038214567799000798971522390974069057222886615087757457831684311308316560014767940244428128468969405253785219427962812657015281845505526627071627514717043937734394518532291916594254735535929985334396696409541734085012009397365342942991275366979442125340117598414258960445526425555701601116215465929239937938553646665741924330130565688284613333483819862134852037793717626686380554097590903216936623685695366192260284802877938435043830647372782295335327355688393162561647238021855179467051034627208487000769501431846465532740039302618948246170343815048056377985284383872746330781359341626758589795618818095134322733552944972898304551258935051625865212821664008169274420330052497057392367480275454209701330430378330454440875044352102939128870827338389039296560020311595306809428571469807577316669153541386428921311769189737585019111443462259893498565923697735781945076081829406983557703705294003260999267639727900636039813740843298496881804343037203826666045446276475834458148656520324012041312361320878217375670608726425842300924797516995948934098919295718660361468333834725719087160258458707764408248220936013287208142500343155972367670951705739518656307471185936722866916144946044872684737612183698023272197160532604503578134716439564772712727286887432493309359138729705484142498748312324838498697695768159849547886172216736239225291301931615676320092918771754760327471037240356223698084176521677525867558478892477450717423081686871475279761128896931767207647681166751156869261242310659168588510379849946967533125750548569115257805317997709925293724315219571389476428011107407648039424070566701636479644258697518747692163091453760382899887849640638085978651574863613657615971155760824058025821440087548025430306642177966898721881423665074318257680815059434562158549870977401955376593316638596332390764718482600554012081398422741434748682681891536324463566769914292423533234920929831472387591307281769760994921600799623446297354063039270473278160816262543899011609388982461833792347538020668742767010242704753718851172983216347519492363086190645006955794294011630009455326080455390214761838607527854407814489463816756576557495552892727374149287243820423748859175996124845553538971232259013625801316965907639123701094634905568605241807462078224743669830287688287236062062485301264392761731779983668756639410201433543163365792534125727113905511982871833831672384224914670916168106880979693804076445374593305317853161127058972539864099750559311160893557722213610547284912266468521957242950073772499940126330488388198255398886084682251585499363405173729913908305429679203377229981808645909595770461087161189156436222175097610924006556900056933659144358330170973364243940311136228476599501007665786573964989623874170831914789446855350734226965271926151813902821706324254614490505576380357546062246772958167847439284600397237152139622242978450012376510205580719238161472953562432458997933055394921470148600348939583252813071659410282010289497361992475653171212852772003308525852148374225984019203993118925058801943504203674936791336271853358169129309523055795797048740463117172924015108685906606172970140290982969409114984816580661299931942389381829316918421499484226956862464407556144559153588382574520687303699484258605809427439620624971475036768311994865918894552353087751384733161764550221655615154027835471737623850427282691929594019396232805212566387689025708621223780587967691692517545895533576357752359151417442559295371497749980293631546891898706501769132868649046610337213502728610146328204171823038878050496710145308970195189293770827619794136288360382116471218392308179363326727359929157442223713769096015311576167277231446121365471595078364000333667828367813725589780459008793389096841521515482164369156999633941136859800438797233406664643155401293594154047778656471068831903303982188294475175103235472083597165818019260091785014179183885997261827173208665643720681076952477338323903874899623856077469837421011955526583981332556183500290929742716715860647524097421693485408533138224575434362818522426193209114241491383629049266655890760831891312143287664479364674091549769236606546401208211897902018147045706888584540103593441754090361517088696300103706795656458503168241396050906206313419735994410557872109686806966132260880852229897711913791958424786656584701392045789367962213493885814936939565794773517888072458504701689089340020936222135947243495518208053945911052897037961287551510780871080397742964409323629908214665771206792722301988196125790238745829196565215671211070048298073702690478385037332500408162689375935551539144616434671879854083984225888405051604678864451274511019713819707932343514613137490279825109557850569844555280119568462428393118883152098504032291475549626579189878809842022787492003155303242254360364512495283187488344164377097888642863283535743867543227133086218087840632382509670012672887400345729090570599433022186588814842630291449226306059140351857020806303472057136874513737080452614924828733679122251625338018784816787213213834013034910546446404072796117043600765546696468895745421332407745780669399266213942866363795667004642974467119063108966790968078118115219471557235163329448679148584162300642634827337238729398693280534026433331882812582046321690840687892843536678050990682392621326734358220987740156246663307608279416719244728942671439013100412607459650955786645805892488111303698944962739583740787323837204426383947165420953894744824128520179244244561021144698008926920705384838631121230674520863098452501660547269212098730166190465609478689852638440669400838452305428278876687764659140070992899827156218320370281637721868652730202996123272004752655254298037907988707667631299379762097598730311548734808458134171040343634082764311764659706582990552252224383087339958529065276271685737020107645703970754739699682194407977749128766332833863369192573511700517900176834697566123339837501076955047931595352705049731767363395035837343940917198347586652713497388751652115092649567331512641607157776413565248382701923732368332061989627094777297664591767495206758352845567917180122304332662011766539747759479806267752457785052826866045198372182098082652622426985895855065408854145707494508183888519120288472461454260360380380078405036316282772659450785365051739553729270469101086026666196437022096398719217120001480697924821618482298864665552580078175730609319008332838603028075717188395196039664236148071095213579595283049530047912056022290757589472633624402592650843561360383738545204063285530138461656088512763927311910245858343709887901271221566389479857070156984483783357129172523851354534305340198307900434303250480320654285388734577363616741728540649934996366193330474436770204482879507611845240635893690505849156519202138141769989637996494202170342393473000715115107099085186894390082018366219070899871570225855485074096071121074733680213377919818695413421072153584824673638417054186401524896309890149749916016871165300984633428555836948428750669965361092453909022640068935829081813203522203045229560486127809631292501742563430899392793598560954133655186609296430130458579397780586391549309979808490468403945266403254668193803299187873299984590171915210361644213507880964603579881817584916663979184159018130771942880306395856497283864099576960507922954539879303048918215009468091757988668881257027669241821556405683353445572820804887414327485268551752244687856754742416523750868684579843778917188120794848841063502629705442543923408820257339646523866859540728978505471893717774151401763743948161373867532827917393004605920350691210234088032409629236183293659892675672377288813290309366995392219162925035568165743236010713645737019136846830892715922906406423619004679531123358217957981304224015740430501530323549881278554383752281700066958241904922815131310448001711987371135252907483486233985357417110393034776762047054829914536819784923274625841233819793862853294903085611226674714937340820539647517770010116442343436918590771862952280906442079328616364341219842338569547092669093061400972149713819036373177223704065558623796238255493811802649400581022026938567922167818604004349133811616765838573718694366449512601409763232112297599758029673614037369505486475637550720867050234941486102343051636126859484425207723415212333596879083300122648798055303580951466310752275297797183661355287652937185558434155308961328416874100367496816209156435394086287846936620479683424783966194262158490024525348692019956180761759978764758559760886944476654846398267685881748759357821956495654908646223437040940460543216102978283988584181486545027740812352305256268586138218397355781310293274236949138287800728128785342263572002169572342275662270960467439290655410438425632573968123347670587358455073430264481643455366453038009903486912333163088463126748425818275626795448796186547179171615676811489485827805418551191944938219622722887091881948938342387599178936825564067398294713791698941481676133854008332711156844019125006680755368530766015662116239405476996604326385317235573903231163519418770757540693005394886252013193276547863545736186321319058113939292562032358084418387420492916900799295385713468215555742721809785260263517776376885098465731569845131383509833723768733764151111232878966494898090022093087562793666335531833010064581301027669040319326084771891748179857999656000898906564891668882694030734284580974282357057392802187806336304302433344625925754232036195784006120408970104752227577518978180977626214870837920425323114333286813742628621266774426229429439332297739727786591072453766262014308141300685430443504536452245768032337300742574413070446512176605457192612413590898381136038838633532128512816065369276161669441391547459324293711880284416339502624413625247650831443059950258871851825308665759845458472275948304320306566489000359021576478618928412359290313232222989568665596273743143433869433886808622964951260840997884355705578458541157893484228473504800147852191158534360429789313398926626640970818645432425552414866436968627384393977906891043840418244050994134538312687958133570708159265850172705944973327501179199404660684830493703527540282842916186480729804157655083620019496579556168734434752101911284888764622845356557628150001984149966682286022809317968964985031841503705448204192618283980152373905510531439235981122665372562516930291877946107730852445943190884918908160849533969159588041244147811721237097324184273026501700062291575831135909527116203620720616258519564680723281438778429672646195393191560558566379384140819849631499309328578543508640695158583260401717902434606610001765079079394880991846827700949392320683675172543168208537525205287643730163422572818951086586628419713613546687045302651693528049716590518291377721220903684880579378946077036665430068439467549824164295136203488763675719902189414448735819660723265329267453431953846775328711616559048327569062685160914754625416956252048815465064655646327265935207577130040463251088802865004601713747202351231363856686780974028888001884799591658185970111402524478815871218655912237254764953372199658470301011489639310533191159625490907983477975592039101017454298311772035758023254538357615039252950103004826226497516346342429221543861502467784496675532540724071733807083538448434646333225062946538470694160554332068816010479551929960607375720630643253545971848079475790696060363754353033691646613616680998564308960480640275732606951569206730753437261618836703928880137278287594679558258171196853586684834317502835656787477448647706403277541138542228358019083741134606334594408959218167740618778834558136031029938478067687460719723503679706761671671832578098617658771819821622558779077362963708904723390050631958148179545970742483807134263016487195064092680492680635230432015432237161382204231787385488494586976902413144355945942829036273667383416377908785722565440992062817803643925851987593278534726260318403602769885225656018996785649472184970926144396525954900977052788656895759930156819798359789716206936841550049129307029562031920906777706087260661574885346617326255932737694879680743990988568223276766708476248929994666341398121048405891390183642095062753076062926544790310254102296509265117032789282148424377394828987350422300780982292695976707493518520326148207475112220055910579891639726681182964778580457726835172106062493309298364401110928561222357246154227800478496905164247976362232681063489258168654943836597112075351918394460006809253381136393606168407262788417071899493517315336991428455692012073131007441528118093710364586107869237425082319490160377057438216935469002758187742868511194351997079485844064653489385037408473655833940850096089625240545091188824960690864866529554769209076612950031793017348665755695445745261792429037994813028110105356589482918576573057513336821202872730357270214631811254254944265964443586449819103872024007110740757228547670327154642501412519263537514910878938171143524265701191481210613014157089783794164576616742254118773777365839120511518232454557041291244104662513141469355105086857149393462547717890105140867374727017036000796340021194305838366431773796855013125528819426099452187750071459784347301780124852135371312337143488985419467487532337538508024390874583942989213542959252745490183528421831134526684107456165974076167777393369604914863894377446355451162320100646204720040685952316189749072737811243852869269186441070662944087854894058069005114779388443829922582598943969906473763448248803948617179885206197949960601455323038960464138962699517585734239913223499343141821882957109315277505300400989614520358699277982656500530744178840463634745382515310878472919126634114534160899894026593934459202346476802283827320032831995995903792994160522414719417973454274044376847176681554770721081998596586434000478960750247818545864585811357551527294974214366810229487690946708153472155600319228595830961172624251854257622471060397370462156490133625198045818438991415551787428085387617553190049585824617713230658304273899538614118623760880626974523758582002799133091508822900953458530851568894182707146288707895576754865799501223747130579952186308998824550870070565884141808899998235816432523713420700568483283227705640071842323283430406797432482084397824428772922033682288526321022216672758083147308811434454716634361474716429440620084185414498062374703179097314865247253102915862767218384428778271967630331269278436751955276763092713351153439431330778280693219715152580459338898013915544730535982329114917980835873275142037864655894485078435088253859392508781390328943189775553735742924478440271456492125183062503851962568889035573885515051304926389027116104256056427886707170544265628746282103255562862658688069982188702570300214180379546920413698764560409185642568519661811525793081433520170642788652320143171882880970535837664267119514525280172923636499517990609138975722051896071289383829589214770758409241981322212687696643527958475742850755708542728992849963486681486690103007940155263961469365717099407926694393029940038905948002666878712465729254575770678407131703808170398860032207131750999713092192053726240265676523233808848194079469271819835726481673110926525768918033740169361071386425176294631395281643314784154729858377646934072826223182604244059344106810527110550055477529050476730912469318580792705239753836816850562425315788115146192704578889342492867518175117448943947239441054146233758084388011027004277395916067095906571686047212264580298442187083536891746737041303381087552198320508360980556248871580843417859878878259582331766070976560351900545800362642185689885358456246824738266032792510954067543104286149432414732701640095170428121854202651221302393631655408606855605030772754414488704440796038780939962502060071329155866206333784490113973955501919658731482457284603784898214104413749749293698506674852972982089663970708767018852269167983650471848986935447370495849537380058307835551773512783654617701234790640476907684545963018816596179582458310946459423428714169436808506028049118530554405494489499120270905379866414339449457421270373227994267870765706874495768719093465901463624392100416856408293231263789290955618694378626747045829977354674455594575005075558789921338548853536554788335305126060625789674050147393628131656880509938698220696152840780059764658387255005665211469103020287856566343673586440315421347103234060243762238139839841269023809154330180155386351374751654620477654814123346397038466049352984453892851772018471434174869812232838784116022559782648317183966791722885395107034228178708650100234289305097133776252958449637683012226289878896078880178885702698471646999705532298244549072796716218591048966088998185638198523794268030716935446500259124703557919815192033278756171532016076172138674546651918157372664945921860177915096550480583720623270583349648108529113625264558787957937196259959121726804670015572560899634752956553791864614133538998668289308607033689706909785422283841490126096936124780133766245246388174613271905825486142126138597291983807020001960786383399876848648660555828097157589109320060208506859301391797574443658436907698706608219351638974128864769781748829250134925516362277538157287060241173492059456703567717408038995191956565044926274181720531056231725292138451998338801613609960685834190899722551747544212005943255514692735850995688483964810109365837492330260768021261043210034347360246978345877112676234750329552100358524552862665739181240671230551828421968806939282753979997536139512126142228430105153152799795972874074608434742998802957513440443779154912829478396250115119127074262621635651602749692065021931592247896648109284444784392163065300745027994600426332794659962255920378214553927257472044011725069468007698135432453293986242346056493057105295339851690247724010164287551934379369332321025928296968794933653895357167733369533896141259063910125408454325338752631950687446337155215676652137773231694527664565453303004997942362083510909270753679082858105375535132460043265075266433623093498876960703048418909616434462761652607690824872947261973850198429601731575692728128225164371825751846148302225507407152718388756264492544993740032250928531385043155145080580858005364336186544921122383751382499698022193040985939182215453809993183048575442729899932441015202410732829908797727762492558691380509050388442401813386048471600820833999088417510437600675235397476106070318879275702895469838967345096529140536624393146240022176695684617337645070899099757493215835115492607133092681034413770054559381049646351839504979611967819397164626822886353634798667262231658498840397021540766409585810516654644582247146878677080260505120443578730917102407357969682932954743565213187432110413887608914050673620388005351467764107761155071397759658302187705621963358696987727671515482110643766435318454286174938034052499928958972422430477721085235984783296758503413049700998574698379839932342481027232475374119920121882035013605601560722822678298131390351125944435136113394585735290390555808076724461534680549269433184260502832362152622379449326901118547850213460647406028932719926014191984108703831870242721880063114017256248413263047228173237304765749391967680434786451156236666740247252795176525769742969495968688695520739366990890125273825583351155755551751604604341387972772011062365270412304445638751351915521248158336173419487689838645229105621201782004005342257104933507060845062381456438145211222702263156800855634918020894837751269959240784541099444836346202435101984195305317792385612157497230436282403950250403592665725968033882332680103143261437000346399897647513583676922076994815993187521576455250102893227173364210919652694725315569130407158832147225521835574644700925845990185975659514919724806915448206728302688900822861080277182720476576507056088552631604297489976431052237739141379759854336842484617899136530896525228513856943994701868243150105737738938820169843188835172236839073079977617154280768190200838695742890537399815979537470583183592980797764041844966044571358961875187166103656402105854187377153607588580281531448937867271264850512858944678139762148021732979631964721062648011412749607926444104749495430392986262052047996536950207263661792223359820006894552787963348299726657047794455837309046587902053042080270018382105512622983480109429217279633712122429031461416346528726231823697133251491097922143943742675183555100139542241890336249943363326739470926074792747442481756834858714641964479503110921580848186158082835348868203065069857012190558087140188636632826672082858873917812110887124577184364259920149846435200957830434178286592018283364285821045736232239503680213281956845687448525670269278064014258311676703921675824083508106207202998273776241500890121665772795460591108013515800154668598309029208517919654395463291540256505936409422912008098724979597947425192081100490872046654220515477957077747307183018725760401847425679920322622346958151374197022771178856168812292539169061031927567713744674161424715019696498906237967308809633553909677275806259278213066830248037295855237537980495796503071698554308925024142124813852834739895031559740799896609618362597573296552491921928483461000770141560558356259072035832745989900241407801811845602962722674719960595752517741172995657341405003172564566819208260611614088134500299841118657915089375811762269148514334646629665332023638681923292286278392164695739835483527802577443665715263603566193126809704511690074055238828657953654750135278255165425921980723180808658207564218384287996416379740577693083593246632907662386119764191315351193776466531159202876418586455492437703838983349244836905549725833909785613471171225870928943880411972357381445739962210779026909713259762933150170434816633435857856747099337675194612210767704881740483003205843314825301235415264570158670375727125798753401878791094234413824037785781003900831726405800264478257782704067093158235245778356141177909062813182137904989291085500662771308875679041335012353958676314442677239079213021094543441487949188857298211008342111574553205961174369134884748679287275209133885971360916126805190858073693590528627954482044802004338740382944474467832639921272264729509219821955512811389400171487206184071067805945373283988167264232533996548716784368244505948814869934450544597943385475525467284285367631858874891429895663749420908797553116092309490316423424271264256185171802754181336822394052727427420022814218740534387320841888844917817155133187582079992409371578979120661047061470612387510748990154050326420910027084965158121790718625883457657707850447011089445123669022402490006725262890310941871262471287317579552235902742121875452412901094392204846868817211567717794687068419361517346992255653409852454480166582991140824231570258162560375129514871677575618754534116782388282850392748539065556985122020070231482546615930001563396734225330171743984458650235056400367061395669795739526055311141916962696127362576994421334317504255909609555296457260286798320456989234008223997637407803722497633627663302491365448229705294999720179747478652562273171565333281036363506841857004678681398134629185406620567663390212199193781496332570332820663448691127776510408117028656693896678407089832038620445252228852354102364031059750280034858320193790974117893424648538994466402855927301984781660621159673083533007698511188529532424451549611899593545535717352446631082210614578430078478732283262097153513345275971452722342783849139626418321004221572923233930130513110921259290200348120817274104947895572937280502097874351203103535898117785316489836488045629242262513333178759463197784821860924397067243204684372221439852820473223114054940214479439932157915607583894066183109437233528500005177549328275419541211971195440515575207658420855964849676956436595258224712358203262460049311326085781913305408697408571579802680870149612941407314799352338483339561718946413301554888639508046666107082043629004809212754043219369995242134386830893337835282169446891856742217201229136576327044086355080581182481738803355465204741645212140446652010101033903036724609518684814286295905395485173124766975016616843590625431128471670520706147363829854704991724027877012234910418042635175340741512180099544631177536802488746340531834835975910447103333436809807920206804043692808389303186031212049833991921522061518622619563500744828500364110953963635009502913969995532536224696301114723797411317709531039664183839929509666138273742181615381391833962046105614871982772735999792574480713498106073102124364284261327858555508407073040315402205330175262609545044079868738967797103120182051306418294508710856348757850614022310877626393259497255845369205797104127222685414317572301200198999234506190483617946677136609565594679119248967571757548129435527337348555939175805337424419443288519717786323864446636096247899887847569370382222114406897164830169541788964368633977470114868294213582401444916847226446568715122333689452040601729699925191348782870538861195671500402838933696083871559070345293905982135131526482575250312052392823637486192414279906945593233339187478005527001395948032039270882219779117395153914405883925341088363557730215755065505962351735282628410077971838868630783281793925061476206466143193612121888224381085347914614689182428044844789721712106016072584733604452227342462494132105929933750500040617327720368415726534489708749309201639693460284252644816056410906402327973515824092305961759593769333400372108013647809267680167661816232990724956043206638152494138454356678711447809902921835173685677653071270692251441170469273592220168950082269777672411460647810511012351616404367143749812807713933776189445910010616814425815539083611285436756291782329099525204648750178232508362595134088336538078153607226912261117883814838947135543720246584831175394397332739312758719190476101483794877834886411184446676749525727968411947856803930327111674035495139050374691568216543827939742437173460114766409044058977118212080049537946667350979383303900878925542630539596512423953550957722169144650988744492853849560490452827137348272819498552455151189345367232643604158442609736186296501586917940749896265315290210315953728509708332983234766760725406371156144486594174229635776678116311025982981770843369114454056830944006621315850758708138332127708725904876708650567380419072852178128210492589723904148627296489253715246845645388612012783900288378463377516958997489633192960496745419697037831839793696994601402797061776995170912334234848033677661463134413903631074476818832773289291127170717550948638769455603246832751652826545237390925291259589646533991952645917438265132243448206017097998958999712988908687680863769264290601648983430250574403453299076236125247206233944039322014527463517855656461914866257150718917301865597231638492165428596993668038786614116679321576191578427607966648349418892064102549990476264839920483428509063398816469058874994820391162816792885062383420999396873616577060418847437039243086723219490294611424063619389721131703481755751332072439274182130247294513566439724364335520531060868572044668669789022010431480970618536155973882065873262741478396486858864898280060265743692588237878900683604561387156877836459861082359588804757444812095845978571328899272298009107547783096588876652886766745969104341751333477155466014949861623089273993191554975249587907702849430085066275407345495621658702918999489956675895807369106907122674735574614666835826861168912103643740259222544212984796682410460766738003061383551238674332885566904085445826898787895108729333630432985982645391423761873128424180793372287777426254703744004897965961875701344337562693957286900723968074993424726701535191222691602796843916168210890675503046498677313791746797865141118745216295678434100255968188868956821021684092016188950843192098246231021918014104987090126767237656375440792288884912968031538543916495484866238586926900394367481691542343517250055946586018679515385975228080756947468541262376249063217559807644051005650513574793396041115743941307567276293370068034489990900886082814665700190294009870279610435768862720136679419056515172388728650727847894950512508000627725091606255635425561819620327295169773363614164304271367030137435607384080471788707830302628698030724200452172538882567511061419483686021018539532013134387813368076011685783981230394855425209290062369292377819453593485267750301885160713331647307471631206992830057809846970997371072446022167636911788210215510416234218596295957896459035219746039398314395741040805941577893246112314752251380507391741764572006278664668035664390159176616783610888803754952958348358755804011401992290447924813283566519298655668036494865939559555550593825154416283891941175971622832790809748317467619423013759273486646915739333830600971057164695287798802096528655929795631232537298935962406422876370973466689668682689438677399201465331613200098156836082505943669814212983630924748984384644815028505810362257662992940424384959740185252124440088491320061536372693648893017302389182134175782907959566467550425065997050367902475996171164450298926586732519061180728960859175215209754910417698733917749067872055606889143926946911608628133269843639630379736016466447765779406544798051321103216408149008526905848946875317759997132746621033596532271804069290128074346194118408221355515861434848069911781783492447150373940002229030009558816041910175111477361708635527825189880182833153576707810127897867066798666915923810710643311642022006545584401882453547336185819612466452239022165919770639068010571221724744440790632424220366872284703393176641054153026293005326539673698578204645986767122725390229128036329387165764260949838376557939109322250709290504549765317568943591347924782655043867201361016981543092606241358384387693389281780158058105681150186183086266366009839109690999307298544751228388185067922049134404209033364488804895067042210524547544434590683001294463384195999539570757648937037510565927327586083286255425403656471964748396001554607971185810867535915557091124982849663472848957813470972941434213958440227772372555528843107263654119252874938238257178083274666118049147744139717144200426499408008098712172644844570174137908348520666372350137603225855820810015383989561804346323888367454385036896556172536783313568230055216117224410151715414173328733351606515123562700057811532684741457109247221412633767733369340713888709601095810277369597119530311578540599381095490439600876479773586648731497209002662769132352644100535819718166196559181204528845687388304635066826176371396747547454000158600721325683271990668631599297235496323581256822503343169078511487390020103671111471388701804525811044266808391762415559298955425804768376993186749525552807600768038222811511274103176434104721683308319860856640911339183212009264600500686093528515308954434750982354361890851483236667254453279723881524129670307442485368374755752028879894330444987814959627680547513403745946602818381942795951002378827906013774020153602011321272959727397685236307351193657225699876774120695124200069390485125814629612051174398850652662559427957272106447049596079070955243988530451994612009582817043321915325059982734129386623060509365324500109566763180656701586704761121370271608899832168340232988995005971912263817864427437563208733231097906817581449935956158068340485515127386749043775060809978959792536196469233785031511932631635280891919560628724535807712552487701515045843287652758501116355102784927826091577780647327029512780261973395688954059764019337896881822258569665708887995739626904245791383576950739822309189568278668430598167088640181440326019882556366106838911611992173458362648831938871166630664655143072996580261128581971293339004501599215896039273485626323020305534189572603554995444685488818280137168247007214889171875677901600627008811434745558523151275390844309439221396155415685018930363879804014225562582270221041757507549855077494119849508213377088295081202974303742491283538532271071383645035179684608071889304640322577440497292895524845647100077702219459719451387863780696913458522313390604651219090149464232554754160791313160020553882835697431280629237515010432282867619299948458914544149836074505948100836719504764811143620020980989012139291437248308567441785570509633005425207814514127602646380482039906894724763167591441725803320617269801642441294002984883816046429937610082062964643176454883352417645426160437576107723828764179741428125783019841593022829955453550376500987125938376474874075118491508652799111024964079403169214128154489154203358424171087303333740066204273456574897072791850056283949107876222449702257020337082554760497340533011553705300419659994591477898519821804172436227714417745577729876162032023623227406590653952517514220840410836707639879164439747652283455474345630417894491177926604844121438941030773256626555500962794738917694660041618709375415733209646798975951083465125929543265541005484908205312065211388121036457594762590847819728192514313857348190439929962973877777001092794547723214214562007239013982548626963243868648186777417284252941928434445077010828364013653438352201714107566457431848768607588718430433371407208157606720881493783096406845874996662944053638289296648482278325959283830560832122131189412692290796612626328615640392140960507708918343314748392234584480139746566451955633544640584730003798471939623169962419403869419517344575737592475081304138132548013367126789315183732696709636768153935324425321151124119357170435370802542304396382166123695010454701409400167543246500711856055338352835668972502273899895868428528939864786682878951385403989718554798231641293777051031391690121992789587662549203983206647605218356554246977142679941338675332985527817328775647380072676338595112724649621944139727354558448254743382011913200132622414700736627963704905552176184305621208702131450957699690041996478007314676076527595353523371816429831963755676142236142800646257033541089526482914848564795188129752833872805246695664391821652232128138176528402011255356626082327643348664998655628026489051389418810967525225155080548094756016035966747961743757546257408722267723722990542178765664193860296752144652354348997845091491302034540268034391689804089907793773372552502268991729627739355662762932714359194114058713206991227489243871228762439074608944281180672668969298708603029345743061576821290004240816552489228713746197979982104603459995701819961162989930267715788642940267186646298874449467231902575991252155731047418876011609698915444701021569018373716247119615566333822331142239163869915013510661024413805243991970771820304449797560377149012582162014071919168598902160491093758713888400177563203925431671428682934007263872759093590515544882402252090146976508582347388112933669860407532544556642578393184705108661647744885626544739899557988442561400225959706290777352944151586030625345152687892151283696765304843041297120136156391999753410359779641436831767845504764305029016833517941248612033080971129668387682387725024662743243183433200677513382775187250653494536110147599559690944133760560000563326858366937554868864377775996871528204549006535375467612690799429280086211869033130605376148654849265684070622869901160542675510756740427517899802268224569050974623999226886588587655412428224719606442719155842565884741615641155515384956688409326969125913394171628987100958841621911808463141860709314656230674308623511592214786195636880284834414003201020360768918143325897084303422643348353341213249698585239753216739130478670786297991735467768298398736099407431734979936770068652855557233607006713588422212097651552271407608816925338270357121949064397199509913344742086406693877950533555573130018612906183831936444418982007367408073337011790113394234288069224213054622822061441411664278470139804521820209678241897401029876461855407380702180473976559846493119790123313272109121429180231627071744111848861748141050755016297697597004875327627911937869052672219631329427196211294077223410849475740105986924725512163640592539980462415153394381691247012483861097981474230177640918139446506610721870404759064647676841766773446419027903943634885791575093288537943699583638821461671244370959622595295371897628093021941445609966753513221260377459857907407961508249586917798593153090936663268862868237537118874782898314585488388889538024207789908721705170980808794660548196310236315481455920988309312693423504210203460769051952064737855789618389781423440714298408012157676027095237017156305279274493588301536574020048492921942735510157469616907181630830973323595152141965560768536933126814588765522248288410953091822508104102416327282539166149191378277142933800606288310396712289183317758368305161823356873239921311514523763946802742705914153250661183406446096326224824367151176000021654375116083302248286275069354922578725829866554071813033708249375237166037921472302541263581705397842714305492376410063534070251868656901188785440363135855510865445618215651212823558327870255248683389906233601681645390146472396910499493143367237722057325253054997859634664760661365757028034324833388325877024892549256921393501434699152128123072864374368911852043396134679368038638621432498305080552342649049265069484590700686341741126905113209123349910019721570912153419755576442152756097916067652897663360879038880595302078246662616821643876012334462278053743859477171921732908217612902279233952741508707318509542539080732235497498173834305053066767897968691993224639652642200560298909134936791819618719922884082251375928563863185959149006798729964663298876134711621197599863302057347904995686379453067002795546902223789379060368306388624039430147174978174839442140458008538492619708037808657669542990418860192656255183422461077725032494963682007825578234080715247641450922436748561866351870863881928349287348380653360964830122652164818624356773897781423865089041330333918136989222860099617646287581011716295775064844536001283057204732979325116297463592043340768130063213444026247029403039802763982322354526378873888014917918356489682008093775832315667056448456917180633639045757110893230994496095966028131270094563326466478734730585169670176237234974210620491709064696301335520286515456787927179135128026077651583347143629734269140466830435818187742601095818537501494825657767677931800334359952122763189365458010501036894639606260708961565214870484910624272105432295746930793719497541434129600455069697963138917092661027936451028790114435467023236259709881232037030547059246041305514787264316595453007024529355061470406368684872081813966469694697698500306947116492085839921611931851401858988280229945498356190461065060456488771184462908886700656060965258330787825889742877396752444879732176154236641733996515399666504441482316108493441762192732400259414251685967311675559553031894140511100557887239024975315139734349515267848308968917595119079201856222964929116804214219924174895448521343271997948914053171783780495176913639547885736019441752805979670104456691624503085957186825461236639496775098128903999472377442416810557396288984143528060798505071635026911490462064544962004315153894971977916175404092330388965581926297592402712090704550597609521005580217016293459664047856762409816303369346139679871243483795454369094563465156334024138235302956182721852811722784351938215266346936504436870300285824256909524584787116516432197814436076056209788365204679915856204397978960834210152285668706956389623395856707449470348767455482873467923530921859612336606441417892265680427218472314273587139593131868048903195281312432601852004497839650361461395541915459497890346960209801678787256378123284753986234186522570240345748513863503905570312769498978135252655942387876524715707082770302385917457549083631128470416358110977886778448392727349308107063755612450720249059411651776951013572879112758373283810614948561537237639264573334376911269997108201046344115954522238563305771930053269357980790402185807457523532367055116862684372218263425212192268203447015009927411345937262150531581410234241133649523489019278577745116622171006244745420439858044494749550401097690731526692991256673117439640863988406590937312532387046839937721113510665062944779275876516091491725108141663432690934509896836608576949611964787490203101173536868022483914966132724696170815157048158696179089488949968223709263246553338627129063164367742991742047682955291569022215193562285168473265574027344702344932264144604177451390863825983778345287138659697934667686365417576811399696646131228768470904925716091453416287588948310919052305225617097325089066618877490216155077950407007700150762398746855932047861330576484860267718558048938008379683674264428084903708275476752924363327848379622018498647968489427535290854468232358171476843563594966235457951439608130284919832112321334854387730291969912165949047072784360638145046345674774202726611896876971712343618117057530414422815117842926453474265739841568092230785833546979555958513170206325320037769877507612061374524093592735217452097396404569888628277556391570258525142111114352642094471082116243070477820470187032454676927111535252774043980412108323712357072875333286229975228060664994125036317967237236556086434854826458316462553905583004448684379234095900380656243116518837866580948555084936071528243702766927478565007566060031247417782111471092933595589679255349258267020657785770936134940401482897591481865466035771052145884909938362272706936149986344991099656149516285938881679635428146528451195732066342704023170978043842414544175764098767644906135277262694472029026231012032848449054924345946338713317482724447749863881111172597860568619312418634487575571231397629704442562848622132931743081852799564868743944542751630382596674667723595521407091383511074153985830277640396445577799092785305141726906235985963558971947933494558175938219454009400106569514637816869307742998104043559620046753376361234150282504374609908685083340551473103146281172625094355104813835818568430907756510876699383229819371073918134502770027671733675276043848544268664979527708408311250445484402759529298568104738081979671290650470401189168284805646340085548454677289847601267185220506088255682385990770094348914469725891849829535997127269788322199791983951616244655255194318942289517320989720294496124362799158765016528727606368472923252615931226450951527742806579056494452922035530770703177688900060013699627479303093506779404079010520845626132892164141660103025414421193000478146512419093100595343156728801151233216074125184481516142973170836967610258320386619311032673266244100201361274405619985290709222723739743307721655271097291495364152660735463444913654561877165478231539551257187765159944725406231183878828114064724895836251140433993196804039310362201894626883490308680217888764579926828550760841231362292231352566908026506016907403719207595505472941425829047929591105119111591840125757231999410200534260761857099594101868373186884866908037407575817254217982455218580009916010845414277194861373467222300524052987515535197907812613118734770145776195618056931994863401369309111114355148066632722148890213340689723676770868982300493879051639428828802035937435214424066424022695655563567710892729839675267701735486702055187625876781434789819663107258948815131746227409440438772716884744158623427894662605868155336699947640357847998173998301791760875159876199481004506109016086522283400920253709826830303647471366597261266308380999932375929519022267823780183556048488912252255161663339272766024962929603405831863674218813470179323801268527225845372503474879892504855714968706585344903125685914828940718150038951453133846122200876051566581813053909938072372727189104979302324169256032694021142374565290343238262439849848089825105036404761831945320950458841872030456900324114523040819163052857511263708546644783586802855030071648000777429440234949939013777725769903595027611089619839020270013746670284858557639943152126928483649713182611658248346819424184568617970658972844721222713230858506585585974894828166991826345129244993690503313765178803237718601631469370134953779181136849666607505083405481053445922129051503015114008411991677695794239252125287364622972394395405358365920320950271775139485749570409270255573949388265432830913055175476277014287253111799731279167478713496429673304658608402030124052755804524578216884286025083824936365509424226553961156689739438295193736196652091025324256071799292266432641235122495398763268918161339643724309477205571694880378086268772689140633609546494733876851513564224654446511798794731891401639195575921996855905434720254016583588592320332723923938225872531406667598078247266242071145153079066722187443089028604487214801555731195903616362292198357229165907011740812549710507411967012176066732471354507263162036391347162297276171939699338770831492093338727789109281720258063244227705090246651994192878622836028483790853803391699699498533607588122958304579025010354405084467268467406150901509203952234211789199838876028562675477737910383361803473491453351915552524741523670144695897638461851929252686192254705185296160216405715525625288561413630247326839996291091411793030742319810779951176811308371643395343752173131776171144647933354570471529481908999143252071394723092192508726902166148015646135690965592352437226092463170214834023196609053739154079018278884316463524015860424757457104018809020595424399799833778090177895455000086426280598127517131174520027523461366492937136272011664020266720590188719767799179537633231344688458975376204578284220582962391789999465312653601988503679164907159874042104599928082789768035443413209694569420722740649485525485948401696332460586952587299863592320108091873603068983284707229446938569555169126755842904254632845899642965163424666754349701033339846999157537429541836745627116495365324865020273300464759111744474663106280924326034204376739636346898442859576678556444666995920351752950646399370458564765836932548348838484370473980535843083253496594647255075291062108362432527470807523600575668248118139592705329284955353247023911356874752814833226977275736182465587300590689968843932440312346720835092349971597882014658726098060407742837951405413122220494510607972905009608379561671465743534068185538446592245270245095003208612826033539722432810697447791914904363046568812633413096215756399952375571035422598822809414753433842839728269071720507159796081980783907611564782009270424598593882556474368443214581555228877789549398730332338068047100872295650191419184612143939071407010423543721636924448832486470461945404951653894123725681255468966987244440152693081547945381251571444293263620521491793619731181525175459290048955160134296397915017976983552428713986235252725974829429198728285438089089023035381135013297286852080745629991900133134517839895229593334955956361157648201905874117993417502754983266923957990711175544153413781838592917834583740179353940430351771363078290134528234497466901209452349458818107651837831758349072657102262401063833754655847009106132514766674158768685342703222648563707054955109538515882718619464577565776995290406652270677513405475042974630257244399843548336265397604384502706235195635992866144695889238002431729698773745084955424221471833045054451298721563406411730584016807197554693980542394789886667633224974954524627567452715929945762272860085515379311497732020681419300223606385442283350349398436646743542686815585185896375946095990362881573482651991196746497475964457598338608570986685930943810804125234643034242328939577423594370931476293155528266727888001623809933042651818571382534238993193581421973909460888878618652923046026494783679703882557240349119828224408066347182235255774229911608299916368271194121365334037629631755468260674229593699452597799520827618693105391656671789814827954199782496703134805077871297901640729652578383094754202896887252110115370844636052520130981509203021734128572384856607167673073252584559464906353940856575051096706846300314383938512353983820416379290839401663070166285480004518868045085995485671201238025065399070332355642175683669477574995752350879660129309548367389423138535803307310681765786411464650307581093163219863768986923227340437110294361929035437613233624510353884841654002658619511204396478899955386922063079826454672057269950994656609433005516996883367173349369052490504720272775053761513600347726241111866762829879672505031217240776495967926432882349360583105007370196522699391727897878413348908301980858366336650138394964439693917321088239519158263576344378122264306471828869405045406883262511617495959091444085779661434964029162043746431028889155465720288529646196902442050837569416930406963221026552073771537972082385350194915319776562434768908857770359657015532447205185196095630388199747239394049266779489372141567136138347594344997411303270500810742872085555667681538421859935069311262318078282899003307503045420952513902144246405287996166201053533217352780090277573029355596954683354001825813678517548517771768235097308994659981004065895647809900889916400189030979035229479518293544494855707036073058717072979656622493866229307847725289926735776094592101291757508163896382354156375546688131321966235736890597778271831436226042958140895641159298788681530137698042311981654432872706302673712670775475537770499291437327170488674755136590258973984411700040037510598553623885927632955728448215843001922981833611649104398848474036526174915104677934812273228194455799440895980883574846077992279688932555340008872653818553584705514059104730159871421491516397136097683883173986035642077745396690725097991272865726348476470983998866683526699049431993902426795668195847461499564111005152568646448393898000394167764127304419140092354757042948264272472583606059346071282969695200928176082588876118530893545280636815001129293304307470737075835862416167816933936186228658634297829016078798210913810725274114548012442385098114192708697606962762515227754187330765851998214540607436286350519197006965683698770343177282155062822789885931997635054777324780901212174267135200640264620206142679133571713219785616281967594369089332695832155417615513440380800419411536156358641709402863924353909208436645831555925351825578019373931710220974916997696707849478901909727114230083291661394468867412306128866702501224649185077859097704855450828398546863054939242881183057157789599476117048735920568997413578408725456262978716113864180788831950202706844787565262086324931229996592303173797023911235676365432742557310432909980039151151369658626783717183480564049701882484146984223000029242055143273691392479291593724708281352462492697951752706697924870451606574772816999374007280694848080275927535449815819207628397907555275702445433676717285065487233387164131309486888986764362049858700165261387298458576645004747249505883019354703484976733435891161960412372069139186879786204210189571984530278517409485720330054747611069927985292011036213691530020625713301418558266083168075526900945354479071777147846913360906787694071126166800684338567872358074427335047325229223065451733884295454690405539393131384838176501430118058345782850339309544005544604592368422966775672217048153021922027088976430147776123164690647343367956257685950117949312244135302844556963091644729485648524611561219226637686133576437207787865388237062636913948490563829160508105530543392041198539483137880710690172176947710347916508916291720025643932484600399486718751236760062818628757647905623283167572824851637365490592926801360049647917670027777655632229669225888839106791958300824831348214052765794808884858275825942368833159025859311786086092489745246104234886625423600047045299468049652378936685069953145134720129752848331150341235716127979025879409585807449135963464332779529222275920304011029881756774206512608099491152600413589726631305903333452648939807900151326509423670360267079244175247727608303489179443455687026995900372841131224282147270442222739390102797574020955380378612464117107765848091869996027593103986057277132979131325099562008170295844034330190926308375690326700118020987613003971137166062065620734609424179304648228729356270756449686299279772789885399667304243652622838111119579098065346416084077417611229300416930912216714881012628435725336290837849957015871282572942458752509756162075180874298365339275964904763708292757482545686426540274994221820856035794437798865503525698078955893691127020185037597670893550726052922958474726783995709754589669510646901668541969363028766322071572041630565684325750524949147295562707959665449940073158830526323994942568706608889098147547516590519977954878594862976724578819107587662081966062059911557458308131569838501178679320189798445843255021198335043853101597291895619143951324863971009773065396611564189683326191025493746849351342187237475326574273968872594261342924753005289082106561900380310903605684529821710834568431942781609555681297744544227369902060262613858454923615363185258295968765495124477367772570228948954095538970370291921208741381031107338325166747164708532916301726594660966112586272386118725974490178051024733748179393862033618299476191901285649217573886286597023370062289947203264741831759805851502367628850733034803250718459734245696576186264376092493316045491953533798716949471396322062408232885419588108583550011294360515877872520891613884047228536571315064679985394382675988151687790557874103159006007473266655839171647084391619256286303440577278227588191911562460839799027213704177515059352364904164954677208998018124601956048622209214721005397102705864615699323329707238121671694730006116727877972736738209603276764947728067280108488728782119184683271760570509480053186244480905999847748358559945713906569523909938880158839510875007803543722544084509456155019551320073501012492891113005715367205157258793528750837738471635836002860116536300703104634061972946837015004909606487511636326013304549146583787600897807757729534977193956207124908493501347482156666183957556858031151576416401813794137341182076602497731744560898801219864955021000647081741920085661682251232336856498889523379778031362371096858348444930902311773954654116244085651494480272928979037826334014123898671560568433869758531326060993954577750901646340991863425425568663452020391820930044561209763834496505694487510807507013519201672668545987947710105566802878899855860466593785682415062659151145928295691179530484779780983252244157017277024415855755510124311642135897147997964319395857487604021719063843975946234618177350253312287193816341830540471284486141036422768849946587201652503967523082161545700883372853434076534350404176079149128868133033502886186471702315997841677562991621147428373765724320381408115604471884494700346618690738370899932675787973587812048577054932093877744121006213102384279438636419293157743712664350744753603382991320067598184908933101996298816502361725738452976098048316132695151475489486393222676030606937531188996250326151614283041521182813613999548624250241580138029555407523367384857614420659238522029701974174473498552356586549637020530670401375973318553073392230846530911323569233205684235270902748198682679221392025594457845571525144615146490005827223966285510753600747947677322450153192372049400531720322688792525001195478534211502399755488883304384997028433974448150857187514821430376456211731505842741983995703399673480424831583148603814477677396897570718111911590312062156580627934512827386248997627509660576273765354279963993229736978494412823789418286508595860981663547748093380132498414517521537293713900263685957288807402866895706385862439091221647976534440871521696069871762877850553710199836744638771427551830301806821896237756731625926518358114368423108956764291384364016924594910005450603429398018256510005592261567201367277966599731686750228618663573985833351370475654706625272189448458367953457435816306354813210762367793214368213669648467299959160296186828194230330368911328245426979844914523125860012141324141290406511981177876192426279374357200187646030011665388098138785861148463682884321902234070874677171791580475115837158894569462195424131014948793258682649594946890921058056866747816614788169264523427927380440853543580002264171215471471833808374526543160844018227180008109830666821478909551886305182942828960448955688189557835573405120920390913909878857886650750674791579485461840952124690467169755906891145728610771280015686321040026014612547439096872254646704447024254301517622421112915471997579143170687841373099635411081588880494604778190820438385309262339698962791310631200664504677722625422694339668630481329136226888521114722546059348252402604874052064950304377303009277811797316334032815106945619767676229858778631303060904607279808327092795646622787721595706234982655501241231679881378482822296810081532762732024389086603205129180294928137097412649184868448808314385385338301479327999749301904505423086282976494607309377683286182579083629825569938658685222648601125251045113443158118470800250999244945148800570138351801884545365768440701965337850904341898454952056626718192018577491649005604693455458057949315335255172514981832472160504771360942925386019141483661513453866255336554319600132286283016871090255499340632560109587833536434183350545780972232042941414401823134226285151680916764246618549995908464648034632118620112446515624999637266491319290520763160625430290885464333385185369512449397383979071023976389130521028906903109654636906236357093425752162452530721600363084956500517286602277090952596741622641494315396343403836954659448710779376940571268616485463584554144685012408086646005730642024787481323870357862527590736292990060482485311613865543309142745909584248387467620910088170203114119031539080656092845405007426803798093780215337141335939238443489328680695399429241190080814362936626809329136881294406746174229127896965979704882193275582737455905696407592475902398066348866329663334365840222357617169368639328824508722952089799582155260504299604742787479506810045242856095751537257052537949533266722833373571141061511574822104440167817854068707571925059282036249006235325712725262879973372717901391747812565945190062726018789402669400280635932852319083346785942981002138904559921530311298026313361469721069012620463532435777177355155728564439246546338837042307078677124943987708389684920488522632795468626788168535578122534247750882582609086230286552088091498670977723990498119480719436301575819979280600097291737727453194239590201758387343046300397472571554472040906666349537420118362596935204015601701777260284977981322817464552261893981015044916947288971200184640767121737953641604519199146934741848319951440915048547069077187364775908774028035705361827406228860697933588335669124542751438588276650705233387127250164216406156736290594828232404106304057031089840658486398796096949722831954525585578193679769949984819988858841680515929675335997684127740010253096208244568187462609492621104576604702781251557409651095942110306013392678577959558128427138488896573343360643935455113038837431704271973077480350089603491551851966280593981629201533282890102927614252076894449927295609869954725330902898776034737157381346919335151450579822085864843254652924322511540527398676084061502011785097926482515966430917336413284707567176519359414434782085401818728574622165791765075863646546527126752156527734761524110683153939004552996673191884292365603051283619761237938400514565699509271011840903948755860350854414738650140288146443481581448556123419276918732320165904944924078030708738869996032898795863456513687728800603151083556587745530426044787685307369601409780878566992461381483517674670273341631584974074669997069125764594822472424448091997676891367606939360059251487802319666235364589621985176001186261792519421976484592198148219932354451648254632974687953252388471450199168668310026407961498957919732939470762532554506389242498206383419378461162679367777843227407255991404531654586378127849042435526721935943313658139180737853840616502178692923238477804070968896113065822744569126946164693821580224986090791843460885765328069014539974357194660127080592988253119194588109797400032135929295555755012010751227887242588389396807669280338500716558807780360031242521481176009574356938102957399990842724446906836574538973330409061502893072552412944535810955403286913792605874416106059314699519281085970566096764694642050425616774835048883831059316999951847184981202321995502631097688485936803508684659030407877586877667438928392213345856310754116043126882312805055007927984777916943277411342000261248617592983429462236317357464908672661351324875244163205506779687852041794580698147927274767127158736260104706444390468748951415951047722693985681488671441042121770750020818777119907207067202359703427318841695553112072586602077129051279257715764256706931224526373768908761772195001165264852515116842147472867204174686925426428809310026410351580701061030408989915544905564561033788597084058198232080473428680654216198546043246477092409940083323158759892307068444319276149517943575471857916867145441486886779156106329377209575067234545753712113406497326434347650480295397670774923966206888209780637403691929737665886944762773725980185962172945364386686500722762166292313514661514765481298555776018087285098092540151016417152341037586860478632348301367275545383442134539110017520963374850977266529205613166370606603200427205379119047839363855037143680451090337718310507504845214948860210599803212101774995886277731468762817386371805421382672449968776386449857316519544983242295226917191133466412054770036982899500124280012118976651939186972516684773869060965442589922433885435086903122494130938617868306763414790341396646634308299227169687311745830749805714049529900468088668350938986099242414338529535982092666642667040803485965936719130549789679449933145451503919130929794065471741907296137232964756067528621521875189661685420976833413621325321230739969396724698982323472483515188491755656655243367361604237446339339419467032270847004915361051171025719932771639837482221558224237431443019045854888163313144236041979390471812534909231191455661946298802984702560523734414021545264850323321060195921831668928067517895796030347239663967401176072936672299899510238643678120002075723072181135327018330331134838613982962454849721615071021225463391684059679835650219905013461080964313250743616994142594680647728058538608564648565362812204851470075558687288516500379524422657866627542150062356127011937666039009410106290448893613566203045068927976008044821870398084810892350087430241342392723027526164323069833774718758539904126927891154568709806890696782472340503751322574968604401006043487425543397833603304623627714634559306326019942331920920245001119726109048633234967280317232336673695308162854104358892317086982003043003053532566094821339267285596244887612567772370887840614722991273707855214100229852534818147856954464750054232275960675327520874680214038170107874234517085090872407242834511683603053568439081360705166470474915728731720960818903531676733056985008486811393764756976358228325572920331921943410487646141312559299633015954748061602320267375489755597960868975505611931271932157015038903385860381422870685793556457122584218300388873810130231450628953527961330187621936279665418145940377489444303746430751962170861264910720826234310422975406986336401982150099620325163424463786564075399814041034575945105954007870348345496569722265893091557676382849321214935378504364843060045377412056860257007318871270135397192113199530151683220556392874648586923682857764634746077216273736397805295074345192095421789955405406386150351857137367317990819264529085145557073236791226550989905170265225650823368685375973849801174742400562601796491995937835995915166319380045400408135213312650666651533833541025089331792782759914219854345661188515294492691318056443235385283251984818086715829191709343510528095767937483448817957307883650872488740740675219608720726212694589635128566392375239963445752926106489736750793646749638852237302604659286947289531745506444026021119074851828670128635533553683315362528966512940020586203291759631283629182572019909287788182289622323096854509049727181681940687898427223771963853746911520771174153029311078215940700946365124828717943766437935588790145834094619888772250627443405774478239469333120990117694081809524096045809485150563702133327104497595285015835814297559953490366568662287262319392748733316145067904424936490090925629409608500145386516303520994603095086033397302693662864021605668435357856256855899903584440102116915547175959101918098490367113127024067376251723894075026386026652270892999046018631452783835665070996941888286755565186901658269885665214683847111279212428458465902903298215144038414992075510970377827254970153760965380773722632110555225574395414699505251078161362342149058495458543069330215874866540618962597916341177928483249161255141384376375081183367407340662062569964753605394090590990037426826713345506105549918467243116250784692913759532377030440345541071181776145764800722477178548354665175933460404913670419339767214010912053473369564896252203314121659608322815857213029180802072734300946237089061379370351996372910605073777318728786053700500246405882008197835668455644656739490618815373386571883742063539808457038588127249145149493917169310571639387690974812744264361476793381630240594246129339257025834164642525176875086228321766191192786680108340639050072020685789637657728812075522723285048420020149950332175126422302848811808430539610565414447603969739209345062563806542676574618101004319594545947317463408738654694869669677772666704033225983993905251499157226227471379152409236085831953051211548610456677156463096440007023495598911249003569981020269057983453681571765460345555978832544941167110764333255986426941404785029470586946197202314632407020770998438523257412539149914944333980835949785314606172958136775011676157958252474777824619393704471419688917248069688055134208391113893999052729404368719209031229883365017141348529027993148268572865692229975072737179528608298558659318940468127164188361392574503541210179996031260402094235967364913362220226845600662773693790916920440270765025244329592040852802702213563222279681982962038079515774510646444425690966448548458640445259171881800810107254845284321231498706524389777525520950940460053509528748146191977352455234352815782152939968351863545952520032600184548605655181587927816394958839093964552424693150647216215987554055909950330492971368533851741669484904862863297241830287811295269587525599039128832633938593628434165051194057565613413808883328127957178173763325391495274576447732814709005002630581332102199156405724386686916239255709081253562769754918526011833095551651919946760081020254809709332170477947907079557097064399280797645466981965997430776886938400471443932288884855501549755380768907655256269230748678093894029309913245448426028853431957840391286287059513507369076009037575216847673755074303406781716322211382867636484800935906057683775940349983612928120475405543998118219328318107118108043023112171283785319127374367158221451360912969692804278354655582246732228635164752188800460569739068409693402972859255839114000260080589537941060742033868541687234114120642464073393161476591901405787262273196501434379675935735738662010244966551714690287143623995018031380461080638283618623885502204202393406617918923211035022476118814256331771434094784806562688708578019238195640573113128211303531819810405122320167843651153350505313037042616146720705789599418774460209402654711472132234325557910338383966038086215553031496096732833015736786253103767832145415658960427905219625398713544630479595533009290920296734517411608250242068206428923496667096748819941386631571480746223734669448488496428306960192995614002729665540374089954307313178579051887183231792053530753432354576663657298749786834194439287103904335621832372660617153416165245987786918580300054085413336786777692540148330091370936471735553137359182626153050379163815633226345911167405893933460335221048569081082078101068055640152408577998888983831062884719291925281844393877655286677709536550105217539773580101164541847498454464611769520636521603237203101723254959632505153224635292562850146724749735782912005890305680308866477639118271355688204426494165338980716210745220111873063633858476673618587191639527100760386222653457176875804478708411195099454766275858134985344520084171860922448320889572267752617991295226426244092565208600587085121051181039349756422203625076279648128105875887605472846930118493298478524984516241726648572468340464060705204817174016993637473027879488292243470001771142882048842375818584430726758799477680591643642834948350127576905644677225926086656537159512099912665598414898807867092232756264666175952967131621584027666883451182001779831242063524043587540981851983440740911590516456288220519080820965396161686909979915425141186246725442147331255697606375074739553193032016094756239448485096116558661930546898303767465721331626740259061214252140125853000469145349584436944701659151158495088105532209331442824026611426226705450522829337006808213629790917267984780204722722855098714809648957192822352144905578456799026180418919524119624156381322408646874898957440063601416704614496970466236000321717929808491360122798714388892029379090176811222464166687592897523215969966716078858079471423642162262538386820545112730347127161428962286031947438143314060336630570943865845565283554911930040061557716625924944772677120021816676617291004291704119618375816809059705925490906299368433892849937720245740017565951267619926066055066216962248423602990390688285389620584824193459895154614812418064785481938257462751702871821034887067303440115156357962312379498860624677454918727656595863349645930886186877399691691500912078267002011684295916120108906427310923601896943868382150168058423215413249957912774654003592706729457059400169387588009920615995504947557875207953517726877303028503160638336458695367552940161421348615445228200734635748128035158421947366279189539269796133538522380727297081128803817068967177494182709315589364127082320911034432248132959513899059714506277323957275299054808268036150477890103218049409306353736714864678177405228445807985388080350908409487296793729975742599863876763036178738111669949657099830922708350852591623615493586178286688679596737145240880842540325817868176540788898183886353850361328110199892190910271327738152804575146942566096761493011396392124910381382525135196126743445397025951847556201980813496066463026869389957363435322133652470732291870826485242645520981637135268328073716991531258344752651470223035646333442378314349576602190568218974482775742690530006202462614843749914247089843649923007387172767579433619686185748442314933771067956636103891179885507605102061376717186204994524030573667234835136166827050991093491010390821069412173894547401709381506770820778827191136422677472188616286583536483766444960206488501411121038151500023318219318830979712853943619813964681810046168290135070638770390836200879237242982025064852657456594001894861470221873096321544539067601387212599304763185750205924932043085629689908294136919667229146333428722136406523059211904409876901889057682694884098070372452614616951496711160508779080663471926173847439646159176590248227425896321650814225723378811370403211080715155692922848785248872435869659762435150019467538344567383995761686322262098133800189862155463675711632679588963099508027907617111867283003977631153699137671934673965807212183260794535287690601192596385169692191544726977233521854800572458492254409212711545885000902171396102284274625985339296194632114514534836864434759995075212099082249695069652774239441529387822855920232659639228183971348774518824101197450540146522966135351187116236629237849280731527412414560927261300151254479839550706651185329664563597028244333729396663105908568829030198775443522742009461752679655048957151364434392899761483149593976336153587065514818335030489462764494705919648271814232896584612893691064995852626185457773616523437893224345182965017156721031767583937058014183954371433042301911653198749550916525717504236734378698075343232731529905802207974048735002283106746507915495564541326685815992739606907207599544986950915494697294555670732562699929856260533856378597957811800456506532386703757381035608711198276975233757200801736011977468998191114047505090566199069885141309345472463037370861487341083815113598955176126329207770396088828760349773172461053378823577659141903266156809185600534041010546006267043165592768902325408500321265630209563851825768005991916545983883355013846681023933202015329830513844869189986899119701668971325697516630517405709444943108575543632892161256921993799839313458373806287421071107688837112994898152323774422230609364876156430995367461026934718299623784491586420881043982566786564205957255617824840355342750132028627467702155711478186572441514444658505492054547477647069183770326254306832184625390560386981222553918935168262883936877600702279391239942902432902564898989320534020891735444493504212520531514980509148406338418071571052170811214964156537522207111811535404003109387185155561212315653659491306421820782840227216004834446731674256138308292266663378631182882249721626734349923635941506145862653801128286617695062837118700894566550427763429628864376976410247614606835959378070968324617280994898679666648744663307215193062808744311596135527282303716189649624997839230865374346013164540397271511083391107708859906650330184678581429218814180376258602560195996277702192887148794373893456704094994185146311000714064073417827244099003087474510628899456262330348885066991491525498307024789857413650934930916948572595085387511341539145374061000029047385799407141473309776469501349232783530339987750937111738941185006229910450133865437731552211555388936311088006507473211466932938876422766468372677890706423099590474881882702865181968324583463732684379170116885287659372342827866908548293850777449290260496186412047637641409690971449168138346149856052399886951024141552858870911401549225002591618624812962929298609088566024111953957840853225845495434482753116310300328044254233257591620797148150660972845530016978770755077107258495415668230361747560653874671565609081996591486795078946773648963563662234575346902812393722107829253718406129923100261583183388101626481116968620106385965328762156180502712818497500610890463134563212888406124952933172927160008045111991928790062718604890909511047402902737131132679690017621615201982442620674889088127626803106377338644449648138943263391897118382875427799015550429766373530329806823111977147975375451060571981740824209655213466654546308571041368118171817975713351578477691643749351877652790939303535940601729583867179792149724274210943873311237653811266150754232757504940918621191270887924152519895617192140872460160146216019226756307837284482563834882978980535175664032783926200223563621642928864662680763393027679263817833159467107150453219684872349364884192162635534304010428162305280583147203136033401182362341815642981731962308539118266079850573495525593479115946448291156035021284359545404367293198753925901605255592271460835696811090499117617611251586902611112563669182420829338075631775227558660243407279673349035290370377676544683349462898523014075683424852420569119154541740356198824310590408539834584468905717512985161904975525236990086186986511290241851708271841496306940531881370509705928800510433724905896368673107974515142647577343206154605041413323937695220674480238437204755387240328733805047209645585603528798907404911637621621227814019582758603231408506880343581948247379941217874296599704357389756308084641787770860909478709313904536694034699299024094137469969511391909070360672996827414649873301140404847180858491473438654518741141216197298289400254657353578391773272891955422102419197888461307937454304480852942331737346859971764012339078251947575927871544104111750010309513464551678011116106276459845414043984133972169241444255881353954563798707980821708922916303655966356003223293504292717158067276962004682222830883119433850636075033650089347548430106136744440119838701645612307105656189194221334174156649534010138310772024645035088900855758061754981086917232540997583415557024590492485947372971874443492342947716031925140160746807192964876238669327738739566540754184869170028637859341357056092028698080568209080669933448802627635664870296827202748415856359732042579031463995994805152785542352462853683741348270756874083453188498021578213522220212842875204115787242099829659177189231336527518818810398806231944975981983925064622193372133992646239605875288635452412382519082801262391904743001168489520172685007401765212852245930371488286494026176038394132052257754217860154409849018933932344788347373386215186150747135256634178090737861555798501106840380218937390559400677820013934825414364185566130062372837568359010001162400521874757650475501850510228898525152689077696330649010947875871323062140397163616560289997029224026519003688414921052761635378462127726667772080828193740539774241642126328064336626561136820178202177533463905219104142407623484769963298669286931478719044046260912664332249666185137496608052380118918331259221118077602401313509999448468795630600012165223375559709716370744473320365485324592645277944444719664142981167537482897257970119459195481109742167315072999613083125691560734471773443310159041295409781514379539891415876626710358509970003920418350658872808597319902950451770303461988895025206385236552657096674735790128016239417620884816852581581253860022032612517782395358087145191761564149859093139497362508692474502138824488244247451603741781895136805884442264672544887031954503860914544116282353330321851867394126681864247822806959111588956409688343344915356464374975282756295493690979986193780002026366950351330367454720816678347524294569972934627459392827408370764351330963339164086922238345007167415169568260624471296650850551998096323947388033661902371015250298937778313984747118332122255928653062544149034607771196451218154438537397327191315623766881236564091409555410483455431944713269136737207934465098067052518980400273962497706997210363991876296226319830398132541672083221951946521304744644224397344870672430587568360920759962932257680551093188727047775409131297876751810980232338136032298717081671018901602819724173484192845755934057335712890915115951448337185575411210641856685964715253816370183815957248549980296314293103726553058906152638433373862357940246876141333355328784058130128653986385745732951661682205714650276720321611351052792231642307364589856862588301056752844556345654438811145263922386634767325858610872549747877748320328025304104396183326530944027411793407643383474764178102035670052379579274746281834993366658106129748771805167344774724196425400225970180654623695774179689175918831306208178264531628692381758703733046463003654109500194361851882427966489354622559867840795392050336147142996947185796039163598049651534872331614079016541653762108394479563739625301832237725083516423795817214662770872953144763315880784435724076730698625866761308434939541101436897780350633862036684916817853466173664888524169150406745823684272877003066818369982371595175364717882667787654576220750156033816175757987720723111785917623055307034180615378660503184103171175901327739956455682683082421793870438618167066631423861236759544827968593499073962347777458237891843856468602443188428508823781205525585558478406794656336674855476125083125826040857714927901765850631677090606872837539957863632767997797774485506993683466538713794515491130428608977704469357016962655682162831005852889111923706144581875092419050549789812450619972013573394537330271606779453238079851442581139457732034741728946126831816621354891591621822524739382991331955613226444026908235981564946845787581355556506740291530752714168360259758819456874609628133923197055314621739364056236679860748726718655383530104093587806549958236213858351919224172052627737564326426980500971879666795310391656400663212877116649513157219692652262736014719169549045352330793603658300223836451880285412001673596923436659726130582703483220656089882773655433233783417095469669327960006885867916604792966135952893921536297959022034244927643974285210921545670188144608877432603225672747120568605479153047424006952877012203352812754819558720920691942668505180174162332823499406881590864797225708272337699277678498633188817270124080508980448397199829342023758137649697212162915018698895675182168587574462543460965517961283766947648516620150209959617005007276802160697335182532254481819247522955338393125431023729047710981980550227884148756191430417207246896027898784705050214739751030269727446814241391658002314757290964930532353209838359838473185962174440539286074501388971197881344847515247982489968268347927619517387976038565014010000922057605758506082431007623492179283718942594662001415202536797156675216640457679436115905860398401433297930091635450340066575210593556675324727384589652850903930942483341026605353169230091088177581259674671808965490481747175296531652866674722341476373567597752071938225353980781635636687422592635924466115533181179223433913072846037407685637159592744707566919959935764552070588842897137905743952915168461086494603667672499552236818551563059675265905783610451362041959367047839956702506834666615912887338092748238094714997738707891282567911122172969136594016017012477980165505422995629985252933812391198484182647002502436135002812508988374256823813968368423027284123588030963348471832728602747073116238958715688901514197703711968439058943666186805533053806187383545937073127632548800708360826962499190715720750591764052977292724131328603030708645008360417017914052754076567979588699388666198355211722958066551182737143705475459237234136615878630204920001423538685251043659162665768959593796001735252425619146482733961632407988783001541747992132493535558429792007192180504320593481464109728926627837144082605622727355243094225014001284649971211613870276333996782809469111975590736604752662734905233539357899911411539868589445203230088724662765242612177074094299001326118603382392077838974448416866495224026941434255655528664928369568614371719842958008498880463674463724780791861906707948864724052149420112959147535234943837182788959119248565559989873229825651051136404513592354409722959835758533602223726809177987237152711301400075847250741991765155420101862321495701466749718021041609461177115035894597182067718139036272975185304251675212892853922129437741530211614446660806901314516134986138645401941018707188200006489453090975342311461190336445576791670977557260557742965521045840885894840181157230574997583144545380862200611771207649969655568424559397353700039719113628699478561069850821835426358771521449227907857833640884307117261611277365562603987342763213426392169608147912585937905662884384878567987113093134575338721731538478942931247584916888642943501401717358284544673047579198890352626068556986962029277204722080220746987513560653200546779021371454490675874334871795711304077211993109313465168146149409331622122077497781283771969800009323394889465715852713785912553543864553882282264455216883462347830922700815393194309580552656304624996739720701477087037621579235507516550177466840508352954954358229803944008722141617929892350506144048678074364648393833180401290344075475094378458411706747464474903694288419165999137332816002008424580746719396228727732122019370498587901807566706945369648211765449541926306658956393046289455579680120059286323218794196979071753314405616003955743628331211819711295665539001363588639973988022563780099384443802759850359158596324371339446188425972047411672655338729706612775979937647201559015992278105111697594787583715916520998227484764854122496246737895385734806711317680529064817959361048132297039197391403120428281047227817195751857067125781110815964102600055346223366954539595243425586004347935273919268283725598408863269637118787651115299521406474997603198178784202365934745070112265069078442406547106797875600616346046331357160934336049682171489647203891429003556743783453189011170727174929985123920117219459857931230448387179260542122753108538649193323867641117924785106762530843611972780506493165840207265927151073323151566368251000158863316522549616960134178258954751215378522914956333835177528201357911616268486817830744580939061980853741069973262552783462124363770015192439524079496605492132512795414542080372429019076170720164930198746032298792278674774507414424535416522425392395162479221056325322567348516702850800502162951918762947993141286901156820354095824379251214962283436859199882250873596832224245787083387815416823289689628603382013402362846666587892429415619323903514887019470471618534710176617505452341482071943168276947683803276714049708233467732311033422068234258952830692015936582275111269079781681448639878678262455762384153158627890646348490733701191434316754909948961828700432666740254886563938255286595140299305585298881262923781791229034599707645760605889843712372950697962869050426739367581446054607376201163084245464221852560997015570579986280513352692922003808973187128740983416898893180464428952876115901567685191039191057241256346262390669107725789427023794859035034061424911676324519818047730159142053135374052535260116886301316200103097655530676953864425159883043399166457533856279964632366793768913754505250255371376966447691183890903322618156219260138454715985670100875460904049713320337294883246323984805816364392483341242937555661589153170548235580312949355062532097531423776175572131260028005396576103391337102795656016672164337173583184610109167734070320005593816517097541732485399672671895743148736717689668386443195716097666305542964102496688570969411746980750586151080264324072061489754707862694652285004173777035369319612340114447280291114227737880284559677157309531431910834309145682122559931545675601016178364881001765897987662636139574418968306966038296175742535536820305655883255750951328807273883498046597074859505909944890112196694613732727660013122897217596443416154689524153814704487952737049660887946365874695116721223140511691513590282535720661872415194165331883270429975784688534032895297892197147584906186826068852127819632698798759983847327749346063443841261289896836349085242828164355596179449813929151660459768067048040172946704481759062782121493083492333886186403606941633281384632562941835246263036029092636608339562181325082183309913905326564812190318773685741310780441628696208242873187796201369297835469524196988236066297128800277753037233577721042457146415329681521941444815670739746092907540545241525568944494014344075825327842394826577241188862653927278756963851529234068238933034523657572155167276781461573582848579521897485406234541979119386311940664925566882026303602773683464696560876921570013876983116332769717064432194641886392138415683200429041277015285078493994460659756164683833520944406195867809819900193107296996460500215395573032476677895778849128461980672686001472630058920611899097111246812891661288510494112196363357760888886510867774552627814065086702019073396338618658404090875226118562436860927284190652403766633230465545106140244721216260891340465007528130805871168778436593648669114486561915027235504655408809503510541683468494925369093897060374298987911651644170846061144402909442693693396585542281811398308934512611609656528125526028801632748796308306607012743394008116129351768469252842484435672412018922681307147725410512622799101919996926684060813925870595591415311750212664865166760003351649943144363326577139298370003423426098756851050943589312824729581008824834422846314514153228333627127444135526955968635411853349053296248886830948621845950315276846135097503836624324860458964240225323564414837148646086942168168665024845395343017670328556977220981536302649385413930551080231710280301373312032109528996392476451650709214853052627248228922019597048507791741633674953080045214307309309670233358211236600250602010007871302984422459679449676781546465885615997849358290118074330803897663602619075277380314654038785612908086617642981243540985169746571824171735307573207839822987970393395198959433291243731415141865501866103608805222665496777231589117708209278034834805856279940000348394041360161141955447266809931668177198219673405707711491747832883222974828585577884686657468324146500986079479583513243385058736952251252442027214163841053472200465125784490147943366026372446402173232572699437918269693286568071813844250602132819948609443602105866181224980022463430828716344023337824543017559098087451971935524537790943799525053733129696229213856054015843930671481666336593282407323712625761913173227111867399221625759325469496131412653054173360063042221588576386466266404559354205135932316543567324382912511527983285818889330252646281167891012506279596174127866817427731151581059688132313507844703234633601299663784232120972531953185195001161049417469966620348449975075714511309872139762132267799134095834325532443982587423325160656005838370508956064226899018249063100968988811558854795432845326519732390037211473975637222073068924402339608984351294041651072387336047402933498636943642898737843592537102454167318227469521253233164661948312325122856153134608321887742980497804647897101537382243268737692622320647296433532628964695178838230174934934695876449452624790121447236462164194161006263522533134572002532328399852000851558006456938443054924995868540275940028576969076076915397031260265344210809990552893433391065242688088144081521710208756545078834301117290752576804721887780067924918261865276780568300063944836404547203748521725839134928545412596466666045865927192563396621208500876751059615890326899491944693510978177267305916987323675936821955803090058855853875016624655670256809385886417234424992859491488188437260203543556592032655277714202035649572554606868108197027358980607487007161948320675895332168201267826432307237516813852762371063828771355834982661085420330588671422796408478012587293866410563579625365041652553724031032588273101886156283837557915359248314554894857022217230543096769514020449390883336511128995705947910503553112789092996525101306095990838227845091065361368996706476056120932927898831375736583366041779266079760981073539611873375062602721657126949112744279155143422802310847811198636474573420868897349403613622639321990155749305407052765521169276816338787509496439233362204733576062557707211698529936160147729011825825235145062170800836895108769398985773498238373916159958951068048582753275536760758443187895453889126925637977813706219461631150675089760927436608323135702563922983254848563099609808266678960456276412229117105806681200734656832278388364880707086654756286225284176106229211082685138994595718402688484489805537220879251063524740019352872746831643620342623902793295206022592034789858727848211581585778452091614241162490689383900560769528328410369319389541319141202640719417708272217802476029135114541682483787516704761279272277051254804358172423193375432519616728417154385704040360150432660378100786131171689533346274771134588564039986188598395869432299412703208765270822504097338075653911333885216930640074546790610993421460346608640737237012150424396746658920887272808966276031538587568919798497650817312718541896538398207409979926518318356747592939919089266478755996794777197837214750499747953197258245591360865074388595962071260734376239079537223723290540976673142094919661458749940841708012917834284004544317184828520876910866895472999830233723673966671090920929872933660723709827091646391025506723662485699144817338527053218036405610623942554071793403312573705380524049240291053092082478215852605471236655922669748676099649899002518448042233295088874800569505439554251006348462080465139815951421171829267564945467802241178807664092411179179617670279132054164954935089511238726569491322085191897594212271788065275160528214403479859027853199272127920065611138386937593405497107965355107324831135141263951525714062138324882653642792059251217706834443289237911840688999150110211405846560904230019440970753074718833551545762739545372805865905787755873313708701320131399191102644844984835488513805854819758841556076459934786197845108776510814906319144099840918067495055653369782616207067623478602358072960008426491165380051743444311544837759427883980251726127773121952967897924650341183315130985276981059107110329479732082039931545678057965392838430962419672594506798413804829578812678392937588276442873365366762215372588117749337040772107295927715695487768637512628984557952250962726265166288979453812223065636316771801420640484564214110126928164937021682930866206963885843735984000439142432513430477052706045397670608975368329448803557361859408449437366925287060397580968819577817431631228421889904463816200567342286029803983402294347671205798290356041581818126177519435687913395905572453512211712674820930735649127384729512145620552643290301845549220634838957428745569736132330039154003731046367008242989284349507348861364153491107900744967675209742515721712449493528397674631684054784470894319946891688662341768440259140718631953317591738568718530387537959763968326044582459088739268867406064377920343226638459158168246478463785745212065550302241523479253062341772461934288533008274737679169944209085040191753627407520191045971612477401248381114060445335438943283914305733552461374299462300527646305185602908505990950215060088496197641154172854046724185883190032934212483770980595900176203957789364427454286562360482823594377890769218705106525766860884261360037299841165740230084531051420699713966710578915484508111026233964780352003232005080726950405478126698812997381788808729772834186701967543397606791482410069557123783015375213926984322836432606961328137128265379347235601063427665648504661907665103556523912429454862751054297358025541868362818568983473738289418123887205279864112394053638994353402200755226192993625211941406075638367859870430372141029037211769519867396368477385268597268405135386022925638665064054919679352879725870048490526887219414924134574911240946600387526613271783150062793680069980845985905194733333687698935394879464088865606133804649227112530327567294933161080402558187120282827385154749095492651722686161562359683901206435531614850943159644938545982572123605647042386081316542481014400097474213414820056489036547332380918168199010292779966405226857302470384872048888286711741467538843233303669388434652414829012667597814324486329714749396730016989238186933619298016627198070831313802444201764246468511193361915649931274520589179164601548721138040483072418588811708385451555620618270995248421945638358064661350946003039255322254403833298736527487641902785874212629546465064892690884781861928883519608579547810349311567277118994745694154110451023886683468906753165552707634713848532483124508813255142371114847925878024604901661555136458658751961346168223808622365669868060041438216571072768980387090688317843222048300777137612155308078284773660146904664932798646101544512250216245950201306567290790571867193929574569331984536729074824303496604106513987355028738383942367194571159701538539573141115084024354437875240189285490440677000420852518039439816348718828819797060332980553042858421718142767759185561245929973435832715417406591177048008552021769449603461389629798535462247084722758805302546787366118229644005664690034099124470727610370521052272880984336539865175211863687901889043519952433764611855610110502536182366418104095505911073831286017492862888682910420319118969295831669547320215593910392645428910104914185285124989391213500281533281943147240433012502200815237188421239714525156387523778989471812535346404033890575841369911331193188043657111190073392394202147428050915576380100162185575009075699146478154050792966701465365451742347256371295003383259253397701426451372604025383187880877255355197012552445643790655176311874183786836881836903562550014192741631301501215827797641124854699581122684670383935178102815765615183189563430760154453918568842641066145661487220546058977457456016627074332856922506768709358685321952838523687666338308404109738222304869565490041314093577040637563793479589240759718824801499159714320345416195944999350059443247854366947344915681535937434100207647786566918005559754804599846896469035366770418091108942175860677281784711455444641319843604308416837036833381495105326542710148754030668912641023494192727574127752907894104138956911311456478736897882968551836652797147030886685440924547576761439547361760240870816321273417071688742512260320551461050371520760514373663241169261134042376584260923821723152652551028877987156536337811870295717851018201152309563422541521647088196393392659362267885277762896932441440702833621865872352570269307596419998358275689276054637047612956269352567642373584768031113784546102366294281741319255831456391596443756079799764669748975452472390066683147893868563280489118425435492055800159836757434937691770387103979651627456693239626815506027703447377877585898513117101659563140091537492023613842019906308542075336535643206846437463802029404365086595898806066083817829604197268451501404828045910285090482810837959518043565187402219321151714917795262872387177092574873075310578196991976061910585707761922385568904470453726457114686739150682552326655679754077224276257411235071959042435631082252230395676349702954759372886271963736194729377402321573594218324902724306513769999777484884037243386190425000506618632774430346338532881699171079598275800638363977128937087236670315945783532765738017224863899411572807082714704153196777816371636396122930229908897563221191677054145371526133143198286180305598055152436663569289591459939931169892450123147348308041037683894093702108478516063462305601927349908238367412755092609577642734212353382052347815547457244859728480809980636301573103724289494615152901735200371467537047937042203923159536316759889960323642985340181176445497992292600785333620865227959317702851171119271983187212624634690781665564186102771765243917078981608114352844650446094205995790053175025403035315358591770697366686932056027435855998467010623543677757632119268286250634923334939914163850149234474592027456454651630009188897517747916974125095936105946530044323684399407436940134697710714346089496849122320520756171299400176897538753157123190522823631413803654385092447487344848010077574150675548852847735130477112640214124805543151134994165630558191122924729353772133469529762314621402363986962197583788778245726185186961461030601727457045156101618010896859153225172156617369403328198876638352254355688178473316538988647413614781377174175664187617551074824960291639159680400085074096318712715486582213777677751818059322003977702892033877967737123861047128357607087949681277800496415865366377690084430613210585080117774408752083092648525509587923004242225003644441750916052581679325369162494293726097209421375896594437040259278680861280232072170293615977364543990618715274496596012686722556251540712824850291775573888614892659481656238020838947796481441962550887344890037738679421685094165782015385658138726274294501761514142975620861182552003224529206913323161206571696153515829576835539614756286778737540348501804701936893343694581855223037898730571197262047073149658416589266336818482371553929596784046685034014183992670056474658523852653747969463577956764470568908198650438872817887065648979699316709302930220672274483989663750140834912890688592276894948709102496462601065065176433621340494151161079173130235997999434509227992223378406789518640605456952015457348484762636615644792358625162304132047356751961128721864060274305857159963680614020435584348116626543194055076265618817597086556803015055065466741978894875561871007095100642206863871438607048667014608138865865485409581298105409002217113293844458863202639982958373000665160793056317008915563785391533806881897709928492834902277967304310112134650356541513243470142048219713908170609322613188038490130987569053687835047545506371787995927164500925335905627760552423215358790854143909468254345826017014682341677371610759117336463910345298264890865087247635689134003593662336090475283794025383732454659270330871633530346955169831251597797851783507960265017196095221223206448581086384280330310146392907573542352148180971689371408199010433600356330413346485853648728288117399830537205091506142068805653551808517798212474111135175177611003620315604383787125389674635323208521930343700129674025467897104411400484826593388752789618664396925432918601261395300955868611154089704665379663178872492374958854929297259906313574050944017644898599851309652894869141336943940025905054612673094083312050709314647456129171377798396797962984401026500746527349915160593973164082194354245488519858701588228979422218827376315551462256351681790632587454351637414062224666332419877119381387783559757175601367061407366991394299631312956947159991062118126438306135198299481863124819942235989272935096312395753012613962174337439789687104541219878958274785118083367187903660614133254379959267120289264730542139416673603161276955529836028198049828503149557072118623760605769824110664108706167891719906311345035454285165486136931304871534166213947368429846629358559815984754238763939017067461395881993390458141569423495476383744138874412440954787923360067200029801681527587303715291116873576575676050221205163155630430402558153556100023483679503389824501697927131914239922040381974428792818507149399191563562244953831575014539423244081174984705386682923578525370182729348299194698686651408434294878549723309040595715558412720589097702563780399612395426595003973724610139366851078177818750208501292575771181948451200438105896883142125291165310424817763980460228995683142910523241024826327781104703051366538244351373123036977478152895048302256487691641411454783306841609995347105595824525521773466307932064499272804284761984950519573259697174860733686868847337360158860479318065586325301833952492631948658058294097653219401836319881808125180950794496090211523497765494348523236504394566373070836999420159456089741098072099207235262912733535567215102041329473506580637463784915899938089674966352384945341757891682058751361056273003587678334229730411036998725654796360136432052869034052277496285858876357793583377878117872607436780056330482106606467817035577441807826960597063650892554393135577979587055136357992027498605106498702338187291311195230781287698500068876643636677576680932173064892526054515588946350156802129231840142855258013308546894273558528958022567350964053631768938757038254038129358816388441362893915969232788972602183476105553408231679352064877455814487205061087122582880249578092026971999477955011311394793233451529437693140736694133346340475686134760686196316152041370230020769497937645622534766036928978591774870161953681563384968406465681510291463614149415943352627566608615178272993346509313254789506435209998602394590798832178894807410762495004248582755299987630340957453954493075807728187314819260823570715411265773683700418970634452027068239219498458393393605299260843470973018507523562915166848086344991561058065507005873743436647776323646953801045108620088645167728537236425178078785798633473040512564330779018744785580603244683438356009960236419187860644716364770525056526617067453764409339439392166450809558634654022379081045131779700012776334081707509583541598338947948176103139982636399351757338157229572433853606155320955635106948487037420385111900310767525141602479777316956217553406731412359406730121223356504616035928190862928905491102819649626532525448044875878540373121004523909063197418278549442151692868729299946831864613427724115003885416010030417437863397474682575194473625805285703770295351929489539329848636326292039513104468846978183382230720248121356049003825254984966395274407919002710503257726981311040346864146211980732719050632648313000107373940571327346356161943300399448286547000650981438070141690763731544348296082270221784748486717777547266273477044132185259752819179381068505252915431393672293279833044119721446201838170528881454169255089241714677894848026702467171580907743464928955005500443934317245310082300062431227703776019705364655426367207566578534031367147880133508606327050935964197251926864301656062771062417846765372916519415705399808159180403764834310148943850544028660449329696498154159016342014200010175897567066622190644676484354300447077577190696884076477316750625420523943175072315559650240126061946239661952505968422213621871570751739625232429905797162656617435652134980909345296607645580133093903583332676627417198228963655014759053715903812836106196380829141839201690044816495947563370451224105154363614394525884186773203696405596871596168331094982247743741504659032087102946682437671299553580432975294293999207357120183093480111922314592644024275926399875091108707954306636942456738344537918637922391303428767239953273546550353195796427910220942262221521961824378954748831827787673666670031341551291398559051115911471270491906036917442340988288875775941394257329304288393249666580810827632870009871622181123806532010148622305884490537800580628866443192524386935141766230826633510553319360759517977219464140698340909657718280092430938318645424831047753936542091518877814000642032421440174721647935936404750978145529085526826327971124698965058288928886230595599995542212013053513859865878075914937013079377409453530712003161533084379920788466807658044179430638121683212201569350055916554930561169783809602226023196493503924079714734433966249063596451193628735607082125175223812208840063558213031493796049688006628512762641800982819227286261825006757757076770260384711703362312347992801291197735023062240036387901728615991622939252753842710245647833291167711708630899817228051038225959106491390196643080199000798195790158232522491341295133398658901024058948865951955390776033365160302923167858059030563143186141518776737705235438815033660636973672509177943665962119703485598080877495701648872671772921398579597788676136643104570942133413948046797172120797784669975304126610174595208423419253506546077241976175993142439369620623105325696028909277315434758428439090116170363349278743017027875389247055678103776845655297489241789511091312533153449434138256901909918220904390031877397872106598568823092018852606787989594769085306370610883127055573429992936156567047854098006941753880365343090551701517606452036524747858649690653596820230090179685291011642410177007075586416351409975064414662957079412288133556866538946934073434139261958066657383690442041478313429063097596063949587529038634996953827016843149886290274352638064305152190021478607214161867050868370899490073537028458654538367804259194697315860477774156791663673772894168410225010677980656151544662548389747516818264592044631682971530978598526555623085835934373841399958835179376126695174213459697063133145566090865849112422395476977213413974169000483891729041475735825661327223964665208273597543204942550246685759135556139749927188001362186245053109322944913661697694869817257953438062605703482796067581648052922038038229157324775449648494871558908174878019940911509587648115800550759699974704470646437614537186212292803772299862960799130082334099104427915862110695844146072194635001702862642696584660325796917129124543593236514562363972810652003237415337434767685621192757363656475669216553682676428431174007438167158953837037549560023886848712237748162247291507270391353023543575200339100964766420340343432890344192041169026119374871199822001087472066013638585637431172012559549786874798540856679581174642742334160185191378489943553765340306537456535660530323781693952033426363367052276782467827736816407493902920861066478860863726573231529437686421023007129917027598281407939595591641797198533364927706181549546893372828337190063354951544459933426037526878927823766290906846243493179243314710089390012237241305093202812125889894111840103969355842689180129736112954569578004705527242832418974549422302741625349157084365623767888179955369956769218396649775826120541457447544581536501873178422260799783808408364223601273782163490472427652023192086413852402069901829802009821947032075993795441031938182315761296599835039762914442959484125002175993796767672503149735450555559863885653911443603491136579211045931793499588521012519952185114286786774827107487811182382431468335444528588317649880784739553495320867178664003469565960883221382044714045384420591322251471271744611058752649602657827676186328612036776885259054520111250466767620173512215300436118978305409499645402088296392655903709024717792610670106775895685037413935758053757556325356924784326068155451322116565213023000513890051767202410614061221617654929230072960199265151242529555592989541964325406350481250447807511283706985502612748896762553182110647108348012599631342188562094947683996591812229576941693378350312832948314504779120663368236171199847386536302902291097060110672605990060053840569615758605851127182330684471104361178054747249921681214663533341143409054852422767835757149237927439635452082082451701668583566612153233482925581751608375270892516319506650216113999291518952951240452856101105760693995572262844330406023363737369613999631240178146527543862247874776523654123309439667898819331085588301660886990102294260955791010049672436942796155388854620426289630210500367323328086048105249417304225988853115608590157744988063849239227892077983964839043980075979208703388912929633903142565797658959591050644921702763642962323091059269419204707961623925346320914265192897852311090042324271988163526126300858317074080134098851750117982754969262842616106746362130899010529667897467851998148323568954312867298487236569241575287424345758589235039482482169882718481572054546013446749518425592972213511813281432684278007828497867748860751494208696052818236974549727984270454646591753126980615068915394646485429087562198360739276623615004228980650113302707176757027952601971901220355819491312795934477669961308821340478241881522753744134166122969214854054346836535873958381802726625661084884554566850778579726740186863977512227808455518303400293980666869724453388178868501673844034747786583554769647004525168966922559558755110575485376015739512646903769206322096429070891827328774057425898319844909773701230155332462356695050721658969308073904361435216151415516823249769743026616800991116390735537095769603478566520605518706761265676068681760475482197632248876930910146804122465615250378533232230233343424326099851878962177609692435382464828451751670610826998248587891242913095964170493365959176097343083736151934394947913542461176546193311712026337678484897241257597855624040134586094643701676907345755768508327338179563707416121836310441182073383407141360726840127150298592517693303328684292803174765952120978077357095625539346939293293781555699547690496210663211651311476900292820286811943258968280828350338308898550222821133492105904315505079744261932285671897817110218768052213140046312447908305338325759403020031368455986055604864698716776313898373900068482406667539892561728626889318380147647130814104724746874029113660112108934652280260912177103909141321194756714805648440523460136230554955918669038188860450081991854366481391981516720183035238773457572513998963844383666726982552986073153879162621646453395769569109550863368322810517326476722025788724348312631529529579904891830868663354650673620063112219627095359929417828545250625389421411470664245953457664712157957205846008679530572205496539527565663157367751552073729203411333238948726777883331401598727093283535276488415698611755284664693183630683238511345548553627738214195042130584841586189224318787485182258615553052504568521268901604169403387711824257388154860773449180611553896561629472164608925787598499019428362714400810688942349183171568661904751594942141647773530251193017426158752433670639090489907869328476801976263292925732893197456793454689980362637613382784593695679473659590882431682253974499600499940560680594039239164052735829808175894309270601935994801341231358012434068165587094440276223546716108841717704179208451489951442541007346353000562758627374466979846429297670439662911561283665123755974095201776508757224680825762704254036664076505685024491506794782887177819187547397824589397687656418386641027663962648923551637106407430200828823607525547777419890482327661675886868566715387054626652325125577941009559284735304069812135048364153365806355897924791058716452616045102008452694126013218877283735584810889591811531293875221850111381067208607106009237036833936749568834872185115086255291840324575144722731004672944509484363543738027269234744090728545002358630351158839392596891436801152008625520118951939559704724569368871598839937318368066619499980002623024305117312710293364405359517064458137833419296309228191073284213979044942031256039143053018482394239817154319116108100572082323613461971532102413271330244192607152591842567886434087709107528706712243089212605244836672895762197459371635672107136990598169772142156596199539825507833847003984844702204573258219868860247136839902205802824038147395290072195919392219779065127079470634299952769177309895981051062658890195569216250546823558648673397589846501024178675761216267967542761354657450882451685757695971882402404297265938934719540155099289118335284114583574441823375126531932798583294281338089172895380067099583849657440158184961516201021885499413653666393463045233194042331805642882872058711255031758721347266286151717825664205918546023162212416039447450507302837017769793033049179931589832064609006788774486078653185317313619246690794900916972273325867132528912634960964488724335380529878701465935521469000382537550964951900289509696826560549979277888456753300930084069736262840823823281962898672538333038587971066287218225665987889668326166855411089555181530090124271785451792543498242067946224714367779020948667443430676870910668919324695532021732840751954050302477268946421202047382985449570335512037466985486073617481847782308651891180889121633901473356785192061985073585607561847524280792500005884403181023139183462913480182620391420628280012685377649415320947677655273192947261466030315089104310549943409378324871880654618775514488103497972679493221665084021846440050500647725427063298056713070457211003993349082231975713990090310695331660091826481617536148884079154978724563879714165224863581661580022822353113930736753066992114643831588617133696626567497141578178537687542632594614886938071104252788926126298583993016829345012673693113392338032151945092104844379703513291504730235434663471951353740540810955983174267864778185514784113173437031191709267532216394646935076751059662807448765332888257809202711355563600797703168325870068391579604008583921857323737707428802640633826047555207969979102649259421842404377933872608848672226373016487860253084766208026478872468450667477317758232184937482196238774502408247675010446419713301277172760178546504842070698954328716083157801453169642597252777759011898618706142440203558564648985946759162711093981870406618496961181593488146513600098239823342789188997717692915692323102240049664253736013954748997779614812272142108596364596135321665503146212779930809043771878577826190681363629966612614266498681735463787298762910824427178922234540971201390814236900729265932884316906121491337295462769656573062178906762869815622447869953382073795378629371834650844001817326447024572405608660216395107723537705008978940623578541044165933059670230634741424509069920300459191570898204788199946416976129848652180180370016522732800756261324489004352248276717987693831042050633527674166275220821012242751484210766386545597508455283843599050789916884995737206108383516412739554417665135524014211835856872326004315464275434058495786885065904993113779610435474000484219165916843840737993076257249995698676077610848730336261638695588202358275935358868704502725125650271147487299904337441155941167845785603969808897850954397590678401764184750654420299563840980052804427859677033564214203070519641299819768877818887938853485286527598744643983898142712349586678836329352446707774570471158808517065363418474037171022526314202361657685427103175323251192364257294819149965124380842284654234615906581440055742364599756372772820790093254418075305643438275015117227396440330955894875574571769545747581110882437767883702189120940606596513101977790330789735111339671464919402436697747368468269160681547018369339686618959675393887430175753231573773306061959835364312108364220639957356634107591298128555767341618788665323410004141739799586317304388483733004935386629376082378190642918581903410322930616945718800846912494468561534823516992488887968743756937551326009603731035328080773087591185357835902979458135481990998208080716697283543977074220232791644874037575531348499315994552744230910451586562152456182090715755665796346492633945204806007865524831443670992369500933189821293681055504773974088799176252359580076644470598382263458247668390191355475764565437591335832760923826766008699095534546243551720616196551318339431468999827186674182777561223903698330557942722517894596238326451237465683507885440959537458609320111674360394840790597408960751312524195718259827729452993189613110798152594389499076076830573068493187902672711050902123207072798683736813060710935954761043811722612651280060614616069503752287762792146822357233000324760728657858979913828116966864883577835420447464795490235165775326765737890941770914937040416841798917895774289004752800190331347463811508958713929863949070072598645750315831586449368240623408112731913841396866733117273986629329591800868164073748810133771882875457888035077089010831636669069134352984774311738932880582532048599129422645459369431677098534445508186082979426430053170743192213858013149341416745871196763964794187025984204227699463343737163815677051462250232309581702887886871457548158456444261266917138393169431487274072781202476180474366605698320055606789522650101247573247010511821074234941886127561660347894458511979681830997334565106571627463466636989814067703459230408941412279014617206532744820665741452955006648531808532925917376231478631987179917620712602705220327313372503678770231088814831602070815319203818407131836364586916875589115037940162070547324331624231917875309217618168912533251517203450194889402691539720887978843182528599849215460846496037483424361898438951717450690470894773270246711742202066773156079311770282186470295572366082545009024761802182876108915275670742148750740921021191445125087122490417308946965640655255799855629906479822618762938900968732788880592045959016546441578986348564335740558304861334446742022444146613484257781240043284353397039140376469550367169169966693964776865241617512406426001817980895845676983235321614714686355345526562687781362083080109971514335737910158761288904049769697704878683371193646729640587590193474295242538800202112038409876547755335759361082086299604673020710615153767454654537321007254068582523525201374436273841698881096838697441904281591420012640471783845205475713247202988567927921903975629961932936033868173375401640456021315281528663223613535774132464391161432343284903379674352614653973830783370741341398139001647287280147738515243648814575627275868356905103954941026577195944572628360060819997834012782665158993719572986638555691333978975205620717510861689683706354580794079563870019498020867034197833602780069806935904177891717417158982042148529938039669204301193996188701014492840356369637121843028938207023026589006609994929331421527511430811329749755840009860266569143720225773120107637585919833758194976985850109704738119844749246980366700241348288459030281458673057463207076764918156435641426066129186513178609343980921349488124134732359300876088550767165646627305083451494260039156573883413687673876552299669741761291555457031505655425565279156781507875447314439511642478453596466544001309053578665836988692955024387657936831792655427710104487541087972784869093225966344336646174204978515314843590868338961724388418524565901496823195495730095009410633744582336528562542827528242821110447087264279849888699352778005802718656141335438384672302706093548618644867985275809126232688411367308186067194909134914618761500203686726190537260733440547487830116116799229050665861926991995748866353575090522214455559642844961868140515195402535954920315931575230012813349362337542756483799310149079476853179561719740223486027948416558612629579952216053534643501838536501608100312135554999560589430509200875391002318832858916452398233987991571287776871322457320497783197141610413674323188387174828095430694672462287748541996042534598686415390513907734382969629625761938473541342216073125822858327081125007301537124253151910259539640744619074208817200910687841028778663345571562872360620799014650491942776575759574368592857670850611273902587911016127985403179946405718023879268848172200395767290911151376158370404192888388923055962025372356992078089425982208148629510657144614475530320686027889212092899435850553743964806834747661173451432338510851411819543403973482669955171103509051177550478649845314688079380666911960411562712430331861660794580289787967196252455478594223361584468824598166450383722861657466765986937773466783444099581949814312943068248821213235825000171789690070433554806671979868754933688251353402358184683281418207563397765129023428132280148789792524077405243387025297083671239822411228872016723033668343381733203728902802304352178414091074293732177042452193291101069775508335669893401797192355781974507506141653451784497971943331238017419854321776890209304042176039398494790870407409729366026948093004925193128020258380167240934818445651577674711866312970460318036772843942341167916945436046457380343946292683463616819464128600293430020482464815871921763029558688193165442821973266081694516025902177940954911198777266549704076253800669731438748310239687384361086404106106541242790504046748711685727394390719342586339651407536072393862078666483873221889575037121818379360346929500052594593457171844968255429526070228174922977747391854373936326513057635928924581523443556202481783049174946383294404497910461986084488973385096299073412433823998779372309384054537124064452346453275109653878618690749361606457428997316291491771610614267210317305912394861441540065186920421537948374310063227224108294876058433975355284106405024656071120865946146703208972762357235216707068539891581313248575836728410329865731117297247299837305170248282300220925756765311576623498000996833641844140991881338247252005196128212654762401852977252182799063211376837409184785253864850002792030841036137411798047206251957950590069107732396009474195714370444391733575111400688974953588970942976719049690256195723094639162192642821809247961952984227910451482618482196567758364226680812183573107272212222386137248172501709008019743472882555513835359908878659391293697488454092652083125300145248515869437397590767967415266326755152963997340702676901506403877920878337740477462160340356727763190949092289932608512279154777304465627177407937379923597774717041958866579979456775833941043437823662576784213345730913773439182959880515020672738201881699288684444711293365737263480672836818189754624473783826242622261539075126126072624790982166667323378133625669139445586894690304050919117848288963103127091837105695531213996077374482942393106439142142605454579460015522470241882046046875416214207448500192527096988986846048842445981068889646682979954890985036135862471807400301640010869726004643500546004592711865341269389962303578606503739472354158568005396201902190024566321046621291953823455436648970607627626129158034681804532364345150706325191945415321487891284415209087642557108560454262394459486659295963207564795908420528974856462485123813700118778380064398773213334372091209546332574759304296809946044406372065715010992772719182912520171203165306926378826806978005312227387722464450769369063744359886973375785228465383755135834434284159263952673794677535688353558225695537234377714565020623307099055696982099654988926901979329334051152443070398188960521490848512367483128580494032896461605615486013175827717570893531203403355177719869305901535185553669672122950826571322277190663546516211601136673714966130639473263692033722659172443602435195921985680420099133269925969997445186826458305769416960770294265446531267857766493516566190167844066647361287648706071650149598864686524211987362575793920893786146849576476138953596504406555592229582232261669672187229938566995623162255042826041802462701777814138409569494144341732073668092614234918436542573261316714682211443255695136766964640922665261332058680290142996365093207836744473535525251584015761188837625701708679762644870228790806265362143252389064860191718862748233945230312599127606491731606452621248144222450729672780722652686686204801472137084589785829249470789317457235457969419030454513306102740840983474898362173734246655105933001889860828089404282219780871093313446839361718881955961825370844792757340398479738748498253955606236316404957857771486494326819475223012023860079477489253015953866668627326101857529070179610329021574586717193503815061283152432941405167363562575693920556002452283155580518334712039364500663127917481673239886921411028943461549923703375111431260201334199230966895709920490893629697090686152667164803840642389157592549934281797291107242439116036804946635777496548975718163131369683086578714163346079457908272737067397845066129451871518489034179060678370973996719775019422984154025276762790744790169283122785224538922357992669406901226974990169530015531444408242942209429567386033944925416551142185826476553590806363220588290537137291666206090639893415978518269290507710350988393188111243870198159216364929900658233625035675443041635707476725458477467610271962603674320890121284935593767677051267338159943967868051851938867661197081017975954021466139625142260369950495048310475216096644759800467176313207478208675585855540946408794316824655844394682950369360342915895481467555049759131734812355898662510056642697688691042271837128850887960226180591332041918769238518467573387900112675400166884210945445181472991573512280149907582241200854567594873625692655706896829276404376097662104301607849986417719419139216150105773266596107262747581917438496273333586063031953436508676231166775350677205984119438572009366708739060295577558439971222705874772949724582044142092582487133280315278049653844706691804535594071573960893434744227910720306289749487463080735360513984843058362848068679927223235846299730571354799676125384373332018876838116454666502060914391841299316817152111575761333964024603791209310478271470463552916281256401133775324368045442425000912094681996625308489016428523050188174876255059298130842600525348935562738712859215166227006043314841408117354335869252046733481653723377263839234017303943782247987927246177314831826772356651236453209736281256168209575554911084308816705851010999648543318391168883151456034743439593594095899118120211439481444545942618181052497520832500327801019379401187940168606471543551938376208607355006130016297484551958047526691228723498880056620013594343222259349439394048343917741299592172107128969001613107388157776255977146274364267329845532553537493450142026851264278777947269952072911949769071988336136008519615241382197382143450573741917942344831975724986312248646443476424642266421052072167879049302715514331599889525072288320195896445794963618545009710773170524943953903291223808323281477290897145547142124446901268685471864732144401608670485492508841181639628164432284639508083956286425664008852731840849755990082855793603479803660726873022593295944413120312897126019640951922472436255390446153890320994170406762775841400081278356637160156444979263206642993850450788801725759523987549851402600619852320662880312285459398573778066560557011640250367141131040170399639922004690843529242533181842512103016022270671276429051599943936070952493012207888383464337671928777183318224977846826657086711736617579547694558148257287495918441187922792957818607642087815817370116217343256397390861702459583298818180233783080678171950704409824449127557097523599376604442827582605673041851242397247231294423784143358006977145527318289096288495695317433193069190459833519041348175634239198961323050882386060978957748097960009224313486312310024267175686518944546444846227407077192340326563819208086536826740763076766066314925007060616475810863956755425314422757738706816916304823606254448453376319910287329568762411966345289422321546965949235351000431617448072760302168734032389067733466702123542169398878005880016575001862705467691470487368818336730856309008919706008099622980108460674654731342151884392209308935606918877102784246832092529039771564572852026662756072490730190205723573981872897083439616022705427741984600073196717395442070030340635614630203103606145222269276663961215092213285271965326189517608989931666626245468206488015793860515438301337069454236306694869202422935005565974022141618361862022635110982839112014712140537864742596816449820422099869814169550177884836097781808180167218946979210118092384483116680450910663548144863921475667682662339575471637168870294590928464313635304759608574885398928394744050707874574866611541102765275736678059082478428517652395502367790741723940410930002786371007839184024185483795581638118457264604231091927418919975959852506539164851988784631455907587571584172436661892995413225891882511774432515573401161898891998636694375998782015277755643102761378636445509288946100521141612978132748488386578975666899851390627416290941265680132947592923443011545062020270728636311530463744997647412288801617954395900732105356796218563330021238296613645750231673525206158838845621510163342090146081828867696909385722470998821765869007599284184732870917258378114238512837533224027736580121770889998967863209889560089077329728582005575350472733979682854852972768582190146729511841825391852643859021283856485533865111005445057601662753987150876449478871945767888315849326586590403854218091106790368141390538455165569476868486718125960138593011972502346907926947937372810935213700656702904016239020675577695121254409849994737893656508987719366479578842497451886692449958025575833976549984324305912969323627346594330172934838025621720244339591565547180557822237417692537272502539570045397122041828585052826495188604713326265005004451016330983047387711297458322112705971056670795258807858617832532157774353534492597255684923489222830338049943001391885992932311503873833431507057725278297659804029446452583524254769117069890977173869870080379517415973466658233320982802796684959391007158486009458662787430629518527051308408445819685353013945544337199280780643987210364526110107316784950447105543886797214122784634367119764274612892191087093099203416492335712591199572173318470703137641914090480632939180642511180686053122939608904849662290752003028885877004388581244393981850122651838536846588353612607312440870736069363386834113831633931465544368912479187119107280249107480825789416463170622983167176465073561659912946814474269136822241142223246708472713668044827676097433389064815046789994968276123989978138258169518414157064664067325497600648293154533573849711617708282719868410152578106301481343205466621767065111382044327303486204577712116795362914990466156348300838826750764169497195277849104920567540426273606616380383750283589957872434706163864123962361428139892390500894296332366247346338428424739492555709523490806621101865504337818488936383250305818859812565145891834273676480696340974004198441231417861005279390751364164893097373519361447283542676423188837635213613823070728782439563167646707801092943359524571517273635055649231920820958869271313513708847054443894754521742491835894165279745646656231157694186391164378448612406252356266600657038548037985291995461674230804713107173303389884468901980097282347881802193738658415467468928241475195688818301972322761479787495301294043394660770635518663640189765978675858585380648371258804052609168325854799452734372199190850394617403541375310236903447742845397425015139217408787219031384591164023655708992724917089496521270176311013175496340875769311284780983512600404598654895596114102258482662609234812931374059095299197158739863020705566678472679883410709931063751292469115985467867644083315244181979991846742553888853076403760707327853434595597321729190849720611059208017138501507745630541815531101567018323287069014878862784495508968106005389761576769186744833114705537727422814022603810046218086881602538412623762020338418057519026788913628302897576767571280797336868879577395368386000886843447006441582047280519666862581178208445881183124724427263103797496709158204796987585668371352454664738000783722501288388569220452765772532216941844205802990384754436696787837773035822860017114094005481785569845289390842654337710661924799309706464361347437858015834181452279640602415823674204412885201143853109530835693756004204693031815878252624129731963172765924723126797173191047160903792250920783536789461175392443792529273720296187913605491523755204951032449211078014877053747888555554720728005577731234584484097178997684847438929870778026239256863624800845270358795435901420635658725407891186543587806440229445283244214036905652988003506793794619615644239721979687178029161862189393953203489166293024762042011429475750411838488908211539794126355147896152532121614841478773670409905155860408844691237667175094144145224802372467174285918546637215430784752052600004688066324104206400455910756789755703935223165512148117648454343615701188873393201772181112549453867546127901978847111089568070691039185657424299648447683422886711371130322270344180709798145506621269238127304331265432771419277065635857528637881407754254561254763244746975471311895909870693264436490279624883219799929719866058566921373985384241227635996306899160031001184281531689214803571075089761651760790032326854975071963158429819996170738577533109891208124204554308076858225532982928337008120742674050330962867639249991327522357036876683568922871846628385881380775450911234101558085062717676318752356578072705302476150845246251064085097429078069489017925107313309117973034967294337205467682716860314584499091572100528185352509535523845118404303491727940658366373026521925662565423087333151128260779239628190816564056702584079939609279543396610083441214835262946386540135926238146765906500727918176694590830556405953785661196896663583366318592106096010613605994277961981105966678012590969471568087730681594085668838707261180406257935175112022132278233220675363258811628124834997807700469475846028661327976158222021516527536383920109901533695110007621113682640358084218400748970389857436291136569960609370080802125687417616105373012313264808208451955453964019331018230242040076215230489670715870210870794021991516883366981616423309789006163557345160129485502037946628095407202449146713434602632812561420987524796952223693732453196387725277706621523855378148504803942236887299238847367507182487362245714494160278745815243082751363964444717597430710760241875904768153387271205293599837420025457255698901080549246018513774063542011259488017262620519409595142170463938606900283610244076957154070109635173565435100711082751375320561570472623409461633525858495103040924323851869843868297825349562202857189662338924058742195218734132368961110758565616528098165656215868716473182978074152603860828574844638229277072096308265192591260560527534682232095031399457124181206065149635865498870447056535455575585137103754476495645271694182532020167739664448110512460755774991523223920812864986737689941325106855047209311045469636236923856239864851435636400660302064121299745812221297814023740262929999354208475270955005605148144711825838231303537976897938471967697823224910712128460999051354818157826384203966054373615442984437559881143181888497798303985587512233888692181445943585988801515781298350643337422652402485101769519603404489852278757018866247853266255715435167755733127133848837758282827784275989693183147290270539447187511738094019002771858138315091450179573751822226418915596163133729217077158584075013506220282155223169783516051561180023039859773936091318253071902736161630031344992177400604065182840908314668757270331904492466753092251552944728990775660222776264193181148785724750248080968462717583147127356662145816424197252261209312692549564642277854292374965909682078162191279558739014309577732612925039916836383616089520951082591276568395079053631508123988652122878666840171045849554086694565529896590971966190283226259955389087755721424184017801332679030114811859491400569742834947363769278276415796308378138414535082924106484827931826166922399781884929534383687863566359245139296694911155906563200374630162596408941770597494330595188163595687328751683462622037368991966006915010643934117379404985630977350294025375781792828834805378598386947378190071748878029879917094140910405665891444463035372697060091278721165155775255954339395772811070439611223627080109395739478642562965789589023916114013798840039572800935890128511830447678952770801996722370228330119646189224756601895983298843575381192040825836857203062237448218375044028054726290927257923452723102226687611511998399288964785864334255316829723515856608742772851194011620961319712736768286628352507986993068396244367119044085631088146059156862080878079945634583993829998582494576392313203911390184989248151254453497609866586508484017414918292631742651224180375585361528640400332061394896272920308769489079006092627663781230185367086510742901071112542142614603622497570515566249257542403119715267129176037112016277031467069956330170557594024382127684934087908867889204343261963923457821787873212991976141792152584217473612612883963408416123065635460865283857403462054588087509806131061675791670361128704738436870206437146437860844951625358568996936869375930650613721953834513635173172155393773433406313436438759172643349499772343894386989386285447642837514772460491196678462023501831973428957203567770264953666823836298908251077684314529147750202617391803733910981502747330688078335589840068662056426679014490822720889665988167704357843231068908083183815342093228487593860346732110713660102540919996269891796485105533513889249296806412100063853936335367865390559411453718971080142442735419341496068607287030804607340585309712302600968727697824501672035400682033298562557978855132153749275751508043548915052229793213438355427299108762461580556363350262076433409483230206117852978924198553269018690945244250644583248103441142063377104518572476054862182718193820926215870890746765984269961566289387905142245512110669951942937031626997888592120231631511905406761453451969889963777148331293093551163766928796446046726394113534112148163158338581960242147290761291739492740059861402797240008419756939857804562027823008450510628444206938413366840442793687320384244053795931535766370422917337169297893546949160071567913243711606757071233297249472017599803992546391348935246733003464611954546908472552044014098038443220742160078265214977282743427460625245308984018674678342153805104549863588362440814542646482947006813134752797591271851218594054149732053854875148969083657218267113921496375365884360377230027879498326252335562065446616844012929325115722024321249299104246266396494691329425064415228841439387324893859830341640804749508478273793582317056234162984347066452196382270494028444907623012981057858615408028134652817601189663327497345673217937481633283816178548497920792222760081514634242753696689362601757072397014198863784212416739846292955853405671050257626884754819272514968030698256607764323849985106085488557207505020852047127113307227541447668304223942806288101539971476900975509328442817336170683946669670921266139827687135235409712385659763318016330548390152621776367110011892451920493297119786518992769238015211373609743065088087761684770380875556546706782530246958542915020725970767757764875973573180177158937309819539290247962807484953470345296256411184129876399749125051371433955265531276982641735561203026198627170098166718310949353425996325534155339186790340058182883878674998004880284602692812713629343784071397608920957067370975140292531259320947543555002079408567629179258841150971385980401230726189925948834733136262855739054903299619234571281257462542123049356842530731409003528634634422589216744313771841878233770513915570333186421193225891327767346107750373709168884224210405218411637894439087283650968929456362438790635011180251044284330803081158270783385563165478717459567157993833520780643235403675061686923912910472907710024892266606275260417634770143496970727926935394275792886154739413828918711139024994814920198371302109912838128173342639169192832625887987154401430351517974407670895774380822327717150958981159561624542298303056862194917097549967651806092651253218975621497085423011365178367416101712255580441622940925573852863859504887768225315676343346948033317400578041447788462016955197868926019854014476838037477174242860948479135161909376887649702403597475164106230034125540581580329874417333976257672078680912191224671653179871800360037832647252046305703396201706939920591924847332331792534167025563971686764452301065285081103531570208523545006832990559852136688125750053733863329178992986000978783973629363699975174801721740368541445448094400948579216176169935832228688960969801751455219533136123915069526250127842717573702406395226507151595469544636470540495021007331994922342887837183045132219787813127851209892161083092416969621321354519944970039549193997343000143067749412377773710351179116048967366823557826809906903365652982646974473279586395219229019188397133436118949408474965290828465233656022759874760119080372105559264756147893189941697605244652652687029560324464025329828096974610667137844768709109331796348477803182743199125025746055962354576706241387541348073389247030130128122561399109750788270813022767991602746151850764376408622906688672050973797222090016427903447481201770467410816501947616379304400237655468757686219587435558087769383407077340789950778924300658966466557009429904952438993503919462411839479154411598747909475352010489019659664513216691689557621505278188167928146690602483165765219966213590062022621675830591988002711887693496956417348003854026982437812617916076846107134123342353583957991171167298459260342229337945603351054220110313648536828765120218327699435303759001693361855416942832451128850793314845314779684503921751994268124095768358552727571237950148450870021994719571098377570061621251479292630517485287458366281423572153059986515013612377639127771332342336014762948445974909375483192163152120040959007610620988229684076633158183736177188974217441494227159675358413542808012250247264514287344838090919968070534045230027865473587136292488304782408476197480999509670703946824239883964828918055830354869106734946305627477806688556790284864821754013934923897225774891521197600941794827707731687917478747706334624946982973867328066924434720690450174773384002808579038779719424308483865531132473817843542380186101459738698595658590286950886728217203415511867086718874316926582764499829948818209234930566684946029287489066792959501925328172952300527364391622916181085750847103254775371773924525989082342560094081781339810495929991604969250424584251932267394772693139567129298297540911125783751462933585467620531003156021973036603185892522336173442912859593085995441642109034269719514698740742718611388037130275257792225065544159508790022973037222017110012095604838633689800716150713922303525852021211595432587342157513890472045252563476895539043375191815330693957608629849010668553770609300735968439360180561243479374053943928089183546188286918195597756543180604225130737827844461802852075769670780881436597754891839667051840055694181419616036518776946657261896264310995265510428065838448735005975728895330400153659658937918151232520725502716608611204488374703467305850985275168466602264397881725471142980211771409087912716967134598832252322456830824437861692389903896341342893539599339555315429459875133724821243753049668083189900485221891235841896281115742310453434320129935572545137179667563054403610089453251032655022046836003815855431153438247722784555759578334672699652092394921087548718159906285518428723693673844343310395651491479438990176741398703907717485801892306688839229817681520737033189096199572456417418188446956561888244597042900414481403605581596375854374547019125888739740372557437108718876290991902649177100223634048546603104922509291020515271940008964476647279115178436166399001302739573724365436148724738170119733508091840084430309799059991774710018903680316429717215497836201187694476690137654044140467827905896952820286758966477085613780982516282530237566301960651380658546288522678285185580645997195442927199626186575398782584152254316544186224497765864680759406609188749579209959341568061684627801829082609866727915722299987369725026035305004487095626371652730887331336289203322647476675652679501760120580097912887100355710503517976486388210416583039492019982672221174959784664063176140829844378796764887090412527544879575619945460400081609696937637588218807541565421193277373724058011663905580020820649809110521859603122271964619590855299426460886221231158731327178780340456515342240144064214540964685361711417735696290659713827740979275441632092569560933562290457851980847056033189755783570040329248592551132458477443305241329595440839222508866593548391886778645987427820915095274361472520262055572771271852659698055462663590027357348450747475996847249961423043003808268816941316445848686897266195374031019121566633357307459800670211217083342554599799347010104093860699648748742989276043508374191408717565330051855539453429581010641987321361951249183596305525730050580548827053274453555528823842328270964624834369575799872294388715665563380308416583354695643957808127851592947474052079508273828999536834260613234252728333140884602129863838391719139557456130537927636358307650657938017968168379298841989867036874820162938655025471519074808492835845665577263762241232139638980084061010719690780048981524252668337044393663083171385134502694669600184413663201099310711455965705094326795371524621530414497533243502906738435399617627292790547593415994210976651945392492212247769921636449783945143440169608721846654759049488807337367616573494373568146045411214927288956540014818243847440092764332178535503811833073162615403418557414815670329828340108562812770699687418210583558608562589952970120215964773044416802555813761384219880063008522438500860813964538328458912452844214520944568961494719155081872361931517659313553267684239283507973935966298034355430173276891711414773010082563485894838145816962912484717651815250654518569800799458238426523230835965704955567552231972014935457409245182726891462907551932221253150817234625231391622372969110951881047584351737237042422665348019645224748080515594105514465992954774049754023727705556543994227650078369840430135965465884298456594878754002251218886648405836816326620381445081695241886056171491826898389211202976638108815093909038606200695018839990908696641920291843328275638848444712235439852507657009425604127457681960250152794235819282482543185975746132308754292231781211419834469297962415102234866072943344823363123595968341370601991852171139619239442029274128042888575301010079364411743406053262050388469641914235976229106590569101219642334741841605836380973738019476953358968587076789139199021197046302110445193163670809905368781384146643549360781196202707732903956918934443423495542670853152606974104806379869250496101509070191389133683264631009905255196951505462409274532894111863562276362534641875602861846455702876020147466648236654838815550252290855843882479508870970979644774270200246494732637332773011466243145395376251318150505475312930964174490425957078228639774322818521102850998723840428511109243819371317494523202330073181828748991408923539529364747455027650823925574435959138042355230655028118199210869062546530695786838934447939051672132241669884438345082024351246705049559910844635693356413073863467014568648893284626617954863704205840508350619094966602533848835118790089316504844641805779089225930730940545557448247203728971732543830094064799752897868738196126299833394106344516277512393400323538552769411285709246082983973545831095474701960875559569765710512427560715940255906131911725865468874936017733380020881525283594938693566500290412705114260480765915901729011835214332928175595478447249213434830892106411638772600458901111055358699555806615584119294456078320011290311123563086394759977716364445161379327142787020067361254458941093385033207651748562605961518025203589031075190383232892423688674969588673252787228051059114897238191590023117651016038395066000142995635277049808751409495128488510407520085508691719097069032588016330313767322568498190325599189050014833553795837870536804552668398001770077821650168626397404299728792652076394335917698605092311707321191554993426731479889910752624533076213827904377146592405137014196700637492751326655775832267551480763872086883001418451201828438853691369460022668870484390705985506827153717394859740407212753362946328455940572263564395242026567114035623922490243425315139357974296177119945573022876973056036826888722938417800715898058343391565157782578947770770633785152305067551298044326908110869995857460754571256922601299148499173341664650636507728467469307254973512002353860043379205029501659364222375534928210436161913330273845193546732990540439247991568511412299813721040690501904985138563616504133199710198283602715240616108857508941549752396305999117218124867615422823848242402919177879254057775266635387791547947786799915299818171462030967561700458078057111003650445896296152222690309501196070060616342889150472417986642390550248564627018757729490773482840967598242942938899430206405676306647647840373472472872927214808401086123809249194100529350666818707617892240856348086211467883189171511395189362906208637627568904827037316447990429590480623034243140068820967382127974652076579963735322072563394330623101888416454623357830628572467831453200037697919012119442299136965060927062796368449640458460329579006453168210995969733954483401163384758157373867028577416692561360728742141237325545183514654792848841869445616604615303282065862563657487559699243862108039971779797647967561411507924464286238332252731074184481849547444587658784884339507781340596467247684244807750996010503932137870023046116719399271380385050944633926264744724820859066508371496775918970339751058062202260891552480526916061191045029050378383030692697825725647727159900598510397752503755401871326711338110382790225031109400249040159380404510300562694551410115190600092147360117325123429048983130173415855106155648307586736049696027653570723531393120036571835034536142402445762530628178513429113321366765747278512139705139081042092656806861180623939357696509169115082285703166374992154983336357474698784611894925858526117786867548949509134475212328273618105413626079619472226842894926919864470346853016516060825057033687163622920090595723580716762046585344724000900292925255828104110267203483499585396957387964945789714528677594872764169408929220184381881376698809664857578201568899777694282107267681902376601810490324539549766471642124528162409314050421583514225494202031835128499134795808941076725239936421448377573023142597304814591719185812043747806831853084046663116016042926343410342122603661462770277565209514337724516835602443148111761220628845878720650486529629403838492104470405620723339608148121240681755548831396189546043736987637224404240679288618660912950084761684326483631306216180802038397334020347907248177021709383248688543781152139465357376348803456920786137543096861796392657299585770088941563571303423694428511636057824061654274738931692239929596593463779985888877468573487847536806595117569886397174092862476711998028825550185185185513627307960368168968492369171387287977219482833155055985982233329182038632134258591065625198838156243990978338755138290244570029709332206060661474129300422395201760942606015382706466932038952557710140219657358346796535232384921983475252158335963130585827519908184149189592903191799439783672812451508948413962205848735075460321278560433960731796107547985496871901561281840038562620130585331059037089801386279888884203645606218996352026130369301468951922868671277532322297405534352526211819378967915565399984471362998863764816326212726975192161201075352842717794348755961796356665714305205812729228267073798892816251527519071517811024092304643845114563759065050049982358988492967573512425577388896133838768205689967803872822864006861208169578907212747479735155755735135599385208141201622526578324317546923140967498918628401610539487891192797078674284004482974221694393193016328710002848677752120620656138908564574255123876129324162684554825674670687090796371914972184098357524227506391825228783358273861071222041151728810864319945672859429650243127736421665938358165178624873510353146538985609866773268992148326593818671051259335538030765354990189368581299833105113401863440533507580312059455777378909270839839810949819295808521484197104352941244077325328279750990044812864649491703736473290929719180978531121696595486034190259457131831544715908150637453171753603941618725060330762698915975679522521074991090733393213361412536754678786223437121257404393802876313087115179960344373845528187877606242236955168295230523657840395193888176724958246046828779848407393890157995660677926773478921255952919555278686984781177107833093989910461983836153090079813645804352129457754861206910931536278301955525043105145205712020047227721245331540854008255620056886390186622807266654598109810240848445450231296126110665835348767809167824016175013300426694987959221826914376778243327536553923603545054896437511406540588719220126266439871639515573134894631459701033199366929151196872404513177269969882122066749673207389155736401775413512182752412512768586365672572190221931025978694740672198896621895936009756270064232501877609046144501536915514434174310472473051914581496454055287821961638232294489096616887946293093338619069165410017336015160139533078913638870631306761343491065815127237062802658904080826561987239092247953403321895893610719974306293675867561010693589633787592788325025599912184643208389007589359545221099960815842790701223694187057675525327461718212080991456296050901804935463801723274102450798428292491488892058263010354156746024886071831556157809421532153648973539659686879996129074581486509657018162437732531792616293602798392779083911938111204049475653204432418866379466456516003775382169270634354554684808093211069695782556488158406128796586444466889730296812228763555086922424587981863602774820709457345456257393908127074083212065473867097783142730873248598711969690760255315757971962940238796443940286704317712964531302409624309720877153974706234055529915403442436708568715991006094151952862244446090961196410897853558062995962438638332516450690725055494138246351824641206047951327355150186400095480825892941254529951177207352293392840948891313472962396943897783835290154713157356047841850104713780348079806629479022641774098551955817263104084533716570910993230680643369463130864525717606632532014567895853056907746586916366407190849173925087973851517230588648513592544646181021732264149542680653589212552701555700111952374089606987676895122072148019096721803389596054810722541073509885818588270726013803425815844526670783630689542575611657419835462429983033492481302610504031521834613044844611204373786404328687162510702482813970815368263077219126311112895959605653936072686751425655493250599935400913415485964979169918182692627471695456491782738648871281243110873000481850257987444213764197571189899101068569391166324676626692522512184172028073841054285178751348427629020123996475248069851598764833977040544486304712228597565473372123633541177583896001158433998428261912894219611002641112545159697903567274558295489733778795033014582388493529245026874564782441603886008808138710201532968761930020167920496554933500165320634418294634376425783947725772183521659555275654616912513010261271721612363064269193859860922462330551477252007752832939669141280010507022787884951388517143726207593851136585176670770334660075329152760455694313828584820539703137146992956196743413737097655128765349847384543785704601710915761184604347473007290727044794647738761701662674330538996729419589861192459609675115952481634704495000456286229098962361367090517637509431462224616864672154896099180231141248088618518521909421796295614150856543355099513358811082282632120105311857752202604942667919612293545746925506933695706269499076501691295463356284591049001900648754900010495272313737163593987478844965473415165002030342527000229171864473473383754428059050084063203565947611420415821820301599572650839421419796822093974919269092816229447604911129138078799468317373298058094773901152865843682114151277175300065584732886767423052613084377708414246772683155948251206207145187684275057694238177816624659120581346363092991433557932451274681928777747125320819977414745309912456391634282845935836354014466935634404387432745602073512555892440499167627808625783583772191820810752142180146914288200330024802883245887267825068668935449808837526990349491057162254839986731039272183795561049411505803639143509184329445784826004705497466771492635590270100648004145609948223099173111322816014434950169501741098785385992883229514796409326202968145294593801722924915030892224087595620111189785301676763219821269544713057523105256680971172266918292925534872834487732151945419649868679771730478601763579000304925960393348424208176390191234977887752537129634315360409265960298678498696295514083053761032515444578457313929146530144759274359155508569016007650442307831369611361850025973902313575721985664206143150202060006213366785405262870074821997110936317249426774847563138290908805828627597021988508887908443334067039759830906282713718204472757346121269845571732824001937958484407444001369815087671384073992563723166423032603589276974245887858257693548457236291085714243702045332936583445177672243944631585445110685666023519736694627244326515383433275467925786068740858317901422329973163153829826082950364202683871329670126213020619142467265458628663154469243464309105160936841912703375051049379370098169248215295578205093420733471786564788578404169926627903578350740893229118415541935633733228313332798499417625673411124667419131642719275888292037385631984721971197028330902329140498542325781260116074936810530717134275927476973630009698998836826743345200952292231950324160783652000534915033092203929141168917746698005654755577425394976055997620712135243418225293929270574064114680642119558006042340841478251392065904709870919923123918212023812152929610747580113000570626313740620055495505030968272694655080267099228491000915273282663729657666072734048662681724558680304873467621234608018812897716840021815699903714483216177621823073663919347386522516877441526216605086042779898103278891829119350439051459847071322800146431003487405092343074035835203916535826300915217679323220631345450079305903081930719609114437414981395801691590647805163052149257637275961471038275707414822176695232183028817595895604868478296132953377164951105340363658820551966403733887728816162815081559846164491834099657451506722987349220331237213730575092050347336471966065355943755401914132962227943697407945195491517969589837862469723987796506651656956035686153380691435499144005705813379130828730238838355335611373872139028060776163915364791365515627507830553307907633922732658343529006174298918205500702845850421622516436052179713653030114517112052105069615624914911246777962790227588737442364525094334218575503560740512464441706335496415055557257853240090677223803849824650201007102604122749432847956103896166339195952335149130268872266073428817982876146854576867678175343727026535519865468054114706389314207899193222616713143247161384472399612903996856908280783704586214991254388751606926716174472068966434274876687371846232402453189481567200316355496213691507025848618688816779642776367406008360818684241674382324411234961811718554500954604053385421073262882311551326193507185301132776411221681167114946441262120662662346570152277585617310003243078984050202185356417449428172555856476552578444823842586552006924902976107484729495335338463882234790998729133635239419496171461738764245935171889698626721496547844678403053266133308566213864031238628495156902446909791440602208728463193089587256361244257583306931241085858946307294177166208100809999201823887463148548065461464638072396565685087605177633058184647398480507710144490401998856380330265463920647608919434184923271885938751519996840816319228867349989079589945183572088855149777627141754628804167498174468292003818616922894787534308739485431904706628055054977955440790693212923386523253385737018314538009055926276715029969478890697558690396354492915029426290836803699545066038112807398638999547904289183998276108791393721846706988237340994767849086427724574748715378846930227778581949627704561428075881937671259463519527572408105944971783451353300698941509162936401439871660685043410886882190691106881346014381827371026045138945067423379044232124335827143583764852226148698734586144304284620763364887223123463959749193709056467827926009401231715872798512478324462389842902055553047582593759661014384921922684255778193883972285209023600723744541097762911302243070365234461804247813203356366908876786060404176330283099156009129696665712852980815323216586361070834430024655323235836390146741688822004434219955767689794562204754537765655015447388730316997301125758228048349150872419165176412090470478943539808859120242235991945404018647001783797466296259678400462252593818242786707274588287548484339367700558720562173142033258193116208746340814479612166271575568238509532457310506426965154770475157983135569920777276775011962587478316964957021892994177898015525259610824065723022110287751921937648221666278602412923741131484030348188900451759295485206052128275099210983247602437522080122582445482672449339059733232807659453482795265749322652527944523605470142650220035181149239828593836013706448218791634179682777973798692690019615777798882949436003683002056733396080855403817669664690838232013690275095774732588586344117825380691668057365920919321874153347333705650029887438301298242123322026561086454445808865867902474254697917554255286709871221161947091421486297940388094966034547315745057613342284218364843461268714108159247454758770529665601182488186341261000579089578713169825430515874913204926490194327892505311897575767691918005782690859198346598582875766147002630275809875116436752685135371959149689235482557898020619795380391343873748433736768198734169371733676540687631054515643952733428801473715418265976800461735174368970928767987936473586791796458324685033712729730320514143686047261568447244895732098060675818058830690934072362691325820291953595543202690405831337487737436333799142381271448407035494307318964768695340548108467639986117301297449178170635731108919838534392787397603581479804219470700263436621451764914080402631076964014217233096404108942053748369396312291964588898664307906033629588806249188014723640785992573058671446954909598798517968223852645311100591085051956715121448911411748841927378168711368654614581862702569675756892522406868309139305414991374054570829902696988284871554745206229018999441394272864672520737614542151317594400220188389431924053211097440979525214854319808425010931493868957269041217864357660264712003518619643219280898156001352383556787070159807905701919188201976273852688597923876722705901290344825663508972502873948773168516270875069349563995192493237452799308915104609289873924711938850393881483585435631290274763080110100576629713742707053346236438919797690476047302837031042993650135430221165429488065310345443777495739737961493908561435966317058275179502091671278950674558908767356163986904582673465634239988913673156478490537281488077395611457150652057589695939952467725644023739035047372816896766999029522765378772324206355587375115105642174503162539973663409964937271630382155576237900597353749822904023795237685532712692006040720907622282488247085352203929553743919526613266834725485518525281215554154086679709391793901273121871681298995396105391782980645093409048014224931798445411590936722757737105514599503861870888559052275104759826935406893127363830349628735895015911734920554014019509485698447782502041781714190241766226218644420215514135978818988052954516742284474907674478361279275273529841671229706142769443074769951957305748480685320587683884170504712879880819800980554651735509363398774860788353620875631105643717078979014072720501402752655201738710817015983517919135896657333343795686446037586307344040286543258776789906974825405601737354513840051169273193055642423159705273263215806174059893882603179974568524998443653384934018970478343806313545072817129579107347405526105768364829434149092132134750381971450534644279185141312062809265237433538092378173995757364640203888545590179625611588689669995359833282526848562893192824337159459898562703071799723385361004569446606337561386831762471651273005643092782413911726925522097842104598889509190469623609265503251444293676086672189691011081406092298562654455965636087591063424026097767105805337947633505092769798428008087780213921729776917418622561352031816638800430966276624433180021739481745132988441577280794033082838500583801666904463255730649184624065796400064060839686153183507802520075052501072488501595952474729474674208678156354510294798114233056627705809566936316629391522082028183352727421820745215452280220059080257689230846386557634608007647487270291959963940379134104646740772242064302961285023000706177584132606864931917665978712261232737139847022369028591939420300054246741678226046343290680718853785914441259903320313150093137755292779757240267396932180461805852111900345946553782512119401122280476127308807918516570793377070622536013867826314523497438022134832350304419490510484932936852935017534175794790387900338110828324132321383925358289690671708980232198522839060291086311631780386065433313520025430244601542409783800522526108603862815646467156767615825240387835109388910144490718341780340253146388205141496339704072623658799208468979140765640791988626047821401840552514794087872802876935214306270059287264526850600613132086415105887889208835839143104067384382809319530624604288146982383563258025533117864311620682065406866415762395948434163826285468742044272838917933294529479122112429750131618169578422688435685869334117028493999058256306451067663020859962202970242405489050379379883304255847137961215873733514658681278763214129714109247497108251775058783045074653240901586167531566883504603398514638068449598606121933989185768478489435810868900583947896784201809492446293957464251621968224881287308356702952374239233557994773321190400497206542530338328646589689226848564102211794348669539654606000794461762501367600166901027018419886407098433292103711253436420638960906909980691708480433683721785339549613727898018512595053628756543697917509881369114631609029462974045048500897290768046675797129922634403646875389787237146107464256617065416984545708617155731107464050355766675417136191827282747545263114996211254028458802616500851461180069223682004834078410772821775684054521982678700639737568094021022882167017080364217853320358706341842061574334117780002476028225613165183533273989204238313017855841303465946862293293195163601244084820079870669648117529063269306964949758861729718583501837129359423361160907643289879757544231538357492716830285709336062419798122959928861329627394381708049182080086307290227433431574998658407987444000347509672931599228472278316682802094630572251708619410675185083194808595562230276672426587988161822489137465953210133882218175884584329363311568329547615922520945397861658865210986291922443797077031664029418533188744322927828004434460552721408900284607397667179017324808801575994537395359408109037687699490988628085633917829624548314424736541628546326201713483620186310095433396605513548481951906182134889867343281937565931711582291545245572909249431941787192744637040622028386146231525055257673505509639398152252689162625640545805410839866356488394221658798466917054200345132359636995850262559986049332821062293690522495096309395925685324139529983232621940437335760962265257230229496283951168450330016981533557914969295434329977236129704523578409968096096044414788619514979793135645381621358622418672555597565855092162475586383339473105335545866266955905778355761178437384972574206302739481823084215368282670274583458662445782323916042747656326948645650176592550388767026884283389017382537915907614276071078751032264177862185886592800209040975864094944005460928071090102295778178675819140199297976082297424912137515211802747721039769039431926653750795959575546282406671378624503657243936981343520601108229126408630728028320377077521170327836630615538657948725370434744757800311511652161827391264203786175234248825133127995499059603927073734415147749573624069682893087221731204923472691278049409579709456614819884460042165627854845436544954545290759527303811050424520366790609100450042767645792762873484956802629545911055955870502538029867444228962029106648627374784205582349258462002896318034582754762761018813785540611814634873839623684225443498468692388950662713178627989945215025057782415407733374688223907735218052305443345408975375426915202526946768916523300841644100919298168483404541449976890156856221008932155330008780663917173599952347337559777635753120689135351813565118272759717108722394431836983880529176416195344335327672151632458096542377880447130896112168005629896244628624753027970396393704394981463401126588648416741144481443329140103137481825168011070465912367566480480953336915534508899217727901054303470693793112643655762080094027851057895348774622852313507981943724293656272260189643994975243671991864072558775722698400158831747471038028459731519106850069775813907688548022415874084503440971032464060717814483987523565357043686792154233848448537022215449049486932193659957746200004980113634043317913380322944532662451882056731948163607873249549945089568098469518724092799917594789490668042938902832139615128853486692083808190704417376873498635919963377173483321653571877877916565690699204199127144699027149763181012074685497394932888366049431415428264892819302367528493689535491318830097282829814651378942189436577713715781574971998720372558323486541691931798603937959752530671258752578099000819834382499677430127273809130683363402055623592105851241454843542058761388602644857820853936597927794547681216932535526107785752891704459425916173030916085564421527796488641492132539336372838006505266888387238362478190690028247623434933934395172235156649400775398112634503910771897743326984844597948343196596672126362833741600028331273298256382246320075682034503007368290869193869836033159646535024719758080346299065115365517531516608469062198516131890221144753195648478581259111252015941611450178284522819347972151074789155315237143576630189981965626055062838006448040692801883147670738919145456210218379848728441604835650444202012265675002446984953582232819463533685788366844198228866181465103052445114461260053417810498758323278331111187284307007280080442964381575795567844894476217694793248003687090517648643250345260869817571456778633252621777962823880060374308554304653284743581289249146348263244536222241386588113514331631731209190054683854480946503582854801524576966573772639508396016870655224955244784130866304913531132034731600621843820226594432950870082256132272519410513816284696182753223435474931411472885584463567018557658910174517248748051760184519507246414472053630614955766236424333471975220103615530320669645712388073104749299561576996246953535111874530720824226585460075668657271552419352274938838989134483842073895258544171639633321769368938064115678633956674482159397308413169297329161347184322287074039373028447340273780141539863328305723198910629778181561419715619737410587425646469899056227495707479927632631525664887564683455233830081771853544023535290368573000691142633163124529922580287628125299801370457787806826499103481735159880723241064448105171001736740358284153514140290312105501259170260881042936428766696637911138694467956531509985779444279318967147508237927676925361515987506173674626037975290974208731752888159938247664681593501840893550114103462011576272987572318518221880268222512114631443132691987221381241434175375679076822003255891253831975717600205684272410403287483837316475497585258091225826305079572960828918154126181094065830252062289902618262782254742467403352305036433295062972902697239949016060967006225174793035586082449123666192403679489145501413699944920475925512786120683683980164195982150210166697974133193650330584846040722750705764576050401862696161772505090484583731257524594056464025387325423234658789096612314252518604818570463666688761103316510213489131041782999784992012899848535474935171670126212274500553091388670680923432547318726127083079805418551207777913886801352883816690163256919197065386522662819248746558438177899980054311162547520073497057258454602351971890179634745504005382526127245060256022362733541468333942089219217082269442902974200531868221366506923892927086710185121681787011056264954237539625063045223849877033134434245536758542451891391941967102043862048225253497008723500587953659388335970273133331348664888645239065378130457012130736948649360972272608278606670210628637649403125304489987398330310240967429565701714415289587591117374474638981952625108776864717245937004283793819735978422844829047500908608477129429856675420058865991659653485437926303855891698701143877430199142972327321187114258414607629845997868162268954410346385764572969693569880744203600865264622241136951014674561860810190682799118327829691903255260224452193627952366567742736051958683186257369220525667353869792637499077688824688060919227200190277965719434569750885873814676918772673043234582574812259982061094782035314518938653973920214330381755188275113805909671287037115026572033053535886326190459709201155449138228200037971965523494331693688453396771434587834796716602950114272349175163643728865492614275298907483311271195634485557848579409192824296115510524790056312858359029133301120464038825294434963435344006272196519030501622713127554959348379493616881877902369393480252179539528399311514815831699959888691975004458064974656419985720353756007759979677451309672670862193001985365981629773899414274137571629227925386925249536996426384177704211195844037409101483950573281971904310546686398820378630322496051790687580149717498768096287584433877154535640507947266876889171241491891247903366652214981189241438215937582173863898400543965298097356859285015818263289067919774675702667394501623898579472721920686142251715471409307549320457496855789958102362943352207565641417819968360455217960757754468990019264932347420425867584680390060246460591627544838175290456674565514416721682609424305074458706019175031724665147170721881274682598089928291457909726277722295950368662602672348012903930514034139052673975673504929920199938298778483669710942099817375442116693429498434074231121995593682935071569973409187814946629732913717254600747902556132608359641306785435717067725967689658252812035839453930310617899864507005253342481001432006680171207581616352763061256966404600450961982607050196234089456554176002848481251522133247637575273166084898355492604003205814846848572905376466415174980907446790740968457353526062340833838095837132957368768152954323224431820365739269977487832343159790400779745314303260587473649180302929021938441436302491803788000076872531578071884035210862819720147800516048110303588300868259461638080008335569869288204360719554262160857482411472109983182008227471406753098051001235732689691729000425922887325920801655503117511509728769869800911020507115693695976874792980479789489155323693376030365207184143381423943412534549545811079250605763572975093095396206918293142976357108601665738097621411122580148543827141570025904571017205739614370924842876636698736927880599857192862643650409432303277625327006461617768148067408738750490391204450715344009352399072723995965708919425425993459451317630887328926945496007336916949059594226759826262540484440105103266043579951128818705147271044613126799378616479041555008650746810648975665160624366644205685022578367327813175198964255064587962376094121748733380268548024501490699171914388753347155080654495830062802518112362567446259856029918732007212599666569967184416530872412256246509082467664739680505647321964327182060525525753950578728967622323581468643481046027121914107660432576547827841571094968052392228954497649557875981878334110020338957449810083347234931556208027843361986242833412125579962835594235693250343454739955261619421912372664166786693446803817106527768479848344119418854471295133522325334713840125805826488926138793159501485124269009427191018357492160890322239693670417299570415580958101481404730471765251264963239635769639252300357115347551505652184589896997563576395247994505566915388440712299298595484749649600634726614846316927930414165571536019173953294334518460919268385860002486418859989563812328464841864629420262238173077142468220558512475324260693941082036533114891821633122623428016816541428808716630429557166813242204028638514407863830096042822069894003968882629094972209480377066436108249216629672446474597712146694120932688143395503251519591702399939923945648719818024369166704849045347033303806554454404206669146907670336928377785357280229265452457280444559377459507648761981162874366266264340645580940039342404709289021216280231483675556979040382235938877478828579226914022287965745073529036606387309478793442550016026660827060696153929191632182367862810684824646821628797461971953372994417889184356957059621872416285350472593115701585391765191027517136383522401456141018571551596465928247053761065418977348749908127238886023155794371516342538109637582247517600783983492213095200959908288782153878309946646552028131044372507971444463805903936134024755141658776660990300778642064740666805786040420069267475840536922344708310291433496536919293610559677096160788357783226146028419243964831819198385986189864796101791614733802888410913888295807540092613024245782022856461804328052395407948196871702324195370815295899237017541422095955219243317625286836048571541208122567484936860144253471342815446385407376681690159512691378510998285961467742177545103238673080778754094867024784494835040112341526155538756630028491893886800861680594001262358029805367368765769821732462350539281868083384148755616011796149072000013479412851280342477611789719653917354553416524472277076496543373818236889079939529891914880914139237110292148810126205874789526437230079123301621199276838001620805956973113488276262216297603298778424155857871869392726584212689878621549398185095325670799422630930396453019282733916778848446594996367429846995825220416722370431620144611585484104911722771303303569699587527154278054160713009582468103404453340701590428741838209480622691567332734022460422569214694780011130971653788324789178010258230072091312098608712172269617023254854859302877328806616150775991090810366993417436121235845610039665432539104604133160873054395456863109796199147132838304300684013308568628355292609986754492915390839770190289871581793294940576914156916632022000992750119533544865652433120402545037395610183473894024649988988160746414970832483143173810307874774040267153977079204759228778167254796399073996241133357216013504774634595994972735679698823768386631848280765521791197436104385970998077420431506406679314628704513696698810212017283282451278610630081708119009971245292460384278122160990527875463327149991472192995999552642291728425041300036405184645700693064756874418910105968972266190488571541704699478926090524070130868238922430689396330953953949826497161683895119693494696518872213891214635818001403972093503649188474375769353704202606479470979567778397110796694309244937100446622545416466356854628337006363142979185903784403490276329044133621580855711548935401198175670923170965077289333732255831017808607754470823758418486485080209607628977016641844626844034233315196528455555104474279033042644107050253126686560866969122014954255004978502150299027619890985883340810224490084197676708656423647094448578004941514123682217994275685052724604396945020602014177946614205749955994686235701309227578159949038826257590231914873317010836545639749647976349706660070825450535796631906630551104717565348681842636747310947865937995970695553803343077666195240337318468369932508715022516346735418966556254415078132519295856711648080762543080531428526972203525850996219903057497130375675932572726150585885487051801353258491459931011473585698791742246488923219844913965681467181130756516876464417884161602282460466940328995916759973544800259846699295001797866799391149650502095062012448585512212796546642848832833682062098276379529847885768354315251121231600417624600730815144587450784222205055057522004285798716417109143215464553133756992689684515686043580881731296496230416480665512185629041198476122855786103113657700467456932969696319644155612724744310238958959286687022174641073879155639652136010806100002298497186384262206028267272177034152542141844840420091734437547066521381401667528592289097827614249886990313370795911364549255882683312991936089645945708164671838284967900354231176052647512150360486864169713923728096513482939366065959621495318415054196450107752222185495576151690508268595222892120876881003946606861624513120276516834644491216660027573936453878316234254718072961091459332300959861896909048834215631652396394050589149654636839243999160627431806476533439344100454020441091621530648257831561112778424461418797448634922670788806472244922190176972232763673112786943652287564911971961151882239472669277380255637627749773980823468836545230253227024507854525166483074971810138223056027696821595715811405204591504732524089786438034096095298188020333226986355042083127722865499263268933202628592372231429411404954481576875975993602924226973844834912478475645344078952915730300576818972132550531276177640824682411626528878355208696024685838646668563288522527126654848771089728669843319969641580147005589209344010589264766682278626101118011572496384918412870717549632049820500484059876225925072039733574490283376062748126563229837752854927984694772161327243296062228544143769789653856597695786679799987765839142884739873711752034635312182342575220437771553511009647112938385569936981223523284657168232077355275830040483167100690425681675240183200136116959460365192592957189664364027447381489417052031078654280596486007636480282222650732123920267944375637702292368204557913028532370756772276154870303385369064203120143493575649821290777739913319032179204636128119485530203999992295848899366145917416653376829162217726134575293477297206253711530235699775683000972531101096871251796286417286109707310771537618661328772980434964088130664571408905716799631329658829288442204826447856170737168631161128431871736072065741976028440423233623491216939043219576239838892845505349487983986362449145965753412187624614433909326035254279806139999681298849858428790479709802773150069313481383846857630207552587511224042384022314175568220991431874515320075260599699130776394622984446813062149755272575606496498716286682454874302185750111117483145140456327540466139873932842764189665716310419625734768127579210986387611842059181616122881764750414779568313263349246010213726966856743417470180146235722403128485141510913056585614270213494227717171083786887951899737768664487037573204677683217490456746178589374346665080207025662127716895415460310795780219274064323273109446210804760897595268010628029784616632624514301082241857883290948537247251032972578448145702568790040026516783547946948223886569553668355924318537410976042214347847434297900484205028518317720535227389985895716003759498533122880617916262967774261012258467311411819065895759089181694840312214376892587035862964613384917395306364949997562293725861405033145521692929466133666792005658655851892742888924458531548707011966426357081130192446126985233146056846555827757910659161062031235519485889660887866134283266004399108420316830194619333672402047272192938893857763779120632825410409049667869681048915116042397607955680810805459430650368116319538118416507954075900599307871417622650086882961759316709190799337478233767288985086658967891656568438090171169699918411892778462596917261506595775033327846628490437071164449382830379469625100294579580004953513203733532841081181747427174413090719595971250455963665742239377626099901853445529651956375732945627517471041063759815253711268778140022584270510692999667363819555897091481622679734872501812316614932892323191314782826740276467298804967959885870316363525925681007543840101248276955491278845637642226469721209342915050279375883434691254313724784416948853364032599272990081530387466081770782184441556130512377450322508593792337450522028844646050118476660343970575576286771261521243653037802041393760391252637767502247673900565370311912715890653474487740711396101000992306926132245125882297323995758940406833489803447778178266308414204921468359352134197355333482532242262345181671204523635773563172666984990777333154683598731711514558453501799061706988379796514678257286877981092670593806926774335360330368872626337237885166546866022610785918372531769757443561550606138699803714296527784474236695863547542158398800415969248403122515503119775007026039723597076956586697428312199014583401553339426895081267156286495234679218698043127540404720061350848683809332856061271760575171889687954891994178254066348982264503763111693147862958358911626627855533738345491170773492997846130467315591366950318710550690663126439859943730991523815248732734232118215082285794323720328574057666700146203373780752023364520423648067317978088446241279304622394569460186821701056559030896226647110089276069673525090207388819858258088045310847584676596186878493094857423596338706432704113736705192055411954345156424963028752360890142851108566984782921042899467149220725144342917073369980799342628274951433555653050239088999770721700309608556095807134012823352131446101008188471838283578030142432102087554647360040977891036043391622216595794566795030044587509844604107419415375055775043010143338784829481771164530372767288231552853108488544350126350362175343193957728633513763208129744293390024134295730541702081403070516889874957836783795068742289953127706327564114651551686802054779205811781853815339403306861025144662476251739735210153954390077863751863755222006756872222248668411808501163891903123145831050445014523375816339907221935940962396519658674214629886018167751012232821791457832251386766163398549361031935417489940146727876720505152877900411262178118363131981651425248574867963391609262870904961079974972006048434265428583395148730832567790522407681255338150511947300143153000211201919755757774755297410047228657002948539810956889212389406795115705402070564131799625128136714393747214094352414818936905352761759001320590617002698092095158920426586348420664445197317664923029289333260465539908407623468892627041926355355393107496393408856274125426150043057022824804694781954930411414697709040962331989498587557017890263782940202228693474542126337682560082892512023873222490594325897939724851848698724144924516605994994443483154369087854918983516041830044575608317605655982005241182355656703937827293712456378800128660511976436270329510342284125463517295100226146003929339485472196229902218570767113119166449833344731940042419556734023775818115216056032108595579569209401296497814497296549801153208387652851828708339715125071161105366233547140379377490119585857258060434190586845904407940733834390395402613588368944300664232224111809484192413575067044094573145884804341980644554625531215297601270617601905892760689568102370423598797669211736378338895835629712744549176194513452075929386456842014556158506326547536772624421026982389615838017722099397635927121366966866301335963800437125452898459234250470033524533203873779097739368312519955478635131650591264146988422459070896990832432563938934788432830341972231668802708405930034340100336464524941830594412236718450702165061895344551511010062111088517366628380118873589310306438292940523971958483738715853157896861587969205190760153514411714185240526066550852380437497216126894187665872845068333750782339972634595519737296128731513408861065583535945212860264104681132826487746422845443929948616510917983764695767043828538318564753026838580424843027351489748126173561619719662503019570490952859420660904762330908724577391345629227454522351957628153230345269568285756050900819665743421697340030646909677820742692130109853278579730557746131745104717485547156245298148534130522738113525833496633842227113773627351080425630370375674673885539743654573584248538557676326458849070408692409952009015236965816806931341218483222644040965372070594223866393351598902596212766625078753242996332745101850765644232204022965590659483332372603763257518723827204064742954610380863313917140356390021265506213041339307169143906594569608523148600633692242622742479610207293372272150356872876590813114685537001277648165738395993759944990064296028616641163937587286742416197659086289801113162859817996096564810439985266000409458684320916491155874823686602353904701814516138855082451912537220784026402423968905086010934755444755934862857099418486790707319781971716000909189235749664973120136455080038821329086300845200504937490022729375118618742884003408901054781754977038517092380808726788126694416980248676567722120024070400967410792851241129906363650569691999663423447502033438544631808051463077617230455529977287428997262147707994293663947117640564086563748312095333157617238778029621697774101123465169752493998550282663389679855255244389175998915151306969469967139246829582314896301686498816133350045546431777955283037101436556316548089711081763681785631647010346396934561554780096049908696136928553198207935614868577751492526371065881369496605949133560971333088169797515824630589949960844342862856379532903530331377193933298205837662653056292876549567393905907947051582691125454216256179249121189263775559478499308382925630851364228508705268610908466977065626268540982793526778109385881954243063015010244324876127417039046615903527976308149262157670728697912095100915690701814336849471337247452475269621525590723591153230609033907679894462590196022273459694871158176880221658118541820390075751919501200889370336279006918877761457941292392366224693045480043253651890727370040956569948111701700171805558661985168553609935967066788392574817094841781904427107380972537439359746432791586389734382247393738075674386470044143231816419313767562690508347849015224293542382641954686211227876564777827495354036398846359514681769909134133321263835979439860874986389319361805945108858264812944628937255248176641101477789361322630712371236761774578207752046286354228163698563075939982191605012840757509540032667574241148717276917955074553495135502836049224924768538765743434476977463264498777028811141733525726912545465843738265866682993569632576678883185445444564453785088158429396145415230321177179723617831281614995123546411417203614794246708126556569894018658527864369869329156550235535907448812122041645406254776007459823832813211637902547600356424994040870498228437375244177000669397482707998608878207472287456967791934049984740407594715327345725791032919892738129391562900907936866085107257321199031803016448671636906171034480373857740105369221208600121121558276653822765067646963394324489389355133139883366330998677406092083624788416977869303592323812471383065512056091149058735666450340045269932062306232102458452453995616972720655106538762622526084100886912492349284660361270558586404490520852982195771957358573763298481236557434098251383373982269268904782943049975521270447206305328441317776840903407174740933196735783167452250275506182525267602333490320864759279607530842095639190550376960747359694862630337723042962765573514748168739851678245845670784273625692236032788319187456287358970790347170383253986986923912626316765601582623783614255111673541889354465838381356891259268212078433407433564152034876421861818101720058498467573277424221065745046989994979094466745913852576453778794377425024748069831422182471991445571031407206963102055031998983631779927481582552110218398670251921797044125649005067990836236603537896815406198090462443931098955888187592563631037196808090190124846558304188911680776298254803204102350733010199623598202655035780672169236592533635328591224546057701020071816887208538909786418457104511569157299554378027306047913873442058177592909602747170488509753470558674293581392991892292885441274208898403769470796868904973262930696904800544094773736329459611012095952842882620298020360791057776657130402625828637840583721799889271263113696134146293531979997293970642947211153116056417747625090827007751119784952533959047177186042137733989393857616684536528160884777959350882073789696450413048710098159875428369819896414915889494310911723237879162603902781071312783307732289135998477454879924382266178130981821493881504736098168947423167281848156751546438960823067966813939285881357010167371574594563083717159406622552617290090928665275126194461884764798115417948349207403299083434954812624068896593674487611541607871215623899770193165183324653263224277908151843895681458489607771643270306207898477686613362840274158257694001143641464047778490072262304805503237042449123469955814728022454718735705716625986185147481479113725704929973690200828597134276590805268869196008305657801937375283253222945925242317634616887951696498250682871497248904566396725397537843677803135479632288296233320039463899020145968139235672356011567291101346131375066646276075161033786250771247137324711666392367099925529559316592244198535296819117638676715081056536571193352212806904871016038188000355750931253345978903427702911276669277853107127824050426638572915879719976957157525556282660384457414838953614589043978412290452824123151063750604246470565237646340223460068988467624597151274267713960762868034292169706703843463095684887779017565594216036217985708741754885801527250439406171777642834855375370162264989091029992974116849545687672250262929153831368469712928209148447855005227062258972151165451720981237942840770228721404142522603847944097089754284961009615468337644530156793784869377252826821182583273281514030488041902657487758303682285538039418495265921814233989078239723212880096538384888356392746502895791647682933640811258459856369215358835630559985214689059171955569290283066023469391521211860487148291755304684269048524665262056546066115466563674103538031344316057706402206590494260012047806819252316388548396276613924305123960179662250930361371884380613115987938427127667456932552049084386894908325953164415183498938694290710138939443927235240050046370430370593723854807119138287098005992842958128169579106680505063007066832322587670753524648124718002365662776168345128865707869148588944805894614307160906291075451983057838760517005579759060586633517734491022834031243011117738171329700892821366326922411236413535048718496626421516057914822187612471964120927170200163362655327560206731926337452904866877351675877916630772219669804004178712582645895788405384791025399293647825136923228214769710741581469874799572977815154064913976419830565894379020796981790145040375147348661805271385271981275148031241173311590720072664298669771115697860785519769668280520529772297323044772760765854643798784884172431236370961701243237429283591787011447310988038312202682459676510097401799032214297743742578038689803663138685275950724876677807353431930278937109304440149823373079540998394450197501806721531459076069126472397075884284604409526552771678092048124589996748694266487971231951036171125157697559014505937545455105184994954167332005006235442403925466666599878184829459902111397234718425976786486433628637626347698167021293164300280546254131083385505408044720363149480262161945532941826456251016958465561462154861116320996552950265317004031148332650208979207666866875442455255261385514587520637883143446653051381019440606409923115300165883242965341687527509543010350862776741981407498130574031189325676078710553100882649708986979329936333838364934344809364396659033114217793878381487155282922631684000036655233878424059874400486930259949343766382975963600081469335081617682600157674721788242405929626415817693015714388894904969271950790305623296360312804801764799706927403456230595370593586019810419062261290800799354342478344888169813991162305126728692463166277860253337263249833614393583697893984292333007934589616389131448099159932216410912377084355032867966682347820660874142196198872496070082883550571987039684225513787056582559475468060941525902277593648707248648220767506662532699076574467692112685369609548820592052794634140677246259846143665424289239901658383223476521305161534562217525642619866419349411850713549372702638727348283555645769489561525968966665437027512873777473133570892253856098802780054350384403968464158536542223884781940278276633126693149045569677574083047090947524664512614383334389052943020443655602047573936151706355794559113787053090388131291849879489288986289497880612884406110074768006465197479996080352726085809398536918096036634960221688431032580487267593758127059864712339122743441120522313257757124802599017638653805641871952912879914236236185212448155652696289553774799227405740854647895812651843965106191430880321933519503189354272510086236499339380128509209444547487652396194867291335909897123420261230250778024416628494312278125648564051823542508077553971880191182625595683107795080622579172835523323886676082526281329009351310324271685374642045126739784903639484967065603789989870850498269585078031446056794791475203066134880414225880718004295683845524751021803669573454360542375152518850391765743731896723527043352153045478613679932362883370231533250197298416895016826056189967131947742014849391798837313615022052547684967458114440540844979483751216030208808816079873991033074002540530756003389753818540593255962119372766907415727467885776009240669063893294070055522467730555099882717777710634118595652726313644779881992558003639676813893641740045714975998445266076077615986159554551302600043219056992945063071415784614459292095115479652519917455764711704619229604822678049751565738569649796185324221742591422802526170165819372155846113411146170317007403591609372638128394087107671043311914703512109458479623005668587842980292845202535293152775732772151840632667412424975643526031859925924721797686821070127758877694595746539837134684511939905608613027026627699329349150326768421390059277078406964218277422681911892002609340083229663483852972215478000575473289331980726067523208442054041343283574688987940513575678195931649904845332866597811100530973168365287561549030039666737016046990447392976389290710213525844715375893559822886916814726495905399263497359623286543018668200910497923769187642857296305151275835872613669540392774644009537202976945051918901242040916237845762810712171446432184971768292981039517266805283792642324169091160125384735341819315491578683586509075151582163758159341316958111603586332083746700294642623376292096744175291959691535481151326427778841950291610448708882682784108976705459932955280989529535535294062904712115038766778613679784734805996481600553670769173522656270965929527782804074511843345104426122978720548994277824920301908996554174147690697478134807799814892866834038496219074655571548806170127905353323661209237055456255009263596199068627557780862783723463010084445703915647136079000325167318730939585647045548512266825850054720647146706194992020270994734705560318810906869349575676143336046817186274857484357248868371419401402978754154737962314768291540355751246237781801558817599274004321634809422316326195061902415677469486300711174132932295245742936244006996622886900876306118491934899109671908050921573415329473556729881270837023120400085735427713159812448953045620440271485660355099056589651863882094183124568261796007147977651956013951155000749349480592267617375711755920175123906882032581728515754179018754381221612635916081890248024735281849518562928970922594337565661633869750507669407982097347807498010752824557296585188856928415793124399518058950703320871283442624891426508825499575236422454108924868396559272454670374151209543981200986716746371586125360418042203010983457379256487268143459366579875265794094299266402570390229851607965906508418705998865600473746019991915985406529107723140038186094581914747545358579167646055558256144281088469811517283424249065489912133089624385357211645528572461738926246118053624529462499146956948116086523070879927699423936630889359380913020292554850733251723710172275110057792243880205436819043159233232338219581781137447199258421161520125740624927658046572728375427308868322534662541809285495553791333299778561528010526095751630117387810392302383403734660439430792504067528982354402735675426029349571526904656318212726271261173158485346463981484108894004976872963825041613639069154540298836718955271974449862110871639721295074478117753825787227654690299463191187332672316720451953972018144198752329815255551927061789961798033445770237154905058657207197518216960584185191025842949447861617604633245262362577861822709485506575279250336663237298798340348194937889394410439230943336607740174732310980860836649520225850005275730955106148151880556822206525195657861086808503901876366963127611244165749013377432155998133364287655157061141255219942301130020261934907153491770789619281530833243358796314868088770728226689584080433095121578763205855154991438548433962620515674472223203223204721128953432699622057083808001112385311953113112682040516062628615396902455656401282152307284390355225371595809981087793611432705264072080699881262913121414333500731410676516574230352784692710355725220392829760821400145118319738888642160143955011181660922135050509576501053690238364678418890752178566605568794376391236338244849439171493501853912768255134117319982512480907530732892955713556623746334619543667262499606104838049814429297537912078445323493754196907846443326678418218295845934518935895907246913814168132106857133928870316974159709574130635411745228749749125287402717365321870082009104961266156083107478197777185210762021325347441151538751989030530498148317135962895124884335037527074207630010271891803346468003886380554678323899658309216739016945211124157479490541337112636929915381895701920945750466850242473350138558259729384116552329450105336981535272563381679499775232828244122509222591337418898940500136047897988235817016639672724489271698920702759696524696516212454277860242618843584176836876029119361042025886453222751880196714518207150449236821122219433572373836844176056301625840862565222979962626765273901102625986215329032678464654629451289202004461101466597889818829863813332007493503037587161387118975235561842256556738132779145166125679366059785158574811587781860253062351086359009079910562377343860170138453936484415876473457879626692705419958550279677460919884213954995722899943306719181406965920810153910455999547650223004768741739306056014927800846400042139461402989959976770941713836558067960594612046244679419315300471847437393904017803061173721842224361374139826426686363510016392040210299398750643922243597346639014749479028461240454937882630101187615936580832848047722353547297181297571645605966292215566421391063481529765531899434846068123180595441980484137576731248179683382879644497223864779107050391709768028479216883429571748319682063553229238747691730493531977201020308867659688874896131890984033745614782996535163117259804334137247124556004793111997735487770621652911319135938013832711568287262896957339305320866588477722421014417936290588286874000603450468107913393602771245733227153740963122560329282756194777454291280129252847805938025264373183058727635923049147832251558728513344609756422791656448784436417460887623868653673564184058539629788405281240970165048562267436066383302823064511457630098410745642024675709993910240087971438507694285080618351378491378334652262727216017740601098772830089197213954370753027676196445220521984008459260107028837890284933618546363262031952735719850412730959614942874464513717116693969165670339563993838743655703716325436249968723490809479504183999487069283933765652542438761994509662030382016760523014441248385162391495775271103095028349597195299435280621408650092312147436945495470285893413883936740314849589130077818013514749315653665648911270673315318179299485154896207379167012619081332623050510288607296146084427173436361505117566026660351361055833436285629183133841246209039398737434418996931276274324979926821140958536438702835722801250432296558994362231769431750630930415484182688309307165008346289759886593963195685334168203829383544968358722552379601523061227697261017363137287176752022620980692673034216800357195270665836084357511707963927703748969307324949225274727161984973315420722084744329691111334551659207015515990504659360508438491567265698155889172436508001494153266438036274200587960201613103958347965286935622866632189446514535018693515577831006937920032242469958095026277878695659571241235257112251901316747209651596371695091539848474805976665973614465813868280582871906453818737263766207775240292783004251988269294827354324887092963560994500802354111836309186779246874483926398563159290551049845771524594873246280302000449442661561290659427866285277888669075782369434904586761089995889038977126038094165391068078993215794635045620198949061441069732786047671652026255752706997335791210171985708991046636604589260528849117124939412884481930227047056665751244047883045282400029426187310244635837750525239282900805355129391339250818862056465141462349832561911411909572225333300593485186112998854336822754629786476483294120859712200112400319620783679071584680187917887219143437595619877639444110811524279839740604860487273720523612814590175574814082494704248984107945165969470053978207410529458157030548582002420563754705267325040311970361942007856288463411760417251508242694826915707450418578434492727624829365435167344761321278900925513029600887055848026111672238299942409584891595723640340479910742693347829614118843989842099416415310824759446405035906537056688663193260555966485299308522540459264035220592059411038335454319293810935268714055872068830571287177768663521185490370474754374860517311530513105570680546757082429653656224336303744528923618648926423240991120844305244037585132409789687758348178441162307856495684725666790867335993680364357853715447208715494887571215814015312739499377235550327867592934583294812405050425777753970703855372305320833897676707150111603537912230312076400594165656216739934605155116976296202602680666035679236243919823760151035734822731589512014825326356949472329346905795152659537238568320583951994159889375698175593340045329394826146668807609787004121880217828509487371129308721679082636592053000426289824760820970978504972082254130959314843482530187687099418019286371329180824467626394105866645660251463262052216783613353679359180090908717369279954031183962118730374123823019165561135914942640816649806005629825352972844451918585529526291439062213615858314272490220010026907572267449462061022138671923621653341022481394027920914344184510738258424782330235340090752506325777334563640547368761624591657916966709633380507465996603447742961674810886397214281187277721995029261730292533708800723754695879175390681591126656734419308780053732600849538961108939750527463535142202811153394792214054812945489974446501570600613291396171594078318976631293079238494458607564700155248222709376236858513661305127645010152017080623921988991409584720642524899655844785812086088342904601192084174276599660343158647837902939945274670041754466909776962164986413392351261274664772731730226261250656026390628743000128597879724497638658445351726936564918583443850776352026541644362240934087488028744939293638886574838714036335936536762276772474929524852963961906383679635864319054605274086487439807107286951483696344767325632028196790152215677250098045002566311341253277746415520244519519778182426884019867329605852731362912399464563421229913628541753706481301890897018729437585387795547465334621003974654470941869815669446902132333258370432530918594448080714334797667887907810071010316185216139674010409497917184026132400424372163775658000120070578361693208581463190456001197722342123147341679114614517432800260372948543752679519321348015187408045542052378647532900195782300383696845646764900419049026297629440295776839068893708689348213250827575639031518343787890977602263651628723482081904968807502896395984372179504790617546002044081702203941660766737072779727173487355420060432293788873642524908725408300292350138212635006545772426600374036552662678808986824954499203214141352327736957179724973294760678329986123589602180123161357868053002215905360034158115719288159283898139708506939809874318578665697413541976279397227788295561051884235890522378419014036647784597766649902913228189110291815743160885648611275777837309029741404827581377624763187771950290510525558485734662855285711876118733921408371502838550919753315100123332159238371559802194925212056699171713406570907183468057460338484884003069277771199875460243454954873871197528529175282644828201591773289179249924187372354626063768432892460892796669904257687524722130813541825989829012674395574538577395236354518933069442515684440894458935296543960328704386391626063104760972478558095429985130486790260952761740673648439586052883531652879846756723110606259796735463283118807657038244530920659328383121714596091587044815494459831980877054795256651003805544798684298804337154369021287105539417174593490252207356567012555575601393059475528248557065525117245835037763717711022210721454411862082485718066073690641430222173771544993395108457700561307910993688942688552931486232214763139462552251724803017703171274849629418085514788009162429872882979644614313745832595449068243154721693021225834422198667605746920681449930868996846974161126116383868176467854804539023507264036750641138467046225511405131699945952750745297756758734019107850059415557422500465488697914518605272038784231599641478864304960333959744018056633569144143738782531333676188703385219004835488458255500301593569640081939555307869426216114930512733390067708077625620919870386270614031639693589157381545961770808535383566037140763828102185285577042562637281393803811638268744875679710666210038778590728401317183773991659333701289660897783328829445661910420078129650559650727392100697307702980704832288690493270177191092566509532203869695852226260499620376910570570393351300878517952223654048119284985047415764016933917113965098677540784091832961219776415687743546156758455292836420427884930325624843985463924640767286452983883379178032703447098251100706842581426651204636223505332425210823637380371462812199311341282518283469592377748798155318865544474786507634370362088396065412208682940918746651496419465673927524884656907158154504824142122870223964751313302477678467430963775337737427953008035224472043874427321826387909494297521819316242028890166758204796665198722261050056540155490515207988768882978431871163024418300647999930698611706015091190777899629118790152828746847461256390438621105683740931388213122868015384633700256396533038930927412959109013873514555591502866617649685199248767439061548164330647741280521276681782439329392739316834937349836753825513629997811247804075125739512810989870232164425078670089724235395840321887738793304042696884265923241109255424981974103164139371167425383402849708483578273730107563171303911008078326161609472312592156303591512421321719351963776632542185169667796759108929591704140222163697895926878734522800259862809155791939475060216465956126191369555408642529443660269177728428462038250737094795363428884279886688205633370425682303948959040478455447270721160413446902831516495285923282257792162006606107921361996854980243100539132972438185172761527697031957195877349645672834322459178617063416739363837760664184424801538002337576829140595250148615845458868555969556688122114356728566382517156714895592344553678694937959921013606872994759726222842366170926344280867659604679769787389269404309334904829752647003292358150001439320086382073610271728647123146306278681160533621956787350526433299875866565370632902767289160346441754651270697301998974106705021083725374930208413523523659350508396080236588776445915776675882957622361268769988037686666046451632118219863407520476478287999849472912470024378430550455681007687146948239637495707854728456386338789473349942127407268435396114675307197797157430403812499978883345684907379308842910402803565058583600587802346085930531998584330387091934556399906359892427417679368881145780862420513496345998564338420972607851679949104531384382317300161175298387348957286570822316833711687641931729753541634569256362551743145703588685667306408921455156203386557344933409825028724762667676844636239942853746136601246424311635356517937074924681482995946223591483859433725211347019402497728818874881626064921292548180841691193475578036068583165715624222902048298996550657624341747118110717668271718284946780764797123427757238994977995745522062095599133254637391451897355518373522584736123427268950408224993322999247259576328105849003221393425637656598832459657758058184821278904950759832384004312190061022791833989789053006385039451564656342062666411445606884879328705465522528147203664413596363280172731954958251917312669291924203177525638355228452921194739312712053207812578220318165947422406183730039093793830858031091275542961580858695252475267746994483347402046407417774039045583857024002941605706201728094632048672212265588777672492595515853747731120606129542288688412871575605222212257014251827213201909633004190559564100378707878190449937507065242291892298593853087043861062869258273549189432914695610369420733490792208347050952942110326646255018551833237953326394800774891842982854140655312741802286806684089231015324891903735388715611441581130743570047401592459389982157020626811677723394753640769047494446739534827762079732697203828254634870386096019499555097328171382983842015941032702340573369049377983446964202740844759463658145419401144089255216560669395142421829347174886572472201999951816680138015690000540907831989878272768889747641621167366977504017416576041795114219250871684718718861611053776895728769096335121797118691286609997907248779656138728838396795681848552699739329256495961311877185484235429939604411067850201480331465215950346038351430963010552345307532594242205607944479616326178766234425258189768920482523671100098916905578002802328476456885551910767842497256671163129620491055526218274410272955209009760100853939352677603598797897506484003476420540787762849170150010961162275772101765552638700072801904702847026385957943710679558088692734569398594531221623217728712337649138903273471214002262960138792882957088823346754363916452653408621795239888573004794405293855017035361331488666377625758813259758703356637855205399182730373947436721420468899395000209498261411614089988420913030240471949526294319670774588130943204309453882582961258865198500833612823519164805064903961917954271695049544594402159567017792760896942742886473800998802121002585490526913626743192003154318231815201710283712333834617490631563217693155026201289678608795468821734482144024942282039191823657568384248759517721258652770409278920568332378758223579915088337325415359833991364864517415022244573411197751760302099167721682484911742835189725809030570310506867227640695560031800626677248408909495066563718035531616111527317009540639173729099381680890751348997200409449568449745956004361273768103229216159914252050120394544468030403863693898798207718609483431233753526361154811428104692259458735395954330994834523490396683543369520407259917221185748632291639297761673866325177983338280811178540095771391688418796372603632843366269818301905812231337682865158211829376917478710705637306916245999892377760305521779693959066825524280086403912780096864211910039782551111762549712482991954182059203501786717052779717474644481372098832349664263999541949495985127754072753776310537617885514633061311561922726052100821999185874866169207819211568860476527036029538505205673596227250639702172752080941863351414071362193963500417104814031779950005271592746311528543161588892210686638029941733047714865709457167529277059796206402778008458114677979987015334297951489694602866541879136056406734929314383917519899052510055087809363692556785068046016503736197819097297641290686944137258256674909750451956900300447294095268897761806115723079228537481040066667730143040022849947156220354454569486840452854287903930369232859554680528578500968328166282316518587295860354236720137067085542127804633915946589785788438988099432829522999706267190012278591150914734534673381643069116200244660242474529420419507604786814509008186487135697556559147892343767711967965785305548059434784679471533010238550954670420635197884468084158606921412133615925085828651636149044372511756809956394090860541363071691673240808154621656479490399916586240031230954068856216494275712909151185014034504960937876160539472435962790328288758735951965066892929497022806682926333357683856802169556076810485790224681428110507500748083831322320654521646190245596112569717515308503313057516927476830541270590470178969131089549312682045643747498707473465198804620645725192505149700506316021059560204203602104554296955707058101078795779414078843968859326560584245369215109849162329583601348906932039436381145701755195586305013061827405499863249841878688439087960399810442094381206543901421691300710479250315490129485634106126176167241357213174794287157073373059325861603634618503203639511360491494951247406405031425659422181409473664934741252708492878630140891324602468954260411640624134355593528281478899640669414404204723326640370570586226485111147407889154512094792995933351965474757623117030056113119482118068966995626295101632491260039831186229908007005431241873076425637802979027019027769390406480493068014978722656134857088412767745813252604317304897088888154523830801594963435157971087127120117876907681042329355857344400599103171684926186810525245984893758729557847642560440498794831910669671757672695990349946128382610965229080608853645404699914187900327354572869961801887638219974372820285217626827113965350826732980586543798922417633039144055578882913029427163703851344750783482403548261841284557120984747299281871789218443396681894100144397718015782777337140361197004797497008089273655174757484253130584911789671002881014403875906090924268311208671436550020470529510923547722620859081027244811634751450615396175697153261548246775518379309520157192468032271107985501873796263496259745090952179070213022685109287330268443989970138005793876164456909888391818077367346673138242803142267591404668858982378468073102556795877885491959908222705105467152610587804643436558336744666211613148023197258734218478374059581420948841399215172909980823689768435861519844067401464923082928352341873659513917313439855674809343733343310882252954444744386081786205077114629319200567886549729611041639008635291997524217724500152013555047374298057377983516853223082058357214827495944189452155466827554813444253538706372891476059221631886018069125273019026821717582726529826050907193793267794197479957314165080765479411601366805124949192803302837139651131566525218400196293739258088898857474733651698321045185665692998774211580896150963053214384558341534322311603284504731964852987942643686088502066718838595446913077016435528900805648062250031074690551509145351310055890210064557115506339226012155190444815787499980419044739425603149210256766901684464670529807953050181628271940586862269551862724546017777164606832109786932365157755331859094465502522605965874348524287500861972251707920097059369535844748196666249574816129469362964505374798370769826173253551859772501789382832390695843545836513825300391596374658656181560863979333324027812516430387387712265247665464802668468833134089481492771357211853114808917622626877497118349079993026212636226328861393243098761782043114554991521755113639503581208334030987307408027175255539091826426539022977851755695667779932890021570351055037831057505392188845820992751714057889564537593229342915635165423040473104296026845145463754451331329250567254041370060317745049733245197766698052831253431213382432895492646409048952346633659897519156152088988698585878645968795351440166270489185118157134527147272774170559618037492459362380461680947724153881921814416851061423576947605541280524715375409498340727913851051199020174945767997891481901738913798029360599262833041352996415141821660642519232363699119222969779486330237863958655047834192579370039190082710248824814284423625591342337756861337331142522343942560212259020146205208025815428946262066705227363735316718249823506842548234761339731800914084780750789663501054337827246659308610996059235216273703275854052812538989775252871559864273789312567152046080631509292790532584638755894109659072093903576036994795165915193967331005714627450900939122360980322410131847181347703889230899480715386325101715661959595419496831720499951278700748413287460826246939168757102122274050434963405383922629982121102791429764883013632059580926640730731119800078009607104262631900824259374120007702050699130550313534183282051877308298554882061743221783985367417116990822987692885396877665069941962080665796922157501141717448751364470643299788769837806030032837140433861348645755081370940366522629762084027592753524958708261550502135904103026916144238465036721379951145534101010323459368443895651373288748813106441000719616643530391575203921422566958001277496748266763485164656826429494205482675189291486945690791640769250469090945788900315626627503308518141137238591368541381967138830751002858760994863800990980537250624950566724313213518761501654681946010327379686371451717170451516143755458901958300767852079755610157895246494685982776460788080879085579125120694003670616278308584918128054480786965091343468920385941261395518402218189284936470539165827004355408628887958810145490543826157393533200212817327959210796701784089533353494649494489441154917466771715304464112186876715296144292475597531684520670683844960160396630532451954723037056534063634384046625996719507448173252189787438336487278489448934929978837316162404147439160222423219534102782635495786602748531536854546836127722992959032568167902838068460160815483008921352866574191876889304139712962280376906589308334874680880286510453631897400104628612451239543519471919562603284841902324135893848685242797562300600868490636983545785004124551251511671143387722577587006111056272921153328726797878453223235982616313644042803828726608470067030477357329568005543042566091730454819790191407719652116797246149676539112722292812501465557606849817922686400180795444333726731903857870538595089381026081374823844772560369162283706045413750873834753651725566597147249346448033840872814370690964671645460700890301197455581999225230637509292462609513682213714947667879080639468897389692516955399621177569487275646583858266470346427219087132368818276154987884893982906411908942540725347205156129988822097660734120038417822404672299899252351615363947575442750140046576016818797015759745517439274144356378820425455592139377302990329198773211960562977021689778438042965936624904139167601619850827133858086092508920858534488505748958798652608060892672497792198943891588497484364826344312318772993939304003957982914554981634407708694642854642755929135934750493795992873160912891424183591818978502348879047526872758864677131107211811888606016735660553371192625133342065961519267285980964437044839115665459388457953443676800853744276918549585090449826095550538643396389512350738062328918691159219841390543622298390255746351771610745292453348405082734644710155344261104487937415021474808662769266746655879772903300453986662712182070855846101441077087438424428338877452290463956985247468822208157417107447303540519775849955095230599999562422346317319472555590229481336875903742209696653211469429175234432119223286040915619283396638530393467082676299133774458841384684939030067108669479825112338462131341851151771773185229275952201331289143393395498042191327474876063495405871741460879683367542772316200557151924373593693544665886093076405230682890992207942100430442173564829324698849798261974331263789787394405674172930416464523510623262571126052509868423602218249723638803528041277391470327684081213596413748576044245589473880667012114478057456091987335098100333990506515137821762663276054525802847063574183818587046425163965961356384903946493061619774461538777773139756698442869662543215267316662229383445727696905052278014791314067127257220044818068314927573917915511574814567797513058003396592147214111546055967970565029315760954270574497358780693526079176240832949853109950904327361328116867696261708260352678639098450707656660874292061914647391818306782747538855996344012818193641388763799888695627793209406050995166340205732265283559471385065159133808365300872159878851422343919029807154736676961736935481909004698223016962992171800243106640300402308627649389232406058189445604246443629665230051478612985585720893067509771765952010385891247538413631338013085440266803688277816126764194456701897866123596655314441337611204382620133915617175132072402248613878909512726487710342128464250176695439544687065604369409951406188399653564774945002316156494343749651872638334458833164280831087662445173640801248551704412196284576035090753442968027521048047868710930953002435702560016816977545485612997648436573445760090948701031895328352250705673819492601268539427051380514754077786764750013425266435911348196571374985357379511195032489416573053873315590089775164049215228690427076930720614874685459307963625961842763597610410543104204716308395430354171708129093982069188842119676577061047685256759542618756125761035842786515533317943613443463512610345252841863857977672166589700010346208488962001077752159012872867413623117158693085652589163057055228395220585468738992234122470934181016715776884144383705685104559175656693789182706346658160411426413120644125673011562282631125440718329833553059556113581487291654329235354853612970950147954972675526377933187446855583759171186804310829632662473839142576818585231248683870697402851682348715704632619947593195705495193174857699739585734968816517459584120333097130582109325333736135017414924457543926482361650730283845028124054235049250347888548212400902522444537786077060087798529843391432035505179900025308540560199012520109834139751117431480963448812670902273869339041050910550673622869401973610368786698124629698918570134557577497020667701920097416949959478002621624677450558245880140273370338140031450697799982900439772003496235628987027421401753678973564922409451895543515988319469883762690624430859258360460450096128583950060704884692690832792312584340731443202300465653926071335875857341243376741610581520655980535644344455075161241700306662308450015088141206742288599414478183873222620385936707043075040155014710638821603454058925836813584018755528909551572280691621472653315094654182172923819988978698781825371084775610691666139266939999698147467665914002958311904052490079539383949480162136412151266874774777482269833025298724273656219918392999101736384016322271708918251175670140620383465644333500689376533425058960338350821944642673442268972157194495105913218911008102769214545325202181651180055320357654621887235020373562422975685575437062113700226124913557622561309533704126263362863680052141390677178597504340704458433499230081670521330112263884716343915959372659978930760748496368770986856978976697456925327481344592651092265561492509988874271647018381354773670913463644194022620522218269723457326302397258253930296450634700464637943875658072132902315075341617286663875142050238225826442814544899125848024797089201261117578888261948473961351428463077132802686002438247835254824232986360026604606040916932166816257823618323229540337969157109325361717854068473972401884251901392228607348764025991016856344433080937221335895346363039540485754312635895229411947121764477321323518865279713341903460212239759070780939467290958470093924087254416349758614470941435674290524308688035620733982615719339860184040957616064608402507119140755650383380380748477873225286819711600346741222070706627017803066466965907865140029418322184919829990058597679978277984197907938068368409259386362036753586116864387119739934485657858342594345620787547253672442365027862339190125153536642066654450149657502485649340026476887051344917026475032901487219993768255315203811528624446251428392379342938895661490737843521194095870205107431745754035024219833849226852135142672993036798084331501319076376082695887043538445871172867808035783179778450101134340547890994788182703818178666648156684252090389368531943641492144557539028079843106251747166321835442255260022949037895324345652883546851244022001849531149567813891552319470694832559682640446134716301365254947207451074390959007215049636165185089039243117688277111165565337374258408217698752272716237129395554762097952538687581356545820037975439922305741751635366912113400142160723194030404244633488877850724512025529499105570101187863713881136271702582744021124818056392357255955495119091976512696744299786587457275800862328339030201796299464836273283443632634247632335882418075859388047315344467064538152213798671054140468989867391734548801688398252082599431607940541235122717713076542303041057140622143845986162894448217175334001685789660145302586631892756054508308918684945663408488483805070505773976135123955117830359151562059273374598150959992358986765015636024689850023817312386689130445338508703081662448196001233532575576370094235671158071718219819969135029883758583612289947916781798956371266100259348198053503868000883380892203550410159393336015916391475080567447772920879684441546667878312543898293843897464646909606908977179740099461816742571726785787553778539866719067290286198769764125728557064338539616056879388157953676619517812706416762812117723344265427412222723553221529940862392124433435007773354020851919890468852424430862651664974062616319696389779888633346575079850269493955834786888861998760765770744034494651629748202929402486987625745511782027311726661331450911091644553065702494450333438041761111240999376870913096230965563195039793783158003221312064176088374547317306677726469910098910768196983112056790065773754522724868707390071188532664588325592207386262163894385197988328695324526243765259284700758734628640842280557127115157913793548219955545055548696198201984173058850370222710555372028216493226175169019765724949794865299109971818283212183724328019516503105048953111410156997234155769242259244776304903507309425541536015547732030581396564854558368331835569528994830696012277418967545502585565094466063087980086543047607619478875899104607145642519737524358048166249118060077149108005156463224892031361324662815038984071335812461064457281404354934523319961938244471030150424114011755194848263220980434767330697784005884849878440311904986230937235371140713086151380427196453967882283680444338170915774070650950267545231826205568541777388634729173559690269001593051324512470994028023432073397430377733385331020555789225218369548013948617918616477517371315832605297483738834332741521660775503980016752428226025102852648249623164355304966335049494768744001570941188957466233440899328027539335886397215747089185270662228258679677869514246466938899312046027676378664155614059891698518652186698995560334086588435610964432097677510315809983470140907155711296834125466316407571622301934757394707711766812570343862415668723643785131274171968178566777768147021357089940025517680803601444723335900415481016972331475270753421637839577718295251388091647410171983270247621169087233101519074964421777584284586083575094619620231384186181905889111742887602331199330776499091539289595660055124910447269737718889533176956575107189024737952506722228049192023350512686763118338367857786278422762280254609411064858158874014451326798214376840055803915781040959438234109904456502156865025412886834052384459761959837231500324723895213818776019360757844092795982886685127145377285937179533849175300592480875244166136003470238422821405831474970232776534212529328057648363605014167526451424000622240825148061060732208899556876567057232366917748082120659521961966878205024851060382522199052155709612435308676352716649698282078036722591447480320672780316969442937873531503124811315117520068828608374898998079578842594711343448273164066756059698634914002300237315452561360766837948634949388166187954950184338411212912452497768833259526037795566277199275630878884553822950156901713255563277455256825249849711252830865907385435049402060417465992001661011678774364006538532544556086280389380312351326487211930016377963775166197977252463210149361768833147222206239170894229602106878181725494500977283864689206179048173928373079117631216140850625812158025674652448113851354252959137219192754272839971529784057803560034918426211484859366942633879542809069788644897054994320475651826257440912711662994353914898947152934360770347578454110152013745563434336102898967603076287082720326619797896766846174858803733276519536446743805695146624579883430200221345843126809529622408230989961440873362483323534121737642270986418264115257450982620556749914733368237498112165383703134347987088242499705111026824348945795751424888124939064289490087348472714725329391948845962128544251988247987450647993625390791419769415269245420418328473462536351896152210728757391326230871095663127231749037301286740214416839871874214058271483369949736062994251554066020153367494324784684965113314486413052383970148207110392793978665513443137639305516155423360309011190813710293310183987897804859157854092585502614955126740488028736599489840511416253398460399328278378671539565008708520356938797875285135244726366244466076586245555546571741560011352504133332649545250408764049791980553840359227425328536059171324494624072297830672772941233099687993875236511627219446212195442446010979081165287613454848240728119035272161987071413999575442600375838540584636555508457870495839887595020490905403267495253953528821543212949928741526828912643029388373922133272372764404491139849258110073057272360137161833972913749704096457548250026192560933757771941145603377457513162056604423937405161003157967076768197629437726628843839257169688237172150320129048480412002373632705846517015186932849882865580465266191495044943810876703657764186278836963193344658782618662279121936618416846445450871036042238776172235398001667539198231499716209914874502632320735227996680503322976146264585056289794311411730120458879661612543634952922134968561765626505904257680424673396221750098302271369758649930520391970789930200277532487148672237024913779947912081575933426743357327070362021169433709427479296292271724449368989168928687437846295235637918759364304314198706717776069731662312398624329553744816061805492731247097623520684950229959404388782393068202680146928669029029821965481590531337176831437942556514492742164322330730823896867338002067447630506681017563156580437270152322188352677585353860674641762734788210035672050408998360693815430390674923113017875047449535078356183952508422446905586909116384482163278081169212724785972697369150478870808929284324129265416233535094420759104138038369536213829313801978910377127600938511182292716605816682845189411427481877586216371486533569291691266212697602523237873933726174745319653616644855248817077196183659425739711778777417036863406698641073902536719000709815872848596183380487123199837338918454151652869130990334215554593291887064609342554644565294177791685346561440895881183886512757115227074060067295433970597743360053235322044890989001277109784665772402130464306367222108862765482951493766810168810891124517002518050275353439137413816033334833614511637221159552159608240974802746537064785873284829069235934654310826832671964144880238947218533467095768144981288492311307756660462182521149800684258426385557463536786839230013629882398925676018999593656803802081910468737924394240583911267092052263417581871694405613317426284426935931581785117601676832833444014326649364441340371124998267840043315854599929539916621846459518257896431735291794448465793999737249354065360039611135526109053509516430003890653381923031004678234800842471259223655576144900582598985181563263445782977288426382789747701007140901830873015208078926580809569994577079479875780606759657284138139166299351107217934168579748279078829349852592661117809399325810829674799130958721398966326712901564240164206654517176784046961704005256606115067537872635116776346908409950745023062348802650866582999206725471435416221499102997768315754472086029172633973726338654301065184326151777561813865382947852820655112067216653057847828596143556879024926881739461274148138045651912669962939046671445797954248308608403744401651155104205344030616970719490978183333082252288273212583966395808190616248844496598276330641398093113695633933820530774794424265145886437344744068984313315179536384789731926436594401927082756685841984808391140748504535764583334608639211546100888142872130620925164720242846789501433753206852318960379359735966890916464057452531182981433143985259752105242625605347325961564046242828410914575118180072730292935561661652603629204223091635410771392004468041058980325562787498366841841912463502212410283102522864682857663723101291208558355904307825023836327470027837491185416929081538747549607023925900577422386237653353049248591709790535285897117306756099341545609819182191377486086397592370150104166576045506225509281116576936211959637656565578067260440833368623313476899107961952330542884523525813037875555627301981934321072053075585239251498711079797427451177247932689032501874789763915977443226961606485008965705537375979927223555459953244874580725384358492257784517468994250549692332269414938204471619317671067137268693506886552776311449604382015192895459496761681535683995291720003096646677201265519002085520013919236128391492336230675330631053625287652740321065245086562439562153613351436855453150602806691482966620645873645584273488406874468827228802221133107594098615113104628630635418545397545514929550973104612025125485802768611221314952154216343705456427345808369007487684664083563984414298502033538421966113574393347034427250445073745143052999882756536001860066457938649528821516257306923846075031367108479153437364557855254746898127136317255405300605720974112868365018838342204147678399953364160468124103182087312012009848964688007887772201365468884049998723883778527856392857127646603206241438441340268584916362370495851306456352054335430273289077512155624749686412703333104492872352608887769339510088459172609160053089790251027992612494992067222835475577803252816674164257576160842467672539771626193888314543937277481988436361079393537082413249435926934892388672325681036077460714034881799387962697699078277503703136525869802280996934952462969893423126607801139622116498854203160509581251890132071173192008473979886462504649894299311258594930039888902217461609102214043162910122350286610217872261909599442232904680485993268533702376838273104464508649723920808199619995897552342623500262744992201804969303787938703030773272736579951320764508011869020162954783868017163132565069839374283159451398334859935427769825943689202054014853140071421696058944556190490215664118616749651281036189042202484076085609095092157032128094080125922863200633448844859760316793965085307977801894030379004715546463142107274653236231006201598262869391389977733527087107363205695704334717552734427689615653725127614446640299101899827779509186048236398790575329222756197028239439324045901675520223927883011302199533925974943848501278060123859907707009587743546271433186341439086879676194691416374661560451985896855120046301075159692449793724314089788335109820139270398681196948565581575540048986138938659617196081029130218580448633377969565378378322629684463053320598220910708590564791944442508354244744103075580929381446526746423663878831878866178115424555334139797381005440411491210482394716901776344172065875581951454769014681271743447895469566235073592452576938150391799608722016740701802906590501542514744395717340855556865221337355585336023329203233212004385150214899308169907533986761783919364875355405465411566778421249274022554930325630877010227466762739969764009246948980589372997247893835461051310877701771029182042086061163869361456938989195467309816448209650461941624547061503463545683639802058391884457592296513314851128538258892804887665241907587839432078096013907694218754978570956096736335413942189285320552235839890751532219989130463268106970402107093684317896355166349227735699830439160411552818703792041147452133298026376059178445231829571095408498044696380414481421549662105924841779426922234309753004451964245412819862808810269831177016257408897264134193754391918817535250488244133282250718664202543076688149724739687241028814385427079506563616769728805042576105992716459633552557962996010717752346261618432405694515794888807711618014797861417266277966536510431359192497075555470195402205791685298343099539293377968155630403218579891033531891774944700752993924082542493826848389975867273452141304440800019935974126958685952988728895269890279144267879308176089704579563505443577902222495013459177448642290508045565553491128494718355398869181747798299858221868208069961310007342485760585270549713942221047863768337806524944997546689540431003992883743879763639153098882794966187035532410184716598078834677919159480742667320780436439250423083503659025072945445977990703757939854986873163812264040572566569113491797616790499680614158725473466361263323952113859329130372762412256870378807357080014885476895140957204393484812052145541050477663900812985743249599081961620526609919399741454615303514376356912654307049947262831492548357376743301504582838125483493248875540480524451990011009310679823377730555747107973998779956680372929499262565802987909649717669949858893900024508448465065929458661026338185185531278916226778050605682681502380190298086249257970992163805168195213913070562236624376663522618598059730582525061020187320834912387182629046586041249934573682475627405369659222899385477061497907069246771622290665631706083811800158407837163969299548972026809281522526192226978000524504341866884603574727213159794112108097644692476818064567439654957893441683329181623579081955618179390057764831771728178318311515618866724708031769911292426002404729456171750559024137523512809291786171884977025640450259300448590492573254182611795191311464578963630218376203203507847599616956804553805871420947914780460611471742921196184329081855484733035306542538704120040238167631548137975704011324161056342773296324424144520514215028744772975564485069701176618802495490645604489841138548854899676745367891129680241136229962361590905522827025694050793262269456033855493555386381605854688966270481549242609620388447799124662936521489195849711511516909053484366921506650693073371306887145554170886752926771438937326416784742202877402468621260355349198052190551918241990167786436503671640954426892172091359271398365779717967044528279514735789490880880445366420359028046934638004941542251811704544265005856602096739811623162873211723724266316400748398679923668445573373320945473579524779898830213646227637822274546604130481195509289532465870864995549219861172405452309482200224466543279762794171412191428919681956519173246731687351916503619208428042852993501499082269318309086108775557886740427074310326302666898230444598947475071054790780519797852416122229755872331700508309506126723030869366726837504027796236992413102117160370241269584550408208958346563075435602284111781497621866132620117810088446966059973824292599571007500157971510897099174320694044822114503952880002657169267386708601285271071636723007664294209550425577330633049231533252281485242130980588883785551976333782956046641189770296986396783059996346869482758956949371037384377364811811670520210748888854966583251791347948193994700101075494361051858267508014725119973498031899345448844361536404830470996047137268057387018532498916839780712357432180211801324863598904054531676090999994293160916971076064416124699489635197099640485274599169156383631498682558915619933179269750439875292245247601865318109319133554397517327490933937308221275177793472747286459747985126308969566906118434720157940494116677343143218464412940741223257197983988272450161733488295979936616320836572418933300664220492944053735472771071236176493884300743367733108855369020090695098779851933344401432730615688564487277584542476672182835171544491858010221090625155082363725544382053638645986207388037571483572577053300571888368120354668034451826879383097468060538041404547671977085677138072519454280566477323780704750242022034347998073234045440410661751933832791871351111563400845090518881093890249274812760343545618761096658311087543555655552220550296477079783837344053121103436619565894476031481085606610963435394345886807584912032564122361998251703658715718413296562657444066927606045126541351759603659770369641140343245479586811983925374306071582618248323101329384074513995154561213599162673282245728132560397825402691631462737393409164415659460468710210877124296431081666704094202977364982002011788289660783542717999405954154831775440176659431405203358963305814843199269209350652262811102319301714188550012048477451061665927391127174228685634394882084625494151178218916721684204265916161027404287638264640117931291076820317534186038453139504871071484812241615754427725539197847073777691455883459895356770150776867883499917195152939259882890959071662774900338082978490723449025874010530048257882651369801215588929285132014871694955813972256564548723930732061835397244271149419984111700154747749017983125865493242645295649791131325233465408737250202202789641051578104916407741491676806905932879152298167448623433927517472338341747129985274400473505292833725688027140770981752528140462321223110112130298296574341947719807437809735117081866081781557021830305717548429267635747850316874053324511351104664017355185197479574182685509961221271432480076578305781719448660700919179302585385023530853418093230712212753582301785789342281598722940226903615325984543621471755515450052054857137697863533751684426706072347984754819676067974128676053956538643398665263693768217549959695573089140607111896805834388372432428055839309003041582530615146382124674946402954853268872316798617500755291739943075297347905258879879448552223424257214739511955562364382747742054548362833486078409050802351182876504049509660255946249076994256837344275130158227555832189053173238654813543721968334217958804535301691971516157595168320878395851673201975821234351925336893346468144950704332349020343805025458549392471365673605785125185581624663012401120904020674326048116595717178740181734193920651201339450676191311295900204855813452562061229474638956904632441014750161256998185144968414082043842865581796201277693127835489493578905134526899809533767007262863046039294751212899047159801924226292297190494152790083582891798187034794447592532789030446273386105186157215474618241233270943125991792462022048797391141856924637284646592977565340934897130450990133779529839417302795294874893941372010544676883929676333685323916341305120571084165116706722069385257463307546502919292111954353899786927589981549596239915882441130092103644752753902947917025915876027222663017623615563525459062060164922626353678067027085963412861897115931097337469948155647532705042851142959580451323920360772072136452393278004539579948689688992874716308276324443769775831871945309356065498556527336053728156591670819981887677824641279544409843872558288023317014065287472629879755665495727531195532270516733898536222007243495299100881080534160641712307916476551273665738814126139651536273075386490947881070024292594998503134683142331416881278916009451888626111848715456771677154471841266980466246953574567247807912005248073532132001977585805220654407674349712030347664198408248316635914628438467826105752784079801486281241798558071444265979723638829528241377784199861962358361909111714613781173657989842818464064464343045540855077401876660346486137039663317175987931721720849823181378373431798188491298838743461762135850777046201039058554703794357498150467532060348451952326350246080841597945266102542578891581876218890368367457540900219016342798628669620856246864277914123931660190889899547936876232799812634363882130435934095942400753035250349105688491210236911891465804985709058793128022081468506617016938125509852869389336145275805619283364383710442687662117860298361084948465249945655710327396929491863322244007792957342944846355470559292492297962738580380186064875402791543744990743352160365691805793355893706598824410759658432727457132652677247719589566730925842525186458338838181537509812254458177597173360038809484209342057683543252894910843931147758954220408241616245923204782284079584769976306676551224353333327974688068213377133417060848257346956162083718827417541439255960375421411738259295452320604932905924118479154700567757722011022802084078389836422671289604804268130633696229942236885512196435897784015670945253504895379569771980531518018698392801362323006518633058289542381315289280000756455638215463015607211693863550605061091270567000954267415915678386075463517837295389715194323858923067190769329730966457993311097918650941636903003530137247897673007061647736279448426639901677062180448069002427240496696124720241166757775117069277695455986270033616454751858916375210488595558171661276964405421883629651182473125894040758734022347381971219305283723183485656036017795129950838837822033706796017514050608487784049185820437456626977837971117957459328195321620721574524688461143003644574973644367503678138861011664916731586805103028553277930837627701811286547380138487521283715876394557349005472254899202323415392345512408777629014517361653578967181586203274461047874035686440816469949337721852469549112612203940764538646015935056352518221270806932263384643543837559385699254009176528167631048454967343403247685073256206605643483828134984833057205119774205785275290385930685247186433327411247136964670978230905458487354183308048256084318397022376859565548114534279001930623845954204021070250348408440797855877501142987979900530449081165610923229368700163131228765435879763452725654183858302547930737073577124404118664245395039149733594457902893086906149938839929669490555434072204883841870614210596011996293046948593710249547895091090952188654658202629820059633696677672169664381597495795576936203025466541247874230116320889845357865569109933199603408974226247535648131707745794901975862374132717831726619275281631633545770747523464710473220404893644283210407854903822713846320878150220402682173934832829356742844987892494495935091461455222447169461673724223454456227257439389765847526326576977808799500680235213101210670242042197346301187540910036109783348039939142501310121189076668930647514533700128441753912527135798037475329618879092985502833787670578521079985152147258540501551687096684270163697692986669092066082308083344858025608827452668989902395810276170238935951651444910416220702691828840602767983833280473878190208876993968301923509708382864066836484496523266462428304215635254695418740321070459686540330165799414460195126859164230117086561574013498022682540242025780802632000278451093960079710473033777418748374807854140976925347209359869312455989931650936439389229165192227869381423132509689351123178202083561588292215196361181596154100212754205735536400756902995141059637776618692177182101297704826048121982752747586306831224037458747057621470848798063025620016469587447522837992431905362243077059849416177824117055361491629043152248511427423432791392788979260936607960106273372527120103441358836358949187981422608060582979739090651093218422863764311741054029146358646298658021952771352552021197937446666663066188743710883056148085232263574022841020387519027219025945217284484389456138968494001700231408147310070595498401025541072831795768234488688160062093781476734117387622611795877419075658155894784389568863110250620143407318174002176207302482965602618497967277335042871597805579649230363647794854919740790886601490469748022489549197728955977336891532217735796448412864558972424714053754904343878752799243148755537917580006436455395847325009777817988199559545852110050040034617816620315858277325802171293519985914098341587151099189224170533856216118535733490329297026804974990538024713404769757362862116304458127611426007689735324325030424933363502143528369787617778015520146253993457561538606820004014155931242762132662207929129065602950278032085762731949231490836176122208892326613538838996525409670664132858944650905600857091950077762507631361987023827181663063741099539965264168139101364862379571023221927410636543624995492800358919450090152963370340109881428099956128409945086318200957079044607940374090510272973867468216452519180552502939297239848304600067102650479859291621345760540106832225728553682244670855166444742173064254353925535520642862801341776969311387969171044417233278156593295069835609539293083083893470549615479818504859989216434773288980257204987597921323722715435287141039783406057650438017387590857726220380805052671508844645335068624987296263124541100206163318733767267688148740725863192428354045879194386319647591120636944987313236073980913011906173879053311457070351912836117793344617521694455938703090188223315600273914303449134020170518641701990478714726960236770757399508296436217516524261167878665706051129923939731300643683182486147877232798985872777783281310036678379781600351364588763187697342088630163429498656639577021996768452438156618639910331527869634404784448384990500137844613437461445932958433748461547282164784914493314656473536839005116368477950978432490646954725565807683523129676152749364431251491987855363584369057109703448574366729823369144711404303097976048326546032290874147705684859806567828430833069908532092350552122253286724433916440220072909217886383518014080888652361644287161248116466287232936242255412239140912635094835420728625300717605634517054388017239215199157068555048204354183934271871792557591881393906237276998358930541525293878812015754993534323314801797420305435636786331435874704761104132830066622792559187853633690983885317010912770741706187036654488977119175062013608051556696303529703575786927594934697435033090030419079656211591264039479863100756466852879406639544338181922461200869691270759354495417597134381822071123190894762334289180545543419734427248394582003099610884683975233690747083978899773344664226683893567985659935043788438161454501103971108287949123606978486197977428280705550790366435335547004473856242058382745619796423090638987191843575528982992832303194114006276250331142731573273203290741123556453361208975221171175276813627754434872868075994752126003489045739779676180110245331098688381657266115039972635224161695120524936368929240129813998646026452661310952869240551135554220939678195070283050817698619445345867414572533035279073909451565809027635499703827633774713681323209137916814495946003619790615454361711580061407176783793369133404643112291640733947329052058183564532344517162409245329594647296701072719076484561734552929900066594582158964500963717081112088581012100018558859029169574095616303913130974340287603824112428521586620703338571954904782201429280040582822901339239395735323319391504143490793541358825276592951618562789936068338749249181704386987107664309597856998373848083816224004127545359819405639738312481211115159847101408148649418332224415425909987071884862565168102724552135645008704639993132710393499254415516954636735617097199088408788587071470546045738787983743184704998842220407275525707403445920539145516776278860877028749368878406940834541501469386243910833425740163201730149925684420735560296876874150621200020726003579085678162694718066037680366947524399590216441439048192389241954948250324282307108116066648386096768679943852871584632675632803890622902189431703954743467179203228398848009023562590531744629474370646133226508959592869323486637565299261145844979479740463267724302792165247144247914845382121726828681825053740982794315863078718490734886361208539328855838338526070504281475593729268481414764658204844099081198317805420951777507184812641837817262259897847084877265394364014709841357309265376523585152899819504182958601152161643348987884367034302772576298332906699797858964910079534508635747199324701498466607173540598366542647420612098222988772206199256184306910556505879948099799876189121627957298502875134554276127418733112096872301229132776710194498878241513133681839991705303464836151547858733059686927919924294307944768240812238386550712994439757857959777590752451516481043309737787071871891159405143315779055738131538430546872418922640620081034588759891211543593234519477484538386979564392682502885328664844117739571865339166853995460856248341882268040031101195396983951204705164337148501814719555504965798553326319312087903831853502522001557622583962994731786252311160357826809117178430302441926512590611598793916494729347658309933160707002558263226103978586656288721402577932187919902646117707570614255333394521461548811896100311300730963075721902831202955796247161898667985002751520806588100423799296628734391132106365208533892105032548826708296247103055575718637644706061102073001997248964397514873355155314283294259516818687040871369441749380338807900268025455832311844419381473260332498482841633699652644565731259695673578941868609357840103916507050689717892443799111203559813510576138653411434065698518428761762267132776837786424093410689369876034520720828022216235404711132743940129701048568927396013073466178564121782802990328638823547806502606340286504538653779634275514227750916688434894059567603074329062441722420628588251439461775346402408087910159914667516418620667537696005666989237859463233563976032560522336541342492931100722196266993190636271039898076149115786310315849873536918801562615001327924381311414377061419590332542658546925653440323716292276610080013587061653702606088517743497856916542612652457329695277877723953224960568349627295333906361643118256816684296092352131375359270084807488595483054698878084088612483824974596003408688960918961509413684322437438865564014584192859594509694717577689072887824746034093012971253386299135848013253908787640773092080266313275069679362528056041585270038015869018914483757217308210072195706266332402052510050751166130715109794553085877101546612224238949506751909003373121394259425074068534624676221299322275709873406709310059106047769754286809957303743408245020966170117749620390978567710413225530136332012622682178617229794650759549319895649985951457453598399850665292467332938955895201499124817655263455861553543991342428816237746238939749311041484226274846058209432662911319050749677631937714504520927495655923993577861452305154947536183851294556123352234469684773705938427897899818559832220024375104691490702281138096051913092136665180129306218101285856706390683619012876727937205510179451796847947129733851080970990434252010051651202703938747583064693348398620306700126514374035489340651575779299064173634782599179707644014537310225557735486920010259973257850193619100737253510357237671258474612581287851517679456208695073742961172729163054343941552126002925123262504834731520068889986339107519403751236567691156844108040862392446844313233976451303356379702349383636456674039983324505080739137562056718565682353702761223048517002259405040327904779694818135290403116969320527199412272302782139034512402825189285111931163456133434327598297314574531425339435891439545639046837573445653387105686604122936775076748415212610044882026059434846324969832749108905005547015238664809348783997828734924419780698750357826651066561096706565373888123752654926558321407924080864008820771255631387928051271622057140085161102778610225603131599839708684927173902365553362526651101149289429972862903642277464445299095537182336650475668148923633298552172417177753336870952594312796496075836615831874756693698624650903802568961148360533556656610630952992429394439727557744845415122954722434655704660846895135490430975770254096755780250495032128410786847938849923534112678520464089381190202316402249084702232794989187279470924145072317881112927811484789558303437996112257160240153295393672088817699961315284288408184964371573388252915478664810696365366843250651699093822014301837602103916005487302834477322520170240224917508176266391721580305332052850678440581243289455262297861640061108369833545272754206616834035126453339443700465833221819145191960205408677430018612965118405155408593306483905512565053410404251964842696386759998750554408943134664435829947878913196907644771632063339321214176156393595909014975954930486081524893842849032368694862360601041338012032513163816385924762845641374460838780461576656375524680737087489502929676466799570102463824469315400218231237085036331525457385303944540494754946034794357452486955267297372098922213567497256035051737630537559174180309517215275223784034135406789736644640765234888591061022698029846349336673263463849741968428285857992558367778211435614758108263579641106753656108720401027714901486176186547058033100133278045650976364494578571960634972862356121032233445046386856617804239614809388372413425550637165278253815962976852698011563202905633309686125078167373826534870463909236521653468973514526300025040953008088995447367984587011071476060892370450704986556736328456449737585098203947534377835785592638008086826674793533859819969560845236381837191962568172842282123501556388768836209666586547876262800478485361235322500325837364753228003954676751738839532835516847536464012927537111901093731695907201254056180227911099756170259795950372874236132174255465812482071440272784208225145813861370739178836630232036456795096899076668643937673058550046568233943263421969276064821698389733860800543430577322712608140060638840945359017149150281543304934973561016711742659223604838915159867558266723165614709510650022731022142730347553064446797047387645695803950483175064620472327020015655759816853529704493800917128103092554992257320633516517546112789430559186567411171986788705124983303230015088403345746604604206717597216060047828501751817147948496264369375850428267236241827799541749655244375820703675941830410512559139575226089068370102217110091393059067607420092243316061796893333783249001772181705694717248343914264312915821486025352454162827646763545538025704338573142918366467989155824629381475784284542503732331508948576800606803316410546149098906543401211982406698967106486235505051932707588427158471687219522879654486624128127532608807514435082384095506704048471847835084440865280308059765557800557008534239528440148358241721333237045682702753008189461122318075742107188583302606873817364911380930311767434489389110384631510459958630209434904372102988495752420481091067153311108632916262791335468362136707111052268134993297985138393769011978882641723466508388309615617403459126671314435825103576758353314531361455915888320036709574146878212604611854778172725221376064375803814222774830608317143977204139130865790713199562283386318450537902335840374683010256477328343456614080877247171703722858991458427216679134986377749642858885004932993199601522491165212677994921991247293413688320683913323374267108372627545301364420273815893977748026830997502557141542961655171621025041067553670280126819072640785273932834637076754953727926552271602893808892575569669622713790238479557976138302906474917818193283074086195981568045679283915852155907980841503695694680541914782230519531074654520294911299975205425841401801153807260191410774742047302592298081042005925721777107718453584438495261500449023243504870594084196878266580224487918281459903650599524606552722555585646225609113192849016957527211457010151841003552324209452509853751202834053442170800781460499759093164449596583106215438023114711075681270188501121262381498292907645061757503669844679072710540003491717964412346297915041525362771716855381897067808444509407677948193539910135796520066980574684964377878893382629526772280615146855506611129403957387461174339391146639457858349329257454225562090875158088828833754873945500483412931766427032085329545654265708331079186788988145394126930260225152510485445635707007632653638027061416733688377941733225557738010422312109039346196943551789097608455088192237574958206725307933788979558492439497086988052581822441672384176186273483585536494958457039152057481838573339451108096964040656900835079099317476786544735466324955057323041182737218523941859988704880595994674284112280281904034965524631583926248669899171662382100452137126998029704023658103144611823065974029021165719477678889697375894368481271241561519176797444547339742123423674399201195832043240165757799566388424967932204954781209912185913252529816981642771920450081049078179274591222692473733803555551763340948671470734977379683076597825064662919911114136536191185919124117172015649704298940811786397874659556303712511664095385921751694643738065019844997233617724226853925893489632030478017017202575998939185878432741041089226110956797545654469271847189427456722696793501786167149994214514025543805132835370554431364969129214013584212524863292131552780617437444993279601182248551028172889513661339427312335435208103307036656835906162392087437950327703179258012283085383935787538753251939711713654126838491992975264275423478657650899430483248515172277780984596721107044469299847742451311622435172773413291800309991096314648964113606429438584256202592229110299639092627413197840638321948251971244349065327761385716044592866769302023645925857961023131184473000573433330140304370071240178601331342084713279847707973039135140993293499653533769748365541963767912312399414590666108516564268289910824689175601907956102607040890439075699601207247683496141659987696719571769460687683139502561391103776413538876374265122047605225550242878546125960835308485379552679340102144314659459720958661685065964858659223620994457234769512933127992629329304978122058922257918416898862588886784943475594138488956597505883146107509837239887922249854352556526104610790382400099624651898467560251542260075879579898035290182473837033870043481653664148058984486340710910921345852416043308303462678356483985226484711941323613877922070174857381721498358848150871097849040093511240660552430451131762788917594576119331596576518420337817946540936954298510345466016948212316248906267864536367142268052365249054481351515325268031272753670002774741335877863556515343558883119080877754266101580874154062723380084729583064611438370213194104974270809192028721984005503148019296918976061643792223628824925460888174478656148641338609458725881663816441065023358776945120243970343379537058482171693976909161511593992666380326005093265965982155645836127634268153804069312234815666138007244211594295006752607639467091221144868643868005206810576873967851569080745501186824413015829174645926384164408566110457518198337086750083366820005295421644293163747917426106288533800285188554101004079662207852463674855131016344085835533543857812800570765993722415091570033736854172627217305324985769874003606315612605407308559087364670057550100268250107981039431068694653287660432322758276313366443936900703823495751752402153308113409477457508444875391898996031895207632016437433332003617531477544895263636951038393136537180282686802205309112035121266358268358370727556323939278892604579331147397115026979632724072778250693302981988751354097563034745574879814591369047239997382842523326106207515698851830117853153709710836392374361844114007238002512139225066618857414276841821524856777692052427069372831032147996082049287251530553934470177069760637435120462151709569677951861592849233366357974629219990497920360826861449285682845304165140184663072194254436435637738747803717688246776742576200151365168603112632537579822755405223344780671020905221814150974992178630859876666226112257454615132862722713399186070744112815611275561668040672743627492274361323058521551409603079582192233376395820414338215641810311061140168610010352065308655754753483795405817491768286268455178911968848307962454061948422565494810375934392683607171591800406580524597175550545437673246275276883568696167081055930810479756671922359540779095721748961259005351109069384685494591566812435554074200682517118330166808132984269143884872334242660017808663854513551927144698712701501937030587432844097500726515601276741491672584080885350476454730113096802615034212569668508993467043247545613412026044438873517549716543331777049712067357270154199835031320589343998341698624758920384177672008256981625118655127719005645653951219065659599663515110429622755364351577799344105347593270086423084786057160762271456789418624953525902869840520544116503966464459989428537619506801683354034009460328015044973017481853459222356965718169936755747958776821546354128626017337089099744851667055888532295526686483745029214940666368549146906293360372930212850320794656577493780640846539088040816247426688653976491278209961735714073114919161316976167266099347753117587276936101473861178784053295192786958576419912052585919216525542230355974497119248515767169116444348386292103517856422770355471413901302158151022569693206275103140471009901479784108676452069981459383655048457327157867353227049873936698071077568771754374016168394436698286112044646421006532049682957131358376375535142544651238370033790584248292644937020596961966569758581984655420289824644073131418773426789450920624007099479261037973063958746307998719014258938083261101826119143797521265288493284968036587462212522142843639848553873309787967851369943036675068021160147926882032375149187793940584161006584991560598778918007460859245668775367720282622628333039210142911905496893582089017004738253265335989413283976073221105466570830249799315030215646868669048794519755799283688285936780129833990680876630551641429153018860048142159902910071377185887866935979657289623467437046994727149079239534225288773677732976015605240002915689699242034840513856006772301310337455154557132873712241632541196870028218167578382477602834486681429880286938423173652460414040924003968771813577616676279300779419421939568859632108332208347336492357847945803892264340403871679873166001969100493003497039335425040511834060012690550129735899983679415646796830263519968422253272209453142894267103056357187658869192703142796155395104682790493439784519690720074344386292874261405613294662650154618787919745932471685196510935994006543649365348464208305339298039210697342420609300542788565713773058960951040652245808969967829258549198679989019370010618167816069740699257086056588136345250862433379927318919060874746682831605695651388234425067188004633591320763130010670425895756471294353383600574228075896254894642540598901232629646564532590292910180678674662621875677203242498967924136809573853793768158159238316195781484326761415747637299732467814744254424130080119681974593873007607577304475518143598190334086492608167380690571067451529516256816709644657675407240774755767927175995364994164457025842539821997288559477855486395672703056008424835906945791251230242043817727793498303171197258224999779752820770154923866716375315880763156240964388758955327744016485488539926392605637734964241285705725498073308087708888901179849701386061463790506664914193815639521128128389490662147742296076267320305855493185150599016786499164691169402333853836460717399404656045274771057655995674216878450704175203601015457113578591886542750573359330282203433967752521308820844354232977198093258608788437523758947413652260738149746351365587072252917308574282096206064789854814129864108387429755494048345462567029735780697414743606578567413988251564010403303960287898965500296822584616279542544277767002303506263652238614772597778238666740687438598887999025196605410082447033664971162389493264786426603070732701299741120176732606670112528943753936127410714898546928203172422211714391027837800989756820223454257158225947717803636328306397499611513302902517361685726048370919963264387174661053083772406497005333652088818077089195046488965435296350470461927499757500313326025904246805366665144767270147732975773440958190504960347182241310909090250556785584656245589847934480206473784454500019185662078148216037842494243778636425472963288052727707794560573233591914737995474563339399760518633124457353830057750007317647411987254834952146374434205921696271686675233175287360160038535443364806072037138009937121907496861206742298469495138384845814943561397987201784449411915843703805971319197373043277434463613871422651303737295250945140698710671602075991018493104310771542945175876640646845090104818302748363686066960739687106789315979762321021295251763922033547117599321451548677540538516763418693957014316720914646777530422465981586228300050756502692888445271333830467204932940319769322457283281728899822884121021680771674639672520961051486986689347807546791318245777998914290376062703675387449412094685134744160091676065585017301107989444818083363252959900144587840382668469296047048963443278610956708932099418032148189328409326025046431021004424827115951283505190527900072689082085098683790650047344114193754653085139208817328595969118229101557542560403370707278852573465596879492156135861567499126936399514272016528927730063359608513070405040305889443504151819314153552895500181509116542864709887309293143010933333028203349961975038275498573981375919010888410137271264301730940876909250329619307357983391136460499868182178301808282160156817666873395480410455899835626539198063189033630860873370035934910466795542896152917962322585428042313137637911481166043322059343244983917056620202074955690734696218188277352675905455897412955931399060901748037110543356023489517842207777216737075708495672805343622507056068359788010756099742728025440069760767769473858928621533947125768679773379876578200618793951764819857896214944644995774173525454595449508598029865295920675434024347370848323152009652203552770321109988927306978331542265087694053854574352139771705046446554462257670179323376412038680351515493735147167440562442076152012818817440474119341620181716941462713172637754193647015494047801138367391381505435865821041259907289130302229508376587505629138397918192106767101747828315396882926087487057753283414874909023781183011089588489299788279025895131908179770929404874866277646634298295893319792715269088643767737581112706084922446179284367917808797610763827374651515508446346605985917715984852194269567437638866624286474752073968700897723946589075139966759750228810263540372066346088382551203047328172874588187919245170786355215587713301892949075876093558016316937572533485716352346287489700094923801326711341889354166680832272157087586245102033515644525228278509459863436234775699621408306509534004888445306178382371540844774641782499641454956222026833888447528103383694831657013772822584756673299393102598270017186571040865030905291366840033279521493440745545799618232809870654225515819523216311176537204596174486173376408488647188957882463251729651260645143486357940604513953955241381924402585062250166018840058459737674940264519624496874584090377083722733679494960022501546248546333426091461443982525341463413956657567840106678456884256295001556545171586508953216630358146083993955492399349246381750616376025101548277300360124457712352922841318877534441529581883167843623476748722696724222331209460231784836172564549250499368115772793730008037491728203076925082551838774407895209308193185573078763161477508673249063762303606205300695750934068866690524221452720374941757412354997168408076387764702352091424263466987175763445925303621029115204737240751340539291366220621726813440613987024501339450196519466749818306650500186178549050459283002109783987540166054174633218263934521581561775966077639916686763855315282600451789777157896442574247228878330016673718264181945322627643223826042522840348100493448092006638685891142133792146598075343452207598918887648295082192183504651040200439228031658369182134366598195217696200368637960939689555375918877969404671535265516058731583535467973940583412054709358125465104289811489332684948972634432042257841973860685412085068104813615962545521709044221829465287728128310934146529313598952062295019903413573307173379335144435159529139944744111804570806305278916762552089597941468630888459833723608455409046873691917435900102677439885065420303202405344794833818828649410620131728506056123735657200148392579797726994731510594445262454982636825758974367577803090195650815788909431796229376066862244911742813429666459079224981405030408536913366889137878724399587517982260514428677486457075589177991374422032307696010683704382412742629702952081943455122855840485545727552928206215269840983654046436515851686681617484735837770089490797926231509031863659922512788410791888225275355383975558940093012089550072220804796020570137018852951739543506377497791901078637779025504913660445403797932352770707664532154087213219594758224202385463451660155667535068267861868622531877977613269308371273690995730956472226233548912206839643279245010493137679460591048309825011821035413834669251873900258202686775458681106213780409627182112210381834604510466548648306532710513573849787019031672616455293553795199468704833992170163113118142899816531775369902888464449892464349791069756874384826545581135915818168907778724046353203682195941079600883396385044262812340607756418152425004252773691413263214087615118370215073193900143797335025600281592615249712512534718298983729273667382613586439632900090859993042734396155113803493877993413943835566238345915337103067382346651191393976707586170725569096035169535791836438340505828471264129050109895349415858415160551420786724814735813583552916207392998938850132538192530019093584556157508972790501663630462831618585641868211311862677647416392575494817995029271341714022658268996536487954301217110713655462899872424824611984587059063675845881435728202792109921034463903035893579098825018902165538223682453117210043017821771165483129417963053342893859439328932977679026004370484073227035701795936756631696786681241548698715688144252233941554229724621175789139109057872007220786057976840616486478700139020987312036149797399822920579378595606041736851301859617159914946248008118291243105710783565806056426595402945037276260198568427367678330162066133984500639805158659118098055133495713791188166436022207337338539334308955773205607459113664087056212507511945126710754786722239582725016310877489139962885033514961343182610544585033794230496484326888870501495758665046357103271729633514150378891303935658003170066716475998532835705691478885065648748129157906046432977448144603227579740889250508370280776861141132440793786098407808977111725875713604478354163575105126911626042681391525781724081381185463028739363781746251576749306304721154587016257276907978063511491668891154918428112507342964475905647068908458801753693755817843122495988558273165616196131377563363225172204985206562990913973918724236223681239297911387035886845351932466149232357360643239611944414221408218233719366702242688073744454971437358820048191202392949598207103703090577959669311643404196906488986322004661745013269284301042793645121463555408359066746920772410118060529703319223448211948827053403760342363293470216637746654347599908960668418791702194382384435709726197549739173690566533395803512720230066087765932952910018728430506301371530109030481159831776917202847429813539643987966760204613286344466748741766158122438788574549751234009753642796668439631965536407089286585069346091241872383607299124102265561736737653020183217511719936707133942468431846188806832534093744469712462752226032494873112832145704851572936581372737640058056776388780165904149760220105382078180218280322543527470159604730705378742188434021594445994942525928286862820747415576037502197271346710852626012023380761784967499388537711217221189483645471382713916348581475111565949775309616328831815383381039449609962135361890371267685060508287888130356400201740767644245742230540340744825967046693289133989040806742021557127939356933639001215987007149183186739779676863107973772576971406379719469658133587555178335033241213721004329758232142390158164031500240221097360511971053585836722230956632961918843662766757792119991038941165970123676495591863963920429641216328287781551236289519044912843377132531616889779927470014371083974870244186426924280822999813343756584930939070494066020102521538827577405266480639276089435004301893027235662048934035940760128492487727321104899820770091200773145555134817248166390546944507269398797843325623039776378939541632245739515467669585411529496190100168149917679627237649829725280650955127300621856091045970355834352601922430925359720511693595678319505002692971172624028621940784397831029466887477195051065963180908214101581371521170574740192463289621794172494406175794673085410506835402017552520858141464041048825481196500576911846016061893314341863866881633221241381120738984869352257110000669175359867251278450179742570841331227056023590499167564966337747601949374365847648531034757887680370564136252300574849375572781271940727141986360688947630356772207501295254490848182947178051075423622598114222097420477509997811025121918065677762356468153496071847935968477867143482116948339886949683477390874689012552092547848307572947611072842741442234744658632785451844671327281463813465051612826227207910017101062941568375236574489369771308871797672123983791539719636606898753865693478786144332925582855835388758465237235212377262799945618162491482027638688138893039021352967818805965117185530313130119457675790409267708631094553835978820608456586930573992443044636485368136947273142828234611128785352351277359908498677040466383489836204404170729919790716460036055151336605347044705244655728515730072516661389018565506475407950533029517397127066131703821493556574687653463182210559359951539426988958722798232832345609030065534264573367358991099059441327187816296367924818870906671706118216633043678005253935747208777467133185561422471294405066635403604262320392833021558499568752676894161248938707069208921670779977883728168354319814086467096313788141163398814578266974945250319754595673647733437742099069310398666544492557754321939216462178003627639850714345653008422502354459527485207171554622320401535919307819200938239082542888827581602546517265941187699151360642684059242188415759273853347615141327520911189651954637838938842468850323057749124533848166382343661536787463970083380299837274582733979679775204000087006445504621036530227227891015250319867170752857344211900595803507376417518800133261159693055486401847773151780931077252177940565297777451304575914228641804738011229101644943849530674360280509387879510040608096666381740706881502258890412702034105129113473914104464688500184076682893586422484411738537941607322908556326376049075728876489467585383697190109464253702570443421520971835399180981881889311898262880945210102961270277672909721415285474811810685497261272921676578246839625509750328040411730381885513903645231012561050375319336925288603100107939919766703071403897362721926611040727498183168898250748220183896590746180177841014713454783511238314598175205605275196367222231997212285827241005306354583787226419790185088033933654475621223585322883470703483880221050681821200440495533647446322008414049959746016770059093322916261497491562396684602081496614452961931863871277661804155213605614069040491464680673056423582894375755408713133562673234094903376356793795148674718745899231476043847730995039135885461817564409135328947191068763438869043915880709893909513510145686139610418737116203189611386178322252398156520057443165787354988541606514395484119109697140946765697315432895412878530329657910658856362298886172211440769433287917311012012545225523880919065445006834868208644797449808798075410794257754439018960391741881877989814534275296435566519107611734609728206196412266022162177167051379486389924653762857996359549527404622931138443197101849707772597699338053323518365098230063277712539188018947643691084036451325040656347408348067460984063681352431848488124690724080420666325109548312753730439592399512187939904972988102188543386304325397002020325456226933396922106103307299134123800697016199549570831751420599999002481096824390500121166201816484236392619650542449507627508322565668409378204554807488183377528325689734483577999796029952468484638663530885955128443119916862619844555033185059028601725066705465909467533611682357880761405813859110248114820714629389702644516775670336279436074730761464848406037645973015576621113929410147186802891261331503937051319895411412459025055153798335885763356018828295678030617204054746767478050902870274119224562824127950341239058015961044172684087757973443265440929118267866406670258483908713335831330934904513079231878309740807797886360647775094167999544131220368058166181901635636654673404850261875705398082736036638002615409151211135940087908146479735018985869434018851966632891662094881076236027533582030658396820622723314659237235213362475067385386707685509880119692476853338170349853081115442999626750542429479323209190132162433026606925787689410828603130919620671848314076186197028580808528583737374148329944588780663944997166377668770540932403177751763168333942307004259719654460700043279613412891475334946861694563606935372699589628738693184782071495112150924330042799421343415755881997453519699496920135811251109840093974769059550043878960218462311351959650285674558209223505936732967535426688649558890984032171898129654624971078092063565283462068479666191684243740140922760505103725393900296065072932398302414711633832737852808746242847414458912753615956527028216916484942834818477918657986160180438492520871818485755644940834736989760245490239077362658461829808568000084097919115997540587357015439444715224478708110653683288318979048794210493241843177657578479741418062374176238622252325338356724300519529879111327212999046104596725405988058699612290066750583285026666889436726439018501201024936129796375002964588313108546705556196615521548540059779656035104132269938696735032899774639323553105285129505479324320547719440738256376548555733926432669526101783922674544653384632818088105511996567787370591420847155099865936980113136522364710868923295354831013226318084095446688773686869844074997131774184560149535612898385323801572460003161092029529732272423067356635741522052527217291872995621573768035553399312717777199703901483929821558553900076228278205753194886508585452083177045893984448450374925980760230958637382501914554974055868073586356530423936591021662942968702018277799002478064003973808786586264399684212822015910039836030236768217148424237257432596879019353060938337890428294699941555385073020270101699576889475605362854506606719647417875832847143506986718902023734531057304246542580861705525820896438240523300921107018069347702785961670192181045947409164581799713158753576911566885421550272094334097986059839048070209934896526769962131750702005825126409897164730986587979888858330631920917201852667585558544139439266205639725965935215302198856193155668053828044467491212454616603978884660048113093876376973949710883506877391225358473793349706697424024219232051882064337840346476911845567720361698021269635263291132753980873713980395986838363529621610341758368212797994388496205174130024495896934514079464501488204653348527553363126199559482977062235417905349096346387885913226984398091570692637650641163718005264924304445831084094064367488257861103152100677476431235056609603921811305908760042779136515419198613022956909119181456030058313652680284362753418381485229344239459825678960854448060845433351407879326449811353363545169493299162878372083352410468336777631404968031123605942026184241516744375018268525672680030691917870921500331597929813763457662389893869217115609926803779074360071601974497387127309489657575471583288842197205852378161628296186741773097879529440672922336529196294764546906244871553710445006509244312313326118726508082237897662316537124173715382575426150284738614935457656810635849554342140056306259638147830485814746043128896453225325171026093893499117737042262092214766318146769097361633714631500510470926457089535305883940661736869049573929880819585337851648051487931821585408891539200072825963873614594174351330549677103283612051652298016131148686007487396267121929955620037917445080363613147312080363655315826319810497979136331470902581678809677676729601676020575493473103020932188739780015302664257783317255803356079384479234313315946524159171425567023917782594974691296039331543676826813547144867595875278216096732359799125576050211241114376878470694265869138562892070960113488130249565198342118097279601190724725312752537870850168965865121572674174975479573696819056425693137975805540818368156119912592437363869229695941545904446057687333528538605718888812680267753610294965467080977611061112108643376626959862827770312095768368044219832796738846636450743914270099084438763834975540833485093587104608803425811961899619986251467881307868088623444710294404821321649664586040109112165977991326751548625696505968839516317032498160787642462368992756931058500115921622743851002085864508113296078990372116323733908155233800108718248712020776873409067717068071032133628059875225681495051554416086322813016314650871125278263930463512742989932307782829869460685656149120600189396896945651359067525285322749116246990486872269160923714703590196376819295112022473351026937500299773412743327980255775771893476328564437417603344055349485451626732141040891540187026988137175697151397368351245481642171118042486860148914051130454531259963618527226674243781029452673783421833222487090528934608470141627643637698084914165644211105922364753476436343562425850393653785970829351321480875354686321406406024318194045073418794910381166834800746508995552995140475124972130532831830475133602418616212568902640008290501593703794309522102020608220257991094157934265679332812711197734885595044744438254495844843088366559324366723701420436664279439045453211116664467123865446146284160200501443570437951533057483654896558942709430050520298419276468599468320249824729624560470197788114096778936218616337344336694706022578854061422413672747160377789835965553170552281711744704117184359804251181599396323311529673949756478176341324804584104114823062170159213954257364550961089462138213239884463034871328881874810711169342404850305575705215779469053368020466768870253966102486040197528678620508531834652962871796895393944077317658375384145578699924111699241760993969607221056118686235897466589214747252379937369774121157850016178675453045215425022635020566586916819482945908423018111399334768768771824506546274890983501676977425479549132565213115121821144495623951791546695026682487868207331774320073635092378557611135554725584667497750850502147658156311519085438052881351254479257534682534038983610198661309952873081222507807616693815430343085027363325977344295579441560277039869365227403876455622585768287564383693028704196895100408297940072951401887578797662141033967080457715203578821898676492885578531648927195504311632116440806864767790981534352960338375957673187090636837656943001344939624485515857453865229211872038263068585486253734354328126940305495282732195543422978343282618972820205641818867186281398053704794625367560476554617480934834685689462117598792425289513403228814796921028793052965712446208391402558230352137125549711003753459437076477456323748722867057455362562709369998399444753907832433684575417090101289150123628540132099606266215402321503114037558236131214423532675054733206454503034909507398701816921986733089276005600671803758509734231262384809923774336688635160163390568686735812822425980545905864368334141246113895297797494275569474261340858647538523569358742288886992501612347457872529897841303929146314939129900093585252611044937042076046540326152536434522851940329369971458939808611582609773888579366374800187516046903087467788730085703242555082267652877235057613969927943233946682785499611937740303547457308399485959285168212249098142656676711155778035547990339200631211619407248862400727106241224674189521361359029837173184961237736410469075912643698771719136040026654815626298384024057834783550934934018284068675191580258360883844429642470907449812933002819747920116426708391409313110958519060876951178544050065741096182182515296932099507711845779186431696882565241285217678255793945215551306956636618162358204765206991271512187236819049977968693444814590573488990660833924953986197888620953419796809435152372035995689737292945765571674626611313477419186980985354251223638712634947095423979953872846571402960649809559767432510224288203800255074631789827796691572543890353754570766962602077104107150086931509222134064888832903545039725346477812742279011809657807749517626339716541123767676992365119647912458408044660564226244004130301411362345633736256848110223358908304015081858654333580204593390785676949365028362971047907336831304457420058788687502855327210526037298447732519947061590196139440623838701142100609399473990828333425096929659049579374376370307342661861629054163075575348164106434981424305132427054399949283517203603115976486580423745648588346239570350690160186876119406596882849014310085729110193893816543063556666655192927356319779866003814101965689368318485945072442088487177602053069590884550705702840104059906426558008085409156923904559356067520814192440558951380231725993411354343619945648592034897994312952582759327902929354226701795774180815093505140077211530258565879886353245784045012514268158996605243986748477697220596264964651545973148686880362049757608569269509228524429374674905814507103371603537881478652166026988170454528026886888797197948275772536570456679789182601184927959576497601148941511503694894432534634535509407312735811730123494124770750812850694068178958141264535610261172090512312163530074593527560854051562965187143060619271189002393866095802822826624305903503986287386685058611772707490624077538624364472024528500740047479661618162844088883680030108808258261509521725063127110828725145148870311418413844620288364108504228212083534724451457710651558960531566193060809318746060412204307051380338628490046771827270538050173659513202086694501884631985312542258929302566521741223339513753127860444698291226799677907733547042845089266122673867917578630454758293936348414115606732149496718469036153114723221777848909772163998470361565864465724631549527617463428747269397061781889998921393133727533783652718660712360229949349731794616218126326250504180022227820750039149167363360431971180609247227921092678200026968321909874606204022235018938521437457606955221168373392892792208738427700204323979612098462702470429891027272863482570119568467747273757272434294898889995367328893267359501445299658148896376683150588402708745791645958519649648573848933367633180666491705053216774506387164798112984197817606679775242839888424966206085083354453501007731021699626054281243711415902224811482007778689924690624106268282686566579012453854144240472241036478971490766770227712705491888731047974256650717989350201334925280900919523179222286654710482982542734580328384110640149158012904559411461907642011279914136086454223720920607424981353678605700401630756003841056308492005069899726632022981118982041118911134145564007794061864754835890297139337140902026387401353582314506579732999007747297948757628592481532458423655139986266813444995341974302661876935077290887217187075807390233187794785303952734965672612783345275061925005178692450952259172739187681057349330120920948888331161832541880269798049901933785589154420043286197625258522450427450837594282583274592333290057542863033280606342172792247384228955199348581770899747089532733782984352807350739621962136776503450089401216761066731523703605740325054595795873248791391902368362154012559761566568781993054631227797131361765415742147259433064802556055684616309770979341430409483336999758216291541052002986856688350984422502638315399418275404536187622611458962043327413579849785486667459361816688931209592515453381536580926841663377490235576593203054173640341994320890792538075677441460749672707103672563996886136852947435340171465017686680623355849715857941424953631484723304077650491649075371554444550193851187350819638675313603270042823568772285366123519568662304968501183907775173452880263396790304436874593768261215404054774218906185113488660629683825901924742584117607570646247324754083350900359045689293313850578132323496466409124020142861615228002652887562735290016798082076962718796715790700108587987069125670418674964442376201549226545690800638262181748769067739337849532077347485461741299914763743989976424883424801148008238236879610883380338737910986365406808555377614693760694788431396824275611186797160760818231952557978355231314540758571535852757709040471404384869947381895289121722742716605731166660963666452239816611220008626203643476208353754349857905891222117532828691714567669465925958147818161479228095750106530751149650240111770427730919183241620371381432148520198340187313962052611272555268411992208747833045485105407023469156077420888038413691516568601733700336035750597693890601549234963115427485575509210418874833999286617777842973370665279884754644060642247064868278476553939657320157218489101297577216170233903146561518602522748152919232901477237541427973576648209451365135296682479726119686286201367092768009074322924090044629689790265924596561827445036463860671978261679474135631331798862981701030876413396585194999327108259058906168777021173134556491658392970865678705943090187739514867703273227207214171044510472526297049139550035941421885255657973488381912687122951051955693149525271023453394244942450772241204746574964575989458362515897351509622840315955509427014108354672192779779500741269167169347974433358156841642479383390163268001828022842688143364776960198199467752870583464711030345590456239761842941577925115447363866328249438331366449308644611938631566370015329186122809063112500376856642117345780209625739462788492645025370318100394683830028309967251008724367190183342963405672787750589109160625999048001276916107145828394800983597999298183030526855862638002219109474465866782605848756659380449906296650147779897456341770322686048779243102460895539225845863462174559303585383255310290321575003603443815839542106862201561431259496045204013348669043100635941911498581548277325481622502476880304618145713728634306702946198098900849698078982175981292329202866778137564737544856236051451179329473906584533923301817871311176813590851098384049697295962769258653988548511534931075456629120994640243628058037763080565673596655346738639479352436621479392127336836690392717602364786475912391174833689246946622535362374735945189695832362887298364136731022446343351400093114118964388788769062741352555175299361781884514008790935482259820578194353142386805873391888794709739716736539900324869017108499597698615356205845583123018374633271674534200318959217933339348060761496935049855503866761935248523021150372968070611185712061162815658966418968936464012981084725245320227106481403696653523658449871348752527172872852891073679990507159044321339602540891032004368645228590933204162212106029211687466130625336756727621813256513287091265932292416070542524889440588074663034423468573256021628062996305760725145940288868737785050888392512574875907057488709293518133023216663962230563042705121231290159983356700294570761842915748725408131209437656841175895992997761001517989304809843974020614667764521683431003118413372212836591321039888543045128604110856774457682385469898634635341920404020733236077811808732733963909225197009528529199470572817089666911810355356397078887830695909971106231814758994962385087075078093597191201086229143353803827222460929048480002110382236802062617900069165540841721270530992100982340125655634467380028292553404639898265042360819194040551888657768572299766071201855210529059194463392225872443251248306956620750556315363719860081068788831806813117953398376337161814163352284860151601950929600639254459420655037261338473946944986735752249536750804168032161535209031888583182699446051572183755311203172312376847348659714633090510386043461697028311115845483359991430561101964096575836198263397991350410894664996607459191680492879419139230436625520727987886367454846221616846702546140418846362415718908887105069709882144481739660871868509452548386837561183429006626325444281492271848342341438233732738622591808628110696293265127792249914591577484480359511172210181798816995868911800990601924089957395432615211247203782271486537151033580201779565336588987852091707515787798105172567681992480551838171875818799594308726356370593924918611031245851787334267836798312609564571083816368675124139574340854518712758779269061685187006298249326108215901561240980340887778186679276234971976282661720119568902470253786239352841573944677091782691214045797719224183535507646281850106389178666742044984059357688761598005642722846816528912898772777254108394788292948038659913490414268912717831744059572270097227981347872512221882235019953173911204521031878569164078948515408644527002198985439027222877584890960641040984436819515617237381369026104261187212571476929154809754170006991967180557489332617281670410722069913205839871917811661248118559666784955953414246606603776316403821661032542507945598910215735573719032294288569169032824417129597955366290718523119624913671329334879329894725864654900819446162870627721553115553277787060395277070047837064025622542248002050627340349137410736293658089380201672610643547282463409548471010533863934921543046018611568244288103603881446286661184828434582203564193230881574599187505478152718625382367059464465278980855243950540167372998766798764118491663691879478706557582220257256789064634882790693844880784564477714640492786882436691756071506964354105343852840215821482864902394058556188151681719780436436363893749878604236727379765256878549654953458126339202513519938683445365571881499841636411429135887324789125329289294877335448883718223544564084018254171008173119059223964183173821344416095743757167956336165260423130627369755225383604827266075951564909979956024561638922684679969316604746430134495444524483038216890218985086705051178138963112562747311981171933852667499538828541921604786928249485561578383750583899990448139788375679337045583921602377641371602777411700426364769522294742733009942285936275024265631509343825741462564280176220141870223724537778949428917683192220889618363571700109166465779869175482216538391590037629005089928949572251307438563138499830595612874320120497465005908145204133923795861810201841945751159751566470615414604714283857553545521017208988251306463670842702581078062120275936397661433347577527904288819169705204958724781932741125507629849210503250511038771102005908171121940072492391191113856025051692153703517977492220231837494951904183659818225081659370058309800745997085201842484039615409520043738029733892912765170302492992078265611725633084003138355908521427311026834965288696263338972975620049327467866850166610255125436854191934550099011202084456361333249580831290660019338118397919363940104205901231342104373876118325411229086599004255098028510201405418367216761608404731259542615196193493245678145106094769497442517677584677996461542300301841073155284010898514085357726505773030281664044486115778440067409698626432634470010807576304524681803695964307703437638291767094839665589574029586747469520006640951702795840400048728768614968286231866824074665478711655207229709718164490632392067800329824909395780625057486932746935909304977926678156224028631353371975394062442956367304504042877193845713892406577207807235052126048265076886375904189187537671744183110767789495829539375204506920360260728972479718702142119778799177916769612707692337791156846325492644652601936370749894900141433048064716406446661436906875976505374312182952717264765122797861269448567131588219099180889705983627982714328504744310043286883739544601802912534984784789605015840200872503129567813255981207229412964945987862627217751972708405779052885481932503924536381040801192966903124379574565420296761003446826318423297366456076536519538815947261534877264888170007583027265524611083747771952813658245735612208645642800223588289211334882110924331945802889583483839886723013507733672619178516221482597992420388379165540424568933112993719161155220691518728976142997988957107714465818850372338795434040326875474880129904463566606856839808713140214525355111782119136561756079893481504942679121157274250350548202945426933808912299940046351954948117997570651913531328315562806687954605477085291719679793220313183574212553781775348878593909158509505434236875300590653889035556573244314732008748968032792639398715221054726512959035920084576060068539367972788275451697248285278892319767089448372281878073243728315762673593596971279935601597782352392859154960707897815654326728570607147826424730576456001214417876328858560001970877996033518170263393557338451977674597809168077320613537108562840896309179401230955539271670756914025685429563994751772607513132818855449363168841091501722731436776141794825644931841524751187259158051218030982525081144938860138260811081860237127254787971451410663897802907690226155465313619346794205096827450003883871134571708729722049316569138184096106926368153483881587257290919792902480994491089945771868900121587587796931486960742846527240829415271928935552639972271935823768151999176510152391165432019535873910256677790097759852315930949259884473524788695965895231593237147058312337877900546270993792492038465537503995201140172754153111004248498275051699082026271836882920114139949131169068326294515848736930439609798341943222525295466051305063258052728459848908073644348209977290987067774585407744150750668506692942311528928572900910455527241435591751632910953140176186892377570463479667987870093575121825914562869611498992547631067604388500298475861157788913492153389075341386309521880959045467119544417691107500454351281970855967223045649392140391167414721954556314651309119972811141152881270452549575713780605414290504600727359631317912260080592460352160542094387394751802608967347738009272174134033185127324061548746001956953968269493022462954990604064376456809105062437366783136197101433487185225741125473822025046134172309244906244493585850786982914379185936235830898982106722086416389490037388982233666926309634412868707350275204410454916598187900957507479643810021794894958390759439745970040047551577779688583956874956238942526704099891386638852737370298610117817653097014452987963096094145355806176480455316403276825682862369303507532627338045877225752963142152579124920375176447320111366049300660716429918753745931192147551211385873939394341583567544317394988716443259413042700236052383592323027133989868800675905846278775017652407292066286751236027428523157547865156456207030874314451773603707562514472527439934044219390787377560904032475862040866830558974956465986960614467971728378228500073146578869827630744280792154336083255968470695603517572035896974223825511730282725884905366737130813543865392289631290910966543241193901868342102646231233374762829724604555261306999560600449537399368030674885253029816451859789345111179893707218797202446043057657723410905528272747852156687609271777782131791111654345402762142849760495501669154995345834972480093673582526325291721335664407403884875082429598377277741252654419480281342225189347950231530023226042903126291567586011128463221658339070061695157487324590845726288848718005158990192470942080470699422241266383843141831068443367845712128661290764617744334015074649732310222462224512229623994393584025774398657094710706630888431572652826492481240766894751059536968603738913486261859661735257653449876315849595321463232309216656520586779638900875273139560781417410455128184829406938484586511720327875390263513876130214227706936311895917200679796844741523122380465381856587748290938302492761929480859540070984577274328073664917700375683509315054398502547822550740721130755386641391983343351660732684752939958718753437791986218510765025742234965458234860108266844186275928416653496430727499932803275077421526280168178160155312902685806386436653233188693534491973527311079185500965343578834702449296763689220872357192602252935847395558587838221680225286808663083957149262938286184918565953583284420946421671205601312576139293791015759944023722633503955975501712448344587349571306245575862220191825546081223702808517899635499983446268596054201176456565348742577293018353457948777526321936273105925436921486507114716470847178086900057931650667218983638329924799661248208138303774683291297111001392132152535744173992275703367875411754264801257148106310059989748611254258588636705935917480647933982319276184660214929333417106882360168087735634563870771402445839753764120054242016060123565988429816026254110909840624641397885722219231039394863048237483800770729533048498057122667021370609141654100084366535683125550823994218752087278610280620768404067090180642494432133097645596516404838003302372918820208303970215968572036961481461881545227775641702574726380601025642321910809541224008019993393516009555878346382220334531262723460582627692916605849505848444446403758443197475613013953911471014781948477997834998051595825616280704803057508421680570703954143023834573940561017765422408205053197665819824829978136070663656187277230005974916433595261672659489484092135919893649327674684000404738332761834403351560974299780889026780809936143624479697744029652547591788835661659482076006185133253219213606647168757318607459064092563884440891705867289411651930168430396940044992459267867839493208027885531140734713244711294225140728476684307052302082147853037542356814260389085939441595321991917048755401417614132482189969051423614186844190526791797844533892621911346829283610122635221654952429534572093359691661786010011617201653976969412703971611972032212750023658868097976450224709961267420599686606790082196160037296430780699583116143924773084087897763732579713157153534602436127800715935687226101743497775253592306355290277170439542446113891272453934474953455263584140282402202775516775914446580831398994388171535193055901942500862151901120113845951929717778389344169671533338462549592621539863316612147641909921456700327848712066823320276192113677850326679470766468361251626465290836114906859597159055493664046577896811883110570646565706630397222567827888253650282427036276455569320447644244139201941151501851157610523539790338690157084496616026597546739835060297222565513169237388979824694319455301880102990311462163594547439077998201451982271900791892369581281067546466892258998917279447125378202016277066272450049631637446488524422707611489333069393903997060220002826012021491059299274715870070307900396361595399794948475336294000101306460271821272164536738674969548343928936626315730442289686758638278602571268401433228239075145938632958167549058436745948458259531399070039884182857450370649799989163251015237463732777435291900917464443294160586935755995875289411714851954704832061939568775208631982319292186610876180987245159913680895696463898174130338160251628409945736179072985872930350354504544795678339128756129922726857506300050861310463661461305075348864150715350053516888742295336950705655646361248843248165255503115217554220488721629368070226085857884419028566555253297416470341187359214260913507160257703018687884617526584923393167451274975552800675458636129749166128621987031947819113663236709210838345317575765254968731637500063083833615621221918968746631706602807772856336761690570028834072022097610080107905402334161325293416343237441903568021238865584295405961056437048587632141315827004512904642304832823761410373438125961730353962386834032100912493250395564631918676268989705508866686455510475498973652659424471593243127038686010438270125839475426242529268141826828656076861199535657313750584199273839430975538435393619784881662020616697447512497462610779511820628257982114628102165808774990128221604220447937501208890437256629205878535948033470110687403284834461903570108498001933415432882935814252541855469244982528456162768684134837884287756407701454024158305690679839919466260896440363654552822996492368641109707222437062567161697259036628516217677227253096684695859820148430613926549249873529420587520243861401376436062825929158227136220653746299338001511929419071409641108972957870908060270796849359097016989272483764536187586288916537447212135363671551777616077842102929439946311920779570748704581649788841061079104907128839268101852741404956352624393472089939891393513793717580401195151608191854041099303284180504417974167272972310822051223591844974193960583466496492583529448441301173266076093617679729403628254117040197126399579826747151891880438680956101394777910220924765533088687093297328430921223290035129327290568001328538735045341991142140894849788958807962816595956739534016154861221168174656153589959378526958996453658279853294588567723831616882312391409408671147720547560926325076197816237934102644328412198308823048842375081592960904260321465597628634763576950635156847560203134496612733014117715423154042506704012354795946370455062552302227435041208223072473256323440875477049099099430760300791478917116173704445640601980879715655800256561416749164404694045315035058515152316793769972606380152532170978361001922782867842931356995517477480081842694836014521498365175572616828143812634760175512512253394644868486510205698667132364677064113246001484370318667377257022660139735518863409752853421564792765847166479112226053821856022817519362371762435857890505119868993243563615474941892548225358578116166425031330863132098894710919214376420549630637225187983115286475425537423122740362953927631159743317439597748605978680487682022169311443659366311575423486036378369318109986287831180578320697208759343332119499690676931865202485391926850951750425165736650260517468068767036187223068680523642724760825586233183985383118910407251555072522962924432142304548212809741420799354970247123698902653053082068895113046116649066009850100425574817251063291472984329714563222373992584496595724896349330761436702579425437090390648214764550158502175811026076336654977613495354946763104215258785772704240066058130912769337742849366620713490128428850221940033466439947467564391083127613954279363007841431586809927949333844542742946941186567989260023206619651050138964573245706056163888754858634036455041680414059029353880467446703324672659066288452958770891623891847678533419319672757107487080459307675211871548285129747550275415142539100455363678936914935603950048374496651123576063175975690703385432635429616555342339070288172698394601957093423779344987021620883621895669471109506699877191879809776932796278083371371143152453949314090636875428859226310230617663443558636176115421253936844338895426127037458177331738606002844722491244318355695769883643212044126978066085663980026454678846214541668515975546896240816245902988415970564380630441905052036307400332393348571010378221259152224632284660634230355342913799926841438928478354407344093557709030197967147595108478687125479167751838760438474349964117651454830808001921903666334716475873622094400087265857231813755791634946193911919189441563315396767351393911072876665101424826371303069334791148940396268698058398851957778225435263343256652639877905703519153690564593652077095762900344727153101096861960665981963965192781702193895018155654531043901774328597139940011138643513257220059568958090929830534674120108351599738077903476713720103117258682676372726440673559464246418552686485467088035709572692831657804100223146039922110305778024390640179042671567920381207117341144819973536152857784476153398155617954501214145522528978404262314751089498812825777958794794032754054473965674796788436873461892347209413451758546821758860417279554767302750728321712563176982968695884461214935597818729421258070062762025394703252122032939511269936627574249860286476886603740897232374410022220666776254491037224992902636817370423547135971859832361897513779822708755215731860465670352932370737846799299358323424911315298047727943344621853329297092204914878051734476144268446238344126061443960063500976250197836107719000667227023548885177159776494174636886494270477370349001357811515623366624045152838174332027255167126623298171780645292816059548626524551796188970769320915056820792613475542554329568757877365663117356312104647588960297361919113364072151777816435139055935434063781330183710618282977949839451867652732976064786146707708726609709940771704796788150648326146168746719632618075063285668875485754010262866337427230009679982032811014970639038662050254892272470750023224380724678659970241768726558105772004623282647676471522624292957973431312037159925277684933392818718456656476991057808963570147596840754855653902839798780991250125270950354954430097178999727284958536909932473233326821144945482277303277812651770658566180272793769263417078396822214583629329937894189768014632157227008129674602496592460750713438107096960390279020071527797775674715111442720914810464762993528402477441130414940153800622572798968189849864428775705380782094090523376859762632280750920451302209759492365413105910857048424743073974443221602238896128764343180752248338442897017555808835498895415530364864251930694463097969492686204038836785859654204012968118161861218917870329960311977936268752008490522402045324985963982150798253240581568926152465945062915712260547273278389248311829604484816463075956651275706918118371403539209639813243409538084324148145556392636090594674417140131406007406873354186503309050885101725984618374978156062414076613836682124794563511258942150909484096538634900395216448646584297159819349617636549114013589583057656383159546530830088405606430389342180481817026926205989842062941104368436611004410139345897826198548872305437019031274369483377379974436454594525470783225626402129713923670908080971745448326261500433184528274204543559164249488026259488743500568955914402614075157530039001690249594212986932074853424860825319302333262932428324183227572511101140121979106909433478122033283641336437338080589521021352881235628255381191516071646694172938725758311029042838178871745988670081693071831923222251287054617735344309936701667414483465441737621139139599523355449360978306845623890982283617594141738767795499660982373440476419326134250258564731048692224237841450345186369670798168529960506698992429891106171023428620083465821452397424747276456185434257678289774102504842733803321366201037992902014464843067393794116475439463218987235448381361819142421971724488638369656943472227800794830557239047143857689838520919993866032613218387945466721324851720094752192715320515353350012588230820140444183310634471539636978811684360550972812161837612340285759251213719698582070602858137616981886381094873988184069038123811156382719992054786024187442828615879403280016330378111761089839325931499540262393236698340506209851341899020183147148623145633330172492156171978895685950552140713173394856756022200387634951493280084131693413365192148022773518566414345623339776162789535260718107566781655325490950739281050274354136191663626617633825187288610006934224597909854557184657999525903767269906770976688212387030634284692733836644148078749828503954629862185551188756929599746191982646548096243284707116713496302147142936212824774904252538124817052740752281831393540142615808211024742719003703903650232569588401397268993445108878481894085385532847567381684952844492835328699218705553318966639004968501106809691421678560285923925527743788428393314301278245518727371227888744822089126750379014651317614248653430223799106106451929780495504654194930654407137333073344191796425745762922936678862140827377765343467810475192652953467552835778152996168515388459592554311211418967190868858961969321331302255877450754376421200079853927748614339418569780394113277168179811974754807964310640880167111158710279955307986701440364185374294550767580267729332738014135933269277800748361103607078033768736497312429927792563907004583208556640330431666705845255697956784632142268932341746807349255600108685794346593779639361558501057989430391718846968270581382553179321966872638316089331370966418542497164688659465000821655874816132432222806095367619906658902266783118535882911738458615994418100551315621341559550979448822973861307971278711826941315608402983144493665821758241669149356360879118110884735558044682666221412601106580333405601725790820848488899791496442940292149189164957580455404696832737709992919034230788251614279660485838347314208405596988346468824019239728482519291396818709567794388896912366701389916427440017022759584098749450085080987629291768905443799412879669131102204365457158376441437689661824941221748148660789816041253118090847683852300627971002949641366828911192345994790853877778233734671210146805258383595278512205313113974721883754468137545516659827513772295799686353321947720213230864246485759558733262344313990244675463313547323955135945011429556480877628573169545267084182213201562698962213480680441200099812037977573745142027005895036528511006586901548893103028827198336346829136741293605153046675149928796760113463834867041400033290750383321267233129162013565494487544129624362599960352620202499508349851610540506802331564094946754579245466587832186703356193902960948058801051411584310801479048586501519038455625634789367870084961454703071200358098229109607717906808131816831116498724541455101970036232229972021159375703321125563748452319168424483854957375585656409827318799632370335937202625300452617034834251240701852768656878900967397896216151958180498309966345812459547819956957791919830084809587072463733669821488106554836365213247713722678449610698523024268383963140294154688004705493021539580727321118345440865024703260662495525986804002450571973737265571179480657918747639052351307391170068637223488260052472849160580614853136333830690029747111479152872336042971215067002151684836366050524007635694525763218811131922603284694776797852164347221699466130042212180357385118151895825128158541117409959295627847206050791180990775163872513882085616512649854065232862739688513775161136961069511655873092946734011009181188738754751735908744274466727878753806175091097071882947477270503329465424282231550015362616016788062198138232174113848120916688626637835030738729918938115507278926989447082725472487168777111201050468452216481413112028563699173860150992020050430387910078241342649693664687957884898520271858429693556241738215154741802379265508099598237025993854402058412098831495202668665883291394477483138789062136231731968380745622312832516523921303736308352659118573477274345419235605758148917549467870220075079851650680736571841983726638064876938263145727329948997900480955589711801633453797109278621170446816422100356941033237836286200821293632071901821868098097949967209760641006570206408482632397664784752213657409050523960875745041089048715556659622901976168713467088599699465196403641964440085688450001641085585922985637168346101757306719094724158848184599736277339985337609215210261769945471251981776589693281825429563689631253794481629781327228338071810131312973818092686934258469491248240448908110011976059489488456088088751859287775577858155575015588688470710463372241808204877378671922655538774647544824714224774473945974766653115137057430364944134683490468661068701645065884756886973390307734330298106149851156806179509589936149754547203861193583278231209027277410162368477270613694390175617548584574190530967260302685335404276837550295867285883752475431700887851593860079444882768121769664333871248015332922178426528115758447969065164278422834772184784055928014441792840999320707869697811235617350136148971686944643932096162382820989368044493620339071955929393128581935340249352943779967272977484091139646480832057647870522009751889851793173457597105553154893595504689362368580568566341633717702706879134938766398570005381232916180809422679999667200147996238017640698686881613548503841436521743872843559121736605905582015617451497239432234993468490365571702816194091541257405388725970551332705002682758498015592400173743447218302201238792418416693392704371337315993955397402069312355811855428875107212542207526146454587836908211919454946182046025545132183489364417839153022651514868134669889326949640894173327554069906313646779100311174992463419366865352946485209073066529891475191553627860718499926387505380821444818035054875347623143103817722559962489955611424883314016283235885968731903560938299134729754626619739823121750060921517008175883019952650649116203123335242262260335033777687718346513346205036563957211567353774304706107034324747627718253032831465764321862069436259430120788217511423150835050397377214813150206332639350156079581379523644749582751274095274984653126640939351994143767122340043942129551763402170804030905045258389068117234714549187624614070109306122020235777386028745658829042488820039247775099198463467675476202724893626581268730812510827764466949068436682345557285938133475553109040110477926935941079146464062668027458141177758064398608276199618583310121919533950867976862998059139127293733502882611934074728742396987461465562094853980047789042940461893928110496777904290773800205367276655865638970869365895303821034261247254326261553574139598730849775581013599109466600547642285495069968870357981582413731718215816719842473086433004910747436856057766614546361093570031427970879232856662520658891506510252898361760533086617401202430859711765165814837434009581414088126912150933776580693536980557965159219992233894310849834650865967513131622132938026963770915840715752818117504658131839592163817556767334090941353732097998236828495278017258104545924224411768724137342783824368297471139011029591117228865209035352459627305497434835952975043219740614805487675062844927788393988603630156877494790222642066156264740424395132532036406865718553465742194310447118788671580332933662595292815493785018460544945958918616381816620979475869022957659532065655457592912101779123837077003043722924429757135393709175367364900600075946360045440974920708939085126663597200812285053329836032337116474078604290999030386898556853849374791442270875072827723300011136837051462908768962316847377179445765556597572361488538603725795219099520785887161626235191894008165829989187304518150699404398291991484860554770785053154276362456134459610447623090234821562255465191046513714590908736829946143366963088976017054766430506906162021630708433762224054237895075454559989953993643116301650833252877617263241827777129402572075912036669055083610696913166636953520806000893244225891948043659573610884331251969305867812600312822136401823777682389954134133672534891824385524992650363869311909043846475679960971435653196696654940141829021446364343481439506902718648310941179452768386846647886078047009568005432794208914037923883791128305409904490246774754852166093109464591757777228774145945521885677255468652273149746634739002330065334492741334465924520522037176548028244331233340406748757165735429033917823114938444769006740035672619851404807161240575821421894716945434814225086656391187423639452324034251693266131329656864318040384656456431535318185039488400491314563820705825188981279011280858283734650804166249584184145498605148859201250980937081447976131243708398129695664433050191278079258012065870446247582604883909367579653541138524945452493541668215919850017192937115390767380225098260746026188485470602954371772319603900231681432392390216062733424626330763498110118813639708269169939314917168998551926752259056319270869484227705318149731520120538952927861804540028619390294676251998391818267570331621330062784834542388119455288077645740703068726106765255247157351313363999068399655757421222027773002578140787257671047601504286986587787441748315196349524807283362074301238715332228972069138404187737853860815975385690211527983747409561176015356285526735909944117334191181766518644006967855217985354290714670689578777359859335056053922377463102364457183018538739296064824140573351653874275425794345485864919345080251197574888555781518255179653636401460859898649136518805490190748724119902286644831591165400776646330687582811031336485149462201293188707268890209701437781589973008526931577117620880826696042481536820000259122689154349895297410025025094102765869462617156124054492986724728339698828311333011671101595854673167103379573077117985698823282643960855649324120503204546667101230614634359132735210718383864516126155682624262539386024285920076066004020429071913069268604077721432409475144180122689597670101218844177093186826505756593769893708826839321732493433864998958766053247922918397697865044650572707585446769829508942782701641821067446151229659792042681668387206182198485535769257201942603423201796779636665227187973189779401299076092588782029443866246279749637486222986936492716003714946492749911449715676941474679352068679373155635617832519082502191101202207365480013835072977936775138089469310287268956549525707087783438788356804402606318974434568287324767657035282565575771694382853847031727207003722642099875953832304144334194192818176887531638667060818502056638218507052592206490484737978868338129045499861706426740179084888735695141992889837995582031819962693368103462089429867252749609527182564928367497176304317242605203622516350516764738678214486815646594624802778969553359688131352647976361372700607413457633205090964653291312388217492611887666713501100068210945791140971996565386511980136427173403094856499185107408050230564157048088098442966176180976823654372092711781199725811313430033164235552018156390734187595947161722199375366625440114119467195890965929041077001352834535605527941035016070544972805367737543119945625723922699429444664954196315739502296452923156811893430825607542817032428335612104748301091999040807914017203282888486088950716406126426202431378512430733853843489790423310791616070450239962034299088991985974664890260671958280630899501149098517695847113243735815950488247031494321887481839044310043243431775316207848595629653903009411377050625674269491986803464541866319671592937689444287470435728064297185498866191992713085821663368668294832622643519134319196085675695445128620612922504481400559092116382055308549044199677547550532594176739552611927737271590467593120138231503176112607604449612701453771061846243281618126535033997132761911281966103019220317840840446172362407179111737396441744644273884044068774364108225037852698877110924151593698013256654302934393177323964563227925383242339914787695132543366816858637050578122764460550311522638828235892600670758127237696756583519597446202414140582141983862783967744815021395921983405344021640962461523591403899689296046957936297326404235712872705607572431691789093649253030265150567524713226143974092969323869581813018782585055068998841323115409904279193236358142874823775886351271490405065260922562003621148432155985331065528632738855456741321945906127508914322917080453033701520116206414348442818311066912615824110128702795069394166718835601280027774549783193451695967887959360344333355335121837367902067987541424284335634871614023145055428263555221295994236404995532781439143574683835059843101196656050073761589471859122166198024856354915842195328915626021942744821740604008483705178932287893128910267147200011561616380770136920865182146972296209017143246589931998028976875266324352044123896428524774608996314535022224503704846289056943762064821376689376156912114994924882246581597612854258700987835287024971853674937932695512709342435880001008252338891527334005030714707867610712650252374473965187686426975181749631912768298425421908395805504072128431078819723399270333308101261546267124514705756950086139841013665835060537039039796664999629312945356984204529175910538744868587450581235307829079628698923666704618629792002567823011026594709598443960538965743352453029168650278951823953315932942632565934638274750173899760965463017460701754133024833319840816136526487524550802241790873954904007512033703675614201840790679778197280644118469989690268795108855012253493151933403457949217202576851052950156160197141346470125131249952662131618209831554790764929738992858269088663142778685537083195005951168959443609100973113699244564098859529040273750735952602732441176420330535557384082769702022006753325610369761575308479133368237072866415775698017409934078542036299323322194575112525303985553132943972099331474256057450598076393325023699427730994011986651468752767274295368226999507381664696906208653989191605971155370954859164541446465038669430030952552003091891367441371581900062305765467411400823486789255319936912598883439972376129546824668305820556926597196815340958962457564440414366269753819321042980233814833753700373514252123819127082775732289141336533502860055225085315488715393553937068784275443247900492045205160502918344459558353223121542100007891203531136354108678386103266522518489258592179985167063229598036208771990875223661399386087068157640174327186681692329708270841029629623336562997627413963131256720350705110245489287826926653110614872992062596867450613093923770785052928897129908217758329888277357187921031121419451377404926610898436749207255097069601470239585755295979833214575488904537754505401377880537981596308174746282009177175963712832921366768786434614768885245258277049575177989969610126727397715042416542958870915080497590751881458737660508743043014603633439887499924387414355822426223223626236483463210185498264009028891231050532051997276427589195697266034103723930905701151578325371122074105655545621507381579621275392047562422935734326066735802104700301203293447093636300000935900510544067950906212219577782001561330401203337806785005553775244766855807741826185269183396645624009227012453654202693638072732372067107614511177716569407979791330792134932608255961476536487576901688871652951848968847660266839640728634175459275291343261210053595019161642894230566832249809445689636518507078860995971256714138830719248225981021218578325164121240479343529323960197283665163760536970042437940966371753391162506749595343975740364506495670459035298143156026044244519215024564387566891290770734072657737410109545977818540751636080829880500957443925579709373095994300748070804443828306775375139214017435369439725511878905485386493023731465869572241434852419831909658374247047111725816289540134310430837568950647209159226983559927453236534034971937359245753552397488103959839080152036032103475903276104670900733468087846714847019887674006364247329028623469531363570457683833714850008883911367469038544938922881952979371707585890245001192100746123635442270216112359333174825038931071298147740884330232628990448613204226272068409998470973964570175507766399836800284079601317799877381843211321271092183112244799430903476965104834150062116564287404299643644696296147504439365478755202442983037225475446562253074858815735776616593465860704563394035871118218300721980649916126410340729226681309785350951989865922812694190192861233153796247127702889350008976583873744113502521844941667245730919174747759953101489881003535548858655018556376859187972479615216586891838084450311799120872025346657566054698180376203636153976472126728944808394620533613570955677637429818161251004683044263510310746497548222097597280318700777734917879463125920129624783369036210764881413810500781571341081506012439337509891664529136934374179205505266442295496255751188698520313538392706535163681975082128291863465789687244252985053316926912849294707830673243540142880664045472633592406724084222595681806757385843111066977069787294469308311878388931111299037370920920176669375475073584572252239778798510858552086641044410061076684243562031847485529163759659125250908062549268949613309990325250847228864826837258648115376104319922963024516851371330938948852498615396449569071417294888067433555295714439597044410241195461967388101156542665523635208919390830326864981750982948726304225853762450027853140186524605704818498207261929192826595695277609562124110467362969630432467558926649548837630259517552867220830912668091253580173655482013506729730949258300903284789500890267416930179403842208828586282721433580806197556801248515210523870475746468336390932411581104792815229936082307123066217330210644865351031964253394212575043950865948418512157711483971908901137941177577832275988018828811699878822077181017746755872823246103020620921296122766207595055318912554952673104532495513357582775519226247247469368983168563472071132516716963642288304237790746027453526661150306512941712050555917393343802714676604066330144727321025368193903736993540436823109347232563051530937859293511699159131473716972032772590596147165975903959332273349483093305570285294914824034451456727343839771730764951591823706368154500046336353746494723090219793573774115677640694803387386871092174733546875826769019083266836075357826024685633982583879718960201529781373606371393544469585558329493216444986708391705205725890431368041357303799488387872065232181702214530939254121412004596301688541089656027409421120737795903553776023254283724835901386279884782212443023035000812538733823860458843897323796212717910943767654837744412705828905421945714076045185238407935026614397104681989044117218759227184767772562291992298012819157991981114620540218305275661587705698634923928644776609070089455530700677163501561166854452883928260731478211500874737865137995020553783668564393697267254934540672726698007565315397127939046442560288989976381120986812799165794040564456388395100689252482999474630216362085218984876314899596071299942682693619682474001159561844200778706906346950738194556210178604525960405313212563690166838474408375498658134743613862212625450209690699248380812894101050296756321932465407769527818332066562909498404693572781615753461747241531065969518310444129857413072636136864887809487886002135095432090013857643456867806987902142643643419587529871604528610436648726453216003199304248305005593356096092401786967709536637306727565285872296680942919577764060287729000092737798330217607310284506965740918174343318188987140313037426478552203584491812124714303481904555996375718900698735342118295447763569319732722232125516775575276116082928371556193400185732783298805535543054388679040549236981477699962994495896737125431012034189487707707804597553153348616369500536916125913330519671169183043554236196212323560085805012291173049816342415425998800220346580006934759149783768619372661717237796484407102146451200735939079034192095737657902431023821108403878599449926808117088342199581255975375258429567202306369948308891889281184003249665471166818432463061027307794992894351153221957634156055596641101866588262504169118195829650511474237910603193370357500036687360560607138581997123698835377832079057292511800950557693286407213515180785874697806122751696689119190416704913072232741630026696989973782299802867601157603392068073137074266332248698910896548798879621258211727351456853012861595053992834888820451740265604952322095797498871325776041614289341667139885171407651057519502049123794905551474318924936298234340021612250779253536706720341834656669599804287681789607818745648927348777324989540574410237995632246582847327432611806077640712554941787073574717505795598702020822745956305523849640193010174693207545550248141857069327883620450004685436478319172362533339445893881558159936346881380937586069863888943477068566928991267929615396494425674868671730718391299237687594637788583762940496752785936693847466800966915812500142377766931706348880500711925529692368912990318674205508778879844805111915598766991332558385768350529882246605114226381727698412075041921021287360678771390632470107124115451322406193955499087305079639668726993816655385911975287825618893905051317699616233341961971806490408588875319847872353751632289741332300761107175819873529092306152327143305857139051618256168110694138957885191673144572993520671127139417304414660510118093997897073459306826897869831198839501697872108353134811560787361242688160303694192394118444853057088103432049018361496338412137169099087310591165449834599110275754738670577923040284149083521841935977492291885916183356336091010974056179989089837637392238678461318534599964626247915421044762058508147921283674508238103059619968010109702858908933404530839688168188589898493362330442031540507969861980547197407596993892287845231954071481378964515571797699659084707364100288097261128796270597958293098576078089539371791078928565873459386846165893694570661942316055028277846982943696888444662897942162705716039793133660977122099686515679661735783662218876591880983376147396698321153447057733644671019265687183018432153695088010117204883848245589585105572218422134535200413486026913772885182646483088901329898310079361348487511530602768038093406834061420304831905724342645244139480833405773490042812189184004606043829850017641184973649862546255552996125999078351755600582518570283840212375494482538772110052598810429826138464019554155572302739334332318603682146441762010533672632565876181708033502615225861334372665579473064528237550665391202582668500230705136808504476027461909215086402735201662777205951574157531692579946669658615117103575631313428724494340529629982851724113016337126642945964738450881691487933338555304179561386566108439928048920927074840962660070749958149009467851615767126933612513683255550491106442316793586396115478592460801961838582647276081886660043417924822265617723753229564224910480954267606325236870971424869223779981407116196113774563626447320890259931888119735858555389419302634047188218331119828320808542321158011168509628583824723004219028474736381587149556204427882049939377233450250575304997643930596619432343010019365040589213671993841963137172950985284575706834352113258422911632434148575205863997014172448896955010528146782096205398858161432454283010826635318624829466151935196756049633787221152717524763564267749083997081842434745066414665550427086853032950536026080228591744500383306938422747652779337797702053401049464529531021055719168884052109301570489854791271038134495728415527713201895600722123958124888438544308626336804652849696186392237690283122889955276007930496411399409810845254130331545814488418632231238019308729118644881750335187502322677548415517153709229461107028617158203874475096138617936472624881999342859277457204205733623835746117666743924601791498729806145251716545509637859794338554785881231323834862237441143248858214119110020468754962605794459065122327523735734399765080136215443965653881719936944942089934038290448409574550567714663194923474944088561324967507090177024906218371895974374742045844790682045512425653135150794387941788543379274116778276485427262311542298971828248689656221172006718515676958362532220948457053379588752648409428876951843161040200297216082856726134567021181483967321899816209268460699263292229398950458688836807408402202753404253380654325082724048010567017610185709829220045447267767859865890980321793261655099749319744858715414240307183758602281341813214438178138616492361125818580456958628356383770359141886661506783665540845260524817710124208730478198356539556525816059826805992539318981642318844476329138996003668865140895793002487735672220987449358793284708104343961576466143084258299865717371861024926369834706396444948415326054359315055394655148642751134973259313819925999651676617554463124538545095034796855437897597837984169362878160700153651563775015929891181102185821747548028053039874744354664925994643218868658792646735739065372102441123348146697141538669772394485973281889104202147332492683671793275015910487394012900965951469137971960856552678681077844223074450834556128379735149010105797055823090515718610493193712955683217264796579588185352783444493202842420340752400083779789291784550915504171978708042803880071478125301750609420649677679446423978238097379577141442851615959303670692429228080075266339630565640020456899797924151436406458495553453319439680120402276426120010217721476555763761749618918674924498861892152607501261062402334097371385622043481557181448654508905067632001842018463862255280608559548339134783583407929319538491449375461355179500207129985945091576538002731531829268036294140715087641096989554234168717252406624903211394891065571791542112885858072696627312004557372908840949654825201135322542193887208236630013510227194298993610956553998859674109232288045585787450997639891419287326380946619706202527306406579892874009782088828161186290370799747209804029057776569872647841524686763072407274779476243995647462651352502518916882974639588951780027574632513033064345184894091251255930946340315325991176963635395971224708537063999787763868741009239730127982462511508362915761087550594660929131650331950128364326800184981768712095433167806150825721954484593400930913895252107808900553465946273137061683129275905909334888310802727941366320465324461720978489035407732391546659101784925426243709000784390060231873582790424220523124052893917519028846285174293762240675387721424992906050159562644974952982953594633646000538200484799134637229293743857856641175408607882327335582606363968779619476575073738008518829637606747125793683180564127055124695094552121467833245405790578265675648428810931712917595367691158946261112694854062753006859295813365222052852291262452407740146137442990994313741874356920714929464350221656583044089101112793333750171872347050210902331039257165400741893058418205191296633857852383506021501706118556427424870520897019479495931695833694755696070848234921013435643731530750774021419790200095916353917994146856055781446903813362254443828346034841286652453028935510123342213867387298959532841765697815266105044156878960841524711573624637198537896307881315738301714656156306108811527050148467572117087893142158869299682691502330013364820959354535244310674355137652677112376168774075805878296155090993680611932954661237846021232010210745889218301480276491919481679941004381988181229392081291259756161130343397087553784672126596391116108833607718614956241253813324218442537056207511216222482432139136932579091235428552442735800291221853365788528584880687258694543996685925130448845253551030151883361659326199633542863905240598349905529962388979604473915793865143572131946303111212910566677283157172543517098528957875920578030464671437482304652229041610560484855661345632019932967693030030564189872199897114404389886632105224602367916534470267354788495759870861697677490944283391536137349314136100426957021113130416973791557658863766219164762017613101736834538187086077739820918965661945001197456306026952603896286308638555008673441369845563467210561283215637014990237082947498780655719966185730742205668054344438406889538481654238345497520002334681840110830749898187047725519699854969644377315677375132642798461401661904563559875809862058669304745808588482928236540136056956561537933988965213468208704729902101399895799792144581056501158697803146879777120046217967140635324916248975957090264522388887823400416517555383842464644968419429317665394283360541477143691786474363227773190327135494384249994159298655232830762167860556308311239825301077210376880368121243387417194890022208307765827517078395678542468719335473098138866492727346466549814198181172600367123193656724218581024999812895231579176372723165401208740399613009468804793583912388321803299296723241255181844275512438714896458672222418814799103356712954220705631423624439333831383900344872875696452265517133272612376932576561500424315954572309174619509026513406002131047465119377985584244440478691252328091458056292721163652067549336878097397617843287674562890352692214266248385281531975810356339461275261583725394042901534847713774935766239755603417846995317612298355572669066364863682053641295164990204549987839387643597628423853315375444258049565248267392518432537262542188948046617776674894785782436311991801119903525029746457636063353328282520096558024666257877630071868758852185802058437173813903297234386153379337014660523503870846990539227125375428653167126506152043159067376494501829692368392407096331131332860692859023697080447765650946649126961003581827655528279611494516943812195274203164392754676472594700951870696592226552372117388313915859300806810587838316572047328326034183495283342606516966426000779961730181223635818405948123921343581128884204095856132208086482158938812200712699813309061191230148552808111816089503861154016450872737231086035960698126775152122120666227336911498782747520519371017222826352352687017461287167567313188619650373575237635567891988767492511081833219240144768530177056778223842787508356731184032708685443374973445878293114397987435524720971376606459690584098602328552382074248888968327492520366712585007404777737129845292297785390118724122771543946912372701696623472457754970816778686665612349347393892031422296921259479058339461594973289344655377510605514946538198928132893426711398854785141824731250180333916756230854285683779842118008242752869454808895906401557204286552643796964387035358542421141515348149232186964200579789876324464525914213977239658635030386607206504652155153691877384393762745735337186029398361610755430885629621361445189572763839136190958797120354833361273721875999021259037085653065964678342934606865427291024707175267617421935472267869686826353469113955262020071666763861440360884738330793954786869949566286405423758161408322690386550141076550529559134471576455797612888668212316942618583449406927388879946587438832974179142335431825156461600421515673647894272399241857635006390800984864154052447618529676174832903841107669607150143739663234137740774658621682179289624270600320517424701210067201520150909314713565958852507463485220181463271543006555538444414977915646890936953806592216350378041403209850714875916142229610365986675529789848428496146171347693487605977224924050554826438740635513045779049740174029755681986345864458860620573182462825031619059939606260105918279626348180825989321364200365030904744818977422192708474249253003150823830896468843523592457487724863285731569523364431681221215424310207605404210467238070293220800728588367324500270127927732194361350329151331504530566076249662116035562443072441314995627274155903177185636867228120772755847030972813186557083109295890841382974176741866552104778577122604489353441823551715528161343499023329147490704717985252179029740166061608023029082095838742525539201980573195582302052132130630983299137568124286081786913483189056812783178746554002279674363060364604946095597876340887445777671636182027443358309105865582540559773620216258375313289735517469891069395790737635583576069595918363780152582187399196893039651507339081741896511241616742440757625421844145078796612604457894326583496259250211090145417455817427534570101898746303813716163039894978473579949161838620997633154857785380104221016994330125788209730159094745226481812392561525394423657921893814238105734463592983020261167220830283220469720268905629170797842574390910893720899991285755489446822537970310789973766716554849599727430323372541841473403483893744788929188858569631226045067673584812541002554966048171808543024658271693000877729134863800010347270294529101900311657575581949324473240567392227913889874373171267375367938397250807258653675017574611931599374328689755329446979281340310601801546518848565265449110342170774947808557765478178278003156339808764100458696659338060619478905027773852797401116914619144335903256475868958501282121617596096977976137877498146648323531037833081856125211162604672468660900281446899255661115353460550943677668168820028213315601759323815681577527122453887147143519942489318676594757659570901646276477463616202706500718048840893388537861757778351668857971472154350534411396190831697692370279986657564228017296846847252416363724368292033491621114948286655738499906146489983977395157827414803184965266385253732422089724160247128227011782072463972633613344023940304677437949350310679006665831542658431178679395996436370741597309060937597060090711569091742808454906620549829151066624625527093053641225511497995179978238361378293936690127247245299838735888055667034891240808210941203641439448499911841705130824928697975414749107842522388158415235260076294242255443080233120116864683896744969729600444788180842456145753756571964666171953429659595811184776335725117009242371801094377114139030239222745977822439034045330788068942507923949070629144245979503756671438891817545113413015384875255727449446539479321408401276401557824807223611695549672402910407234183660053191914938058428582649064276124259040012275791652377923636333652696402769990505457435386767528589513570239159090052113139537608775254855632061607824246578609381203999660418994655508484215204579679982812393052887984550085400689427229160865144689402478043611960492345332453397315493075794047690330912072824816519143086364595087907315026419979910836519422739097223173650986599293720150227454564669473745924767473805208905059202306940586005850888619035811108139412502369686540385060392407432277223861688813629353714734353421580027094922661348999110778164919335767885772339201671563353385871885483409381456678048372622806624816059402488765682313270244877527923576441178099494452700841371188151661037012240986001636312834755234464193739875528157023540672365507104086706533156076489292152763491587042475958946892730449146892411450003504259785295699634001928879734518286367208022921614704580835375180826394002549968609333002429120660629575359205157634658902233644359795594766852923231127892168640735110122090632058202568505926049975848459690006152508020053119784623256728935013073069671746155166266136246894697917587464994283857643674317320142059868526052262731542181085569688820994588429644562154675512483778377663114380324417708569391373453607226395553225270057532368424871911202214062201308420222274723583706990830149290444223901018631311396318865650377876913743226510760616136957662794871195217631709318335176198590406098029558197727108808635645435069360648630112864348300757675159814970945086096407009308079681593472932868825265873674147518266428503079982411201451177613538356240203544898729680466413008473449533747595963430624341393672695900469224030786595693597211700469275887390919133694040771911412244184829484419179166031216183412903836701702190279670524570074791398996746866904543272649364230072703758051581405912456075335486155162490314824498419581197993057652245142789568933366180399610228637822681622824039760766132229944341902608328146542081113530930226138146204064199518855639803201465106054279282222013873888539203878660503343499065649109589109538345208958803730550200883876981060195243807096553554152123895094750078588880587717253938676840081171218494008988808674204469986231950576510363497451204213650779092802902947202281786169168105941702385990179813001727398475904474994032557871369340048978929841901470283970198154408224387226676537731385746769407230291227323032404632662134596941108961733943589130199153648844145536688761702229750694555342693556005454556826957946103553094408160552124170904708770299502843862262044333436861306125397424382578084795554982938320238033791122387090375785258621960958281588763835368388638082517466305163642866999182320683942216070494614857195476760143631764544344126327119564196420811666363068140585554350381072731942213644064207396126496168101890176834167627548563759434140688951987021689430930903352683935028405939391134302664567818003805276277767967365636623994604967949919379430187648850786891915140186567979123584525386989267517894749851609960432768044914194556234280337648705296517695405895254947293384760405617745656518442535067130021946571832975435263023583760160868470456902433193971496622880903658729634642457976844457597265448194238330692342820945334422846003969409310575513550297942686789181349403894009173322770953504196855037149565914588441236215360622055409574396068353227340202721984474802663502022152136198238844806362636060270251140404161269204698256298743182908918368199112047343525490166468565424612837892974755222633710565222329129460753535740463826759699283077655390444918848241662705704489438830031768040173877278770087158020955900526353668349054327640059142322164998812641565910061673552205508526270705080539018649428805263137888975868972938045187372265195493657925554988641279299231335989060168006789641406952074250410140483324228590046554246041986175804754856282800890128436888757951628148783416153516492371929844674622483651607627685275863392880793140292458704474188996884442125530464892666900026390101120402181961172172266109217058750541077125322639862139469329331377848631469696237787742798776131681432663394202098286106039739813031665359217512569587762486769710563449262087561341358585450844033232499755456593191937303088208952658191328863955472055870449710483085098583921907009100210520329708362533041150362373669668579012966691255513590898016706645752623870940366941676073040112640203703968975493455686735174893838140256301790665983101568411273406574105649280442347936155937527288830580828920948968022436534219512584626369888320181294411934641567232395926167628525388170106067097183377130164019433807737991145148871059267345807027817928771075929098660828728756711681532367879113607222989375793647814267260096023363343983171259408068857651468609478092897533837775987911800649527655667619103252089741757088147979560229300433816353759600461139439640374590933926610623740053642765241982225721620033093716006399102022640165497261801219573029894506549538586002008996914334274405030535228575603803598184161343581217551092307821428871449255740604174548119608290225286549516099338048104757643143011093138007518294867988995924581962875040474682539724967082668746001414432362482529792925049238093293196587933422385090832693443339801857964199185133530587084134173868618004753404173605224820299620656000085814463757388446900074666557795920913352225823865092945279560016863587364030921442030993832216740503514214474717650665714504758084235270955930888354847265358645039146997740034844094366831695398090695688119906604563694254470644171472876923149309841438642675341488682385925975411764950943625050452706038026763781667990638605689414420734566204253188317955614105079516601104632443133398774436227435092524045076119692154009068741344372912984331048540384978884484841260336189993610800388553578190577380287692393513817110667243015416786890681079776812045426491320321226199821145444460927174253560912766810789716029392474860004675772901840036002707878757558392089801225302657667925648849742871830382324559423099965441942776201400671203909130540600451166447902359654876172489467590213435453668828814542554985262323009879358922564960138620688542262280862868872992052687450259533795687102010540420089119805624786782263408880036614218232662982318186826352582812732161236065722756263166485532551654709071525992921717434410398016898112459436627645072742918822586111472341545021710623099913566427154766928696854683558585664326649103997856435929742211308341942242706341770711360064747610332617207375414481178487692992073055215191514239356122576733739436115298874543962505208170541620584792895171986812333695655039421891760950229550663660981096687644789757504969464912584225458118515430780440092934243330490795860635861881855053674111619669008496762146347086557908204783820920924994014485791833725635335776123228617073863287621507544445801249159763399595925745718970951005427975285456655055339989028282477441520740202720083652304890176794715501444965341275395263883670132648970093072889718289391049281516036164369556423602060692752083955958046837064478175727197167201602673038592506266585281845434151999009202758552613543586901805652177182851658016419420056625114342772708936284798453404246960593203883505552175580594321411050606745386891433039773139382083250931306938783652933735781369771427888628149759537681492856751511526741726715548397081115107570604349780773486383078304891641428334890829692690082313085455449829322368178865012079288275365401525892021216816093199348588667677002446899582024682118189683296368799165000382860389969145620170558028137962249256318389548057059738614968781917611241582858377593246772658520342600376515595097050337359168744546176395772739620052577433945276866338971865461884132037597607437834488413468061924919080666255994528061321138753756426831298960080616638041315464502396597530904664672980530356506780954887213075030341011887450696685332280101075152912099398996896002255027072352181736058288468921072840172976770777046700596723326405290632214687999340113724349744586483807798898625784810645592344970925723510905400888295969524170097054328018314913208693397046352256000350926362398119853042769679310434207151182293961786163910038871340149865016902801493110158551255836236517244016094673028807958036043798629489248337551351036430136387851792084658216470479419048282626344457098421153928827519621894894672282121161057864758026567390839095591440552957399663822123846544273306738374744289862907384865029970394695115207439416766358386113421956701753442098959722007853206094073810472267206655843052992531155760143911596511168167174794872509469075604520128992230088377602929558452446596869694438960917804489635724569422364671768628477080997944153268726511465564279127379165749782460117993829089035984289325511536436773337633614292450934541384677165334003073927376380041263057959238787279048096382561906463625732051417182027640875557074877813802200587912765400449260236512990077986387471076040647099840086811399246909059268444806427739432633972973796081144511715339970091751501531606285603168919246154497009376729219762842023608614892819828898108979255490025209370517651023671048323115431365253542296573107402363669331285339870230620272526346229388574906080274354402856396841044482413040441968817581047475313228262608375064832764858528430288637081549003428203422719843678582820589625679724694792111026452066236743469023583325514517838193595640810520559303507207308822417482816923024979711186118787146826962707255056489624927798128332089963777881178210260532165012117166176782943557262029006313201764177741724692982862150320264021032967361166775430148376384157567938490051164135788947919193788840992394782692622013084650455050292608211939545333673688891012235657415670029633699311329630284448734855492194184602538203128658522222243523045489419518956194080956932764419826788112449014124053264199758277992238002004093457881922258463788435648143832004319625994316409692427178560596154420490755088388059514223100380035986170545630678118240927207816659250588822073128580480435151363376945072720711516724537517342490315567250099720689352982281525384690872102847882989815623431741249453406005378299866035115070593768562817049575056007625046656093380405552291591241054314419408053641610912115151911473829025866357961363362543363297809105164078994443136759027035490555666832424167785484762728617251095202869603929684912196170126634004382329328538639081876215549227629231954964101962397759489249878963373751955517065744460464164352943549437055390154989293713244824675715005799154780366885071621885561407994685556154455631392540443364110530071117294823205167562060585641282866787651702811100876361340200561000963920433686475337421559752060468683427826011320089967566829702687724784371544048457870119254036193049972626038934798789671617994694509665717737552272045286041980862460357273952195479762120814930365433771101426673665678971608065641160187430635445233014891624140435463471880046189960400842047260768411103899994045046530781225643710632999880693870983471356655947865088632835728194416827477348638889589496488152900889123751260475086841234823045147196001314823732058716617811669954168099264879519908928355777018418948011917020239929633021963014947314170535490927862924885278074340047783971822585460192795901805544708534544529817739053107523510486932036971814497533782908679646881261298148176495984463145659133639017175161389883776550969019840673211242543948332956640677845011393088039706809706651666980782714004259227867520587908155838827028714077370738200236662820007963313919158990418275212673855872075545822649078206756980999715930256882250280184428066024886035438004690118495007178474901427616316607743916421733380038948121058076160761028793278304270216033496086508923423346899002039057392136041009074941796524802837128550248465476475403268342839728157982761574440647274673039852343829334288478262893928348643265482979080457156633612243568932486209764208386407359259046434214599480238774601371277576937052263920681403038697004715339681514080376782648403222347431162678478028591133641714998705188823453699339501819870541232164122062489280441665898136175220181115765065771521567428784496356814328148742334157784763638281367133094915773182928914241441154345547869269899410132102785963572930543771864906845886632686912899221775428118976565431306670738255027997360799207041311198759344335335047455438255265216380104084978626900737934461886407798255458795589984015267484244358226180473913680860383717618074537982074777163624389672779916847730845457701269153975692211999669780210690490987306280869513907715344823093559899153779907196855005014876358731549831902176990014175253538893369960619542921885389485491109337640063389932159808234884170285104218559774708064605883013595291136029739064793443105757319279420685592393143057408160663973927485794329395394592922209355799986905150528641587611129217145955475716822250446045578958493060652732151642262387804956575700173146359960643967878086862862700162017462496054477127310633194488581075364055345871841750497202845847264891567178136025967655650369038951627710387440421337551218947528870419917801492902384407864382071306401271478682341770102944962616028114898810144054649712280183696188492669958478773883280233908828547704747820151634118998487076387684772477972704041975618980177916209801562556840793893348580280881682836194014149133013847163297256424980438747474183786992088387057859149633866458711883016898913709303267538174138016628124949434805188328043623758636616579530030664914490414707309274331796905979330744919105809391337524782830376068060132321689141662866009709081547461331337681408483520170388962228217303623009259354415372159408252967010538524372379921914347444949620770400013427463484853845504444331678492436021155397041822358533930397385321317775371321132628787984602595818299462196127497557572999085076512339271176957340999675914477040612126421918401690844497054157245491726123632831608478840779310372353858918118670818919570574895937526511396460524030910238228385697298978978101457011742072249708230888561291324454623373563070163830918820289943198652445416150656226860419268494989458568423269593676910825988564621350089619980869095462060410653589758498569505113867137775704112637302517107991906375755845500946830499935825112915628910919773930704498188292424817772368450919518525844878280344135624961347385516195388550416200926094352232240425600169436808390516082501247918768173945848304199859361518432347501830739674720180627482835458112999934291103338721082244205649780052427866519537287352146547717441193420847862005975366824755680066027990533491869258021537513087371896657729240152515551732553364545067392682615128672307916075917825363833498721206312937700797450304938202212936658689840373794477094955961777657794640864128998720906392079965797495774948891618821164992847768301126117988395778690654870069342837369255058350970878104222611156330286837513897244943999535590957148201538502684166614507171408637560200538976650208431558302736253536866073555795250042386922018678043720242386708416422431301368434966553873836411107007584158907031144107995113164214724159188667619231363816341390663088218882013349175973626572118779849638027860492944273601197171251122482346936512153650230097959146975458267573964886770738084248002094838626826033177190067763471713476708743052459974526913674065816687400312460868817099566488314300563823888080009910812754374150600096590087902479603133974750067664564130047799886212058980492684105680982482939365166281166661822679454726113480341565309292240948328175169747252789032505535314193087641485740485180942310545515475844832096173590486603507628176145255192452492266875562819325815042375035237362633432213902712474008368478478080766467959796850207299681090951660529529873907217100188869431858776060691699352054875983328767890865633477228002465923376157677338653254198155853611684103634138753598765722511688319697533832914498568449070816522815796760263155350599595649829909902696953749407360642316795683969577543563518624411025831815890185703248874480750961488758489470691399157202432467397070698575172129421561574229969559553303073816611183313320486792344914251310381923109448117824436284141919411929470967519048592835423400547490689370688728309623139997466744356740471290885868592226738841149048101319729912392745647141476861395702038695125539223530156773240292631247586552556744628881768466384761375345527193821823208980813962055883445834958377878418615918846864393379007113646065427822691968221802747924129695476471937368326470570465096646605237171272416247910007652696843513517085769252352821055881059535756963927570350214863347678031929065045203445980802711493837548181272836447044438212908908500382207388323553432191160263708007613753706993009315030355589015459723282735837416909831947862796251134645899784188110302283133939007102716816786345926953902080459077620924698816192550734716943374364527635007080455590932562908517280970723363759925578793943445126014705763600855942912560982156044280675608175674712788992396193943586045831538446129550381452978438131480499565281218407583141230716188439506452248210514944538688327983890781706741647825075314614197866174349459612140913175753062159286911673830546076247966223575529615392325906646482597911249935780370011590750671506533281493401304146795522449757409833392577895085842784114156183838210958812774945043665581279131436842909544163635215666466116337148177873009415844599906366177508256563082725274547397902862485377642226593072664636577289611183668642537335997891407878552846632060263190545740623103696234897079728498222287103582616956568174486795343199845520656370760683615481051767504706546936844313703691375807513235875742801426230857737390274952894242102412719739395162513114189014406614558890471259349546904957713770775343846945050638935765137648371056501641572936679917940404797461259589009716708030069520328026343736714368741510148282175643513956469460526976963175405476761726471028019953314317927555438130554770344999055875968980734535707658996193531310120685945429778767854205208050056196218595196568021824067045815127747446037093253753611362480702046636447279126272413319863434913485207330214985564005557190748930056815563303387531108899320528333201597663075228958194337692544455559191683058100135563691827878360922096581029818330821739926592506274330934900817743711166251295836567687848313093317913461964101635982498106813515531482346592811975832835720950888707496398466919421053850493082040177003974526118011677343199281668445242713852167698866025279275657359319890396885837510194539914852703221892865544069275663235605186007964080237022928182081784469187882258185545119203192889507499588482114844537981648188438694207099532891965773222554043353973308925589216387313746755620099175672876795580166098732318795579239480951525974565483841863438770737145250674706840890749810089055325748243853209176936196104446362740584364952459649551795468783537203217638861496295049827113085686499708406878287484191071036387088132246836592611943739860884670465697993989193919967538773985985885543735394451162938053722321924656636620819669385517525181368375420893081516410193956244250433237621993602227102076368794357242093251509409559723041402120586827995192610475376106304163973258117126836606644049989527171765974536035439842901023610120423168806852732842811667654689677925509507452647325935411002390052355222797308885962819399396658656727917146121350290353268720396490986898206495707161292627987349961053159656854464828873793815180592396761630191573048240750268771242276743557400669507160122888007835231986823241793366745470847893543213905551454524365904879479616991981830342939064691728490941563609786798094252873623265662730091927134167928593270382563632639062544061053322817543883830136785536557539721282042745115991171157499004159212757725629216809184683270752881950576150104382158737175452694745576532268773643332463627946954461596516723571493319084067221734677281596870913295055642347915749468186267497733046160289111321986611592353155306281953532248964057084341616442782481123298184908816253624959580645912047750966477708924862265348731058082261840048591629499727036818463996153804967882977613164691078654540768175590216827651038195988435554257143105320768165970331853955359226853759528354380123484749551069068137747720629368913844788497471690036165451540040792840383677218757323633133254648979345447959375429422986648670567511183657360830672735169311253152859429662882247279506451748493740104060290199994887110742770894941484303076443396740617590582977410250318140302304665170308551204297751232583518089786909593367139201682871279699930551825415463151310143997494144040557966317952046233136655439981041142471685941988587423724843367568088026684629428906557728747545688427623060670431914274914370664407739175907234184062671621340509909594511675686393875068173016801617941472612818614563379247683847459683441846140133000344665675416929659684686881484790341775744881316060144140773276510342399103960480431446410762790570761509541632742884791305991640802002726327277896069485434936753472464196160011923850258616345841454132401754920437674474373728546520058857840004506788008879131594360874204074999172276401529319748243412041272800947413754314041851296318332149259225356579611719962775118877479955632765057319938260652426075556030327013799539805305021291383394510007376653880317538338501929653942650849921494419383391408667834828383897627157334502131027395275322925866434647555619284269601213720485924786116728770301547727452726163302818952957674490692418710263301813674655306906774235021086436776886711821710744196378737215057752648981541354325306656823829351007194895261300722472505484188366542708566556327939680973681651556178050447937076952051703651795141965160531061176803637480632990265333069656148217036627260047112534680502689956967257048382231517635064181431601990022910945657191255405947351137752286329136231073183066022860044123640937404387506248940390032300084858352746732630611716576995074629996164632856749755460868551846600512912526497919796905203386081489104926078607684378293809556496845418367830226636894089213369154266653062549051734454602636781037140382900838772312237528886272532532398496853175752350102475383843042113111086755674128375953640070604117581372975146275547788174224496797529558051205315452031040156565268663485287418237478238986377422646769965453651907665743552484434184152985344383795660678234252576014352012689890551237188089247573235504818331077760000130308436050612653604010323195496046346635780175035739231869442786920561426987226188462797267141274440012852523818264448789337086421034753507664403431047594344166799095388901399795787311746459610450050619543816726044998946218667110081122878069034340416233464334289826154062220247172856091985966798076564362909582099391246871284774490884100979368902918612655681911237477878609626809334856434825571858016058746776101249023018673522312481449085998278725987762630388832553042301763346350234634980952755435348471485722059394800920756982047520436615515631172911091987005313564113756246345264704099074781350074981097484568521713626156496254510761294030759639805593143018185480217993223150790359960384281709773876593333572115244372318586591459781791882565926404566741372310845218896640922000857897502476069950831006281986168102871100175488928362890847907747194448507742208202112878532038330401077832366232323834814388607812330035778630697519285709978902152996289233581941411812668826521741620319834281325567570058927085569535095998863644686519482622151946485122253864873489283395871846613554349732346130910030179624324997051300505654714756917893225555224990118268634949970803699307254929425998469412026277011379354888721728383264567082201995445219632728648930629550207297076641544791818575424047157816309378722671587493914155252441446537581263125331943283294784039508350976431530524310755643930107858113806017270326664925500905554263617597862506637747465658413434908328416603827776205045846711146215027797602072605309815159691187941558271671507158593418527060895292520603155744161725972772695364345054748786006893637687030350082804984943877762665824306532104134688548818282026454240774379707522003400558219718636430462213991632353666357995870597565167185791868911283941698791468447630911405226596584818633021595429815126718141762846672769049073613317097638465468871373211972176157950445972452122166455431672862805827607585382339468896391230680126819026173203076107580164787195343940819083556011497232017413126929642464456819971437495520602969039132375162912385655913019840616236198818424216506568112446303181934711937698490877662919516447546852991406051358168947206999264856050533527146133149940894042740101529186000823101950243566315116151835830662023915086377599463758286572842487767477236197323612954585456857031179261056644809161737207762750143599815993374151043052117349693072997958526322686410405098431003068049240819668819311834226085536763976500020454867392759691784790927624578893091797697393692710081393006883431192423246552428087014338240968515627371331985679144530909765091823442105045637691634094496408780706035529517598803377658325804923329233744574188935930899050526934922524812766693096414561717404529681836517981423573634290513791851635688764408148725523200723236870691964640516667761715261376388214650929680800690651264694347368592910984629050062861355131459651639641277231507209705586760592285030501499961507700177303916135086052606038009406688513190173387649365519971510949866347968779486910931772032915031511102407916801419433301238839089718156724603331785832244559722837371662437457165807884727382269703747532348524676365605929368575278998695388477013498987973574380473654253884044112389105580392766401031994775801711477153883991162506938954329182542268427752380127005225412081210133014973084650860377136830840602864908407566451070999328234332638745636133812299444014457781958330774320429622860641126592021885156825105499484092503710326346738748033894519913537131509579357922126411641195153547448387754040757958600904523965525783248949701216303077374885216215581837745476804621254836405272985566543078333905398285716704663978071879237040257871001261631538895149659708369435834357344950365666412777201147643666999558615490394426066466758975506716899004889235477067923619035360428063316660621875821962933305759081920134426509184778703379118819710485250927043295369638372822301744220299429142786146983944110279547286094509054376489944636984302300338770502824765798678767889692293381149856325705120615522014785327050717399101508298135372297604684234033182378321215395189494447924324057536877671828228982060441513659985176165314260168187887744273668823896858221219723465948874547876582300656177522843454946926037620780659328636552154031607128516560819891720583046757491570083967682265096641950517408946414766614402827156692432353364981142708182090931638460916246082099899309194095478803892888773031988182601302247798874664128561052896448688981495893474052649605403359110004070152178365324182943312814159068297112476955834802902622118157277715880862139388456442445824093251521453758270083056729530889099557543338612228909059825907310559510559753081069702637127316311728932476797540371126179406494492782693206867384171697957528987449018944918760393093357789347910995154027770843253424921360894985320889949751784831022921491259725290251186692576472255919494323627242498657162240512529211051300633789163164444084552315863660891713006264481923102271275950759147031059407505757982970487413690898253053537068156658390445330874973188620347498468575145422519331934796614884290874505133637472279987665525648961607655507209569511489392344383790509936233282969044090541101972491391960624040064645525839287903333589247236695199294702180067851389919014227991512170742639383254203524619118347860328589744617239976869904313786665188514450801217489549116971521119119848075634932744457250456688678775177203147090092628488328087741546648615590336629851551568209085309369066967516268199669177214031867645424073328089539960231528820556602931796748755620380926094349996309458628255442766082127969336069694279761082684098593318962901263542012284773530538769392646257510802654847885184823821628315000508625773187434645268318242906031049889399905145969543936674336934027081381514589989229615087866897422298412229936572829357266559987068967037056585938983141811413008451601504115117484978196518236813402643097936800852277906683624150528110722911958389405096817529986681835219404902490737992051376569135253529708181239093130433226966882423291446114687432626992896123052959108707568160365236091460062308044268233514007613333499853388938960225337025109362977589376746094942788822055092897814269475551100513692821989104232984017734418642666964482322022044114896184192557362985480389207784775221127674805450322129561398148168834188565071729105965467495732857386615842014809331606646648056191239792540192118675749706472499034836302198043542514726041050768765700221446959842348132917353748845688256243816517016677839535947659180910808331172417062603191968375298695565311566616717990814038798241868528426052411933399044030065355856082967903725279551905965506872998656965092747420929636880761438925770257443188422300969301624172252854301452831789548831637883933753521353253827940855048449178237532802300797909516460196872985909603296418348351071022380874388303330808706963663785766530797030612036727064205610415884752945624060409429703116562682478820381936101066773157572573891584694940176831257912654339219378161099708929099704425111213508925210597628590786792456942560772291425270413136400952274676293785798325161306086496409150599320303414718341445361262088406384033309124949712580644626437186792601280469135279740191855982635434210495057906397215705852613355200104524980780910860947444482565722790433446731154067391556565396494706552667578488553393937461880766547802909878746005987966962687392535603954566477549434185315757753318642343939387087215215130743418918387874096811061463994021753737882246222385910370997308888262597366146225108548766270375452923136397520462208456029072524324199846611619025354066411234133468251076712110177347284198381282117788534985298957779157259109155259063801773446876561760403607228939078708455802096405080903487093025321834891378027905209403902932846603095063402033935883833689687885121290556712503359293944610461193493970000081095191839447289910096485491256533605524856959752179240401144480339103533139275471643656581623784990742646018945891888761400475551457864998990901590527374276171309777270626095547573630393860092620640650185289099709178144052986429239017052620989212541575532180272816928826501909310851404358073568295601971992736017577082359989010808893806826417364658777539656198448311703761880514160034982436752024874469368691520343243051073913252502668845055045535121584975724941186937485806685339823339326879695603240549620246464736935931524585586963849796865051213702154942458229153322522273253285734393056085404737012738808075722649369217752415982074009728743113320254416678146449135753506218799475756489080456141187279366855716967415725973880696955900946344870365017553080596790521372048984122090918637315898333173896996409471228533411826254564841147401523208420952464218598412530509056598806945509155297299130313603487677654474717398182831081935571498469449349433368228621198824052418310858150253915828110744547637880515160503556836465814411554683598216843431164195915242108753446212274999216566158216796271788003409765304655988932450376797907592654257942991993476630098250139909254376585161522315799811713567681099683117423187262120467351768471938506822057614856965669308197982725734291553145355632687741239804714654834427600446528068832028131562293896298888928618899234957196699300374269411397939681801045438371716549384588350048162872349850706936648871994482541112683960307989846362850934672627994771650569505477734016144104345753364512523865366302582372524875787734179914520602046657655547504893796139388754598244821661444568711545739773788327457557445819363325558128408672040455558722520329023238962957497646567504972040162148435618738017926720135561277091172939635020389721065300164248469880690906542510321723274180104102210961273349414238067398392865533960454702144394808087676191989126209703617450185237142557707240821494599276085285581787769664264681267618297694688171278780374085115759021773585181089561232694467057650830175098032715612017648443778918776106074665658324766040244676227825263458902899981910956589858219931770543210175221091882971817743136639406345584636042747005419100775576055302300051473675507495750116523126246629816825018245527083603847793416035764870929032760739877227498191068870162629120448430003199025888538730691170441259520015950632212499109693106196463209636182975252806406795362056298141999907358627828798807597650513333491211613464279124209197613934227286674539669099337088839867096113966481950730481393285204048269875666023899785688591596506422674481009834360988503695299332490837167283302539424983649541325466640778349614285523352533491861219368512146206371785812523805334924541420324702547744298457700622012849757126004996398471618004134499388313411919088440651240874575544395521836383956703512928933187777035505904558042355753111889462714534194874259213839860388447325631838189340812127971669614396644653246847862550671296760000107378711111082807542803883158823277636568272304891838740350211405127597273089703578883700539056141409729671828839411540809225799794387995885443867099992477346256540147760312485513877874978102875494965472556906145275930952041295491275440930689755731219713282870520982465982185129828880233145171752110541023889632499262036547804450555604300472284990012374709997711219678529330682119054088088093807371230761069891461519418105030957234464113742144022253882282268241207273900194310562899900457488371119725917128250930874871494912989113864255963713387016391223804300285505564431777054877717132941908584317450764620120212328861158574042346196676096874664792467990044047032411257293763489687672073714261928139410690058621975180025082247901844993281741353487373671593578805786430325776331146909599721941821731268016850260891554087372032179823755581849264731109030587743652817878574538069356914098780073469950509479340881584803025018783946608816984974776682893436927625542404423832757343844680746581490155537583489619459316365846137869806256350945649821958015375370193794821569447790295375286234419150131270627104907020353237102534313812570339283198286373826601263282801910008244842082048066544327227912635445400739430122446995566986774852222926583965072509522271037950207764301497409836898080640253176586820686203777071306825379298790689260955886960079203352800172301437921502748730678177463303088149797168169358019053104404120875826199733948130177334815319541879717467868315322629197652092550409048356601494842600096333316666730204144135920617651211647113625347334008467087748735044901231751483885010500099273805902080672567929989435048175392344445000719157719837429879064753267498402131814408614322767752031624807055742090802857875235754784529819327221210404786414098014072970646898945295587584342397825327969350350549209849450243112826090736391241938307652083592674379082158588706014207550266438350611435656680813041382846027200554465771963909591358131857791055369621288217025504745737093736452121083860577466801060111273888275690579367929573924406949522852634374229534093254138911905778461171073350581388016486511598109485172567416136496481769860850830757207543087684814405868493606703980661436491326074088921769974093230602503399297951496058897335619312975745916192565793876582984607524535219766144094350641448967374389444345262504696193333827619417129213263173992805101839116426120294861274255975776179897478682667496799354518381883410725894227370415591541963005108135108532065065041665758080401763339039179419937955897861170793299684889565502984774297456533911006687568190188430665532692840264701407826023513261683183981903211601880639353488626405452145679267960488335759108690911462004759035631526129709732926835670346394980515726310728254163961835648276056844497714348758131729510446876501719883382009296978413632053174143248705911830211192482493581293649842284375810305746453980642908856326444291252493931880318139929376923113842088952239447762291627233277575796291384648909463735456678559353983419834490791643906037343513307310383990689325572894900928687043329754008203983404902810530346748767329120648885887577041381265236049041005517862997891973400575015436865970600256137738146272594525372097534665335427083974319157751483107836934753892666909938485563304608403131228929922213532857357988100206588304560829852782527846477487072571933543193987247634147628911858822287764683048745474167657837605835720414484339053333104558683727436243753820478885926703150577795486155692906209834777169324703963156209724588559130710702360757432503632546442506864782401025829493057475776385055959127430273711155018757395884482733502145740098158896936173741580160336917899865786387949770173624997789296458426558274005213488527714600669718476698913870903265543669115888271386308199380282745404889814972472276727436196915448480325826659750846022887114315668442977032657648458777040014422815406058843447753531251829018172886329152958900966435680831971066373925738053743551221539843417639425606242142000169173034633809090994276933774207636362248733675615235998264124366119935224819337031869955874058749094645154176419800039698179742909260552729709092802049161178281836583869763462095896813900549870292624040450608200438854722669918884831568230856306405215854336261609754158598465055965011349174858453654774035111334999475773160563012428856907916936977087848361487685533746084669621118997753784203794823073938946459909397976449139233869420950022551172813688089424269076088031218371303836907580573250098375574929581141939081666578684744703747053619898260037228709967189746666842296463327460173228843227290698405435320073370978136474287992456381181206669546373404720809437076575719746038750054952043585008984967952045338553112361822975403548547630644000818566096864444564635931830863916666412803313829421227483622004214081264858081009911980304851465004106919877578920300390917447498191071503839937492576195352199272034608451845710636550158540856101661544723620001831692604254332588839775225632125725372436052581009019111772805432065302133487569686444306620484439978291875500243489876465268634644824870410075360649211575364398310575697602144375556629925299504550030318059937363680285480741748153040008160760173695212802081052180754968869532896504515279089024575405676153563060295936714124400970771800800737846137703489831725637379936712855871731091371976568321822111170166881035079540038615442381298718758792615474125688516419279085717115250748263234702643304655759797639883314793669999366760934394360680923832025269586116933636466264013199291930970502788309042190349382324062777206741654567248754953211945009659550117538309100237650716682489314795749330677058468019568721667158420289721712582808274786266914201296749992419031893113160496131584880306822038051904228321123753687611087331219018518178405642776163741512155498766999682693755842078030194880032276610564384450016399398820814851534482488137265011233894996404338231280977405593095751855749222361116890377044344781305704787475510660466689460135710386904319407852294501016178030673718711087518748216506417648520784943202084454430371588939162972176901323970539697772713198399515102392613646955841306820485689565846142565490680447605150796745513844748969459485714724841405970827775845876836180168546637178650728855695975521137103935806020021920034185825778100470501332220032993497205431049462380988970794990233285744188591561845185991496198525787752121410060120079076815901213627885499505222361716216715428983362831324542166578907161947548216670985962806643805950396984357054373844794567663663188115865074725683371505143971730523320400770641920210574949147230472855915261841912622609744544161815250772737693680046358265311129545305442172589923537187837631267718035648828951002853351246888551541117224702191848053358946117971561519453440747311656158659842058570236638425347539197037478081741317917659063065254005622663931041265346866719181065028108356473927705210230967006102284189093964293342432650141359237518848660534190128049714420743542423694409077970145644834640686791700470031696744974475108933328588858678858090056839919916192046252064412527504362579466933982695376337341284656385152490416211711802696253282082234296467597824142764823465125575953092921368765397222524540216716947951788259855379513929261267228253628933273490142845145842316973269255564856433487076594221436827856457517200552070544113856119816285557353046918995291315073618673580386247634015160128044780523996213762471177777072814862042080925621964559796925587790420793129789062847328880511616124778936889254348721759532467402251301432158168943994640890620806022723578128783094248522641235238647773098391869757075599209119236346643688550347525181629347113320448895855887050203571236256927069481918385078423000734246559877830065877275414766573367759519124987924419516582201182906904454494262225589707384378545322330476570749597361213344965028337731627333965178667782253418789715548430036242154648217532300204204617334754537669942203226438209536151684746145430018180493745535933980799032803404235885353533154776357671371246122913976204327318777457089264615272283352236301531401099803775806249260850849897620830436782408852608734863898180681541359457888664160406406846641358093037622214905368313144514171954093399144884872899872797184855479168653756575754130558014146022016316452872500243841287115593441328728682710261908917514680203492154651336833584400467125493934592801569459209981759583449724357848303105009620758992857420924001120355139285603272365674219387897981576381326218020500591138743389978488289937651768918611058689636230035143457401124134145338620817509119838763150171951329500100644811232175305041981702851921472723490842179175075053113627372309741154073393766890162843561190844089300734885219269668509646584756228094404769571411674744410701432025196087440394398170008432619971322524616701869093545494287450649426280413586468758624711386943358172843911688730089056447278671885542173806407401114424642052012907761973595839137959847802074375252965558189879378293932454860471261427261084021041991553342318433247505651024509929144089119389698174185099878818626481436780886335017262392526973967550129803909263224562744815292737128805915380306528816639956069499302915037968441747890497548892028800341942606852723247115792185529865385167964440082309697716050840124807479147655130532697807633756754597973235744076466189968313256621584532523240516541613232792732493464878608171573004030088372213395274029586774752703989312489548730067869338795676809203979954155825670734545459411355387008428681213947369553510012775446105508904877683098647974371223157155845529898423823376899927194869052166354982666082100522374820110697720549504457178275462822981697362560084052454759262732680446291455642735430158260898554816059971090757993313596330076286352825991433907155811310022405347262148214179498217135679444240900541654287351447145019098146680186927890016062429678653545293671773001619544039286652320568093323430843579253424732705583620602248354847408154850851470676010628546329929226699741415279775191546454357265271605629546626483421835750334190892560122874227372017652417638506176357588538450753475122674081511295646403643794038569039941354099771162789491051412709767055913064273381541547438756139627411105653589737156350571985069700785167160816115447797950342735265160933366270865298212227511189693120506791994084012209307028614130817091683888979803936067069992884123870649637896221722153587903813404858445005543797401829562120729932338693472755021351082664120951398800435974340258475057285186343644332902506936830010132169243994593009704341604778248119952940612058655517371532835688250470602786301459007843373372850895748512849857637021949114032173441696198139302132306861625528456341959974452839461192459923571598527600796187268904528153384100993345475067486423217451471350800504331165386636239606287148870804443880768758248969303630388422300048304600483781796063808835587459422272436672324952886888092349560485963767925459208490339316460545565944990522220243780266927413643373517284052826178061978529329560662455747702299826351254413548694435137043100581705826334251889066624145920479199560279480521769636835272347947329120512166462931429013267343851471819294534662917736392580748765849411921458330445740699544651834248112658226547055242395219262082382982470487519125874049494892808421157290340961808485343010883150580837342750915579688917256955228503094767535837692706175063990899726954389475766512319782515303420883913717236953406276315018216665016110190877215469328140090985621563028775920418543491017772892225969422600465535612724049175421561134994513457680487067421408811615904100631141144964637719387592330343637926420866328056539602492313211098794103403987719051901229957298952183971730586115243627811177469702769254450056912665841699518804458204116972379599467275353844822353441581017675147016092364395583924717325764687932767476029351686729898841931602373892852883949341776564927858465756301374436108537118947166128794967463371239326366636951244148184344718851042827831822495610017476361427944122310742039962554585898255242281783738535513607877717638347501793410266263253547691659474118866808801099088517116073359357358913183703888429450291611621312968561757402099535942471434868431608668289424193738789122723981602123450398872546625288031526801784138462931374086263075490984195945709298809213627182528936731971203435936438023141252799351795528915548181279693096041427757617488288146992215340417392078021346567929602443808405966772537183715982667399621888273718536270167636773376537834506877315395829087003332773449371313570992049398607984341110705204507693412218184772112780899530171243857992940508035262653460344910383768870639083430953548880451215971963427677664182770324587453685642165540238777719538777751516407660340067274728791423247001478658509895696307748355132431546291444949039505379047977124119820959601629056187956777175379548341418891725664743582856416082936498552922422054299856074626076439633075194222065331575547139014549311556543233450107012057442778484932610346566368898457612466636329497741375006822168842600598209222923443552577243464960999624332766072326804136513612220435141584345174206734443157759445411317564157733402305072545529092904403342166808990969360941024869585634022134442424525597887484991926658766422487266699923703941326318232551591725072136911390860890506562100934116700994893194513136913347194963672079602844067344689649659922284318629697390039440031904483157330344450892987133033354030458297854328896702681363410476929448715452028969817754106818019165367647588342184974274532968533297669457304049861393242029187667062696738444258219886997839801323949910266896917723097615174794462915500075708600267641867721279958090703096305956790928342071101156403451617497856840476609108681019200973880035622993830682221648862544954985428210040572063018154720878686829857580154614409910444823585153467560269685646234888198134555493049736246253386582717073718147550330245339846663654048752121007836562583003823927350794546595925190496620337540819773855582667989946717173359349054366628567934183526106655128662493713396816656564960507979524281212896384190484756757019432287696806254536198787548844207838582856354471742137113830103394592551314021485223029912211912411092966528355728055965303803309050181821820034161406405452075601818304636554869643812193542952173042787418747824987474422148777230617544415608517996123923106354431064695618586001483709672990007161126654278152443824048017392950698703980703727602014454490165963701627123651638054555702956151490748832078294435642529915388474318494431495511283781628266233079450407861469400412385724962837644163819975989614979895631069134849324682170813541812918120817534967057381885586463894699634606814370859528211441171176936128722694142695874231999997426805213193612342867306108364665091685941163826190692842194444672616800303027883323034393810959092894303838760125951921094884686849271698151495157449939364415043598160337859120599176632696368407215511182790068930691333943721254501515567478765549451638001740795794373302401934675244234430568986473823519822146623943099288902863272367514642823388649899871308432868692770631377424693264606410874159372946972248472762953604714824896428360021536765890591166851108608159085816048350391579385911442086206522872528708968169893370753481562840666395034069043585019685959289126783466073134680428536808273441689201822456217150172943528174921362295563745746696377859305703824031666812298489543082461762879538107879788607938145156329843311738048842408878924385339321680496623698488320311149809368396001179304222444326628153814669066766191947703427249858548832818611156943456124694182214024919480670198983548940414275281287628408921104470498775997270458695253620182516504532962507525282556642758112767008610890795396889706792502892838198261889049250680763709255984594284769048944521519961748859686496318681537505440898136569537961617310437892375898549444204757854714722982494415384223996087174321763830036787251684844221351583656010530091655653980142486375985556112647310167306543128807391645416195819526080277172886032115550952709206266934845781805058912414647956719861697906400212795225741440697655403537480347874665651732511086731486117193069216744451198360802696288573116045106231738804921445131124906220330803797261138147526892335098276594245691650792671842490513615118760137051970276064973438967819550947042792816694030468756816140277484397202506028506797737672893133129311688258745452989047575215592511897789899427850233235815548810662597127620271438065299386820259830488142692544081317261799086471938720850000902804900528804451039298086308777833109623747626312858369446142486048891144381777343891664766625537518319562461564622847367980815842495160970222146076017367663848039116918348502608396978683789278758550697843409952315956359077103820943349061036283507405249579659113367235799987857904707891090116313398207209305063446459356465487000348240068457041912590697197792538137315433753974346488262434229516290524400379081557524441334395597254485336978061736642464547800580378896986384849522997104581078287971255435537722294803821139405483634109838988980694941621821385200141767382546771116927652533785136527437280279975310312872663544652124933486400075641601630438016083563939562723377466236090200535138734997963245752799734234157775737717206571249418064199131735327861337531500649829711801600889776540270163520049077069753393522314652203876871782410845157666998699292621588286384304884742015902488460380082229098422316432957212898139775092916800204260637935027386110992506596548572706038633967885424670856753207122300293281943458141719939545869046557079818307507385356686914131928777349021223632733023571150370150530829330398286939248407293644346073277875104080815943246440150867941822778014151028508098172244968966760151582041990612755489448363810673885531681936232577204141556455638642432885570376836384456006275845517669699884210741318703298255611812585468382388311035870149564316153449536796039278022345782852842205540483625696538614125446439222162502400887613350658785388013976307694407900094024125565302208887762701406422756995057669606774071378850660251404600760332685164209664878609577684805228811763204721253094928312050057794897197003224518653604601528666431799437943894842614945681245134583815595930403246056462777878015556461817268074368923227059008597471062424839540304058046927917366327028516901218745935431191331047262918622075026380383973368216121212993103102623114409560568256922801342743437449702838948629414046807158856487283198963455153172838517777125373114778544100068738508869304487610415405599027717303883448093917008929202259958601076202991077642238750918809697685449999689076073531690098083285860261752909052282878062185682794306044670971753374857400044279812396060210995499187898547936901786244038119590030315842652409012559715024400204119371882379490403707508203304286182481628159613839163783698429971539129185658984794620232614759072408856174096367692349863121371863380472939990809449169306228077257261683208653456686649703264821781536539137945104985156624315629932999969255805233543952067881576238014178004755856521549841994963512795657914586151989921734546867025414830687412151983513176893226526523747837922663958581048470668234532076782266584632142404380127143045506794217767552842834347650439626750056535243810667125145860861209309621562525695893522076012964506135048413737449843596726096043865253705725578305635553036565963159458298535098156974673953628352061309354661112434267457406540946299277694315137370258835280396785240710285390010819821757782528403884663452622095007479875654148603716577803553257091672402790533080874805397983805440567242394710508798609952902516559197631817943192221264971896622609830814619508100814672676602106878185613543204605850971004422341843083083917593631663255010780096292627649012228960838613492638087582648204941248104571004411630972704283905454507325823359031727079625950215567797011510571166703304800558970864791392489164834384055262516268343354975249846554872417379606826953567486511259533347986173096229834997671749985117438154651802227803536766454417171362262427713919455957226925976792655024629023195994673384443275644379291040077207069064744572375998309099210910670158663764528795721059448763648254862379405112211066920440826680155151820432453528861267559037727350025161101729729976487314748934060521478710499757062847656664753387198880052326317444193757885541716186518990555533492018805161641066970631464192191551814734728418326994684263445520380147471573463144570081601957330722359444446884000477592543588573628662805522660762585179305790959420473639218671929108562130355304824276586626903975282470141424048524930530910886333006679859169235273893204880026677697575608584951058194754096065510606748745531087683068274508320331315685525416155527697026078469021258996530181036800489943033036282949154143630255182691685230119827573728893360085363862257770275197510538389922489830290367576020262713153058916491259591539986915369679126448279211788905244629357790964374620164912982761063982399821319336230435535499593780339084385273535240984462230054520159365548100168735949783296315155545794691378789844599015958935195874626961043190490115039224605008496817285665835932637580206637136992795029442623730787671881094599079985848197138934067136069604681785711429384153949358903365259262154596621069532333325070324099519516808878916595942873890770739539580186185067645503715894045775557506836552650446939694910257857796222188184291947013444536844495090599767326245743964314767467312860486646681941117991032646074742475694731369636038657557103202984229641489015985265040136920524414459033991897946995115960377109091767535858686375402755666701081211103336362247445922112382862367860753150872709699816596371075779033154598315788756078212883310351581827408903251037579019499290826547864839608679792841968282704543169747351007439804409615670943692954240220595189957954404908439302943493247204123777797563178796792163882903121604187649215012147550064676825036521638789367227817813097709702956153453565563710323719924658698098933421453286839076115299159591837938405027849604867213756175255157042330446015860278994928239184210196402123977699135392404710659135133417227815461153041165966864959761453988271082097481234590672738833227969497678430414189270951035041316118854310280791999887376018953084141664563940020847975024422151733034695614113356981270606397178828116627164926564968962884013897317271677302287401496342082458843419104920616238728334785827763073637595255454266088905051441246357628549457647166324590047394722101368796030062271989765673580109206789539119684464340037511842811866866980388039511039276649883167390925432360324395248226976066636132824109772537856958925568885596243052785308219370263832790125387520846503187664538236802534090935787878493762137932793997098999280912070453733360837366980516469478249642778310713430321169015486239992871105446929399120883853219972796679826564968664801323412104381808685030541132529246778959186647406484749048206804988176838612077830149663265559422845073349913247372324277572654499594333729476272585967007700536261832769646022855342217522229697198773950549149051230992190920942505100888998735305209405669879437009759398625403722801359803442244746444206266429738855226354174342380734669295689141369285168894755063538946088863806814655927807904386637906599826400382944651995984191508554672758505621877382608229009581232603422132016957140921119908393092018166560588912535386483444107016382704900345668164870659686265223601122592202754332305877984548161289748525021289372299826246446804545743612147220784580426485981974311934158490791698666136149473684298322123074422703754199046614165366506979396525090932727745761981013885181552986379732700338363868841303305054548845029115964240362276627691231473876004338162653040891079568766758737355032573196389531294032710892227269774362201946692478489263421411750325442621847892447473361800668819772482423112744381264609993562443271794136912578985008061768086686454126302764109630337395435942182103912193517181031297025057936102791569466316009002267483223678460230113938078287632974559569259902339097034404702850002480656271921660967349205497658458091567069282574812826971505428372390651891962987696822468926410765146845358961957753368510823780880318815339313868979758729837626582315753551487345937943158512083282388907489973998226546475203899731656875620206370023940722981104041964020002012098252269540344349755485195606220640842213541459864058150719303723458885570183180914852325972742591465775413497639195210247137657655047362056168507677118133725255571708525068865982075665111039124935145157493819825088650603658824957067941493063072614652437684079599095698151413284603552079255152451290752869675900541087990075001342312687025143768436107417209325269767977072998151649412718478432345249268914355691000402890366191047657849043200031710711773323264938301708661426300093948154470004096930512372318021990700159441909354322597938338435608661666345003818635371657975094222391784298673142342711357575972082704392051999457016196371869218404324530406352190922428222746517910507532989636603384007295864530734394854754755641365242762590837290250403266009753425201853297680858201275940248863540160916809454295069416908633539271156583508909104024891428600591049566397166815268540486829297617951083998950438256325757232555336204257901379639083344845566500245614719025678827848747390388887166263437276220388958867745915858051638101333847686455372925885551718486021436216754860879964714044926768114011578688565289555804512858669513882114320266281614430453167527816680124546360530618486421087446340526973348558534309771711666882552286037652547537424144061199654605070888913753884771310240580681699097577978399726818205937200107412082284944239113357683194512690271249685849978070219243661436813612524459556017324151486062543937876633913711988707042083322955411265627838137625274739872518399100473148383415310328396556492792920871382560547774524364635242966199378412011589284687234714345414863931278458313307585676386593084167351080270979078949235980446016490693486006309755370650609799418938361403534748092685617430442919307675398531143825134024341422231287825924552212183729278771970667287441827918961830473333478918140739686947884633196633036254895469944971490078294785796973901028120328447261814437592982556301756295341620120673176101158077930377164470879209687619078229823079260256626597409783305300767938223479911490263601432262497996120707096229221832086799670657184565350455172064245435343115343307838435456025716927280725396359289547019936494566747280532176124834327092535252493049543102007747982381473533834119136801505258037918145950044211973608791710067755432237313901140077648413073036577978937607949908324152093558912515166368375001648833631133979350789231293791118052128492526482935423403402888230471444927481435039987142030885062215319556483335476142217847832027278825327928912474514796853945686189274493761176041584670617863298973571071753938449663492996428572224542865714450898379955358774850070770576250458922887117936971201674334015536531172928950394902413847247959466265182742642806231332894891889373870874341511776989876735977091229777906444120447714365463095498412641327067019402339030600367406998890626204610725418584090958881000627386965966185383934342558059766075877552326507059833906356675489361243366333925123890456636893772029533263194269369286565695335382516552686417119593149781818809768873142124992406533810364032618818015095947821194961178105337175654464959871867569603216213286151110408443861024968284556804719107826483756146104263149354571619640656269052267668377304899685198479891918162701228884450403602254044178702799932965849150252061957667451855500592122515171041826405717537198495214547336397421587575452469217290626156006191530034450407386070970405357392068291717513862002830739310958542779141490494322965713670849059957276917863840770924089941133226389528357953754309565915638510793150925518223199191394541097186641108690365527853101867700714416498838156625433933104470302250984308408706344532895317919641242472108368639343798249657600099218912051241187270671914931806792011071075829532708350017920497223598393425655623859061537459392635731980172800600876055427794730346339059176127642552639693686860943541585449340139730822186322843109536563408491117557816975921411918574489680602571530823870485408348441374268252065856670197336981871261403990109045070932450748821551604728546100580733030751796445251405856211814662610906518676877903157479155704285908396089212086341526042038978878187854781866818812852303321024013214359614183513339394674355215942214108179431638639777579333914212784894622579547423891217591168392343621220039035120105732192097601253833685913440115639738173771203783390740648820608532806317908072265297942312717588844044483590830918952231299949276181293837064548901599147454418703104538054945142169103415143088793962665262018734459197156685114242129543014895137810171980252380691858268543294396107039860805046250720527476706472838178090401073174398738753694637570543865006961083525401608016655480317618859512705910516378836601441520678791819607726023320214462924472293538436721840308915255620869142570103554505440654588486994201780345379701415493672929541779824670456757825661153992457505920675422569153874997138234297590557151411214348221846841074709445892350292774846343745725437942865155684560078238472189436177772186020267719954743666915107280473012672725421046247957303488279192920264862893467307864430358381680142663288818778169665210066765398679171676048948243254035539676091463011226435053215257823261525379669307257477036415472957640168869602786826958291559821818891180317936866598832475201769015840770573771484811620062899208587933146405218906365017542349173046250106940404500999316740213236399537990909171142823356065902330871255827133817172184421050031432209437383666358330752970707506347760084036096213588983095428944289638685551394931752569651575057721382365839321154859843035962075204830607587513579729630947460550360416276509167391336596711574210604008599449741088986935435138854044415040874147155861365528359954228016576853244964675320225967950875625518417554332903758573373310918130818592353652899381925624553080202910561149107121347282833320729605576420326396365854297970687433065980108173456302149280265492830395751275985107884818285291094898277045814730333825692702741850669363415392998420566107269509696929996736234641928830309642778252877632401161342481296346787151258022469531278659812395389972096502382003559801837350028027758865203203581948268903601450815097000973489218852678746904841142058442552333847669325010649379637628531544040123475195794452811245337813471220866987509598239594952199181369323279000803178130931554641612555204258857473252869978074886133186631320367357083521073108526058419849471556665001376725668146939790890758239716552078219109471728825318448782311610116979726872153745597950733700737333209746121514204404762301193378796517572605295395704805773749165625817914947647767009210019222950152849491680134223094503038319252675484006336154874029669360785121115128399548327684174794290896543644634510101580852587239991463314668691621382655018240979284910427398603666684750828608731933943243525066473312263495018552278872464539960349072654877712587124521321856044844083664422513821417592204556827934177508417676239985101865366174695316184984911814218089590637397880210111736504356222088259847310062245193634850636196462108071044293389395396762221853829511116535791583803496442653682881547871195689978295557406798741340192930181063542780056507574748721807625640377763055824030351689476680234131915978036965911594433242621871713319830545741711465793338150035696922068476175072270384242289365652324961276639182031166430516726731964292726402618889133769330547185226951496280978726107168544986403476456636002186749216274469650367808588759612116451899105826297134617868324150767595493351423477769780470588682452404806442355012420554622109228314797392961265031046103688951769990238487513570289956153624979829253458819281747917492537073512294595709566660366576530962931916952953261073755434722413211027752686810422293600620137604242211357515164133531862702842988389412728631016726418873578667472507387263086336356389349421810846664243805171869956332336541213792741981619219579354186151694150008972985034396922660007691450423968814529886624771249599394669017334511155790353957621589774336364685424829044836904537462655551115746008130349237636720413341802358297287233510465600066644382388770474719834540603297913561182888196301583185732614725798085215873680473216225010041908602013870583504839764549333728855361878480043091595201828312159247795974686343121631220071053820357285651058193140623618998392775762176496733697914893334573305088995089402628994636028294381300845741236960888945816364623371403195836960022273606381926163992185078461087234901738987720524604943745155581507737215171938541342989799259207089472052185594823200776309683645598172409324764618722093740388814293276788712223772754776885503828154113356417098983183189869142519339613207761098140835305643108445649946401879921683521621802346537864226672150440587317430937716787543351521719420153909137798715853534977659143919219077605958101242768495212749072512989582290620792279782685266039160806049511472320157957857396767602569456867210211587736255051064649982028272487743375753335357671865905490769268245720832056753411393040994767619190344044854232207273068268071079105533416777101494038044365579930667015673619033338447081374459690851735979141852592638910453759752187045923430863364250792306879876525780271172631734970339686729673134434006758366110751997221379824055881092904389938505725100005679180487373394684651016033723799467393011704666372074546462497910396192391985135379058821347970554005872859340750698917282011369034840157370820447414760714734849767257664982695736864097839740312259827900113756861401981005246223462643277541635123105728004592447226727046174398790480915970774111893585352721974623621915081491386918683923115651366756077439920655885741321628027765075909268197447481153652853844657474264886448625304483302384779544600785785597991658303420102393668391662917485738358969129892398057136216956057164294808258434896308297096805534674904050643824644729813951879918046152342075791556393708031158924121531995854083685923004128034839562008816240063788149307715143512598936386583673155977527681306953506557336550616562042182984645527670322514687790652544633364892939164826069522281695079553964157150975501264421684241933424298843824673250961611838460237451018633415274221334376922734117139853716613944589053225854423988172334568772716673174993177616844986025681571119155002988728574105935554059774423379856876676166323006802504100324271539798653254184233204065849468468398315486930308267822946378533646423814639646371141287844090778675183520697956877417354447607070147050892808482540843196001174130521884735422129605200739944897989836747358895539149056177501989782883546177120332840187837489462981498250524913069169956001157081714364166995960222287650556417082447607062773270723417923510246550950453544361926092889873099330967137551648788007597521246320326306638643751177294080696692340547541836594733755242890203187647240272568016605580914094259288985365587961505830530161953070091479294697620862613384990312434946953965382595948260876540433717633334157864015786134227300742071814873539832040459016302326733626800293529448519792687551823521986278433665425355515149557695414514828959985203627387522416066629653739127835902908812972461941765874247971029624820157238125061902956141616274621609627123453212805546930982956300606635165511453974767496975859779252876729342370906381772640726887154088960920800950685550945800133214778014013639645178458089947202509929285385083690377818496547725055076472610124260653805230694663383570957353691905398172711625368617235261892667397087870342268344388797125306013005506187830779997615323205174987991184780223679175303537730229951952757980721890367611690463093915846749955321273685942615099439395167966849175074724372415990866286676741103463822123406337893061149087268720017917248082105709390167505394742934535043332793669647906472767118703144845104079461959717007007894037409348823324554516876634826369657739059020624449347895711374086621579332388954667017163584687141690552703918493805319571769164069298486340643101620930024043855337121207038696265978952379389357938942046321815057469615889113169503485674520641273130794892036371392993875463160927447491216256618676760055831519458115422343202831008767947568243613169010005024572231515110652941599922688726129150898407434295343229030755586773522659412009014406543565210404964884534727619470779098453418584446387349704866466752106088918979707797312807198146648166517678518222438382540130378182477213273239323700991262225027527120697642419086982234950098586777825547386917355381747150035523219245844040988775201200030483200824862778663202781907957310204573340136426036601359314904228249763901370057603350203964737590944418930096926679808914706249294308560528489691166919539409943917565871844180184642122087891225371577666031488880972874369028042357027155592927349075649206780012106155639325121884650920376006749958165190240859298572977492131773775185543290154747267047822300630413000214270536865871612364781066048416618428648751433692921760951616458306523795676711490340137990376757281031541526609552825215697984913235596465314109886054174141052162715937619984885572641389134868195429106690896686812397205661219588824038249156384573664630187890988116474896599882616404799005969533082683220181857544227790616209095271640512470878687970283730134830447139905022044284822429577214375828619567406987071754194608430239727859542826156065030067083899824811045201411183566327806137854111698027295700815620246739102497141437800495341841682838910041393056322272490637268916166300154474868337575572496564554637353818221150540257090113572243111482254320665576605270957507307956485048775492798201510121674909163972688458996435468138592644955943592001836770808759650125591726516906176274463956001576113845633176147554242191018920158608569514017056384990996364195170842730583659348674461793435282727516086369643968898976447010005217128073423548342531962082093886683418744245122522443717711674753829967207628040535488806968121943173301361622574464284702266404795736691852101280612795233042469454214125133202846428054959114989550144685125472775978285026337491377394578666082348378515093157959787514264141686662957624006260983827335684558197790033258661782570504206533847474476213502972118891535679817951174413111626846785174282178169831932943977575212420060975292467328570323160932397861585347948590464177693138938360143645715907555866276749306127553123494762290189094548901818535151366519797757430046718150342795703971361948742593823197934732826664054323239785600184276677441456639664526165295847681474262229111676046096418544446190667427595235539127786169378547649780945534294588914309916833047197931733804337120829176776897027597363131124115309049428675902389950647865845827083856484755393707559700481235491257025805259641310330363194899721957212680291082747797075103404597822887986135116829664832921358088450176242655832398610174493877326628234006871958321866978887285100338573664731635756972358076489026681920818728578549676752210053267941514823286481650611308891873137967162208550468058820038513684243127303927386023698713111068159382709198618731017277986776152376301490151929526577035586894320576756405456201948020564190780267891979446705679280347595936661459350786269515397816186369708133256980058762021642747962189794245133848418949241398927307489469076584227479993014796730478517243549827611201577960641185698553876226676995196343045637141204259630108427036891282307369403199474748563271610244191992154212601318010852336993526512548417898932647030245386026057689423531384839025273458681431760739358304817209634797393816429802525003991917922136566156304273168722822680642027158984886690414744653687753169763933363108540513422086735905965975235563679365574689261843968875180241428178380446763954215819952651344725493308593959319695928032377843671403286718746292696471569328812749732302938617184284089044075196889467212064996498091289731658753090427348870298502601816106669179142436980348792086754942115058697176649113219762747475188072803547936701387071856827388818894100587956166306635030738056662032543517651253511484248555655552482695588634712740536034322442431476153897239793121243597146835079828865553484880758378028876751545683957976677250260140060421617485637999388837166242378946450661279904217166652613654344206507158140202368429487430377947712132542872295115877002272215084070600516921746539759284079679555652419720316961217153788325062929199151996061745712990467296941468617011244293866730077888073135141024261919161504530506618896708097351562642615683241945306523684455081200917829891500038044347995782544940055180268976266174230894635223661072471630644045275374457954862582866518466472602947155591765803417162090863649635575035224335285888027160541421060168150621050697022389764186049273191821865642664148391833735711097662614181675026424336715086468203560007867642378529349309778525645684458103379817143403912521708694196128423412917126582837051523094233164958504383680602573788617311667481779937391786697455131877419709873208277349213244846036015877685608113538721853079159730109537131819298624901814013883957926967063242117730513024615774395392669115965718173671786455610086902924685884171094224253706141424726832046219952841749467366725396053163097879786538900909836576229835226384627801971855402988607086466757842736289602127901134938685425079209766424464133216943644818321840430222107451104941990792031658846542071210495434915643952969704889046681976231492453708003790557564836838948968688959568152869895161248977466921718450713822701612363480231151926196087625065501197292864580250348567391640217101357553808856527212085256165547210861678219305036436264550829726534494348607259866403220657016995682379812876188417049253098987840455302638570899049144386552770864008277417638898183601725016288182262860331948784472083150613540381106376909438923483231611483948503535646116404300354846507090680833268761942897264504968724570262635093578378791205087747771466886703758831537506066583948545777290209338046590092008971345635277630329340481916752646616121041045608455033478183799200241040734989327628528319336101971460870870069073584408562528006472295375251869604919233764477088880331998759295476446229580919311051303012563323222950242814138333460446840793820686121253557317045991267551029729626677360809981741965262406488645766496588026162562993313310009748600032213943533148220286360158283992368921841906861211911427757119024053742720891892454289243793856128582679099184797783061054430375706792972306109812078566539482600041097673048651473865262517899225866321774677415419120759912755192944846941241592167512739237494444116405352235505486939003867512744202820679864712107375453727158654263470395561858681280228873580740950537429115259403499895028752610079292349871920772938180950507615885207929450302264991554783651384967599853751842438265670527855898497543668210439022072317758352540722062931704684366231796553509487706437574775514518428777531455978775930359909939604601042708341405861022716401509138776730046568091613494039086387502872852509102981655419862177790655890141699699627593444386501297657198825928742094919218106897814177926765600262342884439661074330635548572167727710393325570384064615577006238833541625225456408362444279514647293003392743795694635584793349567965721869651452645072201885245168615279458597035432444957842446769430504752424488156725474293364010716740164829675683457107758803156366907300010928443757397717938686298435687409402829336895667493094264895364475205781876977881254564554653050925567753843019618219535394614520280213607948277849771158257004668312545786247177528342883073422797591779300093633759578564832121519969002055401802475884675698697715935189789940025713075738568939316558781818591826291772097135977074207617355357473890995463330011937668021036165138401124665416746813957259462239819706734417452064206021438184078904331537790992296186416760832520827343886888789393160025603802037869396014747172769813143995136942550536048661308582017415037791963279609419973762660405819325381718108570981240749728055982715266071241135166296632460415446913596453608280587867309898354503951651404337399692997921866097833499405516242901959712584781309868614121357552467641579654277108857517482366218317912348521048594562118086416860747976172434034584279686495351419073046357618732231792924743793024823977400788980389557935716338421506242326376867286012584531238537650427237277173383696407113758227677939162933365401285632762296940670097056618755898493409831010485907594072293841107990778679478163048539019351779064141370565541978261036588732362486801372153855865357295602770494048472957131069741574975538015898579674595402123548611052827449013596678045363364895550372135992187831553581319565221947136933193843743291002549025701637848618084747170460720204911995742224237647711217683071961552484049673634598716298667653632481078550190402431966256676664537766218203948290515855285974733355831560420938843123358328838668822166134325199411207037195619888601338179647306840359444883354035613601445016082312635228237228897736420256929387235139146703437136473270374176910029635374389643153248577360232584490130877134077031366642408669874305132976585913136207340319431797956228691526158815842284443600509963335353285309673106343773698696939128996785913219071009090759890186995724108592398238656281073345052847442580762398725841266362281213980151348495141851464826195845406480394009400048932639999380526475971449501672416802637781275381258062257200025007714965790249185776969995395557333520615009581966199666059667378857168660097819573299218092630559491175632015805582503385681753856808396790729716621912195789822782926566724328430047654771445299863783090698144865670710586595890237445715020871697428819360639105963332722535956505508932737838980657533779942256102733480933328885326663542976847933995418916084852376959678260673420422799894938812239424832306985619325698153522128935757082418372956112562775708126330550476046140903437399239707468945790108802878069074960619727782012439505189707904743756307185364872131800460296989953851660855380625226184374765990288760452961194853995579301331889640633576084787032053009064070724453342176137592274215101809741438604690165065212967506986330844661131589745044710930669344943581698346181623506785831298850165307197178100135070953763061682063488224326105327653102585342533691595422205168809441654843636583615427273594510606324006545801369720676854676827810078977545613156218830773744712804334497857015384853693498554650678445038541544440030547648239318610276746435408385476732175510256717049919247755086327043006567323710659964225402984351840281389597261479225106911695714755895779225020514411176427485375113483576413850728559259476332860696799913641113002383891486105363770086986979053406855055909267098699045004196881168438672317196355735371093521455695693006813015164718551249014159499468066181951419084290213426328137479728983250179470531355293801092000810816446153343559285247742332908557664376406238788854305128096796342048820815071727647280687367995434855898216647409432292564692134409976322993402644600735923870333126143365351804926000299218543934927741340740521120494321313805705568304641404557397933464468646479393777754597237183668497751357528722187488475975166473828994728236719820541030036883254376442521228474154775662255436818342613549055064990531156187630195485381509268558963383366229710294120189959550537286771204487247499285943471292264921500380321819732602748736327756314615567330641230602538863631957794483941962396687260071057786637150876948841699455795343905603364096354341315421371653650628119380603419598095880525151356989123164996346763770400456855574205448982020921256391991805347657527242249645399616455285560248063318294340341295709840617725191865359193547499246307191216519525202123131554174063213263325583048474490199759512458309260885239619265040781884020148875331571798140393160214575877316268830277389618292283578225176521395495809174473766723877354357204991542379877656800234656131177351929526100897673774666070016211486520210691446879814068243832857549469558268661191692532934226420959653828100444412243859003268655960569552774466054834974704228336257814224317874392980436843887910678202043255534656864270849060818683417782160463352154116129734302232648518707349169457757177528550282763892319056814384881932119607975480956551791232286065042871899361489988035962042461841265240576237498869206140052231206128953329205088005332601966893494481760959057000048565124489066611312277887264429695590256370326930719817405360407842084604736697661844181644772468167746973303623732293125367190986334980188700375721857075810453333837692289963678547527679072280572988781917053956456173500377076973612269690131212396498771230566033167044938672541241478752246596092228679251956662837040047931802059161550840603588523958038876828611475618787873429710347413698737873694247493708478483604505866970500935057454197867648191172064341597491638322297463189683780120621416341636722182589268544005009055004582406958670724578428089139034269221260344612931109548260663267664705953806776385850081970468603491245621743800449567614218837592962574528907530358957106859053334951292355328921006355973169573184973582761710779567095260730637845735741422818924665233771705459623938444540668930400981889432456179107945561472164268907723441198247917384624607642203438817691225200558169617925699013308427310249783677466503824905283408295836496170395704177927063144790468534772908167433452089777106689642532516416034695120884179271037681694803756379610985035799136351038044077123615469718268208913818068198344887214591274141798960507392787817641268726582059016912048191363712721334986122941768603156847424432467280412735617208928463787109199698659720915120379640831278066475249626745913071219406347289475766705740510292477517740074142748316691102919437366547301068963706659231441939960626442549259792630411139578808651104184360901033945421029834157850627196965599000172643638961046952443710057402421552330094089742387167751447325521295691261543122893909122023621296279333045830457258138082887765475151692651732713579271775854708340150218784806223784607801280474183033690183938116668291799083441421506285581741976831005252226256307908718142207336396322614936154932752925377226607619147199414721107426377770443424424549312511823421554730047960981282134605642308129314882523434006788386543002250525026533825876479508442896745068634135246915863780977861878534113565637865309918028390504133700330655889924087146554229841948848425497663811452179835445854234563955044920935488884632011969593822811106397326876982096346828351128551011677508545044947878938003865755396087991385926913726043388534170787304521722162795166752670109736536141168733075457009797948955117719906314262777360413065688421993812409971437384937419277362671182561604204744969373921724182566333814358028064215399586389649673438918244139025707212602031120337780822127324012106067736786446675525582694182664653900322975617678666919827991055724744879353791679822391904791083271453840639208844492563880118588019574321445506190920112259011207783613519530636834101977376222059533525868006953734668444450320429566204409740754250646353810243345034191711412830817861813552986420594518717905980748937692402607256021735739532601069843068943089002216416255583667993650619481632173753582557117471894422259023582685687023147025109304531540271533049449463605692116117428565469586464653609068007767216973301521588421891058273753864853252137864450142701844133868281946170549600995940038188892455147484634001475771618660951162347023189092356407674645230628865744343327551813886037582449329552848537480541795048180753351386955449812291862087597303344666781014783601092689757197244209623099954817127216297912757780032432361038865136647484172506616653246074700277151616947003133651915673832072361019893516322595625966853296956424832767608792283906255154464425485163004628350153788204136712306862712013767038897039402039324335580062464295880323909684182167122868842303571959414423865994051121548477893512045397726496012254863570415327563827961481405028137393240065959480610052198164697728566829831413624718113623664718088007212152430603073586449135651408753425508213083648153093429814181067747116761733134257390622381782199643069605814846337980802288418564698239677876451188944186639312451804997458280196589967425744294908162206171484393011941425046301391552756363523346354174186034114198995524310257642161268194021062068574331929609287936472383826833781025284755930167679403485530504588468074754249268748275829244635962330309686233683578170573876676286329991744877026972339873490073794131226183621155892728333828760350284829898485658669273651475732374988268617318556508905340419288078834041871000765185725032377480264013463266073260697398146358559832091995880934717838135300626662009395691028033909269695779523065114910047978186637535139102617662591767729149159222227532905752435952940321502173301938640036891640039797560511881772063645674758131670893657082801206101866203042007302192723792862255638145653265857843630383447466622584189384595459792073787265887523352781352728570034065769844671131050399085405260592143661452752085996121571975641174239723258911031210267288808584718287282541504703229003301339035492737253474663640146832074774936706941584986194560683256994898938695109795064571925641625352204151742687859499065679550344751454736728457941710485820866057616322128696015162575337188047347444454626905324093215045235314592941906022534620214226275037910435970300353769188774490951153039936520044996846042538879106036559058965646330739171788019226230953447782863062105222416258955317832869165347346569365351335425629259044086667523746145841217511233967497315663877407761848029159701724543978486687214993230225629931645376855722153908008481947158643368921529681582493201015558729488533183911598720106675123120647921667143307402044164439464329565189930808835968378367958242059188121138693422969892101739335896057811571475041694867253345051308138286200544110238915474114748568602519035655490386937612115972933264684295006343807085973496648118842393590924483736543136225704551140719067411978956801895903409366763856228439907690121613484465678253980168705932195192976528967839169443437417443571534624301576673111217384938220687543897699493854355931273415488201219481813890078815166829845511288476420004982914936209613191979147273045003721070316715551935411915229370891025789000683956316101558310144274539832636468333520277647094742147033311487926743920567696629285535451321733218775151753603090929138518932535412742445464976738761235525952167865882887099414829528010270073104748560927795338503381799803215445412168039865620394990695705472463003389318831899410019755477397719114557200547374078906690330416726592057542880856886479010736267536505576390144705351961671695177260394941390947933513563318838216989576477850973371283236886994642098619872323620148171587717355072521991026330056381750824688569942568344001251271561369795666417981760352474207428779917982649972245051561701731468587216244728893407913997701280395978472673600510921465995917739360707115113438620171787383441441934421134686234136354025860395677357476936974024396720687373135393984736110779469133050108468991991585722525435326979549146668532609650036943944047838752329947935081924226340795852147464991751211132883971090314122680909139675925831254920403166561646608749393723331403102185949289807078626701701099781394825950745137813351831363924629242405541907162876801204331223391345643504992840249147616493621044224886094118480947216224291941649851069394025536930913012886749106570818385211997431224984880719428586350622429570529767329361716090639543719094243712887214610933168741622910887551615668106029982010212188039825614929301025707256157466904971478442421414064828988594162837698337851584312142155252495704868540870770338071961286942232757505317693871755338504876117981393561706596492528319967980077188485296490170333241762126607818794507639242440076620026272387419366689553426808807926867545961638009395364555717974647998760524141894671688145435197567606204231138119213105953244425846551215361780820954545408326254414321466275545669949395740831633423464563900569189253526482810219269613107094131276583350282647545198725920102853413827587207769309946403696180496758107091445976677753251308116540080517852649791263876570296484212523940478046268572836470221869947466238123266298264645483415205441929694254569432899402131588006407003626709508881221313003471937636700320240802282339930625718970431854608981831200341774841592657600964585004963690603067517267673721430547225259781025746119958288502210088686695841747061003856246278492402887685010543888205128014747237525332909878323081727482762843944888529107189990663757179018698274233182283327845135152624866758371740048643539480363662132797551740678428345278179164983734012064850156403201259587337645629608421245110715039277003568999871354472166740294842293098268063838590108146779702649169392361020362783802015680365295109460192225638791284555234930537853548441804766995996371695569928252365034931892443723091307112154110211748529630595319283063171106032480300609533189593121393199244006157037777050853232169992411794135078529372441475522585602921114626121756112811081968868077824016824216802866407373774719534903020204832322217943541830767257502778969493061227998436806084617533434309300636310522254139019680438697726222472566913964564783727935225656442041852340881624250866652852311297362439771559391361357746715591309728543971537725553915073838325910693551578756762085143897652544918623238578534534293383536053662181912310998528386129872337967639906113368374935604458341445195180888726454781522222675126633215149382794122370542312562446153975819398265798734300026576766145501017032966498825913372143340226597997631117126392654498589913678296653292460470296885013040926756403580214946225489946005317822981905542076509896802212882179456770430718029700897827409246870195287806817716916386544989468633373114860525690746878159746442378965413483881947552016547804140012382456494363713254996947541640307818816987736176853747608018190944662640285749491617534925470407760288599635767653088120565612082394248079046537061186158577100116281740040832660753495350489613810596344117411682203786635759601436387124443741521960045846487462914384175096371620552852607709782195880780265624460775680642172546809910901820353589561761976941000610396550251341671185387712745350654384820000986806964994266357773781601469563207510007333064016126075189265666125689265649863458181420866746381234517449285229234128227211252818918078831538996202626581260802195542164337045771488094320158581631462226127429470233286749376173474676561532178570169194497245007997127640353132498986392230930020376179796281798583094922084435919291911116819001845689904721330606434619554510065469325021096819498826018770200159339777534144903606395464455145379515165553838499902797654523708007928983596467395354908728534833041376964611469276533049963139183336788860182424626936937819929559517330824582147883367680083210260176510732922751221405068803262422257784147474175886283402773761486174350987112978411988906149009088590568139799666418516218243786364338765759386822655617263553465438510796945479668657392868820894935535653300723031886645375084905030023595081069781457918735514101127706988862187856612449524633211087731542017479525253340506086383762528067296790790797393281401975750626638184970277217958861735567027226309311940116471635735750023131680484284625380238377512557470798593625063595468893603266739302813967111966683163963962584430894441965499741659313183824278497186380031318585936589557664942512108017966012447260123724850942237454283423136415731665895950838369029106360287927752957160901751104564955410738724735548461257621968868506156830824807005063931244623056361247922110386380494840716139704467468357275596187899740022953819807990292344548356937494722730223865128239827744336203474299648458686798764333847342755938306391279473021449997382007947672270598133639251339863377443792040720994881320112156637304439331403262733262062523335682487828428782824106431928284454396865859848391212029904002277059930685542081798842637815453242117742980883913804875745223301723295988282233756992700641262797830238169145996966649291281135289284593350178487993393840184070612530587277114533280002875611819434357530437075310521767751788501285429992583800241206928633754871736155015945897035704576413273099862766338622114938578826879301176655462563041084445831192019409476400618473461302388521538996837487954230837459612927528405271260473450024500200736002385927832144272882279126723404836484439457697813971821294541260677107782427297932460184528977993151081194188689803164744773605050298250655571375593754510378557474920259060305366815518692328417650597148758458266326533882308063725783391881391839943731774248698874558887521114541389557141104626859339663084235835924091528307979693194460983031855855102351823790738215868929537307676468119275746866213926441954045922849982103908154733582002964708394594676621385757193143456983283022336483497399877643790007514583249651305953526400735321210701813538305295360053714521251665706383405428529274321123554668672854613696141141834495407149454225398017024161090612045802939999847594841581746399902030185226669602119578331660498230811099879755390575015922712444940203735131479142601438308032118411328591699251338758790616635148440827951951245723520063403397110783819401159105352755327315175703123950552992069371828065760740450753055376176919753309566016918539346682212586906873688815973526221669887394891839683895117708856192909109988079917265293749024763431242014318293241893349315154729379028144627977140417476806311782673892308716098716099681166335072872931865287191666617556190861023129022364421536276332327974707483460413047045832444156408311952566277883898097295043480513581230617650658606799667784425308709195743252877645484414326710444637294722401242161253226483972178342158184097451502156572161533627822706024677806749162475707347853504266484884520105343881119736572990980600341049013440864596326766302574929856057308408469284258669180576988562490153888921806753815217948232375914150229132964210074556422765950322412685102353225753080025958757708866506328645543061797107846816848774346676211382609095506968707340069103629770646132852372241118498513197489268124759494296667243582390859417719833096050719643034380092489541669193340328550854578327112242321111433751806795799153839556686500753690926621834931508552044661402580064908167319820249443093587979328394236043471807162483055015450160017614855526732495830053123250148416737239554790948452832393344795824737743449273278348962390294642577468165464612830490136874034258677775366637487521386853757394062006652178909177621415885194777746058533381491097509037339223817721727521723272640530656200144218985912087891718127988332498395748197976479365554044604734413798527730116605810614469290743289664395457955064666702109365709829952528067822502033292863014558904148143593316928427283361327939378593347644036617627520854722463854611657008445517653038928477428680976010461128325269691140238341608214747736438478482470277404347075902352727626003702609857577207400280244180558979121312853133365181229423255923672436918701386464734059761459368253636965033759028264767210610068152715116511883465212415404239795511462389947492392018893238726825331848927505168420919222325621694270121390678071145704728363434235471036521333378153209880313864815742412650878246860072874775668261089789859145273024421912543810083905384619567834385504804855626555368247321001657488767281554960871564476497435631132484218957284765460453918346499247538038232286628324239426125259131233350933921397912677326495097468612288014477867587985202213639069303577729494813049159656665584800119034340506813795768118664789819369223882891230453836964656078344742005060723427638505920828512159784229192738416008423539363172459957541634172822422355902968885718936576129113128122742284327528536417053140162873523612035648115548490547234613903798320638332352973671217753258780897310060462282073772979224182289869794574740741342741752764972228339428495898160421145377052281602276482766927749138038905764556403605134075853425429006307654099183299170764545924784439739123959430761873101992852953111758448576250528168172667110759809120564541292912683765950300122939618081199105526057029230539149232416717684208097241083976225630737516520434695092678682333733921392191788850505574451832129795916988755195670258848255001879728173995521281067616253551031781003865655156459742901316074241318398653632201342680212381203508246332329573135723556789069677490950837126187207817606317747733231450183671544946345441284844323769041430890722149732395286909301198951423685195558231432485228513113981113182423084396662236814823216841589743147608094027939401071687426058121667113977581030471117967099686750244882724104104685941154105378611558354715669040827107079321264742235536132943733926167972974744036619958371394835087555094615673594602660021363851038570037965016996993324457840771233521132004817656617102083902429105499470235204161892817035789606599668028150017717665499478871722462816977558026917648411250615572620901103302538988018747444948150475939228125717551355071904311797224604262330771845810132937867361257493906674330751923064319242997589626339242195470313824132191855884378215589632952299917759810716629199921019414378966016153628474009359732539814139533471962264669312683731966404720681873925733777523719506150735733429406644908639347633852952810014574035076857728208598435926961173623747717647769197257141849302719754569742509522442021797971572904056986599446629991307233705452289705551301540476968576843733910939600312270037421570897050595215324218177408956407695483342600569026153623780823610551724904181737683981506548688137590716468291940497721763686657299052272322397076274582290842915233637674427180921085477666487424099661475844598148649810829316933584345450213705345962392369795411775615075115819582880504083798930799705178267683765240447361234112264527156890054845036976731507859129649760692280371448343366672192238635448069365504473496837801388473428667051800808390587245088892540902517018090710981307150428859996259116941053281914411517353846737156554323186075652889482433808144173793162796503223011855822455001699067096151754548839393798868621489111381041295909171867520080522668611759806246980158406880224223855498717423973851295496211354009112288815148199194492947153738483749276918263101660566290414536957002761659755274784850206996026780925475251888852865122306973456844366861652378004483576347255903891287517123050185141406432574266727869488673463132928230186941105340881439660433811919719402297631326217300016449522068649230815845220383880576892781399745043284501190842825539444064769456548220761215029410427494970170856242016566055241793792331751605637693707213478458774698181877878928878155977985755971067392996994961147834003009385213753568068555041567436060962034956955181917787124708026686213112319972433712762269414942280749412619581060178968493902575147820548860411130888959950978548430996241357384771306443408089087395939698316190674800215025772299372864517249659509673394218301640620683451305572760186668168705712629656953205713151139870128633343843080845508420424763071565921808565635665477101179189890141333046924802032423630991748254557904157852098579889659550957224729445924593561515775955903508101688322882301135188418000829184793452086852268784250592727152035226973677445732567533598867272296127160513281696415022686108690487343155352939761553160402894456372369666816483284879219978716907839050829959375285311287629644255164469752971672456862016491385763635524552548462059716871901375913453457437256803936268118608261352697788235060894601702660560712177652248947154384146637225906615513045838119570541038140166135461268409549955607733812894494224386773640006228289727113414573406545496625017504243514898342394466050520529537284055627001385553924060052255525021845142804929712684383949145596830687695265815615734865489354308189948530954092569289797282322280483890287001215889350055381484984869302199685368694075666761969593752046342164349593681995453522464499178702974674313582210893018466897277533872180805477983223594228866604793286510387489249044295084581484594061905530040277431262679477758338539975463155939656014087684245817222387893590566380427802878893753863127654582883614256970139034749762386649039216663487593203307736925973844646255211118928913832900785617227638776520880912828632779335909476387490991921624338843689677593368876152445845200795346441741712044405100956202475194308891243941038272456879823171788594869823367948835157629981611579405185340216841050938058283561279400288272250575131176884659961674585648618674301966941142385633265511378584546062579048714781456533703635200917964074045446806486245028960717802873272366376612537264056912885240601572118703140621506805223448767899024521305052277560101100639259534109394205640765278132928135587279942862197607807684222077271800872388288291655915846633094691391093768896805579190278135286712271318704051994623537820354458849051836465147502305228412827315493704641890179632544870258451423835642599372007176735927539548620292872168845775204924248103280927046525075126004524556746325499904100421562171489799432733504169962594620584877735644040853309036872934240156274000946761274845632889993799507885817564223387456664120197616145168402722253817850779574590507043853548011261584010123323479386766648644866565109531515357193346262569229321635516826225816540219150400957802808550960614804175443925474109900843375943187255289219922969530650289001460117835981110618958310287185241356422626092877352198666157953412145297908916064821619333133285649303138705776873132426240900738648156860373380861799047696831218471473863900579227949006271830700913055645322515961347938725556859655082916533730909853147695844218887865025743109904259280910572736027165758438901279259801533250259176450681928158844309689785677543709427039909776262621333392154002000153614210957098707915874051458140877291619566074177082921044090803536902101723553807616114036705083633349297222930156117946803287951095575700859412381007206840180458804909879741359509033198396969197289376245219881082670039174151125461955687646931417274411470139585968573425716636978004688490956991898500291260430867240615536443169497166226127030676815655940812155457159922900646704916772693519471233321507367774335906280832583263212562100698645778001433205918617933519293527277675643461127461793495948378633809439857583576804562426270556132744989358734051122683940145249127055952918504027835906052765352096027912480332170039125556398058803704451291744112136471607675366988132217539165651395302694894036834463958044340642020058529516245845124353502929602375672135660782522158943001406806683044278342502306933406633791663145042585584826187855596275213035442652246322450703206664647786682070027571520295545373322100161680252828017870822818720139436790644796040983963463309743424587360832982277555704564160488366767990632323279367158939069836658846651479661219873634185891176023049235247867032314890300554684445296098001184509355615320669139737334935250910996372890846398833384209727946429059792497570376608607781171306739952949643126607249085942709062596757360587850870155238628035576468973567440112323690383718112470259870501119140535611067219318358666223676278329517470205309907452395302287459839893661979580330875995849438268452365408057776639605816982938041207676064657296256708428521560694263273457603940296033519275541874788370289869623646078896454416895553918760791210435382196588370729624903997691400994627237208376442217288905146334655729744285615158315894580599565371906616554740741484837114701376919384216275391790288145745355755589021517964464383815705135925216750748705503001669516172100244746052056180296940445164927005955045333890264518161004246986158218818274081548584059784642209724815809971383504003151250030328053757484362504659038019780424041521912396648061379517964055662484153725695731150624280502354729114491688742609147774681021912252485773333150932927901833856803054105081693415080080782690560056750391316271268207427401008796927948091968675395180943964416932187030841557475871491881599475853090321205248875692062176324610341716852840096417373353143250186036497482549953700154209429518784736555302971760654449945877765751352446576094090771137808945802985225464183266063519030613132963362334516795796862929591782368104536808016653110649656334918401415693798857637286378122415253204655878198285618814167652713765393964367489913899343857241425879943394444358682518018232396700916191345260652962830552102959683551522801158161249025189512120302735923136053145846043205163830015426827437459142032315060693517430089517272024986379469061371818571909915111098251492742773067935856817575600476485529934163929089830629096557176225113965284734055665792494889192847082621608948763650271975960181512840181062702602587331546268327432459294755261759459459524705698503915660419397855542626883226668804463101998788626787674250772213375305767242908123390556318623587354439090038198565823325129227234149153199426782367472220049540752614218192248481357646025995195932391334574244701353921446353563485200249833794898425076161172328746915393878784244667014178426827490569332727093561818606809220405125894073843866129697067785506024837408653518140701191475421542949187920584605433379978069565014993731844537631225324736648359486282039621289057543248041715190938513097395032469904187904456049668541715866080007076030154548428821303523013528277377518979758985268445908818229709899951504211346059107767323756904447504699696190322273767171156217641238236115308839122741879999643627359854362511663127742951473684271331256208067213124098953541211342745389427964483964532324407961405668154718774714328525242078829442494527353823907119514021342372057196320105496397711369333948118754548471460814387618239220661724412236616680044493996628142073573809998463009786064221247071605845639438570377854333785547768652932158585056301229399848016562006200811723162275111259363847303919749230504360459420291023384200302845329363756852397474964250196873151343350479766494199447372191581058170800029378708179555652705633156313105284903696530413164768383475643895878349037343205909891069473532503580714458304488411671648556640507861465840379768897379452589002949948104704038314228541349691938560596049456666512862946425328078134801845339284013047699963671109501619050897187997160751906486991673382277506051712018486058895708855585855787197264112899450695894368435365568247055502740355830276319397302226261226078199964467599255547497180977129839274541404677120355027872601480455549376672578790777260638867494309381602152727096202239409629676364066037230154369915034180689223872661559926201699262865694823937920796018239636819719661454648254273361048953415320162720981663667420990613681585327177306024598630225160779494527473318495528385193819570756056037387135176249339778587820836448057260358028584990979606612810376052177202308756633585534165358677493657085639650726186572447729246777181115239908982562319768780784349133106969746729865195024578469687106406140224208337450489972928937645422920003656417591516247684236192769907599506278925799280319518493887144247631174181703140590050923716042550467879131456246479400830267733483613236807682453078306995488286719319175368424268704453301614266937947452666070616981016523494518325075964443183331837237051828634092084724671120666096948533997083823940608225121331678013013893636169637766870255597010408516266186305401608207299095504063905389058925658872216721657442646767548544577287944568706744098185557656928433886272394024812895792904234604200265041270592566076768855054428025617057088170010509093038475332288319170473228109670021551334385584806186725801825681113720144550653688366519958498229951910847764906461686171917430079473883589595070269343853740173925813633224470849648028302531883395370569151192113198408804768878574880598885321142552919745919714091340273313125451240950629338381388239476271653472761729339291221181449743534176463116458558168657644876717620945416435498925413296937166752539375564485369689340348495436847734750833173878724506984958478763697660205202885104299379075297154310286011229111977561721813714786470981822763833103362727507927172827154132629338087494099598053524330472265668934942538893572340411130995767572557850534461846721845693527365382706626963402627102644964573392005105156922427236640795680069368954703452419575867380204529678731888573675848221495622728310863439312501382976866795563547240244035010591501492973940886230937924945777090811026933268565130147647159373889332048626163982196252010917247934120311066600230663075945833055748223216429190702942286999797749579261705583709465897502888308950017611558111232322117658974170364657998642307298196955783514489664561772473350271948345842465467521702886627337000404801445467312176131531395292492053529281947626414433554091039545442448334871642564000132295340478575942442013634546152136030760071172920986057330235380598868697533651231865130672868916484285659875726757297064001749782003946000018082885017525656930729163628736257697542090329697221050928205531708792594980309721575545017883107154469339044141632854226342544539594877718048335376831165850088124075667912364602042734513096156808490444216637313824002333417660084613307107023925712255196434508326234626935590110300338979024260373666236680271258035157688517344773231818493322521663484107080072645978967356271990619518553760059963000887819069714970517482109207265041845238163408124671745942142208385902479402427805316896961133983897205645638845935226795220513231873777239703347459605807865102180611324185043766788456139929038394715147098681577898571009971160961967725018260751411842850094303978225113986576488621292495474593005165837228787447852591008316982071948461095183352483214675286736811674670836498472372510532962794817364175908111304924012770684459748577812785123997566566155264186449211387625751027975581507051102884833794355250695497014163088428926593760325883970347042356602421796087018908255998416993333386799476990678530164756125633409776794636076294291505539067123698556207955981338636874772221910093440155146194743733409800258563260166741867205278180735264890599723296487413633889602711534791587964526478388738754999392122303957456698433799949232308027700171489901790169990171512697845361928184093417042196217734402685973470088113301363310336623919982288508886152286155409048599496925393254966816648711259709799262956076023310404563693680953189233688912643299718094324152320206328212812751340725247310917933093472062465701513616265605141372905357222684365392983113036799916675645132549466804594983115772561646876034658403226851173934871456864354928090087203979331429252562069681234034847175749480954233909091248832193175900076527396152091001607940562683297225717222910096409818262056462120234209225218940503702165509673333187121862918321351568933878654116829806077709460884644148222010102010017338175409900323613900420356978927536086857223661254290010424848955875860774567772153274824320631277181195356547246630298720986529096155479915099882611076175524212050384243408131269506713664715995503136580567363166220191771510037181090612260757867402540616847047965675843748828304282756312424382588214486354578097097995918813718727207620988055379122862224656401831982080195570008316324091513477726594765372020502551352909670541626583631116079778549849990875952885878985936745326619641896327108995905589958254865847651468136507844579401012567496078924905356927669340045262362751790193240736716859155483303355019540300463298397792136389998984090422805400656279223924411150588270024356264311819974172664843325486253690234224305916826331264046300140471198351137354311459711192923941764560459817636748077160595710677856377850664636638834734655600815109092640939963693491250083742849920038162528716663218264000795008079383356126060067492141814069918951539828241211362101085119536147309842405267938741803918173280498401584265913499743297991847801101911924067814493979980109952961953213887816805401286553330925061160525440966896044198871874870993060888691802613273799712675624020761849571849913429736666179027281373435830219205142267644400978338397953636609020821793985312332747762976755059879128311216484539200307574957794457177757034786634279705329877623389255031941038531160821795589164533057118247998298032563998906816616723555937375352682103784025008971261938989191290856251844306584415095822676119192747539011589691529513567467302838977939084554821615403793249418100763365593059275182887626285880581146274282093227055790232479999864618136852742340571443548133007754662783499165215509180591616127605741393574282290352711199281707285535877251321297296451819266990409333983700514912218099501841146367023413541773638907292359789324769144540909582768725364662671773695141694877751537076751100700746784970900894530762248299988276159339485249491989111659916962350836069110957802959819432235543971722481679541042056843537867394407059266737128411978830102228195379868649959185277381903254630844897539099818304037237624030976158974909221331834051121536722656917296785337852648150943744230601279076464549081468245796803145192258389578696214044205858300725517407225179438434107957078574929814580057284869941563349257028954883498764345145523551966367099488809404822991308013832934090473315649480250371557899609493234947072705103137588000805467938849983096784784488825720700089855104588682804410423574837560540243526999325441761871048758735054138846978039274166162855632674127601963716760053541803584127222182861103955774113041170318015326005575706596988163850256187346194344094093554254896708225909352800006189567133975039725171673032271802150343633951769097830062917547760881159751042876476661017156645836022742329116616667865719436584004640248775053226885578249160260650133641249305170567640154773252449361256152699884778243621339289626357984091974159753486955786413559412087730119308617451470276361505435717856954053384775650425222514400138890845468525026159821652278651437343586157320659490492167931531591633643661904160008009485787927472926487778082557067206658544038244096425572397180253432274534971342932951050643465991257477676205059815390260484193970435220230327460687139175781614044923904621876531761528280973742617862986452888027891960621867163091655323552950533712642856357480986815242688616608472202784303873082130921452610915776853698517863028044492726705379599724768817517673315756583771908391764767430977694599749325690225320473627188050235134449855302010587208681071614156768859867730355960058043409185457729599128684803386768700562856799216100923886949914372181515931639367431905343392278200724064170732094878567337221430786885857706225073933750008228063759963986915877655763862900865036952023401423381895156146322302462394148026348966094295654544964785131398556243077844939455087962972360433273129328817584062555040715928100603912374953556737963528136749446295503640708250784900038301139162524499481068277325971536144850005257507897363737330552200886621750182544726888565485265685577886084085769175689664936503663637736503120887680017148480909559179159322900592641323940450161538482588382232890513616069001352791085522723007761809101699000733810929459725376411556160097553272164643240178218633483554654391330421688231505200552169220324555098953940895102658117514857640763848300593119927214926940814779057746307238133732560147055771993859468395510422618943785356001838705592392203263376093758187370851839359226901672939109962402758238398069332950131534931197856833216059635231185533607191849183710242805332786746745511038041036433714255781821987125734926154561802441994324622495746022156595531485765038020105062542041264295818463365467943551558117668151153288027887121509980120460941181758164670914342803184415767266760255670353258654614482551017070651078386149477731720275842875102570107119939344043813222223175675597256665120323301354352900909174994535498105249632690900414893855040872834583746033482967370933409779088903375955729885889219871696116690564920724392026762030278157833293704780238478265553568594855746629112655999015119209634222675505457731656247343962964306171171827968228207662212324600759079593098508099392604208472372002013657925214912137181022219768768356329341639952677242133768555677498763632622755153781390566625560824045286196219894577467586463099436994079820785718550485064797145117755985214733343890543872608632080462992469863386089102715683502720529047693387811355141815149563230548657622012521882615325265431803608252858587204520521419869500376513055961812094961578800992097477822312593504456545733649952017852469926565877787492825637454824949838044265065644596765724592560146552179458638673758498026313608351908221089682384039488399385932629756255465429116821829339994494298836919594374395413269979171514664695154947962613710394989697766077767252379011934927169184719454359828917450531482472783001267915135342626462254225603883915952453248221417540539586276361294347291142554263840883280288987754988274924559598469203760886341213493092046124183284016750725799811407966730366058523707601207402084229894704672081617398165102870581034866600998868808971456554522538099144890874780038987948890955213387654610028536705274200043389406231304955436968988459149299742088286777463224950322339523558962385249197076686571733947765162576555238822741821932937482471985705114115383885403489735445402563706643257317026416031509633107699776158262511968359416946138476398192476992790820619637075122185226697396439439846701470357330235128939009144618627436993316507323898767098056828358048948194892936915393423574589178557310430723101475985086764474472978007508760002864654692633971005694313917173081572426515114117310295115758296644006895707650152758409640406248286409515589175971537092157671487625127423216093853477501302720074881286947596785405862781228422938492673926203991060380682785980823837398271834349796994663381500072908561964575469160498600996870279143758870911859980712749929653870386966326792305069930873587081511302432341018132613580661541369819639599818026207674543138908001085203470368931878168339082717819195198017390633110969266997451225207949530846486705534494800417382765589011313254086912390220732603830228708064180726906932312230702336216652527054845280099691128532079617116998074648782438941439800616433489188903129492220471218508018705540795283893885002631383650919780348189733214405914416816341993292314488173496814826921524777893036313591723386097028081552249892431434145869128822408633300440421384655376071293489659708357427810679353860103777317383918535830818103749483932740589745960361173749774352875082471762959641330029123042694208444533569038529883770176922695270174526004347462912515356477559923858841116765690620727482728195770590388797672038070667007024334497107488897051650978655440351655946937391472520131713376035225666828034811277546210630532566604326210301126940005541225562495808869841074365291103554399680611581294857480237045660799314256657056377879002757952643426822309276827737900812355774829658400097046836538732051597102301226508884297993734105835779417732390974164752629755064085337277198620990711492087883510773359571332062673269250150983006978909588504868321746633118109111241517712285319086807786919478633240992684386040668261777797494180872014319434735032235732025876180261689233489516594445270094536134668353634190937264447013171180017365248924635673272975149367301405590152453894878166895079441240818135162946854911463397394557573953400161078782248918808674510076008147804570550782921332479845032377815267865124125234283073749925549542179045354415689184141797158508706185141841203354335954580504309347493412895360887391620057908629762398389913709761535902449842114814959399231984606391930403910848488792939107539238344606157188354176675337805997769914904999701118034199172446975416940434193486661470825753523241327345392294228056885158185773495773919393583259153983231600597267749258148481916241576005034561470740353414923230475916999637267276723277224669445385162258414890473623118049606557854091953534029773467124882908608341731096843516920807130348597563614732130049683911306907561119361261590407774090028942805760996217389047262072651942084273058067990967475127594178591930152688900925696060707124257926877388579440660748968836683004222933200822226380817673019073468981301039416523033438118160435107705587757431300692150888535439839277908531253909757693771029460105063640679462670251066348147493561934801522831667441233743304365942442912553821895041214684826369113809878880803678127280006269863195558076667883111561817151366217804830263647763132326118221169930320505638572400047188137742496524142968563751651486296145673422427705789355834635269105078362896492503100925866994839614888263976984254175940868368805180091892724786417793154639269660573763624415598126119764725430544195307576000388340964361964113705542874790588876263464346144876333155536673989022374146567603140248818923586684077024301678652861378520882159014968034624928387272464752831235322172088432756550156672712501530082162592617581216774443981267229336288603734789259126707220933888400238243865097771430942005985822495206839175131306269335322762222262796319307617466994154251584087957101528911520836303277475011203348456858726678908680073960230450244348077574693685649331036212245397267659598908988753118845400601909894255435023144614086126721736564956509268400023507298534580015031895460898945202578872110880767641596893561409992065234140969718744647633466108965777582312613377892123359318690127889565076142974326630999916339619917115914021203930889238470143627005604902839342883630410848574723414260171893909234858280733431662838108672598718607126572250715763478028608993487479832082305870887437458764142370107430942530093615869355388267124266913799312654760354458080308000055575638646108940787284366285947114544509460668052461207941265977893291248514315380369573972852159353378801487288097799213194787444473021977886054166519861153808156424963228158201214798217317840154467910782657690344466798138887211820039178566864455649159502855448653605562287592887968078440648171571500968590909734934225396666135730925769482326338072877079255749284751759928915808730226937103840818244415086324467300604854222760359466573654410155287596855390033680861955645585861747572041489172026358555661156731031084115461802626770363950644368779111781308887865377620777393534891719507669804453578208696910262092486997804276569835927803397591840575016320845579489166148056072930188693611194656399023499309107606701638733923996278864920419741982141317892421871923249766159087114111671415296361342239036783351764230889975263632090139763410455819810909511275062667046757670330823514734356351632795177117807140171751894947986523126775094318837089990276493875823681287718719804424579342233056308414831077609883008597632570059646929044874926087828426447137213641478747094605496443069735503337813996052587404765866239480634633042733515507657456868597544358089792517716111338085774649078248964955619130396096323654040653432443035143810135882963715614052914322658338686381955493619862965557605929057361613268769153947464259705568024728917159505069976544447397279603253797321273446760241314199403647476621443743026929106228070200186653888634282670754310028855891731955000395303744131749864134493922932660442632490327494528466558049984399407125733118465236589356554044433464911682883404724830263121977714855481314556519343550684348398725307219345229782463773283478162657630124694511181165879954150773248710248123560681423740391653166280495053141692335339897620979888417347853383763024256576509543180541347092817360389717057707441546943888967475196504660066194893728654602438806387539197640282270838254270814513572010792377729414828530300008597348351079968577682233068578291621567172992681184913694761986825772940428342008693183634489800951390141807769800281591806984698456170275841398431245525878204881041749903030241114712547496965587178412913649091586415779203225373195557885345767471786447070855143192028817425641827263576966837528599155283478431672787038594236983996871334589910644852734234788003728105871115769953159978450814407403784234531214101844446587100869711607251551588575493417723215078063280140392272599005300292199246702571274603289874151583823987734197643486001646144216419208508658111296875684237226864457360013757993254782548416583970824695064980596800388694696390606824139956806682011391778174230757949857921238662949015877237581833332872160624026448325251648826251994992419554823504325485280010966822193404908696638611618442478325859341825063905949663496147123254375861321445323673768955215735893839816578588465429851754242846148442546196558537814070015312341845755569031796323508056414663368189121057091227502606240730290722812544494824677858795459836929923096090056344380103736439998277310636252769498555407584223492081982085995343753577892055861106467983024230527405064473354186108470057647206570183308357981150161886595736886838582248479502144645468364944412245165303775737106310212434554390120580704915592979107367578909376155345590480090714323238637216554983252390458969092806581063274192978894350168017326193145611074442107477319115732898629656041720502872539199280835939344802795769661851364247729148526383658487769887089963756805913114093785774702284983590771495607298943566418063557264682456648772835748920301099638754847407657186378980320340757696578552315719391069310707830662159959037493678668421590844064417973985718365312779022320195569604710678993920202940087122122044891103627075225591296633685387612279467667247759488821804458270369744311613967380872811850755359585325556984197189662270484937659767807498697512965355035249814049636448129259670923810568142985615987329281329412147556616164230810373380099524962991832897467906829713718649366470723044309512057675079128392959717214150771460265145387962570555525789057275552143541926838207893349639076267305703465866436723770734167265106841019403831512772130294304848968402959177199707871806221075068857122225964887114431684633516851077033500244076656932967555142180131403092792647458504752932999310071145112393279115779170409290738610620304459556256566023100927089502113034494465123124364125979698603001622735167436923112598812637475392290554732339548175708761476630615256205616873629226586956325344898985502956437698804834212815863075205728836701213467120912685265952864194439100630233217166446824136936801500586428640864622092775733071800847330696153057168297798355040013979875868590728816251796618214002517939584266888462348999025255188868676284025562075429871411486303018877777887073344931738329152570485365285714032624671172106312482747809545656819808831793692385144413412634169463947438050135178221221622550401544432628930918422496705623818850289334985019710435378694659838771959422106772422356018509313828540006617462298303433750823169060278203330820215326299909354418291575493379271156502034785471035227898538331705803362541790415837368800064659508788604383550148880138510903577394488074908974426873421229807764879251796470483080892245717271573830837803915517225454507111068770063405790088244038038671181912793254243830739322418376235922578774586096152080327792436306974118868192592750758344158164196806200001687215563044829003734290216975115721824380190991442535581105798949850403424190069923358516664571375239612470315822072559728651347785408894813575678954938749075289068805956609632035074387549553759022501892876842841428420703490632474258923638199566807369086499888410701004464224083688670264148940349039623903450585889148162867393028375276728768892313672908577814558183195780817376605768494871019923850114949712582538491350478007954378191522475489189119615179779325806353765887569372348500448090388010422565269596035568843675730305959279304926441066544767596708868595036980821179455232758959868568247281442556472792255568144391938528410447455762711727516304127189522281626977312624768981885149615984810309762347031785335773046059600000761915871514743706303514305084815190406440333863486283794251978019725576862962827826767647207798276678362960583516058650560389578242710691752030839294651161749102301351708627464225798689412635247619304906186908020113285188100849233115702953482311610108473052486668590594333751086352266869616795175296462227068352111925250977308795986904037406671155426187635135580780671288921264844737088970076690338972975682859223806986684572261745388615537933024315898168675978575939989120957840517449327136160389132339471130853301980213624278810806663775893965780202995433654299217447399306700698268771579586100902384999291123541824785800036393758015412766073078599280783180554981487834243668193195388549568085340667487947379863963185231692735487518775012064687283660679367252016357853049342423623605667289579439263403119705302004126829580905915833663824619176564821011967656490894042426896222793893026709363254107476678993515794464575083004429690730857211948985235843625717624889974432091060047453994322722695715741973236789090762865617706502794816692254515462527574375490552241468460020087324449318894959619869362491071373567548413718523512110394653235924059846488501282708758461310017572389775072306399934295419456601822835592823349582002455943549088684913017031265950376158914446131330294162490998925512143847836664686611488176109053337559651777804587231484943511220485449394410647306179878952824647088438690106318331521314528829963819333503977795964773687527979151854311510617533333636386863739763644968091594472364311627115365426126601473896541462242355498456273305832598254328611683141305683301843856824305784423452761856533683482459684278791738151765289192039874868311595161769220487021108472113933990099592666723070588149401914067205737295831312337156938165706609153848896549070858101321676760895495107220917566138661676744322651893424156174527601579195932132155145319834720346058541762879094384915161002776588306785244274281712315653933012187866046469032128667906688136283413936032786114293591810220599109780772096756679251456974561782504327196362232873958617126538281289892849895217053770480350889788926589077676837646592596472533320567219474572020281451225124486247450875852678006262824426265599139307300831739310551926586449168597201661977872536939463168098055817216155838210690901128249977028484744797687365235512432881349823460326814234501096949142223529483218231020240665589926903786911190879459779780689000150020170158429000430061310769527377129203118410110046776584913124180021859449982078379696315584636542298601879135230281581581923869784859977827488983282908411586141649807749457079497277107093491838511893422030130592508620669483625794643054148825123956344179961894794659984058492210181401945691609305221033257734461137263206724917993448686585895276829902721347005779742523421757187259582163472683260342496022477878718137866427196762717951455186916522369273709690850126103676935681618189660708723553198331232103524873318446365834280360805480137413621672867909087805639756282706585334008772032647654525841895000421568232429442156411335632099232099077268493837058077256640508312311072214377273680867625847763687483481932150893540963568300013421482399200189508413629795153024008800702482989256733644155961138731970372890076253925673239774456239967973263239536639855033710177032530380285807481588430487993654633283063962310837534949028849018284803278604241981337975877776324072848817030125072126844854412692607441685037893485732609146429831335744401879702726526510514894598599319918462779941132632865732760029000425216327883381278258149229384142971923552404154581048457797604030982865824715881492184210957494278033418515001908316054941338401974761928280710755110722918276719690928811456072094458393244052486559454711456012088595968790949975584662906064879744209719046210217632532675036151865697378958320632177706512435503302252374442220756915648945823301659865748620803685600910629719427293166617261747029797295231316847176855075749925436555058540775466922826325388009039565882807363715883432296893312985617929260593361473453265388865224001011686111495812601752465031938083004127668275659246165364274210577369369979786527613036698549752029692152820183104318559417963260711414526764607441257060815022082288054822941468303521394268268616754935407082177066160919202462184338058296273460412897920457800283952259998164960392054666256141938680263189144151314387278547247278780711462598546331624385247345390694282375234913700920413730228440025626214944825334682380900584371371823501727712180623241351937491312041567307745861106407798439841066229545959069770967400099821478050645986604750115707290607839771973688073514744707156268906652380287192023042178058764555956136314350964775186831284029728422836692477822873770281332653501863175789623492105090154629818781967881726397244730707929015742474732925447142292730870528936761988935345698369333198425660827219744621096386286723660463949487316772768251755765806109882933658663896167336030968354566139060047977829130616948606994437212768514818327337425334824109765962718462719046628942233066567380228818945485378021644939200057942107668276148634320979014962805447178544882655683533577787848599940320397793848061671338836991551994493396422257312127647675385207163098886267787301515358453081333666105980042441442451148238161560315753202816231898113258862620784395561510353944629590306686239054579775270038548871037744383086691612066139836949701537900791008804766845709900725327818444760844707123606554892514499444374445558867859667245643867014183316723964616436796187609322223789673441929585023646019096053074621640722574596974168967378287570384353407449395458654923298033668527253663564594674772680447989985849542045436100497124767899677169073895029007940972394245248435648242131527339435958908808965420353173300392069242949944231738521921925422618280960492215611540725336380922487473405414317476593227633852181424984841719467188964593745758665473741268731609796719126584949359494269203724716960287869138491111140589379280086413467911303534732476190567538156775899759619924600514582928211809150099738365406714708377535319944055102223912133043438464685217338660791685464934041184055169937339402092718139843921380251397736764782045000780234110154536912967545681506614096122271944708961118994314934381300844149847025469635684562925784753284740281088190025864221334786448466227443401252097977521733283844049151079024693347534344297526056644644841454011110845786812360460028935927305000211870272560163942172306966429150989185134432012490495438160591666235587028567429759633721826550579450080757193584163723050171668090327126263967224342578869131776294703806648134451850036605114149035041217082833627655231807890345167877490811361737314182073153163933155695874503223891712727209054618985793787653681932794221132331187261752421713026609948857256756473199234599647256253355739904696355489850868394860494272962121364804788434350434539768375692136233485412951237911938859985390826972153328206990080354907792780275500599768694836443154961013189710775762966672786690616379487611126772995196846557535317599010810846926702636338007757510744594803820021422582957390926221409026428911440551750052788925275691216372586351164827840557660485129557609240358780545296064981131610938879908177347458669563027991152796417912324238321346334202047769137038622423240179212018479751040719667576873446350693423684413097488185795289763916419332078385029725975827406225649738049836716952311033832338712120052339777590377116891957299794273080740699861034174895796739764675108730018610161079881254521251727577323952327123671748627505211049326662572213509865129665725584799170644618056186222598239171301905951722823686388555558982200893323490818543624626854590586901728725518927363074620167231401812854224066243531068963450765943906448544626705783038371414328069531792858996576251116642234245984656372756385867689140701895924090773729248633622826222914033267496271827633396034983415970620749716379780129870767432621492736512985609170558070249459037580548379863210581610081692202331106030200513395467838750031605578461341469409866644069977424713076992277711937210166195724842117002908920790502266097443378138036880452450995048641349848047381918524047069439981317564127650542974281447818765838420890032685102886795259679120124065094737496423599008410418351313210883070268296765353364200524344956652175473702044018103417346402436089793930204670826808108950029108074720538804737275499132646123233167479560128382330324708567631563150411534142480135058396294341856749235809941828138103351888378272807249510281855939405062403360869115923777378179227909040790902232330869732249792823986843600484657833671298140925202410755672007906679283348760714866741807004391561355321030214835171040636438926407699555593693833601373141277720848011479449410643250553013224314724697384011287461267438507274070815216498646583043262105960151875321442531995268580587398314009237953666565284509160376374122423399699760754605127251227389703366489284299445597149266870841746878809296755730574365293559345299874510435856325756274762764786588402398076217190643163174059935074823656227966325670953099042594946436086350755464883871001303414162249825240733736722165262396679539277143362305796253907977395824337598991530143201994358501262687009135563069938339502299586178549758061548150365315572869228557773775341306061929017079728294520276456522626644545522036518195569584723256043887000092767562410126426906428265646798624021336088111005392052211979016694197073865262864586785600221550738879122508313739606927544951557085405594210890054111164868669801335400879019747355040158532746875658262745740126467797815513948605759407745183487970305216872560192836273338872111733803431571823646325278925268716683050063367795976482068251161771721119370583646483680308233590640492979258106271564303500288503700327715271765975172493092815357199076234547136752316157663403589663480370911050273451657324918714897488571690437198237441491957892226587549316863065724096478879610338401604838333307463409725797916155044998065185848076130022874819585746166652261552170626758473187048515089628813670269310138509653905716300006741611180324590920737505293823361969002153840831598395970436957844321511850869854301931016391236436850992277652028937721498054903819984331257683622928905082757167322220151532922836587711101820077969034151879670930504744923291670826513689844191603441103070900818608368604480222417828294074259057253170044672443981996776002335811126583266354841318879994534565810317601862026573355961637937182816779307454694538318295449907531281436796249270047974825112124934741605409950145667959148965518516544250425308202950326617283666618502885736053219972338572702164290074371370283098760353342049138787764173561941631046563253886168008964134606509434192482537594829633461124974730961260777416659418777343767847869403446180085517026996287860471608545575770030897878903929733949240512304919746301816837050480382252475787654840334538230657254571115811295374394932286247111811991739867954274245283026772119378356069162102822959582605429687723280168368756945684454499296867249408649252581821232019403606710066057700604287353124948152519278859041878130352801130883870091557784112634789333510718578380363897513679939468508578931130673739639248612100319964160501218872470246876882332495341009876646251227183150692190467497159918756739281199939579796413453697748834323115202008283254911583417810863575126559148781222304513217645055592201402000663798156248259243809915633788557846959144196183553592402021984743571040500312248577217847653877783627704194597091688846654227520316715635457653255752371583326889250221586736775241480621926431183140521480096085756223288884107390162590738534344872697306872594165463980850445959120641605440350725580696442701102240133438405032429681564368480137323140214042010680529279336125540486488873826372775993414221374479449644942264707358346950569710793852940478786429946510055079657371872537613779883867864258664987951534357283340243090147779039850241233292666338929414514081517631016066024220893427744217457221057686736654553391696830298705614353040339089574186192348711082268897949293919990216633329068993816317943218756167826823420498622205791838083741658083346792688047790483928559696978900427376296645270714682774336619965087375795523954330908912947353058052126313328243279368501250802544980785708935954044937439704489268478216250780480952356896839156186452052966594423067144984002451768560491400021402956484287071575455494150091240419549451859585899707667967890132965684037679118888388011874118324576478530756924594431696153127704430769353280400542666020369308945383169989100597575190488585840488216677264675787068768763780966357200277517306313988281511995584560940914214921853454665001707872558227341487508404235205056666274503092346845499486187609482977305305725463165064390842271303205884866294839454066354231319605823849650279882044558378758925525022647689396026544170384977572281748087866430292433846877707620064380454366251948396013727537539923641674237835738712526896658295122635862429306434872838314021463251570103925480806379529906527231487196057385392532609093226096766517162724787417096056884182436226151852217362900087347607504666761113238538115171770141738637087139738691445078684770538699806210540580137904233344687186393250013112535688676350151266572325543298638306388948017676633635944065064246796008276225149233893172945826265754326326023568433794596522649676570879697701831872432431279426315505490806243303434027239699618193883798393557335355504610529121786242592166597253681273726315368017543379620521329136822821212863232164074537236255225452704729109217128951617088917701425143741521341410854562846161218517877615915103384126195803778128951179204602309977356264254657089225572048735476863371305292044888400864286235239550466014500205177034607070655362140779430525683519249954203616690002235561434365180942861908162736629186995246438974236949373781084454113325098581970683463130872997443670052676768059974439818274899597289924227668741388452989173330450489218280941114102513208194151353598684071902309460639553869704483593804516856113086728520734505077688735547588680054654800093613865608884611914505502072234067573964383184397260356558096263995439902226740449843960398947317352238782606632839963431202784551541401608115275274141648042519518175910785935866497052668612223549044592867743382597401534762197883883811619990026914043674451628015485434987586235240670358248601486705618433643335980342467463414711945667051644380559748791822403888301709458526575950528256079432390764735669375292722695198790355988866026148631408772037357137838708301336151471167293159512078075435148047708274620578603095865579453606784616488387881226369942121648427877157171634835964986920318605214711546792895230046031264254520595048598273315261155320338908420409753632133647018985349678829107402281721742885452908859458995599392079182389282035996816363368445255308623000791354547062120757984847645585665549936150273133641639147011062799503273711082382443538181835927291954813972139056483101503740658635243984891374942919642929047344020533153656771949177478663029732530563153988504265698279040545063171930450874760085140561956998867876780744309732448706420174285331786527012036906599354235565232656954815823550847353945029889094004915695760783077628381236364773716722091476413457854684602655390019125585210734847049861323603389513103022829320112771929188304893163825514538352075416478064550597338636298874746172457668329065136550993667440597872834371082631921889795026363738309933319264351896595843540068455832830075743648066953877567503713891552387854918693193812962614837368373498981665937328560949142579560037775971757194932818994894877691317587252275046845796205212070582154355022018364527373138933734760694423873851537798489847642648718342544960204403703154380088942174025500187878046309468761738781206083706750668699197621842973287479638269604870383049688974798843173684065700549030879386372513563477283529914613074862992371383931285803602667215669694038865000134523105943468037700260462964667935185714296645262600258913886644565301796885114911329178093298429374763832649474223840429264417147760530046110723673829971221898459773065373510558838411358665067174091030147937948706968256629003058371460102894892546978627598178033553319848305162352486386491702370082796203650934211098149439685854934838412674433955936394079438502377260937374776705001759310262784282415387626578609311245370410294120874678962694310814094706955493418361722283671333316948302018288120571544957709635868356567646053984059639743226319893321419707941495462074046631963189111463838424242655733445319491035054124169128421478193508190850891096803439607312660840939651144568280045408831467220680157367384666807657307047531782973133206553007054584582870734814154991264704930075634564865332280759602082875988809318639583456008222376377569523967722865226476714567876812047363934687699987139693727513102322922631498800572380018506050632096821757473194705813931086986183879568407394102111223772472466095784678334125163076440643363274051777646252394427116339282088167163658782429593341654835335594131442856439869906026206307313126229130229702581857026798542192745427214344349583710713073618216156656021349381264581307106797307214730916497650964978510679231528110720477065080053117063349592947419445096161022288440632164726243714523355412669030798454419912073820572179944108139848946199438250317606865775066441347360813238811408063276912774501708360261100291888124035146585732803402795845211053865778907859282884557998579946045069994528464353257920728296144023159426388139666101591172010201040059573204972363023503277886808293467913453504836390905181266820570123602389545894910105072390599022981270923543703346707554238812586214313737476367048712869969839273256323835820541274214448341904265789197489128745012434045372803130875978496552519782107283204559802434386140910083765191695444285530395401729324621562561032273212727597242453615375474441945388558810147012177371364679839795825954497258905774588864736942256127144151625690065529820633034028702874697390559613550640881134444370852585339128249660631279453928899540770929107250349208215878045347201927179342303410885112160067069760420146228053172382019704473259000981070380330638153511683342426868522794310554083337866540424584048080140750222911389987866905809474563091743270793683918612149026499964207927397312343142015159450342660584921322385318720295951744560156673186713536840252376020002988622226658270569454342273966644030747537333141554640333620250799821375345006829443930260272240829230050589947634019106571331082236659329951863443572236031647956430120717556576482184817130944342976097609291838446560393297215148029544800455876370798031887169618219022547301683849365560133372063289025481738106526526740877918698863342807221133083471810277071990728242829076902032074203794984137165941785713606026201010450579633225159041735240212862248521969507192880498498324467086146453224979892591754940866829144898017304044268794760545233658237504131893523776697347233469653391744353756688578292923238398527522191179148139114562242152212345965782905283763673649042945663966458847243339603295049115480649447400063189505127322324086013325444793644086402338877349590491078488313956939767298541636316601425810063894335844724065972128556851811131267554244189328325129239526623124009186936591840108927841285166671822016928664970953086504473917381302034759233051496939173145537238771513052245183918346249822539151523031870982609048662733007156669232169604186986130326684688292869050959387075148177702487783431604444255774531807792059253278015644762479552421384246790302180797244653990915591342286051006533245561752136296328845439690801174245644183586548764668286137873261151407474524152428123915122488702151147720702349737109533155858349419104954188214777228545691714605885861680647001978262620482757574368218345197460687904230433892503244919482702628427742370996980157137488609063039352922857870829674266699741569911280938620629834536277568657677086950548158507240060668781453382189407336548457724185153912782542140430051463233189412718657079672602597719230407825779224923571119088698038352641558475175672601949102653189131177290166580966183152831257612619555042932077770650371164676273939183950921086024188876626131074556807253011749811436695406841951995326753442799541654129274379045300750098113722508720261391786817636785302595027735084215352446267944670805918500492370212247362145957358534084709265093448752045843513723143971565313396732718361222161524408415867819364953456996699501588388385775389724873515277758297889944331598203667535591744407546963195098221301597415377711854640129580012097642407765609746723031476967238128136484759141979616053914540427409019268585804616849888317921563309624476847158444286823599746322943626055940423619789000050672956097112989092688968193606040159481462599950920587540458287077726181516458727330883632289247615464215121830022451014285489423700376753786642333411042924588964102253358752329966102256187197812476259707485732452501314406210342059179803848121076162779609955514504804393438493045683853569431742927505074252643611310716610851594884574025775700755790847180934821403318093295851467643236153987142250233545954365577431750724096728479084074026776353576312114263568937982378763376069637573285586142241806487965818390041950162337977943741658387297243105630960336571749587729270200954079748761676099245185516894957535038493534690761595935173733829951258493985175468962260119524563569749014691373560110244192741256813898576833431954306283398460569987302889537548442057580301236965529527309517208277684250737960678682553337795930778424312932208494501686994270257669165830921703935659703942357938640411606659931925280439220280786536624388458851656848246271195773418893793337889297416354669259704820523472011114822774411515840406076993347827142107312382737000474731865580397562452559636249772302961504045267024371375145226233884657049785000578660343025698453385213501768237566090862265670437579415641625635171206847083975351793858371758825246693993595039012487860310606747980066013279664428409850276459341773702257898197639080611167725293887763045033285083263434718864638147161393430125178837825401137633452178551532860101939547659613685550497425427667847457901939832959763979232622983970635412407619505110326155320152176933220521896790519846585433323948474398747038664344019968296386025923988286836319185306438067035878636243590945356174927379284893342548074939843133609919015998324230040955734195890427991042693144478799254434191417803410428962749613613539275721060268103170737378078010873899447672940589405607609808678817258310198064349580514478437897326138234624950312154898732515180414937015412262973084473669510860017829582195463843884022448915068139282593485907209714601411758364714834230041888837213959925717631244392100533643554667887094950161108498607459635620759632282625651957342509918507980468313399213101821436282778799070469654385741468731935246243673396638146754768024349694714513715329338471816899235180058556913850987591036526106907945868933630856945674266334615766384395008387303433871345711236547517598483680266750411375443883799855066398219520164404147670826916530945786638295514991953163421806414090877142615812356012887223930934486218976398281920232913883666424928457302106426608493009889393149640395068314171251696045493294714957101600095353735424120694420878840435555143451189239234452379847048022553676882860546060758535707087135128666699729212182494901609895894871168208269096432686468020026965678795030872978711378741411060711965255632713567656626870506574339531788500646690505370037564461094965359721652387605985073508038245967838838531402863166736541686615552878888385274595402414283646242466516675972902332011748776464179376030490043121464111019619063766660579770851497522181129845759912340864893653552866530915701240019456938261482229881306293728431502255163663849419403773459238633184855642419341574044366300479433714605602164152746189061269185245517709000118032167785727627483813993515869662349510201653838853235356204283090593518683563670676287057773340180868904286381531717323893251726394483675415597755826335020712960505913336765873935431332738312345951276219072443236785371365101331289511344975420578578280773898893307119195216279268096747099031130305878716109223251560899254798038514146943509285370945844758414346595183537286242762684372614916159694872222029163918468365218729158589206799755561985425022457745071620745227929028332423174493889523714077244810639615908097069773954912058913965271806421033634823906532491570033585427809667192010841247450658711643334226617745367946231230063476598638398566158972667154037220980128835030876478169494781422744130400208467898181565238558239420061499146501434811732930082413404438287028115549940599101400898311397705948462071390106772878387091380032708641939429633460879650759698014455336049203907457958297715302279696446747172732938405787248791351603802820847477268015267684279107238867718869709713548464227865609371819329532630691389587444888315863386255276112532359637935786048009249938710774239887694014658558265418814262624806875128354540919069669756829551402865332211547173882132108004525944312453557155517038391418176167249114413294007385807185040864081774295710737985545930122621392116081952266627558038467598416216511022249168332508535369861630392884060086352245657397885012874445604855882970793394600794010331321812744672619770354399936246781503788053607479351669471786714932193850441191559992355566843505283030740093400990735583768861636152663548129486084044595683274655613136182923689038700297175007527727946096742328480998162828899938160859572311769499502300528784823885793307751583324054147891019844986770779240389881305624419571816832001851435751362381534384158415662910292093182653524222821020681805919331348682788329476550705975130572565493156553197392816451622952369514557252043454856433548100507875556682460976761741690694376930168302769546673208430166653570499209814379921673708697156471738859823302722023660055675285142262716969230443209227665382612675949641203799161766565406518754367126981609869165367147093392988998719711951793788055838201393765870472623944244453082939140615326461483298565891063398508760045440547560868368496663815315072733075516817154742711296414268555793289187116155190624354521870530412205497500955055115267742757655313720721594584033394899719199536971398854491278502422750284545161397807667814494650000495164529684557757368899985066961491485203491115200347430926032676305424851392390973739809244162868150361380978251090328744989923505324289080134399392907454453260204095697802042239926493021005240499239252541959680738407017520948482287901724757044798112577878798002593310920854206910140777571679056840838846594247622999913494817200145085603108790978012934413471471715662975649660520299803110208715291035594401679029271262396799886451725159482274397334263319475566897397527743160334377426684476466284578893660171363743367657266792608736498113163530630777047600350654646147441262261443721192745498124282235754681447304158924325703744272299475520488540798585971776342661367659288340444298160650662243037072963371389960380583551740186958166859157606083528870775078422208277696929387930656588579707760077912138477550532678008812690859749651322747350004840105768110981681442196298161663643988351159251927181318074749434737466916705569884865553905752392923516602825584641989954404354991850314311061550562035637550085807119434928116546540816641970203971256472971667461171522485512982352909245367655556338324264896005518147855352339850175084806739542885257769158158946898601167891968856890407524009767893657906933766699188407125101233504251295160202265539254201982983746237927042462934320745038499195765356612319343896307758695059110556118179298286203577851606222367059790067830379247001348058194804229387971578163324427964866653491186915372747422953610055769666479781115882576767459715977760491969391135365604266010897455005901693858958376380407600171476043010993961530879108956317507591109238534596527301892507238739536022833923958940082207776382366753314482841237840971870126818235959199338353071738307294770606725060390903244341127987276929349589096717394300063294620334668360771851766534727960810373746203297537064127342548491092634776572450944679745820349252704342729082030818095741365422901269878530814589070113264065849810045304884566868407337395289233834983298685831746604255933073547574436704900198144235923183275818910001084104208932555069626778927004796567573570425488978345732119620230544114075020872580767182659378190259768470121034875868909306099150643558518931466046777929018933251966743118351344187652267683870745195729892312553210704764178326772675522307128632528182638941838333462056508795258786744442290172570547720318299213693636204392942201421158777588361028559526987130322357924437701434731994174650413778021546013366576988751717550515912667456110770458507659369343275496647216925307849049071076299971698161378457253094669570064551502785627107624592256648446418579200618328041249519693267975223823520269593640978114754674130595504345246386595682604337721152630678763408441681018565124696607498352101930017910302855476753786865042112825671136372901036385126533363036953718585437972189654121907185494228172899791458402497725083454186945533946661694908485297428249478938252943328301924727423495905456029365935042122648313809956984608453766488945423303907057219663627655388582164898737837112778816063488581756571058653756034836250121294464203040725186209432773489262393536049695842033628507779524410924963100927585892842518822138475934660711815736453643356717963629681553572362934287988285653547085033035645132308024933377206782341693561756812828899728014817788147650060599447569598151976884169856923550524127013802377278876045700562152327074102424843269546699905401825243867891071466897466676045061154617171007455091991142337311610751387687997084199099391236709027923833915984338354205913700511250062036344096951590344781287342098512981471562224090069568229276632921565508731301476026152135602805139150794689030982200452039257134029339535749244748332694402235638404460268131649724179733787006593465856959223396895660241462024030946354713266017707613938243977172233304248206683326524216426117381488966229461750962523873872367709574656236596663274837633709582068501896728402212174301557976723288142598213718440195453305593577996280594095710449495264215250831058889572950850584268919783567966233421541556427589775586020651507410394409226342419706988830450717451545593572135568417336035732397578419494860035222996804283324201585685947661372881566979753126988455384864560967148103213826435986110938651522865328757937947084306614128805069702121991434703736674604682589988732080939370925723508602329991675136181870342894563975432188581699481166910939781629818594556056931327773419931757355845027563121375196842387699637852111991764924935150320472872449699308518155667987747019535316547708440996350214672491366412161504651851854308282343359655981317209049095319395434176381162275132841494270583954540177328656582173007488471068945607676412376665061047305649787871093155298515156910021457081975779950005296150701933141049181039794502415202473640898375253990724756624615598763910298031174474031192371677813318491717898329758170370336722966540755881764178960338095911607683962967902085318626966230660598240599306334355999654656390118902513196236917636664026605556529760492980999973547972766411200444773211199780442800160070288151769769352200269815616372739567198346742104018101990865851820351221422983999392459277701576232959363168464840631527995597829616608754238108820072739506732696800269530919418745249186831677046769047774514621283818871117789269473573442234829075458250278223352835755064894728410234945077417221312801642184735078372154464991826693284984358254388722441047845730163889405160223847081960243990234507197711172223951635120675390097648056742659443566341149210881480847922683637507749781658176717639399154434007728759976644070673411855331549699533218312050468985692943412012452033158660454400435527521779788227262833463879314503314431358043060839776039764042922158954879606572638942517718084732272164948996899891481889873308925246436142742416020227523871050323512165950209919676688677830782694320781576473695854582395134533958887125990691844892327412499043243586784460997924856813254183889038640382979389783576507757241754083372316600921273212942654750932242726735823943337689986877527595456832376859469427016042922703834688000174139488809241759221755584297094351436989942960648710022560889614664834787569070817328353780885419145608246640928606948676911543810480272137455129471538937843947488244647375334910523880977969332485096453026633274229141284705511149292931239300321477570504317490954380643707421223200513251524307799462805795775239872433652961755242255208715620038388990742061725046369718858506663605926979645613742560605558751577056457299790055137871570273109061861259185567783184033591185734186026715624584174930958709854625210886000909014840661906317439369036041167386450652211651548879934494885598556323013036072218781590704983608326345629331833568546148890868037200504139064128827752772064464388662304201532361123951751740736958673425955524246834929087533135426301747077950575079284771498505022061058402299438164265164946231151814189713261169902717158174718818408936045503364432273439894160625803327239977856917544021138690005571119342941318017405041340253842640743129133029006275960189077770415530346125078795237708932990228732635968794492532148085563509341454352864615438329834573861373924644886750716061796171773788648309116287252004041078343095434310327469998418943609432378553311428911125725058710241549467116821143383664152927553728838211094596490728348832795490357065598918411170182728318846646988515850426982217153700135565286625311602718002568770172045833142004651951688267801496275357713779083449136457415148877380675439233374411775175192471281665859007737830776576403263260581354092748305038931340396217517865690136778668390425474053850771356758705776624178318826289023974069776929943297698375471531230482871256042872686772396584008533471991802849768065912274701827915080877770590064517371853412663399938093029298123627613032935862476089940506187903893326847402092701570787390799363975919127934905104711035454766385574036190689910465497997490612467826989746167417458359876646693472924851542419037227049452216574685789284707730989544130681583548747244364121068804418128675924001212527340462579507298128826005884138493915726795956795059448114526396330301483394098545032019338700966360736590260437659309490093738401655722220801452521280503367041139225329787803022844569611471836475396874875784095107029664057246630819140662204494831597698690966412385884437670929486487059958928852929863851113485294059418700439057013138951644210383018307538436762109450456468488328462928195489699552663692966246714333158388475115284114326702835820938046730047932969040601863003718948423510631019162298501181752686735655160858547718929039561955811417133860270845768435887730303641958952752098538848464407661307807801636598686610138779486438745651388231879896836555860166284073971502984610245334287879838140061625691214558084233002351577425165761878638108366781934513318142377357256316787028610245149681401374573822775247496415306691029933811878774600560615715313827233968738282307057570844345784375606454041967834316055672137938938589507750668766944413164795560236867416310227347619907668496397270830333468092831885175655676362503462303425142503506355229116413987730473973047292962237499710367436995193572426004858680071860889056369151267835009181853647939801535604051817244272812225258804744275459240959650312381497897619576078445522649089250609218331164815704852086718560985142958057322546696617022979726297941524938119982065639969018959706608881392491022533113982853182116744583271204607063160859115550132031014476058665084939218170530564820879118582948739247351075497410401296581990299327825381430954770427970076972623960083582049063725690076180057394575107814875151618688042965756004489447355237514749160421290171140476721336162911338661488878477503624097038609391090800103754771113522712326401027229368884309617850151327068460923833714106872064228996848642978950247367458016788976088271861637801560107849849988468638936235073633853569977652800275704207770906624867368720393060058396308845474783040766412050713997983390136470402632377750292446484595195073322641515539603617306204768143302806327237094452910643511785542719490619703320878949011861561621862439029538889910143449927936010881158060262011387336058668661228545869958545028028725762108482696845138021849180299328162415706786313532015383174393887467065476183559914935777181973859274432032266403036455822038555152048139888347744700273943612206036685825213896454520853165470359811011455921264468078938203266928106893554424516091896566696766553870940816699075037607952096451758130272070721647186107414550618641122791730141880474340024674281406653941349803679341580422727825746171404251083789042957757878291541668437979208523343699618379393435474424688358285215015886667411524408387309201694847370914858998516632966316352842815341148575638498674237580795870377761199623415001062872280697418884243010444721269515884032021866822099297521747778092006492406084126938860563625644681588285528610387497036306291612272504218514968481660416893071701046171882931851680942602626830855058383814531125694629260756083719024877136851395786070695047222863649151315821609522435273465527435373799853354785687577112066677760247837703414215069636901854624375611665199101600756312947771438599927218834836217534612166927185066599909849798713141406787953451515407998067741643051330983344994830748279246941626812322926464702204361515173933329044291042692836444593438168262893344260423460485789866105791018803569301021117572334471655802339341015407155617852857084489725767421443762595357725810761134232253455261825806146029507693714294347973822617961654866336825694427756689905986138242491349417556332080841656681935612609036179282510442961845353847416024690529028014593339568221769560868575993656127256350892677217514693577295271893834939032581473943223516655010126816218738167447635584228186229954251708632796988798953063123227786407618501622985787389567047709484850038921745732831354942378587795075248016130354383213517854150342802011232537042910912512143943697224819637584695296803307080050077079145495217225854000920494031069810724627019964626575631487560798735576572692498642240839437413413142222757350832095024935424547245485478053780983000586226358904099004502668448771610225487960427944274130359847636513731496650137526977058284562219680130388597253558165963323176306497122763675908073540704417853944041005139078973936005770880088722957941995055132128246928359044118745757872569884770904160302449796026761027527893075257879586812461995600141421537422788834775610672289431429181963555608071032845588258558656529229615273061135647197278343678163857671196771899735446129950215445731257928714104714074735847379689009919980031042289012595542044193396821911279966937124950190254980566722727624032097222671699687131249159224965595289264972875876895194062073401856060344194432813775161482559208944185983956433585698225243565831337031197336765012094338440937533957164753411768808937088356337035670606717961213116983273630324376114557587689896749790912815729341828532914919044641673604695257916253298325949230053394311352503911334062117742194150021039336234633590457881354261969214509315752841112605801752356497884046538733182048798913911620126020834797357468814513304499020787357644580656661853559927426229995571019519750825556382301110805512143912280724242451521776388583109331083633949536276437884927020238594999824239966368438978492979102388022052648526612773235648436630944152141476035290914964883348178245244172630109980166348739014076173163420115501176810239098890633170324648449339853038663867047983866599014686634427702688548178453504573256806101160176376652948320543887468490611012856358109716013815733568470873132700530604597953817303454262918887081956758367276569329337294079161284500284058519366720631453459790717729859143076097782564762926151178297519497241661453521405076111489235969658789397061836012719483756620506201477646487709645728158503121862720655763122954306873323228756537217601160834455338510143153468711523260235545415158243091755690946126984756281842821697227956150036598120857904509908769950670634679913018147806068637773984761441011452486339513881853157206609736211662161131789975602774862936661232618423659397743377343456805380648731310777796615240215954743937604085279279060577105099976679892842197899878065718790090016052129653407033409082300265397323378685029674019649575783136241732029214304205536292520169914900892694061146092799335560329178694959656038017242103666767629328419721769353250354163660678260260248533313965159646144591648680864947974273652361251937171515473546149914798750594602683052895886356569055944743930330512052774297245060108918673979461221481402002908673739545802053336055492372675656443440937749421721609213539393539722391337151964433633864348258865306917178896108524255748074690399750668014882645453856955220455200765180088966039200908121965448513327590782625614385657705582336070504698081051245794624934124470008467203165914005911404258421538104969267768953170940841916839373516118402790576080842773204914791666508030347280756423498936198819119599088416127084927097840727295471427552525928099377340383369330491775446409195389751550858295494948560257709369867949394201611792189602044362561978228741256033864057676467514514764969626263238538276883886991612123064694098406546169861673093292207963834586162452204407203344563333525263785938504680289806941661506747184774402829181446426281331683236883973263353780941888483568865305889044172811900318666419040724904433689306567363220133642118617696396507518780629317553991064519918527124097466068813579988113241708913934118169035877240177692849000829658607076619519776522940694898065987020338095923092300255482796753736749098999987416418809736429680590577218021318779742624573229801792780986810820777114492145971120182284903549089442841983410270656221190151478209884638272845942767858944215709931725882141505246146937755530280904989104589460317787796218168261638021135018516381769542564447645950270958569799093832829255775902732679183250673645592569854465582794262934019610993672439193310300366146363537586334929151069317349916384251271283469299639490841728966272576304388530251350332967575555794685522629275632386697776140784655588503415630235388624725490552710755684410560535952098120534853301064509592697581991987138244636948119931896434782648377673768426948763383420994614137388723372648912651319294334903221796404505161265566630757434722170803849911625120973665245764352347044198666526988316883894523420962266672204787422875974757005263178172650474264538295269417941092347494252736328890420650416399484363847755979189314000571545338337435111543848433514871561833610260700025021495629396489886354542828724667144640502733436437138339455587451313725248947848630504291843431740443261392542400022561126526108615204740787601673451581356154422311806967440256665957230926652810933293256990690674179935775847850743613835258260614600236551382296518656480150826903924036554799517159433572293549359882848851438118096786208386666392671876747804441049825427981222122275942406805886903994103049780610831522470465135991139713682505825509972501532522652369413057794189835539158684500060773980422809382275531842247627722809374521030089748498291896679690414785730037821697395444492250047643389842952204713233771688511811681139286854115737172049732165029086489704450853089408200038370796728071018191389922267284053876146922112853552835216284260669785750322830274348374555209346237519653201372336475309229666078256819195892503111292084323465629130481164101830439698371809553299186737699087958203665038908849346114767721293274251874104558806687492211915021268882946779073323797572609120192472141977881485327690591318469131813010721532031206644243939988160920499572330491927350385750051831238766246579480871582271715421299047588846068542900044072594373535603807281978489970897310815825652181080041856579899580155382730624348466412704423871681895317716531833428634566262064116953393252115927487607876894648210557458499258728716921341960125698438770143882255858623865775037335459469929280862575971864755363902089401140532408052437990926688809184651808966394138477473121119665345840693678409031935855352445765581733047875761612424310986913642792154354685211496871680139488586055142276625081865827700592303982690769154662550810873069503488866523572656498969510084773179935979385153467132255926800730694167466078924853957665972447224089318302624118767758916954120105082795452412297228659161016207254417444828794667718897221112083650908102595405167608340169596879218985519626292973321029872417718649087532090562176194535430045976237426648155185508032964654970070579972474930813712629136036286951379927759957485197476679127359019163113960702292226176233482868110877323418149820858545230038276819540969800966330673858245226764113938495532051492191464483246986589115033354466050396297562292666453305965719507717713664613362279144638800330444093003784161997344473448581438748890837918203754471647664326438926222021317459074572824758112574165884597042018420205241454128249051825971027475469803211300337414787110911400661977189595965960185469729686507891257029793970706555524889032568348192816571713561296744307946957157184386716981904101908892776223572481751804113852075934708101248393321895051047473774782864645499268238773160462792326460035861822933474296894734786724885461737149877611327641644145654376876805228320256442137042431326599822935441550639998816014900995199904654540845497772331391767802856384137133267598310452796179563657923099115261097312521296614273415578911140944446388744641437217219028105512854744575905171920549132241789016792437241171063481128091095330078143010960406108191294436128264814635767879743387579998262536506853799177317242742960430243301290154022578775848191524247529861505060194965268906632277051092594208574551101791383499555881903305663496437860361506266166423697719695894974123145013316814408857410546619161231150976555916270925430898291708582302661109621378467275978764968437804098662394112007631960261042560612761029142697573442102710638518261698596028610952898755659026358745691809760630964847063823939983534980821049407537593776059729031667790403744608391107081309986341341196021293038892720505064362738365478671274827361970667995303876400753778199117435980843836866939002314700314855417484392657327939449928796232518229423346917433007367801196896201689322703176726906272592114340185184250148143546154272236842989161427432386101430166420957461677535283740283912115126559396087157613505491081856107142095733384091058989520799005856462561521591866030716507089869139256276916257967949761007739923836157286936260427862443795829764717960561239909424744724364166044589833005636430959166614011061719001044923584222387842816793684085068320753103148747131377413210587107062328474720423737925374174639646385901502140563643273955212168085080702644579943730522427982351303070702917466761657293265714020540988094721609803165151722565429564237831515178445313812502103800360299756602185355891637740129102930727764538769928927730504808291264669152420808778395948137383612344577254610796252321731336636357844594822299340056036025068506477021972843182416232823716573761157626516073215194772645354111811589005404424736160864925742660247027150692104400712588588806132766355530421787302197884657343883520835106198558439488265659235115327582588352061925063357599966241562110396356640350167218677512532235305790144867629301893239777446764176855568648833927581001849640364218871357347249936683782435173766659547416337193018559198762657553572010664214625742423899716624746444540405063769517296011112402562239043384309788384276773724683747928665600178841976796492660017793758335658632410127760826284166098983307118578279851180874026512279699695953627260778621491799174279471492925806972186915126136574455501084520837357089661254772103956851811775892835966733011542908200674474203764212653161354040818658020098920446240333571033035434847941312368825026656520496014263781253652734237096006663302794074542824334332976989215469083513020896688780471198968861822061737442644710464086311827092427653691975791028323446607536729261244881954395624786769446631066673593449822908843688157772382914175202768261992313029976700980486772364795059505755125182063189415846642345380251740439079498536067247408139632315096243550302592506332404806668950262450713708276997352881560265582150275510856374314806278169927264475817222634425157190122737645278460049096500332978273745443218590162459570612441291275799389385535182452467414949430535623003636949865102124000268191057364145788117858274241419357045459169219155161626494404480268366552704932931769526470221922855417979117720018983622934609964267480913455602137671365776592720740680124666834312702161255463768738360395328126962495805535204405195638469615611902138699261504523453604933741492472873321002530963275204647371562448647444630439287320455718846731026750053794681310201644620292877106933340379266500748517652359079104859803695316858722259583432200244231558108932924441671692955309516739022518839200214882794567561834064033982821052579724390698391785792640258294373359976144706309490701896565445072602905678807115150793684387289139048020826598937155718463157264586991887773726079485458448759578419925471906678182929687825262994563191117288122707325895194566944097968514223401038167829628294537993602665027504207342784810471770227928099038780444324410246410885899723939480113278639377018673815979188645412346127644084352761905007122101028346879439422094277270141006887043052409750385687609736824348921122102224358641597427697858182380139287116822565425584031831987734279125752083708790410073177989142532072164813163194114548413068633204598763940405546759329236899070838984107434355822039719511980094096280816200130799007769492564096865947413356991099208802001427456660858305454273806796903008734762514563407079921873496053445354740891113644753353076821612791106657059589695484542323429397737586196660769965422838539388623665826057444939695746536650164591924887034501067291741762217066409384221994300760597656334013595863352905240988296011030039471834290126591287443793147425517081258173225644278460873584849530306994304586560162492244812207694384407823233049626181826262535935298187343595536902063329657102119945804570149986528937636884714768264851191622907790446317650270450658773937100928286747812672042681213218144138259807656948611371159890003015345895619585928013758482301027354097654877319765650950274228637939157279767004507263437260744554888441107493508627639740929223254615693935202275832389281959239629044246373326094951578592669940613307143856294811789974841276741136272575250068131166775791350185107357844023746333615818776659483570228479064177127486428085547274682408547788956265478457825640048538744685178294282921405812860397189691330037089372184609987513140280319761761774072649229575517575352766189389827976136517038897279719041585437968219100672382063121151634106160855722490568906739171903923786079411942007480455116623884420529892201038739269343522288196446865531580003319429884477118985330164538040352753884490200307647445804657902986352355041013054569946143530454630653220104593602127193022603657559542894470997590198723976475695886692391531466122631314886791161552540675909764222052691704704659737507687399640177502375428722458398486215518688907902028322271608713782975713969799780528360215929504526771650757484944150933432670109136029422434771594313770573280590832161298738121759118862719025177151966239046502667903545978238732665832580692707174216203869862567828240017766550209054658831050754125627543213008714364881623584522394326671239029829927016517268785484470808541785123862601473717618146327058973585489095628145759500373538468725982857200061326668504971685700995279789691907628557286162701901281730911656582450204239759347206699849985167550524670211866507965185742328948578510658489541601437356022156655562462917078570910830764852824602248199724964266214930690728927764981590596680019371750288588054401721009956065349798462236261590173119255324649707708732987491495689277538803035355664658624050134156837521924742530904020820976109767066341960922636685945486303258592076906678378320683059703226813930586342306269930453898854182677465379033793009207002436379034853214270588952304455433801651033041401832972786897957430419948832528619138264222732507587736236017354458442652053060324108541997060709335129884679397591031970172156227270888586694096317928627296249548791170819052958586017656032478215585283113493678682820892651835781524476228353526036578409336450032576499430208211041012563959730747873114788040272107340421520315995033492754922494107626710666334899017246962136543364676109092047015556460224103390032944703487304098545081681899146088186919199516446261876993459400373129951632362974878395706115674657860698998382645575855366029985142329858721312071506498155656284073074098137080774393323947409305548884592127559826540276256896908968983546874536378579268302425546851218244489681162477690345865299854975379792533996299387954733950267164211642042844819831404633451006151561856934077001404740760528230541677982277687308661657023399638250006924872444693591122699785748628240140538398279711045530683047027557710645141873206983896526334352789123884422969203366198089626727499348149890044196394792262913079238326411768756980807273349835181447348761061615651908492144156798373038016742504384502127675115318610273630649359305930840763092826194971365185565487977464711980322441704019041391706632873777293269006372778743469548430304274428609350523509502317097475961426969790190856354409334183202205235938443903473694791645007475346894709283348226679774288711168930965261035229572553927039683230012723946078406418726984165816263311771114688846132536306606905927131321830091423507126573884642714718096372082440494113668273290071441737287961804670727173735922064979537957925182129415637539492608416752035121379732314570912495826802274847370024144095627745030245849866697697778193750118778830008418277598284942659008982847377716453356567698207527742270242067132631813477883420748629553932889082678791231766915195439124493763232547694012896248405716246714912464144023526853127705496588205687909823983146103490114798092677340956284935508873280737129769770812253830481286239875609579018304362505124818849579001301969879804316164707122653724352709232270598479500471895602537765242127288971006741720764838300593586847385214736950504996340747942792638268596755411814553600942353110454238179498401250796295684540963233239141752689509684312292482737741483479896333510629990915675350439879249872265140496121140001073665490991901095661388199473362728439289811485626096324769589334900282117419625479445647769192703434414569178167574833369212441076523587677246544854523860778942892831353568330789512415814729166895241627310161348681195742952803543181838116554104747841634193673258433342089058453713496120431336648401840226962229391415328333051008641961921132572561929807578691459105787071966104436495096659286791568094735955067850568487301431924253331937260511720882275780212416364365728043084795976325115031232604507110819065626921724951019371540538841428488954062406998550282112465753585467477605892637578711632813620548983883655771594366185761472490432839432663583933544485174441813095011091923567407262376837080376137819488715036657406977613782906255992638574786040519576369112942811825882699238085014706892446402674680609850578688986015363866215678765534085095069912172162991972748010262171939224209200645194447756540048085776907365819346124003032060722763908778451164308514111284427178019403173431301388031730915998764605088852919049533339852891403079671925323899423291883039671088645986320170578067447895359211863730705215558177612459611150153483071544294664215887978621456635643786463026105554654214264782461484933500084113347820639549902825726540842099367072058343405591935155290570033162126522579567434553213881466433524013893325814001926046604646139172470928887678904923311741730570588187262968300696847961481361508719693180458864302372430336946075447750552254329032863724843390256799314424938199082791887475898588600047264421664326586791048095930965439630102258919530587972111127950850297469304746356442761934102468883705438471872278938240147738187083605457423543730859523392454954983230865647064759393809848331625806603874000056481218032193264453596919154796773962979718077087727559658415510256230191084290625717275303321299710038678599387561001494567300023703674314875966443379371840214122535795760639996616561227933913882702180277321015700653342450913570810548147233473623962984503968991810797182555186084880087336765169560837492020571549933705174657797652056359833285311460620260604446896186220829405046439730082480415512690150226333658431222304162818817547165204279077323785272115315535097013673261608004358006694762099675880296789760587577339688083931128167769562523975212520320529827620828509573449291421080028837754168487220860946759733234438753948376367865180922087269713233367068340350334973644645646582955050179483086173530188561341263079206645343488529049957698491231744863669771760477941061013360027534926432126769696309064718154782046910399105657024846152744181937670577978053506801616794377514269803590202408478145133908770218205453691309012079857818089379946164357199256375245572852845776195594176756362936197226819337931957906652057939245031900459851591277638384089488788275602310008518696325224808495433249407376585639595573618513085380346602995597730962978987240573122890201032495039436193597698562614310395085924147568271054410449592840721833979996941855152570852607636256851310579925335848395970234883149740871943415053446115252487638226419786021746107151130753384516940692899604424287848863393627694833291952716484103918288948158963213386229988343489981884648883870957358484706307817430364860470221702845836656343460201015817567325060040426909429689316262593471246678995453387055388166427360462022050364248298001169694817412673304582350980980990374230722053216231258142189392658358181251267327818308223324139071575227585033831991631357974728768755459390687158266518121021871283988721202130275562909413820417313569833113075543451861262841974736221903682057581310880408328374345383992174563932527581634941798969343911403685750961460591298077129831039457170454067127321001214725962034042114562582439027664710621531941558865822895136759367295533349520066360028643533422202083630869025532223672025312261867582172463766132127877091686538773663113462614142171253396428037129712867579281561217972442935478185918803491289151935070770801461156433404219995148234551943406534278189581842445290966220609408373715585876566546737923902723731544035271034817620501981578220625459048721070115801829018468815063524947518136367844225110327712763378562180473073015208424125437799737469120169123129936889599152346501054169570818079450330348639427431471161113015539411944230899221996746971922172997088971780750754836823765269527435355112038629880308168329448780216383150634598084213785740546210844000241803978484518630653946903995623634193699407923634345254011724465157042083215427146460552009531230725164367960058216064562314900607763869377595603327860267151176143879612556943481549724879422391473458506602242761364615024001766485821455142174443619101009975619489709328414859659522490656648849699728431851831683469056605131117224076413787456229429567982757532192516286221490626557762987086341849085153074072216026165739480680018279265474632976195945384392721850274061076338636753265743083566715420475450002278893278854484958854677062964838260195905699627041650697379670392063372264316994299530827025823990293259972507633073457075518711933890540944382571817773234405963435140897971845676209401166050565920795946168440431718178575915930002507821173374421195544585824405747078470506787159836331478921797953186470917246952798352616024099639944354725002620714147286414656425192629441920658103436308675147290639793513979098006815214489223478492601059108449868379601483581815011037194724911908952670753326500133381524069554551068863850075381896987563505493699211114893642807556512216855082397300936675520683206247124137460286890262927974279832267486478495203854837159814105775498296251330587941161152821849555557184284697195336149447896868271124852134335856685250305765018262028452244789608298637054575687746300582372495236718009286255494550113735319429164085641238512647099097041769596662115237250576275196646813863421220883415804969484959777697282492676361176004765758807929572189274662376057857605071065444430444431721280924160838524589695372618951346914791703223026482083035459119230493188012123550233573689003142182888877387413127729955247312937016081330301504020790852753435538922535878962897488950469864227652181300639165194597549052385627564100125098826529032552284044485813468031266201156804548463706904437852495440175806884709342301926472983896010039598483784841149620480335241049547313968558812117198182749655954299688845088160264836993944301614737696622222280088767540966620379753662681204038244459743524931340618305724134856564112657011391773880250687245506509842992437242228220008205066326350051890618706752673512436154637800285748360610069269031123665817352023644446506157211992096466991301036512957670034749308972990931721493624616107833452443747144652305456404158762970170364836175250306657097604047827206006351731252611426681263142713874390341118166455774434556189005092030601208714806487521819945698779088096142003839118161098919294521028010126557372574187674834602943487344465803384087451402530611016185161302170730320846995392743228198437797105772743405759713299849314095317729311939535123486390863421075067144865469938756428151222857919646342365184763305861750356631141285698807645226715385902696954503054906818097233768638274711388929274989994894933725840730061007143885168326727208864048322337596454618524423577694745837724012368793265082265280864505234343869948805871757507568923366019014706438084353250638396625586827028012272928759570645198040386283347314669878835546589301357018363841218873212512333197147438279906422432629194837116183379759492424205853661587998838573089319265387567703274908222786382240382160882942910019292267953881010955881547743949223305236304408151352302968739780179417787614349002712061378069948274959483213296906360054559976251288309694715078321695498432783267891733099594191656008981305895435214714351447412323482652438942484518499981059848893567244465099768405793559109833585118205061541054193726489888183290364827667009106892353453598707016381616761143327147205215414646873661416198038512169581050204613141792650831637108097112084533728094253623015345392175866288768742547237535458328152708449386527283550771962343521836770668890881289205204492229763197421239421350196004330074713770202818418862025492011478766291489356604945527664166967221830270705233402673448834808883218243258593919095416795926251847714212305558267572712088151434067820248386633430013711389620501926654983891193457166709102807755081862400257647034908002687705897403990835230148036657190548009104953221768976581373386734485910118248670152563450394625554700345057318665755937478946344700115931260626633167257306037310245354049356207525946592909518424389671273902842157237006560097406540071862714809379775417572251117883189833757178786673116206314395039753545773882753244517682902389107481024675507488303061307801416501661421859456311197976340387216024384154840576488026027564887067643888385713397389355524072747049251457196665691475555990846969248297759433837321920159907002307062410095610828108178923492586047744535828902305177525649750617799047285807915770197040050577126129229677909073266339724633988205005502955331965150444775341661865329033575486478148500960124760726722022565845354350994810687644322299168440667043907697963645163341426083755794011183667492313138036448601742277169314930099952703043531988346583130904093817898965119836910063596999178221346362417225202249521348751094144166833261443944864562449945831338293957951254829768533989896669100473314268453375364914135627767903688115567498860988686230367090713278383200568687503581877855622681776976286800326957714750125165482288537838969006511631532261558798800812724581808220963176170007752925674569171740080441019380502045996990333818433025432314633342579316304961758318456752118969575744413997573728785170845270406410326868466212016370981364441705741676365636957798159913554314666380753612289443923682415045375189683575516399086577172287348643508978105764251134409758339031350931219002181961362549817399230177059979812945162870719187028582709218236847315538519137699313692668322445195305685089351729626584954163767433488836410828923868052926112046268833370621217930402729897565115115504145578386745622201439806972274942410859715139325859486811982042173052660875285853600223086111069185170347571279540432108695017410795639122524587673948721642266749463399352338800304422684565193101843724629509708427361302363240091469148816497781393385012724303394804275917090392164070900117782787983848968582988051875241343985978144357049146989930851020120762733496888181119420117686937549820825278722462170345662241823451214710673250988589171574874286924813996780213909301408746003794552467396675263838744003654841368518558905433231311924510547788682541618337046815529715539424276910841478259192919550434745123913768715007262443411920794389681708140676071358349158561683411390767356117065794340100815978108589862333224723786844752142636710511521261980479430632939522549424635603720322755455738778231032457535897741523551526362464405335757177171612838108685900077557393204867917708015758842493801187064868156906811853684307851676406074283709294773917338085961283301804182907108749537151124712808345914878445297077630021674189014536693417143525035031382911116186274491551749667945682184960185165659475175490945638241704824472751921735183655000443226854370956338286261013312171400675271155449704535897877770072468742632639472929286278235193349940794389656455208497115323069955788664766235898878904701370227510054281120496795642473197267936047001510022175005306387401926165503352841426898781538901948581259232837566869860519387076993665763097285257208723012137718329823708000770371550096314626516311526664557329848345487203633116585031366243436149289093163586802592996729902630779616822122800414476439347045538527462988424552218870731142280853586764206906930226630523944953537011557193115210601521845983149219210547367460805120428052328612214309549635847648294294079485663450758098266554445360633107003633546622461183447114502293104384961242602175107260969667765674611102061837422899108378549570376380548085093101677455244307091579618752740451774064997654669300652565306007203653739915393391781864622092111482862297819989917385482713493328660407933031316023214830951002990243845454803141890271801021867413783180515070857038775041083731704404961467144643713744818717769494486554673976709715729275638978036696479185065472692503582193291150836756691893720109464672121224400077639837467518184750586143694369561688991875994673158506965394137621889806111317404967595058833972305938578458994245307303941239677242465736697582308712940319408180397877260591417374897792291352491640171986845861308877050991699423837240118455956737917038584580492693890981849096568518966564803681605302409785868416979426020264766329490253373276415998119913682423746965871822556145504257168757063751607530952140713334642202516534214738279144531047450417822018692258550647504137298044802680468859913133411616090373839145084200055623583625280655505725884104896994910470619371560563029267390114294033903668256574208715746679063283990414056976063702182926521689986946569361753251286836427146044285855633113770671345732485505514641917448239215501935343309198030273442463400355325712653120826819507339699348293015034003844790122872533917209062019369787048027479658481608736294266890112719342696607156031610393424533635896453538244633654394295734174372610888114498468405817697410968803118550539801949625220755146082575984230299081522851062701037785200336396519491790030514816552972010344085879337372037002615983677061673654288509665347262836982635248620166437116351995815943785698453145363201806185789201019012601847023974445300758929815344886040158242921512061771860007148145056619417687136388276655417899125030767506083309568658238660585106687988749882771346648068039706044227400977138989491778984390582829248848409093109352413538817231469733382898497431061496923167867571054988158176487025421456373250305149012533904951506461262380431591515291613884266483986952691869030758378776810889723477769831294741034063929740032325567343079984500619309009224660957341588767084315986645223593896562990327040566115299442036508050519153806454955155271249127820271557302199093620181855708140010064549362397566592968542602345626221958776653951101516432879032712127481196928783459883699638893020847305597297295545391022498829749045858077528969395394171634032953034847276361210859526146733344589517290025332981687570697696244961774546140442668753716402245014481836595931267057918795588051708249485703128693068696714347007318451090156210439852076822557428563260949447071846605394408196173641113428031665388382280988657980589412703369606323392721172580317567266746942986403534824187206788655479836886497492634323957688550884069087418305253771398560518022217468739043731226924404413966292556042369766848622293934124936174719256535933552309358123662243201345577364286498529043109190312667185794608591494177745796170563329450599845433050168003171658142451281689138644140960021757422750811488322527941449100562545812043287575612135014858623267481851620372043678714344698794790978004276619815301049070262130852999801587534170268541403289018228417018332208514407777634891416514197408592598662310719636723269917456604420773296589435543056568373350634214681095879827009235797390228221672443883740563463678593271982635961223861162086249252116849853465207228896018622173957839047824963134092765522269854320719014885870941720380262584560247008397830388117193533073749910998294098837574440615214494884300727980705077734326715726676430966369637276049614482429029965637132802718463962298211594208688388675578434943410947908951731370261876354932463148947600200981468328214539696485857512594254701794451362958853851560071522650537473654188948365208928802831745156038303878178723769484250788014291673912927303375788263832536918331421734101224375881249914564493579296085029209800371768268309982831930462508124182003970948952662736873651037557001598207582851217175965535512365093751184943463891009482295707360227666355834144642722930224755455207976507035841263459415046682489826601994607773625595597504313881636123598218989145486319088252775645724416034626492248048258344972423003425599074793182644933701370172258752009889121828955185157228998400281294511806659632669874005152483065292155295691116688184224223201889418315871840838194130103135252713262787539257881122360324196078147169017614870678177829124187212231838021702809949694472418358107518189916265422303024494384559468694092030518806518417698790382944258219887262213670422047435988109623289800490029936909845603180194562090546314672155258519745701593246416858540898649173922720097944886654938795717585330349861452594104147419871235911234961830870244452484453402023901010678292305771207735303409860822017969048179378435453625321963746625744699923403110609488234081526172583132972530890174429148865250897027209667918433486608435822607974663368335340930694628497822975386620120229272032152416782418244788130222355690759342455701974808826041008981006702405820779812127263544892366638214875057550510697415816472384794427818078270552737074406503155267260436790055849481863148197835931531012095603252555328300795449232601650893376347167998667526927597095645017420097037783735924086562729615702694104456400375712170990983365594576110975074899372614085045567166458096935387236938663070554264796848149298757027095478273370798870660398304412082445953871544899419252326330685297027346742062835827587089293248614548890673174988354770421484191978971290902859488097608350324073473654686594788521334017746276275290559435622168960615414751327581503374831594740830968443569074855097229883436187643174829822133459512447733516636832579606310978933252689285060399204879484402880582428204145496731044288102067727644761013277955746744191507036048460323644975096205786549479369589888273515057229685757903706282951803514015815895333077967147779388033883455957268568629295277202930210347447193054753576505262764253139005016196387950630696452560400751407154176570610097505669024640052548833693872869903478995262675420796959238131680066295666185366705170623347172476192400684843940916288057483116519532767885754621435109174971621548511026679994099885515357186712118113853787484063670036607409628259241451614333449103400590734079758367810636829082570076899189909598567742386278147252938812263498974928344713313809676484036654515672587212414561476149643395722482959190073396976698433564978659072782642847434113800508373869448209202622638275617359663884547449391052677957407735866291443080014055187920689702529846717091316253648054630993916221941236227312117852813392043288555954933614554583323152465497251605020782253657720893522342678765305098746432571757367310449969075146631059513940697317394940233778545173586925992550123836218825537048196866809115269745078383094746136734019618300297419385678576518252022421096585625917838839968767280353881353945674284535481423136493649516355123116526262600605159640964862139138046660525413014180125533101059158806930170399788900036078792473908398002370645307167423814466306511853220651767720141054160135974807561644442054652996552871349651810301160802867983828765288896410568012333864855277903247855903414676906142910614127315366671807863750690333918929644437465764157046971521163539807148851294498253263345878054306002152658547801068773453056777209464914603414369372527012222471110724264311991255572118048804099329942437117819972818693800270072437033431723455365877810074430779270562353555607497036602857455714790355809532105250127347704442912484669502785523123859613612740012088051817209158236765691939918800047656111742358528696246919770157667132363912348110353223294286105809734002926126842684447459739949230253022764262999954486665291627382030220985443158169909408213077506148713058506565185090349031352806125690337160957699005994005123652040187569388977030600930253412070574718455437262592708661124847201817494361639442364279597273939855253712834591413354007915425539565752543852787283231554037516969952731643697466705164603706765455415465865203744087308758923700490501057589181877663951006605725182153197842315288681645100374454997149778771712269693402960057443257803103405641845061103779361150977630234915598323759850044728643474747825415666866911165387692332232701144443880532844442193883413257540383213327369852276694398784447063216055315228933442083897428102325380989396275868665427695377810914691021098892852775300417686176555017101211978081229840245510826859058502991596957313428780649381993235562828812554948483440300132751692604118327279471146619446374168276960369008669044329885051153311672942430812164317611810693617676922329914046990901694150831686454789024486582945660590327919894598231959236495882362900188517787712275224667407484111201352450461094512588980218157231799553684969856905877921386262902753546468084340489231681212823958560073547833788370813652143084895487367082230647742034229472497495735121387909870175450708735202565265489043732986930397115623184505750434591171163762368318203459328176852196398287148773773511860232198272685970740356092205481603712750659614039631081421924434036362063370528461470727941808704221335876341862502413402643715453928734041668739768606064914861773590403691044918322940644423736860523898261790077248947988132466417060985907292369393940716809010826270694227766046110925825957751286182062842480481198180136808832148325340949284061480968822479943522191305021730188305784345193973204680051611224993359876182231980590281766358134538563441322800507730622681714073272333227628079933169646837816258772185760953182087521138571186062897379232365143280333403750526177734345999669927088938043582853864197301678493624009640837237340932872483438361468780213291948970888398473664665248883974034167939172685617312306664053513446575877769279167298573696807634283060005719277649404139529705000728802843353237891915140549936147634464511044211760257232702361133165325036539145226496518591019690846885823639596106234769370677310324656415520868517626487867470583094414311314377036820303949037212026444540805784705530338153914336314879007537429519050988845471084758332216907285925188141424437434964888894588662638134954964190895102051185907899981381274816480321434821661527411347727429837662127738309017273304349998592456030152632703758294970071354090145928981645551693770536461142048686247285760950989845688276015455439931737905298270571157709736253535845585062042857489392163743006918219777012665936666133711109412498691404592971086398444254091460870048705570713930072074539050467010421267721091491199583927946012615425570611758880898574615735328148800868939606818351283684211130661724626037393265893689814316116093484809356104835150088809519365981862726909304364033878182586656476699387564973529484883598320928423652469065972420233285115471284889755969775693358779107804761120776942250596082241104638576599059788002667015312879330859919984790153627250659306994656079182225354677221548634661098342949316920255850927435039726950592519699350892486721092350628585667715955912620821195755320709775235141038311764066724527627994722066435567288791019757180399125079858264122093507712351574252225772275114524748070119161242673527994790236768773433521899908671421663990895908129045563755942609372497291888065283124660818176023262807924557715292037950422182036275838729322541270424330607436298892346193756042395361946617058515685584865367535591702420069833611822566210101587109101168561333026145584958800556351886246542801400027099379220006331181532765576080091187290680906591527581340304794227878416222988885887609362528785602737786252011076199367063640050424769809449419575229607999450541202079246094401269773565380867281048001774285642813554416995464147108235008394019360521384332387870864231463990572181527499391107806808894706103653347753921726450643049679426006122448529397372697745977295364054184112130403437852618161653127471754559083792526529297783624589396713769630630389572441005472417671075581765754654639894783041142361342364043171441184346661685165319393903718363302589942803946003794997678013114668373065912016418974062884405471383351373259514709141230844713108046221753252704523259288158931672542085130212994442456336746996320104892130979407978882648901848520157679292623306547484422847176041445754396213540991333371652498796359155266254378747171460393781392511426609797383817369881535747670383212043145133939809291700295123590637901223489227065166530620545858074676783460668034501043300152144523261388819890609812375431053285393631013035696540280683224865898080309772098348216800604860599148344694892589623923684406205540528367270464333378109959937141412723974275753907628774789906831562541554471556790661159701031820390296658657578756992001770057765949072317744643252858872277663251554929952195580074512644238987831533933919882491196698105522584447453814514286928651303424872939324816423526253546268371021135629957726449399406984018716970251008156483217063232005559750064789191804654035046190976342802507317292191628031612198962729066638599450982277852141462459969407537467467662474815294732589849768414266415750391034668749426443436677382267059300851420917493752068134054939223546285040149478894825964710795487174400171820648345140192645835104693350793637243448174580937187677510408465397557720015081428821930190183246813056282734921459715191404522515522128200586950767953539342230540911948548199233252518408147759365477911861331475097234120122894837137280337335389182544532332653450923989791710609972551987512112161900826891166634299515338871296063221569876102023927185489701731671041346349390591654860308851578868943166626116868501529753480838300292526364622613659250524393028073344755154705152620530821667415502000168640225664751570273827031547230290485598428044129440028072306301036854887403351832295422740846147928607232406315126885240422843927679006627736556069246040499509468340178546781746375416480930878306432585868276286508759135096181455597964174451537923449277041350760211517117097252335365058913091431093723249763795820221453307691161545500160397813328505748169297363902150688923214316395912313885585136482643659605691278587478447234963851291963074515318349299473451797320720515525523451481972773081607147936007683225214166818349110029177457563756194133061137893928731001109356898410328709006189826385795980427190348132313442144710327960836152110198550867031978670392436702838959083093396032163695450309854209885104670171399504464528695926221841269930952038234993746623233997043850187455779495483702508240065841830946757041186875994176640240566734302043146887035830986797992271913138824652032341962006679928415300625682858337440004731754247587056130240123717776536980106156424367262001478994605844309778302943838951403489999768432360256987967330220368297039066258442630150594253856072237354166053411993269785302780531696788467749902797524154607675067476147589573079129477394604778199908837206025797182615128667442832777727896925784724398336205163754512724931414934809202459220862334257133179189570835032419736668769223437358131266469572447481104848581469360712766200901334744099884121796046021962515400282462009257461030029002782458530778978495952233207744016830805546781592904864390994289961133625611888782531901987221531913535818798025722877766933798420288008622344300155947721261668020925406781476241088626438374413883620018797552506823656936103475844121268135293236447808844774756699158684254948525783246133905028417453157331388806927920695439945836856679355531324322492211839188571321146232410769367911888428337297272179650773251274776507618512540820474332663531223706675113323516070786956885338109487315105725892308296790268808025979463698735068662034084481592458695246853584119029153922660718603168112658069674867844202483307270957424917563034207416348492222978821424237787814212503809317277783173555640336326620856144691436468539065682454688247332142965575571688169378349436877861965281142844341218126367508023451444536538401636310508972893674749913544032107710015039708743212871313075538202017781422790807117938704046552185236766498641895324130523561509243157109879010591372374471581398479268099192261642067144668299191664167380295861000901602740299487893429025048506564579036154742916465396952919612071890428428470978313180633365302486655906172905524405103407512926531385948348246088132170778029674886001713519405931427014351227858219660684015399886810531024116786866807484248303201288238897940996187471839121310853445083868272580512472918282132519975244114872802870518677469127761983226082446329008616771314706310221079979108864412886839422795785097515514703852698328621834410684984012575285758572508789567598187568868702247919168228977527108425618500847357310559708677171092467535994309434046812974421369816102132414104815429981548119185315374160786018374440768008757355286209325625309345659614000302374534754546438104491668452103283970359644106148869702308086488129724006468541212420963601771892520965840976455772338916924966455565193379446750401707547677992743670861524536070273579699058698097608762276438821598171570436083184151548040940106810925584974328445463774062678693652591377951092808400736317836469876143674768378746773643270203777186027874184689158788186907225369224822977902745745115871875371149433096113807397477716521250819573373384905786972295385122311959941879697056265491808236358771218576710520106467010796385929469900895319374409164141002958568503339530246243504459321649404404723444923066937392366290738878563830311536021420413421062171211480453325905852353111052498467499813237196215644501766681450721785722290452977514195078881868083785168726258853031661675232341281529093584743280820387204747766749272509162960940346191337756236901263122911612475091282285472346750566584325195013604372318310752429052328310171163834268054997019643607123633858697569860015106798998467196803398797582879009294727271110169235733802563161460200955361095327686227104130261736207316312554420329018556044352860588045856906559425725963216663900788521068279427817900874692516653140809581360865696144242246355825299209069280093049865120389688134924400689413225353921744000919227672046376627463535660338989051867919940026880559013526875698085275698825729177948791523864387933417445084017313643500299739485461199752936794084330702507362057438969087049643233325861397616859448944145537581927516078895253489207688245670469720132849387364642541463497232425648773781335104840229512005654763822672932917285213264800146951294504889519135822001828180438415581593562223180320477099384736926587256889748866961923297662484348274487179841777956466300169136087394171729682682776002357170637032310642410705275430993960013258725873274567870854645472722105274996352954606538058397679690089385064997537535604057690994027221859237835376084628323594776788582491614524019137846604591418686625690903180866404512878420953316252906967321399544428563878698994791559070700586543018198306217083647694700533854367766249765961139968387114213005982323213451855945929519279810235049195677873745304684095644824221405147487543856538361420289065358917890458974205711893979969910468286900247813405410628316995243100028853923610676677825674053763955064653213675462200274975527735178412677584204668923444645326569443477547646990849332959998666319834350553165952706022183735081347836018975161237017307032389003271681672550729600963640220412264112262361378532501447658942141199357616119661311621780741084401985398785304748406476153703396430226459539067334505946749106881579565488125468818473718677367990173907387179018984672608859059436751056355704609290330859256317390106961062680582464550589582661157715118443170791067328133088782345478485142189707993492843495613190516892694892440863130115131629960237745369482607347532208106934624824072874549384153888180475452524271318977676496050792521664435164392197860000780090391975042999470856959445057317585772760118150527160769197433204052480555578666508301872432690552700837961454368671025545314574314774110767643010692302208150028443926098328009317624533228700315623092764409324125892558825255199280607510069743678839554594421095678522119612607396219489924185058792206127504198677180827701704285963243031623664634928896598140741006075543449334702175176875880832396054275004395771561544239119384116454469907443447286885388508105544919146546248322707342411098227325376650823402569656415538785905286913944180010658375294339162910899022405967530826910056872365874896799039544572464622378544959756654743069181474143204583589678344087567378829211271513539130268842590964276901757512140925983195769960641334170022151926878789374415893513496030524666697977492514409764694919552675616991581256794123988966115079774508789288506625807564057949966920022612529570176075916595895803167976868388639973030569992382223811057565705121023070134990397468009901187776367773646853119370254434573498652696917305742352099086586050233687587235859033022943234469643424240371928123698006911563992911524161942461606930844073200254373378091701499139756490041775084866881706719535865619241578258209125850423249019523141997031953488765583155800743301702405317122850983971965941007833972278700823263570498836703715756381127383666925321483751376557816271220739591833687963562705744699837092247731985456341013895920154852992470148627160064128527295143088205336329506961586870945737304656233352009192296360623520848344366629112357412745444755025519748182423045494078205444065183317669633555805950243152331783550720269506139461042136221814902585946705305356776387986542024354161512070364135950317376776201226698701300925152373604933886940059776809336156626415924115692717615846814854398949941449282457386661554228714383847341094771115925176550235902597073698647894336160141328169695275408110336892621329432450910829559459440248428685585071574580179536697650819134454167543863825610471048767030260245146883880488916433919917256269840616457099421925204392526711800244008983813497891291683787453850283072603425011387674321426183295919116842614806964047046344944739513876827145165912012711156833229704780725496653884786624851747506719596067587801674973925226114278584735304550760620013598317580154144108688234443876859457859584857317759315705124311279223835118342215871685914110395085189939054990270045727600922461069587793140651295759897807644177904354592023863033519171937784135999427876122877733505680565679993250075547165741109879242902309746980455126382751823197195289414877911284001945974760917396288508413493154855527343646299323841196348110620053678320981430725241865654534307005336674997640784852886191776558057961445012043992789020601248036757996796305268853781597551326365100557511472773132978472934434225670252612798899622736182868718522220781762728898630705707610116833099195433618894005409649000611329440329856342764076747748693396987155775200500646183122930173759938280260281344451722053269975707772744977583652735351796004296153299493961206186508617784173712067838645672662471193573324445713098813037705177923969836462615312742828359103171495612392123763874047941128355109010805551426755105611850099655003533554342795284900337331178666676680822360579540687197980539530583708040008166474254340424156649328627761381747246198428624664731720523064031697122271984356495410025394521811884219079431742360979388327987401058862121906791367779245215948577754896899541567688315101466455733844210963119025109503701127480711582365937867150409699763109823602398940917939310608807182346486999937493470455809411680281879223354053470454453969338888311422585902350970215712510979624758355082325588278659179778715570392401186456675941114741772422936220401849804655832289080130753799653280602057839272097763198755250202179155188726758237783711981607125940000209357891177362782626564502127202399470251723279576422306455553132109108103550030408037273858301324225776483466757330272366908346422082381050860443743327560535953657826074253526433351026286166290092967543512566394993524403908695275761930875049414856866065517610247712821322411869331064987916291484659590368434034901595333865249188338553991788481636139594878848076817540065409631385818931371502020683331405505249078070769490191315639220595604664124445495981933866213776296630240366981768606377436398601627615766253838926609663924880269862401799397129204111807283699151496929568668852561795535590386104112400995891679544444180487438596942033053233341866137035812186155454015798217175171945689863333234574176258272754966569724082999002903713059946899116936178997272852503777372277190840728312768069536001309147838155300375382169398425010115263798327244455665617705916331689138439635708109449260300573656150714360557817098414489734498289812974659096772947073359235451022499783988813227921936627925938973215981587827872538436975157781059143673968371421767077012857144526851876045083186367290990382757885113125921123622971270085696867942372669608155374542159845204642104395588666534031485581327413496042243281556628498302722873802870553370646918833614176056378384353854792252868702002458352805258990795054297146237878310537593457025661415704271260209563498882534615169949168055586520404072065179218511312617879603513468859138967714566127014613235753273536095189890103962359143186145656723269722423732295941402489151628906456822893877196480250510704710795948696553508689515312771019779848349894558560644830767156415393470235486575498236221128158415562684768935715828211291261499060521500689619449821395163140833211153185617618124398088381393046189108733722291076747471792584686150132499150891687628535796727026604611442498410491617707350960284873625773440728262843320862570254838492504012974663525616972926160529895340728597871613556670182339804239942984447937921949388828997940594376465165725372659814456434749380820070897713001955450117195568938573951271978746150919713555185333103966906832170911427146574758716144092576731213435537124651015847950961643220659637885182198252261702142794011312624833450482107058264466275278823755322597085385440343227726883605888524729264590975993475546705172776233330194731133281574411839296748736072623177501942166673937166208680507891469963337880916845863267804516405757586846328921881827245874168475071461385522556636795122222271961400022696561642952598478498184245421795145110988025239413750631727810244840090946760684884898276044949198082991023398005112992244568645398102721734848189503237398496102035264715972662234784891470148419665583006801748652257649765685438231787807842191387232286008869220442935768918648170734668537128068071724467841334313704600803264682435173790242894393816238631683336303470003254956824606805424419276640965857159379221828354315822244135975358330768033945162789051434075087319319888292858893764203860749218041297526927075769371390225404400418953347138522998347753118864504151277770830936586765275562361561113565275754443503565948115077628457241072547602467134469938130190785368123382683410246350000281416499726998040835636692261633109333638993261771272054024328002339785914850730656263402114582061606327636478306798975174681727300403595170833045710808885577527239848630702630005699668332441878590408291759142191565174032740426859656360473537033772373483614683778052877819135909211621260100281578160632649727331319998666075378361432718525948310654177121655779575329727910767122169834561320797188561590878945281387704412404061039463124487667671815615008307615709793048441338926517688108776458713013989229229840147801018318128440905688399588410772792750431222953213351738043988139895964194968269840833258364916777756243571321088714658306846182144629650903413807672093314598806646855962961756562474084890926034756273293619823527803195482406002426594863450275049915978184632315138376503224216859520874875449188605631123251531743922313028746574662361436779609673442810497708715774096556811337392051569783048439960415873893570358172697233196363381425231172617976958956161772867664855408571013243205214242296920883669583461099046703307282032786263812183004629070331696660125333712872791137313507976743876464852951681267128682954528438532486753348348225283101607785313658908772654386739727883327640407677339845297757386617634991703467587424434376988050674349575106177271039504086541213668500991447336669881599934958582725674344441524150346897112715356049655639870315468686222094220545432434722616495850532736289159840133895746237349969279479181362022421119781837629606110359067767221821832705362113429091231721138502435434120906771668218802799176814842708989981656888960814140735195042917064117727497639732215028001744953320796270094222094879260843017558998607023537648386095699535300095051177620600337402380192374179009167999295602232591588188304419256978726935909590280922033777070348937758580681100547903902150961057432858716898504028615119672453592107092078273115703858355027448077732751551990327206195930160562617752845356850983452455732644001490937519713079952702947870636348417416080563836546709100361180607236766388335524388976307261166944368175999348478072216274336193802474950702532627358829755312111863106349267853333174678680170747384159872224896167182353785696070633297370126779680478210488482491949617521874275441197180482784980221699071540196569028282906739691381245859375571342680505143862668453363812957817460647970628590891946984241337810422799525903224635671312150620622828419223248763146821218718281674833934646320809289411620080904274394850000846414474226169791791551671597907720187228084009153329069492967126096102373238520639044722474298352213738574287455621482668758727913141024991174281183948484299474694875893492528166507305317208919358583851277465931436266119095513938055193558078706838815778261907935578388917824142806296639233044795714739537311973310135964631322954434446678813644365506110939492251695852301032038476227367839156185912880723398639388250752852741702193965312062957847072696709407201808924716075162000043285758830703160023184508773630252321703739331797028987294409907902522737790144192097432105757359722870321326149791486087745812762281955888840108876921709838576281386459935147924732784197579368038608865598764120634258549823202019463971565595144429727378734191243001610639289801759483843087598441867535805420855579084908603703658412620390322801158189897243267476868819414425772744569246432979785293001914281711398818583332456155613994195922025976822768828815422363567471034753208449134971224242298698053031184940626287210913942961902733822225026199004108431605863247602526089620511956789470473649719386213902968970768994392426451678752079401032061565159208887603375229871832520202371736918875645655599859014251566832713753697785106669331686110732846876532161178461082168063454992399429871903628073047988647858495343385937768066494647858791365951538313968392345098839738195332901991837885243637822631812896515223011620029493023884620185028473316151597021568945608095236744702476264453526928505745913872871999025934897716044065766867612727867375623214427458890302370372946607789378744388202388173650889991176305175391544957047965845563347021681529336405654181565795944321389658788429536127465777842503276175842131658664516368540934923994277881366339686580863970739247116072172684015659543100889068007437130629276157871868940701641812056198015894113643909761902824281164018115718509192450757291554593305434221525644323481331508133352790470531784750923747129345090977418651321875769415686356547605354450260326511379239819060858790890379699025822326297651759074997285134461157144642523131766575483568856907562875172703422947867928491323677759416329461474012413521008430526102262140206939455209036113111281158518346744896847538248276938155113281468972318858363992348060922023788868444862776647578070746341702839432272135963917105150725684878914514274598477991020371373608771856909470261491522101997997407652638943727051234737521938365838795330899954421939393618365470115680189205029185339332023747865663253389484724081324077013069253937366433489259394220551781551993277161261684264454133943034298737395616341666688261705106041935544768662848287481475608642232896177843595849286162635700073451461433727760696380336020608402616518736292070124724873912121043759478820839951478180920448362983810993349305145177359713169042169209253022621007708633386405636444766752081070655968713464420390090912360725920613915277676930509248321314292272305331131857220716682041998214288889546529684122153300775321924221954728404613986024433202663238143061249002492109920666790282078236995261070369302882678362635920092804965228878913421884433077949512563831171988907282763677850572493915585625155446509702423690395226790882184171816329144990655012557231031790252914389560718023672572528412035818943635912535151767611837628889771349222199472279568919849253409776819811827892280601707749653781221474448823881230434387426756865452434097052501700106101694572698598678776799747692778453317798108484021010058459161629106823326440427337214084830768416718888271989397661119923369553693988273114053224360592559738005059624107984413478999600704567653248104239107426253584687338130734437032954247871875408951585725798261371003735504519421179110978023808865321642069652545910178819367856459594643330996544522644265120640033807739643980019927930838621343872954040217520450549762838702080380260928262919227479655518716694091010931160860722445103780724927206534086937539809009766557422034307069767429660222647516118681485036736316367020664941257368360198292710448664137399295001809988429580640189108661882559615674511184179098506710954555941277986793182106674216059923113749998979340567255641620893622375493407654735641808987253544565766926107628645455079495480963709276322100300958930578379876059702123904316633993175215777645314610329521181840937990743675874318495360356178642594039247019245689237842772668291688652907491668237223550220755864099401933614241159856284719742256972413531674480699101452553756440517553099814522913473382596803425945213289486854254215177308471608239415422232444344513832733246996808663416322594704857267506664671539751024153106066650389955589622342111711256290730940351284238571798837887287641083817183080269679469683409113910908653028153352964853832428060004743885862773726724457432624215919033166288378893581258048985307618924811057578904377254171424014911754576776232256361858512662415889610944040688258898076912059765646612334641301889199047371568531107911767465241715165926348526984654918939029116229757132592615360415196484125284726177604500665556657318863832086572065268342223576578866802999310360443603500996548959216573500257715618837510056581426507104572035818878990557154381141460185043345984080949621917679451979680738942709842867082550727819216990062459479304701570474778260389427462261480831712170181449680844722442086751270140879742062224002249184388392185999222101603324099280249972579571757690305091413664497690908232125577506433510948799803221446904233286281318771847098817806243242586377105685102755102049478887270757961701391290475538389739225052680971713684709499950777819579372895562359452895950904205142670070957189529361379441563169587641156292028385319257443370472482862515981957084718350608063420655828124551865778024624934125255292143446416363455319579670985550311764365061493346426347361107281709438927073343559208099415197962703845376293502979638281717303290172019005299699930501270020327388034062189439736222093679191328967277871131758142071568135952536504047540556457709402427907747134241294674641106824498269245690456725701093432136073528443388903129228116500903454234539393271659305542190339684060566092014710003120413586203460107065166672516707415234510997362617841789960658643136009719372290771645666182790762535680264419940861975747755803239878558073921239078655490146592224019815350042152097913396459932751422758896530227006450223415086815092725540277441042219262041038853330672379338197787837114938826214862275689303826082878085569887985100976821987355309943448922701960777257882843298591541501353356910857738166797958512585939069715113610712958566924294851064908184205087787398483209481094386010248433510665408867767011556196305478840477663326112853289302997172419818986216094226301815878201447427609046395246974270616072332821163171702882140113920029827957034996436018543050846914079529554114617249157730100218532858799022348186808872289842532808694259864434108405784934762808084558495944491269192631281704771586348735696102050621006067130688718376075737806812970693514606267869702673153667882521775919507988132800433566837141229090864151358241300053460368094392696967967067174810172179010261228953177475589148598051880492564874572169045714408973895692028237854456104524591425909038848630459757657957583300878870805696310945563017558781590463314621005331753438463575251827238745057325094874370035212341881476685247794705367582136173297713302104780455089095717440030259001239344134551908940236868977323055748143616576162695189640432838096108346674311826606239459253243806895835959609590968245990681650584042224760955745567180685595281388277950202105664965401490957774167637360330575162846927335964685042480714299298364936938263775365326677864644297125932285133800489675096210919927408651628988883806487463375057414456599326022010280209957109293880655640533550564953654400701188298072975082555464612854524564300236856733697048833367107883531051354398010192174229694773128235364712951039061231389090436283218205153628105295434943015280773912584160878518090552871200717692872530668135508949323445829615298365150189603977210090389075504348676675604844611319171790745170964748364444332400169146837391938604397503599269501230004188690572669861406771656856561644184846161921501853335042703232066493869416065812388532902496540766643345292266017238748773198875545173898630245753462761543718604392808456257219200334836748465936504451311576949783027047293271883057647914907338031893289315764680053625622489535799094026970719817598510462122217901240708715270894280777543656875046809268391866483519528132439396455810716937294564246963547276441512469433287914620701784501939279231578981632496607677238489060142980561978905961354579213436405023470631878658222543986149455747170088497766926452528867812729991785889488309813635596914117327224161722133097082709177701979410638956191330905411248192802080337871571207994265849784017411970074341168317749715927051128079436107648143250627866873941713098150393424245855741917107112843610547841805273476807694689239017481825171039585927576782969001205923402556613201681646388133001576004785005367729260541044327171395928950471649510159129345321800187061592867469216050614217723900104709570344796826286272528033053480541130840444078789611278337787955755529749854542846901785000278699760925054445379551921194202209280832572427822300618342857355187089909488406380660472144329748511374165554235193791072562297336887464351008515294916856170922863523554045116783304641589380100465152526800922521008221992917190106477579005950737158091029826380722685117568931053711893610518444552530163559664197050611274296606316665165367968385783870898365695747994142156106802410420065881998228641462317850346447348538132954296901431137340356170419101255404772872757297428641085437856092543496500972845569629768618236456088828521930595422988141294536207463978656264568653673237177121984258767129512823048979173608463494879639972157218562496184722672599702314193811047366511869291227103264047514950783755516336645921991035715672177110237927615820662216255701741127335838623749073633782403500604669369152708775715536749900046487021082319622054616777588600128273210419024527759079290644367872049526963145801497510924616917166476903404588783373239037392715923365814158140856673179688614168870286142707285114180945026460900679354676661914308192417875376299045859372167628278179438753890933200858186877993394508284703302702495056288383681456265017598151395446606752203567167803051681947265843465801061892443885369135692892071276996378063634891615902794705167426061023839880733916439778658510691211993417380194636626011970246254848388040310529748658132700826691133170550516257343481379132810398954693363005545341477831715081709548471931134695402682219330671190958390348816536964275981852857805566459406293565337769028146328753773177444934255311304580999798907081038199549705198097042755260354835781663332218198218862368441783178729895885412986286665914168871678580488240481914135576744577747724146205725267956305101287893211871818730248422489672653601566993198462114853564536344656823858728153525763551636559648982938500804460254073462931681886542043461677220484846000778649147521345966943853908434489200907038252904604246456094119342432378789846967464453387173488323273096865722585263106147862473363254677568751887936530579736568486485711886786509225827767424138525403089629246682655148739534658152303678020973970357518962697565563717071335370403250046551395984882634998338539895142241222895016951900893233700632742132631194963452242498455885401223374018810601646772956809357664545929575025473603161909689486999729482827215220050331092146782224816833009998250422531864197032321578586897595118597868369359378663344645588347315017631177252260738662204567032328182789218036601268842583026647585589398098651106402143322684293264628053869903439865307194567784616303504058580915363431570857866146837508576651435510636566792624184620724927685649280616765379518185865909892640839115608416309295576424193768432163346756026693491142187775898895354265114458195579622370674433917146589078003391230992846705161183684081760686750579790886027931823860906334754830081418452711809491132618583701284510625099865689528677572358114569119721230110891080468116791122964318665810336628217938373772030356039015028141431289917185416036330335506263898088402839712207678290062279924260903880947573442449423054311442455296553365785705977741319311247822030746602941513379242648500918458416328652271717394827562459499018026683029195642379659460268436929488890555781913088141537394187419997505172826566514333639117189163457712485407446788178737703525288334131150410972266848506664446282061179871693874959904982619595333076501760017731801781267011201625301207508872515024425857090665650577170262828778915187969735303736774977244614284739513334272046214479929405780983248172294952347657756608610252696337082471464141812566184811117616094368594073418345506144420028390610248386198232736249210360770953793012292882631985115588166383822898345580521018963787998789742610523320112298306181235251793942072424661481979568062045551252305494188510495180269218254428674230050365956583421179966109831982895023443744516658078659862135728733867464172491697977336287209864976792270501316709031005416358345443804183390265882200370593231271859538926966765789201857987892492843910103003558715295438433558067003278434884246116421312603729234629951692963838358283349921751433914178348054481618854641791058730583400501910137855289414903334016042323127773203769573457091938153362610806137900228365318765866245519214848732023833929916720467855165276629940607103376719879299570674133067510444363185100914768314577828380246036606194483688419162528338040530505900152074281579559185430699153780020682561046212342183225305429847325170278755150516867532599188433378200267308104261985099484063546969620060207213243792915093365007101745114171081870089395071565652988936907842366875296020780906469830718852186637668623260345081561293989365777050040352315910465855815336120023947609958004047009953885447470670030153828482290937766843206616858163611570501856296143295632584342183358115551486954079093148294617034150285496711232572242193687969282702471239302830280149578198503199461771945785746439200173439911400304818968834653114084120138581921782235769549715190432469139036720756292520267950112321698840151331239568733633122268735719551253871563219526972990279019394170622228079627386661708216324270055450486782085335492972366354646838921367726756146713503109345464098020635508446944223104756766818779691605806012751273301990085046176140139866017227157353552933318145795525551970136827321782091208685897083330472515899561514361551608570834933619204718493383618475627201146251893103329079516285373405749980526710678935062765289934180759683714699812165564676766832968966016326568347464759694478724089705047023310701469229555474946988430290636541709250128455858906054856096309030009204356597429411531979975118279354270904718022487972965768210058433889269402474407799558365328481521402777950023969100986097373827017876194686801870322844815331517595692713126165060719991889972096153891858419705016331673900160688817350919934875574087512720735627085711355567916286044670809634049911040114060980636972178332809966765955466308673089736359765080180027606414608895556798157863656967836944409017640956560783370742157351958507992208609352776115982983145650024561451166863366341325128587064254979661827424680767468123565763706661365981854363754767556865798759535937783376924565870068081478007322238518693024434239296330528033204699321336122588478515078457957959517633392039363685442045356753402035821224443443602445079975031334060779810640408915632334787580434362868922232630073685936563433004566033187051714681389631603166691257805721240205463111259877578902556441217055430566354758053165717574299012944828766049899349486912208886965395551773195716592632015868357594795758045230150020542789947178704090519206562929146322398213482268822715531015392045760133464748591073895904019647578407831303442368639614319410216082375210138349227948978116121341123945383505943933270483937999374368629999014159389381356604376553350101208128141143930510893223852512775601230669045158466807249536710564671244531751591488277270582374348706928639058531007091534290451352587840453940797121520462934706687968460104057531327565454716315595841139889649132854070373921095493916024451311474861372057473275661044994376100586421641770730881174693675462499214323996444015748960688455385762659536664747735090147306662706869056053051288857124128315107076867818569977278677127006265401073331719487031824495481367216926226362268565278892497392802906393641155253016702591461993887845148674770787247669648703086349274606558649568914546844681473933038990635008090036261966980821342574926838653203546298779823353481475744830053356531609533186445517149714578321689244519408226878503641195855946399522518986679635824914474177023356845238193416901051503828921467731931097506645045463524210289844654844799479950257433342171633992504642959218596851018922583658663618678757449181123551582498958472811093511192095788311674347660777508601798734076452903534530773629353451991445375583678426486199265219946258318135306258800744894237623748539873064075031916798100554234257436980536525395159987485096824329387198590048585666368355634435642308792012267458700451721434132219601853426902931596193367995238346544185247608849691028729906264070702374580818338192476260626577532102094088094198513951394242721342496820921227618993645579209176270734511948863112447841920284921971364894906202719244837056218536804153879159603383695221674250276748559531013930957506664716152549029667249625133376247972566640917514235710316483529124743576788556868042242191834629706629383621270826513052854705048356100109240261155841070492683151071003511310081348762926725208076208022440884689133158884007603670731479734448642228283894640543910989226404734117171978409924445577736957042150112745769010638019095677578780201384038266259278576473146453375220880397818496539856565052690840359497528662260115523528286244529399006928542947580183038527669215007940805248902833907642776554407929615860909775898450864181139098005957576175368386693285525290828789000008504428109342144089183949129884325166514384225224238505170362972370684865397728038525651599287192595100609268144970253841864725435755324388434134372137207646188065110975043122951794700009438466383517233261216544551642079916322296192796406593435179999170276078883802716826283749038057844972105431653851535936349274154732720209080486527250522205753934329287335691278873170846563585939362078949558961071634031799414668550961526406931859735266620660264437458638562706934384070748952387695271304675271538013046132856690132764591884699488512481458476312285197492606881167425124356524109538601348907068894764969244669091442939855735138187624409939277154118441087179969793357948961136157514323268637990062674204138799373862415738256946503445394084333336338765089399685684928411949678707993297770292695768067603118376283177351069569944578041320844749629497795842646315376232785942118293331073592489905509023448026964434167235628980593824155450700508463583349095109318770111121861511432183285431040673388956066385942931387297726451317686110833876433842985949830190760150737365133854852330272712991504380266266586215698139219784105907486385808072415666977583436917786896279749361280996870507401910046069308348851266792974106155165738345070239486771911353307812411015501358369831474128883160409386606663897365135767325743599028312651038896843345282487836150971021178126840401815489901608742860588181420223499947708279370817969034986855209712261581669402159161506249402808620103118068196581039706940677703261311129357440516172378732008426176008999543147275994503086314157373693764808219374583917351186945203747212456136505482002784446542375231512194776043154952189984660432799874012528647319603940408574495641935709528678684670389891388120784071042435592941318855053197861310050574177673161738352589757383752017009577784720611951777308876152403046596360514861761883930139296085928713369426859546568057749408740184135892520226875365060313953905154842589435254539285779827023653412067576436852079884836213721624067351654440183023244036574774591639808085206063411408083851054244661766359640215285192003305324083363041841342972091073146927158904764973603983787420186056530717167798306975198112934195153173980528347675124039516549744058517817483208470343571797680889463322961795021214422482246102184636298477879367740871790289070704148747944447636823740519483724291612406859113894392223272592334122241763165411555467136566404335079163391797745780258878251075486895948620557850071412669625707241104150944598253750463529728575385399224419071189806663583256596675140757959856529337653860190601789639693912937150399318483620252072364957535808933643596442322044863285575030225715022976465443277183736854383698084736407960341352506159134144570958035980210066660315805629815341305132192781277431834359317717045246584380156443249480677957608566578840216579156152694239357089379556383795071857995134198522944140123692670425266108542416879937828557843617315538927293047470085778563926734000348318314576419457721183850193841112203884676509027195838075309879321727052123548439375104832889962741802811745185314158962751326243967605830729900683102997154016794745372176121938429005907235547248889132223855479472624606311483486079104833401207178074612197148124048460482294447578832815444494216659635790366466809188047500334093862302296457133518649137838207534462822963100018993792533564607450750809069618469382965403390336215620354932519831102343950344999652443644804238042002275323779219021119909090413748475922121604798640747079215379844727976710450284640692989143606415502726617252709101136021394705574306086755704772748575863797632417942721811926698803315021588815456966495715368433097648128278941195764140014875910124446970740206276992444543999213203257797026335198891458672774281255146138174274509349937044941298987251804540277633530484279358199269929247176584723892780404171021195692479872176694000206191916282099867133851799952152156943087472218131278217956605414112877342118682377716757643881365882472594549403189003317487817755230273952403754195040897239968407298301563792771185069810289280703967888821964403249537338615691012214598043874278752249693540460760381692701987984391847056498379236328972519709155715249312820537202014363609245639882838049272140841608799382715214643910739730730213627615916242832238242002303101013288813600860343416382857227297821849271333992963484638189030102402005920811803230495572802875311500742011887449169999466768006048981576734758498993956951131614742870764145659861486019953150410730185023073380475735329218976446581340630465635480060366411357425610751720099992046954203725948475325697171434459771349663422911797883801700987129015717792752308158656639245760838601192144112711558582211628237375395449048532802441465882141252762113967057530615921995548517676698754342287478965999728398625523387408360235895315905008496788891574306558941370367852623520194997401615437493997104227741742098815597834855042595143621391297360877721892263296177630487489116859860100583769063055210175303047065944149281594759729647774218882809080274756353780668585594948098741062821582913570696023645450557990599108088462627663965305596240704067057154146669341793226182292293062184599446162899918332398657385942913762091168680519823668431075809989149963012549779003053956408048737549538550836174772685718205646281852142751709237809090936040554410380966671326682437621806157713112860166253587493516072552690692769189514170548955462641824165543690769059512119026010405432879017073664495600639561921263859131450557730526478810954691403426839707936457454296304127233119965640608291540462208966130171302102141360492233478986147615133828515534009075206605273348032149910156641539431216364415809922875226621627855551143563680037702453350969969783826187160948912246886997808344062800641436040552313057649823482679346187052756919894691147414786770116360320233125198368865108915255574206829975071576008551449849637823355813038632854817188611759408900303126851322710516956370883412869755801304478008268148205680931959404208918655553944782834126101728781878976893171514920649997914163075608648558606634730745787317070256822366357410152353858410599784069832418827205363951946694058382194138065584837915533223738302113188504048104419605005730751537310741832383197175272793295789595078074666609900983723112515164832614380969454660548044793097910931462052371717724568644794381793496069920903253307063909954368528437679033667946207168667715070241312747050083735565718077758780585439634187888376319299106247581003857439608580971664336645134142500416213676917578862287031313697846662718970606409567209731213823423322796641162061293953398303942341447320647017895259962909949757451145062524886771530570131800299095017401175691735298226133483197928197238957953135199771414967311873102663870413894320312949224856179253746436276482667184450965349589391857365745453406993637094820116589398869393178575328487932195907525847897303965876622854754531177977641659632989586879218014847471243689459833724997520472095705714599757490853402890580862557157598329689646639144457639248996371013486053885123677492898795342957413705577100485359407812150699857723541704005009365549700162101386680057896150108260023285289885782702914261288783644027103577084572798294239317192788034133195445350462032513582691438001766072092964397995986770101871508498034556702662878926196025954455327328605565120307966845722253882791534036116934021663640261490069181589434316383195974168720189467746454876519462840992406961147632500620917051243284948127580856344535632240831460761942331569646117971406441082511616737881943346228753054025813006824947828977663891493533796980048413137712020183369036480206764442431258576755328037574062692859107756175147598139910957909887877524635900487609070289565834146986616872563541464573007872031664517937198177495063727936896980015073460507899158323660763438129905661672658190654281894517484868149330235274144978271380341174593190417380301576775262487370447656755560127948491193192435163233129727684336537758471924311508452811606486690909342550229567622197553070595295118450236571420741459346210929321497610744763256363798376802329759289670661305578502607725862932652810460776666728785387533514040536596097120741359570414991840366726122509456077924908166169644900167519305284093426152976622479477210702339919843720305891101963882210727620331365803752834886198421887042540067203137102997189902644856054496539667881016339292196030865165589867811332472878017853894139028497212290383497678774233188460239591759003981250299405638109569514556752716425711536503820423182202682043592481344515783608340402441259838521087882486991003231370985557906549937401410980761942810437341553846855852536892723223310521523720358514879245790580427180346879219255303135728259634652171783042208986349256830373204616265287450338219911422197427166498251629358016991769081666913925330746667071727453441710398123847533554477339792119473565945142261674978535402420852832472568339377879876608930498579365376499143887410397688889934044857120331635627105120311752071692775448452005036735057435735838026399303333310557792894786221746108778282261356853661935113903208062422820930036828331731769422886237777630951390971113263115032949349802625061263407317563701382483567953460678481106293997376750209170698607690682121525893392541157932267071660715163607784926802671781614005997971795420846877019753241815168806211625628624725096811104611448677366912296247522544901411439564793836581304726631919914505694334629507927462448999963829926153275551322718428485127765290630076450762306694646126771842402075871413648891948734840094291091960439254799519916599068323110198176976384034989602535136136307011649264813771569385456698211913532741335748791590713603370340773840233263577170669949718904671906141562038883026130651627872553635068813262553616860567745603195967260479726476200908548267790041834448930705964824184016135587079757932877311887383617654394895803606354044868385859264338327482994569020025452310518645831585109996930256487671419324628643906157898551374416922023446257507921064871194231893904759837825971203481107489407112126443248040337515072052199879869860331723771523681061288611440311412463046450685804579832607117655419235073724546977248104444409708653506104738401100894453619182656818995998720473144750037454235409115765068712343904878564777148232900063684692969702312293065149706425419317562422668292410907249055025771287226832239861822975372498685208694853682192730859720621747027439287948158539440594259726043939278575230394983295147227278020496377864916956102745008553670377057795836988406188991214627066703303247145485953673776200266341465051787478076759215616574899610231173540381266611848665065819548603954156990373104070246118862325027269325404949757430824640933356535930676724706424356222358361344147808115979570794453044377164100912952081609092429361734515657186812869034445625171563756437342032646871294314035266395305632420947792112853395572731046776600667924526104107529389159564940518206121994511403313055314840458212484012182875356940965147053518462922425265581557550156685322873393790108864072532520377353992866047135114327327986231419882309657554242052557840498028689711860784102157818018309655204438670122010037057554374218480945989070143028844768982887342226350231668806274831639827271420439889207214757788483153026703260663672059678914257343498496628923893342342352473248401828430364337160951326913235182984590152055818524448155621265139230537253183815004100701362339000745721884587310518976682188499946457244649173962823904155694399249369178243749642160588521417765366259047382070724914050701795104057469631985884155480780900584951078500798427383090810699667055185576838219933219562105695440342653593963921411702265731905331003539410862007005408073709821893862916794785090275233676714775703702532875561404949198789717771178840525894090639203417633024269966876712535384387690290698926110841307372842005167192183412632689395587091177460465214295662918314514216116621042660929341119612591982047539547927181049141975851323465906334738909106507388716850476925034844378036333926167668678314182741761007737397731757931941306258722117006222556852057433894930993396263976412773832634666342138133951303354672435984013945715650781484283914463356575843112073110036618058940070805658818552766077279142941608170235345759578005533581283841454205946144639383743977512515692978395119386648681737240179897527713310041922900018032273747486795374923784620087060803937233028766173074827497204827123950123678727473613346223508757374363558056074343748976733690296316402643458865424757031078123514957329540060830083043073619674451137643229595697284802018853749901748651104917940498526287224108893803205042562855742525646865559813851859567329000388605945787080199443522723356365657471272717007786548991132638407440506758810119675234490045212225839440179567177832296419976922024804380755026111513661712979742703633800038749931542066601973075607612072042112436224161019441407042144247098060984365071797425851560377235318233615012348402965033835898157500284002883462448806646362202078120620377534943803608189775042139021532026239666162195393747007837754894175311648328622710448822615302142841250281668756021647898785473052857164415165027146377744773241722909477151561830425995833916419151918752012989267511320311289896651490206166161887293560187533976355509408691186487812498815110916083970594528931929210527309655489299542315495519625578568230012214375286825686983754779405773980946983628128986672609155090863400836791479702258421702105235082470406166248244342872987193418866046475065907381208746031542042059099584993707303535996841663469600645980726281153105833336461246745695064054640548936839200131007420701673606032357073817014967607041034583508843863856314018208903707817044154618764680147324475385273773285345622526677193828437406596141150613387532786392460635285631087447116828132850761049542430644146834952760419749645048335153933289921103129284317911751108992948815652451081238880714887231022071890777347187975065052660239195163888185956491312657000106014193482204084150363589173221521576466456775340912972078957037477627394474536424912723952384305053509902449787677234050087944472634084626357042272644510540160084393606965870500351308603231610857945461041348804401194017011953992258054561732315637417552005039518735897168210649592822271458435447384272645843400797449908826867681197776622186511851923286791536251333995467285067887535359820660424439406708364684131044374482169031007552053483660373007351558259585050230804016722033941899567781510817985201686947133691898428232555537885288311325309679105505927418262041183843906466156640724199919565480091217350414561819601805380119325855054084521563357659182087299467493776918678675566524571783895862602245514667296801397203560669396938224017255185328014362634304954376268107995400037999331879603886389395113349195717937448322261403403751960337334196283820014291966460471330090739220943834063338449282557527306768556876577470771870163833317502934272927673411329337918801024409315672938895543630684847501150720901783222670102333497601559347282359416445629731173388223521136571771962323927995581319958976630861127899343828524787396533744947419623881761056485982872688343795935452192003998547091631453796558571845472627553511035101358082955949143023855933909641288470380410651877982431074979005705995108038762170125611061339565841813413971958808517958380941172233403700132921142663490285939852061024694746376062373896506376202925440605100964100869319956099408072898126692763731672772949412581788080086094784958168918953347477353787750578437451782798256157111609066360283004745483868424249607403359198696476890935223873306756820790148634071245869076879411210653515419606321673928330535013017304161161931903281482944480702168106833999101097754450077639255212097451015807875892586893430781381079789373157092999654839419255373609897140219408125437207747179438548082953390574330487821077631769661103261213811851812463445115739727592050877008459006364662175221815242398242748180857951327789825141507664702601627771918346466464889594023444310263273214705174322469466361653076201116984344682308544210714816197642604125952755856712926275005637493032481929201826916449590639515699464525780763088041306436463299744005558233815016966482968814223296731403459345437556670581848331407253785650647828885463467553944381905817403175583762795237401452810325095278901877793549059540173646578056472501964390211823013780406400708616846366803117751631720881863688383029206279814075016799250923963817991096408087785913129494923148083686406761408466731814010181889897368236368135022383295561297025140370099358506243625983046712174968255939380959028372782438852932801860258362883457931483998487721709725662300245638737096850887889660336686596586968989120351203691309815173245725274432398126079194357259299160748303333310607280730139601537756153916307618411782353194994037976204453479851449399358365196483530982347778500995060789644186275358566890621406720592691205174723987821531098384649333601400080813356222843435517081270634689337320910180119723899707392735375841598912003575406876207437978205898704414810029769402223492033285980951545087494147400768416391082283835527038667616382889899186049247666749572601692402755005612155511045830784387876424569462452229154036839655269240917294768245657452084225797975201433590575973611892479503150416746651496493507990389349734710126288859701719070906578404687564028840056116955040172192538462840764749871934114570659506029534882434683524417788099044265918960066730237853656389932707184137843708054729052385282387487957272470907919326819835811228260502681508896525939501876860865220837530960125394811125748912551453315175718157889424613715026958424660636300178121251415425711880355150840596466182393822098194698909269048993613207361723174424643514030675350049206456143418784701844546667515972244799987297465455538859867249504698741040050317476100547383693736199765676306089134854812250209116813475623062140422074875383768970933690887833680012900208211988869911157765079686244369514804585761794244175895849698445187515695681434609237564567576408972404578067674404554447363741268646473624363439725821865861228816159079086737234198151387250431679974244540938576309396809525836062094012544374879272373988898649521014752785317126850595564791966641675949774880915105856065684918288862093000410443323006108518354583983474604717975682430468778511803609223155746227643425664607025471037601056064875591161167673905854024662879370038960161407541683021607253644631933971201520565706591765246019921732198565542289399232485341065905804665859766705495960337257956518003036230966007393691528598261755599753485785424386225835527384465408673431111739234773821548952280279801966989150028672976884757853231046208970832943254496764656048352825420079343427565168064887048053790454095816766872745930424108032951283638485255846469107984704622117034403461417723495581617969382869560205118755443662689534726820679555887551963088373137202559519891757030736384127156571509411744121335026668720310979931831877116050070285204954052786370708293861307150330391389423384978019720011977660197286989694523368606962889497925024887028666531580814242980850988898467168641772239026112375446614301988136570647414819788488981377942919641587643843013114459853277637125335347693116713903475403365197581628362230586143147716828998196774451588644370308089834768506431894418035959932229606007680731080013279760352232195186512225246898890874948231790768282985475104680829761282264118786121491523584581033908008377023174510711325454533896502856119669911214930811219856044173599687614560742849401770338141005867544658314287361785615387863367578101695942502858138648553447607667717361825101501383925122750382598401549289417212559133888878158555524332504374330429291805635170482561068369491684581532868319015286090145539042592900489874956942385866699966252093157358701449613043618931595837966112798121234049779123274427451763044169033048991354834990281327875454120422674926889967777062069881445926778079121694282999366028917290975076951995736114367638464564478210731855730867158345977745108118195140175855988737839719312994196402364991442602722755379728574276226823278144548528134719145894896319051175062028294817776314740911339577039413384953871559387511277000296122514945840587836133017031396409684592443793941473029805946165255899627521482539545781414912367267701541174277505641887624977501297198445641167727946030842587698832636548542928299627559432823531663483059588233457848709678865113464684261359449977647384269272248799075556545590654123559273988400649256773291832473093600625655538125257548523577833763840881157713790840553058302138130686839596744836641156677054961098891112173165133271864807950148940658336625814045856684989518887836241682740553798793775702231396807716225586222992739068548967276332118683464886448251343563917576170171480636920635628541023366431074375316139534507967402103661072658615194067863107172923334849353460510793237229731789315245614482683999204362258325157899144995360551444931380633730387376303140036667075077644456980176332108380126894919627242407253578998874035949103387614352250467296057076245205424266678064694716552593634829243923428858736811636532186824071586176263525116303868770467508276821752213295065046271888807295834676583903226840300593403181227687005148254385030262652871363395632464406805728231556627987640426502735139678269461714031992111471270246583576939667101846679738123867281368036395104092598168650001218130802053351965265290424855003264202926494796511654593164435217908438021889472476164928516564567395431891577397050540557119385991139913588036059070022726751324401892073539514523948480706464175473866610553944902960633536570024256608047536619542681108020740667006761240909492656417506352277170755044821082842115621633745047116773133423220385315257336980615996154510966102784167431686675831657476004078724364995716405997214152796107435678761897191969849779130989101272732862499510621249933603417298022012924528462907075151722855075006024381943685870868120055854882754595837769259384790468101445178276688117702729717963693632626212490283286049166166887515008959991175944477533388724206221864559730618717021198704373378408934939085397273882062048507645354177027652799068811250825838058165100711411413158988149367337017884212730297824084309698038615122230740835258016381205493900066813775661824952384273018857415447306464470089174938366476767787702846533073691605592131049910522084018004102442484998971358088476095494166263188992445131527323458668870904018778260294578682828697121707862139267452768168463784004012383911102442576497832384501671061111416270265614317455942516289280114867573444944714097985295543012068328218683305442155766551517530327777909740694283715741711812216420950565699341429131072729789726368416067188554087428038822047962267553592841141245495247649658796134157882211388491293025542136876257163321693974727801035446498679180981457321533882196781371523279238150114003250621619192710200907725095987782148981419079192277647419449473270295045810215611069083829612943014899172237819658980831245966182605363255299800832680593843573413077559812577888774553806117092987875177457175410950776454482295814205601195824668324232295045825459488875074452633925316143750313741511036768625643573656296393398280763090798390837466105008511035837739127487205635733196341253644375757141740057237428514359673608289090343137755542414770963122518971810613221407081735880766508259966830321697064915453169495386837728490997895821334263676271260919286636677076275480343217382163277268079386699665086463030509509235755886030725863993070148895295718270657864388282423750328790898733471600528316757557031927572724173273670916441773108913038350848894462376544457868267329444585019877644942689957109987558700144422162013360053956505805720004135798078556615445857124546568610378764826533196988719004561247333177448393488680736507763328100522227920490072425419642312344509631781542905098631609678729856617767115302274951361201940380337789697292038452653962939935758238560610679946531645237653613969563802033462513863609758660102784412009448276714175034277420789345808158128239707783156662904187424878182498375541509483822506104416753329781877859025874998215625910713089707658414423944403923100876839631572916634888233469831047890087900491932623743853993245878312858252637453942221217040311676540555283905356763111676118633378907821889588681033672521347580343747714617359777380069476874228246016938442802437166949116809367791998019781540061383748475360244862449425112977110201098982245835744341715241198896307926642821501004257034371507179725265913598675360951648635926854080647064976256705217709466359199045891252341437787199699942856148652079485229647514510462897442615455908170041851286161647198585718177274650093251209680215640461732878869479381218465870805469954134794411060874286049157920403820667943242945716610220228448587852174613397677167133526323528495823433296579926550970683561476398060043993789824653926618137229199143048938552766179591804078804516984439471420633415748818404845303320889949667029167971964099404675654372867388630672724121369258506907869691419783652804510566878708000188670479564640765915418496508702398934810156155287601422344559883165643585354559647126040532417483355043594879232691898901665999924528987613443858339765927613545246511313666524029606764346589002829484006325170678567555377066329359302454979724910524760988939102191966054499461896428831380475067650939820547314630105478156713574394977281975592366318923392356714236431712547137617510847301000942609957947202823279047708514495201431218727956392841391355369650686541591558230754464194986813924674005147943773789538819501202785110815431292578261989366871655422914493189029073577513942710510220007650428242314698089452056667222861180559808582660597117313609556083119684059245778695715490146123481573897363772604215494181420853042624396454764731875804850466229748298669343097948419131667062633441875653074599935097782359583891546142106992066653640941400189826926184554637119597082434564264433201412199188033992420809296718576837495067489219886010494163176298026517781659114953067969653501406781519876692099925495855430538374699291106036672540022330543036577348612049637806850988707425507899355151211239377484179413973688323499396623437592872308321791356849280850989966784731702236714672264141292056775400088231113700640727656639929052585208907845432355110508056339570648135011212153116913290008008591364058135096998234312595829184602625352460238470538275304416150952017903464549816578716671957688810928652166744928204696612924934538873917536982655863171460479661473177467916791628108186130864454453567815769921845339485042562910008780699609780813809248957013766756369660831598560949757706507640950392090832121245430224426166397794078486965469288002384815364295795754685080173679639802261380083751176023363306230420275946077189436011697872734648451347046235798644438144984067582409509042066703698821725499869193169151593132193128470532878139000364145444075155122505710926962336435581359640760629407248924911568845871216093542211689861037613419653265798685307284730477597203704948468093829315827655372075530061012074795860389633539299152180596604531800847835226280733444865179084247424717430654587551032185130173440851543558862792092576029240255807683602885610691314727457399611023070874437872248126628758333413334234299833309266430435881363559962055908946527258864468502489228576525403357048615936311453197794998005281430406846589354703913248253820795900785383342615898820042749752938479527700677897058799135195559175983105281457195875112252934614726124024897170076862054953283050254006239894517149342123764763452033786262673412281648082116116389288437647179047094978457304351035577770051511091788395021889237997739972368877298516459225117407946547272454068342923994613972882652552803214344694170665843267496891409233023093652434508991347785418130524839266405854907648301189156339668534834344026802229195062198569157489917212975384588965225061244453299921537538747170138737687326535605195561405738178480490421429702126066415926983165070426423636168654455640657373639911913811238297974399913997964692352518510754455865807285965096302769439658364493892626889337809804045015489865969915890945434628062865432870513549097223259876067131608706314149177728589545725431117233248134234276691147470837241164956185806514212623027935994667044457908611716743179464772874709512393921333483551003323677264107243848787937385800237213249711418739540940502374596177766984067742804658990331382250151614909531069501494435788771790958158508497187311626190034814423259745436996822139431818838060514874757565040350414879689413752830703555095398095931843698796753130453745307125010202814549611665973245542079684800114189189772386421252594633304333669284945346900617168806330600192595717540576506825568860396249882995937434098787225380500790756774541039659563845563672934522618556700231628363500141299655877319293580616660728243382820217688056530948078744968044520994425993034469222350008574407517270162401714339979410986083375575301117268720681664637079311950527941658080378262434084685600823522979524139471530132858498694461086507546262484446137787465447244195897801003617039951904279302279312061628028252217226966256665087729634581631558920847641478915933015373932076350646148692300272065761077713535932719689980097294554841334664986024949425424155863190634127629015629972652196670549869780713716799657635350952134735126974965313666799317966410472393724469142210501269645018528115799790637001683816924068914027381786234627742454935099646318110001921831224565636493086166477158546033041418898921180274486257543780920320918110597904882797726635897909845657664790234176850778037187133511483249470628145767146840410693941602078452902489343537379905550716422656287619903503992447896005417213813022403364029429045368402309424418253284522424247764464556747853830675511396236027157985054834727143790676602459348364693732616006372423392288271065478077502079846530085756153518297879602077952851580077491217279486103713399433392272617070308815147471519470430878563168870114957836139002225515156635874661930973880977153546742052783304220302615068906458747180005780844985247516906116535481580995705736770346558551054176863411512818322013589630609014218501012708447333103596217582103829133112200063194050683194569208180007128655555371519314017822893028489621311881076491831546637008752358400448488009174165261004589759539010034708949377617153267364789693707498141803263498292250560038838285187034648456923120347378945182767948915596549955428244894491089321602502296464950160483557451227943590267492345593721686492775976124514117901439274541023346116123835257949188914621780456078111618963865884551487323925076089581802736437955501933705729923179637093909737798325373751316204037117342768959144561579235282468881470700570882949091497114910869638312833643078918968668265860863630731492682499714631584869349717390180854533771655699947907297214602027259796960444674819047237103264720878305691650947483444335245618552902427461377397481393640508190835476826949432188617036621942808629974746264066267285598931206787286388704642646728703347947457345764789011999278940027720416621399428392827626896650699485950676940572400628350089590055198404260536523133142819177316023465569865412799721585684329217084407254047415646212406363932899407828407876510233571157275112689786247354472806316372320739757041002043956127369092756091420322647780552461666541462470261750458852019806110444975291158061486047495432560621107590303012547144683356301198973917077155515975133692819740219361179062551739016481750556035945538861361953334153161138087471679640806449875871268307663262079405588928544301080942975295065468002597443375681549472306965673075820852387606323212882944262256093367369662865603149937059398729793247338439428910423197583306705254579372461569948191497011242804259704831794758086285301958942172377253735320837555955705951310447693756502408402548579833340880473919389164742528085306612991261526134442015184887285531541992214833118156410072715311461220664834130527187691559133069482830145097231093536657184981514785848321600453065807077066578976703103073067239595327482876926763866099556836104431433992074673534341171291328127046722455409384094685633825225846951635713360731916242190380076447521652183958744749063095526055053905248850127942520218353304049000957809559880434753351558052501175238627025687844788250988156191100892131388720347454164539606988326662724612359240012283268103881306623791806838797704805947838136771668831334880008579299775453249851695842369980211400719284916896168126979347401703118969905483349918510088326516549057128416718868294186524731596523383379766877067548541342974257989659578753464443827166216314715354032475357617217072947373086790413551640998368832070109667520136921934180586671397703158773352287530026961393239047604299252255479635076728202814384940362058177122043154349644943240663619294787615244760661550003899892333026448293058017246252728189336187551633355722251082387964996288610202577219812640918459806002085502409523375545207011946212023114879362154811805791417457953949403711829108621084181713605008882711202199167089865271151332470128808534531685499896763135327552487779919759615131371731142943116488845337910584462446243882328534521535061028043881783560108955126026754514339146234470136124820994009907027092526221815695012892615184121046833670298733467765031865949315445458490580424472400401409228838063741642231105433320444949470470204834097369290291941631607292382382759695960264667741408956355851041416601331669352837151288901597491355511397501947309934861111655791464588299135663777356264839359050216271173731800682410416348314667796021585429657617785779769429329467054279483031148261249475549912152583552941534037003339444513857035032367871736989292217795685097159914607614439268125151835265098274353903436377081311661024238143385857991015109211229088691032783538894673171437139859739846848355488966971875981327194268991884638995975728946811610223510940385586103839649828010676971378125782811059711213133782237900882774433557912420612428211255050913000479787227001515984098801690312831581770694020051364441221068784512933759272132075227981529131968956108376919635785898687410984332986207816585780417361722165402990192612418346579067733524849911171067662431941990500606879030967959631455982660840586738154822749894344059458982796013397156300342408357246112227410730720530599816991729352229702370773594220234386683871925154723001098775235040083322092569658425148588998418719999689895571487422765087182412190144519280850749535590751799468275451935860136705888368882471863310700151972036592749947049506954381219227976667840656233721176343520226203092711345947392211189112007913232397283445478340469321883142394037360305219567593279008665258697833697916650266216899430309027727966011169528825402683687397824639126386612286783761071210011096028288827501222495312969466290840120835740453757555887611412411422017383208466763101633008683467198641605798080689399458440999860343386888186856371971208978836703153957692176588646211415894436854045662955648295217790553758236522208384965361780708289080322868532528398008488948575293069551124903185951115625246986367771190214644640902335101674652654075235993484566440509937219830334740754193562869934112952342190276624020134492391665669787662008825138102986624601218629920212458111644122502605412236766971994013179479172429365857629116776958909567341307597575045427360074088328089804472201574665507186642295796010560669180980253217110153510193866020332828551587545444833881972670649451898942234482761585251838604756698346715330283244222429949211253040197713493448917193447801683098280873470817788776794440229805124821203053029636446848694910993644845983922246145347516540287036303830021420258278535991446534186234156952303381584258984809889555562320782810147978872655666666720201288969087530663877682502712237084668629153279552013658591809064157141632881026639844378019094692031599653184221651388368984184800850931613881799914464872543990819352509441665034217562811336300516024811495937622077947811005045942915397419932428038998726173588452993716467221290332203940611866243418656898766486560754107783499678375824328025551184931747045743247163371260182983956579515258521775504779009486170091355331471369439929832752370685403602237432747364641869011726433436140500873412277878904414636734946475042297698889025527552139456995394954690216452723710075214417529037854860531518900041221654888310159222912850540298938070069721844858616818928089031585037777628163330895571034672968043269428763229334039493494692224664936320685681196159054028395606840924562866580311124290225074243558020929416990120209730375693935098731545797028061638699198795821920265700051865907964347075997348180961246975194637881467479504962239497823709966928356341244545152105663416758034672622334192932563620737312572154415974399345126629056903236631533655703630077282124338723560955873138123426611057872679967049573031218490374608466963270844604495147239974118728072171343863705278622286403317508553021017700724921398491772710962952145574190015740914042505788181742141617952281110350727371068978454968793119088089778566089458273662753048537001516296465440237921026741150435515487124979717604287056789823057974850079611152987285437996281240931489311082583917766122138937209322259769231998737106651171753725120228252362556680250766953072180530064914035361385145873481940087485396041613790926319623988684240866653658472378325233817136282731280835774163941469162401012496581184982390142720022678865392679938759851032690766983911339603454248538460527324643106396776733681793139036203051207899030133075246703886901330305605312619452808961876649473953498063067056399623501972019554907440313987091559283378078363103627605690335335573696289641176043269830671367523793990870709154645689668981218789461751549784793451961950718533315029525938151960515559023749715214542206346970257746555408331252111595601564825737786504476133955462653529461046986288224885012881331250587555120364299905114618796484329446521910499101295601802463997717318818139691842670993573925937440333154054498686469442477606141382661162784279315545000718042227227342254774879506983964866724683982111982419690493711943319976666049031018363403029545595755825678018206979025496622757758549372809898237243244374876494313355660778278880787166109347195553246803510955466128543591836471695493143771492462754440107479461040300962071539405295560697462483789191089382332891662888432329115737139825202497745592832923945443736362126994663063395320732037259913064207222196672568029539482757730506782100271668899019413029833535807373078926286753066168184811990765086143153330941307070973449442396997891565026786179438638322789083835828017870258967670016128795751137624532012874800605255563015111521771216324398059819551707914312682530555960939349213497530779830321485732586732358179507006203686165640350327164694966699815106634375759295153860183194182133827173034906806957925159802227283951259027482166654332119295419514476187592709891572375410096545346424423378404180255545022893454474641725397317168008822377780429237602912526386738998605103706476497273717816312933607536650938979411881339510827963716818636366800656408301797993302336810039949214564312055543109196327439591006307875960745483065547099086544496820497493680454856859356605006210660631327082009269859042353566342722819217234561577634004326989811594484890083297939497714778444104606982055255086512906735036176324313026584011402222427771155197190950492396561468375984596926588800999839897188416310777452001410234579603571874047566727074147677890628722751813627252109715539695372245221867382934608825948627351775900312622413356010331923964459669426150565277288233628041067029726499972973204383398765790333189222491676380527524757926630608473401928622061999809603510231039366359336759463007007940792027253737972088115419070148203554812420784798692886736991761644307115470971595079465405075701637352939384650043026368732903516816800427234558796787911434887893004496758504812363082851678747702823458529146156175021513795380797152341341251112835858716777178394862527714181611134042139411900461330445882146505671898516455111287606469309646623753877154016394886741790577921458806834402923271155250208509735250467398564752145601435788483654452494901512422470887606725879620128040472910012320796347033587050009731527247382234028889148624159688423756947435961839855324424924719284497695427939847430750770901943932372820462967834178892570198253916372320560615912777612087174678475468433406330328764622745797587816233229400251262133257413412800195795693916163371339310739021188030128120841144135778625293968625588999840218610148125742243720815400599263015653777862193413478188711673265010808848103142352421212570537893392542465966597148276301766391285252416907377287490308740738777276104782320066150597023353729851844771171397569146275454935428521198740998138076679668897328751204879056953422839228418860846054038127343107789615860228843207662588692840575444592541595423092491350866489430935913425836649768127285130716036396309642810667853157599816660918996265417575978936197742661277535225448600472047325978212467896116778365974789230951188917051375745884278502418590638680598177602687324937034161523260350962111690870003782341601425740174369319588194418331379565458236527360054668253655132397772375059547649488939160594032709596549632035707319372801712090188589794328947067254170910938119410964719241891270355566472326400425840321106633450337253606251704484430755174312744313015133174465758021259694535210349972188953753851014871881864482629013857449913248886645873423349460864235759434933636645533043813393131960799237822413367844566118203033749876269754210929487398627527247586367291488001267257877248109822219958439185080900960610096434127416513467183680629208214552450702235217955984900077141890416285341010395628967550142261290086595255653202470548092027149657285446436938364870478743503789527761767550876390040171697503725096346320947379365600310572178392962518781256192940271619992368814402792080900199272541859511301175874340997429381114898528135810517792597620262726114000112988723941138010672588237406251757482726525990567490928807719507269576335887957145099461510218029512124429202557150213549361998783813181910966819660741828069812672369864342184845760729550053034241772211299099489614350964029754909034335954770367319314358639274447682479313020890684267954453024554818680248819314443526242785406413724546998552442873051105469325535417191296017042146391779009165734327652221495560799277183611223014024059598540182438965724948971369729203528828247197064708631053705242424738260948783974035681387573761032002872485223002329465069946687432253174872375005242639209772918960508773169776350270121319692333384374446092768145005608831478668926388019691172289630354406873024845818954773726722603791069248682622335287126195048022796605758455626755617992995705604361155172415332792132518026445586268012499889494095802801138483098001986537231548769751220229526208247718208290049046280164929524560985400340081142091712334687355702956536380815229637520472896352145706049943612989324040381225573732010257215091244029858610470249077185083900581256812760213882903564006273338566541390489534162373779697906782633079310249420085537027027488103510169897012586337897122697318724948525182484588902334588247938604382515750879686184060889793561425848855430663041361514260679668421148340254221496108096254652536650381355562556499860695373261860164159365418459398047626817932637012047625256687769806936047653030419819936524116297476678176001609607692032493187777499726423194734292954144819826669295761912035621163301556644871684954303648262431679693562305456104756499376045822447467534418858624181121248324627625551610209814272094777679108358655218535133441611803382520274731489501467701037362522564965372310829693526637631002904348596597920295435754139745837026959610447257476056098724945022463169243601492706352922979220994901127431316259445946424060720385222778636513572681971328691860011413588231225815642576216552057817472339002388960142455634676285731187472288903230865071225162229599535878887699582674872223644032118887596974848153475827795517422708483349162552644568773432779107174793378453766579629495398387844977224130272628111231170714583235123150980402645466103642103890501658073519873912311760294122168449737095672974736793522036525675954001469442157830419905745711118822336439755351494420396711624336688943943932698436778235635628105294110482405284538189531106436193369813589634870932597192810695675721855182228974299458856746545205554749379505674082930706419624848028216349479807905935694590263364717229066432717331752480987693272101808052893089091349569128220608181060896535762469264946973179130125152763109364603572524868302333570358829892545639961830963263197259420499059929373424505369031068752627625148022442024839248194629339132048031068329485809928937968961164437129988008675511393207944465711364739657202307926388933410159006966912745493060829857962503372459736860930086556256150341205186075812266403624165872744266350527178520793526523267201572629340936104725014303498885506480673406454172111855552907705900575119857505892185030789196094160775023076865305348070564742158684085866583290085376615990224523910479765202111121049658609964234865639501171346185297213440303112490158371702539099656803340330086947794537848060645109843834843357882317018338725968107881426817905609649267719992554661043873596413574145890714775536769217712566283513552362502060110128368670395183677460113237236037681156864243287461564437085632279692445353441781962783739400147225024778655313171804673136590971333429835585980561263612701294428430726850243840070161660251295346536532252674682802561139932444103404141913012146085507170511961057421221182576614111375330611208839124309659033677437805666848836844757155790422006738897263924452327373284702827598272103563415673715674911808896925755113415889372437967555767211304282518402655509027339106664137375593181496479194285166299882193866956348086425437867737207561418489088057686137588543552213950582056534813304275862077918399242854718070942101115129434887771720151949711788299829446322967311786689130411944334792263072836601535466862964592941384641828380611932472914362248637189934524993950890484120506634923133362208881896543724954231039076583759002713624361047405190348877428861338148893957156697222170546263445420357738307172933690908123826683556791174594943629546156173089674243854752348759905456540263126044793902342831904787889440604371714192945686360008456632463796596789704183487675709940078999116816756944397051255987831907791474397055787247000150907929820003516832141740396571351144385907298958678901846393544055280631248852384943061915659787044212428633564268224529156745974361828263379704233606545969123900408369313362009504371989966262491020236980643612994501683577991813980008496111699208427582736971052919188621995123049663415159797406437915031420414574246857308970567076105707004051861661473896001916395336059360991372851104408667992839148178719852938511085189275205928991725952544619754660783849922857487628926273411370100612746724448194668658889781189661447230955670505170098961292856728056688537892624887268591737972236729131904230564784944917893546901094103998821037677115631232697608539631676779649367770299235112171956788813712513431282736264933887297132585623637652478363950892584982300553377760961287083331990123606106830962555325430721813424370634270850278979663826587902156693789425312955470581634076795357671852980277992643006541783247079218254955253059427961500504137414313969883427506908917268453478832254089718534163142211899916404309309517613524383685357043411905595972557377220731573699944834452501802337651260814075284702805765808554504922194586399557573778000830138005799472901070742812183788058508557618614193905398514942692769206299566632240133263860218965369442638759535631506779636114409357501142254615128777087061801789230329406836742752024306370323478598607908635061382765813668236813301138906111070257232728225705226126211656576130090990318894755286326704984196097971945387640110166580899602036374158919428829714450972383863344358706533914330589672308587491108261999381872074172713015941727886607499015611415289321389106505340286554209550631550207843032443653139585077913545927773847503316294355218191589157939439522521999095065490697991211179245898079119783559306447768665266449354076949618091243935515032465861375451149610436645551617529527280147834744046247250036378565210460288796550819915046348374035648158693566328390547049210586835780821990331225656484912783080357701344048057534812199024925702628899980712488306286320691692317889470996455098571794038950975042941542944944085778004624127845407165342244018088144525024148793552115563591869153129302802116104277601282221533629225284334067991592581441294709709649077651677727551447213979049784967485130349855366200829149518927145440091771271438910852436329704443114642542203953242440722250412472641348201380288468025964017150312085539400984446683674857061953004803126655635155552158934969287297340725427434962101569217219762628592647206220922595548752670804390521000616881411886349236654332484940156924770329247805530409378374764072947058230266186493443316701545531730974478723214460300210510950538185666423040325705663679790987264004886853731805783639646701818184951701552212403342860064155365379041219219463328374766298509416102330263705197346644156409974178292508684509653372073646219315938427001963913752978773806053541330613442167771767624159678751110181742977111289589135529654995054327286601524264788466834842254403342265033596204187053480815160062702014947641160205588472638136892674499103370144757352243360858601127697386513972847292474433645904281695770359072988813692782930741080899551254044817528428828551536359562095732923940451522282606916180171830321462944774470367189047692002326996662732225328149835651825135759058027105126553876650728260980777703278758591089891865585361204444719535625527910782512615873389569696908639399737530737126747166710379794785362329569770599999736810825920200073765739723414440910692308037470512849950845717070024333776912144136444226083276177713856473938624889469428791516399397931628463312286765426427861160746700974897845508210320847841273337860157119851093577427930731194907519070597636380162674162537880376682197372212198504536073248605620101526798742631771696056338929788210720870150174174773347912917050136103359089541888865119386238458118786248686429636241233254254591874695357940246099130632473257245654253667852968869386777718869560230979486561160712822759060140254311680005635989681446950423073712982754550586405257978969410335969996816392510664121411326349271012097044309968496945748779686963054792363333365189235388736612817549631807606707903180171740810808518311257067498504106643340607716954225594365269743255552651986415426586748987775775783676378315353986164602315687950195031550247019011069374152490404756185402407728485401217203418581609090027817379650233393371076253246237428170056247840490855569744003546796512626874400276602309123180474936579069295353413435152126227883016512877700990035514827920892314289556945727095474903665380988863781229898036791590962990755862215349427827909544937145061987840912238633431341441495905110150707071997580399563944559689745503123220730724215081068553798101470137539069922333989425409870712316311834314230347464223687894917549192089461326216854577932679222656850125584192214446794184681135321118951771613266385524254000530214061290356881060103310169084635829898845198249755355508392595177848104454149200899915977345403145847969925022982348912419658479270180109432097954422340210735438639852038372252565674214994798874675292972095084528847597212167112350277914622985865932760639200908412382616389979510822418183618351757508472070418241172992713124218446579650110519147078468071171274488715983980270107144021416789942820138413194869733146008568989154456345207613394940239540364537973086584692781414932293228918626680603570694104539138501641386158081707385986916589160441833471896853712333132536456300240913313091577230186657456824505871464354031149764044350957478760145315988256215216489132974476569120564907618082617866417689972848369062719255916205937415138117709450579198708761968428346930502153780275027657147240492795092515630350897871534104118773619557500260443475066859092607048028097567870156121688424018356315373639388994337782517008209689427818942046324157008406461030987574089271882777770033993472069251510620516736003272886057558003855603319840207350418741049654621847757150487442630999822901369803763774695011922584828013360880040545210544793389536868439236581542465031080338022183600067926962085366501873264859752499472185734341569669441405073671535150976537275071286204026209858774216070242271961772617721145176623272218387324329541556073428849664671716068699752941123390532615709191878867384725285282469975398484404577107068185985905938749388012069260841428192327185191625270848812143716854192967981508819435711098468324783390649701839199166151123547252645812742191563022184945123796579095158049797324272226960033420933847256819689259095992107760494190554423351968588572940224645935510386186543636585966814033726061702093142653702096904976723037932130765268065395764316202714001412981837229093119659409338198798448337180748825900279545627830401003458944387636949740637645869350424721667106462064416449314864831181779647080621199698358916369601662672927484670429834209646172826590923457624682527608842228233644848239080281685351670769477664558298348526323875882341859003295095336038881223125809840741383592808429948771242594341154464660266748419700515937845476208602256420638140325609111041420641341136664347619573798440914521552808384599371938136785340101100058782137693135286197778868488862196951847605147265051798975801223562368959222870700846808395307086575309265314055466136035342972594411708764085648747595681591903081006230191446395055379993194265911589120957072513965711734741235527576007275293023919627767997343572392226305349749753429078461209853288927791386686705523366144786008413284585734799325326502555856371280569270083030912437844485371437230706546111745580752906494496081000193669007941240940689819755959767287630989599943472433118603354188945961955282608285247632671774939013173176561372875634055485512038877905040794483904210402836419930339072951134411748412642316977904441737134901923407423319297896040073734437853792456858646920752582947441577836366329561286810655343219690984434185613920356272513236001815721965150514900286423797900220634988403734758620302833714728062399402046819135599273442756770207692525305966601818434827343415353527251583699068243396506807430136049244712950391639717232991133154755645128697278150300260132980334782957608504639878434154056524467957924318708339688058978655610687501923260643432948624472762272124984420931582901693193516448661776743053358386688480078436362262651605657800042866816599251520388249347485258181259789736307777298880601705392449574331522938036317273723955633802075421185263237672601132492018081719802084508286420637526793649443082475477162139030394342252012103473770654831233066576901460288029018772282155831868859870937368131843382763607800622551685495209812122911471504034937830756187791309322910772214252904803698213240670198832126139796413414279975842992314977037304082210566540988903726258033621384340132471986028346937186842553697207332934739675422024161348076470975971115637575116872182307326284896922085911037109362135259626956084190374936357779346676226045037253830217362416199662427483072376061021052221798169007154781627554325907258161694368668630169036125544952011662244441235155909379868655130406743775155959003357086885033828987328532544000465424636749811514151312562307413924713040126291285045141563913157888062108229068182296041424212075547872425836090344662901864879493371576760710976130454194596832132600003485073570579322474588700191342504090688850282530919473843421137507476984604080307119267588785378913814662842483719267925929563441562493524346619132872565375433207940129113444753433545965283780927061467202594884525292351513391458082686825707528191346037665326590971668156992174802447860633525013839821642470499198066438745701689809240985450864702102612848113351488621918819897020466661936321525834806762409165308416579944452388207660052102264755590673573900451438929105589903408828772567926405926264802026535591332226463271369691000534169840030126951915195665299053575429743554656326385691728509379317321257310968170634317867492312390600684209440197174854828962294565062448597591280802444065317560763731723864889621883401641891461044068593964002304539956266173168122192670049167281564770028541710003131993627176129994373466233051414788927388559457979100134200389672178708649274629453559520342913190041790829619253293909856625760332577521831200131721098693198728458474614455534788162783711287124108621986963989708151160006140979568655314838242751946286497540637696040587571305294820075330709995704671323108158655596976713940009729982201392075952760514431619551513317413517537612458890043768389375262900085893802528829048019367877280722577148323727673528689212579401594946704469587571653008462858287969480562895022114411197774035370030272710182314587258614514104846619876366119616888548645399953364093874559048521786640643617603156053495313729557736741629712851121278651133867707706651867958818347916924904886561995405847782729206537534207156400779956211601678085349807767162777309765821497877555353526267831751609830398012785213858892913849958269846207866328712234888899681994063516845113851581957864267458254912482126296696647872392647935956326380171182117464474154124122253280445010800644650440064850896179978033675984721196865083587703077002922366604058898423705726022937513137333112192749082218890930363080996331224416344554168693118515916441236015159432190318151724252466564421527903822913081554904160313488036378150028757063998775211520042380371114945772104768194710759221316460397411939189758856968705980933564510193423318967656794213511764906977174747850311297691410747998213741656875300729612040888440968765782679202164729124042192918200898489887940918226297813104725499670052774043906693898419313059372545349808584043312454038979072525607431071676445181200128496603960072301480755390774683414396163406748154315111549893931952372475895430562319739667697519473705656377074907674042481058100187742551183642191125098206864528992895499256713728395015094096542103493422464507585266051214458055657939907645646416185941753107697030558022990818218976851756536252986434885145718696043690907262987798361584003532633252091460245512216507513187139811570970688702677148562716059964836341340095161457678138183260377205077460370742680455885256081766468249115371281955155865223826417023384464953249138013973361101423575907242226238635844965759204547257005827074932333054642693279893286584536705115149143288843712983251066016188524864952638688832735583026987431361524418270674642041570923733887982490438953780568712592646367824354457190013219321678007085760693590635415399462066512893185437507711079367969798712387326943581943147298883848008981783750652039260177538894844074897203341319063627918874404460135081950937926525532013569438793956305723832743095482938419033474256149639210139994183283746835604517954687511990715258020953822464456925262843549744016821886348939703530632354678445294997008989372096641003053154581046713823764871439908997058506651071243959215423792226066896987321734381878214831219288947410825668378389211965137235331893864700703249369022638213142226857208501424354601574921520446591260954232890974195178008975792994543176902212903614393015559954856655834124317686383267227559760142210481463790717592597340935932081112895611556787652951431914072947783485860930185738835430684204070553219094863136131484327624708151784183029696934504598387487590649993039871267062027360894528808409217572511151935458169615151379443426150638104545843051694076861530202541783376568794183501290504286388612514928523785143639820047089137392835068415900901413341764905177851933746305401187639997890083377873583484190431705093762208712216039694974028167602547208549074895490700933297285763771930470919347094997046207456114485965507461918906388940823119787647629497392957699220473791048496584846488224332154477450797647111676702883086596581982254208123945270123871572719414567146575126611099753969265781600800944887530779306481851016014245498567619009886449026944063519746893083292991080099634407576293645780298352689963976432320393778399459908601182646714473222696931165997228476263567655630662414454019458451505053786834953159047628417183686798796101387859598435958092972610906272364591158034715638530955372198984532950215951853136822736592430814133787222644793234927972619448838919870928582711376344787146803974653238081441492475474817259090087733418885075509849694688355119560392455375691180201135341433748584596549803338798739674686190550391192203836911118992691836070521834634762418465782836526667512164285139837226282220558862224601097350030651557358987298081089811492724320364676650777206542674563588956966865100755367686763041160826059892648121975900425719643794677148472157756757647013766129627423909438943850447631030394578003363913381855420992683141794091876183806393575681758815485750957630465305041468879325076674496823990803493782716720188088760606999460152608337230179475691951443948606311370701895766894502018148629382547032590273982585961388709695509854487673956462589100117538426543100495325251942226767941786052934561148520648488021145139283098873579236415950099950498417679769940263210887592042164244867064248857616086817797209402129010090755336938905600196932552231630643620258233193013939764873473825519483299987058378758179273523417907823776120354446524002032860091296813971973614622279181753455558985521258280571425707305365152085791108827077676923411876963097999103211710872886780062288211454974638506346017990598081777371712005305751277204926393092630052215312241476582399174625039479705369944222977705409538848245688026654081993304222267714910345096380859737120344539849211329832698128226796815732360834300284426995894120428926006288875271040685418267153048330746631583104650625980658402855236490541830991529205358285106462557066861173967644418440580642592581515012331804079434598523413557715493272068441654257149798460317857603603878392351896213302524866092644167761777778285870482571834708004251435957373384585621201610678697221361428185462081586726399401585680861182165936133064811579022120635055178077133730113799916840037862923555349387735058092293353085332479319975409158752497908207827394057547139823388374227382720593096145444445157583529277709196822986580055407311712769437192776941330666140214193403593233821562646244050541028319842619689392380059204557730606229757224236151310052767150213219061576614869175901514626707074928589210725966959350206426410935886527701460806247548328451163336477205260025514964201075695546920816107540686088190806929631155755331250401987506202210781552604361022233328166288367283511095495107445535404748190689554087197878654179531300910588901225703958738989838800641736308673689122711274513285487518712874560116604558115256469443614390200758238025360886512132198209446821147525252049381695772018165517531860317162983220843074637038356539251909737627922273633249638263258039924065983397203752295064017653563132209167462729976621357286111369257241346118995277458963408173414606970205429997578659469870857368686248767763228702819630330202213402856096573144386736185045147346605527019877565919362959142003377716148837419261870596249742413168824610951441366928757814055610510618354454564911377951267585508974322902644756503077236509969168309637453810357020162030194583109510262107960671762968184437109832963424988272448939772228029577788605349067808141107316147750357019613701580208584752338751254022078367162318528622517394149120813615375825304365850210595313378010192846507426593852300901870794425618071069978903899125098737863723455495091730655900174114467495084571084748110178723106605716748432254745608490266817651958837319600173321810175243194215516125914975339194192678515009486213507411626399718493229593749481947387938200512088981407658971259477833590383213579638387629210030755272406088874546873412341339486995840041028565892461762003564108684241630533236473681768043289303203997696468658361884693782284783103117699344230598919055818918079457949236645506635871559692720757040686988047136670208091458860624486590173212984335128854503711953986107222406712835884503689010811485449732040247985914394845930553620925137314410422026432464763635041463985512144757966902856585646501414280301250421645883336995731993187969177581855657356469269578133070891295658525105934288369415421744536279854804016595812859521426885753714072677447945188530528655211307737062128606391790541806482937014699061391719982441055728445264564545955987132980638560168334299674863708197485872814202135189990945688678912673773812740777390554036856179336790945716090587249366131023519816230244014909550637748093765931906692449498736239996813646638966002580591613578426452951884499959311927701843556261239348666314549330829092228087759559512034415071972728013813570876707932804577438888362303556284238976746203239026054378065052751964973510713219648495909063167914039823142366607743305182633333624650445803801442507081779321915615402515222882755924640901193955453457448107201042806469708169904119896793932321966868193074576341847938633022413510753288124145583599633910785220056249415902212057879618620384708841184536883867802659797113707779802462635045504873290518463106395259801447844696877927223154712709140034331512207291417927303773007683821903470641966928280457610196735640831062876430784297882610496720602802378535878024119940287688717901874481687393036437011568397803578078962870838273770738010852820952339084720450496491169051926913487670827253747978938066638880999001839091791233866637364161039428472758143299920075043839165188084452008616398620594488500343732108590305643231222751029039144035692036875013297735200498961646658458495453642830794138860090308790453065059701512934334882235231828202669509467792203487936162217774711996564776238789247321942157857422591251454630345982590696981452314331181405348663241999023998710428468593946535546091960378318936748632245192029981227744294097113475417253226463846560773701232818247802143139486057908562768738546060624238067436783125396864821716784990935410454485247286465022899489919567330551127992587575731552167130703735044274212542498353317338423658446044941816719984679725172485871267813043074620563427053625029992615741874408337821197984972920407986527897769807487137004113610635220095273204881757836704117359960405647670742066106658010426533085591306250463210573176165769350060651853493050325957522381048376152323116384276219668338231870375567568636559208784130316332269652701249124013589027394686419351091538781420236434450283052758030245243337653538436709656633345986921584156861450302904323760016030033451293351668253976080020542132026770265506713628756842646716318196450186640210113895792390363017050448370770147810375576422916371151987407018436220694071235480000851026070058027702263677225073935043326502395384012489497845340225637310674529405440527201366986667414333246857037183781904890690833024507811429403658719051097010753351394626119340324985548789516720715696787465415163646349296932300967621242801044987164898529569785132760518472912858156678576586146970692205751966627665177334273885456135457552416924650958348914774322535685999014771466531828327642537770084291555257884247525075480784224707130252612574328760797519042839398004291060099829710953618526417683542861436626237579904614052740710379328122253699452732067396542747157871185513569704691732309339475140581078729540314952464823548854607468320374737685536028181324109416803055992529282465819558415405888754309224532177993201982463651526534646029016728111246761335566129362517108165066259415242411979990172364497189922541464926665138582671036223002664510571074480485324137218295273798642492891582597459098458028226121308633589985112536094334410748639800562450711349195187373350233852753917801095172357211031544029424643083315903825187159949965691034462851258160970566513541301438735733538370025139894744793244946978038427606549947493209492545509876589203323887743265435001034688156198179051261563441365756422175257747748068561592276182872027011042617508493410898777010111259910157658361604985975633514211964468122807442833788256470569205354190610904897652414517730318677701823648115300016791547138800461465209895287545240237583381128890315438915624120259333769134069174466560971210297787972087720372727145720706875243613911228775066642703676474243986752228742853196093034622945373228195546226964710041218807502906214077505932465429826745357273675306101616485144767507873991454772967620717633592419492610936539561077424728620203592161793017391665063609691298972640636907570998989072556355296168820771020604106250554140603717646579100592826595324159841172210987520339197258821538077992526957325706374462619578535189565460779468960675059927292240969925268446547549447610119997634725241318289037481595336910126445025556299457369882465787089381321472998416171083375220172853933290126057509976111311487197855217144765183118426507941515386991321165990952418159249973988564639094723832999475142702777260261317332762838659862152424992099976931998101494995341460882493275383862831298965745139622844133614085384853603808868606979114431457982452842064920999308639810631343313393360304337363542867128668404381137999053345702954268683645117733027784088651408073445881232429479150556984883623107620069209383921466679982798178208315023901970097051396722495196650421892195414620920166429965395292322792955604410190006357739382772911563121546593964103610996052288497598779772547320884412318433101065406041171005997804543099644338347410765391057532703915338723732433824899975335192095366287826798807702143787068288765303109218414106386498948253853101629189101437684582786602292986140957563936230125686255216841018408486466117636374470973502959269001788312217883473692870218533738973591986999074090498336000572923785052911751880038056461806701658703619783424556017158733151794202472872690592029599746303641724982644368796757797477071710506442000911608214643714195551422260613612489411135183531340326138563903671282970083844572275802322552513143656416792550561948405247964453411827393629369742597287885423934113332786617244088699156080405493799820525905558766293022556226798031868989277322311693299972901955252840735552710648162637736172059527895842563348855830744707483345800178671041171049852807747891970372235653082991337742275011621935452961970597298260465115845967618705448548276272598639389537559283286705890902468362937805956184052305547126568216501005310548066126771051158314080193213275797229575847782577555567581452593515482469052453026822070629175356462926276599091610912395548509463142171216341407853117669943765478163504948645254712790977177818061581944866920551137510989631850610159518328064113783181961843063893186021544457824945504271496894942281981238227657605897150270048132730367261962928563069405915625753083394003481720384756012455924885811800488123086800785387170262303274653074318273555473609218145931752567508129033257923111272383763916531197140665900320710961298461779036018411696530036105462342006516956488358058365885340500417273947927265030684261195200876489272487711621900697949951809298849315320390784336867456972590598767488678371717505479381101911928535709655843186032305623964192284909316646345113743166896683450793232850496069472582996371845029535765779300282706580055557333917624877745287274237731990778747733510385721867939896573607205855113168233467821350227880605230644613102669950813392725088787681923151768480032827553713122053784805491206961615018523474927259233076736602250773056134771948496892761432677724553360085767234335053510258902131803481174748227568750106831463202304060382834207282116106453138489244682966302188118546715515401791205212710384973423058700818545309322019637906145227044750856784395929529899027017746032899266173223900212300381003235300400211254175171268852152285708535617987790855257052330924601086385414477854726583322977658577109819732765046671573422284123097439173641451348774513997462529239246213719939842027772816221146125334829051233881982503216817711276286339747541462305500121606448028907448046526783621886381124011951646409747140532906078747204173256392121322066191547915232279845983425219810648039425512136387395840638265578343490580094831730347096910656016660492554356734892665010584108471171469702185058362377948476960662800681863344688882448584507080370633368752122322085115692176384644002169184886481272085858550817970494547641040755560582112282339414262982151723062686011623794119396200474389665620851557525001014301193437078042540555583071699549537624527464705889805290953976955201170041138467796196267024619438916056148042721350098495041825480910017466316874109597301035272056033989783815601369476870913667114266830373849783771359156305404868103951511839141475617563853986560210773926588875329659901929063297216638858174340019388734937573052884178425792258632914620909897914680891676264843644547792924152228755510284837796720900536153772967111049220380769285245282357427807322459955222779728448966370820032796792832591142917645310350066072464070006912326381310795661382651499426070698894935637093873301578340478644716490206407407736549364635881627972814753702577992374300324582580256941163037812998445363550220804246363475444913666834763015247658314590420936380130463849752852291348168265280371208814785866424704681166491596042534932100993466160755244157640699496343254774131522018215728457909117770781062063809632350856645874209948904390624653425497643853847059661006310713381781542201593315670230244828335538215175287456090083560386151241669572723360421488934243972826894100151990734018146743633565622378767126766560222971413479543395539840530772377552650663608811421817033333200305909090102358713504923976823771661396912965114044415110925708535275513310410829203144594454017688826672067428582427552278880847043488937095153670669919750429935188542785770223770466723003648867029554697588831139699912828144605233688581013638132088734361747588990065399006817002957810203592218957768006821916579563794568724930610169566623091166540627696926041383155166444394512050825066146882448408344924395799398749812388867933306416342154846240127045269562187087994312602480014011611523570092842594448216127687542693538479351297506926965233432500343016292373122861081709310741291955475195677655503940564383555308907508505109741821439113245302364177527007381231174857101560124618362031080874872535062756122173101326582974726527462683551881387469452938701431511149737580910977453358478944196140804163037182458579010536381073957376409501723060231596869132451948313516032184697816788714126600560646601039588259956341624595303730206480651007220715523146004016117875932846063244431450852612709935824538696666221993890036822605521451117675419749704500967901632218115426452580451653410035758395088896156531151021091794262200274017995832119193351635363983301758825760825371151053607346574569008878362975109070397235621934195849275164179659137870983628604986579331420196997388369737029601346450386584877330309651402843941078793018050605403799984484586716806304985891114492577643926404561831203958305998691852027030166661550291763745415831488987344541843784251535294102684722529908914548730073256543473776787573352278979943217241562432160464749202914680012947698975683558358591066670784585012777508562445236929018747714854660700590797854604892549464734731678541785739506259101836153685806774204418086940508420217019967591750077784612178745108239056312321511131696661397225972498493174624308087583755229151566292377216054370622600219435384088808314262122149096771287271487120827252449842440645799149929000246370634748240826932901574297078201720489484927631554308437652593357154283681306187000386662279752950619623603264264581375257193560032957054945041570634713711721287968453106207957144795178092090778753273499905886426417156839856826089779031464558673499479060368297990089952956203372810803626697606347254868330971673488534496763990043043838422766150775221604007166288790952964901584171170655309567942627434736524694008521395137703890355174976280178065523893638924404502460276510129875753938463823503086872906319069964411684507981758461272007455036260416543482926484931488147215918385547825388170724308530314892365361896699210660604581316828366377072107695288667634397355844931986992070816388214686881356761886114733331905572818409613495684068520885112869070169078747202837701561714795530543448218743240139484151217607700987037588545760109815645335455229863522753244233443842786328623490880817792448509636293760379444173206992885722648249792411247934104277007093358718184977938481800598359323203509376889606824614459798760379123740817436726861538149976804153138459545767937799707535670535712115845104726220237078597672594863875714752106732776072312806647430345780494660873149274376589423532899801781491100954297248053363690321862826084259056972904656197078009950549682869789127908499381233528660517834028623583766174502937669183140552531827777037293428483829772875003419546148683119571938576924618054378728055659499431404995140603834133583044651969887879793138305332774877550607173904284161027405863161696297950939407830618389062242511464802292522798509609462692045342257588207381575643285111232565243780355116185335846617420925424305584653942274015717821059723649341480089919111457346838745208296380821297027075286163572523722083136844706496474476748813928957873251911544113324823372146763936192512989929920318771874297332761462090902081794512251069471956709572783688174513061605280510043554649415361386909204372687141731327641132119040003971844972252631326514187224110463816027390618912359195776345189114228057693979616208175497166414120100625171189249303705019421789515468252228134906814730288166265414565506101788462367828286663509054519548972392324081934695624441988249988986376712810918977213533392288824721388309113944938397572261833299303040709826495939524655567184081160559999570673689145235017702816824219114743389927231518539583761651857073905011893392428059529298116089247348524840458532422801009297820872740262183188860484709754327344596068252099804219541715816121257279316718534627438365668838919707854559487966575259379020438496915918178292336035203367373103255037957834933339324208525032646280735178527389745264663545552923843186394755781435772967586861684581881696074813612716848099494338140665470369893128586142502832461944206748599433694252090533371092859106400703654998425652080059785465369469146024506526682748417031386238133144304050889985093272775438451625021507191808087324340212504041673568239609477588865617487963904893887805404444334537045942905943683173176654262078265541281955759562776292612442740418497587855113663704569073098640859845310045239971636034779705742925704672865848263666997604305282535047077316944927848417103675201232526188756275493773881290235157516737557580687013880150577018914788839985023905538267709618089384464054156896297702997772621180815522341486999665659330416470214753443945893992272829336919517089225038030991942936053549911366739065674632735420580219947110736778632698280856379923659489913114004208034837253717655759635250448058407177533770744984176170760759049732328873994576429044051813408212715259319274673819123943321629517548210326686221080897167009743746276403529639842628057447163478698772978115261257497258537566894306167905601312917425703031605745343782828926102219109352757316016850082202548702326295694569078220011481764864271612327724273290755282502566123922960010646089270836822629368808829363223663326376223390894744065066865540983369449715614764500033075874450910145690004302012969096291370836465834164236771753015335556027364863750918706108812147359701119836478197996214806956275494928352529875890355918161691818127368966908114420956676250668245265441446243522499298586706189991152245271846474020315139731356168268541123707661766652977232723988126040985662742812088276946106957608873690347587178152533574567468335730289818072943661147931344631624598117163801059007674158676746339549215762840331518599054654635388344437868583329210462456826190778369647954010627077712544279345790070928928077429474832946702385485168618413603613745151320715742083452774433696727082919174351097422742222499266050099948157747956393184662790603992870319629946641873152220619374314210631785860420626276489866397668830025451416025619260864362563607461225002979970679610400665708409545291734009000937096056986331022428558033002725202738634364784047943377862420644187888729272838858701823421118441608629465950474394580613717100685498390564645033992438426284491044339285298151549627996000366381204964818952725083966415533419735249437956098646179721977593237840924947979350600014877525724610762383854488038841918528191200396737050469736994313816367798944106046064115656291923510563553595849987528179670976577431033590229610302159995618738505960523906506330026677324383473256728620781042985291918245764898161111132283093323246907987084559757922169932571444553901231982498274462282161967658278448923688122117821493748367910513889441448520274549500587772540070176213003773544218858496530540314721271934982225919557787469731307504551968876903266039974382170358046978715290885579338960067820413118186810669626624771169475613523348908924043209724707034434571717394433565800878354137575199313911744280566249787599067741818076449608219169657001714594159120387043712832813576208741372150661648413480756194821822724711542443456389402704584344236757003866313506130452297503545438971088348803995902090878504705330407955682583046505670561640978219330909698785226063386383916480436154282861358461431954941533010257918494220963705854200058979908239108690029958274224848807622483049551924283033942207042221525694903241627630606935076154048550322141680181301502325665378679120307393361451933868282434511722060303154553977364028986298069267984217890200863888765279943151702013338689689076228550744301069966716892058751180970677124802643477308600466205914926507094863247337316673402567596957423938891048862043916558813837162686476425196697973628911109559780336255354268887811996177008839909067051762699395572281411613094151837115243301902614513842526345982821236645602595841591855074933251129586184037686669600579305895704958765699595029631404548850244931045021841427414595882830303584779667353022404811357898160266255838939155443845469123401217820018538629243158048670022277280451975905346930263243805360302010077631979259466337345721409053746796833635505483732931169168000004395268696236939220028957762589812699976595369224536935460073921496312288141117697620528935411722922580159469656586875983527443129586062132277785588289104682916604542164542811375461695536185183303873317546404214939168429759931377555583140658708614287409380514343830498764567677699351717745879673097813670030551597095008606549208738888669147611476325845539652218619776312201666782708737731451163666915733997730920273821362976510302697139562979333637793862754572939277765562293695075296866523080430192619246638551622669956735577393095949448946854407903212618231268246009019052720206669329494928589403992717215617382210437714921387135081736562332898652250310213956140582720470509742209334076153459241757252905676786012682221815919543188821686416667508967092929822102033564273223248586064165988774739491491976636269842338499425028924509411271350962827850867065278324876532170400205166163451728122865517302247825998667060582083049327930281935621349649722705346847871051254358231114028220629306425782939548735266574375149800102093649394460425282141761336905940180832101941915291773928758840113939349997626130272382856812004204300750999855354349729527907712661478124045359029445118712582869363313711725313799675773729158215389688658716163939868712921754953012771459004233926705627703143422270268209413166710409823407093714092624929013588550775078245088461126346606116236547241721290338642463148489110170804713619940430334686604961162990340840336050064959826815639779428058767165796269412009499062493660722899399283314615631907964889728882556198790858756300285127692382937861413187065882050714396555251508079056083651052945152405056085931916702439479185528760089120496385009103046267008251282358829048188205100291750033345832672716356851657714699833666165418743268503066579564302740863199070906125473435198279252172350550992029428505424643783870465781474170012687650731465956973833973194311887109009863800984825975120912374488626468357149510002760296012933922051115489835143000735581094207677494005765398657778241604918026150783875220978852592596516745654509455185101580996348101712153275906187638151528861707935315786940480042578862168540136632705248220581710632759976076086623708901585666250586939408912811841568548254664081502723485886863577539646136907597253226613810494197569982275433731499849119450149239227983829457798960125495023865204072886254923747065390402677605025031845684919735730752710780531585224578292188215808021481994446689551817954366588466130123911237025335456850506475148465846449401399823026123866536142069802320801726839423726760279224588473390232675750008516691422056915149282762777607441923221727698712279374864452343016204524526547724585030976411249270099163569280166108681343113434026238693180859932915593547799600448063900168650765006286909239951373759079739242033290147371851068642362835235976688518197057985532198937864998373059027581759263425833213531166237125417728051299592305399980337710123338028140818168258308946192916051172753389620624395172529289752959175792844850272263439803788655312805929475092193404288384495369365510158496128684097562056645768682113516364411117700411301504897632782516845295886156725879348968997591696956174971684773756112074201192485272023371145621848985395035969370991424304808390119437724051833680244428172789749960375285812345861345003655426149930531525351198569856368032177645338905366957264631195858671806600396143223892989701678993256828933799111333118893717696980505638566859881693272877630503792754430096142593411712090020656972248968488924547443653812207549326862101543695338775261005663186273875833739486583354105337925099674643617384712316240208002273679238135276079404395310061006446311585041800224188387675457812759239954190420340794080529197330045929364612326878678175979459355972260090757704648646728448952222553044230694070525743610954023999080533909984910391722629313037933852497393347817607918008993621740934377694975036894830889686482343306811963740309506648609484070372761352124544165569742099194587308660827728029038700183552612423161065914935497712102733039046298582983071819504754137187572074604922409434749907081194454115991546204825432316854442861319197007226994186106145775340483909080475726851734320699269160323946121689975931946848524510270000581499775995430154297877525985323400175924148624405608248512805900919069199547700262184888419308646819919299556148311405688675715275556060355454621970377902226127115970338576186033548442249762589925907901426498243198841228296434575748957723058330577363457958671944527190233165544411662694176927996704688376146845293326068661186651620688832227299979233390904745316846188103797645392021331928719530570683252650298879806062299623079326541002610428939528618955690716207842812697706590048465469187059298491825543109678296424644000664888188784702832094589812915490219976087143148418358277797139026656598308077715616995884148302483608032868238229416279830607873027488672972178621237393704356146914603108171757899545928924021991462803885417582282238504049033996111635335363257300898854687065690316557893505595308278576284146813804537730173281849591161652483277390024289400347446099607623032528118355422116030814750712059274613771026249815764134158695501219520245007827919562805381022475206501719562478391045288478837056667811017050891519348682029752148717365282189440484202023609644612254327113803935081360686816676913136904200128290849769233259803275500512138515063680921096344569244664935539081254647061141735458548122799620130207207900022370917546123964763447388232818820108218989626660864549914076846506716037091855672330557268090313727225472592060789707969748245827825555239545635178752526520055032908749112333984715000025605914203216523119950025279478799683017401873624034836565962404233534707951629460763645177217743248830478260469006145631578768511496391695791778262479896472681137677743363920808966447223715571771487362652320630537080509176518458555402684745278772692236183182095868373199316456646391429505752402696511868194131324888023375804722799717948271926471999370988461372815135269986856740818895895035357043496110978571161458454316083353078697508190343869472979280326449437343101163093999182052208502665931960033630835204244711677726479927992527359666728907062147999395074214136684929758112901637587806773691117614713312348799059035435201514247572011263461556896669906359834776414272093117851038171318158663261157584878155932926921658671221311720148140818576367649794584543486916978647403937749829623922814074016029206609197862927836210754897453375234906215495984468480265436348907483675607826919281622102785098453679878400175313236290411297335910299228224157088041668807363801085898466043281114313474718752842485026098680813758309327228244241043993951358926053473806538344233853902955031081998714500206130282669977717071017324539371486157701401124361313749351729181627730901341600253946494915010829368765767317838449799961978453531867587783871052665526563757945553338006173441777033467787206509942614396465200746411956698674010154831774401189092100900332010106682460072720834648352451133592494901448086100894544372966594686884572979929714558067167390296291561960321722597817547403670510120726727660064588627323136451381763691116923945504260935028720928397971929498050434319301456959160708454521161374226266857477849785426829958737407122319598952207457570595688368754747274583301408008740884266639043699862142571044502670277841476698758515638427738671496783290113296294408423823152632585823028493317076009994749340901612845993463696397495154214918640600512345270889375466831707751154538686343484093222398779669154865698628773360743319145733085663069694525450960446848164596436247153656344521735546788269029730597395479204596189636978906237427123119147344386449580434657110017431370046932953147074047918335559939031672127318391261909925430591215094932961713703822614704308447023301095009371135191497665178305828707687326358566375030869391375193652627089527828302060924950893711152706217934877542914954059701873216910781281509452597455656450145262633225265201201175882159441018367397576406400469359734343753077479477184708947937541747701974792168514936838146730017509591449167585665128381506072874769373294741270328706637892494912348012303042737802651108374026919188820520037537960315614534325139128125965300881441104253819699265886863443679740213260377116616859366066981641202033747600849745901472387640515694007925419558703093799710470366440130115328536314718464170194017879856729339533553499869784231462996459478780739931395504719262108232726988021555800253442093417388050501776312234569965422228711126001411392878018777529912145003480155192153052215883084178844628547444166138174024039725269527191575486947216276253527434886388192470809375682787085386128716747976708008448335492825829383519578295731066221127591487240448260969525950981149201427382180496397003684555560572640509563238782804947278405262920218864925054242336819420689710926330593889100775006580467529423675055761020821912149955520770827234063527906251005674232267449362097047493523173663486118655661267533317507792696735426320421652363035373985144456055326815021503479950830488209941100869680928448807218121122021652355243383083773679046328010998579881396706706940740889573606793533908264534274641826529445209861965667803331463099514635140576631489895639627064606100742442951256327204617303697224921451585073909565610331442057922825351080904701764019648735875978595430240100891343225407954864788605910497841225693558336315755213400261125180962658713865086773338928731376895907096034504843268245721025630923725218875824413832392546408809188912831278170437561161960097970577721565817300764622745403669033244662633874959676264736482959892271215629501006771498878768977767618789167026225782624165606489025703495595609100679216723388544385630118383439303324039524391925290237164795678654147288490631814410267048874672250356876710201819264133921174567742069454208232127928586536141368180793095061140131664466331587733762155438124397055562946653510362579592640536977349100217118025902749205208155146895603513397960183170658482184736461789650982138037463179850581689065400284762471662860805164405160903823487371196612012786194817387647414781453894085551143598064727880776464018801913144431646158352451236203724730186961430624475035260285805931870254341713890592089075247204294142376713933824910593668683814491267254927826791330866733494245255585661752669845784023652563885787961250506155585468866359887858199714402054972167155883289980657034798644923232271367222541070440510300187999058213594464958099222013877829047690673850617619269339877257772869169051655931397318164095182612829075415210796079522754317234285507395136625751121887841069419264812666623465662789955272714129220734874528133678994420843948201465320656237554131438078821047718339053602965706424852221971754984364865967581050835354935786170880147298907378945392631871028473847324701380642818087520652725226646414652469514450486145575430381587289423073751091952634554951286126123766600891875779774975189160652169515520374525081924571237040342217724171333988693356730995188357453459707993109185496845094909264523843133253294178272692065270740366662112251669727152244831849246374484665516215395969891844189512319419011157131124458376394477741020477761127870832224642923547342005596472593311257813259359281382117592379121379631587853795832137644938081400757773250944788010805407237976016576869927464222731029859920773712348769142101672544044238320531380087510293086059805258909774890867112488593849457809073315691590187971087024598074034102815623874059784632787839526137877932871255522873417678390523179967185127447202812945333449162063983865234461066631126348027766462849188648459734511830663562441652296565302308882641234629742052378981656154942385746372817814687071888195291616670568134473063589853331459255586826238515605592172137505512809318958587033697167087740520336069910932741710689037531149886050362553417274133085156402557177247957676172594540090729373910155808406410310110245540130762858405283158258011437261082890775152006795427915243116352947513032144637242289216099253729717122514134616129969760475713298896296702265046984724117604327411026002486857170901220445936547613689236068607923199214651192107480492144938203739943151759703086784461843901711465486307334978500607713540092202731948902692830129767197757550417020579785439694964425502333393014967427952694314600927734019151995285532510030683642746626137794136095482863736167461919201425440172287635361570347121191046499981517817506591308329177637882006419524301547754564245364483045270379704440764858988860987749151556933621055738851412671534124083459415506720856511783070284641219265799799236970491239898727341981545217393788335025408325585928628685278467141118960578139833631820647043224009766820677206204357440736621711317044992971908949559598688878627179750673017064363694855794104251446643721821390397151418964860208664751935827820439006805399380298704211860510303316118072736231268225839417508080005327191518570637894673110387276588412001367316410463049509698593789374759324000445110541355150460604653554884989558427561325760496853544307568034992367918179190448718108725426961990832714811130723892733874665150875540035183039153879328145503186987600285196129664519783308849988083779850165282991641595689308551378083862187806806434142799113327841521278692875168179347333290463495574269349378279576730709445832122376802245046485345352632122099533810231466130629575103774834472098158168652757132568787797590117398173678935419537987145782874105609477790648608996963659213353774944698244601012894407403287059148385405818213128954538530678369359400346428083449798778301167210392106317521268515502613734093456648012664127279151735627142385535368731052928187394394163387059123000564159391413646322014160036894925294832988507793691807072896507757613448195287506629500724781903920256764996286605155341488180409987941621434125319277214415708748925201875382174426583436701674849068508095023664385099660018256887464244927229262788740368776925319078382207071595142200830907001020390146241844183638614234771181501956218613990412453694643768409654893761217316473923200863329765906118320073553803748219590727182734330049983683179107218783508001908718598443345494136080169356472734432574155145332813296041771338479383636155227580884487700443116861366934154546902545016059675126454638329731243775372929295750875361785231556315522488989556001948524319260148270075511385649123171713046145908489967672704556478201479122688994954213991316918642875289283388533300206502544179738212967489790611192322732548993461834262588026726306916998424818011501321421491304592170694348584537174231938689600830392505837633883724489910238733763140757799654953956295131111785863494808159975810795419027762707133571194231136903852847407044120206413862413120002798124088072036063266367236449194476095676938082569947972191115839189280426237022194238341288509068440832838075029413601604571452771051639982704053975871817677120699289343111044166581700201786989276465925135712344450112918886713164173168632230153958665319430420324092552841099449481191234817046751566743185356790939520135491921267194710148960175863847545044877696792242938576957468696045780045518519051025256335925155324467932651822548528964612756961191898023889837274861383844789389703706629911695332620160230891461876708110131942631437259501395927113992698444910711707071089083029134405226430584433455513665121360527356018127967794505343077679300206960533598793751752076045121982715846716367295426699236384029434972852618622740281688572875867185604125098629629583536954299749174917140159423492868652375233534676605676379218966210105188387388930771220625007959898917835343613829779398290487360163300789671892801653583045040082709275806015481269034467969851210860523363236087196900074301761764724853911925493927495845755956003481518414455321889472032842791783922400703538939331685605575252745869675306563965699163369141488374411116208089524330393925360107589058025816123604482142209789022150382424618635241365860964591004206538377906275047272132132849219360558867265820447310827464899308928072531720613920926510004641889568159266873721903925893725034456903631587296386678242131073552831826696353871688741152550087724451008197572765675897233942824259041086188269772416560435330595389657776592969234030033103593503517039293201415190219319745995152290795867159367747239017082562743444820658331058532304604728687021832801847949842337701871624759222329296465827594605349995336771478133551139212475853572278934176753556256758958646744367395672121297538572385914864239328190673202612545464655311053591928302347548094876564821950825055888348421044653422905522323430737404455913683891872498871819758907075589670146182357347461833096246780551948929915438512048888975085847163275557463180664961770496619342451218974375792072829512077606890721390072652384128823202616718505389673568612676229193271864635535122776506452985703332741073524865435179594464272863041301921720349598213243513363979587453287389303442012920508174054768726440584673837853418370168703836949754744249941499331855557617839829535271906444600488101456774429203286853469108999635997459824363789983684130046289191970143130107490750201807757668107444937888885491939591560413782878632245874399742741457303334182539758853050070152354678369850630308939079869802282041185094363026288438429201757677787486566685391846133784553764494593723658403100097014297285810485136800117875988178604251072867573907560963616964684415659272705760348382433420262830532804238306384093009229591957715208248608530837329325784956242496426745596641605154670172778204433610518064382705273091196583349900657044263707528023615714592202675264792172445320556788440541513032275115820728933735711638543057364774406481153293593588952960082388078762155261326339220151764905858283302827931913968420478068612620943531826918827684090537135089356909881149552710369938011114499228865201361555999370203201622663835666601198509885596945218882737234302521828918558237397573897348323071671915814710956027795460935634138831065595340931991278873512079964488432020103938226437396789255628505325479320345347550820268755592179710208716538245245111863785149313967911440749338921713432606615150910521364746401465704566735986695052900961270346858292503461072698217980582868127348582445015078899230424091678446891200085372530548333590876145639772248060130020985045601134497671436636340919814639530678298696331818826765805624272319194252119262215471885767308347962613961953894351553914356184417939473076988305982334800129821888168772396138495722497164107467012104982797725600092565466859600903511128138851914592588714956290428334359101746167836533931630324695284620044535793076963517745781971384566026664937417426265903377957558080647956520833419984376799053947445349152589377090626309100529412620501862313230657920659861311462885647397036187350354633756601321505185968762531271145466476082318224323790702621183445111731894547445661160750612597640253333038259505871885866462376449735566546108618827366861665112095542971351578723496748480058291270938153058708941497095763147727368930106609001794061446685736092397988753394971463347316051333810167749713518541084998709014960863184543530181489336012902767004634963875844011765202219967723840518055985088858998653954319687480247210496707704277400075760812520293806809600716982611774749470947889023163011397447775430609261668415497996437043433491577681147443246229630634602604253433132813010213208229072914263539941974970485742494107568350415488346244679923637288132358667890959701844466757541525534052379041888841027799282650098829457003128111675950365933610641345301805237183634401579660858299840808354403922543529643466331909318943748473728508826243196888366990542216023512428074057458441480304505184806870887907114969514434664969086219434195479330231901865469518486107169514155717003800457564866518879962454489904765703003161443446350672486615254667849028780556604824323554843028824308309787161677337358565103707188214539078321680626460439657811771111196791727141251248822087874781118404770614182687200116220577859504475235285060240036157482162379041026265021005992995460813800181661317665261120773476514863322560168623849722691399675922483517981130075969270963609091499825945941137073902606505231817583137876947785085232041657092923857644470270332556180445247837217116306321773157357926103885961873764167155912616349581321276697720640579295049256702817077475788291771351190566211021002968998005595519729698538337080374972011033650234261220791936435817885101875325563088054492929955787401771076982082455714193969292962516490166567061347977117118232136441770329044558163310961643735959356723009237151797623902856850748321676281337611944278219152816904971724558109329182758627127019319073447018443110955282874267601974177019363246389866750385333230709071936909596917708711086246118722259672277900973467870899636185638030564375107228004598150311787479119624399144223842596739672636045477577291780361097646034164483903522237902244906008403558850401012033142350532731793803298982876171689400235563873682001867386689275326239865366206838506312905665608902843422032114026448506269269750618646687011238586727168549654988660882540914188975179137627931326641960290448029581959002963023761840016582046239131307223758291011328128570755075121649730547463155901614612314924356849559648239877669460236587709036330768835382246446868049281412860218875060491472573988896616068020966473659933911391382702550454948760001942984375173744999819893679317993373951861995494461336276076320910213734472857737205047814862376031601794692863587868377793368453126571384874886409032653764539692311275981688334779094105815642464124583305114541134332707259027818333107207195141779744399193762822976904854897166285601881472406112306002794621161831830185064041041980556034560287013337079603908458789793881582349577199948769424178643966369799939369523770639499875681978497667467451394189702049155736039398521990282879184768554227782008554887148198179289827664173040068397634356503181849544609953491336774961939192398471579413242557311125037629366436685645436666247945447983390279301142128514632450898974808035238470548267926790792284852475240711175741801560264169241490068046560830207400198282657365155057969796230519419177962571962387034113208509706497492303785066416170409820976164288862996243801503430171695630630727135926633667042037385225182903051566437964110809436592413104952037850012256889626864687336501666181284040104585713956605916924954420335593828783296928361018690218632423231356886573987980316189798985986058145935082453853387189803098794172812540043145174514495028060048489962143367777963508102991884896182262819767364452527227366779689171510245277719396892904983504461006925488293759343090186653288450983315218918324873273576192577244547442226521274081868264924124367772924512756771210359170534576650020165234911952134794618604689291678941551519964059135291288711223287754180845556132984396479287578446865917488437469516555661959934939800033660201738410272082201002749701240088468473220628653772209895173687121143260100350875189782068760930311870321541431110506029475321016493314616804793925575497568690310184676574807146910066564564063312996443091416856629851792172521767713179665761259151189512021520395464847659392816588548412690504391117332689102282839710843162935289251630298964422754406281006962904023727840927914666134937747249395068248028237742842033011485976432462198267169828304317394802178250102263074881737934042798998258857870551225263098007198162670982810553186791284811028127921177137444322397339215326096683291488562060486814283528198861495936691286642937510748249177947488576340037552550617427891928990663625747542750085313236225258786981321336658799739028302697546471142276305015030768033800165711533505243222092914962398961866548148278273868803912227760853123288306909007420752749706772014870962960867244445947858840743284360106303997279575701134569287361505007321850379401013343179139299270244157916098642895640924988766166791137731622456758165020541214761761120277642671098293932181142564678006837527540083916663111783539627300185033194414811707207928473014392694324840600114422009417925726448743443902726815514658959628997766003315902979673031855042688116122566167503975512646634014198940051070054609085104197638715294269002943670161291408836908887394058343797640842641417917743156045828784677312657091403271288331513477541580088248207504461945931117961864179871228900558101457610250074200384878839851787610741523206791187436200640649214358628864271733406879397129019017773145205986468601351089104494048263164348665063149113552266508329865852258590176430891098346420853042520879177824056424218153041265431189313232052684325902662127429161264278360566037338754931425905777817953968576774647981912685657351178333969842534912984396424146183533252343724219331111347160995879709602088728447184353767315894402087793495716819309464559589983583491500549260808803067125424731375993212377491034869482536272855641650622070996546008773665492800803744395820116530420197563537041154176142688509537942425053678255047264053993542179276668642821745040080387025523611069950498840441453817337016980455935775808666848494492447317308236819289371347751923692122529842953804756592433495471383724473899297967541158904338117210457724079411286384129148646942249840048260441072295814556185055985036328341992523907947324008426599945629298480878575857004782168476571583772573535167232701635983053312012325280988786972455709108525871600032604850024757134746855090252188371278380375121939554847707737478259634621903417260288183410169406075498132603758607333640741923795264803287919278435447382538081283479456087211488898542292492189817546366941745139499671086591396098054644349603554973535713088235585896349905173838972231336704060218293875072546925973328067259512046154611232649073303882071562873701964554674893705490515839661987980622797832748311220696977885089941612966837469899902935163053840132357620154050600726638169957340919787611286778501535463171344760369987661516160734388319676757380430848001924023038832804135564465302464389512535751710908992551957814755035535639822185929480138265791910554097459736361871114785067183740832265500934021650949747353684305018013900556205345477659090797403935943054283164382058757069974636923506088024898629239324366953197702149952453523925017757755810146737252466232641308062493342869995340987803368204241962034962489280700001789953506721041266799845186319870411275496662419337588796846664989012588611013548107291010349193238224075320888517048177761036076562067358665831929234082163867942523399547436209977852914577691918954221893257518260119144782099260996503176039842496373436335074430465142989372347712906929591227859325493619928566503019786259673743669875240805033801176028553828006135163102807625421112080145876990668711769062542222093228273636391900023388939716610649361112767430763786924942288695088558060452104282773163751623514763614639316987452287418611279111979115455967759787902152553520072992716463182927313191627679723121744571908190872125212211667377843867380188229607554199602539360032838713441286163189040942496198404267651592616298879237501941054346791025443781401258038218450110733056811636336943495580460486773666437233671391842148938251179204980117838053770894986730989751922748648311885236155051650944093834513650600223692730088467343274802665108271695856365145337375752012953766389807401380624349756550488220255708188172120511353437073968031210833153762610436889829147941634467835768342311014557175981791239219980261395169958555040473046262112202469676611884846715595775490008680276410167629447695884703943200761253949175633110013479337547667663435310127948232214575604740869020314318578443969718045489270426490813053236845698933507664169878157133392670365847987076817237776116574079952943903196736358750025888893799398858050006583106289491619537577848878265682082348960705053555633301831917649283840962545167700028371499306010831736960415582754109040886043624988913342032737043213732430075497574016213921470990116684356155977322811195049648739050525294945415239830489811195290094787844877254926653666005300158932129282704787362810434009749187070158640344760027045425905775063437284880637740096447979338984386109384769480440895085874509289734645901179321857987015703430968688391557158787645741768474689008544920535651617386377807225361542328741704865484117705229702499589482670653071652689660865039150017587085962865170700594286873388100177678311582102458245177525777861206031945917024601968175568723498586156663039137076007053278123893525035905588370695909270434747396336786899289709528038181760729034851090970116194586743731288919411611464785857640665357443858644809483362724809125161908957168335703399740908723488919263034054084759569119575852369955933039125531442730177631738277108714637567484411520658599476267997606689749798896036013313327309021951716080396454269105071194250737281988067579760420742960239597294977442701244160256069587213388878078992303740756679553390191942568291489288797233721814661756495237499986340550464152420653889138474996328884526532882397656818207717274294438159443217684064154283196819196293208353284155760645897575926278857570363061176385262518585677479360557908908721227798559176118289728014154599479813154728755086159378290942294461586998453031806385692651742672386370543180653133396485979327377853685472269568623517682636315230193108297762451478565802401983795165987486897886730985472629188969946483522399968420063462440846818331592066635906994254778267336408253190904910836124747411635415900804709765321249771691507003154344310963032351231846192840289500162589560014224913522841503199768541776324712174151978446140980290055421304502340219667394166011511209100935641009876693883706388207494808118161175795844437559640773222854137074787384389711117392716404570197150870495580908926329210384089898665474323234063146195548092157925811013483772927521132785434099265338875848982218545457008658151853843262742576438435723802032632685216819996784180399802820667870830668638728647780762881929758611702248931745478527766335104654882106408463283507300659843876223070845378157313500534425013455205390383067746829172957763395537665728627030721905993357558864099516875440447765907379099934523915279861561679364369519283971913912310686997613580597564306015942803153497707695487521907342023019533026312702317082150460835056138534088957557414271553588655586720917141175627155738440947808026926781645652752437725067031822036513305253621512022372408957685996502536380789236864713968625055997469647873827809378527942012205262394875333751376912403624553012169994640746387030962598122501180513344355161049444994147538933038779593237848814107229521449138147739260764658337958564605509545384101615782964442949333276252704099830098610364634237458367531783295252382474410818298538892874395062987182124694249101076080589455627246131177151791374007740954399917018875244758783840761458961124501501773910610757545369817137979516782700324436661801205455410411483329723286515249356188571326640747331261774233708834150443893849677558259927857952212741174347068010033489370435038589211397154733377657736464973508693921566627220773342817673176520365161614352932174836282949645211440407403525598873474422452230660085920210038336289837549641506667443292852425774295775525525556261636928135568066595801051575065530304473043285906076385915032571767581636502436641202924662471016250890823562954491694995073900344163450040753197562453338571111741734745000834812950137020649496658038951866418424854600576646014944241529663614893323642493469475520354768318699366189792952800344392671873389106546981215826573109413334906114291663366150402377916951669264109831414035393468567444884514788734009692960005600092621746625644381590847968989528942263077947606727605275883744831066001546178212680854637656692948673329735988657398421022821216671991817512003912377996924964703918448878906230646587159753861066567190754565983270518619760119376207078415975385424358727986235396524322924279001014103389118026121980230565303568498575388528285554160271388774984256923147487914936172123111375583640824547929751387769105383168317628708221414302433558274789166502200094837090748583711546323216000609926105300540157673140223285355751253812115355425498389651357368052769201586558815999551000923626725190808745513889753493189965794414141022656174716325515750600824147736647415552878236773070181507020845578624015208149577824929314757714817293462984689895740950455319694751627757869398929260932067927340943161769711836304598661446646449891432054941802023479258710646911904050920990050214115003451282676665343037485597998888757005694171914196534225865921396500625583181475116715860374955166650892049054021478209988724498727649127298219227320566085574272098510503264971048170505684165371409170053411557433710592847588814974726918324829048301043773282767377453994700132122928479176831314776165064997862128554473912014934635006983983847672760899054477853954554765190206663667352460610325042695879431894805430245710920411349917153092273127997171801488446165762647252141337311038738645917338891411742200986585843823126737387975887028556277562969404323559995465156140954521092401251443374633228665312452879450458748594437597343287228905074522351190953221567830877524185235359802207458441980777366249779721572624132209824616218972894908504940096076420407267053712754272070463777261728984872387490153109075536313332154364007036976426144617403771751845007167064427035718846235638986134697340513249498346756690486712213346160560321165021042961419781066240590635073265260218817244972394174458424565854635768296648345644085387787255331445335133210833665467354599520166486801289491438471833279120050920457734605416789593898480035320411945872573586797276220324520916957708352852580639125946860643783397177573844713996655078194558750715407706419469172436444143133944464641611696264687265686226059828522028635496437177687788799123060950466403691598225994638385652855987427356929787954828560220979020161594078281712065044151301622263821858299632805562056327752984816196581528445193042777385421879116423622808877283010165235728806274557584974383709527249609963611398170010160336437076010690499363506977838657697375426009427546289255562519768785918971512288634855053877075709105837704032884256199814533580583501165120122745650564093327380579210969802126591002956981021920486186882590739524572397068012446306339114090669322970061906991106081501360397836926923372031428905169393043303091590405553108347714886561195324199421374852283790580725338093478388784776284843793531359698697398892306038386719849710750256605762819975214759318944159227983974774406977892271156547107975804296751150531517630527111519034457686104906741802583963145243634968770505080466869503240206798553308018715285262879765079064692622942792298925445316272934556663907459447036212172035723709133652026426738931431944322393972837927819990168805165758695287129768950565851415880456807027299935457635572887431529445225074139575653326767377866361689554470042389204033355873558302095621278136320277894462687370233545937023787849844759643882977571277150561538517854385039785787023461196523682323001491203281965250254635368893419456578900075427569305635114903930818840049825019064458898445329055567863513581228969077124986301601976943600028416665186619639547846232717955606621867112595438223767622615782633081785339602827720372991817521118437177133039559264979099345023161521117207615821852551338923829659542922601404994269746092513542528037446259674122822948055539114373903869189395723204351828670825493879173584218784105847424593743070608077017502999692881895649952461840174482963409806287375931807415295194886343077624112447113878473955333892792242968729824315617821934972953190629780570355900546740579005793601039726700054354461263073873593886696515852227217760518694437589504867272160318529035186964455332308272020041240898587571068581299403289539578709955396408588265414687973277067674741401870096844367889740673770614024423017061596428394679135949973088591278771062296356986600020847703744846058547590570506003492923672152357238242542560161293751670588514450788669891328536770834499489277577383366085620013385164662973049551729064824680408147515849769964699782350812905253993108049416541374535838618578097964778966859442235046729805227383116206504204877899533791732316792845505379395576685217550085883017395005924669205167901436261644957716346226445804231852767419343515032988485866464589796158413299886698919947137194370437094871279084889182640517391262152070401794881047229885339677404270846507506269979313238477770947820044396844908516559122311588787752234094381380020150237714852065663218505929402046586301450156402828537909452048057400786819387561330655743726617725507309621219095665591967088542736793459959622580727520022462469294827733507727513288811665056023934572109204698992909549952379435836224721591977432122385705693133444184614902057305843869403357956132950655426997237205574272944125148714902565799561256245840005023704790760078211184707481986220695312576866937414374923153692998771333679189265484970486713211234644113976947710145138976482047491416933895380465435720044644276627347121478646149212651567613510644926219258514870866299454342224447088914766450257750131419076719882654913873614074868672379428227481396485042624607147375496272345806405551999452649722506480431174253729283534025722534046125154824402171904876993884069473832782873733388864598778466859187480217722850692857362369617887148551541362602602626381634681703130323223122820238227366201364603710413676266787702637219046151619417580296038671308299487191780407631665003147374368501824139306633267157334638061579381537359113290987934733191688007704897716735099136015797434872132401361325740806181631848893685865261976122558483726286912674939312396886582804202076037418586720647766780854607889541685340323370028107683302864736824191102177058956324589429164144832866103739602748787469900048396149756152738484168425643519247000840424041159173460724292717257474362700354279197787833073136169190696375199651220280944387134109139433408205236748574538393961965162393278092661313620103707712282936771387422403832982412354385365601233722966572452232995301050987094425919691141604079681041500673610369122495802591881551298726098390672044100276127204422267385905518193044567582288793023159278259236758008988351563369409565599505931221360244174271112992027542724597821834596045348922270358025255640724626191226053899596763394168239057998092600923127237406868293056866380050594292005683427152959994227010072795560042446335361714114799332543274494975722180981556018641940034766137964973454312707685308088110682707480951187679518176067733757145838721247756815979084821843389336517700232385675297077661959214778368156262466573436329569439014963035583802063791869024102079584255674154556986106753143703273409153142399571429294191072982501481885903749669853877765786241513402352611804199550192703923635024686571108409268575902776823575692602473607982338520928461326126514015777090761509991016852774589378927980496299250400116457756306351361987143523245324107034714664654338096390087956669932313401697833977597699322584134840749735693509221671537965735671862543497443452108293104701964422670048518125514716933906658925997647779056903898498501167971132621828115477515164689138460327617561422055144267232459635325547332566935932998516358545436042598813069689034930918380657124402353513488769723877115668228315452949284717231247184677384075725786961493873204431689623719229616234310567045323954600968426792957385716237618218712060729899563966579740191962101571977078962225886698163027662599577502613891586441790206648742337746114108458933782495638461917923563775697382095929446530882674633463218394630580023456988181870180632394559914014043067521545983943395476293235438542518206486803413238610191296585991276894469904821529834597044813470074208859406502941516866452144288705530328051387990284110029600089724858601224455204013896078683484257821956044542641999908744237281070421771766005785786807700441094699768478305864905559775312050996362158939982358586685075257231091815915231879631907967059741442192207478557910017824316572158605022695343636841666470794601030272362543473549289998840393364571629831455934025411181876481612114043375011546404531588586284542837357405884731720915970353220458777582044491600628463291394498548099521423182038174240467114605017248514790995390649500487252456045442108874410198556581543825865075772595207638202426044155337245509334134169969039000688834227769796260061812511033730390099333647031375087040267836067921550348185911772168426973423218169886833981228788938241627384116044274623880207334286523951758265940371843336731401442594242999865104354547536193981383483010084457924176985076341334658732736789390809558943081976901848206295597592042211197322845429773179532018069573498636709072410900822715052366680084541269081835892087269483559653795951153483071136269849616293312627034006048688277218155219770578837879330765636431861523591270054655468835063413878386646422393364112717101320716363568123719347669397324396244986876405544531457945068403188202025248875892032296680830837019334398471085095367441598390656302584155847496958654069137000815272177641983714773020870104897957863692436364340856843414098641927861427647427301787735717355989134602870028329826380822956437842919906629326727134399766885533507045650796385245855218316032296317690730117186881277418903611641881967929499573736293316912611993008622209634218262410053853230407580186144248278458244969688483033277700261411854906953331453663792466761858392113064818587926709637880136932544886217809751702200835766367309988651136076657738430613310124421231304750839574096959291155266502076180741500335954486125560217175608561459528415329945005725221472212402366722593949498589505202025023098548869949421590216352909227253057905663589276287911845451881177387256551375444763059098490742419801272869808301971978444191277422114485704280852991962979739071315671644978225813979381178118369372756093837035212381692313244892043971875674852760263830772140026996750429602456027771864892306950437225606297871061980213533866977571834751409897215411143197078040651166467498040381913880320925413511206313486007145532091350719550587561212011405056232643389611069785343371498397278341607240778891017562274251705940260889738259416365787705406357472081161262464201858910779335624644516597837755189689127541405528175461814994642846424993529414195703157793720469526577849340202871010086117962991813734054241643816370714784611751686674052339756423121992245806361118099606034603095546227682493819097937746230952779141703139287833592669438200284277506179587058764083356993887729085299383839054023453928095541141314995147607317853078426212404087628863525608498649049976201475412281399196112285449924232292400035674200501643799326065026330784548707764585053881863973216343938257466993016546717210845646889918275375033357606980876723285188357165304559943783485697656433479188060238502972759496211836286509873905999092390934873467867094463321262560306827452600835323320076393124058029365069614263573592300149875449918468779513574351970240085054136041460514040137790246939164288056599542555587908922501405880183312720289652843280819857864879322465335262330113217583320502026432607571955456160089722080306365404471004950423996685533862474523283840280639378732580311787339546211365486376311776514123916831444845582766357754638064573895687390616996711344344357124978222980736209893998040842612424334284662630169849106519822380977249736589914254219758504422099633072409666272866992714804245715935152120412107231294214209368742265336201525145916468572663114501164686934130071585075395553899691363886607658246629897019633661215197635944920578590729311159674789611133610253962169980920956133750197705893298736456375113397229037357256716006180021905835891885835456439438486731109725708880158716858956428327985821343139966539573304223339274027195388343055881711692528245135224128908511025473523007063343816935973155694470778307209639857878748638480924824747422352577622668374317419286759039707098607440955651651378408091278385087218669405481114589628594463222018150791417065925295716792957706183362999727511325818461750616558124213772573745430702012278493951294819045311169546140737176225307858845431709501080830577196553840638231771673664910920506057895883906786001599150123045018461526382135840393324785247191629406058387267392564378747983947951607714852061796975430435328197433755330422677610427344088745120364863594747477113702900327219403431738107488406335223352121599327755442082846862145296779545190993671948161092599486293519062538503929458904278816779874501456471409549457394490633979777754869387927398957911904261129487994849697719018655070079745999000455603307086509336701712405349946427750775281545785420908568475870004594233231544540153819108212307876367704017595236651698786931077445683982893923244752220954135137905311898146813942733537572292873886317503613227059707626771858778375694562875025360135051767946336540321147355659087966503451175993701157276588800392312686375458731372940900244643341302616386076410349120736679707230608764441117010668616672561816083217255043498259573169974903050867221028804556512252578631420803635550829179804580308164510780373201209466474871751175258631112188562743065948270317481434171399074054750965925437251945419672436338790639558508035199058022373760960790097057178605561046411467167037028193933361304292153193178994100345575836091628970482236288604762019434583659958199081787114278581647525732146730224803045789245778716638730143515895523336120891345581238469784131185158093292621673272029689796519768373850998345540083025621367130611403332161871583790546981690711618963065714999617733502250507000404264856314003851260828552020800451132294122129951813714552927647148429267031737399308928346669786524333009611955360551274165818277139562344068916064815355421798604569905063797091445603021168753463129795247648065420196013574789183740913684890529449449374101245407447663225581910390663181156158873614671432208200262555765666061230356820482513088368196050338527981211520290717125450866377685116313345332763959507864707257483881577069464635216344533271111550213622489244783692488677912266155163955675602083246198052670033101388851540217751298214834120603067023213418879063336633474465751824009384576984507675771738955481011207339448290545125607481311005122188365380822466895988120018559946051053268242155813792291026035538621930828694192920813179497519130191445603275113601826645694922962266252222076166134290531633593353109027413154903797489691515354435597537787012694696093536173841735378139928276930040994201731263928370067361230703049855172825321842087528777446082095962714768223530948061272244385354004573641526195414430795373155283600070494500710920894389184735911652072475057460903285609456167068769443500540740005578432180860201425780854553867287936620394580232769762049144312732332625389211381097280787484729428784647047037703226164120129173316306440320463846599562520413249413253736051214938901039686951621615854662200284924866408313088266084291153544435883235685578587254173442807654175011109687693352654665425770633661039471099562756214837027669903969243166742014208522983413501510454765799565713120414413988493957413403533928745857735802455291808630186778484499189507384785678521962635287651482743187259159522895713104151713168024865121389141047587932531804334662601223794257241076705887014517663851502032826598269704750888211694016970639304797562093656135124096622843326986328952460204968697342675731934199794293466080023672244944124251315777977188571225688245790100383561238212456513811032584559592772276508366819789376390005925593739881705610332663404737916537723777075912747147725374072360124742752197279414408871690851497177332568833544511343050272237341842066846565462435319082182598431932498834492407578490933096504972252028082081737655716106206373846254958367126208035150482721017725418160876795152715957039449641174324459678381400690813163554324857531699611169227117803645467695529360168693836315323804220275395814497085095369880733053126780875058293456526245472268377375722847500275752679017639759715213627797112910842533162436861686657834228852832281913594599095997733786441477766208759195977590333704157209378617754062043623110935077045045518747574023913062837247153401490812072158311846676333493751007492584277440326436223521898237103080539200337433083316373015105777546425271994567287654312245899600787093136604329490448812397330866140318168921009202642775536623436292939398114088848901233862003300460915498602451215367072080114737592659682792650267116526316554991072522782034235499912483048703967093417766782731438682609324814771730916418682818841928398736733681528588424132008938131693236873728496738336756843560683937030756061794942002817554428337280915897977881797654604169614571330705815307993299106396131925581047242391238112657278636952221241034879711929243330690995151774610484684745728291082849216385566734034635479193090293231832193435451188122312816357803065374030358818836568902192842625575585462336748631421208112985357446094863992516036956055473309336325788241283654897500134614773868593763301172781575159867220031427542822025942295695942463016783746028923578719315944263603467805136375210776652193702640297169144193312337191546689995034037729830761650408051288490031433409255165680506764964263384017582332571460203180840949685072361312138205311276823684053946770659633095908643449516173173782179714696474262132231656767090708443685984718265308296657585324044712077676275169390107678701324932779292345761180055677020244809954893974169752943997113763763263895305104365148109073371115155870266222920208226119818844113542733810028177713426346562192381357623310848397526957351772469380944338718555203997800009696871568075214659105275457835307442735055444838649932194300822092374834298263512621226774369733242463211070900787781555749257591974832256481177121958663807435591066072959679670455370002241630300042306236534979187484808305283869622371890560815658618436292234371804923004067048290551981481833858149660282352836966260508226079642620560391445733700224123507989405376208505056274713941903936368258596679660009862903685851143434669864353620696665467128542890714044747737357633573391258209140243378139069927498900313057616624130173742547522780416025630425930653256484412375811585950245901369827888177600303887030258926220549791167776879231440103654276116534592557989135563786062148139069792915471326004404097412491811425198678516107667133204310294639683957766389300394828476773090990873017502347840849457353224827611851892309769285333258828966856102359870622677528466204165915782269711451619058409105571929483338633635062822655951560136612459158854645141948462511655572652415178260365083677815836841018337789996498589003974444566760660287765687130627659932496810247477117510984566647617471627848438820986486688074013486057298081799410897419320453256995614195790872651755514463121689220830563059056812334763775668331309848591427813378705505758843353433673044470005974108433113333581787385265784824031252611568420165470260347528161852559742626257181168443974827935014917083481841341043317705869603494438279101867202724612047600691806121022878369887399495032896415829707826533136683399139883904053776474937711186475860329332647483574540255319994765306512618814092154590479979094976324004470446861641159624403176525382984355628621742101343475443350651545824856500953341691492796009480015306546873533391431983293795171411460018615184349391484176348131633586848845064816626302168921956817321824780877902263202227261242239938718205977290261022283019400492617348123502122803046939043697784908630622433097197874393359382869981536000254660954086400797424753878583670750472652046923869254389114896790113487639203375227077821265080269085187709852792651228016115726285797638506736958754558631678974670807608605007310978643848029582789708952919616675275460662928441965243106004902073627076095706985005400421805851891181989800862079452098180613435311793647753115802078506324318581821101024515415081463413050319270087884879014079559506013707623348270609791294161041416184765919796670830476132704006665115335096286866276171903680204838292708843453806411191599351894080966483503439688102015145704495752961085473212162108668655643067575584759926094043572627426160575900622896392406778175569143603323554652557214227863094461117359091946009138454703776617206876580983674406405199239755432222780585871814426736142481244861453035230891230919592538074878361331103243325212477357984879126693493094387414367981753516572354979338319748078830836964556884352110789771959422422745685509278751682914002798674220182319648361990840856096830878245792360425622838948761237240230215059221144814721910020845983677510315741800332392724118648507714800232522975999839260441698225695864453561811051281180995650957122570849565082409403578323552225339456831430622284160622770322565743625713476838587586419998940627805264721243667749846842238892059876904880215607941523682451940284267037569833358394570192025558981004192445017823913800804097435491559652432698647888808334326255448712705594684000591254957965561341289246225081244742923293326199086895475023155694299554449214315652323385643898062749587931754339151446861430518316180870612055071356840974402307929947325036324243522621579946978763513834693424212380096835646605438561490557516554275111225593590490899577580630691309082053760891734465906357099112093991956372571262240448963135438925052975408259631203964916161038182852003720439708534023823990299165206717240729490980017811483582314103783006554951668710076007448093287591000988738175949618060027254194204759243105695779832485477056418024937344025156167270367889161320945776173167759063627221186828932218984832368963382396669044891543982993873119611084985298901858030305702611148386058153555108677636084934837815598218902402277278865702350434357315863774219139609474571066759874290212628172158790337743874303749125573464308236401829105079679928478149526130209419426902776860745599258396200407865867962735992916471107569510329126548759519644869642687452140629613767907762242118212651499486211458557388361621343516596473705863858640075696262430792273259323446386050980235123615439403966460836771100410325960854415008080102983642141515319050318388061122713082245805576619289774683835777763760160912980423690260463551298961452633469102865499457602474629287505565560394021292304570834200844192797851518002883357359662990682988250615121238394904066089155586615097532499730273056653578975168874209307214017630400367795824740335420836791987458295843191697108306570786656685674253005936801123849472442207367397250542965892651963599520732837146482713945550845326700996909673135693574947235604457740358703951994301748329619359438732065876978717417885888386364569005511428879752709540483955379580117525427894613828342732793725919212458180861806163865088444759410317998108460760796554868631139047622417055301835873169273826599171726101457415254214686132814772277078008202031736901883670312346215004254376441443361284906366894155632426229641423637002928145799368221075729521176757945093500951845041924641607401195326857966022825357620618481758767622826921913715778948258439828050317167392413027876244424115091360281681897298233803847744688615660351732870578960715482364592283286686222320257676025626562599310763885016178170793113965813263096062565042014094909437308535946654112721313075067758613891188891264388633815277002403480214363608922098976806456949912614263738653603656716486570155173538546973004337131441680859640132030968743227110813867800123426031593872000621505259289619368112885182132093869012008396881384478599548330888165120746161045255618962451699981991717792233050975857405847548023846535982211819495033936224565671556354073924978648873291669635556636355577237743476740616933173802627425730377638316916937260259561860744880973152079306836778805462669024021106209938019452510819877062091862061617356158147472146634823324523653999828112603428969216198519017986408350027158109416156781891456282728348211563069858549590878670243305682578858371459736068731971541435200513749470426930698466828695944189910021922239256775205219651684879645641279632603294138639642198273079847691436666670769333323857731014179216114362882074986791219243742954772840543986137348611699671167142183553117355651858736423473157880703719745562877863371778399294092687842676621430686400298893578102431325851043983854646361080962191785722048228199154999141104206452378573175714554647923525641499724460235743927475762624768825830055728076281766736064136703220396518219525219022950505262306929369913598552585510986971318473904000897977050538189956420884047010388881996297432140624790545825087233821726130800379261747967731037027359302593956380992689283164696969815896023618887788955345970005388099659761824409957669959866300289767987176942022176548743888370224374845182302117962290424669977360271107030239521791805294901005800460412284443500739615551094309289777148403773335730129205601707067425055885599478987365629326859914450441502431609115143956435582717027345070695820543759198457049799330363528537318412738262364956155959029861094993885446164075182741723715128238098133855709842436641394514261444843758003345768477732841158401995213073967708075191827000446089938857709634454551194728446721634544470910727627494816133118439574292437974852544929895149302036014493930089605634632067174427399764468715411895253947083286740448689566718306135740071652055552567352195299870976049308469929710794613045612014071369633111540984534923722802368939018605594654732679104003547626777887120034276208587183183792914911114245404019565144078638578132739301665266916292414880411388123347818382559034909136829388928585745650593738770493511768287579025273092362969185344654745250578366911866003350059972071386777140076796652261308271023752841331684229486800051810155069616326798026579310869975392892148161147914114596753951271857933784578999829010410669010861721263201742713481922152598071889083302854616162075848055597479727658095498759866393123976898382593445217242100981121145815937956072461281437321530193171948241190011565468997325731280707298646212662214038806676460870490540581377097368328071615763448603101624943790708589991338853576182548622196488193268270669575294018534591122356971897683642363028984922663815043797419746803677080219233211918232784471119291178246996406744136115915094013604535677279438437342807511942285753758637985138160191452416545193133192310511752083207464566785283476290736572577750815145069397433223839127279293965160971219929498002912569600976137725408435856747775433842782020615064840612614543918494815950981447289604319256626051156871358746528431385347269993294229228740583700669814853140959314279479488423757842180772920307232215101916762964422908795265851646921843080388354318645411547623424860197721934364282037707136131204965917731939879935898644341008088679386397576340504911451735681907865883716827380186121191600954674819183633539902877894547866874265875744073137750418581055979589444983623358793355673353704565764551954918717936972972106126155690316542648207043096032607507589338794087704952197496869248405664903439432353780027041739509101974867617155070621569983057805859045407694905070661595128720247593780072409980587525799589565664985468364480453973499913322196037521228514994863977397974226746363094499552349366448895046000266329254176005127849573530535167880707432720009663443793735009986070440173651725689111365589244223095700798339761487710910885734580479107817617582961162728032603692655598677678298573280948919903068989203199442252584762991587722645004830598563787462128929351160085523444543620242920613811397159529978106357977895001238491241871809444655367314674555671810025077792613075052755308699701522365454963820728100659882038435805009139332090076704953600447538341345383833305314665963386307723872675963281041254312340358377583138060096976955089086001961080652795912251327200041165611717976758201764385309349601746087458749466800020410399763055103447640571610158549575096347792835445088040492140049734259540898059889802450478493487471188281971046129470847535851935119274260609460946326505727821896608996245904864266121073877275560443064450906045040741010268223055263065401048247972143833784826527399696347291754403958724758048856163669596682380328294818329049031181880274781716786060079210433515598398172293332670863086564151416223551862580410051081692831468671955663351514932627677127533298575340987072846426921520340676637654015821281596097823941552449586693121367692073643062188262785694482109201605625965450303845499955358152750603523309353239712869376486253663771825504919449708965838300734314730234956400727754655417218146795710602746412550172732339360635435475279771040112972176307886958953104811542868232448446344750521074513692078582040007267957226564977593550926571990741715050157291678272597828696167970461944344173749255358799780689882584180022773230171157387784165830099551633965113611311876359998566843713076755282315768101682726096642228272806153430445546435777520133259356420905949497446187621744735268055913006569316466830581920400046402751331770876331288314353313118312566332016317507359643398342144981906946692504569361029009770810647251000490838752032381125951116522172665087787968515266477344937584304446590456870899531517431497952778534152956358180879471317407096962377247768866231375747576094155971986877110328603848727176060273334431416378119886928187332755875631278219544569992068595966862513594193765403073456940102101347921777586736157332729029065921374045298810900966777026375282534938605560842372456885311613692045124268407063637664156156736780776351000434499482413474137969024902581064534167056118186634323707598475051628412942606071400187655663819622409390817269017132544093633244337954008979980040354339615582363099653736805678810963961550333233283313818860895716359080384997067706750657830730225143514928618364686831438330341470398033901427371059228742933947384241255359514325063697643331217584134207320475457126372203564225165126814809085563639662020206071614021044222621275473138648431565436133765374364058815096782138309647098325894354343287117401680136040869335610375664593318257674587742238902556220734684734164302465191076832359842452341458039379416450251734005128779981762625340294357019827559120120849630927608250402271530749379145182641170719132485526707184759588024342765369429302623041909617576449528830972679762061026377938997861821145996862081946198122178296034833330813793041743247583444627292287204611681846137965998487761404841708324441470396172839320475529337207550775473825727388142313516142126033523109221021089472365106190488161068737864479035926244935152113501736527140467211777675438885157759560130066434619848056984933283697298307655346466439210483725998394461517378524565065248353822635283806192770901002245756272947024652287511132230736506149161932555684295708469210674375209605322239691306040109352093573669251014701487671509506184788741238364913573798390175110571991642584685705294160525216117342364895821293710546165458177636933944246138568602122750846018525384900092936281554128031161554401404132648178405726580902573975526021196474765026971435737365623611485169301235287575397881962034598285111682953595953242764352063334138470475807556160975814782910737119728835274944919129835368951976226481142804121228658061653838843642523078081223505907523945166117248322607493671918528439756598855341636876921868032551406392158728012742937760285829904584298039519321854891169167896263552010948404240202701393017155870031916075629237244329028415274102588654559784264177832047462554703592196035427345284426783007086466315406226180809499663706469127969446290950840251302702967776763723660180317687193827942263033887518842017562624600378795712758796846869294011208715573279769877960891782324269123977856031612730837633526740410525951557036404138622522939797548158750595192523899457458535253498680227731426205412065549887703238037162507065093225021329533798170803504332049269410739385574866641989081641070156925358995112360568854105304744017192461277619610832746805380316051844689437443243657536146444930704685900421872592093406140974996468302261849530570672292531279053818891723322242705330723320514714991310839402114185750835449643438868833799753649860999782601645986473564381858692993362554494496078314435335397372227957825987890267080054618444361230369746851933491621928675719305614895216485107998956103585055604837219399770749253279244989586627271257635716377028685969972411541544352446910626863762789707513147087417050515287111246182518126090601664368425653355907066057749172951207840438727400274803534270861786586795913957371813013821410169676525545506162009507630731024327553913885585702659457710456527083043729840276745724057288894317258842332141201287534563249884199558749778492254863821764008735005641952713470634626864619738031557427398009845087911658584765557465173191524286073382513481743941697031243466798228981285323859258059642838561808503922013982150700033000885971518113909619823978978284169680327421152498898512465648010461884228024279890355719473510925688597937412220733552693532318928880501369371549880571984622568192443945852364729636448086817189534196401690359503936012161871103369900523573221957740977400355567002987904154091591909836585465023439499249780596263722183351434336367920219866762402120759352071370722398225806260482654323127628571436526530610938101808030360684481220207778021072598228713782736320850127996794422720719669412489868027608633486384514762899369503000358779292540023352824555593966837580626337301261844907190609672448974378882902887119186766444217190838622190468019907816208244117701286509931082107420835083083023527439086897891107775813046791966222294812441937710508170388043047116933102487250466832313282212051479278644317628902793861168884501274496602059670639180867365588803240320832541853738293202197692073157475024295362834878385316832387922112317407912757133166155806635615746325132615972827878118354357785270410148295276890835408829001912811855221194433059279515491691479804840828948756415201640207989137120351020272191370979847141141287586526773768825507887222691408253729830870307470640168991256497528853160238548351507797837991477427558362489207069094291268555629373416175177171243352075520725025594065535381162431477182383795479261906215224833208971313585130311160424555534783934186160893603929130659016535632383631984807208465197610200021927963085405711954875484354214012774908535565438724742474756481815332684186055198492772972584449112377503430715441734488689385605131575948334021057781012796652693424901202696690363009590487969639258662718319095365727419178812933089263637248373472967775887732572957915642268318962590645848990923412940522932764357551766364962537767589334614754846057646640186312431186915501619028336869916166704640111951181254312619392280002119125936460514178575776868853737167311066855079719989216714967569449188389683071927105948842964980894894756753407064153141849363289934972867244038605994017935746685514493899324611875647592154341257053089181718753531857140694999675754130267628448667932688241217744725192775445957234680727619121525168479304503342115981542819625252211385945380615294159274320963052554111962768020542969481187321857191584989893013353098983310059167659192347347167196830527827262096909059765120206414313631102397881410649156991580849973789524918168764313670415670328002976188113704646078124028786856138842468965661793323592155297029974150643138993027534516096728475921919254968692960192600522429482563237523703131181983261885328383936013855540272584326049497226540277894738857075229123769798819400042372457643969146846155615803237141733619080834766708429810318298465082677030729012185577223470537883278196265277216138638751723257318205686367325555165615542200063636466263532772286587362493684461987036944593920330755823232593522595955900796077030347485512270509510476451216813146343923465915833699618875759409170043117683713028294424004090746652880151592177252788300374045087961233924913712931185995074828274314710571776968175811196667026169728644399115277990126360207492415343260126730409085533667784588903726617366880499002503681504331054106917528931578415215192967675921563653476270117206910956234382129621812154122890859773904750000782871064624503741057097044237553093920779423995877411825347977054153345740050335937484019037080336378242747401230135393555512436179817308721473483165560153846807499005999080491461833479305176388690913920092629284800725977084572847793075715059201707450127598554569923640572433091155843759335590653057859001161134215378683824084785490330210375221156796672982514262563143878450145880215369731944629012477176229053628858812022594340010669582090955988051111519913813936553015378478682448192599504127382652136284446567392686883856304318102165162435833336423788447100638572898449212613381119936745245228128215825371562278188694190157586688567794456101311394027101854402843565443743944522626196898726801880215079673134498340385741469675841098507559988012007443544841594529016205174147803922432870244886776908940638452253027216281296673867447343178494379458064083831859717913223464779918773907698219980768533966480807120442821902875436700894364703745587441525216941983952926268535826032432721911363526506761378518585774389266145416102213149916809415051546857738343492049162966351511155976758929820580602012803567578016385285764881546268064982123936758415762538317642363149064437479374709867661709373729403287353952560307270417363400534488952069024453937883920936596894233082713719595100472894830729581195007738096353447050245668305746164070025726507441299946182916132220584994316669567691054946657943109210281179301872160351279025639904142458442472939559573468414621409285517657609011165659655870339628632593062415102168132456539352474455558868584122324081239291495566768081443153115185015524720330103427381085386599487652647921364758194985063828948909642181887878187494154991876291465224150458322663727739445543902198879929705046319918309159386910935179292814124734971286886380415315870892287940403290811713165671529560982309118484505420005825763631362433658082297494723835079598926169110953938768774476224728266891387873859064929610061781382890141448770758325405431432801444210989999914074070350860375262897611943376938824922639800584681011411780120888774660466503220512874989294614880017956414032704084074991331179685631166806774928726139496087148276973017866921933332122333401686809765938799452026445775753634541557628529206511110169453781686725118480510989914059419901046288700829544476495449803332487266433356255064360423646218535079514451779826707227061041592429509137393257262168966396556797387791282499927936278847231575726290756380595069664638664158791205232077341362892495600011095631323909485649871496995165081928349408894053348494460681837480975447419050735915566975281362400568126575379076775321669350458227532951950884009797666121319255017469941919611253529474128629791625642078502471221596139341260228901446965335201976709686500114866391648108603222242345656397761316535898023674934917730857325227299228141399391140260711125813390907810553968560700387150178599017681024742987157031084726821650343927546520260492120897094994736079620983266247781192368890234234845122020874329316435475569045368936894451434725847162200624578227023960265030242700271832598742591500561581442303903226491084019545304445794544575520931401091833171011474707232095698127757452799586469036379350311140296305607756632028822952829416795146261637128192576642688015237008380907370913359286188342919349191245617904250788987907217876845782153288331075637015443567935288910353851012431430216115730009752295846904988560544533454940332632286705187740267133464675039912536052637717110770032727356403850042672361314725120046019802165993907629388248873872815142369288729643648387044900528082734746608052747077720572288852052671615930798491570287506867486837576004669745563279975002612271636075986747076993660691585722355851688616591261731552285965821936253322164855311840676224538647836650051369961258768484195568419719552147777667104645997889825172473672701942256562246296626637041614369119870909822659640964817623210295560696582422386316483633021640014916508668968304882309507587722303364711497372519498447275888457858719419761909364730068914707902428367991860762406774640763772847355997436065458796032206516624570427041593182753421372995895627135554618343419220375713980709091930363120413945450137855860748694331547817625036581512654494063777616490243990293706727755197031360969612316438631049198229150662451688011284257862775869002738093973662405551672185165216762718116862975394431248414654571006636530435710227973496183257201451521665743671044414339232245742157478679292813124735761107988234950930048099227577820058406898406552868535983850100462168048232564708246125945124353223930923987209875239507824100926990137017142597883373107019810063412613580139792057209367326844295767526703911862283293938124500365190726945191230858102484229340165081534201826691659992388966711645481724419486183586544456791979704190269225925050454700910967231363515962687576369618200096714235706428858862012500497999609860864492337233977987723775230440979363084859230355572174948302759675747376524969688549078197890411440466291799780963517499813031445015457230344134476880224553365733918847878190613644932526050244681193027866581954122247843384293912234889568992062893088872259262690167096383627211981723414067116957984986474435629869645119551120380552907324383353087159806497631662431310509152677381560757413861487267833257928745678943930014024875755797669133554517056738370104965342772680237277630382751685402542761978545980409596162203504152265845299741375060219689236323134922708386672198703050771389507961537063702930513680969198103493513660513927561731329478977031147737017847808872422765480538364305576876540101430961906476297120968229525940199293886750485379489645314699881578500335703821516728865473435667089101742018365568059520598807786985193402723060790278548752233937947840198897777481990306850013700215084449405692227465682384955307706548537513939149356267648977977046119598509583871824417862139711037482124989543263064125647154994975195232765258747618519960210131181560489314490671863774875709707696342416564654955377920757606285877358034763670817227883039143415995828876450130477265834752262797654490815340663887574722107796578613597753027796305810642193488552120786862434755405068696111198303669222492263814393403617241339473096529598357046971905051150754124798048953309502370856700815917791715748362672696764853433896275780610149539911331792562468544998404162719511849786393838507326377766245240550654701979928164362568666492085802935763747129029897575213434745733598022046794084637842982294341603824948271105958070151522154866499565901624860151965632220765091851608432070361211503935666020150036070555836203000271458658402912594121356453122766673940720282535113054264474774519177847550579679814499409327725869518209766306218495301723322001276557987166822976131310757969863552607331754981934193847843303269209867172181002443056391392206851867867465890622128800222803176814480892462441034357713388408653929477289284793482493159925306469638654682369005798506204576454312814272370884837236119619657837880433435024659725875981448103386615830817740154389207105874034808821621185766836706348275792815060327955147099591702359969437902959204249204471252530269388212202675119455876887237804229989704631086280021767719071801669842029845427781488214666586190691071702007678056643948691586155136925120896514568048929365376584441071162334873818401582809245054292682944856360409596485875619324039555156288256097594742991624804280789609947923712322153574829108077886922420516531561814840560670417820240075530446599737137031518673971069011749569250688093637457089921117567520627528834474974696642842787575110304501119076933830603260220743509549730800230869043350684124423185807814149072550051692329311643597410731456884740827388121904350984498052829055479619663933333824074235034049871820252035014297436854830712228922939409325762262289211781481124086678368041249109650177584489323843803515046987599545637539699752329477846606626425411912553402866313013076305452795098513375773753259852602230552447598573793583443189286264262084989742767320895366268615354800575140469245354494499939278804457343987030809611311744826695525012491010648489588630579880815546732153458806605958725548805187202631496798837924789593207169654790745416432086565000862869019432862713935240353310046445425772891255257995940041691110596095322344743783588211552069436664506737114026068711898708444382433311231331950218067723729210321670006258291904783129369097602624329961058860176226486967089863938796729654190760937758282425805663149793241801537498108903861730395177310238339153413894438702086991129277763167291779595031100653598229729294890596131841237132598016351004465016931207418106891561750972091313324271177819774183163498118159854875403104880938335937858647471146077682690336910115386330101255246038447401966624741960858690988216414049645024173779810969802073060362354194738478932000472143687393904890330082413053122596109864933590858930841775905072829253601531096533315965492944418218104023331157527748069621425442405519695482008952587970567161051072580771592118668961667246579528476621570210472595923779669446705866193492358067076745512422186112620976976051974045075257704526725021208384729480878307187811560416473657562043055429839116749300796008998429258941413454584865179657033698481225646069332904140589777878470002878739594541398249045802537685127373794516979136547606141006577609519367849506695417495506077979232375557333208826275360897259638725120316612618024463162297748467993358053250939561168476321021440814861711139962100555889743952215183366806077139582124656698445132291868255695252796579298672625371538903968488081532950827145925462791574536806416968065439002126913644865990224167395689023585316723793212459141489562405340677286266122120755605961926915577630158379172461593539876833826569331846569840620988975228527531918722375663497250114007784262889802752531266851397039586852247220843420620126746594718630934241295699076650526537087013182201467470090163216760582063825595224079761372238593497434358158516938567501355136472726763782758044071790553274430275948348133304515334237655641094597078804961703278882769265065242017777335503984242726609313928824175820181594429584515214693422551738533692197375915078878368130001745665269361763219142756118640895004470078518201777082631339587338923853462491902183445949162118502160254431311043576173255429053739583186870197931792805627676015842035481157197253620702862057028926980928689888735146343432752700949305836624923875055871314959676636043782413925056004737076949161332160111342289702321719679559312280850499064802452507173435709096912266819966150340656054214450416945209321469734180740097412299397276830787078610024215567622914035300781081269179486098027486144672081044271271116778906542042642499366178872880702552566261927396489934237472939009046848920116568280250037489941620595307621686567891940119278322140527341520672591815766793177146237000777776017736945950113119091597602176224789584256538673187967581916398269025691785496708616330177704909693100457855949054391517524296645223451530801744473468803902285874210181218575620791073672250662537835911212120930632140486764335258707880871128662583789774594230794150673301546493331048202298295849914736900837525386309277247704341279252676403166683802120406272197454570225295945889864254365368546407905811982152829778308203625956887661010148575547602606452754296272256354259633874951164894657656913197234983275983798680081000253639252912564432071882693584941235985901845073839821773935340839420186914418757616469547331897325714308644927521000582606847478315999156970552732836412506886363157692010730574119207501792414058112097303620040975890174226187082473196689655364672276204615721165321470493491102174159637787054109607716476652097965094129910594125515903701387933071942713733492061011975658707162252719486422497597016424013297005388016169411935892553976048703399153302732427724371969516712968427849638522348459253529788856087583010039784089619651282219269451436392951774836626759262815452601191703748228778254452620670767361651217790315446890049240683099235980470561515361796606056178725001679158935786837299278224135665299915558479336720409118259938495950512754270834539129856410882660871609426120046905323362914739738106151763436042499220188167171124707459773057703456283154326501545485071808489740228559376301923849408056093983873141755978868506831057835819175972726485133745216475462849041824361083352893564293193602142490141892123622919574380384992348152573794924040495281016366768662451319914155869361187576845048916988478857624797902141607783553854427284015413428091548119289257704919120920002181504284032595238749891920266832280715082237634356548005079263249440737511215812540477190664859816278167651665522864988314889934910365532502178771495029636047535454918033734298174165480142873713712041076823821275186761563945216061122071892891998548724262007261247425161236685504645821669248227485379508665365878047855459717572572711247351953298811279595159647256137637434371053451981419745871724980790868021645637507157371473430474187156342959525149940799031915691694072288881693624544315327018495131992574580080168084972946325884112456889721266019757112775170058857422820528415609313896393639082942838464664163540796968252925424548370084744063503368460130393180740679976593864894303963200472890868050526127333410721073802908380208976105235923077230825860054466365741530834351291361370753756336280242483338381170262924879678733040932540381579193818017333857309022721313087951970281758627009268433139581969052709232664735367253252111403185408874307967532083926168445983929965937795509532462294156939129235515259214001695709052877962057607278900589677834099861988186698023255752483714881923566885338843610122439043132163330622686375232731144990722291421025560819213406920507395730829832828022633526402967548436472082063621446915337512247115213017214694451749519289803159377630274105910580917422622537743991350026607518202253407812521989483807431730937039025243441680295012329700384475491873898078583041317709750563047539157357594284130200574893584059905202929786002478301414672596632086996268318041169673160390458574977089032937849311124055432276217364631851977519343409927472039781933315571555826322375878613127367862102831228385387516148592751584636390640852010128692826318808113731164738867696090808504372256989534509252336400486929722277599999539294000413142189872943894571745353799684280259326999419656347489254692920387788833393343735275676302575277121199082827176238278040404054551694541644756039478707103801810494600473635221621931775031122464014986649106244826795068708044396175329232289723315924894707526642062996931888776804795116401468193286378638353208290821279690481565147910795971265326701308103607756013526141990498027380950384327983432997285629560492026644894944712517358988713562432338157433448325601374699304049796844341455279689716505651723267446103475338508867245431912716927263298499949546916575011203039192835477046645680937459556757181200068949456654530760395151155590232542898614680762374184871628228325893229034466449265953398237216294462647609546799363440726961642985171579525047349949475791063718421319518129168637204146863476022597757716330629474758551693997219623661312320549144327681366513634552695629498572360495963696626968902125861391802221498476840639744604930395365728508119797872221699838199357168368819905160641129417999387637485749094276492160772204546098945798086769795635143994792916399288742489189951457537677006563429328122612150528920969630906710888866618466155287235400927727560603817376570963930494713604000544716138695771526462185747596079037619044511636010416641297670332306733025188694899095848791710748776323769711316205316326309418599511467608406082450133333360445163505377471285462049211652960681353023374234871977486570415258761958826657054947887708085730897397777289343236925824047804791216442269169624198492734076803837207146648427921227285678461888840162533215738146505243442165787427453280752984718470008874901329278963399193229578126319657393074930393835996471690046032229249966661542030512214688144988750853361599333358569752245958944622097558870258260187479683817712537984547235993806940399155691206393282015442158652075675582247533395675992235291103773668706207977458651179469523731453404037567788156714976739993181394982232305294997221678199926135038332989578256669425205574832255607263618707202918541041858791611174408052970387208902645973276508974538307546959189835385914475395464348222536622520006429593732069194569507007398845473646722096170046384148789420235278976701462795713482610792384316300242594191210483839877139772593959921502389839151815373841239820385413846555479356518648803158687161275599675666845247733261948729519946485887123130294368885111503831010118149648524548404251396418844481935180577216696680313982363093520558392801399751157014574283697893510150289150924471458948238800499872003113003320856123031478768394408694261550695942802965941750042725665678868531024379109506919186954804021869774222359724258394567126332200422824966402384882527644684608499759992963120041064531773461924543033750561684134601230583076138846143267495945685783966169060012691448472762415214282445462354795912496203255364962070342530363080283225340666294696749258715161731588125313064244112498249301706916212782039629284174281999006574127813691663092442399478365375016640875270836821332169045971997983813893120405217360083083618036391165977027252272688588318072061469875865082436393891696891311196888722288726411219280164184395025184400224806779876576428044799324932802816065576557520726143041890396678269124292613957375314729735019870554262119701977592175230251311328530840136028050997112918039796652435735614300718857324438866823657894361840398519811486347876835141356681291414265624834018197057747478909013574095779994145539544938998776344726882294537264993224543024907477982512600430237676259844686619554108050332820935229914560673749640971474025346638879551082066207105614179797714634690854235802642546065985798459433020147115230264522222820336876562203439554218720437705634065688565149552542695633708080840625928941841182881584793675845273190384854971283325544859501076455746925317777476576180865377159428650612603773392112322366837672342644374512155103918572910493095179440220089919077009049810727856005812279567891610950013534914615940785711037635401478451695591663278028026396332422023602153215600759672885127885343046173543994649741209921740267886578507070344064647891465600172573649448365842784402802051040233959330084101598064937292719744486367486264009038352890010255710572452007528189104450324759277003757460266528537671972637603000647212698285102550168853308701803023989869559853985068101714962242901721430473390832902608516223110260248965395688092106055575293786090471217956776991270225992721196652341876108211308063392772758137589546825834473915355173626353551093814687741753938838089413333978587598665149427557870723840030219308998564944476791310186161600876139640682647835218017146568252896740153010216367061558109205691028380462886574018897979080809550278670316202672627353085732262103718133314249018522326039541009141752472977466123988349465684025537952121647233996100513194110427509869440406884845509170706826045972572528140340142411839609695137113942649549449439593757299586813310693387201612175430275377492168156680544981331744921326951233332567439674259146602134394868954416071965043481921698894563834820766914966705050009197753930332112579415797096012661779481588981111005694412686950369669013360260145592866660148101636492767611522267571813658877454644493307026866295901604107682338139021664363155501811307383820527289475725965795179416258751341143286945110916779210232706622919797662347277288027246432070818141802181417459684653003664725959933507096603095975786989109401450240651088433727664024057017559221103969958971303048227162643735744236525800266812242583865402898406389364572795952760180701379542670466726621720052975269554206484622099441799984494073092894819501969046906286767417163146619705488403913920791462009573473918703774364531131467099026603168743499270481441847852489894106292511518776459274776501027465598407811923812699473753913780643311979874666129794117008260818123753593854731634560425090445343696067223881629015263219959961507264844123089799046132980346266201889081673232631326807031907454903479309014691705204911165927940162800689351340778918476433807124923355455116016231212031631754917793358882904356797225639615428001081635838635071176170009961814628375798998554677693041367453542791825217916519063707624664675356087317913109952696598105354809126886141609331787579708572029019602713210349772214794975967646607270733587016439652662681476976334514749501902804659446473438029245624022899002612665977560768766692565068536585696350146570733440885232939890392480614512377198906943435841239556560378697261848474117409333666098600777477128228491473801517360950284955024731113185868556000714845508092049171949344587666499751102556637819939512101610535299262988703084250399545817951181978872931767642538794960840162449776903115864665709381654253851479357580838860692022873184996834706681092473620452674354091172154883650905986522466556328047900691810327560493024848822494979986178783173416948222042272200243432654243846887659101947587707210518939855783615885239532403537670235442844076012120997696120805861683565671601130652540720186464423818910983932457669695416097155135898922823895800796665556387295903562476802849736561260409077774665722361188103153839815594957548257456738308428535179065013728786800469077178770643622094886295298200580322675105423294368849068050169482115872545660794199156745260249718389819674824146230563752938010262351560251177182607647135383768567920444956846824622328465267794298134733424609322911506943234671167076848726383292147954554017920356540294874861284169479211512622234923014255010080248920111326547600542069163424965444372132510766382700981558934662287065395292730908253574448460906516970206916406512762700698138779949475483774873140738030605401034256621273338434996749823085793215988484935856275933250935736062569394865588256245364591429450981824362493866191584250448109667793023072783607325432794489606801443275811728127450491126279556055183418271498092391203185292916806482375704985101160843508157367437947998548721556183037896148454252064240179182511087218037813566728577451553027361708593044624065326418685692369807937895231240673640388146327083972934785274406084793067285381057644768701360439734614793553075841453113775710006381165725999427407882469162660973678034945736758863322692502714730425128391114150918671516167911972298180535973961351376792720062636598286302548971367489924061373987265815180643270669186454093184634665664751864216387167825905053010840956796611621956982600095030339030356671795819201044877113173225869676894709481540141444988294987857829978933730046837226953575317371256769498843383229218801879122313252770970346393683689868853486736274238873390484921115136244573306044235445911001983159683892395879559587237776569256639547980725347909760847558771266073811480544493135635829410188338370815031850936795339324646598205451058213604503634520281076875962267559403786399296475374369433153448322160588910787569060426761206417621516088051362566822480537086129181333778945117490999117462489156571297129842599906603317527292786446888943878931107401294304427288186460372423829276833736479481617158637451983863727525693360042237997526491622979245990797562540057863291846333215044972645632515344323121493812230623891714554952316038276276473127413215920679930254363117983099274168368311083132923085142808671734164726301625578607805794196741000442259839973285858138223350441285363023183293358355668671122489715841861932584545317311993654629655860064477023672309837485743513662980273703379744639824540222130504213912649022564819083615174487948192642531016193771206925526459086848474910973758923018793495089536272014899354645057224306428942732957409659477413879025219027642432737668700587442316470008304031969234807818559506912092456457103649993470405365192120458581599373299883054466065308597772019686939552345393903012665207952788237129676004818256399500264971011267643539657994436605178757596928965823542777224818391618640962831583560427769011419780466223504062147799452461988217381602617136215030190080434311417426577058408615081860079545416441637446959326867722869919387978974380540609187058537659466036456246878718296511980490231741336882490738736709613008615788983494683011897369750626941839659588267085395594713480186748152136110430373367563306430151678071193644977148626978173375967957115113290613190409668826465517355902704922502512411681443078795007028880817604713919482767790713781211134168933192936622240212086793218318865983466826656800575795319998609233699586112652959076626785325212715134958971148755297495691630641530636660264930662817197482471630074032693269826253854621869159226773319184741799063725053287260511743852261271122412935233695383583243428871738729330253629962396696487974068326743675567506771148138996059983914232011361930853311198711431409069031878658384010274452192979785326876694716603144886552080001480947486302742765950600773299766855553448990556892805531778421102624506664021666393922985285521750298852033672112768316608542178754432362771584572474532769538244465224367450927470936781096180427264238700722726918450712945888742864919209796033209432929654437746879607314076470343406479845728191985423650815703727191886067447389785210891691340452130101895268740702406792727814110270054162344573357855331723774275266113765393213599025804518397351841714204370947599048564000471575601878630094162515857609512539377037108408207402398918318824847371926018748506030089661252094519715588542860681332686296187972025510006633477797193901415400115903653805876138924080172494227470052217823198537768578758284539241150438328482045300405868580390398372382533294192315553120634025838267329698083304769841133525375942645515364817007386320090422690359647992764866434727355557303046378238962081303438349464868412306580389956748537684320731649450067170012961870996253369241105254752545476435332091351402808458986609082093327478696420559040043317338887350812528891354173274493249112680704851797808443289184583036623037231927270123022720810098513035223972411347040455370587054451217418774231587199396445361456637151933996764077457188041285980831994575361523069577194299183202216903829403433943948922940302144522392950683647031887131131033659406303708827111987983311493927129038259285480330291741757238410160890647499935530625948285619025600304898440981794137592562163251421683724673209967905958794058754723932858520846641934354674264090642675758737180233120878367864699637621493732792308895613231953995245329007416464135779626427460275890868116699845705384660024746568763456368561661283645149948872440900233635843974085460696105316216352839060449681016579275624501519576659282929240169056148973611671238005380310579069073234746386631447798128997613673652224865250136166083928855385754660820441324218693765821667067352128792461492675953752264107864047835392483370407437466760177105566958190605114600743001470109579667504203741133583105245499187780586087902664589571407476461710459673224962272434501401701890127393407528599541562228366813706612553426625686281360702582405218568071489389916257376996859876518667284984322420700502993447053497017192224390152575106653208197008400974709472625968936739908756424503825073644846059414587078127151274786475373799791042272610866578927153363246048961216440190708039347344559083633534286751354402279591507908266320674565789350163634870349875965413612321864861811238704611468060608428248736561719898573358717966085656088096233843516431022664858766177733790228679453611253359659089200397742180271260872924962141929812474734276362480166347976319419281755318477395503358638647464973041036248220208776943113395529226282384001934191205250729569004355942666588187042537356652621942815882122875519131303922060234159922537351846824366625140719885694166387782454169270062423120748754655015543505335369265535758983084990582756606005325419690185530094743094893096179367557516191270125986335451890716562401424140903104685922249306052140244758163877625128693849903526709450669709796403853745693149364761948154506249874845623001728758309465407297814925326594828731785660850764427720996914073185159217730885515758402886344930465247084155746913349526890439380964846847741377772546063761092549960268775775347266638519650221174437545705560675697224251235651370998771525252057689497419672128167951432786630080112513093143587604593991913594370935715592523035214973852999831083364675200016164118198670920088093777919142029459797013823116640912582445513366559891494922495494071225080728919029834263435449463548073548141119202047612884289605466620845524597425240822776840250424011041254567592592518174170603493540977214052833521998956426762508393734963868352354816475108381482847600384750126496154836630871719695499928161321501456537620529157005966966349717017309881188407499104649445234071866420870780455492055483334561751046878720848782050272468935083884777526177525219872280973972077419682223600212612776722687264647352461375186784190140609710919098914443624871791093341571139562265787675365552846824094254385587448719871956807196162488029230240019885570393802443391037568070217330838676562662718443021819001348018447949859981844800295999774996920462514657827542339092578317852276224230421985167433953558013969213268148371768477247236570347678634163429728830561132126329889717939005586102316094605547769237366343399882346693064596681316733381803278252196120990970677166667943562398155387244220887840516315905268560414197201612210033312823920776845853245738564428332116262026853719210193761770902109946042311336404901721578961715990774356848327178968350454280628511372699877154991050130348949760239477369731242343600866703173411291501915038942662663777604932769192039368082931555646021588760632106191452558718267552827196759318586084460691199384549085641242699158627285755259586998200679665120727516493353610772551934726602297901137549879548891703426713500524233993611214528778227943714132746965959251730027931627955813925711387291358803292941421200376110924593296345111196898509207396589461932926243097589953789821360020494532933636388624998021705942761599127251139385746684015379574604330893432039435855858177571612235793680899310738239434699756704980660367939101348224992291498822918818569992639385008954389826082692593911121264324668919478840640501203336150651115025272237106931762020268576325839729868401761354261101079631791854734014028801527475459743732783342022315113590590203376468198306827156479022576440766881263354846692898733241794261997745467921430262706061310840179435371712589610781686869066374752010574177903733249580163118291120589890569791490363723775443321070357022104908766314390447524126574723213011543315905544581404290930407516655955835668958128130837146483380177944710290458647070922322868334281798468218835080711822959388779678407807698073025035407360940989639221248289003628637772018808456036708787746941090878686160749966969090986523187703429607777578136630133016970524962706033507535108726848648541339274030358850258902631945585749171001642770934545339590439522089655318664832767818190635706002096904428378964091900527687970180166364787357661557320317800321808608405398328517377535146108861898833066500513310887312014941700794076899432908155254438648560242533943807416425990841514237401096477902579104825250735388870607726118597415770673011928111784521018302709304980279209711723823005950569773224838146116722601672104869760385665633781913170358581646057434608082133316697979718447803973079445091113000637161441868545426999584903113441139964626862847434838075514981472054976157411852797979536486280564522928062100155938434520423476928583825927896262332337991761546098074256034625714640597244864238635264256126422004847067647600809436040536003533257880979703898127547041366694100257922806690216462701022893787553759170184939347328403084134320119189861918936644808618774223474243879494852773737211396867428404891178950117972953469131411601012954118146189873718077998850699408445642831561917346038124396526571859223004232237915332253162192647348478418202625921546330786577048994000954302146981824197735075446906117227463944102865621940834951847163498064705291011063560685031128902565218539527305873549842280454698612687350406136972592316790905211550601980627554982791586228283271509159941969236715294071854281339237626095939507166960913388656447831349533511295264988394180667453048065006920961856887698571532075844657818277336581859355103924792779140985868882407870555422700116117776280433676228821985600274693826616388785015227494572240410412881657865755882023952882944485032956272392438240184587670347356124433202943083166827196633911851577722729648770448818039978521348778019667572861267921347068086961912302466978941338800050849570502242472185012410744570953229093513018250393871765991204290787514286729846544039733675066161869290188980159927119598251747976474273315330284492562415580888781561167385663065574220608259110017519927592410284366030831595130622513365070462208191258542358779641172978759198971422270672302641581677965250382885692346421751983512128420597187092001787957485229114858851598110415112176051574998344543223977974430506585837792428503685750473755250065863448892071309407411426193604644497981051694472794979811743516842802344808801346069229071627389203505722236329686122669724982265937213432041790888294854968437854153565905421238013971022389446318631156868249453408091968039374796504054350873989878225836628776155639455010134146621728230797356892714087291843249654315012754729548469987015065374447209880155974200948547088635101919126302479945008771790604032743190507880142679396438356222433599870245940766379885202937713058294322468479567512456326444204164124158430512100079068100001244984946067333524822036442179582109345733363218858853255942446522858865393664114870175415866478592613274631804381418166810281217268060881028510111804104329628738759679610505253607661168942880335143336375333151560274703008205123131435558162801595561422074079590037246768747764705480768998414053578669215540520005040151584114305523779409153630104934897383715411190337234344806880975549797800461948777714180008119477635974394469423856114922421457828226742981099579255895397332289014164525256791313790335773256248271308433636152566142232508493318924691736309229371885403689329752296722944505765537524904819078977751226286239603602067984139893954938609755521812505023671343552640065566477799542954100391281067083160022567292367608134346816830924948565864625199072148057152772921140609330805558040806952673031396315403840080128545706381341463287429164388210537555612276148904615999348700562784682861612489979819519773195960401322338097039880786010950283488222988446390262439943811275873071277314881229803841685789997387068153035635543803982155954393379225764519642384524907496803700264334376811757984134166260519413893245155238677671695091524555007619533142004785968838749159017440855844451951921376622602293631603254107787280554733655627921923048082669032914791961299726487388427025288212267606641833581028355463144673467067926235849900821873822013738766458656734411948096220569809824497691194600907335096095459777335656792204363006754668474629413737912870162503213964879103130225463732769078473338843898290191625090669168651609251548703398130257704652116129013200843930478494166660624081172778263154399785465768520494589572190941748374079656445452799205903284873208149603830575525099315471077009974743834543802366478932166306718969728350609569132434038178758859876686076839580886737336407108880340729082832535333832398567754215599244755727169650454433481193740519664692679013491017387245335122529835586591909310675732439165505176175244408882925424785885910338574675916479164282245779143914743916232340060342236809804802545958264742284342824391738827169215137086772117411657180969618495029824300261857940537032408845452201526729993051059355005789630571620860279885755941263483724997186411530215426303629978073878562772620496696622241142519462170057459350811934688165147464423534200690132134819559324397551038709620602590138003760409346038565544684466184560226459411960067801525247060972906907015037431958939738299118017332442708357407343204107211097259870240318345392398721478552901775259592031057965461192301697201017773612788221112886847462807660368381858494031600890263527621986569672262820572485735725002894984027339860791990559128278995837088527069220093109521227876412683434244243152587436155899341535532570682029913003093026201416350092540868539163183184363225505125182502152631552085877629271962539674393845102889450447603167416394390407925727572827592207523426453704707109962519861891971234950433641403698960626370505053455040071920709670271152926266059079709315210928724780633774801515341661270335534336683565356799251786690170324872373821072744717272302916342448345808204598337939510759619168246708663518351920186852977378389655952765597102652695322037855295457298758620196697361142328150018914912141627080850361374131698560020667722873958433941759740217830111879793222847743076991420547212736443787123025132854009518438450804560880020964519555431881738270676957811417932052381865808120126302430764001887932722339138441715338172801623550412530820877581361091586617565056553018457946777453759916715958178505722165479604109587151428239520061239386060755783929448338746639279193513353822839842292297246932823822432503445577389398267742336437664460563853512474957342114581755547955652356831468613257530615309257516905519430687843395144987718131933206014718478022878603131999054502163843393940150327535948137053465976965963413222505036276950499217733098174921183171344074281622646128460029194369097038768388910974683986334375776796708645521616515743427373011247666290359947259049852572827631262638646149641079265943378616567380111444641863417216366622823583550650227856875181098616274257316482481582185910547312967893965741612532323710524752755327993335219358897297889944759659413187029872696928434040656858453759516642034198505954456252048417836502764179323977433832058753275291181861050030559776130827895249033513578932125667182652718222832282915897421217731534433649472133302415489366049713019781847724925404091616323909870470827486931569148478328181769349532542425129111815120103784059292131695271570913022736744515542538082598993507794242374544861854817956712729819543578183363890927886289196786897296018368299114414247585409429573687904912684130044722722136300523168383354459106341782831399330473120446982183812150416616035754619612502795474423967836875477605817995876809576311516849135884240023701252945066291690098696412473240973996644297288489242178102075182914022702282329466008958915616640933193393608537925526835450284062651183907325475702288727770512273294331316836101869430970309175957814277372281534409810290660547012435245991140681338755818467077739958875483528743047258973136677236106464429931181825331246150252495230539766855140666197487034323477548591441116699834424167348276203480337614674981090518084851407728591176474212795265292538812890532980831387547344973099707178100131627268757443074283090502033350064538362571159532019391181007788171230760127757111644569864835668508591024379605670437742832062592227934814041713765535819715321708388800203604850402526229793347417055947527177031657897218804201013121289429697499619307980858829174324211423465661574191873996091830668154751627172872919338828155143340334879515495045881122659138949770999790320386956476113193504001393848373843257942003000845129101449670107206157240431106817498363653535663375993546913484357212932932315572224795874287938956256066269246568310899920186918635691508919714777019861513026035116914866515780247130794752492407440427390645217500441659402976244690819096191473629631197798145018920169642552463198477939699780042991235348008859204784624738734109853245883169142461589902703235423164166218137569914697361772279169939434424714472055977888275018052640513333671820745907866730035241207110833780836192192848640430801005801944115375884648500090919677350666278820219894796881479961366881779950401380265444957203328552415239146465800063737764799804830364788016338556343422880424287729171419094218911362834116263604792527555341619292365957040344318682134157016377681970353076188332581641279919959604492471677775205785998882576731247052398715939128832941271763958309101972643373849302512152519115035879955386908760526033043128422373665965894529226314409907299932780854457218559299735319110822194624825526542425934401513903033405420167367775032685419033189101924220073995207219941828148292850662037157167406170477492463951968637565889132066426885993084298809089571598177874892344816486717474343575485531686327967597764358615096192732555418578995274306427750682310185318365303989509334450581024720328111670833463280121235776333193995660733118679523350214982774757943125605924658330003973890766014212751638734279043864600039990423897542109330677513629923991024147310368812810765177690773386553057985917617549138909256199489704185042012312851684011711974592255385432558293771458035544532867009761550990121795890309472126669301891775125290175650179772950690523080394294188762926686765802272991652830861949290682571369183358859898991729391529211933273597053688913648533978494207192571110929015916310198850148111822319083739299677035858092432822790846297772330837511459010076668474442572098984540302028786647546693340123816822022433286378049609805132343145540437910110263267475089771109918554510049098462616168329500454227252258255191612392631933716772835014610953377306339098714938908006503398815697062217081762435668734918751508746517523889613552246268574462482970902029988816143564686641721739351897129594588006212776277778097775774755278460111507787497315866661010211589377337580977542277520024515782010468379143741291183371733806613823052169909938464808835412092031046983772836069854261376257369370254274622943604986547830610474192726882664099788679982036720563347207585671456433663349263093163134712930482349338089265194847928707416817941554166752985643415480863971420639288789855735537316675918073994306113650306446818726394158877566344219935998266405173519673587140448546519162618220311302959433468677734332931839594935454480239637875778106237020107263426402302965342724936615516724731943250543554198143032371128771190398585074984809236841377422426442185083930350006685999303357328234555173610261137203221208595047727375376353132386713396875132302166975426324449386468461828634237260060010121091809410209036931517238733389373686869571639809950567262310651709262839956911978596516293628483007443368810141098631220161036799662585153828450544630442229499135286748068882380512764572030018909771049948861835296669234035253563648057970622633653393087320865770365702467768618387096672799647345934174893171819192081900726394610169888396556467202180312363046391766665081188755546907215833702577084417707447629060472089019408645857799689532304735207873161333229610487546653606291366964907508769527626278794095430050681895624448212658396903982542948345419182913168386215687323520537576811656382986620155848220587698277503456999889925915086857241287149234638748118639980441445680819086355532594721399773664248804583696786705647810713791362004490568077280598358786667644879866693709635704125086646884748168221846128021199275546704652543067727830335628166035271966136787945396447764235722453444086692472450239360831114483303229120115872705154776032090765592197853582691375354231824889595172431308494628352853443680639743301650206087466630914479685400369932978053133386324596071948369709335108253048670559324194628165587650371260442444358468445212986120369200669883205936993490689228816166290263682039335010521202351155419219878484703785613404646848396086873871023655964598683962158210443998889786069926576833367456174209748827653338345915002582222682380396715289986714291432071360115418499870376690420373800129891342236841794123884606857443214677986410458564684353573829689802082694514971144093886914970071108452033519861126738813197304587493709564344665345512594449804319167744079118182811934619980378294234812874113890268823044943513214939753319696260633241477643049120753130967636946105860718835967122047113179742970595477166558670822255811862252629206309274864854181483565587108802971707659037312823477029166086676158571497202489938577414091615916465692600122094290210473751029854557851299502094936215270200610216362891488573319614370081349484068274158042023199908033672959846340204651406825504557229918789260764972406754019231553751335621132699085717244012765256761390515700479761664235628810682948260047818765557580409804136450541358916172490283263111313976537413885455350665872688390311883959278993911016093741995069558260226627788196678863163984903370552283844101602311410938924764496263109951461482248012796556041146913691985643861407392554987689010581603581975075038158845259499790853161448266632978588958199257040491355506553575142942690219892452514990462243322888647491429480426098809578126038322115539807822451504958253697333982640345911088431198004562489008278797492937680424678515039588382877152401137806684857840487214628898561709697365329486243980634093337470545900371149959736320286748364779297942552987655385545398067091283462434875465136387476076898978325318009694752453695187484838943625821634997631208660625011992577402933529356881470155389011455399974336418212917104335023364319041702564152879575607274246774022997246927306042961808458044632240658481095832334449957995054991278328882882994176258014590225467628393949697079225519031806476768167710524637835863904051681392241765732631597576438369554498954865668428206998392977788136357526951421958627399028726276640379886274141337101117951038058530166547744495472671725137250148572334224633468317872482466426325138041310499509355071904933092956194345399538423031412545014355474254377395849476908491266324107506079841415532228441292382383329829962952505248009315967624849016299731706962888026547046921193329865014446832641483795025184916846520992253916594498797752060625271070712038968034370149834628678724775969283654101799019616565440404098740597018380699149576624086502194570875615066869613088210678835762039535625452432307412623507025033546723341451989692838794193300538718094637147825240069079503991606650669236536544957525323655550608554546509956616959472993529982878354988334320113752713335476829456159041181521900316260156560163333323157353918540240681151955014092400601438452004267587493934167572067270338265116581536850166659403838693709845224861698884943040120258830586955834436566055059861598913587829173406372499140028723655910203160988055812106740696376583538912240424746577028684473063101604733380754354727177829569916511106520084627564906049952572814523851572181607845245457797474565273967245435260878003188954277441129329932198280408988235541051961895350810438317703214236115525122029321516866268258086624585959039740237031527396454288046865387311500005624706995775939611899319270609425833448537338693352556662981911180409424987314487388457074016118380942336245363205598712606740879500313471201541584859058186095761220061639283406095529123062271195956128922754358098740102923388548574292603671169863869927930267926933152605178626513107264950434690190158510784948870679499828176130094315241598941004446636678620607917428787551328927381203824974457013010796239213325276789256641018866535859225634339879013884815611098377713991264814949156262467980722269816548733847630724999094628919507060324013991898239759898466177331803896013456425351429379822662275427300937448313749709954863974006167968455422475033889568961433326251793799350572104412856334335016473210948783632251477652640924823650982107862692977426106815275003722236743475673930022718354927936795913610281447216312985172808866776187179853458798121763593381970929400065790595422068710816144777522790312440046762791487573643491480790582534997162323015386182873480592242056821907473896730219423222144038094316160556440939432486203691003906489582718039770730421108041637680978122524151273049507202590308533240763923889636564174872731735768492748034248990024312320846449852564574393082293248306247429041952421018989107091071837777190794178906680329531710864528475317691910960270604993131585750279782615168134115972457519127022001183630904007400939507945753631212486091749740445685959951951381646625696806075677702390411876800532356494694883769541497347804680147024552928828529886647905856320233744624038953177566134998364890123214820827609408053195227420916467160998235067780410807259443558641909535259346662568274687604041294360062078649296359679435612319898565817853923649366078416536397361699906770112223786902452918144901958743765929252639712487046421372266472490675330269222784132470042958070625060660483481054312323800014920687317368358226652694934755936669139274068941330897892768954093853616174582957219580465852782139007991283793279873563199935392586212823206559850128584722620752698039353763779847055879524709944953470949324791209559152054220510756178005323033937942938353274874614040044602527724123658659785817417384099443988328625471236641097500611841468264905515892628746693821766206116967582122486498251326314565669169912540048333724120131384158640338068210453620458890758518982094747140185292754260470819775364221904276947992496990390518727298384775565353208010841198873112846833880508066094284305703883954573360139458809763449229192646290998535985042739855405248816408351282939185107474774137721907844360880562600271716725522527418195562304487190350556892602077104008878641822192234459994453371663396652674731249166701600289567786529869662368265404352103361833360373943623925352543032904374857421655114387102847768022062459699276341151926775664910987122102404701011223928770338008735874754034323090410910186617955941545418825062681357751155023378745729374236941017105612014419890180434340361930027239820799277621844601679100532700462129986711153373714827699368769739076096538949566070093805031348776486237284074337766394440825070667777263024696463692028052896081950720593095697186842185706293624893530962428473731765533578872066973304650719405572422171210735612294182583305507650506162960763521229725554549518472956698997141790298076453477512907269726662142227987790197931399927289213508475202395927211937631766578758740452601890631505009210811426217876780043723875089476851587917417977475784325162668290501940723845860195482012444036288009864825888532146297090565579228044719858205495352258260772174947831320655546698895633034000628584695258913993781826418832917001274939312954480908323474655670999422670929336283412819289566559561174048597123568415854140304590143992150442757670953638222565081769453890774411487182939481552173990685688817668190053616115417076260661082616782083137138054250401348978011125908532056124998709046724793936566734967348692238100134591986479664798149830016468600135571497013477889005807094653972882299879729430681779681737806340116476718938070322513368804136213220845822283312868337960955267628859489202502619624084955472645479565416807739144978875611593965523902002294791281766230564250800580130840072954479181490116274831987266291101693714150230611197729779122389455045764626002616483227819519228445636319810767003429615640715926276307190309813968933612423840905563560297246186295412703373893860102694751576480417392640672376663034002557981687335285160684365536569868145410245589418554964238351790140358614204402861196850381861332062301863379214953163113799710916828583807288736528557952792297813556717214577144342044060721889829711080893528368063310071754810968498210970460037358407354922705651204338849728595027929268933993220061699680796337086734870888705403531868696977830539014383971313355262189739259027942823965363608182407957286798652422883743996788100474142826374055864496336148540201585911003048365804514330822092093049533856555161104763699595570767147656842094708349459973986033378778147172992556679122253467297594393400623413860850857918788915118382013994864292677590152262072261647168671545680437418802647139193449954329218370214318354216577876066859680597042507726397108092647827351804349070947008357204573534660336766416147396575856680309449942740223208522716121684238915232786451619938746239656260173026189700480267808545284766232720975705094066574555382347924276945866996817329508150985203661737627140715993106718735487952288257694943150949823522150317498726323642580998097566722910264975952012668257488329841992005403620797739452080000513292694843721427784312745411177163050897238097289005542598306281391133520333982845178776004528965035048888900929099725660199690018148554684429523931230050328952340953526635537409183574131967099375830000345061181078733555023952187718351589673418938663288569057515959836573325529493171419599886436913471753099206507888242306428977627075432828872479351813138950970843067193256476489337848972258014678100905107344361555581234999060664109994461489793608691294603173738031298028724670260458622740040993856152787008090221281590135833900709780117611129466081672408430480565623973993669206115627169371230214463678632248246633910996930546874084559050888562691804829899066063542823713430821510529238002926712773873365457964256159934958949242960913112006715903241506515592856813713036986141694729354862545446244495170264615498324234191688214112726916927612121382824105602591001382290307679576607640161890198360230669580126813676261476165464150671575587379792197030944684894868438611869562246523672479142432612892901510515791060719652805646472106000013115868352471138868320829680190927868183994219050546830417263714467459530979918649920436425137926288377423088311984960510085805708433908282611290286371764354668720929050795060469048965922312929351462326225577409052687555205151930313704350612418222292337106976129474854079766672885123470068568628217623752298965625470291391232238438894983969440853913543882190270055222663902876784425576016252179301232438775346152919044828864234458819715329770848877351652912654355607925996068262083362447147062008372561012697433599082906594685552524443518098586499881727471682716475504432481121723397975576060844994482054836144205948478529775240278307419247668960411925431622345354049441575580316654648960820481878706590048567988777366576170553453518377861125155187256691212757541317137432287171901379598504015674486811995200364081697934464110987373207472326942974450900117296442774681089734392233558922544111841574345508493042421033057945480101120456187214178205936979411084325542022145539190118920868873466660701445939419850590815550393938395823390761387587027778571174256146913560371356188878442411926538037917096332271696452025899321262192892212374131960415597710584337800317538974881337365871445750326902271347278968256606460322984576679075205331478485941580047780155429496283443016262412329945439764830065671433007408730374786537418111495095557531037675166856940025480669243169722985099447493326980279913612182657554846825527421686245001223091311500660411114996131666935089867079998446175227010950849493476630782118678213856275264282448211983929877338549090803784946747873168967343490271319287799537031538381722115080089750464653284025572174618529946723942990576320904009010466850545832351959468417592605898162336035939138403065261883714594995821387694908930234851222758776519391850605768796963450673610259487516466543240077906987781130253031919662377618000815089375671520287872391765743009569496785093704332447329382303667590070251102550152441660926790405592981000636268719846125659287233865618421216095126371864905723352212608202428899006734395624897043422082685357013703427613232661922106454457133013700736538727011755267756421217773182812250570614843160160908601083147536531671457685250075896245255960173486903798021144724276708149255254335880095495369472655769601347722821370779113685880073176445951739845379758559962453034416249145396513360016069662119550707799205871733131283701076084659562215135708387241203481919035017863008558002688572059835073792966842772689589336446710786461290251507573742121466788995048515937769843901959082168291722786366215411660356132764890252363805147385316665001478902301919873953423749074193026268764805570568995974615094409535697953488553093253521591003843811315862549957727145312399616763500202649638117588373408523353120181923143805398748971472398731994262064316722664487702005958441450447043782105307751620779024430835947978690804037752233960761302702419528030262004205844718068100772853354901463166854474766793320637966849860561894902867007390350371077709682701698333850080830067832508046048562978565956565846243753795778766537556155982877770613228152811846876129554430236509339019313368292001443552647372748041942759089456518368245571094948026331013888431694314318863561205162223211604477308581219230191272254490708273038730915227452920612718297119401349731200403988174392452554498006277739357744577290508387461019041070116869566979928579938177472608262052489745937317396221740726301452680014386268020124963976065126137503643237651788312944217363734060017836445332745035889443217604915537611173275935324422456455578322809664072714514779390983716019944785354081922519887576968909104367495359598749920258855626484380726011155252425933706249545822155908438333237039955470391387285792242344561634228250189706499361904156924663682797515647892993561804146912331768785856285232559402075830129778423969981678596945469489391215825863322498523758384425380534170299649881154754360461575357382240455462856898547763360680647742008543708778583647298206712320350291363149759561011296221482692581761042963932936033041305988284424251114994221336725365343420353055496399410399535475149983657366285539036725495188745628215684196508505740661779505494479969350184337392974021158993041201636622881834172321673628300824821507502895466030244406401814017248062408588726317589026915523728644014243995541661550382291336033530909921549690404437263073584587213155554905473289738268386427380390757476436356490359785810569993189833173058912418662616728706677685235920460100024374579106204545984571835746786853352901887919885983546279617005349948836743965274041150592599275598197897416124112491625980183172647069091239038720988388596628938041869128024583367616201412024913450053433658695241183206945221663248183944762972642899754742071589146968432825117288330441592629356866562597830029176298605038204541492929691958040485448979126455417087487382122128167215252010670213625401318352127317084035905869212860021613751953656661455005290242645489752079523578645829574988707836487383265425610970144825126502313607830109970107242388586720269214149404780127229939497792822166163235719312126135074685791020164657543329408643693695511653452153734550676795018555670021023911525348106901160274635906596343085018063358555799336674066975704208242759202153979422689894187370701943340242248902948435538649728017103477602486982045149847699351678767756732558345307523848901208409562651637807902927125396966447258806108257974304404127163935150285748075116364602418197733594238883540179213705957890587833568127721590755901911886119923699531194439579292685496851200496625232684723660718362534794124176184805526702874146122262841689454334738613691834821778591515181898851711950040714906186932887786466464368260737697919955054647520853867775892973474031847794092254058688402416676750240176094277828852542969890291788749665406214051412286141441886184032465997625799538088766895488621415480694005840679216788404429858389318310905023815834133343141106833304453768560474018664416189798141926173670784218144426995329130025975595807830072708505762943755875174385592026452793649033794054744223748152951007293264042337783368350937337780816703670223972241752913053370140276724149151355196850115597408555495971043246274161919683799129932942306188029836771428741742335589875707703472931734533392868611809930369501611746009551239494134534890740479503470358807256662809389492565909976861513377168095548488469261215066892677786991446427468061888549345426692000742986212062276065625786037303222450358847380283072633428468662855773278339561915103548246049593440782910154675644362418426030388944599415364970396967341355286709868092338484133597760741699202438735710134638122120009427397296227021484929468599500353064939434634904117286435558885186587830466985586080037302095121840842797928024283844117359341276057345732072383237267625826240907231692135205631744370446269034433358220591994452180233161848231727843869783467096559815477407905141056971563924534609439321482971059739776271232562313158086173857599501255541557622016719976947462251638854908230387065027528596859356816472104550710532252842421794733804322062261710560465110214640040260902634991503138235353542470301178801532385737180289463503639047437181957921786641419618578683546154096446014071217922319606562355584598873736148084019941801772178194697597183820279340383313051205820584154596084450128400909516979005130911516928979766637770072519241262875964038207387604931053895353900963175006621391515832313720356787520475460654497917797255254689551526142805948776320515677961380310833814282706297687324852534851327586984605101921740889011577622650133221637184263006809043200339653304550121498543274529875137465366148685886360729369579188941638685193739921308909147925533737190093689106046394913637162054314683260687216827768611489399722269489553876099393241005192540141027763048587704548789856306976649511504657567082275696196268587423902780813686312257098756063742962502520259174977546756672053675124916456958746960407431929917797496275643899376929567043669522980583014322358191338433438508008768480681397327948369831086673199425014000034817578913585268835712700329672149706463236521158443430057489109900417308959454509551924489949021129948032703689963207582086614869429635357638037431472752944419632133445174943846511961068205537244731595979682266542917759223625276880881078502143547328855667464076448843486668727885330683529115261801646176626470190550703632589985488284237485096220201261113899403028240130313424604530207735206985252453929478660341135691284498749045058613497865572920323352249565464517760081098547301415255396870959298688682691585632777188251539826154768001741068291327108946559157256578751592536347593305694681928672892727310761821936253457479712481604953971966546817568182442149525345907265598460779012641715293621768995143673850908203860080321833168751820505497246521420880466810521743846425201124722735545736017153179097387218881178259712281885634826748515221329381344934849273584652738559930303862971845982220377132041244821748665783498632415867373829850488126465016460927117643684100279177422419211883465081549380928570321411793823269984030942632160731060327205152796549086626088312045578754651601700000441748922721247528493316004979547231695603158069887960838105000488478886450083244216370966812816771645862956564037556764254159599158184199133335856690638561234264348453357817026644581659855944856489926285464913894168279625170530292431838884213220450894346092899841525564724492427754354555133294404229181520346166626478426912492841945542899029432904700246460493240967639772342113626393200927617132619216404631617544590566536898001107104729861106203209822050138049237147171777498129560024047514461604986369431614808668945469413055917235813058430265503756070712195690269944662710179963962673565370555442635850978939119894813311997405570472393729791115337441597764700159929112059523039425807511568137485223827600954659591267300072000532632968062194750842953422477234960667250581429998054963172681287818550274874665997450562638484465985431888238287064728876366836581599213179149294489179173231477702962955400488837796295254040326537574019703655595034015140207443126234283319227036404335850783951317937599317835399806780880694812263500368708133809108046466723990272263685625035532823312275437558010998063601033500500966321940801257532143747995380925192768320424044982569969520229067315498500135902488962631524751257690834615750637119778736714715131324952809580545878072022189896144767999741158464808801083967020314655622542417940111123091215269536738111900925643826548930489305993393200797978283742469051946210612137822359808400167135508527517659308424514945251236128294711714569629867686362708842170032188393927711413177807191364373270000398730880913677813226845344352056593194361117265514645056980713938073459077195257075427986859902607689911459491245396821741212972821859296327252230349043477456480951215683826501979057999016774812121413533985797319295808459617140133475791091095943029119569028087262198340254553119203564013593049903971239013995262556570421878449356807202444380688149435280440976704408378480437442474215779703982520260682452696745058973618359974312871424247528407641798267106933025346202916119808498528917951711952693772110199341379600237320465525195311736327887601280964641236910004990060155859436026725065834005405557035220750254346829900732001299769501245073347723239125267392505706225446559899125058058393059586287189775328784878684445236839557861427946477308798080251565171686036968725467570685686178157156705058852259185277394837587105375392181587699964939839183015931437729699555270766116956892489530656050930035988768303542491663526792087919510839301678447916420512575787123682395263890290774856043063738700644551751799248207973596532697145295512364026561496996566149724406570137770987003488500565539509186783265911598004486766343206529688616786561070026820635024824878139057306473225942208570529120843201693938506988405084117481225534587583650328742533973752367880959967247027575007625459509286222044802698811318897135049939273264844133095956281886499568578999296326215728713073435001273640062442250345630623796181019038297951572964376010722409806142525355824120014818458913873626940345508088890769795161052468210879226853706939168484723732947991233316156603987043841996890353729719234886919233730826892851407352823566648369544526265244342288513619524872645942293023760004610857534755312770245384619617658576451151713151715688497327744785291119938011962050341954320365111395102431628988820057392908373223796795591289571395525285827260936824039768117431518492537456934947192233886466688193727189065204374420277110340573002991772825366885945951174626126784042574764652510664025318835028618220807014086056405423646847227705890036506914157601538739516683230724307739055333914854036548393319567552215215080027012729026908129368071992611002659458885800518972699072535823148832711128279721498785237312999185106100556436967568070496650563650331564676266305032382411435185232116349674773092855177789413162399816014873539152907593061399112447728481569008261196862908421076595214969266599477777122915396689264202831791421874899664497238423733066214270623602382614025975033564199561690054095096868820873685339088036007794391324848942982902112215652795354057172831586009208478707096572526746746533502481139859044653369599256430184046214056764434853696591697027572739374285284282580515941205468684668078253601400073068100108727410080860953245242233298932526053604568724936324717204209461209872037715421717772711664956277327618715345766847309764522012837954112009354419604974653397913844854200644573286319153134849828038627351987705589291687032154354042098237980353528283175617230055598956900559763021010899908999956389771684453798860063208762076918577305225642530855821500009552492814401498669697856102400378028668203088006443264611940303291434310277298730503327578741405437592988343782723955153686518309065318823963131425189376276907045347671735146594695120809123963174756374394084027428238605769035901647110737259666100892016835745829291322642278975417616192871357596670549907101433090590634005603463454178673725814090318388347713631615084436820207130868895294712446418280002115008753438902595569395204985749751870511173301249162392992685499574409774203223063312334098179287660661657710353056831808541438793757854746338271731172664665456466992363377370158051247937595088515028734593949605804248503485234519014917647563727409968002629709853054372015799148949936746105247056507670476279234996373324121730080776447724173969717807514143580806112829990983199931316079543866020465990398803603091355588085017864590700488270602603580551503737238274464887522247625153163816046488673894974136364358059529140964861190337432701498879191438056277376709186441345131370250719785700151773537127908876151293051756647476833166250138807785580647878923710889246169305965422869290672987178804802615672289653675584263894791778822575413421792964585794441499675720470119040711743964812621763456131307969412040301817556521785690489069947615225446898624174697040480433991226198607413204163949660228786932721659138162185297811809051034083085739682453094005219629496403604553004118061431015324414637583043600422315239659916543620573226033361628044753756777004058118959528899974456346035615206037318352862646197507172024644942829411492287460898820882195487451726996286773174598698467184376923097906045876662045675571874071168178907190912986914182621631286566403831516936943971670106353650543884766184794663388956123029198641219306381006494300311706014450818573033659910181912802654687948787983862351111421223990893112089128755016938939789800642230775552677508788399978075347491028336861579270076760528109417145177252180155975885817925385047669958855309010329119833889611038662617852744682341592824203514264674492390646074446026119470890034008415868500804250143964119122253898218239957577346820595820731488914056266192461096530089429362976794567100801019635930367205232438009833984547574139688515738286424482907629640086484423868220999574797409213454989139567765577177853349968933016174394426054486735272229643569084651913278619247412963188210164001110324302531610852162439103484953756709921007167796997723913283244490255884347243671659242653974467076342572797111255425024936355300779268243146032902967328459111914944442621446177253967732515877974144467839765363943993634795716598223607408456016398675918322514804926317162472179992085304937297444611481421802768569078515159629442157665955407986357112861489976895934167242328950070422290690301386158368434328956382783682102462998893078449589786140591099376130267852772805534754677377040858758602729853824514178000506211639426256606223288609054262191463821976507897279025580901989599690528177211546112117623995529337737769966456128852767337110203550609105647310571687799404939644401998855683839653420140678605000315252618004310508182719578069253383196060066680170587742130106766740935144292080062014480606647731885647553516898953847885953504797018987845729270848396561675231835994060225273208203325106779681745725626141367883845565030632583038326025258650919434341747037718588316233543545658645459493583544398560597658098366991194897306005131358504903460081573506579141431507243979740697134119296163172998444583803160732406394119821545797172947119544346770649970316183741916795598166801367997461167992389534727121570677024837987274533945056381099664794458285486881604351775206179964965985827550283086565995029774463154876362138419013501868617204752841337677052966463060547588516552867855481158717722870500524179703308048183116883371229289880408228020570642306017152455670883329545890943685152574032531708555170889067641034461343829157699143117000043297723579610540991795620662567008689709824052227614241478204066521924732964135420440278696320335038534624336672745428751412416730043488585534713870503471954058532993415245471561703770145923787801305317435786202709057494832678674052056948631318381826597625697868221451313630855740932614278997521044005488669291075395891619887341174877805286398060559821693567428128241490498925873945246877050520958810773820042223190194347551933170474876553951435840834348241057044988050129103229230277955123979465960001101325609872900129906068901033931978520922338381079664842364175954797835845231702019626294712915121751842150546914638357718861009746637438807106841265710072193932483091510912942344449003937093177910216533630834242711953488729612398991440513194513156047105882409456750243560674480344881654045167590100950561090939216924843399588513168309153003815229920658581077289155838990911304885008717099257867808853722416896211563442911284470973524932063248281882250885665193790755482201540890386072637363240212197058703501740401955753763393885673532659928539196918904761586778445093249001149530302006599392393333952093411249790002717594429417935267576250158961399587543922969757605865479672866389831332658713936558318948469508576911684487194839957963790603905192754813791881712114049609654771195858091011684267539051889308229995091293403579263176174352278783450535614637041546093568772211511239023957650385689091229320718038493484641019608066307040720039020347180215083286411698865997058424462102405210837512812453913720037527740268794731799821815206326094338155130324241964251542246725255272044968269661640974894254634247047010150204888852735739446343036276472443371346587634666804410813978346658279039226906976926677363988341308475538977164565494712340154213753475261194929130368472928249901392401028626156140532311302387173105563429702101675296475480270162678690831054972448019400467365160774670275726044103075853913265220390826291724751236312107394388516758682497634642333312411072250634960767532213577120135141215033629233008170366874210038163007800545040852316536086168417597677816267969359130943201930538648472219770447877804585759189492206248558156702238153649690753880182499530519076277784518091231525084047003587613884019878245474515461098117767626352986062271251199569899496888164405935188810544598062343405848682848859815679277411741113421503724398435096199678452551382051214551252524330683853486067966881557430764713786482262341709394277937795706695645223216933859223527178417635176296061355366807209191765040056174806879855272429146021439576727570080923945888489943464922103390429231678434664178846274314564149182483900652432441409251757377647139875498558961656592275042239589514748909158753429731891444457139275498093556783682991610618454077895775431389531361012643843880725776349185977188991186333906927178425254655025923869581810090870135173346953978906146256348101998162332528286353020643480683173142466509372925658789311501104701940243557514218612854251184835030905804306791294958659582592281769803049018362533121290099492581465519900211655293602879132322596811541235183060009450374912283488361142384604844272793268497400899144148725493647730189364362615024205420748258362194379737927972457194273972278917542646238683956219102842773325347938648822536697026589293980826402535054253831716101102734767626926118118667365605747877858666132436242150598549085974939226346991266037588103679603699756759255214935870171105450132696482465408295079474614118944150143380699973304962424080234441834263327328295633028862325782684438770083355936012225654335107271916551428621753491442367219431115121957558142536406972319378752303363158524383565777024526013281845772828681834114316753664029930714375858305797049057568569219875911459243376681607310372653560262516099746123670670238950676544603585892450996682157663780981516920550227018693236930889160441136484550084766197797188666277595469359823541547358076438382659557238974437698586531329633358219409021512578352462263336358597184697511546756131040647123812331831208965558318519818859615502285066885624793659902057118405873282494054819626094742043755767997877211941218622830669533051478530612915106356205966972659901182896762090915715093848584435640197580723833119712907480548737149517892746300317373203210359310825419786446611253003359574989996643719443468522421656602600709781703216834348849928116317081853568931827080005811873704722431841743527057287853229447437405330318986240508230771010211437667472705287863304747075977690165664912728677920290767740907029072571226859585867601873176652208922667432889081589478762244995704209020117111441150821260229920883020793312403154869689426458680340150754942615365298882334522266916272341550576585436284577012376622340118952223843755647025744928371885696168564351008735250939542594033677965758251138274709841948233279031000897526600482522606897006488939169832457024577972862241690031422640276568780024705198804182899233681636732000870725990487449957916372830916317259599996990394773977714579528070826732741913859345014711750877961636656017284383594109880273130874480557151190365700219564485238304699296277488809886494067645469321750194481980850981898473046205299495178270405481193909203503022945634911825905396653561239286378849976666761256358355091935467679093035761868214618305971241008122671611949796799442240928953728254102229731817096544858778009425188812314727726994133240135402765289674948640536209348551472914778938342812859000753296370654483340310086566789930196772733940478926447680092879822248529114313313054829295386512208216911111315073498052980870482621748683327080730552497035482332601392114950819124803915824262491438166338748951377633918518588913508812684939128170081365252702581357025470660225406861624175278677508968495964680835676829787189735411451768257381269044922793323758718025536503021918073924947411513149140523158943985644088801272854045239480664677675009639511691621010750200174650765834382724231232089843416635458894875957569934301937313146796281161640566545440739296040964180087770865856658749336648137923932025134167856658661599273884635730083773240880264444929860898324180193867000447264101966862334080205155364893417333323202382350629232863829850017219201400403489453264448922265143479577310306630606564982946474183860336110938088246458765403915853695652095947235465269574272855634015225572523502095508977970217247254814186209347031391136448112941612289814843851918338464354344819518240362812411513560021652660279079540672693174584936419129403353716607266708061061677213805254421039126582043913077815668769115297490160466595764256142529647285832451208743792950210114439178512429429785341860569530071504216738033589886528329210870028621935578905620235296460166061169401914943485919964989253203382002372504969462055637636576003868668242259999959306260376355409218359694148218810740262624966900086648286146625564512419052094540798817657675138160867286223977256451883132733738955538783546340436037364636870770194153119180065401993672911087773118811211309204806591969982997447120815129052661830717164943136306082910660749324852287994051413459342427007912715560149470861145449188110588603585121600561069830038522817692656435883136874175969894447942055555515782131343455276649559057654809884179789800118922413402157596831292679042563051661127490654799394546434238303842817872407389844464724045819891619785271047452577629465807977466754278140357844638134211618576536646096484385023463791839405447759182352582394340828629829715974634346549809039002111991908686038761152521648593001896189289650660968945268710200547353634581847481375916695480102852800446989578517555667942316780205644008575121958925859984737232406754896432670670161871729761879195185810279389686154821044118765355148962427525724786973066201878931305838193619054335567472430249933310904002047489753033289558254650376081126608233180149746549337938827279821820183451798793696812711764455534855178668995619196034882566620978508661534799816111414497923689196772414855681533782332742444079240846429317179660606694921913475614572433067778649899015623496926275214710881324951079886713384261010139035102397909001046213264349681678908674089175962021002546922725304398079852916608442894744564316461821931979275799536377950974712067245215864902025303172882898412573732147742462164264550261319704301054502834022717952975711593919211145407633235629638199278519615780191346384490971976289915294549479415941032192031139976157816844680102197907713190810987942052384388967632151615614591263281417653853510663495121517940701771732872391128451529298141391717274978917218681146906063752898286394827011978209953847983152896595443795280333839032734754005267404240440363031687980248058643681500982417883669607503060120741449709837162492167262668114093642979914605130231124805914540465555754272487635935151315101697798198858857341576954997496024526142909090200074823630288565898173544353887368753386082911030287609547858398306988934223547310833920839903815436859489290319940969227641904712928185665035995698149405958333719152659627165161283621421505996007370700617292933051645989656904967338356183535089647624851192897840688750210438153801814686799998215813460396974560888670133145440445389231670746101551885102741201756419001833077354447041492046051143428097367163131229576920951621551995608530574982479412888625199308581350666006457290120041032584127551862855751723401681722651168277047551669999014159513262324419324270338386818557158404603146601918757932845503108732247559615283776225431682683386169717108574960336200688875737105212431801991097206569161702694839315897123970608918052313113417115804110469789363078882411068723580185040648819720614154452644569590818337900922169084946664916935038389353658760924940739476586975242623105804625330169585920447452222942004238201066076315717715503647178590524755769578484408783226224508746185759766310715022757767963564609084226737703928412399934205153301589726880882608978813014617423636074506177720204328107681718180705043921844281085401051473598905223783057974145984047459802812537491062160947772233645988041076550451977884652579916938024637832778040773398703520939493333628504474767708289009609283614979925892710176027850167795476678965536022376164001515596509924509279468282078230324464992837506020076959983782545741331684198006939139652071319936402609967686704233053739605033190878475312544843344913350758432085823439168323662043535995711877197546460957686396245435371926347970608205136466261058068767891726091888070869446750860949251112321645788722515362162461695669966547454155971831651590738994379463416437456498965524979663919906265911192280664891632384429189033097452350398835973124175736511689957367181537301808157113645298788677042404525146461263681114413264539931412417008577320953286782373631494250059987006098578826921582561603441015707493984947167336910035230455109145047352195937173518653541971336960315818918004422730579245888071758303271011085869869564355201487316933357326518431501327544144990024519835448463376195211524865922362324387899017127625777507293048406174628920619362798687982805264797730269529168835164822210943930873180182061130067723208770175108661334614964029400261371321143339076664847939669047990641800605682794469601173902867856116890562809893209621046747487722985551652641179517944773989045807402101361755989417914624105012967273987848278179466214258013640184764270070798440214672012814659147069369747209886529987534986204186355622616857452434083479191899977435628426709635395979540493334244287123050152103599499988066287429716009815555872844725346924652025196989866787162531988984945330961592713430816253881124872313359554898167327398376724633798508567411653984503752010055366935456239811632356676593428820508330870238853435116284638196883339624169817332268779184642534063230215273408837246920747093342805674283619920557257585509507108347632479578778438737358347213099778575276560312479704044763349888014928448479148743416126088445279889330185276951913728726557580489163653277268813023295831790975290289676504048182433730646380521850874195304943189347044401736494782005803251684203041098434759780740517119225521312538920565009495631448483723165018354531104576321184877744997142232044393394835756906237303667642502875561052258822968042098336839820078675194419774898210521832508537237776417520819811988371546224370868156439049735264020960745716473401049687475411156979142050179599980994983657517517694598752814527969241650784723573677606843701007076242497578942795640011571277827048043710629806392070763923923912490679824545993758227781626415874539429731308715214182912423365637760890300388816095651688009405176708448108198114395781555868240881616497013592291447727314465168488825387528551502906033902489135995680871646894691253795420394351552251561259997144976556549823040293530615542499026823394835111745089064211468294713220363368161285947039214586557072220200705387015543003859061790468398832620387535365195425489593351247735936006941427532536177206126044353846767695218694077990314638008908391557064773707831797683261998404263039088859794340453398338999940754636706142580537065854968816174390088474584608400503042822284703282979173449617410517109733617014463821518137575805919029615289926631363049267461474490617874525976879847283121529826833406368608323350155637344198569318627760597824821068996290995828701293772089931721454356912202199788879963681245111045146513054350282897030903581526742854914718360889148220787256340444818071951586728386593247545410022569191961050126944749920401792556146604229860911460814299465892077843979405396186904873532805928784640877067924259149767393913399996325130677121690757909269639360252110096127910920347580382452439829074347787950163184833191699867141698669435779247410836831224895259195436893591744942340407074258404966243235019109637031929531788166034410550605645515717964470711004438307684028282787710347970949555354350935299473739890087114997009973822350925359504469500040951070904820002541319377016232124178381343509349876714974585242734759734822338103696874100006745829507563718501945207913148267084111930548005863091712004404606129213604107675132395413651201640757035998318946308281661636608887266860376840812935298616778652257199091993825113175623901408191962760201314569613593498240639377855985123108726390773552372706033242535519241538786147038553396324449997065761809597572213214751435230458577844204551407785670774872695003445796593730624840427721357763859019602752287226905967368838859489798299627885792646234382189890790002881290149351072545900393919390209794457303579624211828197568017822449229836163302565656787548080290360674627006861570271624850669721769467653001500730848106924261960567383903107929651651764098372696789686071852211136666241398938757258938618320100357410895499390128213033213281874744689934788442033174177397336927664531675452017036914698537299274078668391395868546000311063290510201708979602620598067309229933116992399715028425880012476591059644705614726834082361203967087631472582424264668333562159787298788662429337511303208704798660834586285645871006450162288780979905556560078649875972265861506712885191058565096432381057021265410055868200917627690432134070429649036369733889242581617514861143342749218773910153973690887617804597203343855216265998750877530994228737313541137568705323590811596973886560612347046843113267519865253301223870139614856079897248351415910503913540678714802302204610938966894470081256300549334618988071395900819398127086354578260551711709332957943121860310859435707773324109285436387725968835493652144622259590152395436860909895204869812586896415661746493693535579323930186968319060718650812992714044942742915596506277519542777073409986553557234072658229204572758612436440618127672122047057769818229212673371356865332592895989899441775774163743333061343557393795698891459375639593158789700157632047561086648907673863534253848769355636338954576235270821013547812473000157796921390269802011927619903303789627889260922069639277989297039047382149245456987408802120631477518566201355240036047402133077268697446471023684161239383676000154586630734679655937200708376684818084591232194572433344427638921101213126764187374220697353194331640402715792322178447406775521778655902938974799913886307954521069187309999965060852179401090545519407367319450263322068993732470129453590905777059094794794345065959139046213214797761354596951309332109900865306497141644063238000741058051229651384390941672389818726918421124496387095201793754221061672590971538830147020090366708169042730150043026741775137028793457608703207562749438387594437158162085791895907999840530701122468080892713000204193171015614322592361715207500585051683891205685523331973969194317301227226567235926344208889176846676794125126464986730023325563118043138104823337338266789014558799851958933907026736880613758659711190702560579274098031924272083230672677092868591109140728156073053819323647276199901954893665801508494231708099081703907005496179233134098862701671535216559916311450070013741903340660620659772164534355786227882681192736576013396799775286830994316579381172256460990458773740801648585002661797716070808966865161490150505634162995298311405769062546223257780430869795471737651916542596411343974168234944856650486330802482789692531931371027782798570748994935164624500882652520934604461587283557123962024292304894741545687294283323041877338462286631281627216487182630012425897627523037051879840170178133597445651243512641911629776262188797151053915090284952874649481452774711993704550402255984241898295109129706635600962504112427779526611303730963053053275766864680590406627348013766684517722034443527821090220215310749715837646492710021212775542692641164152224436510798587919145822443410414196794636541546924655050160541695485154260174354644298908108876711894021056067168530572208606933351461480545019586764154423398647007721338023075838207830243389450875256596047946043759731903945961072058696032011490795684273511950857070187840495408429745605606485787011922948878784603296514994334120382042730810401910790923138810607382320220937183479114291467254728232106975855682810686600003639014663980819939490337063627517129451874761111577533141847296420329350251552728548029137066157361612958906291596631421132389912620630643895265432244244318680336134500659087002811526513314401964548774251234679590348260182464919861229139729158712492779485252368586603896033761939528126023378832841115090266144557997836529629814171647875368813598546303415505626465812429613620275335908182786446743732315673861754706594416031359810590152904765941326501053008668439607975137109998728504304887783910070405844433516533342833875598811312232370098579651972460071209175384113947513136475616051740765084812338791389580817482634546664650947228125815357611076702952565700069996648369469291571008957163582736007637575065534757106995073493395083737528265342651290823759257090660360139174180316931144252583446774835843734187559104142150771616022557045028647070649223943384853432275176411511782469982572392448571399940868017591477388956311930756931711125453950623047318932205719071719055145549962847653360383049400665363637173727907853966400717732326561734626216162473527975606331080251390504797655344647615798204423515309621385999038074865977365150248873121106999397617042978225953927401205323409997103722855901080055996456160933814090929458247464318804225690985878473586666048298842318151447937531460790707863556222031967358705051621983835487218742168131931936772702831825219098507242792610595859655610084939739487742285438534278677329649324665101870014459731944370131427193227864163901545803611550974015114832161180967627626202213802366763195940271721831354974096747416817232727455726257053405031360163635416360256095997245508817001265070315363157877593824443349332559809952038958131748639439131417251955543737286273977273428129218516224027468845881667702880149551286536527706292150264474458394588827941710655449827941085586073566952105713737357194632065708822334473747293384139220068943807280539145074628570981671464427288856310765341968148977484022570491531066357947995990632591352284191305495293095971967807679725372375193727628729034459954229042809284592770824626269172027204450749217614572186378709349624060695268655212460309138612969334274121266441956923311602153091368670038205486479733551854908909904626990698629939641619267579951939336758265854319559902239581664519016276965086122942567302272081799388577969519220986520872604116623978562529811686472387140418410947586320219694509117851362657912410001284466716223178915124069307485052444802983421992752417918734474505253340045309086223051650679508805687400919093633896823927482286688179453801494762220412195790105186546530831032567456461652914574226612928000363399821542047885994554050354911751651703965535900559195566116569089182139122816924998439186646325058837703893863400624241575263041234280964140870419457031053430039856051969553377275534256872724476398103767718808033370113578328563654632491311170019156756929488390095810855113204548374865002305391265202762635943975742970234547633802929664223938803065708822803921547259556581285730382828953404878165563803650328852074374038043506114223116921059388514960616680646736239810554495844496253466560409687203871679861661450748862671994183114991456313037695276493477733711142506208889177941432395715336188030430123985804392894816923152817564025027199169735072097663718701434700164900652492489147055447221320288410726432196739209592116880304774757179628606763026968782995249183897129616170112975203445440707281307194542577379421838273164484124684347324165203262067358368672063465353366880150545351579191008492200389609773285781251274754616417395185143579695929092731540183982405736969397360661641319430736428431545762968072783324991072325568225555147514251416070907606769091756659060831840018451853857047556949923227987052814675281269174961576371263528784917773966461545733215325374923825085030037976948025771637200512227591077389020086452011615588524881745337496831282187962293228935121660743582191802886256078331913642466984179777593421068603001606323264154859109190288121942999697999826359764632577136353263998709851442738130753640073451256587034613442271898524668270267901386676340672375383312800788621672185373511192660457415468501546230661938723952795769678159276135363474821957928212160690374830417780188880330753475782486065532023136096343347448185252038609359658776134390971056353267542399338595939516723757596542064552400139373691533004991738092929131898020019002877363591793457368896127272042929228198713362055804285810300200637829195944905202797003712953199959445480720845301947505505783273650791682173208396463909134384123641590115889651518411943563408811285862831153049041522384716474527784228218065874075650008634328276895648715360596523867148745531146099613611088030221789902194279277874747820071389784355000486933452051450941097539866736885517716880833993628635523731906971588896659331263464434877841490981069940354833467875991753722881214447895729690801646261772839571686410053315787393822646380486499809457335721405143697043001644556482013848746265166084208399873332938803516979681729488182249719126360548286414987503903113094492482285250980670629080204079332750947201323485501241698944740455031545864802877363347248716902350376031191994487873869804222723613981663724622125654674668314824322614148267625027385859032540271431366062202736160224416416124335254859408252394101614228615196570877885527470181816792960813177354418126051083630413194971375280853199653174391181973446444931343480703752052985535944397733463044131215443943154223701209682635929196399200517605152835623642267945152205842313764756707053974874611769721544508980917045063233365224224482959166626015954601215525840046123832019055484365214289452956307187497217350254896068049581241910630525086308159958687416992750232303828168188375638427569189683855505770234842009261867939442037215853329399504480044790610042931121490062451988041156582439043674625184864944501764285284126536073752188030359257715778867833872617412540065810200525284477908026869107241803937396532069200479188212025674121413262342327748355984928327489011224075895767787785980551629400747709802415455510741987016135163486139046653287565762313655135991922332240201324867196076083627227919118017560969006744055789564601727330180415141137595925495381017610404309195118389320366363763672535753064163523058079914017397160101907856948882738777240916388818580017923638074927531657059460249409528836794450302715019118885365340346594713889188941594104372958697947344396857883277375642087790624993535714103949397964190243618336147043304157089104567227267708750794236592825539906354562209382411032097283909300320980138550928768711434861471968494640652095202553271200823417017936672998920964665877169066655453824310908614836327062896936538617878138636914197180061538949222950537309509500281033179089932445126810047207809887660332988084783425930284995046035792862607064027827703262095692198697834042951339868798090347747930120631949648939521517486529830542281855326013599605758617870253881747903236990415214269732188342902083443326395577352862095081101948202587391448344089026822999471988476260154391962299090284908394679843886446379825944538171672264886998575337083069348759775983431908272682718214461463352904845161157091449325881631470492400563307731722030831487643098457159253558557419957324836946964000601460356825763243293192863926472502700782332712915384599815662447550060478660175076238160253780247467152249594744391019299187094601887060525437290138904438511918788520780261961706496787892040893173150789135922672324778262572185001351340032665552584757755310489141246063599623171773050692017390450273380542862925424890062004985862797761974118468185795679061046875258539894726175224300041784407029923280073500533493483419325502600172663412834109509807168277763644890392066296532920389143328157921603645008759199018536719676902378505453099742220606050054585957148216336842586144064228235832914947466825954073979361553785655503751705593778501317126916703844430495480484863603793704120200825580695566924367331006563228973913964529759868741155711702064294927575291204160413971902022881578210866777371271028995693062779384578744543962316820018056667905774377363894693937546305073408398777612628341480867974994813699326477014964843738908810195756754992476553585675792048831914962390947928916539827678773722814141852273077598681438555979979892631538075357327616730616104880449363164951385185539955776482879931226942054309614252736695251426022541845007141687556711941858496934113437673796497079691338717416828691548297096968085883805345273440432199535547448422561545528821349160197309186137402865038581747491063857100080340813787290164878441810082546505889407882501005045242024058204196481681432093191866990446909864880083548355689724927216727929470291629313199790355358414989631754708027492573759690687696225078951611991419181052744612821491826862914345958962265347230450077606761603337724648126126304797733399052625880289509478339860890639520694300183356541961768928482659615911581485254990012190917435116243026461660281617426614117250574787901743669182057005749394231908561542728727312484099677695317351322516409181209897897764406069439045985345804585629126665730925326328172669642203114417538283495183004552827556202893699780753663541215596879476027592251115376891207164627438314865863851793321070363149539369126939664414255101875058323318456414137712122215730118118275610976389961365376529884075356522514345714767389293611848687815520353765634984114328632980322677823756151788960097852375955918136182746809156646238874457069208318344073584835514829991569002608018235884764957216796650071550474071118069949221325163750702837104515542407854792238464138123469746535080973841842952747468424429469897971508093354065665537937678157744333373769680263867019288459327511682916352316955429405384796189501167610355147723937429134980771046919119970399892164170426789576060319777247178815464673474933665493837342693805370851297734833141052793545625513682849344135270734387071208855070999114370986936200304774356274810481797084940187991166042231968251645178140233308260362972752800929783679155574318621976896516657926083230361481087909970900310109547554298137015638289233105996217995920659814949197188910255635285313161215181780868764839857107753032438160237054719189348563384714947576885717468859717177203883426835243655571331864312528092859210224954934977327802571515719950235553946528689910813762842295070910084452605780265863408217592388808961796012845397003276597971572234436004742102718857349670730487102765999957791833344014321212068562983753559318006903110148793136848102425102962188460899452415829625325872990728061622553935792957928713002598236228137985795296211967333148114630780491293043306542653029086696355073782983998242668466104658095899800160342169542124905214500745509037615648553903342304517444831702267350178193555721649467064016616204489330072170096042332237106117295565969004719304992523469850908663268101492761625694992878523128726498844588865207770947272224115914503349651676351046921083985527351557353551679415874660949890163610548884714597646387247147543183104854159461096850175941201348842210983324983204762974561148074232632376037717055625423534508823941896803572643453803644028381053446724888830080895564116654242659211597107373642333967205303434805244177587872327986742152768347421838368871906617297480492528712762617999646772944435312079977416866319662407326052364226976524355750470277603177536400580684355045082347492972418726992389745104293319432595058286468577167269759853339000050200877180736696708955282478213031057846248730451696549412140489227489340251724536979059718829341799584478478082444309209386607807069215867158216984669248735188663975371899628476589473980422295257115142473984274930212854855728081591135471642312625760285368935328560997061882514067925624085672212944886018906536051250895625582726703789842087961911537658514674646854896657469492624296020657134446019421914095349648170913342044132009280190110875658516215455167435996164289309039610938527756436626231583304609943847767405806807815796961368168398098514920507056552343124980441572626703322410029284461667721257312733613116161067002513029910138405265377820558028396207029543264282208812182889981956933937501207981964600407652828938267709404985128134428488542679686490078773744216198440623761603580791234765416845448981978321339327097944955320393731892396441041801874538193617191304210003867065765472346703227086959813012001591529135984942184084145868908110246558584298485758972779740006736874193823797761031133177371472063367440349558198439898402169250660758064522136767838233557932066117120726230713502819422930326660551062204443503328688295561806023701337052624894289840700277170821571395780409210337984070352310003595441771292224653889836141395371715688330694546398385695249601337462516876719163784799503508665177012761892641157696736274530077050489377787240460457619890915150923293213536968952031759903536904087473551409185711389332753833264003715221404605236890846495218529578718779373662849583606250230952848518422139129395445560359226282481610412030553614727125703235526248844155232677672099809002724297799660872203716210962082129890942049093871978149348504921968755714507872022301192813773568576877805130401865215082016836729883540047326548229044149980951427979960446449555220967917034948616661285957954648028589925968017168665316223716931834070853861273858077346622081030564664030145703637063798337054917786489864816673478809968378392595392314022870128844674059207214723185041433291735005448703546380643869831966847799805589862161730345105573948133394270479482565392051740477147069726211737157580018661927607961906753291542314659416112203964806070124884743755121602165312639595116088598146590976851834347709472354838802902747968622730460665711324464142274304678066096178849338779913449201849774286026819639631602228649392406772163331334450543041375819740221377772816518388312428972388158743193459480164586893128050178950924439207140162441293466863049871063298487833196055227271598614208841520762841047749296085641479160737448176862653162871017706206804781297744547639925696651923560678891972964215746984384937237703912507375346972316535312712422485942308873461063313508966878815067171991428522377333657330172454972676075470625196713073564909022255212583115550178623754654598323026092678650827356951985316570531058709132400015957777242169036691303512792680511107067392119573081768934076248671690486509801435759140524425507664096679252507233363849979925647877882737648410339732647337014556772916694749516533476216262059079348148057760179253648823325544949944024897169096492340952681337374722501463199734093380229808200797529294206836206954239271329439310519935803545943223968432140358459634472156681433232239945601231487689635433583731745113442287909309913127872986009599085847059089409049689359680245778638160548995480805319275256549648731752006026695581645875885863161668576027658251978269431839014244359834238799514448622122853153887120444288592810625962300559398900035425989309116688041164536598583784687209839023591606062286038075550537787927013587715908329826854632002067315283884936048501708359933057407088439338637254882653865388107656551184465011919348741104072783834964869614682207149541183994177624345516965706097509975887078539397433645474596357706799025714468877196904256588209859251942102566224771863339859471155535659633544693991450925751722945014359395826875706321321675761744734426223397863272960464155325882062418074536521888495917792496260421902664739482049084685058597076595332318864544517717832071499119943259655322196154084133965804208662384882637843580013420827704132361674272290995631318589514267032226930393228116423337032339109904269767116919833400689588325967235039629583681300365043372056796779936138727785750346845146738701538057363719658512338082459702639928702744403150327450056160637631428124421262160702054399330920786967366646942177230028342477985436650439324110142904242635122803595810500439432079666551416160226481239354377676555425586184903169903013830507986221702443254685242118865819422875576594052155886182659780833113172229602828126107266035264489762990556218285400487845546321916960358015078959280688225446723181291735356637035556300079792958665162597337290897107398664980149496441430862691980713795970322162579170595487035701010058038745993258491258669408508265718770008965557384623582423156282626891750951889726064850457784428727287500752368481959050472628290343022046455442544208414498424912921113385566055027333938803099185880741887905328727774509050529340612177633240223428515304955086262745914194572348625428349800728959301790991247000359401511991621446495197241356445069095426033580550864570115491071220741021141039312701470193461835677102690420569600307364280537475168915194814262637187229700779280312826794150839911202542339033692173941498849253962938255555291433450829803405453817837322034351806400350106269683563704884971232676014706987988359816101975766434727403743695652993334153390178457315004873078134441049198135491246082686083211399241467652006284557755544569617911112700674820481857412367224400868016541413102865838899187327357689871163895396108763939483523770123287248642652985061757365508712889404667914401145585098690265281091106151232055651896069084015405234965467777940947778175336543302758766345040282130708959023733624983426994325390897457894129026761787486578826317133229190532275792197543789578989046130509225817898088508218966085509002104622184778645755718927484760042216174303745559554271144274293274178948856840655899947775554250085734362485813816962512721712031072411760936364947510904159844848216853661450277351258773828996674513967286087778707021860274661899935980372622810656941361729890142641962157404931690201397136867767815683634612299264587832589915778488441634845864968792901732996174703158591022854894546794072030609236539509358680627340044376633304374850876098315855322859249889878398874753850745838024029726806899252704309951689619046666033430520862547474941118399169422821983214665972049290551666837370924954280935288365759531948926109136994601904308520597969878581327629221265997366091109557165497722108274327290415201151313326818572550451925073803291825884084043455443891146596711912461301227594348034687523097189501534895876672325018863377018381068934705110589067415041523119086029902545819873302181466168844257556551874565401008353677182014623555845256763080132473469415880276864293431382337820258660208305716698573192378588052479604478581684781850754588308796073039335607918494461934923665412117910544690959772798377878749042035189469510173016773169110977403258008992811107962898384611142328061878811586634199655047826047768219559638470911213961759377202667178669910392581642819955766607101734709743997462029082147052817399285213367445442683841353119521620995372838831666700970640276775749204139402610614023479870234564164653452839163253193447192001501218086242607268585672663234450815787287161164513612057859451433020532259702200717056904012094706037561460454563339051163742825989711216860960629416290274852886559953382567113708690035315248394296135793668108291390009180694651465122392427113822456327347729787891089459076445691809361368622182300721629539042185053472949305558757859207366650280394509059891444823304391234950582916026502193975160544324680991652111597596148196139166065801448530488797015449737647185829615253276077902196728200431745414893905793664232576009895297366314089454350743790528268309851470798568781570808695538427435753979519353654235728641297795829670667170768712496642899261320098313509946160667410110675228006362621309780235404695168360411593661926434047265979268050513231968169829037518053341316088344681498275378754567807443041608528951334165276422554334403381755835584565974238976053107440620366403810098093291359966480667696803089297882888883947167982504363574642542072775872136613712087765311903766631725215583744394546508748867070002341344682738314893604128948325335751552065040830789125751447902739337561934670241564144770198860865573885321280516043390887341433408479386356743061908696675984171139240415290963794903892558041679888484941918691695811315009708538756021990014629245416641323661774019724470623997780213351529277774667811804736660749043361582585610781533373765901846366286244062289158108728336221770198086510121720679677245613563592663055244171186445548489197817024198948281243717426795113114171389588965229391834923605251216874936171859015507438770425831821985690076906384996682715189531431517372323977808736422779872247127055212180337330634319249739314776973876671638452169160831608832938700433963350093723176108683613698437592600086326092642825952608539436804858248706651197144443335126718957702487061566460109500163886291218110525184261955610733478584784272263875598011330473800729579305259644870274402704519685359240284078709757276014610214604192930849049622171438708906955699356814906533212180999113243163434471236804237524191035161488306470091935021142410370668364051326214586609095824596407237648716436235495619822395460618082718315562834125365785750533093046263051496801802473630893565242339670005033525140853718775563230515545440408506807955604486060350522775304313118351674911837183506141044103081134568993038298870097047628625713468968003674006385537158502974406493070521929833892510782867066466704863162619600190565629256765281045119494270091290323971763229876556646018379710291720728212132326251730188786353573667542166192942470336581309489770375337905129799871885967911213942582346558358536158992215965751866753208500493069630444214274668229391508674849483192130188959861258642993822896044317405691441916778555865196516845114575516480123144672237631141809031834264899219639368943300533838384869410510795272841002391146071464996129513593619079838209831728737843034635680575103140238485691265347556762890576279854598918020845255449186547032240792562691661439898684001817603568943407354608414169479668494133336398734433095999325364251539908710087211457312667727119949360776749480437083571443588146159304827404218550109534925951329604864019045466251152194780082143694943058171094132843633478274988643810875220160291971200880602842301931566537156335110174684351642505030949363554286552097363857502462371406084422077875408117686716641437919901762929730943310963214014077011514578798023294309386945058328547127825960157131622217104111355847421864862881656510304339752475772312101965165417022266112562588256699339372189540416587768665965932963581970898101717934721423502047380352997791854779534577722850710013862874395459873427348598860022365207985231075490621055713106601861042165794745560674621786820838654138995019945187479795360947140089916933674779759688047283530355023729835744512214007019258271377940294933406695404044397823361994267891301324157180073798176439907344533291078591446352241851436090569949669484899203050948751513635047513642165514750421887195443470317084260347752107785646692201349284764864028029743876590086726834527611054446724198869030986149801684587908920687548087275822681085594218315704437298072883177367052627770785485175106950506256268404941814202084267622484840078518303148847587320258363541084864154943794083189335524996823344335798010999237909250194607963820216251719462926072417407055626408525039081955158389068168585922863618436109628460223758068854923467895243592485623206523499914042396802711076634679097155767477520645600198029875619297098676367984907556749450833585339488546256287126697697129144753631005600044835168609115800392837046412368414894177966228727007975960333818898082331030427727942198688204545516566733612559252441002789910206737817430205602984412911831660807902190467453310744163651229800803156580565719616187326184633905070910792447051799260976177064878206613154930372959038686468935824598287335773163250692596102823294460301184489145095267109439568094788917251452529010131308876262685068609070813387867350908586378446693701862473556727607925432191814330995571370360041243755235026743026606082527962702592565914641761214657553012466109604835836773518816984722888430021928226421023197724839958444351503171986301005994844468218454221797863400176700329265686478537583431197239992506281243487146872909691229393026357974256443925875413942222629131750278793561509225805303581947132572414219982064130373232269391027301201092839186784871755838226717693973183032591253057567374025295131855473473937463472990513332359694073111290793830402903227007109031699504271451973681910366682870120097420727441096995462327410699215505349595139656041975940827440301913719915901257375449264439493502122861046915375695663772878683263534356966604452120752520935230169981401921594777973972310798542325517554446932619025087007285365627268367185727370688552375748572963112170424443252024492969489103863294586673025595199967513960640329958099185407599049015078902547045001704977889175988606035731988553163665185261597225073056918607035994350629778079410635824215684226100331319332874887572087981637838196757699125266645669177433399782238505307514979900022128921563713574410373197495007149410772296407056417626248258997796414802690696557675410692956754511580974724300105579714971077886794362294911515671652293332476294199107548741149977975397287225259524916986830818164284113301086554104502323212400282273439617723820656043793709983599685083622125246392525647773714532750979313273542960089086841033367469065223021693180077525351399718890839380420162194883880966556985755902503641943683614893530876756418148520765600304528378032092158008135219132524586964138934862491242880440625104668067787982098980583798253960286558251572760857521123662486340440912600455748197789977193876802074200055687816164151664799845337348437292902103864523582199950013400448064162496053534559351894638138638221817372817252634528263642324617892959577313296894537390203159009677268206025429763063170324268672410758341840178993732108041815894747265342843276465374875964341258150860420269062928805669902843059007126010930033428417567349999957434815929407329589034331786044163823973927059551874115034532176459519077552439850324404525168762651718118623771416031852831992512013547030679013664062960754985050860054743404397862267160434874145885496891751478592251608088351373202437042377512997595038943119338698182664993243463133163803085584461278919847597828464050479050673192111388147226254778671514380075372364889361849394462764030288610729704334430314143170549920062832524778397265293999106760321625533778214974843322266636862866458425229023525127778542624029980489298113221508404813966150931636630705132103953036715153042108937066471364471671979236550659265622948101718958484749215405856516282931326322318265709491657331910871566823139729008821905934519687554766691841175589100965763159431099189780712512715675361986289130837223372102179072910940317663250015935437629982108823260543117241093464264693552134622292935755908259109109423928774524257102680078408775209282858069689030829886685644666376779375990006752383508990635502629584528348822663858870730180241425331817904261999674618070822928966606509210799902611174089832205451098892774854430719567694719511186156557547206214820210143637623669588379499508031149866953531740012894522939087281928529865371339537409251236741337346471952753379132720325356776659354322624758016204090858342226567865076978245854782273168627139940254464626135497360171473263746575603155500152002591919278792073370659132407328795293436341321922819756127286249856041618915081594325383240437674502809049493173807239088632524784057397280816223574703145419499633048493602092795130978467484855436557349215008772614550990070226540804533209946450517090408980213467755491915622254489965129898069939729892575672926259205136803417840533257345461597551415553540796524587416817809496769148201304817173924912715612839401223401904879535208508731647612694043583586202805040935010554245401263435599250715324734004015396165647812239340284484951356085991873968185682312935043392265899875744982297259589376081908010826702114038556780631595696705860349052780817249402365284164068978366617929005469094234901253982159916472667613136649519166330973228850547898562672453338486629319686597009413823093674135375682732940140661633393136267351309756176846231753759204262579077022487893859213447191326728748683193928077495138852809437776602255153078875031448884340644148224563532423566075515827907470509790785965303572387791101418652498093830173445921831341090400871981879549807782582889110408087710651526953306764539619338202812382038878016421491219523267405786612396328239012465139763814219395970938032664797631035423412307197857637738614495519485889553704919054594099242255724605246734577710489794963208061004142123491620948739108262932838653268094911597583598504668373523409315958898513356792843492529266502226746237555961744524075269879547717482026856387467624096507132080604648113557814419874411482448612952109993726335354028069988325455831251528121448377161040593508120248087063748421584994748723763299181548957023242570373530523004455461150290827982562332715625839619297193399809654242373266195639616021693799204693235885541930186246105005520870604150082564156327715127392307920327711102424126899106897038090233572619319400105159367494786095582701737399890864025880780142843887027782123751270033965752292370947281412830540065166126729417914955629546834725204161285620470056607529535097127957808389571756849859776464133066782780729415644324163142534537042871238695976844615465141515618949434270300562501886188366887386998529896602551295606241117745646684035103453603416076570612746360027744198521552125847300619704810327075239032931511028604874705314114118115271963942589157608222327486511180551680428698282625896937429944322502663032091932389778129040602781299346156894018505590507191045496383350176111479785982456622139476201487644400329196764174543057986434490157718624662934702211989589545997058345490865018564988370472725364323886865780647037836002151552347531624854485150008751309435258974905615471210789055072627468291582304690344376095039712202452584600614737201505803041211846928028954414251040775508989135214905960659906911909936841531068899118911590939493751505816798996720055380233421299730399160671314015572145530822568079068212393095422898717527960328825685326198296058856931554705340568443687681307047605046704998875810414533343215948968781341439723634031305041234227451443271516845339128836209402858278444285232563000378120086693199773852760742118122277625710966980823031646665842584148477971457478861688393932246273429400699724014889230593865556923171856448857665447536320650665541859033400031086852273173934241128935673017874547000695959029835703892366407748049150631017130598210470659632934715439164495560607615814293206084779747422369717041741752577413143404953828749768632826131219917188875201301852467530055606600090105193503326479288024098591703042148093223298497022421754864655893508880047272009598908375313694388469219295632875676250694702447723021389721363426533109140588290115003116049105629598434337339001104951248164605128562450972827513663532832080286787248173834983006542727836249288539681468248651232823241716223395285623528353243315560911756427121918629793501971522371281566569904685706465628041231809117469048551817180875898264778421307393329585535464748089650356182872495679029845837031882137048613743039028338230209680087084258292097708123768092402210749833940735233197421974281313554399096281981380500426821823935822858897384134463557292800028392373418727749621368464056575012513017483556290827249541398839690759232862457377451030989407596555491554165744714418322698041064407468490826722053521896293913406775427688001633240640706084460067708370957842591947258057882018077699803030727448650547949603274801140879968508227256306464149950993106632514921708603704841445130729234791978860349089350801748679279788978926345662774791449628473594716201116739257886378004366687833078199330220044609155603030041609513548333397557830899442601100974557958086088472844200535743484674071445970997272444745294118289220993717158304211953993145696755811807208640091703297224584105377370411712597030079740998280089293342286482675136133272560529753034256515683204858270265444459957577038604025245613859638741239476536832345926647220449858495607844196815619646557560413963700139516584599286412114887058363671444323234716432059721862225243293128947479068552240834335272898336486389987581099593701023468800632446260419068219004177232635769233578090838226605293053862601774566206868711937592104179533246942608879176122850434680446627399471979674789374856466513668546278087855021078970843381008500074065894780010135788914837220200453189975951241218733306924489733091516281442568365051302583698206058700184816851420220032309735896135476589487039854535571854678927987377793940999894634698976294186040425219922400629117554715805939196390077756607679189713369523362448067497204345394019777987325174054547836004130361924882458608441047371002505250182341281932755400665395454151734569534029470878959456205195223410426113337532145466501432725167783823601451682278812810956717401584788839198362853145061683515215096933709864895130677780921848766838737415094797584916627156993024073869025046570333716913218694503523181621973273180820985244707214869525829353915996007531074266263055463480921770434641249302944569479142399504865044797951834071826283178740978589208391950497389428773933016133176966590883707190049460185668343015652700109581160153045380893235157519887583758849966018647033217612881155393931113375319764757679220544344701120146864962899101937083283046820508506310330107422183261312151779019600855754082425540705814371150441868716958845583402155979635756040807739441220297715452021617838218424801958030512630415335273259489676119160760039932721753289193763382170803515301822058668588647481379163381914226495940137949040849831339560948092757388443407166775244228921965012019639816495660754858892041497864134781505835758839845417915413020516953257006691342414195402205004336633443646058711987720693673169476039802164616071127646805628316661699714962245235714235072768784616669985625505104090763400190271359665151221862294898896061109147459088137868126633221358987965310847626231794674345272829020713402124840667022200590660095647534011627133810133723032538338799555914153733983349815988254655272798899887151088097556141250508182358569625587915982771540640729248162480589025898444036956147380246627493715725425862944645120956554225634942627293748397317737544503632333420633171706759312167212549324520242264098681316320321038897400224006984137461036578988645943271451587796763293634241552498389923657531045616443329548980952647818498099061382392905546279810463202869139427953154788873973006284615726392698949402091481890151692890510099178043413196563251957802743025212798378441436141490662400691837492068911647193979919241387375477366349031412479693557397572252160001813393754682963288160892719926588065638994968428689635642791651432054309600324138028834124163402552931752193148234472106804289063252487282965182774186243281924178160871660578389410811044276730028356773286886297149589669189299374674161387914083640607047296591670399432624555380763044063715804766850119385143979591763114515377119415247403038265669244118789546104681163930404483806882071846151539258845269744617061792177477590132002006190442510973928766363770448528776804311522044425975559060839670369071251551999388766945538538366167050671116674537727905026893335895813446533049919763221011718332280310231453068327379281245829394926960644526924728937903767677207247345705152494494491814761991470414561718280468387036664926703200368148851865869533872103867512371481097178924073356527828609283742223436687916461087301563799827953863894553073502321142350169402368681730192699748002118257968127965966175563149818750162602394975420132529218234555881782464719331218510237924307838203905197615375932739435515011905589503358973641042390743803619621861244488671985838886911619858428094250538772935006888144986325170297332391101244495560291253344271792021803397111647115358289862199086389446892742180235754971604537182657793336874463651702877106085228931434368037204269864591072755456788464714699306715507265906369816474960770997466607905751449207537305119560439212204528243971124437229725210525114694143180401106516160394995895962199306780120742733266644760645059288109807043781979016123109210627472619698063357999531219599525455844917260700129033771198948144131682255073024037676701500954348644041918772772203160288014576475680857387838986262037936762644642167780389765807111630014249117679671738789983241425369741872127397188091718070938191140579402196153920860138567574484885687482220145365790250166087906812110377267513523511334941386784063659790775765701958481612128219530884528123690880068558093272071229149257623752619269851450143438294078731374061261193223145452725778330230259097178752662565187306129798162095858286043461802152224474054257149233151283701771173347697089959320511443649691683276085872667676207545477038786034076519191482683699573558217979377452230558296916614651258796772256758794331436541188510058848747944159385963685039772202751973489533059839741597709259709920535405096592613837785868413892600297174138754815968528193238712268940836367409184303506289493536739959699292326236124126954073068165702364478869813389667696949372014298325352995713962664042868624202353307423561806460604750194804609728113070919858235263901610903181197748306635495599457570867865699038383098980086082801354123641239929131321768502422434960534347908424846481165089891011292836086549414231462909262206625943514514641311231800066960216183325634654943686124243913654572890647691784360623001530973228578341267297682161254716332402542635892788407191166425657964123855421526115585139871172158845406242327868023469841152726856610488977599742497750885837703597793307931985432487577003839112146149121718804405877083484290678419942979932227002480439201716385347985394540859807399214809029317948070780177603577441780026992293640923462247367090051546331852877394952963569060411146061631191976256345018943783422625712079253257900007073733120830508972797557113971726797099307120354480667070317540381505759224837620888216996394625776913709004429422056056545838546227715252553925519832239897435977102685207219213968272331841194121021392718055770192038525890151881504451151545458564684824183625538809733332625789619457757000487582098314288906014521381760843925108124968312598053377065506776329839258328043029751054834576998903107235992489275594527001332247843324655974342265602973728480119168869091281704099448987382197730775557650962185892311723873652569712986616816715027807917104803259506882327543637234288677338493646862321232150290878884464686466611792550676146891454199905814853048164446754809791669848835906023896079808149556586636957722435771114007832909747309122554848091061919472381914735609517663585394606689075162303653499628728203573026531194340693246264663799380535082726736538644212216046462806038828763074252754972823497189957905758950818405951215367976696394992198118428770466154270430701644983721402113105209199750679911918664183364400800575201010593488594058394368933853773479479900677748214479045566952101435287420892490940129775676909948813634582372177254000860285891830658246742936390746428048065309854852605268703407834794555928993655016857061019173219628395421886125831149117310174158029485165792297283557088279652488664337910623526022747817394114826554392146942281132317634241816617335486881336397580649317623837099991357387988687350589750675504024271177755413501541423932879451605242715297805696210848829348591327729633204982573842679272792663947628783466261618020267895338629309904783967657377575630282160985561717825931316887481581794181323787023117431337891595384425450887861388975167170854206837584228560612678480901384809935931594468542342143941123524391180336061306037820649387546558201711356230819222167401898108758738517565504466444798442856071538906437252415808224306402055431375212176189528177718524928051231098144545478041015426815162696145917439469823175212683545777190981756685716230312293075636673829958701126295329945663264630564402630062986218074529648211173469870300837296514035713142233700177953964082177274353934273100164480804788702885975515653071232714136373974938856329941768517090240189060078652636061834366072766502321241234036672607806590732284922839539894442929143213515407754926837756620867219082897794106295688173076886005506575495639780578316937135328804535509495141151528051806574619835702348998353451659615435727478283551494640756742454667557926165183478574466233021002535825619839815207871713776111355668022887515977515172643276389422809390086849403183583630926954881305735629230240953314608264996465462459281459840311595896411525437630932061788686376798756500010716967302489430893816039981136600643058081390788610872103763765401117354836941320856155748467196086019649348867560258503255086779424081471741710115813038606428914779097754597281688354452652775623814917534866152299291230375711833708472995924696493670134022275028023551405034769726264093099931090651110919216281608099289148810780109639251913079818610147707626098084443220439904717283176231284994618639108150705793056290450980572997234714733973513847572638587294245907070512851473397973084535388100503412378063829101220787441359753927696992488563468818647833266671506974132899931580414783489486529674175167009573992866883420646370188761675881327811717753842031566163763064199921900311390767056650439645303661683903283760338679681668648665884717357376834781780743969939158624117383493910990831525547289827468272542565208370137643079352786615228909470101382430453182767192039677891328487990621630410524761751277028023382986178388238949914651933231404605385862155772567500965327398209311290074479071139178266300616733003303401998528014511773162284052410596685159327516121500109343572586094145891838042828171267957859687019090837193307149956669548633922968932127273367891288979196994221102980654069372457910733469487186770440655136465209296840728846591104280991527692492755751301584475347252683316291693752866954133495415885384032494077494509068556700327918650119737610756244977249216774667969482236469386525797054736078112205115094960642511604537500208970473862917927734767952211067417026159992103864752751133927135327153349734157329945053193133480185709731222885163077048224618079263651855055688418732188180085354987317329811692901563556988672191481795657428448003498343513848922917691340430068731501902701513035502237423991753260626998552046957630190054444062362246969953322061023269074269438205740058977433615807984342699947837673399300983959414667858697058773901173327998646661625331222514242410292657592337961905444785094161874644023781768640597435853686377458235625686107514330576796999194794451287049847382677809819535781456545282173230171573477176165201191621346274229107871785848392291557982929521127195411301390088497575765797479292788726361613564613077991035482751316623899334838217280107640014101617923114640954110905782642816832169391911940464777301033970714777738044269188739311233700440149513389298671681285859880025111415422127151554671657959359724363802139981358752883516202330016318710445353517615050667749457632288942049581556063281992107262520182146960040375305508214605974224859286512202410464505124857939233221799881526689653722398059857909642002429490253163002178371005673062105506511782093936029096802558602854490451082046713711071122020892066854973955667093448074385982667802469313693099515953221436890311215752737449208605463873879767122774915156317995693960145168009009419557889492365006555552217501665980450846247014693975336185555938934444661360828077871284519774068290526936563827482886600694930866928619484844971057572474585561277188255582029324392070148133451318840030214932956384060531543437168211568358543376262310052491062729070107271037372214209041262377173169327214621852494563520160339158678575157334250735389163316561005213701361463530750881165612813036608438464192353985692837774095426671906834246294771834646559518095631564474722659089316575675717771613665311680563445421745789846516729494185759288385907760181632856583385820839119314193123829953951101141273697399750118665679827401443087614621599216204689822241885225949988111348877082475349383403576702103285848493838224906100629696757194638450316396790882489570535081242124764010564480718072279656698327889101370689903236625590093089539758176321788716654931824257350820879125607968787049599201671553969135282171417164233933053439443433569292543644855760673379232645046685805386969847072742826090909051557061948210177941987261308331103285913935888372496297813629460397912282853968523932585590821789572335613199656886336851458632503388535842916719250067591891314608967434305384422770320579351612589864714813639408405230792822108305081753837160067557297447426986807632865981905992716070114229216244202269183209295979465479708460877804281108975050433872600518685627364763205132514230214457585357122135301567921799125488090437486012004706987544665573004245307849653455750963014665620960819099626904915614672169247717099782811314421079521151941410966399446480775806055730112793066613634957386528774670351707598737135529671947311751689341085523004175967775015668155094057294860149960391895074922417820523658368385703698128272280970780980863083546488507374782966512617653369710811333778449112355792428328706852869798633449007226153128676901761521808352305169118050604726520376023302220143789067192851506756482785048130697811375594277792200167403033454030428765941560095655588434611183919640791490286691724687927639159684920908966221485179442460579314172745638587719427560062888979771455322176868038930266968770637695392883604658811439702265512175183244376410882147894326809974798235805030562835979220413189785657844139250548241241246741316345156615629078785398784013103229723898681746082132874476268938781358069717313730334309640462671357965087503701169847491927106258764059152698674491057368918737176943800081246163760491923470758326368767475170488459987792807915564888483808782502550858481460396705809033180619923798603445416420928998139712085425339694441763966431506914870148362376362483965469516161133986095491081329970579286593255795149994816074154659774217540004003978923851635790815618037592271869947356340170813996144029400457403814682736726817993312151761236058402801588322704942899222427755681179095376788564608355045523145641769037417091604602268628501732917090271793249528638790450208422726975044761321597948730425670903757475085764415783372658637761408426136619322759888830519694595245164916090619988607254341851723874906369015832921098938706131342717914767987076506617717078112562201446388221267272531616990171800984747946630997207758533540632342401536278788593155774076156547433572071048548033719683283835903412239754695439717106372395176206904213152393486798738303289419693165842751881966647992752997570771406638099008717948532229018894570501710754706972793875202484895951015654720877193392260653839709501140168451538572414288228824915301155562900229967761714811561538621459330482211792265579552577298252808903271457738208998119899789171588843330804112133752679914379058957150821774079755728230239256819211363735674784349219161980212189051948811860627143411292985229722151437591404432277696936903299663382016779457933847782587424036015918344055999233283858691123769365545875959671002271222106896999668567750016394858269767963306718962425684647629017923051361919470153122487886094049983249026240358130222458351642072045076606301777420197553183644816166494937577654348527203967693609127473857838024882129177462898455805477306412461412978077792060023015210464135772044899944420443559617886778460859752168547980746116426915395230856981986615403824095578167608452390269786305408047982370674095010714867712352542290383585707652999166399029212030014792138815774824455008077309675393447394401175867471991280802152875304476430547127578718269262157065142717941652303449924304057201808333398325840150455028141825388076241541597499654464280799145602079980429161872830179998693843722426521254659612049346193062674833221625788069378705483591897132039373946470123169693618498562488984637177394380660351438756573308365654354784947422558451854285403491085211562129080311486192722030233902570496317600512301123535143928575758841841590402038459931072292497391996965604661270061454324747726466537892104374375353796290356604971642860988743340783850400577854455043116676010115160515021614168498609576572190110840250254300493910855263161549722686292732707323752721420706375587510433234765193310002282675843027684413091442043169893345439408413125559300182573655166804615099789013211676410020247023499858623441618390779092215980797758662579918606645906361202152430332758182277098062267205607077821973243478359907370244108564549623418071174672635837605860695167456808063373269679735196325404024505657199621436714163119164079735047115064347432742390164821362235177466224083455512652428263536756878551277297691914092569250248442106047137014971796973024969270322579042819803302299550698671965520978822949507225225297970540041017788394115998167233666411986607263066125581944473202044454229332686781275434098248798010625453337251805348483428013349442059991509867597275272807559011108859352768949970011421416945965187810104340522703685119758911584984584175383197362170093721674351881455676172556060332866871571568203791468779202285932089017280508812362093600386125921919173960172634218983037223007704438919025936186724303482259158072331890851318249276450134996634079119181078764859296295559936072751143967702642898584624008032886986515320224448375547790574302957114805117097465626297695429853582167674014663147742384537666942937583640683051892758192005486789574353915502576006776034303580293451586585427340148492506596781680580427656507015518564995961316559644534653814496229925882032164357496142463354710339331787495504187737770786976386506337149037146463691545500729680493080870814167331585270180401454038610775487194951130131827856789508262903712150478411910528651100972167351700733392729218678827781156114374064169037729186909890981187902344378015950859171656886808809446515836731366240048648888226644203327182935527435658323568511088997037665594847983910062441952228276534479871422141088579609836019184190134577662228353651910962146235807226132973343397864192100496828491242825798396408241177925489062811870092215517083100088336882777694209630279307559511735862965608391902679617518939392448904783390114795878423778452323015965209504271918615984444151878890860984444173709048892680217004109891935333397767609169341258452257349787388438028503891095796282167263353156877996449034992961325204535822877619789597182577358807069562754663357797899710225711959852301261751107935565777557435339800383547168520083535890337460417324467430177506814086963647102900239327350154324520455956909573101567682610072105316596773817911001486726592463596176489457756965743957542322579555230159787930820765177752296049970802481256579071029931150237134011647484381110700448893078681030643197142980584309257419919128403237982678951876973050282694920830812321638075968461131967185345355241146630119888518742368292487650069628926879846975747195194747144816846484439464992274770318647359145315788358165118805649001953852808560616540391184575280180473871619047857099916598548073534035366351526911217750237635088759274338541725826834306095291761533927508065232825303630442164306398765490783907236217134998035918779244478502590203931411333096936842849680420055202356739696891979247101751721788615579294016870059265634121149170277420336645247049627935639407433152100673617165764332637331258211499443207892659772477984079320410675011595370611394587445071518540323949539699613837164694841798224383578338361750243579593461890152852683731219785244067734163939625912936535332859135956786439352149294002359783505791579579073794881255774452118549966154040331844919885808225033984509109327835645118944216692750838710552435445567813569232256766027953551010943369774786151247006507381660637864026049841606071430736726314964527733627083355734751685274608041789272532598346356182494350179896934452654686764353794584448321053247089574851052923489952463497144553520402278906311704552635389328474861980454894741788806978097583233478777111263363400200845822740949798835578983081471524291615036398379051389288620865587304283976242727286744353351200837759158635370037777133797426405020858264131757122995318795258401453350612193765986435186303386351309593852637921226144824687573800569661189955324851839873138304967686226113823646943831372679086555086926489738648767378601703295701854476145162243158246927938001677746188234417694846772196123974603477699197515275705302402691371683296500454411507284124304483265674232663197714360853163779213614369668292101757210498326865462151689653635278863949373259035496427554830316708211444133682526001054540248346242873406388071256872541090364021543033304583671643388423270396420960172575579904060617446388839955895414272426728926947099476926399523968592522062048434642257053632821036492169439627207483404980088681681340157517436252411945567584313363772694123959951843744099642023942106586029647050345883007030681082361532917677583483552831796248511672104561103806630630460047343909271701369575901180683053379935935665478726806813866054786308029236848112141494377804647049867112333876190022397572996128878852950699531082329189956578721910401167589427162466237461320036839907383714438516979158163843344318084157510602271199868172224341413018955500798499214776134588408979593432333040310146641250174334862689429341360500991599014031555126420965311239556771378614972984522530357081554977974045558482422253590120213063168206782379345318471994414179069142758294889559690529329242267307338777270448495192177272399769363978442327180831476223940616074680803203226175754792647101809702047023821862197941934413066320237683429032020020372427059268717283552418354426946444550903394040571503170271336099366300698452656648817570964899818594378570067830523139727352244107124655401805018976506532404379478504747734558823132557996139611751199454687970060494987090670932465090263901944623030063538661162073006723772284348254087177838164573860472607013194052649424092670487414429327687231685853254261430869418019746390155409223836295044092871596467626357547239723975189282296381814689684951622648540243749685348852255785803400441031023411620893969608887093471328883293227964014240393040198077642453030497048316396080403818141673582398714575627361608128848567594199621086338166141180991358484654603613802932717169315497015148598759554697120613797701222057339795811196679294669519138237548555147358188099596861227525221767993830632532758150650364066401550773358762348804649646371195496696159732684156078661682153047102986790419963088021165739346331304596160687386608328492676909994775549966660058942380139106715552672169892276361434448012039645513140209213224608646074986445821411302869680725692993868439169407209961594426027492403805712535596466243036050273757753301242746482692200610541744367596052770305537887571718360771869643041985668988983600065958594615434309500228383132332571996513932555341126093777751716971020206478707246620264908417323668748292222946306801907949797852849522757325986972965716748339994495854612147830193679384339338596460464757457206751174724856379311494410113665321335734878542821203733212013382403536793512492744476350780372126876241259495108210233181872317528154023004352591594437877453336665104391314315894363267908411636956495889231685454931046612505154843602967911404161074445014377135922960624472069051974618927886835425302848117395884771574556042440502045591279253907865435989980900191475069917338327393103281730477993112679451765928055043832708165902398867145462567674080284021394245005702169617936200596013586402549352591120060451385337136034955730807185089671714193089474703019285341877485685727513023025310401920385115351549464407081543433570526861456886926278557991409984552270824498075883272871789292916677318382564563817492043119868216861124658985574970428670019055009343109066571966411318319445309833668454820911574490403358145145859440207635375473747465318442403073682235145963614196686318254189722133119378504554275551527988781453691332750583917805817919155575221379364190735370692569812069799339436621673692613808293025367253054356787869103176561535694368052205527272541561724707431916735116909896683128013404937945926540211209757190127424872798379737797617802505096835672038302760735936083723269057118898974502092169687762388170178099120950201284793867998271173437089766272659998468951718731789600158621536483377960785382494392111091266593269965433247515756270499567394147981061049655329174752683428816232216273829877424079892912662802749514576393800216988851472301568896881981603435834879672779276468601932918849913865531264522501393515264006255944949530919022801053025027121181606091357614448851726547728039296955853570512377194171335280931775381785923448534769320885929136322247986657596421254886658725524490765075612631192092414215870627618149448315814235707219547142166640702533145418774890784406180621190010468143709189479238493869152379572616868377231505347319749626640485572049941590808443356450374611062049520788676600758778875526433726500833893201255139807189116195160921289159334353964574424854761154926524443285913277868923084154550238162932172698354420729508914998321063720041144113226520574378871691007474403142147709532491527628446491183063492696506718709499671337488627819890572013658499070555893091214699926066860455201244882829048139067052187955940084436000797819076992534479314439413440183974671219532183308420975233113524317904398523408420522978553979543780125002714840018431937599738093295632102039116784741989522112890586642286943496415879794814695778205935889645923005573772985353091873609578543383759370487617621155569885619096769084205564736064144992215684169281454567044962332584637656450828601473203205981969515286343917538573599374320084500584833122913167583033115319799049164881349289813612918882616868574967722029331422029153112871574167868998818656880060050872083787738766073778146855321026942605036330588752308831200140799032056050032162127815508914224627709801810309888162521941759451185638363214698998357883471987872469665898118464361467441278706847301707764166119976359381453782145415580356862302857555842027945084914567860348563933680419731827901488956052174997825021235118295941736741897133806224085565720877463947121387525023422842186087012437363915311064580574628050007192578607757847861202447238204145915768219489182376055050090983188662599064758572538139461155452388217603706761940051010144908525946070685862630874290086895687829693749876989541812513677795084072286076476110995454035752010256362486595848304560505731840840130822739370672097631588936129470980972273334306422110023621608280280534633527618544019585072067004335071870059759119656482229486500241863815383493759336193728987646831050445983038539004084613912825469414968805920254992923676980501594685874161226982429684929653230299157496850173603675140790736964365904002245049220934002066324910505292487238169194743194904184270091928157180177588845414004512230716767413194231249305300154827795760006576001785259058259288398472880596930833016544606700820912577635404019102998544845469538732670281391850291047010837832896208951326702476772273598128566691700143659157086866055225475845677082367366551474895628282788246002107059072442308267118908327894535209507985104733848819077181500873352758572550992194838040610607763774074963658231816278830140979904129655106916211887386928828279044251615549309903027609736262641595879902163264186603138604788744763766368900968507070527795707315573570635968798140575368125902941677161761967711208738210140889162519104455339840162196843639879444022628280158051417180526455378472824845951527792865623970465044614422074950428764754102273618040087993776233938773459264477772658962868971266003494565858250996173983914680904141920203805421298189765295978602497298047136370117791347183067642025902213557970683758562392330697353324219848957152391347716575451349298629540304314280734763186366978578348749972331576027026199827893748156304376895381714020739163468025772526271633238732164034487981345374228059333587631699498334486778843045052124799373523290575842110121167962818399567788892409884034773992867509580104906314284507742355394987769355260438098836542216657730210325597023038416341728549152385259809604896109252820356488830806160411504449933224999986890171338644288716230573973200631048643543033807147801282248817813380473661559981462094876917540234788202196572498045578500037579446175200092518132992001154587153365504055878983302193494827512161094231448490259571650666069146400857772163182647455609723860629831082048924228053958359939227777603561395637856809260909671564771172500731496659356770992813534048875448126948090731491315646674422078848942446749722719815888746102215912176139950858706366299333964809485230541328874694178120170688042240052973044242216379645484270715290886878408914906434832581943267478161452068518423610278435372838575413470921301201828736918263327045016588680544139701105510339626574581953767637176206926913959646248336450587661706074773743833692528317416621680391883341426971824492316987772561769267716826928551622113502485515090866832397739575964055599961643974074442708557067777551356370210368740405195368503906658743351263962130620306677135481694528138587140744083450003615179505367673047672805405112883932607157413464393853500660400258003294271987398337327816789792037230279515353214712654840709875216090590653778729234612195051998767898333242499757633973733238489768186179188523982354365622165489534664407662349262579545994495196234850971024601711276229734914130241640071231026670349828181084869818135467408039411118164650506239632907385471462577572587753857626506130239025964247375411135427027712568851929528036897548967217258348650754342915254840350547504456059439817558215921661398664190968183045941949285866734526631717904856473318698823909395721863809029737336380261828100022409819378303020992424211230704916651621601801721471422530629207822485331920222195347836305269582826848737996200276600157067797793843862968286158697174034662654361345596757241225755244551746439425258699814194839644312348466806831998875469176557027702639491268134002608864711984291805017155492945470954939809471751671320404402161059278753913980669205402350477259021883209556288176841891730065909404400460284739229701733347581968849876135894784194638508651444911074810170921378449014734403617071849524909806018010695778073977767057807802111791252448578677519215271032881558474677185074104954344976141119225714985010498011308959214687294356524281376374240835773211594031093467521443089184260817107356295721274780690217398625215992571015669642113360429225733648658953317062790187265286434194223957466514766721499214840369629392082938911497644770304162781433177632228657062283960377387395930897001409264744495135280504602562757405424576599271650031867193471638988446919463822223014508360244042184776423322536250753151479325515037771440493081737038311537828432728731883818773087002765057272459497213372896303864475843379029986312362212709657853226997647261590682699112802102273106427906665613485595753192687584337804522457402401400678681099120197217132118268008055139294222337955367345708202598180216253620002319571633526069189583940027057841466740353855799327230286134381908464954388507266911718598042259901562144257950350521567876617637463982601732469703671018374708247516930321979784453371533004339381120181706190086945455719512425604366505796039837905555179680644257486421360211257064884576450351217823860316434575916405815546564152297088990965584236794401925490143762746590706717977410509203303761531418945158509321007611055647837126880646400747235905715462463933173087630613529481609845755123767588759065792110696562851035873407020699811783184742371599229252008251049683987924002960296195376551399131772611309344749639588938776432053296528961959867090170736719163017030604859586029349415214886881414164884282942718298125382974818022561826055418039219162221926205997054040933499542759290803545922086814324775536961646737481527254036688108358185710469097949887746884093064146064643482913993080064330877100829605004207749407861600972462177584601393578568650088183427340974461082206807138121385081103076910048896709761615071845243734268490566609426182890727922761588903420912310976852740380320682879871687524745648105219418244036482867670770859589443037668854642630703583686905606520301265070020998275917498368727167019698864136022901657485763556319822424318351606478902665296793991574447561693063969968417331887059190594941307324555195851020472613358784834826339121066594163109510035717598607758694978976780954804680229099875584762033817524221655175751230659574844675031670023373824389593906595904714746222506261490533307105581114044966551804200893620924662460134578535495432779054236019217415847238694683126669435075629782825361644240131737514641825329057290176607614751409150519704210202175858002617184665694314265434268422311453939126766221177835746841927286107808092127279804308786665309288627747874054833235709770251744591334159092131087686564054786729825531677824231951018240410867542864595240831032641762250683275759831915988596706882458064453292597137011372199944162958790640403853860303824169125210674311120521203472704633089402838224229574155857051699403355153157950384208472748018606399741327471335939832257151487496818511463982841700117740171765537697752190631021642057983844316056359617010155423220731673475756863236617169191098600774696965234688785022899835850850581477313858979981662856387143582283536170489205487631205088338096842816019014100772494233993503314439336849348002205734287221710872320126334842323477875007957131978796259236600878143481607434874229555185522261615399577194399812037953858115617702619198254284940049749030146313941572807521138147686883101945641494465800791668118296480023631263278568779873517288570713232967327626240095297999898135199045614356472466560991600454978024015153717552851735704298663613281252651823088401081601457905064535448791209272526390104381578311881618366463146335514518734741054959281373883432518708994774950485528411086383835591108379265868085898920239621441722414246772634118427302227140733727796592635885557685425009497821386373204338078374772471468473812695061294420229399241771241153959821195364219712227356670981978888099731373312679007328805095938002138767965515805028670976634858166055989359417666847930063853782026324833276590710029674351332815302878947619579120881030776802034888337510620525599636852855280416461968695376610797802339997319795606490198011040489497703079652615254345502322616179940988666417258344516646689348166401588864225835946541083776547667679379299895442531547277025525226223396867813352189001625423043225881866472358156048652894720300818597851698473983679889695840707376591343362638338332055061697115229086018985618702147715135475637883370332756959306543508569199103464385148880339254000986074742043268887822465717777338346375322804364036860483013911087093669097187967980927393788920102175729386383622325888594129916472429508934397528402910595264581608813848265885077151691944744527132628604223103438312634469262808850881000329412359724051511958225635359465389495716896986358623285322966666985978063734315710921171967279830545866134206294370155465951546081097396336589426373861993640721950724068215996691095826134929180863004049042267180281162401450327245392632751032441459432053620550660315443902492010708110265561469717559256207500582935175324164441784537025596133961434115873019773784314805579827177073614298255241592419267161845985830838970017500620270601464699793680045427121530969762775899005015224875672245537882606680043570518248257778942970497755464183437408871405501013506379218037702525231703931335229159556901855530525085441595241370320699891082322978670596488198784924806860772839334098340081180700254758101784169212481405110910375103442547199582559312294475528513963143870256054285068559014195793921519644991317089155449657400392900195956777066150589656289074734517015799294599630282706912422186447598991326635239019719569451461361537864590967439672630423604027423230390557812216069966011775869330109606866911145391397946561274529383534023560239718026029132308729144976353115188291428514457328332005545782298858261953014163150675835606862803341994864634582503246428143947557237482479277242291260132015553802383986693771647396786262309079472291569480413812724694232419777125170799820545547253954249624785620641461467916671092944097954999910012961139121917304966506534654503837500860626311327937513263292365692454244034817210782008830606524957942719435565446149797480225475521185341755588473042948944541110180268414838750384608688887162278707645409527365296863650152964613865100342574715495241702653183386543098015324876250804826800129462926790193115385078202072968756908951634143809805657654660472578049326663988616502329836535174890989829851084218521365670430991330396427942588363816594213330821055614399406229314500689494419138095108390115255811581366934634851550059385978420460445025671885352528261638964274208665024822826556526893032045244727490197911621655442074012397651176262197771573486637359886612396212772322745530089618143786600299451412985048628738349579324129356493389741996120869761628860011017525772977838259259692026327156444517776795192796656671257317253945661637544569502452273105979310806847351599742591846738457549636173925620018745347036250982178394761531936458703372849632974439252959035804457252760259598857537886657726936842527206106649668393103257898175853407561655657461068035067654974262018009274462573557873950328341194979628464955138109531895656039950218035368544613368707780783130524791362811679652747160037303081370436370102685806003153213879457837511014237561450333680695352513384395978013944141760184762066765606737961951895080399614061511107497485711235903865117789773709231875835203937624378343143795824982283876194975501140970059295513668206659644306801075787624617029959438695142292107181756347097126789686710008054677573411408740928854055731387703758417256153363341393035020783118377747983690613711451557133293867223174592826322994749077225244249163156574473404636196834418223942042446478927199252959239842159454282615977187640741743343405542560760545680460122277531999878868837163376920401792850730784800596268899183317786180544636531195604295402504583191183892989306591845560260314615528719451093939198900018921245222430182664081138968582848360519567286108602275669327715982428210382440053317371489826037187834464827842833901704177022551047196672575454777748448830952106138802991448235647030593063824999026303375623741465829914428595812677457782375215079077642300893526358833540687384059833913753671810035661011836463859874008788880065730606479116833237819579994803655372069679363667111008257788764054930549213975106087009285494228029372060323753128802152481608940032887315394529909493364252099813325168557210254896305852047886468203771536062330722759386369356280361186006823266052054403744840694515494041773885769142236382780423388845366919586206715359397953825930345411129656763345448402348500985922657095388874268270179117789687167382416402609468883234235535421589238108173604823364323598423549361143537629532319737847206070412568588569373413455691045200172207303814539541925424279396553911651120660562670064794241050647801876216097572174695912618853349038229809732012614791664038493988658616894741333503698670190662710466646664785474561601819453585280664937367915844389944823213766275202072002002960164173624248014873607230346953074891621124014709421977222666341529501115015946106679831928253180752363822840798359743609123180643689364254270430859659632156202517378986607085038926298254687839489959142608425805814415422487559741777259103665660246305760102580402279318554669874992205068298629064273695169477779907785836408161861640634597444672856152425381428591071211157111059992703243147915439260033245794648150157922316576104648063276641069805609957720696831789526138691252463204164586264885701125393531632287531941832935186910340411584938072843704065103180104462911304342428929345003607038140851926537719195945503061256591247066262827067413475725334145289371590705277311126748759876969028362506505735842011958610688105408933660100756123198386530313551999125138600443125526596434196057009900023307212410952582503495229987736783390542907554079523222997778463852435042718945580167223499944173326028303347506555156859797370117684860635169751775842822694642541844097345120798771028971693267687812874048984984998497292692926325099309887212613772142404300639021918563423249225441241795949680014329651789882456499469569537562643517977584546777767093783332650002481105049969680730098267390216478349921768152884681201485389100156982266122028877241041236708286313534768411390528352901413656088409718108289720578628654224514415717190294310099003743166688166460155837197041051586332241960950914522908612131160529704624224261286886126564410344717412572356455581620068769060679353882656020748109525919015228656789251369823018395825095152138945290041338352953440099170951341460620799345086266562923225626079142842095717675633031142543867590005341438364431830802423400341748533690881815120346301004355910069388871676490680518415920795570781934688730801446613256462955993473654845012445519793042527480249563110786573475265790479675878811788776266161082553909304711843814236460078438504930543313311490856261506592364490748488133743823387806956650941922075608321352980384813533327110015430144287363439183788422021731288652547052923024917677335670208386239494879781447539559210739207736340772106589173286859510468110647693248537709116671009720028980869346400874409272988053789999608417506525249250236415284378087398126174765477832933423659540169541963693336741192419817603833743637615528738767717468140177203973851850847360235452888491117293791229532909163223135448616631894283017997826920633505459715688047811491426169135428306286047974042808887598984203735171179481488466798018039896357796609809699424285084069871489596085637361081902977645580002332089327592508078668204727841554540019424517589844558110510354429706757506178441894961139717438237881656204477752474328619978536997005167290918999074661290986712113365603273104315074404190589332333460153218173449403212198893329415417224497865218751634507753826041166293890993018086848309725722907451724275592870725274036905274820487124459857412243336250497532542443688847904290703297503753785887591512041855808054431382751643993898779656914153026587879921527500687769137500823443528645217426877578045598736361453193051174872555191581900365510502726804894578147411271013740745570289653596824964895258430045843782271950212395097443655323993153343167242503261105366419401003946022770184584117071441173788718946553532816165475214173582175647508597293990760733475540640230025956697527670821721755059732275595305746428228928932690360797155583125790451211897483963103339603793482945760505343929336042181265014390933378096133934183361336329717196398899801612706362171206697466852868430524250492785908566539048681599963151479800649680448056021885887382391267558930922116716510251568418613993351631487986612000127746280104691894789635572215989411827842279055175024632226150376131354678536206503673691069462236060206488817999145926454630854356082490269441501187488941040510155296019820566037654590410614488833794055349338109848208499867502067515734349824464710029716016073466264483796245148951090324905133945114117274300576305794467659397478526442135297708354507906709545171199608509062840679769145685322949949399129598670063825652008930369833404993298412398751149343894877076245216800998303188966616905824847543000771547232085713818550361211829706495613571250006861574572920479316011815140340079750624478723973528551951080078743750357355426144339591557512080467585571661511483851807784897796608148444829959644922930528098398220173458107647582557473741124898752455911173385459366394647007348726929373746213080426524090082407949075922214285972558516476295457401022759563798343886602427972793715137811602864781268819313414077244770918344738912645604543293124515025655175873675647389713463791142052060523892932060036998248387612774733709728016437288342876525850387692382263190012827034421334247294824158423535490954021391667882508122414030950987960706042417933406126563404238119310040425073191552769842951717350471342882141446078484165732751989495384637442213402003569831968971849290366673634301925572699140636100662964020786416554206210012636783262258198923764796233204746932607467433030294090983313014547255127090692537934080820493927438749095467357503427805440857441454331722742695064504733983469128351865748584951481543073297885208143562489439595190323568187090582453058325593178278732453634299598270667767229508245144371159597299536369192274298207346926046205726519631436142295902647823679543264096143879297713576746695689590361697004741508214916232900210464095826070956714874816519097073847513671325480729183540905115383023925061237948100700426934163403152792598729311060969871251088772934544943967595242343118135358592124070867102538067018749710408377598808207076528339901592904597848677885538304855539838836012823347625180135001712116248357563201104598788962130233396850895968921228832953400561978383155270540862388610848657954827530159773448202333185034212360234883782925982926727155169066465209092754982624131423161524699556458327378021736373728979395564627649533773020809057080580512363576054347555293611174928081729330698437831530496884389942239700764629316687604855575289109617903077313836166786567183166780981358887516245145219389612546872381600358918869630813686736331599311117765744645707272496480873860788110984700789860976901097999182391175502123333534235117691022027545347850319433592161179024840009050361805393313695593703659425563442751429147951543829765374662815804094669709232873287208658744598845564959626009794224237991280688784826852369709475770925628366768922193932050325705065088799816553098953254308876385964615515154679495358443898069588772669773387112572741539447736290664936841069042889972633245681330272549922252575024261373703146354183652170431175551009170281116533917127683881083459022238040315473846504177137438859074235380569495450885133457212488472003761181997377572374206774018471267964143944900681983366378795670276454019531581156273710990752171598908731979168926797476502659168481046100974634571668167353146484464119875231162659817866653392308611134410606915289600368067839280557109159360525211581366029578024993283253301262641630131590982903786078670378688887587482438855668452595055031285829843214652213322869728096705901762029315144238368496752069800890567375596675417317664111323619199004628836037303200638705347367811120821946155380172916310908934371994548284518069979034707867040975018380993995740692528383650259861877981994250361036126537517978286789084049082815741427568743447383441143910450780139728088447238573412686062665954446154845226321703001442891396000789127349971192148200249158462118011155077360267020027395968990461062316458729728781054199022114552171589548036570123805732378216293824638548485517627271714473427328567569806968108412900383186488059587459666978668824701894752499170918132126377703245918214261969491365660126715116079778250821390177457069829709813367838275101519586096010647529344111688540721841991707932182146299191574857712347252961451053650160273845791171377653790837700669308510848848951736237213138314206620131109917953758895538505893057605673870257311609599801106967777434762389226311854766732131400234868122256006363775769437539641488636440663758059650230701252072102701696115587415786034272285526321956956788416700612423623515204217386692405890282850400005801129801515655988481879711529107242701884084627497957472101048489237347207980506680556831100336651317963548218170085822716534800259444908953125423223759432292361703346609713745615365812216129400964682576021609548074507838903968001055414812264654988597871542989845316568820222613978163751226576764332410985478653379985367692501456364754147646489048290998217589812864199302420513691465270992360402457713786709866399108486289317654967911674074027841770876081681451509122334936190655985884507836828595090074337300394806191997544866488408823241431460605312101491714103252045499599543458664834780792766210141612944908664110524651178437145767515854263667011496615105486796876538100153074289774856406750601491302927910778450507164031695958637425173165314288035815776010001712552003352610856638275290919691524802282543557596576067170225796192183810996893064329024717142695466403841285671304964311469664706470869322851930852226311449555345616949775258151652939841421427291864376133735100188952869954359629782115348602229701453008329558600644519760153607756199741291857796454718489049688099605633298221633734096672298535789200480045200894058470365454067725177660832060394732577192817773479813292295386170588677142525283901126858358899705847678864709882714553188326815616231710983957352777255249228941353081614694026899261232880317947820741751704867597673666683917722633952373407852027638062948975112860509231841652629612296319715717261804387931689122961544783066929758906954993935441130754313869589535718881670929209537937151987560157178635593415864306593836589561840586048599072842450738178232710850241081529041572038668643880436869516914496068343000012121516491001715726717691803141508048956319982128002501018172051750203166748908762878337592689558261785136620421546576040356583023270754573895627016695458907879700803555625311208379981419287497698332689609210812133255566239422885307172536736674665410291809986164768832185473188894014331960892130269930312627068475461413936402345386396157301960439966192029185422100914203274577282601331049158397882760879992521169078644567994150386080564479541277053257937677398104177220422754384802580445974062766193501336499216920939267378908678527637602564721671593600625443275298937009719682657259103766932904847708628039487191906282951860135349926768471644656592417858185990156440086935720894120288776195684791663033084936209768494061328509810443937172420099185759884340565072578254412883216650965015775667177671260273959105446107743140454492087364940346424824692092512998918208671031997630537250219584432854585705822627955170339602423729327120397674694628326456362884183008910214007450997771882044451945671738643946460076443151348187722376022351781425208024137249461499558513750585251411450160525335350245981903399049153627878549380628320611913810085944245818943361796010609304192470705372800821797349567586244006052726426618584111514320523249610906640615529244302051190556181354270754219711275835652576911755218713301166105791647200579611381336130429483114466155607816363918460777125435713456753811674824285413847436830276166877432782906712025877869399072480945424935672401234816085041918422009552725193148564101113574483182105750626132738581348670841423544033867698372914207701434315224286072119672978402187724574892212814582165800051383226543197012491882931828817111325173402062803540114218309943435885558341776063281168039870761301891417354074241890682924684896031426020225075781602897137231009701531807912077156841493184944292738962364592866664639487397745092974752461068666391195631004037310909791728975522103965337914325858690374126725156079247868211638531925783188768289464404302551283525816020166452805279341302410751220489360765511761301976045976217662475654592386855379976086695647080996314436982789294349524176986477070438763691673982148620867346652033683760092633725711651956591853364773883898453364968886719069875152303883815334598134288656720593231685982392667323323533121842738624158997957880437376162958640633925995663552960094971378458372497402019051094327597325563106097786118669124070167361873466304257071963913046893406589133885963906943196584796820369232466177550247842272192301752811801103377273077041669309071633434355461206252058327935801903462965634188452395634797887447744933751222782099949496065147054706981606526467818315056002907071835200831535532509584833687043904011655532676098781754682606654496491923765490619069033275785635910600155185766772859417895990100549620019477176115456678047773386764570440441303159145490236450707317517117646531776703498796017385845705241509413914223433230008888897018340091557592284866493740462962933430773288247248581395433717709919028954269899667295880205047912706742440010769807493958093104572778603629177723301522977672878935826522424081147964739341387690245324731040309964745690179848582341790810728467811712700705249457877207836565671182775699822766540838670723687701806540006137818676540524923169530473078115174582648221356982134075542297097842977230036297535072635743880063270320454449624613516117878190230820628636768867584430829965506621432200666306681213962994871615830618360218328917121374843858368567485790789629537477805949671912007312545898864944795588881862857439923364400706784849540067257255430743265775742852959805384667151495981777603408274283018632120816345895907487823203207868616945976151490639227750592326560213337050432267758014439966928642725697651270729854743045939759898562947721652355404876123380523364497817322300861128389990124573571203186084460028586477653676916657640846294130788314957165170909317195953240620353020888482561793079385580817367831224375570339935564892518101005278305086845207238227239010994227082700282559120802886400922116978308911124882727158890766929969058304386298578452875553406014920959095343737522967853265704685809593971775717787787167932288198274155086014638983189514990276987685889564217580813166404853666717883537472190794109786659325549597525034922465764245842165445939656546997643771177541041650643023132865393292253863947557624137152991223162010550299964295837907833052260319597884062427275926648716270107037491674204471373437492370103951023018119251170163481664091911696547445368446537846317795844901246635665690348643527388722317241384884384102964686851644008517360596769407110787168752696328055687887264875125139363505592713164465415588031623778793378095040722303947109073642184532938787405224065240161248688069162092541085997413030094611868439383966880793190347196289468127254445305834542447461731991167818117218092709485296098850381719751690723044152496793267561150425517193148260048626354920163017076260042921501177443236746475946756359355484444675528956952164312320677831789556175715058994393030820254254086687220496271203819270875363151984190025692361686569144243658812981816458566123727929412466995988369859653439247363765787384362863057553841286921933335629716573946551366198641473339174325526117825851533680765600312249505744483612511774703292887694680433421458767183071928185839125522692446243164896244956157398866358142447533507206078375484152175221977241983991603937640699434266052945675433238470476590293118116276420090009324743291205811199487765807242081562196526726988260525658264035381297483900329216594673273214606407441142873284430607684881433824029666213403467718689876674213660645866686425962919929786620679175443762917086337932516266200564082944837367144174836265662084750269891804335029323412855895179572752128761136834279963121784677173859071550422881807549286753451186032722674084926864151925503623412076980700078920837479493976370949063351533474296770431636084778277109663705946629143933974431421426732214775715839788415891847580623609974805745530045305798376994010417467970591257142569849342591631294645652743684521226095921765783697765177359692253946856477811347640667383621718102502898809130949130603766310873307249210332294194397241558374861642760019663573599210807431299665818999244586816022227313984467958477138221602149718503496238873419714257610029478560250762967138293101073885250262227840978616566854342241029582372887772286824065162758487199657647406917562823707483479773929811355605425350326866240771666976803645659699825019566208044438682364413231225012936747782831745512253448277991043721018672160402784320803631120764167948503574983116849756502018651573658970011561632870549161820512026246836974291158214075904140271960509836712556218481349672008690517268236008004067232353661665127041018656444511476547582466782127082066752982302030910019105184756787295457965851148235200438284346689032985099851673398688053052371469140479489751068826100160626957014731499624319401089945158720111249370886367928694780783406840519043335330144223418001161551062683305328703171800458822523539287549567608233565129769655039285341806573523858502672021093694676575760285457668170709219143826297086610380870992831164953555733108602307116079230562155737381985140374885776019920738777623279993602054022596976444447217850718155244251458332705719271666653396287657161233183345068214144084802409852841336213102522687551071860316466856921707359588183427459017320442224055606020081156744832406900062461266345389295235174697826772828422477636115554848432460770174390713043162865647064701202616669180968412537570741110365128574231472264357501819022818413869330743599392535411712742313627597496724205456863709587295781235219737036607038817723494252309469629759594881320454676043243440998297516882950208677104627408844658035602768532040990105449059176919883411654786844756081512182827273778508782547527357832720634511568789093067363438562555117652610534037704656862127135067479427657019454265110607638702997626194737493173086783634955486485990457290553888998233603336098512271951269355779153043382416124426543455813625454679768100927522155003090073681953624880367104405937326511817453846803230139713489079109976762658756573136847970980190159285662781702290785004525842096056125029161506877605471371248544982198272991471860589201521948170291896013137842941087870865943112385573226084822530874050920703911749492288102467292101003994700697506908668877078651547374010501820783369494885054160513757793006257999103669369450538325648366942396688540421869401041891536675679805842857098152159678085824031524471314797317087341941252007278621438707606866252266284028503153796721304229711791023015584469958066816791632985651172713990020246496231386556021997792071454180211275875933250663877533464257940151038685826049028226037946126803890745561042905116798738356266458084086716171274215644662997374442378637862556590096568738603106380580351003178385006605778265227138273089319993454074983604437928193173955801529270917622208597966607938172245397277211825212486279605021232837903105900090434493536392086049544706730811079172697143164473072492405045588154828478988112948104144114992472229148755308599225245327152034923748181024423090832078032758573918648928365608300277641264934945163395542543035431614587719802100532527917373965297683673892134643933471831178269275747583057256051352644488800746724059682508984604953616988423598155366529194770071460104147189065201850713665808614295391403305540260224816352653802346106997591004949013549580420784444932972921042748982718728238141263820778406266998608906980018855188642961002376584599096080549236906645325104863000187141387670063137290235269454850298006417099234112573815244157714445557239277280438639329240344739971771691826236701881706674618364484450203923421990429216068618031211274621394187442828390819820751797583554327907828453270792436078156888304254685731385172505974220855792518686071406249300925525520173244848819391103754527410905481259607753688708154533355287698324890714169328335345398526705048694718383412059358310472029170493155724432767665649370663971937090882702620273338964764969096395920643498466067012276327406366567755844941868412068007310406437831997895292232433857612329489066287472340306833057759467817598306723930751034451589099208038239800753595418385298087472186962954999114698001573013202654848215775239929978304021318853428327792461939034249725555886365215437728222133528133676926335966310274127189170451579769990787127092931568251966769116814430133354107688897983114446818095212042220373282857964833794361037216391170340290462017682624467542870806773567191994105432285304089074348054024247416791020363884126375807256045539768485148375653207400707036991231613222056729294391571422574604592283648180427251539678198993785300782696790186933827025473636475632394495003361369898426006593298492239148386226740760611074927985479541585096543410465225655844450141454379166862474026229082180969736868666621789098565469478271870307228109731411765288320590292311974400045810947010491959512430231677402705128462320227608626879560092141541199266384994261458097775384689288884303956839645464188554470399625649758136865068103030923156504986750291489136433068773632269159138805117879000182783805545323458889471051552801806627549592763820844802775554326108772266106462817978195281967951929400180111826374868864849434294507678172223240515665070922276923705921188118169686949759927881397838785576703421447519765997715178599995292100077799837588509058286412095651251730703661554043929282787975850389978708605882890001206307475592910284712827679915246452339323869068870232572968013575278700908571324590174473940066867394749978854829403077196026123470126655087439112557117987031990550628891902507687374983488600193477702865292382184499103542978566927509165973826895690661843678250134802026168749064341240459808782589697689924816918218187158840803634656177901383122097464756889556071484038904952796535186059900983199187047433112357510282026375723388144696410224952643184100877172480429541752763426116301133603810359319928749847242803107775358530879200850048803627434605968899530585742313633466886250106651288836860945771505473847850468819975825222741521464239950334963938883911410637793440595183761543744670247907746161603326485029075116673767332177828380222615243478320989733727503153767577494069607082484855676341853580348224161595229886493518963730722631061250088814523373811970836752808283385218763197740895659628820603163118135554394922164253225497297958803661545175763710363797059525760645455428235133711688641647044442035136578614530621511159502291575926664168649179431455514333640334286243596673870724017351939048538666007091431200193299071031856774036522912215420873054583718443530954734500241098475777784987407063125176388183652758702201126784950942565429150828266547047058452017027804970696846624708163245333149855776608458353973806448491494906938474450227787247291000310307480570599371576333861808342468236461328240962031837276283311658956984830124148686387101559011845046906695567038334069744805228461917409807506756771109609801138676953654241650349440940172446421075077266349157776936250499934027197743135777542089601761029009104609699066925678000632660569091008711557899190425996619387083304627300939580149241372946150894194853180923704257212354732379497161578670221810308460105341637505110656012677229692249180517236715521718150990397576840163223439351563646566520265616039877528886077287646691246216980956755323608208693085932254274520147527241398308049311439922309314257592811875087827136318137326614795580674799952570408047762513673547447629578068933807835654744663207815954870990457404032985427863369832499664869765730109037475813385819328948422195897765848036372955342579287979363736984028014642285046802956907196294904795026989336119185700223730895738313802975280654860744479329118153727240933225142477438000913770346460755299335709418806660676810187813771735201369535971521953331032675439770999019645019770622096244809217332747613349405767667998867358516728170425781026513033457253285129375161587656699341806102456846648217019663408666257379152089155765850993810827100671317318591922746794927094791154295695453148876842056331086208960927875000986547313760353177278601662490275492648809715876050574424675269076213163765190079290031690924738145669011393084234377055080964656904445274918692149811424936054211585658160701441246494027286936323913720526079555914408389544964845458761736833413779734136824385039317156830313091205592431262798930397097299109453204778070843845496896243362451898987853986129858304923945967629946524601775407369127151750291576281920994498635748765576616788083669293057157160044363947023503521203878109851344256750893272808509517751415300950579945867276403540945012213237429506399549296924550430417720396316930053035115216796614385904349954268734735346916408258402323521981437325494332020786476515714391518665379164820024948124971551592201862381401069508779416210438200964345108954698797833459136992894705355742293517087947548192285137557427813447438239513466514399614256262784933114141002317932041661474711634420851301291062310802874007902747913933186876240854362005284071014006410185290276275277169973000459832854710339895795896673661837762544127016004592962591707118098937967340976048305746902573246032008247746900541542196230742228182866448694284925964937264084487206664904088389122715243744942983915324376157852628594617167100900242910149496525045441679856257347853173516467810673353606883454472714863376381603152962653873088154127708590711822475753480527194845940329005637911123141723904391053618606366248471538029821557038128906079914566880630407864168098458029368519755546522202320312798309966670825485572055567395631376029280154517975993695461772313283554132162646694124015397163473101564366863276290154195808488731154032304083157405900277642863157610619450729902644659537136171801239529008911487305390053791925765204489038729809094138866828245012584098272963730415238386938264404091430834652460932916462204248009587157626870110638697849650086391553049149836248045699998405096786753172944994018800188506327224345172336106534745604035320917747591351210103737632826568750772884158342494932729490140675321095209910641015263342166257160795253561329719041347380159434610903182852675408471587521773636250011133164177025803565327202453715309454316175093128131301298032898007929949523403839366726622325517464044540042750263269320049543587508461528753614467803513657968328065992540754529233999556164350582574971919638668664503138746325300304478410704531821916793985338839125878559143204262152862101335312119605175325286457118705889602334425441497839400289001011206776620552004008870089733916100404417924165113588510809570352075807158420019039964436960079665698149789958745394229345226867423394651618752873281634583656789105652466348877068581420964304390144566287503297713988722194773660169150645114752070540326698302332253817857801894221178986022467643342927576229298543075293949859415540905339078235129798646878815866024315983252286076472609585313926081318310399077945242958531653865198536065934656116223436893829501504398943818072902022692960895147339489903658756994048301529420371277795098736667933392718880520872847185892868757955333523520681034102621502529386915746191217337194544194605657327571432968568930014975501471596962433506056008849255212674711315937075163446126033360749307635574641931951805533930241599016234895345615526538612712381750952396974394441814932942414242380995336925964606385067003311700709658144795182731652492302314859154422843279085764404767698283557360560266721340475492373342574295084546557572946984025961461706873286338009287810806377367633081109539416825737388870889274494277157347617150144061877526359970886897060601941771709573258303216259874129961128523766170780574074223392047804419004111419439065187585467942836997874572987720195111741952710408379207203814111438545125016447293167204248331635812716289920399186577628710405953523749258055162386849574262639223564682049992071210776737293561534533888631358472271311515981536442485454900176813717218752479391756361941474390773078919010842900589583223504002903735470514546879970137339392126924763809501237786058843357498327359437102491149149042307212500213807726477275212417268622648132667809111682671823895826633187177242025354455512628372655038611764325643007035224602939602015542134322286208753771561438013451744257472302973581963710069080459651435644724307759115314063360111761618913112327332155502054731576926821048815037687462916603320310741332578139839232098342686932714059087917267747375770042895523147778048380125349479960798540611044663893777318448058823650226761022653169070426105259338690786808369471516265766465336279843002129594224703589756611514643022718737219956136108466901438732733831077168762893383686364169452340239264611479584751285947770326079114566398469842656001961667619790771391051328546942193938171999457116325513749636227764808760258088610710896408266788848752901849928095365761525960642187324503494377806198981304818878354951701060888411548341655927848584838796620322899574972446177708733739310799936610170883698889138928921864452107540938232626259671075782133053996173905024346589191714400248798082583852923602637175070795505640745719488326397789249038012434140713650259936978171512865448333294461426050406977153963661523296112656331174632104464634901575221881043183562635843902071386049787671031137365836628801036838824925882932946331375248924496650618420967613517877401223764594265950937510944073606389497680759674253066890218345938789058704205196637598504428413867509118249350676302109715907408357225231844475192259831457006580671271895950054058961334098249617534930905623535181827859764196148492086012151257243245251414491821398131732389378530914613120202630537752921863282667353748337438782038182860238275447726658857249634165577761129839061558933273661159748749520187514375264039887740970295669991667272536971119588583982370297382447720574765897716439579062307454541576029470595326491200468735439340751481838304682492855870596478044411926512421880718217504855811661502331494583194437828196515870088998434733561501741460395238725798691495809684515072438697030373848339621335361592193601582468354920745501836610646437594277495578300391390494595746682867842474349735772870016358744125735353921564326278803446588722719614341972481120798384394854419980912179653253827959674053274000848403098896782634340430344480870416668049317566342980871281967795188068374488540331359168320164497185450593704320917826318437744947335983047608748344139337583461886091584369724484912504172212084498875811077441463185152921063874493223628947631845048327617539677108678052920181031473588456346937442575667996762207171637738159233343696859236322440333908442979766744040549835547312189389109568517719627306609448103895445049053463501709957501984521308623248494255278547691946198053920726669363129464187211525147042445765549754381992554092353505992478322853233390172317255658191344917109239573082741778424451817017308386764434006243134265911511651423826142280909749873927927756020221550502030782157079324341205165166887055306221164499334751963579046915352310061430155240754642669442680905503496451949829274503181597280886018217626047518598832537067142568805851198955859506629297100532059895113206810969126312854316286818979164884283660978000867331984370120528614055363717684209731423043135752324908000246542725926134649139998431205461471303318118101117687259733500664495896721472845283131660833173425351085970074563990101999349023392797649365483935651820912376461476027146421241997210227767624140064725920495834872582677753066200439138712087529522089499752247026897071178584220384051648982239546047612477282630852356123990008452696499427770055787629913557534099152724306222816863409978927401504167950545330134579118648344835464363158475472079310579804296688519589345091984530156838178055142155801188123714584954406299134143877643830538720338291839052664637743828169466404513272319281231874077317196229693820107512651547924525719535572482735172398777245993255324197300018090086566483490305701590594329138139449105525110871687461004413170362031495573658430831504920267830278479062694807520695446879261691670615705147530510232778636009873741104620663147097609320087558552269571453273942450627688456019684558005147969464759699267603873205786604846498234791843023939216393091771762522271606052133825123657012288329342482531390917715369098427253321755587506061685770038304650053700648268719004994547644498564830292433729253114234260555975905603723854549622171358661320924263483368646512524796279906290877958283423177813115880007061720372766314855075447174951126352843136911278098501263754192266671720717982702886599544904445373811312944874851070004324271122854496750347641877451328685176345668165043716521909422360412915334661685478086856507672241318158384910266594541898190126965659846826953890901628294870604412650216713030718806311699052097865671645147567739973239800416590645545304487530349418083057790023905987162987115313195659337006084908885919812839036410034567121590989269724647147318717718876914815389164155188527184216650621979517428367127761378239878698490315405133055798441048220204919091805650370856223315183687090257253087494576830172068747210765202760544717290741559683052584864597190699140017673540663060083231545276352714981748685774639229016646495540283302750195500755774933652034406175785781211471872458328695877270794050212612496646598447475975095447072964432527629843458946130107710052058169856992267149901472982258763265732784355397827974389511377725420915746260499491575822346230211169189202731213066798054705403806326641837727053651060251011509614506473287717215764053134492175133123556995682531132431348898900531964782399614157221120281881399091786952928068785904948702267410233791988548686307493176057296760563032908010447777824354320835423149286382709697237859850162412003732145485622612474290404477614051384327086042395206227768537309886948204602900189685570495282759416651336120420526074233359204007479979300988544680511060373642653102596828098768411608624703241675572868002241474323797664483096685331719219290700867233246940317409773474328600060595409519484059163410585213535085643428580789277451823327454920817406686079674978197127229401537307208160008073296681799574572454381103278107402239881354167542879234105746732139840013973530685778783914569340507880209973368359246795025815650625340353287212805648947659195808235919813861871129404792614628449671209985455802241895187863714216006827693748153782459387125420372637126986469888021327603230216569822133212019049415302011716371302732953999561627148958730974161205224869582015734242550886075274540762103759577762925856946946163091245421280209636087748696544556977684784747668933333228050760755040786416422610612921579355758625330783112468397050618748000852810679401716304233229781758799597180859503323448253051581726075887117602362084211873972425351535882114283295226985986549920992788473579436083368600170988368260589512264608439866347350012529535267586546315155234576810623201591464656243395955465582749193210752577918798662762085420124174990575247214120116912566194926863187439564409912564074225513855075531836954004584812883293998818663057736794981831712019537345248262375618647980327397289464622859606657202505983691719618715524573715895322120225525231467008237337641495494446717760276997461125269215313156204984099484884497418639144633815659768003337685532738712037187601937619585417063504173870427242588873873076322647745805079992014942627972760700338998843099063893507617421566544637139225375200615507166796146963852895619436674855157995751550507918914271227253276250049170499876832176331984827123071244857801927828915875278715943722038127430840897973693281088149951167660630220670640195026867504930422241114872245722231092202346613047237673918353618266985372903494169907417478408817044383652816620317089962078464314816462686539767514568428778755808898756710220798982093580822469803855045837767437278921122670325922571879153682615893360940731089580220452107549997551891636867783252404689354996630760872456818831987069700755308240369916817389709013890714985503720032441488083738923440537575683471435381119050350346715249990773799435520412684869951673364611187213178468787091148538144657189885670396698264737131879195139715058957777293579962268675351266178572561827677759623934941438703060804661084880848633953049418532840599717190311713833246930300145808474995323185159414283088000711617730655114907109476330065671032567253201410826869603984821998503221085203991408500108067172734184364668009343500456989034249238001116875498730695604488110698905890934747649069271421289901128561455735150789816236000660477458059887460763512419595056810380643415225723632624847967207413247404504704829612465479789320874960520350124222807485408336834337607983048286633770439914906937943620751024542877376045155440818698920360228662975445640478781512474784367252634317007041967659099969523646649705541892739222327451008294822551440118364250518381014189175191689683499900174176830957811764000615977328933080767165073062520034099813751474103121672042921730796610289205009360479808739308967118353725681237815620724839732980252711127738984530458071180962559352671841320406609350066460979861147867120458152392038350773957130840420951240690757568079539309938760743278578018775736106244199992914799437026031560741037220969017541453508385649896620511035143049565469977205982597029967553826198965832374139642546791693307576714775807466535245935740995088140719336128647283465592452142226224730831771235585373985180925889496501813778496435799748399020413816839906305047501818370097226336563592454326220854214551314518332191670035443013750806155021326773121325274405825797955129142514340663471017211317520977034111799557148903867403034934957727996958580711289594192517218436983205498512343465066702566341726965619591905772506588969362815200081017004940535876536531219979445619679778452387613363017989248177038952871353180690608507719980068133220828115384052507739879798249322935386824665429639075640798122323995602813598407409500896703213512468492970813071011349189166149958918460178087332937454518564858591669952022314997656987977176369727779742537441352656418744707473610050072753821282384283085611023494690919434277534360667292664173908391919758727478552414368541020088548723107564218711613414242928775432624009710620421983257172608346517050116011589468594130386999120134125677512419627548663089427568233084658513438715320515644794615942271856341851901287153375938985588875340732171947414968313009403613839190994000247729187120916545247379203838086565615239075432697504270510236288719055101815270473959730351110057887338253893734540372476537758278822977734628568922068326180821468285225946383174171363796226474736750534959872095030135091287508631378701338611929914961137322582926562190840892820130415201795254746262048750521907461359180022456423897891967582472301310994314914052125922520573217289348277007141450455055627184313119834296222119084446694103464497032837299236729625386511786426741181220777835700906854297881317444410484833666740373653378593845246406394326250373062000415419528249986966778297436258380750058807457425570923609238292961742531765880583662572741241818234209312662977367675226327087869110043955736900186096556332677144563091166831000107317548474281291253166151976604788946119519807469201862761962280037886622427392638880008738805057224970549778298322262288427485887382933150573474899133455337508345935511371269745084626857620818741646996281575637771548231372158691484329967664869656421979750122779238510615053382625087110324107665852903426469199405007849812650732079570129898292470877339873474376475339399547236254767058151005136879483177668617379616483942133320923867640006108000923318601724240984658940960495777133871493303521139979322027997365475643369209960270862921627546175321046198283912489177129977222239903585408155213383830971054853177030498705129852051130391837571211705818297555316479398607185251285736307170052751744012551828534728722902377910599103252762997312220936815177530208056612332701631190088769766102810862997930822998906637012846996016462324314571284377123011642715356250190620308019553922797082563674812103572205329455820327282935848824624193011925753909738284568286108401468422934900006019645635565872688956563544468199520472461705953224656375177947698488333436724147776228996212289454862699192914901277600341208520583002681362865445328349852855927771743556270017074556861623276134464440649737683849517360445642209882910203287823936792047074358558079362053021433670549827429744676926815283514509455501894687394610294897423720741147446566268253840842526364319389268478862210983485045313376035951543153805989975669989981936212151215983679255958532816163728289502384967442563364904057092865202938493110577676609844506675552450607679713616792150706426751372681532001739287134573348272917293500169063565211155676851123506297057642378580186100010069840228317900381707460152250034376876905155940576389086115860493462772510495634781050019792019711039299189386990287069294422192663713033256804240720785166613946763651430156722455734159099922569287416171057344226408797008660390000115682645714598990604291344479612408394163234565140152193277146449670291634328613763929332529062955693997919682433383370366200483643242392196490747378091546455062378172492643361672130311462094696952224497607733715922085787728472129101355373838437820947083987882253195089052098690125805357541999425928350199730262041370449517841769350003855078326990318655206877045607245386878270960435269804985513894801213216279906073502544395331418824743318581444789275973594340073184811432173012224131623053964991696042665075514085232062309656105320770160044874888955779426441491844003407503223631789233157079682372157477835976960289718638832365272016210341254192723546730487046264591724802820761553508759662207056238165303823543605158316836934396730788815395033604112056206628865288009035929881272117598212397691913956457121971798431445879599983062170092726542268682224944035901286958986420754683735135053350573702707623496655525815871713908162577179807005182830462190248798418094270284973289365918721867767119306613072172197387416391981014063199956229981204564505047803329273948911500724620477427773446096322976052967097725473612768361975008623218022599923469268974547237523492310099446222391181093889671582276557466999321741641432561613178475830338290744025519336505365095318434473859791685497992262472822733504749389826324045149750810171129124005332523261933688926171807526239415940696633055234350043582031434202202557511691614210026553966589783497147344894934191025974099820413629822967489764689342391663536216861904014747499140799795909231743385691048303340563396147223759838595373262801335829437776291488542460090108229889102860983486709281944561121311178164132831797132230600627277628998793412735307603032080865601125261330027940827749422207711018170542176416430129495657324489369433244275440872150613961826666942218399024116085109235133425315860704145528921224040804536035539837687655561595137846439450799764758187587876332543310898133461939747381669017209083943599792600186370144944552166818757039844453869276157317941158988043395658435251043243851733684464091849641786640427744466198721900816309245811181425480614269773770339031719762965179559226164134989477031218938893780001896180351372760311502876053300976654588754306200748665128271930542903115383747067675091742993672099719692698223242478332875933721280330930823704120051128503132195166104566524583050976645505663447685169540762616539540024509355081734322598251163541371862519408870540619127136239281596663837841113962927757943671271956092828989686575942696274860994144940804766481267067138602226055618725323396467962850170206298498929520628431074518233787896034174119148136205272205655831394242333223045426501701201817970707068887182971772021721984298167474816794780981920576828612806632067343444667097622573198860634550856229634951784396930878994736563831705840441603027072935612979207452482799510659135642929396288743751555457621913470553072830440320858315616634113891669365778840947194042540274713991761265520670688797558748939884181860942288943994669520309360156349253762654309252359306511548895489367470907567648412778671656240222762033149869860491049297431666696472220185548601117351635274065902001794635581781252211961303354812253164706388578146205608358641529831004091456618035944796859065975599526016402157507972229309508064878469812273126611196602861784995813288965282321167711097308671135577508278052561170381729494031939779707528192190836991044682229601122230194130430454701432938429731233437267181563422649471002707175508424320576632117672022969900142539038128392339002984709920168400165331434762736385362596078697396681047183654887496046321026022007865077897754490876048510928458837932131255544947653184259754081706119540960207140011360824667756545869989277578752495466176762651051825351023403722317936536872067238159709547613140415502053016763849523027250635590399947087797490982692417077079934752233466988793333525411463222221210512295693484362977879248570437017712634146858022272948313757148463665767818077577401299338885688553146749297038883982329253004666489145780026035588284038074929495868904848205614454098428474383535564434518389316902991202340380563228919527338836204969453142116842669045541689037867210870442940873856021957429674055862265691578333035699317534414573774828255711048366357348216552607526147329023065423535103861565762739596839648451431507590672307725467294867066754643596025325670053698794511070519626840306612375669248995588297114669700025909486747077206222075203576549316747273161834774122868063600690441504201151643360948430583920849242899453922444384041625027195731183965870340265412883376171392062098166847031533977781087230835362780735371125909184520190089625457881729633542305952126673271464845057608665102967007280057391131654333743186623885470639757233276722219565603586037674271527743659767982882311291325396358834440938016373270212479208956434302808977084778192202789032260231854704573798335852694329477392675810748981204655204894968270141164591408031619252078713664537670401356829000147243107663972532979676755715333074237075785432467466391183665625766397136708041496277084321300842591965950786097995614534944122620152983633389266824084546437601547099827237981073870414579857072039882005803594636738604481230661079362726081974866881554938224067076745964272155990051751589445592228918112179818548036037182127412789537231934541229029519500590210712312441938461240208514016364137871938852689731342791404426591287453109006174387681366936073120203815672812369282943404086334549034063680037694480448823093832178409216811610340325050752685719051232796572101217240477579038895153326289947601764728823704396587420970303150287511344571527537982202266908748293882815016514342939931495874043779048276368284168154270226783602296431906412246295550983365801080987124096596308297062781674625037123224195368796660725886830460987371214204379069333346693362904324975068519391218018233868794375693655629659576577670624763109242870195731969367432301906242646020392751762728369916879084776351385345936280254723087195816397265000834258663704500289012185550964654640154865040128783015684515734334087498100547485972443694959241364309602309082859293460330146497488075383280110714540502976328819661900915212167718663650937095546897149295023704292757669641808178039373230572648814270991713237525495548666856675761254894589805766323726371766948513105834757779133164929662598886129359283401680461190036950965140758352779111731879636872077383200992106936572534763225144642433937466010915063502085248105907525813571896696433747646281548075164637615197965626675492040371485555105022302797259577814969518587113216455953812912312401163764444525608923140964695024637558053895087685543885360243075656741615029029054919014369902246762584412009359639770680490953649190762785032492305097984262019869041789628061128589187908338436254734571666312240682580777950080823939446023039916602703115600853379284258005186114236832546779982242522324946743816739176043287847568107340631770296456797230476265785944326499315723005235453864236331211922421502518348068205485496859357613257940453821453807396941739603377013394024506037763163712056281134299130249112925264375359742736551512281432975729670580480109538276684190981604390718156686126725914851089042758773079882843872909540365925712220688681424094831644585004288598589932857586309162642372119249247999883373102528787577281233230763937112788537370210224663501543647909959844170952130360113432339117156070286510149737096137445039833592644922242348581461176836117195747848987256894249762548377316882647949479833438980254478463976591938114917817308056728146958566111808007215146978827756870349445036614619278432603569439466627822366490603801269489295118245658134870362125273093572973419899369530561172081583517839298554595938258704981709153576782805353011287417435814581940207774951466519001268869510631515024424946833127482211337325284097073778745024095473866432629920918763267079251526382544479584784721982277044634425967931569363783850216215420221224732001329629241945838158148528019070310648963158585709909240124354389711786965116762195584666203467785593761903484024549814584165077868519738536572725714702881221757743630266664382719162905183161798624491437605828230414935875679605578931647257694599517843266752104130124323466233571064780293285356264162653324376114105967575831725951242409256632780082437519800857188618248323421325158660780886863533100361039599885315729656875442700423259614286880414853707266774057998811529288934590100406852656476609489546938052214731717997419020001751936685649783417763589477486263213824828754908617779482286758253355753807473471428989898995661883257869203369214381032171550917755081686322107089253000166243073029913809186080695420250073283361651876744786706676990802569254053947349163532704002239211322912936769026925807942095011238243470610000628043335539420654301528614417702925111625014227095465937833568231588745894684592430342734887221320817782097223128022112166528160725430087823278765587139963016445300794568970045978612595219613217196695064487497820436849808490972543499301397755469173991195404470492676782765090451121705823788104808971052177766890516394880610509824081787851512247018719146827298951163956784231166748642817833422405419257265238001025758660921335757994435277845304850235598330104651269078223857749448547420472958778871804048615950423133700070381583686334855428925763607188040800262734157277197677339080590182891554376566750397088232439436785468724343112764934385895814852566249181949457429367890061130947439300771044855948061657446347677699693259285885474023079381105398303593868864099286007240325452002504436907512105969413425423677651033990235740134380697415740904147684291130924368543508588154812040337442571518225933128905170022700635698945261780446440699562114595731811362418487501456214293767386009889969461960812407930788429303855925769194612462449993049489974887090040642477062697505670492594113525808259887818152004548019815048652171321008473446882869290789222272880805677768533624154412367099894504329080719340953478900808050616529850714071518338168228100878960826415806921807933222839771691439847333837808128533158596771885940619954916695163655614782717720317751835473652925716459493926852587948407440444034706060284432085847773393833907655477883339326818162158858605070540159786034010529724077475909771466462474301384828189523406693663919099812701671548865503071906672571756373645445627684666755683860324322414426810867708135655544910446671652834219779887366369649282055881461314918768556083918814387764763147952679594195015672278357001675052271872421864479760739938228639717215235688830583170334016130433733870900109481955262181807642738919697980085442915981201930160797526493494626512841198285112508760405663844471661928791968340597526962333463969925992932145311295850249963348597145876809263275434633026097674347421275859505083372737670577913691732677282741932631181042867333333807454870828795047482850430957811820085911818989549846274772005758283666378773511556890580249328369471981525085757947059884036576957475756855488903335380357318316320431294032340377269731829484628145488672875817929892033705520523050092468263575581090286540043856093672242208694326607567524395396690130609570466824970379826916673038798015411075286031851688524276576280434295089316531100739291052514821473541834132761932069890383595085316673412947609376475523255831159846794681016804107270781247365277950601598376561505172642359386176254484360626685170868148209399118638497591843471850461514544760956101598113753499263481705146923377012972117595199293689199522987981400034882000949733516630587764246394217051356496857469135509548212571688549933024869972013325296379566448044632690803314560200086678325354704048972748003534569097418634250812832689757794502472213375186739613189213516160324815774972710015584241177170905528993558287748094870428311156938820015783359518748618820170173200829541793703928469813643193328337451509304984213518932279797630618985735778571657883031750496890966728847776116142514067476433594130127606816538784427753306759067212941810579999850526554610168421950030326375848379575913616020603446345886056546973869442525101119669522352630134527439753959628852306044689910111223919018941234266570674501384958919664586831987959277444729180080774232965231973724790583031632476099180367604290983738053529077131687919263364962856030235347232210012043080646640772577533755374314108538828423539011714524457954857196425898684291621543076857790569250364553935347484966223819433394376218275117312788779673743641350593078549647910943046881680098266133026668955260751605081266227435792168552344087229527226500666275736371696310662913518086867805926160835701332842740122540969132067056811108540788585639814353604317719244537283262527229593242723466255824640650977834426474122452998560688886160153259579120059661071799132254396058107228091362291832807210000777476306252987831503382083498992182811297969673526257050846033567871310375100578882608373091196408925523765311664167513946425760581158432345382509288816347155275863332176255858943981647863498030109946532353320280067650452152359407220682426452977193262503743055923575595128628196539120963638262552299630441378847028529765613161842911654237854285532419049098637051652011042150173392387614601328723832353475263884227405779967097696756958352708809823900283793362118796684681195097989237854504865123716116980107628329995477915970145014976260923766604503680178677654702775193239873778295326057083767663982526177387829180024213256795131346157092266488463735191973470361449407872041435854709323157994727116073809652785616946935221756421560693979371234390282629707067583047835286811172984265010381537651293390161767862244750788456364043961129258267012963191972269192646914354743725038402628690399052721831536421415954998607791798419941463202171172849527031258083899003571750957213876529417076655118153423994587804084981677086117925848987066114525688325512928392526225152574438155763342801213700808898999275120321108632845417709974389713505672784835667983597788209864668966867926409432536773507880372630968773393703631241271747515389944211384930279275991572243806598061441146203361123457795792436877028132969387773877689180556991611106738937344650721108091533992048452310617881217859388657194188107107740010832697305466316851317576303316641171887916360517056764311758694000881536207728653618294156309442191197381534903177822795160964231143592632032432671911853452125277383106758383746626114469060388512584130830837232661284031064259556323388154201792344633608212609318774039090833999575467590343568923709711476808244642482339779843629668005182566600985379378384126529306082269049967865368394637120802111840631306279001308455716529623532837975070662302967303090861621266005609670206628919782705527796717438995710804902610754806969550422135914968945657384596741894795882333475251011847489052850683903021022997995789531435778462352994261206351933292945693508512100627586162837025698117031886975415220224459856232445013863174404849260816128898254541743992041065492595343967240506749591071348285420387811215979342709976676429536671608017386999387968394676546067198956064730309556316273257564210264979384369708352171723309931213865625618801066483025859971062728726024961244559325071072908197618632673453922438139923407892172218378371995202456904124614591722492271444875694246844313675134145093318438497372887178059458412252094688784067635802173937550445108609156559061693133018390143916311264053712557825119803256360088817891166066314997682588704716976518950437765278417670652106396135083827956084147888601714168345941769209926957911353759546915844450127630555987244595177317313649240528554936647673753689704736514369708845885402385092226968911967349819564111612387944464626590364769026650293079704778825396047659330974036305064478869273185297061364200341181042640505306225470611946160305071225240386933590491934312098519548588772670599122688009945365000902594550724589739614462032894606221619931097796208422420607096931016931021881818390791897099350521375587320112673713275333442579048610547742349738364781315089119131463808486205892490800158899607751531108996934139445729227280454256279757995191603484127020392991970671286747004199346040370100946754345681132076875890749492408424056896042388902059635661741820869654807597959993318839268841900345689229696594641384568469549429151228367348885105647778841441951152212283109415937126831882496145279619876927303138743936903672393513765801997504724267492749854119357383875438375298144580278798428504849526962082720719927584763175187877753239281668084837110447989665801762802454510947033626159512741647484886146070330087944292956551066014117762039490704023102342723728118988020300470795659003364037069980617566526850257864424588685038599163280469700963325654337069899732679152478554232136335170596007995871389382157102222472159356872199946406603677026923249179889600637063669759924440554116719758558849461547860603164345691207795007640583057715309055465096670019520006381582886361842929641866330802752114075664062915789372298225381504692126913604797240578811201813570142239171022315250761240020129149547651707101963386140603461475765795807281070105131537828111629697677327187709460037751836164701696847906015801660445246088498135196266614729139749322072704604758857468243847856235365586361887286112593542292946691862039440853784771277295490529379327576759444876460229285993786240562863986938985850760859940004231614448599867916629927646684055107231863177662050490860157424801971830202238547002288153581904765822159289363556182747693778202793018662979742722966931147558988376511764618994937900201466620797493183404597432340068596603193893978054723955491475899405380729748746073823165783101188166146637756734546031104099472786819160453711820436436428109598941028585957628818494425125507901731368911923588425136045599795965887638027331887721290194119411492601467050739500957889548531196037671571209137844917990694437105792480635661005472422021379145170891026620921609113591114905164510564136112153991279540851474677481918586620165879463180528712874660647799914675887588265656515215800017631794516819494095336328332131400085115868828664234131948019509401105860660196547204549668085728898884468266273236289601358339052461040749916941898559275483609829880001023947112148851496927435315419106985670800238142195726910126965012714940793116567754010852342167608187718535694470453490330511288061065232895634759825649271964815012338367066751348367789868042367588800104325976656198730469781181428239664840938412556836249910603719755159122133634019217264483902568198960672924366751975537144189284916555054903309001150327338954437386399675487172117837859517246282222117693390255891523673889392886071094716228115568569059459447836371662027198258977684445811342095660578009433151279759522103577052024956794981841233811369457717571297306270957331769819599447913534544158081754756399447050958745797734107070936026608004355086185580206612887342098755217805527815645850107155285653141194328373700571681932374024299589294730525163453444592403655383011466834978021887507132058838406573956799239225550720036139099320203217785104720221952039904660300849024718331059441998248816715791711771806702901818775123900735741067497533535953182996481608304043671790822004061574182395540547962463256145944020972644331934852720998216616697131784048699641001750741002915231102076641368724447347261398478735636899329987198216631766148157529955687882425297712692145360109211643528598845846280716284357477271830013782836929447521880664968586080367524080017284171383805561762445596974599534386797269484416347408421898366344374345214056311803920375820785767297444863497557539867079835552160682520367190559256889970273015066353801843470885863461515046111376805599186262848979301569507675482211312905617622110631640993139292391674322290845882978087121079956430681279290055078468918530484913566221629699319449333905206175091118020429935266137015718191054240140133938080949907697620939831589024616471776808915007708552102469005108632967643186498874415241075031454626802906928721451712094841706452931953296107805561656930035708334114004811244904522870997364878750379257160890094308756982867048123163598089158966158243803206591813288171205029644193007419121265254935235975402681426631143940450122261287023401720634337138037354036545319649221081670695000015132153630193150856906333520451687489351060483542533993126875260803316269803750845699708649530093415382594228962327266968051113135829464935909969151486750373033899724378792627286973386686551656638025490773831643629131300683451206307789752251910328794976854441391637259644656930567150024531046163841918314830677610321632434072572097481134377046396269249416051209799883933655240488865515589437319643091974551025503878465961014769481493222007012115166424856413923238428598636459638588420245528288535766629975212624815925227334586885175547521331763846402230871399620820034484250651805745647035387233342199691462050989498519878535073092828733213255682245198606523818497875742747539227733427154465009252683944833067820819391409014452829442810025138045216268203816594570908960190657096232839484598408576879138105506220305067996699433895176685570163917637481414834584468424766015168749400950800002087295007641949844203961573206715184079631748708950381850590193104616205004899968393051193089440799820130207959522254859144673435181052202337650278060472763958784031278309088795728430377257256583856546087908239345319945040745560384464121908865610665303753076935781250382500902806977885302718916082789972041285503237869275405369156281303169915000898310701492579743306562981952620337993139042947279151073638580014007258086800463901759299513478812973235984651487763055692060899621642267548980846617516077020138324127347445724597153763622150882304516309017771490552214718925495416808008248074392433563678717524557169189576045150865317308835099392449893144261154822374882474755680759949822766023491830684309327214502705481356004730676158771912210227519353496466734350889683518600506171651953602079844950323913871820160052384485276546572493432531990451458330948023372084177801808319140509590643751849530316592896368890473966376093576716341624729232929597904791142349080413892375642428288646937612818420613221515348769180279563712677186692633074911087492003355122857127465955258890757844857583635660247839529496426534062529605609417206209533947622520495553473986576376952011777438508364265706145131198813318361247347282336654311612236559766900039531187426619261972728424746669379878142549869744835257756939483089287878339491871041333763494573032943628535178786905013770853071729975884634991826734380867523719962524849179398762738056872309803820667837174683744958728104262759170477152625899389443296598125906862569215569469885197829357921249710262987299354175623545146220273705479462402450645467816622667859479896580282862992090367504041031490568110702649320933264417310299826586180997697427851300649558019419466932908385438963452420315096926889220983161193056851910418133576860118117362109885048306782883914861165572726822375402072613468314484668968675964145129340188477633844338443264577450911607217353284797621552695324424557918735312548641387143356563363249130971131614496753595572655253226188921444263754599867223226591049544009579630586612761013526181593815759803828762527746797402550994786656151803019348656585826201818584554777619335039072238588462527927963965481038009532360824323451895890407408931145837386467973324436009270501574570168226528812916294762205145261729773769837060357917695553278168686205642868634004110349862642629737820380715631698052122979967166275267165012585398094789527771520753412374878078431687733085183708939626938571681979238477115453859026762243301366259906620173790188932503575740169191979766632232101287002073764484123177874876225761829183921006676274976280484092649182713156804893641319132833757406496179924250771108774796948817564183967160046222173070846232292299585954255081903765618732720200975015888235147989363145180325343749193654851843915196417905401343078888251312823600457903320833902277385224090453869278458502616807803403970112852507597042806001357654310158519484359664507664623694973160908581622635389131966278414374793870739150965844497199735306834095336011917565906612539822269299289099527548124051735050307832983636755160451481471188665364460102966494007533417209770189310616452493902801145312439903631600127859801041625283842277918197392021424710212836318680006200152172388442354638579260333259025972629857830732625720092385615868626218146136194917330221603983933799303153998157775863025253139512492877598183922141561310401839517170075499935184543523836202332530507948750339512017367670443427742067002437592770982732489586944534179919665786695369583778454807018354790281090934927697396460409355323793743998437659875132350965291661877522040996071788694381838137938099722709883791448129490983833331953986539113424868437693047190843018071388603729624119092622963990433437667941188383527247536352071485854420834324473581180283908089092791529155176562117867605964198992855722734791692166208459217034130133248707190392889168106992539867164406145143451472009112562501894028016274793389724304517076228726660803511645013158512439445432055081091867865484987685180914381898430910478222743753352945886379789414441130342395134768849166087579738831843216867363189795770561994987261498857282259764661329867137134980484652392605400180897164714503477499708854687655977235762016709781729193370850091865525364309890398833838073913000680975598389215662222859869708842266766771050224108476241889182992073002326678197705170496763622370842880104306314734204416657430766287966972869585199264682785530823909497658849154526326227733495667183479868038966591537669730504911013554278002340692998361942301559313021140453944647733327703882082103569528684797504903115977855023737047782612625723770520286732228358329043978456092389842194925561842968891372140646386002323459683943795082734738122551668816283692501067145808706108492947549686243714958003610312086708907181960634159797374113370797870904212400280021480329114366581904875905898100637923116303247550552787304352982691836089917743012369945940733412814776860366708259105138942022101232453724998637772639653589308380440510105783174059307530307436134220751105503900391567313336276304966255310783339489523249337708713282601076566046492829601934623131014100766153190908827147967338619664740860078896518108977419908468317433170719554804014614503074049567355940529044993503051663236498806047955278210590411129720296590228241434406055991313695533139304375401012096317880296274397351892350756136465878997626326002233677242319085337359700460306696773644549472821363167650533022531434343767467799088524268571003804368165154516998733986653914639803907140205578901640771841703955525611653864043664605964130651934970067028439522189371574118648653649684773161083944151874729181520310291121132769160639452890349397130265311894489320320242634338653136526767167479456625483055151300457341780293551890550739148355171665118325491935470644050009490275847596445097547222766976278682907902474820725011906750183705083962890372390333732369894332958602261839849328863729885589216928953463731796879294380213080025702411024090587197765302993176384644666920921643885802293635113759541025855895105362591398069180131773904597530731015725641815234270226325880004404489855997172772240583142401169247745133314833298154225671017028539476911215057579267070581834614517134210891591196875946126526825357214387979864698499187755614923035921624467962066853457072000869899977854104134654454391228872969153308416079070995053005599087063313791366883051906432184010616362821170983879581758494409478819720613492440955288017301679910852509778073360585782526787876339261707742978050578501515037948220537802105129867098854968855393503636894762872604904882435791195752260077102245257579759920729323895403993682095948934346991037025198624026790911303949906329773885869069348721850272290294531885459290376547884754515429286387733402756672922896934008055168404608635615824190316624532053157167446606175288669978234007095199195378106702486724366635970217693831498389161524864516775668795104862471804772537238720887606271151374044399456605307262660284681709328714973600349032876815668016694283497659088357135181371002131332214004503985528386196365463476951240854577822727194812100452843295868275957259229620988041571820439412915083769045067214042954707622465182366413106385610207993046744377138288928742203085175937978950200718015555219986972396048915609810779026042510784648209679267373967628058036364617853907699240853178369275358660622918950719153685800235303637735126482177295761980547706263496549594966575078082129322113358530674669701101608295589737670803662011114746727449779080739982667742577491043033293446128516173010062531799526004244823473445414829251726874077642677521443295655152377883651027130836030929878159332953765966541663516665343226027820650382646275666817207667474155683010454468209072580668072133608495014337774170704795688323492537268400287410669044325154342501145823370488430853062308710346480056633267256591887495043478062682988520294558486649971262347620378898670946937857939992015359932765105964561726548384366391152666224943070857266107698802285332690488618507246792085420033064071999355368544818164032516513874367657636348441565847125620715482914833484840172600848276256133900995047857508594339736988924149261189480350779148165499530320748754399909700870200841711551216619971472572197342681021147957094936075015900490528455509448106396310023441901244337417701416211808114850061110336051937119573488387406688393558741546723940533943902669603564012693256579658516922413705928957429182605329359416987937170711967196503764728777139967987986012777115192366879915948317897076139643192777933021539877904747493961692920650888998513633402952173234535023533502481922749262122065006959170071549504835166181479436155472195586118063675863085563337508954466515773490608789421355662634926945391895382259459091058210953592614292350654353042467759015537895771378542313829779970883637365557263301227821714716705971201738164235772999568007224328776766860149104287107454244432846233719743644327880709063254511121377056066446755533371536255610721387276245435370370061876020031009676251781689263503257797799265987543690192340906198895897219417143353432194698122798178445944873934319633720125995042419465806683293423281785835714960315285522048973808147642982587684663767040203611965109528033951940610690163578615226443173580393440613697637571213031885243630348778356922312004866083599129754588525964294911258642502614789091409971676241989757975502680006941742039354489689638518261788354861250120636470078661782255497952357167934176081772349084671786185468623181291967776676318642021362833040729745728914918272231143231841450923104875009957781341989786602154940586491702785693041216230722434607117283903802567906696102452087865764389366188349035180999110304342928388278319581371693215189096414027557985094852860898961788640171659133000736051631353255088746433984592429327349417875114535858911483157983067308930837401310406474119485198953888777358016932018506296845926364051629646035791221865898016542825730055744206260079606251192411448213281283342504938775480548512872038127362183865617475333405137744717184731739742202798611886220682728907489981615175297817519916711135512338942005136386921522128119465814727320155418139503194117188345204788430718249837494844289452961102510894981076954725098900076350428701923305094669994813453058376868169483493668493177819507886089017027881034099095105588275228106490691966653941889325855003821645448467571099041546814744346645087079057468860801019065149222798744484570634983558935908768134144463810207598494040435617533684404310516169804202256339971701400434418803940779493632066305521055564825459321988443273717936239250005873011791030799578843270912648825485069263949384038995607282484805314863153266276660371524892018818871083684289167934989614475971636727086194009715739891484535421457426606828452682064958743818296045016928179674711716266851796065889841611391083764596601764454213924371266141050326736798380552054155046250603712927890631936716918675988917627637284292402088467608426178110133140915609040969251467788049169896118499744261520488182753210434876757805517258897444985913046854525158015655737472065867844932582987466441962710196524913734471037052478415882343110247433986606001336763389831558345773992194519949745137475093671672287370071250680897923961800837791509157844017468518751745918682252355314457320910785420023447817635173857211805630052140854655796265308809768567374373109661320975233290625068575494155878927229560036971714040294378355776855922133276755435834445561390359731967107725540360173970241174630097430849317485068607797082817010336349314112818432659421783133499546652111404065463596540292841330340416563757277517613977376908597553649777198500619854813128640415330228711864179451939481015862657427568835230574440742818746925073813080419792698799496529168861105563733283563605570893799194884577174934275318494937196524065280213235623638265231100393125477096280455555101692067011447385278497375201469665742502463975852408326758368630875513041619246707824737424717831161224156784466253172503923359982278208746624222642115519707018348738356440659892495743721500852772587443718837021964912367423134158868954647177709990852985728634150820045876591566089640407568804107981511669046069117360216178370627992901908747187159582018863744622462559206017244293764786129520327852416162543809305133356989782822695689945175179373306247210657494382236722988658349671533591617895301273403249129006680246576248297459394437143982053497749497131234126179882048440413018922279387020117178204471694309862154220301314844476164365305691575866334840166608895041923546788489664952390424410640012728612221772088663089635992215571307675058111361065008399389865081591816452143013794621433543765846034327588100488260831599042513154886621870583735523602475933515177326210576701053842817447454704296675432353521839904585022821974433927986751004683756251011154246284432224979472422251069099154813391645574475361802915331057569526785259754056168439543738050605383451061014054214362314848010372392258249775196081135202872915842005179837277947899134670430566067992612117935363951417513775682712393550446070387879679969516731358760549625481649146019922356398854070261438175653291438442197916166017311860468998339661627928973298738301537431090406981446618005443831863295185131267947491778080261191593053119316978726455915775110233820389381943133451637779157034987265288936849109666411137009447716419175797274742840336421025415692145039885903679218236840911541547759497253624526941659247223048407055297740854936514418590386117636797214473129263476248229153207100922161548705429840893380635320565531692048180534364410394936508244791606260066342234742326214497127852771294225844205119301375904722445227258222955555232657294130778448551374219614718190289028592752621311840157111442784580035230777624587518178566109271769189006699456468235368124031476515756802937230518414582692230669825200855672397294878067067407648480967821305811496497048009800773881645765920647389128206950178726494108590001240225259810181675456663171038768542022688139431377078013043172286792672390679517420449610411254148103326045183018413669289716952536589867130599702873130539418113977444848745450393448034177060555700449162787776515365995992111672356706796981077479000621585161879055217914717454479069983202181376612961537003254858759293711285346601615104282322837576599175117488220934415456663574167707943644024479609736156661424609212578628021065380836669241238683044022812158643201905289431336308521495853533176251725342764493692746417287389193871999699844053557938121241612676862820491052904520342990467257850949646280998603596329807263273358635375051156658730010265798421892205053552649491515407313601170250049225470593061356860010598207263554869634296140042064276515291329752063180066188153266801039668415765530902876332410623331537188445640984198111695907068150625391514825136990850435911119298126688118482354231081038528561535718845216303264792150294811241513829663074251415761806727657062767365166772988486357853140075498228595458781117757327228825945712641370641768410766007607334427372527485818998153254633538976503344562094244181236829250446787834040682646039870976307898142556500291422820467190423296260837207774067463240092037680881016395690276586551271625030783277635833531744129820434922102335583250426722155612463498891310692410180532304958321599187809171510695565007647986029941785021538657701979219455722529104242970505706377698192443893648487246132857746457198860428497409848544099720956813607894385351152885980126837625010834596353585831505419560877846793165149584717697619429877698968233924897050279617592436903786666441838171088069456822583039638922818514104501550831929760573958020612896882321600359560960702992993490687964011844287414969633719145823923532572821137156583062667879890046746680738804384287411555514613961480363171994113372298038934492095469308600174946876724000123480700215211465685977410784766059605498835946980521524323875720353470890386575022052995039612293930086066919173653004670559676247661582969946780212643929894845436713960484971596132689445338016433871932047662032364833273961927261786369941121414679382680229765213381831490736604477543563832785206962586526165222831796906759037494300235384843136686607934321720627152347937681133334986207233785950243550463810072875367362785130251821769942207753660003770875360655291469579736518674344062871746856915739126932969427434937406770786993830450938994843517433186711082836278179217320887998938088497623925440176295964638633935413618133700147312382383567794221447391591765860030815711454603713693848662052031377049326726400519988756693246797893199741187980056440265129697871431432439013740363496323120518070652215059874098531739298007359359111643125165762048564089692759833030729966930283437100879690846053701451604736187590886619414772872727556449713012124055316293724865783853327440230485971830926106288615081623909048628926161385548047624693869458629395342324916754233429842449319017177019020236173203245999798879514237190310447684321571680804809121498093673018713213501596240385120054958075689519465957397130098195004078380434602037741029529718646417863597023869036967253095612767573664614942845335948228460538628061854106938158569385283796936170817368361092621547619225058961743379088358910853818096753293018711322629529038100851387519513421401227944934721282706978972490513609334458311683166727545895903854213462363172065924426313984454165835292947762719598877769804361754391496334077677591550865349441659886839062760667233791261587614775683039998904854254286911324007763566451957374425466345270793675039924925501183084626326941899847669430445613846408947862217181591020109691197316977422600111416935571562642762996144613113437372569063176812653144570863048567106139097561801328759676814893197669648861987479604616802110894365050782836392297263275716401113307384384455341652789046773749160512799755865708330975520614855614794868249346299745050410015190801205841368015020509829880620837470493761096083773223945622969781622250915368703336960462438426220425434243096141142286250131290424389270725006047704241600937237364798942482109391754962715468929926526625376979044762228407849836732495098221215593199547697907454192608560604839351164897525566316993390914965014590496644153671951326653036439171926567693018980708975328238418524448384530481732042715308811145403497355222642817143048062315859967276041807924453211717332147582739331050456878786174102645076469455356132905788064967663749279851858727874069996929356101879713435355648024511391060722451387507550587083943023428189083076621155449704260161222076785781808070927364691031802035125280375349785834690174921828912655241474713779034548074004792701170769321785242320848522003753321675079045498818201383844564531141130898585425901026007990292347583830124016831625588782688039816651868900404415947525078484588558682948850183566350498332764474840167072487864029742764769168689576697438738205551347553328174327683157571130240258823115498289547591412350743298155189332266340347031741684185211893267029606949733568510796689943582099704447599013077440173665360115766116500307088904281776561981214688101211154603633500238805732808219291376496141535507954602453262460016158322523448028527278088262054552123335555667857249049374993309430380147661727601707431566709515954563115477840494709472589643736260829093484411820971066558565127265984280098050290737504678398598122324401181709861353385451794914850455807185990163037807716313011183939454392214601920922000692354037619482280848896459155148035677327085354123370132544444110149148484790413333584742305941409927605380990904340024064900648719779322862279624981769857947623905903613456394802196979011407313043178749432575424154032286097996976720248162370115131783513258225098741816697316527328580947093797461511889834149217947140654750377992341842493411601104147972888589179371955099668803360054327673149551907297535618654502686656013675845396217717409495745587395539560826575368653288423222645179314885513255284039754868977219062293696607895904258375051021269444461680895576375165923874938349752072099262644188675814462631871792524507110845118356594292768281776228933536195039494722741097408478626066509619953106084813769231195200444618281142789850781951170397919892708994862316390718974492116467537076670304250804695461777055699185540477268819070216036791946283851902804816472978397968782738211135360837702237754621265671565918542836638106760023035446739924893244999720276277655688317982295124475091179848399859194999763939182835237569502299948841906423798045175262807451999089340314087743645802931125630161631740081085946141558072608116481692933548027564235255518756168516141737267559197508170758494528284357124755219403553195990215150181750159086625300876469788131061012246459803614496038897784419127609629814041116171317875719105432750513145598932209737817394925458663055473240750519108673246089180137585395383056698183677658049289638355808311607186972510836318018035580641679151019804737535888481032793278457239498347890710290491555337783613269661003540255018025342355535656719743955785407321816608615406201940867496149594178913463032864363431347640015500423843490561987423051492821182456070300093171589856401342836078175581996411777144783691219545820602813353124202313042447377710562301979171926071180346244239266268526131358258079789325288644332517332655811373764987314067771750478696502014374633975113783618361126534579737095424491173528177115388584427233754319052072839684627107399589169417437648459208445734872823101367606485104319124237083065249967607029768997255265729464139990886359240457914942053380135943019321829675867396567215865237954749880738342117729949622987854690043799561343106103520930939826838045387404723696081246865999839036207366044332073083438782575913967284535828153109793223841835607788578411749932030225935434503707278512148408126476345258099062156788778399071692965157058454034327208104765430912544220381219628424376987896920308597197957536429224829748643943653002281322330230261713651498238465481807957319700768714928837367738646314441852825466237891195616778596282147067454420304971445284485954979924836768831146734293510134324417188881184102813542101113543660726230234043396998039160998844467712865756135334335913761872480680494683958044209402264339185018001853288970477003130889427018271299524112600140144509498809454635451098506650894194026514303755200154362475799386645768274451167088924164857763768365709198646983092275589138847537143869747195078466386244725709656817963753050079836118098388711889204968923299481117717265410785564424550038274823987924378807232946366303269065759048028912408132600950871053182970568402428580999874379262300788796580896052864046983538091315840581232521859514532463797029115225437627459971145468724550292037618876521574363931821537294875347343362917758767167096836381435601468117600206809865377871752770959746758847736679442935313514972674874364357585980792224768933093197709073397755767545408769775230738587280826852303799370831719389463898362692707811882892800049751297705650112905822694679056721753696217865690094487517046134991148946023893168685002908534277041634948338825074435439894313766199482125552503322634056673722539014193851128585664331260180565281477918226685786973466291012469032954787752173917535812078557043034224833745494998557531088885502000810730899796368659162520071417582735167748287309810614246141483798548918543785751294479355019512690020099218065180458736924809538547268090305934266027551850748067998903799900568697825388009979747311636247614288760219517108014185836649089867672897191982862816985307840038822417335295720677409351197261566869454935273003599174583755830015214570857424548908133880156744847207497683128899473894426879596027652549428987922050141710811914382730675740726451489957245678689904880546768408797665733265882434060835999554236806886994570148916109925403893853437362459917135302572953256096215428604758315953256054540030637539284611837548902135668195781630195925935899441043430939021943238126434095435301218916710991479751555095922579038261621026739281156978069063128238956418855918825091765109112057301004264825082425779881935377902373344267310908588918607191912826203191891101926336877747007051462316995812113134204223163855365710206201287199887891020820464039758350226913935882095248857575919620300879938161775486390585011546253537443708955233017894201812246670721925595817623089954470839144665488190973809981450447605700429332169300403896870839956804246508099256966272776954087747081237324842873550069696478076824056058420349524673681486978734644118636519406081837198675361862383032477069916371082103328495220168108521697514982154563288428281535992098713700910697128704740081344893772202102075161130464668691247186439228029003677049346520241705924934400873857933363744178468774995528746316073731092698459560759119443388536436520424110154484222816821002170948572949707449277616471417166339254661609254567832333458941553588515702103482120105584912477736440242452685752788078816547257927371836506486697295432332262841453395728426961665841623981058498720254848199053872505329574464468445339354718698735671067743061942090911098815484293342402073597938695645416731650558186408227657959337092564757024650449973591758401343816224340354776010791555637560154789522840682381695504483288864208805233097613826371248070113995055441883563082242517596617066463702864491874055537360934994007982408666574810077468130284517166907294311934755378855249781722519228836411457279901600242659188326305868696971475661640948392700094065109442233653867364430624266205666001368823044677802503723699795920422904194703093551535963096366443228873578498058065776744520142424986801470592211834965091981016781439750430203474447653339733381692713995091486461908200015772737672587020852208661080154981113061304199363105593207233074195288195359039613566600297979047644635946805294297807106517128938553014800795699485823285687065544535716761213450977554639291618451583197813501084056871833574570685596421884785957046877380056921916747069237082751405643102340991881019279717417136146425269483204361301084826079901638546692560481160863946465558271629442499383590701971177275703699060570553223748734992675984871806133569349513541736406361979394836177171043213532334651327064677668681019169563045674487964301683152158472405827837718688857083578003567539983140147709205193155793278673806169439829786786669405944472603886958934002635550621821723684248649099433001706376162647850458335730662399548778889770665623707373886223022861778778683295862885353385497539872748430566262678497997898843458108573935222724967332496902139819049437718293709513644399066148140358573639359790362572911232488675591438708533447878703318114004778854527591105120663351478432725948508474445359149909628986672680798989508403974488414691123317219257229308627023098313865170379990715663109738831505239962137268623206375166353962672187788081992460954806859043387517397148989305872399958361899324720521300844338093337877737489725164506184441102101685686262231771047605938574821207284200413481748877710958974057088402937184583290198773326555356862928418506758539142770485076765868472130071438704507801480769109763109643389005788773923580101208263973893540868546908692920404478476219451602969510712123298624587265372459744646105785928373753532280582136810596644924556027766438693410847630563440433956835898053992115403893637906462737685193548338428549286906136318418389508400676840385880839258294333203324510754761796560553885752860715682282224622487307869005293132374242625792870268758858400132102118783715468333972697331008184492315046974495089348842654991619065925470531148620854546445222332544781303335886466954712457743222806779085934508773579661671080342093995979046003973314546120074394916445191547483125777756592196037503136393729773552046702919917891555121628233836847503045220233425938931405712445100097821089406056096738818700551325903326391740432837442054469545682491636028928108416092376951468748606760739154237039509440063445301627421679739855794248187073109070742160788712687760296129223327342406793466622151810514407754915095934919413445635021897691727143518018255120118828234926811598178812095636502227338117410364097801757838293218900683875390734355646514680918370802932836010117405789801751783783486402218667870791669127319285917132944652117960117274854185253252071146908537364148430221762357251322868954336049651652079221719221006890376328310130150246245880963994036731922464944134455063676246760476737864773795395012608044540254630894903476135874414625754682071640079538677592631381875885295121412957946741804888037357242380445042685975633139554666553815525944653903536425340616591639497403932170941457420328063588881925443489766298599291496852379709407203876044769269548440650732591516503032312196023996290147717097754997995924521654563350073466171248810244712559253287454033254339054920419369155470437867543196881255414636273480663882862057748282090236490393696952025884754378510632650825303100267158261981927061433822680636200909998276989177806504691902523230717064069855110625831563057299398128060607790015501107816595894455810774582645726526315445595326807543391923748711105815889325067797607409398324595473459973667615409917091462078296382840139196009121882658572163031231368444854008961855330120018315538535059762115306023830317184336972343538825252542286200968682024973996567154086785923946218477434399096810900341397415910852303694780741330029845172806142372061625528964301104842344883804714221710856078031667941289118932702225676832929103933810438427997865332466470099818801261596916149722389887408279883549048618328730137502151909364395469356126806977142804012910034302349275290335500677299786597315305246160733794584852952048876464841586492403092957375506558371364988984606696545391543279070594242015941638343460876351614573473569623561867889786467959857616373129027463363523905440044775414653015468667108750390987656210723616215056854165004089241986027062496508327823738938195906705645376100510342810691808707987771074742674695313723439286956051916740060797639880906116301190102311072011134714183602275233090666158795246610170315317909338042999581829108197344616419775855062769285374077631508774459046410204608902698303737519408399098209623586749909197316599664418243263853365431504209518274028405958154421599127835872776213959049436422088941678325253059736331756148079239411251127693668116711749656149998360835185269003781519843857317997936312055825925568824545811696091613595166750822217821006358553400878589106983549346028145469048912974605775466662158766796306178620310197657808788165289631230472329155722712560353672937522951531661946049437874257619350760591267750489695004538784112242272981764107950261674258211984110704143225268845160941201203396110350023110874372216667587574648266350219046124519499721969066046242686859868628067078052186020766301993201818142577854891254774255383698387800766859287550769998056581909607037371243193222901949518215936021649585624070712190188021304604031864959495326328634093107308990904253537359751198685925923697155076080990422735087398016842251861125911450519883315921801398886397707881569769880546469096296032235358670771506813743983898689292503792512861673723252792856387458066149464066392310948689586699435424843313845162134049686796087944033690790632502757936133920815445792839689248690689162765541332397631672021459116613233570500305421081027342658572391321094707258865091150592101502020596831488367274611414316840059962111154554939382797221816432955218925461809990821062297274684113377370754060833954696305138504257573127012638699907956564242069875289022407308132624281061285853234709456952612670722129302642362357939232572070926162188239191988750992422434032961000780499227984825089715391774177919697518965982532032123158804039371023073629317383867655469223718496526665098255904223684318640211253910793208485185098445867879213984053032664746070643262452565191040348868175581290012857616206383820602315856731937883861221253454422731186604045853023503274704624688013618457653789161420594981669936640156089334127073631316960492331584197807317891125188808643512818255665682639692259596095181914266497591376622272773898612532574070785901512373950020686765128099556704564561991301777533999661777571469098001080777017406559617555678145793801279447360777790811914803423326160970033203438922625766857261094021339337061783503801011384021176143070699878596541218935282036058670941233823456393028252565778327771619711024683067125340953314358761867658027465914943352965140262217528767526048928344734804131832551284899496139513484804352272928275442897620464783457548989167706537647956335381064346252633229065961103921699078979842887143454638999188807601192447220281549482773027992466080735621086472225207500860744073245999807020442157043969440679534108282100345935264952077320932390773123214342076854898171063804040635910304958228274876820184503182061378111118683287562581692487074446328001795378912034872135423981079813141371878016680765944339550381607433926919880374686204787798385309333835450131471626477319678491039288810620140115158229525526896419979170198671196233284155252242748165186591584536462717429674711155060850717052926533893373274723526456681409972126718260195591803296531365338459675821339711736774804207304998027941745085651941071067946389267663942196581109918702019603585772974079496967498171862053820168192987933291296934684170873874430868611152533556033224435562455277292812432895725120585070217279407197605242015246684151840253941710270085019408025389345327244694395601305373503236694924846944512875050928937324283968681799434638711174768840727923190324355866450133457716504431190680476164806506947996883139107209742171744172489902332472280367675893602321713428972661156166077464646598996068404666252572391680602174989147160576534282256049582591866471237301345624691214064453651304330796548992657021825744927962109616312220757154223368849298037041774231060796948762895793151722004416941029593689030689017561053772831522904991805032903678679629297877780160853020232610015790366724866833045956641950978829091028192808283820470082614358249192482917585736554446028549063953487092929221431659585163734173928645346668460287027856561222729971003673130914875990256130748676241812698661995880654760292483725989768296090755395420409040148463749831847528411728768568613942904553093440924205995062866770046899696936224324022197771684937811267448706338124422840376131903593573733203440886852186428618135290481244347459563320985822872746557910602808530113182020401020629038412554115220129705247354750150776696921905386859153853316851150355568409759325060973775632426212982342456530300313991520048546154303794209980312472092467323521674941322213404497415077325120719759539935741768835166571414802019271982302977635596933424260616563081287832489726888731504574656917344408107850922271012146242679021667665924413711484691293041448577818056662575216518909245832532910946906118405384730828931024454695950837542653982175012799657877708505568045208075282860294463385669498784896872770095086694555318465429646220121750085450420391629188856112989297905597432508601017206248268174033894292560741684441627828756657136281294260917180246288664040978816373652164933645890181986365370905743577522879845369029361261464565911218241435381837929115395060145151166725854703950795110738411883319270902446950265088950051926131244250672902370690652073688337436584952310931247282002729356044666461750755349179662492452860573582830931873668956408154299756093513424075085377865646526451821685145939370588266363189807263933639627445404873032087648294561016368852708594408987634843863001621327638343756292108414516097872764683858700002323074760001085805984630906995655089570005474894169852507830969553128397451581267441001782401077838470737429113229776023851642950855266111804542586957999510255151523251720834904906652835686351189601093553729482547810564992414162247401757862275226773621541172718718590326826855889547372122788010759814365688727341553156184576196187778822296467858028733550728693912069027448071539374728468973546247602353706745157176566085446194509719608066998190281935020770102744236586777560479354394043982856947847337411994124334313890513087073435459874709306432192713658389203985651271882657147362095962428231061525711616424113305943018323262787586501357327033517512621547925830890763190407435928861081126005958223869245969431894863267691261606752809755486390400466419233345302550461833951096798900593417997665971422485832031136401216272926317720264095540275630980944526102566090621055732117974698243365381750659545446279541993953229666736505767867801128362012202702324003040615740109238930974119536676369834799233976475405915124785088134433038726281000647455099074728539484093018700341190877999492925983187611295392904484687253546501240701513721060980721507267489745617869864434984963783806331786627877758857741891969651402454160213951182350266644949946624654449919764130139482118064722594400254994739014772412856894373440277359664651678479277921993266497121053312951262621441526705450321730397904631198736199291749714308826414224280348688227164794321358474519789856346742422680556810524852168314859859823718792743465618711516355325089851427428805843785816304471881679282421525393795510157750283562251878851327756586051512019554426484966970402084050307392727803808543093080560529481935081423145729370022059765630481806064512717973497717114691513875874178609104277832633503994724456225142900476191017093511319978863935103754139518494249114701240679307926692147395730212466799350718416287198655488276195102537936313457086520926952414263273682752648786803798118336698436945276229811158889764908568345620520139346684091777005880563816570753690392992432904918963781960771964719108411148004478508761863183028774159943980371744668491962512598677385764957794806793344967439100783282953928019211107360446225999302164474006003156798743875088072243931393459850068464434376811697676095304507955333541404704007633953631768540067255792051360013675760111056425619173458573775392838360354861001971366904515807905112330873128013557713189848225135081869300218604507506306470729234800266612955131361561253213403386697765761636091479687645986569240853900960638740198480432520884263659867107748498907884154575709400700775364112723208371646558912150521476419476102366045078591343267672948751520796535913045289896216365954285496930896094976083830826830695274656060594498642362783205342646487395015750707569550822295031601193138927065400890661629916807642969869122558899726897832039378063794588182855895975977577629624232415072218569286609598888830358705026431302996274367541179842991639174695767458245595217619568745214662874923140437910316901827712464462821672116873033572536849927670837047803834503257090501984362461271596918845149370518823285763138234034441598587013341574786438035805438447159510209951147578480742660121064470488440192300080066124143775139468250812896318257122641971852012079572338822241518285579934814722731497241487128930276080191194092515186134340796382000494811875711163529400145718113013344366112329451122685181829362044038338063047284288689336036836554472945197391829718266776698693240652514877706134113143061430922996235225978495378098840827449413341073203137349242764200475089118959352350853015296202530506776769927068405484484394648935307104088084231900968400472889338830180962840125517263219540380688590693437099643609729689552644113328137499565464966727996380755289370258481337383044664838018349831591085743914903469248244336262523529375861073589104258635355745311854465596768048817220325210817979604245179531737684527199644316635980468805916829405101329253916566858730547906128019891536285626817983757179512096671829637891005491422729014258254478041190871107911479809763068909332224593843192559829998405018586402816735726423522989861193606557081373872475246826265320078022951660535042300940622343417151374205464760743277475768000441493390464155229851653447265712784529889368442503906392032565570165181637864365996462600297032572741063224848772854266869335056103102004823642157238380000920323086305562599465623475491860245721092770951494200868239871030160643833031559146016320673335681668829952152309345096685556765782523758296662161031334266513590668872548088048491901785073280445380619766906404922102366684015541157362882840455934390064986218806482418260212988519557678907873132706145205630882682654095204992641114872691631364097429248799317895338834713626253855332564670227850173042113598565168753067045702986840469085638517023512188961588483889592571604888225599532039259869426264911835579597119889461873286780548960586641017231629188052927965288259617359851656663074781911478243402409975872906383246921383864593178898016833617814247686375232329950023172640281748169462736258028096551832834081312054489900570507952290121710694352944194707083143725782501435841792537949895372888285892825895195832049096498850593551841510181449073389337716124818646258432147912589089937167718905163859350258619020619249505245096620952888312195913258994070516899662433194304464252410236070669844236076254625373660131538448251529763323539383764510301325928191420305807828050230108283531821755049376275811288427669207652198137545279971600513040602613330882666285499672198650314138611567499800400204567246953794714057863146978525450883841948598727677474738049208265557809229384200137082814567757897978960073122973179044258623206437516635142699557833236336332793473799401226761433765183983761884328021943066073275764973010245796482690372094806795152693543036604540196945939095924254696457910718302238551273554859426927657314243833539842217440774482304815624310663540592879468467521405079494844278754340756150273005121510033938276018211186952437175249062893566637448255688040983217888017726484524588336158418208056161796812574452326686381103405678119239516415177628720600854193525975806578065009068732147695047894613617982871444319971197731690102529016178370092724941582546993184427386847218461647556447665107808197992573591290130589325289138971631656699281215729413635757119085899773702516011992824847226376000833988662056026985117695392888184595727181870080999131211322389757912666918482242949749006098486299882826442481665419118451166037880004126897452366458017183974308720184633995544462434543859762411847497508610647918738685658801324908481383302692618280079836017796209681843143070538635628436737887661684550969678303690410658528648430420007074271437167763601570975938101844582227869207942643026763598674012302062242109417661491705393729896177401963967921302943744483778205573121279952765286234889360048562658629064381054780591469854384301498257621663965514982053557506628192451099010576096968269757588497020153783784798357226372308355699839809797500812255898679331333917642135685692906660632773257331976073192119053700258997031563831789217542111316285346456471377194003830100350179882418310634201933084487312152955569208451434041206794350719489507892602753297477002589573983616129254043712046187380557864168525177708994484892498780620180428182934409883926769825974615536380510255057379743011671422589884940968942397282451330946885746126007952353892849091262441710144555989069943520583433513034085366002700016016952779149900057420924513378966558175694594884312598031673789221487116404353268626460922891964466593858065711680824344189841677406129134306853675069877164971324457083206282482673023114590328975972090050085668209979430727931454589731021541109445482245707088387994260505154452819049305729143621237529902517927072278743093520566328056055232807725000084628268996407100374042984726439404308865479796254062717743658937434263107920358973464113842823434124666199523409366126610938671231951473167060137431342235426202601924195707878949571176540354919455380568543395107164331328532229349538721867962254795980124838059265362804079887450625225197833993917424464036081123719209817177856364938068516986934720447358251540931596395620319289364443068466505397365504965922555731345866944565853687213648464779826779085169481961015063381414276966533787675143251174690002947521277794423314462191792715589908632383226010427384582222672960235420131408307744678490123565470405231597697869673010210247319320876906255328763101216368531144852582382505634388098680168178188614781170219630255060671461590619951456618239189383895316569323167447102397640068353022499916130784805641703227446829525209973886063652265386327358366978328469767204380750922791431059730346549633310807816248682363124926278120536767786035555722035569551603385151941457732996928563409693180811515184928404934671628986052113760395509618590322855807944928541331674491428868052677005987280982860308995162428222516912043673178318389200229704342892258697679510202939019205825774627560398240363886989394780520259938761247210590320570199189753058460276537229711796682763570227187308916358868041500238214361090035216338173079415870259430421211087013183125944773327414960808542674744382703984700356317503959996859904297558947493125348653121541499387405515518937414133677719073684078847594163613272349010742953757956955519322817268120429654475694535901313536420944626650824548885662065488058431875796968937199848160627444464735062274624407671626031004452617738956676819190352123355440177860123500270318568849689362929194845459559000739115728265201528169802703575052751675217997091559185844619362544399766740736775234566721868328142678094659402238532689898720445900871553682067390818800158131604298915474867924921979930539862309915753368012015571675576114061127358379536872762699838494095270036217682488026123663057122148800071232574029514482499146168818239736931663436637794023222449757633050605559733760638049968944138508302257834282644817024225158703635595723916362039385337546146186965110558446458152886295097694885271362435021900525847758105481795580570860042325719956418416433708702520564431347957851802015308425006921140172920795352699973368603079458104967806974308453182999819824002055395568389976337112406306798835974731262164611806590709011258940032430348017589254813830994870297377746898354487988076420128772504310567605608016375834985845404377848523712275719257473446724916952718587197149904463315777426796828464931683436416222984649282175815695853992639672357814738553419916555846412386336928031500280657801626607673653648918587023031313272691965953326193812222871412288164572266428670755403020339729447553957442177468459071070344036062904419426402063605907392566617764358044233186098316845483129080683628820162171487379107785483510120316569061397138630677086422710284686529091700649492512644241529624271172998628346012683167774405159391261264000177425345490763534630310046221441379071102012928917736488814001114222978524005255469346444902115105364853614068714671236423825566566168330199119720046913189232454389126976946207903990581144577205250626408471921751512427003291131947295411245396922704478767931386221214914822332375021169343112202613514680180262295471199948341543434161883727232004718560079050969674680478799048177074192790581404369034238669542384633732464367601505683538797412449511688295536615887092711322018399134302956102538573405444582025823364493416469205282074326353052641725197618864540444440586395138981156151147002438887736114424699425220950180749824710618707675188843768313197675363819641311307323890076319471116594533525010682209980374384415463003006282711970558064608274956176768100701883740109856269658717488223434615982964544355648767746885896963648459551405793705035014959092149625060478518372442115791479767837783054318614134443500665638263205879646138815530852956853040898509338252377065699202466943176415964277436082150049711605367364190886388454806055326395336288871153749098895549668581399464573693262801742718011716669058192324120748330276600253554896103307785348005534254006542760216381076751833900552969443728920379484053728545110434187741837625728935105892407617018864034987823526166106997508024441434949168616540272744136426513799900845818160705804253825136068275086691696193473189976177077515365184075005405379882295285799989948822924360280500075569443829001091582429627144367009318295617233675501812501576568466148767872525991791484474814967566071687440681865282253325237661915929080074491675281185618323247790746248354863761724854739469111311335652905892175748339139488518009503517243210851446316966733311467262176386917063836381538607707330963740488917972363072075229566489614972892974041566247353629747717400247511410459235038874444124261674738248969981726048478186610362317825744438468989083683982232403160687100893019179188854335810601047748651639924889911834364365523145210172290236013324497897153967172953394802965138588248174499550135835646029009229433989219482498949814548921497808217003626520736635823057797696098515478617766721202446034685805098476704841442196200378079136586994961416121754550907890230439950035959486125214786604404020494786450371405031778645492746128180456779339079268001118857319876984410112698456476562451282638173598710510011582381395202566497191927308200678304586765995968125847566018092930198984259862504158613014712074144401939604252344316750674686268733309098534252162117968399619488624527647339637657768863944015657878454213607061827152297101641679186906650173042423614304163732324461337066095632817366648138031488717466117808027485659456890632095465653231780534972695763557510332141617288601261916328975402066254372334910979621236438630288830591622423739585772822525226323641256686593351424964827883104106283856230907191212869423828476281779177332968949576164765503157394068968367320781302569167329089561317523012548445947607634050115053670779480293795726607970551674172231518970311401206132848683934785642558988239593965958024398172679544023008575200713462711737473647710438409067755325961805819071289407310291510470383781603219118689420101718225490603809218788804006571902268530773107916674826689605679009755047910420968349577457856231811827684479685995505085343055815907572406175635440970884320903168530228047805828065103310485578200617460947644134527065528412059930552550363747807042890305958912093954921546171919434810215667211485057206422576578822474662166295292436402498248839852941325259832008035583918781500119202203923121034944809781138336737362690248663236988302903874009447826968205311169641459444500387134438311349753984945101154428237797567012695907990000929714503464519703496098386834540629605383242253731574108573406395074245387160685331703559228910493106111469507222330220650545974499612420012947938063147380613950403504733985114875194483164026292597299087755526822785824991659652068109530845782275730158581103555240427240103836805879059845003911985670052849391053381358121354168886060769197905022377739492890559493267865504610267635079226851549766649889723999787003031657326057831237426907592248413408939907581575588312438617007094689787563869445277299431422331055771196735272690016306274138576456270401802821345963999516042231400525699324876737497497034055381491117624305233017596459304306718242180838044096533510304055041748000437634622438953485342677872073631127576653601464075457271854385993442324312550126335892881189258076476078969367655412459011548290218139616116384777828006414164173752296407760566225641709550731826175779593627919722070718782283917806585558507937608938959142456282962668108641113258722939764117666244401857357103301860331561028723846736358385762816217325395767155551983603228830724571704989250718724124195799981921339503111067247969093240081705387410141146989330242565830967481741299661394687148306018149510285471633644766114608704725477148285035791074147744766058507184661975175611667395917687981488317712458122377343135954923313011377140898284723311596371767925255291426052438990523608055656253420653370073781457129878992753389571799233228517030200332829344120648573305714636993506771102206432535712365844579968394517282602305796627633595003359024290361952903056178357478490025992109414072346567380688985518466068228161835729236842686882528348454927869534531016836688693962331883220982150235255739504652332796225722513062540993424998933567661768817683347507027397389742345428928932274895162824116173997467630101849729012725826648400954333634531016835227612139497040313091329460622757492756452097508381422457701856047031949357391835981329569752444142013586663482069449679844720765430857308831195920195687388408144711448244788481366460650714757450821794120977343774595821382382510028661246043025713507624742844168270183251206719139916021755923139660858289044458293735448489311965418291178435025840570900381200976976859578060480150452105159251256032410510626262027052570121777144372038895755020501950686109413922058482121707689033418216544057352485904177742698813305959839713802054247364327192256289160831998357053972339713206706217005679579943956622240080094216258251168200088290857724237631546737610241928095781814940836130485393996870373356992034176437638060187646109669193184373711419226563178429186320774438229964876281668511844817014941367629149336547521848617758881860912030563921499941068539922948405028651410433524596361319607142904775060455124737579787163601908181609762528499160119004552416750047073577383907137084161435023687979654520583318714172344421996865390214071829754331993445582817199851743313516093251138892611965959564568532235682387855045320805106467750758394457354834529724326376040346298474983277652002437677593667049236503845435736754793684387113092783607359526938462463190774012803315388582657571305982303576866455306254789444710163539014346170903574619561099707413678895504110601683646397810510819597144805459181393793179033020139317021763734723480213120103023994761419425838024863018362900036006362727958816951683924015095828306240964703307836451118405248563927767331450606492090103444226894033280847945651310061232053730600177033292765096634625222500140564822569478112867047561792379543938599689566459690565668526132922898457673480965562532624513440918345896974960493628849874419162340303139863860128096480471033337091713786284438549746254704120475940454478618460821606567148731197043852206074475901239884912774370564057688740426820025070297805529059588473473996301963395764596702228418672791216742307062990826122523881892298854036447661771250541749203139398122405250004760481873048383755418939498522236417640321366591683564753016343125981459658399711431769061262565061538308329668606757164444905433352428176339112190564437813559898708256915933642263917042277861806293819443835112459940672086616107876611508874979737426615862488436663934200430405388323183606707786784547450669363843062095003401101752127397171816245749784513323822290733500521970693597915910533869752217180145881755796707128104338975898148168729543896626539189133262219908674380655586897889816259343348324128760387824668674244489039834423792233066769398543446616910289982663465072282902875613382796647126066261107052966528082126761236419150010600081320607632221348903451914954414799634281281050699231872938513611527816290299010151816099672648379424459943940577131350477698936865358237463853489981007354469824987675411882420603795607396141184252278813756071128626176873581258278681763619059624323082905135308834404653496452909185422311738766594495068311962942431650262009601603898232764988400875515197351480454866004306128187202316385825659534109542945784134820163103425523623777435019238038221840596201568955673385375234780971357666109624342305702201420368560800040181648103569368275232936661749220474940979255435056410367376551531392346999737532497288048120180976082319104575841537739855959766042301460024632354767361504411979628493302576769365770894943931335487456068074259117564316208050919143578798568295635132763464878495794040754401071055291980090079650226820399585856128677857364689060732981269970811140783040768385192246256257470516944815728526790231755658477012755831531901045445322079989083668319321329034405805354405508069543767758203435651223832753097762182883950801830662637811318779576122699725061964701193155743520171164996532483372388036892008268393993395832565698122239888291632003127715284499371894272002094800992791835343796932736577196846038803823786981803546020696053876255685565830739435448079255699345299851385459313645221436753754417230189428752545537984040523888764971011163236602217042336384600023513596301765906806709798865808851121713278550715882163040378701314147944778982067064315974781222908036186364519445953500677719748377871273455778190910275753775394483615304842127277767182806444330295506748860177477898797144102623175227769932303025329346777727360625241750602648086957626387926842266997351194747925251084146163376926487233179608788091000935106210243378868552704529792886422106002834155898674983695770710959594809442188122469628283583980815189324672056963066921779002245887536405564761773849579499188397561165558512790614701636650466792224106996240911757254693653636778827116938962523892278594506497027705936766166066259346984631609471979730103213137862813257993768543681684982210731712778471830903434827886715491360169631047180623879147044311523501321545708319949143917548218694839602150607245367025104672055295123947386846845378002386913742796252658749163158448093073969464527524727553876706287601412018549185751533005838050179066463459089649985767546517602287637340156591797312714806115755707784353607545780532818623245018055423724118218691519202849055568653700173403787709478656823873771488990787283635280182817985397652182021030382071592803472415396832752107134606049653101687131592123135157264783534493463784017153979130979368279800440448402817160919184220606893041502791778500227775776230520918721001808144099745837741315247888297629942795459970130876784447451512918432063223019393387573092614336026276837173956568360801740168627679713170709684198117796496349778254056698770161584379568268915030490037818092190105140525152662188514030446720975124441962064686760646362124129001639060834554895945152356263790181019433880851270772766467719503117232659086429050970222239867674583203498293154141498799512415934574960641650184504802258910243601475868350161319775547308833000658543710407984443651646296978250365352980183389880828324118341798354888033161354056409873970629296040028163769297133164809409265814419808167205183042956463811757526287752616971262491387526379524058576710938490806777446655950518130259533655593703927200017977281329688748147883862658591245538073397456470476803681045525560654890417097986844273196585868739369393785954954861584870575667631882194407751865379664825786835970929477979441860059289832667039928287445663814742913175242745839458744848191322747283002509634107909591708738166538373798562151994128093145465015871803964770478473513227422689872572395830361924088342303023911615717226651414814520528767004743152539769677219321202206497156466260019183468824018625415864014647499292330390387661547284732433105065132525303097297882618814074002733351448729944549577917905896061902465497148959316660755479400571278856783863041252533231596186826079134778434094243462671373800137244558666162163305519620071571346276036538099499764969329408455230993013486864406693228475152319362510334675286244261554452940154451928280090721512342371921184698911009548784028644726978000114753193221068281754855415908429867208482825930211830001205276147997481168340876552087059968774082178927536795745429929204617429045790449601771947056692539440887706546562875420768663220276676393942821043618676121310473500462111077415736911433933998908674256730152060868410017735571804625825575709295020028774679434460716276234055743344475081831010822580200089070878717750593040740110783361245606760299236092807633713740364958992879488493463073043589412921780290061041939302750333907700553744391958842827725232730017793261105218443616385285215719276742172448399124716684863423586495102090256132868798317754630280484132759807890062450826871049351289007078296087273457661698110710637875897798052994736181523745372828536308899888865299974908045649863824140075093934178460586992768416455171398909840234963394005930629065119335796304888608647052168673057151938071130450489691076670174894553749115386324508935782114590153909380097208211361690349535635338798193289092048501105984483214277786137763350690133179567756516712035509540798227726159668410795348676989360021987237264343261365996279415672828665138408937029690849153248120020740036577310609488767799317150249966248162355162908872624354218014254603215750492899257959415303884698791500975280651580854082174170640756187379241363444267326988639847617758539096751660620831575534176559579497247349884795109205466717300386411780786018321630302720404000231753709888498098740250703077132894161795211208408238913601212438189679133481106008116081003919540756415563203125779492386576481733161777104544050164627086306995434770297329227955108183235276575457150904431055752182868010306391178681542949014827359599259542078807957230215109448227963461710804797322025101433906243244133245879833973583921783820788933900759697101140980699476795051313748232521099810629738822979548953991279086252638540443587094393185839772230292750880218960685031272640211733235209489422123485573622126876133596593480270274062531848671208112622032111719128672176401786467739072949133468288319957540775077933031622817829107833032930907806594797262096542796011912159523373570552103030620798744112341294033734738548517689136705607927545279967497672987420992540225146736683514257426739449128635300392851272811088469528571792584899102127320009494839270364914250665746865193654441680122553236691216892523424264977676545743874252074070876309672043105613532550872460766248721177776912322344953445534448567099390960776826524551303125835200381882624958108101940216126467244573536056497631564388266570370215455968792412587420242646255519242965070330050787021543742619567138846836440150553356560988785184926860152861459083363208150390247668862682246499062505319005213491326008428459464305317645611757200868570511448460664018887875012503409615899029740390793117561019092943665572628666809302025560594414396709960818823805628296235658605864823740948866624269745149532531667258815476813032538127313174528758965777534856920822350430268914355470891969417328700158152147260931011041236710123609113518887805794214244793289604854222576409117680938263388406610573939513026364615819393240763179331764386937987949634055161245173329083048140144614798584026324027801721586489757108865682523211515030064176879204931574574657439706621514130118192998818712352384347272876585520404756854733691104798780555048305542066761697420906675443913274733197848714971022213931876205306345996790626428988949865516555782718910153275440796629538989961297792055555738093829599325626383645664228868136909035540848509963982276099786094280941905731837602206228695915476473719030633595823771810892056521612002574067193229809149440078114403736600784612143040486197385637439853427363964475932287304032316620125190207428084584947144562841663484245803676497827819178179465091705583687161659961342281993459628698335786520691296803815659757490895699945868320048841299270190169473968331459775561291207924784463882089409577703812795245318841193575892859932739046085996944922918759135814492622964275022149702494587999557042773376793931791358364288026907007105987199697025455942136788146628761937123229022860060993231106092519674209692832105110201674492453503143650531226731031962565453297026944106688159894356363563232025323218099861105657067685532597226971976931563523329896056280398323073540835280790505610185274526927805897758438304175191105856107589930662986759832661138650446889344099919219866237769605727558120722338569312210763021452756722721211510350662707772026844217487792930250403537470667656901889447623763777173630751760413229136851367166836947179665724497139098021954123897248706881231891227746361752663004093513480116563879644157073648096682209517980221666623139830321277839026939821479480652508228548982585241268521843358479104134393270056353082642592108501491416780101064938406935097039381995980854508364978141720963820703476641646098378013634188729881845776305032988023347525552473189243750717096927415249939914250783923411982994643604485872243060475278436113296418733122948278700908804358995480620614714891115461967953644987936560616025415947465902335969990446483732127425206433792328190233724184630991717722160868511228443147847419532194319610404758134782772404505114461629282691180361495377888395680902794148863063447730117890514445209166522252758550254628153412666541043352695590397224959243316822190275512903677774940497090761538813100411627179545976293378080826810912854699679256920955813889008108961519004685795952701815449518012346441672138608055033881035440560705422842914756217139019116855178436059911521762521737543838144399086161907269106621559623345057605716381894138294086071680223492942660868185621584293582819863198400677746087950857880552925834489461443385180962533397465268391272568761439273589071138029102219793817078978090350991461479747922459144347205665978368636727434421467478035236531517695156526540502687808064341998213461151690347761586426778823476013523211860807981057763717088618642345520921228707086587594747861998966557491273653204840272239858836172927802222835799918751468390108620883729568280774949229359095912824711049189482443237325481192797989144226251166484005160999308780488561714981126879496894469274726094927379553296053068444924315071397035685793185410362739100691692452697940201509993088891359512665455361897621018962286501592563390947354996938989534073306449644955291221178560305259634593628800591445040575803500920625371330083204642681505323515321110822255874957933968966018829372558842607270842770791656991794014411250971272672899782944576938498633965493639096124340312244714214701536977383075190996987063427314183629140262667351286053967605919181827644209418721029230699888198684884323572059832928446584272694094361747631423521625404519404694377127558137341868885857886940874760373614210115376540766560236569321649580443250655604480867474092452702380311545057563850095582290704820602379577575498273531888059287937352665726744309981061885916136250017627830656214454783512535084102986929641842423081787656055355801848713282088694593566264760644594239751109921138867890829324881569792774817187096411541031399448480539820238360032603018681264552190875760348542809260381384686987924101751652764802123806806359103430095191619755194870939658401197506374208211262354945878940649608851521442627684999389339008073439288585848631259062196713483316036017697660558564323198669565697760695235828944272296723614323822368789049103937117323571436454065262186333875536302234230148031316308231232777616049530435888166169673349643112892988847963455563329645799296968526456774909130931807657848487269031808729349377294903262833025178759995162311946735401374589468347613995570895428685850854222517821378957068462959992800468196705614102466283144083433507207210604788212633541139996494592152861025879084163267217015808317406544760367457502386358267489640948769143621285936753201811557442231557516689683222453588820690444055209413567013407452459650192397834774518926620298688246628354533487157612093635454269092909645371694051602352484001188656860039946081973702027174182257440312382409568759183695903071489583655109979206697255325434572660617379027825413822852166650315602937876242373906001640599684040280245417560667450553992686180538729641209748031913854030720421876373805973789240858188103442020216736550994612092585023801884495728753421647213188278818543591288609444091412980701277272187298683815045280979467983625016913363385494414933658012748794334275836356675719587472669577885678639748700753543441463598633400864756091865040899544013813755745687597632056794511966284855259588978798645694307512297668201312426808382783097577902800564064541060966747244432841284380276909553840191988745532759529417876486099982790049881068887814945697896662644633509907956172811178820603312585894370103199113500118068545863319112536715068390953414189703744179623535580834558940858537846619981314537713900518293835624515633406494217544248886510153687777864866180926471097733029292201802512479317646192241813211697986263308511763036950254840601809566172506030373155772423245425279219050514209964531072075359253044323531034335531602313797536564282230234566033868614221641231329981881308298857822352584479013074694805822277719615167181765036896509569302633922576446001859007869780154263899315737055493844082321897564684144286803752291232824737180884477960207295239530072393798471969388442993327597111905552615335819818810710553281967239846251607513686575464294011602584971521946290333644053907508035472162647393351124003061920314945467703697210750430096164795930260237211304580963663410032299794706857530318932014320651067744005305734433917408785263767794624163821489477235760244613164920825721959782322321373019199367887519247592799355499207960044043616249120728620075233318189358244462740566602316584763283476525101992231049358685129704641120355744819903117073624317266049649395935107824148361774648974839528911968175022226635074481627758985952827286358455968298482577433667344468461104568220722162005370990471015892752337810106874747701332171231946499125220622504774693179160993798288573475828901782029948484275490949200850099721278554881518363576420671817754814761441846896293864510958034142366431977794765915534763506850165006641523887916728105965453391647748582079452350673523458025289174355311347954214835458390917942189409516594915925706080688313277234923658202520047836449948987813458988795026460682800204106145174774493321381580289790943656397972952745721635996867341589659341921822241042996610173925027998983600335186061421543884429793356803347496545503025209463273992219119111355395842265110600754077441276957639063620199348375892554959269419145478865549253362569799917211389232582121819963207767419668197496431019463877046549294340532822874668241003621262003527085324947401846772424527791641637591424660198671205036770957872146792013120718729308010062133997801118151697871008828087652283893995139179207630911165980511918532927796040980244731105755159555072239380025343258762450583862198540971239019014462034814270492676670689607352577605834189141476279258321526330886000916678769506072603123638432452127224225574078278144279849785069950783394079553345021921561286259784575106317106561005333320286084602324085487981748164843800165106425566594673837464610849061276990611693957270389497680939498100388114903637787669989015848264640995875415829005650935631376831370732082514242392404345636430758397588628667481777658296268505541459721453987726488240677038081624404845927146731234415491057096817151137794916509322469455743829840311960058485327019582304389235214043226140398440815454369118923773657501249500660391333770204111685370459282213923888522462045391217557690939462010803120189299144016074768769207907020467510803196237739913691532809024919683491665611662806070795458948722831087982610926716166882377590583564109088848595247332257422278558290557209294708510418099548300716360038200210461933079810077717676490303036442104843718517784997432606342825649214928104107780423310583340522739280361767057849629079801157150374768388732929174269098568604711295074449796713283058297808180438451281859391338176132836693370281982814792064339179892778806493967293919757729893848973709877906294725113209450998996645115823294946976394293476939327778364675522522382036373744728408819838551933426306160510415117317214506281226441588956633185162474453454211242911644892674367655311904562914860831957402387074566687334145059724157377414968030714103537583660883657335568655795900721516780083361890264254799512597420319826767979155013993547909186158470586104772859977263645953139920595489833828636268945203128919059887403631754134945422805234655745421452327746933169734865921181912399600528781543038668451670592702189944576643988477883529535095252910199634664485177752891606913507241316826850540020875034303155167515748803020984075455588411143452007594504227968908449960912425377088612856483670306769011140429756648352145498719345681370079136706742291634455027927787840195667656622582912258216068976908570044619141849725331473528400890164827006549476150751437677121621120366264224859738511490244156079376680957736332443496334230179052345789760390649342614581700853144757750494726630507680438531035327196527656409129333865349003090336516564919309547296677945022918403214411768031837785196881049776955213189911775098385662558663787797710163246204201798191521267865265221643378926489205405644929936044402267897098965979245420499068880703639595301101470296173400956029100121903017734915494826765578224662341668027440121594466974316764839391597526325331374992980497066463448418471660067668831546419065015944420338121621058528401899144327909901634004070542069429892575788279536848601931440861950370952096414465213975104254506479903593480823719180823425710735683598525791877680942802243626314178613613463829225138177682225610457624049810004297707977220443026789433904290210593044401861070382254394348433654691255262213767745811999313950242119197057012864633827549355401319314296573756659613062869176205196762893174652372148540636476805830088515126723605278271919961703393439957692611612387411006242327789411391343351038773626484996902707463370659431947067065465810799984586277045886398143035638202261957111818132378150339014407491029735923932682413949916155466687050156608450970759581002226023256088116113970606201133280983834722160419282190011634548974413413756816399197331479623261314405021915207548812224938725023338016126334374519124179791100459048523833170133674805355207471265920184581481034629121257253669805834090342336207170673452508382755405847551064654642977813658934658056064369217827708267602694379082784810052741160831459788719348821719858944474838183719668498785499985083708549990151936061795551380094459495558783617186068114258047234501880081457226852788988125080469522079675027861009628047251782102745809933640011400839173106856021019424311212294920576959267684457219263268387404790369105875990210704588982023079608555278784406099674433887865948690418921053299068205463725733615815547597501759134706077827670106886176166107668903987512295555872498436258227100572319820617785658050799761601610813971914355140410684083742778115264353011096178179525428414041715907910397430478659084490156546563366768065939461323681266204238934014148033915150077656344785047462848727805729201575540618883301796892672668961607674047300352766497109056469074262446260087650404411871932227889888297350577298843534567595731983085421432451932429592767940395787207115550210749020084769888963501526150077423557483531260030497374306048072563543204971458972547295801799754058134046616762573486432858332203145304783012466391732022802258526218892403663673519461005960908910274128401376572658572774462900205868646661942447637637091529495024607863090213589818734521768870297500385548783097843717698066960839632385663454661067126405562545357710715917536260737390829256608598928630353681141607169744453617488423104641704411338736957726345373356743221118972247823039502366520549859025842785249925078415425232561615409781977280772594966839655992391688665496750632701792808858717605114619748376946052664538464754325867354255101583436569495663188908679649166776553839937852887568960560183940910176678940700231617974211212146003435943097107743958145845484806259104718960792551960810485526518430473197331021026173508534398077514271265169964980031281524198254438071460861031351424868020286493120557135602261052183698760329724127752916041519536843060111068067376394137623532552386311486005655662460606232694046948079924352024733846210116165243487938387883223337686077089253207899524911842059483170806482315657960519301102572599956583647026133925157990276549761184052005302425714606743213383517128145722041780688571883481602665335002707260178814918093076676306836031866548934249176347508406957025454657936164055547407156340265080719872532247362147876174379709871584821106437129890206054005841847246434116037426259694412713360975824775455678443176648553600579241165660008807116246310683947034790036710533356009295042936272911502547280277765516411523294299089005263446470363853928715360213696214982541100198588057896346755280188139342507455496762098589544068075049256963140933444835671441428984621188747339883187755025607374678152726807511624825101384416599610702205574697029253548646170942257491140807997709397035457519751143623765615356521977552889374583371854530854284631855779872146481662436263731530669311045068520068881383427352838671013352807857927588170605182390877882114431396768668563083923406173772150270651780814100099560753173445203657748616003235920974041824352895060295229997880271899153930712073875594634142102418493508910748600535667696693231584310989612186463118384155979676016550961046312771924066439167011024001030236884669497003764023625480898701993366127590973089556344180990803327150243904063598037875650431529481586811499187431004752577400154813997993744359062730448693376001098734004125950603423088859021763640285718786921189570498281369354733155766694383756565646989701047371936653010229499004939820161706517099391468093182852664551953869891214414717066898396840973366776939303025998804735615948215657654224482195875578312741997672972999534489990942032718519383893258170735108990348909828718880329843947695588968412665321623689898093884177195645425103636142572195837968041879176665905327055061759043724068282499869133401911253664115752930258127385513627645546996075290225986994075784804407345111510267184186314188899466421211062929524528918951316821918839149817365096173583905327236448371806366212478477817602517081090866987526992946013859717574232415424225762894167071007955505230119169443748018350054364064064150719041425772424563725566948007541050626117057170673438364937284385486848798745052660286105277109995337299773764249133248304935225239441325006347240243583065349346128869247640247280772272823869831831442687716317064488118638589999399058600852138868230597172315972585279968747374217646422123539112163877525431832564354789911470340925888187850282938457028311402133477253807640743768671007384942761311707084812780897611976632085690383807971956336784282001242455123642644322592358888293319186391293180625482723966677472069344731347489519942113201376690049470924499215656970666833494534276818196537296412505661310298662925542773299482433966810743051417997833217325558530773640172990904420476234849010259146680637144985503662156480668104966405833338847368450636335774343248317874219289215515895079334403854667787914517911391938569191518013185735772584883343655741578437521822839780372586905788954298472537877292254494515095173394282069291872453665406500460999565699890615275999500535325063849520551920808645170016517319619937672385290492288614659355290295919473361038142182240345082796263441043171795255753142759551197132656121065654621723466509662909052162206307971906997786010409380441147035158118517815131301479075350214510193975014170366602703216978707469181778453223322044673793173873172724378153827454531571995327918007810575566051615850969599142549427610160420631672270525996686694308209078122730739671060627586583130716679744670414930124196827664615256937780060834333424763384481298540976010261830446776010879675252743777403021951671843796966401406188750503238553318620644991091680675766987981063737373457568637120142139124545396043212604238528889091481626471257079991871527325398062935132328849513680746310929671172756054098027780572807243996087165851583948635667904654134013277090727443889282883836342465957421209779333142601949723509286875956655625685223649341085061908471069376026332927823749493817009175004140595902854890131994908906933158243857114032406605546370382564640885163534873876726065192159662835915317748001776569239487220966956708070990041164039709538002945893278371569435775074035975402710044311765994152026918211849394775536747418267149900495013625448398353374690896855681637651846225737997168902487109357751766280656852265367875304062912991870497758508207636264958954158637585447069302807017411202277081527290830954484685605727935606293388710089677542103251996790809071990107192142521957577342698406864559133442840689470092825820223599825093363584151151776971148827227784589420144958134262371959684739678281322281008898285842045064696154241759699059914936007713061384833661493484596086463018224679729373399849472059356998971901101286782530671922362876137246826773942521252685634052399618357909005167087170420960706522510000509730650359586672725848146421859926005509134212585572125164178711481091731230781718980503794675761483930334193432143894103541241855176660027369079113655384669484470874418619319376991038547953637022218408396683092685993471916683424785718978301157018151818799740824398975253898044131307208068444663130448712472050771695532229937102109201724895100735385728465607905611114132364490434928788877692233418392760909584788187468946768409219202303713062347507693597353644609525086407403470995874109515634802459461694328916523235999051027738205085138824584516252232873755688549127575076339664079884456782183354328065546504350645012542067293628084471061537015060947040220437796898510845790029942220249099038659623727000372794618569728635364811832909952281026589637788539383533817925814637371335183382967708129437078827878383666683266952172969275041232536754984976017217604145124374250528720069537607375874259085058733384259089934837199760973690631093147132136248183288342505208749697879974145947572924123316768465275542567537286300651778089281407189062941555722684710967074109667195061121273958764770876073168799546439345021922658563020878378512491881870304469149291328903795218790339099563556324462722088617866767792069266635746478952720220252185183257279178613010722095811046319590217673518793418302764584285154592033766980207121345218681419330356391795757052098276325418098420518871660063126308982156231759319666434867106900198139025396711674038597674862476990757718161210712360131111264159560320539551712622034495885595627805246408107323973733029979539132983767926588841775466217537300665564514544071052272700161220256015874210600941041957902581517985735792591525289742172499385572515855297973087837500711433411538278388093522508744214957933906810083192673444176830318842467549243209946512633248669208447394143079337681661104355939165232955471634608190545824797018368779709530744579701872674321584113477722536004249394091995373294217695452490334129685185882313103960114028373563671061302392482017278106141722105653234356832302332273958492960548945040908573207267919766646574921439219912839918136087543063504924158765393056106363781926886982700814831754299152333925793362101670530843242825097826963367417132737735351620949025573106027153052363925547476890999232056381033515012901577717753277454963604482861011549267333377586624083345628233535904566119531639915470133884226580464018064445920448877014118911192559743646725808730744805444969526593282647513598464640318975522496410884704438831264585722004229815348646459817942333696228935853595164843491236688350224351351979682882478193908805157809352306908621964001410187186590938126028471756169411001312433215338858423202123903778035341468988008515771141931874355488058235731155261218383567644856811734762037056184320339279510489452360832945622657223424838482159843495318234474617371577994862745305625480231076264147755135107274744892324864225731458694411718139727558233859923049476482649294770887306006578369533284016579826723626917714681747952277977135337456324343326242485089977491873381553934793005553127843704787245689860698159383923010072454676527633944749291344393658339805223975922790352449486378871104771257850152120360351648370477752393324974914878404369932500699907499506949874575746125535313872087719762616694152654440825358869110504523472424627853909096633286836616053844950689852124455109761976949271294409319885184854347240232184376360374452025884055073221758692653751880778377141812082747884043298797316054612549813668757281561019881332357388721917698140813950645088362018789112552192214822868693561693897604715331452615844319123980070357261829966109713690676065825913261288460600679000653005904478600912939559617518556108105327538436987051858339400908142024534310945160300476061333139899209858532850092373693848598439900271604562603037519653895676337416586506786502838005062023558627755359355888782027966941111422568380889217528699800696542836424574732284862762547558385423857663699551701411833149329921536384947853825817494265538284436181316591659662039472852800276258793273411081758854300968900101993954250794857226406444774204265299331246568619262505582369975603344745730933663270299395752487942147434102283177878667746336698520477703596500058211869440827501375399205715931737937167614776043496644167997354256514878435082520462459532954073078243083162580665997324653314097495763857188448340623216116329353352141356075300900797381627749593704211412637923441959009779958299437900050618613975650908952660881575616242460016371366227933061801801983834685053716653521317222225981599774903939612666276035020307756747092724981824458042118153253160074834047221279475543777657147060291283745248805271941622938222206833701595697350710385288214095251744540871110345345249817367418665640998734706017785292633202483304267371760791841422474229378578485971394158993210915539055205479089386092739001105276358474000210436234091612255933509455065151650554784270473369867409203836058595222854398323926776479922778403150876578311168935666169774685859845493907314344341649753523253806543508241689691845345894045382476393367722050152112640566958060811957324824741014928207952957896536697596375241614403224144497105983073492346937381524686387186578634482504069234214397042913781128039292969461949918672351431949214410493040204642629729055384285863181815838868546887210811297242960288010903317090344682902935430355951047356469608065939525494236221446258526321750617125074144121339859306832214742206186572181762072549067130336114432841722940652900223175582072970642163884712336426407117528499903290430997546071416398330093081059986125605051008461522458698444455210412530427565136751041758472914573643948158684162636446535940414849405377883892118720761722911995314678099169819420111866876784495846097432760950431840869970103297871595668206257853430855269325675422598938774741725259474758323793841463564473139397542444856047429776650391766880417760665351148341671716263335884116762686596413698250558145911717316830950196224976011944603566887216502779347412567418539196420968599083716812712928552581136829653512739579334618788039703044959282700016664615537459994875318818565088670780220593295156287763375098587988638137327504018405141620201973712047287726091575080706729414802432664042726014645489787455378968391182196815340678633502592947420129026386354686923227453805211066058590060101726826317656726338593522992379565296010437540499247618627078409687968102804463523578957864685080875791812736383279530241079490490056726211826949718463465817442772323866060609122554491723611903422554747693428343586241313590985786022271155181401465365255490311088493119187499510765865074483945450091988435492127967355251133163220221819081132190913784308404145366051206533723996615066154374615785733768616979100837090460568632459581206308705356213520920076054223383971172460751645383200081379819681802085917721362179483862404576554485729622302458314237979645056783064335775372580667515301196590380112420674929512828235651021099153834884337718310018683089400852888920208455406231135278521302007243191181995874426135432265816218214723972854174103370287131402782566512943127700432249537040103988902443514555423916373060739868829517010877899439873764141123384842732718797015215602570941821146397844523443361628178269946687639544117047281336506702863888242711983535337660060039345429432329741432517948191061366546277608531725974530074758428378912665593246631401067209397561728407533281004658469138118063190327633076639395239463644339046235607984560523088961008104575804342908185248932204650861409242768954824407189648862523600309110935540381170484520745057887215017197813801687481165489148027570145400083026975499089715911008307975873970654556742380588270385544865070746825096876010797643770635850060973015171488076739393349598086563403918770667641265618001018767856774309677804826356197191407671542595780555894932080065997338540314242478017995202107359160609709988285938453977344292732795655686942399216650441702676714325617491756280580191331052555657930881599975317583285078458021468945578875051257834039016938879193702696511660016160470356966548667124753948092799755845747712628079989134076498150743565974687422560997215877145191652879855956390864208012569923691700503640306776279441380458964575055047069666147425833910748306009997600537275417339298976172038619020286996667077023002843104702911909413814481333477584092002756061838271511178014464856245722448365930474366816631212311777332157286943465034626712171229573522322446467107032558889829993813796308876148203904738207767925428772977885263274445750531857891889498770964503257935987670903192547255169781181477243842906240126448862016239541157906410194489260186588455834720673762297623157645934609549137139933188103432714315518883203316786046462753542063511174866573165168104357416336022279420760187648890690925474415247834566444463180227006687862281022070249713214393243691233733550522803445771002258899783565709756001571224023706213690701698606114840684026971232215678501281833091668983021043293288826240769129499891768355516020922459813227123951893625756329429586366258552154912644770958043589163616383458729455821405216942747580681954462266432306631385227334985398570147552427460026209651266656482462215368769466559056853523181428142843661899772134227524698633766065117147116352524167407831936912451642877725297517858982710694524457672615986817899042369794153598046024057236973131853052757521247977264083443591182316506270486917311680707117672866185792279299220075345301755159897673396970659619815980450329658850830747764857170548251119099057931873405352366747668465530639073934565043063674132355791731099449550240986252752453483193285122246007160666202587206857328917714116109536275765992375043355051663952963454807953239095159393270660677245288403996809023592342485014684196667965087295118797538057537786291069098292160804518660744784672282226711140418595533829344593604748059145830484287457215939103552725429626583604318584776308510612984063328246853730084154896335405871553324995353011155398757313223781430819502244039306135598292370372780225951259195637234997716098174305245199487185699553246073966329435103567008858799408847457051530543427205928198101302771310765059602655430207856548125192908407601174069264927910172748099049708011110771974537551259754605396025436806468444412849247414080841793312680751267501062426979846105179263878907207339383503330780623325154049380415228824869377900158823858468037306029666027490430212254791041871960169115996988019142685961706076974923837070015137625870943216206035827243861535079398826921972555655776109961932764611042669332473041558451856395201486852931942706711487457605784281971866041129259627133152755219958376032275489738139147569430919055926845909417461106373887405260280354254281909836074683331908168454642803399324319365187251543787370199769640972808055721074299461589512073529864980888012424433576049387785808717162467224204260650579717029190523511762721343691538291351041625611694306639751490574208296841325236364437146546281421531693704687172475261933733819080181637380760513528526309343761564773080296105204760258170427763955817873495449494941694023659880444002791527427526908266080682784981755205230046190940644212902058945295779029494503657831807793132412796400411654243686537976062077645302507073622382339942206724651900876043139604687057603680734290074204900683435234467000742742772493828467814613448162147460216840951763823772113799937384221510981581287101213533252370734624163255625839654892145774502884034283703652618685676792160111925612704387131124476506952858327071552514788364732576285433011349320511734456619293938857429549148686223004341016017509120747948357968558265874611490335483285978214866834637239721720346895034703832487361064287184324536554124959784933802145649946506071962117484384841758419718538798402038542469672340413921756982712677183325197324560844619450889578595108484765894100608302808345840916573820853497266586200477828246814576683804845665930295925837071435174236210503565008616965278759965112927007030881146509290851820113120538683857056961285944265867683393004304011533634130526894493785235878063093460812528443308374171504693591082753541637265399546022605685031182991456711451896258579629595971704975326523961363322879877960768530368249802812182299920184880821517154216935842502039755049822565797859773847748380331679371990382391934934298715670583400686423943966814041736808994657851699850114826870332263101727058026146315494736804179288369072349092960952495650452177773685053857345902491853950772890962976130316805772406150756733814857868021992311098644019279337799904033375905610838514642027191344055880913543861552802311194062993812587489505787094200271122179555559475972779363648228520999297924755231369701440708092923346475266419943432817246999473834643064076106845537890255099363053904057845695997798091525869629356831530439003212800092579973379567497523780299205132969750145312993593876052982106657471724926693657937186698239505381812941370964739204339811030147566135475879477717982113939229181419456242230772527395351653593273121295017734176517577186117765166847126126956695499438034115729936741539896356369689463827674957481131928057823802460580929977552352836754222367284969392267730814141077447945303928794945063757715063065093060374422367547134647374646769456301188925006744626123432386994405225187662262624660626336904379058265252051810445284676126478255307428049400059380573988058788820350300403985725946502203825687643218440876325379407322000936008858067147423772469825633299017189630424782880492889148105462678619311773344764104872172191566571869346757316084571676737616798164130714895190893078912720384786763700650428241829518216801105633417317721356950238736176396781823342167236421191273569498568291466609658359980555688332293552294836141140816187953812711250675440189100262111386379134874360014712677377424536710377389490440140294643334383916161521417152678589124375727793163271085440194528648594430175148518364155357959050068384189247422252754670455836000637014728740512037155029557709239919238693157298470159410971218747477642286734858015855476531250227769773609208064088868214552061259432356792057856984652778908590567081233011818110685738981797709464971842392231959411292874777558079839184356570402794544916702153773379023897711320317327799035029215144926079101753737916322948325217655375309945937067114624218215671718140237893481922122685706546474240559442579038927065980339947341549947040720024987945663755099540391695139996824335709626824670722746784899721793706446902053144110956759505026833873757118047405675184716575803792320991724966581769471585568164674747951787043311902761605366438351594144726508881268609488222851537529632890085909032322877172796125981126437097984261000629468828357880357530130032365020104559978636060544815469793589008890273160095065943082690359755097417407196961902629710734110259649547640515672254416310629994053436772780571709211612433938672256827978875375141799087788484282265758040835063235768205708547404942761277606531629196257114080225352464500603941826287170606428850408247845586377003766944398669205667205585015693824353843663329130395075180594032289876822972072320164257126685801396804908175809734476387730919389542668092547935567153290888633846112703931885939571769782048264670428639919097205393354872622905076438039371121505657258506138181731022168426790862584235739378380330268974030032667568627777866611320558493306406269001356780021412503660716060795725200525898085353612792284782746138083093263152501254593064870022264398708250044224159310590732674996571127194857580022156994998802633581650299586150859270762802295238396440834171136010129402587565790865208175657034961189372056538767308333214462698232635812355112875249484300308289563896533859290720890453933482608938708296317116483395990019442963861781230284153157853373728508458481560040270964933992677494971354926545836029306913890083690167126699547603185385081908801730262248428574079948438689734692708317342806314753098162336511728904310199489076730672985328952475027967592045493294575379649983359453599492651274868790857601362057309478123465962343354446954595280086380577456481303444629347150936332742701546466905522178848580238559068984713615177493593593225979489127743007100334059865332247830699375304617929746814218515638597119798383217775561576710848379038022389327136623939717290281361696756389516451101230172129736923472819894648640556461432449805802147195672244268802042817945636442793080465305897808966842332486205614891619863282479010029874341172853886162097478385998504978091407695492148302542034360807646806288290300069982937578166800750214402950015798350443480657362452299849645311679510865775802214810472337275390607036729557817291595365573364716605382835329312280363475650016555942206795677793997587390350030577911405498707157668666349593267682122053778318397356874505919185473858205833651724628843471824452680496821574381199175039251488284113253954484463917140412770394891288158480360057966689142829475767215940228704588914471460428416637131608517753987718463998045757328559766423781399892141660739782234654077605565014302877117053912774905469834341526381394030884066780276000688317169052848932033125435514108090970944946742370552028058679225600017685795639604352971877093384964894243475015542244623585199705548366242863525068673718449251145013026751018991710751535983349345188347848410165900604149447096270492060462834476467305400007952657493193306602488952143889723016246590689701298739505384005828045279755693160988641535057426353746635773687250356356095537507788110986007720858171851034610486847469194137639205843223891614567820695128239170518754700806876279262075479349156397928293861413515207793731114717327986450607161514028234129092543335119239700173429296140016008400056848151993100592816443657590618815449294874616386397657346450662229679622397269850738961894570324272077882606833732774540025103685993966866976847918511226182199439286790674943395268981073760211709620268592307662358067123555260586319640154994296284236192351518364258143170229970260890890200092808335530451358398325423777509751619219481083761011465402197302333443378790126282870611613025983856314783138242121668757761752856476169383107174021421547218802906659595191222376314920121940694061853751736818590537947058204179650732862467574230209753568972340662673905650773631405472593783815867053657937674038432379679210815932400449147139670765452292773759206885166037586818873038177285924908599392547353825959504185240912188022109486891522702669287852451955368511572132576488653975342551322932241203888376555356319714267923598106958445804363278661990766504163539570036451877598317331587347291633423057628453207278597273268658535635469739667270628039275756365844159341467597359840314184067153348360667254714072706766867692576381633576512257956438097639884916861114821126519006258107404866034908254059459076882621032576724107312874287328474864831696535894701133615733627466606798553974227029959796833040850899669089756094655513780013275662966689183230362239444856907528659106668196851448103644586349003232626713229490025965340144914075425078819397211873572118513790758878216395475656689550024184181230123476503461989945458750214134554876472045989023675587092613713932499822401756117737911523552751767171139706060955824993670557150567760667969313867552198445628918830921631224443266603377475388985898620571516879257098716084833330068064620553558723480988086657186819919012356695534021804225715844934945866481015501550810108776353876449176257460026001324423708276070128234525802538759677238116234483991851026837416777092626884180812270261781215364426647965809463333494454661617480713973136711103402179319488204915172879318732460820703181117645159300335007463643719865676919885894553096671447587092753440167137981266106305647296474803698986011407673140679907094829791880496300771244427991687080381537923197441384554667006223796935697854300515493866388542470504238355198562011558597010884097676196682272615730190715919470563522575752472692701238881615116473979242629395458836772845890702769213114203651065583508555250890319430656276097337033203789438333792906636543219378633442561832905047242536942672267719122243269597150326362335154202256039063465900411962101190985111132974452062406868966051793191716952418105571284176864869513925696846617773201390234645260086283915426643922864246555163342228566701977089091828944766004935525307256262181809491221899059497847458364837293581941227982943383666652242907177391211376699047402059541931124745145124472102711309252838354221646255796039373640026021665470052117996240551751897099000627305141388025158279076956874834338935509435897242545634564634121521993232419384180498959905277251969230376600771568702794334994775528808641487854687110986629170683458475481806300364290705828296973670339696384013959115549155208486036782658443275701998735444764254280442380792959456361125283479755437167383523415761369022357078826122507462814125821504022703112233469384306283651310678011173453747727596123701335735178085948803600133126897666181367572264509084915491988435320223788988512885509857527647716916041440179475494713058519790689627068611092983002345074222531606654322116636717616083269297116676574176520466580495470907045546999884125178690019645166020312216581657843561075610362643729071453151055395912719477307155403434268043510395763733566258746991929819479090044125493011906346422988525339154924555730480727508021100218130983422006445671970203487855676971940072024281329949780962764467006981627091585475464352019851395035716030166421336159675802926606695697653457316992764480168110247619355501234550870166277321614405948687479646564197335555783242612908993406355206524317824397239549017769978472327327147163777250245669329045436952662573691353834383228389026468586969320858591845356169891565527558090034347349126930702845125256817104451074369692497555240347778869667467716867662578185450555394323216908628111936922120311287548074434427339427672804380318068399042968624098076618461624588687500977320492825281359223344819208516529334593155531254136146131558060303522443102384758476884254539868733915686578050467030749621063497603653519481307643316054746509621981142457266779109118779536742442229018368234887521286426592745383692249594092549724109718712410537815066727323985174487205757411253775297904568724550186179424522356587821300290840571068776159736105891907506438193931649842391394236629593423906355748842782042861692053661789910977851929279603404074720718096136850101281754587334862728572101226118919686647410805838369929016679754583785491993730896389626098272530228593386929355670684618608001219098440652543475893889757111825626885689618650093993348433312617409583427943524421058609735593827477466197104674524869540405835273687774194830792221142783193962220327306447434233921774683103392279859535615593886730566737929401639978506992553866100496881651368653893868593205869913265899593287250203859083457197371408816480938084764314178745555163262255008014472940555222820905419966873095414266023649026184055262788433220626705011015289176598646205496744625596297549578759712340528132710883647134904434521690170446228789599195565854352602567260135705168381903684558980436058732230843741663679459462323108957148765767650105739953070042375299469810349258624811336561059720068137738353841069500097831520195983115086261187635470472016499758491486297646588768951453501054971764077563565174699862418667211467382068588330945165305665314467433028260819795221506708272964093780904649204541757639648614431843314423790613114287282547573461322458837432982843281915301864025596447658602200549963441622791149938818719688782902572344206526402257385851635103715071629767962895263703324388550861764878205269294639150068066945153137037134503845398264698213499589091209701258141713811305961392987909227631097402035194198432887330336945505317115557142409955936670047940893385061102480055634146648851701733301268912221001731697527130386138877987214245473011234160177210446271926330228390120477891858451798044170213006201900708850485254730127247772305961766448200312358482475434128774712138935924842932264111678452378920026402530067034131581742930806618303394074107028966138572477983937867734522050630683229464540989020031951634685439684162068578624998047516902196709633719739943232191866197248649642086887779326391271865211884257890365697472519749329163517865726892418533843158412648959372028114071995847122062683318014418958216171106227536148787681835276103838407899584062213508570280149167258214892407999262678498576714273139201056380138525360428262362965699911939928127307596160116373804989355921025172052353614889020000327805582615734457184115067525308901401374156532560082423964503367996879550061943915634072347514091405074979406075619175976808663600030381826033943913425670266876557926289030011540250984852859627239187791631793311846692892506052334738219130183598085172077827874812331157040188526969111550624329376759537773005280540151342228130502231680802854523822378185734998895312641170282968386319252700187096114467424991950093470102545018206993801758252045928699633954873218354880853017041368634597959900043752004220720994515581975868257923543554667616769227103647113752669858403706499099230582731505693169981394450424551015137703825277462448767288597329242926723084469426835491979633833531327522230078683799687383227960246684899485459092927171698987353594990558923293423962202197685086684745403708687157455214327565588102495555267684451038421876928630735360965909045944820972787277137396296934659517738581189394926895328106200122185488003392821847496210433141406033630468390967320564752477474271981323972135147449900092060913716907169327791884725780861089506367854407506559523098989189361332212998017012414717751639399455946030127145108406931162780614136267231544937815831202300879353220521061783511571644165178973480861217516853263506808955279194481618680791336393291167328851201246649570614055529430039677226513143907157318524711711472414069400188490528338108742533806069607755547249275620066203667066887924470827055870633930966090654643966757270243589163742684255599508636295919328617285788539842444695129413542541397639367477606167094658596487128880226290777211718453962093497848262958297965881550585288887970461548060374396869709663742535602881280959735750700078782209744776767662761701874550911062368431011509534871456274756201912929102712150501097883094767921385332390657018556807202534626663746995324767815094455191688207637128846503321812796899940444594142480004002026168881304715811007400826008131941586109552013163385452071741825010038570376680393636455300976467741239407883425157944483159495503970620971547599889675598920638585769775428380261733104404250088171256721787779067747756897803326308391618091674377445749156544025169796678187523938152398684303877049747205727073264289452619871032508947426565682894136325761271796642947365722080444161912705931436686641658856171294314813179824289821461936985364119310152517126909631935294194569347385601197855001662247601513062921035493365532521725611564509830095407162976678175668398949068877011601570118446418457537491402114686952122029797621693889890358828194878036286287216254677033909250861735001827550009257325501147814121255943782791708417192512904638885745702033763810406927148663193211651227283373165967443960187269081772251553019758699555822418089441204191939561088105019741665174024414130581567785064869619515058773214148142676018813751718149894068223813089221983621760149879364444292907484026389973943232226842994172651552191319586465447780720359125257674856119556675338940577504605842179142974734510259181654638619273586333604095808350066044953766223984661148335876119392636896408307685010827029009346428521620307514105350334011465033205596109556303705591163710347397352221343120126604222952611274243227068571746722132310059763235805552278331256214661908358728363014378054067117913529976987168856446568420363986646452610304735416615164175507752041982126745551191450129602098065836353021794804203745979742007139148080938084733672861136280030309303631814138829892839526103204817165408812501439241789723780951513006470988941561386359260213548355741288486285084721188474796951809835487553347150817484907162655904878478710908614344637758854481180596987833954369413949045722843786336975535161425899177545875724949305371407669192018094180845700888712357123757694109833277220323286894290866193270840432475062189269242025771806955130462231969092993733389849107798679272462294604588565587204526192731411706098756624810873569626214672426158585500921350313418163504248519709152494250781289251106728230935668455500552962801413960904979080227319557353989646094330626678155494871513556145438470619653860917910308755058166118541219247394214485041781479693330140815096017212703529493061347708441680966523112684257509592671069283347177242960402711207064165751356637733923405530700905194661718403363512235236239162365398757759864925910731505807300012560081330872570441741793007408952669376287015757571454406345412181500567996699682508406967012821875131890657118168053123469266376208655462540717684349153265043878645881266343758278669379571199627797769861965624552777531985118932098275286836438228062272156639698376330432583566839967130346238261276463470061242786138157756164602115100918064478021095867980569801350640833904503416032468780126282467031857861146171574324560897756138270057202316808050682456512325204430553921168886820150554745927421095413698521885413564328107538385144537555648566951126564972947051916782316931631509139768878883401198350252992013719325959359419684960531407888192017074174770702770441202286679181960297102270564164570145153156361473280592220902525032086264229327269596916601737206686251441296178658137012163754624448024765835510473379183559606673283306826382949959173629423380673359011277818034291281200847197517977903154311764745655818392040602406283849800942971450097366005130548942163389107580225945124753340661321319867189001063690741094871434446005845597197598702508365876607360718274505600879912218087041272150486316357588185376344076013269910273947777181800774891704215661632912731595809719701856961898072547961593359772320093173910656953837444220596480828745429935407084407627291556393773838298372045254056995186041160272042101239131941814851977741150679889504200762844590587270797399480631708639592954659339192299939727722894100506444957433103259283353226031274674974223536683771414957309062261398471952982810671945117874781127933338113605315722623201619670691699988272720477718615650139799782071806964766981080705736160146518126338409263226708243083204801552508502664147936615800980501999897927730085769400771967285109572005215046006061347925667736101035242200452394200628140545620649972818575142002361601615577590928094641432458168798524877105379045390781376589428088313235927779383174556981377540575734590540182772872760364249850021172229150525063303210118765154903519563269127982334600513651269844313422442124590743736827325552629211181731932836929914770389571179551268751816085714994473754788101886408118535840874848596469318466880882165227519556135849060134833821361332038091710381967810994992904111828477815760685080605048738383287089499223806367378739725144367743201535104389482408323036596997334289711392731955683842921387707217896918543972775860249012155508991875498372045395986622683168565264299834989221431551999464363438272600786635591717772922451493144871807622134522748403140237073589357579508212826620569289466897001135937524769564891824749520690173357846836463241934330460698781632474579918311348563048968256733515854591517989244631734763823435391845568479394488885078445731266323192452507701788360058237624730896862060280259547712985640180578531350779884767697199351121732990934314204862951791257947405624826421722635051282012007001066048340773595112483099538959220920663423659890999862584731916898765292330771544308437206985109884267861094520779264778512005186267558060533261016163906105054890123965296259356795075973056032882796343134985574567780503970518509993787430998911128120473961787837056765607567834755080479468609137510203676364098071937763799146916671761019101482925551454507596184082022169600381515269129947331125376213827969032114620121037795566859984484555064401299831704719633529159165826956883877126755189053595235776204460565776712612835121085171059302839531883263091445671620655799487178501673841989041289460973593028410528456768216002946907516915642834688351009479301256022315504721779785721906179754159778297410993282406457652916208174747863122100862871570434946105752200042356608886408633864533230396684610031123709095396247490620592160880211836422679269295925705103945547825317964275233727464182336612364992300838998931073048228370151227174750485104918486783219620560000889999284847383455403429751464105601658978003445202376140712951999241327491241583459421978173677951783062164802321277882263790819702971043075689897884839797139350793893540212456037927059313393229062875287860442494853645602868127461067657902450229730676438038615022163122938920920471163476730108800935727103904693168403787659940457107842581041338048652289371491155610279475595707769059578193694962023135243865330403472526294937245674933359559310229597467107259946066741976052130668690160392808659132333469017995386797473577775888925442677292784013421833277003194525625438933290453025043962399573483439910333523919632216351494917101532418001331562636952757301972853451953856584858966943402118005135276479533339986450995947043780939510685708861341313135579666717088454996120586463893710757585767774651771689928003306941702930873870697821857511531218956494761646749541643688391574305694912419789822423408149038855788788777725807179275623941766543603965708495202345223678313014924539632881333165304929099522665240976884985753493307901876945851777197942693337922245357598925783205216816171833379803283513945706910152011275505097960251135667755461119051682566937050955026078589427930458784959118905714202860439963475910233393367976270920769317075885412197026783823248917086253384092674666767547515442980071119225270111714945008777219902111429139851559749107695727781797645045170340032183589564991562535933542404413185600534073866624907329706643069952049236749709541987883292760282834832123096494559424569412980025113244657644257425456490890359858775649120280501172886591624839016358654480587930583877510385008113261090683334417784107280022561411380618884510710280412279272585274209019540574355999421706156990984712116164206339779094006061581969478617859577730998142397288970457519600670265472709279700714119337932629039024650614658035937194951717445929227121181033020937030641307484915514906573464675995256616259857143404529686623143050795698005002274630118616201906948783234958590908758262622282617169095999090956533071988133668345945316745484582880877996320628064217552672987615875228638491191536474054437607764880332214131087562082813584423045529810375443860515654727664776572290839885724559468782997260819857974983264210431851254634599768201775010605758862081962117582221964800415277916704167672376845540953504207912131396264733701972617053484610143143775908979381220521774531743720368089853959532707041268386956588976912945807405279532750568909007087282847401566364769918641120909366951764347159956409314556994807989301262728063233812352459133366828136674778524898334782722498486324352069310848335785958295104421984014442482863774570875668907366476935528509142356005252067711610874944380850962199498930179335052919210059034182288776680523118772557325936662107671127252722290776559751637318546841771779650032120264805439366250326206045883146486376662870987241473922352045734246003047451211961563646157394277377070366846058885539161173643016616142940443227561289738104414167848603931413596955203463269081944753005010451182812947034413435557974109975411152432499309860977552327449775534515235485720990325022171711404268812939820080320166266970719884126126001020937903434921416911099301415709067136798975472241537596583468868578445839362511932129176108185206460514128022800397136824499378141983050558664849952875210007775784627390412503345433249116339465851613626023271075092156163384107891716999223842254398135033599489246698772551309778588260420288979299084633052494250917974996537869699785944660798115519660479658531859433104132555081338669998560731376979692969900759030085617743402704409282235263069432053682032500143536383241071588371246577645761163844705341152196133750003686689346715383169801660027068239106316278257113822437624103744597429796979400287217964359396285075514611634277898234780420878892524986631960248282670104139080398301105677746308378925265055941505565606041814004264093613800205636585926207890372373772390570206465959636986362658605650087336875811212233558863002407364699826875556052736639983293006315132018327080399080328125036959290809731429252356774405770230368248654029063813147052404018024690670833507528651515640965820735611382013644115253371286512474130914053879499482388929812668535797189722636555396414777113705144835901435176074197494729408130246769408332298583013045923539599231397005924296208748741370708157949028020232536113675089702911621060577058418115683497111789118339309742863706374430523483948263635836110885656213106170521008421943886798548366844703944604700018226299246773976436920526550720591854228577100470777237866062630722805971687531650765551886364044077097904193250156974983323258588312786074895644034262970514086886932126314112413530998431752582955144217245020640193819279793294489100351838852387084109395565096071307861465644414308352823828928089168813067870730734199254844178690870509764052346578207375954619818848065116583771406082530377632096335654970483138140697271277983327012076309291346071989235431413846812411281234223510254770713283997116223355298158767897990824927718689042944185607733424119269113288611151856416589515991635976292019476814591501779891413640247691792063250851863875373861582940702544535952919706771419970836684587302925235453446741699243955973646560280591347263218228719138114312886547460777698556833244943024807868329161883768445631416817637213951392030574748757544383835959548326039281311883363832890047608753241244384748628997898008707477436367743819384680360877099220056405102156050343310753320891137184182791913175667773758676409570472102247091147745194777398000905231324412818295039093262362719818222257224382530056685408014947244294833955209261965400968516617099546662692725529131628077984176910614797073287796233379196080292951018475970361006109537578641876037197318857538362916233258581238854288888524998100616209046738676920916807464817072837795805265892108768426756983245271815374674238394380431995256092008203500893172945679145998823473791280817341871016285899611696597910488347537708820463329445718494399475331479364122875754517189244540549449843887926386347401335350740727995136041829233959638685163485704157325526145589630465893537730634189920918317770825064345675713390098368834040656009361339014947844777058078225569583072360643748162043832102857734489308586362825974249810637645109812379235281162463142522474860020188469939090449289594248985672349445092554211299514494422659368208835261768748257223763231387889860608231799157920413141806536246075267830589105324052232898768473787805084016236136794588691882203311084563356348351183476453577959090115215625767964307033012435829893986283069189785069380867590575459944470719423228663566962325036058333397960200290605583099945972458866716904281018971410637014031088705859755372116017360396933366722942411568732030143140649095114151411156381952859908646651650148404195224629659965127230260091690432668326676939280218449318161697231193673296286265155487546342442530709379975889627193259934885546100509543183884571483163360261591974968007378070958386085951089862570403004774218701934889629495659545821712580696179897230642352103954289242104295164285197207748787467430184339579723076505291941796459737934351339669911391408655306148626732339194552661611928906665126338635246008529920635442390703437402165054731594172287679567259758912497161691639557517839572162540896668536936625646294263697139314330723919772246749777234688471162324564854697659181892432588072654081411253311527306843148648645527525623498638603313529139504269842690732864889250877403034181482642946379468599906335499895341854423097094836095499636532127638168896284167391110284050990618266553637255854122153942412774185357115679494929531273147117327268738286702164462096098993517569212141322827470646668061234616859687299269095417787510903676461884530911308589503254869366806738644363638761603701165359106288757753108409245493132979068088485691204455350407221286197881520083744130461749765048454888697537451059476890271631351036976245695368363261401224973120730717491015853545673148990185226407233135504021603997032187458562632236978132965187616427960100658592314628442689597917724422981148767273525197206785155149775845243551221710916879763608314385788535542649739258222032627592460647104206214117064484141623206869206796694224320482283285735089828928922947937323283848039080526083259389503232595103314932928163501884230583212256145445481387310280175602509077306593115866476264251542209121739358997641849735023324277332298215801347886379868767899341709385194128682144957585342621424333050374993833046789008151125174856798040709412543322795974299446969990577844539784355839916319452950933204138167210877597634240332068394127737859585359223869089436432078291954454243593045624941078479397698751720353172408424143368279354484579052856281120719228246016657222593173795629411698684596966271577857465035613268934723715288633027499831562598918741032838235241621307843852518105373483451058373852355408992732694417556588949566237315786298503729606917190253059280110588913088332443395577201971124648625382576009135877688843432203162659612944351741005547228263011876108503875067738460363691620810702366933641324351577415724922272119003616645174339299242760913225311346463452852213240088997858544793017334937954537508475085379985062524965177744565122622413342977394854319791697841207010217625218501691699166994036425539343765177621202982755712852128968360357148600664586933689261639371271156624293200547938308472553533147191475434900310957993117048122121129451816735780879847809798358431979773939118918754519424450430811596837953815332852110735595455435785526795669092891694448941482237255440336960652785200946334034266085725001174422789620471991645276412338628593546439943573448044919190721450145164905209062145473446653847805917453442641444442519035500314066455701573269423641507547333595108769701058744209769630651436057121057418031436041609777631615971694800846922924053850573706404201568599960363920670116071966310978699210456818328038298266432929849554387041351606630376738733924591777004330976373333189579294268915412880566843849663273500402422785009734514001900670139842780862544257905739974980633022861933028126357130899089424313823795817852997625030001142004320237770223313023778317975478928825058496047931312296898481667507611039993473568392891397246925355059879579007515640364480193880454365842746267554611767792922292397627912673160418401749266297845227166344190472150954067272216863499282916908952214853903713540642487324739510009228160988954949469728621135739554059951502087431747887500539995321261184335765950762599921978572570932927757290532292448700953111100194248971157794248167644227939439536083997842385974518389616849535140502012415822898250321211486519449945643369108026959328785826163298342181956285375379183143081248699609504724939591777230622145875189504329455520285988452677843728183560263956482105860711793218115701075340309857479158222938521496249729386781037930246280084373180780292041944518611655386400448761677570736527752877016583927182573235957202185548672969682246336097885192727841976405913706751463026169624489166157026862290867816037352238584051850265926935275560571505274355212893529847669679369499228397497862602273047207402726058111355373594869484648414708985924717218109179969154176209930491030505439618603373758255371007871001734358185038629553450024755967750603251212666126509724773657442772603161512210931001568620511721792867812357953773129433819851737160497937519661477203654009511054398964513510217614744373473940574075578603062163643648590091852483710504586647585720666748014897701572367338599437192564976843485703536237670903104481755322080824252786396887433436950157095846882647412440419767277438177483849310119747958902467748984799030858358435075852619486085939775137181688449010356777553680335286955152538894521273116091400754892903845564544743908206879859734109499278448006342596521847532065164340192584255309001293226697217730888210147152024114864863046085877749395232511178598686157997712163045267570696480180555860555537760093396736185680686468687743026909571855286729485183741671042470813332392176209520577435313182198675216391182495403926178216868430351531754706751005284009802133550251051607109257534820537267376660978325839576939009025956538143245347009959011767432987115047519271812141416410781527854566684503983589147091805687671341766293957450112568059763741998545464093637063212360878807326709323832032236628125140890126361796783475359183122253919637019729883034759707482175071523021463105984269250476218084492640312091971717134365921945819815060014304104132430103813301452391192524236763696888600018568770238218321378699182378533698425836897155022268584016430037845238041661905107568033998081489926081123083830169350346714276563504505863070642035240546656329708855053538147007080190354491974395547826129681365991633750638040607281205126206954997661610859514815540352961507780508608998230138735389238127670392382315391244360455187060372119704070277864841159855445140909568825679668458241061143106887094803788719904508575401230577419697582942932262619242707661490055234426244455759897933194716127079446213815390730394759982136941754932030271215569608847038793413011321894016628996202030997551318137772067453243121024877453082234219367370204605627398317956703297887556210837668806045801906116983950363404928075650791072749608648799124416365397316849043742248496091902660153402866466214422683580312394460857536468453176697824465570666982966142534338226722244261473625160580845911570924197157739963527320454395386228125315864346608788824371940817841856464993193263029823111316039675085783507599965557479701534820786846770458151931179579577159910171205423549384265251945410724373202463632455554097210655460355270663564703732377910797195438379769520103399767198394283558870655848672325464594122409666510917790023348582058759636178876025486140018979380938107673311223820987867347507274423345391081001660306989745915806449081697952538259651742724216295633567935595523556566917603061014856493838385473398352635880585777327192844606043109516834443660426454174829648863855044427590476274013558651760903012267706720898166426604265483411869558063895145820993333484197456609578550457711247596224351615642604412488451289227919892454784370704397459472609964632278542462218344564160045480780368923344807831328708607718043537781376804483034171751455603338646915421870849189803902803537904101447183127720414872529700416733022921322572223995293965461354315768704625699736431321485991041866905767194624194085117336680187675263389252195892021343287255452949203830346192760025852527179413012266295507739191722024988491398355118605727065988203429556358926859479529291488883158951241430717793942338116299762316974486289912749569104479864366596587597572218311055765111493210049182572121663329158365207660040411893190367850688862601625897660251267874966083260748694601126805271091508240653488389650282960309594808777169938566844335743533557383462902276396507720670386186243945718067061237149426941773546631445048126091335282546408232259378285368762586395138439526447706792115547385840138399223239282566665928836310019727729918299280286422430920367732668468091761833969188034751480156585093705431862048077122105755039641377829689677084207670496640604743111869230209133295113674086896857468748461297885547109159762622153856477441157227380801063915002385755622426482285837580401735369025777176478747653528598314679131575317530069368246721159694327925067819425097472665540319946564118562094769678556132044697788105957249402959706178196595993444886311157285765600695658857311448143098676247207565419009970613789327107674890361383626094365194631078439038483328604067730530461808745987082613946299611092852729552111316530222975911753788256098115500425195685345110719215780604715645448135978326188325652845477755244015283336805857914817633612772286233990173066552353519524780116045449044977085563593897872973126213187804432176180600206178693296236103894569273523729408651803274882625296896517065411826619361875048593374829426062904418041184479747316900184307044525411159162633448010369202988966259593898884825568200065381726376523816487184573157045675769921608137759736538444378490362687537993209501773533757621329772399857227462341987810696811824205407077874655398645309926920224639333857203322486003964884972716054020128533059032792406986073614620942328091272094066067268615692943359342446891486445822773546619187339748498810276862835934464498577222114658948490856961596528095986297004922028065415877373287173108292943488917869064513995201397195014798411588633627636746548092856180119137456189832478030631302633946460435699344906408629758082021514319963980449135420027594461843899300725288098516986225649783412176162171636510834955325475199339105367380938566043875882090086743615638973870107912338148003347414103298940067964057424999009885632269791606199747706040548748124553213202178503249324634847328639829526749985778076626214404984995287357867681521431438033944755716008981700289220612492872020716299113004757634123085499523508744260504217788121064811404212262061318221690485709475616299026890777940812391171243652714577466170463051731720500515061187499980304855658613818767241879232787505668846697174671076451233410594393782843926135889044108089602968581254855916009304954513166816463265988122647686354802231211711226090122529384172546932724593175597240751200613010455801133834406571262726073742800133243886050615256018246526871934875190024094088729124280818539936094449515717125056088781757796896007857529057875970026533624236952054078781669817979770813923408726738561609569094876621688811086347715032529867843123544948056025647703908385442908188465743730524850002640587132426126205291820164718836159979231176994839916350881897507789535512545697780090078325585913310781923211961265064100181434915937723910362809063974448256477911004218269877936821311955992001590696171106251680170185753279894692458456173678244081756496134860750818515866258042987929267343009850997379105592149924854995140058521621750761135174408551936649424082208943812688704881094288600926591691189915630273745218948790090151780240460352733504714515483781576371313573200693878079647320935351367028322933351001756863358827021740763753254335308522607636595371514514564828356134078318758036356542248819874612422413320236588253718312540061621591473372623919727429367315527632677267102325874812380729956510091021417794585266707537718042295496610299413096110807291452261024650050346899904461433337709017346742147365111408511609917263706298463619752529571244507126713122936784532700293760599879891407052454923738772270594968927499424474629718661565157073139584531297517376394691727028257541730194399534666659591823828574314056336278063228036026903915546276523527725183810413322325271425796007713837794294975130518301523934969279836381562068156746066866721254224459844325501908556095546810206722760495384798259867054408307043406011260786220059396844405326918041290708393290726551261272182435531937525754839885428454996324466664445807365544781540107479844558470409078238244078822525908619309620136380173424017299498450990370042327944096559287829584120757776206390950031390019909053190622442723307002380313449959920379356376442906711913494798423974941776491168504191242622800567429343460981441024956357246269963763812364671959570842350730277912634105737470782225361021503070897463830403405493911206836599299040181881447363219255265497754026139543722431512973730160924127121924754894403176791356701206717852646873873193194172252959357642021808911803791127718144096991452783315290260025343374285918972452482311652457000307018514604779567577806592991257781683349948440473305782171986587641265706371608756484030221159245760888001284000701283975246294819061086028118283513901093867204544542724994108492664503098551085298737019566057642234727155442632628450922864486868977721046446235977915507215206282392495124153652189739382817447957552660916321262197848883415390883881870956789689091626847966755577630486898640610360139080091952078172988634711911024967315897237432656393400629910587761081597070288179181475958232959324636686696330508219912893015761026080761869631702550402598540733335750781201988864398799858111920929547475118387179434056554396604299593977027513848055911635487098656713361661292573507104320507764597853617886969336961158040646924892665256596960003374342748571976892087877546683848609463500549767363187176235662882840087979789317574785766987198925073654374975395169814497399084562970331382999169815010935219093205063089460162156508120319715576469947917137880771080440395142237561629890013792162118615582962650954420364883051192772506854446259212843576736790158896625319013244086614004031509468986879485632379168596483199151174543947185678715462070170559968536025653859040473836924688346499201897273514567174407543211871135982129130195778080274051130249283607392807080389927172481719857295376127875531175191849246819505229454293287529889156927259824506227782322242968387080949458766756090626308365327333894881468685793189558076879922216310015973016052020407890913301098312235894500417503388747550846149265386895427323730521758597895047544026501112201220552892329509742232887870220617053252300913595267631832602075827170068817988721246146670463500649970779633436967771203944667766684497892782099175019609233464547361918692761917964118593480263401251220687396587868853425554066089912321280706840988751141313542459163430034852606736133989484110803177040494114266692434067903244015482424914749490277983577858860699422509457749066496520629829084496554118847366977048179848060682225263826156655732002652499683393872101837149872678026457101128461059031891692905276835193343954933733390278579371856547238180733277214594151539433622251933881039245741211766114720999205838463371166717016514457952719886417602290895919699130945653209158688787747989973028303744762519689872462807452917038543006098716009235424019508803567816256895274320483941722460450499483391288940753523261524927866164982046084385100793076209975498412506000791091449264077591756290587144242366450575315453458902320631864589671698393333564975337863631402817180585479077844206734460695661875246940209149137419710771096357303584431217725160342252047627221974335202331561030655794159101272356103320668376899654274829163027823912247396417399403922530802734791517692225803538888123776147182024712781778990641308309059202180037024876846363660120459568161201430750561622427472903204091249913612673660940268664333534815336368935342508146410320924404819492064570830056796785439715292658529390279967449514431266849765625740985776544601849393618201719329724530236165595031600701020129250416820624543641702786762171432497895832448595618470595441500895224291880267329736386190551637246229093475234714760875036404041874452096243167695098954870718985241332491477959684025803644963241392823986012226650981326925920142193884650810508472473843441447937958708326155557704522546012949652376975456820862940065079146989182806044686406702258521589662500194217516674651393855765066332230040648653004960534600585846988706308898296123030571078231879826887791054415698790038356061035689405246365254581002520097830002003990554211941983347922931800283935640349287515673855753387625579371748823534175396132327971709926931564215302895976983554076945804083255839358904206515681730397230631823294957142931099765467864065239693289108768140117569631099413425313412601563389914066854652867369017478026289423578618646850994278494276672099490081271389837205454738216836793656391436041773450492235880615555191381947688228130826940927291744279418160049226148712895868826536534503245469193594915881018137577180940498384249381616595710655778976258287268291589719973679697359026771375619448301045757096535482211975512047902767973310511690189330659359114886274318490694302107474904402241581064166413482282049910139089532086962690689599237452418948063082894919188304660340695882647775443133837224628109554572598035553739451775870785423982971024457850471870849653811567423983205849093036502303756367635440341303791344578146491806132252251612498574970159077156335052551929453362920494943683216539752779907788272342498921283567242400994110360139825433353320401742775082438468288069043727000837596727543662524881633209540497748805053441157747407069832863989758158439362612688674027118846179125510874284898920094749950848135462460227274673298888190548062939701275200738283582326441202184378167521366894169008286638794080953310725584257297525266252951497228600684511603879873107278575125923986788262045788432555598285262557542420476631220492922038659630662447685649921002161188706335408015313111524572211554757114740553537899000451441851127584831532001651296682196570167842352319633583330677649106489804800145419725407550433183592352161539678658439935089610880471122843472721696207598011088803473807272503026152435067719699062111381877673155133449740799084931829383022903869646830528553777123514749717769418968484881554759670415216366010363003587281160921315145978593606157020333202541033330634371683997197727872374129414263935285634075747213458314170298257451248172519286866345751521548197624013367079353014002572641139259267985549507964720809982614094505335247962854298531733264213878053274034346639462544938963239706491799735783736540429452011113637563496317562476029955912940108054425068113800480237832201518429428789534889386020763565146242106837923937514928321761105510972573854553106518195383896803117923156991479720358501832366564367312810486768099178196731652425089688068305200792472877288826421433768638944516003952972285944870139614061469948959519681930230843227705308717645999444742849796330807647958144604146486922559698347983086410272260035026373202251138074626210458161675854074852305821984008898759748542232366739910212413081617612939856466238422935120406352465281221767389941307986071881407156863966507220212333567373423027723995203392954047819731824045625668333792427050157235673571436105076430694748614914469492129345304355750510012603426483068590535307060949490531448746903972514049242148592392319469535776671713753511484986620492294266761150369499983599971473314807736817607473797204239967744241605653197227486096856919824057897325095598521533464358423460017362397462962422725421754439771163294191304786149699323489709535562799525576040794163933617982995912348629041248285652648794104479844719115088951850787989362605246844620294209991756880941062361891368458125425825456743452257872072593202721132984172260154429732940868308236865914238850080901388210948789959441088576294738494488926452176185746916854168931671285249825603006625317991188096757773565093710698547578436680886484418571743387441914248903870089560209596530412267587737169889116106111538772290447337872034536617514347542379025731458969734405192306830448200410842363390390427805910639194853175829750578803453210392813445354725291826281190952356652322310397441283992526978994868425516187362352628736632656468416757162242788829703751565125024708908585672053595560854861885302745840693897709024812172379837687505925123582932250656221688642670840449477756141870734240208815606590931704124329973822600495222439386549423488696196488899067124199062476858466125475979358190800605948381448610046298068974876066720291634186868373029160085785857206467583420002727380877104629527058410170022498706597675706297953171658205158793676932675042696693677068559060901491510840954729074816077871743488372985567484955368959691860599388804128460626648427027851009637446953861739852829255891543420853601191927826596052754017079841917119412276692455716733101600429669016785925721289339843811568554535495654452005084266723551688617318838567919537015785293309786903871287537970218719796296415409466494103041000387134513583726944034753645233388322647649329324597165111038237514444837041176297608937545247175706804212220684326386660411314005522040168022742776436149923006872739010491268689265130752493933230585424498841828269412410212153406425632598936896030118907280695728970732385771244546823078940086029314531467125440114701893953808511562508540060562208822698939169979116324982746372897716476131810983135274191502419348597980059400866934365931500302774188179127193783854900262953266934336330073791041928197773186261228073688115878440810610144564130882149682108640924622055209974078133137903530168409065959455950635987286776468785140836313241364723959822013380672346049226103152027388958337882677308471242862037114456332712637346789914195465398172964102950922477120143798821304093808543958938000483775101735646600469671185820145313169570933728880182707103202807410778683296424436513502794359711271290274320914780030738755830044730324051522103738372616080595360983140418296953445491228749081883383784857236909740333771770384668718927132859070813456554801307927985880581133722785021253307126842653772215261684347946460563378039653770699960285157752210937816722282439173517951142206665292587368288847482326558435599316632717858012703712893683529395969620005719373963005547841275160442912605596255053871149801573616732136630185562266422908310068568556994084885783523107027641897194140560337141450977685264367162607539231333368111033251227047748147383533542662579708444073645638865866676136275096452470926974498839996363863056961285356218057343523938996419040948338684173199977961288339690028958178322249448954458923536398570771056575871654686722582222816407790593895494459340195470187774162226919545304292174823991558222205243092823899961109099272859224475590876513213894738966396545006303057476432510097899136090903977754473711240101098922746411623453717367109056055379981207082846681433944564295276619389510825968021224356515473828214112179737455547781505780496009793981896824165587335353770241810499050253653131473269010801615675096080262469309048399181746525482535323675588350861488808069876308628787448552625151229032060544398912780513609198786771819330357017142495603009482373810942909903632820101648744543379828256526098793522923105589502429087617559611046220130059287405230376749171349924554874721260956994660906154842352186916620082703064076862324527930247609171215342404729893653856099811490653454502858965829878790261012092637164031204345125127382043375633296216470907800661426110672057477698452922283997993990586413923077577830470780084236485851706853140382299665770759403354382988373045970626353141302044449715853267955994666935025511647384831964850128629143606674778766477442220865738719493435098855387687361732614636532981283917402188792422289393629135874992483959749173475784174763827849301035390912735324099238962975183087767615763589105094643015270374386790437370306796835055171313741762210575982941904176679042847302372051739555758445944648591881527074940061057004242772209865219558257919535068881176419289455651541927170050564126970542072666227441322483955379390429868000998670705957716869472037097407375398499501130639039911026631362112223248271057461751321999923701933959682199178294035718405180151623479405389330953883643142471641008890208333231211080334022389301552653848421558752107502892770189442054832924974739462523999498050575034089804576684867694024710773637990749254390167162454163920649986825095323966633310191647537059177809907746811519102187688588780966897189953822052496073070456355038805461816701288364045796719330567606655017471297503988871399462910194838555309573274362052500669817880551667823850929371001635061867773208626460462992107315689729420950931521361988961374522173615850393768836309719903966282910792894883645416065056087811079900344623325892648821393704046428759345690807272274805137051156717766624757637798663358256826431674178036868485226872090118548709262044103314547928104614276956825315211709649008782369339530350501509506099443574156507990685185543887092462755055772458757912891195490099730268804959854782430727234540134103531714527176729031966792897719752851254227082878447759365936036011437427770219444810991612284453483221932410979681565299788363685620370055617648055997086528863103609422855318219819463205826473817440663416124324656684492122521980467656282025429179403544881095224559774433299042742681980742080899181442551459912980069473406400429737973449303870292351750057049416548238363879578440633514556796573018302483366134961936185392568323723176734111255855140441966407110174054958870592694338128000664718339117145217181735238071937793500958532964238282509973155535502690185770048201831226363218336573886984999984635776068795728145225880956599994408824842196286199710436774243644478085219913573484099819697869253332229205863175178811781168153157214886595526003312086086221242313112954872197777077990961359376948721769082651003886608143639973236459056800917525269761332409003440932386176805998088374597334893231023751938489197906977234893200856123298950635409546422254728032398571607915023798224168605423140601878825772768669732051550993944906543404080204737434931946893158376180373775851364449854101483560770364136857937558205375328056061811862083377350437551972031139361863936668586755896549775181680104831982128794780195771849332907317532114486299883832374759688556032577895998651943417689718962283338871848514117473500296155772051867285647646887026231537327539106089947626985697895620426934618413003781095029104415115639679520511021649038593416814445915346659017126358777067639802991099567215060654808479330220026259496589886315965151221664225545849952045120248711692031020906176509958976659232972806081063736533618369858850046841115331552432899110305966995939232287712202021979114905426160649548577004753794972968584866190606457835850639188580584845305066745322569507098607763147791237627121530524789615312627777343443619827918597913233009073295845867207660142612296100792077295445062039975264534294273904789173781610072288679394590401203150167640027187870300636760762408483200712974337356691629554078675686438156388856646332389542240821287485552055082631696818007744908335699017652120749707842453649267363820131841372684657473497644992624018868180560279810679747468863914136674918601005232411768333973180456596036925340303195889262857054250407546508879016424060037599306272851730496011282827885414079517570003047373284410912972719822997079249367854055899744666497808220071083240868539423949730094191293803934845489167751618243922784225615932523786475305849978947545544627429523911817757809069654120422637175230572546558881508725502044236791843858949126371782761865158201074809490865258178875542096184120175123684244864897029297853720790920062479288121571192059407024600086105296657829077278021141575599685018042509216302127110417435242629461208278288197998685020973014666832223401021226509626637842325694087516043884257706776503874104130614954907865405772869723638210722017969029020844200393387458975028227197832686111422460550641000485942885667265738216820852831523592398719284752414549496766368215224424321303904994297326352201935401856026257066207277493454583934719174586364883505217144333235391029608425357499666603528160703187961710644748061423036199324756003292497946735738646729776912812117417994020194925022819700670701696498721546456814526481040882703565303863843929705160477179932554166532470012986493673172887784388162882561120316467019999181325821267761765512527982072334903027510856657065953352419865569889589935988761751504574872442819770557118991812536211620250614744819032290584556545947847881988345148868789260042837257239056228379729860454150417815429842404014970986550988808313095670462691257497879601786634371722855445869699036007565768534434730664489885236494775021513505242581202974327462907855729590461399262642124202873855490398374057765302776309619403522705278995573739994343075993990103128465671679033198119326810802146422544832344713607472317673626167925558377170025088493714081226706417179505070947997009197070287379012078770363057529229029015825882872265286907095060231297061848718120826804469264146945613338722284154714746783296972201855791019681462048372955740589499966635114693996003165481615165267907892009266267801907243629626721093337300994720338429101768317609297445874427572834781049510595917411780174081598766910221665846705800850380490630039174574904729121924006795102153604205878244475947595492446688143295509765929115950655569179561752165280701555161505445436913584216465849009896275504579924401905140179487719065898695751903094409974296704249565883956267139123089234422062156989943686347514015097335217854845824131617232026390758791916201574843632421023668012655407237431963387407171002784373600737944444201168328773309449197727036912167156291502050827353554556616524064253355419944334407809304646474101061742872095980922491138783582840020119842777237289715887502634591663599341697369881211056835843622893062160893242127127674962605401774658562690927321867718031143764725336047688060764922078387305975757777271908097408206298711325708726659048026324351058976520290235814924388972230247895399814596018568658342233793401272340023793722426293508950713253952618113338361944272260627869837307718998798922675792943809241963497800292039402959564547176271198596188561901636007595709248043997860375895432669615581905576958043301125386992290844329721190466476990962157186454444981548239823845462507858282815805377030404605943616098350253815468044880896578685250327491064389687289536307715530897079729303360998497440199482897680015294777652462498292154238320202271288750201660404665016977118103064016694912761341653533796055380264463175476122519246055960675609290913131009852481494541082867946841065234994808225258287793735050569495984699122611910312565090183446512409719520868398671457333894761767374150446786373817396146910904443289771934887657293876683426531796293197422326714382296147485015567818892594681457901386104533307172273829085255007481320625358636662900033121108105421117643353051453193517868080924941712412990096101199709094078265829553073248706344618668656372955847315311373170752441952503897470554693757161754001280759808938966064258646754570683929517478034612395051523547302907585099634102312556276565097126942333277909294896669962774725101607090091716432732736511724480520515157510983344506863948269623199264761688838416567079349457313063303938462481200526208976910429813811253815091881324790933538158923070930359738914532192882869230401576731824471114957559508163778628227638638762604634115559359928425014942524208095529654637956546705562661938068391713332844591386144434412840567961109580275316523413798568609389125242483735164409599088519191333006994682022192619630318677440400913344764495563462841510032208544544207184213942315572066735406134906555926634527301966600038564267673444711920141703789311279316338430823899358208171371020731838831614946510585713939225635434323808044966694808181887439190997462131756008014605649104613857873191909483589292832256492442994976106680507947778969672785368683268231351854243957065651796782248005740814692315697764113415360541955021613054810844328473757746706932389646923974601157079882268406351133002960543534411378766369898843849949471389472112873202729187160563877738361506193971985637335536142334697061700450186284476124636001344724248964185008617525325737161281580570502363312927952449156908478352057287071099279349314486127152704157662669273466541120529559338324824102938241779464198736092528137312198473335172921586131449711264824567755060903326855003741765543345142513320040677749642978057239713554246795901648082135076514799512945652277334240131583552546507684695634378108737795076067070911198714974118618517292413035091029219822892653159235762933518082595799557823569738583787500861249723944277643331310790549080546221957450853252986744504253739162291210804301676619726886091741834567714309446618445151853175277870969901914420640912609769261513833081796422784948995011933894581671595444585174281468428858202989593857898107075953970734574646798166281044125264337118758384217701674703932333964289358270971448289856690915447832943438213873867744217983239964895433347272542540978690599679971519572314645465947520103954492636992403374850510352293977181832624963638764571504354902377752654489077444719229715990536519898271162997288686666737848482282253901337879960575291313257441916893651733053385672892949489102022030405560041508543906721948767646831688106010506392675634665027600634462025718812226562442718084160387967087366100910516925650229270570025446547274642610121843274682345950226751238170341244265611073138372251912501105936576360654623662502469165477933756402721850610499732922607970732656837334666678899659454159289913313876228637243186082469494873347425613394768925528603008903373213528755899951367904217488594505030871700082176793618474456173898702887414492621203600680406635103725398015127299580493612199054703598727298567220488123464400356394005618227830018362603181025623322461267951699678513027197367211579549808004065953569741502583689913803933288067155050360037759993488227702269158925972666893959805088203030466008675862067358014353829069360219251002793237173865619374760007255732630613416272608763923786431571161669903008973003373853063652719300726563434373329675399026051004801763427830937904075179767238250514023105124359355230817275464852443074511469294268270864527056215713069127041495841672547764536520782405730883003119418425127680851608224559294717411690483890079089098673179137621693217898570583100339933701712044010625797206730871165842622343076256944856631489386385670571868121205501464608248990158744517166108365875276617837487956994373276993650265982292688173471093468023769507875566444578544128361795076412678543697703124331090610599757763771274174447430612369762377479959963953507156520527240660632967648618851524511563950739433560468404990638647808328262264731763801867814274888956132793141622884157145122911361041744428628116465096939470821949333174064987329568778826802859356575650344299394812023703817015325556370627135329534693934103176516984228767881172174474088397339374432319113228521335227296540341099128076160744358757780442540373173968372932746700216614918996695359250206671308648528765323567391869426518414907296363181095208759086998455296262388276333819616201619553409688986115049911374737860156622439969008145181759659680545363879976724206758575207540635279750308167384526854859819749025615371700579417463170303101237932660370867526073206811205069707907874635592602286413351086339625186259478125387171404400546411866321707067786186789538474350331198316916550922220119286049359504399411196718845279525381399906535194759837167653133069253235486199848968724780876158888762065712157785616579628479892545347028701588279439333683877413353069823140494132023030618055172901606144227284692383293356503845184667437594078668850175070324502638768632215450051938637525705732293601996514250305692633266695345416679600012494175309952079427456826114454196286752618162320893145037818475823813812891781316002538490023152180518032374402680518401377727141257406466556284158145255662222271735786227269081799690934539575021045928439864262496632151428843830397461506461036468182267927763433351091390402884223158902357075471510321990400760094765502369450404714886642811821033642688742476450568692438228858606958205486905421214013370186814717377325397233880090215183187723687148540426781807935299614521592745037570729029224145674130601626265267347941396843679538169336353914594754348021856747069422208086681158252284022512742439296676076590342146881538654363140781423533760659422770558291101860420733082260441375861906020058038920612994013178363097817122651074228897912955297380951953867692902778567713920984040629257915706755523187524184908326396996331139132290601715877970252147850630117444946191276048197628032166104970945702983540681781777700892806263931976985920622506788851814834706804648186598488211725084622757421620867521067151469516757990914424357732479128878355252659208923811793142821848434244301928758767673257604368795815882722619417797803589292624774243619955815245089629979764995686987206363273360676983347196229745461626796646997716439048814315802452181538267217587471262481640937527289560316825635722200656288009600744382156174938597291223771110427015650211888844423563817573394210453677721118789980814898820328720653061599217964544497950090535052421324904854346660665361861564828239731276198533120487569731594261999001864826701450408126183388207905710856450605900162952803355589739531560392906123652359995127716500688438841739295875163646529563574338207747565198098758689515414854965010439200707808080493328375151500123307260524723398166365785184534450962608303602342123531608196086348047381555112939651412902053713001479852297253709864648626303754302306326801954372142352904023965232060787780350086384001344032686526329303858673683951786860954014425514715056860704583302778684703129821249923648135819703486451063868820483660740967457690633400983387184948257764623834056248961898076940653177443937874710485796419099666801786224625738569410906234764133296086984948350821382242084643766519297304875349533270986015314804919486351255726259315407427879838358958157180554859552278044183209920461954093925571692973083343434796634241742932674347403990159833741773458322911008390561182630704217580388969875814631633138489433414315167429377298733057076302863473449630343714061284486106027030138003605033897188807657598963795491979269385663177800477584681229642817375633700472236230816905137731992737120527124366641016585193364659936190426822900661061505952368656031569478204288938028293398997113080247313906864506996183021634198347813730327714477380225171710048496613996555611046973967553811642108493559981804359813202809053841105337986748417165319734724203859186474714325866429000387550905664809951124626841515389719742460021931993159342809035390742000227633161064784116758455185181718815846977468309973158927333611995689733964817376707143394863703590199471893301436851310940614234994758596957120447010075775701188770706310162162792994156600112818873087917225556610066846892804652266945496213486414865496505433421911284303429562517832790522293465790429360601509204285686454230527334379128660465041847530566971478925152751226945604339364537632138172482730659152671215221895240086687800703321628376869461331422914393933596673823127644499892555736569431894322409829117611744017730676759161382066849029211655145406013158406077064488443304257892743676671280743494980771648823040757495320410797092494235173458985240473840185740328530269275915957655651287690633218819563138788061121571898235362907883446710544840997290834468547950090407811269244381165242274316866426922659545283337659305431949793691098696241705232360128475164404291065713477511860554310037870733290941237084951706459487997115869891256295611749009729188058187157566453807110528983663318766258878098564247669393015233303210104430004127273810910067835345534539420201412934817774979637128584132332399324587730479296208791942132909998341592262858030912115963879198428872004667090926341313901195281642816875313705841669387664036164878991696495708012287061574815907234282733486623627580206618237402847622752549028127605515597170170227141053920594777536666169528187550494649089808316914402759748753613820460293904643219640526626289092469008562233866000281901276027898518327155802904036057004131035708436162987871168808947947073384521089051529632098808749545484963092620888093295243629168188457889855319559071405114552526754390304929898238151681269621225624400354192349464431622747393409752896420761482665877796722790977167338827110120594661019702152329698310641242970957682128889435753874372383984578781782826856402699115055495353024701368698566579386665167092384243432191654722654874549349260255389247066795806784098062111536075736191155291239880636308680378898459858548037661030265349112426367264593380648493100478074854151230174608989947372799943028701525114478442940368657564278385730069700771942796337197994914841109132072795376645001027453934914177457556781346934526497264245355936963351596541723657941590724488758241296427467887884312232459894287061786269100245556250807810921790438334788431974804277709748639270794279433066651899416303084228938263094595217993217372716355947635600265205574390891387823069105134551882333324163638033576415461410832397439407531307589443812997456738901357899268001282490750142428273677234080333093644491408474776364354139968079806183562079479323632021285537785755305607850729437046499251783488797790798116721158800098917194443440506446989393435157365784905236082357059648543987105045525453782441037529062057822754564081088083243212991868858418194331644784775511941310644633599521354890061338761005627582602997296548313679937438194423654154946938266515044345699159905857444386727435331286768397790992396031169500203545681690962897254595868365333175365015218249322376350875009338253180856303203649622141822614309665556040852561467632172865711913832666939336520687789743978628838817103350633080260314684400592490520315981034374442723396453645385499974670272690555115159583770335480320498161891636331128016136640032248529269433357921956535565934958451760739067293205812460352270706370341809930309277879730104374887592335911627317741282490817369571675395266149310735650095997420842073568464838052709861450278328630326900465403470968365698859851020476422927696484171432246965632936466505411039290794462896312372127844934815767720399171510699254351406717259389771211977691028014776786963974911422037248515714094860367567322347755159333422871576911995703515735105382979730987902951997724989110767366694444781449048051814013366362076628854135850442698561911872620941852086888114729183420880958417634594067814180169227328781104990879190106840780837542042386647001352436960140840262981091071164593298218973596885107321475356030371620059116470310254629213369108770452640333724759390806375191113223996592579602136569789399301764848736465965110233362150052712242273108102478237642275411304272220083921466807995485315611295751658108674734148967096823771757821402136343556306666351275586481766861249942295494151758179697313870331847556426415267197843726921802101193541394339440399129390148414176801747638028643908054541501779891963211091209338702679238007371554003853577756885083942866500979649845457524731028623495360212308599233336432156547865851247850852934250658308921293803725737021036466977402704988315715365688820731300260344766711242122618800545492656501527800838488604239261723792979498228088774662188346257597154639787809081007536716602626107635502303175780657807435026867775163576267668484552704274146145902657372281827573434702028347581645021423129164015317773299724855659596287702107278634130302422079832243548906933688902544488154433605430570506098263533379415820620836281288023287079643069392716835299374632245729682142577062167149597768454321364359770226711848416337125782550046028072715247913790067913138258864616356273562084587692359529013279087765246734217290875025439481855296765455367352254983502852175256844969536637688667000554635814974516484135731138532056077615693427690140387019677442127595553867159486476050520934078759221231907512346439614495825251555485992232046007955009547150669785211067230029579352249482366726841139083539682394151777891052175548046405902917150968624186064317131045657411593775022062834962143200347910436430026890746393879722925851496990409573527202703286357789112125200299353818874132327568348317380741745272798013228605503348972894196609571932705561699762808920110264537513625586466549527798349692693317106022236891519645725378682315847060233001276354335589211008959378614307662124794878812087916121148331144348161149029802120050713403782541642791508073998118795856213570659909019555677678245119386533589658176888889684938674202711077318287890083018427685198127812984777769158208179784036502155369099392104154894398167428737395007367109454836411105043349496447454654705232481504965273554486148361780019562620425630176896809534121150221595526257304033864212651116021208577305244249207948208372171776694636894981847270555788502801041910233478617962863524269733176985462208332328125068756841863955211800047493719649696738579379041649588701575367026746253862445514131942423841413655929536672349725203522468693659276362168937060166278542776757517677810606087385910554199117786463092776261496322806998041741296903448978662022769177828970243038817461800038632873348718983183318504279286115420575560028607465778717480910983820923144860437218373752605758288436141477215351656393634580187354400330338546378830793069102209494694736358798693417219528390792015834163230136957772915311400622223028829441704111184785173398531994101934859366416505366629704431103895104393426715662704359945280795866718889711842829235307660139333378694668857476386219658468792728136785979595973838584675710740997188769177745930087202707415048037557168170855817571331426346583832141949263105031995625236786093443137364396332348466549160422049158430287441978306440704055847780984694873422113427737768960527579395302267828497650035690169448130324314247155125990855693789401207106457431211371265312286721429076279755852557736464232911010018184539573792540458919370051382375252667200444495758871483239819802997748388530840346198596893711128319675869670345486365042204984369955380470597702719973514933630355244953608506722159545716545863332229047179314456221554510994842205287364425082643352063232874593775407537198150968807341399416468647525373796620458818405222848316132552400101716718842308652212062329746691147724691122112917332249081293358459151304924895793549946022338974115088130367924538524651213711322361170147432287917414760143024165037636082133735243215640697172204778984984893291505320247484625498073726600545454416014882428064393684522681812258695021139150877559494308178765976730465580601257767816334514936895361802881305694887385824349890389756878535594600491184250587149311839792603076758162165185934838308998484944101527971378101630596077383542250044194729612123058831059035452170317515161035433472306274748822170738374018138437024963893056297570327478446330204148893267649981156794972651851438502309263758651164662925704256017878487858463598106389018127427255704081880431295621665615917820170546515583194158235688890711859541986016544229263922510844138981368370872074876866596187936078067523668776268158318996879049501552168900281021661309786530905330117899648671894399122378483428342778895523209507571892149353664592206531778261906014879547670318988940424325222962553125219123854486671946389792635653324509783778030401868402222837198113598736043809485646706295271398299416616129605510754330701511342632542204563819234175790497284041982018094711706882230423192468943975533237695270134735300645415769749199463495856063905857202674445865717205844299446277790967191482091995854705864203281430234349037664351762949365719045889739841424037527779241238265641434478702900109835628904270064722150225336861054810557673779137288057346361401242598896698313668816709379611436282623553455702051362733979881316977043389840863491200920180337789202231870922756755938602676649716619648060286206520317518279966767632337528888111856548318544738060330213075768397768060930250848296117235703082353177327927432558968065035891209193023470971295393775989101225420675103821588450172878022614755404618742662859288970868558910062765830707523416420991790700820542679690464605674078487881690949831696310284691290416128270871176142342872987961299481220337258045123881141716543865463275670330761469640223834862883386590343841810165848319908417793072475958709476806870196946237306445798394032659340737610431671421119278318006659270461167392209560539067803897169926190373678799837593848420925567344343480291310820457813577546787341517104707174832296735181897973032308297021904213005584546837286476661687144393064259870654307013411993688407770931715805556865292651272471028891022162000238364900753743091689270466337042805473420736621486451823510382381705895017751573817854970180098923875962673124496775570515019033498565493162792428111933154377805642189433035100818586820678523273646413724864160529914913984899481522606089831109648171761810794050157517212758922871634808696967787443168368269271009698061804996206706928448484857673158248219420874923065069066942611454031798152485554715994331210127036494707416790388867935857043538720651979957964752488994071938575288209597946568416899313647308860830319644863277152642714442215252404528595517503233317599505182036099007378818732991879042052150179108014965315986726761189091069304162030860827496711891744375914568153265353359847860183727983215538733112761693616982950424465558294015416156118232748874444103049819449263325464708265313939278026677157774801637139460262687204473248910014112903270781074709741852778229815849953673373483528527426429857988988260779628299456692783508076343648789261807850934385685177240361277948992959393863025560090341731679187894411349767377641651209946245065768003579177181264170440714297723632591815257832141037804411718025889361294752543217945257202268557546967107142084572818028760205442048230949402552919533080844784211033505379409322330894920304480316771724183822366113290987900050078465268669829286340452677687665165824035830993554206154159992898200378449050699748497613148298923454037847618314674116462583496903852764872868967128481463456438911946748488549338320547443815595504403584420104022281506141988784233924332477029272911682766914678696219332325789074763961913464592265836949616523060054140103602445458797786242681593837168028678706779744988913537756262997179646446165656135678463356868925958510361428737255176359695149887404637970806326583272311373816722765861661942699479321876166637077181658268721456080023816076142780821703821525748019696509153904778692010964632646073253577984785764091662624979767001535313994673152445738629332220899441817878589372331785144910035986334084894620077590091888004026651791839414303057251865542982695494185262287738086674208939722588029231205727686692731839152976496410154311560036664548686253262815971137223187592635075543639571989494473908902545106986229139254087300757457635987191153390494852166506299618432058821586020102200490962737271150858163564884830166115448670405863779948523509518898203907297113348430195849388977404996455850245109131470314987105038689650451041826648294175735725461754431354676429739179259349940378363774520145320223378250231931616934704512092361271461508917920688798218907378031760237057810886859008271966298838896936941541974327187790778286483964942696096277026489733076127996469696240834068407537387823747349952630302142221876187704129637778786114633986719588163940620216558980391231636318973963854511320379675496734820059430233269337513373915854089176561860928240251316616435962770506443490830273323220247684897768521666838776166099528778821213938959857541444941898250708257964308799891266104630373414882761130229465237480651093607969239429592197188808886108958606306425128410768658257182450373074667232058751376310288053834918230941298255720678983030636863850469562683601331662570842853601215856180928641366723501234309078028917344645252158081839336943493898869606890942826887177827187619989514149868528785696450115520381303734182902688332933356884511139224312539038702901480999022426602014457295377226618465131764713068083340947186254653653640898270881268163610136624591995133708982658854382529046101788946182139475320501912214595167547347548235526998813469811562195338121211632131099056932354274818573403127311185459024302853754110110470662971755098075921380980555417515278340034688416377075812851406275649456856805119471405904697097187045720965475535794141501685510861022364950545561415703724216438889856371116344289457999466423035049416353292640488480061018197538828273913016501891326120145711441253999660302040287620859728798109041855407762043001036379247276306412674208044245729210453537199786660345351380166237113895722954479999058210725081442439725587684715769186868210838231510164561484605678381709758464653754103404890112733078250162347426199313621878368355962395783241645067327850525823463876914909818200900191328971143185949434821283200708114291804257432622825711882575038445214256460797595501075849832902302399572440274955878300141128719152274683296602273996310214081052978972945210414359250585941715959337890170307818199250936348394572139287913681459980125522309113728502144384253028099540577600036301694506798589902725312027581433392598369322787797301595449832955650607430988851666733741033678645570297580688460810888441212149178749330098808951489453654886981792305013451705670338912919433047787919930834165850052658436990549084393989046643104242830554417125077247863092636904062502047168370749362052263203138136075095420484550463732331708766344047323700004679610786195483131930575937685272782892880984848059595057762966881077823854406115755474652268083545975257476589758034400231520060071334638798978993247484032251463875479047909310961095385991038817110439377253132524524346857472646258303202939199144223737381706957776251530363364556401370320340877481234357211876175121613605358572830812317080277239546672449702032680351073776060261611655891481036102636386274605494825154304664549021669103426532969269364497559007615359509770630347121583917587985537000565463706948952316960792744960611838265701116092031369428619813876591412085552719698635312500365996520729230508797825486560095238075685894741619872360121410496406267937909495694001830579382663959373036900627673462461248744382558326183212205681364089955045864687843069869644138076686230067483906790257077473463127370468855747289417588099815357937773710854998581330961166193337204576439087916918976283020274604729610328828545512386448119137278382584995720955858954745319272695138098309361798046446883719235684579826613422224604394244396763721160920432267838278635955679775517814208270774577560214559284238896087829544661193893486159607165708768176885860260660347888702236204389825590437852427170252806592876227866097445713694186623637740832621715504876911148374015561864353949056143571188379978683535160008345466303162670606322795533916709198130271120229431181807542577966365043820596133615147399643043723562958824339222778143204313491434682161139365646898370210697902769453598065250483190413551235921648381475518956266081406266369740231045217692413196961360692846072641678163565339637907338278022571185143812664000457444047662101833295573072269025364049652149889457852124338211019612121245011607638069386290293151657299053391651728524789562318652637341230966047543206155688713271340828505352313275131334838939823849146978223900951470816353198562666368150001599307704638892063941264942289770993596792984860313990747992160024077789363354192499803367187894163564482415332698171534261766057810665308611695595113379239523567798898336914772023904231316615585106638318436835658401842829429122487331310861508549470942873803572037534009876197701315908816289776363439440497386234166442608064855933506978916199477312164268754936980413678131387733425202861303037918883641970101349534172202582534627669432050379049454349067834409513918526557583285191525340462430633261790266851194315639362258534632545484766563925037590631226371226009112575555799958191783329071021578195614914465526899544503493636228437081822931618261117319878384149647866012523605341936018916445590532400899436039858413458560549664206662691083450982803467183345171938128917090567936515384755144382116706404029891219280218819111390494273873798944475930559189665223921450393049936219311695223713523448557227063955564582810045857521669475454762087956531750553384684156186799257442280730289831238314539606388945452114115655688643860786444773962187773196103712190869372233042208116319109834099828411184919249981305734177765303692913486053895551621379682431162700307493509063179995671415628551256530130302737448660257861628948372706198599175621815880434645339923905081784220882571884363259317078555253728663684573008351153081638566983774112687449163182322931565350508147178842116672549351521922575292084668391192622966845773104835387221974123002243472152539302230109999975917755243076480293999886736420136712793522115877546016312537146634481246146982490445065412309645493737089437083306067243786896915476182843884460412633771864189725324651956467005368524703235694626067821425040122126478769909305781653146694008876467001719255865515487251697394600270898974562240066051667033968708259807872562787320974275673216251105297082271303619420394702421157114305304608442271438012820649272595639518050889355113817909487197449405054458934827417919369147600359065208613134911623130206669561693232596765160186383431552562240051422983642776169154232274595123670032611250318675334617134149621544745487780176393337732029109446767830110386348219719785280942953798831083367284617680442290045712594948510682039311766248473385578478579504294672139219366065098513953779244048645518871130898028875568212068871733808601124229142211384384821154634454905230118597332995213528176657061953595275442027652733293952754179078397049735715800100594649370002074980915487919823461543111450177647897682608949979164373773256097014363757323249296788975697269276159457873659894828415931943484313468675834131496508902657205190866349146907799854857982712589533662491307911606776211746619704196537076917152086965580006421695843437587192510592953098343262740448522785449299947754182695988686432981986426142149763068289149628353528168092447669388137476605827809200354670057824446996560542816211062465721336193334242002997782803979325192484893777817481771815390004027672600407048451942821756502405136008915082258955539845092289121677800379411916968942854203873249771017965364137977014866270069738535154320960684123241167926726565438687987231328785998887446738342269840067475784949291364633262206349552129530389369214573002355830689196462587271878142721377139903391427228944540785523270489229264648155047440966692982071914056249931146618976621041435167795776271704212729288335755641811026979177539439806538900510233587815991519803875612867311165125594651323625459706367172751683122552473375668799382730403108155627382963039883491559612412928320240157078726510333109144169124889494540624108937748865786225604732769324237619653095501232858131911697017278183680492922675710794830807501396383411614564517416010012901248460314321813374288428105541666236001387527528888910121616270689003096155075674801248874384517026399807303227162448349584633361008809029976058122944684317722829403641436840410708340360559682093925631009928323843656027640160208548303977348793021491895251105420197316445552654991206154316574384365668844008859299874246073302963911286638312413513155759408166862333584923214534100100231944081090242648321424324676679306607403482683519520573435698371131766494289953870117176369303377911949949209483256785071461083079626692204830482858417113657387177667273708420653183116274044839026054800343040449708947953127418398922495407460765421819414349842048329869019491851468009192111422261660554962814202819640795278658122749121426827910274164305597202932523245343221776760180391165623942200693847443644122448462046240593457731626398376725426656865918348870630751798348706786329520129286448324301830694428539085450086135114651078724902711564521614896639032253631299627545304835507451350821684612138141180959717105640672895209285285207022777315866437076394537279545632957569705501893364694656400327031953135226595780538309983727493379934664285747993449597190597440390743385249629265201689039229500262260492874861789027762413539825160735764510864261596825556290355204412880783146013836471385727470758456119636014189513960061798090696730981078921917391523155332048085274033764556595460138507250075027714134174639181391378395044099877681730152508416950865936171402314006905706181632662466456306846170680698786044684043404913481028868931071001098993234153308478343543108105391572942253843567315667535562205438541391185115733688263091396411870281862753903716179343151503575599914980456065650284468976191523031842798464955675966661387545487242634745676739767937176439198223217606491402166939422905486268585206603974023852650848134636800625965962831523636397803130857617278381129587291473139155773324238680150454052049044939681935367833190088211204291192748412871015164583330447650254084466049331428614737605348661931480194303286417817607836602982623638659803624408414004362110787046475020416744135525821522820170980563323836436108280527003264604769376219756758220313291719498648374860165948338897566033209025326729301690831922389454487760586440349622864023872282880044421302779706033722871549808280785165554501343440548211369906480604928953708235069129273841642112832056788048182400345072854274071066777547397873909323571854164750313331221438376206774638290551381866302748712225828293603577399211126902346320033794221420768796853373057242518253075487900491708967562906152865814160157772333938970186734423699244970699439182506099290528823100149871382175753462721366762540967522213654833606989347245979056803604451023038941788249090403515735829775632315796595697967108155258466999040237049648989093400525044725204140989559827218909927015220636763907645183275515709491363965309751233294677807092580334355449212621378604083529629272549770417567324749383008913192691286246199159305302563218607511585013115640954212932284140327517419839550581488423237668110788458396384243201530380134088875557140884889282062368218732932885134136801865474867571419314714907132329800902669626319440122014503057078634568740855832221144676301494320953961012345432600660145481980020498466377218217065105873131465621846330666745852372770296477402439763379745104089933835384680898131415744607464062390545475393017817974824664133311885624372779548363565869693037199787661975905751261175961250543176629713038893017601209809094834839148468713551797448786307566872378287400300577353664550713207378537835184495248899066580310479127090244150463345818823037752242044309937453408795552241672515497187118617142694010164879776397081060965010332836051506802067393030996652086364939506553321508543758516875800290793384327355101847311615424560384613544064068837715106020216390613727389632955440484067494611541767344515937239936561997370653445919494551147358011052916189581926181680165403032410921003765376073733791544777742013923724263756954123880613912268426317911711672574045515812771853044537010012126638982283533983601550474781129643819800212049446917854709083446677104826156434140165922926332374700050129338485208438354522666368619904037541912389523897655359317831409026218732582211564460422911514097472781142396876974274016751489577751196056739625338269936796811440067094618391696083214691782096421969056511329981144009841602351219647182371791704859629645332477672333351249023377053414997396078790623615136524365707583676219377436034136002909037381415657650375299969896429588573034282008507448583714174396139982608255976995607934062284107499606424339507477787275536526156687886471563959619661862107647014745790063851028738056018844725450762936885733532526383901244528178936867833252458398955640545071085183643483438047669202417491391795394222157615859858280505799112125228013835357386667924722771844023822188607792065688701467941112101454018414953079186529053712402845253738196733672812877057295033869429161215871552472219688710083371603469989739094899598039100748191427997196722209917168993334711477018325470715873728369165439366033409117172253954178683439703841177823757654856743873669682027116685913071614574547909370258450638734180467096463757352939517265465320372827346048878970716183309071912116106444449897793616482714027281526011504864379722330804214219391917563908062224519083140617832599392100554896277638750825206753525453234933874961880751013245832664861254511998273163188923681601391219880589877231214286876829071972842309730694116346542445947965813301115417004071541816102297183067607139385591706555880381695356772120722818319718263250556682169350535121509985223641140156819438457316210723843586936578858215623453535075508465898106298327066029401545935628711623016204888137281194936541459221241021163500626480191414615044017898051112096951720568815757957975373683048561422605363766539481422117863480036501941328554476386285180656749551303401213741341700653819399834379947269053158672755090400346042209971120878157839003594664438528420885524067286437813752004619012629267858089276684729436361974382540642566797816033908724744678705685257404225322152012600203546182502839361538064777143100850008466996822048694489510480205322790262909648888578488482725638788119419700718874805710839069458108655732673672349295032039948063289788196356497088847452109408010931775791082191977989927961343458281377616707940999901467821202614949668987266048363159917840866693086705021197751358379034912195271420182067402357062100654343454761600113538872254592414751328340454689787699189990200992923444231736603381231414128662121352414602979672676607021932289308464020626406236700539354922466137601150793626621046008164065099733663500526221382428342685108125739819695397139297803856640843059719695406994483702880324298539199827691492116874380113044093509099054899705199350093112809331938337821422748321738749025841024727528447024933743300557514046477108355496994913978811765954520086151215344424833134038571086919456067311816358886169588493736870175384171199667479879581960765401202776544038208188071732600724673992999756839739557524366574669941007864213293344685414797152975419353510195362769866293539363466250302482477837817799690623578631667439276773832520619821327638985057851389735856645444238450155012898229747460178881855176755584130463990398993025029683262741478380036272798369864731004093418550384458342224766537453519558654058183243213566188403778169318372381573106944434083848673151749499222211520408099829751394032223086358691366972210548478913670790900667516026559555348888957783594313323158341893529263600492999839612997699880193612726097327145465918320473111013723770506511529127231216253437012125536127313191715376276842136442020524226532664791403772142107737523901257688264471907370755506883365344623653497396807445208492409585959883197447547397393887374755214681364871325777943996348373586070338333371305718400054266450551102950377370113942139203989396143665099366464669113571783894949404621684455409297621654772222908322130568472389971929369474547640533140733356303951963619598005754592550749993981271557037277979960603328887432030505107571560670839931051356859983138866906569637610588659329553898958993784002026111364269281367483825257096240511799176478950340716291441819223607985973134620276672680299186262188442589220200973350458943367126480017743226947860259850503434851097883507224036704055608515749024415655594295621946269571889126324219976493909902624015559025720668605910141902928654877564541476254024264574351273871757161104277254122941608138679047378293064807670578527378022859027305399715404547113500511684470651705250543521922921163819616930587780133402377565452558987821324696866378988762625249863126525946461997838423843689970962215617381149722957317662154655224857484858433298459811708032480584602472685070932522136949157319882017251071213662744279874281561367297498721743898049260882888142968242374765297475746855474877616724933682559365543076391248590786495729962760473814468425771152618892291016087102471300602643181531581972538790061183032967865860660176114795893972180611843255549646594809818125702076141348238165194205546286831145000735813832590718508356948103693144165933838389103801635605964091378780697145559660804378641599736466145739909591934930431813588114108725514947611094738348897622068288900924057419761075007711700838149000218328351520760351990757244137664969309526350731806187197675541450132543855622451042151068987654857059995414251147682309076750268686083931766547780088030711430873739989191717159200140322639220432614442510233390054766253883306601403446753159418786479520027883548496884653721509274731599943249905646931115020990877007711955097264833710727524826340696887473616646910558965219451643603336716497425960399108554842562977482834464131713394356828611981466668656198371806957502716546253026389794277145890130178432222745388622036291623882605163488633947096900362225713397785717951537394856767113896042537843560754212745648857232876593604136762277196535379530457619276874280346730250096627955239432885117753136546390050271105105078414894961904827525042572516853420908627841312405673024186833445102155146511652737160263069609843172883388764899572914619245174425977615568312687104082379057266967032522378170130505898899824645531167330554927443249348005430075994370054189381294198861160080133024738674702684758268808698175168285536907335948013289817667874669448528953629933962571651028101842568169859483071495293496199348281703333912617471853333198738671582341976616405131133544697603508810560041494198724680124086116068909028671708385006791993654545208580211321666665217986944855800659311583379999644224958853147071305182051502242353353968574573852207595203255949540397883789608156999221221017938621818328207793316417121651814074140356316925478571023321134480820390754574730928652604260862819835924565273682207717994760218197516687896116809695294632791481688375074379976896024187440819036227519481610633137503380912801216074600489727697747559668103536620493224350647330927741345886198193443634403538295337863750408331216726815427464735908622931629644438671466037269689572001376655179835519752090833547240250922334240767506532914667772346240628712935732361246800575014801486029791285681439041981272415592486397421277132846629116474818273980381611770050333120251694731681127135761687971393010188437493873639252890326931820657946575345908961231541405408021328968145976692063403544948180678994753003371372951981644264165850371205641084333044806071400322944257588240983745341152926845858574278086033307053884367247374797398773196876794324343783499464060245543919311769170069634246413369878274712079342689415333164607438474256194135094079827741000058656201788990457463581080096860869470369316484820695350409805263047249904239463858979182364011873522831472399678803101652498076938052009979482505426435444084291857666596843023733223696154209469857339346420484995775931387440963382178685539229577788491661173504627805968151118768143776653111258050477321710763770674288901232529552665488135121693947535443613139013312688849179975703184368256565161582409492102737464229172855188447232130323396976665812849563626165153288569588314866630435694384910348750496272393770332995017755690310693954803514792102196597740326525660648308361412861226510901298766717160370127336998071346523759416601703489204676875947940933751135672127533936790457468281889097831172539471158611217553110537958981541100986011255139625659389375696668697987729535498258977890775891370979061754107615396450711337880029973359727864600773401109420068346544543568966247537373525578089252229295060195880560085835342731420398608158566415886831888564021832237742584558827980739559776935963875972738147884903001101809115753099024733991354879720896692346672878783417410100804806282868762421426857320106065994035686688456578881352624226958930422636158840396440378324109314627364096709171263863341343309532398778491288538667490246692192328001098799905294623965257594294196573803556712948126612965078205798961104780386678661971586947385362409717930003017298704303792305257126886795640977104264843462036738523972101213085004111916097601942341151896486787260890180932931768774350276969731957308154145006292854676791409966397269783332950758771015338855446274268453200848263482758399494010769287960271386311848079267061382785593114815466387373263463016757104395269954564964248118131924037218154471794485967237237900057775252957178929925494395524201249062284019230338250946771982226526012589537383357119614325340933626628776770714010509590210928399243286218530965395330951227466057915587786156210373766616459111603048609857902981977817024566289300076025910283488246322010598136364478726343303121507012028208896388261238801374848503350746164744004675024748599765854048822524542662842923786498823150744776290006086043546241347759109844068655474147985444420816974929039405429019169079201046385181795267937976698045056525746206061872007466181082629848564320352221420780482505183261306135028220888253931394437052483603523115378450555190912471933466436365513623795009593325492394269682136435171872674358960330457859417112981441519569057304358733169489278330529678774396483029627603176141740871263169231950466064886421454038212368114165600741249459275635109192844185308940917828950737361359264603852395592022261356563670749852612688692288268357110747176949165664656890368954603797610021257838082429699220535611092163460058362039556757387069312848117552750098465875668767122056017029059938661717785425482161017506563189403087536589078735890583598972600464542456532764507159234454471966701951812455440624077209999714811084377742701747535868813997654381125013466163707834301248784667377444314039794336093373871870043563800726207956403477237205069263519055282572063621618992475779923348224551879536420778289253891740791172542991767593678650238520537266133638529866242044981019872167809387475571104495005769761845546126735213803964596184788838779081896252624672605070181548360965475134469193436328825977368481334014749000790889421090415217578710331959964725945519904450397833388784214744644378221362987067898427871836748046127183518456043566689860767748297339457646968935229368133163426889744200030603780388384667144264019895272884760786175488547530049369728666392644094924517192780769618768006344924462688740098950370946806379252449371893686340926754002898474244958012553669227321150121036147314621296347681430724605167091635521620783545517789565914123038135827210311027984302429223932699657561896541990634125379764649322774459485626878551253763630844959345388557588498131855514658750771532135172694552285350848267290428968734121327612473721787640339460361405475247621266518742072918653555597453230050201454305238692753813206273707871641653070554299747369196560083043128191772509622597253135531842237697323358988402928724963287021009242531813350135750677347276295778208567759477281655343741763546523521557536469015087639738022495904962375623053850211840860855792983680641523277973682138366562223862500745051424367313826225549671684909461064728120148560549017784664497463943713142927141679419462630843844262687733958759835215074389266394101289790999379419220152919736075578328704586206888885800097876982089380181708227796642471356043034783839191992009741285010221215205593242980473064293096366891599649501534897929663206268914592556836688804116466658993963750867777837081523199833722551412245322138796202608416243379009396270376432941324247155800122562010520210528358947958837325921357650519188342886193502369955251954396473830738142947333195105621345861109284605834808440696603902042032344539496081666535083141061248095765068496470435091365789475341571810752697901178286226919959537282500648326835172493037075452530067233528818803470915535809574708166273990335667756141241561971059448351732547770397187378992065022311749260294809498098167303824305251641245792470933633573712950597174108650542769638759340267528103015931240734826558291091383550503322096170338465845443268697784030351362117224578380697660635875058303672674518854099612624703524935926407305938259890299624506591610814402371917419491846267974640777153525332618889407980529284930464607077626648039078134599385740286175020472193057321977912737908678242261171318631065917018622504249249762145078744931396017947823229436590353253503792070836620421682926413680560388466705294593456430339240307099322360812464133866375964629869183840704811879047870729679498825744801829296053218840286486299006663468127788742257505140564034555915695185848762268295108956781075879405118572386971365474884468687757355125041259373208428457817558847037007476000176612089207464277903830436011415111885432885258428514579116802535077539366525196743932080157285616627171015924182982427533711726149421897187156300993170332695246633007006029283815075900311983897820162012040136661747256665652912844971458732519760832190992406368282519694709299546506240208194591444493342749784915398598083209740404982054093007550526925043204770568240728329275044868061416561769685420028197416802760821305199509108582274679343873894017759818673744603809177759454703316950852025430696865343735578935232896328402790503396285807780316744936447664976336029550680484469290201836845270609571729398583756518389237838218201639453867594255743297132535939118452623479479510987638200409706201143537654412862530715273431146810884322923085674610495635653595889018333741470623868789806459558112953852947072608985234770024959488011247709135828411894118940871431520006079267654845602238715925263920908990620135155690326756226733795086868678618566573284112060171550127811189104976597122848668526823792958508831593126146227172636185566028915429784370751493763437733124503405821866011312470580857035665810067495689406774475803388950160171263276086585838499438436765267627678257803917338473712836807042200933253204007559800043954131742326232871623780340397008390303268650368693674273699715868954750411914485645629086907120593769407043905721409532800035868533509177487730876569305591855584199671450598432405838274220735232480145911622492648370590522587725998243745112700332083934599665677751442100616183599151753196231009820370977216810904487934462920409434080293415332024817802643960488441561528508939615154190979282720753542897221993438454511563444579038825572153757404211345947880339472894984027927055996652955046586658839043996419726747748804499695090627438150676770471205986716806574526311722712899462147686453526974577454364173287729076564726871980777025443019502418081534516758880817522536182916615903304533980047318750956351441865693910993982822102217065140846815511676935176209738257373556582427985772119861182280439849727202419408469537059696196305913472601253381971513607487071548511067034052883906111065006067304530855645559177184235887570561602155782477301217026871604740699470661913502424007581579121417651812538471911678703631578877945147253818958212460712310640628949401739224609580080440499643191487906620854639013705617622929689652025380939844347001221769455674064478030941172661208450533301244968445720067194951244299085919904110503883400730823488548656486439518047446501028686927462166956478316029183747952996465615007921951389328101122668389281799055900986857404952865225193094752954549102104493123022499878776952365907710176599536463211458725138723834659537231911140184259342329311639616694248537667718344726652569365072759847298919565284562683654040418156480617733178060071395857511142038911347525202814490595278812818239609823678580823820651165503935467787764377798960917279385948401186270802722109769679480504253422804535662322875558863167141084543988445864311873945941541621452803043425476274352067413886071034826377337228251317583989120845326465666211692358665367479083628541760595771023680947875605643335441726243219665166425897852926868552501526402832193424128653863208862893984591782248788532281889675554321797573988126536404636071947065012498941534620257904437257648364619030493773770590288593756612739969781275066568198005497242796972682787558327771346882345243986265235187691682915595968031791577467144408497879977024757872435389787877376221142091489279558603592863663116520742832386498099074551662886819845035627080341087001606318984832316303811782590839946519945150547674283651952908677672629852332631144216176031216732129692690515962632024120369486262543777157929015756548287259732983027108390421627502679890315879094617218704340675753269433378726141056066057433060943896697090627155018904563371338408682533747288872351546590364630268219747593613633849647445251940983779572014652088239343905800380208963533588368056919966390581733712281851075909770187259793493076973821227514206258508096820512781748427728625141334631639442468969003651021800012228184333456598307123645987198744849930277475134511033902464413399857616899999616551335865419755315297583835560931543194537181328098803587594276245728345179017542604955037282038024542286261383446970161872792945435267173531228860275370739674419629221796635005098848110428921471855867355640192927596594265395679887179020234079815603467407069212127628424885120946230029783501399033566525625004477035450820535032266552092213678355520221305041590006375015940659007243380426497997003296824340258453629862280613272816779839679190017126858292314396906360306187161519212230073410463535740350146705381941455128230788441641891841693672359557874729397380746142732991277731275115969819374491789155871340005871576502446342046940600180042537769299294219990036146353743480886080703731147914420266103079738755359645663893364799356719093860745535430426436992267117874945615201478241844874187641703846440382846170934681736048418208064517850964775259458560457768586265878896803208970156240141160536528012157792242384152740639626641801756700659295359609457110758857553147548482809930053370615452820226532152455030294850499288576475003888847744960310419498323158196078422261993178358719501030040537665005558748441558062511102164399493432929523080104804873249977063879139188447457551786632189464307830472882648410716404407550917863706517116205627309724356224932597277775706469940262983986267024449391548089762875002941226508080362947421257065834586000083930849790374013350405548656702817374146503577168745750836766237178400195365443180762695398754037894456152904597246618753525444572813160479813635962388332172775351419097228639052121736553395334017604732816406840259278344265622045455939753418666788508235101632768972400226358027533596076363946332461293863311149437947447981151121469330839062080323755311053722245118180964936580450940230872564437369169704215727637770084120099191088569893280950513690743598287523970068560578592045565281093366270939261880747754869721696484402743588393447616187997758811840048872664528157015687574916273315217505509695538148938937901243512138113368685228177578167242138995602624801876699338061318441832591350878321325863899011187136899738183718733096555140299591201228729661663866566892771007795150766383258755376219762539630429553590887135437455212507710926467417834742547125861984610194986448535843600928370104449270485571275156794102567573134746180048098820828900941823821170531940264360077424706672325426239265980422951624925636496085207216918282834953441569785233263006923961214370328730672118292049558161889275428836978342301443940354314732839922516260737067797937709256816492738185388959757291398260035573482581238495457326540612066773599638295409612581483557815504462209874086060809311817821192148350718610039770845189441516545652866827001217840757626611543933027246331814888760272100239789228792407267980924965912242906982157275313104495829601585370573022517952341140824915269552497379850695010699862676668266060857532137585747161135730919292125325294180778953712563031706668407682884566958435759752666949029185796655644318592786281446075977703688241705870180428693330504913984274904862308828121858793812905827365328099116604244852539618160480704339642671400732591089522549811998808005434260576589305175336001857501762738155101961915281988155079889231952351168129663779340806677827804359529394737095043521822614317205148355885672002922000049926856961760914954041660192487337811505247596388386365117555257440458026484304100444427878185020624974563957071208977252380892767098026228553796927973020209672402205334892801103301054208887143180732892130251434260430671470530772623477981747349619111676434996989820647287702921508387939419028368171117088831433516055243149369095662583219676684089535801685882500037193156253018839519708722203934694884888846443885498437802864001416176850860817297023644609927822643486555648665513707169207700855053887990286443706000352468692883085795310505643361610003587382229919330043213930570716995471677099957695791506626406100619798146815362216540952927379970786650152634703479567818752152045612991309327238496215737882111603120081219566342400409138717186582380349833075876582369668757185395422000971710827817836063673380392167723206916252402660195422800630573768753052026332452655613880874524541440686428788407849817517024227554440024929112488334998889111667991305922494774877460389058395821998373301340195739958928039345981247212539656192494969877496800562338070301927465374775586162824679090047481321605451159884665691350498694574317692709599093043013824358015176205688274141932268151174662452486739853393316014088876876545815167985174431947319297431697346108536763759109367619449227828388886545399901986926540520666951571538710076267737482408894299367090484837775227439071147760257123675332362686370140663916849866076528674730441254145885444299720563016949722647015247177802584012439971371336698464763524563159303235663089435919470750306694210115299208715775974016368874509563997894097268856939380039705638612221001617768344413089944726973388360437259961497549567500437850222947586394830932846644674772789095845437619464633142453514723906610059853961162975342719839268407883947412857748707319832003818810899656734376738058616148070286812743809033270634070920130278564390802862982398393138298620709008192137944585121100563986228217393114408844324436951440321408850624270902951475415556463222666325151466554084050177464444336376000482362631514490717762972142676609745183950243219615688114967733563126778065879418731382156431146935463842508455959566681304518437468219690292503459275799242793456997010749027267068279682427945664116751769115928518366840098196752490680220382317839706286137373833775589439400928506648437626879433152724197408287726065688524992936617192570408014671152201275453880865923710621050863385433562222045362047643442254396643744821804793657926686452726259510937414721462947577231083218243167431121735326081202386265417619100396602013523692311801753572446960967124682256492315620442335712746694565693715745394260603887142257440910224345165674673602355314801874610493210980518379105984345300362280018493023963155252604583780152949501033206772439497961690665791798769370187764785171273390989972767037847725168614181804837734132792523283345070115054172093169807184553327628321356892757719995857436492218537725908914296268372292358076861885276595930937609168568188978312033104234696932790774878048709200215432400317965919220372182452665588656574567488645309392206725032214756067799222218983426423323067987577352127076977683504610627732877117828045095428802281221470728199762549006919482527563177174295247298046309571089721860911250089368462687789502991634936332194265204439063029504033586415976912807488818505308196074222954819344190354667910760714243545779103036908808839085062562431804432424754303829618174778009109648326803038524617792280696964511868327426449587238754888571319494377260023233512744613388737178459874871042062454145510846945098100794230722206773883861377389285690540608889514472059977529291104880241837269434866661843623351381501116342884881843057341350351264715013648548969475429004760023888789117992195905803244403104698944325587436695707698938544705079469634917922231752043720523769469834336358008539685396444584233549721757143469824855142555614144915711831594646619009418727503072994205658292145871113430699412469440966998687658178493098912037279838992390742597448680412934963833306713274889436241122420089626792752050583940959237681752358136326924423647209189920663715187439695492194817065387212674792917280809944554930790145684643684657953162498280146200018640563812964936502574283571710511387074324636688979979919913257497324227269876270213959958414119198070960437303593440875613626104317431306469794948632768767852943247005604808950169492340473530799222353613684674250012659158849125634218866763798066761573120454184898618224109252991459480427324915662179663362008871306189595095554447568614146224454185025956640679090341299592992052297908579434372170393990101182714073285471744049918419031262272864085111619235019426621129001099118466104089361845729791206688170654156339241220552230722937355488544732223946715821179956208733921294149212286568513118203850574227315245739852386226473779493088884041603012330553486672996167017953852950250479218987992524353364898081151459894894077845010129455720531694660476195757683900036492308898023797362296533710192355418963267200553488669544973489293527693820980974450867830014327736001813243007470543442399074028381553797576341571956708323603374548587862726314540364957054966096784759477136013968270841683400102069401942917650899348233929945452225220107838592138967471189548052068760672526726580729350479837077633307785526743025923226641045913391216616820300208683340812487368537533433646874714475720544017535734823700583422469891781745515643770909435602474694298185521570440104767137582857287198833569942470647828213746545264421040009670083656814987740499120825407479552117331960535357032977811025734205050048147316028630266212292796125567248160046168113826005172717910264445156459459139788740081320419117317971998947089461160310805555668059230648816277703811747737670311166862989291474186775595348309049324885829099819103061854296451629140506007951700502673940370042350679428659768138774972925677936252707077840988816482251921239121742238747029252764478408379079401875393602319710063282423679458372090100235079239787533413264926297560427251679930152819262972623825302076140338906321137526915852520029022043554402159319209545249920380674711943988752561686772756357865426887170333099717733692803192987263433472199655256563928421599069119073994888546556912754689562472008432608216098951797823079729484845789987284364147913994774391448934684233443610752374184654827540811811204758869973903271937077884575570796253447347499144932391350943456034038771505105365359187491981531661517753034640935498309672746485194336323050989189458347238818599143797734421737219849523157961355722349194665646265750623084134679915306136155122355446472863636689804738610740013252304729787393335625042225839201934937308912470507569986309527034894222076760705552960985374132024429516482460513277061230169098001496886171701365757376229246444678496998621835548711634702250533908627589123573027994844499869672348966975001748925664025516024376845846017423570684887151582945084452334272411366232962027876130750089482006326945192810497272950196283463600759631471678491510587142484152516760794012711754267431819064656759538244813782964791002016666447359294850163423923185873344791023019750273951071715426708202753531804726032152529950282191048750254245909429073514717567114550219736135378790684985444920890531743962435955243823353054775906931693832730925938177810835698764778857484678186635611458913205892179500743533176457950149777761770224877066031926127527027095766910131824213005164887261315752922394584263324133379948548903556367261365382441176326647076909066838223033424960695820938194629777231683426163354093231668462968300670670855134512685132081858834874664703420169497794139339017658834992610811789769732772327120939829326495084598999989999966455723248085067069207053707942483523100106268699501375162143805170828676123100314538971882049391822229291961869970863672973814444013586739888420020463207566429697621395971450724135023537364863256136356872431227059310944491191407082689355816792017382508736885641491675622407698085849179734334073015453684572299903596597509798994539750963570696450712320974202115355654872464615921725344515750772850992056154915716578068536115544601908936449837326588338189744953352640740064631316178545925304449997941233577691768378874718215952154121813586671706077533191842143957503035774322603241308145013743354360208981375652028609839269375843362407560199796032135701095583678359002893274517044573514796053235030100884566410020244278061872658506190948818220955675202334057083453012801024646512721073833097092625397753964950643680608744498759153158801680249498807106192993499363938907949231188594968369997266311395917516137157531029461047212166948143940717741184848720232936663254957816347163247236256551350342165164018348864695666973457577494757332497787574349933272431790617438698327375709343185811013873769246206091694056010564851977085280019116463083095526794314574026643462771743839412217691953439410204392558030403023454753439086565574161963074498748094969447680696965524020791555918789962880746318465955510937399973088992532949714985396666922147057634134760940922357493768546597767688757291507492561042741970750135526680233228278002673023959304336327955127173084828346747266020883338871446899122013433218553223550728572637655605670278955681697188723494927265349611430353865066549738381355964576120724956625759411450785203477646914841933836204925223826439477257356881540507237915992475518680296929106906693965471458958836921625899227522955346078492294028508520129687259117117768846721863077980265559274429667220434125109194672107308650222576340114774234652710096955938728894890394472009672988589509256608911745317509507981649597429239754879614052757178229128225119580856199129871328840357644399488751196229096336250821133350863324628219392378215191350889034699266515269779534882160113085072849733397557487945588943588525199628356187963248745545268318302643093447424373087146385634109812604751408587893561983934155276855149994858671715071924320272549577994615045771790315967731494640741234313185403313963831277121066799334402596694414001189458513163037343951055109002369955092001559920292705519072089114407688290434072918558427151294456591407447546961253674267566418396802650301254397843922108378831377489899754355909164534054326263821704237626704204991358264739701745366107196776717754603743131939503907941075540219633697006026582933746846954989717841430120046889485816767849904385723588454162118860951125953104101359418567912824197961847065767582894212980778517463407607570531737426628670123973915949531118827961121891829475306010661944054644979210529487560155633116159299765341303266932262007675427187627979448705701746245567583057085012830080178975674899585103830183341014452895723209421266820546726871258575736078018747224812211298377480581246151431962568958895282758714543640119479181470773828095248370686212453790310717374485901150941766904126187178650000429325052803826570787336008149248630572611905937203455702696480243751836466554072473486136817402071863505374841324407618300197712366221735220626792038893103121404493976379086644911993742151598318844729183233822475154223279716525839743154137100590341060598781274485597631401031644987676664404477299488448799411395003479954256575099735076926610899404077376509090815919640991220429241528587019213516141872012476611123600973070422315417397439497616911226505205088497967387476907096237257275929899393672496418831512780758139453393756781191223741541719982698278104490835880780396641625479515390259166971356199943376614217973366836922976741736238445940887131002387620488527488662059832935707453692803371099987046922764738499712135470293427747593071144996624364598432025936457297736208711516405556094985254675205130284853509589519641051403015175898094910810000785865072147988284506692597078528421059534812516672090854677479054707388376572187603953031491785507677163445562719733542129246776545965885854357638523943429494714832852359080228353628190003200220441985854945684748264017278272859702008244291369071316507390466696319584124023861049878066393474961060637957587590905913451772228853330775957936484967242010398214695049447950312371176039557069313547176464515259584819118090596433775331968319186632378762035600069756529617367860315456407132584089763587629062778104049941095721267298585048864847361016329972005589956421966839150183421341854888471863331293142002486748445113815431219502538277903559338299435736346411841257310044576261533611593667752222878921876011578761610356212119950399899415707463173393714461705666068232869756284897296633300462777240669617254794235516324128808724298039556452690474408392029210597485351208988924325666338367236555440002726743740834585117586587385292255551868862821958364119897281801530461199068755624739781971937510566022317416280251525113426519795202225486183394690161253924848983352208676415168549651333860185685718231009645810458624573382977492023441947528334271956928288075639231359596411024257813836795407166877996144183112231386783519755453956893742529744507426871151768140016009262281984720540240097110071645479004365246826827461101302954600672786044711232753240925388017535019156007680020600875546101574749003717748509088298290528823000835505489419142132373828513769200184860321416656837676340467941603319332867285180116002553975848242251426042615009696046269127551360607030861382984137418609691520910797897121743620302440937227538555038217889854936872440344099297539773780627259079724198455410120847771300901479194567492216058846288113424945949601076758816422796945204193780495403661226773139653031614799576904680900795744263206530869648076090152308114364579954098207391372467077560598145462035035466601966821936848888304886841838629455532671721134535098558081298568473486178896248494718538868922000836586455393253138348126950146357078262550304326294500944262380170352784266465529619562016284129032041734081360018979164131686945855318570405548165339087058815987340858525842650833207289830717622856180019624131108762494487611250647138915142681593407121524457790694119730512838122964113190517130033467720440318611902482966441100325559319895982135457386927267366743564420657249687663014018350123575200896347328286834556930477322449453726251552169155814156159337563587519995393108702865509997728578212264994482410201980107265128513904923226281474718865261286244768280472066912758405009850380755443905425941330145215339915887734845589005533991782881565393416149249074789454315978585055397504852734833638552431250345848892210924754217421629739822275957572980766744471190104952649819132745194637095434085444348490904234953909566264574881724929877472382156406582794619618831433966932701081747967188711258532377095124091607132624510158165443448973359243980606901581446011471020273756087233614844626916301115272632086520366160167788384162711417702118504462597332993422358240516048288187278439869701620476794355862585290683207781354175053696101379498698878950823865167987163762139668029213412734866280077974547920442861068289809915310576839663722576076108616293632434167441684272491298825587880768826324429708995877376357519752455183881814669561095731393681036894361308173312919863763988122954788702856010268406914841914901169975254989384614897047062088710866280509515872299425465443965645326741822698430388255795672131315806914326434755434476887565612939614381285264410337568500649507898956608608405176678023927408335122862942942942623054530487717764516671087569848976092348842512075482846332776196841227192046474199821717143295271737277457421526975092797035506183971222841690248628181708971351503073189751360176328381309787521046119078246585212337044987640931947264136107298098623408476385081489722390931862578367023726620873879187526657420361183862770319013798059035079453269579750928766790396755065594241695546430210501160666092182796954534477904332250832254339868357865833744121975663725943445488344757252776292656961189688643032383501235219267494633517899846706201370602934568464810927806598624310314140154539394866577573882303932384996303032220772154119535994895652108307773473288472484271767010983895440994730611697820579576139962920553749700408683642464556794974749417353076912929100772862958379161455446873665310936254234572051423144339795925872393632921396114560863543229722704309155410683717518696152146710752731576809605490772357052442309844630703510242504966299522160704181264451254350359721517085864546888992128749249351366016094369262913861803153273998933761572197753057104290956496533894452124818372774443371685226184571202762763205992411953195870122379433404455822766556538022149580126100008467036156797740253911419911590321381296078613851608758903458593462610051345807153290315094310061516012811193097701689847384563087293893791301158317584349451519274614118454275189402808807173157217644755824240635639139157727287222355024185994214685298678006735828050356592519448664493822889934710317094461598658067779179366518603314012097468268981087002680959092204130270473095790285769375641579584720235986925540459905188794427160905782194175961836333442743696234816892936596446737082274812869877971033984646395984701516044160161000660217584292958282584232540425682585401737855723813063567544609820136650921326368400212078815718888795125144533521248019963079164892928239091177503907709354082032814461816892775302541686724332714432908511827830074178019910697295283555850596628908300907971348142509930494647291549952702688730974981440918919915201626569789698233225698586048312654986390587327570885416858809126451176526637094793749830479871518507961212334096042923936956230398500659898245089646355312519126561639564501686474717490973688777944939300707663338038903542929640240501059881129731042234612410881383687342982313583920405521147789855910132975310950556310823518286138453238060542951951263645805414889662080695533190412572419467843226539820883201378217821734588107918186022998807431332246512517573522494536728528070953172653342288993502138829322813751329218442315885184773878794043247645475912040037707466471921319802004260017672622615369812329343942681896510597723477943695704317027923564949869986634596248789356970454370186357538172991646514423546838638405465185510904190890754241510482960613154148991474715853079551886943036920786881837127054366136111911662006238180649671138691669900254505645868516883503894751984946186444435998694558270078845306952530028294103704579090918628559991948017250304315031522820200772521652307569811642311607258417578187242225715677090860787029351097477478768173334766011936438008548705039822165330447444581555286028111038940742869912866763246917672335154375371023562912804677717469190821055016049428688540234229508511571653311107260990294261691550820937980049919413918575202779997904326061978079826209658039087420783052709995914543712799897791952520685508092614389152333254540769373872096612633149659060327391691435534806533851568199795895564682649808315726993774149093653164880186078420519974809754300296610127539339463408319367104408683309753972243066172527026283573192020756988926967449021442879106508531374397356879873673023670284868474872855187329586190513233172759179587385190037891849206923738244785096354296982870094263878981308646129238251316012747008357516832172014317122393281685360005173105474846693756822118894957139110453742355960485628461420222947267535113949803721715837365652862626899195262522791274961634006158447490459022140427536439053433742418411570985532588909074067689306454939178126527902999607238428113482027373240690299823734844287717773180309736529867663981600717476644878077837429643934664962834134594418658348747868287583792239069521367132316872097342153353032614658763491156157567028053916496672689500964466284820886523740067971044349077410788998685933675694844498788127924788638893729013888520900760808200435112098523789257280462940659894673429300733212039541664648445116645489943152018885848473497742558709740553667350228704861344528496345989574376494542118551865492425481807170530290371144174385369834171990423759716558847304746181348426215379138350716285658968022594885156918647650547583278192619116506403550784364653860567670618559746836293984480886070062872662805015541248322789840727164830494897204611751033437210863639984119670264597218759589238632950311874821028198047620147919209531577108669461256316905894402010596449908103402380906916019783867756659663682727130000977079743299811974429557575071104103849162072912615909748667791662146577907372082914516337219001497450767795711396166694851995697074660134319784721554585857405150127202832985515847389168936069462720622373522286517086091129768457506123719004327876963696285137784642485470504585609006013138926502736720584681679305986075820446103302443049353761555218542774540588448418101198945802577310846137666385852454628341209149059054302620002393741414077076174587416014399672108930165182140613178410823055744265798185250316879031081507700087361884254056146055974854548621273594451438121221030915994665960562240505809584145309640567831528461334247646148133610863899436910818185727564669681390507973231221303843113621307806031733799179659884409556186958819542624448174583000711181014764923231924124083323489506028308580074634775516936160978992314682418472545418720368813353728013412413957748901774740825379272940250158332594781650151931382510237597325440294764891590332180553834636408078865702259909569763904630828537057168939382091646248052283038606840572023673295968608813720725842557059544515688978075937311711287792611452355371471247604329663683508083773465355280342423458921482725533289894375318594055762896832989042428115870082770677960634616962908818200583251264104352236502334943631287380820852842575098880568246431245388271297905380084559950169777833916767824919800309882981425428739530492255271376018893707958900422384220989893017946548971356816366975667036358608808703017226922760931941850437923247986941936268855214328575723274193754104053863479750323130036612590045044841236319273567413364887381849770843010716153519178929257657409715732252427322854367756544170094165023584940451114442216164216275901685896329122365313632272231154864679231685405656546571502080869419492761498630647534114591478671853251051062919023588766430392087553751770578993683648048351312963134922301878459189365545382988540591299302508210573549448009438896490560732837344975420661087137641948783699098852877126774344981454215267576663660764386037494460676142006431197238072967621921298351923917670121342838897636162325431959240485571163528823844182139670274186357448334023056109749842117044947995063181571828390096275303413214824277275502449116918919881781632385812035779917599106332256410484880810284933255639558291031212859586344678794543086363351187625698023157897713359999409763377949410198969058456545213922411338713387163615306394699191321364378536424836073204261105248207045675719973266191680068119185780815227780964347368261251399198736572154179379690746132366515037412588627363169807221326168538270555737409704603138741053692575086232776584727946637318839445859218481909521879078163593638546954734560396975121677007191102692930691969291786615375262198114694893879069527469977988305205657285945560125017184745350382181484899773632331810499293061605062332327349604277404661659013918668223000313573519237115218775584928649310225654408981886293144879674963552153332778973088659487163423592192752748493101227324002381462168472173674036696899912025718632556761866026542388845029914082372270805328364602961796036790597478519299540292494970855614017903931136852498164113807182684410877703532148470675415979106468336709987287434546250525167423120815132913294964941309688534724593076524913320410570615536326359089306532663297788622164781049563719496691836714556160204315474324010878537221358166325061198458022854417260486493108276080986041051408282280789821125722544586148566348628506225323680253170004584071874932432884893003848001081067164994765985213703956447551376624428300176091651871273081944647387737872628596508677498426820304032345675809928431669056884878338081618236804792036202482168304971643263995216046830011050616356504629093831872659620144781729340281720072120665212963308763152944380863277394073198991108559246879822939044341152347671144550581417984227004739834948773324110129857986783868410904627043438653103310065726082352526822641703175766993913517495142117632433581243112840439749023867402501235909502703162651731229019994287770705679528466377205084186926451301268110042942895331991762711124323370009141997472033226777066815014565128212419764785346209611878837148198871680787620580419945420198999701975328264716780257646744470595907959782897071268865203461584601632202755604794677278421144984640740889121601815232655632934435050304317685876353370562065951263756702322960235678810075343737353728658011966780693772672081605442087496948614112249080730125460998875390053631904556738960886402309376003604993455309265516040155603113980781835690945871920195778912993904313621291624694744841379481583107260621122583776903768692631511593039956681532859763941819009386742930331644286977474338503437970843909165666304915813210447252596250800720010327192538148554170550342521333120051002168675371203432263708800613426798544641748470082065762074185933697016934973334433006195979758314847446327790121034573640019829492346771215273405183335240383157352476058877663325623559223168024627141574591235245412812615852350221136173354548491890776591135128686634730264164203642866257373642328922296097182682701276161610055246648827467870214997361507937576661626691552043894134223146045112773486580633836177031024171197275729462451562414169581425687295442570503094148975035389828825021094602611390842277831865389880634649922925151411358054990988499812897945163618991484002300374227310904875623911341521734909498598648171129913654661430425929470825661576483450140251594693261647392178233590334686657032696792413658402709942684498370863331666860946693859600693465097703540217193412295972596224328210098821453709598516943326352093919879032779538050062728186837275319629996648777147566162118281479999475095632503097206009701524499475583752409656660198998536394032067240848504588483196453890611374069785350987860110971910898277589807988475682929440697773806505942353371431563976293913824080009765507467869626097707622932670392837594197981963514532457433243425512464191252767611891872004546118291510367495723247589293627379707370905149387039997963154129369006918686964193149891056169498258365836733306563483431332940232652452528141121416631492355448270994453916017974229868385610026274500833601589698768975428642198783252807673039866062155758839907598505614497626519491067502587182943070353828028179703014661932337038191145979244397730866310945537889540402981173995896084353213998425238140474088777101017235649468270523866176640187526114730218218942575713289875735684552530967210373362036959157128787871901366714819993027840511154929747688540603816032127909139032381236980525573403666739167197243067975978853710860436381597126219339990007516075018757494568526019384390624661208881011470694712449280041569625629138817050115033382348462074320794070790978329279160394246316580788312991469503148186840111148351962486146947850309126722622603909182321215986524459434430862921252546437116448930484087356913988143603945590563539286080423252976653998361399741240337928445015360043925309516789817247581190991347798728564027447635522133149124387350472532920750295445994770601332910823702663992350768687605185394116525930350114574196658350433055356290198216207884336346097694124068607404473640385439897999973351830518538933952771272967344454704230855055820603220204362629593724498077193019915002154717809065733830286303102447543057813821385206166286571909383328610114522015107630085297656530248418947327596426141601394136719200723093997020050780341712565965179637279054861770874514330414173104112489744704157790406421289096651166346759460952547620102499014759310494627690659671716523911138632190985630982053505573361365343031437475921436128591796560988234240333486218845590028825775463133128997398640797817721932718094412563924087343345685419798650551001457211949861024243802494236209768094128779574229994957339265689980005126474846314690911313741200578879973770355275711878929165988705572200452611816152038388737007855434143036414922523957562143338827559528170687821217248710941535809607950270416705315876249807442683092404507563928820562209945845543918729705886292851427129328075643087499625796985388963342926103163291361967979353477836937566962896974464965271447780080144292412636135025861430256467983315271475876672505227611487379065970213885396672247450677985248779798882556060358657712743577689719091584502254352760941564301364876492773312550164467357128988822045427135856051074945852783440869852557599719400656190819482102507679881617127256844720034502396787109773626638884143255944324126226637855875517778218983871995929678579467049066428748260399975746871772649957166491881158545844774950118199204598526928894654185133704125515994230598353554755433554279538509981404369764259711200782053916797200146560064167658453930721485519909496217262257600780222536593933100792785420775998906665246513544673764186561814708928109911789463347755113245155446655608917752017352185029641752225730802297836807944049801165901179966620096456280753542356612048796887305135809174229383953006474577353278221519558736139665183859470691593840614597887651863813799331862885650639263981572956921632109355563842721281395578710502256050140966429139965469032586908926864548883631698233951870612433513468468690430424936954241482910880655027977502814349420237708215870660781601580055273008648008545352965318381087489197720101958349611680833778890854839874784817913481194673788472429270539720981617991538530503258543573762236597716638441050072837219285738410872535694515909588014709327988816051299172439063524583082606830508340713012587324348487759549878737008478893579744010347728440787337663983671317616991344273304496551685580804432004103434373659103159786737043643216281013913210971796909767345684902483644246884864933911126248334562095948554938430871864793623430057555876952918787476695766170062538777986344355682771109739831296021617531059883511160368759234657868160167480938762187151218056552610573215336404643972782410219366559699810676135575392327987923836067805793485677721545054764177306904300481015810474081769715992569041818480805933867961241921849922064101873421889687032829224889968332833562280597194056200638820682195285910335946029448759948450530014313996460479024403210658808389754512178487169834449590638493238353926942608604899589810390973595638741010539451533253663053813711081785611112721192491163701782033704295476484283631229810578944078613163285572178447979781106606608009568383444959943233669379769036534673376124545412368447598909428431644434768174265328599854427605269759206362016905461959962364057774819467087422148171799500145123083115247192052700144587376285441400905256798139279032860121175856313462633497433272190046490468209895021311831102213501912848903685990480572290322769084303403687756959677904635049487095036065625704090485585728423772174886825663237695818357949947229957446665887066746157568207668212234487784254722496200825591873099594453189186591847661733794039811003536212167248095060023489170613954605836961625983743832571619422807983514873009963715242073555064186712084042581824955035624949136929257043519967606206545994353834200987160605013378741855832898844256350241834801040817128536487337089370195742966320488402053372167988911607935367673720438462376298218283911537662563451642035957865490605962331033815678552796144194215963565047598850843926812863059808161921433218808127342866027831503215119731147149118397950468896661889328781698026619091715393751032230864728206747915546537897122489260917058738594412150022088282680369664019079056050939096884602246878795079781707732850488291046178556250485278025969242890680935778272185774566495952256524418507151169268955852367485010827192581754361613076661742886624923448410391484717905596750726186464701142848360926974065386297532254898784305288344348597722187661921739302141023929308780679604087473995356508269833887576138780362696258446128328648042724438408639680210715054173529100125850410625243729011755107783882624801945233084945188666888935172359124245808767897898594376983494332563474548031510017944514966415803382693922669208509711020637512927188811477925771549914755955926065131525489750739107740699071526519419643218872624400817410984673514088238191785944526010939047984349386897968839689441687063332377313025270865749098521596136187193199641381901088035736997044300007276328401837660069029302172514676419570306430575299832128137673881428152822081547844619155259491260270284498333815477616132658518139673147838513484315873229612156696447269707559259463064963318286486981592088102730013583653636848366943285145216432637800175988855222441063577987974834195892109813235683366366903210841167235275313069662091848520341800238691711776993093714737512625539901905127492796830471977256028952750291457297475693189959614109641579608821255363102563266968397882229953924071687685854869558099332752061275208187966707176783883760588269383170741278348741414621192786941678818723630679914986776567919528709641167581244698566315104222226490024273540462792574712714132701994622540124312152312787155528698655318098054250449337849467119412208585872995268064005171057198380689735235776332589731995816955746659627981243706464549646293802946908532546646502232754450530345308476466506694922101622500727629170090642212443241866534292113143689332641426929702108252742900326102364821823168280812610034983589875663720534548396535675716478223372434016591442581062075926059825072998722905265334899354940332084300644304626280243754797551367223314525691459964958144783396653400704308058705586171232678634878015611580981526807246127950822595551250728997430872311772593545025913232971933138324303656935321549898071368330362315259830274276299955321660299127507364069206646319877841808753857929849757051230663789875355956309317213827760467228812201780650279426035874847115947423823961314538933892196522582398511262776377653111862979116101566548675607788227585778919912585565695909865983354296737459141673568126997529478203050340519602269193537497411228499412149858179047021941636004963923041779003746988490779537576492615396909983534466443751165356800786504218433193430080917994483605353728499741256898385735387469874081081087448956407430420191363089643253828138738027336355563952687251107929165294131950376522457148948575694399058333548414338184387932395926760389189320883251704935133340546328251791075942392144917381799357988475265822612649901683147032154144659498039206644364150118246060305782055906172526619012283448523000704349227377108605021429589877440055203721085840543560566673978624842547987672219888647728454103398536517181000534890414090861973844003907855940567687087213113414039231374504893653707526814497086134668462431297883655923527917609057631160549027693291308959364438971489517582149011011479806091700728634094218970505226483810246734184755448383745108662726208659809623754010856916368347571914841672317758294420800370348836735879662105638995102501684302301356116226469762725375315199995924441924090572494540937532299935157884217828410964727346973522740179120373729802311639082902207839022100413506904371800693755057405271701714417790039449364473717222895684177808685267514658012199735175654655896702490777708236364198719935770917485371373596008398873548339010717593769054648393949108304435341599828695773042050204122542957987858452930578027202838456441627418684054635680220909933491016963213244438768486773951280434298648311223754506680383842458644652280879134813256425705095462198865435141999475987736378569720801979248053047326923903898010444398944250817260528969755380911621781617593262773103156512335370214018691712489784859857042933862865806074239049545375412007223101805329152493236135712072935263900871380449501046763530093770551668438642055613787798130189451523442555628801070987636488898491326465189588681777991812969204842123461022782131251627210605445190520402414050516999983269837182446249889001953269852923515400446850569886246689768994017443832164500158611770318392958631417306149821426602435968025641173416254331256249260339865995827242412991174917285062450787856933793233632166308069509730798201979988327828150417520298746794911519760745477956100952222236717663643857664804035155918835412179215357321055831706461267653875929666880152707311022427196121187341458069674238296023592267211414997412235048469282041769489784982771165382956621888190890540747638536942252124737949276331962439025331972799274872740349342438489098710049509302973995639130131732277013989607852663430516512676331657058930955070340183281820388000811298984938997977698109581611616497750021141678181000784139115123905527680095679159422250573001595460938570950457293922649416100925678712644380122518627387342556684191299661553370295116973529737814118565304212105636185197478368279825604787845567438521923700194748991462205619687134982755704745233079801031392450456575103835734805402919106162303261458753765658766270839666205519720048068119993113861471698551317679263902371812390879001456997741355605032993512737007092152975701149920719825680892442094262507020042950092525897534470227921001129722609880333546006755320562762610441677348370193390698639986993527225957474196872727354481399265320725782943668742514854383303064185501159556303355193963691389865975504473001695061237838140808883266207363058285307584091252013128898941406945111292626769713536514044349810953059520366761680867107547694489452009399871270269873514536372267096387782360624979428891127102929757576901082170133828216081890658472280624731664578345654171735393732042364593038486038754947466604457277869245756965230338291040633237725066646534207950137164245369315254338646069772101064490555809383818022048571392448311799657210919776557204905375894064037528118839020432288591606598235248472195499658672080605990617191283547032500079541751662435645612230827069561239932153512202296437570882244618699783440571670296376414413468499506781518275222861071433649297948712650270407739603436287555093860838780216493884392142918196852817485559557200630897128756486712234438044693417923261955301818234573009838689605870407528987615587557342146436506027321946230704552529619446449972638214496350643030150043856044673204335980919390705756709871462355224262295057413020770578503330976222624599032502837726763395718250689524936857793070911878936732736157976480010561228645285721645501506930605232156436596630748349373866157358886566772112650077441842889966411500678034610092385949648184668366227349808565532801980675068226919084333155269390408183016095035944405947150846976911159246644677254354209924110842504273894447342230172489607437730644719330132945373623240340302679245214473397402975164271180714515598786366253668275902643281005752539988874292825458854583263150303678063591548435710293469980081337680491080823864221936430891238421754971182889131390638582993043262850621584811717893043689587394061634611936809546678408734884378000687005183942910448520083858372719648200561057138998853513521269210334248095172830321426242719188277323162078812557375821227931965987156318748689898684381369363497757545780977680160164030725002609298702999718032978383652565319112577836816117315962282990064294936075506020347491269883008401248231696192914806878186828481577784504193374206605838659992949562821797610653300274744700651138001055772538046174911236013641776923221702856197209712530535833596229068362259944070580860099977457366320208244529692149274159972270368885743545319345055915347889930612666904879426750942350283824597680759034827826597489163838130164943653050769066614984410187963805793081463193692740398609173806437787249611835405262581422119980717918631875450816302925557924462141387969928518478386149557351718945238608490509880843394903685854080290026444582438420941158746579216557327512897091638887845772677043418352549745219526966897797231701546169444792824074232200759688704168749871468081052257294788348679705725870061711041941439491704158683835366337494944845631488850631987534714855322813015748261262129317530442496783738762724942773612226491374047906156457574767916975489206331134774705628064308909294797054606954354650053801012605507402625355002527778862613582168176344724568265640971515984006213238410134969330422750089732435568371667916105437502718811285838428057953505250479130814551113471947032227766348852241018663946632672686824219588132164930641323855920111045419342233983171594587266097414025901653438940772778490179944844886776366258303799830153533544974892177667403375213345029428724111282512502691988692900437968607105796829462039368624660913892257457289073691855489491221146128466658753649075083127800172648529127141619295654002021031897024797265817811746496928888644085496579595995424271235162441236501750086208875388402337612946107279388488450023532325182392377786667787677387066222123319386391398082604811612410936160335180366064949228052783679150478399829187968556586069542407322023356992352931773903287390425549150397882582066338698947113809322504208084131078795694986244625330183302323157238198234768494586438414355192356015141376324202662827471645649823196950826473524044906953027524911718468110773293647936910905861412620426420481395928708371170685178231079285650076407147471054326536672204377831508841163337549287391684324643745842863258439984840789943832896751250369032262132693811414514844524749036411425337271381413817571473234348234198768420347446684423202203639423199263120312249799717303533167911786984517178330790689666697419582838862901940173869720128156940362072937415230725015427796220920303200719704774860059972293094000158780050236244792439779430375604922794608142410960797107968249749594860989672201574546861685998646890731688427479998540992975630030099914557917415180896999275034428345856724485586064656662393663320542376191608096351985273131276580181314913064456431107258598028883999109839195840762534467091013571831058736910384601341565407105474819780966117730310315417051728545403918741428900977152363169838802438626195871733276507239278668164530544594722577134270473909488824486187489499086859927461512080693265471795687354792579329874975219752212577625204698820881528975811901758345053153011602397301026322764229266669866012576292606857520760392372997642135039824969610614888522379279354265694825712077687514142963290470867139020339959719932043290867655301371093938238843506805196207900726793793341129406064576035167078577955927315271861232401604538482247374577389505062704228835665890129638985965779768607445379184166543889577141527880389358446612852984593559420692463693923180931807138296581331095655209463907504734189065019754592069132974673566269871635579437338382834913131872886869269914153528321092819652269803704920952104352901800457264972305625323843171958825117803607619385798751484380295139570287569125652872541037730739330005325981747780359111272329240492050955212745672715673550095778435018453685821376807477386439980518979558998665243566604398492615805930100034734460201442927445961380914883669027596196846881252177114627934449007742492069800108656965263938683987086627400283144279601073190158014896186716007473463257826363997627027252381440707529211257136135154683143298225152751486570340100644352710033193139307261688155188680721919121691600893769166049074986292198195495125031507475848903096808230603313471406782190609302028917777784019967905807728793487781320321591375204917760235122512165838627460851899632675781272407238955917731964039473489733562063240897827933693135795417831833989449392594391155743287741387659221748392466096187869807372348130984962424589045890826405299839396014305943551268216988864611343092726661254723838715393663054787429711110244260625299588892913245389928531780135430819063516184356637050015503420694452124447065634164316380322629629813402534142175706898892917699654310097461736747802531484583275240539315172837122523793160989121343634305952697417886958198156850531552072270096597732096847801078829660517586366482216385200251067205938752561219130687461240813218777929055947571748391264174687706938955511598746634608202591074405328013699106815556665879117876668956001946541092059694353585535972446338079207654378270001479485380542496749412133431045622320196628797130273235281127471648783454966087116647884933112419750346388529543894257244404555671915923846551112846631201297077733091119855656828752094027912806431580375854921273202613888199694272217073009022660407982132354847218360238932362256104566411806813781670338848670917921012561600328428836577841045731963154410990372668893150362378939273951746639243184200601843304547570732858986593697120098222628800886857903852764219336999603158888667647331494473072078826789990575737381896752578989752339276317068642121658416779090007152116220884980173915744476974291733778462167798089342326425483875438908648260446783923674474555407773765672903177676463534765346167859823609492075208371240937413031690855589845527872747117772120371122729300483858482014673844691900337403861034508451793058338234141730997877149995650554872520264675513922671380585649239817682903053319032825975147210759473575714770916408056431405613507825424836467585679955454871980109813364462378258013508777222552419037733282455253158239100137642843150513662823039503132064564059400375665395114696618143190016239055949466755266655737676899882338776834504750556340008043330307904716944675785345683002730619657328140981813265747761259337604454311397421670194525626946146520115791910938763691719642770639559336123321514359258968445443422400306440060331219920360165434946768655729753598677083319901346577720096455161365350891517210601920533527035881224169432438938510786390506433200424403219636633751684273484014841091411098330679851862471996632443772398385406010358445340669286597953752188766708835529711500621575038581622983253778288286721173047855911479441598174116373098531963936747842884552914282305489014758037142193314101560263741015354565292816426367112068519657890547834140878107093083648029766212382609298927272881043661248965610873101523452119823575008486167837568900247395618840338965122380310957864197894149910539744287948806434077109178665015680151213031898686786524989316915368310905578793670178250698930777696622658880685356729809265148284296766706905524726989748029691518244537765583526389970082287330285208041121529614318653745085976070584175654863215307137633804912447899410998774991709375309404018930189753496235730674519456871230909690065500787320224336495011838306696775275239460237989197247590014446245409282021390178799308021739444910697051862062658759445943162859679266029123131222490178764696141810809075091142931606600419583326361001690746581387742950201795164456312895238266130081664230237582558354999965313944334713024842669514710053799646376455159591120456217626277021810891960941196664431779948532394930494366537095788915680140469148501997995470281297917144769632319271686639840057876828366322388863615291597985227668112766575364115784920077943838850917519697959441972245839035092012161368506989925633152184499809443646315199552470669886036827916120715163121547596888294590039618056294250673386901907401003062224120836618831922532922902863527213511060379389035855645863879497291515263577402259600836339673674775956503195120299027688853211444120039913852966992780985043754313442084636669855089942844405865354860112307202632502721586907337103095622939637862316078723193166027241175505912857004286133251258847555299132863668078059586531727517287105917400609271327712989175216133631274874515305135696190932880600023867191675128741489880856929535118204573523349822808181573683037897847192602791989536751975119835639656114618611062620991005953049370909963679008308054415838173382676230844917970945123331946265849054929466210639171780870987088779926118488063715901320142612322019834273876656777883613063735543523384450632895241672325798379242842408332934041045650548947968203407577302519208226259754356435711873472782157182446798951392817475563907760209015803492312369785457008111950350943614265744489295989990687922306848373127752742551514115014008414496910359798736105282640331512073322903311514165977072996198057340132399552582104675556728879324065866398464718879483254292460141777220131429034052478958463138206396424128339757393111997789023343931217821661582472811156022444630223694299701743341723972012687527896585189496810616011855071675901021134046262251287235045638731879532787128732143911777847982976582164447927923380171802954692056774644913615370103997882370611784197474437618436311743448272694449296674342670368328112915694749784761378697206757829797389593843022173149401192974012742297675202311640861459785517076910869537799521657923001570868251485343621788001746608520143889932553188693894657384089544368219320619749205055350412426054438236370747025904415878008227545021675622649626131235883111270517037143066413264002805813729689312862889449883756776534895362422226381515434334863495065840428191372350114695402733409584811899166730143878748906308412951351960060365802310991287085370148748499461304279537938171888593585807657280499340557754956844172246745128748091506280915401698082061796043658146954988785510394844824852747428843390671081711379849767754580751297742327354550509855861293380892687538265737403581199623498116888986301097413314786354002565289490673858742086026249263029851314239658928146553929765147994091370078870884948174335684070636091301451474063866744322987841596621200263541383864645896102620195164624060624884484228904681399570084295325469498000300392139729814695553246514639445961342257999643871568267808851915299952266382964238755425456581239113302185391176014192336695208034894232616563358694578423314191831813773690246656693322345698449288390561091355893216529137294225442990458432754326486289317267976948972757703426238613569470904875417126662829372708473282794604124231546361439960353672978818624707854554585577624118552879981268190728981035978334746856637560550232209716427285020097581422031633277666403585232562780159770120201085571592126563850112052685397187714207672574171931472434578588643629724739530738858461929498480041826237042846853402678827462742330595235413745622246125230742785040605662633393890955287047620380694966083647169489844149144013861562183997147299889815453074870330311799919167914384000620509320769862803360659742354648646658331337915417044015495572709938852529237042358873776428901059874173946602377909183578203867301425301989222486627141672190017610850985646750677948536116327088351075751138474028529742692418118849280013993109302632872140162933721380865941837704746469628565901524248168354950396163640955270320094849254578004083766925113067291492652796539475775644042319598850794763144683280260087199366059557612793512725857191718329342944876490079913288157223252195739693126445055795722718855634234207962328339398197575691480897830842084771581505586265599794430071116155948003290237470512471462383456664794359909054473845264209011702482768725253321318359293093087051645390689916451419481573747815089204607665021598011371750287025142348448923694436310563830647453184165282425686436526655179471846772623707466870447768534078266431169348277823053126674080771786383500081905685134840130398436203657398965167763286968729009480566550955300972252035898039603774530164099206241769154582124043726856363626230049572453947401317136130015459385170770198016000140020788664304566081276163549272132643992506556950959686945820777210126825239098648360632490925935266564434953401374793527769807185783395281900379782218046593369596073805313536825263291480205095500414667856225502986738692926423758496378268233506795203707761094629021390278323298983549920318188382992025527848055132310653604044105243172028984658013212108454701375568856774007646439721026713890760137386559890217298826867657512656393700602715295621840499939774770432739800480693747467397501471530540373820792411734977593106727899680457394453072485455738750119845368513007409232700440762790725733515231772793703299128401243658402216181089097593427414346404015681127999426670772120950315697844064194886326298221272609512016623675574211312951691579336071852721513610317038476354856185897905545569044387320703776788076770614653511372531148658900339626362950911014611319564936985984928116619673351555870593632486704666993275139621487054984896723810859920629692256440231687570841912766909400695414354768393944658744038657939726989232376225539049333562071500694672113571546758189012807857461556649857138450597278839239781316863105270554503216498095056513224407692234134764606066563174950284562387601124529079208934155467648806317334545040238004607190312482053326007344146471136150834572198577697334334830607501084410416629306797523916464777991237125966653083282218235342492814360218125124665239022020863990606152876020710545333446054796546959548425742071840972062270513098416280000599275882000044770810342004588647917559881172811075094481831663232395420725240940470264369614989354029711561177610506142078610879599691864645431813442701271987400167784377435949847802972818916843598806301032170312881474905319212872395367709851626710203802853859222156594814237703197871583305083914091510542679314879701998497802128532640807899033307395603588721445735035162379272039689880295114908874445812714923928646054806697655309384678660884857448422280954229825466303883828552636619477118809454864729940634699348249291452804043343318545512904980891594211077756360950100170650871399926140319140758672273549597471129668824059660946152169888482548941368184729834814492599583394926177642643360968512735584563014989874325867623475335903104719625569994963365670605783035167006500733436491604979405678205802470109292673175501806148673235672119995322924138138924064726525174623134374387158922974975412673839686282998049477607016374663208461182038823808591042926093408500273283224283808025528666023541175462586906987377948339032205910980257148548928313724014026967241678835276504719345095777516069069261810390031473661946990059257819162615220998829351573111963898510701494141853810067144361154503760675153245516101291299773257486796632823157679252353520163756398838815244038766529248245951358639424780841599410992875527004389172110751798023023901366880781658035171024371518823541320952002710748523653922705210894517351431041960698515654039165433334019259313666418995896900341027065152838694201634179173108600912074057461254342194067029993302134827966622183668088992180325885971370263208506605595402955837607169123652270048383998535201841328279572231985303157990678946637240892567287750020470375620382452545913942237513797807835140472129132613285877644660057637188823838698391695638976810407338042325286623595201348664872991183309893704053494814153371183476834020413794346412405441545910558945075069018374218878879637409431450213081675460675638883338619409906108714784116171886742702341103147367083043042224484199020634512091622177218794400203342756080653135285225283838651857534386112056884362350638720841531550270786798113725856510908948174309690013472037629484628048794883857132022681936481071210730407012218563840524675617774071877484141833040963776932497939110241248458178595350932697061229615089141475485484955422601708766695806771061532623843728449559326434807300864933022834554962543272010625693931347131742084747438388071431837459332707598478961588275440613932752459891254917726152807059497894590530802841783859650056581817866600580081071123053878704168509436256152350405929593992511179924634115500432005987114448701336791419428100086427685950161155791184633230438561447001243888154748588693766327742310330474984640429191060915089215313590047350580361618272052136236759569163146041731586153200743399014141274726679419539127443955965585357589353710662949113255411029307585808361030387955417021651874495303711087607767298230766381062514182960951656465248485642230812380025419026685108770321731176850021211563502724406196222659512335046157783290367565588966988355153354048683987826994484634429750689350993511196419792754507165423567948041905340127393383063644859797283523851658077653209622186236089208979171926315794611688555549877734936253156293132358078810735494090530089873160847899273614749793777722217852000685484542500139203228600146016041419256684714285689245250780177360249434047406322223538454809644350334635650395792103761584599416189735467980035438267477213996282513754956928318054720123693482676271140200687773841175690332504170336956672677789766240486155905144361208984969282116985126115204107440626742274078750967715696581293800008586788086621906389361812895480088572117162532713408804214415462682468229667533988507947454293438887293526102435922641983344236361093507135224578072802793493861645435623846044208410588661936146575415582949152208838771965911559400018647710784389402889584901257867826048696757065585638612480064613299373382055616144656878965877723779902254977685611435771700652156910001752324720623215213935755797501525775548124533217780198965115099321487581035223240077671874331009502695621199780087051309761635216267037025788877842927649279091155379713147373501820709414869437427591385708027404786599388271468412072004988787046114374973589593671787076642534743919688079696581017544650460900496917421915898142876161867733266940771308122648402848909933693924005944154121617104984154593959340217771037083079372896694523211827964434218146619743222949510051150169079847437665200329926749044766398681992833253967280781504155543818906230243660949456617451220229772474685131410843226287076426362049509157053365294276848641324089875826354648427874689768258453286076699818473852697782530373185590105719590912887819439333480606029853976657191448481066477803512161452230972290559229397306558904106194318983781547911684790863494459448775513965059862938258361312827777991931521046218339547317187772283820798112020662528790686489964350004791528352281797354440238809433838360166607764154456395659762400702247116788851542211034666564221397583261143859598115713315172212880237315324059269520736799527577646327986675724369542234569461183961366763289612805849634548819542643618351581394307961513507136802915118893732875242610193662986634898899601622290286619714619875218924041161615284925108708789125444561473164390711163083451368342589290624053673697349487695712367466665915905287305348992986181010116757169264854772151644859493046729040263364067600710894865921470496038560735090630205040490299771151379585544492857417485187188026998460279489435881847866685277941674262031929307878067743306440366045432511461454240231637347278401218994888339012405752492453794962469576329594639713700985328948999711031711901151432980466254753047977154209100784480808834647998367136164455436406047112076209148718250203094575643777936750925866108588409006692452386123002074893051243300863723893697042900388999343552834720941644728921052216833045374723723322837824250201815467029371086741485510069760980303049522619575807940363152510094851850069144834298658919285553977150646662756396335337334864050370484201594871871818659142640348442149514152435638485920887138388987530122209970819820184850103384082952083297042034297764646421660378120129267299541755476971298073952124918860707569794756018862393534297213945076028071803341266613971164048519656140199883713894586066133973146559234900289262905551310959491080832313023770293153650137171574212876615334100906843022570970379391986446530889970604571328923844690180667858639693292975887370839411570525902142976038726715183986542785783802351256096923048424761224461929056934561266283994562381838204614662637013521242793942055425658437838467911568517375437354998385991025316616076966569821297101516096990281189002724245466694329784067575837844900602916948239284996639289113662320131150551005512011404544073802496393004205008701979939227823703866233250783612488710346977677145823072414936929600426065854304183226897737115394838642167305237722751517066317671343428249037738127231969230005111671327724773492766004719314817978814725075600075169218812902277821402945213014766551819325402679339678622205984998038118185164420237976572024917824361869720176991156597829609514295853190366949657074155100241245876797312784750325520956686337451739183605451278405248442493039711868887286970244797503335956079439718896733072703563896162113427239881788635365648731010926388094022437555985244010626049463284917108963624059626794173409622535096938189194187026337725742827391600816629455076334005157919927198368266922121017024063117200453435169914586320328532071801526461430677839797801524582983406863112525110914449152007411215880566989851672276713877560942719611261790154600666356276885078250879049360026049623916517451902982298998568955374093270035987501292046465241213009473230431710235709688771642722283282964594898603838667635155679882588517646795909203417896185039277047496095070589005119500454137965108351366403562563507387157922807232630364654271493535393504247259584421535066669161150117210790331461054839743094131415410775298596720641588155664862800510538772545341711583960651195140167482588256454515073763905083021423376969273156045567790051560793086457283542175180033934420695878853845950405915998070071976259935371695518895285534082687857734233035804320820164299524412897877947992189412727870673237029159579413967400092983246539745972697840015423772136117977709897381225666751210108264225383568266399555750368276590447212927678710569462521425431190066039843161784856318400710750615096125340232371498767011917430293951712104393892371647117939657858710455942785040314586101200013681516685491660279786868296373956968015975024214171759448353783269044190858302667623949542965552821354769699246219757469860063271911604653303730933505169142859782965016598832335690471259905226416843010286435532194945282501323793787023402878967796676937834617707013467145390777444456566107588745042392928981545117422831305412395346223861837958793514312769333982452592147627490502856658463826743073758217044031780718489609149880207159960624005125512275025570380206163069225212354354589669926014342897500097139126116471062811066307588268851322999147870208356380699336480554583374829675842387223858638726383560113739870140591832984569505116228578811287803418886455851447522219284352933342782564098792577941566852166172800883898290083904900450341398929742567031850998491840495855098949775982228947796865076499595282408129044300214183809520916425175252233182881216505438981497819205485071474960760553008114418753918388936890625595614720929606879191477321955002473663645004179842208418506428223599130143678339691949830521335488390585387930063219928768279922325616014584254726089363994471952700630469020668468578216383746093235774776175776273862289250811495077079612981942391658798645043497951168263599758530032006219223369082493378309870398374716493114164994520666966970540280446269513159251260838386319369502907093001980796674563677076398655884415457168509024136707744550751270654208560300941434741379968494567304140105007131497519438759447948843040011239660391818002559830868590449088008214153663397470413254303891032986452640757901694985967347692299111071221834437346050758135427527746925993736080233013018785895391288674211212884815516391366465899363977437684226371772317362814082124475052424135130369894238289336417619188327947777752086242358708209177772741046883575016690510967916556262091695119320656725556882809963507207362852758927832361307915948407304781260909501919622304825262852633850471525983689173299158167093467935250465064291200995287294497378750608584147948143754916464049900957466075667145201150019307907222912258697835292547285382490465970949399806886542154394181970999769705733933530376808249252543953503386270025349769300777442147230655676231653891427531471928153715076909727837326672130122219062105638092233944051041904831985275319582559657708018793629239006150638413152259715674917607107109898889917723559827162330506380113565122868342561662242413962828857232459770942067481998438155880655157864236935733493268677772132155534787349085224040745240129721147348657521658522979694651954993211919214599845235727859137022411878800837817757191886628205950770050697561218561003047964607876943731087093810132146513765881929196313613687406111279007097767911793047836391512520071542012915429054380541596705366342077523066724495483003795236445688412621142586931450176014453601596907328898776974140629685785037147900157793396784742493452544419349351512345119533698547522069522410377586127371846988842023471427943967576596841290681297109732741075725551516465157802804261810304254747064985285478696522972700588455473204213419400120129089371596098210905644987050589032036587317414499064404889847491473643555391097139538117904224832047127266951876402968445763917669486121022332883751607821773001793720735326556295929737362342719146482631834053769302798022314866744427365598183754149003757912946974627304933877807118249727901239421441248470747708816697615490085074790964387451680478497620630451057202098016937130817804999504825244892207481664803439564817046843253578277334386875350989281421796822781655817410953189707849733098093926913077812877070760769649205501736082621477921737166879521605352827815086863662741721803040150876780345398143717770632879043055205884510412285319906073016926450933891137033698178419590832311157717314361186158193763695194396631433033647923610290346787878600814798397784724130710948545682862372038539440982841011379589280155461894601485691524276341876422539570047771959280765133308766829182976155414509357157801833506960905936001568593065046525798750577837587296374384472878207288997452069911847196685045420379798811017604191006318541624514151381426735507754276854370376882497386008877553003651961753744858397411359808770266077072604786639048659455338879601464208297906911548643792132489662490763674143743872300777126284104996655796591694058880204634888503095406687682314433706717713358312219749975967687385960474074649995728504203637729612915383180570323611118654092769183413177764056030002713985183003228799092426343352354673033831749656691495579139838061741228860279398294060183974072091382218559026937840402747328510794761765798531438231465282145992204625626651467708860448060222239243489212368996581728203941453373448392461402135177638220509505565745898404988400645126193482461520961165604515381964769076180146094771446691453172490282495356055894887751435139617591968635364112511583646443295551198044950530264625591408342032634871124358955893151468994497181393761538652309218889569591146921693920219278777773830448232285847046095960407279797994624522374212545621817791680745407456252508218409098019475421242440363423017366993735568654541849660019824703841298509460009348307796936354011752164273490092016014187640378538650899870405657029386397277613224660421827206511928410963373290526316267896424949935967399511867869573218136686679034600842267419258210642653798525632670543355645372013368695908467187792574386836716403808483799843398977974104450341399945504932751693380313700847788595138760713727916798472408623430498483687257662225028453804334883930299550995512867742639501694695036783005867801387311488986958568938277365156180161244815086572351416036295228839239354372304887149390361345548543123574053269735140295448803276332682181001739276469280613421809504602315571234845813080676055774034747919012264139552441090809849142786047950550346166168826963345427384069959729669993348668758672544654240403681494070898312640430839411877000294469111239391703266184378149359507479066558271906700106596436011877542312498493981720524545632404203666593476713025238055772852595437340935371384156781426506521323415806874628762924438935686866245253493376897190156549996418416947065055446433559343809330091228339500249837023460310659302443197453600098358498747632403403882394707643553151295460055825964978598918151470506361673828281203959108779152735145165697036420768781305483797373415748584354482390687567922602314563129914504101110915438239305263162053706268391750844454848795810172343511031913551637828705981531991466008239424285766939439310356202087988314224750822595471065663893268544966563962929626550837774744359862752445109767507224064480487216449182089545589420710656222910908903420402000186861556250876032846272957255851718108705673798071168168913773721066428168006806009877010923114446959643686514421041902215349647503953879157790327717582064972098791267530224127335548180629052253965326529781630815160050046181939999653495976698023518290159838023518011209156592795671698462057171891962123998226806581167188264633507786354423598334161027205946082884781836073148293724456018764481032403453813630120791510215471204635348558169091352581936623029826647233477857242297919870402067120426334608426012572854224094187904442521942565679926938783800054808825669247348915968731426244929247950668148186922088531508165700000965429233224214300935493085872623306418519478830862078225602639933626495638613065879866527329095075755120549092271216210585628124827175179696027460898855288751640744030853133766198314680968860915912513531636192861982736046237436866015304601395375801632285290974701321775772041972153837852811535253451298955037904163882137657429903867682599637000686185875149934845865867589037990863909380478200757955681885940223995056908045634260652421371426108324654861824242870718583113120552712681444445458247838160735425024110543298629378887381027344713741662070975197173054432980028923931659193677448169021131571785562242519110795284956022465523164013535835765341871396589394702250192167293061077136507501671141101984490673269143970048734672046323093930211806829497105329404979929527901410334997189354165941925138170884854394628398548456729091721786124548478925050311332894452601701773273585573242895559807712360706461224277321598144853962739763843741731839594616718263840510259913459479358876210753956013061692908698036053694406949573427747038635936539050024621866637203821572891840346320426067010099102555138788595307878289274852190312641459715547679527832027339740689809597638771166380869400736552679332427538200199028844936567052914809168744064106341184312882527937423549032933733786476353285406766070122025998697106779945152820299792024911047122044917924322367036754563296917427942206338684688031590533473660215431627533669347451681278770663513955158750872211171487327396980525099852953775363070418430944215924467950905159195577442152868100156442081301143809618356734538167792049444404695428155648483498388203071228699718013756731242383883248343789589995695994105309415287425925001474054877777140299215973495382920269460739411885176041170754140784410863701971623322899765646328586407848934428704496241018276510288406118879883045714480707442450671941517596959374450164391730074935439224134515246208004561930674064637108991252861586859049447023046318198118647295326869931577258049116148101370615002458040925683144189321702905916580689417706239967605854542594372573072286049976083391384338310176819539607397874584592000933284085708962252442995015884519459969384422971499927632416012351504366939404025319858053861797035359609151150392469411083940230386679019497982206170285707626916920230602902622484490362798001417310075244009700943243864416820524837583147940379584970085980589255187867675591110646082564302747200021516298084331444456695316471917954519656394226836520844958249895592003970082155878475546577630539637244784414125119828749177257031380228673874634373639959079928533419110194602685061951960963489499500217217344396134725089512447730598659244650326523512916821783536909270753596909781895223131847628211436911159329859224931501227489246152722598492108998408319893881113988005580378396701591177427207507845869857527429258818433656533418793841212018642082500852766655906906033261270562096549519291068333297942318621176709144018014427522041503241659748039688354454255295175682072388113564174284685748996688887294572410507306964584108625892988374591042664455009997797315928246117471367777812639531951653369837308384102048433777261906397580748855361207310321462135806380514931007979798791137576829162735383471688254032743252085796845026569266362062980408907616066634410390790747848034715475423880159387748688812628123428169056070689911899862198197269572113432266744904136526540643405738364375384807209225468372564940311526423851838071740234976202219699372855990896227006373857233557293117116474683252749225227689523821073947085340308532845673129794988125320324771686752726765774663259906594631855339831112643856088758626508321355714608473963562250238535428766423669071945541935036504792112652601416565188055570242295041457251423395517183955219456014407237158487153610096664681584572519370091669403890277536387295263159096449728146329393026160850424246596206724150091793696808983960569133766649862862059442307797083197551364541272714288814550859979532840981974837186255258769061844429862476228173939675795703724735816247730993466440878912147185877605920397111115769759876990749125261651326965094962442881040842447311609254560615423965888984802253790196081472803624194598850247265506726306515721029554317005186268207289459311281346556467877515629208040224440500784744867336764562169477521851939929875121779319696519582488364679241192045972102715906709842896240583012087415994798136299997082836319754398415807987273365511064103580945204729492174931990316611056941617950979877971185688689955819404118949523221279433120201009675485031992970071099902851863251514338467235333329693971883399673192567681981314213915401740672594983441806740232044075386728184126053036688847127060378376306892863633094515906540277026082347688984826449594318626018140884025634334453821336211212651440251729805068955475900537754561158877317921649995825468832879675577868088487914471049111035145558773873289337715176194884159290551317294949736338963634683051858395505261261235512289329243198047151427408499266319095579344278889919834707841540651714952187403196389604521094425967179268000498642302163995889169307910409715313583815500344073939559080659395153087020303143847030501633047621109167377994403343405805767381914883381479583633728884913404507941937579366800781438866961791554109694051571459774807563632645244138281042068950617539312327048383496172859218827109958977398857325515980054899759108859061478055796294618443070700413353855481086310393420563642229524938579105720594143960347885229061760108864269716990764436935728985428344510848474993944103070502452193240213544479408096364345657075369687375670181667225093829875072914430254124288486651356542382835603301752841101809571443196385780225545049600417149577571446410081598371491122944259246906165461281836340160358552030797334148673738969197973128359643710117281288570187360807781559705456186143139767482965949413449445602291577394355276491566473130559479604987832678436983780519348558402050014642254761663011048620701783283360276463897264607806254837460396604421592589798263723391168197485594596313401673478130400934911015280578087317913295753793171668315446014379964193422999718292221494237547806098288125703520122670225275726534085686118076473551642559074267594135645860244034110821144537263480882226094851635728264322895930036750366457548229700156541194102586337560797181032730951770765443677020806164526360264693230322716904189602318360447326782089924085387337464756308578482375639444849177062897222599215173236072550038165170439400371968235637182248760997829065720625154463961128440284451110614710212179929924747288810988768959334798222224698854118748835454895693422239425963812192529902699641611956667822316919932998185270025846774563419722070080444778547900743621113778391892996246954420821799227747295679358185069324728325744975411801988354539005589856771464477970277338641191393562338682605566705850188805483530868628062416061161790087190221368077140371406857027976964825933044624699258467996839564251044922809447587605492738844098162470610083961743808441241370948315784267432275816588437874217944453911416357519130451225837976259088485593521167516106035065775698151361965292768522125323171347383681123238228985596465883816610401573829601103890033392766305151956834937098934145407473595885972902377234816204670514336559733944076122793665497840061133787597122894684817664205630747530618158937549968809002109676321400506085679083989734559576191278553782227545296704736167172741382645827880269539232807411792002626296792522586564561865581006442341227364757305428487901598277320448399255147992033024470288513995625834697436776717431732270511198908935876404260951103304198148506071872409166548506499752735066178669088364311257709646307333144995499635201561637787034440253534599988088658685444085760390691399776465888750141301045897077250982181380518055335179978764733930662129667589234985479412752510285618267482964946597705291158086493096477146236524965418398925959195710218637584359001824878038257390398445677766952921980216094734922382713177226471368294113843048982297133917885788684176641250167895606420611719620157025120522379897980678806321345504478542998175439896572143621473376020380631318298882324468555284434830342667713379090975156466252755725666870077723988358372946620720428714425484162126126147090582617322252229761117579223273609272404028170905644810366623781650378399229432034074608743404255363100355281048187974929986407354037646393070290373763749699142428886731015678547448866647313520937781541720610516064549033173909569596722387321260582700856398596805266780679748493032137022871242926807215245181827922213244637103449040912004023661926192316768225696415194371072025787620903924847402347227691774418668029756731019531375945895019382341209601252873629486531025514154098194706146564503050523905705209491288377934546084164759749507778156139348300493554673850283917907885206754222015943478856832517724260389333730104379968700795332480429460259828257223106381496806094519831365584136510878086290066032296784214259609118083257268475999773513902741644662228069609567855507231893975215727030552923605226050135621937085948357609691582587545818917836678673905414681204701715849559101877619246027916783809818666494393080122608872970274218703204645878412473007854289370428415545327047550388979622198019417252425397236426418626293421423015687533131068561077039448408280232425841053800535711847910809033552035841504383535511656840780590490997551170841236244056045499172201641518496719771374794554351949686482186586150453535762604401725076595602635317088255607326149223094066498741915799316560195375089766868644649225079637569069180578112177216717652015479862167767156033450337568812861786256404532575110845269115210561344625017200579312354583574570297775595984107125649327037169989503071010478338369476906244329924967752463177141859043639455058176628478751738476830782488550120620860588568350481278246996404414863381590292673924840236471741447039712310479864220986302988326019350202151019551607765446081883986037971214829012996036138836386214095115498373323570620522181830269037512485409815899640662807118147022379368752373969154688819835193712992208884574470122935647300169710206867619096812246690318605723152721582623812611615723943076568536819762035107241162459882854639504190458823066872852467543202254894334117560523934278268313147838985587336856701824827255767630992730840146603472603466417908183259293374001878634927566238192071244232474970698586972879062483046919842065025050781851883557428612938453240512559022520553116452167968555741306282650524781095519772475304214639405424408967281008168131157648566408121968173184586320695099364350864151133239211485039727951280520965014149067921965815796495481156518710222012153380404885193929102431863703551219991078130385777004634046602982058602669373245668730515913393098518079397275369223491842383173322721502469481357795053686555759196000119477416100213797487348408404981723710466620034519231014681800015635872324653169909423254793122051882687800078503562179373046393653736673509478494485924094044340215775441774761557962743722039513787095557283437043758580672261578562866744768150384977301892941657381542760352573876225255288474258266773632753109218966016182474139765632716938316157121549604776954983532153711203635252729260581922073130877268366578379946569837725801082317689894311934831021248839893172882411458933807968448743564065278307316089134987261437402537181010015358735506386226305358443911703156093963372015484740269397994329115334043857584968935328087194421214265064652088147465973228284452310587138190326008574684109823835224215901672843091474091473697951491279110390872165452145278327450274836383764341948297961958272104235077143500859746002599545717041422608120011949366903005677294221136507423770704930986415568926993070980035662875999908647296831213209815456685752634889645666072780490247146420053426698838589714543295506111624598790176045918260557702996986580793936966858862395127080087590159974040517584960140131302110225045882655957567889292535906339186271673429981472068340921955794605031790949543055668476873951987000323136073122702901228452330534868527552634356462319163342301167464906159644784786627100938602231639373298512940242394388918562670417263633581566047932036373318626918442107537590611948445460060046729902238343180434072733389430193583274186636427030515790144431653954124942454831434999420558717112123853893641900703624556290682351222602389902230778275901451144235377854630729194584336431204266774527357400327348463811184025658239985946402501016069469405803260692849385175799542426932298368998808111499092689688549851297894348353651994098728598001199591201751154027041774439474136958410580195863433060025687728016291788098395135104397704581280019842025289387719876496742688213619996775620388109641727907179423877981637507586191468225050129520758807253656233065648433768019357168122655766858194375596525774013252301370394394929841372717388402192488551028876385514965405021154302082446035637446406488006954479331534246682912332875408768422904622136709507848614034226760967201898835652096672947548748517820029959759887066088126200350120757349487659105502892818780833300961485877472692595782195144073773622225464154797714613458122698270253053782718432582385111485226477412302869055195191172627193369256391495780218981621933996377577416279645994808869967264159237725966341079077686829525952054126724353819372257944108870873692348702097486058936759615835905849193566252225603110308191750744406722258615969464338744500605467649248090457964274790609370470638134758220605622841719203880182363586894159522959466798193977089145426391656133008935725789876529562556102819296167742482093483247408643856506923343919768763919913080127962338497326320478515176566390124288322846255121378806500782187550205736110075691145860834870863516544006446843746866870398371773118466039679782240963677495304864507605139211306879265181092651602200515788849213253601347228952998173563237936082312576277874534458786711155860044747951059019646190495538793061756646640604052375605253723434633773859373724378697298061861245327831097789451662485947206574772373347477039644680424611312558341919058098197638267475029073265782128675148357107520850297909810893347973410701142004090244225584117362204234375958848188520558851445723704788189312385765716829268494260521889003005663051352296395629447321128561549518528601763436629228344236026458381232169360038534317341312478018403746515813339572787942976438597373044006563223889352155850862874989404295869922688453909811155371866785304838388416112150896841647903867748358382217005736731576390478160958067837488849890325632478672051899162038531360188095172505784194520920224973754140930354975808602052128284917617746333668642879613522719996151481995532454822021461202142758582378509364711440937085128439266246087625958268794214983620037180020181404418590921258816781733325377126012579500890220721902738904198655465443476703772014621699883388545519065172634577834656676346879427485556106802898523655484377564186109091161910537914557405069406922900584100000738736368291684868771289552360619446282826324561129554642817741846602587274933383040690169933913039125445032040808297416556790522205073126058483364138617128845598364757353232003590637868888829396041467151307205916327496730962883462791858981253857510781229779007900716319396416832791600733893688930731780053433215095398850454726329135251853096969420272415592150010177191746698496701964472381222782211157283101276983730544801596705794801084916854930447754194675259490640620403653411612583196361183195848577298850744262431527240442094679283229735765770873141967105078801101575408593400741224305769839483111702571072561489087320853770828048548161132401723364428929484568336568319839462034749020456845045587012340548498361408758767019683265909912370824383688681896845657603274061983865738096368545081778800109734226547070875606855765578433389331056109862476117124287235980345508203916894250275556942594515254857323757897444412259917740594218088050726265850535082005435643860955663342040779439193517602072981515455018664806966359158503209157743641508096128797314961817194183910984071256546672377213807001379281547130123968364540905943913362857555482427198274687386473073138379675155375872965834189029263172774119057164510751334698329804623404810220457910371746115436440686028622006151335066739843186329101374592879660099299869130002317403706445781662183795654878510432785985361670379927820895994800852711063283376763192153478845974158097199486133437958118636820100636541466741346948018459071359169340347834705942227919153912051298135420972472662220371229603883695810625236967097655712254719190403005801403854644022853365694211275551805356798350670829734374632982810537938258200293370663903456819743295667845953730681644443918876130955610430187830533718349874367551746563935957060043789319260332899956239414602289680217077396192539179803389773218076273457667485850016819724720517863770097922089372445423358856190276822194299333502983934206303433543070311246441030160541188753355641424713597068645608589271146307461027114450503039454714826140360335179982789796103692708223924466758353262240262418601072355515091484381684061048385983449522461751391740938110570704563140513782883559545773923120302432533970867857156252334738504244987870891149428130399226647355249562518191981036490943187963145533555578688493761216187301325148741943147912415220610917495301259847800499164563973687274826572466215964989919940818772592112251492686662294044123654302927255815380218412837128733989034264793135687838967044074871300640351120699501536351487354657925347945540239117771795863213762129330421774815885628147398462703240475586796415144929083699919198632035173366591170469496981468376503961696807531897410598725958707626116248592266008088744240112452794167981997931194651982577435996090500029621138236161656698539977105717585374956651115158310811240734657593515659880835788167480577034883064560997098219227686942079047512422772586627680950835711673490208132708401037008944780779295401988072651012438517294878504328967206319620621122186230718565213817271225571332406532096103561459485058686520774550185023915260953453426257558057885792161873576248531270823932057306378107618761618914399285620292293284352671097826695032536050502875362571951909327956688638080722311198929011466103977150059782874633328425108577997957237515410256132476311359048529971951777533008977088746550254009801788779603649447053922395123573488475652860189126189391141821988202587088071014038407805247904821383878334053727589172882048329418816939105401079266481087932762847311207227813654237954509568052050850009263203611924680100974633080161849952222460564895512814757094945049863891988420774909513515180452578317098478661470432348359564361990080925589163852041458807352371217027270276267988171335406005601591105490530648882058069084139412855533279228916813203035643051346555352078964928852290745332842249578838902984277008150798304171263113514124789851787302026343295545055477398889020381003745659662006921645853262154998925028667617357439316792602976371330709764781280571084076539533461679627887121362188629770262169186093976479527872229066247603594701137892328378551026821909739221998747777731369304419757704596870526467955509565342512671084134181554972991366390233260430022463959895166712643717777682006758597368355352230885587613523615672521839234075996633782569961063534584441040896962967569004338701959357829702692543893528510780915132829619226062924166858929901795740183709397185038244244846050409262970727996060691018233390244047095352212983609086727511999117986054595100810955359173431964814647283781680431720818108176315499733594110962254571484318575639886018160228209610560619643103424408710912013658855247327902339333566749951248573170307467110136644171756224909727725805616634623885266925786961324518336318255122127889249268068213463240144097598558238380263054396810040794759475816940270612925261423593296943455571674432959856770034609301392838349577999591608393639967323411594919788386795161853136019529147347135302166560353179899382999152493922885867204856396436036213464554691343061824410546553178086726784649910905971973356826539121495378269353172407709275041470006054037719363814545124502073613872547136720191844915221327967965122419902953477727078184818026175143321510762348648395241961124401488455218840215146872027010622854487988140010139734454132110172937745646449713822486968076109146316940788506639424929095105891850253153786521063863821971415347096969318231053658421669139708084614447935696253762485434067654703095537078987819803390352773748692448495627508302744214568894321065775094229277961623658492443735858208277371117094568941713825722064809299894354797568763570151084804365738030073485506983532689741923533472979574868823488930881629955695627595900331777407511421545213814319509965972495280770290366260320871012866139875835763218371177334139306060844667286839448406938988481835056926168329583341894374252582229577518441466009727833411684318404085824743875971267105541597719538802223469805589745329325024423272245105034779817392981712169882438048092778083666424764064548878033771394314925975215229714119300401048069403454978112594356853249086134460864337444410934749783168321520837664662163123989827722329125364398422272464077004258387772527152526082783340330951501517210352566819776804640130716798829471421611513730253226287207033211764165285054361489257503613204290615866787631297257331006478552060862622841586544935646751577822110140731599085942351062947495470335035130898623139314012770959269140119869397780386040277281503787847508034852941325007102986026207116926221342829941429242370249959281845030418525799040574642737231364621019528821339414942097721969001397922854200766435362660598842047760146443308365723628176819886481883499962993992495133791722791540558496074804207760825772605892661225853203858393763634150183099945858058433598494322768891520213094594258870093604376048217229598423051470693355017413852871114830416499149116715914256047232810163559984601045246802912115665108752844872521578413867234092111077583458280097438879106112718818849176282460971341095639693217596029952009249175010941990704881238443548113763549324864436545464246984945630775000768448335383934244917310989948060628919366234343696467131973888052055309559987720272613104317968912874566233405812778229427759116611887993746146438593978602069925391398304916304536584554416298528915125281945445008486836964249475910380910185873508644223226409853431303379010618762552477226813247631308984282933977856941078051431677338609458523072231888895647839963361157143260732139317310838718191233878326391045718322529428739024744471826471417027434757633545210756342775879317546606118062157289612020579485204916117667616382258655132414074813250307949466979699272255964487518893941182690253302719696545352314348584954067264785020217310167054486501178887794963698448565694950217147947565263392298134718467626024232493800637096709295296433653880927058065937677356363327395013985220705631923620979273734527405178127214131412958097999469531380227295732879924557346149722848666918846194886599721302344984957175443992635172880213003493101532923925431738160583847904644532763741711066564439768259512577994352136193451711495646037814772446370347994242227958072507094982774809661170478561177550324631322193737263011119682527463938778937440590941657933967199695009717554088644549976290172732323100362387509223158105386476066017922038550381039952222349636419151655466606977479422384876955994690948235378859742494967221527329610502343625782404546911760131261940088100299621024374260839130411671920546174812709716250077174317314561050548151552177330225239258846147845245492505462152231225259388259392263551811734671693492119763382568052221811896237313964723286523419108641356097970433914614407509219468819725336138755583632050308832459641439711380787868174030437168992728842138082484346652566718279761672418616379424209437705232819641976401555357208472193102469110942081667503281244206719420123256849706199432994529877285048123041014329339962496501775852820130432486121153048959345046946752296106493901106661289970013717020160795906093055117108303933911305518414037873219722308823371121190064738085526158896146920479556532296475838019858606655327378519086306554899005005544649816687509242362213328691644964493392648651569745893144467177646919715598813764770836795651799083330364776074329673382240222429096577264217819800862320624831355475817103861945717118703192633693096882159488800770375699974558603863452017938997932698611997077888449756930169046857898873735745256406309190093893735250019132707893738965280578347925241396606091254214132879005171282676903739708409679553818365612741574720838174050010837765810895941577229097683798048818016726640383984727434307897919401592824734341926860598113362975535922846949031833674630718074297760910022010163661617359381856304955174133082055984247499923644560744670536158946828965900666683349263087208238267403816943604986996286267169974284388674654061140059819200836651819319305823237007708361718534425061595053626386321048929390792952093372695974592193774293744242726475966502148345155840695035716698831932449977698326313358405261568791906813430834968546874590263846269122555853765300648204294348944468849844834357026547327010832595629185909413357008273678972457745561181506588851345888952120092878578092742408402386666786677569320598907730923920962877899544008876642360930846052374192769528098739372539936487937545185108706766877787510675882881952306029504650162972731801327527825335586625878955860857492423937448437596409490009595881350903518453624090577518855969656403096751097271260832722836550625182950868016620948341577175695911116314109165830110282877322503128008701019054036196201720416085033625072876220908878013973864876790598712950541670573681881544833284358639336189120421616864880404659361067782368895203978177106607508169068107381389052623736687206495059215472390814389645887007475186952085189081921562457122405247319058050388183290327962813206709679965023044661210519002448661419136287033192464651216368897380323750919500831999009085516325681840098016208812330178909599649147523419361303713172095891759815057245649031971906539675460038870045248586285732290946827490834032054737266633505370900698810387675491793174079127534220050450786087096817990709606138567330896493151506281163061051695703872054422348657602616756011416144493266063080106767166491030077824032119100975090514559525480125819093475760188714335945196252546182114894327612323786323413271318590916455830609804793160419975999256438304564707454450452876830777721737348206891977490385634562481369674214588999897900246571095993934706844175471648822100545473849631339013368193116362162595869447679547541634106966041995845776070949781624868039428586840329015784190091164460083039796196106844365071196510212868261152455483392417162916423067295660067023418989805983632006721328655963720860963761943165428061081637324383316408563811761036222628633093269380884172612539343502879298553869169505460680027341880000461642591954786024120225660976631637885473315234123502703487463312471184754218109395983319554090513059801558725190503296841758954261564629845838102334280694088282645625130116886203234563933305726874074604487844575066756614188915134642470963637350187532422375278881832564488256503410112149231963642261655538431576281850840277309051098227093741522458603289742798038856983167828015720781352004469829153615154078705024079622642410205263629012011799487319416544190763246020752457582315669086184710807037278890350913814346198120469566651041257237865786701683624466001520248343198693976124909043690795760470786907849471423958066962829225798544718185331061352890374436677188239560683930417687843772751829557352396619181611429350166295088767891982626684237158412905409558918503462423539833617188351150770911052965723764374018551716316263390604757101664404444998982734879657243349867415736839745648012301520983823603860942107105669327774459984637845574356329580465767909996677492663215385278553542971428587409372388784837732905722288389572819607051483498876571945640932354778672333189833258058977160129542223437303187396673134095004744165796885631769685251490120284839031416460992446603637888762785524309435671096668118213288008933672784517230770390701473008296305011763016302607639891743563429603341909827981411889545660799324623958056158194049174192136230197318869221619652777135643815469826820169702293008267568646506066682153063257907819312544813911162754420550477212357639401509261942672962489171395305722465971752726084114553950776943458195516671678159629021611987103161662659290676081648494562995517377900123589181059008491521286641575424495581539350773670519552957821814161122260657979107568273060672099024862983468012230513339497799784828866780394593711808225590439314264869421055467750858362286792475502920873241231371596967221983875717161838908908273234061451888087748634405167861141380393213196428785305851625240120810122374837628103797800791989957817475818828452126648106743597266831648694890981831509898120970145416795292433930109159132897881936305130212000865986054412656488378950623683693838110652850805572119301768347365992124499616391331502048544195934839834810783745418346506288279353317601219643841599626562481479825802562040988691025844120813509591268900836702717692100131810918323753768040162873091106203742542038963881316344620318511194606587813233365178997415854541208485703916554342936416795699986812089802111050747776800772193926949916113821708445505944511494675315177376021599131252586928319803085009220831604588201410120870627901912714949999845004091593877783608817124608941711077857041682953679681704952223354713132539090868954796628520244031023650692377991809384182306137110694298949080175415021977744267511358182685620006252655436852171459651049359248947570234731467148248600547632269006357318546794032369048344035996866869424990168274879745997227639538153626744180987801213175902535062178415532705946410223278599455501684641230318521435352127656630235616905460059009536285970076648708377806377062893524592631988308719244612342464664785935561478620238670126237927622982300051992060097989226960124443271941573002786550277684422521979204363729616441755062437079016209589287356053533285893106791074316651095904879579168431073435952674893828645445959196687594445396634680127554335283719919861667444516278469457301699279408693741701878469383235133868659332183988511895816993438210884284756249484935872181210739207793400309384757485269945406554286037887645596867243502210449827970129344033165790980691935397983324900043964483579336736678175861132827335932738875626804317722406331635653948736968243114048248196999675488082667881497992503354127989625658671529286876014464399546608762394349273674755061452040711571752909143876870592272547812507508081085524847649310497213312945664626156784539575163259450789617335249523303748637884136381473488019391732051603608799795577401569976787943713971402555868060467435643548500722419825400655099520577778458488691516465884661317319158959386380343651744653627183945702021427513475744245465042031300968281566760537102678332738175155902614665425405123566767064591853737624488193734124709349311812315833765278827722184467794381953237146630857120969281171111338839471880822534848696561079888777785544004612655306032518819104866175728699077813388544916469028192093206795544225671745289170883895959510676511253316284376070399077041941260392537824165013613306284652246638040438885456413611682256937893869770960668694909818961773260565070288303384516365858753837605076077118329219266086224388145983778122090138784356175451821630896919089869745727055712443848331563592696576728019343307257750673783236828338101348899335164261733517942371369927323528689881332780529615223230209264633778194399009151016469343010657072622738316960354043577995306347431847091277461335528705512076763447982983776954394825271715886299456431404788995756317368897363297484723536716311777376277888522425224095698708875814886666928408511934483457456980295577211390029493866134442943484285523054749679493063357372194210421744922590077550649479922759576294990904264816285425061828014432460057240107687438979790821942643298176437104604512281888095610552849143433439625499735959317047899100665823473983639294064803535343954537536234073528953102169885540149313303822496019438704999092950346816748302847921340192890579772334514246705605150365684728460254187140841040447655305934884307797184701207151988901977240128000325191540406534532409451147699548853183940914003405432829159452422538449290117950653383773749895735923226537657726848138235410794919695676963173444611826034721800275907050366464847653023463978095154082027832125162156643960338821568268357964058046114864204439392747684299428282440387042741174995856180994776406855967509014240263018957626798372428023633468525176420359930655936412898610355362649130082414571259716541805970231334555835069357678948776308168992997583864132176412403373897072408065029459988838730330054706986962070131406997265308163226560196869299283141229402215696084432286657716235854962945041733530881980037621058455728583520577117643239224091192021541506175738561178244514099933011597945843208300326866558792688111217257398339492957737655366733504629324992976776675233667988069968778359407141955164371418723295935585261045494398092971337933461795375873127246476922436071695275157984318880092822904779256489072384862051762674580765313489665735062996668629856188263441138637735636603765015616885932183456688021116308799167925273126666774360751248765851035672244831747380750566950321013420530017152505687649226572967479186324673781431150090169580432779213480390910926032995645019810606921352498563721799871389300814864387868821955052048756173410646354215009181069175203663280259385455080991274745304882559043804674795872663143458083224280293407451296392046005809752022249563041672145080498255883198760582712882209668313450482656302854269265669785158394941319225470722293610520843120762726755501305319923284456585551887002254972997763721570482967012747367171355480196002337583690083308812542071858386454473101747568044439734760113860957125847723085154540680485437229414300524866318460048049072186380571567012573927441118382153344224636743149240834699565954396093941905942602095541255392917048266556749805537431589240053847019172707073970323687470305936749301969826492565022417978556457607543448974654447358167165444771962070652717801117816713842847202291844122528546864583363892510322142207800778628489468896999243496903079064830391960677932408365596075830479116115887179108454571583737284011913753682732266357006046028801179832179537017657371864438091640035385241510796906967526723073273137607948048342098740505158824546917067115404364348485774170273405315660695475563969558913379004132641409882149735763593240664792402524530679353032874756433182886193380540115369323719862331798925082448086070377348600049979522448581819919138440112818526369420230268452234968486301204232321593242770280180668322799713860718271015653988087551883225994318278657589428601487956568256050972471479749487709129088915495490442331533342623092995896274687453082079183372328798048718920335363365979645790923040564546847345369129086073155241986909587518857589546392746415131461804366532171427051716759501589990864167387754547473538471860414538090150949336259184533517057356541549720079419258372153064197013486696422878433340936377360040299548507348179391552671181456055259261421582641222365619890055379407986945022041727453279393131077244469804346953914230160050296657028657633266294821399917891298992574366070041510748923557798147309462467281041539836865274042837708302622650261163271847132879377638942551025680941648505166897209571163752234627687384404518255786482737280729919933500201740378202378078464662843462188526930398639925980797544997303567606453948972513182329981783980811085735838074719714240269619398617819887261005575152922295591875852587741111089365717424703858429108382905577273301770701971777891241847987031366582050048923063539110258698294767464772373475142198578284255973028623947968333495505861707309633923909312933942459059701288296991345006843177184376870659695562110946394721014462380470228949865587041950111091253873876213888811874448118372332972605379117672401775587723159362345568751144007059961200853773238729710516924772024954286296936656496619622627183203606054436022713252028835001213434794041845623022914643894155409748528319637866660672082873502355938042803027068988382987303831462768612970586075810399993708643049599181439293211706448550527540553079268830315707664109653562430169618626820904922142569657403319906781899059937063611375984928806523797677434834658630156793298850496194499525999445899595306356914148329396132185960009035043950748889947696854208022260978254863552271605302543608791945785737419852120900095827501831833433984184333881829082839049572488998063903970544976912590565732548709944400932605671531609787550104764442205753514469766742572350580463507916416562657200060193927273523425861296737368956268897603161517390752078860082719822195173502824573298776467394842813244951640854948000124170887493447043102078721032637938436198654394590856429830821761114874287734373672988615803167746289821746797707394267202047570953677692386710934395297689113364658884865999412273762544523816179746230152848820522034561986829595896346668818081902572029170188876900552869839332637017784078508841607934090691750165961171454274911291933255641913690461467720841388224727231803434144992731971010454455390554884148866463926366060318098661254486477001181161421971644455866376361730241581941888938348033161672194137563473288276524661794632741342896341174180635299758561396342340367184351165511943864838456478439603073225410900257467433987528545332755379747238955831876925708262313455455022357003244066380539208891497119707744690830709577309801110244579912816136949535830655880876843814027624538631224629540971246108024781141988779325338447472846504893267267857535470110810507697073863162638970645129576487863842513872400362345602461980384381740676730875443913793768894979870345663355741240429113572157843624997591274241172840333447205468385228084174075855806866170219089973044590665234168576501958317381949342267323891271722464748092295624283272111599011732855893292042441182985599568769685266627669474218576163385263211507395880460841896166722413563483400987614745750193265191455755130223270455658509789917943813678843751566654261844799572515447384305724149183191032486367506359969031828550746601363564234524483671434957922021563471154079673167393742621821387874434952410819249003330516818974899090902708581029897395503709853879834194757801087961779231501443715465947786384760384713939641950036572198007605220950796489934730482448765924023054262543701685219531123656926585552333299943948074452213748222659553435102360836773240200181804694478402845346005680990989992002805968148241585775083902919156300161230803620550404719297205863474116364645734262679465970937130352592667021655834463479871277052384575896143193151937419685722940477932822766562505700032699891820276394888757123544395572413021836357328787096125923560062446296139452962429984553480474521767062274206302833648275573355070892917966454003610984528584595132352036897434194185984577015752087085479053358889630635312874472937025784033912672898508010161903004845089751964578013784216480424638144355690983480216694737061753172649434262339025371702310397218413297597010590662100463497921263397370567520741446593744122728453149995991972375707875575744501693431388367967489109097649872567237658725724590841771268020918476190781448695048967235081764984225377177822837373246255405965388032120240861819980954406918205906137948327860899174851757050876944935684254978590398291892665025277923548977509849148717459746986727736128603768295419238167398341795617506069039319586164581102477498885025440773613198248946012703028605031929350570666765088644097591247074380085777375343224579622681765402186185851261441119241528207539638455733910205167508407140000786924680325920435044608610243491267329258548859553701224892269705993598059532512539632980345190828304018262799441675686876454766372728399773369259282450232148938090173087287855185910861778050268011431522199870525274520803003677051159132535149904362913016885250427672123952340508069125636692138308200995485553276430084736073971810932193409139012326267965413264746570666714350567685440886177742298112003819916865864798077104127661809775263388847581116237558363384596176332112241518072560976987987207578373215249462519649311649894925596263023582190277429914249741738955425574688450055574103138030680348000310255143371899748333148075240746492390015004016190867762416664411506284500667718309459868789828064432320402505862935892374136142943914942861799823800917280562261539464430088996715961996865062028245406615196762161389035887657048804596090583350516751500784384221322874595493068069546574380489098777562258186232539595488650996796754248902188200620976163012194230507411274888108752319121162922500499667019451540555004487610502966342864843587388701157328697867861733322405944193078716711620967757024900424738622923982078251907342743932496544247463057491572717003892514857966642351714742009558453529691162074776219869546880574966142275372947507780231362434262368033869739079030503191108640689756023383809153923633035701336154988883536861329354810450455689683212707468200473035846742550652210522264274394812551640459085612253528515926360199044850174717688284669631588846015027011777586288359795489365080245360039039143189042336677128364934748542297552326359925511813531172715201728633533065557329386957074995285562836759116984234058746280489464434605823450936449153700526460753738667597386409658554354443140578317827869716843222995155358724128961357615234333962835521500164388397588100057302714339586530020647491877455037341172925774313602057818482769763816684884885533380927172032359389446708802443927013703621180246016779749624489780837798819425875955729094901217814247339604211160685567514816292536628002965347902494593795748400971486843532961575390413753479102421309738861295605444915311457019440025763925063183908265616807628825721943278355292480425623034134520992730812085026554156314716055739096089689626535577568325357783418083558009188032052458383818153797496472195273245453458329010257832657952147133939149764251666500867952060423354089920392011080442501717774827093583497749509962071989169749420644142309587386286920354128150613753915856221074687423720379714529697754517582171457614308309946431067796389848182430280789597408277925410714084073398030449834584632451457001914150521400734854112136269600257839111726288656440099699221479658403255054899669619384146806280057942890959957543089862136970883447309061477424044207666584892370727017981807986852385596893712406628647090046683770812374185851948227283010593658472705489590465637875766391977633008384624924809810856022093218717644528472534839075004147375916823951506609339198999295983589136084905967940907593769963028648347541703065893422925180319778853085283700227651736866361315223226722319991076685268771664600603443089364553065700528104995200566405924705020098255157783630936461456603037352983779001139154678522602982281728339952131341532353084910306620388893206304154758039152162033575480073451046682398230517160667905008232919272275498115587101433647420151207265720989676154240987142669792705565252431411986757476396494269100459384249467623507627647322268152714383597787870414433235291105066171324040790408693370317223366955295624891316107003957471898570386444036080066259637711672597630058602962966331567677838960334476836947772212241647685094723351488634677594607229318046844914602062410410314218555705973303634716272253698767848408738430806514207833395857839119489246865045859108277438777119836535675852512520820410593606676951786604911322771970748565137708287389226721160173426691580335012635932757616472105226169038640891498067511788173589452813762924836165193784953909333083313163008493496311119330647318274376598369518853941015856673220296593481706657151139785510174861225134252513598999314261246832915022279705478830909111035245853554819609682110211968431184661779616536956480267460883364860440354545412399895393229393394289071018641382221018899610951279172513446455338844006110689270395232484973103570173544881997963525725881332987796314976283020371953504727099098169008771230562985583152499772407413433622913365915705619282361854818873103896480117720372511498694397281432015682718545341958673759804406219829355270817189623509254996335415425378250391257127470585587337090812614367337445904426890531377416248268546309336994568568040063266716493968318234576224183567562078300417708716340606449277530718625164780461715079462214854925140314485743203707175166017331654270427383592783631199817092623487788924819874794693327715538353859692099826463262816758365152666730430698716432123687207161852562829052114975806801405578178469074355485168375498552078356903678560503632679661021674154334823682106227172520337641350866271532720025295394859925331684070774735930167717316018791520028845213709420206706023698338861445645973509380114369456733709997671007880581284275682320092461351189014908116656008855702484083101064063869257487889120064782485648229994875239622229217587200782990881990206841322471167591207669806288175187161829684362669783503048696928084475017879261599579160698198399030862383566183564547274931164484152522817054396568749917001669398480162083546266369513242139720882253823505510002883977712044567923583383035950819154269236772285748720782063366554402896438035861758377221372210148252980615222715668414539525393857843054166882745013497486624594485078106137542949140682627543906608805721793912480937334297073663786583588629059607117279717339752998214204146054602128026098331709407990098289220436434751358203400295275701256717622730674249808848859978047489829137367559755757042750424540090555098193055550773346176427362395423887102728384637306751292066541027706780493907777167378242718641131247228439852947738158680111804930253055170021509705739658447978330054592310470180833018784354898266416466613855170057417850888729864963335066026133128917438101764224139045033505109178763210596139802758329844046929467230730705558202859027759052824899915829710686547079553432829425545674078605198698438000559259298699981206655629546546273158897218501398466764949392538034962135353133833494589850373258889308628675755976807597001661296475387917872617218767947705296730539533858710915082296222285380286365015379027673748241203099603157991106904959751268401580535289107135215121431559536896111446392645590123621737409242174555562030217892324744071893491198107089792207864798608936448512003323980444601587625505548916614953437765240455310582120783334722513465143740418630200441030971124987874850750345195037625068591861341587870572211403583526862140491450087038682755323719321107672292256301382445023157126066823302687968159551884018303728571869048582325205591851302158849856627718620414860512291230251204346051167176196729129253222903152422540369754397269425798953568025561121761304071573062045316929132503854101753821116372350058507705677741242556091678510450161054223319396371431138314196740734558780723147206663871636766864707907440430055526535726186689334964383716962777632196019911733034956125411898494958043153858079693658508523547430289542551361648373023848838691380324940580607587032476002613026917460233474064897447436922631639184746946315364974713799586725550798164223575947480987740053942063295252867397262511246397015845730736379069038039127814049193373041456581248375989927189287214461884320993839961108702092856756415599808772434538475657236142523144906740611261185341576646783475731294648533849747037238092712037262699751099583574649661500857523801305858932019702586687524825502380912361537134953127545016558852293174293603759739853532429371667968517045037184365525075723281072299439988211184003994436597505204032515635882695498530257400611320501774985024457213533580137968175654810362223028035956440903056434932929878409595099640152798622632985114393684520826207237494253551477409348744163264437262165520702808415031228599771977167652759569322211572704375355343408602386848299282548100564380437814632413376482375083994501047604118050458085626493563915421948445864122913412706562881329532121016733829801342660348385270244988442812453750850055928551391121303568680954088777781291342653926954681860550444498310332455986978539024892440815651467441082283510742584563210743648680732379212340729052527271224985971955279438359143740023567936926312387566746964791976128255790745959171088262640405336981159282604442846200173146198460188859750841079502096267591229714876871320965743727072595439017566428691235249404167050643691217462479419059327569260355634363491497103325405816736577356927446217529837855847274198110580187517864673728754521246457327733389320989929616261910395255323896577483616753814279532368213098416301465218865017498521039725975750505774591273990114575844136726996446619158782581418035832572858145994364396710436586524224635644961620735280062091424256326313361089874136865756954063940980259529634662799488765985259352563373830845229160063840514082962841635975013979639582367616591407847711699260632473993667497807224852203078526245920999899086805341675412286248778490736965576004149261099236415504280762007956080311666361000012574162731230232403261467661453615195266554605930590995275611259156842400803555618104756654814185818929489110301596619278113260170117412672048248230474116053970292155495922787161317153946762299331827255096458972517941705289018435622492161976412502948714915916790000788446744054335150690747537178612997491421143492200927073611036105905957293669125959543276430517088482489353193230944794254209060417164581835579863558269158382723733087633987906039508365840311944699933861015343594653388675976555839852276212864812893020946952930416356106143489664717032410534354456876549683292786219489264204340764718770788548150932137695423998423681028970154143247952950242250160284891841491756723963655455923632469860274891709518248567174321211280688752782446535527813750470433945811767723526277267656262901480589382222940002334673872215391258891754609955985677778151490703965122713556383356617322576736965922370915194706155979730239427240371829633097755613521210302150319137414668185863803180158554635854044129698185831066966739257500345679201062295381246322655759642752968366266360882046151760300712954138105329649682761302592863879579650108966471459882882907630711577106538348733985787456411443614555841284256281390993193357671327676326684744976188986845393047330425071874181345304163833255567287459964655014376694660182828667770769704949420074502923212491143857598598432395286458587269499028285405808753537561010854211915223369847761233847330566410423701549328653118871516329385791718310880539141282940906439564987894569374419267080611376614708565669531467126004455885923483721108018629532207737251701922196049105872530637430669372415486133919401359768138240433995615905197776597351196816859192848996271111058287830073252176001952186746038217704707105449315224267973781005982582089186489011511723060525259793429031445216047181256364005975747585457559522596636786325352035871324522723182019633391499333248715486868359385448768059158119447212501658599415189546819130459414631978999349353346086285084657016834738734434998288228759783650917620310270938864049730921534625498087868480975856840831473117818246247186352065245574323164019473463751228840456311182868811671435883209236182901776222922842858406456435992294117990952063405969284298131609882894234955960533044423835770471390307500699535750734523268058297295217387544364113417675737362903554618280326804700837603602155855075739331693583458513380100805488746592849912355370388141353315768420225293576326902322269106924372399594604591713260707256303305463552411483396352336406928759307089541099323813769822272148668315417623554210678180389241043639891094305498583517400190473756164077340925207311506808370247231730087198817873073125786315090702082529145893504222595813524695595769270183776515960185307946927147269679619133285456792807110566894379798443722351565732982970706731417501748119982909518022311956054447394346083950545966856598798070997772931711305385524657148341275749330554916781253336704477441437361948612316898440847439484149337185390284925679135533541032065395072229018221834342622744914176195455581935080897787814673538212885786636462020461559439154967104886581682128430968768158054648332210029180476493206271278291391712760733954911052241053185987436632858995959902797659934252774708787597029030142095877934429103843547640385800142621233473923314549335136456862563811519084312474188957972540104996972367160246622934287505256939052798986370433922126718333350735811959647742599320591617541422383848311078670367372066340423863167522364540232113322812820139261413768198938514442632605833010425506398747206658641199862888291439822960660241419461850574382918714828570667249944128396756298957725921008277966706273337851989713003169137023334479662977469741486587160938561268359769370765716695270785977633515963351605731497200420788491047545338367233270531017909832297976917879323651184050522994473052685086783460280839131278637415441684007621780764867827216144543272632443618850122173619791795989370462827700851559398646883109822901032067116241046745744839468882815869643052792874307515139059468221921792185398109889597213882663993289107310406148678070878864372221167876039600040178759028582630037208693880031020238176368656622607488803968344391396612105595778696364206116695604296236152399834152602388767620376589934724275988596105780361907132454270133201600407078530133372827863573647020247802752029864677920928223505409050412213260802596757132907937751840665591863496665538867486270620499963635566237509613555039378306179880783165364738299109706484793811259182171699025350885655564429543857419737589376412525938407003652680540406598296360406169199198743414874234209450199897877246324510034880150726114832500016734407946499651997414189067114013014316838420815759853707635982546186948710819882589895236026876712218877824290541633497674119271984033820863062938818449289390675231094080155343991034498279742043219457173698713178502103807813561138081784768241597938843991808745759905995077533982560295408801123333670468586659037492402664966172409190785339467179399189362715856048502303254826658152568416962539664505781114555618389406140680863389504367153736232037766623292516679093465546444420413487953836691933816536428367732210819549177115836881048215318101996307460118472287217884364294589921458212257756263710724593825100204665009619565088274596886859371018432265897133088109145888485920156622163935870752831193654999664147546865550963626007906050837717131109668321057608037207675280443964389616868990742983519398753209924635187447055417200013707684405036990408028308979054683837574036422557609535051988899004163237103088869449663036544788464126669715291332743788449057530959885275861599513942431785404609446034562498057327646470794471869255183639042966537089238586414353533097268145112884605079166554585756820222840576502277570159371155798899257899465604211858486762117180946712495031913573938212948684295642261098472896540108433443716495271913729514414971823153615608407549676649456037924117717289221452369908716607621648780374558424843103087403392144409926536034237613905333994391880548753850144913173492792019216657521942727840136988387932142125409849422585790112869195807803114476280438470060572877383646220732098867568197572410121873775054660625257334359759850657418851622051107341193229641615918368132482769227824353009282016834051828557406222064988739059135455390011295832700381787916540694286837950732622052572711779915294857605540919683618530508856566813040122756917193597144474009216152816648250097291185481015826805488028966770977583884100476309200172334139390363508317354560243072966280390197016680253587275946883245737360915709662336189930348680244319518019470180090915638506581379672390918691628221130991653848721755109199136706138449792007748913106736995549431092850605073469530212178260532847225652427991041195126985547069292348757124299125291346148064485187252248029374846055898249239048123744015861389132403300395094987202254906101457210833115824049936797378604049588504408401704220475943604668667362641828938888866757964208292330406471798819425415632816327213192985029605762505559702484723793920885074267282697162187974403253321871402111146667771948871006460730710085907689477972370177395258328375592975529567077079415451550302436945897877713587971041049873819481738104717505002888700913518991667786007783347257068051126159964645207318486518155677576774380727836392606771108233077720003890029493147367478843227334513705318254991157556477052315433686936330335828634584648100279847868603972994756925592402949864418503997609595218697489234177795912822337794100223040353623286522431381736250298419184192778260894527943611461278652415245190575608446033396241506514905452315506475743635308439039145777649918285682580008697314274721156178671632094138872284560004680727330276918747604168973721840943273660316469830000829078157400522851499534217311355839916965763519410908434949458604940740758767412328694607913382469272374361593956243697800125280623063276279269950489516914127686494675788572425066794009171548585765473983632273473359553535390305299050395681424472581333079776848196471460424241127396610815252912646385115730430634984814915989271646624655416911545322484942597191448550364559132770291679510440401776476006899246563732552945039924801818019715081809035347189990970825214989363390058999299562896527246841105593451021424723731793567403359218452225565352727300316216617096628509883559025188123092713829732278671365685883926723459031692043266868149744672600938803310595123487965716373107737615831980561985353358039368433733386511991893485332096645272928046608803073765477528370528026998634180941488069618998834129676923990879818168897932948164468964688142417876107979284380104971037611854581452334248258951364888585187835098285554943496206800144139369234805824875254005370898158373424422001790768990136307677007999469727781403034631641072463889317715975007997947537609146771846954257752008087950492140584890997305249243319094976598677516989039649024720526530121021892618764182112025911127673682515249659961707281680333961225892565582243368854958966962910838301118826023815616144405695765577310294419040739882536708569829946826707290127421832933790626478203939183696317665246941389979535246243698500559894702243653472631710458252827805141482605419790996781213997802768467599078291707571369347500828060148230124561566222722498902039641318575938624911282829573475111319799530857195432668253925780090447829871909729685013142464944500852758331709268494641853318392022992115663653228521466508551183662255270901394344895006575277023192803194221032726542952397718112260308398786296187593921150033778819003456891950398703778234994267483193226516181705252098963203486768951570053636749554310069329011484392044923444147308414672978393843107771779215240092068509081561863060184995802323357972499288049389185373438575515542675818135293081023415198191465909794443155447950219890621700268956728610317979961156459358427081629164545308521293606706412100089847019838603877484400261903495238915778647121217459444676785169484941807914117558238913482874422125957312420252263471042660371626987894889917089489274373394731973082841659052420288353617595325977612699551217081131277803349392907715979719500761309657240791817921378380107177059204460127729013258637727849118081803886135208960643821301708595659755195147500198935310488743072326989715429298720500558822978083180233908015334972445284930797390182558011956489186413963749511637458760300851111230204944250566935753703111104338773465477671245239150594378586951137087095330806265997442146311231261528239893091027810220860290674162424851345701662922637560523794400288990587074044215496359768103955563952066205033709733696663502467179964164827407221886249160073548226078715364378957764092823464910901187653052102303070546723123909485960684335773831547609398214916650785328122936579199034463086163865368505409996579918645218069877382583119744659198309961718732527827860345116583894590415294945417340086570969355188026306162599629785730587863111823597948727594143191151209051227658952236691118247388300939258902251627981760544037487389213712770290909348937777506520984312379523118361884971540175047078210783699817511230806819690084807525635838329369321514373825564146212549459328124890570974565630150749132755786111528678720271301649746702447872244904148995769794068952388202155401960796012488002704868939550870787026221047427209242029697715249120516364843612472456706354734870619780532002139589084588145294557934442527161013457482122352390032703598626694684076039169749037114726411876924950352795614728446830591460642881715995496670886677986544723727926324658416038859802413712197308175469034326157530850684449909416949161796766096043117872436558646927503669530609634222244247489911113350620558626236805862174168611039541441369089392862075599888985974381076431369686905726632753386024470546041568687568029753824911463529519022833871012816102717467552387644297535301061091379633667138096152183065273493351460102694984974406992907689470118299205173896969845616735230993621316504993224860872600252368974778998190497462129831674463032122437289027428251707133467066268859149998130295581176568633326567853367919872537081312386694607685885949611349208362602149135154559126765086541722906452363324438185936424580395739685508168509890018759278810081250772046630237151198337618543608424026191946399093521009298807641621711497370485491020106951633076727574375892318884831243298683334041374160367849957915352996067064901043876438897456253319577429982447092971681874581942910936269013031732237679190102228673579973694067307288910202261398141331980497210265899432998000270792193336223650839802087687042754358279968400267776981829478815821557639001693021666190025174615418800643031659854380231401546811323930386480393910786520777945028644632823308912587182656435125550630934060840432723935199727170069580127944222551868750075597668872603229093225930577714106805829642811080991003396401554968395719876699775978941352516002441671837097729323720415743632335315749737056217515778240781964668480174178558168333863375557712222820918553148643447634685931895938317769996117742994625500703230671225908100142798935923138095729214205572467966839790864082272565251901990915594619533118955782906673925519480280944362286423618111443180105629544371196530469818967252678094380058841287874307338268613722944276149691557673711297103840610376372704667952385980043590902854352020606931397262127958505401268064000198656014493751863872871193820529595342802579695465897591664186032279964905362261036280376759394544524762398691097308052373922565148980409500156344164881115407700691313137506524886415344676723220779348746648210498569459762865269201807963128722828802344184941922401123638037992968783321380950238854088772524294798091608022742787334899315123803491767310431568734323783496593057210307833362886588780304833908309186018492675582658109612199414425941422430191455594905586122453134728474288268560721785286012649154463281785208452771729652573895061778554113701383611438476650498777990484124741155862063085418904061973398005311521404093013073270399568404139927751131710998387710906700941260930926983868442125506089332590224722319996688625751273821179247484542436424110323509549673195134254733617696223275698411839506893062000225020354371902380717101011650713597308974796626604760653828806841821237639956781315873315800470978101914797702722940668062329144356781304818276002736399477433351493257122979923985980861119066144781621859639958742163075651696311702255081200304780344969182069482509774162389695034033017130156700321241296241425741622015095402639631076747247557169330079638891210466553614339002332307834985101001145622918538876442511133144245753989063834008269668845475816194174256874351385498250179474619203369461252649565124246081159384204156036971164048156423036954504114380360102107641137672876524933097839948101356534482892807341845826450664424831046246694500710836559815445575464561128407598460159464769170025343415327503417421456651364137186372243233776069231019545154631661186853259739395373926701004212532780276250898781796560641685245652833908978279088836847322723165515784306938151680502947167622622104963187635361915714624368549377413122002391493714205118992730107496925610945218290996690620555284689560684075812308749426701323448503386884711536724956398476209019892201366325170790432947498028275184705774340561420825743945314456848158505172328023333241495382521062962813559409663393160003185925202184044007659990530962378738997736263873109819665146948717923754716103782814095154363477729659326558768832552309117129735357108896346133329778520051834349524418781086552828585395280011474747091149324634550171295340512855689197372939077578442262171388666825698702428457713565351740291024674691913305945581782800124155577605206443122204157807444020123049397775367364958483789510314218583108040123141959462485374274986635034831615789840974673813277919381073778748193599519844251309052528472611965223608981740545367068540426090534746897778829404984836304415651133369682841480493237024656777912147593462607802097022037148639364998386109149582278738079526317853287882157190383434542118296325855997970921377181480664589894529063610465040103032930120911964647639526373934989554426999800795694804217208983865599211414718097923883567624275833867928748429789617188821984928927968115546605460324083091962318215060890237395241538986149164934578174394122248790234872634208776995982096480027952647979519585893619142311107419880301397404809361434855222282414279091510250609298177464674912709518469812996939790546808066129338791648692522341841122691173850405763132232752186678167189770600570609785240458984798962430311437406801398625498849496719463018352063835183948282989598180631266067297745553894171721717894130988288943635401185164921276667864270592424954801369806973566855563327547764314829153169064115067386572000074742585992198215935692205333123342438187124750859788744088616307341637159330964461478692538489467133366777277325165014564385839290840286547527589813173833608391975945760186961120030198295709368298357529281770436844918712193968093517849442070023566083530800272368616911892202084875506988491162344299994164959709114045025174390839218605496022433580901743511212149246083196245792258022731561351609344178101912761186694602536874103322462379654189469025733008530302204343168137436440768966632645213092819867436409904220838564828601478547178921805101950050286063990662322321793198433018331783504074957887787200917537716745292601035284729824440682182012796434141449086930995964586315637525460664580100100402663208903544935737703850029420255653210607161658583311599834524903003624445994950441006120342351098707931186275535167810845434316929917565242767910538677190058917708695398391873635263488740972279796891151320433664293843253073825582182573205870251219460503294654643488607282235019711489021758588275224352361979708942372472539648696783350799797283147993199353177837286246124539914613766821162126013138941975199972028780653119781489829575961536386544166892228756269428947741706120518886020920328672839105998249480665234085745012871131021354424373770950596813289194044685179236264102612534216861791095573995099602105517899019284929569515147625397928184729066903695982062897195872506035856664035403649771409513594321328346365682200063345361736263218258508140326434452260375982209874096581642809449055033884495396157033695970867370461719113157350305578096632209566096376108128334504847498088270663556940339415760765497219719754178645088305674965662597174785452472059435737567162925490181051211737014985093125166469034861384528327628943857106559202611417536485289555669697908443135738528957754939279831314379426980709141023882850669579022244048152143708382312020621343684572770274405093200707654475599617906438676422012207905953100639171188056355724932940253267493237379844957203578051940679862531196375470503763059160947710183904756796739731443021865527303963222598342423321666739688059264496287743092277596246066843592476703670581680978355144492791934890092570418123669388073728328301151114570663369781560820721606329225313359744248762113256928607424800897187210592237595532611572060063975311584985139659363053296220062116435965750214869850379580132052756106385880495424025802777273867497592767217269362364372519911580570810916022899951512097741015259568541638395464424486200974931842209273977790058488694693054467352777654520857510457613907694238681213628844512809445215060777383137301382250903716520207591009906431345077022390328851236992092132807705951527299787514105941083185285829036841287488115007577871229144844078593515461061152919878740462032835815276763241926811951171461424964198424506102351901022892456167320887098092690071412914713272159274472604567889933098303639670902746221107868999094807655923953007520985642116899498834201886921091019241671267179715251588641606130341205631635992552951248302407509229655615503017070141899900598967445914747650128940246761984753162553419942756221560256486175307856529642574522362563811537606230766176533114459551048737272999920696458764256363209473772262608915309558187167013571985533419930411443803471790955861329198585143468794536225551618607893863295469404464052892772084258068075736992505609739627612905972350762119602084826282544547678359507958182532051792040470533308153333748391132974855906013168991800681526548952924700978778255985465185898427630723772934792915055668311610693730330666433796051322245043438321033190394684469504415591149996043326063768635756543266712544832003034884523145981055475557961179578012260265826291452399415229205462116645658094044872133361088019749240454513693941252717659453911619419439574579905809039646976977936968414418248598503691595740406427641423540280292552645367557772739263347461652294322453848525318827098518033223499592655039699035717675107137890513868430969558483016804856680830809193508186897841988432227252575799358956405350023705669170419214298365511072693575939362416373148003696803817726305996517694282376998043787244760874692747130108477146768733916259401482561019984668998624129062733925278196509632695979346559394308619063990148136328036849074984722589629377077986223367283186213835952838988794348634156844703949273603117422483336317454783849914366112372581132215247566660881045913679450537472599472813058942953521728329472922389887815014588356980464941906712502326594512363156420671539841214415363050502758269808819530342043965494153882882942116590827461998345778651829188132487854425880519439745904007767321405557073600050542719785773799312246901372549535159066734589433445920410162836334268219501759552268024936946689815615847973452327511686226337028778284850975830212448088115521606567858643557312930754292805520807653309754831216075103506643713802609149864986335566042405702642004045843491317194684002730543300558472297131168234509135460278832150382527224951390853918236030115234095297575167100280756466380735145726587596146781388816090733918697992244366916943374462487249934628545599607399656961423869243141704305647991516300660582733989255560661616348934690377067360933937543377956573783483731220847453708828439065507332929899478475752056460070299908354726355393814658423274230442008699673777090294920727210773863982402341182031163670155321938045953367593861694635236108517644603911092371071279460771207909578649542836822370152286596701137471000099354417927721666466670003514619062250123997334458226765835858125094760996736605918196188859828877874879299093155795039311034932937956379784244748789945013582156970322350898971148693835830226343424330809863257025737205994850980771599797059625320655458680422873170871330170239433482289284714609386210467725104355171103512815046298311408687615753650406331775134399498832212698532964510495170127318202461545872515227492155790715448459540481559150230766982928363380399512187943414889596038837956486912140896067425388359257278729495597918507817662260011004189205754973907538548294803338385821216525709494388973802575838138824261572768451409307882072217843314559837520648885075797557154297790011106984338812100387693827024910794173697341115354767736197034876418245851537938646054632358654516161469264974771329212916134990252976545655411766556006714334334519093435665147391412400297883728673714177208805985364980514203726550248013083925377764045840160289804664061365318141210316188287879049218254059139517958988916228010385188496649532375545914781335729020118343710468251990113066526580653491797864707993636872561591713893785308064139196113409454055495651153849146514593539539480927839007697670838398512367909467584867436688846056010397782905180248105401719421116291594314918782757155231171911913916824157785356825534986838390993209804443656722104291984372597367862093060034398798044921402944402931243654686805087263519765551955718007812024668026785113683208486470073970314641456682937703031251385281536969231820892314838851760009753851805314732279215249331012489431765877858652611325097503307874573958771259240951882961601848726767470273970735857211708422296930130785010904678525669571788309274754469460333619295092708571045648866633097431162611749865460556119674292575328361783947458200435222477111717373261554736133930563466803812821153709189041032163545457472294235642752109723808637550713686805110004658164025887931435717391652897212513775856515352754733859270618116240544180445996042707005802579381998870115606524879952603716393459744750308395374554881729647596503546379503670414890452249089841511809923754547666739772283272288318148442974554919626540002403218380064372738337489857006115621779451082033537581789519339704948812580905587992591876167229529783206946058834118040918348344779150204126132719590393821034487377106839412864170334331495430219035075789769276276988744157727996172199972466367896857709471751797886366589506562264640939159234008892649810575579840861494456376896953636934268519576332998859430815665078831654022687040926385375875618912748192699139997039135514857659380424307453392451410281972449200919959466192234679162195909102443736930517322310760182514704083849820967576586583607540150394283175719301995049312460134740616975485228511985738958087277271795502083026378636781620208030569789692325944887368812186778748014450499689068787736219142356645652794286672965157219531792363928830862815006667899894157881698235352141353068657877782152518553264330108457655111047903675017575117177097754686982455660164841237913859596039439919567245553731908407582552035083739873175329736756227029989854650893337143077136083571105963938691598383181647463632682660700770498721726267507556387006999053247256954605880106109793592643646906531212708344599518023762672427751268295618845114819814303853700741585574588732612884827834178216120358550950061648141215203835222990509733903728248490844835966661896169809781995057475353130092950633210612353056854997225328385309868164255432769909775475150811167859914161996520160161282153681748604576496898764983147154167367150716546426595515974905491339259112933056793236075635589680432833526818913278412925165278215590631136047237980673907789850141806460812299802673393719766269671961319443632915494837981414179693304912749302030248370456938994517024564093876323055072098633956070748484345484899334816230205780958259361110756676714387164540310863942068654239452387940672815986572927131291646181887643188775188191488589042550327199831719132160506132715191976933871191788729454163203097185013589680232773684515232264541659610768778912385329225217039538173861125835565563459732609709929164635831991972555197260106007592411154083263242779118157588921637697185649461840414966502412809873922305016088617600150929287105560102169627371733364894549498472596061497112149482139412064424392811035299288267188355574960023686215272145730998018733248438560920098726755037344269595537653885462892012806529884215361243127643890377994198971113002586822255556721053868320347536735385276313262437465456968301946077289870671786047140356905564782951327096521084367434381919885951658369825633626007546616493499745407073040912690928322917458766358075890384766984607980164507231074251216186335236945105804250873151687172565482660223379865121044975530782649835668701698845960568289378533134597098780858424590654465887769773049612811287902914302937010698093071559148473488961259911899912071254435209216145384803733819968531472286737898039962328667041448126102077667283357020387239341560290824925840377994889670920281446911980897553967903000536370168762484229650681314378345137095164743452684643930118650688331737584791913662728819545383915117782486874722840303759161212228354914070969284549346968025829260996861989291659355002109832098272666831202312262262970379823432163715725297914448359703303139974388179114975419752057891029754462867852082064526565069262621642347527821787108121350818706775582926742221031277409848939168326079970097978306971596676321607682331257307779142426739530209456478612102860944847299570829431790270366436355899690411258747887401376490935292020728479790245166380628907551673571714725771311464899525362348681228156380764039419395626657199641592261395989881900882191756399253633843666399340603827443186463565255297989763736919867605216318510345588387947715489485216433770585782782405726981937681571439015770647015359345475177921270531583504338788087477297745808080149775703283691249304202575138870915457502035006996065464385953144498065810426669101489997486485634623187427788977714633456003297418995171102017038770145049271224230706572895070693137491317716973257097237391683896164743718288519571763143798163238582869353019229877085971621741160807479900762117578563559973998143909442063303873898163885709978289802150879271064874127796682353734862285240616299254580453557519937805888645124908344459831617111124035903910185157542317379273708820019589999142138535152107269216127493714305324858736808761976648147646109243490023361344768565015638495006854765512947644536649173569406490215859683938937105994296861271403102163527945537704882973468960667839324258433437401369084104933056722021440653913121238620041406199885988686668846912432806753206812932737253308046747274979273814649256958552219089320686295739402043479767450832240058403218553827348531584393812034262023320298030255703101865928539294211121835954529272653401797778573837597501918681377289168231899301948866971438082534508504810049330540390610736707496988087824610618564469052131549449676430472665753468837607583284527434874056375380451185692894887860302883738985480418709648593693636745866036364880873993023920411237282632761888957293469029823751391545756183351266350961409185277547655190843929059886006974781089980443222443506455287077784709512617045038552984655965104875668456735989083519170188808797590819923925945553488934444874590812195185552992345458591840390772701594525005932846619539903809698792199615445325518216689810286783237241384840969047019438600245352550606023519341128268843114340173107042738479504002878553470632635401844092244699075176357132144995761850580501781160241540869058361063094047595728132889234782656195518644283631633540498825610033321540300853815951081407590469405563903717599161083448915937283053962099768980798325931049466574845881643459502082786064004399402581049717337148756932360367575061870420804759593117147191148631400210863203960293007626022015622440743313415978841564688591859583872167048871086774007100226458701184294899064201230441098864525060479746909469335458916572255931202765106442155158520361218592503446297736805085802516865002093309419957327327761508391361469097271616838623459350121008786667483120798919482452436289278994718287972254154889102820435139381936651586740352869258501973774757779597528081895931222653488663716097254965123418916380159910723698210773109540756295612967067929155095499324580811864647984677673187451311807515489267731269294212237967202502431988833957343660104151520664978277171779004701463641319814388198298371835069366861144562490361869924746004126099223426190147947797517362688523337579448397898013694734237379702730474329924570505202486207983334155261127347062935424581325765141030801763078696744419333942074528207933484050633610923698289247466016025180882859499202047987670030192300796437771270528754685101903314309041125070608028424968010266042592992997456248267893503939759669077592819641825080504166559858107629171336183387930975600321325791574616694948912715270402626214903105160061186643850120034403220720647988502338602199265304057432745831961332807777136472698327764613003749361724783208230144115625046187636187530678073758831976650764582339743326981646715776098655657851572978096400902310826046485782400738797674641417451579141389992520490470672343435534074124158816797097537378692240873427558913028503543069596148895559066881357127026439428005450421915165637622919385879616688842235924458041071644020436829757807918434151760470583747392442951125179366304476540453413194480852260203306454511439226157349951479782797104931454187031671000630971370776199402509614301273607569146541477007060275807497101025579731063804988649208242402161525233894329333413679732234292871009009151902836858645717321575257109629465694577791082167275322787407998817208490600495275812699435802540698116234902710698508755062300612042833791446436002405005744271265785038148971865566915533303959380385521652639120469141264366269928142562061004523925577853044568738131757409199111660107684608277700572543413430010763282728357333188634864625774178439513116439345949573219879127156514387137480884624559852704171470610163144728237521687560468904701440022218176273736020812400325101339693553838763616623810706505624449982828643387190538580290639668541674709386712042693739136069109504863660800641839214681729172534164685902657210668869015323418827868843592596777043745916573782436438053517807212503224779211554593851811134104257860197500162474707574646294502540824178406050532073980004295490250261574640649204091469390621967726298245511971610672737697619716508049483235848009476390128750892466934627007774749378607415712081644267105335431015142801830415681973314179766122915647474850977732584091124015595573241129629669122488252181689368145298041057739059664850701796849547448848425049944988936148208120813752599371202926090958491692229741884783457910466584374640018330070663239435048912059272166032629742219914672792545744271759906037615779156543501501094871169060947533527833523328286253050137526958296580570005293567347423712933211833037175523780148620031225601868414120265187119549065767731863237175025484158617741768016088978161505108979310034985899408873981871255999840520111668423198819380740232179578255477882577600420427641121682620356713756838887811331171894485550326007916102687622752295443163089764466663140927285039650111185164095910507857701793742939070266867528599962670314424355196058555882556307609604099004655407966711843935689904561345854118072127982695529707707908901353219997709650418333190533150569422594105539886950515552193383700380591413121054753168913697599866404476298294771193132140589334731396848537948230778572091515125222374205156888418290053348206042348925094689250929930281218122372626339149247239904484402171284767336883228563758483118005690880193850995758727615910479971912071167059871251187433672550234639666701056114745449400103999690891445968613831834102031934531644371034980326689003061187306235810320866579387834213997081489614013696140684246673989632750269940215217625604192053157468290605001603484181345139458633851792143714407517726898170939076656204788704097668486174552603553240956940594382857210880617881153636924636573934615710261174626575444444506039981950143828997321094491143855016780273703163885804131554288098783649686621698749095535845751388554010750347682089428765095900132304055927625071915452299164350735484230452359427553658657193358865608430686309673743934098586759859818540837381644664473521642896748160791226902372210109036100387822991162599960706633843213002226990603502177544294134137998218912236730712650313588538821362032823760025808204341134554859942417826205476414664614754885411126525905813693541403437753880859972126206840888952398861142901325360712897556715786285261303412711392327260892219892310349799657587461572457205472540034872730522277777824214042815409313977062789147284971265628083382787103810977168513360635221179624137348112098292811208245927804485808317205423555292924209656034211710249827779471112272556391166477391346837156117094137888144580772975290267448598319379211472589917393255338580420244690552941897719468589875838376731211008626015893288005016450953821038982534351467368167741905400397939894201913783517060714645838492512928321098686203956973895655632126532120473479341024784410962769166374796519016497008699840851556022411459534080816450110847514983839117011478801745465117407052254540875448514429740394655534644166171761284162898857096274997513952425203498427923224396734857317956693215943939780393809608469197233623165287064995347229058404712570448492778116886572647592635631221401865404869352034494226718836719461951821221141036133797634649569179233488397455599607109606847325063953257215760673653587988580659596854836234944448845230756025792088245457118855605875344366672769619268630852944339078805155475841570545078534770247090643026951724978572608501196875902821844436472405440017285452818217779427542827355858732654261897279390295032411717591292173748544557298734232923969474716497333324646942392659000909736043830546339540559899606970955959329941215647657459122331343207092812801626575293171808181888498165192023275478513762526435878256206976217929060214966686206851061595487530174657488789352429764044675412454435129740457006362062975770159682451385481387990502603558667596655359041870596614776814283930011230480759345956544664330747670514285734834236963973361903755960393449860310110885094201019281607847865194475340417276089283979193461855379737450217508029059473829826267439070748402814724739809104026831362203637857789864961181329991100850865475312352462221352697273509283640813007503738932049643701056170151483518978061532989331239607853732607101758525896739352654150897275539669315533576240735118131194381954605512665507527826252948087859448912570980462960243759675011014281647805852386207579206006578804690832434113934204407408163116140384630573006565605873117463034742140364960953406764009848855921640571852707246611144718109464861292988335712233424757833637136269949376943578142416639925009915948212456765240630058349928547626753149863380781940027843240443389301854808913205253057460876924684902389048693506003340167981010616994548834490781754012312493522491688002873447886316692352419795811588373192425297645747846327669808194298206863181662641536062941107454960217235924987264540817203064546060732960269854271383994970051408489195739452541851867432288857179169882941030314472524592687641318647435604553786988187835193120840055273889545889466257386187869115380270542952285978507341473041628352586968909798731176888568135683484380028128846435476647455697987503776228249865590914301666048222336445215619904779397921599332481296172855703661259597168190552369239080660766664780212187593620267922711553252972167391310175242003038058529461539736302910284422220159008116619953297091082162547750113980032893793800366051035146194676246446762503052428702699181986703590368883559392527726255582609976723849159480497800261575777553250780949801671283191258428966134561982653345865939510358865215619594301797131466892103608654758167607186657765392518852325994597140443235503879304926439949991773588031060417506068716034595345946994069508513071653510871814642030744888523239716641822900428742072670232326642037932513891966214705253831439918072875698278215127029902993641602380126503266518040450374314749639998005791964675462869561649162244016837063878607945747423486827225924581492022529972638596181043235423614428804324903627217846496971376487834325952459524556748596031319582889245730641013875730370187864843282317347546236538738927390268898212362987264398064768133225140613361309680686956310517925152536776777518097762987796235954405810253192321832504914118351795664454944340849728563120935296908505386920097296930974451658217623012409298159968768349405298309716129596814920759203202607334244643365535357854711843202700891621637122221401375975721450772047272212555138691405248418706969865091098433688364968417407330798138465258228608605650801008720267096474991162466893534243282894690677851653162113884176190665742601090791828824830863630757158006041580558573386964518427536216223777605293496804340592340336136726181250033403078208893525477498965310025991469008411545301556470301513362947750395705730348456819334665456294761020068465393422694539971944907713218712554198593228230174258756888238093146997831285452658919587952934843524618404130305013717498849236072882114452550439429155321112065377651708550438102308922180494028136220510992602052891461266149742741332756488797869183836276274048408904761459355722140038146182752643946923805980345498535364246584537806559428797579448410654943070399508713120903686522520711779568803921147062214955180767852367666616467918761715760495671928905296671971783405359447371363525556409508089933506054832403285350682150290122546329052743923560820515639439263982462755336917047024585335368323751416571992199513444437956658776670203480038587320358205757767137175464323027378652659376125364692293041696240273363529006020229715257410911450014216949354895618623591909114052499681813288555286197473501902447149034744985415936523648595209413395063716507139224330377002976380000254870757889414225142366538351441981785893815593656149394983756136877185740932187196258304010555630914076859077036242995247622520560797851447138530998056863602948393893633967138922425436938163724127239427034886823203348851730088906107360777681864767770521132667812760384142903088041294126708841554578896108116103714856094686292373905043371253233523091969273049550762250140972284298449060432536459745827321391928094081534633870712330921250671966597785779565336143707286673845226362409655181992122357258542040912819099836397760632608955352304080547222229995834232599085078978372620165068326156087128961571488759818090935688060426531235933528846765820537381948199456126583491817452041794233268905521354713812236399020552067855632955411352401478260375119546177043632056727132435224465700066796625913798483473756925543302696230469849817162673064565584460201313540090793872897469190898220546410360088390575003259515112267617834169096526558293567557985457518432362456961731125274215108635701906383703850754866997675202150820441706185178417459829824202247722572736284242789806052908819878744429985888476505966480774174164836256337298613179188203554279558170155899976100713391976835057250098576884379142594858773834830104451695481892350599582665417817746991894423212796127716151181607852245135638593426157970006862520315104203989655652047197123652638006342481313391802731313942854122151329681585873760940119005051481200798496761997980730708211682586798624675692320487941760142224717115367185184225232731563577377820771441193306062753662676738911841165734431897868974944795889033943256743812112382338622702459541426005912444661523721453971348057404031039082661325263552205810645720487815014530271881785607900033438804346943226561312341104190691849577225073490528157193784840601346173559669928833830968573814105235018253067449802638293669441846081218509390290332673061196358455812576450615668820007870296488592491649871609326157974438243248918031891125074563678251018429870288853836941575722113876319957433291107519697761008737184190593801163440664961786964551188811457749978095482952541160768384326076239572858879979554686919801418988749726806951524215888422549301129122885608215387333500195525843559920751231218626279301283962289749703038138965416290831257824548216748191102194694994312641641494520326889303239526562515055127925447761669666280561163850489885528694177334682859304556938890320771096199720652141536797734481253417955123396005015395180458026232187791477383471392676530469601036004996201004792111314663734549679651897000592491444457563341860215737137269769850316637337343497407010462900578172277628664057419223195905054737589409083254330790613208321878814375397367724879101280442592725054808017606087151828112671091974184386883656976420374865861217226064194771009383596313810533417928373837357577529456160809732335817644440708028962125934143362472663956328055816280288084846362032777379639884010815893524568178249643924104539941713484356232755913905967357401120541028082666134901766725690160683814034664428615068606250376827062219841499166556084026476638123087187399396844428138824798833651859729599145512008374939597732301158601878523671227717376270288011907142277908553824606194268542383906929340306365177983996548367764313283230717224849868406917769279996801826647762890152081510991249474702915715098028401161122099271889852549937537448294334790880813575888612745058536733801382183340126476806177139775859689609889902786854793536329209491515523453786843461420183008067794156657038856695439510618487940628680990312862608970849819162179681562487093963141203976127640728209012687206459266943541024705729523529193759636246448240904811602804177511690170989176551043811364625059534047845197310573271542060522719468798574210378161058842150883199200951372283317449935533055662446331629451284076725297278870244840594350726573708716604667353588321147095782777419438834410870014188660177951693417691048170181468818990087856791210996317825665247258576347112151479569433531646310992049215674904888811436747064255097381965996562428173585421485649106055994115144012295242264138273990300511239951696911832569890161028132645047589713981065113300488564661406655924686283158379935220014466383609210618401088844565806615771915748674237104318620186561903307384025477356555866041007104611757060638514577788652292086489536534462026162961991202623103160339842662749054137519507045950138853603256945131220668749530554385117722684876879237660295033239344768258300506010423400724268712745089217015411083110499456806655943062665810412491285585240316390336714835851422549572232767208897350991579825174766436402600349559999653638488081988168354475294880147302986384206512680081055721905258689805874021018688423109365769076273475027185066143790345003349271444112479043380297761297249733974183030837780827155406135830140936940745839574248261208706557127183784712417721811240992919885519634263337632498799156638019196994725062456858852112708051764875784633691524219763018297143660978416915347494372682330747788117032601048268247361513501114185899041629946091621188414339229279952239749473839892649734214779857526728250125537543824107412159112924274487612992741376101566113120040847069448120670922796561320818193944150267345869064333469659927324388722387563909957477281339530783138061358912375204459180117731745211573973064506932792719975307187729817288847063727909236675443055192792004838347370644699775252771641989775067167987780885940993831150799872761515025170751047412936463880576480099323152699840751601720603552608922678831383609347713887779983463442121723062096149855325888114650553405962742416015390306505625406311852282490976114770860608059455374607415009470780679652409374783783076705780551882832789597753924601951980383948995883960946685872881100893839376124553917887089933632689239496028319968212971905688562370487376231447320691436808585768918505534078774547414282893082615751424286349021127795099202489250641542918316426273361066250447413012130166147171082856558408105437516440956257283057389184582428745471710277645606249575125561654034937300067871138187590726507738791646960564056214340974252969172188778645036226580597092194452353652529338180281044414998078918313951088803956278561004619884002023157405844277438825055867563964423876937857609300637382733345353519851167704583054803494657880529594805234446252730579827926020140797483676765482886265183786818803612713066946597249102096937774900129113250175286456683298552662502809899457061348583079680168385365059518755805632880260329066039704914744618203450642844319508663823027360228523520019600962596463480631017494308996762651360654430423326647704106871122228136744553248236730518723394999358795957147538520810658099367533087515420143155009892409582517417296040364546082174059227324934653658436586216643488014875092911065978944954351670062604969738198011827284027273292078319051596109634198240632926200608713230575592253805346645298922281593330492854118344499160732218852441626547973627939657815799680340647376431480505559155738740783971236405229686057925250646780396303445043841483782555559379038196250706892158351763165740279801691519202000410857006356032001393603147190585646813745355467366474936155882841064288253104912145526291569267675266561078060643793135160925643443645159910086397733804143493118974186752845798576653946379895282336050193156647013693680711991044273638142297495154539257888728314203542569322488598163329725470433633791403001154533171119800616842186612200593296558504432975429774372964775491111090718812145568385942337041366263179302353422527231065599678970490503937457439787330826182703457803201798930197140254619847195359570408409200373434694758196874995801080854045900717576839298374230688894045964483681156611972978454394723157852206690338449486662920316154236252283485952705294098625685442151101096084854703975519324348226600689545821019898472033317378894838108559470776421625780379857172951177042953252404357057537220422659576297374419920828854079018175477120954161450193940669802348446888161959233254853336857465760309552052156224435723839739611524362118063000950536937454086229080089584189641895970719019316078642696511696892394618963383453370886007359416040816775428004557009815188186546118961820127115629553118524854099635853725849186285087401979217878162126093293024814648820335718683840328637393705076852385404860552561950940132086332439788288755925299683490646133379855909089511528130662340534856161784909975980086854462532352938118365158347528565448127923003930190231943241544127971983628514470097729623705497341798995829813648560288549204916276898767641670515906062079250595554057266869799619998420319541197045706647698935139749890117777652014313990824507866767334267037402097563890910596212134410768520068423842145501856327532618479275423115165471510750103126915835774066683039635737354792471384845018034268411365292601615654437488855097565643546396135773827170648048267742921124997668324221245381515957349531876059614607548263620756189829410559468454148167079056202667886610079379877641848748023862850352482589203728869120518355485935103231150086967277359739663292417127682578170697570051698764311582610871454120434597871721275490202966714153646941706202205570928372459660805793434093432439783820165653011337867603338540320052086054236821244597678780543221195119211645153305628226631467326675772917555028521894060919991740455800574345540723012239857398169895044083528908973387237902135879807461478082155085542055326692722409291858211274402282870516013394648540556223112866179677060579216435769840636190009554323974783876924483364923416922555494577454892850689990994304098992748265447540848610253685216491148400503270538735468850381788924202889293331929246951969298710980188181595160664307894392423430282935817221903502246244922053657066100410871427509560177490165758594431528161059731486399532555498314132542465086355660479257750911526023293438309485325415062736391274075218309647743550302420903769994643159251281413281661202355709100975427917927064899772648000888265656084457308235357641159420284115144790108716718293910791687314361228350492415192788209185534523518041273085886242943920426790326475811140205731275004151231085675834954375636339376924160235363078144547886124122055830618987011321191706902462046563979817626848153305477807928072887795760912183971677864742713436315133369871122293552744699374574347889747348536920408404428688557863183578588837077461046435352783304360728540889324615990376855211402322641188172297767384083551605569805310843949046925860297194001050095680493548478738361420428020749835906224670619199517039742315348072211553547727836135225822485077360536462156253678272373364759608818866332560314212585954978544593608435626246079404816888736307296129411279576907468639553948617730539622769084767004310792045757407759714855504226055407117001110534717881462209293603666073725031071133744520474861219247058518803291308446393214730236400359138020477067973364830505724469579488310070109165847779367659225612500292006590428555261446934699159953903263734666950502326261943698010470081219286946362570857379771843960969291472572613815633963675923367455064766282971750555197305543600148682197350770909553312313894303019259697901365368849748629054000938326670716183771587032007582468126670540871950119618437943111859582497041703311983858420952123024267988990117904844331718654514878732765421937027546733162150390519245925013888295818238783513145819809924798725712673501791376821825743875864645395449954954485091164299092133636056555562331850755324382236704035477805396124308954566902179532342510282616190744215776555155357555983299160643236100465459772263777148899699836647469528157579968766861539901773676510097503321693879176660036198089743372343974630201144048568413675877513794815933269173337157491144979031122130959579868754076192351921527434480180573353961053288337148866339477359244625306565991843906793577023609202340529042728851993732475763619357146203918503808933120562240228491149986550747932472837315046757079879857394947143801826413625255156835568487671232228399628115764415956282996599366948911316516063155947059839464540134172315701143404654865226868347515376854791651536040187114496761134356205979855007598964125915184934224660369075663859903492486847427829521227384636128560843347215487670474761019156112690117012468157948087220786420930393578281794018362815665157873088534745895270794756137431427316548462377361400074067868893779424887427446284597372018592133127113443267998236684934988500499955831193934739446853895767352624931683794273410915673015067931471344806852524304321724509025527370833067222115093393041256935339643748884138811171953433393650063362307316708422009773688321434387589267971799848766520983487466956199999837773543784103597542824492162162086118156279357654695047464294515243085111156151318291416799290237990334018666902751430594770194919213975397315073833897741061000901136681581137393660176061922636134925170755185199306976405895166267946800479404217619782682834201456819404155411915222426561935375864555448836960920908204379473164274984874604846341828664845486290030581356324214341583787631624806953416433873442624689463500659138196960239771965404398832705780848790979698629336387343449844048010940076785340648220356415938221125005494881339300897187674953765856475503265037901698236143541793483577241198945227304236835410953445509350381023963992623105244833264395038358064090257660365853191942647657719657252731950288205302705777619522785098753097794276637504458536658053116398159992113990552273893600706222822126907149968097230307220803401019918745188754709109191567018163591136739127362229527764742379446181029548297495040364339516903738150567449253306148248690205691862869192727957599456424318866471187672190457516530990277365539912455135528244722462304486546394155972478914868909926699173463051823212891149175486723482115433228128647286543493321432680658769746466596295903235355450378652186516314052326737233003990638657254781363053781409777423149982822062843576636878395031812045501896219392043433385138849855345860444658477294212647971134705833533585587085036167731504208577557864642268164651746324801195801518969423003290015153910869037069024002692247682310281995794880846289046722903484044927446214896631314509277685116189800415204581099895099603889145402434736197772371901180229705640872400307173790368278432851677399128616301344472187657326571604682973831211062151128620179236923650885074383446128188661242234048090038739389086427681115948473867415509407245614596538693322765450210295573609152997181255815426664016145614481018014406834688564434419887849804405407499204108086192577995630199884055800905041222037907118397347130706640004072903496045132143991931269126315728468165028264821382353575917016546124647103488216147326753319685146572894364985920437526271622440540434116691475772950980148752493154137742678517644272885806109991815219901266430636458476597323282830085769066070562869708201190505295702825866458822743622883743732794249113826220860254009567004307805503036788467478120372185586571109031404481256696990278376242299537932193919424463495205473853860112232646736445129243509457326557882954405003428367827810750173900558731947873900734701670335951959115837462320309441538753762353131761386410909183053261732389589825951748181364432505131763114735203572131049202768547915055326307064082925532410649388352484135037520542240144195130600470118916990682754331887666533294871062508694957544192083184933582580674843476215595545715018010326247396958699585298192068127457920538804825182560268035457053659280061568711650305796737492015652028790015425147245334542614790240186141647167037211320181500458290370027904334957697860064416588155336453562822728629514557011903356427695191007334394443923839131388355076085852196842216724997483358374437426089359111009815915414264743849475903775031089043564398136338116415773699346234306343534768372010909193147352600684217088949863524482088822088479967212386072512127039777192591473789953362050295015887566417940337009369329410306101938587393206624273381933593857355902855418795739124477383776146032440407669733082240760890457888254459228780770604145771200920930726486177920972193884438312690247741461000513588399845074108476065969808099496966926750027048864332231239816462768527718585402267119753190914058057319343424014194708951734620903705689296203508448446841316168942693667608817464456978458597660830408728717511814069318254630409594206210626042353523575443478154870853669407329027002778840249925972806347098183781933379940440156433543139789541362238454048935960618303030547159501205596681439549678379273702266590714189859525911411955477646629579332635948392105942792088868455446664736654084772642912736119725083491484414522820527954862990563804856434031818134084501302963217315896312298988076373321604116428401190052791975624624768624971816543236761995508774365039483583920236990414703949669457276665157070736819938829337734604979419721997522901642975752569516698096357045919076713322019142020580189387537751124425665270266929093683519551503854498303166442834880427442095707678623273961321275619149246366584932905376395911363348176265566118765481809541363106649618476602698710240355063752459267436014974587031083791258633242522815071664010817290084984828974982069010365359851877619040190133222527409905502966643679109649732223160300202636692708735298388481568336741824669913629824632335543505089300016562731220720738176404115165615633929026877653495005652699809927697296119491326637198122158772316003681110950668796890765949200671312421917405173841056884050883576128808035511701851791349099754694697094534926475629080243143954637662520469441846593346882677429004264613521434485800752285527949425442436679263689789696516178502826374714205118565501002536166570659875645725808463061388848331355669044053773353659768535582269831984971945339294726330961028006579850623678386648611738661960020297305710048756792238226872624335345547455444740564437537535746756659501479680405362310586744521259991036626482264996982825518242745224175674447883791179084581486539499983347192433719519818645749652612681000494758722018399556297681703630309030149015175519842898917132621990596862634526062880331815367686016973753825879417692964437748940502761444050775781156237612694713638191669769206671003767054414319997588541850829293674146929917174582486344018566373822471984999063193793860650639285383138703986019452481410802278703953392162900688045523900946291994024030654940042716462102480366366444245094744481401351681787007469590044612205914678389496791470116274858608707110519191771492826142196299486115240848105705559882908712309697868474038198774285352330635133314347107831832408098277844161045422416380790819881694770040207614928014585519102821954663274777495300210728864801303376761705034524485123364248397925045467299860840354383430060127812819967160461870882308089735733733522530479524351697312694505134171465155076690288172310932618473068597067429494618232490254241628802341472186341842812195932528365424267453158452554920937211396199614402829922969085869930703120159056612077049152608326117445613814023983703887853386639027355275666079136732711533546417484265680570346106259354437928654078488110401813572814310826036471918614782287428482809906693430034980812203319265730944523654879708026699403038969511813475451290157262203995888542799458309272505331501259465438792328170272143356364069830790084908004541053856246454333957362244392298826463661489866264343551244809769227360476502847669136086409518777266431904268495682320386034788615885351787104227135510107508431603183475847807789431525704439368079332788051288292748572868767543927441697018544118985362684526393130232680129140346403543011417696916359345286623257540765220694857070631190151786246583244574819192366538809959120793013721485002890975277177244368910676110908451997609215714603081369519587209410371178479454751114562816780898531990283737277302372856271275028923545165707413968093273677794777555086649669679319131565795725244289396228392944233302194807615161228021164773822540837065757822425211072962072682510681988009286669331328503786386581106928795588324025068778367340403351053411105148310137478714027805187193027230397476950376359228113355432167584872968226956050076725969597613491365305874206562411843538621160343913429185236246148020516886526267298115894773233861706816895135236891308415269525871586631027971464881834936158247152156679636049603455546527998487728426390511278153472823639594779796048631896407893952605680065537797647639153323567802032513729740277586384087879153598182417015382366159336522462380485782913137332449194137499999142024055494696007917940647983968374674324090039324020154679847509474939910268139176927933700979863312343296220952121613335490671172168679372741836864601957920733942665637631198779019045988912711363409807304140739780248044511802448656060130711351098020416189242738703616163617852251072864022509961085212436855330186571661638889696606178702248228179472077806612232542685477979277746326202505663521258288066248778375262531344550263869497467932249079229956415774533850716760585720880858517290980306147223959356306808317094721594997603578283254256090766012806293959009664115256579470705639956467153734932062339823416910452788051643661113373999848856781113412173001996743745672697336895991693826660272343581998416771974159677963257857867002465265663225562926131892849376159587668736912624168049307132371216733615783656328263927018274833421029566102917119551650258421709511122465262745798847767949941220663620744786968055080620742155049074823673919438487995620406610325724715792821884828468263022857584104580311761723710709852489893192527331150452891073082267064159959386812797141215406849197448316389314754871721716972617631667977319004885475762087970376161058783873570892072728329773633330050992386674848522386761159906172612342860722885728357664238598066243748655122110325721681142688186056981587423338939107976549760981031845749414897453296280064114252686216942274961007954820209841958604222330932474937009120074202313094016439913695915313161593204686680855153279028354354391379850226358258838923843935137877553087350730972572798669490448395120785588359059601620764622594498190551655252198781024496176956639465889184849341410731256341360631736212315906420648060594539776697447151054472729541188062433563043839399546761423581106837476389149308511025404579343898478223931662460365143724799291630754587124823880043303201503910819024628918737485186775215380169392843346225184389907029511768602047201039528777525684845001317670972784452910088689718574558870734330868871209850255168382596624505483206727087463724123093649051051700165228355614562543070020963909459415912042240489148985605154760368325043872898731785066316544975544430990384686070533411440254391765363858960834878384033407108411822818317077915745677185753018421347534322164246289081673712471912022770122057779843023796681829836109068380356509915455672137026353917659187949794249943183131114549163653663536804992028359773631891023361691043900607495829466771803178409448773023449762788162889371951941236661123344254870077354660858812025223746753942677537196207265330132643366898962361163225626517667696234565608984927038332768126335433861992320555447505972324930895942339514391419047575306230679350704686328946460477357275291918065003030217791723085087857558572939102289800347027568902863664824091185136242613937979347735531891677330985976040275911565164646187904055396946022636668154512724374605909105802702045091606126279299993745635048372817796322069354195927635000342909045333945830565514645957645697424409169530816605845428875403613397396501027588945231945889686548371701785488087651312503417166554310646726978533186351718483592236792110181592534152977002126028818991546875425147848339312581802555723080313412490956361082064629542687211866207370228746945087653801747767075436777298502230712054635048027912293297328932745152094827038389808679025960841853155991525882775211800969554838038572356561340549202769679098552504286360567092351414213315460552626185936605665816341673371549597922543575884079554709761361881587300155129281618180694664080727009125561212860046640958835648274137730896425781158450738502054785645968154592797001353693164445331474089228518982847851631963384617079496829352244288331942767156071991320696815644211682472620625669810749425195321609174049087556244801857937709433969147369665784458315741588119543103605461255073590719523800460349679053425056120569937014737269704618855755522273518314530118863951609739766975561140137740019956603348694841348802308704565672771314344723583128560657544727581327100146458087321699143307520256690158936883796624410092046227361550190552838342183994288572022913156033641253728752569823472885836759896397671862529626852209837213616456736276809407171569474698034575895701079314505410955804897084714706500598830016948778854873680146424062513771693031538866047210448505063658829425423257280387598670773907844113362715359824382720653469902559712223304149677998821572714333696759059689046073911119437322788990440626791412580565709151687123428489098761790534235521434738403491467484683053410390348795921808338074513388012135740848150925179027889009774074003407304819502185053055348217584864411624173660755601160411623061451582123823230652571814973853853369066663685243114571304233505588213553597173813851897555331273263408330584944869366811025472015385404453008672317590985143758157421073590201260751573031377003461418785069346763635201568744335710823671424298814212786365795226481769582146567120489398133356916753429514911649321174742988684216659406869965403585998417292148333978130683944018312197212422455031384362782194875064032999803000335734555736209515908966123205387453965338749618221173519090237504882678892759869448578043154273040603900551493120215343509397212617787610477396336955048085381245212632661566798299973669623811459778382918869513966986494423355409566924610123980376322066134987365118948404164946804612583835178100354592462554527198051090655334579344019982135912445243572281949023892378506972403330295562403511165071302455989540919795449478501686893238522074114095626122576602711346874900232103333243507888984623420454889828141554287977610050028354472244202709689927724190613917413701486766511652713883267130192357470339150226523757175061739704939398957904872662847340373726115162231882530963249154547645849433386972589691729277993700444731037707564138077940595272296481903396681258218320443161357722526248046926460279845813000642796333290297592204845395441775522379730093017280974884156294478574044755446816148285759993318069491340966404175879014586836597800785970701361405022812238949004137048959182459159011689214567048315720881558020331547571523893325523059910990191714994521388722364023713729086058428955575547000333006806458869581924639066130727900171337576653772601091390147952922701035520256360451048584497852039205262220123503575077170741398699950374007061362086313415166125973585077624277029178898502573432791213042935969223845595508978809930891620628115861914001987817396779952060140112964873549277068751739995044920471888931217195566804749270235833424173015441605229016893858653869502858309540248265630486814172954903130973191935620668583986160312687802721691954176968425035769927369410522250344138219012750432358468459890703645583501769072919325125707334295222264941341797324122095252614790895370170201273697083258180253094371917164721378238921151411763513527540246466867270179991135761077281387470611995415334583912102725520904609115362302238280968099461320601037048965287317144940934497759302772047804359706936240716464483897844430982233514039807134587240734915710196999119362553213848998698715638478354984804040036347954011284014572671567230291157438397429310752065430705822046121861507281820670190082759206074177651347889558573146691513459786188041293232976591955685886677631505048289534130936026174554732594977404151214143628027400304516429797184844790441985073512364895502079160255495083113492420536380461129057473944380868971407669261119748864617742134420879528303056115619173321114407592988000522563382420355339869925851209524896355519642419228923638856388804828000199257648433538390966854973463948687532100001560353026443836409762182667608266982894511421481208565653255479500918778428377979304109995823109641595191858270402803388080910132364470421385331148472430754184901821644480010190821577775560801065009210862773580893202821882905252178538674028203031167562082057626450560511550758806650024144320488376674822255102353951987978594860517828580918148763087604779146393485340459253570324918906650635670570138996360842782557628425764258391693881527873550990717365658014411087169020621038060805063633752848590161657126900787371455579285102570495443155331155019372624316796915070756512614124384186529526668636245584446682120575659059966525414707213947355233553867515062314588251202245830329647019164937323565717431062551228624095300015248402207293446032478920167530264618660338629628192920325241418824260276423414002171133423094253474159206591986771178306369864110117755241820492629066057988410051958672890187344862130401133717088102923577169066576204436849568014624917084637580665330535542598896891495505829434215956311389978510379642167936576377324350306392512763864779429522443160291626796675663925859124965487389643154940880324518756385337676378482916252678867097998168374592078072537073865330251728188826466922006654589564198708293415710368819816456657747519034199005148239122665182598880020571662018116927528840716030949139644655726317890948702434926448115674168249899614777481854663025993653634122795110200905432108306367584411644684252322381816016298236301249433810498895221200384161198388326447815455020027740211249798359107878238077247025953965101084277510494997850896547082353331883796861426782973651924230972308533077589905265821438178382448697415831809354428416773759115779646860773215805123844810521692317793861687813847153690799793480021103381540127590819683172673925389385582907523217793553728446956875466360068682829797917201258512906692628651456169292811871779044046731611078484830071956144720459606326613150712325009417255634488272780653768562202896198479118026736387167145666278993635155498513399127622072979390308961451674223053810648117161377676687106056720706801860212365240805115989556511609166642476053435302346086967218758272767357411114592869057151517925072813165366553767786868346827576891064884199347243530780983797558062795847195848037119881092688100319214436494762890413332389858370950832051516656434042513707323055745869581636832267728342473034025015113908966161738360303418859084823862586657662765135477664443687450540947832866147244949553682334227620922952048290064046702161273742853513759303639293030212209538849551290413178525384778999698955612890370362551281287559747557370668546886657594782030899749891048253582759728325892859159619428978822799980002686280737586792770591241486824344884364360216423595513440070263427620744174241738830575145519460628183817174574234983404829863612826555370209079095885355892577564943741954792608976406224555317342937714655895152974239692356959429087829144438757612838523236059783356177951406102530842878502363506871121552562510374795284182417505379602125461273130247938801793719882478812830244238944995911620010285518970009131309155769505268558017210430195850926448132713596349562709029987580355752976393312751970688300016162289450526356573377654037544154278960398514290748123184841352892280931816884126485565038972256099980250767176177359810663767619228338683755453827424189753398749859632187424909349808628265943236191363100502400856118247657720279430130959886586355412969171119616711949525634956233932915805531906556998688205795385742425885436401743654347118001922231427576535308361584204973822286298623011521371664143741318669043175561010825340134902477747440057037296095573545057659803495821648592015825449682654907015955599076529210893487125368552801089447800797593326875214154804681046832370219995880081426294358740480244190907409595140115015945601938163700239667391463493854495385053525309715946015295905910965984320433804664372344056487625637658881046104695368255193482932753177737567895258517010888738330109298533196803851216187983338748627216335953555720172534450457461810212164223965322002172432353421407583477493185421878129480221320761717715887677606402648570790721074525921779321387983333839100068873943906291505047308511006794047783058938311760080791904708441985683953268369639934987905957242961789119300283775817553668125041745798360606112906734062959880873059356342750786740760936510967898005050893328108949904446730657080308704167721692447866007334951421355334528331968922103410527007618886009110058773406105453825691163287030191452502709377101078927994050546802132380165663496993392005589599156625856838154569399732829585749500517220086755122636593362171372088440769942906673852004609506352945982766379080534924826012245812825142579793355143403576550829258938654638045253983396987275339314276535764811277227663426599008984536083941172238750538494813558409230520109701385857700986521563201104739384923990174802362945739790979346185308696008750092049324887989675144170816676152377963381264028640161057884379682646966450571874032864140502179088387169390811684412029621324047787942135027408583910335787527770137534825665832319440347123892396395462478461769499242299366624133094018739237545335112739912409524366365908464018379534660801312307360151456495757143150247273921783876371568234928129688384068340015091357275932231592246344001708490189670243776110470920705357504786593315215937877775888770623015344234342279289996491805463236261872082365991864360093727943787359774603826651056433033774204126065228940124394641566640372837058160522738031282863873866435042978238299100708862592105304555397987597191519515645347572682085104605324228536763584191925701386243806231248949155675401160570853419010546854963850794987118663508076944937661054644008527887925876453301934034561182620823105101102267063425943637350959956124181393601047947933139184696720782378278146520587566849060615306276435736198491588017615730387521402257405200252072436215513917118200206526802568054384506267796909457072685403486165144826210340364558919802272807855453432159620989612418932249817847037083210680078319605613560357135982517183588746090801068692871856589425212772204296329022286587605817069725414512291995456652579222496611161203929535867437888678150592742470512032615065875178657633620495302848495840733034392194645870949521872821856732680468122961757187766629824831880206933238300965365887570687629779577524518329703567869672827881038909637729525303173955514388415513452132242254742662042664807137480229377046595108284004010044922936572245300588386135565799471998370095783324752741200501132384326970068586256161956236257404247094828918664480577405944550637748526597419287945927784711167377249530103679806082219707687747153057617179912187004959632658624802814562395909610476305892639507595137532069154275874657943298235791388649233779439131057994183951989481015106353899930328128348953923865901809192687075323295651471062285334767449237585861933205883872227314704424648220985745123269198964704545011947853127368310016846935725905880120980231681763604391695310521543902499658242185348241425510780203624901482381000447547570436690798954862623797848973719820508598565829889689684823258632491899687609792317570932471933207024812798319711915082701843773508961626589896000473623881289620455411551650313188576090993471665684819694874692640378895282617399629336131732620349918585869995070839483213342275501305747007139036872836045811619950194325441336071395904450698908164471765545499147828502640921053065566792415866745159121467347438810078028806496883789343937717507037076320369208099324736728394008135305219303036842751872356140880751863112783763505363603168271679160778094373296205328143097943404304288739845313390767278430388146938699654772032974378981026667480626630961070205816177160498437139533191150993038303840247130951852887952092204422192845422105451144833035040871073442266050821914414284213055734349907678706760515150510042638337217614005929773277003819753227165417687168029798744762706219840527282217309976692402403636176176810766261429351268320138578128041383246356904376760864579021818153990360921418734138185413506747134465508538015266914140702538558063152680477728949993010467391308177098928119297267937672253989343660656252492422813204051503920337443800975529387612224591491796177383064470523296449357266265930389739971991073422659100833145319731347037461909372155820403901219215970496916615722514099846462969502637449049461156971113971044499829469429640369461937946211780375044422380835810286830550639029894861371856975547849551727924152117620247857249162711649358800039067092412461456439169641023120612216919152956193616535485693568682303139252950824880329324063697102261509528121750438207152945599147964947006575918469307295627492142290830186861963874379226481539235752262943711846214220922837505279263708349618948517648151664293291599398718305481256753321242756181102937333911831104759727590749578258933134726097560909385429086778013407164678042951228304467285113668044127875864284268753000754990005927770345943948059109419848446859683297994228767424725514415098976319698880340956156767763373146685170489146747747394906781744802193236184377498859136276350597444560587389020576623010309757600905847160519351622762673751686786171616415028527594576985405263922814782772855448730269113620879649561521348741033647270501015640187272767632977282730730590733828778040596110245831886574144360298461338902157313643774189761515107872137631823597285555543982157452776045686251843815722878159323029666473475365206264349720114343624143682038532395141555908929551201346117064002351568631341557814769152404757788748352256789102951778970074170935997419492046584782329774752345722443374019453601008156113398558309277986351309522778890690298287065436649610630330392624298546419734335205168471972350180811075124760002135193441890416881558811118941721905608201269167698213290166843156199653561973925439924486065127349918945291839109223155592139039715823797276787119955047539830724013153839993660879276160721788309937941015677112548258719777037185533831450562661817978618478030833079710863390013234423834857848576374013152725259423406596604903895174479542284095679423335910725412631870428511799138473740216615402777004108503181934910120707162979122885087148809135581610033425511555067872087033417411353831659991781710435097555883717955581061098648152386870029585325503671208196989996804812342521264875795718324467039320892273321114919066972889132295260895774538718218107285047712208340975264259920511637135931900980917479613692644063404075312719462159330765612609380627424143206220424444827719816691934009643615918602057773316410560852078434618370829334919568864942118194488850855490206076704664440695474751715411418424434062526013109084113770309527166249882100947704071204894961329072252284532578272872372269290220862923688892154829658701627005725728699695870656803031063930699479957079923286053470820699025387215631789254392128193136499946136984028376595833728016335495609887053567552743704138595966205236700930148603205152735083426620472557693485843963030961859207682360607941253901590357140258866438884946579166927830076215693437479322250948723187121899100433704437348423183654050787059854173666587847270362856513456018448909878899066103497745719957089032712696933029522384920941568416451460701220105130443906575341353447208249780064207348885096856712063501596260822396448081914088583406102073016768250704722833759462019610264192902287416846470415744665095175594077064324073608636773999948605942840141124919165368791756783851710639269142750402645055199613523720364192411020909162790906623684071532285623974458730131653033148818122082216746308725750574346024539464203692296121864025023261325757156707302072527625979233627916627422107312711830764624997977780423472732418962531574613555420277682872743283249744327016093611903637608672724426112839241822981084725847717869935142776682580979980487432781713014571201005512573635635621155160970641419407598443371521983319426531275980649458727754547393182461963992296472995602190719970768363463478872749425031769851735220259717278922994385683423818116372573722154488291016034091050634623255050321501962379919807800184209499085224202363796714171116181445763261018552578818919204522898152997848665141399730006008833197515494163434582648373494846382231912043400263293084424090983446526494996452058326290833609827092017407425344481348856179495500829593145949829776712544274369908152710809610412636420036068871387033386324694553230759549697134843584671318960723945345091547535001316411257293845305805178345780006303551712829687855595952711090019089127791575491390523532806685796726349298588418506600567211358331950647821730334719588330467598109249531061566369168907823515071940602881755660179462261674593354160235781986213878017787954352012573529755558144180656066019413158850835583423171774410025383079426133542413714167334197526995330354715884166971803132114425785289460677962954027363353453219293443392316133303248013808766014314872804714042882636482382584592872374920719248184375706293786167681554542665178098073956906737825657804545934658898399702165703873651108419954233359905232174978475657265370968962187994412813598785693604907911949373712135603590270518572546220390620738050565010652012193043081843048006354259444496225320095609539419174682838836297288205954786481245456915350680492476857229354341312602947368495706023090370584645329919896749474604587528595840853642762650773395843121908671057856866489498997454594347614863041958724607613053225882432900680813002356437462649780012762399293775980837428437687064933338130186130392515762172517696416028512330763603555233232267958918814077657068263649536889028014594775338208661396765286594153605520160055267969018220931899394714904068896393768632289741178021775774257062525922183213395055924158352477809265878797786327355807024012870484140230281576849310072167350753398778296375576584093897783521275877787587148130509829309266101039997543332841985756804156302835697007899455756495018315159283724803841667938489108609366913085525228464343141307154752648408592151828197194267384531043220268035476809738372643173656447034769994532834874282267796448665401272247294972152306503089886126874012701537257614445823433362572986426962371072658908560314590946115510560449224781298142614829323785306030194882566539850934466621098479182139747539172505890190231655623356361600092448090032846857291073497103168920955679889433588536773476633149492317141887094829436452409602923889400758170778171892593621366438151203894981490443730766973379039838105203877228958788979113687864680409229705659574277929309491985316571650419011086232278884409055637155032836061246245185598400513886022209423213581036444584651766368055135293789615832918920095443986279150875103879409674363921128649005310212134377094126003933811982625719757879311568160252186553258034726523560281587196448713021711968534469861345919484502222121050260966289635142676899446709730382497460844875606918707414702981725915996798467440631390835963299618038296372849529540890284167888371279359157123765981475111342654205026592389557368780896045315507085484745981306442738883304073469778640543910949310727867111327442319260283762149738344159168462867680040892254939875532873497291387759874893219135294174282832887417616864235368016330728113073680648544137911521230135130954457729967052839662844842827673069253138210002247725015324923942633296891245607161729063741138618115899457114080456202136687866045674450144887164845929937927587147160047869028032776512803576819777767921511217846752433615172007008150341621242387026106240079022792810087223130001063979941878958549344329352925767207207176720503083779807490406535191970459385572780911606163495391923340020671212089323164597098756859933708277566067955192442834921194995477555808241646978554265578322590669296269711380632287187680366352506934928568270029072356887498483244057062024448260782275031501873088025985980790754976920840471509450208292597440098299152343812456497132857841759310800441755520107465167563659944522988130882226694843370602546405563479150315866985981883721802259934341082921950250298680195488259429045999571746714036039719524833861610506629116106026999527070632177591370756069818340356929969444157120533884564207239932925758450112459952082256446651343758001857651996291218743949525811235335928044302700383326738526107316321316166069195828396324492932540650062917284382116498117967057067457087374269466045899103260495210621593657028174801741969189076843100932534578163950027771547984006784477005826268535589232180797251267782944870926752226268674495658573261546199550686606893014051394339819616546753681836341756472340978213734019926642915378723935353240670227808338617715846060165629439390764357882317860426590523226771597016921995924407447628797798712013786116343340644571201474919790035600281777025739264164471627230023050468308542284483281751235933815704472292459085598832484420842721776824691927970855733355835038231222111068051376957829124215501408592426400692295235332795649380473759865267683129317209582694950335224233941339036325890396040060434529460409336059287844373146730662980218772829867778697302858085628283220212048432500786345994765353063845460026527154963602779954011801538867009814682056073134133891958104958423408526292160156225648742460069941469722208815974772079472365893951390413886320259481313706059602191707197521698072597146501127284055724920048617591623870034179597406691303127271326472339304949524050731182670368538291811345364971397626157794790425944657801035994428299893202288999082252800413724575677006943780929398516434399926937204870919207679380172654812022063469409620695199210169234811564864703489355134784124227016942605922141310657008781436309116598458409210754732685273988185140018059892774016809442891969724666590585844285998649692236805993927785090956622527326464409478173439930093810543913086235654257494892531340101445623794609965081624334759842358983140306184037944093517280166576234846363754212675432390980458210292780147770303703675720113816876280098427615196637130793174043888834911885323554360363254228236578652476518533905337726554529279822676547585749287710963640527397706763314688347649479931722271107289000017735257381122622379177140644937894473761975086133971596482577257786949905364439320005844963602953299115314312839215687284962963948980882541100230780827239818086310978523944333067247879034943072220885594241980619286830618163253551077553736361267558287509990817092551634269895172013415891733003185139582773025839395515189190747875782004981049247298966553353225648033096034229839776135766355175290915795832321419124176637545842586132182417436915706510999345196543580665075694639269173543154219405844064915213531267383428070649762771478535520458454815017010076141620990559709180534129577491432957810648779754799830726595825128286175632622507701158694064938876274241148357670702546516666296832314767651897462334707819527237578154246185901935589902001631082934506918223444573844645288235257194672625921297972970913082297921066906083493023008607005129611831998620883982039530522128099089295149679275896530616271766471956519338945598465935697656507721854499905337664893864638527727052534781314666699830182305315437173458922768165393747118555167577676398597932650996774194461753242458244671735595398788550852519814985443167601843933795046123153701055755385751026183615316737675974375125411893630423765843049670953241008601478395389154091412788702520898175976193121138876012278922094907364098640966042364137463541244169727467054116459888789198851249881730376895202601010248956727586867706821572799944388759125806238191255186298663826608599290408201738333740596132178925711066828715501515237500896005690365146583053060623297045496202175504217599911927448466473947554519743518968803846681472071343388537447334212638639520804268327113259524727250919959078687160971667944861591681373620687441638338738085474116925976653006438036630263703211195700987145641240198039393006739429344314205917910749466370165105380122276283641105630307815064405959967438019966004798647476587551796488865464887634219662102522538994737217152724613886008112718557939130132280302075865684151090840387378526005685908371110820507000442226117116368132527654070110927828827044534880434917762640312240488929784531492631241470519233880859979514417546860620154550339984159306167541017310696942589680731074552553378040220908362679388280563724313872676195367949539286254507522806344554636889593382289614577864657358902874213099987777205352737929089866529549422079973832983392523888006258834425014608054336250302326355124951533011280442814750787699394833203507211530124075161376978993161529724721304204392388809778567926176682059508224031164864117451913113323078007437633685374153306487406840710426291065916101698298580800826176415799856429558577877399902915081349268004205757426152328887415208535381174810581924845914681507048488786614337145814037896592099064309621426201590622502107992228638852603186380946309198245202481593850271645627393920875696201510485393926589198329575851113127306459806823424852985857013895501698995351943540682939374136864505943832633353688316600374067295983332015310625117466271827765497457400995800489650642512552655428821718508954764447054493051118795729779973779629357518744663085004350002453732215545446653230374976644533652653662828876815312992557845725257239645404717773239804023935018274654155484512393342364057986177183972620230490037136970391917556133819003442975889061432231923247003371387324655535082822747319574059028608988745280272474953629251630655338809059600250433334828679381695421445383945550464354933936072952918279419904525133179195773482610995574525244374152253885787723502855830513628841395532172604638446112500403788564888712786335772761416288473370131678791100804313116312557134416838404570780549167021690726014398473633781137042837991815850362574347434433625454343704619966358586646811342147160763689014724093974242775984452895846694733813813545704295069583579384141779892022523160749804737293664621165984902488718296696000547521482150436897498234831359669308758694071184636322138601597828293591844046177374380962897816802509131260118754265182102367506653811784542143663146841986896661982574363300247620129503018339151378177649112112427679545128610201785485365390321621848732307233749787285115906751711030648532792344784701578976438712987921377782114770684136522639159751547892955616806305007260591350405963959841687390835954778977199945588604304993514000985779670381226122873689457881731079026241743969156778907262817080628218492907802695906120096975242834887297115023047050294563872598824519918358610245780425003277215520724894962498287666194586817711420918714354130554590997861431301003191581800457737152222914702943929105989909320445221505390220107897031903661226580367451660998942045992610766942445757876023057530533420548088443836825873776212427274889517181942303820587511395817133472363275162505791642396265526370846410697351390168999653453231226168695990033287642060253658458594161002916930041633871780757092751142368042194108536796911247266301832622305841490742680506731009655598148928731499026881939715160629099440260641463605040696615131282237340627365469600094020750650317468905360388209366360201882259521220716381316436116881643749845228991326800166185921747646377756303310898602330693819685320306335626948640982817547215266491271595002147074308689339705864336242766070282658724066929691445244168826946691751831544643924921939694941956405979848879406219432226954402768956340531881961191173659617792667519406026306528175975049333454504732476951579720706565795089565973091942015847491175181851580816614843980192441906786924774411861491224176340254086084684635305368999207595295065406736057010207765172151957755353960581135943453884380625566115679139594700598191234303623128237760671727297322407829394996845751799664972932457716875181523413110353095706475413980921677437320326261167640708454690107918850104593945392200043981717021457536594133728519864567631401390964961699259625162728388710964520805919445153065903773748579895867188106393566237128597522182955673782630992940481343532783098809707611460642391854001208696256046025162287561887026121774347728991880840575626541985825822489610638796146773128224422308266814265025582739713044457215391363826060411023860623265906940168582616321503342721259964546260850816371863063295511132121398636027822523867003804286890052359454070948570475133123870806880936102002030939568332304619292843317812059415720389550272729477416041798473471633327202484717449350447139206429412797188821432014250469731908229008394907100418195425314357925710263368285759711034908778989588920917778735176831683478789426902361047682187018053530842537908130470375722364598551150899681433953546030680154016786970415846318994359904660532647217515176068530954975273780539323884079831765952324566127655367304581222419181188555117785453952177426657368214342035171575409065838044874272792773438072971942433454611889929619462086284552320224503975343868421772132168794806031819443311074396575126859555547627698752173498085899491649602977594258096049405448821755547037484203552650595356644463735978778001416072529754477404309040756736659304160212663217393634717033930444991471768969036445002020187679964289591780633757054874855075525798355030557960781935530697920779499162179823260474487034085683939492501770005960477593139784158922706266841938012947094905746516510195150039073321375738639646235729995355927977561554854415889459295657636729284333059683281483245164135819027230865883589083103942329112692702994872220078687928327240828503163188033373382719883613917301477861284013851624332732729536159057558250392620764061644835211198835385000412799882138046417118971062552058583556403737617798663400143966282109302219662566673627616271481216685006656987585823203660020667390526624791643666441792716944422563647370135264018523557457835295703082860065185003475431157712624374741809197698611798664744613867796405669744231551809938288860032678923013872624409894397240310292927859969658745173760603662838706001805559303098192685340854918153762177681321087541742119192849394463827281844025594485092309151320339568602520850143386206283656840340310524434388660063749989265789889301527434350705592857656373462616415109477145249103166641854463971843862772059948549925571584424621592745225119017198652648515248135653276081720213911776724876247961026690956595624946637640201360729666928090743236224593568079944866456789542793947069644187431126025294997996817891251888604101617729244060890603088100403148784406366892793710651846351085150973421703029144789323597815226934576674436984027621618614861371380481879791775409648659415322318190878280276011201018939646043441504186208102863988309404246700003934940020799560259282329851450842344913758134650506811474645486843485260383917434780163282830501452845932307900356475523800048936961540199997826940367811892940079298518028426989865223133535459363094268183859734262176967376400771722389214624680334169438853716051078417908472849338964601306511036158346465598572544508240891519249581445792439951454612224642634399910077171315961267250253694540117050935086406291600787515985714022833826798709330511794055479853802758034881948199985443681991626210651159780842738181643432278165979565800047780711904617315906923515933955832517016073952710007454586297148495976573463806354789470003266350533441636380988799552393250431929689052629232701310718104074572915186252697227580180711379423909697994183283794728985671425098608954239334906511915330697011343243398883578027935365565311259968102298784225245721423678180669249771712790633711071674468261602513203368805642147547839178779356826155501424458453041618211497796020219530705560817457405479079558162008328902088240421203005956113301268178218345018274538644597901392941882694348715891160617877139350913971259197871186727992404128676357807267098716494497870526364098641639404568311278807255552830283129533893926207351175239906722378671913740300391712552679809308596560415684112883000040272506722462653220596143652338698255166179518467630873065575758005552095662697260072108965932591226151253343042608915871225589848970632231431028024284634352685613351358497695327095340636182336767497029520853087276589377542210439338643360574542578342234845489871449690362490689098473726071977857734250959707093414304025589493184749139207988022913984239889630024344576228970426831405671880332413967822458276901820950744040680198651880972054312951003055231587625250357510257899426941576225242656084047514619338735149095592648828436447894833923106045906190644909613018702569765279858296117462134521267725973981767419711457407855312287747689587251860259441406253832829826626380099523612650839423996962795540674315253543199648300584791962283680695970245864027270377993649015615512975981840164423208057375997175027391529930658027253021257457709324383090031691357334234890205257547691331201803092979650153040924229666029496793898594578164291075440011674095423169609759341996167206285889397677853957071296515069550682470947320056991299260897849583968110347283658653939208207178279500889996188849568777109981345924867448329739173316337528742449954729979642374070568222269213239167264474273355943279165700077096795411158427936161953516012512047464270679274778675079030505845344339729925400932344908027493206849605436428684475615314197892688849120340164982752436958741102083438857245032953446493467623614906875269692660689956437186403409182111974475575762857751903992401785408712731640582610067062782685198727909662626532126937894572501936199866161610212670335528490349591553987724623426339724680583501898750904584267427192676815192142136784984621844971520945857527399514613371624319763901994012670588307088593165247530946342289166021149967082560632100553226345385339510022684368354477050505721606253596231600228813690619725846942355903841772893401138961514954693740733690538238203580917050231817447966556298486454755620545745332087774145200404263342682680175075227563633963265518408585309483097978075459770448008305208206154907935084643503542361457356824486017347920511718385101742309645121659107426180191706278379551564420872359302845005846193642935948345950820675293088532793385096342628338463315324941252988728909678110284263158135258306159100527644186833719900602876925389506734071500371394988163980692821945626042203121793159471679070047784698748884677297221073138423218718587423282546744339102877088477946676431785407300838981719203992449618112697569398017329189248385889853991486726445521461398397010044864772853687974677996811291259859419415635477336544415418136155742582471192049692304686649658670652494335467948748451236190437147833867772099206638672464119703390259530624894676038508909185916543342799915902462738463319682290400206055983082423856630616170883304666170632357226238527362771346481374668158038930695339285572720453963464975455430965575699338549754862744641946570029681810757494466084731075104030274611559848023093814920531436574764717984150190096413674062052881221091774992174817342716025874447326755271486820839502444560269302060516068095656151226126032519694839781049538347568441317104829280567966025527443110903688958877313065027331185762729093275116517872672567006693635165897867865341370688339974760809048529956630376132479351362667807973830009701381597725435408483265505356285712226417894188686736881832129676460625699013416471152352639738140655669898624461575105734591857928514881903249189332392596938813794892663025346875639750083790688889213391375684864089436882469629427846543803773185238358189532613220536835740200544191420554728062029921115208057918035325765636549079446396674587109649687883056527811169006344793583598768343169037649210528811963385487448178259077557281326569642681589569871031514163339631835571367867414599120131448177023465467199918665375483224886310497830496967753335468880876929424778217774061569872398016202047199012381510857778423147738656906224510051261213780256058576539184131551987334922960398760083126028711514431964315813713868127848983156052047483133156510147115605035022719419152446305456862245065453144750348577952336299403301564551756478497286157354021935260662763465569024015683344159241037288995678071417596418885123955931267620648227886572348919412184748439638196878621319661331094403578342700913017636416615423910541430994837765033372159590714969043824972132976459630156256870494929341879607162994954323069254115305386125378705813075396135348718180198704847014899729309068961736727828749557974868434212698862496453411081621501200224955212188974124382503805712606881476628893123404288209714031781039001838435353614529837548578725436955991690950165049217178550991637583326450005310062920661007959671921236988538866697581037400910828292152898278943162321637312521391572355483616573432680996896325004237197162301214748630295844391772248389791441528949218324474308304155019399637155563796844895540023836551889022639951002007326609426928089912760363207931882346773575528095311630072070918357989101054786212552181649741806955315843175630057146926054506153530963259765336407800994673554604152684504268957605919457531373451412883498162597700901476082870586409923123206469301859191615224569274402808135223160780325167720811786961706421621208145397863769644366670843174720744278115825072164060824726994475100315435079209833927693477573369648342857633665090227191132486078674824951304191551941023714094815178437005791941315278812021057616264576651446981509714547829404416730729038619391908887401990022722634072595477975680176893649283026814875241877502862593700608046533253741764049957663257406249326173315840044152368397877353289264526354158377041046228422405774331609489926764137336720178058886732979196074280595541416062302569985504700765552236486786048027653542186324677731557094079927921949895361225793543383745539728941428171527966263342864393437422081305411154034086698797856479520414719341605846100260096402213087817255823609731775962597844159978021773246514551294289959858423931076488835469942929809277876246519631487887233080604218553054335862232080919917647436930616072614815481338541619611640249108561073402307208077465136213559628185119054456235407257913129830034948695717089977544522018184046748331908364691758650552943098359547685509021453756129353321302416309486676250684801928596140874390133930024390803858598316179168115433981961962347102190429912728596128853025070820035381164600283258428737419649176148808563037876229666350767529647756889539701730843635523634989474493124470280823596630966738925655771930415794594755033977765282538001179292126341890728028635682615930421924802848324168980035959972769078102773499115387511379233071843938186917356458904751619228014991778817045965462032728160552962156955642811541558819935565944057049481957032746004601607852724276821655528310553341546585775083309172664908042458567928553697050494454480147768076796240991405662635518240639664227824153977560427575913537554096985470150609383605950195480485362085857323083504581304221323821668535734831073555086275056901862348522258138659857565812823321785176477465696703517178252406736451743583582855900264369798430114164103069431068304577521348666169175019039806340879272046814172666975905240610205975855215023848852716674701819109911012407517417177248223017869709722924907300447128409619221356576267417683825770044963582456853015774626685789061631516154951419622125390473475549770526404009289925524175093320602357076820512753450493720578002657581373760907591828493273068623701333826061127725878790483328794832052660564000082150470771056315505827769138638793660532164119453009477872177511478081305889822512388748985703211303678050160950902454685774134463756724524905005842379177640116377720974717389918696780401183205257285641937573524843195175425570445543498055483283360730926617599996585768255246546623541257914337866048406724409290294048171673769736206867668453694980618876547452952629640959290546280180122705770978764072870564548405802335966346421589241678052331491695235757807270757876398694704767199767040738730100201788418366928718477974108915862811899684239119385267269814141756457247915138640180970979155375238810867792810529099353042772338065505115446972051652696432109949271696442444525749742050569928503311224238758105046105094433102515344758594691402409024571633897666872115790890718652490429221723875483632820566849394734085324517076078216534125279351250674563751192588468507592040292414624715975355472625083440323115122537535456127209682312429943347044955647478084130594613570293730293981611570076699350081942112064735401989268970786804228838360582485531051547129461021372748569179141671773493871221479239821199029125923203364433432210118183398777629535764924590614613888459985560329701297897122681685368827112487761737311382876881088908806736805403532806784885887503509729828991356883358131631482432081024899243061500861359833963314197988778878828669889103109506166894386085113784235470510315685430748606507892376399246921593571568164990604862347454558580598209875145144629633623377246351236148165679199962406528783852806412413415695001107545439610468062758350863050317434419245196848918535972283996652809247517449530526987967702668487541533880077336533436879878414020792490055933579335650504087501308996280935638957239789137637044117402457592098565638327885621718081247594253271620585115297988188061421040306525882491456448760440493569272179906796261106655858000624814836835659839384844179491276066271565652303160741736578069310089719425931036189301452578388732565250040278561576924475618385366960480106036776553723396310490511168571815131742220562985992678539658927729349421654263086757015146928664364208190037712086500822948974454122130168645740300952812479734895680083649964613311450199774962062302344725615780941377589534841813376930580453275379197092558430600296533748999421898702104761816975270835424200552706963983350721535273077497069235660894231536714191100980439667541553856654704302914255930696618037759034867556864932779928993419962644684143731254345850789309642459206377461217763494339826552350529440741538695520908045712513770403642613473873286661927229461011224140234282892306177479468843213156662180698190248604289357229886255060960855282473163377921239478360034659794377288329139282697012079176887299339486479370736752916432532007184413935469550956987644936129388423859561372983468425200808013548373437172100581233290342599471202603338873431281102185201931342218063619919476634372071312957099792293346689342238658628047085457973936375422423551832190248296141016753782436660837538424769667115251508160633222963749761452606062618340249656248221574057007164211736235165602631725944688407430868067639079867062414977427420325602762744930585491154119292235217239589162976247040663125692068619800783414272815667079913079149176860797963414677490278760359324616745785861811890086141533656648256357408233485560406821582266447532355838683275267056629008037901782361497992484464403005797347050582694569363025078094042225099623325531232740897017625705354143414177520830663280144619300576930533717496384153606015761804024802861007982321181134478346968885331346396848559144427497023399084712502282389410141394141814616447342163747860447055529255124785605369304432152126914739469105871744578414784244252898824937289347528497701508697119889131026415580552420523129474303819576301299129315870095420966887030993067074110066624529776701710148382123736844138158926979462470298587244051068259905327084970386300542539813165376537418766166377537986028496883645436791205654880807082163226229975189749844815396876377721216876133253865025177485946901519202360996936340338091505612310207828965679065682560530668238060887686882060366447231855889280773229169075308203122091447199260743676074107553480285852610403303531738141153927398676861938728372352120531509733330879694398985914971303361965995202862193757609991159263553823379893817233306247325786471985181981635491977011736718321527866761240437175496360742855998910652706341068269379245483947951167153912742677163677847626630545901664161069423679057808437083909777573982762121503209667326876124597909742520946374850095191445481773075499561600104131726291134866326792483126003300208880797299617771143087756874020356418321843716128057136753066303060054518728888913107991768717217364211773908378247387580450096741912500627678715108345143664446023000329718769644335031661870818243417782033291410625023807557242101341123336236793090734699903272985918516155458094574576479909182230080986367091668061849741423693774014174368833402735618715119863372744663428337889005414824399261786019855221656230206611261172097121716930171031874838763651930385540543803417957636781191240271910726651271450872752564757504498835094637877101203980065040092043723904208328844421223154358551363004188178918609421331601812935850980894259599945684891875205459201461271503493435843002292047269839643395641276304279292779340677261049822361654252550723315295614181858244371548746683681774342336748833190157820033698214730380736881159791112496190414108141981316906438195544884278414562954530543680856031047491365339016007479657687872935127133712036225645523284262598933080757528283315843063415395175079074380545009551851913329030236645260754617378484758091658032293312514887292232989891100570299662043314417986928269534414382775352289995810079473701372044525456221350842535570948223366619620851980085017069706432861005010766138928904965694050170279786303543548599462204294455075019761359916342725862966538409701672349429890398301610598097294449791954880129733079199181771384131613640298945176430370384714926610931444706486139856905504476048010166385470190744226514892053406976256452947528046311397131574764691387778877937542151654389963476153212203077324890432984779471651667181985289494679731853981889045945698516456015322338605112737090597381749016291237395071931272566473525659330257059865243290237362153647403414686865657604989261138268814419625532323035998448933572474526896944537343986244624131539465038059098775607039527754344696077203876887657549429037322200907207578928930515492748676960358933751664825593230949529061741092645094811086982101199522239994671938702629420095353258378830247352747030324778298305327857796870905112803361428067598290176786650176625070616636757973792049164038595363511522565857918920321017747292970601297597313997483098820788751857827327290101757754007822028276856101689665967988885459925405989095898637178678043596285300030608503371701066870555480511355963383731132442324788194474336843820925342682979629099484588269148343937716459684210491687168856783998827509510997252312941424393305104693742212199854834605507205433988166602053555574196688132326908355151455117762881260676999849349782132772802584211960727411716367698527598552903424272060317060502953405614278628608526226661376079716573966325562214306777852353040173634542984521830440992376203573977410376414751306820780672458941816809160683760329678905884959931329894886735295388688534293215187202653371071788853849826794887309717739076038025835032760998987357927963849310810612523517000756622093179217176395224707637959446784077900675246855974678150302267736314903585587175516695709761577750243880555319130420483839818412500705265642244146875408079303522021075721949520416568705112714089477996389649919462739093412617352314858918381232317338663906365437934838611232492414804088313755337299224271925999333180519516733517009334900016656141727444106536569923813176400470632912269200943199543222515535324663136719359118916665461073171759820995762638735167085149814838120686499033155054656585860295270259189823066551748820156436047244865873768179480671580882918898237354157107122226987922731814030850778294679398895440019274491427390973139488553309576632656706124192066575328024208216367009092697642439241923039450978330205289807465880737860741325687446178695480648542101036548752902926890266469303286521490246883391316469763727564854612739360051680126113177948795720065414805419302600076532618852572470081718435854949683224362051193630632541983066547479311554541763863658995743307113701136924182540358454332708026712884920670328266166409107530999721210729915177948530139336072462565326833316581325138921635369888182254387888042818154574817137780047021735191730446927819111669949133741555975871239529277045263791574226766665280940649511420646047941881302566617148554160821796433320470855665905447294750734229069069866997734206970393303869530296208194853859443053181067607559522239156772292102408057180367530534697900301574748250760042346104387074402460145539176486041788427139837562827745869504840205757298920784593699949144181241465380781608478477601555042816850134364272058339306081783002075169932226920979625804659680000335485747592355583106211388170232395516158249204884148780416785668858187166314921882996347276442359834789407381249573764090863885491275957950770034116842885094124371319788655272686566488062306803120329844650130768702188240015199108822921260226372365068023223067495071337401045907619192220094875942001080234449133204939243147105078826854502042861219885486878912746667399285502095145465567511814362713159785575937800549758067530142188431710951493262581776568151426930961918631171958759712996949110488472332269562864276004331122141571017284393555750949572245010627406945158121803788336562164106605164096136751707478539209492153784286897465150514143255949214756127624395725211452703508550615338888138732440710016815374760885647374656747639634919036719631732310985670446664452363898158209038737746741276170706860892935084189326531286089935368591994925394277970700372406550793053504699568450776799790541933390830966748017711461812996292935968991421904675168220338801637362497344145543166879951638926232513778254696868333103928471696968720576884667076186690123239137881130222314666037043171112941112918160871253802179660356858975741757980540031181765016623729112675870796199174328800461881882922367751285234535201763365586453708326662194989453482662057040013481073175104746795998599033220043235048883187289956614754838448202520189326009005088678412865303485276481731106552821409912839803558091432716921587706324709198712844016095313554653878202712681629057409511004570774017717001348496287260758385617934624821948203917793370444798562017818545790396339290528294135446391448868813669242136980161686743854069139703745605599177951762437809658828722854020937795461336025258153985387432664703553276287997198134151826967251982863845239364331477460033850858116768818147320803261886312422304018593902673934646987890027923664321684229470325412268710162068746837336035881197543618198419071953941952395468833877785195177668846335738744084043814147348102866666790285070431267601312890887467332318237544440197972947032963818349967947878503121465822164942033629446014028336060948275687855818841942754573462242009236517628904367771634097313895558884846227400009378079443807763798331760372816328872468380682568980049265725798330319808518180476075238188219813368486110884037151830981901572526704015498216284500660725174607682741336923504529566728825446301157686393791064268437882153450477833309283404653837103098354776780831554933849367134762440469322209028036820294801612206669660263758357564480288863622873802652271656400741761978295535771603023289727390913216766100086788505421541294837120284548206819307214150189464014806271490752664423381603257589263585118129117361599200799847767520903995621491513398107342367086947464106981565629519125832853325123340747341162585320678768657567560964915526718968797488593019357716723950701226514041356429545728628131402873204336788934602918458425518271944656564338579762088823641606008294885602964119926509976028675973698474250302553777444048662538474343693511951749642967362932553975488217800626288656102540742652098717162712739225713481814131724239599485235440413581692804084171640537558498336000913886258531598508413381093172092609800427887057171677268835400319766660704831426641787853036951336144753388168079813210642934833236468151858106209811625471627886113959404752078716434345413766929255164257737039072249814660931265536493232425820048723928624481491829574275267415925570845789278832069181794428960949852004936673383099105117484151071380724981435102813564023047978865847354633880102269107986530883545104472812734367343755048882078672314258995628979966988697624290193371111965437871776373491406967643514726044602708448191953458315744948377987717031008551984179523682300899118916975054455399556455939035823556881096290380345724917265474086422057208629147689955374465800137934294892728463850276308898768182743958942503629800735357906910758973158964517529086529675892176589024391006335065607830967954950777891031737088402480913138850254738678757814657063783790781496079341893646013630213774620730002430331426067248300913100238294333767937895765663103088994778702488955582834683447126671678912706232084619799255340465828430339832009618993577350026748763804912383599710716618356362760991358098829627612105878955516606936630984443226421912468315427919565016996433773663656215819418668728387835260346080528131341263532963391498020607886604997663288284476354840609413780038904305745126660655782308638408319258904643143440295091355785681486711601618066033616576076812381618988283808054752438861079285993406364811784152989166927148153467164741821962359058034615898611793207411292797039995864060109276057295033082696004480975392600996097379317087933779621458749368619106881911076451204651242151117294617597204238746640976178914506426301146127374206526270976665268736455617049926058303841011543742382479786481890543417654510176945245062268391093694519219085870774159359167765801868727195754959764609617338499957764367023252386854283731306112381935811828877090152202931067275752625695355930867797490698064496516054297049679447447846399084272380609987106932499478829683551073412329151641629118359260274052344551123746356756276365154497062888767171871226612903504488505338803892283848139259813501773425715854587851060119871480122033614772747024112007263242488261439420421647786009811199815671741749660528210162206019207145514951566426153346678981234721674286779108562991996216752197957743778952898543104220568381208833215683060675296880221923267125722828850150929084563041999253205804022251519312942980274973365424378719138922621905577432884789044505915851569667800801679862770628186899024104291841323171117505065347617468613466344249473238674576689324910426278687929554882624749146308550695185412323147293654653360507401663843115133354041856653817683751781186798761195571845002846639312685082966728844341151210784880164719648253511176024718503647351900267824157968856616755757779603728639622596941342281348560384403013656689059502721907032138281921835248217934223148789008653488322289958579940805518418439567342052098956299506929130089977358068548411823202410955449169511823914857159485813526203533274492976213778318533341065065033617199147577365499745118182681851200180860501427063718166816363045754026688498438222699534945753505155380829029527577133846989275874054575975478653127718822977916817069346698909543791001521865888473949385001893313096950144706205530265271602203310191988929892176817530689602574094595171977258402972917802007795231402604214084108922120225335440898490868857312664868840814417798571606954135474004945927710936532841407196828915530134258079129422564827739754934872159818413144099912738947152440559699400887713574054886231654857877439888517428864626958919387041680660393472742888175981496135646024591336319830636351438601731164594295860964837058453076476260071856748368988587263513106581849318065708939144196462100853269955718771157106177775407009288311430022900555291578490820293456224069895676606322020694863151921735213392807313991606583238925971817349472572948152422730186442179845848567388696655395261276744623277136157303613386324812928588859055547205136162034126931353667255667847611785493852082143088979110584298673200498889544067403748129393222963382034362241917202219441950882443020063436636858769526878096238444773374376632118245893177002799168413073758377283786977884598251753213069396728011828634461331234232434573322278452509235035226684328371875128491028014563004260377547581745553523467289576553225849900969137731929595224601482011218587361110355335295586271549665613146808077621066810781437352485615066749925523485825179724065654671260727174434899450867384803598845430932962998797471451838302370177593794890323629271189159748541037140021456459959404248577171304941442515808640185358376270929569709981949545038922993201606406035271601564851053869623965293328235592663711049840016381111818458208295428464109660237529390336090608552956424326664527975068995343367682345202282099534231390451794832332755109681822618018221532416015146794034555499871351916716300572415218647969096221826549619351003510888782099010429115387338970046567690493690826106840418043453696525424771674365461585683017074292228910288063776939086616201823613299468647530369361257324792709135207139499262258931724085605008941419440156808039506633926424348882745498636833968128819974586313421424968971215083955308328815302045873094170414675727428305611620581363912698058849823414800895874741623328082047404763013399092652232808750272614608113736150427580555266729942982748278351484895377781050145490222445414491035566832384538948252911796043876914635193744795080351690388955642606445810526207905717450418399122488550920525697912359796740276455277777978990776601685623784391597391729574541879278234350808191606778790197394407304386458280897543477998822528371105779612396250241665812138127795543772896193208552118591871630614862857435674469435931834963982335917182217855821485223956205507982704421206776527945743795278815583170180491579647911817473927970749418190371323479898992879322758774865735493094951895673397872329864587094441649216777806556134209244499664554250000774359035572405084947415353235060922455452583636232256145058958651372235190603893410675439898103173356793796321067614339550642623982006516826081959286168577728768802061290626777942869801695044256615018517470296064880535043521302957468821285914659768074806084049775799346705788495731908332043006505337043717887967200008429166877499778262540185607246777159340164607706875876106990942363430622468848430826419135887483630937530242912107219762922309275554572881258751962842621155215597669893203929691291417350544494698231053221602063750406561561060376061975949218522218060832618312680558585250160099888666440874794206741062323646335254612361540103217253646945652084386046962310671800969926099034659946929498885734476373789062241056969047267284772059149927769200584676356826323794752115838573097998113800796980367227781057471933672131989501346597937942423234384245997648429298512298666262472412406980522487408631176696104836692600382960369716671547812016621281194048762073448388221507501385184516143537442901859102944501310470895684008659129681361861288838510843799361494096895316785995371562953118094908053012299943179607430075302914301896338916104589166313093837545766293148694243115060661159529897703889944965098991428557185406690386660515412913160713846508152883583559778082159234680620352676590145605940425572970398678658220669980415374739435000452626660883175477894234473399615997710765907415401293102461060147708513838130775536666813473139098760394478578242074147781642363543340228542580308438841705497690011707371470208808743268977745990699666740217527875236707189490529908018642540976879325081362829598586596216679694787663485518901737068239658859212009353140048543038911722877231756090531630364480536640865804784009117723485678119154393441955280455545797145360300431838951913240862301621404585227167719383112140539852696392687589620848834551589205254071655883161600936381588889513774868101108970906058182940310825402021762549652691573079154515598454333533258940216856794765489792655568381780319862445966557110622706888660304676682508135768143402780157390033986079900972953419630166153985120216653690714528311566951427050356165642926626223954861752790877195878297692509927053449545922068546415036902706759694488744927537308572376571656005314276614482218350838132414343903448059578805921327035119838962188231090167598658951912462221044202686910679845537341222701000810080175506786950267439761854650190306785524868275229756544193269037127421614861172101696429744029994092458057966993197914554362551474663684227746702600660305286770006336114687185440218889402038839098421107401843472531019847283470896568896318914902184234101587647019347936309701789995967053423174693601859971127572110547477148362742951991530137807481832070753362079759258007829014545561952156699202603330073867526947970467147516220404575770715283930526073942761040577112776250348815766399327821709611193715965614570016781681506496299060660504180830820365027736806461977601343298176222165727484804089493418985623904452722360442087682716150406730061203375625512205006610987815030290693689094494812126210672198934748276138591948352004342094343349070361218392862799134404402092577994987430264759428652927983756321777418457761385693849528647166718655147554311178818132514330694415019396274400720968134481836053069708610015786367303689169044100141552647670281492224785636409584827158026663054050227769255271366540554908476946667447858851019726512329193576631747654952352674921126571476667165318149605860894169576179975059656857037067753191963127125020235982819507782308102878022671710805315816367248042326707048205150360643813890197922386697116882578928169825461537594601606088701206356895272642068623214602850796451849317457852484161049940324472594141040156191441833219378278392529825949193182947249123139928934371761575244165526292175347040118636985059234921571400872258303548887789771351274444541311281435817596379869238994535795207529961852983720080387753623453977380429307278816692716371675542119562340774596429658691313189131113743068287707702130965504356153615868356829903493029791624041047880241571922480905860983018121432837275618877792000107440422262133112756375737208481441191471405660907499179221816677184035727162924182225586388857144332665800501319862625563068270540329830757730826079306259731623148845905814899662905485673041524176819300480352956070404678204829770362058218329752965519143135755059220544172271252085152157931210596431054165042648362455914813334095775165379618361634069940144634093726578076688818619324314868565982790549152522381217963088729960188351457423108131488052333206308257118146481341996076884493676271844210310442066226984216296318153241375462675954435797928496702124483963036149707874258096099238840506449512416546765541555767315747691847167298196836270650766709632319377305787686574820990704891359650815847058799748629580539435390232732348869775859202896608902661145448304195797323754945626391733391621776249408558978012825756980290233614091415009504018778353776408001076466789401775110376747223854533202501540054608815605424451221719178928097374949019297654577557183607991069236547395253580137582479701498683229703371272851909563673321721246172709547564567858292074866783692407990253297634458114087333307356441817376266453657368244779430524234804465516943094830091649922353835541632366143160369608567768507831528486207464594954518269449777126440193612932042029045274437099735271050668148265494857494981190536454750006398405893753453091347752357526003243022764952000042912539820275306112076260874997669233983103978028146564520705029446247229285636471521791139881306818815415380833961829032602581576054913209365662005693305232249120772328550993162409858257968168180707138413536733945787307822884174308657417484125283806223000260464947749070062346570620630858952388821028224067594483397306433233963286076218710595279216947306411954587209125709591429236622827569396855072863532862908002305785326736404010042250012160196328460460418790574209818774481457549009961700690829752305943824846065109473409723660946930938162175354970146601056865547236014084670427413776090294373494488255853746123587528422744021078931281828905783476846830912018395383260800311443671205905045256861247556594175700078777181629139295847037725022871024645764464521846885557377793283998262823633371703055820051063355751870105614035267887003654578126228682670392950292489398593959132855156594899056707077105818858267603358917995770501239616580602671111158631509558598676279613016092462052075486634302874937073711565505638335513824160683725405716325266720915081060627905054623830829744361283838925368241536287372880679529978791693083234659923577737917958004345088753016815016006484828709792368205667234337314027185904388925955940252651025313157355761423418672362501036229994541631465772157206827022489935691309006447177866779029320957052859660338491007870543913679227384464231985609641009771609727290582397701204796532263360045454042127161784375944912674879437247904046388140400547771171988227228018067090624087483223795522886319949383449821458354818648348181397125590263298874668350798471550048785383362582647138098887868860084892874292117427831463686992531600668656466597838943393706992947731385967404294019952516389432716944762335901102317264625234015429674359486027988738415978531394219862694386479285432728163302741038142689786545430711564329897011844697683434747608085462527406818901565494379338962940237205782798418391934827468990744292261736353680719054838730411913212607562640823218266479306974217590355872745861623122070385033667859017561991521634798932301096999145671219814461698454670809341056483357659739579669149137573961227697330688843007018490916455446269695744703696862588992136309156823244594517361652594646434000213100698295867042577914979249812295489565098420709017519216485071612277062964460539581186733366657210732716955921331451301500655861690370016807242109290366661339377402435438616134781166796274276694294195017826428750224434958747096814553259077167692423141381128018635267466036711738580703537370356762898724372284711967863683406935787131460018910584451125112458729759825452578744682816418295053315590777057201171050489840012012032246077280056044558323268950545639013558603363297577958468524597901637932042862815821581457160079767666049623493472784995412025238768041877812550498736872196327062910826751141426518612183566253917043749320552328945651924763892165664569481230222649857366215883815444991897899689280378444914251765227272878429653109124317180641228281298185635054785291690030380418241624018382999634949045041818052681805581169969145171151090464415960307415088009879969161482788210529293848000037794302502620432318934275945600596294909966262670563340190632361741440871754007474414815403107989975190734624336347313811552149256985303435955850526371803288122057620730362427859020663358321278975964240997302668789073376342531522561927878759568326391773255710007746963304080063252579937108792659193678282575505873936256625631057536768439103253850687939810034976726613499777269190465404786740252041737751587700190702464071816088013443625027309003384716002859707430083103689371815619139928196709379372130535632874025115634969166045034701178452002034624235096751863495948881147325233144697383352096770686641621412041747543773083460804752226649218723512902059189735059901676611432026556149862370949895380306376791507122069226816686411493809340235478910613658604905875285795301851064714392373372235474767817576271005333415093379850572808354268596314884948868676664663328218982156044779972833836788608654779428174575836660976363436989075476023565929712809167358205447753885520314183490556181422794197488613769964583196270979700941715007145648645049759265065551400497216924539886777471477471179884734132157011424530254429784832914539388104569789426175496455013268553431947801078921882788904951964189235882329137893433333030978593972645090293911413339727622161734232225820700525149530941158280313773300591632793998984431609362435643089674753363157994811488686729485419795874389680763577597091476513927610114485254278292661487571157921570146301044259511037637079257279239277986050709166589564097424802022596562655237045054681795713830258335746783711758880009890378782536866304633314610093102668065772150148077374526720594622190474720099005191720356618480224910928859713799082999393637985635658531171459198760048358353741931948880060822098027245776627007963540928638116356341687767948972720491236858848514149285676728892877102984580536935743113831590172226634017357606216049941435505557496684832830273489019045310060158807157749582486221744032357123645630674927422370620040510078033656688175255223073112320950903692864394040470516014940126906295628817868048271365732038577672518242216446719223222879104101540960273995660967024485586588261157687518648743598965738394205310467751025427311384957286645246635615374274375359295586587029931055282003457149992657001973055905761548091816767051950430802270758662994193241169982574454953296943431809917834844477962390669358625635333122185033565430336163265128949802206403109835679545858198590854390855848208291068934400504612661039102735078455116433034827795973139864419178507782875920603656111183945729414041176886708730629205928400588450941669717693684082148852465278507767286254220065205089049112554831010302581683810129920015517120447420711033251701640095747560752242086225867960629027719818821163133083246347017183200691773608058038650115565761059294087280285217774940062921274059624521768113238701265120621543583363851822443615711386277890851678387761226387526763699422870560815433770330114054896233811548401569221520712896936918971030002186187341020942995418280407945562497237797106496142314020133000750450386993596367725077253412557161883208047531016416207945691055892942532934056792871650417603818006259243370519710862266608782723585471999402615135159616777239049731064772689557547047020296175308918835764581722993144402486029202667589329020780886503622456302622390358649465994758589088397534920292035289082193018628814505140173994949952205950896859069724410749330768269603415457767580299851009364525820934017423856768792641029878526764758289041893896504041187808863313033364578521510979971133377495748990048379186067575767865683823401045667472948141250638121752860074147741779298075363891698469983243689396848563320469930008934250401886463111890510315187716192769883691967262186173902024595594590475975914063100479424887936845990714080894322550333468915648563558188647834270667136126943319005237413400098023006640643551615911050535464486992634840010497064968928024703920202273137937662709496905224614478143695604111672919393486319252260221390391243658168296507521128919287753992852805938070177060818955536118539205590151354561623993181180049208826939172100119086236417755963619110660552865940357972568531211520331201842829111443148791872972956012961088650241322738907713000158552905967121828305298490782129232063732282495521386838764944807757108248318057288420882522812891351795440566572186788794593054967130537169755318632612362017486393548362233041056481572806047579512484344621684729694847651035511207154646268259969178204321078592700991341818194367835096529464400531012618540886921986852085196403538037423146215570187932185962753714009370553016071555123857913495504001974878801702936154626575827064818927262578381862288944247345707080841594818605689181915807300533437513381730905448539573806415346428790832946162933585299894732479747316324166471144291296827857952233742984862125111847750084659969410705104885305900047264166888754189618757942710095362898411673689817702471663629813314309912658105941444442946603430566632355856134411219693096417943188614371829526980031099594315273036191033396956060024343354354524825909719696831949551882633069345534396244646834093812500960892588105531049587344418483851242126099695888024323952595481560993754373986679476661308687783799460067743017071605774453048106664102000829305084109508122749190007558176944665988173794475584999112191992023368863688410492512317538004781596076195908805464483217529797922459617027218031360328422226564113199345941435423086686659898521560733981175904032625129404209934717051219197396964796484060597478249586952584305562549096417579648690162733613085079002398965788610431140849651671877382660199890599229433364991598395712593285673439388973355605724875819655635312345549677631193586623537254751045036622020908357084563928253897775756512752506944368532267479406581069888633900248786272011929945055288361911130628429409550312377237893527089923058273958480763583584251011616124895433660905001944188136380667351352733569223245077218153781049906605647684503154028065647798543899196560991559940572187493395237306722559047165296931200017001591096055627529108352621899309776044209032978158088042404036070323022125039875102082972127817808637395251564989743827096095044546729836406758044527744134980495160990045598790553008295859651365390298979357931591892228955985175150168420721805630325790608087494202286883123462386113057052859616342512763896913827415535833687238102631755776196222480274648661797359560985609513896169251309368078963314725351348795421406251106902670344152076803863185500091049439452745428464534019197262946215559039067048070948802660884254053797416527651886508261157164019467720859270945972197068320039459005398986446799197784472530188620974750873584409139152167366629559075639262311396349135563321723818694223574574769373321145286182125777028187813783299897651134097947962499780650770886179782757384700220034133520143485064883352498744586644628683841619449355937305066985931727425990466197586072888701102187288807941733105326215099276484235787870332242003277227978130395209236755123434386288830857254955567018721195210838593939622486933541083185835336541542850694458450584043385272615371677510371011246251128063756784687646508319681114156289660712818529035223466598637251908246723205211601232001300824511632295988268539380452518206760081511954178913954816241891129603270716767271350426438831062279946278537977600408327508859330329624285507279936994230374398907367364856032313689435229468785480821600735122964264495573991252148448540029386082151281504984455677454262955529566842532653138786548940522480851201903026873549780092674856173175430376256314670772066198020900449533155158313061728962153432601249448831696061907482904961657209846815974227707432330649748798833608369931957667897891827057259018094181207702528488265500311560212822861276869793707363393507068507278012514144180219073792803673784026622291799422277717041902417010282521946387542075018251880466458825934509769620762486612044923668893294448351874446714605253948711451856004900132470876036710279499324942030472582937373924566509569020010711035301792452112708909703926008553691829294746213893035591361938282505695286930717538489483359315391296620710431465792223009390457889623138963597557786157053658595693927205675869718861067982740919433612159170918282165028792280823655418445908780612699285223298334258256093482531873860992219788198841143709012323007362986715253695401537653702363588784330698358242358858434840365839646998517735117425541081918516961867325644831882151953090301405765349341684317650212877467952641895920470016476841908008897727939227696057219856520045580208010841456223803770002954951353133912828238597265841434014124466241779080928484918262543814220861962610975945325849496061512558706733355523377786454855149528381225431509421059788536719287810848910339008835208804858691188644924744188670118496383066786675194506651821349470377881636736435598401433165825947494738187252496883711390511851678823673828295525431467191901937692181353516483921378812788391789968960904278574187487694475326954672962454932805111333486725356714016638710102584243031864207267684810834383282722381046340301711424090531337801181014835969703187062494928926513312663957279107790717156323413269546530630097156023413275508754932179577899384015215285439813565310218767648687880463162363305234310850830678677746639904511195576574739088416498193968454604594370304870220904231139426443166483303083242371142081605384317316779699914773915405009600634566200128064074035175017372815474933351338830309021019272250513775359803810636926464146661603329121007365150093165640642903108555556387896407330071703633776814937518699675157302789273762629999001512299858453989913023535286546896406818887919201318903791400940819810552168162931512833842246329603198449048207400907973643414221030795845593530512774501016231732482636620394506115531126987954781921229108236926363940439086781104157006809093501946819467981550282564638925568926005670687770987409901690332811991317271387590477904981721597952036445343940555429060854861327938932546522893650859218769112780601708289334453650564343055177169530608213682033235524354505678388196491623448274812588554662191776770006175247360051484385184329251215586901492621402556173713381964603010565786188809738457349363911376015763370808886942232171327836528436006237473293742816627588061837855490128102372447863495961180648882255761347886230450344227372516366724963219853170862632317439334614960393598926687484499368472554039278682786199817593830778330628333374671563022328260023541134482944780770454451947619182179727242328783052296851207712851892198553207709199054448816623483516929705631788315411348048549373283019484844221394318316639393204109422330742924605826633623492235675190702196970973944376509930874807009383919191949332876272194478633852411290294589299932483439352198340768040603036129134990167673261592408648135264172106473544055438914203001841585487220849694433796763685183061312372518272147990494000638032228400262869277782060447841156263719139396355804584912101038179521107350587051243871494659510501357497757155233714332489597660114657209636302064321453687199263088655221834022052809863342836955529725154631102894415421498261422952890023537686528169414087891912674244019102334557539874752200675785669222266591820262110408928817095971064329466925541856725582015209114947029184742369920540134593622595573537916773496098813499942252890564457722414608705399651012003872203737667105069857400406701067510867862554901060182740802658788519610080800367185141195090308569288896745894018585242642968255870291591799208441824733241318184551709018599579592506678422830164518005695525383216218940944700881064160604662807142717873929109403464439737986687535143540006976608680576586765729213000243990289565263103904944596418955145558664814317519074445722637263901083104949757242127643216930961327352020815091832001301771995288046294512219985586704794164775171237928119525354892361673672622341395260655656943382485239877085749626629781452010584957759445430475929048059068634438714454067526435745453826533444181865940990718867341198976153651337486692576776450995002384130937855448276282640443889488579142336677148200639103945570167145733789394546582781166328750762205902330733245663054178077409192972397639354790888637613213866841819597685640607016849182470660552124281798016273072220612782452097313804130353304822051048033415254390152033646697159510512862494857605772402148407389614301032713886466307201725869566810173867339370384959282480705083364235362041862969012411529313685672673601573211984574030961770367716281066844687303207787920323144524306005880555492755655479319425631043340521059767347633193039816333307247501687370374402540498637453824153052580956724030195247806926784217600292306626640392517749042589390349545914036942464352163311295016200484795676739663495155476773022932447293707051720359869615309266243860754496807887906652512993597804824906321354728511284408144677601534244276522535027494670793885508381693719677167139758333257899552100603682262439873771605001448742570696810932992152294518880475304996785836132342598650626459182822671339541025343222981695535813467254486571487532873607364346508157772798598328090139876686857590811147254189606939598180459435500382600516364944403628786287599869891671041441171463751710284800736390796424020263094043752082929621517383433358150605572227363483812467339945302040731606653194132813987779010011249639304699535753626923812436014260564703275439587008157323962796140260334556396716161138835443582178672900135649878410268444825416743524538210447500938500705712755064719017256096667407548016685325199361233790361277202192302563236238923470653089799896674758855530023873726295197036091733320983563732442436250065104998950005939569929881881838318350048135708220615862827188743525596003472562638429842364117669343918013341255702076041619610409487101069923626895441599124164812631338023078206577771381139792687340853846538539219123750021869118479367693185323947446191894787894577988612039331982241803271045008836412136763085475648456276740036712244918131869487064598171726949804492424294270884700249935024961755924732660527454677454525228455354976150528136683564524206244459733428449249856772248182374888068545115152053470284878048708856201991776385609219912566097682871334846543726824757618343995144700670254371400250647187264655550673302073681594957375013372411481546730488419617988617337282370033968500501594462987466619453296912222947320584406238189226823107081754944090246842554650647911322683218236498393907449244007537822092561589797348023952684268055424447882899200819155407139714854319799524656631897819516567074551442877761929870540551177173405896918103490300274181651914469793662895992995039764662405217846955276852321009906026376498517586199107914358473018272359803906257076358576621829859169064877991740146530561944324853765182842857994519507035509620740422136638155879848616112176440114146244191064960637681256195481410545043565483284131384999361516150799406090162577610979871978849642327761328611084975186939866645618514992991503054012650369543569004197560683251174121907828717244206220596615622112935919301406428829129297711203457081556105512095604248083950392008515623922035419929125044884295050592046004973455963653317490244968844914323571708310288678788779947147031748970410929358300871259466273928654437672137396262336097965975461996093286854019391678761931215354789919297872684603203681475325150953500061462020381762744602604332100731824384605143004109448938190920584747404036444137250136738504466994389192668305815931341932642479850293009082650448565080701199800338052269099450804123975814868892979452790385134430540904657009115812979517949485464456421138149487851347186479049121602888803923075107272896884575952072725403833851324834341839392058454689528944525575280920439932742159790039452512356074933268467727796543178963330210241649406045473335789621766366741986717900805890096063911553075300823066988595586222124868428012738700475571455531864710843495619090461391548020716866067436812826294127184107817129400623510092183338907519425998717745532797591783378887349201418626103328944954175436211067511231492341146208100369687546297194454785901454546326776949020805509703491057608127599570861181441710736299808390645996068557453064946719781702277014690750796157691961557706068715784320674809708296273037361491057228159619326055580817982151747542414676593074472471474262214450706871982337629557545944147806169281696133167007953650438623301573861198870084473093134844512921237972758869815780651364704027602631182114122312241158812455092806600692845794571023280816395824762498350725764238390344271637091530681965570794987011166678962424914202188061120948218004551912430910796311954504956433493402248879686031338023707125101807684037745182252728042076561619703816675950603633573598678509446936172809851483336325853300548655968583177852603211744548605346804551078563905508515712471837021847411334410238834493794023742638553008574614409942281595291353748175320022395282831809793827839492510183266127951792213400330750336033184295884445570241919434304427780199876823687264085380309840091639982749248405867575372564330993470448024579119902226571013374999077828335899154451733756996392064592482526664810706673203692573935062961525500096145224100236235983106826104629542792390650080979094004478743711856016061270830584604763400060105133489171087894593571384901138077123476711852752468882994328564711562751233696161938237959794955018534490637927494945257266230798617882495914335608043461339776698097667663927316187297313161705941771934942105351261593877532302470227968178138891912998436999828977096600354079056881520431754950449672967916335461123367035314603794806722458935928905573404531588109609102681375673243579588187841465968092101445921156166690154305392000367658059244999210481924117095214464510499475435066226887909036174663097853774156635493697236854684641609595914605235674392535481783280981665390222213721962967618887189388392385679655340709114690954859029469207709427474085015353466461113312919662575649021389557794562095667645245803020670863224758320101855458909188328904690464399722187150229606967168839814630503727192370674660249136035339534081998632675525384219365583023151321739459965310564450013451936871921457686192370026658614229597034521473488011602759847269498899766843150935824697975511850879582989295788736891820688671762858320708255872367544434157208082334569305400660147077742805047092922211811604591305426313224436051942305340756648516329826212852560042522784943147161864850722226902936380237873910943137006037287803152743904691122243746732734461411636814566411791138360617779092074923490464499272918254386415077995869376712497994784677724795248234868509150110395787369673304409765753751327926604081498306322202740435911103999458978393080734264142033341343017651754536196510463269752718735121319307704085787949514281107367816038823760522514031414361568177334296887831473015519172824514408440926314463395994088834711588395676711726644909821059059088358006568903722574623106230045161379109066388605050946574602192370510720286711271725532483465925631116362540454406591122266262500511976818168230590748262417038757500540455758427416246596695074800305080820003378481228982821971718247571373289732028418149867376193075561186203128919349330820705648188719242102825906693268262614120993409631786493084634062247328161967517936733856707367085981488955866755765522072376894625537345144938724397745996535269675366019322098146100052191518597868466490062179599729338268081614451615028015044735314348583895415526002178329060841385191054765246070964195331491821407190327243442044998959012900533271383130074022138451927811138157828515112292059912161412617123060492186616527588640288327366045118746853436443310021998077224638644029840408391675311378605525047998704564761393796363924978820598219987676550888378782713952417551573680396758755994523932125991653889523111178966506511647607024450107067464079442568608351851773410538959128031191653444467334032580845568237467013997145856569261299254765856468251442024594556190675870980059522094586989042272331214598982551133245142369500282623062223947325389476177881734462268395246413219104841483260967765482577145712082766404625958278198692143477711594887539482666261157851034339739421153261696529187769352166708551949322084317942765050136878664737709627978112682773443347900806542187919098115776393462388045479307738731481987857065616241636201701438553118621386460485408120583674742731306684761793547698969710346759056165224374485685984223378357489957063309648874865451374175594319570597300521115955351218832961322831296062236824658525681755351063286884076365950239796887501570541126017832465299733110704516590790413563202748365384810238832457036682408714179472693232893917420271236920920805090878635931930787464259600738228838873941981566386030005920005574527526401623347774061102284151309488236870745864557336397339850104333028696884529996907847208632098968174462009296786059006893949802712496064454519355242705941115299826713378857657762922235863822381767192450274186580994186074563715121644300240636235734813416085191321136926197625864775957580059811033808821979806331786424990969189978225037436338815178713926934464477327096517609246795703144672204991640650643615407319884214961084212863608719742578766013025285278289534965413501615860617524242852238746694434986457764691700757787156534976886241880749438773513643439883138781266242388284349784334603606513927734971530807442336926941509246880955608855677624753072851601791142929520524987970141204130310490447783486631654282462825702153073903968647493610822792500483405510896741708416840239827802231283682792734534085845793656275594810382860541284547773233636011859128889564529024793854683487915472133699606094220838762271314954011307162862389697853892177499175590707831607179888482331572660042743420987892540987344442107616485375099086781527814125763595350172323385007350489119070865633850691130605724034397426263233262048109003579727005401436867628003837848069774829822896164827103541090067554051930175313296749489913498501146074478599503607266365463531589519044889612796530282207945512932209550308032834820081745286282507426082926057387113814811896596895310242043444543805840326264243193502621565623200219575850555061774472897822238155510647605297114499207105471697676266485872104290170056326738507254776271605858565689309158169500006840333223868054740346708611635576029105239464189242336603457014419781884545920011091396681757996682232171446835518172995953572397146434862430264935630248994259505319911109498195196631062747471530016053213873462122557246288344965620900977551708022666481535886654717592896557499610086145496166919907498933146659333685450732681638549900787936137239803792655739213681151038607714472613196522513072615099510253133935053943894062623542402420546537304927177621183784904337412831575562607936409691448085901005025980377828276319534700732671142899696063497103075411494661304155921271615515745415615574180122667650618146552612926284011845197614758547193818706076812600664566859308567241374412772754174057010206044105605320474623728898766048646364376435353970359468304322693651632674573494894620204869242507950502667669967590972105984753504026629434644692165264064885449818174337347653912687381226099615743853140555184435960222763128940818903559429795507121682810093496827771267885826276517937351634783170894731511064526001515439483096821853215831607613529199965373323521943187253080816553240076385965978310757392405114139205930763757726852976553382832117631627609744947735486704821054469431326739243974358040823172352715936363716579359596499394288937131584691209937205501947557790799451548319392863613547994331902432284524994035906759070938432857823322746616125313913104644293075977506511270568186144165386623241559864256936190162251034995707306074861117386060656589504993679016244160090216427382714514171234760736901938144525487735260518999545545009882253261083571555113726919418143239234784437598410086416385093864422918690954608613962033214622475788604563964687354318981102285775152762642311693243129805164781112380247789373126181213549533985280109454488235609514556525080115497326396875176289749691068253387290173256339785865323358381324372465661690402499601313164025073585930764908777674963813559992423682210013860865812742080803742694585727633848514470857581856378963593276725683106056151835330088322488099903484607574515444814919943375698919562524980187710122800816032450488240580672846515104482126970740531457293739767202073373179598217186211432361868795781553473171456574459744350915467060174034275488363869945674812684855633386411437328464391544630520320230277972548857012279802217575747403891835219403769150451482536644280338058909314408285204274153372035113727791990141746471792561095812861166903048162849575657245832659863538771564132264565304067868949262456971782430483389730190761180624247932845568494294326611902869297589416447659386156602259342062013446351302948142210445555562492227109217030536119788392301244969151768389671156473073942280295819683687254381216787678026768291450853467097362942543923550914533306308974335824862430567897346021014321392851108708969970779918817398018827223324023007020730858936102499662446980710347174158535914756107662551121026667770642615003876522240402508383884301981167129365540420520056786964178044389123937317793382417676115956493124247229277913377761939793172880731402112925694756849472713066284127332684131183831211732137835897510532920807217568064377498642301323746736887956914600026583812978298462218291833218297854774154873021218010950464847469669319436960508608455269068829046350970813832056816438573001771512763896220132447181834602877461319736643006941334430916011932445267833625137003039160668303275001435218954890690658218571375111579004677929489723506713020763099413533924922244554340122960692950062341841640722398971895633944446975098838871909068011402088691014841991936329491755095348674512685080380014668839658650087478309000928315472723396151217871464855115639906341232027255028821631560614934706564551746993756067208391725313262653733854034281991326885895615535699765426385822668183001186616377617543385287391356018315597471365109657140851893465170534629169360376062553515742692260059078841400547683193511802152481553635343591824550316544206580624007146242930312760409405836220701612577213500428089406349856678344260379947161047119794263916140277117590480729241329430317519700201834094096284453849325851189167815643296028414329428934044847890801230368816170606697832934516677536971287809566861884668725412593385227612255396369117230282830594146452883634299188927344678112875061068071117335401996927351340724791026640886475530947540734971832116367823555532226601366856360111792430748339592718026158641844101603887681310333345286435539208167690281997737440447291331410194720851601557168944205341554544252631837259803992612664186040445627449904096439035587362877040622854319136619004100676578987632028756830715674505999128926109686990344045263530355666688726725785357569808507503384889289972528235633953245747769859385192805326380119759263963215755580191222679293752155764239578813756611027823231308686497201231434480291788499473022943462558310354600581005447004670095133419021440261795430959841225018902156048514241743895377035848968830085097860991828464416974090809948123895961837891156188173545185986169801763145616599707684843581608753040473077438334078225858787052621722350954796458231692817281740796108676310903172860972611088575282636525484784961638074695424738933535482631028362207195286093828694790120775825346903463304370026484768863015337776153199511130631533104326712228358006996334907894737837232120626176710387796004258314019609856329060965533081673384624028633201639332139559195556172915661142784620421130919330769207201196761432073206330797027402786089695461738296766609505011444832102108440296104540459078778366468046553112419579561488715450983971427767239280997510298562652013070879274007161092914578912755965445759575309561710909652607945413629950174088196286519960728486841797236386769080616424110610765924520779221349090603510300935359869564598844299812194663671984241520140443055958709407488137118422086264507673034972118778289410795746717134680544736412085592617546190629303727485054046502797953949433361900088316352226787048256893091636306165187463281873798154030416280561601340477319350750461937478640762045884208879495609861181796090503522575091906810092293958533809557869818583588301554931388434450486758507447925412853979881134382537006213916913083391033843877989811483884765207869004538743670450257652093572042588163654310897800797164016340345402539423641926097955875798566418545289612979968378821904026659770579623555687510548794844157271689252261225981239521778033529375603539769696652876438351847024756805324436566953710611893556651438307325914860554561923682603387078183144060911267406602348108083771692354756257383087944752402145457402883535504047789133848795462330191090795817735560541616001317946715296867197996475925779485500777117125899780451831054571440808577899114080681798271685005254277536809343325879949355279947250737244534677843848008744976345380965683364026469172160047664094658079659576118877026872008085908770943580572778605674601364637180724154381337390311395445836014051127266479264531936149671046450370286230811745056493790450470360660173429519703936320065341369940196624221209554376806236610083010497148044360800832239143867308063265539746580017113687847675906488484109135144625849292764370537039411116489314637032723583047599340989629932366447848307594543308778785642661978520214649042187319699771482008392578054822583559146865554721372783116799590649600994420059020993447858131825611186368486283456961073045285926893114258789983524624611166238871314592807705290750260009204884372069106048582963588565162436842250424373275350444569274106946627379779395058312643389156277284878879177328243941227760575084308750223777950890263783840850480274414848836395241444971814846772557572873036080044555905467651464679022711824100809936162382456474732669727862238529094975901176194042631312829953381506517050935624890763238405245746193743963249749518795574781821397037006139504592282769215104676103919198657238341932470332268498555611476884032593730198694938369650168957905287342867022648495967593759880659379777270020473602149385961332643626111920254085989298560106223029203562122873803680520568948666921859694919516489855643233511987380095321385882664090624227704660792998153751530395793853859985445940515821224290321005664239879564151219864697146642356150498955232286107706669141039978239714613362350493188980095164197094922284598420554057607528398086968989809575718208003746422154111767779795281946394943661974648486866916881046196780312465024588552093966543452889389102875119936376987286488379368430089375614548791650266583767095257760357400661582440538481567752605971779711673352911397818109615270796117607359101685875875654475677883787238438639862566982548524438291671313533317263502810476252778679868061733080180477448666255423127626935299722292037778367586007027583858307456998514379954129877039233531209137076582530330286429926888776195928599012848412285611521483716910951725101286127329684288754114003270615531636832170505823165226375915441351649453101042735176290796055720690550589368441068876860714105918295668924906633439338876703043772980879513122522355289515576402850085319417387609237865917041545970896614918165184276806322586898873486892307465877070476215819256197381795101767960625269112417283464694073195262969410320075066161899405407950766593583380377894106932636697245581381572179045473975969259982607550924562270865868404790359223829915765274318845903405514020056362927896722898558131314857626251759941124393861204934197429178981333847699790725222787510504183015747784316731673251638038680587395777096130792002312250977634809405467441822131448732872559255414015602108240179554864832903657572960402402356798950793543904881003462943428619544515756056964502661532866859351793957035698172395467355740199133568074103764277289457574056107461624368329950870044645051253038639953277099848295174596308080419640823551306152040164823685731200811586517464097498246511290844096774546418258811440227136566701625845480429665530296781812282830087965355842155811826911406231180654496902301969586099425967774451858574905285959448114189218285622253855116278652543701083262958975013717229530093122730558132399159944819717462337160456950396227082089744180358041724502604834501929285801209477759860351300989215923916674204595243944583660705368327881642411513305448314000891738828733819694689315127322769132759635261351137705818508284327267538849650692657892347494269591135743215387372307351840190723465271845496943327830852215656948255025516903357715666020740480482401677487604672724080337805319425622035045483853853639015435567033655533179754496554611367690463443845373870971125772361160309422375323825110107921177375427337200120498014789062792418995217297458208764805708161465855888985560074796594755714624115156016632990355709221633171900448796798728197493964195543875450809854316528663440811862677011853439451003383986052905373140914954084547302759105188620848050049898821767183757022529542603737645146444474242482893222884551446022648933260097645792662288030577500017600100009379654004461893338568399806440629489924185044346091829117842676861376179218186152937940125919247145432919574043654948772831692497066185810422451303449822825341986136735782871455724509651067409760501074349956503992040757328780977792734200240249724362418924226814195310855087508332506060871470209185699199820665386990388177388799921845605914530407132012970020738233964837063917257260011999362187943315242800495452455981129770729554939748141647535613245509867697490881864229327956486006074895053759975637119275987908283744828362138792220323112928235870119497148867279961554784948963537511003380177071349931022297991739769486492632817473793964794536557823471832314264156097334451030328761294731712405932019523186598255881894391888702520917900546869043833801193279920767320077862360289334729900830458860444563210826576185476772090141639535447244365175338421367218744968754656482998955080928515820778194234065592647740682156145642091784900818782263112556239704637399922057900598653392558520170895744753789336966874010674796466723508055778468668766392818754530651549222098672890817371186138451065670734547577161007527470050993282875581192867813053107060845787327431101308975560097206688150918427743814755303025918446608255955772761829666549379965680852488639267182777847680047292328769266598238653036239053794547000462959698550045215245105162649168077318900015289950959082039792073484739121791065840804317827910073590885340279326768175324990842114720705750656840612195626830955376590587453656982395227406224187989486442217306227195343315228306854137429129219858986734681461554907710230331995644204279006073824624404473901049008151044967130634577123312443013770855814974355100812882500039620429592526254909133849984602766425604756563779899236482099224600253295101833682856072932981042299650811021701546349563018607497160465566396332571484938799088701633290362202753637726087951789545862544205922442402669672449060731929284850731230907061296933129011151975560424429153694064922765836508333531475079351136528741792134965958529770786504316084814360418333506640681866747973867106298597331889069498093796945792098870324236135590017413814114930564832378597180817599019142039467404106713161433965473161209406022508070781511719683313264551176014598529846196419622066134048165823441278928489586457427187667474673858759131990659185941550471341608430194932002381337781176076450879122557844687924094664110065130926527636128761362234002929150987639612333255384897322952479712121121635470256586814844215674998708698716477457958854963705159295263426406166484697629218282344430110842684804731758652705793065990148914949485365081282938538502858962466844978442790373925618801886367070430906136023902006302022711288485430793749850091981012002577515723096100892661906241633205327614823120595460073886852934178890741439304172327699272704892529465884158869143248520576131291610027618892160824038743774692920903452987195358305563433300723441130300178695318694448618048545319873180612308511655708815464534698790859260846487888146107040762278200620043259699401736286933199008279671799528219347787093434728952708500022906703924710043747323349026170793854617569220210739635386008971237048460302790055427295033802944587778246292667562347360993899917545081665048856599002741017449836889550056451875022974241397061529750104697173064479863923741063239737075519556212885494081761569236713446484229339519281449500226716828889394805997622007614756529015407625814856807252043286784272098048557543835475219669459245392774001547199158100663880368677419726198592849915107553249086390069390357470810445388413220127986369594281332581148466278687216139351565674016650920154465959779356500246175061231473340069607155401219519168768945671888975840085075528882241420074624214570444940435139353528288691480041805102396134459283065958880696851271489542256607894844259630961546032741739082415548877702111981916250816601794125101652016968164600918762000970555130013967535163475415526113021765825082891305151417650500328552478810631067578411041527100395787688136415257318627600197870105847199805202690670184093676299090420798569762951498656041315781295339257092990889235115712046598860807786592272642864108599481040462534575365195164810841030793779472243949947365563299816133835590547954260830846997383596839345161682940656003593324926950319745507834539551785234660672550038958055421007514198918949632475661186130377196735312387673655136188923021458764042140592862282353746793587200899605945330151876232272895906313678043096034666591530079770341407365515512353401387893049266966676533257483675881767969112689113158217784029752120795730443265025874841864803809284052059743790458622709756599238256674015150195386218323126488641542361246419751964206995060016068153295539502363143133323700603105912781149252995517943153824513071543215953882123494636110432150169594633386401209949179479169256878415743469991766700193399428446362297041796116795944049975646677141941067711795662278825353699955178750584910020564747030451309322916399196795650081912739571582629474918269607161953332855908347402670376488687733497301977321770316605190669641452327421120693901383889764332653737560429153646548595098893997133346381871204106419357185100345163835546807639550701179795104025135537097642851656801238243455535438649459623876663627175773011035308822595726747498381568460351965295615543512519191415706245688981294906941582888979443591350045198460665658159210627934214750553113137924023140003151708887394006164266343807933730201318084065226341224106710400444544770024361978757046888494513570497638749359616287541091887044214380405130020383782013022268531833022416864913918310985759190091435106917392319832818726769429146143085340956753058470612556835524356244737289278474516627247899185460501725005320687960451676529197979501508709067753934835199847870918076005728640641754451294688842545411846290589475060848587485649619303131580905577289878004214751721653226379619685634893162116841698581195524329511463458522348950360343011110536370822722686408845454140098264524619566882257553094047606727037173487572924707995848035846553792053181099304201960609539242883041338496410951568888220067420223509378564642286586488609603115021047050234296155161721347856454356180489256679975343147757699012340407280810745423980869621809924355725414206422568415288767546284228769925706389456464197886061255785115923511433288443888931593611145734074665946769030323349868400182396273669420695114620607193349393183565545351990147477022114716224377252246223122486057864184420227817715811149454095117555790628503637767542023438012231307115455547998136162419634171242742868646707809067401560884883315833740815481470486949322421229476562585159050792737072009358516981744622223885044114572345202462502338389663165573038011352767380102052859208431048431575262481601509846898191161468287019734858951741120893818801368390027530921521272962086622883002999677216897317823336333689487899092702433810501528866984517980966171101703222222370483384841502758064343434220705365642374982553649079730146932019865366114255271287858239638584851653948997154046363721461317942530248395051635719519316655246061245118257574769076375230095205492229540829951366297068587595066273591075358271054145750264347713616108541997129451303152596708326188459263265397882076201521006130255532232233693549175714375100246727596400423067917104007500754876966820000459638724668122906480093638142585960064977841157509324192103937563249931681734763267915665108150878137593962735064196782078823066253214009206200399177015165608943502877895453960976852295532883308305089171225201431784200479455823718456772164273540567243332951904847043819845112691864980247632223423967950757971050656141575068135897725374469672576337304651063311820459048277195052539657256232293373660072848623483304185308882088958550913362972598225828368367160528285890576228077586390634097790531917843554076107189867481347545154524127785995772733336091633995213503162279655528088039113344429566969318497586060462722624094129235382110921449203903055170604856951981246270659655795959543623461081513296206674004577353106953904548564877610579858949539010862757993064325722436757955805325234173406816442590009949235659632775089601510333950299524389897506525576614708518206779821576318128902911212880655223761833992980120093590458354067911161029085640970956550725507289897752355301784346788742714543147785205538172943131183713032685089190705926961776327619149343072664633933816869045163698019066028590370741891261361081986008903821840244121086886421268875224543685818484295762074649965524862403323947612749113453781246166740545219677359086620110351158421996203788627709289259097007126767925890411159491935785482583026782468239064935032436707422536383384625500917058671646781791670292710262051229328914507410509256253853962795082126839232782537502657422167659161080538444954687967252898436633897710511024788366498292902515505350053662449694991614776827149905972463346725047418616762733341451260217316961692882849166752339214025118866906779723843210738245786404656920081546573172143527171157429811242351413302283790600143398989716825750719989182498828279577935159212626370758075037711170794438484349524326464393206970841573591174562509889067385481736115135921878321629385062581384482889542861365787856494830568798594124534000599555456406039952695834951170133986534588674217925478447982000637035740917819410614162182323127364424308137017966731453432666847098903796347432157536441919551476800459846432215849393076246474094850976948554792700929803328283896752024497379946909889513876759339503147201255181083023794467161042708605411282015171957337585718454465458150250908691894145623355414884685125374969316841789352014920497114332756628193762280955119849285121417990468326949722441002354951305298048566333184762235362043493885294590080563078300655082568647130388566448042885908448527847983538501450383399598365575745150031767155268717481913848475627575153392244776743355306969680190970882353811174469629433523295041960054329042618233743897722108623282315380822910636052479470186214013081065651431758673146010586293699639191436175305681235839468626925019420453815107394266336104671988269036581205612193397819020292189364327129661291199966894001470736284811054272796783308191215987170407159995466051490012324816321841838262977880414107940890168264885828675008302330975848777704584935172301584055369712353996881627910774068522169955788645712953768103124482859438174378523121435349586269390769944643033000969890152924901061672048486204897047452497144508327873117490215750857245353441761845361792540284636968359230045882411130818671798245986253532516573916205707606522462719857438463631366944571043152911434210980574776453776630367928440445470262884568379774400112283162092132063825676315559636252933407557786779331095750476575492029194291144798918784793691304070634979270997542446879981136714197197467617796008675000244894321716605620194608649235959198998006459967654299270347731121396387052954241384974205661205619034269437755590125114953427634146720229362004642850799344305794507633530935680853460278839502563851132228523674867568804066615607532135785753941233750482964250382503531262354725325786640410675898117675168433160214427456201483383939408170404033469210815625569992612302788560324613262173985966370506578677528692417955341218054731357149998062459358461679479223585650891394920487884776785547323174818898288340959723267326594762411922846196643774387848045221485074414598411747660455451555949978179255522864394647697368608155218286613064300911816655515052804086874894142515035007772569708706646672002077073813282320975217655465338386867286358859824469841875786226472164462905295634194638528014329954793916823351094495041117182403720591878669599855539259664605513202132856186931126551562419380889637656630153660642426162087055277292524929976830940386162205000992976395490703991905437111904959095485109693319139060491660510166600419199754834317784244024876145883496855949313297204660924314447354128883198791974445120394770542988116371656995140180685643065274395678287441502974362876465834045800850154823862619025468124947975345243074590506295431333510511422374727039831839074915550515600563137095701920855083162392061179219565754709032452112703025079782687597205097606931028297537413753342158446797032808730402135581530850443813026264429905074093685693447471367361827438456174438238060089552948968817533930385613430166588530406008148689234723197762961406047252002849224084861787049556102213240013093446530667540992794577328553158053725547510199970319661917998560776738557039892662796749662469836398861549462479927391256352277834891608281649429569227212885465219905287061852250916224821605500078081323879110592531340613546463413497595613664059061569410100151348092021655578781979219088430762314630970080552838013198314553084618995080407892443166051352475864986908792338155977267356187060121821636984710529617301259125914952572761818312999973919885206965274583048187821579932345325077536107100648058821194488403396714921373883275247606206339507298148406225828406632340074010935314037055166713125201982588851175440150695673223261970172347655659080465833843722964947464134823704242766879853673381305598282012776880934653974788317510387191107333848080824715026721507283701712960922490144192193901650941425055321818977952833620279297935515261537707294515759719896900294388443943803160165267260831573558854189571057664829275487666766705068612806933470099894712717727106731170802917845368058791779583517720374404399349427479067151328423278009711771163185952001886867169452267352758027831118263465675629741043724210000838692066412789553653598524999545422047987460267604395878929948829634115853049505330182158717070628408978545683986450483471375064624990712174128982898496514788429086441592591020130441262239609265692818276112108494264586443358713185105730053610091255306093451775165196400263769846093910534746932629782589510223459286857572984804460567994179462740354000231899641818923764959887327327335069170604954443777157032214488527424699558891668860007157793326250242168521492910524564116664224319601117024066508274372753411897228616203408961532080396872815734800878584678053720205939297986431663732350275579987215822523033148569478270780374174452580319712888806677360918185190478620493615346949314993388509256216199719857635714526332328825519198283688850166047581243120261090260449697639230093420020774217562358805212435827146523145344006985167848624109450087989321414336886064902129969155670502396597702254040920453789458788825558144566601672905055673637559233605384376733122938139171795753002314362178394827193506159347690291082428665501531798839035746144312024093548284913997899427163748745030997335254575002999148529030313531402383004303372247222946401814003410560287618912175350194751123618861019122953804250944851220806616780353755629035893959551152159402717537421719280205345791217180715934501070994446829601780234989483109950235691816790483894268426738139036138672665748372891630936553469737143441002957654900693448685463635285318455394925213149067294033870684951609333335275608652533501659817116489093495813146436242122518038612412428965107758436486580749404658126656270197699579852350696474904566704724017242512224144470633430648900920807045688982710112089829081408380665947443312667766550123627338311977856032749811329738801976588586447702119425530048973155792490152158901723776078053140099657506450419548915289871033745246802547056007148911544604073666630040241315160803856909643921744682439987587023996738865414581598146737165396838087463950039667273397042108756194605051953628427191934523375828610168584976525443006692290625080256285941654250816106735429589753075211247675145564821760991655674933418218436004384962981038836772996018488826461688582697714545727168616272588879460680817822037755799373365006469493345155056277813105438900195425453951346482274977400840157991424466621104027270749458216167706214495697905493861087120890778351909025190760623685182006133361216724880291893428355879255200233394574411495898458013592922067982171856811573343368398435452250134915769865012843223955109684581108161317396384396647978179607846558867099975753371920741771144248272245182807027424103975875151306433497975158784848386199953189645593565652659213765715909242509007374471071020246558713955736030426682623281897905266088888178162373673140576333002262110307801753331318980075866122961256622041396546598513159454655189526384224784860855478517115575356903006860655382776251949200016265821847635408919877745277660512265673961922888350150963055137597993218198044926275813691174622883995141867860707455032246241691813033061271459871534260667649348944119463097553104912560188535873658267051436407766665232351402710242756056360242027190109774500910186885226722750478197143148378566231268199739896948899219218813390370061318415263180707614000925873840823133655061469776265419245271017375560961981678546539740744712786381041669735007612579179358684165676973830007882648654818506388866280719828234335383661642856336531913340868091153695676356458046716803683742158438454069962350361021694635169240534051504873663971814716782765675694006494253651237623052356035284881194666930307037096047560802642399334654694483361831755923327829568690223600767665210252207530763014397729353660612326876976816642729719923414019366602596418266988858142017488807165297827224062644737453928052688304674237051102795820893952332807364692712894882607593750244613298227928429989109679130326218681279043636888956943185712450653423653453174417522957396938986057394556746392325070483149579928682697520786961323974998151757628431915144248614443481095552351837592915622291206669457927034204344117629599561543624797537936458422833198733107353491726013875466844530994021291211751300026006906929940190104935347039977033075932096925519431222522461975516310349956216911346171115851333300585597822301143499832782449933125769990643357693255064349067189733811816767373798996322579917797951703234463036600918583998414846627058896919546376947928155840559099964677491492499789840383296472540621288950048797872335538675940380746334154108262732766928786183950687296078046912019640102824722696706789503545678000882983709151049226711266326316404724878496610081753950689639822305187677520262426127165232602084715810006682998548915017732016875461929763332199039476454320558858388305258197031137696038633251321339984797956243680918127411285244864865723696123455113277048829645398473460802551699874574270628025955388431657727948131742294298874493790190880683243454829950667093431884425253106835778297905869384014547173416787671512886234276752485509402139670123027501940531908337549972366661216564616091693193843078033585281694734557435518900595268215681733992537750010445575976956706003530900612685459870008242333310720913729777372703350697144437259947543721294021662404792351515609632303807284758030792239114594297577320768750580606602361464029103458354919288765616590112428780769245758094517123449650047594448795276289586975089148166226211731415592085158871166119998286218284873129278499028014528204495764488290844664084459308371695045865273407918643301116383816238256719674436794523000043346432363911697570840859817371123319164150995617287089189899320027960217516855797028462370812195672959183025383352997154036934913988440605553135786750526825922902608127095990790676885606963642377366673283970221749906558746568766171911578600886934370094190233176874866677415004579681528062666042556829465012490074705657217818594600423132607698364559592157015944216240491007559469732549618704067202030448422622377802570528840336979982437905770297115778578221572232128162043869566302110370116852921466016323380240389807742717086182577112428571295452934849849170478251739011824256286358997666440057196761216332685366190185875601631846097243732125705022652817119154328641132135306036723995929192300765921463467380905678571599369917907215436332433446653549800702372201335714867728647043010649327668954020553121722227389669168666064187047885005403712029136921306971505342354089106293381066861581088561251583376361192291497329073603545147106978953534007570579843591233703136676329444871592571454713331060673570922826279662429835995859987877239634886142247301787607642501573589241255861659937197771799667299282082591091137042555220206676012310988100328254313274695120353234373761463327400045069941852790418309279857143923468795478707175962200712028172240355922803915595358240791113653667157332750828913806323113471788001560121003302912344064238898317972988384283530372295260911942977629486389848147952564114881111490036138733152251789718882651135445121953904713834106378324751991032038883556409967744931249654323330598522634544709492548669246210049680750270755116347408720268144793825830396707937238996346210931798046337104936439024545475345126481816044280880537885694059638565287023682634974087503432005707618067294478151859380167798668551101811776982450382626355319155050421308978739508319297313331466481536056077575028769708639757222867952061073425665763032672983541967102098606923938425759357971207433771489834370570832538320522438515449820504761074090160376795459713667193010878944443347919106035979646511325926643870745680227886353972538302885127066838445943326227390964567302447059104395308136101636085093916641768507951891718073239292354966478631925973148508564430640708797045097933084617833183666255214187281995109430433310792592860645853654794427776171412651085919105324661237139438492417144670070527647917459428162596947468134329647082915376784703952816962095786196517752550409473107593407839205284576019836398536967195591846205124537523721055782589300559790773354423060024412566285647796924747694548224579015734497823194860687912079572115912718957438194199187347398977250187422675808056447098151883840179068503007197525492878798672510699708819411829698281564106831613266217269750003629580604072732233554181519668454278365177007451548138925077716354833893295841644355905060428328855499798180945688165341339887536976461262949335579029565094476260062140356085857099425961953239294328828595209870668231804216476454388640713347236387769837478966163863206957525822064480740698830733924557648067395251423515896943795859249768031796716770002575517101779016576381182930093763513822607092150098363692952103815401784769859239086093330011452286465853483766508521256184621545072492458787500764639308962635580521514505521557337859657904410838961296445826470938001073199623545241297844064128878008435312274491751614609859522200804631424858556532955995814205714061686270522244794489319688974453505999438875237509923156767574963979996409311720231864926906856555575240750244444382701124041885539813678176722111205640300594599550670354804708031987064715615172345748790353170034405827445446511507987554802594250420137102982392858441764573245379186937956584917868761809864226902569316782461466658241033547409705966819440723055718303792615608123223134908928738241062295504255790915246880470852185406363150781031910062017138202404369556986650043030095009968242331672105437738093123091053967447515699293499649633606668292522365851836454381245522178935569289722067435580689000532564324969821367809483237914369495587408425267666404280229791574792562101985593552231329054306934140457387934763280350763505991824007824461777986642949060694669626403998209801129647157669529616087071347688272423213244069071345056086032608547398807802759897527647706941885472440192186120408684951947671463637945766181736748170027382245216462317784283200756677871991810191976949227376546351357243340793146465121973913209471048525675164217904070317418594693536445050743215910684232962806756619546938509983736645383156135943661265057061914466748963175280670276681144326370583116875256151082523103824736175239390114199948096019396694125152500742308079203584510627631317446171074193762739789549641421929063091103625247966983449823910960213326201318590583735246379552429946225847221665300585553601711792788897885123129208815618189787007626515191542551699886529324796326542416592846567063853276261405043809685813031593994744906911853392941759861218480153059536579921662410702456401640757663495800774482576482665789566662005508083766728453621758013070756620972044288312289690486620245039006309278574837276193797519722087136305892533200743821284011899546261849145597086211062543443926118313055661044439163637328473872147969095892870879616079953762615379462709075624704408425822118303214762223369380681063920944620139530405867209631094658823917622677052051140785017581094018999824441749996405033609160102037785456568020710356301391483212445110520757572412502832892558662996189080263835996798204819118572226494371918725930561801212174861291871277677917307301309890041846281417835299063708741586578572615560817340292594796770502893909514496679887865816428704978235882571714088856815489683243120383242071348707500670086608470984862636254226402211473825835725297966209370931120413531797596690198324883891090670395440147629135841239064126535920236096606246810731547303194625812010094087626411955262184722877892107412562945923967886228656255988557641362151034282247132486818991174104663249656395697644765029267059036384862431433600890867553092715643340401204356171098972525434125352940933856029174884710707466369406341512362996672364634109676617512263253479860267025120644795834818968264448531475751256982654259115112585829402345133125806215950209389097492532586758462865296300621014803191698567992708798638924063152688691129361921660382053120559701090985454719185310368990537136622098461263802521063898994790891063347029327969399906628335287877319978931766519636428860957185871307759906366801189224004427843689851203751816737086008181841065722263779672282717775410650756403918107917222528999514009802217118342515173315505222584742425753913552510472267047416390148320557000834977513682245520055589208371188664810546487589079929680851112411166806011311851073991054829140173212502335356241222783840953100809383696652023404353833640819218680206886616037061864056971628593860950175486471940780347080547695403978193066552189818654608551376263119082416379345669100997471808926777358551754780385634109315714713487784281874160787868121529681052493244141229818979139593759869865438824077658229452424109318727818600122679009535581765883260326193993108730672160086371768751827265500285660430225327330714983550587382625489326059955467912745974305998389305066878701440537583127815694415407577643445723454055953747933198722476861643990522545092455551552880878673301423655207343892025941976077799419221106851028594689189437409216187170145898699383062977645331012093400276234448986644399573963904990823451119721483928016042010211705308660233270495101182493248955983746348842926509216385005409920930931572702711299673245920250570304606595527094371983261369176329770859598744936403916948031344816172317586595446173547531887032314190616772011474430345411488107321682341803551962805744502432435528803663410257030700807185888175665901640159755276249344852202558273370889451414332483801629477446829241539420433747779187536484994206697912620221571569896591061032702712605172288063892847014036895549023772802012414986382825556412710298640984683550358781958255621654375439516337558933182855640009086708767775255515630290002449935266486060376635180349547314580991060407211285343768489544298269442178004035588199595219364453450446081463867274174052450049249985571563607035945767260900260401601816453414470082190142953992382357728376209602620569000066628616409950325037341310035168234474360485631607666122269337612994900162887679683002718639063917473313503867958472131410165827006434473662122451257943390726511556058940002671900622142635004016092260272647280686770193918834683850338963001897245742034697317298049940788553735191606205921152627784996925797327777444115010952721988589247706327153273896819185199139610791969261109441385757932283432625523577900841069285176627294676854427671085811866132821853349898205944302849480307851433509833819543403382812887906008227236665301167319079981440849592129544766566223074943357921551283338570459660362807694318056309857089408041977943537862711917869920001247733973132373040671759242217172417455589678647861330059415597922555025913739022871168704583397287453890535552084118536182767233746408440519650320143671415326458274558444022694649934157367911831460635516646860658857061040596967327262361892168780681304193485812208497101939366033338024424007325565147749796346008604358117637691809746942887622991316727882540634463974402686499602556070955141195694623641217395972971486350358207429563053121765419640702714944584971333932343213612754996190124910536329155761913867299960117364384346778188713467314901035250966972045547866661837176275851505975889147149713735612950553517767268045049281280251736855358870351147714813198961954560425960580643209510236099887172880980664421769741204783173678894161640696141698650613989823779447635210332696569794877931489302422333495008948092889105043292979190320273173973464987796890026208536418760932686900676230020295155990464822411527516872415554589602409294453132222476820488240269165513178516047905160690502496625850802650826427731115839245436777616323428882580501499707140967735272183575949795033781835133952386510274945754418502353440411814124709352133349446145191537969163676719283794903861838274736371916000776331127493181087878162802451077172594091122789496607990356612157354780858118166141713353204993579799110978574698527399133571648630903136739479843908805689474333894767678099337802263289827714253386113269299138969605161243938566819051216894650676443035130380010790276888230761073237397670717545577162530810929296281424940776184272856007913509072152457426697679365920036678308276177873546779123875608345379287155479859404570637480353010729175103472612556522213145737065488918757632828099611467073921474261869277262924368059547753296830298701522734631752628535140638378229726039281690426364780451768660656342565461434504232912110525533981140903247832115583467977719015361861194995134598742622426100229343631717639414142284708118286761902004850007664873131248832094458985683159049994662252345436779345066742224178558365942118394097491307351808250519724155541350776276447801686693894709991720242142969762709285353714061273301754836635245277209872326922292939467110541080444808968061706776374437889187912403979360533779094019062453804017265595425210661437841428585340457367194519508809356365942508310972618552395377098617023353876097851960020912431193450253395714400999848664645536482282715875417936503529322044858120532974780512224028765866654585587467733477643656623541443020653849705953033499625000869219285065630886794897445102650959574078467177761118963998090662711844705305624169645443950186301952984369333834739960330328667822362739796480056165750709490144611615342398031911613564067775597281546782828960917700122727627957340958809906347843402120683681800115414549342912045195364967864732326123343844381109414232112799096505939547103156019450381598172336981202747989510717989869103616595444656643764870336756459256967109586958778199809167954867490510058338815159632069253289054069408113962732150475385625541818426694445445089967933778758271755457783963029646989613911271452788613550943163964741837470156201167878853480061250528602476158602665103495454611336488256480256193555648362521768042920385566178905777752583531855640679464789066384944527139475485668384330950820933103530863433707121906887202527365762464470916570601078906615846764090788451782767671225455363131806528058759378197252579322019895545225391443991790711271360616216219073937633515204104412805342943530843711948994346566203927216888401758197492146337436596879115101914141336714665099521729890907179942039759921434458461951631675592974723332889229051109767204745561431763447956514144673711273032702891891503519375002294781899141509621317266894060423669934642805235903162882735694069707601501307809191662728136086258994549449821900474940229468526978543403340320013710704225359316647659644209991930436063387581083577016750668986276886100557104124991611508278383439270773432826783175200162910207715084969385085890370308644516310512847937025024648334334992803638935013946866641111463121553478751598303805494369914012547054572354284940548584891289481639651451536651872085634667711750203180666386239746881523333430999174218096743101269419568868149371961133508976852821545406561654509563314975035066596676173289567885754592323163631548970094568966518548828617737194508369910528409705178330113616532482656635050686152189621949342481852772210929506177943912497363784089349686362049310103565346585477615735251352070387327922502525139491235476709633098997615786686689545234378283570663947630587162221420638289273249791135772789700345954071237816744278006811553916649989686873519203603178369224810245297527165343309802667586719698831647960196807927470838645039669217177113420884952089391321490153545026446512093715579253908837564815538801950824267201958340314494065292960575912611739205310697986780440581065104536889640918342581126522379894934846972083095724925732303548358921788548367073195041797342981532043706999339152195692597588998570066028116340329712422165463122576025603123513545221583635733604718434235584929312514800715754483120303301929298399778261080699871939901382855238189842881949080460974173295311694487906023778509744168432825455314241459923128762403091309999564517950300758794158699493205428818939227545234220554727038596118324549983622550645932708996114701933764486191763176158314951250594394971806731283036439355302708926211755635982971881340291572342758271601073639529541082907238488051704911702662919471347902298749312358649602888437504178150876521726071907811895254949706566309324988287335996743627258105103393366292909118570396048248522992501356915356645935034631958525390196884328953893214931233359111030785523574928482358294379763297630549531596136487734638635891275363733630999587719194225759130788119070905956099558367465519363651923289670270431762971051860355160079444010093466439811684282845834473201797047047995829648424896043105209128455558988511934236791371600443575929979027407667144303474579088635619333376864473862793497849118865809738370754237794959013989900656234629242819447340515502979280343742284658999381058296394284839308155749848544227498703889456207496897987155841372858586053956251855169416491384062796829992536070945417448704924057579906483585485626392301875338504291859638726110829283187061953074140666408444082502229688458203817731384275574130151623601166479822658662413177086835275204569755072540262101159705496923633000360979716964799457343511615315697110570431743401435566923693010005146931045961971818047885007270139591598415997189308425389697241664441672645840950281027200300522475625126457612162224729528876093894517947263994858943269203404563450895042396571601634554969442222081691899485872215902309867648732906653718137394590117531635030848233971710352751795122278074346830239041717691468690035447514962940618037344233451579903369103696055643156243909732794034234828081758581266938632272078913900563381407791887713499623355369218043475623412271142555776298940819881268721597743254831880116229272869777487351791909074519902681855021327928389863998022044683133947658257966872589074964183132798532253189304154075043982950216956239561224564029226067399820317091665678129010920686393761016301583566369165964121939690115691601755034883696049178294985817313885567260958308802789329301492493641183547859860973834862206134823874423404928177026724566300029169827608107372123271288860572378664016853251526252743981583378550855291196014820806736449050330607465285000847983561012927576989853299920870569631523015462295381525777636067850570232324542369962028517476210907889232388850837206188990293716014044905089895798461431372757814474458886060050558301356417650451719719707972116065988165182874184724857136080785627279064812897067584737843923750926039681561078682147404068135731959707634308834780395740050989369318243825779080165952991667550263217335457921058794027737450743216825777778176890222372663958061619888395157779177455312148624648894836124322492954520032602727536790466642088010549699172866897228409727485841320415802200562423092711275994474568865901053333878623386643427431298323111201023080027859010457833528934197865952901291984208198929202785414533190380759123038621881929413019339018084684348371141603583857329886981331472434614260851621769445485799595773702282358992045330225103907055006088905753918333809093650146990993942198068207878550151574817233913254630699541538293996549064706055526293526118827297578834589262762120609565948555891358367538396724333317097740390577702006787529480992332725188789549744524824325042647258851794816108281320077304824544275870194356589299829448576876920103251395278838036307663534445560103421503592371481333371261118495295092802676823610348776936373765658910893892399096250924965539190444944101483444137710905425516721251571932224649203386706595540391627556891800264934880494861985035338974532758169932836407625085876688777306530337375677845549876546130476840406542184920123620420405492347127839823326532724125576489313469728695307039222327757920045994267632759130374283180302458694224934549652971319305484145689159485397051334965266221239687378466899694800595347400030064716568551018194527863542487240043831125993407582609834923141851906275930610114593685799220962574773475400388170711803528614845831323889452787144546279813175301371619590720123327939340271744014577194981964909564714042331845473215846058113211778483674779142200578932719896818148440263760160316270456398644624370169832216850048959064413087499641162256654414257616092403433712662956737316261881948472975281887068255012696390647575131581372991457271393027521103622934803940497926686456439785948196829444504167233109728687846711783839293030136623243402208854705185968561453808481970747723715576022382012614860652352964332879776991955251140265722385574051159616858858151380637982027646440022969032203764720543098348701588173195055732935691839504995482773496105383320278900100302900278314399878052937143030506166900137826290000408655566377071200273909185504460110632520198603336422890980901330288876754403153371068229885258784822724444895543772228810115335821659117369991945468952717269251354163579955804429868449411196454830265202393316784211058773767629138549766626811306793922954041670826329663428314626381280768054573357489949996128426958658222542062905433527748436175505785727462040254971597696477067680662421555908307239573313493230375848069032159364320441845302518870404349691614566141630667747736156159497985022917383038899430440709841294119274784015002426596659585336124129159688029076397002795418578825514523889492032245976899316540513419682407406497555430690854690994638332215974564853046993299534593927733850607530148857949635637925066360252463539263534993063261003929461753301338609902026354003075961743573933826498917724569442033775097642434042907154838135798459859647923011326286784539379199006905212314174951696925045266920349981996256916931850711579491887311381215876732936212329787359827772629320230579085273891185780841588460561202449063791163616823988292112652800922984125730944773495835257035513670453338555502377532310562524639597267123798111409060116383071478838007142371950328182264816715247568780115017502256145467210220197506813936824523137729914344836133900933171413102083856975103896463033643640812763060300269745043377013703707619318335521230300133002457149979721871506328152328104762705973378887049165662639240814015433409255444489201501268265457844309652378768375435655684516130063785302493328506683193800473522194654184270528729208935437147372086996022738368901065989229137410382002715985661881237379354241310758931777962485471869372568709538464717498596981820665733089851817760994317607169247706406051268539440470211451524692416289441931453716553982034746668366096026499070636783894639529676170869017839517470239521400787347216171975580749105134183317958723728653080898951487157868147856060088979691005971840853191025523433515794909906055629118806729153567414390377595603590271114855950874066728282517132776076203433862232142837340441029405648843579842030276908070927300458839851141024688316268433488376020110489318207148465543118379294366583454199887562584548779863520647726540954837593539563816229974756764296263364805031034083009673596100544804401205535225617642719946328147686450682174991453067553974214737296112878024931039551834263635079171996919369250997291376063300306287910393150193896975006998887996855626408911519147380762523625730830590651204132483587837788998422106657253396744880520049449199086291714176335852863344236936362356556806299829316223831227975556342432697264416435334141203134875153311748072469299078690532972724195366045143705294516815154519334455974840784780109368475905658857938954694836525898122037268094255491642041256326261083493655115569379397890161716745970880913644674876272361005791873223349340258328339426750952129938503716632074561103956328310590753462350036378989951098834739281883200741053573536231195926022254414371379524720237407162230589596921879097074046555642638368556064882005496290296624085521859793388144400452182275195909885669151927624035995596468078815877931134664329524316257635243205187174845158781145181509672683331316930484892442659607957901522508234880315484169374989676270866320176597055153927205034567198755173635170983245976413618800013556663184717803954165005634988269062588832377616422807765445768610125553226023545043491234064555012770244881397907637614669432099431796014239678560467876775271201184426688351119336164616753728246101717906178519839093215075836903296595027108511856576298736062840969664501332439526521314221685896020892877543909344409418565355265860888708711703975192319548724705017610478080574885032282913655817430137542908133914960000479918398500885725762137461318494005022009895545483918667228563334087449952268527788939988082021190130836062609784430211167268932423366562820972893452650527111141641699138952530434940342814730524487561955927223678587561784306217539076720520831736114334627609347762322821163912779916084668284017066235847242330017318834848953765503351081013821115326247882763354580036359609037294234432261533186028495238129024344473765968111628953882554325204109014025661157120759789568916764380241510563598189925612293040735004998690705561248564064450189132464575640133615061445145882519369237170320285947679991382972213030126804904416320400099848376008217543409006304988836370270470011865222135976382024748203249271807884922780556764482451116836131635479830601328124630860567141573804885564080434876060485354384811844886862555999613641570541282497583389496263262767342925565683691558692222293538131753199653722240122182294595092139880300391666489218349031988658131375730537638431017807206528069802600632933211449034122703696463361798234144330782573175666115025661155538971435156514689283122338463670332955167091888482119765016513274461821486309353123638591922763399028261119023725922139176936747558114576441906890465092106444107285194329601175075121636680475275497652619753478507150012121585043585453069437549900257744197677996713202244048209508390219229370756941299414280396841051589434737827307306354674187852918679102121658153980101503970558128625304213352764300007859391407710520647096247563216413411442648501491162585656312567423388394385564555359441299492008868407076132770302647136906579177392183235654302589216131759796142713372718190538378688726096640097355742654425692744445429556261330375823431336692657383474368822793040409996419556468082540304786860832312360964731677446803538561571240046770814191109753806236272951012324253958471525860341632996796349803523264521033055956497233317729540574504623282704890786262919805939418673676020929864335298236825123142329684130995773759396955619150467092895954919018400224333369427203738365609517627811724742557786023588929679024011974834608597969350859750028580637973821230282775572091780144934329610188955158283141835194963461545636581574521707249134787892063768256688796751439701169859604549757997672364454988620461492737694049987505340848471121890313936858130337203848725562443566120733597263429135479606211422895407724157661998335293372361238492368129945526773256220265067416899821680930826753133166758501829424078466897635651335270356773213596135614568943968346996727049298206934153753540444437435579442993036926377530866827643332538694614711382301709200362922735384861670835612786679199008120235804334275409842731393940314765312943585994548811359383066493474247007551992119479458224748980920079265844422895470685012814148179345015618298761895901347217850351289350363619331173046924950797351400797736961672554570090362270511723929532911205073376024639036745418052568040066943411588673529553123740150660393277285640194493256157925535514845027024323514467690080819468269225868768511383324072634453937672985684583912994933969004014900498027475541895223105722504079436360896159477293545024450937576845155277486587779590929173308606787226345654092188829472027467827149228161721071255560296266869576201957194701306370239754701876813619763616279478511926183254630855712922589531639367289206439987580136585224271822437721640437950320218891194031164440275930446117555257353846529593702352426349348429773428153650230340087406074936939977974035697582515391401701899514077528144875860094513525295546011203443471081715940967902622738894125660114254639015747089455873357041186198962437916855901440441460899423450164021226982902312633282923209070832921765004027516883834794291744688533052316778741124064361715471319976475449990515024935805501764302676879030944229263145498038710724225540104330703826198693405623597620883727770393688115969873284384669836564623346576537232494987394788602815741727738641217176609378705883542492036648620232405420133522353719369662195763008493458835584942340069241035554104840645318531746826451257935008746212246850668455170978299343705537040420663703272293995278960154293721595915349074139995996178933225199775026522318162290427701760663675337643015338875928796499053228469447351537218730274296610603608550588385421322407919005774171061967885245240766683490234541530495152308623355701236983457774972399384205720059440691837291886642510655782101683980459358850897460830033070497418084389177784433971248221870450895960345978856325837327157598863211778534455844488847366741348104928316723168415169650742073962270625566875759651916502333905061929280029704834471446310628339999646465459627083248533848734985386412387006085104015361510934781524590823980259493659321796149242672016321315878271566355396705788239095552403043580290444904097831941381784032585257554350930818844485288954672017875819966064091168116798949716474638543520716714196139815720030285920566057097722020493337311071609418030873471440868212567813008975103786312404643969634073303949218166769893248991207442533186648861229322102672876927149192871052507176471619720546312625182511112721907338702910210743669457101669153276886408948269729997180613187483108306215552915338605823053396653360096778218674888029194045379002496659927723423360947809395344222189977280860100452282560027349748536308740816041678956026539479994062526742588225263377513524226484218683197075676313424758243338166240991152842101808072298505044584924671572605539808760226156913434017811874509285382877753757516946899309260890017083992462706254290933823089744976828697546589900217619319521214260472847366878773293976601084596685405381719926434093638283043706034051481079453693171308359969481081451135971637984806806990765271949109864736059412916254813802913606998516065882019629117188107088986284608836590225036138758995366394295550550425800906423933230382125169841441331930790017038079443874853346398126017373964197254988817650089212630128585774694286644137888091029462982875926199341653015475542562353095182610433184964059730135524552537341832890146444108219454567558620167852785480879971553816500379381348713008121658758733229723357808342076860648623060465604498387258207727818972340838093825977704607230235585039721438764794632930165764426224764745211934643766403956981313875707906902420014788666840455799286824868872044762054691300082761786431594213460435825127411228741233592620328298054975192664133266984904368532717666970366359666870818509606632898044026193787116525911118399904556604892531752076855239776665715318025173644800818095277779468276896259083178311214283057107641993907723728539370674854166496259088550932654123466312599151266884103308163210314443306100353665560560264404815957147055384407901051671279902363379827575699886702017976543138405182821615291601681779767318056692162030703670697159350701934339869120132491613188314942901669131346326915336115867634397518340366963125704802364484938017714585188124071540918129187697603877760232877215997582803573878291943626866217035625953877270423472549953807558650261849011447647382089943694617052070437260526621268441604618447431382533772469200766861719088675771670503834193092154929227299652563668260931251732044154657690197825009767185171055626428789817070982230554668362351263359025140121236725272286008870450463109919518533644923574453531534751196947129435054368051273705667550868760597311339353092818247561713522243855273860625262965518075513800467682149390693846273940133017215819168298531391467232805647888967877595487427073433069072292002143108685831976167375856686562477830386998910466406378245983500082049413256642883800107197048373885385377047499011466103975927662016219652333435353412270697017605461287380461096029620037938581426993766379081952858299024666064024022090373735760070705066276905179064076591687029620012080196343946475010874754448307698791403895270882503101212670022719287674277666797156932036888801702760320106639010572626599701742166808361826570952009925018698195328442859523615608392459017662705628457530865225998968275251264329305623363520125262342150379024081057997604404816532280468178009657103132693802604330045825836403131705796824548497345547204719349456367912155795997085738681256331838115379435077485740403275843218275307929080437938246408509291831088962502448505088905278373563549269017001346116110223895041407543195353091056734986958073264881825242367725523513990520236067797988345657267865907040078219985759465702104976864214950166168311688839042822110989401861780352519908059630595393266116819226576107433803280433281172733717818059625329499690354941212295996029519305672047057059801665028024274601957239170697575904098608822282698405176107652356547279571462292670188861443431281456804441075070980722734900187857482349125256072887247087654964169845140085619341435136986763657117419635046851663839907005761687562261544133996168254763318030209710149453399859339218930211463014317944960874009723785602604626744341014170294592025994644893037071764330807832156528369204597137924834405404103131632617689324654185818031163892525907410428090551954339944093545068483176016028290968608168624434983602030737863873161334341896404262657098963387359917203751003749627098054614667340182193334830904606646606865892797082025961248362911378764193789481278239804118180823167261956720162940979600120725394751366811645629991278044874301192277926949560950517366326492835673990062134692249860171743537579590756314428478882526835616914650883807830480600772800989483565436751788186081199164103530079279292902633109595815608316557063718533171708908793481229164038979206833285804853156373934995018673239223840984198155607315459039798345436654046092397857627827609703157922516270303867628252190280258568656704186861758575171726617125861873571170520378548612513700727700092949456191139242365875732362419970045183881999698637506073904826938268162245504708872179388240303382452710123345999063830521264710756802727671519969393714299991132427801556914315221583213378649901553494524800420133480203132087832242641689231209402662648773008717705763318541138523986346487082433683969751343931658513165611321864165253711485821764274264930726677372733261654268610075785187837894994806578426212922063032598440842952316603384642306669425880814666040111036186065249002179293714490956573390155535811614647802850172617378297369410955861724415977580547135610690868148845718082478878232681776142391392524840250692743372473604096730490498153637545457224010173853393187467700897153433317272208338076625642082161258273433926002999530763620816854306659275666617148969250276033920855755676276540159165833322175061691259888722451595092911181727825401041661180260952978076780440527610704615918407645354013276872104130863637565232234509106006136114558667694147563281380765310224922730964761887012278387205442175231134496758972186163182318993905738313364035096341460861890170754004716516563618624787980296914990760501944034295859368848311659776708650412444124136051431246633607437126602297227294530208296694669715755879183299549153872188807020171027494000048070104269762884053163318708059751399279731306765745026968720841987199289782549415620054294964220585846532383657136397214374224234491597200021815273363384888040094752425186338675481757107384561949378135682567092823978662592961417753794655630239738050740603165307508418994499394400133516048868295364070555921420554982880774976063384140557121371072269615087013229781017179197490396716350181256569296502419489833602565222896215904608995311189332975324575424378092748070302410704335616437996939676915270658721653085367705609891379716727240965008121337726869607773036162401837191996841724374872161041671971067912372030220024603360679343672198638605809236698410350662693665883163991903722865831888135160243459620195062758467980185502967892295003299790111994092368612660454652025109814115572904590649244265122712589212175064738441169177461185918746439251472691025039631168355107268397658322089014118161249006411562466639366053253761561407963217994275815857504970774363016365457320244193412409999880628752602854501937235131474398054425459939546992872578729684917478664691828229852893650201921834918207948197022139785687756153132751267115353887698172795736440609591366444387940022339117197135393404979116182955004267354934144209278190178781937472652743579457788456497612034327729478270411300259100432932769453767551268429006219656143059500288964584053918491138571070701994364251781204317633384676712547220819608552247946502467116256893159728351324828705097550083128746581022313527645387321774732600295691018284485729158721629417156518650478892565531971373533059276964671448926217719321509442802853830173531893870787041082729863016831752411134122467807662505096606395406581239432683419049993601709816049160079876109173211460767204186379765563563243501745444129736353504346679236703961103387122356989672908824452330605985820560475796014919950391921071057105558122800246979028419845333108801920320089090712975336688245004858601404279179319194991917731544557408573362048252359798449477419837942330727273160882307049656429121386773829281773474652752208410659883201886686099540439625234939396226479330218264961485526542904543936988507248023387442879510158497155981302498878815545960897583769740492263618712237151808440567260159785620910531128167126727160618818648874429885927734196294838743133469502797056177274728635145427078542597777286155610345805358219366267751894316890001385771072254992736856637014097076543114337583549752590960438691682099161456524760218957291846198707709788147983392554375712302162426205645569342467219476276852986160899453673552989330172492410228954769862172789633053930051158769148056123631521328241472995105001229437999241486845012915103416134837732256762961056921652579994686401328577877927817954074647089430945608112956618905604005990690727141968509913536288523303961054871843171232812055358291427114205983260935916258661641804728173348472725670832583084095263418397261490406497354910697574279814847721166293362145292139364730645788182486969933077334110475976163507725970803890165067868742901648977513359001750017777500950422549842148396103070412367620557271963548525114617132198849635990071605510894578533391112704790832204682735361079226561132507295025824376940451632761125771476752271938817778129925561426522402041731235426371987197976901654997504827002377791516118709818694040753752799157533472817822218303943153903020785919994659296212191099791798004678344463189949637527058664340313173171693422186331822944199886772768911211644498531674101531585594461880604891651263477197145460807416829071820899366697661187767497837885979993659779050659986533321829137287702638966002072227842273645896220259496849565252220683879739399971013585048264155449995155005600368594483270936301943947568577622499093769815745746737054524990795883422848008488101211655896045618766333168126956924483506874015094464299844197520706980138595955349540535402794263139072399899151157294602354718524438148348998807335750970632245404950981714248977893043112381364951388514834638503098514960222019502662214932325022968689264699152768058484439959929456956450417837126892075472839847422645818192896391778996547831409021602158975610822203450643213500822800138100368898461996921859509612794253638429866033063774494455951720167246144196239478749849921127833491548142576273213409300853909025135632112691304990731038191057549513238582964217848384832722157932280021820732612751662115593188481138278144257544708552460783209408270030817893715826174534499090618782729897909760908653688224392205533152738803796930852080912509335791790236496771234137573149520083874905879103767980884210959409809118202754792033730904644345033118806863762133408924654110564993612861477857974734872248628166287920675590921732026073698044729436906323125053959651843700123240209352920488700298909950753944902129594963855099293935275706870159299116432243651311304057729099564620969901455718497556876775880423046460971944079263413305709586033370835078917160623211378964701485853586992067383727419685535454381368142914631187286479133339705635555932906149811888138258711867949361834492053251243233096475100444182736068234119112227030289462317423678876164752189540769019269753002702212769970224272987738381086031673152686816169996049429661552876740127842549171842964667642820603291229221983228329511680474674767375895799953182742835143389417734219193613809363201830462053571717793178678559879207897689541476448374351243112980693304458403786953939781097827908579275728912063395793305445458849833098480843788797717737836056252201504810823130738839321857166274388511512087724259507022350269870220755864152521068403111432341099071455195419282977599915550005318509679322784694160668646225433042350673793132160535280189074208371454594579458000260272474723598797559896591589588714182030112259737335381259583415267049092169054397485921924313514018841973690827645263000447440883917630854080649336278654777434663083810188939079169228447486911398825367247729232816818499876851092210618272055552678017306059129433769791802487265717711990407461417649585986533030750886223971768954610136382767524890357630659329862270702245181631197087548699174164831273776774402950675502418479482198770077033794255999669045640303351988887274825697242571997590554028939359549872405497774886095343662977492123692272635719836973500007628355201690084363735914436164177066033924780921651599697492459889628197257428885756690773725157141534906883549149893432652067561240095302033141557310873804900763005732371461159504247772771709805611735542284451340820715679909631651386714090814942776713322826877789690937133621371981885012887577306345029950689996222737622966759998120024199380957867645911533370463381268489851813053725676391627834611783351180277872928003403758442855995774043796082529186244213712802948177491041153592124980761995721668588809829819408394306811048698539824153347054112956797999524926132164313432582515033779850613898531204184974414746205324702093075222667131148579370729891188339342792211570952613512046731488547191551284520597309835769056528253397475279054441597998396174539830030861304724970775692837733342908057099978534018943039556682217350328505154394272877990164158091967962740934838406444156812801122077691437883161388991210667742405174919951540477518529453591463177762130058394271826670448909181588687087991470652189799973270052420772436298647143582421315336165176484516200846340246236590719177157546994227407367627823683246758467550237460811974938614237848721161648600680653089620106855737580165312425657463075987104134528061782347139032606851803972827714774115025887465316002935344652100224204146638556936716636899487407341688924898287162474061962899704380185078497307573104369869525425474509124071420149559929191578819034502928755436770272627099325747287117122201139568441636457060441292747669958474564111986489342523014188839688744933041364639990936771952167549316287085772040575740277928189094684721410348269947083700179749948789487036710776938350907271161431850164971291844015792056111631464366282926958833127323937962097062768776389929301155730452385313658290238440152100347848196290070158557802734455610882131141885074556731704266080010828692412961307608343277337074400645434136160083309786773302203103877267382982845494275413804621993963702085894451652999821203566680082541828228783625648046288965341080005445017465909980320981007582182365850220734519167321331565940005745106742019106341577707063686441240562771695319141795433610440576782906126135445739866868772226562149767335371933752896650420509521973803191618790595726668991299856791477808937443339505910451198133094105361562537354870951160213306286743132645012455526254331210638695651112603354363175835702435127840692477856178966537640029329662571818286143805697293420938212707491223145352332650905205605727359806804409883332405578825266467093533365584962649282264273597263196109620645671747691418219189723366545886777306384898662735080553458528050441113979074809756597285249644075608278873156735888604909127951995278861616579271874119088996282923824826847065244578418103250586637604248775952233024055169886012450521415313698456857612995991165119476291976369047244306737801867544331601908464891172234061252111394408945396424567514198382250142007943876309297201742334705661267535553606601583506861293820426074033761641304598792898519985356333613639510015899155171676476694854654702345289089743106767981568407431782579271994836222239898143530672698221765667476259730363957343437867651645834691060715232160601476660062054412714880114761323291425420496895717432106129216571782937466701126386885140026760611020143447037910617908085509777174714252465159808920067608970632150291668244417002735884967522989998606730910017054350051524425332712194824736141383679042061429021866815064451346102319188222227727191392561299307086825435983722403089885464163232996876248153580505230749195473396480682543317750872325257325605880001639342653766821786808243925571100530606896522564999175207716855902265458819543468421023451853835275682928644803295673787454690305723912663826901051242957141631694064822513218914289380568460407473732231060719846008056254409427242152922259417066727703314236842059911206582748585829723613899851701955002953172420515095117878542112402972900654369451532425142913284808454204868432915789717928892930436902677320449253631732153662068927938649818352460773354136966980092412268913523963556382312810232182267740298853271326827654634169874212369571953249108832178006136919689020568603461446382555075519942896334469308282721403183204884032033444920008515958851586370165486996197570756064334721160304761619634902278751991451560987783708375220038478829357506458220276081038931747097776172624932752457387412005789759339722267429372846515712404024182215563086182370036357904115908552990232463418063088901388362151702993608654015460064438845543275363266011889275368640689597064426048776340464130691639581437700734847559226892273021199188230096036276296393883579556900073912954190383171311450249334423808476615423958890294829889965467441240326284393422125809707184959358536046620298989483323506138052647550424586722294334655707649268578035536765834457414916578845991715686409147431373118779519680086523930897987242962854600994379987755544267448020180934548482487060354971057046135890080244442562948170957964070967113262421713619290176680898246767584210685733863482233221411573019583713100094694593427479907591283220573873684071939051596610971526397203432761810004142326714453388689788848093663333327995102388163990981845349958807922219146499716828715281917498293352120276832352538296332232537226099392355736487749226525527368322540161568272515624912807169013720974656744388423721596845412372804223268544501913589151202987931436854713174948970547519156839216803037897017605398835439105468797116689035974236339371614675187266542195539212623773951638210909073435831174075414359982510764596838468112094461701447485458717521103974077385573978778287747310164398138435806723502438162519495036967341833410299689487672024349022455561456098620152812187472538211070651387188998154114913283114424688480552037432838728090587162016938459906567952373590441030149080430272098808802271590388098767196797298576086872174288056630347404854751991488458617717918499194885802967705675795101857837235294962005637876254480511440104326232362912917556491479545250052400102639987597917326991164066109392084671657825112333690753550169187514826849604635545756370835008759497155172600066306574844229864814926778833758260307781840291845689794589012414998422519387455002846666748538238584246931819164770209085112999416029405097904095752304541300674624549332866781506243212408737943112422959677250142939095785233534478875642162309198769864710153812984461499052518482150392922274042630740342143828738583125500994258519515633054528050218880068891102068509472141552558254264220881522051480982648195872958103806115371683164664280909713650435349940836436222063412000833484135923889140295246693258166407585040129177763431699602790128263184437034873227962479387140683529566445662122933112189316905684208246917086571754009811615674415079742169518695646892223388246567350358406721248355701521063704263624551648468258694754759587655066510541568945099562157769939189934138493183160222083784361816341785032085225184591412017673891533768373183458136032666989606849753763890580708516042073362759852659346520112567355696366885641260572700710246455096705638689505047107552337943921317860010042701928208480776562923412946708112049979466090886666146467562888247425904235919201105308891177760794577560899654929622215152533155777717484624366379151710869260167976003867783449526267563639140197241723844784516858143284463838382186043685399934769225209695041502175190957150717873411449487796744587762350583140701494528919421065912721552869718155386268670398050593270713353687794984294116892511067163476323262645080687721191906671541122168508126124306208817665146008987412785183314098477066521307112716416786039604712054150625111825966258899139275261017405238929209206887969583991994107461405574322131033582096575100905580926933949294556187262159791448607747134078368719286411442471627193941111275203941996889785440102613698116928678195243927971523102325319952319180207117182189939775030551511584563302764983503093798372870265092070497651615678585515877742797199528186563485249377390083892119576883039748739857189742031086409787040280368493851544091328481470261161413083093167758174567455587470012567095241166453733813023245297256188852782361395369484419378562470455484908466440906523228027024765951805045168993334246390611981241923957261809471085879535429617828645112346114985933024826229258862449503979000223216734419771235195903625390084591605562853244022809830788450413686141630499645264424976085099222737386120406737810907569365077355190215335113585972076148955219914559560914460993919114825566950315506750153842877240472209055593568278888799476242876089038672514110585699842111992926867262417076700026854707541824116553862450750857246004258404980836897850153854309976936307290471627899437042512428528714508532253424401322171032995965875962170286246766767122665052853873646825377259750150101956179524892917579873799490035394694261117581081902371703456326104470329719116260673696039656522522416771080586829076138639698328121771163502703765740891096907051163998756086340228019870372855959262502146057699117540188879896718505299115141806108069665781341250142236042122518427369764013449778371939335655516683536764991005361288357237869157141124395775736651062005755393453703444366657434467409782534472991875626098993710688760297756052882729166453815896837760163981150805001673731887343630159247923891591933569653756157655023609904463556295656640516501155152990071709370944999461955035595022293978461244277474951820075918740029060749636592994626453312321036010952878360559795968697592826560378879173174153410115310641899586550371247375882440837328951326764342734496235643917433531290223956644947152337867477495616684223060591337936529674356859140520124976797880316506798002521002570889244080393064978711653706308232097018194377375339284814980644820128793186462673007563943653248882149517983865421388057907295857019279637445128624716769079505358054098249686415436989855770866596027212862732561123389915245024136122098219981728766864718220097362118244201066892991502190658587027358900809595508323725399161830934643565888537416179257552335777178015820111756192370883744747950489735687083622273722241436639685133107242276001402115650087729384428708551255383593517351154646887390071194740979803705198675794874859385946607332687280893391194570965898538952877692758409783671457774843202662181027038770836108999645727540937275989831914562154217779195699938678088514672681854279023596165413746446252992347887431019295213723864413112225516604447593196192350558057891588290884375752045410589549709486459650441473234085743911904294461515884200526411125676757572999675117315514463937091751041516043293346447579090239478235535765472484569340540963393066093886555216593751725619586425256223838627910312172111106844455947615079829246024213762580586958544049715124918729787891978222290946184849418126144079290599038413295018225482620129508815188115925656999290188499262365052990119882567567657170861382487328680372801433375758880868979799938851085165555649038119283455216745933368723325576965916043902812414250507205864029637395902616691498356827281656259925799303603520211874191522862452423478925441029380805846046887950331297804712883272412352455660017792779643689224032615842969781251105428403918394223168637064712569783174429184872953149979196865602392701208866588345251340825891202963737829758126788749830496681506839348184884599748090791784953665140963030156546841116824900005562470396024017800623342051925920205235491067741454071788045226354725767196569364757594682402223133599891926909433826492620417496761713481193408216297611350052819898966182450010174494535188537695593769811137082878501053421493153554697327794671156315379928721992481778926719045090858726377798879918812361615507390045636492174522643556708960204898027891672802635569431207273262814554026560067761086666912131888011022882911248368232210122116910275678756250754051202115349982599381536678892281173623828672699241045888275261063969765013545727799971231566315984686336424564621526527487354032660928429883880861354149606430095147300061756582170414979852351414564621232564362952464056631726593490542226221548797610941368918016648768908292767364191788109400788213750444496337543912192734377479262098520049625785160801000988168675330678595644004961350576164313303581759309706539591643932055100054104125924513953039701882267861267721276268945244946225534023925257259087227687866793177395442378320546655943281145396014939301101496127083248469162637546403239097376201188343727825117053595308536413888019455005605906839359496811524737423105010828622047152034702757903633888633683908647121150494874883256661705949961441857572912032401427215000282204960374165679703307224043502462699440152176367539321137158531806629201686091341071103687997076171734701542360022018894428848520793542906808013181611969788952977036718973720095286514304128570566353431313672537813597652066888942342587338216992344096313890984481777997919662931316233547746810673273381441781369704931022919848394769029090386793225332177486870720434436918853551580924924015040568093315128228254068150912377317156793600968634024125695693904887348643014250067178751638257776747806805529987209882301088935894565913403700576479600164437480342831901745857595270627814996216731233026876515291793349163208439428334288937451227525439147192538746124408885862796514729151987258041271820093664811991669684920320823213250281705629353137344689603166961345218273004364228673459252962167857676204929924617548258360646256125227234610054926069455816153114406342570540029393245213691606446693134634715640826165340914053637611368371569278895267319891186007466201620626057847271960305075206631605504713522118825552642008259419471577268208847878125273593585901706294475972864974093593858417041167278316164791625894764926165997604028672463071090046877521532591674513761341229818645297367770892772507098565948039609152057893011532442799441807101778555416074925263353126054013783824204797415276872088604040187556738041200532651576925950965207122060781749156311261235712187622694329927403904457864381747373490127006019119922668478601413374847531053558488275368740583442861976974818552525562568292042856413534319084862897926736381119158896062593458373131589713578119412762295723613700243440249304460720581896246000819628908346844773329094797338820237248596310408868538669440598104497562027477110638228825054590339525973287332660970420250446014546556269420053751211290293797444165984385193103172596132481043154500912545631075653613470323788146061911485729601312104553782972353826228202999721127652951167150199858812481244479625913132939758652874820927788892162342133354210409685749800107586745283727034275681253819631702811852813812178969312254027084650420292086204666164851793801230741157637857520015461571028625567362510187128562426900675894370792267616700122768605783263145211973485181706952462422583162750924467424845330033516551866688324324800465519503297185122715391203689674231823176798277556308588237170080640129705898917240660323151348529668486964429597398521268329714775629824593565227324584782560756573187484214455329877820478867434247396260986053467962783955487489967852150531483980873171407860589232405268027949021135347774070083728827689834850478007965885417998685794951037241243090448829818642433274241626263377942510241463405229720760201395492787136098054215150559755642271504786314329380155738077922267253437842711217458542525369459130260061844426098724744324996031889268587903647395989169500657835482323544455777801576477399639665765588659065448435190715526124699547777247506862327675445890968723804126486127260853362164380152972848107293081017371476326353613880919402221782911978786968962888718852177235192982097435221022119139091905318361690342251671493391230502640477714539034939659880159184876790681803589255515706608965442517122549162652246144492529627093977121442098296701186749716846317702746835890480185555976042066833205439944521664990933203713345635693056308930562432152227782550305942247967797463552081479856992851087127271912364859091126563453814063331733475577383594095794024776348700821003974320305661079382968514182473104451510355059898405598339934824795403484973510022879073739283553111173572834230189359379933427793359065347388412588258591765400701904444643264326558051592026439144402803117520795526826260715395443312694915860312143706926806642968015069862471451442468671338248081870103250975688095644665957439163815808159083306949598097611132664880076005377826053934513348849604624001824179730690799472169645052787657850562040269734293013323762039656556729984698571623129707869368639276594639510528093390141033378034522919450216715638339055220624985243587723674415759500138712269142352569956983841005562146581071506713653455677868491349218027766500432583415973466776116244935168557228583519206660152458177261766844321686268167508196694565618372201245156512515698332358198102537068900591375404098627045429646367078391614522379878452294468040433398965724050199395482963891538687623142643157824583700211134931251669438808541350819814909404244543027911654841274343922325120763741415083377937923608549929988707786509451701755547547599605249054279121482410162053214834670343723613435927275698161531758264579151482134070824645613895477033876681416287904893780506737064815960439902406800724311943269602919337451029514443208659289663278565661017737692653703005586244203664540869176473338823906394162026835852512033219052986624793160770754382139396138897953926531336448630955700384555017880663666637482503354680277582036031955043175555795101868981452650708357374032192516097711788100014598156337540837502617589649653826844743113120363749015525338785679105286568259922610471022567176136957893156749317665746649943408259119893459081258483486277941248315544846196856854318679019068653457703085641514684005332528529423117220507944656249910311001045278689679200312007288871691818503802339224259848314191890274820760193416444124202640603088485870648424774851808302287093946852655516340377391835868280997725058749672164186279135129207917102180085398970114362014766453595429340023751079389263674754403459350623684156180060361087033534392573203703885373776770234599691343741876224423174854896311875656944588659339822011233114364671062904832997357503561714980903917158759595729293263667980663303642305671240883834846979880270742901695165809466255681469593471899954029021141681089616269471042998841433031755881751223332602076545672103874847934230695545588420207909595778185620267677505571368949886382253505409227786090576353747123406124953061579004762991907961901723591526003151855201883423282076141507499264145716283131270813047177724830195778684324656330559273065367088314983284944634634240962830852746155081646730326804455265300226722703267867334233534425976122182927284169046373507400444057968223863814427675060604789013493007739310549492159131112789575995684817575189202887787909286518291713249228950386864168340954753199204887704761569407398671794962300544855690082696819956571362951799411138823507231279552206599588024088276394907024047900585102500285629731426779379139455000664785431959448431529450689774923630563778073553794849591711629027277628435295926679976367633878857171197461451619852618758436000459727069153625299806887514353891597753249765646166891369929837360858034068651029324860697906885748198263101352457020643310063831522985498556815413299950063717668068200247386544658685811410261941500255719577166168525948124410622807283065048701430659680961232723269582363656968585228543437293760549278163975828719295738702818397393648464504319580894235016614498157741035242878885610735416247130129691568805924011798251177343788240593870092909975501377543808009794417067094814803105531060971044657860332367420498513882802442011273865365330689445234258112534801562471843807197863925373255716223303058888012362199937616212028079771172633924984270275804020371017842873086157674504717342297792360865124824140972627297652363385004841384555995596964072905066629183315691490133596950523103570533873067490305860558443191627978084493894134976807911099757212999518339345033587326887020205591252504936731147303344551030827274801442005761564642735693255630192145086100904479687816641397993437337338980357079189731736556898120593953440425568505783549490908561039911808387373558207092385137104389425289938637281267264164263922375719424237596439326509775746259308368355165642113019766212395021689179692067868794436322156473150731109720557812176144071113367206359087428421751279720022098474225770636062288215250590808993583157495955166077743661965461004522552407368398274468973152889507018481722241996584335038020146652892303985088919033502247305077910410478180298763524195541304001977682210504729835638650847920142697359928687597877042658897878990403700985012934285490193853179176198681922002176771616412163440081043805902751208681467282778949631389551833180740950545606006124973219717625159510570889469235061856541716241496334988698021316805595819783900594377442505230223439365379666805382313026408199825123691976925663962382444722563675787239842269530628732485953424299948293838078387361106371541379141135196918177622790591378203255550278860357453212716805761944378614622458305365452592797788013541622712131955153036932681818513641805844768840993708754572219556568676004612015734875334340992725125637210258231828906225431771288499391839593294196419618810044653550842863689086496912440743739393216475587504648319318390431142450146315670225970402469822144385705703656636788927385010742682271146203317614528890046666124939857093854863981279210390118948764756987043312907375482219855403353317551628283932427402199039495090857739728432541155178394605394619692379463535206751172956152631670459824347606234856004926134804262673830717496527231177278116463649348737992771934229140181444405992545992049264110694831882428599739964747600942763029728639943720300985129540326225934731548126685377053867414325489774804480728221953617493285502932972055181394269414407451352552590795381320608565090356519300029072579717511033871068538747013894557423013909636638049194086484500971658298986007198360953875551935076516231098055536887092497115651879309390366809914464791466861879041152699565635246989988083099185410853922623710017915200362790889440226379951670836965275398536009769500792477987145981867718596399629038562942879822758054471884471511534049930948199364296386834615496442387944679656293288025221408481888133705204333812924127280438299316574445779511804678818191145055566880255736970832443238341132369184592335378729473802134539862870312739530768513495574376668245546763291667620025198440413457929175551122981283632610644815566667945812897928095966898285811186980129062488793181800318905055635875397003411770216517470276231791648811362394770529725406553616894559197120857453301063626783188224207202662764110930183110975557956886406613865357811043947145044345222762952925094565135530570281125629708974831181132158561411937638815862951344816121321605224375449925216130445557429714298607670017435795382151419756600505721948872505638171737783265491974716247392935124222590675256669338002184318216751219274459867283711821187453442292442819449183485924465915878286194652009824560924916806377288323537183281643540902177897361780046841086677349359763013035073510103779354215523155839634359772007366760766423594602682304934975781839085022184384873374925925601923708196396820353887787275325685028273732453753110382079249437494035523655608645456508383157588154170388369217291851161832936160695059488447782364161429756541057140314835442235448376754665266895052879774508204724692451980297618146106242532223957146721192786816093862543951130221644540008369426313035705662358578746609015168470034105284458974043552308784700195930890506221079276637123288762464072504722645719625250614628799188754165146298443427465948263039669741771935331935174113886401353383768378071482393674763049272310860712769651655358400365280418419095348415966045912006652021019884326784704302433592663565678937504568814884883069573126953363321308664595774436976063576862870313754859118276413306856324455404373029798458485785709617854051070589988418375417518367374073945508920991724726711063538096569307563367143455155033525026088474367448457692647789598080585549048351904063579087801156055356711708714064140579833038864333451871812888498856490391701756491469116128177530882272055008200095864574156958025725259470529351643339364473079470659573317911415833171197805913788054282237804653206595622802921546600263303661007478381796591761252686711220609965832213274404128592292451601119782118449487177041482092939768427945729715782537551653612786414757463688138670905345663777398026654309461590514118708941661167936718879543100072768361364917366140495100505662052349107673369505248694545751203168675195834208960206425965639576106520896446449994146084712866287538249925820685867166207761706522064711293954134192923903032505221458058294753934777625163859208995139918625555675867795322605945965794517768702769390056933192862813658584424066202118946823484527114353576241565842012874520517881520266909066389606874162001995710463298928462346843213475053175334139850809557689165307624780640520734504633313089363011698902381561185190535738926952030129671081611065220671601522761225713680395016320459453265783059870340909089759582475476058375435753958997341156946577281449245603937973359535977683418586005201293497142160061263753059612249261160206580387066757546562524800443067109083868954221061332571240285145333897475093386304248730740992847943109069461162505518041745749413668227360241984765257577670908982568604851871760697639402314698554613271462477380836145462918050663986648177583554227307521990398671497776375253907483754278259614748970488155383971757823174598073162972819123416721104543979603396718482055236570827920192740220831231573351796348370598655870098721905546164352218973377788151163411379017262478465181544053546092824409940778059280595810535500049114883093927199829561261330673331252589683079658986047903352447624399586349781453765268905824820622762122739545797984622114376486492810240101477163551649922417346373743416982465109969845069653210216488428056838449582334578980205516653974517557528471770637066277983808407470218881105167937245660406741550812728043133075699304208672101940283134780946627322642804528307927568163479376857650752628655480229206022624269617126812499774273857152413341255726085858406367486733364526469135851871629012861601734626401101519078976375727438759886091389353699703615239546410165041400436784635887669668487236731783554325318210525631398108928092427241713654990245560716088562781655446690785433314356359529938240050748894153314546959804146782021350648756932011434881132346331339958648020252115055718545921188675747356064821126371627243298335086384115486541749808705498315951473533107544147954160120127050328532835451780706906558384842319138937553206050660065470987705900026719084641099103999588160956441467383616059196091867545953215822527911167482326566404924596205991407208558331049861887541731716369969426205504107863127579537506612206321087818906019153029840174801152472377877193429954858178995070824582852053306840894995113332817882830461915828602642336647033953928155086130537653962642810901730198807332864996115464750475543950433400166440309788450885978732141081953694031946695234448704092991924085973849420713606808331542953428601031190956869300533605634543679883979448757493171604314411222923800166381122841152340821990900574529839837246874352151298453293701300432650218386128657142520416464067759674841906348365125174303397515471162948334091757467675433723201133157958832789670428076880039077294108456226411849557562547108011406242867836637477483859058896821759350699498548568599966067498558235878222822713599489819836620381248908350910834276362287376262402912323266849089296685408808912354495287294583206281062705001861151929218355782017373776926507381200661323860989754689275640122398603403332324376908292917654271120643853068818674585958967930566693092007596242574773473624043295156867171298432913229702746347293040836748938982379034593208338557554977384683947312428357600727276280667604578454391111052269392579621930842735255403577480334139760967212585013615748899118560153594880982794646024954972230941341932036200454290123012849749145496537627375872735068619510702096130829046699041775606653904040508403345886411017941710924627526087787043849491721742698021794573169903523420972116859437169681814622557662639891271399512943622076510229170286062560795433606345649152863985876523125330461080318292862738616270882244095639876218717547334040853239756593054124828701202660954707992263098096198576185652088615094493266141270683571620740997386421551944978487326049918863866265777420980130489115785777799500063583824520371685060630315097732130245687583824538031122537383155157111314751411937308450752636239366368342321549642689412283479461077332603062223292281305949881637253256373289665137114429011996947087113049979451254527138630771680864900597687644840161894474687040488828648888143971706679201955031117374470364882235720962997439408980629440205620205217129075347719891744034077683075813073938075113307381506129463887225809229109204278536905867275797897655711907632341723469468374199837878738083914997571541152586012297759806793390991177212098465960666862450744549282891258976684981453008325308982591601021043578115666564922039902622533543274393571360204433504822792370054257850563554263327714616266575702281400480787465450505010571648687095352667630419705593478119303352999705263952865115375187398905862640685969530062705836847472210311482304798538856316617540835162720387455046570214995129945662541900760561490220509803308881872955213228107047959869304659206087679008228233631997943720058941509164065200116300000416209120363027474688468976716477979634485776185890030183580778100152773301253829642831149401826479305012956918606428692590097805665858272490939779713229929059152062871996834199557979987385757289365892626406643484870386071409090317775515659908135430084384178242386893028835220451834398277260848058520189219553486737520226750411153571317120303053783931911419677646925978256534684724182143222961332973226326798231915906402969384514337361021329346884193541111333752025402124085370767412747790644456599681546662733396569066174069519524660784777082276918657401190800326773667537259961846280983807935027855973194969506715523817054064053307038250831896097857332295470918253235987481420354532935045150344363636997140317926892882174293352946993740062346143621571370869052618764743254268780515234786784340571001922540139298737954184850924073062363007352693058618318880534426802562633995378426003934380949413429798934304340693274818904315379929120514901261641442202229671302349415488042952717625151076734603784854810494488393296408689177186774845775416472657616053039166224681593509234674348879504355582678716310356912290999239867711954756648046128287538286395846568604016418670492621072882319508045003026133499555558805440510625285258317777115183196405256277687753910381636785000463640710362312615234770703460350402796380559384253662588795874892751981558913021671289776323679149428582248547560983294501002730365802019859734133955871968116546084118780542205001161209950179402283900223113325983136497445039033568433511981474705106859984393538013375535592680480083460099656776123820527756515809743573927693323693007272485737832281637149042715929536648057448138235918279372737095655595293496115731870036496545724167334363177325826618931791000427978159248898646430619774071547199613413010379730421392052971893082975465515853924172174655957433579337306181238519843233077379110224182227399869973447341943670156125823969968385758204816626383654431416694952618019753426597655327571342493243853545400257664839193766640265350226337370759409224427210173894598477048873731126346692491659715777216232290399270904318382412547383188395332865352660790784558839576650732469148064753986334658373540175807054851698091332059677671606034713757476741119044964163975353267143947529832829623077361371536220946540220980359324639818986331806713396458619069687999523209346048998538419104065251832381239504928285651689227434473801260151135295392703316344283881475652704698203261319979423868540806353114759851519429151702815339151668129282458391214376233069122966387132987238777547323207695201758215591201149079735160523856582110428332046526071178760623570538524396267729680849592475670624666633686122901353170973047467399503381708966709332279291950585927213803162462182920395726789175856908483704245617192861526692364159327732623733753857288579121411928413393496255495074774198100458988993265700815732799540596753653775046994283084162782607693155883620858358733174484431543778796233317662159516854174436113933488762707942096020604854551748236069419594170849265394522047751959282376779811733239382423920039009630972119382000618398416415335613823577924957102752569747683385957598638003241553848801625283652667209075962633517079730357227352333117463544355566704953333865878593786513545617137153088778524683935286152019149612153077884595951315788395094808885340973796215654475344495011420451297156536242828593822220396927535161451373511688218987419044281662526032997586379657111179455611717744245031562926239332207781374856033642236257350749505574552754179087860441024345046148439234791580948823089110463145304493141359227120578997810403105948723001890130658559690000030847024392831227420103684860590807666402325344770503054439858511178453586457169033176816335885029787822518429474355129338497286016565878779912788381975647917564964775492101590673376673778013608666219230612187561514352805507845429480343693202486926091258893060972627877415619369341298856019883541719320589400959260849371836845712440124629160213341230455875059516469918771993918633823166572360725861799707013200852928767191459236496361050068543241277015875072484391991148164370993941734993139023109097392519591110919599584565878315568205236561535988695477155955545224274455191241175784090736897776534591291233983310711032777342404115991613842363804108749076137705895922463847589280675223798193625334355416222657663768330362508850594668548748112273672373902857176878987587137712242991975986846793266093121027736213007957598400514372787116075176295262719257283129566903679020887585322433266127309226069364370974198854784405811187398842609720444324552908473426609899578741427329360472956880168204818014342974101917933183335616846755778881665913791961312153159816057320139602839466567794711592499913185102255353389744587799224802085691329357850264061996363870474784055475101281797980587098162972306887385346750574545336161872526034765149021405704245504707577190415510803367881596880746941643398913911652796701308375267989784176902928514345632085735808201159774828276732275980898083598087875568997746571070077524326846815959737040314059133361526123336680283884788508339079246654464749973691188112501659495180092679364356014070400046536824567653436144271936523878123924582464121236486997598776201800707907848145846449332125987640260302590519688083969675009844323553581482792484102047586627633624281742465744524010869626740518439765570733244114510173414284967620071959936739924626941690111698523212014426226209096361110780236441037763283282169059239324483419035457874788710697090078836203017787472564135404150314273992180770616110191485409340455901158867874270854365388987691683107020313097288586966239807018588908790145600494441874658575145179284370077927405048785344803711585259210333470278301497597589444521181787407246193621963736382885986333102623400303199559237437880007124997059559158908274661683456394424244067152935956815034295791084575536457964132922398719756539121959158739286732469006861321852046200926980105823666268132924068209196440408292739701386228682903944657205108886367831455933508305720376539879667333424939136848064205518160967611977586755545026960779147471098396751033162041458439137366555335425329341022280781769244077008944764391006712552028426703757488816105211068878637029162716898555774438047092933150013529399689442802870099963414138555748670858012685534800318778337174903647263055901989064042521285464701255809207110348815808291197312074001514146446255768484629478276417637828602735122436011385548676862977571448708405123193600076133107624572544757295428039016075232372216264939548138711342957799029324420187161642414250894762219464108455578170688724549046163907173499225011598394975687691284017771672279057413304544292907609405247091821823013869758209493494603020786793389255095971680283303454116299135191689509385053266513490627406978456820249082875039302653669476315864683397416867382007878387285079308600244561721553498397933349744981997629101053763264968488200367282877525479912349173316471074356728359529766573395432032784578606306127855985722849179688772119823442559123391005885387974128210891893884381712925694178037196712690923517852122746998171101071716652011790238153187819477044373693561626653984391636232686587959702167911977838580056240032721588774647210902500455458692773117713894239595145424200627815614168960363662471054777985772382884525161979391404450818605464509868469336136981444488239163508636024575637505305142688184184721351629078340644030481679116406554416399516283762750133102781729028762517960190675332385288162945223813579467165604500851082140254859605453835906416232411154533724683290835537322076074557288499168136206353480636370316351586807754620617215990334174487167066694430541488184589793035644805471024726461832167153301632788051075404372436794799817899312365964160091766010626445460469077414454389189207746265336916715027749542610259194543432372388957194610132416955817529768029158246468380091505296433052536918706566560156144763065929078648225101436577732838403008920679869840328027269063545654592798628171658484113915187230267962537147816388111190635832927850843100966758378445498486839550212487611455250433028810148539523528276466156476285972029226213873222454710296660704202352022656240585747431007105760877870174040096691727979370125211701576984221367225509988014091692518244783681248329886028174241136683844386792526272741379765764104418098599794396444847735757988202085261768719342902430936781157164672197303800057145671574202106282745228789089790224406346626090011771352041968077687604197259473746382930088934990368765745422450245407333550123196796967566177390059897711382560364122813848443498446548821219541724723874966322185625866141615788647425281035302509320641584159252131611942037779667694022285714570217319889786899391241232183860536301100536750873550552277555766313593261485238452416391741276547021620536442913983602758170946657376453588944114349198291207520002075589950880500697103272495798471946436968321455663172633895712384826344496926969791217285668410812820671239480397221440032037785766527917610209552818018047660754628860615895571057045909031730362642516443763875189133844163959624107399562162914095085901215679608467926551348802447855800936236980626188529811673812540708168702704676716988510913738303604142503315362381239297016106711277471504995164876856473087892225991039102912315330651284549638195070554541016577586467328561568084299491962443037825709886704096742189054856007593617445640286518497432422848357212720516133865634346648678039340244232608182070027696324399901369951962249085447659764564360500533982591194548634473616136329959039023892846442966071020499386899142824896158827376314114217831408394696766182047084907998559906430401995506206996314503954117795311396784781449695107611826517569699240522968544777324038501890863324147201979505012445048900379822852547150979192107549366537945945023386359053159405896156987597132045553253726358072202538542909449290242269447073576005758811378610772496513898221206490775520774782245894899146895812249212396464509611000500711494267199934664740845902590151599054105208750745870435134627491082629320926792859989571715096457065081445886074101492933855787776373978446971674134617496534230706749053578636718686680325458238236254896676863180119972336834323382815576692772088670983584140067024686990800049941753465886424488633917083104672549549642618224781374655014133293824795904133124747049214464854818039788391068705968251720414195233957992624979855587285013289629172660535333548858401110441777441110801592275861177973208195894652511704210940731577500806488330093677346129465525517971874815042542471319561795008125782416174809715018424971896800062230467123647051151365108291019650729300892215510606664195397802231146601749582342217185216731170273560119937397877648479915186485516022918317818148182639965789573499690176799327874668569973698267698592227146727646492776926224609309708378622846264831317015478048593752513264336505972203514406378792036316281882564288011094657871780712370972852414262752713839272589088409548716287731529642423572287877973511911212640371598232127845509628364774261601731735312253142292133527469192961603874237858165098329272110059076989690673578982978174149829072240974557622607041716202229751356339274152005212271024924855970927628614920570579660720002006060962225305407337769687646140941028606429095442166023263256810644503424696824325113812085094292552400397740883324253025363743824685763385225631557292966632573837613450456224554164345245035028158567969662610208286052382782196080556087013164032481742255315807888888353228802950077445095814939265600116394834340370997391586662586871915327575703403824012386003107918047900974988194573765707857861801750770311076264687554434534621724217934695496934162729300912964389505415816395598557933475065669724473628730859744078753388566979384987177844414741409394020504859312872655225251098713898450648565639354347830030729610980505294795068143798166603841346151306423758371406819708427649833713264167621623830805325199874803279400727203271626995204208005319823366376812553045720466114273060053862840242791628370571133277255055060268898270228532199280936285226374938351764476404339501584448637930373830011166443734820701619552203739003176273799945590151699294350420691499425391136142556634669982033868184232551904937110152833057306154988510266258761769286164056975567759476424715702685033199871184886700410447644672407529374802566560556880118492355706566138188368571474869786173928161524422815630279777222082966174340080045400057568894441043763479606378217202122333010978324165566505453729524754745855100810593182047720435220804088023255081422447273532585795547996796887595235670741917725290566317945399217264605267573400558605408146298294556236571479720818005868032248470145386948174790267630352257192565783686819603639299652409059573884506823974399257949109171321635031666674471682894288007000750063287817525602504109946075436992814390468445282240319808310031909389360765196663253841470929517916752638683933306086637137594819677060061418955370789420353696590236612999119284414085479995883099873545411971432434213355259043095019541224968259370145351776229529549113151063198702418620678403979946586289373350345078161395009283072454301107892144930032871918890397422492622403679702480615607022469062588566508208087906394926061033109381464007376158543202952720547856212675203550528612869265143852826104493156708906469825599543259968970990114055278674080756091817599836118262025299132998551478438618371752031267028737527167754655977160194052738776108514355680540279245231088186676934547926030589880738349130506705705418105150414333139882296797936542087832291232981163603096481661209246565476252290793033562548580097658750222207323905845824596673531644556178979233565367220279982355752748788075455020511109536252223011394644636594096333469654325792891438892300542727012595891179381599175425745951152359083293005811933444989921279167160891182212596056293187213234454688820646895592481082332488376385037346782337355445666312102292095809498891695564110248651047206450500658556352974801874169603690343247751953853770031866079945792827292107008067158514512982818968466055036539481733057491241127264642752865492397183822909599199278786599893947584798600353158340893206898283475585813832213125107161599175049307309881126978332577601966989683712095568918738251126097857601696720535936557649171510507403179572376765136258692312355482161192412623048684251491443326152310334711372388331988617470548218106881093253351012348494184181250723542010020448404147933914159792451244049876829641418879845685973862867925775429674237360875353461137048146261820780503634338193761685736915674526539004234431761784666270920408796245312163971663630804900818530527311589531011860573757370873062409691816122216001982071284779673172480912075015008040236143617727101123061056228411037425566266404915707466125066072026236863208516779925951928736743954862353376119111349052715994720741892683664838576903361172130505002436528774629458654295298125227960916824054343143854296727641090822141123687662453761525504160732095835950030963105995160321832624687388133604134077719212527746252357645237047295360677089848988467521383723187826801592684010894043730948761137094507302177934340680309173143914760700537114272122324230898815744267501173921794410150812064560115641861673281414726126178153270066240605569924388772973947868436738485623184615993426179168173209663760063371554464410047508676937094751607074345908465724429181606398449030504068376077536454954576742864966466075751510611499352729310677656934264630239222011252420424025164078030156023430169161098175340071972778409863507795405534231731467292200026384787948287839015978706138066179092022074371184198443302683623312553232133115854283200239407338173248312696071779968341747488426661242787730991063825731252547838782566141852683599146513130555736207445189875336441498077296451884691335099621891089893702598933371458231566307464382052466880780195860353662187020991884182847734524581347835051776871647607177823121531310856913692029340926880277084253500158262727476720897780596344108018872396621958376159286834487857792906309730586816083650670747296353245110672759231947322564684900856870359781951911647060662118109755160155342990721725741932656427135946876937896047632610150175431076779363768315300083998318477457109857433906499947412686138145542566757004980096063530100603800494809212297262803923895436301647932777160366187135413353430156562803753092163449975036910954411258648145370188750794774205097823904024325417464711529272005718856838301294153122237068091412382020755589754214759264480329728685602950609096806667023663943035220359690520360686368967947848503075757513071087384466843004981260259196365922075760006886489564324140172907444322750978162266791317150749327451168114345841294663364027721398353747339021887701124858491900706417828943275620828698311944597693403006182091940660590882574953663970386640382487189997825859500062787797076546993036096327651264870209250297757225411318385670677123654936451659872550737528532036583472309915442595353397263533582758062024971784040417138016633781067931011091159470971584845051738017797769346473353072058489629235045860284770392726708222875041340732970007235329771260353836791045083708461823158470174240651443868739044252675147672044157196571407502506581599140188918799796766793044396066056216008123491575591683714026104605612005112829487477690460816807212729649430934871352297838185795508437895216410754016085282294046836502932376924191042540951581225002533588157713135579014847723573290286500749762337283993345989086442536848661638172864602919048924182006064040730927998676711004771945565046499089085342601239384669245018178437286921069970894271647975573524070772737121787256299299369691731671428828688567479456824245534949955590554068292253131316830812177059523847950321910634910206999002155053224348149672582785376430746665696097743299166114523647948616078498221564007418486444570335823680524129542609351095927811051903142631793425851089930012916050393836661536933110055206415350452945001343451769788795600496359981966762051951578496369405250388740384778909818927555009497030394964237251256645356451773068177334842586334773732773560125616876665956745413675882379549857335284701288524213350612580173355426051510983871979651702926521231413609671249447436511054973438708302763143544992060739847184477806037049637487067581617974775926564756463446537764663108729590496137604616433336177958805557084582596969161931683095367169008811092097362396120767048447141467828869436202178176431350142814847935973011767126277300818652164468032263481084393459858988768012569541278561856544916239484329299445010223621085982665999765053740886867300387413481315971944763665726573975107202320113408648894350232460412019129155982259610792014034729004853558354424660735899584531117415301123968662216496482860523431827515021007388984021305565774686696831042615946446252338989611751403260124454460786631555080430884510916033359194592666658474339472995340711508173378866442607208891505396994138531790568855448076950237393875760239132377554252960440601161625403788965357615888387013015085577712639671294261750022908681083909076694845470743146375771973408715117756617465761170513386022051379343919231424198082709853739180996918239943033363433725923396046047380354324155632889520180325938367276295694568352165509752847393831031690969302968786739563557138568312808991508245643981882269359983022014974196955580753830617298137044735462916460038943848539579557293724585347382086192947908165679140392506906013189576325544993281376539462516860532773954198360528415882506327429665830431464748352905321827078789761413514302228955084561270960403848281204130502421506486987613279247500155707763007836634667610900203794132321056052368695391817709219168851805303545183098179856115860721356866898342838429171966228217062922025374847106353432502873295353137030268451054263402618785546171430541095912839410607519944910104612962858471471179512696921144395522051686813488389755669662907560983531220006670619083203044629138571763843287927681165195432940817367807632201247766508031994614511967613658678419726060694965295397132881006288292113233159507056620647261779038509998483819433215137725773662447263391139677722587795646394187320208217395472412837662556020137131143516378476395946073140320250119608056335359353960245194524259637611000434602457400899779023932021744948797409143614106056481646195092598005650998790723418969675776047663276806022991964895429795565885442291819316747613813213163712966100005291482461799187852664113784398532111877717686561691980430759950801393409003420313201889507447531767790643927131374574395025030754516724493700610580420336576648741422426434570801107997841231447169881104505469262289302713936243690254510976834520218892177226772209172863534361687153417500498406909828299930975787813730097110972915835093177632433996022765011759090921300752702091427455763772087733846383431444823712169108181664019925924915007671070724684954540006948814305489262141262934785447181615719147684022076558672152694825466485743595627504873995464886122610322962073760173662314524413190014030081725320116186686443696155511772100249191486667346320172930672946147622233034281913445460014348429439768051325822854213321585481898121839207387224099054507021346003212748252462073501001819080880464880562521880246817471524624772185582099164118453509298590224164277119354410631715635560329571170925389321454411031150913194320569133272938900185158491403610550319561105935553277295222262678414278377252284577767465839344808930369633023872187827020611315079351800429074494647324890118884853675175632502827749338477053206555921582363577079748021063974955136662652931338531263158401171932209994828899009312594114062651901556357598836701372850191020600291314818424957375559104174450001629605728429667887418141121699755973524893913235806461605326235222414128093013159818719312687282638195236087011016048483036801480709977130790928934902626116162709591562794896798368787410086206282898353075836551804603428611545391942695662972173589594775309928736429649665729414771465064241785938444682611381341069049891581586326188507180437346200975136930086339933761736524301868529140264660123943973472235149055704113935026298360053295162918641469662953996608753403379262234726918261762976572306155233101081505727748486971132362508911355734151142176428032836696248953417406899734819109072157284419858894548130832587381441813619485063953186828216909798269512193282819216003224563548975189957662276557714322635558560988902324162089800871282043981886213736309566418856675973021954269503479637584045865818502685625355441446332834022337227523763806857764232857591779553066828684741987700455963607452499725966922507711093556303156785375463105604866917208348030140698873427268892231313750600037975267144215403414292338531633444779703684330420693726220052745729933598509444804866404658576224634216350160565756021686748482033256151774996950934665352451596561290101979033955391226515722164856013979165526438538321715987710575475340055076203708141038458875586312167147929395231735197453858709876299628218174513563190639588190108917427548124169423047640232620443577135610783577500281733081499586914163395956681256418118597667560604501473879328238171157479045003791027736986131609167858223073550165960279308986748379577369135633547382258538409270052642243358097858874004572986195964825521030792479954808575311059294751211741586798018513041211442707664879679579113185342566785351146414168125102349322096728753546460402341426211583971733575332168686837948946068758138628062360906634487308773021782078909752945752143252253365296703265492730822766160470996137818897231671761433417613576302366577477509805138246678374562562541609883321283260648072779668365349374667789204857918976176554879733792431113606208774183086657145439654428909177271436569713452911763018019077550373647033743680090731962125677241237238056773387896356417188045184823992868503043822270342626186200632705433027367512319549169212764070653177202739478976163036894009939036203723956456584849870571182666322066442833505853126300675938684470401278971461352634001586795480767995308656620437349075095350232362184257039430605782423080232418166850542747897137675286512634109911591526113936403392450594552768157584662408935615118708143477814294344413283449633206641344361045688273478444651157486861379206958727199171583097208636613060942572047032732959096984373307689042927437896011206704684047745314827016039065639693616103894054206524016375200971710288414728237526358110493044385647457555216858149507876461254095157406086379116213560210902303176621435290996214711246146686341345526162466467399054307776880979447132261837854249434037701453126777013740434622359849283976156055728362987053624817922421945416144679290700836340098674113543887868599619548782562145465166869941181581566259876862569752812342475550091519434035599222729895984137039845500044513984675403556782165987399653821049430110166546911120508681237662429378049186869674052817407987295823441356603933843324936805201820519065072538982298368535007755747899575899552425802316898385944285439467723195256780020254482211201482505567592424711520544948644735526359042729128522097689744786176743867369579072789525844162286015466472070081704414521044008147943636616257932580488760440271956548162258970878240305748601616058908034588748561396582864458598613377516675578224049312953781001419146486418884364279772636365033612454244777833988475544308401336008548535171799473012871702911775451428563664510042162334922596519897923370344160102961591219660310883760913329409803418967365705391867679662043317973610594565639105883082740080506848508998715845521872627154489363873762936715408489191366923746565140611704477758264168756664670882073566905478185492146975133073860637061204385720783681229626462586854350056262586816015179512230220642513065510639246255263888672634175120353043315534591142037640139076347824685668778452171457704458425207706098205499012785677208089354885074584867423005154675661618277044074456040379396572089780125362126353749187006219224687461108187010066234362740933411719924427852067043742853248082826524354646306571984795579903190136239621436030940379603788012624243501660250383697728311373796449084169458721464724714305307450764687842028830502231247163627713013965405532380331318193310509079328814210638030652830053912394442198986005345348779551241495894571233597928923553995019024401301336442488052682103096551029803849019611691460129514704109604122664531689460531668630271346659442138402467846132967950991412205310465501766300760301972472261682449565570562066460451215282176974944053941570448177980328415604124400208774840548055730343422587322211827550156922120746892658305289944384098012193689244923982061860379380269945775011284249023385627635293950783553610234833533661996120352459042066517361216085147436391669185390939387384423794032074836897555972056997561237300087838172370933172898863503815882676796054135560540733703420898701512395213422974596044514471969472403687444462972664238496596019772181461918090114327336778853073887428737142439725439211635567722307451004422201270672176213258766317063881889205843706690523679151691596860925024712730918044925345899151449449474975709037035622895484399164150803597642883663049802960054599659873791077290440591810244051757695295227748428124231529432141961420893246921218396807699116859992244954336986840703539555814522420443634555132976123617163799921054553982087254102438068651984470337240097406703566103047436700867591007918530621995318555525577891293955254294155401420154852159337519434026272268346267914178506565481074209745257165437350155483491424791459374660228809579230984657459085074944623608879985391772628848638105286803866307761797265272635481675923114025215147583614174073693191083069495888410939563360427821756893249865968232845013817418244453013163877528726202406326339311446827090080317074067577183129707632354000067108258317999002885981933979375927682152416513343885451411829702253508786837552830639986940743249474513539757087098396830322808891314236890225139296279988953512152300546438550743273893495288522097977454607959219847350247502492271160185544463180756983993301584753167641840472710652724609349637127970959765700125547720060063400522370944303217766822771292399597506885304436207086971171883246680201398541151521234474650094488459863249309032778234655450269089459876929542672859079532817396645293241600673884799031867665826814972890601522124511518563103381498140704791483492697315479301430853831236677167664316406227086407890863405087250173087987307518426556080696560069199949217078151616754090989704167621922751991705174942361215224009620232104023901742250232680774124512133084166669092621954637172282563282712077217867336770900831912987561130272428736013225546316263573624698989372174374075123803927078338899859842770081427309846708146851489602761954965068240457510730868236767443701045191609960897488627113387463766561917206895719692512483251796923457764859322473506284580300887364803040394915755776506827211480877753554833545441119763150356690638786896328231235077716500144964198022701939157644619423908818936502386185653927218866308363125244449522497670543620796364782031513308043722295440346324778561183562857825983377967154285462055341237012232654399870098411811685517803799953517300449768326841534880375820515795499794075923370289972130949336528233130636346700083610120407009180658802501588318881518326537804454218279929104113519660278096838037403473485391156241859383791380572512142049435637646278893786053809845065263273629038106703283735980747987163273751160116313528339977679849986265036795012687978299051821097455966903944057730855629724123988844060877498487512013060496758236365110021406965687320965691159629212466153669292097064130371919640223550439479220857566128861040731161760285634459975193498284652383201490602843000051986148780359948753074738696046595872995197333007632426245958809264414283846625677376820736807100120267901121644147348938161143501305168662932388512402733748622129858353989650949486366056073285480870441908005214866562719559783603553114314507661480176823697503110114753435570716049190935498458059275685758427164481069734753445167088945073118900564145620326879543179057664294184795622350901097589547351395472032998164111656649469652993404543967273895328120743521606481809671162435078603029553098183946355051793160247982669219558131034825052110534586327828094525191311450373994391248165889920693232416764359508499888588839164410499590324785099623674184073890210390180217588905692708991550834303532388435664490377475821369119410398324117408622510198038202716065771068526213593005139492723090701282858652979341947807597224365279485176929879272634122495673706771350540894197765763951674013711314474869768231406782474459591981860227708656946058335124391900483649455329746409364589213116595562432427165196200716663241576058016565752347535302600298508281531277447636378701598670059626296903680012499692683606518584707660121685532519364479463097180993537889813742901912877433172988342055130295637567607027293166598434189598894355493141872500052411318184634267742293576934524046263369852695210834854148958284399554125464212808684120031654454594607315039404870812750749836944165670919555740519452505995140091713483085178276712505035238480883591534110787477179102604227751550370080931468076917735684123214460087674138174205128128044656908997636153897341074073444917046124938442578458016901681432735942853754084035832028570620547415012725715763952311578219968490183620710029622286714281135689915972817823287589235995409091894748391069226542253330237062009473693519058157551952170235920400117659123612508210838883620638949756011075811024013730047871940209611432919457838540874678748505394138604518738176427332121103642275534472002971590902091216820865691525034181245712514931952497884210371041339048033244980172027434581817457726370169959818498554871322632706699832251051184778998318898919656617662574801840606424096504491902408907534634214831070531432810726814073392792984140696656872812828831724994430565855987152585107875591389312467242677769928019725137774807738406751476194510985891841643615967519474723852247881693777320799639271013966042381106193804287194475179564297897579386465469572369569757584349062164486225343123043156782240766117525333478793476517903535515384971751689114382736866640113001923914841853538044280541296117401245727849396585470702430293765400336639040354850762034425171377055675739064723475445700710708624336067830334493320235691622221525582876455003821798002462164392569912285169001864860811937978990160602261633995182215469021782370926709117806149132958183309599570602913648055310027235154900663618544407166496558352357476472991703920530390883143219182507613396408944025221655603279891155226048519163719891357590708129245771056683316673282277973618954532946544460017442824414157450377208876130428772833611758674319648161485617368805951467836934080900595483547393599958451671978482032529620481764948588829705488618333763202964008021918050353239370134699567667753693421977113190829854629912628602956922004610395906758310869191221894838342812947456587876041216382999124965268609056910753067625609359150159140368290292619420024375126422149386749543515469390924989599586085368022061500773784085893722723272385611507539954114217519084513677578345486616867844180983837268259164046909698980099551660585713506727557854503105685153066181336294580969396505841922970975305029616025076385365684573754316755705379069200762058831528333352699187281835935716206591500743219277370220172641515035777784371708823884043151406088892926574895774566176797008395401406745816901028155535308964539620100856535687386944910502227461581003095901298302739303708474621317188751975743699239994761556914756133864511917865035766849768753262155510012387309188405313302606854346768610883482786121246685878136747257032630976507953596968591260780881525239695752176397079204829022780404969149233712766909480641260718226395251042854977294667813463497422265215336728484693669981106357647450715286572852984214759419723058879487496727435235934031715192076165341339583191593327366628245871274342552042393259305102229687457209446110811166853861783794003263897775528028462038276645927128490144651360546487643656723605675001482295019739088973693658888062714242770762051511213093014373085397752453627366158667751297694050504291452700246918182318237835270150911358392884020588521208035055261362435372563841681783003758991293003682222991147091102044340457093517062334533795887884902481131040396476752957727948871831476885043811418716369780158680256438400229120666011167817600034731832997816873232058831964383104601138961587640207813788775001169320795119080889520480748689422894404446978785996124022361066934681990057503819953754386322677433016088433572680468709103863190669635107061467407345370525005453973419746973357252780857092666180849778285681535454880954593329145116019206056781989182903623241472106826315704072006310508802375746914226499975028693208053898018353738264862128260719858591674857004508232951670166696033470080784259837920773300910344702132354758353672467775212408721709413209269730495987893181772184229554334022614257874077525345420490834338903746722829049981251855183555335416334285891611075941101091387251686337765282899436917532794960934777293375544476638323052420488192078654523050412842368576970470622868660338212625904125678391487729493567758967113102874602027960684935843349764676308170881775708258081287351868315028147580026571133345233903109487771136502548300828766188966752270837938389322225539416474107412463461096327711176716602298095277020723499028898243310541953216917143820815397299201934161576021021226009690488112879112604240988945230233535241136863023043549730349530253223234671226900021825849159576416627963374433176866615016207657249903789000542824122302252130863538854735606016080435978919293406312166897104544246140400631448085759862910014327498209777616032237284333236823332296839351982201381750735835251095099562727945723347480817534800965993858768018438311165013893199500613672652028692033528498889289101944301501402090285363253392031291925041835535508593293069824440425527830638548723123167006629323385383772978862405862234776026910927371519473734919767508490848086992359063262558032309325571165929050976630789126671690413910144104301603565510713136526295596178881323993845665077457286674308100097171106225746670340311664019823631141113856903057850690402027759578574678686471666104546749043195704932766423476990688324640267088857619986792270076718153710345510988381312070756037859870603282896322170231871705964290461486490653981443146248981165112727659331583121531020620927070812477765299611704896108866580730839653014413878805561651701835705031897467558375565248602721076778373675210672722018474096736351713988428371874399380218576570520686700565704137587150001692491898368976018624774717677977786887805198269354840189104415598574655420494632293332762682232804646264454020238038858041188208028758863380479921665446793093603738636558531698731106326831791542066025385542647910521960633313950361267756896308663801611298038575494147649299945103070008686066343771309223747955097759468616116798722128098104207139569742682830553530058798320084792983126203134370120358377203241654730362354520620681086357313137526514571724118285299329635653433235233504349032450104981197132040912802236462099575584214872263408973454355542004555915148020169907748479628887329659911766937375770941366207375944239322524812858640601896077438669641408994963249830862749780377552800647089836679902354109856058651464636354720789685122878007410350444386671604352477157005668459020486926824821488685918652046882054718144576815719431612108477137203193263500974159680569381868134185721034932806732990183843340758844682878684647939991615276377825469499670270676189737245434514868628173891631914803019387454479296057517982144981781170202163337841607759115860043863485805397362998506699409285444960280058175474627625299037193471254783030268401737166948900416654955717859634783288403909202347239988872202231707440179076489431798005530355039589022457562801196520330672666527984033193556346064352315663323048024445710800070144404000868818098958618082817119165750164406054566837604731687309389583794487465059620356158839125547615407613373582751566213644099451616568896702104960220862749766259853807841009570190376492393129552290091293711209750128498413377230484495544786728804997790264743119656840255942283755928657073748689560819617260451155511763323231530063323078843827629718443011553969232793281045607480696814389623460451484204806391764591645762812520289472971758845236227903998174430500004852575482634714537017460142068850621193847973308876402137934258347970293171002518003116726986869783847788756220060567409036196751164605121174728597025729102853277252273120343875227750061733695476744817907562006514373347034710453872196051374987693497471331034443261393841596268791817556176787752654072871315913259653622495597389451954489768257518320964624373919721260140784635053930319974478006519819909876578819275484987979299193310463255595492343806816973306047352955352881779512775036021308433013971683286872643465426275052826337325251615364460667289105380076224548833813988115329335449762361551362460495433289150531404576487242853607679792728600741007428309123625540547498414202947712380005880017248335570531628595360778224256713426138445791581237472677318613628476124780891527349555085115605963565980815129545748983184807690710960599763356639171261414443161252122612818935827308409007064203218901649178739114100426579210821292024983986446815001268249957173910079935195494180753418662996995048618003562948400571159274805389486432647454828178367428274598706019225384556846752798137042760808452327797172271237625874188561038126830871384682268634653903905844589232686294589200365628631586100769828979248617985138260573076308660973605057300891597867880542447147262815692232637459111764808046915383732074029913463326755486435278665941574475021173965419229967910401143927703461597154913952240060219010852063839401925296413886993718845772195790760504643607428012533031750812947112072887293429049681926611836195058675125776794928288421614792929744962848738134416886823328546391953648410597350943227405949857894728536435148531796033152970415554958633383166648482374816239416040464913472068825612647427715560892619754799103062614373423444126967465306127336500423434963234446544913488810206055103168176180330110332130670426952865855709678173213419320710176434658114894785346773500113580417255275040726105418931967745492202809724396248380248990018203539872951401979888287756455981617388865672371261228934900890941735530067131823921701201230567420293909120457225258415503397187319676535797884909145349957325345367148865052913777040573395258585271167386854209926109756698819187805989092327586016646712220839080351730992911446751488298159382484530924081942146328698549140001623645665705730841512481626046997432975537474739959530982978684736237447182242406601900569551615046804579149015086079020494125282994005202185299677090106886347017349810216868117878156095115067499064291523883412464279015458523024498870902256392055968144787581600489926813941958355387121293856210203358649737176704926575906872095581728563149583890640072044770588217743673958647123241054009407113884020590564314803554035945735829217492651824307473727257527952213729225700879667091187216231695076753792106866363426355666004992454081683907488650871331336921163339133062812122926257751716921061804223554653138988039372861366320202716072209868652270677964514739218262285646255252133852781509551532451039816630114859372466313418549206461135348347192838889263478531400691458339940110125570888421167000542799450935070881179046995199803250189929750907186168585476185786889398922035161185220957370432918446157461325071588570122711649982854014742570601680228807821708041698731257438272459346645677527753842868331463792974916221662890474506368273916480850541061473389967112776805649217501128968730470678746155715421701379659782995287027001204756189819450597592641685649171879524364787768413189145264925805869793806794284370224452566143912309139071636330161966055006505484860721383225900562134058681173801405487272865433940878727788748658568678953679640708160082352007749446663231480217731423081444796764500653145076561535932902125855544901055324982418758691596328604997426579641264558434404142754049110104971027180082377097727663326879652069850850494213850737248767481775301996930556814211637504472707503402822899765561852681765849472671747706878962971541504187464118989207357725909107073155268686992151629318487984978350247692075782853007001073072145332339869164776917385841518832221989739903809968031665118191806875769431405352099247536729269573218494849726354679937950129892913391971902150914191594516674673542252476552464234357161808257627109320992998782556146573466408791032736319967753909251459496167660825986010336637469206784553868817430126537128506988435416947954848462818262904381980221029387385440689243200050029851019731857545339279041816170214186489323217305416428104327964925344776754433249736469256873761303532311054493856183050158973834601388110057813534340290785299863957797131219992433905794773225173730878091818879590219094150458307218742096547475571539496850617294985946521529946198038466564346763671165416205621505731448976511930264872375008386491535780990896069209318389699855471316601216868585396995707210961280138904422002277011530281765527393801618572195670840894685133951796314843222108589277386411832754538216196791037544981914662844159566213936477657732373559122221046007061795673089852475171621008646507931796678429399243266707504197691031140207852383715613830960809004662352461550388849267871402168240343296296494889849216056009934613736176951029413926794004795496710602825107929391141970833686657236707647102198725874848227133875429550429767529086127453334799346889664896682246604382235240415063337085091864833040899606034699377610388178960234303218039456827649243406900919772335814048023898631496391264956697824284638201958726626026438677452288461943802023522854797380649468733130996737722321002105779555650384882883266632798122627647522546582282658505932840707694026281306366181598416849377147087342462792726333596841841856310494421511643532790427761229134392541948241225070109541878538316680270572019158874843346994892377750390573923965367939462827103974841688768170921807031447588769804167616908150188845207579029815999521257481205096514150430421197736660786843330895379264631792448061554146154993983504143869280398003114528126747050299106423998866449967160561222547253351152153352988741023814720400417981338380210239855486268567895039128200420498609014457760756044606724878578137130746209488567797360286701224897189539576543160113837267678839374301265827664910758440566307841746126670145884413881863013064281448828382890977005583764452413028413185481118183652203394959870877676586829109068579598226715505990465510535430545943734342081885499593986676923615775720137224490443566984067883592444636101182736136355441144736119976700504181864894871015845391457311341994445038335117097727319875858048908922039893684669199249316123481869862137900485011850899023583811970418811816584196467251995265177834659019559031884992705367171942735721791769420919652504031638954188246242526638626397286154069136340259094548798925728852199782191690586456570136809029930448760991954248306386618163234179422928377773473257298476987067502747506227000589481487891617303434209068494717118509729003433323020188274325829910512128581867507567303509382628794955499818547068463171601395456887979217915252139822989452801758734778176622477803987071393434311005411450825770636590880066667005483212577787781919803390514519495661120635129989964062234373598229979231173697485302901000802977635955690241096026223281076714133021918120709472077243353592930088764593345704458958954770602973136349318888494601961452179525293830473164579322139100436701044487138748119196978559868231666922673526557785465886318445362151283506159365544627799631668184025487159171947224987253173974922709720307108905864160411494011474825213527529966102861681420257087888013167934451685850991020151712852697815851535998637752987450098746861413006573543381347556080135667105222321609456245479846944844854144628931634237501633048008797850534907400402813042174627602852733233655160511900183523159130168494496805756831019526285532384930604167499757120404099696659924885017409146909501388689255779068770674390038527516773685024463194530086267571913950745438008329496576106018029743859172724658228973607767950413007280090871668723170741167453529147382328001704089096863549001490257967807028180362907542194286631063592639717733814089699980255471494619730614307294491922247421808219241178474032144596260675165027175933069043537081422229188538768793157429622403275058543904381698024714582992102389023956981089876507534973011292661111015523575899671058518587433059065974529915266651039805564994424165346930070403433205161068321181851248186294717214575916720550855588527313568639423876058856399820767573920243227508990066241438821687291294727155999395347268665651605407440412668996095739620995702604947144130806883355299521724753999738718665193795830084088458425310751436470593701205502425681103560988449962434541756550688234778525652524437970703831532918066562510507467955111990521517472787918621357816946190677489113951693673609234590675895896491117336878885272022142007813891358220736518351994827667154146347683343352030994306066341704098103459833501984107904315568783238105000159363000374465950344676617889198845789000320920875915452423132989443430821400496381282376381393213806973778325898403520490119960971300533168719566116481369286801313138110641145277311642204327574527181888646836355759794973158930646942725381060807288487248312168138273842855487212497743203559067806933949256489909180782820622693704895800522554938973995746137164980587282228192281952247800149480280808897298178839157292203361237486636635733964049745595995522959453683249599255178759567569495561517755021125981457948986760170042828299523996164117058537390944832118606778058073319694811103476438130052464828089312321991897408922129258251722821588624835408943474046631650975774183624799672395663881931121627190443126755001020174093863564236955713354006366294831460144145037136626359013041975519011971210153550736092588361584311255017112873246718569843536214965114254829785676063700103096634558374428691792698191266772015477474703392007868990921817328472997481201577844960212415619548757949050943675926962499403848366517136456571995286746321895832944930495755538437366831745749731692520617137170279843214703295327209917313666366427671858895425614883996225124360512869527384936864567111987686904413421767015510263849094809755831517636463025652036439145090106235570462889090182611847015812730403636788090134565480586023214771244671937692182820957958189739667767847055001244731323258565098849009489607560338336598839470058043213545495984414154667312574580545572125298705329130060720338581902364281450485842532026673888177768553132597349073342659910873560674349237616706961174835795862253547206271899118821894417042260411510818770246311150558390269036009091164607735686215613689048762903453577308272734151129121964600187633285889411719953719090634449084567870014200996541384105303233633102783507526232545892590484356336450751805978568433781599609561568061644220481682709137301983063414253041117412830052944435920375885989313399251254971700785123190962970600341193935872860290272735702127123072595381075488915734630909528647195690681293396875916054072463943350455017853727076229778883063432870443698640616150756873463907696793459211505995975932811713044988527325440645495061549956634805182996931397211278666494220516672734766383270064105241601846067113268459848935986900821417370573104298535290757279048499778015521333079263951539656222602551575542918666228719244117095967258697644005623861229022116687100058598817354701130410028248980850251357641926729834545215840066086832457380934529979700261787915204162396123436404920292263141069647444876126101245907155556547676921329470777344236198415043037932984431598469858196006541381122798245161485803134946305536099034845849152828919760081682594860007549902576421326184354785551236020508496322391735246179417918151901498101252180543909391460186419614450628497423027367620106905287912335821505669841939846600246261381761691058235038879859027553275182587424383120717083451397047576424193188067819344185643725466198876376430185506073105155822303110891923621091997600811818782455969316110339978968620878656445224988278451463600141356059942844085090650631703812148928331654156327774411372190775718900574740751505172449612159894914020346668077596198134543105598992914434255037095775207012312768479062068996293544402402711536478822166675317869230547504519225160364847462359993787144588554028046766179838513829650053255099543910064118064302571270700351926382918398510982027950430346187004707336103868974451070964267309571058889323685171026033394274051371826464261940163041941284690573823346034306239169777988162226534812814334338251261684793994035902961474859277776178162853834426300399569728898285040535168499974949776269848665435081516075378189177810674889569070856010040587243393877708007481142676445155713684882063530885289636904152613593452736851963490466467659807847607852064779315092091949601290225749327466739983351078818369640516324131209171364654830879218969453080775582135845865297214593734629661715241651305961574869334107973681407357788863608944344361708336468756701773363570289325586080954384205435347319252791256042236921383719950340446530161867083619556755475550482092747365769130222970601290320472319739360606962423540756317613892831400109048301300032298299800197576099893601008547787567273085601897571635585420192114744279009819414601383090270084561653796159859129726811055798200108259345360712799017330468526685672167519159241743801795793453589189817881015621731334732620248856425394869802324182642991856247069688788238366045765560830070717313309559698008406869527657928644061598246656983212231571211544967075354893587531746539402229519918156589304746907170045064892317746935681983610806269468958747276507035713627392111407518128377970837625912090546305235397690002243962854337257907046938061411280266611722636998811420155716029606700443474270610624508527813276234755439276187644083845490791677804344455399250023980970108417699571472334211665013165112628694313745862893965254712408507978221120988734753600124299614274121425733441642972179949372003506703154093842181784517140838359804294307351264773289919384472093580092989081582470186771595205212946413148459124519251309364910935981847704747054692421934428231586268838127158410898130848304606483132136018851255864071633527617491990351748442835827566203588249345442531773625011462984600826911188853794513779980238944727547996452630674018068179446927873000199332563668998486300014102180214756308486439514291999304894647729387839845565828610998890967429314718250062623270784069607704982829763459446290694415263751603354380223332708738600019337870248598765347581138994766349815878347579422018107437317510810954918964662108864842575714211392580665311859945160827323978051375702033220252772249078363462663551016285478153369975331763723230676250004677835146610417685857556341538199958622706870174837189718301110246609029154812904575152840796586223460140055056087719130101742097853732216549827639232474069153873706369682030451505155028358149384219321054445933133913171284220999029771727625554510314170025064600861892070007145436680492748116713647550575664714672362713728009190998008423132157603456997074282769427327967694709539457319402866506788483423273231695454225533348249667068366836099387912066963410123865574307301972403015044158049444323982377669346485055369010912513810260190265398304041564768708511529064297054005256026186845080264785239201405441134903866141782461668521688800926549136721310650729283808818545390830480859963698637154591648749302670306591648799801531649882248546075719181533152901408524119663009535374774488921905961802506676880833931318727525428753789183031014880824347437602409908223903166396051460622974943342667887568093320644039051136595365556546064119822626387646637861497809032288874965473636680908148609173872815767184139170608958183235603746179398225990745603141809099557987408249604008971448651694590896724447126064732652156992082170043080484994849757811360601530815149695165075666629280802785411247879421929786499544683996086563459651133056894971061959793339079907850101297368554170055715677409691505411447524512150621092713098097146389853612171344418221876979204239080270288993654441477172746817858059166866257741715266393863172601339451547547711065813155306987291097653824886224890338147812868525422446298934390433844501834551241123195216252774644694670194131983503849854265713445744194126478129997617146002339604533750663575932067622512253745375668089780280859988764998739151898176257541929191528032731017577517251857745060035166978428608724615370734927114466800959461796518791528393065623015028805866745276150935135415244580530390291385220024635454461737370985544799279462575224358258029306729921074567261294639491658007383972563403485020309349825452772533325371673218567510463560530649813134078892791557276817070641473623809232186231541732945890729774027245755462207460424958820432558148196613461686954516580795302920168370851979249418083228166485834358648320826263011952898871517890350610526887583719860702719772866184753114485578914139165739685327664182929642054030298912200080083475025784183941138546238807931119373849020045421908137964567928275846812023037410146756907667182129584825471614148445523945966672595394317946853412684312082363144103250227676934338994158826640410248609050719018985237292312361084144754831685856986993431016854446040490595011819700795090460450176429335525374734294721494159930831818379179365255186813916530153310717712340038743188883820148437028514509158005191210713794178113867608882892305289769222398301386377660378359089895491452703353991189857209663263828452434050471730725230358599620406366801232711500894087833315213945239311561909300137569446220305672744560033230797237940282469755126492365895286708942001676061628671472971328037580901398083456040974025107325651449884525927201902826342875900693179607790029290069258049492620013338815646810341270936043608400059614913446093738805159888063673519033147546236812010599184791296469846019419733970662412383260474025900669994293840116432917559934857980306931342005607065251610487211624363230830436511288706397010831797653763393974107030039984907796994229256041472095322740483014526552463099789531963058750923767344251872106904597100310659609484996826804369549339850956709374817633350029717397098698055548932772008054013680725713449964211981846528405883886284143817890265391775691407035618429981777361045643142629157358582591027138136776085829053114684361293258311522208276904495649167709152631662998304296149874828949200964370037405472184579132156606874955591126821025956551847124323606961578716157441748826570860738087604946387975547606254398477900630747602052123600125351053911296381023746264596621613067674057562507606203762548982420544877245154889530112054838467146134848558219714796726248232534560899580965774623149867866288086708047843759762401620810952502142245195435075593939977406722560734050462840500008936541067132526683100918756418129899923016568986335101179747558900988036516365683753503333494683320897257272230495308770484450778014624193685022816122730627542510649418192199311571409859565753392287646899809629053388248106743282579750304109609244375833263404839819619057229872190375761908215203464106331411027858387141063370403022373185501345783643046279422584569352503745681062102841945059570715869428545047243764865239380482125024941276954914196683011483760799612413408019792902716648432043194380802074954152987281117172586407403520103014902836312819833866110008141371464867449480480985102920439400475424226516415425577089318816594209570948513443081216957558078111913303406527237391409409117770231897167781777225269762598641410060953142578643763579339188535238488331715730823730434846897512144666124524824764448807613204126700596423038779805284075044506208314980493576046094591137574473541495860017157509671215760110550388822966702563734108820003931822209203745694091166609468487902729491192878269095802445748134200882023734776568313307178569567995847301103483015805785552485147222113351487203123932035059086056984758344707443374667088591124782683827265504353305116437447383694201816614591979198449868403358392118519717275158417552230848899573601422101281366357054111157957665760231284224406207159434083455565711470365562160969973093625743102604591329799175623604474695316543398443719041156043049641493898992997293385888309637292983886375727674810313410695371850189955968697908408131206783389209854538407324674937063463437607070111936579363813325850465454821654019924981692515941308356953440119728161542108293232468325340463412618633751502360876897122191103478010967502843469137166257257062659956731309535211472489830675670736808182068294289046533657361639950131655427676695213807295974373196983811933921596333323559911804055405393612659432993785382246453096589659576963411174672774757892363224787023655767848772680672900768361215923699492341623781919991307777307070120791466936273743349439831354581790630616115793591312140706013934263226871649063038516244964888601146986937982859802242321063458079689691282164533242732186854690393768094026375641314327709747640090865592767947510291955392503036515436790728407649260457820301828184422082296062443297576897492888918791701867396112715919657274316867475385452245541197078004728210797057370759892860956881328678619658650427381607958343720282240814620573566894514816284793177226370908906411589414795573817066001300667769383192336346697025610981271053768684115163503320621744715246394011606486444520541855518182690706481426724707387179480094699226988412547393304833121594073256869593493935574015631357244152678607216898610649021390209778335799140648569901881996364203663713101878801262022395795842146370165794425536840671687861197462869412377005328274715800120310995847140418886906620009995729794638199225762680280540701772263701223386350691585058012332558966077481629403332083221287955807981049877538374624841113769199744366832636494319117822037457992932603058966720344464364584280604954550081943422496808515616838874038265342351586353279150450911231263180758154208569219398607412548444412247164485801548718432000479333510319221275006836331726040115319113077573986836405408720236900907023577247986392206765467780537112015898449497376828799442259688741498051597723212211582584282355017800879963011018295697825375481592860227729344868063132423580799016456832806566370971065174611534347603964035542099485187503308597644186333740315499725673221282122817347583630830399151366875323677796861854456747094378417413887570269438149728243905693430937938018464204013888879017566693549229929257789778467354877090345685933568303360840340005824331690255609348477680598097881905086772846867002208173300944916232523058458621493130005441798173296100148287378633792848660938756575098897446895626818243604211179440107438146499123166644689356875143832927640010084035149286029884275719226703773297673038987413294656195354178624880016923531270100907306568602669370609536854064481010425466947540511536422554755877061651044496300930898733023747730830915211676643262066570093955181445670325235122383080868528559816734233494884631989735557878076976165464213751258306582109033739353252448747506309239915714380625563288318262329590982928890626728678430901513358091731512724269306322271620856693534261044278019493236608370745142464743610788213297858186359411247004564353464927493371918012305129880236138733112999368286326088724277596708980851585063830699879007845768624474785481893264932859335714620410412562270983792483632020544406785896477238680293191864303062355119688978213540883281505562634843182726601370863978873892830498255092414001218684919486995723479206705809237915374170203965323464619713169446283323041490425696779319610459568180578676373263678638409808519039824881563865178382096012848696762556896343914244703962118207143091539668499118847830880536313992209623398198477800469646748593453500326930949632852679792243375091926720547362584859302733499415220425922818746519923750466902180163972282238964468909606378503568876778631186869472348439578449924314740327558008485657661174866959622638528142962707582999864038838961312945154136563289790036539940628074235307561163936890476786054085854099534361770318509675325033329302392418244674407126325694460434720968787563580711124994313962869872987089188625233197154740609016776014510852077698724148583540062763339689500106103786978435967765383713321335507288505056535133043755777813029091878035447985452085825434342289176358674773009530690085837586824726879633783068061831321578310290602022153883667108075138698259622833359977642443969071941781359113790394311911115388336051393737641841939204287634061833686714765743868619741980799722215854252224209992138011026345202982696616565638457282895225160459280280856076781865709308491298952256856320531373158241968863361768418311025306488710839622288190198183919432223395759020975027178323628188604664378300937441938313765778953528769201124126796587167998282184678987678585942817679506852540521450024477216712697628794547690600622322260837566019368944034620141096646261144823160768837736647169398167776918291806440739616832444542521594212452139419362530438131429616912808470947405147226506876451064699759518583216461424093231080107239682325198799500065756602653877244011043424818707529409837054818539913594328312004834902703389407077106815095573681030900687429882214447161358052061696481688862651919305148899290031929975598335331207600018388925181088066513606129348009438518334635428729330014285785780919400086302067232419266657314070625152237844064451681956773257245865234625009613397723206493014792143543341071869631904141019111885967189691719552163353375410515130791286014279878887379323633414333805412623235480597751859986691471977671932462115568761303193811651439349162849800897565666278398669395422633840128336520327057348586839063849467665641590905114079126528133202980687465135668455282967483190099080590616649950975204835459645518725526217987361265645167317121012989031604420132796007969542230544623310400958815750749819762061939106695436348972819982414530295442829080486839276093039092087161458630515672565457622387623354849527337674774079078924453928020043647880624376104272881203967458056879712712546624305456383600164445283408100068327579572125182423658672119584748087914265730966753435124842321217591694556021601712627871742474045398780075061753302584305157910861674248957810786553394395582427401029524023429714377758093100880822687467404584103116748326291588056091453051003800430220788851175794212851952675534262498283790980089991466640583023762809912410135924842863498665732769816976662723241563360652844617965575805128273561012400924981411331994116190746375710751742893035016283199083985921469890797986417614730640267687676489475694699492342958791550615585454504317743377285200722109338359131206735572774194310275797363666096060690242839340327712843849572214573940905245621846877165672374837247888181740583475109398519530823216314083963511668613176153767312629410653669146515309670462668420148077347998077720853399134524736444271446971688751158283564343694897795971287549629685882431586872422140193862542693793585860338719702837084597710758817088459143793096633403480698660395631311167563630481830094764586298866375735405016636071021390449897430671594579102872906844120407524703888580678071270572396173525953394657397958298973959809330581641446114637796061924958308367874682157064909960533049173737224657675194380331933449764623930519253199079225683675899344253670778056014953790143868216847227392017636497324848874171011832001317645527610678518626302098263345248788882533509836689393772844215419828536777886199574842487392880178848504000028708766857958570564506194606960060393128036861895619864177888469759783044138523639991658630492452956995947457995485491551383530125509355085012493427516079892224339031405445982853096786289089675522452629364910933643843058357033405726976649333644090917060732115243053258551348169240522675656168970035708256338808866050092149024041242927942959906905468093708487500141912576646683747954086158400968725853158486043862741311209206169376304694099876104648567081136420693805822158363947762304280049236432307008015414757321689670089442529229582541319113612777974467090294974043970168339307916695561786483861400347199942139311305065849022079800427287396516713228975701610083395823253708838156153143714094913371586981728139652071149092918132400536493614618856157171350995878625738055983413539831562702908805011753660386381439800953213476705907615713384649841373050156516472275021449790990966827473916898660524259628069374504342075967024351983411022191146629898984432366666801664345903797345064694473241058731869357177655296089262360902574612315856014767753373477969998395018606933241404325369507889253428166303916740295431319007660701004237210854057697518992114002175697338762898189950044325652322192872687899608520263671630196243866947428227890851743018934457970747291239420574741911141029923812795553805788177943240728186757414821773872581774738665878324468850966141776884780948340825181710526001102344070500162039174717583726474958331864659999016341894523532190881950724678271814754517997814890984407441510547055746730597101184631913118304086953271511108636077838669005206617825705145911189670796990397421751629693362202943357086390664076711715063141975145961445658384423606312174771145489682207598179074839272170576364454895363305820536768134531536078292373025741579326013635492882717078774086638767573278774073196895892544899869346240488269673055490625821437087945629029943852162084032852847846484915748247805553008170699542010731087398873663702659368789525747698657709981069248382656588540186882618057929140727292111552022255028311295522371173635266292542941414635719180971559218152827650483908329265678410467023975580853884554603284669542560440474769329294347149119828834121423113557644846687005863923221467799838914208832255080912818480089800054440640049215356134842523358222708194691116092908988080566375781672644369682718126738766114990829457075097959718844026417497987370971381566015589543523002633496163698731635084320452337011216137337196888797359671238781740866937466108745633181983166834659884792068913366498020996581839852011958230384138837274222790755467556014251604692176828169659094731746061074236745475690710872842349902295451981523446720735467959304749330896878680441132313460823704844976399653804382763472924369070923332892922669816596200036462067538122238422151376717872354802265974434708759228905924646921614963376662425319233756949513860369561361331985007275133363024646624518324662395991289896035491999426041749198729265824162793357199551641155153490383373947098793828826097552192009191023364451339705277082815061046096746505936031718672246889478527588528174501201614239335301774142262963777506315382441740720284394229536207204317119624527734757070882256093406062924936135765945376448027848819870137900673125917479278268180555250017195990274809296223535347172320749934710643072310102098895689413635854306126952030783416418519434012252043959285127991205623700369299702418437229528310059548852632074168906903962369399691902844371706980745951522862624323754804224502617728146940643312817110316626649529102585619986339845618875808522249753080267368046538075430849608588731755355826855520243384872932639991667344915772966071064556476970580220857199011313422415646168860066635425445028237758689079316143221982329179129144920536058475308764381587997884304614053210695858136016486457122030266757620389500962697224738215225176569041020048225523125470965628262718272892156777366686398381655453106185674254097939016118104601449623107463099724016893952776348984674720899532168441620529174584453059486663162976775983126077182143152155719897135036009950647534859820426833586939119865261819709518301029977569727917920866116984479023842699949061040092435971591929392875531254865215322441006525379812012034741563753975132187943190923645467302545067629282793639617241001390006586746545136452690171127132605211992273539528667986799572128933115892104086744518877051135029445646067841140858946913699249542577329280302195833680599332127164249170919011773352842129018008132098899024272706187154864015770285488594326644566522946188882421373029717770303999581381418338142575016079247327053445402347975539317617084618940318315425171062827235373132316715675271977061593214784640987911181788849993624535924923290102481182569733649369375435861135529757266854336997172824838511574575723640414744547934704758487558643969233876198340326965167569026588920333221443601380921434416820072400422750190582762663210990497819131899878436475618629199984472592952612535058277110429996919596510295921557347235656562568777380974180638023747448060360491468438303046584208162420485505606404354027457769625213127890573820994845531626454262936516628303247653187667719993643335868125185135035066990852395940761657034210771430012609660683904876785496876050981629779487311271537972841881722078736729080267645998509979684849398683449616328688045258587982038792324592362151447085922120102579711463189711781739207410300422419643704485679758227414632573447839119298448330957273489910912832388558410127478216399858024000979948345546615381693099591487300212716056536358096596524300644510079654516586994756627090977902166435136834921066923874876012664054509759199765335206132337139669548785418658652724798176585635787245870291471340570219292868461939042189269108610187756877832535920594502757956664189478165071714192514241940237479915852135810328408373662055975439386757300033487032978215407491279635736053026791299556271190561989422756917762976474384098250119538029887217830512079446606515978055705390325382856113569843613924662616199551334390697675266571841445941126804443951303028189677742595192386305104646307136465675881237251214310616974983015750493622628376690427633253561441401705085100620344396351936668052827169648668545480937022525034176583769649057239547242710251811494100523864243705759339875232452439068258773575210642920400513124928072332522642589225769014211583414004021696703229685240962145080477303094046386927358359095051884853072860886217049973447258847375770082897816644988155313651416172262217589753486243532212590829577350050188691631664268841493752631403949072755459799063102793814569379149648051455906915128907994009920143987811150392476507595129499047647737826767982315064446039953990010950234629446483373008102499494194602442991220899629990888260520851289042560944577560692076847963284209380813432507212470480166665116340241882908939133415799010227540466473215180303067037649394200137941917944280796720037260991433684982540104113219503126868586065137046728015913393836137449333997543661657388985741367749348741001280784559456635633054077080082218836741335859264663702154506812496706159862503443181973822087647832733538983341570164805445388952640502671346621844946084109385813353419304606475443101384815596666047828692224419008149347634602493781131620710607645840822499519573881582856195909112558694709382344694709720491605132620314172000653849008137611717472361561557548447198967852423141972342819508422621682038606371519811421259763500274545645835172043620710692689318006765875432609836154752726268466719286689625315179185126480063826643509682427076425336822371682436753777306264397252642307054889412344587009546603369796920229603682605310391848655664610894232310673408812419276058900928106903465118229308099820916581793737982029017974650488992024443881437864039168374334934678487331467373254395549000476005014984797390545474717417277690468414607030227386363057146907747002689525526407216856071782071284009767272721121009828611497640698267758626193348441495070609758173859305956241928467337992545051324968823469321260756206398473306620284015907922372636941768709028645986948979923857444002034428648748765435259624049246109856514659029703689757400497099257583688898048926935342837431347467542882541525003791544404745646459487328538878244003089487522020410453319164551791536850534819380717230269830722549510009427042277015249446887175731106475039274456508277806559821136463330213370184278980539157087020303778867890987494660289607320251361335126909337900286953474689723654897359391900484110625824837061809832019278898505791222476016157752087564683396496765428243721469249055982600157371205127995341002908414868888748612892258114637425537500397539707544532468300274572450333885358234437170947011882378409282232714169539897756762361052716689910035355707190525799473848420400469332685530397274202017561557081523795130742891758325772019524085550523713848648066644237207163131434587954117453377879183809898510183890872272763077348114274952576660142748809467105160413657599175020912836175874988459349674709681273884672561120455511067546712838651687748444318251532753068907072671906437735743802140375081633836581341535324005688274378554649293055684935824984800613105955625353509263793199611879951956738546361697554383912640853153431445773423907181163205729986460228333334855774734878730464886754663001410430260251568541252832490830592111408194791256985257231236673228794788905296289194444665696956423844954293832091068425399412694719565553797630798339193658913194604725981482315205666021411888782918390840010104081439739855049340149582957277875466730704099296721219949270050961989795518072063080771760850344796020880770786712252984095154508871951892438562664123708286270791946072226294199118852345530313619082298784698308285618307435235472812600775108744075486010677556326136593708102427741032002207156245332966241562498928504970537764926851888358408565951117949474384171887531152107934858760707144469561420745381075472381574701540272112302455757454177034787018246643175153014828789189064370382877295866527208113556877710967802778097792186621122026180102348336709358463980218369258361418377698971393313447012553660999888445671078735757537438985414599789611303958738900616506099323054265208948779244948103186448161953145819965715143745298688154365490731168673012279536420491274811718363573344133290679812960533353419754520498499150377151522129052038052096916557116506918921801212793024680151876719405174045764084809117208418633737577686367484967982969689201725453023942609440012162967972547064158429897715606265602582637623016459998183234287227152769480531632864916688535349330063414974368172384507096103414250373800692945863332384818667814515638348777699693820177791360588106411275708274595946276417610650276703315094894601705591126620643392286912601252781976850337981886806821602693389439096996883406265085627742957629746742022522449585685601920299499133925009693178444535953967050355325391916018071235763204379241037400516664841742983156477000155275168950863171552892372339063353777668323648529577068647659265670694438406745258940694242213689064967949800772031715499604789628706901196174194395097025005291865672424269102504483862008691485353653182639408588312368881749994046838374642653872663107779653779431631425148001601616249813125430092129249758358947750271683756626593792894879755809687343418789114888444124126683621721246253157564219212802670553049955182251445565976184268287008306171459764758824352042694171791048336278145080655136760534925761642193884611883934492418685962982685870664084072553392716000502919630959734938482946348589501829000187690635628188218896012201512815061837247380664232004940457492568357287391004047792357716858556819070035473295225298050471965822522353989402200294832301962724870454297912666940893719646499835674159272532782977188298179394047898045848334730481439579221916489788703352656578860263941876151284783028678184262030680616769395096399960243631048747288534526039185155702485986110109995219000914430866057536797877234058551005549989575718824793161756717563307814406727600979097796901698176446523262072815350337347376201130960265968916657286827697383203111325962983238975335923647622572938790387704299032412261990033819085328938801689622327019461948147620196522727081275455205575982362517446702147085709466826965562916704831420985059876546591638988993998752469883978731492262561047412468326459527058610599679995725845845776450263081272593144711594740853473502058871550160027058767634409527553801050325249666325733492182161079016530097160129959784608764495633245614070878049793732614954710428979835030517407741244581932262498701964587377267395886417181877037041130086832191200821039007360881942092239391365526131154835463975517762885252042706074576871298855495275635615709394282124065769409765707101515625766288564294420333949535205306906840991576093292335669170076108612847101653346995411486013867994579941802079911619416840479850361826716030892021999141649757424593804846190946019432708555324090905145072899278017973919179745420363711851405388264190371882746307163962207263548262562449706218778964040872534418270648160204028096436484485095377598892082521535033863298455449811694713820417119297533467543921674152989123176642793360308596852075513857775132464159951481096276284609706605301412887203498635582957232664435657226460752031710554174404453013513373964465950911775372190116772125712362722152624302446953875004841076632080354635746395514114922159638301496764923324734348973989056317717514398875916053975293908557191800467095689070568450273780137088473567098537183344664955968285080876525339635835616299322532948972149062495995657330401744903521566980727135446407879362693448701720595954750036926143864422186676573773078259469154551286310600164541497172893621816083990874783054332875488999078628434358236545083866330084743496158824191423087802873008190716531537588067739366620806710639064509271305126959802450334181616893261078974395737168108484147334630573045211327082582169404046323158410265113779036987407121769670578936236190271349715660228299229890934966890708511555535350746546046858772100197589708188824020854905807831888332276372874393823870102028549676441220477065165875998951972126882513120698732389612844050555745667926585430327570286615656385426481523765381480219293738166480125045805682352946331126823670886144629939759846568082400317356642018228897145650657077883424105800607399688799922376417858956100538469678050219306637856968537942040642795717487969949546353253846759328560466862209172616612807193723136589018558141980808148727362090452110625639545455107334767807505726978827757290206998718931006534929958659375241818437151600444526021306345110328518637250353338629287692963389550607793301908409113850080111614383329688848608718941960077737381494398241446349291167280461623818066459203714873998311967886666967559442971744409523789986863701472824522437820263631868930581646506327801184099748813374770304912818197640188234853570670756662776374441230995261535366756006953850835364762856183028863818331530966292414166724417979313661455459666207880358654302368215829710478049294599940798091917600703087256043082380231677394952527197214055541649426905123443547990624708825571352738028614157627571250712672212083789574069034099489526514780370840819852293571209985051702821733197055184436072294998762328549876703269691848914907358524097276316582970529205132129190901046233231213954724697167598417926188474819093934905880291111567694869191072792327458741903899769557878204462511197577030522394272285478037400188295093404364231708481198120703777916671046980245239854267302023677163408365235856535228222874368844046560810072798579584525055054327972850513792465189601240483164068338135707631506859813195453153495899610770635051240122570015703991048394586648855023900302865714601159781226623036127421911821382097962454637728215182996622384674399192073762813945823712788410994989754232669647041961005653610712493322603613609107869503182258801204878795468541874379075849259566727767405343230168710717164742679794825841154462319820627960899627933905357090581817687537432770226592206975525455572673558131349001492813806712782278027453741252036703989871198970170103500156518993433970279319137756406219356428654446426350997730606690217315582718177524507993623741367138352529232174553996060354753548655753681571022180469965929869636716779706447799084909866136494245037817300744093104653009633146820872684189959543508328165980715132058619798439980231201453785805480915640683117257508640078321342848061230152489419089566834948653587703636152703626621611129980190130363767074617409698745910560364159603856704805508335750846856631366927019369819818621813708830440283339976439959290697194126074080019416303620586135178726213449028358791621227799751327046510785361398740833713020713193830718397309208693251429797560781523523446827956154832383097070141763452828491825468674048039713397533600126105409545895695153484933361457984234302870430956708940553162883741617016121556171817333954409657319687896728628302158015624088829197893778234004972819031407640736826105791095466321894149041529044665032660662011353468122401745459342070791013580556420716388123725300648435557740570029937897675539412679543416281110802989077972865961323489155564931936433759418551767950112159038464852278758780144442122660415352246388729637392945707814790258385072287998990874670158029164717836975806226501720052817985417990965593499602833768523209967683987070589221837157742231941226004995055124229469598266347863567422800510695462852641995784238363135694721865209892748339777600197328823988258661284807416412776980346573031943200448565014991149115479382477803238199398622062483598223907519252464302696516660766632158785366988815190449518749889313147558082359892657393349018055916316754427831473679801801808344761643285720084142847139043691923739547133392121996222100950839586894487217642634874181489331830530993482340199632536475120745937093073034997629976637971571635710288061838823291903947544239404031073182105594943901295370399551936255095822294518992773523602152733424250726215226212630951037476188821537142113334016054188793675098340283808476103555239027152225351437411201746196543948021651531829990287168854969671428009948654919858762713145317392237222073362354835529953967611294348500246463610061643893413994985695285412518241242570192522952965873005026741501739293273066881543717307292633666628444624260239302489928282421317566259474366581717030116278539284888077585188896128195268058281773670507932114398449984506263634100065864034500704840049032545580635166138911855704350560808437711578769305749600094920145752386869018551123288484556043242269143929469035542666347407417779733443880081798226652151623377161288661421789797104434673345854769349262567881012238282299126739080996675767232378820121588164822787723529555052454932480730900616377984457634083315719582889523702796695030299225508480938790331948487020978488465204210967999523979413959726599989759338382678181415039139828742473672952069779338177327037777687490092491103815902532488903132259322986950911582738810315849076419747574746982704563816913910674542226968358235675565289485163285724474275099086057765538811885030566129115146329772568425219394756117982690539784909824116503188817564739544167994594137578998626280697877723258706830316286553080865822556725437133869986781336563251815383530328926723583722573644006045406656610374766880845006705778639619148659339089103213645936745891834741922924920330279192824963409147046346627630500652323939749833858308331363131622756383746093044612175177252158170680411520172227433625144817233626786080826655600594522331844362351842426651465024886432611609026479700850204756374328624674092150543718626843466947134745956329995178167491029417910949642868009838863400391964441311828990493371824331564977127821837218870663190756642241421646735225184395537350755025769387251611365509312107434095496358470277787455107143545211457042218816044048678879129544635643224284720873464126268369105045122412044586028592403923078565773945664607231650145869138880260779446470753583539212632031881845066910191104316040467971322734911923159509187447800216329386772856331877759142165212664003527010029860917492839448994067893029770005045904462861055117046485598345653289790729984078879895807850095558643944851256448172905438087821478294492848298124878511234770059063512227184431377156531595589965072747555845480849712309439601065737568094842089152719279605281749597221702800348856521555967189532391230906426639486667087291497598504238867951753745147814067268058301755530924906645990642792820741609678594624871764224064161071510281901200939619637435097934580994578655801857839828498172140445276120719061529153503714366096017039230761469238255131878595775230449614665476674628283216087935421282120368692417699307090055423097469873220581456275172063289944848535856093582919338481991028581796075119694128086669626641264992864764685619359249967666877587340419015079338078822663910627550258463460660158183341439582463182209592087016357388495503547937829134257076164728343839089011576540977103571216524611421034672813890093251868863383194527299405486112369743513842220910266007173145332882809819131753713644198366175162451623150747360570288058292618997566464596129390656290536056663760545759262878174996222871682797898109058065071494905157506039193195942421383847931113171661551027714817777896107151372367177855333597362360218688021372875632328747618956387235235949916988077233030418589597063052002899483000577048706691376821382455441546194154755662377601525535473109559941203905239417034556585965415260849441538141736045413535350990435265921712643317261775419742030319486275499573317632980480545816516512485391449416503830414226243402467360666030537838059410915723756269835498295413876904097693526916801402925252362517731728313373836900993679404979195867406563253662755247147566285986602871085156133959216028569415251935524851903789857382271212095360197362509071373632237271519417565378471574442688713569613913718138305938278493878785243558057938227753892846492358442591874374239175970364998863623274517741284437168637411290238505966188134443373595888249048373609838708041956339435350865795272594116522830680069347044925623147886570116171581536197179430665505456325811161734439813535572114639271915145253578351545853092838239519239732505625600017431475133947902402775093331851914864115924077404929596106391479237931760851547620877140293942816554598136611955763368984151899187994622684129812147377612327014220600161261880735218764441062205928004197427230480130041255343490712752870767795874098791098695925171946041925935648069496002640023460190796801514639504277429848261388712477733628011935861160644047511090328770604874982813697315317953669835439680754600317315130786365724143565029928673412886219206880426622643175711762582130995955083996128904393688547100541512118856629986391485123312725472916633066385060861472935144829973595280669074273277796568671798275096797434295863499633247815898847281584445500445659546710808071525206388202152086600282289968189201937991759650522836518689966556837274640190137912194976661514018689348134816736038572710583486091615600999177090164030332482581614517159267605364275929496194699376049162291351832404860948598615871637079817573853464781610334792981851999988737170436043844653145711441813532600085019113358508157952060852366341829413138212885812358419817316126614580006420516740377973525144733443441248853081464025718924296990142399766005059701116538589871496714183257470392705496120372439980533868503532255302531507401904223247274193363936855931076514352080936214534050564163481514260102135876539420744739619593506466810581472591019768451534161645639263047740671266933575300977432723656556623260992449324083190514301486721837150947520252649417703724120960532603149401971034407490990152052678507220238072939502006252320203698261373363715982820636768623348136999475314998942635265415267902178681626127395634444739428857241817759023090849027690055555973047803361136646043517149158487641651540862582112644257912409743730283439182573638372024282230561571544003601327094700893516561363614271369928186079777715116923629530584209747130000056990043775829987359776135467513327849637042518732358021335700051591197027006363132565894496382014535603912591027684477462099733215894971867200243074360271973848144082292224780333187182651735580605797820693327637027405647757247404970760909799172384276347097512658330267845579858270683203750853681345917884859522162541868659526196073459356928606102965898788709289959719728085151682768078851169563568419687290451563823689863471501813158422675210437760309427426335642454112641454745308074973033562026900375219229193597977279199913418814792248956142060997934950914658764260456951986695530653645732595428603795069820123581787044642189409785854982796887028828267657134947674350536520482280143757633842595029900669327549550215151112496609762784306558850868102982569822297390799181423331106356668237367951365459965687156989887284435273922429383758429075298937693596740888372456818292854717269825077915849541823307989587276902593426297972448099602280887326520565283955593918515191204813409949388692022643259632259996798184411864304815786378510525150390687717424387932633235709885969604943801837061505068220706653624694824383357106398886306513049932955543873481350049627160954593329509853936550096519695873475903413697194595015588354575959073431618421210298136199911948509791167937858566395123914352495986481657398105883932649684158569692616132455007390611790504540640929112962770996809723684188216179127079064157225424229801601032218777879638108566165166283294968233390351086836155832926288612129810009939750022801061199463283756513331313076875604411278917205300112313897442096143155124169767596949873985904621416511246828326198224638716047484266964786227531508997185535095171605475540579171375776828115676665901806375889030661546166010534967117012124225253919599783288827196818582063258871754333545078810482272156291402745491379249757686131444744412472678616927595769780303492403482728976932572596059981350582047536605910066517852883635215230406902937464087534474103453703603585283348133397082305305486037210653600010191074057102413840783372194617119416485644981502423440850543846018983170965620054504277453757744956787814761354009687945322737423751737629311231266297978800485324264457537947566390135032925845929028183127217928007331756308991513852760108656961783629412143107362498851578853785472610253354478554547633648865099966961356446875621609170850821733942293723621252371821352950863404582867548415768474432937740594660491452380389638674530442235392708922609405133556477878749437998287292161421107431104456276830306953862696132261827300832826497085906294845284763880490384733078059874348524490298455176711886546928475555309158412499805394892457549397725340085036292973283263752219491178507654620074940837528657457764230379198872088856131813154110457162384809045623615590449420722710046434777208498987505133918594788065145117923399871226509670739458598830617477331516329217735109132222725885312597721717820030073160463212883824567536512484923790925316787843042450583735886387037783128886737808630481261735716666048256006450086643790794144355754163745411935013806904048961456186630541856096485407427084922511868597869330548660642427127688402711443553512616118379258072310143803196120905259217892033472173287402910745458404031743094611201826300509927986519364466801966469359466141334618594461423969655739344090651092009145278776609690388093293417645261353934515611528091072696682727592889453904786661086662778938338605395178916136801306841594130008776045823664537991208425801042983311714538093170340841675902072186745354911028368706868376830806508337579422934209840106639236116313087784695895236831119714822583464960130924375086722308763355497012793267038967141784737416775117920701016948145921562718278349546375826380915898933431683724857499684288506175738633970141540216079441768495158060207123025690589191637010058172620835876018644165737987525050904855378112095013171219591915767498176485792270627537162524175431691130369831987514754937063904055419453684628899582141664125312789580319015580204761580321712004197532959439537655951428701459050141089997264761994634234254203183445986955566718964621530082344385933993441535949371388068014725627341984416720771720887533861533532380850805258311482208708491039858700328760205820396760260620076887523567535607333083082954756998465100526884282170448110425124787786885754395591481602125856940735532021601471405043081366328945771002592006584458011324898764669811234020676957228950479726412108211055587509889275483219083515252835371208851861792166035696727676443599598295935708871045831568183382425365209116432844549701167555401472130614825748814059904307042179966792367607278169671375466552055627398492204266549174704157425946277320139784345835734571595820159003141161285164190071312273994795598977655907082608194279273829574300357828591850347958745982607736214039552402970874220457459679334768167521067449699349003496443484965069021405939420717431739978719035973629591177523781210839490810889092801444439811410395983997456670232741387294562946171853046747242084947628533722938798910870476477126608627439339342525190938590116174518927342549429375443198068302974499223225427208758005417843443886776402302027263845137629049205863064635026531146139112769175902280111953438733203867830295455986414842562804149092517473915817823138146763966545723043542807890080311273287333708819593629372362628179590232182044047929404493373762138781650283858367530910580052801242295359049326533200056294918491493198740667880122080036325035140476763661943738600224255391751736232846002437025789495882064236425636296493139348599392899586065194430448089611426082322280170362482772402901464771969892969670111647709065007006718752866988810843316241017843392925419751245028434364490978343858527072164696454490391436996108301419267759021342032566999385697384667696619458530416442848434691483441469317237704578018620325836933292774979428853784578633015924286435174866156359531719757031066863044468503169402050059856153981610226629585157977857602309688805665230241100334604431694627593205846274694523896842292058143916593502379554685134200011525849213006427685845540834435738172588104818508815804688582773403860491439557102562094557264568247141886413810945881533855673746798508995354633625651651073901071800495117804892811311708978799458164966366274308342494637802623713928472996807035730631870126388797594635488658752737325254911542857550434647532833639879623903306198905561303813046690949892162200530407909343929251658696031564066160111635847710393096930956327475357406392452500373292927227330922764421776500363456000123558896458848970324124362512816027533357862484171462413388091276708468467696585903105728212058725811171155167671945110366751661894334933765024307230936745899552931250871991555431710543016994772695255956586311440464533217579317039672851649681031699236158584047985181941327384359109981062270237874074717037856564452166539196266526931553735487921882832694388148115364187442430311062681576911527731167937002012515141215495286508403314461748428237965257038671025607865700083412979799287621205555576322330423554387353797088717713163649729151130522901305633391226650525246447310370346685616659959546293869342356021303265917948014825726390941127929075276201844961140471382523829900106326862866705660900055480150941736320023819712258879848206098348934167614062829665899796015210753841779952343456261556301229615747088903078700032772132647818585846638900363577111109962814222118695953443802385228486060827504206673349076086894146174790150168993314125973795314392708653082728788943625731066494655140457745968471504139004866249146787340592507094198522804744083217701082966783345729348023046271685536495293511190041186365843733804234609959355927968844473050356758683892822692865443291764805656366305476115993934832477340184676496773180121468211075022330028754974180231504679473662503193508503903258871994471104248045482860909810973914372018689170343533596686439100875214216236598142188766332732046607995019618258991711042082188737126544793169835733722653724077813684057772037655092236972910181642465464043638143948337978860743167339042263930214963257179708485841313819854936176166936094404584587820392596307387690689237422135401967169089854860966077957681322683059229069309260557742006107193337440009283501641900144102677219811333925542671370927707568815446453107015346237593685618701845031517407646657027454995004469169121918539958324768006261557572340250307463811216641367082932820258108658659047862432825771117559816661144594490134575154751104051661230809460604527331986094869891628899239075030876294983962194045802214248996689014538994926652563651518312630554522213360717664704042521288217407746018477054223349973988918154051644810183648262665161876736317277030611044020614250387850321222420697596383558329520961780670149741468697547986213449230660557597783142005187866535459505202671951402518056987339310531490961656366190631549973563402177717838882935298845700724301221671098157249001522871949993918976953339812718350199290080992205383410474914224790290871156930117287330794252637881866018370854029225468603577302583727402707960398346371632212763862727003263726851557146160831427568641299055721794129405655804250508655379713260188462290568417646943359834616751887412065987011211614185187632952528573021874978166455804051008443053107425519065093120940925392754145957777634658645140046404311299070423709298691121947972569541267425422426567632485588424182991892877177931858666550483552246548002544195558382643957813904704408885607041272945124532536773117991470291438564227571636213616599727885231070830608664213342818760061590411409100707805852231138245180276666882619118086856224212564346798805150035706736056398101412938908013182818981178854615924051779276483717402711728032393189668414738172593010360912930932887168041629013850694661254911429250672371624527867560736238509964596058712735311697122895406008747489455935403644267433535991260586400003600857130455504606877589046326057410932940666932475577041526809258598550525779649896431168498445925367347106702933020298626326608187492298992614652033861661373510354893312079846913216892650384639243952110441258467189368583478057102463877202865805963771780094476483036202936778617035475169693214418963832045851417419247984262453660614357139899838384056648110076815644869117371171795214495656912184710032355908900586432460356236273874315210778740196100391346463634569889221526322231914525184074793501411072575107700677133566268056747442972728410489748218734506333589775811490672209796758266390013935694945373197377888906104357155847097121355685637446406049172682975462461290251607735514043249544775850553831177225278069235095500901671610847608536321897765389513329063089816510491164735124985129224970413955309444325633222789641585281201966819556976516765299345408158260450696885094927874811189752231644568450245501266673794789630947885612454117088425712186711457213639388122696636124927365544015004511660160716226476711504516302270207200501520714441653430116430526371956830199745427328832792511525722004771504311734315162768284552916978141548770991777319922239815279656774276063947266226316867884287208386279302126607633110240051538645270658275480293015487792522752747882735295291989980046002357334158930569757883271777249628791919923347050498047244824013889712951333688192501650784514516370179296109354637800040505910289083654541382220860183241215431358230522963159556716561973372723060154620946138258069812318013871631587993605666435318785057225846365468637714130480275931179860818424353069724007345394657449241782599439605037660919742277809335848978207980207298085930324560719692915852008244477559719889481397854313652120415378849981400361259853070167480725325145432237689197725568438038094389903543948015036181221606619992593414366544211154001693676213512443555879106963506179668201709207121249186650635858981813546061426601515855594193202045008224082624387244022844214592200770542589208614344755320334907338725998572195170221446662529794005656016382467651006746648357749299267129382239233274506039646822071551509615727485408481888474095354338181973727336353517418831249567925752038603809457451666087817267373714212912337716053870934883151482625035483326594372942864898334275814075504334665431844341190459703303390876028109793534142235781069164598217424304409093269377963271278836412555388350478165734392449164189615732213948520389133150760433858527088761435695913643692791712555179320553520986953076313559929454867757800765231572509755403561324621828348113219893045112125697728369079147190165461710309226630552313183877562010363452966845565717258393112283835124927466952342480040369669760501553599714469007438706859711602484584430853355814863762575709645297777018383875439941863922201308974816650819774319011132829572328104491744028319964828519629741849869178024252498993800799831210581898138091520677153418638401658648862513134647574310662925112802800773341798404196880346039574888631146724162243747216889546660064560255157374724662706041422699413154853000377286025841063676889178513584417917425219399601958485018458063035504596708074909562793201306191821830640167044187352267549450066170460572570246113199244311728427450910247651567344298054606411943810629424091440576696063072701961201919244393337963570217687911325513784851228156115132291317615360950314398738160728351799973497496495058199163452918633010914120458847048480251263006168520064139714794414188318453731967696412548918912744684666402708839832988032666265625791314514897188422530515314724323687678753021943318384761719773992063306519499178579180391810963448440146171335636847847487479257444805052064820132632731900487074742788278493717851881471790990924265361728237113678944783129024089071025184083219412678929853594323624778856415949969187448516255963941520747983691677095297567234441624297211092100673286226990659422457610162533548529868010779349150403609055761105477349618006253319648119200001797182228878742206689915694506642225674793239220480612728726662115091825477606597635813932287734748770237038086869328630297924688092886693456650658805650343638363099395198561464927160359260855343894386951202543738519708375591399828735056984254922543602595401927166364267966899846930140059559995344677950396703840359904112205227813354311687873570161606902887624603701330284338409186474885203582578482511418553974285794959384005972004386898795957687705964634649634060461991914181134455830138873665613883379717729753140307298678416495906391481470516960315477230505870767677465386334438952738996303306316968053894191337745584924751189736195249010792719946262333510187178411456891333121491772277688468539112913256157566525803125375369469452698792764940851111087360606789154701634588821105522805978683968228984642112749548453992871466081271155753581212563267178994412424099291380668153813426474216106752631711145885412870554975061647373675763630805191187299568936759392512849632192286088229338572780352001995409050060384226787461406773290592414215958285059839477446117539841442432583207462251595400778851603512084901698024671014035514305511543324203075440494467971865711424354859073070764199248598008444380042725093789304227321549336115582363493063245593793798433164459532404386446355399171491528573230396580173680427495905925698753406756297479744486114657363640146471473690376920303514773849690798099590060002648391680673625293254633713413131109781156703382150173409850084966208656023202414313919953475402681274904342085657128613072552447723437547447820122580568317061309586743915354400250917841714425531376090666798884268107747318503020673570591355500210174773954841622221127213565532606772807268073249422055804604088471061991962849936302309044407335769363300767551288439716181137188184984830558225959284324670153834341326786389228240189010991458384994692146192942830886422650846288459272341134478326512039758215073638662038796969147732643516164354305027747075025466235891596960191392379812059996058947185409924517765083879672489429564591606366491725358318774789427378421667780436582298686939579730892850150895351857492159792927983611382490532892953157570034237274910229621678233798986701583181787968357953541355198022785203980417268927127092064393706420006945558971869848003552922798948725339023550915425052299782193035622246725057090253354736493264112376774419755141044733318196020379259255276005732832369945248953473227506670412662127815861949962818137054278441724103239342117380970314113755232978727627703917390290135159344521328170512151634323143961660907186857829861386983884028697726791169668983944919062103104920357209996847183200853790575785077414318211512397882137596590334168871016721773728419272398127734340768688314107329558881321818895628942550601200412713021610980010302557824181646146232646098339682844458107389184609984583167770727218518533714170626014956304003590454649593899207561756570213778497854152901719101348067855850565836036212804567526192775178362658536935386586064095151631709797155665826427338238210127864500998941047431394404616657056394941089084236639464461101258274206779324168018843858356719819933483328488985615159087661885001081618500661189635827813332899874093111979267410385331475368322769309281548753706698756925565810229707570639893111178160051228152406056357012695947428841322949072437379845882896332995092925785616994186236684113392346276848947601498934256316396483145609987393426086964483092453754092600319244890279511889630786010378492678818720375180103687024124021942324950410341249116052431964344275847391113486429827232199265290331971557993546258778166354913090588900906941972675808634330025259942519114679424730534959749572951647285463041086137135810244041977891917946177487862914098234024331847234266621072119985856890030033408279496197334944949817876201598905227674894128092475823020904662153270039272878659549693388744056132381152946141005624681478630780280296582072806044565618826604287694996184192727303952850508813671151049142789088611513229564945558489025518978197486976060637186242450580395022751246328778646821794612626910390230018204661237341266546492650319298921587761782756206919916599041457946306441103900218949387239694041898445093992522291549881467411013832474867005231621984507390354086105352599854430270555160137135419979575010923442129389316422096053622057895150738579253418687282603510027390964047465405510457483615842023234288327667561135705191480784545573627721615828945455222873006932339653222768323639346557469728736301942108639729933695701159843768338219237658781953042447104073065493096150262931003653494451302655243507209483556108472258366984607886730643071151773128926955578213309786287588857340913944993035719369035099250254481418143912601637406228847093142358980927785388262596613255735699521580222980820489767259545414047877198668392910362987003205822493395156725074285900587324778120919904692375422001427296836502602824347643611289784552183572517958790168246951798236075057774299707763141051553981301764707394140073129095651168383768925436177778624265380808375132108328432665482529102714560378208470952724209699703196123526771208478861921832668850036329345857974164281613167143146793016401731674955161847079255033096276600675248725021048416776950117346721775685754880683992972497602718909030831062083618203873191835233393096422080074416096246860687896537571638415686853729654269473531878622642574683780852949542289012069551939975650331934314177210765636018131317608466872229904807998906352564035327647045105121470623527271708328562936960851096755810783947027646022083932143734482967199679598246217147306826606089622664806026008033918285072928200598657586466437242514809325052001455937615314395780627278017610516981230043223989127043479960262448654931882682528920036872410308722590169984106321263259382616243262092598926878187539810610352565300567962160359051673106150481420000748785375302958435662928394053689791637499736654929188578986511044958270265918651647309209919670318192618372467342031937829446010863953483818911453971410135175365489985482947436112362637397134472437551769349960861736757376744592579758079522693362506353284082297857185031750962978547338460701436546754845720726996309970819372461840912750997756520097040602856044237226444990165472830697443477282645193316654739312655609361037470738105803824123964236923382607633638500701680069707627956245771773319756795365715479476673946245678067000151860871820045703244935361852205714957246934482356227260868943063018172394157826893573784184774994394697340961781055326844581509222432465748726835312075424921850235483822942449541001197097338249808288852588222534885027476356842998808310976127302393814665773264256568666424636650309590585565795535539492117215862012786248450199267615020786963956117304686837006046767198759125289577400795514367052154877296355177687555127234120052331507880329409463333746473613105858152239696802500951739089464733476868612184815620051107600208067792903373147802301082591439808744409731192062705829549859279383529945922634848789702970007628202666098289299635432490254980334494978047276835464037853946964812787920937019108450436456839829649075789227254434337226370254552963376616164880550076805057694075236384364459224805799266432028425808018076200694266109817940839418813206377399463731364326079109772305774512334746319535728428657877573260783140998030585535111221389503443867131936955786139477243416224149689664946002047972555126574169526390677410050729890929089979958774797824306206620768984818416429653183638627434408117183290309205609141629312126028011763969617146289022690881063484496869675383225593067294076844684154283706547142188924918626129083973097050931722211703066637652319670884490932789377121835239868401520160065524952344076376869818293025935559869672566447604679379655272496796530809770756955234519288859505717630705990677511641328644143601571302760454734256230178812994671098855865039213410640083825144260643632915368964343268071636957965386997876141725196764967116783300713864913614228355565219176357730147631730376169734172999475244208715519736637153178409199645118954804244294007329501374409217565627848561763251292972325964926778111601737423043511065520730780244833920252588662781194327645130976591948932125489764543851311239051529657739698602906424690084945111053537337661784758978802839482374404048749172494452328393152106840878970106901581744032754554900759829819286909510256943033350360899048078583969126435913370931036460357956829755958668257439610943601734691730416392015890078341271955408363992695735012795460106971349134292788949206624341834317133741722841487398731787604506880632903633389575574431158721311497680245393201436285527700131485761516152411710574383305423079054170118276169150467484832535023593322012744857282078313627959558360451854212190106174929281758967485225451185903503999836677642372350113741177415509320860708662327608452500295051640176396416399414436256694394916683244791803136450808587220555844620030973178393395044351270037849442956015203150569087157796425485944585009101234079294111952314362280468318791239998862444604875654605047998435627225899928899832173858721379048458367726020095459131326543956573661220438141336721164653046755954942081213579906798100533046481529575003735688786605912907997766603417139677667536980672028243925066060660231280089519889722097472881862271594926911390197873406336456544736854785952479734244304472200851357439367851436173083443069953604267167747709546677070658073217826621443459290712530051949595893686158193575856368295370592388676427386911727726206148794658068832635162590019574404960895080567609617767877334014854901009702540717756602639965739826888508733911583566980718282020518463981259707698141351736830777383781004662457580177309678767712316450491601948134503795459394660153936247312272575032625504838534199051110302158637151267268721587271058103209258402749280214112940415579438493804134706905384064408532178299006150342610858029893347674122822152809227913190607770342999304702065873940182062341724473191179214700142461951651589740955571935288053531573186753580120237976351469812643369180090158145998286579470058420152193732007657621910693589108349259721487375717166953349700141643445926539657579712968956571180053024441011998239638229975922376311641380381811692762755424256071715560760812412554702744253769505804052854366091582970497023951201852462046706233120372448676872173316667428625989515505655854767715536470860196410574975236576930860356130778473440571478644875954716969022929866277785450411716644331221471189051634920589971601065000305775227549724820093915600225543506157588716135741175509834307077577483945002189489622270990782350699339761996455468319047486867685844755840883606734966241218902910619438001582089363685229095273946743799171884667010978691905050475005290540818040039623171198143963436957805729671443327511555659271795206797897161282697688872976571052179688085672976587525126535107541716854630363130549392989663255345817907421588218506974864766647833133704862344412614115002315625405085127932353100335062981813149103220236683549085962971317641909987004129429175073989220377799229813818362150718423146783091985006917266094670466211427200476138835464083464430110221094652471260085813291354206131667640509274224701202005578100720558189292678403631712833663250948522202531918082596661978213159742403595635050861593650008732471117069011925908811107263538336115368977736134656729875854126465908026205491431024074220935802234009426565690059875061148148228929695938897268603888879380588970060969134939234675298386693318252157692217266882444530075671351463622628574187199974864460682541876156229948367438587334613674260626150421903545329771115532355053016878255794205676915398435497367805506056889634109252700412987308856967452690670702092604298790604664315536698590845092031888552784409615539166837093556738547721396523233952593750723573778823557836433001759674444652582787172092072334644814037367745253983482593941865528348627511270632484510933300258637196284149322681186147408325106839639885759013251865099156721463088679242430284255439608417373205398928310494466725883441023170058921402199053268198954770404237177685787186267548507103862635654859413356657201313113614069076897973046358780870606711901923469724444930749168797071371466559594388143968755324506034372878018858078029715214014793116737300010586873050019787952901219178105596270993359863210267330815820648960489890698102113477833892257452895157416739962334454515849083421250652288555012017383095359103196722483459448508709219582957061974961069477034755854056423497071141499375863280683659708587273785558715557232968987646341193893790251496929171873924308024125424807509976996973550717888868829011718803223346538069476524923399188176594338468527999556612149644763595794243472115137407759139293350164768620278049749522793446619035329886178454684889977786198689573923679022708263110983877934805457153282499064380959533566909761124038875693363436877476068463918153598445445135481919352587827282357665267983145254443671200726867416859861955393537402240892806463721602896132050770247113538757777035879600850176616496691569541738690365813852556738440088675767659771322413654903558064477507908243733103201170686382210586476243438457925068425210276409785968595758750943361294432752350889107377980618881256202686255181434119234754485720550622797289525460848010563360447855140618008326601709373397541647053985939131140015508265193354011939956207449410265180551201282796865821589623355513809704156675768358674920325165083680167958576145340303394901701193407191438101853684716117360323370812849533530174966857842420302220377471694570341987291858683102892046426235641280097590063372882713398130934168646629176476145187605202958879307534339736565159111129630300858607542085231239636664065046068364587697874642918234877873142068991379279667765325039567716256723948768832685162256980385360768088337751379979215951237527699611250623323192129608790097507928520882011256239414239825231267259284835279670472050244392010854743844473636968820492207653570276130415969384012609812256762340216121696615323617792390548954395229106871762478143801481740421851240510970487973541166597914497789700755431813257552086420356278072208930274343579273915762134782363540749415231722720053159572370070471962993299432683110443607983774018568620150419828147581126164102071298660437265800021317774112752460443931613172332283565105523460834840228174495984074414470225876221865056731776045280035355700244950193306001029444437667414536209267999178544733894805591900198445569488028286412005928306185332842578319209923949972885480659485641358966045528427354936363509359233232692144312904309220250985789081441557294991583126809611959684832088328453689009595847038954613875770741753730526745929923799987904354922001237265379076529788607906523125998830221738718395636888700789800922803696116660466267556576101291169584923430862606898101374300695717047138176777933238715161390109135840955709321446659235917122533484852989278350087698381276551638470002103815459535640805747280007203948477580277868117030637816422660615027234590934701988376161801521938505643370334143184840276218757597931461841227505096120354696134449700220046001774946429667541453125149382700508308910335280418231235300123688949768886105949114045991638114933208700495586885747455304398851167142651321937596297212580419586572839270900834790646236751723672248746100580831142076351693190935181949611152784177944233033412598816955489004823971561367072138076406275150168670826518072264014598328404133428514562543371000279592389613928800798456669875980285512692769030392441745202993391403677814133148986283410231800110801456466241613139326613026398055175463563611372371605175894937739742830283273054971093122813274896699211526795957735555454867608421659812237015229731885640606197388279708766574665073705807911823289189655524039932014498939095190009475849496076982427262572937453612420072141604605246056009589246591249756521376765202071596324664979234427785147935806410131817210828600956432795580401666945685172961179558172278317265788180656001912214622967675180162954807885607729165903977332833462839412851635415095718406536755848437986931674466672099850576489264123961488335062009946474525831874587530335261467523994964964063335348388843711544964873516428426728215152424975808134654728398179214172599500614069474439236482016585944867683183729163916806942128450601146009520885520074801684078091964449550505900399937126959888674475018303155516937226330729484368839920932991818558555104648095974081660082812272055235758042208482553533409406784154723650618901835926165652981373506148109999463659884079682321316425880646034306668029278966941097180506411130794351202463079662128415464301716031008097625814267357780715801550887108545874401479979761377412618484459455037887128778008156135176339257519728223483073636960997542378788462176519843270213717606857302232626358681595833143553148002182259487207573072039665852311050999045117973244108414759055346170821536019438635964056640338859082993994512539488229026680872327836098957226060211706427851534764044114168357333942554570871983361138546838814595726639489615872615452414745778277323373592163931295117936990028242292194986312743892496287400223442477892551460727032879348144493813301836985511332844273809978231314735189161317477921936400652949734938569262633990683087273248597106071893877818416927703144116133287180814726890623671395284127794360765185716782749451780492957290118433203882782609705570813660123201826986109139916817057884001171736101102061616661034043034706435945110411837028404079054985995673707804196664719594304305558419989728763474914426847137314792712123894071139857522207127400044225816932294698848895559742214381107142601387853774103366731566595138003083811345599158662525609226660012208735184962134433260486203016398707648892368939355729092638118698571124368535791832112742427242492470502182351760707096492310017895377730778140961961387931646312461996535539254419972873666408222891369759102724080786158555406395622396923837878449533906885180439158948086691366904282545480757418481357763645870973613422031656273609110843512641492149462581233548548336211450576965236498860900762396918696245939211420774848286176092035595310799853427575843817596193921785694672095020491595439210766569470326160179713232807220567411703209292221696138225535944826270970663681836815169278902643066574577115437808313238164432321775874854873677975480024336939543510502381888966674171776184646424552059150109904814588412822062592739004066456642396360925953099926192471039449556234225375563085990226977166339037167655696427024919838230386304859416069454247188750105651514996343543111396148567410952371836300527472249272797921509969963121006524867724827134324450118869251743657004524945018782689369229656071585399489635527478324157617163601589069801157329465168373278548733778909899663629305361935159258877656720314772065420502466380139951778619326594328000000920632937843344329587672373057939669708889684968781502105163552358147173770252810369524732834459226390247229355864532715964846792580873186370630064578148430460020903431601743436150354486917913352346440443827150295628284954153510302004955478690282078408829165803680505922013136245045342220892785156415902669085635073308802945659289161439178388646492977998827969093340725073256541891352979513974072795408956513370666628197778314895756167877438589175329708047420196253390072552028931141133457431616103744783800129968109549008924016406593576285923986394806682149440611653502972724970565525089113931796748150810634000097374294833315236885057040621496117743780864489981974172916703499968784448305930350594559804609095270126497890773918717437867350420402818399162831796900182873209443618602185403248327184589823293624191830181197436570451155427695736959884315515851469251995473591159087541199223432310296004828768845139238998986789207062622458928298052992367916333369298623682157419180455109979156153183496489463573312991345773536499975232657201759207353142743400937127917875367764199224040452623955242681110382307171116136015928890796983149061754921651033792755950144920402811374449353586796260792719459839870298972393871997306805474648861200291380278974034183918082263405660612681961835548842744811304177574664084989724488375784125372241440184665608875738514267960477713264591458404180346434184213265339033336147310782083207363188670021881715638115608550537583486135299081168738657251087573998241719268626249564416311394967457838365163859339597327140190385682153639672743817706953223229707320437085638166412868869148028189038007053938516333713430808412739596468291821543066530593054251401592250760891837434773047496249151413824560585054564110035042716383685003930861698543829172133416664633708484999383691692951035583952969968394654361324894901697392170745343361903183094903672881106091208329752991426239918150537627211567829014503117000867029454711732192414542331070462645742573273145832495571298657119068155197692964762855854459189052742180669868542368950133717111522185638561445439694513302130966294339651331322781900105216611483229146549316989062632515402380389995834331582830342584401861252355938906627042219933861385694824630823853682094893599357511877461236470718586847511869725782725388024636677369133432778497990582989443185557558626676922572888225685023241140228021596427599919782737986296612314958490541388305729989786749700721859123771223413000942497644909548143262913054266730882238198384142701101997818698339877206393301915809431187430268718371320875435846116782093981197209238477421042539248574832010827013355369976221847295784294793438244934347182029092778674253751453958427328666376078922826236324172164780910655565671624876255635958084346133075487806733385012038548084989929867421833275192935587688443238942776701832935559432768685363994551787910113998174634625362434065844201159253666566710209500885121891187526311838068546665946873998664336590861969829123048481829276444987544071084730164083126719124621120627283657211678106739271913764791934262945898898027603510595912198529833253369579306415460070653481494961288931829999357446544882148174312683985786369961123517375668084038173793801263164220695948592834805954439364373284652735216881606444815704414592095212046900052097539477752076374557208436416605310746628622335459363582720784536769697310627822704951353371321364630370020362281154593236502671153968769541338739539407845510098211020168594898865101878632785029219422967615145489014353331062887555587942718625597846831479283534835212709402019600206021460309954876409149814862615996618149437363394405440156750290697250270862588135678806786958275511935358936434768245490509841010171520872095621829077834549731770535461361866674115511062299439481921528104913788064546466641005314788444371565374676239478326833877232429802893294755396449660434121437510286360861738123594061884338255276926193773239203212329417401222712967187529418522889046742284210067591318024495403472621395158185121330370378572646972703097403390814297445581079384214034183246305489391575790613361004128576987192672188636647945088708269276112146839860619892576877558376231482892244312060362740624354332831924987759548103558768835037639617551525831840348495739662168301934704693296821656846602322311816492375811275901983339475041701490051058133146303551210750181892304629689517796734107083353841698021829015747767363752378080721178998990832521287909358820539936449350000089944427417811701821465099993335232834178747536599156631276809468059502108818504547521504828907276524694781850769902177139454805626622126093538368184575869129896945123515741236791670757788966670603931914226926986349194043974672584048117623595553580456654683388242391838719900970700612311385689449180466547034625878502428557331941945384724099697266264708770065110174434958798080209335852775755933747392441012111439388618369590992175098752244311194737231787720083606077108278062151394505836744202066925104708822803664689155631607695818868972704288686424877376778789156968216819536230576582609829247473519194862642301015378745026176260508391756096189109222351331023386315495892077502293789157002466130094073297529365644006684926941462692339798105384110245327927230170631411181205677227762494000746808698615953608969071335277578981635860608257300045679741716244285226177284226420344933076052349372482538336777855591181727300190143122248462681858436975772115096062803057529483348409271127247658660108941108417867400262122541046094946227814380959684519828936519026590748721822476256535976177770866173470980351610251434487187375357049012994840777518127565838850068383820899379910759891088318725961733590560332361775094167221960233904006768095713732526964657777200539732857509058562513779114230390537813667039601744698943127904993060388732395439413770289721461301435722510040077211795650600877944442106155975744167208187738878103506522789540447082513613841732854746055219122735287140466008530119361271198036373040927552174575900810487454279840371278864823615968920744553467805135739131699531462967489938764137999034415947710133485893971891094574296668274773023573881340584338540785213168306001175882977285562556180547757208147670436290730933470926512852524121818700286063212893177344524645213948001709321078599111282160923360924931474667966348529577766695595799241611991921657996039844046211407900579407743732601911718916079510859738821450967148958595706894647153720094492683065216529195664770579186750148118797739877903486311515516896686022690749712242769455063972223721540269679175038082256818289593136579121636356763014646401964117558685084949670231287975468621803523527064062295829342428939429376509880858928897714183856232228361102933403387454437471247073037773279304785997576918598553926735306612424017993356162497684418234649108232217865267989744996478006035387987678637901153854415152649368748834002289340080432097923926839189207511197874243980903201661044580341681090251185700357027640751245707219523373775584624978679988806925093309066155179904821739260155798372833891448019191769778716632138527633244233121566486284064853456133638176725832164551921807276837159084044240369698682676222763815023487296988960421265724515424033187946100604316083770707149989254794221791108686305553753047005687073781227614000364411577324624098210132466411418075711541731457662375871358050185185810385956972514520752807897348295381455320178026371562403738654421028258597273959925862472821365396200880444773645612064543998678333049972861041506705516566600260297784987869101793978803689302476416790044449682883809017210345919084008810100525455722359687959351700282472105550965633351775179460642844016644266028535831082396512738683361339904689494445133656957229256379010612918870992876406740172982575301797857237293765488844043547039093848811994444084545385777098631529877682725156938123954866117889692383209298522550356478924475992486337975999160319038448899856058921872262534281683328546641672485592492975890417497503596991504382938631404295269985667778869501917453290236843196854907294228240770249686470800714866117246235960522636255246105292880687080098022079560055804951946246417744782685311273504219862714127928810070875590281315605863463536383062976746912832100944864383675830336623131207053431820439944976529819823278250171250827632047123425132177028289429736166814245265142974295978329049932350013217682691086355671282848234634127717832981381945173947222131265804946110378474876701592535602891627033117430273273800424743964870647012370020434055250321194983342307891318801802869781720541790690300642192629884971912865020835201597980314538184552371448696725452057186006674057985772160549417235242548661438351597372399633844414156626667783159853265080666427771616450064109618856999113609029786831662643612975289988512900780687934968313003703573678215881156066001541463960195162634301460079006007143609372933619389454800907370329501384126052890136094541539639244195302426290437731062780362547961281563741941503294741929958640712051074887705136589333884678315264740125386912577612367657570899308344176344530445777521122390332300473108279680649392406099423614030523491683428598412601102372246539631619631301337323995945566233340333365054636970353334010690372023847219882929704812195888505307999813991192629281751791541152919224429159315896392476366317306320812424160708899431727325435744026895848286103231701940048529772597681484054511982965482587088378537853687258358579003886321954375679717527342613098650879769809716105327951666809476544642471492904191958940877752348043269086895624813673640545504645798657003033114319400538386777523630922053774443580548155313463814982908593106815666794028290153558691305589134758298214754531641788534854229521921122810516294224452729414537074149136964168642960874572370582494225660108863312698968415625636170925232386004744577915905805800625559962279993436510967175624399371264479448927322620087644596834887800997313801890476457768874229603078864994391241886332839236697633425751895493695121935038037129957928206083222911562517774147871533641995142173279455355646827926462030730318481403631318901892685503010509295657182295024175105542395030439729823826623422199194898978078174749573306744382014557205715103800958697462362536664077022187392081003932903846820599834856274475455154883459909329897348392626562195855369717822046074908563473845734674012339367538608569642320080951972440302490408270831529756552664263739595446106993447154596459423508528527668159196619494358465070909448555484987511689740751719476817269339098964539997632008018049128115666714841835688112113712426714829190351242944920396486803380883074644301004716166727493898826321389394223357564259656773624801588287482803651070127569641994876261867841067912314959522161863522492721401413424563284580330972511427954414840198456388694670577823402155352818841489825625472314010794008608772060934862280610917543056595173789633840723058267775505094046210712135294317045853488563562078119004169493576047581877435717854134714113507346598431637451037445983442885048323423076324355138446740044311246910958520868521422667356332279591776643783097306456420541881966700813943760674920610367822586185402393292950934852286322808291574527481126490850862073276137892977227767646917799306605277251034584161190884237983424653319459288931145526465999644120195737228660423001480064276610514680878649203737957898065575903687445979731677600873711777508501848604500052923617921045444211067171900844958707130724119514798151602503301950300492062265165984483121644422723953210774299555634314340311366453055840235451657687873483961262094863159476327584405877873271767268755928645712843974556116012748519920664630488538546412679377107379315275369936680783113757253586900594861148097665483278642397734694834721762586609712764044248741153262986011066221159144006836142461199868598860710036645925980262862864744830474014153833108365470165388719968298280451732416859440922641547599827952582102857819093902085625691984189908117342495309769231963280115579425810820527574364183058475269299444808193286866114801263343003863446278656802033830492306554370828692009054054211166381960020561442534287360691785376221813805791267744402851687940703451051675975349422409266690677827939004589442698072796034445616633728017790895201481075972638737957879504981040913851026660135750084750296664427241412904213336331133243935670040496601969901224659379180143234679090048699182751337865204012653882212454794681063357414708188261625690278726089695943526386475100636331913264757080325511964133728407176449121078946422048114333653593940150443098531713792459682736303779302850277036325385511083092863267101156997694031220963094214105361947817486740652109466657449738825445690102597162867182458510402356926919698067091870005017007008984023012633059096761535061378843002993849649330397275749489606076456670100280059183968172573858720173438011619889498847382298154388240709223418338448611757197610867878234970087814548129217348365767096673269077243148789462316502785640610045756636490742549863432113765776406491011707943445147230717804173942447172287335489427275328920305424443317079602539953446663901378636482907753188320742256504480143137092659661499142893786155573727788504383331370974702606498373938578346644355326762771224359263262363820356609807999807846012598064503589664798752814992352116457646963872394332645026824297539575392479598126983246455879413321103922430352975691956741957313148389879820918560977241270901051218144236080860094111741375788100895899372162197560111344484457349930767905174465331731501544144327378775579116608628082202450737623923277621885587529106434878297512379439143570035335036332425225188168831348772835632698504916445419372290344924587844510979792043703758070773130873779852919013916140349539990235937817523006890913212021208988720944126058792178015341310459939133250269397380614277010538427496488453063337711874172021295478020709234375627498574213985837907332460899657601962895990304509888861390586562455445940343750150506545980035038564764803729673654424101064929511520530551430425228046967386104380677139655498776402100136836387522222308124537788830798306187346957108457234094514564891276887678422909081811240115485137605590407519040743828893547136360164932593268930616354006779683686724831457114808119865414420048196970065995917834547913936697704635543640765964580714347734039746535057037597242147798734339775779611217903686720830386066285119199309862988055384257502345633074522285123810313412645170065462512572349588818329523745301918779165512377433330668138041843963009411692211544720892741860071830198649452662987569312592104298211418748336296273504876100159774531910523520775365381974862144366101905603902392170951406922745014559383310787495125482822145015599568883256253185380031218907785084052451766887425474028532192547979050058547913815091857595613275313353881437732606133960634281637417722091327772892609325789541737170570873124077214276742856772028188953886715412329172491802485266099645802520844821990471692931089804227053353012787538330281344871773510937189472434791296913077167132559882452838162375712762483999556354581342875373230246785113040875132418291336646545021969297575598499156074294148762422351101795597532208141132313400328330997775395600080772942425792460744012603766081280750616955160858611461416873453897642547249876834393895351864431535933446767402705584587449848859999106201480445044607106595551016919299372321659247211274571274260284205683770874290238336692188576197049573053087288759191864922051008408450763515703199154638035270774224190589215114777655598484174168620137799733652561150886211515726683399894671163306978060750639505439998618080152217113056643846471844624767048579523429375945205881282881312685132459638577190191486960516578437824492205173294720745338189611284534673179504355848294683760509339790346675375658431220873176131352631655261978614188062797060110993676033301759592261414692038703599241197606130903330209078155103903137718496266461752207923169028392020089278842963346215941645112284690392788148284926983454875999016132868847536902821031496709146415423883144246428860974278507205186471124379429685973493624474086047257185153080181419124448446192711249391409454589539015401019545502241769247693555846571189472564979389798163565795776476691146086823609729526034123429141066682517246021301432185678192035141993393508377970784028266423032773016053992701643538341863098823707645774387326556575831957050978136886495605783445444618501715614750741656480684804917830372258116014019464473574951547481472694220553883588202225462462544120439161355747613103519478645221874705548577373699768596426565556459526484173583973924769606906340539271410421723271408793432204641279725538380032762072995986889568657438944719247518820367257162364905337749959111329277152508042900893295927663973466566340654039659921795894795355758797106589389135791510423553986604019662768932124468751916903805796225424356951549828619469482673263005505357747352734992303520707253423407176808500771396338499735945135297170832310261674283279213617813936360055664505010134046055267465540819901971958195277907411510771478251842273316596562751942346770065195239773368963550267351196749301965346772363765520731649267612622546524379952529791512102123642513947042002649963049537814928167675191483636490716635571898250510005387560903029841469072179284282958031063678948459371980224925996219710929367662475846672156315968411057727931257411849487709412336160782485191358736938148251841450528562381075413954297207390463434716899358927122571307337919082889510858125803858448778400655048060699026505912751922868280441775661414088307518052633265637572579017155656329053081587630869947410351406238858964448707355921118458732151710387346443822539640158921731336104442528158378032051669461941428546454815518065078305097153181331001997666744919621570875184941292398885387378887994099498705855744489066012544852350583945913174751531174814700389216960387828974149033654890339090116243897745766252291634474296728524426971921003357758915553184337064497150787235706202850946718160405487672736494220165057080339724524000858829370705054603302003277999514433647510759649611290945428948684386211368667385157497366992803994081478109302840921310590333307286239311345292415003266505650625067709467707828365282805774314964038146008480820338962365555506349369927072369355728710046528473279546009310829915076666743893019191314676947286788439857588758978811649379972612115313497790922090780710287214655226960480335783421242405642398202245135355860937898339310488798722735189402427104848116378563046066860454840131791790252860950334405370130359746391460792424370844587938876758024922401879081696666073034724675351034014700606665794281514533299603152092228112210231129157955294927776044842489775082853980097744127072845371538311378689083505287300818913585074938067906366753098471608025687911325818478143209623780284268896436509197591595546536654390052893336492634496049511991105202838443037727985258465756324766468744086763882834968608856375447235562738261912576964283532771427369675244072481492742085689558345594431602510782135661500178527772041985219287509785441447088552464556163119364442950755537494751243793578055807430128628507638792546708423021027767438901029967312011404019670082699785422847702746876096228282049874658280801530211971065790919438061526163126212060168420013501008912272979495369601273908012812858570641791966754502744952110501133557624594765457198751655278050364445054155497327155515200340623608433874061583029441516447405903621834795239114656603527306067905033425190348021536032480713418503566758824630245519606642166939165020541369685560753196335236824680415941816549508283392603037680403411493265590917935384272196033997452585826654377543817864724032973077162785215870381845067983391609727695378926665701191214918979371824437634517102790022078793947540672759790501815009955690616332710354958078450924183959066822709064293526088017608966921841971634790119524901940318150066135484298264370828468131376595105092858280291241432247658257426056157164423236703163221516149471023486776820304662937427739569494264017734121105251052645872162129467140767543441065605476656841425192666578031696889743886669784629323172553649190053256970706807039645507235095619710083589451751207580288498463797250170896585095711130334884227280126700239033626636590157895248759165403655956996508222316133966320680474172828998851558403168259056982789651672793640550071596801142056725020118772465162987263630776084883140832153906507396908243311506123531777124380111820782948966574410327964993928137307147298829424069520111957747598076986669052039791383041532706708985133260257902603728901652339359980807176020757677062016807024422587905020645336090806187848502544601759958899284331489524359980774467733439103758645674643524406277267548025268637901484362944117523558938404040514593005344318357087692754700678222363826014279428130489764171310446309470542663038045732646002995877222736181051444879568019020050805451756874673893247676024171013925174333034646508893523906520726459507335731011884542938226718268928838117775067924659540794084714912910430565141845624953114454937060286885878410593325885781799337226707965639662501130563501725485109569855163918626837559251121784663438484008186302039606597583760441860860926163871329103570032356552801940775473060837778367243200179804668468488625240549554581862285583709448365586396647309768179649785092426125069586511703795599331271493627659857328479171918689821792711727770293690987378667828955406492500725161288969494539677207366347097295743020347725662702107392543181321840887439003105918996831781450476231093322827893071312689071584254709639232180607445523606198765012783136532395068718074603628106084214245197557855826982092087691624997347062285063023329567628600860408566855882635461096517084342480732422436766679809334801985830416123553774062683621684394821174949521829906598813339241706779753436880104374930332685905205048210148385009875930464807761916088634729688751107262685128203574509028846305652393032820756319728715711886103608138003488418342948576120865050101623153701564766909519377602336078365485120369936247326742842633833197622668258709637478157784590050319951613187537915787329108461913932867497409774341960640150266387977957400740530851252569627814457946337630491460592082882470862004344776079920335105891122493196589418580916751634166208713146940327790852315636975622212438408231096426687853677224912524966826673984070685680562661188122302255547891332347308893710030812404941919159342689768694125331447862967475428162324035118221058976358438472863030747841780649649020773311196106643251264148742613050511427618865717934476694770290761754316948555673726494739973909946121606971849815277100421631256386112575948440451260561682829504308560214521771429632743796247596982256466064484628939590447143222652003844757190637451166420068582164721609563821736008824856269133079397024398930931685478184414521056834673798042398159785783925886477470917797620116721985823488422676202855187080237543700746797597280978698531766191474156025147041608467871429581023191324561096217126522080110186287093603497074992145712483567915335883266623463750829615086730521734883998938862110499546956655364148374191175556155410456431586355751813903700032802433774526597749561913451828841146317098981810418132963446649056022575746885009527252102412808579216819495071228224500741037094987800187587239884818450999216492460536914207000835914057233442602643148028939182813990203444577635053576572756274634925791541848337813534691826834724724872097033898207506633494115548359852464030470322819993031185447818287020155739660895942170394829227926565068958371646508102807091537410734241957374103428804003505147081159609863785101514294172542012112080345763838888423676650287680758983528230736903053279147946934355057327917705543334606964724394565147775430467804658145356043574397593036290273911969416007031651388264870449010945271878474352264931746676064485075860207702324636402632976368576076101320634788870899442105104266518269657829532355221764195253422480109125450547501943148171120382188170828344918722424995605986350518802224332100993067945107137633005938705947788199717008772830372322842274513996182081598471804205598804501985770777186489647364191303972426201822173596044782997358564656759020280505900639060243119747953536292613781057254639692247520393678606504812617154611347457706501449332768730972105192432186162206653839112705501388523906494086703870445600975022067836854235064241490537805380048478168525999159796226809758817219574878670308600222633346543533186110532124131716037534158917921160417479497118397713039463822450443373124149434542080589303117666665593490547877417306624444092924061587451313900823107403600852141661418141910968375927683354125339338256776912107710093432720733275870588700921463637631031426187881942078205619538177251894006190301974252856959265475543521047119263144699363503363525135335336240006029164015327417736980844071643969989827007003949058695975504024307678329868272183582142098190250298998455501930972041246873546196886193714241711252788394542546472498273739448309529664414232666181930477519769224066105322066744983530094176335765202406623673433482655946790234595283195164596859954680331666004151912709648393348371035864649408724996002788048747596803969268303665946369437549679207023399415242635025193335677343320517291619188146884751074566511261726791347970085167837186903324977967522352414545734143045379771806682079861513951049873301246009639356209579646764175163328683374729538600142808770448930790107666796221718725737789817551141560212489429808992219732381337009408919767038712511276279590206648972738304012229467001495960104464337294109267766935362576784345802863581387326759887471606641937998693779383623949841995384883272904529840963301511211140953397903200804305578914742752384359557169196455258638281366484759142078178168707520624681470040986895317888571336713950696374680758178306795137078660720372483007260754106023905594209099082976116587685105085145462643904951623573845806743181662171007911611784663378648092987844296194914748098080218228012089960772627420945025637055435478304437574018178081919686964536754112650964861480399787581226908870561847515341600497195350779852912782064629117057275043305229766836227358763877236725748873439563052165511524151754579827561978643715281048778656434041012284973313032323146999766990700247896944157223257038134078719455710345046231845765009087768112481110244262821485356376584750465995836781548544068979246605074506406170984030185350116540538200201739125824818147926709680299758056808616780747066300663446751250705425129015577706271120431147704685695414043529348056085473419712635054864794752310310595769831864021896278761495858248586221965382554360565947837135744335464784626613220661119754538822527827294837338189196203783702860028674759042419867426316949510811086643277005503060727657206875183485678415898418328963121154088388771163098693891304978219208671364105635016161462642376503030399127540581259489339319974793190508076380488496583861986868320084794651720427192219519162535193543965020367754225991404731299632712315462564448587925372579068706684154237223147109493124046174886986422350815828147891479488933930970402617821777804342141905092964306902428577913694082838814845215281163224112915481334195866089156449151873304181552731246324702431690470750347102945004839904982668305573995444206205446719384655806452842451811160765325341078381452853439959800834570711662570582110979967849254478342331767330629467077674960206433183235060559638713780119598848414689149785508435447599173433937011919317018902203776076315327718011504374382221612167682913795255387879850843328104947796852813273616643990653230010308334227437018623247496102462480491244417190807421098913724892724344610189859034915634240406148621351846757943187188351192399387618011142994355011210363673754487126478734227656720663024236233759585079391410630832006643433784891326763573130465386471831337689421391599870812827570823691424241774912072189388073729237739298250066799433450362287186542006254299265343973928811090406090041057960072350830595069576049952016733866640388368102708911144556175769791478668771681246688337789416513507388057054640259960972218061006693316266618308416416262543772924863941455204035861605191690948157217467671308607509152212959782625077377064351591629231043983323849760294013397446890683346219171086095216646486861325201321531504670559883359182918216608055738875980241156021527328027903625231782033162740730266325067033559840406581916658237093202527524677499079958856407805677910218963352069476583734212686371145857639488568510724805003110769265538107842734851792901465760282503927907143693352366598969140982036166180423093681994970809072982227890201311482783382464147373250524744439752944066683918585494626408031375813376756732012097662945898454506322685035903503850719870286835169278311043553884719756872646995949073890674728726150741177118576437058475374728673048621383372066078630024373436168100023100226030221642167968289463050723426476963802213298349595640738339855045974346125365676991672809780761772888250415459627500740088521774592687828084004841918855857072423114369308852741328262582671466090286077330492279871315398132194992082802689736533053183196541500484541788724296809096475063630257381672340121351533968723572683845833026811304609282164429293114996600296417653850067836483926279074259149776654162593340560197640399905625514556073369779544038454499169388587785260797354298897273073436669622553458218939649005878595301208149793565202360800069175332342838574496639041386518172325190652682524923272517553805435146650406731516597722023018792059597767037972870274732467357073569599338546898079297375645160657543566264677706612967405588607223817410639104541270062149435087051174988862992856822674097396932443787176199197453226499595547745911930578931381365952321590629163606735079440787934064964760042273398147340095017998445591446282079334726486793695334767300772723291140317519802778622385220713230387104043963259814188876200301408000189771029308519308956592308303874965001469747926623053028005750814219778204092984140154955902216205276853783661836922692178441179608961567152134508974087176182473829301054999088319564974712323322251378628654306672180011657376537403019692467940215049831004444856634393973761117381168156672213479226819895950027271396015725651005116902243120219203269331439872554238277648313928135743033477829491267917258927706856438398635244460098532366152685492804986569346814755765153678599462588468548890586204501461983229508979668313745243333657637654731420983913060431853330984520235433110251780343036182414211097801946438998714484194246693135424520834106775308283927852476698745164111887319387044124125622537510904609461051277723413553803275732500597648168832766547436963375791150062929847742725364375132366314902525898916649197833165026662440641910333160821558193485436307173680444872398576609408151320309085110986407879652182336926284469338698348503311714504380084563234785030264650440951361800498218125992518039145724483143376572452032425367748066437582301316106875569813114540346975431547048778133961365468145011277456691101017517170599121625350901884291018559648147558154900141324169255183513743345821075055279889607863776374463239792473101339400555574396149106122776775971836906806589235373548330202754313897967537702691695035036232695039547186910133950598841233600662846437937365923664737974862820770898005204251440423717183653023695334070979678901809494870557015299566885906523070359929896427013841275426122710310450780962568339412523981993838119712127715125104150214503298215873981857713853234877529161415328587706489716433929417523981179194823225211102957943510076789640054067971544604262455738264928093614899255449900601515237389721804480715304840673070453598265960296054012080779482429660674625664376267718762325313354184602689551961957516653444581322774219886665976447683163423320369365157696391022369042893409566839071179943584571995612942754547486419616035915669077265005360131141023493340444514038715702355208186997452988379941813982104867448914206636723884080236117974451532293737744109988828176371180867471596431072988876111837409819841132380021613721846041854845644365885836497768027450188506041878836578078861402691006669033620028838815820150902180956752215441495840613907575964412832076271132376935781763701923879756977444117845214614980698172815544430379505453316463342486146358290385405126924327086696347430614154951473703032093290371616613181859834138577166964812311014828014776080411337855902514338854292202243289411053825884711417867386450421796593408549323593323825429257884025519253011659502249972530804072864667898390188115610176775080085032415749734846471956141779456706833804789473816305401251303815641384382590122456047396844766333738033696900705439074116674880025438390472927424204540416197328336222933067612686760191991670574702861177227615204939960508945142799942998705279384498707919575173990821512864772704989013322060054211553526170024876394121362299681305816584897628724570388586247541247259498472105701769935235844416633496923288210002688804868221012312076683011160589379032769639495131969097022925379237744964204129787766665900823507052254982823794850161338888613606283503067531045709849722718064720657436739718588791660153557994079284681426533276481658171488736865779493338107415081548436083288474315689118632653985667837495292344268250540206016725728569040238242252396102184744407072517065190512536023453857868958148228714172986808896478093834266745626336062547349885194502071764617025421734590561634626376754276211908582308323753869528441216343226477997713670479380435319326395178211421147140999326246528385974842897028813245704599183336962844805230065590676155263606823918449156628751791220311676566738899895106314967277855917331500714980804260167655308610934133834442328797076413221988757788456558914314314014070063174087309153677975356234696929248714528977270367921399938897786866145479293991105439054851278060536141209049791508533223066817176873640119963425888680700768820363628153088926087872651321256642499352039540171719322052076953476774971844156261673371593404928058757561138192703734411468406688435795613238500838464226735655892995474355184046474493543901028102461606712961728166863154729894727028612301764898533494014839948068305053123672345584793405091458722894313629799630678382000721880285822196668390928893852270255957210717801432904498454777469076186543085686002647659120889925126608105399581838951923504180198985757827186999525604262334545871276395363224713579662819348986921334728695615085860673896368017287247330135781204181039006869248836031496995511636766353915653810369826200893594498532883482719081508454237189512665950568275147864211838919827565250276541079896365907714435397853357800880102805036884405453196103088643788206966081122861692532626817628098736179915314103357065649286504739941221454573107322683804979318880362644915870976030924954271514625149412581993222788431102211366622535954090153227863809432498079987484949448171150972078107377210995029773663779732084339369749085549086457879724624157547350920528270739136775226291948733636746636622492234408877861756365406544125018869344668130266729318884815329007081437172606237928132799277867044059189928688820723946351105213739157061043615549758520045095637853231733384180449709607296721671254775915713421951432682675272112413653854522475248787920258442924160073751237846166508187655685013116273374995198081570647026833835513396498198164390496399037027786014053082503915007782212510352054508189188034931169694835650297715056195316951079080061977790239169218459312592428966893418505150183601355500805963395556916344996478880990229512240188495214308575225818563492915099826449871550031582266568155251976598549858978159273973982596673813440163475737272276977314836208613092871738041854244022445733345833548120800371764920212142678547301107178083038134633858064763568896845660036434152416832879867655043500315368903183409778118565301593659203158152976543422770280705346473931114273940388478962859850507253023936439791755668511790443089800087124395358331076716513324424054183382612461618171723039488827575638690430556617179741066293399768676580078532947346623593155294287682784470072738682209374066403985642474373998068568852109201298620644528967455759112944379605770205916084190796303675640396231228026927082924717546760073532094150773123149115612843104129649246557464191615964961009560466816124741324505648904099947767247535720947072888711580284036655534299586880424634058780649134017752779526351786880896056312944590678039389510835103638099353213400518226770594793779115109216303197538624473257555415502288666753183773231091857617702680771734612573520868181688369774372375083640308377217240006170913895551511351653422495552835766619836014320798031124509937391836132527907294512165852754912105407151413199778922158838262124471595349381089268203008850916948407967028140077507000486054325165121130723814932408968405038033550853696927603701370044641740424903784941395913689731272345698788811239371739917522704095757484623542586632316421217396779618439128095460520265373546404565562312391199303078538250513162836363371933006258627962317785939596533175513325994767360958430856417394355570529334204171730536403308132619741387161054148437124082441438323587989002675220476158328981839513415874343483031255240943606741530899312048201780323037388647613199495278601830250448095186256563006510805749437144222602999536040498324600030040193876828006562637798364637645517364524504819927227558181839060565510985993395741233303229757395948791854834179458959761716004365684758621914577884553812811483357994109862418840859787057739383653853361966006297278064199230337370216331194615428153031095855483019657590261524537330842422606677527163210993226998780773041899340664522892508547289979368802862743992923445627313892847485549532137315133029418910508531448140694862125612644209101796088504491878384032351318019580127525474496411472727815757205191776055694699762073118629466170635687659226777878219487132413160255976533978563090687386426119423297561447027565291291775322412024084164775372113067241573497410723379784911663534507353616486084028178567487697900057650367032348967797116652749780489892416797033946674171971931393443942669084195742742299258409585807114101084002647441491529943107142146282491568765164004603127806727145351054978901931081424752723007917634283923387259246955383187508344098384826619216095541371136153139145927511316176109250582693652705139754903580714846335372852748981142677075257151607014717530747206443876754647243869372420733435540264252489640245860762601703333023084927696283557464209182070474047123811180916079671429911916213627268108828886288312224238871360818470067318690891836546656207551786581006541849722340886736701448687309811977485441127936811349761270483600179693761848731244292754240922050412037786807407009106779413448333890457516976137654938851553991901163958429017310830896982764886784627982126103660643354897253468706914538074576321570413073096594632182198487224498292378437363310414750939539301704246125604799032652146668738272585291847496475872560914706106082934018840831463282825139794213092606331018502146573123531611943256902078503907649243685000820115992908055054128397092048304178272342544321380137665710589549950737202335852306168005100122044799511280002019697696286842592455936286819549297190774660899609132632057218965334220354426849469877665944358011909711837612933527590825641107267363161095647705743830775532694572864574537047629589819640512738106035484751951436284785333764795523730344904813357329566245491350913895631817343353830910494293269074357401317676039245932119565358637696400326163102978964810350322556796349337970134652378966895439802865669503235003535889763372257609791571486664148888976136662766007906880297300787095853151534291104886415390507175697923514865152955504927271017891847394838700860164317456707692747543149709047334450115614268280300934536036832657500391260252769277836821268545920740823652271485399290692176261845176547375662436059864818018590200353730217196881731299279869752114506438331691651896868534024089889238257896984317307371670274147162627764254456989764321304299308896053573382447709446812933822375541625174969810229316304492691146772582551083921703004187912368739827068361796636665981918368980569362015239414564150670103777786294039909974838848198220291398994692687195359313075721793188177458558345235616222245994836668738570676861957548745050223694297379815043429960730213928806607323197528073016206633001566263060772074785319226642693887555874347356824868080939446978886899442100062596747864191264724370815161879107244551091606026630352766823786584177844272040227978625349040519923630210473089263056329641967399840487764013397274795553171473550759200238971720670034130037991082573741820087159655118748658615614792052070052522735177389632156210748797934676849553925353713896486830839137894506147588685229764692020843350096165924457723535301458013808081315538850334166637871157413300677288134981184414966069362937188913697470365340050974803418815474735724808095209500998591642668111394247514998018752304755124759594126369904064733026567254354087002255081020836142760653180689240494851352514212930552140372885576071435314324113422634162919461349082352959193080650977941642617779427854810184090754969330149639987383571819673712210384111508847522758120652133272965083154797872515073765017758764201804586320905913571143517765999228095795431591894903904010337259433334280871724263340898639589071364087096394976200765218538737639452152623509868523605412424624633288068342555412694276123194493313995625488281073605856735401843266811650765937415221387712242425381939673217116916208834121445591270310853849975555439446088069962150562988496940357899235333915872974857846581450720745036077342132326619446193066512998717013529233219455589487817583460180640971189309565081033727940232837123201559093288498662352106857002482860267038307000209789295416108118304772648995964938716125770627445179521469402024006942427954061883493884612315478955764413093831868437875553945929432633998128993839611363438465056534922928197149068940687947179491970103553991883236931702619753012741424240859219994708840944290957230276758136988032518470249756273676262152047528828007399875875245966328776737889192524709273602493295428776341995469115972370108024498599904943003657187210308847724138750887408785755760815595017230804206984054295301098149633227678583863040996774503331026110437977325109454042876851268559362089535816738280650643155578806775114675665241182904127375385118753610553477791672116777815330227722878349398557060016154820097136313979513735332596671036714980146753783570980578253669433960045482961620882921054972151449890108539018346472828266013106319419377319197431915407872137625451350041441444371199476548297157093001704923456054646160664460640014800893355241997123623821549124987246949661990695180381630724827863269925114487008362402301566992148334849366543703418817935982339227554843865378640700414474087606184237181301827916711889491828090392642047325430898590364582577150777434912232452185993363106387324048511931078292385862047279970870283230722141276135320840712001150160938192302759547065443508679124533339079453120998259650851135056082789958755947990287367954136371918608847185100296110777771903378445671206266053461000709510026001211074049373819985186951273443316517077226054482232215497189860126186900591601409875836308957206221016675852539605094113183645419979334599049441582820373462240315361016816003583380581525515673248530461485513928299241534348310304640003967981993563971606755264172815550632288891721637509956611957065239453407846534678695454345779040445454143777394899741873799787530174384236915697220511313857685499545777979457900276184046697971407257708258965485992958539108690322908658215240380996242489581873430495718319595361894963940967465794906455199281914724628416024140051997196126235704580433872077675120955126055939486753460040188995985272095058024024753140642285999596705671551979803313978165415856721684847397442710904325420940123853568267710889769876635025908435231319703661375739066577514496057914739223886363797569701390703463495911753255527533410836013307159804390598872353160291538925070243305578272301778502602675075343332713309674059331767343820219736277992639975441173789788013959076051203546510512617867051064380008579334849906499077617973614151192520875395140721879207299581163203319293011073406401636618913693175685909279860096306251262918230141951012241312156891597257624989860272774909706867932548478152542324728462119053430671186197275843472396031573347463583562251075593337897546946856094863661449875183356910813837058089267013316428057208056571426371587033053441049854321160773401923105959302309511367248889918192419540332416419123670207730614519825110188330678074504719202801909285476990155137762479498415751453446036242502278060615731258266700276295597297326686039881831409304142301770487736497443366988954037531421601327152427713335098762991608277894388391316023610646804977821601177773558387349809395413945987749655156988908506351185680503827639728007829408379793979022100678006412395041608943450385840986954692320985867463822186183833584324688041740886023935824538234664151716173290411163797425857434533869674894828010774092852662242321774937156879946873717882595649089364328141690833987325064145632198820427701594403380298083771536344879753202875188713760084152555698636988040717969142448419031104462547325776693156732860817016094545002002959383653598106294242611660107791597616696752961670735058032170169822332096203749786846321360767029444962729784998154513449118056473158919723874008324318319352137818254821380649996956515348025009555469217831469753245901110035299137504369109882962685352429659731535213975975823402790164027527814398201686095546486165348597870878332885251193856823297352992697353441207892122844976462293278873795014172460964026902107604977622038369475230266481334648158474359625696609135148205969143001039380991449141528416824258300099620042375027316233515508711932397910315008044056852515363468907506840277060243728984954720478284076515517549536740063961297706598626295543082509879215421892941053055203809800013099046418909062824833000639961357832026696226169983858061482324822451745943772102264310971430394810102084920741557885281369412026205138121470442711348978765848152378478109408326211515326200724622456810610476718561588128409779883814154330507526242803832181709965308939398880324015018814903135424364506858289319449637373438351743410003825895693099864922778536534602080899588527457187318438773952849554708768063607051866165965245178172618412598321147114341799383163810003720369605732100255352643164165671846929373326893090884850216885634562297949328745067560677272800174964186197968605501056571575115029696563062899942559306938806806818255177240330589173271555093154160019715351549369707511936170046949942550697536697015397520241812153303522393706764274083226532816984531286086362067584643891733296019085072004535017630935573605083828458308977372567785720065571830769029166650885304370792874443271878810230270244612016661096040044024923579133809879869201484293756268659606189245120933774150191301353349202278866351549696422418925164346050690887611057132273866876127413640228156016692731948949140515369918495162039845168289264792804296190847471134328863671920001368880694864804213772386277790659100128979361535703580406669099458019821642633818236688477255933852866367745952754326445506175838915789715367530731853956789994252936503800216383487231021669781527918370531353230537411883647772499197553145664194063692080922661056313276062814175307137710199485181294954527134200822584290507455219804285321378202042238275333621174929893351679581617325392380522301247765574517277034040673407563228949632290558255926270633390687583099816108747023041019332171232062730924196702358117536348009090499789158663428393480515871399907869000884346764649062697907841447074347805754659200169022659425599302314707228780503975367460795828642878401228678214404646214862477307708859564285592499180568317312295059257320104598415798052692262154831141417168223834286956815946612862589206470796931934161512473936479727643741952841899367884896008302609682630359537556099404148004561246370333031349016158347706022031466993594635363479324590526873115208600540190361658332616911098244806571202480434976686321866069620085557407904631303790568936478589369916841723057782087177013254410371033583509705437812617318139469541311938782856812695998441113659189214968516877155657011732573819810082408480684249182716760358641650850687065735629628101391902115668755682044765285276907141623535376786428376526676349984143532254618727669974956887193683543460325337871287906157033315536035375013799538611072993803893815218391640556312550686372352506182616164886131588085874005586766148945949976391728724205094928592977334933906497762977343118148845169788784320708353385306743473690465378323084641874548674263149442014630465290108844360013539965390231959184735701446323810102684486959902420844107799897943174961557601106038363606075574285222801684456613567020173718026291233280197349560236448002232951347387408047263762564860284633669591730591333170666892467970516188116817888739112899011921962761177307900125085931996921525262226996103577397130027640264045370970524055643756376793642656277711034353375850456506653481016884580848180017690619337989109318247135556358520427367665151660420095694934213102209206529132392519723116915490768801928934836034980525721035223393915541002769512061240050876197507977840022333192752157724299703787086648863631674761795670990839233693210455026176749426601395184683283359937571992600882774287158190338227300747829829947794953610674578863507002372689571199312723890976476419212934584210071264649317055140214114045313625071224341084144357725279496239774122279082409078687193654841501538726771433897036299735964638182361360407013566795087184055148842538993551526245592043724518509081763278134493387471772538910770704828270230214863107396576438782027715062194378551588956520961173915331888954205298078807468718364477190727375699923796727539221044962631609996348161487283169513850143479760558232745723892155696710342205595838144355811231642699608566058452324559512091906489182438716556491068488136106003746180014150169274143036295084713553253675455606375562380347454197134781702842426347786663762987197918090077018074926448026433042689259484796377831659164176404864855576373582892956758010856271191737841512270806768030423623046442418234376008062536958774285338708084964102563669179957811055617455056404113983765619260793777603905825138697664076568128854789550067840142090793244320489848626324085397878399138906972956634917802080395381267659912838410897214573175162759425217697599682377649044921430240078662432486015138631777486110610821264366238325131253341421908645706150680970259596695313965016835473066806860566233761067419447866451247821997592942852237118518591191042784699438448551230249828000305745296628748094469898151890233512497916303548592993529569471056402165690703209636151850564465200116586602287263826405780427851626614556080545806927768303368851234074847629202811132258423879819663271997532799849151722835103722601227927074413031948171886397064646930597151874471187166774108336283665180943008615344923091879850069195641575736410295217605386579693641593754133700034986738087926905069039565256001372733666627376715017596407921796246062664470933805254384064731986081596853916228573076190641125720922579749726278146844875665817916632829219255534107451129811842858847240728348277064102990340717801217196834545213558012473858202987484930095492982261977792357619295205856029359239736738784694742411914382541020587742637629636720526721172954158025276812244287365281767394781441330603827460408446152565480959147496636314194232394890100123103260530006155550528708544727423519399451484416624898767689031398036534990113233372654897192284453122942084880071253840005796835267536522767654183237646982276042029446419853799117137014895892900520425320207471965509398909850284532950426029827394769897074266163247303542151430568157955364915469295126031828695940008139954673412898000744771734227082799377345391671880739577403461242263579546861416687974891295400199189799957654363085905609275787755331330250834907688666135359656459515376147498730348117950165339973535717391583445059543051596321831518316581326621546251937028703100614094244860783150115267688689283638958097348644103417192158757395886030574121104168451123603901606228549939937322636394013327116118171636656110589330678166255763609669851934888882603578908315713044544598029313360517079870244718149118239319065033246309980688449074175498209191837017354689021763534641735339244502450366693478884219298144248003587654054841195577785484640343796412102280469756448573122501351257553673124549645995019016732367063062285839697201114142077720033602919702648885926417278593921343452351704303381340950465979602706745762436804553987626632346981354201259848475662474970708230694990228271125376779836382650602025923159364405886379039343451065702719031078410236599163107418838147538914630280817584052203945501768635143457082721427804909940098589406305950395430509165907621745629078061347794759313011666515932496307833114913948935612305532959565845028550799563710159519050651926569693757935494630743153155517754717012441224374392948771285985099017497761307340740826623970476827904020938106572308470071609375146975691545267666072749669399494147339452704722845191480624290373422475917429827672699072526114618213527689192707457551417249675607153017896150817330408675838588603695906889177232855157217588349050637109292922517709893058638809377996932423078981223936634620849076063550113237848232900548661923357456191879517037927168450488312564305081404496469146868387153470941476617723204076408317099440815160512208910938983586917555831152931628184795127306997719194594308665396864735552286261019152571481135308656800008318879757284070698998354528632888481114543489385288846691064411474760983975583574780531473525544239400613578178357597826146449888665096580358492089633063722557450227903160587696008492352536744604643332218850647386370333448340114182187411053879674095259812412195309587592526623789355460320614062349469197642386650049994464071226423862942488346032882277229027695282713797024077799037207907253154420953958148253468696498653422211516873834265981646142016089677855601098600676331217601408001087020484420269303938589339646501809011785970704346983814295884448523788703798907909299923763483713463609492952263284976494944592930332780967529888821008360578173189088939445883740523614542178180745472030633394448829327303946458781649381022110982171728926625132759176653160142201241348930689128991562897613810774664923665543079762254187232912193140944385744578032292409726359581285560297006850741150953226249246113087467185997657769439650490277375646170767628614977076071201251498306650411769583702613392475822355346578177770620277267445475543724411435046968401487221208137739927059645789005949276184797637860394308816538603487561894184819291405730133499547639667317857701654661172966554710860424936239354417645575124279069474098484968396734905056304179920880057218524053870464570281645793519407108804001710948657572565191259640096891533763126305223616491752928610407050190453548009863166280281671227411100681193852472556101015823330225708998307759757448062919764708850575741456848350756471213252352323261135973404332407742695773528704996823274968669665935605030219297452323694302684755207052961929186674932998514722199839061258183985271393981747070243751143346275386919536433907826149258619370746644585145631889652310375718050540518956097726927675435600411101727984704217796032263149314023685383100700932848034096693676586469810784902246283019074010183457973431760434870109153157014274969014783304755113101239153405409814033914235253640959545996699568520304477428599782450560537572951292464434938305060764203802742413226942073120795318269127882089335043567113689145767431944806665933410742522974587666895889178137207092610690046372501342546407238254958583385893431923282811075894745391936434348527077739952237813526743537386571683896597190912975948897037268523632563617797955581406418053199401870483430121043646271097458502959522305336681594412998729391022781314051517308729669408349620668405203782831338527998588365956611943904404130539043070323456199077360305886789738937495578482670600369385364357299800078217619865370740627434613802433387030645060060168544914281516334951506734087851644765120685336955598587298413574208757988879256260908189882001970685200624297789107319016791726487526749188603783751097129710334914617365284801487296968015010439295506758028145346892174647002133846796100693594221232551023676845850145072076052097457748332184291025746143284173224802382427984483316303729708784531151483283152996030311166371979587300966992449088637880599478887640923797855023847072834125523079514688496903614239320209908589825414871003790973974681834203959348675850989445961250510007138520726304010518832898567413126058482815806146472473449947808711256992419887701166119810280618231535270072281183584742996351758279688851198579412905748157896349917327806626031655436569257406985755659768575306479579643186300590756947388952558491875928528208219214508053496556404022604102908022903430952006897651637612608637332654906846158167722418117163696506208306173770013701204646747915950404389240051822187130238391318954034379330372484488179640327554413561313229846480729030771526077480423456629886169666255819272783055691720490032000256401557103200358126010120670125176479103523533535824723888289890009267772558359121336621804318940680499189896233774065703489614963718017968756001161352239622617380681278070070305978139495433439409459348217368260188232452304600151574227533991102888995497458191500824491343339654611976673378871897983464317576127996434395599276215754240512167157071070173857024278302051462161988697827325053793718611436796239674982454772432866095173854494433567264413958616623710462020130568946825507921594444254925605602552975511899426826393871389196419469282905367044507294755946463392945505174304775641092560978278742755427766703052826795478459242944902112843965120438858549288338020552098872329905417801180757650916455166993655120851834048865454180594633665070007991145537339683769451797363595625966737717900624051658185498873442381703802120630677865105467130206108605506929006616691481511823024034374274206408871909986472992550616187855460080776739741677348156635836640309576522785829047358444701867820854352816110941158696286868790898379032561398599927173270179587962038151587551124183394773932600655713634762687139342373861071206666178372613350033340581690145150893803416536601966263079159872088882545480272313019448776535459257470351889553541612859918133339640082887333872621741660715073218203228400438620923731645413097621286557009663332124590608784675165022715528169339497988010144662683074355190285291145282443870215519833010136628576604035890143875120905495953945558281041774505528102166887548287943390384884000961913329762306575873408599422095053332398844736298725410956360548579682778872873059815217620487770082715695349710136145260293754829148483455403597542341387490269187852530856756600829095934893927447649416647920039875885806970652433477408169080643385964753810889058324174825387470034532235033521698616002426744643384892121195336814766144010789795565152664589839245462122334448253533301193994448663733838061862176503660219183034949306463783720873757652396135739346849225886454043018658106308881457904023341920492874235118645212653241821273861486322703206921049230148038532152207455952387190854020450175144541639862903529399332855987068709793132623896571442072356943907512155560470624556644311522937548082437073368995215424543677412863063433519850047368148394491781050172460543046805920788600459075967936884284523719039310731494076175451894001310553559441246162664164562641955685169639978565084983734517567792972080371064915755958618862238211301487919646909106264551110448057357585503360754483067824226586269816245118408554026421518562251344830269599889678173085043622403813195304336264680135672697622320937031546510771203080573058733948853011214716948841185660260333349645579437069890460352086509991037234265273072847477005194022594380289221530943286115024939035308571609043387865097896893293896385385881478138230713760347255596969514619011873381770903878382386349497400725353809838581950771749811417168440897512013736827862981736743434198332535486953713702130051319930590649775706810847299794737680208000297444815099553310072099773636016576945068806378347895626333023537598802399608200458604322565222174116436555959834689454175978402282026639678442521801959915306156492999205266966852996824927017298768055612567449682601187498629187656167075196019418353257749356683284166043655270343772644576430952726342310201336658068588289738632477910991888358201357520793567370388769186985237012362917474587853089257005750775196379144475966888402112108186860681148044325262168103250179805348719021896156245626574414441209152884035140330975619628530665629823441980755287629112579133548228608417617843001161526903916806526851070513332646142245630988039377720867345706142148120334245353578910055963112645024267048936335073345040487756369566529519365558434456601791910578238687469545915870767074090257676692008325115731703440162193488314029873399013038089689357674638928398987917630676429612238496278588834359518061220121507590351119153000898159601663150262833590245845163002819860696827915209503986372342297143324901782492969429527068295399027712573738824650990867468312073057690948328673119943036066997476862324533748536551022804541187329055277194771430268436042702795537181226607973798820403187938656842337633794691473904513605384531564997094035228149685854932711899924756961057558112497336161090567238599500131174814854706920095040866005832646114893522980483412957259086848470632902173407026643740695060140104374325078034647578754997140050672313538850684182702885306879268507083600211129048793429311240801755219286982059505336632237040215170204175931629367120111623994858849551954745147469189162963350755558527749995837677491985846552797189338436785611778184278050734136146063801278856469466340534564477312456497788813069802807589565759815977511897354273475033727587132420491779416069621825183168186104253558940618694310247389892049139877144992419098411958589254359751899915063518894930464311715661418721696539283773354698189351493146916795419991747498596391855312898591276286651849850373823202656580322062864708659722843143484685816610943360031789625247926293578845166624948618881543509344814028186333022423316547783308040201141860736366925204580345742660905977501448303745156651722558333436309239052377620018471121880539146796716642583399137104694768908938492565533065183444465290855439474882655551343682095801369101832755283583736699774587596215569325501720362949546125833909321279134223629123090098938828707846834017195953100108528233782788279343669338363285510750991594582432429169538172426080687994443538655646794870814086133547619480401872237401370656574468409965424995821105023640954153928851829049659064550235167494887486477732625047305915013991177736436364878426490353663902511476904057223278034912132768162335131725659451335018602526636103768614700532908210942996844905627407924589255589335770579879984286011068254140635146504506472508945885444473074476518232101005678223343566758357800075081678216160052293160248411061866126171807595786463682080038412259104013461862445839923214429232715064641214298360347994376963609623371541452316588392523099565917155435717730307915894803733983266686645025089035277821403293305556673669229430374480901704248569739162081063194295277083739103780030821264494390627224420157952241817794474431346973118230776141124099054341155431824118379513711536254026422674513793887829525749125318329565308355779774854326997536953499460311632526495090083337154170468691128505729992602432545847684016777033564055867512272361785909465846297264735402674825809682221208988238476795642394920229195700925887188844543302569881723043951631702518421821925071496413512406831472345551072749567662670373833887659635428453171031168940697973074314696115566425652059082091962756734932984695817259242349763851924336771388964305719490513170097324902353839309089366735767982686746605964231692738536030294210636197012923926286189803575973694584680119846696509296389824709401574490935371588145359081411859477757785720632138420072715521392490851111183492906877162607542159288587952584868042697767377605558336473334292273408253393987374743328279888680544097128888999049482542515441892225724071774369428358369522012706239962831543025778057649888001347363005574277531645646768708791977004514682329961009325988992712738624434160312326917282823988582914680485067226405490523656759143803327524654291673213894681139511298277679448438568707519867342868743509206376975736235276643541101736002238764900635755492571680868790373493061912281630184106324886774861686180772017350340889570006242429846823350020284062306005702760463339535067488002153325640994934802674154052751673629470021075624991991549427052294806571449334215734642606443061712276523548675847592910551550553252030399385362309722047749756792585948233089334381150411234524547519106298529493545266058304805265301396409169987881324776050488654605073270579670716677776445447886510963175156846110732165493938954441836354367944864803069216538383165161903946818574346479199500947825544685745934995712185227089739718430121579055025634089762627483139415491601402702900608908019753673648168081802037564595649551486987798991237502945637694039878878436808604990875211548496766463001113806343013293008827054452700001844735668055626326186673717867713550041760609500333444999165977985546278448012233866215555875704025846804800449212730775473454439604330822812319270446952460159889292114020333988404443758976700885989125747920135951559164735612135352319850914201346979315943234967801161078723640807165482407674771590994182707042962003681105482366524127461766916602604625188084316512015346672134356350150762618361822303984551839432531337756141353994126456183769460307079548001056586149967312698119233273386151877826652203148331212934218691855154850732934102152562416485571938454957030330740623564938111758769851669391188958351681769272818672419502073257654439362501241882278755364735931490520341806635128831432931890239035585259582375915411741919294331930442964751568075288287629749292058959384607727421892061834322660697298123809700643217144041891978918042126096750453047872097696948308541426298660832153410133642142418155414060383337927395274275753154288329565467496089456080395089200937482079600747630632343101560554595512507124574220020796349793363519867212547591831657680592072731830402372344612784359789773828098707916156696357040189259977973895761792946258999424433850216479866364712316585123508698870641316874545074300111494633173509067591028608936058458309250151824606025946357293710280700304579128396123276858045504332481297445566460985503223626470180614859017673311278465004247144763587751626032241561350013408376058545376116530918731799994717064069332179883877503350143042360262377140995123025639505899388829078147911418470329953402318331000556677998744423033882972527737643870060187340600063946039096227279900022493404285053262643890859280034822529399329735201712275561022621044478074312186513225392060296904540556541415722162028558497691871306441826773209490014743005723529292153551805886061242819520852562854062636376915514745817683007851830700111208674283941950543095394064953280676808155531497196046338411195517121659390445123633643007736585444592858416463909299470796150720075332146468257975089393530309497614104461086598516451799230817634372205671542012671610969380557345509125739673370804182268125545364867683927229766508461981478775392662911794467206849182367698470047125432822872533389283863718893337032290963841703837833956278007572375246228678370045858676057566899610863931577328939597700629017943674408936051562252176242238726596873684115637691629662021053721433199858145034456960634482937106874832363376967486157873755708135489170884917684274063608612917670622230274787722821568638540010646053306264252940502223846131642068131444254860634126141648755499737609781960821870908290750377720979360594816524176072181053231938646442734277787102055375588087128095935793088750569789563127242246092853073409713921996542334652212806653614867516329544471380601865438797559608421950764089388947317824979134842927781704352485635142607105915342558335317605380527633849130408238980869038598066799855765525221613804795532129632034317421523713835545914787444653838183704994297266901214260585229243159346514761379509975284014543892632760564880752315703721836544311087501759612387348598126084990578392905884237692984502025188139362570107309803670237592210372499762664555541638849036599604462444899816846916892458463026113153530010289386633765264616691604580370484589811073693166092273816699041747650130998277888456484417990901494581596214302767768029415387055500091670869339334271129935580563221714495759741733600852358527769053025448528047145565730797101232784526404080798483305723754430044579852394635388134935185919875226424469948068310767214114336411469726414412907015214045122808907455021269529390260854798589333418152638128246326136908274975831541623609122529442520257796081375760287084593521208905432394138460135022222626958753964424787327031179629648312868804366677942172569675974423938745745411922762582621537922701667016838210076883227383635123127429167043191253761101578319274814900181084000243353257343879471967910206015613715664902583492848405097189800742943860461963043972608781306326144380314314640328257487063496190911646472603177562802378060347234362275248180948342412963797982271087759935904381072691236561934297903726431400148786167297771747575162570525263327280396651049129788831317644509515217504271922047305769643224155535086819048488698151032220141074340273608310373674648939675330909353289332704468411298197646736120300856369402435603781829403349974742175677068649364302344293347681576151280930706897080056360842252871701767516495931046599249104368337772231542551383362087190165907935263702616825700738648142739288102393702371503421747829080274039987111085790438599088753392098282184629467235961991698372249953715873252492216251440708408419902206992133604885839663556240664595308965823358552085046585572178922732305521110555282424781320997830926795709068570100406119626295374015050023728602155430621190948908498868831664136459846057742452347347830045369986001783288806678144724828568838577187463738134689587669733081811158404875135324866651163202479282755756329882408499274767371098138866650367281121965327007694516397979652439157926256347723899438198371311251224364116727814963982764233879777208363152924031708262428423461641427587851846500908865508692627231139038326331395240599052661095407673274833001116717793900069628579881884189827759247120216147361864586222724535691376642524452572325765319090902197832003026530582981653377632083831244684697805400927856706820970969823429510903273508506136663576891597835815410385852596268932334162327925174410183055750037394142352662174872558867357230642565461383334278418614436337050571620077677327738990396242717725032628436963309506009616277242223179778873030025807965706599293848152536983390708461168781916485636272931068959586525007001941258142787281172451036664949267536907036562390794282786719507346930623585719403071343908896015363362069752511546643593265649005731730593649738810254315669225674032049999144720002873341592686164246230212960542864522307847461900785563230158017281349722839889057790366474953093546783047498521577275511915590101059197098662381853563001432485189691744696595855356321210413186731992345155186314176230277654953840971080019751400600434163375304191816440427246889144214305364340243209722284263740302509735586111404162259086150577655362968146100526624047184581102097043115859909770540513429796586011324109426556911813889308007586192701361965525622186302184123712105143598115330105212963418327580707482910448026203032960259044625397648499157845799002696650438926580080759840340854391981389558851752761512801753237315210692156040185209589826434858344328378537036380747098934744063731772939520073541221497512888486251379935347699012802824433730925437756867440142595139291292701650019874766328343243516683659509341305778595182876741924978368381916720940495135658637623304713371253971994498844936974759883917659007677037332774806752117146789903871229778393794900374520722636159461520306102727530018520691970384022810532888059517607331234710249697256073674094011738326350242201618813027708229465752417164084412997584642555358103352530956225745701830070163281685748565698666284260283133267708067534430327740119325740937339237392975161033650314658287728321791539703525488438265487104296267831036757074205219911763292612220260018861678173170540746453316211000523027392048279859035037368575716518205378098206098231782836001070313538151138319125077585358238389916489658124256214910076801024021459411739471878802629881246788528228292419173777419046046222278344206853492377283270590891054460126220532899900754142816934375913822096950086860396604639835269346752512953535360263226682251050317864153280152298537464853231672727627756272454807834287144691821077058315703746659818090090420342107627234537268934374447331563641553948988069159781343938574054101582878916849283545967023646973137847137795626976063694217611505589726680947946868478529340268347721046166755982913726008489445559161489754683767620727295422287934256194416165548146911422598597403253665978584224848878807222639780507340455478349808346479616584612105680932421154435229649481431369603968198335819644928848067249749734012768805072431280456640840620053555286135420764551663136392399417861148901788130963657321993085387580686539360529815607144132837765539335616173946936440511875072491249290901151121102357468400702631850014958170139372595325966964862331046910369473826186765096175863014417758495431398474290821195081437145570756872097244747295981785790390886561345596763062489928686575740210386555882453768037559553076272163653536383353283203853849239522832912823776386464640123455461122663965806960162731783150299383814572604452321610518887145192601283010531509515585709280582524037800787582975870771514857579511491126872569331394844982369279918042550308092788784483799154708730012986122560972419358648412276911831174037641321428249927003270612548637304338064863677295579054236297451680175368812695436169639736088553055501915550846738023286877123589126401832868444837690720926766793858283476239145423505805208468650466896763955705710179423270214919685340871476478933151196864697995864004152803165585539709129522771206440027282833447243294294426298471511620855134657089689105187295483445680698068227250756949458616834413416827904176291194395957162966345308194870914505661731012956115244015106285242910232704217590776370607486538950593112559779682193501817082668656283635126774600394291749750842584021242986742479617125957383910819576854901634350997375409916581849975054652297594443977761653225966218907950052570786015389613907352215990681165085388607446370475866363322129072884143802098465289849234568373566956295385565122961844205653624038561799497456203494959721478515174327961077896109542154509660545012067607643860641686183530680897742265678683953250971299295744879815923669075107413380749465143183434012312896943298495552810597795865819236318116308818995574584384213040118715258574052084139990766770311736428236436866845922822295469135542324087419561642445741516560933354680710817873167411969987605140196684155944951386604226011964111015680518800400727629526645455407396827709489602235427866987816503478576085706343168647398070766621067642682554679432040119234534586865556505451364441212633009537884692921015945607862965724335608027781900059440948450787907889380351310054218106345962443591599267809575680311988965428262002745111245779164632608959163412555577767890666589727140771053354678012338125979907491441779230227214062413174427108078482036330636447449345343497337712905125753270621424335425857174354720067575690140079580651861248473947068428378063925337958482730841676341717857081205483544286117252593707248427911844524969587958439132790895275844584220719166233477607922434880674826042416009794016010607991828208626052288817124003097862506061069253610927628539366022177500896816790259007493954415305035790062755127681416598365444174068488092162184301838661914867546995226685930728772338610136509826601175631573043337581810697952247540635007254712895764090545423342797137336387627522466491236657094304252924647664918895085115216247575335703742132303037737369938423994853630030706845911564983704250730084799967798880649306882281644062963509863501032472704676660648002435290777230249296909271377582693873931472954568143685528098893822959820676467254310692203286343148942585841371537224425648523689630927531956142167241478588414717971404292825212669832633996089798928723205888418783284020382183084794784654157209283976505299117820630183956757261681641003583402778621602096000879366516748286162861947755348427623679084513926406546749277809280446159449435231235947259257642681949517549954544686728361546342570109040380066802417697756694138842641743987551662834052498059320718798985997866649818674090978916481073207045469815275700579002501503529989116667924653890233426035180682828631615833247072598514710284945525458010837864532615973340123642028171621657261471752486287239350054728944131947155089930890872146965247176657188991074756191894177782104816419769080236414596458434878412420925427797933487892894873123596640354709692222332455773348286823689800816366149824977911658492825533432746113432965977409411733906874721951968663247736591960266111791357836005829686059201743396030647488206451898203997662299602637961175922014556163886082679010900604507761975812728531941095298100629319532161528286169115246847856725081704764680065055146520054524047115748374025249543582334904325544702367019925400332937575200423802986078708300057480925640372521878856129822882585026517590479271930490564865876192443596701925116300192978674442295363661979247312040006275331506552459157088536216999665816364087266970884206770368553147334100272149965637429133358582061394214160213247165908289857566930775869069975186321471607756976893985985523138662661937257212250719355260591753276822772162339333310857650345433087933817742805592747217789968206131969542782352059182700153289213759198923861966394395080543822697135267074193934833489270230840537922498768000115277021124279960276034574020410593083426841349723821367528124434198698772790957956856125699205477812915186499569288649796549364691708286790451726269782640894797328985548354119322690726978295147598980027018765300689415821816983457606193455521661814296604039712826313371813255101076478751789516631374123824582350382300794771807165883800239289292468686584332217845973926812739656832599337490031269848418819665917535834748802696975250915129718730028302309881776550175088299105287548501652546683710656414351494238718839979659700789547596955367830500703287262119601885600118527572567440220244412637283880172781003218197646882935043010845574145638590982384999567464936129970386456254603834250473276611025293557361181508432075262052755741117771436679200813126991719830797715266856602508154660904755814177450669151055326045575336763724968060259441347925497412872156509705112213208395806929822691085053015200567975666163498176508835147339369052885971161062094533507176736147089113241656880225180525699778045857103773649624205962692157370469627078465717368171171312621047125143119793888026923650444142387943303307926153570951428155526629004229850668648967148113289278026648916349032162988492489382414481935156565161635168578264654973366173715929770229518809787920351821033813109695154364678900894498273226049209442089779261202471837282128101411842133501475422659233438482978306790819164308179451074702698312239904477880808177070125793969487044427027865512878211053816840458547470283417664549876517411203211824032586614673100642359283686080113839336960146900851993774612591534671473282761827732634171529513961728044507277105218657465385520302760262532591945834638445615914388019270503112649056734954137124346283075455558277934229739356298792395964593168712895853620708639464933644090012649586744571960535666810833222699669957799625768163185221691831096274102375741973612508543236221365309133449214321133100627846392887149292887752552398040988297013101048026568630088417365930745160557715280603215985992408576889164498462059835119218723433350526763502286355941347312438043010057697489508831050848230171072762874699297025726304497467730198265181554604422476744605867308910316684559213511152043080409698757472539427313762269876012417109799255989246663164118169313222827471828889552503203100930108170057328816631759881486878628853383360424169744019685370954069722492002938931476857575907859836746123204829907462625895650461188112968806579854278434717621266356333069852844522705180697068946308137999453511684048453670211135051247325838697128751598821412083212237717594180618564406919832509218498992202404978718493020426742948793083539756375827328570449589544391122317010291800736084409204782284729852358887583141181585464893937503502224039411309511982905721314150813852846158479697708518034363704209186821570253270917161377555868453752083564616909109175289605878286834341694322354480759719649405914999302870774257276421046636851520277924425781459704713229134162960279830786634332011135332809624082882391108196181070443458615974665406369694109523659084897582847173209748377410815170198730032159548646970912832816774361106679383714450823913033795021202469302660064129116324168274359321675187946017185721856621284646383478112661827178955407724672591497750337846555661217355261977282433749938445353961401604615995845013902529952333522427417085197662269510331051488848644677777876446910589085279269218236405168464626004169028211714848847033027419228368148755783556013389313313837812288819019169787770270316050802523064077060511968591312610947401284283904006565440748416630547566229028243802800261860494784755946898649416920882603617110159105878575294684219647947432726778863559537977818385380548173691652535228266297584513387767923612747753547114397099350684515454874273800884483214697450291199802695550725664136163582193189350999532686824158234649463592548945927138524399881944455417053102761981677903247559299471334029424809231510558972666933522287649917044266178651167498789803862936238122242605153629335930691303502748928704469032558837161001664014094660061467590634098916179467973412818397833164434801600140449934499993598529377786847961458278379483751230047181080355756254947204053988348581575087326598055413696289411422448134327887563395014238291443232397917415582912839616876989586601139579025785891858770102321898090163848619762957520375676350655147409404253249788916351462106517422126932326131058784233555099112176379368994261139530785029911387204710221136476603271377440908369392471852611477922316296241257188121410778548808445166322083504419804475853313801623805045214003837300172670486397649523693799207379070302646675027615716727527946722025675551551784451066292325100917047802682588814405835840006358295505910358834653804359590121554530928891542829823521154439210766018803137369638430548447070923854599841446453987022885574251246531512310906092211917203273678644501131718494846231231462220684094786850383465892082412249724697710898940913285163357243939463349568036085223045444715075774676724397262350121848075207212147818627807376598643111221440444723605001907330790478638343930880263617340511597440340564406808352486415889768622137574990580950521329376506273879464537838880475244330520044233908382811019664025317636052228506645686852466519623842621978170055517234529626213304587751036020141207075478724707091196276124695000985528917001253412946856249923754716521299482690358044996943866989881229995192515451767569511252404554226327657555359440861804258124006667731938021916143676651440096678645653173795288850584801770708203468319907155002670939427232747616689020350940581205546286177719772417921726985672402466659763395379319815139157731069011397308435132817108355788111700472867033391966971307149804977505885286941310725945574676355884667533346624315193997006846679078455366962825920320536559551386423445866301187837277445549379757984563717446535895462570759702741135552559286066408574765001926389237869922835533373957170237351692091877739386420453204338522984155004989596487508526085541465559973420482809287519408563379135497580575526681269749440295736317770821955592848476645845500776703784222168142255659992332084934488677700329434887102126043254583264725272788336052039368645789186196789008592762530672878471508765077504907785435342189342994620488934358630811661344719298261999517590855955787777826698132274862673448774121130595683950692856567582324653500234231448576674933912942179806607939099494308553424423642109020572546251558133316912907373587343376886860253716133976808739528154112401459809285895454098065159602731674181635567314085879483604066035297931707218039709709668021374250209905177630365373421060321600830952908675645534373255875407748908225593994268027804535340094537757436895529330660358385500474566442411719167680095926141436539912469141260019846166271972508101611258378086489333980252159509668543786999717151683716301031265768911431538631434735675965912127654598690194998634478429162248444171947092709287256966370855382741196280359348829619037820850014089202388308430645459236965072032997168033721383098036588032699379942897651509789643670285933226849932377084597631645841045873391194477490066993235905595855090465192185057826288598369849641667528506660597022689957755320043061410525780143630806425922999247784231200099672575030044358787867354538741546556882602251799001822137499857780767436982955558607900419558485478484008583917555649939764696360904197349786161407364545040145934850739337413352962103514349043230755716145124056752659269885671445929022751662796038787249532919826848619547388085444931205778158444298701621996174372129455966514793316486830416376876250666662947857005652977915523157699001718192990220979765990683216372825144604731152530256855327289388591676620572802570539483022221736011930057213349618867384454716737183981496753458263639841946972876243192851977063716369174989046137186723055243948701868535027780130251894208118906292789733534811119798402423419227637828522130142161255826008682350832778999375501175072568936943130512746358906376650380258096035129373949284141128684839287464219719564413858072773728924394140498442470141075619982999659710602694320922510452447902878220279300142098233518299863007978468498186011483893201690038195068788393651290034973016226666971409968563121814285204040778504840248053083737513251305214309867254280853184782900938818031163678005753493999902824944266721516949237821231491554896864986523462801261572345222503326016717730488612350924679363853743801650929247298379195866516025561768913171164198022535137874021326382733434215419432619385377998088831015469536871183769480008948502852673912241932582852651900410730008488854249288366924690982992439708983642164766746808306087994231248917938562332105896942351543012509726870159158109908947379591064267292953049544829876149018179996749207224073448530015730296343790201839480814344701206852401268893405711513192708764525675094833943498477075703648788921705896946218057365751645783941225482014937781502450206101206216411691235586133961670223009706966167575574098177107839848653402203949840756475293565606293223865505099773994038823331623523112875083069160299469443250971762665865708517415091641291309639110732957414882981344115535711999117535261986620696059647936261677059689241385752484618518554927468693992479217431569193792463080486269279532620428882625533549751172491312654325426258785140974187498108441404714661833420515928548169848789695602785566235915247349278928056790931773603471713087261207615805466182756358322953587797637085209264200879491224382649836107254477071863369181569610125695814888986620714346371151985215480231579354362998478115262317937420350024235925273112873814483559504433654342873948599069700886881387387375967855919171604823654572992902112317024869634384089552786751481386385994823656673616620757992432724066924247341185289154395865145112453689297777125950412457609008218168092765997932296853298046390060135870943328962236867561311494736747400926947414052543837471177905299985515798081806084654904909686255961842012477818834002588828934878063271225125594293660908709077228128097482118114781629472946785199280389154449812744703643492097170719300478799420065565151478361534630434828177214034519023875394833463512048003340947103894333531940846004082999769738702132034299042627195706451587682131033619522439156286482316598966321592316001925011540129682637865081809664967534258103732543049430598503376766269782911358340115177828094895866877637524498006565784139683436905147051405636841779194158903932541527520662399889413372246569143861012121084393523727808333168313618656447265789589008773005869266458265111492926217312565802795526625291910384312744559201864198546846933375594578486650644849685399820496759270541543423503590781140838008396457332536825896104780578357393764465622630503202862794462640337085596364769106623316541833728338286457270275876263715620351154429724514374220578325099058587562840011098931840472944204495590451546745092456105625694271789283704267940396036559370414397708797384328699602851213194948160333095916905780416925956988310427335525335941719827384684970654227676899585682131100358629635858311142772888783549339252982905386936929868369610303551268025398792665974110269656544819921063527179218774862849352427834138549452739122842059781046169135840607727719105260177049786719561348213771229005900633001468862894083403639737968320472583923890524250074696192106062223893337438854893497118840900358964591930482723705327659750480870047897910191536683135012282751185727536366096794597226670539795140860698625834627969758402204180449846392961707417957861292442396803950737247907731578346945959242669150375935521708315308017048826561043819312094898308570967310768466821400094376645654681401146275223277584278383956987234293115431942737160491811610639613686898942839023452386991893482559980921888311972443367717299831935590791180172989584384455329035386384947801530793323238149587085573559564322272611944083034193794824926540135956384074359001668600298535571205533651680779014197438541329413823353350686620506972924113608634098296756109270626498270007138554941672375201001317061270362774061715617533063656966252349590995056210091156607659525416456212299343678274741091512401231092896265521496349495265149695934077888518302109836668690714180766933154080722569443282512277249522953254607001715020130948712948690975308693638570091672259879171582016705875777442028136871848736849958459785959725134635751906607835953549100364480523572295311424796887825737728818578563240954920502704196964967171040533705652279974500627601822054779074795185335606111411094580875452227633233445906842173819379716512067418175504071540378869745099753254653041141520566241579402092784523976740150546756167371266021884156703833896971539358019513375540105702016922325659800076433578292380175681052152117516679674135182961770065515160776451550736267323402823629668941781348458751229654565492364935366900178381869261854126654683554281486715091201967496792869938810130999441054942628330602255332510344878818585069271409338552780857128529583803172778686113783842883191011899255289175128896296912355260338393766308415591842028584369851990263972251059532165432080100197477727018253504632081961465946182336322284701388553420253564956327475197446986097202325245016120352826939453480423982895130553337154667239794647028213820913262201230180104581040019057659436695584397797375175153241481016335806720318120229500126918884311971441585044302466736104525390849758119589233647651685620005897739324858511975844182655890333925135976776567584632677381549955702584668907110758478007015594676764555998052599685103361870875240725833647138506496071319886021086632635131101818662021822900126412164132874020873671351709378875886579969184650781459750658914523247115158497494680717641489560532973550996042866715297689123270850106760599176665837121189459549290008804147701992113262582428641911196878750568522195146149775175832844565145639723364182671148030408406306283981369167663207765023073341485108120583860585267746405867866958528068611153456434310347622699355976874633888957172067670167315952906157798985133651778987020717582951153668708980954877417231274737669467914029882056821382990089350044238190030685444890557203337782403886237404014027509404703344376772400112100303312601890838476643726109380020062380913607572252920410495193424998956656934843491923577544107106631114792981407493099185586036387415350670390460575420953901259519944335133122178101474628050880824826850867729618925294901634100620926504567172444558050258465824183459171490864663590719139303210896447116046482255744074182091503694577218043410813047283243348512597096541878710224492245212870060400577671884182322652749320939088956812804791090228158102389296921308814941214970078634053094564576803244010010223205100272679669131884537117465279987016489675099361900248414164831013096020135560885823991803192418876438203589043164902749683420187887129651012805735775083854140741615650683614862246418640323735097694742686305240703588011328716880609726031560440298850347616503211264880841091717471603503769390536007347338105361958413593094025890923704700317877620757470829515176523610249567461693209699615553743269047280984895015256803859513209997069784298541385535530496453491263444596338587310063089954792781945268553696332753663538678517851113102033900490606947876646497956473934244322401080297741542539490816044241429611126869995130159910999677318896035616081024151642744420333820353761200436086867789511840066515977308659796236005600178170345764878657607109137748855833567970401188184747787474559567459504145600800297196708977213775504051854115127716881695993158482656230654063259418051496739789869179284229125372478138250720473387849664213545234900738603964128867923500911544198359857926056516242376523303557276673790531398902775766572692108245196939299670726561363279426686178499997635131667275476731054417530829523823409515664153789160433431337211804348714816549247604620110096535990764303770463922224562111052815860795608118623168411628145202083425312392960086462960093061126350721544263718809244712365425716038691125991188575523012927723242571538199894909904240630703669469632084871530555200425071170012659223527686451602257109944629014127047732272775552202311330193626009418355836887142524952780785269330546074587453698201879252242028343768278810679544755045392554893109653453259014555544001356996704590040963333903619640869287490337236752385020113144673748904730853615053036341835258634401539922040316948600651021003524602729988527396979396310746032994246317799948533236673526999234210673023561555657292168348750965713434600197380932392169488064045514405008938498221421109382748274685342333993660148590234657176831205806942255178159707006987095540366417254980447589841128453837699699526608453316396856171510920087768866391748074301181100636655017070705560850035556070773120925765885408509144898235021294972202975660500826390595102220631693547874462617399499379020964451282909507702379648847643013564803104390518684900319053468615936215737461555351108318532951617675092000476858428756882225881506483066365628957971203224371166269528841842936543467407294924154338228613203280401298489720388988792871678962344495402943936875783702683842361524117976374358659105997248290057120168075429077898012270192554391264061197491269795385449008669424766812679371299882118125868841496292108789071017710034231569846638595627846860876891964074550846852222068875372174119094251749361802538703832775399167149802562239292380469563922426992272341635605651388163288397442292327760586144360265886839955381773899205844249656535340343111536679386539955158426394700185482768464118780930198248894709110290073148482783555622304519824818571231980369959062895290479871608045394192249614753974168895449192867414169768832302200772316943683344127164378214742233657671004731927842590488746363554580191720907643284152206018323326563149822802403925743302776098109669481125241811563677001747710133752737763631844158628500109028665387639156350309853132502162514269198580901439764796313464649011710069611415052045637397533853809153730756412958882971102037450189986027178086678177601562433110238454963646909007503935003616862500765799729984575122611700522071169304679494791857623347858075245944357669818055368399075601141914516358465269506033826465372238452998566283464811057311133242343794388064309208598293219716031092027568279023729215682006203564434513761130815592492031573294041566230570711034517551752605917975185804645049859554742717345382902222618398520201138052776556514737283723626484519887501198908659468594826028059383276489452915364223373430624962615816361353081376506072973593785826836186442398405108632355759509599567251301538058773934805904890860836542643375208588527235343918332625961654578495753377392417615728042819411055706983777788944933176798154279101345995850159002665708781254631515813161913338287603065992331223332352202023990302932458649311855635858234677010384575355295907755784427851077960889360674852348439990854712811730006207700287293586844902354557297195789575094760585843889546453193785318904566518341852314071850407908603867717633254554511265898223565578608784971251861493668028512392932117785205206756269869699497274953893909007272531863546164035559632678510848296694278941028987718156558227892757969346793601592416517898178313472131510473051605049900617302264785745447822335044606344210069108772398497877507785474035041846681111916604637282904358740207648343261272950586605877373545596660636320335808832903886322800399042388704201032756561267614897728584789888460432329862014630824157203049975909467134218575009923865251258484500499281478957156028926212940802598064684280979351242934238364011418796101947062638135868861956443256496908879415678238794456890347754816338621173900404184926053890735510384881327342138146171918457738393804370155599804786838517539020586429471849544162737696317222165745461573380056126289304996733482572284625236060438444496213525979458975216211588394827881267631178673480639411791132645382016397249998016978430072376295370521717858144642873514248434889961107734701697464958928270905259471330561595728088725741355586831914768320349807176210625242065724999925623872906429712732936001862760169203094190396097610024146645741487615240293313194189700984378368220174262767157414758300819185776695215734992225880996028021245139784180619783560521095693152855747449182153432530168389017362413978312395827014216888440227799586665376145181723991555718636750366007859733533733058584618391344074965175505879961403838319654893356334341899258689704705420697472383240802410860085813123991078663229163166617346158469165979172056327100407387152806809415129589487395215708408429670085183723297698407322241018374861160873746146489569577488086701477472453043842388626575230315832523382257989559632572548114041089231744456780990393889064618184641678458081450683660173049108993948684208498238229203964593894634335797323857130747461564757908064803996079379759268555962908726814397592053815511433277103610496183980539745721730280893007120972038019243314549577019146118691419067306848764795458176864049026526569813428659032297711930530449284993102899214008170084882215106167381267500211840915552563729220733663732214118276400811465802277268546891622907065271696105657977744272797404417975561702777601877525058391467795813240955001786929132040087503660859671320606029938715181936752763539096778231550541729909766909081688276669485923111284153050935136567174340900760328294715371524122678222689334842958856283820133128124280050360617629297294360301078535202666824280863914080006276856294068084289019219620929827754326298364847772068891624887343062098305041579867805700464844263200739290514292086086590930497919183806768419272854381072398091715557729675631253815087749015594372411090582009768515034470414271846682907958259858120386000388481822751856846418951305532931531848256070437891343912107126634521495825198028674106320168059977416548212493096339045675213092458203379165172903918037831194867315469646409217885494775609093400236519141054880456207939162556408107228874075700166250122585915406686542702409592788504240009069703529909835741456946217691095244088989319276198183260009428197934211861970847009538172225938485639703023487738549833953503673562792676589224244671538053416897084659770754076851482152427092949837636942932216146851432139706969896714828746893173020609939301846811344463596415545659625687146595765361035836044698340403977723762421206538567984807281487190666298509284845417107050755204990491833451163146587834815460695147281484959159210965903507367878752411511558873433621215448487198236952443094351230188325154103046359040418899849109350387076274925364715675073511082655535142611600735199245115335262957982289386719979824238674233896399648997177649613507928254027282532913058603350726553788724403859072644090474298159214618789666779037198880516890838338457370967437985246138450364819448383355070039967270377186181688274450691656489206993808910457747182529241442794472246218964989512503141113696709379232392261899104963123063579960270010900703442595296564383150510412988019475915769130247537015166127073635201872363546701263177919745846424235247258971370266536403151216571051916733871024507603836678199962123931300509083013267697428307294342807183140354837084276360185793920274658319802010583129899555339567730938868108290682894442659850350540987736757334005950360898581457459853050897343437748029725700313083633077611600484122319090186856700788917924914060484067904632126864581244326540366872141894262435084780827323172692815660818584792889693797893003045680816828667830712647341442269927394373773548950922095785642510713543758508919164519347289166952805533280367004253852380354103953284953586473871991352051248201388444224378528942804225038283487768303881521712451234182248619523179019703465744738139582576577416360235047374064434488636483102322101728265964485896304548575424910910548572057100607389339837851584855057388486368395020008869140631956826670373945779776068968524190016278896576354727169610047150593503702423609226438410572781452221195202794108234075266422371870946298318903475652058384253330342882021959163194526697135989818497561357442062066166816557441666763326632654070378081138932394306163859802448750068876606892822413404037511116916599481982736739899911317312845047297131674907812741618222289699352204109644962971226372461749985169315505946881847629705752200422504017804016877116518017406969197346466203585676656657926020197016965939232688660534534813371174961026249812869234269347807853922470001294838670833114924262133835115504036510367511085410972016065345440536270749842400873109024695820533490620150951844113654638037662242793659538522421892966303286739903452949739110747299103958150418789909844302695796534763132694523978302520987201979582968200056538460755541769491136002116799357048356979077382281802346877288958074212732659896446735701625619688399717302109405459995426538961303072593063923731389240383818458452305625279105980337941494403483710932773645590640298084208487463486564903868719208525094196995429275912720415032329782729966952431136150188286893972439500398659721302216799589684743378797482569031467787005637803130359926334005952648681092551462202029100289747912708660856748049211990392541920886861506645147316190895102868201665851981330076462688635314431311476372379765000682926871678894746569159959526790489114321461456027719396324456957110460938280256119481274959609602550791741803990680145088791658626108870241864987851769207954373855257075830974512116723351007151982094436045412785154177680204768130202651373798204584332184922257469798983191468458239155525963300371050539908572928160347770081349501798475787501174133388482997879172129372985879829709655368953902352204389083405919531206207675653926715526879710239800262512230896855787337000745776842868456092035439864852255747729652958589465994953587937109527808940154349025021424561550920226993826525968098736661482774351085733088422783688963309621822027828519811885217648210511858182118957733893541850200251094122466257362003779449912621837976694398183022597563222945282807673503229760637676070010253882358432448315291665973075419349481282416317649623785292405575858576913681809797358719460496419048466026686597075308251463794175178100648718258370240118377592120456844032859749012272790999621891348535357029538776055218427219267839258370946320745788760698017681619526284203007896961007434641343684368335982230109963068056569603820097884478531494788787062115692448474347241567569524590264324079821564252035563045219423447022336244536936949339465319239632301449835366989009373503297722673190484443118770667122826646064500305237329016258914488450614760832233211917934231564489443138514195865022699339294786530994952951754653522589630973850302568369848248089761747388860976378871520617083813877625273182288507590813150666908363253135571830004204297210247974574714644036234021672463655565842256501677163008317351651538293275363308837249089054981464313441174068572467463209444217369197673322396739699805310637891410052177723856125858073829359360443287550106885326538380335479840769553212220588994630249336014927215859388640386417255377557509831825954873673845851106467832645119080466570144847299774055063794769815770130455373669764711292767588283899878134755549052459878450519697819923081304320444618366788409983310125853670921491807035324696103452541516036258221440671372378671424912155767917607650709818508258844508839210458278844039742919512185074941481953183376213335492968592445089488307369520381649660543801689297079622654221857657541660118127488072718564071989398979460618094959646780896884689241212268200001964033036742256238342231809358986020699618262224372013314795925324663040739648339114074956244140592932441415743477771721462554345095706629401244709087973187324420603993929353268284656656657856376172710408432564820425795426109762352404136530818814457334577991368771607785915324924852692589808789795880463304437300071375440227091458862548593489491229823840857581270721217052801109820362429837333158084680715751315485855268289316304768565916666240672656175719233381878753744534101086562573886871968553942813942817031688087119733534772957521402977308176992049968751174178872982893677335939444850658496904426178367003335058989237778379703368725916562897942465647581932040851005485402634113659929572372385479690613430701284608755537605597934743223593713811992466758690004614604026205274988671261643105702005597602444553555061230409370079399595010237671461045872191232503688915662400737354668593221224590349253521817973119438795838048197942297500060145685234495104004849146606421273903900018834369113660277423517251909891087758301545379676530180846689981368909566492475477496544163436401778658357810318495752006614185455699629884907024843963743422811163564865689561432785579180476615294024649915383559251202515128963133430464405325544510479251102941500895124004254398099210957751243520916409483435634286983561545945874655869989073527878424611706105484795878329672725218899280389770949022637159156568473652661975893624862157249955783248145598391489780026967995804450521576227572446053509909279114409540564727962433575393405749503460952965792296092957972510796998102742443344918446371738470763343216749151947555898103282038707576568101029273055772984868757792410125673737683033069402810652512254494636930197820788844650846765968031235237759941763794853716193453986057918153113739747790432100590898642956611872399305902241846687752548026674732233270167144213641665449093164004468268199519581156203406561001531378232393489363718156538191600039011666774474870085667980188784759058088499403995689515987054976189399161015771294633262498032859244234157617559714394341626953921142217184806940131696864887725247949609955555429330006698617958243451450047093299403361229788524317505889419801226310873814005753585569018567795494768814329743700039615662324719413650353616372193989347528560327727952318678195362379371428758547570221962748791855199772861518558327991009804098801023005500458356810883704786372268014841412269756296487743341239240272936161688702281933474391694316239548029045980384177016069325854692618689649373190545957643170243284029647012084665707302121166543434094027082763669713516427666384715791319100671186452517986809234520740286158132074516191918636123668875052351996811173911504657762316439846609389000080736887597476615044571738214570558585779842151323584252673853356522413022090635165405206771751004840452990915826103701055719180491380082900158726879688245435816313363068933341249181242181311115338659657501658394438975361458603730797859225165284273480099503973121173977894807256540461690794631433557948504735442610794697796061399061859534591515632346659189250390497497594017174296245924267800694265793398747740087310088610564176765627861130440204057636242891532148341243380353460098765680955609873951506725901834671125786212597700476011817273379196488769745168635559833888072135243094871845555478801446030623251442171370245071016020172656335074741915229674860771888514304746335566354879851393766377941833101561282170954267044978416284407272049329119297622706319051906405820525000529403355770627922993545411929672115765493591035389058007270241191530989590541774325312957344674795175785002358569286951381220920372421198098807239395988999438481171779626141069048679778214012091959821327554864625754291615050771067885766445090551647837600196762560931434642327458866059114620972958148345886693897843412266108637066970331190964482255979242968943605090813234579816186030932936478026101207225990654150494256057671159319475872625925070397784466040706776423869937246226940704925010593459101254996957980258536672172503027365725557697387427110575715098417816792869610107729442717368580222957053762460434052412895696147695959183423391352515402089884301317480396504153946688930154411055650216737623044136233990429647565927417571840846637365223952118747034523182664929898984031277674219799364251203228059859082716943510007991630296186869335219925184226016809151705057634615311906424705939306109704529735955438560559384528822129674601122290059494958081501447344229512573692966424735411390699553058502087882340602174955409629818994241144907628038264197226787837541962298184295494205683381216401835804721148149699980179294832108973124476141649045897022478029157004627625057584686814036473070686646048755194033495906824477968480637446948056355435788158433600362251942897052058164651260095506945763898190024168178974705044232116189028636126192444395903592275636612788513921607414407520224363843963604850109758355880126786477394809729700888660467415171992013111994530720391001355006554354336439230555295018020386688975163125447868957556123414699818474469666930450389698625646298616954487018441145723496371957364960531374668925982256375944285661352402273364770919759887061732198893024408790670309046739032323574520004378612188176062386769849474326648669508975425798126091087198862177859633677225695853831945351236377525238732125635067311599029083648581727765829354324092943508549693178328725596197498508870582723300277225998922688591574331557264530957120401526649847160646553764523053752050509684825196263119738529841887302390279293336185734030540511332279588143124524595596357488520948560453298192895901563888429927306810633252352215324632261753000365759588176964540212970504458152791027932019024919910196853064088407871823419011424193241935169264678761289094340019022433178233364311878261535199907848036092651682873492546946382169921215438275635836162221722025405135156204875808562266908868417141717162317547828672801636657681606993337243807190129400043080739935032827494726119504079474011971642095804682116032846753905359775554500430827409617907150925372240926888917582903258308777019147049138713011440032230595250052472945490368642684300349067688922635412209512845071408140259219513402200887212818353399289419297433230801183970338918247603737542986856207356932847023734064318646748902104902488426560821999437201540568291755653199511852483669515683289076272795629014068318399274302667579520431821416149387578094004181248198573224041684214216666181408246724081718512455018045002572962505828248804739781106320411405184097835002456954569208343603834889886818809668532583168454442656572522219777790512015881926228983028298994612544206712670728407591926450790784472202143272363032112488636669725545837823049938132373121033501758343959212936614540930807155369785505030150520931009332519437536343157536889193613014868732918120414154870868300212484324224923415412833359835505429991558792694641547687381602461419468879701276841505622751714061613616462049577587033879235705407496162595458123913258556078480029449874713284739911592782298039215194010927456447101042417327939259577800249607712289112873208435031517631190763310063571325732241561372680826207200521288699280977864965508073591421704617346450080303943064733459122864443299478002894671049973791107252275749051108441154646680521728499775005088523190988528708426003674550451555376967700888308658273049913784603348390499144829780317036462776715715105690430676472142833688904256217195252556233597508406655131632467075290714310332544370017904923497961423193750290429653412544248784589869907276481349779689357521178511410775398404804612728266684588686921332847962876206496590847452247929212790371600161170694889202572656529897114752127561273756117612326493671246933711180397555452814959359620806459272407717058261024316519410310576291079774939679505408322321770565497478843056530346604159387911804125125163601744999446043405354345687524129628743420994033104541088569016960865789418701468900453421014506036818044852843100989396120145502254249707269187874082277730719686412947618737453071772627640462367238084255003605977059366774864340565807373360368183625461291701414161155589586153323301987319383900876086239382899434829277362463450889553634943419287917689405649342160605700383119840188373994607409547269118688864722802027521271826547527219853782389243886311033771355299205641051840185466023103889976110861951944531405205665618768936805362774458309438119251592368798001178913518632250501455291636061513871354300112938393537552337774076905128017879045959175365944186241308445869838009348432283929461239630069911513250397243486071916290335753254951821917911316879292603455092536629960663762392555833335675901300087000634149604447860777924016562173178267610381658741798553741097823543902806526822724356890291046136911596028504389884006537158702103575508288093626857908324509912957837419806382562982023305630591962103308728545585561971980833640361694787454369759295657313032738179600478129514979945038301960065221807504367341003582389031408316442882537326210569018935546170041222613652289997694172178727397110327575898817856510718480795728136307947293597026469987725533409536741181205240906466737533573674417229693031918610004830695016783090475739307770076710237447451443795666457952613623138628045808226082628920619279618900166804315057525051138052670494433747797413785113664953183246890152901029708718651312415375807450166395951191354206403779673698555765327146772890555492467687269183638307537191638731841996948606676209691746804996376249955476861954608976511399334987490881738218784733113936928876931730103545111372204297661506691879764455354072155886251556667990318098621287899500467192493212866642808374677951466342210674573326690732363492191433314896904780800336333831823967798510680963916217257649894865307912564190939926584361611370444974788335669766196667948799990162606473094621423564250945565864182623392095240619552766245341101881909641029815050461714095842831841875302370906442644497068436343551931610325423331368208966355181002581936955182838491059412432593757192762134540392659354359423898069780216731575930315427840947839331123155328517918341534463743908838563772233886642803204690427291228082301132633883998884380658330798401254753382691383358620619142720644245603292809203239116026290227815312559193087672155610134257547408878202135300284553209564636096325996636943140438939568609132609024863103874862249753271630949946912356906304791090233851915570851272596126720042240597583307198083382697288508764153063275816300773557028495285012028830066917600504594185402996947501671952846158083963000655465988608692445764919170673566110315572259829074263263162958372386070375697393527335336970001908847878990362665154873818524226842336246255813135434309461631171731054587264522281871113777901718426056036573235709213848227213990820375984335567029357723653850391351757288356956526250133132945803071292323419164240078625540818341299549043466713158250841576983444919939339983389569931896624322037484015372690071429062924644496975055709373985692055537617249179564684182860563627552140555405363790844399963954645667262955104547955510154997593858334888099008287827710475609616314449068624806082306057506490401227554684635509238549917476655441951866595720396590393230089506311006642010159175443278369260964216330892293900926268256723475118453990858791413572334007387484380116313310158462092383808675176002382169671117950012426684224125443455489833253155987515684976222587359789168791642587744064009068309149319519816799618801454482921596048594433390275023827143532893123748644815635260339183786741317937430086338299683635488969157489211045192599915496759447366855770789961128195365109378493538303054489671297762629719571993817517574166368337591567798377516979636924144705521522557109609574175853882424109475408353770670785074480010631435513993048848510807562038102499334476542365165774419441539244174780025918154429630096496711523692522433870526042475848067066386054867064367024630226907885396940549289361878528430921432840957095673389684065906915527239375288990056247843519355193046946492436705880907210186178779563212653303300415262541639955505104252385771306945990183296204722903756944002751836441316458681261111879832861580676996475553726937850897787708686710991268306897197840521589222535911581328882255432833039294687274752761250206795791592566486726650757596565909191945272256470328823260703656981223221465871437016857052670999185390626335142138048748937810235508107852780069859564666070374399215107130247981522835466586747778375366835640231847075400782583675511971352563405439339550607833130824594184274061908938453659922169304839568248051128715853356894384472943157907375900814273091762769500599667796173115088031311152547055345684633428103954600052302107687269954472240735467348523084314622217200472425159573948824478981464059175349379421357311752744079427735475594354670238329863934810009405011418421676945983184528615870174063805517076834569178991353316337209327133996848565561676981311727821818104146797435904497008348411008091797690602566493491166707112714786269095121650217567805501989759190406761419755920459707387417170475244003127749314009765775235547222325199610738970325269266039666587618147381439152580290824617695244442281866835049500192775265936962719467434769966312180613212787918960435322357186181383719244489537676761883262751283227143516042838740131312536315989887600393975140983027225260831867662454143331038375848585066873992527549655223089767507306173125639780183599698158037650771729202575882282086919029384879199747880178026617934433456074904639471253661357391896620031157048087949466669922772256740675124517020013373764320937475781240452322562960012538152348401105863066263524572431065423930449796920185105897314409723532381869430720800298022864600102473083848796074680460964390944632553485694095662330096599124906171201041222366123038667657909655536308915364403226549599852597749945175662495435559855211822005098819164098472114135379796829196288373044294541139023457198105363118517772907432699712003854171610055892350973519975953959711519790765751008336309467711652165660888973476316828617138265013865485385046893688537328112850277328781931703744915496702233092510025446169412350921587197570335618741326949772333200714082239969247478471450288030740922243116176498505144491474717948003854947258078360459324485892667986530912633020794290955449933418533195193873061762147559500483862151057822136061794489778570534662432497621024693500848288549052102833127536219799688389235049206443634672867905109529646183125800732013228989351047968481214321223179523942965977866857140386700793411069770021158392438960488596218941164313774063457851778593697719400858253862576498732842545119682363461459806935409103589674829629820288521371424673644608354531678481027886986836014403096818463621268123219584390193083102904988873409370168145248220419676668401087291747611363426683136326349750644569362672671642564972767876699885316133542350485470959399248753621198399834128332048429131582361642518296006289273848202252073574333784488586295990212692710532420055031909296741023911183848746842783258885331484363622533722472272636313898894966882461838145414677437062426913435551845047509602536234012610147788944103486978298564929318430470896967039336294916191625474157713015884540718823767097666534604984058705902764016276782884309627242402430870403017403086227249511830428622843206084514627064362529531056411352466379636347947029003542852183288353126714075149885836605623440805481300289000310872245952557817767273109221159570049960298065293662042462690537847009945865324516738536892848679383584985819358584130924953165089603847002927897978424372690302041564428886772525917889524156817688190859821225591104242752303947145644723249663129317431971759211748864874202551573095881917759171229911081714668426901382436027205610120942513407589376582625137846196015434167106217016540604146912507108934744187043622181023471415379491278641484851659921560985030526835138367000105607978674217018476553045418288517480784438080896462439035672700691082906040133080467548417277493735109873137505902446204751444753569209076417782065147574317351551160376061247776977213043274226273255533056377489438958672527532622663279939986673686197186254024083390924370722318743842600103642919384444940469488027214440489873518464876888796498523911773866644307315644044914596202209439410833203021645380079313617993035527754011430707870225281228757107084711149609446072553158017250076237564938517805714186236679728168431504881498468669553997649013196316548400342197253527920742960331539203680752298532219232393554522036953713625303488105225974268231779504583258376737823886136796087752566295923835173592704913440513044088569051478222734845585860467562205398581169487898853191966587131512621393111200435273446758681279476143272576179671133848585904441916064667185945395047075722735275895675678346129256777311864864969790158051352596830225013787943008604403345302405891096748816342269374588031520005143125340674626419954751715938999921605543991470148204723775802784912492640019765384476118543269815589437942701360918995942755387068677681706965837789615383233664768960636742753583872771253349072920151430286575902439716550200555517931676513803951510461357128983357630066248699684556567985362364692497118471735153242526360455495232160527299186828296433460323611421394179132400984191157130475131295743288390082548011307541395983864410293204592438529570073025274813137254398186265504976632755583741958896901027662169087748229430972067165151538901978048701337854651826534322956111770509306242134332670246994926413974537488578579204247859228164701406375491691451344095364355991137206611140169512333091899174810304606321802522844648137174776042804244507351887038997829702569737555768249424421150194792611223528551635973353457916218610125738372082301743839987040558821909746658140424948228279434062654334118106724231200535843565239454033646931528745227036802023709468799458818580729117607018674149528415095314881497820384818547173941340602827017310757304772663111813684031579465281174991120953358134471882719907187238640397659789816225099448528073368103117039785472834344969913602143664958868589298761963618618753144501592505899696028224322879100248142308496377950502653928970475224408323939915822325672007731579608086375650255503235481417484537947778166066524443128892600057021419960658438822762411876463636298485297554862270560469796929457650137228471967745440324866075324691663670447408560812546248184735361459353933584947830602387015008710792179435135932382238558546417512561054586235137261494132638939866014972989865753892128084994572846239120062977631642524060878666829246234015297162476249840933150002196475638629033594708046426170847215712497082579516481283064108769231290150309203399009189357655019921566434420516191070659280498687250213662879061789166730777286312631923536482639616155923636818319725468496046101523205808517063993311157028044075275021394042096514945346524962227056114588733233171627056054184594506066174183117439150707646580831946949327222244377993473084072648386559824963197785387764616991827820012297565220500573159383929265181825584742446383813243460746773199052072137132161601855149146874306966888785218797881525784562611392758278076950129645572105404276301782305903193975321883288631177585962341188489694806082205254155326866616673763879914700770210553644986846474784475759547444860737211601786045937078500149750645597125778043842164083253695291331856500546176402030740357791540972444009598006527423757972088290669163208662906856050738766198399905302638804427341496790535683386606698031084931614527186058382326384447579232668036302212806025455534347492126186360867894524946237520135106949605711160799478568753317249630756635787580298427508302654322643722501465168991657304499754508341066267252446293045841539285653320737159672777029107424868958415078473388551816381710431374207300451193661488412193630610122263449693085335083764779691966240748175256427759051550856664598580807180603193842629555914177292815270272172045094097930849454779438968273850997913440410454280805192212070520936569259831991095179930896351660594160456843996109503929638432010142971994019678311272144619346990976376944867692340064838249720847042310718841496641066321003197301076117744061655573699451661761630966023078516809769663215285307574150206190966744023058410368199232709139366621921625048988266674000247386925509928709768803592730234246212666888944056307976016559056666737293782802244619894647519370716304008714846242464144189081900073137227472387111108023128775514624621727985694792257194052732378462327010549764308489210989155609923372502175873312657193191601981597434720169391356237688030859175488756727401268908435525205659649604744371983796588831554612562996658858760953122867002158086422378622412126494991616584148278847214863222489885680958197640027163391328459118490949851182716914564509177206603178440531726162630978841335378860757972220585229311013832109735995311129663282518174293524968301593115867402513944725075860162078708278257503544486875084616449401121827169843414423030720245446724881095810702325244835596207256669652213897303912809498025914001146969136820783343168743163354565005227131753094023056905887953391530569603261892888015558901854679662962541762384672242811778575183670292639912522785520946480215306475472871674290443733472575927373494406756907802911995597551695862008080478613923112613487404711712255036890209885886654099014728000878436621758147509973224613653309392237544423230590183149193499715521258690782661620158239450414245299043761056521664633346460482858938271307112256077368716793879654743984442449469251129258127530163119825661272461483727392321395573889305821264493470840143559697320471116878316847944728308435710379769651705789141439000173581567476092305968416876627452631863757136403853760166180093155726958261338888638720314758247473912349349321419448958496672204340969344228582811836705944057934196510043178229852606054363580957807385257565643017475129990910533177109300673746091532039978673904014949976113345848136865661457662449515788635936338017449309010901830182766066672461062850889082742159119911671028668712611464748187729522466180037997917606942994422855582614879437733164754257755711144779009172661749143400500950914145220739570573986838739205349643428855208970365379616489095869050323662068223266410662468023108702314072639487599140381854053103186720705098283117361597043234917504716657984838478724539887959221565757450546864002126828143686273185123798224981775096393835282060522545984230108137988962584766056063506232671748056453210154730419164215980730584769359101849620621662688454678148266269024122138096756782151388649109393190318296281446898385590179728700089140743871810100936182842529366639058079818472835955295434640135355742258983185838572744377673067349316945721614188726382855146019235442437502927647732093177872259368432264650430315446341814667643650127498192213296399888119002567583527781190769745431679593141281709789615382849224101138579477730572327325673784565626427834833866495294889256034187203120377659090424020591944754163106673032686255373298744516365977544953569956410123203735130674790960601914241542822145299185633079551823892354624249821203274326057607228710842240219072015864437618585122856676839688654409943773690159719008095174737359367126672467999258468145378927935659584534615214538745494621421406512544227768726335697772826307882781878556186353440493734498235649586349420855150610957508874261795475172051297102304132594318832901263367843523708037691238332606566846559034491920346611276436598597344786893217044845037606776971737889359908579335757108116612190102359250702260316947962098198022283660229342193169872337279398771127794690841723075307325722568884280530354780547893232636317656102623515852270127900079465541065253452683246573908424116338626115859715804489627924887009738727638826823606890352193130373465615353052097389723219853626863209360968400896085007547918623117913182768891800742458363983874133584385683988000430147456447798196406243847149883948774553201259715148429765584336645276048933490832275225911856475131957798577459327231400072261004521405637892038635806769958366883685036678337940809921693530492869965328043806732355257481017256016695713699627198526918965846053509629538236162531333128611359938203289868099817598189752492751837841966494628136452442791828654935743721885501065601050193564677397740876195293825985669625278549766041098756164533797838637932429540832892347492129508549204619323151075027752492992937337543573508555125804098845147396462832347264531161757445994058406733973379498532206108725644673726120744565083489663026341656821286759585386206679663122722776290397501040502140029693052401988543741449584189962633497678004302831841659736585815786731598817191561295519222040010606238517608865433752804229240576647093049444082902641831857074146678459125059602715064764891983856599125631550645589221117258080231466872386500304624819237656286727056353267054112843544902414916881641077459910281929628627914059052431589799431433365563439756416418802063589155861335286353207746123535078479272653456461113123419929555408133358605877002416102388926540541745671114065351162589921174871108877153744512593052281506278654062364769455426498317455102049179723105119772862498823225353337911540400928965076891891139029900702575040782759428325902202835305207435183101152657788143339872941845432558419826651356846903087198076248002155629781321680247921729723041898525617470541677346098153829941426555235877556431243430145888083344934752538374019043253943450500384806220486875123433969264583397187275402585841774954108767695900022163621822508863762795564775951159556341351533785276120280070729240003526310647181957968549273273341977341736464519434456153558256188036810099047273617651449459989798254497222842254947277015316995105345315193026076866183674547552791088160578804976184900477279730039562022987746613526561606887200799085180182247993285400914684451747568735918585555144919718032262261346490403737041462545950536631740105707773267676441705496503890426492898034312480905299922051007245558149294649812167145297326675280402728365141614182312148589814487326180641958123371198793357757774580872243597790613644591364918690408553013567022047587030901839040263136806520527124763996014061054444215170538463200923291401635928622939560221997792526793613506910755286233852443882006081701375040281859295969246240576425845916388630743801753765451803685197922644961086022896242001276481146540204251692046938261546059962328419446374022754156131079668671782440915149547274388750382715150727936665936445747235179423785792282204356738660840025299541469126530163935986165956477519245729902674030733413270230624158591372019567226315239888017555569270943139843483553538105296219193409513578720167274511000057414948881476969486518391465373518376413954766382651272117493167592407532630159600732554788791086138084818350688682504094913664163058934841903605932749532718183665218992036991042826338055268529700529577696276859366166124573619935689759388566958644697937493071175696656785438893873633628209967392131919596651799424515094655806766580208069106305852610525889554016657451575797397724841775833696131081087355545247920239997889581066900443637640122141368566247638169862480876915028819873792666226355892543277098161921902533053908375725787528661222753406828106632010149826387652085945444266845013819185575774466082368891581689145188412515721475591511370652315606602079908261247677000365106776396364595763929572358016294146948233014727051332722312101634474598891545752581624755305393566955963255041645124347521968496410084989906306273336746822542715668913072089634376125871396168513160526895096820677913756132368769363223609668532962320159770404446345046010104180140515102381721794645883271124372445463159305710486142269700117853196186501619565804112144321074374699604819493951439659094185892676086417737501443944623937127859802507339010514080990719640984005334920242820326765759781930525228286890705273241798882858696046401798276929598940779329758330961720123538296097498745820711958025563788802306917449782722342730667720623835191536667125677955801512246371598119697404105389932142346711511319759128210750890288576634813084071140385526853312061817572350301477333773122884159232413429015546780927990282743830622525357455224758905965366955677797819633098940430913737514618422180421536357907754207671170055165477541732535015476948344703392941354455790947302975710249462214627430904073133560457291831027643543150730363778096996091021951133019631730889678332079758174435026601058446516079132757602732568888321689676321151134675881938754994234319690604843140083321988959695886231959916522735667771276470390290391814068450653694972764758925084025885318754811040022200839008018366454149327213746754868206738782738214642934726384314957196858268020840377653040501360212960851713343633900687868210558986875531297545044055152638431245632403849027398381221779297482558188069048447054987714453997396286050827209773456342396205684452042054552294074242383881315335790564594746781933694243030640915354992506604093305600940105100557152761181866313632848339470792435436175165275516924456047391317354219523803565481532306148913377198876217552903497654856428892573627276313274210993522029421602764845406312451099509793089889806733885563928508400317133391519742662473442808443255411692828810836740537433385353652432869114716772273808323067751235697950127855120687303493493992284181626297695900419903710750536826372194392083998831439707254656982169298971075651119380697094962807772830432605681990489164735796299038295828970779366842578280156095737398298979680297986390856227011406474921966370948814607234767027748532593780734791256626616123289650171992164223233767619802937331754702308429825039413222503199017469151284435237583263166169801956174769070766704914039463826857910663450828744524851703376912945890154232381069511247613056156358689521745588417714751796447077551220388934390974236198063111481666940654275823888250532246784096695442503407003203214296787183103576674396267148848626948434873886126411497578143794807471739653369753661062501347309726172513709736230814078989567590477669551164612452195720522734586119009702362700827674800354999058231756034088233849500782169094381684337321999809423859708798369397205904176944034450338741933817022078201829313639806220514356068359059131067679366802973527259983007669270655464260176703355339692928925750485836485001014742036403325682972308751917385981175663935030172797974591638992137341513228410093095929669827006592999992695394766367308895305917592704339307777027894690765335695810774583768924735532546803159986196358157301666036643836076388270269165460804879397622547072162705709523696400685767989558208542238576744230445403915091761675137564918674605286865896547676510603246866575233092439045458460111151035260871908995489496258936357043191379644608714106080728304419832001756266092329264117849862501525430424842774264183578974287368429189436530699438954820618011185657093957381324843899622251226676888241933121379277330528721106417664114916104683728265881995306112871217509995519910011739055854974482502557148609291428205803081528844413238380152743238937128784209082050543277978570492490950827951049852467061164830078596478920917720120693638006923784152626432686765261071664546943215348999308369851909064470243786183776598467998194993583422633288636151780725293565182306607340550923743559316321107577559670963482443670529938213490501299751044908414215878205467649182805379381006764753397720099125967333433024016605574146078526842975811888482901209971515424528911369928560571052920167350281319153474481827942872826404578400833130865087197340183599348726293118585434121337630064754698800255501403662294186979510593694170071905152068218381204724345721119709255367259959243727334661043993687921318336009250129545490524979153803312290875154397228590511093481767375276873933690696206343165972656861643799399105298147824738830359819502107547712823274252195341971662256657737164884017985666062459716174086197924447668477141129183067552743636969036309611738212174481386559883759357415660629951643293756368190499221925759703429195092096059894530022419295602118957962247109887088316003237685252143719307801882959343868547355503257473754520011873396468633711363425530194469395438830501553051050797020734449055878582183840902091701357533018028421434345495091515273227133726800807991653215074941098529219445792710487726459506095511236893960486673950363228734492325344151179909114133256340602509590427234032333127322170278168638577994510913806591555189199849065438779262830750195429914865375161387866777886649287136949851309876590765390848733075254673148884505860905093518588883935522023800599013033419280941181761466965839024376886408721743180556304806954774052138722188039076743883306842092355291949130792498984190208175920363972045106998013137666710671220707630582367276947202038408851620986389983212456055780586263126529862112966587156794856999545750223255943235884662677995376575784961370670397188703635757796735009832117667638672693679670753544403944380835611468935533160274155436750348383030460102208594575606969980636271851019816848788361405536165374588121816360950782354372371898158938043104112425175339766115809411467831517974583266165159670578028649635330151393604437203455826430203581191053266281191111785674503934095812134088750935736368414426614856634012417976159138937165739865247619233480947579637701789370360515413218220615541041591762010245757319206008935140857981295755744029361830943037986115777482716706422549242095371033022250254263150087034544752715840755113532104334433964072825844515880760577493251320933559677498263624615319293641413400858786000642336032394365128682127527848229123330706145093244410123191721352083826213398241562507080114288413778787524618340311252471901750952938119459564625363332008159450419407850559113799246428822811475072714666266586271036218274305060099601290393566294879711466905636241597929299343407879831945163434598755338408011402994444095628611078500929485415940389854152544385316241837296499393687259486063327385661268407781600419791296526144983801325933014450725665639417203438074911783395445134068461730769355985680238694048845252563238678470158491831737716153873400113992269597516857309671422710327686544982214563529641697978580127066901462198752707933262156117505665927804831546979697701383789122823705310929577277488729603535426989528810106333923941727511371145319371042448005339919512919293398466327290051708380362081196796114660586428958624916950961250437651171544593752649111847141827165478861480622076025690342987844310578899541410601398326511287152793861183050058868258639402422000093452472486054498343174220059852485431295479349147139230351338502975313766612416763140927100307877560839939002068966877742424928318719217233769838404291509775112452319974063080802077649669378432526433678383692981070453004126784933015125213993015160378598129406372339862120301644662029752551255174009730423380962739102801819089584993559320528456041000117284828254610244177269092473437359078041286391865933731246655138808238891515010476967004731066585297752642523250637574122000565708306203332052021218515329987662231597811005600656643979095673369707484526265102024683759360780874677689151794448201898098772514408962335762002148100600695278918327618885050225077482495475899435582717850179199971656914903756643703676666888433261542085465031697748941104109213078560001749705378728395548535171965616567997832897799466886349011040248067417256360383844517944941048011530445495698242653226291950419362798730621263309127255820212736542197594539330595862509216937705958023364292435787535519414324076348340023327126371027784777824936599459224096964523834802585017906911131945992187125627779806855838111323868332494482478342652663675895681123614608529539391965049173721243806900992499454055221817137580108391117731977076852409193070394346671073601638353999469716287776602462822104932882118863218263469565733358851476541483612266187758085433314492240175642169390403122829206374507055403180137036615669885032352946280236191623767478191779589608313861459621551566991194865421000997938409027937377583644364182361753998518128230789384942504523521686127793768503749666807123255988520171202112552178673545928755417691733282354834332781102294872070962134881709639686376258840077399582727101144415983652581300813993165067645492414619067911170406855126743870791171059621302275263149064039234386315843531083814547654125065732965098777785783626092505143397467557848108777829553127734121922769992695597805270963021548532817618787032925684889506646590997646685267144739364732966931206238709605550118570608127069632241433859512283056369721157516955078698183882882338132133266668823964189468509311397271874961865123349718888655307424752760241527025630240499422417920283650097547564749893334319471852607322830123491601921625276828572698947544580822503460502796132065735017797221617821272716214410285879671958444197780131758588321709342035541102179695229515437057550589316179520146794182958076461469009837179556415475501353859788894208209578680556988678069313468914018235651655644356289267949576658239210145764624789347617265299407366917761318256614063848434526273385863754257735795407779789054084282305491918294856541739864969060469507921693658558649246070883791618229021985535895496988128086299507692808418185611237014131082684752949993812387323204466626864296886881792066146363490829694905021058954451076805632381035187941592068283990377345363301513504392348551462911580848859290695463730073785023269632972891435354040351048325053638631681504420222870980886702687010164258009099880665535017842712412171410158350316439256694706226908310210219043792456022433777799305379158656251010298461131754255697389977467394145753817683072845842787906721197849623797697891699566366547292329251634608131638499795802215588168353813265809847599966964247534467023410538255081931056264857149514218482985190180009198375250281104300072001502750656009660862369683910833827788224371972896858123092512325215699521845617972129915144766703075027643665116750340679129429134351802655550760100879306176672420137988016047469649370169724116234646453926726712794096407053454905117970395555486556316075403123674988373859137630599048257048665865161209305850124715731148986734598286968527042335306688582453169095059080794991918993072039941920748018960997943906127677178903662981350534023666792994804990815300258069675951630347122819722504800495577278859497324837325610713193203215953291821885038244333482384346475093289213946432007953556946992858391489673097339088541340587308636609611474726353423971449273312725328962830103397790398134287668772941060210495365603186158922562335884076966896491804752958021536348939075439527876662640186640597284036682392968805973650052177263788928498909514306158907279588070303038804696723602048043917244402037024006334114655088003924008719004640580333409047250228047053042234288624039985568921384321297495911039057825188190723166975307147121604515561053427883363117231186382038408571734238944638000498100901875926069488897622515066233897097143705091244910643462252290879560492495577774838945814814139658265092630421002843140263071699192342265547921957550443555637972879144047276296136831859532564070158755070445046684905833086421355277710980202026465828918230946158162675692178424257982518255291694725826147901455599102518586657561844750535394295566205375716617261564654591014625373771423397120498625233234282657562265686517255041144537987460027313762018673509182690595659163842069161744784979027907531073361929096923233540789070338259965935751031896859880706246782205719226695984212769812428903741708042156469532161914376791452664391696436812651385618537026185637673001366213156796981165079876968386877621849739239587540746496911611119337547697417220812717293122094522987172947719595869676714314460904255160885666524177763284331156742427944961500275828943392614706071229791375788883152310987634360335896799626488682115128217634421501309624074331094987118712025877030762612150727729055242115356668501058392737193117356163055544529169397579085737194799310696445058854557930186283452974108901106603142878303548565210661303281173827920627876832034027751705957490675022109289892921356253991080329665056949345932668257873287182138878106364565396413478932488942628149205498893539926491301664758201564478597153665177263605693946634279193155095756716947463060456398721927097042963294334467137559610359563719989282132517027984694010959023016997004245157305238841936252362165415221906883120193197015351755672250418981872954571868981731896709913774478908685617971477754152862407200126839620841533839024924081744520349716681218859217118888548245131539278809652228754906956523506674064247973610136870500837979180596888110870912313366373700748000231337835135954875471624309383406120168895850311489471289875155695611045387433694006452236980684615274350018333701677623734706015793012866615159984489832349076323466313878331824831130383153318998618154605220057307772299386528231750316719548662969794636859387511271917079671430090794910849952491164906303404167276930238805272615617921048251084724042451234695695549501766899809289639329007799931879511082569174618836140606673166624593349032600660044114490593895370663780752020078192680706149991778791651586748997517295676963317956742374183372093315898990078191690816728126247598884422678307206208393990065594021576064408730104413226819664702476246945462348166093507093033755550683154461235383927814617291239654949320687873357135375095714667003742624112566144583532672292685791395169720000567080739588321435489159104539092885058624494830408455027980759321184822307339379908976407969618907448997114993191744147477173123561481225046945758381920566828613880341007783568029629262186462564055560833619063071318211408836140960276265377533436273307876787993602815453864021983800903650970777246928649636399975913977391214620118623397356954337256365713907750371230793580598878018158628628963212620823636123160108527030868412251915491861813285585825018886106221572576183302797440127615136388132660983877755028410015350486853581074000869884460989482254286499730259156708623129084158685577714749835930972633262311970714220549446185219382079466329062304944771535081279992272312837798829204525669752616740375880589211234018131573462599422659935248007891608821318595713884379555866582343453453260743895048081262347747214647939941562483974584669358307222294864870417568940637569263357046997966444679411782916733092388713490213146091974505101673861163873412567357776095217303759385110702970159408901942300224286494358345885453361367801501152923848764877504542030127578429015237053452336196520000092618457606375543230585983355520175215013401230743798651385619862981448264306263953760247260935121875927651267462667044146788833064049041950764668422778949665219228481789624674513625506455940688611608836908560747265285496096013262758779826685433225570531973739245495755216138743463490644270421279878438119487069008220141458113935148815815367569280363842732677014181851448042636765764208036969905111795463753124665213795238285297876815301365101415825328046862189615362508490864548393174867466443286287986314562658131280820998125713117694796973788680787101354554175776966745161870701775856673421479300847693972814740589281741902121716367873447037901585274367285604247909605713257727371216200022212205874409791383178893997067679423626974417497486380583066691523272268930736785859047792218740723604751809125795123930703953643521471145289170357905713063692220449601273135121620537948314197226388398795949012537685595320261386760181464762068259201433804377137018469500894614852490217277037676353227756118668136093409766463827616970929366267125767335858023593711505986936774575247230092399919122664722916471130477630062363997918579586939456172257694218370466840079901495185010870098443780079513329433030108981023566911065388083992895178680065527969942495615733325984559863497963847285179404339128249974810868311000603541319301879028710046418819979284801706891732905049590768520695431829643541146872376652926595482465476712919845216783796466235989436578318898163902192469500252258045970328351789829095996238693688211358662429809546843462209950068322298571863540480849722035177996296382685600653890068132809429359433962791018861494769444823351094531004145295567539337341595707262138310208994636536521488784431297688164675215480157570099481045660115986399500898636261693936267245671071476077842414167356676531073544067189229363601745011025446087602691082152609322214891109352286632717356683236362745236007388981444559693430673127188316177926427998591712654138293658293380033814668615140116761808909881763059560079261141500335586040459616005136008867692598030577180859467972930220037256087845867301410486086383589022824056515224001159505673975562332182973631212038213889358636244756891734943557259154194752547955897672969839867440490157762505437560771355574623650068747339599395158630599119091751921579512007528344842307550648779631319821779701068222302373334489256326234410155020839317725204463966427719056028511893013987900547887755794186162155790519769075651693313957418016491829680606620161141225524275167754647270873026228469843547991804167001864147342083583573944227761385000219305467319324613749996838626584190112220442776585730964233183777671893599879951489449962127307310540591790143393765107521804121485696387336068897238594165288841595522144785505758962810360821297722092516840688991513422340067031483747436794184368676284406755549906904489945493373820559690489990779024791073572585589896709920164964556755445698065215831212951146229847920067253090260884434923950055240917988343566863157682646495102791229751652320030499064256342226712037816650385413936942199765988661995018086090841166708542705904604551929553711299681273435404215891601110541732794782948228803481732356954420436111543905906902028090229643954001546074503348517301200674339207169966532803405661271900673377054770026340809629735048393137550962528491712193007034281567987081552894561164526081157333861425780051081984139599890780161439346802152393537160257776149955515515351749348778582564627387989023232643681070592653090100322705385877472981021927926201043187154602182604227711979263491228350476286149682622521957307649661139572573206675675051238856050266017780429428208244576734621692957063381791534040661926698713177185550655741678163314085840949202097220762309676542559409311742076055960129642479626484761050490341656517610607473355739515413826083317874255873984745057494437270483168673709048076217327678485507082527580892279672012584981612529778440892025988489156853141751791772373926705379013522958310485453558184425355738872721303898859343258838845024350548843241522448778974253382492259363637454451551945638203832280517959652927266724476684730597903794631472104123928791117910704112814973930324040720385716484336777338117787467994142268237523168267614256583869925826287310611135841978505522791004383323694730119864939264257106249620108671830935986076606676011880068827679948784987083165234866822112936077662492730521518133451508932053005758489025775609827557573692455953043926200358506010175549966435014276558932840228877476610361278736577172385668449320943752654622546485672415831136376718960253093228990776415175695467279168028725268141900648200880839478850238850590940830438381228208142059537783553171739919308005626286554417710133455228806347856618775502440997908592970991053709481419818427227739020323316482778321772812126782492318220151226686126871965743251602288064553247698419323203031727466405172248109454158559979585278917064866180676645697142627771011469388475097946291781322858080280219951439830528867816594405279455129000472818915671429473270927811430993299784559606615644763830779985401410565114953271977341460613367661370163908126414305014448288168924288644407365472927896079023404561416391302205498023267732460730511605562878615172921089407111108663845825295644214371683348316918485401559229526261826280781297452248236084850423985041213650683779796279249296740631313243524181376289102752567477695264425393302079709884876818778937076899400964578160230296960884687859401981327857426016260719551111821551525539926068711319017670181051842392014129916228170090300212711919701598418847948998852115857683297778456151204368802806353072707216400522353651844239355678654338966797166064321857931515390604869792827263434620145299571915386135218632963791204982534870152236652380230290795679431031362560069356408036633755775620414375923747542135194461541887977180858869417428340434039704356963801564413741911648136023795931223397755595729232382678787541175716920537380484157192574258251015305805113633836821089459185221663477209355406645467896359847289574771322876856291769470332004860048733232337938353610952789429234569574365917051610697223452531216166941859076331008947753372945215923052600127365694822686133750715344697099223670539454875137566655792330665276001476876527417030138199525718441124423535649454115941815818150655004119119217035511322599529459053932772592932880910722303817773250373445262930717760603841393480328706379991815200973486142399640219250590655869022639523269382359468261973710242086550000024634375166366276985530618206785919730982235921340104874213577811775221568251870619570528033814214274184972531713485110436212737774728934183315319443643361166077887282082198414221593152194729383092912725778407658858936096730689884919146334158439064850541035523096521554573842963443184431912430565484570504461570771814080975111869197070520389274663722839078844836635155149110288830955291048355220821406826639513455103005672684115456528537015496078637487381942146658695144581659263405938147163531269780208305658887946714698059282453852088620776131370117895541684778455593411038345129393520401745589808757569790503572047853586622336369829563548392850255212561208398590346232364662103986408880117380914172738274653287279864989275274790632136870136461380667304414779088636552785075858006656137821455637047187755342371512053928991494902207695571332894259895826043585367302694114709486612842417167058841171963616298066810038119828557023823030824260004050194304021521113090370658829471948999820352942207549988457635241444422043782518381602381483055368181458785623553839199529218167271106095820510964513398158127994426331227726864716315413710887031047477642623554583435497367746016550969570236651135453548813953715235342405114981790195894048755889559751272750198386802747956455043675882884156471363409958407875734499563734836834388030343238117996586558754386523482955490235309298798814806747983988364409337811147910944483118725053539043418478408727484929779201427883786870156445838830463084883905020499938948771144644215715485997105706779368073383698354406460749865888587841392491388767730834193333435145226165779369329730708145610723424558056258577825368190725166054979779130445712498539333036465752086826929077592323736765139226521313520127751591203243250043642435310270255612324294996823483498375935865502230815243103841622250947770861949548774022945999358732295903323263337115989416031049528484028444576727343469543756027160447529582324481155342868884560624633334181576745893917232786049461971324842620779567538759656542014483324086882250878546521037575374040935966501408664542823379149891070450992230556044058411738943445106763582231974582682716594485673174034654020503341625378171288789929064715112137900033563716109786984668118481689474162572155138551485761356440779960370683737254165051210124358959581933608163591179385916168353707851161378907904152378191555927748681607451465031295762551227347791597002806114206661123579680483249651850774406798255705320647167950171397775524150816316048671721191773132107376404812931939268358777660174938580674392294639873426238792654907143508923242044309668715462099962865721761689996185762926244529758486001145692483263204186684772288130671385127638246496117909716119975990658287717636249016571734988066311035547959599164980657175695486545232711467128872692942627490381926362881623573667353567521741364380841355590140711109806457456541560353111921646970794327584760414822582161459458420818799799618697239435744154566180220897893973913344052585999584282968812204828103107668191571024540065767275294267468720574404845218641752574423309299153365892237062197991888833382035888174946263823917878832725858354008480535433875853545386429788167093554538680520000168955131066605244042950765493840220483186403450818251152765652463726392888892258893305321365211521091440919148734753968944785292161284091888075571879779122084571750781257626667048964182178671191430756282343221352728169680313486596380273844075749363656902546051573580809052059822601939030728012986302393911184032498705543083503535478779728134237862507150697285874229754429151977096133988179915666964560265133734427522676887603002735493295935385304962496685311454836992059158364553414867383345041947198780449191187234180943420897242691927560932434075147800071338066268711530991971550261360530443242710222151844882228806878252683452279306491819079501926620449159389799781612071574914115609650594361639073808914301995175508162508241711558455153940171867667239269246766526667181592083235082881447200800606472752065143825397003094884118241167025578590234949036178118406202870791624449872279563633315492752443496482949217776064563938637897948680016098899403391543469153489530026941714018510035829481443283662295620926959134210616776561424376859964985376234311534918720930320426678912102262353112350037252577057675568389690212180538011456655311334045159157882593564736281602028369372653790204437113447818672504847690490859720153956609375897138734741937729604818498768976797848788454246514203906645754804195648669134432382416039560152478483962931422801481539128051806859376672527624758107942752859834562943451600751432252238800713245894611683669404985200342155776968518786113301932335258686281825163399995092853126481663552241269194320768584156973758858549998970011615093040067740775675356299198379414067706555226874180130841491813980013059443720597755799916739399189271469959265847896337638100564887039630283037262938114851156575382913307211688856660362389478758129614237571016484957756338597674363371486490841174517594436011020381101790411557687609707102597625525490874743865371728907766669458404089688475401914507350228218334063233158300661394017603156473711293953712946027888488668057716833238286980273881037253180241121529654458292122673386829826740215677898488624833600407567904530343126717438870155911977342266272251296779722660883844498523050630406154155439316045164461846314908098490800253756616331570038425134794756041333344075671701399562406573187747984455352586806624176057300887531006709739869261076964497066593455202786212675330018737204778439343778888127167464917815115342573403264355793591967384063639795227628011300575231561481221178559871072383949238966970416229837881327544161600669088138917522796514497021780423877801075450091018848744311656484167887827101046733976323132440134160921594131679580082359786682391606108307124122571999923908716496181406001868643169017748785924398263036956844097739581226450103330938268830262310663608921482759985532494346252215515361119437455865082050349957924397491488970429253107079930706247313467244213000610641908530505457007535011254253937544135826795356622147337619580899238961007714196502299316949461420106695354746615232574709320794243985399846305669464937868297510242846232764181618694046708112009569100696274070898267322264639617621707697007568889800954974277554038250834200207432970877646349684870988578552327440043426455342634647455942461833967662407206379317816972474106461852174016502293879397570117212336785289605434152505191811354078307287633600592143263748358559229407026077215782066052978025997125411345788384323291563308655715816168642673808550791635337432442402742517169359879895098103036521381315200526594147905048276320634163219437252555252067629656114271182584000700113626700493841042170551357661120647339825754996740204156168580321347857911596596510290251980249340855949549055557778733965162379355644978570916195927540216020331634467563812480092167095962477863976179263081462163545545892184050046042043620098418373342240481777160553377089520834532147463333884880533956798850145188256262294870040492655593772757647033781325382403719542085224654032046005996915118973294413257704438906105004596560844715056994830468528470798118732705869240616369119878412207960543685895273455655677585148465023846083075961223804790603588363416067479995387033595401160485893224777902433420536438297837919521142007529389661880150217714694929421809153160072668357369675239246703158016342041775495880694525607906823997741031289092027079366603823128555734611536188653885116501775334172063893532388181399092173845529829150214781900389200541404062099681804287305139006727933711640397363784966435244726569476222112857129873376155959742545691843442671101875974601768102323290666539201972827140275298421439202535270301234137329040412040135072330068011529215243633383292219835911521156735271604374808115197512656093083301157318073597014650107577841358275749043242947232584142615120784443801988682598991150911880966540409859658838183090073631607411866310280676653270217666670358374029173825816160074029430048451084834294608727034498250366424053239313347945634376506837988712607420251573920939626691416315859477417501604133952228426324511918658736741020775943783653257880740112112354679240751758177256911855747674485644463183435104953706423063747022986140071993113127165483033534773234209304617824761353699381036409013757834994473387877078379421370205482566649921415550872800970408473235354969605025337658193400835990149367048515891277523376215286218828839505364534794846505832331087632152577500572490689958356491500979635867412313597193202942887032413187444543866307161532939803206682237778048160710893083700507284957280382277030843020905731314198793177225956370605774730348181216636672322789807364446820894164611687872031561675490420137009557549889917433151041041808875261335200098343671071792139354757719469944204303111057526494294956712323951388114074800776610315039761280184877897988161003614833439290848066161923843139347923326590362609502175720082823927216080247355315242230911346349138756361523808309035822827279331468002620088333730914297900997692020302019658545725973811301001218125310991144702761169395450024877009464617736195800429875707410678766518852398836906433453435403367178181533975555871162942580144739048798892737807385298482355726167914643447415201031049377783782062067540328265544045279811835004389523065481215081074523595943855305035317199745069071142054079665119131490725512544993245110743714036393946436044067168695210897231038961502491021257173325665674807565433960395390468295235475408462283904141358407393136974931476960472030547949111948972184612602595250189317672446227200276074946591292391614874981392866720983436059263707920671260137684047440112243896040419092619872061304163891547107733460687384063990706822347873363221242652684682902486012525056158508432907522357122675475639571789841492722666367537425509077486547756421081962375282098843211742597393080749735228314288167220233386514504532128325350515093327649760244632398532331773183141911119770575042755672582079061901664690187482517687826973625312132267835034372415597465208474518694223965938705654709748529074271593246330769979358120986072296543760817321850704301321463183080645464393881780685420692776144106542167683648073258779182730263901204780118946427709991351628482198070565612027889850888870167523373833767511885103917612581887435643117472728830721164772603489896571634349228981266013971275750758679923109343503960134090070859645863343030405418359305996549470725650597015390958870622249456756868664426638102305632501416150644372253739404830945691589835270611457605674646010319750888088495329648659979686922296824460979139914231075695255402243040164195787953829557324022281657988571370430165365478831763870865991659559538045713649042163729139791796405634779414195299705442888503623664969175670567132359355826382807552639253263253661286295560073456724490194621159075910171307826631737396272476738500852068710096624869713998781076820472351592516723188418766784518603581311720747686274914492067282493629584615841437604881605164201741414785706183731350825028750779439426416403310750313336621849738723853542671245941570337664185149489187818920649807037256003251526005022921832903520729209276119246577071591846851488337943018080921320817020596922492202832741902026525996795089401800311652035573192475450319322580116455468299603393674213677473284825132859432617197861358063376138850431596934932039142278605446268435539313167686167291515626166462948054844610953229908520920912063121423183072469951406058086217356262732328200183181769386477864416207040206687006628160746416228125448212514777710658780358111204544348799496624896134614502184102541367182880331423474295093282175055359349992721413594940890212391631122609742184704820987796445582316798601300223558758971145878217241230568372134158934930513135913517167761611431982502042835470174990224736836469751903040095136527709247319158739062775976514183876435339125956824418291012694378392717163231141757407159209983539364335818190668519738825532709232090154045141357965895238750720429116559771812110647214384466452098439377459833852089738266493450913570606978302513069988215949509887425893600019158067000437842669624498814811517355817512801173576056164336199688240172417574230383349011307712508586184706122519691324972766194974959662991991815837619013403730145987768563425064945026839619532121829499121231502956959406530510393363093440671788825987321092498280885945820044748898312987058043362171933103216953809094636990638393725141449375739672739730554590583249797214655825469789439705572761490376459098604328381123418610557216493957840101652583277687990385985708899407126177309533557423899814816923963314166405369552470793944192128613740373709823206503566915088513520756595620934754040605398197166423492992585012807902423012130329082477617020851936713617987779623098574755298077818861182662257410428356301785515088311277240863071124801849509162915230303066450247262583123359332494525033994191053964418304047000272673429957767788970774373422424628215944587557697687990499296813000318023062018956907497548054066078296202255066493018465581837860866442097581590185525619307473723489252376072722496661897260793552491073592821577831688848734339700848797574893548534861956816991781695016711541685809417407549447728316697683046835621196505387581443325913933363365004348753333967063968925011820341127359852314752893390392913239827439104171047975593104863080436585079665745265002961053945876760182735184758227843294614678011531488092550267886381258109007418866383767265173872647382788630487101078977704864427715580481937521820897665391061661194549901425751187602044118286091962584945346974681837406726843059875813379851613678470301728344835467339512745165510610042308349888209084568273732340649625839468055886822089081852488913063590420649940054096004736175285287565894347545036019178890812215968282943208823510755590778058136835574041775187372840661829617821197952920214436418290387467431720871443283562149102387832132929830893224834782659695373851964868167125383804095315931579535605002828500863112603283738178104932620960569393011182632197860587667679185313065267002578831175436282450779650935441334267622664808047701922163449371191914096450407609101091325141507681402469746242972947781363732654075866805571684807037881528135248126341132036316480168174592620699507130237867620998704280839562990224476311748709921729797855697913916411141522629419099494233862893311720069828591684147696378220998488033542628603938937921529976970789432792716613051669069115942417886253748075579437437562556277656132249261397182614262496341208279484184764204275725515304867318376405810440971132838013182635781287628984598407270843948997801820736501731374233015760744307227554393778805666341209102996126071188653973791908082403262649345414886070897783054827911634679213631048885192824097446371895134242032720412248276447480184994846588464639878973781345548724167095808144881494333037967360992185818835070295008437155159236514295667870492824245325349206481114079873784391369013989019155316056035353275389846275596422870244375158167476325075362595025573698880724994079956314253996137256505337693325944440089702265106291017335930436110613307254629250253085143116773663506597605778033644394288242980470495780172904187433802388302237791883883212527819296546754704950479136020215428664377917279758960919806587963992189810970498644948337458415357575535770865166292776072515232852997243793587811689844813624136920392719742951705967258592437381000867988186777553280322302470500835782263573157888483093731827609765410936163559918669778218253462923766337909911021282029105272807037551499814342726956779602344019482139150575203226333818859725466509693355696025058072742447301501068204291356207208554171154735007786850159797395950219656558867928259420462776781919190019800562771877676937662419151896654497147330241898296730058295653823257099973861875760878726755960290729019909208671294820394536463828401518914391013367581508773516025513512527688283015865587059147143722252637683248945662298214665692390635022299612446497283223653217880534220046783357688964776545718544781404011515607295003116696417952235234140702568565549514044753148498781416912678432169308447709670155629059371548459589830796843203227114424282477669582666947526236067607127153204706842181356425153172932078805407196854916486207440863450362183155875653400431729746068726437391998673712988937750203346391937441144473189587592390022793624965479272469185580965607051481511547357767193365116655611531568371858458751282703698164444293010941982553993046631812586284240452455123225943280298084191589961204581947754226116643099659227080315956522050386808911272802857621097780076339597016764948494499663983621494077765585801467039587828001372283476804783266761679017630188601186422316350635979090378286215424657779688910735005677300963946600274919776752232543274016078305894638482361063837599396769003983393469897670319101960237409881464849292052983265860286331002514719997209906670662331522538836120055044999631574129591698400981505511992188383479354380409982211954218010258667491574849655357120636465500538592143884013794743695506730448236010767045842252704739278295753955748557579852923581026425404396334142742325040657443942186980850693695782773983805704521802302569854766177427106305531238684565496656241539523224496718788550470201333923144782129577540000745483577703153609016847360395667066717333883711518375439367435827169104233762982873565482010719787748833553200455838978440419837075787327878493554486824420542525482734098003555253650623800060096830368782921323474252784903464711683208653935109206153080373764338327053624180577831490309765913219173088481958649138839362549353872029790154686402989746738816570879368420317776017485678711192170536510046971237112447397169442691995863451590461540943034585157288737246045894147803460863391378126400962268654505921704202104938191609065391494663367914563217607192964287608214943912423203682076751646956942848908744749331668646903719657226502466740042953791071817760093404145753342400866955112591766686819440102682647053277662706070189153038331666678833181687826340835659897040535934903296756193066039891015353374108181001479833034154763483115492351498886157722580172439353967753465128146356624873103601481739171034956683570863027087297928217759214764556352454185697066889921837411397231587419043685270799530326223066877142943038543263315588629006015203240475917939809248579060281199247770585594594490148858885171203333731151624777833093825840920168093188093053864914903738770954345435605379248655668005838164377370930223029622928882824449363636455387175864971965971507862958843707107911168796656124560515357687758392539315619044592128968388798978926381825150741014114102406375255195877932378197727319212068604445237959483278027275345677740826854914176279952228111132130567744285433357664062381915886110134008582419540314239755243937624826044815306999171566192969438575342908823277259382427309152921047232754274306769560983038732164827491959496164846419560176532880503826613055573281125260671707579182603987632801794424952995477753445955559326100742146315181473005180450450529045224236930855208991914811692395317317897123148788796341370780433298757796138890542369441722435406072587704725679021419810311079145537988212956691908221788478995986099876929227793867609296367716326746224059217341055005096054781619312323024533729062557218709754536226629147372006259510617674914862018129780134598172330710178207232937724747693528404649355928182210769757416350924879513794128010950765192258714321240448814507578866306620001888085291273044101897755239738376425601128338755465533686328397394470530786485794857681430214931162765895991346396772565475038398544370370570693127821551290813926149171178560170062192952848695850988809753454563628210047585563202422342476719309417228845753310105802774852645002085187052098113715608078790661429442499168951306394970081304803656037456877877976895682165329976329785053418240756946474617408819736662596087566898167674609955803216842615565087315387928949354418781666928196155375151650248354322709197539362722277847288817079269435215379517385536091458641938299395236757087148076287108784205144631406604123779689324992043040534319690687265053049202242035629415858869391167925137634014293030374655265773219004642323396479421769994256690136902442128121404575631070883291951895257249005351368256177342756856068147334877285723557023043932373879509937475870502121277556018997107552185465470654860818214554682888082648663665443195968480935122518427857282846056232474669861885439335725738098598133204734463246492956972086030056414110818913879103246339731524764619573055084589310416817022625318186838919068168265663838909013218434821361184093694487120390126126885624833103300155357761860676720323160026867977501105258130148965988109462454435031091888548405370282805241918970829310022510014601362012584453059083561597479389702967112391836983193427659071876411167526033283187876855009530686994653295604118806334990138467190321804481714658971999960461856114839192193330295733330977526542998860343556176932461640093783884508994144419013973075589966285282636330080852353777454201203229428376083754419729992533996327509053239839424822115702594852728785593648825599401660319126319456145881679082074323550843517148286793774584370750898588310314659286061659525817402622617534380109115847630043381160393688594884674787344399831418273202222001502377117097653677035139242410142726788407616874680082906130295423945931098595648710456146115434503574211072884164897496449976330785344952490703543110222309322622528554408600876345580179547841700853452849912905628656503451484559203905159883956926451951687908234497277925182199986173935452457244757239035901977577571112333929607929956075106235497636335985048274496769209473604781960041654977972357016933353205295765389248834309681033011390690090018127053479548569817224642778175952921886395524241847797749391196097877057300881323312971320251376408358535784048086150909748770143873298651645088379091915609166146857846710796876490726831860074769492132269728206894359905300582886869201778031543933617009392775834680058727337212786313168548647472454671259861547870156303819455930376747111641280574318859566884060144176819103120866707195028236949131667314435183237124897650786193874706739320542358492558052182100966603578417574337767287280989670129838520885951733735949750814585338115449248893057923490609476599756379129737007180909233139973835201095790813961136592570719234325509774486352563472158868297108878052834990520093292706406570696633116698213438380424513091498472652118660782231498589252769273776614633767883204432012734226577680413014696113930704942076252555420441217261601544508447065494923520015782797069089704019885535297383032967629197718477201982834840181736680346393617948810095793548003383506286022729956359325026483897076573364865234448084407471434549754745204197965865647477983253460366073636995035078724813520731981669839824029023030300024994026912031655045274056385551222550067918213180972814415492987725387262649624864652676469769192238336355948409821804454505688287884875846622010086697518160656343562032533775300722703817305366164950043025645499929584201461827791535131523527620929761251338936931592951958274212238776837035429964551897037037549723068187319220282763857258911431079106506093928140000806645139796802919793694914741203920982076156138659914845889965562567222146963370309033644978378269370487159917315966394222883004286748499972150103752094907577579554273430226417609277539365800505714370014533242017077805440162835403154601797238636254162374053648036874024465878380343228439084600092603043463525109164752568718001835775463186209943714548011390975315962380481624799925002034051855757885562978401790688850338212621324642679371910214566927211665851052592040948326306194895559513041605508661198075272733070823799669186058311579594985432949855762399776309761904283900443224311971674741351146715168532730917060927591740099677440532181265311877225019711311199101134562895113964455604708171463216265204993855885069575115386482595898091680860265682475714130022650573190192642970273696663683178333296697437533996905214248522702378457314452846035170069063417290274372055080726320623476691541355750911712984241739770136000238781786523131721295138507200421802275515798293779295221566118001491025717335772938866706245479650878017304753579647458913965949388081938689739493421204278513263559798166301214814400307588519342710275717345112540352338279620166110536558846469932515470210954108884616630232964799536156856162489243146557804401804419838943653599957790900175056713294391703842133873281808816099112805589053030399572265839122823540371569454661281646300183152549592278638147277063304302183380223096927008934112743499006260297907169860622463542434081230104022162732458492964017781856492942591327409417888232997545682555544333841422158137504017213353592252461087342637059656565431635088474189941908972901937066128174203014721094567807699969281987055344218517680623328362913646311374931797066314130702670126090876767179087029923239423335366977969629347673806490542641495087929444708808219470580477778499452574407603756693406802480376779459580799263406504886248548406779668533602427521536478513434690715641864428020175248581377202552374962305248408404964838784861051505065352241479591423267025610094486680475678482067447895355009180026662457343067162799917935153871113591046854235425555872361400584412620011378864266625040648037688225718768544151791543960519136363502715633965394668835990702610786957506990879612288891735990020193268394911727416732780603521239141365617253256285700885719846210793424953571508088978958835208649727420387069221638066433815040619924405342239071953546199859471071394255062004550956459768204924280812712003537468866675836389977881033889395767456498373980089595439763906900932294831520584522484895938470106187772944217305003661789971644675273101772771448941795003255416923097780226741349366648334986253144868287923225186503587713822642823588543499077609534752660382119273506267563101504927731597770717794059420140587315550686697527286175446955311962083157501217519656190460065280713417807520058359633088454044926767715427376046877547686626470004127911439852275019441102195552202642539096234437565878680338207388825778199688293854252063967012164279137610831766430569779607345170094946907887414074853303684778753420564884370298756958611470938241634174454307830515947778677711848015726831454838063722063297762000310830767621407489625878634146314247922637064382588790557943756042689718219912450993332604159439105651089358939095166896563980126485359499966926496948778787302035916607455192424972064181090407969670588324092888174734801046067598972850864163256527805552012146226949313074582627254986960878277225258787005672606248207338249102150714474665273290705929285520790680812462976279987171587584761110998620389637945822370614148840905135197544290932597913137098719018504861537502455113126187415435881074754202341214607843246157263221608497843552280255010473244039672277748268743195988030879093209816006326624866605095045776127981912930277356609331870279458897109043987224703322392043627572526133243692986019989332050982045457262318072422049724160661945303664099292593098866246501643010965102343842372196513440337701435971875096348004404743913755702761608949613117093973625024642482143000815449960809501004875386216669732596350021207409366593994468213055618509450011850005707677505687472907253087024448012333937599748605299948483176671291864850351326422217878709669965094168343219704078843163364435338031897477324440879826130696068761688014628352100881147498692463255666731446767975074113351942483317196747544780709749479788541345004492912202259797626181375223725611928906614185817214091253410313359230199716326172031528413456381139541921281764108665415093616573688163793570236977308097319275918141707073442140592384623685275543131780354007438268435227541540948986227575095786098685586141081444715216741950444622363652330374022401873780718587127704764941703668853076194473668124345416241157236706459123346182459171421389220753788089643406980087160384625029223277535328146039990054876067280325716801010617767048496037448937340524707230708853570825138075596090464032512446501021427666247453575648983864083609648476428036362422043222182372659798937198531231321226949689978914423952123255788053424882145011341590676303138739848002047568386163742916678052697068173781472743034481579252580965990023115317146769776464657922336966016534755658706461160897160707252673201111526205738310387958870728253125761842403791979832089056129043906419106512366066427079903664800459085057419707328636588428668477443203404667342601881492512552934948201588593690623146470589526771039404606900128149248135365077368138315835523188867492094165923934407964281932388567786147287884916560197009938511022159327171364806196065512396787585952603690775481315656118038996240845291923480170739828161804269140792233152965954138713033693813867390337865939139808031293870750027397868779341819911509821238730013957607991189967552833807870172361834941526694789416792555914564509341239614155243709971489260675348138553673459434691597581189728137440247299154231257887082977182066721365621067798125018596692315504225474580616895036836242476090876797598468179662073431244001930123130252647152875012661782857221472140791070673900158344369770348489458014225165747574823943007882893680849241651479221431323394719138570177758817196080441193835088387973496429373380365529428334926135603169188089288205016778752749042012279770435954287874701309126310736471631970858265265029857245206225897583549215182567937622819228813613233731330347159542046134036708476095131856427573097520433749809563781295658639530959615043606270747950882702350307200912301261546638729430464266400712070477611480541539625576274206989038477952779856032078942212645085771735596818276164095884733026495322255845106500477577379366155998704576050201863967998868746160006038350111882049304308508308256389417128824491577723186424046604841091940663921605927679182846942557439526541024870259817948131875648967225109134791686226000701159595151877870400054690295457558318802703115498784137960782675070406615666038904939357733735749804088636614936162790473439321395142212349769932229313777674379477710064095227507780526128469060345579762842144430700610037753634191504454648644251436977790811522029521330748723151893903905454878794337935458383945094689986098336710725987507117191941970533731506753144858219443489702521830366486735055581126557950272975761117469775983058240416907409440877020115028141948858836193072362209088256594828849313926244060951079541771541385555663365686413177969636746162821237458718104050914216857992451271104009747835577912445951067436276238487230702060864222741307133437927792272207340636618650087641499437412730986730394773879958174111615105961512211525004462483490726266962449934900205828584505710820197669460445497678176907769331965880692371772986194065999497280628160973005409356716669623923841540882554778227657668927369734556071159061557702589720473904186078129511723361446568455070387621937054297817903315002051381080826733910173611856998619792160668392283026388114684391297810910115854886013190439332961141724832068100223956939018291141812730063957473832912459060060073287244927814295563540364016237120559141754472969483551373959832125349372151297879112673585605535680635993013244956782899875005219968108465332244096807824179082754912638358585923206914274644231534294872455186630626746009168084368594811835996168912144939276726354755283465849138679905711565129258481659651144670033643087981605093021583619058350223083055830907723358930252564732887488708364935193901160211734729417743215056192975317757486978871353491563963844923841614350559542677242797690652311832049610669764269081546810227043028922036220706383709856037360138838062511258023646501785263314877017179015704658813621221715016935446902499102435144854656133042989654119067686433378517410900529401015921825959619258580137913142377348826397918552279538280118305996854983900566803566174478073456897768703607889500752221244605384483839732431661855893107339921461270901336232480373467171407048295557785110559150376766457618232795674448554314544061409723341889604618353381825840328841261254616858788614475624157038711928961304779409241701213496212049803907614103528249143872008177866835132990905323832935740221374973189291425057924021182579517727959886327793800044493711775214204613033501546925913017369513602173327618954735636693301626230961967835175527342217798526388845957716471249030204409686371145224225890473425194692308325514294911208727567548965246761534240858637411147000536806156268050242063252004463666773628242728993841064783678713046874502205458573476003045584883977471222179286064489247154510778321536705746620497615517435154814508052744979244984818784622231021049776503745605283488700415030888376376670698641242677441296668391992285131825399765312058642155930506485934622330761420498118224805663002584864923990224548913475907999050923887289815200769853931758618612995830030925358581861967589651004935783765300377955449483358396541414689779550785583910404460591215952135371726727782472951805490903979381550754866924805536987426167698008617471988011366438792782405009720054112737285216845260565642856267152847854558932638191617099484613796305466027214066873147987074583646911986095819172645530263330140647217121379195402313196106628007155182405544824535389081839093807112752857795530748200769028634759540051279399630810988561595629395894278512954369173103616797540211359941857173558966414418727802821592278279882879820273397136925656089620238590374416579850263522256058682030014699483884366625334159037100390495151736122117198027323952508654757470768229425371441388497454701816741254129661346783787307658707633086562472952991567417358502737005998308823028245244509342058559330143361160617177142855811378447990030323969908307029822083964339781099942384225119202002715707646492773133115684801564104245658903974699742476495821916186214850985745614602210097419891539996047308013788607215685851150688716103798907118022160493115164205524081527668424550178767530095860765890969439992696422710031894259189784857437342673084102839478937990616374943125085809408935806036571836180673946764039891001169043509432977090902861641918791328610003535316491256880061930829401440753358148178671826708803675940024693515512057677985768755827281691892763338349046190577171751433218375473510193785533839543335706043676718105715434605949665184016206611850534289962423896140276753047688925182218539315829324314244896030180356576778502552811088380201071746252226922063046564969321261615042916469917868643523019147462635596092063490078796861976712881796790078073616702490301076851053548736003841287399324128989234282781794879177996376559005038953395080667260817728746719496364176467890862679777189826097772756510761625834806844994304822591627280331667575181156211876847682571906500208480730461412096811797778820103010115403354131859827022610863162670678615380044531194143046919856493356881576798684586886998686858042505495664941083258438051857750929061522290440549918051779585167873342796978027721516029196524634514336081191304181865299808079897266870579023715827062974524333789621484421380475784264907127394136475651596145192997827456899732342729444969387367154489275961607637020304364038560754311403232332527920643793350825013093187472432051104899243367595204697435445482499658771162288148996648955229558395181821817179717209076546199040625216879603268049992659682325748851535112396419575602251736557738141087386988786347423021409037765066651710109903571707607246182941631191485450549513266674061484410126984534021453231611096819514013569700266588752501537909530523031538133713257593686041956016274118598522912370667312250425407217200248317856807265749244859526575219255307387764106907306762302904781701108107196269151879326936219592873098641227462693848899335871246579114074169167131211487377692027842911855907838091577551005824108764944981033021064145554596361857038139315571605098449737120052160550510114345295500257966310221431106055687271564529907389649013423133393295060569199024987821575838574581400831872213467853015978857091212647925174962889615881151095580368050731913539530173330399295538829276384165948237259592561639136411631382342760687439584189837623445961145944461027254590368759687950388711808266992944002055026654411554549597078973737037231733658173244972306555827936272011645885231790081562048565232152667278236989889478749573410411014760632458903224699879180487895116942202684115410361861876627582550848530570237633978132185536449233783318524594659346905719286808990545400348067213357973676874318077871539851842553980203252409824267945244213053070539178222128005112498773357524990898972185687550012239001113000620334081164440449274725609678940698866531873024446482790106106125930262413315525349660670943668963380345432638493856269174346717316542607057426954658328791689483153372598206664281713763922170231287875788401574780561904984411575050616269770218203764790056283243838665263822048809821600161298224937111637751458756865806190511143020814302021070386347540630251684173997011133199539931257837932515475259094412428658756353369001526232402805505535468313114724968864570717535125221069797188031144055219933520837673182168037875757542723625455943526586939606325289812512825446102634980256168381415007119124507895207493524329882699326673628132160942514883539593058689426958325595136868299297351659165393631517428188005059996171032477758486845331251507517027404650227592466578491775746714731199260202643506210598005403506102445556756532402209797208807325972725575239320092219413332438332375979288818777564151103945613581394204712677561939308490894325049223440379161349167240687278800531142708199815906270091540279709830567547200278803667558658493897653826367004240383708411273690122320255410725331834597960349074893626100532963189901953293112260328300771095463626803003472888691695419345324672827964936101544029431215628815844548886906005517215036389185139905097538613005727629691091594438554623908697424905670459848218292970945899280392108748978967109920316815615713091083752214648203979305542726280554032790002728634659790327191317480097578665625218715068452512284759465388768389943173400835428198878458746732449882205730059647058281293390663445645239988160871448078126168355920256260161232131955197672547408564842484130371615441503775528631619570826630086332585930517062847151223035049065558107138032480528768608910280522708724814717806275115091857557819770811350804831800763341268193663580774882600624295042397941725585199430712180503611595433347291763091964848062618202339266865850261543401511302639891111180326726471715737133200740312999542332981347374826572963267027018742569311946313743539406206072050492192351801894498931357539532944564222646921263802365241506518662924450458744192219619371383606655326883239284275237536671564916341388632331912265151492357915109563854869233355600068787506159462597202389095488265454328234270662183566860798230104462644245540568683641512878700268194271230919040836862146022156140438433924677184418460435698894247189092599083931102660018220572882568276730406617941064237278167200076411114461544806923297854372313609329643774650538816763694827097862676094217597355867250222139428540588523586221514441706808818756228201411896441790757345297770914849401059430057448314019113613903514580169797704677835027847490915246622145888558224937029359620839940421660539314959469134519160160862446800700890798837231876450627100848762300783003051375566554416668394116604813673067879607940935589986486963071557289110970117891162524926825792155235884250905029024190883363545497985188032350009299555504717391586494214068016417910485286243120948102867730004236387631740563349742230377960478358251623621314394218203051966538213211146442423136791599102518797884932776013098946493328285286984848451178535811350339037014278041415788739410441431845768532060974300069815483534938397153806906744002867246387558851001028849520405782977499937330541085082435680212996738668273084655966851438442609802586568873110665998654718105024889661147999666286013935963069174348317331254344797659861816604845646688928815188419385077911107117319013282695611153558516895816309603184318958346420813244916863541672036210383739840202956709669743972563164739333597876542198437145609771105418298995128824267399820241702446953712479049751867920924607132648278660727398628072195724753589118553952584647449023692837870897676965258525965206418150525956969875736135635275421406670554554712458882030540808338868505783848975737646342725296914561861768575036209766403686768968848392092696913164645693611612020438467973064454808328733381857308680856753654127787816489196382550133152148754486746302362467998682491397681213340494275356216323030403611524893889829736350814911740053995785071246626666246010064213350490842774598647693433921068391773881257634750192793087732910544855012830855643087252478665551886202069907571864632920669163885650134702730965371615337337455032448058894805763394472481116048447879687626196270691032071507335020072614736589834205069829098105162871181356664799616562744229638831323822937383572410470231197068122691913691336553751599057224283151199615264545864970308600290659620696025868206896351162431249816769303335253249998348310384408128848678239232163420098186359025167579962356506850629375145937995853407536590301802240404056807467377750074179986538580332659100284465621575515165668050133326079676925058203889851605746350740441021869715898837769684029534543008884938672685628474917690975796429614980438453615215558333165151776409682485255280594361540113366715373222541971057166126348133823407022413662218707685167267113520063025282246330353469574127080788392299154916683759809870208177343965451619999460923488354823309549366311071457611522358918008294247797680586443983933795960569241775444621383963089501881469429813457563886068948777221158848903985984723474251781720920439060834496049657032731395025731521038968215718459021729636559185578319532983905640570641827446741896823840959356162848073431605001997585730904991805655350022597458962142782096044075684372585982220077067376682192519840403870383510490406612628841060481323972523061639679377258454161044856713261797354831896653629565043159465965014849911859196540312800652047306002224302658885877125815717266215803460064689412950422252959038697683327584269579369279855175108909140785650711460266039251874132177522878821518072865858770126042606866150561816915043333457133706081821750689361745183894648648299230057874963449164672404654597135790760040667549405187696015984289963099023641794156544718227712970499529865753909165532321077720935996740702394347255656966195375225360937312423975096546120433108289229275797109391520902541519198472054710449092258790965141707581967691618955763168561712730295297842696208151616139138197818588669187639435528506081540168481414662225549022921221013974171388288511168117725171377990958501485577187095229997236504170480118835999379820842688357910927069218710770965737612127756304195826546593433063876886599226896961582528907358783330866553628368755009585386890788882049756819121644434937242867953389466910877257727404566647219266943930522203241685458599099118029394393296897453140305304726510604713792852526296950767081923349706093992310100210937255197385275104159100088152463754088143446340240475057297410755255184648092482917096457667983466468905494132149456250398748945765517877643456768556632284145222155818257742741221016369243865514551482242130798062461409764452423697262721108618714661109886460108014917603912778663234671296859160850694616519629227303898726530267133528738444118780536612819018089935962190480299935135753359298111652434899412280337292717342228898992646933048923354075214216574584852385430038972468436575501724330275677412116252483638466875004219233594938022830680989892485689810577314436298643017197238272471068376051701475297132424449413720034119785465311350896218841554714533957112661062294389236940706447702764416884633558925774135306872883868280844104911748810844533181590805732339635272197098689108433616222416387409133636521169202456748234012263083494981099552912967343803112310898038770652496737072059454479112365651556874594000996330183710849505678292182208267924569087969387359817679084756717624962083380721760048019450880813447093843655156415388206034035595041599518824895878383712441624052553064274182854389103708806553002301098289834095193133456558562469840967048695742029580285282241489898076412661386952642991732433850594757491664491459154993838574525132800793712351563456243067743746780007113428722404725313837484165328431240156088832764392462208405602059271476775674182697173958457803582637773512773418834142960423415627181539831193797104595855570479399203327113083997706628423221852765426294103786987814682490417392271564867807965469575064903653380404388879959900508861849678644240635717980439473425839111764447679496598573791579456863527356722740211758633955157345887017389981996933240124915751690867610325425496362480849000961795886461650996429577362604410813362037867150515710750939106055796851899842809460250786167162081731512327885868711089852809758559113428324164883242660017864369261438757032827349274310286766886834827322050577063532243195415498361565049704947846219060890518017917656039583888544389897895208318875100666797380562502650076142937100930676358655370389065427443314623084498630119378026795342362042411080302509180158617449801336483736970636220618329157653088200728421214294032546423417942144044334218318955992110745284549836061527214366827326588615683174415391883119742859658982031178862861964772006970428671902469545317801940413963737962130535372444013274124224704644923374287937738164313111865304272928362809917204534305340029623783569027798345525875020138439471763828053262599064835576552700025530143132578379216580854841855516199196378591389723128414686993807052896830977921341276703387634858666004100037508804295360773126793262879386418450061643363771320470520577950922444580024147940860725030851288968964896928335110424985107705966922567693164457515940552182830346368113810378372352347311922489679114325054570533221397941935600177970210206483499769634841008550609060331140099785335255335460238223340135856375133487975175806191202416799601744064026288263713276983009168534229352036320487700230170988017400851078754649290475191509332172265374579668504125525437098613562327394242018765550448800962200916463368987178271773513707921874089591283638471145249320904615586959152548250827831779687396409637847873275697605427554815913181329748227004924171734282495653714623688779952884065679950295147675462477064768158442376817454313577922249818257501374878456101954823161939472544758936049191135944427196240792920351421096480560213665566854109740883203455433544875089167649795720228802183481970611618500072573769200158898464109633269600582109541674288608843603949199181027918687310182386525307349576420827439274262412006110351226640589180933338924504483454557456216346002981366415841906661247437754249275606273139656796939983923853631027641900095603306842509969602248100941700136996782604607550574349461775178504100395752265667315184876586025459621579867407351936772874193956927779606105234699864669437503729922976244701464773469706111100655199970174020446126696503741784856900881423158340176174805161765886965405693369428055504378364334548955946644069502143654088637139029090348522835280135111344325600397049027301614528675484256672249478915532359183009759657403964234961868343929238675938722355053177172700700844634649551471577241636943611608468671030582250125148330443440353466562343918999463106630173860319159756544284059887085305305249525024136821423882866169639810476326444650154823570652848549839825833210137114046333298846736449244806647742628007330808680480504570447450213582043928871518646369056625593135287124139073011293539651158370847833593011756750233489598629646263533039922192399960177711855875614972077014209883018933995554126167998714714168444177397385901022316409461942089596110189377532100881822057349803778208813677980888141149795763846715888820017271572635505307332731772435798132397310443847169032657244872122024883799957358800183423182946794042037110240864321599290056578882994918849695237227461449611014371862739997210360284357664162569348576381189949035354121478670618245365593239032220038688329011388047029411443553791707371758943202200787483514681284432592257393703322627646463521531935956467458453066820808258764434426023208270963499980069625619895628001351011976165721804291149743669126256027826992401117964971349199043552686712158455883936584062733859853189244870429858918666838919365717179571131610331501349480643613070603331320450687680454149851150997566913450206652128699889664628253275795891931518067693426231927683682278899854571298239247590598998496225347089301108189290364467251456167461984760564921339654333181639638545041267947086442207224518405440464157920966586690338870340830318819132384755487095299958206714657740305995535797675217921798541340208071107793791712018226715271630318338480423319741354153234415825783433574428353926435918048801480726574396894689649298509755423399926289172264977959166699911063214315496641729724605448584231125593176806259723198513876501022614452012356858996693166342623128274916853554744881472281145369638925020862854674468302968074287663588262364959609156767157762934660734756506232621308485036551785697274596866693272925241279235955284398696695707839775646051878492011213664713732251695597080738686334332866471423712762837128264277420364349949201361823952700087045958387671256207880485237111537408983550273073905388277112858240290074124722382417249515721042443987837118910651764889410546675738641199723396286677753154656337426085414189805143892654683626163638736318909521102996428564487015340679649120124234743607471266814753566429653293503280455805599624818311078044976587022998288090766546308321563434340862760106702972766643690035685937532042603231498454400467662434196554179621244666023011450274991386073111407552475333761600224414810117534864404189845621808338202989174389629602576908449439834921157482058358126076850067331627181503835811635881383630147938546348123555359419566482558543792121302339400360965840770142721498858891458825860957017070694953969833328288744923046262967799270193068316158891341003807037025876850645974938210872882735271550516669647631895748094027679496116754293438928838635435545734283294674469667217734494931362017571304869164592436824960457005095796073376922636750155485865910988434120945676978264282218796562313728032202001028829704068649125036925845611021228468840877435963630226463970162462472328478166139345458738350905479722131355048614997999804324535519586538786529022853369022205302907408460118780700401254910123956618473427826245698693894758346781139216279340076387857530045325076461900792843709864888612383516861441514766823756466322045615220759977255896690063347686052055685017225776320800423700329831002356421937166602638986840269658237065603897786797396302951543536069119312045373907948731590269539795609905654106650014646793023744986119002031322994858646617571973151955280930782707121641013097280681495447809583013412635076614150286315735361425412743420554302420699242748150010895786939697477622297189457203709539292935839893902554603505623975996251212588164423600535221929779017981734507880526557552393103078615503091227426899112735563859306285488763290913532665366339834726807682884840961848306998334538339888460295508813395319365692042521078225543599036370212453906913518662994405110338284399495967975311912826136308245008001309274749939348297344786997113424899377010596516868788724711976256606850654589374499327673905992595885405012549519141049268463467208701669043126803741475428584025116420818737597766527337624332002447370766062563255408692189396519580607575515385972586164583745458033183650132394864000225340080107683678772220833720542380695494114608547115837636718492287072852588832775371935727335754742201779733165251797159846264380577482673354967581650940132373327920908899961130724158400500127806180322098181526014039831173820863020623879833539122246489655860002294910830033504405162587569337506465291227419424290466443600011185641612090805480370464975184947830375011156361533940861149491973015047177881550535081287204018812424752315610965713226874941308167549556104035560982312775916261125325890582384936153956920694282726798816330945927636896347825974396448369672710460757290303391138244504514695127954803013248366624609192147587560167901290735647140404632809374046546209706548297902140476644259199902522522729711228737016612599188754325239151593522864964375335540600916290269419842382218051793910817356213484667745045107160825251313377773676524705270401287159914469976336037804530630426559756089848836285451765457370831832777338530083389007508588330286582774512028485028319894032586322591657323255322825668284475760612322897486361266334129293213894574344656354600454748887556597922100309177357998586551751105771014411636730568681584061078913196564254465672322229670245087041247208935187055158893044043662874718258872862611561908051749177742089432273567931038620922194500614505210357940274467330839115917840404654704362723464681176320770291524169405233840519643690096747296203021457112135920671503050945821272725379883180709113891201419972220855553941938183835611578012829921658941816228091049921039085984444827436219771261669529559554868134689965306540743198794740150076934000995732875994347128997470406254656533565924188844194682102110459977030049539203837176325869229863583245819035014406633313914014374186663743862298794461415125887899549361101746702469495006026205883209398239016951874710234365245249025056117807946831753745998618830618961347256718185582597096217989267852663490013647658320767498531111279570347823471625573158843448400349077353498358186229112522114872262976479120315698529675236678473474449772394068154430264638984545192950834044035816439138045950368004905265707610875646042611065060990566682449211812885598481079548276661957806146840854224663281889324653681876456811511315207959950701667739318076775090464276440060843410213487250532696962713300759965198274350418010438684351398039578203589327652374798122175437199310166863908604598582616163685299890934532569624117772962838261814988556132027989737244136077212612178801552082865467127918222537521585968813851164775399528678219435613102353769357496821826917322491675673521865944401682711203895420843988647751180300050720972869649463643018472017146442435040713549041785536957756730117855767009942252133562115405782191529018274098033785077054524208906293057187177103168914551713643768621062569027402349388378267651196941985839448673718407935719536437812383656058715832889617916003871036628632223816744586535023726194212233300451109985254817020204010681521687318473647525246538930204296813999782948414663785064115079851940018943083928725151811812629629009217816315415963230805415491084049568999528044724940252552698149059511361682199160879649797711502935409529734596670570530680678790908127892215590835755446383174732788870239780778292308416158225941590309557991772269727167321267694421949868525737056047515863395659498418544053954086394102517295367625539427721042309487393287389188603469257861708509477978898806350583922748676103140380906309753314165989358542749336152424180623737180512514302742724481874737543340866849055777901489189985510603054512321227476943260335229438287650245354110197706518391104801466466064377571675013424262739772037087651790636673970332015420296102559388438773482675197692629003203807625939149154577810018050622574927970510240607575140258147307714215766831748495722779839249459008506269150303473806447655817138530761790336504851760878562223592023691726013364016714716951442707815019625739829390966814278008263932610041577641681854362157863093659848187435634091916776990505893051862813211856410377888193610666126138750162256317329931358508979777513545766081814567418162646114251060338708817449933096893469678018115655358863775917104178267888136993653401759979523015065416396443948218876879884055038902907099602113099345203051279227191186097639527655987868924895600843781844287268853919724569514450167869782663558289909768902873144620093041527217020734142095187851633650119942170672970927502703837856077120011195247942795510342988230618753560429015921635190551064867929990616979946851712645817753623541829430996860589315296268068077275454890666191981663217602839186020451028767994856725824044623728608519906641165645360533460651253049933979422465009597598419191921461473351764015794817301307998457488871454529554578236798714445330780220572182948699373540787236172397105922616187465630281129202744381333895370939892252592911958494692121638221761391729031433946092610457487408339282318261049275817367631344645149422172048724226101812465736950623036709226743147978611695041272590383012158546280456092069342607780957703305962173996478062249481193798884412614307647630302393427610124816022638341684231221362434985254735716051198471264675065719358344193181485376562463306616807029305379722018218712050400993197365010630752056414341613648496911059329355942842325687405781034195979683966945950819400960143242767447573050355507296310654176143312585888927691535842726348117074810535712573452716036947048917778301689088694306318906466513677170599384911243112377193560467257695839940861843637804219940803371005328135396421035511292675360590924041030601146372449582369971539027701086217583957159512783213175759889645177161343349668695005385755919143281215434857962014476577790101738320778528327730553702322812515896321265412438293648137832338915835612777248367789678099741996284364559172301637313677190281266024665189941831605645256213410216238898240689377844304826270868552072934458457303514029961408504140826965615205052495940740546587533442713894758888232153673805511946369845708152182237093439537556928955296749271022893682565820683009640443460461075258062676720636328658663863045264522507489954751396628247112503602527551107300174403845875391593401408185928551676468527438449685809671277968613324599941014018219331679393612279550696401018395872703103406236404360432100491281197138591569453925376821459842705573136554236673390484578845597022782087559949560055859090278660123285479333488593417618666010902937964513746721164002998778463708547077974175069695037685457579386329470775251170710445978877466013254652257040527043816111987901227353449016952466523401970393474807746190625935858434586700446844182471735440299300937296377687205286148624454998808298600328746249832549457904284493058075685071058605511197925061841398277331909879715831435444534591728388724283961056793492369525291844575270615740621801240815272314512860462638253402582873543541841578101253844720064460456870185194501014899634427943926654902412205168990576983555126797527884450192615017876887767840190135615554097513215784494441753480844073766589434731130015813196491526280887081824615578296445755453572740462855427597732449170693707970089871158380362861258919839977700889666858817486078661330419172404807476359275563770446279844057051820575928958682945958436688279351276046760642023228800680422463878424928141628873394510117332247002132352862751310407642334154838569202232374462294422581007617523763025947701026741761449326117987846279618043235684604120189899228099840449765690624244121433189520446229142202603888754610192619152333437167085522187043672312780122473939652905509302551988375344046254420577727644693851279424209403410152801887270192356370687366921790027094865551844762108043916527711158903450238663097188801235950825755180677294128918939968038672818273506908682961378030836133182611255927352614663716679658402606031113798323492699827298484642341116427645407722813560228047641039733987676731912792240340867092060555673189015773930396071569958949886029912514084851878429019975126262624516078657008400946695402908439568564978411255468267742169761121133188363670289940960307658873630157626503527467719368343295687238066133233509091500930916693789049350450816111155224881996021524866974114185668966154424556207248646289602408551467458196939712804087018277250675591437924965088030123210854916760239731217861766247176978452745108567578254025418425676419120957515640221465047638680674271167826375987510927755309601436230333808959735925649681852934107537914572038527158957168771827453781081244562542454987607282640758039115772422112181313321458121819919978669936990300730722075134670867657435580377884466867729650060726999586105431911422694499387679599491325828444792886972062861319094778292531327534528122910341516751117551920117505451010477326545184254416710588530526097776703673807041444165432509728813412033177959762634435828647524450449205723002972201644251572962406571657235566752012517245550566067149541101642952978177830941252808389901175538112290012183155449453229472874343892650349639175786925241283935697973405237786540992443486681528290412282886867726506730106027944773639001657921686100504851637718727325599879453135369598964048496226237152062862605531859290077292884478462014058966532536917090534004499011067288237338457976024604095016926035777269527038098959960196650123487242935462921455236009979874991726104551478565197262583439607859108258922662346354854043845874023898437916634202380996458538398775925192657247758935685323366962525163576619961326706867846402263178445853702125783141402498564277534640080659132678455196349096951506156406532226797822755800790202833155313823558058186275001068482942502122765420802892000714630200958331901465309085599737656947072289375210973955085086011598173899042323738993404502185421009290291813936107331901115554945443717408842272739976198680411186898726612373579804337834832473598769094494016253764154763928834547592720011099323630390545207577662186476924200345049723015772754623140405828964445904710573039539855186249582336554767226912435486091797058312134687375635187167097337300020756235922495571402848013432936609837127594743421034335990148019781482164613458119748362600737366047285383766192905136729888395637047579552866026475404995705337381845879646562905517418501644025023193203252994262451706392390061826849244716034871689517094917067070434849128662499136301291570083658287926304794619487277588808788100825020178646477664054716710082821926786592393245866360502396622648622011131166316889415837345319285307122006282883924633088243259807459047231204248220801854714441973514921076135687891747936364615120389138576644783700097918028862401845644721559820393157910732807918780353869309310415474155610196201929418840840095588207953096990804146417482159011796239686501099223595980470424531381862183271435821081956956370160564732788690411236994773073819981995201561710688467719585974274245459969973674114289183236512574975770319644742016158883783708385992604025129876592028291391028682888844178678477689001138917430541805965566905037308945051040321672235149640988750456059756849889666781587199033169535448010393059037755270988602455068280089431590883064609078796328001416108888464970147377217410800731908683917547157885510759416927740502445976590159221375830536610860281831767855138279108055683060118926907175603049708307832710124252851694774806785510041644962015730301158512273860645128666028065315611322512220961400372290509416733477831799006460902647864389567728787810039170116729918957051092879201103590975191494724954308576144433688383895332304307758136675086160222963834664711675177581585818608531119893088806813985682665816400845593239866645791217100316683313927577907378267559219613226811457344717729737613132323703264508514795142451725657500639347836359646572563238275907194046355894181066188936725796627252236624695843546273405436332597381542290536217751636976205116310910350649878717182765583028304421522897394917157123147384287015889515971123907048889234489621693580849405990954448222640521323323943918557792764822474866156934493335618804779055328792085468492859788843603720898868702271409061938617433406776000068688552708143730199519500917348884426369295323352277879139834169634261393818901725188511511534946699690132156027288247435995556798020061830084328231301464039356287485244190823708248390937830719832611912905800740047769278619708464811440343121587706852511629523568078903078616069431733759727688351620547693623255790254890221015826856285211063892439157215564277779118895739330541370521868159843482157458909460999275962427504394994774608557152208230619028096289287319507880196020143169625904035405189239668348883308970717479576429982946027457833890468818764606892550197878101598228631523409602939952242230048925029431716140473214560205484050693993348614669378165189255800922937475104065834517640076309307517508877728328483127904579024692928883516690558071573972202974385744015193446446362990238947609654413127345467906373676880941359959975265813705542451339799160956410977335797975159268789478076591660702424545696546612024994144287039921047732079131492229468752790935135145165042104756448422933388057185693537286492329248646388703848155575958418844781937567132189914943484932710225197099703187417650941007667677014423331489449911638295241624668710962009422195096738513921374106276244148504164041285420726605313357382069716820253783060267195700274592187819242854297167320088896044211942443536591246970856404268908738320029693067219043548528035558980467274261162337001576301191928890705831132650464801429950264014935459747003891640570036619846568872684766167941804536275774382495582232985361966074280426462213964280814942308103084776170695701029313809399469141447720816509742730877122083984642271665513002516182005502878268223139697081015906086538847707737829606438008417167246450307403045004859475804566737526999444358831958833881118971254488445976428092777645536349469005622844281919134980093594034994452863914676831708829459314004425226669325368973130525459192576823484730407890250159069475895344971536894775533591995538976306747420887529616452027014721047811342690665902826612917179936275130414319565622448751127855616650854974295635474930293050249126253963087710818148986930864044181445753573631491313689417561861857242610733108836227285764100077869831693964737634326167326838158753534709786705003186900749929942072920785865141496813435574414893938495429536872784233319600529760680051986227022280724524515965551221104221107063308113224939279326408291737237478067918018139982192336064137120660348166094736078309108669176697173111374464017469580270073773322930470660603247344380199696793795608863285716430870876560302442200778125192404404920900399394264545745724423684619721229380926268412022719991791195117250340712048834410123054665082753267388787604953271967992066077588207639468316754665845450609115614960538347005969946435556934559532169955011484755814455250323209088596218452994843062890257305849507111162229260500519033171263720288148059925468708032475530837767920149131969535167129423210039304169494566334633333185249551795616697446228130851845447672302774993915851045883370074712422213551024884699035365965666888162607029807340157950136717718822661638934480210888595731206574322975703841046170067460818775937402589988209175629835214546881509419139692812379800242669361103187300095693612957828283443412747360850548278256681447230145820276110887851578777212956565218457015331166832740893883020486288028898140177858134219233282969108031130114010416401618744561058745485627375568458030627397204240580987655604772891053243653004618383439835919254761496253741358428344985641643533312454108781430516264031554579250809261349842621309484975634449499359540529977355161304938606304211220140124498623778768263995550146770597666510407905573450161692944234344751193795119392546876773982001478907234393707956318964543931495339822885040084419387713368709312440279561488816979600258582473222004582969728076869458917848322674003793266880468019004260011650850230537939230108249311729974528595940370832103196503308096148829563116788266996453694315415396549927069203909324723660386780820457979863664188754876206976122207393721249834037871197581369510972688290094543574057908649294281224053834067142564081749192345994767150246742335830454977654680365363956384549961017135731568574358093091603198985579925670624374898179963122186370282519789021020693738975207159554402173844686315457508601884498005484642549260095673090995354320392167536487202125380072123954927137616368150153491636268683778282388940550352801490854143028186929846375786719374438298821128915435980853853369709730848423358539213051054534899580796440462194466254601941027950353371225873665372090122055319466444983302301156264490474195312194112598752803756444357234865044787215046823662695596138178782109066741441690573715525189102961627801718291169671501326327018337699613349214666626445147285414123232154560922311736607458773366120442701835013771214847328233726730132454060634960085655708738638391795973382605325060618188658522034353507052945992488111062957297278914493285066722510966329785547841188116954478097036479625751351562941339732039857657754150166127855269339292707159755537530682938623082265264377953596668391134091022070066256829246148007906563412446139466444371938535599191605951822386628786283183860035205825871591179119519124530342174556910643799749356430283244394771780839925259870813724454358355831955187548702728940912006582248723789961412251399502958315518285754121497202251206222718458357108908321269153976487712507770300072978399654616038525907452709389836365316279602530033796772509718093930063559858231141539789849079653702846226354019943627435754277735693817729495615807156856531015978870756829837372694564457315595760713132899320372473885455811571007573457876560536294844894893182783883484384863736735951376169331185764234218433105131389358826477785148443233839382272561311949436111912565528804346737830681077787919206018488425236619882439056778105616173944469371735629720265710067612812373389839098005671229662522340172384938728511181806923505838746069274239622923961895914723936040868331487860881549174098409101208214432190222303442780594352232374581741615309457367946885128938520295481450838569074913839969807375416039361938244674969318689206146378720453699908728858223645010683849532168411173904982047584307646668677131952820699637289342305916449139529055603591733929844631781442300316996981106991670617369285463027899582486511213034857612639922707751471231497423177086559006661941277584662010536840857802132438517969888637567880142992903139025188341016361934244038047481374456761212974443040162349881902014212478029497962383473666071256869868247182690620818844788986242131764797415229101166973433242441201763313233990666764357028037548203210739237144015686946693662201966889258563105068426252575633958836506500754087866906993847223617049039623423656437238115551850254970145064880664256761480013445888189477968428296357964768564503268548489644011045214295959577691583214425886059658925308968620642214032937462970133261755764586328010153881850110098303124128058565462316199201652504468792125136112645474977968747529810936316350412805527280539512117787133401740746462585740461219200974266460005030488425207004007411479962519475693040315738924741429310797704443366788924519828653743151616527962943308199790946791356525318316609357550802667250814779542641115653874074062974414347693176603518396492705775682002110756755419049577255303054964500384158374597709507898009323386579643167183965658693021563167469584153314306329708129721249463204097440071506993727277336186834025565872941597992858344815057205091581389999450971732164649270526144100783222349197935116323137835132298367940861016537173017421899525840739475755999439169912896363686615407915517167734554647668188951622417924233300816162030872788488295100073599819633387830324164940815978465031953012707493891983563771662133125160210133870400007917337401864603972285516807066267051839151887255506902338533750544172513231441215862460060753589743834092073125832836447401633890131859657944739178251068450465811480922299099321609258932469345410060662183388171778709459428239845995126126235926998551135988288728035238894899728805886533657926011953698904148193686639399982772371577853354703407511808856844796330260642393714344719447526156556766394442958669566641415148665981791169445450733604436754675512296383901527905027463702595858411960867011770673158650749290493120658832053448008483710214203520436149604014135629720121720511960026877107687232083180754438178017541768265059061651793759311896532675783835837277097908049649594874682253130720235997681967856587053662466901590958344359702729586214547092010495175542063957352001525924957847292287916970561917084038373565023069353365227800477625990379301515691553419098038593087622692333306020286952447763648493718823636130355821288920655599506840499241472767854159757748532409055828359155643788497583567718447201903728242001653982438174048179105780174639319882353626511885629430530036866897614417872503899590585705168450391248875873655679055087158257512310373303930092540940794780466614375425282996587650876977896497296027097971301161271503336483573025983583532307813469978070551147453373900648433897134856061199166585248527719677638221995444996527383005280034288045214771081784228585493181373068758296582315296681951738032868434009493035648517986013610209497246441042889003776158126161094732309766758568845046045087213148062478612235004124457180792322596943001341941120354368717070611689982812844623627059735108749146886038313292978520743574931117335856367492713845174089356697643883016168074518430259216060609313073488972793257754858807824591680021427905541905780343038436082948878196285470350115542550202269166246308622494979669747529487279289868146685143969284984841108061254072842274309017885053854665731780456254305308849710596700034676431152799978708030315360431196662885185991280734621437491652049222456708214872139784181743835671527720221269453615093786286317411830536966586062544678815499631609220243575905286379845140462100281521583425166371417930355062364199411788813523988102045635205749022741982224717418133576169890303580816226766825320035273906755848790556969300429593915427838662328791524708521257600700901322685789267910029467899454323711510604885341243554234915130447746832910311805625530713267191755128964428689855647094590788451282056911559344993353140710367778093318594005355383178699639919662478140893466475922402135066299800687075818164694519864798261433276485343939475979077848590385399974772374105806363536031776614349067053920204636071806484866098902758033457845496745663840593982588257541135287803503590770906683047157319167443847854443380621819890183464692889674357536366059367235824697854759330894927815360072590719904632042409164905298521500548674133369601287470022570649747365654341983745420022493927580747725019922383083443102982215856457876464295606645979514440452035962354276398578833944308185138317629385715422547640498878938420479712598156404042846889650904293498685701447963162127950292196563491654630975720331890085075398182851241368398757583568381850995759175284257422288094147134631506937395539638592250082379733406256565820132576854374716623539793752547786368751920947553700387315583174690732484873189879194109306338859895485077226898405123060093852507857938548398843788478158654564644703614638806139903847048732738393075120480129521123848091163478047349207628940983634400327586728522454763508591213072122571753282387537154989647506255400447661693667889782705346724424717923898138103481111157476213387723370411230200116249907436715516086859807029551989393216855529318608603939308837697139635899213455662396081661712857804651609050161585894398357675479421505390424259406756423524642906928779206120287486982144454131046598372487814547998702816935964442052943234640351584827744576694847663623676145954351922398782910004189889084336471195438922595979834795389791931901446695889355629196196717619030109135591083437665505320879418004169693024261718975777935767964124011088686430374633477647529486427253006599100176533291956326604284438601370868928161716742385593888308191891344204740765778099674358564171026205320815580268237495367487905747659132375987661093939477719234125837093454143783539561983303415821521045248187952884032963212168374508107508357555589237701742305788744421417717367599324126043748465201972781391631559797834154119427748940256350249329910181390136777054979283889588950812823285740773376714115106147758402683846489634854251621154047571301817836503207684178635399624289642361328407010776615312039297304338012881892016016058722631242524536474573509440727609582484166470214651812185045413295397870106737147500331603994366348802045669082896153574576187475381718326757513038212508855563933756107801071728594236835090025836374204595967276733515470259906781574134976702548432679766848380315969688111764808444780111480762273281187308934215504717018765404604718927241389147902416443815496910946331380458814051797293191514144178226900756381667598613698518617962605876605621614829522597016843197053938983359974276565718649373658908455213596956398489038908389043938048180864244132566931622536386153705948307641432012249889007764508588751497737059349342636926924610319311870709913713661896396986445477726322379492913576403186264300689632334193306504661748130108221818722950184395588579416364799965663711338817139765629422824304549517673081868339189272290437783297666188587337562598912210184433673522196745983160086190854967919471208581702062788123137176635848884075063945263572581191013181141951703640153664940759135836515679694424491070389010361924438875129622457005642548782665041355745325632697396745707359942097770325248426797654782336502035445036188069199810526624111204610436346624873451223433281315669816459427740607037815545937034644401038327160728238123444776939344194354703910908992630964674202012196506335645044258245920572202624359430285198612186783329191475413691721371988694357209653467820355815472602708463419786968443102582452305690478733954595438780592636402197435818563205899215105247751539663242504268821834239221269198795181683489717974745147120433696406244082413378561468995819627510146791435066544486831439482708415835954178234361435886758590436601248260265029980265867802271175111699756167347449127343558828987601428081572212541157122255980937697431208670003880305713059746101813909577669843524422017938485819962830609883564183025701786801185496595654580961479686711636056500679315199439918697756698701317043406583536707949747538607505088147629489676727545864398369703626763571976367254908270486222937351357678286636222044784699559808604633629288888192682707715838495894259600636558334348009823240923773389286865371189955392845292858625464456553104021973954724655142951852335499828514462505899295387253430628932115707756122794007159720415224428342759418138527634118596996261889524933278942948748087630616918874226818422705958322208435787565084441359779539718951779589835818092906330200557669818044863927435575094502397405783348662968388189134271316951825926975408707929725478509975748617711992389809801935156584636837682198934405178641388382947918920712472424067761790224722079008333672249313076303337311499216351096889799387671343929225104865002015940012497908576386076539241449607087506260721674167914756431540568398218160319959344901447468033281250822643402467058436610635231966720460662069032733425664888263642538949123947095282319430531016330714021316141390382187506391880011816341503586505211820141566420032045904164575922071948834478089051385217587634201367372349943049396880445776000616214468865268975061032395978205666126546072698293934316630984260878425710345217818877236695992788417213637332900622040779373824873181541553516393628733739767055784027953828335654684170040094172348961441222761582096982644665978265905400074831972795853261881001807182481317331564299955121831112616853891048655966747074993799513711267257346722716835530640589476669951161081410172543610214575001244129964085507129832451079483918238337150145512397527668465748971935544350454238785283193001654929049720617777686383661635019727573482346353386248402219233702256135042202158545306040509230782474955955645737996599707418942711041019817095507729556309364947635083240052447575524407049606551169894611553567727372475384302194808779384647855910056149095185297586076546356516627739558978992292313162238377208124686895453017129104984547685230661956602811362891735324907810586011872239181484921970769288389268188873558301984842296764154720297367357476753877328307054398439229204172866182464112757654348342812230967247498283820400560723692697635443397284891075785468478448426429309466060688294713749710544440193770766181648529914724207160210672957793769343648406423624625779677020331952314626044774263605403908587436508287535183302268325451666746417763411897411713203673438182569509292837797490547422420668089127270643474371675060122102050646696466239527667392885423087837811254245661898983610770183613714956173712458475795564563302850193806855640459756438050844323060728159102098259560509487811736660236517191965199816248491776908241813883363042490005353239233612449153325168502640120521277622569694893625099355872665250769744065136507586629211305123565526578551387627178077846952031975436291648908020340250169506540170536994620589965244591817283429735764539342057662983133943966616052395615980129310867292427253859889454412040643663199331339732357705651145931504239575356502776202524397554783554705895389535708364005250913976920245872103184716188393612767109783938532457642005852348890312937321618434063882264205284627872232379344530848152673276540704166892285587570109811693493870847963991388008699919626185142239395338848627365702381430911090381369866554837744708799760381605300032968367527943769176089660522783901739153774854978203998330085151129517595556808793456349296269307085734936567817381938973914673429435881053984267260541315996225144416801355127115913914634263455754068106132139177290856703529616476106003797966403469415121948116264157237537709140715656700147057916552822861430795467403751589979940766534041106526987146827092141574324964882632519389857751507362228741125765584954504298457266034862916584737180813314091466066512334502634102660004553303921531029615319028859425240384358751538846024111868422115884740614074140564166518880447705863035822187959668032559099576375251437438253806578292833174190878318769359959599195334841906907619624482848068178960864873141024565641206964901132090444610228738440530226401520699390067702204658113025806414769761539034266262778098017645698458907487706613514458527537590041286180352013621795784161082456175810019624514569277723369830649854932518824467021378313635672777163810945557409530426235952611680684093786827054673364719307379914347586828261420532651332523363505667833817046667935859025242007450904957122853783411522241308879862865608092405329336482708157396545788006380583765439737707780149805377442625092149285897815319628246545824615750624353290092007796061356622755895178783702676795388082469555848435771056340701544055962926316245145211096753898044319822817660874875627359085196153122914424490145712163759942148690352505145861777556368584332956799151158252213354740033051819911664250920040978093597880017918760356630849400535352753355193357488423280396327697929603446429186487378465532710925987923200041531351688770520186904900445445622488605765175914041409145213243254440792128828598937707012250123607033684010467988017874509577808849275117831994215477908498995413863612675042846626432949031371667889447056542339013783664213452156997050784412946161871725822221687143851971666956530704471793814419937974330731558956541201376609590923146372303737032955998208326509379594056155635812971698606743877423492596294187459900700886780201279473765709824132503072394404976836356937232093961185570035696821491524343671475918821314434916057524961149643981967974388251883821069814948137287681910067478788245406467544563749116837824203550054802205537705111790718241133907578551680592384647074765571482287423634130880782134775596888891715812201887961842729227286679139616611307388152065707493449475948033805354181768602116768569609761133837885763315142431983120180752278433719811018049964195273194410297754300664842819045528882314331432415354954886048165811512606468643803085263468792735501134664388465819894992148881946672243314993226847601796577010811522744173319512893598152337422750107483086860472983026047820869026418394597423927684937109267866494404590596019706042453998290082968613427166329074648913289853145058741726876916404880600905837827576762592199748277209064508113693558405256317988801544843545374118090116550951038456541557332934331736236900885684928248066729233113418146363810323062814390217236627314335913184864515680683335718648901498539415067849647014952750536224744810918700002861483195670631908073624040962204086980913076822269925239097815006673208217257673537549539221909130824053677856286391182632241641090521498032008645494937487710648738638353120496231438417948489234357400333894485359651733384041930236215010748466659663326971652255877185126324240243575187931705500451852182272011691493969044049162592753004410716492692964083931009594925014626368663663450002465048575436472295546179691139183827465741780433800330214307610598392544060517279850915869278988990997939428730399615989555671585920484500812660214055630568108411989438344416726945287186791562014866497882754122283733750953672559939218126652208259954037257170552622109126817212846913091567478361609827457535398190970857160928815657342702246396462599875056906467665050492261000887337245253876062097934564861902079883624987152111539487595115257416930027925352026849540261390293258191516841007294086122560316367008432432286004103558124283139912081338140509836113010797867368582487044036780601092844600342849217569611772901295262976995228404471457642666958023467997621739283895667456736843455927708284932218908278420447884209627548501609483891383008223177766188525131044297025042716686292144865338759291208022760620395723630648330567493310762871572341634393556574332094515484088795588127187387513858168437741063328655173880968663030099030053102214750567337809504602155851307452078434901889627924567586276074775075899771528451959261662496510400418185171786534269268167841717802979246079945785632335997788222517793026787163870270747731885033431883772372975478276648149980624664141070247709951835481366051529707212096320690099919610442469271613878575745066791384673996924575689872502230817464863220522593031637727597499762978053877210465338641289932236819412628241518851810058728282251241835907858318015911896579590932923829629596590001945916386764155768247226114233632378545165758879159441469514567815549949466399816138097387947935689334512809838033319640472763691337172896152294829289473917214792583094749703090305855952657813275635197724247586149295857810723052411047958645104870374277000564443099978512419799327727858704617220709868484937839574581278096488483847376357768438773461612270959580153273007284243170947047064691617554634431940774262293410484413692173607731444719959778617888845951081786937062982237930783979585240151987916538194927387343312220577394036783223686174200905209466573929576794030978729949575859401056051051196862685144310524707315434447155201278798779426416050744738066612080336330230635148023087465585545450869361252308224627247191370839847847853634906359406740964922991527453186340859506643560938777829979431901587762148973527484928986914061319114452195323503361124909781585863142713791870228429510062297708979857734561744012752948994197658458438062150382411786170293309738051774453771074101173134400946221141321171925496797192484592099464519698759532996074450666003740952034591250247857620251889746571160218841290453012792188697720337205209576365302318655034084696230458676253772118476699711218290933927123872458703066575808197422613693204674156188175192845997555517007522916239645762250472106996752779702854087085849206641223641075402495562414808039550854249977152203646931769634086146655340841105655511245422473784569197561271797308600680778354703021676839453403630389681174563764742511763880245958369090615435379442983315727580769750988761751101456431726438096517888299690606380071949562097425079617711208968522531268037587695785024305497721165811002393348726315079990707089093212476633372706799960708634408209208858361111299653252431573444396869609755630541187173228662486526216486555800524482019011432412118843868585739418699303846507008827003889583877209047969800227683176726351620500854275117719119307463911626707415126965322771844272719405299763455430806316541773278579020882301826047806688593977616157249012107109515529012620172088698267793547081732992676038630436820123471844149898262475912748014323819478933999930888893594266750265053275558156009183539835831177611240702800922022747777632571214429714704622369672815714348567685910662449510889120161722205653181809458026531221872565703276768899323601869749883111748944619944148138020325347339855220387667931289357534125201517234945833080304459696459207431108549644840452821937074668128386334147451237665432075682809076298667377253983900900299593209683273542826852453266397389302956446854796873635603632742850005613590760398742366318533149026863475754487011181664744365084445928663708617527555956468863892002997313013180214142306371092013225210495951081398645947669774999508325610947082624107116661978531231440645040839501008500288573245977769677302280727899035369856003543805744770574318731763094725195370978783830954639819593727437638163814382064742277445047669361275545648962233230889693914395961440969586464986120311180407321400978172473082685017453554478437658354158864678260773828706119702123532703762286364120942848856047021050192645631150736830597405851620692849116924511951206797015913187441714120839980156075230372019627881186402544631975359703481942614020206517360706091320169375812596760280132212142750848983948889497194183519846729223406429014702466118715071040190422501956433247099997815114928011533315715757272147706669264832713581604686544010341293713157588380964723029724362809758082144915498547784957499108213849378060304080591176145788090478569207702695300918102129803957497587255494241260933763846591550152698524226678399150036178990479823433190576849903514300256945282601420769724307217387098636617855976604724274510650981748689190771387185928822070678282405713525458255632490929338222266581498184388806686133512936390634005533886593542255119729848324496479927618367731699402030242075205477816254051234509712750709872856740856466379760026933632912129164366337695464442915315192114151205721828430621933680955174278452363081459840695572975218756777314548601246687844648236951086287033547506921636035201334344146520951987158396466199978387271015187449705567530435014969819732205655648895819064217627979481484435201006174645945912740226979752363256258462553251750679965171385260926927364629653285345447210949072088909233087321908324043021715782088322837445823575362400893604147323329773994803428347208224503484455866434468333352192996229596610132886157002789171146979850731247847710232393900086059543066191481624054596531365616528983397315173184153605064003756947859712470202312932311360633262804550473905908738625126383912059933610533475726950703534281913551449124351061793552929449614408886243327100755270034901807110551339870362800772556002154642478035552472751117927860994660167324698078927123883231557048682713781743154355236750650127883133989680318744582247232448646903565135779234432936671908716901178874693417685514258835351491892767984008338950171596038062383860551586157631417909248949021072738462691004741608308415099843023457622050681843299119422227024603796040883518714566529942928302017257834336174042159298772202868154262333993710985589858833201244263490180304968979271806400759118020925055913787230743195936455704859599294238352179906960579939897762342889479534673249732126310847344685968392843132149026338278579126944186078115824214256183583264421039919499748246066838310324161754705323925439635777935153849186029849533883675230989189619801284981671031959780425148916222677511957987120553914072935694764958764072837784059980731855473030916251744241645148486127617761030625266077844721504999753218938910798646177423538086289554660271862172553315925176847438544815908765568808220308503480266477285848534436622489606428247552155462304259586912523219047483934387959377336356421731934603244251008276185500444342537821700371522813138267270433814923753401626977939001731251930876204632062175807896696592691834318271090150475598144243511337158446728296111514637061646098944269141467981980324913093124952144969211275097311599645523047698584277213110164050164886526981357671328283049693832121214061506145397108639204845669651304996592033144109090798164664441735056997590657254739482985741993934292140119003906416210854365206409209473211354075905502340286707168546160538276254961508828056861348675660692878861891263292341442914494058149592656910715893107209816039645282211116321633221524646371859484047418356192124001733772298271082837476876678345359568225889065278367855054501463406353243178491423885221480924694503236775411182041426864935916240245973576456224619517691980620087421320222116797710065091477614761685522524654858010873254402377090872106906051570424061457318809414380256137411102951960338800548555605079682938883014845314283651201036838193127299117023726052834163304169823766131419642112243911332556258348959409729972816398660511180239614992943667959840899652744986390660961607271836085251035939840684405413846124256358328885186926523631496755328017353283544779530784532677184576330175232947523339931971084628008697993656982566132855869756728449072704975784688418826749157480189276862347720933540372175070302537135722575228934853364976524381388548089223120448468387552774438421710921114425343430267890780898045986776153982872081480991370821817155604349653524674886091189567862896362493606251453275924553772166794266105576145749691886900988638909233302108542612033542128243942985640582844055990065008972173323505920616977310364522451914072423035128611888203003729654191492336359510255053879600353599322917033031888846513539827628499397327109169819715031323603217605884519245069041287661150787108741310795700919193337853333352360919910664570151087928686101696897754995784973194248515498669218692141775456351977592854787049795530433788399862945054905261407393412239836862261751909194037647174475065891514173265709835364206168603667911448091591114618664754756944357418138400175076741979430921598334125043177335047360939072931535412339565400412718884733875506243433062991976224647060960815108620153078971672370951049386637500028725589922792231438985914442609828739606644635627845247855095410342812674907051086588656918224997346764078967767931690540309826140701369525121887345498554511750553697991305618611682571034814002339600803374484062227473606952190850038760909497358264792554473007116246642504182184635944551863213063976144417909603732797359086418072808595348422989949839121767004411125066875084291301180203422003744875744795520354835222628165123485035396536349820475258187364718919280727805006184004540869226724288919461558562239537088833336420478726965803980124675350818274864723294206256753157016450166316553155966322618758120203717435618452467473085804854682676723024891714826195291427815740225263913176127714028516293722489061748950972760996409780634924183533315103492592257108601032880343494215912285653870502989207064269956928779830528971811534918673055703413953450538902330035089117244229698415008846448374806250350352351462352677439125446639506014541790723020056799076418157897155010967274237030388229021755640689109397776540169949760398509468862329295042318921299771332585355486117307109073640702232177644545532967790395740408581509870263621048316805514843010580022711802026490873936191680549694431928575493830094711917650958700292418726147717314754962981990278637599139047193154501277689241792041842650930815551219354290014779697943769101931952348518287910857609515676125428613335070216582013368523462609118699365682766696078773372737472216130345791357578653617974301109175887929053735520423423429481961555658693367586595306288969478265404527100887365137486308013724518313882356668876605626053307572848147080718411097503299690332151647417382710723283326042616927811770566722376869323175850141909256270769614354897954978716645216381573880097848279044943137688978562228865921191794364257657524356411414132562551366473331644906933773387125390979815600055523669649872737058395948141846187900985726825630031828515692987172433152464701503823693105025326655177465951061996283256467723671072906526057215104902511331754953028976407311121350024360262502248401784987843125396784696421162992744125887627001936401122557504558094981886758205245246881411396254727578455492097351417638393448252200222697963439820798041714196191762316629644522615522136047140035726240248833813772626100725663848785792609140432206708498366050002625990220717892947507724746101450563264198397156061966467355145668945821159880956815524570639919397399882266921395977953849225991383591764472143785697029463233639728135132741279407331955946921131777081975000723648117283667304591784623496951383364856600782773952908473033960450734050773134800405430815986761955504654954569056814748137120320870832360406055011130525477266194995593986523207086230705307281947716340548134912726863575021485344753960091507254109322371046196505555057225328990366001480049523008990394050189063697383062108810174918981300038811170132902325252292428172594094504714028647326491660882276133540893042408421251409710113657271500227559152866665389091946858855057823762791965762092603263088248439729668836869515321051636039007837885454497548631309406285078655026256785091464806746574424594149240468884025166374794790238180126658609502644163346169777823897107668857790998514685196051747457800921771646932964475469639123277033911769424075026345278169210749217182579312737918167168733744970265636958795044211154340220956883340814428019545760979022727760031349884268972190488010183022735518085564837720792724241049914195272504109134160308922130572577407196542786154281719555545853763510389509678127526048590328868133458873646312891955208150295369168889778528757786735458599343815836655587895471642968005890615920088575993941060102463438154773430860398447522203155021449657772651087261620933689830901185737074621744210247199000860842554872965133966645714021834106504531203931397228968347612921459954559686816794686332174195919431448868194629008407555466536796709850092870138480086865839359281767122252742853261523886767196000731282495209017615532300562823508725277737387856334146645952578947904777935312710278193909469786261404724233960065782472950249813152352284899146494187660792887775470784089651871306093063193139597648793996052323950443822675659521166975170687424965042835018757979179692844882201410589385582911568359086159039004653356522484662312435053073329015807041044342241358976494113883016763872285165830948041157123368633840473914538034252317887687721599727630566887639171677885647802470763171604332782207371677095555919353434817707879245206564612424210622351143115317273873870943361796788218380386207521007295335493490099001276192749738183170087216072952912394022649161872594845706755931611116036093576129971618272511535025692600839560574821816482721246694338332235472463628678627475596099772710288182331471093813609290007855951498283686243598833631499088408616674594464700068769687419878158071589700229876284476556968676808972840802764466933820147033986882143856771504701141000444180396934089134407913870200186126596383418196849254520636016343099983672170375657889944625128764452579753731240932006376192984282050965756658891044771389787010724370086626983686144990084347603635163084787572237124672167476413258824002414014494460943288994319616640916078012874502374238734735399017429279960014138290164937984713918592099505536639826789040811927172357220452790011964975049343135365060362220798672023531697366590317476220635450341434299822551273040728534827689499810977468579198925045500960087496132076840073638268738184604295487185973448380554330388139834403364626277458024328435475113640647971056935133774031935564092809756900375250916399765232442604776063192204499473762519191294468029456864727729459196030424334867233589368172429204152882030679539937907363974114385573383365270980475743147076451315682980642560720673367108842849553354109583987097232129540242935303332773607363591095564407346174262760828748084977789384754170856876394208911551723984358249085450927712700645616590155602882526806200573606729187634972680581408800944873011819262919354803189675836285310484941331001457260414075425935248819992112146746614800230205681419428617027751782910748449335375343596537075946306530174247853835422973249012323458372222549308038866387978801748100454894901532992224712761639784457789446448460741083996037909480134579515233650921925901586775653920296045857762398007678518461183696437218176917947808743844596965765863263982919383042227002667683522764620103333955336018829012039825743385792204987329286131966903321818271990990606641029626406220668867921932545671858117935512367259259855449584267836910052617335565996914518827538356009179577592008025375941176001547096079184414384403509639027135476660174794034432126514822790432535031132579290764303894187075086118323950695669635281639140980645967080935891683300254554960784338329528135115017445950171041687543160601527810283402325474747206279172441612299138759487697576585896737341898557717063183667356206982053017418857894336615498523758666266602186833913121607767145104296221470236021882207763302470272261083880435009388371214785462521966840579964686993778150549294134491496186089943364451039297768781724033368339859011415926623703127239934034987548562034442045753047063901199975321653455443486150620097576270139788688524809886848749836121315919158272562245047693631274608104255014445192547266227927578535613711588228339276034509149920047575998316317498498937594216596058151949660245873151314051922138225977944075565118109806945203836994313001309185659046928422367833898182955683055376932890774750705811676617967325461837742388767736866762469131430936734710269610197214931523993525736606878735293410411481963435690436810460863144017367658066104477444075312749740164853103651952386955916958822149289363676112323649232289839755388306887318702677630187250521550115455019169200566412322030352899897653196164042731398465934887690116944100094808148709240363654474136029594869084869614855345453391129751079108935452224182236928745766737881300442423535039836870823271645362044517122021846993119108344930359844026593687927315692451736978679979453625185882403552636784734129308780923363731920060311990049349846187692765511991811519380501573062219652090778505615430864957581525106222485780359334739873627215967388733665491558585211296693077953776623011766039210397583903871040237650417520203707872393841636780483715598445608481751258028964612937227752990901912654634967121851942572640667912707420487547320515461632260711363847147856112382548469415115046116482787604019461079588847059364180220879796696318015196569424781681678314298342058309916283631079160211017810326070281283494019965347649602656859508477582791643568272078375365157179018190875317646944235378175130925922956869084584171953711495773347150083610769579662882816900768384714872621691511326409904916893296052499850110197126681584924412955804497075991966808821596198535773153220275691764808649994342484983493633551156672830687686742506978356841320419657936316045978074462949334549694902034475808036088272233070882480876820645921369051905179821403528710748344729039699917408838261140404479582180859284474589825292810498786610671085394176959153549680756017398730170988482407309957554475557774282580949760668636200135583981731364433611109417064557774321751477848274856042729458142075665229091271375634098530955281264361002005095081016246131522733602775742043015364006698270149761929999928745392454356843096732607972780699115740288559551326856751395006967313223329217441309970244147835680866958608156938918535880219576005935907275956449498078618698255029988717859394952845946651410819170714295857065359730364970161615085660479537346148316531343928682772732107195551738155431710736234027419475190920868234629971853156225031405255515077045348165300141462227562298802307478845508779496986130235240769760711025364605504151254783720055255301114781721248705227902102532481261174675846721399481594567083837190474709788608882739144858677515700102338717578428714953688435970501404692899669875571050326785225791330256268167393894220284970980247059803984638769260035981279692384869955933436888028558860978741619251412723011537186507549448106662462858810802982731981488676810664201201293248272250658082131203450187983116694754255126934400762999152362300498292168627123002160261780508317625543076522308936114273275293013980517390444571258668396272845413314452822843080122512704418275753044631278925346886374473451125853031834581547033821451478596956820624988943590057949063563959150227876783216057153251822805931369174600977160001393802353832896971602103740142995447066083447312875814248541522820055488014397316558851805138065639989716988006328919531892817123349273178864010004040135972091239921820583129437353022369797358759728055346825988781686805789524178166938622480903645476822607666736751354157677333167680497262593388916676036157262592282069797335609321289471496614843874895536129741599306330489117010216173134734007555838967001842551973263176859612952262627338228675826278360855883726810630855296716759426169114985488251235032109682746607153872919929767228854165773926297398781822846268667975831449061003170929314402841543974727110365923720195977306385488865896177731846796033797293385773988344259031791661269457417203183655549739083588069268803016053465360932698486026548476886175266424693739963775051547495620908726050198278201919831161192781265373622188376991757798512229410911723436370316464428466786052493213042779036786506767819034800948194116859609455338291600440552999887646106775029158689738627179427729803659859846026578445187899427826309822565422861936305792776417743777808903416914637320764550843870496072293764493335266060944849613561252258141897874320801136360180146063220692129674881708901371442694103039322979281327802794932205184410571241749959184991850386133263405283555629482234884281046557220240981124776225805032240814690285578819261732821013595629222794430355384492838154909758909764116348929456378793154773574243509375110661481024446129593952665811288239848372208579739345662861094564864978705318598725014540437051947584444125511947376402616306517799723710202341863596273296541817398493708556505209494769205583718195697857148971022671618262374279574649587511246244958716542136171078439380343478684278919441603720383192025218942056511251906380313492701640324819638411334097572206928390930591915877465957823669416990611458809631954802052814292117171295666478381532790848566368740243859492239398309533992541898555704565633703241202377221208407074302599286854244445327982565706820939789679963005425436498851378100685610495659573125331613326937653657919421034912184242107292835967573396132430492034428663763184969967250053474107868747723504636728121358288185763873975822724677681259510010695169439039366291815216352110588640776257848219797269318672066895935146442137055254215636645682330051038811159950144868387019704007536221155369026366407064301921476889111063997092173303068278142089427676633782063969303272563700380526334151628029827525888212078581796577537019296886756887560563332590480438898974394208656428103979387510409863279557861821714562174822531958502445851604398782565316720660031288004160294545775721496891239314500277876602220716831312062780541563029327735497372731727905939556360323155910492248665372786252910069138616241964675656247073326999891581402629008669143068431177929569964651874690217998908370388133428555891177448374143134147245612551075275992964268602136886254280819632047076044143875644872602969968550463081314557964577711293468498957977534361215206451782720990150367179693961597663908711649746752214790513241872543120550533671568813847684837539829118033216492715889112621718393038326472672640195382434242950544266931103379047576322391230934605583598754505345354270998509250587971415204007332858305330085334012790652867262159040750895874376044175448669104793776009391041200396376361586502083953118750166300035661530335884580943481694062240812885091074023515832602016975409125020455873603055980408174637159271323124433335128236708247954995810487814836328867452216834088956765514445031352609864783466127370110226997422215547548903305186732084297307049966688511089017696577536021708119456854259141539888878022208168100739752550196037126762742629847209418886517810725646382224048966850341320308206454533833967041680076081293929382604484279802875578788595859747061207120424703541148405760795922994610797482894325893650238883546299392919885597924414592071768332089874816685994463770151677100651425324204010882480128957428343149895154733522078018187148877235092852459130549095351087626468631158745290654042003404645141206219657718229489737279732042282174661140663716616389829765701969397140811864541690987494152097230740852123822364475004330188188582474401856059509988904991583823785010287095748876371682560881642625835323804668597949931924072769118422898910338306284672379790858933515187367011418755300736294936163928211771985914777581676428072516246284069452969858255054655483129081845694313958435274548980737208643050925663432480298294315370181044298151893273528839828576171079612778848940021428102579278257528446455000943789586659979678407318546735069634489779551069546415651644121860649557742520830747313626909806467452231168118636458670635487682498430072505878254091765503556463681671050670853285394396514446444642827385984549051555488469650712199565079335431425718610970888069559210565855458165620699551774894006841141210594709712874454269329714961016696674368285614622899290794516892792233908306836937677143361072517418883643713723948582053405865965339066617986456455078033749998186765416760820776833698692982654856232800521296310535583640157201704105944222472161547934945405253600793610839920513855273563492413025255257694646217983415433786099050751273061613567702272352072389489450532480505344431464091477124742381504502114505210006033724026635308249351374600068097558831414984622480672663292675885368425203884992659801283685971868845279667718110373798604137035350861776731146446073327990884026127092524259430631433793517124493076405897709884574857451963855366910828113530290446422547282937742824497542767884250097212235033734168079409951428549802038232073152773882856896053358191491202351163103274772253702429230963498358214666129165394025616921162694837652613041692436114811358909221698717957452836636978000853262661974774432678948257234705134227336952260840807927801463479257324223255156748327106980919089049126652746547336628948160082016383543764196499708289337427860675666664045927036218193853910656080243587222736519950364126503352777141355570392854388977943883469965940612671119139528912604053585464222324471897412986927780944227898054785053110332184239543214489597875737343302502267179229992160963460300878303230449412721339538293270596526250956087444028419829906027588282125477903116258694591120289256864026113490902471649459865928435108311577287473673881224210348651657378220761282679476458140196567752726253864208870046176264602829491811917123619977323759416001818356336038229733560778015387224800716732769749679191055605309552966768348531949818510040916024211632226888879619365003482074449526193900202989486616480861230756315180953349915609524384200732618007901119332449321551936087883871955409523035366334022808359745879502036206528793540759402388666181695131298536987306435057717598855331603983669506924692251375831517140953026063297571225074265473723625852079378844351161727940738243470153949233512545187228105822458160086766206570043586645274940283202025110317664496007546063885365397161036608316759944250683057158055867163611658735212998253584728331744759997596482516832766754134268803925103503029908907251288866380923131167167213333238329912462892632079149608364965049914123408730847162709797154489247588415424746773256470001984605362693711552399830058705512597305909402299663671342526133148201801402601164791784366755029014507321417794257787782372891817633313079760632395251166345213436376667996391157678034608011721718333056472507325974475891179983828879101140324523393308677367514856510215000000945381324016208289987610342012281396791776056895706515774803848947275085667337546051079159972731668053143829406933924011791538454353690997346604531164616733961629342942825912257747383452005257885093190861919122314626022300424847159666895420197108785804951369631207947623621225768853036204880046882740679148429234509358361079775509178318099108232284795692140133773058502665801501494111974100803044515772871402258539975500019757862332515388654814729729704626177347696865988356577223085465634114653896325363952203505965677390599201311584023709466810883867161466461227755040056255742984029934284055443272348912056810609023690777393063796358761341433337848158900533884548707746216069509005126492018995683210640971583013573256767782254770965991578834638754206268725513377448972015399654760052808664277823125883163977975345268163620292140672247531352178114914377429059855333668985302556619482553560071289145883170379787627188779757665559904828416332299877857394764872073625932592501193773343202073742253820497513432073609331940544364790606748961401169058339901829680068659935658031828751714165855099821920662617707477377803687367548492245537748989663043063326626929833695164540585770040500763117828639396260400295261688937977991581781022900200877574043739603189837795790939192675440601496858822421409775277876042577670771228240010459999587802142355735995455048052163204467857980175171850261583782857204713947996102120116106364339377181037427944627100689695032007270113319085361381771079261769064732022551982605005561990043109217993691681129449368729717136910546543419207678703202598724129136240857264643950567633970074522142309103437589305767873697684623996007837926878495205726374414313785742021178136188314347652958875559200488451870541988025888281315234364311566582930011387498951322636785310272762886816326911460450948018815336848900972215794072694898635321117197534299798670556491145171886075468597693216565296850766200271218783702820807946347395074623986377614508136644769188188814337747218755563879460636475556531389231057186582732073277810876969672916673541735217522844753821492530051719239960407674314240758532651047407054364642413219063153957429592100904458843592598809097486111364028874823376580684641164944136382748795427052433111884314266371187533594675764875181525457482283292511052430929281447502592466557741109225390483339681258527598061701778265872976867171777506564196579534322197583213937909043794415804532511414871411918328713272485488407066472392653497186428776599028109718974592654458058885024700227331205715351394337618597642390882697806161821963924858882243740616863635206273242157904275964122726696463052347069467208727835068281395842441324756669273321249714133939283115507382345405942144208384912495423071638060452379547518754212638323625562868021031007916990821812261833697301037466563816287762453826533020242908182564678072620460904386816097958511315513143288956532654298222566161335596600531190738936502582597967624520119292463301709086209903267674631127855915747459408318497726869775196047913224193284657483636615135711594419151434715689239261009964630092001943943231089925678216334622179298620559635407130205621014198147944830312334312334872607349076782647302175324305153772479648598386682923166890846224698906338167563045447054477018436654825331998083642997585750792559333486197981330472303558926478494298082075117910343878406389136804445311238948959801798285533550142450716173012628413518790776843877620100648193892023648366304947942840440806436178895655772770140267522468365773265736071002381130447663978473370734291876821636358286058411072426906085558477722577429748398038314378298617399645455430841127389685986973857218814675889003748760940768661410823361750419234029765747676898644716901674697614719205426431391996706623460863670575887425813470788308611153240203650184228627888944074922933977366931500690416028698232768716605214671390388945672923084977988971662545822599703719823571963800236045029603908540418896159803095224482625702655000045882282611396719177439838243551629906488314978133906290557713798463409693006161535240216745712082509020410609643805715050928130272975581348403656942237973218705865959104011633312427159877434325046340677370340596622211880436196179130795394928789196720105475605477796738516949778944380054127318006175512753367981235577163268812462415028622991685309813933563788029661428948544848578975691546236857354864171581349870199101518700196569758327406593421372051837134162159127915802408831021128703152800330288443333098032929265325092565380239922457083653701874304112313902172636261267917087631527165794804114344090491405042184130853158039970558553667136392700983545977604922128669853871217811200479561127122788088715853963509920816971249068878287332866428462157013131408187989439408312961275413629533547266848938564120466453886707313457302399588632865093194657939864873547470818950366575432381079338609180227824511036529060956762710191469590113122899117051986584602061458681710006042383250940415231310528709646157908645041975357358356592904960450316210034646237952072967485138231969049827383661259344698971014565571789699299183474888940693205134341539911118500296148213482223772586480797391249484526896968278044506051965774738994869974131805223113683859457715805240940675109581645519073110139030144169975799199076253045609717583966892192278960957209907514371928349541749874735577746471679300478080214265317467999545380243026874354065078378109710277381675354154505453191436771427158398427901386846890688966344795771761946634765502003736713672828247406045551106914243362846246004957361346396165274770498455260472234236265076639939770554699392674045390261730307557973655510885930081881904414595740574754852939399042281504768369757897673249564888510684899762688147108961042703886283401328144568487350740249814945147919487660068559407876822440340007496578540749208936071974839620941349562915311136569815398276819282427157931032772313814525530657910662383182523516922447210519495616241367489911666590613739144575280279648008005490604064889948834855942164633858753747294359226374299335132529187273469951700488066193432880471474515862391998982690871385263882185701200876495301361885416656206362634395129306130503615439794082658588427123000418938521231845690116838153000500086062454858886690763557967958176611384968808659543392106603112688707729526383270859193701806655422706572676792850115685764818318560051814083742622887862311259279727883741369601109820039345099949983041049112411345855099639715192057051099361908225377808124304724368066107798754237303052602434941112666653679066005891364292872672320767891938664256376833120629160093469444132698900381322721341050154586597331625961303440620336467465653972266492568183206594156059612856289700103880492165895012966437684449270051844323105746036491839145790390714892635076798746656323696531173042714783971613086287863416706276492317122173974014765991565431883431930224248829881386954315288411012272308960864140095804438306610224080213206061605422272816170384601338185979760369186978476475246013745762031500386064582294880613683600603497587646620927473386506415429814920096504533564385244820627599303339141716139592499260135157941666532961436540786503868432641744409456800690671817085362537200110780492227818329548990585393317350158414257582249189342004139254510264582894412394053750225904032023601714715135231654364408333447415501751704098184212806612746470907197716634260388082462822100466865129691084738884762447182682466204999880529496986504579914623203979674454024929073434806109534080737439546137997189950690168640547268389837645592544010082205782137877410668895212741709771910919367869343132865187842653698883765227132860529517275421348305815049139285205129652916406376663009912109342263957752512815134162101053779898452585037356620351985571433557631508831873606176102326203981107422035981334844260998014111973129297768968598391145752325409676272248854596277163522961544231507920628255589286104925378485100711661925557375015951523408243666378370722370049040768086906438312419297035611515982719286467527294299310439476704099441538909950300966801707294334343638520601611956004333648023453479841219093756992439314881556169839603321265569088481815499224169807653303865550536631197149671111193348651215666615019935013378304115375096492902628370635622678937692519042058422277728609319017117572105507239955028513556191455015473007953196139958655003003406289738902918408492251274177994628289533276584001772449482202359789335234178905535007145622892195968979584924388312615095886823933705633043640656578729658775046604726341908991773823956072638014491103691246132495293663954714516010583034798567744131098798927158575162859023374440205234533787635494778212072735793913223937703643088069033629421431194483969227328185822601280815608611048345516456885755873961504873755772270006745927090732837239985790031688146544068231501704336111769657443742697160587757949211774461400493561927984437380821591352014472981426073755847498822033088820200152163427510133678809883976454105036492663221741269552050295530476354046334423301142852926360410464793057047725814281822046682305115197637879810970465995985137871357899173129808167899692762815058328447684762354643056870575188320999655447862307413993825926305241389493564917258894730146302866757417366887676152585054204949006924668096673584444498650898483401947022654423255852196904012601349936707558873068492194373850398046086893286079169111242763709981126307300241351278227064950466730431088828614121777891209886517992146271746598809585491758774715650043015706561768149315867394494112146520970685357979947662301672757509715267451374716746661629197799747989274658359253618478418271340051003033011095443281719481572242533593407299585914446674772504562449910068257368509533764495992865801175884614163056024929286005216182354537727222122205350343749559077360338035667640419170596999966348031790157824206767942510619357590340417674208356041169979490446020567513080246204375376848367900243382408023428267631129540938748514098932532857835864684872470474035953088681264422514788741450478934244494408513178245310283120950976252890519524498512311822608759731057042835553360707121813425214073574845266219879822731576136916544356520304641861268133720878308894830944336609218316289079857333029680427179587013689711661826038327563367441094270913061899383513725156515533745205648084305381150420721769003109109550292191277027524302389989902704658078507680363066996296915986168272097891030251215288880081055921484259890157482914613922651984229814846326670085695893801509086577258283595964373270847865677390186165818188268041674326887114663716393948877941543360618135528609319284219593282832711708292855075250138811266317676120357614131487525356221834040932531440023888454380396363467272288299716619409558988596969673986356718557493217783382722161212513860500666765681356453129719212005612448934303252323940582268318954806966589701928530797611695589585344945936952505954518211201855427821032610832340683204198069613538056192541320637003292768680103979636612339378076283090354166164480687642217448268982297229676191333499509988218609999995717119647439035898267934946778631840399682802327206650590572787032663029328575969768488932510783175568792819703483897740345925158115252467986461562554560348686312346639655757084176494929811594108164643884609063151725156200236417886490482157990017234906477715547278153626369994650139962743022881584221919500777846180095861740388052778770908285464071776811305726607989516570170128600985100835751224566639150766126792676466141626618204711829314908111464473436060340421102353558708745456662269386953212852236077822249117798975073158494600241517476702190814212743719470176803316977714561029165820697568549969730985338305197350065736533674994178891471946491406880337337926381710036715460926396944307522401624174686606280841961920679094076563192383840904741506609805048446761473980283783855849479761547420005756797678921094898896912604587624045900304471411077541948347358039953628307312274748113551048124166471248425514466292259888234785522752769393551276286744629063436615861291715249145669032941024565584205062162337287133275817564860221716050161878324518690365615868394115321954039389311268004935586414974170760318610520445488571446601883256783087209735220470714615980976335033236632375623820606925169894644512887375888760966432642435962429009181858254486421537080944380270575047346337630673422157376538665971232368633851619216621948867334378367015865670250706882404888146035618386182525566490813186329796487859851810495930431550745994098994041796040561073556702434493526015756862635306969500169636754462423915903758446085897686410614781183035170523085791929326620866377526089784817503773381619787081544217355698222355289883728566006708116769457583621679197234529960837124091280307886534914021032197161842855629065354078461775208260145308812076439466354853916313313068982322694156642869717667322009141725312582026112525469764125349308259687905557671508281079826726635762169925201044568360789083640084977176325972282533300493490384270767723815941262872899169478873346553043876480302829145998700306671887378511930449071721981985719222385511426335056949283131795145109825539826829232412627704149371398821827524401737177988888343563159683722742444950255634175879996556851799733018606895175790794767110161669015575007830669853067091530223988113764374343521112154610216158475191794701407074214372976560583681518131376951079267993418468986918270213121112372167395586143759419508728687436171098892617950742649721331887174133221235844415175768514644549233963645972518213465360434384626972680201925343687306173570444748304752352661907904206443258190427225996536000075221447696698962142484068632470950657213364832199860185100052380264387127787019222431021942904212238395050820065992143354519864390635562875908121563171055015979408065142628305780651341697727553035984522855220335655970452190120872483320096560614531833170638149060906774946644106618018589028469664688103738715151377092442684397184359824772181731259156729083760995228378574853098026947101480761400062596476220916540679816778306402883463012737107625486362506102551863776729834010966680849054197500688421377583143919080389869980159464427786612099390081878223794229771335155755709656640211442333898822788102900240828609359699241148334662567305406674845474715461190000922366490602627671993855467307885384593333559043946467106419344236378683516198837494818768641160925454241202855867358628079175998416762356399363880700557529764018000171061860496475476716222735762559331937185087293094101950886044625666457011513265605132195357521336261251585025639241290466483662132591471210816715668044910160519977210239409825551671597452744434975780991100071814179311107693853809460513177768198356413697051817292627752135446958352011099467204448144391114776625692210852004639299085072730587101551307087260664894438238615909158767637481348993481099593135089891821146343669053197967324716796861626313602167750156513616620236836329411931233646708906814754676808757664244908395717333702930266411084660175333297482148812730123482660403560301717084825257576625413239877798513223066365030680139441668325531956092698733675094173725209064929714652350895067979940010262589856652244208302547395400059734591489420401641754262012036744853705002944296225723788040571334705792491887359298892801988670466928739291332596814251303654976706366763492515519710426869496667927314838343287721209703651348375048399071047417030899780606409114591013693933832671425887632184689512706114270441508509993749226800001583599559464304758048460497998147057695455516832160420398661757105357425852618373911492619822470186049137428262582699933695629367726365054205557698847134754122779915531125954270401603998890946386381271576670170885673386636077688324679856497297402096873057319894156560327589735745925702465549590115767299648779141453571813045055119997815398102762185051045859506929922821532916055621970609982065007128549068348915182786433662424822951687475383935746375738732569223032663618635199469822251106258826814630625236689818051455708754716534543067047633030150517367809351535431804364666838280172909233091387823650440099381452242412695450490379984907485427692121013997723917882606490502675603201455016537757561681869833581334218255263841081261250905071051536840776583173963093525458930956061780460365944414503473852854551119025550724726557954837032550294019671193361975177238081088221694284797696192017544883944934268932387864237140929551248197649639419222606644584595442331233961494344336089343676346211312545022866110530871656289829086612373153604023936443872527350569661352790460967175034450912932218959856729437291951004503390155479118782282689237312017124217079578668894097548273947262712295712045115975582966421191406957586618944483172469190768795490774355415233307772700543381181211981010724970106333094667099239916486964620066168938395372541204789667204358854765933209676150943161299244067179040985253589111074902123397456880010803776115343103201361215522975321385362072280678755387156928644743113473650496808111147465911823126707977304905659303653960273881673156329572258479963154896466709347455976530928529566922870496085644601211920573988026230544189552992017261650316158382251058994696835613438112000475257560797776309437908208155983718202544730127139960844894121526764080624947046471636495763539665615857969083451458524476258148096430263148006556401785478620363303851145506547713605256698200691106044302143856738225692978018418518249087345018778180149863703790145533208174047342963501076365530629037492305168314396874452065481594482953615304819457238125901001000068497677185433210609630998439443582180979806403896272614978725977952256607562063967000155828909465994168728332277731991812687480463977960130755992306650767016926487032127362161348487923703183039843933383235867141431158091851079232491276397318854302446871335018077965159355315854478416438766326210245440829919845126262253307065745771516735987703937428525702649019814798422858001375420169402980216670228023827884033330275783094092384001827105354223415876863080389061903368691136036099966047098028013087308392460968624845319648026022906079598046756871879519195994154819755570143978806048898952358927834279718217879796426703315408697225083000427282050568707969311019858996379408394669428095142460777367483395131424235985201923257136386256186483315970577854611374861907574553869917438333565086187663982347646956490174253487582773847253137388751824641646750574404751008982359084786213157984393910308716167081753906440531630618696981418122600622389434864284392700911561976705577498109259131485908266371828009426970944354490269643332124690990344506117004983814216601702050335837358946548563163780007410763057778923524860969992728412606901543272096199435090520883757462723992436676907284092376381859057976421225851682337472056462087635466834898106825884812141282982471672009817177876239440908824795298558889518546453776528096060001726675881383257921736100454728646746877789026882952599600647925697511276855988969725052267289612048688039370050130661888459101168959145219782305253702463748888885667713625101077332406723994787432762178914456206835787739474139346772184831402010320983606888645905050218049994346676755755739830801071890885555341447064433189471627740031651890112568351673792213487783514379127926112540191282938543027440282220336906416864726672200621649542575197500630078742468303822770401025369048833836566491145275820725503393199800370123803862221817420068134277916151998445601527218041383948151382031486305669056390891725328593908998466638338251208268755366978880422623650032879845545602559692556260870134003864716379520023007057306392838873439840991466209334041774980160584566701216260005809545917675695897303980504497121462018316843109257642212524120782687351773252710128729866260211065716549483616714861461984863653785168341869022641054376585633480003696807132004414931014294303959152246441373456068801771036151944213296371650314402118593753134109523362883918213645494546227299841988294786038128783093377316349292016965902433108057235376611252792825870575070865306432869366556289494218358747667040082495996936578073083395896500078726121301917862921004679106586287050775896569609763042120504075158113001078403243455394694800819948203463772377494773291152252892783279958023369609762374114732253596109688060831326961324102529089176309766764233074059748588651168504626827889766146001479260919646843848793366718825134247528258715725292393938614442905077106229950293468041282404675577816054880066838280521408278965901171370174521772820150323333548067869330628200869407322183369492850348052994728862248844023927647769690649745788622555082020703507094334573508827106252300072220113674043268779867733522959612693496395082610664786109025007702054378784352161590215914810951961113319599471769177456478154179163003854223888226393879423295734357775227085536904705181876529073327951606252400247004313798670734557786251981878444661240946349404135176555082167070157040761898802071390479201596812047057180776113591848863048655070305034771809022020358261493572876695016200133908385462168823526467520605425739386158172640826079638803831269275076461333208057577024940053922930317052697256911398446220912064402911209857782064948407977200181424864928412330071206255092023446860372625601299238630291759586698105916071612571839678213441296265256049665194473215951099839599207563767350116546159753701108999594744207707488325633624027649884603216479221882767213140698030733872602982468332820105062403454554197272166722162840363461200848894783365994947995960846564959741125421645857891850851664260139789628762657455943721232860796108479279977702904069196937462115744439348994785734681312850096527915947533958135717833768499712422940884336271413100842018012285161998016124619827725330370177939050836075867107075220955849122201133711274398324901734122561878749988682476968229123556775377882812924430759305935576129884801414995596006273355637934182682758720813639291396080630011307466305737056740439184101618487231046100473761468018121144908864302047220296237659272778135592390143738623856752958281912954411508209732647009976917918317447800046290759768049734308910684455252465716343740039594380617991305945798040545580112161488779095859986143172954702625065632980122412191510410710739528727985268283509949916120864408176835395340237124252773507398710853559865138351443512604920916783758500256935591173076878915753147349979578203529653175569019324726187918181140160200267463652994123767381819261567089476609478331626662297653039172285848471324855103435078321212351089285474126042283917315581511501537979778952890379992620146792514124695012367421010024869128590621586203423116938424465822232465065052309470726534546215681479072643896581943466537012957778492859838569065097467090360577234207924610379136007722571101611985831888906653797662765140626302012243549456057248201461970121182503085232895913041123830345611199177364306060273370018762432214693165345446879756511696356741524973405945564356396484381775783998729438201437830124399372909840228625849910894755948161239045858749880612012469988475869297430580668078350061664860160249090104071713780831185380331691614196449317670743300522468482025221556155439657157134641938403000942335228633537797174677276085710469856978081688301914126380538056776576131579252065990391943000551491417545897472156321360384219182626299138826423693947746940456237749313930450401612149709803272658962852889308793365766199785902187382497410182080000408003322035948415829877250253626503208452567237236791491857821515176906521614844640887052042699277302664155251118725245030478475965810933406420399528906995580157882141100291328619937551989109267281276198948176121525713512450136863143132453702757380910518798724592215167110711996672054124744395517056598457041388761829752825538425701188503708121287387988982018469457008174732431126842816609690134565568888822725228187355881222345179719494235265140113204371357349680662396511938149368216310990516366794028145970880342101207981670656600227867389032494817810635912720684276393061064451785131790291858450440946254773460469679833025070162113713561741835586524355366263563048421400958556551239329564099204999610918096516312328040852223965710212945431383191728037882643411170183008647181862451210369944221741768163679388931694286790932129467656108859333799092575908642155374583395415973807729359047734601413269130184272915434365804668974412175625082070187311597943215395891788951872902645273821547184183199590906055465512056401141459723459805141149562263690824356391298874428509211565879762055310904444376750855528811725040800138758154011502313153854200643889624502163888567780619498092206966350961126628238555060043935456961913433688584139797935932062503901880056008151528050640341445039290740067590714139946749844548138338178265563942395728381254921620037503491284608082159210320966529317821851237588946187543647924125596931882679274223495627242950973792576557271834913499754480956882581247364432679355644385943058351003849271949924641343541517613150670881073421711420143867463996539252698836528350914471055381864732174720495541980509939672881506071833101361442663691526762602195147382241990886227759819412026489089306188386129287227010349772386717249175230859490600723013733635834641802116157916644312349263248562675441649210303058038831801655899077398852778568991176733587604670096700791924795638306774059462474447999203118784570309428558232655880550207594954975370562615790410336178726867791250950716091440564013816939153346806593308902038827315087083626037997090263079181374194729082650656586762738539571021342965993071873419668899303683219344379692510365688818058931264504748954694705872002479190911310829614426943514067187172884876755561515613411431695535010293020437619382600026747226178968399948524108447792888885574908162198134871885571843410097362415395417042850966204154271158760332019700285378956566187750235182182055151563797099535154646260791918589037415998370458882751213520639973926079898170872672228195801422825576314926693100570120452577642704829165193903109715206728269407570128785290900978911974522925117038663325542024716894887377603269899301681455782456676877977473923010058687036011457671937108482880507641443855086866255034814923201416909629673548175643749189974489476312317288868226500765140045401924688849120412365890926395775534904415592290748020777879832643665979783553424692331148782156248917716110435806071903435171502614709111361277125564195920561811203988067105347640458787452241181494954516844713250749359022571279729642212159719106125776166135114883878724013894089127447334215136037539019211111190957024080553085572356276466372778189474437654149092833942833279978481210316155780914850748063869886308819614807503206514913483638981381388747077799909396671382618456917422298462567748108381442522416909721837565224229572832885206904565434436930886290779250464986598786466958864992345939549834345193720931894682292241314071585034128858076896373674968028397962821578183789709126730646173048519062304872996301485973041490219398821794212045341878557197219429013262136454370700778275980621737934871953617195899037845296917810157680119599001935576284658665666028984701482863475022219029963192819901691862764895336895392233145501433425978721917831966747228632187096617247389155212581792328695235853336017981382439536966259436429008876676263671083305893375098837270316512831714288030883107964151036971767907531941867800657056897490102565801321059471703982301829465530520500237617257304055477790421280329635692301819005842226932371147338309402300856964678115373087019942046668023054109151545867185826675781336082894710482569144743593237450215649424341279778190577971758763721338971707153678923615282932323663486390564109494648526771836070847531056919169424687967753974227639224632999490452249874876778411059617889875708635206960682158803827153100137031423016440580769330924627461837960680382147619677492318102157668072564558151426524583778760698330388083937372706611768138880977116776762996003202037549686106366109080469945202274611418675107739779722284450843268867624957076139309397669530825012426565093719677342870338735467507193081868534128862419826392028004752638124794220268889516787045917052923846250666837372811435427558279981965377575927430872896526681405458411670339833197530136724664298079109950948714740893366443524074395595720255704558535820824992544017772769277549768145947205425089455845442941181158817647101615464857826538237945159547565188019311794543487578295894684553707229797448378748511236281351790574575470532418755824189577454802377357970418116715160107342372934512042817616317135006842568497036030601996283385287216410343989559341572774014053839117589808387256805604070211331140757082392911793691316149830610819575503448982458069804869749515948388600375588752807137745432039562022380551625319953476391800508597341760993396237069353559118718202674667735969595918725804363746353700264379456300035506401468313521527855722133909019623982835560209696621653188217752066317057801217532747727657967322136961981331446230083034485723992259087439061044823861086245105704863551870783456645059038103372173549521079190653700364931889135916788188249155118775063887516488773502680858968360670670756886881090489335889914022575626899203461115391783305191289814052571783342384747957169750486677987679340555384678720172014304474059269523717142609443249392111703999355746773069635564088219933916872627141167967025019509904632791826044285948478235968483663779833996564373511942135491450917590905345371173638131523128600722206563087281316866467245851152923027956429241697757549328255805387545162163530208966156311521202858326361840209105215132423327555858117095548267733295470314997903309314530098423487651274040287398980737281776647405637203987185657822068225562699568256614939664801751384502153059784194310237022796305340138351742495888362647508521480764825436306399160164343449187400070826396859138587117105470472166874333097953638964285617140475796522982825326830527387773374908158489533060495249705491178555337679439277183489433424131526129457222644938647390093465849308466029130900875884639500402257903083546886107874880631273638846283611512184927700752709934917670221696154959923500872683789150431042905455381973023599492502325067531151595350718438032293823574069761033142971805415336875315579511563385752307360656939935889796098948923762856701281042293721828914656257881410196024654809165758508837999106463871858158161200824901931520180901944339026247324279456556378592177349307276231003357658292191278180338916508956966653076877414197265817354657135708905907604015555521430577389708466677821489942732636924672997063820104970069985081482931082535418848622523950292958009911507069008544440844711294762491755621937893442649018406194146916641737656042957876164592728293503052047362405105547510097045919819458444455462465725706200341244609621575036245848513232706474469926605316077566998478144995486098840885910803345864923624388675011767414387892092708771143838675791122044760893764813531042932468257974377913037034508337032467848378397043738570255695823725719611511835703890629565832742455913722587546126717382151748618315688615955906019219889967411425738755263805922853283035175820985854294129932930407949526070344634367567152920572000375447936430512383602925214796429189525037424395259162078130146988917394109893295138135699804104553527632984506560443347779200055892033664004592037422221211489758746594425271186840265760606394412441490119320998167414540538080432916619342771554751433144540307791893830349027123313003501662076291595691197519747940761196666338578771743366535691485086632327426010322974107922720631281169696753793064663300575012982973100223619995974355554309735851818449629762249952061992677299514108418781085146313552529722832866332642746905035803946317694789419951232287975073227059148016615827945132983108534770359813737857909444331292514070824358908483377433688327729223488009268099088701385070634018096845632241411774272550323930158412682935153582374608002247675859242018223232814227533999933729625765084230433727165869011301719346631538126586805326717726971647351984089994372648409607566289074746966921124727918588920504316518388329334070475442318938408181510165015734495761988748868543288043529132245641436348184950256193738252782016441820734591225052440213215228940983106459694700014843717805821253785527293901331627039655498227011935974802895056091580150948015085549439750984336760644049495019784357563545108815119537635120507178821997129271949779652286573191046074686497326045237285918528596739500084149811326013387366175429959669896243529158230777160017194337640715368124226241629648465257607153896602423634832315533534025916741831555089638216081463088207396742850113408578079432710453247411891323487429085572853979485147086378601180495612161144654183276252606953899241185534276257458651056113184689429995847067571551897212231117125787131555255892296161436508756886553212703779361254602830855274311758082460759161083054868840849242603782453196706843859329105449173855748810446587526214132529857348430110942292022490492232224256522186409384580167788505455123068713307241411639585559262402402273186154006705843360287070181774817560584415462304628718636021316165301991553590165827257988940534792110965732666220747008383920150323803942547130609724215568697634379932982409621429046230249706757752640421373767597671657124681179001439195409984358820973979568002141697990652059202107282201805904462430608490274254582195683410368178816592217620931266052588448132072420297138131892761933171917361968746047108379151044154394492036084818449256584014749242349410867352666188097602455587707223961539687830585061020021476631251003631017614822141800427486701833616951469724758567716954905106490210403580771566672174546945403584053275589653292775082740236919251005371361655528475127197371608419887129857390646277337409670963764022470798933137079993919369578937776030370953082979487765963287732308008121809214608398936984216348307230588686024324525998589781009260369276669469748002638127115423565843331828825314326696044556459719034618517509747498589097985530492478042732921110099662132896320476287540619675876468599169879094463061414814839486018186138628137388117123751786254340415820941808838279949926552324568173303147878797607774844864436637653078181954336801731954837301273190813113821923350935766192067984815899632013647029230234007205774830446642476100601698818411605303855779223845736769852950874668248410849875360535757616186656310871917445458401545947182249158566074936139789917756019579906543638142717187329512497010459928153373123058493549418669463804691161608049690518718658244347389205561092211023978414519819970918255220469952026347375481266898686915750966474253506270893467371888768856885714600422311946512458262119697324469719170036272359013554756169321502920393882786490643932482891306975558302659444878632906630503092984624866669855727505468230001639227534092412369356376488035250415934599882085238861008115208135589030489896249058127556604020234043457808777821623937215294906872302967121321570860526064438554937516658561676232031515713004042142161051923994168805934890869644731517911671275838496347815501928498640139191894436324175832865784935390702672486115375193856445785592909104404901116542658344355628376907537603721693650901283939771228316934752901733202485670659487419939012324162635626347678369034971584934123426894642187610696625227469198719971269595464285168656640573044836705241098245543131598262411981432359409012770583161682731071986885464174398598493091143068519937497969738789076227017884921369173707939622924828549073571808405591382314182909784084947569113208634955925562561940072834453115440390957379044525115261846953427084569753481787140376659089782393400149097397599495556484628756220487397770897527878202324892845310551448865943408911640937975630894368871001125947822619446970378676409224402804580867123670418265731229306579221159225463483435967108506220274950312128824341198661735588994880059396994354128164518260624567397389522729694934490766688308913802677222399369812315990212933382415667119928592523256556829639496184985527001723952204759577661137869263562637367044387169219962646529962974887508388302176475970862629358443146773247784058280542674636925845311739964019857206464800427968277721607750005215073237323823336807065373479736955709327501775472878765442753919266361225849944140298274112520902696281489576274407796770351032864583290132392201292317604232773662173626973784097375950030177600364523142738621908511394689620334636621499727985690298724458714361738597147607411312203861972215798306015018111287591824988935935751926711299267438224574632870789284866565101881350014397825767876056120294143995552659553192364319098065999165125561303025621153033736036485709627122425306798188805460876337246090774752799083311050454220243098797382698846536994097468469868089828507474290398335728474019526526076403903761700588708085014891798452901910289867081600837189430983254707498913392352402508967814876639125381150675606565323857024836521886857750805694184188352886601374062298807716141920735462578683275957467836618545149030542262963686688941479478973458792428017682085758435056683102603469259597589301054153964932113233079744487740601537496605159078628474534113296328489932867434362616586986471059218344224240057694153536138744182608211341113899918663081196646576328687555360151459945735303057593231034245435667617486302564687017946467279149760379634943225452198122064833945868683048952573587124230506490515575294816475199469055110011494637541295102828888792516937641112101606776038992038743001812148953587084484334578324215309589069584374681938152007489211229725686962223449569042387845432919087573402992078990884548507022275242556187305461659219033936600367591100959077656662171725585446233001758687652325940958435120161464357517307345485814142347553504325830884037221915746819056089960475202445456791112225587296484273054377350915401409912926591542967007877218652435799654535405814333606963154068365025786203543805182428893627768936711711491934115460400228357893431902505444817261921989313336612348051362154405988936367535117954076216043432584446816580300855342103817299287753372202886684902663201388774828422355735936296464249001140739165733830146095773291969886041920526598088901864073510743763325190031474923387932039027990633057898288886085014345738544273456504832118965765095377671606645283784766389249290281149102897012945576061876523406633003319515797536396490001266312901320031585556166291950334885337010858544529009435312202738480189116395680915381921039879868940851660397569933038035808901978086827607994478913075708527313092960619874663350702818541248516670481904735140363899451370260682802397796357790207083731746339439851541857084647493369724180091401540666292099728619035937277231284501005315755433777604995785532064590253005958532585091722794969413590696540673288084855235781885637061928303410116812229758860437625734484901609787542742229494612156062728479855647396750474668741222489640591765056351747765606514198670303246175339283777260489540450295713011945673492524684817134968100429079047766067641943394192863129506309229802262937660084251109001512159300275032466137575080489979782835762165375209559978390341267075230345826013354087520572973744313516399774505331692199387116941679987105871081492792918203946433691377279610277985552766728288010889538610601559082869171838927142132648821536559223775869787232442237206075243645294832537191964280053075441632502920677905997817298190205069039163498993415252695465688786119836110837091179597079246514174508249985412462263023495181057416902329851642793778156071739255343287111651010196437998138872936739087588875644917817702892278012315952512317469033950738235855609323701762256347571361623231109024410418366491591266691700677433646812503692660085294440594228372569352364503248886686554609414849871368592850093491983979232063292735358334576520559083256859454952736897191599181639544676943281684373743180255266788890797709667041258999725531579370253973432092919129899084648739843799350548551328709611870741980965089082753763603398675511251140733994986013070460570216958708588890030841451977815655542283948492470864871792924002887805199398909321854094186289262483095730106096256627844677561837658957732673021435846637638659080297510612426763236958222931191435954472051700523478448272125967836498680332890612406245863935058743168991694815916924295584165833752614337569882656236232256072195407820345541534237807604050500120737251308041552721137921133677091189552721038295394284555578145949820153074715325474757958183491867765788233331076486994233258955377591747452609228394761766335231572037671293786140398783554496720940476546336146021321637094777026549966105488509425893059660726656350985147881778281013135509502565617900532664119824191357964731668162543498529066185377080391444573876430525114373456253339750492194362045464937846059289931925055363396695930071833039448102962197472239945491278515865342471475105688580341538501216476714033540802592831087333368971853896450327474832581508079170682527813312398624006947676660496129461842802298559659029854409083399407410365546268438617148610944242247528268799017416518257405385778338990484001188991986066384689115410433836206879943580688646031400651241702752872622069471939717357725121186782375324054775942840705384467375092031488655710640013727377049273387334801226933942218342541040282961337653565836131124183306106042908036069691569601720357724223324801399726878648364578418120181320337012361868842160913120319429926562316479784039718204034588228066836332582959374327032992086071249282770872167212490444796104516736007147806217744454567480709469503781273399483817279319035568924213949355539702031476837933086826786204748501971640972326482725278399671119689996415052270934817336775187928839868779320787185784916934197169780396599270679098925945921426006813025532065425458268332723138329973087989088506234660504244103261367638753866845969301101116374827929432153186892145018623880397057612418187804093060394697495245054247634591058224805585966597264585816755572291555155283187895459486393833543718462923594789212635254864816128713406702643343113128849527020359475314490267016989888605373907449422951284528203385718570507155541888741513637572999443201790890047477756676474021921985890132299382696136086966578793782404126274953190745860992901452855676986919037197960690240803822249469063707554197369206691613468686278630695313047050657971011389460179938720679763515700450483573286713778689597672855722833042921515500470800516115770582161302569508432427041409124684427172110083630966302520424827565511291327390703756263826034771375751098853687050549084893594938933826413891289095302107363602785667002255068405619642535846791371809020507992080069736505583768839615460563568033990237497185564679771829995403623360321917759036321282501033028932697310394438702029699714615398022652019877297646558173840183523059744786794911256407184327682243692628437279374004362818720924787938730528280839385900292520325329199413405303513372478008637433917591998598235369323730840723520730592681846734094173654250207046427497179042244018607405158875369481082617317857719713161191085455615789099721187124260082425466784858744278630567473816935514219267733495444406727934665263661050325488741407983500649708191118436843776603384088088150802813389129298875062573082964280975862944512322163407778364288864740771946478357265263395968993904215291794706163419108802611440256825611113535289146020565693466899178225197587221455712576234746420855301044309593893887571802768941502849510169530444756465566414810345932059074549424621175107843292369828525345593987940748854296547233946713730111412679625763105906738507680446820463444311826219794461988974435096452714701691924674484907031652613810135299552540259398248162058475270636218223147092315757842401185546456066413456598513582288562790013639669497874412195670376367920399773485284475688337629274809749362133564010726403358362786616373025658472076781127885864982074732578186149188570671399909449236198074114978314033483780376244184602599683544962127855227987235716319740761678599326565676410166144382007012259835143736966691732987493859475654464987007759971340219163817123135385753342171459905684269830969389315985346866979548890038543982346457277916995909837007576338003511751108876210465595421292564954189660647688775795308280863656318431688681451977863343839095367127965903920976829206544715345834813772100717998536804782920986639311686025660966041201453324760895093062042641117154455035083696426701158956187526281257750615405727031418743305227451873859023999340333942746219104180482825085264435587261207904141195298651034514054304497225592211125259650382150208275915687931196835574300621364577982560727415919961417636532572633809260535800005012443149111858331084996721548230980558252699270525131970255202959291921263703525555719824743192129094565502630596500837868637609210871020751561604619416689346093530504881425180104196291103146006731841214319466900943662454075240385583242008737247421663616015131939495697110930770782545832327654969586856784680316985356488096504882811613559933455703937002098985148652661303906943660395983094366646334078395421871624175749107180871531324344005766591993504368383319962588025102087530198725535513144341865879730813847778195228753588655465016793872762379560148783004039574238005400521068554250711274957851187858737242605290388655244858368541833476731518558121700216009117330164357138912553931199521821841621632085875764710109318438966326792123992186901191600901399232154322646170497978587698712883271160634645422430021729356693558477342655075087054788298196794615770649863679392942457328548735666037304810362663739400996577614831998031594634971633165554221664891070055580456556608257186725744556828248933672027762637915875417576556401735852214809877415274611300037668091165422573695607618242569512162327874020022977245717225458196310684308380613648325419584532814330894158392523855596889261501390650872303769632566636036374305506769243860195902441412131727298483517542352210736525530244438826981636455507148983627815930184133839098834149759839566854642113715628472821427041660368198109020330249366248349341793088988243222957976717258330607517919499842657815641299583851093712278052345118922350886026496112386845504180030551117009608469913624374177133412387529881059818447558952331994298381733257823509363180670046128838830366823069463304425552605030311104873332813575248228767675814755033660708415469791119390440605789488612625144017710735617986934181921918001381819605853298887962640648413339454305312726106337778721192761087231086647422593056762379715499903440577366569261801792119059962648263308138683221634681605571413001753471150191421919092382004188249238943166123352696252120458972489059813693905773944733075955594924674791644713866312715637275800430067638569959392707931258075832925275645133625673721510154705858206664402109918492341495233101839738802757826519905862450202948690039069328896142475176870086702540246347581873017502236202873378082169288436400083352075729686404684189333765631059514740189910548573852203359986294365411357848861230508496455310268969651315658861559978328609405109895545180038099252749327364092863989051873804708010532787709149266490866229507123903086044112447602755508228619401433259804032519442424849161321212292925551456219039630243092381892603535220259058404624421101833266906571332861184503880937134566230881114183377105168591837587259049262794203816674066120456049925304309593429672961111545318771463477115329168301899596599301366245122134304579543727615178167445919344180073164390295814551724508915735214460180475297527587922377452088645927356535519247113850909799727390203239435436497201900084104696828450025764154883739100367862602988874328972330649503041282842194660663493984021202412264342132479678874909335722138034398869129554933327802664504607104413266326143860611004985572529786607921777067456317926370266729272117068763051171008312429123195259731508921105063112435015592792261057551711150937587625207902451407067039108869354372709694377632231587621356809147833794222587724693460122967404252020186127417598153342154377461137988706123228345794813760980728932803768473086339403152595230751294708746277875645034035114570021580331395340351668896758197478684374661216268590551617167237665957375477301033680726647795085646730807097696309927275341561315690161755001719436027338313768837321134711209255697051150175720581640050829825619363584186422344110764970649508920703036314574198139887836041206496708242327417178750515294410183478075849304435568913624675855311205235218978722100708177152468909623686697490731673534443016409970460201863473149126110387142000090177843093580126340234878392462284434755618285208324786967366421604770705543676106354374377987837389992098051254868684171932086666818453109972371142389203247635430465383383849309601442754731036176643993345278804133928401119944901133100911593593854508826745514094232754151694334341310370391587165665130494152285640025660172920684318027504102823582198825663228389734412978839864536178941752775982830774997634063256121653710470407507318619865505103817817870177676025520602010239772610840404118518100924069870389976834468536718167775834306432206362383316179433302856946732182144246759383747071697390838100206924003271626236026539505442306574865097388077700141174240431014054007319268847178559586510324375129611612908512886229531914183756590224932411938548919516689403454133974385623840047507969082707592294171484410544997388957558238514507762543706214172264567822080177418360066716666069343815576633189224248500571386251357802979558530976665058319753397466301073394918176519481429618997356422170514637871723337797650148569572859341025976038273221271091204181398142642033650265124879931317440851081832791517119743779121884950554339943699234542656742308354702768188560178173352684706912547832013213595653548085408782131529822068428046874491129889159022980055516477532939981126805621056593288059320194999398878779483878693776776382029918020566000761457880470854790797953594671743008586839264081982837276938303304155824428562431353562167815334006680252158774170547322057636973961943685243667724682033810908325184230908726242100454317257523257380801363689860462775020812019002896367788545292295286288368015037273973708226081579278929470713125295497730855681695342756182484264870813631798455834626129185382164850572676794395835169514501681463732839835358706657906974292788774739179382738442233003180870565047706787513081423838058188353652490322037252764602863951575954088679563018181253769412733042692261270972357522374249929011620239099149619888537118051654972903691325104447119079723379746495274301501289870363718147266013341702696921065815015726319365540351599655124091548532007539813730652308477598699505222587993023421648216451836004039384032340370707595741864773669682936842209643537508884377940000613632486530337406387102989678532843035045604464854154574529676593727841870444554150956859298908556407793843605327040632059001917074953611713954106676367043305189767305269524867540168032880802013666664656689735478931226874785689624341267912699024184790736412405441539075573915623336205897855184170138000824073008332882026522168327254643822598020178642004581753661396049978669908700951068448642084156080724935230745953751257714748603873298591531911152569426529467457924240960401279318743392099903658431314620109901673004431497586828497503004217831851138762326718696419647608593334041359121852178791207148391348072881634801579229534163411995057847321277830682937348970006734307006526779791340587882660600106080121020566165053617443019031482182113507394290945333643849886936326965396150773238618189495252134796044063377372446829137349634519153033822026371789909190386703284735861252114413002972159493807664106757799699904286170282721503491095385355924867521329983222630575440944984350095190091914891592173867877857399039325261933475363175031574361294947557062653021896886893686890037154739141800691391039693424082842579296968758005946307776925595658223099823126756455645206104386072002843559748152012874238482475780068913693956294746642858712337494370088461016070587809179663201108278889672071098941004057552748582228442568747447969497758648975306428714649804789775522071965150339303684331294318802981688077403217611086847451058827011212456583725956186474648069599146103899024085975197220763703491577613389202761722179038920538284459718299575011324515462173269671681132581826254612766725533238312978398900347188204314886625164134241821156860620225784743759721521675870915624155847491728421716534086209985382603955190843467198121639639257772556603658874823116544350118811501373793927555407896956835527559661178604462788227424224090626545154350535959180174542125600814789722945954300384280984379459629376778333294876830769747040465843697772336992319389800229803135450202049394055856923896144219090944233265437308710214780748985103294779487134227859579031153310833862438599918115310277767423589252712229828824962895236501004803945756212863225358055792434405886797124911700599916366872878872642128304388629905100952188235791397912939570412408271063148041042734539086519474860067389049367411643499181040894713982978486321796844608206174777356654328261617879438900498312187360865428949593856782828417172080872503650014619177951012882131727808812743055935727033017599263557372056133328523944244570090128576592757731433007284328246563387531579485770160259691462287788837042146456006813674494474837400075163778996874618494882060249902074383952612119002429501543674825381243962726836266223612432149907317263408969027186557368095674857744449444396637119423311488303659975981029762652432689821238972989938337007577113206742359266573932684443583137218622550167327853729818322825702973688681256427894020542393813165988811090367455190433032866128757265148052266822340691947910767489726019302989939309512463661048622001262729349925407007767968835180624693329153320494610518615923598895819737309938597403751594715753137173835382605568001507762008729532879861570604388662582398155523107407913399892165903687758652270676589598158829486739818322776720100809013729184541301575468147807248526094482091392301968451648290191053879741942339309078187393649783268617655249327211519563551876189660388169007161396351102536208072927814558064124576979531410374852595397215316703146650642779615199318389326352763442169698332284190396548651867577199323178557897389861282432105735935315279709728084354709784819041389154864215647155134366646441513819891125022989456153154375815289924112339822483791556587810656457379198000693225942232877044575528812303834286708193259485108831604474574720147547780210518021842768407922451131933706081306635491592392776411970352610647147521513390488981237815187605904069327516756112306214426914356900751570640123597328049809645246755384183611557978938863130184403829714200730481776166461473951292851458850528508893211759532799547328770352214642135599561112114385385354650783509362944350957930078757121694775007699492780220481649072971798542233204232143736604894681194529260744980750438210694379288367980491259526088177440048896302024298639140141175333033952973269894751090201767285275210719947545694676267785365101789220659139421980426571370981635567900228375853870719643720653238562447938186941713733473889645119758681798181304322199445591162409758369015806469142073728955391112093730360786504215578262790974151169735193140501843447483409565574669756175003408795173674452384697820368936226758438700465684820415785967896662170072675512764481407434194254102967960314103972516866856176787948020078480013116416397080176126347141440033373152398179657378568125212713629352485976816263129755281234633692284494385347525014284612359366332778985176651824414000094307371779245663984902170277808496484177731034374410670761633386517256338119199520748384155176570321682696588204041513125112048122231127936401587926607592852553764994589899195272139416956296664667908935798192911252128183228085380548938316425838232341354358333115304542488859664317045850906862164159843704504858380946640533172482025433392110041364477784036665383297225494531151095959902598479382267907757197843311348530747250767743141205271671124750554531966337936149803208462014981863290516073654677439492369261444252630298008917932567527997855708757684937374836742491766268393016115740610646528843508491701509517645302401691894772639408396412514797558854354606160797235682055442228677792037811143738398236234572236573568214796911946128614358630125760853876918164787450109973312250533076528977609239531894073476601954866272829734881654116329304898668014016612999758197789468921173250199712330805944174783999551087008605550892309169661024838148027078930309396212653110085499888002102409837009929783594188860203483665557094247514924315904018420876119385037067027906862996422395650627994116511604651357426245834806177347497020621363343925700099461371565209343980732532640310295971087530512864262517416221516917840160555958871824064390502079638685898914678551827647445216571699744866598251819445946247840022531345773125431308947440040127476964121918449183359055253890636712846110129883979110567151701853864580366505110734215180584926934593262384943699927276751984950014434926517498195521733520733230517258511792516243020176461793888985463678187915544928313695811964284412229105614765117295366754546449310708571257151037042135004931607502817245810680179267215510994102367154967297334390162252843689744341211365499278377515303938813990972308148446530718639838328849108667706314433364424057270632090627373055653051475961962923165185370034565386105609790638835194767218878323807633908289567410973428659035904163260647219139127049888492118392204374622663680629072743017786105811103350953919836775888974156089903417860087853689132438266545808672484587949820529010333015619062208114398339000650969986445144746468986399677413456707583381974036974339297169337204826952597979845506850950007183760526184260665389028037158114776063579346584201312581370012557774802453703541262749349117486496206605001304684433357497451987782116016112843046108898313510934487422071411005370913402563004896663990762353029092853582998896415606289607049369935135682518953538294312556672251730779790487900488525579265749293030420956602150599186951394354534033978546742774912595801469921720003455068556975862514092500860583465477999878571954587084269165339025257436299294312501690439265302734119237971750159072761057121766596799207074497891552377755853528415060324492826259677660063233704154646806041996459402868568768227874154656343432891308197763761132366837556570288328803052480506008315555891437063768115317707910146388699779273320353627792491666466418432692848941305207185709268647504521369375056297770727908183301568454153755234651503971589237938900619594745804147042879984212395555058007992645349382631121990876529906140196712836657699287868849088011805399499640807016644175004010622241361866371563960350135808947344357548948707750136504831994186204090474242961959078570851069445820438236556799073032399787910565186395693459882315927475563144030112193075703389995310115684457102830488030016401603125009300742820000332450925255307276499205415801387348287858590087936575156179337327731839220730818314922263670411244933241852141660399899913067805291119730759152326888608239307000847176552299297236819278613142725582567436853578184771897493672567809841898380335592679283411738632063767143977938372833951427209475861602833067334154604930061263104353101233438144252878052494392740619772647037598978152200654491325416147110476489815453617962608917205552755846702278674534803635465615517246868115427617807515117322052448573259831376615880900466020611941057688943343334031903401066341068005249813733502937679703853661755788187533507671118514598149798312191248130839052201314926538825552879107646273756741651320419135169862287312225093946267254846074338283412700606613429589119763166173407985759372392547052067251388195037529915370667480997286056104629155304514373399456055255905297769756064284978651938937033425263974052104583602947710838037255744587653785623073933207154113244977194792145941772262996086226516294048187042124314900213135429938822351581916046203572937878090201062712844266395963833724491770640181333588507648477245102866246256893806078726160556780612153828193562620988801927078293354923176451402439335617839486449495878099258412396434997250720544304797097662048395219805071799690067221758342083818259117681952396840336308275968663153725083961301922382452113669330857697231238501168682170051115164029543577063101912892363622363451293292711376064028037912720174221283313022311407891225570341978032331156399648059696664038573937016128213305567368440640177104496105931918807249115302118229547579021672862827329880080719248556304952656283191126097426130539290850216963242448066214837524954933716862903683995526452730952036565330135973959336935863059840724641851486451662868047909701713643008904748150303194842236292698856083205021224184679140292859744379109345295254671956689117008249952036447026506473494070987350824930869322061496470407812947793565875863015756087640499657622741839630995091282814931495746953843381659974359164643541694012294972853275740598344546576628595006117725435676897191329315665599268347211543968433483749670874733858320682317946908593257309155302487777617849476300803906291428070503780795662121357280255841351384822874470686604217766078591788676567468790373603070406322190981015794481440212998831454649207279044935707809422698975269876291252804782466697185758394856000606370240883199095919846661996911418089591105148141782521170396165252274574698425838980862104173782288361632169626561340312529324264967975672000738504264731462925651815682167781265521748269355737373290380821774760835150179910768357661796317442404832547098887269595345081901752291475099739506804712668410220322937869875738131162413761246388550939956123405290693616509562613656112199385355670484236774247835452839464630159070315865898010486356135034759278598422642242466504477959127181392680664479588288174313628682926308544326824317642954329099183942817944642097250968674298796041267941852565342234262376124831248244544972820476838454268517486827223366566918747671251412819910078428252129281629266900489786493450732390413936310926750044970689626734578221664624493383697070431130187359852968819634770889393374403445024249600136695670149911119795767799279514036906721639217811391765413087079904181321697971209915433888800841543135059750106558167121963198178717618734158413900580350940905985059719293067149219329359400882480152257144329302063488453402141562626016354725512720104844971420360334067191449243722564389415225553177404998961260480241354931217337472753779266070069160273460915691915526581986772540827085393698779116354322197871095721532936404042374351655558879451465217658817097024806919003469550868884271619591749139319060135098997771192718590977304408742880265977922323710984520192907938113403359603389824986626387517782916633170747341688848109324650300584873525079925406977790202084839085920983855415706107886021946525493453349934623409812701542496798282993453334982689034139810649075518266032784257063416278340941857630441203776797422947908085766346500751516319911374518989928791249910147561922493203555462667090686033480460890887493217151642945207772108563928899453100996522196738142132774192740835834610373207454483597972123913598219927147398001056742025310143750709919632244930698622476122408066457623495047090315855835502529625123741224595337581517712133909576987226835962824211699394426491532957146569305785573126352547039669986025820930917852923330195007971391594198157903560573380458074723473983923477395958278134070328596442428640078929404892788285164294515257557218407352963760505472218713259958388136104579607300466986017196323962067851616082072031778567145828274413377921688563682257008704743891352910844601524622288132591811584913962448973411579232309847755679087845912648366889349400424450197302548430929206538753636347654907221629023230499784788695897445788316146141273723725369658194844372394970085754497245743607927437826449232678918263777863787160116846364312535109557265720465801769650199072537009683167571469150387002189159557159444290549675494212817512219719529964566410167641851886785427299634353479975440737020208143588496612772673432912456182963908105230714338687650197249695427973080372423188464259009675526723191347153437699268107323595445055970567392813560959510812227985782125246959400293117823717734964662872009548653075976091651271966017524062876213935825784749914320024468559441108144054899826105780297182972960419435019078907247129383890979140263227601575566456643183100416521641450616433605260979133126682720710437031919578335892584267251548436255207942625594412693622911665390677798706803374673534379045227392823116362293656533560191708341932381349201368083342947687411029131909263076725305192380897415906533331913825049688698151009624471929311213026441599556725465281454079880529644679721252594638361575826803015911220104023406169922279894388486492952044798547350710643613163244259097371561492561385329878136245521456121904741346839729824319565018186551955970453929478172415120447487006626129020111829831771793568009039535403484524201973902609587428177850195353880045112688285812553665871471839800741722341288954220338675430725418816861593042397956396687100560927932994717779313080250322832682526409087718560891037052988752196216968671291981134231983503983726094168327852521253114457746308558980225665080252277627357831282285274537880942286446361429234222056027603570474616588454738698773867723049409925690683379038810437103122406773895412091500291637245267122950047285123166450089844241030168229887771748787199700682297585344965603643586477925281887439290815131743873843120715653707154008345806778028427351896619899433356997561492457150166527460237136219955626852049851207776822501421496893888724243158713076735116636564689346713045870291427736958378190279064609121996371252380848744906977920531023417403394574622825550504900047004916353059252152255776697193266787606715859232775334423701106881322456656396139757585877500710028347409637375483829611462539579409813932224585493350891614291876537995716910196238048885813330774646662635869202979956816941774762847889685259034388608515213787096065711461256582569526366155793864618933796013667130532610001698826974861631819862447926667895924180129939881938564191811957547408956072305546219296617223449705148427972419326861369320711033899848089575342388828292324061110032657439178820560759934450652511814906226231566446360087755415291924182074563058736413195616809110511706224202327026461388967470249356747088686765879182285102213869671374502463008666280246556496061210254029121227953500454001783574669468377421223287180347391889188544270781812096065322178777843123337097052840634717960184727963313229000591379077107712624571503572459425716118085731681721046599051073500835114949137652162574715746770243557805455031928443738997438246559927989980402342264325513490111079698673160534663986456575676779956240401116096553419368712746684138935567394550748348541358780095576913674722185773140609938837409519317729879436212532851991607069281079715234588893087858569964191009553953768359474389778851486844867417303774488097050619263588075178383615476157762044298696138291305973226395206111357643630614531057379432407108247433793795469931213526265286249983162532474548494102715288665541118661658961853818081496687451574034697378804991694337286554375483014092941049777357189230289105743704398097768262493615040286247969195771538404994605341163764797739066478502201371669967765992035061561155517278210326349656038801529768937202282305027025907955241254617674866693718529018074436789943376425641898918626358341664144410659308935727224088188823199473294690297073017161074914573015664672590273838172342340621722546227900761496750660604285744429118567376049664143668624621559053869712178492398221222649863501244484060302236574865527466264715158102438078296508150714061522210146513994385597479457560178821580486374520932050515434942288577710244586928969967559201001551655166849258450884534437927657649635646392788165160928348876142189921697972644813594275713176929652807914699427672373584535615318288433604569244988873590341248505109015527862002869236451841488977506625511596690483581815646873641505496262468193812626769150856550908242735569583784937390980746762152424639659586905240683347740488354901884730722258280689231444384631327274377145458453402836516813744830360518783273367648785989902824573709308744327481496334080103820448535585676938183747843663609967549120621170789810690820401231944484505920466497389227712649391509626915517244866517311825755809845997240808397448639940527081285936109684739025925021296232314647114905351553387426943388786556313463856615654695217968909077233257513894344991985010082302889308216703966559904769375518779300367162770750130687464815611029843602550727517280715038528470150892730677588338743839366639698271297331764231885962674779092100174745025021029459269861511779529020463907283466141854343720651844844877017710474281559394145510814229910039659474534288219629837398525422770994911443505734700356336252422849562905832032569779297453249813178730936597724884622710938866887290472539735175440864666697417167588374102667468265420567336003424195717361021066893393003107512660621287823457495874488962101183309711451689587544039172711684676618515987210513032004403496963685227373226194587390051765282207238010739425294495006192057473458269799657132500187443692434545133593990913187563935741537801384526113882425812576150981798132050058551079528228424035095160027657352854753865022667587941437444840093797708268093506455399611861135871720756540735981118357922518693563792444989350960934213101804304565099657997912981983602232404134357501495224434023871274414887093927402009119668685207290649202336164337655586790618783378169047729326757283917170639365884659336121785867399037773452095334307563797864265205112715884413249537126103311873332562457572139245435408251607976772377059842036119205453870122367901344701163671126000948362039912282062782240735379149360487324382427341419111142431555100846682898952368469609148050544121432983053204903980006369587169980944663705275838264741029258784295135034985878586771126484145760029029054420500699628428664983845436130071095698616950272236053157740255773151791781616349648289328138732695941762767991917332706519239643401432608724183216113807693115278598618089255483493476844320509828288131668947081136050429334849867598027339378593091776980153453969371400527311051984393016096049739473968584489030598393562666176779417072375119988717912422538590105020334719002536783979442819638104057367551696746449900334029134040424451413779181100829548662315673689154801135732930503116012008083616820928589437201720738899808018200228558373288503468425295482010740618070410970366040601729010183359433566665861376524231179500895142456663333163979254925246164801786373977874787420209617924936623937910100474108645206956280891434626658180120395348598338143668018238640745467591683013824368502193819724287463764187518196853667241462476478567717048315466396525200968835946046986868705337484635374691198907782645012940259457193439984819209875361796037801680751987254211697890846947019812194014922694776872800861066529869202151886724443753280933313344618443448439942688164012398916179125066516782263893142592938844022441370659912525424257795554606349610199507641133835927524329371625028298344543168192648300368904069817174841033388912940955285910898422161516587094201301285990036642617826050106711626397822145268049792371023562785243865439199990028094039918541475762554156801326595889985584723443427925013096383248329981008675429225093702347832977826122755778534548389981615058958384671443015456912023011896543349514132623458198542769205445040304162910071091652112510717913841147140331708835830704687339738159534928146013609499810709433014814912480933905826302867601885492674022900001692127724137968057850646551273413380831393625109557005628972401280231680844649706919457355982780837009490800413522175484689969071799457689550369936929083446891932829691741054376457797328613404771997072096804844469814817479704702271952694161787355260119880951168699725320418109900920686182174570419130776977078677520418253760767076962789261947367654029876808461435505617273702942189344616153110449854513406020330710757057120370539607819191220140401227172731061135440593265907329542959213681303497445384384428263791847209137797927807634925948972382431422008868978226780793387512965776129459300316671669685614527636201303682947028531665510135183957905231228560196109708205523464861111722645817089018684975785051352728019220072215015515346123784514924666730603232674481125209707133413148644125411410261419131553098428666214425365203491773158691104185340891235299389819306994301204472818669209722544796753462163158328428557997890140982201441018795149674007559436638251695529747256968607828121270842336210230073596823916941533123900395388424680561981806995031048058588710692801340221718505770296750368393789007372205495098871519534111908861423069217456501078646146599500039218739773753277639720260132931138721367333900082350609044654728546738752795797657634648578548740626090273524063679300995354433208391480702021365111637296620564518656722083103999224576949765032569776311239934415184797540288255937140129466463150746805615453801667786365228935958925228974018728245618012765558507546130925373342006513936111387408449873734601311203774277712539706880157870846564152926130597299714602156265013098183500538042760658629004356399326383487917804963814620163413272396898108835863799756808437980239650124983763255650585576190424799027817941206503654049596745693009773472099288357782066922281994989409888822302891240393289746496502134430212798646363623853039350818742660415069361115691488838575385752181504182335471335869643101505946156811070395426392957358870568302833554149884008068820156173518553877211823169121535022679852872732033787828891533024840208295771927792944430739079947422439423042356332862966944189625288344923609501911237562159626527158528095309544423206605323755093927010274279235990804837093172401134734610357185792834282862375779645144641374606460839849111613660669785684940719233557669173615530925849794524340027535179475631402278749825614169648432942864129643394917388051333693736431028874759598973745502093196725598900689529878043799237093112985995576668155333968315136936192726911421741130305187592800206014508407192398068236754626599771716702906278725250159821151557462258472421958599853091385463414020896702578603373126531209941780708996895788689240904781011313015007074970386406043075486931513809745483806462581880483697574820829778524959228443188515039670971804129077501581099650530611138923088594080104949221877156271250144095834832429826295233310026127955585631379474490663367557511923184655515981807993898920110819562524514682968030489927562213234713433473412514833238942141686689971635569215112987774980164721120014107537942313753290460931427190275902659642969780198108323072522772638120521774993843545114875526509051731282270942419848687492129590635861988815469949670927890972891293919342966869099066927304174294431964544673301714381679869391133918980768923157201242717246355812180132478807091628021322938961529780883020658344504121103961295802205306720838246199674608746434431823412832086078019876058095035850418344487190534320687998912016105146270045934879194477505473554650505213031302837865193817152878614782500512752419739810971888757315134864738960714265838144285639856584136466049215085639935522667646263229030266850884070457205168873620911460051114735834285871321134006166555549923443365577709365443841881722365363960107530948328693585989528044480654851566244433048745993726158246202866291243342746442705208545838948155851679197915956331318231637356515774239985257199787933824166418292300791621375888205653337340307949988276325872151607344424904825425527988945697681279470244822799960148909279373717258043564326773967865155152594590940392619737378524387872164553339528878044847760416517124837470354317224167467955776362643373031992092491913935943769091859342368351640715945498532154726165772120299131104188833943098457364871873857434654064150533930266386082242799502447319449952323649162122111444155529469807872526258588458473404145401416077181242176522840518711737589171411051422251192243850749923109959475227897452528527647979508638962476074692024959194934478045306735784340367471806744876787290347156027292159876580314922943795603098077339347535122285224012149852303792837535562035492908918081148917005915183990146035702797347610809321280053653337517921056252420669477944308697116707088598194057751244903583715278818537832512005300208750404680911124495629239915365974185676362026958514713468602647637454047936666316527093541941656742972809322851969842490070599125935767605124807079628259616535765241306857436742882020526176406821207272223159799635269158711727299372292925601875403362929092616475119489387946943932415082076891149052486097894922459502391749195109037075656706150683038139939181914077879795005022080185748835733212384494393672026103494737105917172404599571458742895225358510575393261528322472458923921131381657035781471351722423213463267406605698628411656978836552520958432421104447073529689387826833695504699335451577544073180234565196695152050483250695538333720617428768844860408017184906611081652311122498930727649172824575630780242221944823662779601681328269593834971094185432526331228453700439802866927555911382246464864431911277287008084020292116753361317746349625237151754829686501245113818668186995729664528745870205523511273005876972341912741153252124539328375831531530206463915100736985590441947423929858557822549312124083025462453417136746178060833758444519679273282827576361129706782477104073018405817721463214375308736702925642978949284287811959519913928386407999667523179528704633657662951712537635666676728018104827156676927276290833915346169474836990269446204993814082547256416588709688980135339297632593018688804351055766485454713208517863065243171169378591885300085491371082684439971033412316452554655354710482426388536358084176494815019253308778168317619810950994096941905924209163449111061593169294489864431959074412271878004473726626970378529171329177737233425061251887981026727372422115438257245838399614456863106929068659656097107725664520668028450821220021273740836353170779034583531855643332528559533376472317585062407529618140654495093410307934785995983888564599680131913197500671734040869823356660270856311922735888539092859817661489395879865235468246418198186710471210639982328116483585517657274047365551552252884301234681211342192243515755947352464367881774826152227719521299547916320911203218074386157705819159755158649198331308942402315013074811409645178811479781264273707022709961145442291521606762976499044363659707952556209846683239719667324380035461245005091432647047729467975662786621759563518545915249124899085558283863083983670125739889609148589620721320737314414745144269021183925507672320776750531474354690377152527514227923101448814049000378954192614832774302392700329348924778681114584585957637496798517878024309196729464969674108267351602843988597580860099930325483820993186542769502387886371450041121326274995250252681512556989347472271469300895104676167556632984672322196332390229798141377322953077771733700177834710973266735339963718980431667563515674639485513828231347663087355412209774860586230660316764226089543182595718764511954328366420056227565841683807645552905460471383644748271568322360917585319614614314928873707702152987502042833737214335175982060892138986667673381301928150040097009572919827771558797693538534429901410466233471967505901687569384683396702491588332767706609210985572069347197611699085985822855835143707448545045870775881431715676194326429997558591067172615511546010830809805107846689297194957181423387346322402672339481772501712010922458956780327972160402114126383621183663609636378594913420701618629367569001647314632649779732918432354371980905014797315025946688414876689925468369782195367537260205877869907973290092384506855047609302588550635599530020584274433195127103148870557969235151885249304785624806399598540740621225115471574430762852230084957723101196663989431026951043333929426334881365727091033684151695733521310333608361032229199274570039828401148830813392223686215445941843519562065599557386910016314744702612936345906516486837290366453017596071470487736150278011140491566291110916528943753421280554450497538699413032390438651345842917090115509286794803837033169342299291479693181051651329964556560746862758784441886929261407125720879434058184468605142715374397804305821114511041313468034370892814920430868043400206209236489706311675421202178382012126985499463598491803109846665630456397201119589727496593056342670833614809352013523688563314231290118466299290174622826719623117379960441654922903293186876187283995841187543220382728163580483029336562230738402346720329694501922243672776757302316474952666897569919779151524818738345196930911972894964501870577894235859967853166068297334236203247661010506103817544489254987486674943435855012996511718877968548968270393924709849507369064333765310720671520401054236489856820368131594991373085964177233391746660519442236907530862630518914926895152727815209029560063756914839002472110753498067122607505917598207233442929605544862365091622488774196223879777085142226782039712129027725951376189832468871913823020101642861207914183101285365318241638623645517437065877173978291916933118113351475867437173214046794288081476216722726731842190974322994268271937376556986468253025685967326407767748255098305586187559957711892405357891553424682924777037221953565946350968000564420477156686806199000678556411429080994447646490469018719029293737985253899443420587462798508686282708223717516111679836033455742088401346682290209166161548088720196172956311293275912574760298821791310322247304711589978984211986865159871987015219300798645017771788669649503461899139776176149141908393980709573752981128465160073387955515173657095997454560120841728030932997715067507031816035948197414849805856949241806156406327139829502355043592631973610194173484766744049317972365768365737875885396367605035655863864718658006898608151833765991548524519284139279691965844701937451260214368691747445870744111923156302881511324393008071121532747951089945958615809217757297495421494571037094565042937546632418867226389632540116434540829983859048239703194293325950814154206696018758681346126818592917130447500157479275945128388559491303054683190568547214600675658236622047135885700175281600619374348530437917885599860610261935061537814028345503825145650259325173155281315124260747153956341759931916996219597374765057977728813622077695543394435062558196680623435751682490990960136601109428675109326897876204150199323749959298730469779039047751005199387298970309607044690609562611624876926945746500054286105306735563606316849000701800801866152986943079433166973125223287088420035528706138789410239287170960283360832159981359082295717885674376590757167097636640193130203303599109800456877788707047923364919048575331684069748403876984374019900981980846675873011772676978241755903102730803512134708147261274412367458135311407093230330256896462087240728288803080793734168689353883232166194696884420560147400014872521652664060582938662704195063145624250975881113731060641268216556025901519122770690430697056230049077455004805512837679489719860146686605943362037216291859240507618700091348079614527549338229189244396378514806489194757401062982368549333369281666168112503579613750757894034837945889709179000161878887409907113937919879882292288556141661964918506896575614269949517072547500678285734417026337527551259649496054882980476242474109789035913425234774200578239395899212757545917130355328980738320231866354868334436989612191195722987572383430927537521806898764960742323605513110953227265294138629882533085646790418046559231841036296679345531497701095900737810575869145537762154504846943026567159539731344116171237599289828467347920746603242196677629697809873718350970536021110289171936884598337494658467990950320423414532343612216048865213311740543905156576593097056581174413148740205278840985922954822975166738578343367842011068599207860797329650137359476313709469899104398960110573723313344084315296439492424664029808992215053210851990198778957491387690934295471455969771255565224019766990766592494916044445059802742136981344809006837261974297503937398283342753017992658661634163533468329206292174212130703626276350670262780266219442300151413777301208680854798463648058230838942271117312737159467048374221851287811923883696103467528203993359828053787610332066004705991709626073832348120581549733721075622284459905194173349090282614648227743189787589699250646392905180945742592403244587491895153023226718595913362655049927483811176391075778286700335068442781958813316598691002036319081527434178378691398313220820617234607088735726685389694267280973958423964609852522496554753950520877708431942718311824305839163205052003728018089278027518180661982465652894873450445031252976851628610647507203282083690620108735825106684084438837805334648141151251419524632434897174791272399613207696737994730297107244825613229931742656302045968943263213675823595500464741878805320704797069064118483077591142882343018818830948433230760724322754274706545909862407857493301826640382683825180418423984683028271633757392539788745184602128372163252781448037322503830444620775821805281826966930221805257925412259150148186590894897429494044345814999645384337571355553191054687738729189656617358482122414978631882258774361154695686915289224063796016753020005819215059086166446632203373804975696094218068923959467522830219394532602018042403950729673521157335428729951345119201418981392372014637518283532671948739812310815719895121413177147605001544133763437330597423638588251891349116216918384401407928433402443884740221334787287501305991185673657394206968687503888806088942262761995810156810303740655534532066637398637548384179195924899011526013500073955302356424570111458406241927605128172281051197259136922194227376740480602395983671175540851559459883650742407522380082643042640215018893699402035019166413880117499850234794986435852903953863352934762295791459242175529142775112868248104346827738552056793113382059385246344578318077480628419520610682555051834829016464247537559692831197525534612421229183361709591996832124350866579230526218394887350701151053294156906730108872104354479725976232075273116737982664949313152979925482732052633774255076464071859011572811793740987620198541683268769271106984902453487531922098295123746190882813177668648592279105578616749894856078707490520122872732800354166065157143932267643849367893276986301835058853309416139103110942738546351434506721393178819303780897289512433047285135497413851568803165645732947691731567668055140848292430184752105429213106756296068894983726465862413155169037840361753425645237599056655564369118381044185245768985875725915869274501483135021986716197994433292876872470393349291188636642513378102318308777056310349222523508573144732458787803806955282333703178990193697563650973852532881897690505237704123847952703778710434571312734347968960160257331665583218460616550228243688888318706304688341218390898963878908719039224671154036639360976241561988315846250686425141365146998541093054235269505110281874167129307998271214119709273215775083542377838499120490571538370126904289175097972517814167133761402577972040171976459102469497645134651096490028141127406970495608746907525824213168372061118191563660999159312945574087314625106128564368840783743301819604394775747973081655661988496041392576070960233798660770699511424739538050187402556647489648873727230575679157924580079607059867000352519956017025383468502784249923344753469741957042239219008618397159999577458659952038906994325553628883026044326714367787631368598685468439947025056406452054284317966883284987415555537972351383150025171477358292495692639532010508065230434170819452998771245213701403087816874929120842630315307193990750009096380586584836857874351326431352185476073216949669184214637608089306939926641774556071511707849234715885075978511313656421419003351193779083214162307188942606885588231975813003215976036924795015329072316314107622102623369629294796360357844049213739377838441241175129902872494130116526329212169636143512343772097161934035723975218426742528333319159182791270687664995221705212488048183525804917868662225929932510115858154756258023173359843123420789586889407788066263663428483221543350106678366827213069846673198311334065852363326511214093929152349113471477302945508693053366461818540349586614253130704119474621667248976822172956235794859721786043533134130755073956223789518142150274592717547219546674576746068471441224617784942517630967072357600065045382035312350905456038139885484693618041936563975984609373439278452677413107761067294788731751792014054085543991246914486277624935113419519748107803207823923730662976817537887285485444603030992525098576161642756439618461964580309805956462821197781623892058234148960290941606063773464607913562318256381770583938096737210736705222929947659041332577449958998468090593238625103220163833970475094963727552582404922315884474195194123341777677953173225878670461699372504050245311221069935422705134296018275186301468882128572919997277062719110315015912085913580584189866732356614065276987949036864732528458309776713059139972656204004136260064924052567308746968225094731861628794034151889608232762928181544032267721240280494135613441313335931301280277533040218602075440655245417268634216769270110856148857789068749689864722815960738846684696939009448982631821838404244860449232130453894969519534272340521763198848213512748073100784807344212510662406030686911064824125243130706461948639239456332971105863691926073241349352592697194291179320093667829309948853625042097449073983136682815969587628425613413108290463140699309446435205632929319364300519923900919531632042648055679527946339489375996982120435644577942954812355899780145803804460696164879779810840213572474040489270814952107240770303049765615048251556866050396188687744359383322064044216936815580352853467599380430566672102132720612617062575871266059398389118582191213031128312562782387966981101251221820454024775341738139565735601315167338853460444408162055777888765602721963411725827056767505632634770871044303922610510166573004247958415709892272817857234800218888635131512580398455321229708390431592547981469655264043734856246718686889163261778498365639094782566912473121544330802113699736846851667884792335205905386625281401904267285798459134060748165967618704849675644291427843330518656852060323431718917243088552235294944490623972079831493012917532752057764398837360648423409180930085324962264469360398601946871631736055870530627513007743542500751126083232556698499722839605449132739754879731592460476007318646186467210096584970831406718539072585437681475991422076151270057352013227818893756899854793103895016563069221403367963554527103733845832888911595527389387048689100960010875061736766767508227916711357708654173461642578115555275365475634759666252352052527423817754634991181300522030537977953714529493640413957792269979523371180993175019870435530814973667284550372605925393507740675999521100681750055977093459634157444849860876822504818715018972375520138503204406964273478156299155041045794878236741736316960339981510087432282199035635452215060635091143521467941839067389001887634633996714405996802950940825152682695513787896934359574788808932936258893377444536354260898878654269390767589444983229309464589330506366721988945887131371540130872434609079721635100570692204465859477947457866351651411123074558465494221199402155958595464575892521801492689757281305778789729450090394804312729824368930446068406001525621333539357524346777944253926169039690742735601594323807203206378814399863299366523799882196199306099733045675240227296478825358285604098833926655574167153835275737587063346510767311090453106038464082153616469150139984149649456293535210322237308788349595971357169485609446376732451698256383333362716243879052454610882744270222314273392112958152180664672507001704541795631285843219351500737363833253618493806617846186091027744898879401537623422057767021788828721459678415169938591917431596814159603991528575073351449423225285820204435268166500981830322430258609710718157623211834756667216668109907970263456800243687970352909167417051895646197899215076397435809481340353156302593645021927518726461629476868903180939230396407863611544235116098800367530131462178042293282035857552849730787090006658248131787875767547349357339870477661186724131976483720459048250513055568577747576931938523508102055850130485575252412281471734603358373987159226730876697697937003168706093940201926475492751753932345367937328769607774369475462803492821094859948433557695967449157671849676491668538011302824112498062222964027394636232888165338592865846593510695252451963728428566986019160434531687058713933779048057296307342631450226779805525071761330856860466708938795242924788836841384060210502799643682044783942661773585712662599778823975229320050446181413995557804138813641167874869607563846982389692857037499909931557163944851865373361415693594892762753293917297464730829281391317487987448912491429624465562957776495435671110340176531050024797249387132220093563979443485041276960648500094836035744936826925332133870197178735887132423353861819156531698795538881183941756238495260544082561488795679446614927483342282760278668486688377043572152616083839716526990799330883483939573306216490743336656122228321631638940091852799320039508449505702714649738397702380373148041438127584964568745250503771418822764739456711722275763416209105088676555049738842074719461422460920017186177089176757738245501511481741320081171725164050792932368938473335931465285216251467672478542433436282045670244969023532812264853601767799964942716729840024992331952979611019927873201414521502907403521448781619731941146470121766078837953708791793987669585335867802915152973295889848136300211234736369986088601580454762086284917733909767659413783233193222084675239638066894084152499263430000799758372454022673174928048479120022685575429593481454236817337741742606245858064906043530515552862991384159869265400583911151999331041211020976588772038731381257315762678338901947204064438941283367452978917167076041643198797569329900849630462216932920056738524425353437222576562276155634428330034171452505296721791673092705876654344327957979691562739472111619564859760373894983393185516038170584463971593171959724072651114895729138229237137885212916671171645161910203935142374328710684144644565567213087543225610651557411029330895739480651836679023801128823107048917127921455796436329041892037557181426013682060218025153177571315352161992184358127079455741346660956872250511862218566666208110030917351389734922211341731953649449555651435964152498552290612956232741650448280224178767727986620752698819273969536088526882747767504896217752466219833702277813266473356532669982875496244457982268398875069246333331257783585881079048499813734258907346352960631294708379248419754396616198216300143211622669870682493764016798906895638422708114894890847610480459446072966057599519958868343161638580056160143342289213364994135337550413701566144977758339941897887479158365829566580543862289168078234684681717425798986464442058444823541742694915399767412646506097362081542251336491455639918536705148278262976126777885270314164671888089703518886326377665261172153166540918475372803991567436681240103176749532659815140341075184324576027662527275542218024398747108586840794234144762077649459045268121335940801472645036819890698947919069011815432398376658707055069811563451059252634497084953403511212719174871882566042331712143843641940350072774627972369163787324817146034042382557186034504547594849922602459911748371988793375305987292267852107079989493758893089226985304647133127397153041307142568193386579352995822661973718824705976790310050083714983569896539407285005959864425837332628765319178654373063739111028475727929015568306004384209978259169420053395741299829796341289815421383214313835706722269250672023953006364267452636643614026439813288583505196907481246190684288216425087457127185290250904959738319708805775273874256223314893141445884583020067857090688764885681953587940568941401105940195449011314451168239513731081581785086198322686187444727317673921825862492508207828080982070280222988300576226455659905564676174405234401130657767716103903722161777323310722589616441388069572461103231095461643402172171561164153626551351909728361562171499794991058416794292094045395544766176801757042901319498890307505036093586448197219377872003009869842727724844476509559841488333758507371408235749907458840972101295362171282546363464101489419408638825555832464154912040884073134839874413128364145835380777919520034711749264528524434234708240401626108475389742391185810439199861567585633969273106840290025900578812617915245022099578249371137995683788541745038814584623687629905031056366694846045586635635942811420988513286477844638115725414454129000383386603950650219145277780276008677303856718803289046513267993080747961156385823067810327922798561934421567814469538668883684688799246642887032309512098896841634969597944898489749918430806849258156109923652208074997286999972513462205604531975799752675975590702921642336746472927205576879050128712119868640022777187850581337286493340333565471599659534771690067296475127873434952063242737657238513885461388886739915583044547442767097340245674303919506455359798836722772342149521076527678067606168823955070016544001865476280010792407054051498933493523292407239519919417718327447132623776043659837918683962799006805634980616108187732127385518280356792629708801212568738651103204056903927805600635129464080404958119865231552846125402615724363657543010651048689301658924012862159904441718750389851167076324613575847460549003722798673790826601845926910669568682772757710849731105661960143984434289479202601725049836018945293974502312272977277214354377089893859311859290670039553415556735961335262684023485755060641982707027057679751181648042861293865505629886377210666456714878047456448362213984229842257384308079714929270353916461086736243284647437151875232052068951272222616732181770139288612742186873752756053662975004614185118091687825790150791952371005131806115858532663422428651610262875611389698755921446162041466818176324457602903117983171935365225725850603274151380235309104015735384561993256689967423811216560264035921340148960295699254840093002111558294239721645654727342280759245543780303875519820285424747778368818898553957389026219344647762327190272842121580177421980749369072726636725307156257018418155884211481409897638188201594059167424902631154210954600922228260285630239470067838058730343629866122893694412226374308526746672705370516808933513167911094162507178222177515259309384216507502842233923415971953306790824682865477763303769364041078332535006755064670204093802915837542104438565067818014328510726702529624509991613620672179727799050076020948674792471596418549288913584514968365189163361505128729817581206943666791935038800479205062326115307408719781266385917189952421677599444799984887477923592195952264666612008942602426412878675321346065190511187716708053447766005507823443861568830234662530372354255503579061605634275437349747264561374859152689237746915465264383115923616502610693358127049700170849053993967021475648066686803616974157353198058138680960596629219131527322540133484943225647477918297402083908116211937416247796381892100473013181650192437725435125915494523112371468703279243762664801766111640617661254099421089766015786357796521425536205552481874693131543216930427159987110376409647815718131663748188801649574614110910327228618277377978834151198414985684007747973754165919340998817534176885094352097234155546814989852245966319284270947340995823622572152979969783652105724076570782695020203811944396408352497146423573835654094646148547874272598703706415970629381284229867621426235345070545105074838465002735438518299337835446433707568112694694451183314485669432807733438425787043998713032684472536692590377422897632982774181270236253479787922924091288081828739027416659457859239684533319563522760874528748791346674735184220909078428383950716543442497600684317430561266677501912601806779174596880878353009732818734298230280304656611696277056583753101251320673400855694953755338520579669500622245804631769398490512749125484508785773132223101872850456263822171843627440981127781929149122179757183281562405370252482373969000677272102079721780595386314783906057078216683636662995952267654955081595108537021066776857373663635176410254501787925163088889615357130652937253680730598977261306207592086437424329004997998107327622828459552844570668502026489781462434031877509440512599993914216978763507413221097782909809811071357566279987410047510414395658067519764061559736666416781672542215066658969659383684960176775298786131990262191953483346931591773564919341535457539575248675280380554701705383813276487780462465211096964332310570406624045716716438072108206358728904488033840448744217865615604430174357569829461251813860866157655710443530245822164456145539906407467508536284156910778728881037616220141427919590269773617754900755211526215155843359898503620176591662677614876370721754290546407229682359617773747121546947993688406097765192266382114633143803027779835345118346664109958333504337053974668092800920982749811160311312151598388116866470967894798543674567757779844160961884263601630443754940217699659951871709017359281720339749472577180197377253172225517136269612911454358925025987265653972968871706584423604044090113490558654082891338627546242389698885036885641558513121028536043630884261944217714109590096121082266092662141390786796146856114950491213173241540675181115615542507654606065247465641474165621673764235323570426188750278292231504919707429101450256013350150562071987731813722151976808016570197921339377674343472253094416987361355598722842884194774601344381380881754591972571965282371167148031452275365586127734643334696518017877422052959678318010058273581760349302175500355238915474592866584477231277043415717850603730046540528724607220128285126247784837642888702456972071096504930638392576306159814848821595006862514844289340097838933107427247626830092634359795104707304703315595707936138708411682873681047930458650680432268385802469210790176907660930928016178508203254879823069385050741559559569833640182845802381350064326649567709644330632420542162903448842249042242660660520133602665541986379638895238396913282362277090460937415809503678709009496471977361614752548134309378124059477821930538800566882905053119256561198187417646077462989499283835593754196556249778818664133276961822213165713445108438437624023113673739801932286076549365396105060220612988965137135822807299058023369236005677009470781985938217061197623580119261870060093520724183366160882867974023678995777399990424270556961000780794175887118655497390946153042615042910900059017890737272150009822485126726194289327826522762372041866430540994335317796758830560560730743342449345671774077092690350190385919951947914370022184048630362523453134236345111261323938599110146391923096393874036660858949777904744983709105102636646653837951371869949581695345136638863122731996728268715385257917857016798023556760212392723476869969507997652729329636176329031128968872568138083454363053369759281803908510007260068521813902768159913858919922073976531722402541132633474284405828280885983887900495800945854877555719704510366985900855015131729753882078077178961418252736035406805425686611105778498504063391267330440958309160247246042066217289716878200027970821651579358806699716256937495911344721337057429754883187409818536199899366630876108627007749840495736156613031856323783939092863657040865551590645399993047465344608864800250978477488091764634604089730374239717907536761070310680250772920917825882116092657038117378992951379146073918233898735186198196963913159844549835410593053611708829075781024309434238899144072049990813763403183967516496678048264054807950646697048703736909559679320797586292694141996466696840425694682159596863671721275361499070522332875252332347987214879190289948202907176519934607161405480770213694630425143929543505332792336776642721377171037725376334998263592466026464879951513504355595338512109518822393588188004568346264889893543221368710596270233036368087678860281596700742321613932301791129523402434421552859852171186656022848633097995237706055595114887608342385526195474971151757911328920904570066552017759043259302143379636565462102064102752052378210805594930205195971837073715713534103134120312553177235433186096649785431478734258708555909011414825206861828823712129363288546420304482742809028807511912869116208159148840732449282157603050723052338589334214276781926402568787438541630522946554688081762354593481433123393589906230972338441032656261962961645151452860975737550555484320671808395843393978490330877326603545547683592618548427267855747678283186317581588358188484757051745994197621780683204614155162821446205304157216571854499148734344596876151748759429251381133645388192520780962089920500030609673541258737840113690719522385882293632155961810924600036182294881420717772383559700325745759795055091133449606608173944637449847288694076403590798719078480257562535821670482706349255187918740878195508330254128805235632277635784599388170078419475841523407161657004765157155776028341305456218852534258197551830610889937425261153767385103515868670618919607359022473874018046982936629559343294341611622557714102899555747932909708893372268284055584393261136318193245411196898648742898949502098047952559355865130908221588148053246383185603678160732113512958268873806062364144435953017999082582224074912387806318548304156156077422851489313392710344170821948307048290478026268453375274063416870035052094466380205434422451618951378085951914852722994142463294336998369548998505673605553880141470187822550321847592140647841425973712652679625059631595365131668468554608301926448595570744116013937345999630434798572627365638445616637137735215769008851057253917863620597632814393396947721820233445118954684229360217891480176229848363306285084363357358843136592382616267246168584002662595348468702569952065069730997040056993870111009841229053241474478701639014056654549188301397110661455864695157863540015553298803173199892216337838584382200250234918967553057673898479624182136289454705331474046862514039304865125774987486209280828827532027514481421095962032424642097903494569970870248647674976419855218983608145558327999306466339701446212098791636590339159081740662192006009269768032605709981129759876590558695329674305807648217072670470179039922036051598741456456904637927048060898009822388400389063698370977146423532071406062686255613719648871729460110314969659307889989126354939475290221662469478490877154036529535457381306037122172808783080276861221975826894865158738590988411536060063841208123509658913444022113413256790184218409718840065544236293135756455018485154914300758534584145934385127837568293214560626515156492348945088409815085342322520593134553920711548480317002779004844317964164907531511789256766299417027944644406093254422364715559719845104340028851507309238591701706114849220393236549696913738001333522645710627294263311935615788376600755633893655255436212793259232854816622450805189325725903736115491226546429998394961281063673377090742082513819348357014450823395301373004524766053431889192068696973201504590206621512695949755711262253763019394289588644666197016692717321274013938171659500623868690524385704557585531215749024185522588790895646118946286093835572404336017811365545142899003470097067204440216886485101129101128819275748873740622196102116166676530487389392996330943250553180898991594853403596985563687990014391033981496021836434378441984784636465231119060257182021474327239547743493293420584657691510152534768982906168992903567312763983950145355364955737002086664746679607926482726556236308969655049991047884359213859636764898500964381662525272966572303827235506608295239804174842715277236400112185023343977995864404463719844723315193193521490054133162960965914931928522410345358509301472891399397974592583405756697080276828014615492197220723506369877624112467236705815318126410021623263267869532506531875779281571312863832691241144898720048002082564318256715026808644616713777880185644121849518419167302525480739653981439417325696072561630757264802160956741074913823954635708963411456509800791918660234524066049180778009242987365939354819324578823880612344063222597666407009632824330890490737056427366127613878059415011973475706937052825535559772713373277878146667107660318053247760156084467304478251364851536662582097372097086001578715867630614854474464322964581426868017437043897238031879783832310207283482235468558194727250314848272090520108341077532759425744535207490427631799283400871187709439863953953258971844497309647795748730611769538564881069786944196436706494754879606360374400639606229843195986767796394822515216262507595986358433602327966211018918198012568089851392739722200230750289675358244255867343703299320600977866477816744148439916066899381493931593300587436808086182130855447862364434150938161859837746088744230454324260814685813387089709979484385221286233796380534227063793943529900290726460948275963785333429761669158848202325703041093848014728754136435353459374797655190872026768493693474544006751841558953956660258924034843421131677859460262272277984660502068048817249526905588710275299555975415931753982561523526182893146135232699002707475188479039728112147428832377169139186671031769533829982302638754114381890995271526197127526797259094353915265595765887340729795833354774383511358979294952080717471609249686818428801025555772576882492581141544445078628740848899887967269448916955751093950486554133787574380365160709054051038573195619999733579232777794344941729530626773190403704318303139452502093986254238102591802010252063626566647242268878617467664225100752714858448127202114467156557683101407471749033183097221394935770292159251727329326802077720927511421158680980274902976023767931801575158301225122971563567436338591770807279419434806134293450402996648987787811074511047909144025809237176425682859034802529406729726776926340138512453228622708790350138855227597198736231392442084922659740798302335317496089524535364529187017656445532555323405236279701484811354559162894406726162060012579897955630176839485187807638096723905517578929215024143324466882105250844234251190911953342375404204178019809843381411800350274930523086761893171952990531227751165338407476581689393543864374591325014227362846069699053391445388543306841606130381194392597359209773295300821722583151628967029278943522862992475551674294957363147420701267203123686040060134216571639315640521898379379345358489175895025255537889107797495139966195906515546306913210788360974351763851590095245560372645404262951564141355698131981985533814762939405817750887311314778786276976928584032498233654278666808881710525998133017499177394561518006325524579391169886210728127195893624674110896509368827836023605963473504687245432953045705629479962034207383945906902282082599313662837546244184775831784169454806446583479758490742726472757035296010919365857583758334767905938170931008286500758999751634730340877198321320022297364132381256382154381855690760990005923543865408036923751781215689945286275342553613045794464825969107797802300854418981873315646696136157264070895775852305795642657828183890898491879761583364277625623906348124618788497848671920524792099635445414568780923048998683626269894130637287395055419841565209257081656415170975574265648602022255990514335458211793191136750817165583912968243248588027445575294236231063164209973774246155889029472532770471041824141487507035578231024685927233425440129931975835735938072808244122768161837032387236244267963552013399267329166323095220834370527176588828363177234220108070475918479408249116249871754163196850319107729887419635345586428791423341452576430588959149933213202779628831336715076582571785660813062411760583055426255173042246890550338980261759429694305394911382205532207504668194799503641572020626345190767359172740058754894141051206887689854815194534476692700421580117866241040340422352460947401005907246792733780465533730846953413517933845327518928078797746700339542600658324281604596136441967549586840991332126201587349464392668022400556830203796896289118360080440494259257403343763715239441551019997409556317280475959399801986596981194070922492333678404921709591193624501994765814051521154882959766166709813269006424284448538795915164940587169355639627092814600458792944796762521974153977475178894514938659160057221906745586385705432800005744738041735477330263858938077290070177377707248447972410567226245393126445853896284677792126708572337133707782082845498576572722815409094043495602098635705729573866474325760240677140130487753097866722781026662109850486176599766731476667065764778648732909454094113208069655400390941796342494550469571494652038835997295137500140444887284384321835955110830694826183845385625605352130798766208186762447633972202904595267869631247062803920307045877854317599940727712883936109234568571034262498859461357154729738876873372890706440958710542315179911557170442810902780063744944634141903047728671130103125705106104858835130375907504468095748016928830757058899305816907104967956920821027225120957973250779829993517514699649348858790296463530708005380698662520047678246195620466737564655194731535566593484617314287108716560056524449804985715141579213710310935634198849404851575472862595818725936473852880069110961297472247087231428220318746352765530734213979275817705023326027043588286527657490959265972798920632556347121559674632685833417263312671907049609428558268562008392173990359160829381597926192959118186556465572048441502721395180917531981340663041569127928604582565520088048666697791802771604639055874043425074851002701807614424395940394118881629430050064769402120780555319024382496718427041145573467079837604794392416348076778364909890628042065763251736949438765829193343493585578081691032694817646514408730838120655707278153303270712133640898849287298803712330252924044843337793785645761622438728387404316892794783961449377281232455131166181586587878191136543358600152380940159666698057716403780144041930323080038109917765918038693109461207874868291389619134835920626262405669377106849022297396324492195383427849889269441320934543952946587253563431033866550576748744190666777114076601031654172285911642381951319684142522106879976703887275992792382583141872777001889955911742024304302490036554095410097336894617497055619705612720610084518092062475994370935248470105890634838740605673992324028168548919657741602623296633155377850088166001870029130751766829282388186359518227589809881344713590100593970707685901064401273335104674531257360854481711934892299489180878771900484154368941171413846742978103043589707675406297772753719653759984541652179064639257176313169303188181595055159736102829597531313011787645341098671515146754639192359887802663256575808590425473919019453617455383329927991131102266210626002508521122792374337881342813460614500636735280786441560396942499417671191176971537781753356109347332611642104223668457350786618370847620174851225167608798032739034624120607687132102534833964358211379618155060249024586424890933822300750594466805565955211917066541533168126085476587396778527609263063172300793053768080403622554794474422260223474049851342532033515689156552436660954353774945008125183630459991650908430532787542026378565498534412072526796559763220669084001145639992073776242124265232873936085656335906129813350580387969761632064643275284544173940523427292089037677872722934179251066566835260308658034398234980802498215065928527218940860900073841361830716057440500982870042679366313153584326494175503941340234845602310847298278149212338562946594278236181254440717422917641564539159590996249332705826394130081564223999249648710359671587198652075131346373635721018390565232905736005477337516557550977518328463052340118913286009803499829282869704422937494032505679197645081986582229375114642520941756716310629554937746001330617075245755021221717695350154516883147368597094261297349110982189160609040368491185617377362537322957777763503441895599917038215501011054600545127280487246466750855333602264550456340060853113952801888497911097996212754666311289821213301158430140743806839765140526153608044786377984477811098436922602638219116515075466448172936094395642506252303424803928345336639982012785667548784692308441446242918632582404292106950304143813661471864092290131962407974856489630197522000030235097236580268485945841024284865241093428189824175003539249688799049079925425495433128720381344420939037302976422572552316535374624635220721369859394915372715211615784068117443852982706502043674433761423586462007449498787668866356701624140279846814984417319067618943243108406961638933874990615441568588602744562766205359356372524103841847344430775113464906809291785020200844420772430501990937633147137390523980991347019256079984241461382204427546411561451438083457630849713018388519111793875707055508861583714090746698126819300409517159737462933453716330705479047123044423279423042681930912638965703855877714823773047504558822229652994842675434956869316598065795491938328290752240291665215300506498807667165236160700036360066247860872813877983590901521911126713822652231253042250613210151643569322746917131421190729836831301176430203261252142924712989119113677119093507653379873316501861669946166275458677836871130528400084176954610426368382962093071860054159779666253754624171319287055712867027479213344094727948519730455810451313596806755288595171442523000311546505859542170938953012894591482339773791584044825107832222323839461924087181693618501388186383611478364076873016114380006293155739847735912765493933592265105655431413661602557357196943790607935235014271304995391996008226700311202306776651456363221062730939758309828245934491392341445045996511485933255861580159892168083827844931939094258377725794083189044906046897541362471072653495181159820163283096713183029284446466849391932722328960500619214551804722045907816796434165126417089109993750669620123135404719399175205305522724264457877299424802324481851969261444044284195499422411743574520451282651941161792084398105485413843346339206311161088577136336368825923836040351378200875070311899238698611382567019803773641125627284138947650060253589482296557378489509299841718082724037426042976001559330807841858818671688684845937495507111280705684275059297319928669715807813824966163114227103249056582388827526206586596491231480442924490631587631449685392988590574972462968058780560234686437365688762459760958136166114312337641913208512302751135614620118736586466676571344708879996856135907354779955203728000793737002614200858557105743430375802069533373103494727932645474915410934484950742093395908225343285811049577527722291489663809319088297030980686433513975095956079647551665612490934188775993664518550528563230519239236979619834585281726059659482774432321221538826547615334747316199770238898909443251615429477193097927707155090900109577088363984765652394446268407428404618321575794457882806192307967993968322798790352064181662745510934068576080716756732210701937775308995991608393235206125375744365419051474076431000191397441410718767655487749604663121395053471250366212317902112066169145030308248062326061863399814307699970990827354050918065694061472874259321868683415087516733940900900721572751515268866225242944934334876160686694319684724212525400956629529961086553945229158869381067005116083867959089994636321001785601707174861467682480779674854257766685572309261932322970715605550279394755966765100973456647006580953656577642793114934670782574155689029646409991663778453208281414806696961858479715430932228514384031042309517583658663910638467391900523271355929900724616481551117036277995489527427143817731676278100674876593922084259368658326925368994396508255987963294322584116319522941157655627704771290478496135300378032498078219061773872919251597569275231793787933165402977409967739584292788646332803917531895720944686723831746656543469464645215292970164861138736547863101481846009945903640508358820518842628928847507775005882147156447004810781902536979189984591456657798406220545193405473467241006002187552934491621203738801857968075056577225562106630781840192769374681003848594448780454229888706654743778047543512212233106418920519192242883967124965801211632496938761736755457488378016091330422311253442259244992282615665494875874210217011051511169578744566401257668283832213687406915653220689668372553374241569407859315089004009789834910620154181060441786010740293855247596024833790459344840413490545014702137873656028726229305408834392751403727457475054011588722761156941247934774866220239601374323630463607456894754192446189605988265545821583544207577692052207698117919923069650549191204114984961201063792257721106564701975993543517478938152533699138668932450996240452839478491841583900832225470751184211653188366629334118448696189750523390073417191756448124302473540721858163896416224855826230415706809604968376364605049409107452290802985606575994028028446352001561248610140241343534745885217250748269578267701900178444334086957384663785613479634818678738128618318417533536819361571273442576446484345606626031339867341433387570001606929273644620020144757223945745443921691515941756979736974434647564945331212820826287867766322405540127443260213680135916758895205908305505944188594017450193088965033070002661392135309101005356979813267382946629320797388218013957222206353916625575193127249740469579784547085545224600878433860605013186657388898343307940270029428823339318163755234631617716749635236364552041874524735722195906265040110411915470662369478656346989453527766888780691630753857568227337014487716456898530071915867975768097424368503061785134926820633963864175946807210253648482027494087542174229966551316669468877649868703425727063764350181923709350377432908371567916959826668575746869732688870282714664245914926026832015784133568549821577045893002917480004169305785206339795865831350247926427041976319622902323426634043340899292427384217370399917112369177623213616560918214487910772844426492113560821942965440999402552470801383212348580251315588126045502952802936829004484810009537685365008596949062434348473853412514372607039793464636916963082543967438357905486736597254653051135305462789518975704770249460731285193832602051347214095117382386936547289445358475573035974467596532256474571683935010799440232035986583383481926191402028958116735761223286873826115666983867338020997753953777789096795528253582186204054185017901976812466747871154124127230232937623742041773833253602656001429118179993714149372782152803125053726881591379958731634802153314641500126321022504664204938429668012852763935703047003117444217292345982137234223448594375320987608180299701988738274550428080252583594403319184872582412405915530197977533328736505586465111718777991332808132883739494656196079005490944799575945615562576878282805012659897126785779943898784555378185532344858553510957647021273461503411290898310956889039220845767091296861725465102847988961313521925827019612053261129718574505668760540949315865107155789740282547702808056668828603146860014909392993812191554630262243619200846424384833632521442110303491293958840739384848635578950758540080519262814452366872761045060094510797245565849607798601918966774159304469157381984585309399096107319828731978900599075193713313135462005212324052084379290641758284457292242131504386553240818929261789303961139555232398707564127992127777653493932967567870441224412849579946558907466378016934400795354990003350227601228219731793022245125520634615230045817249917463128362328126631149211423469822435698398305651944163691251410337204036866997703367285280955736042650628328749492451000249809122288511390905768634530683922568502285898791171173044274048261002706593912434388100649787254318345509338812750173725186247412847368766035722580488667424167568591705380937752933993816862735423687033091651188789508671630101385079300304441805464057561636886936433345515938098299549813077758610015647719074244996327627674096444617155066076183383995526792508974093992860901367332096018144691793053578250675927650392765950777302616531467345800564124910808139787417819807687661088623530916935885517796117736290535594745460124933620986065834594137942647658385731687088366149343729555631532182266036883515498657184110063903087568265485548672791908889280779181135120566062503660022475704423588824540183588485143929917526481146911717109925494176862406549689620376708024420690501338241834040709115547141782671559722717877870524512368681734960827741242452649806762316809312615404059216933466284334242386369158558282414858093654765514591114489557462182138341614592878753176980746074397949032933313222284293177969659705932526054280394221385206308065738306390579989204785517727126737666615272908781585161948099599791594000335815073232471094458694181120388211588223698297145967172695094724824987763224741018170321667785039157063438423811434271922214794587783723022314170195528294116084892669884086283583978266222806537272700411064825424249963093348151548512488375197524348293472557014326614862124436404166092451240537027635151281725048396457334052699627059893693318895039303660268070771989938124121097676081937799485772905561692846875556021827486166082880460516038140266375630136464405305085040959581874298852167343697305624391858902897210765691388095920863059793926367935944450832098996093211265592930704047443909586618124289900239384006882015368392164127445922835000903096834450185474078213037153199208877486222178876178574111102238486732438529328921751041970582234420600387228531929065183714600398433341598649354396684027045595053621694722863947873918374561894193217990896956609355018210815376262851212715148628534768958861483446564024537842844043015364581849215117724427531707419674295474767431838711926084560341715588872120049377625353574695126204830626195711145413825668260868628695242630449221216719489876666816769743955424924183328093997365352083652709772725776733000787178602049931247721510564295419709382955708975732921019139190907211360436949101305543842518296112256381556164883875757484354775652721839744832660988404558717509443426616989454223147813426252872647620778454202091992263980284628522920556266913579406899629402166549585015524517869536467632425149430571536276927085397037658516878995313175989422287085921929362238989777200863186567306714024472939642459763755501825348101207210875679703619770156168242534378128262376902438246789798623735204065902162161972589691756087177676695942487576800135387100569193576444283180238595573114811403402471148379944289165222180426861549148827584712005845810404802242399233894040423285091448450682264032449962968046410212051972372366418493238576913369514681861439397862067449531357783300210318712940795956152161502468463523445411004327250443978999687634635950032450543214165779220300371470072661609418569731180450131201356125745964961779857272587626954692100195574740076991930485433593928639655350136361604833747691662364898936424694629446002333143190524099736270197571046772483488795772658702489713689531906449981382351197312576220724081058651502481958399590801866975611907440979142370718812551965834252369832441936050594140564868735572980807571256917633202238008300995868046896594329409117634674572704679933820777381029867604254273458600393545198680296180725518897314580509983598662926789677100641427002046333745983586824877969070235716154449529295559890512663656094975878955144029394238908443886869911451322569613010221710340146692295975303110988827861697248774626736659376511894882653224376368993640174557580620369050159028677205891609276633788954723337614291317998678976636330341234197866028269306299010711723123708409237645633999412779647053547989055421207888188157858062825217925574196184578702787934453095272512715312341410691176203902879993466833530781509407998761442386884284426549836771847182036649508847520476113778999204111301306983246519299099217681883310157080801141048099512985612317800520400022882198407156625198264540731665371727984091556129538359868527449046979699888906300825585569235289104131440105035374066298795673184544786083009608416264101700026001459398903649308588301764107549698527518907817858159317622166251048230219987421869925097324632718955054568896883207295431836116164018890257217194524809212914266468779644560504910729641106307118320678856249548274938844178279082748233857427787309826846206579834667557106734196917937039487509048491582622530891912552043771358262636154121269004725325578018226653355304694654530841917141425389122328994924444260703759889832942362382750765628553466517050284409235610655269863717126911429200752329144805066795324274525396100156766708947687062052278090070238109414261187223139056462229272978938145292863211926920764002561101021048056234451347084967221110377180461362159276526958305257289530490785394215025426191314427069892694789482439991195587203931520582269942091047505268983395403474670256923040777174626763086753775521165437318666122071169920773511881511736729337934526321374639816296853715123757012059791683091052532385931628009501644477403128237429425843079763817620793436054466143903558955397805487893861100489259040592957014449672890532046406871723963678770478187945266235544112654904773169639391310236550265420597282218415399485411711923220849495996953912199568877771911650592065438414501826549334627915851390121768482879261037731445903030400125648170105562544501456466372181481630486255040736365786794257447119540356804527304791393287499093778561799254253388249501185951234585449911286115099130594043815001427316196898184018156192167856045071054422827803317790000779877423828287174798307180044941497251141592538733938338591867587314862528895698013423711756445852401944093548387573894013710284091308398797627626776965976273052050364825614790297873720266736442363296987865741615241718941993663874232627789220903745146421432577110224465957676909462715942931361765207683203645605699967074925897640022496258401544778473363249561603553365496395125396341275415530974785172788477721401791562009977024794700251383583409392879856218264012554335892387790595347431293403049720564322433847384467877869162948304829885169819384142708166077947451032905737754754644769666256842641735032650718526783764960037019121203409858105560717533024787239132585064843579875733129226268015345705932262404725523542056966438721814779458435908242612545173371965397714128529112085673551377367563888253204814223740834203455224862344642955993520792057084404466367021230833166926054553561010560403243574545146819973994208631958148128812190868978283282769907636972651591341627307049766726409333495921836432691956012751259783049129203252372808105507606771885446918562757735339020889690560629947503038327505574965673381295207466854962374083628702123633833422912426835800933219500767284303128095335471125583007724667814493029148872774082792269629067964578076088637932053252958706829949777915710050387846068548237969938732023519979952661318860450148147639560067428163720263506287373248271646487254316447578042095296663644934738866660426941468515820648453226738192432338367969402993860495536649215176224950646646244114954584867068389549859032002241481617254243309793238497667457014211506300739286954107732985232829318971682741025531055654019417696424074582045212086643221911420656155274560584622113725948047300779362481687670443835562339754144278924750357730966730696137756417592489419455164477013189286109123763214340019571231845102001311167576667074510511582590724726945165792588594779938823559796775856758949091941360256810590599239817648679778909901043314869928286952497698623842272904388800499944911315219961944210836044449733714781634996298180633614983946513933061963428497300056369877332697364358743720331082950256597106975112875363410771747517487663676702393173388538826325071401251236349262318719450925969291988065248028044670952855042368608326032619660841598547699372937885949139671245912900671675043731085772136830700428245896264154324037366232753944755618990556415716766935333099962949983244203551853425988461060255573491092553380883260295648713424903103948538148133522359683860204594632106784417656191921915788952774309876052609465856080448929550600636656006155885901996288778051346520553095515270500778066993254718244684482827090261850555063149308271097913305843870136839307033405937532748243488019153143572803166915707367720462294462780873076890413745325273533284106342876402444512874545708154800706096091400389812864019936893356363475579422509633161088150642489909724257163813761811988025345144126758229550643613929865010252868691377898444112744682566894141509940611820989170741171049594707198562453448138591324173762524608580918825684722346210375991886953756555278393266351094881085238625344929654161490975094624347787568039297827315194074932081159024135299006227684426708139563186016911467744605036058574442014286824924150917899627620909485561404604027348148335284032030895026360709787745395413063257218112797344772751855395616357961253809632226393636620696847118765629925666906891372484306292839811790360629386732170191404800640194690829075190026807368119493326105096728048301224101264599960286312795371909105908124237325654442790715886759492517675808571763644301402595679337446841751145804110131587468500031642520355680453485256476608291691913017547115470389537207735226275111593508007507772142860651378818375827327861497276103392303987374414493569692290373321477837094738584265944099895971791874837955302212298289748644056401933143228624713332595284399507080949496479499685499256666444142717540131864416400049145132115291051478081855673121947948067533553689401173371077917194234992657541943394623276093843635493303443738719654225648902291005069511992168170755151423363276590113866686981558988734785137255408298249240530664726691485571069624910129967913558418795831673449947959780916045432949468108276889148983138364848928622604435618858479986101533058786292628494357681551851228766809203791899097130669881836363872121605284585928621954597543031375888567166223142215093501479681655448057193863458669455718775487580531420916597328947098669691514930028995732034106433021248610348612908156765562773106368425303713802417568876863309094389527464570572421882211948839890863774038324957625961050906273407057997905286820319155870165274130218962239314168664519886779026916123064529984171788919601247944729589984678748445400923181729142570996533706024906904585200969391900300060856863161656279944417702264482011644813922370726036872707770789032939232575160863017618401113532494860122806136873264148608482530442568424797847557824097455172046670137799737979628962978489568355046856544163758487457029745484659288665083382171535384085487151472330881365364687798206673095828731163943161917813846890933665155988617873101384963202168242000072938085118983157479287580534479393905694076915218974690201456640134416194204638318801709086165747026510914103940877734649046689653689413508682684379879843858360286463489560565123127151675237816734384842894697419931478967502725507504759149746763376260194444400549157884232320902842662598631337029404615522954578165165662644935780821570631399236380006557732729118483117116066930053630674972196772928377089224897037990028363134967320387992278537707852072538157128575491637796084671540046690666527547690743084053050622920192020540676918995794897617571490931872184852199303901085956758866476906007112903300026897358008918755058281732307418034827226123427736830824263526175645796414935734177099951667971972482412501921103629006100025192326330010496870855283912053690817719993860254720877730869807445758162857079815357704005093111460334583753275049275633865922224871420538362596054043767888620246602828076307935022235962194997380740939724073126660310173965225792588599744826482793764034483565067919477804409142597433938897341180463412204125195090349548741877023569985187727069109983795327779845386833997956717201318234724094775958195302148177174154983426059112636351936040591667347103493925421195298741836475747102944453028225055142357812710396490849905148459387066163766782045246118992005858739130088762044500264673252949757755322048015248840117765862025883253344913406833012679458051589507859642968504302967440225750135055810990259686533704343549308660350678111217603201087030152752379936747736139805593275207317993985408890868523268398027049995933360948673701541017018274216575846589855250527449871297723152192508080716755514859072161137896212787202061175308069516226064176781283262887668634702734699553165904847404872365249081292907258342160825588382119779282965974540647997518390369492423912321536391353655432876293798954581213700631874299281432051838078048938327911919693005026509636931165174242416739098469896522595375671062172915085232938246670390056447550719815230456010844883107733308687820685799103854880098872348704748380669705778808364113103359363807419084942776615749674704333721722109344529395994411632397076667258105150713903427637243124805366463008299154658689117053502618424765863029277504099643707017828172407043040751552183483325619489551992952634556467657557552070688405478052330874276579764129676957926544991979249887697515249991467400013772366408847559009890298874025518907675637124605522136131356903534521987427104542931387947550742350026715904997029542245512910448439425500764962881528930056139554211358778384409199177606445316987392779587931168180713178132999343182131029698375468754556570523217920365251779476710083604878951252714845112708774533319029460857577798169751908799193920424761754007367634695808118677814839299057110781834757024588791212278900985528287207312357803207331470934157067758391433821677949014150740937508207187133856133115528127946911391838655282618090015928875035778635592143496561925636876161709362504805468715665532309200779072355567559943526744569723892698351434860337426430774772424905599585141205737475732595837169058477535389906406578345642909648288531358969471737135864763978144501494833433077630838486678848673743427631624043543043466431267312823690861055597597331700804768845608820409483752811529626777846451671654518761626497559266762145840155362538270931221485119370587471707260159273153954972229328374966739717845242347741676894212651853225118691235808327137754413753629682083852387973473008191103458610017809134254205080623156535143600517186607445794048812858958573224102144399452860172782221847151419966808067887747279524258144979578822784845775474310777725694226877133595405307802799377672739962588704118173058934577926145413854066708871367514383188806181159736213433298820504740381312620930171615345197667474182530877570953644530835509396400524666020869117016329617658964007390599871577544239737090131162982931831995338200680982076315638755585134698365905659654631933930189434503642564353427654747829087670627663734800325864176944446505808467123911640535396201278820488854014783316488030182609892746026833868983907419070097180190509448850186750243774368914136133507669889187204537537725865657325487193142650556771547338868821414304111610091688984871595207023717586428305645631490567536656570200075006131313137735284701313056122968385155798909415167109271639716207549030956954005843370992645409076013220522059515521175492814118588939609440386285003382446220891250464743912758004415645899045410447589404568017990890204930661289873361706312298191659266433157080202226809630041427756848562399430786337097060422300066882007212922299954613405860021593834591263539203119359289152678766351588065628579504799357860508617723928266563169195332851792541156579964894340512506477743990175313362087551496889536455022953861758853721878593091114198275197494821052859296251628213043817608586769443393916952722038513887361462296896360972125173961044040941486664139370307656480824363275350590571593872143947543459977399446376043523168793039288261037956427497871129148114754594607574259988306184620133812434700272112364081982100364597970244056443110949828122496280538894014597890565858101879141849416035243613327019911463923569351066329536169936594099300828360716425864478984656395512789365854979207543853796366594512445982482394220769502310554713477827618010455592951762181720787786666963476330032489646268939275859080455342144960169018387482017308322436656328901402161360393679187522524654965198293940908769978803256220679720599332973828966401450307285925696537492104764308907369803222924536151707532599108984481335468761392594904682110251765050366163375176271813326099702135492679031536809744805938844092223288145719611706924777406666550303152940734328207160869335409818384770995215415205998663071320344700565997356745777763625740023398312372668115935886423354467236819789072499767456879541220663094787873551997802178795252850302642107165408078752629287710457131017762770519388065898252674015814146395790253117494759608566593116646866409837636224532343184116878784564383399883512023960468652116545929168118599902558594566263880713829443187234855670519231421400007590438843791540443335957675538957150257327512860483300051894761594249799074885417532805370362272530711696102265633223496041683531573757804607966603533343809247700000287943603151887236769153705942579324493786452326626369492345831379578010490079508153755198253307381632048455644073293535529466861793847422120054556211436046590994711924727760709813439918807694741223794642957549306640812677258836575664062532449393915573304517238687125040898078431893109437496737520602680818531548861792657034127280486521217536797907367669162660352692085299933629853333244932751019611899388440163680667349684089970707357953156527191802020703875046958266254168290790217594346023538415046091069474028899570637207385200893818129269475436529763518582137935798023026774520836540945123291168421262957403261540578675810282533829571219455464863325753123292244281005808732452746387138928211817755389003768422972073492780205453034426994736446975027694121414671983817859755003307608022074314448128943348958660227437614834908287117210889007129834813327133837064594022461174503382598870806052433506739817668103852138207889832660842892141495774477631601847474253201016620323592882331401107706106700101259743820194644479785777595071738366419621531600798859502800916049280419185141371134553979699001547132532558300540121543104863328285496410836726443692447255974313131750456345744505770110953438177027433315052229763527638458045615345700010326820039568515518173594416983592482760572632440991639425909252988578884865647050154118221192509242783481058466802869442494396698671017883444729400258642437990209258945752485300041265524525224683164465983182790531990239125183138351910752254549952236879556300951989305281502473411048627993735078957461766323607559308056986585993982943068144065692813701123197345423502328059471293309299495024641921030299868906941771479528731105179048120043446960853885116548780985115890791914494345332174927297698124457576654516053963226491671957482107719917481868383439228356923149001096910735442680577640762454457639981862982706660655417371277508119295076809465132299575377484406203232661604760614373000428399986538331605261912022332375153892625534470876417523696846739908186750531878469936163384659534642880726984005306114404458127906641897041595324213068973884937809373384154911030929645854121539078039010827876201853132538342701860737446973399143271246403600847463119471615895575590030770953116869477036287747667897163041202986365915570318231018319980188100227863059863060734247937910422502161286801140298836264432894746556018345248292637955740486297740644538959380327004934863397683907892468582293284251225343100244770973871671248794145494832907854885377795717752198655912621081850554566368476134918448791850184987721132949746435041833955880974336613939912001573441070350743973509703064361433584546142852759730679618394307322154645889871960147597660650982577153438155064624506005351691032486432318430903171150344582619638508822832863658617225578115005821495932432501366038293342326296680179068500622517638697455034307756533858519097619134079945779163394815816813296944080591070607357663648957863978711244848306601338467982356155722585908814279013841121831370157414503460659098156111319866858529446306681714179640918700260672442604422576249294223091446221557801329376471828082976713588985622411475561824187568371693091501945822565439419948917217402578601927830807997282686847634966918995040332929695355473531646679045093350395990298430370454082121111267960711874784494190331285333924370351470400576392837183372682730018445051143260323066282293192012181328456984463292967834732597064115774959441015218579733659238003076654554750647498140542968804267439358099908689319035513008920133597310651358763533383130970379054447620425616261089603863456169977079339136057192599951041935806567204642596282032621370153494677920861982251765924787173270209733379763493311322302123589155557901004669987456796232463689820652103551315223144961350343645020642832891615660457767363459127519601094482406189375048072845869786302729206052970878302210452038555592108008399130494151943396199998240008539391651049575058467758423582285676238265391926975837700059580883704666040809717683735090088326521934617221615437715153260045316857651305755618892237229408165978501376364066038719697275782027994862030088018159959402312659240170693264776011109264073601646861091264883512558587339110208359333369605514761130245457855430056494028982849020797150302626532598375427186496974807001770751125766109794370776547850992334352886968762182631456284892650292810094086115723471346362668337460055324089792034033823106090164327488774693926242257208040011759259128033397743741198276020535968290467096754614699167406909840341687809175697543119692864124365477333005232190452377525777183146527855650456965113715401798848719089490875515489509014005359873352450302264657292707354966587732301403143282134281291882455168831751447076428808553382360172736161589500382979849179498238572218160815817760108570389308858891871035924851678573087886683507261850002504578088890510025710770396943126601672641332309748631442696908406529623342320005165619375256374956318088838407044670527216358589208817739780591192078294458190109137897202118307045966422418305442158776838886490963588821427547596602013809934016717531995446693958788203504501375007171545377689989586688371030909820650683282310225911620867985577118963259817942191177014777723795211363589560262702375819270363978411050603349787995768285246107185440213252121489032846689611888072494984448316370900082064029470004495820009182581755603573353811753211588702442036033074981006568505652487998752948231082058045318690427589490699195684360901047208809071411928907654918915951105295546887154125035647186623219668381663890653574364008163838020135501767107690691602448238203130397602284813051197454411012614723291581683092599032685860091475122841486375339764104253800256102893304084391194084991890753759658576987923830916002757720142448190154427848565231760095693694571304873228824081896810760826039542425327208918147897958850243919732204748073603950606067170164250819050243791305260460951908503155838858702488285241289569908327624429669624927059409927451403987315498794122777225601929506139792226582122268562260193970467388200154872535090890496807226537091848631569287270458738773235677932473872325813577949710861224276289746037932768563299176222255762959450731743696005045920054618284028130586185226340124560693310194613770078191471832536634552625633168786754198934820774150976391758858289886012887674146342844521466406493270709101901166541483376050983889659382666232499052398197962397571770896939562163687079735295895818528401253672060222149318048998532052276803321376465025899133516994469959043825827657958255713054344030780208503288359971119933786600578434358790902771384593353172946502955368708061067179021463263137365827225045535045727140109700738820195518668793049105877821407572434329726035376363434890242383555133158616804755986083671064514998218527151950836599549424311992826837662370765058536154562249578168116324342554156970899025820998070933649556384007721139487315363250935135468708878371771920192479163384445538776390692246188844035360621243195800954167313205229006888061122838428160047451045160019380848736896592342251056891195327520283023125928984222980430608868446229344419465449653428095721731985029505447079822256041625407722091030616924426324625496616645130135508915423790134122678048826377878112329372265731168404639714560406363534560460092205751336014627903046168328155221495971117307100956178152222342367147025786412552216843234303300359734159815289325572576656986482565959089948876760427915958581457181259678909394415936483657512241807656368238528062178824484776747845064162601811712809325867776110563684636902300873784698389247266639179492446077943289710725657612755675372521559427979845647680440483720546152497823098797063970755833816506202406128319081025447412392968564609097222551534427170505803178086966628278006577074501860784226659710533866956600574904930569026808466650585024633544774389423465810895433724498948367113205362131595158263831516801880166873674790777159086847668907678369370452854643684877285348027583846672072235292426273356573632625446609564713255715070710400942704850172516101702784785062658542538982324271748870159174053927260936546831961092337650620042366284936475230181057286461760026421569234123381044203575559242707284133754075844971173005791182731953726389493445625514709433370803180328568678301534819610593556180779634045604925729835449323870295494561745234236083796557052487698817559410592290513891636969687637764982137197269740498324505282323777883257024141259707660432728173044716634067138079154477236375564480146354116701800651676709840293542464660011448189885658132025816360439994713247580321223804239843590032781845697370143958644118895391284967784560616633586414271676836707072987952848541511045234085923677147637582712508626185447348016400963883515793270383305369080876694330876627615393460416559147227637216928017146924745575322732225944075961241966864446329879845226362319842650118250493565150478926069661061159847816783466532216881698221526385463421013769281448706185781297730941752341821274373550546178083047232146622437257435357824515896203709364076193650326782484399569958290793160309849921846374889001995721032238664269193118456827272329660080871846126441355093971808495725356213678431733211243832425077196848301989665904936152940543140551754094407182061435184425327239953019604320822797426833164461995383614299062750674766351094400897851286350841109210849299003697393878883582286058011430245331234658677325509685042621767081109138923727110116185229888435121196564825700600442681334518043726123186501812499965868918347062098706906387925679825719707818047716531360363209466037442890830838713494310849548747856155223987560446995377833405538052072334256733232476958956094613795057769204540615569088660277456507914573433624443422159503053357663541239267538178820211744533912484885679496310051603581378645320269180098571517826612118334209354917637307343163131484697668195997788129003216047934734549991140246606879029031320884079122810736860464901496380692584019737448918186133788142622457608640497580352854870975339765623443161608578082445069347315938276213652793893928081443403999384022657137743760791089424397166963720761302941700091670533142124219057376932362975680762342796212230919222371790852013528171244530307198676299036723597083392880925248148785417821336408628700993833932749017916634940197856600918759043269664414484156015113042297552437032856852811563748704338458310421329933354251812706946035057576581337252497192935265902654833044334053716758751430997091207417866533216143961549836533742674210986765508865054309585458240286709928695678140319944132541565421535286771239762309431237337892270352159597413445974639951152755793049206694347406907491887288689101435943193343548186684758498281710997228070181909017289963235391210566105064204800492918750749653854710897819661015322391404313745611171780055036001831140587405625663151486917932223464350697501919951735734542849153209773568973117938020638961118889977994117859310260097556090610923377524796593589989369041321950999496935985636326871807869542817348115994848672276151850869889025395468258795940208328227394341841296181771226992958281627719353484470842296043677840056783143882024071267483811238858141734374709908328186499303547405047826499691367742191937301824406829687206533695118845434985989281453184769463016671669264115906674476079613365154386615611099761103188967096435015284479655144441677695971082967992012355491951041840907554292977558655195967187994603677967811055171508839290496652223238565005199459714793487426101042948673617154705234659480914978129316123114842166551017712209024021842484011468263709520450436601589985388864740921645269347021486395055328843997294793599438553917651687077569657597579246378187310989997316661864779707226927101757072467557225030191884954096417413697789431062101953567459090678953900793320002658943323662064076775994195813699741229337861340156952915793278288908708806588902022930407669654657672140986453609761637567605340896634068668993595996508301455651187469619949073085476576138998475471115509744465594598452864541003076755174295768543532909496825640971937254224085982385669180392296247828807887424632774629707815675565354077255987971621728657040216019137581050234335557699453312847388321039037717683067252873814214295397941829479454007859965853710723251679615364184246559818539512175666987959984788587353876312330988857797388365507344034693523878047902494506215758088789754514306704561525918916993027280061957528170942102047486197738189520017523957235523254048388571191412585700389996175564821233623890326075339971117672642834788873419198363281910669325511979702720955729254387449977872835673589289641661775177844896900347269956111918119609466284889952952549905206830641659615464709899516198992294268430720073397401309535457364177395923393391392535244261026447285142411928438073025576452886713847683845839177475960512095812546706203366220938951578200993018060974816910061503180710837645267277123084613744672827400356419427315497722591884020006640233549595180412285163330904298743799297227216204429860188562405974501070613305403019730667839227846274546459222887171531434657625332036155435598236520260885288216938112864482465332771059193866307677440631606090008708783189456969062383060351660236359627331102890052933348217837871228712824261500238158443344362253194356724345810777361603604551326111750247498721644088331202412501214603790292995652700522720862303959261977556972001106724517897696180215026566742945299021799024973954256431724661990074242350739219838413671338924730864557196127420466390519196400729976206943042569164804905543318053202015531704418827874026444426814980617784952597831190462642413565072084771911037085983714695603396218813315017016518606881567711510012768304067378272788044772552022211353185404010735854825215852906657116252715625319665393142649710239307312335063194599955897904883566260199613813947238540808042119168407542693269850788599397796403890971810104276245634893945995316332734752995158899861863325345561649098024657006306695110090903973419773320470589416257614986884631331870930587904738706127118651084528042615686603393265395031206656532798408248842857911532619680907142916357388146904228683949928889279064707360593890194043302848443782204049388130090557762435835304396321935194370653918080499508289469133644840600172650170681212444874115354200329447112727959368081668150198524603032707742524542810302250719354752995617455021774070988715484084853752896504430091528306721875420660483673539767248897063191324108836838617091663008332850099034729839739350928409243743935668292243464634604002124036330356865177733228769559939517481789096686384989102740458375381844256737178935555829408259802737959812684501233106728835962801986459416232957132018527118041997466670379218031289939579528861397431091418558060020567601844517396935692879426446905774088069835473695153346668952357455579873103929569966402503271914554174414502341824260365193397113210009747025802598274818548684040354099362541661757397709345212822981761683558763508541912745805377352638488916755987907755601884933539433861367431903513567317126513322752268033585833911719863427234958080990736747695323029936442091553448290234202803827888652650327291441297976246666170071746234539499673446804190553838579709003812589114892657114917159854462993664379141189956354426717635405244094057620951260531829557469857840424581132732826382585020892724844607142751973190856193657690482813929439849232885252441571818976511082922722982403057881221312828486824772808371776720017179934719582674567589539251710563226200582649866576909368442352450393434786482066549051902342425180829022931246752644853608103188708493222501678168017310409999537951338174878933350614900282428726045390501972639089652772834867110065844125458723734371612076025397905318801317172583680418323625515231738545731315046044211977162294579226955021526648632316566201100944652708795046930963267960091075414731832955759318748026229052285635702406427826053357587135451126959402048917648000264140197023478127599342426319213975566004980477487756023500492581164924239714356291327344212035280579793141092429222382843643859713523273822142802729897709006399037307893912437298049508484194008623708841912064203156823986813647055235738641943258830281312058277835427398916471364775629401224522163407162261036613667604002243344734713497523640488409104388522269515448347608288838223267364279560323971838523196373924089809678738770961983315200949647711230723931169422221718995359273199505544101634211863764740582160169975778182438657450465881796759776475530332200381735215531092511970053636511107367601645284393674286422179397264950129646960007378693152129032618007394822761954931699073012610461523260300654479286078232632182454743558993200794983578192703827206051393325605110452048993369114345915696895263303442909460423518758043151973245009073375761660986894279928396901655599372692249651128290788511008295704127268967011324416785862860258345877726183478264015962931390931470788339946675546029796707508008281967246324008308400391470215461971067049905809259315648395629524044764488328973792341989771166057590083501589487105069907906925204867148981923025628874287484345683036795303059984035113040421635050329801899931604391421105087293291500827448179048416830917164365024276212815447132655281813164078786329352413045857212399950411375523878256886230855181475228326332474924249797840307207907284171427436158927569061940135330810335545941991271392610931613278284134378856260966158492905076096249609874992784265461972617546584973337783297480977334751099950386001453601206770093002938976007297406697253150070649933114785550123537336037107877851517232699615913282924538761097079119810906046608512823055997216630160462972100057349317251778638113048267038394160046501888295302192826526694439505522675116887772899962850899501456001555460797227907339056564994904997378835556584933515924541059818563680578708254670763485310299239675257774056117398017440957387303882781958247729531037111589154928041299268048074563366191936719156678065467874600978366886444211646102808405801316682657492661077728352586869588378724971660445944017496012534470190969617078730441892260652460800760948753244941823970485921817721949037508574973179255400967918389113997943547752860672847564796364875010875459227017769702949685758167966173643911783578281839986320129758496827780619352000050750239337973953824085745213116384838812002136656605166540835104209540946718968808886310603970354045541435273423557807860496129181640058943372545944907075210267973743016386381021992189122220970846935493430336296976720594472412636914907618827005860476489032821447490840863029496749736799824401480167638993547179316606758873350917356782605472484304920961390186285618286746837675529058853876766935978245569077663439941290812013276110484452068155163694825846810197192600542917162649944964895416628958173045670433408435894064899657290887942149410420932569426335065674200891806498081910304967633742397760787290041373982134180785655980911076489276256297909433118287851883922977936171161365276186492780587167663669628304787024279128713610669434983551283657225273509041799098563546577498433061309921167401068335498925426313267435467819873897198217170865650687362574881834771219455454750552097473181709689347371125003517748701624785550419904839492274658197651580364869418077919684317618524868393044077873084081795473906840417140467870991681276969430937871128760435732033195047441550057927038622138992020481256608817848180506743490009106969935550443196358507476499899558249095492997377407205270992137890202275485035984846181093134042196679611857936940544986932878301922972817394826437876742693589331393712837554518097527595488066578818313229633676700904231881207650617267006712510942995226942213463881682165799067816782973335110950578314524749062062693976074950540032831954589674868015498858496088600699153228707858630241343503733366488832313017419673449626864883847345811257705695394991591131772274556574754450262681021304874720170674798847986759607456339697753804986453265390970624611132069975141175018071368106124513310723687979115381271026688661686071408724213365912016407917020747256100305709305157656804968095187239103952862144442961925799373367173919086948305405278913839537259097064698892979092750402312356764163830560040067497195290608815391552812789721817813230636661725409572420438636261201176275599392725856974865842177707009903478433939315974508115048392368652778993875669465592870869293793264076336690687049100261084623909103604664190318140582782865376350756256144283137280328793524749953541415526257449565808562839147022940243409874381891389065546419959650278262932690111585374520688590448097354971214209675838823158381514355418513979206217948667556060705073501694414962472189695153113813478550976890624874028707202760435491185559879678317842218853627276995358585884920797535569642171537845342104022013346247151386891776778095026895685287715450219632926112774254906283317224082571910610273545674228676491596419137224559054018963367099929320971717278021792929672584537906780996765230490859089340200042822024745807780166296949321817599909107993685062453576260503480794460638374613406656688303014574638068141326890717963750114156716060411885072796499061674798842593546614623123140368244868468390990705088148000706135919340115813872021235493396095655423566141537428204853721429033007405628927014390526660099384852084104128388112543390438364449932699940791125171665925377122049410658014067469446720255482691746930075225785499510086995577908769088505434592346336390822782525392555333179009161197709332405119396949872029574241442867805265839761168455757763550134257606721519435756427012426030820787115563461584380995786842393047505851075321809603409905365675834176399767546047224542275687690628510400704035369652801367832167089185099295763016082449112628144521740980418237825097975427918262486838653851661731853883367502116333616185293305277739172538192329187047463107627426377953604501385029999776888399808130417166243736653613290622395269763599727633184476724962303211856164077744227049558524584662942261762120912800567019698174700920938466922243005575066402449142190709133332584407552886298222329467169959362443947184780835071170640056934018475246119469235317216156107361057282040780175886005815887159201536593804339824263118194529379341917725479547249438349065906915908730966907421602747283887358906965882775030572263964945468697398792861275994405908771677066894286696785864916193491088432950270976556177698908845915665424086545921304644444225124456629528195858828760181531907418565445077941166913213036575540193755615687836825892432429901706297687084689768630940777715203920528666520494496427123832799294580728000151818563524681054340585241819006382798805539733731657236472831728167123864085590573133902841868217342491643996485833626848355128811860523059100857185904782680708249793075046452051681185163148435113639700245428725560908370492023395034694615363810622934862695807384291581536396538221407141015836386659063077977014415276386185905920176815343426892882948140195382186183426314071264623731352600242940780187206138240757988486644672252966771784669330353497595735852860397858116916666103500943061716254046940786762790450239457015336236274347400074887154563968487468410739551776262963748453369172558099804122911602911696843382183968111939177230582790571405653777287246148820060443018453746438020596745260736514564035855901702101140599669559041497890627015847826334244906612436333625927868918808578668060860205254677243732415028968510028513158652119464845968680174447528076482211236000191803240152200504681762687751188615100170263894273710688968554302854697857426472297845859335502113292820965635296706745622129957007324784487358683100650783274432178401041179879637878419172166288922632544183159610573934898367357540386178739881743272053425720706168339463787982581979085243301383324348671993358886182983329072642908057088699587744408250231070768737730802732392059566474835947154532209225695282555840628494615385940539480652480000899899426418068397727141226086898651807043533359325012848190819556081889384282915788866265352899171655118350049760164620748611501181712694741890522210431270040861838442434934286876866141337837842723319436091067466243632537114164821762424784201404637092208362475798951277685612324378357503147234229672692281422617308089546783864760404957374718993954281471647157363296686982686920866716542643292114751589109359261668464022527277401307010110497860484603152706201907454525962569953486884587345136191094691005987634191061540812695678543612093886980370579171038133784154389834371067729276961312125077659191142050844291481355653335436549438337930111794355117634332904078024850662321862698369872063918140851194464293985088368234329200698506718119802852755420681656474110198115422722845545304317828109393651702131863514136990401981658873862913009262486524262208285245685027361313292324113247353651315800466436215483221823132418639370533154743074423745085390611026535905507893044876513935667704764662171889402177872353235447613649553484813237531563796455919740409889557274467759721412685385760859390969155259512407201909171219297577610041516100562670076668422699581357177580701545257123150591867244890370974455741238957807311022924415644595665592687067936272040544173405800547106407299854131176653052716352720699635330728158318730050642021409454654296039811433947997863070658792768462438331184330967613232676972428844489595156461679204712165597356516547851552998053627839839019799739900258944073694266081057509731897780140443008603261049029989562598106403197232691589260134938337165070293612661383832819987873632677878124060132381046885657036629062550262165904480125477411993792646488942455950440758743951662851160618802873630985403559667307092461177467926358738225771765165269366189092100337335848087969703764726663953434897101291390292957486478925621556690789479680047639584565087984459935255539030916918735781134518849432391915783124252427900316981090895281011813877256563944929009513315215172101810351253998730663164414825718369181603456364734921749409307477120055336452536229867569618902113946643097050147134192803562760908570287246820294687183324398724572053914932343781813941858833428631081781307010932044744527320139264343253015136914378166986653780495676157505790736402351392672918470314792274597600290000476205393792971945674860563088058325338540966754632062834409948435691488249224907164314535886522594572586626594545240967009018912129731473599507208024500462346600266189153915358721975618585920943589787884443338226432723482253656099664833923496907983588637223545822932404758094705101608944947859927102657641105742604579493217592604584019094814512384201447779035839613768791824344371091626780919551764749177576563456712523031657092906278020958676974416938348442420022994408248317148445914077020695357553630654754584017074420651014726749614659096181261004829006687570947090454927441349063270019109606022282068363055044044362414130003290413997775552241634617100467028031137214970935865996193290472046313136494632104656980049555372362290828874426041197370616483621014091480636078596823077825052826000949626061363636654246609990087565864163802100036565742856108144261558737809242458715732897872851794845730171714728525716890233818795110721600997086853389452622438211378931563051829172539626757207174443552056412800212987878459037165385562857332720975255673884225881277935631870575313274128990836046173985347373844835207715661340510032363748669651414862958523680061820247243677960939384063009510188075287232699394609396971674515460245187502323577012132013556835733092698094683067046190332582735974611706608163415595487268953651469065439303293754408258357985243710383683631174001582439164179571563472626723811821176228205194309928913507077995775675112085452353770506287692970832187706039589843927789534633759552799551882120261565655464639479269235756439148850089133916641705693015559630689603303279419825771638511415865403358172482098446002727538770370882106962701706885518423193309918378847078463535012063312958642487294883790668514737550696548301072895202282600908948061111508462863375498980283159387558658567004174859474275708262129561315770913059548837819993767954089308217435768662697107480977535665424133413682206593601870547518710214202387212280448900072120556247477464911075070206337759845836226422202307580953692871483381762208813482802233009946840736230049456850267193536629892279429451132832036657367549251607743623297471294251816366354136406025947964322492309984542514580561328888846079163124626932410225518933134225623770240894308523052863848804076365063981710545425248537896491879048950135405304778458847749863650469936333552352425663773801242273682924422003590505813096450531650449037310428125366236567328448115700568330234516593729127737346309826814430787471483561723790041513001215359255743886577206665010520124055443512249115698209370599392013406602425139845814417347563471769122739198056646646266175873819872735925004224294205668696654983527795600416024797239880820162259938710121836352296021386695429572620574658159364952128083270359479872083096312446742442632587652444996303768562651367835337388109991309057786094162823350591816019768256775287237656756985194473893037620935085824988776338178561356799004011312803206365985556289207110713882113632095882648811709253555227205462104562930241214298384777072010072062441016827842907919130120475620477895348273785504356049235129421221038294371646214996609329397866293643822968382606554273258844998313379743254060500291244894043293191359336012577511620848927970704897425523253839568466556764095105774876962819680120046387272045421118749818905158465454916982531497608635352387827251521662500118370749882578610601909264041707958971171855301316547503832158040513560048792664135942052051705960992104203904089098273030778529602002739955258124095971887194342513206649562647494661428901692895052142742988831808184928314449171187463517151629459971004206135054100662562854250105027345563914819139305908206983910720406169704224121067341978213946163837928710111944334292157234050976189043489461809609783246415349963417984223151816660602802553662246743487456704960005270628115285652782454649875477360595047210360092289603366870360669385126458599679874871057548310407856524688006309138304181138430496960179215425911936219371936215010895589046552115503998166075070186561114613805486225096585245154877062764610718289916987754653541428152656425644882146662146502931353428477845844729813856157450763594193082501241848072397793303293290307369633862274634796632478555427422048068008135614132631486534821283328426474985479438161760126677230539465516049941716033540799406428806408684430224112740926870791707628488556666157051690695350908042522344753946957281836878933796527276705519813846842448106758841017278647948462217046925881731381485389971116948486311318880198583596524339620128683535204857085341535081727756978877776913011683398971636800572650573337305932132699657790837285180542331832910792479485172848915585683683090682352686668925870154923042852597137723252327069938970881158277675021119060958746846819052117865823632118624635484469697508041041446283110927345695589155212514193370858659716312375204638305206605419116922119450362073211595458942932038191147782813469708533901765688841715683620204883288630197896143084682717717544343763482308244214189051075385592989893886179600870246635810435491691947808068951993110036762625145306026588239646218723345748973869669306498494618036433171520797729181273590690926502504967924269545784640873107114162711005382885272393974455311042365688498454374312875613445643727855495522696142624055273020741959368543485369343872015327204726847493741046446583564680799104870611479543251141481690292582253469550541104334510467719196933999340070580341472333516810716157410391238235830781661301643140369905011489401517819028756561227205498377625215088065435593338837041109336079489268990201453671350260645842510740488290692205103162609345297240687743470667881593608539421321079991673274617340021232239225634160983959711430317585290369362007154546203135183531844744764770390839215605117396495126239949478433378384237516732059000384410053710646069153581797892652593978966235215209820202271744044983373079071413368801907276933376181106530307466086093906576056519844458257081509099733656885545972603600915900951939412227377578022350300089458873323813803984541621038284484876661049391473147272903971266150311309778643119146274757866647071216418668609920449719184690788786646228272878623094133798853429171408708332676059954104678108310220291060126397947649191993554314771079818577064233470312851720778625441308928054479961586581411245180560910057717288917952328281320710647075930405089935377234739134451556726850593983448084199646547392659091480417470964065884860345366771200958140327006456945494416219015266567535226615121422268906424365552716817047600641697898521189531244721424077669680838426364552053898189626291369550287672600730662763055203631128095627784275281020770906663471182439622885176932699819606198180380846190893018850303964736019851613891207798512929765334318780780443211305529166655831281831887403465590729659493629969610972587606636292746413050047384749585829630039058108162588424508929691817423715591232287125250930503041179007526766793861570231356550374928355813698937215091289986892891645966411545274309214391187969859895554246761506792194024154500718727725167075065105230890974402706122739778465584082772519503965855032344756827621312416201310184360538886805010158286685348808469904728610905937771407335674317682100733750474603506978269211245114254517986488261368197049369501405659539881308638477364191428874904133958490996415753867079727555278176575004836597718671408596464274167802681923041006513373281724846869014966225408936540679844069718762192077787627135497549135476702770240988699273906328092409997446826334291608277539295094457283193443186895852806859341231300140340754523391355722933646017515672296741313248173385087678948850090605850177146315542107986164537516726720321355072054772111624151826950012640205419129062989221407639679308256892289821396530507228813076154371258804485175571983754166600615239798469750461914504731336322399900996719512155666006361004344948978051622540365410222428023734196832145958244164483803288951501276619787723236720563500054819961745066673745362360370056965656136381185834178369621063104894081166285036669756170353176068701949560403095760339130399712043594314754667376428187631944978165958138466598285732902700205026082127841365997915667376933203907443390925269222259493318137377857198437285715777481578559213153944859068482919181596678884455758838954413232062574525980779795328931426815495503571576544463397536568068652875775550544929255908320899296264838383060837972003855672257153995503978723717367507598477290887262125498273042036362733664674420781874265959946035771694715781482511167910572385670715279443013282502371131613699867280136825758315332421893354220351467812332991536595892058192656118830673504903793661683146167631044448552815095114258823352679965021045799807075664458213844690507810704639262502927341231219748437855347977803883695954799223302373773002134807102220153123764613428547939727331236362272020305600527144087787626240288176317392160802847672644078197671037187038954169000451785070291515975864940785149613625572705137920409756077266056239231307760679864326555708574998978881099538831864118714667068241864178786342133663796966874058293328662927416784742094033594658426262160847600618563748434072682088553792901209436008740289370918065614400895022299130287996120904443912304349869790736783546721329055876063624401271359907992368783563621438417047965655132845454204606947419554851790255562832236968610785143524940565295135026990837330033800550160781308170528524018617111411822851541239564841102495239008399208436546456764242519673130468611011575943227246432044013635654080567536553182459323567559640911524649434345583892787773357656489461745205798361612292378508473029145249714081244427223916504796455125335924595546640933762134898437431077135913594852359593694328762183305637286921294739896594758052352586307242594033816689528307275536026577195128006720424110450682923922900964795144790432651050478385479456590406946656181613826380075601325781500602776978693182879312032051647348771564062425009451197116255618280013104815758557389292071296737776540819988243987223322318228482610894964684150987417081681984606670595185802802008428952112168458927330799023776877908993256970950804094093245978921068047069734189566862375123330314965050283842105526636196006410036749970365647663573100046467825500779699571834084403987940227371208246335689375616221199936780771980607532621300296320503981996407622304616580595053653825889064428910059957366239155301563327862043271593801856670429052238691016657912918376217637517819039662054798784191547575547977602908448350569059304191113045390658103333232306532268379591822450459011143338775261964920293316381822076940199356473971199449720564549938563366956176872428328090195834527591400656634813757903711521340198474532634278264822649737676776926509357551063918499290462109711366244560758674872205097760285007274560939658164421097958596158054074159093658404090748359351658276358682217240432332799392031294546427369978446636995985905579433552034290210940964678279029262271364746055324677819533905906117902690079151672077117816418703445234856779070568139425025180462842793402353938767802971275434838454556183304256000980347012307579744800220355043270365049252776396246626293062172283748059513384054296392684311313267469271799030189594817549585743547933951378017448908082324474402312649497199188551327030820568605673093090933045045819227799666863782081599874487666000675067947211218092247838656272199580158161434992518466492556369669488718816599194971234345622153262682063327392912927368142257442655983854674614538189629951792121885810699807118934960675656659488200127322279367097760383922281636263733133718402796342777142160375079900024993341839315387217017399268845692911779859563819980866918275260327977792965118866508420375866008172851331748320818984013190911827940435846422988500775506841859266809790314463382642724341483807830892993703783606044258957630408482225046403672082255402515081203923829783604842139234528452057621362456632787587563709877866808967841804917666758138548500493531899121495909492818966190879066020667316191266489240447565991016865179215179424269475143078557109381773149442112855276859440420302594681600808596011429475754664071615709880306577911958266659157674442910986369752110043568122445025438767172937470465832463328358481229378918135454419843611525244166537182553161557927611939809857840446313253781073273368924213331939434303450314607206617546339671779681134927043168147725198861650451627300406368948720403160223530781033951734007945212387442925097091259347921301668867625744941348440391268129937139017151346952106889600535640251489012150749180089108083591990813195109342286921829768337561932985121444561950983881940265733933719883367670741650322381325393826862270025066588554555801792931575548550187273440261338742925299662343675460943352065096809986710262097095200648548308061024209698714231447832372542737545045247308660986641676863935783568120258446489182223309545476900758410112453858186109957986051084358652711948422659975533623076503691891328214736205069865142918903509736225935583116322486314643753469257774574892601788892337305985284144267022357348979906698728372784197021109229620316117620494180430718338326603348546091613423530250860389848040132929665482316194801375393176011600725430692307229106216394570400580886912905609502567751534331961292820392196447342744579314742182900203805945245292391556473370114597099855608302423225863791688152630086287813091502822450783993816815869469303023204306612720927938272200385453776391049097344860127815469892275869874198481187176450408074888571148384452193252492569947974893375271968873486516304129477190745051828755080150782652406279943587728419979741302329036369157102677550757469396012909448619301820903433115532251707706713305258786138382334584114020196822563290450700090314497407214124839235834695314485152866779995778864787751299671884356559725010171130718293930170593208254529905606525883079024626121561141317154963039078964997196042281445013375101151656013409767954343574386034617398817897931728765347719087223387756776312077602464723373020468629195414722935838136088622098556339951260361614706434043628825176680323515891743711642799626998556467562307467142033677731935738676505904044296250781051758064841641480420724954162766225754405866764194695707512746791598025435998853605438799348204394984927224025825446728568805605786574475811666014311752517965481686502885669255145478599352330988031498742648160744970143943482465531196334426458281304078339871072092215562284511762763416880591997267393074456065934087273834014330519180181698326965992812580540739579581720752172739826285208257509545829333320506184265234096922396522109438822086479243669221959854064170082145603103922799935965638121138833480099302729490057435878329023957157564295780909049149081440665740438464163482312246830859625347672078216428129948584100867884661237384950237339297432592739597004846842362359871478306749745419003665910644280475139836227614443075919854842821532103544901627488865745224274963279062983814301869489690061261742287262826426850973213472731936527227057971279705502536143891545312359000328775244589919453491644171627296860606808587358102049402378169323056281578800311166061043885227160046465386174201247695458889432718558862285156417561960002551692102185693806047233170946110861987458374621819061450446496396769750564091598464224172273889476306314624288961130578720767841923752990979865922350231964328745961576659037187953155985632258555614613841080071356553143262827669529635979568613019912307668635797606814336904183883471394569004394060370795882081503218032370253278736205163844260542848980189875773118271489880528184148621189372613931050442990654125247933845417220708450225757152303722110101248291411887872430497079460992768491065496098510906436561612301203325616058046788672148415678176083643488848456524428896716214511948502955883213165139918730765042411975626175487128608194890196728821097016739950922781024964238876645375368567480402701821987825677994108739322739098013209887209187728344340593530887087849182140614399948336410493986118068097241090227346225813062156825042373250813501279517636798110677863851446242249968004599310659942767945881366714097784379151223533678266831221210819867260026868478554074400733917301305971704297849552619950148576488929146877721438047065687977425271431972517508516607690695639824558983794136312970867901070886012068485368183616072437480660172156697281460498934016659640774794616460693070744399779914170156560139608768490261091393081388310891332871833749626734606126028092889536569913892058913039928395881637904729578768555893414597538455897265233058606033927836785449823186981803591706389310029149896528649325924322363611137350265342640269399237199445102046550629291426592995269094889576806431861687234252251420648997468720049513116460959650729718762053859629285069549641442930079932298860032967394319471981071876434575952661757099731800774902904532413286809297020347057724343565761312345397980380721620755983123309854185940683169663599161173413601648961313253005727774512245189288335654960007804370043757860904598837882219373836842499625404106490496198232314582101977838109872605631143100981524820529586670897943847633712579742113632309902125474109601904352494729255779995375494637174394904477000292190467241623631711157369976001957130312108695156873351607615533751568558791953702355412710002778723357914187327598567724479439120257894039980212243182060957773037997987979316275977288899831948803336057255075173876746099093343519244998371247746551174881432476981352792370461800415481187953554714329414494152748509740842349140398259555146849458205600138761476038071002943537467195503221505368135407751526889540353857699414669240593513302296956045692102693227551498323497144805752561974519882676158744619568092988234109386182073250896322762824070759335703127530676428401175121390839464126490121524812521654237562289653254346275009984264549907270740973898654814689371579703118965936191953160474391483681781778616645214884440925517573213584682044319330912976806715690915698518952100907524783532616437451383356142102017529764407223499390650804615639668570197739048760378610631961760121750532453592342183688273162693301934105604705703396804463508749758609761845885714009655025504604297126003126142084393349983164866530445702959321735977470496921429232665153991155330826445637392929567362521761699294182998693435899619485458996485656073779853198906978826807873898779923536945213389551168054778202972845629698345162948024811342028815088407513589201392020039907186866842249486216064403632699528776950399152730651792069594268162209686090946033438500640147201956643635112059576036596473581735120652632866193652159774165546573620119654267676629886508808244443893400394458180651824190331898679095746433666400329297755419892889144069989313628339812280286925881211508014659782970355238083401707229506561605053730753691819332496446856132983669243238033562352436489060398684272612647089402752607025852550124042613576829033071458224470657992232268875376813282899301004953357777282778128101045749556172905160892450833039570373402860548865439294862963905797245094713230811522016956931230862482294759418190923207803258486242590786612453209747303762721638749215268761590993973018770069387784303170504267397012785593151423355484134716507928964719590924298372498667645374315477013609226718253591181677024913368159550129770530552255443363400369249024193063945983654678533690765814093106213591471814020947959382881881726431990491809413341997494033276605061636006944291294657496068770733717284669720819667275562594194729471008751107055066334795408735504216345875255110239763310884870719667682695861263474616015411230442581343750705759591321545151905760033368014064689607827869840611858253708659352500995684854690793400355860941295136069724079046343796701869117206790547532740152203524059116867095061087272271712388408590176650896860256490680830892912433190501751616026146516693878776427497439020572703820152799394856709482532211182755544970150065471371899738932269313929885965697394537866234764833957565993009416714286238719695755590907070245362703014756915229052139384914988224622650756301587671730156864892764179354105824760504736345816207207686180219179524035131287702364714971847542336985552519090834954423532522989645527269273405653080640179609622906772193364184040936557377575009081439383082338648204332000486739677069920572166558445217064862757194495380878858661220299191587755081227338335363135529765233181550881117436118494422979169942728081100115051876163248722912941940092168631829711236065962942130744557436036262723943872965988000199275147082636446860952392814763760304242903263916697990415359341778225771620895973672345999969644204222454395953443788733393646254052009076440364947963719615162308281273975979794878523441519511795932035298495951679470715979098473435866730779601810824353011920412783711660935072041284189386706952089741975551723165498820157520200074474253501941631407819635383734103811663581702663055257392430010358253412757179981323251949852127304899617679651869803871738108028827571951338220756033424278288638781158618125510009114544942069978740751157125847094695957475471196687347940207604596247331518114457212390778188576885679892696979524564006001388174755058018516292678077116016075977147550113408035721694721903618187662633404536081856676626286319764536479439824367726060328776583478744943864254836815444956820006363578987587875465765660240159390813378619694502504861315417899915349397235351427862967566405694327796680466948442363235176751193337065501448806446373804550896968632562018957714476904132860438886213977738632730994460508975892955165166820087438290725875438332521759306458050973171687653785550877266782912829146419210139937982391561983020746119406404783895841600570392444661792425453522834684232296758531886208556007095350976713037273766579145130886119665819969078322077404660103497806498675454545130449119596909608706138711523047889664114578417564602572903154821284923400579265119363659145337405205132462112703201254058266366103494475618118523960502007378508219190946981003512589722426686985247910393123321780726592576807175146896942527353817393902331924371300107794652968812554003917627335145574160381428714899666837104460087494750871789535573508696402309209810241552921421218969059334237558687833085236732570461984500529548438656577186130256164840644312799902146683187779847721195076560371821782316037341914224531866421518741405753864110848089576780354171454511330540448499728285685958554106863718616235194475491985534915207556088145990678986901693234997263913226855260302977716867019483808682917154050893229516506941678633003744415311576964744067008946833764047938845656482129515483967274606752557887916915923505776414089693908630330784751474938223317947751652732807044053807882309525791662819261771408250819978344719935693654004550814199598777034826541850641016835083233205250218784712456386274705979501966044672602590010001232193937497646299749402608417816351857294142813015313378797025963495566957762791433855804123950875378096018594253018189356353135782468527598235574877061228652677153731976337193084487423354253377069884618955107951492041961234702388807330812369831892961255489628499794234881648822948036109715620482946941239265019283603865345796974241085971065969383239989341478363747694621681115520239604790395262041575235086842986458340194481115549730538558252088564362247296515173672483001689912330808225752717693959634390408548067732998415834684778275184854010018758446545781102418894581266795847666875146277903279376994764413593359901686395828930744982019701770509128851137727160788410756703996648614223039061071577235341857847324127106634843591485045789508639390000710859396177517674809882412363883863679515731765236729452422431651241183189079581785020578820786397238282205286677486710777173411345053395617441028854517398277875821894093291546917634051073143988190708510732193526115091423073596607518131359747535006732795749695894006486820083505876697216554429322080882738485191426579788861792684917755605267553358891774045607654588107055233761442678375343155749811773963479826424499509028215024331845705316160736663992892318412517595540012853923703340670565550233578415800635218646860126778443596683804648284942285697270885194923305134716878820019843938462289298777341039657553437883892577697763979230414851844719859454005400267449222922980911909232692242690422742655531111086900533545085148797097978072894090429043734666296180843821079343834434076780172368604228485958648171730226602300901346761687421008584843634105335643819557804506889837130659298535908227249978669846505297002860048594748173346666686451459309618255731181327258653717251766542694726204043093529482873532577369433576355753187279179336183790303156076877608242550778483323202098781426006396432605293597488985547444996219941235947397819053548495391038590851262952840137227475686789694566506392689027146638631497531533697918304871947309139687381381514593377810328814831342131364577456672773884620837269707644139311748533816010700935130618626677408594822931851919453344855584265725543500704025932980330034762423935284131149201441909842730095524774215862614278600651458012385601729207062222783401182852188620606540922720182672683405278175912431691549090061457689529326373024364074284865387353471693582409898221361718048059406165111517774888276951563649089086447058149461622865427021285332448915486888652025613789747943094556636185939056499743412934893367526480248537720168033479441598956933632606026038409307126221799720655583076707803768227945430098240845366490294107037415301539738783254250989952530268764424382578671768566850698644309140992664286526561548939265141100879060341115937432577320315056945324195327302074516716671863623768298867210052755387426045481482100141499443535633210877336224672671875687950040648960962476684004084772693338623905794672974208514434778532418947235600026097772199754116803562507135918597359377439341399014267646859421587696936848624766324537723642449585645924476381053748167728470037582584191099053711200025183090860156670506949949975079994727888379369958788536861512993009560662347007919848187720518448259351678689125757662756236188506619737050433256943964602759377023376599389890221527186905305598932575545572527813227268538690925900530493176709525620341007763023145428629165998936756369083772435715083632963491314634766251551344662485558432371235076242148066393245545588755676360904908063436980673554597341614689950106193423571353951118271154654376186160357805573265174187952437102410617773020442491016609479415060277442718965232503349157785310650071383076142468051563231632937528372762426671786510185366892269387780412475898944962192169043129174579735694131567088989740685943059920647716692985911670806518301202268406625737018729893768523436780682707195278253338389417693319215409215997894883198920173362657064705742890594964708003465407052577670694625636158749649549978420044413762198569985660196977506341770448114806452147048865005591584139861491799448772413918125446870183960225467234958824254556238169815248455326135356630425168720134917638339990968734428262576629841755538933146189605034445532525573241688329341362800859835528465108232891679754672567532685289115600420296754686853333771588548643951532850566888343885192021617595259895405344628586460627432844321223179294560088617008733924667067836648140182754706032701547628925540796229460395988281530936147692441322754756221118232544926085848899658559198187415700084915974411047022664652995046744932909535259664872661168335468146834950933422912193713046852175231462595467880914062736535828674454311912289751524121465255128252358184839325096335437548036652066305280745042960931164662686621686627433854243642291503972808724381271848886534964670894659846265213301771058500470518877571736460702446743842375308246467677129535727912188370865300102091370899353509859752839125191569605603111132270543889198474768457903710820603243505729653676050821922141595264783909489726007023778118709912918917397429430176467794509127266671566675531851103577228870454239165966582765811579611438609725578036496782883067298616969721303347866254812404866538170136554614805019738958978924154475102602333280445491465759024177636839450261711244155390991181181679609004231451141039296444943531437131036605872977446237974036414380303001359361273250213759505409269883545169692941180027009556850770286587544096832329234138680975917095184587971488694827175111123270329760525229140569610019477809805164736430530490800510495263030734452075437951385208816316896626587573249069265593322561320864095961819881236715720927740708619819167812793841891040824944589861176604949388258878399130478451604957717384196164123904174031672662580249160898727341636630732954412626403052693514599899664271468283703979672676851293500704240002625066556371028473011319558172876381332731519305701656473543652445888559287696728290268797909300780159162216922957667862810498541411230445760831324610847771719535617532863395657329944616811458530111564349277345356636128263153736768127017752287289601331538735189341025804294964059599994969887482284657829490933481983619193510084639597540434622739165287629043923263031150689031002794923913952056750102461344402149095760986644580879435024444847171838738913377401285885929166063921719044666690564984548610812588484699833735231462388588976443289253990267199680850639365356423157466645671235205619193593133127841077365539936670332835223658888037764430314827987716397519352249941323847559919500410120487605410455027723970810248464947733214485701123265537588566781597163814011827770090557195985258027077968123007310210053434781696017893469872588151750310836009235888969664792318461479791734187809827736834005933228611508237204183074107106915779468176436596770979951802236319027876738629895789490193108037498490485576635149449249159376225267044387125318716738862228626782290754909112928099722020526311056769008904762218264918732330165069597322141610989816270733704719093847814582699466891286097943525695967459969384862464416999363636499772615000669686804575430103328523531161203887632250117555713147012331647335068757214825620132603894949050406749983907487354728249640438163569093862748685516282168582814457129304407864139384877561860729907922716335777963912349208424163947378025774341181943093705779011875664723001773955674095045338162801600854272681214070551696150387121835837654447781966588532456665666852616143593913840827565258663113837936125392291866759212099868331458271347474376604557931230118729810389292285880154743657206150160798339484266002483361330982644252160892852077884466750700823637660556415751941375703087917370025765498481501245641962965093772109655863019387857185115917070330702027045593394091879407997358358670499133544377531419693244920108520582869993684561846460983004883967494196520527708291718209481658945513529311932415036865667826491549537285754028279172251143560475765482203602453161331971188826103995187617901137121040816239003777787314285693429614518989170591500197773268176931658197211157382058277300597212143844564022913146281353675659368439147916946342623852520931922651454291135530740176463070942869579471829917119375916136707514839836577672102159673738466807233464900728058952121702181657658669897516958473705862250419258308646797540857092454146062301298803963322463890461754113483197982380720977993313427402289138628290370270427953493999162971964630313167638400077686035672035377062921505440503464817921195792750650752127022280170236448288399361771376102547796169224035757240406227241997924874401300070742758684588579995881128215166614052532268408988672796138793621570607212313741011190565131555592734301863758264591057529303145873477352584999591680141760104486936770542445392025757001057186152405370780761383768886602643946031250957001407875736227901805839359039627072806130980355738241015694410912326334196554757146822106006059655893024204808388874611728144747937972955475648914561392982824895910572626291961720219684649986252317960655864151356500940535667212472961447768621192333122808711864920058844201506457609435383972123964668448770887851081920695536615681683235203450499576584120857462820512758066284135651940011988668249008766115770848973332946780689884045914852045580942793767967341002826871590185552880389518358105282537300124321647319425244490390800846100350424785266585318932978347817190940862725080228689523259522954732691751546595570053707387744962684451336038614786924809161946585518141500494886237051335656734461821617793872453602372031794784455285080288678348000787900416733212569144583567897493331332075979067353063357326302821179047323423574643593786611728086544106132544204434602040071369092864966070846214604531067084508605812172519390485286133407129946684100400921250335238594664782181123342216545205443674523811116210199042017897923832735715338938059179602377761472174351615511143555473207006478494552632877089681470754010828468691859716645982211212753161419220759164508357104549457098685619541446179163977539037388750312767955719669989191251949367932987058382770427750301628997714587417357230186169841543188061853377952389745832885386191609177760062061884796886690315414940684321593125339686595794503198416389784245977426486525701939306246246524864825457510080342873560817420412388731542787895062630940925482257118677787148974752312089953564550090194036460561429234084279289691237222072600144022024245410784498063022758275869345723832292935802047263843557299443027295243066575980745560121921348750551414715134621912874928942958194077994253363456067977930676342869605236539427139707179627584719630600846112595267850679425152425649236861823505846804366116967308438004855082288150603137319800080570813741536250831045207745104077729356208297115967763052852928341662942491831488337723278643808562099219493034823485363813936184199286561907402050165250331372421329432109584564472047749248653262459249496952502765168222718191984720965890587576573605521451371629383116770862140513911062031940206436068556759671897946081515267178491840818540246906146500083808200094605534515915401949539620608970014759882145517562188321592986103351911376330290502893487106024296473805646020904831137120017911007363821838158486127570880210594080855917454061449896054628414416322404985772077745007428330917785594048810910331453790653845055806393100885892716495751630443770545548713146851646416290856169234722538936941291635083731550275055002530760483093493607213089688502073482389925724300607154248946693835051816712908682563821617970096458826958370905514704743036821277852483633358373561346201487880059461474289060602340300380161767865551364191903450029528201381474093785629775400511214162509243530662280235597914739237185443906063610530293013500178884618037853296669439328534375724590956602621050133862047760383742617732061210562892233398699545966903291589500065212462888401424208764600085226524295480150010247820322900522883322729475135534662087108884550180868123340085257765384789782738048616531502718732637676814358406059669476523810751238105125279491750778918923826660990743028429031998397776751851115815189370128844182287021574223512288051311691567953256846355190685461889018896408093965893955795687490223504767844532814938567002347108285774314954841771344322278420655451708128795737377923763718743975698673617243021844735657478031755960307707444813349061776791957458180983426561552604787752810826880280019851744113369253035990373840214784616173633923427699638395815236333095009910652859852720022540981936652366097180011893984724185715720935383796022970997341251264952503800652379142704678626602090654634782897834980839602504454215677627288935618090801180483880741721296497627825807162067962918743252937564579315242882413629933895445746458147338944843440821804401901287224257467676618068771876095152446069829964762089556023646952966211451134554830235268072121063827944350931177567266034112479208774589880993725365088126919313179036142039229918136044610912599178717989059666666006370227783509165443612782016642241734746586184995550786959826122115118672833627671878610981350189577814628665317670994735498056329176851590521469643850777452436034147684358658762216925291886070961638242305577658813102331043505355075884435141117862224145694924271219939638346090735046644701863013833638762716547284091326927230030504528397495003542878157469287282936307909009064914101345067315058343804844580913940750709264166214468712674104866618214321077325586032364229351107960903537487375476823732306146747651727348827315465835359173659008030691382899368475116710219695248615857764062273380577689674883349089439001748666982412170684733174967178234020702511341140278840051888888289156825068524392284944348637089297663299139585949274236268636594577905560705728045145704253999607771602614838105476101879379111550126167093020802379543636229250343953444571283278368051087345932415096724915226377857539216516979762805771316326529149682876228989138587796307920626285288515325514109098380311398521431978475285466833124675912735611746735825958937106325548924343615624754389411174901274095876114764556504186633865592437828025660117491112247707013390940263092126468920548533672758434724174394588703229275295736915493256319097206755989927625631354285803097395670195251536713993772750431279781032893392011815842486256359638844362865160558196726339565662161716200734214115172834952387923909451680598249240676695406283725781176717502133965479562017298916292393285885609430079273939413083552276122081268017130549964317454131377222020039409707251974840078051452221337157977020223643419210018505977873020386069303330769398063934080127558748169094141020956593798664236855577485574772846355965262624738644305730806170558645897345791375084368522696434701310548592814642707620951005212370433487264876718509780881302412306742380076394281604934961831128333086682059680890975137873883584359727247917170278469901227716681404188706825806081361320963737242420751683584185634112252144702036339791016212835718379143955892072624885440668431439778084820452399907985862317543673533334418630620570274110860949141946126832516455718746974464524002312375806492445174800462321643814682077619801992657813380187448854694817059873063314695298113646303829450171383244824292151441779013706790654153033768978612044005026359590828404138886155498645831373559425294451630842266346281556128590662246525581189457309711420891031792179907569273896809193809492355402258379031998658125256870699163774515772524928597646702743109139924802323894881344598334512706663119436019360027756810789239091726766460365623568531379114235997545528115288009300341573937454535299891376380151027267225960916094726486625494020518555068694485616283468617767236705899417057537426585748105861827748175165286793569638932656393293086483604954657646182275603037861261380623827498128553118380692045036449179427001368924007006350574465212773553680411791442121003836581670101624374488679575368018552581460086600637243801194014578989756950851710353083277675234438860557482014848914396133333301561451768581490703172935120515192446482159315573814597412098674266719406223863323023618878085444425526093954331113867952659959621030522678155589008955970120819608301002570999867804567865504506556179162320067971877399829534385994811212039201302235804243947058841737135898794100470387470309329179570526358001919724935400329174550276493297996267415271135869742390643338236045409697881425353551335476693863603824856475158998708718311155274851664885043431577735386893343581363451974466357997625580795297424924061278474497191352004940281363524231237673013085089297189730713334362478302869397843891595390226504322663497909770495206430074567292729022190686915451654071349831538042654904126918877606169180738400969654660551920873488746683640867228620090744119401213470151187714671320328314100816883358646119986324045903948094262255832121321053208118604485572767247192217417214699248280425069680947080439925369616812327372403973884702617879160479137462756257279372827791432466992367051757813424790884150756051805256262715966370873599911363136225640695562771411478955793117121664888844647912974976723730543280093383319256394089810303362304904886657182066924998277405769125931882784498365882521435172705252503813375720543373691981554127798437657199674964639496522331191449626536437038401234898683222153185335842584440768237404486647121099449250103354210599389316924439153588691693955092858990007547622680920961893327375862394854079740619550867865477235164640017043312125377912650210511517013752010669435135154703183909273570682061238553787566523896762600443114866143842153761904454602799246324160766024132905189207503823505906842295590728474820434693218710393407812842157778988790851870785429359883949776295706231722817964093415373605999293451003935598919929364902567303950204286137523126619751365375919630284765929785559188994719149730114603929020760140787102583586388868033460407267390187743839761585156148060735185383910935746585814093800740744365199480522706637469993150229297233132758488833971607839671352159227610494648892504937616645471874092141266938971716600914668170042820340229660459542948615744264177678934786100960105122978435016023041698653731885507764475538942716800160438635727144598339436630118895883994346399517090151199025858773895996540914702858427634038178887588509166335308740935785083147013023494214946166523297608801116800071508195962181680627819157358710422524850334010108575838301990630686487529145986580260447622594441495618732129743530722674233363309565527184696749944678956026968680018674420988485476369917541935998259202445442347912022466867617347410673896069729829669010112344147536604383266170186501811802642865700787084102774608064066539548217621272335664600365572692659237781787154093944033501604875116303513892443563829360392498667796924741769984178389877029721787240233117991492941188624835198022580278361403429475711193646566749239000674598895666414445442584593119457484099831463079194800936527147135545025755705480396982292852783950529128636316759049715458455892738777981194695434913800787518686278006583105788432113287299347473446979262261390648563744672527361001764561390198306389354985757193359474923135219397907568579546367253856679508329327022768672805973382034636086175133155118771889207325980375745433149861661995808364975146581844399104950100944887524588691240361174857389793029208250739754837348787323305381153133044205797119301312341176065555081732822338941607950303162810863058369855299623693798699575520167367037577284027833068472799304274435429664567977593657436906248782528370247081369466758222535476845008792970294915774426720065072650986076706298487886586546786621452679670836178312010086267222587641794070171061650044266242692059513095333404184252832240493905365507114333765602685005865809463397766418275731866794576424989512159005960863042130728341893561002937995388512470490769287937214829652631036944676929888106167493557681462218361062148209475829357522606817551860008530761365802773391047099461985617016214743423145441501487477181167062754946806935621099068993529343251655951761901472123006052817999222993063013964385975207285208456827626707684317466061709552788479862820596655031819903435427951541947098709011686525992108346348459320805898190226940570657128226837719177020173249564278171567239395582547440193706784355858060054243887296602166235680759759552725932270033917011776865554007354955151851159908756090865648116644678666647473001545949391941849075329066896095546464534298847547731638630858242056505791546803380632180222005952183909143416100219416888963368194170876982427502796603584443095569801191744637548977751259718724773630421127317353408633537073600215983318834695602791604726173243238303740578658521859373411822151898688743646326168797560458629349173474993984005855152253054839291531453143052499980590909961080903573451139604771810813732399970166037751262374057605898354849132435116750364335388098803700847097012263635228907762526577152768453732500845537367481107973141233039257287493784824751299468805303156896920220249837705359384439828971326356769149572301481606289248012800067512479004162454522015102516392144300190839659021581382168337009343844713324051167396638807107837472026977868019906009805933966521984414411708741830055509995909725007355983857538446626679449849401553052023971677350934505157578290118636470656467771519811855860996958204797447065467367328803994870399403548645145311994273762910585408215278352767054038282931538628535260554607299012595888533175804643142547557477521153903196039262778410961489470357999159177364915033943757902783938539052897406735499890925211448817209248206421075733609280473430711698868414231708211901327444566910995939363794749505004037904505244630484584435958982319187323547155936540766922769979383195450735345802369177256428445639838106591151499208060423682018248105690561279808570925503963660089009266340851024021964904160085089823707883538261075986763422618738453951662964477834565171086727980314456661683640700617728652010399203375639852398791470902559276202560085716361612589979187548348287765942214075787564724316863674327752086879737858610475011660769407833064518776302752688284107465523495650867651057230845916418980689451459882631967089487419408298444081141945995517016756390589452215840454788803038292215537717198226716419627104395635936207976607846519544123353780176994305174579952978691072655471195077273854407685263311307549158855760376870279150539476903075376867884625524049190287915868098045144552358585986969892257547898626937694937299060511667301546561737796195702845152745286984799495830527320742298212427208460726156520462987303188122084437518056858567608990438779620263482803954278682595858046764259024421855756626633536567003845971262367044829043107757995877928734232436148991769272727047657996381922587196711856133533681543254492847167793262274291577654853035649526888669631140852649355375237561362139014685633042357631617640618705438760553867450235209580610605544858233045219643582534768826252613280521307758839318084954470236129368211946973704933126143138981599142560571256047795163996734052302671736757323999007589211735367778188704094388322019976080433055879607912206068037844086819884482477827273770638473499842415611962836529802294448385643715514792622287225435331968765004650359025202883246329326470932703940595050199462164707410488226620547215046115862746805680885619777125715845956431785817238029679474869297403591661774972388772982869642538901038733179494191812058755566221953945143970896312613592913248953710915424245598678317719942928856224616765586998581308604791414079842742060476089829937719129355209822043707920094657462485496815786041239756600560397317980458916136956707611463817796473836556847216699715380214940014687206307944924240038827966031925858462656327991193357460961038107588508067726961045720467895878101288811760694653230486177219339158441814342834726560918165365651038838284912177648180926975891665350644513343060546503965282452362068554612780004581815006041514558980587735850485901919150043662907399532493134126792626080245662867653890448727131737790474076965854785478576723271890084976369898073018692872481144643561757474186981628930048967807061570611741535311803432716352758533185285184106981334186909818519813017825300010133944996132630173262371260681749564702604947033201833967841675287698599781261097348294019095257720350931909974089531300204542420042397116820844478684063291248427624220876870703447475950739243030807670025036753904507124480941837292083830586550365725872327157230362828328641966686048539456085653826554451751008316582782974385738019419599025761943528244418731874063774897929007890043760883470980674720125556415576685731647306910502539752089854621200773633614801352577362693535738310509993945114166415555566868597841801647037156383711980151049097338118043960050559526803471583404722697691178332194663898514763613102830083857530240192200946537004115430788994445499625046421811641103644020196579947028772097680466205023096203641454830900869277246623009648396135483050536758117017526795852148713649220952643357901052789922321074929664371473312087290726030041310317704743954251541099345554836369586048333862396499220558056860384030627110000307288068312184825654530499442182851383828614990874541862049270695848049358271550646510483897418114063715859815702662039982901073057963999086560794146745687259845441972000365773509600731197042928559075421250063917069376823452441818450954372982384053872106557790593393117065577948718850620455004178866145429233598929207718447024987128027302674252641924082632333460907068457425821915210162191782908475272529737635867188423932767499897380613923828534302357800842051480782635120142741020359350034703212215800380753680632126990350106418231078419303642836738228836099899382472469810959461102220101120611500363351859951391091859303954815061931525354851919490576156985411844031115733828188580370495470305005790168147673901760462642884498654861993134733173765145050052854431700145586082020340988511947850831349965058935911867941522815318665823332875967132574667370066676604290854246399985681441823367330104095244055036097484658165639599023889494001122773745789083441879550276326928644217562310420984238931599525718339375364105176590589782766115493079170279781884569007322268122451100774059807929294386752043118591571279379522227509303209460142284456748969458173755392276167252125186305678185011214933285052177660733788477363883499708793557352782990251923692628458126524475695285603467816139954757777495837541666324742550471259672084829198729411797225030879563899361154726373478181367188298955996255240178898519714101715772125443714890042463135272130556203818977439677096712329896079773064539418288647160200101221268443440600954358122691603837334535948062239557058428293972332208610168872257632952843658456725887652759726776390683602908822151585451840002672340706370621005335526425435859163676226756782473316699210957749678902867789304978458818098059068378715338912429330099278194821209362229315478354631521590749538261288091613368878784371649805555242035680754231746483660971415918469961205122178069194470666319067241706056121433785933119053728038079577794635594747764996033960099587970381054520669506142985285629898552186832044827830813514008680219317283592946708853803476991573821489797987408615964084460052198634091996766541111430814086594015241902487643518528725727477208171109442505636376271601885940272471344777605512852148827080254087095642268278271549691007047816639804807246981752541261149712712424587102725085319432200891103011045053806584561000604068738197926988830980934801685967048627905454724495950786425288996554935000121605821365694408462366310706627003482497169253048973854907826360455842190917879556587786888432191997283252267847950768105033900716933537673404557066297787910459343705606113524476168475589106734846940080478142330807458946731182054261231092532469751771408102719849910445886026618162544892675849773447190232523118346808531011390273811864412567785144072399440082830400576722014370958909204447003021420357197666336207919840141783698691787090301996896311716723880134446925452620320860137451656585330555166330566884388385605480185186365478383456046466843673586353235499918912244828410190641670847621583467918198051385022707964073296939386250397823393838365257493805957457588099308029247404549009075608664292045299452660741980564021829631497807357379708722198153583100814724729809455878938061165135783807141430025731122560599735736867117903669766586603486856196076000474073635874980515777457787376754576040977863160800368691573255640049916865011604754214238094266361844391050174080538965610020262661238431263469258086509306780191691130351749505919218282277332441842265065370247783019369304670944093850360833136046650735180687412678301064015624206861275747138876169063048370934719387790523678437254920927895848115860703706277635863830704140435682284524713756605760810481668076174120446948646110210684961947966534670956344834451237637146831329570510539399744880749132791318643406557761415227187592299348477500697397264948901535411258656794958504755815556910744293054357084275648632607571286804694696390539872961676665945045772404337141144124503764572596074509840545343618182701377519052193426997069696147866151742218718081288091360878630734005108221857243305009466401450350572495421340065810803806859027314946498313581068539040952259076414573435667707519878283250501254161071323786837130576635174086849168392263455967515765857416790142245024749153938401024397520372884206935882378652373356437301250364049321716118765989066317325389567782193939353161150485999505555837489153610615590339955556677489522760919521478837752811563473451853427492667249564670159956446762813647749694470267480432705643562063187253214636563461783977355113548120319482174855597458621423660139177765912535553250852397892248731737798891950302916751343240040248448406510701856042198227797212660866132620126856960386203967922223696204910259497706070510142764629126479487853402002601533814757335999836788505526196397212927041375356810297991314026660303130937556494913361727263895733706407676346104721134754162189421213508905202063404888093126478200281902586075568489833318507679944130346892187518085344902290410237160118742245804802861566695349761839056665074550461375167552017387735534218830341871371086408508190193517092658209535330492734641322595848848302226738673172694464726915223987630678622475164344935587701743844654167970475061271154130072816641619373975856771343362060702028175496045169318974754724899072250202743176608225967391913628139905521545620428013701818167171842929609264780016149820288780393918002934262876129661389180085037771050595904140892202472863987142389195841422524001506631227587167864926577217761442127002785586626972543134389974468576129402762999873875432730174078582801536558106810240745529540118556745816735211671192629758832844106658754143473071381297812010726806427763131173667461886193307480655555332284341996461103143295769615437463795827379958826808069212448304170739704916945786150223444478692743282746782211999865133229636710382298455513658216669402994954197689135111913454334460803939633439125361747640479949881021765082470402033892338381181821908793011401321282018470443741310654522510104909994845760003808121111326885110604849793195384242096464659332193815133218493729208824953679801481295638081653048862059596555465538527563001006630783596581189856369790319662651108777448999701952924225575451639028074315986477554763417910844914317810125244408537328098393365683614109292270790327479968973873798943999483860241987768105121384982125023222377199030365456617108617085732044632679111807052334742127793677207809356085688034641619314829192229531899398475311858658994296152393113164959414776632306218239627523874236308118176078379599065201474986124744157902272067653780022925514638704331900657177979071632517885646398665801145504022124807886824459378050855454806784216906714437088039623770006183626651605440964129153001492059062876150579215754955712522158261010013821005502813857016512563871461751070429097810281578139542662582293849125953756595759285990176549449463420125376206730663236403870771227264516117544000269116887624649343421270829351771890725284681468710479795940927375387674040666353956258111096629613524313445840726152984497395531693817355841486719508338860535005831505187774426948831540841388816915320336151408864671936862296482554907181666639708849413093320293246300857119545618168354600838192562246664876746454421055232843280331182422304669027418657744957335088738277903913884794253387201343728622324081514049466316021648436811673830455330010427283163101110230244529262269218740333760448701784942939207359336032224097058714600238629071893893936492146183026381131033069258080456683720554456731705552031735946897506557026190986748073836195471608871813905538409639212557442212798631749754268106200652337726058370454381183546338945779551800132007631363858089035464738551697248006345405326463023852662964672197105870529382536524632750794952729911068853287297503716945573103858858618154429844411350963014441403775507308103523496094823577615359821032413668351369411931394114133704353187007619634750064073000397448942743010738757444392567833356979980001909392807085683864251625027096169526019630971416320025500612278868576648568566890010263899094804658446442964011709443327337131733156654417935786718442112195619626849221124546995595102611518050772702669199663448591038383161564016217198346552681017749857404079409985837278222529904238288625654018376658231663168717848902191177112357172459032843297250053770051693668028779388536193558525663072021677145516882640233488021037382172690444904357197371671035939705493752457418659249556978523756630814506115984206310029571885074973935926231269042602591856954292467787131923296976728706122807841618553152269592982419515890734949622855477779989378078899117955868689847203067432334251617766843261825649788134857505504702273343314898087836767666490436087330575153116348697983145813015981195995395863759559669434304186106760298522891419725120194508381847647509731270565828915281283977315017183308701230837814137172029977829743757147317315566912711584842433066138566285667754794222524834519103038426035920936474052928586179874661070061398122474255001431218485108540218679258711056059588594914529254997450496725403312775705639357488892125030952312867192917011836446079231879871866604763223751257914699673509605068767149140941445124816775228362518356330365407662612434690798834307976541881635918571584108427694630102302173289397192134809743349052376751919895404422742159268805781022481332082811816392755499156882392707768559461063048404871495709201089311593645081995157856514906395926342836752003801600186062630504952399354048079174701003777034680152476028260129073795245059103870663234171941101056479414256026736613646217666628229082785753482447469687273467773167063427917001041723836859021489011527312326754457612437827461248467306185328816236201778930338278982482279283260540317628853270808056019691693423192995602621844301606411896190937595611860369863882147700382856436215070445765318752069552230303156129414097309580136899167471710008539808472161625301486064187540763097023160433695125647010733406425160647165324394727777293335567293385156393992886784508694626199152672338092447229900795978484799863594318810835110730406109004307075315672189281846318849850023903966858815116692033212274967874031930862761647729470476044884495163647733601738023755263564196264629205858531872663702100489185597374536448551902491936805721260769465227301997610579198900365945431941234003184514436674031554882728278765768382983556185319156846159867675683639364202353071451232786808891867696107810429701541227726194527101283000234782317186314985346124445388443968094586460864493309528693759444162615860900185788518477034092563600772233665129952438526066506868145641623534898000934809394864379828874957227999833168975379188144692564083071327608897722667722733522867351052244439694381003945301343132455363731097212255237444329600772264065007333881249894440653740373618131137155693304951041858282119045428851322641876670225746190726264009799596518707507594992138716998023918651006512200245087650096048492306960188680667106886343367792285932236320443540415518854966115004895208280184172301949156331229248353948088655520201762280326876815193293326116830417821349464530750467996026537866372289550384854797895191942532197140243835327475136423067436851951037067558498894054577466781742546772271964202064223073249157547495576611042382686864317161578512834526171521143823544739160779255535969218338741779519805489594767794876982894592743241020125290041532728565500040193826784940812974669713625079314635269037266304198773999664368193962945367060760079600926537598261342494498237351699781672286203448495780067941863925330458658642686620700114851592421437882796044007665975648300243019973802788872907110626684123502061799198314905055838782730214286376914220439765923275871176666539210717707758687172974256196817305490017519685902009066227100331430254927197731431274925615285726214043788564668822937179680337310417597326210535086235824037325746308480799790029257731194147784146572158760015183607309217798456982190278480069198227763950621680415728617616111065295114748959985207108224658724804499757371281959006449320347738708245069402346369122897058891745743204005343199539393979980164702236145662413907619469181799359650203863332298499788558820643245361439429635367351859168591368486340403530617065615021505068475346855590339573291820712349219969388264451934892363510795263667050594220935077295537858244211839651388219816173483071642838678591706391652548321442602785998458421326772308191689985319975491836036763072500889883054157708748096395638735281089102237819867621602514884347236527639407192299831307940826998309191688741564641235644504570860347599877415570467670218378855292747110099131949474672522449644005610927642147794847582134928631833573017829176809075938519811687729677180379177484344290839427778839314754336544152174426242863408775728658033757293252741608683321602578895467340370646084196789801678084206116704474721762389268520452126067599087043055770426546866333889514121872808306592483778795151576356350657644890769537350924690697266938876987221097725978301508900223365592125937605992912311972760959218204085698236269892965596399848234172718820427487360422147260067874697692317718194587042344723939647723213757171477506964643962749415186761510940008859428167340869158943361757738291658159097243980086293100498387790828656060773611967585937524997213531433189243191994957659237435210086995663548252216999647655129140824828619374775273350929817128145658672750974560919344650652636611766160426302720728645909465474554359683382097402166848331484339842240188229531236143554325962227341554139114069876727382249493569085061006253968842195090470961664515289476436787378904809708095917205858483907601428208431979801052830788258479182917446740740510536714585038493394189292021642945395870091104161391983273094073044216061638256252475331956392739090476411018067384905547970080419554042419720546044495672428861842046394379027084336566511708897626416118628737738362580716937143670005232686819651708962285166643472107488265424500335447136813347648740479769946674821220273923353959801997892773402101929222068624112939690623915979891170419778519828892147013794617981138645490825992795987840625612192916247427472730943167614632635039481837125131226438244683877590126370028915663221955332853886458892255995431961899841161864988474742241107145355050471820646303412214068607591723431289408959796004117850845647605179508224156892497880980911300784817891601522536091122219671663898458626658207538624604340634306590268850614610681333522594208224796019540256421161373927001991522818647716513641180902111702768298047107104992336359874297104268268448135030416207159541945589106692591030248901937454446187323828345261732315971824079481685411989417441150966014375426749663661628123592446384013201766587803581364679951234622700091099068118251957794506202394690088756422245822488242818407548165460056335196230327456515053820348272295777247947078381687513808595190964464818973404001906974114121180790771098487351732646394711634624933714349165489593020345149463714257845670934353036162551207643630121102462765741668973764189051898072725404391358899077497399505598821175567535926254575671961834651136864580076208319233999740918336443347437652095387440044256476566465456427627147073366713029352646384936193940089675889812405487075703819657094642660869620014412007594874356460055197446604077939536466409808209669182621786094980880680013501006613942666586613107018036173440927201832811248097151549889185538199806949908468893074738017610542567218917045093804528710493589350162257965812688464866417249796803652866699636569672944025117728826014031229230418247962910778809029604987699937617746019136369079042899984405069049230361283122794624322168553464898785110211209563427752659969106742520075479739293058284401054099667394644415933141872774197033046497925489273191874832408736452672472941941063908373945831957833907912910744486076013432992702166025706772151987571790997301860681862684354515721406905209325449753159067543014318986319276171998989667437017277965572345113978062077540097216837547763169927150996549030339024403600531350410220925997945405912783968836563462340008069292283219192546259558066680581280907914063845713576393366330171194043275937638278237513117800286340084396331197983045754986490016877847858863841866403212638545694872992863773615273427090161704852129647874644215823362298011662824832959678136814387412033059138748293241427625272435322057998560615965955468980285217093627054857121327420705329129800772427563970674813693595965365431630732669028199806713135672709091801815236740699119883211159722645743739082704526285895630553377326308123865595268535222140177553704383674350132154651502714698842309461281662317913300120111922224481250736301409040744259648250704176109056983473535487409197712074599509004534864616665708589208292822009332873486699594458027964348354154567354018408442522402765375815192664430769739930039531287284017031144459455021063376760170793443459447727344052745739379477772614383671517653069395492200793776168309859631233333131675476297250101669645390904940730305445031698738594375709862602744367918305476227922989304840866569344753601443172125554673494550578555259023330525012983513616503257598814117958471891169086653796913536570883766483341690173585345044803836056883448295084258790765198849453370764276294823148060142656731404429342424667291005232788985640242937431450348836223263398012974355022980201992583967427624808896454597977765555764175456452995760282634352547108111991031877034062176542128816089096837751409001205339937589656780828002424185002297666052621090997842612919491191163367930746901628788353499191001151878684241281314215091298954891817928751384128375201931859142206184314718518410964953512700357993864606250746725736751031245004875248051937242098386813322652565940944199630368713519929067301649974533175520055461761579165221939481612738644644826835974172776070981156347875757348613242081662087843770548034948416516445286467074469499297727916109827512667080400204675053838586172762496942772209398380628839889868506914296656533446919899511917640593642831584254641263273417002223179828064496583242272679404532282150602466433761363041017171179102936586759576741580933987443292784329808621326250521259519266177192816978430190482320878210823930463412136292847134274614377755130039820827996833557185656075931776076227762893485437343427365038020825771611367277116610170504824265374931373118590820886405004529013769720215265572458646195418577978552179688038849334162921921459407666161694695110177331163606348444242255619939918353081137294956208257243451762313583551284254457082335203628011448339824248219694842747695297868676455666795297637665521705550557279297215609586124142685290524672141426829593027563665424101085052321157030675799940538992267963070210092284104912215679975545847695638786152573178712960789513381519450600336017402979739931835512394310107240591478947474031501441594240108843374182261018802494896487469211860926956435961664775047934248172820514572194586304415412284830108377898190697806815007963077122561744681668042476612795848996278525909220715729681527763067145745484771722327543133287433707190383954280451993485204144497452431926845515448224184549139614297918859787035668557126765315789796077197734861598554588743497426458737574018559244334364510056302059253233703348973040724548078709691279502261990910020234977903541061560235709876095527452779322829482499762231120908780244601103815480212102842533405475630659788523915534716078791019973433230858864793296794529679500566409116514108244344656303945836866749602827291434592804149325589074805107505126818665369020186755116714666666009550034093709470814710899954475270760599097809514637844933566198863063587083723061195988884692089114125104134135250259594334036009901996837871877070715628933105970409817479105167556988317813234798939585593412256995717722704693581048774463160399604657031642877347401992440774263472809442615875810165341266405097473657172510866241583620178631747587686637789429170466312310699586346761248780605428557741497311351856901872305396360871604164808511054209246864376506436839097955038684362155578585465442938774284606784013571301850314245750308091298627333039922065977221483157574659135666845166209868256616102404784999540084811214587666319570585232243061020045279259582187233924699346034816031642727730076774064867839418251597849896734800002924508617577343875803976151421327210239594674228917708487579581274562294949084118052444270025504075215794098479052077797252235827240144302855306954293514534043594497707022052386220482996118476175472764667639853371436890524202979620655790241244750449540751231788228391403288466632016754486516053554480279007811901353137775568602127993187566618919193433399337131990022101999895650310844811387573165809093724857850259291284525250242204946179664650399824408951617283657350264870560559876132963462132573937855029305806760796783522649999725617853137837936320632611300620454581977754926021395015321151500454417433277690516028977839653282726079594217131118607274203432386656288290503923698071133532131675687179888525060964518148910531868052287806579492505825096482011649218795830894674394231002814461198564901386240939974508669681183522931865211505904194740480895130353803663052767729322602108343253918573286157295794868230063987422905504248768259369579946655974750694821541241684754753320142690664586822188272785663879407428122534771846400044619584150054645692518646204679962610587263759118465709101844186268177339956217397496664510361475219020256866975206425872900996426550188047946979654684798920150925219717521225167885265899190639781511570887520334043876162131880790910094223257695793453536965375850218126096930011811110712128095924719796602717313133165977434664404903361656262291127092330938173197021086933710079563498981079214899196604972572964734364776845688313918469328232006730570324495627806488489224102379096008438483009057866338858831438429170978284355306825767891177240352396878138009841590328221294813535602125956448097258468810830136071294002465896365966758740270131381164451854379347383691375200792997900388606387192542075544813767613026736326976271401988857422211537018526625008508004672989656383592444445736200970991070158371511693329812154503091626963137359223167537244298067165490301556508574215498137668082478698300779937908890221852951030074544869127133048214797090785988569516468329997881964476256516176246845635426896131459953859053009319727731072104144046199202642345484411616266189679601976660609390486349124547558663371520509510253538413309321165588567186960014758060252690862696442738373839822709224761622989159835058981144219782085086409041445965167337545720992016984354443841425302770064061193499300633486092749651328575271784379436033366891980761411840473375206171179336431878382569939536921454348745310342153742667613306207765868494750484693671939090534752557471378842207631892880918788621564702510166169082570073964744308697835877906613023154345555939454509571573236855716947935005838710968771868167079377732857445652208459943299980894463540364934901085886088323848900307378083970304987139599184073148825459307789786227316319323268613662940831318304108029903483572116931593975275548067409993564313361324445549078688410686870795307896894351976391065049175312041710685910495047126864410349553897319196049401642887583836728614851546125012704356254887944192994762279181230807512162140800355094944087162450125757396920132062525327540513253541252671515238652515772042468555241830073682622016204268465266422374228098928002061405892573652247060984515318695968237615427100050556155816906111602689571914641441552316314957921430389398508270328257057242488635587660343505696441446133281306994061627106799386257638545257349683512689388837997171384598803578423168365231673446360198371667649585124620946340950241233355858754916517829373993397079786651936958937787132859575182073996606796108527516179258275507893570926547266646692154573814882787346941946019823485221228789080684155723264513882123732233732594285577175819545844026959346908398984968190859185214405871627297304488658210276302389424104148787899962097356688181076349767801097978131973666499845409894083391839983647011593353350958400831843237947795074446442246210553985206187090674138167521605026299069404279369131491394031015683530656731325467067360976544853187465736065223971208243142029377497296442954365923021932303261200385268263782048604901807455373280529149684464850322106081112553502568612472351256037413586185366139710795806239267026600470197376326177538534489301855142309550200418599585645527980974573639838847360520889530296913229736264965353103698371380489761408014089861786241492669906018581944140368263880758562224911681829961434717365399177269741688696281781148275753839682321702030759329158488355724779470281288353557328358447814854595058893405233460110550401731593546698466287587957873373941559063766196446360686532079717284251381440626062695758266049389149411858013179456996677737734156189239535467612288322780248242301033740664491203050650292935934826691648440810577351460788253893956939647485294601354845277203798985614803181440853570593035788843303397744100603706776907093896155940869216942579582650549078553707387178302392246871378219355044488989493555796518193421297539360010486560432590211081042095301691247727961447801258384330125337747900467803435900466077182356285879656441703708413077292964459457103544958178236614380186856183432856163247650085831067366502709309866701666260190758626739939056528582848601406727539719343843611198126730773251227466916822811387421568891088445659988695065541028821206984990069044293315378601271014675420709694358725417070645906496277793728138093806791439660231044275223184042599979682955433336775594753929816834712797039054578399878567401389807815779169105614950369145571755039428380779328332928315233345745355535020021011398145030165754224788273271722544152172587746110823036744475588977619136729024532731992011232552784503063563050794488224505888559822070918995084608470691745920568149024015663537505349122139005405559062847060466288741038503529792469692378098780136088779998918687474800347288934451410563905022319252111890619672461609072387114638207176519974554027659454127698471733609916564234234515031876700910541280790699071485115226366782690183799828999549439516736526441962736233319608282800655360879375288410616412718799940619762403858219506022496383558397302361084616410503489755628248706618681482696311237564408516159446414571936446134528378948196416253227849382276914703234590841764029445339763490342669613652269697523520534703029892137758007888033371460098786831327365466680110472179765489716797130590666280943186352193001106057436950688677230279180824634893523951343937746847472393846394501425438070053606826308831494706111025978093115178776796577235896009057647396395789877648668122826615203112456903481871609139479749941149954482397031518894246745929350563310864549709278731624820874539613706083724049065452442124562640741576608478790551378346477386627240118384068996939603004800023539324989423739613401721789630803472046147671065653671343526639199051685526498810604647673600590097642336189107563713485221457962910888306396714684311126633061017427664170523031384275615244019908001437834079959516139512646237159284849738267411442512696607360921212553056043442822882381990656504014141200729950236341726823793262983614841504656382953734051782778032006268100386147753919354727905681347419377348727352599048003673809269895656177988711408341363686099151841569242459114838527142419944287115208813918079264665419010911417098782071385249769525635879339621688831649199288390023107331141241715755869261553381714555165828560536835227244830578289425638530879873242212814899374370576819196970589553895984917019841046761208011033982080772436452962174001565835050594176110208926819133991384237418738530671601710373894904619532449068225406952372431430833222042823513478486990155894041620670248322153430139150138376483275478465712534420196909676967992867312921079361200233729366481987118780090018046331889105888204554320061413202278561883449959382636113684915837050299008825733224814329897532129495004526420482394398967768914672188337990939502214090652298436868590660540284063052805845092805744909622781684543609703341202598247052529836471149155906025089334034681159223719078287459371611290450317687027941494034310435671985465969842397749684607770280775519161300961669488523169429558671207460275353868371077415299650530685482216937391213727565392643298912142801317820373464914520358277817611396915106921313868700178430036283056464681945270274875583261980197410187717923950319196182140866050381973984947837003542026895750670722417611096994961227810929048399811565085055709168865157626248012673905399667148858885966322491892437210914189574420906377387177932515251056171210550303488410390859905565397115664143622821922949447476032939532565090597074231362137611428776930196512182255570098428617989507047418676165731072549658071460377429096076265401089966023832024144853606288176009244790390118927681977546865467838721398779313790729975499238733225216443153046745932333620798283378099676782446631348548838268735981562205302293225500505204128427979881630890087360687671165938834186878009687250034874489054669672141539158473555219003421685204329343426562616694051436821442545632869407931388843065162611639571183101331811197972669598932950572474020089040350423546361415986560046618348561733426682743918827103164162595466699407203553408484117607082445675631078561868303312549811939588871526098735894453332170329601738998582862088937274915617359663049653580972485945236305154930880977991982167935777870184578812710818536735775521871176837083961326745497928919266719479306971625201653667902613672491011530488817687944494554564369389210467316380783655433204840675056785991875418266416635389317588747769330935157472862467175499961215780109075644793941172978954393044060541892108022155764330530766154730195334407359517894250679376038844124314163921777854978844095925957198481723667517145171227299331805387424528581272387181120964797705514800946194674784916341189447188822622838417034618519226836238762350231929886975086019227078544717873362583587373507593224314786594464439756750592690328322222082959998026178974876621250650353228879023736136345988811626604616565103772612642545613797124620193590666529740641196707298495696769364550376435082146479150961798815140442754510977914394169836343064712943535419933726342790880938418732680684404788953732639912828538306648878418537274921319935024075066912468726948779479128537749453564373081300274301559720355146150556690587793394212466948041019354710276685584344000000884240441780196131356422933967566672250992941618979814191090052976389919630291345463137729260413358835417754739122636020691135607673102978678090209330174747965647695021081262580690458184112101748732114032483567181406005383185444897382028498297881795319286259679341439640553484317908867195916475494121354278262256093591482468749281495805151946652958441176276262685712645055604324925008409771631388450032441464915642812849432963870061558728254372508811552368825925842713208326200228627387358705362151089751663270393288881874122040175018701071441497242173689665791013282913719051258984793262740365025046801939751964626269185197061196875054464457001716672669655193985491027683506133693496258662561522033622601094014459051684940233766014659507438776119323301556342506724629696572528807274347159395658288120724363223100213045875656137357592800218261935160115880673686105439340630088818475628562649088274723362291867614805270764093829693226830292714155204270814551418999075283016322149399625146900924408351107011257387034853902018630377860063456569277376754907170194043349280344543326765678734595065177332115543752689170786919728370168114776777075940988518795962592767411545267941418770584328290376279493825722385349066015256597886077874293562576615174821860105467089356689815030192910254903383490535911570686719274838891162813135422726585732060181551082074521823881772573189651518475884640966812321164885561008456860361804405909398137696074032269656260582285585352207234400090432942418501888290965019805212385828382779124962280382925454685134766796601456025156476357503072671591215969148921298430924187581170649037461529314266953259212706123987686966879468344407259604429524573884512662198166923748378982616448069033445624650579664663071615852929455805671198331559407946662608073639030110467115290431091750850621833037995891469476608357575045916870444887088662820322093548392481125548606629351941416059450260274893761672594038749384728890298130472733431973144575212236521821730023298043075188913914339563526665145797666275103043986931453968306351198886274296258900215252795917373621671618558170536314371738250331191795903710587080098347662364556735147558957521601487515001950616474010855622736682616430535377750464535617147388553767914279153307742114187428532499281930525081457724120933208890942323158697258074133609287826185458947946489997472841563025885450329512654349681087670177186435257626850452208305792167434828841072171152626896651502437331244643971846587835160962403704755804750471186865919229224056203429410107859304120101580049307817073456661762044727239888394063456878859059519767702186646766666439473917151597187401299143314728379682290597602818293419378104884443820202399429372999294572849546469151395109799375139732648403409156048573126241824894854646299410918326292668183269971867787404784991327463729806873025006812853190558303171421568726093283641579039139470558687367202093522584238542166119658762707024167403078141001706255187542407089679674989035199800888502168687477262173584269335909941020799118183102694199094612044191189738903044512905001851423387615084103515602118456026727455698836626635776064097543227915751991799668887894155982126848523748014911280289831369025691187319457082654622226381613344691882155830927065247837843261347539181005916502594417889498003146289746511617734372356896204844716487291317235233882092394803400432694263203943803310912827333991185341598741572146085668935653477653566301876494724148498771641551704816619013667319883565413154492414116724561598903080269759070581359924393291043931990029083456541649245160093658115519880314087453143009687791485799963079552220647563086786668279813143970443738164438854064653947056141038271718559417893302286082547269782434313648785685413514532837798488056436980850290207293587060679009198493628913423331794356843426912461199131974502759479256872583620791386357701252229624060860020793454995828142845645197749353480324319839294013224598594703392288029224009523446995113283830487348212328686397503915252279885053504440107249597989271441196951362790519849727319191814915096706154988725210760235072141616098616176846492311613901213876225355439806030813553641516434446341109546297515802269181099877585405465804413830668244052110543586431881975870930244109355490304396491503285287891233144985004766533446149154231246207932029882313440392266373365906080284498815962733986378655161389045982854682421714622998794021794731987323429221311146304776445568314243275736990189468824538251663234840490144704730485008836246485067811156638052956402648186715665792911090070229849755505591413543877468736497302811375149871620552693579492651151842784386208962815491531652706515809023449525479444540428225701635464262093471570909638301746772656940857059349928706759132142710599144541279626714549470705779809658620656545675654218106562502401573617065597999598406528764100268947886778307257275777326374581207085658282067288451458130725547353778635889443396876920255615209310347628771542456176071766267096405040676658292161239385456444940893618801013133194928286694915048024023008316787442191236019012352587158394225491895521178182116490468049991550482854331286999115011010102099882020466340352408452552336614876420280958803002440072099474427085153844742785657964001390611016583107850759905833058443626126404278892772133810070865654708348834670222085299974607311241277406310999176497795047619851585718598238752937424697188539751593364227592972808843863326997144086896227077434651381276421223838937590472153933658719376924981087223969457021994758442297659566081184921633790048975039317812972718572345166982283255891254479971333832578069436716443817348510382267835946582817724356828127758062133260465683928265928909938978422814617530640115217504864652804378687034071473048094269066685707776194930954460394160524523784280716077483577540484664829686284708403978812049358928968518482885547409103200004166127246462707357490953681632218533750979271961802545791613889391918007654939111877293517229228461986220758184555949840274703299842378282458601030958612885877004884665028772520238291420689974840328579374113246491476491290464445758156344750763811585586172438063920243849586917799902007672723959851181347935560180558777735817712666563716564405035978610139319336241646110619561277735638113936994699737628017934848896417377403963476662037445449771076425936764390892272357881171300845591185262380777511761517773939351781450741739189059494601106439184689677265629635286359523018216492866906648976761294829271408001925391047383412180201762926524752753824797520716519272503935045709589499184133035268833537567157886072494165609206998656249696520103693501595543717260432669366242959549631651203864907226877622126675133385412253826122281171252664421366063712142976304985059505865203191358534755564412918800091627638625415156650937137901084991055065936998046534533856881262651619396765160872158004971183108727299960023321354169710430146002804451238379165390456998916158751297630558442236772177367480483463517854542674323962002183282959723836709875215330554012561721475817618069491619325671943123180020696797265949874406880798454040799813438313604913058130949328932141304758243570791790956515628573704792855889288856706603510282954971383955719950696850084526238790839949409636941879894987834655854350713016720279820754958501338138746393369247519774476847600897140932305918430619801911642709097252049227963836993262279789365945978995371814821654614556425708979706665231787932660050504677936114423357532696065298009926045892271331451550512098032528213339710132022613949635922619152349550045972442455024380960273251491966382853458655904913910975591711760762585429972866334404982754454038933780339770519442909278869179758791277430015826755388496134907274998603913466288918666132088222991855717947415533982815063531816500994121121162635350093821503363081760594463967950528438394089004490324776723746871080351297466771993870176125503586300566340596482005373975687948438044823428589815374479224000558344133619743458837832313158629087124910467744247528432008301548822204046924693588521582399095968046519047032701176658726883116697070881915501180901041192964285675890033820266731938141954012560432431579439119170104156094779887963777041320848750364480952753119291604235903105942390417852984390044490357892287385559574705919023598615651847700122180700861021028232067176975789647711446220079684490286059119761101085634331948797300880963697514091367721904167077864783658576410602515568178688755607833528524260058023015687914585253981401457321927281354916263023922257079554911321866693605363110335496828652660198918378529019653388351940913294118759316744346005010207998312884937868619775831533775839480899520622219975145422844954656843868956355524983146243457270088786441805997827961429097971599841072475587301626450557084285405877281866486335792822780334669882898800749213141736452880026615442022773803844871113137005091202301763206796252681539809844892036866244509464924134532825211272653648859856583201432673156043993250318629928873714905166796650868245151961914709653118038682494609695665777587298977531534900573326037573614964904415421261678649803957591734733283037855099529880458289832790130366126606830691402792472237534512712929764673670155480271093734031638109208510169809515029924555211189580394702518134739467547742315142188194782625839383639466988941012160201159172970777336164635492931938174613169438737839489738855349117862750501727130499925339861897374358226155913348250987802238702849421732503521917437400599604781252412095465885696593684875243238402456893795909362933158948744466741235527555597107308709964205998287189853416588010491493924808366078980856287287252296384262276370702440673095566942584788664695981873386668929247042813708513811918019277273970992032712134563348166046041302950952188035470487429256810336213583535882154679103693718538516618409550626377271113460567288841679546135707764987582438018465494875104414454182980143065456678256447587374776566268151104973646932617969183842451629521289418031508583379190870376332871339818470994600127098510015002641895101506795076822300579645037318296897008020973120697909654753185547390201058511199985199659840753120611152021285512978084101918299008758894236436173115610523367495831075284125083266310094072567855894507647102558933158662374539942830776613022110474565207216639881716403732174476921106420730858849071929527234461202601237487957576698874015796249931589788481803986076253550106871912575852060974174183370379742912685450692722872197621886986213003438387643796880603879898699387891304325548589794022505912947357796191331814863221904948902965184495427789055854482515640942458198369948005260517251852309477727405206814640173318437356661803004901981885417358216762246869774754592946136513799601113313969498107029669921609002058497607134933822896997563660165145431792563723352769714922591409425725642900231860851038397019094462837762707336286235845521465991801485158583746815795448508841863498626715279433046676421039898934010664284007648360800865801272961573675981782264435675180079983026994005739394715614003182144454989018089774556751419892156474889262913608895074109432193955308169594502022836476658082579199310545333774156683615501709950171140762996420238980420562720429532007520830981818763114552119180788792305842717235295980742077419097045849612678322789993278640599207464508940304279996769968106662650179650361534744676480435480823932873902672282159048545199131421188092996011407265646963485980488607552488723110142198132726149042034879305379292230113597028613565245421228104142579214760887737488997385885334470566371685052150788782217090572995317337501367743962866813547028095027632580401155697375971999133589059158791996544354456650026496583260272037578388870867218248792881539565073969823831677280009494047655022953051961464582792161594049217032139262457381279769482153312466369683444103031647766998564116758381307736436155118367093754868457883514933171258200817190065391464411657502471251959866801033859529929806630759764193217528861957913277177499439998259958376065228778038764868935687729477728416130039309599168190662992512232038486504003531182928888169619629543268189385106685622938567120269910505480052258149106615806280604413291592704648319288097947319994694523237043913024034924428733884667625976264859514298213330315356914927521269269211828563335940543772307146872887302347886475441799401165334057720072301846021758778555490363988041554909310007443718478058778438994987657273162399035268103332882933072410037583398521504413645262850429197657735078087232271140304483650532572775647741120093852455664544530900924556950649704146546529863382341767624404024838811348479641640994771152699288865517301424700595840693299626094669018139579422232692520313622207718047683524624448811299838392496001531271322569236062881926797986292938245275946634658482230656634113669171861212383452160098383037203616111555068785596040102140427456391106429316008727870241446001335548314542764066939971641389204483379114000199030674663219824585499235376546750899704446942257016062047847464445575312668654152648340860105220243711049065266471121893788279104370843439680930257925846380569440561496045003744517762497020314025288595767032681030531383859528795199566526280805883146217847844507806469965887905641145072346462524492350886859652944499929444277396982370436911035438972768672758408847850890103600607961169366449138185544001076345026901373887434565982127529748879233399566241928874795381075605513385480476303630802068475345574770372720826426809233035772235680895808038040826522898045413507921379776241124745283719117728937506387288973537755407180614865827210577497329859809078015549589627429604728941580085517220767494434326540968395302286711393021181929266400449486257832222503904524802132727425993711325176481110184468932488494582304646053174357291365556731692031423098084798100393981732418424561426323643134550215804053986736284992143378994175573211795870786497248751947308585202742751521355917439741328489687434785943844711616051185624659934296847702328318463165946956063335052486700956776087551066869434092984719794790203137909152959187997916358608618684965731363680661431543815570917044648688036058603696549986409700607278321127782699173065624912221861679056680661856828966820875951303582341690524026235836953406956850902890333660939748015069553322719329239029633313521836051743583100135585823980510031787876799990585123274478622320536092411692263451923443966587202383873470666515330120085757791869834132851422599330644125649809222991399132021427029302304484124639936724267006626689336709190873156178445553116727002032408576320581831206057700944666904773614656553209692690358387482019553064076181871826376168153009211876144824030125896198304634721366077348057495283442230281250244779212444964401972849065862368289193248992271078119920056243806638287350200494808015835602023723613510880347026842847454390980740426604847501851935440317262145985810024563568886073654891450988563456830439632994047093814127728030727050994155738918363229331142830821473549725316685427158934679112047014522795417717796808703379098380698730754835552199467169936791398785621415179627732321174588707242763887238719506117415787701744017911796705909062979716820986724802505267757845884865351062759351858751483247671992289753368689525017664407815862197417900257924999720773010412973987426461379301463991340012360668859818932882995656163417706519860457645201458845249271214497809378620977564536137890846115312536913385943330920994392818242444557515768631294973637051080392125688996597042238693270784263005343139153778160901278672393442972455675494896503352830239761771120908355514399819535012841451541815787296838979003873556948798434690746462987465923911865427276607665954569730592276253074801680346853533858826477647264323930881036019088983336267143573076817445795038152397224349510518347917998404594075926012047508694364485935020190885721691659140457594871482356907285442773313374112267095918622377707864019819093327294872699564666736493053552546729890339330904295677662133644754395816903458246907443263145272525332537481066433075575560928563959058919481651788320490625549714169397115488086431784406653494035574985028141789878894426542993973176328918960482983389382879540994871642156130689713293171579056692370582858226399101099931119984936097793355765962133077497832983378944877035582194577797833964925562897177931316157121414111145386618870594310078262860159252402481131936390081877456422196921347082320067270381083569157598250561442051903116569710844330688439246656258034723443798163329000809786074030559359840174980866475370245211799524658517555812261391134266500698951974854808297170036182738932379977771471942632446889062072691792577103937324901222862409431065062651095728845805566020729971534982144747471241176288865686010246332609782389268881948253891378767875930309874898398227907281834905163762130408248734280538677707559300223046457858421374018206294763167168089298250701919572022931128413693919199740580039590698014769435230470797994205569346233100447330715951775951513151046569538451542315601527433964462701984280136580118397246981950929001193253806887927719738708859989003884198988195972400756913133238318604979179559449645325439213287962675423904741392040555826312678825982978561126782237804381255468034217806121309464877487710729136928878581821110843290790920288053248189940000558398785569534471515345038116487258063318780595444394318116774956383809606938772315853948772694218462486307094975425308620367883684191390426747684554018785947574129691983261651649630661312996085181847367625815772845750940675307045579848985340743730312435843898340308167160335325399826795097220580985989963572529073615257860769143023908111009860883854083593677698622987801903077279717015608131059496129624862796883346013299979086639025163780422146791364126552772814767890095488319640428959155123789783604739883651141294233361645873335052717738793630167664121389671246676442756127249715899599157141567907144635925412306074408570343630068078803492315825765193188462950414988076756781468133216629688400268900815893494872670809911219659558794288408968373142550916537113802107942841055315513726117791480551214325378217922168032408632955700792964541064226892514975071734626794456917517859035083411550166119419905729382213045787427156840101958460135724910728728937690806929944575622333779676083209729933632129456116975034923153150022243603439307050612503382528284365713828567793901783639019914046657910821277662391040614328083243749674201781515219900187023803344472676978422681029811883893831831863264592393033520981852963959428246307177142158013134000871548574664749034532434439797199559240813998609331132314245845737767258257635297390620114702595030334770390189111562392730756116800279376099008374304193256728080169585017903376749143448299028163297206569376345787920849688424373815266307185474454750590028958117270077541201482248264983441325804609111440774917854909859409897883427495525344714309656344327562956662150185112098303431117556934472436445888315169715174412012096100883360661334236891155578538790950734939346815250802735749386094048544953649913091191568674361345481542996939884533525647182664562479542960705262388709580039376348695985901914434121242881118269937620052159188575144957276788608839511455413701341504253132106386015757793547824266822396008310179537057827788865788981721821806370768635821701020428644439881686702606473709482840055961518680300000148397115273802556812536112621505397255607447030449236459204652098089579390365994955440460508857520164656075953707431687526255799297781254417286935687460298432042262793934779819359383706022038175662643821513985275803998886794654855822730861833974503164699215075828359721595291450549232063246843339065724700722504381729567940418497203031858735571794683608698742105263399197019017700001155647902392656984116723627485938441524847771067669770987320729376944454322934859146386165105443069587674670533066245456002096717884577997320511815489821632056408290967537355577124149588272757858842026631141880901391966938927277029112275429718635485204163340295257783958660832338355518618304800229049655336193908296819075377522950793366105867643100351895192564796167548891523719371971683666761698240741559445440510820227504432747168013674648899770043784759079398862178517510385588405989058219670142930599886771239307243159240219244700274943034664290039046572811019240962649229238213646771610533316491071526981730096595139959309087328294452896557560956562524069336029650901303332083340294301105562994955940185762278698645906245918677766387510659529476510922380334713622023948870549571368054357304310303436359304363238625507288562098628527125745897525841214225865156934659403797541796866782686775546952760369018257319184086505927922015726214672114951555346815222553393542349092858252255387185724132032784842121276875763047434782081518858703027750572976647173733211241720752185445985884636822523720341458717336190019159037525834030358993390362105268777425645045374864724445715657889195965196745346280114289491286413682174975383598500134283995603650540044380103966067373049720551945511756639300673007001289654991112193549532251284869316122327161582116002555650645658277297757451146027018633553359723360752099860930208239565866155681490139981053926725029526760655286648753924289929104694633901970706732441533137647210861240268656263554208320346340091055567435218728049652594193491336694889608897478525143573837953581595910270370398104999423096264935476226059776187388748941126277112960862763347930083751585414624135859782581648234967396588791961495690862774216612067986236366795888469120468167557143992973916190652264136223425684023088119787279929495234121861017960282821470995395370801733812056917431387911450700863416035180603078994923486828545081531022872594819001751680355055348262781345706487299265575230428531760632762632053903065748903870012950407712959408277991133026321638887964573342749552287810383467863790224032735545182738208655395857666765880390148629919817777500716002681039832191897399060666978882661103422844154213548741291657537529796059550583347114568177456308998534299722425447726335647799233515221844699704856910854783911982727155345055016319913462116925907796447618684496873998833948470908983410413842105923859311846055924309686112509497464631532701806934571533916337572302081816557775382000624843217264986089182464511260026811402942286223407955087106612552125703969625630275215807249828267600362840838679650045103669229421703035868800977753711966437663067614752472022918540424029861111417592738463978721128936888478276625115981581591695112220017986102337362242273184177364345101732348923487232094070206929552892811339066207802446338019949238370570207107809605050466671879909160900394242365702117724270348140197312142336086800985384481458929365126926948891650599797931069196133244723782148165373652526207297586618831702272815633344331073560985874596022501603262635173103822932101074554049489542021382848735663183530788327318474015319664045168584995116815722428221783289291364772312958910229446453011887291472044533323673922213761986741152829199562930870210484175037170318310074011239313624744162812246541649611078273632096354804379078528055492949713543965004318538767348810435498843319320722657183826420465332199773799710196930809623328992188641749221575119741552260163026044319445813495263334925817213917607449794036881114642106878134722474015900006244453796349752020556455780378513549025415683361047018642290410557312113139516663788649344030365739859599382381894457290317261720295755728226052702247759363144438120466318811461763957798348462468558377172597903550221993394266061439725336734954256335944162462926623048985207395648288031848854481333912126042839265680390405543751627077129206099430955355667294689840869220976246095838208988105857172159211981411348096876896911448843256576176889402866568215376139961426275638630502223682138879124123062441250634765135175989465542115796767210815276427162284686219545065500969320295933531904022439530248777835970232432409920399298832790766561050900709011594252426510828440340356698039616016147562906044319126372702862600266378733654665095084021216668982618924962495782219990339716322394053837527056488842223045181827950100653286996642487526234249363836561931214162121500564377336784279957882510999005743516481162617958941033268065484866923882224875199807409329218401960265889345448182353069699923779676990752591185613535091843897259472217091404695300860730492266837897630755502397029778087687082211741616762725545857086198751543648103433061442982383276796138413441869715976784194879515189912478505001335800991857880707806168725481637040128447767303202024362081973240401498595159147669773221268934495334375799595511888951147536165388202341653518454482192909304281810789564743628032033553356542468819261105170608217242317501672196673918792198799704219999466727752872688272915804216547256696103542920458984528874051409128173508117883559547414779777372880725421300505973286527476989900462527061270816176480080574902548088052193235072535375812382754061433592342341268633654002651998999740009258845658192540483070880158649194396591690047234476665542767641616503484229677532692505453616322937279866965548189437617546276049645424110939045770033044818917357268035962698992024649655345979149914826407284521670386061579971765721466615615619126806693693338072949233628584362129475944567140755799905712527911911594633528785115002246157823870547003154114882652718711239659898982516755520941068704741030609447292834180906936121903449051015120849356698801337172535553276062806984869068743235190296154705961420233543013869389412668877028007423942448115048710082295519937816578298106042846666995856074743562845897223543589771105022776201194068103385511087120441564324238267498057154159018413840751539030861163456599786926213598530324090974460159133043939765379391394961327984366263816385694349119253752371316924463919555543612650327386443522551667958643754403682430893065859202895029690047442776329656762559021979550892483679684694369472972178442578753986776653235689003804764761454268337574966798005173008976200829557342369350623449642120141729499407960686254838104710357241079493954147963316730498712455209906923240980431003677811114341451925248544003207568584406111496284685282498847293909792564715306059902341822760138086216307017070898207663662944768837430785789696477860302082252355484573807274036907905288952545791158511670516830415062439237358963356971597419978830356004296651539599557989444831540935599106426643729493822086019294047118979697990603440339096715621126540935078408609537475279737599764131519422493195637359645702841176970319901022645900030697594127412552062086395945791632225615304249033473778506191690660145568080500105006246642427142564285619053765945774315546267509062519134555301177894423624197500815256656157193513602278287708717557133374948565133723492046971920889461848492461670414609035019916472385901157163439007249736667858973328399583895582466082150993277214412162406912734745713044624245524739520018165174513998036428858745971447396639023295569650639757105617454113731288663455521029792623820961354260838855802029928778813778663274724344164360128253625059809683587209029354524884016619633365078466180310849665764365661063472952729404529563490712210291140385602403621412016510342416526462880527225948372087565010251190675300675517362742339905422870287570646466363514387913666751822821348407380092108054829972480033954892904337302684333585858296689696366531722174658672065936371050201728547533633047934061662813755335459436641162819015057153276513634723359004633188773012514552628496643152116347478906872237532241802446661412182835171505266184399002097240595143967877457711382701611977456999921067453607586060205461423749391573370954024527796133056596515863150858847536772365051972444035061313095655442954704224282302941417246544179555806122744325632337780031688490731694766035217855398492206671664640213684706848444128263803573318236715769264483583535141697880401633628531360568253450464450116642214116734052986381420932659362274908412415004202158981243243917750290386593674701645018634863037696147932562071535583498464050571471447615869480352365433291710978548159497007009125087682383418457303745444747266052196233175000724867845412901226527850133020320364242502454493149177060909619489130394762150595628052237128815324314216153353263095830838381584208955580788237357567765338180891326134049428101695781776905175724405448999950428323653806740564174036797550629628927561257594675899258467972784442771640592711284178775620624817641116579987465697111327221314143161495043809979154798148416139646943791442987601402925364397910288414137395920517237490457960312178321830513215740571394730030308336060825463136784498745071278445285326256281144354075108567576336099210940160335730104286219268862415836714521158823287106370048595527217036518922477466602915199887683404966225550319417844402268824971770742070896997751866350663392548880175330017499017745125722475207309355884742255936527498713287014586034518889573334152384298861778465906680303627368149873181317942466078453982130786017051873287265515179741228223983304823870502457174839293909281240703196708659950705907068432750255643355631106793364747490888069736661498261097861325498827277323609051823929602730324423466542730588176139934718927873331986426565774771686845489520985942092214081789496077643222915543102940051303328779618573044277163775011128752778690241504538263541165453365137781183890511637039356913417686020685576574921197991221874434694523998832502329670794517090432847440824021681942249176767777597478796206533718164825825623553455162783171874824731133874616355672484921046546254809716976276253241937116778705637085637904701721680617782627554030010256806451240954363142283530405950967923138223571626917134642452932378833408647537516690607661862967165487325858486499423914262313654912068801151768721287244740464537867727664799469462835090242027830930443814731580937568576203957143425269737415882020991522350407612356527645918397322980617160117928560289426832937503360690360685184720726751523755527403323304231437482666665584851399378171862963318572009715007587567402202855776857129623965279586592118608433625283840571337055566446102158741702714885218226191389189517118743133862939591238228005127418591640123709308749541163493427334636952356185678687071154425560334421636191958503242795537545828599435414688276352996893861501064332081445564112194243982750543491761833120185093457196689139779029629085849622873418519335405305581736060124764630574438254693299741747809862698227973193644691908258700445427431014630827421747410758535873560607880418273257173769652981940860335646321060970338961306291194821360755272095067370617571531209066084883209059320004628758759725441103864838712521679842695096714653667215452160791912433803513615602984215788992457442906930160131649123072091495658314459140924400865922196492021684984035043545593547248310811868352462572312095217504310964396534394608718020955321292519925115321564899826108184362079399351710958956056908294393769334888462341261432657926527868430823229088597239483984708423122044658903126186910538356808776245123892130088107483957666421242759756091062360329633450401843663361437194339474590600275070722011241550302774810381803953623546490944718876239537028927114566914461752020359436079438496593275980764734784522313159557038029921044309665882250014810985195860948175147238435776746087274931733889481501849571864863908240312489509348328586833927777772176744811041682183835390622970794879700099747566051412789366333573930984242557953195094557548657835610027095092864873782489391490317826045635516740815397106897930080074306176405963410795344750402411703374617562066045541188764241424513316884936776443411081266740903509294675990559423816085457037475207911504643463972619072861830935681413411512797721827159735934956066464914567533935069026761604254480930039072107388016783240495556676532541099325914489341647454467667640902990417147115315330046705528939758842915501973816681924391237175607230080503634981771576587595835476637087757804733849581399045543715064304884348084341316155271727510052165238678074485762842478991677037527343746625197611676439745492236412497122376108314954731566783530292402352574570339813994914170910936404637546425104656541331558420480171122203518486027811504689767941000202236121656189911209129771802277699159654600435515056607299585328764594812676620427378880863360668724767800925989345822945211129024254167140918151981379829445376358325366167852546258790876537168143123984730717736161667301308619897692122574383703640203377200389513976050953535934420110605808791634074126798798866890960726158447573923523117910595769149600047114418890603619827541053045856091979775992850184451207547399196207699148244497515369287151933266309445890531899664671782292656521894921801756640644603630178021613230826698084696352688713363987202843091055802011110319796136645223102661111185296633613240381136689936685022874426641108802485783703698870742832908719267473460373370820275817933863762904164605480459676898411960373755859482802023316462695877889222486749032157114884876695494147590250144666523694020850638240237569004507490220618738088597132136298245977214827412022691544980160744835743342183618479115445301752042380521676783880505718925239172501361673386799598172515348452735415409087981200839498590228839064319476678714218288825725574000240491750227872124229163169550686272933361479259812479218863620281291274194790562323655228279542851634736580711006093530621603959723530237749540057425024996014692121593924288877784616432533857153555953672023376034897696199722635649655812122091681661538346592734172926614254915073387013206675627617361699809282880725573286461962919451799960116526522201195619546295973853586543632931108906452991376902961044805121353244266789654976961423472612966082819010360207972173028972175137593439154264267197317660804667210293065716896168904678858807063126775265404867193452205126602393079803876735509779614014884580671733875484250938437641390905898442651445125917501000105533384422739245384564217257383310757403371179904058255229266289004068658497826730886801213305873414917459126476911517859086230280006957619642307772540102382828779588469144567168853878234661624567617925042981546517670194148501589576264505295244775151216024988098186445062276109216982011115087768079038108731622124678938051006077745400516308403704202896151328934219108784362915254939875833652833818523359359972605431024569879099292023759388721968285097104290707663000258082571929345212252784848710568470671870306732011716728498221365994163825339113314402210281968994599885207512623354694077725071612137680345103639330587228761536781244445321579437223657225109083527106016385639233256064529145795321945941477494512869696373372459460142261566626169532029706237423840535971049928529733399471429441051150744901720513096944837603734917297609595414347950139265917396714959580176993433878059027029255632061168520640743213926370734542335366303528294049641777295455186440675745071751952290376161646942729128000018020097170498860707874421296708721390993195861445967532693673943185067267323260727868731540852070402255635252544520783988974310515074718303772309887157271828854260528240456268657617235958514609213951107194264580722002825163499941288235396330942139993195127715316594383458884656784419496368249321186851121866234170890518335680994953331417927211278864141244659434752925398031134873257059270162643888329444958969688184453750013018120968175203810949762651188575646801712065440363746093198138078854935246584828826012130367216194984930567219807699386585905700791459338608201230190677699334371363972392528517613573171575518868882975811091934032356677741566336242655885513517391414839996079842206013304627355636818541311843508204192910915841949201938596775591665435971690241922759481809677675693484226967876621551086537179924444901055975196833329838676801413293787447299020873032402423441475510968836882450107935548167215688299279430619845292016188700079178497689203885682111030488533924984427967822440844273320948114897231540819437922451268942245165095789559045935143045397090028973527575386897957349252229002373305192804042268287615170470113931830718839046577203471508841475330035085331967223294988868033041521499079853359453401415014093891628334251777151739522382257165181248504833088691655563331507386606710525683490523711626476002117456447725958916229475961722963349487536081146884192849155324059853892070876488623778638684198398767633060576592807285023914608272239520573541808457148886567413879122301020074291021651069042500016728879589981337866127328414855469247864643360161052213077223886297732381255156958871332764104256825464399227064328241626427500914452521896412787674377173812348111490049167809788185654494541986586307017118189500898403764484101748448646107666866669169902492500051342547893241518115439647012646700247754865910644399619106306870027954563335299368757739862488343348679261014207030170861628137111017419632489875149032626249181898630728141389571883675551788531273168268807853099531507880017078321627623786810776319812382875031803991670240163772082776226265190628709155205418337654101744484461013810154681323339379564517719021256897950395052123327492199952013308329979859719558001933007911657525363558286808161493523473690379592294235235866364535879031400161740525940250534587309215984666487976110332043998429786348343859257459216036952149492244845420814215554858986375106945896702796053874121994209589134271235471972848209013061096378084861632316209682069808360010783332853707904757674568661766997245242870599364951863860570883567348083939943223153430065584938649373389980199330822423549055976305105755172058979400286570363514637704498880255438157625577995521919772249126374765526276968109041169479590854721760365128997434204416851748558474269944182092911102222204732763544220771871805896692707613121058766715125515410798136537965092141432250374606854201924752381734441352270923336302508516120360006189595548005297498612440216815205497565097636804296949122181318027465955769467703630865052855224514587044051827094621667047228972995583004394355614653606068577341120569066422045061738652155201260714248715922365505196656158961867397924710760667655982870141613855651916237709057005908370361795564995748108150103959078846119490997715491557680928222181520584304101486545865039544995052581595383506567209386645305451105799219919376286173679727701873836204614787980444655958877644125791810128146643552718362900215926517005652263168951296195144790725881158641410106174324163926918134939970089248032812749338439786048212546123822716074508333427745949915107017485088514500673178606847759684102916063049139777586036253007746528750885577089548945151447941999664797251058035222095007922126944273785198293448876762530161177630700954269652160939131859715362934479552271070923154317978072089957255323047902140748397387447926663224584626754191660718459446308690553117141498929159668755421924684046399809119160882152892134317444484934474632264380679976471043186998386758735401045362025583258245469716457709429829421712194187923770154072547881805793950591717672914579225181651012859817185915764812533861240819305800232860584978948466363085584165868922589796502923135400092300975037144864398889666263016974053667759118169712427843413411446647906233703439365526595085133092406883429749378192663070125894700597989767577268781715529679248658279680153414961715741507013257396611390202335592379934431322435991342036302560263834297048809806975889098281853290778693588047393197931030188297473175975355986232228284689057503606583756149216619094176576527890673111681923265877484359479055166016345095186253940264324278311641233000835688759171044662740465376974690089460519827316351871841665383024149397245161805924175563459623598272543210793114080335242373998038313336867578018174437001298148478580396683586107606867602680327751692349918065140838969992155430206824996458389724929221202844404665882888751122609971564053001815091391237585499021889632716145881584167303685017095552226560116815999518889876226390130853485156392727327345739145506958778578682439553486404527254853060814667012280728003437375163063507684232535380992474672922167446512210240217837163104266791702122301252064512821793867594909554991269040604570911332408746902621419399483570992713792599610236328468706185603896808224030887767069947231690958085111153584917106613500249325304870599629522096163297751857766143916904169788062859533899730089449426196278814663398254116893621214091970691074236453250311076682117405805113646168984746467496071697688710904538759029425039676623414720826996043869299749862231518063067019048318053912760838955901833637066593708920449043555490626608706477830018566111268157116964010281660528443715160397700155481205964791064905843887269490328431594806458212863352670916669040616253790442339361796281653150550411536352398459735527200278386120113158354759476808241481727458959262674116878880375242835428111610933029468964048776756596288855191946289970461209757317806911026497569218836110843576140860521835450865303935346607158607306851089362095532541098289999910914678031178636422637352684796770604148020400194425115070020510164726683573060512927745564286708107272109719366680022935619266645055474226103650833438585365442216229720670247084659145376808244581611467206166465128035188263223166697823826962569922322080255644918244549011458985661449765492446418538340919951645210187820799221714875277906126490770855308018599638968680186601820329804368329507229969520015662252408017866553125351181332685155197315276132690139928417372110488654786075168659405002451486045903041127299766896226691038197816828911584927572147935492625198100694406467497277876799493101294096876895678769387101735529813720687589649814986074963502681861852979605526763193209358383181107657270895412029008280956108804451816807456782089984323015255282832425119510039694770430446853095479107257757178702429542479717047760207747173938225832326303093377008897601369260145929281033959222544438303599190692331308502982258842661004440631070537450366680490545597474680901503997539677900110596147375606202922432572899588589648227576664023396349484951691280644696743870657373489309504311065728008543730646093656417937524030948116811571029101220008913923667658842242209241465577116778221498979468995964117532909300456567211184508513506907965609528780587448212031596111025179784898077518512583758083466890320931063584055937352569045138156840486092719284193849774692121503528021626584553226933138906544449887872743698692723222076545371127397054224555213508603833557683374730739446492937605375204220167000734393831508404124931786359841400799899756051955852463626251313358873289962899414422357113357244856340121438655827730393672572571928648312962141275153746065309398677945906047360950214522550059450333662811818939540067973504633543442769929672992348441003659781449096544072721333471369745115240743918591444411640920836152536059624459912920652132848435074301387552590799842512103124816793494731112446986105662746279750282681705182583476543864180960587607627634083979642723927553175852537306003684436254234667940904900668959080734599950371805476214908740765129831534063225897903895236660117054433633134966456926591824668653443155045321500339401713549371546450815035498175091856280562783188019119747808513695396914537158733651133743138653005265208136137149090906959046253164030433781765902369255384277652955517747426339772941236030843111223730820376204820297835169505628495165979643221272627667572953198131641183805122524267944783241911250973341072596712601379099795215636874257635441192098337008941916650547744400351580396439630271947553954965267061870990336084019643238335019885045774844154687978557363649962551334867648454646002919380982849120458030820757254183223229623537007982395347273561822018369846557663213219547569422433826225272567398962488723853765466728832886265285709880367032856957701444258218781971079781801410073063084249693204293462477571808933887986844331132347278183382666479237299328669803841976759038694171962713072294558458567897213757658588235694366884010020653968667156768103390767341462812468785896981626467999915293065226456712823762770214076312483349048243341510758282251598620223931590645396163451009135745114695599445274508329728303659184500797390852745911021849690234219226910371035037945110924279074080242056902205329941133633302888746276022426491094579367402523554917592128580397099519793005244532508824944397309829692271186427034337687529926383884606783711041701261801148082970658011647073918436946799287190914151077379666960224104200991731362117384188358576877369599989512473519586620773691994255600001489059369404649020455237657319829174728511390909541743309813737908906280111853784192547249498814136923324186710387205491059452605456345427140915044270676011320501769838960458422083803960646335111207224449445869117776799490927300115291625932859055760703371444028423688483440660333428261052933724387110934273602680112066276851309871619349976376183566904457937578438942207370598920404773906438558387428270448449917449771124780446816676869616057668656680456315896072628482261726317981010458168972657404707009569976963753656095365138665759513712618187980755440077240686969501245157047695557361506720247417786617486247132623804728409201450356543429882790753656812798636408815381012647378358433550537896326108537208445701518205154794938993958138101078373833939810819508295855732596823298138437166936828297362273511493707056611550900805212501743727409991807283937699643787869347602342803503187947954338105038891639658093589761655212873162076169947478654411526017779982860392238283716941627907405704746881962833367707589932068837145665760072273584142825764977213731386920984775203782116951214015376845423686359992573876760805240752288747752899060035133774355895134531169918631671418921840461034117828002573884588459182421785260148859941599915244377155327552175493908024746165734617788694147712303092132383512180578563224394957835356661605285616900756934706328422640543450868330341290701088683263689280187990285692123463353750811982867224281017989729844559615138015797818669136605054979214377132346461845218919400357741479502557013674713556353964215995801106560104510873991150239618210041479845900308782557972164270174754726851503130507494190447554878391094069703377369280625055703355713629396749815776880248661682580198115235180981517322210582738935217378099003750748104491998662595765190460056947657163977724555341956544278558066353538754145472945882212455991085625794030533524272262642452838039830882825251895309373598280659488672801122822385729780466793259937476606264974237778248864257747969168909604331180566629442042455895165072780332551552487501644497523858395782778318224166406243504859363782077243589533507751729117152813362623788044979536730337375781968230153499732965701328289143314372727026915937109461746905640797403169965423587751180715126443853334470062824170382327288213676955681857702948102552482397911482503304470032747815010014577807516073260339984283835990813464480345994365707034004694632117254722700062654281190957895735324847434427296991261317692099171067334448410232928215965621204634881996307988759582434697128759936057091453427022760671183529220140823021972307178718112564444012784216653150270931214560953220220410903349867869958394616121340632122309493519417979364071679781403488846080981558181841386440833142458019247969823660967417424510838197318298179237712109698855645154067300417433536018480565050173252847964109915930810556851336601832501859069367555336925907589341061736653861878385961061604729900638050129100355798204158681935139437016011064590579705325950018409689463627873666520792866429598125647325061351719946793114882078982093703861816191866052665456497170164865124517287703953263258714326892499376830254631244507950586224508394633740756206542092141330810309347136272727209530299449107896745995152859595295216909185127158375596199827918686656563622274603480572075223885174343326575073856338253132928625519042333004308589710155526245318050922205522422141200130525247256858001416486275668488407217422562946886946441358042272860823958275256066902623648401989731438108138585021928254448802594959129343116007279389208031883211549473540127109821695989225982098306231315668041952812637332904792878921024477394867880686152927207367394578910115583753171874424341193691765228012634000282846002135071541003509773735099456574148037914710219774614629447037863377830486061479241162187992943645286490743301298674876359950836724168180935751336748053504127987152341952580051904403328902104479527173223637098582737582564826362845580687436180849014277779320487077927654690042609266638499903510448316323775736623272327674929143816042967369001622653391161223661778401840052765893147104385964822203695971784101204292740700616113811201985597507984865292813026747787290217375652522764253966505243760373126136369852450427983659399388581267814608614193235883018981939105059929291466802986086672991969635352368796478030480527340876931096842269495268452132105840012657620885118868109910480557663980203897500178342781790423503756081814952735047346134614982094640978290798575546953889366615357972689898325865469247522168871793221409359204871412378764196172644950345632442096803254938877062513867483008349419142311078950402691347210390295415593361133555923333711503904985623860885674896652924382076229940531952287799224775216178777880615548908304253908758138076184559921351132603795328495423215869107664703125361321851901721970194445414808596108677088750299214593929867878395708564321997222379215488735711587144913505097239995686464362347920828728115623064980891156820450641438161478690229638156469711582599898764347984144362296973965406791477191542384612667959050504105134199147643699226883120263125200165669309577459805398143798521958856706456872307057455406557767764151138170608128590566131402024647032329725277512793269162483169532409778757483982272264616030386113136554366773119149773121374137555161416524381000284976059426854416446020756797713004539504309747021912938614720172005587505300691448130542405840379546626472941111030549880441975882811045390060454064165766089759846871154914911509136593039424637470709809498865736476847843670932907716508049968994208802655498826655006903504043434169782991425170026100198696232196062086281411003543525518959881595389452077898449652360510059489389164939282101221365542252056059522788240323873819398903526756613750611880162485997103595443518981112294275520296134533608641970565786111692426149938952976891214031598042183589490084244927504276551302864483845552566358035965408541360711035762977686809514043127290944823204792410929959993160219217953809515907039503597031473658071995312526583970439650717431835535747274845585962592559501518252565789832016866468737627454180053754191784643355860798457562082988513126005004708542603162475692780533779469274794511735837829289980482932489816004055083179082248636985749114566950538440793498182596959507442163621845752725149140270038283901068495233577747674866260075483299381803731478937183884881707785234266970092975338974753032164447260256995031736003342084293215068851258284867943145678921706674977218174407899762439071837994060738151652520735949403393752217185939502291226794296248136667826973633524180761045228634965256387558936655514008817706441331661660051225854769046995420345317260297850089571076649643074682114312185464069707643680512744720802120722294787328271261583113637639550178898180744043337158899843331112957098049149635653947002852868735849876530386033107062313366330053712084193700790721176119409855718084202362950907680886941114826227321292103184866763852585829058424821560538729646461388056319085874761478875849572460564380102315383889910606069368568656020220153530410268360838742910475298534963533217102893235724181646127201195269627838816853740429473552280558585167134886555909627913748362649343450624748219192939281614880791967692562827653018678423512171202484928424788909806324024172077155368743005683743007743128219081003622269715104142009260834850957037824250650121189332354413819267685702660510657425430738958849629039599164375927757616910629520847530655600766648884504812724324296652873548316016549425296162254405172448894093705584345269872628893502014267014999650681775863824252806037170992132671818742915280534718449903292598261333414505671368301811741406503857421648182237715898152563876538382595772269661420613976811029764097912969176149410464086816569651525009253368513785918869357937636568908909436811153150061132160199541976815980976322746027545469630651371809723368478551526762612319743430114686344219180070046498301098725614352171437182802493833583711722371687865536893400978901102753906188496354198366460400008125876796751944472449949963890750026030215739295431962146981605457196048138121653744848662623567567468617747035152807552395354859594833946333104433683216815429916581849069334679894033346594174889584424268499620005479780456350404383565632296278520992156014770211801957223644365579722556644574301384394444429906566579402568103215904237991519999529714597856500787770747633829078471599391336314670111239100859376457316874406429314139066574767389069424024002876082412463673076925857416917174789516808784178380491956167805013068336629418141761855668285514585476987249511620996529101023502900255116071993361869109095011676023606535491906304048589603009025063461129680309730388817213277862917474323487656267559723994275403160628121914855867490994694609980566297388972299020962724572955727357814770339919200401073890299060100137404157244077737611601050507908443902137062274025785644922134237153877245282588538761290521422034661576192164712396920916059941675322837179222282583266538963674556482697656446716889484287623357273959929998310297936152412900485312162711562504324007470467978658957228343868486576599372002397245359110490933456932283621232963492570591265095115138328027906135028863513013173547795901436265295868888870303166452461125207808826671158286800221029764379903657396489661640772573275766257253671721132955184329997801777149025764976125997068898083917394561124877792277852440338449955902643279036651925802191308879065488534563804674121212365206366902325296315337457622623913937912718856322913852716991330222945350834757629537264910545340636949642236585756531884455141732866767182641242969482649999293609861669194629280000135759640357145134753753711329580189098857317469680756099937321081125691611737887658284627188580921946155794934848143444649863932891945844978936963323262702149162692202914438187773405531657003503308525840730687544107062291363253217695106973734415335368140100915882172141010273941437792012991854131140389386822139480533929556208583318966772979276123210956523589279967961248666458531199716381036422760336718804543387247134711934831779544535418855694801653977815594576372804697505426932827283675364852667027820917126697063647749893419621379327066287126510558572259499666539314317374682093322720789472708842236158605767085105459494658949577168815449919550502374256904197858756034695707577749815841061900763841123106268770421262767318501306789672949238541788481358938623669457505599786175299784351430197084875477714747675245661416963802241938949157264397558028582328072794382691838940774819261501133602610408997621165485384442258351680372349984971603336912852944153568792515692054332259948094445980255307130193885151761689925940862757874298984191006506877333308266807112838286873353040816228885111305541181775740957153250551679601339478752383054671311420017956156348953604134616942898848607900603302963526757473076055443659207430680541933576111206437983295946960239526277850207408429022866881185108776540158602945739425017032994519147395575503094324557709685361665805747619641370191320886108258495035439118166967138168964576115205653949034043429410547729751971744754799002520118070794547437003300031669608015521336107040817714032804539341304935446792656780137373840548566514001740068425565884935530422132464042703378226676378858526014332870058444013714253930138489644189998638866399485750953467705524485335834691786977656434173204145879755226892961151570345139799090274975307309969992553153615673245774143675187159951158147837908929506367705497215509566548291164001098504443412652143545653902658930986963198071274665333162925005271673267111546538766682339680294569145113547350477421476548237027274459788702355146475650708401537586926156701666392464767029698974409404570542319875624507075215333103939125678181329417560815903223551281802010041943090109551038364395652202154981947982686668439883854331502532551467647705006683595070459517682579662330627832153030088864446353769663151754912756412854870555903572409822609771665917024530780577774120288337717861526127212174987023479022864539199656177069512290271373316489532739790352960104180456797179131369430925326112372743686774147036939120810913755996167831121834853396020827636711584180587144752327648566764869141403153506716393534326544458984398228059717968255302812073121239750844981259086580586774013291413170717167593522786218254193514548399689251649118137241992752593226549859208755677653575495528722769662810087669056383962525479701506964457672324805286841938079616739892113246175955845379763305104260013071023643703058349751264575192506965725015729366824252252364662612799860118684265880891943942698185528057508778216661991579145330442985308489740154635118375227652656194020942849860845904069560012251925907499199635724746801747594589182073068530871471365622422373638127220893029373161974615357841436500486959579503672165739311515140703034719254016979539319883455640335765143880891981734962686882927897894637924730102525184164633062672733425564838742478804503752567364981513463676393885419302974060479463259696267115852441951059727948859400598051229983744743503374622637545306207669664962648115982331007666650997013115106648663427418636316496117787231211960872977157013183680248155828745423418222632619918181791271729708311498762459222666270953941401732710824329961030019987547244282234194090051012823499394862431651020589081185411454401099120669017697828278220761682602397141086759258427821975723399407995260377330730266298591201065602513317045903330844588761959100319746709450167714525871166481966642974897778344328028586831292630760399567653231622997599285907714135612208720527019082328966229477661293160715869202264680704885326574505558392054336450133241748449451618676542858923319051654925299136129243695549253749320036422837120172627234646370073846060672684141291597013843701759048596216964282684798961950945668145810189159839186487437107185736010610009921845778883181112236031792124489701354757952970903596972121446365139331435916344654375754950335925773412700430695072819078209243365352282050183006058145142581271536479714234827703697521070014275613391232711007703836163356434322098026580604733304335535677272939568748011507265100859470526822383093042141370012883627152159459385474603137936095319984160475030051769527367203947717388366486327686942856607822857670001766668297739395806494465065951709325611251352508325993713363462922643488640651361659910770412494333457123089119804529576347558468564425905980929065428864808463927249788376715189028426751711804264131586359896517112284113796524614895549433650786781721950272203004318568803086149656216559489155868862781452226397659087217059827158169071788851205484811197842980591271595944419429811503542555554237056220160803969173863067729212607620740445098155033318998811896445021129798511658928486198204939023507886990788156917942153779496343020414751560910481513910580340778693050803867027141235671210860556995281300804285120413423647260727242092569276045479500253710316165967123131741121481524664230521070534491507503730724712372211655339141062413638739394574929786852069528898946366386399483256255288538656778627841688283573478982122245556060243511932285325475305176563915532113425143005984376458047338030139408628946324670303740716474353728985787475998097195537036223593208986234992465811705042400170897736030601326941426634584818574353381349279231570916484339152793174954742723576615367088301376221690915016816719486187199489714602490890044731600941573383556134617470715615760678169395340909054272466280025535538946765906760026636401685605745265694021506503439744214406526871150194058857082242847187669627474552380820146750252389904519053178922171025838019809564860643222439546418652577719842874385687601808053286150408991626607692233931795689826304221819161834193733066680725082668010675531881906287080073973992140060512584911799347120094860201389035201529343303106470211831713103680125899563200740416874076704821466967829213679553389897261974080524642844843935329480501996142381115097202001089154250160292763119115946881411837519896553842414411866377124082835067053742996025739568659927945483753066332119465951734663045697644879582524774138683138105843314686331997457089398413866763057831073595173564828454313847211620105623494118936332172279482327415197552866963433169817416363513637226280820240416767315242704421372181534177026481629916291038472803199233838547607364767421388436861883692305840434237002162634632931338192030596548002798288070107906286604964254335545447726566269364898291344529643713318512879871637186774328433109055548393919170356558138884984709233031945855617304190507844964655342289913618891419824937800804654976046262368597596839244036355731880005289284263560623156869247223453368602587156619228119149867492104273338205558087385210067470608592853591644977497987366726929256925289992650578263331154309828597582805797467303582278426851056190184647179829315432125719581606203751853022334391444285243073487022584735448735673519149165494658367470958857060545404925629451796059618980473245056440747135827359788092736777938212926290419440795956338754856932952357512276815534187136754796093402277617525743226767812583052055916100910907474195482414556619366898131617917611799180853259190591691282302244223123667668422509492067361719355556787808558443408059903974623065000176331656560400851469251185512818717748774273486191675086131169029889948847146967128305123387564787701503385090157617397586560127111428069800387321713667651464548558471638098968568785066868003947718774912817510982850849313068140376813456478892815321073252858533489171717322334706013221299011273738013418543014840522659404601236895963980387660562628299580594217010498440185272235157943254458740148239573455318528148988303675366862376799940057787243041115747310510778524926306791320018457401994462873952487363159871255549880408478409342680931134658113774702533278228628975324827653315074411130806173131468794116848699692434224566364336729554070928488066903857445612825678889175286232131869958146960535105172834700125514619405329065397506395297441413332510245561489249928757583306054567748922046387060162842584167002766268088333506273191270990384017580312596748537232206305062341320738955903383860454286181918408264729284464116830003700276202320589234237437263314125317248588267100442755971923395358509053661280111045128908305982537366965191732113512745280913128959927749735280388767590309694844827485148158880549486465530361038074691371559353804461608721554273460689833048284596245956887462954895288153767598281932799469422834262661618593684371584896797897258552550838457091450219834900294735249457337560219445862511248366442384218968303311819135778417699255778689219274824060737484959690380503171396240726865750230367432315166967320605157843223803720202942354731983564567182307982379711347530161357530826762180938355541246781087680379707757289483401954680102885172138476810350068159405437274751001331745156686471602716231121454949468893191439008326086764860422651785078527144701899598255412613157833141983582223283848577229189575376583807247611565634336669893335130599179961707697916011189656118223283753547560229799362044167519788765808427362716524769924216037111406634604830740328614869204737735336218381821161626143073347321385180622744207837043413895772935820356245909649222336179681592426720959031135188404749027175138766163706738045193231810438322887778054645781597808904660326101296839289371453141369980684313896787592995008481524897766464599124112097582109160869153494354979971654346499519358850933080116351225571762679841627820685785230050616535291134537481180359310559986756644712649474457043373581760588027391796956319677825154175920888886921291728725344826416859504730220229119297929285698303909717081525974513153567859052087423342459869165287357897448882417943538536686024941976015558577755424251677632243499703765196042192577332138176725594539985405790999156292151555428109910021742075811325713483366320279093222056179526215785848584246300708190142649698001914768093158716698129488119508504310908892988224779458775756192914143765483367630683586455300456727947142178872551401968774708890302552983233347829118857516789750274245401984468880654276954414998215439765703424385681589050137918314023566211654282262085187069213251545436879829629155921863838273436060254194592285714848536212107792003169599629870355940016665626480337110363811543822366135489819194345940050886944325302799342036251874763246793580502627858048693479484011600259749403511976316169395660841693782587170459906801555395076146601021087119955041315826181516181114462002581773767968116483989326152395673637150796060297022430770948996080152318350986319714478825538351767325803488224500896301233194914679728764853746091531059894698303871976622773256413234046724836448410356015407098864010101938969216706068269514126256052036882711953399483615489669819566426580323513210972120552924642806505103057028995652755502432146677733839190727151315214941725369150468577668586703807275042257987135059047684138624365410542775750645792868849892927665874306222745111160291027253252188617635561474704228260393706617809036524102106230151019217572009634768149681006874684801244307205638128940648027507666890764667839895018097683129267227973141993577436408373742274522727934187676915661125758162866988673998676072867341921528253030059040812332123619167020150411314073064225466318193436604167333638427403689201051926347243972168858339343840455252352957986273292953092236280881538279886007170025698345951403493433014626054424322110393048311718810406525370291137863823995423713508170152051206576984619615197179893139931583221819383469398341666766823639779465219688309232569351658035729043932870457577431597121525958323187675964854481391102756001133791908905104343096959424489838962893267804264540563958728070075415750857856552365045951722338883706155738750168748876974489574212266414345129032192022137501161036486594103521813273359854271931730512793372015572773885118488911475006820380262523973591531133389186412020853666861909589579921810681471587921939961356821022314360179045121253282554304765418595377133721948733072766105889929836806297429507901496460167149409658792063678159715667861893594571942649901645131166329168475442726638054399159512116490435658674986896648047086458820577867848283631752486868371127684627458866349715929655943511796452914761077548525925654185660918266902787610443504530248263960398363452752625607211710464560016638672801000189001525311030502488397358782686601354631564994829411155466950557178208532870218511500245738160031731300209063115698746835594896248966629234821801345247851972054850394264955235525136167761592706974484048032574221025206105164090283591724326941458262599616523901905916373360429179232307889102968115343439549156171394075834811039154717115636690420898232238833669689309279007030998177169838440153344174185876646770296058190299878124194965556594909313538336729391137198278642914493593152812961805952860940087534859714008139514481299706879519670574595804231826997947484515574721111886967087569122697251494116616951883479340695336008517276370729004562314825168162829144699543652504205866805140696309429041307121316534080375518851220268836484109865629091893662525489079559143879154818419808240075556834118754899428068423254968170324521521310725907136420071054874839419873057903541228831664774397152617325253519723204577112968160123396995091028177965924637768249469545073203111361654897525659294783829028160601449962731533791805500834536264130656341669739527653602677211205583787470692048321511481984616203421830174864156445595775187203256596598680623237293381386186383377683564286481292833924289243104897250609988753821711571332150629496285374804333593738761031154789309198483179281093148690267567607259074486699888317604137563363211451213138239244889761501023966860569883892100216164958639902291074185344305130569860101353911911416899387758444807357686828197298079321405892228372045276055562237776109840638608710896096623114793996100415557936836261533100426023072681898339504815090567807603085665444707330177112338305501833818361310229254843601675598981123491797885936518627871320083549797115699926809549839776548267094961448646516635823200690894101666688164332409768446821023315662268897666723317307750515014797998488146962234215020776746254943425817792421816251779192752005437451969361319436742802497727797080010637622220613162750920545595961309985708736907378644650630155343047441152309059303436346673317671741220306349390121361846773376511131721500228092788734794243347636756599680515756277092715534425291804391000130806520609644029577422104586245274053251486364039002417117608324496155250314029123999385695657822232382405259567632626296452679805735382975753921404236382439457573405688603253731707929417717973177083413472961418766248736167976203666219387495009761469015778146854699161478438252228767106704021107146212566658840516312094932636124669751274066731944149166827334198633727713299532067923247205287633586479932350003131413624888465947386392331378717803298402450208113952666955350113136826238205439659441187704201932570435115554791466461611997927726285927293076706644175815124600118229962491469841052241952022237755806256739276734097195037490210482292021133796011276942626255237434225784252238756024692673867701623816283409354156147825153154855011136404961771794977405523735361656504829863288404618940430517934126230122752774533417466041240024472918592499908887063269445969945995480248608305886273971225716282076775944744505355238240729934750937498601771897412656938409555355864882821044775949101982593837963025715568880269024128784015123918901908035598001757947597306524877178614983926062292987083358452352764283561400738374810380605961718851629042974242688333308931513867138734953599804574119138911659460862896749804824607901388483084677361355081487986991579481087409108565053482588162351746990741271569994924955186906533381748313951162682122468559253295055918920918091346975966283685930628084244361574389288829907650337055902227456265434684202017020622800626225922171511622499010659774143626011892727308222439331271425139410700790607174690079611009363070250122743448948891532005238035051458526609047880949714628284825598861613004771439488103063058109543317280796716180516835879891707149017755472249242161979293784756685371456051831896649864784928080884986196509468949471951452016242122874907399111224277915648838433943664101311925924597625767598707747043126447771630137895416944571720670159477767477882338042869428453026259659130154390076850159625010150946347893694501751436473747084915811523884097387920576770231893120437216485664858859343502318884033856844358355153412666517709407952656694196570499593247179621916482525831145370378319358083864499016596528196695327928068383536020954466817184308559306400010752554059481352121800633944581574412578216633427021981142906229755009684782023896155886971340150559144279234617531039499093874599532828319304426857914462524170492072336935712910032082542275621475997345475558572362049555858604659197631706838453066307803840941037760792302379060693550176592368054735344933104443786631228604297990415086776220161181250402700682620310559854522516932987737895980993211101059910322473848269532273314880851201927032567853959725337634387834194645648461160427216446513758290679875933285295977348656466811961687078533858504269795815196337714462836366245930161601252494285410606357377331548055241668577598741795098165819312629094291695159304774055345884968606643750160414059610610380498749400137027476533945269602611143595258836750246600447225662869150546328664299489152900289373237586803795538555200088782136620947773643945168422812782175914278490498498381716528771712666943312720854335631620465407016393756689277331581449490902911786623936764202183246156124024772734819449867576502353641165772979057272110305712104744331270405685273082982775416452411910081387710227332975227306181214172057704838554343909445030190888849915206971692864891426392328104549555549388088126771189505120758575911528915313626365150914388151254603791662234130755256055462759813970107482379930776184937694156215170502180262237848442029661619310643808514562081585268753050608965087359057860891117076383005073853867116031099733281624664629904422738866087788344072309104632644018077833584935199985620982331193354052495035863229132644790402583482443350235283305790361985885182030161387200314831764176752503848201835707781325818340664512361479637753107364411015346803784082826351022148632091438568286958448083518675559413272796009353209181571902210088950574480668347996295912931412524826897691655060131250730415864540040683894623487845814373690452626401323552808873402171484748700104095206384285148431282457507149626250792523504578096975188872995795642729837522671355275372831995647334109836612679224176179220543190963636932256549322661961703551327126391457293489862863755279062351918246289317237857810098665608811815087992347149627484392982360710405540562729123001735202409809513898114262919570915442136527197900979452205005313099372997866394496669894283007275054977109841184654504821355727469742501970531775261162968705932279780615748045183940431582451147809755543809519773993309859532967753945448868638883360365486684694666714092603655084683534495881699819832587561904009818783565405156370527186320681043649261087522385762408058748937271767499615680622734002296022830074176132670646029397856844619670099093825717012500985706569305303533767030426941371790177279450394116004388731523551165707464931427959861146378357886973477819261750089472284338079508154085476366695475476119808669073622439473790936992501313532178657251018856432556954341724776420240926188290436707199839728263759860151202655689410709104276520440526972368106556757250232399488819610306073189136398633188280889371849197172316836862502637679001292458876599450814435117415362315789612655497854109435092366905553813906098211593566804797543942716945486427267920339560423163915737873145992048575780725929546009358864573071844141981609315104270952068235470719038033323664322034555877789565804132024047309608910708501932867881653802770073290112128105962534750103561307234415744000428978729390105654734524044979750351126989678250317514075544894174024133950231545222473542438857027597499565775751995460445934925429639635234281907017436201467391266652320023659676384518029389597382835054184351249451283568457655806826828898405302410457662979942459821534629366674690161938043288125597159938832046778742010144524702051904817313043209511432658523961727031020019605040901598417017486339763590381439151416315056931195350346735531170016309526009538835561789247896071180973219667118624945133276981509107382954890462189185903254812716948044127541781086755972552619873873910856661758638015229319935516564544739757983696455695454257561987653168800642287625662094540258499576868021529629478509708322725680096109409260842921747106969324739657625782112269090695071279982999649466423984694625494651891890030662841925834408019696622307574654001899182286336789684351931917724749699817659264296202062400509819707106195265269835346080205460023318930345102232337924494982050892596390181348169520679239902920011231312531581161257119572281181587021270215990259078730571390806016419204813293795231102668182181746273181546711906043425918756947705892369473967714038115445544507179075234318880224784414638706886944808994420594041124214160266559168512832274825930287467209611301755517476698032896192424881494203616536409863004767711257639744737960225288413010883994935275358346015501274528763215422293103703316800811965273004053349406391716443883177187831125475967054796619513095329879387207091635595400868797116280786292216082186702107367823373854434115188319699410771500966649206680618515220369438015882227281999143879089392767074192603467965301885880450956619274749818922266491048357912838024064916639707671852138055806551617487121283705898009190915516981802431895482374470695802830707371838064379314326679056875050800507603948338450229218074692121824811915121169266900249468533355418406340986049938244121818754378515053183715145998892186277104717667563606101711446148214537966071764054874311535607616358592406253880749055142519336442296459771777572954816913392087939920609073969522382764708563145798861909956187274262094558677493516193595221386121236074936575774607730666524547456328441746900148229538392746582965670831928300607612393161942774015859295487204666690037450501611897020250362415927333357251807171412031187740892384889729281232075093159761762049543432210307182522710110086971691689188441938431471271254541850769420087463464503330824328676924066882018625949791701945300072007716929984292504188547233883586159610447856486676736411851937210383098241209593235010318050810764926502857567970260218110981561575197515700805437952304695151403744463086760567393212244541380717499480667585251527078542588657326295648601541535678417372730151782745424356754551514446665206624217795005852827209683732205773072967676295208722265846360606438854048178626219038821617187990959222231733272687960472205377081662088131692406685167116712759009609133870487473093901084827275523832116223138008261622584218563055813214815846268337894289786056310818563356576192570585396391791022755987475092866647490567506303988849600758700276138088065258263492941981363210531586993059148569878189521870270995134603160925649501767416876396884662446471873051995545862834897080894753446845533908922895272651660909563461345310960960484110979219815250864025212875523296767531139878991592208545632955338597599860869808081128919378558094076164680151212990425918128297735484277068270325399711999646414603382165514196953728346307006998671487436862900776671610644733608150752446975858421647217267768582973858723331570534994077861134511837908613375247145121732185205410278136620080908337296524529120993527884179170901188544426515386256890854851281677606037579036595741562570987259872624256817277949796131765403995216417780670581220173952277988034058232046149731469432498099193756536828188859209715986907531640607455505869142920497502788283923702581433946556284140845898013673649387288502956924302861638796826247997209655242120245808884869999094505923577121939759028474024998059366722262203526666976806561093352945749334168191821864895829281143514154108530787102618430377867835451916846460902271196870235330894939155915491735147203689917634083730556699820846216221806072248563455425563953952928031121150003641756618161185493677408043853124674228573150550726837457360910097184723830578848104950964134431747951533887551810685087375047425024328496557991033493358571214248977689889323159497113331724723664259849543500026286838668762778531198744517483006367548506055298732186200286549614199479661820821712080412648401313391274337842242466946113694565623761631832864498965353094697375920157174635710237148062486526626512668195840583614052455722753886478738089952101554186514673446527170710365199108165100856976253966235851182742737849009836661231907531514026386715212695865478127023225477210439584644507568741416370120960113300280863731652947630737320811561120723836055697705029501458570716003457645829271219801397624926454911690183412452669487581945520271782889439710326571229451565918593273012764777002604236371341964791747374088659492599672847795757022251860349856351002690485045217042979712752847556922486887111690178075868073425599871889177407845826404453131379086854843909936681697032694449856331317904843912433139447637739837930596896500696147668439122563387721088976791510074190588815774867086431745870463466666764333816486137014030212678269724233156468452419625118205495174127077616089830824941725551099218480872742752706658058292414780296671840890921886153471401847701228652354009161435465902581835831554212719675768231335365134936962621518094497060414323774199683776504060299305351057824634905816240306305261816432016227448965183906224523454383765217054983598472284387683029726535031936685401659859606471967456133305731513393135541580183385022253591385143346701541688440406563941679797816762992699646598379629223030852470955601190054288132374609471118826839614477782109697363403720826615601730647457319334538776092473693370227295033450032505084059851299108029576290774673370207890218393601928711251475825714922847912303611187737327245911932174287290425818971083824332148419524194081516051635878791526890181794521332737024175853638964622632877347707721242880055950241597174508689641808664367273807407850615499667093860544617899786818598642933150605154854585149111681062673892618231019561155906317220182133038406371394695045504313909447354071712296495406896471845361683864725656372247665344901598035229160434944693358724495643464232562604026610017645230123702252010103365752905748414284237934188416764047586667405910795777689862549824345392651387404881240914312928725862528999223652852800690585868821488109071885844691211873040690833533839296027100452507876148353105583267817618567818717563830085706193739165397299005443271316385847735558328805511623194470670623948908197210475702143810747776384865133372725243553259421622833821055565917501017687480661981768815769018416715710038629672844256547185579822474998411887909221439120218468185345546521227126083363707307087420225923488236989097744474905944468575083178657558554600306738415962166798755146876878195331096247728667270790889287662855891008809882337711150084371594700647397352368424228942840991176850993754737689880643825547335390021252906882016757452302003145484210833140779892825152813215444533708362331162762235688791299169879757675898405520896041523683135591115404984929046273351991639211648685520613531534763112378105854691088455195431732722951386548646471625796339044647469470392154208455899897594618907007056605552625851511019566584425990761219848722465935523053300077378853502687052428255462420813052580443719648184460500154677903149038111435529792362691856135787942534517428941114741281034495767042263235673633971157305078068158494120288554136010366581964589085824915226373894650944735929802814077695674997885500510890539366607848146228516220602997526258968710225871915171159703778751306231114570891742990814384898977088506372556593184810702707341841665505648980631877263820840927423003400382721314961558996222476082353118180415237075675414623128921615157690826424849873713246087417460970236402519919103279961154948406866071279909364840376582780372435156746546576569211896491900712298059445828906034017326116607592276149395606552856358403911033906967260246522630794373660970339893214471275352781505902015182392807275003431030961764870885221573452535647049443922856783166659812437354426766808244090589623920833560606957192871017305807208961339995835188425486769642230134166244681302688011224882202699770785752380464757671143443353264314931707837556087647991068469628759590802457320836858438980883457193556517975421215324690424018887637842315839314911576140075555885347287563723290066326900304079565913141739240373423045410282361340679464934224314621746564206390733695912588917906596587516004324283106341821668600412173726331796060525058421861106039799965152759843011511977241865292785453359344426061906874624187542402521343474570030245083726785441199846207700064795712335243461100283331274775582778520896424028350965594572451367742781417862597291020508555408242301735929251707653306644967633732094405126599222599512542563155061690200079073099213005131799577545790201381148751303051317026839835492630599510636228789245820855137143334885295114609544151769216417901204409529709869694857422872459426924098311673583763553244366521005777164960010968018061307184655346990777762380015554960365251380555488939916408003517240053357989259636937068628622317082988918412648531507557412152559614270154379513256839143823203029238250451638594506293036045374762353080406224137543583036120390372967365636449395607709708942692896532542566050454274704104212949400972399086425571246163418447491304767271688619891490563742344457543255015745760909293601445422833395208709404169070497695100140630441601690273613073890929154971627590339544857759630936690261158309742164611320235955321368560280438655891316613145062382361009096326174330568606853402217779399167209516970822020646612717652329896523155875484534225980777587610297803841076645090893999601086921819835850119282288562468109656383485664376681290138417766123455748469275146091221078069803984429603223369801182827264468430699933330705904739000864390376668310965659409792596329980108790434158585387913434793438390429403794129565330046476025279464834358007014010388466392673588500157688846809606034375754620516324761010791389405582836919653135244252071614905535075707742086772527062287848552271272213361858332354603084421504518045871621250241301190888977828595022329064272341170747852408945722089981859323486347368462282041784746915554053861086758024764883977709043615410197778672782008471984816957827320754773275343337922360170007007481327520947279373140580912069245954981657814914393961391806112580995221336978242688611177679843269124208700492261861265183539245385365002125913871335687803088946018668264336944807230731438543527836044780033466702173029692237781303641886784525712055612934191144137079952864282872260752516249512184265773994885415753967323702302231483382510609238234054923746702830920069832428248741420387690307880377129246651350737587353556520288000285339889656284979244615125936478512879534389401647111100604644995168067373921570224482175221231515983751346275649425281687458623259081062704739388276084066411799491496860693275801505818922348056090789269718289920647044646327381185458015708282642191168453682906955011422258417834445667738994819578500563445971013235346341273020973539580577474899798788158724495459567124716064117991920474785708385762414108629950945429361285596914215871107507285764601785600790136597904877787400280371483806403242509214533015531831958795454483254374619513572014520375792999952027803288185473559547665122034025537002043191464934195345968282409711463364318218571237865054895405376143698690245055720562270969282886121112252408112681830652231141628757741171014070255354355754188984707183888276289187858406718658696452871481780458703391226389656895180922932436903062367083415971853444255867555430023117370565111785258111539254627475451101501216420985095707400935235494326687611290545926397844248806775134408564836417804007116935328189454371270247381973051747528826818877319243765716036656484310838636445166468774052257030120492618462614544519078012566736197280182169174960331835875338663739854702559557199937297998938406927603224096427345389285140224509736578741428749644499322805673505368843449311908317406204589364736333214634446761624549059285409404163156008121218485719786730556120513676427404402206974243872650974406232977707101535314099933519013398063822165107977984110051297173525934470326665016940622417400302690181440256316189835573358317085323596159380050800947426694513900304003676647188760677698950602308508013850644915386896055491496104316391197860143294219615715315899568426940672403469601461709437011326292065325356193607239100767175301215754564656364431168360291482222861381022209607610158990898483255359172064356359403836464993166781752508661617774946900396378393703665973910737559580582233177108540961074319242178617186401738673354339582027827350047729970742115481370727839806541397627447248972358278796241788717873846665690986892138387653397633227026889155448943465903688279150752282280615333695925346437892626110904193253243071993587167733482610224890644001086523216460608142693735534993800511868280523232568461547543984087077438968554862191200457381759556020280673113785169658470847492605812614017257601746296063972420235155336551766664316849163292953484258123590887335634216280751269168032102261422328842275102517102755857048192223327734141577965309013346617767219346790571249058474675566951753232540247106068488978354722132648387468857135527380448084629315581258214799631958983738223903050045695622358161167414919535986979175966843218354262636294171399504150180487117827359352701847571140890420821556512422923095669228693541035155074021598607682687071244308449349981821219953358046295443346718790586300023207688302381961563720591074217999697229082971563940768700600634470998352052461597042504012320588456237842179078220232959790038327654385971136204525238511047324087045112286615541081371850247952175002268615891030406791795881997885093545586881308480359565000471820533624090991329158445120008371993230611830652082223494491294913541704040063514882827328808895443713531705531284754272872511557909292724974571739240632892666367746735516764918430974793812964480597308032980537563557423681817919829583432597757066686623303558868376627457452978813683803469032170360133263139911983254476822893271019353428979846692081866050254865586973930648987515393555024114055981737806029847798947723412286544372876353601125356261435829305287602580024606503816763056352679479803537704864886987995372781622567941856351641227407576819341177530345185361400221886197665815607251610967226509176786232219390702848389716966804188711236251943057097596783793259313989566922187032970256546674174219158860013188570587701159450804375493679008110209785175215547992886871951426383877607258864333634555296085053516291866390548634315068697612080234523406745418664915715863036090080292838855757392426610698827011637653155735321857351261825974458237961833687343616985145498867225962172166300221214814197278217673861996494464799588818075271285971388670234480944892672598547268872986924837834263856801844414759238525281618488438061252166397094942025364016203274975449532676114763107337746587603822871857679191774596088256322833876019529720094736990543306515672156745540769385735181510804827133517031105419797000397247874844664672301729357644686590139345489325682843319683882663281787507148464766929453821437504237100341424406937194000071477334061386360467079535855274731504306185878129059462924655607723739499474361713836310122441069773753604376144726146808498765623120892592490236872785835463861673874633290396985199368173661806533855574940836208502040927219445985375736757250585542432392333821510043540882236498436960307892482715888251230024939994225296519992711955956546932631528805188219524706630784745090988062134146451767896792279755109606250585578745644696586705218921995869625039985155943372704069041889865118399951009708912588023960554930120313018505360614613082023768530763460489928323425250114321606727545895889019644914794021783521713844220711628176272620526560522356605728957469826745913852404109496586273896393818710588071401755690100799120652175770406317328652425884855164314857041320189374943997721221912006939424022340458502786251922622455741693276921114403380973501907939137800743702454328130327432470761160020804669450912571376414901415958966052499167036184535799082307541688946298686677927412019328513767385638297176522805111955087437196582496263624746197845898362144086642164691396857302918916557073228512435308270046344861313567620904079719189579754520520186354225757665735199172886040503013130860092289285490801861034071029953146149008969381536648351693484739503296920778854547908501243775565882139936592283672921858076218770460594055612919223351889591135316355446270070697902728039508653412489419760644520591549069957789057941493011016758701913919395933288961079432072819760309471006526819365503207816398559191423085616652690929923505885665044596074740510414799620090575022587488991377326645092967098436156573117915981087238186108142136670678315541614201356897151167097505171043085455048742904428333602989725579092248343483430900883639066153805087744790507999693711514984906004257448402297447458822616921330001595804958428899824408304159840991837006164734057264135618035089678221685146641988933199191492829147250200499335691381503387128139917209959821246912777061827428636709300176331515185633724281672425432068660480453654337943643815875483875984722970372622076707067594821903636441248097919113688282037329971184450560682831882095734459510784110250780327450092007936468937933700315464636135855762675586169492856200640543485190875801815822851052461193564940335956037570981545494464864031119614550234944497838015643950182386833923226547563303772304880490130435459075352824691008181971436656344129634359031499073640350766714906101932146147890774231063195361902983980408650131697491161314467173908493695761814290665683514687504166671303823375247869596725218609289468202832896875524639411919610690315843180003969527000277087999771340127244419575195457745852679862304263348667506508927612516555489939749065430328109565125849805471748661453369348542242902403215674525519240072188909973797950422771410182735843137128781476785170595244943293373126026039054568579096344750933351418481553521873720026394743667875818077166198654567655725082209181871038827820204931784108933422217693986390428025294810473016742535725908337718585828819531670032978528214259052065553746916047802000458309701386190966271089509776876601636724126726173228583052087472471796522973071256179508537856831521713803599851196020155903406519733021187154955113716384360517915623393131727665892616822206403595724236233394015499150180364845321468848974007250864481643124625149610605905984069360922753383686343663402355266565351480708712767876823675369267570211298753112307427220248665988858452316738746269597033399509968523678563798242255748269260010724191695032471859727021142167734638984157909327503375363858838713636612049436323326316877739734346793987351420785998964995240856210765068185471037150785296495827951950560432142096218858646579703680790298569862194407614559405789143308148573907782375107277321041923459960621132763291554981557429502023142598646359352920629325682035931228624284514288481812065446148473759764108987648521865741062046779959166873559684092310896007586832315234271213541179576660100871292017552180435934057717759940109090166262466521967142285138069411957503583470099622876045472831794283397049759646944277783538188529828067974742766529788903806587760799495241370593361646933560188076998911230668278557416222837430818983926361691177861624234306067787547696554121464741696176287695171978858028134095712622615713609496242515253961088479214325553837495013632634404618283781317464821354813497618933434554778301017479662303771731133525061978436157804587982984970247350974179827980729768032466455913518592135951648211775837961082574333369363435009373177857380996255177540531329143974840336580666898228165473445953060076487791577503428784942035371065675108649025762904313436795836755231852347008056334430279460919795652067625786028922940343843477111815806399485473977756826437201824718914159152795481300804621755664474373122921078669934433974293629280236641246523308680415997325184793092492511979941298608200785864572651357588049973927932245835509160051884244252544630848624339401074578539662179800321684723352318777098073692616395717322021331166433015669327786025538060470972822903865732499172387912218223068560791555195961804142131088687268571316414409219086172711656286153029020101419301320234918296209536993892573618520831307770221900504546671821964851566191627535797315891054323616413012308443757174505873356584901627771859503242534531915615076990077521043930597419517383489292305802770937679165095093107457163177296395865219084550036499380109277379383922208468442741706800650497634173808394601762970491546271318373726332876092468704015882839397816916977157946163322697216391618573475406497476071594901738460468380992304724625992408130014102893564458771125151032043475051705659774533857338364992908546983076586874785352303455380381015887880787963427156334426729859057974988467176803917349032236680614912165353589512015721760929173076816280780257519072844038617138315517238020315796942537341326129464022018091351964536430111799400668012100146081237454010244605282355442859644964429081257952573500702859762462359924545025542750397850106211103983367170105405886917872066100869896359068757880615707370105100418526168100718071785488790372387760096731270273523923384698206633136759819096620551392126489841681277838365977297716229171441867465558558040369809047183346938416724152669461044061206121288237727492880741054231060890249341627742247074826089499461082619973726249592142382502208910172933243522497382080014816676124831312462899731925752019208843917085634824198274623331018746636114721478087278160897196801528789619816822138490598757419904027818897085013164958470621350372239694300123597212271278353499528075823769615582654370961153358834012474748546843118032406768023788964592862751057346627006315770966793522982397338622705167543226147057674025998697844601960326633686316722275449663014476971750801537563754759927627502405622117218702573047678892217713068179153322208506646848409263585952789864340925778089528848528139957518763201293522486611888881662685963677765750641793793425892485742176910621410326375226741217703895585965048747063437271029332019393282373253932936649520978522346306464385318218554627430756756003513411732718758669748786470326453772243652104774426311099093353021336696546295322501484626077722465570563384900961646049403421188885557132409043218424292218819128924339962778127005726220535059525869563380329575465769382941041938027325101771356841221878046422097947735732630912952577663299030789093822713350340094438021937503370304886439346113899501752945574940767171308196261737915370303271432539624646522998937045420011656930449317046071261077828475678131830809648916395965868258586946616977793033129170524160508269267051540496135988658677621147900882629553899602353162543222136362105721647059172106088627756008902925640961824105001839157789521803072348044319773380755787792548352681540866025033008313020636013804094996992959964553771441611255472020958880803381724054136978071169557373370520337492384222370857870182949949519339243247771600091243549649800053027673984806416519143180007920382524925677889193783836551491606288372791776547502446260896250613959869796526839698097207593930993887750542254520133920054317450396439380745684827374320996827265054563631972989660480903193755908746281961251615986560549721666633923881418608373050556833356557882014669625861066842257557797049746847453533709776849873478299926369362428107155775528055131076451826156157379181419374619765745668739692071723945042618970576102600345271019802662312271165127911847878083717307322463239611273658769907573491723733976854145232253353817217626835386591100104460683615516200271074076733695079228882465457045946971216524780908356752223882274247917272083136162078746152400967184196173950786057357698784649884605656079595331762501455112085688447966546395946044711827561210275585850389052914142288301521855015592534533410854291050563270497037704574035632880553627708559271050585627351106570780531220230387185473121138307756757730682518688904270857826775411942730538250966848045868222672298299728765512659431850679661750661692985974849434306724529632894058498324355914933277180254640592096377694008981271085385109267258551274592725330521983218543520974384723766190239593759914811989324930022382348974875252390392438857146503560336029320952157883782008604881979859536878975599305157984071346658191334868258141460292383905838962624180835630106403831950253627330326249010473247307920515463778582357201748226023048856197741746248774241615087366030069872118491502822639123056646736258600566603974886407590391372519659332752870176623745864931249442658442712406909146015198685493737060683245391973221248086887880388994157475803159441296585812322705297983317422890215741566651786319587871290204173365326493219775575651001833329140307914549361290191873289622758345854281542142564877004434067760730470199432731029495911230272560403025786424773324630217226911455688032904453258986122946756808966139687022817413253289370597133625032465350323938061461166281604068827951225376060292789652317999061772696755250483018103219202033796512284158910736809629772217507095981925881813997163055241340152197624914283460473702815604864409335175390714377929647357148328440685563748856852403366161336633605503176937291911917806600536602880993310086026486878767611475407802423253599495227117319313435042552648078643997089511212585694079434062115978648219008708587419757907055999425941543122200444323729066807288807392525182836224759604609575427413394864919959556334603253041598369132753958747457817551679771597662568283226434314405730533682626828906831663908425308779608291122147991478834308509088220852087755675383792721952214184774554297192978428105194288229388547432675619135725885862229192232562832423333033874141617691649146392921232239771684721012676646644767677692935814818088745845550890363021337502572003696718216946967922798531982593679386690593945419080209637637990591655629048721066311804146718783829761649039157658402216601276676542297037489352781681929560897164467230827886453160073617198127925611471959831665437986150549019587529323418124806850458665761221912944633753014884433775136337871635447187546539580544431346516064873716640565705908154455198530036799699303547560873095682537728172441265063027490975038705680376994870472270455768085714820197466612924831192716971850907352622027387244138323171633553627629547664186003226962540551941600890209845634630312323520481042700781159197287516024319713881089762737339264279595800580797855645581407235428962545123835785298178198199810431613657262484073171195913310653353207526797333543088681176708862919710046460234101800913787091312343448458207447777120421840294263928301002578769978889546524588724498589021971663347978734953406641369666879438386323006876923430940447197988246771402416983943536605688286584618959584075797715886918239052760101433337127267771044618141864493846041811635493722996072579105600830255894483422218695657465326349749677184124027399233534127672729219184183082335509591288035806879068764101918702598955927304962362649409391787602342213343020267858141077840632995892772116949525608630422335608563546319229554034148009840896225083413292801185662517470999504006595870904714761149112571486754262814686351314586595676208222362678806296855945033410494700231264933526526411193118344621151830968648724503602374404176107137095827220546952949653049293167294262056000619717179575895312546239423132139797718504038935092833907729896551856926279611688503480999635829226158730831765712492978585091194393744648458709555599070082152131783873425566221904807690197991167687577669967546928916528328394979476592003256548202604255035102704578397001475296921808475056010925867838214893434164295978599170774908043770100956527929910303498693184446851209979026173747809406054686645775569632279635112404225218185491220053854650616937119807829639286449813350371370711592949408675131407869704549306058467835359735633956323154249009719362588861722714283150781945188645698037980224588591594610357574938130545938612942797998534079321754128381893391065951011578929756466726208470061006549762787000047639042167249193662555628276234182749900773431056771772144251220289201092808160840884853801464937051705003414996683170305525142834233313364170888302190063115863411113270456783591108321281600193903619595467631114956639850047420600587953178624721607309685028949054670225588986231592698199915620512086232189196765251701886039086853645243487853712557734426156254345607385257007277431070472294419971649758782506083357318069531019681050680453807264552445429794003177258453268249762285396547029231985997618485132158376281854806665227770648713576054859590783411543611057641598531097017127520745266540715821555736566125313787132226505395554734043260124745869348219390749480504489195649831746710644252407566961759680382557657217996967854299737146674407107259226319726448288410180169026588806706382211489062479225814801212852687760712350422947731732307284023898467168849831436444262443131849315167068494948443982519452682131863594182096660822314704159051456492000046443803746325851763600526349969086442133607008975324254423340182472853050701538365909199748888202572284561834518999068244792665510166813764430700692042426364780930507094343198743845532770139664863960375804722373010687060468738357555081441025421778758153361662965867549755717088725661781463713932447036943893273154310929897142052938770200597280798469634426411274080469841538923426515647646580333983826788370904158522391296290550469914550865167556932596134220439624252643038044303145603073623073393722908123588744936298314517953772891123460711282008168257403270424662523232497516809378807738478207992729615016961337901455211059043299651278861927307082523598980301648101733407411138306426487913298674211824428508491563589337713518558872025466272383001520430052539259592984367054364387641825285341304278466503996084415210289152236966595093023581126856999701892157337406940398147438068814801428283600570012144253186072437344456009943414721814472072292566838071992513174275480376918610757173060799414134269949994651325064936200107458997745599570460986758357584622444860231433286267236857795783485016815536386159101226096947688097460306728197800293097702003179391904908747502681952892248336096428791309099358972563815966774600724639270207926859036838837317032678702773777122936432581013585675616214185382575172525911111936144193141509428883023065567871812345107921841194658323476685245301125713931576991366345405251814532996548412796035957688619322104161058425324589998050270159296969037386207103140137899056970838453856494111804918060625940706909396495356138426796362304927969166942568228389898106111611986280448176814280692642017257992899264897997399244657542504387727737994417639353837318119306500649467866389574776711546564203806731029110547295019542242088366049245421577466302386986871022403939698053603387299969984678212668386887550895700066305997455291473882668599460690178133814424996230563217749278689792988368014561298609735914859047183348066292180212173751970848295289497886967480105857539018399759255364071037312634717695148080508117800973886911987062993691131623927320869916826344853457995151117661876854439361554199685844792512825425196250068870913593777670115808999304666081980127533908137732452416062350561880686890207748030350737709823406428860886764322838416318498654817626848269123888342263917463147671139249897537931939664006745054106068160528075349348349935372008782127003318061624656636067122604929880506130190627762216811037569826823333238496779366368784136428449619762629270148289338704767626948134634871215765073553273318407350246377524351769272021417301872312232283174544039887662686357095601516706778080041786719589641029611219375620208545478244548848598747928431875766804910373054222344752490419639875039885368695245398248935441024087917500204696383115307291206069719464207992019568524900824293749003985047157077142940564839061390523713221925798682559021220769043219086782061190952939101297966779513810307215161595388810000083370309890090412515562194348029554516883772659222467249399904298103636645195660133779894552548169119500851862362863093004279675608571389767978515649435811693933850932873544853624971081260287103384336077549944137167035076863944899571795747743848388587629465949269619169386806930766299331710854154545661641690205945393383473656844069773986696854534400730287679482424196740760283454889069351712013395844057360561401571992967576719245461426063581440605646681619353780092662684110202781214242145909744643717831256236782364192166016301095344897343721894673566599867355305007508645904946174163290338955343838115883107690984518951402077818034493683034532260547922226781585036026034774594310257746494113184650627552258500016850743920046927055865735796537406827880190368243854795765213379084948773815378242398719308335340945084366488837217766994282696024408129540650254090535348403810696422536452209661751174096154456744524751691927191362171406726366001904852243037215193547646386544339441744403264642487464307391443009070611152723827074107495431754622923460051024904857056834665200159215394567456357012360932622943468550964442280126751347332000810951797713065524951086720191755398011389494413188987738137816621949845372851675060959717094045027239098592041416673626348044161505572529146827476280385204824736244544444812528980457185957490554364668229311760309206348982654558541133611949819943598741750236468531010671532770990389740797049846944256962829429836720156827129206541317020426215691669928992232174125791486212322366759790714029272759519011525832973464924477776662316871063789505945818432863785623790837998075061974329588608270996018035270230231354918595043147052814204762802510671547292506370600010115855898763385014726571482145031822854524967045377953609348295793414284634456677184843221426629732464508216849931470513764776799456294445857268745807229478802149200546780422896444769226625485368426120716944930558100815374590489743118654051114034909915603315080441555377362319694392312262894446169455049385686911547079597667317984932317621135618858691444083785464686861300930224395591809788593162612684484063993472375102270497301863236479001026770802002470782174563869641625864818091512988310914673744885518319970960113791691571275295824002238129295690808373809447719162210796228948908634325132371239021203593190073503573388707207949855910709490105537058044014787114781380784493614609502905389278718211079194929032238620944976391498436985060845617013166164562577027530368993049561919345864468907031919009034236268097391861500489248772918114163484292764179691609053057485473799794623240829790819873215813737107620835837160474638089228135294719534318233813498910452520155552378901059889979694643487101721243445022637388527113317380445257691093725859566559569192142205384285629723581147661111726493932974397100923890454206521200013219780841815291110202800743362281721272377031504648723166030788010036307188928373932252505058515563828257257819722972343508405501412987457543754916630994915754099991602705033297337020353164296248477344842310764945396691796986460997113287626166671032211684325486713675487405302557603853463445902540359084971481371213622477210998441030926443427364160545986836311040125295573708906923494351885439812785571183262178165156193105001367177171541911492598250794612672897704543158264217967954034923925271122772089393530159550237989138892229921694035102218452088744341184543065547206554475174863036464155190060393318466720202303977255039512449004547919985031919232997730138742830986797092970615297546388995370260962418721959931768338358348947191594547325651428381604249103428068217215355247806751384504703175065135329875362558749080359328283153332164534147746095355918455661325830359862265065791818100368251225014128139387783889278588703048988843201455413031618656625075660612205712455220690655443441343024981616301770175903219846812225157386199061023151763168591412141287432981127440893103984489362212116893836423454968045098321212001094997125928739042428297910510358969604698972688670958017621600561576196144419520501546014710457609112098383686288949501374942821780747937087687668981797203394758566196305983941303300808742587459920322768325723560563218890969801102729472071561787739871141936946377267673279080693678559173545667639900990744362839438414506487218826909872072691365099556696552659005162858149165173786029881952482252829373788387301700095308905658997998911632560154037629028373441958681700812544573090000446771239785787079980739225987262557497629677714718339826243712320014162657180493412888149294611003118553945106387187085977284934680495324989977577937491839074200540106538933562885399010545033884280864810460234132320533178229164141670384137809380342382698496234656378981685066038381605454708944830911641818710626749251611677899771002510584103682021546985814652086632040445885266970074289394173546094249751453599201362387920373973425876535593603731266193801510851061107852426669059934927437705387667138918153481765222518819551045888017146337442325661181150849599067757414862299329461358870209170995723559659352653306500171238518169676660948108564508783925799625863462724221285704375977928617043500920402352717430778348747736790834467596516490296769895705847445109683350661031352608090376789118465021957048846842033188028285514714907874532179192622608167790746594511529177633744384956037682610638088829450547953089115444312438326839464249777723731568369876082933104896402980611566861624942934436159622667557065175887628768078634934651728077237603891384807331183920199426963012544379059371080003962809908474240689576311605704090926235340841421627557872890315075024915367033030317075099110734301958430062866813207858250104744011993195983980109506748993048608801086059889265654328052492719794094475543494122986753990336879029249943825538475806808194190482610129835978610246442788531903865460753602548190482219428650377588625713525314109147614060177544884300253830151175421629453892159340687543568675171243402548992123477497060140173876568837941430883535112263977066332442270438040303923449257224813937053112780614607141224220712645090910158902546707462777605666300738779676109921881879406477504863028330527535116057595708145540112489445598238641469568024676597052425785927095747729010071999940589361909345627061741955965491341857797893935971178084082535230785179234886346347026395706488608307664546697969806878082571692724489653922177032157028662903508183509942071266895795283430940281056526358889121952403793454475469631141878039354208015743374898564013871540044438961128282225984964141443994915448072306484705421262543662373719996041752824590998877022490687905200784098320822368541926581679179962790469209263554843912600264318797020509758625099933450883004127904911594304319086797740803237400812881748517279538954022781907038811905726940290284145962236205359055346305308266594438515334307941797278378828458142179162361470641839179020202507824350427814049334296382160025198108703423584598043218984145131400413735537771738873187202686675905329883436738239802320719730046998752160537480374233892552668811429290171979585068480175749499926707984370021603686239755624539263970044192231444563130397528342324973364809601918619436637532266460648890620760193100533999004002294065466196554512801699914820156732390140078267346353825748198245117876564182031798525741216811906785498534618606481042129845194860019714585014500233821108742438450194366429571713067530716459665946851672505883008164969070723775323772736769438869802593357151517363553556880045712266284103447244749601341951662752339636449120843261761658036645298820883756888593692525360050412638476159328361157272989716600760833059868006121295138513093624323375437834107336754787457533620494312717830364761144705756842940445106755379827072747710876812583033163076058457937497300820815419072487706171723921330376899519441814345500884718074300038562035610970877900635123056681055640573715117105808913945443210333664346470638209619358679890532625397473587507867121150005010840617683770377578949450201910221698132249613179396029472149492386368332936572559325557182202770759167112460383397632798584067132114008385155344882740912181122408475966582288191523294821380596386247913043213576139087899390631317595758004788066440842439932207047933561594771707959774110973052922420679625625812493914151655496670922088422289555386248599367013257958715225408892247217430687301265422056179423922583441656102806201001446510092898997228626278054373715251805528223103691338296798885867661630572153402158479343666817177856295597449534380465785575419137509346480008299435430870134398514925947427929219877479560460785488210733066311125452730931377696707058937578079454652144744652771555117621447693968741919570441500899837333869133080029476047973863397551332735926643955177439536693095497954799957346272162671162105767100947192163885092571358650142967899264552096441418157772022364136084712899711090007679035836860380410165600261612091108500300662241576334041765817020729529274787756191429966882442385305964449582330264988425342748225868695510774029344433746256623767687285797211750282528412985728156573918946067150239300636358877631430422275725034950018425251791327628059266362885460275615137933594090045654440248356725190898884875096983402020714823566932640335131504917301247987691084436239998453266459885670420036667504671998970463650211202983803911093450555330174513311822154601939891379358313369127260531924778103300228926092398169934876800884358819787266748509515301222724397417810214533114285290733291837751555235341943843704069101075053228777551725705043502301324299865473904496881996994849771400076198278799540378245999646524977130010333174169569624847352752350991112607719777370184145362892088874523055086099863952717075616729042876954651085166021111423817063353878496453001619701428928132986423751875932140890608038155967030662343119813727970772229115626915215944490703452889591797311191660256672040035915279458853828982009528395983398864522191155757554783668720366139398226702862093847219724182256031681921358527761780053946709796350856834353346591648284903188659206816355561936563119094560072736056579347190077053065785845709551797579714933011326562781825503338179104939392038699277671586485441828118004757438066041404307531311722679844023973935588538744238330256538748001367786090663430479116056080204108908732352516961346092105846366480425324382608723344766222025386029198232649928203331885157567220464802393523260267714060559912165171716579396587720465336532523252264786178032660822763303266072859300112084190304397545289928493339728092590902244429392365490636703088288539604490972242708127635959399983995941501437419403594640495775466766801423086656478616661355201233764417831987385381616529977641587015073633919326432408991353630095916102082455948245507018327785216195160204042212260772097694434137569119943164400663508189592757472196092336293625719422360136275849553108923140088601181952872573444052784881866341771561229309734041418201017736221268316752338125946966910451837913904589518618683933776640962486297723443169985752914676478660358008805677564820071158189161078326854105981666941956679522790482648321735261643043591386972562745511261605532362716581799706085043920912323670711080210259650447099732528370755215622696645804809429494757119104108142973488932524609753178938570947165169967182935869230184892060905717036688622036670604911890340572710890999788573991907902128216088842135794904095231411187459174138319641632341112814781178921077500322405266441814947159067062217574651538897658056057970267504571961251566818867347619557810955014149355247164665732802180289134660256504298200438703870069400833475225797562339680959784113185951673363834889217951531711684002356489743198281313958507339271321644348341116559600084821811406097566230005081565180342111055060284052753561435291498013949502441360088513449283148828521530955125278268097898557125488399389026000966745788769915722668991993100788537940920209286199807544739624094431942752309580047999283038795469244536280349458239887196082040161818519001031742022850335888473185845157114200732114336475895424153087595315414232389085688046626162282302326407419345013305420121430379586193476760039755386848286058428696122503396875363903140244082556621293117035945024958520025939161415157448404704648338669173680273308067445620519464765629723706956909910833410599233147879507509365437963366670588370364143964792514492711096592146046553137935027249814325987360559190439536548646230343674214478593524397149906187230347824805629331350039879431832303687806306444218257871233478757920652677905434735516509834444457845364090962516367209620498496107117252080355359128191346247299596815571771753782180135929549984126785879534084808776848312488179821711251066138641931575033995050217630407342947364825498143579158040209366584563998616055952514768985064453674047404413957511303411484227488125533510868086441080543948492630802652748461926436045240755358095310549111809756977790816098950076014000185669525416555523997737650697712372981567759044504686605199988829703191805157169092783515758720749048461913021562500665402942355765803482982997411303229575759408473956223529464041094351565134873210728153338686028155097028061893629013422648604242257935422643497307290360101114577405230081765146507273174512250431518944890551246571011032322569699348547593493223750293768756184276214157187854108944236728435076351137988641191689790706870484255717504552887923407978949019412496705083395433408531507411197961437118900110552485241900419360821856464342749894655666634006350801839212916992210907255778275664220628014660560505910807740716712915121267938424745637929035863127480391994707335960341666359301827653710566659854163697524314280993244814827777886389596088118033572690295552503892784377078777179352089274456573565027426590324167106577132839750360625031114020260547917950846877257499009781354279480581557169398747257015470204695982666329495844131837181991378001602662883179559497290707928894450217964372904709876108146973614437490200214461810611809790791300950146943383140522655071144304105017322020226702882231182878452477458869244592040803839976914426319988957028434582559419124420041891208091021287821131150231185570330726611624725196151166740985232844047138784413071886455303008356744219896717341800140456744820752142980971812703882944562285310803782925499748789009022430097623047718341841041918378728693136753932339007433201868762219968659763639705402605207420296808381045671959069918931725711360172154312432509232402636192232224860240961415693060640154937915213807405497562084486789747680593973528539894427758012998039835872257293029373377934546327105712761890798885223260699662101281859895810934416151813626825067357576181135117128238325718639022390072744452266650629857929405964878526774708876008638300435404172934994529625240691520937487782848508993626976049167870743771517846958934711510364375719058354162588082745724810844061305725709912143953872077802210468987423010376375852051224728187880139794271913188849951319366251004593979186385238077207929543880509196035458121496660380853760168086555911319329055600322401622279399555892522689206242102484231856990037434777255939022963195728429093233102296787389335817434068488105270176950410325405181493810687557793712968042187884689677530236297977526513826172863678945717310909142955647639035428269733457338247896994878528193739847066283251483406965229672207028466908655500319303442704154825530580266138656941050525306847747475316257360357056904401035165015893884509214251549121534624915907462483457371677463627018818145560865075364001138129888517461680400125652199085712094493861296302663702998177696452571724135457515564009621484184735977988329584943695908047108911922071413794135974442163200053017171491729546162164024495504316150746434094141770078083893051409583451138612098368865426329126304625358414423690957289501394674371136460069094659068911992650245601951458465158412782799563744468205622616885630650304798725811319362020941056946292760584886109644560943628808698253717749762791618896330220413873632017558572053977164177247080697625868090743346058268331137812876531122979656286770356418524440401815910272736464098593582934968051475483172002442810819682582649866427193244850929316738875630631703909472019561555716658808397258005696192120917430609367021274941254312802509763842277396358297545866462494560974473791696827249957468686130598573262446229310464636553131488468180161435947307928203359367682567876572123191018106836775168920989765106715011370292970412360139649232424409438737762282940484808777909689999063838844722624571494758575669992897068629912661525422116455805769113678404125884821911773012339914853688705599485626143907857308159735885879352546512278332534577708597494045612840840993242043267770923429227317827587280145199106734384989992477213078021539392691771917362792501908530560524086582211086536054736708281960725457758249828229628485770533299912121584454523424438162898963134741631391893312047049506310816345632943924876711923078809027099054031911663210021844822663459362707584049838632936760852173110142423589998341658899101298742665393670194693186598032586136125952453110912868152940305947143212395548454519048316201247653273179345199435482765265664408033601041984446853019406607166757367110651278899951020699556792497422819702324809400630367924520502572412290222703574505996213975658409316569937686723718685185011020896286758712550008744195095446701759315656515596421708874846853760602723832375546150463950174538688766122975301544831793354692177300482119037763509428012542955725461592863741744181900629037863799256067626625537971529220541075561043049138980781171665469406084903136390618843273813904452837709736549449150274733004100003658772019216392306403149427543209286238507040110390929172532288592967741706468559275946085362952894884688109107985153806593586517358901675953696237889225104660986887033595496212125663038206229641828223392568337434864199267657636551697882924547786848481206526482152408663496327295074374193591987571323520525484450558382833005959476272315548436089741002438866433354434076829709964189004363720797143968801443321536855389232243077050527292502020277931231629918270289575999387607109689681665314758938600863894933873879452684307987864993866366122784186031392358438611460958082800205790507065770782568329530255330797056538630420640358941854105981731401737483835434307215494396464315722892291670171092806679501926358896127975354512343526645307499713510489162983809354241047588101860845073776084101180122798495202473665375542998785863360861090635218783861630891483171227275969634128337434041000304397543293074240077960096671268983954834447514057954806186831987391515271227758089313250407332821849854050527622574817284929398752181300452425460126276569885902460011967728336481187972114822232352152069727177961979071897678904030791975731489199489712799965563502020621398377141924829989570734193234262977383050504737329985116502701042946429961077014642750473702036122658640759150953423180646028636879171824026329350180406047763414564699983311151437345126416294680084509431781397941667426914792167328859248512837356631197296136447363940206204779052669142017322032294788981722747714749016368324624722615845092232153983137054677275476484384743943025617581125370055150090997522070269687671946238058037896882254529869222096699993298517844651962356586745006745511182230989674392102706164128545656178658517976135640835221501240559359028020181624848781754578663409819976043776998739909957230408674265237683151443949752744501673407050870874174870974396679608595585071257591212985038607035037215543089134678450097773112972131868819821158379355936497998022685527170198167563517522479253243174794626521163891513449891634789705195511223265983744126106481171482431574626117146144091803341377300435735810149987659888224763084921764407348024922282288800681677861323889489547316025217423609379163852524208800126743323571267095764047311235400141582447287601078389774671352319176984194727744541228526004682666720348668883191381274177987262900732451727735482383819942058611703113741187951259634147761177364640926287436819234922215816887687284268072011634994758722461083214913304965017819569893230539066611132219083760638081453172861558375038437156364518538485441988153635846186723208397809730914699001687976409414999027241305973067233414023855675075753992236369235848844034181943790527502052214636218701254937275509120166774315942048034396671067389724886402730437894815988290025719789559444329177647022432714492264674050860721789328928557688758421116535018516913591444246121847707675132736572217320252324030136808220668997778617687606999817011415233407608432859206990777991287353010647497735914092356944474371755215478718673983791764551566008726907773297699889159191122216283605982950146824859431407319584128494840925839865645823268791484033320611522491661705955555283635729277735458420871871417630238528923284655793247731721160967362103400591165214843954024596544150289163977782656985550564444054096258411582580540526519767349315252019430754073679557951831035957469261641952119487831862099546338867128545136290797246616238684559284465097576722196963031988038187669053493858729840877483871915950249756215041559999395140610903535753928158638738157814824057787181213566509913978127251700953335426616310764994875309135518597613162038690743453073496958396094249984221209184681477848818645747544776458806250946723346034834921245416955881527755378592794333090006487332818610580232193011859977220494768243216504263804263486559534054178199037999427054844695454438708866718703485683884393834949128549376322470160494540656298008907122230420455719387827290647335405815807620322662546998760563843280089357605801322410874448918790456534503529134760036023076068031506761286677586188273432368519376115980297602157278468467225799911734223693167106766616917537498755846447923123178250011422526255928035711613939550326926885109038253340355565614163945189980517681103926269974891616333972628783232944000259028645963100653979506512369567000437743321409632604968813501038323560623294349620128706627188607007122775371441359394972918589621728200883941440290847109795543900748274264716901419820585095467564620960379698193377775876809540347664276416439881312379330185476650588199887781949082705099245459696685503688327704904308108979659911293645858290771761210427677633742762588458455542790904725860860012614965124286526637104857711250185300208579809074637609221720585604671808979966555398252114997339970467258586400064018669048655346264530050802494852354202791655832080765973806743495871659569358678678353485768030033823060830873158838714328077218900488839801718270081752978116814075306963618336339281276499030126832971688922324489998246333531568901078789509165070704885725728809531546137263667224791278972893542260014831950400383323362343147823962192404026555769299202486833500667204901473879421132832958482003303601671356126015887628588423331999744826025983278059919047988294664918359032877987307719962944693225735730068444751508436076211523693974058741673544305187357094877367749900500431296712007494739923225494099857516107951773121560497394511871456171862126073346973765152586925828795735105747294563556294508571924067318240408372862097680727215799044720134720047215356861441243968741847128874700417021119669371941809663186768911087958996970317800077017239866374072139017684871735761585472886156322271947281008559375641434156770404706443472240367485013488087687991862319512034012204829195260623644891857577452372206479254219339493979289201745811484960309780582423938220717069151052177667170222924341002744060415545387796803681995996152292697358690775364302805719799456099897485052525181071262928097185378275326421698134491406689014929495560869134876264039316487114347889104419142591888861386093982537251745621538846686934505660424460946086450885060987875273791230244256110278428264285967015509442941896321477380850436680978912112933665535207710475727579348186728988807099448087147264837228592261830333310996640996101247803941010023534824465533824431648907733807049835252312316658083700191215597173367075948092830596148865251587315405178050917451326030552928545374297760382196150840339213696554463982715652525338325048301427485347461065000148019389876006271871705826376471300441402109070191909059273345762556183467301153557741325423049210487415544898916287379535198213222909280850673439967395441096849809951071609787894952191463357023564315153823653656460233358112859739811737017254899110880277873348825133131977166540566279809170751559334576839478651222780980325978982693143972763535681066458333301381240703094903313778239114340788926277848137373399962605438696372195526520944209707480022792736336844504494549172303062639934119373012810456290733133848211999774587460786470104947784875543510200042162483917421326188763737777447418078849929240999901226877595517565314184622362893986330326732039011273681381636672816308299110162311722774461046558531288097713653989249018717960360650349917963776851188332069279122601773603271954158127678162389472753354152488510344066576847813186208026819008841282830892327061372451995489917814019726711801826829853464872706551893541318558858946294744938937376995332850787697141457614478818750333791066910094998729668396893915240246092543123345100058763003876306018983497865940983710951958206151789611965199748012968420624430556447173011059250278239075999761708496666611483390264265923626700047184577315786636175047926442276036062698157843732754473680195167044936252806101379559244812306471198692074311390396999643639472395655382376185689130407002846288382535764885004850642980595578396371818259924953906464361973419137626978702247778088941226744079565907179150136992890409069930712318407196396001689611050326284186539769482927683635879939957300606407167045321108478313900401153681317168379733128890170397634153368705468739598328697495327494068544348388340226861457488704326894240292437700064675681056427788904045153329311727356165877130785097329080792602507709939311510508517859127432473104973604534101193320187880864125817077505386590080170468562650895243383140972574979992316648692575182882966566824788982332731817188296012395473121267671916689336006000303262349291976640324849796149732507847893924991508547067673010925932893679265163417327422466616483366904755064469040197345342890826603818576144654772793174553544224428650866061288492566096849061134198791544930857450668159340031049403876666284020313057666981898121302464653586053107362498339442687847238249634217064431032029953018671196121392711242594188429571929384768292194138599611103314273267948999197728591856714855980910156232065867601475277867558351772480634620658012377806374493475324699954074737102527146735683497192772666295011243872951496891228119383911831851490587988970746441471747017739345069271977625631089272675024679412265963315773379455930143945380943307177364832461377680780603489764110802132535375100810153314949024569801028750582927756492653128587911241611242236840062062649887541964833634281682535990782843225662252388059294273433088494874176454726289884775506234743889283539708358356447234792952278668898647590837065151434964436445832409825299301557747278819092563023779561137899555781095147298485421619688221992278523172055249008041320269051054274174344677058632121709094857621409375031322581805246112004405574015566896836330897354386290715662396255655488968704429851792535090701269852900379372236881109401145456073918572799385440159758209248574566893472985557077968100651170901649578738940226324024878081053501764072169851509260372870782573318431540347574366620003206143632177886507947868534774702592577129955269059979765617251374382095514832142243003212154307372395782134882704449525328857577216290824539819956806479198572593178665941544895542827161185894124019826831939335541058760543731648698629411159905405416388949569611886446086001862566431461177886653146459552091356210704904291750139511645835784852043511072608440801686658562846620206337999942813799516497663340717409777774665074414535804590702725953130894152024245335778547616116814422018644676521196014394860362846292295981915887402581416046984487169204188138487710896353420972089232018803179400119787175367612033591070775654173042516357932510034915115269428674443527230431189693997026044584079818793376526536638268718274067180851154834169890653499249617624624330658320315798221761712696438486664916617143988439837313268192059539735958595854803750300602050022356773662540556126033488360800128291287791009426296567206093795085016009190881771861402568703637401746773546059381361765275800354532439508755319477581924402593509008566351735750026572703885226948293903527792392460055424850282971941856000494357842702834479071029723036465673734916839009538272430745210697327165539537378797871221887234439797291881590410737975571401987982058579441947952753634551771243660504261981189058680108940378895206807542671735149506616457184655454751394244477417734029683659442265802629248228578318947767255633700222117548272884926709906197086853887327458591356826074300127425174078453215768175026105105008351267062444813663564580008309662167422655955770798011111202512555252530856726129060323892815727003441243364143176098979478771926258139636980729041245244845512550251865134248020657685581419541024537215397068242566612381202042756026613248322527166198341794585629891557749672356256691255956280210734139286837181057507846881266261618871532269735031057016902406750981463054959383103139122450571146723673382402828798431388789819022520205278296351015807309421791958380856000698407111197349376033501219473769476934940757242925024154224807727111129328447090549818470591119537155307405314226275914204210006799640700585198697206881486854916245947628619470549787497736429942726553594201863755866804833153353901602047161742064756779976409997042321884414765450667020603134242699350186630125278836918266121202405909455698353514986539311703386622934714669039617982110810389320542625541142282332336075790550588347932130815879783080930645947788645376598799163554568584868979559619201650398922591673141235726925125308641430354070956435948666336528690215737572787688484546737593687700182658169191327902088889962640591444450148386614676770913037906947373100404726104647168371157488724766850666342685337287462920189219327076894299936148033369882260672744352128371022324295299005263883777364558739811757283324011767623291222912139687052595536832203983272133749379656023675727480488185200540076207585001330899267204762763720288214514174916079496938392974880461707297790315982958551209752319114380825279621977483520051696720626015411955068963389487810665352281509339201720439615299646300102966948431014209140309235376962392840932891683588966994163413489914347536729437040701647282037213670198205846420399557817397706700627942913930540845357016209692559173713118639645645302593408626215951899473771497096156248077463475537950491275064725091085576174964148682317819301488931012559867798478218112044133609116422332141455534849301700872023921705994386236672206748104585495777258960808035774022967863267753460051213274986381965102260941483807591969410972059405257084754671100369630360849444467123034190366954917596326131331202550433443643446268963836090073334142374038306440590998186938953247464766008199359594896876851668889154016849599055044227482418119313447260419026315894108665292709068965110179976210627802154190928235530756739432015502925476165741673153718028915455934256956866537956606091204858472765901936038075790459569957402017405274508092070347066217591042038719104471799902175893346916690190856967561464146534615689868331423786855178928471223613149227207514382250790330633723082292357721112961282668905956188120074414293085096530655913728134172775014502220331511365249455826146023242472165976843332570617198761248500434228867595290633134581376444385128162774213556143138487837997922824423718468315249224494388164827821019856537721046719656892462323251924550646273939127255929969386506209231057900961543403702260662881942190402366284994864319128980373024475928837800527998771195569197412758699160669219692208910711250315880632841228788370094970754921059678208832296668446723775325118342666536658038826799230711928808488481376480981279405402730443438548333394637632826342244074493935962405620662637768748627665240952109873570990664787537618727459641057344550703424575534936599181406066566570362349059771685286111812456165906619728608980981349686574504347903305410994098251001777652199106933927028441491652138184208670267987800473226170627581160078157282528425067762666387606555231340184665711140337031435994778568353465774614396203100784587017263558276643960855809053406082711087007886140357066706107301638497790819081514358642893452172054685977694070639200320483450871275646929702794042965410947224859665496072562958444173243347666245616328445747299939927625840778041685324622901907892418788947353857918907654555194152154939302574178964315561479655245624809731641091432195993498330513221461022256066498069958769716143795867509563198379794154700454867831942349101944424686838419261229625510368123627857176766859272589413664918188538693241373104722036767856922213083359938812336076725541340655082029050981761271281317600672885605811045338760187424354540620090844272901917093393777919315509400268287363051174341458486935314443510947382004047223159729588105083310900061302092030112056539891281688847402062304059438249180023275397356287276828701785134889691825980699852960737062134433372619718698388775468354870812371442540702985731224790329075208937368310258314046277217966615714899859536007334626836223260583700676916786705161322454637829112798854220079795483642184730160327344380984397143450406759831058415386330183807127325760068322036965367878458386365191694546324917973597089957287682752596355731268911732015987224792914739058355374505156771135247676767094354514703478153058980784113529273750120108131233952967233677815794868995022791823572308796771915811777788293956740996151601841331003602737171463535413947443730093135763287546390232415653536615384321157078160821127438812901882703848880694843873154920282517297585235493770040894353993600053953814059941004898380474211931513247787939213713631073846410056420233427782327075408085321750403665397571231582895245411211536634755892856010981730561493500213399299364493712946404327783326964672969528516158646551950780611059196483549825326647359064428029663611097639286427598456166101745092760068509789989411787270442664043195824234856937141136582389571823437611477287171563184526125417680869815342507624136759831630032368148210551588271543612059079921648645915706784676466732122347525398285035378563116570864315755390538125188993887034804988811557684049456076390194965863293804235006888819717066708612153051469682321704171486516983801298382324426882751825030537958008289848333592341252475377881504077287177653328810480039809627322729989523172402813392881210684981312781062037179311325121958181318092878412125791397003689488164189504900427523071620362011255458171880316498452720623985705902318627990615530071761030564373393754119078039474663375497442638152308934241847538557730158355585105233963036687925480900826092502121177376788173593097073410477049608499437707022838241269998910843242734263384652917681422908048112984467643411496244955262941006396580440489555269553032949464678112292283871648966138814284336950747870637476690007299154730641627522823808629106900516471598031298184014483773556062575430413579612601228939151262490366898864378256133332780361251279053541480514719867825064192965436132583996366159321008736907091014801365641502774053259075353489887338989511393510213096901775039319954998283495863361096405560362157517187799871932258819135994644920126053409235346073806793271651862021408413951054536535495802850259029642779092843863873347705750751920459758379296266648966342758848259928341878939255610049527909130356618600283309367629378193842583333207917902445090331602504695507185678259574138533793942503694187055503739604398839037134048782735576475427732667063745995679488006181942840474066250983966506967766516438488929878623990786737615390414863517510336286274708130915454649695875780685751321283655924651450441007705642925035285462404600307299351133534500205486439962474996698545897591986129748370340082672141901398651536119535137176569999241819355995554053275450540329411336300747119206214410886349461383325389690110576047506783686205930340858230227329915593680458806151784889272286754173137358599915848951158464887671917003051302446497451157601598419607587184970253371293727761297562578854148316277248886812351933243326340798858817074928577540719522795240845600858922928700450871962382339198528162526633652060507977701123598641181052973449690359565821128381027072581465967417681759306917608932256151552641683913082666540106971397988452792729466471219540240992495347545102604323508481527841918439278455370607227346599998908830346759900369078621524707377987787881191846736388094632072001720023555023119361022133576000570725408011136065937758359231042094248328334482865556109771046651328251857137724246773847792399763005218112595793816223599663471481254779720136858041715064437984203148201902044144284068636033501889618363325010743622098355900168818097338494616889526634300929968936256120455473463952435969072475483600439856567135608242573925398651218964850146657104653988399086736202840997415643514454752287730245423218569610782296061175269297646556095517843736799394679432101501502177410375234152997371019536884367629366182549434912635468191624116658063564389652164301709776229535867609176250098112137129763417162412092610191207755499596065312928517883233579975619404553150319238231591445698852856798690647940970635579903013966904790223109456708236400828349357131509022818947473792943284529443873903629968759662355734293542491508717815339381837678681854426726378990111534641774182295069464128758219838511215926126184084057619072228439107435758703533282576846710841615681389904857057226953033771159578263788422493062767096767829890036021737900493576398069446168322469155707815640466059498408126659517664438418921995676488965632899639120733995216831225642893186064952970561417588275814293561309733015536337052541854013304354889565738812132280368261160736282473368957163649994161096659274575689354393777428637349925217978417679437011787291063595349154808965759926089466378733544511106605229914796588938339643895530860750474254935042823943115995951192915819580364354667280575557795434968942166014279756718160575466178408137255570353539423871953335306331263180451438409805812081887517108392952556807416420087647580726568532328873443149896900904440208463255914801621437597158162262549816140053036657349857914162073442715486167355128550149244119669992103792194678794456397274989860995639817460627944786745262900766299803090736535228236295926962829323644124081537157827451840461420080267899315679006696786847249226779335533436178304525837384647379172602044895816297221753432922228753811107439444998292430973541743719267754943799937702990654455441972603026803256216150775227715434481002152832003913277786801258126173047030835994220789160231891927796078985366418611810559734346861034950156805843541988202665107858778440731166484708787834146716802339029043116669619387871003455300536213066479414109479416369058115924015947374924974167143477295578652433435353336112490446765260949367939420857151170834379612795386379917486185167853964760812522216590563977164423589656227391539810648949643581990329047481782691596132566950730561804036949464802606688482337941212023407788607601083737199378183169802902464915158117819021134515532075495331074922008364436090890320973995078154292494932230689738999829458371901884774521206920419548550089072247640457169009284568027867057215320525414592436522249800402176005350394117935440661600109905839543433877541475486703839707406219209858798531466156473781534102923346874001142409262395642364962594077672719751728505223887802827126393250452133575163204866224288556885417835576560910989131771998271046793146957032813864231271876631364426212235528542482438316507745334533602091799883972705120958677435102404488821791150077541602064358097486706276193065597475812591481501644212695365345373274126294005911512615798897633501959615140530625452161283864979670283116989696763478001533678811883532131872802793084437372638921189782619787716341965009417344842864360755893982778270637880345988537444900158138097982822581855683610864260436173063668979176654546827422299088487983251242661133290697735602981269395329943587388881984642063173932171218897696600347689021698692719945742207145099140838802856182920753608609889577308183669478140231478069044514214507769947750169949600123803059044755331223955197588491826061621591268156376850205053804011316351436793207337846118265689598293895254157425349125314717308897798225438547410150186190168178444180173646667049635276997546469259600256935675030015032232089893004887645668877387285233431028576044418111730267936975483145174461874197433733550656867164456749016924995927172692849407351540146645425972613346938423021007911373086444127723266824154564639743826607082683976944439760553049261554429573350932187811403591635984269688450486487718276088690354511165391662261691202795263394343059813711969944777178226186842515145564852107632726764689390118529630109772653491919226786743780389895104523351119653204780022836118877025954947254515931499370629298609090413775266606898593563933013461526414439996721552002635840201516626282378631794935465040760385782871971076817396435552183042533303727247648082806588107554841249137466662576200775675747210077488973180730974769818477394573561874923248652638866803061464797526227003262343254216835574175212454642198063131804055492372494873859562802899136813661545815917051904151623676358430688282202307329856349087961624997827201630323524922428876623905867404866441204620983688300833488722684062373172006703332675504315101719605840100386123036194791961949295098283002658351182988253196793770011997824569035676246432128442377788338997248182352464023845194934674445339364742996386789001673234249939162031381762147650349282174549197507326830122281002390677019209123236878384469409746704698022828732288927572997828457441559959787997000294336916898395091162506838027726112896038814984524135274656021880827193071790486399467990056032865846552356603639970110914518551815455951277372018423439630430884493857253294757548420079992662806326906927341785451688096635337995456368257231461952184805806500769951210273701919993359327649306131833897482372035113216466528662807260908424154513788838407744793785492147069529310654250761870380571519748722301781736870823801955821932683186138505822750015763683919076598551807271333412607165010943421983989970769555035267339363204618099327420352878098742562867419647240500918065894061646437006703935236403967547711120688996930138950046453208565853711410102143987344332374807587160451976533375991398602467031305570157504502564676335609404793856429975099270721179407247551938001290475595675828023996436667969293440176952823014097507250166271421855459989639147845033430685056475839103915711230779890232809945832934515456786105873870350542674614602791131821654469709658330960999720569007512139168171071251766243080772436113109697078167573702747523515384908406246399972826133456116149832728557297926453095719733998996014610075449243354057973916536068446704043192850039995248352336944078751749481961876372447570778320042368991601340212306456863225333769417353140764352308708463671950050541344514127975726658577538820536500303179411877407713707628463348066077475088245531685166530500120738650561139675223771461269158009924547629751128277300199964960308251491256007459229343453462750832330744089280804089130062013753138627993890836501893599000119423639484923050678919351112005537667949567600129148866072226897128503017649677764035047394429364972584411169666776910734058010812052581094277558165528981819713146959724613909574038412526821056917587470651004584655169860404011308105229934190712014031201204624762440099713517178996370207797805836058516953319569102242211440052707554463957458125243487932338115059143087583947904621068683558436715091982331033933131938006580806441710109177373148890024815440815611861395954380470695914055942307941529711051872186748275220855211840653660236696357554417494826311953092693134419604848751585487268246478959987488987405388413743483067883154944877058415195399582328681456634611971593714180956548770393861229754592404891831083086469569787172145266558194146438804558084162074929551076176379564309824806964635265058443622700169216898603994374360959870233093785622813467925736041583693286808715059267222827281417748890094163805665851766350867001548124562760624230077306758902930427866613500911963759088023889891187207346752880309362248728653202339257906700299800192396179142442007330095815000637066139443142239501405957309950413946070164140900611823570450038637147906835504240605092403181623731204558882374868957340101078853504953145356399061645453901055075127409065140101573181205090120844432870700921693685797291897203665634681752465864522856743068406332508624243092069968785953428059682066399497235134072844876630378326998985602430386816925850895199466604888376756940339221629152411968718024222490578629832232308745272147890136140095672980114224490459712113299321262591665260755544635181128295075427312588391054592382694155876800802638960287300054900974325486324016913287059295372880676406318894541931966126899074742959464106979715919043665306343436430177618332057372270631360284540709667661012036597012980689302662882056322075410430913948504142699977516599663084272647073488639855727390251929739130361750771462416572509075165738347366822909698278733888543935458870951209554503293835051826031364245372168650411047979509916457975208426183622364688225644256143679443842253881112356911623330484679491859653103904188748414739097113348285899189828128605400003141448697760152123213565624717077911721777630656467542713739697144148605144962999442025842719422148905280277507957253924978795275643259923823116008843001513556877020603562955039994578127446245715091444205078292831992344724045795997814675613679823036196444475807206189540746076650996444506602766316058491316427386482933136865791297504286903487359347650154584256454462959578252244394392308277187675157846332538770258862615509214299899628514465975909173698144377368644539672889570827202175568779151470498988756467694915806032277699132847519247651591783358956532597725724970983642227409807376184707854809401115699765726175143449172502015762220631565876749853652103656707154827511665228164924635674847502584142131054481712292518115556129297910351089462566832037984823829757291375086623716092768115830214684672281664866413776858324703178458151850499481603805125184092586729316114584186593098362628138361008543266007777015877243378247076590471096448218896149450892095745263413667872664754983639968609278192951011161850728713739195853392496739824504327713954867253432267885050718322672413260870409882042740539952964044176734548097772103354789813107698809476545667469105982191281298264454146967618295189165332804570640210357179632713060529226423022792586798803901686378983769348527893471327330908182742927591168018068701369826180418038285349380314435641379630177413994961552140867078180704256232733980998910574104635734478329946395636815349449825794795278116375860984323308760874127868453901561728318030619905474434226286082811630254687762856572851359435160151729033622353225547481234561645094854422945914229503902752529554700735671227887558955160006780650028408684190038768113354372594715098395990625278159154489745807443199108890778087091183933086323868315835029418317137845297312789142972469066055784027725618188285611505709267172620452053055238866422878031545383762403909741234054129974631341508528295540369384287636239928718567577886110387993608678276613828614441818708543459481466813519200550430284611390156295262379859756085152645991472067532554195895894006006401027764994394729293336780217450778478672559707949104711421329978533954633489704990774497213411658106828475160153983903101421175191532032689967130269609375303464170946317554911002658007658226639160886829099450505810923683518373850586578975763841030657873107425746093791538463277742225450517586370120038277929473052838629514229815178952682444959063551465154142906851639470179939365073092272893234292681998123783884055650011380376666614609793443061576691683144202048467800971924755466621931455640340080097390793366471787831936569125941253759689407755026706303052576925602437520716935192417574786937509349062922105716541328833092268452287941569492958989832510905061715145988746740976973576509169088435150735639113569586890208957264922508545699110884818365560556564865832248435942354415480613335425659956899919140146716212759718242119849443757480002382598391951085355707553931328203366416961590679857819640318319790577925516006465668065267435843791149775623944908649974355594148334050628615792313336178254132707594908375846875587406316377852292139673992719199224512421308205110150355727520651915737653633592125275397004403793502916331983122958312148500491988388799438564937378351947611950291216308131141172301062825652640016801689274108949156498837736181796724003878574711838891321760072481346310243445027256137030670656070614333276399257165987496475573900027228513110223462342643474349309339469403725721999022013751310311839301702737831297227003914218622847263111175765415831832818127024796920527651679187726641589387749088558773732521704384477690908972384234601564763553149614710286925670740584638783636899502593620638420766399506784077275306739691660586690938309614299330835986205159097578168191174488566343695071406724658616711078484182136049797936480588756442238628280557634816277557893072374853143685711506041473613366500230963449658889709653758781692432588692420948003770344378662744085395339813959610665977640266258955725492340204935692301097730872356171442580681837068709268688942530975436470227460596285489990662358151081634079647932670122683293628232216944103503478348906965278517888104682325730496977007123263582747056808782978038769793467047129514263889295111151295585263678639645657291885844608191637917219135592048752301463505923543435139606545245910397312996710847900180339804457799379880063258858732854006609248281946411979944480109073782874737431678056205687025569367973095514459862582300012434562181067473541819014806727140130182257013743600193446238055060642878728965618806027226846130607393467580992817735132094747579256188709414231399345171614669251815368799689407738941333027655468774727013075680165716232598945550235632768955562987335698426174405520333621302645799653038421979350382406885690727271953109692377021418132186332406437255384458806477514963939368870860701695387085535906421709347020268441108734181361437057804924596266698060081757668148992184264582153671025432216374848744685396850071489912696814817734476495962799962320333619610042593473452350147413292387918541147420130152039065390500997005925745792830116208312407362197409156091744167976873877726246821684772034814714931085050009694492225805008332285416946966077960409658617187993530017979355048677778652972219615758065930631275985589621490278524799417916064925052564239301262194164362382179912893659757268541723029979199748537065463926774585944030684979214727146745806866727126645320521631553356597009842907746981725540090331207770896091072057597244879074113986317894582925784093468232292933555542697260131052475657562353167949849425533369345245889770805657711121024695205601776611431663174888173465714337010449891343387779389579146781739879168157986194238249481130168226929308665119060925598485807745674929176717170414080334496610485442384970224892801813965454838904786247652418166688392275539550737439169847533863806166381725515054372844746417842792243959722073227881782411938394743393702939401774705349695409931941960373377172688252966299511440731582656645531989543909637042565456874275497953277706243941133922201474139623282638689098055076364300872105557124896705757253289876999631294688185524976897859782350350034471943684975741425568157627102739378349732950416147448339586391075184331291095754294107285248904542004506471002686157287110912781274930803719438167974307128020705077593090072316986017468825213682161218883232187895208100129663020060452217446522345407536002676034717250445673070755166915669582994019098269155078297690106435796874787639242664400267332517454274254906085483162926599120365994684978896812906374709697647924429271104191214089354332738669749256950928966942614143821528215889502039959217688031041699689026617836594925355164544911356576215006070265061577964340969667812002069564771939509394729093974205651904293928856376189851895057031232190788860537115752996326330295080122356266402333921646138674222362327335755669766571154062809839418268470232324213601945813009040299552172489748045563891818253023105679552179276411546635146879951776878684399930795683042844589626032882147313031405051020054961028472072120695521520217415455303486094990808687237973687669180094032050050718906369226432339968441025995451589874282724243723000752873424636367913705897402519525584931279360322774711586019276507649773959354778684177059968337118364976587315548940295394363925756464248466732845101549448607508189670332806333423996779472149720762266785156761002630063689034405893333455420921333968269549616183951265681639620327649174023489347150700908463440522862455268678532793633896961096430359782792904185129416247760886108035769797733665500850516260140786356686688491256301670865491016908814865193579468501095220942341138894808270509686441703302837985407266995307266406383406568899672002845883558600047876391274358510895615243112448654052216365719244868471590141092819046130241486614894098281819769782252731541461508056424209745790986033351694053511786812465607292227460957565196652107039443906518409766425540976890646065144776571297789518738888068861024634865464624645321376301803749642751886001440720006468044303824002700291854636221348510199424332346931680539601170241723259956242342124170358128117275451443117820897854974783174773106842769544493656134834510713880283165527167484632909947838704278056553672220511310684395916443749358179274390670969751726235943841817515410791298375725177653139859895944932880282607354025721428443320982781870724611964033984938507629034454643324554587729032100868097167635080589479508063256794158197450180361053923717896491838771740566014960819808335033539902803768706859102842854501319967543992993955887531104287714559056474624244937472153208640648071209768284435147780441270275685396472583732049157853970402676863037119087689246257204069592230702176866391783111866541284288451869546564974553675235462243631835557674526894888859826798679688550464874401712174678859554321389550749422129829209142533437103456181230192297907446148212839770197339144033916915228403064184188952050080619244379092613731484207132283875929258801481518497767606552446973945743953906699150147316951786110902171257103804548445197126367216984225309070544575911469170338004754263711412966084338604362747113148097006451375752869184870366003441724642359803185170726686720405950721022352039375717962137575505943600355537103070923671263480340507072104566934298264444049188907697825059125353697996149350448093494599834695952760063842135722707403220642256920634159220386540960092219518893989586228795031456336041516919352962303267891576760181878846553326510696178296082650879134214040514837814128466426632033253100151224066042645878116587361612613948583075055052396171983682836448839419778439961178759117171428267457634462192358001830656395769228695159105851644137688669192661273065726073741433050436443325448688653539409409376741948004696644356625381992944644232779730438097604594536790647930752770028011343422267609353180914406145709140892862238706482137605542492734004261477516006422091914764806384487166208737236664771827533717948521002919663794218628915277398454068797472057465219596927579207528360177945149063256401889841473794369123608724465972035312153984522462959224316607633641021731797525078051142505778691747010322134132144336760084776606810828253501799510479083356773187537815896542148309692052569388818419658640908310679624250507802849617360006752451857145608737602766969642512105823616072135375255833643705763357052226692663881866509779119326965058798968497432808391571775809293445199673606328287912201694446358722864264752235205011035284700327635538213972571806567723684036826530866537359645113783963444947984976949276913872472936716717575313513694453426435584678290024666097878244128904887930779033174437317277105314860153135557100699511463812600612855886996076561232721426178905071085286370880475847672783781355627456969131730593426630199909831186787091947798267765055444551311982784921296458077566831441022202221140871287178156598695515521779809450293521270736721305954103883744696280491657004043278032579406320280696476387696049494109048501688253344630607330756130033573491911954614737748820771135262243122862761846636512522415883184474501403420142752616666535981530985133578796603106241679896555866269576612822434172474719544159546231939017620620051962302987666186221712893186170235867859483592808647485927616333647761889090959840868433134780658543478831202728303183164806548698909566259392346742034033217296126603628910646425947721023764126249315995967400258418057491479347422673066493863014889812397042343480470251837096714661939453722647163814956883179454905496692600511875725520872539973440434100137950997218962511192876418297854013689796474749244312339506528733297958306330618926611630427239086839831891342887014642195745211894219636682141766812644024081099810680375132873398544494579141532433174672970534639095452441023034554733010465320184447312272918996351170036595878042314329835143584683203861253704243285122985484650951302125672507885703881887411007859009615920359784685875397964185508917049402055857589360849342657599984730483282389473930925408590874065127546622051820751889170470220233220363265470310209541575928604612831905398976864499584654430274655050348017596887189512142033182802606306411243489340270587325631184236078772639272872890525668023975321045362493333797831044784192168640718248166726588800498461160042053249632215302973787735429962127677206711185378940758009272173455131591954823769717586065507506847611514928389838182731123636994006294839964324613424998154166247550795506474222772368965919134343652102171683690349573364475829460665737813027271123155355382088590687760915092856169899407217302858885245534869702791805047208222493365300422626855241555189875206046595051259881646089184012088340576182942914880691834045911474095270885725575407428285382043271936297303380533774867880429676423187825707958201828324708379637999682616090298214058383662910010835163818542274064630125424890479528044498660757075525110246625236527012247495324373467749908058946588015806095171374973046464637195459312827112280843295139958650226796233551855401235947929689111053090060958234928532983257858925396785384363440924577104178035591698409818364987868572707875810277378996894866303174055505985668749023249335525170304540448295347123404455191079242714991716620229479097722194155998896613979828457115929826741042458954559533363087683927977073668022223061811746743565942660845933720139488955927500509801771518730274430684172868183693350087135418001527209477874684310807071885715125136864278775698992825612338187464300385046430670260768958233136955514145404024728467942272728296635565598404864319007251161875365534686949843502418497046943989572384875668432847924673192115823851881362564715920924045931263295144648887138759838804463441046168180391992071045026240627706732808762521317280598126381283713081889653791884899124318302283069112362187232382320834000473977141191721772957965760775947224931041060882691115747745030185644780816297858006915934187107479496083921217159135054446453918662932118493301477857229647344708727777069585910085724668924377061457321854157079367664945439717810057995656260214915313005614108170468229756455030321494655297625425980756004051627131507777698636835987170722000837720173344900106748362025559231127165667103576497386641542256232345420046744883228754480970008908987121119094346321679750738059570566508570756503857410977133920698285823197836967538680029977395042233708711530019060237350209363765010096035643183477859383429119718329851063314407017331334309220540064028920768630101904449737988008188795303501758947055330204988793252020870499143044260432337502656445199330042997433802081863148483484384494472700081245195826764050797745405904800236517608082148855981582833615353883855304067380316750940698892882789256182363388763088168731145541085197008530267002220627850203114222856681107444542442280405938080745629126077995632287341562685032597997492413546625910744001944069306234615418911359911577662018687690827962219279717751947699424426396756907800215059053012873056840878573756484822557058405137143949569682531144028552364973004733778796692903498961247805349306755664504331206027929810871900242569156217149563140243881878240720466861251425711618292881953307017709469810531632289771482987886076605075665310198146731309922752083582940183224515697738674657459305294638000762665923327932920455959365360627529987900803214075747616650401546125222302322050491543850826695680562598462305747223196545546330253804781946656065350718079440073069204155033750819989692646997843188750739526343780927677665732462889673689445480057804592237899792356440330650203129945305287903339085190154739591129650369581444960052327372946979689074388839562934569185285361195266132792750297798289559894212210512380526017858255708633112825829213615450953284754989179607807169204739516083181642826479440603984033124533170556071682558473198305100305279949352114695634421481502221104609836586888458134767566711160812504330231272983832567817439890483353365467900294800324536342756730601228887967415672213465326670743128572103420564180293438178820715892461251169188794060862565807436508130778250257724579530902860385297398802416959025165899939729219662358344898420373288185245005568216724008972020446782723547521484759044978127930546352656000502652418812502713720950919365632638998261306136503367282365234797788569509464390402748865825969541833784027586014619748136024421020704476331189351571994263713649777809649559907582109292768716477195687957470130788111082948877544555998688357462166030519018389449464989447603272768428606386998276759637819106306380036608796113188092152069060275543376374005602072161549096675196491521704997043044506004326348963996771273476001137525994584604658105246344387928890241320947066740066129060193337467106124350771713721879983716480531561099275549471154842224336186705973998807467996843111085368698737258097144538433910556661642880386580636403800476456849291749380095711618019730585896844289791771237576710091588792507627564327668114440412080968868270975480884663099195480973478492789375841313615997714325031984481655613002878442264897784914089827692879446887256124111218099399499197243002879940402606658872754932383785081809384498726410368815664406276591137868079728665935992536737093934727036450923002198627028121702097654426823528335837300331763917345235833337554511193757340824605795634779949070163140019452030558327837755539564745859468844739331356249975816272053399963850633239496355355846352904395747842020740742674300099030226681826681167502163242209000374720382406235338016240698492310373848829929260968705043703159363964600210988990449324569075891443366487859086571961452650950340106010034482061541712116009122809374355640196257087218453758496714711161076936066923792294605693680018043417244702188879735780619723553017049835391326216362613007633213929946231959883716985652554817627157490181825069100992368730194277000145493414030523044162266346166165975465536544477443532438422964494042854304329017394495992999733923825546658360495948708804355259892290952193860772221941744014287575004541523715222629849663844812838171307067301897490130092938389377394933701126346976956882586807927613405725195784180241595246071943473763626246609953054308174890643874889443400549032664489944784702744655904311928033833577189548850079973918475986628936879696577794996424244035878712177115020656113133789178749979668138433384496611355191945689843410084915430256148166617598835911000716233596078375145023938118055028804898727996744711695911738837264979691171157563919375523279030442636291798688848930207648944506390668770204866457409240176583602300660081156197894568605824220063091945124765871785930748782598208174604664932803238671288877868400088711201361081828659933055150016701711097625665653718214095499252210659094034112868634664264079716310516591685814242499346916533521348008580026060886935265507134542731486512218752893110327345035543916742014606524329932897759806742544492017184937362302902231859794920238156589464742996120454493636181308536352145528573775062300331002645198466635990534007433009435320168253097158030546917935451087582909473958890840684959671975473379549677277400587141727373184646164880568294796562213701358784506759798636560232928250065592518830140128495186571477421357761555013848360943817572641538315223160380403583431097958691298364839672843620205002527408191893115453076549107001445477084288354953839421182847006602853457176455000213853330431093804519558586486899971213747863047788477761182455492007446354710415295208616018229830117174498898540630958309785891240378086572249283657057810095787602691724241299974091521801484753565837083372197061154349298496097119706576615541657590165069220742003278686488670103158265013683278938523954480476286872946387277915517501284362175954746528231873798791502013127333632583667922005316818515728611590773005637035276305829216507522428713313780939760673636446038170101400510395426705766254230757898419974084117664924342886491605584926803454614285798113079072986632261316596034250120484743603262066261472590958922873996990195578824860481346719015059519822589130714333855611810265735309812922931353577717460204708203218173562039337700465995615751464680885911906952862227357791836575890223859919541718445770542572160267328265557709818085229475655797734885761300229152849963899934423892985549938962594197784999627853760544378941079584271085840786762348015217199249147879453417216559634085796536101407887432979354871341406747541499754850816605365517051866985811585137702978473132611517682894735043108842222565830519563479040417902874718506580502438218701801366358176907583975645330387853703175719246506418500393837671458124495411074565596273273822677583652176395778924050805792339813627989617054627613605900846497969228148937122418094148948493660822431801635588205585224166252610916627120543296099298048240731761621880319831246652521385549612863493973243630321526310377091804124108111333517228628606074605997799592637359714072655215848700243903970351614369249972058036467340970129598167678360485376790335904561861005944552325725907549135636579812364665049147140772773444320845725633309881756942406917650505197689303461277731778691004792545685911245758092291010306256412787919281052717863524621658428304882542851453566974543917327458999922012700025003182089190192998650432973786079372890125735438031646072740493093344763402528600340231134082862723788739709415253363976837049821160024630547851058536603050287293645665674142125970568997751493129759939884856382301993871239498050147898025388277969901165316442635588171678026607995131064776221632996325223967163410858084874605556779962532419786383215069539764083765200382596546957594011809341463973959689593586003272855034333713815221160400251276500287912253329284309558938671263494861708144514184976810197028205435162045301024050687920269697721008879750002763831432469265663258935266013076666131184413333129665295644230422580728972678284542176322677255028415854405011977087376870235772123073863100387441085394963969897503745725478551684359394173959897208789529054937133557727215397849187026563283565428534858974334932327058431562331496021238246464663703841444368506871669913006808830584164900492978692989703233667114934018566217919182312659926572970015639793972398997561867554685279118007380959114041932432268201955452255849293671874471332218988036143725365566630768309049930615216452277756713786680571932237333597462275625450665625728279499367052201437800451121071044581642568098282409022820620817774218777030508104863460815113329753333053094138189361545176579138206170099899734041781590255650108627797425517527890759190187328135111819512704895566044136556122861125282125053404424962248216607872182319209920211402147499453936979227589009369148786315529387661911519540391227145562357826183484692651214349952938192279592706698519420710151943057079869712372797233917219287184983689894882838711318627056577163678711369949918001111335210321655359039253427860599275115486182380243834296175829787330151382118329974610617698104889127666422167613727023194262550251053833533629031781619344691976668017826810736892001977164961450213069789490200650353197303905146348333848115288569473018590865917560535350317848483141398396674326318116550863827184108771314701416230172912645287888532133975063688234911991642530415710636475242562810386257636542999534301003757147146332561617228873593631789560393547607221867250426643242976818106958819082424734531040208541949484935998691341127515251214716821956410006813522365067132386241197620683156059542834456165115813651833678002607381937168987723237768162289045790971288396763746030860766766639745445173259314122417824859733053264580538563999135432223386184829697586446763674948237997399180445238634740955789779228362902100407461162564488179896594752915776571692146247704184396916549741141999570223439919607676678673523418638479091784825820266003483039871637418531224229507743701121221523300833106594568065729824219945835606294212167056941215536610091933803386760161440945542983273966756618399355831387018842634316446861561531827466204568840484898590114652577431691981506691596100617981198203963208036960202066049658412593252305495010521488257462302710869035088476619802777203630428880674707351162428118245656596671206551392797808413733769427359484637539896603761026652064188187675593559371339051251174268575423332409993623198511058884811518771819945318810766926368337276200109543705145649267971732186258490962142834965923719280199451947481463275428011135620782570912791889118330689612435812939316399534984367103757813385557543911355903881183045843573247627114547373697989361752451357010433711498737566779997708951762353319640339323109724791877567728568741230317391635331858921219723572381551501150656034740920982229815280252164063797805670184346000776491021462462148233426847378457652655214468379383335415543594225995876507570153928855506067380757000377903562473983727139897931469847608121057842954523809632721146906519519679280852143977663249198990346227691048096979866836272008091333382925093348858465590538855715328519354696304192416320550971621999436002854128773871667981025165072685901049373011064713281101233590258821949405235565338748551994956412935483465558742977272271119432223884417825107795159973866475541640091289787339721110790048189201260859214384034802986681817864986830926632144007427549423540773723331630708132803587509987230120984589563079715227223285683938342984616214437078607342443246790162110418546842495960625193884454364941015644674658007014906791268194777641492158104339698502347539114640498105509868267481459777804440155852383992679894771832546958693759776971948413575844124842453254939168568982002386011164157834293803251725725115895550141461859911903512706429293886068762071635193471048081265791091906009729806011342451242783676100345803794885669836154881952219765831680762807196922517238680360074376418953614307075053450751515901614198207724691559523427371056652144699120637138538394108330356325243062972947642865960775996274641231647630051571265350815483359873187896748625218720764833454065908424448111253959371683603640826131514087721837335032521401792003742637279506092906058252657155969455847870429260175868740262816215120287753917657193009177942210855346742382692584635295473775026547605324417879859455516105077047451230972722570044753606943660771762995768763137176140414362878398525288433675501652083379818049465497893547716000103289917306795077824394154218639960200613530249274021143580705451227307549304667723838757494605221569522696454734007774330379462589751660350189795478276342165080974011260599165640729503218547904976410397292920726716657879350729488634803245336419126261227290649799969165585725582033651820341628905824703730588364976533994180316365068979519028570404991999549430171470549831099551844936027893875020680302843119606212246309859307679842328877484474482363936640304363391703955301262466986040491689685666771532530568263094221333929230271489674238200971563349776877369727381914403059010461750770552647276408335926877083722875794120741907752814188613201002372688306495849119039810674007353486681941506105643570462548753893131395983600667602207231770524638362876272605184253717022946730083631483883161298760127219461434961184885864302595608197501722791353274476720372596526033634465050749189582246273132817528545862875586191697447181502498354103261958461338943164852002948719614379663212018404818911780764253268577763160934125991907182547035185442802225502309164952824603255614077732646622609645582548409770710657916392259903900681168136562470349262618843297959010622403110757570661859500786474073822616225276580515950619148021126784539687677097713968059866850880600578488929740342393517939717568054491141263717076989131177608671195858943992936653122129081450528685310903182802694342500418220073727705504260748216834589714614110064576417456190662728048512926776487237753809753775409456644898477273328137690364874058554861949034656670536843897651811902749677074692631414717402639041798258785467722089993475407324633920898778484156436462050613125864370304338905784604229217664024583793243182601273226739373348818133635758131528853575121967455407447172966830194959032065148682625552412746480244519063397133438178898641405369179301841451151550554743091937775167147280909098947723864434402162973216972873077396684610908818874264273794135099710600201241287071070022774781811369003975918441248076845197219781435397577597285086899253123082884249882910174863796791015966361305048413147980106881235373677413369571808454724978991550964387163162166946672824381376128007300567198060557287499064638733447934451526884599014316879043831796153107979908751425486148168644853286503504061597024089239059678696537014019819661866718728224833087783969708819855982696901284001877617126978544179065064836289538528990322400316563531012150367930006604006033615418065263988756228189712142018974528556393873864691296371908377433738448370394536811057595633284998156336553979308079807420266916675231675489780934770376448334765359484013266053175946946882192063907205420080063263579135121667032235372224545908308486866570024419976285366374420589586603835547001745335977600193163826298243053865818067052634660262633273876861364215835497755055742013071785013580033887270260183944426928773045597798514434703789776473665724496197347846408493777436541860926540709064864888200506781844615283075109155368069092151067929587954838139500629185507355961567809324836248849615495393265993123844591986427547591888167546606895818306905506679629500489773320005211420781834123940795865488524191550913212475830035309598816262254228067440765611198337863340257291738484413856432493488920175322536344857553254181626097028235210039318288860766079934397598757235072194706178992683982935932304396314332544536277811754011597726464967580324327339990812945648819621371829703241131433386112975842101716041386792086442630605189367506508615776619795757529703501237095421842510708062020991656251486125671602300040450384457315850348995060729327912866412162650884673269172259942436097068664783947356855495724920314144159196629535226415625338847079003995383122763223238491581570306050066933096521367034291288525654314108663227709396053145955126877105995968211940971024573158838631190588958834656599480692330747750902734129034006702078572426512073882918631250332734873494724575244324689662518786924054713685731954238067859257609518698888713129245360226168264379099606292918361209120518038796227951762011388406720944727261072506557953346173008475195022074258923536985029400164272948609975995556976509452443025586035372065550582062437871524184779892644730651928376822023436088072772073375576109461021699463109007858882487404371447104468033307336778807571454502394522967589913441185219427844689737306120686701976413085779731516650154056495156731476738193037556601262255821199288012173858865166885246608256521852126384609493519562166769412695217637260726765677224939254679868943074006615255136182559070264171330228148512365270519256807954139206161532699196610782847915909474811693820692295633887570160346056830606560338484530467871917944640827484241267307515888158613784521554721041946618375719591060545757216206607631384847914830715305642420101445471135485805439130245996820239268445332186935792126101278323238897202344442714236569485541318955627605674619481403579849777594926394656305859486419669793642294940641954153318593637996134617285213169878270578441540994644548292528202794954804840029765892719922030818913733641084546391372081533286570247495656647877640017170170814514969137928377880713924427185388163091101622815198034583056401223243125454328981985091674427834097267206279719065366845986384031171132137635139162800283734722496176982599537512875746957239872067192470336894100132073497254076006166177280679577931692136162511426215460005050614883105103585640297995699427092152851697703686267659112932460840018314046642518652417337038433243249322778080665657566022093275208256080672926865189761357789183669577457057919604118121285473195196307875638806067349389385067258285927168958465358027418644487936359561091017862493303845146109925837954570517370518326076165144088079663885433412760931574290936018193811408360309507056893981323956029633382722019095015483840886949747466635020448300380405090413179272397995753612253758338209745809957593243246676114467164498262229984250887777150739382992270417865264759389285900061492607452560816740281962282356435689517715320933500247430909912407489133136952503357620244199335867382454384625719778094697675418200362058079540934535450567276661388201976848351590465042965988499902827641442367990740782531218089487381610050822808615696029755856093741355689864319895169838486087894990376724505359558360968112323762639565821188881866581979130954739097728209801293472145601789808808219448532161599784496195440482292645904307871499322641018349139183448112771498679419092725121024607120211963180943754244347613714196263454198437250253280142891313724227535306656489176577828802428476882169223808577851286438247496355951480197664892533840275988064888858174856393675014530919395296530493891055503035677140097067411845683031465163728868916972359847622277059889542805326135621314027557361533283553173598299693347192186843687767240420120962142853103382713798847619587851272522293385384934631901677561033706561048393728327463459833209380718470971484801750747530771356735664947846563959316630390009300859055811730930944405108094846561212397685609806968782476896678724589910837609577246621816996165419365879343817350881636941354180078871319604830977133636645129443696191455071065648802330466573639312135371951546530356200357749340972392202256754094182992688656710575786060833124242775251612475455558989428192503049063226635245768966281745404084847528708930941645587323095042063228375917197110294456676436733849982938821088441664633651690875940125416370640800175920674977215235375260062549508704305477150221558390023159974266054759582704366195056209986337869120774430752551548948478758704705040478819054054437271583786653495616419198181647462320055570168773366479813907347440269549141942254192848003844309695274810355371170089219126390767381904627495388318726633663776048022002089576580489001101600737970502028391601119599398931474569912860919087319796479746840504271509141860310480670902494881721179088030769826318525620373033470907368952279664483424352831855787784655655723432863366314806399359243079170249954786739787482114989001034348424164163146719692880017276811134210832116982169789585372609329660425293891195765643202772949501563774463566784400353596614297386498588584361023449423656357690822859890473652728479647708975260912912454281404401420350594007967317311311043360520953769186711825443355927695309173336104384257262389252183351672722976562087581567852682019568416585759449996302458740984372908795624265350256962697873363006728558451171028784779066081285787549705171964653062541641914819400440935635463736675068345311848927604382207471527926401323733086872472971225711376083841020034859261333562276525234864180830069292316328567761422027382592637796057984849855188709384678267541322075030288332383384279598510778303374201857740170243951514949657602453291601905771980620077151889293837539415547082041994688761367210444122161309058013175411576240107428743358446518188410122431120398844954977683658634487730085919200423080438001095734039457797183099339768402974785060521680691433684067499799727211466720875794168764279762308808501936438669075384490642684826524836685637300331778635483041493360582739465726090610381668661602433942498863244021507448668085151450532261567718401402384226642076228775826740450279728167082783222039724478884997415219620500271798135043754750511709041221763880634472833590676454282081495980299953412362204682590571502510415875348196057465878451935145032478736454463067854107940204913893560984558123004417339824225404889769235868598525950504115504151801614319716759440728698877214370532917719620258504416263930423446828727933437849772016731681657461126001006584401059960278327427062576397155030375514482381804849006513383320360158996629382762372087103739610406542391533228579079383692189345364039351199596206518783125935707447184631785883421300716834088977811329059686575958377607634322749236764555231075375786147516377736673486591611037749721282628027813828876911382129262301374424357419601192026780754580043053652797124491634619575832734759888830891917075844362015659549680984998878176916261583551420840512021981943164456801993146351058639142597452604888178427174394663960165483023548985003710907656704008005590367712463867183936648912289790310515205533359476232268609465279388359127667289850947712246390872860851018096200010364590051773795014150645913694399568820997064108879965645196964760285632878085524448867418228237229414228717109345500722563387500699765272776715241626969041312577817658633912209516314338984541919437255284525997584584643002154721175113171979574593206655936843741881605993592782603177043582030385571704130515319015707332720055445790506072327006099367844450920352884499962825110450704936746986790082368251598091879510198775141056586069575004825601386788549629750237934762281667090627177137666748340497599652500512089331943963975883111719395592791847851323830001807037063407405636206686664515565029866666408824095469691582870819673818251602783896282961208451168996109671614350955055270471866550028331529900122600197292669808469704599576596899009990106464158263549059073306972320936682689521912328950082365617621539950649845741659840971169912963391772662942143012807627280161030973238531144198239468022567245540909496351151570343414217574481904789095922046477661292632603961110740489233662439460700394006208685259652862180657841129119399178058204353525294503492842778140168232640328395926287748586296244773651573969215920754779656989876580234894383983064259804601882157535124727568218762937365532092735766326507005341782672320507681763594228041421162326047213775379588357179856255563982869681377397931891308509809471400121478460988682551715691953267292287686650616880670233793488000613779569826265497828646317786201560391333315979992308880343250474415774737890430100991705333373673684362520747222107493953204944023541211284984623604994787337584054394073089862333825878117391517883736286587866510525159630948470187281265306717153454366758571227652709661740549798621012464835894165124195935959246745073847081275370935797965438188019994152390757537910265645437038442164972021970139294158099278701721543306532608974021512229286663678695829294927742263608435683199477179402128144127261964910319089898385676726746950382333018412639114176670906799525762035917396655592779057190877528432994448394691939157800165634384939449063776079593740763719718422922842752434275625201931694037102102468940498338201044402467903700470628407261723017390821071692578219843753108701309817229476942078951041035723007474694209831255188058142521407883787797069881852796461769047946286196655081244077533529344078380374439285478877542836610981260854555830592707803569421167373931584748943347556473776555606976098195467676521269203081238441237387412578518911486140860755456427843994480517614812640865475729446130739009895630806875155054766381891216388073749327597378580091626500775411043871880845908076362262332194161707347754878652854261174146772150345029755651466581173085645464539501926440146146132960535770292827600576827140255766013203044275366738993217977011655636890078687318551459881672935733363982060155655537624208402760851373329773399157525448899601271129738157820659999572272226679261519748696174681027893236844026421269622235291617564882443492978079819658077566618655222406538221565869031673919757634499837345561247605498358417541108748834343491211770647559046432785006511643050026538428855505707239891927663787328241472777071876538873907041129858516102106732728560817959495916697366299245761525904952651553370182571534051195683582055375232493358609422098449998955174612002948708995717795494912673602795844725865073025421647360919867177720217462766438261323232371009630867458881237556947672489433568788137247802059574387910733977602782777356158947259696285735515614086103653694079554608356066800734268203192347902532623250072702090513325673400892162293881658282115897187531509945332695952972772789811714416366603931807853621255558912375397479723289482853461605048333010964720762991875143221323543636951409828555206723436492555393905129090260433035826646475375044602098043022651526268550512890378721605271879844231857356938135232734443967185229480968505888012671462081318081522956184865990014250912327741231228387580707437411994157993545492354279502592667439988400466709656069596529905520155863743617699192672426471262885388935025665288130582632162508623435044961480736598551844587238305495200489982454393954668769077557888920400859611766119782355029609133921156700379408624539723070048609543111007173797696852968613088930382049837466897232046655979099931916844159543155757934896767861613616713618774486257238077653708489274129056366690170279022607866507520557635881669465737253352629365280608697691779789984426836559575628552925992171755177159557002989626164355412485153904956305440073940572854422322314916022227239946997256458985977429157965984805420850327362436644481512503594383549905664118894809600517215326160194889044816097965679813125443948948393685287632396473232485103023742162400985677267567272314232586894975321748570865464443063485354817085875262487064040683511937414447738841354306968038566387793489603169187208007919981323005342108644160931556979088159047260413852737668474677850441125927874726012139279309288952922389152443812889118486704627378680547501528949685209417766040003523090437181868294881775690666297211224494004834437548053035147043357888548185224361967061515441246730892204661768077749580581612962215703653648551648716740537509174737936202069033971195514086537046568483877460276577960730711945627327478527552231635935906677122402370826869532463765723752626024118097730074884405154195353106357985416428622047182588800899746008113926314872637373134522414211151213289916408017833694061149992060552366261407342921594010918287131668713937924093591169928792339716338431463350600156453503992729348241684545306681356800431456790650579409391878689303581266157027244431987913980869163166781357538844334415112228384877499731525190976732051338104247763291760905997324648513188716910965751397006440429688121065082254041897767526407874882736707674556593072343833668197875612874664811791245271061787613852309784607578567277881891137418913761457609274322701308061405932337452870583270261936105463094155129227526333238145925818945788534511777050129536447582643662330221332129064717745382549584649993108317071470385438679220691147867620691459929852075344631926527191009555585439836907480708927422458568888421676080351638732297369867231121331379218312673576225520205075992770279070887955620122909578673532080988831529153016357366289882861119042949523982288795915682154563296109565457235842101814437775994475967848926783582678254904704970989697247550710390604031423721324941342017961619292965814725770913826020140655806314215652939570941761421589371505093280788398358871461659803806809482027826448485486682618586357903272791400686034143671364491718416793147426111813947272594203101778302627244370345260824990945223043771696830086334633563167514213324191547618685211951937811709769213405350466606747724153842457330584084272183244410557920613022507325206664356690630265688971261087303060142195970436735652914391387843447531535707507871733144375988765668366108218211082473618874145592735140460257130757781264371948331593243785623341726004537862196835318823634379621699190833308779336677801661545493816863990905160479089198202390121613285534244984757987113607153908897255555844347837657064811840106694067636321824099321552331806511268611182994894041304917705648873598693434354961714295511526986811468537678157799272607304796399768477648575394090093379776663991264415230185958924788656397172642433341798701383340252744486102716183922834383288134799622215047380024917963177056065961527874337177057264653172865186819060767511085222722552708379785052679757945526019367808539544466719543551009960913758345837920732949749284765852624370831467989861784586318381202243870500522952397687204640652173228225228282025339156972658585572102267348343813539576197388860944945530114781246294528732779370952423775377017821580479128300806910386745706698920899980838911975458657325385954460182408543644029201476232492069455481845032133344192885748045998162367342300806913803159690135938263184653392606251957116340291531726968554349350740228449588070606798683771149793306562149688544161984471976821879913401220087702224634033432614990998656922955366266265442351850257784724278535216822926972704508039213927148243360082220390528556749590991554975898616674685413480625671672951749272425016462451718247646316797970938696900783749495782532195246618838346984207623418365215875600601674473310633351844562858811322513337634040532095907483628258326891489591762568774375617210163528219535012899406919520963826478002382880741884219537055563763539341073199022142409088646217735944709119787933598085036825772409185990082666778279954874971738962550109826709955952868194503807533306831632501225218609444184640796617832067104971325095186193051470520855206822659455116377208885237471502923272903382738952485274781833083533917542384688645502176434931205569787486707891021736788695060512705386350945479677907967772188046751931164385801336891211429421710394517724886198400139888089406220734475732070544790679154940049354762957418703044917553434180327954468318473627249296306391708138250539981148491550456493776368564962352851812308622573831035760440634521712595716398886381978794705957486896576143365115776030164051214443016080470607422044578568136309478146512427819299976719080728667648136707730789723130802261208950445409410778082174910632539921097036282403713659646969959045846982322182400509270507858681046895997334306756576304316289999899021896090562256156217470949116115929228936670461347680954286764545588198294102989757819642897283062687674509807306510795642121872472177212743487263913981121686377460122410015715422944956619203614087041783982186289389323281807316104999799884276299884208444367618161279004531415786855476991316490492747939684689066089252146282609040152610673161932129492178846262326736823239136808999846239433002323333126741554537595509675147772525267934307452947563129546349517871267494270154723592292010848765927949339435823478015165009556308703620606224996396651683199183111536435775007958279831851228859468957086731825014426879226942836466733828689062262455091387247507811280695704057780147297828627090887265765065698435339850788027029949216077897353646595865459679345355779401591195806835438669600204572048091423493796684399816044853186051993867847383880574143663840918816512704501857667694045599273585054229321343377901676987482131262814664517541846212945278881294944340895031963103038593249429400678212031068613434970805504386397515611943195988576584162614744369968525708438775547041944904081170472436359649240495450696616426334027287538039405621276673888898313802220761464515720191015161982461838652570841991331329634462326009229437544522753975237760831314493022345294031244502232470912392439992182156471290916985092215897522504427666343968780832355239013464839471159349409518736161132422373227845523383598489013029677454261557796219807052865168141952842752954011552112054958827922596611445875135479187146520285625350987132852516792754157470562400586004211111743370447961769162763455852921422445378465753859227928907443941599666221893560431880305790453440032176514476679779787945438827229973896592264658985419167727027975263699420978326341830296017435161954492093449935998104004661822335110602079957262152438955796795335295725677603251223829551994486854446321146882129156687709028539579766698724114138986241198138257872194673772619464633041629943520287458793210283860383597831131190242831412730210716602690389579618438200717751304657537585411983621101103572802739410133235690543066672048651440657989644529388115071206785144541370027715749253282699556298686041071639687400457465298556004294375545091010503883665210256844285374124855471116341054474923544496067139530799977513338915901538949458956191613470826979157451830734836193294689483897811430345956896567452132255081175388204990356506047963770141966633975599902377399873073899336075875561227546273923190383681104320260528953579399214729892971934735640596064158067023106851295080633300189549817084114642778696661936411835892816082147303754229429088610115917605698796348270552148900515999379654289310241137703631438495141722224229097309051561706960328485068866667938441220641241079904741635684424245030550110655108154753528716169473588429427876763575749212359871143418845968603962509123131461662653026948602794067368730626676747989301626996590989805325262149675178446967974684834353381305880436801915810991239522396307476961426181692487383689268756995805851941611592767954083004050844367883507734087135270073293661398532595265968259447512786734031168001680047703487361572829473106198866886726259070477474149864700677052766253725242644229559118514563265073148566783147846057647235243418820000226706539664998965266093789212155423695969013717857586052642798963323164622420634815652702538419061526970323287036607724378195322573390652174555338373998017306245231381346801100107270874176963217485670738574051557273829800839577349895284629438283510163355178927488536037720030173547603342328562899426789971019563422564783300571291143036054811871920001988895451566566792619283814803372740780441726304962195660231781176000637514900227861607690531405191392663515423925793243340551807582993766173416266727976306211534221679700080792044057713139604460027993842016692940582493036286094469090837751679367284462142527423403866793954136615607583575052221594131058164206238507149464315269502663486975030083628512509897599915080925465521628233022795366558586616509238583571895538622824117285924647231933831360621889342812049744628049783439282142030737652201122307558270236224818640670558488225881753971986079027084229023997932723815351214522027559696073443951775807437853414716381262413040348441490766364889206871638778618544258228210559241064792380565311517780667930106736458754092685961958449450353744647901043216373160993157450808282765346771091907807648014620133273119941207106972278730266458283084178098619918136233364625295397260688512981249438679278394827367528075107421354570538560141347726376514287736675429252793208109121696840613023335321407243844740978754287553206584330499902040582381498581539430028481296789844614615455018344889201355247040514678548351422641994870006793498216718601963336037233228282392219887670929435080306548226141303197227854146244075945544440861918977401294795721764280439573601459022134875578622577522838648090329060717437350299927601265955823105819112583462482140574685684542299692893621406467631357450359580321712288396398996088069969900770278488928982178531712745369152198554352644236603835585270421589587476468052048795410985205278709370184664038430436463388600993380960473399509558037850312140327931604815083110739807154328851043317880760553843130465410092281992028266358117313348900417285416860490223700875623415707018302816131466397935019068240509760352070678005485223817661387827707629905134907169756136658272770039936934222549677837164018561613028840240271288478080512279440595127124015031190236224194364260399631215093933010179057598274161334437911692438644508901163218290987465824792947007405173898292360152900544541609204781323061683096506545923543318261663145852515079020526467214983353197153412185470009222658507670049109210389069715784544806165200775258322262486148394131150654313169193574369979535593611829871275723134874848001505840323094795620163573263943620861658333125720316046990171881703345387976534401399185920319807132417919182497579315049264907197242516372841956019225981523456871559167226407732668599018916589403831756718203068613321464599753213922326100295840422536378731078140014816919353886603169247934514322004484561769730945308240381436569137197527137605529134797573254340787256521347502909669505591493532363559702025618736073715422767560411953042500524548305539264615583473329343888652628475136389471149171471222018333676225661279840215982308030045229979410531792534666360084177635380667671537850014694506345669221013455655616631850599583679576618934646387296960892672062259465930938744755171297919657594428694080133500457572954372539083259645794503079809028514831538694385290265015511869416328824481672881433807612142302624788816263933913580141512609227195844868757883204882986200098800115364037539388701132851065658704102126677450455368255364636925298073520755091343284680000956552118312357532098921154959684968304546210572227148267402709706375768499585899639921653453050361210254738039067277775042894656222795264162854848482977721652607800875402981669444123967393335604795471862590418996952971814170086520956365802398833006693787236700747594574124462754788075955819507583446881222223837225432031322556338014798305531982310346399800384916133504956017296950646001113351959029799289332850589938030497965342767138663738524386207132065266210154215650444895965279650699783755112630626938094207686086607421453134958178003280125773172543155281448890017020118421233342981956173962780162086048004126138615704564995463305114283360163105479731362769138598164735742030680153807138305008674880644012907612205144465286357755377872287015397998284060968282101206663968684687512336970300863503098726628304375578985400329185705277418036013652525778874573946517600954062508875550156931683739179175077381047222682900627047885610722830690472975473957452588643591279103734602694879028419722067574872542793964908865476285836981228396262216857993978689121845506470194509079384787333647601573991553541019919521660909246848227327280391351719513075768727566167697755592753622023468429187859513313508037180014341773527336599735948145429093270697985056290153802743830913347439450744412657163400174249586656683903939504050162052221506371309402332094455101678458776526887595826860880962670520734341221309557713117784233185339644723753553071351478981565589357146535522047807092537463859809681901085146650563061216280251786491466919755371076198235472549498147702967086327793901815246438183121207657511428169669707300725091175113873457024452606019345586930467459743904379531570906545528617441613008204928115114116076211155473467200314379458379681215205885449849216876567615018895934859617324588527399573170890515292581224018356025485413880437654153012064069126228081701821086661844861443212854732322254578531909855935733710785972300534275388503522341625191701868733292062423222913878228350140432564025083210914483776447207008397619987564070449992256189460726858659691338089088956825838959286853452367508567193163291815617058431924224605007010942999935287260273680977009155808265818625892804555094807656065889211858387148103833483417803691566411116729538292730737255956405889007317807883893402644632670892108517961214637107895847582492540675020768411465920611658782785017636036804429489654505111784965046378244461924918096225181098202106659654334743820777129586264108098462881966167434078287165619976731981542666557192988459892310920645515054812398881357174256745295598574290756893169220453111963922108678644247228210361296034277130370090477263132959965089995569693055382837780627835562864333798874247730285479043865148414682398537938857690508056522811328160069808589999646453925302158189010255074124225574499096418964735552498250935107378345874953420106088360289041530451252196102595248421572749617300057038469265025748985947452525285328918188048286763879355707155366381816597943091652253820018031644209907987903834114901402656939046233949870399592741299100286482616778879253873939544787124020867133480070198327094207835485642235303181235714817178202037355597769484718681036206233145197879125457748491796593979477424271786828257020645521445503588266895257915424361813475656138011579908380787433289321909455081507953173851494724131315494216590206481753895228495960192519081074444203777348161998554511217413247112619565700024223420628945354531167872500568465262706312259403655007226777573792674426967386056773249817458804511050462713699047449904316845527492530321589081634476058933926088015711455493003970896867455414264972994463128341848822589434915296220231386794028428391159638712461883971632932803511230666837354883386723508798283546404394405701353170034263657848430504694840959471268589451065217199979594921876752447734548740298881401626281624714565236893860010367857953061036366812255963832270814259242162832327735524920373181010781510770618169514054586030989201618444430545573757031773945643888019406527387947854475522009134622526862240194548787172871428502013378211115856235138317245069922701485793216107273963151951232208620626140937196369129436566433355511279585547633830453346869707057193279717114573299843856921074285785253445118232157048642816161447818206447471553107391187174541752060814175495027136871768355277155974836116135311564889988867576199446990585518425072700242005204413740541731154010863178231131318392990886895882001158340446935002171011824332752563185784783872707426480275351846958254554828619349589771167839327374720590969462187313260219609407455952700208326032260580445192877834188146449679726732662672589047224793320022356254001967256780834153825483365944631052290490522942147794489943759199441257404861824399041030988400431084794077119775977676412514312614244092106434697243867658952180510546733387685873687870544183771805832489200624080053797396712529666265406955286180690940967639750200443930009084693323965164398366943483352197085301773830366942397465946501724448461805411753468830167148267202528419822510520547625644110070844562306440365169604224018504611918379522757633971977741490012804754328341352221190775563701960580543683329577622687403582021071309859806604325663471640864699575108811306970630459576740059997825090111332610497364028416142281935023219507755415802295494696778121106094485656065469832059394849936578982634607439531455442085037747005443643391866612895722813770627484026302129483360557739286373437987420893622173510965311786102139293598529333479750202059983247108155142808448222695485412774913238836734495475831830096883992911454146036596525022733148164118352605258508865481027980229847214916474500054489101706312161343585189333828263502022184756037766469647694939740488368784025985338522327591258657080805671697444026329981768599838613763281480174709256130322525077520258210561227090725346729834084584138378356128398956155173693057315670732419663510161029495753937448595089127412040096283041528231007010299792292226788479784149652477715640409546475364700077886760960401933661412953575500181344100252336221730695253070674556434828456025352941170132512564472643116271749347339981562047411739298181015731945347861151103998892051690659316808931622857501863074983152358172529149095376813805180829447509440531119001395669935080821042507828863848135962634291094354192586813899200822248767932369743736208370734888885618393209359905012875598551867474530595353478986511283318394768126980457060586363059524329909847349946721466306661630091463340152104869754596225749181813878058130294071258195678967168662976018836398667000776268397700528967155868606163751216012441959627603643864715718546041212166709786714944490673760704151976202257839311165343872968733522995974241916165686347325949368447645143395905514855880669908127725487173531085246457643671341352814075461353938318235830635652472657533882790540285695837545326233325601329891855509567378184481907775297032140024707071461751615293202973014271963171291872510638026452124160365878244135253336379749648660844570940554896579833667157414278013703559251684003218536498692944163044253576331286038621927410373092844049889941500458252149764113637809341411454489992180503439534615200045424174499152690591140968378202158892734789264342007604924781807557729171578596154477807698885705571290890887774882358095781419176245109556776855518668314322326448938342545574092349383922769921857761625837519904126763422721768661289334573982480573580886464640502476484418729531754294751940921235359896455330537902666818382098369378666844547491217570095322165584523154279203162286580204663945157194854106213712159663625553853010549340544206466836905266179096173117249062350061828845917846003539847345861766175121040928053230186170481831822803563770823879906108241960782797391684489072707311309144824198623508784178795084976065032682545501435355804330765595911443005095210549381069502631061187977573164104675693805328361048791845475156192687866417849738627880152869515651058959255989542765278130039920325540682949045003945320736957092749006442565573437759078736555907141098538777943587166369525161432133925913716028398443458613933429550390354539536715014469533587718278524157916637747894827003490742701562446820190163387062250864712501090387591057428618847946532157769379533949768021142422232327825637376375664669546542244187391700724275384432701838385423202960157851184909940670226273384674964318195954800787870096554383806801727151931941179284368370987465595233320469723051242100979264772870853507011277451590896172222762787020135658833701182989710038422790413404272195789627273697514880183554948030400275823087901325925965041417554374482377213829832113363513911962546869363950515810793743832557352669200873920290143593989990786355521698936038265677887857755891911399747117058076311944580211633748265930869099860475503529278747115549881995783002388442605972773664990145457599987007841253473455484298572688655083693225984924479424044170816047357405822991049657614266641595432941562634765009955929740118586533042392190677963850418517360429338157957577001326455493155602496681382081536651683123267989441369453989883798999567505393688538528677036066179376553044724048790198035599632337148895533199401225621390304924145884142324558376906703705505930066635152858885452283586582866613517664373865971598773890985885093789853994751094849574864974521457576890345955620423684008248912277138658952871772098836857984392353722760429485799651636161581005278223678508512785101152006918053898052826867510139516971084744438551470770537380317387136299539547320174968508087434918589716539068274468422107489520534233467339578940932134704844919472351989866279248434681639887065319557265016162509467180108189413059498360936126665141102767416134246747145929133716816812275996632872935960227980452307849989637092703900671640670619650152924660311571398003422295149352083169537238355899537349890693408299904533010942999750700211679415140274823376395331202407766225989523073284446976229975119930417028506730534397077856919951893513052982938211245713682720039744022246892623009717652623622017492108811628243884820102495145970280724519643171259723303075567767751619863802572583427432247970237775506615403672023509961269748695058846932155028113735972602279832185748569692161667526403147955537419540318390667150125136726644806667327561502708849130201716617864253455035787582089739373897465564940199404863560783604787268754901440385086738707392392647729428275424717011000694205134909974378527132112477814895756419647542486471611802037446802549842574476570080063833180158134655521819593739645350749262818278074045495714411291039639701495937421358822909280142110082562787673723089617058934385437959362800333447939352228389301264865431503086206138480704244899623925880151557947087750691619022132161999886192509569908308697333933177968634440069853535302533495753990864976691427137845242451232352601663934559190093766840400845419952154974022052128323126821010415784228215097472722887344391769290263275074624254111990337653358652734139029859414994496185652909908827409331702880056421958150820585714934711076275296440435147880992370266789549407772740890768860269511757956986721358613188215183246660895197815479280860852792488304644610698503480289935296953078878903521099287168674683670232872877903057902437563763260065106456923636532164583037900257154589300688082830726189785434650153795417276587300846973481409272199582760901979011816274023157692218379717320381761846260122523381879905440588497645874984465771744732038908533818196354319144893325869603414892774304533804589040140358916675285359071456052902130387129689393661585137173128367103817416775323712644008691789293247893807275756011611929636105736719841006178115826632796212939184679767971109677187537680796264391801230127516096909410345186459003167643529765150344887699565196519617418127834306956513692174297430856963775748718649384252489510844786314293419604944950102960166503470952058609279086240101866558574588857001300698548710265495094098975461240899396718531291881828940651147057283702596450161393303858461664981154572629215465886101697812709586749689441545980110871154252593629689335144671380094165628853726533748865138202307032915123590907681287337036724623517913969719822033947257329129601314165425780674007529243140611912063615619306449368692233873758962605486764970099517525661814733395861330218848924580191768764062959700622724230284168487298630899538213604606664658836296267808128187773480015073708154193282382759095771474723640671966330251693533069324042441494297405799607719843478921174966622605850804009735023767498305999867232842187458476036895660684701312052315468982222889139182134940342761052908267499455374092432600457215485285479012218987403312600057090126166839068992088849813740125511229764685240098739324063262215698080953930789012485202366075012352486558982919824038876270260602581375444641137279617654129123919877444729363321394628643817034857842557378464754578941016611557222148750239304771675569028822271258306444509827091635731849481508186218352101820981402896049502799710902758845713150810456529549874624597384137924585251298428292064547850633576109069555918659931153126366892399700565533650390107226718937161431081131063325358448768912923596060393207533001521481616712875603767792067782244526558736243516798473312877787174300597793026810835081886757531044955117798097258720038347037928212582891140105492418197906935948762258047697536724493841794031739582654446692110520347794048455442094253030993177767794986113881980079935564445524646868714976899161302874766022778565309561673995172779012913472566420973930413333572972776326251699685737330587051941700751126621846388420879368391122606419025278030533180435498657134837814438886119544185464424895037000214767008781470263549649861506142697712030179014001545601194079850181137526472165989087253793275460824521134719112751332585737026686118765771173622728888617820735526263931098440557895417030148875763285080176075754423670613226365347674057759995921695156984674385701055381422460647849720965152852862508809950091965472180722837948034847133016487284762836296371377092336818965099749518195245437945209526136641206027257114586688533035086602495757483751501007391133076706255028631524307153892355331999455178418906768271814416189741151103813617713460629949248401100402501012227959874383115751426153137796082129384502780240522537313745637875525601867191466958406648161027524416853833898263772382948865584324634614891371808614846343638386474209317356181530761615232606847891499262087507525932150598997669443238652099919448542551099789060858916914751605161413065250594484519344807424386431287810280942610363765960924792571675482152040134702291601094356429092883319060728545072823792854910083694650904966001650925696486602551530185647547627901363746047652845346063222190340197719777164029786512808903538272092015622741004655620838013514732731124690794612736883483480268539179629069442145457078270850363314069389116713358980380802235137985586635187842492416097804252069725102116688066286230637860680491344629650277132980840625372609437341529894216312252654344741799003338621104223613150790855826638918456586330215729353542766317376026048100321081768611668103560763857129422595910701742384036280153384994868783807019877184205856831320437261520004109115825017768062130007680374118268315303691719277144014958122863915466017508993541917077733723374758574803692478128668541706713544872084886887269678642459347400282215390317425622423902429184832058601256349891277537614131314486946274491464024210979647252943937259524790511629787511541187733376080179299805186333429558398477251947955296805026990900801057308755578957690987501287799976830902741944030052313883390115974324559318965553126606847561773595489621210831653401038174599411865501901479342849959545628114633384800845329024490917220712161819580430778682543893433973147502769851605008407333845264756299505479828856849462812839043655126145929371271398251094353030100540302458687567069817489936818034627137272801107616110597499476958194461673274987602266264985738895866434449631086186392478796950898203454791863021624173590498008873370345681551371837103772738462146208967623859177970125558664949345883722684434127924267599341991833609794959447948929079562896360965341953475135317380672953312337237060399960109990405993731415565742798393260046904654528499700298100386304320391112778937484050713432751614117094363038999843461248997130566666104691522516358144127718100333227899061168113715694751632488044957754570003601874539722307683630130408330860701629555382429184261950863047753758352754408292668843697662916678149616816167570326811412287066597389870007332602502063211879857910414468865645283818677648158092181532689068052297778370023347430064639018185260277113702887142711781396277854384566265520356103645547215663106776644611980024012986583547750887221153733940406810345766654217969958987905972541138743750967867467943988085663343946576780783204225756515949113778062686391219737498071486969996917757577115708627437286878647073732529478809736600071309929008450102364902341073821259397996071873867735053231755144874961640803126098692399877138164903082414056175251928579395475450834588917052270837883963368516988947443080319635878334681723077894772080187035869222261392198781888922024604809093843913665326953332459008418754824050452242956792206282016202237677121172160949071870024805571863568599860800842745437969051922966879049907012568807801141834095313533511458907748492249460352927300501667968564370716353918364312217854798902179992209450840582687985778346622164205976232025432653403249928344791082390686308925563799419101106300972582102025759215256780737999517951623138417517435377462079874796709884538024061361762722532481621264388570774995542531903783491531868809629231467189303797791651567975099481758499497478027532502150103690244688045122418409929648245293988313426494057442808616385938443773253721646477060488221795874753624672989657421003195568084136527866302447643957087514962543859470068617871265375530536593492223538154830964414976250944638579344645645839906886612730191666279925582734720747794869398857280956368592342938097715943825135572897650240178652619643615016789433178643167781460229230541096612674091976727610320736157458928504038851374672912659859069735691429128009145983610229028338451550173527480640558876208962109672981103402993158340173191189972219956789067007616802151998700593063376354002187913086581468811724211318693816338906736420640371798686427502324110435018648265148250388145720382597413262096342885477495985627245520786569018967097339052036516334263751498624939171601571137161990905677630716474193324932043866927800899569184222472702534087861486521354313628903918343346805035377063882900314816554459868027477335779579290772007865725647095972290098903444429951628600083291102911159081102366108166064730851784913529234927932117705208885442741938691867586523301885699257042795755599780921606055253834671812078804336667476371259981603618952181196094372565228431287526921942313983219559935468541438679152620894376351761507719943694967229839495313201094994003200330103524087427046079490238559592909794726724165590826525639299385464315421444701855432214284533913703263705105523979178438399882308138927425245011124124324096074049979201805600131086724903544132562392131432794987406366572955119529821219128874738916958674989315240882852775501473354257661748324393826560402605107757655036107320003831347787679043258495373968444359898041417436040350417713683798752969508782214911247853728743406686956878743413516575378061457610099487752881626373174397941912563632644050536938817700168931647464390387447651123489664034665817279664908410166934606159684262136982298683791950540822685361551398207581259628171307289869032002077240211044128393166676977683678571267689150504224337933503289464235685901729421208756393643362004032379108274803111916928486858734109870839406025784400411922946029790295953917961196423617444935342009554178494067084245825331151181126623159833380213242397261304797605180994613367255286819700594581971540266602368916132714035244835944086208420612086651138523849130983239081926220086686014232612822539466436627985980926367009487298551210393753702587865031851907706660268781196060676029785719456443952355373170814588653131657275051719462277966809833466790740764940657306429428286590569367401372275233527375588258951866623258146406536382638564853848620271192780844986613203141262390596543174818557158391190823751328836235328261244294203450608877923121137968481254579912894668614218024343196000727799138403877170222507342178067520735469277192419739962906961808437205642357617851254076737831655875588397707126086729485844488047458132564456504307588069224396813470257117627510725610600624970873451972774483027740340437407161675138928806562394450360876256475454437263551634512210687966081152628073316269559886391598621584286295112280466926410713261004973350003643270791452722191790381434359158450797621418087483488849814497901759639109695826463580838830243831366061318109674842524100546639717800918709281877707066939144290903655044048613739770805846426724530947358342744124287301397064645309837897439672193917280183664145989342672061554294136000464571603908487570340353646331896864419686150569539128053910210429718572144727911897960038977189300291578784182910493716841919028034281409383137341398430538510246475764422394972889749187283758795353793573442968075775033710439452455278609776779397292012246633199966621906764946223811024675073777281455201742763849075473670471372258639164577797356278696035118941330515708698984475824280292763051996128241135837034447249757805086116355998223927627574583587851870514432787335851996094062537575887746450872729261429018035589651597994478682683795987124486191759914935891133889173276491862709833193604713924011347024168632596370832317958611136175253116105260707020743054129436946878339739330972311431928251243703022363782436071192587436331767081059601258137178965931421507921643349942518951148945383198090692461299258516382401332971617050596682858891012650996718416801688319413535103556322652634745823640097418838151862369467126710770551589670557217597092354735159475703840102237774300657374089850178599737699128596423326623768494299745549365708867767907783372530151276089994515213364151774406714410306356525383511014712876191890903862903078927208881409130861792749159415449356362160369952084805476363153594074896447435020330752450699990067846155501713120926183561176581878167052338555886707114689757219918436202688869287809145807800967371485842359332778415761584847764310082882897253719165517235211570666012891840959382625828949736090835192403987132105604177688957089949647441942075880665948128943274163650627252519858866516992511300108478685031873062810688896932744387802895369634742826877669923305705652547652182676150543091085920359866020432983453892969007889797278966009803540085289926868464826527424416848663382555136930674071292248256585739637859764495117642880164911395736390271072741704118754166472779966220028749383186564084734086312175980199620715983643523908835599683932498910850664377906621158645251820059178571838644999721751394931947385550216641456868211038716650705021666621717991078516940607842513619321954461227054304878024181700181513280664710178796049478135143635446328188999729174954639773147993668104918570024684261564451514478896714256009183829211073066557016346258254102801653945307596318817472531887933654126957890268685995195390749911797322570919110255590831614196241128983669840662631454833440984338930532694906208708807960769133010948972852076180881405935847539016348889805004456321811097828027066692776013018986591161195183570395893124125887243086879826513707864771197970419564282837831719181432365238249624994355390929461985373088841603733625970403976778974260174760940404383178305594739738012053920116960941509203165485315471011407067393836273368421232812567414292607738658804673898762331863339163516075744192213077736444278165693378503898253409526388315850055619325673711403703225731978881401766804417879387461010756631225162055289923965053354824387436858366201077292233565455083671920103084960518293779406211381608901456368144182218598446681009372190554583723574386659057191798956237481853931770006064054551363222535900884780287564838744808238218120405644910064078222971888978825366630701463871754526867777973943155146754958464840305642125525197621991818183131325956347681604334338413199617969016366698559153074589590802309425185031006907743440681630539507849954455302795541482818648729679843773420279158095930507757260453106731893030507116391273391132552430106206388077600415821658096090693023847307892163009983115298756869672489285531899919426712600237576107807790614009698710014786185478022192943702669808648084059940332696573498518901918166885698204426016948963423828980296120237238116558536280210675817582445496769814270570143864639986630834538805577982127346816026791116036909926945193528623464740298098849417827360493277578469272784566155461817205736669108107660552546427603467498929785792713386176814994468172476773788354037617331567725741026496262197116960056333940791025546090021944131930340048596653917485719730397489559269413935153097443771848847726144797308855882172159413782341548867342260052251249032258369458176745184041764707772749857427103567601543602859300551910864807606335304863001191059148235720744664759785142470245912970042094775291027311104123634571165130485007558977021224800172299877726140376608423260387344559098394296327456653459936482307400542748277254700947494620209828017568484999677388645908559746431962841421686069238971304036075610425147655238103723877021422863431747639564395648469099627712879303747032259232768953556273828006407141032145517799820573460544457404787605426624473635246457895812338849866326864848526600031639395167318641024790076496301946463325495400807591323627527556141735224896879875338399620409821789505348501836142370254868726331961255886351264711440933910048135849350739842949763535378331673204575505096718898037119504099547833812848543655914978639087580995590209342485638201261883641507233739021880374441289843499489364141765714608548429504035552049424053390007746174166742750961737215154055293910168763447028458114601672359510010600015284208656126593173780712394148174581933570778520414970630925180221555609473832841853382950398960598631678607470023956147106295745321480958728346046816566409119357966209936343091969972881450600703004590128315132759590357153889823831444839055595909708777071953803170882074347660283642943542571206824963937249804482838928712195091178181708193076828806475703345725195746804199210635846775604834298917873967769911727791002110751829728446705004600939821034130848179694604038292644761030299994934796065269870649344564027254025940824695314886612151656181958494805706552266635702145935633379821126627929172563703732434938861930473351435876024000262108949487133514091390041886582915754935305395126844560590141588351770717859001659908569156618097817851513578451124856866297300053154383861368141684024158770709922368373312351933381714131938539679853575606471021407973454851015931366300076263646702059209931688611720550911970434200767731333055452624491685192290681554679752004325336454079817227956049256890400639476586684375615032469796371949252916469554762816167666129298780110804122897846409910798214276008722514506728581489807982094045527338795207863497123395669645388051937800762617177248243023455589494639500079550977076467257859741127083275754895196259368525814007543931797978030464480698441763133932894918102261255219571196970680545550227337276761713812648323769765312164781539737584430146515151903344227156610794767167092348504831734283917221810578283453533508519005141338851845305702242755192003383349190326822185260180280678266124610851436880184272806486433796356706121761938834641835392181668429710650760900889518145069348726816647720856498505416863694223552237569302695029098746425731262343415610739614593449797348781548410240127584749989388343105919019708322570110222935826854477619883039356227655954439440849441749696125502947467708687843894422247797456024270115525026898500173248055468747695031144070999911974270631448578717590066411204355561377477437381871161201960766172453578731839079663865952544754841781322792141990110662462447882895448080878062978023072246901769050898754101252893539045166207866588537382147499169913610167330834899975460184342715868880889349416808774327530467680576390661053346501162802349851223468432224110801229648187377233624338274936877022970586347385089837960083967860012895753706564658487944526052098120319299735497655943253369120356438322488393840516117240806028435798260251509694237405832290184329952784126342896902988954920769641977819474544985865948786505879066052148072425529197453043245152759841326498857382645037832513722293981352285214401961966683106054749391039479616687229050097555858314087646228892133268187838958289891698077275422008837550985564541545722684763898133240539392013545807311805865522090415441501374278502742132044923615367387825243026690273965841964202639622058410111173983889491846522099195643377955391935145100225596136798718495046110407479790726925672170451211746131232649527578094979088362261669126837347259899067354300623390640600609770314936858155506785182968101561957359246170845607727449770528256726773887885469868072974761230030039183783147493218676812036159491337931216197093917437502403540912762184344816344321088169266370988141302714559339282788794402217866926725539700748456361946909660939912438442879435716951471967484849170015734218641224681271357861406372214454142099798127295887564182248437506153631097965441155534622737426484841229469776494839969733840733177196933823809775159017301272340649139077976167739695645545350832883418153416407900509048636806555845707649072994092672127574523648037341916091011961359519795558553738525780441188425363281320063487876690421541040596221899747028984350391559330760930766410353384830746180122796380146653611034939725069408984911518634785157766949057994629351323444102717584851263151188312785306141516320854661963869016676736040353047849769794302694710697251575982559393972056980563018572334608690001544201396587057646809610535862582957942127017464496677721437597746367591551666031571619175730651400658294425038802411965909280496735422078082217327605522862279335425844733229280431615790014425320513086370082319973492240445181890427702772059357722120995666184200602339991935672964798746880697895892422446631952904955045372832970787055955110788200060544475191083023443457636535214026666130477336940904949435493229570075109439072852025447296592125165990752214309357175575890773077136036246136693502692049518934588511990841819674015769117174450151850627618773043434378303041916830751009423782490243064166837409056770420595316874728081794804010628062793012694395926943508509318351634986447228925163708322404237508928687339648396513888776133242614788038219457908504903906385514062799689148680702993770103384940951941148482882348395640651181880587206161668370468887811531189892548236052207384125735947542279092637553784401433912441958601876254504925488399909187545915431257102379231132754861310894934620948084179018861073226519776919995638683889481547490222995544265257995965252156820710150472779500651160280287413673654811746770577286486369941215625637211030290359973028708708932703716360515364015552737586879078468421991433193428960404472384258700967755424649433005862964527952860818837144031767981553363030529667773244954641708527930926922365488732009436884579757024160282287835001319315301465398004274307991846423363038684667339152777290355202942515244224836049391170176987060767478098064210469074772588605105259075735781740003322529830043449610993240720933826132041474838107105119829630424147751000663223682234932247882792111816083780479394127202910147382554343064908103762131777251999163881499019956551178743170646364757920033017304956425878203814512029856694677816023608634976674659281628328521312705176522519601210166781339550085554694648435071343598389165272244626091142293027341158887185657735960268437751739949110025602972549947134179138156362684636632647626823296535502769951875393025515278178271643964835485975197500850022145817362017032009035044770479785021816685155486425290911508293209272706140663507161199534337335661391761513183395996009735482970576108156216662776250268708688048155489866119830455310513473946138401621740608654415102360985144833350960854401697879476047501373119408349366193739346277300748484783058976083927293941988335707273555231716262726915378366724714627196429604468351063406302885320585302472482878658161238546574826177399104756220316880478291242545865144772300359841525616655409030926031756737121525005643322352396942020489281774197984537309127166277588087554667568550046867267069316748591250339911050927193889087004240882766371994059532488505444551798862197497723462222960477247110129683618323583921440227064113044264616360387505656693202777666198718834987569965372383132241994092583577015685732004927758648750317111044432331867507073845179432252631226262087617792953795828428908270726874093883328904452195755493746984728238021892539329606152081508373816856553325052478225298620705514910685661404909928494825770821855372638848987329886776370159352924132844985427644101636983923751753956744275061072382109002022614739792939207557481829124567126598735444404054507063968298747122233824920210457519290286936636954799483653889262170392863454455499208612229792367320514483603432211620500881211068787039634562409995413921096790045350274501336851380572053330404563734488948569580673780915151014880531365908877003104433527962851184071473986458673139355608860811664104972409416690298386370733607463229510143177729342192998587727253483285444954091901821872793942322968235737194381405097620234433555426325056734073295911494805113988530566292514007452135946586945705728892033759452097264541628622248018382472101331626601907186178210952582694678844530290822606530898050595587638395342305515029548523378717100394964558841520649177357223198446292022231229308103556562046384897935797441349729036838475082944909554807695349316418576934806115108191543052325999163428494580254317951027690132404463756223249447433294774482291938013545770523952674864208128955819993460040233205516293566906346008797271579144951503794155331461529093899467878551279114790657141514028931444211400813255176328014343370371429013319248981595908558649076149184098719764956540304010827660683180028814128695728362640890007891320148456985087039630925234982168289605836342474110248179360561410274312891006871479390340646192550667291335954504790051233938916455385383051066620389576885189422441888870044339652292234574835030830303824384737557609612167018560971538682263013940052425903573429974170334415763942650931129988208148519602960565453826190237612553505336079247269700333251083944703701381275333680680196430962038346064288076799151651632490813224092222215976743174232158529903437439764198343616744090006291080218444731072619450063671378069434098973798144402888779527782021522192672107479075513894647593587051945859962372319428275500587726606455777936444852687151666164078559627560227382967703129287107640597811064517686004291335825416701302281626523573127236472088265907707695111851001653945182504712585143948531095967850735145813419098885753080116601718263383028269212755369016359837934861583503575860631533670047474891597873736276563172278390920868870177609312572852499299411647832524292585796312773436343338993813149268229720765335487165680875232947424891408050330847849355419678430345604146704553787989313338595466904381080719267850309082326283449985981682654438677324388078115257411266832587008187097450660952365357753093357931232131374079266363310779973294630428074118888161097828186231116866137773128785987606661557197904997907891444674642486019611504072866747652612294901134566289929392516239315966801773814757905031227493533793066681396444135756026373604382498316018884677373086023621833383659077299862289426900570303680311611037063742603115195786187738227299887926059976031258985389750690671677623424753715556298319255123796741425916372179672457324871669523779556724978467566818464120467699246604680541386823740615609358623594330242408946370273574801610469803129683256813930194875432066726528975443087282024364030847987879508958467522665744876798917820710148619707782029322082180122906034384911438624720940982762912133001134831947753291813249966393758504146768354705781255858995365700510378556117649390642348910188064861472526303269668546849309970844469644430705494138523557962851233379926190288053604698359802450767493435355907762373871079386128445442169222926347380519059006523198828996221404520029961007570174627405618728656746936707001144009638926263014334570340674157771614572065876278147969733492586567228111247235293689316975454575023411714745338775413082977364127848774413046436087320447861807317730748129893246412886676210970872897933905809378677634354222726221076618015038793785800067710411842134555280538823449331563420289459037005697367245484733912880481227051953040619551154209121805854701144411163283031220994661270150031610001606156939527529340244174344817298098124707220522121885330639496766450832201005329313890581642018806260430691686305556817098632304897437665922410009311728699680670612270513818766222089216964997253311574653593043714772469869789586477685686714656411572509634209287035633687256286442028617639971468088583394690158892488275266760278311806408352547055863606001112821765257152028873966928959004565161068253015583091507715155124419420648819372340439346785532048419493532793495249583889718644517066063925983212824367842763546092407701119455491875658349925945656685496045780541614681843580014248086543670769638734935137032470605969565142494644259599453505177461751288056455553775583924208232578938346129037922003960126733259174046504525667959502951778347493578592486823270279380155761900689510837649204500048116537765160310255578992782659190590036069353866627532516776426730240278870909002434155892427672692491136537289802913274330846267323403165986361022440368870241559982730143452197765767165159123471682618555243051268885972927403138119056451475815334153901056907993572085428401489499002345940575619301311160666981787491622899003475933933202617561927505954702098341495194665337383861243887073450534866209841083676706237157236275826864785052047244000968528748078354465364494599263262611866094705486192431683299149697734401560463959182680767270136763097646742168975005669076738352607679450639013526536022095067530682234288315534548610849125019189879984962317345333775778729388453661473030395404922266972621135168237143224979552553765187616327842579115233238143990060508244688166175473857982773084835971226150294314799202980124542187599215043657763382839730488143664908186951142546067917165850948115126787237258873867323002015381280496483137368236575445147193824737131932867546779545266460075866002832079313664190128175694152159305622172059936800128426620751782312008746087418734387905839982727853259987916572224744895828955671136120719256833374876043159475499404323574296520915598840663503432712713360515345251464920854307417223892970615989354541983186475252468792669629430638605189143058465354318753580439599864178007148549183627548627716699195079008360467256552576925705900244239279139281754138576079278132815246166311880612632926619756509073834353386777181324210122852098750939296197163697880689946570019995717789072098234341301548297833520053402912003500689234411166744665097797549512592899339454759830016817083945576715962389295211521716022220907252263941714922978493265539313984196847050044871076539101915394195338934370331224043923895833343286030321906280019772916757703778644422058112404346513004083711139662321376838401742201976992282509010703736647277970587432455337144058559765544110227509998259290884020162534525898688617323581997796852202500185248793559216941347222000010231616815699113182810993977782027642486823802974035939561747487403492768401359278981619523973999263717864833099304701986677105008674821923621631772141583912627812424513378981327381116366130869970875585946460980584831573707041907571842978968619115159612466808215392447921427775072166920227065792613578111013714541965810074844922591695613629658709431110684425234799153822503477032628915916254190122950323278638607283134891310674408890409725601901476676445388184522411640050846884556744981700825443261636548334437910922087574217195089913975554226627625504428189641039917535731494786882746909748705119369461057038951868602288725100440251500158310005133165172883938462039967583228714035005243215811332573705611394215340651281334876701085938350081898176487933946368509239249871640719192652037978114861670572677846952910290494259241486517755510266961625485194478867508396971171952076898450692006841291330488710020305676348936538395775710667893623316985256790274475832483688934416909966452651047399958850213700705370865957140306072314492685256247560379272285259034675367414027930819288022212759234910981467576641332117875750874502045101092142556461787517840380747213097120069930942774214810136787497218957631640981530997947865473012788400846299069071055834243770587216453979808996485908011824329918069736428168250754979083371008564553313523402202793851743052673288787946632310355101102370365750137647484499597853354167789522799893926090416996967729313357272562116154145268624184708131647787131758980360723669256480419683130697899409247060488170288698147339554914351172791262154980153171093260503263346892061240963824820314109046992827538940436891957990501019395220437251043983040982509864611769096150279984820457632161369610879885493834205765917009843616573692314081299099221428070161427695002711309879901675455118728557316041957185849857648127777768823960328066997583643910236524968252103407580467628746616781209561035824437172184998088503268601405531175512506801629674900420622363808766649925906622729555545819499134356141699356136903661589346878381590408933316707619395561562004893091756534592421001292848677581474753149568679392615702151484780033523991967886748621527810631357923557575815408737321615539830667210974060228913857538660031463292260913387339656248513615567435118732048447535724587275193797191866140817892035907678883125927257481913894598879536709297022024909903310459148013854140832110065429215257130535004363379283056679410152339134140877351257091408320687643454529931939290723201155328479500514328960303129920232745721847934404290014219209323223231541384333069236877144356162929391484281855782833516089594412503464615152375833361394857747741417044236394348284060520280319858359437056366732213721135133317657098342135300784660172288235996667391910753713088235877354917707129738239695940622367818052541935044475397082626222814473451993387106004793626958938798689332243199755680397138515254257557057714162036134128820988431496780409472427334153006412966721875784266274003644696034170865903450137375675330515983265230343475443175149182143619045901852571839094564480521539804181849785788383026786556701291765720000505570640862548068865270219930704123329064582342011874093922012580930178792312361721983097194793282720610369561974113880644766814009007719443038298116938303303058710081057879964447087222711120317292889467265512622068589699278747835071975213251522016681160283537463442722784246498397293012542358672632107829234580088637907777879043056908365085973915053535878769100159178460693130522035521958623466035996537556007498729474858631290248799373791498526314872658539996223227907157285310868068133523746575910205467711073835317356653007880802993495609029169265767284512277512460499143207933478035592450173135875744096760355801762599891828069604134929959474740726390380948611537824432973113193135286084948239634997397180714674540308684476180021405750536300186383297711958629374470728003447793863816520105457825940826542753015972997864177766280071088489255610222716115906705873651094746231959250059633497211146070988500220176420364924661836152925971028162813739310497798942994810772321368323350668922802593878057355042886100617113761706667736041931101034614058934542786415318890656921354699902271379530498281184421887853156428047182904167453798542357254414974709472722659608999734893670518337795017253239445976133513705082269504738918551125091639802994637356964694580873238207203232882897635661731232280459090384158103886600168378423463096291976024580032023847213510718409205355377209783100810885523311676684233749664297450091886899705030043035498864149636398891230366492316938627447951087396615525074980457100253625638973318626683758590473817348464934865943821251097741694007891707533857508082017190326203299498768059138777987373910303573730780352931485339769127779223738510233365430021697521057392930026303823646694965706082247178847741720047114780689101841879136897671124591903220011387218331308258738088459710791802825968599138039639648267651544346767463680706876642977217973322066870376458793711084386587171369005530251045315483317228746405658050516513390868829942044266881882624252340000284195049608389631144925232137821534853770412409702776630478321897025034328744156685630827275902369028839132319559552096336450420720623096101973117690624361791522143493482941151668792574839957866610023534585589974912975665078854080842485781546471340857769678843095144917344963849961938470659368839013356499214884151741076540716039255177617981275701855143220985018829303569727607443356345330683512155622209597291968354140890338514813023608033221141746247993757598337016116926581998891415304857868510901453986228847374750565164898943853126655600192082340873987983924200467328728438053740127632547419795857437147470564668598099074557211994272745839730811983030424709741905138866981702801575214836908249342221710914037597715167891143569595635371971323025908396102253242846894577181553032036024258992481498654044389382199119361672298559684877387354786661412147503275549930499594160645524884787661882246500273630636297892871130516522741002551162716499482688769260449275012846652228988706176406295877927607047695933569235750881069709300785336492809532886118487153478915295249968206891635090074856399215511627489066037490203269787907006383199659247513599464512866232443549520069792077443179313393929313491135552022582142133604906870871823978189312484654746430535952351510601270872769766169299032743210868250980322478725087860240734811182519752178158021910788439614808912730277929804967729133830919460577409007504359309043333019888725590160608893043796225246333504207376196991244871371899454868737940121957632634209639222615711921354957087506265827038200706971464992058152735051917896958967020204527741806162023832095848597495566431426972325902424920670199507173558225751754559496026289428600861593984572868750313202798409324048915094877360240501787123299188215746434331244627606466710117670544967477465559686753747453115274837812938326261171781887514476251418293342891574139377736159445766354961987076714666594787195687938862882383731839362148159067759362517570843247127271101005935401561806265951191091918862079653975121536606492687878792757011275392708903315487725998964301135078622242488130633547446414981281474502583872418993515301715958844972496814650988510229909164568985065980503203105206682885857783626948388435502237722472369534687366259787283674941023604376400661406920553569334542024481971323943252814020990972173226730338282891295567817900051836849345330224061858375259151026856709809858329405739883997233616708346715178951729028013045500946312817860342562613753372505441273690954897578179543748286494742427046472910932653386796684021553022429621349185633465779671937660425469422139828581541405009437298077132740278991200343316859836212692258781510667018281533601560874431322324661935717401312734735025671022097526913960572843165737721105292381784490461976313685167113898742899239009142012561247717994143629867153693160737351555582021389778558624547683097850484764843218676391446252894854447647081424696339496272122344734474080415079352608766862834756867055830202076880690201753160703529973675204513880438188290988352681901684067034893885622677392702979362235214176501487018814894639983596987805205637026610044942751315898820914261728173331872217387871159768921270482052897351749494840318606925089420914288618263116466008984411327023937179958213017524683400462903806985576859148396989438675891101780802731740843871024884329424608777670562413724521450967349647788909956629934112991061579357128221469173974943634267188815145566072643964452895115433959606881466895064963664008170961887608266699730937543985832729914474226330279311418012585290428323792943203669073643941428177528549237745999474730142684203182443591745087048275680556272062101142968138926336231867228495211308190279926739010334538868427577491573548201117922001949576711446284750494333315552846333051577605891291617627819763642047805055213347948345961503148208035725094226021977347035182395809698003113681987464773554083160664470222707433085891949197840165020737578417552442471729467681438997275812043836136038243079592475615550019962189409066599697412765180074176568917522141108280133670636347309972612010085942688079419143318171618944178335471215067121009382621296055041197020823122428666795603155987354383400706002165367965814049540526348124162855976113551874269672482676233609319795864837048094988786403787798829971893451452525110798717995251681582703332294302511086230477023410343291448911092114208468449177520200148326954105913259397729400933216683465444104990762284581093952719598266631322674015990034497498917325297012806012805092359575742474474592361961684416489627538615782305308403725139228085194993238876878145704831449540857854360348168511054649409628081113191213787596235245266706688653547325546393115217526869558021202902051475011324121215280655065409625125943178441767369871121871638441141796868815074955831669770467359942020161190160068659046306911933966937370148820539530082146469822461380347189317127360281220541290348278329197612080357544565407127330663949943609729411370159463632380108568690617262282917183313338270966802613090581217959339440491765609633915355712359906048718209732683322596272264490872340395677648272594220044756759919740574503901159827762491797104776460444767372475897173746499789575511544904187929055399545938353747264887304265938066424958757077180946548254142168671143753513564036619484085592543094775276942797624881077516293607772080963181066521541402911074726550984051154145763242745979907358395667262726160638889681867503301131306297850933446745377799028929918356752546560112068934971916848196488962941896178176036557853115522781288214901507717870550883945676735960534691846847743858543988528157536367226576025261426402116524030885074616903621121808424701740851862980467458034542384401094848619101298934867502975708726521646185183892644047764375894646308611143851600931303952257978295843299618922989302392150071693747384303004366879322178261598345427550226592399571129263359302076194219192736685023815972609178445259760282257157278771618533690078843319898771015583353177499229824508167300931083422741464845791782704390861324880915006154928853606033068770258396910737928603532122396076941929025338729235817155528482341659557874799733713991463789900158890142508195442007709926451799386674275879159684870656750301655283710287800530142269997667607275686608620953121159643746173162692243064990505013794922045801953565182973176199938729243194508145081641601239750336680261418275646158476397508827930247312048379874925988700172454756849120014538485634563664799870190762837703992887394067309392277643978997976461772243080556038205386098747777591401148623823362321397760517554927826940865769331027076436026010402272931959995029985844821983206909190841254923723729151754558857797005075445146224542712908782040602794012983056118014063374868278222158461170207388315073099515421685568514730026657697169920634296623830542784729480250882517631570897400526996167611031231292296284685820555102339572603811564788022676550617311858519473044248793361147624555894955643224304228979748562719654615847091892163046229198494831502276254405335999448162659725478031617561313818863090003002817709925977175728534770474754032557505349566956180323672277573034901281775704555761841649139554572481599603523816081911578149297544688597883730441029686710988304594197673026669336072294917763737453283818474990354275972571887030631393143353511815512622875262243010371349417032877598019210277541661186993923350356914024679853090504372942834126823348548287504898925669287313230746014049042710094738970125759195592780968218449080611226928909242107986770322103800188103367376935982362215537362933849492445601632163952994144186853973803711573722525178946469139410392980042835860033492566312601601993952523075781429036127027939083639610684732338400452117143097263877310483380191562860561906854945584681281870967932837812927351745349394732217030387086682080305627920248985774303666020365299400425792398067509690927928127842136164154979392569471837002023078864545965563162791501787069988558256693763687432945079982715191263701399849550081704731816768478555888782648365957612208732164244994109408851123281273195542688666921925065896209332704011937692768322036967524289211226339648172665272246379692217678922144206251804745131559717528843972561893627564629578518767042257309110906023067601969991287680093369154277385257691815440824740931020700471666424366413236527560183488808600377707786603875327769027818176539612056629382890737689491494847198465829012209221836598228394255304973715659079170494485501375173390691760310944986883653622722351376392709238751461717978209246033513725585359676394385162785902661750584776732129289639185969046232737454596438963645124891135894954812623720061569633183072492501368681652797221038420086587151524319151983077702832424697391152542701895346796879393744801456845003555160002768385522172847552907676055817497632935972828045169011277882964378493192427507370816855493836478732306906614274241015394894876760979382813786274239511946672351517889867083035378111441744843275700131937583459795993086963831641342174537144820910262906406551330649321032258672152541729967668607874388660303705824190153409622884947144820045815797334153119733151603117152579732677868176520819312071556888730285730236068777462643107617572474810825115608259776837788828180832718447881065260238345705726714151721996450443441754383106800026463388060551877460048967341144028528234789474622015532460755464824087198245036553263957167608010095428720750662045984989039062733209951993368194844950488560705218792896960587473851468896078055922278941313453871632053388402098030699037070812740764333078554736974903254217599764914720961206891621908721351209546379542805724680175040384802967276714496368455779062612979610452293886665705988022157061193342024126309727315513958400125736693262118271936817203615856057774736249161745812594840308927815277133348870443012078032921941119865680454179617173892232103971157466591191738382241630808307488205722366664051273030512403742442123938638758897676151783426180668277183032030030005573873428291234935179560518451253540439767445359531444010839924128991237638233828534929204186218762514700966193105082319777353552236575027461468888397563416207358626336722151183538127706886645583315842189859401714619689500383948172623402974223267577120447614044619452034337787650813595648818689259830881324624211479547649156840679178573526645756501747251875852884047681392032595115622663759657145555978926994940115334058022973096712163234495008194855281265047068225475956663178059799792260013401150252275573864593316456415822288709690191710615600649595408339480593138979770630471353207241266272168815055497557744078446412649897871305502612005033069898886730928543251700815917594783509418498210485710881432627794493359043939319352426913102237178942329323121316530880045476194684432622994620775161800903670844972261210326305971262303672625878715340135372722012003349173234821061702902282590587173084562090813033956928941814162036805454501197777423878043329846661220105058925666705825226987300767486878679652011562440778828382553134916857439955115921002622289110016889861527957895503602758832179419602394374356971371956039110686239184183805619062764729811663975368490197848316722254563817719814757618297194641630201746393356030751349668103617112943042218391582422813429848919927248992414376311832622218818495571016650417380979425759983474890562420121218222161530867949502654170133125240878800312055880386302464822096818267071109538727026876337125873736161280560032972277976594930487981171168956804331477340134860323158684858761283188595424844139098078027165995679047398379117560159844675207913277706479489277534246199474887838740587090168593471582859831302346254918469440368066397328874752701908579341465294055252619924589147216998330084325267346406845846327410914107041293332360894605321060655210942769382500001132254276304287849924527103747959986472140815754438347198635577568509108576735726751065612715246861008346358006271900667882126014282059092240711028070820262189601503729049824201063599814099305849184803954377417535823649665463079936174870190085866615605227800498154848259355050276148647475543952540792379916312489852043366711115912808281391531236547326293197063054015301716971786850587507755808479752130933359206879541619222023903386183123738913711938904043670312237391237680637825077592375514285113012481626050411028359645867655749240451103293560052738088052302050089606489295115010619794130055010125856888536887223844496883233599421634470098329020815813339650388170598962580109827382266130118416988433340138385534542241415545184369671446408288156143736697306970188684889083146100922879545710097203793403192753910947007121058850045008991803447463311860385292636227470444443659093131485009288824512167227852606990570537072951054229466451359788530304169421411710611885759211808832435713096018199388882664030833099802241966608039166892275451220572826256082114508426313214433699264901265668544142746338040139337107426346166535039655628244423539203982890905964164724127915263809196510167345009300315360674448987432477208784279508180630570818984451059494386075425082898102565724880144941741459375615498101041887331578139803581310123800447408504232387335154593565200237616712305719291110206508308669695360263130335039390062696808870096167717709017772557241524171357639390082186098523618612884009692568832679641644893812560968619611797465922642549655322741930238037433014757354763886349791904170311126784942909641132851702175086014934618271752813184549674990021410117920113310239722906811176987440889082389675145930191916781533073235296549150214348340009257671608362294736360766106625524448102425199799246619285927356805626167822046379649318367919232030036488648763439672412174083257672942657025111904155313917540956466366162948359780961523948273441909709975711189977365681862137193754703604861576071534378635311346257419029423319363851818195161561288535168145674700123436156126321840359588863230305115972881514088784371186589755381476648867056544469095815770907132595762335562675905083727431789786003946865107995723689305587701394440960201084487775637141599762066134332094954739898057508224401596880215993835806608431227449938289756489748272770834588847656741690775192495383325476665620540337834950490324162169928103647890046855226101191330549153438427429957931913578714881442311370273056069187833062601603303719987336021582587330304052614473699848193768788137040696859908076001300731626785805002596379550132124923879878755076280706739475812840610186146856889013809139048217590458872149657255546602487364589558611424714716787440320367043567303506126100234501704313374417920947249370437281570904393131555648781621119705123866172406151999066306548378122875043398837567692947911423980663288988203443862978255989473865997913889574197155190916703330880698703428994744772463689441455916572157377141752292450501497255938833038344209658728607710208496681887865103376441720940258996809602033678331795248423477673394347710446926714417742758635129221306131402556218487708588993790142455804344453127639121854723248389103975604194452310405801886997255465504321059939902604596977799348662325818642367730688468360776758250109144755615598094489161568646751681376849595541783542206897922137600694721363892470788135365351032173499824346018509655339329850701122276511631428377142434246660810790983669312023644834724905614624444967000950546931972180416183554529794337394425247898227656853584303643174680215520990745240489801410733302407425657770550625481997883486473898869478034710035866414331580990016021903701386720590584705076936765054514626546886992198324078460183341142625148247008647636031753351127309103852598198730053337136066205458091165896942234946693038247702015042681939849753768988978278451149070449001238568124251740241819555042070938980346267202013887876306652528879149145320354114513281630653060918434629006969250431295340581742335218381988978095263807285428549133222214008472828008893482968084012316541062272666481274988523115236279003343622401813715329594222131613580152501431880955926860781446917995338824625577405531563952913614021491340004376086860784375480258259093167661545958197168815708073693675914948306806854859404382131540801014243362820894288552044985809101677837817949388982644103063864910503397059093211719415231396597715728000421938369776170825973929316065277730470496591072271934633267585187956649376303401746929979844386109635745535937271257928670504146067024161471837179510340068965761752013493317061918895218661630981044392789138035741974509829825834891897332021753972731458551829224082033529907813357875186271351905582559848833124524621743214360124256978452925177719218174953270187150010740757552538187699822076697035696562501027226814225717470760015170641531507201045051972195671689463542361723642384553787774605907413585208466435620338257686246039760975292907964729881183924315449727384059151895687976385255990142092763261907817904214672288876541271120553151315590398044048386709340390769721513860122447891765255699238309881981486591769839064320130857878415537498486274634245076006490577604549017501843027251190844626401522097279006112013117268740167215478965062501195653897941982567978163490562106609740202437171260552583798963211085632980230848408231885308757263826444187070106986892810770665015157225016557351460924816698471844065864105959931089367258557783535392704974259788086987473513128674713618560382050208317405908767655319784206693963974032164200953713097685385244458647110950558863728088414013624995529318304331297554594505866265180241210681561306820930533892228594821704303308684683315106630218774156583907208463351277363771121696561859764244377448266192668117615447954039673306848720172884765306035573151667045316154365446945268645783527499266486964525922839622905483160100461431926462178133727823236222859186744144425871161132322848152743291800575643681342297672958435595209883957041310092148354796720930000171867518071965221575969483802017945197948558869099097987879746297405038927636190346912403630806894207777012168736862301245170713653257925276944300808236329788828776895404551995442243368121520844436115267976196847036549063748457933300109651275095748766433414856927709144430697097246964166703316562348909243021153998368890923434115891277425288237749644116486714379786900972924501549681480515177840784563459049828773372206168527713757796181399440116898657200562604691609574087669494035197664847931124781659948974423116181710562083483524182000567200504847109255733273882121848727589159936427182863790095519704461134788815773634626190990526698513568171990970147766283309965523135775810171806556052970558380788883368266414563937791658539112967348326434271911622552460805914438728362050156957433632147330378544787942479540576729772276185890593541230474476525872563949771211751347607693405297802399056019363266482479501708460293357872142196591422743823712583190054392902691367185136285270488584343406225650352756269320448547135420403337581460626970262355445422188983543885328004590186766608474735430490340311768161744074291685755101626818307047768651956488586490854998216850377428812987945876427897294399589838881817102174313758532037870637273947014402062672305404188179138742758047443202354884393283383479759569305010079551366807149131494564749440289672387852335134811267856263474913517251386091389451725872606527855815386233505724741129383735897497674886365694664145956602690155139539699820358985418448141617233316475813934818959084222393369863674739542031342733118511511453440406644498144801520875172679084856204036847505280600664739939712926987700175607985564783428471299623671984173812860609791439751843287062279303678864547830697900533742543719369283011468762488767744143742424756931762553426068622554138935044671398628285625448284581225483000904587936775739260060299274703407351815494721166102438853335675780874488759210153039377596270841553114286819589253314590873168677463951148352670076588852275690049372449401792962929785805729619905826590355981674428585041658376569754531801127131080867172734711810071263322871958126536591681993012055524322899367312972390865830040603550676955722282428284675476446502469894140437952955024358781666931198193228928961621814845884849993104400642076314567581271067573045596596238696405383983496729671921988520991173207560796682956523494491621508781283787554850315787732478758964113834324913647377718833544583331028757370359374933209478767426681558789616743286018848895478463325278786830671814146311020141093894492779081229554408213845971924885775033220105022242689634340730058772091840141045145358154703925391227452962192242904154907539288664209737262145995211646115521212876883399142679584299509024027992072701784347281391778419607575182627221556554224486575388285849864521607097719002944028711600166419807840096555827807350718698695682423970567316368056925155877891518700336307663764530261467177878692459769740969546318887549980948943873707413416309216089879856981399319515235627764455303658072819701811002752331961102283777208797426198714844085418503549040910748789260286239456750824067290535115818424834777972473601724684562351806545416896388198227539748924269526656282376453862029900072813594036893315933991861439648187950949984189229026263118249330996721595091516201808759146783707607271573807343371065676274023701301189886506399786025177659321885511555357625939010053800345818061700804668882907119146095446683412908777140127968486149719076265823000266226678812818283426083128295404455742504272549209539970282423290012148399989074736322598578599411495067161163832688451676846734003417589850877838608208813961965778171874315601458477067465386109158590813294530292863956293667573972690599394260744524931133094227311408953600972247405858197790485077176645761492064840469762966493711265902241153015740250163674219510193853395631231626540144507391224614458074087273200625230493123939503914199530485874569081220584370497910832135060745143653123476907954188705312454036468596645293228367854442653430077169265679636299264512096771403933016253720345876742490230997623675953515637388739147049666457951330806761302992573072956711783481113423827976790280414636262939968292243750757892275127194216564073820950187122962522716708436700684985221569169550198673015078125455222155290906269820073871023707800775812603259514655529759691729409314369681280964958258161048294481498949096611806302179567036333415589292046701381796678687959124533345099256804906327716316690789091036605564440686042927931997012810596618700087166602239584773593923379705085223300364933498641884513726050662626907916431386419786055543002813489425495047569925900640858322133206069456352388315088470745128419027644062177928813645458231633080490749355411553727517653520179171863384408062850643684888173379704104129916629032568199260369966041270151209158624798368479124417833266276987187893823338108592274274174250823963123771316773685933554139782696821138031200750330022352757870709435035686304246580728527864157378838441583653510831215365360274582383426676566518855186760015483230664467706528786220532713716505888178641100292381197788665735977142386194051906469702042245030349589804873099450491147635315422764688647947353547362484444542863614892088947540090692254369845890362576008888764504559819987916795153837523218164554378915019625567370988078974205220466103812022645040775117594101836721312853669827460145921476552787282145928149704759573396224454369204150468080099379788630446529000150084083157244098262425775306401967628883913991323502164044000705144408104233494856547394859370145429557560286841126917246515285333216652769616331130335821609157069056232230620249470496360993879048677197064281032037234956437072950132949420437639816319109038636553460404143382694431506293346000791778774317340560432765239660868535060623702284279827080002432406240101677699415624514492217579505999163377988335556387279363609072332236747258356481549343101546426229547791474972677750375595046488572861023501976701241675692394817677296979521633734346221814770030123895194320798549146032154718030450867180243663014894192991407471770770746282726550131096109831017614592839665966196093477198494368738415609159560953351801403915154210337414023444205097748658635134745083858656544447209617904073799161264967804000357310916684430422671572386816983529544552273801823828832456747664009766683798648928044226694396280281808357691340229908500073602847373447875124192925245875602012524566802917042574274535889696589858759069659622487616485640061354266353933758435865541449896265423412038263390529897260921162772837821842998422545079794023946685206451501011120673918201915236218837289823410932019807619385695781289417494461216373763005569048318286839247594625984841277599072956472800557551371199988636238776086228939604084032317394743662876510928302353489158731488706063657288953024005213541520726362206070768717483775072333201164121200484907505211124893920038859665577733769370014421054043277669681824821966169887225141305727160597315993181726425072027526531943910930933406349688972172994582340105949724008257438059194760068559829727162865059424608025630908592545583652375299190272239496480880742180035460944642171073602632546686885267782519165677977967043080465657296937841759872294912454207526340657828848191753159985994573728025852945179184661132190499762314586131665270228055504134692298645035576186018948945074992031522709060267896491707105517611055843156069475259343002099157990663869276272797080685503523151643053747521787374846719891220364809909640294329441335500029332442159039805211425483344004988350049013232346722399073491014012421303138361880586092137835439155417153669330907115221895645571215673239240675074416217280701973882485245306756821597905282423976368621373225876921894352060772859603915581615896401209752886793450359955611248379812168015241438248885172274825712374123667394581992828054739124348931766792567313435255878632790906795236105659751437019846440209868560804039158956816739708587725612311057919953946997217540758791018301730047054072639656065858726490125422661004410239815485608605710614853324167398021906884867721753277014115667283453790236036740247386576601561984454638556093650470888080075190248632553184233423100290307396519589245162200487686787142955854110817557636127991583498013639416397425525081943709069787117896729853217599522281553510403964778158251207692541818088611868333664696273943428419734775763541812647340595159270551405687532079907053258566945020411860879702042140562004591390642483403088457778694973631776786173394957006033193218524399419647164651297184560286354709435780207956737028611729220211022593403290222128653132435945888736888927154117635884452168041097601876089915447632741531455986847542546850512754303809996970796639853781789020914951157647530336098820204477391756792208325322715235004503930084796244830462062918889873848537502891478138023377541959364363247568575325706967619076661508609127708025206959237630501973581880484866750806075113914889925050483661888764744083674658406452460113189133903025913641189780458594266337928565196822827103381428845423526560936982048509649769619321646019969110383847832087117316401181924478273800945523536488555586069476381236044554519313949216267081088277268840142054096882930941598118305063908837210409030292184522646515357798560925676647415089786744929651442237797967935524097452440233175486470401379151304073467881106079485507819363800043784645266104462771014702896880977766633723080349113631948167651724795517124297258354634754890115004823777876867923231689856750159508290114818730859719321583847623081707264566417741059470649487540287729221300367456436292357208641730301768654372635607738708103075676319235368187846719555625624438290662819531830579547089097889220716060044152896759431506026215529361677844832197018601206092882026688062456007716620576476428121772473012596287832637540303804355647070438234695811880946783721883027726698563997801409109134173066963478581199690568566449003200429704523231984944729432660427552006880432498348691624023660891901163778294107293828820211835468703838636468090854614350867622688386656171520925029350960044895569370369244574003831091396875145124201119675972619567000240773283485463067483832602076588261314849949600756836224347724547545022509348897436455012331538805913114373101331710487921241852401382334150733776704930942729595301323184170742411275694631025905747012577412332600640233528995152426750872580249817738773610861525617438079714545227382173832340128352149793470530547632130807852875436600668670679551601710274555283445473561527455780476814801486209480908604214095147846720743255858140890355634573932030347415192608405898123646515265990652924353251673307390997207530231172033633133068804420206599847537466651569861102120457743929476874447477374155645663925302132011302289735154648062830650262819065127638768905948699715693178178668149460174154216256521642582182624310204447290470406242003372171879056986967048386620811908382637094509862121330688536827626683046481909418893185639523602539950216519859198380717231863463462690391206956050853890069155886537418342194854095048856799666044903874786013812045841885452282760593823102639328164842119466618445318265974623952918690642085211550251596035646584571605688967705575774778430031272618827895520961664329868631783232325592376545365557976026375681566062439865915401465268512434836576567558211433612585110038668946937573851486228102504161275495827771329931667304715963353321994717801187637772131978292254914468469823079007835970516450076883957784350455628279845517841724472889979972612591791494969839409923594950196364014797244445753301935010102356437103832327341260115583036186961210693384348662043059971421945523481078336729155286276292114466588836778190715329283928616245761722111037679678626615717054630073068358813465748423250990677538178214128153631520308136620843823049386719986874607664439413661852696964987497337108893631952094430581348549491347225778206301947240075931852158310046203720911907808438341428400759927853052360105017719624934059361767671568990098335327228494173477654910716784634034536450006586886955105166697421285482438445672925127061935433115964587565701804427179437635856262651209820525878186936875309758455222605110972756971911383936141510669801559115184260027438526791868688767093393610294289825775348508572855782683938892770265334634394620260782368030151420405583003479258785845130832946948675083188486756585463552452429127786366129450072987567444727939888040737968297361028233424315389974200817172285479046097761292806605716292028502840554009222174288428702506261337823084957110258847492606938567448760736525800769918283675647780083886816462707870359707560036088588860365991096532280614903135869292088277929813838342430857291205558893330377114018175632749425716628622745151261351528078886084262141173991500100424094888218906745916717656898542727078566173159139174894615903610663466231264502972959302130894369292861835852480692893553124945264329278738542741160977803929895470478699076168869527011814667416547545446105381751660448585359245972248927349048096593522350270337977287416181780820674081140380600082860765564330857801450976120159709431531219432828980319697003176939832223580491056821088215548183407912684640822230514971876089347644694819756453093419757888008154560705977756194934055710281108164769976839243570890193059088311940148862175979236597214795837290751629420999432461788165066767906172468595395516681265418466998812445510397291868967760684649014104644055513707991614974006121503816434610045499374260525629609282232915784818806970606485402208119434703883935065049076552293293438050864504359474728591106570672139534258205668670717965047217741943799949989136235336481582180990726295819430127658501997891158052204677452890668627419306693848261223816539520287108092682854445195384774085743045145147196294332353526084265705755560761005833376222207645755008292095753658461219308893190028920689647460270979688128614207928667474627382183431091891696098234960529912957496057643831066272835217376257959165075574927465436146024290713039824941399675271002888025695913795485014465197340802581470500479121051417735565235723863124046583982116607158447564787912701384676661246518571345520018260307598824109637941419564617297587831364654439298249581779111069936976158525425668944100382656910002467284358429770108865095904670558534938853307944139986829706811026838839366643950435528306565503102031005517030135415652092703236496739716342721897217813506202662819867351070772772171993445536957370606586814318216429768834615763038310910056777065641123321360592274309971043569875206773246329918619803241184635971494078015878553077235648114766685233029575847853734870694050652796812739942170319489491814055485960836023472812559343745623765951826309755175686217433804087455304230041633349009400215203228877956266862902474419629014236192954473108000250744916748147472227239980381870002869808519556431154553051126510865966952850102337739969694463338355059586091631968648519867791439975954676044494356884302912364203374300410453314550140749728234905962799125955884494928543120358964598830481103612422295091842542027487043484610865281567555161525511961791313232560323850170497770209019626463905116718382677981145738726149622944436857715982165697426625729207437290656201837288720860561767885028205582088898646701718754195334103876533512370519838910844698519702989643324242929208964977157286552029187126790896390670848263022295383385585851546525197824284779864393938188766441751942491132669987255954947558186903997386009186038567879414309849085830974207044270917093769344820171619432106330144192083650666319276823562615688568863831393573903883301107671068931116999512752623895786086755325254886648488801645825020711839535735127622363292777732372016909809513145884141676638115599532255330298398029440055671371222439948179256863789461849974744788690007740000672101256492538913839780423732458142348057427003283118858367619108793132329686223733113396405462384641040260460803019200199273006083803439861802598514133248740690642427540304803613750974519765385633736708704665861163766930835001669211139034307195724908522136422687605178741740026137494743738527066643659161287160760434899287139935597476843584700900557636375974394550114449582665499785878025212208159565922757032621034279024499590884469226074843520071974685345746004834577613929474679689746466081879300137674645050060492625527825309343429758084155826022117904600477176681487532538178492077907892797586019853549489116257684392809751870476732780856594106474532600552806688407640684631174348723404600241913676930231678931205091127038852675570635613651430252864701419647598828259028262445628008723156590475390859862436298185793554995176211780919619073849351598042628086504342398047826146161724467098882294656948596351511966735075139573428939487472396519454524667133589217502280962131564865715413610011757215215547084292057633320918671039271879841464088988761354126910982650088945550755149215188044680880928285391318803656258010107608599121163009731470218700262161971172209472164728435357658768252099225765189542420413207486178501888041187515997167410687268379453562281138015970723177356222808861101211860592818106974587903793018240102323480170026414232441129842240458300343460823501717062666696237118574866508871869967106470329070862284858490040246741899331017288772732103811903299343563459641826820108127126256598770996578590252844874508014890722792547477587408871688763290023565659785385706235928986647684114991609138830361898511667778187764086081299110595202439783497739287404463505920855127984868406140636968433784998834824466598646674231073987029377939850125195871207765308782692098483619633415052894499973279574281007423827888890835352830297516120021719925370677814527680727920850020592929907832287973706764005467269764556923823396763009362410741310286616107961605300252417312572137245768886331286386116399916565414112494556195160298942583036517996687224471114592820916900019184588599132349585865759024574712225462563463740075753999619078959826780525271392798925648937361432946239935950185392523495412887488266940584987509702595778898075899495023452360520361345431457622618820937553986265418357269228623660612728722644737201379764947096060353669176359074944477098930438573984614324682052461702778887949320155524019423730342342385748747719635627356162276445045108140664227346456140374370462994870523706035793443876413511563989519170132536605350558946196962225779350408522224573392280968510483229591848549151034384617900606211437311972591255587120748784918064766544775946041506468657269099833252467426612178223317224592459873981074154115851982594404423220820843244549304958538494660365325308898845147412879905683071841473207741726484862422692175439940753041112176841740989948283152402004870623895291553048440386841191220009827470452391392277277184486557051989728004511319297843753178969912577323131982586819080366604468716418720336027669484944430299510504593212839792762437679959135494737254352385698598473265540387924012003265702798128189118361890690606472597433932106454708750623585373626616178020106119341185941090470056975502734826519037013557920002256041797976774479152986842391398469636783239074351096544538489035709803505471788349610986698894730979872933215596316777762707646365928281975915411322442736161053360269419300959952725804189094782998003689866617195122628850793871149358154582347389773798273451156989874479946190380666144535334251824340516865474031195963864393768073771600394375275954426413298791833085992498005621137749558581983802653359805553382500256928345722501574718632144412014432261371624082845545404745615674825878059809088554017116930330518631160325744302711990880165688091676795701239031877580584031534764021016022716922659401564118629034000821185555725364992161420371560777866590447584462509656744986879368051852969969189961134641127799329104272479854699862389347684160145748766399424625472055619785335793640387034675173661144135854609948144179294332969427909015952493656608031149286667780922995931405202431872965237732207472981106748529366529423978050387285314966131426571747397891947480660922637482655477708287192347251109284609839967590481684774704665367037685650834470567647311040636089981156537688077928676667118363918813966968317238683735562785097459044571895948904405456516531015352302254477530129770406098448770486377287516960807628774161350125186894360412018346340682345747683265507131885026312181011096724308814240415237879607354570960482868878838216691323683910304350346646193842463739558725863058561227991671001374768634882371410713213098079509514624455360567158723065421947957166771919338748072458524610410019309366824791440025988913828369907745742318314303799766496473536753453317454011734428003690259767980421377748782684331479303594367540640582582052851158000295375176222121691462985318348886379965016811338078604454657312050557461339768286032956878257706599568748736498404687971298286997998996309125499514136423696317142576927263818026555233101136001933560189547632998085013591406993563984487307815633517914119784888385712118773781236574354411541667369557285469857488974580183496638435623577356864671421655139821253027938673511321581342539368863381683996701627509472622669774087728936406240987552625923544993372461333647668595889184488603052171587334446919860626880098017298854896544408599459519566661921866306122549037053249144788240573018267908280669793966120673433133929663120179150226641836785229245691530538104572522672196341778072893868888554432295223615263010565835297255997368236964815607508907957344397953897305041851784011896369780909829288563123506297571129965554654683849607652102685647929127603268921421052574847662511622514198695223681851259889906290406016557003848850945322938261410951358781768859992862251921097003295356661887950145836344111843824388910540725581152604100172917870308122068777089226447258243513852958751461448123708032152377758919371474626528327808952621757453631697096067309454245800619730485536683778323105592650885623799339382292216755982247945392798943088937964467640908437076856487762237866740036778038308067849515634148394408192911697211652858762079439450856522676238042818633182914938643743312901510198384145167417803964303522045329885576060566232962032406246396595499273599019308928537846347386861352224122718321716179907477016195979448803163826930436163676542441727264111541272694088748614617465222235981410081679193322340564481209967991617479546182238410981076273336947459232955204539721576949418382339290927016030260380017771495677740704227272189248242413361556753832666116684552822155989480080712614797412321240683570892051463705124111446120880450181830992107823442810042739078287743189402730481601040452917477240771509083859759961532276049406085798657284528953748854543057923698423683434992606295303897939079511669857385528311378193086007920413714691821260927033713534152761717853258436022181035892368126953821350211555135796258200758145505172754227257021094112011854927926824434569021345325542408873741384115440386386215983934295982505129530186104358496134977560473070860452841149190252123202881995756541010845299454346391623429920077978428956665124872435535402602481479196264711512542053434829465442973132126043100918439349941272912373359704618098325344532892837607109010319558450096358319970636648328571212732923576267829110626397874637371674625969296541277328979689142216976466043332608828776008115529417559157928037374762203955218279530545943823069231117130776864577242487478226326524378639856904141954621477858841143601191607707432657338181163532829733369477271970973039249338827175709728403209471924929349135884214266928478182199368536966151841881294461664908808352459788419811905260905557395018991321169661536839077782792735775169389775110825281611981284005996401215388047431228069853686425117067327641297960428326407450315526311893092105468651258586979608520193299876322778309062488379363877359256476204768305327446334960920606395740595896456736536443650553375032224584780874116959476063599271981160973846749727481264387760403571826594764001748513649737258617544885831710680665864291593510012053442608397572924535436953401216427077875412332592667040612427066433651920376714825961812486808898418328716792024799489614365876795851134688633072340516798164517448797184790458147563341251646038339275326027523229851071145650981351593075842149700260003957484310106125070485483577621609618735484703844097810816819628935281806323198274481761435528427901279387135168628150341457665118688185067881770536948879889047912126064977456965152790693886553003872771464384385995600360386857439434799474211134370535295158240801148440474350310671916325862460506008049332200129873001015104051573268800476110332950393287703401089003980482432824341609574174045696461560205779924014142433347227651849708044631458612694763697335798651670405631480592277865210410100410420486431916362801240616671349141032736983915868771047411441764281359140311836861799975556204798164511159268662680888920817752978672792529783594842146599436805012494193227696669944418926338310643594397130244865712524385931587158414966838177856233008248644551565795236052197490429801850020659969090005979473830846649037684412085229304257574740195570098689361529619287071979638279842919264085300659245588440345377725977185714734107502869316940078685765406746559967070812019980727867665626139410060215574770331061379778631560260582680682342051543776323157453931546669185823873570988331043733458113244416564707163408241260492292495348332420378934161515783361974769769793358687299579556774326083538828518644575513236865808325299713722994492059617460985213380620450298967789637318125396980902240075183958201680269304890811138960265494038020592493415218166321576150688185973968534008727469986009050300466653682157228275731939441226424367774007489651160904064311113246143705464400536267959162674953141643089172125668998234483909894131830587747076823460707151353395342656316904893542638834722817169023431025157606397911329632795754668270665313479438752274825589360345045270120609277644393011961650904704193754276043316888105866526538492726680494061516787786333379235629157481696006944781349755329831593750873292287985890242320802166551314837710291381864185533320159407019471282775672234217239177148777490238321698086983314779508259284045853753138290845792968370049320375321685084129014070050831484563252713045549700550811230252190063590233696120010179269307404304732675233347369207002804627011282718991740314939985860958493411371911048959768831168740497641320708757272206926461699312112837426735759134720560118490348938952044428547899685626058565420417508703919980265435169751137338438773028018178131670289309518769670746715649446615488468310622882809290020351961823743203734003206977313224387785558558201831045937734075952955470332668445915976465572050760695920315415585334962932170065864394343534655642257557800729096634157536746829516086717265473484318279591059546024628218174371712044726591144245535389726060480112031139390803780829143042289400519649674065988738692960757251389274047821923930180632166904002476032652587007583485513270579278447628818872953395270468782279182896249533552149131399795651665083043043567649974188190125068158671761888403292735683028907337344554658700558377190197792977450811143847868641774660498702648090166121317743404593721576132021761140736999378133915911031267170291784361596901120833319578305164250220088156774783428767720383906088599769672225090961856521397413858242802660757594312628925077680786684937057915220239563885988158543126618945805916219406065516612270231550463621281522100255558376885728857923672083868564805851986997496401572870084661344844119897733044799231260992481403226352674771994810776044466305795752889592016664365216102611229079234224628979508695925003431150768815951460807870664954293121647004368446995544568402145420956762608721861428893172638207291848845772067286871737156580490484130719802946473288487741016409121086649429236071768222721670853110292227467033712122318240454535144868763833191712512872301612834119463925191236167164674980883469426172430724502551357039908178258326963315440329257817984292994626178643860077432783957691865467843808870645054444597875149776857862908698740035472127748062653178968228740611185223098397904992874715077418201779633047548876882758436207260828233237038590889891498323317844849409034698580415434874601612292410095013523388831260564646434104480318063914353410384678646311247820431708517653066570108914530887146197642177034520844131384007491419380137390910618806352303070083626624499032795690466115481427122919659446531983544029274784470201082584356358967399881824109885574332421745241546805175465553778893495795852518036742583717340726650654413488117543874944707531189742308499048587961336422357875276322163003608262976383184252666114369502261806830180278893340881232434353166003571362944959701438171494203779436663354807774834578412449076969099052375841040880340453637643791532024275182622790668662547822345998440133507069476021522214399397500058868450675254241638976684886046801958364527368654069956838314611977862590033860969341952253345365000439805151174498943920148741262260619740747325206228650166501513114533427034724804267110499360075589370160083503351229825757486088062301717438462185142192174032480651187093939635721540340938421244481688038593208966457803086857572278196827941472592929631624682464108086575835941822387451007929208932635011992855113431612273767560306033431466200331678482550885792978571726198095219223477124156334699123307741774854240844147105207954058001053186471447455961056224249560292391968314960386790788263973135674612718744278259589012042688105008290443017049447068095987312479198904787823604361672949814000390776563149814636945344089267572075649294193509731614183851036092767163427740276342258558550530712296005295344216990070227852284220896079887391679207683144848630722284221482293751364382712493484508602828811103735546492607164638714160803855812842462610150752647818037937244296576712533113554103735092539811279865763985174609016067930757582202690304855069415683189520008046168267094119364791831540088368220438299713178022797699790220516020122667576311478924170763557002806212352184893703659183013990851090627889262589570815254965349662735294115259097811636154472010711470248908490941532695002084915141391122281521840501996398043548084630422447152184207279936343464225496665541842135160026530293239001720470478451713737605270584605118909747795905062962585090750397984901446017633252996025889133143989725431580045224974999794046958428134718836074915322930633493275677725965702047733226109046136197533817632743972338896170149600591983781141714376890351558821278534025549844941180121346709165848811858166780059773742831157464303686924462157168435056212053244042241219963965001148979425561711711845955316384027050179956175660980590528186556366991679455062164801252599403383599617369661645570063319582199928543795667049813492769761448489241998857964040102708604013267634279659059639356123514927244844984777130134499431420641869036637282399797289767773148414506677962404863565641983314346754099251830487612755808495762733329714355622518202415226048769269323346307753486791530886967057686580525786557380873187029078518616922478736636390494161687022766066972626186112390056872582971518862320688074649272041056345066407130532580071648158662974986647658723590243181112057775889360044013588349396356164815305178946047173840251435501313810197138843169272118435579576274523379938224854945959031287653829117429529142112745605917905189089404959541296587752092948212806782018403673145353741230773953796728052161507953118789076419724908246249257897251887964874756123634044316380888806220246036746936213014116193687502054144940456358876148266531445103508339553485012385816785587291271961715015517064800732023075712365731072072243846040517704156664420290631140544540713447682976004223963475998751855746751125392150203797141159430721571405239927788549598004431562357116931384413075965579513855470717529827212147083267269158246617604196388234385371081812574962872949292398457636549989233167894568194783492657575309737172238081636740954547468618341518011186745905888898890857244659059874896375841599718931132672172106336879610040700430713948510693828024464384506028143043573105888767737309134748693091929225807611321877056020458599698375435260997928482635131541025652403037610986602443186534600271609472054907973548737415679352543275140577582727758567626296317737347987459179455616266408029865072264320145026549617877758467169524242107804137786674738968889420625367133633554574284249035959891963093898014460743771228319228970661917442691718087514433068880245739785386678913323845344309560795369766052703893615047999711320942011705052221881231288287650700742052500271471237977898769600715920090380404476426643893627818407474364272527128713184961248771229018254451032998155804315442302503886244482510799273811758399659580605364880452115526600166910061519293721732522803514824613950160476516650820272028796465284287954467599022172556496787872888164805238129372980292023401609667051549831065934981442950162990838866990124048374606039376613632535572479187432725002646664370321154175299556092139938036387095618838117108629670815419273909523916397974915743409871639337868419584569012097803006966617077958892280306062883702894365181773740129591856141982364755084180476032609096376151637898505130521157546901422861142166253623614078639923014348811916603806268925075234949702817211712763871070011198561723441546539784270033006502209361242924984756327343856216497869906859097114129542037037902876058205298843060044442986595352391256619224196711246434222097068595390972145320007581285148898183029220710804989099469660459987783772156866482625814551078359530452284199760604030871386604325669864936598093029982364629612897701234225996158984502807983578808206025185269987661945523352221686117897104124367362406348570874455045258959296112864238049031624160606041273980755548909872878962034326337993103337822295351980688018896682007388998283667238183299205453067877309288874470458469359368323180792487430267961896952767919421896476436881467920976754783184446205390175705185543172146961221162724938173371625926906122716873423064375443265470395547948007956813269148848872531914357146049864157474985068275832944744773735952788935659969852061575210702855981235569155694710925491910448936823096480888201416107243676319861829671751463732303621241488482749884458124414321569808649381478696777666996019037529907199968084837004523789176702904574464247262919834140886945418959551245514068146157344330963274579896756124556901301752823929847906253671216007602349289519030960983943621768753794180353128239212998800286104705258498539132384158753884802749479364339011974916130640261665461410731855215722194444072905116035595674083641543021370138107437213589233315498185682017665346098562168832726526773226263229588652343079225970723927069780622185839925840759145754053162618434148400049115686615047287535784185289606187954625404328788022926419051233995383805662498533101847910427268906394384186355076784436753908387091371334198676209454271647522983500015329269624260228590580695139195649330865803141275226480764570324721205542369243103158140933979413464766160967662456053340452142454328206429164580227038968882801252674461489150379955750374616150556894257466801312197866160719433433184333054093787043672810290696594552297557674449001870160848851079884218456503644441803849716740637053788504828442035255440929596888927363087672267473461652826742094058485887710848531252814650577174302093320454312778655658994695518320061361999727677528252946368476016328001229652511382402166080778910427550172458227795963604503594183509824196271510577005372273596167185940604165788323876439359626370166764056685445746304826622660671280910999896711692833651981432820200084644608229919971125043004925529278432789567741531022725372104701380538076054335307923396647640917795674085218865811444588941251508653170634493777274827844107976320762107730290292796932371029017642197732903232452342597099190872086091997423066416810261706767445538100110715844043140836082468218519261123191588531636865662455314526328211483832039195981632286858330886845516100248258807498337222941218373487146102211819759558558000267303091726221983907280552339177501921158302780077350535024419991197369550675762963536425573826288787777691295383983222218157936513607989042633299195918780226958428895280090667073154313221780133982171417705191262574475708689547332976559534488512103911503604022831063199702317647096555621091677595501265748656919333783178505441751652406918113048931214266733240016088797867253526805866546092452254120087717325463885459822563290418898545377518736180941873439338003667798629333422652677426774680780779695285391966685951479344084820180426432641885641020025952813088797817556260232514504402652413035050057045207769736984650250767158602657102842919581006031631353287146468607433054297842527854135279403535865150432814812403779822196165051320315422924210537170734740300664342604988088429624349945558961580298834591789961338650069026448960052674402551877851799540611407333958425858942668081953756699369642225412928549733914811723288008947336003355739894984474641164165702899325322562957862472349361117886575272590277783630592733905948497285881092896424761114992444571727331589982659483852176321520202370410254299855950629689737893439133046369012934039701174640330250014285258476320261564970076144591915954957284303718190097005231422011386910768666639924682675498817392697546383091922270316427303227187028663611913189637559577904816622041277268792976042139254528521191968627165964982424514065690246970243092406963942267365356041011240284292329882554350852723224906617298466643101747855096781622911081262657764654045117745433613798041032747856206944697999564223425899228212611002367810618671935407406730270293003041134574309253747304669102149883131642947684357120359462282381868303532125359426692005497220450206486207864056794280859009452772592742139100680853448110330444868765707150004582397981394163219322479508646398711919259052637129605048948259649481223961884692590611703410881948365804982804725283548154326434205094413009065763896098268019653498003535072959748173240159159104502806885034008129957752963708350142449677878755432549232800742420274359270458324614531843066423782722333698826663157559659660639114092675122096950537843682664107741112075584247677429394095781658794237930482093248072186333975275139751107774358431633921724498319433778142060938862177786668140576465329876196186930413067439915103416974208683847184283156133528198362387504140766971064861900576652196958452952355859480970911479362715986650285543389667904790034537421256324380785025541323252663010179454123877934868001260794589250805716231231515856944519771152406807858126296770288905906998478209734919381299209536832318674235983710275992348901966214178847957757475919939957163455429221936790503095912109406156963373695113697545390784572451636495520961677946813104356676643300291119158008862053328446016722300102116942828845426728119815066123191559023100580233203056746591373891330771558763942785590631771713004348858288352437901999680404174244406207170926549887759705823864660003794111418602977650810308340413796883374671071765711433895256398122166454969538206022608056305817457183710283857380381218849603499238235664638568095266258817784768743227061916829463539435258707876919465628862622581792405614963779572009999126160669811616731871327402014839082656728980679434941082672924001272628348740223273447120358608429824549921891519071759635341829909459658533946787475550838906690250511775081093422409780558869748937555542795145107225978130757375779965106325755769662711010595410951953833933123117257410946628316709155769766685710720493772938594720590743197752582426779014373774518534050475449446496906982789664397059855275420367175430166338357730648938964854557453982523172215849390343099513140771857766534517340768894463669410670157510301703459494984826998317644079142191777002181333852721445543486708327302901767341825869735191134725576960316009436274047966630142767656162622356863494064969168927263110508151730522876286099785612074748466854997218083732545485859563795461194526260812793774589198212431279623604142557974523732464760423846723123589601634617915244067432945252704871891930262385736523741071251004586369172458466113694682414966429942160587631402242549140644104325393371573128938277152864881942961118632829004596705106945377086141982431524667054793251501059478884047329496221406708826568228346757866804014856775096731732604481285139317531683143965522391672372475273345881814306237383540940995220405527977493020891565873772934820664739495697648967579570388040839998594449123981428538967074646644445100264663257818207377135920750866727342783908746788417905323562224293103024531925739062683641697644783875181110775096367058200050607838173850602243351634784121978963781130728872050810426350500427233891566124471821732067941852724583330325879454636504745432303636906945221195513565378268416589340751579200234320410622722970018172336646887163889582550906040782142147295422433800977084376174989227087393908939028821406595859247784340039453773892210046543186929931211030219711489783080154811782670802900241122057088892811315799843119923276662209595355146452162309416352960003014113190527893080910415643285992766957938037468167209960069314991886325789312797583758029130740677237431347496288291932948977939849332841390927101453089656262129499841621654033269179480495400344791393144977007009015154206275325925080281161164799377653936225187939113459584554434496621036562243324023159449969608847491550767366957730571632821517790016146617231447204599929559570672756096214469715915977419338989251310490968718135708007849211518754361039981794215626863345511867832474909171709896013976754465542844419545249159371010394600644276878415658865210263633930898731960516307425497094544341803312457548925272060010490468742261624561808994588080126842330825300525080779216465910406522945934142985926330323268831036576240690696936400769545829899102768286385993855195604796965940167160849485939955466711328694328883391800835789055812184307426353352254318375079049012972101325992041552569578681332262493725024060416548446741425528523957035181284026732445124643708102915607018252723624876961110579972797593871722284203101170320839662601141885282093253445448399779588355455824563438175102498404865913798090889247288542253054151639598720049585791436464050495836981312326491855390939077047865606979772111800505578029074646212055781311925544894304151269103929636117771968009233702998106290921757276045540450998539978683590143387479444743065355334830078484224462870193696772884464503289681251103282111292762578518452376772678314315466295606309989115228544149524279787278241333237354430445505637243024733346890989087844502284206642890502214922449594312824121060591327878235096204949649432867329600681459178748480467508682019751252841950533574969202870121124794517022855681662162363301826205369733184429961800776075001804128355847568093042897631473605479173557910930476651696653161116161861709435355705256315279973533560182326424872015187130080731430592809284924508434375201256610018069714040258471249558924685393241308025710684590676191771550591486427749461515784783320107680188471208822661696937263839060473028421674521357253683242571131867995220075289988528799606373383462660791044158930600535735587825936391541321618325212343957453587062617049725233518274918719074908770603134368148773636954854309537485173695561801971666056186810729015210513109884156128473690853292282028066631208336184103735042014190304750727609215178931823478228546261786331935524293598467958773697917638665558875502772327579733006458529407713974584166274558095194100586753417909588446555652322722607103710596494623012486605583388867075864287999172478433474245254625680309896082284387144381129235276372358650291705619226404308640313510189520816566940132301283463228960839721476218482298281092492906937072512930790368066239373064895592367507951770816879981810736307327748203504655134996571646893816975181579006509592308988379728912216479742054359257219208017596927376243221343681350734989458388597322801579341931655728177827929218517268671300750562574365104663117365251046638883088946474209793289666166164539528971970984312181299161010597100537686022531669389350488436442277991278591829187480766528910385150786744322073211087212778901351544213894032327407256732954224660519171293323870340950721819000129250440987759447858081993901653405380314293286608111823714072177511526894871404020513401289761060001760009281351980427822462309780973243089108093198832396600409462338508852235965991022580062292071935475971203125447146265705820103780502966431283666954041341279737537934016449154744783888312705393935903185771909620188306646575058740218588117552984016937755486683488945442448562662712149038513226985756392277821939335417858283669137741951689854008965222431919924371211728189468182195955638479504152809047007522544858184045213775730056785506374054152112636914942391782877452662350658913065877218987721404557061526998820113930931594949173956343728362466665893613502076239225130999877815149417293013033367133784449628283419800262344775038760340985999343906474405161033346960014824616868376608560090628839930067661714952411941447842720277762063395597311406216484777167496405598201998520420313091715481016227418296424291525185401258612296293243654061820355848165589914925129990509677266053469666834413785175241569474608455293291385038384798511668872105428194052690407984096266140385032716152629663204375734607031564582201016256763539363736416796496103487963043883597499209646159915794953875920619974770122513475878199759134088358211974059286344860426109815360674547759972513934347947539350420146455031726642248445777239514068229567188820514163239693795869703833449703970341738425181525777552575478040724744799230828067709934647992240800552879554078256666002078933947266492050882004027978733053603953978777341020064951277318880416951188035345873137013562721128797186152981197231168582782263772402219498744370160093638310707987640567880522192619657913958739063475227872458265580327501618852136206061286346575017067312558792915036851857532759689238491686863798200499918678153228083430991856313260280767513415834553466122150846843887679072256213930799178663676752821846010037781272951165436628444572492567409875886910945908363624727578143667906028336453646579629474595452850889165569606921217166490568829973512566299819468408835825235272460015564393617650622670262173470196330845467835340063751638778818125662224176009241284825895262493583143917343281601222696778062456603028878470108230395029638499558402854727937807282050122205959047504496074119490512955005681442150699425742145336292522057154172701352655000708443584436451160102335018676537312578395228406406636737297606730974508620082991388952217220998264294280412140665882470542712741146522392153003840595278544155122881305127097388613124578065839763571281658058912847720811843729751644310109053057965466659154894994594617614230334586812126771595156859875495446661694901531407193526593540793485816861091058606435340597685369766958733274821246547267116451839859030111555068132583367694500447883501263461118893189945317387242570391217870741452681330227190736741950452754207052630258928789161410579544416507850506871291665405305283507733972671718506420622693850905131647304122590347324875142561408626336716762782788424277091712215725526032840146604399417910204855751527550455593324445403360927012326667466967480389410637922065509186598195459677404519718845001002222629330074570711589805246905523900338818102289603557678200976061412408910928622389992065405394335736207320408266366120992162884034161619124332526897426010392692915609987446862131983451725038788260533465610450468599777222725036859272867377777811167581058597424651025741460322069870272242175361132526433676040700751729011115473490081643334200337573840670923450689705993054038689527138236867314308434408239303862368142048344481590848716673913193580831391496141537916139839987953092161120158122647168322520285507380012461195617598446027880086966828504919931229187435469629557695562328693509544114216133590406375689755215429132367772979026188573632321228252090006094857060362508624328140976927811226070259463917940643507852699356562728391314258380732855236201523925776449725145894369034120669678304879161594848607244787487161680643348955628629495526753634605369907930364427582999403560990841492698379906799715365348513182411290380066338363238343969867275184281315005006733737053215685805041593468469130627801025886850876894313130420125581729129678942418783091936854284199784390790442283583788147882582180013577108679615586958714898153994279599964533813802854644872860316749869975170556937424856092714242719013667937404000391459350311506039838927454776268375447080435653976718959500265584300198372512258723745911564117189653653590276577634876266953559309297788511715723469098365385775802919607266847041326781240729984937209192207331734336852715109667834612524767195202545077325834640168082570313135366881770105517252416753312495186756300479070781658474238955629684157004156037485947373060513291749571275363023081390973860555420347166964767131724476353648864285348611921992923143442354670713119479987272742647298700409050942985862702435430469002892242950501104508737282539342905440731512077177513323698686693207120309592899136717684328315462180965819813865767167318083097842938548723775705256953553633183955275316240539670583713346893001917734005844217539005401698113880918711289129215542559495402302397970329157062200454702102103055396354451841702167993985924189745246708695860754381377614212431765355222778639804260122411820137614442912922414143229107908013324804994149435179797389502862300833589028640763491305531620706855565711936880799910484227660589830945346361303809791726714460019904743742066335547096789564888298521404249793475556668470456379092035293647344896363927002625101446232705667713940213413303486898450442062762896067146857119980216089098331221213785500827649353488250948639212345554831699209116142039983035821256366487144341187056833303021786334473905594276753111959127572426484557026405378246468731739001005212980276646219802809750087176274725977106877091525076550348254661775847016571676129306725114715116878169324889570188689372130692439565265120493096480287436995011828405490952993586620537621578219905611475983990629498065420048854556550902240033627048571433511808640235158212500844287778559571758868458902768016281433440302139187632189954982971293335248467514215635598097528918360246864313950301386936943193414737926118003709737371772216725619468634296944819786609239070911983710405830348601656816287891995158337382562511134694203837271343572602738267275106842318207753137418297165296177074351907131168764213775190762410954781434297708499386137788508727096560565825771623311619709292216092217457023432963122974157151206444043545690684593823423963937321458959441519558685184622897212746173822477887254710009036657613591411334798626327941692342757504911649859599682439375730425557701238244792998260070215049124363942248005533513727528210298026707137157705806967085671782722130784575153417529151438135900814010946319841027960687138169354149763017433701855957304605567235503191579201580041393088455704302498954220261037670089794446946815695356373465963014804975423133949700108637805223313771999773801633002705490362875547365258717147831743177261377156519958050707728182971736331847376561607621890298079149516381443016421576280850408427811676716456681377687338304950926180512793905246282608984251848170082121107688761609339867147248677590213306744368241572055593025952611887006092386656639292033595253239174704807818117482185974335998220406548649803458424717931962797870447996015490106756038254562098768801173310598410605204868496054687951909271417525321207133202573764165208230388633045413576270825842100376703168272675902935223390060124920321089235713744829703059034892042707474287585330419587105946785113216283409835157349695178889655916025149895305842723470133098614638746334455969857803062315189829969489048091318429525585453331670930019278233497011805894361606717296630234356639698501720187891437687113213876258699574958228953160078156555373391632088774984863526195094491623570939870653875012517328021867216382198828746345098247535057829069361705201919182026239693234360286093064983735632333504589139391670407053907237836497278880678122757700841131233410786575927872363350125822492992960763634877574124292486455723685005956764027375196023750410067055707355619675283076515970107519854597702839511399039940870235910824829249664319264358618290443208792230288627603284404982336277756482141583421582547622677204603821749081542605419663801083591922931256049413441824731705716710995678351823306468515097906876528592976152260362076492284199758006799382451590130134987833600290369324851053630987975998069198893480018033126860513063823661977795484124002454703066073308153213201700377984232191108201603652336038172417125100627704121182756854911588863470253188112469366341074383806701452038443102165380281434474687491642385907348713499649664758450830472580261138250703104836054106055993404173784716401533946654240035741059491101450881248690631092792168429846261133635864950506986981982730246465763860168723805491717661184669263591169865235356832633244682079046768511234845539904413248198287972600937924238123616858883288854928174938623426324380518433030506684842731601311233316073917919724119882100306787850510260263604670426081550372563080038246753889182386028862093905870221878460840371805329642857128435337811272923221515229413915341478410642040233900919167351160922146456324858132980969141973813534932331620779018599552721310719635385903195024531630233966243170543484976226300445009607704744617893917295464216618294157927851525469755765330515514230924182754671312800976155047933775763478714296226150551498220029649040948376263354117616696489021748672788402963251915205879948507279041020916418004794658986429253863308818765904900080425706096938759026708471160248392588831038616019373866772337645947453453777887444458858393902606525595822377631934973999414876856884959617153493622892209236244024147389564262501668548057137540903102095903074788076826807359061999292798196479570244818761459581151386104372258506874314959855851801325470004018027827955065394467446600682208888445576436992700805379635921552028895132399794492585821198366553155231866412505612938450967838021489382487155263910463250843523931299913159163551514006478184897724157250345121124146793843916148446524672569836985361248870683477943488790574667673803730210147201175156831785892491006141407068701623701634675041006132889578943754455720713031982295522779758305082623665430311612796344354947763643808036169646116648236581821637709527038667702179792127203115767265324150966755440878411063631646840671760158706911029931503368951704167805298930930056314230039511497137052967129733862857015071678948210997311198990409896785239495925074252720467718413541820509701003174754891763654783611818952702831615314637630776697246907337946408355927462086710315673933462993342603665882751528785662241959423594851379902672576681055956573040482942387141626185454522274055206151214133946126624100363487538117868553767955011436109568833432748962220484061008487207106865211469421841626276522870741566728987715470234455889631084584765361670454374163112803970279436718633772114467965093399522337666478678433410100405452739278505656999652082445893403014220539124539869016798522751795372496120236181946770471630295114211473701940151034602680440754830220186858711957653087597117087086663233272325007612522549573134929021890493341043123245938788159504962784996066557976374533984935848172541726467924008153586369696096980285045604033394136738811967133472020108698807003796179773255905432404088251825703998040663190425484663373820251797347072207636079867081393274459483752317426437425862031243343348997821937408936747101734286962652016305204934784566940924703564054313263923809495965547036165362890452423173795630064871643675048476216242459374854893555796887292241767638499674001511760938444018237529305095769801561665184910695083848651690581943731309392424183528472996465619357338514074632668133917362692498776129252614706289799370484255684295652051279861574402452349801909441320137658966348436144081403198571346955300824772336096615853547603008084427321269162785931821527300554975663028066047454934456971864967968534264330456471940627855412377671748659553246785909133183786902327313447245261344296844293992022558612044974249321955359010040549168765725959388333596243699884506757311901298499335603420262640603987452831765361583948007415038631632294048619769493256532353988275551778128030807841087802398292472905958260348787552634841751585415212080161811518166832109386263839144058722358259387000892858750404479469349822003564196187079466703983553475984036878809490188962781146913214108213573760991744923709437869418362702746891306150966010232229296195130576020856097831184821809463163412328095249244895425118342139796121561564960129669650403171282075433107468741524106034025538419902533967019842310566258682388255308993423131288088570502348591605513953846944040630123461872819928285121747313523241960266303474813508384376713231304810544519430665661150371552108096388281115560079487608205313019863067699180537049762329666317383335290734878504151660729017980861536948803850851946018106119299142632621874013867689029765251611816544770156630215388540525420928949532981072384760723636421023334981420513736571056309915331192233145287166985887090479695114991777264385552561980998887420760037208377914189157899555866543452184267707688303757797555968273270560284836698353748367956946556632132889021916377861282080113669264973819362632586428900167153612165200584099056487396244909869859584858154753243010741986660378395370880261998955023134118294910596243927992501074284326577755038904540759553733696328144123671111127720462552448223045467130924933381957991320545249439742760278446528973124261947783510570183455813661144653168514500034479775335086780041977971344329593018966454185988285679445707266229393361978795147563603744388673314371946533725769245389599982994837694865557907938396783506792966704606436333472147166648368947065186903510871350302182377594002870939864642650461290043008805019523686511195394129780006943160688582194517396505727382991908998335695755225180768462104270042225332004351927671689295744881633994406409643893639896171424616767082796444914039216070853552912168854698847255447383261588382680377030541936235886470805409376571235426250888391586117724492862198928869846361196531437504927039196172839893156670905476175211635863142255185903668759490852717743304424132070410504782233440427577594900254022517186236135024241029734578096186688867916465901870840551667736123731155792301764849786242689555591975497675578474250836421848022152848401856126587417549832393395542195783694807562755707817256662779805522997285181822584200674542738269372162887973637605813478750116560117270266952332717411752479676950846291462065298407173046719881638766249860599902724042161889711027603297233035985270027243797914615863170916087725211348820757693085198049997573922853866327056970064656024107255234111992237640833155702908236623406470511300346700712755872889774547248624878232917011364294663984999630476272860968395099381992224994292750154258524315006453493042316658586017786217901542755862910181267483035071185791500374478215385678951768532659462788212129299338077000670478927764269182598364659614014475472102519712992908119352373327734244918431378149522267212545716847170998213634487086497569205177956823168273398529495977331632164382166715718674084915515565962375181339303164649604663037450026238467927398648615428523413671125674043530625070236833486988893545132913832632031016283002010628708940965323514788170850989914398101727678313493207559464576281785942351610713153693939612605282412765556278117673581166935367199709630907978696460649107067662390680188982394027986855992084982875890914679493438189585573543253618263806031458351045872214932474863182054517707279400925074590893990743292536178602738509156618996450174158303572187451177304710614137841139538172500989050420659288923309678190212337544196065344109213300534996044128654481576591141188133355646462882093802134512355453950145424102758533763329252209117502419283505919352404084939763276586413925853105459662103272688049261054058484130833440140476335702335480764862778749273111388103843933231815247518724598290024172768353974235603139954252090714241334504751623302568903623424817358347597748355606266602122274267987321585286152824957375151387821492991690697972484943133712950705352209505442364446559423997933218141946155216562849824324399549242066664931391587957188071419506072229062145222214786914445631431372109736143298854407529145955007419025193263139937386071403422495674348947041557687279228061516438650459461417045433481913912274538579570016343943783794226282641959437076784608599998460811920635088635635820796444996166570285818388920537238744652901157711235655203480951770172573488063055208950116393399830170934785742288311254263379414768620112388735897931246789350810548600171246875836188220013406932115886329084298335303482061419781345281313714448620701670448284058078782605162106704296423094329629566948062984793618740354645044439624357922917843049464218663856023158534562622809149011370526839092711528885796117345409905836805396731185785907509295595899909029536300215211869816798437855125936473669082996601984469531549098959582274804739605382401876058277198209684466003251852298247548085385267327231401022751435330967580259908853995364891849631199167296319116934818929665127560856032876322970869686582784604230177062872426398236404177761393119620623879071361305618943262834302324533980963885149900517030559621574034398757919053024626797260225879691623800063578530004403543484014077420184544644851325619509441638817474069087866258378447952797564385423502092704719566460877839679166736810142612849434768661531987850356414614016538143030938926743254484168571054783814210141243788478727447359057215760738814858720505413691895859783359177459005618012398197910189647499146619349263708190278822307838176308983936792573711496949381343620305203160132454172257797690470940414053845825076288415071965573375149421974766308426366914605327843364272274324866651599187329435977052409914190084197371417729193376615401922203793516989841785969760927952405151007067188359559309184246425325787181247282129394989367310560937238180158095242186487630762394702393789307891765895278942121308210365182046724333734520438271692393056937322135892823423398116885100325594489129899162000498531529950099098691151932468442440807436498308983456307348465420751700883435500411274962620657270855110871399014558198412953619229112695925186896528693181026177803741198227058232096329125708170377721889713285832044186362608082120603602334896923331661902727785293634977884100349731757478160509038381612714789949941094366891439887306339132279624573610097941527347343909773589388953598144766830256005250073446602432077856505435232933450221503147602044272600620087496666649231640219880198762694385344127266537766257996521065036452921298747601129148376630924551611763605373904177002515384266217119500030032015989957273399616424895556969490927599366043375230430716216447004953827388248738349168049348013893229701569368546128538069141272015154978915904652185132913507413975536573959108847900604151086223441191171844303046162264062270842100899035792014572390393821953489015301402246580519134386843949736694790232366419271836377955193153730929638766519120053234933278670061234046070645742226982464150148394780094583364625773650966352418895844259431433501253936879155351686555219202470436657322463417733628022470522016928934393988289951916918593024659958394738760390182378507528907715766949544951255432994428982297764427213929029218978651369063426920345651621016793308424931034402634433996224948107598897676116875893364282341559967522582109793275367569275207543457753710765054875300984384976564065140955276171742541448385395913362857120522536705320850341220302418579135274622088729524927298615619289230618633647764232059093610373848818155768281902059512272950807351291020041176161515695971930195908059875123092594087761458996161506503705619449665742753285683722407389446179204310431507111400623633704675025945671225207733697728034640116803681544236793138662511705362086106491251833184698931038195563956539203126302715084931328687993198344494643407563413235924283936397360837679590843306294760416336324228567918858936349824738734436835411406146213925756959071470280869707540379259275360591644999408114128641465448173462432714899044729438875548254979698056244489051802436439160421498009605624148531345973850112025778158416428937901490492149413029574441701130800048144523543701433248244880146240565598220656873436344952655185277029480504255825476297361709297992569767993726619289214680998417967191839089851270391540664725641677474338707142639896943390756719843578510696134160113339576037478943838400423544253070978836294978107472929920137101766490077656785488251540386300636141033163282642680999576936240323831455151584280200069781619655107917961239049040005778337297003856848521363612969841697323676837211263731251813647020143449024566431067136841004937302341422605891114712752297207997846503020490959820032638507605993271745351695290659565908750487347486602715884278864402936660464162032450022899042275697966040196965996447522284900280876238305579685624987866398407221597482763670670527954700291969925510233793724357320059736681018623467422992460103472374060572563528319258444737025180478697814751368691962424934099565330575708285043214067804727710611773384084914538314571003368542815120086764078759367906415666435064296589203737747512372049432832585798654005055769203627085334507590329830266125196066370260531281389876640802406493383362971108091275415808753238108177133058552088749186411361537828110012015883345568470187090851101030934469394923290775169342544750728424940129972271386578995683233227357001918682968103217328792121409487760557997649593431993058992264456216545728224508701846496419468025258080614587379292097244175888357755162252201068118824998724232569111112364293047114795232263180206151215831068251482572162066243505863635614796434643618414015385846583890994868708143085668709577849046193920162468417392507456546945371470071382730334508617661191948413857538191884312551961387653720658086524424307323233872906573525677579858487439395847370168713683433435949083911141232401003451515086798403190820587911449306554650257128412719981357642884312852607074543428855835384252876699736160208660649852969934978902683808263290369670875498533907315236613536783776383987317398527323789983132020183387660073443536328444820831707262434492757892781298324814677894781754181918055539548933803380231147613491047734896517035831684212817348385153623881630198918868033532128817965115518880102313092126018839247087087127399639729468814192177273997762432210217202453915411002823716881114637430869425120222099537948160076163293395214265376290279489079546799273046326514893775776369668925204331963441616946285220486570853536603129718127701924815684977044865308237388016176786498868260270817877042859544505864443020259876228480570301333252361100229222859359963991175736064036732754667835919675528938621190775152421169492476239385342229468493851701103052052148135408289272625777172596647116753656329941435965995516003135596252962479316808327898961844925995484612236679052348128435461318841166350100175183363898808952937963206046144003301740530185668557834728751699604271947396940759858671696972599648931535252293398793039057603626348584712561232844108126927565610316172939810679208831012826498531507135479178398254791086884955949630299492565806856627150349277477695518989842180331539221942031067482417135590207007607889180790836238596878731514860689501509804097253472140759480835243778779992562643132450167227519065504052645932849767851759741999844865139958081612781966079700085347379958082851732367260776917224049926452858914468881863842020386284612632455870388749540787925813152682811679013808900305774377752388500439138104288879574210867277367325531452915976975908692722356808133279679371670520971389228937198581355669957300498628793394394018833276256725376695604176152670913285204011876080576256253658879324182799948845643100436733226729590821164702123438015831091419075366284042147704853662741311349087484323945001505564231778738438610163516082361978923596373674082508800102706790879725868027856558386454068259503699105369686750683999398797547271981147104769127585941376762508965461510449602295112316742294316420544137349074117921714133673704701244410452763177744746416692877646532563467770097051412309708903838542256898236303278211559076448088501166982934834848730209634955906184989933412295550981404947717345969813239333426856910334678003759527515379523234262601514201841742782775688021645637717607871446511050485695339832513975086483543641110395952787375879659182071784987150089417780773066403938317111343561718972583091676061075241565470135419615549028522612676117304347756101604047040003122427383177926418189045602421022867514300256217470966430897963317254928666190970779920996484836765102916769723973430896705723091550657015697245606760899836075951881195865721851883544036116450276485360113913406625849175485798721481124828772052410547708133171348667311964361526244401526848997336811013496053720626331255578225919280859622450960370936941838589912006739804150396281951414103414949856517323990158616687744428214024589841670567465600209281001841315596416190151496796985451743752655943650450147709868215137729161029387415484530949298992615266026518566017072880992186665513953403408216049560562369037906320576331831980166315615035534988376485411211511625111020503185978382037009953367088430394352565357617954862621677331793381187991561693931982601408114984343935063971909416330917881271057600826057275422958100144564453692163602668074797977771955071769698577976060139370620922572007703150599067118158603440494023572587685482857439809910127567200967910521368649831020521194203796118501138200985903565021951306132386980426296819763522303210685753047579473040218928779249698786554464833241036699879095750811075358058516672668412339450289266439353902841211462950592401000244369516142088396536707466968776959879343471301619531904313912463962318818004854864223501944681901839962063668928974818911188632820600934977284946179548454713427497779568908558721477245504234773285835052052114762750818048197273417772750354836968434522840488827038176536977908633218974213236470011854084805826593643570900814784964670101801844179372142682705842939844829924622528837318565399326051612453827251460251527562708484805093968201681852776244400978879459989097671788709253112835982644757981202353628871068754134924656529264765600212496593918642593869149805475179221323148513055543128299196917609146999918095567436180230314109395863908821516239587345529873156612065805263069687337651214903320496496671988298233788548690633741050953733401267709340699411812100256451373877300999415333005683038639125683530847611529589342304127105401595928688582513072176249228078496904479428448371942837137615332097315426088710849778735303465833231637028919797680027206757040091111204069201963948805593684487749538075057891352431046019524449316725182573688006765991376578940821278042113383462824976859642404378143243514596550375303433451292433077726548582912593829141696297780465922571211378489854119045279607203364808311057262222845642919720016375268532092492638253887925327585577011150986189290911189570128137225692583451773204841030979876942230535316034815836417242715396436825246530438523978343463751455726850316790522440967482810332674407039769655297617064328666483537056400379913113994352461575733502037303746638119924249786783399447231460239803202590421572190606768513637498248453332948045354036674010909989660464560164253629256989949894902344130399641910477037884429684911764775633106143654840415209502068497336379433425075571758526286902625454102806788437641952715690464373582803694661796217972888648553917959437572129622593315693296424032307296280026908047224756621270170555528953438851417618029756342084030435147150699867297333430471909330433014902828373504551731917378614381313508825184219626403770673561961782511208827161874305195553446094815833075717516540335688470228511617976190458769158897802964590993355706416043120758397890598454487415100907049545072286979924734035075680007909544993575215159261201461847627988221866100093140956553210129585048504306308477631988689564045708997681172935945103925899633647393133441677909483664107123003580808747279039909032342479973035377608096253106198921492877844743695472519663460812759744483896269350631194499055943487402973547851577411538538518285222378493689876296681369902181324155057681532603933231805892645622873272259992669290559021272327160786369436514033293491050976255192792284826494238749350110674639694195653070303375198669354708504690792739218151185724705276955318898536388479006289222459020890537765989431798292853489366149807761965504408649782502243230232661149928739008483363904540801981334104478696310378774111530053543488039710121030859155730062737950939775983827191358618161021856268223732738053183416657913912706200293966288291231928571048679957660100935914083255949067229526841978143802879010117823444769040606700563816063254264708618098348086767979682086942040693939515311950793372777748600243034020084362516918158699412760598255321993886746530844656705272668847462137572817749729851672646644210852334616555858297925340409342497575170125505791524665599234035046599418064110448907001158590104715007410390199402470083292218379903078261860669118140835877673111114909322302043411349029655465001617737993040175803404192400846121114302890897514893299475073343703193253502979401359758364928483414883551775956594660869103647577548070350282607810192770545635459340371939457942315512212419708997938977546287639769882227879130485817476779757151212290197659211918925902350747875687293014402688641770132144032947655481928542591350782693129071537188385416597374308818057006264797403246769016558014047767538925719650883479673592635487364536797814221042199324568987376356781046878690632827659419711946156905636621621285124059317422236839799506874098599941185406001829952566440023072306759435102288337176081040978557902304747223271783530487835629750913694127352016782195192138821661875996479384226254703870414731191759690913397985902120653331394661646641397093973900888077543587657380142525765716790783556545921726743231583145928485823965849470054752323267662589289818553866109356244069332609795324637756273538690264780046406273580135619663463803343318118095974152241952153358910484619563138718639779172656177940430542201289635804589533004282262528107969162181218262021073057614076751944015265354112239635713623993206398417535084559937660201320287102274314526852513273061833179191904953738478438294177495448131781328651081611969243981146649417636879474394282947959370679764282497561100443182378403343449938982577323662588884801553579063045563158361624135461418464203065380691821070523218945428876815054712221191404547689894838036904818297062666376101395398801484473427145977750514473044240419391641480522927083516085984420695360594632602513030639139450227281728843850585285388546999665212935182247970331936583148558151888914909845688071479589256624216198525563428094924789894275097083631638201163067373542367791570509331477248904407916542238044744659089532602775092923843608496685191452256894643615690255516575831846530951115491368931600749221144094815169723244364078020072540606469647070330986327692886351898802676609834011680125596705249815099415326830778211594113790398168431284693689820699348666880504177542720054519441590006329977405186168600636968395029623625396394552601920554374529218204363492980468866938425063844632180806924191363847973953760097590773882990811681704368334452049593031136222098908750725999265928232112133573956214864708752562707054005711960935529910549578764612503356521402004816840664169716954249117753439155897039995911490959676262152334350512473799707111694148002898190814513995277979939077322709066912483066956376263887211425872152251439219647816888480683016337197001778012039285029248699173250424535500124069453694457257679952881697729817819617632546572209790515086842675931638653761383796386379754258785683729561759815906898164684764451164570857719976871087868708230694394492463631926759207151996495420884119062173863482808279814613068762321852063264837285188229245674000273440686904954551759988965784378363680044785619187791382492506477481849376339868985482057867671856997462542025633946958001694620049121049387836911615493855646659190005207263773462405977134936789401893498476496555306722279683010614040466343268736866979710369404389960372730153886383123852420913692579869378153021191274740240332135685122264296347945328685434117486376373199391179231665488464666784885130336447659408655555867784523059723062231886812829553133890606704731326002153191375644056931330444846909194285455331828256469863343660533151069750022971438754108451195517494266387942476983250688877801888807780905286765302711267903247714921716244005943557106645881797800306149397596434660129174350714374811285506417380546333507912883753014383564622244126857907446071627720368891200979629626493599821177204327048142260657581288417204057375873944880106202378722242874026469659376158979645556897298739460777220852439551970357940847477181175709491998079271145920901625707551786763322394584415414354491822203846239054473840547548715695735002347759669595029588544411817626529233422320251860561891199814490120545001035538804221564313266722767437424028028816597339604376305901502378255600622584347885806293582463956285606380743415440686340560052582473108613012290258435388116639958724980092988364875905758776411962377539014850302576088437984844363373907117497885842827572948219250484938090782006728902066172125890227813771885270853020489667022266249876856483026179203473665978088547556634786082836309549099707799106411297204008013431359316489248916637277757049504757065765320342309076573402097032580565729859831333877787610148708427033551582350079237500801853876734702135072576949874533022310405809803321592900937847357064457492886647132677746332970742262122232193766321308004662521388807679688209191818214182766494145824657293394333269313236565078625396319134562431609347965262055672479567370787248681427018936470112147808936910381996846367820588075274221177959781253515291075478974433020862023096911020157426900497597749945789532746006958628294906263488497205776826367338184718312458572274813491165141171659052276506615122622996020753949111893823830935223930365938732935617212988032706587461523329906843036097765071994376082647111959016588019109707118599830856673284763796366478200217524971885893459636136444168485816103374464872724874006563286647099978144451248650939354361420501822105585186704278076088400132359554978070331992856557601070046683778860761660684812800973348122520122094517489648867987105317193313537776414682842310815212433815863643346056273132821233787536413398891025789081981421305300417197922257158626565030409670896782380754551265753181994709854022867105587818958930124485347828006117290225522494014294702259562141355188371049965248488591902816712334382607229123838208871140546482466838702526366734100866692411005162000437109825753738426393286979440652252082868720410823722577032182305764997125864573148145670543246935110954733849038589598676091519767869530797822756195368792649017008910540731837737694788026139614383746045417629461705603314200188387761279433194150027844599422436617873469605719136522302090004282850974963573200037867456940086928085490068425400145276904138682664516997075311971815027323143119081121449026550485464072193015095342360910292352744587590945139582825818090046392904934191811079034374141339041685527288047373413554728855584205592010719319729391360812052616374368244683465513526552114370555657561961976463944160493654875092947242892259817837412486384430876025790531905635117102874194763988832014960543463166877784156504654678689270851818651723406610600080310734756341404439207766345850971750477159897490496039947848251958547989961797917736783189119860098377111385159831076023458777722078139660179154450080225959709006672822697921729844525551674586702228565084955365048150678036002054559273558011149233959965913239925123137423661376387739225446202444198937501164445988496708273245400581657707413434556985260909220656151796608735603846147331877824728511707519873245358373635056606948154503117163954244293649356546692375713917923152590146281009603165307809176499798615822282951215903770402484216216882660202679188907062280012153997337780688755562836141416347896582501585632913619554096737685666207414360760602440743717099494849727305471151744483132627197236763409072674173559802950029417432821676858941482346112118410242043514382660775347537150490242557548436053042939959723519678988914979946794522135103614994260777827540748761124066178380079572312117360180561861720179302299101307655505843622888397570268529345055244283145197314379869370905706861119736689655069918456648008253197531193195579025235278061786790266223985425496535631471333189997691753310003249758091756538198685323144364914074120271334620913913304916263010332409715849795870550837501085262442690438182883384080225137315795510455782336979493717133048328549016559746408589972067036080373349798227866183877568378375511646613426068940725539237378805558426614594292749870661843557033578494992020332383787922318163251457253579104662618385327957342224957897679199615635735943351774335893035552406205410255028624085734050514475108289062933391164396128109324719242986222344873631804148905979037695807155877263892062595221699885633051519232452585480885310024679353885499156079203378176437509972506501991504602248724569098849438639541813438572555578905828145816832043364923853315840135239064667299812505432432552988094642491942957857177180602339164660473936274040922959891519712928334608672912304318416633885179766198835346730009850154307854767962546348567704221238726227298865614876610699958409760069341377722693092773540376391381561414727727059554753876839441216064974326841795147356577616356435527494201651261850528570618469895424297661430352761233828361286408137815558301779740092199286639569056321533676898676566001609545317772548993638175462076601071091718400680259961695451607903778995792926586057316742481748284874006071524489211454592866728311797088195252728414263124606480898726276161751479116186135226214107611437219366970658469808586593162613165669107925651196932379407184991414244286747455432676053152499745012066614209592246903230069490639330231586011981259569167395545924713579212940257471381260622211539095535421244452061019093350009857541652543839563538663626180557017392337618564908801484280408669626743009044243434226478574587452895306541353291292685420212350658462268686659806270114277706326330243564232424880142408486987494698480470306357334178934765236690067151741874015767334342987291728964002528647763457754765291571807999981928943969364931627957962092374081763213273866468763687870669975654397238673869964520625550568732484095825300214258237725489571669425532269626506477551944136860643934949967315654663518738644443736499053080800050630693116498206857870728616653498763151109250523069237364016439986661231603961662235066898926054019829632955407550471849259184197364363625941237236989268006319767002291012480968347326372288507029098598870217283454099351998294653523942039472623831345885359041020969591893868848573737008343022694530232578778983015138645935477169858032151931437331790671225839097424211637873114664842059428458458128135398602635105345929081122630258459714775328279852288909692383195415460397868754166312233423536411212348232995711995742203397815120435890517361450869033341496865944417654603513016711781805204683659729292853773812746492879213653921205104223619457687172561339722061511808979997313874654777700950121586638793704310627686096575968695851639106302402005159086482017882313014173059944025115361582915983300693012271378586589939614885158675686118532261472660050624699110426168503646014961390804746528230456280791912371904822946913824737526614138541921925968503590178419208196381819275693571243858588823359735146650225909184763005123928516017041846739065443372637140225273439752152912339975137946856537901910959393041298655478818741142029959337681004891515942637745418885738026948019931471274370731171994111600984143969040063032638265876612325735916456833882243520326434574143312096863560931202405110985590647433184391255641129974876361218479495100814803783238785841517943699536363654960390009312276514149679656668209528022731339119641012576744306214420143390537477759897435888873560358065683587995728965368117243184241644319783478122902669908448984066675140929567373784304932427277843054354080069658423936730063713102680802096814145480409623571332946730337681686011731996446394592612034890097977225713265394911758430750019004882094757791324081041840686915751735718928058603807954905547993191240748702047483906339500060933340201362786959213906964472045350831800854128926858279458903518859570437154420200870699966201348585294654407448887995695876455651803156017210559828109950601514595539749416126074798565592400272595395207172651921954379405026477231169054200974743617725371083359976987800812168458510193346010052312869652582039361270064150281872954915418552095046217392258778007626111269758373516550708605897045449323686574365814201154062760264296963522734433202546245384145324885914576794449400253622854127667204619037662515355043132252875427045407515106771956707611724303189526168170081108850198911314090263284027688148993642759576562345426787909087348396664728130923176117065176627030422360056959844185192298905125327539071058503396018572325852251433571271593118072628655648132880524958811103857321063874237187416916462433229536896964326329998630583008459566858444367411040019573389594218780400285431133585423571824528237848617681812383004199260529154606904381706815482522948096132842742185617725692426493325895878748509017860231080272742039880516637089100325228528648809937102275034962147622662051043229579060709703084837091972169812819971308859751478567032611711379749504509094609779840560363059177231299028398394209887282773527870936450143401224465291419053854005224899827880473963459545746830837411973545013631067412887932094824778349169887690591580171108641171570308022228305078242918023889980625013696118760858941777155179662029264115012955256895671125790842435853730388164595278531381330786313596539374783695486803973012576201402815552216357286780092931869620581801969350064040140965912341961233653190155119033196230512923988790146998452511111700777571125325059005300558335928630078524195984438666382614689673323328227782396473422690494022792872756787486662803257814279399522958801743703275323400797305852157803226579319170160828001305859974586995212968573610955811515558867599342455850422591720193118458300914944671174122524098983838048864783105178779469776726732833909978731750472352192710963134753876477592134307768152399942439470036284270679665663253332026292396083094392136014122797386128389204432591596426389379725913770184548500506316887751654183358021949397271867423062878972624754586704963319417523091825396177401881701184386307085284088904151133811211087011849417996899424896113662266045254110812028057495660721956517328142324234576568081018727127688925035607947561840253859187404761185447770403508611616668355354978832737119876337303674924178863801020945549325018171141356476329367594503856519709492155324719019254187980307128383379886943059377945699854330098173535661018833106891449576659382188330992815184989126442875505978593270454017468001611896656997441252480497586234968205945285689757454703058349341379826101293024611710449148902845925538255503727292007894190593924886446423329057332250802990280231451342118972582118714149925889183836048008325288901181755922630097555064321175535186598348463421191985482604649501894767497080321732774709807258265027254184624963803999254515551963250475021314607381419619190685948983037052212006420046616848798851652306723110832838694523533119439646218397232192468477331239400998030741139647945297595237988088962315093012071434660143421559203548160733664894452815056132032160730561342477440153664394774689465250989416766670692764384094270045380618922513693864665138726740589499847568767491624302788041903745682252274448452270540767750585919536762246600912528915132412850186199058849567534560076616267640765484920231764817112378795246615809957744024334888340958807347005091318603403333614612383587525862411758839906188293716768236704571900288827403010093754362445216892478097747400400670391067787437758346535866859246021035967425170169989959032329264824687872101793118571819570567051408874027462534183949814379984065299996031268189844953519612829044655958080373569923697410125830640913187126683103277205674955789437093819241317393513380291646086077968737593537051695784720042976248531188819491818306967683929889428860822905394111911600250281963090914560281490193314559863472972446170476944325924894807861479675306749311567768598471949201147195490750125245120181189741333771747124223735348248331180288825465686434380827833174634232669398166695363965092074514847647570099825796851717924461504061586038467615533464095947054750712338203292993272588692532498084996523756233387876295066226233564104753065270557820497894442510303618181677985022431549578448701626477714014497032182255178425902468571220995338786273605231114276340650310471153376796546826754757068267299711169838747216353207606429905184320850737860340656338431080479984587718575675350039518871262653181006905331851342550255413560562041596631306808453102642975607100860402313178595434150617364665357532652215500158355273995856251937902548536321682474698414667601081549205418021566458242254369641400383974168345432018908532526575213838760635460255300977669594806618413076664107125823776923378823321335455792368490069139083514435753247705634680448704469522418308066978189763802371024553426296215488614823442898228398604284182947615253368398337818549983371176129797711755186709068957861631546515847178182696831549779046881649271371231071477098338149657815347253723607304129793724822354853101304624288079650151713338860882425218243407436633271529424239901463149195813478532911219657493197528184085043246274973007470594689838774903584560617315992003321834105094754790238023223270287026772729803593865435957320236923580560883692952462651833253138580822232040593942373276441464889062459979554455610080784235893505040551568540678289186731262240110065888236944682775590298604141677189217601574448892035702325922143824920893659916919492217408066885807580219260791104517865802767055036755184950940670455243159828499311836829445718599846693361186221277990128239811519517158744899057314465875581784647375134115002156242631530226072568205597859989015025681461687605053446172248824477513965633663041373840962606155180704550366929682553914904605037096056886579646604630021772091220407036216701318388342346970090402484141215883677187575097491871146023535279931331828806983110184569302102993580919120097857461701105673486392702120779506470485362754587829608459238773697600555736741664111568420783981551218422900155262484247222530057699833266409098867093075294114435386167914478406618661510043829600709505101286923894179362159416575700924580434193776350572626710931056811833192365322066830439789612026700318940636207298079072434062294557268842087300093773406425299289523485248113866761935458011302974935296324374653071811016153282281808279446828316120521849186203031671610191303365948253526228435356071243331136376414565126570263113646477039284535790836226262940605248720195423441243396075877578875256530098558888011570832191856738679820213678233479833123774026153232415925164119633353981308946550013671892977382933870300487371119571160290719653629372023307022103325881843032144939385961905002403823069277647632938537348241119275011364000754935001585618028199549817213148598723766833486049623128751460710068106220990024246187799009879171436622911014168468234011876891983400447329011223661189246357950472990244214654441083828019920008871500705879107160426021508745239345086670156237571396990149252538435808429295536889382008102813974338689346048856871783520561966761758627142617715016972037058313030171643736738018271610634057460550039371099662254322573559585472922931213090870386036529534011642884068732739982352189976744166660107674299409735251712107434119529130300097998308346835239011146056511358980515781214009065092379128278238039410060782393057542856853598572319634562006876099231849035341376837087423301478405732502005790847832408584514041087420476293564105496225087293709026718436147886744670929154718948617205257755507626497272780684355026185525439717825529897661170697694176098067893780270941158170781747340225529478097867425838456259071307175683505590892236381202421856300776841922080522928072860116380756887443591215246802338857281080508661939743145135941079255322945610412972833219610669948038586283823769059795666160502683302193932239744004460508740400081386228259264305420373046068436254748680939184194865097366688128717711068755312522558097833017366258363727704852121254564774222491035215529811554781283918839532930064214629384851360011847292842853576737631277009286688323096265230028505046681996547264829593194406260851043158781017196738635174485839244388760673343849752136565054123805026924871693909747333659763303892870254366657495614106984698684249536282820721787041289701888876481454028400461937902506673503380888121148705066258213027410123383551008532826257090590758026970850812027986780981752508150416611229425401585130006602871683993785523820849063377002376082216246462833478325884834945565142225661801314834499187516972772125895792707868091298633394181228618509830772547461265811192345103727426490860535815471006547170198224128331658693936260943133481948256088377085070610393040286997190885637637323543234196871404740457778333046030909828445340787592245495451139907445612092380505135299830333507607439001702089013950669982552646184281283005096980782791799013942645013746741685960552186966061080096683967622841875847749670526073197899270346970219589082574163861432826323307872428975754026955235379489139399201929592026507879542506996177257529870126365613820128635373546310406377998920298001460325574751516766035997684642150887429511230185187835702287327513101637322970399370517973118243466031163610555376441028739565645695468138562609939299253597980545517662814840110027124034343149441436121697344043519645249933340674258438816929934541213587940942460794034076559255611388251719953549233196714223110568048703355189923175445645826431000905388183982636626275957322562452098522757632566440540910104354929400433832979115119504404087936536737286003614915406523051529655867803897221963991358467768434369517767899077037474325869851373971498579908715891069264481421842723692275496398639851730718003471574980174620568419686984505328370980620732545356652291063107727156473165887792546008488803341977601827501418394792704525970410022527372493636327554426824881268862672814981219746131422631307778769134569788707916634161038398080651289828760103800565186746765009773890637653894808130703113253676167939971206433730041194074695842128882338873520538808297549515079209023025242573636513156620057990489111234978322228495933469246569790622095515709350623321702510113088403577092748805821912169961676430994403334087440886952421935769760232448983625678832539997575668314311258394121952815080820451103155484239570993700289622974231813157992177911700950186441800502745830554120934418624951422798884915848213759465949508539513153746971176928763426663028181918753679807255404782917606357857193217811472926034021352534527164011326135701979458696290574469184905511610780087690881494062532866474668611775711818976583081291574359658771019587143900190628048202101952484158301120502173547893333408649945682162836060768033218107513724937701048461975723807711941980850492538338680527983263090751665930402309514691577351390385329657826056776401188478188971913679844322748167957615250925065838705677271496988204290586853050694395777186883861350546713985143084114369028187358980284830358621551936949913760924913658284843615960114698370072972068844514733412137999550320789826512179487506414969635485488949592058613006094653141696160405253362206272709031381559892220391559005991451924621216021013528566514429507817250173046639911485752029555681225865975605271293891533742774508915298419185351384041008552733608708877240433791552519777879435232455151905361765430957811117744901128246555185575589234004980824632463819557444986934460979884329282992784700245080908052238593672279185855126012029359346140130701871500239362379149972338235067802647141058072404594251820079935453857084733325835097341577555858299987355940558684887005991136763070763069405762346008486601475820209016076233737430736685149043195102494958620178163913035390864684407164146035598554211864974013902938615729058887645822274746747019665854211281203066443792854862726143096699564770142583672543692591989132500948446652691679406957900753375779375376007605886693169236087930946800963409391985704968525061021376871347221660393781776789261501704880142209049362992064907696609176153305293632827197001083681835977893982465262513234643737189400167975287535796796713069517161362213081292608939069107014164857899465181801391271408089080177996294888122494865319073715856459154980446205546749585731091849465416746321719601786876510922615393328756819139312766393458240244339758789046550004555607887806857569819673532940907638717629565224572718660802312179641554808558862608983922863824431631638386077284693922084518338272551197870911013664054068519629317376778205133322559025665542710730910610843284110146569859660764894781388946903295428792711808284267498072028815487916723099321832029785491137309713478089491794865766651663561953859667774197436798036021241794279045862598354988144770593989623567015801483663408070036505251998040862538309966592754451285445325461895209807712772357260232570675958624279903798746219560817664518865791590695790202455242264941216994165256595465424001394290520572460904612763866460273068701917846673677605973993164826853560143657522568431378029302621485571542321915188215861626293501390103824545124509291072528628133923157496407179767677143384530629863243135097742995547444786013681671528061689071545346840294373434868651218111381902809493333634600478577564626999974886247045120650353908731932579988367857469280926751283695242148648470197050112533270589471443424050622879926015889009914163882315492142605702343862874640861124990869315797956016959356076807813213841562024505645138774858700724286619388804433313581684373052257967160659108528429947250234845635478351609351225483636038805376773023856453821102843630349754753091768443821997030173339639387293436759889825258473347373200820493795823930874701905814479233278115010488153616808819334287990648666386874297129264833570987318523325411228188858795136114426723983582285214264944024986672553339179228095455601236666506749167029158041536385723069342861241461782470432438072829197845407871556884768434194092174616962469924958583877531852006857986677882856377280677909095329872341476357492701754577086826074429369993534097589772868161348266016754007606883999180090540697011734396170759231515506352655223326678065191301284873453180789512807839603261671273212862659601601896690622363618600511579077155782220421357071267033511688269719337047975616718512880986359152654226722031083180973446850141742201228985410105678174284676211309983664735472903642144378896840071797721721990078682239636546283608130766951232412384397032916061584671599274395950159452608711262517652629767303665661952066935082551274733556078657259630190652707799462053580657519825283494416095405895105586494700182296937136484279761042439369406546686728613182730291314730228203844390034383765165967722734290997868071923466809900785020394228219085721252598942691829098912043669022371738850399776569372910915128717126698841735631927433845063417613546471364132178465101006891724137508966828770063936867535359463518919987986084998975575565857453278852318465864610504199138567362699675132042632470583055056128355364117137265401081258107034684281778263472811398602891814051652207983114084641437817488944581351730933761828482068300511690394791209424548355536398732704914336546372476445690583540753154208278193856121215489347093043235224621210399354542153393509869646835253928841196955142030698256171852541928524545549988077555721156490467847001588011582652174783107600354343554917623419741396352810396148409317324156506045957256020678019672042524716436636532723220787056556781357076822617526973265499677719166676533794882146166253555451975111846387792932978541246968153784561454195113882495788212285546211419922439843694786269357122680809814927603909379828406980354891361299105288794736039231053411384961230143658093854754128489472359428774938797478321301420518940757494036189492691760088946843188130236086511982913331047355037397919278741302855850063120965242092429237716486121441763413980483849282199663012708183851637387560956754823887108141381847612158145565455039292718552364574824167728440381891296199374385646086074810167823323521554509266067750591657009494153862954734525045754143828614407996993012661642847868835444547921553976932803198414630992219280953460684782275785111874250982211648355689669304957733200796537971804141117483162423529461976431543657239150857392225756435823312795111829693370892281759777234559202973721870497972800242722757159494912561395094143064238069885640652718816599577340154088698342712702171629960919376860745817322214533677309825207176056717973556719198347745833404654425959439408953028141489553177578614908007589894132759319894498470435866614939418342263801252137483035752158192621166482061444037574252710041397461596662723871954867549805552020126744992139795277133954558038790382205613844977592417254187049349667749850742148027312095872798354432987583665480143099733983465455656189373842286873293644602902631748531697665582158732407383489053339921706903639046974261018013957790554811650071903687759374938946132083214359520800221744909801353630798882038186380471990785956378805481032452547048968038228115435004426121829806986240010880023313178211462078696226629152673983695231612575787931102557531192887222852982216301003668788519293160228228936249671741702500382250916209954064793829542056769302874758549958386822811961269874226171128519412587962055707317738804332931618438633749818014685394357716938904206941719988713183656136109166046213220442405347283987017361745017113160299080098950281328573985509004321506515506854235772795764422541481266400677794846314392557177921660180716432013088725064132245978730806271136441644605221372775150032991059469016773114309063894917431269099914591005708119720216476926505944893106359244652992713092699288525752017358110987406267074754403558147916473352679437264922620569719558376878038907892367364769128730886513719950735363700707034038500953682113408164520547157019443225873358430672855618726152628017438433774208749960423583327706620492028835126612425736903907843924516690216179579973348181370850262291981941635749402480492531512182295066909553220337082273681848488308660255358390582209928394132569672889072191479340732442134068082661658666612894712022927520945831279898775297895191056005333050001372946992326002939308334985831216255792168339391906814540469577247684973230819425816434395260688265942604022587836737509488013091771979354778527796434377182990055990767706081180828407102562727440919528774077255101574717088217019195941101475252196723765341921172402580210898428576191055606528180773520080893930748469461369567894867298289655632235012141505709417043209741042515882578424100652053377069477074295704012404724190844412674470501432621931428900264190684603232114186256750185859030913794314120092872612761631236078278522390775119225628865431210278290975750179422474747936817887028344382099157624094250225385243722496841617790197698179262538218407595719707351344159413213616229612296967097658934583408654728923735033766817219021474570371212650694810517625685541365599682292191150269675377478594325002399697379450038449432550959756738977980062437654547275303323752742189042716430476430688496436063966646041960203933742041379702785068409144818786874258025742029732321149549328180793189998022030001824755744236351972483645668264241825568089705035135581930782998868159037779674271724758839637794592941167479394234030206860042125571371063085225109273295994858296628300148617717381666585033489629187210477152920476927766973095249251166577079885695907481641740330202521608728545876356537082835352795022819225662236102206226775147983123570539403567696426704766384460948323540987381733260810644200794688189639131940050323914016926015621098408733491491953573776706059876739278283622034382837631630936346924251090621544247462391411280972505802647037300453454990100450153179022591718339673345939591131804930740459605050610874680587983873948285788765010582347216410514634749961342316964803840151780424241697791673617789843552935176709563982161755536602150813329498750372261533219899446997771989773449189209591696423171227391646014936890228564393926794953404406820801588096646212867483656310953567833822484674459982373661730560781928310211095989032028608668427442525715084556763800603024362937877435463435399502149989240438093926578731763384234544327867152027938306594100481254497249225158720623978779506815362749074255055758933690889859539072808861114265473869351061428575304877605877657221816875675233880227655236735747891469607683505523413897189685614104647419388996211152287253072290486945940717697852729146083906934807435896226227728547692313434295819863533301805891487117789484422347024402527928531517346980203343460863532580369674067332066334412310040278823773493920928395872172673064652857863923883309390258700020662637451598913694671649695248458636047469170778152939071368910273333834671174192026439301562489906093390799080410529652334360939750243775609397113598427333301110209341091182262848827305843938917597084308539077908295726568856987904292518382862118990470069376599160064471608155456347488966154493858812570982660418048047224503645733530367268177515068695292394598965799385780071040057491885339277465149747879761985346370227986102468940904829875480092142545818332107563585494048534717761607816795125948117458192498300600756221302329949316596830891570607704665767005090322873546985865697003348969458779815302656830845046978939989886598002071569977851524750911321232555584616019131163914956863664199712719652712700549167532365073974488848581693617870036958115272876950214222148194330395507966294531680785242342632383060694921883651208930634764740495588199852435172049856665176069151568023299293940515653363232301707316389622143423859152701941624495791286154652986494989990843423779625048561079739291583478426607913652305801888645880640578099612046588727505188173855145317156408238325845329777751717972355381578608856516938415419123742736046464632178056486981383556533489623733719743614281349427283807259385605443368301607042278760283979357882271621138642251105740694794656956185659597764002447547142980503258716168372670731371682989923516215542112012414765882810660445003543183076982941810139721248566296230312298197286542288983322041601935412841399494110102812104519561251336831526284436039136963336597818609569925201256733824133539226172293824424040171075408799320082494794968568489247967461711705856295641833622569249127850626078404726574488207990690323549350995791322125766765072678734715782071122767922689005751165958627772400884004454756908254020709571945240301023978895012568546847978806584452257592442343521857051692532421390630496762976424113134868786859530291271738431994041498472260274694488165380873397700540111214048922693008427817737067892475647022455878148127277659926921744792114667003862096257505833630598794977914503230087138675176692916653507826230171615469877023829137262018140088200189695524379747469189004117787268760833121565079354844415219235011989924768611502402909568832689944535709466125863869381590621010904118296793741869397844006800613190857359448501569369994324123991236670725419986006977122287629284703783556092646399896736674212020015696877261033739582533939176101611625445673798716892277072667262834480635364918904025130902040029857943224290123093287107664313330661706146059683110127525976064740202486884610213152516154464377400137190593513955039635307319671756794155271681882855492590766437232033589441153606439115355016542941772598787751048030305425556861703998064273277479645996575750819829913351382300045943921189816341491722073770828943941204066925933018805397416819746643226294815279645453197679876284332625128775721457690758253131426265905315298819702531651501416814791775719100335092947617525378849383350860690142279294929671557273605287862844715357581795065459809406839145388283847124438208380683759638027260918548482499253829484075052855778542116842431353630429420232817251836161822095844663750123002771750712979779964117537174985829660432096833244098804681846656185307976283402998447432034155157655458446201271797443030111375918297769946983611709665699055124461974867248449778350935993901682948989623913958902391030388826606044937466672189716272308268697913530438761643882363453051065421461421803558452918172663081984863973696107928024654800096551684751152899952720059745019991448393076236342158658689409308060650625175162539981132075545929363294517909318024441610096600487074632202458784835999458185986852703804833858059398098448469858663433978212335165351832061100437273010320949326626777836396607023832181503685854895673385468401750762374885997920964453634519858927909863643329233583096416744665520715106275203718508591275792521033058828841983786557711096382446260923724480806800072751149416483332015812692501557519049459689170048921077283522960674324670890126206890456042181508366659487411515537561506422571164809807864919021676808530798095472702025844776774335006871622359919488717407182365378152233515688079707844696257880217800360267888177452580604819057921701072308985625899640764970935402029009628172857333232846595722446392670008283938721261591360944378710397147306197658335408175326511771141129236001231265364610455579423696247306039483740281884793567507738204178541291847862335136817645346333509166666736303533008056885690220243782893867256324167041660863048566038367826595286145772018536867914643106017297432374753665859855355591248234834174748217114679837602914045015747061472553328197419478663669788807376705048292854688368395246249797161517660040786764783033563877458633202303433579953376578853905906445708571828183058435931000522416236467246356103616801532974291186650364036856188784875639072633768406363739669026953364318233136022213293501880667614962415198629410870471641148149350586018056024405475936952549660288398338977501706336305834910917210708079735227989700368907687022851801736745716713156996402446267449985789731762742849755431084022155722603354171572236259983589740628879581857558366624838245241667738606765840814789955397997268833752355563138700613619205510343273981761719119654756548776640535640149248898880771043219004543014317427836668490876826588463483079198914175896803162806535020632060288938782855078631696065367831069393543957622358630509957032474771572564866978544194392930782637171332616610226252795487348068156241136529544464185309575987726208152733921451833634954019300677202426849457939273437855651648886919095469139822900300377734528721199435485125950533696119521307289833200743497795979487228183857207591231571974260160585225475913279454144281846026228248258110588037499118371017922987910100586958721596805098480732665296528770412312033946279301654221603668780417239331870038545827139250834944276848552523770354171155271456338680510403735869072540662659033044213399060419867801325282011057426989067869162008106720410214567560182122826197437252876195929137820619405534361472743751671920592680990261066446525082122574407734513876746479242287261798662674345440669367869188977998234399582638155862319527537865163450862129867896808280039291213604279281544336667444597050144100490037847182047766903663435005679506789400898676778102101207912179530066235006181232363564905893309836838219422445255343094746594722483347130544058381023545612489005101927087347880410086034394389112103949344522937636338773536565305277937693757491137409547684535223750345621776084702859366953056546295547676498106865005408925780397120750655173357668391329852263323493709980608759024365178576320699129912888558678298708390926839508302827365633140248237024394091954409507791329758408938218461793084831158398304548789133137006871653379675991159603499056614723997555832585500099971812745090620137929419853997569501459265831859525080919184102699277655789022010013348383422836542932554541617125931663877653490128295001807877860200047027168107719723145340484873112113641650900491927643131126077291743977730051620938111376509877337040398601191529120554169280313122360285733935677287724336080933569403993000540547580510787549860259840278252932018460776802006180673303529689359948686095118550747757608372601524120676385363831582990455313390373349606240810870124282188997167099954904656400976429236930905487529148745318194416294212397482612074750097479847733068988696490081466493483003038153478384742658069376386130034440432740003595247339351902791945506961632894345049986223957207149378835224950852855836293851998395455222343126166709646251892710337947667804534144794225868326091871223081840940975764214189159407569757057183125655447311227616614422987049940333000604043641760060641663311335659966626017477982276012048472310004529854387495588392030930538079633634399925861996094027437140522382152867834680351313020463713446326616588444989029689421665450351165021828807532668017507018860468239538182308484015466339047230521436512077327662665854813036127343595469486531748293287387909110260343033629497257397107340107355396152703663920824847851318361222955346193869530926899889765464184809584760853359159577579027605270205019798566169897221251560174089350487987908784187597244134256705055032669799635331298861523552786293401872389357735560620524642016454964315674302853095435405127118662343801334742820366513664883410610780763785518079300367084598154096758723738061569657340478413076747202466482391401008410125565235122354568812453735353739536346746654308627580831798675125387531032841419491446337271556877749664819740639427653752332481030832109666758448956557845877329887260677365367506207377989677753579502375523411941851814884416911620359997604145794843516186786449392648062821927406719047018807320796142853854832304955694332551471266330606425265795980979985447522291244106426824820585273752638606120694812903843437816259445646810236953705676726241861421560794159432951612689117719956462572518652737625356768016067222447577917776447555339543028655713169738170344706872217643770115122217776073635581748287749325014203630790160375855833910994068467612483510973737409379249707763171672730881380672779347392547537425982669966107548576674494722351312765615107145824174980054807937345775172040416739692546320434243265394608106709729154540804194499476973914671524282880459038771014274150076579344953156055154090373644685841261971715655531196622879056706171272781411408578173334409630817123459845614905467089421326893425693771883098085601070625291988236857070171532410719818298294687947193044096670333586718243671631795510796651798123298960093274580677601881661526734989914353735438206881700273713694238441791245124757729700599089472435848028363386462268863640627993441182384666162183608836524787125199444973359380676641181138998257084405299663931411082037019937745208435300895725725649951292108567088605158923203668885353286985792073796295003130902605001545663330066901557285544458136013198964155785942952251178803236684126863646107103747802216457188686577555826718952684519593812674127783468912580711944630944961497533451068185214842252127377217267376788109289595698829566976709982328549453262420788682115977938260031145806811443165198302555856515362178851467117492933763085946214717060345220929066873587296878967110009312755393808870474656728358893272565636038837057141958846721389789642589117227413090766830471789692191250106911363028976155515123666995582472788458572336451720442066277849039406279414442134402105352345838367451637326843156419305064502923068141165437594381135265518244055364293978418848253196916839907008400314001511068000697641772931803054081147700743603564142961157074783224398094788853448478854061787294900929244559142922121647205571016917781775687857459792219939875590263944792442428072196380834418231017238244440269742249911477911883860407540982257250051031224816537933544197060204954540373523202515688643310832211677185398883828471494630179912610660032473021569781286355881149059212466785761640020700874011494286590239827402498349058898824906913669112398542307182112525118066865504305447236101959820265066586756652840421045725948289236061672324897932264234176119328878493212924044105052062491965340676901511788046601546411016160531328853820054796528591948359415764859331547684316538216432071869982338664273273320168977044765145009992322250280781513012890643557666487037732267872988250439553310214940748127325749815035325102917957950441452993661893236660141086564268309091617424442970891213679512957885953078744073473589601966165352669401441027657918359175367412485317977656254414647588897949727528950574666651234571282026544384894936720133691836732509283201432343099133196561402128372211970442479098649733139631832186059495766734124265892933046845481241630775891782417771304776366376833374006521456806820272024028426177568180242853819265475671517607328513737351452707068143341989110727914165049365096681971620321087846266060960815495146126875376463477146481500411378801625481213661725217313877320864145362889835895946445380944800072792524658440015956368775718007148697116564025106904507555775067488233655872421953531365978565432064799443253897622847878475954633766588055746025248696556901080537019455503638119566607249704001945471812330742118455304373908523483945393028686247912404894503320570525090319049590903992261977761447843893163347586899109418775117349579446943367482181611801485031110962700600295948611485541250780047899366536211081321851663238517319672012989723897819785573903865121177767067730864344144740284807428395924043519900737216691763111459124799908331522039252272984240883129357901793340704028783751400298801670249264572604068708485153569486207797503340696030992411256361614103447007197404952090978387360280916849443869909849980890353051944378730872419055381468046914959319144723558222622201903591358581045306023779173927613235025608782328955531560977469589593517732896849798598093415859839765070859338890940697309317398013374295926862392952274982152314648095879132004611116295216700048342912664501493078536325375605718693467033341789537151167653316622336652658037307054115308677806485908884299485033098030819100834260398524639142966356588509066169522299284745628760257522704536987802219542346320612005907714419348536044384038265847271643563556180699995722722915223344510346629285810347200193342729626827786984132159989299689138864464487748058396905867346253493909327204146701256872008720338012325940726193726990610418287404701470441585875904616385966864341343571571221618496330197812795296024096855812919766019881400589065479012299535459344766049722438911694228300923811858410228771431096542846827526254467364468403267231501552153949569015353154708442266554242283667153550787754402087799889176061582231821030699030733801798608566122651472237237797907300887933563675187734871467121275539432901206725069093218646515668003290791900741659870342167617583583379996479594472370143514002793469688133462488561840607564986252747402042897361989860408126562982983645491043149688246451363267796000033435201299696254332108768095962615268651304029859187593605170868817054060635163063768633378450718570318386034106546693023733513663905846639722778300776824900318806745621622522498491891229398696176999837868674098092967879775674949451222091916393412611927243162377901074679176508597236483862547274876886627458296269421121393334787530571705653883263028834578885172899300115148608761114077047191672238393095682196586502969624144406400702983431127295648730508975875481901892954015857307656443556858156226212503672499676303749606472251692903670585033895809912510482672281486883274016109058020705908987617163590759928225169528858383255699167207671307416391905667453540612400318326197950079639281362433118181570332329931081275952029309396817242575697520227131678682083301383640151418215178714102463592425418247815305867693696007838622036518977318230695776275413837684595601816323271481514621278974816126114321539782131376471919899640384958089589576878217014398835083025418810955635283760184190686514117996491608863748701452553981842584958621247073738308334442781941059996151874724503038028474141560538187019763275327347096118805284446277401265155513830968531047495834895033988521706866669892886669516644148875028880606452476281139510955524292673651718828974978406338035500398290314221053080814682423278736945930966127035904411056123003952268580324041787096782006680264774841790151079335309537159916835105464465081784504508153700134842811037711465424042871382563553285074349449938023856054041766656944867655866080512051861283564117901277126553636606556044761844306142690178594811202512576735571772256718510460002783392711225347398881341590965607059210903060082440997431057148572527638437867021988308912337934714058293719045996610746241620223245247760272443719364633105344975771745310600679187604317802722796342396038948705069472668933107207603450860016695690443500595503071377567584696642568743338499928192058348268648954423951982170117762232956863255255852290462218311570639411403180161870805478323159610483327494977018933275688637047441094822989600475474697527864374770006379827423415949770205730105633558004616270569374716891211155601814483508025572672619245095392431578725579614442507095440864094114620065763602617944005447384991158447738854144990275810596168548259395744231956807425353116878993903896616572043539671501975738648635514563435945766544927372059008962321566520726702800105968887847618324009352899786324389449132606772432939693975206041259436430096099924867822913573411084352886710025597292537985677863241470026622622604589115691798900651455310662527685522206730704130589842873240550767300670636452395273102699621789691325895298679061684818934376906466607871247928360967514910342887951731959224638451041888959376513233876344978866010194556828617735493673440920341961223293777857024839470878454134727091069924814024723287419889296120938086724311793966734163913814920008567485969912485907650914157976248138989262247656268949952637833359376427551697191654018054567826416918910768477098166933894069502241391378279243179253594274968943109398415781409132745498121777421153906966060890619949913961610714743812874892965067700274387032053136228939661690758648404053952480159075636801117697566445238864815216193333703640071053486089571761035898279584894578946141015220053736527368651778154302549424235792724368383183347393578139957087118633024794728206775574645649326900448659264701045001396029321781900293091449985718695454409137778735486809311402883846380272629405446838790051602301680092386519796335274121976561759194531104671850993681505063768472430846577162911643758197892352519471682340816906905352172858810168124433988534919228766677003336279557347774573617929000791813258335769976668499770370631012412876181374111154469984740373054442889863392901397146951922762348728588467645526511740400758611798133255525528767687468781850364319928057155021253851259828704330583278464458778645317360707148856459824977946939879320985507390005137475083282553818593639722833044841975381481494428216382674980182707427327849706223552352254167789285946739994421990688530091438248989442546953695235733215723921948169501203896389544070458768315176966716632653656563375520910474914362334744012628624338304407291361838859838979552080443588701058550600514316056507872022451214690036732665121414870972871936652239114756779051454769052051352012982673988114968247303697712914552003449050016021846896995574265544813286328110571664446889217192701221233162535232438187170205605109002181806232975320736053545431146484137844729287068571915028588340623269706705256755955136503369943113457293146738212666394056493556174799474697508111709931357205503243199378242119091636979084555679826691837619605752778887682150951283091952732892342108831529716577291471593737790294901660693584062778775460849957571798418852148575921251395633570514192816966310362501796078968258276529057759470730309131157155486091399147754489639276908705047155278616136802724973035683132526507231219168733426408221721902262050035549562041812422322001813537651136607473981292379643852662417771757708829182192932626552865738016059229347810243595144255150470605607920586998036934459041293473767306166461466777240855295789868408200880839664019128677778690530819350397788532062086628750657311168049662419608417435368453210998180743387456195963325358483870893583998851890411817713817024902287331454928961132627798022029492285006022329169940161673126103546888277785788581930552194526468369645962581645099168206784000637397353095432361402059495732233439373085872371380890400181164754094625379823769742400192063803553737094081211540731466588037652644573559377995772969584123268569576556109075668017775146322587149080038935693756376118494684563671651270399768534644128086603350179157669610808121684662604382076175845536874893222079153633249249956736874210830845219124227667630455900635462264006581006010172404109997288691098586570847113332912076020616969338221063029473143398724672055861822822228103763706148307753243872988005892250416172724622426341775333633004979898634300206769746901496505080786189272432783453331962615159714150904048307441964157862341670803472890122219033785961257470946582223005983029557349984790797906957177529268629005331204149470473071334457892755143509209369992557259360016131143365000330168822963157790763145700859369144510489714034236241291681745027590841526101828235185299362861628585467415405206764032259110957061774647531761205007398392611447266494942064475923881819031711701035260782988588086587548647238054741047572528349908468495877991375357502895503380198809064346338348038433664799672300955965682472365594439764403313325821604540317906160202762246814169177302316956150800186388292281788995538659992224614234227371186769480383884654312303843343442921210735286647402992335722950700830708753923999823497141958849801463569926985233307059020255175496083971809639190461947459188897173551206485729421294964961853431119914814721514845270574471320534816322819728283650590531556284938781225439769939764626198811376193506406748411092675621208708434125665464017584543938368912232873712430222762939036009892259660479871172387111500922211025619425078198426688680170556557644545897256141529705001490557886085396786857701806376328075429964623814811279212737429301196869151174848228620053934528038781164000523223111295110996848791072461644135146516907553514850428884913586187753319109172120796396359062281481481602296692020020311426283928558422104513574834233690588417321225006911074494703282670741972460339916279312312151707645958243882195215987619797715616012709708202534076423538497847346798532620073421325951204512590498149093371279748125412148974027156748128963487207147281099706584415880946748407193764427156206158699457220446910656170437141194286008013245376388718880386071952062867930652012434709673840408968868468297510966359562041332725753113843641824006764164596157444838176238187889509086853593950070177262241691440487255228392397857851816647936921889328236304248563840943575456169348688802643285320507228741865226757553232052417351525059826999270009233947147051366050540908699056290883234803480375408344444658007403948170312010317386346301943043244141428635474695023495425213304715500359239629805106199921627454836773322267746775200013767300689813275973497485542458635521546287301989551150672000175532050053253514360592062931636489019047669738340404121930185480318581760976770866552588342434556133584683050179893247287229220368157177535577914125828462438600338025274928767999470463994080781873356938474165296456923853212278113112751194026268147471164298756810930374588563226152507589495341540879150032839932455760528516216388603399532266720332891398890447327402764381548699736391969610922683413422543871218907735639358093109789268455145450960382442296731576859843478047250886126711788046338737793612651779791381320440248015725435983726421490654257345994513804402382572002837840729086881141458844637189368012485227401595363922642511728291764957979044146628376471163076024206031696717044151019260978104729349421593976028531607537841296626252283951973133097032546135590451020343196753261533483924661259291268120457538424964895191367759517868605996367111589736267662910979873440793288251017002663982784146609378019086448075900719956263894703056959744948019813957725863052263956342030885361664357507776264018331497117061317464259458981681916051025171833222327690589963018668071236368618750078485852009746127154282738746004355660484429404661871825668160858116883834668530487016501870603262401382792280237625816322976525314793250266106347186020563080966415965576815296962203883373465273509916523563690440826630296786559320625566348860392646672461104012660877100095188789440134975375430166422891982806676634780948209598204796386302766828216023720484720246616167305644685294967079593792175533984654568133112976250433908197044070658087657748924699506354405241477406803933276233384235655875038746514690264483638398086826159165168783484128493077824311600797452560031330905807180841683510112196520068989051153197530250014287202750049526128073599892036098925960109643385277005727621859125423075875484966964567458834320402278372559436064086915760901436771968218874431947557092501370477350133046310561481630356940078353698224028831316925397818325325291322305946695697863187031621325691364510492524524947452004631448184780884319385446042590922077307784573225221675306109360391740209938648433778974841373247968915451998447346216886284069734138746049851288942459882497451670944771324600745637687571723080705690531537840985989077076133464721914632341869900205217905465383565457926639965792815906651626082388642592891279082163894667701178212452845143710545573654983994805167090269915201947969883020748039826445841518307832732809409220726621226725939162599637387967131439527790707717752549353720855112486115272437360390665901280401139472474683204084342156919847110832774473881155003874708983990252325265770041456182709838282052884913039735106951667304698938962949269124715700945200112477423334486503470380416692220674562189484807473236577467648896473654163423991595567292345268597380176274077887982597673287274574167000825758728949760216072355579848090364488666165427061875542435951008618220551102254505279575365732861859478970512886093623327641933193175042574425607770142170823272642229034443484363312873213734087186024704310004884967509831197696786516753710202722189185441313109962958610901564845121762288756158175085957137851695668248372228527401754893598947706715990275320803065562483295641402123505596723299089509858392423534909953314048852235576975847540300816791468022679414959163970605444721895162584638629695969461055931016332041524730765898520224438694231293206735985574882931362166461089364752864237266262847010230833855780163800389609354662314731887234434181921575084087828458654828649523686993229445850683258763346658012294867763767547794765308440659920165358235194229589439433807067924575097832050988315012020583513864448154519371153654346007505004866144940834331309825952286690943520253115623926804227516225705798890935304189896462328534615431562585804077326688732145623536274369903909000533328700193280297311967114665113007494775901823279667176792269947827677188473157235672545530698972028439299491823849396509152463526160892994745814362563388984210148573418884355587396305382429909109965897788344105110849580609281167054003288726279993619185132233345739483850218664184139657595056574570316595442619857319618752631703525158061810690428506177306034968728616402201020367358797976057810611154202265085878992661702990749877728505219625306296622154058151035145029469282989119882012404263447374193721067227961772691623785129056011033026510992024531285376393708431169727390114313769069170554413775033004399392977108183987042415049318576771376382879278121484522365294645225614928172115579731809018154723458616680155391462174546221244925691044688494905675354927990872186724132751274441473388004516047411041258053186834326576810988951833863690369698780682108741353269620460833741246155903953798481538048839827701941055132454162836374351690104426028736244481166408381728365843191129489789002044718624640043094450818586448274570623935255481498924545667982991980339804813627490883661290530578194778521846431233335181429492161400687542115255088146124258582547468848444036743421455703564150993371949348419706623523710889219695596528069514948459033896110176512424825722743124208496714277399149704362218402732062800352312616488920909363435553426500186280245900171617232613847646917335897379897389827730424410708290784714873400847988304789630905613977918102987781143520109701566522422064663439775416125392517938638941927487923660108933626282915819723160131392573779473282743344091354898893282370413649792299461754877629825560952588493240069017728412059933641645140805427161862550854565579636010336164218604063101966772186772565001548666246927191430570668921878251339104677247440153710972321967485977334608202851636830112373107873291763545685061959918797337440068661367002723648208594129077105789131162808868497875364528329299315084494669399728722150666130329396123408047256864474538101319918090933585027053886080071376153362283409706942779528606535472074567130082599934865004537505029921651411075672297587701110410200615380973918949840707162660045163544131432576301960346593376496338628646500721770224734434170891519157012396624723049916423762064012462740444516566189496431834763192029764398273414787960909794463532024410924618336487372777077326634544243421984344094652643694338936051151986510503732991427239944813080818990250383297465341023787867344989903878393557689412344754272208794964590619964700416766709353562491865697592058369063279091081021579326640100271404586383126063332062315770295435014994528125513922012074086951789463433114393123019722523614139103656625682310267980171815971217790580580862298237633766876720581516752156995582466265239894399263889908260015474162384148007783292440147119752303631983349859204880257743814062763004502517088858904846716385084962722996490518340113257662810944574605180177714847152566370697399330611104207090472300542316372337381288484190937463509922716107392132681457448447777924450893573640865496403458290930031943031975840980923363816226849402796290029932773165889201456655059924490631122675218734148942940240976213488125315542030987501300841226776190512839014722489148679419135513827116732945556563876564171085612653375579129755727533013067225881433554149527610158562790059917588547820150282059934616310681055470584093841790371968239015518886403067714556311422527014278205496158120940670678007678721963052312266761735337231803990556333583517558889971167049464713929139001902356018603623257968113813478513712615930657576216311571331380167161157418806190722390355533202431522515920122327389795184443272901132759009695709580303565167771146684186413561306217162331391232687398469452416401846165600722498335692604422023636785205091602782899777767690788086021217839768989004351731371280998855156505727820521288082146300329483941926020704624563693168063067597140056643116597233351433691160588381957336884169891453139316444690851104397973210041200996601535868636388147703211688451035642476869331333776786312634271194742993030528224800313971822025634429072538751176727195682493096571768327851504578286868782611731532644268994566298378793808202115871259876150986887462615057127249038499202376991877577517295170178834709515067804131756467956810198512770710306450116274114322120358499253142106703959111392561502166782309970701603948879783820232339727711728499063326675402472082297365073530256391039207763953750065908042336617500065445876401530237737840621436871534150486289262892153330414557054949160922640995043160257642316241520687186826334130798960776873325753537624919482137341553833038751212789386677193543997231774409159134839073505191642489358368085703523173172862923706819834072970132829262541668356597944951845461905045940958216886053063990615369809582285092122338869399408705134283852081710953501035861331091605297033177049527608669163003401213998768784289662641389783590273891507548433582042066056034855847575315522694097772705547937144835504716981710065402159506954146831419765421226317196869823267961364081220257517121508605400734242492175575580134974444295834219393858941420593151569484543998835030065035777278334473369087176132646662119774484923130338779951500282734910547340110008921102636315842327599212499547697340935474616031724894470593994796240540126116186167360226856748700498276729068739143595560016364019853725865860050278563904331791817232852975362556855897807680207605275390875892277659898322896946260589800789689273862124980490281987616068010838727044338074274385102479294500641585840163404115442978212985152379007811247701090989446043693803595764113825098619702434085753824290820781772548974095091658663230674147376073498945323306732284832845289449435821438061610022384554567831528600879092895627721261303121333707839908797738271376154470570027280088791274220943374456278453972166608284971875162140744568262337035601233885628488207590952480872968658272630031282569863516262868185553406838193954295350685829065151109626585384291056677585317836859007594024279509924479781620013051824905694022778244543555790311989338301972211497565677158247893920717059402832344794880625762294037081270617669764588796974967113891713877757900285747095525622634603806039453057649383321855033548427750959365897347114424677300729546700344466037305281208229344223712962739678794730823288552987941566020070751843339298248687178370332464340535257805441337325203487505825003044910812525721543718773769442734827746293197735643177250794517541073407885154552979638844609558638529364498113116878562673972685490570666193530417029758517249816153131146967170380603254222152585861627128648034626809781466227928854294917796528373635677322914131802497745261627997868524504333897715604724274615121039287781367934873215012609198244971971646048238329373329811463626147849752848562863649986820827233447477899807180396870297124383480972180717722345249867688426638200432388206763664880717420765492884627468105680529864907767791397385416905837084731457720911904863464069609393665342417362321368435489118846197384994035535144833895767073243603173793047337234807282222551840571548314896098375761858530300243111207009936645746760142762460452369454861610828249046852497321695821677381982213632997149693111127860151858880935862360866654819531796801039049005956378825815921634465332791269564054235627221766197581435208694232134237471128420529299846311978746843920645565190061277786818719820649217693334957152066748111919978289750386850292823016255072795170255950252534017836517626059057474717669829960864695744187079013271105222810366950135410422592004319912763896214287502040987690782832100462932432438516215729483231245191726441047307317717677349041904221427250311919846244956919173299931827384821045241455656231912458411282525581746892308233782962287191236835431138990569511456671446285016618602381779102084108898780943013159013065264176175287903505447687952066855736690149306102088057027869340392684784147001496535875429740038854503896811058742354837213365633529029196582775676907545056073884707059252530479829394409932330758227460452014173119821735544720106894755338644646314802663263539742354027429080619203573236918086367435197558345983919594092051531202696608840205167151356618446433328866448794468698627304127118358808506231126495097895674419582406639123987748577721828006831667812079712559012235948928489602198884388140890835092322091173555270388387277585730477703572342289301879058570998647421775370757638308114500067003921742875818785736822207989085257880055030883897906679453704777297227669789555994324143277111272658780896071910046167044592222524421770111920570895120792756333474479030387900759956199074491072774505017707958795775901665590819017980842476497822830933980401399878593014871343100652937208743857169677964979915298208594977782602671945421888766604233738173348734696553790058409268818847139342491918411487623003707395776752913094470858604171405313915958809256637908906794398373690156158324660839678063248115565332322958607338327972047024673562477542482493557463142187310798864659608182118573271069386562768834452417915963163976740326111163801757916911588172617306675142436683127340903930914020610706400096866620647874912769874684663413197764029061821816712727983129748620153979411144275676136489804110737758808083326482428327366297827586845309540595352836745343131874029650560211934929916112211356586685374372889010178883701618887372363368205743381200467380126074763308968443821649338907009870968777026123671294471571971890684488816458179382240222399704926755140655577813547029551292755469794549655032112598676983362468210429950723934666936513667989606311650910920810213713912757365383128888766786806561080382639370597200704059691728859293806762545042079410138402158518045055217904830768158070278394976937933939411606528081179809178059601994118762954659825416324021891313690217161629573110860550588449071811316435775972549590445284713988690019646096414402178310807404887515633477565311481751270282030058855133887661648764113166442081674892106500738705188785095644995975514674050883083082231005148091665858610987360142509255518676793048653088428100200771223741487283835001784262255345555703886638593964180791130622279166020470808356147737241085392794368084528185127880790662254148745499250695329282127502361585556447861118161736441979069519733746510076814111630136773648924031282542789171420087374511292287701945517127474064531841580314726950040153040472500430919797700374807591519933885514324629907195171084817750292955716838010214066978080664458750135779843035537662588962188129331036940854099294384201067376881332296392013599201796955961147975176462994130944161847098677206830627061228112811512235334782504049973034109444014073944166333269194321076819135121230105221219241347246007321310103297788450050262476465385613368482474190509720233263613069484572772077052306474666855131221944914640198330260438948337707126709489995167507688170229588179431930031334394684096484831803550419123001640772949575597224184585871180006309351896361252732397045437050138299883830438500815780555600246743105882803593994251980915476209926180031302752473972054447275390925804688294972742507076418080470606004512295896817497867369171831136987951422853296533907286373348782885417604812690591891461417841543990743664811138434021251056045732386734102293602762629462588413539013906894578770584402592985967680388618079988697658779470646082229427764959405492245326125853330621129134485450942351156439850391653316275494300224236404103925408569676616354199728838764252181268957992948080741315787752100458069345355015208307010571354584516840311981904177114207923837992572648176383446793908331782043701274934788227711550595162957107937964566711246587859957846351460643378791447199909717380663385659209917356170877069516062429694748890168832677432553117857673804037210642157312245868471930644699092355570166263520261196454242510427031289743045227595958765430052571341969168237826161807169918142349296978905845222200939372107521327892066452878945844773333314465689842054302410248879890790680709463495537609440612449842704295865523867903931394823559968815247502684832470128898162649665909137664399569089647005493909322573591640656275550288552181630021409273753448606309579170051577664915689827046667663501794068679906261320276224094783312757912421335147823934768782337358468808380087647811369158540036195839680111784682828276296286397587381858810559552579118845610915949128996382413035303857400658161842309586464331149575858607519614695323964980231993282533935741816280264250533323936742218566609393715504540089511303762222520598210051687740297871036115210075583541283484086209465096609846645294861185493982747326923252326958354180248208101581254565393354300857611962647465440248147112032885807823783060462959768565669228396592159088124083764642873252097450944423864837829811319759065727750144149002004995164995194938611632591538446372353943879040426490829524809080639743580172985859220596309085624422346625287846638062457367580795562836514108474947989893481716239444294074036170461241993108828066220776595073396813634612949440964683476961465522449144780572358141152234401682434084644757547551677213456598548291882225551256471852716194599530208451023880989286670619846718592781063792668330650406537084160675172995482346640637218930854657700930682270822818031956712761686684020577480674074433372814066123787040346351740631761692730188870072967568794949044850135095876767310030962944006255780868197888120239188333566757529397349967129229815071522205237413578371993965490555473787694210151584529268178217939793103002158896416749281547456034100155094419835567565045786305913434271958279811494136652693436779910064936666244707646396986602658614153318758142673740324394938114640413838962282507443374288904624958964863519381224188618675857886203086070216421408713825506523318960744110120741185125020332502388774438046781076408833394356841072976213164292635375256461157076334296620050890359873769535883144587027260764747126212727922306311437436796393055377392893804882743115451280120222717241927280707576441123491518796359972551018790545777699923460536084917181770892364082226767660537777665365063215359642466164270139562860592010094493819820720691093473788374145505150819109554082040793185369273435813267574225730172040595883167922998972630290519785741083450083132362164281751628068214451649771150491478587452112821253234438410501362259435671455944523783312720426799421707742576186207644056514343717632889450972972496123466481982047480885052747523819510067641194245942886624670909956255549537426054472899446629843401659892596070888294582240665639648263578965270662884917828662998776468106008686120157166481287869131661303144205183140588053928933355733263553240644302750057801894118597388009487218800119468876136329804749873951390457889552581949980179829716496810894978370122757442845858133824066919679874580878256017319180185092936224185669330659023142860139168890283306157955847503382219012249766581945737314929534303766063963730184607857879982343631623170508632210455905879061860308196791403975464344839640239546430663674339253950597969954318355815218733347699527967055870341880477526878170980001392731304659462707841397347169425289608151966568308527967891948443823575125549895462634744261460559495703612636913957910569740136354957634278191399758489679248394859346089056658288417330492086242637281111438961225431713579122876228828178604427107478656133419666024876643713146693765961981519180612959348720276209788808371902271411436398693208830851665666956366745901117099853529435984797889489842329349543588315585638830310467684344665547342464384021498638204955042822302738122986372631418344995793753597982072941260788937745542297911090264412665156358414364663897547390625001355177962348029847822091151306261818071313047979588198628154453671225930113338473550485165252258091397340453421012123082209335543256018784649635488173875517603234831667133550810726071056606071976427351508841032897405405296801745018202282257364040118149772383062870962171941715773034578430075609745800253235650512898993154885099760135527260702075356104019395328024954432958587591071346998205917470459859587959863676138478531926667985742798495049237476492766726474525394009043527580909531960430940145037304333025809833754150190401371875465127849883957720195233547696349681064016952191131769739889579558773725060220581456956686368447105352671738561240898704047058152897733235091946010740159793434091746539647603282209580550206083633977944801271749336631724079071258150347483927187880948243104830842050123570628225769764567580470280245192785070930725234585469776636118303326287679756124348861151316257479466262323368437522023559722034973049618420960288621888105360179900222557034784048308441804534387233957204643175976091375131621499282522191935340574433359329156623360491833895204147451530535710366465866795413245582538206201398200072793622006969573321415621454684607912949436941818527963169470961398336004997622804882221899746841638120158266351473000086723823900082360607292677842481962935360656850480378846023542519135304532197438446220348289454912862262532076810799215181509430756910832478124455014789866153899086299260200908607045702445756116189271162995917302179027170647203465081064628091085678647241970356547379387345459958274626058494292782942056459542270501065387714603897882202402321568957909055083696672583011374258916433696306027588175266481894874112494035771677259471411441346104910059813714991354550361486600683329763522078148975595577292316198705073844482621384205749127309060444935738203584677347346453484945621166508426804960453923305174590530935044315468948443699769817083547694937417279170401519503464852495098547182126563459435470019735465903690782603465878408206746975511884389173165399318801279674937506901511838371739349692893941591844759894333179894505224598533648908208488028402378661879002607798762231705542709989527633012679967686298009001021267337222874987188819260990788541310371134137022084757273764579902358558591839769620363736795370851454239380223543382930136884380436304940566988596458976324680598369518234435944073256462561013401513954733058589045183961691456412297825922562896388276691032594924117872944401850632096663183463269678915700998141401083823186942714773170355564995764565855791439139471214599507046698030046677344028717817203505328490310546274354980254476365094180301495690164289689870406719351755219900717824409240339624919919652848080086955955451036844481436194535478147970921494394554511311979513991371645987303569757401495478915530953354581683706912741343062109911647100769560108929118460032128522665437484435218403307890978308132827671230628031968371124583164300264719873981334541372698241067402779038295913634984832900263680386498985530519874578689162813236831059772044008684038103467445838772828816555910726161457420493675904152409067796057400887624227161338406177503130797775762769494752717786327042823944075558100353796537378210064285950546703696363873552962351885872683937322004220687223663320068700950144395780171306032226111153535625071953360030404906009154544044390785460999439952554108822378559574013456677201063691178942498898385676940964539682999580829456685381325586512778353148758790759801852163566727698370841869723890818379757083970721204050412309553097377030343260316306095806892279018528902194197376356598966591187650102296143801352025592850295234310236491247025992108732701666923034637219052494697256367623243593467589206388752424604703465575123163462584636727316136184405106377874970763864287453211495921837980585831641711053157783829838600471238288609277942332192838326521908090023495869991934413517328114969598815621440258347517580091483366500070885927780844245858380962538337067482819087482658550656998693443846057669286720543924855207230126421194992564178723543812738473590967012275305131360622384720477631279565546875449962324582580887902888899401463857358733635023457788926084551611352393904890813287697031196841714169752310021384313259723333131618366168005393711466550465833826689491488249941451473095652738245146341019886150184744487627631671840319321304677361982391727556724911955156819303434146228543548756927811614910049286127468680920653746164012173795173463874617073861764646721743990653354459665286846836568184205130701055867540834415316421271297964736448799489780364869965413884186412516308347438879407738128880826417788361495299489625793277169752791957087864684264469846567748154568203036159645556989105260410575132856452886968194782671709253322863888194702504330195855738831267039451207952036932403524504691307782651224767623520852326789377212601761807759246257296015727326744488691562853571026285356661627166505072828500265922747777887517664551881997267192605281654396135394569408090494331438821153723082259531802813640511316801014499845170044179617812162102100655254277366515369269531874784830975883599710825761614145368972076674282890903871255803577803767886770965145225657047951288899176911311844238200691954938833049234307837106988720692838407823416382695952538624953641508352715718410797855312961799472968059221795007601543471663746879174018340866243829404986018404860483166801562239970728079813440221501896648518279248220225372493453697167579627091244461312689366495375010284960874507936116958626534988396783177879504462716914238226662596119084731736988185627065739937834680698772301626864670082047162786102057915859483682097311522421598276884857494834062111489798156838864036769336452752509494840553909398133371991989627146074208980353165314335940058810283589205453949487546264597592261277209069416655983024921739405782329111927202694851912412302903154294108535629738698654823701718852509378815667570134745701829626779750925514587716370396592953319999444921023717696956505383596945527426752052606936956343207381911322412792897648258520139732655158721938875322287677259055341325205924545559011013630267420323876914393219453851007787319450547978982260463577420840707567198767194389976791836120933737798443923175183930838036366940791381214568503928131504406985795414448226458569079786661350939897638248524829410721764951294816945770096471747525568337277325176637728629865536533307758718723465543256381991097563066125752302447042075202541951104312901996882694323870873956219645325363428517344059778113793218616513931105999030014323795167090608659832315176600470998933700936883615816201879330745584462130924437467051780377150316525372501955803711068971838513173231585959004078621090115317821227465104407953351173844513581859092623295887049548023953742983677520362147126442996138180693522224437859297175537294895446447566391666885393975095189901963841611944721089961806258039865443113729757990782873358515346071862869054890147855479165312941327022255735251399206411476387743712307182163658580922538610142860927590973477597243418156163745376861360095079712256975000529629100490514377098806798732094300385542794470426610221096047120894557103405017527838341106559670811485058327046635068590645325023612938651078710344034646424091910206974578230556278335964075329114377659545283241729050254933842582823882133003497162305083953387399813278919008518228127456480665311891868109778753654272573092724494202105155978194680850864916399647931916491275063710260992895518789197834043917084217412088617310300110411890459113006730989172226632924243331655318321414853441322611499129098289963265493870283461003251055484772295058705161583253551568563978144641240673995487374547237545007964445347406672445832978737226572925979181879177791860185470393825844389662809483153838935648300950539336126827507838732938049171314639792363702080022098770775202202917991036075881308458061674365127905767967076579520753673923545807936900039757384118729263314187407398624782009896059095767989823439000876257001582507733441212736028174075337970173953185814263258648030090426959301898503632575517865262696548040311041365118173911980622189034690448037191823233254441449079575493196009962607061933197299704575159158768816724171016657621847714018555133351087715154168992377433513776437557741535622399575342834965129985013931425104759187546344074783720446530770281469886712981685928126466951899706887255368979697475674414135033958927325009986257090761842224868662297800013928085322133290115030679887062400020701007686760179018676517954724410915671539716076901441293269841646192970947580433289990954496856846876024792328584171161731536632756323745287865418089773793662779475308479223559497461186525513035171611935847649611938254048315872694082675497202979908662507469457482105118449579187805999737028367935988646597141558161562496540564211929341664342693243514225214302071541439341669431971955177936513712092406764168414320972395012877868575492460828112965347767650512038985654926047074018515418321223408648948263938106849971235028107139707380658459509582220660394532228645977692646365671902776152108132258894407217305574588076109608604808530372320357413561264241370392338208313999247597352345551821944314901392982684391696288203869245545862843109507285828463821380434701460992957446596444699776344678701032728380691809217904968538654233802097372846658349908251342704710225429939252535775542066156002179095442264071389096745387406219597236139454822368255213983865879960914455933374064968005969236607691661954001515366942411337945577844929339965364053645702061420960382925699173638685002130432216659116769349017227581814332875198381981391329494477900773399231941561332646627599556186144580566253544164978105882328001357105424421866243347780490759958435935918731730457361739006118319226334702232793433365332171733871815618610467423848779723367725860470030776260241656013325986237213211656287455771654690016199551231296061749148536530323480573768878529945518446905350016791573856167464332284144810355702158376646779030285971465040284470412963840187650688335668284576217688028639930526871794079610662419169398853598791597827244309361506453303751326178064708646861824448883234695452962011617042293134009558828089740082460263044486649836229538025039447838751432275054422473139017018073303685805900383958553828313423718093539939955149515511784656227894828739512409714036703164180637095411627447525694643620759815895471470169458992606446037461172513394159312471843006200712927224371116330382404484883653652752573666273335806506490519374589071730450727959633166888808040063875540831172537211934742868615460549508876538961651659036544010078610125816082798027710012727825941157084588127765396732324343560848638326371974419642834209050792956571748634745956052356240155323931812307216115717185213635237415477704052766645856769092927096599385184240566742083677045141347633026515951793182793981822574380831871643656667539184331308919884043267124667346713860367345609128156496469972352642534489877448080026871308798279916161139785515278298240126540244929725412940269082321056961243929319670440599069800509281692264954866561934849873648355644053164934412575229481310603521081294312997818701572179458363745031422451799922808642468030683287099234687431560998282750408306359934968258952101588816280284373399775246606901458694305427992009648131691531955931930111652835382846218743277908988814691714739692830609970554266676208421608901549940872235363708292772448008113707443352017344725786617468151133780768405175069126300566883474728027077306947192662578892068854302116990298783075697110391503948549482118185987731198947411709503952576104648042408689982474855244486327514844828741336881127954869955097752855256250613985319869295143422111943074969570783254666186530087506286644990157565567705219688773512546533301025013660145058100321246693502394176924644399202344333331148493134430331858208432289926926651779567430755390795799536191237680010272681269170002891506024203284548975363580670535202762905406147464276117158136749595768399693611750123511105471144352482025800170352370930533946909570023140690439750172581934959331440835541335066772853692830237656361197173115249666642567542620186705198860443726325001017333868785971227482695830695506214114758939541187467355962451333125338424732516424883052604495139378832318075835468875033514703542305424388210969293656988966688209470656772436387665710398176397586825697018437794192559637495390444726247559838597465707748595774435410974867005494556316387551009893122041240513909012991117027264666998059802629582956872807220776414909470816809534485140873495274402136700782237109837035569197854104905912659884193229761127881788618546639172167706984656197151704659434024331891554910564353894123510625925429951983371826975093097758922820245115377518010449476838238873910400378951885362247578582978917239615976039485105947247103857262426543778100157738390598558074479239748137738683304083826216461283072949410607186096906460040032863385735592589149493642563322478135881713293453314153496405538570162738823248605001388646962427854446961157252258551344870587289799659926924748975466413366768250139364489328924629032075027437987816041080968729076969892039100438948805393177876768097904830443617677306092639743771933927965713880185811556099034308224319026671687393014149938762430129367690344046962256705821607344888147872858414093299442541937490960706930370623867427370010544445998342911982506874956995416988833818477267800393389411508946275604006421002281307555427997540257770084133969035194962308173507706247490078925462409681099042943732864619197729938932642289782831148985060926140839179806009057615134812362262423240875902862512938486763851528851851344740905846851067649344979128800489519597549835573466490917708319612233615984046302712510320314670776036283556670339587505667917635938192052837828691668420238053629188091521302657733099125792412280889304467898242320552580406717280795208695643699864440539528082060876507794045787990772325236675950124171190575456359937069643488328655173689312100043358029679334040879335384051514571354335573229230343429820350693461844787689850169660854788612890112653481588599530270272038623777350555256148775586583929974094694167251152333030262772758010192185737960717336361231351416262719230817282171943825876844325161041603136427828129697329649619546614114969717159540953457817456604813772566197281286876234062806539129206807857495377103829508380673598667205291039611340052735349519627189268127332862798259760002106739046527592551734239417737956620957760530219816898790683465702847689535855510811957320798328379260116619646681109129047613048126025482891918276724419439488898988711305018246934960414569804679366241598025848935164005663364584861364041543145221018681599639202486644449893432335181427596617986023823472359511832462014556874728901874929143615476758337821788148327998073513823392537647619952143229930105019303899596948092936802782292623072984450519701812984049188295987269637936063505484463978784577754493396868020798903983753813001385989581933373509126492990045997460787171026116711381442696103476448896164598393429911418619615088079433776085435277577813414145658631813043903141218642997291014612885402816939863296465517931424416478701899626381181338329585625387371063490399658066517634043742209919797878638154636165399063220503496135298172448506757518319505609237060293620111123265327828903688448508973469261548022364267186327588537048827268996565489044001433868724246766949778939384866273187843331546582808346516733836658284927761082893840147678377428902883667240909609529169015890752405357673634869982756262501688419435372053884344820417683348471386838246070724989260493832382359124688259873730481469126419745056626096499540955025828851184792889681842065590123737341623226616219694238183662732051817725177777515863995498303130230706739684949604950449328514004277035776240179456599325773117118436040022177493735492051888446793300132354602035818586775505148402377890854594541833695741479385466685037268677606312323600551231780801679391324718557548630573031038011285813931835842893886234762048713105550429480941446839700772653064389799044795074114846428080101735302655685026901915620865182048654717555269095538775441286592200976057883207431564615922164182729800959628159450380339782041705793697287469699304675958831464000351940144171374590459133206703799543546411059707369986258275958037354495195357830080758973617263061608688006937000261592363408782904467564503867318285099998033830879240281343568326001132831333680863233759314472016126168959307996332101278647140540952018480777665659673919841447466445483548684581202283331869252386821720252550912396967521447137867438785928150647400666337487949421979718169054302623704115233462165435489788173513142387404952635767232413156473426867597667800029252905094178262092329956403032041190988506922679231001318412282333389819333130265007890613588587068808133543943077310138098342048771524649926276058820498407420906026400521349768513618380805095697267640539073563778745912726799215572241004924200438151909871754672523014986300443733636026113531684775997947741872984705106669074001348892225626122091139784018854981043482387988973369570980733862986118749561397574430157441161186528827630684853254486752771429632949841950471011345305097621171464239822275365712659784702533991552213148507874349700254467643366272014698077951650609640862881806138297238255093155581783686729161840032903037045018536539305008343680432079567637634150457312497135385570346041210567781443187823467187535248478256373424650514060655744356753983340703868733280119253715472369013729064131202174383184901581497079560122604114017746503580980423772716589275236537273680483415920947544451283395933873542501234914486152563499771005028716759791290448551374681765906832182335883197861651762720713475278407041672395403594227052068180449992291543400515396252126710784667810561634964460957678754412032959940139630920536733088745775201035099418395390255029440684160966696206342063558674950864990715700669097942823976826140140717330755974594413450709878334642032749699116796446646045590380738537719026125865306562174916260077145225672164532747091567325116210521518059397403850474281370418271676531825846238332613313499738155647037236364391382106787295205409864664541031893339745434032243603422825053283205234814352866508360562653450700843740286092375948811275597969686573744156110286194322452697323676860026779724320986275191164304786418773263447111974460980625618991428875730963517835865344624653160191717003669554275441185676468218203903805914514344212010261504078140483082494573875109241996858652677580788991489947933164834560056163015761664529114544878819641843005213698698217933638506822160828974256288557786815780361007150755567612313411295791574974581899864802556577116172801915830795213912409190560945258224296454712576258683920451950377607585258107343763090427766789369652577763851887895145944083577490494810064402686021036120791438045447146491998177216722148243784992200008156314427322665145126575780046210352184879503661324428679439146442691221777319922947146188389970876629250200272262764094678433870578224998840567754525420594868823438354814304126844115842997113678667268317905529791839602702960232344933606849614230779193110301788391397784845501987667301143482721178403769083220359829578868586224019058130387569830797973824727898866650041507150310467647170548676541214662103875360527761105290213268274118102131923760101283193989098383435779263764975648011689692728869896675187773527514850931027935827574583272343499195328704838040798434219281350258693148405185650308253506547683552563927255660779072649765024028541812685127218720696139557682331747386704524771239653667983164225052357818339556185697692752592458987279837388119783464022345618731417549195239537466990423587467269752686791590151180406217419991495135983715896490775512002879991126811006778084405806682634265921880043049191289624728906263621695495667025398299449922455795089411484217146365192199687239433136266943678245871397319206464347392215597966000703680242517343334226665838217919961159721159956591904355481399187110374113925225805008367848412339369828557807060472297049436861172109561650253421919408803605608219834879227859181283828266773723340673046359724835576932577369004949360934361700055249762086601064037470848500323826460657567998125000335635153897502111764400522487442927405940327583229554880248035803045546182632530729388230958405060066160202823909551947344444956289784633688526593422110516856434638863374422930605299561756081511444624322906868411340617355301882995515170119586023527414489794379689101002678551255704398895652301964242756242910997635518164932608827889364232515441344608530649353982402521622424882012900616999849230660151854050759098875111809318690314316595242007287330265471078382969152882341915612520273036348538149874666902872017305708567519818917345217963897712475073265126884440117954549599475773819394004149438814723538379421206730959487196931421494418184455659816443903949518748472768002879747996138164479319021025141087265661792522473578265913093348026365647129763931807566263879319806074632038642301145689180075014914757495954333271588582744213522340792464161937245058643527256217096864890834413732530900930222155194769661326397050576308313910099767798552098229228965369928511749995014400078446502100735100718311620276186484308127727465185228501450355315775092933465962900198865143735114993684460786020439372414634023379235926910934661578737482572074759168458408710098731160512570424096423652295166598349391490343649302511244027288462420338978278797847875691997326883323684333103215298535887550730926667971241734675006523579750238040807912803029329439741012338654706401124747295022378661404228574842881125222638332840161138780225367198911630606612260035482421239244707536722091520101228903497200704036332568316921195400681512242518005388214031303277759544501233409330574576371779617060162881092197030196806120152063717293418333657555536383386051958364266638966795594311565414987978054249639204488587653819797865633445934558308766927613121176534795688138335333055666655155989039916442095408257553854033234663493423787664983212112469154196617307603647111472868678387241847429043280117541542575393459851908688224671065810418421834472116750321097322415261531822326201778767020697991325580002027585633252212159666294681146517043328972459222889942404055511192357248790343213323849670950299680244687378387729954429946975497427303577320453972123130083165101698340542662867206672275886980088442580109478980523727431222748324877574184790931738377735712710481684695192136037387294620881528660062317464279257015860445983347209446078602165779413336541999840023894186781358287728586962671633662026042231390371517858871348515971236730764732149030347982502950647056824338111520514625221107008909415796667549651319142968764740190562559354654118976812357596432284529703240191023285761328363836222025638771252625951048869495923061178450771613954917662249401158934746198937517806589907192357246664580607622998461391057524948918794015395693000869612764385722333840130947242292704299184646079597563512180405574963123591720122140800148444926340865349913255394147561676660132749186622320056887242643262786522957315419045837547510602644826497464257298353993842315894805373296512863491211126686119971812706521168727992906389038166919290590692664175924927400536206951760731156159870341861195263620615460808379675612460815759950171193761345749908498614469574438603140734099186609953044706414860011495557134137357695148021344267296774419320781198161684112617421480887828838082207922987702780905989828082609801957428233089893028282019975448418962236321252053458673728529533799987022862047661277190625404514207338848886970972109562341413894020387729753874926308855244200624197425978893964160341575247142022505023738607914547016309616970086331950362875291627057592665917565014271516258655970926440962151286949362579249064950377775333632648611928695982317415337951268308232164889459120228293202446014015937301476487833426750000714519033585533201666509106447703980226019350641204651394685460832473658866634928736996507083869621496993743737913547007011757570392076642682326300276306246376876180384270721603046218192278425558259179975319757652366626412225932118863921650644715767001710228503483880988895716300458198097934687670026599170847608861064428295464288049786765648122395282030801820133727016226751840479118956317702508665436158558999066344647863916318710366997102162509644635274260128624186453200925728299352754732075841232271593368555138077984138289426074854442403216699329390262331052372356555824764438171160623517233916775332337634880094297186524981579008003532095227797415816982205549455714800987590878631263444999482573695182910402875747398115857746953521257413300098694191682915919808424706576083320282770779417500979328768746358816254994361092070189320549611587330038955009262745358982672210272126144945500876796324084902306106826945509616622815683296472717506559917291654938057206996605258440471425119507665473779197762093043411886540632328966323412897777890472220497618809473759516527392993978928476725902655352744371868520754878955928795399098008271949049154077544652335744699846185124725391848830017550161781386266615244767734997088408181761329842166184390729229853325204239728582497436998267319333062071125104987336125931707674770990677847210527676106001182403740925738748315973317049331062154996429386943978403226967110819300731616008941916698812969961879714774132929314555630647478646101691997524655770442302878747005543511779457742626137272542341907535868401804659322775876871035396279763070272258395609965336216553208807381867546882686378816111297364863930557067390533023280906692241843128315341954718992789206986875731117757519492090294357510039669409785037272798000836078966490661633581891265701743848743898124858917731298066484777577659605923891558252820893030776093904252612626979979225967954524504901956397461522640678469873750803919312662894201336774863688698055552922524690222199254176394582930097764131484514402323598135038941999772827947338825585962950541512353118936324203506582385540646373437385002825476255759362154715584644784830777959325235875213050809089231508485815281066296852408759359427491558964368716060699132773403569082564262439216058307058426596878816210934415446310883283226194538295165696314075236320813935950405322913754994740121871902914563579875639547554610060246494349112531123934907808392921655584176725239065096190418360491142683673181464635685527991747318300588617737173130058677449543514104256323290505610001002275177796396265789617696893279472964583224349894534950803311865613651336931011225950174762049066843421975485256714508759869348559077059070295255823365437615425954540070318122015071814557848743388724734745603854243407542068113633484363278959501415403168818401327886306503887113127736715149730366048860505857422788561938345007618810459499809287596911701196793093452552095544689376063141801570280317089879649610710455957300357227917218872042914131620116049216486190947703734169398010985517040060460614402386823311811284292756622565097493310775545650875168008937596679242463060809629093268448597010386474438091633021437089143523005161571105434333047882427661187615576557427398375093379024031210076921879306021931339223516939085798448468312227770679695485945560231358663005672409467522079959404096701582771626301576138635438049373264981598269944494728691410392753249072800321098988907405930997887658085924815033340536609408208605979732873783709819893109823228177097430679445032511327262405332363222777868595130564192798409344236333061587805982498617303201880050261462801161397787061365683456954488322638677181486649382270948459657905826460279801087134709035251657333184980488795472752276603098343123313216643193769747813059904417732579424850321581323343363850719973322089104860896249754839079207053181610947348099201461793802866376657884022023955447770041738970529689642081644017330525019245087443408297279676245628414574185697611099668759281512990881608038073893546258039474370429439127045277994075426460972160215699892073204285113991920209726383657164002507226449725259003348146661103923368693838934429266966230010082781146158974045006430836068368267949047037887809426375960070887446523670883200141463199711846620531450061542982950082080818349128206299631028204010825385992409306552231134440859433893886521740439143931361049857186997896390678045528620713057145176597829056707818627689028733268092511052083534065393606087734691854526137044641015934492195716503234133549922159430550696921644117212399447235553195636655066609129801136830714856561411791055777990535436198522619203347723273020901834172461872090379837378919668979123519819012383868560407174262050407098028333930193548233982717281867905640248899037533032228585125171264049021589456073565858603816994038891695450883963894496131194367265324370723805771096703818686411965464715797375258716160974535733837196341708267277595094474564374826203741636304041577887163467325622612999709827589622308005233405665780460680551126289948602428533879645109231069288739909063505113898020810199000671107359518929152774549009921788174615193988592829412061255593697967464629619046699751243276979579929951889753634891551389973675805671640815352194794266613831481177473731043778506549401472558331094985502916029701639552734091402600961773834119243444709424873202069082997150120087641617942636173364795775986313432043786059707768738010630407676293406924238329555377333358502523222816905345541484806738631815174649409528155717147872432829282097756957342502304955126392108726774533040063745063506565006413665285809552696145434775219937145509388371108955411779460293073382810114199261504088371915935440215475066392799737040940632845223371863646917738783603652654204773733187666670131603344738439409146877885840115264556488595623268319056099920251863257582917703861116714761650398497737372420456004718103476331601392962958336722516383455669620840201284397340187470063133246998994184101710190156819686544483546556232647248277603851540504539888310838448282085922977279510720843990706063222125926511655990926290115807819096090458819942702343519503210243306581680975997525439621255762301856717271569089385052452269834675815575074085626986770709280227314315184657943256332971198020991035873544329086351342372714170689208567623396900327746130924201937191383190758597963998424246717126915801530840415609738409788423779039936658432397637535070164751116645937127795778109834931516650940430460726613018207704094661386360996049051865391696616008670032023592516108301614318569044663769772669464045542440847201123508707433443505672484821210883656129393872836465223581352255420155596596575415201642000077734820330722916564979452242566480085271395357208620848341632589933894618258882645226425960229424573484272182575841827014719476899766551634184599761700287402161220442724046822406321166977065441385084151790262753298940798321026640791196954981661115675487736074713456929871084808189312422721857856610015006823492453674850978487643312139927841478343552646666669802731530238113549203696233824780282452588839928631380825309898923618698234596818126646919961595892593145000290445040687897220038351168834935921458662257711384945624583470990015676573977580363787141572289113934006067339931709216777566489041266377575701029101775266818223383353462071765089482024826661373502267029475962163824895607413931388670054006215865606533096308861589102101510167712202770827562494618838842807530807665207484749848193926679310677632400383453781088655149362086169057733815787161822450552090032268237942310257497047743684746375241796227531614274112118821455700556797768268504812684944740436265251846043435893557828251382657503984518946656795000693712344672861498013496180832416086871465894767285103352484132661315674986437009487910526063417575591803667818829742861707611756895921163577782041418810307374920646103023869368164118406244982241107002596915182081428591993885424669879584930257665863198913526423838503780175981857304581193980100564135976908303134600088112693970163033633737362877271925612912007560898383055299697224659919568623412850406616812808360274516876534992529712508214426809327346613873161458771531022008743356851656253388588064582550089908547449789312939804767254298842518017840267378255837691875567602086521436588073031066317232194639067999219891806291162198951672785238242116966406164628140345838224246686726964987622370299639874771152313250418827144918403426749593071775412339547667798001489606267841085674102886756707468066899950133376517933397230540384562922833621201658396190437842246543285865680878881206622151380100284198173784582109089466304808876855238621720694527065083648323170591994752037622391163308130781868207410693057765377299049987688885578098154690643809973432785655899330588177524722547571659550038426551890748390988624976655316157974275749519991099052957683397417678099447629670271474764794842291192837694902860121913352985432809011559899156226097745130720802500771134382247548707778747298492489262540508441266093069227389138926999785932433146369662807187244015409962817107612127075648815062951030210616954129098207238075129112599424921934106790412280231759172841254435582049389509735776144203258900004331329745441779031373623982632264371187781501074603049729545429046465006152018434004682722909397880344346362163053686745428760757762937533975071214881235211104320017620836275940339574495336663713894383057084850774739505349879361911749357248913634032241056440902054019632535834337654529528886303444824305216475200166267215428499739533877073929929709322436842651912770691726701938730874322089136653762038824016650988729176060542744005607771639713987180656980355364837372548843361783262202833093526228293198965138997752478313607738026298461229245101123399976348778540896539404754853457117825217277700463920964827989211323551174616398547219869424922748600121742257919116894836208664388833456306616609815291750596605943905701911881767279704723615968870358941573994518497278233579824339330966019226462927342464606794699139432021713789343622817957387733023748518360254301693852018625574235015595734088546776881124280416452501778043361605530599055370904933017892195444914251116519737327736194899661541993889319465316836660980061920362826604604143447284512229312529633850119455534965679306297630744895392693730451322944482011513869622493585480170709960062321330920672533896417852711634206701160654750983453501017574982065655901830933405414102283558926712847076950247180632639199136134586790548319118929887649995090808942313966871444921632324450931736855337526895467824552086321238242960407931809078325752056989130594241645519081464665710246754179342609524108227321564419113061006270660072366802070556857295846684225220031393928912634961441878792967891523454918290560737599953377492140497816818139415263403576491976107167504270182127506331588238505329869524833662656605420325804947046163279504304968509146911795730024508837981691177137224222939942701355169352650281999540079691165256828152267973722515898685557889705087830612752509837241948576883717459569584551137977480199090696977967909117010489449650516561784401686725917745082671330045434261295848836268395089382279979880618754548975299155940131369147385042715845487272003725892897146749548916689914243119114334321638510131148550025261226495792742527097861682055357520757240455543473610464638570459514793464598607086327907769258531552387863224191192816091858635548274086551013021785356900809121540342160059154680467238760299313970780957347177472572232599157938492653410869996155870901837897068763128679431784372449211600464514701709867527470188291112759026773182802073718647476820250129574708529811738687922345226379989453896704222035359060838791402013204133865121107414915345941690777657246583074522638728736491278550308430047505569095086403847025489375132078965288972837347839162237128197075180493669175503151558245481743734725523902327910911746731111723593638611597306168479546856728532305021514924027513154144730230534223517898106536637875361700830184604384247624259160879444078059589894445646439391369285659854066266309991872578862032387440956432456444593952682119554702894616379597160584473661879721594329930026354909180281135061825648858307143355522533128029168480489870466290102284153713702904675729954305359951376003947046282070239322749967269755213140330292358977888839145389455943225115574157775000181754310156826040194781200335367102584139512352979746512936271133201027563471432031334284413020689974005900929806541437412749141715181655004509786513931103648978768942718900904019478899652223873842239898493027473619391703768313837237136553570015552414586079693087988167140751799517165392839370211749479158690849945365317361272305983690874256509022375257668488669979881576068374893699868444307755447050693115086651890510670143649822737542883703192351103498078244322977384821607259358488066606649224188045288287877631119264216146656205720299727324644968028626326247834456969827601407109980613869163650602813620727881222410473188560971523728163148891801007303086809763800434738455442849721502733064041299940574928128259052096308120282183873093946650188058251830410960515305352813080000892417500886634499326921740026578170693573905550017892132909140369603202096169386490416207259927800246542068831137614838614792154036965884179414321929524460279164170984400732989748056885628087235984609391243584154800240601456075380206706664235232703552272306362819276415287342704642518842122024263005185498279032093363990317547927895167286988865473629347347898509952659034273304481292256074362242907389026728796801349980811580077628151759980447313629883807938827048960615654349401600895978237885207290929129108740448648533982678323776527129811137080223469471739802765026169468364285744268834134224761144107830227566665557210333259760020827767690213138520613127521877498218367115205811813739309296541780339709734303906244019385177792001214801185708460725739648234567453068028883396581482269077119133399247940268001723631896141193716175895858163516958838518876772923117200914076777197182360893883359373518332825581149663768873456302550182891156724015546752461829210155904595817787951022350134177602867224680902604015575738077777547375754618505428593547843494184740763915416510447401503740239763490762722024349692717912000725470418353147870752446265356516827798022238772810089166700257691314659411621660062787632269644081846513324366640510729165378370554475258127266555196033247080426822178666182866617398427795892300523503208295733596633639455800587756314891735608570653583550254336087247153078166543785784412753361476341729306580317540514265654381976006555127616065825820596250925203333556097185353579657658070073467162720536620002702997907011028038519600685575993331245192647399224478812386577955065597191414221755359506668232464148292672122742714601801173213505603735915919613893110326752448288269027031785744403486342486945135983921116758491466638769989038532027618005414718565870064404487778335568487086394866053031221603264677059770978019524110957767022821725475305340127728702516274404214264553143359718883888744090036376119507129613990110612245077415422494289290175960748484744738397693389480036245367999856145636113404502936194012340214046387890569593629804288852213019226172787932737248610078715975399787293478133480644385429069122725120780211402557397165593493862262775745755303397548258963847809448493159667754713284249042411234034736706309195790584123498476445993048580138405220666677051403489611009510508913926792424703923172340322235311652881606707874252511552775385575450219373342770753938908773706918952431039960313846151877302946337996932559355999716227212996442641734442824124286699853422697285382145866744161830230358579611858354107113924570373535073478457938739521456751643370677244235336660310811725708110933383922597448654362823341546734579899720238447495954552419049375122051712615900478789580711831835062702408396006158554899883242949942737242592202072013969505313288962206092537465975249621848567906717335611043431723552264558412839660457378868201674717807260632571072206862099599955323454254785695367363110150630949498996872354958821020095743204026143735294117853788672275914932291029799135532418774242939865018381140731633944036639208156845359943333167908258078822108432062575137947628499547381606196450135291074897097367995956085437292640107724133720772224429164518447029825049072030713588730221380895366708668199835230350534838765359730900847299465640972513792468708507657107494749840120010640584929252107170233050552326833885570774762397934886532644653447056760841607736088935979347965054504053757068085082691361377808879260454988843341309684406675844610408980932635963397693494956481033472141671398759622161807328787581813164515033383132740207484222659104537611500168640572400468240334338182937057632831042682283481670813892751605508600411394857479594460045289659785074147323809456017952907243775184570765985184686441946304989952479447725742416041258372232215164548408683317549663087137538107917441122028957830252756131588412011826207348391003534086237405502174684508453316830974549488905147055537352764272164778985549697287734366805048101235843053821582731508695203332104975798751554743039095055582560978668190414807581295097071835480308852482555991409180680317306655644639490546064006713208336365304314333423186556478231650115862635745236971212253322142855417981688320793835607704179120637389240928407966589946068765021363334156332669075515071279218741998031888760571810888396704260182339703561648080971767119920145937890841610275611314348175056321786672541417379157006494036268919273710856578471312070782591241509380466838079501465731075135572243966009172905544333217032543379067727074345972631163352370417880233701037082196355548264736843699219991924653725591616611776778732016720012961521920264185858194192052431425395711340910390006983241303555078153903255114997231009607030212954164499413067347037896667923294879671477519357070518910552309995121360546494670058330870619832374080484821389943180071233438054829722634914532709781500564066524408276439655636794117187162582131649457040909556868036763857307083301499000573628868243487247443949642497500161845755245171822329105075201820508862322087736147961715323373017054704059019108639223053762557077368091116803377222846753346337612585651302187188820075432253300123441737099402134063557786862237719655820972547623246753637209221753440678446455582891680088577654082983738453629681357404042163646022422032119996465856452223996236115578205134385454606448634562930748795195309632115255861147487311906176796657608281592585630409666370239917574887873380505940132547535607096577374462852283998622357364678566932897688052252581256240323831177533309452218331661296269700499085301240402996401572984713896323613033187064866307524932215459467065772168861288158338941931716918464985776808075279671666483073063627380729410805518340480942708056523288057447986675165555635333217256228968078466498075755872731904434102614708387295678772773848609894573733820700220936187516909674342348655038900567528687592003061090448843042053199739561833003844258767894149770708227692688285515646898993346194262096873024970989457586151955878911159936501142226898805867024251866959011007049659739156712676781808108725263635784870765136669336908110231351551753323520557469374150500550375170293898157972624548748259669667093973694129963772720834167901010402938169989855200472718138052369481353611850128784683151078780089250470576826591451196952433119100313162040222564139047470888957828212424312239141135702048487818589349145732488756623621417309584961476448442064416969956642755804168915555220421055167536609985246793310566514300851906224945766300363993267884939959355106619041138920629899913871792880244555310245850077785884213974682353047286258840587776248075372781744456143575011162392052039828184314760916826705690618878945323491171145207292789486749933186291989346412140246866775567906064248477294362212877997473667687976733419744681398088492485624107709716990443973548765549322632584693007835729146770547387141542337074659718594645222633191467531288667830678203728660536785751390042334000525186903081820124146504086678491932457250727319864314464401643030643289336727168484324168843691477731709987934032154529165545505414289323837792331066882227463127673609680454199661549857891826212414376302392175059319548032911944750954639116110515249375915571751705499711356437207239839877588034960431861449233825227090475661375250271503008647335668095562225620170634343806847544750898763747943257765281234749888921532562213177234410984451913223967350709619731875320625001308704387968335759398246908637567260438188021956670358208883635168806241085469077140059654043093449636731839538962066097404832530167220755426170519260046779714019087348001046482321005310942697699199784522273972890623846782081854455288613269364311059232222486286174026563145457616306193891888766766835910378818363186360646911069738427027225990888740828032702850092830080858085821330954884483709890493372917338524221532025468342289386689122237749658586355832127904693521396368244256554951751688835172658945617533269060891956504263407309166980864640931898918527205172789872427376914298490197478888674435962278098155576604640686397334509087632756880460273075300571243557504304263594937533046821064213417583707541998196706792925520924259096380454842788250339292374093145582341627946156029521425244556907567687567628146796870942029745877070735861330448716119527505289275255961774083168137669927232880814638962338099873732355285700309644647551412631414535153923170389921947652027353667875434148413652769661132599050497701403473299858655601155295763239767636820142332693653673376751239935978915359878305986551254337994412515166888241538436523756916880121152427642047941215685377471741623424384428741837836266034559457858687596675777501300160246397332577320152927008958345723873233565544401365485270711266788659520976191218104887114946624161061640207390009696004364550517600558141881849267169773657050049643893244821762414103625195721594538552072935247429170710944087017239363201617077102148834791321957204273094148633632839232517316385079263352859626826131884922956689170458510966299001675297949027483962305646139399706617810415942609904371222792068541141286113083860945377253709258946208065734112382416887171463555485782187700525429438233056125915282846504512753083400683551684090114637041752655252110621010639992713569003231001014325378038108090280040004326666272536300424906454669337703153799189824933514890558976018161622606410944513316620022227265648405393472914890831965903167013646267456454679235616504154545893559499656911075099919977911746061614038341221077413141868492574206268536670719042866292884041179932490314683249469443485551505491495620521357963953690714933480761861308889336285669745159354817753004294177254567346915607274458094301759637529425192220629765553968783626305173676462527638464603108239620722429166303138664054369360348192462922188023172275925814641100515885644909411041750470905716360788602373540372886203682640942565958677529578724009570215680571098545504456539029023148506239609852259963095394819813795495792946412313580052213411773344860776473903366346423587941118588469342733439636511953731496280701532984042651946174462257803106481283234719660813450949945968996207047124437405273209576919214356296354170682371068493414805784128709474159549737783900325634203913101608753369661514959307395668521397893281328365986415323145446170960608161797123018486709047577510437045887624918706177149731687088284718458622918736006984445109708346863113665691403002249258935422367045569544328884783057120738137405191615002554456641439505373236150985408234247377538409946968672671744807942090747674172909760950005049645957051912121725250983584549191156365387868844230505285901980855659700364918429696253452887246037925456582498524368888051761754494124651408152797949464605415851693638329171032622485412921230738191956719269114870905547059838574786467222066715054848980395259934441333293696630696214019567131975647077063885066561761062176210762338947745134056891164884221958686661098239260445753236044420660624581185920995373354538897841606184819672083323467537427815312175446859626832500726348429930102566050132119484238550711754768238997357236827223344765409460794323817310758518665373692663982687862511559782240843904896309995455745390565702562811047306813863469000423694523753961676706118200379982653210582628969605630831645649993543361815749363704491037133523157382169453055631769904207191449816474357516559650224044911626017954019448977623459097806062636287628294986305098912131691405322913784078712036289278744952467693905574426292689882644819886504468267057739835168656490269382422110217579416562905715888675787281405843698611684976444876446401426222685526560261635043267246995921857248524284299850339192194214493590338250163300156957119546218264039368155637277210173321954969581322647642090162447444256616081652352268323187187369646323597046845413654720198577388320323620244849322555683798951789037836257610770480038779108306876610035674632341587264126831407467461668959630213840755002004472275811994969691406684732650380644700600335752572150656942842535055659690860156266245124860201443352717794561747193636100255972374536426863467965149260414894595831291618082142084651409797371408030909583982698900071071388632245353636226949845926696046578396794873767183548341021247298757525177299455745155151674331564210376050985622337381973562216337533925451154888773283362550999802020199610085809684271725852995643852006823095751831188877359075585859839632902231082821501988017524679463830297164246215755903046451264240994843474946605676704484787069501588122840437278821818641925625494219440097887713200739035513698746099629854460940009442531117269191676153487656636509914517810206292824602078341414849812378308579242433255926349302880568474042207954276051740810002249881082500463804028799139548848063752968668589827131238955090079281888448434969763772290331163347919645838959767553252838607107102806695920800158844577358721269575081718295551196927172217075417215820431075911790105222483156797405583198978727615469255013425837065516134904704238699875201290656751521103012153171034913125065517822964404130261533533675034231610719941616831863324333273799246053974879545403893172353246938616360484085367026263902839073923486689104809585690297617746300405636944898465399442888150338283857184918727409883731372251339497061856047302274621771220698029032411297343711631458729015824550493036226411502709551950021710453803137631191698765507223988845466276656665898838722358498232462193519485670573006751813720847432537977546752374321400145815878550619367637028774430941722495481263361295870213668117890501346176218284780565362340858757830644373606357146012299629563367811954004662125054602244712647500011214607633125890006773304275449785964714417240901350468067734289878996044993721745447863594780755307233112379307488996192696992305621710371863759972762970997123012764967062660324796826414063586105183741507278180963550522208714032187384284250094146171865596056112679573668764938820974497936218015759454552176592850933091575983705145818222993426744623980642638698927912919948342642117237573126728303474556844140885340523798045955408058053875263294762006669835042294502952969575190835566592660951457643218659056924273665911330659958774169897212749164556567814954981987143553383927541374693242263029448443366468545821550095821088106601179084188146601048610601579957625719909081327097212398917662964514409254467380025639211026586515069307810487962854331031728562297716009559492284287772867486949651880982597735236704062880958539795488069782898675823783779351322846776858465863163790480172223121181608543381816552081032647313020752826625311790946249740947540198175629207772088839984415843759530102130517257070092702696712316299326004704946529391425365299148274388537432019352242573885562210215500678845974423500446165573320002075877749721870100173931794203967557543291224411597624367370174834926637909752431237799523397828911861902422510923077331737610101698009217646247212730668625723559764110001901641516724693147625675396520070805357765906511370528749097633211543902218280915325941611657273428448307056725218189031333438014932708106111105332036218269696940756205921199080977107189356887154706385374641949094865907240340503217302958378023176706850351015097067682781488898046443634272240327661904338603420743975448471982928933811902081546357779419544405751199426987528940667500661373864333317434300042999019852128607824858601431861453261438973859747254161038537243397524100592788431250154706409585815835688371326914420846011958626456584073216959065402569700154827291730947922336647408894121254146227647092003405023443065892017305179959458444934372620173147405361007285664210599003809954484740495106305252792780696683953159042616241212538658589055521096902390580548188575821742047886676287687788077617953868638794898437315960068521264257460550812007105010731150157207124965385644831754448792144691301936485898800647682917817408393311212345823742432889318853211870777794494188033564426760916086573778549303069681118535913889366512189590897196627887637649271465410488221434320570934690756143723967927901600068198811490300824765849140907517384203635106196112172768910943529555071313457570086683430790199737768821575882038573608275474143653679715647381293383839188958933960522247005245894794603639457113728472178441176594318321765837178881053422383263359703438894496641624743259518935368221797985973945710664590632432957794234746984045962167920554718514111520490737875992253228739550183223155921143166804399552031955863734012661423143327596134526568906329437699012049994304943172693329505828337503573455465925076152344992284291057220965944358275640160600022928450114461930130590793386230633164428525302132372644063344499514679569252010534340746635583987126713781698851814875856306843116662170990833448912004954611417869705772516795417513260658293228900571877515955942352007113399249815907795973835041695135752742829480151790966110137441601956151458859238995791268842672143081410627692237244470683262130553663196678871713325565651298278655724534180873805973695892036806254953329986861707141680833792828514746721170714100073705021788492498179759195559149958444093064796219003947752846842344369931541860291938654471647331086945535760964832389046663444746517669109308525831377805305882840846183873169976613026018024279489382616248727154747533503222211630736633595104579191610465860992247750510908924411259753111125007968516241412069449710863388109025580722758640439467442965041458848231701785799919931723981052983548400097317686209347138261078490417782057300642419612858708955644745974622761197976720252529437254880100740911594899438957244761377649564023531630232192480533339811652670827706129395456274535944983563405372616768130226106743660533768681488435667584579300929606536659820049301582826377859759569004018066741100843226682780279644369168162445518826947814366181900729005778142825261293635498453757872200619820122480260899206414498757706236220165161597989457931691844846390453181266886689046238352010156348349679372483077532036429788505380461771490070007220314229290540205499261646001687445431825291708721411624352511965075715445525542779426986853999456849104911065765986407247578654187624925463803748517536426678982541163038690970077234774034078317509790698386932357333090010929374402223367479785288325197075837452785323022830017397603166168430416335129065656514413764647840551456157608842249451124057716610003339430105697689824503462516491064128727020253318863292551329528043930957758017566260707225059247768769032576955364077401323066053235744546293960611811385514473687914702295460341331863295182016338839522254315048361865259090107761264390550664828266463342446694814986976286630770167913244449017532438198063032467198311132119476061784466101570956445963281711363880979813393513532272568421886063824727978723165775297740588426195406548332468137359120643026622021981529372292891578747017648277988421855176164682112141634347040551782999972058422927946256001579639545340750886317558450976461998538448932772249787204075384766662273455062933291674657722785981731565118940141298545423956459510394161234273497762691380293386310163984915290920945611939508716769639536676508895606112836612433008731369750281880112859178987487586589584374261355456005347068844947911331706779284300063215666782819645954434429912762187894233575357021562143314008194041355784965064024630445096449363254164341667625045139696375209984363148244727578514886491839353147563672561658583509207348292912341612045276972245015651608048716281204342813723192499832028087516376450442778364506002308579535547518419363012593219466313908363566686967373989953068334022885854475336391750532329029659430619212516611556537534116281791858859664846301174552463429497340026821637830139957730111400125458480640623686322362380270666901960370892013152023719861760026513696438865633951491562948275442002776339476592617089280000688572129598606647700871980679145146073011997040350373847734841629963726656493048504878803501598396834410887855183740155535209747225005741281158800083699863021816514209172438847374237299274550445046858159187302483526136823919251297615700366072121280711783913295435522689587173603865644521861430572065626902209572352304167857857115412579753808344247761848093916369285384307276455849407092944442195274922346069887305908616616396823891754989290165109272446545863173107101675569104334323305685780569607704719236467574453482689389926559467213809080315971775077284602569626563734747028346701674925985146939495930717975715328581951711408112283331857704964440576477822260072418238003708441721889127378456298658234639592435965838433587149704990103363179139856472826007477094305783905500241552249979258215088068487508371028653510650819411576486835051906113217242274412119591860531483617746291161353079826011448974261484181128634842592066187922576947923486979499614747930650529943143731670492707743051879621064722235759069132160035224310024687901877082226888566536756539163769044308295108436786355582993030737495883373621111611728847687181889432090719496023768728090080265859680243503001575406162901512013442423701445274427151908709702656454363798655847008273378300606498283160596084951788503624595176772964479794749458683874330553786798805437894261600385205689140197140552415508013861105521993188064247679526494318014372312482032523035256119955699712631778129279319201154717046622376363233606262868121004921457930671241167634394611397176776087321499560970328499585984365979484159547548945665588378785776180875240281517304717244202309223476338944710855494633925587758436008511791363841449626709268544703375173250165270943547819896816399323167236565517026569188856594790467381201564755015436787894281643030121456086925480647814916287734575053633056665778927711289300540368800383926912101307817741874734977407466518526916868604010341576085674877331539376017457643268829103880987658404860054161284025919144902835093254838998617208394356832084089133325442065827308210544439094371975970020467421331360416001900213810838329090423107942605868405291692501906424587992249316012648626944143209805901051240224598346773535157889892628652568077384629071370396282160208692097872057185625319820663383140405150689982902060279895706409879507755082856817783501306159684950326603635722425128067420363160013115898066678260026078085992104846209672229429596507673612833070625451524087903045245194235358094077289350959552163216514743685669048813941150934497836588878230392269081580410498171537193699808423406651799979369871885637018630514269706556953006725909558224169998239681503731094363086807695659487055301257814432605197449447853233680139142214983283434056457877189347268367232664652704669136589397346596609475684480427252987798119691028545119717532348147845567410671678270806632587997099467341946344571909653505041839883718844652763782726334025261724572767645567150985207456297412696770512109743610551205463899022074174605373681867474200263338376134577300846881688296366969580153002897493381695800191227399333420944601857377955424401289105196546459978884768089090361308194756404929810725889889861290141190094571510393785960210897831356676054343191802304407955568150423796403181752219012537898215265382703830256743488098232559701905381695546914302081712943896278852075709902754572019631811567700605287811110986007819579599474391455281351433377524822709672086801653494028700964720524647321314798255104684017514109975709369521359509265490081405298825421436153153545850227652689765993867004217665487883049557509488396608731633901626475014152446217794165920180957486119358871719306430482462412940722127293417417269097485962195984291592593637650503531371318300424314964993325705089537736415276709745480831296116420786659852993884941452075874846197104905739009576490307203634512360100089439269485623816839736111701207632958339472167387632956760529013713973452189038575588356039471448575031462761473122548378584429229873644037174121655806441486858825911445396981622579590870541857981620258569583545929430493976048346864319913819900210880490516996329601621166502733014375751950860934601640527818618390560803704157724542285748663946855832918463876597038814365225479471645546712462994831253968487405599265994363739469318056110617843823250333340354753773746812531975079840062301878562687156404193411027488965249044314451207724866258842147545970482742544581217629811921639659312053082163518556760559232641341294170237677818748283709726329775048820731821791736842667844413349156202454430192067696831520079561425914298690936297607911209755758968117844686837941836343510148926834114018015885900130880632044378705097227670002503583140074489490047102148160632390924587128727191906390077585644210781323815125464531120600770944834915826612995098783358010283504640028842437875818364362832790423138715675959477628077326630184471255395887166064968524891756614117120467575073497506788381622119297132503689444374546012441987256472431419996783789246989130469177326539779572372725831887174838170605202438661086879442520493679445941765943762501601597157251375236385876455789269410501686583434130903862739535473280412939606982589361529731450771990530100785250033649863485171103929348613526943698300972726965129678452184602749200557358423987560230244687620644299574223197696887319666498681265199794682191296711756654228616737172847178087182424780647363359428690544372841083244619433412648354559433552819197159497186887969630069555263283086132766810267085341681857697279672817404497392470904766438569165133564117250613156525301193207016340205202703131331242844274411680742061049036642513249602643899005057925503427503373511480272818001166624921999236081325512083312864040900300076361713390447269727960292951355875867478823890427537461256650432910345520432855254908901338292345392625767425937480954662778289012287340400086795522861697277237415097062804943642048648280372426647224434480577318125254604771359490077637931681882602399588582266917378216749124271223215919319216748371270827145043310726206741644565541980295158778311812300365874639361022518259520528571917169385324962679143429364285835566167492926363695175513272015172942303249034695210068733418263601913346892408053027811735150912465227509638557139808654707914482212026340504994559727775530301651307210829828959428964907857594396474034952379358392601577342103857195071290537291350861343880870315111879461606823839434223947357511999292117230951382966930715924470654559983716266784012005427910391176306177008517926086099197965182478152186856060522374303125723430018607470567588448074714055448331395211277623467099803947845468410733467329964612645969820858508807914068325094038424981840603758339828976707999122702512252131614402807804336254624280654295552246431638313915520969999151180502331079446693283013682630238392180902755227505826612871410606543584297134616960718068194118060417931728597558004919696362792861512765490083794080268040289805732608629106381715710484512311525501605418999306903157940325016189090714204343407656725471246345961220514125293529583682234107041871531359336368907044067689020289620202896610148750253716297203562110039112009202309161116911666419662836118128436154322559588227515023163368113508274581871602066694338338664182689163608665447419753469119457132233787701767452978035767158545695202359051354265247014467511572340902177387653422153330479874231921880643597241334798323772010299806693221910725691036545618549992454887502345405034160422848813921332033989530223638139097739040273389343787161080176518619091111750197255272992409301930773560980070511830734397863374815381061427715446776958314651936690038473819628302786932406094450053228492302917122369287816738017058913332746941179103696596553099571300713249378412499065989342792626551767231389366230363012531185842644355550416246693682129931928896891922305041228813524623672599013043310852940010565708457327132395043936862204529149281423742606851364260602985062543080646372804036420805225132062084138213088279387165452227458990915152777111599486030941441318556589465148106101914369159283652122799222377424339523958506338468121374169195175935339057438478412562456964039404420041777458395582603481633887140748966335616274926756502616857389096033992431513355690889494102435487981139961185409585057939662513775044094216762937980081020208275232949472602399007416989448062758113834279239924152685627461579881180182191854266150168674835494953001456059202203708827806295952316443205669726515707595572750605773901850088037392696999684230934879571435123262779524465218305627818602575001321625698131689169450029243488023601245776226117837934838399461026130362862808508296930155934097919092451991158519335488057236704231661920044847413437242983204664692393312088001814040992019109231057786426932206800956779952720906149223939989366481243678200816948222236030531287462525987522703510184786047224243173628537178806351554195160202432718417283626932917184590762772567522601146472035948054269556079579295968125713077565717361406151970918011045203219229592649504091896993112797034712323077152500837184996061997993459993183544821624294732903934013497561449548662396747443710498824360315514616827501808652247431548813768994629790870897070776472992152764846100141636599583069137917803808930160983087142438314075888885829246420567881174808667251053086627929885727071431045483734210455035183836526848054021687611787271423496093461911850857171330767309099209016619388307542572912662405002917125681935997132197977014601590221682138824123667305593308379780723259293590909473527044124414174619160440048833116661434746781096926546314960174591699742195206223456457489794504339126926461686634648087715381740745733035123941317934561764242222349430972555875206355750086702906042839691741693771053041289819449186850427704795909716574560267306905526611365062324752364991760722507626726689295288609218239822893840556300044837960446047658655331186696510439787101502947015094697772880042702882954934254225243656573398402742398498664069567549067601732248341925629430535005664158097641166078539996696191203518437251677443493481751788346372732816900180052124646771425301579423541432444252604959851971493955773029958516409198846513913186036615128956516545452452487860804527875188364000012210975140918361476139268192427348676753792036710333202717428585994818805972878130809964702153146613220934891058531636830935041042497984204824451629585793031999038588144051150004552530826956328264194176782278887491718313126333466659091790930451105427869654867645294524091300114221596027396596893389326945562901224614934888537696411037411362961053305445956375667624428325612472682499665556503072094893100217378280839277004622170557630295266673762394398041155156702503966661458254315499223253413706935448366614107081551423027771839597686169817998999945426790392755033925415725903382280937286198295145480690950121105445762217318121397120003241673122792662686482385695966289561690410309958449761866850564318578366234047066060600655109768136193194125652817180923083456362738715127359818275651262877260505004706714567411873460676336758418536648510208423518948155486981249426291423067269968927771756990916278179772143799954509491998736314948525405919982045675430353968213622180937751672202028071321565023736762925138987077756772299826290422070979551410071231331755053327594959026232766700169941961619582067296198882500584776943576781061564972496483067812623333764187797484867803386607325343659439613957626633145469754969989198836107748695589902746939778459787086414504811432033589751666056737364943245586306237866597898095727275854888388181363274400272601654764616521760724523873567705474938098613165047863032457679749645500738941037171836162157750815250460241249827884615034013044670963827321780765712710978420873894377138951829744193887974177613888583984182159757559690427222973414750466463512210442733189819614417980551302932947807686534761852335051628351953831075137963069380789664986949106317472351445491538597814148786270210279838603269318537573147898133150687122811355798314141121505512060193367740487051085403585339623262180803509786944368381934285886838262016847468109903357253538463966774281455354279807259112373844518530160458498506431043992304724486520809180828440023081989481468123961968143829396010262652749494345994306331764805548345204087594877386100945397388037139063259549977360498407288265605625317176893594967162406493294540730821357697296550685672956164981333172110723202348124959736219900983716032242132157008591772306812204603075128531050693113290921783760570273449881697985527699941838666841711560452557503695788497359841292989070732281929084854579133294043143846980866382507629152137666171213074778755689055219230351239917010040745879346004635415789405748981336550879911177918325605814823721578547563250702711587574378094045274016018822893813890732138226669231250847772115862641804607358553615243883462712882691393955551119562980268335161875017982446334640803473565963349084325502781707201574438552626216440766519567281765638974259827940524507149819220935306250805355047554936787277187794561788377254004177644009973030568619655287628866058784409335724537457183453579022203893707367183443929017093369023662089380840007916080079384469629132709530616346795373758554219483032329961072637844157787435917337301331045031561203348712337060992288350908878183761659134286603070509147782573592658974592380331853932993087461098750871186203139754242079868757929603460771947226127125011480277828191828826094773428275345317273337659487969122656715615086763127349016174728981964033094622872652390390442998078331779648566368463846644224196570011160364803690042780708641681430643293498188653550463655346000914521388959750953533271907961217018239983132628409853006192814934286160621695884094658622074449965664202875992531521338991787067985381506228455126482735292616953886338611814995962844201714357044364761043843774015841574030378404046016293043860188012422298481385237970269253702798889561458473282577093845069697287682585548399553975783035967998000464962766364673659430560300098925322143690507140277168058499258375076826039829339977160827464987397715590364008372764851577412549429286464076250966503838931559052239587111766163091787048529120085299552808647898409371516794040963026638356391046094177896445115066225544498240218692587838534281640837920476896051514751449192620271159551152270957561596752315599273502976442949168901508662360687387344661849915745054020771746702089350203043887152232586552399638800532203317101744651936559326376386038386557801657042325780468002555264570811026403495827351279266955381904340618691947473532549920506869876499211149281066661734734743925591707961732116927019503561732543138189809246866786120731142483439115812800268291165302733527539983741992295945002744382309885276495018284550026180928765928544749219676192500630811953884116659303040661559769692790316470562018556914125225882325137995959460290479742825849071614600842762962641732597638896953823671758245543372645162136225820749056207013990190293580562974846420655949572610582699290237759158599860884170165593406636390713628102449085424714793735913711712072132319709609044046305377467766649286086492926705219973283874686291613309684252218340314896156848089900332217051723457370673140304476077134374308909097949342884668675176582796323180113925186392245334673279292453962479164016528333045488799552071935235686219841199126705997362807652912506843427247275313814819511953306095615565220821768601185196315360363106632522874294519940694450695948616027017210843507010596014006795319829003595089801395095267847594803512867089249945250725143109193832173753298014255705455099430335094101106651156339929582368709755752320038774151850065524087719163745205967542400906515105727715431613821752557361182078916955964682502240522207074119359838558307797141676816990916353255781692784966302166213334083623051336480862821068076763152552792948849244136285877258991831334325348397612202508204720509419812905603863113365554791348196434981910815891950431040595424494062980762003563765431075224278697622359528060420359701107559633213249757910720562646123607552319919533455179706314242402777545798684701217171270940148039324348832092226387215505707509722566932002312062889892200749655537519618227888202054279910624047560839519924566624714999505061357887016066339774878472940054440314497179999763949688654590137045154849077979604073777399453341966392388618411362568218987950221725610693308697838070772923445475959891951750562219836159887013487625357410842408435746749428976452765233238283876224442291524875845634026885209364065296661176078379848454119072439207306347547367410594701565406535378286925958849832754689231804193862907171581546097316948352051631013339051708273978081113659978600743749976569279400701288353330206976693838896435429033766065758113877370336799047997510161056997189312274153817162251817272529636649272873669620139520103920362004092482961039835892340584672973289000390988890347974299401258069790655906354373390626840826400075302337046229348308504850180558937126336902510264497692256041585492947860046573687266357495666122194014871555804942708158455336527675908863049372113944165831464329966878034834562898134997739088359186660343590777226636092193701239986052107295015061162881285746168705136533617376046384231225038681419565407137718749549696787947701373261787783712978694620508000726738268464249594440785127001924882480426572672601809982691429939269861438905544545543136976084758623475116812720550374429978911525524951719270140940822929719408643556091145845688760866765989693497065603363254952038902491964061776940576879309417459271624502162633868672940793099312367555875244210489875624611040815969023380276298902242179014713587518045032657141805658606176859395820636828443912785391647257711145977423984780133666697213079787137061548376383855265520412597905862634856299147523843109567997267161564245090428751583127018729497263011009356121030200403203163220870016382652402315230989133111712519467153801199005834618732098313924684485601996370136913800352099756189769343658491188315752584698834406308209576988828091562004942355830839648603537185741430435194215033823255925695052589534127363913641284468891704013145000224879724375701945355959990636844227271971352207721553338501251179081318749139340301541848804477163728867408509311600608646741254318147515855848819745399343141777306648528791832872728854546029567612287425802925459820820454274795596080945201211881335700951994389155454051339116665545386793600322839417947145240321117377663432558867908446502391219258996268263436235647328677581378536045795408844182781293178751242338279120371721952205041572611033276253082144788270001628468604747929595505718349476905484780229682927431327927719526156820172097192737593662667963408764790194035819402493176440429841010487237153642827375878276664610665773069382188898897457825348340911346628747945408584371320273819174558097321891683309601226574687448626436770758360719045553089078636838882723405145804201872751647083685617318071090978197394415351007440825912742203665124554077316941992294608479905867620432607559411709487921584347632185343492271359982992968092794512496117499349119860536458539588058953397227218598941917631966991222465898734677485828857795579191398075402933166031569357879246657868725026125756948524044469415622805737784180125944638291058451174485347762492345329261947746345061296190666475255866348700499375133573605539105830691651782140706273985641031187794461488274951568275407350588603480292266191577260750116643765510537288647090917921057416651314815717169101256738310127083686428922954045676066444024291841634817274290575827411290007516362656642069986980201971043991901202576675273995406995915250094114798199247762394724610896929859563195899782235785590920043639661086490182137442949331789136075121444106549554345287080936241978806791253292617591413350528718435381117062263556775166221923739809069218257699697303936739457042610318039532522571893575536464393816190072514171799400060883977477834201597556298992658936759340467036028300126599415891470149795352414166177674611418816994014173180893970471924364309128218137136817832271965296555821991012355311086276382242822267045461794947119608631027173257977119045367314264356929457619701490904695361978900702737407373092271686709211330573516704953102751026223783734656782408843055267880417263987352979599217804861510249570896680951856626996564456066549248827473478399103179910257914894397581720472056149378334849347158785481471405477914697860295166689525016862683425311322795740994628756385586951372758994837328802102352084221030726684196658735804818556496402085274051033936204598642537624879964091776885086214384922517197584799224604080137158963561976162694357429032114957882022795963071454905863971000170342532194381206128180588167891239073701117695108564014734617301804412302497531959047713463916358243032738288404779566018304642978236640634315291425160785171418017339969800576296520415026053784008668172020019287582781423405694071651268516366363898008987471696203328285952219206549189910558994569605705142526269830445081644631366131278077736384424813810175661156695411356529180617262480212440295018466651228217877420806331960756130196335416186848553603891527245376880643915615325033607341880722945227311538656569786063516553920943143144533240567810933871694965475226571624604391078833598213490863556794477227490466358559083016067439545014306717285554712104311708818686269325608034234381928167632062869314089439410254220586493331496772897280868806014572130899142907584801911786959288159665540585031419235943482124501531508731541708217209818521061969960128829657733124389189613013247677758915260257268114103065082369756824606038501918786083564256091453110314119780300702215986658463934308767672461833558419338199511840309274248389063105054847556704756965105827683616734514819973181659736087933101304095434092641774244293490866689082120298563611310987698662130902480736727654813672302857542402423876644870259530960462239938549948102237714661839214254123849541998469128740097184557142375125722842303401479182413822419226688505882500337543384988543519011888457173312376858137299710223596435119350950831535161069468004506036550876793509893773675683259982468572173177634183695376814399840589414473592712197002202888265195371991591654345535030560077045303254768986745402573652494579374851411939358086452729965822258670186850290383897381946602743653689304016256830386351468231938132913257875291048619862554062979574208640810429677923843579680514908171783275889265795151437664105690156588315908736333465605559592003000368522504576861020691548124748188508597100935731324479767058466560734810975332140898778019988301994846283506503869984636185305725964315332303008811284772151897392853145248422943470821947416337948213351954568819076812894289516492759603762912046801609290769146299373891601207692434119960751800203291347765174825730993834055801712382491256803400676442848013710876545467872333414769441443634018807350208212319602509578136729542630614895206965212256691719541948225897930409929876745322851712530610681377981032144181186515921971161432305790610295007329288403194323704368346447358755731821554740152392770973435697701773184351092277119614515787688368022137629217134984058211693657083170736017550826428873120657704620148440286181212833794776591025660736966933143536012125724603456152309516922822716160238009771556368663658719349742447690588828246250579858853686456338325923014576265167715908537615086735828571972399824865143177511771986388531389262633980154521842682172544270055545450610982471260241317972302739668099900132542351393883752526020043262539786089013861400186354369583580800341017648334746554817587832228519751649346088771630240971291006156581491382720433649082579404632041111778235480732945217140025881166064406265247604560173139345190862643973118186594393681144506353821386002405118065362927866184872604635698387134074720743104897398495449017076773240912511356986660157985002431793788478781825836615629222421500938587886252959258011107473795452770500633745075752264266427200182079599443923676481686345370362854689320696445618181342530102605599194252414972581481736320215565507723568666318011778145470835258571193675662635550998257198831061197985904838700745549182631268514250392346676230981516200586744078393536932477113876657258947461417042099485667658683218408878320100087823984001657900737581393910002620123223854852288124174656807186580495106941216076063755339954573800696053472644770348938509874764648747717047059078877351528065778781178501924670076129519141862195013615197565998936906329040682061956991518809966525312030495568658959868255798262619776317095406404302878273752528039296156936525531813586276435874692316751710918581703368859146931829484617034391355545442054103943613911991986965790331251895248089450031876403493166652396737760421932017113540320778941263507411218935645528947334319316519894699776012979814902592159579636739714214907682105471018825513978033522548629354237094393958658698447906172530290174225638493466761839151965453101749067262004021190812272821269996870292177399092350481977595416420927749586878981577875008556436642729160490900019971105587443143462594695558897610673891935521264305850517721742432342933209667379880413060842368607651957201732864293633800712114851369955841278750261665882304958271344405198098573914678557647098445473120232864065235941341715329046765186259347724993769026672136815721621421978195022702880103772550602161758655958736774280350591508621704514407668162346217194332200619613675952949845366706411879350770787982881839533809252791979310286253327645275048195527015230776946604307997693748167075986993738594291211399893175508249030565648385196850726098583286931081483772214133791882410963828984510790829388212097293651031769050948096186106442253578652186364829452925323176192354489951696758021269598171493990678156426253293971043211363380807295879655069295039653108539301937566316949684885212520853141718628336172515967102054399358007731036973399796226867924644773282692886986876017591956704408623353580592144036347750139364324785663464993607141458358828322970485401748896688502339669329653039380746735526034374956217626345323717468890335090901338241708837312996332630730073960032203738851145468386282398489394884478656822418434336586454605383331827121269451292774815207838672039336087613175820524236926443959164406920979884172511880551066044852166035700429544139801593324328803533042178584597262629277578923012046549092879083115007747962838837447988225592768210821371538356728182937383751895152594260641858359930549438332891856555316201182874231951648741572508958814348379223009859517885081562558305766454830728140407573471460800545446605040501900492454231894778084394718407314324850988202296013309723215085058408537008205616673070877901633132772077542311906754828541995101551343731691035138068651283704010953329162983309457685597372695114124296917016212052491948141695975092929090584967701226122197880364177874923427736468515940326970363750324921434739755488948328734257699174347979436359721486315788384019484349963415121275253906762390225236843287949474109518528242945755067630504080555932748359163327510221458111217640703823068970874569010974851961786391060523555789842971551628920513976937414508426255080426641469408904110284286188182439948836882744666460846332910532143277338652398763721585838006490312495150713086746613734990678718206019089980693703775281353673407132228364472605571090546562674442511118469642669685159852911296097922674610039384549337718071166510916476599769364232986736339035321194339826028375479796521304069130595869788366621331313096893994615246755307511984220228348543772928671051257855952253568864122459822000466390181753261323138138228675073081699502001679052733833813647066266059282748817195926588109497685537669639029675788566602276212063823602897870923531690825825732802704213951409307191345817717996530831404589482927428972310350670280056368058526382588968607739864728879704968694117094907710769905072044774893713363183894391383637435439446985746855547030619690108271609197027003004567446255858492157728003201875051531832804113291159066624532488087995281321296301815080940385621390201289450855506319695950889335169366126594268873931978550857545401297949063932370399934304265570286594466707526321403470253225867933478691018848304651650828597945397851105563235246504769295651513898089035391543223425760753890641340672668249920222381235231220076839470837420312991605836509669875415361839703989970420812370057516060067405372203063638706555310562282471205021883881789386569870577771508003665207979929441058014217085959375972318193343820793260301814319566011515981003828226179552111730782839835769620866208654247175556498319469260584298457101020682805227299850765121383011452401491008853535808419823055485394244178237974551060138891794609716092141150191804258616955015783756413250523451440965455321533943821910586870610755306693448349230441223021925167745722147644470233017631269248926618928314005007244494162483701593531028338784888054413558475679038778067238702206473161210861474703314342818256793419189877070519816854398868221041944869957795897002836236504320224061572715095311776060054613709881946134319403389778394855153707298365968883084910793446951596044109380197879690843276134756602116780534657293737918164881628321507428205181417137959004051867163575449756130567136955121118833340753371382236093870407878667302345630958326603019949239656432460459102856153906943680804579509431197773184883026523376595651535596582552297594745734585257036082273507524456821560507763228450170455075196921973503761180757302834492950784448958494676041239733086629204091959337420433244185240801921811391013821644986918316617338247042705315189363345185173972140907069680055115550399793848133231617482047893472740599428119858363071778283061848731813070443284353985221254488290683895784767758011443469478702773499830226326539544796944581015625510027255050224907763612461415251635342372004144506028497929370437173348828179945661330863152714599990192545027961387742760566838825343820397620787722982395451392690825342453446464900028948695113727138019240880784939259657300004610885410841568257118284654697137851043961355659029858948173950270742062557392572529911991835035162545707291580169457493009718382430949179320192033038885634574933369348216148088560193018912233454049770133927099041129216307851581676561570403065943684876707200783719876157045330490870577580157242860982995386976724696576650298310751490833997911868204257329712874364208227797471707624669057449024880904310533960774884235064699980860738731751320679276896137171697560214396950258565511148836331478787172244122840079558308364714582271196305721309339126775187733820235300839638700188577134936478848996980131953372467997095820430846342757591426073251309863422439263076946062811417511049250012676345706873547296712015520089797828826020084507033584014574615103642546433783332025437968204643668097834608484604008425710688454763127496549974479380721531331675959684534467801132166280463318119951768181317069058805098978832041588632680532237726258189445708112167951363266476195717294607540729143452833510399378755319839965586810773416969573153789828766125896495090932580811593387064234275168715790517630443636664038002994214804994894481174405308672613665047514845670471591935301781770103835375185884847033003817995865476960565407107577066853730348062055952710517336014994378712076973944771198314005225853910247501762943532647983023880212420355819050679203329563245707022249596489231007412183895614680697551007833627560550193216424142841302112889149639149666307918687028543438700538842410938338206789603535219586754849779433183634357543354689059294221241020632321497770725674150936099092681875475358518692917779808941426798483267805881902096580962165015851610303566646456156901647554861890525864181195828186300108785837005316714712607868822529644775408208185772684929913191891759109712086989505892110763665219511343913281717825272993162992610684334488248911692352825274344555299264240307830483439915802865349399099363190302338270572859126867703086474924957620984588195318462377124198752074361299193136447237530747282384252864775975937698840315497541767115332713071473826165874360043955997899284531048376552000530692920722196619244783112572208664844921134295013591340997655287701353034858449673226162472152452789940111549715105596399462371652363598659074382691008537091624007318051857025863860919915080758076740645362618116128842610319033960310351854146984026183300874207384853794164590251082598510917959130692031521068475419669475783215401835177713351999228500120828878461412236069591974125505178898307883480627370834899697963280529221126230659548887831478648168018070586301909280478747526997921892229802434595077904943968832264799667264741747182829836554460522978637720823590149104193572466340053686070580500388320360591027565926354211667262092118761745363627015122808864326244615620662302844491108797228251182855595318763215788476606260275156555060188607153787184919215968306409734794149410345903678900095608571375850090158072622905566553891330706077633011236442444208152082276286851286110932899512870973489050306103262186555335489234420983618246341843610615018646796133832525002581724246240544841071346891525565395880155465888454998979187821110759215836562625698383971096793911433669770308485702643336866211140919192722584521414681834346818752856821408627410688140397389812749911718888822865153683167366025459851984351784672464953752026355370938054168913817959634681995378553506791251986247553090742025689703332173448267694205847456862467702762705091822236504731714982102625339366744433152000359751467942217483949639323109797802137237040941193144862936975045637531372917532253554434799246776882171542794247822334093427298417661292437812157587887610071526799736961575942965229564519181212423665408173013820810919785028893851066123181596492964512824318026333411150921868545972155200714884375926535612804099672768598317398827029192950976064275048217878103176862055766221734928078595113546267826555015964300219146543987401851237795810993618312708384845916537107991196537766233026474936565775573903451920807052844227358087583968522524738204497243857837194549594973461597181577272619602280557877220633201315525263905969719380842763227538528607510033333812887911717838227617003930003967036324129952813893142619195831792182135090380657215708329540939486520807030851850641216260834973770125150769693833185897028374031079706888110842207123662216134228843357005496114601105475305414215809917570208661680256186715482524482187422523487907466054816137081855707625042192534079138799046038276421422918115982554251193641779353356192243400964070265271313690362312976709653995309570974249385305603074848559338695427355349767694385494333965988115398407355099507100676492398325560624442792170741653301054221788109384385356094158124788359079497271543745015098711802232062043666121865478112791187325115232217045366234475705865478647861888786886783017933251246545684258940912904269623709040037340454262139334719220727202975560168098839421933736942882181546464800868984956715267022948525455950152933271591778866207872040130313132137953993973332736957446355208230228970496533420207039691495017309170758546218026137753329713454151706662808837369753542569710083005424537891332396593968317116724242026414635040539320767780822811086911448756084215139435759631092333272344998107617968075061004460747122503714082048801059663838479274010771866017756824237045595904383648598952808162231278888387836732033265647520720389850761376071519177617563273911721895652275637973248230383812325867807860667773537123013733707441878397945433701760113524514000756621436251984428888364333034395176894773190445742847779725308939480913073043194069268078307008479728645131465867454286333640609722339211220035770639410184900147143518803142171976599209593735664165005133689793471844146689917154059281929443689562994451856353706303919919854025851215479561770694823720408982346063753912573696379748362841819821979242350313228444055093425595811484274676836360649307161530794036867907346851186028408376011210958376418397267165556787565149210219095316729813840937015660446635962641958037469208913050456844661758036413262897709746298246329038255849486824567836169517674779603000860832648252001278547689258294366413070749205476033643778080337846460262605569666211029160898383674602143997990461719591289267843909548945490015522293052952166520353373235585476501937639719196690552931993948141622107605831634800850971053319166504376091677395413925911935680746680261609131987948006092655323683170354559882395973401049304242485856418873363239432540354899967612379748448632683885244613845145728207134959926789835453790214345430291209848766259860406564962184356626297978931679086612436723408447376367739220887501393194405019739332885262088567660189081713431817947850474189706105871915032898593557923252739521872502550755535005459892731823134695266294895134499681762758265505619619908799528188297471115078903533355039923900404768142856813222235479453953562159948485257736344915562399759880829793331463254293759324842209685527980599666056098390302340889105730088769084179730301887635348225079539131415308505695221345654456758885583244856307628735831256139910084194020551943433673829997869449816577473989252691712013782666424899306508161185910282662971179122051174673324941846344616861285205180157777095607487245603429878965093822336622802259338084600593405456933406050742267501383075803649434150022665355218428790287722785405839879512044161647051960279549445840966587791110314684173041073830788631205805906390264755146210106484645563517589722625816460816207224746678271038602635038034118894458179330298134700563451662350148784789953409782479760423918793000112044958870821356479413331774691333367119775787867658736607379522201146252621955937073304404700741235636689916566920567929094722068228489956581614583725517727628272119609387183749761739707965848174678518759950965265056351529557106750417835719290961661794134718834884982066976492048304209097282204038295951335798637809155885219298801271234689375755273800460392982244791295997526140135549992967972152364425545356411225753372247908966658523645712807879146205003927225080721676312940693748066433253953198448304098809708602643841117794578458376595207307302247244411352170583392305261349272985502273884080286568469147638584086542911615242933773432998273611087159222457007562092294701726347040880522690541776529035156954003890770614345221547476281019008974124247167021186651573490633363221926644352999426007992662228435063273124878601397261827040585860718957404179333851550005579193789293753300672472795744991179629445728016465350023947058511160843227879398481198756644928335307139969225563938030827786819899237376420107081020537253596390837191792689475690238273741196050804900979715500610581369720631639627721373915017265429935957418139415708483187593421615066316106564166002668020048082913757107333717188214237083026903340109029048274401171806455577001827939963325802035657831929719543780601257538550819562124612987855618167672164091439777173644743517806788906415612425898633232003704243078960758058072069984992468877610949855440312672167826616790775368381156289633244869448383104320914077152050447116656040896519491935660058555613225588202944329933660162064423342898620857638432309241622804093917892458472143963491957414463045721044067517020127005183784947329012512823068937025123230850150512618282162719847925402818470903303670815900266099627790969800708973981581550225248667906206860131283069640200327134905935621328396122568602177688742631300171439474165386722086526141329029205363677999046070964056509661492502596561721767608663207955324343359313210086093366725152883807401644240325179926355694153253000440023734033246623652399345077835663160150305351153709349584410277319272543787935202833310888100892097587731051567244853922417103278693785632249736745268690600438354753595015937762150590278859883776267421077818448217640339970796654997282301361377094812485191224846781284540547304998993438632511520561495651114334161093551118695762416047110626624235103045395727325708880671644724520935028541922237510157850190349655796928955614558179855119478319579333143443946050315012567594981462068286442454961581729091512150006626900591722313167171469920909068296237417600906859443963585254386488992123559785217809096440685581232221174843900331317677675371163469444853901090566906717464386962863177013228630323977240627960486767720710034237915556872337586573174677345462998579995685572688446141427110470751208475148982310525593812891391130042802839761576020256571732299242158510889416716490779020383694137336578252381471403433264701438709870732138886410985713415704919658212105150281847884581572317189470968601879888991772779331439488625247818830644693804309125037542737726626310120244452355709186820992614970912667134962668707962990334151412902966026288765225714120551309773252621910729595340934213985994677432480635202332539733162176313932534515202768429910179071163962350041999027922170888764923729583876467421899836817446950185271902315743975967691082351000565660079366289515516540691140687947967149995654482320590501692106034674727951369625768783589081613138181936416227007744336050897574593154261045635172921046267738044141610935527977461025064626086550658742379779427642581588088867306582518750877700019695457322794231588933354886801485024341222014998289726694110103350628996641000022449244772221122354031458652960887690952853137002208607759047932011538531431974553994554427199316240261672110589701659058065592145137770992296864669495488764069858065884309208050582465049724145746882558510197878807664458267560003003080180780305235606880107163581802539648528239511676504586441508634432169067799137110571372394060882749080097884512661661833826473088802413121909412059811205566537995077178843318068051376949949541628068595096744894152058070081345084548335946572255260088189871346168322917344457643912280410867116427328039519754951346832117306283038440406644986401878019445489684201661783685983059391240657222810869406066113546567172271430468348574326885428254364428189128830032538034013920111505045399475465547287271889545089846930842674358135864177031988178843494656021252164148106014373652653504413724834699085955773180086549521532622851681340392123544174189145641727920250951888694287287640745621268773642504366633487112806265274323444131062642301704922180455127207063957062784864381931074346989740672804954552477335662150048698382077866214731631054471444563640903841229438167917373384009648235709590456511733581326202299816627614237407189296985579949567118860956852634203747569713898978297046101235953682884586428635980423287411809758099515986609027165699791097352263750590017437250222064189868116386934706582830946919897460662140805736047066999462638600019883257127552250324363383138777632894323500099839343705373548057940868845257947721655624175028326944453680722817621115375092495159075759987823263421038366665636963085210632825288689873449200186823116115216147158007487356783948280441932206341596454721958942938041782908511966230346564940896743568879262780740080213421783210964437799797943427631830196685036228691221383768501210290719256746817920096685011255013114111241809661433814071507036906902109831803350724594627773304782653755124325474302279367507416542985267175452442382402671203822929699532337006895978188178703859111471576079241773737573917807006562437711596250054234405602118399656739923938627586830663551683647247330193405603673180562669351943168315750751936820331792975506783905632223197828948760269128878797129315886545089023355031301641389013641179445831641782299672270592161857884259975628998597034621300482450814021107665040239594066228594297933260884600360197800400077181477585827805787873709851792765138539089287718128342964651557481487723429546251325577064414847232449075243002922465551113578488440967454945817767827204607832353649373641772982241538947967616106162433898968355406308791540207778909014418248949354540935263997393509371573159393666562392214353725999575018428055851421112532906381370939335040199483457112290902806573571361078667579020476173102275556648267766387532516130045971620050100850259751616654315020916718858274263976159722392098553871173055590571140865797614273621220114657259568267682968225308880425414419342431816260646229393002922200781129562175706258186639210034712622574154124699868316146723617195128866294502718499672950062615771962344704672361140272424779934638856433626373518447231685365313179374766167491263900870246041159176586015731862855873135577116496351242280489031964750241250956376469236458553316377693818236671330753827599692107823569232832227750081132864284606137203777759238317296291677899212257301936320867258702514914981402794695624385787341613375551449103309966165948165907059668498717711334101312498115185937821041075892526504182663273449068660405144516471870297575911227216435858791071159854677095464927741150307417860341482879597380639993941046280749028035307267000777900235444692593701669646769707321052725455457373808438478393323926944348148542897824541732756485664652945931561249279919226076496034249734809238463654325460042565828186449353809104288655618434425589792157973214283887365479814491462091877240556621927158908986897592517630174528723220982517393294026280801395440762268382210227782112901128016788628981425193954314597886989862403268468271114729768375555769770734081602009557914017053877633126109430724575362714203285558308099118576491471740933200068360876249386600324552759472180749379658672429915999737696543449057296562382261694209220864438939196396478474745911138782164424787973782138574071498013567538448116409327493560178344000419152189054500912690881956446853856864647848480039049561015469243744956734400801709041629229466187647207467803197094583262402210159939268841033494517257687494708393599996049291304520586647531100006836661631537900979442187871709039186626852473646516428562379228060532754224368469371230692213214468428205343061700999443221245196243547195835091204792906330340357237258773959697855979341195817164509057838273241124204229001515282460801093621187170148263906751443139303315023958085326932114422103897076971208367633151054220125557711195999229962953282526915171212386475505632897106942758020660155243680346549669955236634762230181584920420963407801713651222389794217951305277560425628566382932568394592728656459987713602366192532318391521996333497319094545550461506498180109033220015453497540177423814441609266369356193331401961853828737904295444482976887559733288520676569757929553204806816635016013508097697099407484913847344486540447393943138804622228174663036831391015522258225488047575854844728722351669745309101662362178131747269941663784724895058815320558574412718242633563111197252338284992662722645318032932395843153042767031900060952087058391758662138737241539574255642273333231103109250776804737209378047875265379262746233582199187821437763128825199507200958554662821596666420044637572727354393667956246772856566263022057114388509204756863104282122142683357697612404277848074022942277125448293269188584086908913400007139398317388483437046086493761334330146941656982785149177640209866775081308052213430500454325064297429190855248725811018407046159207869404244153789694087768404542751278796905642178467761594124253327883073052504460564193467368003095020408063124235276580717811985995085773408419010236324220089956195913203906370632731481520047171577234671665191391393173392898394670110989271309184793584376804130563904366508390168963742777519771646579585460715491473623801740954530861242052838204936647339193036641917860783680862168165906315182065620540417364561932828152036571559090081747881056023165726237539113566884671561168871610520768489848807068428883699671801403685330323233240031758144026876037345422170850443636953147173593814321359227187023880663914132527582889533077716410009182217772769824031902217161035383516433326499321564044311611487277620216246089035440117914459869833735183960408361032252472387563698220945205011926709019897932752805661875138131762209963770209047014961543696896058255754387404941596074907440738046219610649180807728220835704305562398149757555180381118459063469935156848425928936432664444066585336019456222238583422099784082835941330829118336973056465179059532140760052634314609873095758105333392970705783112922743710723038892940177829743031525978761373971272143175581761317365154806888288594709134902936882411519177460023684610200510593109350259209180267231715082029047103390323144366987673762709172326297368797115796289680899475679198204392788756493238805988437131952151495877217667478551498071785364842498626231823894249475938599383838466462268773925057043863564851909432125705236227136444913717703385437934936096481504228725561187238355233931624596777562908557579397249868581211893710539626836702726033801586581159212109746388255292880730367837290481653180352244667592213776203648511144228441794852428435248902141759322176491645785816885581720293323421470746752804782934614094230398654076083037901038467976147532558371111908266775263769923243337849498080695695756345140149467964498135698057476112500575535855106421233394631702890099469261975849765701586192311007467245292959306886572337036939632509797606113464686232893463762234635473310427368710297151403406619074121777801238894431279117317430947245956820603100389675837945741895203210814048496124276722642504775910929880728235547601952803886282085987331945179932229604144460208639059521506786325886443714242319732823258975425452427549080553043428388341878722241143017252399313021903105996200391079871410897459334821964043250373438526332762829230497174587091257552678929469781700564103698566662486874358049536943757334405044063914378398189820871789875111953181453058517245215485514198761711103697428119040022795945371308272075831855782100049471248907218201182733104137280679366953419576002781549216337700575568507777359819563198869444597909935372460112852772904010511604087426302213334819564227679969203497336843381142649864640002991550646035414222898391668588954800177777006774029399430191152463333137829125992743152035302397133351706136443768402447371637274989944329435898696528133359320137478588656675396115697611194578038944804572135580998568316139000090258632329285925775892587462960016855899979438381322179781950421727821481290810337204865225778726649441246621486852478411736896288884558319220683895041781159717061681079525807357094024674116599570277896226342755198686278029319425498148012856092015293342467800805475403012360028770231777526381841753738736478540164693402503583759866540856376232513661542086059671323594143895655951411233447765582806682412290809691697703783965723192725938084115417712311010818409716763746170973667279600018416211134780516747966586519519663683628404132453271304021257071043722818420955839535835928529493337856731817853010978227201239153479885085756444068839734154163771442208081947905934950791662890699864992465467789069187957953692073933136461822731871879488075556225960786009104174301363491184648840697960279826699711463198284218275689485902487627139011697988570350340648813607090754051038665936447886693942354397919679606676768498357435125567376565173328358223669701303858061755827427383984817185499605086538001316780766334619322540889935110110063117829110270886474807457264752481308591533940100555430182816653616224036872369164313353057052772771748640646301452574159271587230446679302617016137836747785823258824976142794670290202217643948430760631760024902419918615175059487412935067616089030700131033784423280813438897311021850096817812884352536152729246189659925768990302024428655874499018983941408242785335437862746835351115354318269984521402918463952507866288325512079898372644682019926525982405865687890973215792301716352828864031900738137832369690256949149976226616657405376895423368044904274379063673859049087311945635852690800627349803554340425851082464119724559822176824407393406829187008074131964720998130473484579263637154595163535571219706798514014076288458982815947379954844649944897901215530232872598586300347030325624434222011838199785915295623574034766127133558301815242037283446479333919749678410265239404664840231096905321154703895309192843237057232952811927163226016533617835847006191054885036598242189275120277207541615378205599763233401560614843829911269695318261090631647089805692251418575128658847574871206275565900241610877395360165573533480312646612221383349054779141821475239300322129138796845086364738340806258133668956688515902547762220866194925155762967643042793725802912806059849815787304541453231068346040177505250480309256299776477704727027631606689545016789205235900936164007459073423040150799637860564535035778157958376514787208388128123678178644780825295017429191384862524614952700746473075726583400116878943727032383329368601409800269712741719221048796249289001781748876783940140697711709491081048372506562169165627374346145169538074626276905555475348492970586571357190018020472829055088552549531542578850316346397521596445375152964458853593749464168577685707713960903426291312212538834893679740854642512643324004675250065219643034563543659828527975870793524610840824876784975297022354968473494150129438157175255314738124854985807616851496044705683781930457331431530869063563330361348109189202628733242022709129160974468043664348851274058878710876419437034662976817730112288667059237230317359849221617454278194489704904365802723237479914968879119356787695323332857036003407196218063339040096471336676337175895233476646365100326431751108697102240171572680664039153666739968407306827780482965473472255666306931936778588912549058722771958116350572062829717150471222380425627172032264913197572641491546536324866222153212219813114490035466210437792116184304224200506250746579460887412879810636653018241667683859066181167468221563861788953829761992835672252212168450243901010609476169477805890550819131313204645992177386783140498014459177014222401495996009362963826438424413030927514136886582896395625619866098317586456002519538472344360609435475662203997184906512448115822874199731179844301868645231297858650845942431340873171320392088712185534085999517728269022787271600785425019115886907599606524268555529358758873284303798740318975414044368242568536892257902895889848956810466289866031920359888754307885341028224797517309726219561971543654812300980220403799539428076623036925280893099939131768782161567775496884761581740942397216573379798433041009590879744483781634624479839198259154200465267889454644898660655496761212741371030229392026743802959159651152098581481914505460672159503889178906716007808376707367777102822637750835730039203212903768048230234996611977718754135008809430142397710047965779065807798726951523296709990779560318946481534193453657770054259272360582515054367043023486023689115173750757467170897056708719030714053125053590658691226206248793032978874955757629174835041826871882083519961912720324480392822185061992413080658089184943866223770044941129123497640031111924738124599600905540872565252267723375025289649641369790004959894976674454051613260305974286857354867719223783560188598476967577589970691258676382659283050321240388911310596550720282264573503686184336366698746591793020752544834378630734388339559138689417150676570699624544840760779827688289331072153340184939749986799229747788736398533313410288569198642269906072365304211389970509288866391641166287667252306910890185601735506670090685190268750876810745599030324413037449459573532215554979980439939630797344239110205626105869315418861995975179834564844949329547273173475874634237356484333289495992525310702443086865010710273515709950727510369558232289565520548131175817733267398385151496157890170155696798743534920565973040593481457962560436255829403888936621845852663694747925970806306291284386272644177705769214049908615655365969456964339957245068093678908053304835330468821508024132436939514989282134202734962240059785555621198084269620294597687614045705698716142491222727938312347533580175857313403666405525493947224215168584011606094020383320224859061455199682553326097906304386198837981539321339162474667029073053573879757153797153864749827493751769400786655675079822833594563491025420031752269895039078853694566653017816972886551124013653293553022464458555707265056928450294382918000127377738816793931037510608669850262307251935710478900882811460017487258776837160663152609556035748088479338840865919639844345009712437281090562413537567299870977425091829018901084592171720889519926250726661162733199455056169145763937119871042344967137578068720314305587589697368939816597578812129257183585994905243962326104416675147624934662960599944116392053176171860917824641859575761852602606428535258436656697912162923956885557974746248182769494878700940978587593280368489006713714200982291923167055749479307488062167017657810530276340419720009534049710363010716882161044829017310692360123285819242572218929156368313918737166631372151101533827752284918740608797822454108023538708715710193299244589549877270843758544223327614852457165058151816737565978671255766936426664485927144181190029295115071322116700183980292448921475943736092853935373262837454975305079187107625249302676806974548665449864694463819213766283901949984660466014758910263744935813950498641818280606621506644693617366414973157445720188043334798812602744411436155181021067306297342734535196370125856245942830033227477218520056189536843177502793125934526234656111637783011205152964247761978048418750590805666954357586934899805189736683220806828675827362157870361896920332500401493547514331804729735000033326887025535600586983468028865946895479764203001114607123171339796378375805219256333178104943532354222855639911372093867794378125093577978909472327625753543325579937850121965819248653953161206544717074445791830667286831451957859456755737721443858485539261317010042106687594977676120542890201183416092210628175504759184088515806853595318499883946619900997606534952175523514114545679078402186592922070684288237291497180680461842817400466777076191473248673843733056683645966979702837859268580596747034850843688513046243839187913748813354025146373906391316124126667959755143884441625095441855064388056946976595830407301446274858927020327605299664369790141972629311572009150516986070399772141173648243939489103438958808527371666303504166891573968071807731730382538992591808563962222729318816026269348049317730276302586546104671010800807746528133243889134179722174361823871789212520136586426039724549476880873373576001283313627083534540793602628123073530154768873686988052183890164817102814294496932001129993978058442057027290497529079119460129761532460333716480003418002132192406653290676626315951100015640262692342534430764910888857614044832782083405272077896346332729098222062066831243413246082840185228779132279966906078210271216310973523911192231401504113931100616216401386842633775805130315636696341083965424741323691051600002938701388487206784911324641970970890234231120321906654722650842050005966777952258476559062836487784487115432918374913372889819495178226632155535864107627376689397176444382634639223415800956103196791751267109909840301843158733414430905538686370362712750292421188084244941732340333263124260245291102273453777575114896878588149582026215147855447198704767581888786300976485169853919704156180468954645569285577285865910604663607291003258493087551161763995796504354197949386929379211824766072799637952132114452081761272846429319356757680655796249325780912925037105831861794208142257019470174279766564185582543846674466107958502922779840290563012465754366059485340362900847168775937567248481294121350203263336059412928994395527446065352075834825765918783514685918258489887633453840621153145067470166771289561089303377061381447078596230065660918321195408335749949315550358054299306033029448371754223495126420548238657375307915035764010566635963925582034647683414359524773446528563088190593381323093961299093893448548079422155173785575836551643795995352934171196642756872452338157017222464605973068684824956751817249877617342185679107943439757320305277413699267166416429330379607050048841185718518306553975464261960749341381086564059863408070107211905421251789164958350395022937914259211685960106923408230240031773802639694241566942333543980298683116447761527111898732521741747934140387971122050782216142748868988775166722764225221927786174955189907268221771755093663908114268795168660848326253337302412049613917181792755777107059247948515850209890903085091452105620399133905127132921421219133276335264568329929998684214405994954542881313918571251655615219005928199629286903119725151483803709125984048156333711041165220546015416507785736997368836164550051013363932432183563026392038331803933716459391424587206476773353807456216638260795997298934140863024816972637789440021154370188687853414879286103554775627553960019361706066429699282677471520648054482504552336668615233194328009445372241809883669119418198600419016409310117121032312660833428381808555992651885536007550917135009175392358342619389833575551718180248639823990699341616290948763758344635212843454190930045021669898879128683257839799595238259568905014524903415127103755929092544021826310814789001078196539012541510730583457227641500357186120962997665072764869475250404222205117841778552991142091699001233895194262846685468776883698955266927110911045635335382587421674665800033841350847180114429267180278570624466243168562438260022570967148640696937746602369465215590002383994462061709861933667119926115490385445896916556821324142752192206057956595441478662171785207469223579644315256258823167946255521734969521066467829665282459250689156475911120912950630348640282112602002248733902254201737205401943728719318925002163827841536783659680455653558195356006100181709520064396579910072587431782123187363834147633967834643678569204571066142571745238162158619759660431596769353524180161070596129816819666528880430861086112906402573241984688293567038677740061313945078402320868930425063794985998386348082480424907470322567167255367108510367114064890140904473321736188454693825541319875074154324805228184470264035753281911906007420284675908155979101415763261522175997073791001123874190562364976242045787037334174956446882342375351641969701531954596958773249840117684180757243292341250408673817937349649637943440263054366551296084015017630154387721349656471729314945153265986582490001146844628758135999174723702078631340837671773496923820826646388794630065311066176285457206285093346563822107339732822858470255531069825637395568580060454382020299620765778670420092374681282127833047170017237936679554579362342573522965243712337618486705160226968007168194787775537204794460817099761312174480443653987995642720197723352721428150317572074484863059417940277055184314393642347722057096312772129720682734405990038297464413546096261570629017314766971832074235295839866751823968560157886282835143323791995549553875053124142611271649359085984269169405434019068418241163884333433039640395882947178818487148036106822703959668220685208670697757288593498137259186331152030079915168703330728725543292905996179618045775760557764135293438801787451677525130907787979524617956237741017595717238155730504088790061684424115590604984057021466778822039774958534527573168766342593199168505696297738033129438089154651825848963918292534178600569056138415141184999536080824739866625081272345518732561313773185309281654677243796088979034697785260366196414830589273704537317971906519408370560237669678311936538417064312912435983084398103731578731332786728336029102254533479409196156552418635812396840452053863358193638291664017729613336815293318689171036519070284954756211727988299788196242501474073367696491539715525256625513968891826348664372959399814775482454650969596072950758032875490177942327079749167241523180260243883334958548200259422021733011594278837301803324452375846999511464986189146928242050665705971386470637311410630213981348906028492663233826899447772300612448794788061435526127299678722693674066351747475497704349704625963837826501924880420229804444541033398066184132506545891529082058935821519897021456018087629466973693349489457923349605467453317929196127148151113433616739070170368372620420347742619841138171508552003537147519839659534291846697963658203162034682297402735877993832558092546429610844868777797897151739155300113920174502012950125940146493078596105719733399407929379744460409991978526291337004370544389043837394914362957501703342976853279939111354881463750722323713403813370754781674036973095946515419649409211208989248962337641538983868717969776824487810254706602855787937466988227038802841615986797873588813295113704609724283365168251910101326986778853150764021383737500757452346278458492167032549488589021957182262247192300309824934212418871254570604288798029059019173185570536464993319231693360169328391497928943284549492783597797342592054140843824512775243666293560568729660857504206700802775494458886923826134131047093149035873991259125528822274140532833302016253352879902107517529989470438791453327481791227300026665138772458699788834438798325675338018602831120348581990632487438001230418736050885648628470950029161133012802191750509012708380354120813917707544231284805990688738401778086120702317334998981710312878887777087441268504433932963562141495332204972267394680322200016689080970756922216543914066323362489948476034051258307562527762946019742773418877643091356458732287194590233936346199198800296202182333573080124120958215828819167304656002422080987052356214674547601103569647321679833044905804186195332756366987974556934612500691499162381358582626792811315443642916417135169731431896087735513846399066839499585188567538556886430301949934344538899675748821792835756107464498204609800131036268407583664860408802019235412397256424448180245312135362598924684822012415892589766572614522754385144084537656615900964265189894018780099058252332864706151392420052435350616397190037221657702857269002571266585872651535444888836222780774757083710843103824355112121963468094041243182270291487398792892274845521193842928212081476273696702721614096531597752620362147892319305928835882331014776799720594243897847784041386228410055042099612099307130252318278112443525041306688429066748242499152318691978929693645437826979915223569375371474871521697180986897939876665717649455396858293458065280190658399803974571485263960881448911710005079163918588467884796467007725425548718146868116432001366564930471951483135820056794301663186935454271714983190428537858370687232569944879108626312925149956766159773008760134877814373255111902758120586735994750284088117311925912883725855052596581922949160151740492391943852570989889996380686796160180514884296045885882286369832467809641668513843432520455541351022754490345415104458596015595049868136052528949503546897881690368708789041776221527884040587115666184535345905072396623944841345982642493216935651933436294571694943173635402832480757893267697512510778287150969631894037826293009578705929666129844345683602271199183521444387522147126772800183544760563181722934707544915302125909059000936250789154066970688159447088991134968623048428301318496961115703415889865052707862702174936613783591625973869248725954746862378468728554584611918528186322021778332215351758986030409628031095843504012064434326125650075337455378905706385735867432682232776261296195514684158276318567006487806842666455488940367722705620547319351344637622198167898075242984233438389290682506752682784647928565636496403594420069451501170294097093328165176154948310668457856334644427874610360319278013998811923982817843096249534601376966948703369129821426727989825767459890431389075859283507725422651548263060329659171431510423970982280738188018275759265949681573885742000096838176928794205204790797206526624979322814649047648012701864819089951702773662776244737258415373472573565556356593986846609842617974532119590740063583855767929092173703729018986847575096141037181720868777542974166760045112702061942040374946630019987448541514831521911483594144440092602007703055607572034988445806191915053635697649700216586725319649534508982456766226450538939074907627618476414387937468580579631220401238119493088166307845977310971802020590903540273324937131399450081783491888391805314785335904602159597228115287157542141987214604873204420319111714019389546058776138315669034354733031574390086570508393192738390189109883906671142437116675702644737392738841863978741528809030561742987408513106627353592893386173563085379470626075445399557481738183237793719338404256703126993830500211177622090544894525420105349056752028857129834199294646046908539138352814497411146047477558641156203332390530705358807026935326070501944508880926829510077698661308521266373151018779867271712597599302951536871800876925040871746719488431876758180614903147848462250813855894494662823365517432176064086534899526951591215191059753499652440360874207786994516281768798355669488988919194988263137940576611175407321973592600884118800082983939021913660093058432688190775451032194030902536255748291067963724038021553936566582589868476690596293176848551640327453192880488510483569301350807503772417460779485613233333496389932732813081426439369510160089882513237942232141668394267735971498922686156329646253314078445115348403836086513984290878770321192218741111555511900015927859408408652020742732340021812300790918825939018336529389953749515272484906027235181636465002384169841846160460581480335597473803751168222132769936847640292662695320172213566233913712755489474145987902514144850502043255757674102289923191363240722877121219816045445114151215494656757540798006435388286579680061671794601036439436541581404844341196452249443134557888490611852791253210485736293197192757579685351914996605497353089819303030578682974343927271622503939266022057027583261147021159381515974217643171263906899551141268809225329477126739152938001722691341723267094692866892521851759836979135211101247761102023389638153147020553022043982079289013748823863058050440544347110728637440138019647894541213709838896173261012169841284033608610090937032267838334553992068647582752847890544337236135893405553308315331254175824351339918827784912714793621418656917662358993532989470093703623184576254569518246435170126852242343540158326616859345923027324312453239935601317493900588109165381684874518525903286029615995341963037579438754599404841614934327311381111034549935605287161057530544065128072639850441331586662806501985992691425104445359183649792623430571888363768810655970207281248991009208810128334418013427639089147054332345868649791054743125535091326612742391383850774961103935254168285486305302561561989755506692760920102836503304302748817931643182405564749068454296055423470926706468138329147966820365056140593028561173771725613255781994138846647408386390342914074613409649961220700576734340531725322244763074203649395862352747836994985251202211371791117960812366573147204117658738131247329417861800234224216750376357959613121487753384755208342558183838947475030261901897689312976333332686672477875680843908153932592417045018572941256809264770825079239880847980355826555237115007297975740355373526619773464161058996978573563304588220747439626168345927903410924829234834523910345284982103659890147041862681126429818621884876533403158610881352670805266792789835125712336260506808348324594542800686633616779878865887184614821962282519534231775414512556632757244585696215930255352746790280321963907193169362322701011961921059898043268454433986348219559886631597343790621946454855825669844902214494551149915243744016628319637598517571188079609631783105498871736801932136016115930383884038141553020892415482349175039973084224811403280387893068405107441968174090146872626632446827419887521635979243326445738359319120788083500610594506061628815111480442423006409689882849864539945875603944474806018236893547182727805456153114385247889499400367262227049652329249334173019999016526570614790802506062164624502285289875217926253255468136588092664910691830903019100851171642063146506786516111022376139521817101865964167540329019423093130636718079933257598663016641136310662222260362951286320540148347815666289625364103820625642396348625099638976048125274925113737766394581578342727519943338432502729264404810148949537413615836694478460076747160586708675078081562495262369050935861994640708278915544363103238947040695093058490615689906950057525072636924147772190451480517754693168164013602579813505465730322686772389041867482858389475938669002470059160739962400323655385697977481463482933341358316755433772183599914513773711264007751421786622102398984945477217930057631165661357728630256861656004204761414891396652251092513171666827239640291590370609106437776280043514363853198765311854815201751403406771892882308788854122844447187818967152020083844429402747382084982581336520926671070493853911848498466584888552412268730904533259401545136739084625670565840182070036093738014487446181417583026071919894117275744307258100226627774276518444889635973323746923053726760495548845856157445914888054945359508618428267328882545612637245621224399804232116017372625299642122601523035914949590733120324956228390670490634803928847016000232865343055773102277925947542517826050585461392960674221758544335109473710572150131362655686057575414776295525013544674658487971888927774818893690718675024186085484504933958581121219341191334701744998759462617199513008674837834668088615573788847667251655339885309314839119309009527209409535303824689729667350209241331788342573691160195273412014040439304842534656536611028394015193862204951332928172288271968913252858960904455405081089415877205905955378502398715874569039636704903888010093169393909554455945473111159903957278147310178269149339130394189819784484697775599608069849870710948423042865632060978704564432168490169976204670040359816579792329313593668950776510773755684470880693070052301843690700179455541323566857217877733679883814597014718101662259648494631281555269831302203701889922751433133922655137932979612605999466968953951301784947676000159057448256903907129352146401401423654315085215769369773971061730241743183969167553518361170315028510566471941606801316659000815242803012967359946772737202403403029674696424615883639471853788881591284139056562015894040757571291053153452604944439913255895737120787145627726355320975783893122542928076340879088884643219725418744882789659799929934921287968599854251472611219537440670861907910509827730762849593718032724058058786428786232345144338178970605580353967128578145957890113859716302413728710188538051333606593753459281011666674882627096474609167163270672427379481759943424967936612183362660620911221845326486117272210881999172603764162975445381896212136981054058769412164571891451059639430348823558592610268918810103072336445031661745999280331875247412475990331295276730777124647115818211448428252842109844445701359059124385953462602942624570018484378937965059196857603213394308737838295970353427364742647053048196993705866118019757905297159015235562446076217080807941718810743845496475735445414625534165143828162606003691210643130789201881420127293326015540852188742916510536339317688191499178378687135126447466724565808221145477648787080940636007247797177094917581659062816243533659377611014522121466390836746801129604929093530194852411192715739358418207831863016609172987184877208920116238661424190296632706387648022254030680019248148035132773887272666536417339704533572720909718785844973407624108523766516731467646095734871144348282702987177397907807881826753956161510812443039341771636117526670611122239029956393930224488695600449042023187813318020770560211582973237821431089037687851352089283695791937319854182579153861523194103624275047878928832610905573028783358495027643411271852531341388996133121423153225448246633180452477925696744141059285657987414895462546736628798052242412408724264377289906210133551779055496940212350703771796392495923325697968255524192184869665680718884419520616015053232749661932939088795245618367094253514326002998343978914092895941716172257513198594095386773286919679667958667770144296597554761479118955596399327245324697678127537401829196308156450374991622390331987608580241626141157508847902765502187339087031335857465917581888484193029440644108107426299752932044531202645458301837327835444819153229712798176124870936722123857715126182040465475040148900049357394778691325045089313404092949544412946173337940614913865519533622498383887266897996863595780353163389988541019196622486896848490790236673537941426666683956834156464284501901958242458188708093662785478311585402117878727865556708686266627266466728199290420893565509815805368059703114574298227742882281101535198869581954825088598403406772068609075473585761878876606494476777483335365330927606670140551855383476104288168456143831783197146721034488499454369844459467375024621898386198142002197509536578303369884236326745842408686235169234524560403419461728964412506625540102432265696457354354231366614762261732805874782929073360151579394617755602093972853573758509937122073918189418041503087351792810169827981794853174351572352200724363900248098965405808975668822782898596374968567971978488586236707499979178168947431052340782479685005461150363457524882003874063860619374657889441757571043613768048791583962822832250269839221516916382550129977487060711439323866907512802965434597622849725406448024248564125063473543366265776464919809691932590248364150337784720530312626609234362964950261097555049322505099613860033854169733819347521595150953705566334176042114937409257427242799936100107621346763434497270217093515918713002186442359136570529777781596580371910102855697657712556267574442193338755093743505094377448448833351288772296007710653626037115725922715189628201226720406541684683609305819633930159083361910176209380143480130439993538362968627728123933922894688244015594827903709950628381938306554628855705473170613312290792553568091802661377088143998821480603993586847289517799107549126960178354121160523885440803782115553397245788720091138947431818613289869884837675795768566142699858530009720833250019593848851550208962127811468407203016357776616049625988022165036815427935033520152766760446288929567756999172947199614166409031229435464627037310416300950883542518302573784765208031847858446326200880736249494868992540622770112778730198482798044257089503932263070314725791782409401852639729915579668147863289559280646919424077779177133096761302017017739674397717267738131272319527965888722837478046674995804699719865580117082089803528836099950976820546755795799021590928763357369284409559662254259971897091685789423910509585723581100385967585206856207357014743511475829659093779056460736854326718633269749978031368064093495299476675679932869145900395382561142904690825650469568671844449812096957091045090704082879105193373549585398090867686867162277213124102737374573829274134160208976521332991300876296714276528441107576380669888906460488071567599878639018358598813859525917780485254291847566504424369512956555010619596493658142248891703331181527678798563501646263516388460725641243679158299637077233064821502333854652113427069669610260463203195911094610034122480587112910596747857677515138602290189029400841595829746271853715268862802465764677197333099989256618226682848740145751785416041237699644742443946118676298603814922023351910135602231912896624776577304527676324628840345399386462992643858712372589724978685867291871911966825616717308192305230585864204178373414061839666533942560214645498513896330482729549506263522524097168287389307600607043017645929191083528628619677336023382769392639347626912861034815728986286203582908399502712854130178982615591224861876280228775830698111331382893001891071302564752860600871716624911104995429388879900488746586323867395909370530970559082855151565884777029116128313804426331173391779033064105567956929226159802822428466261902911535239408997604878964167864383364317993810577666886926808443549508157640266744295679320702810142989203197414121616665358177242637072507046937026422283083391587982788259251306785373304653013123464145074752363462151736258152580923438318676768164519499425138923680633622943303988222596039984363763151139068790510985824239255136501227392331784848705930587927712248868914322894096817774786353260807004280681783723479466818455153583596575666440790272530879144637512704359081231796641174608205551155332558848734079704424406430031030966568384960348569552888530850169954228553651156254091377038341465829375100912428248447248826367634067579101975874667780308418830345982437945249821652761706632066359847364192649695398077670009108525296757410363933385397623366435407648415123648273599304038462998109752931434878070064217403790035975155050063797185307904650796902669068168648517237104297234663310220570630003189809108523708888804405632270379082816681087930769249129181045666789072779301337441706012309033245721007062787116078098145315715029027303642582018106146902019377021191397270878217244383096006088248169466835747826372225491572995252969564289149541024278414484766964726467719145093185935971795930267806697184538658878233445721919984404221590967161706323854221124990588658453828439242369350265584572206373413342586435382509304137928192723519882838201525947827489599069135382576064555462435592470441644786593907266123411556320700755169594818066142997627864075298439737448345949114120760286081280079806837057160170645391651221497837491701256276497473476124505499598180955849295732495233806164958824315776848506394071788397076507725717484682947739067143456269721191420842261975092189388796413781752288930377002899741394084421146642008224603694132846495151892209008078372599988169540082316960899683797765361073603172339988366544862678442361119107966468175215321972962687709047261160762156413420640563140566336206697051765470743638213807748037398529786218728806010793640569009712922759715590802307709006293062920764419976517398279627840502478903522649498100058296163863332429052361757455765797287201822955946437760258720992128066736910593703294375451090945797558824972320816568885442640113485535919482556447798742421008265113667622746678728542790607160162138020566521139558521351134526212055435975760216794868489667585019545914941042271635514958389229160416858783087290499909298034750286421950980956161674243257490721091059715634046181160384295970023892406779696282774006621208799443755466984368594663403059930989877974508009028877893535873613010318700798832980211894191610969421370073451426824464524552564746414750345723508760576037405763654106923287574821825134423542309287293072662337688236063959451092260114448748413145002315319188369969169234668285875040419217294487680190705598093625082940298467334595339847924339556554478605747369478621206642256071941194703468067577636348829877528467212593333610237571281643462963533786186646589961553260307409128162214197487390229711852703335406463179206036559876768651516746645266362791268724916417440427604593799306887896180632891712523007100718319030385843679827202678504125121264663137952370025551315957588604331107678571078034589732019553933856598436537069790978888231942162358881714037477100020787280853208795082613052548070976966346355544946122022411227749437977520020909063424712378581178809768798788063284594565428041987094243329604089769699565104373845480056125376321237852530667270477210632706593420298782347768396037290067194739821033614698290550888188303138275728754391675911452624731202279870034503590446867308755716638501871900966814354821732714311000381126148459184142030924880178098820386092648935951447610106115133885800286159238533673782086292649359926878350165419998353072908309786679982133230012754859424139308012718777449117601877740340510007487876733788896254688459670125904282837937351084224843343510998290907961418436189186331558613708465941936839998478429093660470429925909834265069001473204339086480806547962466138654631830857931365663660704211882775961741189162395940325335589751677799841772990083359814173770761787106223963448937684667422655373673174244992181017023615388847133624919263008328493147580425769736963413458729666878777908097589276510568443262055096587619798614684558979305863802109704842860623163481797247144530460775411992126454957401010906656903577975036844320591133841766256469184756816166976179254258147079126965124973274473558981000139552784992271897609827816299307903908011203307933117764248026562270311853778087944495313795337925891578777689743600865523408945831864291420851676537048859623273890859238414294089186771597828797349223622917444389707970350869213530214530511170315171869734531209064952041193999811831141796806118630518550132708343393917529932680673156189035325084198529526995382519216685604171607754414996989421146505143079555461419252161333192762286779862251202232311546653670365286894473042876454114205826248191094651299549733112292514172890523666694653555308484891917232787715354692426118619484392928411407217082488001359801685348778006799194450708929588491952707389716511879987539929982565414718336610486685992457188056470605546572836451206556292770385922235258888010415362048503210080007348027434012839007345948008514038301410713326905267229411305144305446702059066889274861327530192479122503285457198302615369712628526811580553980806790086132489264747556917979582280220524565473284944199442109630547211708771193411879149823276983109428927749457566115477901558531178527738026007986846484750938668443002252621163426982218976119788480549406764616682420532420259995591188154743811121547699240161868379480951757946247248305385846441278564828183728842479708277486594732152191326864562931482210562260519195576758214578830142244361569086102572721999554379455112679386095389232299762208399921781222821627788439212779972517909672789266540816309475707056760778135652228580380770202769125489347143998360364778613142381426822781597317077372964866663033776358180543932472051517726546934377312980058217239335970193919643156786834835700716246580052416982497687926086673524473996519395376201843092320863554572518423739305190412240591218471544510819126012966941059048758012785475963669153733514203985842415488207821852020677739281099802170302623660300832587430609069041011320832352142690254275803201361528492033122341095103415157200078104806574880976394954965643520650764125629974641731505189640467169533365976127725340703771317733254328796544679484568043905476897164428536124203049738228617223292461651023236050507192402278118604128647024877631725002429587798743613705690530100847141369378712361607664101497692932517951569850713392167074356752842246683402676596833232441064112009149468124920048111221534937208628945480672552922772977735174329750123345528672482758691694282807563860284057657153976199111125441974362869935206058367863341640376902352189841477321476193374023766407412189544146097251392649184563808882355414792268862991838785594000029151373881295800089431331781534282608744520981352389904926711017274895349428487233276570027681578668675144834504959112464978660415739778428266569833609122801053722067828807785162224209167036836734570262194910676447333753358728270040871304748326588430557755748785645578974022374013707568478460566971014881546521212901235631464034393314219682975869508410090011675473204977715499529790621438933835568437505666423152983567626264772600761079766663798356504095960787356866184555778651396852437946393303017889707499610012758136044993582752793144377547085121546910521299191629879852413230276662705405249046165874472797308356104064204474288962642889609879220589411911512665599369304969072203126944182054868348940787595321427820490454258229633029232316266670967991967631751220425876352912730107344202305764048009499428747653793527803686783618269311475480631279576002409065283907092679111671828512211207748467680188661949069250277959421643201832850127498211878551548766015679866277787144127846659931483047822698887395410230236841821804032526494425588823127912493278153925989238201632552845591150935871440029010334258325928463674811757444532503475520058646791448903540499745001334296217121164920564002688613397965722473765648153140899222287024447619993258534709630829042230881050837610776056752191417281227353488562769902152781415564743633346448496067612597906395277145833525369607419892670940999456886462689211609004060023213162491552450382085372311516976755550014360939019992119512593361558658254970239775696342439300312578324218827951998822801448899917607147193714284810441054126095220327921099132185942266361459019177832245218204030252457439110641009285089585000632797533562043840288927831777317921817465415074829046111559440714092699325583613048600405088569416655934575639090440417014244158848337540116847918945643065667773165871365090227852201123655293442118341744524657713201249912214369011201574050014309534493625606014560612838948129542490497807654384258410007260372854249933515870333680378999774983828840987780416160889715702436217901197927198380334416085183611881436338021393402977510585272478300780180522039246168378983245609068557592181979945175619553182206651018166936195058895607809748444942436764986712270252073402740741027115008501548419789260506692058049522041707234370182973677779275062603332813035673506362539600880082478732012772577416390425083729730392828895936476407917673544833181205767580083144793042095292457424421969108048226216820426163353780434993223170638773538050726966616333488785796007880721398527426172511149795902439039920217918733538991075106894666943138388206144870546787970781871919533121306487480489513422565368947946628358545918534800499602629174192255345797920804671205259473141161969920282545345761705710835188067081659822234951704100299016074139590378985652881638633865963447802432727164830815042741214898749371634812849868449710666659402817434478158957798378030799218718354141760677063845784209595585809174674517956425023371987449965823596861338805802163528599192124240338173268974951819638291189879153961193707220243384587042294211519550339651352805965692736451861747460454531425043121261875187154640406647745788022861212708980500748843997353175830050605402877493579134298354812597930798716543650813763150292974964326525959749496020334209689669151433606037863975447616254936797423331837842688743089527321428095250277115047809925939531379794474222474557407988851491394212825260298290985324649706859005655529847250881869323838836715090710595150895329263402976370457622601418471916613369934111590780761539948072402377484345850099840295016767662884252541125995415211818755924795266425291647817621042559513871329188936719582504927598477738078631550865271874121726751461639892104128846800636791306689750414660116797983740362698985631882840225498298813976646653518908626032974208009813893578767914757937987580012231143625342683905257033587607419781259301563723860543684103817699491330673714929393611938116879431009078344241649548499263334456118075690092388269941854928923514504893165085816372103020075869772906783327961323498431006692937899329370897782958185982614411050128765258603113688676842214930846103636156969233856377960552484620023794281227331528721954742033806884716546540010574138657366515901721480155194657127975823976393845008585791992937154599304163280444431594876178472805283296722504999990249419316265418120011372478158690755368825309829803547615117522153740518960324916038188777092063062167168589327234410328971270629254415840186884464283960388512199056627075425490024561228510285575009518143148382942915864288029576029521874729032600627491831321801935234588761588728342229600422203791310621485784122842007947238956539333296569061484403292758048485143811271084121652233124738897945154426336339563344854663047501166585726361334344594664511586038879781867749182171374652316947713742925163708858489654705568700407866445096492172955884849186171615925832970826165174558082536224087741193633683678115377081477369745844402911797019221236060366219047291276953383719967743194129337179057689405528245079278175719158136003229887549971688749823348492742662538134139631996672275276770016023263363278825589001321926125161897500089512785683187699253151665705502304972809715514504410385162879741862527556577953197501106582627883904887880569261165902171856149972169610307945539858984853960490607887580560924447375951061142683004892783500597228011318003991694143720215797110119941189514654190211930292086425859946966803163937157915751062676890101064498702234503429670873171215764953718029895646754254619367587881117592165779614453371756330272438518321339798540294482087574528673952710941545726913697790749971203802804113307307580095744010948165243682634881383284620994472303839114444196661402540664181269618465395365562013991866253172258627411914056806444707742313460694849341624948255310591462119990018883454132683958837780675783581371221759720419045370714544213596473105252174805595734268715036032507323451208752152683601667789700863409727963661305267391760102616263954525375206606787169681050938371817791820616016991862241467099311897548168425677818740737532254385063120488704091627105471434991649959183917154502151420114896668981531562613084267186112016827252200985290039512454561139796930987468837221852104874467503799273707929912261642004345888475075681156771179623609000288029090718867626454705177515628309073527387128312156379019352229353173431303947673482212421049579646402366253355227853918364887520317827230158125002565259526241198251026774819161608472078503633484588965557553128270019251761085933590814342128081422971350235217211678493255113022627462405325221223904630997463781776962885629387834914162541819343717431854011828148779016609347736079194587832824134637854989042383306387490454796429030567882628000052835408781968934622954693263979151242508320487486053802076828190547439680163000060813253998764270466619966398790494982200173311797595927904678672577177189554499201576958766379765234793502263761677933144337527414418172964165185448662816322500660760293522780891324791618916865800027368420185528764599390284456505367567290813896834002384488974401967686690601757469253455422258592011558809645074135351672755687422893114585829559834422879733440715525274876375923656396746262912275868277408075888441120025859550669378627416385708142163355262913333326922214238179420498054421379202894307206560300885061646767517204863739184757101808354474788246441707641073826686509259500000499413630035957021090442690720627086664277357199076095836165410844472431179853849927220243299077624208364203028543936053869728861805352077237398007233559937219306722095663294380422992633044857876100581980030895934487871926255483411459849797023026240957437200813941190204400629046856449021134879122781287745354072910025734736539629778350001644029057686588397589117804175916245547540493421104959511595455217012477289827393969535485904172563094165364710270903693879044654932915542642517231837054743530402928853011253242630017209317386861904151988455637272946753522594084063907604183961348405198930261444956635955317318327876197476635207137029325367092967338743367856741318027739864428753124519291817172800081297181709754037694332685630288148295786750887359649604150797963265022436424147394219071193782203393273982313731545602697360162482846164644706709429458749409437421742444246701482124229913086642241744213912997889045107191403826294611938303431604018035263542024746947954943014394933906194108494389907048057247712724302756489867448946522736431860647506855667356810950199410403868402922529968987837358272029491261470107460152064818259925371672152268795719007215719742162277067951215677872268893892670057353211452255613745954338664463104132498592083136066634280098774101137400669966916366912874125030395653966140909444856872958460849266774980567897730561541153650389489788418555006966716679380688085647745561451525638379890963502189834393071590846248118972252183705629172647998699545949026263687501292699141419069308148602748754109838779583150086296818698754912713851401902558916007050704474437688908980714250656810207406486205400410970012486758137872892883528666900925318077274285486268489006239947275138772516487908781643964450498151704655046927779308052061401784134584776174442073570201048952238566015910151116728611208802927214803639615351369715296333917699204673349365104143180529670918893394128095720109665356507777853378419389865632892092451021287445621474051281443443024451293625117093900023266861488003929580821518792914783752545333138485627519237635647051667436788545996918183047506490383262921204295065098570601226872215705463768138108552850836547536705979673013165371071608316484115136546458300170105424025231521259001767301800771457077386314191385525014715654465976845395499262307913215115811874145536972055736049314859512472772227967712342328139834994576325335539978652701521542381994517494800451242665451980678283776771450886578694195444571418972903667723908258231884278181932888897585675357399825141072208098428096064827819515447653309726627766561043251368405833042848303857866263234693538994944042623709347372832920823321614706827318703535159671874296727764669215295322739749976467380952328625524581231638849846101402376594380762921013818793378995950867170230855978755092140845340210619273687646008242040611535591153078457232981718189496662695508510929747454454483448183276440392572530754955266401819012285535893659126737095017619904755477869620019813136856663903831456960133576643482022266885667861102670565871150935784651754838342376527755597915454747296284392335679009813938123656873623126800143181874802819681998207071758815116109989464255882902334063210205914557799467205756173181455121944847003868737189187615950331495727990222114549311596868373940930245048602677659507213695480100193338340014144992062990431522785573622971606830759607481627062364337437655565274486281664595663186478987966630265669134506437226678870230698532605728084502199663906209837308323128663820459586909367232983693470731144197853022172324307040950495913885897396875675550388943798302015316902876545348932718663957719873220984002208236970279703822125315129669238841692988119126340408902516110496356898475911065621359098953257069662481731970333262387513479835496572307068492864588581689280214491506270343622279202946477610387079502954484352806727341320479519798612084163343549301798509880741910516537727818088013168480341106633999237392283997295439554621493424133862172751966750878151812941951555919600291866095000859612679669389170429899969529088524562956235214523256981740431029410861907538883945955630572215461690482285629759472383779592016667245329497440306561807532773755291362255718548142508139232378844819313113389693637185211396172018204121591114102094891536843837187406268568138723172472444094013244088005657830402609832935945936713437969067822263652053743927740452256587780080000070710825300355175763524104377661016738541225058758123922418147786732485756120493280836371217647064612898512851096029392726422646968461108847223322568667687329171167985685075882072395286285087546517460385196665345267794937927393871780413624892998352274051735526846003546376666661179241544717222777254182231071235845882829837511878364054752852382079522407786484401085249757715824533799381224691117315817849706903354426638843050961197433718024635476692640777227078487663429319093952799144864132459833688119170127269699171175004055516104623160978335015645010880420104390483494564011694421917754799460369354739805833514081475418690290361617686921709514605846729589467292783721309392973771232126988576858764234116723245319192794905526876423827459385641969243617368227401084036326196880464607488796712308889408679064573519142161183246668391809417227477749166444407008724042982549355610834611013493156657658730250418899615358184491923625343183263897119777486698987853546468479831395714420542212680666958187415314770514490920839776917260156597248998456229649748237051052282426041463300348008663771177861032200552174303512617321549804658183699321431608527593051355076257271277519724413472176578836102230773901800625637784043364393205611309282550576561831923976703145722022976293464960019155573457374302481444276871698969807931157222284700925541936298968578832153830580537253209070687112527391279165861203934025097276124714747133560103808326648739226389149242770768439649069311213024167617802019542828042219833357551545165749464280808026775772555046851246329283143498834422221349696801297936879393330087802400136683044703834845417011119930279632345946134547964170848595005823829405145213626059653736136167679952994093961188982153356424352972330849649913580013539631339992513074396446032867286253618394183150337384259562722191801364763488489699382106660990723244311796479056388616048538541693833293293206537998041208578681601140179936448535543948042638803595598897143408986490438652627268809033585733080089742124236942059052286454575879403518573019231285281809785646026529377320676929385275397595846713729946426498889237020628299543063393957991485007834871163395044369875720688515332054330478540927214588074158850327273805997983571943538533075793373970093258085220241722717886825621960159772283073010897639125585393134371231327584468418419636785823583882673650753672374328947109229364747110342671272980991355371742414878929872769048470451588798388192876137959586406785520919158384844408910415431103016499447247278103515424958394650718667787001075292000818544042681381465226940496950581882853935484438348543687020203034270793479770877581009256119431688223442812559424918826983322887315053118276968196737282798591989546950308966413043554333514841538131151885143870718361290715298355694346806035105631992550179243851076121107706669622866278151640222167867511773391368863673573368082516902703468522926275185227170939781261059742529016430455300138805206981808788912283991613395941905823160180448281179037380243140166818395139707612193833070756413217425759078994615396694736899819971597316365617805838720784496056137168377701514569966571734741202048267178468094007143605149923440155734960193184115965737770862104026444913855467027697153732327847424889314190088049910671296022775474616567411790480687888577929875977640935568111824349126215104729861473926766351126866736416426562080489860332021227821717392178910251173521662259163403636109338108952879374631537187622702116247402570679364452577652281546871742059766591291058630869879515018489666285931023663075578942565323339313434010225262026373108130004552435224844958324776758316416922703216992266152573799900324038235569942422293813132742881214788342868509930836003128694772752683440575627877247269306025264731360222865354928823429920538250899193400360012124810324084523033797437051405248316450361263454530584158037023318967981816909195409369037332480259038968004773498000772680102801575746872956344722558086376612608834153484044064887603328373756023135536804849847192529900234424532353255777686502899899101079688090788084787038824749673401506422918595755714614678204147671999206538693219838895158298703790170433238094344739400424681830984999048299605290215689836224573192053765624598615117213321680526628773703342671897289500296821266858073153628371892298424394658764804528279404119037943764096687518803635039765509102196246827149060860529906085010348137381029592303811204952090398599529166956142159677507336129268672904767496648259332806402470334798147154398575544151528231307595995845466635583401683935194165448691064120086457632965205054768696246889347289769225595382681830071726516614418809013472142090296189546100430704041411741704243907738574196778992115149658075230592736219133133439977701971826910084027461613958479443705150036057244319665417156165130365780333420715895638212017581124394876299649957946268264824880846598506925459091586103914117360685379873368687653787856620689212891155537321227999632112744991267223219059028551196595369374141209564873186505085498294147063843609839291284918935171540160435693481069819527826276355752534085513241065299860073331680128382052750765253167644703871095745502604880691190225636617435607540526676592090566562789079202147553854202266134432061857204537921066367639129665542011461515631918946891736671625509862307646565661363728907059554535780052835422854352208295609224910087432088776114054876962370250505489832536051673356673754703914841008036204497417155846599602525913752661878767877289895505521666570908096688403204461121498650386694045476554369442002462049922476113736526875470514457413712570363957693880106074657404233938774707896899722552733264181196950309804103908909364264000523667623825185268202157533970958471411667743526275236502965776239788266798798520924949136822664170094639112593526357119924954794327655552656620739930840737897559440510938453363951988801920218521322694381782102817847927824600601120788848987985418231866839596061940182205686798073399663626974328126286282249053309504235716160163729464345731134746773877411200677544129550157129172089994742288952767794185408170325855184987098602997489858149787455174041483486125733267142890001915692588469521222218619679721074819373185928289401221465394293968705903612176146424971357194353986768768569443685470405071341332153199383264242608070388248893413935407256586837363901471873357197642667035550840351687100328810851744798900235402759879031879452770981074211193484908842096414380811336951690460853545088671688968516776887654511186418450749831063303209870032070128806942759315668139152773116334235401951952027648468408020749008716805812163992878428150327215114466752007333493404895894035752717492082165900471072048301817102806144247334812595924055037072781587099080832037124565478156177891419141263690432082880079412631395285754225138034108054284893262153975248391458064014845416092809991816428562066050126707469323435177470284907927524410930351473324919565854779529614654857174079030991945485966531251939764078662490660535591913106709742697579138542996346062473011266580120715606607850746822812840039285426157649428363578908757569628657285408694394516219496635542790604910219079062140324388938109759248018244616885857301087538931602794334127390606484686137914485116314809049018338830537426920073011494158574853822865736793860658297261597855482892289444426822092411604633345271493657797085484793723028171132604932952618356243179852038913301544701427533220543143311420783500187867856995767258919177212444074468186233237687069365260944732380502309895736649908421983413502149848953610310563543593125882771440409325955700908589125552353106386418318283395508839883854313840221174880071327253337399350469620346677710207034652486630907002236284234868738769691580026100559721202465472694672864762881785057315954468143365842094268533554803705429550154842774945820490497571410758697850658826291053506034666962229587361708750179540258826220350755756736753037422344803189804394362090799120732751382326390903240820652110306293239430774453112568709207785707284702936092979445161324600781239466725219368371512552775937177966112571515087473883741181860921595445592917125541965547473010156470164846808359649040709406902356501175041715837481206393243046690421247977680414319549065628615314884285119460998606307003477108425654435895670204905789593699200499244276184001116637718475497476574346349757078187038123264437893780628111742745233809006492016150554905048750317182719473930157443180495011809368604414675769036560028666057132343099354576840225761819274274018116760200164846370438310583777917696603938450206576052701090223483767779396637580954405663928201983382701645099459175671987503677502083801698084397531513240422344683831281100657468170474052304966582119288498064724717417998283901449309756490275326731942463731352449295723331405812162789065255401136125904521174375960184293954770203379779420530903422287191231071941196641049854134741946541334769147180407910739781160224331271164653072552470603857610023074447597951801089998279919075443591408165000433262610608396042680384267117194716568084171869675478670447837611445336970571170943738806400258891433776959611911707101803321163731333741455601427683630059948780466405918575933492410171169039022182241141649732026974851023136166999260912987766746836200199336242192939322463612406062156163635380380149190877737868924841148198813551773019527321167116979009016436664196290093731038664752634210100181944741645337232648476953789275468729391559167864776782623330437122675783594171462082388212709745771679519567979919127326071467982896586524598554693494845012922043875465427573901373539133960123713619390624967591208417060579879537047246240527222180997369751477319378029203026281557959246197614193784285343244125172004069563760553770196928042863251376027816062286618053514279346448855502330186076715612228258557796389699808958107719266208434723153967071529908026230248592625808298858009346874133859086939166356242381702502764656012624354164182219999339136194939895165784577729824682937036342935003697365103861368813937374661280731480206059849365981920714182255506421961360779187545488856760335832924978967163620007902765445516648165646492410581297635900004328010774164618237216113968043707201447433132328422078345944923427836476117534082364108497031141478442140534361203625621051895906436490828411531158091285268521122779130676401995695856234259633673740213450509011416418354702712714773790456023883774127648029041665166352218325457659064029629122629203669981913548505875833862081289249279102384856705051768487894114809336438172306949960344372717300076001684508847661102403044812934074140951570033696093988578779962796301801156728049083635433911147479854596259164676969226293296157243886591590827555612038782553254114679414098769081475965200081765615715602616184104238009614218806366098988588735801821574413630687036368361680030750280317894659946028685979211247917200892072418284412000228400558061144361636468444999958586058133935515099519250709945309889023288203715838186669216411782308395486726977765810888434662554347477483859382423873001716146605582637644091539261259842632813986945169990793556593070685263876758125256774205454051579954966743585833595052186049411887816101830100298261104689106123301177658628905214681636180167553338578909128327214792547229105787419817701852032985223851527747595581120219445375822108832569720313074495714973872907683320821611078490608857574513682934369796132444049666406302682144076258887486287559565482607836197680740975491991202036260105896074834623772257528046470392943418897444648805947193987660755518315395275749565412717797645626887206968897357009387823751231323795745369722372628036328763492102791814645281091570436062564516452649028356999066645844883315269317541603661735947215740765678882355798619375253569974678328997548251059703598943141865102350027643794285213066038628292014946246326428764610321899810443648070766402240839648328363645607875764852984667220154464413080166390862616440956001540907109223573392886867060308753003471684312833475117778778410614889702376050333701055266409569855640682880596198422017127965480644042517419800634136535176912352530702255872339159002695424804119367581910828913827708824268095031587798339840089350593312686424073184285408463939231217212813517693546542351525114100979925587127831810014402114075289856212018327822212817135344621829811291892046123020739392385495271391390610198719084288926435631544051480690582113430415050310536698443870670231402718462213447048376824042746260489890313878774633062906438483403911290784730407864427453609702961377868723814510520246456673612731409733830619238376347442393217867831546570359096722121923942600652501644627030069306915057758688688223371356456763185584896800186066978292536253083063147815726938854207112294842058917572602592355049275033482442099341854193824410725699553800871147288525033485983940681820919844252736555421316682823506869431134650620592339993744860805078316779688482393302768643019629725057342003695292809779416275451606575449201575868028561900495841982076217284401750227263272003780706145719892456951622167366620404677370945246028357369102464363311013791852344091268341925636409460806910857629136339867858715152171672117737840208121148850911785129100444765671791938485789412643518272360890284711297568268321627808752494706709613446748156541970980835821833988051594537436721618922650341698121794668287807414148048506795866286360377546082281254051971101022308015373690697224861660460227154907047512551696449415115033926022849439353525360502272943755291402126994111556449181873008509367960820558303330816754094146724479114445110621436682926988806766724132963593477810247956634397325884014055825084594651406726069670078439913571736044090807609219245775960077478502025680006022331451273102884982916883431333165344231323610785851539208276604895295101019565488955134658684554665307003064968338067476425939616437792657287306351275017252471474160259424795941430002304030633276862272347082594300856189173129231070468721872945928831728856962190396219637964461736334633159790105354405529092221613093874300279185774027379443688355441695414905022255786479580559836997310152742749403617897898999673603241964956643550367701089065026484528474210249079222909464489026590454879428896110561179908950411625535991110086511494260362896888633166636016436426772658861154063189919323613386329524683376717305281166581251994595357732067025396399390909943114699634974469194586787210312298676394722741157113404353079144072994120090048324288918437875185794159652938462161321286078788471363713376012197544498918342129715676987714077801272598628398883249650684302766584675764444713604174449563476944036086361831098296029320834723956706254766737141711177912531263841549106004442773476634735918546581750392395705363994666971095970428883931431671160878577972403477178585756831143891252024381418305859491800748316790273237585595087543087193097650954615443254312289207342022569997395834060022954181191985030861924728457180335339575471495143146893958282100172989547274105483733711627241842839104965075563386761074526709236525427206975941052994152158209453739285525208691710526583517427660485396038195942541844033077119074743255871427015603317943386386223875573555289726104325676113967123859017971796635261882243696666793017729676734925939648264238987018614567741726823407965838668245134723018769409514152487331903195151845687352551033282735496731518934487463965512101188823828215580566843912812707226600963397070778789786559092921982007380267447159526795290748609183847250149974604398692428206663024046106821874347427774993372286438640716803356447916878301520330697649609121256579296328444675489074316829682287828353226184945912743377464964168946623538064574568186003936136695092844203242436259001334254371347379221741048629254261639506460884770608456820321971955681549635639541983967963216650564566297554773902769935641421282922052388187765208397851650598181817588623981735654749819657539612062117921544181081360834448759992286951952403829957380197916010032899053001347561303375090424572521940694063344181897630726154965703256221957964790221106156425816966055766557931426043172236617699342198928078135795048999654240878208426405267595575258285572226827197956768662886211686272546544779696026671165579933898970127821242077345090627492254425265791517873694318455760105787633320856075544212814928439110823686540327222031641791877470146756137986228267292252420731390401992914294186482408275763721103836568891056030662991696340146062477822285216865305408549556059463275516301119782222541725407783555467589298240852334875777953106005555156332690879451808902452962325636826531180240134134766759414366637494663574945525704950088833397904554559694591963575248945399697317859592898526450876416151491119073482646642177155412127000591011048897933236782953076553498863142523662494902995614005010084859086505081924552664750519709956523354446393749518531913505716196972584897389975194252366994244387589739630014419733984374495869592106983738923733286408728748426302660415184317036934523699543256987878621790308276721005985065776165070432337521041448072311134011594776732739454111135966876597838421705403533841904874648032263874869775171997787110256361671143648601611195837219375769014787447807202085871855043502441340287903591294701127914855643829767290477045639514895157827920645591533262986094501818014143781566808418750920455186599434492527575578808109938992100258082962792501578633646667896754795534683974279580293521974420507859446814553357412591604171189071336219611532240380535054247339969433225613610875722424009757196256673573233382543581065663466425011488295577807166482182307644905368410077653282518775043823680596098199600511566272768316284465390227125928015753465309786876683267514032379540959762305873930954666987776847390695877684057456728474220012911957883597436693817170018679522915085401861273005629008957772666384724464226951976654620542598754908058917367738990625393002264927682535674398613368873816694322987651280981922888596166039223679086536671995038373170992941581022240375600936626872976005844642021285739486875483212405559395486889938921665485765330315647571355894869512885130713710140462878433966346581095424682581873965970570772939695317501117740953523726779049852577151789460958667499470762531299483016308314083471445804023686856993800335010054291460416583936168634427221256566555976030845940511426389964287662598771667091694520571081365779014139368976092422755084804347679570854049392647334363726068266651130072215942852451623998030230798251077377455581850760419342149338977775042634267826342677542907296371998124173359192569811287192486384976362046143929981923717047907405553646769287874286949434926030983954863764075906942656512252285096023742197393276561062064959995670922030553529294596818057057369174627028319003363775103986153206653301677174375743570670784908129912835492983329477433498802630982233198239761841255064954135410652619058896728158798691906019166576327118414547608230515693934633811192753993144751927861878708713093606693812071541893002086654429829258333845358376615387645522339738701941718220963692904646872479477032863113398413341900618002955904645472385228484509561708763399282377298170546967697780876084729256677467583832619271678851274906207213146333746008788258902830560766929824155836076036242147324586842818034205335464334670967999716765371490864050272257349981823447146393948920075023660562201289957348187088660425318185854294683301879438402687701104320057321979687424115033861683618306628074439160905874115135076769693274934986044294301763097013782071330176325062239753553331164586471595611669819452404777505414962045197421814464981912620461564547177881358477448593393841406933526565478494016710299936029752928588844369826919401365445762753149879062425497693182355901015435483562554177657851118080210013750673638646069168899742367745614834400574514028308604074140527352505688201959514934552047543060292091122637975510981752716736487862838328584550339635005815570064017201900896208575470643815757430285548364527848923600082354006029240348550331804002100910492097924200082942018847895080743528772356485423089752833348912068608104981029395913358684702443859732197126549749323986368977564576705962064188135103267398943107748746302160379536867722933569648357118708766122534435370412470754370206444287170266894037044074372562544248592653178868772553993757620448653554339030456017522331830005047597141304118602640479371426458186905864505653500574183570633778004683369249805622552353376610885333855339343819917271577203306095619537757949972604904695571444456902817142260206668176766600496981983109500569012857460861544036914379603260277089586402091157814697145607287782131597451764912342065309838340434675920893496747036728146463266123342065394766256106177200329028264046881566467350868628657266046693732762158363970163747558775892500637306582538512367981533972745514201904374279428204325333933201811004681080552709495544328021395090247672536684220566979914240231259608467902448774466568235319175881160033241012474552157084401450720261615967758404415883347510164438032183512280733523039858946216313159684348323587863117784352115219666135512941392345838920872745276875924190797821905626299225634273231702425131753804575390630974219804966420998175857343605482814763779186432178548155802505555727933937075057074596825644040701920521388433425825886932834316741259820295269322384953041177690762694588712024946256814139917667096874106082235250847322192494489774368408278834099910379891948172964027462573591483145027245711799510140241693758225345228688162108839510453510931504847145841769092480869675216264895592627471840805042948645352441197947965083629871177352154258959276782182808480606590758672947890651768869377595187469876539912652335514442917866136379947157508412192969605151643079061058638233731061437894028962930834958534081874255977587037454366690019407088280602470451359664535731752161725685645455633898550137195995259107825570678270150248176139239089594307679420230456703426294090208478105327455379710323862453778083236669078772288639934377836857074892956917992453554254865921385002468927097502806913634605645353462478913400629291459599019153578424232599967240252294286657818337571743175137555160859826252937175336506943092212643293649140165346689604826703850936864689976604176774943143420715495966771942200843123298875720483206942882442420390489204907687570547051829031125072335597196865336456929308438102919484096081036974358611490916812179103753754485385259899058268704042673708220910490084012406344224649670543882481809736337602723846234051382729537707323374781141835710272491911257500853414385680142128386440514772722156239197421799071010098853940111549511171266396441043642040418817503661912873186687236304245816198704992363655599046157624351616746773991095810369569527279210340973476401030164839966250425356827385097243167868944336479022582653634793186491981364920294017341220936403744651232231526167867439455368409889119010070642183516446682776392903612075636930503512614132470149658343064444188565767271569295320787177310767251585267286446217039859261231973238904286060477055856179527505508946366505776590228006680812804277362729641712835939033268172397835356533549279178156725440686120078403916144886894485488338117814383394557668208718595843362865243599643862107386811170406024464798474356222624955027859440199126743822170973530306156828873192879612622377150260909780890436842563058303552771760731786482134192345748713511728131239616027497875455393649111876914608445944141363327247606743397844548767988875677805055198742177910481322206809469462911705661255926894218750416743563933417644994815914678655429848456719136454725327579814725987186183631401195116661480605954894192982760369686511053566086323099916167255428963304440888933804169999074907523874455458968106476686896363020469358575577595186184012314413638952348457078974122744633925179267970237522901441230247431118689098599012733493367828992221812849993372888750946471286757823426087433781613709339123530317442639169299667821788152161122103934533580779011989415946245908027664334655847555152498735561447788673535786891867992383478216847001434749659638892815075209817735989708574899776969340025847973203214563328104185732028248631650558508853621553442897574634209043592234710979696884952374635112516831987040717226690634731923523823175865288509177342757282546703682562228674333153580447308287761599424725204330799597303446206878093710425565780684494920144798882307217137150383009242423743097319511049007594455624799172117073299822678925698436893846535910967134129740941443543080295051399296507830304143052277030557986449005843868192951510628997611373603398820784153492389192789922710412705817138065663241991651832316966462812263499687456732053353402890862408572627263650515352624925858735449844228218982080496848810137276166576126768047741976989852202189145603571410249549123056423542539913010420773706989910881764148778451336846057625199509277125115937891423772288877875778228396267350872247150254902279047984512829145267959400959529522788552137496841517005069318567338198231322230989090901590606110558501739229537067672472473155815178306447910094028990556598908923411514673869403271116397715206820307169227449807594913544839867493247093049218632424280933513150410868367292011895952076394027666081141885871512294467759840914360298906096837352395930072412709999424393701407080719258076667561094528814134948386486254048456575156576923040576324596109246914588779867214071428098425478493028889564769672217038463644654446069709539266352489354274583628421673805172435147054047187271016349551355563954791496556055163315764834969912790784870585570245275991576026739598422142376725183410325529905160128316974226091698337923309421671300270501304965970913689258804934767212088669506366140286468371638589902472888292428712255057907329781764323377355143484830825968303625049776374967338240210421648907928212788582860371932771634792603582144925963122781166397672188521323902765636430046294323899036655051545330109129229189522278120958379033879089561659206602370353913627989617502161347397711901132601478305894511523671343407039959895486560366183050722589785584133995388258082749943140807892773396485672474795123211412827870466939006640715068483129611395687626451539944305003798941149029234929692599561645256700379867025789643485969917272570271457412452905645096545494787426706687560410975014359876384438883437403094965397885841306044216220407862808675549101996511162933988243337407804390029126685652086273814971625413564201744045838632148423690400972464831284189974373489092262617552785522328623254144463602886225919632872510115090810419542992541876615362078901143104130274933467736671827041834505119209094001949487072884200859113182086727072252576393638005516415257709512654043621864250501408584398692289358370812742608854950225388985100445312475540253505354078042791008606945924329309259396076434152846226173632377041731912482434353226862708404129152575979181729306470604627916976783238934581697267001864772229818749754844923145847352820292753411683400328211349023716813215375093804810048659664786052026314298855972251928107361906131696251348265240181180385974672896819954043881902107947039984875290968190689741645284289424238297111182020863960905522603916096612974021450584674432960123778748754149727638394065573689968833943714422296854286239034441485654096815470623276575191000472525764281035572358413838059362748425141268813718689585334561991321953491464837838463157288609228035785438852853641712796339265504812729931936221007814615672905725692996783922837777416398586399426939653246133368019335731887940993709754734237612175711804761665776574449519904067211493673818987009700107897469244704151451780212233761823321786455788163908293679215062324184782160564868126958484871401701289408371135808216038946243773051904038759241801252007228664109590146074792094252771031888746476405422530292484097909849229154168399483753499719958442101500422402684916199980340556518891414659540521808113343355450919764468491599394612291965974217689251881040061725307181020671744448683776464431788363072303700877253624196115113011654225504372276722625012970843421207487203099764009598218023016546453707011675473236401152237676876211434182891577702063588300231589742714164177129434930048930805968727662196684138250202811243465240570224814408985578508419332253951956893209665358654711270825969718030040737869909849436372212098361578296499286991639702670125582407160009397197826276899336272345465502345822025693072417552241757704826858084881606776498759398548384219143181117784545523490316913637181954844463548906211755550846325186781137655313688143251527294485735932206895800846489324330334970765003017458474195127515483069952450148476954476012747050081752426178667061703339678645776501296655877695623618391240662755642386762249930739206827007418461297169332808532224381929310289123744397466330937372627769262071041082201127318766794935196855267171708277845857250159039044413208845398646695344676411015815968534189866476936275460172005426350671120778043289676603183812240070921791861687297540051945191125100903080098909206826221690010743920522641923342813825959219262588224097352148927638590325870301985884302334203361472961469547919844827915536221830151584734943711631162502759128045126234968063615737663309176403144613451892157251863129777124711921892087304195195156696510173980207331954355749929616754362019059155483246490491713586248053881202657365778289269430831823649702068079216393561944793118286689606003511142780803838233103638325332556467821434031539982371624332268198381545933356940307871441269360386347363630089813431644714270665906445054279002166969427348393826859566853531818167511581804646601418504664258205591658347372739486981580356289605300444747043512304427856671783460052441461905506097090583171126005396457486802142858666475351433772907162756593700383023255556785311135477913702731786111513421246275077072459199610210491030157411805476169460098105358015670214818565819717293496439621547325117518625451080086909566116762111575271587830871859327343889967761112380183661147044212732106585199872203097341961626751343732378665450826415129066750314999392816246655051275320747945538459870758814472937211890781743351917657427095514208174472571789677161802424272312894983107367179198893292402783612795722643372824416568983592461653159129605495970024287169014831757038146588421596056720974462324731101745428868980077350182559068122157460142265918826177084563574518303541197371593783047310962256266730281608615551019503995948686755869918075505201258159368426328745510822227735815491599960539769035383361875140247447468126087807723185809293947721094197646281934975014009786901003105388612681871377899176602955358145566244176996677600020323606464722523860234424647511844410584202605613312467920480705697465020429312847230667869691843221800757943669949864261252336907887856060362714098487624732381716158905977530795233769789774891518388848555026571221880787274435086738417827107600910841228781760128132904437202982884784458335020656116203742940698120618847045545811805899552433970561273100314571196438494991804445642464462380992401643066160534167342125209146880769581414345672556565851989492789336912070342780803668152717284032113114881248469509477235999221469189636713866270959431041779097708807676434872179909743088160721018289870375649651313727051307321950513268813521829017391993643241168494012464508898704135201898484934396177855643569807116785451124270473027862049264703340098262698723563278860785152994827525486812902180163041793834734075243061035466385905980275085106777456504272683704101054046543117896900683633762054427297351825883691504908353535892064458225671817909456777293805207648946566462522716363690479450397477216214365220014851100320329709791423131668253841552015370956755893005516142359340773235926680909027199319711064288612008602853883682664459965734751314512319111570214263411041982274484363074691732827003204706678988190064661993761627093449277499493756300701273612598020735179241080535599466457849974365815449540970191320790079032653484144736315280571883319040505975384203437498331246647092947609318539931581499414126542627896939123051576627799016006591825282879463916110957200888018807521396968826822537657571893621648990952050484067209637891597144423675949388738691350229455760837168877713814618906119672613691002930022167206182940047642433205044881874777291091380573716873025095376701893656606322063746312132933191227612967339300826797735750366080056169151715123629573397294865626875168383474628252966464107668706890192939377362526534196980187231345028699991983140522331331493180333015628634295233995052846274205082603347038942010123541825429060304008570418486751922122459647047009126143797763077493107226115636281003686723747546877333277039437977434321361236806714857890119451555043348428448887682230371794100204304899695601224925400440478318456869061403822219662817222451057578603726808307406901671690924377302102856730901287731460220170023322475854328532762357567248010595125747845932464967592760847510649476333438162599940330769547959394936859274656010862811868921314343571434499195552253276128250128996108290015754483276747682354356984415668486662080406273834407335814226781763687130748539484733966693190853584692212554981469901356358290486905341825860936380993102096167130943135094375224371416427107298695451807971872354697009032158474522177587673989520435795439566666844132262109541085614572050784023892720459682709542450406155686661258444086890474520075836993028560358858255612639788908333448124668133595761705181499383294986130783055929928486504717824546669991801455232912157175941055543987053284508284348280288039054863220754437299568530737260847376576654625997714411735780763790387491848146674360404636513180235502082928921547333288077456477917073993669476471618749176242683974892267992355142238709987137712051196079501294630415126272184053518266292968664717427748357307157340329416665953082231013092625088982799028964353256096038454883936509765437319563530601114338442424334457308474724826099820883301902164780925677865099406354486345570834755936198777570544675087088394535947065358031389768402723584140943214817985779080911666275208497056059044119248326388842940796568061257547006710450112277085427883193439383941225960755586415303534838610652076425870231125486943560338331016404513694690146042874667465472400809195990640182476085922873826296097106607122532772479399385474176117300577500137205060433041216962430111974998553851826792559500267076109006692487981694186374269415315835966072515295305842411304370975028000157334522832367995012440351190244663611587246884660416032245748565010104790072255075172710688314671013450545212726408124480446936936096147480600722399172707609855552363146853985070907199657751710384782797810937175968921527686974452848908622760129295263421060634187544129261534521456056406022755499542261187475767897737308292677596131936487622477498158229983970087274899277344284990577729284978237999316567712537263329635003452212002150496417771250400333884803684647837054828073884615538019242650623832221301222780023738643689434382934475666617968945613158329605560585136484067314734256031155339814647287043565043725221072282654982847802242082656436224088089835292988318222508320495546547410365010201957851176656874371010202591474364597080868557672452136851583405186166446818732662156082441657113531867872901244412856187601217845127221022530850789961914817157686432774960238044505039729728349601138416059004232329586937025381802582995655620489914398077636220523816123449926621500910376859071773957579760299535711124250512872819840291131740226435997178348731532790712573691644237418505902858577511456137450380732185679643830710458402189665559062087357239663116531599348069673823437519341346524522398737929146741613390673204624944979455385526717520611149152425165750750889091711190845355872617614388224499701714937147151034444278693289386600679077411341173114863552083283249140986168724841762234020940054080016949294699199590041676832421987140839493818663527568512406878313617053344407563390181252041665822829937058431147832365128503298589968826631201368390827971571195041791567125361417171515990787160465981246959679639680541071215891409095640906909018225917924509943403126542317849470961840610536665728028244044700009930050600755294187044375556004129744173427905929013903440334485593854959806217197057316406589091927717143839733875614907327912398570498175633057527252300741926362234422127299216683920417297849293000007328715620764842863751571889461875935490533121163038329005421819965599013288132595745153214069508323793101210806429044908637882447228767231963789695663219360832358396911961633268442357994733408966460911547792675655338323261522393764063504009488645296579628087890747585745218688978193579100417730473465426141639645779097687540043765677314298290406544831337030842620754179603534748295249381411437608432307692833720443484194816255788119337113232355983686742166997339316051879227821971977003414918823703559321938147916369985935167608255333163076422560478107074878376418637451048391078230186353728781943503862770908134404732983070553484138797533572567826722036846016959740439582128372026694751010277888208731781059495212241076173833269486133977570924904829414038782285863689207008828234853011436845059244119445465590542439132042716431659872949722872012359396428326228333463812798075310786418937286921260334561258632420878820440560518509275414376746589615199498330484580665289321599915672932098824673805812899741023289560875729516322744717479802924185091476074153108923844909391630959486261889437386181320267874401571331852485798600676773763529271739595614356331034068907137883424749315826604307284104952427575545494324345365039440189245770950960993309228503399303993451014591073156297600159560536825620009135646526582937932350069694031041717533923488738760429083923431004645723215633543322047108981199443692521041008906541404233675806421014526994992691152945471408273154946655012575322615248391517671367147759121340648394284411682773257624143100239275819032715667547625328690106669724811878070660647781235441416961338831889846922855397433643549454524946058481363040629706678748963649453909283903887928682811495352264171146194014176038566468179402960945478582410453564133145732303325641145149037510695097095029226094597721740573779916441483496653706528697044804554041835537769892344578629626337236752882802263037762935476855478030792003693160369048824432220861522067662316507584779224604951304422177429444661604505977235587163521660455630513758725128880476129957302229338886506054165633757204157099557508682582393714234836567156909752116477612648881270750917388176823419940556221923797448535818455198639664837119744313606790726008431469180851142784373213977871203596799113336903504856404695444453861380503938460455962385163927766888639136805333166078512673900126297403356800213234297273657951715120578080912099015696521764260733655935836216355959781590887165284988734891945712163630890753236446678979653610877975018652388136462295482512216029906690518229070159859546823214093370063758235801557867920416682570125040320464528225106867314044171204982747924383486484552822373376825538123586440377829992537443030508953926569979455024181088923338311248260338859254175917821148353039316093592566453108893052265907092771317476312725247297879841310390852259294155501918262767425145547410287992265547956461777762828713093064351050235976329690902168284017471663068693352748011994946605481620768970933078826383541513368799423860419790896600889277477287298470047951405185341743311342877380275340357982222952621295912783374482092623142223247821409405120843180559564463917288387460610467636076428355942455362482689195262578721902413363289757490225731813775194102511904357041078585602352910046472886596386153770246118244781791449243652605617835094624580367019061991247567739083092114748264542490220805081148345573954003167890447691836156753356947674857097428370381773960043997957895101252924202466793519652037177983926244642329755695777896125837317737630387268455209000103958470539035847458634876936661900094844712982470928637890286853079864735565649018443147170031617559155428249030007047199245280749313318026577450130853773435195770821345689304959929742040301084361338029596871209266895613072783862270805884787043339221201821986240972014744763257185594363806690013972843793525672183703913026670161709535499038369672654318314715893785806563384031654207846212718333718461489121835178492514564614062425228781865751923091957255236299953399118208578318817644309524282431187911168653722835793811535184056562810520474005767649812411096197014095435314858008494002238108893065091639722171001701884136038635435776896729173626916867639373901030174543755327423467744010442660428446201464139306210073337318441439101668198756325223831701774628706662339633245181552433983192981824848781826585376186131039973125624170321572659580356644657810699527363273695937043841052991368296383358172424117213594609476205772612543724716944884713259190845832425250839177249081191403444805143023020941914407022262356925346392848817248047687802014262598652889684336446275022387033015203864828126531367495068975518011165156315355744193779600368485714877791488845783186164911602683823851096262407464570562768964674458934943445880709636529702232471560451584780821766244319910737175901540358346088106006480850201728218052218511919334919254237124745255981595125757529939842221445125830534048116580421156519864764450843221839115012437265909540555912261487775952071728386177635733523246310911089528651031269062011681826499625178609400281965733593380984881620753767436147617503161601683545117109471666246768658659418791872198905468186020355092601796059629633306549785719272430223292325257904325022799091533866034585704647542450077282192622868695056766224798111939493515078570323971340649286803625782329812154052385120676468952108624618628020206084594376086314303771253901563518697786927503902929842866250563803797037006359593708123322817150294417079470367020939633189076913332085230459102412325506714922491110384985638229477027536555275645928403430412690294565284698048056874608560682898297135485768419597451719926477957467438642876363956085124928169829023509577965517194511006073868677253121444852345357460540244971287750552201056396901326430903476097636475169640084333009042367690531810693513669180671087959268681668523536680740376343035557931324395447401481676831344122291856397253449168063373478215663821940320060721876646569742466074159923273014167461722989797169699106746749700161113905605872681256394099324567475800959911669967733401870603847944675741720467336762066280358438892589855461974700790677929194483654200986259902002147485949436323237707618346565399014231382654853857684828856757665111537696352649375675807188658717937005622780288139465974530162757424891286563660457626680130372011828708108062554785521405801131199540780793405403876822409519377749181580865051544760911348537542395533297067582167690580114659082676812244693595210931854412194465793490976376427714215746111416607472143085048391054932664212219777241031383917709554019434224121990499854084007613479884650821741375243871547203621591842936761978054701743786253175173481188656530802128629966019301160467621850604901535534953759143885579326906351644165892607292497417434400953680409832819746440166155644466440268012418255941606255413951263693232860354789642029065871186957867234011986683621393222963771808526693826954713059308599018360422374509679978969692078644009073468851701247201873138370608100851616831980331948185947430463752957195725521139656109266915961487730971584738742355655366983543756892032126074934083912520929796439027742858592506830180639068528808598213788994645587411072855104050587518912822015911530119845875097292644699381500730690868090955243641541074982912597144105135328892573893793016059994700019621961437519720470171600431785271296911763022012311940655693486883763691771720229782813531625984006720028797859891344743058379995884688684087143786418495441223258351065271187132851075262043385804504017568641347700774606049088296915796756825600593875486433437602102344198000517383933897632794420274471392689330539628325148875314550391363609890128925375400544599267217493308588877325055931093607432543416060907084214802687448703870476123762239711951302043904019031344036431212800290514782884964254980836905170934773664023647423319809406001583441662077237976722892256783699732198466696214394126468669796904261542300931044152591859316570646548917291349839996942471213447408189702336234606758237216533143467367518019606132026727616794759414414831178786560744871307426584499600606483409933505937903050177259622525573351244208191987760632685378915560762666356332725366754971662262676011141598619024760578022983868891679722125886030482682985597458636511482156359621754476680813358554060724807959186529822167610768497052555077933154744131526546357017320626190718315064284403346255966155100025084704216637686058388241784774690277470114887412737006581075772277337240195272438235791752344185509143369000195569869709035492213451776493450287366827106957597579705456425191781398400954305438344912667493645147071561932226395969658473304932462188261517093123431926875879791642591690172014381090446297676375244071734455134275646911274750306521556548678845819743417182443030285774163972406607969928259266089180112972380642119277144739820330064482029745346451208027015646113505833458359893369202997425144718858555345226388335810708929776906217441711858720764866525910385847244390865497844383527802566325947573488760214178854785511285155532729682087676554918791744942217723276526966388810511715480037635339898123061727389297215763707851047438445586040962805100067323114990414425405518970764535303756218307686133501945200375950610810762226755771191269039521138443230071167380445664029612178131517340329224880429537431896345868359939340981389746002091818401148025017703944544955748444965493361982374116019961346388354198141595645524735996211022587781806769998831371363438262079633294299548941229659070912446949418239725199703302572442579181226411643336055633998225850670983958815123853601931229834975183474840599909887126772924842199994741141321981513631794020827353162489793450470983817361969345698740510517953128971672436601361795796403480181529974419328873113144540890672320476860013422513662251387154169593031993016853604431144106445569751198948287987498325057586864213557901724067203255864971090315028832656380699344687654831321862267363569120910496751000689356187869246248578834002739877495829356788582213471968551640734866325559202177533265335841057031889588072921948825150636950926125238062485617769221078961919947317499454697177740114115971717313838508854954745321437091507339986872451171096247408500565387342819364521026841066787008762886844082146061161764524543656009155153659743944162468080298219234034236409510884725095316275235630714460079264679409062956054403094599333369609336717480996595312184594776762806770173244585278938938617501944568481485824468887347002403777233608201488831750081209562823066199797367538442796221704947765945694766925165308648788698903803083100034810078638297367564619343620913433231296619597505034588792471516291819365168340747329726207683585642503225195599156079250794295276257197196881095416426706775863826437884423563753704200507518327599553435273123681336519146173558393834815758619754301809385207047171254323832577852769119071792663342296577298931340348002826146681249880007265767700506652419453479727823660501082665779306036768229608751822976224864714765809290328519849613048307065286264583347640893157521644745345527726228373681259680828207492458985549094028497458864056093053687298276090918352942076981372920074406955068493890056758073002088495372900050884197220925688305530769880293293436154247049679279436486357559582602614775498533222505764542901342398618576593497277827542694951997239811442086489496508171467995699076248074364199541746704135223326159970107959470453592844966842871196699056746687561050708623710853631441755991372633235897318939992597937471629471630289604356742186727730813924312000046455157586582824477240448688864757246218710240183854094036914414477965720941322414833290694380019080011661965772830923053788086242032479872886489284696617093159800991964460117578257161271169796275667587803422303735964983827984985000550857285800399338494646828031873544789747601937818519213226601502393047603989205766458164860132795435193330257802837188601100923413206523353021704260930702421329700777436461297579917665858872460134196193271703404848350004536901377903185339830779593698088378362099190703260916821694587361727670551281000967993872844150082910093893756473080059796417721099894672891665578245545504999892942361856259241538259352615523811081514427559029749781821271445329367810654479755184535260537413542755243723585720789262794841696246693136240511392855538878728771434661216947301411273386376046563963785700372735860090314802883628813439959357558459239795891105481744936796134999927197069458357306037033322167998746507445166877260162813092210098361805504198427645138481019197222039863835781585080005077218224875285580818656768367787749050696217844545434206574271211683898490878040434139851709977257178397142222836229355878238894316949433799911675710788011596751367774149011816395143502745967598003412271420987909524097003744172045808246080448610371981894458138500540066887711217118552704435653482243829236776977337270236577438026996795307025140056634012384163121265916901113407719774893863987116048932112496177473881143880412993910916551512340583177584338158452029822003939138644551125896328332215052484752220432763491245846894006813644887884313028440444351192954635592235853654969354976012800299834524254106029258594433039309952118126056975788190251451024192306214371984236311815062162070884704846753488347382851134296565893212469621904826518684019188256816096619904589118096396341666274303253069325248522330507656989793838181434491401538947614087365432019596205482842712221119292966206839761179709538046487815305442158649810119696923417588814669782361850102434580918071745897639508588137561198749626266350616859642212823185625315471356664076875730464842928284989304176442565089738484457343123019993287343960076589472970550915911423077231096313367696936756668622955383428299193192208428336710107779479866608148854064456805640833389141898895496992677556544033752462996848112815783027242474440087102169434072523643183241638467852627083925088731999370093993123542476197463440601359868780687876503988982760795360113347956565037035018892309278338785077871907403151831351200649692183219529815340034675872903990363986649032235829640507597309231805300157045577291040784842661721785689932086680081744521585740248243852128905140803654136132160335998279482989728067675239987477502951051621516197333282461585986221114432562101806369095729817706917576337948975378111561204317843970146438037949200262125329159109723452686383957640047194345559948113696416706796158637722543940363629054923544298366069459611435834076718009267082934373973693568476576470685650145776253047304264660231655563525654551587918131184175752765489006624785758843902948447707285126877973659051416129606805565541432696009332528278224526011876051857008692160590395148585145437807847523030026732412818240071267725987906252884246980023914249314188302165985456524069984553166574666411045422714576789742837809246502071252370624358577997020977090738336289891473044370307443168513769267342951711668005912425716267151563790637253792132197271250875644879979132611470222646187668888671071726728941270993174729422673445387809341591359627183740388954497834197205164959276505864729888903471748517005838204199974617395407191205728359548459331802543146014721129913250402464419778874844885032063685554076166166240380195678937827409624223299308138305424151622563190130920294803896155239611411138341704124060167090416476839460548219755283269192558218868326761200898760729906945581764918290291333603681847656595146984523575286964811870252237572601414697911633690333867872920594593418225896075223823951056503157071103858407928518751300330368029342484258813258004293140422847810848402498283963504001910144592673156886754915118699028685319770937299298270924910347238627739212002325539163056218055497295119021350588115275849392073284429348650469403109317204054033276454994099449430872407153925672988464596714408843530892856716098104529340775935772844388554667750384717972619072650209226997080850651601296121897544011220517013187183630367767038117453822000966132388286552844557833345784192644948237398964505445616984302900334114533326008226294661516915356052657719965402257237999703466617710383151608969033537813053301989972276652451361135814557484981990327193971453661540991836140624395002769371452071779667157375531172974902729600018767375434820000156142742797974931102404562257324012902424774534038031744109012418647922640192440132393573318519033783170677186834753184459443146257946311096438782448214122811192355696314357085351724672876790177014614198445239513443951376732469856003907923460663958581031414675409546520562385829537327461814360506343601159112730925327644849597712825237165374140524122272141085401913189588633131123110078386440863154182648957803729147780582876553393863195129386285450297662211078449898362300115458442873695418146801342302682129914427481073135973567171105938701909883132768614716733733265949810244020810031010406498184196838389054969923513711396510092078125112287831244616517540751106461994724339175740485408443166997937423986205146386375835127075344501582055256699201340237997263553625455037923900061055414502612152040285367243818408223457695541402890949114008421043542192330433933592538606127256818121723176459701774032465986743334719492960215129120348398093605920001793570573704382699327476280993836239262480121177296690867161918402333800647784842961825504823158489293645753481216446255297997815972482125142533270444475082784363955859635781945319583340594667240570910874478190920280946958114572736760557550974923408246778611637894403591935072872419675831807960332758473069344282403732506964037056033152260254095109573148827034387525339917880906193437658252004740222685534718628822629138351195033880135089433414190545976379114697136388044630972633031156689104113000199541306728059536725139444713277692909231366554797042204910630106568327644322125729850300967691171385942319413925859360922614032100632942409893680002470524153150110557226163814717637641519570977807593027203238700414808813930177388271968516651117952379483527351015794438159688839488539369359575283608834799045458686192047044041633604108450447298145616342217821894585982632795701387119746551599986750908911797162724117354977772185780159692697556088329890920077558590121576748194261523967743244185305259428654864852479136695717901553331597029857565548184743422248568268704663042397133475961393609508523889461377253823857506315713673264429590007099211718639628263345461075233152155466138669124833886953107155404605320030463649016484354669981074951750716803831851103571088271431130990890955278777156947242535070015171541250556459420217507785037694595039418417124498906118107050358731321698112419652303530860166562711740956937146583954718510316461412710989442339938938195426886156774277190499968670689678385661172584691800713632106661194596429503439015718368901859163953141385735916210292199322274454429204116119443247980187371518256859434883277085012993932932432190992481688749253522173725224840333831411357212585414867952925591655800036789303407387421153603100356867683499796283121250371419288298131556515953107761521944543287404025991123261106355515494806818209561024975285831239475562601411308219151122821747120288032815627293825611512307108994860747581075454815346218110100946823408833281546434138782591812947958516358671072162309579830666759235384178476588459141780526936483865914882365452457602578136384557188967228054628453629189511822673940392608012613852241551372848172385887972072228529884726250497336361953548709383364150050122348651812660219327425788212402630446224457454844525074513349170737254549931702224485122366107778377077324290077671146910657228409343336096865043250796040009427387966456488803503160903019310317050525705198583803932610565243109748081024742546358279049183888900580395795426013621932135293042782369134325046880811337034100254201840521661611077043764945996754898184205427127823100116067044465849221632134746728163493809646507725044535526772494393805919906555760662723555597430099471787052477790878225988930721849747524432271049375945305133391321501180811927717624111585535446197476227611018904842264029605734754454123085319365799247233627637286699744695408402853061510209825496142784871150319586136346072368625279472963528187796767894637648488260680340434347064886265245149204635490304021694148732494940973014654014359318959215393360614975280812146370307550352050405315384340617810247191728705893682020647345305537456660113578136405423568003943182961886950263916910891553990620641613356741552839902882005162855288560195024432134036339410256428716983897255375788812727953261956719147415501537779971096567262104679818081749839792331346160579007862353368675686273135729407589229990114126235969641339642099956801679623675609294295719492951669368855350979168154393184280609717571735327126051894693542422891414748362836255683555523939889261478035072793196810759162535062086671740103537770436014271209171298140413481331393748975067068516488116889716856157663897097367729124979677307051783299449051552993915472926062294548868096179643078530987120938997437412069764731834271007224491250938351586624674620142285783679235626181667310252168132123627702588246195782798931549654194453316393502178054462083022326120182391161234268878517433138697686660907862420529591242008622193607258035574943931230198822377357073746232627106455951321716402273800195683172675834304980923277660768190898647994355273850522398977888030296735302160683982755734177045900807191774635785657075332581701518262759624061931552927943091852686172024010242014004768129442710991932645617843178584800946528745157877891411950225167744348469983205540482512662981438174344398347140255587487810174593920943535852991859785987093222557926216092682435572543563200135962369001686823332943617211392905753682496226533126430703730926029996426932957898393685924931477157739779815421965898633362205948618832750972604475829844967101758018782868942628919969660901439929423919301382780973207059887181469903259845375609490466129760479781802946339194712247721311148766274233117301963525139809424373528287766975136723512530169677665326590995724798022686099882409870222581758299527841850142677317923901859689946103838452961546911785923413343161209908285284069917492695264565127425478345655331358622721949397714884264211533174456423760823883996738019315490474350372295847435561224498905682565802457852413792530411409718772353683892610654212157527878346136511055349044631172110242440756306504009199165676495574695491905875144045291663262391414967059340940336746579386674166738894547883365022587850317191811724703480063305355910589320874256154853291086202876695007190840500445966023238152307848141819975354855162542219452629244864973149074254602032335927206138445610300704502078661145070644275770367498328209064282343580613770698338948602558689572698143087787567432928637038008413797586186051550494089277943647735390912097112863894049939361626747068313219849978838084638507584284996356101287734664737114841805561424493570733848364360011149582927931153739359775354958202351880798449560749313759301965221050999931277234053121183924547164577080089812558026941859870695311819653249320715681945693496248088415565092968890234027698065969478835379790582654313582763282589084158690262736620077516543174882454294965499134264503744825581424658254502969633588215510713733456219221029406192611099034470931588758733048545315291253547460342019556789309366067570587212267650687189140580969286739395577492995535395569494437049783687355447255039664543519451989835471641406138253949799303946639342938519316526452338039159687841794600492238878724475224533734374345812612418574935311168531940115052696761445821668612438904795219653859448935078615833721920604162434710005130051084428183719094012770098865962710094927146161403326874782304283568443868133494323679581210738407843462440334364023661860970596067505406080067361022783315723871867061969877687970199595676604471380508192264714188293391915696910180914047048689295898732330191823555279082743441317176820298617940755859609599509546566522415391442338612490864856847315966378268771519409278949788167834270760269695471628462168514931981567210553732900378397761656525456156144358547747687923134380022941410350530277475504082877831640604703092464719351468418892470896028837074632334497950461870877773238024512475761145205519649035654810141016902761643850626566704761408636132442062608591322911463792732734187888084796886813584244686419445058861809120370588484875576789333698941138864135544798682960301300633169830546710798503075315039162593985234142033012167995832266618416987230377471398017920492331080521840791012828447831251584140796776125052330241632394526524420101305234337215211658198123745303820427065417568175215807168816527997510428541837268869119348081412328505042566833963917778921342198649202091592124420731061641959560882101965048947486418608614755285607904226091546523764838286373090888427988942401577942548193381667471786477837011324272763692175513005136113588820021774616648555296541793298252448033591822782451226839559940817493329859334589096572477718846772258993391576514097971446413915099136266196186422153744127171833586571797363410901280495766840899828152267895080856702421569476765010425125811720246650724630595185081665697581433625095365541451732950362303006044529442176485682235617264039205802957366022869147120155236586206910033153035805902250349636228500796657166194655381589277131601187560050403893512553514953584210641583849422477112933676382892749783831430818323951618917322807368564506764413998288695983180057438995002539470303132740095090599721428610298517069546036472448451799194428168853060251998517622958723693038301530629194033855055147752684301204177437093635464518560679031393457118861574965432329092058645469746388923385207670824465444504063823167637270782790296889519798057569665563775743051489181993006692131461701187841256910592584529308782476750922068383797789628828624656497241115904694576725924618857439811127605449185418047469124963846647941721927576181517160312326393984880536040770440699886929371254528923881936035309994391648375898490890439553554430626897445621598259164783081192605139988639521030111716550228540779060713773198109294697715906767839007261716646822062177274168463662337421184319208613003708341937433858069698026208724424872818172450863945922019282152057761413014122733269585056556052909023547351170426950952238745210648961525790104256884343680831289013920863003053241319013510668688861451836827921931346354752418606357606557342047093000180511070021533509547497080701709308915273609444221422355699163462942444536957216273989757668790888910759453433189974188645971200914246516918209980229506661036812383216573192612034683681452252448114369689358615587386162452997637567078042596271163524130676012752608685039131740523401058428071693000061132460017031207333027336411934685202689283300376896232362444327420202701132635213810670479044030148216026011223569808792563443701937338091649513874595442923033462539356816266590321495847390741309332099749934192621201717398426821475950904557422850058033841249431767233631957572686058428156391970486923988522360238224560287780207533848164619750098071350801866011657628823732742667021466336187265750944574833935617602117927951482869107790604515034816279088314770563122776465319143332833824779328651542304304340978448747173655325263797105075092544306139543808854990514788842864355351529953773451465777066272322051852470890581988942613981552787119805318421586702459863175533557788242895648708863807770274370806163535835505422168367220827854211255624601154619290268153172655730998208068473176850647807121359041690689046035411936933494488083999301720547320057533812047586161443992267132623291483143167532042495986012625066978309346471363987287077980863566839095543624486466645112080968323073334027750908169708732389119094414329349575450453627374080213294291063187441732411991524859373645535739778547549248731202337874993934575426197100532769101004917865018182501460318890642483513753050751969291676838706454452037794950005816178309753020930719230633600927838098750012364624783589378191913278390727370560440383889938635756555739597402885233494558876187911088274327700037740980207229930179443003357757937861856882552557527465481433115383449829376787860716896544072983753507583436903298387827636965613175269911444971398489877119972314719402387243870298715887485907991087358430399537945392885277203284179817479904991155979607104327579038441300028720241183868898291442308951967727890668867323675649459493244369777373518417538692187097552790372659086251713546966310383036265686697883274106542624853376142897831856885372986633970998844774726286501866129340176836148932879754150514485067064051527312623619913524759488322625816420261654901471866049932770121764591195839581905682934394257071512073255886373015584693092753334785976276102545480169660562637913239239558697159810975037609122808572548369373305946773929485357964917108503369447860751598304159276277160618627491866509330853989099832604226284165419660569790751434752876070738499651711921070077701781309492213231059252846754548348764299173721248248274149324273075250825306301831603022480581072765056370952814160752850715646631126479949248963371532816334716772847123221339713659357619444078463602379069817261976671276337990066859265908567843191373810798680920844402267548471620678109419219938215677009536279359676362362613233048731272874371611720676183002650449998969905270002419141793204317287591146039923491600276064570539154422196551880595842917285730144923536720243535570204247932446293037658142921406568285586028660483206533438606342758214973043683110789998420754525737314159401247224488171080566053059147742727866693578788325032800842169238503910360348803702592301168884610241964475775234338587823255698585592570293809781581610565297985508561415881911105813702297984808880479960179335935358126814280853119113385900872482425675638764553927425279794846973315779848846066160553981415900349107373361569916829923148826690253256456470606755454574517818904085257726827956539311643084517319858616058823566643348746841660610708469723380185465601788498421608275293411897228438261277902943778602873157685844991322629578650290898912729259200510831332154677095047891562048172363604171339894873718507236068083983079713131064200669349041862391348303075296608670306545601267558899140969937113097875290833205617237171397684867458915762564666456491619736115253737077492301771393345164585215622494558371689246685721067111245092643952528706521458442163155086134259328011722741042103556041819013291188604176949536455399735107063486084706963819833735302191738681080506769430942541592859190161229526423644952870816119360560424347523824852246463658292539381031173741333387198466951653930321043018441455229398051721771492586075940036525653086044408642776055475580916274508808171290966681433701761592507470645378954945151065901236175455193384921390008447000273156750872441996017929946682066359175864495180199188156508115647109919597005212838944145590165932025511101875519983234864840619660823564082554993274680266393029893188447502552702892685120120856454498206675766397105889316076592040860425317890976154199330129741690945349504450786047082717298126515144977604390805724557436226256958305025588807281241006859170179601296707534301337323043408075104537242161643131440668838801521528602296320612485677980932045589131319291850462219181577723201347820524389899103847139408198151105994514737140989316603326682093788570823122861137734057720837339482967223302706674841040538908790935112568684084924505102918424062837232477280020620410558783290554676946757064118171996098228719918917882122715294360330351650357889208782917752152540026754564194133104471915322104335552712932245227455218948562686803071459678949323598553089070013866881706632756599369132082652987396675257096409585595313098953868423809787482490650009425454533746361432783285692078908478980710744577161035249171963055220356421145761156294501344017668846838416157675168723952385380090038390067725659739887965048337570428639672158834693181743574945703843061661228219218067187017257815070337609784206002372739822532817911997624629751241615164598540741689242438933129141380723108547694728266452587901926264542354408519957628621030459599141952859428456096270220437569041614202771321380816592895403790044558451199060535265807061466764021698284002461331045986048421982135262576178636955799143132673966670393727268534985235195195847723982167799517258130605078471333220915902025305555209155906504936093317012490366172489306333938631709810588198083151862804261240057248077664249331463681545837203261328998499629028104016176563147740618486423405430364240654621663986411575898220935057528334905814901762536430691230783560745709907061135939231349654627057030609811252832537037263443190103384068436601747691141866383959467154445363632171616470763863102562959625035366113530932271472641561286039023574720022643024683777693468547151191629347229306036839363649012057436432101655377152914439575323615785907753783925460224953432115640333684418209225968025874633923807635136754811609436397192148116161457949420441610055210958964054113421912942088813040380869231651759529913388329191307444878216275344535668914435821927961149219632896333396618074482625370544909018785339171633936563716560754427462619212361757474856047471037035971215370803499846993879174847776625343312204502389136609667356832064810432574555697573696195107076076350678709088475598431514133499402902981330923977635895659696180609530436808338589375991149153376406096628402883971350499768755678366809671569601740015327447151078871283051045233007202836492937952784545160601036190926370183645069216876488159041873914577607255409499039730638279434527245095468512060443796121765784795037717011804960059206899704209467518122835366264909775902598862648174463823367229992913616231612271494759224588403408208543027142222211761186810854341945015525647932820412685701701024975698636286515689741572193555352644060030400136208755734379418624954035788649181185258762447678480469213501214835099730229386764975346084706747894079900258347763503672710435150481611113908185789412422958261086945771849237912695581552512113541804988470013814676008321978884402433750283891601201506928580456108875852173351522578447181795324265590625947456857432006041947152106038367953597439077968769588689665909257655766065631476494062996485532755137370794827427513478661869476290039545223118633471623068088291674346144089476791773510169250383933959267755006756710044058581708843009825783373260548837577515857474674506693712395168845058605120927662949277263687916756611145272580095767061439340117267178622062911201353064199857384661391774514655744522982989666058585029288094014542060082541378289201476877580385312588598687716089612359486749267577372789571366288487984239697587876088451039904149800230428236145136198612789455786005901618013007113522482899608084739914521790261697992235450197627486863520192032896562019681067245775939175439920369960997104595601386539557508933380502832850812591181294534272583299902435652091338714387741368173246914855250436292131763754227949307329089921382547866954625638840355722871124720294389569138921344589275897626795015300715016189881353136206161781432097457366994701473125957363765266202100945395842846283554332673578647895411632152794703669412171707376306117957160977214649333057297343561983003658743564702853929992950721698810092183657364860023488298872515687199011365111682534096758427485100267129622485372456760372386177421154775081126848845028667250966425438034738125390668363316157473941027527990804402875301304894478904173061304781036583864937611645711826060932043615553169392407417170929410652436195482006904436533634575892555844970460286680651331010984322795346737724000206856217963627904971301313124795970270247748496929691818945990772218581769373263889352078752895601089249712763038170545660488143098318964833372891566080521047067520707322007326702246480173789968896038566681026421261205898561278502648015146294583590274860308786688574345220902407166841885755166625836192340447892860454375957795863772836573966457168478883728683782200524221248558652498812949982361813490728399404710580800518452960555262093346433928595042517469979606000676799287007624366708442411597743625845397224321971857256572248526664770948247627731815865602902062844249233805735933715099245615729842723782088500638255358451538307637941704942782680359755557020057990732628267192788598863451588726849666766829573250827582158486320257811131969372924084499918388280401466750780521996543443224284594699036776453249130525193873603353796471910813346492377551524082497355128179779529088906453654047149590204147993031518044442070771459766551199908396051390338871447089352147233426884142817717602130014250945191733675923363478804017561763945711222937731872747103270604298021471164366366082302106802216051678465345447281536963140139784353655643912689076436146162816010549893309959928912381727362330178237964412256589229205191675876844193551529160975608531638386719121072767066469754082124512790577409603892884326874093870777832825702137870146432157468854435174997701983440030834578723883822187209749733265603300727576619517935001066915170418118573323869594176976741722229488374731626810485503383138175174620681404957868314463276293566831718203909762995891583141740214537015490117060634500043687336826468626928616889748837056041371701264974553052645715137853407796835999504729317949933000343742703104779617698184061177097228419089259075142648323584527216276552642766129127673561644446272545887630650903989082415713734666155849589098791581626127221117732263902690725851407895347711857959537768750068529154367037296928094745037116806266188270643977175151865341549958378518438233095466943895827422672868999596972697821072233889224229523940006162703563043773780933626419263696780916537501544726181382428082485906284890330231379474953133050683688121712726596367991482332643766608045154539106876925537139460341668651885091295655865420182679399777609350459655301869245219496583878748063982062367771720586139728121556836933019714419892548890104849637959131821758514250918714374171203957396310314737568616707663442298742235948263796385583046258859799772506233473922507502259008435238250586775915642023421872926282564894012276143342488612055752206456728340583089705387543236024809083371791632024444101993300649802534905587976004889274241695092217513657107728263136510301105508383749846246851435621909988611901955372651772448690653299365040884162804501894227295971076800349509280643513303641955984994488911244440301804214458663058520842569628631092739634162971034343927124610901319249735830377615758436634684064220201572043547675760350286626617427232446496098175964650953411592176168482179601200961548103872338132286680850426001149166729171787584392300468952804875362373965513059881877342987312169795131957946274065142126281335031584237883626435930508432839805129640046287954392534856972429718370342907517957337865416565697426987844130447506665898554874769288151408699023665676721869686310778764149840430846290520366541746876638464798029738599880686958977818037272163277098633664490236941476280449500948080174394317595227345000032624981343511071451542135044442355684258327109767867349732600421157258485831714052622168829433013533216129593176433462804422841721666456090532196569616358483265154182089362698270695192414992626358828680568668340067765097261660068282900990413412976136571200523028087941155970496986429772783457484105542605369014739150205298232978457960681334220200587558359222585157684538112550157842936741584983667490798450850358690927848725953159959779044782119878614046618464506985709977202900161097476426785680154592320209112860258892206206555534055222363346642235144961073642580910452794084604607883775966931527708411384739614663625950274928566704092221936834057184828729883211937384362693826642945089639269528223533850410787248683334101973724257919439381277887024609756854985370713009342321140331501353068511618569679020013397906696031026375377173587933364992450768726117759474638752598453505222291868956284295186533363452590246128865512412210297746824723561073458097356464620181602402816832989292607548008899593609446911709678472923230508770098776685727362929616459713005117073450200541658477986409304803791951564111936126617369157330327876346161866825136852360419983845307504360276577402784255455923138914260289078768237447011046170813580190425508075078800185196237990748774771894490240227608118200128204574898173230261801620197440892538715419462193133318256243088529392248096084408486566713453585454974402275953569031767145984252957907388802045129049110456485329266818128849262768745147758905116624131466553365166291422389074432105652456111765634057068331452535906795037268853895057955379988148105684915509441651345088681773667418148073190682395758189317659488554518890268592144489641266660925736354242221488239073113391639170304901097587523093096977939832894046953621101951907711721399821832710947603629006245153875775728784105980578028231241972892617633942798715959728945119428471357178891878356409775354646952295920729716529279484568871276798455797253393700384043452881853608461919951340244562448668969455401723384950265430274776567803235933246873892434155142481670244539932382244787773561865693033614543907866260163521706500644427062903079263321540060107385350731249690254453037475665318364356921545938510459205193817076197823902289769111835287989511634408500690729087641848137886961633802236002866165863139846620932089481632629871952794445068148824061123090673088521621169049511412629062026119874474883535994280685100340278802061913184591707286353935760736159505301919727988557793705760993547835980095709126860158966770265669598136270670154911646184401771182024301414140292551583038190381918852417239302048407391044648341476799244850784355468094666595152096185255433441135797419591202305268306955493723795968387290656883393918315360337304911855027097054099341321738709057335334252927337988176116628604725357249227047187498010373989872311236038971375536041092171598476456504822997041424243378170582878306297314946681665170418793590573522512958476383612590312298339723640189423859566089475315652251777088395718658410700402934346382034115297772329870559796531206519329488972356513896157115313166131298359118710207806747175642592021864141375148604562710189838110900057151023722987616935354318073363250223961861145270784322596092540284047666774450100011187331424825576687616912452712802692589419240832298565664027374359631554402262621585940962443237166285854715736747281405146908124651476790891119993829930284076046607036412491781264775776005214895878342510434937648634020026181745041729379332151394105940627459196380779100569911295875399086116598954855656040059703276340697703555166363719464373281350112445824150408703181739356807065490795814079740121677372284871199450765742215550175980438792229768946132877167108325478653461299336192417782354759880233131283819965300135140103587663651873752492959085893017999761883227192908688011789814456988913777477938736095988884575635648048677309676385864899810114839219175535503311704048448022290486706143511482505482930300455045663539581484951381088755007311390754113904979020725644419012796519090362367435843407757708499311099478551482702592229004293163483274915616381980938882292548611784109735602736377128296793011356702773919929961695406039037557033160483445756859708873946622934378268003387467900801318286286322107925642210561710529715277197497962497672666954185009038924395867692129558609837675050735384696034161878677131594240561232526875652342523825248318396300478689522162826940294355727186647173416238693459022094884056567416451923937803376321959263311530002488132966430211397846256640498581228454351192376655978143802967831791859280948336043023290867007386722064295776176256323355219413700333649510423233984256431640168830097025163500970323525082024156934643222901212147495649677732750827782747165674459606072005989399852314922652790316792938354502625698083020560567631244152404092238364491866316291185882039048176113286025426105999633708327144041629823390931479425247237937703284308694300156397834213826643817361225140045989974302361918088230795835707380123442196265348008666354533995020743185461391711796841789845691072690640165739025563093562631369613824045485653841125285692857825853302829538671112411439649510003404894095459221963277669433721668276424967411548243983408346671138399585794835103415978514192626199468086022214144856406018864247908342817545642900228069152203003098590447034737468867366741871737512098339218539282483077632520350495602053803934267052996618521798052779870168739164213359846005984679025416263159533693290909237053043345191947729005706196161563130504723920649103271472383788815665198630024244015720369419298740716648146336158527707759505940120984197488874730104861961054268312755647522544929355602148482235317039552275725870536869688575232649346186831607283992382211496970680684497408233241936550511638047543163614606064665258710804074290252908027900585849136249793798810167804856668648280592166204676120605184276027670778167810042982188462837095356432392891526398268578829764604603301604117427837103623940982177564452257237408267166701135999200832048024004408369783405708627507603626403282286159731682890039719185618437351925710431175291629341780955808077196736298845442828878413534191237957329604126985132131493710440578764859837949907626657164716575929065039567158134058124351934740794040638419017030693433008365666336367903739175835592133831285959328578773113192479477703111407728070316678747433128303999935989006748606854165685871085817268402480978895427870440079933280440106561904626366563372458116397579532464536375824260972165540657774715714278546684183624402323591554939681207545305984417572868272021707714192531807388316509094960744594056950512299225179307516380102594249159022919065170533769553340317998823196871835914082805753530075514382988029744865753172091826206064026730269473563952731248448128430948004992142063053284978704319430928809639015123512488636782051605969632108113151946099072417248952555025425201559287693428148759381644249014233937036979173210281583653542426694859120145443677442337224616039533581765859110790478604295558352105302003637311908889865629331102699173446753642603549070718259388714581065917451009356132061791395538507708925034969022208722648711823610246570463516447027347178290385590849490104138890471479686718516533845983256331823440610975204530401824894621592529954613627686449365760970328809787471841538212151202284698969557740552902384810234173428277306313614901596447396044465150724873931880057679967886636296706447948510911737367282777879479049930545227384252512331004048145166983664779862577199989725902501754011272629845625325424698645111260598324275778746485921749972630136720328423870962799596702131147988490019222721399193299035322018461027359761635894330494242793499820977340780814430638599441162745250730521345084066817061415839432155418442401677763714466370849722471872870274401733188068588420879681488404241965656442291970340660196729821715848002045854453094397903505453296442057778549650334611600592392394315121690541689484626433719138396553575967435510356582433056910595321208856368411065086084173580331454235645249189200547926151073281934011756259304707174829995237300870428337718563028774312752736840955028746880053549061037004199235347927696279153916573445828029698529532992865784382731270467328836361707768501206028510912017573332382901226529591601876291517001746601134637458615075884645018351063295039052716599728875636263280010825429341382009179530386616448845763729940882719855712447096251766036309762684854212243849687428565561243398813632469242185497724645091227785448397470088493868972999222898384220156082688999815280196744677165929672100439995284299833039029791951024619838619055631821574965401274596994678866854529443015462733437109473418130415331986135942517124993578469050677489345692826764793697532058000227715837356582708068383857868238107733598244591998865570830021136976936071386987363800407253660817598912958258499661979796713577597354898701848625355900180193299239296239827852848304007761444733397003295075531482122886935011363881715079218335381920696186226354274185523781111787444576029998817575527837108609720244700455729415987749508208316012844785836942600411997488253533596308371441817716811297933791042988470479561117114023692524476444780737120690868149131163222573486345037974209745559220667425635596435744282248613047025517637805601499957275393511749565268925729311820736035084209109190014740645016673713650862340949721714466163599988169687891180535087834112652994731047378528652254469366712278692564215352898855528619094106789152192613321680260049633655482258309567203433741792546119768440536056129007844066366479636848354736213176664263715997446382538611647597168848598187187591166033794225709604492871891859597034257594052198571400886797691161592615969321589913414944632350911731933323160232444608150674544535188686923521936810367186396610270693016557920059823128063782571292872636015548284339272088990593219227619003482441139581200248032649048850273665973268430630615870128583090368810630355761491628231320054292666320879419074772751700609582791389083990085859811413372817931273318563872692164278382243136489126387570737165690478531774975688750894791929779967930076969076318100093626887108319875976029230305762103965487422358289855504788689794947038035837701620908576157854841058977870614403710087178273777911275825932904133009857017104962294431775594604315472365977843902471175499276954168986905446257276812900757324664514409188452190350364456217490790209283614729518942921773021231038126434537703635624660843575789821827517192711261984924942682131759593982174789299685788875587154789017247989294807615332089636080028085963651013281370847343423315520281616648515575089377944609506885699760147124336954814579164534036413818924643229948528128936563186078282863991866512822164637038434993981766695399716065526983453988851526493917826688893709980194159268967787049618247684884629061599943676411018335780528330258374929267254349638950378961508992497746701865223259622515734105534032405949632233690081046536991929756071023641196441320049149882497281969441735451951932893076402073271217450977058916685244916852504023986572353472191526319057573909687791403621522579313190654109669672716900304269323486918748494497909040188923484147956339182419084511850655119428819275808461112776880576167090896630300721477208179952211223634692952771176891242326610155250113121197111986167978786133428718125265675440629104472262794640905295800259191377880024630645213340882317677974970380750819337950036502595101298745768246340480706393967892481915603693303675079098600903853038288220757734595710500553074130463083010407033076674987730446179263545447300328172683011608687447336366858211219121766938682886004777697584552430508826084084729126148015079931686830399745497722539649848493825221346392855264624657727858405969333959590287021101855887116076720285905277302670676348376015300565804697117122666721553714862896990860648925489289746812036376086851013579541806848497328847271228117096072466753685111042429019500284754016750132588589094820328043072968202744745217915460387333817568312403196321555186857655273974572132911783556109616139490897773449961441282240589361803133841079663116906411108070562553647537016660890711026476477364432944005069030481824128299791845828319462792736438344448543406835242243297335240600381644817590319884451372114446885990281263278199231637417575581816655927930234463351284730363918402992929120176799069879437650563188927720324264018629398432991476128821598485541319659577458651769945103390380393232017794574223818255554292521989268417040373541221812702710208875495470227256378902549072005743578324453982595909809171604701286655321514377547920561241420130051554891245896189238146842352762774119217433795168908973203709630328990318392030093581829774773052906683889933795657440813523696373531321612903078344598705009907465046878107206733392647679178078002258486391330907374246404086083404707514624403930839234868707925618937427953626139144193797889958474336430116312946499892994784764526036199259223335828064819733280541536051987049942724338364439762456485762197860196030487700674130865293484552780991596299008370642705117564318905655232509085096973378789556023903015056938045365157754580516564099992663585694487262706135712952089518587863593594835453040937746440740899537558461329951575770459700174104932410520468378194020683064504665805271796923073553086589866931571371813532704937799829363128848337529070557505486417724893783688627146703581113740829084612025331465270772275793659355672193994187517474615274639691543783032850983884704162152473816773892980824992045285964920787127229135755109878124333288552539945620653860744456334730383212282969190209199832364878605511862753385034701921332605992149452405033788315211893167873726878337947506144188707148204273489191412924715201062103991525466812973206126002153479931744050969510916533926153316022424797201427531682958366588509980100509259706823354535150061373218434820426327524106052054330900320592704013802594269560624135914966763942284893911967208687450706404892663459427226094664752014029105498144335728041521301781184885725661870579712056003241909960997517098320410399602540675203558156192105491566068369743647654628417710955704880057246163146498762655399085913515549936608574933461128460997273451566174673157145113007119658029229872886948381613851308758044958863513741083382990649261757663999291118590505939447868453815897580489080187533523484959985488446712497830845642282467125759653510995148688878820073376244425273454305358338334529018971169421345742566521593525343819240352135336686151071053031466484487005046092837748062657786652153960269936749302550894503199669969035593487822834007096029997682213542974439626545444348530876839972978924442689353548114037922340219842816076462175265492399834359359494697230987343670470832369723639752966166430491451395339762717429806027849209692292966404011134321042209465220428942987625406044800961757396499434945116078389472162510554825830977062451449335125337692845532522904829552702602601933279963259378733964777123896467014411078122302638561524470059300683586150687885097626421638242062329538340448716204771718919852542701403959079133526423726789387123760951879363610075211605469258272288103778284840184018039041611027863490907349632950290734059247263502154294106308946719721035043008659730119521022855449996073607055881698812926785727356483755157011333789920634654490730757467274208544303672962329558601056780132654845606054125085082355480480451148023585970805060457916322303126065009035271342476097920383605455662983545837590841548151716410322865092052668750845816413679233014909956401865166179401232981995158852998436331188724053235685698962139360758236795781819413685464599534236919293917972734314162864175197602114004773969196695118975174293768396453901080514958571693040166180728531414178490231248907144318885942459445756896811528993412278807610282256464664449718769430946871544725637169921009346344131613212501582681124436665756754354789741841023148111245067248293859490490079732675963090636961686524611020005599274887952352491318509075828547925908519180501006404582282635742020492055050524999660909057760912354815651770581581082038356730381398392999319026770793556783239816855496050116069245844059429127632405731796764222226297546767257600907251115380279155640996696382012454419651004168670313304245630517512440840064782691627067113077663186427973254309175430745299172164766004091934201561661105460820735249858206029113981608716810665072540199853869700509857384267874992852384258766422501401208408074080577553648362343972511822093966507335791909077453300617052653397953333705928243703276974860196606852870612590832767453653212852202018006976505116249526000814838011606288246818473186262743709113064662200964447225731610053193294034513562812879662196571117571389558648594609457877852354866184110246366765102548301011288883227504353489462741782694849148827063054578807754898117129348260915692286792773869446117895880448552336444321661415046044333224137116318874738221646558697602692481930741687409444381363031117237838644444980428079442310909082955872068070415296229739466396361343435504336544686343025856248281714673272568582558559969301186513829695957141866039138273270759000052155949660983539247838208631153420689531506156681416395609865834262891670973256880039695083417535087851401207190754962457001079736289810570344828438787251082089365011646057007118416599154046019249230745409252176706616000995973145824981469944031663647025024586883062209146737854418888063916609264587063489341239529113034796295256157521463474695111314994418398145304045110992808075530842655915779320901069956802697285529057055478723085755733867610722718520711096659685120903001475495815900093389681407966154507164844790556581278098453679784753241814300862463044876231570225952680049830461408055213897472047685149719782453244935455675667335852059435178593753616538790144917319900202364441982288826387886996880846508414016188123363066201382614613766138430426300248096203363428958521700907191736583620093769791122215575883734616638202262982475973903003976719768501851594091702873684861459141066524067686142164014152445617741374392176473377097371889564332228555731232139749002526064385402861938434870939213935335604955543341350511302965196093862052087211165222869441035475815304562022033277848989625941386553290155213219910583488032850784500086900035919245145939315721983165016631453421406930781526778954078173153237732062818127329797532824958305581422479197129483471249113202701525269878670651460847839136841797883344901094540619066947000342513034908563365004138168912976070588175113658861575327696898185838297658577906127736911843757125943508377781904137019491758685043278831442537406646608307938966640232991566421763864310433358582202800910429287786194482649143179608770953101154939187991753249739700335131017365607951897619473620903156460078658805280619487206730325239096678102823791341493639737912213463090099015157304401886825089602145266844132380105430727733921685670840479991106395734405079665509942536151194337478306793476339605215548767049271582805565303678083086936401136284347157657589267978426388237695463699572480774351502823387327837020580307168233990166115388566183651526697613805855914503331464240819440753840403915302826170138549625089234560782085371079330455042971204129521293410425597066696502301529811794017833712171337205740873591358809760818952876587057461651465714479693625354556767379200638549774864348636652929355775399682049999744363968391252454510786447660325921006097912617045585392662257816676999405836374539447814958680946318519185307363803676291131039916077689266729326767333598694587226211332585571454175034407160665064795340215175326018000473395252046758733848009277760069030931025085208452483972085815136775608161936675660356910600731550114626517945608690559286775590324946940988149408994975246694190665366292831914778753882305388900484965711152812723116880416046357366975887001581475019544702920865618563130269013761580305413895094243658818338207118233967778924528983470639663297114486888052419923953724949958850898141414687676741329032465266233911809857471536948862200107312912041455805134214348318142109939571086157759336514122681481377858910343820270129952897894528019434085353227261942717472375784459246571358979568708754131874524875835529776185053996396621649366980019784581268115635662943553100749288347894262260473222798264965278413386986542186499897888344195252200870583010738087469541600728254556141088417009417477355730313871028174983239270487914995554555052084859158122597549955925928000041673481500960570162591044091669508607788474190468746891615253115696139667458888105036546662223298377662829205982496033766625405298455210296612136204494501229173798464444320483418523772122127523553991714185429933009818846965791821018343623055784811977791596132786176014199914628027445690157142439211689901450889946398053342056347370564187164624618584087372323041478634452510714050300164556857143081729644975587017039456714852980525391869568471873689788588575606365096574470606969171358354269233797746142811274381029590464388111915942919847884528337475948000557184563128198851418291768437324254076930424918309348238076748809877813086416507264425713911899773850947875920884966533284042693597964078031192609360208401797219262002915231064162464820860274597687836813220822408731668762782723206627786825087994953939614529407632259953863700764341694761388270965116951808258270508916459071998116037630190860726210685215122329531528821949850025832534656558861120797099808553989926326193768993907589498522818486681541508707511575379496646183160611743589469803045209619744983360799579886814520297170854572352099559268717820225953391049591406359259227354718015631568108857859384038795015765096022330795087453793938823253060665118039992007673344122204145461563303229215637142379206540264854485118993616208749641738805814864594182400806043538735232856466575583955486984526883474843313639464418339651402825066664614475135909733250543054620831570371411671474609836127859980740022750983680529082109106873319352591488904712461362363697533974430488363997384832998363328351389031489392645725058931239822529658950517791431500227753071079340489075094149119173023837101646013040293295399696892796151866381362158836926961734149599675903563556308164443116276619419422208808008977375295543755432454944224881782716117137895854302294976091542846593490195845310197235839824602527812633988168932703744867349221570402044312169842885787133473210724966247664878261822067722100448062985924348788321544317453600647428579248154769621086987698555033209581011071995107109103758614298187111411438545335857544615771810331892389332765195680216321162699910766882102252115574256830467370884949585617926497484823069169738949106735260009114650717272723881182637928229346697152514230148755824583744216121195348214341015787023728843617935625570597592987630785238443037654402204259660461887376762313386378460431699671251976192674091329099029694047236137907561285238194394799546169270238453670630677900337166764439361741870279902433900989580590615615159230469141448069692049614716481732007801658059911562287777772076917389369176307512914519902093326379222523355680576235738671941261342466177370097261501678124073530420967180093234738817903927072265554205571684011092337332538608102236085558984515576142800552727474449819425226952277894669335379852061893907047404572400158696945934291598160854087995491579047250300797394220912396750001387429237082776422804709676500727746033772599395712300400837568297573047393673237334534354085611165370624103383462952308874603666916558988163845775241115496998736448660234316908678169016230252940813727782348874918812946721901695074515440676611260559508100417822734302238308731148383191113825849849583186580102495576865057548351739575084377226945026799378060852999130969987818899466832275189814446755180162094374229691705739008703248532308612559769896506566577099510715655048985408202971888574603957362309995009374597436384547397051722608533380590285982768114852370881681490411771372409167706045017631145640449331011613764265775048865905922266761008640622742506785657916485195110416517187504855860106943507725387116068568910709084585996674496392973732312508571467460206197270860012248406302427474101033456285655469056457272351560304277038372239967348924617790329206909885155819896895360713791903450599325628225832165923610600236452532496964239854966721275712051020905570345003320292958107621718813994301744535898630131761972731978596792580770510788216567545138025872976773006765244149762234388904105751497434826637886900156767071863590235615810273847356455413591520818970636558039499821820464783559390399381543622019904310547345894117106982003393672661205094549170819976803999450467290715197810858543889602276136748122757888394599630092132150873133364928411677127548290993898437136199298805699039209135323700242974949605400672327000175756333501889642815991335649653072902510048288660652203806580386298609526170011808360947197409529971909789503956283776912546753312171123851449396876326577392399584235736967012106647246321890019977430410534312528111830592416010585315614233459714755338905249345908489505792781998189958436222956807774093019445896740905575948044681384082198223202345041412678885699265854013861799319429637947038124247016396995912330189463553855273558645696083739987487204997840497234952033842155898867303364482946659755983524534174429799535102280309858856832791256108489848474141987517649902733076212664698726605755859233542369313064100664762900909809193188714497938695526946661158321515411745969576188690999418972392846021509430380250495598076909021850453965026666650737939603063007667492924340800846036964992193686346711513644179465375593834505464497988450017680291868057875775925945598951363884938086467199269606826807784009312929584247516866685210995726654187470037660833676099689408413509570083845888963801438343668948981838003327544806622174845771437399166032227995917387506523378696294556628649467429452346487516033018630651750014097192092766368659362356358487136698690037495878586993601708199890452033220339318675092025445439334893449286856499013195595037411178112027086777484710384454636084169880416307996959747043713041157531955620246958099060066917555771762024460148651604258701879035531997928118996459064097890441300130675287880540131099134092871217497284385811739349114048910071448725567296540063204032943156155884813200017270110042846284178181412973143133565048669328203872796585171816263020188445607697433423894142644540721238055287629548402161615155571120419345470732507996671474192042153614836343750434667097153898861560562852126307168227160574164108299365831285071334941306095297292057731103012667588736160938425980318305319695379656510812915036434312168210148442165704382178703709013347759808825871836886807973417592458462752979176271372744857552728676281468173049932462689511184707743248054908478181437088033162180802637595313816334038489035367614061995094954095030276055948662082855825981274895177903858922043579383153707525484606355062546959061846726541448680467954071534030303213801989725206240603111083185210120639535019862028372069822941543586510136662101427521360317674615224016605108714467646804859841905178354070060631258106793325696161910513955643226700034103879040183441444850340786522932378386693112334746950685568975793523986098268491854921267228938483411829700275552909380495323681372235971357368672648298465811506963681472918797486366384149388602116009917609469318490087993303637612659607966184417190408358724794452423803618823631637413612999363571082632004487217380912312002514824003901318319813875484212258813077712034503298112143197792253105115164390842375242303935565614353095465443680024403871144791635593226707280990783621444114231303237452867728279916067522639090219775088789683028636611123831202640287565502685953750738702765450788171723355220057668559740795888967822779989469472702562278646784835806249921306078928381607587014704466517544834922950300728797757872298115807481833861404569678382986095627916934537755396104088912777358503986886130876846294915825434632427678558061326672931232195023444190402834320206987265831152629053512522447493831901843085133127312423271535121644046674560708864003062981811913598736216697423478417163799175700734006174905116573437007667700387253585497527707824885192300557562528724780925361442571989402386796691621412821442805249178188287237893643757006343995591817951620252900853678386704094120138968810000333392189444431864095008560217481994676955187304449204685319290077972798130884118687384210352100879244990548309328011144235338914440559027699898653437391195040592732772776457605838116979766585482174042416268619847415155751963841794982020991148769060751716930682536359269545292521936271684916058174327203722792152920557073690561946236874347962596242458289927216252945913503959747434982173708687852728805086091007565933123198748675989353770824658135413712456997529602204297096686286373907149465136309757367129217577080789605415470744007899672626628709735449622327304664699334057298060776432049798817026529455631352377523818311221153865980467851777997957460848366003820478455818995493984088842771775637604183275846630984378484154004114160619721212757023411490854279491010405423491816041511139759111243402860897134391469601195452601132777859987571214580309576753262941144794710917820118217154182700594710534836364587062684793532810465532908776730518571621717412671488025800041441026701601034762847872851154494532313241368056431481107913384546084455038776819299777092087054762630497368778738342803697635464839484957758180679494358515257922546007371859020732413425719363944692190808981498220108834940520903692546761966061297028175855990669487084593751759010835329206281231820008375541980990078951082414322265549776251212293459216141587709514283405714458352677080310508355109062563522484468184983041487174604919662203174628795731764625869579841175997031567157570102810961622620511761324449249713421652687041386514436407047182097527583585365814900824905347092463389028590729107347570748165053302097004586922357667649748631692921599636927709611879877598442991515357754887387918316158059996496350042833128188696458223771604903981225488544500744110617332608034072846456521718025676064551399792388185071239709620181500418375625482443710956116397906014021075378889560714003320992274338549215938695426401110063914109757776897765980557552570327624089824364080462424430533599455584919169124733401113521107072217663220536860675953221235236155326870477202530743332278179217689323192551253563490732555478570425349788971583706465850812432687644353811948175542056087783867384129130537871268689517204487667582886399464662264015646240710080551113393825960555484930941248377420436444470954503326924967040646686656158159569429468163906767376278817501717099264385655434525174842623172583750024830210624544178205174165937446137959391899934173310071532875337713808525297693075255276474898532453457587100754319094138670609988669754130263444426913320511298257797720514420448488017890910360452488618936377266138557222947768953242023212421477608698802761134766938752694043534837626432397179012899780147293863441564212348212624177634015026565708952728013491548432763773954175846745760520022994698462569718019372268334173394367217376272687865423208800181329578184771732435495237926776560654973915578386248843169432748484211367015286983351218859497621097772273486478710900471373545008089891869341560765523047037129349503401709081623909484323361371929089859926971139262941886947700830256800887270130574289912749919675892334020572454830900868269274612870336610034602750954835630576807675347748129339373520379979012122719386310006097306231201919569550819679185573635987029477249788375751184921639198815943076218324003261518981760272859769444248001403695093436357310781770994070442396825432944748861285364482668286505536005120755542242796111516376004406909496049324484104998869704579219507656924828027000485927232336563984728256171364302176579812587422089356208489601153424968531807655658985054137321245308333759474212425492775842900439726147546021807772710078853721996006651309937672132605951713297992652959773396951806886737429933607015936373587363472882085891386679939869318212902184400640638934885224236916898542578050693469325040002759608714892578102840392977676417921206812156321515901082142772245593913823480688804049865299184081298680040349617895845009916050896994145817853296450926103588076601036882159287783140520382603785056321229894098751295320193137229592274875374465111458942446910016463757234686457713216388843227474362850085592784020543042116074398606747441553345527899930960444498036617920398090283068621641250092805454587497363951247064269676120392550885748197762627739916598827341724958640223873146749573382448731463425181500455003997283058672518046454561168773218081190706427122517511487461601812055332155586872418278261736638059922856303208412881448560796413328777911771975953358197700414970212468399400046251759162204378464970605861460281946798707385791847541035337081686358651629149245804834455360137485160689281404315557729091599267959211897582075545041732801944965107505409391812369901466217233316239160502156125308350634266302275711154255655235389532270530681851687470399448570316952510130692617869232477950646472059229573937753872078853956291049228898134005910777391487739364934125617793840079872495201757308611357290885966607295358325171193020263647390855182307627674477745728290255575934875256378336712041523986353760438092584572255189423934241450059281698031319901485969255414085476156608442029223259448053863670164106135546383139770252131582750088633498568359633302466499890000415123772131404602235010332545537197565755375909768198479729090257499891625251688524283900319282756740625032968788684994893550566100531426682073653138422065029145249026183371182926312805988017547299461482072630546481578131608111846773281079922257074014418508911126634684802256448496250985884023670621317687134229670798838538604473125302169946516685356472847178684827077010687298198522799078030391398862958824151472767803557234155652993153668182724531809517962207236662259389088125288750565267320128267482978056732641148540781501215683997450125699823534849529330232738636643670763574496341881904061243511114530704019456261135956179262610218771117569095319739517680097498411155530861255263854472557254566633388459792357249422575260299141758145304586508052494003410136634871542556565957670130161887830290699252651648533735405520155184352413845806928521482939602472400208616830939617955165802302602476452263222459210718587713750126873734745338269937054328444160059203597447716891007814124572273963983323127398953501925120018256051166360362007917652974645358343105088800426824548351114964531820086676588922467726872783307254876805924115699232575064315838863309255758333788531712039731341558171437155591270036314441125900771912905739112860049366309662738746818059788055826486815095870337076630331267080189767304671888488430459839421349811774710450225372593749287469943611053354369313926704473252083446495983809827580242541845797079796376536097201686099808423270374367317861944641715726776392790453157368167338297707085062535553984526609103642823707221293230973842524748461379970792926629159242195248424798648295671209133312662606562233211662682609185014428364582306349390575496701893673386587537589379454619584983767947205123875398646441735749594257398117139667841492405812421151529620931556644965102382834633244350076426468189901733129377420598469749654747511954246994722959152409717633198626035080439916871408564633232597223212541046501476352567104679108376105420052363932285418955403950151541528668332293181266229089659031376255248295436059573399372750771621343505881450716531013352467834528411573968017144708701155684805889496113086340852793077896142781898416755447901683577742177898041626273946971684239956465374247422396660853031150475230278310174347097743060092384282753830177482258891362576969417746322230446893837886257800915053712705959664988524489959274215219083862477312870019290141929857664749122485957070328389135425912337882425327291398342571838031305835068498016156357110768652036463154128319255563260736237249448653972135571657539979353350752777638981284128153222995585551694036596831380141936210892125349597334899339154146570683943732829760762761049617994729391708189152057678948318724620770077746741120030379237556184126056344288410333253680569176694672267436595070557004070123359223720081175073885064414861022503912405583878371106033031799278525866893920524704470511169080295714453945093698712359798737307070244281407806496655862328916906097818976090642552034854062987356896777149516340550140154844265762544912591358262561350582633005251964665049051979292988894789600331791424828099712200319054689266997400793717294820332342463731617119021679948138233839098053630408574687279529843414654846390137646609264124271287609513565732972062379289478720192157394321132135520673787913799499855327176713531471460411829499677745104065959320908654495618389427532810061779769105116268630409967624749896700895439351181406602099981102474910977510283550258480491373861887803634631877999826863785255997846901907567491902913407140991834913476405533683279903010104630979565597229956468968042471952509444046621298287662927235548192825011069092999508181373381366407335271026452230875287457524906631120053962360467979614756025326120140162606017530680220883069149846058850906715738937511338579315877748426033975395280503708768474866907930481099818079895855818104204503974438118552139860221877430197378892240815227944867646494269121867346426254747795030911894965458768563451210445883652668827366613404770517724103826309477138647140089226655729970370802130048417563774465892833515479083436558935067900960103745504236902395012762589468612779885929861041618353365963498318757662656470528024853778727138813002492089179876296903652079863180599590133224328166373222170407794046355518989185666856736623369434125342021538442666780575958164676213887077853365511487250201591963339693230235704822905861716781222602916333758335859551726946464610585048689621510215406914314857123696961495967591868716248284958954673876268971421209827240628739442922835489034951509242270807290320358477088818123410817325606074848709168744135861015923298805813273288123970626526250631547105525379718406728288423260835606326283075720641922076853947811055885694784124248135251346684816013901676930790781343483722511645489632806094067959249616029634043723742751339266161789674442970567772232527624706884822643013814757073497468442575996480023628894945149107916113100656702104105834170377201954082090084431521430596229158189908415897764526482368032107607713229271923922485774731799865167475171082970482520406108478010049635577364952083476979119091004244930350915904606682706095636749836488603649851633153195566904999494980436317380876380000107518962565736340297505116200104046395444759343317172769941550469633009207476167408598239578426399238668963375619666233973228108509861073172340379660877276285441837925639091324625821327758512042063266842237467839884879054080272546017539253895837110082750791251930326099444727046832465260499647996537409785962222177991829507811258242024135742868760040884897829160434776216170787247818787177001390575193920118711402369081755943547779656095557647773542897160189834452655135026361432557122543188477194042727261414812898424203343062925801089822929703826068190687334974217520512471119146354358784671346864510554407636982429208211783388271495198200720182503094694561417088881241500434696472450652137876114190379362001899961431890421040143758459050459480314120709106538227099217207955362130684520814053196867139573089823987422561273332563989034741731325273317625300578148977567632622225519037710901393237509131295094019707773250166939453729957747759913847976557762475321550741292673299203070084492336282205638922401242115953034113973607582389754485843151701882085339461772247092598425099559810694058407679596004322770784282323069919700732219679741731006941108877807913752271920977883727143070436746735749389855901312027408444086343263403064753144210674009193725574669400842187311001410760837375787172221412190169819620424129864462495900209671218176894593393002720681216938572158207909581926226959755142906065627432200033737674189282748048841647186850321938028065004028964501338215878157141061602752684205859787746818373703024484763385725106643289009968619317901901381142114637669723655306675144085983456396297376041882398718579397666699117259485481867145932486746398431628335562452418623936039913718446111543480001088726758331026437023440587974708430722247735233827152632746148933760850311017864003216849776061283755021720529915533780223280930062566113201467320431349231777669435729799538259761279563649367808854296782290280998579569991348463823235608299766377639753213082664289192969790259226288992614234261101452284108488057384016902563764677683318788509139740869783479672197775274163655833980361266655488521052172636389794553565321388346258388333476799702326479551099258083896731140690972310667225609113415342739673771272899612988643574161200030041829745858780282013888917501452075308377552106532097282262381961711922843909677986775777375345506892544912324264611290339440426289995043565531394316803140569005611135596617083498647818834112266419244625354833795190933591442845821777052554621818761043441598672514006624438361480228919152077545998493051722705955757611626908632829765673397400843144765819959586198839427654046463625173282416665186412535575713142558316835259491494989553013107238160656974552594824271841204306543943492447763370333826598903825149251754307496513335296394360454965236861144162986608287818336262340602748824833543412588211701363737154003979362446719123160507693025386820615571046651455504798562842235992302781014919828769896526546411475164460056115953020578552847041782854421919652466016673687413280690039935709250274017163394059467274662566625745432404806965253394332647870755433895161271677735294614143788630533514369390365525325733309062032169157794208440268616892193665591117437015880730663367150728206961734726140312234716566455230015843046183424873092742229129511999954981226075044866196076552963824130116307517015666120471883953460144306298158222828974089026754640219033848827878371180478515431486643131329677443511536761170272233708369550538393143197887983480088830379953147553384048296198069263799299493571337216193251636788847234567580953407113169657696250344609852544254227620392243866311789135390254119039630617361538266088201328065763906930101670301583285189631234220393347941053347275737235130878781443152829597180322994887599638032504128280511476605387542053728272508739547551349131911525319600148092008005696957725864778235010146396630615251657859702854502350026547446230303087314740305692183895749772921055380280121549190652105930265242859537231335439576968643901455213192795738902782346992245240528631003279604048604188912774579702979022316231403299741721034382915237015197883925626735424772181746747095511364171981993743623030196514443638514617912416253420176845035911670683755345054040840165654268275248935352774306476712539308992856357693796636554409503592555697544353712160232952089830707368666458041235856602760963082398830443866477088566991706462206436838932110594195601952326509585764730850789385556279107811588673438069113108201504470320605849771287315173479424833922222879527730081723293275523024344373005924715428604161166732462081390294450085507898081221946653572913421900311015178121151283003506803676660483108248564630173790587229387568589238066141846335109468066114178225752795770148723376855343421370374946031854134957869592015806090475444067077562803992169455318787583494607899596135699900983883939923408885502161232569583752951852218772050188180455420292411782966703415396170740801509485155920055235480076154810241219344854456784915742463966237125805909689880969787933670657807511682238767099031644598626351960898772871556947822686253422014377366627158469459164854775142864755358296633370902066857516571155694019426941495947581046391548382170329986206614017807099240870246071223801601784377573986993327609975349031527624875919944261314037931073998471199777058981868060247620002051352328838595075511313034429342306950535718391522445499614290411056284893232858634663312244539119742691562726939701076511509837432157481832530815588385920347379714015585396374962507250986985144766130067845368279043256494541663858127436727715094918253328653269342646895505551287859385655851576904846371533300064521826447218159247617804448898632855126505710549661238359512950063983917391306462003876555778407976451745217715511056548505631983329521043501895306085506293042183153830830745867333953253682668042297413478896252551354446449444783367631648760396929491106382622894591985991869950700569641297287371615228695200598716276057929576782415484866206052141893186524042575481577318126415371774073363108170497330175351333888942050568794874083822530702894667085138550244723810343100371120890985780390966572791049454052958262324276673124475899227446796967766302002011075540648972661820661529416511521792113659450229994901093682954624184234389591665255577730376809415118795916162457062481079965540560863180016225904931287677552171398988131847613336220043392322725645384914211752344364608625193231843584826579931963703652242671103392432752467889320636486897988123618222049656089823572847341315603575921072205296283977960069188021716702780810087503064536449656181871650954490542394769352279046013365260017804032702349017726573935207666106917867631604677368530717553308901320101476770733493003645226685028812529809899667681126493786991870058819092558080403275283487722120156939197539064750439396338411999689333182893031165867082097856701604618909694028387678577240260516168460879557556225864342153322807231243207609090591453679702801090750804819692462651547343630573268854828812045583542117325818700048788826123156699360857901283822149232677890589156703240211748671496366961482951398279341145895458948211002423514925502300804513204981009000075924316748074915097881637119000326020965607543020303896112467831246138851248532950270267625946704420429580274614618939566978477505134930421587059016515969924832468558291696823763293366911423365129636029839046398621952439138437706639286582528883807843810138798570033169734441699964738845131463370134293198821179644278689894253917859129655823988336258926183618761282789699393955717769837267172315885873814025193756352418155185680351371086054825585559309369815810646522250985285920114615159895249896382891404832890352996971804130559717931806523221042424009295448251016669933812602596493603940115759043284834126438013423633541852820828102325348958316559334413458771333649307416841142239085816202836856909066670210311927953331943371812770843390829746824047023597048971814069046788427322627611906733532490696129302870709036834909323741329815291366190442639523460385901402732124038591862177139596180400737052097630624553087762224758309617891051949168137502517996749425627312917841247956820204561590282997598464191450525424643048523600160028474826867559125152430418145564169785111252882167232227516347365273801471809193998000617782441710468003877734136648912079676696559711526191934939601404340641940004064857674291035269859499895187166409051193127780761219462089234997186648621248600345899799280588303661910489016908397913488944800321326422007411961277697767152040543017860088394392554308490786146204651735940365576389031054705202852767164591715325691706862358244490263394117722205129379085608078921051220709343107888838843129591449466749056140565969831761737722215952995710559512626613285050459202810415154770204921441960983693942095337480295883064651667917017113444151269762940269190880808200382260263538822398383639120487190418206345572621137227526609403652546741025093522716980061275148265406114820273119173648698925679994286130070473368356675962298818702369345769802223711221248814263871118811897633071383799258394600670727033332842962080500503970885924059348384368829086552146046776806307698305061302843085226764343483349446866072895618702974227018665891586782324083168110524827864780044968468458585120817645966788115307191015033061887897187333558193428827834998110419688631093163020004866009279557169169767205232080809151182670866309324425859163993530301924520705984730767474838057907727751850812390549219108522591063227239154201757083715736066574595993679198919959877138903752845717939119324308198681147729481515362518401173695834143701313462156839995337379040255129366458824776957412302035572520717273282735566575352741082472681174358803926072715606296535435637157016480700781718616995090204109561348752580412992028508644777333794553054857918885924003945035611621603592881837241572079694280923456415506723401635018387489968524363082846936945372867994583104535536619518436934844151464200663154197025391975682347304101384485690155020718462780203201388255188706440307480339850440952938420214588392788371256282361446938071258332583307834126744462252203734807731136422313163646799206271069321090259995424281867032841765425869807205523619319647573748922320382707378438641155586128237443120961972771127455489500632828123849314229509419933562438615308031531644561056218514553570955612971339480341309213266136408996661079143001423857857011349178439219636695815456817393027012516961700935463188673589683716274891754465572860117305492035321986327947513796823232201777451387940674268163806606506748654012741730524219840242025262504388086991352591494539724250566367395129110424273119513898156648308505278473092619332110030860701437980243836160624533941050883561480653773312258718683724384997608755844366564950433917792781697361211589850668690597196730440713561316889650898114431061526693609381757339672627836701363206235961469600249478931074594506781768929274238523371621611299708853702995715692485262721118441171846815710480498935127501155213204218624134376820773926993419921667498224159277211423169557358869932503941583014120117668174035105947413600732248041556387554670568601857055004259867600556537391311485113286121722167181245388294890030142723437784779314234844197787856475764302034708808700404175468154167547472739074715886589734658688558360131101699692466054495214315991187231189977589870995461325209171806993239037333360466131978032018279802550755183369080751489018292669625496956432704988751672725118691873145330866250051598024666271025432919505458469131226606024590067984314613471651137760968061377762596991379400137170966377121403052066635243133793001211198335054853644407562088546222832121047416487894587252480045715921949464289513833262726772797493489256475486075182582602026998023026540471001287535622857441326099884803505017582648361112493279401205506241274395535017224311682809168927099759649837174516338984305272589769795194931569023165539117774890739105318390001151832657719992879564237733148146487837744505000302368615733615240176124419308876402147828158410976025039425446977831941757821616623149722088797774153497954693428276224977042454162188774477912928752505567131065900954698296218183987578600170485176021083488489380212753398536460634903029194221218666343392265729918622787501609196893270834391720580251315584298710696302857988884618912277558940044777473354416434512817375194908776714356792659455012317143244700454229165855520312736985066850478180268554563852717476170578468572255519326034943069490325852022005607512885796846201118172063841040914608705786526308903011079161300518943384229591750075516771949718377021205511241368000134086001617525797588114135818743710124629114031535708124176711072933635182856063352624188695837001952770873120694153147990935886132047827638236084490164587410430215389579379081890268454025631303808552560923642697882298224338676169240600522432407887595029000866578680697239104154283875418071629739504761156865018876034561077808232321435655908262065932491834398758613906314526665107368135257619745172150038870959984571318786602960340777744851281369922895920645431469262610567506218482839898553137230232692228187435987776344297849813627120611394224470779342996023772763302586746379429540816265688329389510042392877952529344652683258665411435978264600787280761792944303567820457722855786060370449702723048474967265043895674295871877104026915880272094471572986257692622910373118639969341403307657037326323182799699979503085347463064991995925468381715519105398691755910462196010790590560634900174358456486669016855959980758515880882769707879205765733112497324382149882432166344859437378279497143524771064302540797997385997978521488173466964419478078944097730870316604045840684252296412053418438488960064846992527160292644760478164305310550585527210078943560637167918413539112266923328997242230403676286722697726756026414532112991523616253449160878264746163276573215625577306081146298895600579926642631213513812515727427694335646900132665101025181077191643010571689722619625536339058473250673891349744035092276094537948168199509649228754053919009330903446080625893981270331923062716006137831432781091252798968733297885034007144285235079739661877974236426124966277050328086049996937687228049599351493283639324137196175585087558062507380454023485632031825491567023991170902429317867559989371495029144375687051509421636578738948730595660026798836597900047234957620078752774138359800921657944011609202199068314339351565275361078411710107841403942246425731903931106309452321729535490437956657358301368400282910702882058631915651558162347322504986213893186274594998329515218657865396388214586473534467837068490362926846151507431561075335488040664532664961628527061415383563262772483879509833641303878084216568665788520442925444367029134371070532791590371106847731388056028073374260600660664877542387362023328131932583073349046286573061403874303497509389928442154004196277815436928771812220836473327374804323528093734792352442407029577361373727649063182924891084645995492071016162684956811248383574720984861638246567742335756476024794147100935251509771212200053450334388383212161961959348273723824218775804723856268533468663005661845470693291318436614451099010453500823287604786280374650181475931825116046243330138634006427554324670889879320132438804315111769995087647130098509658394966804787983149412936593819092203568179402467306309051078383685351189128500401791538784605269603211939077052550223242792812100166357565235380626158128271922353116248769771625792141420036126866658572260161983344056425579850160303074146315025479852845610090030937439826717164421207121125364453410178596645294967403316723804807496398977960418672165424673086447591876176789237137323057606258049744305648005403197007712211578538067029808951799286835975296425630693124035591586743238217602340532134553325206891421068227301318027578356960642807675499317240000691829380342255785090497128473652799301455800433412534710925118300845681383677651507687967404324931124787251888067436551981985342029885974411122354242896246856081186836556323310167008074909800819199636037333819949726638952443245292356039558947217587345415033528722269910943640968203485322300746900719191404485012322565776618411928143675989393411044603889025563815802900243372478366322687658099371264169907849631939430684206677828809733472750124327595995782163620718141416173951304874332708968937300896009421430276068725989105356720908690438357386610905525987739943745271036901163204536274634800197649615086259973658318580100051152259812405649473562796349467763170897478143596435797065234131029045679644732539282815222395662241867734394921234830578175914549317272771987763322664336189061118246540767106005498663478788601858584021535535817225862437224818660949242019684430599699019021853914686552733358150469872918553494693124032213585398410204098089701047377468654824837070201422451919152658927851737284236270165031986134010295236426575947079587492442158740381470311586054590370135571951784526903017230286713621878143244176960968052430063929309763431394207508915825297167970024916385542999181224176886887118568886285730983410849234497377599214687581221271650873270940152305231105059691939160617376598309364689170369745237803752856526480656843842628520486495405121046091729440839503467761163663149877505859638677108235627321328513756440699072127584070086688069944716350133443908198173414525680419654283388112001564309273132483182951779001814642562528523984524930853811162558779497097683137115104015231035578817766990791926634908754365495687584481419479091181761173997961139500386453668744809782586309474697525494990069489788277893686212107457491924563230216897532433989754060993738342341030092131583266339873282605507696921089247104021452271417230732162435465985775159081061361240563694620209586097329261876504550259221343668436505068071992699924115499864635660209327239406027532644247706181037106462719006459842307343254711933579054600896179498586172755728287341728980309007116056413118898462793741455688743447063660112248793507283675586481359279396720196789467174908863470436448737349308261381912155414713109367979390373083949687648222976408707398729651653457777845755905807611534506915823254324183686078129631105537833024019593289441756228394693842981585275274542439413251874792636687057612935175892029665912341736996358800905418746596060338036670316435004627617663814200213116207452953086078082632023863713376682413071311785753389275025867504159638085804716291159743876778978863260407756901142062674585327426369333733625691652221684203375699067594649523113238995297955086569160183967949501885713403597310787413784197846374863525253792559882909809285412247561796030884640273644384457736216040891747898396978463890512634280575167542355748005333993242046452403607713926821031639972486937512951611964051461022915837477009137143204407827473497345425372401153018003165837715114059789682246635086005688072455223536228763045671757474275368721166545362831799937874267413406925040163981614498362512505758960574719827089961162119359318526701413153487580743578478464679344725624340287447745050096213612047052689574802013478818462289090742461147366212641040458627704002462105909839919851565622213614238222936361197281497479903812967616673552292307705744970450995900540183031284126335957226135959122765540956535876153139654073732204328009273855935571345996231469222718381850240612735757824528657984427282676760769451531939039851327975877060288011808294311215210651545561714645097931281451492007462161919071276619773383136961370976007701846527951612090660986128050207070728262125050552227619244961130181719469351757391210839967661820574317594950392186770040264972854667062100705503107899197451276499003282562704554554743051711407004003053841818065556393887887577657622909725813868840730376634712441645862078402241879803552355074202891739945643326192795985389246244079167997477802066644200219658897978622421093015269753364500833455756153147335347194126246914217363414261255125486012741741122850732544227397985726924826812026123593137668592418982907986770659771397128561701093275959848168446611673834640058094180521503632141614091355468548779717171751878657504885726904318349858808796190244965436652600780052041875954301131165418362624889335768623136614547404109366691472441691193684706525028854117768765247991273342755690295141075383920476275868867247030039917819801950087734663387368776868374928106560435992020546610294907911139108263708543084797349080869595647812028197823744155625066677888247094383486537022721523792869007195019661836224932184252021725505643937756282677272782854297839165487945216543195192377454277630668317861974135132324828017143853077612646890242553505130895087533062125253855712098211685421059314494557929323592927078081721000738111284609142849699922815397692808660579300067597916885135797634878541934030049339145365350183021834445222337224556141151873936374275270934050156298879145954939931840633446162596979116932448581237383448723706711758097274815806376743808559882344398594369018867258836831655944907325348227487304275781688803551592627745772247020556847921333295832688609523168740507785818409927583210030495581615290184059251464307367219387045154378904020880609716790987974338575167968241898245408420980880529950109052114707745502846051990140944738217081995856909548752944785677616775551007663863172976918092364306289253614129631537004205125008030829850351825243871305405471837856955020584788985179302310921564965255962326007698911234927150379801312831608697334525092236837926946562923411480270236336262477976871177470551614870741485343188152618668869596593930252093754254475968465688001615723579135380530767516443088280614340658346667774551749785701058375734035042460335662800608677056555447052861774875851358685546165263369706090903740822191508725256295248137082200832505018081254207380680506110191978258241658221087286922855709182823496940695001807897954597257822518512802799202184901616228276956127285166358454363909319953468277528463730971135230666720032306431900454050558125554841881413460748273715326387052699693617230546685274073923490906741928306714510982365014253268085402678576538451962515130500275176531829414420441416988891598552728501331748294147146947601731327129746552126754696155941458461002547987276335283043045990340358044395666692902672081831755007167816883991166001672610929685761946240248878821653353030051170220771090202272714557804484444224194638017488700361241636109576274048607316273289372354975386719423121066096796256160792051413691232364573827017187699715239898015018625357378096224187930439100111626767344839325011205909778663361378807558605878068490570993546644525787000259314875405270880112712996238797457277046903812572123778561458803041523443507339698494913147994348333143795447089019619219683006525308539416351086528607116663807640447995968769103979658127341747997262502010808554490996374539744640394042569274738420355981814546557526343703098105211045458646804754918172288262796415581963721508903890792153988179645229063013982598988347917672083312548461197105355986462506729177463414602593122144443062896485558378053550123391089088770362878978550192100071045948268577589530933290768012824631122585218985434757482480114997685561851488568251860931554922648238018275361329049579071867946791184267817708766291429550622571830533834530235661799300836555557958866828147447853359489195535054825736529085032315323595522162408401429443310311597495874617663666781973522902406972743878742915896189307148017315185216197012916170381516251773809439091676176928415420927858372970563298460167630060845173083256510494049986253880462673470603335291120705494113068581620137559746000693610034452888786097519156304983428939759870072778272947736332970471477988903398785724966183568132230194176605436536768028714024298372511880321636656814584635277580515768219403344531706314946200943480250270812268873547383826361462769962380489941327499162591784104080376739739733295083219468022398543593226902647400664502131248685978051532753347971872081678628403395573291505867484030290249899754357879872787515740188280839147946051802371375516997999291908690825360757171989771325685463203892150206176939121736177343422640157817152558551784561875612892532764931228137569396413890454746517023737693515609590749993625102126716707049252436260304479646373176738711021900135937979917991183353298126106476050467218434766590064737848543850445374295233419713294689126683468834174463185459811379322425776670529327812948531565812154051643038037739964978818448494331723627900627380078913614703005689418230939554775827553266000122872618800668017268791032548372363025011095402591373422825771907800882603616827925879606069476062919871011356407208574819783543413268742166995363175935347374542339590621438812978113914522544075230372213394653502216387447179817413303855021305160280628010339090767720541935567619519946199904204091968935624150470443184122962946285230139305004683991373103624224591276497770534602850027291341085615443107582932976560663259141132453852419521090650754071110812566183690145022245356386810062434979261796493706431807708732505643644550778983133892820704092866579883362377360829166616617155014301711873286201077386548289759985204494551729534563987775349607579127405021878600622002519643444475756284005040688965586878481854502880430597022858918738193012634847547740380447141445258196750572496665816472764750878452629227881745847654961986003310163025318928607151472445141371532103851110714559012364982696744001376299606234767099499578487652451293571251291529710441695355375350845079794616166997999058834970197952470726715109730491157049129498607692168522391369601576074600105278605300513384448483690244588333712820378052463204003285151396631340638436125784610767458956145272826870594323230707281015282476429368946857489868733870510256364944678438074547433134256789753310506786603258934289251691899238230527254120849695044130859647809851691242033671617402919299307873055299958134615920139647291936327121647363401049447232766720401302843968926439492165357914020914111256211361207769428964442610511031811112483707206631304301701242757023276985309016820949163536937326641147952303401742551336854496791989609329790314648138906522295214160392709281933706887580220349132724004342303295734501467342074935842800480904752483835268249313018957430568079521778416813889160819972047266393365620897529634366360592714560142054217363126091254765892707755968536334562593062912196545313719135128621133923619873951353085921601100612681926380764001288672403610144224952989827275190485049689947978417608769435387226978420830029100938472196658735912691992930170471176344523865563321818651890469733397921707426667741632130542788777017108976710386396373848506937296267636524399241045166349719966136043706586302417649319334239404171762107882481193958563614959762980808550495312260238701841975252021581022486629301023466072643513295801005209562809044829369160545934696929439586472413057337684207644369589898968934895797482591625464587533191182360390635509921336862074998355241996379326171212131972486980653052701463351848706485268616549097590394326729486897842042598402616169593781138858304579506378343425075366043996371336310140199038872683351308857919525761215384733389595799307953150173044923543010903480141340606456202908195095347943309055199252827549183615215231284469806587749577619448813685537378912358648623372867786037141621188076857729674451180007698312675014740857780513542060740347977489358972492032449509796661743506928235403296511095244896478444079499696119619055546999739389701074846420945942110289386372790671657779892336796837881867322960367726685494125545220272394444750197084071693351169476991633317658912862312491100682168997181738103026431796927500687542761329248480937926044056290555676831469676364731680227794546507134564501225870003135486832841755021883365190513602456496539775192312624515093539141249803321130507648069146193416937069733193365340483465046429529297476698510403434399639362241725069339648631439662034110566099459403994810014780867474719795366597684579891937722774367614925798842205245182710661700000051504864442126496918552758893274523382302656999217555728149239732161160654959744961710801272719477707436151769568843860553666272951390426305746458204054255477890445407320909314920211310297129379196332877720179214160792678803000102271568528833944283837175584588803981325969874302415523119093707676670783266687343028343729383936862637983090332885881261359035183378963711346376542651273888650813326311891322480284622603849819624742504934458024803552979360418252910135380667603713779808021478445767461675913323669485990360924635686228375040942959536348554762214015091572641152484413334439912920126063736485709353069930746551497449446892410187642752754629125162888126620792495249192674986169147799925646044535583312404424365802998914362538262620950431175635264331083068759575422669158595598407920302250568289657009631424262745978750392632633426722823427085420437313360080311027410638678047779302389991024983341702439857317016744876814374757280286053927959898670412855035544905080066278765070470199455970795454356783318574414840159347465746765939149992659070783870540675867625487228047993874974995341900333946646735383165184534525435320802441089854087423547461419422110569352319528632206826598253817861832660132833337340777581058417169279138731544018083668587002393115009185218518898805910724274142646152524415257372289573781926546380326735740881190411242385419421344852679933124921028858715052981125821942963673968272514782747697860181257619281629016868543246838052515061913248111900620343114469933474037753353649838399591288124663262160964720465943507000316748589634937783209660559972008691469291615698611820836114764196259601432745179101395463068129487269636117129300979998690025225297940302997182904524983601894607604644765658018107609869536208973645053055948012350297714303721223218556385062079596408009968667924899756545964876384676698703015981740007838214928949959576073448328342390179263626259308716298352914796888442576718270792606728762810559092177592303135094953986840082947239302957127688274036643255617712144502071916983063546339387325445225003489496650505765842954773429829213239917721030651967999448161039579797463053557956318382498518403979009235013985333601378054766774803354833306982541087606403380117831016670820029276060522865388471397846432889796942481728190950778130361382323486488746002097223007066610265012723745816225416440205643286428576896098595782899347709299361740068188413715543908541071222088563859144082055124661032540383196847439651924090114843180315512322120998654357033777460276196264917507802540279334425634959562876847307965338593210155121373563232894448269832054197076626112193193000505418360906037328503706190457417148849083057097859408942029180273997579601514492297575277422403204834520850553638458290945555588516431037348436594598695375208348315218836199586706958079809724208146332119063815440010491575528147482020628043556162737045214577306809022287832098131798913912779331141988893244723786206852056476342196980584138733049686424323659067911453472004792315444453635473963662303443707622073623428171736157588161179588428836192820007896868479176615776540651107110018308208614044497773366561201433763634402520089238959109645584004699232070808246542974003448247659172998848581801469014870890865948990360611862964780273433437296592033937647282166099734840136037751179323773420030811215939348241006602638258903941782628887123206680722466137187035942952889041046183024554061058641580741809688687263951884616291890900132027159340682705759498234441956363554642907840854063208569610345506431386904417036619900783189436213071732222204884962670225222032211877302927417940075179454007351466100990927576956630899690291947322114635962754194774490646250204483782213035659664188063720244347393120218533335143608062654733245325084948907335270535865866999585184931826151356796860960075063328719583179695018909884992478389287224069156788403709572372076621223475660205274710438562764874011421316671594047652547899503726993067586102573663287958977189747936636054407259662647535794374736980606301378032433421915010415782102688409545525753277707329540307534176700439489602168305712533680749108183008449250076961723253332795799155364577496379130062442927681526416718610798304210856368959973309468529056926161551229489159120867201093449655418770971288670332506454781930725115470070559043746885815641377532849190109398652496349002306843814278979032363247030422061610514017249510842189841198919081179190881221328685568940849225543544327118611583582668308762705552963520008863630266403355753279404463793823221812980779279981703293256316179683249977231699769225935728370568084993576353579247061805117854914655036463947879677127952499169014221836576242596986334083490831763518836251732276603649708347115232043804745478624779421397175178499343221745758728450862076720497530432791468176529199138101845986985913630684180001632836163768762676778523531039232966068520952167120797129735663267589003244497260718780523818758663153883066135672989761232352713515973128844205408020808995162163921542436303270468860429984816064723629983054498988829946652842345119533938359566526883481021476153994747050396956026304036232149152554440250621796544609391991970267032449069887954812772316148453653074781241674040866695316824843060632209100814757172458122701793919313660396384664147127225022859506909033398966274672371590801664462282687328738224007859636343348895094971708724531725906726025426014797922370903898450305417040192656952482115363444350172891745588284755167719363820454745203410455437339608276426265649065170431918427205461947829054041286951984287164365710406274562863084199573837919133459858316765173583418511264586069068865245432536062526788872366389746702551134258086105047930693501159629690568275467857987188239422387416905896823400196537744133942427601623047585694497954986973258237178207075864902371679677327668118703703968276986669135966287159249014298824548229770244628050032553352733163546098188018004342455114991551747275097255579959869627694220753819148313521857895693596100679898207726989165791399347695244002781648022327420443187645576070748618806311215676145103105854922342651867140180628400990132482456802388306503023863101653766010156325626256650469098311668035571899002072980434954670817238066327584774952563284452707452894601454606020790328656109653897678790182250372179005142213987268337353556044777475007743705260977500440194207887693757042973357664048356770351968222960594981033508947800787247987926113036653775149951314502856765441807974647554702715743409490651092590238171720204210669037689110725683375758242496427162798505971947723122178281310842141508709936980896055963931391391805372378029465964577803055245582893623501481106407900939896054821247814295310062474126017776457300705745705217671144742754526340136743344060044385609679356748442484712685894178743646904212545285863688720915615709935997241662337913947022381575453031564537253700080837015951962988024745259488240631433481119679309527862873459063598583165246851594972702979541950354916570056202149664277944300037379433741101185855650894952622427355080157518401449332793066232007264650375980965497007650512495419240674039889396446700821289469832025917003566133592140026989155198122600198197411485057954042721735991457526052421706519300879786069859703023980743915042636899535047686578088588511692123373880804228716763961965178572402232690629623885022397015553947271019950799310135812713036452542460064553046970504015724344826700348969212221447615681710653433439364867827844239189333414909719538852445669907087548172170177328952270185950077264306989528032271476202393646592793037540438222868486640986148272468684974352573622721429408847342461762101152817216305760381995699465200727980332131816262279570804219654470610808052308098686982760667055263277605699784778188167241407986365082642059479181387033210161381884558843696293156962790418089208106035456819404042993772414645508243763752052377798436141591192634390454790728017802411992924216352868111787235997575502160933440244981723648703630392562263284639321261122340661148345699728936889895340640290918346230986867194363699821623220381672993933537295550022131933793013138251044372305333339121272346696781646613584632017834940291131020466885826325899707935613033056971106440303501503046461568545625823741307039233707786614934967287677783444722272880304711575897905925171624502422719586855178201353412978648056228961257532205115097910612664293785809360047491332278057838478970622108233401062834731846378943244088465043028860844929416325014830937670105365007163485848998820679574568084605289055465073017182964246368690286917490315374556736190194670490849518362821888967818812400732819534290884291631480634765876851709501881300905902422844932410022848281235246047453464040604437793171600842219250216445362054757127027117579433333247404369501277957768121877850212569579145980575074721477196756154893689984293478514444950672055573939296082801338141469235215389682193489987020689595185252518115962460227195193849774846358833018580753201527510598786280601390334574146833335147257894382982590180414068399170813470266142347834959646339229155143289930237997850033379411044867543494615917277322943539666047245685301087042584554811174133467900140956231136364283216081119898101303703406958031980360085989632747917138955886336822742260725359556015515049581634696271639585604318092996052033056058881220164914623015303624364399011306785970547377036082944238513764887617414767519073538000995123626254108064356712600709871910328578838669163426376582229148399131914576743526020818673136026468134308220297817854326018658756237416378563544488305394345572178284922873232305867148685631909342273599588196254535271184687346167952753400205911581048612199137697817530688340385927491228283547460403225579845335261411024067926727573138483931125689079978354730101376976086734389504623546939532073239603347190499800064481681842781579524481396903357387830586681379043963952414511298735445285804706022665895661297576448244062620979977648214602173024398495519984940316166022502099484879341744143002209936981060089701893514140478129994049609451396122994594719909631633532506892203679687359398450217602846064874184776109089302696227731701322244843799601741145979009471966841538513453309189254416270859741112494033736570440151631529363814017820651313679820668752164477575577992754181609208427830621498633191236984376448139709149851726196799504179601707502689214409568881051592275340272333180001632081315135275536682328795114769371724823964123850461765475366086642679232187107830286297007040984094937310604441332383936676948007653782268858239636722511981424669383788966303977325452586292278353765068637135990515827853577751077445000369907119671567134505048831664036739407579023976009945358592623061414828395881720398776809564941880022830370084775700150956994918139017203261026715392567258365310031678471891650671368188989134386219650848899918117331692381112801187661753839339744674376109564872418899639035720215433266426199527677453996946459168162837743258011207390543520670845823913774425866776812796457611231263564472999956777183673508410095569804507449546869740016900051827652027741957941996172092337011781054217016320599359437388595109608323922738400678487218155847687442454018260122906113187682074914030628192944144819052906336926449330562071087535280204894885666588324973537099733224907072551363150096533748252926812725700889857843875424714388976612985254059733957046911644888612548107021818236135596327141205803771605818042647526894845868389244640550747400606163364061129842347682858740121047243941599516817153161460251643887916517922711538222212678552652934392673093592480993565109956541683317520246742688247228995110460703153720534683244154101906160241020496983118417771038881275129903857483151979743390259089887443013472066777594320768019627546233324028112714457613854500007717112431719904832576438337821652229214769702550501462078528228576968591421102874369841012446902387221071906614517624546512684805442551613682959707012274740422421888120908134131880923699852581395081360958852924729042345204437176052252285969562559775803302150926395059894507985405027336990153050052163892749496967178372602799821180846458989094293282571307745274535340616394936543679562444117524940610314979550123805183658412668514066911150272403797866953034835587900155073701103335617839203974516733436371635018937965397738479499580087057366218565978212823688859276638283123548253360149701070206005379157956080073089510599284113197105216987210323675494386833861295945093899017249819486386595220005924935686592270257186284461914721101771621821487788295710263844371955745989063712023881112548408155478668778950734658072006431167955934397821997328281776136705367855231519892960767462746044963265712628829571869171081298775757487846937914296564683638875624024237978047747892114208235204486663838107027528559781689923853211999123187227167514909076250961596421262109022905591671371837608792618906601594040343066358658445819369203954843180900161892695905451426214874026534277406360930926047108379427766603222524628472360250897729167995966509898603198679449101912850639424486410267444388653951351914523244210106438220925950080271353173634068164551405797234411446308955864637325047032350375999269490562376596526343914729340492754779999149723723748451680725420696364002477941116587444410203318707018786705643645857162126718139362871527174454653165186322374608155549470758722874678485347297061503294272118954991967876536882467666383071467307521374962639641272706085223863504522267521705176159724250469931100247347465429661440257646946143730748514094001973844868087423474511149577762754562998239370716796976007500349172206325655615465308584801646756532442173165561740281226459186089335399193917589390606352485271413992864759089282527099348253608955896617504381073912657114201659738491948637039042252192714587516259041248720965582361602759972906566166221429908273355485786668157156389886526656871000559046502057813677611346386107897162342024631206543373543952372871962793585117541288183772335731486101958587111494110082042519426611616817078546132142760127862461663729817744419294047798295666719074951907665396135703338535435520798358382134423185896360284962586840252168063866304978981403171256478615863873794867055013716698542091688889821979793800496080737859760327634662449818311276715314135928358718829311726700485537758930303699789850133421656305386693330064001749400604247732638777239799263070142655053758885380779035782309504500204715186432108850770261785804125872808992621657273116440845541050210370093707863718573679271524943680905709636955351875907673222069516813049966576795822954493248750677201232666976473781363449474848329434827958274495568121169157833498785383685207305936072992796916313914693385147527934005253959899727047687280752924593796979735976126410269309068442938827228394947913035939203525684763556409217366972014626635461963191957719749019662525738067955171862575039617544013468534035028474346998007637568067031363052246818833294990445628767812484251816369642724383927505025799903582945520782355626755725836086643861230197461426313978556788700734906350649296536651903590150700677292090024986632497775869523715066968645291952856148543334325763578091030987658804281334136491947580319156565394653580907668318974436545079158446382483027477997962990111551430503036995508052331900727798380268400969489861579551553953617178449742926983866762163943881407135959655339161462868577636031916021648190854047000846562442199597777033329753300339347845642983006030291347953532686855824150106855438610367097759538546567903424822382769764434239088735856344706762135338314720066899979609839320583761071781814900778167925857156440009322345059048206481910012496008464110809985450569498386849862590441228716951595080210852124790984094944343115963016535330897558617738017219026414291427035484748801324317332931400376679205272613114361648176911829861372678689765959752077203413766612770911716445065463235359097184369225337384750488386760489695279525438802650743948304294565880025561034258041216056509024609197507172491636138480478532163428927654436008855659237546917067862383089932718723817010907126885904834180306976226666717423114052100687819138195800964132218622804494525195195337984188441581171559322895812802703461466470284484156921888418134645140895223464242478562948268339835171220876926933600192681424208155510755715108339771290506472504875797311455451621734965391179214017453446230231371928413891856913505389950780912899059053513052930609656256814660380967359967450203517690486912860860186773507071676581935561956786048446699287897225989085952156070140939282698102087476825788543552337329167095458050314950727359260673241955468171548069408582958742995030841247055070191157757022811167842642494986792718938973675921203564697467122564530511663195898516360015131102285556610860291382344464854005054909911730647559047119030852495359973838458589869340520994158600824195594887208063620816335565982201408772186055350898031704360206195582726938804768730311991945823753160954841259656520062840004661369536968484227879472385203839548482623591195506883762342843705080891123615348498531913808033980808335309263055191093277283734168623329560119559242829064642400798470439878977262850648962048994238976467527003529541087940323973832995658098269740710029430028734475894238064792926983567014299654673507323632517888206126028656291910577984280886339105608817416501852180124085845087817474813839652663889025183327058825545187857678787675757739062873833846640113518505691773713049676467040882907898949158646858642738935841903556190995419847920418711290888696580385076039866055337514619061683722380714153510416495391262867056104485795247158677949286322508276527738882391508398809297585519543071520625567120972424157298123126552263938909561138477401030907713407052983228756197758319803871249284931863705234735073439940607574023013838654851881586069729301222054274876929002720769971905872749133460453546034188282848412428660926984752440840209723151335951711006584465687174691110519526849780379235038594089670130688050436632082474476236341262206615988544988325496427791788618836194008791533359823745342410300338121756620637072342593585425458699301795355122464056602749309050593977775907094163104825558228981633255016996075917412101849285507057795482883867521020914555045053122552453211380603051124424543285950869378005053703058739292426507689943768830467229753958796408931811792788050944183597288130914101445855625593139307221476567273270238167478329297940599403719286865918973836561921513954285446246426638190281720882099900014242679506413000381179665778090546092253975629418206126505121461057089049124741552426155214224333499870569727585116399566473798184037064066905387602527350469810306498075085952400492636562376625756776926797303620332870937086913865747079816242686322186867516925300463462802012779684144433556663028477898459772635486267934890098572272291992164235191378139119219048855192130630968178940820094272559129877487832433074100057180467015621304480256970971215791803589789639547543482700768623927055105279143373566097098811638529446165139345840065539020304066508636489395087123534684415005018257668183361207661331077444195894022461091953443176837869879640328494152031174889646679334042058638253713469005984783638991937886205234985587946521429686142224574210967586393691642325614455652007036302144122749483955850636117066843674314943038484280413990441838688543866197759699558258607619674034542459133295435402848882845346728924878809828316783768014998020866754264708462330245382242952028769780493148352037063736438943334119034992889640733624419923742844363811134153196345796108697976935200921088979722714079956453118344514879422040828333656733443291828983089222567354812872830575785954778690707761159577066509677470155814908072527579780813173357509144484203843388925522954182087334903723715021113256130027190416053608553465810693586799636217550325950087074834095130133323239424967968997845416107834975369591523353040096038014601977506679127936284041351684188417932276635630874378550397706393356833203439849032218094336967445411039896673391865143372857015409637653188958911481758082733200774586337682150854918387956683517999078799074319970949222363445162380935352769870639425721357610493429140321909916934012970718506231997529504766095322375928886669836354431788430056577047469467499956520366093779678934437287500745841491164734467740803696603743070991624636210023647486435764806448731360175013388089648065060531188893552769803688790506609102836718714281193504010535669042900399380215947406798062182428890300224158826429408673013109471321687269765831099113689477034237234587801330055277785899980614430532383832300639765488854635740607111428212613244115720819627869553872627756043032336914366611424157750950593259333867956060506982907383939202742743802900932437638770965317930308315302774981181826475785398736946713740699665576074204821582883453454631965773736550264477001478307531687344437169871969628353256401061672217586728167533882216215283779239423795820745344927830556584421489528265908531605127615666405995563725763010124677108397260666570769412461668192564845221747882398045019162626746262766341271073062313643283835657255920950645129293751516388659307503880638240534337433011366740511292593384580629152200474174239179133390596181453807373459834195915733478419005421507313154190841056397643950454250042831897193968800015878754278764500642423493155016985068369661820982023656203827054444975234832053667105023828351379533154571586974692479084379373387512184387471382078437163097118291942145230355004742801060421061115787390571060319540895448161459162288973114214791933472113395145240175065217594420621786660603684447915801335505030220840860774329357580131088310723285641809893445028027628064071552400868524389151200059180199867565151156054861383369723528383655273447677620107400756725270574768478689098453947054526715129853896512526625991953682409649790939092008558177570288223313986411984791206261531945757735627952668348070935430471114996984293414195431148689009995446800626565472125554234901200739371467643896035165578411971186622405131935920722556531158382079901057534471571333143065125288614693533350676719061655446364227220953266645287439514655694894642840820713320316596993687414719316246332435147198388757328400824613917591029949108551331849300931480368406689840801961995172545600069810991702673093309665728090041923276291380966363834270065408179129936966549066978409497468746454816400775363319171462041305517053323686369816144417753016654378241133914187866808894418996870379106961549796475138105993278974460876457451391931920668310490930824552863399156108441430580837610272967298578838069565401177594183564911025946097950141779294476185806833995448726230401868088188561575433265406467548594352065031552419716957271695831330543139382806801350435284299163171497966775409195444614171618456137291741326071259265034960544936210319235024235951646588596347659681030147332785366713027687989764447071075067871043282473041695574236212226255731271875957484164828187422650711837055125266389976199057855373052607490055531097689778529496051218776328055055691830292705522407802596631816191621330851028702533479667935945406338135825453940926636451123687694309406929400572333202018910581568584727470987599160244579346762802238176560491723268298831593972656077047419726075803424466187260063716361370979762171139481743636159301105277057465717579219212360658679328938900158807802230568528171896210953404839327124314839013982870150713488200363167372577467739178218501264221313117251611762766694908445096182622524276859537270734984212018506828291998924347378587082276414091652194603402315079442660755316970360521975490914465962875349487524118091552922831327992063695605969022924301612227060693778609561891117590611744376579967869218868717444181760031972064707774469355136291629301017092064967611104549804993795326108311209200687521838655424611835078250459693756621253160614951441604539160824039609473892376260657695187490506362252561050594123392328847505400070196836218093111100768980302114181543061978116054762626398754939878145902960868352487048832744060670063576412201665514049649862888470566748924467173590479175427790997476416221927000956128445162580094589767742603001289861189424606973491334925042364196889258824361358728808011280828374764132109688468871354083688567695658032475014471352210588289589700042541117390875570138112035842210447023554745816076623129261580369177672418221844864384394012369258454731753780473083550576624707736566600906572537915157871917659334623934990428218581992247138283115881596084333316940868086880654004667432899206805327085369826226373449881215177980290750847229032485328228483125242019022223361480570403128654301095262271056072086423107843085504160477870294747697737265092518090083582999928035764415239955567305557346693885904639658064955054737890098372642776227556741022816316164006789321667442085580755576409300624321892679376885856819479650895845047535981891806636873271198423201057587195314550566070918566244230038123364720264731780531372607514863447231904664444935471333786428498000968519461558028110536494523921634380742772500548354123617938705951475271790250116476040123501755556133973612123832966546448205042109148273096431323596999502305651649915618470445464517029852806869613651654923679135606847988778381385149759413160856580026901620001425998924096336155102575447140315419369737981844390769474687524352731790698801166536173251027594145798598266746513037909704069658756032313759401256488469471763160139518440399385698136929761915326370655155566455636578394962298375452003878014786741205229132244078452566646417924774608281929101312696860926116444976850518222812288189448310541564487816218661272862880807702906726482282046081579956788643706874518173233647019879582057840102370303380469293699412068444716830131641273780859322632317260862036046233959040531737989194796696358042516571194832790514567008455773334930548409484376452388082197062652252049094681867782420445203462380709249038191093328462263968314205068917198344555745954453994796799018381214377688437264758699210295900194095315386613691731853504253232302226355303656917049403048303686090725692867192821646591520826954943927155352099955812628017943506013836488901043801225174050642268360114358795611431769601966375962957426904418819279740291265715032236929931562686388856032302943734558876980499113758488398372859807495521040910957845627355267235288485146871280112997040000506110966117894730116075139465771204289573153814661167172337126084878452221345680667488740337535348690626673786685116141268572375900347945890938917164094165526298227949080346158888041834793186509657415226811876921803937731015103675872757466909894879473528482890667147481636720766432604688979299675149730050454213187118328437362087063617531573823713865983170971737098133490914390648792613617349221998301209040247237320494579581688322888029583445653875036756333367212157225493582578516301403184278430786068481626040636411550408994689530503078976807164250823170978838252691617818377677587417363623031397546011581171292115923254081405757567752766991223036382723896031894783099128454829468342816601644848111129596068530899795643792955878549809912072135650252348311889237332892102195638748670011973221796164505379097033690753045295531422513496934141681135613731412415909874069779683882078800713496192432795899328134407406466315011138638119931720880879303093620862195849056334652467144682808195715132005123844353094581865929000908180318055860224174248361057703027337717282177111508832071731112081550592641114900849845727169552911859737228892511198591511224271010168383213834340854174354494045572000210508250883323058960562678015991054748407530579766419463371036796308502307536541774273004378804542919594731677566827120896480734631209281314688389775656454733642484248091592886295651088088672726917052307267759242680761150051065730463189807307574907290462904573661929869338981794985292816675234379721396241842454768150849428054600633014670971885820170369966394439353463082959368964143463739744705433471755042753986521774393322757124089665008219509211114680787087385700429723153478629311760889208405210648027705547209918980505247202439757033297015325494103559780380608017533921778189429291289550062963172203725286515818910808784683508837691980615788288494979252555219200551764395893820460554267122862556293159088592306979240211998474939141814049171998165560435082856706704244432526728112115257105702069961605145018348064873891338603310031677093007545575065807003312324569783945098408828563590809508817937276453942823099595278682800266103491312760535037258083132658368927235003162858174805263920966979358985466498182143144610832876294997955208854199412113610254171049346328605267266182330445688980470871720172213806469096971892799015043398552769331410390502833300561086473007316350683283897407335945590761459507314572487107984662407984245877731462153763175854114064427432646959833991865299319008065857371576857894298219099669886632875284203773951699100896391549340259322322647193543322651833266501548129738204662920691883711818017371527920696609984853122880293724554051524555659624055700419673152930390833060612893126454967070217980378461077276852673131463416854533398775018293196449242923883359916343577781799776082899529327310983098031895177214964853345477526271089925676159380551644998650933103143476547554351352400812927122579037826396934795420796295947701597459500510882281462051634136739348325388578378628668539716936944519901652386289815185538106733251647954565092359671292106580874363830644791274513024305008431240262826864660519368819811715340939088773454212167158375630689977846118519664165457413953397330263306081557383302902653561313406640485447178873909969608548582682721991046682265813667211473579436705829957838038709222080748342288812681395935078070095852456288896433367305099690326995213870635618652985181631831411995316761864551537363627099829702061186932125922800973813775003806512763476843742564858343184226986945384145823724106285239365720852626046288344001640513896018468813650141816366947172209924499541319196988924741213480844494308926018595473557324583893000028235999484805331836335697498130801803251904571089181877749166398721287331992754229391204827760805355576413446490525867864757786171418990762532932467212428445834392944692105447731185533822717584894017142321984908615815293511893494364548085760040602122730476045784028799928645877433846442528338147421044903305403731955846300116534785254067442145798231312408264431003627868523926924903276548219395964621393014130547325317047944587750450352248657516527329335024884567604483151881137949562970265421433899289670579653001694629319083280446806967554312499254681390228168989866012760502305620998989645157943719646746401244774636473444639116944013120320383315782917719742554039920663884925784154511313400058300074904956762552230373270311992306830002585524159756434820644552970605681724759257002542773978960877299985037714169160067485346528370796672771114418579469369670870226723228567835642018788050722851337537685661310041281762835958307711874528649426109122631492119722769709872388936580636833142198720641114001695896354365022343842895055249657086482904024575368551331373978770693452295676203405392434688640039639999003727460503215693961130287954085286412726339696993650211831295041498550370789272682285452487109055634469867770374215022109342036775036837890514931597436050675833708143217286577136858457273779494424308644758263533684299537838818764852954065373375045266422963252571077127942078309513621816975467389263451055701177522587857388604505584482618943401568742166393050139302577322140315217936806052641388497130669205283391623598453309052351886778293635041041538897752437527354109152798921311716330386152569517938399205516843152166274551615261180198257458320653513113495591092894992764214318706001043649634061759528582172862431895760392821914248425368495567228818644966613855071093342796888072661481722583012482680805386039901980341200238270211140795381992238295861887558783983792284005863736693037028165778035233976156861910114333265715029419481812230347457732516766048478927209653823485126875915081214484710236271198725019802415626300446368088811074397927816026022706257242094101158402924886137822558862342002556944773926542939750115827311312066147991237118900887938587376328024708342592109642612027779528549758429123998229418116452598928613159805847053798134170072302173372513601222423793314357214414174424562599415883820242356406880704634175353428438006665951035122690561169801796283666888905406368342839887770379878669669614780320834592172324702301423612103565748255945695809002569793460625513507118777097793708400997673704891680211396485354175125216602453352668189625963126042326365589688217382202006239850044221250560184417934067697127821455684956892800751163983305579715543257149317612027494850991832406041000527158873542746582766811636984130693656462856319411532293905879097426022167118751504657159591995033250873057343022501534756714715438166440729817595831020381250653611593895800600196406251755721828383971947931984949114301003877238286494273193097373527716724179219568344390395979788015235281882488520129029731380947489238906022947477277078155622592335384201535725636648386946302654037179935302046375217422637316901321894222997619997227416679673003977913884623996284630384042231463998546976396910773941506036547680826430139872700136275965900949302651112877266447870304074723994185956395829448403269323533432490040166944686035106550854590310125654519534693752944530349222776934478800446868745300985140510858691610296939874433563995971500580300764323472712429612550488679414034547069534167746297651675960638325607058801278295895880772547577852162032219666705426329588522631985831484769116953447594333466742472235217051184338620658354937373979375399959032504747908594887770140923153844318869564261299591717255597637757599493358601407175381964678401363154301240888952187268540966812205193980343017235122987935011790891065192665294578853477703164614895944171237253848343447788629587377744743087285709481454175535472631531319369813676445012233617184700985562760231907089519999453282781200252327176219505775254980627364898134469533333012183372339923431380755865196068622040985537500324229672716321748095761497391195411960666998206621809653994581762832322506039851220238494215351054650586854268576724241930325161777830457483891713718934602507313652689567426629635185332650794769223358289250889089985837482478854937864415854218465009782238057920415326170961936661996478635265763877770109172966732924445949903646413444786951418670504479904897363623490862635946632719070839113851756161695447683933042160714460623110180080572540758940929936340516396554602491936041749334660777055692815095834263977883371875724784433853388455943018318209534318668512855599478506460260425232828643725853042980519614123860244625612559884165893325375616932876957592027275588477166344790991393643434959145933464853044314413901450503358775900022383447269935277902757528768933577714689937309272975055219312697946551349664517236809199924207187166500552279128748431857452093196670728103416744986232713059154490137902575877642948426274457320968558889753769692960229445592034154631272595252692971134329975960456038209028069992484835186082934790478349398602828811594805077918643715621050279870470043388779466460990255866978357842202341254141522085477676577610861844687461226521829721504045952126981648331226871472129085672520339449397238815613324713443324301242259645372830658281285678627159900548508274151329590908154275046196805366043756694742389400400817311461751107440260761631112629875323079033723495133963044265548687457751602899669580179062849826077533810338322900100923574057698793017126355689675354864601469818209511570823189031490828024219275883642519471567211166333520362950592946796836638467804480868767799002938615986611667596603611469387317117416023785360306103953093558616870091837719195309232566405973601981691026653815034917469770885852050677526211604378811594993984474174567561668990731330396752172896601245254356689372426885281095757860459406291699745886544346169597132007322494015372715489756812385522115950067845572924533431949877854869655852942731993916686303792711999661521571359596969678830109168539159617938117311975875045065847620273442457953296306732371078420089847461872607127891125480166758834491907065759020500785575650237031097687676826687622615566213545134939143276222904665402463636550176853566430296624639549204334244423307827100483666802613671229792891538308925581136604208204845807396238495299426127995705991674907254965921719116103442002267067383336396877874480545415436718499767674712127253318170725316862315038346928095462970771380501051644485986277892074290706574389274323997269899995523576281354094750903346605620402244699422483341248924067592950067911478649778832856394090670850255489309892550094832366726597513777549364653072439871326517379783183682214922399065489714611882351653224285540061022654103388545491330736886109118719382504520085453040662843251258850231809267586511341476350345054076957836995961977924876359921041235423040130799302191312486951469081655098163001912683419184985971139188700773763097063519618445108485679976961646568972268965081249293476617949886643392941074997509379479422779126421746780432859404272079792003209063082131345816181480882878551951530204926610145456864551868322144839666865262701030787202647517589023997389458678765643997233768323523166727245625238954426727465617826913940542472794994107152120619148924325111758204547405115350740568387453458921853284834469539455657090594699655192880875709886878460515564342931792751942288562764367570796728414131397728343685097713110103471848205838724244482820475014488726237001472122256285990953484014102335652920918276968713962549878899966120451795094972177330481674771307781176233282523022164318563047129628835279467000344724835241879708443727979945297609204800501967645367975191290152740809685277460020039119737513963900525959431904540694004970800279896050579117239370397723043363594252558110693394637642177064558088399944811414380114930539432952289119038588183805315027371707326750745852139031654231509063975969658181367833218550278554482452861888187743025049967145125720975083677670152079359893633183821891002180522721613132549496519127089728523651142094714073907763170572801035715798999327394638619691494418476627654268966531310562236713259931030120004021254083260977505291877106438893529862090712287001141942758837251638237361074401829915132990744687151148402767154083344117577768498482365486560399164460317992472305432093002299487715858751603091999035597905047686954491617633374693413535419700133346252625860073360308432741163616559629610112834654874091846278309561737653303417231856719858906954634198190529398226165769134061637117991870914855965686336595307018978133897829614512782626516229509041841986020509117645786084000212587886817543280592845158623270476238419978673191763988778480484384849613510802673800026589429805566113356527804836136353930749399515199011186544959398729773141212509500338134687624478103782255280310431220424589418785830859377355878707977639358168745427970726605762613643944689013114049992727684327385965356005152281689457467544492356076801927235181864387585782929209560364277757500415698213043015237602389886291697830175081464992498395661200508705037192747353945702243122034353351636905967962663458247405303908158654194967004628578172278142299827053216884043196674831678158872202274148351668846473649889539756400177901930278701918912492822766734888807242714110936669682062364732470517862127568974601339422506228993219812183781370791372399771651065522433889752217535758608352209137491692349283743983817157370964845168912281330582727149249007017596675938957546847835376668399821348269630593273849595768204510297167139646788584770684870337557959923611501183715139808759677149156021497295293311251620305791152398548599032858898127665739343286158170710923423687477313816866345297980562010132939505953052501874463750357460508832557888999600174743673065519175563426368860684368513683683295421855491627987295011794922737861556069554509492950773984893541284287724549169423897464420551995983424224309818185112297160546822812731038477359555483803913604426872253326442982844830922259334379851266674155413072965190933925990714168431116196443395070264365453078346481270314504617127994820683253005740782585160456802352931336473346958143565183702039245925762666644448634835688114955114264276058650537661769574033862170363960451549463588607974544045605117787705820559758407219147273425637891442527486569785397787779925730808379011481798676609026595585838167572608239637744963316857423921846625718191348556474420251591008315833913421641422102231142750794130254230319591295820053738481769541783154881583861002345315363156649264667910232998873300345502417649409215621120680557707289112338010169619760422179870285382958971525641577664640121297343504984191831659553654050967235217059657486257159301615989318015265398524604465317327910612635186578675764581372559421030896758210510053740152601558220619827540392034154723351394245209191096456462798665130738361472237353103736457708570361777044840005798918373091286302095735348954148365081935805626993163773973205284488708465774839486930309515982549711181389304535843598280950933216742252511030442955822281461940079468692806941224959350385570569305456328679120614006834854275653458615788659488512239608859690662954731473554594291047947127917766886061528014989781394457727729485683189042575182659718976205052165982466897700035026438097638341858169199342743541500497463557731686090304415974459690514220606934144111748374427742011703553138674556723983359423688883270866143310695538766725547737184546027547434939372335673730380188365899107989300690228940001190499684806162814434730687234031727346192201947699938018079127725896283786209197465913667660538339420120766772916751220284485145004347607186860852700654738374882757836174934988429300722115703688359147279537463758909673621548769235232335617470313826403459715367783029489649616986603578032668144621549147272441711046470858462597880462485353341043986696614486168406584754939008844190548565400497601513418859642840477671796443666218640433413682487021373645819362575568163690555826217684540984396397419781666527664062834627294923399526525004341493416147460122935841915163776927294254060296347239477366011339967507117949438648888650070857663306333342421063819486124583996436707822379622854360846391792913122091468777807387061014227742179548099178707292127321378256457987721352482945757072472967205797102794554540813138646574236282553091624157451512373221954386278549083901643833656726399203221369053291612758480270223936767407971254912514019071824618433888973802181620427823874273779046485506621791215774649801146684266376120037509937738926212971503271464493709806275475391805806556313162406746794084901695700266136301497316013164650230620884825087334186722479410157913103881740351073712130001520495056628981210717320896813357814414596695256753377003066241758572870777450716208525286685757083280260538622363825646084390138947646271013704586526366870572416358749104726393541169560248459529885206800486808038486241259990319146254891022873660360728065246240449447146768291543844373147001357419600142786569332104810257865344151673926350186121972138207412914642363481345059269115852267212795880559444546481746963543380608154478709974183598727460820598482067859409478023904783449942512812070677178492711121215181673825978804113582488266671686148662366456895565884016467316588698343547340604768975252197206905593818072721499567564935005429807478129437354644652647728033893182855844646533830882513654082141203140166704731184241373180255035378875678650577145356287945013538116085589216747054161821748908551673885390580314238413913573629291281901941849327258199240459752999278869537657134724255271772302611607186865477809774172183286470640270445897698955716425899337573349476518683711834580258673882297635161908837502896939880811102311545289882674722517075956543513542747962919866904820121058762255588240852111950429327485020822841941172362301029208741910664455998659217718199156582187147762115539235230398136112962232145680865859158104388694339923496118391888639095160544207016723220820377171782099610278328445958665031367956792902925441944391973591097372783684491556772423354779521512377288979367919374999055078484920512089623964290929210172943915311560356812505974772537353172890599634892566599024952465166379401389476921941862871743779654330596906056347984855044356367710087244420580942455735416076477276118106911771093032914503118551060238249606449043282979471173091981144298591506395856434759832735295583346432845441231551385773596244088360353565776162840545756633427470092209006992867770226005600008525468959944419382315757239028697600327974603618613053684697514802664593897497898934039188502222947217314778598135676771692380800341904470257527550256604954041481380755913531180257736792005145924004918230648064337225807072091071668520125032818571410998809052870853659494804845770220391627587213212747272041076877022141645233440248857290302542125033924470380009214629628566004633790302576084766638157446768312511141939773502885641402876918349929081035565260473188912740974330015595088927472453091985613902332905185887619650111728392994157134807559074084659015810362905807941254683806896816270384441697042876839965738300975042743755858008433518102666366025170094488105995738430931103326174150427496109490581785806775500201165455571562662793686435675127552809195566786445868410690862954435158167161053243116966669173322062145420953535137341744321322416405529632485738881747987863782608097709173595926885920102961812909377157118025024853259751430996321228264424541318537065574169339701172219729613709449788132753899586977154910007940606310649185596712615192240951423227293153826860521915084135998102477689917984383943204182491094987598151382153374781496262890153991187428335139083487071859597577002310416854550077227807254113759014753429038875856830420457398501323159773924472725190336877447495346927378486925772670763272218722363247052386103993156562336443253236785847917604667250335434577483638601588989236810709284828860664597694466876996643049774370976073143681739475323395780695357884235701264758757204134203774422526723746209968931416369848490956246995070446001535933106790078834148268002460503188395996211471944551987168920344605035744726285783027027215872583043308180629882804985854966566470318190461555280573866198172251663424698620010719050362441522105704022440353462835434879216707121466300923989682771968604507288456457091522536005898974554550325079783195021099781863246854692516064120943383938678314054410524503618059752816492273595489738420264794468131389325427477409756295252410010129826041712264007342983577181743748299283748705665186587503559489017604406013833193922082732446252674458420771442577993203379487981131758470411381520034479765914214329575177257093161092344447099170072969472022828354232461219443855099096798027011500261089491018782553197377201206036400404869551103913538888175285197273220806232576551618171085092185206187109609948673355697742959657987829055744973426797926105127850006872604817592063289272872583148269617187981872628409252068823126231584382006571374621249022756632263039786081620593434176432558754155330585745085999762685361082289418648483060034557910383859698752049452730643316826500989998692102428221045848786137959421371164873410879993311067939860068617375242078780675321601441332241018440564101722291408144050251153985568204033007973125979138391655277283699331601963776052971207816699846792919166705353598320810936335320558258879243401065291524386395407957521072093739213428026157604310458733605021107658364345521693403586237368945343204443416584650593368970560413216066222138512626718526842620039957751147010732934738913709674310387858737113660665010955198126242383640842605544876517076418745427741225942520021107239723190331673844259461035376638291998750371992568968251266352613910633173664207933815386242067851017140021194691103059505995721607515110067441968580642891338674141533056758303577556805279523430862229581815451380552463391346331946152760644038202247134419304969827644341738302347610722493762030372140325834783628208320830359040790479922791774785611881544884969330299312255313376508290857923597858201766018287892273513448329834444499722039565581053506767860087945771950475659134552006080204800645290934300688346468822727700538714907240034126728229955305533254343405931229886942821353680242996920882340411564857818212967028175787664256760461308753232186152185312590920388596686945906078534902538813744961566913499396573148289560558875058671578038254203392257097873915886449480912262789737753811833838147129601663390435490790807241032786340968604856683632279623998652135037270136223258290767458928975031252594022077626883511216264969448358498992698175700000692209245064095665189013227672578850760012434377235957947051810489499354815714633940676171139345891018087539758589227263145489422687167471523647369785573092493413087445806749554794275802160707198825494770957738585957139711608878804569465806789302973213812812106980179647726543441815096808102190218104373117626410080028154224732814019277109297514458366536083064909317601754303320013623731242636121220863390984478518569383272857254441540987342475033502213527305132037073252525341938711566252511677556554618674890727456037778913630038803620532652854929673975281908595416130239803991259224237304304454468901564886142226534008833152216179045500564485569988587012946490993278808245381911485731709333681468398282910531187652613834876860040497013323121492318965670389582689057747710423649929107148253460740936884259920044031862973585794665272444340260169340343352405805568929096681430734532602156610268665193105654833334996450637060835393698402173226883639080974026638809260572836970624820240119715450452565824640984356821548267023259600259950921081442719213511907655532191202970404176143774774656258855893118023446998555375564803758796546140458777056120189704402633295028636275753461447632495860945881404088500089734158358726623747578457142187244061363064459055007723806454249083450677260559233889558866915458582584849422625652270744957952157600153681887326901309521990952932908214018729630785228618240696992133704441178136857559284478532318415974624561911250198077677051248906569330786012623783611944007543670061322628035240571546301472052142657345478006502324821414463374160361327607322014582068802154750198375507111041071932253771152531137752869820667430193146269378296745064966233260143119406052797353202956198779102890648822345041882894526124898837362971668075048110817584284770790689762429716373045589964507813490342953444902116329472579632218426044181377202400571989712145554588530563649699193932706270482442210548283411062524593188265599863934490771310822142672306449309403601923709498007295750800141657597328766945202589764618569806326707240621302307126321313319668739940622964388758265579014399231906418549434463372806689912876952649842867360750393002034095601616369852197330889469469356911059355542269996491520343761754881294076363256161598845602666184340792077039379384969543815632459587956603325799208605029065288476347277442160028285145142574685447803373210741860034997358181372411053487359648594719786835783118106886072910280888200443590055177310644739277535008756591355061870699055104690556767682731775037881996904769326603335956159611250070223520935531904171317875800118971965543612832775747146068449109150213353583800418357276044307869683070765190333943181252540054329924208490412275940459270465571474916327479400778752708408064817999446698354971240353355302062591050264722884336337089593767348362154638036388303780161466903117660562955459270022797765771957910393590043450165174307415662847068030933514648380022666168600497032975743330641542748020956065223612800878423044465531173906343659420835886866600013778796802121891253024709422065272570281206304179873053846675630417443937482278327245759614758136871578011794657199702190858166615494582118576078682231071055594282914795914329121604546639861071756699947152255352735514670720685240356419527249355868621761345211304772644418689450944966680053869267620077225430284481625104488687087745361185218536489255836278791068150683537620530818750588658449171322895078101590642681415392630914329244717731519996957750328306021860908406246933166598216804882888202524950927504904767109713395452544010096815919564769906134015438901138621246252589620469629952686766465957078506231666478625541801980970074685201822688840504410575912356664020350053553809812081205408191368503677335567987305881195663900668517381420034707334981002899097131484780065556386589025758565539696321406102334369637027131282299440363523693504487089961541719058188144714880008740240600916341404776568160133004103884801600426906949051958058552279991103307591817113638036682137799322217673963779385047971862645243960442228957002601284890462171640424177071378054357497080032971394863895801995547940225399436628969250501452236483917650951553454522413761287374240655887608414715348956011558121297826801416150724823113491148637837540197012725943946852917907899890691366462479069870406432498217461524058493472597741353105164768407255692514206195100389025364564726094274210041740628354065302599169616240718921522972019948346359812872537174636324696012158586418155057681854126984173115985227453978836597348374252384235822997355636658559294534317065432377716512655218561911051949366069946496266371742804575507167746669826180650566804308584154024837807216367411404426401044619473185532067741314590408219162092506515758530014171316067411856096135532607518912921399702489855596801497848152827686505403683770469534675098907538315130154924575455233048397131421441529643673291248044425054915399988283969004642002668294692858621199850922693280727561706530406963261775160290254140204844661368609779899254029098916713897096860319790871973368359970885009703205319311262512079159167492098822182879091636954132478412815560712780368320736550634360014483976717162928194569831651399153621011050530725474779718375609179309875830679114790783321946051444178988178207417513593884242243729864114686225854560204863431481409309092965288622256795455337962681086151463152388648659622067476455800771447686249047590352706000928583628104570597955092584361105484729090428689410651376008866007473595710274368977042321724590504809554677594835670352913270514896619724340081739515577043030704558428245985728479876870350321457865141221890062742346540034348654874431096059212885079372394352018585679085789722984240051291068980481756566065706852421911627143740660727539912759619762049635277454328110258309420452568696718004812330733320032831036414921668426253709334880463017995589812524213047105558160210141636355089022023274550672398395606082941965754801042080287395489057637548103167706053683363267345117844289820918140587117474456577738799013604688048491963072188030525615848056601323661044447385782372565459014592062584296620588612853562626960041337941160401158172887976868894378392125245762398100053527158497497934176563854182657619945700688754939559594981168150743472159766314570621083392247082854293880236547063851211059865285670920298514984400093416646259776551710403175588544849052874149833263496981908029259876715271035103038269000774249540828299447550252251496499830138094076071106866096723293601722529561340912093240914401035310933493049628030441157892160311954830233136074263723213076023543795081189820395581200058559997249507793705376897125240835343520072471350392066606362238922585042525957003416022431770206794763887534772643200850517434712736863932095459689740220604351970538319401055590646293413748424189568388091314285323695312418002385151884562403870926469862609134183136305441215934895475748022123518889202406571800920428988379729273413816561849135837250164966081895582596540590960813590251377172870651581640656515407460835750321703042626681615408682946413334393383995596085782226438223104931469223710052092478248006342005610533320706914776531319481541669335221907633205450023085235355353983464665940300574890749675171075600946251547845473329159577385753823138262242178121565406287833877854424297828956065040252501874466124111861293541157389112881128379755084607724392320697337360847728514902084561115806752153663657244127554665475959347426681349317582106707323808004090462408744687427791930567251870229377930917237672810722608409053198868717085540680030450125651447640194833031155560359955762011947962681352841599755725634166261929831174102837475871026030267035298292850798314934364815030319103839000620814000685898379667335842744885290888675668806646318740932716902088403065447147357956056108458587511186208132587682322923967706529190712836557610749541941392861860764736690800526204553811684863513090555048809452812765974586005233519133295202704784844005185089671512444680602484791634077025707355241143200920130465312420255764910014149664339339598589491179942673586482231334973425496427317833206985753425503984897187197982487165411207518148350465890819571946479288729270987649413855834430239216693654653071137423932644740538332572369432296333397442088171756835388992208233189164718393414598649736711880430300434601258512509612160704528970107448388989097090394055939479626057864873974227007946652537730976516015390394707989735016887787933145028400054070009695506887715075738499990365355007799572128768592889526255409862295662992104158953794271243603039027139467917539541949513414057890821629761918974995935070086347934581419161088212134655920765560385313683700270113276209504017466905524835310459779910315968176342466692629463051183525444367013064122103306664855681379027458754331933222197481399188935500001419381657982430971904408282029447394358580632182099737941758849957597127879645528324757078928304160394492314063339751668973227639671734803451755765637867984521922842521000371588550774767696077517757237393060054729749521000647499800503414291368529872383294894953853254778690104196445873324336812515682156143336928134803558651503114487824291779342964225853723782040473169554612255352901069010799797539893989362049156209030279672624756414601271252961506056357413891834114786874443875797496193364537403697135364554273185340722993430774004261745884919234082041966002203378579050219911881317740027223531469680525969055809283868992592929477954913716128804055052037873664786613588309524702131309399475774642083266371137105930487088145464612691811609828291265414246544806049660931482261235639658917373934816345143230722487977320539441173512641253996779047641954727174591631647345621574242011145252910502030518690971614317340547763457134854556366034006375484175367156235371019551789345844416643935894105830166814622255215317506814939962150983864290694719382375590462859579763262868261377782104021468848502671380045605494596298622654258721914632632499922490948784100302562362223505901926755233219229174512558885304442992821686841866872700323109498027574821429858143674906327967470918584636564025156123153650226155376922671064399020404440723264131911455413422837976982243065139385013137959047867644365983041637619320079491282231539424285703492358319850588243854761594049929068199673576627549769987370164895810417476642220966400298589735871384749500141152055259619102296811523975874359462071304154854800991632362063987144762614362014175005173406312782332362223239803830174125654849388245078302791893721113557834189558170442063803541744484096547259746228777602753172645356394071007467822872280781842503599068498047447244762960952788942190092519338364819099628991390715183784457864151151439377950809012310434889917705510328759329108659936556319819375095616631156531396911041331572787395899522967050625911313467362499526646548355485549641715015932403078084721960064645273923268798738782127716664882555166702066470670518791585998642700444445575521146647615568000456016926628607443750801057507666297825070996486615164064082390420171946621056999556627143120887886820243274343799655356947825934183464581447094808464080900133878732904545549382959567622886110848763210339208163904039395750239859982367649203678633169956370514529100858995293245497184536475498879106490512117691268865757911977069639773138754706248091102006435224703689717403713163591599881961433394888935388822713196930621042921194982204439222992504805049295536214734838004079190812648519659831593248587615458096436933339764436613765964174149216829808287754042951201136497955836986821529890106422228888464548384039481805748319836907870909509552962124478500680944622082273197316117824107699454068444613217818839132325542977191188041922270762237130822763201267633695397851222366355286799802214450207694526655667134692509263824698600871820380332564624833631870778559181704679969258669796510364045071312981613177188004014584645696250591957535101317657513066237757296310494190608954033495951854557749013368697848445235779295615000604812454450043326177526679026182137725147714680159524641817854273437448371200672582275191344680013157665805326740589347879625280659110714932954931146228548424657504740187990502083220944142407708942795818040192297491164652515708088163914752271322623201718270539803428984553275556914218171281681089961301680307078304020141304552259999556856464545519504219356495091463992139521718271135389868676604717966022327501304221339916175530632888027135919940398547432278461525232838586714681087408832264010248214341018182406717609486788079896216447033116350900662265665687303539186287214009249687202796486794573944521812841442600333126813068526078280821816633328068381669280511936054167801911971993799061360822394140468879829728115303949297790532271552842920363725761732550577600656429275002663028586031726892039684226156910819916933536422896591922542169206573944113530035771833125753880070332730556069791062971624717969481960508584333467850392843689463843012221109059301880739677198559450045836465006163341335121597038915839382952050828897746860689325389991141199397242272238809143192830640774250834640193102659525739301717718230962328772841160410037901862163013417865742400540885586470010069689941847880565452089069733024944103195952550252639548598147305105565612271663290831244581500661882958024476603977936379155991932707604491878893632731298770603629674193699461773176573005448591812192176721396599010121460620842931027830201439272838198026627764459194370239371291112616548147723889939392854285959601532886105651736322720576253517005793221201416625571444710682666632862062908003736106063615943931619451439148519541638850883103315112776029516178732445550533707363784742771193359791442634955063357004364861105588233804285831763484655136578155012060122787793514234356359671809700598833363163081145028073717729799056637277291975363597828644191750392562977351722796990536499539300452883808832168889233493119186838459693753242400738097046555755117582709009621496865333332856421013691425770713914506234148024647161904550646938955027752385985898522155734062387987175514076801925903986190650037817352056751361581835558185008865596319166304182973517237851621281883347875161663034328773959077282558398335944975816950064565586395320646647867091482005445453991042456491053775387068426106771197924206753063367109196111834701309566419948951672645947819505301904210939964407186647327473076446797650474651412695217674361980588381828141331789883716531143433989886004676139743466036758419206021097569956146320887406723964909526910482996669116304300491276890789753680528846401446823168026865279063177748462572606097481017104358281754787954814773287091971890421832087325514279208497416497799364784373147868578013021789257254423670732403884005374212136929382803495949424751645292048561296654760810817667580753934746402593958318304843536004437695002628465871977661258353975664732747072563541987122190057124437740518383415830282963483546030885830784477346768218992954310112988625084925166454242697521296277215835304370152895283111155071334018932863341584562720820795427167171428476024874469091368216064831204857444535131322798962493727338930735315499318142737621523310772225262528849559145834498605325967297264941927924896961523263721442674324731980510275691889678920302366826441264086136536264791998136627164386074252507597976256719066412440669389909296362217870049901227222830533997257336082295183013153196836651452375702350394640542231155833939262197736618353247793408739014138521895007968232046332903965857213627926934536746243810638919740431468221383518558187037687441462998333868635048607702068558382692217130282881638553350498389962566437107100322509241624222935370876812943775322099559003904951979789358887190161539615423632919783696052855127320318729549178723606787394302853814540380134120244739999364662525154533944525549559509726775350119368050337736283780340408128912706248833722031056241095612043504472788335525193577841325945529220082874430264312765890408233425524066700920012689083116475187027204327514175616981154377157265790262103903545362238610808295283430131008379703035298350131760690458843414034395209828386546478590594276943132254476512916764066260745258980043763997164750370318544502798524611009608421910871019657997630215647248644518916635948640817700692062016865841055120306837019059028606938339860867495881068751393762611779916822750919666836754034679675338695557288788480779518837467050198998843372433639993706772658146863290047534949469063918257936528892958188894043135520351187859571101531306636298571100756511690370980560473950464870807924459218844084113179049592747875720376740028202674059972798388163726936868570662920141213179973435906552776597250341635877735777536052165604225777422341847462137429189664619877967891514663056260202859137166671552756292622295829196431655922416184013124913361410281836715955159158231686547557277054055626554306846190898415931207334299940256424349645055090475467220983533319192477650810526486821097157038233229184143836172704066723106101219925005449708139385508136085059465018557306227423505496659500890547833063430104871418632285820694350151750989908951099519603378344619899476752624050618483920312522488869317561547930291422903877140603057342171521598891523192274598920065332319961082170876984630539880710373072501484909541655798013458056033597038113636177092704701032879334784764139636945634118534181439858026795739883541151068469976781995431760593414128340909833886497443943426535665422342470453078825066214312530256564700558191365025506414369766354092421150255165675715198198958450108238105507812740452185069639941002267048870602328938694345910671067380421675143296198479158612445247032662447634379585323898146713281365324780104931756279068528325760553718055901263060168893328121970206248796436191403720694940342572875535549075090609428835414794667095432120466956997740983849545319253171916749035246886417821699255827262384388274582346094560340727662644769751601345589466729494592723020716181261728188591585767523650809732158751785208908351166698299733110435188191916811034564201081001339251813625866695206969710502743574558414207686390244544374394507623380677814158341389608486732187963562960300235942101127985788554935152018540670758499548221387077217067878846963511906303600794493094820018358621961798411537117471052796865726551971612162741400789914686515703071879415619390947675416331312055093427141534056465732582253975642264572724184043103555745130214045448238108810841930205781688967933618621204435524639749834531736706125245368435103675267698426153323757604740904859373490205888613680754447051713484127719270990567800480594917624057827838519372640374521737549141642252807251792030474766382212645305147871365700217190743399355327951536098078506219097131332403391487110825266289159223443199244543753773307657264434862243064319170222795685725929268147464296722619538383551964913502178766931005091519111143425674601422625438236915662851587362759646293414561266579613467347328989229082095634456119782034349289327133472490139781781931616037199749843658275764598574225023830178456839219317670280207206620588062910867346096198241983565496280922859998982290707187791193639709587633866976856988946356302816469374720836042918200793303966431394562661887375558167866164838578027329505534920187704753917043695914284894043761160599328855325092727420382052059760596391365897361026366255367484612172454914184459908606336323136221997167116338164012794532674727068002142121505445337586984158013307868178027887927497757374451489536004983782984934705191634280962379885078355239821857030339839867184972165908264376445609497111198058672981363274100512595608142226221572132834155789690203057257770060761057336744074819292920891274125709245537525769879830644533512095726210613690714784692147449731630187498138342197698261655282282508323391827551377372249803081266794205945391607504306316269536886149499572277742287909591471834895983797979490745584499110238305832174281906358151813322964795126878233550870276749123213493020047180658090789375277699008775405830435960527784651070045625711604251248286232134627266888968142370031708538923382923847469637896441001161942857023366523115997885033798704328143947746304139020734713298250898040939442379310098275232495536162395740031688368563453833843383555476371328470224600543087010299676071604305038532169299309487567179248806083390844821374163965709365780943250092514754527045811528310860666929037501426037814787020205899698496382851573403256153246834354230194367337665460461905740885305162250090188483515344198502065517821011876294777580675898351835083262926550403858741716264569812825956285337698351383539784446526988443498933891872135175901830746653886980311021614956816789161466015703714357667778161344272581244440645970055166285231543568280986753932068829501630601203393690230834307785217196059507176914142142378340119027751724566601425522527139406656326682701593637163866686500902532637808112169951560621211041397343344605606494855499690441194316172447225557814446383964290671235061024576773378708500374759378316834739396727630949358473382584286455090570996379142736150356890719330854149183714652427970672494229411847750640172123635507175235355064177577736428562243839070856379105426817058241138047705837519804633606281206511328153004984948387274730839151371585124830875570445210896449987176039257084181132414391826704426070665479568112460564413839264528937628282518647607439958688100410850541364951636892637200171429909659257573552745813512313090087446386338478755440807917852241470644716988235927392955533949865542051652282962246346414684349035945481276024748618897046947148857016192114808921446189723371388901756910356093828567629681341160113797129889853714213914603814623537307807608988230948920416660941904965221023087544868598727996004819974958876178777543197708929502985001849274223763297397667313696981918964087991342332320032533980966794050188461317125711603891255376436360859736952166561501686657781823248866365106095572465044708854650173097939613758906810732281218170667776331515983504526203367828857886140611994951244026999687084302166259291004483513624229797108469711523232411673023501889822051571771788074426905343664401444050181315051822043858630633534512384059693070664363900455110815979743601111360292908089287558304823536613445461258386159115278340247204824940566460546905262112293782576624889038269190330512814688404049039359004905760080143494948010751232050096625729709607697928127533421347465194978142653553280662090221535462750515372101509658220361358509661173767824102442727314124589458970858475428826831896825867621337279960103307004465956079810359981118901977592618895018507228084534080647679068709182874877579222519111999445656637538388423203224463289026501274236388559190970355614197778114674486273679047738357442157248318648308861805259857501823379733179712903778091231372739142848779932253704800610022349171311609732147511018469923886482072753567685884900542563087362637308835577285295149593164712557533403563830359000797914470316674487635647227845011845128393897873665936472587938586480993035293742738639906648332253229331610772331365626949350060542798066123449445595528095676434338753546185212756246834327954871779563677307156429521879520162075408155998563895898982336159751726979413496902795661660715628939337702573128585659381649271488366046231667771779599969350712939373875705435206573666342338292668302428658001032530248090554667048231033684536774055971238560112308181741129653565486538140035737336219352517428117636647888487265248038298624896279923690535181300667199004538060294217595167812655768986173045104336066170656297563662675428527467138837145539616274840014883129594381178340212432952607240927467202107996079913041331777651879099458606303151329342960844657357739765332426637224197041093805799868388271766868560445799960967906573484849049972347483353005798786569074554447227107859902507017661568302130353331620426071707996294319804704446401157179404976323287805557907037868997726174435655163789372117166430185829689564112773429034096593149349546038810897180202940323781367725489417450109454334337056311474438008299897318550246822884518126731364143417498098262226813111343623791122344562690825663028855253508547990134276671271607557299556506251716552386488218072103619936858112953114963218570279436270133417771234577344497800100040557365261345730279306633477443388264943838464537766685588912099247324425249052348404818936056887018817126450718376681185653242930986016801849488419217314345694948546044774710015180555409069793257919219351199877657252457572437944158571954817235873687839450838653724266754966292520718205021049265762246675842749845684998108055519083721256454200061853305936769184688349727116379083413463037896947692853783001496575516616367657786378270339696223698596873183432897878468909078505167348640516806222133280904839470079743691582091724109629125744740351649856761341733340381542361420503223330709817520580718311293070270632465095255183708755746675742104231595013080763372592943881984952655565592248808112043032880976070608722243221439064713247663417815402383926542620281483609981444675595467773113567360322253109496221506236797492176578703289325713117818817922866524702065085541153506243975919248997589983417787482088275330191394238008478143802064417677718453732079396247648768688016314933567301741360893033923061144345421715753749880449280312607080287939386932066609650525293472312209593377420344404287737411138871040643139176617685678607780717456290891601158176598662904286001181545429863306047178600051728107351134190023363081309039991498540775152204118092867660042385637345993018200028371377789026862195968852121827459831844502760265725784370487179193649692959246467602090664832360705178207845507518976616824443054781457291288113691255222163801376625955241803243072339723063371112187532972112878800244461746302683072041879311228789276601553117115847469285754410997352466946929660309654986131386824057258291509229229647061345753134639672654794454495306701114484324410144413452100744056016370177902251478067128789781374358410860862167588709983257340407744178677820636690204581303360395253646505851978194512910462552722983863913772211845160398508661510739407829345386682355626077134894487335709143282581476703986944308909558047984968689723224472426339306271068948910360116083668642286177970620595178932141613266211620994663200313316883994496978248605544796922719800344734332544456791636507681741594214938493380067870635482658651084973789905719597679983732798578451234781164127715958817983138193245231477749488641950943149419312665042539337631767171296279317088714882757517479600643431341116568206657833651520915154789456243273288652394768091865124862408626769902538854061054892319582551161073505708329042700128727818529962663385316052570739553310477896505455785522457979893114767843740775520442874739103512477999930476417233144473351655024483150812098978457240812069727073294503953244066817480702709118129502164631714418713762775675417534528780525355032420302422230636724465680266484814664842507148889895880646801185808962995309940812989756812768217163550112930581672484499218347772609243700036513122415743812407599783771365223516432122993051542919849406794943834802526466963233817825319450601150749968652663982674128478434970322652781509353743371115963649447799024196631862289066020421788910869494405540452761003588493898342205862860368052023000489854990559151839771757842595758268866450284107950524764096394923377611454408485812292729290811261078685549709766679644498767112856439656745180775707094218678851046192068436727960019854531482763011831541527600164750892826241329630915982706358935867932581146913133772916917907552499787703445436318250742458705188148311864546146080714359120139593660153847602233496276116482824541553336483855381948532279034355523763391633083397555562160818856807279060056237070690768885357581855848990147942903028796435604936376952743715341048426562916939495879468989666354657605684011374155754383468301927536854422405724055647792143722696106259330658615034848705497792949420546957565409965534539163714277235749549227978018250235385337411047477366030701179204286817122503451870027623054905035105470878556985563016845164313457297737153324004111685831601782140462340191074314309536766226849683674757727669542048124825155672761370065258996032158133285279386488704691066641958316291697443582210029595742063630551373489471830432855604361585179430008370715403330245217080303071515697071960887700408534921158971291907316527532596078842835368824233894228351414494105450158534369871444391193601148829404331922900732400988549526811976722278092479952411406577118976038934802354381073790266690053625191853734401500923559060903126845383046068531101015690813358923808157814466673836302788116887228920907505266879486762169652805397051272297776167810128808970241980595348503664130421196468280774832554477687693697567980187384540186177740018085831041615237990299087806831114206040359436149257842212724643451121740381806254483500949268245040743523156168806468133677578385161651540578075015000752642930177944190903740755192954072533410020630915041112661826609823295929323618372607677824319547565606195974471475250470417719323360572162270341137902171356968001283131660915981933712272400111183394407513341579338974377709270868487000879895529646294004277429536328944667644967430598381603722862378046564823901741641186451770175880556325011595685277026388443825596204485865199766298831327610135850323744896322132661145828731825826669175551600248162808979535447555446661276330792153517128860837428178222938548101926566661955602954153461857935103755593735496201225905939171788079962680803793320513884784933195123731280124438970136957556560985364419299214217035243563425860489038387198307006671521604184531077408888740367350466834583750776040178600415190150689118538475141901159323512826923862286960964352695365667709073137337961770130986397294011943782417834523859350035621268820872966647434322017796165024659691552297241595366789459663925865553701907812820416380372917450577637768675238040827010372504322115314484415402083367280383029046395980100440951895981411206538837156494398030138485099531455672010094201389489065964305300441102762576129388190744389257305343645893290216330680493249100644691287310436795549766573018575914895134312402101537046068549670667993048704560073014255033809646748003154223478778921291584804145460347759739802285796170845692726749004004574629572729828363702672131243712040686314155430779860120523460603040038412028365342918128979073211917740138680685015912064810192012660883149607930898732834967524499427172374171920567380183453256276547352516589714354444434788109360810058842213321529763373832533177999895636805196864339778518430239610975752067403846861077897338015914296808774238632506188361368674144409511563842834636889053040479270224698999899108340417779108233443125446057325538277490410373037904382293689100096560467419393132040352215632904723402573238418609841552343210937601104810107624901639676352547621812258158494252731354852075079332005702787876483526566569394650463674024094949262707926750326289794540068931519894384346435738839888158722494092090482295434496272476247211488159380598581124589849514983598503818462133135401431953451266545515657257659889544821080553563560546604466027688169062123961138480916500420032620443522985684621836290334337548736483129969153996261413496404790210677709051208328708181315420141523181949093156310580269733556599499663010536296711117658455122884252399195743929426831441756955556704701563742148901785707370722948138593240264452373836114745640210030334226940047558625606888213771853088982034314309500276256453799847835091032239110850715515550218627075685775723218948365996508614341435119044622268875741891473313345412832500254107053549362719830465888853573086148378726211646885133319850137786529730553609008203132323840696301112142559552988523241424747453325233359226582292423351057104475538762225604442533732309140535305712606657072778020777155442131818054138701778218416664659815015324907141544120308589909438931760304505912639735151605735293165563145893217945762169346230115956267720029822002923000215076793027726782909164525319992527245838063036112194114779166329575834022495333603926305894129622052386922019804816764468882285714394643919639722898086459356452988975835896745240581895963970026382194609960881061312327054407934834742884332802904898250702718701894989839332151756204661704018645164898093993371896462531057829372100065067301039086782864760942260998600417974149098511350107919218951488256456346041614995261046658263631885738656786925070421178808468798150580719739514649397013707379797288715870395918791313730622282189110381355481709769505073469624176886642128545372661982427245099667206695650678544800825133822258103563914771746221768667670588838487555677253014061534101079270334528640973279708685810560951420647529471753978814816082949825343897750979508899333350882675057190256234692855336828538539467654216837756447271679952920685028233586529460605325196282773448361672610194915871672305523501179100374931939764565182986495535848985432178782620108102635039866541638995803009667216139971398943234569165494620673412668799699225019949856154419851536843728672238918177926124801064949866302018870208686630375158153446703046699061666067116561283671466446785450280880084839476849569384798488701481087197942334588310790384578678701712769377133550367110392219799402734122199194699567315795427813175843874779562316952284227999331154886279376282967281839571953723205958880338101631414590816336289535478667125460125157025049901654653952842898699304167125959219243710607654638248665860345347819516838381110057212570125277382558837266761482860249040413240551698443815852260352840826421753503672011849597669438079558746503444380318455243885838878322242059304412014931374537622215067957423880624920788269288673117939334085726229547906589270776978006024768253916857237352321644389205658540264117990683233973605318744444364550744981232473238290369191364689182531807989416982413438002608853384913594643484221185947473449365443064844611782607800011911756753705448706719631778806232895323640519213389821532638726116538527209900390848274903800928090639066910358750608751999327767647555326784990274755594310561074700739300514146344788909293397795596745046915385424349897210132083272405624625778065948318624682751340353818034349777286160941359491630302056457753011030009051373001467612552730977825194196606884656815379256870439574268932275677880390865059776281648621130901085533556413493877201390668294650003994922347941010456966810798832158974459189129646785900511503497170032365073717001952902297195797777901288930908645000956630114705710338953369601136987413018096446128179876947099450340094735902603997406604590073007478810570098223982407746236774454916758993999486540761028742238153026620530990719588799779460021175674599589565907970719355581052963493569737015540440978650098275300089358620160983219740268779487840943898100693231860042071373951509583440622299347326383976299375203526391770660971578478901472185096614761451892481459086602840690543265805604844884297310921716256773275598901175578990891933160126211782712226846295893875846603482637580754925334328983479683969631605445968775833893746218094258116315802609757757736247105672051749307425013953212572561189592806797687334527180652152266702949745825435748125025432692165754603053508433747111472626300664834122401465126502575362381066698854476805179282558999955650207549509723678861565304720515321953341220608897763453790722319649795770637396012375671948442444480606601207435436897049526668206543767152466695790524882647224167376205949650238337416317612503243501363340867905321946356068793793154133577588195481707982344992374465475826932326920649685572732693213044301897303759468520390534336619470294330063202112727054244137691213392739033199088030215228943874806374533252252456568696786744404927767184211342605409282417586321039625833774419443984825561571134181228127164618763282267238588100270250925616985568026671025453116231909525205821152167752855016946013213949870804981194251122189116569378785235675489659422698460312497030186776218315948846948706714929497060571229177880980019284648655591645605666488827187335221330392538149039504362055614839449954772023584698534949135638820548720759209351781900961697448951697767088351464147072220276169833356737949103863655451798364879249159473994883062293099005796301543813446403554285937404808251514035078178007323635181474410298358101320091201613182856702142840273461483571074173235150237447697576222217534520735314302205330772788299632607674245951669309631503079671586051198666740529394893610499304919253618458513823772171059851746829979855379498168554001458326703517538098828508968693804260840086621946623745275507121934555404667686418309966181889489328164672400029397984276637040741839460432187530783167079602092197708773798160994228400291039068089715184019712517772707921966036985526695846513126115652343674215581103893365299638873323496468510209610164772732771650263708699935064105707934501506433438901505617722637496598072899631886416390719990806823217276850774343401163861284754167407038318163334729771794316811872964223123940414896094814636975887115218811250751220963103241228130626748558474714448471670235567780918008171084260750404062674883206833289417534066602647192371691192707207097306207629630805226803967249285456101328137825482262057954781641802498452817081523061891320149818123280936756395576985316263144798128405201517149162448705789590612074766845263004550609467241061036477733704222341898642696123727622451621973282064190601126887058235502858244297275559863678202425623139795080833310500581555258172798614815171845990442885214557963069980161581696080208559996520689465346795801767361678789548099979569431382404118479167865432150648919201043352022535033352871289712151870157497398591356097953204418864968611880954529227787349452645588075180858409381032286554385400907015123446153424939308202511787656055059882730088160501633740149392234612773491497099202635229855993583708103795520047659485960845597607139249646708805795873733502487971094275112250799922309521859790053306837205077400545816453286516177797662651179753680774741917031671946788001574509496633851987628999448909604226160602506293134572248257811093824670434736885284660393847983623141584043603280140487074352734732662277451596710845528673673962909279001563165452650694684248354654839135697347745392927730219258564300066301787817924039116317352931491927355512438362462491310575455779725752534517604614902559889156994244405575243546330758546645886370754155082837404145093027872643441782734634961346590018410884804223381530322058577821527178617945592527673386805803827953539119469608394544676288079016424839675578993046603715152948051954250513747693266930211081885997362267262324133426383077283404190149521574755170015730230339825457837694788000841366808930253244520934184889706100513456304458762515204386750027916683363597115600948482990270577716993072496686998297789331150921694088413297505868018499416368587983800085044045831908578284122950763756113251755363926603084162154659410376066740940506200627038411526006576848746973336527254895577847217713403577199551150984607649888521316241521961285270127130884963512792539611927929365177772268099352759390935423936609790356130788886747601220846009164958176382700478851835291873829383867931761887744141876096365784025627211810881066702806855478402859910131017159213170943331593868014205625097444965931237295229225263574166749641598709399760749899757284025913147702073838370875805983763952145015928368439628626683069652274828699169141507225381302479588179421275964056266736159995117875215398574198533160948509737196310924065584287098016876126930797435570834097710184628529661173047030609494458486134363516016498215918788072957451390256637574084559962055612129604218932486734938808133177927902008945967619675914444126679678358582064276303564885469084324018259216411831583105748828214576968540191510360367790095998532232210727741832311016891006130077676081594226233155281212068570767906594499391660534904430213930752221935307548655184695348686453516547591354338626789930826951684853040677161848467447504921872148787944224308322669119060253895653464792861853939082446162893264821826772239324066510553767382816726736685847410571140821402684055961187967190960578273722105489148108742699160438832303535724409991821732659945630809810324394489655976186974402469760390403543918835433634973546923724422799875928061201318245576270208405260498011041088366933658617415146800606472649329269427384097297398006553536955580580042809066139105249058623527278028666877108638410167920844917299745324924265836620131066402014291403117373649645953159045981827683253716586792148794908713486246094674646125939632986036510710058273695361410817987518668716293492101216173192646859363476517465177655424283291680738705465836782298922327120468341152021723314646059469683431738398015870279067656548244306055732376167734434067348980111769858538482054247534814755126786714503720839682440646619119436462451945553127287392662258445525948594522351850842379482803737447624499803474740246319778319705797802967117884297152848611012836666424623699470950001128442745640265496802766145173552812084195884977076469710247961228915916422909126869259906837129080648850972073078174183605587991532362730565097358556129809814809944878035280296762128824887774298611076410406820893206829111373231065581319818663853279094923203277749257754065868756351458531351022427972880364688304384356897929159427662871442711980481924703402056461144678794965483715315286802578866619262351048918583760535844013533795947472915237799563776912615832690020383223462407004783054407524427512121787183684653237322221571433476377855566824697884344969692743428957068786183149308869357935133702263229025692070257734974016534382940291690378772044808772958113288946507364000958544103739028365724923354300288187792919434899563086666479433934247903721621384429983712258206753846908707091803045120181438995718309151490619061473841766435053084275971289706917249195340512352282858271681751847254133958064643901447268587893079181050729498787642834485887135585915637442650981173692472027479657385882777951079717460609620306442258998592620379097322084657854183341909187910710513958141300219575399823384348741045012339144501294945101779901368919701975604017979344209302206064885745907923947480847707946859342210767150541418570348400978225545951032087943884926184108204163536546809619011626280080220157055178874050218681430374232651307154661893408600951165718651064864159223284112125598529340926153086986618917585388282184995571068544905569809979022894265342846591926299662309526786205065788486051237741245184955153715972157924160441316271520869279318025334470435728437837126574690551361006304685668472407159000098429194991515791961011220269836286518963104333067668914055259624871647410121055121601885195533724807547056127787876846569440041097131905159099250711958698595863982918018149061278387771122692184131344644502398610929481060995416214984296106745897421882316110134469704099784003083987887465278488657675765918249115318083486455939223803559851254258173399361639282355136009908154304878268408853283865416901442515923477429458129322791093677769616850931954516466562909058522826922361288931431908999111886298232766341783513391338994225311655877640940204576082446922492696734246079776371408358696419658112339210080749064045119141274996087243212582825415421195408800124755560954925942901349213093257638611126669431073368314863509732919774375055538915087245255855861556913054228655523762093419533854322501530278606931947409857636229365667033701184838535651771422224083595492525534896631387832317413161327916800115219021663292200210474754990112865429046797943549200637481371672294202332750032145548032707862699556012079679886518830742687655788894904087507359568128471215974908978314939955924757632941646752720305374186122038275961054553982263643889299643432478542024706919381754946923772181587701572566016497642956210525853240277919025053410043367331746118798665250699109046656127567492393140740112217516957680261793817653619649518295388810411497467238179594933489672532295781040103810043092151660902861391911112276254764998397666010038169851654929091991372521261165981053678838378695803953519226826533331601826003465058606843293938622535025800390079251423329400921613418252484299218188714052962002759438618928774552895777452755282072939178934506217652853532474953068826756507577322721578603742930780817069747541537592661246729243877988167326350545691558496887279047515442404489546607783706637754336830198427096967966782057348945841907578837388629364093122857008950715882808880506874991921044627888060729678276475660596153462924390195305760953862910190018097091276610103354887285305031218059881704357872941465760777703184469255850591866875050015806642639699230194881734891585890439576722430603174598687897571045676751492766397643829629069000763617670286394348212788021320959992887198547567926564293871694630136843867541702943266459834072496961493209159016354701918006357141754622847339761114738702679199674424561671560501443534181030897261234098452156022672771654557217546372135910074499226655954631357406800828487384523526353774977080387290240647187923043709321633022577127133937461889840246181938828581094753933583466253360989016732721969175611245060006208640077357163191536973641004762936100640316262278220092519738210166057357710036086585484072400537161206978903023205867355679582246277672569381898428179416320720715297659562279695450511349454459162274435927620159465195296476116904080598047815204132576152510412859384295447513839469470193230425079171125973095949209979779043796712403701542337823654841851174780539678644759148957782688341164024881434372700928450514257737079774980641433994881537940677511266103405048562281248087527840676011657082988272897776676955826559703824177826821793654233584322843597292480371995917798355437522449809088106965614701398689778403599651456831002121387936525788089669225113263565661684592967732481742206185249889277599930795487075584824482195483545723633633795761279723092821168342027052845294334827481684187384231249295778401235616025992064276279536907401186761421053185663940214256843514690162613192017060303496313247177727715658664694671328589590637752167809496165572923184884317925756721418589432535253495095810172078011985716107472453647020916963044356846270982526092799652540447562817496931846248040377185937553332531963887384178440207057431137941989596572961033424898235232124733393774047314771393720022136640518779216850235830768240278370674763545992158086022081657841861207013662509434187759980189797101077435521943270660187952811505689558576245097257175532443290727545635314331737749217960826990630315614791369348466222847583285923279371990384830756819015146099828162527763043116279579867469232633715285846741983279713073435920386242361901254298358221247259541248474452487038761150342958169345524054570007944098740365191610857193164451630839732067568665970622229038357279155883774593738838812247638450090086837173169091694331449453756710125681553193746522562572031844107219413265932917043072068670858439825118783545606983855557210446779057173459564362377425612272940889352000213887727074731753998132113533900372075289181019863519929075354507753374587254212107888215187976959304782615078318147961462797590702707243241394806279877328391216943155375546382569777695542246253983176968849575541394619534644573981680991082887347363793795475480773759751852632531811547873889172633118031598102774097901784573843697872188772671415418716841327484282740147022696873462736750117386157059181785779055050621683109043173699858623353610618138321464354843411122799905919444411891602344760865667135771840977817594807371647257847173093549785577371610959209917999170575419888678571113363059423337777315260627413506570700228958891005672301953387804216113186685220137786903639400032304339655504114041434397868151604550383087984778420745924139612293012326729596645880567272132917942436162134962615997343435006935285287220001255209730201558100664622361233283447306439033951834232955844811363698840232610986291880402320552669286455247672415542476774540617219883571146115610532629119830304366255963292554265360386852214717974259699178100143602918547283773518381722522855689798327702249454687906420990346453448847347057255156476026399488929471293443433556504597857826551853638670213387653361280938739279535298226621142565347102975938123030328280015062578889701452087569717485470181704808066585418675726042672087703653589170420945262663414994182485167314568805448203293965628774761127980902803194889321948559815225062559353502432047293753918591964720562973917801125947150430698340632365449474181281372381124106625293606352732167382574056547784844473207929543333743984778437108612777099397111702693796074522914039980403758685011153039452050672673603840024225234187351692917497278636821798668734042667560834462735649891034214410805507446377437417835545614543851370471890752462129388871739556966857757308210218375003051766569068274784859264527964103680388490087571891101500971053785895947697611169901181789690988965442480487054764061377173087419970640964069644866739210478280555933634702539220038706840826532564164509702582782617230749644687001042226708997116841561401985141559973907383280390783145217558289395169056356077766895438766118306520390419777835693061356577008426044877638403058017862489182510589740998779278681233962998598048530913712655479525122611823781320157086992987739483225145268004850906861692877306229769419728116377661370828959700661802923674152433215348035585051156765093356394569650598991456562302613433717715265083858721046346107115544461062304384643091469923118514738595705596807148840574948577936119087505916964858623323458008652426297856488982771847514733250670229748945933765096577151961542142956490448100011342704026224090567891096452399317773799463435645933380012332918226628153543375407101113234633329784975961913026437842568555016811980317349897624320557569777264821308980978735221426433020021206247504526572706675786186513367657141958740022253641274744564857485315798955052645864636672082371416709713088470155498585285903073485344627679362800443695081727296507540845952541328104182197948790252757009940017608338442969791661773308904507148773905105869625804204267128103937280133538442219939326529355558443670819489004409777089186657590035515784142623699291885372315902416640698949327297060186159370750068055783322243140889114661843717986308022030466470929113472027602290001149403789138456587601573515246890429020740137955923685349165237145099865167462555838740357016143941184005523223170530226456549462741288608671619827846104166520186944496590235222252360189963257361399072417203597277820269401639290072159824912369198399087913627416403261678293725171062106485144708374860035923147861974688748984961126451048083022218947024167294621412208826752496751780394786684307517214042038788146491730004023980952050196063557876585959161256221119445451725159024437389347603810359808417477578350037832398838060180435584276380815920697119746159350873158671352446576565791340550690889499050593917506669164271855274573200349420065214461710893591495797035638072338917479095385509826015118262184851521077505033896212458651025690073790056910258910184605026890604865653591532980983668303462996208848300366631783989907724008018944378621438537453967503721894226004898973151007674015537947154326420417399488614392503284465027139658408956122274333915480221465444148734781371924705772206781541790002328373989888647998410852147805416955467500779207969944163525864523310250746869971909307896632347389675011654136652958352523968167461235753246191323009140471186601314284472545487147136928923344617352963461232866675516942288835809168574011102107379526179139458605593827196163219149279026634077617175379822980066114505865857591341971465145006191780460244151664505827651312404117597882011913693831664060188571272158839823332973926795702958584594105726483936883768997787157160392409301201724838948388258955882996203054361501447226282240641547008711776537323519554562515553669444596964037083735776352883912355036325262845460548727158978533836463534230122749817072294130984265538383473718397116339428463952146794554773366744778996278029223389251265776884535134583046664087281593383946470254234900717768068084047992984209736912670325976359112272949503085727331577531968241457479902798816707581375606833808891147987364574097472619659289546191614932627884008507218870496427177352687222353559775212999379028611433166708033072377495069364391124490324833064592288629949503767075073524543277472891666906668577362832206284149361868505556861716520689684752984057710298416437847591143301312111407304742419711991079663425936463009949569091592182866548027634060367589426092118130267922272740827988487159965978855734201446100652776846484186181733844492129441040052528787869840319426135310424257981360469921153858606234066843422966999502474551867540713247023178851844518031539101517531561445627963926587098006869892630873555469516129952055090716952845439282016685578364106510792524252385749924708126234368545202439590897266448058332406421492014339691087115678223450704624044622395094555075631729459294271984406299228639034299489930346908377707806040415857081053517775874444649687232883340721483268649935519132140408251506447873860994674144653489612380022766348879607399942838957652030938872857461228398728812764451013490843522819225840683744451903091323660494100987795311143018925713099909818978435184884351104487534580210045188127963020137352374029816211708777787500780735678851115672259669238402710185024607269341286908831894031521278414091264794600236737999287228882390993360781148809596771859721410945045317272863885728043553974614143251365011909411332479082539721690542171406089817618122783535579522491189366187103129977527724823426262671258262807485186047461105225465575046727111942872442973948550390223449431682411534813287218393887231914102690627366185428190402270837844443309081275432835779516458876126279032081139817867379719349291279539666039559784352823176481858753498934640096714827132022374099340246211550879348473899337864043976417536968988623024114329211375396255274981271166782226057584320133162727980840595564731197517664386926550732013865842595577558726064724587922582031917440394972880622496394214755137695065222011736854731457807780031899943250198486180687478146481721767900866273974502706520012518719891763002929977677972964686804786239225609165269189189492861179170927527496761883888542815394222484353412338159818016228487561020114902904193233869213799183558685290363543944470992716251669352835087159777282989221453212376780695145874350508864945086181386287851113540064821677567939010366978264852995885933770753214690886534860234430605136533686756543134190452049598797978375472744425977785551935114220170662800008437249892490844903638595263127127501751489697547329279404948449841607183956168278923110927755096616153291597847448240511301309003407461316835680616026157865597909870660316304894020732466522379605905118671532788563142131107747053716175910001164210914149776044991786810884513180482555402491296357712252546943436036211354453131286162647330120594791002968223531179070523149924167153246915545571995661390536720874560362755925264310544790082606494559235634714218776789207497290168391862591209998639222004999575133563590498142140670547320131633849877766700670264144320180988820845544746293812887535982043252435992846413463064622845621722791826582281900514410150149432101412014920536393307196482782755809764827288293854904086127227226553209757279684743139902114153661582038161098003918714197567689689110118092122935684789590978148773924823302661070367162456009567138942235638812951627003196324054008979286060931951248706328985151226546799808510312997756746666594002923267124502530257645139828528087154602412383868641885949258220998151455933848126237181183371585503903885138562707344518591825676250639736232704094918826467001081643509761965669307934202352237945473322171511763654204282148287323519425511253985043316370258105725114228151618671598892062341671007194649395865977729930101191168400247764024116907910148617797269478977910038771915714547457622173626565801462484344813736890577899877985706625545803707708018064771972157872222622105851480216061506697177253445197551333676917012700082696657428822335550301946237416224070986573712731364367180993640407560151864792779629601466586764226383961639854689239100572021925623606187929754726917026722471027379993133840611835414432139957791026468225424935945359659604257432963526813128560416109811619400086100635915819325845454831146114473484462812064024532760190282641203008601989747002466050085660692394620874976025898032287307823176792743722796115032160477004414664936673491159268937174222630548334706905562586961270463205479972351627451146994888322940696343534711460147036155000138376520628043842585856265506127024316295702232767686776688362760009420858948851325574778006572194728982568995966317960655604938649916964825021848327353331843528101021844313169867661342537894274334046245696938147109959543732869216573594479022833927870204575710149349632711436341577649179573910293602406626074624559980500917387131101258320134408738893974200770637397144979229627534376831831687307842202049020382463339285098564892437202118759364664375515821773871896052575851087896545519448926720464254021541328534273615769176966496294611968613430307992730387067494975691983771161938740425332056294954633127485991337741136089596782663235437515083500335954059686149136208900428018683964498516323358315844629234636533197792982673285452385280801169212573035040211088126532131391912154726164645026545543130225525713026963887835838961190862907183124857806136144430461073897679673263103841374792834426982927735125751793219574694206224742477618681855640175717539280280426858729015213258558078611647803054918526599107147295692406627217525225266677011300825539812780675207918528137694307123970493878870221054594906715240578935022288474211953375800314626100137964693113724207638726632046704424075169728202770958736837401368381186691945729203891547819820101749561642473046159309786042586121634448486538156104594520582318795098339099858196023625112625791186161599037250576641237951230784766698070300039397346826021426541208527835118267727376776117866263063807070408605185893761488956200397947141190188655644461257444496058231473434201312392787498929525916754324386936360212928057323962371928419085607146372501606036491827829077803292129814073166578232189368839017041949055987745519686981037450155099360686517071145743787216683899363580850636832410977438937316580863513102221839493738948753851597294430425566556448725066852048507689670140523227448650408121992170730372517020408507262102719334795538796540665596472461100432947317266085521728220465699199747973747082669928487061693544449774620120811071753259352095562548339706531402414485272348212954889346819693762474625049465956445217574055060111099531654376666731927639128633064173378454578665551755165844340642944222049434233521480919638840843981212501746302152134585797773648425886577433730194456001322491573094868583554036990657693191159873867351649975308279108087755786631333655915283854286395741232304682559207120835994259643178896839095364553169354802972097252628765583026108238419171424550433764874395405846284726169125336910422859552631750662026857355575774261530895073284803528680725512846942270100183258460552591968429917422114131718191025270173366567429504349380019179017079894759113215803954689517561232059282469162605115278085764174751784320827750811896795445180866058034255603206070288190653142990148187245758564234986360275483587827215720431580781810642828085476152844385906694277709162557917792701921303605516245678239745538074144480827067833042580373956810876715988408495167948101581590922612970856526999463444833401885829672957780610288873701369215238046275665004782963440210259746071503797189776591940565338188448160891963941199889325113453210915014046531534712212386519835164511892597695463409572646345769627733904527872402280392357680582960847459237669466349668407428597124437735384624150336922687133633672334696983295017841557015458088510968352984226104320153746581225380251022076308814143066592989384253609512768993543438625076563459340867244446485975328089518475662133272148517626541936301266883590276552320685329292832101995631763812589090831528295943536264555226628557641067817129426116927416647075259563173725932439350170836466838635868162889022643451586739349993376474305567289045705090921376188254464659717100070089587302342024377780536488026516159660433428158706072591688672807353767302539619883234893105536245591719618057215364585997078105319674076545684647447718112452947116317723605930891980915061223054782467131671233168731131975740119164064083957891640214278383628753252536759833776273550753396789990940900730406961189386472438618842799575186396860108694961350093176563151917282255790630421940592280040927302170336413918288986048670707529771384528781068040055559017972075577118203489210547989265386852419607298619429927087161490064657694274996566404530503475087978511210615190496265255619418811652817729292824836175501463555962142368246676114929025073114125613122322020435299747739287455038350599689675913751089607034673239272408990467192313141538678726954082444300667802214592146527012139836959252855383526839721766260794573200557462563274391292991241683039901785285887530822592935120868264754056531748133363437927400641392742654076032581465848614919488143117518216431225998824933837227411745491233741434380605556379777917718157815910899615353515083832975736304049412902265530883883772826406662226883835357110318542933331138504084352251985706761454300398978200091560457207998850760792376545766588519602307290667901479733290039188594437384495978220793488736115025276874874334669185681902081693475062786066666652800688844027553257965724067047728926467137054367448215627991858769887593683616651191765589759036256798289783774615884943616213353594737338496935980268833643678031596477708968811994899075211228500134413453547458056363195224576901414271663662520367198097729163825478093866698677224980904300298964835317833075183412609406822215275719792035169636115656054127541124897689270942939224472768151163170703111121037745457323526968415742836873344431809999749711803499091540291784499961974878696628477123941409741691507750622325267503811060383330616946733315655116944556865789980220460714739809872287159860507534967212247605037096087350983462996145270406595176307429028937389538193792559668107532531909331491160288214391111507078095182948329045793910413867492501514142726163504683887247625511411379791499814994290459064841728862454942339718644458685159477700116939064523148438065068438913739017876548952419581200389504247958396264719641049029705908639405807969250426148723072993852830687557863881302562883889723577703251061441031598328673552835702884688956235517352999566462289173267047153307755740963344581751894010814568159062768138623173011483295787899175843512213837350190591745571404110866773170247761912734160450021642839376379742185423388742983714981494936034873839779093106266481617740682302900603378669032994100189046095243935133338900511744750965853507623749264339579310499663763772848612467179021227950519538563401268729768445581096537409367140132908250265784893671940859110118131748574139613729077534633437260735700055640876143660296032929740597005923531206844641416252949340318899897592962368315847064805379909743483557351193013043070774704606997682993237699655310188083312232090824203232773980388869279045599741104275357488650772344244428612787373925975199867646434608132035108462900663371100402802459973408493159586298007686312786377318996385293035732016421169626444164459918165549411076225109632225490717273656701784397340274132751281214641117054763194689746176706171967005521968221248059671395863588270766722403429737328128351911818807498368253599814688474151990906530446560766830037894393183709530971560931845576679071382884600260898735915187316045699137110948001803869010821592004558320897525119853938796815950281435477542527795864567247627790288048496341774432567593942044252294808344695908301193268565683215954761177664753273813645787760006276976253730585434443090878126670754411499307724835685592971282370394808429060898321043775825667838427905576904674272268607029424886076447151487255722847520452524019949807464406771542413927222491221371043464640563578520021910565471120582248849779530913578842422303786309152623673631218333559226465377001667061246110746627957563855970537747465116599816353598196965827510469719098391417374095332589182640164930559406122785009496498828637829331882488977615975272831194073493058701620559704152494370493685937697622103167051741252801319252324630840192416567595847062771624898059679979697746587672291729617360848331959700576959780220357806731685790811165729007444005209104024039909211915552552769021133717823358357056696131271361431508783273873409066947684513049906307240563258509728426217602669989894101712519495060578656157385572524508977890346628499140864900509492867101704125635345139416771257673505674788364921153049048713474354510857411241101830276914377343253462550627315124615349671599085162675063492785245332166006880500353408982303539356931075758980651013305893653985735559173556718590348780064119185367298141613776353136598246492247697269763836772060429868073197446710698195141473936441271199531781876063311569420646913893004295181864615351818401710437508221561595561449744104125365665298552582254856650043840069510188099857092402609550791388084503440473029006835825679149285023688522388889126247128199082094389949424715865398492263064876026025512657504791436302768635425815121831770254560398958746879363327715537699496178775739902902909953212281496084727958001980044000308677897358580036721592520994933981935160067366413495545396489309002743152178774222521587444715768248661151140059491110842153388443082830094013948597089443323850740638159867213781800067142936119926995688550346965274053668176537412703000125827175698868101305074076826734991994540483849530432275158837428499040935848959261956762621385621653964037626658444502146460444767120452556465149016799687470558020559514054988661640693445181862138918841643951119723792973325071366670089152907632598298304633698170798568151099149863328591120684198086793497862648544508004336549356106222298977577068807491345720853323761939664196827887807962253845234772299324261858549860727545599100998020026753041137923817594833174652440919723298796909606917537168692952239931291788265037429911619520598487835539176230522814558185799862829618901303011464429216676846418815768761059428367677396538769128934433075367715702435841964696871781647863290129690367785163175223554008373680615524319992880562193119187078632925312036390712940770838777851081369168124994854777255648123856113092614519086169170997129758643350687069828401263609074750601371022599380511102637737505857274188572209696830505899346623651763808532385241406881817985606712639479133455330091815636567510716273235842369358133262653860120838757598763042611896213185988639149157146774969497224894336435088237851766397883884242044305031546507477262756125572616033018690930775114493237704778744346223909653289901557941555486250575747286762150408887742425958212143533324180302240856208405565631473633061611619803006485650275063973323539245042301743192714970753765314657201545420108850352817461690751762745037789766367404977517700701714455148996650720922799885328593793376360566955539134955397370455255752246753452526645661647829699868162669013799588863306187557716204669771791879854764059659000208467845959491336953314438439939341684164739131941019492092046581154478626123606787285516325130016171443680846609117526443164957284368092828515421598486534549787838388707920841220052308361548792148739808324557727924404404016593708263946400482661386168029334113192184914332479876366757428254129811709126952464296073454262960244468284266425412058678465113858801868670002719461986668772627243847060921212678162730704080712162186661841495071777965333784739165410273973955432132694376873240753135552096758832394702598829453786887199103607464225564550365089660685670422241135105734320403270763582965553389261173544741049796785835620460355210680822555275014668384373846345004406504269797382258241035995871053307023303943688524453588479055680193082313430538505105114926283214727304088599641702880440854793015680167036271383652523729574874366500062799608162701236853871655053320061451072778764581386997429981616381343768782675294787391062267842616689391463916579509207310513386193148240442582790365742362009131038921373479018528896884456883701526501744092578262187132950664001406460217154805811078202793978811957281068264157724771890373814102785863932315518657629859144963383518637575344859271792065385252603318806745156158695349727778960542390165172406751657357435216572697723271150120814595976909224625803769705750086906309385329874271446231568482308318533813827072136764240132088154042053054470529245909414727731923729967568636576037275934978542000036180259610947410850106615602518201648506744571526559890023161572488723178371726804521999506074889413700410554759188066812904827276231349681313164461645258827723103291977917106667664906545449780544597605187555368357690892190157341628981526638688529018989774841655039247202348354995278640825443149748883660645265577297284739190753649130957005512287213027529475457804552324426972499286709946301741682394676242118492332321105513659522894954375789865387218107611017557732948693972128566146590496022454549395343549657193820137770313566011559993214506145703174118456366637769916516398624295713865291913389980106297280730667477917931747734906259423076690299113730706599317481026219546314584183303627224080857029704528601041435199032011822745799451760147783601441524223323079556466928523773632770334510062024629777612233974414806624852289614439027446803372014786151535022314249276396622339530453839689580636711565172827146148148056022086399422482709390228944193905981203269804000285010239718360648312657008561017148300640326869010690575360811245298618864210038419052188871867906851029891634805377622031695605081143908244643328352536039941520965915830204157986974576892358768756913245196046736247296432098424257270930069685177930026617649073107701127849591181450252422331289257208052224134816775253840167374185650729123946133454807291652145594016921386553917196166326062383461268023444583773808928763222723736717073802988993056777337012705149951848445446566791681469462232768280297562359800820577619427455777753346589708828169024342560215114065258353658163137780727994414186445715169089640530228955669449409007021034803908088380560310048880990424336754763713720418013409159702095590028328168214663614576442478534589514036422922514134255848528470864866168366114167165237829086024463712811440884671284858384860666627076121086649989701634404066948087364212040235881158281193243126063701430302648564072048701568851230548621020909148440985739280025253294910882478092335447648827006825889013528422146304720186825875077050167753545339862550326257629327792185161981410878451821631572816808864149860980317558719997632212565143888787775596195333787673604167112334395930978314131701129435055590745447990147363242416064213493451161151315723387809028885627959430355724069110241221474403965819864561180630855155525149401484504327106690450073110255477174772656293446385781415072486018148403258980704034945498689092013087789182088966381878817311563573473331428316175453907446079026808294700068136240709184461579617660561774676975255970257447549749856341665759458076543053243733586081484807046233392653979412048582650815683073192304170700988812557763210899632956429124699396731648674370255041254643062667807554562601419201588623401783675281203008265808643861864363803898976710898377785266701915515274568573095174817038978240978064641231046305145301751070350767460661063010217103169331767122165708701880182211340980057584283672660206846944606040414279097883728182531802229672736954499882056994331566118595308248288030727017109006030951589071141535426285839288936931934996908429341010443388124401239106433628892026419424955141889937052215597423454042397217203035884935646738984225855457615455682178077040004260833412011542830148987448408498366216632563073539443488934856781751982649706652080735855279394291530418420929276114659587371234213742378027599636105281278129729929771452405030753468915387252440266682465928854460095739262320283370546867984568966304073370625711348180706333568167837310822281693736776490524983222123362867545309913936659393051676746900365330867573964855215604122210659757974441408837001842968942907300418510862341116816965510724234104127447118656914664263941856152810381834784567508669645723552979380748464707275952112742063255397861388447886422962520934945541655613693479549202609236597181233201959950899299949308667224484197776277750482485087481181516690269981009544600988798128080947371575527691570297880982417353985154620589536369526398629581070022125724206983463448609033132750765406360335845053707962323905542683925478679612848646655513890406179295304920195716263569673843472953901847615202869385105361611953096654089830035759365244334487569339494321025020539232031452467027924905963008080788228030389821025015264489923526492374494540817341267219049634758292359505158287731362715543241771702027081619624961516036328157875500848259534946142900537190296364941405211026123340825589387975715081970582475201742084775252969199082530277196290959397997040243350663458760447370363954450015663262976215061971915489938121072230660471698194204428610394360623909036606722749726855524824891616697266316950690002869107720724171658566477204211324740145258863888134483075434991507307134529646676199039658163844031913561487733380339817793332252242092805355906122158806582130873866800547650994444607354636703030029978416318448940567316501078076106959019859484038926762730897927649660869669315827965042188657252967779712745788056606714784473728776770386106158237919448654237935128887130328169929889809022385396928325464056507502396549420782009854360990918937713799687667356817150621807776458317423634117886072668644789084803503406446983731802340237480850361878722579062091905123563887329037895321030449256804484185485416912169332170418622209002266175593835396244080644082836650459176214684268585524590340902608386029380500652721128753254055317840919064493104045279560689425705583621412874055727739764200201308333650359832752168128942244596602987654645194866862001205418603218131059887644754161603855887307152646060954852791257542028854869725929367862675192158392554504266270608019423191431093749732412168466252042683261196170527681539757293640149818863627479709965893051605956161630255548653786147107182295411204704085476940596994302636396548193864690041056762406751238084609723519380350186045071684213441260864904151950444906139188939512833531967552083495523161002044698797550312884902915816210069785752890128410818641917428890381967542599171566688038670743476097126487530401799499625820551207272989060470188026746764040060533069146493997414866456042870612870343823606208345727815948380719386885988307991182363064091826451693578241729185165131136122722035973961456767700223076662260138844375129006216649984987078744059339684011234548268485809113351021642718035345007682849268779266696249621248621784900405361770349818802588434729760320214672892869674990823196105672180643512125575279022459990975270572163371560827543417883993718210342836355870426116279788971149385606693921240333086833240298112832415468137473609251732707679002897771637778479930223737200284397711337313924643486111467056523089088505347289441669032837589086963528093160916876483016748966179925249929148440395021787595831667208450820705914291655818640548625877125524985023908143247447117190615753665208485772424268004178689397345191936891733229486792064250945587216085511124206791438752430293878949031299581120132723884516249534938493325332038022044058836923285625337190913547645842694822853423735651846638673111111922283165819926615446849984828506608694959012627987599743295295952446084995865197408956064505730671427473744359397266440939157120994139179314656205943636519942431275944397612224999965735164059252058100463618710504723933751813447163331250996013982636814637062670979669678579965424180336566823636991191665004543755519209062783649773427947728795824154378115718625350257737854863640021822168537295902413462809912927568964560567564451925717594903954683588339890115456769519653974021196447359764943085621674140359939790280171678031952179066966752506373153586110798607670051292855404868998071433309518353861059650511690322595651340351539245428593885643771019968123974449129407156633015980976263427813011231623942272446053164321513700670481208829209342551338755642062007321028015322131702477157264339038978357172414034958780913032415662585066308258715702868007809975075833073483333620678124683840160617508029551316811657406672797481796736677473142764772438612712637670122690700760337910048331449154497480558987171051677764002585669715337493287375151322072595206513453299024688114299466636187600535512811930295443702521128271396438794039926997831285865031578426518589047818655656203748543962981930096594856845744289455552733475430279711766092960552655920092933918736225134846135410639083648765575110102532671570555337862963157362916847133192969444021425118832613778200420930808008848460770026798605850333962324162002861833265601222836058949669480404784123794550361864662212307335585814765493834709099041862985585065685251875044848679488397363617219247930373479898024990415076484486632967062063661635640620083418369206089901446624709216308539262183344273117623665058847142643921506123754769560139778962960218074917861703752549758076511087617432431331065254415992935958494751510945249930382402041661454585384858834976630154547677168199987267983073097171071471611486339996978451058274948884096507822732753820508502135399557542254190648191333766418552683803782672525440513445753415823252861511705393706815431908073071169915728773410738266104049339350530075129031681832232871267518860348394877094654977722915513394573544125379688358324365569480934908464988863565835954690686194524967579367846565827594381592135306536729000509101505148558599379309971231685013112570198048926985659338391369251150541994272242841713731290142859792116094813156709647199830280608998757006178888177289083161924014375215032916021266651832909249029559545980415614838401519368109883531053324212544907211199259782795428501335025243271409570825455634601776922253049545977355718162048842067762346114954017300430893024485540947881648033791078158463609571719377876730906210481485975777709402325748533038930853891700207007529349956296658004000244928277300290730516526238884558022276483759914471150644229145899291726864919614705944080369058019899665834685193267111533920342796737872062847805981846282515336364122610495818430946390583020831528438268199762585878402853853738435622901320453329855418233974357679599616221809659165436534317330763587901874179473723372187250940123664202915946874353893663634541611600732265611784585739717818251122864177071239741252034628427088893856020756464160872154678388974772234639038897212131030720378620511311886334002596866843461624430992264009104048018129863253523352211549683607023874917652181107146399492095624071362348083691829957072903106876135361110513000388247159024867058298990590931348523681333978645178066576208120189979560162874103360165816455517450814384608218818593987067364759855847844525050222574976278653096296419983828336159599637760512029369350308247350080100994197559920289003990621020687158466925551783319699487384819414359876038986671386067656529646591327561943856623122845709676292973473961040302109134224951380717498819895916175985353005269528615075865248583270724602635480958810657028767718371193563060380713471888343099615111854522845776540103804802045697851995433872264532696024548420887992810617991924341191284565484320626867626246352799719543146152075493775906262973255801733823061406943556943389331314690060045019253967145484859108999597907275891464940676763554752364822838660855363879849308412299849402957403482217022470122774620084367120087468477379172418616651734160050078985879849190542974740883441548316807846344675702719182197858168949950702671399464410289847942516972461574637461162703899854778546490970443181943952886197328044538811588246815556483973168875473321851064999278733574968764156943699524641636166560733621072317732184614752877300450744705463618020399764377083236754417329181580803616154216519199619878330624660218058981360421918004550297960775822695594292082105143045461197289444013894779940140130501928035550032772272235911721162324724184380388623846897070967452628550040752305231321967015400169558813395263246713290703433535887773102244594460480585864210211116026244688799295344524011525803216454217433018881551809979084567634581263736097215488938355814067676026250645048592112596522447339492408328843829423272578484424212602810763725418120831821676704769121049872090495093498492807445996898491749430727230750923027310355507889901769301224890645091550786320441837805350422696815416202487035160999526356135796492398048446436978298592425941671827709483560353662925436883218881603631962222827287896924648078322897133831054559316227970258416650763392796298222893451144468624451225074496053392445651343099187147066281240894976407051035555474128861285429512836835011301861538297864780856140382863685155016661460377574346445542428617621147953883128320583505761219361270289902717850189179813876205370004062762173497246954306961347260344596774248884533324206484859147500046856438197977530469186850208489418888154311943942434394549633575865910797181576974934754314204744201036557970987336962893477053257610686249242094511605638298382772068876447313573591248908727014195419529996686058288320961067664873757677796265914790654859766140653473990541715948126690252806486361362554667499922297974672027349752440976479139713382402136811636324784559598456375806091530295342532124051662014784942087411009835125422147728067906538320954541854147916543011999280684596338017938474047842825843746124620794513356405278185813147837247589392756045421727798593154831285222497407387561002673287286890366907994587961395347714270246579430488379547373715001465724268837143056492512437676004554951289634853785141283802070830021942511573132470852046748110356910185096784435792791463371182257196077910355186220447827397114287550502053985691495786702858181354765989874366113218987412547598039388146255055280809871332490853734933186706998357581923521692110379850608850618652172839157369414693332533859946681521565283773083756337935385144406393766078618880286312486727586335909993046012628402036530355848784814925695166695286509168213233887355613384230227191197848927249243762061521068437760951111758442435337072890872945983241678972357444625858452125623219573356325513950581941047605765194081284550322301358432947556967920461197964669729178139029890536010489227781928642424524996601494048547866455288074410291428131372933110316687339867553424130872869517301312455462806956051407629253814123411454094790227630201996172817098431690502645616875190546048362212764942877450644569559094391799617538564975545307254072036712741580912569047328910805453604114624527966314074973693639828867969512647019561483575613049329047863384796424992554796873178247009252752067190642668651078542340278926991314295209114772230210163443946874152436360009732655995616448610857825767769628865556119767855248552402852815890517031079432797200872789201336813954066911381022682129430438557972147773764247295640105207719267939406642315404850205091759878753655928201179033533810349591331482647751299333147729007093012093684594277670926713253181861092901168065796836684323765173773212787795924595834401790029942568386157085274966170970888517087820670769027792590168081726553485555222244216836127937270510930002266332583808295545133492656828177630855541076278004162263980434788559430613394194299534312337074738782337548472728686508058005077344186798034769509900224177964183045689538685731651848436781447680009231745456272944831323702167434672426286515562614216153107666067243058212881044130566487328546793898874453050425467529303650716096142514833012661294375787932846078588520510424807157896724329853689988084353871711320555893262954988298415114857823088027969779110173252656481047481545097473477784959467370824540039418735666779737914795021084480081596107329056327884119187969771628109909228767842104965684470865665736354090124198328042938996621884541959429603259134112141509176390575925576530551470531093382385979960096641181229943544508839876875456755302716181172596255698774821627757419295763230542561745642644261398855377487998199763156610420132252657649903454019343471801348359590574569609130006432438970527037189677479395937014430695872681971154093014685906009773624319638865561323281964879284675212537591259583714967350289007912973051773392238474124286373984463167281349168030926342486878338915849784255866962430055199498015511204497465399262405350732620201627494931284298950651831411099627035324736973462749700818886766712806145363887997042757231468984849568832525594697940940101128993422447635716251987275380649791732507193999354031262015063690747636137202141664219928566227378787194590470456057122468137945056404297708616020631041652224759871328699768376789809176900434508682955727515797569959015059884809212589532884240365925286152046958845457705591566785074020853086100824486957962197375881039974465571992288948551107816130223397920342849622361686100064788098865454095219804890657148289930539066683025974155113904940939464833251796883685148678223403962506379595357743206464163418903345460162093140867493961207755464478401262995327152514799018408610578572654560424019340686567463176734124324673277840504583875643963684204478996553255949970449560584181318504625272732471380538935586284982929914833752568324502044244788027443273034426785056076098474445743674475822102333178806592795258642479700471921483652844103416418474549211132766189241369411861605403777682077144742680059445596519375928618044222314147805670091746492043237895014561281582963728825986245253504807824280568739791673268835935396754380843790464721607861769162917291033262761524719381170688047532419119448304438362066518889375558603473288534787778687391989431045969067932137735183283934119623560855331256457734778250722036180388745796604474801914864407620420029928475808049371642840926564958618390430110141199299194877791956924176556892888565345018348574529375481020713470207335739357023505292712054183091161020268110052279092261437655095795542829172088129189191595771296784789614689988278536142757441333177965115047179656952638596293670305036531763955991459363364444776440949164838658361629949634891281496872301227896868173608583055318673440993286014060413825905251881239953667231881524100760705269663616643555254323038061642740623531379489786998436842232478560698264421797270049478572242204686383817953213229319604568370944352941672283126925276242721168251320637436875043572228529518091791681836727099485719031034561284477213392789942586662755637817056459159478263509513359844495772902376500331364143853629470717091231490185247349346410751963888263813768971498875228263775673973060232758118497990534752753898158104189779099190469103530963614898431164504159951498466677984362003160167304829963475817731359217952732146562141142797682712994855931334296627589957058438453270915115062318371864073651217053226227660084810790095770676253261485002654544581164113386181641025518574567077286787082469190166873999300690769144297597627055594956948346238554341796963116743136387763238715363042486428362015532935711052120143091150552696394686674281039157903738079315592797187411125823080720110613043805383868973646922605459467043346243498604983636009456099369308456435772331822659306103048554076645588018497140047378818396965085872855702078544192987925504120161134530879965118771432274996380793406580355674975045101433180639921785021735789344311687217034300520461097147660122061714651661762570149621886892060122645211804825337637652804229759684599169248226739467760056951348880641324477146433708094507160794558073803787039542603257874257569513848474688953106871189926585147686567556337996072163731576462745815104847430188114207761903295338275819907250814418363740940849209151856143395557613728361799021339291549357469055846753879579532563874801851175667871509338955966230082490831629495282534883054209491683748390699056096592076660691176662022698689319852200921926783394036319181810351898893536128625809535311680936054318084858978423092551899580781181466057777993567717942244914959513047310514636896185088486022514052999686015971204231137235821474280401316309552246372037691433198979672407142419742309581524138689882058114804842195843021878588765653355768704576913617593711024109308111926372849124656773936180635301650638958418627758375720627957673144721136015483808973703816900860198416958332017771353909216236653801184345214132465231032139811839199051490819821243053480196817158536379207300649749743114314130944183695604012876274315761651991005798204950064515608386788403315567542181429995793038913588446438014323369843513312580043408433642304174424168284314017170472672097488711788619851339750467086323184455186390969097151541964845226943256515669980810628383667577124351478200361370932497772876444008150520394893032648367848549277907810816566694059571321905764846287564312644921083884748302988570471000789813946614348578633903724767475624473028410508637167598014563004910362091707684143476035638183944505269348714668576408828188320394396233262254893312113482452828249047580585100295339581680803042263121119844571862905814071858897207123666573440736240376997813466992703440763842474772669015401138005582151161621857886524779250859921521657019033928016241461306529433413368741171680487512345718415208022069290412184934143501975888332392154476061198226381699195678491384349529087996129124738642924103291863119509384391968251578938721202886155206399468492559963111452791069452852891668683160637492213388642147667878652111098778395679981737731190644755797417544727537617307653621435194660586837029625283229478175349094154526777088255388694037965809367339197635294381873714294836758356607426724130042977132962420604294940004020460262233442973538417737901758194776075883828192617395492197098049860565883347701356347824107671576603845475565627862291464522975471285297506156174590374943245984863545085040513670474917611253608930593762341812492693848819539129756330802799025037698961949855694368448789531821985622419765452078990348817513028821049374642828328672734683132812950405132303918231504781947974407702756857184083455054180214348186662633113560548848922931868287482344272005884838197283335643249875579119796489086727705601838491984427111816023378713072909939931341456273593820740260312884689074768568684753819602576892661092665094441589385121008724985723008396359763301059608566496778675017872089005863326198065478758772706973951306118430024904478223449899504224396525674707807621066306233243581289854628533803571381878475231820629831819051422913245409602623113618044679746025134551523098528978494284393100671448496331332916772448345825984680092946267630624556064370605838965540237209609857103839207975080644038682679964397839459772972177523739840543501324296465176094453412537709180670517449035444444791296136664623263405083562636607763759907723756642747400610955277694399768908229112007387501852064937929155269744010185355242459065943340389195310897556760691053428735712466035723525574685206139780421355279841148324245916692787367881472428901041524926527281527147004372150398008474711154552615270603342969527797887099335890775849095183547511820065278785717930889361752331889235940820152347906473299521631832135481858130029986427182099684412631001421983591763934039623863225978891840107467098464612866830680927416933351619148657694618001007474283552359597295255178772900841597235897496448529820504797629866230896460792696652789956099370897216257712984497303916202433792706944698688964402164862246731307520316793589305494129639937862906700531563303571033950074373504054337220735472477472240655839204531563322186652224830791677857979453392790446974468171244451115762359680423299745820559529482925685249632677580343043370289419876183267062416658883905848031931782238326394383352356156322560101302656488157105061290087786786857626553809821264774045639305201183515997985013823773197951659588715499852673626712762464324845370229626784358774994463123978249844143050520716826931041159434230755900347597762559468660032283919664969978072166439679913781320345838405902506399935519780266878810190422464024939546411120525117206707533615290417565846710091089849994913749760527064913427180709463132912582968290175352981796003611080467003469065160350820048298386819380077984448882976788805250698467623677458736716473746655478221011537665376034051440586282529542629866715934113935754110495152127809383251226254219464245791686048718893425413006124303017150406335024338775570731145824585506150075791708588818577342167567944481293249038737169263148441762134219185813226808206932083052576684577455984487468936869467473783753285515157041636505224650249212057461804757567160982954480808344526607913921793526364969588197860187228813145074004288900164674226933182034472761081910817281699029558629235574432601774071960509768271991498837537423849870836996626408147307992614859945157556768785398937104850446630601899662836076427506484536754067401824470425095557146641152054835059352368055722344732598898945735274584636012544615912786123710827375074568989012143750346583540866419638529762846211635218783591652939290540301669678993080297377784077941936948113824581122671190507626158968826307150051835495896472419504108326448804977156859453117842689705550191666879652669444851131146371755823996952854243456000714252781192412943186447878246388796999533755716087309135548462476364974023545845871913568867754084690938404486415806347880729218263794820083045314318139379719623678973781594072522766916020467472361483893770624795235831599744396764191099263105623470548863383179065428811703917347090713679098408138445156777719833205334343313770487921284934419931965009233071847234712220823042638559008294417915666417943976849817787498813905450066543344325036748321319694430105578313502993268505038649725075661137987335413524978872164721946791998016563014340215640726131930695518980698958057077579424271088781922326100380109657755759555957743868117780708773000495538361864636588664980178630424508066820961608138757022159778659372042045828411540783139273012534263463483771231446211117027116046864949039173816013400524205913822157765827178287762588128475101266337279762645666702782124965155048225171245597061291802539176008290183614124981464703449142860726168100449283574044210654162879037132659017857686397252356075411694644144945968829109089223227345748934610197265086443397951622325380398842685492961334783787810275946428494689108019059014943353675034881353100388550598699758675140150468691700342584995732221027918388270317186561205498507816607932013479260267609921894366631405130711069077103531888204352134147862467432098539540805816133847849376522194561178632579756406864633015112377900327108880663493138813100489451899792198771121310243739043853870009945825104458306903290996850397526190159482947324182902509768504299734531737159280077957987927704887356902137000415353043587363477282362619920703671744879772721993033181221215827881873337923785332995663297077736532661949592366117749886608909721750303586734362554719855827861531330658985441076206495025659558339074879696297975159823633137726090038000948083489971955672385057303306443435932816779868189692618036129616879809741001005986331111273271369744448116313140771014391454979211814507420660309479751094060703884436187313752426727047040647127065621061845951063820998836274986235022985566003545616188504691155049602215049458681076954870002268949928797978990147565856050416405926729016613595073281367259563442173217075823188407638482590345085687565233735227957558362999450793512532754947785192176414172740672051355770563818787266699782482179332498975934562225571400637702828208111816993143263849465144531545756277948370600900687512043255028618290158526787820447520061244215262464031046543536723454453507058403599094952575325138842651815764344639209094541717016995888082757615207740026173371967456547089436143458944218406333682526801321871706941272110690069566528879289183639868541608232649077947736924633191729619470461014150436532058938548957301431423300541214508437935028740234408495016429782486556220404089666417406229512668850658133066675350561999487260950093342363784461762218777736446819208335467364598382563969749051971423742834460709996221259804672059688700386381832359744034478649120706668264407513155533670891798594500628806726480622480876663483334847426782291580039515094194783483699430680701239427948039490069828614810053383465789888861676031278167195829394154022041608357657879589239728503660711611930121438290199678394255303402356297090537361452490947837340519188523773494062214243249300547335206005671274290983318207342088397042918200547295511680302346468007672298519804267193597402235207268062620317019337014246444995582546932867473818960134064429977053182907563918746828319489141330770005087310869314594826242925730250392633871694453861658207696515137000399306899145551180664944080796605728789314997806881674920230733726321743972120505136561764454197486326306194742698218373513426211203440702775090668026572495098905616276565359634117124906935193086762720772904846076240989131527135187293549321195259431056585670144892463872461016468754564978577318000377497677575418711993423771701013733574179987248006244460896601794284020355078615108043694044064657862252355192965819921681585358050911192960688948368587742395072844327292529476020470488581009965951470406139385033852375172346859285184819072654114810772208223029655564737404623599173769832582333591904391922893542166446653495182411148694821147090669862333016410080284428016585600181821863371412176332105909410073278619770687668555014904320294356710746738342040068869189913799999495719334220647443121605799721270288428167621773571779541190518432687275351948754593888455124628660667439387177189596592697376746736212847589487379543619375993328791635560809195352039708323967313504444510695006817780955793285457872582337069096464043910377826897070849345627458984837761667807522896939372326413015583150874231127549170414272410937819632073767820063651281589825733345360111957302200289235251359709169775662613926657773634743995963208310735366881497923902033573686955709765030068080907443305343686069539041341717876145507847926220506684581660412666359298432438186540707868677028658964266805180429566523913305531878779481259803415448735469553584495326539697213297670237358318679120833115641722782971663072961189687014901151727114690657537376003071544039154764241874108505377699853155634064924054246723335772676212572642446959563102626068776489505335850763685406689931994739436814836000875628821344607738180767726273216531571217156621641107146766098646706007839642866508580070164525739679957778369548614112065110555059352688713255051033460785650053735725006826301468024851033959873088744867150580411785695350478728741888146559136879644271800672920792353346770135834230217956967644743177317582176299237077521825675981729280329934919548980440405029474861832714720011847446121710290255285805827443940858506565127486212451232860366346285570496877714041352995120021344215178125598048956100151625307038894772806765306617743174586641149523942025021120708450657147476564770637222546965389381843115665560693557641759308082451415265295420862128339412027771573494552376528254751553353449759786798562269232131111737278862269641573175649403247030337720578857553538269438628298378071098088036290949830352259046064750432003067471579530712345776253296916615851399743073076886565934015622433592835505757530970230805075136562813453438314794528825081516733520835383859613967862602567174736005083367318872638933228712407329949504780602805015838514647614898525046485431710173390597797806254358010489391439225685880036575315552237791403307174016962696265324514899304704662400522984373354283324168578964838587082535417577809116441732878102085408350912968331504663700022648927476271222576581703871267456627271819738263612981845212887849227597129410554240488061927507001715757507548358196710432467683677827280686101276047018932354704068475293181981989214328965481037300628644184261857596088450302227881063146262216582731886911015551621216400514956215994317457654332184463954839254470247801077276829694279130361029683267829574248704274972985356425914021694089554395346520359941410685522992663011535605402346627529844014643030157995972794971752442461234650803288639338391565955775603526928512026888022586641946751523835813124211802828156354842442563061506561498486565289152354344327953521508789484259518408362584360506698383797765152842794350130530015854279261962513252005255449846931102840248286048372087462111889639397731526345418896644440666329654365686478963656974034034450516684196372915006360619665112747204837850659692091731667283214435452393743673804785590462635411637743485614468902681493533903054143046397896071949247778036849071033296935888613012787081594664101252986118577246304519418677405181724209630993285096653660490826737621876057480080729050360158922416941898509875985435235800287739100838546048658912607259308055520955576866587576524788665534356239573636487814693643351633349204006896368513870762969725580145130824503912983818342836311675135738221619533201609902818201480471755634770395852821462185066480418619523249863230136562393418237144683639472940952579598401429208044455638510199554356188525734675314079689291344548462319583989071712709534968697686265958824634749675953150938338921553451076838388617228098856291964939802735012806697412843698017289236453444442958851310024625247427721445955102460383251500491438065494035384845989799566520977573799257405855211280493151615581536770740386630088169591998900352101135466743356954563760930216923102131661963080028321851702324488573847606655736400828594409448501951966785140936009713355462817334843712706135748667396446419559160282022820769756144186055879430183560140648410302536578668568949654838740698699280672363823061637816382151830407300568033160532129119232130507559515111089538060822656425920769864347329922827545773705476456155095392217475870049429186150079200168788809561882888205082500430105084866760280742704810365602745303847594980172498530196911614310018876222319082246782855674192155637330477782976049982567367205153187178046731088441609283701917697612601216376133475330107290125440415439170795433945333384201277102633737233486075110339605882329765809295715643520988475116196355821305444203230792044093201646978580849963814591179388620790837187497525364695594648598410217506761100747207982569603402744335785598796077171836561390005532991072001219170885676235484205889661273807082874479084685746954994717614466648133173119666971838572790261377242707676156476154958789984523472053658576886998350414501484166623596613453118447680033914562416554448637914341402048821236314791436767103801006794559563290850429796301838279151288290497392580132548207840583203798361845578038538023182304542815038938634999345874024645138304146829165019814566106555790984843903638230266205052397919888000773256865861814953894984193277849013182217983958669724715633297231240919574850608407991655939583253663481356926801838565555449600144964538179703568335929819017709238850007386875221717277150951885787735686111577324639387303082892148478631009066327151072562101953224856045587644797189371226587246939728593457166606238441880463641296965254025174626457011563532311830300803524765652855424754781717568888387345762288022724312435613191186039920774496735028200586896717830362645245202367305801073278193703973257559984314628491186163077579766911058070657866565418325919416019631850546671140671948777249631256368544133755374453723333265240588532233189845227960461482506267869102082243354910710352350174261472009296983287101727462530108716766124345248799377788208259775382564135044825439042214784908601144288911446808275895068378975390402956821800018036658143848943041654764915161130751106933923521603943660866171618645239205199463896076612378888280465837837469593000037196205767720301921205577446549706051932740028995127694880066830849979215574829338104208232363634667538092245994657299354352365335032255096037126612365210259320354785052351616603800941498281311430444099984934024531750503464268833823141690890083341538563620273786793758925598740505081214504850527007001213943520608065276652259602504456277899696818981160632877647553481249276945154688786454313111376543808979318765451296863531816281383866169227132728291687026122969294257747451603978564195256328451574179226790901182179909280059179247715853759944616948210201913946225365337286816239746059635093312433400220463572452635475616130707041196205792038340512624924475178966184589934232440070922915299019207570538535936728250989135691085397923746715628514362056488986911476843033616561160533615227260477461112541405801309975697351423858489884793408892248663367350233782411280949551845728548908282960873096036336088667605143343701140656376876109908519547627802423752915130976749861262639921607447405355587449378225185900112597354952337273272260534565881087705080349780102459665243147984467925105912173962520143747280250352459488117545387723037612652567414015349799971350688377187778908259389092750093925193177651397893491041578940121098435598316264104184145867680387591512196994393524338379621603948729108384243403440441735561501034008263169803441645038814680541541672451653556522592277473141483269611110817007055379367111640461200784321051302885155176720380448558973538851959829392495494392499651152348659296509176490648910499898625635138275156362260920823724510701658508821547303402848501045331892740880901827244198266133174661181567005266854415953855623375778173030945069837538717882786875386376228026561492329353170057745917951351877808272575691409693082530359421356245966025584543511881631060226089352495963547902532357826589063441229176555638138566354265205183015200396948484061378400888150210889584819952111638610985188908292780286106338680126011203742209941101478144592956690556407940752695940050340461159989062736328030398998319995996761319835933587553289844466601309579717382225944793815530758865477119996715804821540879573721544800613099022217016218012297386409354222120916889979137466534712357535237316305009959033984627775699770207266437643277091158848087858864676559696806842828309118730089893999706341362630852787146164349826499489422337552696035976806520332948823174203555094103646841724674413601079256592588222542410911216941263662906047725194880442046450330180027816319174453432606870675387758164949878838109871095990245492028681650869666129761138966878130300953241337343583653025411015525086416300000790758142452929230993930708671317045061164980112939911018042452638083909503144998336248563455083496929462921976588244211231054443985972281786797326555007705286186596634010610073159580091175437818137909775065029361172820509337959585376639658364821630206334179679671275185503113062659988705641424183472416539966579859201387961499987909262566848761028880927266379935078123473495300243139461306360909447370358476249066037260283619003935608600769098083748894842335853772983642982654485423869020556614681079834240700989639640140213151516118532697074696583904781295239088881292092046271636969122854019842643725230250016119725441423661859469559207626668490286354153471177130034788784793741999601018135363925461568208436036290894332360041556377305164726667832176036215245784333934263773380221549821689122788841154504008189857838517342334970048414312161166031159838618809817344025203262126250917312275847009245284986326243451250931031196118570555885052582229981397363635022792577626120376336297107084828832607501168431513036965173279112340576624855069859669050776939530739614218659658869819653124533098473171551930986640692433699973575455043040699518613097090133047918942948279765282428199874677447848204834965436911303946199396162398821989206942222664065817339436174961344530220377768496199285647398928156184345454460486356862405513228787138024594545081135787440949814138121514873935296315702341808735002892029964721425836052792453937781917721849130569163458877733845408759452838229130497219848556440737984188053518575133622844071461132545687378627553645577211974178141721080949003439888206167765859030971179349250025829282227156520636554470627475669246576241899929684219764703473586836134177511251459217112123172247286787248154606640259034534816302200956995616850206640356352146564115763561405507903336208171004849624862548244790435089751215376975062895436439612673027768117603543408046273545833593039929987231247636223859409735003820964862806464665141581081153155224027021593954671777754140367539516689533433560644498011831665806358372277758511578501100401103079245510555714270350779485858374020877185505771360379623209497455895551885483321285889019075782166570986756330524759592471429442254749057296345198081451550385385941813132794377723647437099725755062754240206128844780546676619671897665307517570958634819870816315695512621593676398656190838211750079779193895679143622638857126116791648347716790145729188974416494533934592772393918636822494940857294267932562769386669490512679952037459229951264682642075763004346614157737410175581593310208743327861612747466481390545231249335056882397416727177230609142608494624781233591913807477922747411329973995763313952507167548008925409249693504057663285968200431119813416844177120641795099265950775975125210326601792645777635319259738423894130426896023547991891371557811488559094603635448574076837523367381480330202444526794213053457004541590450736232333795631476624393185175590418555978352336779301992806763580019016929054113002701725115385057736490658491779675708339621190278323123984383020338920872110720923720105291126026275866455004347143605281782913443814696883032382195807003286935316208843074944013342471806386080579383915806869705546861924845745518906561127652069340020827071863053014880988581667276527927480702513088320518175120056882127721608906400953304137725777694540962919386960159915668195985865054583836467724248316056883345253636730364983324997389212381474136389924004813882929226395395688691108023214285120398672511463690744691983695825366986806131010458845250858823186420530325944685770204862189336022146487076125682248563248145158787686528106366951115324467536199155996522073375806533439888172300514535623943874298870348829508301934104806408781646721105861511048823584159491515310792104461721578963695034919704134876727944076605397049876974656952451195139896045508272308638873739976396186108037211542162990129356997976094385838724195637046359170348264254881796492183679759412467179883281787618998412459225413695147774201977337224402751700871067122949529810848967018364173125840039034030482850168153232851220606020907785281317844036238477278075998387553008449176295058308334796060799926755873042668435082012167828199417572083651564139487547322495429081382671907162367901138496934062807961665353117138655063376408510592769257786925804685269705497098661934702870147090724023070524413990551449597240846927399611293985143104809912570838432341327419166962749829969001498338565029999648072278647125083787585060826763181968368157768820196811928572175424602964161872455393802469811887799679508702147279888421875318001002910586073365862217149490795433941665752248550726917155697088313348670728325235511630878482233784280293427486333770958749547566290331208233136904866203274372858140698274314772627320065888579111074072789530461203182178642291395303525797439955440977797510217058106026172247080842915487287444722092197289608294269037545937211260479073668741591929110829741904547170054875017110000743061689351519201247182706392450424210874728321315697844549622591263617822991520694800220306218782437044909666781813971866203095036121425787370219232883120477176215846651418688129173246640831543657307998269562212855224035531176428934146174903857912639242828502217691801999344134409246990029667469744711615455687295550881931955866171873562034750296258510895794640043699196529994078035135227339849032873866905588416041088727745404479623780282035428792434582719166185725456440104364869520552900969976866570326698716200106442199301395712564387160235030048555566825622203917025174029181522375659477415900890692592086635184522972783574716262005280270426573113706152292364306488080120506697949573231222184022998661814367697756265838179532441541122678232034013730070185223171405532088104298734817205247633266860328200948977803264782711878716971471190859238648928142127564697865636843130872963743358566509084381312325335663254996412016571187518227759824775824980998434123693729707435251961051831958793922758148126719927337807214430875033727450915099520811748170287139687719429021284209030067369572786801220834303339997475661881957364415664887437591029202818188997799675029493727139745583235734519866059132661212528432449120817053396554506223377865947999083917761238265852681001487921795768040775822866507926718640593922517401234533913110648215842374566253213807144095141013208459511509054737097296595092921295733987123460348057296548934045418019973457421552222694182801574037934396776756909367382945212584174768496852886886342991451216389726300980953134498807259629276028767230295993918104113064000903021098535975325076716433417207485078933611242505628355101578499466401877496426352479493277045561908422721311426752223022129990732736375787075686637686506452655359855988055080826586954433418801147807518913633425957109892989590483377373821232660050348599846096688066002370272745087552806644390439272461408636466107174921229426391104958448862212701920734111791106655739634600688797294515744082562225153481234074074607713576381089741232684500177651093778373514149707480293159403519915837679243357532072105245865078484605372454536465797684384876088431383839823886933109084593468361403192750731776932496782637214069478089001776684982802285557681871204485112676297354375289942498930766734275720104783963357319805806855585547686968902699948659076185689635234279510595164369317033505420657553610620330044587123413070635730222022286103555606674236578412579516591267549223704596002874092029661867630676422000859648662107136132111642514881778099463952054612142398005549471722863581777286543561978163841223906373743369357682367717671092548755715177006623424202107194400181396824788730511184703856884496494948070131249302054021814345955602938395744520350587171123295042067647080017624559875044340209391092342796357313951048926767647512953473884582509034129211591226406457056769141388940894718770946386526237399634491205995571237168518147465478508357006471025143534340409644755586260159649023209665176210147948632264509812386686012250495425752992106997390520079866720905365188426594277050848171720376453983960001646962322588222539181017066731238770713330538781357283377498801248573757747399523683468672256616529124825787362674868580053511167703806589332061999534169275788153041491181248412601316225601618182302081138740258149167338045994223160112373814121974967136671425919132031009005061588890221420302823683632394501187609327144520926600482264826058396548188329776135961999828265318268136735235047620327433871108054181809019739252561367896365428329008086681803260501778485380061026182102217077099025209406237745970639857253835932645324271665250360963903458797681214918241917587136980566067007680325182691112487557884020448028254502129672124880876578783343890177145022435065359169362213263703508072655633428631044997250059970231889771906394617651906888290346500722413599594999863063146368306757281232347412734624471720262987885818795598452215426560056687354591554644690371737084806652220273803779419446084613335209806765918578484365759477691329965970240589544511759125129240412270211476561786444881315302317312392033488637787281566388966193768270490878562835305905824946917291534486192737353445375922452393719342906383145617990121236853433401933028598683061712323003234715234130549032921682791083373624758941034698094744256944365453906028215009135848250830699840737550998330605620439752879958591003371234085362024032943723038985407607591770101969889048195137089720656424191868407649241327789228929418239256631866041942645809710591645035054340252728288327542272476409361426946906280908460605162067639946741042125036486670995252740122383529785907246339472567959363143964222386482121887860891316830789417484415199353661647094864955616498471672080090105053866355835026371795060721754996854604284901819190698265442101739175458782954086996542950535464075871230492762395547759415358847426785381614811044280296845489532751531396152241143620886731940724606056842410353763883998330415371039197169921601834470105466297092861030137840036832139274767354412302773179729264274227528568898879838714429516476559333850911196856893484103881056218514403863450463179912304559010706182380380900640337841247812351297195088887098081198706243884433004330758672123227516430636977383003740307488087149462362844708053792734317775782089667076478146892328284309113506812846409039083429522433165208368847641927906326278277615375274742183169643993784785277533899420956707764767220981465639607556136799896805731990814867913652167872102877507477263122578842635414669493964448928639862985899119065350305587200742568347202279461090100783668833901912660304874431154969533388650326694688543954658838375582389230140740582330299704707376171536085248220846207647416717848768577806239373675505070303558547112449616438968423196352736286974550693655451205232657762546586332590047428329863166636739093648450216502882419997287723603490044478475452338251928798187794521820932411128518214529341569195373172573550255423581735572972653403527501313237517882785381264916576042387796421715771717289492875026311048205502000420568244366400458123519925811791996659004201170858434678813795306282195329946905510758638183510662829227451800350864021612957671714088777845701241015891113807345303513046796521862768396140817130510788931777316244033322062585034701171080697106240881131088394528677307378664461730535734623213907540127098560646776166042934938003238428231609234429607965944179271372186063801932178966250942309220049958230382864255327937903738324344500326162904134017986988621931474427562160179588328733311868659904057025733006277193732644228168563871434320686881019723275239492158920527223625077247129906107316755496236890817079603654098811185621001269371376378535007950134336687176354536822369583263199455374769519810704133617782002151149165204021039658559742545275217593569847487874042628989520419403218817047264240470768077110584626570805754436786257324556883243072152693310807820407424934649878096852186397183431145971728640701064641470058844102634968985056578454295080091227717893604179600859597837027302331258162264812026015036477947469943469915621785097767285526954233235828705446525884453572565879750137478707247948711441812902903412402551162176719933771047252481295521922154346677381743746034587947058644641264459600088854947123719403736431255813386847097066333233538544290983319654243267293879653924067183001456214480018848201651306919079509379041499011856497619009888665706200441856773946211935393248062156895182273084806979990634696738673198520194350352359803679303922011247668044627390505245715780858247483524112490949770305304052676952346248347298938637802399828293922226492362869868359561337261357870449336193058426959422247159556010695045415099606056291899087367032346358536526433277532068242823311444081115102711929680085610230377964626535307887305824216298512790187535730959811463546696131799082878203086869731631464694337834668764608895459926315773727983396433697642503195938349952165673365221303676818885507173775853407768463723852050515154452143849571452594872548053279797318414515421365826390376168704311326197148525187380759670100022908357339815323371833830296182956305424798519327551014373528817691000190810413891302589542492423415516812120562925814612437765475239244592581764128855908655459630172224667365460123955648946059164444852307733816172568183166434594485461191668819671379920534036616738891751616051162928196341990064666886511654095732277370833482267855685732003853430007685939227062318964854905850515784597290446160932589578213498356406121941598005945079339720210847759521166942662528126993308040826326701817073892134665416457742827867994092525302228933501044594733182741396179460373550463743394519170211657682569386183486297443666347421858349102394920663317510520270297657014464487663043972820478141515618066704800793506003626162646291019536704684789071094149201616954041674101305010893712691117635022047035046122005458536497481644983867487058790212052470999655293632208662058106685829269967056602322475119222207102688054759349347935856117519248347606944139837885280797390870188911438449783310767803249832530543905817257752254347413959081523542073560701169287009893124029324313471393682986649492461269711536497728735403228108079666156082278138753217460219734811606454676269898434355309161440737498015697462350084534473947785843226575006585048247760853922397731235328951299904009048211205256553082731858523446314885282574835651180947471428745888298019574383297270847508523051700053599395506698495716688254243235230589588588207203483992529267788442374884379986125281968280854908188160361128784643029065024534548071464589628064100451353129859028555055177666756824263613380698999864482446705734194076443372832677455027306195115230116637899867432693898240614451419370270566618327954525091369604839806285290858917264831131537201874743081931005899992918571109916815334676775632500712876064660328001529804705956905573912966416316687468028376277647198200935811994279985219072526709692636522587045954762866452228694715595495956421301690200585587293630112354314627295383181133866291163874297062699884670886410981510353699839619852414470250138494540320732961534232318491964026455278013598161112609303742177746744820542590547318790386178666870240222708386656535426083582603511916665831678131673398684181469818768220389251132309206716355988748210379197600136455812924430158052912795560555571415950207322111823009105493786126463835055875497061538804766467208673802763820751633637857201409451976063761857746354299485627805866465434486481631337995978803490018540411817964425121221380704430693056038689784259489426348497774722782781338725228805375574835932754465117520296897473385147424912815402516887123096908230265142668186863732514570178379947313529729962346440913389370555894043596520372094838917644710308054373600269176685172571446983455978395023438898191070691537838367033496637477205701698920169350184227453954126581406962875769290025271580376805174721558988365545266794257379658232972055129333354552162984343737021519480064313081313122157939377226246371559647792780876411204429727107808694497801140710184594079943345473624545923732237028803125597900628733898911404059656516723094251687161836665344291545612857818654902186433519783663817693267876380206600139162598053294554570315319932151082590195789945700906452510823791924254583957387967097751185464177567546419828172602997988945142313523839524020416695433379748456345252304400340836555096471086441170401956000156179860551708025885481450453801635496716572024801466648030995503261637043943631066091963978527952090387393827243038645418144894060843508006570841817828606285036827499774553448725138554117211117692279523344296285302094105781760773034588981840563588336933591170240112828723726155353097543264810134538827546978836349153153029786282043426167181163190417947936443911464781572936505420223216658173827018730876560852111286790116631925819466816456570190999591449257054583928008284488660923786184166148068759374141132338722042402120154347029820534154205738587129244891046134260986643406032967244329402368871778656816045854268812986155232573346752211189083923511170833985201155070004608046447914747364770524201552188020775922692439859937703365116930030332202127614479735041587302413399212515524966197490372605691314889511483076546351854961744979349238726190646427116094812705644643355118514752157537225554894126779677061213125492845941247866926501422728271117419899680741420691778570986158922573257467766180807261089187884483148915737218026788300776452459394916496572875001129903625618257467991388681763716009970729903822501485721970335784986179029053054200205979162133467191454734226289277544428637366518302911387771306528919815219499531290428164171568733021259983802176407363182809309270567398252258640498824466354514717708051363717290889468571751382228114173320375051600820609095749976054612867239695523719396377967807197268042462556323387752835449418791694920295444355706296818478725278591872590827696438676084985666021607025925615320855730021699956094399702970053103822329672710396003064844071391263052413872275558852646731874578453793628110831115137799674535837722959128365474420410288571587935459843390118148356160661748861279135206505285533033744735943958985276609597689719117270676304890072715914799226870324528792290892727004786151881029787569806984960842974404023507166075294610461186301092267861101997420898454727187604597111423190424939434619871347467773171463103067699370300750714310859177734673501557625028906475821229833163991660526074258124039382717751850476015516868421870040107420062063937326490662827522016046791351038158344595737157727854061165336880594234417992295139069814780646958388243504372308025114300658861318717109979127131388048025620271102643595915780264970722710634511879634966312523057402827720805694074642487650132367373080825142721025364476863110768203040101157577147495055066662328107755856656698400413303988341545920319825728659060103239775273675945167434438269043930355871975005172440903363511298945111757636956079442816859124127390568093900602480312670861153968026301075951847851979654128968273989884051637940924465376181966212595945602598057944699191160510124076000250227056979111362736664232924252737164690608969005287033421676985700052728682661188001259278081376857780525711056395698235118656904054202362869687798681465055553496404331863817740094212040787223535727513168797254747163481490419946865406272437306343735520859468920173061107958692886498948498924013059498119077848151851450839061903175831850662829780809752017510374983797500481306014442283755815041229280307941892031704813784330653873505603864189912428546117667716773220082778106884244545809213645188650540911963663003045141940447376842507727379726451321193524702543385220153705094419394821522853956379949675915570889165091751554355408231432218837642386972946261814768601565044482050742832869276349247852005906205379194906912541274443975420248920284796446925186324113869788214838917231088669576360297386465648318663299441087212399710561237945673770485832857608587422176204318225135268079406030382121984311874540444694169246321749685967550433883363822216888646198044014144495552611177146513738091433400969803869868317283471527167065201549126183713899201641484150017243142046265866485287483475623075533047711409417094129820378299087297831436885399979190439986203969328123171464632682112181830095742094589353236655124998284495256887172855178060559457172843281425871253323596517559137651058606016213761440626290533827557518619601131979708964190824873376965516826511386087371787642268394599962633073036449064357849718849791974893601124346021154011536570095069236435408665388063283954555889335093695446886168941792628636196873836098599795460531225068958738891329626421881617167114943348845753896243627911354253155417465863233833462020740348236046123189310461275903321048366886118176197181141888710835794441275682287491251045401700618874541983508087251626575076005018493690688242814605165998536037818058571172224095859114233305373689218176745800559773655867889891770362148283906408968860871004572758979369351401467218563145765724441106480464440455701958359248578387443221331605920036440503601094606451673972393893805000180025921529098311040394748549580915989306337853548576364278388207207560858765184891589442549290698436424551847918842463767102585862499443730249980529630612849649171628822848393303561391081501522171134757671177084589291413898202442522283380415997957794193548705158629399181041135938356640724350103434471142749521456987537809504216684655960683960070152086213905521212463355375563000624021718772698683848830270841351726031978819616153107879853008885301594257874760658749457591585483481762584752248014361015162132639743607865988001282600651069776925148453800767154366864006985930927843869790902110232766330238560609044347413901390573045415915905024218412946819870311410425632165824466381629857970809361292443431250758920798775942501565060661860184211084299449583906695253855491998348002622122976367751945455304227131705763471826620251001476225084331212354745464888384556766201088834290168018221828259987750702903401407988946553918511951402210432396985301969016358355980222923710827216988807149192432537602315979070009757039108807908156142158580374866466099110320634292338214562622661673093964215119113729011093798586706502975095547103865391999919489908298136071336369133813349563686239843085201456521073686246930106935333019002495898599594061425763178668388845165454703413733029749965293379719234457802937994020372745001004757822995166276296689997247313032503614159462282283546254144751291054545902988547053954400019902600523183925889782083231744867780746269012459898318577921541148946255435691842406375156838469248476428214477378043965260798671537266270255689600807934131499064436803706962528944309719703935723777599284221008547694851655855910488564278469873457577376125246545355334077891397390709908711909764241113483795771041243663397465069603443033721546046684065704336644036793398027871532882473312546231955714061436816619447855756983865482939916855522890994540852785264417440677757482832983379423401406845281689899595469129147105854294956915163494677360062557493203704538442327096612440847240815192547796750232106822143934548279331061369808123373789661363071129523483261797142866651543593475738085656107234798426390950878330046908035780433678674703099698053749516713089760017206062091249014686294008366465729958819790633018589912712612398817212237971636822693607858739596452113704477759308180352629540164072935371280395567887134272463473261046855553485246589229375487673670538236194973836108924133258795652639290789091361053336745404274358913684348346190642451262032876945587154254765640220257652925922219270099693632539681617372445865020415102232392502769474283239108776116301909334558617886258244186904814214902802756159997725817503268782529212254433559459038484545203686750184253527186335837653911879596278002440142865690344693445047645527218278307750001207220207079726855856357666858759899154355620757758980333562994307724487025391570326692548120015581601524272767851321212122319769980903865946966726094245032557097187556010753801310038748743675304179287769175434648844740471694320583330147520447665954105157317477257703454300177852399342590078884797122418032798369187938937016636452840379843763282998586892254032546356256433808957859263765524439405424564273792422921039569096599766396015678054175589537504544858247870536552908540756631764255096425351571979001999084359828821068323187667420505023399111237746853143521400026511027474017395104187981931288769860159591242857168735628992557221959825759967275647686895449291753496225128629073856323576355274123009559984400598902000299333060033333882109959587030689186204881563179116048349627298712107139344899569742095465631145753089215207754430454299605251945462189347822228725430435086029803034258351382089028854773935307483245698884014332981566960077196233976504777098752447015285627237377385964729637839258864506724734135577199512210810472894270526653724647605687199844012619313897780541393629677364293889150301498199023979717372373817711879990254464939236334787957885209098268072227015393308399123307661288059971841761908528048399041329210875209102792597730580077443228120366597853506731704465679019110654708731766124421892745327042767665498004596086058474792768051939246400103010925224898164545104964844804126352627329087475741886315684844039902602750227572305188651470895683172529379483289630435927705129948493907719451911923306372971102119765203097503381973655910474254085589385114960048074795687608502101045842115213105409508117942571776756416263811432786617152661729389018361384163949707121879068334756299237925897015802968163909779558707802970402557969952738416833185444845445858402412139351288240180319901698633251893153045198263225624564445276236097392977071522424412224330236542621637448222128438276048405759737086204518616662300156009074107767319718961606956678597047293218716923279969108017133147681457499990064268227807060489178521238835433381322102455815000157749445826626037345058209614922913816697796613361510236440232404890676657630900278050639262364663208931151842864462678379252287926331852712917963181902806014126186393506313658993730716516562665591761059290507668656710811139729436877360691242655846391656781889386096836010478009461305378601310216366074461229539945429027700341706232630351233363973628056992541290466195554683919652562456065923844840976676822187033151352527245144433334668661622806616169383311798427780503635797699160979225323801464938447914594033765775121208047578187364293494702135748931831171859654278342174709746802434688260108376588964457011090478698732269466168507346851443780387965676667872169500137699786755930049124445814210886449197763117389277046670390853438474515405255257350369743168934472660743186723059670982547691931843259825575018509549440426352562561095272741297505664657181456939149067539843808261555795758693574153938166990530186733712961565439797069812603981507842464865757574890099201558138141749663326883921973263587674559440345872068052068917012682143916115255701973976883103111371409749172891383158203687179902881386578008238891983200627491337017481380850239400516570363524853530746118875241691699931015075778680801206646941992632505477796706895729604260759996202888971284161293314642934032872497000140018089599605925095694745764109458627115572802767069789658061178458176774409018130368698917583656322544960895166668834564385802343756095840732764698550553098808372706148154603159382607529445149685925899314975422051184296654803962413862478445559682458109982399357232434452699913939526945219946217923848583979705372878282353064476664113283188175825195552216875532020498516363746008288238065540147606833848002322574187055705864801780363705342264550778383622997084293102824870642370222264606727783060325866462543493180292786685001835062316383349105840527179133324830549632812347805539659562646013594093635832428246036802884981319998044701247957343701647218705642048204818493500610306363971922979261887791922146730823911096855119869298604927511402772670143985842098153560862427587592102335634288490625477959159315091035711296068560534981994662656694081294742496541137883369837830168594670630445934787612204524130448136217258118243291897109165914444383969555350818246752744869031702318815223975173833895056339212354927654262962314542690343823430748615049871380058300368304539223789609297800009694670645581800283533352936096378657581771300957238563655021984716555857742622866478982452670241251519035926126125234433898047808992001083078946194888661778665754734189064624358371646442188624817802627042723804595573380827795766541536077015562121167592893514904516916706300097856437815374154893371988848178766636255217060633165414210259457728204313662042899977085700968653428033974766802371946258838705315814207166467103617265263739952773383392031216739425858563646272382064121172623283333117291062092796030111429289043710682600458261580859492687146505181605728455342075017071009565868571256023919522294988082650281452041830405658638987398121710530574534045747171944675688708199928535004536217420921798158224940701806735869275320599118711052810513017210340739392263496344598307478424189899327145534040784245546335716227922942266084116018898401604038766384595120847365719469789072225204729192941959624567679712076435280884846828872056016302105750030940471690320259267526365910378090636186205487700836215984663391804849342247647134889257575080758864692332293777996223063467648582287468381834761186796778241502436812284419573513804077650793415986750303028379054588347378008337918142190437717121293395007195508093067598651648369497827033556579959890825855142040765147440845239782738200559364950846346686346595005406369574949665295671194208287173415663680777267416944641933092635199115488776311958389519243041671341362583225881136500107811258886262442494258925857252867955636336070741349688984182395738531861676826584175239458101034281018219852872413075451415158886672312146938848889485210552175373341655850154581919796230703274142271635872692505828899926979005052758890076155095065524442941486781200085358306456455347749688086255916945312342971850792007341807569969691420270174417140542007061478559267955076983280161762415170967171893905266517242825579230980886834096626248454507706282916417127886611091773438099439968273059967811906352160118600572693897917546912934050667174520561163520939428595260137650194669740390008445119847733928794881754319649877208104872848867976301457852008443320320252153066243512184257269691800003125265833986661317208283773610902554393487514671877760263380104494493911046701779923736060478229433053715103666563764396972619617803777340397758854664663479333939960382539710631233940823438846565073199139132429303057975282513830923700771928458940804247633290402661668150512200751172359042244345343681157064311593379715949588202849851862531804110636149202406711186340536930085564154973288097304304239504519069731167861293084847372590409069050197574836764254721479263192406107515884322776951303830354910109609049054639410941691374434088030344896443983723141884926642806622620258279129371555796653915435169255450311953517694583597743558250471961456378518568484879939050416624882858017340904570246475937465692731535589697354368394698835973791197906693067824771326292808314419707352460826550935011671745174183774189880327263475219292048969502052393501371088671695870887629641663830235157839959309502257062301641466247819116873798960208226090505153722338539314060495821153871863925391429405952610538475730473133803651056773318573739020438730759286920227491056252236361310444042005359402920275010771684410591295336981136856997215342214875724249021564251980852233653981138202212143628980953181831685669332765710815262229622863629801445645875056814777171341891487297874101965331707173080068792456641029561458409841623015914560619417232868520620215458328748709678341696311147166693376848340692043891022085719281433449692703660365625634256714083498529495141789158327335061376407151747443267303010723500052609811421543271976563407346482549347602850982768863001725240594619450062548195944470887798885540589813142962571419816945379512602765213257979141394019228035379186986222140026889911873697297651924749530332317686517909270451911401584125249487937762372031708085652464154341263855362545062968475870754574991804050176647102686301837857751384258588087623406514600558140254086225479915106273233487894552768797903921391216412865526489062674564957682825912574772158512102871548016339630449881220399968834807130232264440068072339554004236739694589979556040732345100607139005078753479053037849545297515179622422021124048707348326187198841445187028912002078953364608847591231335451134172458929973463237133949579283578783709360422683534244541712295330689020522146124927186199377257699968352537511919062893971770404122467314360640446863292871788846437738052749245083168378865362649469333001603900696682643889373007209233901079333124768803138669519295629225720157553416752144570872559240009444760360238900528309833529626467930376871423989023712242845591159475875468733302379964380339506583620026787810065179420484043348262289978262712506894352341475182622463735983833533179965748771796892847380188928898860589687010762253807078747780099584064127648631115562617895608288782518151077763727453703240508936947278263063962969588395376442973028237509897894943320732128210369566181099615707042092070060976586567311659106734877961377551034026772744956801020498057015098318750338817892955066575403659478060388699912019453156716719153931668130911883184139852814218370543770291890974797544981314156620592225074041882496006751858992507758517257658282088240540949513678149168453422235221953146193615741936007043371692100767472777988543959886535919929608806915557330875927321151350246092982881801251223410276982251041368144529300783655964809317122271570315748911493278724302158234669296917047273938992668043835439227013982097214891742212757573349290920797470637633986584467563972046477015023900944531566640603000377047526971907072523745376536349770340391735720984176514530792218922827172806013262923272174504108830588330712473172351677711124248876091305310890407407085098486816238209343691081591081787277408636737464332190597158810905109019892335388116627939006337655399286144209002662827362600346358097085339686107074672526443984826674400808102717795115576127187787434657770087637230612489907607098555649793598913252102690152504519964732004531528599107419551796031611961248920468642842839785572418085616184505695043469761220071249007678869418530136126405603245890284558077429668004534736444517157506468726817314883745700915006794150810349714284674966339016202343694528694736591136477792789542066705866736187850190250601009802221842835161092868463185409404907087277793313987830254335602512576786275902964183847280132342656959934433421339232129202023086644437275012890930670557924167264627768221634886546624617460618361743166441501479202958826726833059086106568644308747152654833106610037261939837448981763142346612022220977175140552080329743243038160396618716408542414617568318461052777257792868714567848263517665734021501844645985292192378620395709717540830511876967295873968096241896971195026187795236131095954258514654586753297743081495099470659029100607742091330519817339200341812587329429905553657677354775549108133626010401188396411969540774927102395566224721746553913989079101888508962727771898886776621582146287230866952456018409617026907993178240612730348339061499279737488763238651247773443422413763256111367676339850986758670124681108248218385897992217194728202041774358255171951919059484370726108333223715613598322518919296989733640074778463022274699612241520193900956563375833983668248144894052944058027886355243841400719369463903069222943146428358455108880634961424244857510520211856810589954760694254498148022812423227215751689323093754030798209323285210004937361431022952435771233710646077387608344386825446425234233055336939401077857098628761372658396451359451180274894372136342961844055330944804731036511805775551122886486803327373191361343217412161898050779902866921515997844806494898257953928578905402545553155516317286159081940829488885305983417814421203517950390623876889749206191506494180232599595439892118011578947393337013386052852173465451165185000903852684407053270300191715451328902160667110052646082308399114567322189998488933727220102084894379890179713539929753065926702239200285885440212728124976641725513663552437680900224703096113409724285097011750933647959088958497911185027128026233013550812624454974855189026627769439085802948888768122694951971365512315033551990800261591512287241515666002672093939444010625075150498007325821265265556970965541044703180907824050593265659781904078551390454073952514588860518747505435108517710673203895162847894672314274594984665980541420513768537159222458190872414879340445841716733539604165370518803243750723688430387803753174048513842728183909226198791118968412646711735158779554257266504580248430850614548382886807750166409239681691142572753347063262504039672499169008712774371781034872548720415185623192039279744378737840249058677601862311150501688494643344514322594323367682595497678681553810210395758288962312290554144460505969493036306701727481185372234775226585701477198043159011645682540788308335635323464486988026108544330000047565541116956582549363097621339778385190611119001215396487643968831449934285496715478419173033147167731358095948187855473031184717257404786955276284718133423933862861314677697355551665009556351608953120861735958401955637428518493476522049084588186941914415705637784403655952105873680298172309449742197587464773598449616853221530546447385136537179691173199736327755497908670028898688279963500609858577670030831353082977986235427840730178753915759403713177107034276304776006332065720360709992041975901838768765795832071645107565265356971760679149182154766845134176336066769292581160919259415616099863144776387154045094342919352036924253572769713397153486802999656845851443915323792448663586252761861768361002881356362602243379309197261338021696638966589199142882425266650157111935286309163324793294450761790754541559918800201566900645587902983853457466221852505400827091943284058321727502791451410731223975463516124132395227102530408956414501776812648756184090782553733639777483692284873203531901275998657371911006435323822470274566502558583531700221954680748692186999605461793098058959423149516430554548038939083011455780056074330629140339977368268937066391714575969085417586511984471994680309566371782421572976084466121375574498527754127098655608422180057960222815964369711005365355861797985021589813774522542309638185466724258658857847529218217025985225381010809084337842002828941107297881875895757815343849828197236390972134955166463208907737737089452327032825160625378332446799201626349143486250368582998960296814938530136349685990684815127938225792625868588808936105729236340962338836342957120254498790290378419261981968244091350870036100567372461070656328019245058909066105872746509345244216019852193795869575864814071141685990567621862090725364295101362446853114669069720713490594616087553261787431414453664005211677077522876890889902457561649685856985595184140669130776943040414711254365663322997113159775772638533884663354942302705790126067574864735805491028750074436732190557874012008380350878292415459537174244336572323893244858974573565998410959075399359014579818308337347349741676075485820838783063987775765421197038790607987639762698074042984617724441348942552005551175189616362146628281413866706030475856097321848033111758442490835131927472729912565483390121083638486918895693967645538499725536090209633192690567593162784273163487923968763544035399497507568976959620449175734221850632507285047045537309080260351251854131402845031077104429204785211638352106285074460605730800310024821400755855931885994449468250771354742952782050754724738850141250333949212361197680491521108739716827673478521444155911566180088370755474958748150868660486709070357439306773816399688957245719134730122319006606304762475748810376897565434751034978864175519260389061694968741771355127686461545882523299861943216798288608066928007574423846907319202903622379519874592273250881403939674391408473489322488379162114862993641585997638148497842384341899331433811027630666794729053298846403375682657100757905144340979153720688779727919848769627923981379361021366220295480567303076676441304165139816119126420618262467851680381903404739789650524684544066224786555956952085548746766700737327013757622187584289991909097226663388848301934186289033011141251906722317002757084578092053348410785095209948634953293962995031938244628189220030945208181801924377440275648648253498028159492802099968017915405316871664792582034250867887390014866418412410184445804350311291164331514222362863409902865960954291987804746992374523676043874501315922095613625747304960316731356720361586178998753627686475390181061329147239800767300928057616768920652083340044091554993274977427435609074405491050966353995028342818642530707715815275709694164284537041909359374960628914674357629527111471699838645970254966374632102448711361347265073917834986611098900406642501578094348748619267147414243213004953838874511757319562750353332940006451018318771975361140733829200759956124730259593059220309039099179244748738730509267348971626162710112930630463468302678534970944192653025439752406282397449775461920761096838616287834712464328790878139829911611840650742340775679946884149304915742548207639052215909203746137275659005415310146539008072362524776750533060823298347550022628892542104700273806683638613208639218849704338967205069418935034956411370607390285913535506297427632229541193229775926626414712126880918779958579562211087870227147187384608403729189205388964416966241625887231467458901785154807195623301039604012331961342201391716883167225120714391362397135957414370917345389265435118169821013810810252582141632191697354203844175252822861503374082807982413663698248345552618481901603071627246760014560158054137567070697576474315834460268079496916030517476458028362711445342172927252307653051367993741992347353611432636829561595993806995345588730791784964061696823144876118466500534985010507975099795063777684597362448582815958701113909345511423693122755219843236965134694768551443401625757377541070826837666595986163575473396662007040218522544054747750116911222376086095238072461968233228599112632959751438435415801216767546455658066751893590418115890760408915054727964558311932539690970447128610505993739263670352753082879840330156647562406145600000370079807819094589546839377849284835099443994594357279243771047125783751997233130830715880933068082402849456281960028708827907226387790202635951686022785393811248764076152884355853227985640945026191448890222314625614173874481275694881185582331870441833319247909445840373021210398597602408346973189768777417679737900010215333661992421152607015977138541687844544512193457608206702577919747218076369564719588405428123679071649870057875917295748249525062697421229632431041813191985517054807938145701288141113111160061336950406407668777924963529093411961279139577136283281724437230015674861967242873814468730528500256453556280164904966683127562173663316057526752017880972207513473384009159577423882947160726817089614998848153532086252771137412140634728242053772448139612291448817482027288395521212063767084380309862573323547272823126664208610166887120877738784912613592119568042601756071201046083443152503337202056567939096526902939747112319290109949442328298398240830065028509192226754830135001754741518476455040769013321567424376917180154229632503459561465157772062695321062463321031448730349077971855834834729676590349440333380880895273479795749004219339554001498254623173824752642625114221563416552133256946307410181250861369104885857292387846320379897196833287748024661256265069402238314574323113341548253178487399329534146379541126692165420217739498679159511019824352416784446809899488727134305933296949411322510691290307600849609907051685818713999293729719190928094900950412764885254352557848184924433983624659518897303808071200132638454017092716638737896662492376647764264113670600488193154243780255162637385932095257486806457810527638548052496897860675498932890869199368988461101914374726026982913347007714829360189080904786178108892996483739927293556386226730132242248916015732053468872804289012880855458989945762451119705343285700555774345170587779712033995426579164086143959803485758163205840251224053559405173098960159653335527641786882716389273190117372773232319619798763909691562965114760041201376714464021125789516928909113027079291585407083462146075583437760220208967277556335390952776063364698553166286117161504350826138785851887940142182461901618411547993261083296077830927973322453948790069144968640451329529867908821625676274841592811340786905403944938144477544428895809255865114679666386129009272668027225927957938521884864276301739091632987680563553359787397970809438821161044479789205148664150973695895044720555068338632640151553614911532588650382727897803470185039561928158199617989713101697057275346434812638028239632733925969901712927105423736037736553134416679964045767450563694654398833392207802880613567909032673641774356503313314604824633662643933289539294029417058966448523931592441884150285765637894703295438177145486707777279320923709240991259449809061454686928252640229891106276832876987472822796860929824543354817830371759653977761825626071915421070675005029052868837950194706069918183243708320768885578513720268159071815283934414116996758430816984156182178400354490902184962962851955190729902037491750949826508231563462249930477144287947612401268009171425382725902246406349456052411237092176017578970124637241140938205867239852542833451448814778582094340109174312182148745608510399780126668224671424832820053907119363750866908020569856158722705251794594382232920389000515158027609513766806670182072116354427019851774138205978253778396114061480945151511696882536949375956465998563194525890836744269084408601025174329974309825663088648994297144586221099193941354182308422506027487334719741651604650796722838967459746138496095385039847313433334256791708861717435080560201681595820759896489560267651634641265050393316770971846158593267082175138044425305785728293979327416921084602733123393978303097400688901155989817630372380691143682503269253803221253035757704767384862475181958171383406550129660466284821908215397356174268630345970382719597553924443911207318244391793792062925682599248445478346510015986790578071145130954648677945173372253594382039187885376353713220850438775352093581991796802916317361004380142573057701268299094147021434795432893534417841585769986707888748334404559188750312498312788626562485980733171362517811079469948710725741518012721193847754469922440552173814445479756322065122694075739764747100199460348425176207659370901655778970822479832948084736682372497676027578623471913485176709770728460398928448263532627381698100269439426416213656297720372158469785769361496501994335971055935529258528079695929059314129166895136480632489099509431662969088525261690600810081873927003490412136521446943004624599896746884551617571888785620301719161981020644400980416085590319335354317343685080340413316010990385834118802148017190246859687860646896851481682708782777378007596587112487922777963354461293648433364332215648982453204038202988107573320282271148231741546580130139446350152561827624420693787513833421208234358257721928826307675455166136614310646808203908803784698746816620223581327158363387089905048171398387557310451476608784955641144436388635315423667958211752326165439552363339017802103982399825658490811569996272397331542845515805282190430397615667969528770239646168624860400189056375487626050068839491812760276734806601533135868115803860392345572294012376475596857190483599392458939195513941580607051176964972909754227349088588564095118563031361399275171437439050637987880427361150548037292116324928598836433750059450983878761385374971280855257320149344109056024357932961951124729238792177900627730641238473094518814362462070433784762843294004940515577805087728641468773683705347440042843099552405122762568923260103369155326607668552818002291156983109822948042893579055725309541376773663455805167060029269412439719705781228085137254300202156319678819497910747222577591703122377492931027550014572663054367061067984526096382161612013650015360229295491611129405631038277338739878374273826673633234242013485350629915507164263312393231024039095998405706418443897339809500329471027618809604937311863036148104847964469439390175940936553516163437290493734351257548615009313506149590643719369989049619434906385693310869258002264732812252745471973885842818923735506833142036279984619200097000063105556867305914421679725679769535817423643847727441847356991214098897993517402885018971111018537592209360876236152638473656998404494162411335823248554227136661525170910301534748921319279772307082208269980562374621751350518415106359656233144280137300230418668695504514991456304123345594472622244964698066844157047982066379075523003294440777397606265308345418263973801291846872427882530447222168145764394486742785683199295841300571811753979533211507754161307322032586083147523214277370436035266722417153456285704222235903114065202493899574828642200441030533758197486996219231267043071740968355157653613538148653478395789023756544426187315151085988790294715238825919747037510498595483041463831174238012357613880198450267029176009126829961833461623924366988452098886974482746234532011748661695156255868987745297449559859155904839079339323457408029692528228613239790601026318568206246280043044413147798688847803737820507806133891303701015302135478759348518676164072184652408896063263423580648396997376518366048596498328393288410040636401522968254331811232137028470610341854391400513675936745187306755077180481433317031698748775643042291964479768613414779790360185932080112323310841973006947055739102049871681382672490285312480604981555314466733762777371202340139738027162422800367838953392248354627884850959541209781524410435501417777659630539383785313682959472702451578514488268896610116182287192943373311618235277978169222528698218287933625674327118374080207463426081522018448667371434771348673279193412104015361921716767117224938223849806178085398766346093883721915481452324640986751512052075132251378275794870995747849951856508575751741464878712330330538486766008981988605824859716162189514870274630675409897954779212283212060452328897270120675577067095826132912826677002149429267052462546877897279704015972832765992260604441430723767411138008127632165444832933453649095693217295589757188266080286859775219686451879168375380521602972696724860170440233972267982648978015777385175103111455853650002481231243242990569719102334837491709676069040845268929367717187528502105055010276686731494185181676591074825574851718134527988244970844833885744223021987507095738751592041301443359401304072837132647255088258758648585780101133224581014542492089904833776107145696446807506583239662052398569620402256394351040445971455063640479251760203196574395445187647609723865584909926866623442367148101843930749128299761290534178822677439601992447320256640107383577336161472324011932774498822967218174923590806887414141889832499572243406949263075718147694402400454127724751037935042483506895764971033390220050140638621864558633169871531249861131544628304837498913711448226976549415371423545430043099073474844128682635846144866904777108195620364802553049636327900692019923444460817163645455744063747062646511105642684237289456836273666110926742763012711987910626479549403398827177292699084990329675156848261575739113761784719979068751796485881756912057707706494628882485034515005918909917188702767841162710805031576550736395385386918011776062571283743123249827960314312466345850038888735388656319120957218529456637611768307422928617562973503200065316213644955549673231803159180616941925036825553217539047980267002244854719502123620770548403700317773583017372058213212969750870336421227341175001518907151183129331402274113815086555302746064008844861715130769647021844595318826031518132050117844127642194249821999088194550158064469306056988642719944029025591887527652044515666775186378915046337300754972460653819282504620269900572516532221957649393651342775684979434915951544888155255916485312286142895092528428781854186046309273104829318493637571717501238897361286190580169666801701427244850465144006847405765901298451764965282504493264932454028000690360064700613311401307855407531822320459957340108462679693070653395952856395021040744843346271416669902475959466596985495207727424923938950040460192775706400827808406509738688862418040444191347485290549155598215186631322167890756372633530291929327535332586996533536223429509125557126712047678962241025548800851824854122945352621561977461638528515171135882952013762674834863393723509853492019502011157937621941418230358085164340687193202924355331237861055289996882127129842526721552380027453647246136655201553108546499149665804840406792819741956564920248138360474826700676696105545896842887267783939859357306284874727602945730549010043774895595298560670450103989132168466280300695243388751795914872722321467560185553732146270231123192476695823210185924345669705599147647924246444520459395327610191125042525521990797993183923085302378793331977128954273929078262052113055114406899884264875306823678906032200106563019589542016954740725020759666739597870099827376069659413755093851838259248004461156550451837652707195318414428348735130276148226679221425528401607883802282893032029451404944737036238033469183328214603522804890232165195258252396486297862545218054501986329559540419179010732713258685462260174040361059881787708079164666693698751519140787113159407007724358473434870913922329043992039622223648728410037748430837337120293437553178986210010460214543136450455475844118530181098687191557574373757725441193513473554405216386442374014862449693782291492047563801285934393415849689092363053782514074905896660756070530132292639733775552774911436486343092378038921696802672769013789490307899404505954801011090582462854996387460793705027183501924166925519338576001439421868024132530674696301445964369795422919398071804212308164878439249246537725800556732346563574381648590382787158631967353803913448897205082586963660141751592213365501742527152930253374138260391246238786188699605738056414855989546085641330788086670285796151607610776599498144433912807696874095598411927282149466452696115103456335307701618073908188046689751825543540635952866326568228915329474877040489314791609230502005839741913778955543275911860652652184549530308174680239040590601934142039361513258823328028973176006421724416489686852252092859832793157471809720590139231687603916927127748592709734877597005000792165541309900045809603182351626920676622032430191002416561354282597300895585142789446876969285053112147364879282695617554170545751359017435246645750354678929348694871094632590389514829846666527424505419715064019628331123859186793927939625156899580618620298535868440447959101878722293762460946752750145756724765912845113801285743308279061499672320473828673060834934804028597393407114689843428183989180461902254795510989231192142109717901496267131331781604046475656007170936126472087448149468696830755915881287273630752377996561219245502004679924050802224431271852424460295251885836422249833052393212878095781875967168213126593315557705915852301587736795910111290513335008043758585885299368690525005255529375734355084396773797936430661475925142286494273196918529992478855119804830509805489949943529178478928115157469457613993320916827035055451642069641097731658293231139852619678848935552076954711758388367925203819322419315291886933772329529606139493306191571989586636619640061903073561811556607933378581720287938401013015434313772223348387353719191990898298947156541324342401319879262693480453506759103358020486013316760713529163158715979173219006708802369638665083939477911693553870612748967471367953120516769343162667885900818099472878895645347568564424836508215192212259860256959428620276781830328172401178935238472919518282711028483832690983352637452413477407426835117917325683192054725238245696468885204689382212532714264114804773406281542988323961933803196669398048316121573467385546793033754064380345584434613380212553598733916049561369043120209510872630143946825796467795024884448320408802505959889791022571482876303767063251213419100934975427417754933536541640374482461707745994484980320013316506072355703518783674582423250346317581827603525021173290758174487613897614909860540016643262485723553118201361150822062106332850361670129432599665601469502461438703574930805584071085627334942171588274206579554153609565709754273057625635448462681340487098277355515015125095576661697885135241890591438628445831787887305494278999870725823756634832425264925152117390997333127953086527441646636556702799534851133262086865426164279761008596170513359416061850324165725482826947096973795625900246098502013907761775508271035361939519853510755283944480325894227870610083866493892807676661783221211643320988989764457825348371893044005286493620102789371117618456531140987614699440851532144269452114039577166967118820509698868356957006830034373667580885485500989085570647780094749310454056904973296187839969634562944612177618881017750497558934536219442742959314383237356364562971039468933012265728461727298147655081174973027352931623193278443137930474280764358998532042497670537968360886622376614339356577915650986043814836521762781190098580713142354361168594167610721252799362731312774754772002348327941343609480364318940620011338316990633578606268149414490472925400471142169062726017454300626226371022034789537255203079041737902946300126241679154668341579685107090071740823798218992534745417955332310376379694082591266655592057499107516347142731538939868649524635200024902177797386795105933361266592769036323864256526077560353671592268825029516427265745874777810049428361504677194105212932214998938550536989473251624545295547473511046571323626349503282620712604416300847812862963612190656329481448321753547842698337358394486885684013970072323176263650875666669720701568355066077138878918446196759087423064264577312035947955302654402876757646512883257161849426063611968663683787080044435422853026149902627521847252216392131281332668072682759508255044898440343214835881609176430440417198094585072841991524519419962539112209261263082267392237109096294433894256978480688013790458629021665864197110136090695658531298695810749754371376429979730804723218979111524396926052476944568208450219428844924522916437430436751559593160361132718586486919759868949674905754618943739702969510074737992148781737152451653898480899060997803597456610114181935597002542935769353935202183299525172821416649318503220401200948175543647085334086447297852237361987476360368541834420103239629985049062430378090119571423668307660453434138941976573886170044266634572930509342059691527871762872245102850247410617862951005952988798830407614427236347165749605312270850715786228755468531146934255023569579969884029518719320302231199730504413905659843292855479084659825718966534153998130253209843812880961401116243159919812936642272883580656484541486320123464851613732532967353871332126489570297396964335229793556048638253377889137311485721938995443463318937308494805841162879917593562369358823458271749385177060151618860312284522673423625289592219444734284137155849638333141865549571634190395308859737542021276656740615122797944798911410958605302908400355097127665653783884760058044122139428711024291323777424014170003537674996526485059024407674301086662606806670386297350317488872268638480277455971721646751357831691674855997982177886597037291034022518292707323066801911675236188891571375609121737187565555222838727105350954201513859555684962396119028618654946430285675709494890067467537009341671482119237862975493866784359976180902453296390584735229416335701757375439298710204694300165685967931047822003546788585981278945021877112214409004357220812649918201398373403346641609204234608068462801539246189871697490445231470648101855294210520363601829373137705670847982115596620782325221538716258158955063543004579469680474286696362180748717834359803430555907794136035067826646439601565217299258515302964766908809163049736767873334996016823107223234828352459802546206234459954093261007314345688742641559188054548442188155232035246317352542463938183715931174943780252699409070415506289165448695947119790265993661643291060287851321800976376211989553973471302552595667184723839880700253048098601123604786762582552334729103547496106167315056029601721193131393541442316813629194748682940864198581327592956232676032104721061363212075923743475627375859206303792460068299473483412036344180784351055518797420550969274843257862502672094823476184037039893541601937348187874672358676942151786907486710544649999080781798484209186368139285597502720026196318314632491931645324899460735582506863861312598209377631128207976809863746027470454941638984073534119983741032367775477265581245037536658818451060757873067183481631539795678406701083325263819350677055784130971790642215766771939806243529846725046448720690809621365057065326803394517498578268930706309946922299759233576925624859304584462166222208289977103104421810219589316293929356777587863336452017270285106464388132284470907736188440346153478329605986417012266357392285091856076735700998699997394250331268747943639588730842341957910376696945956046754015227839649277743538428284573805356569643933251987435096385529240737521925535177916894756675287682862121531082128671145502174770530982226593390519404581689108994406106401951649734998386282937932777350031994378403761486889484569256501765201148401716605406071288672558272554207543856543612608014406647608985904378414703610103752410368544654792553425993314089704931372097546936560693780542512979685610229454382511899176784524322326330947236829434923112524641509205277320156644940748931736779430866068730574205651598295415278767474717555050926146878260067637368448160442626645622858043216749143705611703302656608195047003169046462462596925414981609146849115019289087100633522717351556098173045313193506613437897181171541012535985520871847028591469460322939026653347480967130987921205067987234084433613966668577918599404693786969598756275103873984904220356721885564327608887886822013657152438823544925242165389638206682234492087701833402779414343967498686939757395986301696062451718840170552018375253661727975799709096620769510487845226447294135856045361473838858956540822180245344404097159551855033089581003164662914911532833711345818918703506912101866971815031302495761920526941811860209409688015644101005959864574110629256454332693085663099186245673697411924687097816868829490333438821407370415623308830644269902617635892429152510709179777978595837756874501931106773735522893912811653555495538386921987435756966299289075895930734448958689817733093081715939161902486664330658210401552920041214884682165051053150626446177570249246719116958388124405494293576214095406163238758020394099535742984280523712971418904674360391935660232323772313519966087725195458401601885362832747447103138397516344074806512488929029132132662230820795465029513092794821797886625031569189386273606750112970156044621786424742613177448220979883627585386711423154079266039076257608307616141170950485764700073219018135316068273186869368900467376200307957438787029760244461167474120881923001501375876800279275783326104979522859325206939286023987945211333506009064253859951462978114030547483250251442080956590001192862658109728839706397855913374894545458365173762837674956551158758725467450967797697391871057776006832758429496844219315620351099709065360686160395078712928305983391342644245671384818983609011884362197193774450895394386431294432446150327916988107301584525963965036928839014189470070227701934448526571066039656327609096226716303557841445640712226569094210326628265299852909333758614102784077168389314720793412789793887111586283569864624309818361683487381189581305877590404160924649786163450435206204102632792805848090020030130668487171315063555202153304980433100760942848648798727107330341599557552140004847919752300076337663803918647224606480944567937555912957970832130313350249918515183521604969622598406748381376784790581128190691871028507475696642254963297761877119146905705169832926173224085465733026005382396515002185169133952403221601030127671425644750604723949027507586548493773356481753171021403782504077314104081149180895485940779935926929278515721529630173000419491973838961130202398608822879909951892682637983870269841121421049096690666973892111735758935580836484302728235804538464887651048343517550099208281547661305472724432126468124344804448611698430260843096941705631880739279135914874417729586211141504536825114494660584358284490522073949288186416175974607036609278731196076882859480994336711154104725895002246623997231555984692200962329532050736989402059155647077925069440506029381281909559134143067323649551274720677269470824150879798079381955704517483814993086068206728418759177404861366251625927338495501777364195973664043900782666695242516925089947030640859138957340428767431782043468990464679523276755641113169203112321035676738358755962435238294595695794261410634414183074781826417492656382688876985343018218808543743588803925834185599612651203787687064162276400343670731650564219954872038713859295049300812569504798188954762249480562802536526529191103764922702582545058008958635080022801688510597633588121886309788884651427777085794459029765502865242705746230388093657003180972530711729045877083677207601876655510351870201409663046616124616436864230063855765127964103261867227313214497769696185712523702391165096668316832932517324987699762239575236005189950619237149032231060346138098003863136043725685582085810588562306565460791491157329051442973452620453275350015147152823073645791838893042299059573799588094444132300245598425172333732042278100105020102153843412786933656313362457483898343229652291264384982979634568383962326979379488351821752371915083121392904306709708717535366447292035649055237011951052202032829226058128037113579955575877228147001227996316625925507652897676911391931800378980867544979020252232408853278245145017383783586065016244207138715964121934682798303638306799942227625863248718069744520691951785731179390834209791199359659295752606783560376887673801036378383056044881866026508608458308874626783995427588198285745341961527355629553599851041801447766384338199118276240798735676153390020616300233427140783138516269744660303815703045135342586127514648572936282731054898825091816951272211768278264468040279804639251570203626898649814330874576876839053614949620503782181882234751103917622392345587956922801433034143758957164816808748861734089018259531421304131144088989142138656042292980581646551476414559500048860602054873563644467158751053041772412693255865213490580350139830846901087820217322910914842411889772950409922129012209512177333519238203391964103805889973652826695406283035435935680456310998248829714472096789795046304921617025708316155228632481983535490957543516990018912032653795328833315859087470513876800875216895103934941824022397198655958222998233930816307494935625243877012101595365100301599640497186489322684729376246212295294506869014547948706089854231892090770544391295484503748792659036005138982167209344583451351591898205348522914232988685136752595213850882853173646193608289327321108029475801403061103495070374392242957240595654966989451491794091662550741102786212937936002594055795597540105325274521077457199878590779910143823261229949684005159644976038614987026921219058092832426797520790887350670704310324689380736707890832266198520253960920414706512380156984241482055018883399236917044811280113881561141630277536541454574497038547109053406706693520204734509085183804494927337000940436888019153614783180603876987738957612474650384887000560416957634849886410460388378028091134393107624612156635837672674218060513156765130737030214223666547177805146838799885620212345960530351713843271910554603170503131185510815347150477811250181229143124495199473849677354553982164442927648284345188239754122012239855948461717542740388428234229910940037979152041381207853436526929818243405836259642792433147682557054426224267834132424892182533103808135377505435368189293962003680245681423288640245760753478004675386669153285287271384748634013578393533242210735893183387094611170649214845095317816987262688525603752766894346915514156963110823592792549958327491736745461508961294448658707145611105965471565641897552740722154259665115081693076321801725359943043936500925890408816344987275094938469524210820048443891531031215174197614072118977094343571033496736324512626069240911491646665497078726906332019964514732707894240240233968925979654261107812303442365307073843461925946172308814274881349979482773778053442377794055866482407968948731943015601108124197656280153877292790247356566236661458961662130136256340405769394241874708789141084525231641016653846512287105410782008837437586780445316612439699283429810698391475064262964141960755781191147464892684004670348247491291713847236456422292695663623875784970371974573385591139453654499166777651777685316502767343728775116480021892873423025352999076796246315792103118258851870079807445137003665199046038122832593676060803290103125021019925965631864025736330700684152207796716589041208933714193819254363975433005394651321181545680424485293495379831215707617873091053803086573681750433678696182635744940524276731852091465103985904142242167117207286158197651166836781962522285995480386566766774721228439100492380973794817262489727277329305135294690909930907128279116669866332038043538769275664099789887262655893092383429574802309786546720801324886043196453428625861808515076154950356614464979151699258378862447763888441556591276949469109168065315007447932250471474130349669681665651389699943142939291285895707727078841456553283778958396338453512321814487308062794176417201064180563592771571668556323691300902927376633386515100386693999065746876891984894729400616751880370423077168397661393731580318867597181902552331308047638646804485506334848877604348895289821408470766366461986146814754266383582116682295071503339650827332182109877452954504663913149111582171068534555544948228454982505815948478982423086417152510709985561442022925266736975609084312885482443949399523650141944539471012106064664955533880609763493796293080275016269027659402945360362124788165000733594327270915258749839293933802229926984399033284170063862737300387330091010410648564508777769151242150995623923118336052350556012211171664823808978235006365827482940910426293257157264935544835625237100170961516186914115808635220610048205461358239974906659307314002003540707463500993711340401030342434917857596952395219113361262633829289114307860730011336675734211931964930782029635114308399318577519043407543885115731211726472536864873048899802780018111244766734078321770558872885725372242002322720104821453427166397428874450139960511918139778326455628350804788670433017327127910334379699966331350478246822550619752911035026555350405374280440368134607303217940382633409054905095251849846258316020180294522775861129417940012579544032730509882184156786501878816554676816732653934437535698033022139786301677187844952259489663632039826410215764355732989121537485063546522675041775951181702788787899764833907836442344748191204446487853040418109593280061525477043059598899358012981935591687279473679235234832994778104856567012946202066696955008356146522545977352275564222614271190628443755444288820221446066569740354314522580899308931961468391136694144441306813683970525879235497926115243814910719262913768854970872843118895582981932316900354819113996445006569242240988925990165824595360885519518443093726681436824613084845004279203643543261519468260782165393051948841315283908640092980681397633180098070852913300874500993059792583033641890775086952457879417628831020278382931662291431001894172986255015854612555661746745046974392811608222729272793810767967804440788782442975363977329621755102960952981181449004476773504294260761947048688386954145695550299638790198220131676359825300264668572166519156629883484530841836723747193671309938990421241084740728657134838155225538679286202589675276064631033280807899966974568462931820094673768442537168936095471767930097912251767626752033570186511114579293583136906407567284132645059913744917544828683907747400297992695865002383531376831756241875663277421228353338127250610472810647294317304667351448991238386977341095535728074420620891520018173997415612595166372552488546556670445882586597814069043173081217683742282373939241486850898009921702405672458764762395816589320219484502579504202335168066418304860053713835374924628993301540224250736918076442359918051136004443923056714453181337038920643072393299626475212485270066684476528398790972636104216022525571662671600396158212997163444840313125427365191285630089581897472306719947415845099417264264253383731440643308914949245685020099977190387025926400495296031761516207101039600028325063146459833015819274152448184419440803848662833370426247194305972487597699266845017286107965562300314669586256621315427367199491016599236428695012421793477270014007228450615835912022780930069338640099466293066301888934105124159028465346145677998736503731304047743181072820307364964689853413301362975718245838558440147817260340087950860031408505787971644057332847052464666703939169447021255792581856156013237355222585290342141202306664688076530191806969944400212429507902866642475155858070276612831691872317608336178216317168681534747914278096446184946049196385708661131607509238864485372934669946439549092930968298923208710860925246738124715634623908076758364059439389801095455836941428057863892990356066905431260981400065256765026119089084410513029697001385736576800869222153374141274987308756459734314879323779827681310920133395353907015040785663851407706703155695382857334643316073344855631120589638439483920049857080954668166887861996242838715313781594987038845482446680320249942975285310534102377113199879310984818677235348469872970376426265560356712908288921023755548967215376821071896232358429700127697582869078426407477690571673425245592125289288119442216381204003010658591301794387161538006539847210019963340449882443631610450040855773777134347791566923513852971624701907348871120132496012173581079025839543944893180780319915282284032842114519363306268577843413396267414206582909705859220046627746216934598148217533355860735325394482245330216178043937378004932878045181653721422229153238004497204659587018539505514886418187432041951112203687259803743085156123855033388255394090752112964249795564718754626544564168080102901766699135917066885282166246732196703335952708562949171277231519395009417338713244655444926138651968691286808748799135928137465332787171204815119953445194523631509637358367924409927842119653671083069825109068700814111464569205956528338148007445712057850994568839150093384200319338050029651899222665093611844622544367416044592292554249517344341557185606120971250948519196193620478704196199481532395190043491633915338442689995667588967451704296101405956816983464191628370510749063246345112989371093459715327951203460213782996323238329700450428284687603395510669802817983002517712833172032064227607105832592972468122399864435482870502101000388326493423202699087632019253943290608681950751796512112225333829657129506715433947037231388139631961149316801961980497884030288768075357414107799671897231506662451237219488869225151242609013048122808071700427235555221475773518038416301074073533983734476061453611590793783289265800522658236722838667243368274963271107909130473229888377153442108764339573013725740358068275790029198310638047622027674305211381898215591461316537307068656727897269703974542198402874135116313205444003891953660356625567451168751384304247053784293000349135444338361780001017388284922021503974096554736195376024415302616541726856822469524111889324961096166685852669044645560610733643713962247706473926489312461872766497548216179727690529091859447074880352356953662188131657375391473864699384024643982545792336873691790270694910605106762579265851003639706506338195065001191021382818770070900361046617276320318639646337744056039945879180331098083489612583581512943287818506531734984029954310393013160388518480178374173763159275716222338507486306846354710492101677634945065590624601297800110059648491879838559755851538154160087765208170894303437151587910656139096951042459443853443619168054083685265629750385642061094695196233334740686309854607252336611846485087429734698450824960182636456368980274670206178647683350878334027780843305019708166610199812815823502439166510946443902184095280786747311791332346394925779826581033001888607048352915745552742648051622304392102873493160896590065103320114850675751174468940881413746319730527341870215118482188151137055219587482269165143356098768289947458263415500791717213514097811882440669806990186545485304089792270638391646379319223922768792664748112459108655692721989171237699787556073550631641480403329040183683242264484515160436112851667887990139103015775999332395365376960684453937435615574566058697867713333635571746916693075749480954235839719223751503467450066502701521199258599324336440826212722938894347381673088019715243036634411590406964202565608732115102668595854918418408449035122703795846457496235949523725006701554144352477564340989345138150700624373360365776708983549940431270739245976179149561401827945937717377299797608766251676046006479759367416619029280094509615366624843388430469005502151230357530747156453964464465836943326814992917379362944369958007394942643169302741009714480052691588037748166598009960007274385939495520276030680553134948213011886571975749386383996089341769502524075945784694737109027100120120582070563575671461266115951734821262802603284984882398887994716662282695136007198828482903752228952061594490538218028372418325137916048530242990994624722227526941436899440253092635261548530429940438620327421931715725520606867121116630902058192381946104870436307567151668106960168491742438753222266034291614998084919850963893902707703612921069651159763396742760130934846272451409050962085765418377132927902871098358066490568838401573323230359977064306077559068333760326369605910223245137668346970094250655464979590347808163343750372547799685179839945104030110733700687163404314363445562782339530437182542831888734458119618970979594322704487157198941321949443728541008276743809380327432270618887999762615482965815163494723458272648920566160897907747694813543199663204732223082902425314941033955226186367207294485344549924160168888918709484917379705997458948885584375783341020058941582059899154026272976098229261378534993850856090436691175109972883681206996904652841213092224269255568275132220554517518304489611723438035617887982649932487980064832502989519182862956195636638353235352548957746859628181360120651858764796358796091898755473515534101740699605951746038593698430672171066354153831320359412652150823204834593752946732208638181333721522222439957399217216731765970240843448768681260145867110343526996731142664243788956659664084098516587143530973321908533704275574608351855190880502545769933583413430655491847149543606616734520346901306287276765805692439226301886333112060619607975415908872424421557859624420985563809776546844303380724040598229142360056419164600732795268167895503764664188724180697382730007535012885920014144708369090134601937316548682909217969437067363520950377433635584588933343185188030045458957570337074964019342033336346653715979963225007801688972771864904751787556359388597431064987222942610502296932812257039991786118657704881036159321399395773675823122524577889824642132292566600713451061834528164083928722612788969943919340108586426422504438004919210403457650859361776056767267060719797820151278735869553005227351536231442758403239578363408289334056322210457655438551058398681995153559035230455266030284229762627520803094826152726827508840185622614132660223733734612901083487275173054490196662597346457980464858274575497181377182378719050523632676447773891291717656462903915498038085006594195737429125206782539978326672100393882736378651172018418291605167098397231684397765046082575811206029627803797489874428789030109989127769643765245218109536384894150586191788762146669815155396957053969579052593578501102255096981911208617199476826537178572640967115027404810763122719131250094060560029448141660946823817214097507402128241464341497000791496055755418056456268681468209123333163707291852228915554853672166758484697215732484629740708676989246481095004060177106969510766667615555152131277372175447986716336226250176455400502953143067495352481965073968892066732373101736826376679731164005412287097379712384110458744385578257350236346397615980862541221266020872439597772635544421018475967322414236384486391300924569867539427970883912429703445650335820525755995612582196354929089325773880702571023472221595554808861616992592428951242617291699519676340332527283288709566259077814818594439845180371159322642648290057910272980139129661291670805522713663653286193358065977152513346109745521096035255295616352116711440569624565981354849121026968994138047038174071247977870830889715939350009295573347841682970067490930930197435115145608101949871486143401700229000465257438043837655135612754178314947963496535551965019582933674254149100739422256303040779039734581403293692999204311182339784870175696100472444548428045946055336417627456234941239682651565048116639817578502496826749590822208365867025088743160533888880822653579042691237625717975263548901384535348757023465724058489978455365502679778911097298923766310701299332300574597484969487174737483047535765627579323161080927748546378746407641672273008545518894477133252902532607934145632070465760247860303071529663154788819277657914463542913572004081001779970442900777776117129146407548738843433420127455950449723467515031282439200050608759675975252473687735234344186753784823282208021366537521053211225877817082079991814042694159342568943157296782687373647386722030447718168833478732466010135656937982361134053845949385453059617021270134089471501658655391159061942697192315223456076824476058910976482871088248521373624437935128372117479543722175930122733398950943500091118121951585112417187870396254468130343735744313862505315072527099661570076993565805082503907887061969038789504679752073860937581055397634585431890014418433482967711284685378545458305611808840026310487196849974897089539902000418503800580356801615337575641485703360633884516765536685283010673643224179844498533129610722767415493802966158188305563220948799900941635036417625346877915998467350163080728366869202914918980272443966074869576452419341533230194257202253364407494457547682022951776506273903236687797686149730864520163590391394339394847245123739164116336226417805616470659745241344709113171142161405901925376159380691405912646708339096572654049601362817503033863713197054324988095699456339686505169450186622851817578810393935160749255062307969321375627958760343033469910541372121461478433337345434638809291524851303757438913721010372758267617156733268103709842078515272353051956663923282742833796468832562940324891734103504464108738414648021366455068644482021160435785689678844915965220177956273292991567378277172099724011542316734867873609482544134505472799599590239001671552781400669627112734744116148212728010804554082170403650587271848718401690439131821199601553996597598050254502946806955292854547173545869238118304112423413483383688455560608170322142739865340050862483827515457119807945551420790596087186611231450503953436691359069572906562420997588982025419459079981392626388162098770617650130640743939957599009817179466691185606548840270375436335698739881407651067636609665228549366963003770165076102289903217720327666526798859459731101111775692937724169600958558018034509265740148280600933283036514180301728690978334285907620549788366307777982422225582104065754849838091465283882336057072949852444139733004153597897807581892584929299123277825564385308017759207361051390278194667788593873403248422944051748558371782675922690406826606508695903934194115913708614129339174448390010659711669744492984988178011180180472312520333863613986882359160878030011589133841101810726355703465558596730013039836293846109742078090090827427908744175144673055741736071280281001107578242345329040827209518922729633900925286053719289853663932584765486823977310303563638332120460839135273502537431355105279699795722754939728869377268653860479782564326031875919234624107141645399861481724153623035647975146910942436111881972280134294026896283036872910812298255966034999117420993892135109024360659324333670852938275678039452210004620349820186059690573549638459844545389724331976785308312271837760810835992774957049983581352301964920770024372142990469576857488582488602649995676223703894062475571733941508585257181846856061782200837747027431390156925110867420986891113404848317423928392374934320465127730146075983212493781658057801561816150826152988667486868988894167305145105979572767509728555519125387268529230454651089239935464189338394421650217830338825915198992088990454618386889367456552842619139682515924065590034783112703800887631959068801294062389949071724004848542907869084219423305973111812117463589461065453947216565468159253898813372461783507231718348145080155290083941106397631865919988802118077922023893301929807345442902828719634250720290842347914519381295091712239709679376410781645700808894797311246067468657933145072173960298092192452839279448830906736885408995375114562872547019823534165674312190802845844712971903017804230979332729871784439117543115609594352348590263468814069158091759551772836643565128652869559886297522722538186420334433027195661530228394869968174163579960059499962106126626009510666882618916560674384301237426285630378875693503491834979333721899272761701549389544620984599380937150448470954854640800447630812829037250953361112594564617659921352137619980114977634488234862052109324043102342558092953916959317931446377935714008946918022414662055390835423563691226591559991754182167328095189044098167991499361054609074086886619166794875698307230162183927867438189216243985087641022875013983490467359659245345216294922119903293914843204922516912980674344989152742915101359996865037299140374625578616933328510503854317282400094124688179373884338169896933764502814718489995690579774768193911445641771038901579489528644022878050955167233378103419877262238745003624663996566669958222372141434126160936872513301654452465276685927412703124804276272958364994704674756888219290041148494002138128500461232948235624747724500686109509956233065744283230606088344783089792596124248023922804293842057189104028182148737442411008175050916214810873468369859559648198756989064460053320078445693889170623176628776585029467722184628788557658692352371673890128924990768366553612252262845593734653176040741817384780407508876383421036144513230392900094291375707144754814573866412555148456480065161377738888147924974925079429316340402914314873145804581941959337564537641300357258411555137666180248720979060547896638463923914999964554341153509556257518822509273623103695050760721334526006042079423429826491360650052278289209866276400890017390025010554031694418035173655150212407911748334862663474647347810332076436532443883272178000977551986966984051683782941730114463351384059260967014078220835002362258538153378437419718396777506147904484940433844276462691109222229045380551641400708170702059606170913488209090933368196343993982967443308693047039388959649845528273480221268264010978707446404487831845707123527873664435742168555934386502625133410908589937945463532581877295323406601383638890254443570206089606619994484246431937681589234112935108618201551926165940228166892981062065981675918009411155781116243238131539829968149788872963455765367847800292843154454106585941221909949164222724382129570304064153052298883420301924971893649182881994009820353358557614536066214364163029548242881758475095881305297552252225196729637036689817681956025181923271085074711334496089432741204758172262080007690217137580615330493167360016038093992657087882426883402635518548301783626182691880531739800342141236405301959675787979603891936745614709675853236515814707364406574645165977130772207892976816959105797819079947870870294150459194125386776149082964961680215578536704591600956916113570456949587570979655359498905061066360912405926290844423164977730087779732285289076840190279677324286030531152073955679415282171325140593163759819442918727691731718770317341860004124907371980571952490778722788338615071793572628703550323933946647448408488159792659948722695354177134891145654130791163669185490043609480623709237788727204007859973876423449038906457415416245386507422819836214305390257168929890563508943764619122974134726817055859231511765711975186075802921879300947976300658459972455579964597110077029654114679864855859210925849455922652362495569563013713417753953457800382145716748535521675772404741430103404986031872995452311281930097454688713851922034622371210898065842076618749714894646610578895254439753684897620007373042401687469843860256376782775026874630349751284164404844441986316431761387963911124733165114520225238195477944337933665309889528941071531255756316037166516492232718085881306840475103823311095201914552000150027211318977214175061646780265692760807842710846793960609792644715052496469780190624960835987952315159569727361958941996223618431606007718488819057169283447909040358405207803913002746084224802143175689600050607611912263265636464229490691911855525035057718436807089202600992911577940698673138932827294238904680091055632301568901827173143436371570875767033045825664705299117836446473652353826501235383917937844478994266730541440819587823000343108670365730242726611428848013608766922609010794208511989098708410675934502287226964419666732608761537576898067569741507087006504582601029360662240488810525222572644933263057946983707350406258086000682880060915503120747110020545404881771939452096399835253578877581651323030519911489072092862883926776350372242337831595792822009897003855075147393534097227830087972456875194438341887706620126202053646968879914987624220369068330447760835528625475464875984019344893793210021695388943937088774426455038607874816636243857858977020360118536264180348227625773007119922570914957655040302403550348379518527171961204324375208647680050272478150125818019714039742561313962439819588062550889062686658634394179938928920165530952844121165435416901543837568338907132193377475841451264920257810269652438061285377178136782420387376055459634404275262330128247785304745402071524586854811073987205703149161029213012030902192312995817444804265996227156328583125219357481804516572099461845947161997940877588434596944226889791081857133593441193937137571761166634873248769329442724131185041589312665859975802655612607559056750359086940029739473227003101986730113638193242361322195663406220941926906259053335112021956551921108872275835732897906168149663439014389740901043077548322727600715536881901037554134571088477021689900420436056008701687547517045255820434512585135042140726887183797170464798724584224166411498109908984676692881172174739568816252093190815927502818866820006443758777968637040255543547059119921684508442091808069980691369589140674313081982283259984003093821657603246363567521403082987828555223415680858281178271311218058471204420387582592636848119686589686338635021435809142712051237206284033784174537525559190796788029746957748359866535155528444273257611939323652884466122952296593295738507403182701420936439986147031692403962316327748892595296234416594332665624869559478440031702708571984650003211315524741044514774259112783887588835603407653027902782318400419497088052758362444616692364588576229310346090138031297604632876895175877236556736403301984008462385537839663488191191798731274391740568439185078462721529433984678490977609078633806640054045020482709783183080386702759385263818729458081404610498977671262879073297764348185569430520966542852450651684471423919105149191220102315071936081243573235621840603090232223580678629719323220757877280076584621950003911135491558828040705718111717730758935176170605218549536601132464476784717939981671096627670727841778850654523668036865966033150528720995782630351165594153266301140011685204294124952412988692535011767276285522496329145276261631220143981475925592482170607809820145006478120811499325494527681834011269985074563812398643211445811549918206914322166350098693471685092748136183053945556283369923965493983461797159095831012038824153678888507682164770207064107566617507834639010096564401010675610599653677096688014639096247245961178030857291589885469706316595630485826124089737373134916382065116172798877144538994912344376102852147986327903576229679720077934749939449900878917487945047995400440307761171205963877057833600231371332811960355398916232601338643452443506633503781808013144747411157805961244402911169993151808334081183849063341991506230832255300016480003063213229566665627098381683651111247799208240527941545535055223249362939559941356819826293514806297606975617393511574501319760883432819194135043679063802548341282968521943299284923428930283743340712365664202741244124193446476137310208455539863459243988946770206635390842477065928209022267976595555362465554472754242389537541688788047368543984653519069158731712364259161750405246442335799515275773624339220155928968770782824377470770164703946228126386307153252332932449655506599970892783747212182314550738050733272633150959946723752878565155822384814538181072880836043198269066828928645494510038648917431390839611796160794478607759705232582705668775759203377673243592224036223091068047746247999461880353091531675877487650564665124286117078163262006445126988552237509039682077522720405189107414146126811611022866236890904495278228687041685902020237369112745966786489509202940299941707928017446566577057122541625805482217977563298055204450269338809198744155177812362887464503542812596986414457576692097381458388499297514359647226067285493678725671233428478773627251242222514851469028567842460033428181474691520910900963483734311581488132341542568562818239300928279704413131358033958053835037688336572290071174075462598668582668903097098743327000668912674309464736199727142205969407297544148554298342352309687456064269317554275472716293921170482173318360125786432238495726292371915453188763127254403983041663957967695644482658803073842297342484834556990356411365250908189116700050564065299421647012705895578795394962790040557218337976478457569469485887817404834535898537458771368229340683326472546318687455644896968497550658680384273566551012256239377997264527580760536182061685551008325871445113946727030685418607969772808176087561752288188460425522606376014327129111483906384511430435315063029498663229812251422502830482373525625427699748307366751133973032595628705356880677862403460019967932369061980226630101452603885388940273687492550319926635504538346042539982284821711583148521154673089657736324758081247254390811478292494824812049866289713755603380268893925340737151124074101893425317071587697928461384400961487122200394659496941222448447108326537927502039268765390350199493594822790813632306989143351151716035337984681403292459724313375892780977487198676363060635416687372108228462892999801937028223682979201851629806493982452721913466550026564252102717148592050762490355058517195692482971603574510083822734730230928472482007361946104249837706277222455252537977354952722027045355445137117443760469492743523661756764646169794603491936137157306281805945720322874243917567091765879997834099954694495634034365530724204446529612826600292582931497401058669158330453753456562138531326483359908778886373042181624735749703833083155035956879273702836350068314136630224194629464456381623727294823377173936114621758042887454384030353693941036798100323379365059120394346929390830583158236066595998436825712611771306958653786866528544147937260451779703470304032119774476401244780948453246987012400617978477838980064642092525409342980241177556660206266049683785387862013852171460861095440877066929993191785952194080962493535568647577551805768360763413021166915568815713897929694211192597395640980309456002109421801631637650391010467066613519649119351860507507056205598765842227393424778421803357842300789289467324503034987679859075349663711201991799641859434310539302406539598136428286047252807418548788597102215099996341077558696812885023368203999672909506409656955406012879389156114491205157304770257601264540192958922398605145909196027417977620739293551600870622396894773271093014775894828701823754823516817101001761754912780935092011033470808951312149208752673655065885949052048141904451136488753475613741231667372283843140521925649752515347242985340170137814851066693908322845125719341703624693727079864547375621068023833287960174652995909092347347704564661499007729598479710997956226534297723630680125066273808743005204848957161400322192347080761490894488759606786139610458119232891802884003190564545513370491404698490908281198834722927867452790727509935425318838160120143277906079078907947092689235655265705899072375951444300051422827589454202577462904971492839008220282457536232595956637288454580872016946949255273431940035850567308140016914876512488263714491648148044063484375980753390184438718642410066135218367458986735835241764729296451301352778295983155698208305027510684778616557673671782845045924490318681371342894385676171153334699861175023615190659534794550856660395287302039705139735805650659165182164759257466230756504456409893349861410996125168928844632275750951750281242273530319306224907572823420368933017011581827610751290896396928042991113109497716079878158601912382107182716835843366808008944776209673108421787456404980594516113772648381605254255217186708454155185452170726344006141092820939423734340704978520545485340465376765998826847324091465418114718666249822703030844656806324126667382093118301708846011807035396538860945465575426318406381464512262660662082505993303916508110719608734340861792388509517513621366398479769204478575245353437485954269369057977160828920566652676359329721628696315504179901598810487937865268844793191509793655483800596418763559860398433797975517530111139093216461066946415637254906421290801765850552777710876928946936758346304843289468672235328048463904996873864872608688573522948114635214570231661312066660246354940759083250381331003133380028585433521492080469887162534046234714749583333970728011318005705853762640127720570703762159380796478707252165362904816423312970581675352379382102072418285641082144130044109727881061531566588443339564647605105210955964837700181997176254318065056411164015948633929443822231002395910234355068943660562156604523341276963660638079272089545344385247624393046116039631516882901133985949434971758146982759166263080865294933712650206002876776559485981053526244267409858118801574910256124638854566104798492595499878353186391597209226586666674685130735035116682473709902611453922198233369339597749769515618584624927265092171799306982589673614556225925419997116560027785823471967537909820464522787245966538484013665345172752091729161891697814646062804082493338622969302189072037948339944401907629571351077541145211144402220562948879906125179180816835448513954035337699288755554252643404557472413776497253022226498687184309117327323493733756362701186233558642233575562029092690350795848276927539179894633296483748965453438592722912538024625745143456213171259220819102007905586848608729027129119456226604642671897671750117715934284798789029076954130807960835169593683474571798542563740438598181486422959705888759455429753379012529871975094193472754482244929935568415153088848881260071838839947305270550084819303590534363833530167123817968477002317485033535366588651809133120789166828944290241715030532877268373814678026633466267256630887758569094155300682819220309704131261968784859684424547810396467150598747507941252477193953824979358730378207161178045049411519644866599578536775611309774248229782971593075594520943291979608182626077826020243807404560261068422133248067429056839065743978661232794025801497409095162806211723454250475432574104730841901307858812131980950179426897865723569676563136030068904168638300380496058503804872401007194323031238059103129827431817581160662548675507092187367636828786861879909738645157483201139694257564583312047508865829986248148100780368681116327567949168154930473187490914178009675044764344068352743943511666522142569782220715837870664788266920413425640268507353607605682977592334105106481067762080056144385814743000855414328278399563976512561211363303799237194249291008364782325770593818665902595736929678249646312451263697577704964261870085698908011681740797149653731129304273026397889624581225914352244665054066156431867729059905689422569387454602355752353859161615668998916392125812614811983875610892092918140302345367522577276020415793471145276004758512324218257425850409952974323030954264645997066013077932670739619065596023410143038378128397723674911870660253282743408071482090386306837142639086134036888756506746255225515814205196267582030796720393319823482972491868053299224041542084144409370887736836451651802877691915212396851953412177043207867345586625124311897851773129420525258842795898766896879413972173045095878925575897327008312934034577279393196345832353606746599246297002296888764922458105690122489914086967732329600906034766995681853638766006624546827639572452178650979361055487684200369250558962744989184809593059301876978746011966404808890695492879209238211546050094368468915826585121945788095691713272027649627408054970016764851411334972413832355092401722796969027403072996937029030023194013316658797957125687968681378717517644339613224931293884576032521908512173125176849892357686577810937841758432348382608843158704691835861765387779484124358465181832660736655413481240826489941883217775691083121407965612171921343481113759601828380562868132339359133963099354722778015497344855308496750574229446375470070061946953346885277923523029904554166719780816986484799715825293581163329534795382273432425162045552580553708357195433512205345306932163702990477780063422636569277999835245635560249655436673425425647562540837252007198616104371196927585535780387548201372462639449778228771442185062629756229349866511084526432012770047280189572444334615838959169097749274241463241017326292665437536915769556322029724159630883982361789750178997036351278449986664092307593409913393149834390682105856252278763636997687851482558630246091658638935579136371440080809402921811375404238273499720408590123483016976185390308346136472997656369633066259831049020647306086967368618159319958747675315727196656972896521286275879848726955724934391215502972120055382220444233398484152851390647885345756769745677680289948934665729176153555890518348533405258863811129398113913427906532326996049427165175504186369506686760105197136314507700896206485163159302378751863297983164048034391951716106841898515186994979865763305379259482899722194011048716887797626028648456506618603581685086192486566361345596100911160707497627119975749720152487520944537600877372506288268079284766130294736419367897883067411441204640587250981005506057278782657035377649574734021698921680099912778203203772872595254389048245731937626232697083705852017679562154894534431963304300904695285647709834280555784961413513600419027827909598804393445908960131443348708681573109198818350023623549502936690619901374454743270529633999214661698863640678357217128679192037330395170326667938890842521665750523175536046569056076210264133686936106746627540041155480698672293868941885074159392091843137481977416258074299378643144757645922339856704272851477675802693854579902201872693212660714296665419188271005840165667181750714938452882476955180119134513083149975186779057950668105477218136484897541172942445927555164395413273352408386968281855075459523854758462548755116417391674014753472261962032873116688795439565118085831068003511347747113746592673611305879699949983564897747907595311047860578491642009741227323858471470133475469965645948682139370923344998613262689725444567236346740324850740528681768743297939496696170398227860525517179496927913825699257602866732876257013503239774780687793743943990388811852866846115647522883091792499818247264626556467131998288384536012745400863506453515002049137956960833784795614705397720605957278490245124389882347539089997020457754184314752224777754801343803846940149575990415233831967833542977731920138097930437872223107684289633598279445777933886877720905470106345545423681335675335168558434040486089769149099866679455828885837859411640111444733065380238381302119064775711401119252517955142478079437576652441336615973232574115166354792653651584949745766033777311230008976628070887397904532597047676027363734853938679781909309043869680540612341393320013912923257815560680330235509079728680562121444142752177309997846840147789228492782106884081177670689231631194387858918576435285495537705051484653867114027427711226169499041301939991188719692185839031130449150105606693340615713007482617335544110276344875480020047609325288129789139359574398478848552043446895922978484482690182663146423927112886150896145983982105511782032381605357838440770779146307016121185989859320325904410440278715433183092208399454673905760277478273970280620744078357651651948796457307087572432252505047553383868083456398527470169670167542482949167765952086638013977949818249589528487427727414151825831121790868397646687303784278804713594617540533580755926827298014267691898186588831663596244744522855870520713928876499503962042418353857160186987578999457717328560454608570850000949395162933848604598323718908170398710677098785876054152763624995094893564642195552109267520918464724393620834050545543726108814232644278674312807902124227750499600690462493810376657965947685851209347595799014619013025870699722848270278773749560357872330960113269694509787693195441958681616410469200907486717858859122403482157085508115238218300357323543135942531254370544145152244941512784882102641854487184720111425786538632772005904526725747754128333001851300772867902316967672409660742627644656771271403568519209292358670974174467702274756061311113898510663722079772614633208284515381256943162016698289286953606658717023869063383799717104793009306286457008601591185408465882130142493707239759753328874784889118545608104207349891274110330788862042760617441627302873309335065299725108496367884579801353002567434513661268448412024054086194502919069184491907793575218056253895245294287861548561611126397308117192740436456380297409878770704787008438854790466934596309516177080031939821740647707342020913097293770057683534868896841177653139751255215141537008066272329199553847201811144376148346186247121067411520379149940515403996890375463319692392085042223450745655085851714629322887807110523057717327235139918810217715932420022539617343652155619532892188059300186930567085144119188758742357356770666527222572783270507361860737815655320909895048143291302521587471951887107045670825786187883998500002556890228426356988586423979718886419416742584091945398818857853198591952784546541536626954947523277289721168611287880505414284440712932394464207418396956544843317621628873343477191089790154871375186067328892838033964863247784892370325807664192396546428147642049186562109585350063947149058833911570023883908149177706250119305201131347937791162318087782042659818570506300006449282013477979213211898088176043289966675688034868189709149220814794621912672266200077305982325578295015199269640926486890820316964409775810141571777601252555025174794811027949365131156312337275157700829352867560185862482553395370795670708048613522472559379869482466242874388606015434014770991635428192637356863930357155040693371381231066889216003848837030580684169986404338259876257157501131741309750039700203319632305194104592683403957087606893837930956042230045168146858882099500040992182318489186875298123715625015172844159812135680663490823789322696238499474034503336397664412639451233867955777137753428702954798346615817222112836597220151009767886836819393524899281937840609151500597437908569626913178639761670361172336047557597530028894276019965801091755852536187974308544795549694195075215710368028207532606749966528217833171005983298998109085087865376093856975482181020232792542022607422579618510505819488976745534042334524322852467875228081516342643842479257811266573114759878788327552957178481655640211317780023800786362643427402279237899467968328471942357372482471336744839616748387672425845838413547872120737637920720734931203188482111359727945338228865314162845313898885125772570920574912399490696937566551763661579750890963060075596081961104778398016293478233611118135315599080688975961123760557874498290317073967970954115149800354520419883824617437715895549567430238737542207844338606371526678870218445579681276231086936061432207648713331655024614342564094124586483696461214814149083329261387208382491973627222818687590665140130692539270858886313569087466958727026520378333849485795169075212893131126621897073384208213861654327175725803546303193948994236303981946421776679179591686306500843472107747449724252286901986589585143028310279225210562464878554186058394123358022744470735837836784419794736048064344414796421131515490606149786231171169171921939523526168115006379643039962019724452379217619271258424016902586339418405287149215823850719210401027182465747349069152218713146800340713784266228533779200170188526716621163458473583463877451150668626646633724428901718600589103507560836345715121072448517566442371520782471098411228006184296727247905204117508651499542159999251913270442692506728402638951358082040171048487805484091265020341832495062748762106742230181098043715939273502490591382496864970120888193509055604885026238958001965794759328838896475907054261243488863489126231957074186107460540202326592858622820445151297802427551542318792647853133311194214702861112415643743969015361679930390550742923531836467887334759695231885701758060765212276049166397463447855453517721902788597226347044767968105789567398698220153718556590407021896575671137287568169564629017698318700213063259639656723356811691181966879948924636224046194143284286322187491634107866554085000793781550603313670689266828861511400478873026890821182436562080085808760339466899703660940521332965494525432940343111040244604356646763641627359744137913401128897505444978897602430550045660843805142104690483586905184800218771448753775164034629276826640157056253892403567246342192780299359418095203725482618347988106055058754770288444537966353080008119454279981582684884406571398961697782701433877396664698317920499567708671659120832552738786724965792163771504903107551095504920401470720083452936993902820856817728125173873999400969664370351212608628321739386100814532430631392391099220254965678894047070380961551533312668047287605022425305160549615281424483719157737142303188930018660489530234378539179974814892649748074512677475032707423448348226436337500844012708855269540776419596800121981665652785177299281904889077011721528919766917470456279151293739113592212682967798346233515431144889877821284869455944080982640543677712180475637447060429730132437325800903592030273583630073477845534479835502596451049666377928458734397370933375608058805962399661314431078094361286620442600257475072868892394595695822196948710158905507459508142630964055451565466457393368684530953935151805707323863377773406789412732538907413270619299718934139744235439908577757739114808649752463072030617847213488421494226864948993492474224791562747292850028420668222538630980884522808999885283773360752011490151552207685335923703652543383011698957390163807821720024486628198515802526392264029756336516738706258967724494871363729261940726782945597442082637634926341841656980837831042707017272449526551035745313802586577884534461172319666217465681505234384030343785747120170433363271667530117114937151512736667399032317960824280311477177092227195120120902808071779152558918980135836439481570049852453709065894970899911696612915031686270500478105958449107555493158892234657347365169918306592377151671609057661746257210601408627681349431921931283315643101567466840599261648714310705164892303124029205027304851480276568060254243221680063779268881809337495080212073432666667335478129619116533868502775836897567482095018966893532965020895782202706585175661731558189094584047573247476239060854329052769771785929264987887144957241864319163552534175758915699027758686273525174566834696059455821731527558771859936052204160414284851555331926632331370222593506596259387134612956635757093850575318596045400161637522497417988800572619238267582763683874441493066498691434537114448600317563161109533394894489958277730491857502452069606987969550143738101172803996731106391287511264812782261266115054376855119434037323646409215974057479293231680575089338888378613504229866471782632082944778002497006476109078637099216173452045314248544875724747298463942573374105146977518589451232550832045186926364271453449178338257964289306823162081411231887580844368929639333845088605902316933361244570285632748542046054119714949360919136001027633228943585869161769171491240591850002665600293641986332178748459962752504198572156897733542010760066552016238514672331971137780412846824131032509841158366092270676674178927230013608513130535895189624633883778519211560960126294927404250301712881814540939009815227873124793492685470071896336893206681353064881826711185569277900973219655599395581835364300709087078506847547673709349375255959249668674892462839679734908642385361528977803782156380536361415511755451648284581888534248261842682599342742416001236267167825171275684019877246227668786335231352651982585008674655918190388890971256125769824067095135869897420289015101043899254902830789171939747551553385366329764768024012062298565073278746554797105932162342268002654129682053977374859926557490022451619165923738837994460592856559508789010923917321772582270386178515816886896440301065080881983013480396151316814539486381149826123867852247436915409187033675585971266068861756660444730122239754771666451022151474935133347087280958964189875870932965635432089755266151177699089432144062983355636321723666699390640964225789761440681510655775219367077013531005750307205675817722504221958606088135957204218676400925724602376708063153504130208646329929123313863655554096201258614677067058820192356581670173438515678802510933218075642675051374806199409956325701816032584959043250722270897373910046699488897173128184852794880137570244594658118596984140467248303875658423747265249334226593416593544579257128288505052016553040727922811963201879095326016190822357779783456412294864732186311760546910105674145188375870802796949218305113708061888290654091403914486503679789733109480753687026233817336256595398062911156013447332313811334559383055479449075039495536038185497497042032232331086940856949858683523194099524684446985439620534905893243698075687294238903207322206980594106083043138252291980832739234281679894346521952770707927184748406039491326919938145241130655160917856024720918150887712023447895343665475741751660005382813165718853736907508085765868671793035740608213082273369842117387030337996630551442875898668241456015480863510833625276197065320762580559599650744947334519005743782352958917510418463446801017755298183842775025751300059383820954954358833612278782432165887876545925252812164773909585005439670747883761506589196511316399676233411865055765634410962788283545599911778083830345506083627126669010501634359433545907362188786877163730287392138552832159584822279540576274712544939782719512962414835829356482285726310187267156388004055314598136585525161634545900013107890004466805729203678273060130111955286915868909103398852932246778347722597279704065323420416430302772644249564926296870728280248638845257378107409149270200440088266101987290442641148434374214118174882360186483263854464732794066406366213510552452216772133114708898196406172917488562965509460852665321842106443514668555185759474545391168258740770360365920749325657580485967754142692712596855523515127751497216506570792394340523991485790947651164045708444968817886067494067844755448690319493870390682432932665828338508590733216749581014249819817421341797692013384205714439352020369939626000004688842070087519370990397385082042763956594100632828080772526723226400946738660130259364479487364174368024418529433456061548318887142855864859576360045178150332985962505231335916416332835604774126971545405963096423031987909542629268603069958312086512234935825365743160577440061296043077380357953051654327510387271217157415727029276107164464208752478361843180782336602776604875745361231610614706239916813574403980708935865515739090906024167819545490253399424642791901977046668656813075443726383203283209956234169444119381916514262449469672521764411450610635038630087132983012430722089001889504654938004169346237601121265452387014392619512445692274848372153750146447070002197595480554149901701880731980376384914097673934849880705579393507283232316262772257474169132972947506707089442740245735216075120192176201486041046910437207314407241360882160505999531358571966797128398339059562720321529639169086005924542078323736646298945199333186750216746975325257648128765371820440533287632858468027841173179670199550835822518622132700158026947439509496318701723470162756464991841206346887771177568302800780017840365329363280076869489901904493732033330658016934645661830108353736781475257976355673185903839750326467063860213697730579329815839995290030919792454356702370544796169491835825307810613962370031842274998270354373521006967049862974390340808411446263907007703029957366285590089496109932970411794531034620943821040034238628603725898319593329589875558597556579220832724696814129446103626022883929074425456371707463768280439993670503660733865816536690313512169761085992985171040647040635094780727770457936078878156437703491274648824494865605669166818774246617884585491344117992972610542334848234232725809356061466737139872653247156252377530343551079166320170257321928187532420040627178738395114947171503004788167176154268905420983037961437019161663912699856789706076851469058906398179437710908356390459248211375053250766045209941473516504601650227054392325430973951158939395250834984547002122206019389361142671406130253982628608649635052748547737041310211252530492894743060782856738622028876203331603912850916154952041806792236315016022796098011194738904009663072338117186756880446983920164540807911447001733335945078680780970781775093792054989953079870585181519719711309819670106328338466725806846526846241569321995093201991690038950018954752454273597097807972600066269835494226469308269219317774512964310662316788262873256290970444437973139230458844190891560662607484543255421018997728850786127028110239898933169775942939084259189525895492098796441484580769473334260944491170831925153508022387964986123774726764786754751819460411381912955757716070538589374759108194343510875108717226616888955797118584579252858921890814930976679327732624766685915187256796944372077558477565569880866736358700019367396614750478739573163045831385985355479834753057502736442952562659802530382896901065486139660626813082811947402493372122485711566653966039278515263270756366517616013612243423292245094012203811551692849777335459483885209802255247565160444632814200213826554863187852806860369906577613519174188657437919271595011220000516568081255033052669060689358934630642794069746288122844318846587040214111575401805523557187969687129286744688037746616635801618098329714168744938365002277803322188071394819144448704456105450697225521990186336779140799872708373849709167947386585471679573318693628512814317165087682221199167999260708725056621652860050690761225977046977843434061187341811760658628755229855223543794287130404971493971274517236970529195849455434203656236912519890688019250651056705030110634370508546355107112246973718051474216566748970060061244932780659467137117757137505457099302741756268269008422365007779558791355046022972361857383671990262702855750302717437285278116759300446229657265529700269927802157278298669490226734776334666017375130530480984678554319362574366794907365371926141558747774321723705445183931967844189835007496933097902805824364667465263492867239537647355841177290359004335069839282168934155201338159570495500885059392372093818555328843701823331370563505607014731565169078682358983244459344920480040776974869165894838191939998137657983926603236149177285199919680799573979514967691011538200434010450586396135541199758809934017175922033426203499054697207955539099547120522799199921455592078388667090468856095760623304003635027128815946380134383648016198416930621442711296452542635112909409371061306845430316558966267822208832151143756381311330984265401414495467045288539057975610314587912542840446486842341238001925229245186906212640580510750107347687582186407843757373552037564817351814117461949230539952441011000934101412143995494146569926663610647346508521706826223168687490793406960169386966712311363510354973858165063188486588926367684427275720859753264186209349858494979935634721529437043761196635843188191557836537851742032397323018093268373499683053956709742683200126018081831977188565389705026474192759644512580599336945901738241524642367552450092320591351784621883538729810163884387051069136638240989824437275877878690280239791060660778203621529238957419028418887562912561630348180221081050242886699427255335708326567082701738522557718815073786309283780721249241889610338786801278181028532507196152261536656239879450465771675462151256737912418189613896672433984605882892001347291564227579182062934955880033570898423948670631684634930771632082303882903151630454428524538542135985701988260027233297656646371898342392607321823101571870850115507808805788967966933986164807988077119274659380071162374178588841023146142138043402760469934138167974715366047241280628645352208085030335069852251796045305950558296798550168971718075497358857071079011446872802155792104753691042094762452527828098468259482930543171439863103547138419438879695134821124848479283193658060412898150216704199987160339262852676140767628826786889599364343798920195557058364947404671164453902683241769379463442341720134292227981835699198554801250409641348581197966362896824626604690486121235773539433906933880271116736758564821134461369069428668706325367867378124705250383228677924238845131282120897053717109791803464614261993310256623930812761422350936646810770765576103306501615509302402473177493767721109895394778413199099043121439294029610299706053580583103683157343905994768478318113775412214501709772058334682739904156142992249653263429967818265217012946155437025946427738531558127450778571202649436820455515537370484004093152585421996701766968668758797219242172718464978398280970190789984826279311018395054450008935431316670521419481211370319576977040623058757351303506747887165837278973922112620084983011709551761483791054105821159620777065014143081914202064839706555702843410123032389281574052527446146957589275924606834203392955864790377394000261456419038685700588239087662572904530778942248655695949413689124306500226167966065406407630370185107927707612058838636924765761292464710287306217961257065951053179818297783960230720283818758428071463056647164589236372206563635084895354514993877475033231684326478919791326355990085339080940994577460345555928998058464128962333345605804717592423619979191020583072253057760701878502028990832029620339780950927681295546295790909643639962313948651747333347299105477886637248461194299289499761629331193229480919189381989756047642086984445439849870305007014152057650105635715006193750704032162497606212287416644855952779903720634873759661226883022130918246649434822690388965544442985032982090800880930895820502290575462246698452079340564450070001332535215848928899954165567858609546773742479690940401567666328226736390146110620068837112140129869706663529037066069376569823106388464573764143905620491819847283224579985836159887462440683326354663047410905931565121520915132787379961558439330073520411914084158793848297014051994871222366419569178127926598801790789302605379503773416481860238870753756273176728333165969944581254882133149273327401604542909166317782123944075452363656754611189925766381113754445912891971545415240465742850290221101468797262859792166898705309200661655477718077420232659027915644073939339426032314879691491713770728887109304892944845087019673945939988959467251408148273234418790311060058069389778600811086899899491648648234788825714986757400441737362311482489854694093807354698897342648732088862753383430636877743946228224764004388039766855126677169438444924173736408678688226892310640077577842796054333443606550583368216295476545987521429361018268064430604547101888080253659265453191492330508329950846845046972690156546923450295499332198746556344127863155497164450257118367350802114228361029244013875420119021318777652142236422213007133236361434805463835253101418228566190784734597118140889152460703360281415731346136013042412582708816460639569707643545155244248139661754897076748081476549967652368312229801226509608153425637148916134878931960315204304212487892144727255355538685270833836746377304872404602888981161881612074546272810660220352456639921480615106501244910847392861634396043050724162796298833517005496116695280828900975876392901771912309777328766468677361403377395276631256400797170270196144204570870489482625423043611732153590884907306517093902516194917726735348553755995116069955437636114268850520960171370843306853003975607021608285965350899890281115846559173682158608284480819682053130339965427059516371971858681809780533590564721419962598778225561774731838762588635175853897478174124253884329941728804773102470557218214282967039769699287480011309577252791691955295687805532289684340097079173867196101360528821773976170334056896118496329209470357934001860136133613838900185057330535601935658444443439426816056129497391316753563064984621457738333509292540728925556659426119514152509805178953829112289906320624540926281737510316750669107255498681232501907307959870054464657865623460191230116626863874010139842138103714689122383281952927816082119403571354693912864368843651531193996347794788594273993905686419214584093656694738755558338317358398046825724767066897414332370241353200231688813024245917201698479708186271420565060776431315910498130441397526421614509082888237681329572097187159509393311564374777063245686442477096292170029951999416356347525127812833463774370051500942613309123705809447362952635461863034032101079733234715066587489792709344895481294935686436073101977505586555444269651366430293881167683985070305347795253014944349299208709116405160913063040072120521646115464391924296872287891702367977582603446301168216471401476890044750953403596978369439772043779910200007419585563126781395445051047849140743037086062245063831811748783384231603170411625965356662001673899453626718343926481478023237035189867933212136318401317131055946607992964671675787087556790973275896959969041971000632747510779911606773242179008290558459978708076289221170172725461846248788033011304268628659763205988380770964307563286454998385904444213075575512829546977373593024872080468076961665014675537334642667606258012492367032260754141101839148683698723162471606463588484721922188732470326722210300037091213072855998648841800768576633501416341313875032159636256390952762274855968607983190623845530552097249994501416366430975367244795167755223519920560216510764751600596589910717233033676059432319084906045102775485543328413725189133347733595423343498201011660705107751911940281586406834905155993818053040868368799426913644872241162371680238938492920017672988014772156851336441069218017741132897928405303062166683942156295507354533416597553825431812676396929828337053383358729569979715284413843058708756400506992553516878551781910905568485452514131236402522426986511637669284993544655339874586317186336031953392700236236692745350424307178569337357228703108828652330919623669404325661970577611745026101246117254483531993458744309317985817487394295461840127158958554312762554742430341726778295163154050997218463513964280831353048484545131904278951946600989155040965793422623690592096925621312100059650968169467415732530340736815939812421950097939666944740104056007426347989807996195808725932026216066125621803751263778401026203800742742760691346517037389291304632102034020667290286083866751939218940917656957243821273824549238098254529168916001623676232942164186035652159051254064059597982496598353758827116678635937252718988835405590479642977079349951529775755737549508575254082197102097985052430926992863760886339052074367323326506948733823502370624709304259590978671716269999880590521299673426955001862214552024514092513824298512886095955650134767272896466017068105559266517797845354027854689131433076829153714931056557731178610882104502757813375158085236042354595338261348818591807420230803027401277300824431574675351020512413504360190661723323380068198180150570708270978216886917757628240306030625497656589655067192740377557288305342422159130752362993269905191754469338296975927632648147669236044732405239447279221608367060173075160304331416726792060388033813955026766694103002671934300913646552323354043221949946607289343895509187550287369742953565955398967072474318489609370715763563509471077151534606171222434940851172642214865057638387533313857042943580683283779825832361664903174408026172833883277127090683019726171588174130328997584529596176850246044799388259971686204706235810133397243774183478801019687970300097516441717393279558629297887294669077374458896743723218070026413239977742380046515413517915075663810990891908389163235742082092086039294068044735491556879564510641266364119246885666301250227243315500193081848083489679980243603901387017190148047516674003717569787120316298567901619597828098259752764812145190465175135067312001223092444637846740951976028116058018720243943376000077694136477532746932592717781034514869849184416093678880353920398148622951174564008453620797075963271915018295003822418593808376817211795422453720393602834828925032921546572914871744341623996947723960748224509582196784801424199303878830327889330865882774372722726344651203678907731072649967966386962190604879769406062147918022012055562902369899079200925248855711928858528490357732521695314906302810219205153168823418056381296811341361969783166152453445403200244996769349788067913121683909523834423244373587121445675938953241685054386461687795467575765577847515706981711532653503441053935866482215158950422422142471130196219156591694604603621380336345168382099054984767337471798898388623593179214853562364801637654058018832110096989291884694546454167023959738112091500578869327337130399149170007447180441470960530329344378103959805912970965043301415559307333849709694924790228346152786386905579536507216582188179938904915737175745391846897698747881169089326299018809082692715077502537740993139541777406138402044044658076100633507940181505759405272804024890136399785848063177862199085230873668108339088222533582302221696196738943296495706574906257918664251024474635708929994002025105674442956712959108184423766163924437071855035771438242126413492441221093340877091215706588153253517479464950904402911198302363126796696216426126158006130544764634623919472567490309318633728912764067468421816030531643972253141333142501132089297066731756299723637751416595582833309603269252440236006232768497005216511116095299381347521390565184502760180709579343057160603029282818095548566994792282820742261429004355327757168417296079740298688351699885928395676052148740234996242116026725834995061795736405272115722578326041132104579463897866505137562011713194491227044098431770903720190613637183304010910599951318899324673886492287132360718724718476198023824291532735204671335014618368394330674722338705333022752040230378919878519713424651995749851139868748511797348229356943463644109785257779874818621916975076622949243283828123021755461883350123956332540312079700412519226446397444946445304830884901825284389862138907781436791180913662501347151470881246338755329852656632512223158507415209508274257314097492197528894958793042216074603999623204487078860127919327627387734561384728843379305442585156134621320171570079603681205249117146032452719791310290606572741984816737564736780131078461897538156056594411530437098773481868133478178493191262510273349790489889494515401995063633069769020069708733005422005738009847696586418071944234274265922745314888113988288138990469357705088985017407052339916037497003899224011455599141040871602005253632027174025441184311356262440506117185673580069669440521111003553828634829405326210073635765479975278928864143996287219499531687224575239415676974309233746863024302354882134532155222988767524044167339843917413882726044005685376720005119315736578020668078283664491709473433534878384086257738694912928800600240352119383454987737021388678064622417032827894763814345295979185375447065875883919426263102254678159753400288714614383934042581740008232107883978983147047248496125274265543412069330861144068647061318704937479338727016533665875143195609754556487861259901049111361025084706568962426815941477495588426818943618345287136900182775623960299382593593013854969913903811678828673069555072917306407059374030797068102490696535497953497654370199073711484700081666254062725091613654084811889894537100518974350011593591897755330096329281975285692017928410236369464049135196939622905157805391971219472484764974376656732275019202122431495512224187123998263621096433718336137640991937724932503992214725033851280997838977628472164310324296537658062447866114375880891850081112728386538324013692502570638043698818539918685412057819455129084137699834454115688398522100832367258875088229889465732448388399131795150990302041443225790889779153331978386728580967270472496887525510138944851462990148134962031305853429012355613623656292171365281300360574023062961637518484009059480105473732881215035923396301416323472135964995947395785716992765197172455768592401726006035280529791556614142907869752856029592870941883307845396361753461111512335778728260831309920226695046883702113661676383390730263762414688156508285943952192777572805874024471762125330314531168437897273503692040766107977879712045945072547714304858295225925109021291441276968108728886328264480925673242587162826239277690736064106669129572950502078804779463875294830405073534031740891748273097040928347244187311346402363773142913467974251979538047424106521587789082212443535501679787221945944582682349258335797102358344578723237484291339534293664810455579101582586364991592566914658104851338384956345534631304689734669094674243970619389148792550144569539428300120665425412559055213076000514404930493769211389617779584038701509583226542666394703362681404317920140544219138635329447835311921722924555446840963788719117811511301125841131501050026007325429279038235432544499951692238699069758179335840837306176360617048726857737559435319516624956629288871532970685945431558550654855390412464372883623723794670609755865145857066532256500293590284196252106399555068793215599030376349640359992701737162041349179853042656114418348923337105016258806319484215149267076288608979792529781760738837958858721232019240729232068427090431903465867255811085538762427148042010622523892677604882608224497035072577402421141628923966737617262438285151469901254609100901885688607990840121762390214165919963533602327462872744044677901015063831074508294543709761114020800313341049308522386832776094339257316872847759891443652888483838562690883356626968679328196984288119668746998682632574168957243916932696674385314800925318627877175854009329201290138306008935611848964271465749850821367303790535045760922540538605936902599919907241326266225198765003298162671625885782354461859712413303166619564221200971382921039112272719520727275034335794097030613004337158778080233089341772783990598059779361030167165378429528296009705508507785787356258379491158037131459406938926996630309013600975830810869930465702162930975284212367226219061933473239268517403037174574086475257818064590347679450152711837768913329737889232452573669809171341843583995242025343530432632258188342162000875075360873162698266616910779537209936177237197876218411247879528392628027268236180610191715052932827177921021130045829892616446910112275519380903000888240650101024920034495421590640156161578083536941702343333262611630286512974248402520158777571359873919746194166450831173436883266093627777085985315511997102872797364579101442084514015957766758883907132834199579013791634518520426493409602813185127400253914411444543167844432363491106372649527415861102697596673483980357692759708700126258489371450146313996565433027037685799582104874475161149521914445329359970812408279111550030892721514916658019237063047285954492082137172850092429481224022852288941045317852997582971897221701997719390045247767444237593540871205029187405164903170338523929336398286021544514199866228155221614962048373295364984548747176049936896630255792134772719464860590764478368579596911651850180217196316594765142736091981965292133927557830328071010165268751951662361971334289911569792690907919638072020084036421364097724604779857093317633425537573342782957672007321569965973112567226462083359073137699264480029695076443761292421410607875075139020334029829612280865592720611539206644771319817248707439052961847746994717914919111693228302126962938781564855488506458573275196328863209407319940059285763748173630694947263239357766340157042871104074516282269086303930375801593674943639611055173091012066778796548635531846762758285504042188531973500248448719944076776312305860410161168909393352987940837485384959725326530238673131662530097527392970587635523528966281623395401458756828203475188197846552992984040711736495571935010960186552953129691571200372462238122239750936445478293285744161873675095827223282471835005103275141998927234331489835052340333818239751447797720522138359560536989894686774437222376293784746634580563260801557016875713149115432483479572063863901380372070220106040627271640340028534349784259025850198279615045063184307441094096516670959706977798868658016234843863912446998735289516633004393931391206953177136550987191343255921635133773788125327510939674301480454953055393439097265832215973058859003747731700981359370395204521055192345809907864862721175852033339634561974325810272971594790616978724383601114066290856065418163886919910593211585376774001851781068253668336628167780273520567814899963701548632618271367172856799599545958654212501505343332122331482249029247539961743437905718018856117192768395843064898291530557535487341818444929454166436880661158656464446119553233302021649168784346510141387878771709100257732933651645548864350893644082553738994530258303289285168259145649570642015647177210701366152605642986657104684719053381871771129190644166835822872935657687791559938273085878952804790707494555562494210755445097106717673687699035741622451926100394034514000627191627048320122713666094512626673783953691924934277029066807810486855505093500550777430589671803444585875682867014403607297336901149861676411983846126443775525643383694284855162629541644908299799837736027346380106317366967762115225467566861249652204809495348309267906593372032110435161192750344943549451532714506882183687164188995796692664466726576271549034164521752811940195239228181228659361416954238959740997226509605177364942461754826076162464038136744189023969725848574905851472159179730847455553314857554560786627161145985261589975203911487939140686951928891175983036672802719034086067590617957592922936297520030784897201445029568210418298683611417832346593480148087809029218522332653647306815227580582703686914406451377759849798790479604253792347248657425859724978532455311568496507831708368943056695323941166841372248578822032996676107634817798239163071378109238343808498393115377216473095910636311891841342519750582868256786718405934305917580325213036721147713045458808709121107110606387327862586073677603896019193470033984673670300756241233470792206520490236693145790692143201865009681066026177504261490128758652220825642816854960694512115275479676068974405021712544094084153958470649206735616667975006163012009445379266422716727176390697152227833119351084862840739848084168292303843233717261203208920848267112373153741852219503860792817089870574906383641471757554174867575002146738247259241377750676768437802940075823873482039247599210856507590091640957690415964159340333706563101225070268063301366697651125890887638900275887089566678338596202684179703224636105866250414974138167419372190757950662529895935150696458577811312151934447427465526524526434917085369728053010399391942650864920369934150964659393381181720113835083775626469258672840875829067849095813239120988678835905965283290325758675417407594913051011451061612425098108853955650553906790570201296058066900880062231405099442222802714452052429900070738392425634244897908581254719947733596179162575117843720591136814791085766866787001891781976850064617415539488968933901884471505817734108717569914961753195549991751081155858210637778193447390022024682094290188239782488758075293482658028708827093592460522678263310753562706147208699810426693572504304696032314503963858663293609192009637274399067134698443042757402308504187458722111357973814638523839803049918461481006772892678210841183626155720598973200885824653874894166174430758462466749125121845714882414690802661008455164986939440615394273950146669157328781119175386210648310910552649751529089110403206839745370925929734807505459321183710810500336730818756921607519073260053007985922238000516502848946185718366960392502933732717130678893370807459196053657868811704453420526317137748347033144309533266971921134824075463637699542751631691384133885427324183802131497141878588111314206218276872456463862802186033582165020215363427751266576602457092830236098103583300608363509074829995779078183176299682219730626844780952307726848675828269765652629125639499634905737342760270686970273198439082942509770994026181965918698464013843857827906582015874738623334706335868106777704637636442122009323126954205858437162822313280375595249821699231201901107391543039565383820556551033489969965103936044316711433461485911472020187412543611086260272618553078261473867611654614013380701468511338614401498932134294817859281546157209573529182862402391423498908932714925755472376658060191430658409982419056521632730908896792104655191655905489866580131062152400381749446945075234929774459843306044732726273455365872215846075366110569383867884582386703881869534834353636964642975583252941248785914142686097020139836474215405025452649086627495296097698578949919395620882030640878025431962046472487000345286137056034878443320656711631063019044162499075286470579470565619412299346846999069083235693428240954574225697189220571754703939420490253859024856001693276427713194316049393154266296398864838242136040478642189448067303593169435367729479116678776079069264292351489536859534366011037213771814850616791237083007637139503303059763373438588079088656303192894795569839521874868384532300491956604611560355795272924518815595481746972250069023021995261348376264927164861512078202733304880048676251276661359789161785148134711065071982030582519576532174567297536301514532172568719263619539149179257225661743533290264847148419037430293296134432977680727488413398615391820186976082384196432551024902256619905063625688836888011168494155965675574842617287507284976723742198166742355429137694449659876672480101492200931974345427631525908812477673673936282718642271992269221361271496950277944212967892048410047979143919694511359435877419386776942840144434786262187723406230157211144501537537924659683000061540840518949000375636847674532548767584028957299069424659552793856746687037891014754359802544108239959470547220654943540820377756717871337333618261761731515541008604104070035873724467534335498862251556891723482714910947817138932659509325463906580817566379049750955640018622748705331370580692969812060807616948625264110954479113394561997412694311772728553326504414267376289294485403507051865766256942234582635291629158731820079725011427815505524295443962008715432767488237872421721181933107020451106856567182792900855852868954306757277957963685054033223559822157714809109610199160353103102559046211398831246676272802635810232338594045012731832547562305984984051861667932685933238851480610168902937677150349725457363611353467343775442536635023678716705971363270173385019964462250527272312046974071770443877591747455967298403933475020617269516651372818217519777751240819975556840068543807148761513327211605459617969028999552740379234024666234109666594376383018234554522993410044945912972560727087713443509091988665173409117730154743593555740914644681197518976955372299328173040969423533741403990029401960195582866426060780554538023577612285908758674704261626925397060078046351047767998869298787516037677115602957016715984972401785502315359373585694700943386207926097401758999835166371177175139767351462909504900187173599328451595784937654597916179550923057549592779337115873227955403869586953791474504572189959078936057117770580465869237698433193176570942230682063092805539974144978254643367323535981388582016371482144592506695670588786235479262305450813356482221400000419577003190017578731368985318297882822899951234392314725153163109515649388665481742195608371592646272917128756520467264172887375425048018441580100056508859660599048053026102364775707687710791556363233175875230589354141590634426383065719421560378774906386128751179374104046177757020065592003987550278580984505185241170038766423135505100405289326040454100832549670034629413465958766842423566243742026881285478991959532765585491161702760264455650359390636866052012255252187820385064915430638689972883873077997160817054070155766369853279500196113687148166805848369320577461779218875601833179734832775818406388848509443055577358687838866484812545155145869295528549608805762970317782253141499020391362281576264395517230824575728669639881232386735322180076573318082049182319870325751146700523685934356883237065780585770458384480076327139965481663376738126870808602279621464408651444836170494817521784074197334373974587318281832417239468592311963372566937714431393862430182048656979057500280101330221259033667909096181212295601447932280221384953662856182689966070019494327294647290347312972964245096225726022219200677507030129664303513187053213314317075872820292292289518949380012521368487394985171796846968182621017869280209842485118542001583227078160978664765984105805387671916530393067506341153089248021259583158705482172332265447795605037744729897945586220529892219517043304817691998904922490392180633128465562076657335171497703971391131464359684296226694477159776970416048886381963555432963270456961243362643877302391640527356451510903541673710748765608883587573349760266687184041461720937673645471244350535905712994275365278924875511189116780019603801825013388114978829967198384482682367858326762470228111346881508900633060771568175147670637296459818625205152767543252533130252372410619259974849605352653301799753509525563819010792942263463142035790667620380994541625729510150570910540998988907126155789647394753802408289018194432061401526538491260402311349803322573728448498788946829714517826537438465686065914411151829374572501328077342181811650132766085672241838452633067674331759045318895458422120063472494379365575135563155930223765355528019888280739021577541620289457495353224465711763810577065449865958342642295143946799469393562662485280578349450246485422451453058211923409007212405975504796084691459529267075467344224565521529785564819148534448499927239466508954249203256619133129208904090820742940671223365013758088800071221077092183771095457554497265005661279225718829310823886655131747504041763805802993404526875913794830527008975972233670199581250929569307121421710070308106729737457842454019105105597206540139904589549817308966400094981626390624742163978628418753567148812408016562354284626842436877824085872838206134297754185631113187653922279141480134263792451138310439979338787076354309794051711741527843590709615862348573547672708163290284546325613972341512860701112309104625811233188772137309685455716363725312138387533359577499499652540718406120069604780716995614702363651296714255153769777401146672645933318518821438209001812721625406546711291387100547907626134172429872297402634168366089141021718458726124306815170357755356216303503212582444116073109511657114049767876185502982515896400878488753247294589460972959150520746565190426480964377030439743256002863533164554204806092903552756219274855050215675797115453238839583541045201993139663606903172422458338059682745829967603591593750748365511365792783233068677182538542328024950063576415969259280612450402440755758649246715410130857960282711954489874671935973245962354819766704829918783125577298800029104301015749207023275819634472904440851972704228307689103164538972641087770811916638621285691992073863172350770661826411853325948481728221113144404685834246510977425857427379298177484140964202304704957152938743189079476978377221779081435838514424538820638557726669017494842386489882497966787906239812266561082293769196074082620331084919141065128833798235932738264108723005559663397709064387972420207560969089913291058297270499856427643895891084253083004218905551903226752595144120709155557492381175291369983209247383049895170000133470621929467420100427058656087771932401861650095988967052856196823216283739642004969003554229852311565792946430280571922066484214609198090659310145197936375415935717499308385902744697726196222274905681818828941443116397451945104749453647982804554691978688442685888827398342487273909894194928485556560029214646678396641976539303787403642929310921792668369304016926635494744793336522678407500753577491909806653971276858097472550593793056922040884407543064688380763847801533451541457024770626138829728502302431781822383567704187847377817944649647012495021682944850487115212736641171405940051579560351541762374679094165082116177882544725967842874650357768785493293763165633816822223705635898290986698173896140686639211165338031028088677103733563445624511644189236839157032179554804328385754881234063574235606224585889364107885054912060818762443735204548143353155503562901477230069829405542622211705512695943577003528087006845872805667806552157453055727891900558151232704928588290160745644621135808583661915581002271893663350040561971494450277625743810553019921378925717485696199557921570793041056809899862020123126724306117344475312342859011900637345108014576820155414838061036433079610040312911825931945238930196043989550809494139633711365971709453775510073105003786199254722748591077780640904463455120568591839552508013635702565049788393812079129346900671467801829573524885810181386436143793694495079761625710632877604146153076370395468044572270685539049086130449516504317870406591574454959124263716167887145714989007233906876074728697845505781228563232053470689169992755447181922526371137445510030871613674150153949944476773310464440993866370405358699135473387906746877302673652294101190868637806797156268932448144708224159422882112856133534628577580770127355016251801454821823787556887854238236317073374168315492638057034673706194835119926303385728414799386362807886154066847297870330710692942772132917696947913974941264740588865248138212402525397364766265489785247560462037850026689718505787464338300000978901005047186328494017458365947115635281345024104011927504459065197331624719295032601778502436675958218113669525415007627684598661662546098150765194250044764610816377870920791534326353471838926343886316601694224629175796541959733275614359749331540346369135805171038638967180038529699938684168149809133363134547888215548067790935771793131586846379901420744439658018959764730343069039253325146576253139843896736586920673243355812899851275889271412030169124222511146691075168288588686997332722642329613603468149303714842611148694090404364011362889954227031129196402048608203596698393407304581172963239953810571970668233692300003004282703764794684995954230321288138058980769951930875472773368340936952044364208542877919945513048887090843041547433793798831250537807346122107879851476417922067015066770969095125738780180161241185633783607724099780134908543287182679968561765990522129957590747091488652973855747572579777432680121626569775347253425116286718953590512443722883968633038879036373884831479353281868318421510414522959829228596985636241893120380133744178096625553156891123649703229811637583693459303650558576729011597899343068937727142691911016549465148654802319431696255918227272922543775146746253217040422163680109817870763096910787254878151473917559914715737359870102519903541597255736718807586976376083590834123740670707513181450315863357797299038896690049158588673882062268600032740208225332525567223476652837675266516027009828846746153152031355312031790452667481530806053856650425604192668726613352484391885978956909990938106480576554191776392719841466605108498156441854061994208583631751194044653102431487716431390572131233799268599984811424738810850548165964370206599648233164813047941298903649319445697478667535141255730153132234158283481548703888923362640654513470041165270187961515607363991071830562662786872717091524182955878973385011204482831437154259791874339965685999967659724743341457245754132274174217300204701041659935409762283525610896735252708520557132415269622706380935409484014590833947845896984115040127153087325594297343418175425472291580296450792818781890942307415860394922905740510311790207033032144471451390463907387359866990104455515963972163051388516727847152274302901508834756062182998716633341357325143495959437936156001259813016405560088697608318690220018559098408292026234276942180520146637669450840243820041449111184552061481480518697074034535809142417556940650063101069739784043901085396345190140907590790482783311038088086090776602247835478610370874959794145521711073235726237198478208351458675556224738253849822657863433578885664311990692946384708851583431384473552107016255844359043324423467540512690842920187166403777679732779515097489380907828501575056716812594225352422235948889886020788260894707977456155828384347331682063237766984555856102978581001293514795308063009421850516668020208434864250925116295802560667734229047916456204096999464731612597672054207489358583679721410505989784076541941661002637395024080424817008129035329169438678650597136341550049337904765139229485574182959909223784187447923253756140759124619219640040990664265142738599185313353860651435633781131451715002749406527302139901759481381569170971340256874792852503909582970150629697441057650136281218810864947347051864858842085961959584464274750284225149420938548492215068477904604180131248625281432752989706649571540816977788989584183031399337561510708718086108905531297983388873361420580133340414685071482927540704886278860530846087899125387182494397317187190142466801857018866910120370286089113897931735219245700672121945769058692993378793223375049014233349874602403406267951975084997399194245802262460616202552689411481921935477152652481357551565355629550312608425036082422162179397675956767739079566118580132018139345444060863447846437322773769704777882241054966698845382970553518410652493389638032744934275334359250631987364916363316630255180328949445913738177198611748234556679870647374139825476920420745966732075730192082286170597150691362660001074886286610935033877672983363204306023539391648788752102073373598361847956579298310366887442742158922073789294582010899861957148123837467080356202435990248302187105136631526032516312757309064735643862340728641795021031921699799642744143389371863905115240137755205359152140279244766204069178750606533471225436014510365872281617367720287617926646992884729174145984571972327301038975947539236981034229002201953815591632700789052614310245169451559576427711194753884949730996388117432097633385758133257707975683499353494624002077489655317459033414581081971207667601929549065369734732839624171147089376463775615673678101404986738577630457143351793717125964169928220542177065525243683866399918382338816732420719218000499235423347445598009141359506296172669678139856763954504916436755074265750126741030264799289802120023896852695355954407575998313750154342524547631024014158363739794712394313385968121886615815267262266296673932384218309919509787434036089844978137822544984816882251588706066349056462260310379714439842289644048976334271286410014002941776167209265097705784947200998325254255364598087484640876755958886478962848253497705745533803580475444715340147270926159752435170923032737572237454690297385833033617673614976419484738492455628921385771033549420547466550584507765401896715925992883389615298398745492721741790181974968899296058218229780996378797300741914014160238907626459390896254128184410982607357830925512223853168092762134456179207357919336515702989745600802482665252396371803964517159207132444044900415215680473934529555218832601239226656564138590652537323578300217109408072013226089671177923994129928700835378115780865895152573565153710406713294519741008782617933775567775970866631525852093321934884574953575546279708098138810855675623320584649939237642890362678237261650585990580711024097244750888923854425244376964336970771769783768815842236408769052313142086474437177686716643178112488480528240241459254777514040194847167561868706088618563201828527873280134062891942728687991235787649012624964716385435800519906139886264673353502982627043897525296098456178399226746003606886906210232995781681099757386971535663122492017010178086894494523736278443303075903765840972374354869854545249211189949685697401548545499984145746897090457792405201277701179443982449204544386594234191139727544155224478247734640355885072719832602501352156593731108864470844133624464333012660377421480579158585930673656669799084434536483404352672667511531546984353498091520882832440898244622641562618819232684022914260002875919691855032653208609195723888553243598310309652811074796971508434637032068268103281509837369305659801870553512209301313940944937266925437995352366820419671431149720417881185827591696759181911982549776884427121524365590560693263383137142279775212772839646948833391602799626237082066861028307800901660985238552844508685241196733880665300537203019189771817054248702990536651697923766697496256452711124005338104966351035084374672969817727379358527303583901540637851446411003477012685168386838842649714777379963476570974317125931976780654394994934022287179910165117753986184270119330395286689145614598982204344052161216570894856330019712714299543539835677826327708249102088564085906765471019106949583564871410683833637861957549869562821324886609258993730592986932252992281207321792856859054399050501370041521529807406310439508714372401153733633797767404673026079452542743138249218916344527371480845085562704009574772329523776234764763835544536155055634945090622106550400753969083856988830440868544288846895942999661708881219571577965585560749821731491514633669619898389205160928264936741559903015303411891087122781230404945164440914485096186412113223297745947762460995443523722463334680812650796471595053302252121580044515863298865337240979515823826299813472978676518294962024409929532862475272641687164730255671976856387035304718883756718851083001044312648897376242566477149505230346926720859826875244245519348074452740717056571311730010124724782753021135411825302315950776016666538479952952910800790238321203635828194754409181922138109343728066139113475450765767489525280058631837720630402057007887264925822513026472560891683971685837768007196657815269367492901087867045430730176667966470386784428467232047949024470360455984220490026340982307864993210356033307351104020592885191750216348063158706442697662674041362034741289409387042813017817779137831970469036837232096884277549105531338573692413318407346353591612044961449043315430565732902297414551910769301816611064561267986790994144767684149396295765282171945264150952542775692144036924019373960997186248788986576075500069989293502293855719332905685235069299229106453943316005431536866189521461755089948286874865766838725415803170107036492267137945921166529756440670256706891784183400000045095177734266167475296664204757895414777522371972623378876611730190976224496557385962020627364784609996304578530894691620762190278963866103978641553877252699702528566926396963822017556331338404769644995841140354892035447304541172440510808278818222072695290189967072692881117035477791654182405148000219570483666757402352885083212624414801725454747287547603760776321917480153455521319558418909923405039483874927372907620199177122539223241715806021334725123938193172378371630640687678058969682414659151309437097871357170923894889561283917452123548908235346186815255465585565483501082102750120707799084640225894960361462903762386217678939813618046720962251892403507387430467697612328603590564766969269040071604579620008703236216966948881653929078831524566757985580247519985238609891259463866099917330487334259956718705588617348048299133695060989021978095555246756555203709883129079167936745810793578160543597559094312850417572573884350961881485416340646570143967189664013563440944799291134446266276069675313589512758989644465543467268703147614517253246831348792625878438107317810772032199891533071817092255503287479221163982899564254756515441240689400440670957274972136611195936214489213722795898811837929022972345729157968760064707587367833632991372396771162931000622099176615121857134646794142824715965466677160508614782740079466181578486678731215629203745185177698047509128743483658663341054431364343130894492890789671846542419349861601875334331695656337301766188208128744165680274053732333242266570189547037037630915704779469338632924134202791020656425129577155518804315737937945381061415959259243464278393646874760627315957678947049263955624933631233024140511399064309056759675173413647411577354441205232359972302955342744424099122103062240575541374058260602472139553481437080488273760413734213729392468159275980366756212572415907123319325725570234452700467896590942055126028168488285225793518797927158964522044153989164746066575211348751042639368128286223759217150667803594153508382294980543440932145844472510647563615882355914106344131146665602554432262518258095782424360514698602610400042812211572497417672386219640290951256986555331964556538289583071021641670211358957613230799140840086699552598948127665773756222641175992458011174555806378898692407373356381224404277369204951783623064386013232840991904836490547580696781756040468310927516843324759803432352307309584254133022073464716872558743710246439512847923183796741742358464375605903955048843648380316747706986139598661967274387769986938203419154851804850722187141219744662409638906208907422728157013282448222559557814316937299512663660285125164177312194729696725720775502207448006592058193902785026138155558345609332394213597219600273244235772097437186462631140765236649088790054021878183739163732544202617422624249699946305258788973273649348178890962875434486107700465044280615487795003961254370213013453792076349991523815383778242439933218162455046197410877947018649533540495496610549013647497936914420032363408093570097054757838569108690751204766516548664194087633719654819428529139572986648991013752516168842216338957568938054328483507943291766292652185358587684832331129962828565246079229425535429391301524634542176769572536291315593445288697827334009796395529456613133146342105728253773942428410839029206046226067818056807312761232950477701090771385947430700785873069027547733350623412290514327208494913277559499778565682796295184369204492907415607004580583186642608787110212554369745669370449599385917616511347245830234393477291028529166627315253131355912417323167832349955146719284726181340230609127342122697536267532466942593599765734559440354444531529070158630047409333842829716867489263381726881373653629383342221757635320050443687792891863445436659839202036522821170513812494791946010112369416321828185168515114750702025134809013625390799154017289673904304865248860291112048516254072172312153892837741490005500063479882178657785100416216373045793472687306036087696689460224895501540369782241586238191735129542032676192091078136289146327796669902356802830099328250356826335004850219694640396501135647456047633819505915302361628611098146755772331690443029778367396631128803279304815514919420180841625291333560009290349266498927932446028687298056652387680517699602777833775176351868617259126619160363970272308963890714344785345359717249169001123994623623267774364522662100452361075334167845715786129298953652997637308366780965314091961307274049147280072478460717256519836831191994226314249586675598709615483903302097399546458424591372237872406876127707866643841608671058200111426880827540880721841698496217458968364607715395258005408199575890740226267065906251170069924105364050301696007932499977291689885340312941039804676786288339414391901250943390192482269641559446915180431103960790408856390444059368785456573661879288867029854862108457940576634813250438460319738830861905105024157501269336203969186494740905937663248478819898101952208005725091484356228123283081199824458808063320645309738157748428176686206731551200422082220848657438691659393040563613849540285334077578654992375963593189677310209996117675974807203409535916131380590958459010151886830054766713812879107980540076281019748814204373003163643333662201756272101276702458320508898838672207968530797484075441359417608575246688603436044560168305582208726282154766513523383632754616804838723334622118722341546053058691002153224075793870557912953180325238156281939214849949969986070803508389606233418433252881144753032377827438273317584426729669671770281630356284783500261817586931186567503788425417279902460803445726272059906876561008048969247976964828154046321853218074678784644402504939536165353237500026779596935459328292639299756523746654303301047365340035837428598353137908042821829964049739276466154413275017710889427878266545746360305410519558743480094675273229008360941640809695060835849310141668570993735402573127853607162497710588993957379690177772602792526393784069681063943593438003922556867612341639269691551255110603136589176127465983432739110135241066820426834919923258659254528504978829444986546100428001802155677313450053850332723960215029571742156100813123482877986357584123051470929205915984603402542602970417178060553180495671008199313990439089278959464738602125097056693025211056987024136034514897121569236034611722199398190234745223807313460058858635828403052008274395318484218424049087606927870855009732011909089078502531049481437428784820511488274371651082190531689700617056737545813639697488544899622013368412789233982916954129167947348066464012911081571515442205486127554712164639280550280629666087262100137953723656267287548159631999655514702564671217269430944261783141876523131149415082413537502435064796061592641639690638193910558213644053859585287474506643294528954077344784055181629187958075384705516885851523880948223019383404879355872617147950488204587352634106134419199435419805719939360001704291893359741824193673939168588178574314994567526959098074301631349064285893867117853567264813194503799535244170659060270731661957895745866306112930590213696736219020440313718719598591663642135655177193366752895871873063006575166428700457230713748540941498530106189554679124606449731112774183253410574191569770924311722885085660673169231762915268387392811245751827887938086803796152813585755097837786192116090263220900154308831233568130587903032686678811663376491511462476441042735985495031476720500275046288353127457602648468955398027938574025001660379443414785071191791561794634708977649906585234864451217099037540194677168467577097252612373187458846842432363982128736541486976804577590041540166023675286191290168812177802727311566572808199073449130098959968230518704034613132289433798462040189072952362954269424950760103681199253534385223048139128071501221173589512579614563696307395549466023038227396138297213916288040361176033398671764021905817606014814591918105536137261804322554525974631514450120378087035315272541792536162416753946258920155975390719967676210335469569013070227829916231158926607100522295613616451599867255975979882112613859983231243438028908947786243871707958583941046896032252639728233865276561107573829825615099642168121134552776778233024853216970922311258460200438524781644666700564431498695078537841672582332946517196895688610533075963496617172513550285776967387288045492333487615969330435112622543374496293822714626858380746342427494189258499074919437782407318428479399976727791493698791664462698449771494303342061856373153311753549699759180747822077583460590464744454469845920888312995733309964168032753126594252522956017850096009389505781652080428272126613631192796222076670257482727594758044300158073538788268809258586419563873106593508114463346543974453896020625018872534000690729440380051413473817752948059713417893874869390253140181394087327266946411440065022244157592571250565726632631263307370249113128201148057408925941117985923266316531240073690444750931859570836865733070362972774671669712132399833462532363441164731505854249857063659257080062396022784055691445705603921219092816228828928023437311632530397813549845501642095895647132579367949046007102740657500763475538585177878748591486277723958095285030834810824148842303065489888913661385527227633987195929646626481531430020739325665317566263757972586303430658277342143590679837010003260813617508503231123805475325495266252568547385125602256164624870944372981642010818125906513798132015360939939562279987271838758853403068661420142698436582483122062441525128767224006826041064181258123950767686948284671598661953911745098551370139024952194390931344251048354454941494410415465960053781967131940113960690636931708902237871977908927352208291394731132464415676898226353273382082157297115665779751985391298292082070566880758071961164120448404844449292987103160095072995121705029279340117087013001894611143672791981813526330766588735049439348551225100566353853454017847260730035092229107708405278373321205792091101146231599351973267669096802063151006867401230662539041090864102341999521262945706899228265629455945073718484714423080106510679331458682818515474989564949020585642444117883432728243253892361282636833514481102488080448015281715224977175007529369292554993191265540662440357682200550920948865270867412061785973345427907808532645851564754794034167692761876795426689710583386915254827228934086868916733631602301709249683095135702006094137237200413797258409944094969617857560495923764097077274728372335767854182409311449668110837735970442287966091698535303804387863235507400433120914486694024121583030303541633289471896055270473945673864387871469945404871842787105695407262270382942461760979242732054854014227658319834436978020467207266027406167643294166798460894646565821320610122904689190082710520787047980107378988479590102998651407337667423464899463772929757453987853106606853725027161864412500193100373794626247136663058827963433774412225516801844618031622340632093617826889583657388756132496305301730804779840347474757877777989832615125628852097792891133100780221470505352674799632594036982313035117318563320024396591562990556760179103038355988628495024940043017601121812653364301082877614958758845570813520877129121674911468385024793160859719031075434840886800366693817400081268640269328810750649829496969492481042079690033217220202408276452713833456414019857896375643676512740288589817910047201886658956713684052724023156637957369673372977824924838370069135717194840097074509962280649585341643105033791290613398814129736152073269813974111519534473440319764189307681667072119984317507955077550876815017397881373495217387528751175611985827997843287769701240292296474954436287844175076379466763913204457102488783038044724500290869986295444769158378986644894464844042561296170871474428059907283779033017136897888256107396289815428959526223464967999321773479656590762940359734292071980551958911262656051499749565466899047194328157249268950314713702791149150963900439749164030538887637107737470520783125323944556695650005919538369589488390560552941675097807984025418764561258291265645826716312657211975902760619139108940412405841572863646006846902485179438223272843318437878378866855505032341242270786780471043236057536937948285426177240754777046698378881420185324262739444411269681373941460618015918706075232100989426213386265671317188882918626904113653890510465845850486350553859540438792702852002626991027128771437579200453026047606640962860568425495601733685863018783072941753775947969787304796632549862956493862468140082565819207282362522513262392119402358520413233791840283038300759472176699611611827332913515523395834064756908488382704621830097127660300817774647057315863984867113520177954254642105271316317896851197640865831089586917930094131009991724273000904545206672463845365259623598682586493949928996933087372623017476373725887619488162047820540980354010406130596012818206668249014181523378450863165331076102773457022307547332163011500658618560335274492697864582861110392903545501159268361427982497668394777649573664849080482833566874287203714183139286622583923781089615351236524410547288178701964162805974318046497113102854079801393587082899077567112754746342742371154029056052673378681510039997481690037480533195088805589719509543214110787830489423656424874426696917754513348703449448778859784503769944682723505579442872123985224555588168960375818087611988212358975329683282947349942864155622423075206649553436596081143989766874361286891518972496976937992856035711243787158115135363909098555130687578077536242908130038719265916331863151102940092266179513719435544316672463147285712466877516578497709426589326673110023809940114265545473353986554237146653460275798037154002158908827920009845288501221784974208259980128090581431748235519393646330953192280551960359740626953050657737269525702769305479830183830600174215247672097786674528160292987169826075639132146337184761372384087388833895343517854608164509883600324236912783376702717182538566007436772898552890013014694013242496821943043219274148279419778888396105413569533311046786837810731872886436622385171347524384605458616390313617859499674041865014806782856705339897659293777843797776163597064308473970829379489427657390266566300116639131522128589272626972169068660202459477412638851183161185454385180120256165198486426124952010071272699798262190600720223183850407591745558189525121414570700251001599245537630598358038338096219464265405455069672413425960323290284668015064587460276450386693926116850751537883931614183857485734715579056266493695097226542722804268647273842174810759561060410212178342666532890316627404847934403551019794505948286545409466651247546728199667362260198737093640115452342539066433244326767305697675894569473117817883956396750669294404946164141257355879113141787312892883449254748533901217619010934806190794357222827030842883731088853717412201679410633528230023482423737978484089215275170074432181763101626265407469433788056961157302227867895930351340865549972027438957529327841981845976126157661428013450485081576996393840912026519523174060172319095237182258718892285049668401194072306281993820027866487037737668651496283521425794026743973647803638844870381105749585504749515099479839462149870796460691951812381365170935557013866817993463313637167589433650818475274068412104594607840343618221811014072807420465804924290966644546897876185511951236923881596757010283997174482400581245662766620005103720399314629855990956851025419069743222684232159304498282892267890972748562587869305596258893182312764980487328122018016666745292753342099644104714481544073618466927608705733888157184906142131401731060109540282885212351174510448096681273845295827330434980757655545407987764556225721660881538798480401037647683986757302209378603014889951477950703286627109482475778717098405884555457475905043167245905535547939961400496648958386639630042640897026887607579911378890090830515358621221961076586837105216728017918303951403410518388610075109983070286265764621841819708331688405863172240349948436759022249212866668835181838547028036546881665300248817886227511380242362374734256912330949757940133458277958907633519460319097980487332114906921922763764315555684645966700503446913634808379779484355667198018965561213489804941856469789926963398620828631263616748274140967863674665902343214921858095074742314792641722688205981732395709858391894439060752236986467746064879188130208692806774681189917001014198773851009339681665066021422032189273704191331848219448405304019378964938956355749595387163979701256958664100188381198650286546390357094144773453495895823221520557604369286166373926336441784847843975821464673316742923582842698076784842745188724526423002406817365602413332478926310039256894930910881666607268019355178145826622725540225764225904654291652025033118845456048078759213436753918738723935374136486598215193100172090974000836503278868645614432527018742559603354854924313300152281018289772484620105278026517172465352277136350103723317109367512689425899888656177787613592568428516363063667816099738643019863232270995034020802770312456962491518292210537129014514258483593738371631630477409090721438214531101198327831593997372344117161945627442805943273621064355750614070273693146873026818362714522186537301802366044111800628789179644069478147037668946623277717907710765061074231534415636668179610719036478180319628581227359383846845191227637721860402634783049780331459394367701738455603604809412182967559636060828853800460948932562185613139775374289050389485111015667556364460229404573452111196997529634299323386035624099087012094077495104467217545420167136530638624900375563046387167616612137221054647851702408841371306156433380516880347136321289602565799256210446792980579901711236717306982810359642426361807506484557865983692032209147449472709184153250923001844570842736551674990863638093130763045473995962084421304952639002701947770709433304324998498959560537289626860110941973247247400058459000881166261513394105751279526681708473464463257131749256283851055739680647546524331969394867393224628494540273886393126731549017471404419318348209118900289391010198278004667845927965502388399113973779032133762259676387813048249653105609361363355277360638371744761529016146418127653974463968637868609092558443157251296485125273733897336653686029885744342003402223406210190541912857080938255190762208829691159344667259873456508830465240732155696173749399901010749182837411692405688748046176367733869392411809167725756676292899871624013393198840583000569608082613144073302469770436089754657125836171075659512727460910677928705223655285717128971202091340668318248561227689568867999145484005192883711204389842262732986787303010410639749609410415137826292610419044736431425778954524129133210409300116297553134288326984702592199025227014543757228387532149552192727266142052934176681616399911555158395043193049946606413692874278979039743020062211941071751303919097873839594945009104922433626826045782282456299151406832088469215252985695436229425060544175244378660936992454681239376440843707749520557847346041782706675878426440413897104018766824287958549625752506944521356365538350751555308800512841223548856877555942049456944700601675036276775858255162297405327159363877866576542828273874074806274320734807579652458600278657725623400368504673732971971180715458939172224066296338034020240364976957284894003948070482915036751496504857297250242503388084394919660100930222460345632451113285861301481141412831035661538687558358117264502135870141051841960850499414725267153901419171737551857559355559276906853231372776646911974856240895204588164798962867898956479820638489692736952698266030223350617643304216234027220285506661059627887322310480401531340100692098224869027114647622243901026650383597471625643231079290954901403178043244892843219640494038944130738433058254006134813088828154223970289045155266174861385243609058003650038099862481960094933986958801224861113712448558344721200469123565984770606983277728790093726011175788182847437780669990049938196578114377489066742153638395504238104532703524561595957298990075469653627419213925732271387067883413654841685904310988094107019423891400328123484991724823216655091439044639933987900271438381740925740227762130329829341712256127706535941833731469350485819086367069890739679818719357065030491958114568894609015421723782889446936547556590036597136835294199695671197660046106553166235968012570538494072226340092817581690667269252358055378669254752998988510540388817896956203433426725939550196193435798573371628570782471442019585387660556981276772857610211314735516244484184416349437017710751423149797997200456777790843325397911664815510955450778948563922099655116706983714911200956614957546087283359746749538875198434015363729632242603687911937300016525861727313042464237021282788988613257671666664678982686903494490329069015145146792147078543110199519106037451112834892978433281635732144830216467352077566491789864553028537933696749116623868176810880801081190525033917896015233181457147240061836971743165498415789665461466783020150134122698117613177641699639804688870200775995273693389179595687868938686766471233125496370644986996835172824625869686464070730779232090819029550982059771048034760757407058496724267425652937467823295488243979721092719585727829772876781900453189281742162606032690237630871183053435196053054432896962044100101897711980293647340550466323130148155902227102663533292028291658309957621892684908020533742432099608051737050743181310610725592742314402789642423168186271142520692044331053820771584482225787948968519853777975995997547012493727153771202541984937263493771136411266528356360067501511495889698642847021846733601039998980442168152626699228922010400693252627770033665206955992521286389351661533878146249480413317974266209255109516941843747737883094066041830134737561414627772203851192305728920011783173551037049460446307617466523542070635081123355578539278919811399671999236959957634928240506656515802771124962183605643064187784955490015229244007947150340315901864718462791286336605997758865596862652190673504032865517886523343124104253478055243043780200235656192228019303070331145502578399908478098037003742170182670455593259521281671445148544467501691152461012474822358029130572071602105674468112918569074555622985015981335063686704118295839536194169223585962868326314977105249998956614237899445076722027026522943986473526168603007448946266051324188534555932805430017957244227330147667913750905139705690807297826107198058328789801690890900713549418730893332985408553319607748076725248302778937501902653637042362468344411817251577772230662681052761543426876071802113439982260799754842164481583122325249389207735536303114539794019709375772866567247171372456461041052609827122522334968379484951234377088879672825346043166849290215576142099752247390394981056453675564288807205264319941643530873854627261272737607475079078682264037901744650958875247645043765812938401111101264861564962433232748015145692042966649629358939134167174045094426585385311994389318064193563794336758512402707360667471109499879732761346464723880248572960694123998321569325060123445087758775107442498646195344167884692871755199416737460071344164192958200168689591130120503122762905306222504911053711942840334684014830218440816076677444591117313313584648933712261924592828023019734722145064254800993860813343504045563648562799668751890389351897571328452105440827035752046959791098637232771539601511724492875334123438974718827003952376121023881594559613045936861350772644176189855952559077039685274606973547323123922313490167388677970585447080267061412763837858200056539995659278503005554188595069523998403874526953131893719674079295773292908801729429441489610572256558097986955823706555632859639277971203593272629681142790620933388367640203282580934855790750450478207515422762472511742493275784962397388639475130667330805949562460613503776569006945701304239851634546326673478165377238994550701670326532929123883914675885343671819614142869962904753608637211506606984796187010418658171443789457949306524328627058205623670704009185483069912201737752277432451503390716737711244346793831476806780202747426931826411929138443897414372718009795734825097468410645604941756085272828862450544578012773997769062730178005484359014599912659321775245411646704764485376498406581232259071147737041906085341320602029083215263474429127893907203351992664056447330349669515035712630054345749599456310486056120433998023263432661487416156318870148630881119491914221952797217271351313670384091321644407033450649799295942138852210545086817200142978523550022139080494292728091763487623991060071906253130897377187780842866881641413921438780527917275590939243852980778380572127038482952892211066801606337001251924798377171461583228293501825282104189081778953458142532227133886796950776462344065255904582026585125221038881292144821279080360090475947453154848050307538757206718921081956155751541704861750889584111885386480960787986593086611624216817742426440154580388077249164464206242605529837975914276778722895135744702044928099133073178749261516552720727308031138592027496480177311502761778204481742858621050808420378195768587692414287708377965166500571358896723856392603275110762369073977203332702637859120395070180256598046943464469084593485511542518266016516255849101193664474849765550168319916614974747649225631323605468368319443163745871843238128644288369140095168740737153164229082777490619451892767854364197690745072181432145194121664915130482782157603739947465084959999253608743206906904193793495541289693388272887964039195974091649005433580854392686463979802791760269959894369577199975252827761162370419913571426840962110477451445417099464702689671337156440438382011539232390257560466686038104248177852869198485575717100649435185070000622160208033180818555466648089793499331641477622190937287775674015558790341100194686576870501196838920594269403450333572624467792780189587945734792033913186018503898109342848073314496810228441435444788736059107492135288883063119716579164483338246410731771886251614590024377721460751009812127957448267539940477962039359894631912863423457668019141900893267959354365959210606756705816896693011818329831860866273438777069186484081205081104045226129621251522963382785149571317539248740374693892687001520622913377404541891494968373771863260666095393921041960879725173972258983062252096165465711623623781346270044579393741968002896037871957297989578574489804539505521870431395174274352841864727094617085155656707189815537052628389017767990128743645728849678446312648853764095352277811531294235594459988910012496121624033368753237998578313205645621559078057175975158279933937656751238959005210692824214701236177655066393007167114843170848971394024619379312876208478924943759550869146276463053103179330996209085070195877459365548017603506287789244324749373724813724945703052218769076325842440730977175663016733982452063855229291038664293798786767194376418846455716598892018991491454501400102288373009821929508952528718944292324455240614006435082544953579047073731236949717855259391451849291192892342927684980334668037298883041432918585946336497618243512649730803011667676103781513812253625898648846281570554218203301144028087741705531051593125518671397009414083404753279282877160282661177919794061712966766198982457465824658952109287486065050938960417192963670621511296287707206304544917388866041958708612409446669810205491811498867830296197558721645528605903184072385857268119153832891945198487858813048035810222404692082786864352126360727523226842753904492049095399612622478534801899373788687971958517906086458721690041280568290203567776087219659093865110054174226144772168558010366649081740549846185333318399970011209849644119796232381131018914346194724197663913984572344933779679759041247695318888553138104931645490336997159167225879914033514003446664710742443305421055982652493622429972003252707299764448084392284128895144315032898519302581116519809476813907869731155939204341429061574587757905344595074704055814680960115723670053422115663182352091123432234677347259455180839615196203552754516127248212495610918537466870297936183502893190758581263375660208659142999970260319170943443962413912413024773764806948112256492600317674492693990217171430626065615099961589344822596911221336133929686671980772489812172137512678605286548744439924167054943308201713525397186350378876906085620236961703228960319245400099546501088641616669332151392779394063830943527363702926558734243009876380874087911683495504568983206078611563146642886031962043692974984259902817500173629424958587870329068206670613536472198310358393059168679028584167515425912552489502942411093415470341079654818364870003994923878334427534089103367911475492224728790794977077556333249309217276356328621345132475483144971638581731091214173910389458933320244959006384955533524605241638607011881189850988224117055724907875016090565873556502345284205414981634374163449653011952393079022339800163969760404658972604117446057991033209561736478179965711836174172948389408790595671836998603175456765921588319133101775569992623644773057214818678342345651751104813814820371440787350598126801121082671388010710212717552203442632215568611143180459863131206587094634818385065201453530249641439394838608909032113638474093963221212655413975290235486092736051327504776579985230049557631033437856350219374809232606105090042930049637748858713930314981708280540640286239726756213261378351966369502545862444712697016045671075841997395456701393652348325429423213960675982842597731296891073767865961951899895820596412875827621400696287080787159588778305614776029847473837182191816699221138313777704110243928361747420607590165037117578698606991878621368140934197214914211648746236790462719114969100433155637260388090589126030859313086756208474222720002559109584347158918077456884944983145871922257452156947040072476272246744451951817120699083851141920751933098113446390827036666325227214127241798235733657736577096421212842634235945029834449716205038893875654533106654735217622193014640604769843289800187320895105812740436257739802897823680524814649052020340278404680297501244373042124041252839923686582526707436871955119753896115094842286037122416231786762746652473190308356764283310949223217115053605983528369764428957004647257987469166841826811776581278473053321498354240599645174988879209191010819316478759308249983706247176870220030169251897657596726934132838121890151300485005345099266429922348976456641516193310636083312926989515278655438296052577168671610844641055344396919945598328565560141401996222318329723756785540273056614912432344516916833987180486440022460346361287883156999678761413853307871653762960867182546774206079796254076329688516583021622952492348383946918053392417143380114212960584622369326057014616101237951801675924327523790100469598824720505914257943420315446852047698287673024996259113980473275308787311579298314175087457139560304104083945385266193442240215697686097029114385230397697660069741175607014060058367453963505289403194881228905295467653410985682187196559524622065649994116237175151999973823073176844376322434408836161571401967663919723563171389936596188092443783754567549725517939991368252488018602728258330397606237450726747276916304006344695522913897981581835833208117215197512000767614887097512583883095142616664919314066303245210363251964535350190713556395127607582755639485348204056836803169139666715443654252240565514476632573220540104989934228955572400359547033884162747947089986522375832118084027562713448625170842263899211934629107240661193748055769640305327537704744436014715470596561087328045189567318595137854236715207040166201749536921189281348199102093764980178699470358002285385667255444071118549065759863161056867574395407090289728019598252270000548699299195793091971239745549823849365699084745523217799260829385319849101122202754342260279382464394312448103023500040338614266898463688622674757500899284149266928729055536960227483367772598170019075689565585572198108232790602303224752502170128555869453253821984538216150232545715046650991583351399122741298104783130730199197855082915377147885813337145971648542189450560479657179057091356587281870727229888310404532681948471263455314877022115497944617137168965437984672191745076341262954555131915549532653198587422995151305186428517162672006688502888895614322395874493640678516970890754661820642811517886105473049995891915357305118285651637940077576714128414912127979694767900445327169986663626143928424442336890420848430821841018521891822319563890402827971928761467597397709449607756178734790522303613225059681916417726735854802292341778976741997517491206894850057138957109081019863056002636055069783440558547925105066713280620263743107448420435835397104831712187938519644367352818607236172561322544625160237540075947473420654853554788151131970756371324678227805641255945651866437191582587410924060851227922586906302262552480697473597190910356001328750739537229454358004978900480765323116797085893089043848541319407912950338177057809487828396347805336405033460105390945803297293470683830116845174037054309184947405932594054329792399788249024174149311678975562250501896025277940644854725915200064381175659060849772650691679863645350888502014420097105231733820362405580193195734714293106613525930401565802975961951149700125235538910417834137377289584831353096400638391865951251314068111481893778022712121638986078782281260502361753504553308216770856261481808788391446599820107071378451111308654549597068496075318232557429272167310531883163982455651339467219205675501467928988997646805805011075122034790644312409170307160603661103639093469771951908494053860322599606202486703766993816443876942791009161671645442393872236760239490646706747627492512063215530659116541061935561384891107635513898202593561451075269117870405187195013453378065118619936663462998139068362625085583439505453320139764335020201287446000450699744243939074585859817499581986849461289514159081936984001976144596471275709941687091303638771150118675560458002611899122156770840006067143098315016069730998356441828231264186606712877916087660609289799313699511381113555617727364745686252928863528917316391518135369298910562935133047634536900061086486461871103790135676138790011307202233615323689976829431001546513020489723961241016665402656323832810118176831320193603056785779922472428061472484010791301415354106342788104470213576994253416756939191307599975428655051794677405997339234493582430634355006260142175701602877762105309733183240766859966771431947892184435179844671962943420438009179238193594225310104532832653711573167047948823417179052060741559928348621678676222208179186630377332297833412578707349744297418526110689795525703270947257828436131781793873831749713242546857580579857018317866239095481667794149973414752596567587908380420562874964922113681440618492801736696399969891976802272436989494923177024996845489450510500215028937567706010766373524307058130555961920474786202474438424065671262115286300742733709160079683677551941309732098266141125516243760144786546072833519333690341309154739284607825440178406272402130974726817434009719936448868427471699513080232166180856402751556235588917815479445085476968754303900469851730582064026497089838686932445445627932435282815070471347318133785399287989895974151678697625109039261712584466210160801077080214453201989123403570214217692803763321247281701431089422061261717869107920100808893891241956849597212960093639287385833256028997184392552688229110453251661794023033415215652173955345885677518701154064115497771698504463553491480189245699165452549855473984052156659995774397245871140923165969577722353543345722319152080792823412181417823432752058007508434034007074633895845490780163729078214964989855142754820688031445018931825101444174802013265074227958342880530105602905168005607780799152631839464236505503592353132742986671814089633763442654565875379356419852189425922973601206543973315470881959119152856382142097731194936912379966212415399417771005813390332921804464076774323674806994888866948883923913298364232181313010587632271091329887375367798472039392663437176515859457661394701775538044466873661029218445313024865808910642669608073429587884215773491151086872585874237665265353486506115799908059343086058039555514779180423069460616882558963664129129206826802583414245858242242286364733332318195078237641112063839422385381502501722308072568999606130937813792861053193027688359211130094215989216239886517362035069672940960230477636989141322194365151816480630805158264556554720156386092424199341305223513552241427650402200601921140413559880918264872430903403015947650412808704489732765204379015136414328368606596322699073848286201835052169832298124260208059407819193246409276983971945896733263507027321254549098368194785724741186597747829304048543114561738733325958742040163351703375322795308032490223575038420198627836970253263169336959685110212228192701061564907170912871266917329436408329762818868718850850254156278751790043692567586739253783095075858393540027464275365210987901543327211636130638658745113523439885217766557006561343725857030082068766021569776718678023914782059922893670903040814719922094403215902205870756527849968287742994350353656378135524791491315825417151381273191194955794433982808148936307938863290293189395328397925238057031618339448972294178401516464132481755289914308680367115239324393316894295634993058116384090742952595224505052047688498361470108109031092147596109594053205083911628978898642469130421836781203089617716675594291244535019492178502946417885351267839445185424167207001378730900835638037782864253668992424966322471345184852827220172034956571703519411907594453959578357422222906889721787112163578094729712880329244428548597842071240923915273093914734029972222305971796923776137681781808765493155875359896112165031772630680712289729897439478374467032123699630845370576169389809184626749406180762884141862545727923306893858935621772660703888849250468963925262350776642457142475709379690068621747392721208484206604105048825508175564467039811222278962162477461279211802056849976513253464570124451996578529172012038013842716113009530966162362407207989865388125216234229531211364762208754314070240002338458068194476768930253136333512049459826577059116161093850288985286587412743370893547173496225188522167816730082924589384754325581511447802957628124954253085675880474520396099279389869408594781959585735181298659125587146350499089148967738795833901252171435174658067839084738784733053689020349036737111990886250085065514464321035795414459451073183948496692474606572181687427490550652049521126470546421307263139111549987890124489995037559050208787300343957099980730031909603610088128908078536316707299166300155696047125374211935218987453154515906452059072792611005011843685363149678268253592240266456592982254678355880474485322024295186759960627055629737836330946759793400321887253022105487390558742577415982081988922469313683939934279371191985016712364442438713047176622065913669713980557144663610899573696418989697364123074021034927670030204490332960978490318787538874562238157903881111253811742607720535384632623412654061844070025627445213218370099435290227879775544574668620402790188893220861177017679828194542475820540075476052334196834644729460049925122008837923505134150353362307198569689147276966832824777389536548585593271862911159491638749218794940375500961691401838451066313353462932347589370251300044135355275149513336552876058550890138772252798084116586065760383081888823606426498712642217361142846068677004096391167802889946060498134341545565947870615302795740859024275417769999461996808604210498017183873231959860701967519511945348249493318503374123758882510464144539591825190844310352252659334880176263634492810978595859242751971718677924485081636270485455612867776800962682106885842907106329416012689261834581144799876968196572494446923623272706930581671229977331888899752041467721008543530092197473147495198935139047497914892849358959999594385792750953652607177485123727674116314820024957502280962416062839286275168611548949858347683796787557527438061910403402101913972446325975680639018177554679017361139290486686853217569537803053010288730142302843599257168299260042444248613352681132051625222228352260123621718925664900010527968212972086694021902553166637556990670973732127083217592393875933420961539287937405806901989888225751809475082844723583125836273151762804976921246219551695476347368719692514438777079803730755919916091630116535897836772307013824604806388962500452026029348678632331060978376488395386250258823683561417749458427843189860264547030745701425071522056995512628047210291198896098727159988750659969828896804146111931106135079646677565413363502768836553155172249122853002931643648665775072702316140438281615758195092257045473467916557823723453368928331147071652767190870407916725310313090939428370095499552511840975858825755345794914803972023845294797590479683486482116283810416331338879815190976507950093148563903881603053225725623863223531679306548456429726041702062168079177695277892587254582006680525286780364125215275419559386551785415017115983405844869161383747628319626488347282241576347878968746855930668488780373309111865385449738792666846594568442439187518978554923565205759187358129057582404333201278679105441466148446708006316180430079562456375062308057896682157594865715580154635020070517427754828014237149478780895769411985093639978860090632842095890140359749459073421173938372121003562975594383460238011084061800345052872684967017094914546779232129595220269936486766987563093470669975670835053278395369997280282044510665203922247380182137104167442228318993756436303581657451369323597456891775023857254105609702778259016372261012300549235883571440900579805457808172585714148999678333028492048349614850607668405774949346174220700842950974439857348700594395826222573582798844507773263224707996593182748421834017558400333972574293482352678983217461389753665012952865279618940867329098828320993941702293053363988487212231367063358876152487313941019176999659908077287417126443936441968992259033231211662865527320526119171465941034948149439166717561535794055311527521445738131712526646523326037229587421243357434146841801986063489314291585378162249742380045696348858105335954175250930576909115209521904138760398678565781571587057652624615071345428102464360795855042917524355456702706059772793731342644170922540847043079197564148657465609412734089456971434535773547769234763841423799297649902993861016081186636608250280472298618459436778496324299137391184917178055783734731626977856549345786428585367292189420574152078029796250995125028168600011954150590746525972788154354786611294868320908123578482692618306158055935114855507186602600299802097373243825941342290624489572556703527170537322905676695034436495538133450145162167056438356643146622920126177008855053900528293390933624611332502920262770857901889527938392338374104395213234401667829175510822589448019593493018672647175170379446986963497117280810136939055325228971891115392457949393580974843981158651886293056829790774100114526657252440784802902035387356505908123706801430267036288423105482255575329732732579477271534956860167428879280065886497028314237678614867264314967313222264566171386682956478142594115565972332932056935929209589917915993491223946129641741783255512722001819533331900006011669846014940073077755676343922434900531780233608960572198869147496534664344448239440009612044713993873506003843813524321357327900681968879497015946306498145886199530794750577575647200454453465302393702344664789044360508365427273165924823898686172865043792950400071463923332233658679184311790720141530528595226076966231411785282417388923429621343902726733064456033139928379731648896446327043389197796978816445629431401811378333957309957294851513299128991159352553247600331465643224400875956755563023544022505271909474362082413171894128215091371102158199050752311796824927997683729025805799893854785821427695853339188585094399093456550708545632156256146953877047224808999266007445560052559558332854945887291133771738523281624717537243545404738496714563057447189211925340478531125367327134628029774114446249622745553770907514767300179194669471193374497979928075420020542721474032262313231283359846498049911906517219397756631092777300840291402306475242797593039689407664780114259791219664802644686092259488083323378632967064228618132383880442381046579825312914533539335910290758672039129903593656392282363044196195133134491307392617801618878128776637795643774208451209103943519854956063222213013107495983364509980123748427814017333557219936478470467508520138220670641386869156219569887950868095116069838417057882469357620584278448057201867444040300235840209861432017041707880660894669564107226948383302295926450777643882023800000429490325340222031298336311887860782716213705398950726914719671778089113638722720378248330684563126546749460388904455074792167472553767539362774837650317382778037913331932246974744547902181171792050043992700035824773915999344807610987433208674411103188663612633717543468285048263842968036883516614494978859036898556005436970388418003184322568462674298902961459163841179878524166659768479794082868985465157643380895976934361322521364308433990374978862414860151354336803080442347197177799678281771209463262594324918084825160251470413972262165757844913404622731017013529475119017407873017425350480145517403066088307646355897100850003853821872705567398924111201948529258484539392662550962975182653797703022019051058916972867364009324609041358999140864825252782556280052820712403278873216043400168124995912060366380849627453160595511613351447534941535705264964793315833906341461150649920984367406802797687779877899803919345287216441874640092150081050420684104503796045586338687306097993051416988560591844452955793978935217304458374389114242563997737087836707149101805948904063404150794986322097651601828990323189680369187515770202116814456393886954138238030638289047873622800269285673992659474744943624138433749857565656278106073245264969810642802901869005701295394991048844122042867900446765929272523180829178551448983231175137679120681918093515966671423485375661367287377042873397286195426346338348439737191531054422056411530371814597662799033674693515960089540838609713530280293795191735834987871761785047712668438808301390979776324184428069141763475428667217201780674746694456500137888910357590960751011175278453685319624869420619831509506642930784706800721541657814186331576214892146891562364510391778819635829708932638829479580003877511880959598298308569841274126721500771931401107078059224325046509691759014246925815689766129316120159451794512893145144464427249897119185477362823773573300305075156927047243870113738511048428214353407860498803768478708438370907867500052340620091858611729364905738718716916061188750614215892112464382352101588543261765539270538705830445176998037516172551946088526666294286504874915177593148795357946343237206580916384668802054574771491519257667719776297693834459291765708330248230891254778894100249246316223037308609592066136966966024728207995521304549982705667261060647431473014565635598740305147372499871250330224471231150724068736233092807238212831786176315060784366018048789823633328556129527679653499427131504986324904339333345132426420054512744363708372959028027863844345121556132246992339412383163350774063305941919575999899859439914169807256274073924682263668417704882204079244158789524520579928329148902159367352825949985488470041681657961027392601011359561805737913244386696079711237592935647507478641520623238860310192665104542171668771670023701878476462002467884153074407302199283008071757361587150476030212460791567576859920964794152988975765413728746285931997965361908556854366510770020451315794302638860138365233243239405253884038831095276778561107562651947674161102116426501321817864845756912371803958807547421320377994547957478253949724525389539639226382777650279916442068024838159555370947922721364624273054569839701616812260649579170442478132319073203598059795373000921354291691272858215059664875415452595069847176590281959660725234321011761278811689166158021893461342205733430644056689183818244366320302462542666508839431031045653373223669043903374940703060084026837268284609524874242911707751859311022831983957677306814987647269882832133825764892612755290069403226709978462365175242498277294669469586734169246181507791395337797439205328607236586361399079640156767171527180182898890550545671209287329106220258279069949596005219476698447293399019328376726485112793862857315835581086321852433201365394441561953603087339840937657445066703279957366908222824459673804705446844304832174917256044891873083450988695467857894599613975156707305349397264803989342517133519148221217238408988730413293989916277080908915572913023583305605666302727253810785825720892743490592382913250820996162214302934457533093997327322853188078210439355264498266663162016672440373867015585805863624338985299325411623000533015965553042444112592286050395027744277642038452124223772962567727376005905498207283600323942704465086182894934206702796393881744842327983441486668824249623400352973628815125371045340862772489981388088652299947521946400391546128926092034871070199414676307865312980130636599296350247487178817583709510326115470160066260149473871496417993241085227105213542718036436421006514747411142846258441165810224815017935973208723552994976536605744285041164138164533175273520295922195015429633372502607573097940793868222145274184358621031112410287284357729275036732130861093335753235569373069716169699561116951748494275092634820349549349214826802350414271723351673063372202888496846837496150297227447612172688292679735060326091064362566316664953144761053097557278680583407809919020116983071306945665164387674695882000851790828231510327929476374408692058855974966567403013800544099927754790092853127220666904636223438085937048526554027615487000555469646261165490280014941535795450955822183451139998015118660135430512921161725024813112718902373984108989237463187063503338035910174712711398740937864180977086411393122546514988546474636387594532233969239288610730179001916729638032390399743554791571526135381260918927413957912634332691913101895439481549685822556177356067715349077838432230549342376615664610750884712423645220041137489747669303778464455726478855334167957682617623726491430799124974575534547470469997674496334832821234692725590035151215501153932058874375541838627951583868849884994826132323552375696106736709848916077011477830058334287970548944985112894332696254480374343266400294321820522410245504929773929509183025203151677120976183118726576489809415461057720827100203209664001732198320069886557982056566403611593217085243202064384831686853154309183853842969902977422024132615482424270263047352577343132556194081655572751631421673197196181392627286014969175749258345598487707464442875400034998843138890014920656636058252863494087622533863883249656418920512044421467587091399878582050426911183918788569103654003523751740427935602387609261238853719865550030291245722627842390836423376273353066553204699554091800420039076931510525293107440548633592591603833618702173289153921824226678529684805970868381353648477946630839812268471669796201349402663612566254297908549733496775761155938358775365468203994857563871329612154605413031782663764660881322758811121475079779844247461623383586588283051912071294403694553056333155188375365682488074859436166229047525561982491338331888819434695433033751361792593259904217857314055229464828530051487115656572848082132352281798601704135171615801627530732661223471922337730394166234173693988745876143283515036915701482545218383093523816882443371620084565190894782356142279505233722625936446295388302608384986499112646599084880254564220645467349749761087707346868849914769426591373222418506693723522838440394430379367834130770110176093290812062479171012354438473990510127060798575222230568222165190356491892988244832090299709450627820882252685803354416341144225295650532874640200296590325163538391579666822109174612731545261069439206115807260512362370189385822216973916309320495655502113934823107170494562071678109940791258342675106617106886987077097061070498713560266410600593139219664100713951978823480580996553563421066399459607055338301527646571383401704532383276040858461940041625202656265243016836487178913310166713660879690470730104660822882153647994505234703440062438880855674061674399311066813819414352353682876559477878875825361147657986786943741604849161801721238043057706019345889609264634353872953365947682729323090491085256076440615377225158409594810534761808272011592206397936138509806706134555311906654761332490124320156084454238157929440443023991663451656928469890334339302114235720427245109872622330876311710898115886504426831292546859590832401249101893909423708805088379880574443213776744405690727421350187230915630085068969629419911293015433648997883340691181723640066724010772311119119762461122366306119356212049605268348286341334969066816558432361149321496669398230912775228549922646021225314639533425675325123846063337813134844385676108165221455241108883177423575700976987771449823889182375251901507737997671664503308706529509001702145191098358111348306567635200920481553627258907402621392317990714166782712431453116431860270078455346331615872552669134760045901266097220356826379004398062652352019432682447662312512399987985530078419715049339861181845228424362443964850841075371223462033146855590822839198528602393877553702716895095355720751058434375248387762585025706812397454247952861995703782372026709787265107715250958094587940356121076152456500135686615729801508643506098567990268373820705905423941041287550714176178481081182142122293364916741423115828941425506933622924352878923718900492641177889300948361242380286455813009679109745323105446851135082505167711154022397785890080952599844143559827551651988063738409555455983118534057584728405478442935985915015317117739397041233450208151466470454260730450379494583333361540459514472054606594976772539567120567067387393726189794367492240074446780188839180969979296453972821640703519314488454377725616093479967762205748750901815858909351626432698456604359720441084383641841951493262360077018887227372550616241743111673091629884309795082297897299165370937808336453928510815753875368608033604847213970806437133102272627034665443107979765994879303827626146250390968682938071938042602868351659625307094619453027789562978252087676604301284663749288728396903435423627090825767306638580120223028558031876789690795635153845608746635618022706648826831821830857215522655196409940363078968123902039100681810132725388645003793910373244379715275675880266564710285299460149426797443927750483254866074684213007067012426983553338377851687555263503523489563538781843012092886199296266884939284281716706765807937633643597775000543401132882343930286922086067139993112773654463622420815119763790774317995671578989626790703652230788198167640868946141954667198883578134935648716936072996669500302634746043916526872856610059755376517101810242138439808365608135897346043463097991879877662040793285569191366421706000661367890529722183384273661398768205703870378150459616106424901835138993711455121988589255932649105576320506199358156297450328612876524090217281181991529681836119714208334047749565951910909506702544341067313793483229366250136083562742767606535486944023484712943279299813155866745262470633493538599888319492931104827740399745079686495635720335878632752028084886855282639876725669936670404129425001309680315602962748634465321189457364289846947147726972243603501378603533987121960922952245060203109502719079622361199696557465807738566810155252065447520260363628232266958522697219673833018269489575501763009975615907272252954458400725172378942677526317183447570685416764992352285992061608203770409582314211098543453863329964641345862070799904344121376687511900616209108768676428820414206178712815199932166524147747527717062030355771533385546958267811008662053915553907950865977357114642910567825498289302175779953053520847802853286572976113837758264605058946175575191664563220483190762100162222605467840739866651986405779757528742617659700697602687632464185888111706970517873867798183143298484564197183125225477259116154678130779997111381310087164094658836759334416918376774726150790985658179458969046888271397060467175750685242903601207018998614311045996738949544184704452224265554087240677092804203319977463662555024311361740118460946735526572024021399455254540791063759293056700361388110412516287720500502891771896823641251757984802836302736741060686121185822742692924675506719397843312677909798719899214209944071957385296720322811031788178066272815137155589788334519376180966597941352488881875146189866826849031280422184540966965453736347087317818391299921614266938034644868937981324139894889957159927271079664265735932488197903602112651595958230101734198389070793327000582746214485238351609252803145386977886089425461367062186560701002399067709942258908006228186559628703235187522938475822011610433289658620723447745651279671715662429280777837677769889503468211432317185869680544234731219631271564183376809403298855111929647048447828196255706789492831191224916011524175823302563767373384744786385511337347145259432341791282657079210610880236720655983235355341609988560058175493863549643825626258537809159728545960358235503952596314978752157590786125782425349227297987394696744985441538599024208145994176591878190298760555156293855834969385883311387983748775757688757768674259636730712550734351971858662652303542154600043491219269815425289649814969336782610464250377808960629640454869978343638459570652354454186377349974815258027071833460299735377736477341484991872719333252618019581015075775270654524488426823357952519280636972448720583231631309725440025042813914863352268590708325120434647025793364117670925231444152964441878954401027464305583981036236240983893125141596155661435451477251161207883130624571986413720954008609765180112853415835776012784895231767511301322854662533220861121729752166852707692209082112050163476521690858603329188091130992476344749297041833924294051404071209550990459391703021414232666715087451964014883234438196632637640514002767085791815562278669196162412351252329341795645454546786905755891413261533576838069675157645879303642464776370391306658179563047342446170570172608178883186928374581828485893580201161303219216356758746672475807784063809456186918087263241211649632626192532609472501584117756965584079267892700779404506349903856815868158447824155492362199535834977833094227608175450504639694500257592834343961747354062216345165732600499287151976652586233141674134579681170601417563168116106149310699038563963025793600568594148847653666975274010564887243212025977824487944947343188105605487035813533485295318667229211733514837770459912470867860615772588160247088791613660902295755449559808750607306291164308740725519967152032328009756255983254898054766363139164888035505756702577074252105200963259303316617871206820041869922033320285213242780792439044388264120552273451377498967302699371052939790615128819243820863035931575574107338951050609426863733510685035850364245687572187284084594792688436979753855665686346494954212878053857185368150374202816212211651488919757774168681063981747046977806519310737110702801910168880123459124618766561052634986361683480192803565609410479680637362545166668918903503549044980139539677210422846372331967423676260421673716281686928139270244079234162376483563547574112923519555766068703558839222063594798179281009631532292188681286155358957345355697075337459861867413510294903616223182965754036165282917020419102273732458638477283335764862190924027802249755905968797620529501026949890099796319443855986148795228821400781952968769302940648550802748162319587121066342873932563812482770446971257591881948211168653918973109316008985007182026221953313632205086239932321668173733114206374670669542313852959200787373977399423041166638630731879302741089383285643586552280439074927602833835419168701301681098202616355218324427677349342482139363524521271666505462148961845817390106838961230729161610550318556159236290367547437813823610360480331941978740861232100598222961364718194327365681820013735775466115084090318290135570948157112088903458842479690188078341131838575430076442363156595055836470200010787163463456217110058956863596967129864306530626820642130014706951619079403276671048543224172384730871470484638584613896059461546570425236107368078721308322412989795471277111414405494874356632317674092400847434110018215608077966046815168237239940424975921098824276618751657936817924339027576925810313058912619883255659194294986271613368663572974600714583486024014024783224532745076924446328661501949284767971013611097215324471063350012226047168750764636416535031201589807071139112465402169725293237328959750404924618207026749516748872132652037692803478399025873832481332708055339479977172366397428598323823073191265972273431381560323779222084718548814629172279531977381194722622686344340298717407520064872850788165389137407678393788919759653828900496079493128102011396041148279989876288837935024361157155364813738267174547320989950841407528630983745595259249224845209630603935350479858028400877419531937277634357986916896479263606347277345802111479680988956516167544853889856481777669752691733901953686343066831993489732768511524341710258323176773909485360930853687228021286978655967781372748655344002783284378250602885329139471939166821124166985843580077221355269437994178714613591947893947256891192164364610547406287220690147515546060162401094324763196600595225486458982277690023920237676945754073682067924399253652656797081052887386164941942482445233846548487034430119509158682894597544457712357354700837332975535964457782446328849694332115812568462432184753173736184713261900601429452197923823675658744013458840101189303388203710623001119595468524103252993621867149307328191741000826070996406240909828449117310917960800652962695680516046224124891458188954900356774415517236000430319969822086649025678187229874279139623111489069051010307361035869157782505584677248322270268553928823944389589794388242033300510986447358468039349361354768758283673061235267650564854532167346901823326905477504023860854254810574010500612545549517004780588695122762906478379705321842310961672790059854261697208266789496560344833623051806908886945802475038295762315210684816807833421341432556488839496247681137579833544286859375431660015866100500676225048796717653115725421824614180850649032757076250393508061940734829178319285560448418273017975532740954195790584705319143866313409714568737735180829214732638784968631987487798356320288350256513178237690656492721062707378437347677816573783349128978324816080977056350707287932606701544216084145560949395762593045944030949440209996237575805457696101951980331417189373491339138534967511277187681259628807951350436747416058430884053674964965254230058273393662049682406559633154998613367782704531757247449513541993612585169252056463747268526928737583979572039917272639774784825238253071631583449429164820344862737855939074099946283803683498154527462666055221361288137453943132487774992972775611887353236814381409635766758184347212215723828992550281273489021004452022569924591813275903361481083752086119539702855142022952886163823139854064200673336043163005382982925387208657349528947713746575740261015694954328306399685606747235043520036230686767511971775684192767047486846048070867810058970982399916387850017592685146922557277718576035856565840247743321063613231063362282295946299937078674540748570442394504636834282035110344279117498182881102502324516697544759686545204020887333242552161022789645668103659373056969015518224556501071301517351280069083504069819343624633801727975689628530954988528473003373249711249341597204884799716279121897038071353185441777782336777103007639600366786044065994632109861392797071068358126567078316005273032987769526047025415129413954676994021877960531597301291312511856505086573568215888813253812277374596220509398817340552295885171553549820783286082882029977144814189669002392143065846666262982845485961255495858321467121153965705615773676438618046870824891453014658776655046267056015085858459281082802077214739560160115421214712333651724358790278634452574851801725664431841595159660624491130670500796839289557459503346648155813436815362200731142269716703099502905777489613317465994199924940586243634344465148918050641469262015727805900495764301632788060171235650763177768801539679296276898822327942277090349081618544069442962738459256849041452035605108674084388379581471542890716411488497391717691556840610440442902870553812845570468353250521383495058759358437971852125901509080775807595413561346657319116381157479084253024439286672762572425994055277198161721201308537983338274341223863816528163276469885539304702750996942051834815699318446246037777847961377984789283979080071918783679448280225861531606613093560142698386963505412343474652710795154667396421503954674222382403108052777597762110581222857968795071843366241300498830168236985954111737677109559145212895276280443851602123965064096665554847989817078908665742701803482258571980503631535689123125573504468784929115961250270347289966064385713829293701602832721701726922440690712486092679014397524180859372225714339529454641054217158954640005229524971276768580131707673504713976017812212968497207413120269125380345034622153880100090520748708698943196573446506619583812602265723518898088599778301078556894075237994283330539465996682325285904425696641036765383298507617802505549546867443646351181918072862809176125354632252541021362129758349070514098635773759338240001901240976990196457961100636199904519986284971616975251569981107549689608561323727846973854309445589860463576285137279867852845849134543433672100390460224742663627090291696594658893355427740046221978601537524854356161108129049922288171761200259746664975753900257474427520885680966873966398984391330662343340846622752514792706479017571674528936828547401782295605671807680694050872545605735244647787300734350911159887914241014996409482861077033328368098056531243120251204345552592358623787488195686596524952190235046243059084023998109875257308079206238655094726822584744091473424556917991155773302910487246398253914464154263856321197562545759650485071543236017047958492280012480588868507067899457956068408460106601913014381336377608535739986776139804240943795508941022186691624485248116645303121516714125344207543006911728129685829033870069886334591355241497570008463553419699750858271529705077354098990465524823619893733589045734685275293380522849878559783385908632904738033250508385657381850792770628398004838035451759216454696102430692157821974531013018515082083598630374563447566957467383510544945472023802100367017667631687332388375704113249224895962943394563864727573813181574523692888064686742360905953203249649859332382447379077181119194452838508533138229082162497930917477477079545092472801284508074708590465669122216722687444029017210196636813751422158668131757041758287902326039947255278992076914641914029692427069176479933001111007738732560899233126534931448789374120314687089343800457215534024971175524662948306671008085949120821667872517286226157482037263301079299750553737017414339148057140655630462876652932625818377276619011303945886217257500664550945294482139619513298834692041003333129704234765695332179728090733144498789969617518242529510967280639526193408217399792926886509015480118045016281879453055564427100409453027154661064403238260754700526247468714421362495872169862128305003693048837590979789817242135991008505985173512499572107966769325843834440084819686085332568537995064055287885320097721449246738681516943626904414567728213495314433370383317461674124754982835628187948709770821589501459587471976408599926025312505785563284627726709378917382829549408126742274491189989824277356039537607307816730762679929861350343614569544811503954034124642622054383874816560768069929911619598072201601958661781500376758267355726082643966223936488805834465285251177291954704314287408228278157941513197617583953551060023475760007627434768190001957555185453838590744218734309685958082388012826188117449056571321973167810492630035264167969467542893273675080864135635291597302398350317141861920694487290060896277217780485432541177972219625688307492759360739629213807105797878926054362955946370984643102215128675327483745904249250707251629434302127198768512435368025458040243629080866609512254111127669339835998487524283341793932672838872823096575284288255635769106386815334935954702188062787541988654502565646085461403397107647080716768009342404084615838577814198527039432905363144508762041834655069981820806262718483768538061038416170365181707190211644011912173217695381973074593872924667871959618214481893143391494320651282667455234927991117447750541974339977023564705648647530710269986283701714872573927866739137918312664005580420302555311293685285231359606517640932167845669672938075009980317459684724980477318022846454353215442337364743258422989554159510730182267545196094777701451677909575200090424455106453853359326182299168549017913952904898249550066762107209219225256423890386723826771271883173507248577268734429347258917704740167716494670073749382003198364486366859164607251929535473000127156711875070967818518890255450152964663481037739664910938483825113286515697745881547346950829508894790200279583943819457655042386989415794128319863010063371250423445308490947307446858175723313027832061049182657155991734915284385775149257388329223612090422511929387444685095306692998324826164845600480965644088067560996708892430789540934719155021214903684911453477584416266626884410156327560139699183290790636395829569325562221452248542168247335276830731147324412891861808930553138444215390050414244910396624864687176249530969435706913476019257777114997797016350203704420478628512561087124763631201933327899423494276493804804523638904245286524200931727474707616084420624107382300729689658285519144223713996061105676469927994741431480851210209918630284309718076250253688263966665380398359422211347883542443454031303151559378700807694656448660038135785817591439224296217850126825719792311939670876295974186835891505236862047504223192034275180422135587120200821976461110309822336956546843349215034062647119692749589917632045874160120331930672144068200452639566584155303515085102063774925716095227284183709360812593996462107555577163459694776688539556658007107968525044932108022407654764568112061137125070886690375822511516748902645809711069659329227203720439536198041351932953861059951416196787670247806991920794439321503770599435969438018165866494007732082946095135217989337195065198165844410701396897919029449635858725966205916837980008279944212044760140742409767008532316493182375228475065057714147802385972203671957035897961675082191534268670538555064843614310024752453373502864751947077309947562534881881779060095565792351897581831441491778341485390024074271925603276145892509496337997719956148637577599579615373573257381136188348570110603698670793767784741589476136349515463587497174731022073162600302268534034551034153759714083649712873981801397486357929485278060812439938464934545405976113170270397071211875747321879792323477065260227018584870087572067423582413549396020862084699792003690770970661887286904987011715139744712056723820818670933080663454534715734254910684119952839687766540651732286392145111842154222829843680119518343432220972217729766529993827850271660506638391880079799169872120732518018241740590180193625601683274237527793074846876246019132313543830016270671313636191341690184332151641619387855123593187025107691359093950934820541653606515241739521009464947122208749201624468215006493734547990786615897839107546614650560431061252557971321728740689016527951294453200229851896540722373973227054754749830743685661308381237494120331250767278788896762432252203809521232553190607044524952781487234331217562866455575444663495256295275373139203596699434077697285787256461649580567979974435981525327043631436768794966529703269476675390110626179046131081146519970529490327813204045469938647611007252713370014854680170627925205335126196038898877368840985439525953989388120916835626208549306038795152980306377853717515685659928129315889375271488792890852591348704331198688558936451302852768241513310856227093522651526810649364356280520970242733865362912859766078157364083170283695825846794821702221558513892663053816528577060946435473676455454327118267001167477589462215245184671484245308512633799685547731305355166209554909223903235759287234021539115700589093212586605969950007524487495238056922791727402256086158301681825241405621266895560294503896018901052930383376105170680265808149701925968908474528351731613424003621388646690614136781223806882582859450965086412941780625123871437311076703051148254572974134398736225300799692996635505381089578006165653482047462727284530664274426024804144200551346472835778641760917834405291630383846734549417433773849705901609683053970279927907907177117890087894138797978989364105146415783931991091812920380630578231179581650477104895284229653369369390371397157244190554349831103700364538600531121543595890433469228301806426991069426672410309143658700290908517304233284746199808148099989455919960697821029148142947657219852665316135659016853334496618732583372684853692653676606429127927965615333800609620602170015121860959946379346002415142127702935995528263015974437476771492919344798865254219029934615457396711550271445262133437797639662392466570853685777122178103768883159531085499953000134183352623070312019145914629333715634159131238490471764677254255586895997903701309960788827302064781478773638187444725468771533158794660358504387830224366588837308289673380318678180230803008140409073401595212973021939792679615968691695626321600651188599668759895735534370527628099141191970858642941901959002088722412160017658824712236600212163149056850264090355076889630416463056549430235091527737768248966502346902792991600240140842876259686995508803181885747810392634250380160269061031338466874624608697866312677576673195800630347339756238528546509544942258610409430473073795876233433030096663614579564902093603132001659065007380343918500305664765080579030583236310521845124828228132129424163655849424057044541041480706516370248623309689254183490727018023955375652193053407008219167186502870894560847149214609653962855702257216627919916432876953695547293279875457500609187938272673808347280790554098624540876045092539946854627669299881239380877161093927768197357495324471145943332393410168981040969566691697034027584597652380522164661735109718585733281958959421893814555973005259821906966624507067190376544642260619117338148570052614645133615241671617475972526850937882643500499626229773157816434004145349871064303892055768240993506292279066795057209724378494472973570097502828229567140736585849409024074556212259815910324998397602524689805596016033708833919138626495996284992884866646964027102537249170714174066595693186772164983066922672485390399798969050650990727160568393095447136959769323133855772284158349023253632130647878437116588503170303081934926441112119254619768674248809203921677262755594661349505848111382773240362952951242511283320608070344426808036147006106494663343072149412873949071192014000600393083216793186309892665109721778733415373806416016380534527578540050069014337000531795125673236129126345172950560453864116566581932370751986425851285645024187538532135614371593116801860685797992136477773271844522302027722015753717672895233092010382186505800832164353544496004350813489600762003587384293400661492405521790771498500860417815838639026632739639153042042970390764505649250628442600999655465338635002576422736905620272030309322618896036336833401845335837148503035755819120883014879070898048360802865557592701403565388982845731888613479305190715561103736567478049618987817984121931120500209419568218526596210934103281499386361873706241533314855107986406362378376861357556292627841513174795120810886613931531036971197977149157367835825252846784808572313322167358154440712617815891845613210164407816351477783022764352859408669484084794329150311819274535848798111363809301579916623686335407550863110406896527228606709691833557986386987839265081657713835707885729318687072560576458560466038321632228134922267471184493696589992881254986815401363275911012498873088621702724265456061977902111563901100827315277461311534359671948869170792350995805207303208973249958776765832642215588369023357727303376049346463978139107909768802527061863773745461732894650418348484721565622826420976278888574792152591570816424562558874186630263419602358555297607436057593832351290670600027458959519767549804348501407712150207149878208123037461118470568361491927629198070059572607904823190245123401472347005144028234257561388267447557789027997942458062342863588026043566760453787814518445200354039992592645253197000020287776853079527852502028048053341940794436520478663630103286445591651337704252391489912287777937435513494760687587895768505489410059520704169947269764154614508418872757836101963191122972824108781490601198160994942892522398971834552067680016299151417518730603868514956125709834397174317038467993935326502255254823867490850110038515650368143421819300797018784101744230934032183045893577803311738002885710266530071494553243805666703508878858899472378262247441821091046032336893839153991012958287017253958210885826247643468427154192636494717823712206281093252775927931031185432445476714264241150939354884824583160912503389437772141830529954387285148085454251462210936923403448601850818625652787520371844069587582817997618632169185831352607899215251519449065127357607272839453639164757567992988070992475485783464983266581713535781485587056920174949950881576848203342954219680034352945078036461845211073177160208049964035809040498469427776206685000458808997726440116045658444653363953236956276433604995446983580404781442506185626727586824190791783433341835215771917536976276395380808206908360481598800100022921663956006967209959844267487866998243990046696835092001959264004052662728247993415811420379927778148313830646356321909024568773204364929274204216789912359291610254576392565028855943296427673021113444713898413571510874682443662996292294000808326519601515046524906124407147157984634347787089456488426200006990500859629386787241972234557224270013424345906676029876750277912809798983255298514441456794127331084191447874199078944681737542022100387436909274766863443541165294615505772567404633035149156573469172296110825144854636597117483161169720776369949843220388294834370872372521729130017562674206329662828926645920600042754044785355691093978399635183046550029976263172503097097574952437180336232095323325252531820227504125426644130358888110906030640647420552174794283183929718345721657935235211041777835789700692479281625316745549299384826991851507597111997161453853226626860986294484748787750415602608946328164236346941485591170413808050065700122414424636980134094488390682173370442532144404207758153036685444326155266125049231400932325080744018006979030617855309915738275365765635178735982744690040849736231277321743624946995610201621074540507800819355809447082766698201129957490567299712925620758370413225896142201391586956175663330201034679055411198884484098862204035443959893068617480814233212574936947198199656831837242408429522031988433391331256487539561225185312432352093579739632848917173877324131668155665031100138639039523002239866213137559716890237761797708492348626608697630556591933661701462935772330480312336534614891891145397204414818744240123474581683401923278414024790761969066697224025216730071716069582599465571485934386245471224034811982402306254568841590259799361268742299363369965447665694569953069200046791153080677892848867206980747482769549049563585030650495905508528125323235399839155846999795614585877454050943101317774920219348143020019362587431602105535981648518214398797112768979610424321380896035316249554970641025426929416208813550719174757059914152495713812877980155439781937233041172464184582631016349793644743737954083776412832160689103738362303771179140514876625394015766768609550387594598351156348468489771360450371471062144041400933348086073097818318754787796882904253612525107048998580991197550551769158748893301198860974729280652221540884445241667855442625432834172499060671459608976470547288955898307098080309917148470911270296970735564725802627343599059027491170213262391722608955080794308110666795587631279085688519303669768658643907769644356202144053966880853885898983987685792217677937217873626236063203133568019643927539303924300600601575908867895041007716929603319372503798940182464799848246299308699281839558550339023156657971944775474423465456611108127523641013418195935607663414504247196925053348030104122810764414158290286406499137451898300099232265560552788840951464119759804133141202894165214292606543943907705609373301510742861251230342262426420638389441498971773522831607827762200786486201429217100492317682332753559888550046853235157797491779923485247143618839150233384686059465050238538743961471830908713241608005573370377702816669562916130172245389045440488561613371595613353556208612634997888355270711645840658600181734192731146903623077472036420836031968058371862596361709267744859336459678260996599927846804596020753071010736158208007493066226838660754252530353171890432786245546800689334770602879850640541235065138279981850972276904922759171734284494082232732656417272934201950857906504852244374310606929734319024167672938911094418089965432232867862101467945906842249205315896893081366127973723580497389485292318218353450332326318421536734736674427777437363196876426228541164838532480183518784897070294904834775829138619872862943096698816325811884098302145229416660021040299127750874834884323449047401021895078592690547071964904204381612531537852813387680206633300605568136921993774788810496492757906870644806468907691728079149260206624100221316894023800385311880033740808496604038821182013445347235709837141830504760970488443560273834638470389331255900715113288388922073564621492709508477262359824743821698765906460087667700701974693152654303611480214980972400258202230067706833895181554585657311595943183193470011189241845212181016281429617269569567690101020415794946761371231527150973542929954050367822205144812622622808768150282171279862948248639475090255498383193974637393683838662707947748165860321470826477350104225086161149762825338799041611159878287000531286025505368045174736884777422072800099707960157668632072962517143548587779952068266706097974311667622687986720316087459362978652735639872686310589535993739947778410797462250145023112615500430808098063443672097218275082027019247538366208245235793625904818447957799287798884603503210480633274002282062052348624049700851146148265734396286171383797704722252744097851606772447847924830198713830380757755151372672626800166398430211520127112425105910127968723294373318929488201525321081979617252637857437670027051646784035948172480990409526387778713573093751111621036846878773518553209204607847045470895846245342825919707696928347677462537226329881503193339388308620603081444111821470542510847462598807280344425171196549435487471627191710950742743047479233174453879414509079963362271901876840248391610655392131847629118268335354283147521112110413484990433795464406900747751929915020874190375093063553405650705900358435738043713625006263461685432887486105332773773378286231800199894915906252602694601926072356830750317974563477224365501344380375029479845454709580398840990275844771998055283579025971266172036071421674315868786723975682751253109378058958363466441279542446758286313953718165639034225388347217888493050472034853761997073250534916549766114929752008814296309856351386242088351520301700994815096592215153363383888266116019279978538314366727356943336812685551322188937323272070257474592243174949439081115972849353459159934534760431359809212939295255827752822939481584270976666261468639830917090410744671464321414570728403073987816210747357837618374744500060606161007425639549169401599128765229120208571426425642732816322940987648579327421071439056165621217843949729472654296464552979393233883212308653180979592353843735084392634802119569568201782580733970099847272884433773538906065104757801056186589259874000434705964142916418244115109219371108708765989747680504052039819397570701553500505605404783674613446587983812414067373762967887551120840223768822214896792217184934215036241176507786458620438780640323431711292907876162426730783893307063216030669412552667696394924310977638137625193183769913415192690976213559618564859018714004808549675267702579046587763335963247134369522753650013426652609462868711933106879598630771333243381408418975477320841941684233897736317379219761222500706009469644880369036624107209841899653990876962825853356555721346465796668700190849313880598010027384454727881627401334127533929817839992132257401305639435151430941600312040465471104555979739273053229331407616105556631314278907018565993980205273294745129543523621797859685166329856956403699083853063804902285794936840422488513023478314803285261914808323226581051917304266745941316619569886185468230259264468684262566485773008501955903673265061813860513591939271102106571037761629268688126513758941813774482062765367649518685941219901646272047417588405002124175278056600471777424954655889363275912531542959741468031204566921822321917746950469868993269834272333027679746476832109159887950993935216047021690296211790693633308383304170476816793295164583528295571230900681086050469260457255788807214253271962794441053130785885209401255990092121361859503779666178264432909504282491255136441365673139658838684751621233054297581053764529634437928437928584966104940857220862359190873950721726253864043896164105273269175186617334223858182841598322939095262767716546881079363945499270311954772700163376055033301632108154180931677197174439301286266778028997472938917275284161052603621421568975359642026029227501086064590013179167224673252783666851733606611151070325215800352600583262402441931728341822833326404872512494290807499203278614046815907913264453583417712651296806324950571435332624507591064466272857642042128224561716536889604513975809667220357071421671204797346642254817080881302364134537833761517771633276998840980672806503582190382198658178958926313799512182417132208538238847753750795869853953930610026381271582295173258821286495623150760079748942530831093958036065593066962139952603686827500415967397782322629523212830068764274156711033529976298757782483401891109124327571698098796390560706831657333095233304754339756882223438240739927121132194229976824464624606188757889390624658048318881096998822640341791182257780763154409230205560730662867227910541158919845510440411829395817521065574261271930709671857236250848360565209522434215022343005034148842537234594690011738876536865570382786521075679358424616923924080944753760721097818409814726495366091047047905715918437252693145361050614548997907117299564064177911058960168180957042964943206107187007376239382081785834342449796826633946536931837256968648795274665391433267898575565531107496349537687833947257261159577015901464961831897927104527017641476392658126782019671260786011773975381740369890269075635698647117366109458589873129906451380935212582685096069114273098468848196541428824534313140383134787342305976801668500042630903923337408201725868362497105184249453346056202121384793782167625394116252904583200156371381919720625133212757218884862394109686746153062661883218414868751607523089117884244484322201285980498303630654764876901420652225336855803104167913616314858830675463053427426828122310823825452737353729351257579523556984269150245317422380136545026538481572574115039455067683006087767789525794531424113899155653293370691896312566089062311989904446490918035946475334675274958054783619489065178375995640911409920128274071273032025681237040793982352124665475344014846752682912210694193234303645501238644867573153095746304004911719026548860382643014429303396129644784566253852424059225121382335719922412289708488825789107545502766356964074530716270549602138102476199442457961195398975799310039570789752168325775571769458814478458186742612003753463736788689346772178316819139210558788805804215104534722128825772715485139391499226373982424124071437653388503973942964813551816631840552449400807136543193462454477993104703016689696008834442950728234310414559848881418194762019936956208738535094315530838621835252031313089309694118970437337274339766539366593244679516060428313896733506628655542984124161346933558430622710893270537480164127264925372590212216890794050504496778657802298283486336114442736984199200378862110522976605636908978964583445444989596966224510132269683411977029467665606285370946329618616077562841846983515528310300123698411622807965228371286171040169600925318117348102486863507708081218542429002802673561773110311005683819409037372150784902525180556623768459384536264524765258222700747855128325417169745319161001158123987696629801337039103742834022821816771874394521831546666622937159161201072449077849037276335395025165664063072878283675079657343562423284830688792068637256329512801060862552391100942617563271906312463205379929757132512299230179826392729727606818124601703599773206660366537493749379112317318492880786903210258474025203327669642901484563420912892189299623475811753908611888604879773680704898222433317935782748878905763051737456249406668595369192404315232171419259624479371891228457217993794024123826413158141588533574032681976737176347703922959670905387936003573944842372883246952267997891580863581395572274450022401262126148858120641751205548165693069577469958451172560726061031270830206292700032365874946630905202902404817161776493510338140114751937278941326151508755110716537929043497392400798425140018511945111287078472805414224987190291354249651196047909874334637466688894413487612988073842437930618815919525905821830842950996883972055013532617162105258289440870046779450825299704144470302001705614333385798432047849418950826946177036035158396288165126577447111401763816351586630763416299922870750949381343083492344777680963058142593204861527303940764752270743071244962276223322582707584912283789782196938595303317568539965455593372177237567670712039573059820039570235708516969707936583688139594836600956296203918516194210204439716895535880655363571333120205412332757650470431273795303887637776516560386660046879262406262137610038560665796480522452395327191775136147178765237825519207188587169307976874637533595785237246451443323093680962817079505772289041951176683830510669613735401967172021430022373808405427962755763937674257911552336649443762015975287638282458805293217228563409500594120348633473643873304992257013409669726733238824755246163016820307753446757435591450673458052136658470199390718437844126911484522265614340375322106779667178322232225104631321083128086279786969669206941232785088612306467098025733096681545158441665200669138461605103461713520923774158403419468543679098719563703881722613175864422383757617110099185136311995001403410153935590992675208949153486822489409991735313663495899549877518824636444202340079143818189584244301489452658076839783780472030645789109016383678069354382501897587793451023608110398444977384523142938167770434109751718130366872895957703894869630700496107101825983633533538327270193659709649124926043519599740083065639710996846730155645698151884283331565446271151799755472532476917191165610299485143157685763991621706104000060381333954536591108363424320005531574928516067869520004804686391905172424192588986517744540903015197924048754875858291509170372579274547863056556244579831007806000901201760406269264000851086598406663290371668708787133420234171855327460683834238044819336386894473283572287043312428284356580215255978677389936037039325506949862419342321963774254822008797546618986154587632691147629667123037386134637273036005694333355287557581417368186507779957711933385478580640248383116741401359917651771800230944175720708294820961418376940168748786012205737413049022690227590750409637059179401564586820912970613940527831793185290091307952883577451407502606374077523466406087156867510173520509865589218276089854168859059787010020481831935397607859267318966779406685942650071547473850632581977178315043067807323728163451958267125710165398644422007574691826468753896236903809373158357686079016923455530911427783557963803931584747855750654944387551886769644545391895577190193267275712618811886177964299081191860258170111194125115635120108213233723662138000739445900170922599250045374593128242943522832797592894319254870160526541618964665682357528525632971536847630610694482580875135149693974604292810939085744756483370578291955061193175466586676046018653657443936608465133176353789238210682704713269813872530270155692452113717487218546616873208080301052304126708133918590707342609703239171173197908457557842864208592079165262437364366329133653544043614083786624985058608849510651149173617266440972919836754657882959356746788460375030829057437257025840062585272612759961811393893250892490422573882445713575030272990606976325783115162143115691662423024457792746851007310225411281017652515432443036259306331599740244479809953506202757797557590804405881867561939078525397448643800478777775387289875560650705071640303520847054356554957106219884451869309529708405732420541527088914649286597937716188813894741438507077974787901748352074184871067018602526299563133276709913412882932269648842181719407770611408841527109950901073866497102050310328683657426058432310889438473209216048633341139933975492394094284172512491937535499669591994182259341317492156498729637126147995186893619561779730427998820734358356833977816418593514832654389177641940454585057704351121768927442610456078885647560725908999677876049068029127873308997475258486443680636857427871385656832052612047806724793024542222387000199650806558430303185715334151241011852020682669126102827205763730378839528324550831668256186750464699113686341227690810317893679337828108153227235488755086737528371162877739632024118814335692797963180475582714498772336634119257428491031158028144311999882042072634266173937260623426211425742342886625456322227407788926165600270408213605386150888177784485973458033370873069515433165947249693114062707839779988954445393741812094498017551238854336643892683077933951715725337472272085304367748084747703287633061114789076572021875424446056479565269877948134523029277186379907034779249524351598440672567872439410192560798577867235226904924308739223048187463325304515276084642462981812602392564603846113826478088349963394160212847013915146199768072286982914341159150105170063822798442427569723077389268407267929405556959486966952081082870258752457999215180436109535811812436831810357185001672059292666041052538456439652545425380441197313947362946024690924207284275221058791220452978591214643355279996660115624519252195807631727531914274977977700822894238614876576841629898285258371844141257643380170231276956070099360604643918081397200015723895993463434511323017414975317080061684578026563296052672976421068874263009459496996734476447676085740829342588145616842042840437844577310029564208592015001837526527881682423211990571274887802044174438746947943109868539790645458953988042643948222388894231282129758232579321339707778143731741273783261710266928515098188104921499647694110274325783344673470362069454119704261050648152688126682387302504830808738224446620288199767436792329038641620207122020674672850770644790941447714752696277824317802147501985427482974437184657688292874461974718465736790196651368718878004815626529353875518535820396660713252314658539572039852838872409789902340995390764239520410493046057247873047661142238361207126648051158541568491736072900691578532994007481726819435494139989270020547335964930779770713627059042652881708541664750560123720900351826240317800460979182726758084821312941788736549904229796492999113987197173549924774123059188965013365762718097770103524543662837073658225430954386073164608370326914881702840165737018296150750130458529146015504718549805642585820752639343998094174263842160128057022718342919062954761510179154716622418046996644317256021346595484103188785696632462792175968679450720287045611133856611151236337008602356348050401989324874790690504215621350562555149120994803484322237266553829764933322973225895411586192464526263867069625169675629109645649817048305363649589157033540786981670027190492913119440201838739368291055641384291133164841026409210249805771106657917714759197502129315824446690267181942775171868448984558869020287421082664810192799525299002232317444286608405854502246162992696358700987142346656987288419662510667872808503232936844184640725440513317866121659834755813982569463369300038360957546033621747961931474797489244852327852672271371287060775343038460338560002872121321065586804262274763902586606803991165694351344679443066565221941733905935789531472421008558783979761193883576760893950056881422869222822405015127156683608842827957790741901772794326880629996708573182312057157152262458276072957813744249934856793958004015420294159222798816525928500147898374561888526108270869974651738673921527401139244210390063219107562625471169899812686291147610351824175179177226678286540109496464522314774375991582206620013354035808986926218670354079154890070161122165469885850187362818479789675669297961732452411608142864859845881910829407044476222697880065402765229625725175262403601547843460640652499194271200840686023037389906935201181931440764900259183259537837202330792517302492831497815372507493894876997016480091276945477775624806137924272798233901304592655580887847590161953406442672696367571327145579277800195112975425455560125551235277616475674250851471451619432234370223248058723775205928507728891409745209896099446042479829293064032178009490062238441834051307434500417860114489620598760664083701186663802946196711659019237116303002674638695217500874203675333287257184224476989651994544281142029255122478328997965993045479073572084443777301807659753112633876435380509751257759970569408954961591697502999052049328167818301383760916118544856100867911975098201794265161959448027297690595571953681263780161892611138558502265525786790217555473341252338245333205257113308032870015561826933061311630723552648200501894174751707824157036355403739464289747134197809160413567951052077140468710008207364799898387778811703790602960827292350620116695105439308034489746233545358139339668115556912533009760416080846876741433098585405700774945320366854649723577796503815319689656644338651124617648456302865445282554473344005984340309063991575548927521348874491531108002291014150646350858633343787343495728679333402088116375635396964587310311028896412407553671368868647009644909437635218427537563208974287433876702761570819180860449694023994651527888176243946287434120875354141704250246795773805262927738417315103528784035462309852286237212019257513931105796463225245517096982333954968336305860232272503234747447385789529302895721436898707819664040758916482075056382618243232521733726298775982155417040006347381097529016550411587118718857453245027340186387403213935302695405761694910393824443873244350402898999265438126659456980970865442154220104804038105099829196596902055184800973553365130989861664228212495742340808091420974242856538699091597599559746068946451551997050587318500732545118813884438433051886738855896340346129730537042058876989341803861727328256694918573040076921441902303052699941891575984498145696915598913959204362256156049235385775663925332137242227490859785622448479567335907715023578420912870014986646213486338974065296484020021704815601700484239583812923973995307755502273121680922441105696041991146541627753225406329736634268119392219110133063015689753985240250908517813996460532016100369092269339069278690416819613289965760482236944201263632526332003485468034692552826323421445507435908012217691062232369299293808173458747253844133598455856077106479649124491449389655642344360252753772901936886051833316783123872350637272675601516309689097099767556902132832342482217818861470388600037255296316854685397840169973249642708960038030013363455980998271935686380949635034822342562259595274929666795552976028569509007491391816415030543026999372373122813606442280853614603867079649187732216319859598856074166998970475603774331469022568039269740478301195358348625663545603630525573577838711353027309683208258961846309037956263456811816127923533352004650632601338479543827520645657043692540082480783859286928210639833539369227848547773527149620107875805800566759307468719408938405291291584762454231098142283095248661090203143878682293744539431044026631587553531299614948060853100260207011558622598579893719896187266579592052582852614993657679609163597869126084454914404987335841611972205200815987386679895465142668106055742826790074289405102865854532847730199997680081538887276572762453370728463357295914533384853599215722774661672479075265732590990476149155983280614568730128571920763104851433339985179112298621455421201318799766811225418325690312059310342958910826690057772782657285212792743900636525350249265346446810463595439387731518938229232098230224917153453663885133984241641581635433981897979827189303304240175006825758571637033166853347801383518052032305535295151954991421938674676943820290800174376505592324461292489897773416478018851518559081711757708333038946455166587127231671001760911073127091301781950688138701899911583568041048263399876858054927006818183710718090745565634165973025367231802697494641083255584456500785789315532524374639144967045676203078751775317163455273348159918983000394941463820109151154838474015924806763264291997650671938740142112472919563922037585748156669279651153297039428102430474961432970750743447501669100494166741471010335398124045021952192144028089860788869676119145454280880010313443429638008596038668027093236112938192871547264255580918221791767594729262994651423180992252458797039499293798374676661702984997947746090840769821246427736485807425642089838745592651300576264491902827078912778624532373691997558321149473909592901356134689655880016183738774388942809030160159624508963815311050984579551717434270364633008293912129805441594436933420936060138606310299875249624304501458993691330328373400971397439478577093692055579365514949449217180170878351978807562009015937533113701241526663014105819142452548920532510905105663404040553328221338881946104958841700849000507709885664571440885102009270517499683577170754298351127717670791807024387720552318726966803739815771059293672667771193425440430584970438752043856723388961465629692870837009796530184742546316862012006046261982734731534044032438044044494125646903103730175990881168884135153171948241897633415674190547211589030641295870273448875719986544957614698545438676969413942428544279224582468398657095152030655789329052739586526273111170088247354241514851712808804098840181238744621722117664907100273324232646136270495106303678879226974118538016719443431902868465069143074772296767067388028910246919877323805202246772883446969748735085016884795461576200568626962518163173448424290655921874922933900513473951545518910572227547888557138070592034269810155718013030672275325397831691699197410819203197020920061203966805491823399039200148373760476091483844033816234202565290941425156801887734219062150467086061616007198004575056601914876961140122628022377298565316328287677557570813219833305889273198480841987965045159425158736489612735547960351812793869288455273125436628966221471621107389305186747044480340245152178579351942824160002600377484630268546785066707239694153593630165064956802732795126318565188841060850821575305441049896601065992821523285325043320777252109313059497584038158181272522320279509057020363457482687539324621218692719764166143861820321663548541007689854796974702716760323249028962380491068048783171101994324150828449980217896400158556411769983619328701164957240833094964722063554537817292719575419592348622432628849294102753572661631326510941524587534678486096146161994531095889576090404428054526149521148314916493579586137350423992184611931625000177516745277372763936799863271971990143638965812089208833008241281874404353459748807535215280503075638048528368514656628618069798023119377815771326426023055102098869466112509949485391353936242370596245621323918578748610253369255119812192489695809734993212339815284653575169221747998183059415114210684939439056519524721961620938174171778855814903612476967908443531719561723070167483201650783395390567847127923340398166943524468651240115924639552834404821760379025819068195569579284918372847174968996841504406904165401275557791242209668803545366604501822038820274457044646703946875796173167192213471925395636944889050490332445344810564952891456816730455872443910072714887831259586099600561821649386105914595700116023447360584456786622945885700315107682982245655743850953434591720308051969003168233064472830614349566471834297481642808509170472266905893646459833944649485194103926934212221082617874886466656617032944490710723908123454147306232543658612468252968061016356485555463832611589062369058445828024621087622034976325628193275846893436237683086454778532611942095411201816970236308590982158691733024808339248762160564424807659003699619057264089451979199549345952970937184735089195983312149332465071303351486774503638007454291708785091961834165018768040058325706468751731551795976923298397503450450530887912143813283572325342957830670149500426496448705719283065633802264558627699709232307220698972518218183084761624472359973300255087407312612281149945593992896394326566415726911474956746756727947643668924857774943772112270144846458387744058708210595631333024084965398601294519659707902738240538559079934140013898228397121604257571887067983909786492354685593491170252659886546118314809791501658301773950557918206790425531469424868448139870913727961875897156469802006331623540200190730827688025953960840226209349153007403907798722952830234211389489729250952142697527264548416098800493396329437139470935787281197716714566228632902048968873069264326744510068685135276332529409184899753782242375166422799596850012761385602053984811658811838096627388158012314342456477770983236794112005490857643356827140610544580467967174930862047615089347256700185316221619318540568111935180590169110626459300008569570319026528955477815541591951743759298548595868453908989745636300035460967838501852063561558575156361422388623439115084382792874979907117020623904317806108166982640760277075382820458197770915882362390888368069028992490689971841447153324748832487556434319221273610578590996556386021510226335965470535396185901952776004590530113375595859376227857541622755490141788396746125699742182527207022526645830332454448320731604137237094291996047009759511873683141358888268683150726285981891709959310178643085687923210237869760787229145045812112883273213003500199796245671108900238298318519924197468329703383286834340053320609568127243436832671668221466910308526605386881355961358341182774271635936904653593220273523071625279914375909379814538440319597655028189941366259195245763642243120598124406297710411328945736997477262813442242816387722258377422296091692747679896590921038312052831776764391297214007048344237347404627421033548064480683720303368034387648449585375763134575106210634819438931049921454394062923994565511583017425455138194658243685149594530910419107257923716578145377708465145327113815113670917526185190263299561792193808489563338986550483237672620088437809138701089982025154798642009661930909618536192772176947510177607278104995427983775971457389887387371454775991915937288160259383951099041513535708268914015990560490195149050929959728635476411982244277511941398962892342596860566246880000303789136165603039745744387036675751064034137786844097561276699667006817337156036238648306755598267065575764445402729840605945395076799412015301727872016235866678441080725990682426909423859955142343822637044007421430834015776659653270982708596803078582515456309359698938590491637371746726547027021943593354935255578019014868466205302215873627542492522474071471053144608402691860751105615340374270032027330885994231598682678327936375203373137373743106159870308976287206193150501596101987281593590031247034187255235061518044471749547728686005147350715489131295556514161906612423535519352990432409773933375439931903905363520795681945987954315807452529214784408200601340311918294332821644146537584758189782177207653385211036747837156722173261376550934973965426041594337558465997620073814106243419112372949571002639537685560883905549431562395995530013915184643928413490506532493041597374546582295285932972875747311166953941393712593376527353134153072747802413796715971729463328846367108276798680238147061935163074420530742245840384067489731974815724992774869979311495292584102495467296813628727531664254080932321514339809894572404784562731805500893502778263433682523002680100814399290758415737133035832220389823302627964194871309408688506328953188445315513512428552508672782865734422219467440711308970397852462213861801167082753621896484415377595444294687376343365962980941815628486477892622408777638001196848072512642320985030561699348772641596640093367625872589543546083469787853242412723560267514253318788641748044440587866287978912884956949008748552332674648440160301024913474528843248893641584643750172945028472346534800119527979221657311154932687354603919356096993214046685081935375983618718002886187453308832716508540249900427051116150873516064056509941508930294024482972907614416131472384337886505038633888510632104775656040240167826715040056105315359915435152450324040128163707559058379280060504295513978452815768100728832087301835281770624133538807794892693137515806982408411476714256179084724673234956030402847057713299661410455290075354617569040279105955065597569252329612746811283159041685399851761911014047490172697393217745467761384996203952255171406114409396732145542059458693248751216348363305964176269591757794937583203651805090512317141959966220107946240775827587117094513389132469160260313063712156079266365025020732695371434026246345851163945521782282115609892098312265134999400870028102806897657820411725425580089196155948141428076733139897491214402410850030034004331071957710958411169542246324658228160054544189612525179446076848495490231320991975925649349292689300052797174554637780975805905551370383610558014784342542323133213466605183057754294398808368383101094041063765870641139992146847515617781544662880249224652135153845202403680739322988765229440281116164756446347676186285565759454778680757563266477457123097887491924302285367251520305361403754001645601230769626459578273776908566700183965070300341268940775437418229604067581322529213137989047951144772639170466243289663515837613525874514871057334457158137615663265367653589245405832010516621667258983118632042882594979716880993495625606321868683749795344413419808997802249395410129262467788786606883318576461688226866188761952879158008371346792361709683305066588873746266972604559095970584998143226171221021748813288703082893264422199268196279241661639724070833545529524301581198829133418266654238877079397958891827246581568279359494406326860673963448201188180462761150900666978030022452598964889148245755202203345035503745675111012467560138234939724421936392294069601932182772737308645357252028721459425845891738317192196350432617837474977571196061927772974323884223821368952484242610498463291068798323980831206344803904356033325817392871654421759908424680802869080937774679426475447269271622856291641839619768930737026455094745958885152378329245876323041946264758233445087090641400632886683795666275061336038968295663461907579633576934173462365824100852175521900398408211464055709742232668745486076947585846008475551123575047439415063509934835417851308363624549384748112967329991721999232790862085318762166292718427952635810827311952488407179024522560474733996151340008161220296084522157065478500074178056960480600614528782868918578073519496125935408460208063396730675304987130982351297027851958875067621783848636905005757006897749038420905084585917590250468149637961326497073581634487089655031909132148627151111268268994954993646024694496485756369514110933264182795786025820277886224702403356682735895250733952209185331409087017234692229510194039264787984627497232070320894924163315292000659679828877450477354742451394728656040875847984964123779489185840737215053680504435183243209376400240429788302428518256629843377525780845580406065939599907684899438525754718552164619723350501699396045921591719712790828594159678133859375306388319632217074191843981558829610291686870009445607379101782493554256394972706063360996253860212792889153851859646856349409802946617688452345723350788030836568021682982873188194747331726698028764953672826682363513359569930933576480062623098773000429822794490502655061595331346006419771310217766031042371775095271083641840913990129939438331338518563729073396910680744080111830162116880644014856016166013176186072709747002252768933904101350453718602351000580947179678073860686034674108820695242407667793372301774969634748876198707210306477790064061851912087727032029996845084848968987214886398371516688844988125441402078091229806867620626579725974766506651502827275589844018464679704666426441932926184344059845422204490537681760826532335309745982518697482728887259377953095156212146630726595279138726905574052186690439079264022584798411012368535694116235129057404593209783927232364055480549771670912212089784105251165780249978097067036759310493017724457370344401997829207157397832478484731611226016361924926908482868004184475649627799321579470816329938630217463193150661918387564286443660151433238280367009078376301527199456228003869140487264420386802565096884707590169697222015906789905534913514932776403030760315808429562164859939650660344550690684192529392150073231791551891961292766545249390426404763845673064486577436945362310113485532646837361326752900145319423298721711461194639178639457108684980218620318700759008423231452803910428706326303519341054774047006471794356377645026999981542409540541236348064064442056844224318466659366394068925449581562155386717636525985177692446868538561884644359362788705485156088290130556028575717587636078557623205921543060903473575707041380549408091090489845380076240364850091343828142289764605667602440692777788331747835889553522074446851270430686689013553682884914847046620735620790892201620144284446343279154283444022722374620151586708468953732101264853434927243789267781889584531960460906861414725464458470576416951266773024301764677032042985408685360669733824138403384352524739693490662817168081039764244824075210316507278243294314444781208005842308729852401782880804887640863391784508358800034579671678232580142920279885146745263122868339754415096632221198697613173108072729473753300862655450723862375721236768950045971948271039634571760408106685639519665471468219474298124964266046319434488999018200353285953622686264184693987670116333447553053622562459262715514078035591868332215288473963110256621381551851374096296649869894212213291419060370486840703807821594289423347081894324881721188463508447323807565829748294180156725357957017145753103823225331029111213338500763690941171936185959990005959876066333804140864882902274206048594020562322726223818741844356762581825079712047431177146021465924625599636727003359105448294463724811556325117017651488379443541978596123592024040267318621143273005732999055263725175421413696112916570597940267401599201883687811112923150710294658324624631719583780653100387917265309552041271218581064367145480078758402240445524199567273452005026258268437500148440575198474593705209988729506969357425979251931842858385443295864392585112395416057648408628743268789570091098896021664273661313972759909054218982864656464756946922481309377462760890021395906614463073088046210060275678594185991085344383584851564025990775996669396650462249326379888872322217743782224149627101649169245318241142598864775669638086277756834311061307180869921702697993675501081393632179201480740926845817412412164400516511523373330309640668742943217485966367352904920622588529601106171885392531611575400569230997823244335747153184628465660911911693590377366675177741378641576289287079079839021070031246167996154145841228110433337982468095907491603547947592117734402371239720548752841261707298962665814445467521704737574163621578298820246665378608267096969818635192912660883776569139044615135300676881782383959326796224525699911007507503718318796781747588020251479299247351719381139936874519773430525102362981932754337413508677764380276923055366937506747302295705396661507239869183774606414566906753390755677907706299007990864280412177006173887840816967959463394893131904656330583982640891372466417154256126099720656920728035561850044884536669429859046514707775272905303943816426662087087434290868318186136910482258837610323406705125911472561791301377448500193584394589722799673767669421064428242585443561069841986033968186017631910998319792631598433556929618405681884292734470487149100505735719346862286631282310132240066398407428501760771238047499494461624457400245543317317639384220224704085776467355810034658927076583217401347965101646971129516589430175271031483180774143276345675383241053560217199748831249708328287745056943869318748616196953712408261579669220488098082241912551281428727775863188067619738415777183652993344492718763626697694658955261195783622308860968104140530667771373702784791216290969458956949199895902762786085161367726081887444024087288646417414950855769131761546398939960304847933175573361295827842506559175277989889783078731463807444554002429258785888145867921998627229320369070788532924687497264165571602135865640262292141562244434693575386772449415540235430706733101934336530993340699739672577033758034503802994877215459238102551337181350856070090619245720341768584371131613425626668564604943694001442670610609912262623681034940396388011119133040240403425572515794656614889323971317956754724086518720887271511750733591247196648405633941198206816355634751732415301615426493218114441167519070615739627191328599848098020909630310128741499884230055939835589693452978502664274173449006966414156921253675553061750849182457827250770544123880855458259934574019835471516906785676311111188557689984492074230803192251491834775761011695405507252010153695355728454752219128938959891885213906299028947155568794186792732796551155471836900458751572376002705210840305720472717978522345906785971755859218424289595795274395023105377041192713458232946394471962626693582090534733933402790786643025019215086143338737896523007027553346035276918695735422993339086069731667484865826238169496589859825700716145544650332540959863399620891022761321891452020335813894055021235961369663083985188094092929115897198436621435474644332019330250260558330500150967604696835429087247752976810702687853334138618695938097767988055833317965707825478531664438796012835182416197324050010088574717620970036070630943802413666292551287412618960189977121706405980443306947461987548170554283140485904582328857402061687808560700981021842365908228246286481734651274857467092744911934303632713862573702274462634271413119220814110187005315792264396312690484495424797045308195194766461238428754207223212974564444020461045045148969168931498609803749609501670430148185620172034181329663217604829479876673557930715964062307909302282405485017774718320416450912039054172826922113491765688799249908901173099613545950034623561778185268920755440934733900770975582077025504754870760258088861428452960299453644670486235917637221727418729020631134639312193991405468973204297232182379144634527864916799397924622793749566191663800622031213732780201845857648898110160625286973698269856768643712517586055990189697328737492803112940152000249526513584631672717134860118066502923875822880938974962409569791282538406340816919537290432373316160467107714215337263428052141143346351442086822291859431565527540128581125579349494553900028897489932723318623793383934681403415451512370425830067310026078801452768950143979486535407507485843075924065062752704665011152777435553445317481414270618341299768547763594583764344773775811756427621416099529182686463712327309521016637178416277973286702080854000861643662909356705068480870278589309466847886947773129103664658081231510227123842528024304739634162604609114318222695420669951493659395347887309926023324000774605099990575236576012231999306717542434368215435354093258097510978405498731792603803359136846970182479202847801314440347343245651314247076173276327765703697901859692704778263486339267315530528632713722609605492546348295970070405933113624739514138636912095718844995979641843991946570020955304874227030001282646365895304984317066240868124824801118221639815645755905971326586515481358395898442297800140938388176658286804288597143715095182071382538174284425617241384477154311512761313538898332421339354788286794768632244280194412737688434467319863455134364824218986045412769777336311031999354255393803533149624682088020245146590938693068973769026196710124450002233253569458539160874876250947982180690941106357085240656489401283588891784457998238684365652089622538405886427661643236355873712529418734565793196892774737494913586536578672147457147300379340122193041327468167766053530426735612297254516760542104305435681795281439071368197031428459895547899432121519834894399982527425944081198369457347025122112638439785063979525066491858433506545098996827325989565417796773159924143359194259145663202427374240957009282308777179333819861713019030436415408103004651160509586884561753114257703407592174808568084386675426310376834781740357886069140822276051048278000071342202158532627299744276085461994828240648009232547096798265133332593134546432160940675986266593065760382884262448655804454844116528382311642080884414583685004510637882755622753914382066759717120740550058560580536658143991664007787445503190468704330060913241518645797426960725537834324999272364769339802195354621887975973828537797312994325569977040577847173450809555504937969978618739979823378604322590176840633198243354333249857331602058202803255503909071833209338766173552285764681092014089462172224714955119719924348494216640071798187836060698870779646888058516357043567978432663527880435732942773169121854073246325481707016606115881489189376604781525329619509950549110576503584569082716394121512556038266061662174034066104740715185367819747998704055795223752982314710226608636150790410261337009259657850283626815522281641000402255888415679120022685715218531294673021110558736996167786801071368560481754779023446488127834533725937489234421770278423396297673509505149976018496977574093417957096246668888810444164750308224390740014812941307444033054325871393767067097016759675543155649888683003915484622550062711483398960990080645895998348333663383651315939581212819508549701164829572706204958766818944552789677671944556984802094672912290508256563532695081270068470584908036225926557337209365136778776456438607028757570806442111707743314639147116376748844347424080011085588140917517288739431493450715830813143184094414308397648863681400419624363229585933103519189789110236708616475372636393714097142434579449619711037806735463014834011769245240077920762818300078589188297796137286313551453302809395448693499631129052743957105981778265062319987586691281165495076738893576219475638233078197226855017397952516213232404304503686557665782615213482992342420005830822100575535459622823397189535572416875526652990675028151532956671700835053514467387629643255348530189423286105585080746396903394300031579649710358192564323564818480443629830548460226880492910111574549694184557578033974572663897489078218867181850178994650668015154054763292302720127329249019599352678331941354962320462041164066383847927576353255947740727777777549926905099109711234346545154268143925591045741126186023746869238747787368099650654995732645668967271794766813436106890085533728478728577314084806162517980512847696162667208300079492499362073231883479576508664333336872987212341196331101132694522708957195329593615601762765433892158958179189327532626897153610798069151387336404380603014592815042155412522286878786900063642967970803966646440087943364247012740672230664862784558535550005975968876287972016792744082642476861766144267784755725727998892350845382373408817170305173299865526245380060389494486664854238187030041976175743182626251847506772745647279809793181486402532040361436595549700233785511164403659326156762961908494531921355629291643246734204868434948955041001793923593209535544976698216273862680253547617841139182561389879333166655371654976460258097073772485789151899108142041517276023130690383604529125110249414119791859433121227766406151839932429916916287969625807149307899204745271822482739275447376707391263637964902095829360489978996214725055055478543233094202462329893098095623320024698890408872297347754826780201845160579875445686936215414225377479668871865572388317884609617626071148011719120531022420785134085781964564356632105108834229817467970027130504468759744798391351157743099506533372097903355848988313916115065889498758550657293800529232105015126200416087132607495789074512056808190259866797662163224583923389122118478792913903856796793095708718047488893880920774508258218926954315379351450314294997122905992601620433709964441102882575827991509031876561864218872250438701716515173795567582571127052440992910060233493868948644849462916425957979701515954574673985721139904351124524946353225142985880070954146221114023357046614897614976005230690842693981975210223913093952772134874362786066307583912247184767651624857932855146940920844075062016559578094653615242024758090491450454342318610040703936579369508568196374679555728320118857996249907936896916238815628665926396887409049724984117476440459221984144282168804612435214922199717844489041669975031476908343675748961672600606134842786354798485201675640595334915860789021062336617105888259065974950081220126265822006644253039038553289663395492137380989124024535728259653584490565490746380844051795277677475465603261916323394955094340436377397533775203801815280122000580602773778310550387484184481130222360643300565826216137421758414859589994839754508630886729202264612505404896671595223215504500347510729708074139191623002702060434069653771294971349131220885925337034163687263574926552553017308373677536240931540397838948037039297119616071205517361771890700486758833884825093492422351661759614864991887950241549153617734682722690637866691852713455419093476096662664187661541514227297426770768990466440018316869749482179078844695107360655633549707939874882974457529822220991076780474513956961006883061442114703175712478945284466085354570844387575259303530373936616204172372668586490169337712489132787246743672185639418222342946980820415587068125913204212907251686297047550259575220202722692523652062672013172962844758995351298123619967919324189582680773232105628793818053079043837323874251080588375648902104764319235419333494562293231438889893386243687435011299194118565672987183259731158681445783169172798323498567931382588416283222457403038193128813802494486077130121753304611506077415444039105176791224695369801656747728206711339383691227096700790953366501645441777692447952727800039709188993118043146841539755172224984357992865792611710164267159739961656333456519194689880493770438642478485475696830889490304824989532005207145615655006009378059441819765069474552443599905786165628622376678889409735079112039189687993890079722416956851129209484185997006264636936747669643461354622719327228132197866700268723358981620373008891521465952796019679578672075435735910731107711918823009160489911318713891435942863158302397839163365530287084667464753626838645750010632084163377555768876320776735980269498130134053791106577568778262406874964789492268361368991278818626188572749774211776068064637233475044920473569179170099195104558109005891453288565329547963366148768428268756494435794257071819233381401045036126596395661139529998478146529655263603039129992869676415021447544088374791908393560881709615760022205453333585946061023885076382299086065011631869441975216709433705929070216621345809436996398545099336692851156441830457882297057889610269922077772120694042109050987270980146826138628427368534482763920879127923642390024326016405799499362557410140952344923611908001835684379343045418692797343965378982642296359110269967805932626595088598104217576335942523376104613403914729401744050039812654861142566244412934746252028290790692633783971106295225338647293429327198997541335516545944810818561237377097634544458604065040050703071397629716642089085164125814466640360502240510683982105327812778976788712492738405312646878697203712333010446759198121029713061425090665751028016775799128723553025628315861748687301600306425067197393632817854556669806467860985629166134751981175785135517839064848616687440525386769999389174783530327336697430720418555186732625297622264969229303756971229089613197745538092175733607352491130500836062332833794960998112129808445820715245374686517424810460332279657237657356259278252449507837609378258272892305407764631603573830849580361526554653342697254945652379111439325293526348517879939629631668812495845145653408499565791810556823315456559878884529268951272553435768470322753134465554825951123771754973523201950038157140476329152806016858157576680646318699982071788037369007776900731122424788032108819531544527300260418634296976195841686591000256019453226465072005015314286322376320256001843956389448753830210243441036813408084692308753331474732434041077956975008119757984142932654605863929285880593844841325943402154124917736939901453502851966126254645136316737817202269299635408469339597811495555930300390356911269264491897910550606793369992315173883821288321490145002113966271491333771349755044649103458789017061106424184660698559723693664538803801686622255438157067496209403641974482832642852760317440041600096529797059385177091287663081334905686982169417127252337020873609671446851192146889497115211195944275699868192821412669059494292321435999681357251257393138657253792580133089133682118993296032687229360778682861719972326215923498498673000591622057289369751191040982772427558167333018902664482417902079012493005296682335183258298377444498612295555852944005165584232316536383623799976605179850652304147128657190853504679224140344779005391253837410190767878593648624036246164218042382517373386787066745775497520035917618622877943201250241201298691290470698052772260370461528072074292352305716953104158300688001105955544286206135240873926439947831592596791874262430908727362807674600745455207662187210351591239175904993244614046144008370116344618693846361584173224839568159656192153767439479692516288649249494224871540720280901829050072186037273315569699030874166555266054310455419189380480535141954528873693755824592188573894848011133672369835526565042844673563013359389048522191068564550488112595313793680116933949101377247708415590195686244126626644625223565901474141005519226216007725167285381178346327422863720229538485879930725124089281584301083216450970377488813021018352140764753102706605144024844500653053452326983699894976288234468814231261974138690455972411597700736942698808751848529376341902070725603750543443969042526647285129086074803631616263750811471650736196833282528048432615914279753946387730812573721393071701654043738296790180708806020811212325723603603317372384842104886158997356898565173675121319011208393684204267098072597247542063857420678178776623513249939614169815917851838925453385068226655195941380168272069205188821828562480043274641323968675303448838771931108193791999655924864154783559639321703776981023837588724506911925401489119826890612836051622908635069026399323504803615542798831560116979797117802569278096290892782771934456132295640908939259282557707799894822104496350871991466376458235666693585846061914520925673581051082999077928160066491384570102721653105346284892919621128781322096124929826566059622643455674863556279472687497802793510697423129358895693071776555026366552113111450914278684512065006057526705830824255002862081993418286473485318286184117461357447664244838441810759232683393735799025198785019736621169606035846030817432801781830972738886407022993366131785415172411812168818911372007257850067350636551896541229852564863049168828476045518955527202377901529624738009707426187203015965229674699654579501240414587963930909105928832773370643162882073200571548385251214767026799575367692303348538384671046303828970304232471718080944768090535627966386956632830222987204332218090831166870374717535600202095962338930573699204476566648027441103237621666613229413421733759520011509319930043758140971479101184683304052604482117691635498995199523562379177821797585235501960409112996594821627834590823517343139106458605869855684585296373489507744690950484335716113376090467974923223732571841473530096085466442633348420983871359479985960790642373705260308921341673347743016401872140595938287037408862879108483461921438827804941493122147129097748151183663320379864823531182362444402533144364385682375097994251914697038009224256273618526373894008886625445180110038326629814057476281586066206114699389390809432068508738367160979798589977350806374721234941372125882723344193540880666472524932274046886633445848831938999729728508328004773304483230659528392112073045414144052061770426515826145217285255451340637509081108928327285790696212029215992865532720552204690188324254608771046340389404717613942240668956643931890275732863880874230196861185826991780070860691558031452109844251943367637051375644936157555143470024779822507547911046443030196036487140037004243145243161880478168802348990344523596039316698933050590328902658238593247649893211471047799380807073637186415263221378695616682691374365283808013903321731935328515662252266389594959184405671345808599196021110894068006468579820722975694315568738741545656627636076431392091480183035618321670879088037921245733603446692361152844360296314681243289748315231201954692840155620189459675608393122439487195654912163537033326501758018089062434337776187755477302130428477970244423629808822413340048699768425950240901010506806903490053540828818359554379531100191666020540026755256374783229568630232902869425805858300382292372211342658937764007224809469200091376921118097594951929016498425044781623441224269203499905236994135087624316020345424315697163472184153159159756902582896181707251671328793194237916511757147032930365430092459564146551945243127302750236777726503035201479730969557024863545446860964658380188848505763327211905926761238088443290426327624670486232218000739001123758641228417120874351236111542777189757250161957669827408259202897052671643528361126752060345518508390317447002287892625312496156091126006435916166473106606160865660737733871214045266511881692879717996786584179193261116181668998986963541411101364083497174298784741817172128186223657086701971323616786918495421751597843014296726123568980235909877543262954364152955371719248573072273629632558041662466946791555451008017803891100450934421234713569077501622994936996615666492681014229856950884362789868461432546587988442192027398777660819422011912647177420977529254471606485237471353633679713521892745886573930543474587475511203648724886671062458144489850102951661166636790214009664389370847442552944846055399587546964212251103917501361589815011797937131288990785677594897728222441654597726927665398560336058686987206789423648467125774746845238963056676555263756507229864155714769912783666243810146082965379581147921726249220857162953372462161741699800264906374836699837631224189569835153941218719253417987524198681005259129350261895473272359147565210828514597841634414797721748948393691704972722124196939477426059960987729093243812952140076679846149138178034099893687359104174458359269156360808266378238760678461397514185368488088185448437372178193954724696552319732435752579779015291134417244612466666434375548416702748567150054429130371941909346557924165968670117672306670542558770168893789348847486484244857623937175497037836718116983235120703991633002015575134512686927217513336217813478517641743619309719388272121364945558606204252608360009933217288585395026910673341926494868144440193814645749810529925186626060268243003388357310166620333963102505979142199439368538166457498229891922045441411608891140671915725293584189129232493585528647171961918434375173377393770635064136217868705455659350752799583473751589151260779635784153101297904052863632609913672602908762396025801442595847627409379083445740623961873602708424035237359801329860661906663925790780088684957254333083929255405293649259195092737699607982917199107989396801469643381773560292751193808543798988952792082765185769954150773865056838962179867603481807398736150863868962485949893898153236079678946190770349072571286033936719599295775265576026414370869018126006031235682610226820261608255096303450671150791150323612667183763093177101915529359033750019541034416677432452655351821477814712999094333041659100765901167346737189924303125750312331706250176076900253854123088465035115423563777906300359676223842622148993666673408463776249863553214878985096120056025005316804405041284220377192016600635790820177109013952990570426642272421827866090835636552565685298998777204235613838296060958741505703728842197256646288600391602938561849464502639797317347088284763690015112933186351440515710899265094634357600233309770770519749257565294967557996154048146520675574771886282415476488637049052815528170157637582459070076045313044705200844275956500249558479769034471498656998138698662096083927698182711843759174054712318129188011295807607529448076651499585752250072845687442957537827625131243736364595680717496157185035524503536639646406667928441827018948370786772322623809553272748594586056688100144827260830461299866663733808917156263540040869247904577294148351018947368232083581713212608350637978451771198949103054326044045771177246477097967169224257356179078619874551055007158436737656630939166945605035551879724099368506701836181501409528219110030086934177593436688645780200350360010122964542893613559586624037314646190010775076444360630715959166085115337311216799765509126273121475290066112404430091534798518248821373010462905225679146425108242257394725536866212642932320443612839272334978631999639332344881008882764173297595641707475738364784189197701213900933308764321392380402979583223958609737133355009773411890564040223009063198959986112279021160362716938835091907649518645084699032340501645470183860780622002214588715942966524909287223125233310275190255731804698227762303318857705680925543310593389799979786809586623940853674581910230643452219080102483448512344507107178880471796846883782577088199821891583525381288645209836770243481513397137284919775602084186316684062741963910596964507590675354928996370427660756294000997390770159571880531405121761457868732488597770274634676684260810274396022916272140302065233423108708769670239247092846390040228927964368089529629493283945432973224306670014740805728798448557890947739301152656843781202999968921900343284394488136901314781916186216710947707975474114343164757489209176482465767512264475809574596147887539712104662896397487270491623223984263120939511316026148381207824523609604115317382423139849937462483304152340050064558335133401633178799117922923474852125292004590853049791180309060600742809199874180922768068897024727653959906479015426476734005028264525492499141668289511225034019309653800604283245029027081916785041759078410870551309858506513866245641656593927034588722868697664483988668335194763955109607207500239738309091861701717605878758607997944182939595224802069332181720077244027383646587765145354127888862984293628858274791396822075523578878346077509838430706934159113366711512001961299600701290033634877601198431131320096083401672445298913311755421420193235150877779150901139057574770796335756818311767610233219496791717018892002787862855010639808947271039327028242809120029212493601415236166932385695563067407964666502450765302413753339728218977234212947019900056730675678003357854800362186208413668271801855905515013528052217070138321988187107333128638916998103514968052134385702469092786252594025776449540530042291298408264418150332823208250585794472781680362720267984723974956648424741210563263236341131171959855103652626252578770354960532990721449979345626776254399527469492313165672417195463458382753926823054179806413559607764955718637573836646954823606325161402173290571845647046103127327858518896235366882857288932129840367091286781464048575142384201599257624376430529951298229595097380252705181222386849874197773517624206106321510987385627109777855256333885880092999248949549442589726909623848762414117161289605510049866311814735730473385472416917783821138937898891108398413134880453770679974263616259655586503482497572123260738845824780845785536350006194789004152740412537274174253603044030968511885191230195595523993923854452537309447773361191763501954542892069235174558177255712051125476209384888207736598204626235033795603258091754246153892214505331563306063207058019928441346658618111652585917876118822772940155777734214863123614239238588328568988031004832161725797597960233661215121865580875359690130297023007441386285043051855183715817394282446498118496247353832776739474083430639623269747891685460722992385731140597144671276338026341040185306419468900419314152466522481644068281081539372432699492945298276339470652819660666676821984699789344701548708929594512938350450090785146859091940340533088222674203597987908041246182405416919470782759279463723713215422703043316626309828342255655667893439000278041444108086290982338709597382783865336589742229056069105374615994938696950882183965090818864681512803748384196981832007476273188310450088229291248443625188080061590740297467984266013743901812937912667279464971232392607952417350076812498287580313890819837280230363813828516314267203128324162847636511270388581459080665398264549876911366090210976090263394630100014303343123026106017513841286203866777363715433355271839734701051708784288700364803345761042839471549692107409728267286376577840317074936295604962271681176341598704490157916016753185921335348487101995175159879461647006614391025566509931940863469904048054423200933454682023146820951752483841421385393494364813525360424077347342737178751749759149735620845858490664086020747585975209814484695220196079133690769326973349176140117464712324691834282068582369382149224020172455990087078143390251637363643251126158956472331672345539752176740967421676309495721977729960906210033086027933635779215827866979127050053221658476219278338683651042655817440012568669758937109928720789025403258676536973259485023710036476044673260522864678404341382678462867118088167908197403299379011812533306173368842742793330947901961852332721555776838793488823021918489784177963305668007059270428196080174337368588390517629321523768416986077748954299565840924462077909316740687503265558690958253001132213376138091366536031835220299527917692766783566792547362567975198990676686061449836678504083975152142536805295492142486457222731790495297750024756889170809245804784401938529934198446275194030824927336071556589987850923200088075751634625824224298953647805154309214902790453459372786265247956822005503387601076655777504880453201810835572029924624745668234093743214996384936242391272366073283671403593242430585827904692736261581862463881495875270764922438183771045086718383556728724748280905822151441690162906167498262929980174397287095443446653292400626589745300120742224402581465715874026105965181193913971398648515350220897827666004637609037746328126053698190580351153729170239379591296724806077215638486087974137632553561846360712750055304106205189057433304352963717016439302904450469411111727427543535030449854531554899639807439085171181920022522661012864549315868636815195746382959727740819746109068111181679567225202928757607194165395668344448790277753960550110343288240528686527215451869426511674549274234923413818315461085056835572864436704481261616189679683705981466079653059781066159401537740915510657298556381995194092001324394129390294189443756080611122092996462162967720588722133381880795035797916286618279062847626089246334812001083114960971061776913572243606535096742788195782235097724750296225571508757647840390469205384791116384618307435187051305437207248822062193334568570514775046719263499299467133346538204464540529104743658520629505823998413168626740808070107400003501873570415383169960474584361914594456577281401270933700050471778292685947150411965009323264961224193313506410995797096735755548466876686976804198674333281245776889890355854989755422844324757593966874773651698297455576349037856729376197304243442716263862074198306758071147350543637170335992115776001067429344317132079740185371037446718010537021887298495886150247225431884613126129499305416012749356892338498911937895733040764322092707430639200513347304923754047176342994619923183010042536199010116214704475883536576124811397203027460234159243461552775957336180137910159272378209512116597828247101066250395229646544049227329994252221707396496088924065939455640145633286612528598866422691443122247727205941547526071097746032672425652908547437312881158050140910442067740579408188234842774007620527989806218084023894700665540612938087586239474152754131231326591113324931168699250907311550276706681768980205166055469505783701236550300690498459215288777610360617002838008642187910186974370111403503860537972395466040494577208916860469138222590269334976656083082019137750162056873432212918367876804869102671529544308574278792923819564453289200648354310913527889727922906903503534560447157253046742840887329617875772042357505795657976047848144943759547662724961422467077180953555208570326132615213863193477157410549237008664062077542474730521175655539320269848505421693295091686265203627231694041500297089578534124877649492105332097235798624008989192352240847205184214065333252393583566367325603875999592572860452262499313439441297797176324662161332151094043416605285038376058245422802921965907278010820934328072463082528837498354741297199036935216529304291059131953925553956444311113646476467664797352040785120307833775569647510959686519537506692214519808756515387245741228438991178277775089084538606040734722052631179396814051658412873360609310579552957504266831473265363816948467171768577194378393915376797514578274735610285756729347796450335533089253152124146935622159696245049110348475286542947426700639353794943060496301960300136332849685152842988743715797486335235342822231964613677304995079231849442170015732066767717723582417625648411768203481289046798181213601920294881043286946143231103341496511308863563710293085386539501610816419973947653910651415333351698424445576759418749703412452655874686290380860523474139255354313381609101868645398075827549490727867857775368521277365174007572848539841213711087651987332501086693788999170032747490556182792734635430525027247383784352667532520111383874635965883501219321249457654745944779894982969474835329886279336802963751612503176967178093991235321178706829951416760386690677348900371316003188317395015720059621480926400200921542088020937582735741885820979472049390867544038041910775307542612955225011850761158122907020199234399828924457203562665076374662884403726916903258713660468374836111411930283459931777870643557993544726408545695757977944196797429658793470817326831726439631829977907650817489463202938258728114308826801901408853146602478099614820261301265514025333663126254967362293063207273906822525310146042169618972206244520393450629062129863716395817410561882225894281837359848124161830691660824465590495116976974968877833667942678378921189030338478032683340865510937812529187436665047136219431579894738088701719219065909836812170284836346611720781523226600188885114462420856604177461885570192065133217082548904026704600052720548935388797447613552143481647135737458891633494979607592645328498440470938405106113294770779116158730760021417194403082103705040136289903363035274853425049359106997372695807462176658992592479548533686430018628534979257622949470312017397002614171852184475748543116115799626200251345796497123555033197081430534587685406084901439662905121401332059315405760765810911733984900175962612722614479702031396470589583068499955454113477147519262176211880559556734653078587858173753364845555615643023411909649329641377696988426945186530272503285775661040490447547571377375862181429412067777529610489432855655989666301969811823361548564784977629938649654955460346174076060487321911722681071779231757467934133511679477772235054020283352316665981767347646415949931647904602826451838347617113562517423968632909152364562244831966222647656535646233694385074355576234307033801088233815475068602868370649042698979737120556292540475547130074492334064597679377944181991329861275686591984113371583932580635205032716372814492320995838856689427051585369980518289033380366706895921512492268425025974189275436055979140589910669712757463199100592549334305504940451940375611359901169659402300009446668320163975304832722720452444051389958833349399561063229543865642451322432327722672469026334534016986070614595566229014954031987740725541221397580209829649304871167723630808278957325831735789591631492685939975677543917342355698270829168822629429360585017078594204288953214584408519646779969893882519745329808937107909569686574460592524315242193760549507860755567799082049027934616243366237641297165539749480998708743652702977134983290397818329082223452693784508777397675897223793249665802473030467076467612110646404663163409750761701919023587770930097380009259066007372018309938605392375990326926543480753520530108313859683613238620758343427534707430578576832905310025543478841374305021869328240036890381617153726551911739254370138907014349746966656021192633610704460759806779093563477877786682038944504655428484970952377995126410339413537896370053185957352146845453844793274328814914260311748765585236721298501593882401734945768520162125072063056582404039742003260832082381308606490208822238474505527694449007639097261684795603120036621167160042633652714108748253613046141195209759821562566953539963756665544094725540426453376707938654989053648595520615867805738154206543955795410041661997488855525908798801381596791197888399614111386299698545777318624753106982031982846864854808152241326205186393911717163540980714149741287366382126517848454301111953214367680528528358769767980992921531819894130092990787933808915600323281838001793107218246252029976789042746358905059452209057780042365416565258117890075634438254180838595082278904158063716271308770137949978829824546880466667097126531123014174132170386239728464343771124520291375406542852469647129803011283924345798670654496736401279394523885256710432082467064221256488242575219719134582659223507094127796755918537146493950591126094652323002175151826209364695925964174312521767362768698209110138441528520556434999422504636104246562216259507996065146458026523831622885673809772715383453729036250738243152334381953233329577438904015705225998605781797001751505338014250914500371422698385367283904221175661451827530353249453617225921954765823926100654497084098008512781239303230156685844764387053416800004751562059607914708664819895788554516310516044182454569138385957894836059156640185527825385636305965697102849081954775195145068349883535707128878962157730587350130752741132806340563367576984076871987167102822400938018498917654165679504677242457950001952876066162073720310159204467615440544145742935702145350995004716400369432799744124717724006986959973958220285486251398379463662924977568190249623013443359215620153730958684567601828362994772796472677224645518792621077605351528495239313475618907239184325751126521970825310245022956135442551286615291287175057125816241181389499389179609633518754930082233632315737639107697763609903006452639438972996199874293547553209797238263020154138541611175278157329956526351095469470479284360731732711112891818205382153272425989619741920071066758365407798003954202829945705101229109095569299112699644155793100085850424817524267243062970929462844609438328754173166298706296925892070227469233480463542953857974068054417653529950941059451766502766571719449157182864269419443277420676942141623056916016257150192579949906882541842419862041766684298556245528214300243320272455033396352441079726032988882048726592836004508422256020241095061232485747731588356672948885911192994592603380400778185055945666578454097980291348776407597045336400965054030351639608677449689186588940112395622565059516371239587725210645393354969953775060409802940880617704702673388866436442905069330846879659785054307324503524441937995970838317197130136505109822463388989135864349687431940486137051366477499735433178897922302510373494409019353307864556523465672981217705934523870267679154575449980162370352125562935589011385849129535882413991215695264144730301825354267371983353545787628011394700141878408819563947756384091257923390386109519868411257729632021851862494729620535979859370485988677051105525699817143734295811062321247899077856309541836007812986731980173496559568999798865709103631309204308176266025433827003644033227826985236990772241276156524045413761669202396861804744957139973279568771974858062681671189361169212511295001319986757013874770794116501708853780459690999367016573391194719012302812842885861570464683018183094725325805912395279276246504007860268966815908795306588455381965600871946191701274179059384827852198352470181037833492361564741278586354602780697568717483243578548916646364190463891636319629293165295418440735953011645240739062237026419632484125677875127292088237087011061830208321020606497605833023879129319710498113902055718335600426819274476643082833382887593772250574978617302830883671552314978808428459723070736761749935950006916349027438138439296750879526412794917620987829992159650299565676999384621584956896540451769877003054983236721241016171060528543172347147794739163973750987747877509434460889165237803255484801703116539067780667324002030821198619133222005599144857295708595443838471899887980272125300381987155750495910614062431284143243117790584683137932753088895287551862587755411561703254200019895009030276209059986267163826210463060110470791520698866503445904275325568806066565288224274623667555605961306467936675718111482942521170092358016421975332757028061617934604500225429535834754406691850877149031871496998800871153078629642088518807065304850779297482231932062042739549695794633821113613466569771653854600774705530142937105617699515369170546042035714779380290140426536326386037986309422780486054090658419620767422840457001194303046392487745653114437882192972467081305982856826004954353800006834455602727286684628609664852804205636035764692294565532127097620641880452318501691331726633931560092846274566380035613791243846548534941228581750642860819175870515088885552176293429612234337943485838530926727668854371830593882773508863255651067638796994484195940937147709831821397981001419396272040080615800288852858689686113048336503433231533668143447192938838869544798649636050323923732567196393917679868939287328314857149926510922695439189874229655870362041255521972761260909718336808012637938749465495640749050458745134248947313566319229293563512817218291768128922762561499894092248379609786955953906745218780747053564189807915708050717740935511624776768062519815805741401745727054289647957822712572903796892874936309663548100170886525288149947358802467612554662239693409518623949446891361892979201457059497804659798719491028654272500104609284405672803260646576154333660443300648409642840786735729171459225394142064088446834065715412278488259444713850097873384991698793945520387032872063344234158019268006298432986523091890314997048945698996571717397004977062002400915408483019300512095041281144742123387931287536979386693409406796963702568271011865256655044804567442781747554264970458418866556710366572401911786989219410381576727662064715452758766581475103644072360166231525522709815259477211721192865707938148347124717972900456324866898127566620680915645037019179819801388616981080522323315703812863541421616856442989709784473330520440774078495204295869388211394396180262537889316096284651271941161331753137475948467745396626723135927706796686450560580006952861089428664322993370897540694747400278618204327370051049510796683643595107443835414817541537615092378411444002317081689097202824577471882851886471611560905928333524468677271343648019023207295792391497791098080006950806882647738195685638395553206387264539822991813206173669362149639155362105861773557194556002589472663083569016524762172956984246995865323045582677409220164672573136756143712630254732458003855478964076545775353172790454440122539294179218686189720242761371806839958269939342745412519327693270493958116943484895156025211669305735152928218933420587872234696282401885471020040806854718896508414195078055830207824153140115634713036545880597956637881796734560903519607580349192096417204562374684695978383492237355274682469583504178352597465093162266654420689583261343987817263194483626868149947199552821737803462390946665917347700719925019091950968622716627613911905160214169996900911441197442435462088065515877467141506925795982803017838744479733681690535149464993488165877736149653834362027720036128021976872147567872795654485410759187605270614627442364546840219134460359429973817445699273050030583810812470166649002436868044483273062690035301827562194587929392004918982988460641888422239366209853227015567127783130316147653756027690494984973825825432120815395689512331186993306311016085414786239009559964302055294186620017494276353058562984536447706341186420286603210503188028944308397028934968002516581829905726134307260549688490710552011741613243045776143240359443732483211891319872182947411605406486987168701562907498116639862365563257667605346302355428771349484732409499204239426167905644734768499138685779947376159947117798850339341888668681664283215023060001767591048793222183450726956789980476182400063075269294837656858657810719500245532364614480946747020049748015216826723016115036622512645041166110660503933438373412657654380017297282064489129581359282387496371003872286868912199832956381883423900587093374751284964932878317202996171707477475369207842535799489911191161866652615973237560930834600814161131644684732044187589042959116752220565836403649616501050387789682698980538112311772657279916248211313309136660830154655943828562309229941740791940024959463003706965672692243963482155732645810271695107678766709445494203222325598627212150798610942628951629065233099179821679820622475114440444708654743781444918561570145987195385613899798997100969448353421713599918348907808187810206758837622334843616456467406959399790740268644212062039524155860175746383237286571085548804696537145964183191952315127473541913364730178803982031098382813788284372312633431917893434323098892782015469010379697539417308016588635524246975991632955706856897588920935107918178571047657004409204192971496149132105064604866684734686600488596134148956318653020233164074161322652748151247950537651444475989654367177856229983273545382240733193137877052401032489134405102580857370771483859040761590489972323814707583947030939717400532697491578631946922171437593390307150168364032804037032840084903322465567262717390519758309655373307781491649172455472472803242496881560913812058703700859476402708720109711395111678823304461829316590373216711482550502126917765035016367278072384460547251596809721168476509234461545943335956888627959705124625843577957018053452035190924265962068724126256771557221644966110067341394205761511797682081536855278490607303229731462876316287567641581607031706435191191235676692626502405032075990535615547379850486448171004074348894492356312220890083109779631841845220914856406261083400252487423060353432443303226224794175320250902587687260857605713969777124166786469036816647305719318543360402217011214846669976315097270841542870533870536792179186312317585781542667211087396439676434431048490454822671538260749036925843654153853297910532874388454197355320124482937486148373389767114620882973105337078081663555666663553142647379567024612159867715022275289370911549963999715722148348540003191107152374282025197771045076590499068184985336043219720458898687445008271350687591956720194360907548615987179245775831280677982041574488368774979294449282539252598568240935212472945312015832716989059231733906988543178779694307692339159641914505507823654183725147158714524075795089862649203142669311556725572190253350826862247534514822307067916494086215725154183145806943870952303569179951861470364143872487695436551931078542884308440395215159182086750787007695546930053359750123261591208650233592008153377935801596647048074220854439184749511993501455337132529097228151296544194384456257720091841946634050741301659297006742893466404060849204019625615113643758149974998485330090470416947845006625313175815098538586139811093027266480938364170136872504245082153370389223296988593292605822022960526226783846610109415157412126703880150888452691957472998929090649287430223672754534453333096820598945653206054868495939633289081984085578369891117931965269866296110888912906317074883215748118065887642502106538919228991598287111040810518598127455425674356332463978862433019141603186397379145370573310322989364148801305163773101536574999607089187605674954421361417028445003388262212350370771329756162165251066330379696008448929430995590862507068787198276268000938165462040956778944164816386131385175334428368296330410461063766236208364782320322406555041869062746238814539512814562952234978030719365978961615257012915813935059955925323256916444287381775167147472176883490687815486839640370439693360812859213059168562574162959448429054049880927725728094394240348954210213724870692288486069420409690190664837758961602681040481631988952471633501535461183587201859401092471210696030585765384841423002102120942584524258295971917067967621113424691101123716657784888541381241277076229990155982857169399378164417521822299377989385079729379988149453107153798007086427479536418646588934397696238115099725715771966272924244849428460101154378419116597474301530836722387591673014229028087617900601164257200043033358242101686668003888748194165192680130269052706436913067231893903010944871324089213678160271001089409689317457678588476362169454192527672044945127687381239181012911983016173456823114428641147730345925233038817885603560723382343199098484566756067209293266275810882581893938279836763266695218129635371699781359949672114462293481612500294415946310504932925765627424018746440431597015782447609174099480532996565186571682980613054258984499201308875799955765272948127756721651122039813595567750236987446786903652416654040680079163152809415366321311487518640946712693205562855084948328936378924040406161113778959332165958515354507824052599022766500972353078057481368911884394710718326652161638878067389480423446084936823101348947280504250020477895794759867565760151777445970630897715597364111057828574838691055689558161124157951547491412371106692498635947182695178734491197414153962419206143190481449744865061767049964177648159709293819817031864646694630295834669212915678567396316639249787455538734603514511525886808388227738455055824176927113592317638326019728502542715350676449327186978373916324801423373614005990156191148695517362855749674127970922413759007323576810621524391599375244711558842433210772582304578029617092563041315148073550011636669566002971422748521047793449561833308205671029540180812797705022304908342431828228001382209914251796563719696569123841910496106439913137064019853446132135472838821807104533050116136355335440860460278536819024682773727031439552018736806796704807694843773750905971392913229650032126331757592777715424757138966708322175964383418185607690026588560399471479293546977376172277939837272041478786349041529020967654561924162995453930320630595918107370414710814452407075430189147276390440872725785493047056777315971965281179891796234331872953112489325352118443175343744387217396749185969527498449833388053242819160288355516962639071392508674560367603157268590995473420127954214863897332459221530890369706085179424342868795887168214141125928344951635507361980277121353112781852443925209764554434426205307105989370758089470139052392809823999846362217447484416751872051662210715186286053655353183000152666196893419863956491752349046240253172353386723294085886738682296196277896433603504844153759017431746964329188578325560325165158667853271908234769809087305990164550393407315757095233082785549850160805254948676945848506855766547616353190462517635013351799303417289165474206597711524202215882529246844002201041527656529362196525513859688816749757907069186692830165978088248401528477095936652480070247925452484660275877941859889465842198986973348318997725251561875099959731177382134467657949611164175945448572902484799740077519428711945985315309453389361007690586565869021755552995601683631118681389178398715372014051005334993376004299241945518026286973834628332608501149351024743175245512909765569970395274884089982801478823625485745019914874392450380121733979168761628783188281143618187981052566098847061279942936455102114193506481204200673727810912726033159945460696354393569232582485475668947391424276683523008626652884121670681105849294071183640613460856499528975990889024356288793148220490607839211529529973851868309077305478788388676402344609770879738263617170643527227947862473741726024371422582909125343544699129337568226953291913750148189288432500024822888038660027768110981100196154935765588787277380771134622164004547423837966446323810037809569225168000017377821179138752068364204123591232298566611653912246646377215805332571365712714467484244794981546792821685798307806236096201445360211007098156718000632918712552903915929993734777275452301543802387567852157622546859812706468210832536438423281478194181975757892974401175225233128146192599649467109582099491400599960379704456889398342423930530995000533210008651474640899650472273532340682699662959591708916736764730077317430129385092789388706832364860347450578207397437381234197171021541105261796776595547156628056529381370409267783438162937745096240059846930920315590603747908314465395119299468784048859399648484148147205871787594664540139777044588112395379844745808290043389482667186338943822433601138369000448639706919068751502263874205704693411000475307790438013979923426297217058811921510608559231424423608965382853174550367457198095699721395292305084470780707485925130803813319158858140464928958731049537373813904565588723076384398119436572562275626969866909726181405259479242724525638110726652364402637522952738685980758818902283342288089121274716930579685236558108578764182540740006990285583128299168889878565172867961156421622649961912802820189057432624874579858294933912968840194745626157452412192344841145397983364742123005730515554303911062823384992097567394755414550944742191734416706982282737583292251547154108314270756150167824640541467914833333094903370467547821690405095477351822571393399580255174919658562953935797894568801367980825423148499258380628891260487982665072748235828648069010001961866664848117278423963618204555537961810030138329698351054517636772786198259364253709051772204834717288138373718376094611890798097596520448246279516999447818953520133756839905367234399916931974360435820498729943203592633952285842056600187021555255008185638038488797934581876554532260377946309057991579476931697470560434095486993146750109245842964981085023933358017156624902945264634921158448044031335957313510796353916542129432097325959817134030080486351074069217061109038755778012999786669656272509069209744676454400721669632280446293048684589820524712005091237080541491808867299768913222012277794401820652932479748291699029581425883431063731905122758060406137703525840774958152699391318106339184287864800679443728272573817506317962978808018343008545149919089731130945068590087446979523751613554951088142735455894377265381236704478250041692487073722689570954416922166536019690271201247500910257589797591698903475221780924561913012086655043120326962760028411509160082553890487113345059435141119545740819773465881518794696636033966139154339461643358760029103561305039086549556099620410671965833158418700970948041912944943450679521876945254689630404639020086128542891715229032309326849680782240669755254905805752224739206263150022379542090856178416441466444901830435109539707850891623061530892213673061093334059221746365959782832387374356236315318096810690717246844841495437135687334626442542141921953841645728775304273863352323506614106801731778045064243181951302259127839802285954474053941390598552522501691237412860740861881022946627252329985208573024884524539898769038612132621921748314366406022096794229767058959177402289820253330015137025491070164643460379856624249914013976167576792757864368427333319179948042954276576392854245459924686134149057718258934722871226210530142284679129948786137546761032993348201418576786882090747921300856236169058832410957108492568897331428572215836181757905595790926386761859078861637827959855620364196413467584201259473349175347477053405474629518126142139192774848204665110450546261488015168062155308197775089073964016309950903188487516575696338819402167171303901293236985267575273079857540382699126821945331585079841579967398308964359861515835160932857104237611829969550910113568541095130478873392593129595892154595447065862318579978533661890862284148075859180412798314530829085623179170039420798691786786550918402846987635444867345496060332206256402700683182695302109607196671142497601812561874496713097998992744537359663083235975857781900127805647784244155656841066990158444037745057356886174374499139267773858233926501800097423078185478505543866765595618050399392492929141810338702472805954514884823352424144958529987735323637143861976691385901782522854380027186865089753896933063510527839703598081361321384663108377386157578304472218611664619285464723045815343176472245477374374769178384139124806778372905840509111452037845956610530890959907161487300347183576121916062440920977765313665250845094566788191603845887631248154216884891768128187607962315726178417523384293950174906791676275343833994290820429631229102122007043907207158502536498134495898548767998955447143738221008465599073723818151332927856503268970546983605834366276702727527169575778178487142304628760377116784966957500280260593777488302626282677650576113431748553889718061813867547965239102747320253828312829888839778324096853073664595496202024700559670766908965094837815132343334271455309681086254056911127551394786632401484305257086033282628620133027873714742427632783316735868860771539376869320790487049908575544970901212329493498076245200273155096024912500829866774262292461322739908373340203725993863426889946909401069073145642554101554822899642932287926257199927483145806468411163961647443029839126577366922142873117896814712995262350911882307180579608119996103266460611465737334893053287692650419008606167473447649595969844762037003618430841217931980226008186676013451089171293337969103550433873293928758753604733469575590311473873623383666138324355209252598890303228807947125133763973037902620153588217302039296598878822364841374287629572969278771314744411046472805482847668452872613284102920938318700344244266494860594074633497694078357481429134728671254226090269797855651201444132304158906124668972114179580825263263638059577903169464859111904543709355268457363942249369106606632531005505503738811899922971647312114962639681103488457390974938013962679399658466106926240009881931661384480191747885407101095220608467584772629156185925113625688725619843329911304089099616927112015967350816574098848172012093376686896774503651745931488031365966291396484282945737062849418891065410796730004903777042461112228495115136721323443227819499127994402447611078558843005335182232381293882993433273715547452626045485188519361517164596004485432687621851452574534632069686884496275509727648573681492210587653156862537097821295330994044960003255078349310771008226821019657450454005909153955936234682790789798648099681988950820563647924420638262611982108314680754709063389458880604214434945626709752081695667168662166825713254126567514227701213524903553355181556819955744539733821977977917792169546761118465627950979962470535376737883513825852989265465218025566186322211667275001126021038485688856589290968204203865313418758245936549581912114397429434599436642378167132437697024290739041153279706381944983305498147211485412139613595588210754901219462121436445545439241593092691531822593748047182588182356976345732318608516155175388227367781998620025198204555821149706278023100083946332246571620990814393185223989388003405579695866561422760503398290816408541921659135919653897982189321927356950599891083597845636266932802100816930931511816893079253158174290250610444293447989177949751035094569037042387336472333757722412092429510581990944984408414151855801082330055691087122178872971113197062687549991053982774082947903305218627681026728988124715462610040818255722250542718486711301581023695522908414850316355305078892060085774428420961566917196408976027919457620923050020892324715294355297908303476978622479547314294395734009916564371509160890087559329721673383514610014688626240878377502071804227000695952887191148263537720182029538737021143482414906123845013013163712300364406261060100381466885440895367487778029117167590946883982626684543468581309831961709659664747499140355633222925295412819543801518052674030461914168393818410276190302231964938891087301574929145701229587119722225973348341619133136082984084954129825747455407908068742061809687831185727329955787706096926463811343060456040963343547406685415235559823512533292147294615823185256649493805613435296679889261003612557067082351087230076960153974401878116091948508913154581022056121848144984979470359389262893920684656573947036038268169597315134345507576751398363077656517795667036698845528615567374700447493749894390755050208588108150589972401330495743960622241571224853847769110949941807206121644668653875008618918094231917015004226218964769625459802987334979129644011575795826231232377222149482309406936527580888353348776327457953464855980639856493516418078800917087765974172952671700374006584707265337381682459486505424793710107734854304711816551186550924808548414244725439769935796228620565018101139109168871698657644321162373926697346929740223513140487066327243314634400125641364878875765547864635651381214072944965465051708134644818635701569514418946933861243301608770373628767125198189064147311645924191287368433758813857025983709346553692289696133384902369729831363734381986134659268818501425932888320101780767053207576323822609272502678480030250812711318682020907476726367733671888163972977822071267074369343210679772996004458117505838363121599321630135416276073355749037893174543207715955006654520099465280167557833699025613885525695345192734301714285231155934770451282435550402812093750722487935324385085661745544800318770977444320416169747598193895994998365993734198312277229003352060806694159946252322174714853834110157941845960780224342491791958769945353161951084170353103761355067077378592392166765706714064989257335563165622285729259637790615686999881578160982972653346348306664711447368312465110363609265974420893529240027429686291527857162765460303056384819551110423872435810649854041812980092423945126462154909773357695108669956218900555070940892091868342567346487866752487460577627776152141936017803005127554154715749074859694606715943940689118373870283555534309840504986992248768689680687187763893389980416443932706731873135225088331872192116237107118469215467712300525597480689401176927813166748507965523452548394496687730977956129835694314380435895060538099787205854624532499691745552491767745184991877521983637784746762791331866563625539330338022405614487094400218785335391554264545457498604525992752937155456375820381523600469139732208749552603975542000703930251003833081046192456612242668809114398025853598847404657087470508875177139211959021126729113560176291926332876698483861813593485417117027407590915995482226628944410483583879418824420945730745617983453716758053881192841153736021123819937591931187046855363189557027685462140555549481075239412263477642251808872808455754242488995349109529103312654608985849291979927145010171464608372312337032387955078504160071003527703116880140071702871863420153643890585677818009833794479160069683437463896815339776657656558787220070218833103044605090469078022256091450008967752883133245012959404000525450696738359512249550723223534444357174217089366310949679024008673460968215492946438105341515645297308030380322089746471376823874002993111358096468384436529426249038138536336050951798562373464501197433217974037312815076706879131959664656679414824113110191727532876738657451549335985231700738514421818135734000854904606232434468296699004538731868057985494229018322735311055226361609142095380103321991062986004530408177743511836581277952156231510971968992945635827679826636496198958194861729744698973231545418646638287445133197251621486340530778676613247642479158571129707114629094356045440864561205214808581070742993790677491392394191461189794291750758720514544759455743142262639116127733137798233427563312186956083354983610940649485001503632657709188817442585935525538207007461928628342145483840913604822316814861974500996101744820931791777233806899513115859965283387075961968143483856545811366669544744458612697021703241071005523730531854060336186223038573557608857828970446020388998052623973127608666060605024707647462490656539774670644029520742834671372124031571139523394534364827342451023922658716873178785194031556330264531900072496521267730808493493779081342536654628312973529621598022141462386131821385924509323005445928453614029611949374432002908609280240614382708987665034650207647676095082071291050855485319480764326429414798813259470370722142380746121156938905058982988527140016340401802944246482495682354962321794013328643402064032535814353296203735563132081386183096958577422106509413985256866666349484450310462854631233105822184523800014468029769553319132055809127386110174175328849089516285220473220534777603204142344351852302604775415698161961940566214947931005469966562557440999547432090945647929306214171794641967409111652258947409923430295464278724871105495761569273340109809775986158977812394501253207972761610567333473348738644747743613449323341878443810618143617774534462485633779493304031306505885573456926824748694339719177951631756836679035650706775982924053147182350528384759925847820920035309856566370419992507738860199238389958283377128757680303283390177256740404572416963561223698206073535362708360237404356147223615397892397235306472494350641529295192810176924085310832271868895861911708985369456094440664370715519573697099671867416842600210010468832365342221979682706033818584119973779611647249826772780447423248706077141154429753521421639134635938488167869832061468534602194524862492953652286474849691543617384443763114657664736901966078220393414962297414643275899651244393365369334320599881027423225022122768770488325076406764754714989355830619742602449842618957816918883730884363938263666818054785618243494313735057427687543128096338508726598158168315845916162610153673245371361428445313550069173310190668147275077503773831427914973595340444936360108627867946988812723297912634695636415713764724938249607498532431103045737358416639345041905144933121507532537125542573979202266843451256225801330310042705742791720780897310368649701823926251427760868352921332828692151265858607624942668285045577396130287643413582180685836905705704425464523820377306644651036290415627446028873215603868051451238249869656000615292219340303117938453840225642061244283101102864749564699258747510540359855123929586474804034291435127217035787459726557346830811453687774841127138987005468457925454203085266941282215175407674195124471600877808367268080713693635740936081055419722476851033269092858507784480085397082065077822723673064184197982265962983361216275664866884194578064354975900740173281024443536739240484411311600852397794437221502195844489335729927014038631614755226234397371558000692208494998112987273982707686339313351940612411349937581281666838950733808686298491253418506833539030614483901285585530524357393415233735836774128617835780383141672941622773701602106961585157986259165365224668043428119152537165517352619909846700267468967130144406401253556816799446786768325622032034041893905259016710316250544952790509022805721236531127310148558154437450772013168129108541858814933246403116036761663336725017384541622095153682509594565013615333671601004751762013959668616283101062364255485088324766189138292235144886290282955005443648751541088146603682353211834668306547146903504883122484711723668183400433939598650579936048102825412275502185315198269692569596920530458944861502962594137364982790159318384178017500738453785513211925659059276719566693193723585046406592241841902545119997740986513744248617883404786658651963757140791933551446949901884516828300243115748732992190327590135540228001427441489351209862698540495692744236922502682533501530482955307699952786192110828985862474472398518293401589591055372864704736037872956362298106696444352357749894364843784237054760475230487593010706589101840808413675957654987269120528018129351249377974441665784314888625742303319734382598445800845341718213941686160694697099750833899538973704337959589330988571291561673380751517380578201079835485132135382051540091993580440112919474925850254789917823862837270289815339581725595216577159665093635208365382344580309337346332178460986532661229678359851943738403528714294819020529457771667544720915625881687378554614575962822678059118225150734591297226456437495254756533581552988030600315596168836867709881565829685238502798007475366678228661725864690648074910408761908068797074981515713865735339180348944658203925414432625108628800418762865655714823357997872649537052507532820315726889520722975867999248825781108819536076423894740215535466225085164839989429217909617639133257495551625402225729494638215194652226143038167513668433496419724081976579251562595923266882327004872970968256722374459940555721941561628232884073503304973477034797199526725109134206734140828321530041994622168539502743139137168839965906859821716905984145277347413330825100850815391757402647766640764974928753159673187671044949593068205738376564690412729407475107871118664582977591289027734343085916995907179839375388708665608039915963482112559935817752848457881818579613170949819687309579310317243569388548856245664828086895778388129332772633929982511801703156449346243177894404911105535007132911535564266057174911521805950162346767707609550514216023311119900698207510729961488118010631395727767058190380208430689252203347663638207688863956535591496808407696820201436090245204908350581110805196579107570180347213422576398089706380025369261900932612299140415491980788585856077884205214802875895971704875415487046677675213609774823441763537005316983460925218287726559706837578843972919248037209248397808483677045783976225493046816099773943964722318131547539277126278753907965904730409867046980372591912443459597915638553220996556745612107912703279146826362104039466920822830066987074997341828883657299348114069358426226548922803837903021333272519632588969929821182984688112865678244389276046837109410627791601737669086658038280535004623286232239390370095052214735268688728397734403425836595460689781194680533206650373844447788783349382391415124596198216177147471908074842061445225474668401564177867036109097435458347284863152647368316808084441210530738755089295706010644616699659912592860369076468837562280334123061363787393999030051182243568586825402454007912143472897163291268697680571859108886905434100793616430593334143605334623600234549459073795384671357428464255410494753596551840619185660954705961154232772139197519879912984920729676127179343284732212514331846469188187974939705433878863891900870558309387869431660350791386402244823817429815382400167660044636802049297393379980729375037669897538923077214472187997040272600846684428163070084287240195576460664840842311136783993454315649990359211013717536279798631725088261954849403463405036000872370253130406774153735915900128885868722113490613887050748115770719607645960201689427301788200608398338407332577239516568417136252921523820945814795926534856595583969363374891070456013903140475655400135136317185140868913523319310268708836844387688473007488897028715977196852077166727445371177959251109579418593952504538515399976016561559331018241325208428733518804459954934341798325732918875133100612097801990697775787650278336972668364245053856489099945979388380867628263904392038436793663520269980428739061628585639146500270980012740152497492764911653491818746669820630416597735432235906458001055038520946185755957385353032088917380368291462998311854906994857180341513918729851871907947277845001897169280732592544973776952382305996065970327622313304894695062785024471254971057102432132886814155131846994625589314919090741868076870517200428600032210865483883269160737473382902200399179183174418004770004823476314930369781667381929190825557289634297035679939988041303517689210555581531345037123057799955942833138229968256401124267908325988746509511091336710101849359878078683219812872250673568762268252839069814276157815118442854145846962012721817009881470198971206309274830337543921700997169322772036764942543737567206490976737266241996411515560397050575887062175010154104001357494274985057946202111077331863818393846250138839735850738885307839653968766279987946656834641374752100712886490465988251312162241140443861390992049771364227361846714996787774684873742264802727588708948349293046620187282677267503617624255371064701862195285358526652400882646506856444169658852725696076771759653657402930655143565606368428935571716190319066840456942626856515021194654067894422582095754635825921898796742770766155383022513150200850738846937405388650700073323672099338599283913822961466993938974518800480629535304793023137965727499473402592854453151581463239453671875398272962794204954345796772308150149424441014666361838605785112465488257400004753348982298176500153152516371902317171925030480029449898147398180443519079751789643072331777848374274014293350390310596712757735975640802430681893953131103551823576044503144866456721561616321765078679615890918293952439259966620472824379701181881090504845825643168791361183139757023562443248087186986503953698711816402261085363445859900091394694811905452671645844739929520322578593649582359364228996525937630999181869921853100752822226232776208908477822870817761258818769307627811776145277656892604651025593918319884049872087027895637902511257944203539068810063954052014289555224247615477141850838281268371376015529105803720198714856614204312354733880200754323045152403198515835559824398296615660686456940486638408928392654343993884827356137473254987543659396728384536021957795530578401520845968539411685057061157836799679540560933369018555469043224242516918196389696358510799157291989299082958452851000106790791018378282722123390642851153236464560911523318360657901121348479929089864471249656513693659706574476758768953594200060646396665175837337334221840924778319607820720552554707623320712030664498645943593517016615213607766399918898528954512863211206389876464726575184787324506861458228555397541659555553663843926485106271735801361551275340199230466163041768360039886504364270113792795297485288337984283234407838996050003525590642075130075169259938622415421328905387390927461870619063487207478912829006278379637088765015962316386107449613891478115895314651511416519125899175288075392522325788211012216223129163941970894957527862220950001090339015918945716926624227059513774143629573543136628364436671461495817599238124666862776490015665489569615678355990108772121686359448418834699480848759530159144161068121606415577789977735514529300592533303914872982437082628564769191480774425720772291212201431532835275170951577330622295047500464653267256915599406323719161704445042302469045179157607322277254469376235463386898043320127911652325805202655732297813238504285006834004210987976412946856764196577814454013885357978653301270572891792361849318081806427009700840006251701906613488169725111273429811568405389264661801333687634566973772610792655574886418556987256634138310516419980565557730277137834668115468103499696726106317954164927762070814466644102919786689299199016582181484053116268995132803441609422515009325627128004422801131281730987410676248914726972078694358075682900194280145250154179886029297331125478657102327240685675302870890763006539497024638633306503070157538262921310723115119908203101854133416919244887695271261742326372180355225924401704586121564366957988760828813677475270350514539607343042971381562047969654398598143923472623069329968451217341591267238293006053767805277188319563308214528183777494125801602257401678335076754483289621801718753845454635947360362721859439910343862021318975861572997871383016118891796724945322346406795178981129054392006468895740391666309010218407012207996277740066797890954225050212962940481459586947605457343025812315705828151422493265237708163162878623319776679025675216023868267753432913891519267214858759972219735291192377019440826152702192643938937177360729358462184850037116725288690303476390205229988264615052273352383499821147297997923803795553899666607710340588632896156829235747109879768897427556547735287078945669784857755807257862330239632264233036033913365852499875669127889697223750861465887757323334606818483137041562075071959569235681248905620873877814777238143678957634734296281000894282109690219815009744675366375248912791245884796896933251367628368710707441178761105748112331162710510361153315802808368740055280180277462162085345733316031858723020658259335956117456373866668007180162288292543746392064325291836251619011011156936737395185494882044412075249144509703645774374003167252287584217842840529432232135086785280738293818014797284008535252562982902953495867260341873418907364306064188099725975441048591890424299610006278930450971055965405026584587051045282096638992734738497990111526048234184646461586016718668068805527679619808799994401170827725742484082279541871557892196604917243100470357379178529932543725228389042028567205948986203563457674477388155625566577380803276960326158947359932201691180278548253538508132451725246139372195684407109141889150431095696594337952458187986154459285941712008620014649978607908488044778947319421296120161182963528374345418554998476289313344662110389361163687307424478568180062553114043873112086414954623751670943317208259200174235087470359570134436157065023564741006785613965567801110609036092815868410546898411590231784520290814683494325817356002360226420080591469016374220297639099821924054869870274588542282812840159720196615969692323823826807744036818421814404412594682233278684698202512069882558702622231497430150465878263208414338733994149308875201201379780248117583991128803293815376100229917040851770957347794914344996543810435489119262480177481735595572740652829994173906083982869307886410976850246282805945294434575849966032622789085153660027149012521604741447509088306376630487870036615178286965049619305728737860784110226749352041580717316482510047265866708735949291765392342215677164547583212853211625246585907177357204156437509732288496408289990575752937378349318705557249236882251762993194594296903323430300170659785383057468797255440227329660564852791279470497170004504703038091663153776558583710664327211397315923292359055444528030551786714757528866222673498490523226828172532202664190406254803247404722387212965242166574218001481887823442259815067818063250650054526969600907235765578715916942625235238875083671427830710776735313730511350589956578796389778662863047608172525967672699512075159755173615734420618421313518920835539400683527886056577312870891767703853767331833904539434192217716676445515793247759978927346076742791347042737894510640013429898254318584921042174133688651952415685146558553998798166340185019893901128078796340576205933768847477562166994708815589981052160154603952041113963926434712630209103648325740743445866793485511300725939978773542218906348260940844586257605787212161555761563732811762573746629083544861547267546150450213384580054179011662854727399416733754459046911784880497750526273542653084564151625823377195525627633686897235269810921700499472337364087352093819022054758495007699690960833287512976756998392819313685254791049147222958652250723579219440236207232722439013095679124574627715984501111993797383806746023113074164737179200573660380115359057904185652161274080662380613671802954360991240937602119024861523719266991126788282939115900357188048057506562331776820194954413157628352521473615935089576421934189774804323394925607685959949692215458306492831224119847128899238036789925118826838315512352954362602856812586736071337536504414255959951389621403923389793981930105873015012268278148115234311764217912397771142913796046348593611448609944510953939113822526717685937220087897376645538395603259433905757014008089784350458990353684279660559419010581709091007791836007722428765854685359162810862870518505267269618534200593496324909619081172738630738017937835980801771464757111504786433610381658736688638579749594287651554054623080900619681082726187043255709325981721243808970081456858757659303054437423556742370382292931559104837485100794536012303619972461391280623764024051657099083560921234581622892774481713934406441599307524815270537859366650317574291712393885681420882722355401699779990497126030902176991442740587889945818056963916411450322442402754758880559421075740365119943973888550993270444523150737409527287251942469071859138677102417626261462182214102319768378592755899515538473700505500176976303072079847939631282519115109881756539340103391642779937889067485612194685805174607979307670815886230916385957020758179046051153878726370808777395195511501398677367896699498040864812741783058297345288070831368662081744857137027494433028148585410305053489278342974900384258741742382240819881932641409558940372609790747218062793534265550321676110910432268158099574256063954637120781156251736521534375180186942956155389295261103051038055408647447951200827207213961458491598040480644582159029364535200648712918662880420708621010452343378762873978477822423139449033112111091092788201721634431852373462644417270011711219948052468351602860124424398891896950237232433850214050158754614547466200246891538475939636623673559965487555995815764809294802085790130023535091970057613976755259934530339781640453562189003023833158012329260437584249540959669948954606828698450546430928268488557987488773555710843038293647581687402886361208105507949993922665126446071251755527930889761126547851946733568458302119676035241329760340080260513494609600159537264316657070720199765281980109250067165482220813505029975455320665793998248114153110643151206031879606390780367003725396494696451868413676146082862636925341859295151554341887005436090843969232724795181333117953807644477179958220775291578996872315768913374330263965913033773929325862866184718928138234693033503724697067189614982098910724164118377929542027966174206581807622280394634192191366271871806933888604411609080362684627659695387024791596856799656949898352447508133195154549884492675587428661323281905693242897734773825791587001060941224937218821178791022627199970737876457526232448101207802724963206765043143515777713881440221914812433899952683154838886354001001720555707751804978409155803079409939444497179496740631742081808141575118595451863188371481384453972482566837241160517531376959168404979507935600355119253258253050846184468588422960508227228676624281746951918498930319061148499031720270061822306949307137364543704908458288865724130944768664646654399476053858143044033986170192250288627366698541858511571817360115773412033571757976009828750779439606057793090232520428264695379414803074746061871613392558204702874883401534967615454307793388689205153453052028727207146146865674912249838313771869397922229487083522523128284858081755157436105260239532550158384993915810360940383407165777216672378610915397740355270296446507952025651075990354544312714253058027552055302391920628003272068681526773094889334955009472674439765232192729745265107836425458011980606928557191125468240315844263430611422363058125833218748791815632558138159911341184444658972612288885560926144038806233544536095130787969151519389209657300787214092542513980274920584398593646132063835007993884647626530311519308382836849197597684551308093063804316669157838341927329977179404722130604965268506075602462314972212332063006929036210093901943553621413220670005957040478021584185051737121320830491979312108119112593609844759224178268666457006382752052627087030264752005626638285302834132770907355520112754596400452695872543332686558264442848712571144297268536112772130240631581655832446359025831374106181593161984073785543426849676731527037083798216716246248095121076674742665666189780584332127774849780381797482641997336255990107250959031285618154961922567792740932588507522671390039710246223050521796946974394810622256716828784182327031713848445243973635933394949422410819292160922636736019903326952486233412059295318122583447936551070068602767149699769418396700284302815855479041924955746263320813962948048091572046085468152158326761524881223013993125018813437291924207367669233219120070027450512112427112804597261758593901307833084537405381379633843984517099421835986729699335843409281687804315896633506181309693098893667144620333925840998555186455017342367856256355039834166019883047667021300229758985010538884037267109383328241610932742660857210545801722878372208978522783976928516621213855658870114257040060310049870391836639317705646411038707862707551615175047708302465143611626079873095137370993280248621572330145918725645361439859320010641772021182494695391867725000196857764150627042760686206543828008905837778348921091946519553133287850501157526550786132137490560365319713568074097860598575778781081805928737060770638394117882397867904048417874945832140029625963389903794367398873369789234105544152992840907767230540124436417689956800406814651184642502529148039978672565259570338381468206621634389624863429173111692125444759226157250658775898177586944957872283803939500206008490913929234699441389212749340905742094995910252214924737032994383305070886191544435014660553838224392865746502596279984360707761916499599959706126938208045640329326531147193597041830668755388019795539072778748313558509546470024322571032609960239667845311207503893171438819123651614689251204920765717944843587440913049675329810860799490384449783457527571247157865653101144422160813064064692377626141251810932944827432950909837864499634820871405497862651990686425960449995185797667649260084169461035649520646257347214069408955687037884151368408272510250589718878489707012580279977172549990970865554533129792721328935973859264401596713335800011854765887059303484396043981014877296904850144479985018843470211257491640027364217210486366562060433918020184373210642320445825826025576373645642392232287538301536790481011528281375629487900360978069335955589016088835512984138818320829286088752373238245531229763160413642929683756526314937140149644426691298036080167709192920225500844433528617820384984618953672718402097322267460015129086780106124583871712956478851433046637981617595607883708711483729866000769089181328967609133141953572667459827299578335642603413891526067842732977526211678372768024256107243524033001064844234896912021856091493542439165765165844240173204891381307943564056822877349468267346064414165579586108805413646988410414029880212071785450071769756297868474889787199156112728393018238906477557420154604989855676169617408454824687970647605743092477855202131563819783141743108541861610459246576221460104254030820452082395736962800387156960479288085508792609896315173585950875243209905539947039145320925817089831888857125956613132170612298273072155125447682718051980509029496470964967319331097014285787301849190932928968043626670680758249183069522347445674109029228059696976738595208543698481511138152592726498882067146059243582894461182225929425624427719856360367375124793342682186477262379324738994070893782801264297520459309644755508503336734984708076005883264834209438401268128833691773624517811724222619626171006975746392782687288282128866882201245512968660077317273260656508652134659828674605896689104046004632367195795858715556345642040064344807653079375862718512927509476954184217595346013027497378336047563384833876543189121963031382115443536206034543987523943729118205078017356823435041958416218531640478656239150717773590810582836456079504208487576465008667173076420161276185707579174498615804058323935315570342351598920670469793001952858538222643914492243324525795974510911486444991883608575384883518654784251507201484995602235153218398821449656108763341643795325593243494105472221060885126304905025444932705047181933682112603296440239518824987806270472711437606217434745765271098386682116190753945951968791376900388031257493409753394270419109321863396659749185092089077052527549337261475275207805840582914135079733345859804410305522385822256223034702333150605948574077123855684766758112873700344977859861108822940292621878504491096436287292628319652354028659554500790815859141527188515849847749805848098011385256935765839043542939242453954010478508129133458007711755621790944525612997032700238335090689962395534159868259143090825332455768858687508111456570870159519031899795508861719980989925716575886090588659010019092984809245439652488993275238229722350203714379653095972108364501129303308449555744704000852327301956860432465701966242680542894109883723701643749290608529356223981805449084896894374762285666875517731032854432534449990909995674407254526490358774560727408465909560198290877878274809404894774121700591629711434116492286099308670709130599670070789190217780263976226561999698457999026134528278223126542119773847285136522399350799524635048152618550747225981784110928398082024422265178525480678781971335474402292046915885866414537554676512752959152655711428829557303540908644852974077377558350513615734045744420723897139725091303869727202451969710549950748307188998999200884283491160782045218943324430530303486386808859875077490994628232294179992190998797811569863678973077664705670045502348206994331794688881772295591958948882183121166515523116106792504628930043326138338671359477759528341281520093681345579803755135189054899737816825416659740563351491359068325308405789478006743773644136811341368816255184889603333483087224904296038765605626180957061330365057233622598131698591423852583222964398476428310123179859123046312981756878419095811338912308774961189280803275474363095935981229281283386699225753777969057537223328565605011961802580668397697384727748726326505437001188257384685679026413143292164841400787020960999573403726988383478896939261833989791589229474359455235465733297739154481102664439848862007918089443182926124105433291436068422604993471173535390613508767487267743656219371369434851431733483152282582400069774753154341952437094623595096687077493032876156906809305637063810837255237619436805636149580497374816152208672053057988643939026094701584136810065651430055612984918089352072627717391981822714728925958488200852413698014559633213213065836483979287393321887350661503774281300860511523838884443837042141233619827817132494099327194048274071222388638354310147411186773454124703294228464966420856559009292043387419085510296267796084491360849090429219214685943283426067533939918840399631441393126801236440176207277134599075630215752456745440692751043832853857849759584086382646015606255561872494918727643580894114684710310294126962934974939974015042002830719928841737301773750162776782647096716822129154405443734821942187689342168076830169260832389390651704477790988546734245689248879699486858614505600188449697952275794303293887523376682492740639672617825833370111536558114467559603222574196005939147749920190651056440787737510100744067041624876427059523300812487816075862841181946935367242716593071149492173597545318190730454771446018070545818357362597114000271001051839076139749274115848431968512677540964926934269807179546820094114081316355243552132172647706410718432578266036152616655352471513918362084052729617830275227016228205420920040963092281756437029904848950438943377108191025802928948635705932862940456798088487363533178133809455191385766068781218179513629963480559819037481914828477181438685475623618999132882650875735364906042334683120084567062966924708143473358905071226099751775245766140314796004971026819335175330230817573454492129367922362041994428281450318782115275741954267156232390564135474404134817127746145332991926260502377336738088978547114318386726252776021970294293571383054864809214023251004195599034099684390353220290291752829932086442248531917173997265901583524797514119121458821349434747549846040462626586810676023745299881609095770921726859764695634704388881233997790864091889302652159903706913113408523700680938445342812930081760116594321817105028843641696056159723525733859063177473231127772564770165351171717415718375257188116376356255987201175836780791434497784973154610745199995684947752450451953775254116628961012313350298816044857248559630480256411346677484579447758650503183989381005881766858411390057607893016759617250596930102853553480029949913613046596150889688498385948414315327378064969578965279059285717323680982415912192887235645281849054074380266631110130937288409872402457071782215634930516819892577819159820156771383363454133009817398647526882819125235155848602011240074952508166891440619771941333892913069439933873239155991351499483205032668317706007892729374915239943703756897571631619767253086046332301738604000752750488579703682959888736802173867577222229584557895386770887852324908237771125065144224985510661191652863217676170778978982824626525165713833073873870136685825768582089867383908622054318444094335483555611924030220120284618191111345525739964953073746426796891616307849414285722142203288435069173832928308434887156032790942033815033802964729454421135166599683608727472561410418712157307994346499338489498261854885812582660161054277003413011131971755874639997410048988441415997762924406158730463371171429751375235508298356687192333352378880456440398715428239613818250847086778239446871511930078555533406321878484636368911555400293504694027183611456839308823489481050735715922400722051926672977439624432630581877832592091145492124600404504733646713597966096856119671871228111854344276004993564357354340379789312767892567725896575831476573916934408635668460126086529931725193022115859498855788225344610639583608955247306616112617112367230864116891583215914208966915943058012733592299479536199374259296203309899689029897477047127988799776032394331277754238823848780910754909370336617537396928225156731021735149732810253738692471741332914737278940228716247460751061148522285189983862827013349618303480239553081968027231532586299926854722490495580281650176782087022332851312723627073176572133559742317409484501898491006285951491534628551803724555102942757148727595297428991094667817615582270980282122021800242995503246457266259191254830871321729331873654201200366318621661617997228279780904428096330297727563007269910881874338140640789727390901030109855335113366688526961263056014848197658737439761581220817596931201588820538939015924256530707114306845849997519312450722277958439170260426063141566262779714513936003646644045002930773539044451428616082672618584228082423855791563448172881958879578328559579322833349565733945789090322824289410550728735286916612393149199493603214009847505886633520848393585550630878622682741937093745140737457871761969512976937042321752220915908784146346211936913228786331359720106358337580262553955098138513872514769522798916030676316345721923911877929773927240033401830069693753674429778159492225893754865624040791637169361489439255915075890044941235146298697811165547834923620903263434450868336287792962769761090172705502460219493566400932188467497143034159397130480550312360647655755385482272705708075456110721343330071316470464369362558724892331251437819552350670283657258785691518507437778241517359705870930317626242676246389802925627196996821296438452129950082122842231626832998628669785900269135660223786476927611504596548357118717631623116397063090283242077178932296000143086156361457230957025417141338388328166942535485701727374747187884819628079522263456031018156187969831579529959066014908810169436968886411224276026999307925793797484207584203708782354581172569506145129216880227008077002345318748744400720663197277274821741530789113172625078093466317123574184214095021734370371437363641412869130327845938985995080757518118657812552666697030368335325419110037601485166689739046317966460089163688093808302176326006158507778066649773962391926671151227847223888712358654950926493711544700245805668252173554746336209574696285394967327694791050177805885915508047415249637852299406121465127197659363875930688059549098346306441692420791159504208431084976723677020236581668845272747078668037045126545737640990758609725997847882282024643745349354831133202834688764501762416226222205234781005126196371979672611929373104033427257191892075056133263130413411878166710551013953991058754985491806715782759895501781405288275714391190063976968657803382325511368327147550761498837581589262467840098762616560081234439187836450446480742906382434266395676208579066539134896464639416114303099713158065444504994652790247401224460781343088647193196383330176220739827270164836213291834856232784153543885387423768379230303560527658971915707460817624238998813871136034765715767263521946927381845357862006585532329713703602820603616068596018605599017251307665201598283634921957942080571127579801237566049464478690186545706536929764561855180681277259191157184981730294666154875079923887584516243551147903783272846866698426524470562389737127427867803305654046294893010335378216530565480091541889950868590610047133144877964775865423167984788278645561141112474932866431153398008984110522506027781823777080445985578130773384943836343582692772353134490928646044374087998384479394655784567289375588398052085347738538812308076418958499751531451504561337295982654279743233934232918381521801923544877700025845080772369196867559828552986702523602811456389774513747879913841370416324347065458136180880701181560530381283789657690079496791916614530589432941320449782090657986598548086113615373591635186356589934621697921048009870516682240810643644915782382826529831522971944099364276359037588695260746490154485540258717651346194801660092410590148364555986593051103250643925854308887451114093952470000040770228806205453992461362561849690384924381382181560982290748932530106825959343298922981047387357215395591516436039429776174792231375556380295292096084856691990206812867489902621171718178729833434992573910079192916618860994284564897032117430146629353240796381219462771145636048458826728485633827281527472244753639013975384963090958128294117772643844664562527252869357765943465916517867162170775946902829822587133338974764320778171463784549910482858588106451051892941912053003199839307777129335025517962400030640777910708990664808439140026487330106576154734690780042920343846073305209144150048893943955800486260698781425253020235763301919123292302844364459893236891628007161724558761671119063477184564444028298671236354409350159665092156980946704908301043702642024718115446829245456394292579371141220247458042193058868728258510677401932161490821656001018216995609140147159502374237465248895938951697561113884827966273042591540898274192194608626418567736232924894546256332193243358544596932375645558401516392289222847231594981067546342068165967612631593458995190801533742554675947386773639566298018937901940541844204456055162934637731206453394209622332833589791560363337544996191098315558864431005351473224010008788949032912380428225597325160992859314244434710644908417329965547288544039538893135832697133149571498240312741738514322236679943838671595230628172630061281223703036337032137695838413305469380069773422381970517552984852050480527779149265880578887469616413985105566516348821247253560257513627422011881560763553762293128226183812470919656128240868290826449893205637541573614859882464891341096786685723157331703169237329511374208301684527250816531838412067895937443839585916559694170115416432731037041183242748795002445269025366972190804400682684263192230175342048129258800254432096008909711620704930669816583828800074840928480493290433806033618132035618620757077157041599820974086161960053117184107889262055416035791856864970044556166489698743018480737605999047031142506701079704172517114740362512805747619597602743559817340718625358782206811075794838603673238292882872372026595011407894780992355496016271051508816601748813025028794064591652615543676207586264682655550598776463707034541902817917165727415852050234585393257590011302222893495213154753106579178901758297912063691478629485274814071573824867468232152064947215489335942127393490178408003176171893266769389312048400028603020484148321728686153626466009871613879566515052946086312768586715831896271694708212057159890772027127242698017116006727880367466813118314741010011233832578958864175647506573673587455101304690274642277765839247591374410203758420906842213318976011765005609604931999590024549925448308395893865117760903318740297040563795373199314366181887533341149369642462469268160621373190666909661500272645858723346689337475094660048236424820344613547152616306422086021780009770701749413025154023813174304505308708487225492492978320102752747178412877686171351441473416199713699833346813563611735597646687002221886694020207054131360902424719172189224986862194064078572541945984190808892225112663969130270438231383491597580451840926705881328315861327971080443952670030052376725258541559527892566225713399534519962712845595023986642761018776540039497314212281134292641284873014221239291561452694711755660974224741041366600348772748675741791857273857675338002937521308453137012440469106978621835505715398796364389973250660992004291013555814554667941829396504422087520018665830760026030069578503917292378646963827286590228452518971353677204992784967183501567181460648655201423432233129186442064358970967901017839793896079330842428776845737612432636618381092591748741176405530621475682466010238406434674759417755716738911973744314686194784597365910460423924277376817268099564716208448684641350881162640538933471382573445520284518412627439949623189827984560027960504038947011772177250706547892689724040274154746502909292274206608931522343433393470045200380572266726781471332566959959755132814194535372072116563529432854193751918434376420672521179189761527943682571024294875738020662624490620331386379389682721232686233162148362902209941487289023869612492827979160587001645267126847020372834902886902810061216691374986301108768727828293821668458657938157366382170946644106372802860699957080455557515006070602229358582794551158290470047075543992089676312036106085061944245081550819578748542245601490342545316111409429431198756944152123081105568420180675656343553742226218184978961240071267732351117191586762059390411689244063093152528859131378517178717244420313988265457286138503872444462429066245366123831931978001642162461026646611995965511545893391746515862091045896364718598807920846486640092893336760725717036547303852476381648678530803177829710099967239383589023667168066415622415055498702032604509057574355875585629406345230278031693126274994619404692316553028957566440417577658699374162715152436375317720937378781857537160608492413450231361250983031097619703132509984574858785175034432628877968515583040936545634597177413306992387203101729902290258608501374960786046962849599707480266395242390278564786586268089239760273615087212663992040477268159969718339886479379311796563388795180142293608675240293552819851730779131633215516970007067352153920866760530862683483154534612198872786995736089208214810387842504076753271939421685224120338121708164537274760439950999956799112523528063692262253250622948605104314797598599259630233704233101231349497041084768779102430296825281525139969491095476101781451547237095415818490939371801726896098572411882782210970414694122564772916281278861313591229634811201342615310645040833734563916687660369443346903187402227678415426367260211690562855465715235069465595448998430869097005703644390745614141986727172853111413154457981757601145282799259175198143890853310094991799926264774466331197074484718790304132090838600388262180030485812223350763411408867837346591947426241233185954299042463451294318192835937710477374042119228916511019099434608101017810397699642840574038127790989243921229830663881991065663109428005273122656171164441090692453702664131005500728591469717723249745548500238049460692251241311339749973252542171144746716731150152530879282036269710349249836416842228573294282198766136302916208501811150939204828898035863876687874749440883311824814639342534158642497607592989242894809652559655727467885080596916682346314669050839823956515323557430642742100152688911403479662536683819470663617445425340246571092669127128478267948305868779004577292978980080923796855696101169495762348404358269756334292047683924425489093415918422064326804804272126863300018903135013991687003982466007797389854859211476678928520075107444044281783449342501787875078196177896587130708253440403937822288687926651048077320864964663701202549059601106076856311311884101832900847797794772141469301829005778375047441241592903372877937035018702880899465715415658281354013767297456704618041053203875035313327971769052027362767114383316391368754332866702856954935875790742727752609864347959167092649962860046129290200390822783836437727420890507148553823858762176792932854708901126894169001942467982357162714250263244344819899863514337873648800262386416304141119602404328378407455862530949638342522691297357726965191638431877351200226731485471483774174846376211416628208847265720959640966156927229023940273144748143852806404844718887614444451276767092797600955133751401569827689381804307623204087320765102702193423642653207167472046763133040747989439501278175420501618634382143679830316462012802651098810260045891832918447768491630292039311384089911197434544607625667194200573068220122269484160915218079308041239155276850698078765788360444500828297301088864170137412080165755371038494899782514869401187779644904772736077349880068468408989330092630154031065101601895111869247459321285751014046863331045946120903078542541269693959297819727709758668656151858912106086375301935396850676767289361676839417457315311006662632033284386390609364185594141533181830094552418394568971579550286385598728711137227683370787910028595831697891288867109234354518305667351947154721573554760626369253738221464598205618917922455715499222735897609909237247851348762014783690729659151830095290628437970473305089683380348546365001433212095224077794291193812382173656064489118496296983623966059551935508410585082847764997686200818219206949017979318881993296240453268774364885702928288024043740767026898679903552189638536637476986926453593927454515803375732313325577145276377627310788573489484989283880702520370143820368036984847315132819348155250361458694181908385278914834157611570485996841993512234774086592990335194062822196872194967927042814850337030183290383376544065272454709567332261003696480605997601293432131024337520180216874377540313947952737701186407289347446553341311660427451314328453919361176603555582768243921748640383273507858330391946431688519254172189230689203003750733066921058642906923433533692400582554873832632044166187258155368929723992071332334629191153447479461816178384537551953555862277176951065853459226429999098429778311377987639523660346866770091533897940935561998637840994135327646868043205569391302848561030119054005564447807573331541333892806999313402679556079288136479942876036663731191884232504900809303641655583472020285332862840512790991346578175405113984944828751119663475458598282867725219566214164809426195176572899643236961688163039514086659625468084579623750017922312223785992539304637378138360040457663612382122820032671015888405890628942654653140913889599249272220508432285464588031766444909874151578754111111234231223296050654503681520777836898437781245533821984727657777468642555490923159922648144408280385134557314246036505897255072218855915390152104145405236647436826465413449850451770526378549100410111384271028000905410767006580292690531231682013962532368165457069435122908891154473647925788397387452134302631127085050548843430356582558388214356758256839948456234304897905540434747569223207520301597268261900561887732627178534224658072627066955770316779050538007440047847549270449653249427245891066871049876039414102773521578268963680897814663820019608861709556265713022338063538067342577999626686176221414387349077421700214870781755550888466053023123419813493644711253708152899345877870022420590518255684269170118192958085569948939262038657321730439062643311693965636352982380593656848868396519232229942562875736161197985729813114808799185276640829713571351598172225636331131510178519706333004027908895528258782308736806898434790529097844054980640114880363315051891358681179750595888658936893230550572887692487236708549895914659424798437561451382255788355095309072927297413777055473839855081078415769275496889668403009255221683321320101240234513693320430455247896443765408236198896268331228244180930757378789411155521460757447401531615083582269310109284475738296530962014747438697638025029902738757025563803789605875444947512304874869976491918171267878802013873465483488712355465643577704168796662185743984149092703929573828891081947365678924442577206941370756562479495587488751379960452475633533452300629757987277769209955669628953454610694792255351963639562900397748357977660456545628074454616181405917343545679760526813681573078425887523568436438275410598181046933115341743822003228776530335636721538273314092478410952663415163621049398485625023010893442919134970844431560763621395707900999813085185530509959251141972098568781965802547928367505726210554706434766210054905253777519210551152184791734896903847996669995334621126582227586133113977101143299664476404463796151222168634637261252622990139017963135895104392220992188926232509202853717847611316031506363180595615494209505786400069799127983822792058802094047881313942269362422170352918712247353079886502999404319465098488826459871966854918001979186593020233727017937374438759301373634810547965050249586736887013139250922583877204088566599734258565810851551863529662511848239850119122231940300698469612863762015679365167230968722439771176192023227982599825466259577497782675833565949166235132677233457300546667785150474389423195746700689261464157232313403504273097952030824215666680374588218322685544354077215642041286979890051438439631700164485132005644735815532597378535968164892137732968173851303763338024499630512104734504328741957109571661555695546634358245547704959234825182368807200957273187853089578301009850546370744485380388623666120900605529028734649123561956509611636846042162633675920664211227786525493159662849973257267108199147734036158474763994105514019595843140785194848895358472532422419208153190318984953726217055739695678423303975787849725888210054902805585888221091437301810187750430233719900069815668578250448981948742008461391784975246034828200274108468660343053488558679883341965404586153833097923645037889764914291863437337703463326990853062523384443042628546618324594276841758552449311353439868655127121077929129368343420179522954551567327033105524697023796179210768270391527194613629137100437227974620636051325177363064039426237251637734684571889062590879503685637470535597806383998692571590835174363312247826205419480561631234055540655375327348949848924496864635780380027144803768431411477550904174216083244857817125434711292379985958352252920681786159216408681489078874687022519562283473608075018513166889793597667591600966138660223271764437029215872351396222438382427894521513410207871783618841986820541051759742862291640133615236924181994963546062095604561045482816150490796082876127879689827096011781867528312958941200475848450884643007512044805612315364530823448803479221467855162502017395957299691600046177866641621569336275426021825072303580620088028378873892807368941614057868022525298169804569865342283105271340444354575600787171907467400042756729264992885179107425345648840188040800731915887257461944081622633501803576296793605953282757909688685359945821439895652586995442814768688868799720222438393999777352451784041818103323875952736263812162405330854262920238413740463687447451257410714868308584886217580050686659662656877553665805681745660652012198021499643709504259354484337126522848262940326506826309969140901569561320652580204563490337311531533572525472894519771188085032323085040955428320717027860457415923453776889971487272155143548619682251089246940899062319430859918095261829732260305865439739543964338879688004220518764867578642658805269895514310814883487791570508344016526237278364086775524356284098392015721121937217684091134030516762585098718836328874799815521463836223179676980568619138406426117214353390847424659646288282042249746936861628974221453145091083587206596634284175471207605365078352030203357455144235642144783888020864652016944517872729990170369723447338095144382488478366209736455887962503641125634006455955365805160647768257322391804457022125936479397939013243643659823083716122957656273466483198453706301068273820478754140985472345732981912103957938270380179989313212613833301382758697231052083207442011490370340687497901031600839253760740977474717658280153401818618433038936246335815718898789029851010727418286455293910020907722163771615073166711380581107352540324383768681623625684930356120322819177555885380264866554154992798991865815962639707058390186938195353039337132274344230849003500203915502550289018587960452522748580174728493894482558878646115149724481178122270988929884030713318332144251835218999087024220550754257831208574160343516930368208042241779469696258968608743826971274798419892412822819485535976288242775313020036133255499709967895444959926673987769263246135138652501851235912643173801112532698781038866174975819270613526687391397974446084354348187269018060889909499346578963886621448343601008105703547441950517989351739767148020975442521450478122833578408673243476084329929022975393625444288416705971108581655304270213175997121838524863707212770959211871225746607120271499169210546241428242838993136699081062265475334565686249468168669009363962850024531657019495679465662250463859943953471544914424157989348476067128626326055393136187951022068956163246810391906788436761023530318977766822204249905175775812785581170449248140081573572434585105841963488712004790034262704871989442478604107466311023603337608225515721110784577815181673213244175550434975445772383775641885182110332114434521717293580353014881968343869707006398872417688928011888339858544207909075147351271863491594547309544110070106057097003014685852530533343110838514254269817369404571415032275152431438243189443454657982864122430272461576913295641420468923748637671617229696942322703386030168609363352691019784158184479615151071627136317114560445551618154906514512341400691820693173069396215048652212523112014096309031567435249853144473121393680632581987265180677902487616675336056809667657980771489041552307007700134236758915254796433816779043153614267354768827686646343852440180123997956041992491476991537449045049667703949403853905600019082707369228456989364481812800327509646971994992705959875488601589096242052456074603493199403637880630072095349757736605496450628522447447661685994736218121992347459064521365859028019054858642354732054751117079562013083519597857767344854716844427567754667418797497202661927893003491101086834547986949549354350041888752502701840548761708127833544001551224412562704355618453887110377904429341699400918864815288481141936892501729641588775886450432802916355468898070737250478429476529974301739618072659176400940427304532950679985213774105621069325728591197567145441158427616949249530046506998221545807385658877275441857022448932890308177140042629926527140826777846754085564620858659658160258172079013932948588019130715592349956318327794799311639692663220846719933900590901699419280820857666563311030233228547018081186249122700434620761952340662007915169068972417680570515675072663007743936435123927370315945583669465790752579530516614666535980826720893697665842115447088624457747369069708139833029682178214306396037997126387102749021178104025393222946804180694249101122219588880824122169852231162204118893332454035322898077366659434424379025161719558420879543550985099855384468187501117282174597329817710713294301608894896919146530031506364467867529691738255246251926691526693164901121084798357836204187767015807455461687108669520303000772750729334682804202091672927891296706174836912760152262482862558927252620975061837077626733081014732526027968552738794444830888173086775482520713455832475377649320868768581376179238057184486478188822202110147106769106836072723203921733115339565578768473626779535226893668599992268713600285742246373405978558460266976115594616069093272561769586575159722872570377169547328993465047124391368958774022069512300147992901732771489336490243975441461104689081365622814920109886908975803634333885275384221246498814475367265740006529707095764660198159929883745483143448368473705947227029341575679484990145429718629705953448462582488661920325318636794496046123228569780668205215459475092972411453675887884908634011325592663070102431489937949975936751156661021588341386996810164311325177926039563470953555285753186199885277646312114250011757687423254509136916043305683157816143926743382005259081848867466759684571290113941890988096777591596551253695176120250584413085729636601662600716515874392346513935557004615623056510174375060736611438630619403230533064784868214031236890125027745281380329271612903756074845826559538796014555872329292381914396650521661537685928136891442795091832486431606769865150647304860947167319291156415739700937570732542191555014197022559442712731809262465290855349126889447073610375008977631894471033205123465006052131295318135243218289006164946113530551220620612645600775492811648258067940502640253023378710635759117212446976628132363156559402822726462195191564828678951049381781029292513452733996457314559129841008651712214243910417550353586751807264781795407992283854163351355717331095200325779720558696067011639574954366302239429673614265794857135274333292816149829033852304867023843408241294365779826067533751777233445614126552536542888415318025371263756513570696234121205934155597658828847359431261597194706964034098549486367531632835164395189934956999380916433547969670511784144571719675674546521475860718015850864194733847775022804140371692881289714089478621301832893306237705839006202636622834890311559754589429714007507519504496213927480580749300838652407782550579099327735554982691081355400742527398923288818727586250167038681493473032534368020029509870694649478770946819319992460104137677041074493018251982656238269498533315636408572972333127710737630798677873266730725198895380863819485988685074800568960020161357011280935531381594189840305987612497790828259423279748305691856431133655170692091848916508646077846172307543085372193231295417872742732732697815322715397332763368336107193645237622072429038564298095594822601373680553850871042974913648717694072000423851543214397849464552257811324208597864612417316426879014960113111618696812705380811302383295328760519343644270467976168401508977057053123033847031389736598354179822720751800112281856773549851383868357611245872921526598918436276245358761400164121853565654683421808544378276838606764506040404051365909598183679604639892624376615512082071140297795631682326638375670444176234739543329393533634891094017386100824817443196222431719227755158099823579270580978766984888199160143105439686514417354877099296151183197494535767727083636675624493971646348471725538138500092037604053431877606681877815935825963771771300412268286072640999379108330986390377195586943165217431412589636892326463420193227741188133821494140976437382144760135393663186062199533310247433023134663737944380999829509364821972270970910112879319630540416921520885744928271775486509026687101839050413509817373031582945734402931096120011284600257850262606081175962731658763787618642854867549714952059143646920409293023448503983146095823876700412735267807594581729350086057550301709943070817182829787274163201255399491745958523908541599811675634114586407036402075023025925502857132715633006597343195056063811021936239025392289901497134916959917616290569100055518708886527593146833922028077654314003203692526426986531186027134945755315115471241709735981058104102448091526675487045603759562118021114220662455989346805565728904775272779781196650351317862473364499747272918514506038981429188559416026127501706670714827312805523393503723601203385801314072731293592197674080592466180000280999655703128286310134468510348992403999648929520957257380202923732985725796722001320144554139007570648872572093224053017393339855224179333878650901725349936136543245145768535255156333101609871343128944089537446784247787089949594120034260657202635752477933889138565419671783455766751175125582165462413225124410926224569146578956325224500883379479237824915288503499656541419004336311151160690258181179650500758033058785606101534420723396615814394416144323795643405164067712948501835224851738634516880960254016330389628746672628469885640060435466065330313998741293331297319827935255997861565162429079856817579685784690318507166075122109575854903686809193236372292658363213495632033498108312310230761317689892946258280873808335415374434856071837581084899803488630860163257618495568486509836211559311661545712275906464053948309628718026920715144010039378701912983894331987934951723222322571956007041015296361424809006070054163502088178851840750580091913863667144964347243753040495254993490199242398816230602407350455298727180317535808208160597124821901817350453220617871138617724934958608764667903800203297989956439856109422804172336355717272725940691569927589843946362980815479807886838058558016608633122847478119470845417520081953720745569318138579766528296767594651007888682991336101392889651542894036608890486040311430617512242140387561557618903022439356808284125034796047451167752478420460216948021229271281495407404579784687595070971416385112350512224389630979220108797256229949010619111865419313367778561487535265993222200251982437053492346535659650743595758967074970525558013153778815721853419806614859378482500194642033549719508348714206295632530322543414996221237246903213643395464630642251761727232289150393590001256380806241666285057041775407009401452597497449534925641716450117973634066672263777214824292688012920845976247596025635166836784889396068428379098375816410935380105851488902944876923630784564034653165572928459715034657338465709581939159936348970548334549189366681025574971284326886363787821663053188394777765169305746994624461060360840600263099259989455018427055873801440875045987246348492046205918862058932680613168208177778715270557255276129760377401078513719946052066494883764480716161383435078704243999710800052028057535955972507504861791862052110012994481706973114268192160874018161670034295295239214189440831615149430593926214484002211400787611255000400889440158920690392283524983466012536325437467904429175124170369912885766193994829810957675909981790774526445596370332390682948165974144509692842389654929060876589959919851084861414381473326669894183335693663082402931741502433762149710718641908724059559981238109389921841945737465344275310327516073381225576212110385763458822924038207673531508473981307992778244621413649188427439936110857428248848585660439902195937608931468550596675809977701274096857035062280180450381719756148905934756884097945756696738847887243787898676930849588819028877963145332907729961899698599873063457670239809373385202822134244769881646149435160303371738227223829666177673025001653783631060815152368013591835250331910493807209270712082498336178524292874743141115099015290533625419243252071977305517646467691631848347516746339227285030151396277819804593657395806783679142485267556286325152410635846996202329164083305360736132430381290886884570606983584659340999590655346591676278831061525355313458307594377335920602826212032239766691992407020301783607682830845442971240881236288094327477561050375396053987237571722370398352465261399249746339534844708297472028043888752194127126117592186306346972120285612237639606996190583894668644719701045328371468204151257606340068757403759575529525980994649111718443981766466872452307017667211135382934617425420923514341989818384106939131316352260874596555573559159162722478314692076988901569286279072742459609493796246099910288229879693824092949058013245556601961357372367230874116350609729403180293113088064480759167713075495334237000029715541914986222379584116975495878346440127179485486882810453754863396352459780428883868102899314179832302055833420425248908715334380229511316131654967466088579861844184086534343077503345900671039304750177257539433814556856420201429112795256857789585026437242670048230749030297654992412782038060502787439913478361574992717868973106964452972719476760300737248639201594009363527007916044407564847567507124997321913527715899646371648634269892404046662806987828290104041857447680582109562405001003567824724056950943322440870596270147684249120222398769915231428919692660721021423095063487051967105299475128500808567980411811265025910569241397329960619829340444712286300676289578756620932650146034485154885429304075916059807846574167547074535264494821012522865529049148008819887614384597607115566964975654138274976672436742837988352761495505522743717200735657499408276819196196808414844025635490994152478022194600747293111891087232432148160213240862814531663770414528292313328140794691509070261893704638806268106161068406485877097489911912299626001934700456124185183298812035238880289968915509861157352226937357320739806684304844640387007864514503313970265286658087721619592017943442587585898813600064364727581223903563628314569139641196127550062117631052024291330979001863576104763438834787318284357507281738497259224579025845281893548684398076810665767268983413224723505614857406226599243654886493603284482821177964734158608020517012068072089517310236482188398419347563286281858545202339019416061566008264223196389195998923521314990608531059877954202953462910944135680114642239925145246065642508736039416972525201598842809297174164899023409458961276812650690525466160959232956663481214436790066439892006991297632700890660616949348709444658687461250504746553709560180092687597929626914917803385150655516373506894157938483516300432143247545127377845372992462796319364845467824198206154395976615683723740511294053378537504427704580656054322368890159351711192676973834131868396200371353771920835115389966818174886127266805659115966398462391891014823693849720077941999134873778048833150724204746546785825512579536395219277493717253511606124528649516661280092165320884396394247884387623269953667206066028590392516085375745356869970215126766652232070260878567675362435518224926394698041641859964950247282428040253697209755204338064053498759754416200360367532073566342029482945137222067821480646542557184300113108625508107999796031145600685985933999358950922484858247490329366146899244947549937768544360594856935186241403990453978237717632830123622072467380168708600550502950898200814555255036353767779271237568425971429985487407298548548188753807269861793664858208191439223564145557345781398579586855319149429428202998335713548563415727956296019128105871107943499164649525778082039330575398333343341158875681561686971186168606080121597974389894648972883287138274834327937134124298824765282055448779583319717168047144991563841203324648529492127881460754223103011985687506222737600341025826122470595715010657207492119718154671864989896254470595470803436945178690668919555270217819637999467000623537651546134793507440848359434682866755647651019800183759842849628802342752229229328972368401934742613818908774589929014615342490379828379131812964117492517009351847752531022369337895277984008864453349133933549603201655892538348568482870060071711089705743926439808018939674655184218923146993142148411137267511962180633880192920078353297690123319814588877089736792210159099376153340770856423778507894745298553957190345045825446840534433991969330783257246370512154423855130753385657155087450510779884243459024571719636505680245986306786324684642953792632841125076603328187932480950033802377209914053874225116174674547328862366520333528750611259911151755407165503744081800990798666268387421509263288187666920062849897952675185756958712239824991614509668707107516752194493107553615061700260178969302360542986686576945021164798617133056342647453697259947869778061499073009955008289051893532990174434485648074274557205492049800467205900292159606257376769572475864410759242052088413574959836136094701855874648114722455787993300013254942399355048872356511982162449294532282454780389634701504904601181950193118119568220114992961695424921149234042291137654612957022248630154677662073829315703791654174915016778336720478840505017936718563682076769316568749832280821957602027340130928020897662515249729147222589450658210692080727699113713570464456271321669551831882030360918470416950653002983362418730021002823579636487203548747041303257924879618177241929411273733469161026900627194967265318456980707780458288296145918167708227956134731365663360351008127463661302213420150714248344810019172569045619670266474288738936094897824825338781917141143332965516477569141928749238535061618050670308060622450240463254392939549015165184206161818114865424833874166295028879530324773755634430689971947594847806846329663113268838313382132356261195062602819191234257049781112834881625730887859676037227667850080683018305057400375439601167046810334618713635442669306161346003975810198602555005654796825216257337930668206109668625602807757710450951515792895122567143564475922053395906810095611875740719759635712791563316230005095357591244843723823291187109727046369590718803428793848050504665014034275670894695026319265523383660859087997343626286862206766559456447566340128554897083639242604437428374080809995699256418729129868868912999447746564821153611447963702581119424542801363080456774268454626294717687808581276255555656374970753063886984888021453202509196004773478264841583658361864485768442716100616586019972031580335910257205926544270071076994729748816554955006627644976260437182729623027306605728757154542202323421332231135898120528505485044963001382518060406596823042984661619326830839945795606080989872903755424116362421711782131422086250501428593277916063918691845740174402993765706363271673659061826999383320602852329828856688900905798666414928023749566778957512552204934941553154929000314003071121533220819700568355816191065960001449100124850954495053001991370649963342654796005190370858042427935501350520531518002920346862662361936279462861042059758902991836999411976655741195273470752278164025285469640900179175334155191263177743531043314130125539608948309952431384506206449000682054279632025735517634287885771432168785721369219362120915492323112425706216621348197589721747197469673731946008861698352844248695840144554131990719975106210257209479941987798393275501344285813405236642552317915189581077479454109471171687350062108222102002139541792363335459623963326589133482008486977655382991585219764353796673387897577314760528986342376399984894679372871741603221852662161321260512144699627256057466636410230236155717553909929270673109015828944058058755935619944983282463854426120573358144513464902921442836808374925012628707330991849872651158371875186519355878445461534039390827228010224988508245860840204007544322428636333306151866842433248385507267195220447351219360307696128810503568058606384594401210435466572774912139460705906493917331239442936411237932928420083580841194909206748967108440045235345740007926150631477788000914552429136624036755028594791878850200983093899237776083045486344164866974275196526971935415921661685822442089604040666750584904999446741251188729598951886448648704496343244928881371838384121819165939817965186485909583841571681553308090871741590931737797891989037802651943001921966169298725164824658796855683187295903842133684027505727940682029132451480741103491220348487476578452437728414483481807924208957125211295689800502059216285051644608371389802144241011999385688417772697331023651166505552507457847429488045514029179087523695566317631347775623323339748899680022190542415690802735338218959126411681892370679317777663071910203511236567319796615409655941848024494543763305760614327999385139870714016197266328133080341360128743706987749552324933789329327379291312793557085763650736166005272109841407026214635316116674789672162983453310120257254504660228852002238338015791085158163711089515339320105511131875288361093150488982056332628720828568157574514142914290039239483914302110809609618727438232580548973212998650569904547491369267976799434920465964947337003608391468890988368850428217403743824447232705648998182711615004841294218224799954961230947776793447000627760608684852157037247051767871039215123035767163173732687942326331902681665362463447055347961448307112801823180062503116836987153123243013035283301180439820759200232851974867260605684113651670565430694661557778427311837450026084369504864834675857655325115652711165860105094424874345439380459044773699794511406439730326973783465765712288876611075194142052252361210455656064657494915329354993258397335188350484216554837781902651814739587308698866830571121316851608791481970312812008494453392711526046130356237449383685147735720723867419561043095080476918028182358977155304896032211620479073035050864280777955298683775401976488176195969270001785035854728760640720451336704743917296991557757183756462198349048458816198243127564784082698406855843954657527030509373797347731998227109939410194444162725741674431150617783048766395636353478547110479618878356380471895869712305881152609834303171849376823044639178565260657289607099453354615758524616518804714994497821888598428409945214042968032650556979970394606537204655364562828886888437666000621981344074457566342288112002839468784000807191071494254880846402952054303105084705897344010740322568542254301077640698714980192360395524984188982462648732320384880815632573307104091010606988142987370425240051070038060931300414944074325981245669620307084011251594939840675079642588191707044464161815107255376425901908476647213118327619284455722116613763874993153304127541097860045021510067659435820698692315646799029952697087403182826458300694664943314485181095845688596967747150294701802064106434496062398676876316045266073775043033919517601543954850313669145041351645267474733920863335873762472215770674322595314261876742291128761240098088657457367566815958854724464600364580091097054254159789419368055177566274553192638736093241725074978110566223872767884845191138442421076240520934119349756247989350390710468070593100096477566748899953597913261128765365334055223670468249462084428283534895212739441735926662219376061584267300969442503414174912374707966459288810302967721224844481854323529196687593602237541689925829169502255558087233740646203106118775159182191226350233104994180965625394256592677551057387104935725375416162139955151337750907722752456684550364844201628497254358991267190848644778965327352413839218447448467835572382116462782127181787975743468592283371936610353087440423001667550153781050764379925847144066282698559147734336766618093446521506133702926956287899523835201695919632262342485829306442686934669342247658255115587275033460681373367459533701449219741281087885528359191856589470674520823564960676379073753370037028611411117134479041891303126360394537707241563920516329558237249215845327088267545614753808292607096728331539658707475671738924935141288325335399203862952029880535337468191216553176012562424767451618338910896852535040696378680037476426766621902628723925427317726514319611803642543100440267787029691263420986978672965644588141323484177378365861206610221133015324060943309297365072228726250789820449805905056458316547944467670699030385371862662769752509813069678218979482050708872213899028704902811609058949025569428154319462509867967639053029079943211032707093511513831089970371917376835938554765545439968191846436955800030151543918160544857262266623383752635446851416407206481024770183513413508396722830101378732598050230910533964182947109420096377468121182600526927267288496376758211155806511592131598038451251523003392361537822337348314979657579785508153125942359861751209313678911764828117708521626325447544451575382662358957965615994131435232607297889404890637156149513772285941762195636384145827320134783692104351915749963660485523945084349558747176798423685805602914338509152658076595264461940949394098082251012492424921336912236045621890428956681527024179836758520650412747072776730441766610239241941440282161275570646026848625229781365401316465827007671412981945588944796727574897810654475402114471291834620222231743046601895466400409974154213845519264204165532998873870722888561171258678278269786867738010535736820851643384355876481102049932689725767952419089781275917699183382598669496744243917335995320094642020236691612928777294242883700108743351968028406210927715050407523738293924555085224549584125488819987519702726729508056189178815544281744570096720608281805028839882639969618939430883664326333130128187627162144902620922990328687989665476792952614292178148735727978119288723908967834582075325153887826147028420311448650532404421047862486916809131457568762769184681852690133058799680789867645213095947558200793521902557374305198197140394557751466305691502191944355495418856627415269179302977971556012822734821722477504407660812913670629021590619300556056478705130011961453983865840503507222073693847572070349650371439498345195548460688208301571408667074354401981139607073414872333084980629078677080454220226463251351856221043033584947305198017004215668183468208765795705775819963571053964875491720015103817717753915320981529641509429045238425071322902129169096626942945873831953345832412238274021479881373634955882037604105064208166743949012691510383823050796970325680702183396867427233575075090820139787107648779425230974097373743578088841537891830244901815935205792310192256950549295819345761781455027122435179165366317325878049747951308238878763805716532441139587409602659569853599901607145942192872897131707095606730698047877798698028895223416851061091860097927356236821088487668062298449454974957269912595351695256249556907806617014698119934639932737175561143475449490215897708224546378625974453458700208435191906963211263151639954301347905648190470066964755813992063800541351044400063447689806737809680772664779077755045821012514274869573688294306458181252936299492697053139462459743518362317991339021975693302824924163653438739525138898690967615875288822124574312335269534523261793989625006537725336416264425295718729806548097635063297826327840408528579887772110571998292110041287416386276245782532090981646125933118504457040598060859700247376867710566224556519509601016200247121108062998854542088354650732278297694332877874043612354822634008205708392369571252108878607038664652894248804401810054816461975428261683552042177819342597602812569858136536166949073592402460314255840857034312782872176419332442117682814342780278732478754112464250134755507401715271562086009739903814432862164098144187909390731272303346258121057949324817164083046423406671453850286580878668216218728215847132579343329988563817891533933262220584080852826091573124736028388196941614543435855346149979732001970094025422301278121863644937757447264630438966243348404690496290665945477053258091334159435449375421724350580771088141325799088761616789328381774412759910560864069423214448111728580351026750267647125308715622251663219411876945405606248215760525284790704153666596466402418120649117023331090606999260611308684628735580284158646673946840802000884321368080863393232850047146825521231573861052040002805981671606866161922310386202845024642393880761158376830686719733899160280435745463210627207347190812621932665638183872248670252573685000676189994875697954371038208285077197225336321596807730074244368015718384555337418452233249510399872256981772780653169492726757357047365255134805273600155214737293397595533433678850371909628716486140239820215281949434620865892170411082547590343401296278791941175184601303047270682921514814940215748732912675058972223552552126160163950423327067971908611734167738446687480968348083709488128408946086844249572914672412215982659882614495749179501085922353987174818371115435214880356323415794666762536185086707533661432388423169494061880051475350809704485662967465358434678378371425283189130297581779713948808381053170379999301213765105537856756090662521573279325729603254246093253308849078262397813071915623415562401597981262431802103482292792620461958533352366130803693881869563624083561063498616237998962792900870612931733632549845069021889037043288772229840419355263278335748438663372378637885242765234821285050715552235105325783511470345581175945728824906221403603101666597179916734292434612896221082843115879908230844979147327046856038497097156946821128537609698715548070081011181829187595937008711453577951657649829325712131655446369140902156676527042279138505121225543245504769344385094473999248023706527106740583544795448255766905294708006607950692045963059155758955868919421243673211916243342950998223405177494188542093068733369863050483941196872251396478705092100654445417435861646548977603087251404983562360899289737062129111194621281511634074611410051636622818559474674592949676665212969258634351804903901971686349179552163848034420291998141703469017226237940034537874886504797258808105237324343707338470729209222871204029557714775007928403187365953361243385771851891521753131514025032940454278558165414428927791532897831742934396983741269482766604142639509502188619224976068226570713020481542963455348153804742349336437796414646725094410421820097452980741647229287968982115660148232536285848962887764631557513938632209178196891517127846042415276421052825300054935776402428809556591273101276852473484968835112237723154638101757538219909488717247030509493433066531343877620170192049935517835337774377326700292646858994584098424164622898616127908993412011180794245505761908863201671181155490241646211835519665159712620910763421008219361776395845260708658711654879752901912643522084193090404827879866185480756197676528490062346037200963679375782934446464964716781435098595431609566938234265671863037776437088721582888683672298273416328752352948598748287980707791896450453546368464472893339015849266409443747899212371425925596238655254997714194014633431888475789063716140044189147300903278926116847749609932767915814152901838109012189499145050339767311410208773995516083992751481567479548097768803996726314015135915936172379020232187468621551817470093975707339773560974246535239520012829036479402117617796433367818657722584908365625950758260139843083624800483900309530811154755071232501720676789881764141300985443783270425794344474726081643742281242441051125919831198120538920397551672081902232329606894665509256800080053234221466530325483571234814186035681052549417397161810921651195569778958643478456359637682309116671999743683119946897265971598708247291200999272767654497620320330485912206069286413954168997536235401792651206877558804242411779520302106299230500723225875578860757545705075351353987971216868733089315250887464701295521006992623237941336598893434986328452866181010732146267081625123576905894508071623526812563203155488972265955873781818177855721844547150928488038558710523253219851284703864367903673354611961449240975556344434063725085572281544215071276964356188639328182994325910895798738452510410245138302248794975505051392643772890033024271131379777175577889185566644557132101842114945175231958310170119513702495804438068362704815445723409591562897963755404880838703320920076855920409708851076661443782054837435356582378851278583371257058859438977140304036438031520320310263639483230187924579076245689345129722729531651412736702460172686070360646155025142637996139705445474305027912206541477882569544556854032476215308572038664245634170874821814589594087357623013105798649052793617211474561886773833376295830388767820901062609362952714893605043987878220948442144206942912983047597318124902631422196531143314688732111771677205442495202854136717014796049389559804067506454165210745262306347970152779039039690535649793806701609354605471992141740998902210186155657398209419334235014546413027123596382683563110890603793211850005357335194485875835096979031880280420846292980469263234844225848859445266181420650993636459316738624176022434270047262009814861410865996150326525948902588913433958345799858250922533053528855737898653680001293847427833702396360037978306717878696268144862588232571739174039722698144517303054758951751095129867408314247324110573547933246730121798329853642684047184066421064042515292520894553409976590866253706013666854169358665391967894839750015202670008048465260679395268353270621743384300090943864451842167778435295664738485123470901409742612467118959489072036183920843115447925026343936065071611202395815110412425137284749264678430669012149599902937762322193981926056810380981390200650292919013952573323864561355296548938700015186981882642949660567767536706128282350070820334161860850174952708408836777760247384896048241036515434504463450559557844531448167908603362063937233264352841442579620779668773538022533277279622836506481664428974387915234647752493160926269481237014247423110554137363483191734767158243202780782053329181714529515372467403668989763268705931830707113440451835494178922790280714657819465876881796022939588342719808778285976980885039063477331398940517404577171067900829010328589818969333210344843450246755083508429686820223446333116841229076641995351783449882150941874444765229061860732881405546830397196660195252112143287805876333917831933641505927178857921824406287560781364957774523923650653667574347177008738610209179468081930118485758042873493135150461711938630959186898355884726113729893789733586069271081725433615863589125075921392061128127428372020917923044261597424231948378855186124042980660940815048335365916865914918346797016151879882167906974675497945894021324586284656151725495012962576412082831924902566518364922011343931838538804868565387175856957366771449410738281503777205260351828875599872426131840760217012235916491782950185034212092288493727300594230823536214514793133885942848220157954586671153030883283687621365683548786735052058559878944621871470675859677385431512891472854020423920069278098490252272106792396742466240117368734693277007574034530117232739884274215327448003843525796281648494101072129670191756804585252030165451509463461828585664401492485835650714373045955428856883636243024536015395530975144863525314541577691784782109561770820445912757676346173898798990583507302756942741960366635030823473939628260016919642576362607143655312824059138937626190533317846700897917737493364028245383218171439766568309051065209293398235256215351497551421651247189327057761802444024663869272434361948717624888072973947001564753696747685779860323581786730667106100030037588666433706278006127614092177723865192628894946960086611973817463111889429321308409401550498080449683320491364874987498952440736513764488361266835567064707560414715212377762471517085991036061784725839893593935769018071868178002623792928320671071682962013894662438661219633705935136783155569779866296911739995495723918340093607360861787673891050490587286031365480340637307072711769185223302661949639546925584286255282833399977443519042346543521884718957568450110780755457401091114987027119008864482360554932797224194717738090725592335186185407628722788938560366727232789598840138975677308394126358587796566424438381364232779210503049035198939991667702922408675017615282876967214587400658750023026973219354630377385849926660912783133670282084260421162412659197130405668906196349245226425082814690877817473996426460038071805903048995856175677580995969162173465827458415026525481340051259228879857074141962603948245881754331710519641926831726498576790404010130406207646078257905238825915043214650526580378257207015456460527658827433777444714874315386196953506067060997855041556461861482840201511668366202612791813594444559195772220824296827440789910553705389687836450453536251766290576278775721558309931501239407752958056915708979147003531345291712788490719458027048382977253115019984045267612010622591793142985962754117422815060349232799191081936139177890646057956128730338107228897478124601307483811700208206079644717989482625784730029349275321078758791409620860499119576086376383900427904815889998407381557073805189989463702985686824282976177928270991853474098409537353316665817349382251431490342640617912134223465526438699456311776525258855365637003800536964632996411274993480465193892786959078461694412891888130480036464651963310478767882724848094541984942798374664153045246146620949125859560496459462812973027807313399092967181794009138085766426096563889934196539489618191426355153080249845141988539984555224511659194702794323385073597040863804193969795385407044576454741833608844700282590795991496545619736266360651803253941189156863018257938539548483514140310968894907914522692676675102971452872612512336051668184990117362062159946719484191693960345809881649672304533262194439240815024123011569134902710343941995375560078592994474254438968516316209595253818449060105540772100677493030384828505359810285212492515653960427177343183076728419090070137203420905556862460521965655632173679865564250549722656411913535769025348930314592932399040929392263922566225891994573257820246805590543645765065575125085693752895938256540211525225286358011687410150507859049253158545089494241960896184462799672435719383510958776957531908100568190610952358622732973466385909174287390189958742016059496377434030852586623501181829174467280765256123991462531609419678880736078696136811280238629059015207339747645153372391227522034406551653815452154673014421909816167596873315918822050030757735893427514437501855648885151709359576623423662144330207195636551475294759523846689267409966146584945437882242278446368281484552319031782759201515191441817149813049757729301379496526363684821066560845380607568314355724900074197919485966867833037662288220830720753215781534754194402896997930597179342804472774311258365520093490168747877650322851188045860666769179625825282308473903036724665655836772422280102131594206405279029674933326358483736598359391849192363244588761315049780162410907370744387538745392797973063369464110623149295201230463076747220558693917201509260654937664573309026516579773523442428770994150192508575347415431682059072546442872002107848453341814071217538987121690329148052288596057025749941845266080884030881617600426445657882344708775316489611567900149857841359019008044075719156011089181232240843035644679852878118713322192641693819914495102629768088500900110360234818256037180695020272797895956581136957590787388988375010430190081214964517090322191543446285194221322758930884001030355821749346235665032731711377237975828548623544092237751096790283707931767289718783533328643659317240318957254632283668097177137226904979684373379036841345359583677549088799137246584571312633466626632447279014654478050665846237490534104103944829066339855599727240803138163080380583420084514534932951432119067809690848075255359882924785912283330783684905449854504365228471581398787204012150127880765770207946025051390317765417681193886599994936859855020469660010268217974136049847156918604589826305054305435173964250924674245360851360385241224853862026961598781740836034474751081001618053597561218203910998540543184099322533846741413804088633617956348623535072308402508614252882025987699096857744071102854279974052906168174938222755877152544796059040432012632255168672486559653584035953400648561579123015720702023558753180009205958611983110752596394735058539721446934916082106264268490007725460627171199902517896590971496993880974281835701619229450068111661333077972165148564015069449333514636780863170845165292896320411391977662594646903923082974080067444026815890206796300957610517813000317755674395133103109277430521715747682113725530242963069325496235560458415661930535374882824697622069227065128220429701127242691809644065334781222752575321333518138594808041948679283403742325851369443214803145300108961944477073195839315191939559258221415553567838458528705919786681778960440299202464159527990285907404989590952613571533085845147313245074507852593002585203129959097548932639650053430030892388473131640441126683261831993371043651718406743407267827716738322674522227905596325570309744462144305357565325950449316735867862839091484061872441882367205587449142880717727253960447859643183941086389873206485047195314113715582595794050686607972842261953749794370987540666652420752199839373102587769043757035520253080989645449825584879964132523643928555963353739945202612263391627013873507937778704671507383106140387783015782660351128489642760557638409205961586286985943350505332399045707798544792964631179484366046002142151066319527530837268659093541529164903204139008515627916414217068793838345164636068896957479034638465121346072240290292450827464246417981128434633552596545104423669073297610695784565285447124283424001556283217147169841460521477006274529893985768544905740372304176897039374476712015744584230278369013992840644694227180441502578105485026187275804506486114043989094974301243537280920732109563240512046129911420895229570666153577980955456141625492438622095915255364654556590089340150554538943636343019596837515773890078581661440456623449585323452631602265141961611330330154153677692488056698537171507653687277981683465728391032583928707715693439612991826803180139908646624378831323109580162160587061953738901426267856588428953458126750874678608153743424252675344271832245968580451873541366036440151602833641933960351054487771484462352870749231329236054070488176186602734679600327784119261001539266934184188009037668002695810244967446596158474716540536362747466462829692560985492865476223976917261586547685955924993331393260196736776641727564483417987317352558030937825995466568261318054478648889799341747132415275897697833711739869708723313306158379768643333166100400261427628771744211662553549564191951075390408964344952384271864220680503046629341354611506571264621585085832300131769708209007534813188335027679869477324995812454843965495784814645257927463852535685692278786052420772493829639312603343476985287042733475147186035667652618860508440129575075873961606008861243397407278491994899730992800534625658588049184680562373133710871903176399814831098701762397796497949980907464799568373729216365454023423554637283151187390070216278527904430084322569197759401084417118303771161949168893262040235628412105238101004324209872833987960304005757337140016121511454209550932980696040758462779954530049485809194567240816779237343135732863010455956463174427976895045788865143991192614742061159335761123969847994240372974265564699920773077319836284972091949989155626898168675628991575819648807122620708091049363999196231902284011174262968325592356390781302825498554835586258874292049010899864131370927794667376404076138021729855388240748035408629529751876555467474133224252086561415949371077639788424458827839551268982325768960633025387871948904333289408838649256629092314941810682062209574683322980291861521910737367641317469414361012146713828562672228870357975002757649172977404750393449187208673511615521318868725643044435637755003201311762478599917327319898386945580154422729595233870270981856169793238238750185668106321621287988674226617551007268941531458002892339675050250964876569167909101763001348698772111351929207185059572463460815710967810938823108393065511367009007982479192210357601201688130945866031985976722595980581351118692756521901785552365848285564286509516039773603609607722840878933732757286019195398589466973886374983191664114479868131192234184440870420648161731037394781234684700841636532252519868493928894007267483373151444498833231798586960572027913432603396606559626475805943387592910605429652208626152586241895235947535131250769750745525997344654403261407229594583457684211617668748420282403302689512840366261112816645424577989896853880887300465328554812119930904270527464528329963119996299979430493318991161843908306959442335291084687185313436049415284050779567883018042965612863238094067284768593820541637399955836773682084413801767361463740447193500924362016613362207436636220171945786158880724876343235872456577939369751981306374582725282954124047927249421575032531871924273030671865372779555402185026984243252041782170375640351393549926307489843451104943157741482946033067389108597371448118163544134568351030038116868563770826638869632005042347309248686490008940221548788307184752658384568198277236727320157042300625347177450376506454780484492118462495800814453195329539966572348223642462925956951498393134672583869604983723529312351898352955988717613348484543751949416930576739830543701940797386373791476481379767373451673995207383197622240524536976539464904875326575774037620094105286948705341611821475305199385677527899118162750470870775684938776365749153118829652174697089306696207034829879921549458422741157298531549876794107133474127807142179810982000369952320751962087943750626404167015357606577040442542079295056778359515658547195490332617988483975314220067078857379348581274006834677292396046466317131760061040901497469725663939908172024527780181385747317915345201404386901714554321670823199278713477915280997497532844019255072325344863409187055709916385481436077772173853597788875615504907960581250942020018275166923093509033252996891943151702872851439183378728646369053446199500125198317629657192759234131956592532228471618462181580004571200914109127859411630118884345234809637706250385452407030250483195227126037257230110661184217260159996209388270289337784361085739909569526562890029726803581860812705747366191151014538007189116784555890579353008788330504838435904883126733579236291736687029067131302867215222747351319714295525227376843822782322205324586281078677289023043774058127789944108414642575282595416799916686167354835051958772991184329206277424297876753436613839443087500871147557034791848228258233412374573387927994845795025916096335902001617694409399835163786492811761283609255320196912799085815572917875304013584612037323789786526978781145843193823987562553831029793429258332047279486829325387446562255197346421109055880647280116969685780400551728455829867772586486271604484021957310829366778682149890078698242472887119198445568555876887284008534456907457325220678193917611476077292354026371878385212458497291351085316193955545442134185412402663750341900444363127526277140701066164781046575806623963029864383705619281362567748923721962644163095635137210958279323343214778660700294423512781456987787431894018380680584940009645788415748273094599095351151727943138028718003184308663063368051227469073650651172679057934420734010985742116994668811820763716712994587178146560318290757911520776438120561677411322813004197213820914311939334332417086262806501058349785321797232008851017161880664137030368610229078252123066674135115814242630440122341981655719977863900458904327862274742108656871000484074530497033333577434446922460478564523665075120211280385476078881766243064869416129122971844892400609887558525241455923902078987598853382334840228454081409892280864946322035542993862248132715374855998942422504175322489851054391434103666600087824032035818512946153696322296698050395776214652678033518975639326538816831886071836649850435260953637238811174474371080776049864419567636867870770522476979867454775959743151888137603943636806790461787451161504580917505624612065425683734345688822925165964591803023951107513090307475525569547025926028895106898276385183417920730357794038817292760716631652767500785045854942022544517835017617031304586064901714265498263218519907032994933430572228636258855484382366833559688486090061498162246358390568852989153670719990487184895883628230017725564238262788312716770587759401415774977626753621347671027508723920706374755431724374006992047545565824380043516670918433020818018970786093901899365038031966473932896979856917053356984279106115339657648635042034499162321501937471432831473321380752818816806155748362774934342811806026464418723346294456924261610171431593901606112904648708405311412522807796935355068569185355248191898197634021913513324655097905744382662605465021449661836241850411287587634021044572746784994678562019840181183500068950979555301909691561330364429448589199881011319611257208141124289061415705516699200616158526868253319748406804305123328623459131721594063439505871169116498229303665437402589703916380793509254616965875815727111448502367653573409527074361384226330237847290136830281026148460626250298218236955508413243548536741246230050851903176720901004857960719876444278132828419357851201240296947278111190493069916094433892533297161228970722032404767165770953914254924617478908878050067535582753247012179682090008182518525041592397599237781605283137609610334950446371285610643632479878948384972818905204075721094494784489735487811209675282304727176214963770843658354654730519002302870578055454573671586575611442914407399668785761417462277408969238270329792017074613382390548003842353266428667772433095083967119409337845642623370498913256004632051781217380894508045863936913631164048896858577189386445730677884054171483817165790603976092896849451427608867919320068941234257198355140829876955867835079387969370759500102527857664616934601853548302157568712232819500201014735059331638834281318059075495635445120864679229837237274006186077942991317323503363350695638748406416888463266423066112736858390825113471827085915940034540711737021277726910565245642017166013489630580696892000283899771614762083554123555459483042237734814674397679165732621176815415401392030863588834264432430923883656255275218000242993684599993722157255534352421669162342715526534732284315477179852031751913574450239636952945745274074381533496831507197477634024126701849546741785569312665856901209144126298802572713718556906302718878031777095203993141183994895622658508325264049700529918635127564521367423376267471201306178012393948583209795461235797186489080214879314426875192971355906110870231459502230040460639937118194992787181490057903362684843824440200559897273237285722912340418115511191315471252324185283787786295318911551822784181664354718082844292196190052163448150936094454059604222882880923934144103030874586344166482028342828904053517593994174882377801169807812485271851487703306803886481907261689269782526814673784610130796758030227816754110192134822526907295320148525011020178598296562570503335289187428710214957220965180413680710810110744536391354189749912579097741926144325371573832142796894978485353264521950643734928195564916205956957470509870871987771657443533258353313514351608696047081602224511051040818666405324287962164997847828231108886425096010535818724511374578695519444122345914004768543745474440122710650196727595046206934407420826361732245963075905404651055222200640608734628408164548298403830451713065697016833500925339814213440791411007815904721790292832687479213096140676891745445020848154123867402932244224410505056343589568201306621254216638996809244428796055871606858956843538396637539389583614675418335120197452893378410942083765507083974304235030431291166833062735237334684362935852404266136293592745342851132953110981916439970786004165622358912441196778634418119491341555243049390939820280639846379837594611766377761061728618044614448236049314913996916266394052316561760482251383189523805988237065410559624263022438072113193455431805288093312841924965375923764395567286062911572648432734529115866622804665530516079714678008089694947180373850445221193541776376135771182526920021622016987352697469220059549359148067173457773747015456942301450730407857039318482328647745706021960807013828094093558103351021730949865708075115463083608640481551848335489301430779041793069604901948402011841731951994188491841479358929225677228035772262635104386979964452385509713642406058457377517748047757610504833944386247879936187125739178289526263797586734409094004522421834736129614404809973105060657312238291435370922142790095465628986358861896165365122400460753065249323302609590800667490542836582456302923075920435473806450073537989374483914848420231172444387291527080492956566644651915093386180374773526910270107969668019691941419224944971813535211552173375631508571749131165231947482071655943085345372281039809318711666333807763523800442062878190839390327387553518632005770635012668005895777812236367267952618310375417055803219189949470748282906731098398087909398328701658693613947299387943780033467279539474755260727153867501900883618503242507894575479128707925536322703138927926540405250373895505164842124165483227211763551234067763184962421630551908155803777666523320349738600562570115095390512560025017572676665444326887050412961300930101216478347398223198769880824162401400111807469669509384850787551673490809688746131704877361835268601448692209138777976527419939381126666105061217880436534827961672280764757149025654754837573914904176666174210601324310349153709962315103518176686245563859969532405357031686017844854169099481529411804760678134379744601379282702643209631146949567852564454358505798225977113637842182941802324047499374288706625223488528787420923339734926345729324015703176236411871722847378136036053755708712815381534632755860168144744317491938122571817712985977073469862943160467718322378334345579353007117207253710244480510353261952877301745583070739996778161776011736231446273550887101630121362547378232008160120649199006467403263231112338964895803201859690496338054708947036986360764820584896189376550427424765262458706072521093526761634716519904712975936536649394399271416699289472086600738716728850398370772033331221067245011509555008160846408579422991058928386412375480140502568598726948520578284008769030472748656727456447526536164620904892939926537424394991615386151084741514704829911401330118751848989805656499257072343418715154543429193612172812992023890375245461499614659275586378968490111422165861144164456582612271982176572673534226887833906602005552731952463966415120395037098158795791962313779695929594041420813253708162279013825651588087358263205915915827699676628232955500815847719173800400261953871321021763644662047092075085013115198457266674974416988400626507632931879620002525645202518110203407946240931008160678551889260300679665327849035286677804709242734100244274296206647656783084878530044237890083278371553331028267373356788732291088674148024319117440885887043684525864831432239752790015199588039154011769073251218878606130860249669183203249182021794711365250337435755283832299440887718536045599517606963400223806422949192812658728848846883726274438123508490961281912482110282427941206229663619621385974655665863418521193737038915799710032239510183647586336924951175482169429804725391023700451724176070389522428970309496878814533928319516563812998350210880866517541071473266057146963197200673331308755954744113329707746116253786972679389792839688785883480837558326960046381604887022624031519068798264595958526435954792809058510536300895814537234819303063787207916380092080212686346334551444931192962848322865500269806053924794607062758474217234282009702435714750967211517595727584572763270002194641062439143680649240896175433739805662264806144885951463751101473928500783629304090980597275800499488938872529971301010373893204985376068998213855406669055620581443240754012762865267956698082489871828954411172372960120308846564933737550650831683635046249296890164108267770190337262411580721338015849216293237823118036272023720742967513647812858089353018362997980373059671854515492827428634000769544572117898616401905917806649355075250966004292268464718615812366987586440606295308776576945701433025453958374513651753339300394877766114603895272975359954386961166721165792791480201833691343764233147512597795671726243015359224893976582204559251528723627878602689977726964212182431270186954974924715941041413609468593661595668001295410397650310277129391382510492396936430376562220748627176125688545777639303915943381636004471683296841538571158189055894914120054797313747741831061379506065476939003388273103326514991107462759800695373148941795780456781787211025207030342546384694422092385110683885718135380695738993012040268018764791028246742303828933864164370864786774394108934441608174284502991752428186310155166027189399307555802456414131376901138485243740307140430901299711175353843481151052883157872838220114884593645177057822874496508100524611157680952505482975543923693233260006401233315684671193631684788207400238871668926559994378727089891072917560374192399292066180027862139996164060588051679450542192785381104339661643323446884641609426282772462359158009408040453279547711774890056786291169396331359369071011157090147541494072624902242988981304918639851404442287585080265488314146355570482607947712910164500164128349074669414979979755379573425747251998524425582804247522785453768667783435201377942111620888772216552526235011745693657013081557194017373098464212293177835000142876628000466333625182053151539464294276845473245034731061888655631999618883327818873533259857922206210838641364305848311981223624037786539474828992185357613826466721145756928697860159893463364284408723914361947216452515081671719472050701671520949400275093478840376645081128582762632865778747424016695451389054068937378250563433161650336990456688892894534747250441852061657604269943596617673713524967071432536758788407636127338156454052790984787229382779063885256730081777572501325833421082467817406462469504304302129068061750938646623847583310273935834825854654626548813033239392268829433504633142404976759747580810146308203429760321708536534306254852366416865489573496584453551828638468650540840016118708374458756400941046070557110271559205476088006917416956972302830901391947519957634337069204493862760812990987980672811044068155041067572255365427877071023399084660480684806112316730257175989728834607096878578213251692821557444290160643848479978974071192608062416765571547594598782420207461390618534481305976258132725712517873856152255626701080269554928524454089749515605523421907743560227627592169472899798171375798283617771779344281987365757058033730546095785789408566041654689579996756185440208229326337431633855848988210949188151559079908604157833053220781687828359222408526083586067655136205105314626411164089481888005068776097131792248184608352545484350161913919468352818671014031294231773781108063697034913322774582788946478877199519638390828224576226649540316502677007790863252814268732022703521874106052361529955417462117087536801076484958768688050018019544903068979833356694823658287697021664442746035158883467113114469153745251321397192076407816602827170768700408067632767824203600333574184783410336660099835825987571474212553985402124679388193382255304835995211151595829851752714551949019286450126785661335701145409524710739595850205244250731159750373779475802587931372968214989724854676905893002663014820723578126012458113821685327647664706655658853276632876161705233999138853428162007570482941875963990305243397952989956117920386213063736027865205641463953806423763601048849350698592420108159958425613180661779096385464838128471255097887284592018050895716278937530998591418267835194310235263531550519078331617663001906149819788738403823632348780544620376112441444989897327389532219937869346130090067670318587625374796131411006479168457400140278281533083739294996640207443808796935844113476352938945633188024134542275578664385914101357697868097493947005961737306215889953507454162147805069940352613107589256512154163459151099502754298276862753737660495322955882851632644498629702082594821879506649442725223627179317910393206378427434134087249509176602797473721304410902210250354321773595444640296641811772256714657669320442679143521473166206388225944550445394629939734254774281969179625651967206481225861434283790437776997056491110256610046194058382740237222578046009600985268603238834503800952700781778843441573223227197969119544724600366196604765405506210416053707765859736416148923803635040581469425505178899787927927189094189682242381643304436062445608012690858378891043046527455569573617907312779386871071270529927559076581977672742974775858507003617941777514702704906400890790714924518182729650548874217702012481429128200417358422721338821241610392343059504082138263861243187655342804577143238957501961068214109600402779297340047048804984493308048322501155851945359113488607265713230625470151401563216826632776102203256653238512043378115117209718455088125940866097411940093536975185930898814608903946874468678151493284036858776450509487715956246274998907973058486146331476955200476863006576385040137719327631872082690014841249679451248474796159958192643136058557225492464496802823261744508026727530592755160198061762276681755445603437248141831167205751109094903250112206969014735102764714359903878872093876940465746051769856370253059410456290027896713896270036639849167592505061789017315053688473118449446778602996096630376646596728915640927365552172708087034349603127923355135101015583770701651051952503866680611088446978003283053255425226912492544283061043201355609700533478050926487752402663557148428904807617203753035063320291101594280207397343304252375801281410546339547550112958504094031177538772971802505676582904600855698595017315944791447072618616773732194810341220332106152188392260180782273696359144082642327331149970276845400256029230703205361770619620070931371750606685754292246031540637891552669945660453001613847855918001548478675134218917703241200254474811361303125273814239853108208813706214811200525759865431924648951164934225565572298963826020989070670662075746055487706292466153497842097045194257966024290778490250371189890314820441125557606452544109625127651405049446196048326061004989975128142406158447880142339955616117321648799586727348721228403558642965167951559992973420068395202043588762819808786477582865023269165909512994402799549543934887438336103316039593829157409195767240542903614602471764238893050120097588187934835731460719539236289101244353277052324491277996670795144562482018229951285904221160104675080103144799025468088761681953458775884619954028831168796096826714160004631279084303840701899149302211660416837718802632193410077202426295070805041666719388348974539486250835565152246114601879512539506300867576003884485051643515997874101579644084647055195423824212201787212921694689808096766117179290530965987269301246071875146850853980193834180494084609815185066868360359138114450765205392194663938653168331471256295225925437717637581565281903418370703548881994559227567189317119204967013302179112689875726499583192616838225496495771298996345562160209340015088109492522850166968462621553724288794401329854749617784911974095145891554503090146481945213206948511690769207941987309234606229319367108072673632205890785592564737107216578730144995674815217926897617382039513615576865604718626211731188532355814583900664702917255749598173113054841458259027637865764116906539212721546988004936648596020063990810147869692120980169497649097116041183000950206904434206720516524625345621914014066213781208238071746636205041725921135424795255502906546416219008992205489259054317659645843770752327652176161432668300092656841434322871279973305176667368911702681455353997352891143616754420571532220918522824086652302009364654666643290240317520303571629550593111798887623639206759442656250822853302043738730074382493615364919649928627609517064998033995896929691713085582822177863720695897601599152870462289353269271174730565795356576649771625253582327138681314959888913876613517945055862413458524888265964029440640710350273877175092210945525810365797062453225707173651377744389077806779856458195295390337376801421571286156790113299514375723636613554356821941663127097405911046092734950639105758899841756438823780826034989517883076051294078491214898014333014506431413200215035704192747714439130172878066997316174247499463084881303456231048560255463908406155812234737625359783010124005620466383346741517049002203400315765083295810494134996851586178813624763309822080573422552564637256402194288252910845255548075252049958774657997347055048656004976971327524084259379348934121220846051905248620523709103984943974442622904945184139334384903031729312870614480346969774413671789531599070807958343943915432511485602872620944938326363249135500371021041578967011364753193662050304111778158822547244304507282150299383048358504078383601041365226418403621983521525223044718227952377954790090501619634633951500490136099676205977700455648474255625214104418550477368747040318844494590982184293919133319451950168639518426087085452378629137546386915067205374287527490818349471652189248699700129715800601630809269050737767642252844173026623359066737985475693800427540153444866149464057973929515073981300003931242862715693783539712271870789717417742236740078902990868458286940724173383143046027579877128624068674851676510097809989228331754625107953671314165629085790276166658327728477368179231339427261826196857246251894948899805438086167389414944495452496928524978683346579626500931462180597881517847317337691217535631424271877139094844716780315618945590147109335720635544548804227770246103338326024707403263427388198961748122081881305719610614224071760959153408621153667676547697301022362079708822289123390138484900700876448826864347431780509671685478536018684316032989705617651435374882370271165608356368156462801345087974331273367434356634858189585472456986513394939397359755203183598828838744759032294686883966323087158975342500581264054715437181098453291142815203409709946536517621395668691709538149519419242152175555081281454554667833061964087241871868092368322621053764727913787841152733058361131441260730572017927609979542346562970039307049447994288233746142008616468323939198906364247251807633033510026036182273070013628548072708412314610617229568455028010227072376635183442542033534053486163131092149455599364986115062507805626706391283209692480796304305161391775353642493940316437905004270278122072887916310847158976457994090609008251797111003691793342515270959865647537376431704027626285573397649277146531970707119608124148129498401028258164305868092931336131601615146054080764582480228442436211475303180565389884947513413712926980771020074706355985273641421114676470225754539366783969103246905587945185150435743345470733606309332885077558175100151015824674399356923924710450080157156110818993559253022532605090815423166734087408995764553938804012558733470355574024744433237498368468473183952166057301600841290710455306625194944397131213857350228336906211443183078712878122327403277019473984921171368792984834326564383782692065579751622043915665403600249931424767722573726698996231542009014016486908543751924894492261543143501077639042084352775898685037471551228116904500196795796157636956086854356970041974978071185850003623974637537903538839854598241908839014430739690082387446013644279950174803413199885647592199077067606277141650409218940957700328352418437015104952337864261205821414631989469076462698034384132609196200039989896123384427163253276826878587573696964321250678074161161009739252364301879842025687582030929021354016871018229308458880577743204927599115519748729931997881020735131298766807466089491550309097782731137615549037608768598695265752724383924376231253655595785819567822190872373684560552933150250340076976259242567488590970438426621087437849502757695312126538897036610685522802150060315575704692990691620678766557980504399878771560263220233484514999486903922784574499394520819729909626983326808830852989321106639846055924534977056429198495466009847215690514757877766907094337468936411669002708399322418443570694465169653399411979395898092718539482268909586810890279245875966898664060738335724503382128906516070123125467761495960431895047230326658661338754328165000081337141050023199157812339783017065602324745501910811037609894977163903847893470852096443643950711473169786764358194188574865693069943311715268529652055058919679280998566245637969994578195399726307764026763212007909247490321480092317798797764948090460186833343977389684225800989467656922576962215277385630854998411075525775517730784259591536186107749957636026349330663730149185818530438012216787228156580944059906743615762478901106883127757144502454147554993779143810061668090399542148644185604030767446344197873531424035411804092865564079195352748457384363605652470110259640373522660984866873993186916863123132491467831537744380109913951843174763560364554568690544307122752990180416723578731506586013636167806968312251186988048073864118989057166273118613922121847393330754551303120143194520985452446729172591210694926159712246639309915263472201348601281615814787303067191862651929713155363894443698930208850198349074453275925137090914983895172048539032305514063825104507634888143794605426218966244897582003071934375460250674934277227000583637481865769799191281616927984996844806003476600458656248434387087500157359738583839129165148683408385097702769195909110349775675621363994446233229050968887886090744278836294745418379390057362524472660711342284890094579527169987744330226907421824235035188155973663406245259616427160081081658070812422403818978530192778132223988696017487241071223771192371391654826873441250475975138910633602213710801098336740211408767091039510117087974512671232177802015757212794664993383405377215591823158031300740003402719028659262844145086713224838213027036115665156972196976244741962650539308984903245263598993150447303511761368090503901573172290023966608728038724514237243096693638978356012065926881250749938343423867534010534318007393612688743206813952185663129571708183110371408347483010298009108140062489149160873126720110840920123964884071486649721863499809038824392561494329327982427635137720811330172427461997433651391864519261738491078532453789238488720084446554422458367351744765194043171453622687653568491460233865021206446654038241193141182484744949963037010197797869796529769073131059113319359497655410433846832303648631010073740402135834551406502798361261152235916011042640230603717755567214094325566143673611012915259238298467257859200743182310320605595147952804584475603444729291627588921138706801704172376822118320312372070577136599511105940086886943224002985787098300811320912711444041665241425946381094513855857364426222962571356381960328998094837427626524738635555204109412104992665661347462977968424926112456517057979144203080981629799376205123260630258672741395394816073493255925811126461237589868254441181672155262140412058577678955959331833105631878814801649259634623152176384214741495809375553927279781583990903907694258460364061384744704931562956018286990082851842658972411328266610243044940295523612679503389741656258834130234087561303648532006852900130883717682279303725068576450262010672167557845028392535460038058194106850288668584389538932806228278279813620481886149275251071785413700047195086916199125410905005488486355585597465895361992730480915835916269090751203839643717223768637813572002581633531699938520901296952472739529253802657369629340127648573955713825686731114435086689417489955208638002134059481178855665344569819754612801397853202901395550624437058429191186746355711102215960208587872234030300739674024714620850945243712841108694990604140428790392174921887494958404456005947446763041287966812770507952694547134451908471876904759564993267200353530207802031069927175133170228748005480469360278471318821361389016770054207609986118841565926608576464841718464454737401850520101818651728749369475373380271664829971352892708324870198351570258760861803407250883017111960937744041455845051323024006722235535971173015473725303717103717777107199535094103887087672312052583798858839197321429101600746268401632267285104015586217862412319539778235880915177933172233242014323158433320998483862353916084456675423045940208963612366963256748368869447389358288027961227059171475491527081542973073980561527720588468368606273024221921526138960358700713523253038178525406994511438523809360727353776585795055409392911612675954582108274961159738510941930766871763351755208131665680480062540003279423261535648464456415246914534067641085251912248306413680114193426140763492254406913486046670738026049643557359552102315718925909468258578511908273246341264012285080673624462509714815351102007007448928480615941758282014613558001197186696744016148388988046846325101392970565389342327475345635845188583566101963136032834430023359737728958628160381164847422097832025271349437113781785968903448016701044798452054875455832107597803004819465657011174426241055435325027980282664507991614360038245507719447517188542917197546732363343246010301603362771747683306116666611647395388479026228519103667278779886871749775480052640980271409412075848302305597808556566451712256329950575730320951120183186705102688962947700864067262105994854083982566284573423855446657741600581465812950594284176522007114336475156795108683938927757447433073810595278423266747243955167402836277523991848981808130399248406344310080691340157290859514407805419655933718000135780058920291825148009303187475866440633508933267040144126953838310207270776551052413742779136003086985088746714402795412261998852585024454080847281487603772880986918608025161848687576341910245315573692782462870579081207097479345561355321173309078114284715117201695529673510545588731299074939085623321227319239967020474506392831428798031399398868283603748229497021435448461738078543327659311657893274930459540660344775980119028117442479743340293248832459688564270742074515355934734908011102854135189439033320400665133208332472003170369946360209739387860208778066599584296811983154840448748767164716749021515168979912314836504529180712098661398545243032118299359983828641149234451043036405235788151002433909898211395577366408344754689262010652535770368042168442383217400204985129654754438603527605744242593351792866073092240285935886849538884024616280674407899004621400951385620903268372673953079513715239434886515737279817933649079025232994007768905239887893190508757975728642174444184291403547975802585288342405701044257178715648157192093285309845630504596725805632214858227597575957746975946443805819979796094698277807811703620649108338632950424185859719475868790300713109059871810333386707415247434011477858581062258959226086557160145022472815218390381091981818604477140257914065128897512489469672320575867438836796813584153663753188873686571294333164185469701793154111850563372676911024975246673860757245277480958777516074008433757878295497216016412110724392990624858000886425203355080922067430032354653446760963123822953694037407641740001691494826914373592475361359046332462077551753522268595679956018993207048859992328400394063553770373463194966842976873723820406126540087522142329961120544661667739124782217367572645848059812755693089147705600319106749936876923252432290649543183122491066473075733330469234672051509962820935644883066401255972743513724262363187833649669828202448757690131332913359310863983060649513771334319032857046056511855710408809339833778497178332199019065097576972343030947364814170898493116260669503767185372035414853512157900221311669956387710422599044253586189955773609049988364655786380412819971774233758096477325703577467921328232196356630504603420330957273773277197432490052976056068591886300112855884099354042239039595728410463296309172545555783186996218937131084944787714502985348254442484909834649335416806593175887168390828516189330114427194207688498450410543141364810380122681323423731100997725817082052098074445309354528956273780274665533485669183184503579619148813740233724317967974808821945691740774373821843637366003120644885544251717299209560943960765965566534184985168031517624813218516536892043240438548886845904099671454667496770241103094272585944983046692002382069762917316409248703705570000182579971216476028863772076236917696413445702178028383020795986889060393482914534556951208430989620927350615360235475502785564083230924174007257015028693100947349465089523845620268728379126167063161121649139199986224803232975382606400738642037537861406809755050235504399321404123152827486191998211042718868179355332421766102053181327414951726775721354145958415196032179826200996281536361137786026819892907329063150631946866394166879199047942851907033263013893475252090086709025336388444230650312144001579322263831012417003313940479343339991491796002311498977931848707402358492333796091053696906115256725011455810591293696325555799088371651122474835375760500122226592034509363249945583414692940311706199433466390893213234201735966624759591523238822242487994741618786336069888065475168179799933000530112418683007497170416882915992605498053998276591648047358995813667960211598138190910049447700141470407618973617006251544792477886067334635791248918522464630040925932733444196762761948211054312493624378654486343976505439408241054463872073605629682152757759136192586406569805911594379851228588775200120760705062726341117151267403897310316869027869012851847987483823986248860311333228715863085435339056905470973441811228469359625557711080391477838618316669063546951929457770454223028616684036184498833694395997634894398333180119490520933696702578672242530681095726287239076824922059740852039664351130903666794615943731327832027681841690618188863598855394932455437457429392423358250103732988264622794322057661152953767996904730886998774906232570630570397670024713936184275270774605041205993511100583224325614320965920034605122766014778375685688188925012144972011067411395200830282757522470308086334954533965726682512095265670547995093089472053764253001387589738538531672366080327933477021558579683106977053885271893996591732370234138670252824112215938509695408445276039491057197914245274885632382041471992570001149366306773428603493847127123497637266797328983315433363638958197686235349108708803024740884474331992264029918731797009802423634983349950400943996130063935983902221840573669545429644743904522209677759134886322768885339468589389562326737447904196960187792664595578134990527296452805547465883894749412009341037035504942612397191910605782686301856151635668260422376319669916289125720933169920007677267004806280138529331003465039465135892469810891759468189179035284175684660769163383046475964957290278395362532684857175444560296362638332217150994746022942004906294317640859989992373680994902370792431734661411998079039077347687777769284293544427552052832450987241132386334542959053119774953256106235505035232560937758469428138474913878928113312182268489253546411747275854234426597270873744429909184199156714777484807885638159190379737895826142918844373647182137684556305649697267785478284697359574893263746389142999430575857109505575023772148786689959320307438466117057327426974208340299722326170190009496310876799033533003112077146219333573287860385023840735170715464182032497266859138947616488993295032294229311898402984387282114010481283553330581698703461746751958270831579930817440255598181808042178993292034851298487189622895889231182638759020622007517163789651241511486690013808147170157160399094410165625955925051739668659775791691821334017361668143730029320938883433456243314734146187338832681695710160729751594831202091042224850801242890704087219007507483987654220319000163666909825832666786862110126162749406735137081068953236961078720182736235902037671635945750685383611470496898223463225058761501705052476478470708152085097810236450633169927390263129748408948956962502864611110240412459892047281593043408579096529597022590972352982547838078557282454400160612804673026115631118489762735765342898206264953980693408855955083764589084886548862046806751511793628818993172729998541563717642486879630465071354331090426103318422976318741589535547040085298240897683303695730499758494243888133535154494919522473368577419814365341752180950384570944642524197263539082712480484470694264800315664475095528291350230107432619468785671741815917527476342192836064253979766873339245385739361617037578747233388362410501933065345225120114716001952375610831112376107175203538104576300139503474749239882231272595711234709780870610300022957212399275306272132684111735676317891481841563525967260253619825379878643470478053944373577789989244505017343243150026555172593190751192277818443181344295078347291885588969819334097401008920341206591823524570559965905338835068187896499788708480851343291937097745506771258052591540073115646852571189910541388056891924553797050579988495517473302591769617582664074350653386216885661934381874791694207188493871906513956612612692178362330326438071712750528096537015928906439480684732412302763132963367496046997807476225081678538196158481083200859811231021443231460689182353876825729831652055302058226152873292031687646192207855878704543282036190607424380009046103052347489530916812871878378829381924392632132626350815234768312389276443931410964004308566307474629878187176608404287058718516957848379008222749106555985554539312020100227745461660687034153841351831810323107927785104702360249067865059250552183733390219933658370217957015889788731525453045337885753555494111436308337415497055314107147928950949160396339443226363140295004336742241252206685899138253440603212212142836772669879659718203275356011961872989196987893571876716660753533932525682518984220082914191744347965342943645238393634769609169487315863909015547623300709486977215532568962531187684332381779247325114244708197557024202821070809217195890419478458615941639065921250199362011907273338658908433604208923921066481817391235579514474477573514297304745917003002561502150423348813684114580903926466883831643341052700323469583000578185493715802141191017835516739742556896629395216197152034194564727833472275543962986300918077710547150662660634985595033066208534733649054115624315826806342143105362607786676892656735559669681782396115502532364528046765781524297866099103513117795862269071055268773302948478460226758516301892296527612532363747569849350609865738584218295006774351220553054690944140488133022872971812510443877629998481628781868450659403339747321052475469535946530521848850050274299074948175369703976456801128004654330778933523787307875770886491036359363583559110905084533126152596758949648367620809749572351052787550656869670020572544428379068971457369900896680882020625610291636477814301940069939028215026902640016704548363634204975720854347956612281386436140275579733177339360902803617509051872752323557580621777999470500824999592476384177318782251796185683606842342265868225526755731577529241130960565640685768966715348922425137751650924533087622751491956586577996352349705909264902255636605218406200901956705954388694243930682970807829007649387258867487123184921731213332040204180849906341262167837714711807444791276335238073958517103169334683150124636827378645675889905730182209473162665976636113807475168517634088107406497264775586516191786930444066556687743193795203817510965763089842192247181233559768399263172948440097225972711730065019859974511170856099590337292230667773377740344796062435507050635792729312878764367207790394693831930724766829002965880591821731132327702491416624236349562333405595496805870191363967005247648285400125231579999827267484218240418144911550849427327028384165952231410897586464786700522967555600409657203333387391113165187798873773163307581470256022666081082553938005449559173972050693636695562323192539031317042657350518214157734094030103117269730791063579457786938850992214635455772957658046318129807270276591208460449684877940729504204768861993806065967017838441331760319841777376603215578101920375353105857275326501949256334029014974579645969380103384113209443601736774512269719476821105773083858708111147932310627543421413799426960105945938342295145561203335138582878354847405252178331867308701559668435828675708539397973615251306535697090216486745258217708156866515086593762222883254004125322212547776615899304236737018433108410193324080156517193429562935676389873336526837944149205682096546692356902077265714802931398229079591272065157416006506518406039427778776469983510483701154458556969898102052097986421796156405073535384597826093560791127127470931158024103054098122495814527091282508930738961684315439266512289877366112166527028211233416165229573841313035890319643834228038936710285688813095718421663278564696760588124734725216422062899308183946045765110239943725015131569403199847077760236341534136798680378176404204042863979303509816572179131383924956668490397639995156123187785074157847734555675509398985430854342981869627639579291062350750522192448978233358877314665460086339995389591428309705315321181303018601311560626820323810626187549066686477191667977274236041935323674608846540757415255421595165260619275827622786505020757646580855998677266283559013880601746201424864962574868357759278487334415395178725756868547699143236421143010204146640743222183466151075424898189745026733050356722406654082091551660351407832435512650715748737170512007530333178419891778333064579244323843632530353509208405447975550877349526917462794909084787678207811292997079180680129520549696708512365678806657787330530434377628928565942782491110841457557480201347535061693122929017384807246671140598734368709335734158284672962334081183324548790763130530121765039349546787081497117698675608013254779799928444089241822916243007102727090634295675240170115864325123131446991169724978383682141927776683157990195308419111992662551677285144749883787525961306210844153664803890552069610222932095122948753441516747259315475784961458919303293142203250108424734936421167037845682489695608800574942641010366010568243213564442065556134696474764898249578799832803960308484609413840919863615868261026074947300158457463839399413731114239770069738256108807234163293758135383136488155230795115726770634512797952524919252152426263657060929913746352230492993904118407130945726043453809452847932570110460152938506916888594252811067887057506751967106966827324594498020214222622905328001536489300605338211489740308019298006175255801869630081954536564885642106796075025344680427914614242298364537876876098696380272226045161032189880578357397801570204047723150826009899920661682498917458560535526268731749002055195260004022098448764947777009531900183124376721938689253830694962957373335050295612573850046071521100918441359164903231271527030442852231387050015203693828789606957249974402120554916716711343789904412330339298189932109230738695160626316204819884760746915055402657959866742483969758303279242213674906277144859458763960327044592188721839385988440618755764512372176818834481101542620429524333279595966022153426433151382418616971401785700231540760707936292051478344457824786503339705861958530480696601992308371494514451057649334510084490497061846232278935379909867428373705108707630316567114803298823403311861505682054043052302221021523842751304216750106329253669715913226194185528605766429897671863789222873752306438938906151568424771236419409559470329484159360416988340257558217982394035684057722179167674543483248109533459338534972885642670093878833749497627297871097261207995706870868338715587263956896015088882128170865567198534828569667171993186324537193218968927021060759183684861829614373074878663643242020078617986990778624605374899752924616632623921814014856424756456992810594440215718504278405672745592788004421149233595064926593257319702618371167892334219080329623425233580499032451188053920488154534591992124359961524256671945187706440755601262588157384051726093465956460554436907725601062783199107725197933537605664438757335268445375115038772435906433928536959483979633915380934892888823285706260142236226408363853924003749899576472347032714290180303272644420680708100508810317577310886327493859984946660002468311428931407642650323961586674750551194985502454280133166805592675832385857983599046087419316718492504243631324916899678972055085893782345761726332538072101973254867834713625910052448316701829078126503903688696583817529437892609232778705195318148403872011333695148149860358062541342004772467747525962497029216498400392779188524101580941356837586741828497102520423483675126144843487847996833333200478730805471113125306893872614594341931529760265506961898711952514143957215299578602843187992280455041476902799132198481549608741668795442800798464584704003164829972344139148570980184824565628502471964634577139661657105484782459132478324738042539687017025227320077987651742100309644223517123980815325314476925875778175907567251936481040600796721380588530232343140456297960404753782539112120480746660509333242110237757652852786092628893313377861167745693408014584106184513755838200246951265358815742605740409069336327503120640652613832911091536225398858444738327137602311694862728996922435833179406728605128081969028176079595388439186985009976237318008691682330632912399881944890535208912085667512436879453373124794395593147186813424281460824341088169529493657365026013374791350079396528446687176855788235092831233153384015943284863992755633359211367526320012325824463349003136996865656091216754756862710624064582739750610726803055299605381271265919814059638652187501053782792717335594849505780936846715575001525944932530907833601616143967548680516427245268849827329361336296402697454426533686932997780836980547209528554280626488155737180451807099591721859580621872813855296363677759965294629696212745424314276335047690677402857256513418731205230873628356432992983389964431479869576349810159382414351572721510938069125640831162140916397173810374776142859596791606184169058531194449019682939917042810202766147414345756157363543401151868727448718793338153811841923606163571969003180472275971798465623925908052451343358019402848063066129584578250511389770583096909147838910420566874752992732391353138457331612808351685888769866379564143804934719736054202666563612056312492770587625616991766491415879186301135674956770493327961319731226133327044978116989740550760636092314767840439453177720635302700830082239922417972172904366144334538160738757458501795113878777749205194890844127560820007617633425945787532638777846048097069309925738198062586856067765183353563371380465204005080234387631570496734409587566957907892346294317687503560967704624340710868066340304985151321509314245774803973779335941149315711187233621368451055910224466514905948287714987409329573185685147350794798346271274270736956246141823382943057389039571037839106532012467417882196313600070461922829853838856570806739431359950301490510658061926109510591637143112219082847195875720886968512118126860641038863121799964545315788789737488378143760232434864671891204392484624627417866797709594291195709385330991558524653376799522685913104239420789230106646772867587046481532597854706932916106444086778312527101980471642869012683348429380182645256757319474836409781035963444434217969667778368005998205256776045493983204035468247814966516950462065111946422095577982493715472018416567947279674787392308694072939643902628217817502837878116632371172450523700177626518202107939672876558468082288220085394217862921956208049348216657165317060932858931920201361678299010615810991092883274671191040516695773734300796015528042444228315349037593435116504182185380628970132174710966817633648528440672143278569950289969869174702390119324133105717336256401070298686634508729288554078234775175276315904858820806126681265190013047788546614068618715695455687367282867956671797733890292078639617577282769169448999110278602541510309767273596882213018197365757672323058775256304943991550770496109028778723422517547767768628926524521064464460505355348881104657747218881763417247455805459570914770954002568864694106474456795785148331724369564712187920166266141466534199744362552609161083536707292097790273490591220229330965478418653883383892394438266783916764366513825736985341556845089484737911075345522295979606476967002677751448619982232481262542918427798944721025929004792452311227338479054609664714418508948741290008231112903874952744347275933657953047253501655039999004231218159612729590267337235010383131408750682918767143260519963453566613907017895338324186073259546470491407285854475169423701072051216694629323249818128220612889062340964257358573713749218240360101626600878004775959985460670125747327704550052084048500540168325423902127315319954761550449294815625126894405452382909474379091140265321914465493340963195113085230030275244529360964769332614057784191645352848792146216142243216749334166430697298795402657552925834469651285879688378500000151435775466716625849595130306305959078563724841018702828037418668013124392932590176279204377752323015090669665392293421818444436058997158827059312214741214553877221146703340110426264507511462835717346225147564762119504405448576509735145210253268211273931825813714525375314486247495317870976043006672852074989728881422374474193812049038121656953016418814191781440176805706655957501902354236960930764368679954141327699365527689599260133751904566813033126467787070139915513121915540054772283677939934830749277539736457179011672684094742342477516624915917106199474211251304642667228459773828678674478312684888742234666200071086104711915529589050420404814742538254476337961394779615144472550594494272194166804775992456158680022183893958975092780795713134225075037785128827575018388614973141396827864995922528567524907447024038419185584986863721395380115186335393995255379150035952556644597128673733996887136951977345997339702812377830612533533308584245154453087673691174272732262463777990513654809762557142997814177749219181675085428122190995162348877022470793079091446507619069740970570280082538354335359105786182773625137334305207193469301777110054711226503838751734802657891635253239729023332184380838009421196219361794558724317514721679225792723483544933896491172090461118149818648685279345593349955316353314826989468204811108610193996670078686732472612655525284994451082646781450714934399735318857164884656410859101550114594454284996333408696611134390131923587156518903254110892440732744263818811362292620315895072616908276314245403079488467401535168320548920050171290574920685759969866714788808770856603933149523244177529870436806222767141954350339116325692803169528474792953567640128596619534745071788451565514884646697403494091051882766131861758434502148770832617847803236243249721665459763834927820072947101496698959644641139950825274688642823277036602145203238109279500423592162779915656472278455737394998726208175778452879033339606662194396701495370229179964604974280950443748193018367811867322794239260210697579826273524695998614331843341217968899822524342385575794982700991779674440840907817285517227203991686480581918797191570831908021473312896046194174267482549213193776969858776162446487304114473537928295570621558746007192507554145552435910371786798903422829839417147539332914309376675061877279429177295138737998100816459435159120858780117276071688206595676148128397558762696031303177455485872224208035111245665711956704819243715668377085626071792927637759450289545459940962232101665620746650512578787246960330942477086353598684112764692238928336949885369166584639358088216029239677840483596687458522717474246384017964679136222187258569374878614629019037143083782394372646708106847375468587918048833490010678812409419065844298198644532949928790425655148909972205134689460253711416744835005145487696687591770310656599994414043999418540594855580588662996201771365244211067282306645053120860569618607014353830548176270441953512864999661362578366785004624121695093419427408643205312222185388953051384016017781256683241907506484246941809707217711129272542753456583327858133480451810541021029213344659239046013588554746753803676497014114612671946101820043201406119902259584436257721111368778932959822456240858482969977042875027787656642995269226629493346490669952442928024525824319346577737907074329390321543899348628629731531948979880081075747132958091039505822185529605093324597715866376981612647026861395505891163805189139547997597315101421237407947876697765156045119815705128311787661239356071962321182566562620247926838907160588369526392317879794668665772244303547431625615769427603240521050366107787962120039937545160265701876070507497065004669511924618648496334508489738498929587754648316577620800510084003307895769834158485966521079341692330127684977520129588191124029455003874401330852358579039670603396747859429027956006713454341227331087569150916441557874232378578738247291199695650402396882686103340864633125724544074305095885981902434350840674146926622104570556135818771134551972062802156984780000522084436154985814390764445247428775960132164496691882820178293698988688369126862531613581827146189815001681546461364026866432851136439166120976524034339053668245087659638297782978157292131927405338069850175822672379044448965788663601286883136762004264372952866569908360543368978782516488125910144929047404239514808260852546334844752268139990936412158926893111076948023319866126964412887226662862939662504911498015340326653807436186422289305811293524328718675904480222174451470513439400274469996563000330315158134556556356091433919409897967110565781241846934852318379434879624844260806847711167069998808729425543429668861411849592557199159645234967161503459842245190498945460745059213540135471133938062434199461596652260103753873849738782393912545322642925312866331491113343862548841570198292541420387465802454503163094827719361841951581475036691597838109325259609815027761309836606839639675383569078934932528268996431090615915189839473935484016149376404330126219869577222636512511691139129552132460797494618564527374990048954759031251079775329937580411192787027041834773335874641885811823978595032208544742739436736599515468919290177375707400145033927891177379980051855282830316735959035615806080607853727096262267246957390534191274439149344920854838476312981178476873527231140908683014258113350563560544486850967869910916390045060351644485973890095457012601911296574987830731172471446953557901160144865800189585594163839483615923233097735152545041261465899631969684202717396253991933755437029516868885585585836760736806631672976100156064107095777322676076829304172704134097475026541397307376808780931159985747651847800384247587342439628298769632065757199092816340614299822426316931892706128294124472855659117379346082160861213080353024010613497540678288811764761674320347495226753266111215794200255193397325389323229053661707541123694571245571411275010229064639855308066991385752926072564107558285075264029313285018872207258042306967219576003309498385004637954944045439023477245846461524433289990322421498732721980812233493370500263867158296948046970258662391703634244672745645145984141112371251273147096777917480534673770723404338718837174262965744634700120861777849671428288517634963220571720006862815869383094506419677565920991165284664669981691481964756919275140240617613804471290379265501910188755436101769420500084637538998333586083503727138416198423283424608074915620027424627155793730393958820695946610034299949392189740977677715184006778878611347165115374250037186457986725882208403107386873008950322586429224713226215905481617672132039901560448010632089027623485224784831760005375222497136931995972274606183904575633645841714186601284289029335152249864020709766941123977613785062555993683963715709333624771102235321897596521824658909222803413148097650843266366152290832441835973713597555320316700768929739421916310872007953643700736416739480509225303848617013837228575296933532852040303549256961067752339616494321746295730346579354931653615490079299535031601149715727864621725345250170020456809266618690047234223915116587440455110044608420442857059760558142667394270329974403536738366423432255142572868316745038265910460761601690384269523830006195167537906484288367888648687105165282153709886059001906659482542207538972003499148772874564521490513007405868128971336551101384616769742368808390130708718246571502796295471907164163592317192427321922368181753969874483055787966679021986649866077308862228087869660350324441093032738737472893824392240819155046506090872097029497484517696854456487164510364310954504153146447133261420338725492255415427215086410410940915795936413048453529587186306109222091953347529675960413571331392121912425279761622707277437264409049101271095235980382278295277504620584563150278803786991826606491097695270236591800382842611410080999055388730549966225399512637297865679983527916150630763888714189582278219386953420733467690355566715316248382885356441636203124627944465693130909458207861754336032842427533662830518796572949105561387401873594212657970583941791894400124711250400245909373834349968461661826118372556928045184356676354880283167413996727271935079628962433124502475077049905355741665601828276501694541280706551243290824964828601184805933468633966156062800254720292061044257603073621409960062197848255080027360115598467743536436411039400261853591603724550763750004968573058248911643781605947074986148735768024265405721870867432725746157447262761053747770511998213679109505307318711392387198688359981083613471799533309672591834065884751424614697263780020175804021890701015788213923897445347364373607376673095727300536406759017580549403166551728606914230510366601718780365942081369424781501021740275466823931887398300682149534451240580475760509083569998478046643430363851302313899121183379684973709574134228469698688723042772012963083964040146039160210273303342139241841268897740757286199564380334566577340164532983421839629745609013140533344082943314968385587349456550516942404254050985547341070496095332057320802913612826114235396615632835824637072184570542152152869389508095171065417574442102212187266593742744977849562118903575638095550032065209125898794052569155738360062545921274052256854519853182055656269012433635221316218123774722871326428017294273831433842086910964592319862941945839085057017182264664162441087447867095462412184428014420482615115203191531344099399398888501877581162315033256577115131229144771267132494925891981113365916497643916827029292051268659271120924258414020611675516000440082638684696705770496639445907463832774571451396326288891933288329856877309691018247054068768894364693082474216375100605551715441704297000182371259988761072055553986159461083119592781157710137397478970229678326835639129540099105570928136140483159893755497491060907567937372357032332307595242988629559898772126213355410407557562907567668925019870215701419560901707738237648926658964406433257905798797427305512103093437897913984239677333598906089509489766599312324307027715658621588651964649795035756452958449529593787726027784241748481498355519269637002325124142460936590706734335220435430740941324230530315196032109660654417742471177423497067583503150986713767662376601371056340263480881284626218649915840813487273487098261452661965536582249142506408316499240949608676029582053433141490143139435105335388976818550359725233544189639560190321189099544231612386338045294124818300297517384615338026973381979518375725715586557858165084560506642176002161952533538662771508217069662066112175955535712788644538061920418170094447756701866957583147327905950293768088166219321711995003252926842845576110477757573140459395920881890247163841694670632315150906406031624585868194897754029138518586958968085418608992446679844000883092630986985579258467983496962692400380504657812866592265642089469132854502578604518169224526930360019298004008873795461013903051018304527377136308329476774596344687697311571257607275121486341334784514981382612596905146615453095838639927259897210943262263337543374776396291716459019375672825050531467893548321464679303545398419262109499862919563346840392542412586501455294321920807450227970027258213177835576483883351618286625473005928818391427577688648050120154204064398587247185678640364846774471638672351403990343829239144297912981078615084081835302506750890843502845145732145232238999689685800402652602633494895137030578550433453889154497150209614964735782354280225017212795958763902969243167801446938996654928173986950130203997542028448753076640232674572920628527403618453690244203887452933012379128174605739721466863104372881229544784594367382904070996999168029655353633003372243568287464423924467851825035718752645055676244603842634752642973559596309189349487641028549751887785221880609397509306503567560127917242295850889348901332779238383200157689949907361302092649000725339871274091017662227447044968799485076364509105720515095285779600736927578916543997745092723486561035247753280084139538795247656624345654827856328374623985764334817895774558932810864778118823287533035204401373588363621108227990621817863672108135373108833853111856003815307773355438510816540770730445949791231071436652564315512988484048099737507244049704660135336913258126258761492419269825906102288190929129500355544451179405519363175501876568092354098924973594374289800449396264682034550538585903479775064797722467609825789443854072264539577789528676242713778663146674952449078567070730023793509886112034522145915625646132249371105740989939097124161847287688124393608432038115956748086412025004027172879106692656925618961104526163311313195993890571355410384867814984477216048371045395593762379006084588037575286618821030339601690568489491917365758286009316140334732444185153890116088475411830411954150384517617735163325172984658907684221455605363785081143572582577677317986541917818527366778293057461358749184764385969683240234130058798708036906689557887599847483569398864602789980506440311735809184842462223884504800548853929652219594104815143894237532189717993815747624949892382936134253194015459366585273287502759816270360093582019894581151557922079221373926734776363092379121242669326529587869863227282648310439962935881708370620841940810252277402188666567166310930121997703514686513709619983523708168426113175169573689430613353582835807758946878053529795940046096340968668740085557125390632033602586683681897774086184256578365465029845936437784268209731045362435948704216548225862066473247595081828000972489143564878067865025551128263236041744617454201269040524761777312717103336931673743738178821845134825190527762998722987528368072901466910150745038690501772706269744943773312784331870998163592818861540866265662412837858397130390780698451209046101593508330782121231429945657342166339213372337890760018206936922484113774715982337279040222992000000296956876584186293807069489836167670675285746589477086028628501264524053140728222879709544193133954238628098721588527735196648330918371589117556457682625437372049628387617109936598162059245864427207412169106987433891967072379291139791519104949452185662435567889959518379246289673940561950485911541322296411123055872226229139510441390800202692552468832176514436130110646004019065510002822648080488435744126375991336909610519651361925738951908662140120165796170909683431516486073225909068557466667236147832892955966740367908014902991802853435834007386497834516931778872755641179174733614904030654074923657267465951411144360905112906591667749820055610073062550482357699127790505413910426758452383603301355175869116813489886972178463209955562973410646343224159885888859000005615560199799030782601831358183203925626286989519653672073683289140641674214768214244152666241099490932265758255256192146508675335483507016862327514366901009269982593371438136160306692732868195908521526034695375384698699519808866121476935114751270263753095093113550784027205797278947852994901680564734037830860763174263943553410227999231631247072242406341813124033259303948545031234713501159469808091050186431650300284891991452276412581711673718057933071377899649890552886743208770395970244455782528055520793777382727135305846848678852561976632216521039056438362294867179731395486049761145793600368861465113013394087410725697175375341586254395191432437004020210381083478648720039498838322175191285791034552472758535534577892098310059007333638317688912442957543789658352809730211157923664581948490919499608652238858396535752261400533117727078945358409307605195244514739921651489470654457874109140950042227012171535751235489839897305834667295795782425599468639384719277815876566521319531961925656767999494501393677399922967713627142428035818723488158459918773296176354788212452042134196555219417365782716714473054095934084408867281562584150323970987144241640772444405430516848203943163639713185469654361385853597390423690144252558027846222794965057539786679229393600745290279839878581430977008050091899568403890258829535877844223930322684569126136740279584498563122337759251229202426593558614375050233968379465272320333389030358287814703539229879137349129270148055105647621880514574521511420144716198333622021595065034367911528718062013384346413219179370402806480185863018145139303019107175726690190698957655103534245135782254005016282246601170367890536325620936026451935504889315762264261099139138099904187208538109788515601552576109711067804407073912394860683770901222382425286316298542144385072826636751232713809984961582820946799626566580460288043483780367200102576750551196181460484361410308997287586425119081978360854277083721165577547303569836822875849046651002227579106072284655691727077558906783289231676973684901762848617511759516837063804979810133242237286615405677761180301877382696528393975791333606171643081668028740406636476060706476496914194030188459128394569592860064651312292775353801869371101989495832601570213698235949250278355215677277355148045186206117889481459203843325830700029111346501208517664486923558730765260739534325671029049783631233545130417525871194177784304819372025842014681837753129606801240961408414242938807272331856768663317727115698798916565415970858520653366503071764502152065405514613376274783899492140236425285678879654293837444943598232463340247337402955573569412335650030702725779331664650101236512714603710361474133410867656632950396971677949911090181739735435308676025632239739817850943473485247549153743432534744617012896127559317846023619486164495024135440273106738766381479441709558280830227828425620339998583756075324124907780739821169570536654834224582085925683872617447240282488449073454415609230434500517453809086206400143051223777886620525418528896222484659545208159078292704553456911597001600615756509154059210448200418721290331535857902798833997151884677609674680418188000594529079386558362609961142056187923559002486927774535173145323984182036679964594363200178079239334721464864240098514457183784753299149683072123169563121384330166041867474362005483222925581536589547063844765785811984252886920588148544662055471399380204106831949575612608460162628326738703805819217844177713979444214509230236316851948783261332115669588893091232032395027375669003430593096172480941151840015277021932044286880559354688739802591777169332915730506688317651010149805760700001199200279330430294404843153931070556416290130568244148837251400837157400050135232142866865171356465279769956478736178697929382389691480159593936876732351652201582289184246750387057628523955659551225325093297360758343854187359663065249811225723253471261376290141147188664194938536812412161186519596592431905080014019924246794290748467695284857152721221460403298291395143120600711130303846443193730772573226660151135918681248210821542649179469886185536218450956558765410960682028040645680308780453409812889737500570936744694872389940137317079040618167594816805860626493373838868626773090975496352681894942935750564701253836075165405902786295403278857866510051791734619360809427182234183928602785544203489501175969820643571882922213490178998254856694817158726846249410783204208651556447414881336419595227130413370101414294767179562350322847815500370868236627548304491835131016851990515149471622408393248352852751448883222394608774374056101837585252680778791340452196304543266700330849901445172779050079899942028641092870148892061405871409340035578517647857171717809107965283820063718584706486796964164099672388519918974692404716514159067664351124739485909754892790700145283169196968830079540756864484729730426701007235179895565110882405609243826376445099286289763075315321394491383894735175757436195866297722579601672686171871147758646715618595877994706279299159586290541935513295640517722322959486847896708325913294769893388520310812308401272285745412636368778474750968755555185633436575895116207897658223734406712363241030589400523775534696563005599596410857626574535707569177618472606884604457817632215984752962377897863480719476958366713378875304739031192645358697336588863951122312884768231123680988415578665434142957981544572642257971071813541158241880548092704909340208190443537862684321178750474782474155054376452967632774086909275567939311711772821586585488332188867502283152415736836546347215500787458986870062264972750107555645868444474722312593679245208925718530512031783909690440668144356305367761964130149084548396382489406875416381383046238786018659855619573454430397752464741687958369979404980326834170832253291635951227418327076411329799785251384576732262590788157144206889755368060670886042795294280547127756796979096118497598647268464850052315842774238707722598766962056644988052147436803038561167350633582533549597412033964732254760865365301412075415765493075002776123147798561726484664403027040300447368647108809566144507970182214569846326069968704367193411669421211905395541441140971335954521226131938104722992277661294434267664166860501106160875388466336235423368649657226920887626612535700190056636664437134615347811404783049724047191741411227454438651441693234517989483835619883893298870219860004082645601427938395834247562503049498324605150733535276887923497343287075543845894275151080915829800615649100536650241333500802229326041973757031852803463728296430698468401435733060569935730208559203674008738470156839939880662968590308975133144730960120448742557955462646587021991472834443342844575878997327256719585460191034424443132668395552278587793579192902367974212288827146014994357695886243200870563440398438707710557176617918431229709205444155963924591854667184747966092674736438452994922813144182938539855841967788059976643604245575240070780263872523833618449731115849948074749808068514243317735290227970056149610583524542416413770371137740843226569797998073040265773129750009663502590984279640607785800070437843835972262245939071902571606281796492841835170899472776438010580879811281430053247331121260946165907512343150960804705456213130911912654050794358852254219373888869134784614223715332145695175626892097066235600750087917575115487785996039590499934383736585649913766380719689932793436767720325292781511406787578019375877866860896675645093216955424005762083804744729870355947083840097777462707544747589287625605150471420261791083255178460924685424318293587119144767694503497474464879825273319010894291062253074499218068086395271225782254904110183976868745965676741636208768538323679769673759354932157897898799893145370781026892355023090872947875998082344046314221025409011234566769636323093766580310169098965536814821244078628458088503578144024061026624025938051256053899392419059829023845322931993447119421250376644875214553953490915728783066919701577406076865327887337704371278491900883616397841790291878460064700035487901047896319559780704328934240747647753547496859985962751177841752544261612306495583093313339075887546242189374199108235567330901787217549900182547145310487529078344129919235935003994610650627453123553381482966797543457428638231069839376216137352019149874866891855307204077505839835734979634879925975410447110688297223006639668736954457389490412591618364627348332055394307597568945561271612269473830634620647602534416780047046928181489391475175230630204178981327347762872355125126925932375920305319890091980327983135242753515606581942783633816065525451317926143910049456203541498917361186714424428860876023594506409829535192151893879648937362691779455526597352889541609317143910652806895090895638216531909076541344744429941773323320180736088589593282924935264371467699799559975574243535747344469482023685583086135297433992658474550833602106983041348454094103841215689422057026777436502284631293171664676263254374937085150114489447617981345287909239146485914351751285482470970736988857077325476155619467331172875604677357750692242658088122116983345332479742213294676948992973355437576522022391176869607571959975342049755377069072101778271610631947207942827945638011621091690839356819919035454094986121046107825946998187473548059786872067623443235920818856533338913408679224821797816948140901697424125959523391794384676036500407024083332735290352648230607985529724188776453069941488887674751848788275831749617950411014630569318695455951021801634765472961148463096608689108515089460310736671557102560080025344254528030341478551399138987716673504965566962621675728264637796602754980897579087490092996163912053259272176289702022767539269124093742987355937584507664323468851470122493136041242304753692669591202753171577074910177246123293236960802116244153721924500651817868487595604241547426676117833801267538288482650771342565216709682361833070854350288563672669681843784648636014156800270349379125116499306488767360338893452243124827944749507714400561623583468970628649828046175052720071931156262315381383056755514967350741967916740353689025701763200082066340130744528163144574947134063046925374189460715114393608609689830304204219738998023108372076477015249113611816494431844635571848126739088009418920618258755932302562370065647055764809943273635061125864601756396053312604045020303346317971171806729020903195682016052929949675854220975264990135339489608948396118393252024623059140753831394686649976594141182557981422818626372064165288767745172114014209881549749121875607695039499502245184446394044329025596833610766305644854681918084792352941558201707916156918289007558612716900732278725672090512300666490653175615365363590972315859451790965246411594304544109100038169304872868514507166051199783621261125889908986252022175965306267336393575952269005999230892833813954584386399458345598164181561302342615406749719134994805260370292311307326986842168318735696499461690010121377096391927429648235336436832602159405164537383939376023029502642982524923689205701350412825911745087253379354975389116775686727295135375394772535599082530868637852840857653650837044692147493714256788313426256487140552137040434282572047206322144727238798037277339957601277013933053747861397055053042668215721711006531911357229342741308695907249616986053127761103642560101507705414519083486857648717365587267050962549368505623299902422602401371456525012940509517033507642354402506834900102273764952280272813286202758093326781666846190163328826413131028413840096637875078595937881489131563558957247191788980202096021344101673868670274006036891679625128117042984418832646204360898055646248084241010013231806378106325687209918164738349327003057020210010226224120295941762144582563976528886749868976433552390715408871408378881599484756347807589941132547663862678698543274651829668966039591251098725253945303615307686858094952672078924342731019549341174260816215124823907910479992241103544185501656845665729326321918111158182693787459539294384327223309536054657278115340002432940394880204631166211780747094431045018921479243871870310285323076828701661229200400561556682038156220358637742214041512158996563000163236376933942221850220054851936398189936538064557171361247134816316559721596758233907402546880039894999907066782412914608413049439276984035429882697776182513788320227576106991186286493063847563417386246637194695626280251521270470457393835062341324981449232758281741294798427308614685410040178979558011270876561062172417976264106209952002077452289928206894666165640141521868683206182281547854972823801820174302757335687924203134064865340740995748671745602087040450174673769390921894947477866906849792431616537711564865165303504554618182102095752703229623185437643852378532795267369826399681348931864475340113488803411978419637940178475819328911864017604054152278664036174035229438036673864015063125792396740166237470751583353459061637092326183387139071242766341894481146305031915519378981958452288423128205597626047891856035500057950039844371910435088873358225201191898006609734209924295586966982147772704278504982566896163772830091515796024932038399917217132049364007424568375497357171751216286223244473932893777596412807713837871485436395602259902546851666090175659014158172704818705312677986994186887181612497239905447260337701195059484096015251725634828956195898041549481452259389576205098013592095147676404625199229609637452897723191715046388749640431975663444108252438193569128555249752452768540277580805766842660868523547607428378193623907574284602381084509621676646245768996722027401541610602888840311585973551828409784472303248113977248424181130769492226944129479862930361190235694958830460642343446302604127354683726507522179270147650844857988624557922172693218480847345021859480101636467847969209566321070746637280866427509811992490884509274644814672874685509023706391532583743416922674071460310899153728374314796614675120289331262041219547811135290821033538370280363633519026433527587975245253088147964955592967932810398045371977544212397949672353796960825414089854196173111791842890720056085389956245038165346957095717769307507871992568708492005808583225917373644345304213741386340927355562452324262765042901071633980372286563964734098646901641981045803252782499556987037307779291967051976087390751345378723977160353854885073855451003614037995275688392835064279330270967860497011913593729004739686477953644738620233804950288092013517026791565240332992428509094893958511737676181218081284506919998744404510118352159534989398330499857627709837232094783651755962289771355253167761581319210750522460010757500538333909247193133710735788636941206142536334906604004925466262355002780819870944763311256055304730606669664879677265201644202413117671875902196212339484222919233278905706541924790000786300165322258827276323691584174567232875595630058801351933855048087654959839631818887504527413547778744480374312020509103357591818789651231388785717677031032003356100950659481219162267107587349886931771399633796320788468094716313377950639679588450700892197554610031088769426379349590246958888143359771227346212909073121130939031938966374067424717572159753990046500462151760520100230679454803015703774958767961068937299348118294930426327226181656040685105848060453183706904682684612188061002403954146441774628915195411563343934754342184349788373261135394943427333034352920825126127717626197792184978141869964397643152529477330873793404285761031714553332169601239110171577595148266438718235222418194790981864096594812408303711755302160837240363879366030544825441306660069459959277056608983163160753059019699389468822540639477635567139078476792546924238612681633222072703327195355804467137382293920638679518129588850971905038539999979283975326751347604026415052484851640545915331477281501331607698266743271047404828767835185998967163370871053710768070940621552218963589230436412202448186008453092854320112429265104057951423935660155329015935682693016101750455656566892414950528489054255268708218282918375119768663021493361733394967797892145598195001556035897148995389434805456858443078467675582659954178315571227087226443718493649014283052418196038152056162239140945248730932188047105303461361928250975952147301812725847715211725555882140495929888916171083190529129046934004842345484970211717092697568202853511175562255876142943992223590922900721368575610105184119664387048790883334615713971626821339714528933630844387392000408481304250445310152999330198356434459877224385518368609866362361333590797180117202105570423454832424704465754092813405957611596997378748061374952395376635604974284433454589658089730625279663543168287514135064353375828637395887177589948706224582893913507679982514981454174240684280482976311287565536328147740998877644837057063883901918200846871830519207218264212322489516431712723500994971446303877328265566199046980776754527602065207514935425351570512475399758655756781225276633311896693255138836951575838673894795472428022369453277225439535859887325879635646763835868164921503609844897961400713710054026525387550267465642272147422209551072384709608709356165922077861032435697116973214752042151707605363892406844385469905962232431003925212114604796933171145708229275769513151835081199074417174285373696717304128556759170428296938491780675787303832029898859317511945113094788038805427447268187916995525813332411900734141456944767956263613641848254179451090700903428838145050932549279039270336084151903412825810889693694905789743901917443013896912462872906310449404290300662974177866362036551139549820423549685567910065046406792780642622967104284664680818673180408922090584903217759026687337065797289301854154558965835964368647195615510687454795589053326973467380999548238548919536572931283862169092052492679473502974298250166589759381802762183489353791730566527952495954932161330073879113744292031398244338099391949182169262034801942824982142085451193286160889963911526735677937521031224778052518487945849835673264961599446485900858745305887253366502122860847526890520703775228802725098422469105324710242521840450796032682360334983347392017740951290403002219454518760832970556288365206383857495553165435968626710835416418071717371084920215971221121441289297433885273709165409279667141929731029882995332500677963390593522786711370971863391443331604410091798011823872875585686392757798577109109728424625863510842917232445364052262364017290939228298718797320326258862177561603017102241644396497217110904643097624632335586645015292583811984326210352343828347268897038944313204363181069756728469125003891158149099709784492003914298477565886933714340675264122751648885009236751913894811555058137389550084500130365888524051925527077234446714140866548287991124843997498923887605507146170507711427716075214580695556105628364536625976587106980828769806635926316048042014656616240565241785221999614433813663754602646932974985203460700353407770932584849646668658668290205833881328871135570334906896483772790085936914080136700382896274963837616474263514250240214906502621067749428393810141272069265983956062215426798771479834049297095788647862765805211531881674441128752570409505848026715120322364825173415788753550441161877295889765453198427909310538525930499915206419930780120029306572139380936889608456832100875582393759821771049180174343431429870884274231246624386312628931923757036797000985640149971489330148854720252826442160963139606787431159536004509430136703105395643663166625720239283908568096781631480068740742155814972742239025878397811784660681456131566070079847443789457640562922950054474909561105434632868378430732964737977943996831025342897834148913941579702916019245546774458251556537018232317571450823207654459924406759886821938667947075202955021356443338144322378073075542917147217469116180029999950098800141321847967435104541166171391907535592990696881315718608095553994498941986055318762434168986066377913038731672678710299124330722539722319040785407380383487934709540821891388640440063870155514982380116691530509275196176888846910002969905083121550131170719228609264334506803328627302229597659188227927917154140986342368155148226532233134900830745320893796073233772205137701131066754066585513194385713850227781896553131767051334920110964980052533984288374461507347229164818259811030303187152331044839091637269031648293840568256779917636705819303964510350148044097232298364791998929772187889787166657695683338498626575933293208078323686583119888307401910679203909569590185057867437475290076011603071744383122129499449791513369954556493633336063852509895723516723381622719247131675092653130985744176493957239627339045069423763651913264697614051410424934003679241428658284458241091560553411228071536868720236158000592786372851056744588056263212378348255933340834124954640298144037916778253883289076502409290835827075955776110402391395906254207525685497163104312040352885497654045888396250054619068602999406157494819234630499483966440734872801923824758371297788398547704301775165582130778736343767543646131619881012085199342172795689699265069294241120642845886943288918789395297032928354337470168489508122342820988538524786555977725005431276208326967352127901077143769370020679800049832150161105314125580413415266553262006020679126997481797460875305921814544118303526482475208071100317171944689298877019099871645822357050490018266242753756790914897180289855642060674577160566489420211201767828247669813213378577109938057344406829202841231265491067214846642525568668454494639483673684596357417358486771753579179971194848294126823737316323855711935267270903118745539574476282726916169262431407882582859721740354316618698873260908184742978552786555958020432652020699134647282882936950364158881897708750766296436697388216696558079400865523245722541287494687192195628825885713975406033933487343886096464769609427370762066808079201492442087491187954178625428259853036173980894984041061235760213550614599928397939446102253455632871437247396199535274950553819261859375181623365104642672513789000094560501661949606373919321367375959659535036638650238222172814428020181959707847781758780387020475469139408727413499825836338544813452420831390321536174600559180010597796595500606376528163251487310157331481359222898935608226771899976560223436372706287529173968181747157117714692944988982446559206392240503795598782773387489853500139307517155690009219601150523843386756840025204030856322466767887485211841284454052815465712126967781665107908390470767970041660473279704835959637769481743602804043091486242872596976069643272923835991434857269368851735898560843104973546353225489672699430931143031101992841395691129102213562028697842972121439681576137176198326326485504833563268088312341835188389363754849611956540356455080862878271030533499427187664923673760548470541117238061471427431117404969504948930719796707306245723804626783647000188595514159993951998156626013193637351611557890674253142983344792976971764156833505495640346914859748014009704761484389267559913700996783924581023009708001551914087421210090317452723207972157665710446668523643485848096606705747758794638273472548952107965825485665244759026956152751247443068825426974660738669095752810290287667808797584758560580782709821766589108921031207760070832247795897053015753850180251345911071283823503432831093845311861290129531978463610356397944368929186479579450509402865984717660280348261192241785220871733066251356959475662620351615218765086740588512536566068623897934880278610718915624315224465985691284552338533698209923655900172320411966117310494313925549820723252233534813738958137222625964689694307502024805206315086549813946575967608733548541511070931214409635062265537651043248093065843283415642284754580445037865419275588379175681015394220403870013344561608356331558058809463591659194290945056822415585552929136539170963331491651078400728527506745314426377024159428969033583324752387999389150704321057095040353628931631874843975878749775179838300611901592777337055161982697976669197745249718136401655210537744252091075903489410745305434745330636205333252225383640773837693496731135164777313834255496766840578250401457775840346194304527908951292481274593386287937945191592227621179716494542991690582187389432943192135348949005561558775745170535657392317349772471107132726092777001791710200723182316764044781918399995964528021549297627576247536959437523068376357338068872503233539149726987453262503334343725587459501685021147916371715577245841760013905133285510993166154975630556286690579310199670528413872030607697544945610278760763889110196708736385525754967043726465380919996159509564235868212160416166129387096036660782381492728278727751727016454021873661226090136394513741693839617739854680102007454826904096137381947174783898097037735516772516248338505165865187917803234026434485732591516935952910992941795674914031992462532394168713295096294544342646635259666339681219002396279575742188371208318851928507956543299073195637109304776562218555880799644799477494355478032621796097244311102834844213254367836506189717146521826576800182299774194220647289275080069226248992628981785383947283955719265578652787335732287951144777556567277114144163902969227204932685691325434826132803686391615534786713744730185547068143085258319806110576909304771675705586935539387337409212562183168431674670650619110700023462718124627386381227202652073174706118071777916683161911222714569001050102125248654633935007493953141511659071280250545557816741418112463997575801994198465557237135608056194906936209177077952554884301877225837914645335845824667481673882987502966992033050715061777279092479841127572444938996294438031501598494310660508331091416939523425914071908192003152429916204076587428873894910463072585953748129675790505515982251476389474486846912962752931291942005032755485963072300460721223531094334858384177519009284699369387906923537353300664614949102069519211123718925095931390787267145244592022909048352184360166910331455791618748480694330025386017330446018430190576217522988093743340281148029338580787255693002430978106921571176479529024844522695337103683293948777524042009878538466501241021506738473189568762841548106986021749719197014144309638255541457468791878512461499093261813971005892149163827817271398348300533131587129788851153950548523767532204317479053357440525117968527366956972309585176222942867354746985716281075203790155257953940842316672246384464476847093715232464734868945417745604757409112303759118050562159330478637118442092394549952068896211849890210159516401684468629574325098568931591149609060255410638007627185138334754363596903414208709429196514054717849617961268600031367751216793462201759056347902319149060866667056916182692087532086905562624952147530528483943837413563084910480215052469440439601500148208159247097756124844436586291978696051694476666475510578256670988919568903795029637530612914469920183152747418319110220037987786783867214061322039435119834751770471499053017979945381825897508610202525441223311579364106170126514653008087079519933179257402896775349450214235449787623167994599012411008323121772673689892310201775353453315592711304928149424837129918247968697485536904517113561829884921828630999566486777489214374165002011141046154982321660380805759936379956401504250199696035117789620541540570322293703994096589263726832725528283558545564585725575966490059037877440433275306562606405064882767680583320398221366878315711349381830995155589357202074444336465476565253931226634459121176993494125277265972509398806661201221019631700868717381533656327427889388560280599244254763432737578765606032259267956214977346866342025546961134255884415259572066056535057333478144415881899573268390729500464394840240215755754476339514892221664637742755218499335448174875917779596803699018882442744200780693085537092474474917456976866369922140770155620082077990712574839565806037539387802913818932841478391999878657941917796121131415476457210593863735966158261273250008293549533389478157731319160543872245741906432923841853714288108397098258405855845335756339667370342521127677913289369517697054802896971031087031115741535394090250614648938151557361718740600429205956796972681895884264007212330540940424210310502426508486381956239021374624708792155585445214069288618284857320307316585249597725678707877562347380002937772187387809026128780745904866073590330215193942482771930200570326872135746185683185652220319619461951755569385897369038267312481332515724707913872041123954919121486628689071790303299738355306319176674927086404569532798873672388267127971384347308005804919997899214241525609376252856023377278990105266065996579317165472009286374581168739278339905554677490224753350385236137192634145501356736678935628301355208957310237563661055086930568531929577991533126451423966368020701823210760755522327282066516835041758685762744574464288677362971062406615831949577182654070046913314215023840148798227795981802189079798723288346178365137317663494362880594383242194389145648984642655522550022957634002673871160189718854679233513007079396835369910259750101645282448273705293504013071031298795512272599396497537162413900913017914864907830705224363148729812454659463636324261804820260683901189146003593496467198995022603283581450525489018025885957198215351042543142485245694762224586920707736162894585528575378840657343883097581002920331444718161462327912084532565264002812148211437831916225220167543115729387184258345963531022599113646800307792080213386194230484543826913802336852822477807696129057903208555187009353070712067512384836944046700427547875405142434578519049194042350006492455391354701402377124551908129927348754946487745544202825759013767675310447564357241689159252417403317018076395435525076473841167070816660015393909999210521347678330218321964977255955522211419726336200535758309215983441865489110380665577531753104393457181717228979359185682165604653762469001772724432217595153414458370455848614227943319427925926128209819737614557209211827321664242344004252034167880417708072226816839009390816493162618130610204635563250317962466552920802732264575885471316917437204267615766325364646439527742092691621788674671416685373495059530132904689133957976606036618614459923783880671121379332726264141988838795593834731274544246510775738914176377262840311684938168950423547011328416962103473173691532020783970464515672816255278494758498067117710935968865110710490981877003030294454590820775537394378712215683415864261487823345912173648865536031609069656715849679543661589136382354948010812266858279681285356696149557477407648131455456662092376671422832283991318301830857221380559848056195579908519087699646695290569010165068006884171669435453251836702367674471745500242099402964761294881038937568463972801842137864122450078258982513080663712852842550569937309820410051872588940856889959210482557736380634916000606965648360645246058321283737720605688464150096668358606626188503193727667423597905019823549098730029150356629091636508249465016092735326905173884944026311727004156012230991605048659269672594856069461998458082406893514015349727660278926487685713214272059531646765515583957401190290511797000052278613749137613678349734652468203141912551150314084463366473565603419420292016157162207686369825642558262861677398742423046722369127919653751132164395607716745367904662510218790384483865545983376265289639161661287406884066760699508818199471566353341337251860776078959461762249456681212561428336815968245391945967232340534660047932320351096424175392776756135182445472735664666689510127387527695994898113484829991713043678897636461603112389617250829792552108674631466991544191599528642322217907078585502458527629103832614385659169043354495596260414069906038023775226655018321922570293742890194002183018288974568896358059131157515306943059839840962336262763853423350625500128686103143273068233371401093119523977116953668509976766081275498333135341141639170566113974211575126575935992979774172764149449299950528248582288051322345193752697277771843534266060616424045072075810868113334977647607867192810782529719717114492307529754498905884451070818133892851899099358620677392304218815304474415827973988804067274015345749611511554070340692955143641807874390591833448378995252695692374308064536181126542380146415604087135637605166475668645219743050572505499974842695028463370190496935136875335948374556989708769886474124126486707506175166243175099397033890738001753554158002100887492144969582326032033107655302824247360953134867169567245886871056810788577904779468008261287493569759577125991820161372970949216622742115498603602882363767028233670081620817595465421610228104810255218066662905190522314218383762693918975863038467180397512675410265225368595955200854177196718871199601282744337226588935553829758249243304409195036915548937996193091354702621007345434887639933228339242846531148302469723904305941390661120912243809530424643014387021556729823439646907374073568677831789530859425368662210644231510744485239880582989167922201532702555970080938356046762737649021735296630855763617525804235226029139023190350630491489824608271305126906070906574539055384609753458556245396198239339032140536798675935445693440956457174548668105450940196785571845422767928809370508789584884063247198461760038217105753481648669906620390545223246025358658864351363447212578667855689109240989610420369273246815948825996238852180002207815850534818519107329473573543112608956929821990480744218386241280288097674697030434679621262260379910321256048649725482862347276819567838329055218747045973024622184081719744502282150712329351722977385138460882156595916614621955975473372223821701519482593419294050146747399363940179858156175720270784631800362419324870061871597657696278580572790453893511333836875688748968959057053939247737795954051643182879767341379970106639748255689716891380704178010143895243958026057320875400381184612788747392228641592425210219111469036684343359707634847510069991535375600866541648815034219843998149270661949740528978026202759893366686864945913008240229665673347222071833738729894582368164287817179734944501815926368432746034392910134491891459770740068621616029174613341029952677618990248780751127065630742299630740239554699028195984573493580711831536427448202433187356913859895946949975557245752865985566899741444052011395619639083762417001093367452440587063924938174187136455787057404729275416265494710525511171161545917258417529332069521729333591368838836068369609098864505674165837629592694792144541463080511724082003628954681960708925074186838540631734540915081882678225947978824015282818363266501953344471810989047992745069002194929192897418415023019388248366386181399459571911498209159914599226216595463478771390365920141579582188253858814280766036480824172380172071430185421860398574371709450570891856344429318659344745674160494207562761439581128560936747915452641443786488171756891734822982139537224628462339800130452683583004389290833426996373831580869717073192122336441471499539689194694144480785881534503806229928802928669555915952169444250665289054837877195194607645175083649866964922089246993241136358079887897169307070930378542018857033247098169556510977662458745656976864119537334199934629469214732213299656220684488501971871642475931827197643399845245660694516396508404263408503378323621837203710697410947951086098067324251271472744154297652857822245702051936276233208745785397660090072381065697366325612895761285966033051764911758683234626884217287601981603178910078919380446642650527317686144497636915353418404336111478021521176557982170145242789031742025558069148622678560577753878581323588732417547293036244447206756071291163264811429853004433802306703662735677339699631254067776996475110024074058234116080380644434324667036731819339073112325893773421019350445530108272732128629070196475702709142023686393678290002849205775117105332118061292505276345907051805032968493061825550122800215302569397147427034497856113276261292826442124378850576407748737576143943394604366254817422408699995245609287162668009969902246828851461839535645148726352994495422158438718165258937623311774552829209309179104082052236246768644969667399460516316383342476713027801235355348122481024480573750788929636415018644168443907462403263049990290042520666774700558921093684891472863444874688026017744422925378208349736259365465931599237750389855680646521529204876714175734955136540295821525787383670534945298458685063565287720260858041460877629027966549577355680126760734854072876645826272785270134113063801465713404879194629294923344534221468996776147193323611411872790947485019670649449207425554729233484330484711509844464749557862659965468303583435310668485475948307689558323136039182170631161485788924703133374268134881128763811676502452135564588122300814531952076597156214925008464450418855045301856516508479088389140894654362270749133495223265700024976002009239252263836149157825742165528583666861219210055804585476970016693723010011455715107790983765547745462960820839363810891176488981543930389360269971869391166765635372599730488384426312669400739873514285456654934030317331254443276631364353617553998045158134076081362502129825634157252957656550024364366952147011964386385647841422378976965136790581061693302317098049691035386918041235295340585329564141191225804959613425775033948273073044991505066561862288937591500570858968061198919065193188855859125890305825240188753404897408736538923494670330084097556010311215267053694250640256959530368044218190519702680741697625771661939920590242313481469801039308568425210925783459134597620204382265169278630978860420206008512357579295101372711747503362376660633653352583484814399476667970010196844942798693586467472369576258069726126716823768908907536117690114209765490072077120956700258355345654558099479196071721142589449290308621999272385772465904553459875133451224031527154967385268261437191829406991062905097930010994473284216864679138569453124621285366974869130137233036084932314431763492123909891462048752648300970954179106464962955645688540849412393735318505054108472594321200912682118384780722174509003173075346008622113049905997102831701762495072098404992241544801166492877201581540103597687904530658099042079458028047028348210814135551994737071980511384116136786445580920408759623364111065558672117700354723080307003499787277660148659618224346979242414420313003065318874382323810844546728022919281327462505938205846052228848823191106926264771243567071558209840938570826604543372235356052167635223602945955582028489416014685617926729046293797672305003370933688176334482875815207599322650141741210637600001221525475985777107315032657371798143330313471751350117562567946809787049713951033093452217923793872565206514087514854355946621963122652853199399282554215151050792171231685976367305479935179128604513265581663499616349707893140008991203922436301422917935059973970924298293290774435757044260185348165242815051313830996307114186095591764846910049179580796395823519509794148718887022482774988395214533259280310267000635971583626005969381994181833831425936436137277091586536168061329059474816525592933460795012617401054001033020052108499772882521235890445767459009610440741274275671425069173534521592760828958450799569341009283720664364241199952661487737956503312855161892253397750411177465718356915407118836880494097941767749118412250661568739634433106699119064514649569531569296329897753448976935348348266957038713728406890912788862694747618268926952312573495698776563121106958169011259677626175450133490168733984036773191287175065732970541443275077408888803520823764061701590448726117436149901915341283858055096757165252421221948781522232836419221955461008918645300669047149954851503988250635873569948965851876788438504655246339754068593542898915332928503711648761366489787852134968683481025409581050518216208297467991379647992896797678925226697653949903915149320007863760824355826092563802530867258115919334039695094278356861141079741750021996531992379510713975985662364062703111747524700633027131100451932167888737761180105149294301516217826714055996138666678995204873588717773027151135382651316723260827882502129168211353869772325243024805377852648567747622273158462279673913957861494708362708495760451495855351838175483385739857104833402441734786401973216087289606476038336356384629485798154761775693601922418406604467024592479464128665565379246834014515894994384661556998472223831344647205582615029593545141441883300880338089267945719310582813567897940480630647643436113979597655993790377787770436594811281141595865149348287979117166833643088921678337000922905135534092688091336826066254877883096462134543064490826990561092076374099947387214738770868870110694794347671566174032584868065287021659193618968947172853801650588127479156487008561431960794567051001717556431604467104761414837594190643888806456260234563638182133027073245747559336203361943505398243110535958845602978363118025897668848209631121399547816847918642139816483697231373829982972920152111701049076223317903552747130347046861740885228250478614911814903189473089056071053103675948191484369334846592873347573009260366455351493686854680187444820357318634108954153933441141869501299476866189909865590844086570594566385309385824541706858560820769870291716449239114927772418992324625235824830245594990953055336827481391218453623376113334240892365841799111117278504631378030353784721663584854073743828653676075649722651755931526516313715680904982106701039553020669765869971635410303976508595441796604962971376663588688717737980972071452596903462258974545524760645124985048348768985773021328087227586569620096578806477886869167201469903450541216714253480347567734884908270365542006044234407185542640479445377400501658093167612373391402467538351289228602581834280384173676415421213506094381476597124705787483973870464857343961828442602717945148867516411691842084979900874412905858047458697322051048638912319326743675396733139207851416376545848288341545877145557282839174191524821842927636189290876433987551928124931508985454833597181001484798320455094310635918320339041983892028555192516920671495263156893074745717555105189196374320108054543457080070050942604257311444276655786728007084492005742232341845167110573829050695230548533791100024067002883460170039685233978301732328890020514309267658946058109700711412697167049351624852774369643836926270342342177211097274061034188647906289431736998016898754908952679564359762926134566182035447786224300791315418317427838282505822762344949038665228460508885930807286970525152933305030641104979613977637112947191655858705149997584468214198172226435894907471338462917177563104282411629932748880876148991749252231315485512615630814707056581508038638098340534630097637648170757953505100426951351753753837761706512410026542271621179356307812967200567081440654935235788368887478547537498505205768131621449959931405803268450865329417474777017226551456298666418161423054540250898104415599038985943679818969252783348370111982555534749416184845781586160903006111468533137818282757138008783533957108950406826079208250576552426943350941018181658258702334530469571571397964887275573682391693504913611629096908455760045213034997407764342863250066807840271604942654629234985814948272368269301483521106017168230171702311569570400567183043889887354058393091039803149653051274098231085794792497380227144575899706543969957672387976446574076375429858308857781160181457989589606624066711372544241517714747016626200853134059175970506123173113221806037050737854971687939907849649396540075803750332845461618190431330143560499469651305776856643417512026379929655155864888009692092310716749906418841625622247906462180501808322707677431076404680697596337583587230402509789027293601588725180627265473188946720859326171861445637568452259305269638607561147167586865073440944415414999667781910791173439336171309768280412018244219039308074828170658272182440666357779127392013550978278063047414259370326738860808390889511555164363305137943055880925323861370685520587467956135556761604989303297635854546425223320116466940521891017473055162696497979571107964037681765484826470858153312221873518489865374941505383083414831369210298226708945793274065816172885597493056517642240583334229532368513726963616982065471101215985413776368572937806178829813824009469732217925638958673909360074710046928163567202091535867425945444124451934267237427819769721068717925622812910912406583288500800286204093361219390492924690398429322416809444528433655698760019993600004368188259448377840584868791406975851873705229644848224946186556511665621999050563675947557886417330430848312942899993290248500070094691481615480147506247048183820439388511945561507367618939936860441191746638116111609880404611336190893291135134344722095933392185296587907527239790104226628258798911150767358111768361238412195053962438823535024954827041630132040023039017366129848761153951250616524820894224211850563604600474726801033650037536873385224484063212681469474182988391704110887924240535922773364306803687371354850137327189888896641833615285055000736172025804539370316591065959761730743583419050350388095541145495062815840700789839415169308770282017336760323604354320229253231707098300419776243777250125481847552999839515408073169914868389446603875963625618557708551702811188117997152662013404527394014080218834355448602248832136671278282704205124894019126023627437227517120471751009419008842536195173003820767537593163574845512081496102307495525497402747905157350140402560202827381482526759234689885683794969389557944980163974352459190728239455516882774501526712396620817449064531835349070017661283289438888685101448113971836586436080856958514550312605209542425577967402651249960153865566898026120013206904429997513329711606562575285375889095388064588536166372419161511393398345393723133555510589120762594264870103355795235123093178219695224325046095354453193202106110204030763093413214870725311017645598979033809056169574341778442952140691529510739009047437491118142211088535027899631427599718436887916393760856932683360712584309633101048055734924004603485322772369911797127924057566505329135554893033875137703789568592853669509513864435326355839534058212375458461328903236973302946366143890546451168634695853122112013099098832398019772615916620223916482592723846435187727430600022796295893598694782270757555123281118502977804205438936080762264821707489974905642435707344991025860247769535423065496572311419753142002453335063978502867804160617590648733284231092768075923692063790705742051047781084697617033816076831298344980107478296780192313590481011822660924249823763865806828901974831417456553583009923757949446501526964926907798774189888404383620673337278930249229711710803857528184644481099974202184573072988701247937499418830922491793479529291448538848806906391047193608142323765104764593288746718065973462968570375446237589021822206750741064532680404396925342787436041529815827151278354866662329072354017242764065238300634789963442767128048767954364846286091338538459432306195743143851291450771588073000712127301737236792078074231607543596081573628602894488134166971978932120075541420437186490293430210314415088680830200036258954265254816365531000230453922263506796437041879722985989203178595783783406751949586919946957064776499299734733000896634403763524836121745101681399331358234995764008564267662012815159712740697959737585978117172248837069185341803632154593428945481581337257974453940864283421414765572357256983924856883731068538544263132724042338586226315998369854231732041749047948704179864380397276591325712045953399509608218047586463791627050307893895522150275008398121188605828665396652375852881008503829651049274852614674197512559791568288886134509951990017608397534511098876363700943761180852496692668788052267447522432616397099414143018688185086229456231796386091122156613566468714011136173544732246365939609995689724058599420016300613620045423080630438656563022858641738092341171434548076072558325356757127407936112444278703887002946132265957922761712157150569579850244963657785124255373147070581457263501738554920833457055329297397493926077893164446045762418210983445213828398515103914386204802797138344925423395970531665511161885009988024576602547429419742335848490894427131230642631271929822549357932820904276065030245664453626349638355330082154615684033112122204645949537398821812701509600321772930410034950404250585183851958135181739737876399825598167421272453744592285186109994562240846457139312439592033357486776134280825454122246428346288629385700104255013707763454888594590650570299665674129295578042092202064077798985512850716145283055564329357545382214987731791829097042379844979721190806973219798905356887335379269143954963808359687416986439309593014805946893026387292482320353096460432366029739835565609213951988738838986584661463611226722877725976369471922769714871561812645681567174444530899258161415900740082622954985173917997624303737565607789152183362715557084172262982213764719587207049939259945690211243984735758462976546742169124122930110228330299534415003801788334736938316517864242795938908141558789100718423397740195893117384301188750851085629095748954730289092661323636217191455540938809499435501151257381964730605894993757360015090721063345117664776910132432311421509387540141504348708686930922675857978125190963435032483638795920885823341487497979042439931614871791861686625686015011937121191628426656192193882012447914619063294615813786631220920020583935330873305996877951221934334646800248850326937070848359293658921219149257425373401458448831011537967672269867186693202903695817175922325582798268502951101044237182217817393554504694671058343510589117919907998188233108307981976447146721324862964436770421707306769760508236630894715637402577368214669963799293331688259286284491074056328544013674423131060608681627922821562440663332955974716154553561132355920961841946451517502704659790951659866676624082705468738688715702777841935343727893672223631060274603466337835476142802556262823477329369307107005331303950223281841775355924119955809474945182726945240864777244539214281174412873867828702912944562396484811257494332262369800953675817699672546522278350328406451203771314015892370634451184434501154005741311550739623134871930661588752415496313779452138486025042279583249008367683325447568952850927317426738873298369150356197827161983634175763742543502649886256048083037627575855569013390125782524972516700127722665305558799986370597257427997816999084531884431857983908675130348800217819275263071727692397617416099614172057331881089304177431675903202122278685983548451669313144234867420469424390310186987521106841763588434565969045191700714277693318212196214493377151014997893035000110078195715422075154320673464545787752877262109669420189796652619710192723487297179054640628633077971274979380877758728307437267815587718214873611130927272219095679735207138740608700275888758429064984176207186234752963812636683003174977804350776812787549249618622121280197976407969470783400864479348622668005680750730596471926245319610758130049842454201292066279247933193283145167966288591895531789542494933077015410839027965274474058302612113966628919494796091048181465096678869515110409267616660796946150353156700094694441688607474876792921516559021885374656746803681635588255048322382863992251621974382580599036633105036384303162699986034574780232571504545608454423325532688405433976664285508670158878531784997570638261332346345823600726771625970728389247615785571554873042125912940547407259235289595692156673596169597136276571094707231404073693912357093372825103479402377263653586376595549227990261587082913344002410596543859686978244141828958458141850899071267700535445476330776255230604699222151289908271002519308933294690086610561191144157571872853826555705487354818005779513759583351463196200320957558811104667462687635650281734999550253287314849413478782400602273855281848461394619378053145133276350934117600901250001578393686989518965244870774680169531123033439517876404867760736592249001271829250293205180592613975268901678483976539310049730217156689841745217019911312181765674608266452568491137703410788535580478187506789862569019785836781429718493310661779038058452029543730036306563773568396030288846471585041291989554484398500695241381914294122745173074623641539065564560891399823356681969218586660527012113421826011788330952810263860072078413729244298579051682550073212896896568337056655133912529544628421604434784349761648047327088016444853502791838366771116186410240489889047779522776991335035972222696369833150137868789812479225416745060927115087212199429420233583852627006120698379906793383280644165431644347649538013032940422748884601630856419057324306085660760977907080174860538569769501080499694712290134154207113873161036701520503180943139448695829112035672630709537270125791961494628716924741575485603732499341709245463899304343293184900276640249627780426664924087325040602288019962921065422408923559014106700190746030374087189160622193296222093248677210977277152977958273330900411825813720889163261968461490742791600415922155383174736123144739513568538142094240264119611793692044216452118963026178786498190578085285003945397237602248775165462275515747307203171632739994785027435323498640766049500439179119516542929888848281118986757264016120097972861733695899749740246341719894729643345587288010922991979613374239596514957839183424342951942227406596947382247625792575159142289486438771765150093175437222842037927428068617260463479219444788275316629401193483415910932318289110612215119781315885673250202248556045345826710233659273903874133463918313646205808355755852202084649068682057353545013471568965113266023879430350267672095019605470528444625915013156035401390826628329469718557318807760852744525498946210137680156945099841569698938825443814522240710207643279789247594529491897570707612560730743064808195839652248075896271194037051580128348890208113903912526199423924802226305552553670297845704547098267343254213676114470585055808152704921676451186032862550202792746964170442165130766311155662450945013025019148814747537537682369094546234096063881959356984284831309427409120807311838764366567045891153104006779393381130380431128818073540206302140778101442270089368873896554552656666502793563202739596932679916956927719056334963723664274739649368845155832910163143409828778274781518314166060900498013642359803150871059014417684219790719960631277108549133931179922293823817123268160282680753468063282904023045233632708381280033224485301063795733537323483652055831473023090363448988713067212144890243020848163168199296554474733297311609796231576935215250434509958224134871361024184640524631841513993291633402442381067428442689178141122722434843559787612660069714615194964024997014304988350460627179898296278598540503122435481824717051026328038151831637291712131317688462668355960733618755254757370735260583347872509229641382615095501837769839516657670675461528001645123887904059565925016818879538842325158329696860773769901832977617613860282008970603924201464472503472580096677067065139724969887746205529930057320703692286995508743927782101496009017369470558292534123591910275037323364757234433131788760271529241087730106199309848333126435056936423355836243815801507622723561118212378127656833987921851350552969651751117822741791757312584657776372591759549873400723153727653493417591158410830467270168308271510811869612670437665762427054678777952367536662718771564719264714813745080721427563511547197495785370371688962610878028420447671335935033788057083216526171521327156830397717861658555670323401363825263608082438328073377262525066615557207235344466030660227081861241348484387349296595022734565764395846784174283956962992784783488686333078502987439223365562733364351201850362393454388153734911449419110251046762266309206643288299015954896358261597649120029586757153068397764100739463429523507317762570404098733775457954619839522462294415874865397033793255853567572947449101408901970534134076850476873611427533057600836447667635264198318302918373487730637888352513655637757202961896872681498853994554467418855921775285505700854579910743988897477106916555458569175126693488096678467959640349537216098598147698373735017561246314520864416243528950864987056551263763781233906939782933350121994474108097650700389827972258376668532302750689757157979468103217265685390170468632755963912990128104717157584380948396343040090747199505687734038476828537568274387605306025492314280151108101026139342152230382922911604243829236097971586579660037018581577768615569498457817643248343536787287266348757085501883872697981455028220766080802591706082058898024430742257053925651260187064891932306085823412867689062878476619097057405450227759363044385797313685654317544998906316466374115025048203657231437616918862099571285997642392899822897612606879661282958839064526308618974295909342402293650863316718559158282760402741080781739677756452499835012698332976249800835967621721514824117766410424750287913765338042760690266852501617592703941873375811698076958482987335474471663125334199827835843436839392181313722231928813868321748442396321641042174091818602813587197968442887154956712730036870898266680338993328873341634683469108823005826892668341441111037516953965062681968714800890723336745248507223279792158442724952654393132119675263682152874846831410263682255085988809322332157034783418157003205720521324319453200202196087938534313924677776706051855320654040306050524702315189457800881538839772693115514709412047133516467140397631011709261383690380508404632897873226982937351535603324707639603048419881324174770825862888294094586251588359115374690206432873422640659897648807867194971990441399475763079182700246888933279222870962785760764908553379899796334951972847327430726236329665940665342359517999369789290922828392078415953572320037720775860697244953434790765972497776614408627955483419902784862777614628534144935153776131104333664265267969871930554176718014698720639899547920994791345994827202060114339809192397149887748958756974369332962681087968760528425448943073243287342707050105699106819344528670533790421247544855162104047014387348392688654719852114355454076033733146532927643716017669550621541551115791540729324009777419586351593095896957343279312575882342067585461971694663028751891928842301677533129190460069251884616356223867815708145527846187409764805484200812502117342158291711427592026025915676914212642177885800183814927484891334095976840584921258645995618457832175594109311193671835084745760015653487512332386412904027917870218484373074420606399884636059953338408353493329927720710939096051990894498050154536569716931034471523955536138540069936255731508372336443126735410279912313102938176869688273841558103750899272264878991531416931112220992957630340517523577107519249889441068625188178293481670875405938377204524193992317190346225715773823384921305157254521230368500075628499459515339051223362520828443074732471747450105650119529445105771411298823436062153621462582933350377727764802387716927862371782505788603721306308517687744153453763872069112812166915116188342959524271362077968239720523774746097335568937279015605092886539319581353465224713983265849061716067834928876319985423177530189128949804535405260319544786362742782785475701661390213963511049805927198262377603819657619856893646265340443515775890382587071291703319518133776924493770199757613334741038173543085086156998128192266233312371389701322674587246010308173071474592381480665777963104177812321001119942364106040431130425905702284228901303416131499146292819052178187397051588725290556342503245097316601903398401651184346196237090680650025537700834127795090918389973534267548727450317856694143147039489731836816691184938682334259618363516313194785732819559815329630176238608485006622434076687372659354040824450051513857592505356588108045406300569491681895851885384642769183678918381260524356767778739528487964126722141798849274080799132316873614822274597424747693573817892762108697175546796360701162857037873141561015330690347876975604785245713179630410134415914566553830547628283272601822907843928946708966906972018740583796034985681420851261976137480721990327910759069475136807342745771781478071263347493136000499105602534459277312145435588592740214600280941402464338217854132029307215896573918381576799992178538555823862668645040949636104989524366083239345409031950182852612302593445740831864737034927523680732921043123919187493998660728092957484963607271863737484631354645192233538636122767370322547168059874766682202181705504836658507156323216785660613908346690500616208670729343419531229778666799879108357249627617414754234686003717853697395667605561310646215852250659369601742824918643087537745238111999512839536597342725077149993608398896357784655277498548706465393569569248462757710788955848850097545022175628264083818323550332226549723084323417628620502768580544705310798735410907320995859877529494701116911153131826424779513106262336993088138633855085738360503371208622188207644602977384393537279409681228790076898944427335061885056782902649684207454221843603578866597949488955979860108982317560396780564104268948495700773934122186763874017196280055843782521751323765916971602327005146287624359590254585870638253282127829017270356209536278951038097113121473097407741882438241060078539022570719738705851113658379586130797560601259093150521828465366119892118154478567058200724694974567037824299347296136087038768562769323165982630227056344034706749158522185057698680535536377703730946390526047600524449751682291316132412809550233826407246404126074104123174789114075046627730938925940603310998286876582014423106944302276295324411111397019010995236968050917439017786070338527112442409573185152140827072947652647375549362957295297485181970667004654151313380778632972751763075162296442036856640431462091168406947210596813416309331333175275108391536945855359560562754146845923716436436976558757390665090399824241105564000586449569989548610789659941877497973563820179044494070968110634937177098096142000905356154798358815942895573017443689798927799085101916240548646116848426665549929520775676493576248688607695993403666549635581248145653296601199249664817866180412402602418467715912563083698477745289134569806286448783761311274632514117674480563393747883243003649722742512059424412722134628928043148804789933107009927910157390095791932509522245520833677374627523793536148013479170926064173382375991025190688002062951489700046504155743450684694726366532178913663844521057683726935891207466018602789555576065599056674339843853426332405822425388971408774605021594326090901382089773756309841228884167673610258387656491791240533083381428043041426362088768940254423473856201028737899432387485500313422149805673806586137669559545854719140917251002445370620946964045088363659474000025109913196517635129555708824738189798754645281434320571424815682784506151085416291987590508252267842107915981638132738366591042342570144633386520881158438387280354196953111093194137708365356071920127920621667780777226296649803025295034176474880257525648360302078321918361915399734066091507957305173955033893631021537275645514303453797375048803803522778221292962618738495859268625719414222998372184583527999566272969281093944807331320858214421650688136215292085413025588005433183480049041090273281638736114734020263440957608395848729048694212372578778756767100447291069663188905505213463103243394155209854254166447718638120525426888934177248976571705525564715391168744168452490618070425381677771067422301372848999871189503494156560420410687438571592467282105166181273789528838954510870305833435452660248367828101590862257619693892677076459402708164931553162084168034795048322419744300937718327267503541882448746270171400271135489982993082287600334493838782221798441633173874274165143883400364387418981761140709704603881789457191606492225032058832703892826881722374488773435141706301063996985063247277035740753512792316268652495692987021494148196845873800319585223419056932778885398327528932127722195660044205761447209282831809207891154103594036658152981323605022314726063041997899112389480651217657652160929220387917418167018963962628155037565670515967118544248015564902792668155420448346592552427604065913994525830296051373832010711438298676366724025142933329744976942777849414676747843572727514421148524737141130220381926620443312108344910553945989426049152432630473992496543577850529203412582527166221269925637503385779494498942526284509165647628718478208988385871287475197508102341999189529335300594483050398234774058009290105334405113264441484542652982468721274004361128869589183780966240788116978005796317566004645116805272991454302075660988960188938309393662283915037865778155208959319788392241794765704180648144808456365768095114863873107256306322869271296197458698709288366113365164265818888844793778201619526387996254947783524512856113180327456343290016699266016201059371843223540752957386208865157541203982579133925348522214930186233200128468736741185052040665861605504104453869034035912015825030139399409594957675474416214140582473689142041081608690999534564490415200464109596325553473267136442663315444494222821083687757174951695499764335047853324052365814874384320207243845220142031690131180819340924233458841066984344635480939469986861894584131236369514344543688500948832470299935502324033406541570914771107378950651720278624490383553097138106932463833408693339685030615640277602299021924381294844573245570072175831391086364648017583459858303293414113204871971795707191562966135271409697053828847911654363634979916609602619058785037530910167540460335303235504540064564302395766319966286378409598331899896450932348729675137149213779392241089219258767842333835441109251800967563043266075429524135198927349522047404526048337040764612686962139371139033874045123620119633855753458659764823571353653427922306541759587437464807769754379183889051386594512749411431484544503593973300569266020971250397438353882236880722243523926122009631796464709662021666378026872146093851734214158183713227612385483861614546211124855691151800844143771509176490378187015142866884789290001420373919674102400410909641414879424468819418344697184147129881911343065283800344929962485520430397139933975125435963487391515353246289050272474876791548011627915470560055906596741889564830921158586020585527590921409504733141741989730950832435208894213981255863975432249513977434355949311624526198686639644689358392926869566836746961124822833470669896135330045450520078480412133049663998255441869261684972256275034068294100595162469430419814873124161102987450969956171799963700338195619358615138022057759347089847799161736150449148638850454725761316506949300481296227928652739182614632058248882235185123848312622833395495569243596841498305952975857866615300137995506401540429225142520958329757070259736548176150088953922764598633475927493305558584030090403802923925939457144416792591946291644330063603175211442098367650487230290444540279734483651353039331156224344927031753128450608666048726711154458720432389732838047202593146030888379660232265496556506317978724753171490728439537233186050286020172336087563688335392916829256504122970717947837934199550849459032735280179879968181291736908692275994970928793293907294321365198717604205626977090260754552001519674990602787852561712912973613515756697071303465233442550967659875711876195945702527825356153507851267740499715629662445577199789669880651964844148679793762259573576273676353343639495776417397377175758037655637407086070117794255826250124263149543863177176558332712572190910529576330292925122220014482406355283834924790554115566901982176354056472852427889528760989617387547220410913560783416698068548707186934383393538546123023011101757981156208147058385025559917333050969432875530827564730805384492259474980711259691687813382233348499748624516437450095561944618974060217134573155241733129899421399531292755168016916778223556409324368334300376083026507252453256473410014271156086392693775764185267506988011481003277386397595279584367002555872547512541419804849352890171579418303188914762128000095364668901278410084956921824315585756636115123474732143694705243499659128084772141791359206228713955860244430398626483148533934534430598692953576559590770401851075638250453888791394813731415856797641035963168058491892359810699230145732818932818745560444195455484641304629942631803499885596382870472273315925766811854924306973080008771188181765415136245466171309109394352262931484378345257794968061950892842787923576434505402296935013582874180985372362635981531763332638008069031876759850456430724723481636559082072292259119257882207868335260894223015833467523378202137833270964087729263117013434762467251935813137465065745857863937617503615534177540598111935958087378158009731098379595704774028866506780492734994549568903636493608643138611220513271413101824777340060190371874203701136784512322405235577028345254549662799440506928180265041982515027982510702800310854183425886533644366084413980989492908469664779293096719188125406658658766793785969281188500659732243546011210604675482650675486412568943195419055824022865060027449895311952579244304324073224471277858347457891953080557255962767512768935106343346093689709236486871204727379344238511961436355273131712039390751700339446820129079931446381707716602800949085324199865406647041921941473354945587093398177637207171339657648690048008796042200164493785917501549512458680532469472651221845036301571807261524364580108203321375076705864639907525185659333945855190100423099823170843739836361299396231511866192411232923903064548197856632907533371539421066156843163119957751086224526986062130759799104780752429466420946636986679257984933898518115605153751978971163597488856918364580966971110080486972807706902092161083542714627707121989851981792498929557777374323433601486008375499888252024537391335124175184771053079272175089350356881451297562353476574110925267714696235651860125259435498473019161456023098287220695431845378946178923977216419902086045643935545729382705911716366615431918840836404328760376426102143349567974335744909004737220463688130540716940233922706063696037697292110432883207293656242022023038896187449706519527091916960037863247743189371718398098180184202844205253357309501525660436516463884182847655020762408076211313772188860222912637542179549590968662340381562996472087215099992177482263497425108455813998472856050617745135413823112413707642491987688497608392969523974823753269436290842656680858129876889635106153462374591599190463275471725096062995298500944630734603008575747693695157868624815849258067277048068910236357444625901713886235011797353257303617486539741520983499974800627989502688802939879888191090420468000483943244586795586991093470030070500495753670991468352309099761624809913308016744084606645299803978897459417769749914942498973022590440228692340300813485954488404634615286730916097515265933526182736142113313828263861630587009539040033944640832357447404165205220963916889496579471974902171491090242036188530629782712759668713642697207727402631443413324940817948302080338358374602827707308119571439389736013281736762064409238731918844076719114650362032884531094083183054417642669417919381613589554114072953439571988588459465506042483993931266699874549988585208680246209891325903653867596684327304192549571437639693133685636588825824980264746432156987128324550022191856853410534256997917200888403366899940595109828758267432798031672951093498593314610762911402355206387619762925013837757932157398379984698655181569628588011986865773250462255301964235638547766953296386263130538305649104733373334768334920467271305363596343825074269145673437911965078913768252591679262724078319703471351298612821599704350674104596502646824064115924719190392893915564069243948684034323441346983615325389332331610536521080166816937676152506072848179808905821342452162200374105289713426863431592123782896863661137799542330275995333090979732882240642931164780892340541377103851008264918603492078199705075261227543875779787604578958980896418308345432191928475811760422987551186635453112591910715367180187326664098437894901628613391876092586788660831183141954619905925438011844573610285726367126945887168405367785436090874046564338064935899036032342519710855547390095520492770145037079556678062386855074841123347904673619847779808191983274897048093545368437137046901276788045898164990102398103217730514427575719648108874177882741191601995240867815739163577723336437902988901638485482809238858566722054482300740553458899653104428713653116066681966076291183591834459592027764227627551593664080783350637287904763866166507985635293378672108894964416052200420707580012046047436349720564578805315985990175261422323225370490061017245952843747108606052348762312141907005275072483765842492705849747655238922512271416624927272656777943719988567086067484880113500441763202445850499897353575992444361162139840987754296259835458426342221303887471790496326407972548317639380317550927947573884072927060363879209380136684145661037703203853986856101448178724083753372312097778152485232910844941189120797566024933808258180848178672900516572056527868023250345986798007523991496214803033397053955303918218469746667095481753233084517324314703764022967016003480347341850551704495147865399013384858749589552157335723006008983079517939475239466089584604742901633546561937661560660567139622068735119417230796665308536549327404264866507855012675171270298835466219854091236214543910712192970552197791745422105786884307770305399788396577085232561000465009929885867537957083961843160252795901530947247180384043866648273182296222108935651788764918001694697695223779958359752905830650587079656720243299252224593425953824243980904702981689921937615616436293313538062661709639943262368416165718257972155641874378017225268543886191447452369451232463236056818892883154064457909664937917568191673304960155438642741018126439279450860768436656868738545021054461427565232093737184644705714676937567434388000676516984297748761368882913931724971876300987667088617673752334705762026000281416781203367639717562345579703004098838331646850833959207455182797682066545530951134652200699335901733990418524974148904445207632930757401740775396347949075862329859254768169279147519716882950854792550537542701909302554883412638170669848252981728034364731800635253402303970604427455218772143423080218187799384851604114853644078270323214919589583065095494310119222215910708409822362483886112941562495552399741307239943485436056146585133377190299202187537504175787612794721837053397224512695134247190989173596371276319486465519923180791996005158899527894388452776168529934735446597215697674021523914961355040829588355416605032028053245076297694805611224249489859055646327151955057203877464476618554775164643789663464572555575591781115859239033484556199814033257055286925426132172487361855224812791767533491597499050359877679196560820337715122478020235010683404615357973668077968079220944981308766053715855251254230108732526606376929453253384137459289710195124089523368723334957931915230327409054759313318692154940062520689085603220050329827327911762749348674254806741710107181139406867748645644347770137594996337386907037608909641094910847928342585660698828188711366089512521005144082668654545386438066961920565209986445588731217901682638780097077215599292796632702210040702379168026438983915259181548255168165923283562877276147270851505802354799498545008889129233876865571882582991522657814014988201553012939563064902244472286483967718092436640151555299664856971424166505566312267480768034722667329409550794155585177223804428624118109010524054173040159118640384297611115389954850174342935056583250722854546920835441787951945676113747983188818596348530218690597707105937916241477827089470394153828779891811089670938327020243585510146883191835001691982545455940404054907952685508179381084259533529212661906685580062633414474117406701188804293672321652596085520370340553257151859303647149576270791946865394055814162066994747957703022902286554246775420414604638053126053377661039947467929148015743115374835876448504698009586079001327005320140589458874496863718269768356914504956758891261280783413518352126799999325214156100675105616573504307098524427299339481707097413950976954727339821464887913197429052882918358739720831323202021286594836351532588665187554035512013364022995088660353453195122719793727278320115293724924409915996334920228183186943920105524876769370698768801507782387458444807031737775523767838427137432207219792089638039263069563314821150733823877495348462519703832409961546102841502243854691662619264093477483581423339353413835024062917866944212491079393762846273181497463204023468156599666613510788727625016063844960782289787841593852343379737257551491609601392774378520775748352003374376889519291046810765400155638208424053530289599224615897650214382324713424783624673030341116874672172382265639312444880127274781988497463672385235678696477550922913033992353555461396812118332207737132058871823491616279710834239689656606859436639672754022614960236772451406796382492858888740696414700585636069837536361911211947475043042983415254682065025320449995488958376564392238049606110896581464004086661494339002772860345721560350173831285305388767139409129081323995514770063754701842501995825101668912998702534976635832129213701183427553780445306586489520324206699341214058430806094820884980081952666453772493080854798845079597489876087656712499843499288718959086997187497178397614745445251811896584862726202717387227246762250013033718069217416108668206837364249661135865860855758170598914063569275729148151265770808271334782964676030830345395082862593047269631952508301236315332808519564197743377818808324974932953480414040949659041180270337653986504784258928180120021591617462672409606942833836266049793918736048466095913502119629980328647189172677930712114300073296798290640202371266544437166434502977092401364660928793794128870699006948978384607044757207128600842363721642435798393693962781055554414693945155196216665868913460145922967510633796553827028891082486739195687626874822712215754949783672577873348199837791644183594792579254514984262005351795751533401204623113617208245430495563495700344017997489688794005821734845792586117401148058951885287368956192242176793831311974724912016789761673626275507074083253328050672156429778417990540427857871509512133857222733521254144443027570316757180384188325953873037414687673594162168936726904597227780122175492188941819217024378936227065089910356531045848780241366289293192055456251933782040166626030832160305944521364378457342250520895176410592090514275959940513820714440054416881293443930150083832810368611495017422973431685833973995201220050980960963596859677965145530462126658125127005081856533246499083744769309990168472095119234197758960303083472564721493589765382356681846832009706843911937670832293933587660079133635513034710657782751878525708704988852666565401820550912682666732281660330753487428190763509394580240201660759691421926851836617196706804049825035851222503669197825938548621841073420520629848223246809221643741356092832235738114599729098200801998876642390696919511931919086058324951322067392074058162264979175371648090953709987386727617574551388408284999924396113829355528961568380796592186752701992625802116146521618256532731559176173371094511154537295818367177770519657720349655609722886944564457576866591291339242551350737451914320825288004898674323694021381709405684839835008313355232601816674900062825033223381399944497819569024914219746007720614171314833081216069302275608106918657280987765590137076117737368142983261525864701719165672627479974637171008332906283806640222191649060592257095434399217134807287825395620344915830643224288051540605344246879708346640436687015131109000759866559239163072578904587245674749101044023773035737646845004423707529080284405810487557257796847319179201056933649901849219877264900359793867263789453236090723418253858717849272860548430450013277869606097792819297595239247346461907783516864198515979405317788585167432791199135850860147851477154899492091102834820317697510396649922567015204928216273998201126928073443017235546150493498755430026635453251798605482507350624721099895245967878501052418545018702777751152761104910931958673452503635073849044966019710272593272206590826522467770891570085651619389090571411184812536274275437236016216894524287347251276948617384014414238297719549135729974614673595938863851640072760176669355726642950261701179430957583660310054947677275098186278926892974581467936796586178357083796370354452982351230876938542165982149317849491393908363218458472504728347601701018765510149679758288476006358137263074716140603530186645412823843214199649751188956019428624584727351726239035511134891375711432806127660936815708418672494941657496009364676845116902816288410329811670958945177914359455314193660063831179142459084761505469695594839502035760900326036750076236552322401321300344668977919976566871003011575316692644532106923024487354837751904419344127153510960209363622450631376391684994904128493596248947396687627947702618241641254433773368072313641154394503690369050502843657800614797788820505374573669560454927952816673552563886482591615608455117172644989271481993903383178356268129432422788241747777917998266916114010990180272649060982496272420516715615410031980940961188626345794668981875672986379622265174743699837357379170448004810325848127219926618695619991301411425205323630331029401715220210756861759585747796756697688473889408961976165341718111429289667063790842130797646195166574317384448746476829312170561483113882926611397615115302213566222339176299791267445472209328498875725923093152308650128962792724276795625454532609562955188564188364719073810630979028949603076214551653373176243285223517397257439053595869571958688623698981868228493565803871472657543541185734587208775853325051014755129269601266493829966178963481464042306321888797869604570715818828818910666273340861181086646469068651600544968417734451142858009532877425154166028181607509196721990503676584109557284139766032315221965650715111799188039399614510033345784719331009304776185695874303388463754002987677237163833513753102887244250675216195636292072816174454188417912644612291103140007714660924826941034275576843659509285943274232547047962586341402192007140017764734994418566111832296794325656060147758477716213987359281182564009580537030098950367775891369038696274439519949533034988257613907326386719261532400512184144480566358006233903005193556516704024310981792990594531167470300547800328455095689605827012138727661950556243211388551873217880173640988074955430886691284802787866248646166128199406860526749037652871406536419808554503630408147293908726256962525201387630769368518194519716638408341800976354167330737391385661386258428235236076035774030275153521944502295717380948178287382665782290378546144246046033567578734122502504792992085840191007114445687968050616179700982909704317594206254846981017557664097304035626206445183515219576744197177906643386606643698356200288614856680861112499348454228808661289345070590507414079866338908860112864555000585870511208040356202810432722164066491832446152345410451384017953531543785799124403744961021795475046739763072529350543282834456638977796103335656278653522235333708761706677930690170442795121120647501919724309624575015037277944384525842419650737894038167681791908564108757254017454726143106852649992343151672861977715757975319172422965795065761991870786770212458498189376479966342740045293901524364900534089934202210890161815960113162447911966451653370297904695194360652329779136573364656791558598090945821085304571676561288289601345057942828766752439179976320821147789509416808073926672075389456484387819011482176270767070714829242982774606177330549827971504625135188697902290987883105556093970835747101529048006198995244682601254379356318193633733229271765891966925785355614553201775860551769809407428613610937812475856786282255855783447947516811072863438181310904230897572545559019284413798525460671139959288886776193638655408007362675622880340546931799568114029632398346597078398929271903682828005809854778752873199049501454861740661285296779672492873310205630967689272007231936887426782311838221533960569740733935306929381132432370657951990492001037022362684432821899672007569720608118433058385358252383878938272195104400273334366822499537569898259014721596387916647315677478341956515863709001474611092919779282840849338367028735547643861781027130253838921457286920805359782616828102616485480948904881745963374783977049335682005252946844473571246203029451293572999457521762337468172552694084621842299527497656389457688153782542830854652124481663313844367144497417015161024034391806462781531183246595303118127308703964693680797990628160321355854799258573368998725014544370605139334605155547409078759214697563846328359022199891982359647721056359095466491826468561231231802325353401824995476680791536787599786040750195875710787118400752605743449400896510975551043750400654916396782349870330904552377007345903577189042118705497342661412514496043416835482093525374546884072314291489317674906702110814713675502468962129200220734029563584946877460683335678758749229332806904594463237615656602916885363289248318941581219457268134349762601259100431208947581027637937199252155797320213756736446338709148989014537857175866468464023199108978657893948206455092458693303663289289331195405127766888758078948616983786995049240862024221517716011667441904416612628745169259989367840755020770084919376539838807584569427339362721808293163646567501213885938281486677336458570554921114586008513145422245059314195638816203326346761887674289561915691831895859197831596348171182526335515734510574910996897752615325584233934075245625649580123612418683940541484546946358800053720636433801739858206842171072189520454985333194867151455321360332554939499347164456020795100043306909974838337160570611368855222293708267189950910936513625744892588210057846621715819272977932024521393355053959841285763324118691407079406271287111357188596525914002836355207659700757712663598431883097258887853865380323365160164307049429905673240448282219450359371069790382569158905981344943552652195789967365113831540588302311867702942803950708560195861769315881760307302816233361664427956088418241578937437745361620127215330551337662866718324678938003831392431694987690767875619769737450306130851092257308932043210952040287774195082078147292804233820341130898100990826126980487457123821806633631517991052698711260241142471932993186636007183667547838338175798142603197002910150116808034522059692345043626727284957049295814605248974550868515130308219193579249509101103234267123212120626857960877257181117251383302803504706175330555610072452109850705561937573747196190242913217770491890898799794987885569528620679394305364950470144933204534485779727044646478744974455700514446811235802803673620609413466014075924479589986477752582846652508168437434644773059319037752973154103154938693045246671936796176212825847621555877639962898271351549655918535886958497036764823325257916069321762370005243441581257844958177081905037182100627141890130848216396166863061025113810211515706273786687333044884206277808921131424062303897839274561595832643233471428455166885926676406349089717487123550999523397349535592211841024923058982366309403327061585616221461635529316330452562707532006356524866167166494388596077529579778480917098138159872084070461071321469065651804249858682241955798300164010246518810550730717234846915961310562984006667352849772041216773404716507728061201549024290523589773563763635800079277077214586871087924818441264338130388225187155104000224863898947731408067202386650724720647946480919613418998327866229023882300300904352216497324168911832090163114193867550984449941657642360196870788316323070036638343669731822620500649757823352047276717979098065008497956889649977383827161261790111053613891879151437842288040223930888992447279885480818179894967743996536815707590842686651333147781161091644920481634697457211711614938812860906867569352510035494816940446016124961465675301501379835860400695765024467936074587573967867264452122184126389635018344060833300630355275370722175282118279840308267532148669076918049158571174571691541718088609321530457633281030806749254601106422980972682345033838786911804357631740351964622602820645203477383496917772044321569608633879758793609950489446815862093110817815818277860651144229693767908698199877198076738599752664924390591987072381891046996665696423875434678109773467879022813538392346041329815333605258978251271241161096823022140217243220883433523780237755675021513301035914165109755652445532281403284761591813262528342382442604954314841853236460799787834824668359443428085182450010229198408901013188499648947441190800083151362726618128623510431026279021811804673893796882787946081777882816509446741443254583098928044311031098639444791388004717998175472838506826031676658980447529759013860053836125685343474685746397289610069132682779442586847945072179009378436913095378858317847673811569852472990097259707903279163185385539626447140538149704942261015206440033155040163784628534524486571041149410562693577137183160436933743494163393390305403442946315146516087008122132598891760172438128399627339873769362571745247279569724928608334300228177323826561485868448924312269353596305737620471482292938131599277137150713961046776642739319612966172528783217345445472430838615938430653553644159474244393553691422357608165766849489490639861471708815150342952275749148336280111810480599435380475999069063611479674347668115600425776382239563345943267046861829032064753761386685413467030419968280517760112239804564688796222156885801649949109467578136965296630405148751791711120611992121083682227681964098937532279387452946024548925762313395831700903570029334768564710995911787017692117873671729765876340731911425713953079152909602593176837010346042675689001089823995525996871353550993402164365270135715970969187845152834244486196471402321385900677359567990294900449683504615586636975745486841162807076249113266473397015225497911975538809490109158027168768512608421748104450099088178885029997082164702017468428728097004542135004886614166763902380904006254818408101194393177979433162810727874954945567780821532383624990682087746560087289148224446816654842904852210377370585024660572642284363326351095009354899089843511628314298069217313436915115442501211952919318526152049664315316582958732341853893231785816179369459574275911539047408985085789204293068308047096558277702093238188699518462083859909897119356339895279239377575539358289179979750630584610524447844920486980930801342757968695881168433929696199068533719882901627488211427477362451572457562642946537265633358441353840484310323386298418540618881515680774257832189076193100825810123940486881059627084023076633984061572009022460972120191930710005288753657166141247248536229634277720615476551001838774685862350997718371221095501584287516664790694395243539180111700845242359414457631469326584643517521007404395274821576672577776605326240220965069345014397637189781477860918568127147495719770937375794586365736068489978903587813216035612733367137068018004181630295061376458013001887492549812553327930350320381600945773899214908795348196744297291023898637795214655802696080248610469868510350444175642175383429689872709661221486291501888749433526004854924962041091661973460817804188083076393453931222162141484611368038333872537172476902284708289602204119072538152284412091902994493953291089644930205746009929965101029845993125346644434166456369511289755828410433073324541391557459095755498920019517108467525491168561632132114061821382458388938419244622371649992417635881415980517249662277635858757635107382015254352287152702045121530194148015676717816521303835973448291189611491824357137065429275247853066090353503441828874599100945972852953922355818289835300802133691135760232492451974894918492138184535628961430921844456922557939083395473779510269439770081480865719497650643073563674997819057862410175080629758807336166951406558614248750873913726500448503995993729464813975753118050742105635907265135642671519823640979954504081222226627854634884496119535287512136139211492017752041434260670693361486800147629394292963763545559875239354203095329424820719456550045649112243814187452695705007563143257026703509997166005402908424067077738481312537362355002889711184080031356680206257659019834166275602731651636412242613299742377180026644444561910588369474088953224057470723008476541805660398657166876558970184921078099456968017981317724590913550436543368348204405961276788206675639309772476358613906440676560337670675907560442811496229034078506558469662011919460612235597987815762020276262665899036841821337507153989734480710820337130236807289017005354092674943935815211834772596297209162714735770306806265083488793922402123803154906445879411985722463233451233268165305522058650858832897001389849057282390904530601484210658913654195093431703820815102669255398025468294483952181181993583253919119473117353015284347336913045346199412282021136011528599418391476208433222989725998053575276200678978446042307267804622009055802770022281722122518731848731739218538265655711341475103894264469302855902312265418502883797819368138675110648091629732777493441114695353874968741327087883388827536545864543696820621349457815983431930624877835464066023272041674033999505118594463910912057820283661922258157637625207727179751827472650836677775284735915542938003304785558790285641897387678935842718345346813355059295530670669795024231757227740545454157008052143263408484124728497042436009023243097181369547365353236314542459236586016756355854923793905788763687018119154993091614939441130980815891863673967780735655566379172431080230783412448420895790391685884432347877365325076606498176334746830100661297435431994113793936658281830549037291400839402548934639740358726743821607504929840249022403330807170790229485833700278426559654640659140280226269419930341584536925518633268817956394002153882605630370364825691377130964638858367771223641897157882344326082886698128324739582132138361474692663169637214668911174646444854536304854992729230286068966196957452124840725561815583354077307905972619103495554365933808607688671539295458885221119143437031042022947352548459432587920387084068161727872745288086935189657489733518118845157194959712873992071164630177823204420822273533816036187973463907563682662791979093747322401560638246248249380851258959984378559812500487993987844170842810013246667801920733801229867296042072952157359884157057108179383424135594580343902281781003660462996286661055310993348854987966468249462960571757560460091935990880703209323586680998173173863792277605011894338971349755739093255670524594667776669886763934694872197612445715663369023831107420568094511867692360274333175286714839058273380093488179039919329104968688108489218649594022410142028522436258184417356094066998435705433491293195769533998722883811925401343999996839174852208598970515311593988281679534661824906032805604010329304987976867706786753273670228369191766777436758764300417535691876337199102992919958728726956692820382881933298067323869377845511415162574187629672347697796328757288734319200148529525199388743223960463214956333272742719660745405652175952184148682918254637688009094425044717176371334083683720023056968155423783138729235928766316676871719039668575006064522650850503500216101415865147949411510313191962302309726609974762970104257267926116442026941586984407654763101677342376468822560258844565406029739167232636653923844783448395764351334649966962508706056702530625657877179714054390093926205688123313383512397513832721528716491472068263931293112905308348446231076916246153072374761605191140862245725544270973531931768418341416317255592221872367460726224145866628914367074002756864426455100049761944597535560228637326515160349618629907567580475211317644534864620038051276895587807045585742587922053977678540886842489413209312865726011018677083548223917600872885958000609735153223610125976802763096431723686429136215065567136921876886231228998860693003685251194271416289967496530592336422966997051867139595001285008902839941468616588296233757141856780781679167988178429059782504245281629593029618648178007107317253200523300598626724156514071316379831005065719529572611255041647432469591703117343637546421229070138292485568377772754827566815137480173388856048097652009641513767363319952137502991301776499026782969758658576420670975433080756363537446173025802651409886860462698990400233443760514334793721081115953841233523067954038300336327173962777208199915842548366521638264233652648057311581756149083391628136879374848837138608819173291644324556446002157409242333143023288784331342874462231487701349737467727482483326486261642868261586258854819901232457068303837662882298042796219836156810483067261948304002262422466787519359811917310773066842071578067019499055885336820111017071273534455117867867592025310581893746539684412946328075209174344639801396707036754960491443049965339661182603269766157313509569005226791628484625186076111461593589066982529598545761877968736368551696205594256499537977103348354808534916317062142569984217947225583435592143794108004691144705616380424632251747092294419729537646962691134864163360452839012739980228242211327181327129947827669845970047358907020423980383789302741345393789817956326565847031587404103436340027208598864241760948351234926041051052246815340440114440054287115455847083263967018978208373988113074041382515536653607919254068046614737026490279681100304462256419015658033782802486597020893525412381540971748473439682918827483993542342805040562473154915182112743260198342721691736679453497335009646787569514354147841105988414009837582355217971485988819931154890809314383254103866132319883283185680640783622998224271410288954337630314132459322341200274923534489333860227709809739537331734208661552188144628704881765154154366487927129465413433695682875997128035061922470701868913357485039568630177738131000960260701205757380515114371894518273482636165920847843390118730646240504076720127019766978443711661394219377411869597159901250151102745766709207810388778126584561071101661621605426562452428379416792871662247088622342706118637955323488377207184352881636163564704466949295332845180803387514349658889568686088521218555376362914028925515742996445321523861761606375389116323162544720346369025257829126154089616919470808036218727704614963545986790238306966809665181391926882169563975147223795468186040998626763380566699387631137433470062636501961585198788299479505551572097552169625047246942581668019692082829767079644177437272520743995470943069949371756520020351716970754643608086327992158713410538892452827471787223582112426023241444814082034501915575785114341555267383826771675278542896816994873689115531430801652183766426717372658784054461891872655884528427600926719010212531584563575434052938588557067340044761211654376486861933370287658000159158375505319710994353455890684363430100230129434138085953501441250362506731835521291234667008065686523438404884669789309504147985788047065648969837559536127577819641411677426523299645028596226857639432303666975308147139798058993815697340370587507525090448361010069655144685291099533936605198888828671279024491565838630775780057975987668038820840921472421180603386914640791651419698850735149875243051248782722808806176829339949427106770171885744072054520492616750162587922101224786101182672757343543703158489295833844498260499208903012650851514760853081416181144899383322461764357683509321529471880736471763392347174318590479887112852032327152555200256342946120370499156235866686928408711406816364656574570926381494062150954365063459345742026024219274327387396615608636595664738488083542159925691322778914607035861866239813525891475569114143960340766291509596298871729955130566088332380043384769425469105333428726501201162088150930747140326263730737150110450465469695233651715428363832123974541054132593083238199849621288020392251079140625970735005216344539338315218033007771959273626640429846777271006753542900050403656864207118817782610564434210157657821581260313609861767110165847081511082039908416033338958590909308636175179000861080520102080899229908882670958212011572601209786231857838666591194482583221380387868306880349645386405196194565158274061675336854954961471293828625062412619016199624207953045739264329606590182443392231121006942342168346546641928978769784757453570967006384937411398549570274570712754050018520209452456593077472568733319860359143755869294930950395928665084976858991420714410526513770375759662620872357928254783440364196623400384644443967889404448423379363106464477212274358135492893090611299062484212693391504947313404945243683634292203842010498136659498202552577939407190983349608500934310855525680028990779898551282922133847776412614814054988796587884139137357180926011642011440233927587716094197368128767630418175014000159748557061356830918211771498414670799161330888519842399423794395404950484779273724249163273392775666744634964215804943475176987546449607938235266792010396511235712741005781407126229788858013331595575565345036317398739488168320135965463990641938085273052507642192573154876214154384317784438954595289539157150166382972814389012121040676203196758863692459016635167527432251788549661787141183988458878413868980137789211267824463257848808259096354064968343794316811617381284330899794741637301506776557812379735632634787528409249783139885079222085740781242924092488943031489652085497472212018360316642827863080183994730873386617764869783760084043323819483260310646245274560971468001060395559721828411305922775259808790024077993866418598256238768733102516781485873828026259692220280564797108293745691074201453090837788196234778537635009253429138610952605334136167884215676205752582323414729797039515622681258325268082080068174912834823813362319965063282994324516535227041668206900723840788134930756617844499214278154172100199796541900242496732832858978067218787937933632944312893330444803645632112346282237551592137853491653513225472722284377609204765207898272896885912378550915650944145578127812902453583707839471123587605799924542233394473767560172797177036368900343329424184972430315822982570106960851746823966184326855002688298919715600243887462657076286550874225866952900640543625791252599560164468058576979987528674274770816675461394778963144787392012136819744013922920952652069592736520698487282606971027042237597095954983219016475070900508213480690604558539979106144858206217215832948653706417965278718477170058438684512555782170301028490004542043272557712941320634246923296354461964997035208579102212486977819614294336085287671730992811234333978344400479765294029389168530901892544521956683292597504801144455631877827922092253102509955565920571749494739754168525538591832318391288569334820581772237978572951224960514261035791772370922474256695957694076427087250719745095212016236898723700222528654619180807325006716716665119010038774670189665963064493122622179923011935393974634526332339539453553036444928988568090280987121793799965572777386235876111942348701395716138526919544882490055963827633184440810665155410498449229649963963640376397736886799109242253907188749740697999874165849986499380416637446126776034220923131119235725871823188491853958399736893213398122138138925448756623863003889853470946935180151455716793398266710541747890016306149168659530015559515238338444643136969718670398166814014165747380921795639410252108769590396219574718189826081278469863315574254875445779153163861865977174550575018177668220296641681694709891112861273539412453079449429216181807389994415494297690034804542509426098249694673967238026649949532228987103433157408238363443630551987520447512094194684264860778863619525900519513041187926864078926257402924471603490547156267485244119697859278479610381574225522046421172851608786524733372577994513173753395440240352751432340957602377686871911401659243858417037946333102756080464799460235198293385213589655710506309932814995899461757540129122111182074063704792912281307768747312438556162182023140751833180326110689581176254695348280068621040104502699607367252283508435272433179546464627952684283643623914763903009237972214629630010644098808902452662655058905289420419544603200491483582290006196518403408246060642450187617877422974507489282443789787631307054719190979632213356637369543201494388955275256124440837821085554732104676393574247342580791753840019113805426363666452888446157588096769212522300306136060501058939949523983536397676783391674251932195957992023964734357419248090602140758356635094174277412357704304985646081804683884018162275385074616498227941518909151177406587386580880157804190552199123195794941920723246275225349603404742388437413033975167330193297575052360046124667338894003206912835157460939399313209933837335772259844473513381421201986758860491800451102378771259201898194044104256505949876999078673960609804074647500603031369066208925555314156702825216707926121783764128004173316285317043293469971753103318461052214570009654826566162951108754291742290066742225874863205126331593250683923945338351848153633335450803005387084305502731753483416195218169863050453758849586013220233371210629353520182937511525389778978899187296938049658571255087453366091988769141728300429866828167088570750330499517642974520200126162127815111875002598980516678489827819042055301207507264833560948512331638984506116216429847085311854733103496299253746596713251383084347587894924261504524984184110281315514205412844757695379157671177362621918450202675383197905543878037953836580548282445337297207983703643518665158803473357426234408663555597211911403930432861976908258787370890976227266820017911063499039370636893619148982337806134491623507045233620700684767593091800840819316276451363557108602189068524719219785480413916310831858306012721068642705113022634675869705218525231895038785925369141264534341249050015704846922136486286589787938767122366356555932791739744215471532549647859714514830359323301763394381564358146401163388824949032586793515451559812738974568894699085413608170785028516833492910270794125158635282682186418628088723713214034222304620519063884359389369029997379066598223514585861165306676169085245557563285423626596832666295836816337749038302928224885624748797209637877391984487078804509745979691518493765674554048857513321843091186277870901293732691011412506633281775741111705804253619181457325801860435810006327575512241140988411858049003071145410308419668161171284317650988945029642572026819981049056475604376246939828089850816058505985352440839446136773302803920709105429637568731219955067726575273659762504003004664442781084718785487197757760634917307031337078853692706351536475601951964572185676117684485935066129504141018913271788362972035625137645576596854363920959963066192899681936953524305804509130916441279702980283615826970884426232422205754008493075122750385022804944789431672418565323531552427075777274437965267330574915336316472365638114411058423005047131557089487231194735724606266615945761364693036338039009240252469462020589231269071426051804583563565801748241180292826686017913008947771677775624073880410065243365561761010034682948756077819505224504604617616349405406752333711255323217794075226980521918600937694948003291643720629719865912457025771579844627308414131059840217592117616697154446417781513015321039554623664291399620612567231248313606665450079130602768828705989162294634008199836230902490639503439956931101626841974067661411421560154881061413837660098191732526156238295304936675403924869468637805490753353760900766539953820464052286131674092322792178121699104373251543519205643407474984748355327222479000466427536997671733083250771602467039027847231371816652639024800015460306803613805975386632588149475334003897083409376007567326687363262474278883022732369619117005803145346182586205531262303065650498034705723938118939405109486177400292859515999368737761977702407403375733970429365497009693310777170713926210326254831422128117516550043311797325575152324469194054359150589556793885035638729979848797252555039984976261153398231461038595686285297483252783897397777294244514246453394442897882154188788634898566822606302386861400911666296786977700683248162858948688648367394924387091987483738548385518298305441585915950615727347091157690113737828219350291335954200119628557256574638892200914598105264504353808206479577687081112343653892128926518063820272484661143268195970675714740165902790348646109304820528844482539703497276823524843888936781011258489048065400709920473109879784337154401444854545110085217677813775593344211227128347044692781264807660226366364674316696212815448428001979198756921285418750039604771752282436810007142508672167692163697072555792141227755903284629788071665745753806667172315604542061251744906564222395061409396480302970641412804743626611768939553938468081362066445785113473934071763975233770319812472199475492928676860311911297067266276209113457086063092023365473285357754356646149684384940677856303745245113199470114605389617654040086113789727752611721334468155400731150010132699204851957293777718438496738933308734200513827779147196911536318482839266707793287283709278860554284839345177187827754753026861660538947921670260182607771390545346222674436000893121361020218884858503322852444768750555098053043181116672792315564267020032085683228697723925603186941722413510675623267801060832412014695899141970930466702515796074253378076838997750475045091532137161537025341473168683801461993300569539978872001983070160970381890980742495511491530437348148881685658999250917102439055666028228313142696349573320815850405750605470055569671501724058844320594724254050490906073372259260684295410173374747943229451904689164653703629070866022803726618337856532383597504140448613515233725990371518398934326886942265242099797153245446704870166064684638826270410309701359016146063998667390339129526969909999554304943472984955611670955790808724599628720857763625613477307804988673284382377104467937269708373530366503642386126455192993007818690852461212108213611695306074783761550848165219449459362617175885721067730037915383698103184265607541597859779775767923610731344967917006032928897246697960555925278168276509968765493565335993982140544029228569427510483792477321854242176398523419168309445293582767850326410805076698876377770883376907593450840089141857133975967919893228665954466156027442619563496404553992736194170053857831454995102854854653672110927472804520681400389585484066048101127903321582098699904484347488243104941788204141196346550965119944030757953168256337110501280716760988536110924927338221706200422520097833708553192300881395293626649191095727165623950043546766058635155892774594252144062976435554201573479483009779213035699064365375026925499848768251581555739821757548503248656046603142927514320244341876209201388855972099090620643217685671287336675385048279277231764200750719103688937226165816641230961964970877964949366808641369119899982985416730264742020566548727458433792889592089084980377684382534900057365579385492786713643616605946195274958216518563877095397981417765461919622633640915615366129171730977722752749173026469935381903257402386706626338309961125400356938376777351840328014798855695418689546715886082052306707295676320627871953989395629568189927706728791867685116678718810086177818056943507226742909901932474975054860008655671956590602122412310073977837168793466315940903604221331836425113051664251245699520008971797144919790861215019285829001578398913418787027001840885958360371990841630977534459002756550261700158493054729765542015350484513736670327857506636577387434183642887086296016417033012090637627192058838111538625380423429100627571788870740563688200590602828959744840935129625932613899464368222752540121796717971336319081634384327934495696933465591482765720059939516800881694741009568908104469092867180366210096981014730863887915463922304861820018443012255785485631466608606102723939558379141073857922433050877649722023826774132408154288666859467510259604314617510101822439220573538442985482941890701059056029096064562790222402731429608353631544936182703957934188667986916139360135191017905317871341155100273825596166600018679629832221389326851951231093882266766815558671951844388585465943979732047542452004760575848975593339887724464223919763839692715592747077429517938569859706570229063071554814973286540094314190739137953571710540789907417500134613309803604497007124726891302690457266401271105237398055368251562910443112573886263673125668185373297113621918913896597768092795581567128127833839008240764088850704006510746125230687518734073169554613370310148244938013417788335028215071116338245146388402892154129434894082966832214255473247545408371150807208556422043258657043493670952025080166217975944671559856906965779176418806772630692349254670810027989112761323061469022250298802282038484747089962297571493081066816648191962183154156152467555718361163009422448779074388238575906981704088463477659376847936837989415246282405421941365701565763431601047229885236960880743347314681077688122567105128320293651369529364021955025407541894730997743898762947119658205007039225825734947131186000725824308454251459873372714958416355146936155550248260255171554460308550466159970858229058520480449879155531179854188202015023816172158030708361153162157641241699874666451136324481910182578584419023369299079360344321243379407814665881440016619741526017706849483749899477602848394466940104489418038583671704719980589458341973129732160944118274163258266619645396329515644854660523631553305579876513751045698167289616583555548953058967874876009240465782131287348077614992560017958472557902459159911142103794095830936497514778742554946395567312633201959254588776022798497883593055224049357710762405635219716760110149850293261128798947825340651410686474580771919598974526399571545439133242185841642723932380294270747018685468172111322544862202816024715246942012822538289091810698903677161661836389237643138703981018884517563563985151086096750405130405814764601770294187732720411528714578234277142104344518313231107350905487421082234675513834657757184127129247980768219097102290112607881189568340293999728709003851759899412509025805411501448373536174932423913414915370137563233765088934308063071288952389004870469922880858724016843679516295761689781080054660203711982777282087620830310438818538233803702958913109044667815863510185850137274620693106410005452067955404979266102593379803814446785759059761786930821182134298725119100523582380543368448218160109267859710194526419173912916019641166948907838478403901301242491488016822205327726357936582942210518872472844745246122343359849887627221843461166121633830534136269178741030855698407566984555045275978029227389586279869179931626899597468227343370948525959996370819461612682817090039521530800001325915339278571359835430274477840885537773516574660872964159589587477524589177076654026895946448287104474642594705627729579513522244518623919113582644695764785814617277344143927089041815384506607741629959744098310452134078454358411223604008508455736480138916645106306044158270497762052913218007422060786085783832248429813481465399371998550599336293186064867084694013461792294002579900061719128171696612213398500446007648447575421186905971289219376444993806135433898643030206845761708446746267357993211730001358219171809911239300737419369755031328116738754015980745867874248091344185429344262460988644412857979651085169637012009521901978657740319518184225634985953647505017714374943981108572725752167995120183693623782828306952058105908410141390744559574356105723775838604020015661015723155975415734670191502382287814754541429601252242223645226138525366352362125705410611535144660124838944331393640217370789353242569165522651651000384101597283286286600811074902681154703849552931218853165970184378395918011409539564846632123302324075082492255637006948935369216721320747450997054916583289232196820040348957985538183066214126593515727337313880365561360687360350808860797389871609934946113789859046914785348662972990478859148752498514925194332878673529712558163639696086679332597252153143545895185242398452134304929748219406711679053000719924124232672822184218553193552103840253158874890598439698414853140199501840211743074792266943129502220229922141042506020677225718536353777179214016121515061471879273779481921333842078315784175486661378381947740357189837316802345043874538494481283197430155909154508392653065642184011932974346244962739285693935526720199392856921622350039301163331855857570951084915923970069269223653905439196484669383461383412991654285456082448669927228358311003749643735746468228788011253524039237796898626413470807814159850001661643293996735497754469273385527095587820052076719794596535968030207005317082397358191871760334584711754530222787250354198942533191827408181294081413924013108050486423552956743633867853156652795386553018485318927354906224450719452724469509551434275203437047580341874496248285704485591175554620827424582880469866345479746234175384296893141720763643207615151118461830976331087227165760007690241447939015989059328157903101166737527778265373097208337628934761155292309817064392200070563956894691434036885534085887849112227864708097408632552222989101393259563671646117381670899513372864015181138651767597419023456376290669651027313155269304268486378992244662737591828144881003540009601580962769663465384824088475081437248795535217008533890854800848372604272972815903551810877758578660270052856256971068645945613799191113970988429751916379032520603709903467682116630212171967298167266219303619169038198590948603794066698331277201924081442516242964040141698728314060533795662857719367094770089255276744137947759007573646452115876180684813334738564387948214674564157382325724697891458978811515791220583883950925797415742136020797930503481606352684020324105045811241939442653283714156832084345462976154966991245447148584688653488846430486802414233687935688446889663466303064325734680365669274767876277268854288237334693905378156156371773401643788760736892162391915734314371444901273852518315840640897694672682468522888867360882182989789782900216084492045819594513008228947546603306873953258540201037684275798699746898836239079751070357231006808905832832314328248797031785612794434965064970120406855573496325315426016868379811369528177736156649443836350273220598511138096394653382372172896467689839376800014046032209430817080690050521232860922669844582511663030934985550142295084636121766327128572865418999560015841918370489748809062825249313847189735270683777599652149057040177333333111565816933942124742805956606546605223722709216177442408724121428028923621934744160973366689624474499252939317494897758992940980590186395823635310215790103063030439030768141963045076782246911202551728834234012218381733631204310515978339881790403387765152760668689945096323083093208221786382411761322337138071423529773666736263907261849829981432674874858066004743880318777513232201393000055490067090121348613651242219694772190308416387089865429300297021952522713845811763231568003419263901883691278845809734188721858275684002406439016000670312275556039769672434187212514643214396801458099368759596050781801471946078350601219764320912665226466232378796560407938487200699627518852729675922689118444271440351767204895601697702000544215049958221682592465604995323377542325031390311647445110707332737478250967353914777474269364846358398456414088085528907376790299003126312954013368618903344709055394477564914121520315261963388703773635076212511490178351113004345503304657304875881160517500550253362190593088943852941400409395423214995318456910169920400112566483730196599731956656433694000290075691759739128237128520967287134511173304733004370979034955322673517115260388890418686259701739979827153382215979371470679037984729788673271815048721134529532109124425247680520190901437930455960545702675058385457449344485009113216123792682301865013056628788644628104987304673625773902565009598444849945447161311024906757520630708512326147536027990345177535744664384247518511261701744253591664570228620498138193379573975637030829388739430852906471235942311156355950773456967004687177698548443265942051228196052437275820225890422996495050511530630813468550691401411695318627435844753763077689596365966622141086902996771793397571194955409924422809360276876867753845103479129970008853187343419869755881691067873475201642427372203590549303750446266892155057746958735469072964722798347000391998995412564948058407385478447408934491096324061209706958502062827425530764177137512739458600754562131096150814643486537594542128434616082743633357926274736706446732101121415591213788649706363276821318517761890821463847168128443799802323035577924182296587173580401823190272130652057029603563984826838828628133989569471609614905682250065307300867885315965150596589827302385474921773296268169489915030601884310003309859442805379486121884661769252582982010608311900479523825362068926450368582522612479943521484566345220047609330211738552706393704928883153738320473205823534555321837012360747608354228051964643683843568583444945415557513637071182696353610418001658751488818555623252602215290972170465197636971302041956045271478328359694882046883386765655452696989773181871520057662392037171550068522134559342562647026103785106860658158947891304948464801452092898233663843751504971615324320664211627067523670491300292724811267205834803063324607798534764587744275979377486260752041721020833468357600120799404406892536087641425586088098724249600121313541499783432848034384096455406621531829657463170827148513927203003318654430933658247325720059139501195793564916794833227557709054438540328496055712446166067878507141597547620584753773233863716545510729379476262484536574552607712223932831281322667618361880758930391436322974492714508161762690431017695961393104637349902826689792343389987571907486317227904631153989903121771286182541179842385095755480436520490679243022311984229108561185715163154631793477049754656720896101981213634811015594491531252094793224908511651103230294752697370342247563589912470321552429672144739547830817703600543845588499028712279174312242992927995408326777575751174151244396965185134425871283707458895918447570899741340228611982785475309540474368294228837641028805447036204751097344828801816692676937528823680166958730595503081446931754175981225706314938533724733562206759362487538482411546451745913198581745354296855270970379927805126738736194016383864503882284827304118594668773681839493203238036610212443384452342907102530116286852111084708934263372346833573922906362730579548224599136885690768380338803291737713890568747310382403010488059751323811032482698529229465292648290212588244468361773300888749348522415289963298532504871264584616197816000933709127569594009513443211184424732109641542231933507149335904966701003128692868611723756701534547372617018318180313571590187755400088690416159923252059505537129343906412991636683471939557420809942660199572126454589404232963018493296470761021395355362549448899206544478800679709405918816113037088832069613949759941884766896325689291651128308976818126001002235537033803270947294292312982864084430890089877536907295401784956720620015982314771433481471931933730795766937009362813227263766674043640377972460370957062832534103225365229563006288595004654828982620899987738401394562439741308367101512170708724440963268955608183778071581417725084479902904588759424779340094069946632704290602308894262605334689652936725189437039681203859036403474818520206677058138574045211815360875333297077461080477476039569174591166049873670206995720821243777110220616883406584749385695124785035461578092855577764557873560852690721013495457228503118279333522285416446455001011520662703375993452896422896092034222518450554248551067253155228665521417957370626882180217246248742478518040907071513540531224097621197529991956880190864337230362899408555993053502303316015675543193497579815384421545768983726449233106661013620898780651427367916835469974817344516971298088674030391606071185429203243331669776021449321421692130577060196578568737132894247286839332858023812005408758023974025897427238229010161763206586645073854336790329432493816517880907059092065633422257746249164165875176108096338717916792759146918630879891669747000613492841650717134638637889113488660625835736606104715628386125103319013246733840943882226600623533238138854552378866459442879919167333541623013439169876950084699853482134827800513127313239947584545178045714673892634333760907371388012891694235463669500776112363120420089471888829717169003171149615511479141166402740203718309490508146822617388247339621501323123428095749647290057564096285775225765919963057291291578084018709255054194639943229143593424718287234795119431265543782333120031464206617748370576879328742191537714814421013132787030061154216332755331534173258197306977280362641505885637535496119287336397347196274205376970287327445823489091513614669488595355412391242950613364353098428262488514756064075981544534285397269929725849554512251914155576716682110683538686245763513436834609319966653852179523696860390530817162942741325163048019369734212971895700569358245100743193929618009624446073251702019918077671900533741914210162363435718399721216833488638221122526508139520333121714866867566049513646895294712645914786068484511688981380878792738827654416949046976313393276439943489338637554187246812022453761700474737309388794121654014120323679015390643006682781274962182210739627724150655078619367710445540427897318670767871106561715701880239713481711363360371853733736624979319668555725114515530600461969932248353473330978724532356397057531220092451575404268881544804889805533366859201816138508122410934195288905452699874497433703328619516253675133593477779789331580974301989466441783111213815305388516844348154357851853245735910145483863056401753903625252236502107742146502976573241391490444279418205941473855244100865567950291157659491682369037234413486761616515593245617403490068201449682579923264153825727912606666737610989254227584259042321043412314580489513103541467837781927013365256643966616256420079773787275529588953600236287959645567368002256808935978056871436433341759547732661192241202096125752726020512879349110549850558649741199306602543184513152099182353463103571011284816704600897849417797111750184154647218430785605290692283564875654296752187231892535420898036641771309305430280018097973600090599628121419713098228452889394200764987823350726230257066049881011940679821036460113402975349793242948402099318115653020256165020109103045610670231379014530317393726264981272226305515327763450052383152816566226437905904237025125700561472604373669845745731219564452123654494238139186028634279461816856789116540709940362585789945657821127178294649321441380906870536714284653146098317788621476434203396921105677863213688053777258294006748219687125480544685873612123550149369892926842893455524200794020482197586212180510333926368766435470172518222984836091321523439302445333136367309454857942699104216260283743770124804829090298158863745479306764540979770384203589900691972192886702044064733948868318017212796590533739462694218867854267924720731245839466568747850501837671007437872566293956418571173243258568476578704178539013670288132735595053222864182480420683576010131800286782715706107484254909690806884745239141442469409254613969343704304492154030746644795282834702700371763962916808394541010529208000120416420555239500398710002661400127248746158680755873071701111711047124530290881087074532301510795273832040541308164445219786762877290557047693657129770157248713021497615190967105285075959452738149491970723748570168564791641045319135844648895741485545758633496069325367482053413686989149093328077948736086848620166951890158617594657727682239123500696932757016809702876632199169289489460050333326760803075021331248572437471138722723770270252654690557566210291511075284902495048110508966733254882689602035383113489028980954626243831605722891731224140718656173424020609597453915388234409960525344431720851316490109335086300134394285246113508333498384038219785867666466717584953553279619632012435770882906474310638834416029888161502745624216762343563908402021060697211404617256251332859007148719312953269851323508142116865860725897998122311982020519650966357468841412662774730223224989779234381550380573600551043864801020237982349894587116466924973169263203276023927066650213590964739288433514345664276131169677600981948457552400895642462557637880999317668965188959297283406748478582645230476135250881904122337131608557710817910886152397935239628465136971140724949181509923117119226476027150926894371040250131084076682079042045183953519029182969655468689297889672712257327783988968069935606539324009540978543831686076400488128399058005319191292741959334090614594780426411037465152804476538725890623991827609507345756247193969951749426850782097326076177172326596420737188314463138765232314676675413287610365297144791590670866888032629991787188170101017927087234064137998383897552558598223630513125441248496171442163526202646847926789507152964434729792017488488697961998998557150972773687589236036739779054178886698974319210312551195677983417105251090143465735806491777552435328033845423673324121601746955492802682977970327240698876061144589654360245435440108940652327103329776119796199415408606528272134505296072530369316083834960399078649235864039410753615186805508369820646887946136753214296268040032020940575997101515834094662100870856020488998191855080339607845004728906149671028132887943411910085611644911053713442266120313755785052422830442340157371557983239822758759198355001590908820020128714115639004173122149303868596447810449555430348506625527231998594970860654547173172791247989769407497176201430645270321066328504832699600399840465226365732311080680468439709992328689300317062910591997306164545350229086961520689688550017341595755946631000529351807835405162685699639193507783813481123279728484408319504470123981055671782296047790271033192852842403214948701530677462982116149304149808783673124040793552447374387507090578396923960511452664977739643544711302243240390913515640598457489151865138244393973104765987590976693439423756958684461823345978182491097135177105630950931416827648708084710349810640439969848277557581995055812427603796648990944204004245692961337799129857502452837921954115284007872196068137001973668238709264366631299065441633758555781384077520557686431717445084269863597506744405926935420859860874617855866630379835865668083403732503388353400134490447491037663914744590183680128730759993762538602909286977790616430800007989080231068851530986559611276875190602297938718018535947845533259298207205523791558343339562252638318725778270699018399544362926458074630552780068926823677473110549021058277707743881802087747625352126884089785387299409539995027635673471038818920798975603329556944111433063088759958792687309010930129708999442424767442894791790600190915070583939712451700625974034823755796043228788124851809752545196495931840411443132598518698217211355374822345466937697970205891500453813005166128946246121555316152586861887206944939996531636756291446632549714403758178959178373750573780266154152983155080482963256751993241971666523321341993419535258870942778107791097680002184164013271005417348946441092432634565120894699613202196612250969526895358806373092725953716664894987334747039925438729273399760207955252977360987696074041413271276412754379162628711667382234352579949564846904136821461915914667651895318855638274924096663957180424961763241319878749451278070811685330837523481209141404959191753618847868045183557165782263309586611151470598075026749457601402941451760635534575735761792673672697155587331587571538071129397156128168758046255002077188545600517463892724809043485313637099284830984529252659873747786696711039688614543717352463851953608549661013405370566465940470264889319532857382088637530993376792382043190448442745635802870316852935506050339413296108963844352403014115388658045754824390771634630189207827207299359768476212595278670591921256970570003164960684576859651148541392455750697777893189932399841945387201159892858932077765514583801888896601310699046316328515734426383932750612785393280292981341944077995046558996744396584381742366490969313831519885156464814553534376413624847328428732927993558243500464033645096824098520629969312625044194045673549192228290436899456161126304807919954198993127090281568596771833408553131728313897401140247293035353826952995568168870196942869308401160264248829009293390535915914814564704854316331422150915943382784948141023536414327172131313334003029889344093588272739407925093681286252522504513814053563208178623741991654708182396949910659384961518308923294488184035038061757999815460929335493854775791610483031759907394399443396471089332835226216170014412377647835368964029348348660432496670646903377863623841753783237798531704317414830683753620268651545778558427315272950469553317851247296716626820666797391456601265781116637982428381959809405917957860737224964285324430921075847323942170480329409872082511839651984983329807623188781044533094517501811640517222202281204476823392910547190583171716151770937221408463116422913144727650793350039422368790057575032334657790442155936664873216122695798410746196218471261406692427526778816641174210771924563494077284191509796965567866875628471261680677514786686407402758350739623684678329385666677462648760383357698542846491300724663303119945554613359902468033402505058067057434156267310836678759282120002183188125338960908040363315707952025706044401627410276923669347657984487641302003810801982690230357140475439609619487162477288972636843313901062734931669328899174351073735715030881218555427991209809818644583862409709467383096328969210623000085876630379354471800766708247877874261481341334622918988176326527466686623257162635693278111284460635834730534461183198682238478978187232167385647811072397247991838158750000008190932720386731611652777257755673156328231132665556008112440288522797292101728172166943913194363917270670285835438486886250660807359256826907341088498006995868002508350585227322003211274388319880226495285157168493947483696527260560409938374217083623284905368017042621656691325287780172560576139071237832495547442004217947778095634930771697649347891459546801312103847908196114596179494873571747352570059441248072572533528526973489310956498116272200678982991828362550179395338705284172075266122728893666405804664229329787606282569949370297709757869357692655997069535302512792258363227882843276005755951650620007542876499019861819707296467280314445008303667348846349682938922555010307266383374217427058087197816293194151876673213799571755155139454531851754332225753474257999674872441544599129692238608535935854371980107294288507144647989069259584675409400964583137161690891279332176909877803542279382930674937651670947026999790168702503952866533634376812534170068859984631783327938837642818038652749760215059539893628751972869458926128778549193220064374450628265495214518469164949221630204978754879466268319370157962304617616400946296185113836057141668437747409117291934467455242317266688143466289812303300281139273679969844608256243730356694611500056186951508451590015269736310923020057994052970326810844827024021566140364200920780526198936131802525394135319105245582973070817484575056978530975046090278444864005761314922842194065453173180306915181164095285288048449981639784434547671948545023101105096498713530532491271262701419726002017150311981772887776822075744321093963431365717392661178392666586930123917726447471280102553241057754338140865353055929222457818408051209118220526852491562570197791414865556213505662503447682570998931882683831805366516881111374364907117725904804895799128168356653150986953834571039989561633806119125758478790264390455175908875594046456450865530124209009486959624791436825114833626850986431020779447208479015933791901111622098066137692230488401216483804508318724349213833476761262442920724981288996777018518101705791925663233934169123805116039322085114154688147046002218131108600557561790552154888675685956441476975597405483926438125422464776531196421057585936911463260562969462487831301479533210513566811619738671269067697113658027179287185864862883528279427702645617995584670694436612488687170168272969102291134059642163495841575504653934102533373364759808224130830899669831664252175500981394514771097734788578776323114703458563277351006726017754259397607985585261923780000757110252239115906743400954948710731576075158155958392287843535690107219849981711318220556478336388741721353905403557682731880862854261770577483270774983925719281100722781666254324499953766009333151833628953152607840403015655387166657177724756104654126906166729419889353300105371163420091435880549884079191546727601684538129039925397777720990238799462929856356602562356741952174373389343027794651762456401833007659119918537018664833762838270481333268119125226392117044304840136589822222882761744952721979769591001936536196637651258891128114908466222670498837431277415134010489910366500365524018098299574417012525733645169203940826335100014861013199059576870634144653892751513996137898559151123503031299584054195539668894494320221752248781215699865400167651135241336474667240823164605079411333095266051862457355975093085168925241199201925682128111664027854577138872951917820333063263301264389925712236090401559658061617546788094291253567111003276038848648318294183752775085136848268990625036130303279172347816532296854934518466233174289349690454844530305383307359349791282420118116182449403935187163563450572396116521275909177586745418383380194983316624031833865834185031122479702529517441530855737967282037682842267672400413616585699247643255162072668576562525052444072146859414801001131959645489587743604824347797616904424861030671646148312872670840408407711776446955341801740116003081545629011578324799520448559405796422718172617523738331057649145402442140700100876103873558489398258434828727062899277556745197202163134886125736571681790020416521033013981770627214776391190933775673374226595939337561890617096832695169433907841042392241581504168133551798438506215532970011858267310188187279727093816134470009975969278169407650033963641019450212366240878750348437104658789839166756539291462071103968105698711381807679926077357282268348435989055663911782875129613296188842335053305740546940639557217955853970913641976280805971111995232062140610607910993129212347603970995679231812180717788487099572996061120444456883260796824882062727808955383845635011274972578247740220356076458514081550818097697161035136915342229165691461377001548767793731248628315294206780763819209683859173275570689151041385723041009126779027085406284769575925328890972093088774174343253160990134694191920783413771746040539977539113851040072637845358042461304397895649615470250249872534427977309406441417968356211902074556132354835036844752989823403191490484972170813495710408213247896487419776108884575993209582712026222521915114589305067015677798180286143182078155066711009527003135093523179386552401192780181756419823233852282589563020637470259845618097044791016887454302946373258244154050302792566072370616750857206405370564029388015718959523063778557275695098456998871103741776394117709981117010357982485833237371106307180194395336817109190309332383672812365525929700234712172508263919674833037087755369990423523733992573632591793736524237863926137035331173182130391122565045191031781332411168776142603849617390263983927294613714812561906622056841737829383023204774641778413413760746059358297756092787959529374725910885515840308812510769124798996048680381653389188087069000602130879762744524208442080214620101433916051575261271760025680822066384627197798763704749989173957975663051338440335562557046659843573172412515942122294967826102902422073169305539761124678289952671025195528740769839555470284852984829275839106873550371534042022123423374752994376167048457816786188515929476460799897170483518339390733156104819156137829901989982456420011339229478321513328972134387285175702264047217784066383189976879415692471695438972381572500724894414326249841253982652917220895255928743289338322638481795797542998414138525962775624830990464582331214741819438143364601389982149540194168427800409893317596285187516630613800117655028004717915937772899203755536861901003349191550570048290716899236645828004091253157093380227169513541011929646068834112737880847454719083921627119121393433302532287035655644021954026190384640337360435101029127362780477734898707869316870960547460353191923610609764229366555040952775267811104173852215907436724923067851208308728796548339183230780254352984213501142393762354405706143260298050366047456647085335554357076317259706116023845713223877024724320918801141060970021549293410120845087064978174426220774014557862545154357894167155849435741106511619321647565261671109926267984186028596564857265458531886624243581185000757648823209178382531151584946957588279977089871570718441343450785942769179746149889842762138051750280123823309308137810061869282331868493582542275087389392427208221874851443073931435625432769380633558218328866428827105454039068786355800554823345282919361375184966049642076795873685011554455709674191963003188878950388012994662056207277573184350444938775475055221294603231021922903866633301174189298412810746405626589369624868922604981983852010810281027135019301103147790144521072817535260231966934937902360343683488163482764522867650058816117705614772205716939405065078443647047447733917770317540941293003582543344922890856837160828994460220874450237407831167759909953863632648649140180804582690107075889866053669733169250723926149731517320654128422235694087324054116347529158840326226310356975118870413413856791471219541726564683453483077397172673761437427357233299173934327039434894629637266543883295387701924296752828865664035378656401986936491465551507201273201117827068326594764974041437064824566474355684790950030086853432915395138937906337864591591770068536454222069997980296397359341724862839086810661356022808519743138083164595999164553518061277342487091388078445694929187152277997329515843738184284835895637336805768586095747142572710359229197834593736196359363175025422582314135643385788168056145160318906527566866149855472712344432642967581298988780146177824283355878902332799686276741703374167400969610284533872311762836775878267947644439212927419789896786135530763653160295730854175363718160186245596159279849526481962989678816705144740572282235387074777458359647232664635768776980434107228606018710878541611539954711503197558541614144190535478583436543713134120427662726529001838540117022552790450151686830001064612743059000060723390350331815449403781199467261384207395991307616231549693540955212749659352912383489717792399021887395055853197639966232630254646096997945359794739912313050458187663228624562213271642833402862624922613453872910592177691251708528577182363455523844603851491068174439238171963109623281528941660253054315377884167091136725927060044520808984987804260287481284650885467882688462000537455862972476535707756559139933980555480482222713721203599045125613805593303195331409499102888167462000351489729606149894453644712680776464257114725846758837617938934034516686496186390026278643816466568488785370374833680873677169560824285240830910395310442979450065943331637244795436726305553185464369149349244711790398601321376499071344387802859349375585842232622365146375685308281750472928371044292935921589216637221442387918753725628211303395808596294911569685305999705283507538371458514113437557355186940875660397281025883000931248608110594941454157659596796456620274071658744215563472540224034885317696675383038542289488825564326598296191727081460819976694494470557043627343624676195176354896275336855228634808091796824641201186106105291812918458606270339545708740615742030814685456344509157373749497683784790237592588342518298296995528532735038935731037217696316396019735058595386915630323284093511222818261340232740171011274088109034308565497849962760410650887921912122353211073009118103881718880268307872393608779040732413064922818270021571922303146417536661011396620067438455945390579469270118830306034887743122225017130958716197905358818708122882059422028085949036862760389829344315165047758496235993188614075047894939565430938337466617434999802356523691665219679032308593458984143822646941244114060809244120361606836104267430226315928838979658989471487010025217613352369664356685379103378036248969331003790462047410192094421767629406756091635770153127703496960894622394665092169577649792288503318615338244247825234388048232335118593735379881529374831360986914422316691491700797497673461346453445629015639092906984252173363147988261806317107954464720271540470407519168123279944675888785293414638593851874705205649715040688569683318022545418261994938550402121760292350164843912479146757975473492916306598496979414233514017612516720063323726605375854137543325487275485387983503862924261892814583802114197528408058953244947422477534368264707572703069031644929126910621571630871463671924067955782727546722742951543171101219490468796577287722901680988494143431872083839527406163510564561245739025801722059062107730207008614054644818099600432210253717286304630742271763666193151350943703032727639458167489057014886791671375662380361228833156106229510166968776414041043295842601533649596965866164854782203888979350604250067478300740423731442073339318494657280292886397170187701001042277438772929827315576271888995311529319285479029685637724361446430368116846477911821465077593529378571576858150077014935810238194415686112361857112790667244659968930244889010827044468915167880985651861450230849972031622629646461538237003763502755234239719870966982282539052593731834626963224829196312762614001820663964584435494549537229102026773502143374945250789025761259530900789959541856473533527635067869047487749509973479564231251880374178471766399361851692801159696321078690526613966430520747875477232688705037872260708919867465133679123094335445004504089328453995641135782789922987288145025571673503883851392794475348653503827096641421625651391198870622561311727179697865148384970697554245663462666899036449994398025809191558483712006771006582420810463381745948552446628610347356861716856213167900533620835474214874086332803825784005180281568121760109346733922009709467011160122689688744221966510080816674692016738497990923476373345367652614501380619703637128350431404897907456211386745891540986868134335817217715095350544380125113135833072246154372518170615766065158118799627490314757961734785044158796997503982470031752151064571262642965954988359983785906892901235537480639260864327861310172136609453782547373734132256617371361416936686264637772505882089246982646850353023844739892891786623427745057724388280285579743031292164437254670347802691816131544420452961022047501303324356941488961241965635566469188967490812296715257047026001992083160111935852318962879646148336810179966544871899911570765368090665874446294099477268779048610305583873196903255179377477959212021478381752753741414211849467751106596711614213345322520409234344373911634656252274815242694744634002854654948770068084008513850641074624611213147528984927684345025811227791800368775907316760707005997732257396976257950551938945686529749301226579980840846273621245398397613978730424789410821055055601557534404834869683944646412186158144869871838537378248717961411858193389971323552494978814329127897645633923172185855238991264518456078916720950848573322250669535303726751097015592564837583767170682414369963861026692587869197620623339618358741020751406028865565311659412704827030740784533613236258348998588080036516531249776317782978119882262123670933978160155525213704626403163907852814300054916956752051302358720851156061042706176599859715379268648454561596696242424867971138529973912071312237193814944768110020471206910691273849175032441090602796370938950352299976755170207707273397584377912003113792309303454817521165480807761731190415676879123920054240323703636951956486765315232792723127769270463788803802333082925654734713767698909355391488473656143752892899494624188033379110700137135389491816376390918949851358647501799163375027016015301876357081273694423448217395634781845919765434414258387580032328084410959122290106344033315018812225809676328359152534239182994405521805827433850355787768090357348123307664086484562470098472160523482756388569626221851737287362147545280970101450392145568021897006284108356519501136946319353673321572777291546164404068867659569488782493811529698522884898884496148629727347724906590618171730239167444908526557573877180475821298368818784350148161003408642042462536133121881563364753680433168844734975545205017311114725930280891741279426994918809928665030819587510515398091593717081748199445572522508408732236378717734875438024310787341679304839996849411895773320085974619971709754622324755945303885189957872300306226914851805054516349032519749912352250070163294312431105047358554096565424237888661649684622813810048209434379468356397414975449313554927926644874112689331472527143700418381089917342789383062530495847888459395729594495742580968845358939895135278793308994722592089526460174492729641772196767611796620535178528891481121843542369041226506751631393729596575054842968805557309396782402752349533503776194288471661246832203349768327238491320481251421550830067208009274454819735323669401275449038107455803644429561451128347507088606435566051474134712327632712398113945411783423893150672890672596770739554672169841673634450413320671006955188373126491809917189739004215791806259015758709332874689663192080749075492453478055424115968810548950575822656143649613887169807820573845054248144153530572064134905698744832793878627663831636950821447164187067741248283484451045338955158634883784999752077677032457120160387252232624961719556431597235954481386366599560430728238794757993704713640665455281047937863088181107668819840087304608591714215433425921068131993516182349172527853074264111056509906092192560701588681588956500842487581502806481543740271352536336488934861395322835992119283854008355109953089901118607928037497036025102349904935868079497548325885974443252920514904871318908224925513242244388228806111893495995585529561966128940388606993675828611435837656066433279865319761534960472026266203217363272494451975706978881581878037992655258117451068232290172364461843605212167139559650417835362550585992608866254526743900057585474374751498661663904072258162557246855710538992972453684554522783511146661398157846321505365129676320562620800282291438973286407245436030503795758668822047211630524422302914354404452796364918842359292130152336947740121047231711644116411314524614306493605816216139302386607501978974177675306533094515053016740147545381818489606869986071939172681804252366236043040275582994350560487780795603787418316249721629924391468629151916427188050658899540068559131584203978398593085022192175697961154805436320750399525523897104770296151104885694712061648802459239713693288238934026882309967857656258458787455447348025172589269487575600226828043796705299882188939281309345721865128491208271386031043206389911132304638282947517695976959739232299396279286498705872457905634511348219114338618891435589375168854383878978438458011200042970578223989285496474468796184076818094986117650376911194884097805311252674894632334730677338229369634244974334338655301455352758680578480921598895132943576981185268404660075976600882237451417145738814225555407582755695152340382960797762953708986849478797236785136192609762385753513215396348139495281190664304816675109274057342290125384574964259523798146777815932770109190807274316997206687807844109323472156723554023331919217067788966440493768688889739740536560395835578876102584458498955975355760635774509998316367465946959367897541508747544996172133729614300224587844640198784578572329364419146176465415661691854005443619173315791888350036580170996102004537864223439263241929548221804381995392174351063411466827655666348936164294387168676171366479376627328362366391969845674767054606543654178561680170254291671851069092238438870256603029762992856357081370134009827088501671280987926002798871408634853069454443525872207444017137794513204484788243333629845164163439828342140618165028006956099821939627304175957417005761491483572555400768687157938886368485440229886603717819495104664400127858495294033851123190565150080914974879011311577653273525891025319434895774285603642753825505469955364250728567245749143849305608546797322776454931913627669897739951212254600341931155392277973031357014427853852087115512492277083991375986401276276395372483770563141590334750963600796685001075305634132715986371424348791547672991935728617967426027297577846837126135879923560097370103336414426936219928425504459538829065043398276820314376263769498626926746328101961595103592412338082195688041319054757470860253059964532820930264390455395379939818774291989735070282274005379453336928252091337433001363667608053828219150373615952844294180439908690951897022265167693461548396333658706433576476748707768392604893328598677238702603632923136584917292954643306745578318815980185190328530573103684196263899538143544174439740672542193483089016914053437241421291653465387295099864509781653394801791156538242863765607466357806660266920437316507385835116657980685063877754358725435361711563711000650061096411638459103207847911912560006208666177829278560249643817419354912552410647367830882149969264943844674045144247652426246044594031357102660821708995369252815931857590944914004653537768519010206528796627110979405230495887816313431435193119393923636739388377455630232075050259869150289158075930922926265024538405692449312241552006634446301831275146555144520418423359293409828408641068712709381508139795794072013275231929558330533612995112554714796806499145697510706021039278244819293458783316466867911117267519311151312499987127752667977228834222121332980049927861995422427279844921311279287075696746485220063426427064709968906042701699979425780818429288120977428214165119861367235763194960964020527102526998906819956676370598058096852250761641727130015817885388479828199537450355391774108828692600293251323381032326613553205191321257474975327599324898997391617182796104303797965812113785861673596804897850828745388159065850168935276090569882222848031403606048237765804917017476101839380699094347551120622452494699660624946091530004487962383581841066423854297965432446787535709956867820902167967909435620694727519005483538595599928314051238880687418744100360508833179858306933249080773338356660615361252443275623674896418650065785668845026629224778796489643424528327451143154941212612514557144423485536613253387384799288459236004647584773256950343667632693577843959853527692157535200199696138380202961025808831997001418063771174688213548406821564966097919224454795147321816488379216370061833283885174868702841208441559804414313044583970179991580035735433643749661515616917815145311441024273252573721597095282314375577041564347444474719779626308819398983959618510978171335426039265805671178996964311888197451889236329039998822423122127376118841469740066828222500062303988907291236518528862495445122073938489597927179079505506686557387315294575927673075920102086598369028753413092070080389365952630042261746487535784670346365929871386505903766883714143226028420933009356597593996119882832172768372634474003658940122269887730178580487872829692057751686254827696243859446130368959752466477825042068641274939818968047277489872775789716999442751132015611064047891701323671314794626285450355379371372305222718364279635189972794911072287194421542095654208423472639407327241664656527678203318051983083749587037604426622589201495465769430167597871019332061801802784867480819050799429318364835978823690513881846652478636852563873959732029250738249916856248095183883588042927847866876470645758927183229467028130593790440279245800489956288965739470334785408662993741738969945877224634128478026244551252206924913828596715823888573864345177746887080341397363165641015942768698649538909511058359977096462292082216094281879767497850435601311781663924836009220241942240238179097290802938346691777076767822554833207057455901371956179581063360682353870669336062905070106605523289573238229072142721747352858604687089151215325364363569873681267861859912160363082472462265111861792378789004425864280445524042656561364345201355035410809103823574331015725815133182547550227956865175040421515952021453004648909733800280426507015252667919817684033114230636704421471701266308696464680819669621010976024868327033503727278762293033704283416211213006105668125202715257313427506950373093930177710145775194095057520564885459843456535284976609026585640307703715168087609044141161247774480272002904739601020486055369362394936308462042870490920650738804847005245016614075321065586707862744730800939083482227485305229755775916330893180027322812865344999870248648206143185750661597969348691245365736550172130003658330891679558228981631388280053314717135860318007122515408041044509947130048808534294753349178121464272769145095492787932654618133608090663920302079234802356976060604417111641866063991549976136156643984197304457649295926954140056208398199449944173850606252448403742816101580975625480803668648202325008327202880112752606079952523361008789522635892968932312828539247243280853243784168019781029439480486062058514828697000264160515662386062638935773731328547714661220173485369272835534203977262188241639339970747332806854239396460667273596062739197933795728872591125409922150121244452235129957632441367950776612234465651676565576276206788392902804525977928982299672331645796655132985679209697418116400473668041008752838602690801204787247580980140188337036124535762820903740042584756210535974810938861346069110504936333492858713276654107907856857225499042524690965278253485137624813254558178850124873746361857125845865313137484527308849516654923532243576210890903914586345731723487231001321337410028300650787171989028257422519515590022995158612219489734649376172703974509488399426346839650224709402884414857961810791818248416598466948148623793395604881510991311707873713752120957723504803511833744178585940142675191742229643467008257569232499574209918919966903195798272688182112239272378126502448121286047616271045501634634943391925219527619136164878653013750810552395962215025146106324506033269966690277525887574355011197863144140906772368580108287248005615249923923406580552632409224834024377563268407698234461647600225933627514411468550829122701540740207652245896702402524769396408990777419723114702727629558383806076117631723933277530054712074835518611649912098073798347980413690923871225187896654221368012078464230401694225453436296879709738125781224051990714356112453358081068074288370443606631227471931348633299017800517623776612893290641563510596316072879890281980388241965380551900483332031949465064198984415175979764555033625989969072844805164757597917557171992593621466159432602202627974454991885000620559658879970173307494248064458132973533365882712062930817394979527346709790145492102197554101750416734797094304517327486227530935090476581137550190434669450463149090456966726085018736376098657171808429978679774392724582826169155063341192827509139746198420964100074939737717057474087783610770879391143164006129590557182095269094198785642096977478656946289584888859836999429133367531006864407452482240624600355561178009112518017990769997969933947223580325048945701794517999639342944623859607103349298718342190255605862760457392267579579533108252872893556740734712086060219081051367436101302352877535607858492831226441125738987375850043049920343704040526153806691788992841020548204551959597234669764509163065499010997671278824147798780179500522573701222406875784014977584710877561265434372776246570058371977428415763248684053430711066249093094474205846388438183431992462670850895194166310348733442849327624703904284330793864425689563620199675934318569664384557162369108032021940834380847200444358723400174359895086232781551498654194111133431472986334817177905382449146912459303462824283035855468260864222219741373977725766090379659587529989736323728663355849646212625334270025307979658042311761340472187828345567187792303323499072856710072263428211208563112836992665990107539266705074613139709626728522780221599316726701885283740507651053344307370199732405436838743758084483823108248585020579457573253574309272076811321867425857807374004283264436000357628173169948496363365527033787358184755838094530219524897175608582199162531734263747279380053111888876445261583779088855226338176620354004805515170517571355021209184190398569076955947830917061976506339966184201622523146317674867187797990403710143409814277634646074729568140186688053276668251480633802880189784362112662552033443424263227015268288219664228733836960591524620475955649914483852572000738913599199115244176024084541028417712847006377803031764453678081732399707178750087581247488449672058176772513906867688847492648850526421634535323573185430965889346462391007255185712406882312340680521923515680827887750113658876105154189247252871628558995239626826736180867771657703152688517558868241765727625461119800165392016417594889083604356711684734590652347005744856699521342155800980191332676813951139857988106345494484882160145009952786678510145731971068514111525171251670178290185034156614725870549108955239538530500689194512544915590771909343000380841252983740657334787329622619829474826431600664606914564034662380553064910105775663817248742177893659132985443236791955401425773869166407212114777281494871525277565122562575778096670434556971620358114895384984440541847804407375960851011309543444848790103658457554284263943997700662549768037049992940390070848796358560862425841289320355283447200577833454400889077864067512583179329469734877436849963998007033048823759069752277060317924271654374145664290277480931001398079083434122962048378250121294458611405698531507711499160241931534198196352479187193922155522492422518548287304025415565896188578555712816388058637980205013710534334409279542840425358491538064026899172797123526876104744413551100288583732335553368481977862081809847607526703476294896653607279498398528345622072710803009294388571074173719451174080342831375752568283039163279689542594148606390636605126879621278542874857103704897789321610332471674131117647014973620597141604136795310227019490707956185832373887956431003327499023645814908903920359522281616750738678167684683376103816702697263115742507569438571323132597876923887679433635853994783763491940446631185476069332367135638198163624483771950847235683497200308445646091092152196243310048595087567151485421439968914420138004122252235313823158230468403456134692012308498865568957561796674070350393113029503012993891328787525969956641222387600277663933220587608763588946526034184420637693650803468335299507659511843971426717442209034081853340767623129718185738862465186444241842750777077074940594298153804811244254880373144279176213688443303815486500606804742134981651064103814942948647386416302077122405137982402653695710279676705076774652069194358674775903286433831751924912454585333136729957879994698023101041775606389380690323172165107224488259408179587542258731138695517951378753124796417543870101838099663256179318384111572262610001146488111138064014552704289210433901265591713951287194008044260208025901615612139296884299948974135198002694675620901362148537403641598898357890426965978239309292342308655089666228888650004303850567649907337132649969285360814951152092404515823754657991987315923491550868522732647906258646172523417715309334404807004392799340692166503900538419327962390071533841670732288556012869131082135471632881484192260747039418426397919824398006476696799164936523827004298021681556969163665095417834483305131013437492471431831428983099738826373916221781695801276605010186380604890791981998406244279079218310044371381535761739489250660937593408836915192837535726490361545390630365778135746086037529779808956284326374438663283994723398366563303307678080976788324939521454366140064184466865396507451414410820692670112670124817595055246669980833174844796801316210386102430801901881934024241718306957175863221986445144962239365510305865583057294259854552459322967167749187643185641180586148192538770381811758067776912888024665445517991905319266247715853840501001859648323181461137766659705693832383188506706758770859957565981865838147252782269488519344747138170216291326498385932056995247558044119601774565086543326662540105615228685099881618493214177218321685781434714374619522349178182451226771586719409550675385024569678500054058896422325483602544936144512687185200619728979963378136077074159711600249616947908682755124580394997657125597302512783388714382875200665497036598638875251728781980957827494060582442559715773933034248468381041252062238922780127277770271888370904992119740617895591557631071465074096354415003090818653540039332225869802621812245261879550489207468667749032495237627092592715152503497543649701553893963986000258476085480603114369118336994419639079111870402583518645688232631028127970029030367266173127309527873536190081383718653967250336372676247678619515503846810728786602621118884997607617439639068376321487960321665308000387521001850851687124957450691918844067997218717444729710739082414694249964043325047475137002056565470018723741673034771093148630510361914247894862443666075304175428548281524224536017766511554995126753688097885343668642855886339309786381568883193966967773529660932092491728996354677301062193755160497863841974909584218871354458229229842131077849472857851535252951080127001172501217086056877416308412860064205378748529032875267214282859858559163645738154849554001567571428441995206587493383361357243326877744548540663443773880138007182532566117068538072943791572604551722958975372982280837110941954815523293332059839341027446875088372039115432310767890411583214227667877683792827551107430161065538190463795777917162446606159338241639068587673164201185559002310203782043308630687248327915364576292301129914216712797246788647033729797374246512654989343511389363743667240493614218222027455732140234401706158073420929268041944105793602447815106711390694919075966785432138287858694894496997765019070460889560726379527034383825083762108885743569221346221307133796095219853928923621727058270491451879425306176800805196946372240194737592325864937684474620601345389947238754004342487256015923796859542758119035195031529427555655530391237242036059256854935070576147079883214083575940578078299006469451832938689989515094929247117941511001924040898616120354661080137485649825127650357669679069384002605700133026653081587104754900124489143579935173345525346120993044677999780448048157936018763394633067663496358075877023956681540878471971937447840427715545198890073598123628520512137960028153780703134724613810801742511134693683668444342211883423255759166103327550155992875673195243372394705696612598126186848994240265014858370038626910350935152691055184095174867076410563617895382211218649721573087908147202080810265533943156524496494337443996237393425392766336858622881845306727346912456777328620538217980939891485294654716206515070093871126892103425084257002229895687903406826703516689921304345414393706666127642628612603406446872406892991761818671722555519359140861690468869052958709488332568890004282189912140211416901363909279445719373230971049899400511762746841896350815697952291049879915030995669657189092431065055386029255617133946993248114707140452922484319055363409483066309000081824295029960984168116441137590560873289481341665234210064603805526679625128023971223147796719943190913084411204250268078394796170393982308323689818962043830190727632831409224243990398249131256803793356932732716005754287626896019261619624561469620629057670616632137537894771803851998150902839204276125925018223529702267373456353099228841031917415169848108686428709248168404087134257000836924319841041743624871542057771113657771149670060901064841236987026006482800520503985211833967936469919562845493400786780670918393656858993683273481816954965873290177358537773602498185525228107440430002259066169443746231126099657362339113572695563826912969749888288639858080883371882514145998334161911176586905906491964031868569814061819803436161830050524147687423365166383019417206557421797029592560604762431975215627172255917088320425848602817768129144045738076144946750688742766489318669933309532096657037522526499979443086864628149554089773867072871150730767164313825703941799713753775043727865572978245738546289853088723921600724836289149587434259658546216728578553195622686452793409274135392655429497498837629243386715729326980356463151747462440689269767849776986338055157179742489874973907780873439200280647848224400258834266533749652325105950987466284006635914215988211212495403108344115925008574232571222368571121333205047207506080013072773890056523544071035295876633030626459604960670719660298085199721711481341992681929067584943524385116703608525458662686820770599064388387131082957955397066320334932903099551859115347928017521235139223207450830483253207811565878350791899478344570808311260607679816670924298706969911114876929873425224688545644931635228217876265226851391665358872424257830566168261513103280855318793602405125670253915179711106257891707339727783310881150603477217337367770969631883765228242250609169750579771928835503683202359517620533036932630838924337720476255128060760232858965025938276440231938680647067508622536440742740747157317160776754373878362522311205416868355131835325409231191628712789139559539080646262317653990888759176950145480648938210344278305592509460319985751077974338004129663325329711687643549375587231523210438941274774619086090063879117371871827705127621934663632076134695962040599132905241670391224428164724426780320917887060027470226157447179118425085030168180951346751666066705013126216644752780923922140904537062463748847228468247216333442015136930568221306461168098762516966268847738067825263820510827110923612180260037096719650019264794867113920812737542207945558336980525591498511506753951497098155271577071016364813532864363205852836097773009749468670902421037620815820500561225477374104811331789349183151623839848120113828933945329130617777735027183152903612889220993792999877417074136329125138190085853115856354595261361159284700261669895505844088085060305975640639143319394272406508195274645261262752073035417142701508905932664249899709332167842923236423531388392040193380562512801835432665062611524702492949148231778085141617415684236057574745798827052942556251723987085738030624675959063343026660416209678182382376453240080275854305572210414516115140770589755460100242041116085327692817284556001062387483021826040390959519263560170803367149683058567332377429182598248207769001216001568973845285532794681513455711989177556207354845027528941088478758686965592514995590810074964024517278414726495399336206064723042952466326361203107600589640902112287853076767230616271360732890234656217953175884793858622187771838287253441470202046190569235334847778962072571688900893844901210111557340320457690643227486835366141002430258219211743479248653775470891562008686308197747374469749741729279427851173731684098487364471207569739819599519454637554666206376779661902315581827586578653662234554225551152187895074619440231917329013797435982836800553377239034968813068426806513676207263441653566811328547300001997180788365318853454494832688675618646071478817323950791755863370319057567161657660107782558664225489370372881837347015576892841609188252984050078505020904226367434428872006847950385114131518740268273529795205473433807722295526851483143054306132896556107408561257386018887880951163033626874101499093243121202622170386047663804244157726900543400667615586616721464664767897611228573158126095169968432217592012304206947807483977222629448102598199566657247166455141070838837720412651343626236486445470973081253591634737866955221692906809755750888428812174204354134353722084065544939108028977231929012137826512542050806802797386882353132614690753384377046689681097840701165263624196256746643574852689560068134744316262025946301975539602460324619122244714366716485949692570403238908832075327037275240976220712779428692410149612955021166804390327699426303348261298809419903271371978789350667887495919118197993263087557991727004611553646297667386997163025019045373886660531191309022438302775430928876264561712751367820760320898444222139568233434043015475986624844529977648264650068753511599157580031252123046202011868442955436771379430306224472803478031721087156720768626707358511509856530979362022621882586527575848679059214215287431667636008745679758837750102205270497583856245548462102183046386304834719069182463577809514886602916827371881658943530090388117107082238969133622616086350033297044738948611987096346718866717538968687748620481439982101644394924653847932603907981300399800454509528657730366570062526535332834100110273944466899427498648948302887190019627473768957540664353410551435466884508185717556990565763387159578195487019389059789070086437912017597121764871866631593526963187919477890403957538362961775124605163849340220834888156466845193407273434840993588940226404112984599387524092594534205729858867228837803389035193131027594420150470399548608078393641148523552708643777797068095451634621799480361370406879295705136426463356546086937140768682494208069990051577954343396943129537236301920723120126937452550300336114753022813514418621173682154741671709264468268999274009910688180724997308405752433693367202805456505891624146793497219600100091814386921440218393299423976741272540176483808749784131887490375914823130501440071384041810608838572448023763856924147803847738558687937327430813954233849191238982629371874903396747442932428507603231273773728158341808927592295383692943711612644937123054619204907266314643029467026500509986076330171342180529961223877782979330994789776561009855440470344080706362273404331790025875201186361534147120365062429823034984159720468637608666507440917401108713313423955106279224286071775270193931932337808054329631623651517667917221335952714718879884208883727915596217282479546499707655973085013153055166195535237622646925993574359159479532045666046127324278634622334506774489278080381004935085919183905260057005338348400362249378754374230574026989688228180827813555584091344672940141719620438242493229103733208239439371833123245441926557216169166037369019181766852319626301877995244516398989845078820859632248930587262256817763076804111656317225125964936698610315490950572470692420088004981930411773489343835639797158583243148597275401661895258599137224335802354288511421986071052422749348551443301580908789159311812946892186202786625919096606167191215329639681732982421610661091370638882488447988986128287636097216683875072768721487932527824896784653154580208231924606006433471970973600374310902716783322865605879317142534054512531189535763283679194007827933367487262648495333479178978221007391042063015744761199817353654745664694855109467036443434324835357538203649697829647806675019056367446144358649020397451150443589504915527945265586438137241439172500306664669312115328789799264818343910014230010311740346353434721999526530955270545416873364303678126978187952546555760798645061836891924581257515427599044281287149891407896673016210244865156331253498267748212050966986011834200000216382420154191536357552456350623437244124595402948545453219365211391503502120552881471780366542161262750880366250162688570298397595530134673991978140155730428977555397043249484379289327873358921573305279109297534676089535419320624773785371579960317404694183291168344389417976413629859530183871794143914996585745839067866399706587876056624890784379884937621414833025327881956796744628937826181401698484238966250944299097743716613149195302337087895459641257439572325620035399082503232216891507344202043168825270759735714421055254769460544230622269228692918690071554526904375861099427187000532233125820595721047803244905986530488755519005243408142005506622298379345289812430084011295619303777312493178830677424806064894809034407193421983481548503301012905883085367211836308651562151515651958479903382642336650449474743278189807294452892440820540820772193678011192902193157735612108024555956766677939668588737553133531019478409152648747312697751776995523254889501059693803709550612652031091929864915616870677127943834664819252368626625086700193715615850309549544124088723976323319281831543645585642999400702597536296763989247429951800993133589611789791848660337098786598710765696027209638022287943952509292280370995489400949499580008121683409238055283411734390987926741704298219448158197770750216701005221414495080165288948923979333653400590369748814786574833925360520613174954542329309460889031708931566626647842239033886481278011645249414528496662698652091205423005517253285208031088125762570234892978846983800749553837593800549096820978643315104371905325303949155950815748033152361857732877948565790294015491647629481827308959798485998286772418003794035304509817243182795353847137666686137691578516957389688910368194025614421505659460413536758033694655780915007645408197617223004595072040172576429621922021041319315933652443792594442921167942345250462548265280979554140846838163651280362842483203846960011748470112359089498487678874480884677761698499108516449813248684076708495751666677985012395586333627464426314097459517630021688735738213057575214574517231329834269045987126284349825640026623254026261465711020932809625260933471940674652361899208519995270776684564753569195832796066709672546197371639937981575760416216159471482240898050967498007995226005136063715130808136384789084774153689272639775574419563820108915341635538198268954175398525756154443712685848520442388104596769814400311112206094325584372179433627021487830695703894620675081811632325751379791420678454864491018052590346555864547591917227868534949080006128180958134289043615112025942691395928845047789812418918972218147075569089590818476571175638211230215296311057733059053396117277159373862943174630757032798933959943772298359668463764831727234651682300047638865926577412850169305164404739615150437790395173541844968789082726081201273978706657027757713782654222738204479731659763416989264572603671636799193156946706657195153174078904388642596645401789091926435501328799620163119543856963109764679960879458917611011833070495776513960700023571584979301879170824127758630290004306939256434969429866619969389277052612960878383857040413516615571300069774272605047033212544679169135710017406217937901702630521531160240305516569543703248884444122996810809069223109743408440423867301351416523033562734467674587419420229987277183153071339425208803048296811830731759887302215810861812681609942072078658342201437927082592235937714487567833281720607959784319933912945643856967609940615210148107380306836254319791017337316149584842910740829000980615621571687298681820823023250563486861050629302295439544684454767715411224273301659713771019683540157525042160614894854015228768482177122590428128317239542496166530158174750295006622808076204290884718418755485563328192775249972414028219366710245072231367411042320574127381099809469630406416019467299766129652166918663921836181391896918544498822081771693263787487581702463380236079529293665542470797167707324946149346914347609636540434319796739658108962523856159821645318419945254038466584677629186854541296491184606601179651800502660078572285300962941075797579970048843420810675060482530918582081015038838007263533012177045872059740788671407403314077185870336653803386765482298926118848079260491064518186032295413289766023382726960777237899919950730809591193833735187123955309508783562048022895215563972278818345669857385869026104384730676457523150735376093661430500168559769155298329837416045317499937860257527550995021138809390507856852946323543601763914589362445777215469638582354280359509353029995068045871410796596523469870378724311396108850570170599763607730458193554805487440935217852696970480370627290144696458413645510050063291675444359905374777656777076377146093452748911195992337501617482327031952323135253864032629888537878731873234070829851709664989962165443461780556113798753018926922866121846220830468704993239083423029606211226210955209466390600743044010471135270107505767498352304929941024231433398046018233689272170761603739588587772526509546756249547130055702855779878567689525015564444956773668389787284165842088322709957591756713378207411799573473673471943779714349544348360828800840809897165084644664753293659498897307909599274407831815350034166749744950381372146135861859271414084168786247019661642559831019730090634899983602496191928251648248020106210416257702073741183444677815322647983111701666385295821736203036171283485686842432726808831379905663797941340097593118765566645379941632328454141322200239865027132473237856142328031502914459476056395757075961280525676871825569184886116590269054643909426832890478316403870907993191712615094568679581894437496249050596190509328320668651962384740643495800507411207518634516059047594467726509729637548435907206116914245090567848794966976289519536142741194784701220760001669016628371951475694569832834934807112151338639706562766116774297576867559319576590399690502115065937307395028913871894909038564386978874914195858486510711757391859289838394160901988019870778394227844111324398833584939962393187801063762583802024487051310359763396040375966870223287217968015172394872332364573833983767488331101173381413761164286663508889815826975463112524199270139919275957114965626295558227416128542327388580483396905331091060964867752727186118044296818680580806600936709882839154478523210113056874310923669645210880879458395114558258668071449762932515862785668272726180914203322392895892485980285985875413760148463771201374902001835050840859007214177396113213377465089869138436393273624618962001913790321345888245299424807030258961628477558419079931208154316798562927667348758670765109324982400144818907030166043618213343632623516844341354157212140752640224258944736939733985448999496246534929255205784745159716055002942004487847635847807982594081603819873342159416358822800261227404284414815973715037609907423994250026831280956416082434228893278522504836854641834435607397149538248577306785761222530893185556851221386645008003071809477069272500116106146570698861302751087636313496949952977436349928031652374380541404551910543927303949009124313551137422814538325395284200297014698432618864532155786165419944960958625040847182061114107849880426945833926534264212160869494797449560951311817483019815034511850088178737847141846292503350206400172450779149805950987769208245156712070876625859693429002989660754212094729459536740802561588130206923298963806426461420270604075765443042190123936288995330960808338949945516587521193520863939988006596536357494899844418669905536731967390186136810209177406875121308389622031919185988527131262299256749695032083981283852678441941972418434624994734057855409887325726137496570477948168374321998885164221687543970872822753327796543162736597900226954329595743176690722244252843763790463031121039128774517507318531088028313439910618424817418688714504091350316782462203195230963721894451578230466626099841489648110681312011628040818121436277975724484092819189185805025561022766047714702027293839726426470110159074145081526257294962669858111955540594909280616080524710504491528358122047298077093024114487606849141642085146007632067498136936579248416134787450784763757852505759183267637295149462997000310378167755746962591784938030862585791099812240379409560541651121139100237794197196834587696879551759191892209729639602821553004678919247896207691178154905139921547787210888265403120264422848446494848514972824100415579119618992815137499876554777832544145710233002945554051707328487279745205172289667644197588464062154580192083538349613202680830737671171436918523436737217096300352660257631685813713027419740562412268562162286640669749208300076454909029470847677668036942936027499146840147459860875432493439718900658887671305186930677931328509130510059885560460152269593444025909004050872163369193737857399509618419297675199770182940680513795874026724442223564909793292889301093986128280039888170286915621684608358621906846410428727572247696917678084727698600797429594831567181353004095106967663030406179975742938531287725595619020770564017162043527068705358153962172352976059500444351490803081783753174012376251929572767091870393339166464001332723974061700466507913273558092228953768055311640779946865670484244641325404938247452958797460100302569027318837336171514088288403190489010827455498365745023158613153025295406740371978795671782150802673546575617173280914675609532023563589274519589312723195592464142003069050714277328227424325603808297812646886505361611269273474936766575983475708770455520291052058975148559219854716027678402098563960084423081824929672312489856096936252510503531259301094113755033818725592149556452894862609896112295588342605803060864835047160776325556194603802965130635527189272998233041535777535842920331680262508834407939319918895028681872377690252998018820172415395795540718172969282424721376748907999635829829025416190644924008566601264951546673723357536122718484572438127854467010054356566900811713362163216186907142710881079290492204897287566339155621001986145041062386192812251696895719435654316722876454452156064576890392552006535433333779115010868541396848882735817570402718398295670460136115285478104028745400569766085223253236779918287131502526550502811679953481124645701810159015830148704841213142711989329961724610732187178801811775597804215460806615472318928206027236036520435268838605267186876054336313618459298547314817039271344520658790024454961202137913532321812011544361978379275862045672469190163223886245680771728083528975805837490173194997584983423325533064935807696633714812595042625430226506396684876465913928758230548342750451900666049894307984637987495120836568901304297342207473294652432722466593125444573085836740765244456134026947360192669644347209900108534200013957485125859339083128484784140114079074318237509957039341908505365747976126711438201411322744375649275218436268938518726465294812408428167337921647143382437565388547846093465443999734242227898290766755164631539050163437184563858049267698110457066071777178833493789005358451456914693461807667194838237023948225082238182834890516479370717774000932260257395569045158393685219500592189824286453464441205267437873825770737559846555888234937754367718320195001986618374365167149836972530472473081938762290184961096242067662130852207015961681739356082448234705085458039152410527859367940240650332174856377201073098989025828099557879605819851823734827871393831908137768976798190743619788357222409819272949206999103831647926400799834564487266007859381951976634016636081753079421956215585921101061373841555518347064614130521396115020959817221767625325344793085657279025168155016962241075172380638796314351155903224095662251419913500943949042007755202319340908460344923386720269146244458359764401120588532956526066774546192267688055212280101584905977737436415541840708909272920545919170322818887115044247302768245545056796869766603892644392071395169509768581026602615862652596943025687915071592263184828629879666528953727465706099186237333397486953596009712323139926800143610725341752637789106726877017729358968582919716533708319886378773557057775137876814560166860179170281026030496233490697720463285736471815224257229326922398780555980442205231451739662691846367192031536792106087240311793938669439065917577799608331313989738747845497201513127427427639769940611613365847109035917248393494460380679314734937198185425907306490648067081047267104776504350224086126142021577318785124474673109392117551700477095865176201368200020904478190990460842164654958776127974082776941291235684378654930312440182309242917884602908174534394644127515276795541010414487396769140353279872200857545273903083918267276174357837133953211887188751965578860578355120709984571645478155543129293078088695318260056101429791940905312375932858874478908226177409845811135376623263075008565683924307762210933345088678319473084410845550105571472550857138970169621172882417737837672540129472443237506050601983127105910138281599570052541929045125059846512965125613291581644115155529681110332177799102709424690394983407243261585984385665105651507635665394850637079461528603311077090164091756027570299121680774651631434137080668176568943946397596944892127372841195124562171104152290071621184461048375239531812934915503013078733843669067621526045239404618494875593585237978741117882972938632867275848261483209411170126010472784721343384835757461833147723329194166866192135302271507900565514763913047506403551102597057308673380235455515349157656391374638362676460792775809136869052322938027840319095708414828536312838313983605100401825910633222444883371102766255909236844237195025192082440976124252124243427186909688852007830085936038337836607778316586922754891697932972669658914214456925781877402549588830853596823287818644923375507315894511654508860432014934874125706200434638744856521777845197807383989427970353285504452614099249913259894681656834109865329799583170653061473212268223332158652169709754637037838680056512019378439792102393855849983231553535729653011104156301972510306108871193694565715184168983949729236100001362414259161147232348488812377228663575409489836069824046004212012478995596180747092383935559418020378802891637298655526809992753549832523686778961062725043122301204864127772753662678979450383373460781724913593989429447057534503336462971298817373374192708614437001645935951833643362366561509437192050871118818370255399361968104784566603693780859259595271170819620333562899907669617203624730799053700239688741523548339599356629473973327195422883233613622131741181913619256385137995346102575021640825470238424091657563509160906605176137672120557644081768777415439766393263475040472808662274997521448991595571537360808548503873847873040641061158838865295048420553493322916794359617737495326630123724291675142101820213610910899529429720729180312908896759040236226024082492288061158171660981648173583130938407649677678670197293574776429278738807027560004933902842877720832466517979070881552484162840261641261022420337043481927199960392050006974397871112715863650386591766270593251219380876764263884189914729597281588231067430432648817364877139464776280968341488404578933231435885078616195133948247521403753913829834678332463800838035703646681696908618197611322118700872539374977041286633288539408390562133519139806510445070463658016352712591223294826126173589541461426744722359880114037868159433780229120317112697532514081051673660992228960459592435079958451952363704222816584766194720913458565927967512971760790390534137297533769199269117538239738840388804351241829756094134099900731513196137592159655552239904636965706576740396949600355134548465698971207659652738357325398910249909918934386571937828939776552001629197465386278819777497258010552751723113328954156350598239584062154646924533507302328737057237948267223371455524345782997569019840480054701445303268699205019528878013711278871374093236594863706121193322251416782567090482224885049340434225589753154433108173484558739962800488775567204098110714512937951122794524637705180907292654351988346891023823322543489187210029481706709464937689486155932018496966300292735421073056852963821400707792482520686834420623062452483122628818671563477983323310412017759634590540620639461086651374455268506819226931524771607580264505628880433215789512311302973690902385542619283228914551904092882247476893270917903953804206461746034492000537812889514984563504391285008088365646174469723356147743256519212477681951551951541335633681412738206806886331647715049353134046112729915241753199842853871005695770446451264610632366536767099294537730238011914093760142581391035610812358810428837560672387070934334559848414364052447481059967361580172520896934767974184017235148834023097633756643463527698789588404466486780631337641225903070354125724517078339098519779639174944739060670534447483255232887092580462351599041021715140290657006276001782506110187085495581480460687395010983189082282985608343072192902923246253159686146957036246067413032120164421026838649069308349794794254873160420531574886372817226120927652892431771026533895573214687529130209085319569653514119965903041437824830059959692784894197457509616441332658984418359925330441092287496185040706270267305453929944869586034486806052526004221895821080499867897020308955966156096137848767764737604539271334539823376374513059998362874112331610438046133276813657565886451241689247289673000236058335401069397136394287035793924066432141572452285109717064533711656766016911835150004806784700320567929726303122386382727004551012881128927047165981298372370587765322274822254297060878909624674328480576895893979141900312212772023386630496459952063847941392350210540770910962649971591954830587034677558619669242568755854165645429959896832111824192248572548871023452694160957457070983376084681335171597165619661534268791716862653261539796388971930016113527166839972669116385375731510197681606934431480167971667687430496185530987504622509206315053661829913433476545350797484454198569514173939715986793081002800448174125587076525710212792034727613507777554198440971642457652633748554190002699693009332465370452486571402543943377054713794137205725518928802190123856367594692773265179035274668011069012737276382213953262777904120284292268234868628242812198831465354143434992364170678811259615543310936837476553834078115242709454770223184294552521068410187492978459839660950352683433432840945990520824623187528553453412494412385840679706230363332107537880069113379117475249898764555115996544606937114263287906059996730649869555119785313997137008543258454769471877167695658454418603072739785257495879890164680326792689479402688856994709377486938957713262025769743129513732242704759435640270809388135075371340611740696233262947111873212232023077194414733425519872360077268179652304303109844068394812580349948334848633035670293080528677012015963007359816308033604823461532385493115045262117902366909079666005121356070346075048003868016222044692671336758096163255253037573117001834552683115509642795602796217308876683519163793001657605241247968595997996500346559722811042358745172576191237650541880079620809305111937239769094927375466427188538959736215889668627381394019758801715733347732181051697073015682255217557083224555811423939938888610462902639252172929291381439107711780743712856270401832171815316417100556720987850839375945069838827569045333011235791306946165963662999112017822920058248343026084991990392723757215778290551020445970424680110143350433929908223517906121535514909641041839980129865031969383538114541806922981209307699181768767407955631835212109464395073642607250170116244651441433044902823018717479275500049161513657780956606261793404197847881647452653483719651827059376394683678338875286318617790500622785245424797258053984338049768081531958248872675667567609438573187467768126142725587291937927111766558580913138181755843703676551966982508817114523339043357033065798891580613667238370747583923348830250804989666761518869991672049547319228636405313522399819540305750148793774047921863007024418516277478692569117207047927763524333638325187533424129565053758985479625664272418262850557170550814548819630958633700446449920709949982291721508877644547217850617252027078979823114652306241186989439279197114952722982942939320479521929635590439803357979148722373894624788031377823619181427638417790815815493645200510343449055536602859713232558674490918581010593502235729311051855069754440628960330956963186233269787815607577031979440046090561374348351374259054970356482855144944110755513575077766824872718202711058859901727227750851319267782691108741742346030148309374214353995397363211929501435526049696952912151931624679328819981951661463926763318218173656452242109890844726261394143705157394507435401482055200497574508271293248842200036564669352514167127146779100849777190732663970180386335894006256033212525508538757783690558910728866079100647154199383037407861995439366108823852410602854659489430761425541626240022644240501322567422137269186461658620984313529776532098619783174731869823879949426863580091322207370514218469764547212847276432826976322877907705999884302762483228746345457668252080475834483889807321439759211348337983923563750573631647650754934424266418186022905551627441331835142830855354491636086742347623129104919373956113292661302326891336194372747039686457660185362334541089092541749677767721144996404995758991372094288577513170552564888041304801085684485307121616940920513425293494922847317189628906220898927176854815839487761452659459337079523397620492253653473114012526049186580479016004764983133388313481458949425540975075619028053365116915358140412179127386024825355485066601172897515523406090525293737143175654332345252892280381321794207599289110882680080112206856371003898469569864666585463446759152578754190235148819439338010872436161298524105511934441004813616474486291357403360736622998264003151180533419396985093662492217338836505164777846320305504701566655503935511737375061800473636977879039962249129665595780382634835373843680864546646727281649199620487061609123507406310708342794685894745578182513478864016842221509610986837482438290960405066893817943149436792422429944423983196399303128686285109294809954862729509022064836442618520823879848006726123311565324997143403682017394801240986786134090163482236034092590230171559199934257253732668145012644932568834619910385275555264861413425168633528863916151567513129389753001117359982006291625538283375649078774669505805255986802021528052522696296049286836978800786250116578335341809867692985855235022703591820792578534007305953018310374158404103288512486890672482572122496014122838623899454950696901065950778929550668920916408902989563408547226051595810902758542162421407085261636942381302843230769613591239055912968675471132121997300270245960669140975564230721507046909792120353616066475140051745171334099297370020793106002861198856123174350100683988946915492013702445897503557815585085595017745904295893666603803702847107259832844276610652686732033039328126633802278043176212228504947407149836856721111098323724608569836575571875265560556140205137477154943467426162307853638096165945230620232539324435268420822898642862962633178574259086888725702274492378077499992317851139597267310717138153428723030704401152547366109474269691400581214557339780276404334371960317284567522447804426973356145748237747245743341940869265555864313334324012534513989247541817218215722786225859645900123657068854543325823861856814176470909072427771103470748364038386945147469087166346019143209970847319875474438509768040320779582122226730824715527452418547760757376057841214243224005576208623250926831900969528273783823612212685725254008686224316844896097451540878287174201777049507504857574531300071180683113979108947477696073075881175640728712268428929368266317002291764510674883518004515193446997682208840105442148947629084773594461407728373428628838140336138252655213336544464900063421707471109655523298342115427278649814660145506950471612644116417128893149225813720403923961406964591331964144768383045760112243255468805867340998275487987160506609740536976393954449586101019248385117725290802859353285889347434826499473263407514507495983263996853933872450858249489446213764119955225813662146108606968992720845775116263261519720390535616064476120136325329761851008240987690432484707698658385484885259509537547049152886320731551484613092691830059961897270774441113566667109135112065959375195536392075657753203727378548865346479724463889035512848232333865830110892081708512919249028690069737248828233960771764020490141089652997467329009810799834869084983893326275356022490976682456463204924841686194216509018280427542233513067021895400105532788676406863768468459869259040569617273172297142923418401486360951206381071312223289780752485462685870201918957915065165606499285543380485347941230834378470582329095394327232708079346561854365481039720209466845151077708758480124031021885394984076752886492056836080204634000026617722044425274178827130641434987246260280624860588271780652358959725483925374875513609846871066117589561805365922950912300465244397350542896273141086260303030925277728521874429499581087923981496360303444822070516032156853824911724627612144369363990839415216428311513851878406876969592910263106573270736508716338018011129696446130459386884724816406892014780510839725311400685503713836826454171535867476706931600761684969810051621571181935764436919418145919125968169627153501635655221041310459177174285578931522800812954512310290861337645950566794759769121973436331272770979135844320430291857119020677770685829750592591684555902524765071951631042891953640566273575160872704713695107716770544836019740285951527540475135957165032559263568281087677243967706501631485114686769401609980989174426544307398582560835472579401013580854596072704949000316546516905203687981112403713766506701049783690388014720594013007710267239796465697396415462239467062040486016343847965628824688241434486811470971420284240452732307128555792106137540791035728491030611614518080712128329876384152213165744113584152449403212571597603870689045254465157535731696497307226886704703464331529641289169038937192158447079813313942909428376982622600077921192741131972188225368093384651129213636669426250306078237987888005193698095285438769538303987966762875422531828747647055772668445579966517712296497016445704410471521113540550780672109046815925532159976732460536872292345278929338527593831911430176261140387320387566685757167234673400875703319646407032950089400594814980833905580555450334559580417953492765038054622468029885175294038188373035917652134108490972064410115369151613349237225090156211836211410298325452637834138613127039681950561282246778792045044718584568834254721483299861804023314213471282178840359393300107728848825899462121806839943370303344609487372536057344667284276262301990981415904375153089796929682682750675233347540426087035293791256564635100234196532481765529107046488596207076171895828067109620637473899445960867902013141060383841570122637557404892724598481814778511094274706118475914146658458636068845788989151702384987415937372866101959370034919282270922124971073242773240271960936091971908587694733525425049146947324816293329516208298748409454078460893842108679226602705202470382514326708195915142202309917133024183553831884454626845823608516617704526039686051620040592792593197305920915217543090005620253416806506850759143431370190691135354076706543653465763153449060956378778264954076717471930792408827792002737027379385361354758483933322904114309132993796551324699670340903425293855575469029344922474240488724758867800532499884687310078417617684649843273397272871358300231029824203989032908998248598438028339560788804256035239322671161221058376822595596647081159073897088260586100875652035714895505334446549935764335783498883995124695160168001467274950710268343942378193354930186508154767481173896863544346786718916295017659790083135497593786313001571400113398950759085266508651822137982082962447771702677145851204939782694249616422870156361673049931770823033487810361235275322141516601332710693004628915555691458770118724921165709901703518206428786774318556135599043165585197110543970717186570431320034906313731764663639217686388498335983665169995224899483957522201660829602713338100647803353549312639287990275082331185527822405717408211918775510520815051468877648632799697200054739357988898694839558598141844033592006495406006898318157753385535950769532074601138977784231372141544999397478764515167725076478610650750074347353654729957450121567557747946684300751146196147370432241382997040653476435271399111359466643381956991335033184299982056082127457741854234974915565791289696153142479297872393746254662102796740932900156992359518314481971546127160710130601064363974664821352549867683106485308277430250494979881295235091749600382123278597881936196915682197089841226931452253358367294333700005904854109866595931445247837558770512853802367130869721654802551027937413806471879534147482427595443315974773393504732884171702369711500056514689403476616906700980330684334767273189720254123156246464148714365574037218112658582160332565116946031311163385810112118989605477138796356502702576862517345012745098250883182403669454182367283441560767865764838523641247254808464098866297032558618484059577321169095443579396108731849872077657012477334091636476239692140377256101986976936837856724482184203613910888030962194287610469256328260742018869273478316456663649239549066464477271993064267911000800877887923752130754617352104112347349843711389589897763642987298458577145415273622173484797219091548255027655485355318497826492137108203820324807017590453736020199886910180163478853904368111836244515116876639973384638108131769229975107219766862980924668976086919572827112663038453095705256833374482203948347205769049767362725168838648058192807199441944764863514350274382212693765046887899691162334050115929907169818170216008952086803048679681183705173931225682258752587069560422512843080966315240336898822443390374978371723048426438956526953041081363931789398032104077244472150702863203377922941196035545219263038648572423481904273700105080583449943133916446119380724331246193951570195897700674448015487126203504759742524955721508231629519897976742870585270191467379119936319521607767084206028243222946176163169486289494235506282159787815650928104829105876080852617798293837247253418367571250545082998000794391679161599812500449794577059126892428189432562878127603684330952054542395466162871493536258669288386645647606971276998941323133885588391477188009013154717086122601446906395772060615516420231375513190713727409953765558564960081802308175110005512756525587701897890651449387756027029933440299125248911488860174811159567572362573089263533233579216362426427230478027264596857814932432731975027231664469741450161833476078516679242085220032057604216132378074075132108217407749962238739311321504751373418356763011018328613659150394807246235723680428177273220794953825173209589370813317050343374096790600278283337166233036513886101499538772391355644570954027948490638735618359185596132630637831502250476409643354540862358761404227020341642470400614567547065085017649121769083685508777995485995850995781653323313228943727000197249026262900880851557629742602117708601557394773990816256720627324732288226719197869632176098474017136054541722190251491373975662526971506849776057136320342428025773706095128831613505527155147330629669914320296111161046867948201081738548335115261191751996918564417337026629314824803440365071550861710904101446918547893750877940266321729431010079088312879976069225208893607156835286371725503739201719668074764488019852965060553194279568395703548917215903470286406438278779333505707324162501261807796195893855432719144758239004058564543132812968655575216080559800873371264451229079302784357251788263599981039721237877803176554021966006325978837277363807137887838533330013487844290805995588899070723013126910435795155395687297968036072825970913788576332684446033618308225544366704073382564014554437538860742620950639927793921151694731599259112963099894329922960488766374417904597907228441448674831951212214367456295137710652767976949263048788529926646972289356722464130437554274453369541246158490649313702065355175033348977899016362441651044894455361862513629912435617015156328761385669367705852633437305823565554988231862093366868623643705512901008428366816101792659641587435838993498941482659522248731551701191744375186415529609740004752824834616660487067844409068426728307730939788131935858585332875027942229193896619966998694814826134643056215809315596639926521465247912749406819533246747633768848465827201350979666095749481747942209149070845578368823131167596332665503910708228064084751363520704011414851341419493093353907453485390068645065845290940472197716999567475783561752947382186054799981132366934301851723930326060947094854724371427641023542796187342620111025288129191484557097759367094931054201416949816664424486344739435585581806639122157112021159410430669361697665239198505045991589582639034173683492480484368471344924604709119899801224641285438800281788680396771236052927731896821010390350525635076871015074245904444382410407763479740123004653107541593491633987073085555115697814159292194234483693771445643914424983986695902173123585768128884880916743388497949519217297875410943917053789028413247944884809649120177513834583702987892197049393355775026927795180270172239739077031131610608749283244293553805890369750950827685006433039451258899946624566768929915614011345415984970838350585632450291943588303891026373724379906373197888093313672429941965826223976133829233388764200095222698608763052098654274238275908802863982829729613235070274199174891520918819836963359712055143149117197141492473330982651714221796655311761136657664468881272658676288273698907014305126467860603986560738735552773629793932727882104680110740415888285231693836746718157404194480125009799438473491289374125408821061400179981828294168830970920511283733648756779685215722644270919044581402989797782095033939406025505317689497763971563672208187290454280082631885009567051295646994043158263293519893092210605246302903500714397129151746306534836179506670758665030536249231081023733104536568405535730777679825241722877982748923102401114710297196325428152516068002133117268438360266633962886564077136992088190691929099993412505558257826134827851306416201198752578774077925193978194627251106411861215560456827111411380774813500876750876911337847285974925054475884548501821108927624492564291799613554826904143896526582172920625479947486741005650504875594401227384984565473001325033144207926335541525045106512200261872242207981643999414370603831510946976210712525582299314717103577117522719027100053578269119314137514137109826485182087469584338596338145690799507994095328361103149977876138981630486772873163545150638659936632967141290339435517420652907917272694203047523057087122850712835519286886010576285442325076048099451672176070568350410611202742547357867635541522066943630881760081168779214139368167901920585989239700332610852797337862198969521657790701559949505784078763871867503229224695981743164481875231392917169981739635833834866506146050559686242657438708339890623932241434807795394713108381430953818534289762232657606608286683357769723691157652161951729863870158667342071988765468645349209214850269476343183879716163410962202108978790481280279597841044272268776070955080693050747612502921071998153584763664728074599514782625274026323567751319676857177013048761202457318336550613216809988936356063338430330093617522279142855714002444816337151561650673679739794149851369042481432041541647988187385333871401763897210747068131755704321876688274414481324508915949258294511855852268686316996558220302844272878919992256139565742165299606067291865412958812367071536309485237427526179713332584497245420280881478048901890051604269257597501029634673576188924631671256240190430670838661149063017125775198017417991611641997257076938011503954472738844006556790368304904250916592309681697864980218641629159071150381313913804513532613134661726417221524727943403087537554383126213042944216171441004315153139590098410084889861797421414747627978587615191216784669140153734933620601798859296036191573595124658585210864669879695366142327341435076824395391129170051460733646149542779314655157405287757235151026480330556695737290194467899149775354483475114826712085430555106309080061167424040986075620392743102750878329213341460807418886681358419784263410402870682862724635625088450220764727158524462451074494604079319311867582484485428010036107415408825233076561810464242491992950167500333299354173642827010536632379057407745706139580006782379988957826151799413017572665035810569946514293274623604759958178350762824347920637256660020455413919009425200933601456816563318984353748624244167658012897741053956198814635062344896666836815340263254655580584302498268854619431345159776750181360695923172140848125470761894307363436463080982955092042155562635426878036721493071272505668304620203154923073540689138590583052198625875043486642151198742936100960034091768483239523098666206189874181063821375384335625594289735994258663484415603310551942133102501102027556856893028005554795267646999165152028664123316214949533679311634236384206389117712335201014256572341345806327284690138983348708824354476932441620612239176486988244433223670273266467370625010953906688998080511505698555868768871016289125022479654018248315210958211350723515827024247373037201062902210159282260082330712277912305237736913897727622229509482841192129072805495938413651541136865222010733956058087091649000908067342979485597418505424304797505770739286071905247968046969333539277233345344638811073531246023727920041197259468614236884961347672867789886681550064630501325205137153918613398865639496666126941090624071941959448533232447419043771369472912894484329400154042694808178221352327504002275222995827105552025708299455917014693277807713194184215168076152418889649246520901602852984978342484582366415882136661554627258774169687828033744299457632507223604857142574897099926158159998558938396469210500789328172398550623671737943028626259141700405843634890042763073536132625770219731309813622993632266882256396658552822635345258702510705236985174643515167250665861933633937171566217474546694623839368747323621705409555258673621121242733035041379281846268600092351699629037720892548887435677977607662245101401089454511464240312179613255439178879756644805060302812230488260955407652866001732245125063891370591484281203735504207326786552011490686230603337659996817500344439043631820788330570029090422389337799942835969262003574923518658337414036335017816477858215032139486308943222738592227666310505228028392792886965420564144796774685741331924222156057825655634972683235998658981435268968996479038724661936326776331450418438579043628988226400363657742314464717035219432069111819633314906220780526923275288747130451080195292886132498844381388222788762182871367681178505956953241530249648598334084171866442109820445051179753268464305928493442303099180226177461336275090839131572490896363425691258678272659001561598686412712215747940732231685364963732034774540434584113826255842050792129818226715241920929350236866348198840217364961903244132433253514976952800678017519690741321893793099046417104487417619431295174543116196145811872508309706611053367129269732061513284548639341183394570398418399278029164186959504467296083206482713752180480720611448200778418961131628638004581897734453276167189899996569073570480802965588498200363645200780279021591454749621311917870679859834865461809496279718557120467142984060666501225784835718766818191976781904737123065477963220734920434980007388585632855119351213313391611950112936241460111648219747463889819078377867523172564760762557515190343334437842426726510324693256131580328106218933362240410862196042258167720669085986836377553990268116236554552610532284188141063545500125873003369596044853404685991095410360775460924924180138872843299810247724508970407129895958175591090622848643761964960897617048171434608166165764867619639458293394097404598446188466139774514906466744902237493152444954256948747174645012765876650725499757488234489835650006464058794061971498752186239470434105491048732475422553328467519683452686901709126270218539951327627690322474867927576644071879603844733615475539305556615277842876959373780782217526955551076955314030624013915398911215455765088525109825690774684141660391998259949918503388405048112477577896053223915885977844766034268306843288922205175214698864393511557379471674966534134993049160489216815736879745905069930697147105771944788534664828889563284874905585678243088213342049666694179727338767979070342742708300613831906233899158401163073864202476796016503392172331007214289161821159355063824299367923284200610045503650939737823834228779327625240693635291116431594178431774282421074543520145770260649655077623745275668529047873465275669573670140208139892865246212277315353274037964280707932327946927618365145892270732659624452452549872366706652670310231044331046265107198136408967201333291203082114652715579993525435738075273001024473718081636499045557646188062825339707754266351791847961371986430602578695682758058179840314623989140657665536804348172972100245030251785200539689133807476915943870763530038185709277288780071592575088249424913647005644608136491929357346606300556173558861427348944450229772830628935553471805645560677446770650514673731348810413443392723457074948326942853196712790366210108547877822687864101882102852435625436703114380220520832801459642761656644131695576234744080098846194571729288721063394451992817395500817572113766312456332661783759898474490608626500437569187927721209288028973368788946761926781118073613087884418015136144191464912915185258437398084354456522107408223775566819531557190767498828302865881971504459646674389886724801260937419430171687248258877202346875521872904784723332744595081528200663953351556039663816053045323921526340335991370585118269288525359852701408348872619365262821087184309933557325903566070020055210328412349281134830762864197983233971265836847673697437524295283757680895724618732088292047602703931775595632457670304721375079613561357774443776638322663985465416032846297725194385849604047607526854275456682185501895130392160596714498673243732455822683473883471995993251537657631356373093780241419990377833840350218575721728911373719430829007063771048224844584885038300789898170626655714637163418738146050721242453891625151091656416693367738680278212524438221701234487736532068266530310284063296281328005445485194005577766186783161682737936032467361820455194305539301002846806242890226134759725782562700875533168327466891888191509790828567069042359155132508755341209988517622503395195139222440381066496429537975646511832329873429447780406971624210540804439659819184601685936396315599205429096978457756206490474826654071938601243981442893700561934429333050155858705495668590736386082905135303285058509569986024558820734369103874954207559501207277797335954187404800776421879070133867883566790010055983406886241381820411725524005976220135117427004116742547880579017153242688169417037331317743978515917635049027857770370743527699403221143976350214883333734020450247283608558051214142585895485880549803774612524999900370123310425339476309186367606293142178123180122278844506153599224196531059521797193891950094261386369685198955302452137848938620389797524857521073444717086035126760819236129402169590443005002517091149548892718424871447639918654807610885690167117175761547743961564221751004686083292142128620982145879881443099098722575462043703557652381335625250432919619286183856476893727691841309975961153091854780857319145314551924734292534825877353499022133962989772197788287056161303182507836453995038474461427290506818579845353737810592667717734672580852335365666767305167066005711829976504980057028607773567760016082153814481582119380778517240929499977204704928706622872230253215484245779943900655873227325256939939909677864943823531595385862982150270369508781131587057044193215689254155421029776883337325683673551037168712758640879353884458938577907869366401411648818140690208398286273320296525301256365990808017703059790047441946704966296536183640237955893257808591701342935506606445223317134953859237459720279209771618634245768286905184871471245011251270820339410759602409511890181289475773389635673370329267073898140566949823382715765146464693400075517716896060273264624848011266500997784649316685414632869244667132863304774931720515424755598480913088238290599674149887446122089027110923928279005868479625373079940391253122388427996179173629372868714683104414381457483420323464715783618704320041698676787037283864214318985800933939254171376564489592871272526588925381150177724605234487527659225146689687702661837983938563272263417581638488848221646337305215220362429116595550796357051062597742794051087973767571787607477973530180672571710113765464771978652792707183710957111444977947631641432847562322037666304393807433490329045195882187267652511317645324385883248446910625746786419783324874722543945583558448761112602536763152653539068643971943292873883626188291897293680927144419798184960170307293711693828931325660603795227279899648236467252697574850345752154733052411288121922313013558781520539310564892536197242357252915586996005975864754685729173658688840099917547537609956438719342361053139935705018439964285223430811585109892531593654737551621840643717596859597242049493972948590240536542707415430639548524338670258579716739173316638600971745816121032438917237161730756111103424030182649509408255139786875697704019601230648983813620331993780721943965708362561034798542967448442530925348449232881245603428500423173371051100257449417830146164783241932162822868708188549120587674337844202042727804397976276336699239518138452583833715112587694739700429069483871491859825512421381145579418072251019679150417099445527577154637637139729106991220716250833984984019838745847362590660082962133996537979980899566393690103601106528475555009560991113251785310698182211314101604823862292097132933424900111208249135456963104084332821960765958027389293992179631076131112914283389956694031803749060247943197521382881942886750708890579166147043196120424195854747914265184478492194950967436714808228927618595513846370491111615357194669284387672672801420075510627552891343514664115925956003631816341736156234918512931876654483201581756639160913263251913680812798486950136893335061653481272142516072835209197493939892345752058581757464426244717905752079098953443362907783122163388651285242556908607262631803539801192181042369754275381716289448613911605265559571012634384755584746753669493269138352053862153229267665306721947500234863295216892055499199618645686919119015919938100181140909078647127925276555686334846650050717581537625443614227720147907396874092503361398184143938919819866770663579386667742335745070139223148010345575551233306308519891330510935301364014333845175307481432471472590393596577503993016655007866515551734031007517141813855277817288162987640087752234669257467436177819287145080242989654690323418468940878369118049549282089921792010995062823033464812383873664291565542269436483379883531370139036970812094198039764028598029863340740812475307880998714593719981305420869480586306368724006689533458661946697516314938788771356375441087268336741875446464943685340822912770766574816010558533680752260812754483744173314323796939506551514460902858652691610216952787048564995621913960831458976092471419530597180726931142800167638249220794850000309254877571171593006298277023494099344562164464084613602251375317723074121176862152218284719292545338063213760137698674956082193378001864739566227450184793987986300069303578639471897233776798571194822600503645165821418878200075857512348994492698475907195732561024557890431369884467820609050697576361064405621651806324646768666556547275034670842119245093158884996091182545450814898303020602504853870431624126661523405850949376676930865456596837820631956483630846382834090992611068849312423269315920733635005701741725861092834390308552804305657282974396937909365112213983476436487833835200802356708908762912933011130346035562707107251345737013607311845424043054943327774524348225988455008096655356518957370400027032672199854437433899261312864819268787612105434273755627475068401064065542356579958263348832047275087551472525994345839995010230850757620358172985082142392446266539597541239157924823350925298856453522029850586229886618279563598692815404378324703804456240298635192484914990785291246400032008520807721085387657044151858677503294199295304987606053843228693676291503741650134699141274054010800262552032983638623469526935271062113622449269253509969020404809904763929921629665092317679447594619710622739000051315424562018974855072381060262934829604506518071682471061620381385484114208934167320405538825865027093048988510501986876002451601976340828806864222732257052620070843103865827524103419440522840629880548640717529694050663225509964186888541754777897770963677306004873979593407533625217614774108482016350617590427527429864570111598436891384369379440387597537509305263405038894434586349706750868191934298560899173706133415865661465069334545403723580329266787400995775239311991490044658579987742671116980215671589814873151982655903273064509308045085847452460471249630320822079362290181001667729421341513182025275226166262910928378952850236124478249822187585354264506277021599782157765724307809144545003123877695969201113299819444600730312751383343873072506678191581316944745548207601636271618815044639817444701528826923260483688089176063699832592207447533220438665214414274305009266059114585691520121321228626918718350237908711488484853023400382467997130924617090585138928335349471284804974174939945783622805802159931370995311438102899557484848760169853902334516852410345081496787716993836659203620658590522984759834121545583285953803799353646246513873429886357437336742281277705142689665920562515268257019798650589457178660570450301445257083860577704928328353476211631178695033443922785980119088286448843678673271731735936055282165788436650918767214912366122090073271521467811444145838199088465780372734811180436556973978336758985270364906980793439939980640245589931253942918977641876841300026349392694706826770791776728280806842433790170067768188167167064631021017665698319370241216282868078105480652232344782172980930146085403149329694635348503688463379174247647992402728911548993135658274960868531023204278587543921947383459961099455356644146500955585158109233437100632667371848357392990529360923419651042750170563490762988224065886051085211635137846448681504316278010482648217658805679746105851832579007328423347643103319314088519482140795621423730902607154460552091529823090730350984360923513482554461212181779305150797705585613616170890654147843553705355324147206167345759533133556510392238678460823719939595366014995539305893044947848609754605678364651656657755494358608127610011790637773196152770655277668857637005180830570446989622873314634000582146831333271439859342430145680965747085969917002160626371603945804622944748500600235619974742180576715890827644162610857846059100444797896268037115936373811320709214424961667754325873458824536820681153739293623558046665280819992590297175309675970653756328424348053118566686318093704574894207143095922947139660442266728491088940123153250062934046172932532877506518164405165418139544539835835199926691740018007121275425363591983029032759467138766170579379423814806770240535720063209403004860005969710424675843772838456197855247953561993107697884702838806107516682870458234751741454602369679261833940233839411340158512766556284758534317594236763168200449800164687586368038087200012154227842989615623483418300056117037933997905545087373967681689141231843471546138045690437769547005247320115293210396519298432345896180990275724581639202665176376842554933028814150388888164054069186190447162743967755008475157041431930276888192199084827254662682952043019880150530983603771828339237582425231628136123285024067969199618396719988600192523830474157619394612574986527817532043530885703866364676211168455157970513048581839729778586084806448449580186647401792058579396692459226805548162927824853858080169323806760614530032419948119352263806207018346063603805585376506008665095495110268546100778047826236667926925764471935866936630953154261153766745834329517072387781939042355758258720785380519049485071017989437730196324698605468443179002383230171590837656797983991772454463730858833124734024434402745417144434632589669581868842321727694311696723209602304107002164103466330573891036164859092019857245947435396822955625976538706219585546619794344849977054470613408681663948746331710848498139553712171000218363693068186474368526556018346643692204015228094872707880859253090482529831059866963636891509531425852887217554731281495256575226705431497528291261202718681719451831283152052300278861855661889996486492304669096764808355459180569487371385093996633577084075803637323562957849874124882740707224854723759354726392190959920114039876352312759283518749374681136926030614437529915697688090921457184805428030983674620908944201234151718649079001616223407591870471553332512955534645683313552596021558889092993289476110110944151394782816887693991438938850234931301712727237011519326564959085504480543048762517980114518832568286610687122778861787370541476056448418454522595194196008423493507987321455526681115843840040918479403382177566924337116126034149243304947435168257393389403547623513122447902344153575492173826008572259094665809865250052814984850435709763464371408142389112213815823314852938122073247999820273099009113474024460187834088728572823784291525325355949174317114776358036763318184047443910594416442060229090685721531083443118053414695029819716955087732241394988786806677691901573299489264196327901400716506743555044050373063376238168681464443558035585382596798184775795555134351248869273523649899687973121475426118232307908809629336695318725831446580012994244905292262626442028131262477624139239077688706514139729640250823820287396874152407174343532316798701310179357693318864560117722769684124302847551635318093338911666137119346753555464075677696154173066572590007891810816843992451693417039338828082996882963451812182016303267057415353809840552821119645335298489557432900330891962733538645023417490996212344961026565079857991370070433643893622927372455175417156474466739202262132873484499640316684379191763171457171149508019939330814927871585781377455224876541638802697688084234557002784853745587077803603407285086052540617891693767635658149116313399705102626786171927769413105796398076615029968681803967478608607075566740453867275575679843686069085002854495703137379908561223433125414456910706168168435152568470457597369112994383885041595432248489180894916408123950813904835489902006742476481979862663490551134731676455033314364420458898305890927586653407140711612854894582214419422782891731718391445340984207565963071381519541052014961881346269063040705073705320398456373291254652133301686090040030932663680931055121585473083048874619978949333778353333163912749915598609457885752902663376458916570558012504431322456110051354845495374780732989740863830765334593551795230874868044078360441322458373243068349350425408844975144554031124288674970705051630029934370376528224700350108989853076511915489072056414712291668577347388357487487143312514794644938862926264696310703346818165464999428495915986807706333389775379933203442337810373686914657866079698944571777787674022718126272631649431158534935623584534816105091304361779118595162211020737387526893555658338498225119570893680510954699235247870538766226871329719500531115221333155919732347688138860041694456177455365764226655685780908189227384754575051591884736348331121164431440425803575826296931241543796713654953973798668759869219737778766798034688042303423271948589996868344916007900379161532810902617264338464062240698241795301222080681864547532050711245482463658512713463675052282054927648232296801014770606839903695293381182895190189642519274524817992827999998674295887995552605508689288985950573025825133241588089717046209632451405014384051976449734051296081957673317444812024985108306841877475763656419412702130918249622236690976106140099102712504770649895115255095856016402013865846315020976879120537202119964790055422389852470976259718415709399886288240237099800895401637350153963580439570258300745590865296725773313740695707082892488099498373219407734748134924464184516436223361893131498400047865544743642505974321410296705263504349334546234555676691661490662856028932470036562837646994752683137501709150757953775775191607531122056116862384034072478138082206670520388884873908042249812516356469466706118049903733307251285202313624694450390267704814434419687322722641108506311903878279806499522362907227461074428657733505578561203957618016665054644658532035995741430582886593955434896613176089714765873418252773494554238964015863356984092107561102274679406683641336420674033753982212848438002539103652828514511864567455129706061002655660017181995140035969967255046139692991112165247690218252944843067901697161615235939996049226126720010321663247365506104495786554580831414553555486825016296446728461244210351550938458785051635270048676743577675264108128708057888839537805174434314070008994639009725876992140264660941457512743581550532137554668273422179119859984664771956205726992672600419610894799050144091463644168204129518740526926107467348482617152295860120156096430815254465030000537772211101499932470275645472110410046660649377659665839645900556425476927675704893824333266294474603026272377499089421582863418363903862056047425970656522394828203858520893758131598377594529303693913764597985413413747774533856097632493114458582446351959933704009757913020421598035821984036641174812412651173431534413930228328823862461916702156351971688368736986385193486398544894321966613140550375057200267140901585864354647365742536169826287564887894008661558710492224735759862900085330786500036072321719135407799812822520801884943978792228050069619533837061952863102626962473599710087536332530728812072906746886950202775685049530654443687086847476845342281434983276283849066537104718072241223191294005031997152431307625609766419723471855381466977628394032065090385490930670613907622135477950509574824887886485224406788973338383417210498112985006674450908813931009268100478565904717386402617868858185220162205727020192752869002391777176958766267780364693034015399651974398692220100901005351671444615645777139247093581162683839841566611021709073530855214871583218320937764499208945566165989505268450260728307687919169592763857509036774112374867317080450233837546418557315197649195820204860645873014240296945405641497282765530082389494957881831632268173603615723066298898858879933914530781864932439371905829960993089586614264466204586452165754010683392798119926811755724702116058454142345035833433887590206040897541877931012660126249241578475812828528547711490644027889865118909592247260194173502158794167868589167041391701481540003097859801231478008030688281205187631312209715796142179481372867154549562658325806555702230344585583995424758901279617453603440109440896567574069879039730416222075456425139290673846470043752757788117626609043723657647715041141671148495272763189618873405643183852915041121026161528980502337386154405972581954020175530227484525994174489729545126140905489151148013559299240132235515646405974935114896292170725853622683957804048914683789916011062491098897929498633994023837280697601896814068040640805532550762809955303503449533619192205901998010783119158026669791433456148619905367289617348600315900536363181548811930148363332828878337072117170457473504181402062852730332840475774436721848975308975648840148957225175428015885061008258710556015603033448914127683312152164044765504426341025348920475246779546724427352982439888703475083731009597036310339169337150467269737609283302173846593148135735620084791252526231672383059096252817049488684088673774453144406132680628050555438720067276042594805032350149904495717519344722064343717319880203875894204661210557390462749633813174940760972673982492027437364304864473305821212855673880850398442002765234820924902543280782206948593113864456767815070453294976362087918798392292654727972417564406555009721328664996004101089224635998297948693640709201739766930499463467186862215013100147746185339359240698370344497743392705981966501467947406377386735478149523773752148998148999230994974311995807179017391525219848811224106904672146385971623505713836660720354450658382585948668091465183202316103927356939411919819042511984078800236389609884230723086661388460125699228775728274186341137888378442223128813982027844801832024577567602125355682621784295385910791558673508139017326412353540439147167152400718162563108190724116473506667848054515934419879765979024856143393091927188817280372373499525360829900864416927110357752826315432739525069645399494116450993647620318600470638251191739166502520127819667424017325006648682927532904217257152661674366828436713575699394981971318621309904537664748034222589295825861311886400643622554686557845309408770554401971492771850962398190030304995271195638430723066729273830259560856511729671480264192976248630563174072146546430163106995356021604525086084397614922137257563264509756496982372120226585579055786416302171358979333192860640963783866086458169063313466016222351910256130321584325135201112098661460011544013434875856817055212657401876890522858343658391159500442850220995207219934214088260143267275037737784712509462127641692865837574383870200183308174542133387772138387947056400170569371703094731287685118400240199275742583376020046588387047755116403546960225609308997173525371095229135895297429210660495046425466522989512213092124381013142378972604830253638128606372186092485986576373297254156116481990458010754675075509295029833736971133863625229303998359260994595895470201206460048903424925981916524962582567949049657718378570095033147709742334942742401342173044358240508759263110242371642114786587236344794197715443234827542500505861543100330921685977918957798263127109739287428345873073578895080566709469654740799358594739996359500392025116117438214815731545890182656533759733766147953229822914209807145867275688795660620509958545105980007458588902451943155918612378848104261446008844137603355553031357252767659903603266124956847857962470544573095958126525651330628867150219209238439207200394437475960651510948341700815581701576904436433058875454122266566173900266958379276440118457835827420883678709136753200090053032327947309422715931725352047978350853725810508816686608129325066773457984194132562101893583926682371993999869694767295690313082983092256048135714259335266496721356255931311552364517701300072216241255441199531222309860445070773580232042856404251607093880041713075390191166925102703113429182238787046194350366536532910879873659593830238135688419973439750076656576152765196615273406552060744934129460497471486852121457370867740330444155414799042691875536038324851257151400438921919831753070834776614467690713420062047744150140812959558961196775436146190076811325883262246941442621766721612819626283470426607209243915747301917159436592928339169723266374600968293959980359686975428713775597673009952521281277417063226648451109570382976831929106439509440661163020563663044556141555741924286413475451695735585768906055372608404342683388646680503586456010130336492799007210162708505166135659100618034505638668424887422427035660315214492425123522667796107081310962185253305848416011178656114782353491274390173136680680135682011734869743838948637997582307324661556896088489126950822932392704641745620211043456231703999075576871756357441374937386309510554550150985469837981768674795262553431508156107016511657508392498067262535891612512315563924724337410132830991389384942041850415896665274067536796434743300237972275747885068338724609511395643380120496713506464481546641683333305856173382334514077739938107078277026063523319837462775848049105381508597872490570119893805467184349595825856087213584820555151570606645864773355605693230260537544498146309402784367766343398942145017866337529383063325278787570503870024753428020449101675941783332088391674731432555329974352631008111639064561199733840507158250355589819685145277135238714136708341572495538584970631195263560700674918171120443091387178036521494152051098052466913662375049646773543897966362210167888998431704682719206392782033754500040291511461049937868180576563433362963609906750806895360252740618111642195414758252780569584490564615654170730851276634648886342242350951472667960697105219538978929868015649033292541850507704469720840111691815873325455284264622749352255377781226988274561400737790038819385888727883645178461318529674655617311573920165473018256726951569602707158128022819492917573877895365648198613685624344393999554522239274062367596073145206462213590723599420364582111235922424807919478071018073960527891067652499927825709629029147051692263482849708421125967700594331038209071771988259976731002582777883608009763578927739862763008969625957054079496940218384639037709045927056757606832099080624841617436058020453383280090901432705317492941398760155033622725321803855020364247123898825786453446962549172812659991850194997437217900720828359992442568494769267886811797113428755537929286576470662838823739207471992407511794196992336728416965669069731191705743126083982113278526142726009313545668994918017323352439818795160441831993823233575837734633372318572250350585805624984891683414589801796596403844339287609699913012182398528511101070832349921225399002013982831298064691647977704138295559890620441254655489989548345035245336524665138610545200205189959377694646014275812143943102323566144654308040972246330736847227389306289459332343245078199868544201684876200788170237430399100395431189046144693085313645873970960271158390534340402277980575116164898973475937111135460544776301875335745960207043787842897084095856407713513683582041622544740046768308143644608314943924505659068994136398002601940263165504421598105212791895727011863589259542667374704843871259368016207547893926101809355166062429726634924672577340656961549776494646868132236966460143875771117431120023256648217950382654628943074820392902157684915002520265301443601542863054916471078149910167164844948187456516646161783363252667236936974964242470038889757306168350331047321651897892306136816672567017705986393099844324121213495198830681770252408200577055696075170720589040304251594562775440058535150218884368660069129085218409534435151493720454004034376003105559238900416403221755425110631073922065109697129134592437138778110623459131902564493682164897975900049272178314047059754993689848182870483061273677285149798774820050274553072343740140239544363336015820064859639700602886280200824711802067383683983152011773730068808279335801398896212633552798880324642120790692489338668651021758321729123258392930851359607490075844941821700890341059008517938769740095999518256559726207158506327064489256766963449473911059197529407183644062235824631534457278131480701076681242687871153928025224092678818558851009692180147092125908723317294758051833897943085647736390129077018415511433621470402893722110192874388083134277089261271995029663409713150533804472040359437098227935901641811273496468588248096419066656273514386086485953860448039952219388033200842638860932918206329052228548754708710646781070206272399234362933802174525769363389011384710715571787308701911618237659830428001658564868397933529953347684314996870882699136142985558428259371550818147023548708493204803101200337111758137350367688687555865048157027534329544992902106683402272227816892623761039922141060290374844557691951197893663961207319697471605585765604522661582839557932413567353892050754635540060022288991462008516626824080717189619408749042034938186487048443020634011360106462056868833881643312888304796582909854474492961175314168121121323322543478607995863343290389385045964891841753582841349544294109890636716027570183699235899351852074761729721031378324260628696121037166541760211063312521926389665793980130217827038943321125356358376925069465322503083696109742431213521804494211961020459619200378295031726942850543372617730491430780840843185930565233677020149915171129638208796125899951646583179121122764329325819389811096251329960553444162176693358588550084060389074672432957949996666909314152677541881623979661478902553695187024051805565948853816792381591713825084074234728760666753222806351206776366253554221143918731191295738797708939119229655621054686694012628648675381202692817294289611767468354089966412331093274382520980271049090072245770597839751785717168607455519904527558276442335840944842263256762066746452302648669775621756689067221364933811696975058299843768254278978964336610551686301896692675188595301114517685403532922309443384967544608611254239914547987280888544483229399242902054120939548645243722347193506518215579973001537005725523731801974009316720968685011056964988408225898569886194967443083138258742814368904006183975552505854426640023181369789097271671934904979989348960016740550397986468460250573161725442446033508014035452368913893436935835880146332966441918874607898797029473922038034340169549267155193777366209584630143127921695763106193785227201388630243651575581074618081845405435150000059729134376331857172796591697957091119727749276458520369630074629668621414214029685087610103822832798275306509873124600792285567463936335612277693360810908386483030710225239698172512114431507427257829104811707202970761393649160008610355013342419081027375150051001478796853497723166552065045730906986236829897323687460115383818494937359329307788620832267859211961111662611960085849482246429996461523072910197843360916039216926638035417362060586783348429802906345307547629512261039182992798962084538334616000581031537232755312328162294081879921336608856119311621044110970335309613355065358918977162035536365435996977592499536849316841827910814841016492330517613529006193598729219439616257710029560757977174174582415525645188486012137630127097043545722733599245388795863033551599247430047222413962776381562558661662786114620490608593684379066997529816985891182074899052424159096577163390602775931276763559631591554011936197214798191601077637322465607556650290281812757421441119645167824857200960720997135553502064985935597173383080614785468533714075494682340338453912857174054215295151163711724021885229339205899911449393775345890343439796207607100050071475965109337078808175406713856450102239710095267820290737646901377640005668243643837726351188793969838347633478158924195234007545020092033957865917004505596289476207082937567612242776488050693934378545575928879907494635793084041818200455863499967902975844135022339116302068251501758691827911956797482278064249617954846538942970324540794567689773799835877527845364506388333679633670290865622731756740266339643969559656198081492623326983102167587291251855485108604775384720706881170320246428224365179424995211490564891929425262952505879804233474233609759814800729998185721641278218518652979461386361092458577594776941052365543975811565866473521946957731226996955188538138433471010862599305189819091315727689028377820914981605496172270306271672715453879959172580371160497397928486122889559671471498755879088627708973758888479974659990587737256036613399239719400880025585442110736474242078245132748056912956274614897953836283217856606310712038345541596389017501625977806507678722109372944654416242620066809258671623856260676664225674506852188882382091717668510195613953678938711722603619621593583807721705622544239869498054465123161801524106263698285923954003921980240240757750753452633871463622367688927432257871948120615331923814742271978135687850429631625404475903170334741364769360704753487584743526674718813163210792999514117139467875976089712006893558462318853771357745595692252060616944792225324169189106201668917335070307380491384108653625890313415628918669389587097957779233138099964877587740888118755974156132588738165494803154257116797839867570288984770513505617198351444904969407895592203883887742159623663330308402214350351661133030726578396811773880242004554988166627701846470836983618229280715622239012951250480322680998395975279448739433980285040074848832742568197511656498718528989904345759361619410391098317952534456114722669432876234292237893920639736983914544482478019542928582001042142358006932309751832359480841315957233620560932845479789569919428316017534423788515202000935025373821428968500779611962921771566842594118363327386181749357798287368657960790767882829656587593380098950311105436600865900379613500227224877894187283052214654821546601562275909553683872941085974402881406302797656156866820906122118381153744262958117230490524432113192578774738506254682179409781226583023637774958227562673859366777520257213802698033673806853869782896671843779975178095601972012829541792581786614232958792065685655746669307641502780367196359544824100389893841237594869665214662582169268814859337301872957473973640081226903830047059032320436118514443914366680065872919019726072630368389298082832163611921446216383631777298821556392518848647186744277221594103446952378193135672828068665767083016051620191097470481542785375465453714747017192382625045515382044737481950224107826734597128444565736106031174916007467463457594897281148843470961853864777953758015298553315791650509132328122663980892132565916009394464124135673786128902255384866477146950904055568391405492117257875848094826093139420131896487532115828490193546269093915252996872075563042880236491551614590447064639135733338400509515137038014389263554052940513324238882583110256895507836704376870973505564991470275420953258331790161428738231601427993838726565133812092194473740084231541398861521625990563790749513833367061617651414288432249134346856017010681616098068836892245934139375439347763962129482862124369944292715477440821288253346106837748077073236307941412988915889590955333289768620114893263502593239944563119641215731765567497759474771746132970640886609274041325118250196575678029154876782151641746358425879757886627464459687003730293105505476787594222259908421278195059700687443359995735998119980480298995926571516288907490827506864931077421854359187956541053534283860083334758055286112207125786107677241287903181451711243591494046936778528973747251687159494311083032528610020938475123486998989395248500772076285864926495406825362257578292562813870916414548215961408092193555083882708056237210736033054521329612858171109064916531600500104247929013952845273056901559273311286610695390380409047675078735935846004972145250433274347604192514418464796193836567181220003981189134011110785362483667331761412046100474795282581994723295902467833274381724461389651323265787969598643480227805375269806365241817009064030422341258011507726746964384635174841740830239283194934459229155473826721027751467196143691066767392876386965017090591913417490630950595309922320747229005062719628097030643965762324889557377691305990314507968840125998384088986561506006123938411974154451017774997755347059439539424314088161974961687048813189872929463083268729298611275729135353035904893505761933111653839678376327568015138181379624056748511777829515131512351786859079421509086797653955665695160619131950949298087957646220223691058814788827862218983399305389153301195618323140336614725240772522744043766869162204008524959353439120095837062531918913936838617450734285576454530231871565110643013529979694149194647243039332367637969440677976018124002205838213554881952732498191119659995437871468122959918534172712480501753851926535462759250929148943806089539572351083581846587331673341620592771808225760367139722399292722620538387495053807177508617839021049704869858825685459833534674109574655913669925929066990358442383503993091759084143629961185882564444972865476583695721310378422168749881574528803355042146909530622607456751490185773894218170643477190308841557574256603638739066721677838312914577938192607793353818007473014178161803512307846636439754087017689695984567317187604357268097044942921262285924305984123313815137336499930729440462738165538005558842103954522354923672103203125645401153973896133301611428800200199961785034134633315772981078614772578823428278777953163038677293837148727681437140950483360549297831910192131297227944354330055721659780718921383789753785660333995799223308508061335960464372824984307304671734288482971155108708110405529049115227132966395976805700044444915871066983032863715560896861073375061559657071672983286416650274795580787414827664827132686207759329478260787223736565194184870412887678346842821751243219144804117651548384113074561224678282096476265236954334823737324929867805990541925124830410834541002962699771906522501467668616613856513106510304397677821087097944568305412478968354871848808645349313808002410989807643198578800897181323157247928222070081605201183090659646442819936503765301746090633157464956831907296506461464343896332993095282920625153263173418850929486981543844508666997859742836476924181004776252087903613610542970644203182039567555281639275673287593422203720781341490659370483244242991422818412792898362791865629391581163357933449150813478882352715332872942983412054827551454511669816373805807711535698939392767420679929800014141970146398378925193136201407561466371668915472699466704156945502825578599923709067244727977799022624626735716422116283076257632221821256200678270077520884406701090903070727964353068693916738268946028468399863816855636622857712692783066851027728559639109883108762325944245119876068277026144461826759459194834000040144362720407995412518099706177298384310124908187994585213671464056040562953770354727477382834859257333506341009443334480025584032346762120928949080665078268448266020760286012512257986974404045264967994769453917798785291442116979573731067192558222378490828768291016660952239561560814082704406619804487014407319962455961449160210948949209360910687386738117508919117945779989479408062110287011714702746052396887796661545214993691083824903570756374787086427831418818149318128301759782745512148496749517804313919808368790342385475456551539993003270508085602839148951078267937767339655354534627986807292563291874029214758663393107795094025561330099093822006864343717952245809011676211483521917556036860394608344817517269850849170740071597421425284820108447850564553588042289170739963953720118628850071614488596696111348568076026140554579132978490556428145966794614686409505891813033841313003776235567986954816544749682918917967722013620190464519596978122803365119967235946253622487230899475449026803404750009882138202252663913438376973933761714451821795849810104532872236106514697484302162256237732267545868318247395126799757345985014327300434902201465723959720458225551676786670628829142460690375533763569708661107864123165666459415231415210931218434055077309245975329621980855040492987267163903252997636695369951343866583395423917779184651617497989866984458643530865398895264567509428314503196676934033114346128809568155401047360173381113774324698416943751186315448167255274055489310776891946793966416598023393028501748203990445518927949746614166846242835301723952562760027120183658627168403576524297175908574164444410821592187918219638025332668438136919350966419336662594224025483737132839736727242718644473272554858180607323888686573309418662332479400369505229111568117109797968520540791016866580641601333287214999015708613228451330817446419230912223840381226100808437920234040772361158454381367439008937478791550279453568638507049485079358203744361973425566769341979626528276014800016082648081188939258214912404368921443540576632477417917095209719790853749372949888873280113914429932568197314003475797108091765943739071693763782652461419516665829704115126950941090987848070353655141597810449953203033899776622351430256400233677650768327443848837462843149505897725630563622520098075337475001579542805182101875743100659956470927690865411242915467646737878526269251834224223767433083981670336195756409025859364530309201621391536410611934874386989140546293563523918181393626104895799599292825806830202798400841892248065444532667506722332367961908245474967297933081635528479466262981270125080329485291226072873089884697925563154146397438823040914517147055222041991927692299088902427040653507659147753077591739062243994731338406929457690728776442279968690108296775714983140648309337295202461694198664358046708212315176190579092930254539343012197882766533241944365088921285961028570937017266159253491434390272510008983642818633077943474473551480440726692890616603571013115291552499300476685725951204741385733333102129932202806876443099321778331350033926228944336376927817268305679006580902123905183563089936285240986087942427109605490189542487354283278027737552395056724096023892796782861233030114727378830751259365368025846103810833380656539584301615162709646403748197026739643698556646799345223645810168452305992357397027465905074410187728033244635995676882283442554681543503047392569127989890285780233579612752430245520316745620816861167717779753852802738660084407514369450969973506524479521165868574295570545018274615645591279581483657979575690974554144106791817528483309126105309735194047677223519043028190088116588338495038814262247240533227948744498310033621222956934218053233845896779843790846964373889913313995961361468147669611477730998035716086535112125023357312643175751940920197680270146808787546607855411449598038798337416527616949545028691372579190783672978343904396226283596041329473437931464107107947952872916949007367822928718337092389914447607282616161059585146275715829857529109324964644743717883471181276703926386897920945215786112347547003247708978675538319960115197237176125828176990313170079322632489241797840455472374205250587045161105637936296042462552604496164803358068409485720825491108661688603082164922125937292347265398853327842034060978755252948538205265657114256789837061648126370673941864474214860911924709622339664245003913663814076610463120569577353457003183775912911262593027698862271449773504531984521194127910408904750019258982294701987638598349351587656286140925316539998235614850860495396201687719857528696571908751342963111615354133562221757698766591458465532876769493205809457588437746636014746766373190937298085182833858420685648013870681769382048153852339079393022970674677101506388120887015315404924835869255830892858445777235452525837724090735001989416705712623180147643618291373927896816365148310816892019278584463822263614983044206100543029260416115790738892844722408195915472518358564356406483993143201468890519711001680629448123123537255053510476905533624312118806536400163364829680857343949501464872395499154126366990624135291910785253863302210927494374347126841053930506646787285847946362568755080440971811640423886049782805193218186131920133084258207757276965605217605527318777744517368172496057258244720051862634349455345614732164112632622662194069677530582069749337280396952858288588391537392477666596151138188374580138607313631663046151037524896445393277172719284252066299959755981183263174553279198960798917347722925894560855305692070296775990215584159065394046278451191552929138774757842461342232062560785864018310639574855356452947325703064882619035821114091580305300613732632397911940528152551817600209957071453336616564435621699069079470889064401000889226876067709433442735344022725984534988346800331918073482382773979404478661021645725273388675280240923700310832346271350286525911677701272471244200847221785355665800950529859205798534521678448046593098876633612798202245403364186905521476634636892455892015539253066569094466039404805716863913574202667799387733731063312329018449212708498826428046020971786694005453063936684897690968249682383149054689575490598715333727168862756685169455556375797509893984244385902214126415405442971886317355637780476636998437868470611551441208272516985254087032680112738925828499003890811246180867156739364848739145303900758642667231040597414278477673660287520356270231026742385619194474006952585011965160949461326490149244686769182437413329602331500968744133385149314196095718191435571386783787365595439432276079907712329206062384052933369003802706003578330586490516479503185878738113900221604891091662736686828395620741674219940067366395819699696935783090630940685172720527647647727901258312986763340270558577577117083366510434243087168819306477590826246405244814227235374872656246249705088409255347539491514548290596370883888692820093571503315198293432876846563424295187240567759956166898587742750303692416168790616732789794938590090581104436646892485660779469341344514853870575428630084492739590655005435839902515662055184866820266797049163669907632373510444224314349527856965905023511699733415722396514514006183857343140397578628613524348132424510025636829073648950269835645181618281929767453962751709655220379031713383034866820709279931236712756425259930845012948130318039970466607306043306240905982533531931807419909629855267293034337116084849130345928434913469415827891557712040302182181528412140427417545568008245209416533858224995974319663187159228099448520136414415199743480802862436446943639433371689140491871589656127708391869742743423657247900093032648210178411335416761940453645229723575250108944278437240391989262408850332675721369345666799014166385255416287667343326760590774958127453000629774220120748542475644762750321013484574459993675728940000456142426484241318765536941549679913751382320588199978105131056717154198160233979414530031711903440756230190204984631135838650510063234053411781395263107683869016016273279095010648355240203609984513679455568866942802983363219350777321180659235604585103515027954640503673961034399787930760299094914084884398021497282678494793603631956205683485423605162443389464263909307894460426983693190509222114323112580774919573829308166506906816083761133847289368983946957053406994863855207209310491515976113615993812769067303088471317797443082735443485598658733876982548222919230463964007339661580609796769655668489270308625153601891097564015991412138255174274660304790478101448602973013851749159751383603542426326246799939896089465555925938139869291107174163041001230989691590633293706277096537870844522479493288968807173175955407386001870173609482763749910256068163647358632526740923418315951073597771384242548718551651331470381154787416840089681667216110754743988814092218686523305484178588016630029617509695592665097082327441197196506545633568697585877976033591533850358965626956601024756716011840335506140164574896753704531460731175793150878006325882126041988831860562965189782126700094976935260217836445997795178730542214933767567754179882523012990728984062023482205674525863609187944414985273808513028792146973882858752760224197901107925410638897663228640419932768359615200405862452902962933504685555592791834902273792783246868032695734235185240698830909174751061607813382730600708948799211791199055964798156661133936527995879473293917430103490577149769806838483696675013374780234304999904111878361420770545923999231819457527261285057553258623204389656435424570363069004944879349632087851409059231290119766021489757607354179468197051214645109753195718101633039546392269578328394041313956397623863667764480870400118183830882060099078435124360170082739199044457589498070319849710137581313327726345243669219704664704436696155506822844602019097136475014354704203097962361682994407832377486477151136181098003808503869928283593756281008734982980540133017442977930152883176968052029696443991503560592861096664564065451465689428274590035093188148166519573024636092720285660688495027303790345075809964633201933836043669846898622293164127077498668897270606962644788510349748825079287053022328926470543421711316775942811911248391753433514993846102800741930000851182006396629548207882239099577779725050013278988232511986068034986325204294191087994578587017299091772955775264455161901616254425332840484750328046685250943883571838197284453040332849824852382232096039876123565509399572670893877397322644158029738289857769381238177860255746076090292583532027223315622594591167661191734489818532950089297595622908640979341802306037763723219174945322370475556886234267046223314771349244739802506802404821101110613662436190677307590203916557275285318448588744915846366542324248976779121485913473285086148800145028152078967310873336130258218882499078046569097756281403762128337185229995880861958079392437606683369478339391685962777279971563071210255675906596270799073917657426992502623498421002004947621922267615622234631066442408098642846806661474281221180270230342941111079375275607744565177283622598645038113774546177313503525070958685330581470378138027280115302537084953166224823402105922715749622131219812237270042724832586789963489524761978667135994843005081878144280262717688554383366551984093173541219066297180668522071610324280229628840681486896181838327933932661857606686710702190901067051526740885332164970939622792642267871357417351744174737818280728785967715175545203282379820873665482257700783190669400751192304724658641926169114724418670065444272812220322453562587849423878196279095978115935308523934908710743866120923187324445258785070476652473057124509944199163436599182540032467526092313816568767537958217629148136809053955401053682960822755960463290414733057530573890261783278067345441285802334499939874386899877841402218362014489289169200586462164775892442852775228709379514676876917215410159382459958687621191292048999538819850916808868951775206823308922971756700145708979238706598829822382143100038273050956569877713037010003133635033302147434934924588870590714781325647334286452366214420101372843769829719070704842416622049440960577181893331101369981548504769835049023993288208192569301719161613333650357170142577583479769377820576960342168072174814691269312775201575288289819058264139707403151298378637638949604707200255459705192741175912709469326605274784276506340467221741381708756769279505190299501184502556302424913616242983778549102480130541488874696670107987512291957700341326194522437007584669654469712178790019799338166259933458278454199291363872328298538236963757321729814292727907123179342248860640867647689826745789319175384973455227415393441892303461569309060751356261261122777691651076703586349491859336429333642419899559322297645547343065639859488635887649400832780088429365766659028746445764571490348356659427433956926326436465704943864954213487137084750756838581372602005706473528819881126726992485456223824104877349714615369614396852691060150491208481828630655773092748919174615660094482113990722096737965818930691187370238386628934092123034633655875593446331612746928309352148819959764613190811559458561584496301467630880879769972872475997831968135741604137009256675231561188094504378032482157418688769386141936685258974582895614953594282089354484077563341768903489667781422710976454102547098351210598478197187293407650636662857677835005119556401786528521265788054492291421369557880622790888549987279721818016633036410493956502600897564710471689258055135984508928116844851539831865105985189096631884667993190387597249941094017206764074011529253381525552492027651841604817993809564368272439987263281811628002803506433300544433514771770446039259050520052882366109286524435155603722266248417410374472711521587006683161200333876599163570561812562631033777704838436402554616452522229903678356801513664966512688833238719032906798491544416875525508210290997907893337269564539139262671837301126520013128705523206189996606395370168778254571170062520474543772571949074872999481121796507402722736370542591587801188616132774536792586054529999554593003535014644229950263382148100342084105322978614257460408188360297782054327629707178969506517589892776127452274007368039099022227814741543670292102185692032303831530910215430159635769732628515900408866788574293754535309937385938186384145442645634217259979479165883928512332347916398401989207213759553756570872430939626127428872322144872522739996609337328375902891462712609427704468846498442087249545139082231928602940578294882099324109311934857557316289779660920608013243487516250584499900045609889286090398048014721295900479121674797126619864196447521320361270344281416636982643038916135955474440409021364192314488164335669906963644057632697579936462186261621966305956067882999560816446482143369376756442313956368950732984387658619011711321973874517351259572401113758233468873677380995970499566223719224867238661615711448140227520686409076754056215710098857154904536242762310656940056880004363425209793794525565714881546862097638184463299930871277628901826768078107909000568367453430989669175359254345295957430824403687926351953430682253050447305158107507747589029791667737472571949850645782535931525927514633301991303053217781695777227163136420226808681275647750821398663101524833478854030297853473030681603890807619691740218497403942736360519535989554391179441519167040213287609512286918838976620481758154293050579547274207763969836241796529391437992678498998560222748980501329543951979235145467936607589175141121793496351520996085486747473237021259839365221045212645075986004149757668960890728783899602650031131574113758604250063742391825634939195103228478559166391860608116030878914876868213389131350711202845406539373798149327292053572782919501248258002124596008324384030526290636349630861136208765386959838581376728870909669101093704324404474436884322019257010919193474449272131540716015095662851970097935962104845497696469210067929541645001458879077782896028831326707435987107508386342340730711114963686564559443523519072711746123454873449885201918952961339337796301575771111330294356003569269039905655161670791428185659428560393651339425112659929743855313696501568710919064188388783227004231277479103789919776317488023541464892752722012081949620798756458512693198983989809178957046362917136641508192988386316113502521436787517993943763209962408802926940358630908250303573556201041685231541119060005955377735955915651355932387205194261483143583335488190565839709118471310001811225343915949295879884222100250577014352373885954626978585724655968871631687440201464454712604795694534623911271055137101691250993484178983647915375825030010086666832131083949349560048318505355132338777462846553167587847291720354560201400489137149583695234346979085162636622688214192020760543546059088709031193479232758236354605165943134267485645326073146570485672123037316101257564780346052573041843082975906826809276636939945401074012182248539330309583239939518807591026464880885056932854025006184206479366488754684160467211781902652007107824559162979164251783906569976924769900335787875067089683017146157694232190053290279980295447626589603911777239089435619191100030601183080558952407464131485952469965342595689863908093314212622726828484176670237016762949100714999840453209220732993037304173360244680172682124117903974355263843481543246793921237663902022632759600527017539811969263892868851546674807523817783290454226878726386660628213850976784704624939246102635033605037474573438288856978872978669282320512091353939164089897911249733842818996157666740348909114932413111379954182561423810165155652999506497492990282298276299867345662892217456952244774940450314930027923203000415438191297615785596376229004061253332222614508450539569468237720252766902424926721269252317047413318086654249764726879200535222573477935224669991267668980878335556767173840077977482484273939870529067764442287747350198569429503214545054238045241146935937983320077080992155250989601812258849200640086264284026402456792219836112600043282639660949789332132581979605406936933466177500529725558014514657758327440690227185725035100006884439675583027802288894781231661446402071595047532490210983968696533519285209832518383510387337298893574623485233793894840610469352339888324781688445761166347870322922133024114897609970628829678836232636810506746312004640935245186211810878239916163230987032065362561084002012970739275976802569625260897276188963666012747458892694057195158915133129828375828222796830993975950821980506654202273678489392090759694923677065763903079942581965690124434577731574112565993624005977053954026656064192663297792566205256271780876511596345761401702337566119244023426726198966203192891704743284227804114311275035392279652712700691390363248278848215933036517957973477650256105969844832666546366734728746417190106617782820891796683969418372075316878452909292872590056093602378255294268932796599803821890153722094554566956681219618014182455093110811225766457231822084832172432095326048220539525362408354495552732304363636890011130965171889386681215332160079039395357705475417464935198419454791838288787692848435365499891578097651643833801124953999869492067481047035793238726148578615979572706277901691241007439302090763519167351550889900097559922566981195798726385843773027165197016116026098717907197481461140903655067090081892225436779183483719715842145314574859218434526646175960083556277555695011693832686966070408546570936420237692445985526337602774372417323845001859792519994339922633689606406710616765839980266155664272865222150476005966949487645834844614484858637772926033170247022591508388196805635949832897711468451562418662326611248508743326051573103437851334944468458283300088728645999246035916823273295791301104693430030297054882641075385211684763179271925968093605029717853954199261217000811106199943700657590751693238466589776329200490352364434561150632791733911111847161881587570505979265245555097462649075629265879440863563142465720679927690839488453879762749807485579956502131355195889693655341282544469399754315548781899987336124892068087101105279322068343536439834193115173199233801437538988123845157935358331392558505181607592386006723796068589902024648897337196469624710180408964533141439681471894214975071035369774443472499385108029586900201165263669905402810482571654025781115076117572575741948786727016451326743529063674428411147444969865711549176772220881711729961483968831072878263710648021219355596996364169875715942503041108028397977462623452430026071685302265873932800529261425287488440791693001627537254491434252972386648686211819724841137657238355441418066003460012627659219548209623565939898139754350498028265305599958530956940780162428073327224127726205108023066588527742373427635420498075960806295589656078332295807242696789292981353837012826226650984394457995966875801374806361443436838088763414385729941079266433188023481845469787571866386347128478229988534575808621213487259398799689199973727296398231545055021188539103877458889195848168841498822505184588233066072081921538364810374929933439347636868257717509383112538957222695810848754688921475403386642958264963796942903377680551151418389542427630211424304973542287733061149072396560086101831600928324918867768119027590953325914408684528677829245268373077209119529709608133023585773588839337207767933467651014706148007504456051310947164121027744890762733651790899424830295182595368483806567039363324493601699677357861669033439980680559554355389498341170321831072449082503830752576887677826033896999822584253908845735336402313169305396179025067353053061477915488886660290563731541761918823500432666024671586334574627089588695019852676348142126913250149083664271418446861452613610060953506517357488983923474852086284155555834721734175078036380221793596555017140568917587993121032565821501179191379015137696204592288546576459745047818650059763531147022943227802464409773655766543318220051344174642978328472477289756870597739700992238435226054225424239460462458503138165121874783640736070303725868615579768623156053281298453066329016526433928979992763430404718119795367441979558895032623071159376254367306069054446107158284225701126569802715788684429875601955542869014918458229771332945231923468150189730033378978593519712588919318628529418435926053872077255669167512055477628723567603291341238424048262480273891282670937680140552377271372175156325090189444526965075953530489556466071914078727750766172344640490412174849622251861845315419583025977423443442413718577307768184623320622943235623030297477753739601942731158474007286845084662551257508366742298215981363059976840047638042191765379507942620559094342020474668288308928892319839263880202905137773501466740050203824956320453936565737621945159742870733160092438569566461370714279495087607862012223420839373425553738180559781316339188221644265826121319692883476740127105661618267479036251449073881859532807347676295572896162291670469054476161574828045819654259862510344318492093878612511477924574490877085730227271451917874905662015868514528125169007597233084412701363782034280840175742048579291126131916619050673746948822724680117990801948889563127795128883175214840527621690230473879695278973732650511998016945179266671204920351907928125718617236308275147263614096670803254541027787317099046390305616311319104079748167390413358837402835666669414827259571342874632410259914470768663309504426424838001733537113414160388443267934000701677245106743158713691134306815299255322479501282707741289937264227666799474117869899449781435106037858504659148546866164768880149634312335316924681151320876149549832473188831927325388962859502245502812132935751108199563074170810141589538180957618074680915513127887713560701122882126839085499511315849773187908172116800969428966907948559110140846024484085740089547136954771592872175371524128716494434669803865092264691974411852469720610682761525194860158560004332622866446041510431078662680315568084998235088263714484538590944553209983374678182741777279356802057173692656957463531301789643916189421701479581715072248977460719882309620772587646799598622603259940881402790794614984168918319280254956896206936265395050196574597820452968204596751357927444463467731790773865855640857640026025859295667233414209445839350682255387075303377751135583580782927787921726455333872079385898288516953671837245294275011584346747786451494308113271633520222352493189160593117091801957937603881496809504231159871809641934578747938392430240070196119509476869250318417046009690290338145496451993821789432031955584652869679942618979771364466513916727119505847287564764695585994560654293360947866079815907349155974685342014462035543933229788379611310825975500394779240541639356038257767991230428127671036192421912584405974194205826745692489677130665241935484056772206479930608892382544219656950661226165983155049680671515875298757080164093272065915438797463800557917458628965719129440023263739421712717591228737575785407701359384670906203935722986912810379804746545585811545300688136681134273737360308816310723769374840598473906100943684960204843011334013523951948806976976507320531089448171926266717290197987452504652022575890255773125520948227544223785897937582755777613503096636689907721561406048525263657600272878986711568954397170339252860033842891154361603348693705020149419184269968028778661137751058168732895480320168740623967048117145230845119508162348361078041887575454444993465157564203939076429134230959464269706764228931507170816766107837737993255826668848954010815107062696612806322231923751445704400328790825730572128240994477467845161736203729638230821178166319071846996100205664931064259194813898239104240749991763827231884105787253822247633088960203978013407084781150198871783202599293015603201926913662584930256026868755633617793994191475933743465206078171174271659138273370079147280771082064190603595805280611434280318415163454942421452772966918172729735672854253579548608956391457180688217169675668535043613213086621932287549856652910923608281028743488895119678824567159454501616102921077650011335445695616071367020168154350139522545546036664282983188552028017181412202036963492888809229535966520735968152844455189143539077646190494452737719066894441886025279124935566931085969704867956573247898478941167339896287335880774090381528169215269763134410556409258842957064257341000382209723007978850830381051884380122390053955940184768268128237650160956824047748217629392646816672331824901971416396781396052964067721614255730355692387475543009257188978101604758998559235012907801625384238389345900017627834663329858703151771828464619001394657681263723778431382070220018954423986505392994189069802109088852535611387109130743253785611074123643647231993741758750806546704890880383068421002704334897197698741762974405629824255671063790567699396273054627368225925407752141176443038685102162312883223909968585716211759786676599747141642924833394856017992414335407945536317472958977304654449450348381914112280401809291167968607615926073958069779032366339822579623564532368261823290827892451567243629126876510871150158051312556751250465166881766330445008627102081977337337158536082510635951875409350445527482623942614620994621985308972408158071599585960261294612002198605286839540110269230723287417322083860603425794757558088321607739380294173396347856089672397761567450687604951117861089437661368224245011075134402650675335664469132233493375764473932931781796597745215472472705710780130287512403502747483181304988276571664668873991134566198236122581955047431548742782953901386417978467132218222524721078528233139709404384759332679119996909142080736871942531507510725312498517785114930638554720946660584029130528802915878674209265593771040132465839872092888483357362785891269154180403177096603486445276465131896223560207161625126204185752924869255404245468851705593236797204280017951185941057866297420068797051444333662911806440544069031909834315720001147279950739191644909256568963045273478199060240938419270871704587808515114979886841407472653300398428798943583635677060060349612816931226312229374831494002430738021994017536914395374247259064272095808080174598451229603975140441091775512258208091366248558491027050563718636238897777317086184994281149798989314591113579424920235847205998785697623220069522006977258851228977048790249373698339458300731630892446455311862701261059788096870220671458951054941073740417124111135602515860190122363865257287248575729043057052436760963448463347504457044645328609921949612450437490868736097940011115587654250889353314404147925195941299841668746326849109699913396084152906099796090456996496436918970144833078797373483124888985003196147033007267931525411665848367353777755713188297160626311978881245465154250704615901274232832323385512589010959799338198795113790720710975741503284387695304970799991652747883675222991539906876173287260160201620435507153930041595266194220829339871440456315367941138711648426508193003957405331161057895697439449273067092489320078692392414283708388647021693987889285692522781517109273796575319596004016800857513388603145788991004687767357790079650497137857149298988389015113988263416241334192208694031352098362389274501863021233599906653826258840360097190403746451949748833355628914745028222648526156191733296107506965606968174725421268606890435223645695214879372665594526027276141630370544228500777986387503753952848722101417798579211524376565663525905549333096601727194336530987602811149387761408086133231272617264414760468614169445358345085209427219416638095575325571253789513557335510440536576551655452813848991906506159473673046949908684547529003872543593824682532585481285167161787636875963964128833244627984245715046325043285922960810732910903562421230803717459899102788984818369322131583015420708039714743467726069217844633101586717103592018081898236531879934296526038925850035958065026344533440160179858639759573029485533569537840585909788014448764919286522685808478536472872674082758043091992959743253715762753037149188200998068179234902589892579771214332901395608400652231952598702727794969230758314332454893010815990580727820321421016556927072938321954423741375196456418246778030484654771152606208278622158663066329355002143959229593757936916691962176473450592442557199268887476504255992153065535336238013810944627298247816492003937340832027868182882571912742811270648782711941419140683685830093779748453704356238069719924151349087062393659149639037518547629587326125669736606449808893103380808802832419337183771541433721845223503846292996293570140079611107478769680982526784174695359940311965228463005886771401452906806596860107678148826467198086417656189819550005711673884321604641442569233817138048874192340470115977593880832209143920199851205622383518801952235545552977076331926318598507411097807863986663432023725904238931057108583702715133008190373242226547624842571341177043130895047897942836596794869461017467673576460727106132070513948131678551760487107222699855983568809826625846668107782780061887422304517570566600707565939684017304978686962893251247734712276233163311685872010672641072289826076466170371297949455657308903975788398705722623802861940055231992351721979055279721737750781156134109381070000213417905974632215886123208989170735380066751380736711251685367453348548901639554896040836192920571274422169791162244642278081429029805121042888476190636770167579155374643863378079568966584176703748807837819743197227846321711807187716139723146536662461236583584936674745104409225864243231755826267846854159540921661368455560153463920641500304850052930286648951401476354994312007394637708095599912063033682129157846127373328069193055528434327284315241357023174448554981686671195483212969098552254463865964761806257336728576989517695142385818800757382552854468678565799684238608286944510000520994065993784858299502728661669511140049911544466846169497648168793372206064630911919759249552932960302640450892390321819347510186777069864538783270220472868242772309940581847653710399557879572235832681244535786040437553040543425331295143302498428708407130694727279355548391569876470757832403574093009085354665339556185482204618272031333016665467973799708273790202284261717224630343719940936644693628998343708077497650462474007037216464914015442748767000306652190014166276424250453344091175844020213376741356419995831844108408690098201543645765938002911598823592275196336455264243219303184468671078034113994697001959812657715394021628065234354212537392132650826521167877440097606135181163746597041426304132929313186860284949228253495550947757030903502039470782168869301607796815937041366683499354680068438208727436593389856955437568213482206090678760636666673389902815058818456104317827637924864235741394347723814571805781498808300415129967524121426485489407074286682265143436863584612059434708606810180362436475194972673917104105618946083303658747030736112404547288414154415688173136427978905538041896305600696576368929939119634679467278831316392991458071850842838469358425069081937213260391019565577818446416150537845588000218997177091056514534026227515239772991128804982799103372760269403435853779976001369371942019074890615473881278225529762613095395227614856356344367703024354524082830295330503568683446135194845845719918322177963472838585975589435887432114274028243009831370820381093099459702444836054828116810091210338944664048015720362077155187018047942731970468739904968134394853044367741716033227359186575370697800452869248812197389857503274933733977293166540841002603714014055868609206808288583595254531134649842242040743731541354622750275341400635573599747088523561338530500734576160960816648326743372455628713530454387135130756926082194669166383494958875232122302560774082692980460847288073046873371716968885659531736608085772985950450065266367255532888922035110693535326910545784521788988534822004985193892654468822868294438075348473930409643776451737022708645679386083053367682402227254049413039888371942093894201581157108647965396379450703194265433535331926313188425122694048098287030007063767856332525975186781021256164155789190159017342476765534748632920450835242603455107910656911288623532235585941325960820799023794880303305306480643418286104934438474496933550136606927237308503590662609114695583974675704811372190047886237553894510742734545463786053725611152169695183999668589084774492676216378077829547427360075509780039547709688592708906102778957376585818437730627181924823519274774245468620600207140898374607561952013630947745410652694440044194364592788339471432961915053605372324112961422535019349072924004167333586085690025451891733304259861411550626260924316854476474094336108100461899794035265177792702033419957438534590220473719942291936982250483527627087172430149434484198181203654573637661224666677159344148587013494404568447458505747038410329764783151306786853999697311925294388378892136658971998173534590893412788132821016870503137127889658129287351394701142420570125191082801699747608939167618369109859707422430769946774064928609607514587212202664476491754848724087346809937283765858507871018972675761263390910814846424151694785568185603376458298426030116617309783485037187235045059541116151979822405444565418684260412713980640136289955594611612685556630673317056005907134067113245234734743089256777958608595264346166886306134814992640799942923893737538087629721879608448461005479881700297131931718393187875294116233826362908161742527806417989238491412056983549047705320834219892248581253181160406337185872921880483532103835695559607266162721782518126085945881122115926420063126030220853138839550298310765062449624851582905550098045280380422307033940627063717289834689743314623168819987687088176406094882880989693162937271818626006492567838245885259796234778768565397631390258038174396202072207708780962369230217835423573618983024310360249288977174815370279775779158124828261363116572664028227091481157371092713194474853480229425526692826090650832200861534901342732615633550322147487672990383220437039325751553469552427154555343281061142608393290381420371765873124797420484833529881901224563973300730144541873708389308359399970010757329146449228734490691083691896660450297335178911914869936648531895782582400649332482074859891223444620287143218858455100311545324360327541950949014312460193387316314573250810839583491090587152349897607992816303841781496516894022877175460691222669135234643821388007381677250801215987099298773622779866461202516411696113177472310351157966176405353846079692048199407559582622321627626415897699740859715175935322106666355286762570831650743201782875197584316540948134767267315052945376682840665455228804161944368038856463915005015999222018809664694468253501857900768685246580558915884617430549527165821545371165561370983015327735103290979035260166915831972376151863833804252055189484184128620692367367542955025366602377248929297058224689627432227006937973128586117783014637991335756347764627756403736491663177871702307557762457793018284099705834206025818105837273027583025852545850616458597736751046661632638548129827577214958529163566812233627611652862107429551606629419515320051704033710418253759408714838055301274489098238315671474499207690811507846484678232357061995469152177654816370013874298103722137159363000901310757429449279357834057699216969479852258070893996401770877583375093598319367227771204641321381726094029338014405543579030853654509232501769363509713994174390072345481026125088140429654612879165277787987902736956996978618606896513583248147636987146248346853203862276313200143091569724952606601051261082736328338093655736157878941961648874277607497619887491167264910521274787732675405696884671142618333051411955384385203710556830399162350620927780009573602882745066353713382325310362657367624722223881868557920079180773102574721862290672687431573606086873684940067604881028996870982021539080982526386987129962706407760356631329095970300892766635673894100146362238012218336982529834578566368476613452208676791533425294179769285237186384189712347499527514089247356936984888593092292036603606672915597684111319224315277496868439578538076652250801005986840243331807440532368427992830636731625875533288551114617816613017556792510723049467493811061245675776895916644774243385808937020918883617311820536230992833410331941952709911657363752337202492074239569881395832841547602354973857576386354473476262985217451723346973534538011215946657860423602955366931074119656362893518707873755074912596419110756816007946690689845512225108552383944699059673149272721140944900752111950854878818233325293471327807052923668328426292252948667661415048322328334497774091695716932634896186136111597265121064614808459941270596547036991417586224912564583192827516337439484091540268093306741898067070331496509789938862723306192723990969096196041135984040509549454718867938200617262859296763328987751241849458581186923434109559651419076306562567522216780162918274474664058319348109656321247461046183395222963847791354086897269825351600404631552431269893712105837901939487495602739264208721576329272529090144072013097295770763184477045404327914554897604213856827816505827432378922825966938605911051490859859275622606622738598465369128999588251567168397270672723741014437161000973944912667335358477587573344721600776044162831599497300034894676002045147679254887983953597855978129231845350790855698099052114369952911000452028937827910901094404080590627577924430368916091161610797509362592031446090221938564291311667742835706303691596231916372503868779667362351202234695950312664520233406134657422227875161871509723913830959850358871274322754906496859688196763578124595532746707513041637372044093599918672403293968227362273174469512587232941200614987353630499747545364800357208313861255146760314054446229508358244290954613841990184738588146663147277435439613809711766560815355163402239357585542042490924308874907436860562998702656633718033918975343876658555244640247158384608704021798078175540410395072080344260269056713177516779086836083546010124655110086882949083290918814796167652242144560162881563422631102782087393019363426479041939553198952176095429625748334296037682663314276233736590330274223238829418013055728591961335773632795012806729886751591944567161698221317740206619491413615132478370848969011632757451094115523150333431154016422881823667758826457900836340025631914698521727136284879174983216628262986727872936832377743750026871705846688352624727038215709809558431079803837261960327772878783447145865848686148549146636365475511068064773937410158751030867231845467928231419658202886750105075615854302031459858695876062774574945931330841893018885032692523459453465376811295314552079091864696184660657262878268423643497711124489114104835191781942452824891138442721124596894538737282050055200124064829635253561491005872255817560121734549544379050972875434605804684869618405986400172559786678196066202671406224812763620201521386469843950787541223143421927497016660665349334367575400461544827384829265769856943685366334326324076260317400435975427190398040469443988901091510682775278751281558899873905873046144174509178326927381536458162087783049187047023893256994951119065007404880674474778865178407170755838638895669485997682694434468191250365022420108305524827634446595142852728359718019288762689691821303382856725189910326814763766031870684531818156012559562228098007789986791835856437227363692937496526865797636771884390049556636958706939200280162630645370291516994102162524772137362826991112326388557275430726968149540962978378836333461447844736011871742303244004936451119250985988815640097140739364956692020210376985183180963060728054988448326770957239900375196114378529299935472193142525824088483988691024317291468972277746603819960298906122541178916938142581737557253168093299921692086131531356998346000297584117528802309796202418266869483723455726425170542760963488656816579872587867328138101603446199647314827038993387275945644634955065732607764916335189999906715490253049713427173562729729846697875343815127103115976331300390770034628981792275698256667470401964003735665333008696603039768517743590895638904707246343700822217190302905659347657108472200577202581334008106126162715179217420139583042357954548126880739056752409395641355698311593296512914308722672840342507785620163719514749415250889807056676571493505111878518986738547426695215589196702962396062304787984036627928541677821493641514878336138392937379581309784889285042978919149676311775971158976356031850221467783020135065236141540392394112660811343719517761117595529535425776923730773130631568041731743808993623388627857624808181740298263557488553400072586972280024229332387840660638060887138073524090828737339608891533177407055788478774077939829051222522644193939805474774285742543784426280931517771812226949275557000011875089230086351125986959830673013285231216571575464841355731104862673419838746222411860945059466449559228258630259862710034133839389630745682996101690278626735762592341123787949866188444494723615338137468672468738725854918134250874923380260089880726645518171993236340573981547320569708510471906567424517490993475713096555725678944677752839178014841378516416755708491069914491906577757094877494585992677221230063035182417405643125839542951313297011499911396292209526339525380649693978212156316281698044193463698367940087584281432971292756568374331726047874928747072019429574233369401817477251308635056944716666004741597559120504895037017419150892950648584366065216712432921138989241967674778862359193218650873590454876784600865841447711851945487788645364125845013012025605431720212250223567581968119274927541132198774699098537962279323956237892196614103399761364224471679061096562977023398144102296714266957988460009919438886405547375490913423559473623979730015935607369355228092390194770351865739505445396110715076726794027610882084779997743366399571992862247558542474898582266729785762164629350644230000983945333638829822178145058110728192880726979596128186132833978433340004788458020832710638727069864720799257575997243374161646231529612786179741820604176243954246425395667409496741002146843258428543973339748775488132681200682623838240606798008792186420718671150564518395155384302865028298076145995116552669959057889444141654043597086551775689287925339798969619646661453700039388726523749956047962497919598345836105458470565486359730793436854313326507050334912152782384431844212080419104573381247846438782927625409800089148327104440477545059997668895720280794299053835899552711616830679327818596401393653718143772321564085739522417504980542595266747128295263627165920863288494567221857293073924778723281788439247449163801731458035829436273105424019844442578069681209902545302245594132888299499963368053681850735792900823294549726579864132077531039420283602714349184480350553919535072537523195524834175923386229662692596142540003353440228351366724400353415743980182049280187971623574637821899772508689613369436743397137061454161641277740364598737084657910923729962627120153065751275960206426327753393066315242087108764061596028628549275940538037215111884752143926701927247578274209583018476165956341671096217618828339059701538850593406161356810035297934708968896800530315545673487730484763211319190451148058316279109179031162098115969890516815626194275950907340047594691483576874697575812715519075283028734461702670559984018087188068582271342273524827100196088492981234108503692153966715284719622286885724082990239475468419235961804737286162187966093872921008201812652481263229512399035971289926310303510250690854353524573209447412347079992060166481282028483245119326676428519017446625404366418618737734940422917174692180809542047588662687375707839755407244951273854668899820240850490403987738819840767764922821803430575879007773372739224635283867511799307824727488426213624066064748028875583189153770465361277021462986620094461801191034296114446279997229330142142250703297068755681597848932194544919027491249552797816072917310004272587543143206926733844192659866007921995450325091553679778643989594152479663681500647808083195849508474660195412202846663710590831445608877491083701086624693345573480057433257331841048502046384293400888285109193252322182646393783316860210995749814982155725776682648181818407738656332158926562207794781919232205827502461748938286705952569504048910016191142077605782654169174506917885933102001648827832884563283187011345484047281813143643917697493135557091498527770034502983427398219937621391169194846317636501946312490128960757171437566672572435694153973916788336346372617563630652022009846542915333744920802666445886007701264728050217818758643076695424841953768758716428476169022190200594278258991810525552974402857391205673325382049798180026094394383727314908310797307266526358472814926337594043215577502048270563155251830460022034178319876936707677963066896464156698660854031333959973993931890344899358362151136358380185410003523657879143988039336125881581934462084570900425248858184855164011530325352932333701888747074289253033360519486915018602685365381174497146766845213637250567452802412195087570319283399420911535686091917060568605931380130782473861917315883725794289215390964713305620837286109040254228972754914160753720775949180188964947338774728753926583235297141049190754791412602523372504841602698935532299273694197925913508557941900438263322892487201513913870250193022599565555038962054067815798499609760701977922375270525017583051786758417290212170451121577452106538728599060960314899987169078194383075217934105931539398965871728836698551910469193696719046274293892229042056865993502752394302093371651590877944157334980217353229887467408703942330338124395477165145667618813176274716597928669473003263606416512931915001200272071473602724403013777892984498567642545379004018976599093464426393556354479237566776085801476150388456214253390233335384357933735313086073058578790121330178919457269633209615860351083944972532987627012714474447601926028680494099421424324453046594347405538087347456020592011418816598480705477720709045776463673453285838336934672738712840908366996375629555341158138735234167763725509673728870810357229007711801860063395632030591019974973833688230789958145447292875099822340962445727712747668681086615230540712060281745809751592492829002669239221920707144313582634774500874023397160526129366921565438735604799922727599983769072652208784594250257158766775055129460573016472666604135749935043031073591348528258378077203981301058905443412620734298274815939411147828478330631258509759412830627316484686312854420384444771829402258804462865334975766329142526256290957905613634066763252719915575072976720520254892041866678709008321157343948990933423758421811075542215072409185621904566392213010923857277158781014813716758670303138902541584818427199587816035056242028880138404118315426073894803193718767956838566067957796651036822369350336742053755614186467485747341336013729076206412440894517213635967981966103782247560803471282579965984043737749606227678293352965724920289568408303765648875032750627108447793963239556343545306385685601060473944687155229091565908096767441715220929546747107609706868501723282555240865889068473884872460065285725105459846126799997346931050796967613662680742256726168139312905667808468443464524543268834051477354760877900754680827677720174560668523688494137263113925637089789890191182281521065799290336547850922064584612292607006595262494810076287158784975282739517973245522993909193347130048049284707078654061296819408253429608929572085427174188186559331475606383065397643790880604927461621673128697575805580618729586938138379036195575020302498876435179072866897714078757834722714787093709762330876522575209038830894846106165592753991076956737806338679758901448825021377095386526625760603267002523218007180206407280576962881945126014100412466594147795762855341355219201928513273512641327357640049120289146962818669171904025915601711060142829129006304197537192431731043043327250202278657987826566014375456073382904965433256232434103140515800297520774844806854733972256011943918474103714304567489392879111248126371974892980516455793587513130406690020381529942252272052644085091248855166752212603777619969763134860064971221272305857677472666900006504947820359274810247354133665887878999858845715658552355089658454933610518241397789262109456258112645356674050810483926556813276262121263447668504927655796758747560771937205569938556957344742363576195455526232267378724748207953330462688698978596594032286627823055471863414397103203840403231522133905427865675122835737453370713773082767438660462316748370253598519898542506972755829707903665803834465385476403799855476013562105218102523149398202418125533952749134833515168642106404287171622829271067180100977755976851016634726923720640302237621635308302434945922626291486259592277548988863299901468492674910615241704396934103200138089087813307373959556592370727015567603333018674296293623070125006839677543099110858328069946711866174174998210904691581797484622420514654795261889037706976032819414656903710197783613958306549206728373648271066064943926396928844444938558096070335006216523386389154900938957211829167502587652550218880861112051385797111225964928851359284397089638260193666669254946789759138656261160986234209448981445287398245314732527971849015000614933673616940559220770989990039139842660487318309529874243884936809479211616572133431678142395472405086694631297845263685258743415194302802579425778933360820049316632752016763119032115240668781183092650569469730014821857260339284980937822177104414472919637046408672972680732805354606426695965938217801549516345819836575866859881170610769760811070660346774358038631642579494231853700608156867338309274378449738398233888431544329292238901893893204637358770398918902287180097122336213821760934825256717949196450816638086928916125544099282997347002663287576107270797745626071185664543492360577718702712795486031142038708209470757941663202446669796749864085583979522858548349147476717168453069515582409048773251680384278420464359406929126586121158037910673318199211911131611909134509939898454404875854920605677296628618674283883494125497816076250249593655594573879284086838685984055163080038499185339283007941716215135970114294711998156807352173053287821415490982742197320467068161906323588188423093678034128872144511866265163310899680838409945094626424542428871796503863362499061249293099488117078271267654452210314951389347423736395269615041058223012758536212644727184621964502768036073591721015110808259087721697792467975433063607729502519655977828921345630925310695383192792726331911637397893372448081754307721408963450338684778682018577402328577227834567211444540594504555521098513109794701446671759766639842703564387083368772047924977404489615130395252093468831363917019928607733140881458763589894534550960116594829775081306305575289939876299069949151881270332444868408255051994636620801511035450979402712237427176168903373667832437989986593063353739868927317581774270189115749156622056461623938723012206340993946307379970351143008716475477045444592048081834936937484056830944200222257336970893332216822631763352743977520740232222674545755693982666688302883859176768744876303187842138228739499645272732354363182067270591822227987618576254017730076086900546473085055308613423935776431050069755676454326045406841123443679132723742551153080456252720933634492233923202004370067362988804298373830761494204040983403943634082784225118426562286336125794107797442994557545690340768640765243037815672153767680236420606980321082451064738707385614920299067581882301487262185507279251966156383055156671963487599457232299114613725751180247415866942928566048212489304469665887542796580473214703853869630399107723943757294827502103236868435983800725459257179378534784846825306345228883015318211161049538886350619718343150440330930220406978066612610302227246716190454411392738351787183976180265550287258503670446963483935456082959950878225632963224309889744408888102834829906751684333267677995849605159140935447542742867584899458964611444121416828677926775629191066788357643518632257988121072980595185524990725962866443638044848916704842409147913211192853437397709604996255474169224343327759018926845598113092098393340753389061151222780537433119000530105310772702586482613755388790782773338708296725223267879405848006810507776811877178857548824957457395197549762225406700274550902468796379318206803890474759329138589721911776135840892123069782626687504969300998014080151029698427950024578509408282795207205073793469175217873412931712652981841177435391145795349624399579134790957622361903045914997520504133168721020770237386798081822887012322545988222768950829545278022105677683767023219816586593693466137228578119574558993518180915023217873905925090355519955897078142287815806606709603360711014714807061161132236100359731396054755970083611723920452562061460721318960473611264017695951293751394447438428315117570308711085486342889527340269021397988333182018790692440775468926397165447059000803200031109199053291948185322038490845566513893016449531951662993158748053949623727152360726422514839532798253084915541761940110083668775498215130781606935159383202954656925265735348032207819934258544775696397846378034535118519812765264919297430538191429977354476941981279167605028701815446313874610855953007533245390903530918942904610751912362144137327019531693978521415968939025934794318842808928359778136909779428749149959975580167744849869302823729461904673542586786565419820021922611509020315163735840163460790780155801076713335852369502287130856731400441796152840961531289443194675887603554613668406348524230327295144834518142004922794987412027914065423190052283941096784507046609643627182007700335439477557127018395034706047342784819679464963872582392987781309079978827429071694512012391586415141868938646525580293376213321367149075460846105290321147696697473765477987312835691773055996441045776138833337641988569748435373425695872665955874819024740535237428265403498973029505418518213477161136912154868607093065790457711943307380453902048649761170970996801783045632150600864693563631154056799621125926926216626844588589900938824154179151540404974267537364978706780701764771478468329008739425017251751481953746366708767852780498665164891219681489008977985324618505163806831789095494573776780961743900621703714092895816226352458789072019672546126425790133484251864118095008141342651249642396792158781046559251618800116479733239108888620783459372138232175262939505359385896864326504745889005395098960126166434420643437279282289609292238167436721722369403103791900035497971048301641052055540765335734330429266674292334857105391031004596658243428375778254586637891624473550069275480671044490866124394112129345547205922093272872578058212119082248807474128366741669059646753574722270968193507055091356430997370386323552401951349948282685497062403033483619568606692556952710333733431124028293448580682794845732319730091646904316601789269881419934568409978010938091035474341270114589170639270059785535084983147956727119274950200484399030055051376967964831986387852749465579929619911965026504852977016186171524072080386129116524089285588191529295413362424388168783564133555085600578933292829090683646088445592075610113075929595235169243805385070098253941339216754191769768373969442886696798253244624501449289744090366088813207521180830123360676786449653678123066718698441919460311584948450630198545151149933935700914394324845824965602309938249744557284177112093246334088045675902103562284806802079580900689908488527913883686850995666629045472663479143726390000648525784219903092981720898716727656633397991923252203537544700453373626061205684510734513502938220860451095237707399687500180364053530053569331682449308455292551036266811829947671888883353537786572336288525173044236862909917587368664195207802120618378449871367113781236340126922307354610106448590837187005696942711504021440652770271119660824586947914756252736285975132628147049675192558826833222913072121676606986744696075754808946018567361230454467627219261112413255897420637859273547437551896738894568065299574382626999199206746954351770041922283904151256670477790246341879681514609899604551658013818805723170967528090391863154202341431571038640778317031415942780132969841377910305645124805673889007304987141966486065321479687163662112585305499711042062652184976621665044050318456595457405136001967529619568507431819273618822648519818656931435454204345209680299518452003917440598861912451352940168299112358463425806305296892448300551236797925991240019921641764484290520569404360210207986498640461244048538342732085737824135726907237111252731496891051876188092618410650523159667100956191205702577303054309596732075546170387983496529655779981993389746952860510932727913423959206710701101419439235039171143504129868890917864390128784819226125758462402000637224153788280813403204771401317307714158707967755940778746946952926117013857661480210896737018301640774078878882184935733934373723394717994423906053042405607906958445279009059167846198681548244781210992131407020788848355918865760097423963438773815816896775545375529129715110906674668655895743510934608550715800602741144364848455282502880963979010139510453146008700421293808448223264685472949605062318144885611734285192152133752583018304822228183155159914195351009139281456919840534675794095759987825309487700299205377855385943439549057362815784984403648231088319541952138392113449070751563100448799978535439361395845623840233048621469220236070572260873758669457619104499056947955660886078009578836979253851645177072334900159932765129558040142189940635069700508953814859416270093589065503099435225907520380989744890221971634515396974797669561321676649502436741802272018773537458352265644289392138945034210689918737576430789402005237476174725393524236051261183720127227277474274609943595309032788043664630113929204982088246221121010769034000388491066115262576092309207699175455702820205111368828966725831834515846204286753875238006449634130926288721120415737238412050464211022039969093100649577273873417613087661983507323817753206619806493373335693407858673430195208426620743167920239686964973586086211407012517844600588461950899986851827433452199929264110656173593948874717565563276502573754018926096634773677830232294520438755868384908222204853234403615589694585080090049353347383676245402410876978215139251675470314041769737399102438216596343445928088433720593990156206065017657861606451229087860217620373719012011452800926071819979908004269909681426570422409195602758846017604304364426634905372765577104732864574074457115338195918016514848010705432279259983175775978948979961618767028137587984254601412442136269613024251146995616284034060390344745865183940960783726968354521537772645531594162877882669697620582333031873326280126823511814868593136879893740090410330066008392851430881943240415281848622233857660089846704055803708991887321195441110572862487600858360983579063128113888515095970763944454825680105260652544730459900514740005125834270277777228422600931692509787496610693867991874635710404593347529038735275684032504476555363163636472845329862328532331377597669556123152560195344200862152598847127821266283115997906467992937058370523135415028402982539354113297714377511846399418677107475498424069409131669451031914360318178656950251969878293744049736971595503424760465101563047050958154237624163182181960897083843892223898523395870629446194285603193595552343794323628636122953469603913709846468854561994527887398657215793042218623186670455461762251036548890040888113766566529848705931271072244024559519748943545806449873536843064258559850916332010405166246491255907147049471645731401078982797299121602923333527909735535990153023399265556532482592575985941049813727509394567712721602409355814128127852725456734199755149350956910025433171988285474099734555364781420374817769669579043840877930052371658228470527907242237358737859685786939920575835774417543590859857353512342136019470470760895723203028755293839268063471200531232480373844513342393517802052404783982154902157766794364665755870889341307029789117302985314273498424089073227721656918742875534917470736454287869531549047946963240992611355414379698555623329092360143507795558763978022859097151678102208571930396385930663255902804657696678650799190306134329070679479889398338521886902700191253494558665771801303582584627395893690742654398011161463180760367890624270838425314071283699951541623592493961471295008505409053940494030037964497361912810922055282275446213540418140546525183356675689025310941499296177719036675085178349580472079072532776436591857689491335225142928956025368903600192436557605162229938649505715724175278178228717217196722851577913559086683833705167504206569136356197454858814926806002560907732722505107745333963506213574186306393993699233504952052679843304697021253006965027667568775056186346329072110334639583025314955496301389167024537396219990908508351100557437160265618333530463492961223328859936031852240660071044844056664611395614872102766705023296574255780176138042908105944468786234999712454391522082161341852464162604936195581549457803283551135576579527195142339124154276619777475738562067783973750297738190730601295147547829779273766558879743615006706772699934610924722814179016505142919061998351938853711251064666897617170796231305382068133028710572336209077275181879187222989876343306924808271084828560360149449820935370450400415477255779578922190734683950388075345506858500069143918591627677859343259420823190437823797926569527514452942989749220131390666582295076707259207640455208523231978091282325912643568829613753734009236031339816985182824427216151903248082378486620329330300281547464395803347497565876221982959865099192933084326537641529571136566045117826936738078302314688817998228516563704550296352591288131720774483220743950647018554954042167161308092979129006018562163205388842394465481577365084878954971096753628396488230918481538893388033332862089859093438912260411157646975178904224167416505936228092885900581074274396318547978285017598277542873545066954916713225810570342725943798382481681893701930213189169520751960254058856268257050289457196937580447078771917091902877659481067098018217550415845204524990192209307926677848524678404240547466949542766375824816571131053028069314347657049810438350285916819014340628664613006969939101771727378705793680196250647560936084487815714106064151216994420380622725680856622921467023643504574843774273016440685540124002900213679836169031795483150965749393298062349738482465794819219263679441193828225219182102742270574175797458555676054807415930912879811863659793211758489417451416901984212570871946710877491300401772607795563845548883226613453244498373228286890354108687252783482251244379258536368132947573485792593546887437614781108178601488140844458625280439535786700050074289819564646137405620002948609764704302599028971012797929794097757569498724737878845714572990850515655745332566181005628385221019543736140649066741727149344939008163775865299245329305785066589339931320495827428699325621017295323259215753933327041221995748412673675967210099221416911443795707727916947155825406166833180380384996763681986646377797338665183779595565561803694197458624080783086903548490272649794712076150920318926859530042239346927596808257796457045319056133638055503029291167111464981522115665078519054591353957148870988938818797272537350999388913282227886086085094678721199111968576149491913831238661015087114064568729324952749780678005544257369731421949526652742185216180612939174199137227992801698031472519688356351237701373477327968243952793334681765812246416119615066528540297160962169857622430785783051179827018819301311029540753573886346497004009128333133885093893874787820592219935197271911660960093348152201968892444087534567423720048034854749137789167210202744931329781844900025459413156343261169558384053007674401061756546524191557406192890594768021915875318616016107355252115220104173490110100070652689409847651925069833977055466647428654965518877343521416234923384595239276673583737746454639480462838050534162856511664279471710255337170596421123749560561726722607212882056306748573751221244204230697918134799098164305544574971313183053965175799072595162481887969982870072062253762435504394267027643277306266010716944452318800974769009089391937615849280754063796366447470343651966655287010668664201162482784584633992452276395810588044460359700030941214546205119615367386707538262305993586208252622389174230954761856261452149911707377293207371458386721192618789223615790212948122553480813149421696168551418371718156392864719394782318362173679557988452295432253182838103978428388425257717199736130153511233030480359166773106493117104669798350404880049612529857643429177392604615842378171345664672647248135877613586155023623357806848000948001358170386767484392031382923991686884830303830297045114509489471912746955036847249264348240256729372337931080339492432560928022100505895039593909063795298567698919715308970642715686086169204885872876827687784767687259470945662607468835583501262456761035586544167332489465950732521584691690561137177268989143680043063814739685414419184821879839903430081026766644705154133206785460362310911585325073624623716529682536719546241157695889380079348780402468840797192752936231798532544776234306663533626452118740125632942639743544054465540129156646563793175955503466033815062802898028866072567001598178574759807913374692802425475856269375324452143338302824941313184336629128773204544758567903452274980543671125179419027245523206350703315447327787613358369132948643489945297518929649549868699250807548388614774017739759680431466782041300752325889568730115707892552474520168654983159872878879159212802949951085154917577120078328800868052307800248845696999073802979370776203486852516485621698147902255536583029403645286711059209062739130497872373768338098328387326546428197076674036708209045343772760078762275293536798772193221747159906900373182905066864745361499194491686521418419044183908001988315148941736399996244601899348710706238743890644283479470694806871791250013274303403012987606479023340254682207541839672437021024945639874663978137503410779560788205461730638996723648850270588294068414500693776322649363923419654558587478815177093417946200472777001132490832304806767156711819116098189754394757902640886013428090831075095530756283407454779007500811610373159063192573341860098602057593302619309274761083244013740679646850361865642852213124943094431860600480219819701692708349475036485566526422770686949830556047869710167552006520746525518064224788880917036746094682744997183390030018084755857215808204624908120035795207760326656593990516958221179443862220354842965599330899346141489299608859684666267304177487138350910095825002647879063062374632403147683614387285563468978099296199374973384014564157744392999718880345590549603514702374762020612013772526157365063952113702657126083008246600584428486997079693223074314130047908606192113828438612467129043280520344285478066095413268099422440166849254663836692480785099866572009607135786132484612421596053733060085304236915430651473237490555583387516228976384760643210605487330913431152715103424348038540862869840609583008198823868491999186724907930629120507522428565513534623834621635188206113516385451205244840925901444961312130070702552487655177916162293783675579097932630883739174434305510535449823091594581701141298856433887823150391209865032715709011544139347571421648357358858956295875980034999548460555635328658709837652371884666786015079650408185411691390548852199336289663527846478536789696485921956006748640871288093217939400732409198615637206553530227652818826730447206925133808969733329364533335921166171412582371314444490518882549543542987392125442081589944663734782147439263425185945740483209088333280912360449474999387219978850891579156888686589013493654402856185317169312909799031737432666854394480862360186264686121928118304886863978818872039727892323673067100350277365819017693837703612583732832442355893872108947502904992316250193680937717956861498234509204551490005360794188871329448321372986438314103126128051523401548448163266762380731236309882996434100141760991091782026542139191926483021126403134703248832231296059499936263613516616601202233911872780008957226017672937168832207494652128518031721790114702071979365695410767468052965261610070238435150473849381261820037993659981570412316577937190584360714909554424691099190624499093877834934242189001205386265409668480235455629160612006047803602095154674861596685335791234963822036392688740266150655139581665309909824834964516867101506425591325320057021337095425128123143947280388349684240958296142855556481697176552725535443458904710433939743004041753036226626772189192628575526911614597655640911954044453282049789270590375609354704177988022033306228339438186748728714217223689231915310271940186722197293321733589051210262543926390741163951706195553558446538507322792146727237643600111200469397528732793058472792313399660035251955580357520341436404419867974014559768796926475459535445710052891665112171145246327529461470752083005942414332720377600973729057179949999067455169693973427273178964928413844911035641312594720009710957925828658136182178943129624563122617278405025543101725261591793851138960761294620863169654821719396673488017395974216958530375737696526905516497791062939569312352490656644942140770760875074225605951601296735626608143176580699632838938547300228692300832202371861110772369778681920828016609553497893402326862040000579889644239733884614629432150749662573128270983705400982618457256920018424339066748365506461181396488318435929351025810313249879456656349455068305653336044950805765618642015148239787985742787018521374310037093744633583141256832656633583500141725254095381965039427677990729792788369924890719971551002255423777733408201394407854969763962347587990246018500812830105932146429330740068525667388028589026177202067021996340981403424752677079177641748859697715811625861881601009111169504154293770966668448427259656463813529425174910049882404155336598829112246720132901879166201050150930005934804302712988311163004546688162262953725762232263891763192301472486797926567547044183212953380117583214937837795063486352389314223120272743014816653941390669517920352613037093458192220433363075819752314518985263882811666882957587978875091695419996308580443153283604882963825818761226147592286125940385567835239782781247757472216143092076005801613036191722766636631898413534584058394014242351190682939987259517973346640706714199392381259689941763483668480613185249052441249965457282937961917454370095332142359717387040611403308219160502266017780385696671458931207848329055858479352713889000958114443249684568862454109565640936177939541993758727340707251850183283222075310161244178958068551572012311416578920031373568986812176139254546186952811050171681404352304228454979486732720379477232746744534504529871522541278747451135831694849880437501531286302255706541240305248548413219554762935771099937955330965861614914916336829633070295572661537971545342492581975050331518596288224280137998423269268407140535252005116154397465149433510152274548324062764946387251381376474960863494225872206136131857804542399142795315314236052506319588668980789082438874645736597887907173861313795955343739457582659423870554899173562131741275302583699413232212194896054845737539030923945408361209665384819093654181828219339393918259191214041482370743892361499441444701718800533327353740405873609677113956178800466741583169803764078228648835054088946691579248414110272010591695548614200379151551925863791763864050937316532297233022249837422582549172698925482282133990927407130729438268506244316566565289653156748214603053366458557464867142593125315188641070045604103109688267390227685617442401631395260158939149500478002023904314148154618127742453654733668356111620723917819884717437270692962252365619314181833627304088142749733077737212534981156809979379842408888274423170001373523543811586502500200179155116205494286522879196927496081812045975875752598325799027067543110133179730661786337531503419947631958386338808340376118877200539259210432706648009140991075463926865918055194674655216130927799406912138834998688420047399035508019518916418126308506342001311897192812584409132310399811340352067691533778595327335217217054580393825458228436705938566500327781532403947947513684055033747320685647645259516594051773099438387782874856046166755452537510789289681507253033971571559300978377344854313021670109304850060332616753617566430095759573040635706400160865773581846079789811917432090733754196950805229371538688641239998596932889497120661834560220847793514541906668309447425148354940679538248599734123638159390869213991151777094519956786295407293541792668515834353075763426877385400980202862117036423696374492146517903867131969905438160478135020034019468314542721606213295517435399015538524107215574653268108565410208921523189437208965933283814461566840929170925776381289480451356270976049355525746462710674865701710259324939213494927359913266956281448173996744863923090247975391562122117000631329799241400481885025583402740198450221715962554989557062142220855310351541120737360867780852433954097841252494189883963588866314237225587269959629844209102108616360898113431552560931822306971006462575416746104281718474926749281485487093149470671241994479846241958029218075787060414896561254252953168762560791746411804310191699562308302058224641071672912740217467230957603470710207768102868191827481661282814617345155605462725738653108065904611471374113729715249334691367698150890556257665281499191718621992562568609994054203303530716542493571504608678090301678135835118482035938840314835120195349867675614479073939224813626006527990752089324850726201271217931896708224464511771976150162193086690740502779778516243427142487607191965614165314881622444335111594153065380759053954046678439448178842848426893605026953989287210661316442724045837051694073216801438611356838020995133655031664412173043175921400778171952790319714630441164859168334174655435975837683857303810426040340191021848172718947370055809615236752935811683069894212840383792574107948717485160260035189659847605504256740585440718361990339411086228584497830526869350655530187479634577048330131255277959079581241264829160239539489133629038176285475577710640487565057224759879242684012050375365839271475546302770598677927218439600185747326794393582020377221951405946406155100168698179616676687679994991670243675486011062896832371129519273639839056960260560098832172786120890685940720308233369380940830309328982578019048134828645335188388382708976381718705552210651603042644007328644320138257457843453457478858414157295267657213082757753029328188640783689022233797847116114355076871120176796548624462898431367788511438412517763084438013449423259904605157493878565884794818818049971080220958109164896268536515769105606954187204964419752763960365322285031081032600928626359517879699894864707620576412519246135345589887545010238946685552243755020293631759608575018252874381667816948937180621841106018688718004521271953840027880734200040352971334652674336078330740975954711046588067414257147238465125537472510956524776772915107916593557681793670265288136251029567023824256154753406809850059884074671012178093563959377776178091920089471174648793805403270232480336855076883885607828646035883722998670741302291375405835809398977694825468661655779283551872503367862335737370676930414406731566580533170215826283655834262885824610076946764711459234113929399881417571996686405588771127241525965889850662174817526972088441161450888425706638626144050892819703001208350000676312311131965106827036202533438582157703457606974433947830703019442652433986281524713616825245951120665737309209684288531091786647950750753453250016675337474922910726162538628217232568031499266037609279665030966856114575869133030405526739663543743249700992871171631173935535400818429180892941999135900944152175787323251665409062447184749676885068456781328224105109261181947264895858992252029432987015982504587137373977937705744969927579283430946196861458341693639113693205160123078784817639965450339767193953630108540101121727932267824733753092419543498750219465423139766308029680234705555023804737211425523084431969599897495643350123143489767984925841697123724276074793911240198366985913812165589919216670753996932548823256292136416321094800747526749385766545415984363184691418156587979138030391152079460362423782358409727327395369723060327681833327137844808844002662060051432102846941428115993278248328028916586452668936912273649766284311317724457410475258564527934016055513761092764574553699336627377132234710892301350178068333567748443948601174169338157085763060200873943388384971011978934994497144470158023274292037554384626590075163603340133039918685882641416296121810076380730020246459103032661806066534798072140235016783320466735574231664114613608891381704363367818873003494155703676356329604782055506484711429694702179456121963471858701969422532367893781909187954232697262591588067150914651304282090462173200001167465587983245470894268072544379442812133271296819139951613943903167197683126130411998749928129598246504855893968169829839160818216796405877605180628232144080972258137912600062114306245810884986641232679421025136247486419248685363633632622913311147181098024605938734697841084215355692209996338299744051155840579680364142796031802828603066462685971293662251932794853953655361776683582620497741831358079021120618148328666157965842507878409800521597779985481757304263833127289772852705336295619611493481105754605470858216412441425231615710260303641841534278343458910507515052185414330167849088480471270146269215921758067029081595805874444537680527976422515325937213859873183755728121171508598197372631026389222151858410210384239947420122096402110800984318915033094944947470908340941857815969039740209940244504332320673485078275219365240788492668848010542666233198807935782468672191212051983007337268520843664297561933914335503327149560976305075481103838323368075931713275967516765310430787377669259668928338983184524278457784417610647560097527412794701469341633286207633312913795265425722846892951509573664537776283382337648052940584662392069143787969141901299226262436869653214400525431609317673208104401818592085140213312733713819497276297936021922031833355110392340092642492058624767048750862203815342111121231303701301052288138821998680256944917872463589249408481099942993668861361474951650176878009233042231245009445069242517005079663580611668408609169474462376466552829405674290874078199754306173760130212269083912195166629769930454992062165450551520855736727947158468846191409284724563078099455551316274540483625875988360713072820771468743532317172660000578894964628732142386670969971986178741119102373390807651845487737855905265446996338783681964936840981222187500419826920159504056617935720461722928599830970060946174804733992063695504562272937928856962453754165824667367781639337933313260460079642156852570240119736016847275925571720664649782985524338345860404927852342046725081556905388288345923622391702079106759339604934732419064363439277899856004471139731958135458411975336833227549858909166090314351281800768745332093688086238840162148017334346597398978032489179356691625424591649647607360742037760149893944349334349001402879255198873808393947246730356300150187673120401252300267587086867878969548099688948581887180477957484110756800822219776047685185773344750974174749141396739627963910931768088311740686893539675652277178183152527952872587845358915727426880419272352616850576958845821695138378470698722409953213198508409699608427573128627040384118002751163839947067471361252169856161794443494239645449132467215834584634337178243726232520671169527603516518482526955782572355260765927627312008498832689792193289351530592367382483849200193117849229487303795078111356747466522160562319922551151681701386947320025067887948985076673086216068437700380692566045518696258719783205607079976825172957365904201330362289816313794878016737946937937566729821448221442120205250730335257816513590723280101117625787341890514202273529580751916464576326213939924413616099563973417060587211141945593403201314066512669155855925407305562923135764083176690474601043707923317040139475580587711556449831129621372441107818208546079082249200427279627700051484413773206752637884608275951455029420336556239771067514053884430367960709410764596784741814444394191079831539431637237621657496184264785337355152698193660626044147393632847021510760120913215010159859371263179180580922868701578101313188100636909542221505819527020799557325652832185211620741481489052472460899363455448241895191217221867135049749098662532179516665425452570153696410846037544206592516719762383923875352615803961630351757385174798357852851463399297474062015378938097168548091999768466841061164028283876644676731423006178461010772661396250574577314072908780216300886787723181900501951873640666406338020026450545368278448875324197527958048725811614882381380892832948067214186895382106226514147526191528444123586169467049580447113792704111410775059562636591879742509988383479202820863884228225819434165302083284986701049627765447009790349075958912718754978126408334587357864704975345179902812411505303237672766694391192392780997173380041590918484934266333410533369415457720194185028556800339327444654119056760242094295316575404924001935654676239414354577560182230825962962927274769261138142628332641947113764712866291209986069940471769351089163103477999098598393599570925649548225584034923713043879103477706129317088975718927818454596130658140413875644064969335134654282371021405121116454720005470947836659516895176677490456698940480168311665434514334828958304866146952419131833214239791266555557744793057388146751685244661395397875197459474456190244484444769784642713317335209189755940271974224519537290336119515809529575147696394220313257467147745919910088080219596490371830213563733969440043311097321071598638146558934272878604772670983844116080957037481602565040591775742169802853708467455395680413257167622087995487848865239565657003143112750948021029808605209994186839112803541046282917969729784730724552495350135739331113320520828518884696925862036086344421322279650640681684721092313985699427351381913344944624130727236044447113506919906720588039374141027509528984670587718883178921972237347110158475792739307813193835890790666747109051746129337682627347610900433795384488337225300959213835257140375746297716388715739902019746117836759805649617722568073328481075348134873447238792797877043445792762928208100509852939676155623277287955509310897165400256430382756842985572961226978813719407982219309636762691831045727308693503430609478022458262732918484598695073393847026305220443540662696506993042339720164284705721864440062939084392017313356834095969542395150457851591488299447605200475932313462176019266224088676348908058039279441368609170106147719001960266832420264601228736684375289180024490699814625440463030763803947925698946358888516860883308042404965919112527405814782444245472807093466318928798538886138182145054209041798234893848185310422455481129173686260102437085679661406218562482604545516333838464244160512112497406763585363525121534413998206854995329387819493967699887341579893470465405609677304900271759494853764115211440277423231133493345132644910274497132651952912526265244914252478181776046772386891194568724646294042731354708082896249216976177537670043167627976202220621490990982581912465288920252568875669172857343674250925667857995727818297857158315489021184977703399499811236472412572433131732226069746734114372516882751232213811454071721304467417978405090336417258671831830064631742709164756918386203414412677566322075563684898045226830691369823902922074495205880841753484558940527226980365163030615432857997283113295011731802460417184005340757337748012217419374471454790616382463715455431736410035813470888698455553794868789938687992019961569205595049301348008760620664102442298589421552093380835324566884964588901191860362523485344434867665379782811630972871834153348977673107326456825557482914848237131682601312999519929232813260068735512005938778482788441558622701621762772791975748426601059331225982060072627899331213551508927913580443796086457092423257980928222008260823145211374061477711422525985815217037726179306960062155496266835147942707955005206443631202372586174035797838939079336752980209027950221571471831312180970311979241255628249307296674797632480014481643496494023678411116969308413142708927664713603745360597855086773286629781597279185736984359504028544302270700715425052738399462738244019529401273616606253870726626204413591506707740351929946424448669689969859394824724750160121525999593190190615845918361219873944679875799587323518748887102575762340880179045474766417342927079173910948324774039804330489609799112775742544065926839581217257189701431384999663720079432416036920455587451838292540878978035188388459647952823211435615250518721226885706499819275610305603358262899785166195064044095186529034538740885189088238490274767543392571007530782702822163967345714418732715950118225909167036115572980896260508158417474104094456897608741235686728910442799095457854583961432985784344575489422654772488222164380365591803177898100881067368835504015427159565876210712439462790890900700650724810390939977709480368707232320315474000812418815593477218985802109304860849550085296901276857251815276052855789641629751534190730997821841014692605061936086824072439214819869465651991916277319839785011229244361322803029959830714110276229409927077544571110653303765452612866685242042190677042819308898255394584148492587873159743906251297669024743370697955768360337244105099473353674726175271582654507184743109654746606335828910928248168262983393066815964315496951444085176015040107121444049549564735626316743616585911250638756116642007972887197062425065446575176748046692700601479119342836363696228647735309447527143383323954709641408455758279023758405079625874921231419331129373983735362181961253764666105415754131574832934603698453315973093671016307147585159268600897505308900597387591016530695891807143563924812718240798822816610940082087838434740974994219544408724061554547808223903059010154858046736745981260043543039340811828172342238934586392460999192397716203119859198378319441481894272112018973600066851437576353626175294879724408373019776282403037091963260911754895723215397729517095996719217444024193299162843026744432064245935614509218460843771561483300290656569642789064637455021183509542500818501903189744293766021996192422774582097031552936042151082687090428824843685899799632047173620813774680090880910198864933702236742664002288114538904684934550885168547076453003783782102262410162154260320231764552191250659670652551911978258124251426079881246811026037687400096434116544821523574786703337201527821558471010166398822272539090269075030848466214318289096409641029191903459216348335533221015109614358112716180378864610233749662876708091744656449329788007903262449486258527042841405609625384184763275714601502233246545974524772006113325620456003159202241753244541452158665370840370401143755028657311461601692954013513409885728941074813581828094385082884710051465289876348449419660239182703493707544108170737498847768837714001200590554168032933115923156929956344678325244111296726611738726159010486833908604305345506705458791981471898150643143783344365222825876847545411818621986311773126444223794147089060659660758651634461087835804299313035590541393276058345630269910616940139858312930324062246659479175791097736529002570091288396165025139384541545629273246057131008099017176131916964120408205537538682985785712057078541166483978542529225983172799889123959591849599740086041446312337553954379465125770414144780097381405810726234893783126353542670895302058266008946826496991256147589101770595650710252859471884614522390741827242734621864799805734379720129947155229334745242378615673759497406513976736173495222661339419544517174295787210818088248699740637016202956880456528786274028909135992347306306884586430154117181836831475900083422497451033573275318960618774434506330766830626420668508821080284889210294273364964695462955410388520502519160162289702653512420431631331771435054896566338360503135610204689808122136927357038625075571922253363935178104267548272606219368004243690197742596924011513625758570848024522385565244651910872818628094962236702210394976127592717218591675000762667414552167920983968137387131032273455571197941782163718512747804633211601210907054723325448727294743476301742043795187207217577636265113206598766039742117357320165058220273582830559844561257621492460792591014140852266109915855875871297641164905802407181735342384929953659723112541468844975359488214893044056606923046476208313864481633742356013955159938039707549373463664195276970099583247990899980110521032749185737781953506953975223337073841798148715053746836705465413617627514004390752668848157564708139766377091561077374086997474572091136652615729704581129715071250779328216763301006422986619732209971033129222218491474730057986348360751285980148853442754178144372832810461052541236431139257364703288984921623371806738182068585901861267493954957051519101799298116077642085835553228999800917323586496756408187665378502472061169964655384089026236961430509243685928141968923824490411503051332046585759656654609082163114089646740603436149985219990741775597546778849328412050935881608735901202656671375645989470568166275467846595506257434601980198217194333874547681513947481685576537104217791742960617189044930531748432312264691607273649253261396015693267500571595392881751386004921532888376090926136511644145672281732806653330015153032444107332711321560132629509137329071738088222062404318147881058535077703555173759060777615977341144933490350597166552835632218898847248791006199794215062395525774893275215082184068377534871197022594542428202439489906749736024785864489306480026889825193824842267471602693137685655580378361357208399445556837685774287959415535173270065576976254558546601194080289162031285033189253509125902219897342509562035744118698950505021307699843827193255863839160065490958238098006166383015343745330775365716155215901156421895833596752609749291051731293528197966553818250675372256102695518615172899493162039638049010978614132096361026211013467721207476709989422603580263152797747093090026824510859498762890606297347071892211790244939734298987128299423225697530364204527893561442412308340844237898126643310588426948113156832906253435652834003429503420208817318132760016854180988049797932931593866628350509025905407350750912721996164945422475865179549373634359654661892005824410513215579148329212932936309167713410654037921121521475463069573670516678388182227545565913606746514283170519131256053371212536816979026959212029497050638827360914241213530669688133226137171724624837818730790210468788029033303401294078815845124559585710271841966276378765539503294216019551941802167724983484331807623218725025163099071893123585142217721966844908085603518404097159856458262713037381153923479884193772922001591613884069234327319685438782179222865564377996051182076540388915677303802936441355488967258105419436588118889598383041940384331065516722071104342096412531973558725562949563104658271548004045587851110090787131359742917393437019465147627554909816221077498912002891550187823750901188396318899970366521912862941517278783817176083962551082464893342591302832289673829779807361020969341380277983758547497922085041556305140591016933359468156517240553021731824287315113104319820108832582290578051062498734963334920532508942049085906848028027243216370218972332796286237530561904626977662923069305836390108291771388545151183052026500942163474184436177280167492703653921963433737022696424209336032703231739100280244106430652422258659473479635485170033531433120006825054711045134998531292011587636689761293733812491422874858932366054515654964621752579680573126301237450109275750113957858671688828880371301842554372041199931874258264411060045266093933335760537951365109240214134243797691570780589432819574313166111426264057129740760381050202731450656407147741841605811055146641347571302890529185710039079145621653011840389460881427556168600912751216822139572339926083395143427490139929937650699391036848620502181437688305931995947931900281861806557960008206610385534065285840100295824036917026118609630283299486485180007642425673634830313525437000296582719571457848445553974548169675995594016300777594344024290072349369957303277662319134555203166144213575608913458771046961112985538932338790970697981309658842586653915955146436041672639027234627727810357782730297735423172042506454356445815227080575688209961376881082095558398562591339721262516613909960707506273437089580482784594436885217054431582919517772139026498772727523304454284757255055236185037465536833841073606149095462790997376556663798801313685451484279126585169554110784839398745612147129368347576115061963973871878263075802630123720784112790853188039759302730080651152665798660330143779978019162056002442325576183385662351533257330571684663785984580267512702421159656849033119822152302892537846068397988166653653039010821193674744277317994350902064136170047052758271376955840887384226851005233668492987868618090623829565837415956726452365593162688738930598811512179198101628930392020526052788045566648458764957145714400546273375279166715324458895306321868601426328568761504841864310938165613550085328808109602020671082764478756623291369890207548953619564379617564680312841416411128516784315344745669715879792949450378915804821801650555821975759261398182824507458086482790477645882786645386558153999984732893243362501945986160972653776554908863439215811696255132556402855419734320773472655716676424691156587961403648360853607421603278366767862372504610311624611668448266798813424117601432298789135819574154030369796290968737123778235781210332016339969102377555295532232037912104981915293890680054547827019356779925530552604383128805491617262486811706556211362885745139198410281182271139524195209624131807861604584213600451158370701151290288028557452426533018457623090028598844194056108626520016327746325036643634480891891582848807983549055742475911775584229387441893673153302046242344732674744850636103513816456697451461134440753928495152336690717703219411971773175107250806229038947966545634430690485326778483925217020553268483998180451131219789933646223439937120665159205058521210239155880329676093599782509124465829540274789726994895451847441460989892776032270699040647203213389510431570910066171699347778236744098874649864807033729705258378109707530490360762769391775284475077650153752555508814756577206435338831969398027063265567670789409527720656642854353961196913477847727684013546342505029964449261041654763853786081027626713200974110382664907030272401956648276888841394188159902442176655243456527396974798667720143023833360432595340334276435873727766380815370995760399946532240935149188099985079553832311612609530647888898793052229362460694920254667394192642013057974951975874893013646151356897041911089381140504294832799642325572857273866818162274309369833082895152723281915611792995342104439744673759428036233375284851350267860406084626972013714014237504524638592564263668728474433698495485534563721668769046997088319592803152744516343415334481011409303742450950109165106844213783184963717035455951411210134703897136621612303462569029035928924077865626029522216840173856309231525188968700793490154353411006154267808993717299429529855366891201908975031002591206678985828856398246759229098346642325705273716398467520795425163160441305026053059434286780934410459135175639078665288595729778620108966836017295707040742227519468874516184285513619954171875848075053677601462297444214750422947640417131945243726215071618644825857447489730044237760566943975165173614138558945638100403454836082756917844768673615736072433344547271963975081496402324315472106465819811076115273282584208886356285210864537053175200771128835187912953213513391994431320196168200270934737449073307751024225594325958724233836498643122007337319374655570277684227603530932569458836455568359057127653320203541267439017962483323762039830110189757449827534572488364609316675386648457988812921341484570310469047690537041841506851629278841984963918958414825143658285223374534849108364507767244545500263112922080890822547933093318200566959791346041053878845721988582002317953044911245274834303015811459368958413359685246264469945984926705211352449793103117679166238754065637772869195769145555784707449795727417160667921622536865034216101671301883860085203261277280889315222492881853298727601714114058186819446490902897235660726349088971623778781612281114319445530284999833715440878746082680028844606161537961961883156014752572299609007369765621500294576779489852885643570289274771004228512321682403796294992852147420676014898339312267182682068193487235931068181230697319979586310925783159449329493632360882785970762478272073834370931587682989445793812646925619687407573956626763486604937491656747860690124625673788815550128568775024513664299575256701086325965822858778414296590321225906172990914583791206979701253195011946466983324912950625868326389312198659248580978306821001594631690007717236859191567223760679222188764067032117239893534946891716671645633537630849370455210203417457857530245939752408132997033541221697415617571153213829162431689610182433219780468057766944709566133919554154946198870038470194062652311733133768727466553010359687580689940282268294975667172498810266297963462765547292529125818899251202882056094613315461627283545698448169409511332996992823003791782952675865760707853530261633724948572226626813230239742374432785287181027877782949911168609139583095915002179179575027935339879328109081717599915218555714245300538085022535144432779685987064395941668384474796908519126026942015578287154277658240904038198899246024029085488956521653856475116496084911106834587116837830601934185260415018987207783198467015863858949114693235975893910675519483789797010742057429616486103924289964603022045766078306995454407511935114364415042139254149935365797777515150674880583789026729273449021599050761954236420874627837968025460328156446874239413579973745353981328255249403649491919671581618990742627043579328488034099862311554661503759732905781239273866207973869259531163306481442223050414100212660450690031406940819125043599065734737599050848294819985564172514281540133631133245574012857376763022391315217257116260465367664698954427392939908166950011258141066564839658934753500542836087527455394144133241808037045980833117113883620855853571758954370904863343288170382068382230050560055092731478457563690494005100833176085521001764619062632097805640656756232858287109897084984213898137587903974045973851937469689796072939709368807737210441459112464708019552639038988687037072105980921037225823106558884522812189435426423122045919761991822208101157460286784342481070651774783486754988207153312803713137217369003461277878120819042769651145605350918891679443914502607160270143611410700576003565350993319893390397756493998946461036980994570786564689993385155268980959946859460330589640814962321976413562528864272395620460239257482215248097056259732417169169084403000808592655923063385253508445525297263714864320583345969524807487515960589440742781990472137342729908472167046664638547051873347586054782922145997064674241622310761518449028110214255434480419763291106172079535785206934083299829594391834397409974200309369217233928319499783504833673046626552389684948478043620383721711968411145138192354048495286934778009673533838942645224527868616668497738491190886950052696536744406337800830653005468505291611086889753825835091271215258583787603043875362617783750806961864699371267407230953309752276373313649683530646275269648194674034122093911865580987680149165586777146995011173618215258560215858583000781099628021729755175527372870680931174183500910490795958423863978969316967586791183253133182138299468956728195917685127863571919345196376595333164031586161544925390034784345036395991914991539951446647476897465098020015188135385669430643536667679036471327067618971804188920198436084908544086081350466323493026069395191989953099945366634996760829102845108413969213275932627964688666718808967722507565844858574059111235516865006007026585019883797858149265270493606872229812866264328904136050510477623431666961221200241837916136984864838420202775829440487294095672481589229397093357858753141778973970636843354723124280873684316819803876833893236023500831381016686190638470000973527599611729152842174709539283053034284981463795394416435515683145553550156819318268505221355985974628968256511170246311675507228415470552068098787736615664534443246115415375438888453551037496432803237111042500150223200182554205519089652164464419759746274914785399878636259069760700844886535333041946744713517813819087604165920950262156726292406483705357454305815103619484420802348764527692923689529784261156376284750825948789888039458225781084655006987471732889017786048628039787225965732119077103090323859819381814613727324602951031666000768785195666299192885841520777728085750748532217520454916635493558618418567129302166005264672655049088149177341112619411501737329367879105299597154158483566732592425141565645496434893961744590919442761460325369912371645713408001570944657016475150097250003720546567696657585447045508446753501134451874740698771661111736680653262216803447100731714316137249726352481933184879963354597838009745038112182838175263477563203623541536443419315004760370446310148294678102863773091669228568657696872951806781813635949938620342104892926392118139771308414083037936412403933811986221480797412943342544118410701068171487295619300698856839179936470011133745925955732422886241912441781242654588706361374611678517300905670618272222294547640605357008381188687498878556990101430921049723951952517005027565816440969533711881382124480258022788107263617426722341213413309972515274673104208388314134368812177103559029854962297493022501046050152334600031046176573539596741416561154285253390619842691870483953217740511527486752893993292972907535982779535904451563174362374514663153495110294511505822944672525981054157118463944080111254957529280172059229489422597126606268444228040946658048785145069286495314186846114029408543621423977672787381465199468083348753622439808369490255317298218071121439830833907269786943468806931519770858411528094954387934599475868347449891910282266108376923848530413326661175357303196722853539942226839480133251836653797203377980204368035574535665929026000001054792726493098509641942107002200997267917412830245496925960617256914532869320898627665764961354659877274209907530980873747894878201402504774776748342134832095521325850986121439529624024438281406291677716123174428152617535597459190596181027456685664978088178597101358014829070329256666209665849412418634086131796215404220951184173279748699038692787771842314145553643871276997154685513229947629302209454158137259137631516301627302681087307624590400444645907919288365164584271746984024402342023143720562427308471701320071386480418299037606805311787186480194867271639051835563569184458180966535120317699870775696954602029835459021114244339460052615603827359640985346375522361965310019963256445994103768028470491379724561033118705226715617160191511578348359050319510323426528633301020485586242851288386564583357317110039727958661300272234131763702607296323962889661600934182082582978374514204953556819464301892955472120492432752087039018197921650031135775346663333319248574471376530829311471616811117029565557582937873837809184261599740877538419034140461327474127949751610367355931820387011516882023426876571530789229689563931337375131789224551972045488185867579836893170562445412937012450262209667840992154904530178162793815891926797239542661412328418659342456510071217932577844673572048884955532392555577363503983559096641376969209034377211255272582151862776773964454454944190709920631579953298261280398716045869303940353277404371234022968771104275417169253363440894361569338499924281567564693912691166775408748676927436297789877822969759104644045046761911107390928402966793005628001162364722250822119053860878773639114386376559036223679346624624685068502607015435281570661751352164896310933633140903565338489241403068617915842563563854506136347708419378244301817108455639839716773895584525311075007852625676676061007774596310769949680468305523696385860043421056420641646455670371661623004618505335525768956213469121945660188935365123549255926073421747402750333118921577105088177243592128152126601616676122403319948261468800425522353950840488389647824092616570280972617628885923946739059116740502210906108226445503625976675893866591006969836121633442764059128502836577541289227217684200044439233820668020326034174868800587537004711454324996166103767260218532491166462145534063996864751399944810356027904850298534018106768681167424265268901598597519625277776405489956776469726318345673777965562759969732786494876535457193745109536844481347778760521956462656068948564486416750617018828455586828887528010752432221420906821609839931335296085620573541122539412908921388962323976723674407309591735228065903542763975446334625718991966330661746605403142668675357054102268293445137730300561368875696086172768787541068211834188415722679398717312175156816703627127178976818796186282312062462304705343824394258609565064097640239002851803462043407003756134450507913928832744756356329543721634461382820912404004207294520138752464424353674331745732059799352489504570247870819368611577204775825992481796144513048076930279671427952122286528951782012541526152906641735679752057246840112251404267446600864576316200785540132393540510736534680613783082599344290223797801208710054354292979724234503958737130440961991782547768140161716266042208474971799095905064920853130108640823600792069505477919833009657053989308983634688088390340161641166245774208166597874261509739981713598606144448755415599901814214422507797117557569554207016141111598024272574762768298339431858372664845415444592060923350678535463508849035155279120753473472160440393508839621454383605722669164632960679557860139171914408173075689128507361293950071062222765344750999374978456678638655112653183486334588797984880942232118383660619776067907605884043205369011087647744586059669726902339110361121593891899121114165368455691322058338418727237459817163038082141813958081893651238267395391997878107237672670114028793928391759343825802749804016389158962835960006531978858471476085415445760564793336217887116590987771850878801172546210150423169023159750126154080601957533512449807569128551141616342962877396770750195640174928528919642378265358494969896156824410941479149962223127891999153637608126588911291860877256609899088731552247448725034703318249871334994588697800035219031432862105233312570144061654874497649244150634945320967339186884174898926543790142315218121289852081729284995423221837813589887747009843582831165984306817545248923488795346820279123857186055093093552384673197925022382674258126966119259146974116848299170964493495153638081014423201381170528259582075266643030079876361318802737515522511988189521911534585525152061556671786069219255633815175922298721997413934512819363455764264278879209291675306140765609315044252751743029802268402515972194059930734455465727725049711943721654596316595231954229756937022518217584484126145247731845517384293868464208168527303093084111843291736634568403630724786309872769259965756418384875255251816369166000973511947974169420351325588609298931016526111954325730270533354231667966998073472468795802426390822508056331936852506753498549093546411961274736761396144269852281392713772912556033264465632769323758281350944238631280152731546452749613278923163190173457436122979508528560560095043987900902958928400695390104641682968599156175182379214618884420938578535717126394832231585738602568589069742979933205575388239102013405251375490984355074237011540840759117646145412640446380618030219378403925258654130138026178834241315588768990444229786343142936354868161159384598913716448856405712763209548679933418743706089541418421644894093819443063271241785784883988015850599300420359572128695974609846988428157703780291575685945342549061745503166205424100025233537846840023046755022063128496236093117842885678742828514607811573071240703664565448429642952242474651686385720666618276563439767961376482974745491948829602848202599437902234444266112197411787114603889191227403648178451250985112449465183704186587059856740427728559309479787607644132947708150573436851594986189423775480497549367283101798330912139669969717703971408921921121150991079075638050575032258827629337242854944664498443210200417914860984201787200658475289205448112421178105606005408435167709090234900707936196080375325120693174364444062426321774193288532282904658588055284857823439848282259633964977947827355268246846443509699684994555402229238635122784595461937638048718600921924594516623777034437289414985600869849484528512441429738788682876371742342743561748835195372127484514640163571839558059640460467653605150667359563095972440862968922151812799525717428746987766904618985364455997065829846490548367281661589264476199921547659426203566048288065637952648207601032754067944359140900977573450075100231707017256213804629796619966355366552239514909585656660630906047165300643909615979643272143343161336211700257059261073466470676226996021593003274240527579265612434634274412628424519076944385819873799227583773087052931884401929732535235535535104216456992999344030624136498385843120648574101180655066883573755711288802951572263877227199449276685362263427673179979095825436901847415234901500784688935423753324449611741837789361183883862420818846824278099874822490408634450568071038015401070109951363985995612694794605267041559187444208882649439056453414422707327470001741210564517256217216378058081623581795859720198671142338452736156754649814949126818336004020916299365843711808392492334217012704185124439241086676524896262577817604044576972471067564228568526593777776117531538916993764260460155675025107331925166220301474154747932598336778471777374070058828033715070912508433430852901005439341614120942785462225510014660084615248024361229668760726469810181776667928546654593340546762878629073539360439990807594516034318611139334376637599263565435638942161098147672459157259755311065239374299604139001200472422460913664562170559260414452815294083317047215044453357749967911599846122774183849168518583862640822709970967631526661310628772840655742830215783991048423806284599063232779375807987008137898238887374683179995257355122856699399913697242090146276294231836958993840372823314622563601845095216052824494609127615187207727756225743030516134777177980934046622452032620402865414955224505710910599459598185559243487631194877056969287390958366694481281980734279959677308198800803116140162908510274557551861998734296391172258123694959294135411736070686159780945823108797877332752657169738702003057390687793021905687233116838433375055250723158716984023760081428432256782231224809253786102878597115708953840219094712964546591791403051972619619726764367550720256015867038186940803101235360686950271899172903353056469274737570952168916245767655856525708704816150627416037240257259233844967111508547463782225251674587765095949936395439857645417637291611671646460166127886052531270180841413340528742078250964590592553828112976276607630326926328673320053353759416145929402053690724598351313063508969680920701179908344794959011222222248016445163955146435263292302743778257071612422958044262225765878663538585241926207101548254754090140611056651990152138473197128935549323208484898545669230649088764631588573296843054940805906758937264583847921978593745083040190728844317444147145253692677858302349524902499298686478607046835665303159777345612890034999369114469255327549796673972180835771352187979460492312753239519055920375596543695831717387158756464047050466597510088311150455748545903379850966491992538847107288536029281907628691289374247223505127770416899269242900021171247130138214756314766759958587125912627087122385175273842918985026597541119397066592446975671455564402768426738643776016569951954101079341618065628556111996652786094417911423541250683051125004672618836100759079822192872512607991106804970563758782760394529073658570234105929928732891270080695453239649254205985361002225242352392773441891553147545210533884501965545741964878600125435352748141796326271844855285946081671174643060387368164121840494671108343966458701143898835837984012095639080902409340192083840531607422215522885765967720967852901936262984858810824815455229558596996064815901613792847491304073763528476904055937279268296008500674317548566832257748223389740618625349933410097484151151964790409457277475701930847605299899716429063650960684147949172195562931961414674592844046809562308442157248313604599491688793230752183347805370692599046850783600051079979190160420612870331444206966627291194367430520468469020171560677911020980547309527005794212168136081366895556992535104682712524382194228600073922313774207018816349834395357427561752805315061356249271688367981591025020780500614484678248737156340334945211546927091905540684304167337654910896174042689928977146264145785351032565491587547529295766307035657839091582964610755741180636543261827535641626277267325967963563808304135596117750560830471897800367518488633431433891576368036212067921523584176555301951204437671537404040084442668509323840087126005172941157428444901038927716630366292697066328489316308617852776976269691157807065768219252275553042036160266756260984168149988943165559439881319408124582157280774816437955512774103807937223580578282268722509630993542595403128434427107916055300071631585619678099042331674993578051510468697831766404658621755400180323484097951724543045274580666901868388242961029249853766374698767002330090257970946512465661405857532629093468566143033267095115757435390697046797062828357147385161577757925957192541630946307777162989428126267771760570428342723488056363865686563931749938371029050658137171622880271915462838738529033461249676085960964301645806814455157433920717237446939211739881824655678759438066061395533227881369669432180237570599185160729326959425205501303912160099062261564416330267725566727147587832383970111403026662134125649341172503754251177497586956122233421615551117801316182957714744989637046873942802724729634796218838462427884919325208217805908064210139565463676636001290182673933259540087896136517222112683449688688887613433104042221184753928737345693762561835172092090235202348212840873866725128691692217072490613745879186300584617021777067044867692868654854540813386687321780434231520949398678805970472160910647704014273515520795724254140379060543210417041088508504442235963574360750837440041992912709392935672445358782137151078242766502204981189825052308697663910577163566381908323808915105620031072365979249776520871303182220690809187982435810009033715761567389087545683666702078961982525900176952430588840532197379542045144791251123754968793656703314738690404043795165491648814198328524318298189045563323267345096715974905152838315852410100680371381980756068015227725466086202092054905112813507978935358934878448176612854545118790571278011143390902636692158643125269857337244747522769538748247361598390895820450061113639141413234407179021501737451839106617115528185327011272300317426880394338300716755330612408915421160630938616000340818550095351240281497288845072692543038769128695486101462030337650746385097843657899198007781395191554741189757529180785912963381928923638925815414606143701567405293479250067342105138892050751664455685087092581252268145096896455893556759173870191865713855532293771571287779178771093173694089199352552905118376550534011502805618974999429731897041688932827643461864242829680844165064064761682426908996565283713300902494008981899804214014666799843303248043037453047813492378459649429193712947368426952890663624439295587745675918726110365469988664134682113158690086166736997822244065755086891324609811144088027563065019948239611620534769097170407865758533032154615981374582662206102784588127229990384571798337137385493982161184932147605708867054264358672928935658212954116894591154135811463236957027500295806578856200267376805787341145799339560385350658053119785685047947612931552548583461956979351283317896942989112773404497331328596991863546862686438158891385518845258848136585053570105803099461262854753205089261022654886547022885613030213098825104923772948018524289856803702660451088541668345360123641624093200592136523687362419315854786941342865392857993694408087546640839721020329417227675022640170052037298858602661651837979281606682696219068801741011213683695097314126137492981404323839826932738425783462627225599198432039425648807247894233575197633339169197750084489769602000734421983890031316500967310682189535091823763988798482891460230710625555278088909044329983439953059215833221404727202322126093391917214025955327529133141215568094209893540196279880528619172042775313343039319043764231026951166389913308413620118389618812430200090864795384656772791377213475065065118111898905068828216212147494514692041701668738937500110515486827556695629068994272112203162762032189710462679330143169564541995591877287481033437190280928462044478940978062102913959630145854731067464141325923723048006091176642056800155942093772559509747545417641829043438382147810621943121582999717335359051370393641743232014747152651744448166009648531590468401601831245900022255407328557127120812783244832422537657800049595749677795503011665996840488738089134588485277294064472573615699508155572487147242121049350714152887461273205449472899388930390372260933459680979980179806519215858331182973894104298452391703992290980589654961533867308208916824413891795195316186532377416288666548741732305613696525169402034774526447655109800486204911917593125776339875903772065734696870008761959408035960754609726855968592622155677945536030883570767407174526927349854618350880478716125208350795263033769863562617582332977400673948089612566486572489644038188986555204417179961077865208010321660113740888956586216183264355116871853842930252075634980082415160080760069626756045847370254170318023087877657210136902026862564353923332784027477167328934522812981825808154329075478310686228770812697580148397607616000351309862658502338038155925871901610443940793773432574962643870610092699264720095473792920837218806421452602843791572628841978301756676033373830158194699219556151138845538612051120763059749938248294124771012408285086499556523283159251324944847698159166804341867937307193859322122500016867675768325287983701735242794159356459311407225172101004502508444582250539811007507227447241446897992704527273644706511620070253714127828555644782986344976487750183508370498492759504719166064147897034319796099100348182124407435513639390804785824618790812959669773653897751637921954267108505134654905685939320001706443341240180461860518498442967202890870568275663969736128302291912969939641588326104232479445333137455860078365565045186619508656164158479880472830672060787862378133504304333946261233503761654616821479706964839962063999450302122842099592627369066038841267547589629106928525875237457783852387713031772072324681930733835545005900179941934184001652220570134397824065544147694767418248746035377477467977006377831890323358965519153173096260115777071401255176711795835076033130265486336210384675779228129216653334185156780830459027297306278516186411462834421859087877041023740243218274190510424461797967806538338712448772840362825101786993362010724459890008269917825695669361370262838022514750154757146158845466664576799297627646183855171436199865853834414940176705668978449466515115786491441430106106397965202734281219297908301115264306756305592430834960214790573260909284791272739266677469440097076803718150325139170713290865647952214308013465575484747054157596661254030465830653524728826022241503415001613532528005075617436484266056093993541256309638657086546374144696611791508662497833042538450068248878009369225522817110760839455390243831334968169135485781197255206622533961517936259415747329408519715759760019984442473951216792956166681687801834630353789332740656367763387930904446346937375640516483606279055287968930131035318843484484723603468153147672328177546577804802232570883813535801283977244987491703356568103794495496616256417734627844105460072384424995985130319173310751389654529235089203158237018059731964419335625243253024874864476162913381890723441305900441047959351462080835760066020227728856505750604136187675765823021420872191732930092419516001761673207785471402432500619405476920176669791217172852995436256706614164530778549940412095801692054439329587717258268106097990761441039554341304538686816228356396785382173870339900118071852562639668928505900054285933037328887907188623834045265716180407003218511852128158470123274847176961615404322588103001848754119697175345473409295111818564463292954885355902280796592467138353183564738603668085714038316524914834276920747513800060790182237144103419417949419500950473096836479808730145433914271454258260759352240129892929208518440484162636896105825365612097275794624156693446568837738233760629614884254389984204070369612548482973040990119565490648557820729146465484512236248430654067634049259343014620139336385076533268658805467394020283306113516442580287741974438093071227723283337774411829985634382300371288694865701837725641966070355063254017638461722167140058591959969620795252401580811612838782031960369397184797681701826494388686844994087209346324761417541338816424609121268779837025144359750648368602966858803728602474565701995913557474229260877245027773482688665041825294365915667333426371007601404627459177335492803951211801297148582310780305943367625922644310607593125562149756654279000216642816195414589499823050555377025508433560122132314762416437312335523677169010653237857147270440297639732626304453726775167388105685275272990022203615701399611745231221023962454313052523416385259089386624634026585265924515284094640424528959994960597711616675580604907148025499582332927062553384509438321865063622780638294272987502747815385925646888618289438586217402629591213161066112855278345937796802394443827971444432924374408437983604412487778247507162971272350700428782313161458705675205238978473773942025538432376929609989989259484864065404765089465998869789290481770881852248951810743128169360993560067777569758717113403076341623344261419101908751211476187925979951982289244214533814120018759338520730620119137119127162209219602605061947017051206011900533021180619280486246205092146034666080354431584438806146083228340373225663441550373745543428094803589744209352107247905177586975399040558614878244842497874637316177148717944163228811014078700497134333834894643072965454225823276831470961301293041316326866940297297458979548187298156273246910060901082999651282519547434038466686822005799769536644503376249590133356895350941852813266826092427819453422562658698474867556092648045143128707907158547083788745054305055213726622475473915578226630424800893672576860814754739124644514453354617911089625539138983570225108802360352216196647571395710370555726632563691262050697986453453909604829373760087668339493262447606812729493059942891774069198437585403340909364377338042095919180322445703374005568271975608120727203797913859361968710757313812438282599329297134828362270235711859761998833585423708382991028162522840432469379842872099159348516940161194029626500973042602285279917863200864575116606574663532991627667430431715515147646273424378320576725363798698974345094610811677515209339538429804325678460978776787699234107039246377973483371264896501636980232501902799916595192154055056345760835560695233286679919775436962616159937041486563592367674926848156196038058930098382398290036430948050351215079679941527619644653014360951284694668312801312901443377321456611076223475986776420835468438588706403594833542260650201122749420401245286899633642227737586294937189467608107071035308942296108147720783961208908095241910821250870116587445408973924474009262363973034347825190642222674052097459454523571539140819964439101695502221338351822143733508431622356067892026584181728709446494546340971747418395483864616820241804695125785482634475478576275110481119439332506705975225069484503334482636029921119193321738881149756043121143473718697684181476609526061510446585683734132283342453686305175119935638390102175827586916449314394215137130977910334673938904223439346659415834781616584352370987444696794680684219180074340310419639923461060278187252123804020222069948733462246109751073403591427091432025590432389564487583381208082158805806164150991507065325356745789801540202410732764024110060668268804833850923110363669924173947385169133929323204148520648381057442457601125666300138620044909720860790499454969761978324527276084867530131922542073588790505075962782171414464169890375163040593316003882537328095123382269407871674820265236244224958451387065399138512777215401834334039475673267874765687358728218256910877197152047652449239676576978020091612598475332428336149312910068096493617374719435203071422117203146436128177760689954422300372202022720238002968410091348654557800595745858016062490972605647120178720358147482222578016543855758557788819960986389470799447910755640454654922205557852539553197663090336804767678378768734624054330896216240778162073036721695448933664511903188470383710087215583414208396519932880416338657594693107578565292161238014263311202677973330935567107423865533930750216038325615562949871298844182585662736882745716113741548479579183915037365090283563227642741486970915389350965888978919003528815109383865304952398219446910133373569906503485547339176494734027331012878505744222689301196405029050764620869686594453929272150255006949886017954718924696051069351618836752788247475105250679532177364041283332062585344475724551425130414480507316253091672252270928664243545610705858269742861095500652573147883975756967584446990670724865480671264269592547322021174214151266907760596448011596390892918391102447751893035791134245858825607882692123508553163379843621493194451008770240457332514827192574858434429699576284289757658348512988553528595938300973905257354690517320093799849664679679508352533977115760719036018571380171247781929082080174683731335765392658896026046881602667148815163074023694382003243004673966976656897473685975015269459122305950200469781807665885465882221750871368783162185813676576160425937014271792323027631366624581136869373838828555731360637583681130059845122627831169593676074413585189092382761395843961965442432137128461963765719739970658509849285230070994794389308454931331828799253244419229665672784822370447269281964919469511764955670573181254446574619639012583454260206410183176104928437722246183825341696643512330812902159745553813682750081402444462273411051314348101465422006500117403951211905435937718590021700409809348385363151214914122176582067447814047886859918946682149562708211213392813480065198297370336771326912534023896647893890305560636376202517384057694355572248499959400513829443998913368408581947674202798622904368554017420498159537981314356944697627391556685845284935204006231618959402137218926559989523184214662325401202519691617818967254741978723906093222466148092849744559567168850114015847042450816746833516463584369596793854033971644665491177164126837459959857934629565606044012435537801793018891058124402737734505023985321058603906819052891173379068371096729855655453979663750485890711586974312214700092486118121781697353642601803387207551519106795498413469595204529673438340233099139102324252966308930833933790567495595262114139868414356136439034116424901386259896988285728155072284309112265249784063493895329536591972226145542403377618079804990296761985508451017860196485179930487985706362008006505046495919726843395386711713168313407893577091643871374768484008107677555886251620564573535679755592185513106576697619945094209116769995877285632546737760830424678959567074075010761863839278028040288460900010628274604224153744224175527846649756211784429993032569552269190627199614824619865329277243431396058891143940139013212181841108896732450925098842880710336584174690537022315351916246488577612180162134090562910292504473482891259128818180892045214621004489812317891286058097242396412808849279121134577790469662161276561187654577783928601946626238259593558796703795352598107029115247562362384629780096053272956519553518232577603533193251653089262854259364087955225743803868134289061018285580209047133116249399184910056959604133254106654225239076359792102672426078996164518631803076464650858410725209816091090330371929257129026180629230747633900931306219854555784661262380762015927257903994626745466013157229225506220201100322379875914978673694237967493163046472021567185935741673258318270872148463976037225665569517333192205869237584305593178438394673959788963611816348473674182399676055084646417699729343821609280096556119619652145169270932758023283285117030946039690613831503864130233638907340913105511536738880459589621164105625095938527997305658026768946928260737634393969459861675463323923728315737198908086391077980582241271520888258726002832361732469889794091765944189210710141397953846118174432739282899541409332350807367786210847325215407221012687077745194735820418439758566150890480481161614916464934272235929445574177081218485240020177899296395238967203168902499781193295742744927854908966532707234701129049286099560798123859786421093677663394264234516464285214876603945568579891325561532832198862228450745005055286580479779885463518003515550848979083849147618498400637064128427471305219529205615718522223580744236250335757740465123499675601926795280227947338602529595602839784243707112546607603126479453970760817571199997195179393464114460382467310861209339946838879911087942422541628691875218067647958417334187056861289265136289667596012868777160148929335361156929746101606038362317895284627246438449154027431060250011248679017706380208491720985006556506430842876130985346720835762652444643067848906149099382816666020298421024285008154070898820854338112910127906200057382828218300657022764590650011804223169560745906862312505969631255902053703797485557456707860141706446635881398386808586321101005294822787506203631291250892184958298434031138549716945784333491663650215152490425204019946564103944973121621645853899082106130087336706831695614524714564450278945287049003961554281844764901812276473220178358806335940141438113708564128031840347496057519818147182867597613392578317121846409709091875515169244344612961353571090806560712553056106282483828814959105849007024690476303148581718706880820372358780121043131974901030456549379396134065905286262261215924657119224115197522509318494932920569769788960778446872595740222210072282427754712838012656559585649100782204998180301951977812459880462359852788775297356100994297765144832869547927843036264640851839574853420143423808647451032952615001218043708796803519461011405908562553205287516089242081650059212131255720172754957069240756763139620967336102465832021104083833043470285453121031052850157579565060514425526969379701112094648671487687180732036598217119331461772256767389197253186709954242826023219193584328711920633615674049335290680267221975986418478826568789010393211015587343045199405570929528510831507819615039341060201947471690121737394571045825916267411969416808812056988921921406324766862877385672723788429286808937055499949302656467077015144069834562875113694991149161715433135256198729409656420883668178812582292581907539475296701769886819227468052654944709885684705460511254358476249102768497691466930194301354218977819833569966945314710153167456452649686184262645009845627943131034922161181590665404133345300713574550688094131267860139915225546407875051280957894731109546717542750476867664015519144490571478625281827447303061591422812070219928555505269718914222379866632193713446980840183392676893851331444816609942432461447717601362356481733791596374084219124804091309249785567780800840265717137937561757352378922362286390667334830258064793771665184859906705442730551213314874558286310347028515641694756198214394238199189231114268356530700680586446846968784881157841095114359562739304033211354171244114116486237801118207413289405366544130700515762602049542399870297433246067957624973539492852343051444354807644811074125058035585056726012649375507464404295014076340051254461553694113587399893931297363601430941632800590647456440717936070801748848701165860267460349476445739882037686129420883656774861685260514283900974107868020184332475737978700745342099207193100109674079792578199892704447454179944979837951031839351321932388159220693662532313947833002472839534816709177351115838012644012706547359558323842350142927888966575878262943663070881780173703386490805909072648592151654724215293277614100602159972465678572697873063138872930204106794629924211439068796377524500087851193217580318516414959853726823518605521461101620399863865991116593023914834048874326957381629259074840888907114416198402537904551093662015630813536676065498687566944437345456867790354406335284361582648176187737827815972055254574831553740302069496388059799403987995007546559735012732988769478043882124287461878791297678226332288346485497843175744631999614634784881332919079538180038806555102629517120322421739204546359160701182851117542235155466661303506536090685866028271751720960203460392648115347138195312788460358925707371704546780154786589541470679099224601377050197677407930259484670116210752448081769278555370190465240548834082407281732419474620644232701640289642154856747311244288949870118243836272275513689768779612050344331936224108973494334750435184470302191522102079363880001289458451638155398049173541885923484823282091438830111375524559500239940506714817652763372876288748817423672644689521174193346304776747884780449753667101015410295657527095875634142176317823730892988308439461464309669819976226422161301383340376733027851016723431912743195801050079950269872883014028655249025788196769691808710422303940435737039972054695733037452482864027108234210207147767492458106535463800697974799531639652695635873353575123004591128666284037589659756473758828536452252937321277390177204326576385533267033861741350338116572790515372534828101905230759952398273721165839910331847188046396789532074690583428395211955461047544955373030159132506576036586776595591392435281465674975537277183797393570018559277049740489166458518001824600982613621652314143920245033842844621122126806911120987158674552077424594390922588330427530351748196913346333595340479764273049757531771982722524089405233985645202231995547537353927714482699909893704458899444172162756388107565838324295851303097194112642656908451628770706628192586694725217796894098015810518126811490309480536359844671455536820576122301036627661654260555627715491141498152525770508780622663356391444024691236659840740215263663537092773306745180711707373049287295693067652643472350756545125419724493049251101353399526094207087392696223750713301082386597786426165810052028597392230599650573199404310260961254459163879387368088627548369908868059531211380945296800414370034388809270522794594691572112542882308522673821671820264736825244045625041928463664598254039976565075357532021350120565220885765455982331732416034409856942822152900008123787591563798365987068972034032383336771936170619916518693713448289362167571083212942260191323303453704409768379267971809322021863047162556909983202199024559962982267949649391217443515655654721109067749685100193970227015676952275783814581834692290300749045332512875010007793093142464174320204915982304822716745589741078990682376899462522955983204387265322819736639665707941175930133665866276396050169274137386548087281386553913538646331469907319825686564600504002424572344209090337163023688775338277021092290748697008828317669973122125649369525029221100008921542359290948675395477803793595667709443231184252642902005295414338363830179136593282526139195930444221223196475304822089706231007052861012241772023149475226779000466727633441771508825208599628646953511694483760011567946311894309667484051351907293302005252170779308657569588329730721298259284459516200939622686366536838462186378346961510731319831910526216630877495217207554238049890485494221723267143323178053292590408570523500965502532857861008200582671563891255630233899750636729212853854692542104931320081199093792531832101382507265511262200432225595590044483457405289288577373743679573958931138032553335113492486846456509667069109663309666069554488430867880419452672435392908422924385671637239832054409368095917509092071280349287075375945000148124147961133280672779414273393517122775769457387303241269952510666780893832547091412576422221077807362257730502265269051519652029452264030627542638175091860897953419714711190078527018360281755432236639628239064758154252559192313288787605335544270865595672685731285427331933392043762605113930028980483204023404320270814843149548207984831913026531541110500440301326561578220503077943852028079207717781607653875264277967167234232556399530351575274903858416158034061879759017792623190826899830380762422477123328901460450550454487100239279455645503525881227740441481246744283005200988804685257293502645299853858266098160266503808674186496548994758992378660594154240218052970914805021046145433114090729134963792436735306640741235727118397785799466026597692935269798497417626850083649713549381218218348771880534159321229702617443718751832353484734405751470178796324847398935568303011842068924110619690551672327690624625006980149635701958190249265202833266440907957345150964782122461518287214457199643387410040656967553298060447302840850134382709074991283280912709385351005378854345321473752108166069181741005689589145457172050097642682037373761190184335073020938713116602008477092226432704115701746506571285925121872941784216941042492040731864855446890340953595957577921116273159370801055388189634897893510861745403799567462923821727970956999093246931821442201190273929873565225137631206473858779048084298017688098926509670285231202874698562155563826247827764225633260655094456484396980150616766756491541515856869601064449130084431017147545919059871880280182585147122756700536407430946395106501375703757937832516896819445997451023773789990509682350403972463574995186196885377243441915572763717740425434747297088272641204371467649000573087280783811645343757646464685046411626857854489191766732160639915576238898403169840587886074456685647020795687091261114842448199393466169557741324836992039112926924795012044782959903849718014805441459541178343409098352542134909575187954074203505143514246093592138690887696263717379430844517151906097402768202369605151055198118326839773490229187117586600403658784525612524899694824117115192477547058849682242247236040955942326882465374556607181857075886790925964655711065477831233861136396525179571715961761892365461291313264854967013404048061929814701445944392239454688650405926762386178162555720507508404428639191124323555542723767237840613788041803401888974149526018106544134164596957824611224122248070366906976287471337870289429661817539180006682431740221411870926301496013573881458819316123352083475691405424466703480480532705428995641760088304309806439701346155832704241802778314128875797891965799599098184837961184972088362785202214410488134530198811446557454243369134791960984236057387262550459244446412055980329806393489833201985556707642569117197508045538342613292014707656390290967795611963382799724834790595138845266157822257194704470105715259795421174931140762733441456410399213246021584037960975200910650326928381634107216003575111471515262273259701399947972820429769833071850967482478288553903331801275075435716053399971228606989733576182667910706047213179537121544005466029232955614342293391921596548889467352215362114664293129389321431029440416943075808394234211781931614756817663676640281179656915195732034566032455438491820714564726493045962596782255765640462166385440859059015010918986047507802017834229943802034481126238939482362143609943236270928082562262557046012909762557383450066618296690360434697163786118611545216676534645248856946385460090859932650979555505919991030409987318119552380603762061287280944744548889767548736145046376463771298667936252128079015810153628227125236730309147240454218240171029726636091547711009916463121508995200987685878378129530565924799302551341539619253985384486772200778920217358795048052704469772094916035820995360217298977747550162090889295109429573136146357638220328070263025546930430254039462286364182703426079394984324318938901723393924566445111207327484583112422123511899166920559989036551431469653994189416728079729569328217626756419980217778433002193478505141665680229130200780195549165301700789932224636456923927523936692705444913474031012304771925478279430433385329999176924823641078715828622780814080448790807415934351707106097718304190007725043675702217954152323598711633741047623685441659649812561298804696721501655684028550570509045772335571756359598752375589784454730242537296720723773056322781749197500725347627736507959394656901452046322431937683288688095753958648236581110006276537140524643354412238232900622086841551978961952490195964099151115296048740245055604175279705333413461965809176303665013594671448522316620456835932523893842035857342288391466972204117540366512798384605287323745781756961285034458476224619651074884093929790493850115723001486260321552018642696197371121278298192374470451035848193557011555765130629446397280469304066945183581493412881213607284524926810718064358185565742066899693618177537745729436013388885191161735279625629469685559779314931539679145303590717722729595919413843725828628519728421358854623925180944969022022537644291645147465484306455522788603001402967312826874839195726488061021034196580930440474824763698353850840959510528394551741055222272411618486719539731999870736273863671715911450040126971433781500674793777550340421870123463731831114677323514473320218839333751505011532448867947704864999559766842821200401866808036375243445569620535435659914153733018472573517849547543377689725552762404618302358645939325467565353369614356069480756315552493933661713874989855912292837862217877524236400121635785151171631659465122315276656564822910422433234117149778976415982936663714292656593225902508842893566215060455894740432819944618153754490378210948661785935158212279122436657954828745562507349763522225367796196475905620229882033066009791210920602196324104432149256757002944370017891022767735918037506421401055857694500881823385141556130553403280773428538088986919042272390054289628409174519253891902459048421304688608702218329104567287067465092040628042211616098464293568032548622381573960753511361178514945608765018461619144528590808193470742151755282840178580607881630663898227921162683139789909505170348499240653282989010079994658515154233070416654932561443260127214599111064382572912735471131586750146267736674856912017280837964156347177711303063450845392455182736735877150303367961234274692817962818731885861859960543077537241593388485157752996668939872215717030440324609142783089343082447924565980183497332918029670068489370988165768441949385844534983881541866659831645818653415074897759744487899957444006768687282941946820501939431502819576012195030439442479028376010600499397816639255362519536719915394967750967884143972442021898371218490220213295902315061344500142470324603419956520879240881872929858071377565098543325648671930415300722508505474762512706202055889440210787209515775993978627368635479871332257645826722913439505893363095365613034036894470156172280433683848358041969037139957563114548826091300848463724443829341156361648850852115244363485471825355466360555342121038328778401021014094414599378870606529769869925033350830603942267658958644623086233224794258726409602316166994879395400955312218620256236588389079748180537038663718614136302955041208359885139472157830467323766907240766704003822018495105863652165358380457602033138450148262687155885796217225076163354161980891510099230304100837176412907809122674083227335655560741313245109088749138524485495787783967860102860929679763105359661158495597563430072332629012182340912717974139369137007805228351918514471988605607570256809402575348708167627607078465098681131943889419076740522364225271758976707784303662978574736687756240900480121425023918820286921040507233990863044181587170425348821271566396309249353782336566788376700698271649233266459856025611569758649441140508391173098871686294527624544001524851795473591861695734051318628975436907543251277084214197805205610808120032474087533643497901015035442466713905187093035215333788571921598335148420515393942342564441840391122216415347941227258742566574628072052908354859137446708088675368822973219568374697640634727052389351570791178735824089860506312913639145437182997649587330998084627965715718186592821158583697387683947457356674909065411416651377825353390352847305979675165600198662767475432122623015152423601291686246114679805578402396419715550451295814754715728143513371226406651010428139379521973193338155193724274949359624646697593664349263193055590484188360882909456180903560690110239952456110018328606744909799385848813127511779132384107755231822455474957562458413490663372874673602335305076321401295010990374661030933745185611325068014973036770040135373126329161939904730319095225464354546711094124226439528673046201231995002925326424538057393805219543946413393404263159768142280058915580938937802955021721106453007274025276435137232049536380993013344712336654400745704856935304045192895014427767016755196743217980273970468306407272766816283620137280223811692075008579712201693374236380782919598393948121967809052880259111106884828744262336685569581145846341713011793990485008331860156305320377672308239544819470096228530824827174780412182939415972810999879482073098312486752226165224989560383463847160055038744649991908423796893479016091030350107458277256450564220981506532538221300109865791844267563254596270549264903892387968385624339286676963936085103246327029399119782595944595714398026383289139210213780378488121667437789418174189702792670332020108285902719403023661534201933557486008867804628904720585681559965775909510670189370165959542849667571776709889000354544250740144118165341535800789921224214487337147018908072695539631446364983402100770269258081780012235798802570566153464095205807317038724769637013762071961331988467549873552840244846621703107656374224123916569632191992780778214438038111349620632002178348184734973609167542405427318217452296707152115166251803469326968906905617134995168515879615239783444864854578606678845940488685025980606798041187595253660166620139266120041331122896530416058442953818021503795974824439353936705457923805342413560899474427314382272317383821247781228070337522920252960780817779228695803112469564258144447394983990087570979609040639898801539903855193864648358054767361463085045625719833222132320384941190921145555588491163865901243672946374691062220765857686315889639459604324704949863413798716428683230323948096035644658304013507209616103293441355855892736981309231502393391850952995648265515378064649670909706494356892358815453142067154951858891105990414463800906058397197228934487472945055896115225104327023558078414258330965355855158429146690536697385724184110534451001378346925584317839951421898410734377767916025812622967052301534245020377944396376233699594937777075195971027831295366117937316350282258833637650369653679398812067415905469894230467222445728112153958112780910466056510588330915789064120973165438771256394213413968549014039058980333062114449020839432185159961439426723067311250944361682772537341412632500756470391797503754863457779221767120941489242742550483563441771225402435001027150768195237201400436317886014944451029954995944824404584146108181338311883457462427072358756990278017260649869921030024745697657675247579646059824962749136561490718667222834519212907628541861761794308952655124765755926930409674036542045264569294869240633532850411437453926640766185697107590327576767204761330355998505334369683597097743371222555114644899384457393076717151127028003744713671951935569790342671709653592602930421267279722874681113959265336998179843876282287114190879740928135967769748509943833096220099701776803504320791990662261583972987568502774530293759867991074789076444935496609905751796282907157429086921695791404553678551526423149542935144490259051260826372800325554764965053593743308934592364608725170712110937349741204659699760062838533683703370159650277988836136677912074855567172366913618418030403728116112278490803147811758116820390107141132903715141063027710149015580611302160936172060140210790889180838281676143033045981937915735307260024509532042947072318189146533144170720398070495139890840522697861952838172150518441971613222657030168573893473526603902313404801810227608140062479875744403871251932627081120834217133572548031531367933625707452231155937356515083086741367433935803016943019279353056145307529318959943550836034523935123085680628651298180832695860923941445981425943915642578674838420123298033611975603860783258681048896229376094444848362888345850051826827558053220299607605718017368787231799847353998390480808541614833026862939563617754838486065349835773526052461694304603624618224527027741837418051170676336791380603124257134064871660351035630426998740506479728076682894647514286638911571482906253613662017968592918462856372198110234739390312019725259802514714029500273254941906907321644320679622350419273622648911099059114990213854742297031490768794989152762291649236225103603311216406674210907232752011222784826955344832049691161155271316221795621953197704952971956008191359466286697337057813852933657320871246676566672419388747809652658447550994241400317386142237473147503236478817369758629177907006577658176403090464336094035436893870200553074413302429631510643839495250811020291641360601777404979846825792305114499669001457628968980893814019989557156497946957838145002321117846843450702036136863925655193033781680861576305133617333247200682343648964597175875498498394884363491194417484619997765932683405242340943855589886388737624968479181742433080592692850579261732156518706057451969904348448035290079300678433033208460526851386846946694571510780974384969229682230702517443336332690748674279801938422979337152795507763552772337358853962499636329319843235363207489028672490123632303492891523625863131632597968801921730046167872800899965892542613939551010154044586519317738770371060890162641344699932167705739778078932043689615818962188894972149004789921882240554365886353176832574151814762147161677973088028489354617632091998109193645104313040420871654901999495156636847297726099670256571606420966299435473308559816013932476799315598339983710920785339555754442190269078545503544667373495152116633010878491784269127889246551726148619613343907810685692125687494967008599576080737891174556704481196921869255452989374119101154298955235447966514110287595309813763230391817703934842769437296624175879642392926386674625748246451522650470792364255835077869773124172082836079383712435433946991701352987561510884142891719455481518557861827846825936220678931411388995255476436856208652813234588491027454832628858602085503909437169914666899658074657043797991006687209817737533273152077112173908002705972393969223928900261854040998037374556114502812501605155205510377173142074709833251024257868214999827374984358959516078195460978500098000556520038463685065075195306662726621643769666423305594540250728812037838818630745633218899301182788587649043892461689816403733371468456913310536849809705983176761734937777173264769669440036451924847997163387866053889546154014541268294303460862982596439916209294695950892208582200821021864399378918572247259623503203871641978935461456188397052585359410099031021237274637690890601129475532671088986399199464118720708826750234424851109401003277340868434127360374912656131954544411462600604420682493904897008055658723395249835285693163266351842289090311949229651297362388010620559913513156044640945270855040149509097309393047930779471397094284062744682194171441047542799128002744472561926847711113232095377669930862576853620247107987041740885390677303308215065241958924052135448047527609183023499065779416037461930021304896445290810725626176286495220443769949331904679955984250969221840143252256949533801109345942189094192740181734360465914188284338613599684149658571053634560884347963235293283744037786304103966251871098860231305431600468662843987920155183649614444733463433054135247777135144314558047989720846628159493167512007653389412384698494997192117583924064309957033551837641027081708230072771177804311548803888736688766619007638975661025744949235948861993186590084461051225134451276284888953439482314082286180098003878966594882230786570457313877081632987489780064686944694660232393193420601042657347776663352141637532465652860754894428097414595134697833466768898641321393992039754921317128753333345683024677624942440498308850479510654925999056319882626463304654921431544679295796070323515798326875084336350255107182423508771221158314456164325541652299299567382342885416614745374353355620035525708835462619910906494639669475730790543042245651121869834250995475268863771191564958365368907852398786787279831303603510728210895160622034019750473719501638428507433671513507393299431051243628791494940049445245995538780252061874868522009280817097376085090607421199985038651695245267394012506997061326635048892301030338627746431230263090193624079778290296422320102297616639216793280923680100186755761379572571862634158179271384185852588432312641129859231458075961751526242438761420324513554932818978431901991757513051093712691797230085986638717727581224020469469377650616080069361877469629171536598999459112179028915885379085379406732832221426649840222257113919313629840849331545675788523009018153835923366648974655591452276215028388579730713916034082939041884045040072617475468892550149054686024006847789006640349143373233821511962030914230851761313661185410115410315189020523111732028775342909450069165834207601184417115472471296746451385826767622837932338824469612631066576556178384189285654896401498684044227954828871402396722904012342213337671174385996609982856557704585568059347996473431879208285042235604925904146773452900418268788725975912157885346153032400581714172409649984080099838614903728083091911056019017841939105429242321887354736690938172417757921147035810279278498871999527004478585768653491963395215508265484271890938405174522917049641065926877494997961006589790703513985959682810330034916761271500048896966763336500001726534181261281286706712514657269514267950391230418659853144160757488510782271040686588283073330711549294989854827196435079105553158896596133808340856078715746087281279497296092739248921158259930676705866262011441106900388508533901763406318058883628021279062744206643345231860043689053622822457060578800018322512354623868230452865369919533515912686617750317679475878495272281712363144208037873033108265037274371094595062219090290092579402542489492283859267318023875547936253439325709881111466716804272990260383599837569842238958264683720166136407036351669265753922176373316236075383527580632759330177161039901115683083112475286285226477131391804373570101266993733238232853947394891191794266431962730942711173628318535302176999463903541873971710994590254038522681237236917702786854718688564446403611907901001399861011971296914438332677360807917050005023209471236294277442526411095556162612066255059291395224128136230901004016290282996212585070400477902750617423519375692312548705639716954785052452818193514964157771153297715131483920604710141753921897425681837837288092782003654709117441148788238148198160032309165886036102861355129606465124609201487746699403436156733162371053343624780883635145368786845849610877102153273883502177011121968598040146172724678150174495947788835023322436953285990564069899572839723260687370312716260000359662857409721184075329521374403375020245412904423393972801584991111133744234151589358840449688047204121889468371798207927278416960646467286453274734856199972780132933091550874258058972577864590726117201925411435868776084616909348869031180922907353566139683102334711882210110168489534911633406125622716498259000924257085769900926630995091161568243667328607872978175933847177013475900891942216936511808852321745737596046475178374196311533043489064395147829365838608294350295028111084645726760834287393596024705705481936104284044631337803693675871452600595057393213021308786744039312836515898298737978467445938088825820212563983131800014649328501666886556977122836085895563400060929939015706601771931780646592664870839945662655381773983480866953042476289295820016111746173030705747465392422010674074106825718509631815754234855462392004562699229900534951028899710760746261767232680895786151265611690661070030571871132980091353217130460818985387228543181348841267929768202754576975607167196884416104847539131649467128394279740553647891100819878103943474734915043443941195005951913479004771516728511892247297148950286871869297634384912101124223467244452228770260691898096578434875145474264906635270291816806231793516589910039527078894933420168686722500581172465476917376451044181265855677122198575241574148396116195679164062118634469771548209996877629127766665048022914718226390481442348308858028858730704679359292481139278076572639915324458756094277919503503431315007504531485305898751677808297864111930517959929249832067155098090066830028706031029030518984473745234008575412967150784992291296241663371361664390078258171362417906173117970460612101622183162519012743671709446047966739117441632813411355475755373255211424208385441782427115242335452470207559581588097517222970679565085723766591705416432096060751107598001347969010372741354408656774421784061472517070439802752713729686261290272034758817030572309349588391132283095247046210785889365983045548012640951211355513717839869289549096069357364050234800344011780081799207756054574228295227422373957292493707013220048269092845142130517088560122516791587870040414573950618620475198749732898844360507712261725597358115580260500722513107493901306560688843386314721567550112352815126509244258307039865105423708187636183892282229017008107414467569052655218957848082334903390169547506833044521156320458607030585584853896141001403001352027457637556316806977878274564284284034581329765769489922553218248944292275407052780041576166005781608294715823191015602493063210069061397094090637649321586874461842104938151537851820370221892573948897058526720101696741952833759945163757447670250255905934628459781579549384022404682096989880236455915045020771766719434217415667707887388252620481650400165559971494620429722535261545439891465119157365804045149149831386274602839935488347344684591522688922988952107449042307315208535553700274123548074242252285415757854314674830905224782108197647839259774145509321564040631992949207017051328207215786742863055499510638565088670267073227769985861861116987268077585466620135845481983308702174193349108566326580230076197204311794929637064749492648503089033298579027342741893176844500843409665884251558463485843150748031703925065067542186992179714089205859822235954345436264131996649574224141779615318332771038067808421716675608071785537127343871846619745522534049023852100091886287784814190288712835706384609025768780930930287708441252373893804636861481335730428345695225031608623935222220703696356624430181354463492254089313015212000281155330314033712035245763546208122724302933602148946451991106981630165937036135740847252489800673841626986592819948739467291564120039623002390795051499372587182054721568743832462623935157686472475115687978108725785593691924850262448898061548640139560942864498494611681752077764197716115509780018497782248940391544686502149478125247369363918071423864759278660940454147730519375130840367675475417577853396346645243071476411279061789052217244016055883397685209154309399467750680160493594653139323408165941849885501544916388995961088808470443078296078036717264562134857211982066017448684407423580966414804469078028076325242537921881980951057611879533267995167639160278246774419855069670867219694212890070091929857512797500831629189808003719613387928628879863805116649454964619638168272695137625094311207165167774677353834085094850113205421874734066511987915928112480572367096178391580531454563310027145451351718910864326437370991813971621366298090302704858526672382028412578906166615836357301481721060813880420698237012108401793451359211411144414748343048969877168013541561034993805426638143302577218700094068181294594583651615714766787308730097821012223650975665120067381618725416059429024354085650481393790854355855584403491875551996807595534970863477719251823765234346455105106219694605274321451539584305478356583790677501985026645737347030318894487078215443718465874843198776827297647415092025046190974436509720090282582198010535853372369383092311642435888942212989682053680820800816583221786044065823317592419348877111766119856651174466684341499114221184561881294593027941295127543470283600068346945242073261650607292595296316161863566188676282729382692661563335837043381382207197470472937261515060816995271117343912419477879253956994744562552891205374000794372600901703406186163818672036055952916351489928999651116834054820586524532496656026601871869067222251950017186172373618620992276265498300335135231806510915164899848431382624757810050948210849273822713718769405271338953149106535243179926063095282600285892097324551456647391418281690712861842013947251440662658952608533453156565067756697517590110064136198255908192702280327706150171593719807654930827281091511066112838600653906599480436717386937111368846075738994451725554362071544697932855980829808608618538149137237757625415840705603178412877062370863105788650617640787260334299296296191170760287560338153663209577811231011266182443225793637601864509727080536768559108648102877292975130480613976898912928277902128370918048820231719734373980344344653079867895475390632834046522815966619781733561316920358346964827522843157574209188958427988459953134605253538390475207010451840619665268753576706658087067361685792252532956477062384950244353934319997771279782104130448550287972326218529843020974373376984920364604471848597906955932817835802784427242705414194710900889768370336705277404969421863936976002186483310888860006866648831453201480661187239312989345784069007321904955815137245708673460906820541966057768233384610557274473020807733397135173462511819208726556826924591496040417708001525547496284803417298881571365546995061072706026934726306834486861322093848465041878449561921711464616627002677126822975700703528494686028760001503457766533242561909609267480476304674456568885869942358126831387495736963803064581719542056845491606088661481428827822717115676113022959030748722728400705200201210445040105350576547556322285172207410028614371801040956287583004179345780650295792842502234143302788009750222688030924486113159265058059986472905119819415132135187397714176702465231266094004962944075233224794461776406579407676912987694432633488094274758773846296909275501053124668933959120713334674652240880978428779011426604243926568705862000208976987905232814330173322112077664661382574776408415358688493472831753427433399111002142384547088209676302826288543498198787901093003886294436281088672342731300595227253982434746537391096289964954579187507586496176966139024979532219425646801546335384069983980114134280293914468978323469140430786059810646836111774830650466498978790281035667235510322933972549114223130586575361640620832578181607226308508943179439120713627959555792851570337586761467765088851655829013264580003289120277112027398968165017421250647763625481770738810640955908807820707329514132041330606088896019337367105019239594366523982803419336502869198090169939213362146651597164064811853232495140315250177356665735972345697880972662979917427824312420627347246738846570675480577157387717027532707756782424964622051568954297596237930991147119455467395923298806735937529950165443839409475737380482502851036719697753825180517913856008504968919508317056872804750608506861194086943511114669964908571583474219268286929788430732079187693805518115002984642365382320416982475957898622412443902861066053206733155543376951058970486959721953502703787799879500848580310031116336489214364206489382785252842421870547137970388458682465808483419115562844684615521194036755529719112664305505014874371246880614697351712721160008761506910576847616120763072144557134315960004747676525839625800055739881541450226558017269540990157525028783432715132672634328452394855326957334725313893371156527194319809002830718552102034687539740431297649312572000848228142809261442617327025620627707736800457126223625446705989675442836402532120210516713260410390044446012699383350630314824717646922881889061288614887555778979782905388244693885562765304622186313315755959651591232988739344087010202537342859755900176608589499851882210060987174867998587263220142504085450050203502019548619425538014585948853435031237892977992005908188133937857161423978861681975678666851604412356999889427988681906456515403882680735517696612588150384233534788232205177130639974773583717903399368517588396822326356426898055668986949801515061514451246027818976318645215493068119867906814016247068965800617043342991542668048759452896121743749111695673332157531831266545896284743238251319651712237833659697256073653890917146727922042462105768825350002484411396945456602388079998970098544292360188503245255241111168858489063987349232081820914295948713297259319884363495555582572819948928197250235603003574324864023128391198736703912261772924620415594697105827147159598813145428354791877135913026147045847489774787133403430217360178915456110820641790984427172128156160449843323847642244445441687436146274989834200517411999047523572204498024322377708914219150927628332495215867815459525396547803084043035979857583224482525839495780256375020017748701591613310258577433348224153044355141626514186663832830024748382792753283191615860836371080618628433827251851317279852757303094508172565809759288827916070535799078926973128746012106173685042219086872364109279224288068143698510354872207704854557229629331875780391748904850710232943746138853093832661264565855021478893482912344983425734604806366617568602228767024031740042011462726616555357454119647984229399889944488211205877279606558352965618784912062473617517207777042946389869060779122233706797961643011421184072464575582723959191026160344027475023730783982476245258581729939973357433265778167650784821935336281694125530068890424604676842414723323740881222992438380661482994937302851897117098284218064917672568167507151405071942632675206048872938986974953698335266663734883742263040303744356407737238517082741922315280714189124228360884776383784568869916422648052174663301367714548025793148310422082716981219082882475543183582757698086521400173598797269628865626282976610176351317552615077014763612845676305754881530247947392799225345077773236970427282828855362098037916965235688697047178194856945855568349872809557524638924583645043426876469260299556107713512155198146533233814056654275300320747928548795775960366047778194183169331952026739093954593999922285604719278093391584085911711964478173181148300718335453036695873145626160929672252783534867717129853607391296372955962420384776149445085018332339929557127941263830128835151727343289416448222045804557875925119323831713333780254613890219737862087625237609737728450634075043799456639535179098968376462631436396816034145753222773671648007117620474779747945585306860624862590753146932000350672332540208991658644334333375001227602390480260345238714997332286156208685498452057525708336637780303982296199962515471160853822293446389589453372250619958823788812568544657814943115809025994113712463501884969449907697120449174265094066706718034647815488786921043880561173517168558293535659824352132333979175756622250583623267416823077199967578839325770795371063863184139896193934425018713965590944432747984878586671211233648736175416681060241634551229466274184504790582138161048264693319054439536171141759346027882601180254981689474829800428340033328074654410940738171041565266262268498296056190415709756204596279525091777508487580095602514630476723893102740202931266610928119002706443707580628411441408173414498219935323395929615758502096463637422492707177052042963493894423330229200257808939158330072046702370513861248935814216692213903123327908800940977761144897723570580204555676011835085728465431668700400747015548198030942652088236699178156216502938070196838169199920166015261266702359084265360915118766093855898197663808866679510244800407365324767741409864542924627868933321990012986049742460059358977887935003157897031963893387235893502931518782695083521441912432101963905889292001005440448561295070219810384782388437648666922053068871461838681586000101448531354150609641171898002291088548870137089882529032140089813956494524472747996220396103439174920460576057902941855658164762275274302597136131007224954681667944148494399816057842034224471178454550869523342584217056278654289034860388772360465903691168626050402683587290354219454281472993807507355932863264048840641728143782294482262452563546012446630317642166467193501335765185894153336582689610538173528169567851783442375389831470630324771057662676737889924009462539048600264341647623936197148681152690116968636243826731140200589206305572389155214161811015707578291321580702973392753766962857396409152816455085649957498616082827407820773791574051135065616446535416364479768222968458344961072810520763094701186008651556974006216716416130431523642093770731847488577920365961086122838898185651969087288392556062956638583164501108701565026901995202768022631119008087388787297590411929616217564933086188795456514989611593678352704967748159754677474092695143570852388787619518683854887351479729242433668898043177176274784861096112982886144317494578414841959883065594240648449731551358901580853604091040717783038599346896558238792823842723836310628448817786924701003287583243586998516357532125674812192008845222582664847247795350043316083718905722930075416134732986528500030753250426403903537292007546923404045545877973573112733646647317045017018195553311390701078196042997064767630530526792682483772241815128859557320464201857451286073446878265487719421526331286183120030872025813360081254937659208884947106329401306611475132936907605657208243663479232386707800299038097134366916867028374051886575390413670456291777272070040470194708165261417602352316549120333230711310366856587381303434028066178686385797893031571266474067074346509739353177758638748711713156716076403932704412275335727259196903451701960664244351427756035575555310006890966906636490530248138622172792539316881781283921533237027028387732773052030428209519744105687318534133572937836854158989521949550587461605773764756564486429783323816055364921295022776017219839419524913509472017946891266750711318822424027219465865638516967093179332540117504311396000753501840549634281180154060761590859580780555258381186933960112973060178922169893513463827455527882479780760291825058025547332725166528646906591196668613696264443262433068098929528063688189774755942481605156939762787365418428147803978593258956853466192149854352815773036138279467050247193034588088069841806178783888864208632627240712939612553215561343804388141900326795436878603568947634193510601173009668325592438887698489594421775449417221689206813886322018492833568488461360434308102607410663480094215909326282591777577959628222979515856740940616529735653326303345055295766699333387750991260757457869958978861869495035223243307567645087769246336327929346982384670368932564641920273438120003474417481231861638965582737512111920902860007093452436716675499367648439734327120731240004713099389511135719913673180206856082335860589746229174867802745279535785198780063917841341333474058428466634102396794265570032448105122320879411619033438398668508908034748156228626472110525368915080280735657438359512989849963051707721184170482849428086764223658228008523354384010762537687511353862735406285601291385852409941398554021501803841885390668276029950344390876483706995562367048439700302192710313935895391708580937332759866869922372026143667976563097090828266602890727147986138479066116142641943281553438882686993821167718186423450874359072676067056877484186687662287116001415291266364258628801516642484580692492673260788945847237298017328833198328504798401037101899667511736796112297393394044364199294249686611113774154371525057950596122602597348887917434431046769027932500137270614775964203310650030585138206656268611131940377810281774781394426831300169795309175699395146624177490107150734913808469044126293699926867742062782109760936694687798445920729970221053781756449798178521799843055993644269579544204961897134131106197354876644184679400710467070114127446102232560223237495593924539902593870393537176925439380213944166216766310012338737444398039467560633790553767691746889177441728388358790939538470392927721730306487664908258386328618632775318917962335980482636558082905920654162599517539765357086660876805525104472540784014915528860818399604708818450612006001838813773412667489427000064129631262019408190058664154928786506286530692695168133510763921144638600004144296149305450864517383840365593593182517975220888148847270080636417684692698622072767205354124092946190325973891637721427474819984634860067235343178914686928026563589696655711403888530999817815991840325221615953744717033024274428803067760519660467488929776823109860037184249623197363501852304766291810103364627697100779527842076674911233551707562893282819767671735050054559128906325541347902785506698495847830279230562905895886663420111966376308469622184453117965872305117575261840903098787716869257113932569616178444405892035114532495201446593807131192654950182603424499585965527807505389367510316820408191885219179430202667322549408325625844433347640766686969190091562190152333375748748491477546553287660140223996480325817629663460162126386139538833472033332676270590429139420268627291515692257001481146123837597867158009687638480315020541901839610474220552209860016019767730229567387255436764532335070801083076024524877438885124541760245373962460616893828664076923232976185233545795130455645298744619734153968819334473812503347558727764011653481541276819702585562131996425293482497210801009361911864724548339796285565031162220196944863087429169625540904345074240815931787055834228142016203460822214969312701222447497875697388993418526746482629102087233382109629164295375163274209102031298296253351105598590576999021625882708421702856171637649859454299564049865897613961952059959436800719366001239125767893692278857652759853197450825765437373677851652018393848880252606092065201217582723632520425537264390269936728617825359183386610073530475348975158893633720409180042714563806756900132465662477453522674131185927543044624357323333901175608675604219774197136354953111277538299930522676984731607720728366440782803188296950409747399369301075637104278331767056506066356694242394030143833769912773643944861885021030466233021968213750953139083216046900453176080435101176283499923934142491444499868690780682307621232225768989180655302509374081679922288842770257650850362478011679283507327180774642366218141407681607277917992087187619162131948595803791965563379075575668962155385115424662038139333283686533051490534280551026476485759957396089123830706630936095905431733333482281163147371777229937529754911933868682725179082166284126060108320791341507132753925924321107577271497951623944774977770249087607119365913395816816026386145752991609390209079882937863730412453971342070966887371268915568720226499265485847020807812715045265932876548244409963111994458882185256982045218952315501633407199385969667429392867056403450463406930261061037816138939574792905217433608280325103842406548457548765898527787405992532520153156410285378245805573507973940365389231502002014834135495294086548270623459111481374175093857327528473203425085601738170618715452831490090449069373333022201410458508988222695618115500798066873886478658492534091151643190769946315122247734028718759448218203249443307147496540050561528075464477441723303482500580845845016644005110392225032435452875449553642491174997348030407978112356372172520035134900102852978118594495115281593406663450912345149875160373166632044165336013026699316662326041259550430022796235145812278362712460422183726020940896564968767046354378512806273823102906149878202908902017319629629673488988908868327664403112575384773337562295684558658586254304398904127184968499809850307196769714485573669843896128586678062133723803868919046737323967290711988793603987303112473071039543718939744527130061362082164434623323501565377599839025757947097419254005989576824764302988364726721631564114675742873532740414121531152889240293363248876175005642080357771973966018544093229195147998751978512942901916675343234330479105349917912576440259762518174160578554779320331085908273071917312735894283489344830738718521890873667922129098928751383100417900346129433017550693753704956960330740902623371579060117777551695833491958779720015854590288138884778462064684048501756930856940171848399854479310260261905392431097188204854058167622344304306541978705786242111519538208343084749750347512906634582901188919749954397068079288151780549186960814238855296772976719952605952403970466903793019159957816684531114791466965908365994078740484908893424774278424096862460531153525451159094221123722226485765265901444498020279344445336037660761085074014781442253641330952115905199978477856145017778415783257670385954254637295260441940779429913573714842966460722510581293828852433326698133446219676635991626821883790749515501714819779280683659881283446113907527748916978276477273601578950954542493034005167776111974223438384533372800263562496201903234455621152081444101910451092824594543774169442473149624881078873313334521928648726240700257336245380383074906047209821620884698444615531527962682887006459541274765888944052931218938618204947043638244871296441289813483313151816270851652839004973521677478322570499843703089151979067456674861527561369614083447514692710350961394814367880411762890160569869224518283634699720569775289165004666737568184451851994096273704268488172700091513643759020399937917665131171732178729651151147032994476433084562512667971285368193590221152988301077106564402390106200240019113278225154923665550933239196689164505475919315238115327694793849899750444799644111603796186099225402459804038246962058791316959269968327763992741007749949863608480647662404193901525412934082265708623332943478326137383775185746896052593085435517779855708070494895188968814093887983488307275229870239492619201998434089598404054127027054696047841655588279094679502083598091814945268459561369000009459920422241438552096289118783349334742990469147520742625126946557989569364070493508610604653084301256419886567447923897015503082958042319257824873862724152519931960381278352076003881491527384522759139112323782285285229554149605114684789841481257338999297829803501381463394777225966456518132851254987068546459023634569455621135755687795971578167985856688896313739502269134289488870945581771459963380857394308130804180855459726301576339203690949828159895201653624476805246314245763218966903147395373766635485871165812970604967782975466055315942968962551147920816401017070070973453356608575998952939878265910755105951634183170437669412051665150191894687382755415124865816048619298867300332294527128869254947378699627192620018662011812900615260854347707118959902825773602088316460440576279697963304753579096061176660999114654911306816703706221716071509619550932487305408185176191563000014436107205845324546799583482666745892061318573025923087464658574731065837480897141357110858986020125036343892858419188255055416055100574322165991024738967195444091003102101887040558535279353155341824668596592686039183574937008005690892694318964337482995898173627116890379042907693484858374541279733076093766635175740825043777909096653396502232217323185645277176133136559175407457709632692797071386325528910778473576093939239017972188642043658810620509349482058439584085776182714506656752789324758227022676647576154181451100535385804744544831214962689745241848746738525802260859687605478375281734328135775498087619950706692562548885279086248516015320945287178798227692799257926329433472048284841632020870534249713191483503510365585888548419778136940482496922927867212417547096109738204265900086700395057705650239287664420388260731588444495077457379292433913444775299103406069895168620892073157651909901476958302542830143356264278715478895192232388106867744989315694925361975011482411182196364510440734660764405414597608512553631464721823331428400928745243623027567101213779894332016429129690616564175980571690788468199702820312953286431368898776045948648176037742751643171641910040058675390770685571551934158305748967037835973979022084618660818888409529005629231819596912015237716455053877533558895662711132225961287476776390886821793746351906031421412929263589099977443995027777843782505150173178039103568548746960854824625359932960888961850379467515746679746315501056756564524248816943180518760953736798437798663352321548409918084376598364021310040357919768116478164679716427559412437719643287582990531569324538779088188712565224144595808436954345459450374156219697208616178840230341314339444815510396679959114789434637090780841853785355970069053444279705937059567637480394919465644405756340090717159903553585297596283888225693590936914568556413752780152133794686726287418113908054246588154880415545113603990766671062045850259344897161880457877989977813699217815967506357078047255672478975307627066628201150590748949594020010954009633986093771517089814001436030483341332140467394885460245430222272313078914207798500815750024404027778734685120605402483321413742233040201603742043714719061670188568974235941961200901446265506544073443801918266820257016895135682190021874756882388868880664224562900988387129781142809967955383796411223026739846994855845054952117602897720743904236089685639133093995208788066001858116388958042371614308812008906212601448437472344373839493174694518473421382616690674015381445394617509271029046872314719685437220262208359479295758447497670071195720125673078497807928925073851219849445730675026570161456109921062192129343045977070863405350907936670742294760881464540360417786578846256278632396610661337583633981256330811074311861417146993444403965596095884592027403654114221539482716738752780791977021902317350856702096701722769025076935899958181509848454465398477369684916714245160128213123982891133352585744757098383633470357863702816230321349646428933229778645248942694444252875400201736708183653054969849553293938200474274240026207182370800758389640255864431903752733423692127630588145011686634858921678278648467200858202557315173757767855607871596013304196809870185264584328980472465082245842270806965807425783133279257081016211920655038159467362620166765478801109780913028230287492771606233568267769677661523398037235515874634999016733990271964497471265958440743581174179733454994221866512664227223884331097205665724079818416049785244563119838788931449556088922237467915418569996822966967829912190116210407030714020339913322097895683567768116590543734240995357043452999483253303551564446141413129959896923065843016382208316796119314704312208015865092603441043245621702271516734890215876067395223994380218505813517864284978935992409910972233785597394928735961331475645912378916206763224056944342176485801355245601752379269404994761245691510333245325000211555066038065632799042955202965506581776289935891286469207267988429377964219144758322032991687477298158506647566714163867315787203566893726560373707828588108470449976796053668201925020341808874895186786073036287594078931358273373312703786951800823438463813995267596272683466159304464229879313575953199851176186896862369214549121951732620314878308916191285376165327447058608711859345828833465273650022757925117061553190260738739445326865773929202399923839660478601512861207450457935691843026508469875748752526161282044595020481454902490868406859684604537276149462701101653009021206948650771531581523054294502860781515820716460606709430129809933510324995711050529516933425304429527369350963612906019820739382954946765089659588974035192490810891795188597187142737438215766040861808755878967131933183596630615272911823874383939138165625009150541913467676554825854081162271068030373805933267328938122290618318004814157597924961722451194868758342648589868625771434307251389210788964981980560609143645483352695103281767509204424603769552818804342788288498206320077980996542978484743130088748473610283864383610141121164445851537585107371128908948197348638124243347456279160985411421426674214355692450655085669519166729315690883292018068150072259792362104056611480289703668368099955811547051482708594135474910959615893679254645176345922752072109287294661540866935989357257536731880313228247744873311008315733599022119335187100381089212144419002611992446216084434205910867150638317843048649247089285152406353398360217419177409869922712006943719928821724485186918634287294277146733416454875529760385721662837979729155749348695275968581149999631970818509286398459901648518661423409278476939987202691806153566784684843614081020515146083517885748491616825637727198740069774792745913132427704392928379194041325012202556473462101371236974792260674603499946772823022952700099076534345161911623374828364875860364571381551840231128005566127651676366271306629256013547742272054712207985811149895596656506969279439596222493115104495125084252513745789480572224612618748411468635192564599613059696484877281646310388016620129963213943575351038874231209901517932060245032566014879887927927984150654091002720378351387320182763615551674918501233998029968498523269679663366342602721642366633102149923593674640442620542586969882355371625081635572639887715598401877865299418873485784082575279268610794700945145402858945623605108289429806309749149178490941341485394496620409537695186025126960729805498450045796328960523729565118571830684599012137223270975884816505082436409048493222995087225637155676123796577799916260398842366841170301224622994931359269525215256708990296339921038286259491660989640867655609251015788896818222384618473468199138042164373392334387932881323857212851636414311219413296143975610321950206952574281852181734880901216903997100840153916911274681453132749048166721991375654175715292756680738942051114877483228345780165174867993213521083459547375221769238061686884904736901697197383521977254205821633359472094630204149020423930710795788816258641506438154491630454469575648151062360897045597289978847435283846323589667038422168130568396361953272054923461595435227543583441960796055965855307060771343614998334206384190284229979893275391854836188036215998481408487313355500419630343388323084144332519169091743292691264425781447109294925541276352822642807244868318706676703361669298904456900141254458746091263491442708037037936401935894216873993172162426382523703642197159000001501007167528309168828156795296897066333636521815871942769239494640669902315131292113812233893995745124107586621835271135926215623792207743840683808860362812385454872986763618657051066456296214521243640337533109423703605069307977429082336172676105571860102829850189818917109999436991392094669668753052647978958621292472251688418336074790532408282638475345308028245595706714098939261312012037696411326030613252095085629884553140269578200828864065500560279931600911243790625803515234898504991805826168967312716405617588067942859292460658202970758893670249288171929645289335058461648328324608973596243000156020975703305603737020385408705024687678216104684963490242939390003446539449113653494763377187966935263024937326510825909626652280438278083778063669010243132850194196179472399037974709033770432359433721603538920696940808474009761888316325281931012218296661760520269850257950362516337259246845886021625449963142795755171599732884412748861082920205934352370894773619323401958662263800902818387778205877143061813029421538259767969837906633045796158270633674729897976149299157081195301453600853718973785848786239383866533177150688974182044745130402829320521380776607733271556921896379003019851043930323623797215190215458778107135101336725490791195893720674892509219903890766018374116126444521403307968222811728032037602583166857879859827365616256098372290581666569602211360242417653097936010227156726552978515595683474851977999601008649720763141301077145863713813853492328933273587606841670205068034165274410368664131305262618970663820763863658702211432181482606487188237045777587614323464778655472746669707893930630034517265689627887240603886243879902953493264704177636934227041291925108086311716095637534395619954916550888100849105850579774301220100272577000854417031517667326926000190789146218264188909854061605031448513538017584276647692615375947968743372669776885466368133558143371239112293283734216095684824184596633014885088475426680367044220124582693533511650624181377262824352083880304350104956190587062157217011998588318006795941880105655754394384783891246229384196892766337243946796046914647742708685700248643585705916824403517744911649769493624289377050121359095526058133594592043595817783301324713565070116663106817770166512392300093169601780072922418300906360747702435222870220405477805838554914630255461959348447694399931370130198044284045076988366845854244920461155487631956072655368703206340264736455036635129976278824647692733595276375096328779884270517956164909927865668860609139415235630171494921225911044975860527226264336291096228974072908727777402994473431203232768612772484031443107020031238082016998278035093689863342765795702504392303187490762439488285894940959000388421734861862689074949609290282447120800332099403275258911133733662413257770890291340847251510814945858199725841210332551635799796778551596490234606888056963664673015165719746355131566443526111765975358702837577037734566931775318424784777293922336475773555241398223471317750207052351225392652114933339361902425673694567899212510164590945518285498231300254870043226683624964208146185531160446925222081326637003378722676264071463804781631924873949389368173321882005783693689224758748279775364514605251996387250021427004811312713398671324337174751762952688284543639403719143879077581044169718147546080674687050650235066071311352635000741512483857819842189326047490861996618939864208238081726593461818782548598558573096037730120652730740039693709785369596256753730899753843064251470067748370325098717382549513821791208771988663814926467832173845766608002989066528278961913371483837926275089140887855941108415456242287245774934805322499243451712115822818876726337502172417949445826458253120482133867047912568520371828057743282036827941570393869011933167681440990208979574295171424401158008635496178271528081635707497145314110963314224817020860093606238210082392679646524815949537515666042948156740767333074369153255033692626887471891872630981776367523797446389129923207267520333568145138569877087754303408953970266201775579169902066865159884777198067723606692423743216655217989341038332731293213259092656129919693050987829677099745627062807097968882205143029824316061092971151658374283123247201525695488490608282495721509979189062325235671223917809346927011510323957053657706806803003285763237349925079957489673778964949255107039575604522926338785289168710490590772064054587967541151899955832888611008980638235533929379856689655026369206633926294711622816411786415702200170935356237306754532006888581842841325775106613979733970502329673404308813527303214961947194409771590249979283597718756523360707196516270612791250710921804796407706703738840370524319506113716483281234837113320447633126791301351862560566850915879870734983300784127970677467818509270368099312907710589085483244521636366318135084915162089536323853033621280001454590270566304437475723031712978747125324434699598207380002823080882312454242133225108126396764971385487344082759880370944311768555936920470425000911000524645742219391240561399141776338169723612939599215143417850997933498332659674435174476767535297048922659171477121181245975997802058623645782868729128504075543807886434993315160012087109445118926019654868285666462222891184148187853491446232905372197609233010956964061415479965564784939645554202116717766060161800851196286110407695051672999647518864180584998800410676973889318823003091310014908125490238651945875250221087937307772117408860386026467207341130474815591360025055550505918263989553691322732290594609094837471336505532923636726228204486574581564471900855578935893280750349230997780029237379685444453869000956854301494679877636679777184741382666317670801920728927331047065057810435735773180655531185074318570301554480080558237145083932903056642299448153761637817402033602306022605801563409043146135495099478266343092763536220280159359396095848686452323769795204004480425927257345347982282083589715941465582792268976828513178683359286510389835584182261333789501871144705992598094476199877988529564658710863528576147176794371335638000184714537697895302748094970409718647218542675346720078477001682164913609809376928504831910004116942566832391693438726886999534366702398172269692347818767658523843284318684458343809496353382112070724363945530419924644024362561067077614619399806457466125064172572983648149782631873504714769102155005561322020103259499063138976154678938416454468468344238939910593197335725190539721690380700059296952651729707645715195861373442378903985572599193506368695341351136625419578101396169382751193410768537820590189921454724413600787414235302370094316758547963117660386563526145146287447763346640709245393061599353437696648954676454840771307835624298569518506423600906560358516751203565865879468154316650559431010180972414904689310502044789798599743111319875202151612654528127723482385967014948202213462724965246404210361715155990171181947008274255551507866736061342087473386846295100645371959436775634266995621776720412742746975175895314943871636016283222258752833458216239233806254676811874958588868051063085359727610633438426885561783119823828219692908839316982500664395361315451209734091447475851120455024412099651665960759733251763285093272894224519895151591478923224516265709692324865132606736177462970597036201141969043421136169875672919252914599372033766973654626791691773568952446273755983936547088460684245340232226910137459337767564995068112742382087513990646635105200935824658895767896774893176761493309758923468300928297540453317095724285911907688701779390179215459318237594217382704594589138113690255617291647300733943695164401677087597882908460362945420082609227010586535119831178581024050691917856752805605512443170447100245815326036857671447857766230561291463120114344186137961178998996723420423266602359017136395277086804131280745115371214295580108818559769445723537701813154746613298570300024473470964413170444153758199978452050239202961823426750366394229985710357470165958155327061273059377315916857939863490191872228855529395013692079192196222206246938969031320554923310560612572656056419360217148996170016698429614458558132921612564407883005648334189219973949121352339004817870696319415340370501246352677854644441052278256504740729517157989798166028171531027119260054275361764210189688648689193721522839720129809828812942730916357134207348225079948038702559645379014128383080016444737697378096173821871825575519153521208868486319531668711279173818054750354189330999768979835991604261628569728977092666909622614635816966540265884419005262808019562848287499082211131055050443092474243030463663422088416968537216404174482177782130260659941565598951978169064165382369069849097734405342838733234756636302049863332123633865786612932351720036331085840122744993244321582453642724658228293867383554022281014909123498132182140620080571149183703385222749139847901250178052460051024224251361398771965180602601220449259970738176177866667942184928032855566480060385057784204806582490470293445865295242601953270968952902374249050748656675021654077029226397688863753401016803191617918634340739119254790727787552403220970999127073825483895766525741533462252859960065869626665423447892069630243199881487022646893514276883157290827841281685535680109389576564302928737779948498915387507794305019322572332223757300145862075756892650167945028576650570312046504391280323492995973046556094586567994420838000377203291016888141827997302544505674053408708896752512120878142649182065112207296954960968226660288207404498306755561759876582840498586140401256730607425856214481410429791658193119377064831738228687927657375735306705881558145230728255107396304393564830090767358544348109914596525169996011364545833913572293733306012455483765469747628502976568272689431631375361100338948178808242001165425010329778941765483297193951375352792846751282395976585037960505664092359218178809286503812884192403114850339053858883664023697730549077490335471188001201039487329467720239874731473530937255393248239383614925614521216505043968120353403694952139500742883794244351550355421898483694081799048940701965211814743611727886225836966696102376246034459808001446973507197574441859997939368373410652172697866039665715145534383990044006136180939170674238933198064522245491782058200185765922115279740516991914158357389215303310619598165533390681150558446899401665830163218936906548708163866897813354548897078465268741058850757942954793092374371745947506145961659593039510709246032915377991757350190740458611365572829081806904754544665215139325962075588920764046287669519953130291258101264270464810176893682676277937013316093383305519443777789375455546199426523916530383040452296659904736357028393975328561426584175539445474014472695611023724748009587783670521697124610532502059117536000064792028162671650476084017182524325656175778792720121500276005181603176764197197740713834871172833358355346332374148969894086404248175869391202449198659469020868665298846518726778264294491178770610944613280275236016407832934982762270166251028015965636433008266244781462925464737606492572190518242453457268027696714281530975809020373158582589286856437561068045323733116850270779313963181805732540187127069906861423671613095704187055815381773324130959345571953570108901312202460906014403814364944739774092300625762916451747569986002266824849071128191735072993893850151430969595082930029455568532919571635042153462414250168263063433310832373755228461634098884122403597846380892304311946062736258255140905666017626522156999286351260638644526279314233577943044263592827168128003922577221854346980786218219327534519727924130801691913491515994925326570605439117113530449861169554756216684140993580255714816674604469136244175457707279344796041166679295714317007521826954153414001225436620571740181017433513805139849922847541003207512890085962120182749439638607000100095551700483057991194189965150732724682081789150554179046481375344308173814681516132409639563317759254800656460644384164321646869780483651147410322225647240676074429154736194339021751929791196626050355212150223241264451280183844251691070045580159751710015631203527123712048271542901517909039514690122138264321012263201337742264709800626768150441099604690850635928699425659426491226557333918550965247154837434774304852194908453878980097771938091815777748429122558071498785710432456314163870936467496644933783998274051575219569336230931700604102831657879988281241486950026967151766409433996207291923716959385766265614146264297294908306241692451014573501608882170124958374993649780901457210452071431217086895737307630463869264217224655032579633285695549207079245472644554354978420516388445162329380884950662784802462702280777500315078066338071077182635577489692273306282576320991692622312477661549264030068199353464202330447924007330358556581913880396731675526422331424241913756157721292446946000290818963470308821342169157906329649708630788340331256368504118574924684442765483129512434012091724232251343395540393455595658486113164813932358474562746850681976035667177550888644772257346333891492522247955832788919437887381159713414752461789616769675342256215984182274537399491444901094782467720866378010297096302926178896773115625400649852478499465098634218814324422354855652103789949791090614191573085697957092307868023922473654447277444322750058634007846116172270825647783966212113771744084929594974713480015882654661497004800790838028721819685123160711023175419957297161309008294682792087700797108294221007902109844266547344489712261194881802725484457287850122586615702751920892758746211492521093194519925293456399591624596878919875461190950103189843173427858329114015112146105013857763155362920128893178272633225530491295716917159708014141879276649608434283997336462535447307588806137932642483925510461978583259615034159988475858193847451837895152484742788899889608090955028199240311980769197361549020386381795989014856249234817038021788119182089120133221830154399030740102187665754613131545408083108617678396269285538467764495147686421620150586645512757712270432965872283951558792616527775571232633221160918393828662290746459854551265686984230633159809497383085213637334109101807188529701735668058397531256799669268858569137395981499120048818252763690349515048115474432085509664170318529559401725033395733788005692163042900918871019250731516560085685175107791376402295787365665892124818189931168656118024936010783177127507120276707061678058351641130194140984634630560667915079888484902465612688187818544895676304037066115104979102660506924855653009393818243734999253752687093780318576408588780989855470910019873366935419158260144856228492717817195987412946681316829214007386084102916285986858970486280337671047248904348869617651364760202141124546182829038938419850498652008926436424599331101766468899793749081331729772213828608472823899542018664716995126873903002955570914750259546495942758625529165601552147534217773208637927590425462173882894079605692424041333081014857344296155148382179333075413367898018819081649952970002087486042432367311924528085913045834950063711413729911058134133598731771735372999953955730653014973935108231202725830950129572663410529553960586781180608522318876476404784181451597468357053413487995592353144779619339562934840041537898794654407858164456045901433828012988346555895480800381045945781441332780043870072289476205178127789663120446175431152560833554875797564846757713234578862943647451487660955085368955916709849994257259024509244670614734196276512985650728874898521542377907223681441065316966523637555436754133827835300093805589461311194171731078008252851254008385290558608147982089837032067709796652239027178148478600082231286719992286629240806388249139460156152625999515677836333023611658424617636933755689461254068499507564025152698622997035674962868847872368952703551736533988533522818077229811169065958884268098511391437148350408673382141603772811140760892812256534350499522266615266404826062346640686737698132292505388474823454062382463678558719836084601809041879539403862881832886082796680377218303042390624385212639154975336529188288153097388209290292944059555011074201593975095593066384129362281065945875212220866963714112132605327873162720839447777146773860760399223483127294303852348128464917152581979185849816676889465100783224884178388575437998025502974420166605557748654096369693640163908480593342375846471594112472426733089123483484925935637877566647042586600757096375802134599684209167845043926502053832388652876925936598361489194389683851414617203271203826958079051603828154717830263404230887344958796570436137304411047052225031545005552767834441755294458062484628073855176026946909574398940701453680829583287463723235599856542704665137579928313447322129189268983671600220493175000925545197321966676981572680792734100836059663734867697361884522145747804192298605887584092580076648690405727929171646055722386503536973991972836125465292673434727076009295345302249122868361464068655499530509356057016221328229263742204023676981341755994668299338681359724988189179431734693382549220062382446778973483242453861290148101750911987489139923448221322865359149177279715941418958528434528867522282718156740052815000253898971300413982237849384284309298254021688706209205133701465685199194903188804056703428141285061952463429087411431365458073336606397701398337536129388419170631459044864343685793229438809910567811127607150883387954807429495726882294137495482048345215964008089246569233570828828682708064722477403721914418172208787706856009888838232806052756864145356776812828899097185515141069447085121899312069203718501397796135962247886703683031160089113036966492539998260928886621035227479044201775912210377842581634366343384212322048246430432398047594313455166458360580032897829484615100190081673673224453205154204514177863051358609219590776411706174214526648559944274506403343782004721125697759609816050692933724785635207120202726651374347602838786076388959651185208668606685022655046120081073632761111733222569294805935103082789442296468016029052523018710092189538114082747150626213994811835648445531895629928736775426337267836980599662326960087909032687138811438714674151198567509215473356745719239965279918713843065821569293176650624157355421184794153982293679309441030717235679906200883460967014917995495496987748649736488214454027868036106280567916500402616692196569792786183004157537799312533345507620864421340345362109584709079042416488950439782515322722390055547524866160985919236016561564168389663021121616447015569455791175202877000718195880547094194928660129955586357665847507078408837181110133464816520209416353415695778450715099575700861212942958779552296949937712146095346798603673890700564619938820646586839866552208780976959999835323857016750002397057220156490533952323354428057822897253019831023710930390368110636668553096531950322384599752067601023820069117685474123839904856147522175755522149727356833079078145619891716631666238546449470790374217307054384462480825878794486357499527750842034987646119491300539217719732193263429112638232409301575171906510629691235931552811099064872209139436356637311262459179701085869487319226458237282194918668793955731228428753846254217634438006113487686596195003217803038802085557331983197953356010332203110146215795076566185171562680658862065851202571755980976652295684223031924206027493470043586386866163930043788010247447821196673205393735673096081653091844088270822859736381953479170874804899916321371844398594925114052388813301794339271386252919268246389588481309267898695685432782462939621071671680988064447944621085092919903355374674531754085696111479886544021671942664070103325176895149918556197693062191954316846916929839379353683737629744054218767273985217262417898959260787306196255291688062606648442584834613623595880181696972307369746923601549486212192767275950397861418836913528237700301755620507203436899833694129845136255542815339905673065774697678252569304230493050500886711964576500235833944062520532642046584047546328702345619550120609650836499372763492048146368059227435058825200631037037056668698857494429372567673034025709014520727585815267451593327220594910024563007742272339416874271578161730360764387267774965034172409520045836105635075379477274619838833377772084452538039440907929123876318257365794490635401367349908924190320228820898277496259314649940245323264609167610588835119104805571289392448290399911535150937717412908667803692341893764821350127663032299344925841717051754778942040930493918868071841116404890638060009273110333533808840276805172557842208260365002445602553750449874558856616487647561062406383882297020303284316088050454430723655327286162567268261254437885401884351035405313015451361952964117110830212319193381296758548440670054090526182330154306992157864702024123456158397400413980330627335648258261795128541363960912054274823028918663755807178019816453997055573738689831893060372227181961938452906228118023423448400896875182951191775113379725649651483179427024125664319457496127533469509731784426717232672901257745648254881301089540350517186761770822454005720178563024994763982074160790671406027839264602154135324558307627249392553799452368684203235936671407714870307803749159154328555534713235870626696358803676561544249043778717074896655349178779668538669521696418295725658866625962348456913670837842058262989367039790406816370874833325853959628685324171245630496394402192452632551780222054968310632041759402642991469064192382873358634464168387089388785296325030702006479190282114951289413716108615969790529520275142798134610138636545433715785230426203774852781163633660441179905931953987022474846173828649455948368560277221698597058612558977900517637100672824447763880692095838551746842832440226602840091628328112781373782852826334069724146541421005363190978970520348976587559877811895906540942392708338242023731285228922238103252765262259370831948171052006258024059587497852341180669170972832702191724325194916673521105511185345632988013389529408299881990186396094611342320871675614065851727083269687155894739268723504039778940606341711784582152177375441909843732842223379884174733508485416087899466285778178169639525001280172387837522454441551526616022199882242901991758797429201165315139713153219738247556232242196469004631983022638007381121668020152332190651012248887695344848143719428327214804905173299671148868379984171393568399421397185044245678861262432154420410821395918257483981051534311918396890032788702279308324320642167383709960607430977120595416621732142946450280230515582151536598924689878987771027735718025811374080053037236015037796337830756952387309577081327722647190161880877821363520633945911023608824556840505109948753197063104706033814092511439354432116530611108776408149966742223539805028698656314694759975592700684261863073608564224213628798793311146861120542450573614979702171939888844267812942012236864784678537082432400442010827871907002412769527433271662881345804960132539179059938397131873480097868460717747561509669019354599472495549908621658530586715251059991500867127075170998688775459274051634951718676338592611272620418831275050361302658359663059494697134398527020702450988200685936456421001331393163628092526747079965732797645905553968504132257205440386166439398180933717261772696072632360187737238122418851482644748847316163849294849816389218880329354718391185838805459081713287913785023210125846703725385526815750916554149796231177214593446337409959030870033721299809563311873396602896028857092091645867179130194350175037639442362638244936226972907507143655283566659898499338346233540855919211072725174938775943590838254368632042598337341655148866711496216146648991779380908409760589298099715758017079503379510684653119883971504798468751424659792605528121807604247069417098110739803711321463529904988220910343928022709781234683931279084594252705660558421538591369544515711340358995783345815796654865739326287907022219374931145252142713482781196673556701707781654674759100880398052212322049069376884575904529099414623327396271615997412089704964508054338768090364160843651528388966567151496157742700585663695729028893537610337610818409388171383358035807650814306504619540997842141424343612223565520100852769977652170790314240877584548074547029562938693668693081231948569792894727242414933948317226871787402644339057642011636101426729791833418769530487062546984300653010831186224902868197836784528252377230431290634113816857266086008463224376404908931543198482363423303198460465366816334988887940012766332371799951629812118387603381557626433345184220584614827421488214868437626450028037973947254182000815524924925594630315261250442677771208887491616356441999126776413970550138225391289306628078278574420291323094611290623352951476226212709961334623373053831920549684693500102395726785836766501264744868858943632559048959756637617531098717241169173603034455341113150058895831763020053534837784641417580059282548821051802403949995541643897266055184719969795039293901693098714007566316794973412091240581214881801344396674915225628094499294697763862960664761783122402646258812353822887372026285111535682109313174951073963256867439221836993099623986357036002161079645631286249860680991702463011297681722676222209512043961078741477935107478620143359831348589609820586311336450716888560847029017395657867024455163985892446604013039587691305578403186870354968080280848403236262118732896326401773505157957570307050646178416535444476615838601398868593680319798286694574785325212429923781915978506778284220678324008956294939227100808596943826662139456971727866142716273143828333573502455252381658362813743794852003865902133239517949536210825088129114242577431718813071618646448336278060466517578385949717563652013242374484091724334549910863057212961644770498451650356218403356720884359594721169550818313206811197349958018818893200738979635520371246841371241969790079200585275088749876504804989716551269514057868666539978789318915831447390702331757556544306184141578379489413819582740280482799887706332412766247850653337248647827383482144311704020979575165765398903918159978602620675199876213532599706421988038567512032438770458236615076181386928896492919131209001019174734947695445320325995276649344518978310031280882527958056617474090777997134344852443006941993134817077473022609692947846934659415354175268353826900467479376207550933481662821788614297441267793011931347900026847779431869133252287633715156773786000936313116629258364361323502893916358276869013536644419890996949193465340079870731652273689804484478610483415825891367299791720063051217739279793469115578009061397442469786960811327026872453275302887304732531702970963744598437117047577618091695770275914940032856480378308940955511259161551963638187144537450483872053761118807847797921502453433789494683447742313075657412129184865637334825117698672493857555276612554537865353508844006409127742250303364625655364094856355310772856785901913717520375201498842975907099377323573036576236030409742954465776761415051198548072841459498102232615895916630166848837413149950840052138007203155163211640859864890476849314439422107071382867961358036977310254345049146435657540869316943272436129468162990351796184449097195008313965746772464566835731439285870802350388642833632257371202117750762721083211053475500223079866524816722739078347166721066914709614015019117529266511245696394472231879013075738151102264511113764943895556090815657734196254764231650283172196516261821889572660162603808516107266059954045017621832910936464409561742982952462924042748960648789644428789390986890320786176784260648037073076280142345154013067087196291975595959943892687058345261816810092517743583446094383273974673192033888796426625505602705124417395708632618630507994340200237839700984402832724055757659266336621575414078809423951024945421833083493233690840529369835668169595340771587081476893524867605166267312795865981399826975375150432619262289189540292485170454235339492774396261328390638745495460760490120319753027419741005834882346993344113385678438276549695996645270648546851421964722979074733501200321690291815160611987321897316340793089191830785200108676169266185511821481395494928289088142144953695445846002905793154346529023971544421507944500620457020073586738413849861805073792887483461825995736832279506192497734634942376232618036050072357879421705944719645222195654057363835845574107418930023521875129103042538307083149161231528451640035591447050537412065334327691079740055397424454973349636540406194822991690385657459073968318716820057346358885964186172246627203220795206546423653155491144097651845289869547705408639003617509238983027770077030241072388831835402906505851859039691655308538495407805211239013750972078659523850675547744001501922442286145535117538138805436924410598001323086682714597406409190134827343111870696682745551989725775832374193192870437794280809083681321608076363740545978538635032897548806615960732467890817779578442320115786947994574186500141429484853113485595782192155213327467500643351517408567306559675112024296533572820289977423422749516993665132906687955118492292922218325448261902271319751561201981964349991069809847961271104259414309622024388153885282879774089878883068014663514928963345160385020970851609748032529114760871227885216096729319208922749464133349086257631129797142929572912186456506373246726771165647582530300284675809771585262892385243195761977373067564814035768951467053044715111522755947485491387236435780810996177824371239364564705465608609360725555820317951538224822701070300628554623423572780584055540914772259363347820450080468262533689935284637739547085583979644474257594099078453445931475299677246237868918063360517754369000426401059768732242043712492455495636902370193757412715480095122922032194968180566976392565750976249874008820865888103449244512381361933431103118893726066941158952052516888818097776708089919878955622952173526486661907349494485403751511326828432281655632190939701878074279448300497896151306989111107352577371202433957747858464735116203481780314032075937447879655539965013921256257346631864046830990587924429753101535379809466945268797883505326976785887641299554868671592862999916600414362314027529113232822659031036251623394442735256758251812360785584514144163261087454668344756203196356062551298412886797045120859451939757741424697906302440624034259138304395275881611731380785867359364669922630487253795202887336518087559630172139983212420402926545869734492662628479599151164809888500023296683274533714422410388329388246845703102536696758633859019387628194237066982340263359104763194723831291469146863921530844597684963686858811554965877481409271688789651744940296608912111807598585024535109777030447976639071477122592474113881665359352172306022970496599528460903805102645945860488018061090758888954881572705703739948468860829137953210552382947309411145950155524068508641587304306226541690932853209081385182305565248099487831016050776042679543605158943764562221473536665895780742525893609300218702958235562472251199983806315166788797496521377321282128604242208051248685004270749281044691225661082963830135500542785853120152832033152155796625804417854399756119525351164027612320773974198374468185160936738681225248291019066823038551088267922317720947707243072500824965099534060988694481999488191711939140157420774848474108894078711075974117796766966999010691518890967098044356304756147250505724672063328912791286015221855342148151936448094232552013614070308989890676807580698349339508902276861939384721568158169795233816021651461026097896474700726442313607320060791882937576740955953626303897542556584765927154543644724563002572988252558953137823367011770349875356839633366182539493551787604864339623704612990838405750957523642107715192800157728280555911831253248716732262643217034026612675774767076640315370537843258129607135287253142665894884388855756918832917625925580618981654354824552868697358721440928684524812131616704377657976659580530368132726664345420499570871475060375430750747293121844875853673467459906390779439412976475211699702219535737213407703489290296550826030140709597867353985908421690878013226950511974149813023069411011669967923754477420385531048387795332296608167230408744204516966559469867050544581629454688396378698602884958342061643204262667384570795201360135798167544947582094033285316716760666103942105342181888033077518768721166967224284937363397104541055310487449370877617375670579249421454059970920707395869528285040427943689684490231274320380737040341206455820053102181035073498621866227035828895500343169575279292460794590432050373955170056806468317002950629076807474231448105975057341258855429325358786696723135391926430958722895688887157932711698790382154281689622104073177416491984826566526746981740466438189784547842403087275913052176834053348516453902831389471611194378972944698332301063575963385720995831551202039927396492891680666606783102508287372583593260171398168711322108940703316901518557762904107388465528765124754401404607300550176667989848141119049601323745988745316426749229534623296938081342910372424598566453402469533585133699027611400270814177265206730453442109183676513663717041057109250008513115341875235589924554116958123053875346004463795543584506738114403108855302782505103999460400274409735743085904619952438621015876047502700888780838064095265679581812670572783391186902153268894244630421188677242544008388863942289098799059125825488500638902224020589116633772103114332621114978785549023644918331671762695279970382798817302094230729034234831186876404144528039906802531016389093142909262670669080133485408029943730037579721556022135071005978936590594135182222359552553886985130393564716630353604956361015051419153377608266763779641038945480821141199262234694876917665118487013932101640319721651589078977671327500590256718721892967206169254695188776929977917969662315249932630112395716129024821401237800540895821492927138869650522280119228172112096508824566612134890903876385916319444593905189389224701295004365410657240086974573669368731855304011197796461772706311601910620432058884740474515297973649978526737242848361557685532043607105437200280322555673198401767569918547009522407623120179137916012682045470064347831831757282060512715307182921781885169570838849861207131660934115485844422600229234173643911878160675141299764043363676154250937861073745545420911504764802141900520673042473401799896309028102746809634588979557688185631732404520440339975062703955776329029333441635251505584130118655167507943790608165695426027036765568425731929077850925010651463472038195135432074581492044013679593691010522052620601648160940814689328172897074827826855366498578567039617814268754016323418304362340372770502131861272595093848391252765388068610325031867031474985214123828301726568924421715178512752153333741033524993156702239468452250000023224930711339717563283326799787411729151718146508022137785669150017081076647736249243795634575451058641716535556714193189555340201671639774951100629324316343427765448868036937160212456090666823662135463381454885482071087407477187202443176190646411963154243979492427339204633413827464527047818826827727950908321198580648395902577940760914017026435269436881856745597247081880161819488683835978577688166307331765712093089459604659598936857138224125345634157029924006898405550316659535048303155639174356738991961854839169847250517644055365665920915908821601969497294512056546178086984987843725616588315317620105083669005400456109556347183604236217930447251318638698627011602694857411381750516608289384345527007540961521795368028625225883745729122474993234426005724253089327205135018274072740919501274417109483514399781657942298835581674452362063364420257402200465466867330560915894049845985583576240572912881061651725099568220176723283744045774104616340286448230717903794771008599888423248498875478279774163891590333158674127570264876439481512274842583629970269999854500101777249354441439871124595704641608364694580780260170208644318927308569261865272119790053433422254919416007201551943007953434757447388779528571221278599384744160616161440781642046748347010530316678410386539024030875647258428057370733489363360488477957980307468991580894731266571671869665090763147485388268799103333727901341503240153725618233538825130668101348567866171186652670013256000206975789800798953930328675553334043778223259704764346851181787913964830365368925518424903765895861854126950104101343758529806374568630637198992335219751261719566689251930384895159107262374368469816990826231739424095691336539930672692130056037092511743089609291948637628145957280835242681982837498844468283084753021436882216567424770193373718111298256509954400372479432453440284097852174268357693980347189811963067620342093148154244456584643624093032877001559998982285814571081044340895953699213481132632358101142116813031851474049193643529888175605993328478061064036643841936016355113037638055891738683578380628499129443401209465099618664303795856837941207979075768861301121874720012055014037309117530054735024802542921535881455820918555761249474015431197663189974861491806111954034967638947072158761545372249788935180813869587455800785488660854602691213702697948643675130392865646632029553215409561329504887342816826500450759265051746639450611558259661931258340816428866649786742822544484353371738436983208725673607092770259129493773222830895315156617296917383134623578009231760805071995622229048519444032956281142932332640648377472042385309428448214230251493229726338708192693772858086627349901306280863991463741669502356775750981891380743900538098961679644950204827852740469357577382768351611051095473416135755804713539879154658209400514898531306669144313602102105822527072246328028150265145267567378850732253552680747556966712957676861580795987862258227160111825494410169216989714331969100045046137865862910831553692159511713020429610785238874257015865443732749237794992327711637598389986223151041505142964168612249169543652700578494234360157736673302499185729214542295099603014611484303556046448949751903994549510453036065413490378786275171181325095791203752425929391972648793830173111870934379014017074228294058600401257547200647085746562426528973283409667956218562382742596227356908685025058236134963423261339927523976602445335325202094331359324968199946927630895974204476080107255026026809756535616927566040758188853901409907063626972202879942631437158524713775137808497942763523914971965583901631250017169806961819319016200139861071097678218730854318450818136839126217289344892886513683630845407326126940561260223732280387769604914270245062759850105818565561985565207358929195060392960189587356117735477295026520275977264534758618922466013358281337527904677809243291880139858262640803094647741187837589884263288718088388307959767110263538407617891288135811830067062641839904368919641047135950586523367217073981540127663838043605845232801483215158146066129283555017965331734855060093223685689769556403459313819189883874517801074978520042841323550253461749003200527953364412406302235577534270766687296281300796887396931196087337819442827198956493266949309373381616066122814072841055839901336629881210001168050770643440521994817803738948811038491187472220118618370610138193877879969169300007387768700622326782999871913003216435568340354083285194242976480655088399165880790060565165588891372710748077891417950711878294496270792270344225507156330888639915034386066987308296405891786567164968405232847370772190967088542277609686190291399712966644103142952580732730798190731791122687263026816832620318517255691808653241409733695278930647665207825733169956616980126002372258768295306980685274518596279759309044177313390851721949897873561624838071989531825337110062193847748228893106585007466086407869488015599734641943491684592960525282863914030687696988915846378239567489386960084113794701194317180435436671753646593291180647804644471916056651824531791931090079907215318898290603236209553899011858691148779035826205992244978085620865279838875651193245588905665997239119389028514972768033483967690308838181438533130626547961094301291973613803764093211121847887896034502558689968710766812567342793653512459631117084067654763207380788903339684007332951639720730266315394244372675920959934811829811260317711895818594697815559556026020932428913227280469931596137429100865669507272054826413293825729542479301430666468654567127207089090622348598662510087915358611347368832967740997556283666576820882182894321869128386242383549981184603003688128202185630865735821773854094428418965895969217955777916918983765778311041301306045501311205185294168264870606857575797103402429913566124365982274103921114974790313169681409617171127004825886430819451426195209975899557536425241298160854288647922619002041569765923469166482079258089159918710026797469030573379599812122382202735911031698620433233519319717330914001105248671177455027415269917596026476712063247064879667905684836917045672179540492065910112376249942884154444451344218080806326193468279435628679929206627233265362871162088474174064590835410319801652068070734333525947535902125668077205712193374147195202916039239479966223552101847346219260606755323243956895272286613817781976095001914929396891891465773422484938334903956872138021767347437745409204522643443895828166989473225284378207647992344562764059731778330045540984386700838041086264546314441625349043314339271668689830251188943418316321101937883907210992361344106085161365291135484669190164058378427703786418496305092626505747617834886894730578035230145014776685958960978939992366646601077645646249482395613273008867888012536536361410523029772649940517762125282747460210412483294845968749201374020912133972850068160846734367538933985402716478039247421294514503733426044196380291135498803313862656765722913372054044506751583185763606205187267774242947783228175319704238548720143658019882735523727237232309303293161625197646149163968158923923550209273101648225250787395293788232870803512311840092343758153819351028927852893576434171855224600244713070130233057213225733215290060752583461265398827048686260124121645847063623742803424003187897476107009179369663699426157020042416655232694236502320804193335380232203483643321010224474848583926044675533998839030177990709517045025219237633753416658719358757576665032017175722361440353256553692107628782843131287955117238932972515465415598181323782633843804901102531090351009369167319415448820876620114902606329239806301466652140505015273582956450973117259095285500985788003951390287713564352038385034248625225450333177424957572074067072761358545670124457361292309694245267754130285287807260153845626608376395506547436418355344971677586849308293297614220182590419873699337289144818409723509028209942071611163934037037462600580903429837922099740632276575687519294146896488418844941310179267612590109039170853915533736812833122123872038330109200454167225751854302735481783457225045086312902451236903583309841937805537372955334716680725088709065075307232018119218755630761290321264509430110227863300971887463521734903879608166340533894319288057342064263975379118602353963751633788362179521126211958389192021270543948537774461087564101048448695670619699304056481190617357429214749601646003935098384169182019793915066706609056613623273678090024928519171710372162441149457730149015437890614731868587233831644091998333347792372627254217714118497476906724501495326851471560870079583556192314831461469811361703641933931054305171985402462895905155970036652291591437302453674327826416356610044676658917289508946055228634181747896035255787665152385459191367593201241938079673611360063540716930363616519094034767425587765078230236454907259271389012919106567412505449544661740946277013869688303976717096857796097976969059475490555470699037636126028338236484677775018112663325809714420127958757656013681008123316181257446963198033919639841979524751450444818773947620693081361372397744646203886397471114462742436767540931613678154420297362004035727746678739771821879008360016930780312276670745916648107566292271989434025849194144401386364988189368741790121554170804913692296574146272727501781187702504755352370422596616432489210334188648582870772656201036214812099636478982604640992731090145458769409911275160717623278957509189305644251822472532457496635918459764750395568958244946122239687255655508091094253975364619259563454793482526961288604535353557457122447491155250867919476791623005923386641240432588790111244136921706740902216446309215971036188869968942834324491692055005550574419288613207402204406656103430451684182545273437540750167111402464428711557148366088106599579284542492876405210071139592152381151337971621764908358448812450649533500545208546311424047261467069893301389495845622705343024535148921453044951852423788693285085641302105871843586203182570366515942925204713509015301139846040318293113943901160646190750747543241330780787559017259712260261171396533357060264463129931192363100263535690199279576466892007645839776934706785028748562637728620480504783218103709900580289934819522960686248040796862338897111210540140401163109605760805867875611247604051628703832735699507976992412600110336975683743731928328045157813480776988314100619216610892269389749984234931756866975594820600537082764845995183842195150607131726080520252101228714028726155482501391017212573463281249007298475683606303434449747418667986457588392340670945216994566997224067922836094904120041170134868584131518299139189442217690919350495103386210894855883827370621407029130204701350233295659853698580271767005298842869737841117801866163127822058256578972199950709469056061997373024406540401244001588373559853156585762999860893627263004492903619917187257127195776373466187512669400509141858822272692097703454363272150715302416485634499490050831226944908245614338771389551235435742422065810065754827864350458266008725289498241785239824215534438542441983553088791480961532138947979761439466909652998530539087253973645772441501860902209655037072474122845127824146247475415606101018129510927293258319988113824007583934115552328193769468124289650471287937868538656081573396028700680641563025831658862600006241688525702460531728616182700174652065029975053030102230130255940496949651050179576144336194417166657432395088214110908587439516222948273437409951456272522426431633452619065885594746028888010684710646931873052752542842146308806181646332444103108319078635322657453220253284466424668711219152889355623925007910727437420575645202600895184261570741532689155918459428468276002461673751250547041700639685990704442625674693958617301368646502918519145723166878308437502159382410055813167913424101244310524707776932462992069438815885312776978602220187032880109921903297306472415169792086845550350033822168407139175558312173581393720200438499100205921840848509509643110880159768796420082405842696107577458112959809997302559910475686852339041704031179577815057485131926772638676119079688952570713541612623077586735729218358435549541793273114383275946222452766265422240436040361760637164154851464647889728542085592310290546555123626209546955759185179788808820790795776977018428024943419887885091023968148833926556581919135585345906902519267025141689222307438961395969065883207528329305275326148787842762621157819740780870118153938070079344819499550504534409642661579807961021334114040351516902067873283830754799341855818965698995874079184184336013294326616797113791791580879273134921090644004336815750785990073645686958126026027303223100662214075343204637315069415305680096171893461248211365644558030048949512912921653436561475061750369722483858885349343091642585999963567024339282135615535936647806929348665479596898249905512424686533446433703529558071179901512340366638654418410544799203192734530722761150436864400532171742294149036761500522907698980098504102466719479552364388991245500250725142499326597594842699407368052946814769116905190660517581232747449250710290997782573346517002932847383878703279077600761073701183926802503344407869430053578287793235746524614318645664157247331481817896103287348689010528356529265313577121977336934163257719127663608393442621027151951643113497977770593040590310879376311447681902935551547831898434058542815079934603743232919973668977211726751565254524809944736482687895002320055800453733806429392555068052818789192377756460059320431375629847896610713713725620230370305743162540839858857144420964616155299060204946066639935812172197020459849413350913421197516388336029324212960220972964909721100046422986416511910140805166770168076351512948635302696397203229209703667765173502876898113244831602872008467843948574540662394689857214312936873538286062756922927325717082266687547666786773401030210445495248943089194002015932759685181530464941899178737451744548878044232529961630162448484846601647725084969393379576409194415044614206144333453722764200561337597952816651104357424274204605911915610347883438501752840343040014178425736548806091120237476270292813109036967933788784469479425886633474477503312461611939105842566527091303605456407820303614758551194699504577789513234846156731836301583284971164751803387525668135222971040862330701222547883053952945239454803600321443880759672609900647363927038998653167330699632731554359310258509864336082407504160190894677380764926867321342573034846703847421315538025881725790297850039201836155403395881489638834809638373196602199476675039342285077628375746327479353484043672469068689003478431717760266633729758022152626388419341100755100160389140033249752401281690317007579048079657837547054516223129280584405984322076814093469272647902047374261896074418641312486752151325746239800182376176206483485635357217959969325570355041599050310893409442256237764407952091904355787029903096235864029518059973314025218306600952024521570697250771637723975865868672833690948584627746633898335246851051073453524615428272940419047653433456254300871549563347541039810146746086263537985628865620823229382003330104941039810243767299189778264683972817458264942102607880594506019806983802083995346956119306075908903300439717671558453730141245317737555246521613804963532391908220023916313617620642470044651308324470148636189862908308845862531242493701907587177249182021010720414223871944591899916501515820260293941932570331882242022195981709391509776455743885576739884841637461377452994273071311668677748619208076341745516161498184730755939805192988288523068497235579928060223202176493577748961425684457825309419919432514307530329045727256734973731709986039915705634242242645830101237612876137667406954604528428526165727506074450035824707056951387581171060531385989778432308957736780417190833548741409222366513154933120915051426833372942891350005055928717419144758085211899914750749061733550645974709303598417031021248440830307715604672243466540503439802444463859087499299956953186919848842526102447431472217652297067830678368152446874211257626507017794484865470458238044446885384481134049115935712770725826890725865738210131479103294809771722894807582826334832460001565867663251568393017839578610026912743427880104173447866070024099371503293290882726102991072475029317430040399386816531892457555260076990990547959343219247880309769588968245243333346524288849807499126462942061738798217104647072128606657632403409810375810620183524829428313409357536839757420822880421938999954581140733389527355884905927987952789294541235730914592270195551396886992861308621411177974055623682718923043110433393739627547300826783779881852947462748882684272395858495752779641947796428630659579750837378823320036934071836620531726851263324461926878131062005695388210004609688814209635708302665116807742914002921483317214626106812620135516239144500913715114491804003952045355168864850747870363781652410353165376775224742483381049051470646040439327495094187065198669199847005682102723664838730255596444897578297713445660740569681080986883604311556931180086343577295711776229757808858997670894890675605088268796830097579196353813213404303041318624131982223545729024580672804810120904880157982270944484118024225439921875904751663218365998752996702882722863834795831252355682891066488770716230113455847846244937673114795774881258191509579634774283837478901825350891823631064013909403246930889110016776153329798018675595128360183324766583583351269960447201715674438141863033738467284898764816958149583180272878648742291714672535932157625667077543727423470128204909433959776981640699322080502361462824924140462152718670954303865139149924057582434102780198457798602600145872931521817480163747542385834300047105848815646405253898157276039571031170575841773163088632639478495865873147245818442461193198965843935142458115878743650471522958572764101584245563287507976800829309432453008586901661252015971228272986508677254073190766334241344032875043183976585635897027032172199188087520952696361231724765316635832889990917515489919842847400377235772996250233828136632747484875794137668209147575561118228725528074798432474166927042163075968001641234113302054973903295253751796167246335555818644411960755027457236279307677011776141350296195474618015130361368673060854122236183414478330641626347923791571152358430476327010959016859955021835371898507754992192183587597777624997360825694097526263914169810797272023073567005789433986790764684182929095955141267863039974729287625572754630962891408225437916173819279668647191365041205936841427154135203759105868728972883110332105674944432394615481000229962834120371939132380602149270434706105096269618712175554826446964997582200293207480073271416165071813856967576781845177954737829603140767257470278352894746985588884736239854916078291848622221101735165939853554939054947433108497287727203749414418033497626024951826204054207401242427916272088822302855944719834828466320381114458669754547270387063365078784156775254888427229398806841310807026987585608786685192033216613325146689904703504638530846129950806435084267834246306594078842645868069059984948480755946291690108497075484735810719708229370230935889717605401063457285144368242661214013948505631361390821502103228263401066284639899960030661649759004920505894575444682569978527732741970556419713257033676479063860051217009564132142754239847503355108006138984789854986140490454314003565851016002111351731154401240394787704031424274777624642013783988686924667642429814556605592631303852478928777926528161759118662782112548727240225143740516976262568004337193845553090648896394440279800585146547746998434687824624530937671341826574309391344310106500556039050682142930488576956347956788536126376890318000452053229160026705662747025255228013619536643683481099708632714532342154820277923610713120855091228676581946569584885332153807422118719508672479360476366502529307468018507154967012956019796556526041239442250118719303749380909366602475899057362665520478899548180802517490368153596827194882944433835036620467514470345023601614832553103445189974427535055978959017665543471540424627094846701895416894237787228656587982390342600880534089253237364858182086451802097813590941326166660383874963928722106783845063727795277122611358754953027025784300399096472033207880444331379814705617917183121377906517763820324553123226469848381796844006127193771702782072388520332289404514928101643288251578255123698282626566568717457080623880239634850726496036186542660821925533445532469803099169388129360461591030110097875030500520679509163500990252708635568641602341242214888110001344553482031618527093301753218327543645722001141433701100393414554627795884919921395929756826095114413078819235655194953760195632230816871157401627853683367527424204146658374479860718024358742563161292019519096173419021501358525827624879766702177117913075013432868633763831717645167955457909595860763711437491803186884565026545400708801369800949525077392358081831508607442108749990631502442883097810557714786762850813130390776121258544435980359305557530314332234573500142961127339658642627905825348136953544311356246241579574247103113835240927484763030997087685032459872887175343748562466594122882066051481210674050635350416604051755070346207575064196038885192109487672144421140160743078932141214455547320644517620582290921962476491923927642413574037090654590072703012190214667213364532400739133287074150327167350368813920729734878324278521693983990989001090264785179887035456785015119697912472106122823794636238613356292144288795384982320539011229628883616483929777212232697212683145350892589467970873717917156109807517148338726290203078748121330570641895585162630746550883462583283544105638431554563360967636874843983294185973285105012721371051754104573647353029285678115568093873064083810837092629780296061985112713164182707781752339199696134739890423297737901892758765144689976294092817780196792774563325626615531687666043746814323674810963809786892313869657072305479957379741074035623148512037963405646789313480519123410921939322196132651550321690808469603606618175303105338842672646298758361686704323249751875903666146293725446225390974060463607169451508824628520946249618008328028888154545146794195014076270989786057412355667922765139025023567849466328849107893836851621939546869722761403808514181529576783422616174288512011544153735978735931941203368339368557067366679588358672899058280879551062886522632665292785743098997704780438479911672341263143005464195595888244427011889847247626008364147208881236543160478181807552778905332511842627701677715538495032942310665353483975311471237515513511761443696515882960227569451713422718033803155645184627616490269495011356468779993934803035052415941963659541218722092153578375708624405760029183083559020964631537425350432491678761072725479891642792685038598693524058827460252242944322502402961323318229620620669419835453234731282819800900470361387525555767220741326463201840304200765836621966999584921040243042636089697849665110539884217314680306456698812267108227847357476226306577922103025344854036881747464229307872247852003905511720987923201845641620056714307254418399747310000306572507322037291098067057512372507008001192599702121105205660263122190895079188843860788323067871141602361607910581136892083188969456658038678415605722215171978716759457804635032165784517112840965222478487519450158143371002447571226440986274556187171625369872949988255651407293305869626639102821571985888928514001331109663854656366917669270616599798930224295631470259378146081196897164236363710409019196516755799574201501048133267273887960593203162957175963722035347406211764770124234815145040868910922303110680989499698603734529689454764193239952127601875516684803785137863973354351252410661135619773805284997864299472969728662350206929237165800284317050620894164698193005667138033435175847204105130090711347717997012168423467808993017969069411968111300561838406316648176353243610193783188087068525647086187064102385690790045536113180187686919980502677398998522464871432297396800969008953032115194696701270410457471891062528391511015797742897254213698194134355109874479167318228305305423154715892672774039773330431600840009307233815016801809931116209011220182641976668535326862273088795494297682544071818374617664223999676034383797832781846670367444258401852558155932778233125662247279950516041207963494046395577274116747864802299275358812729542995556195469391764041121518913819405367069945475567246406724212599684661690990388244566335985234566414022441231904305494892187854276037487923224624355052943420674690336516904032078364355870627634653133713031676743392901706327704121739789104830649908952005691264473824441124166679245944651348266827308527969454247101334265755336117132131470490707363909201959733969154715935349514658120125186878678077648185430802338972303499551094206650802647275861592499251666445624033382510797988681717156812481459190690057238463866312136317212680451736548153094999648701378224125913084890994903828231858599682114675050399613135312403311782905789067239281435550278099953803224413506302481381059731691062905650992078376723759523742527065995127297708029553966142152675225929387484799485714774638086083374678215343392289094878950823810329880345102523950756112088653349963116794656629584123700077862616152648784555086617706298103636066618592288739564316171561523415633506678439802379420870354652288176813586857549009843510130026138973890842192370937833220814974995357460863074281018082689052087021326465549120668994230491859158569710419842240310017052849159746690423268065800076720772593260723036872060232955126608810429410090919056404490142742897208135484282504937426644111859796477505533895649213088405321580447069781134697856553824968941276779212501722197647989179398741411359660245896548550083295730804931207166750506217084397623268775943438593373540351513602967000481209193459128890470939445993090338225652241741618817002479243147043210502171583100859876485016910526179475818729913031144430045860443111944063876487239735127309407331760807182032193282554670186786661586641296721011438958465634254104979162250142220022854156124705622580220357702162991007918971820721835871677465472803342696954689877380460874143647489362146166210661672277530232080909562576735956145980816484864410745716253575328795285083132176040542230023502169542227796225461190176913917294432117657763434109570208044903235948322259887362030022743183164219163819437608085041303779379156767722388133292077459341894972267667035156185066205365770651606615699766608909097321463208068482235810254208626935877590635140712688725672526875327286442559624031305464871398431281973727349759469231689031526590026842631777355445053943555324193968320222946841138919370137286562796545957094722529247148771123702679224917426763342949685700996096696366528142003447866778612000528196570589232210246673395379835747113957493708224335425086378591780872340087779116557940559736768056574570133967277276006501069924544666218087207813178171034422516400753850721891105954705096120136951690033559704447952817210669455251491737697164577663067546518349515325714361558208066569920054190327090112240578626862469825628625198517614922477623593604666856049093684160006383737912927223469530273326015328323436392056936205572972118985440714986618493101468456755261754207446929588215990549190490838040837159207253776603797999196434396875985795036027642874221645709751469376714484920677462520155101698151820570791067292633456253357295296884619529430414572181828062856561597277985151843177197129966904737211204322847146284248673031881001524760512970518576432209793507134305791227178009063868529713040423238263335634716362451111963797565278030497949850236522929737997733976606530417196537296835479085132875156657023581962443725091144800976967939653859094230264887346268454613462533974644984165382470300158461618146546822241013577853398763117697437685972674164850364368155458220776873962709795677460439480938499198341915012419953798107073152691901796615058425557938205735162361566227072537891508518901394489900345018612715499204428414144573837629742764817187715061795231583014216914248136326005142393159897471838259681731623601881762808207263893826129889087906009501022076483524995450893218974995996377176796187200103710917173655615187856808664949846779853621277490206160521527873606864441947096780586115789878861131526590989170786076352686382528564276659748283024976914384321253426624147690338739664925469710194706169228976990293460539082397687909736176015273313874261191789209960325755882188682216819309520515764981098602754972315029176428250529305517897237913046515834463316851751051890944558975949413256376724801033326704233731180669923693969647858848705126544138075864089678734071443156216029916088601573245606334740270236654081310328175610529458822113541998239870315072673780627963296756174786444375935201247909067147500770138681344404849364446348744516444234883894128241964500572384968632690311176435044415267409217751300415368077265591685104422826172464117534359734384196421960608348203476243504917495671914519040712252818052634117413231461717837917502957737237806658413011966752892037201522147494385928580639605874651646132989541691161166962182609346011610254899729348394955217549800901147381674650352846362394943150655103874554914533457539365702363572597218590391033358283884123728762950659227077549130937668962634442711505628483765804285676336075914731129436511399366190454694756697589696748153346845342529383439828863800858853148633617813040269037689862945093740735591212994887449661602205044323137205011723232292173393435878370100786643091585013043763357512497443822947571748367197602033578177938858221916526149359299396129447991683900934169930679767705284564886206532328847609584297217473224590700135195283260548556586982117948794392700648337785474694483162431916475195698614927942969824331373551543741797288657221562447560658528884127641192290424339512347995270262147304246276308087108576890512977244445602996197519508112343553336587649356187253953224490587899784950721971442699791828291805198960318517311532500890178881234465378891800095586969237939453983361751807041115100042390847330863529761219451603317870210363411796491185977365401542284693459720845077967875793013047894980263668549814581972389435093410692471845201280138405312023342773281465602503558784546851104633254300996246267498984649155758620740524384158243373331265821971268335610579477703825198670031313378688638021279881765276441216579608624530959444124636448226717420384905021103416008535693547386279594713578176426230002752931660454873003228812010665749836907061571233612273496197269566728588570105192093414869075407650088097304896206867678925453815549286677248666260542263036370971392138835487989957763744463419351482258645619921394998928170365457442041668711171036837465496099326044060578139986452373300044352403874008996465002414161212313647768695467478512560664221058216715426534499915532058220067030805490221310312562425402441002653553574023894798021925073604884542362713776587137241930624493539365178898781009392967372440222590967444692032658239085502568566379641309100635296408030610030437187492410786027857887664406783362641079284670848435268978288873088273106059842830136474964492158157494315361728469318674186743722753258241536502210071640600231329605881490714454874685641885174230727113244495372436278206335101284627726191049103172667306669404566530915614811194413784036125128670916012843644958331551733738858890599855457567314826077172039786697875106669839062138566303793876452393242280625813508792877130232637847159270719764390603948465290201124698073196873005371661158392389790314133370066269703785259246836686334309439631296289992578139787994873014346528974553565575113245945778366630708258807844070591125373494182993408114859428674072389530310333214435429281705706801087038036851648424056910133251818827045340329671563830210877610314792886177749937133261983383803722892287781073962394753292619879170078048082358533370907250488393270531179309370458160674389173881519229392092500939352562342410063120652333259791710795560557094425275587305352031771819754315772663516242880026695518017653018356807372066145470038904501733505082112689488717373254698989658989975088811892215454114973869142040884097171549946119479934338642572771557328616835581271429389752836281056295245976702735908751097862925667332053062543224884781540354078241936348479479232361663792618534546175203382192057940898517104816565649433224855453274824204907789307483922039766687101760793840457436513148178623694720905593822508283460743937718613657335575417237018210172815567542794982470152474108365826570463451366253321901626559398124275722154172593392061396345700179622435439563257494130726822063871246536952428988355097854512516098440074418398688962226039437565057264132678050667343875412077179916966102054826524191142099830838305527793896913857914797055957644421345189314122444513966914230434738123716321696942367189644437396496883104793226258255319935486604532604487467938124904740129832434649956831847451879106526925121553073175254152353855146125857192274457649705895900411694757361150012994219984523521422642971250773902801686079804111680866080677338429201349278688422726973517867466468058505286580536418517857949501368856579585942423326400174043320740128762849989605037618862800875333957241468597537589605460684392691634189614194474911800238630361312564994802526600199031099882738797879390155018876357400943782777045281684300800746116065861566421365258461428792387355304205654176668590398883709596406486693681005355393891064136525412225448221367383739410575509680007591025647763494195675177181706402472394151051111359694385418265759389721880181568117891967295322051110129237467316687500916874481087112242431354087110149760734383338005910253065215131858838574416683370274730883917965524627026931901347941564506495349906484361559389011967139130401954294161187912377434051549328249068423744611026804215005562593645803940692959521699156343217039245173746613238039054886608607369699343206246747445077172677343555933402398055100126866718244587376925856984428550685413379269734389890314920020323822362651504776639080764729968360196772026140506255221174637814617270487589734211918423947701944468757221322843890570151363670439307689647366648435247222097738584145476578758376923740211887749187227319816289189563829855641356991681909232585008037987423609237590735296106813666672254952911533988652279234217279884435487227566505442010017065495564562826537814493955971341905100989689557034738325524973521208699368890796192990976229318639095320163271448835854764946749488759993613862024720156302179193317395216700796033918288083245253847960052152924900722202034222097799592195062838004959971402741344217477182072966191379904229766784949707738802384341427821101961975411116578427601870195219863219594930253528537756562297177629423063003175933581215111249937427860363964937181821689185404961950471452487736773015572416780184961764534446666110019062921411280936180793974247277444895890168039393326566533832851429629981748578251058048113053968372427844461672051199827292431820567309159404450511629167894589204927101693258265045595476099096368582240393579428516438499340073093039468603678696316621089746987428502976649753962422558735281741866737591550522120747707122721056217851174026436544641583848997668392091560547420364408010185270427209125561054464184447098727872173005715000490699336541306445906052559326630614872379693958941812708542384422894508795284842674959543732611678678533071075307011888673594523391181275348910114038236774142661525325009313292166947033267722332162851663595731458659654479505004686614382331647511105335744598122555195130798022201799426831450550747592757114306190255849191589736718324628775662273265309780819251639429321668709811943645242188241525952140095348642976405812278302492164956317675097435464409019467321949575714748627495554003699178048408051438983018648194743028749096046969173058066493811676330789183043036729429226010622474714631905529116659637780081124842507812436612476347624051382609024434903780023423321745603108920730664260155625932710730484121424010676628681843595793568886476533227538423671524660301265849956325656360436546174498839463044423042482351658895780462871125804989951449390034346405204673604096466575075968432652889257595248021235967523134270561440754947538021728005024612764564999748550126692958386884399534690275228950397165524032999562207354788278512378265043121670800245565119201539152823046788263277014987388995338121159295639129640112279250888327015755601078184777634740332941664222714329205143620821836808229690293031372846222337760093161106973371253633038507093528858312767654410405871560639005376698851596060443564492910428021748705412024356946069798479905000644818768221937080856695008895065968069939842540782872926414803226563002492476935451580533529670616785869241245806464727814970402895962908518356740724544247992617711591591077564435110781290488754549049601204744595636615374035991452334268557686841636715878716456175695077043325943605177717369547595892284988403462950421469007149540959315854988352593634930317020552903760557971232776366885620899764452766496124426199209719666695809033483984885738840866429586171570101308730878918928818191281693279567301923855640704682899043358777163556621572699823805364011058346327986018265903227464674706269824358397959800317623766013832041838615744201941091743025381701812722853972761323319586698180888370478831685718504236149337625828190007543193990152833690770993182821282534740642232010062527519849894119042635893947497247128359502564197885608735897917174618578951444828907046807494580710454771315754409096090624667454853041660132829464347539878115851043676212766270608793304506776732429507452792374380305002094734616048683796753220817239596982711926524915002455570007714679013229287995979049881135647746833627455962282460943150468196723203945187098011398185395097491542600653392021958303923394277741956194764157394895837129618519795438146323671082622395081118028113064052922751678725255895142065474556801208154483009272115915375483313835108808556243186617605664093483355417070973324995480897515752556013909619191341452885339347086292915370693234139564967085372841072316478630666959249040698727732094273338704802074312181375655352627612605780025524922363200577715277507608781939327321969948898367856244125092456884459165694010562491768009477644715788023286091405849013242050862517378520216038271853868560552246214816254157098523243917031649154349089379460391189731624052436907151478865440625080138821783556672333930864683880780867703012343651480713321940497777439577532091538238915085642847359723700577679084563970281881966715934435680145650762900637976259934081120747863019077729171040361788926668512292176633837877517406302589753327575271994576015521247310895903908425097823990275443673685730803913886503574483385732269066886250070182510618141010058290229262402949595797185095337772071958007561339118461871413891035141927070050614696990941915099975512686509999720369636217746829813279526314121907011512483742071836748389100578055003222396752893419328309733447029012778704753935031848010620927618500275236532335432090946859903278501677716635209688484893013619582159633345577915778735946788285515503094213788950200167402649157935649146709241110187164262721044064744216541544267755303061514777038655635578374646406226241864152571267605991479735872843395775334747176295060300634010103202215112788254032438284132189610451492626320981140069542514894242949749388886634435524061048775504829175220060561922687439205535389778816654656058681629828872464867424549982884908501557953360733723823652743509430125174720463133919458043814458800595263915095368583183658781216781190075708976873106122679176697640954670109102846524468711439007805838023897488413641442659678523882042792939154560940853332880877742379605515699322411279051894492422150840541530153830920203091418037337914584221205714510756179771624670090821362380198171029721069974936750779870161159635787195854621425603388766101714438562683771448249294604704547764089182467351399243093107990262382801814190685801417054080471778084526865762205259368348282106149271685385484056681945046869155388188511482136245314024643908830501818941174885026182616276010175031055727473678665038504997795948525881877181538046450827609660665320467978471778409562594987593256566481327716757759470727990964510532147954877448560951313774527207935292920491950180735530398573818471899992905377371474878654118733001482729693018005124682271611524090389123274574637409563939238267132336779077794143204760933515597685315334464753523199333664963278263373700811035315601109811655242137673019246927486497561605732329294927148608526392884977003165575425957125753887490795076198739572771498104427854397326004807553900775621966521272463876136180450224555781498402054436295421673871058931159016997327333491405143821422978475832453720583599268122696028115855097338321765210401280053690427313864365109029951984062535030028832037296338050493051729925407899719216081205853253282223643061911845371691413520047902541786783807316674205018621275623647237535514140636454314322288961721304457351838724438959818418655714122082717794850836532579673988896273866475909421154402983866082481506258872584080016407276672636874918069644514360433211888613626190741044307822807787936083203718616140147296463685449754949372726496267812677669613593471193267863728226360798418790580839515195915851380876108239791420806778790974554372572466105597921842380572550490582441169753413750761920739072884073548196955424914651831379684096829780255154618667544448457315264922429684048818712240315952493335023113377495445157709763022592546882257916378443331689746741200158452222141011178551984204565634107684307359194171928893973008718278215713561904382492430276434199615429565870247680969078534117929264216751159995570067885054826247129588636315809135179688577206873859932048762456194676400932227861781004807254962359363462213830706481471093730359413149796979427021303303178788519712137611315922039133075887696044103925330746765413925348499850918495848889030492962337671860566533072706935556472550345475001123896832864091186502214645574799836455891670687771502610380301997728090394273334063549266486126825920509417967978438914901428115964197764986664864138100730210469268505096721249721831922503250967601338456004212366473822305898185954144166595580004227141766766263451925180898117338445600721469584918542133695533149558688066950339541963833362724354123199169087967839590550500230887338423724535744364569960769743853938469264164919206534805581787297016286213937857745953218856060787679053946375256937063225159192330458812522347366340072359225478788285504972934597194520268530864483556557111176140784171875509980515745721601805924105840073589220596098526347074190095557915268830682701462362822003009692252669893720557119996688341900920422692674998439112112829003310052736000749666240371243930484465843647195673735954365297379826173753492500424688245847427827502055316638111458741023438646361270929275675468113926145313350082074034272946671944521731830335771672258626076898933586865245865778960170004513142090907849751361076730408136552967014904915394877879697661321102063717443029783799668360765000927516029075923383782184314364555429541341687861469340834597028105157224699577206125280174020720491617851336273624488810614373632364413180805998699250685445505433975980648776339745539816937659783276309525775213889493143167908995056971317260639734024261617959598825322273329865656766256619031771707832289729356943039653321760283020856357957655721015341230873580572787987393330095236549690147542444198624473302136353204337798159657427362694837775034403020004411737053622856675405974399181045817809697000894823916030673341994185873140421878370743174060826583757333170422121786114520498050929842576468186250020867486876345937044913571473228852224781428785082279342709013736643129084782725404805959646569853496212259157713959300326642171614215660234195579790648857320796914676038495190086239145924858713385846623374380927846912227887902721927239763646207236562662307614898738071593669767090409944078077542592889796209035143479744577398773581026204698073957687283743873330198729950160717417600048996965703534408799778207004061371365536076383062505137804451467569983328878375082393221585533306148059888428864339393603459204401839184837976901148046666182023195828655604202921193628865370895943680567833169840271373290540651449565574392521079922336372735680320159461276737581589796829316889684028388802984642184997791804333978424632554865090514963164926023827849681014374973350155051712467908645475999346728185626821562314971805767022521086325854745097709345210753133360041199177508721534588018409954603183407828652907149312987189925232556062482084538088666692877739196748698511757756208130637974693480374220971374504026653009091587704122068966109369576451589012328922578491507063699069941377020993344551731703898287074446247084398337634338981409690107875440720844521680107074792267738825053872589419654775015580668987871388531899620203031055122640505846812673712642092109867838334801275395759338674864960125848655549625745948252233437475858519844299918491218353486615091721047152511845803159385471460689161982628785377391561425500015702504857802212393115168847020437757500722075118107638769599345341938527134630625908181507773171587375337060025070648221627702039288180478792048075186568261363002286310553286324805821006358228500718387293965895547629577617348651920201483784139245349151546483867394866439308425480399630858485973869576057845961000773052191830907670400729869417092081133947602515248840267292422819248552578952264804750857628648292402815596707889571963482158125026563775014501895637240938255677152591687014004544844334201055047678143351945716652881387941656475213478397279648976121440496103124649311169599988873080336290125932459682301226068817096884897013560196181762309539911399857375901952396396588186981168944624630897254469589625002925215540675517746109948454064129528533917561598968319034980093385347187656718046309567839998991648781996420071965445702748570553913354867915042642316680303669733932735441373989734056441238554040173986393375238902674333786060414366831701264361435093364030091369776255542495420016561666219097507122797762359135729477662278292799174825114591650355379814238284208751231916312333090922795037998361577869362775867722112145081046442992414899322536055675865063339869921879575589154613234427314127908292596500103816010051885982882298688167967065247034464823918421659969837639707963548280017563730522234255225085716095021917456504430637246741165327042106571027580033615982226196011316959201919089700052840097593253739282122888465391463134669179585739900068116341527762601142872867081354031372852900207385772198898800872892470083761245988954681826560984373210344094023076755947365377966709002848249254549494178804798805001792794053039478529346881516455558346081120715688865596552373170302322429157351535818764228181666119701060707152216451667674378451118094704588598644082601907676815492984301746146620873368767511433361573095796404632073931378515139186585484633994759058090022224364701641678053989007372953299209359807275832630049850398269997497403655698795156552748472952845134905101787873926134471494249837056511742737850878036509470037154330430409180721203269339771083754620141475976925677282252631394431978444104088688634737644644523074856609544941187107427315592555132699994538689458168870098919111122485614936697497783263264752185843569978837355846921595390548577724893931447093055239142649577643504055962863021843643699677537695595115828234635044503136109354446286583919360105613033279656273149387701638710852997710657517951908223201812228988804941508500606433096711751073981049538828360839565618086134936178398827571970893264571373251565133155179138178448449722197719381740021671568514889253162412592684989574603548477996479045807970929486071580328711701801535711373413668815005513612561645729162140533392236310512007393102371414394373333327257576719052316327704470330272757232316342878324266975965591604277079845464904658437159076309219006363426518086456607533785507217173646226388150870006197368423064073526383161651969325661992513511936539216891101040412505907812796267822952564383878235693935220520913919104560898384643802344468199621473066301991607381958027667625431334999331395631642580014114528735148990673764327631433400955469967699608006187983884915200524643814304242251046577840488749536251021757204286028204609114220405757116012211452716500833382982689020995493526311648452896612918205761122295994111035645719195043064638510628943029101961750824991464267106578553316144771513615379144993086818243267403537973770467215957409309520566543895479374577302994146707010270993882371131885219643919825494585831949217702515370284945128531665997727080313799405028704924390281527235584561683531099916650426397513264830289324327790107071757471346720947585808713946285409562819391331850158122634078279677530809207897079457639660288487503841879170364542861900104498233960547051413474440534862977326033808918757061545799976818541297542714987519050125898585783770593807905259060237037451804726025200456556569521845337344576490056740305753511187394052240476353679486108783231709561356519307722212304928856078515397418744528315072148227560309474449636946393854663642685998441274831814936080111349013275422755068070351853432243113449432571134600223402866721156416405310060627313127203099178025203569395832289108132777181056199526894972950770203501726483023282035133577682163746351295482093363851280357693548240342205977991486305995656144863559108360386458383730619957871022853986579494861382654650390772364245506326629305005739686792072008957707917670339314645622277567827948833137161426474719514508567018151889786201733941079273940150742878498026865531429480312448709639446549376845232431937945465925193520843630984512180918056874602424679398504980336881934620296979504658730259445871420777151956691104417802894864251486774121933692210066564259129924644306011180925682448036185566807804475163043010866332844821340658170855294610263362414124572009909692330446974290557722951948337410383785046871400969421267798138690731994716684392376508607268286140860233725427632438183284865936020785362232835240767776225522244129319097681320844722846225074982579133303047920067682425104324963728686054174067213315861959506733054513561362593806580008344373198013729824983444341307639129502975623819997928081329234538103625757305540174848390150917708254725945949800443957416100725480163512975424650054904454804521966747621022187884998797020360381853396851648362295073948685673030180407133518653238222942806818939590940558913333677384699693205618199885792370711101057060684893522768003854130125888959012581072200253162210527708800242701953864177729686986576538460295286736470115774449134170690224627656657260674421069206817341141822814947037264440217658707399187508906513466532758884725915473793229288101957000844104633960447423201293132335789915874122690691314478637152344300728633401738429701889290089314152296759560936213636563936910652255224112636278481658091578569655806244807053169917109156124803776546037267406634081560099924095417767795838882952645081571927196163335297301480041636562868677958069904218144235408320995509201821775411379145967674418775972954150561057833035523789961479717566531113214758136482819765546496128602317868196725108002407880476249513377463440569586440993322019387609411819116741426435864145232273679770735540557872392048529563320722222020058657023367892232298608462558094923553890335057881029201728340871576007890012935430784774233161788405521842040084183594758513635734828399295929788170562344512123577183835843440504207535887496109313695000310017710406428322642246813157021041472425978467178377739188398544814212608018966243367850572519068641404434236189609841714545011055150879789809686759487580423406402846275532801768773191528961808890446720821479055172134897230700255194364158106826493913219601337689168112177133113039930329064797425461127101079273924255707132407139489085693435757992111485782580889150461428797404911554776508707865849592851115834604108082453645132254224187695804913323561668887494890719094787768862537344478263422218050114554584262054118940542904241300168936066045299049303433278484951159553792795204392166159643350240619845230193151855823577626620151270221893629735662851781685453288325203952836469682438365334781369117077658978258362489889663675218464308595634680684260256663565650687656100776433240273019095492182992913144072547764228527660064239687780871126665098498054029548267935316015787494874234900168915785171818710535002040784199081543862284268889666356695726122786417640922487467913331995383718210811671789928517150642597477240621690900266215247034860723517053474520500342684420390660006171165400510166502175992767700323630064848322878048676884203104299065462427517093997270680782786730301126061939621815615544195528514988847426815194872310488065610469280064750181800655190212687636178914843874491532061221082023820850436788312427296315025871378974895029243091392291978091018162815425621439212937417256886007970192451303724317006708972513684958360597796163348651724101733997215039118825959348607444038158519089067865702501222779632164152446750183103522214288218303920879743770731756893172909267461672782256807311405423974631988148775429075485054186911800123669765381217931049888847669463068389561586262603410004776986935758915034568953135566482711945318686383364927486202300505049666026368050525724607901206800422968296822782712607102778972242713937688157932690424344441737499669660442228180798431313591297877414752062773989111640070070149089094178006353482287072182908515006561360546125545740923027857507521845895523845336215684196790183232287351886026918212700076273663030498907643383371813626945147496336646380697347471895286263342069678108098852764517187805254896982862813441461695890288558681797841867373255975244523397113635213951002417288499977968132270112633789241586620446262069394459249723567709174628118940236145636046275507291119019037749968124699213595085205188421262553516681364799953076008501770734943415969033864316823788145892832375276028758689260116991985055711499705838612148493926330059896559337198241382080813105214457477630866897109080019581574363464669058788525959707869890464620258824071673653273857711165813297548355092924310940320536225523290020508780135675641044345476273912712610388979764153351017907787432477644589528224340567700207878855749715254270264365870969116829262480231347954826065624030517906742141756027783119166748605098363506200943595858042416618174934911105437216049156170764965762945016326112613672262398538743174308161706663749792544402586952318922356252030973693695696235708338726393300902778573874854923363899746646877966113631807874772779159296221554745481245876077779663460272750984669661575355688992392002414653525847395284141236665575187986956749079699980435727533574371032848915056258553164036805303064861388121566631069642951915510767622011495324828759237903422743247737497818628456039549913983633636075552695348966758011753545299889622934339956798873809311329411439398564929224472197474221812392321984065229107208586923295853027568341140208349247572565061116289679705048224113008859084146401362371186138634585780092322731964895782038584242284468285698778999891154312308268705918294950559534992692480884862650888430851087579194621629625959398859792016920664453255041838761006355391684512202932084110357288204886688519513577819824342384643983599267695680531753223052887377164604807025967978481944513759556028332393879129853982718612841955857663125159079688621232235066268680367414839029059268649202592132856288122166314851402307223035708444315923853560252208555433662310319810858027459622948705934637240607008940624193921420461573705043814825503645273888134413201673384539356795467278320449103437472684956089235852566739809429076504384728721831239228018091906763450175015812424134921164329336085365816206418672829550894635787218691674471704591901380873063426894021429207883258778893922601472799303578490904800873593763723395850217189596851364157182679261036394254243578214450872264576701850004592534612595015601271959316476561935761859430705426766939919894138606488055756408697472118841325477978692588244924357373808454113234691943071715903366083767613506020458138376045508300695843923244794704697786036699045662447029123031109886636493009309356801019244900063438294258565524822192775881157155657503647211679003233084482986655477884692433839172737727228409893879282518386980644349518770686531706298777651512973969724620778213459334078005595862943105754408530808743686153079053196155454214030812837404806576399038389769830359779847889856111915588476525088837727657630922535767693470659789200841099096401300961038998899019183464560012462562938200662277073356030251764949969891741873949290898442099093848803783145097535437790189155351652609787373259600564960771062214281030089139313317841589263805071312583396412558058347480096423447394046062390712799011946769129997209549652970366185671183602992052901129402901053359384150267009441612427011151681074032867342631505823622825375866808669728703023066654639760815776348431322717223109239691651687572543134801857970589674655873483564923378432755369043145190708253834542145786631547303620146369887878013458015110406138128388346684308558803973745600411720912155148159681479302250333192120962391234335300935068371917851084636537625284978376889883776129676274907009882302678426279925409295994596270382125178463530163543280084823941065531697763936368407006192682018766632096503194029803240086837526977416015030837090604363508774207859169526614324851643500247689032783969057369387202911717755566600310935570783575978819877465800288860673221173419140292301104239867824635094024830837244911810349070515001639407433214625660343477188838054242702174692465026226051304478177655064513284146473802177065544920815506252334550483041815030373271945677726796836033760884977535825504583366022328511422112277502448224634875531300589879092399070199317521883428666004460317807285467753985869204121121749652226012423621293051874323421622811243426417454502366219015332265875572067332775283918626526444624889808820085362734572082386150121843810217468386175208153708469613891160923436349233747767445965851880100082144316270192547373333435326256775076217519378337190885339727460464758161137483793253899682675366636862657237261001913340192040616418052057785578306577530751563738481760556678106726947439034776552257122567444322659583383402335396232988729529176221067943140579211095824759525977643634588974196736301269193617246586113716498135581578916445964552719563356155030968581676279710720835509905592100972548716744942314406707058754724022421563266002887950200322846232232785674732916197181257246729644328026034353801671051175920841807929230415359736598891415126630211724167136800304065599100394738097290943578999371730224268429118155281708434740918236579728291369502874918136522025871582931114122161881285764109028225615054385145824054821143028868277266738203184797408476420247793024357531042532703106139548294255222935658412303305051823993088549213385638650159641359012158592897237040379591282742116842295920461459329319355802203752533287028561013380137243101314187762058488291568069214358805723635813003369285425152881673073198711133023452678468036800870494056070062559220225049653517246133712760133682691613241335590513235364425462984697721438577835107537901436153393350857550507338499162739806586247993867103148552827831759093900765860565168413036189112955406402253298114058154666030936166384273955944774314781686575394779195857227494562274574809752914020926478478969288486807918292897996564055283171157590795533777798555189038381762185295868852775894539956504872794819425737750203482317568814800469096795024070790342342386748831476087987489660390552264372320774202055534288904045957052937504083360666115659881104938002439416766817393622873010822058060708547467557097035850727791662518741664729680321044980798540298334044245714064155679776906575718557979695359536134429428305072566477259774297894830654185684038994243050994085904016132430730375950388145742282173824658679894473393165270914682516076316778228293812062508163658201251139576243659504580596646447697841425268083095754366048891282078320913513832791844810700555362307362509957419059146912818204909263259122665962780190926337494673135625487952559607525836829156126844746125522936942116566099023445160891979026747673677986020441757644958169119622557730533241311349536492207757455899897096494541422436197191724721745306225385436100624966335772847647204088764334238771496372145007699409224214229058814168541596208825345313364412537151872738868524055902334480774418187660428607046169140263248904843301060267707845844075747663754934335773051881303146260195067346724079624322976291721670674867410761805513857836063299526930337720412502414355855295984920259267597006344760490048591476198611846966670022917192419586428213029824122480998879259802505856359400038018052570595923845677868426606753741858207726826629837388364667180750684629686758344167453908488782247043981623457138579407595240107655659043053276154131380682801775483548110339073918243048646794880723164730849644644596389273813132485692936019057560217853631906775527644254734340063816989330157051125132746722346182154743100342103915893465379184372956623211944490195398403910216024148588985343862403610490480370165355247198104497150968129456539865595500453673552446765898308935222131783461812688928197101996131108366541476820205004223789686411630474271096743829420439842651995428809348425076844308137929575574947621773452286914438321615936163869543079058045092013414840146007106710740845148658638815026754534329029959328593933477028302336215533757666414625167189667470335477793431223699186496764850482469480426145633511268549252145685452446619954544464027241340063953737710043291383476264212680428391977366630782530884791663535346253497666496469583169009505290902257962534787591357860493238627491134720545664347879986063105922927021530682583928752065889956151477688967884939906628704523798672630866428071264285510992501082633947035851465258040325600875919237524174514716610956366869602550644406324471676625708537283081741481551727655361045665101731972817237528567304355424412714869271302596200365314743578472791408877144864976562674438428132778537887056866725525203250444505032413028691120400912842743904583882124864997952745451387354741060009980680865032271554011847726960942110216255092029830818836945082287673644505896642113474232956936081888748423682330690902785736758444630591386663226984036100744322586007220892367017340969230810737787427976311498058755170215982050305620558713091581693210101547463898830989060458278739654262672688667485399233498048383968018815440501040670794482581129643523133717719390803525611719609613013357223600181906962496026308069343060907631094682312721870589184737115714935571710086544320010662474587093870811672291923550374417712539596928756495747380729792142624202611299648435458124097645159184187779727008987610605022701122386105337350432562302518788457437572130156707468102404172183653473574221007344585689824116853879112277030638322738445025635561577406016483884646273621517001730077612788501544787292119081871531650097248125869978683013054153243410448257097392698213273254412088641457293386457806541102013646151973227221412849206329409173235609808780325674468977192054444697675953915706665708305458564761707562250064757098603331387908802334889954443542385294192584608001171879380409604187317944291545237868379983631988052621682845892066652881225101147826555129058823082549883348198694895730973477462696454407722050256165599018305676152534759560201428629573678341945165836910318116760609095459783536219295996371026775553914609531542477431294178466800427832499554896540449024474611343505188227797732353546038956716382229061959760793380270713382345473429346653112475834534456949471827257387494623075042208268168025664940387090587434372407730842802990262250474671290784023977454604201793659615872841901767935975423066805710103356023735743773730701977575482664806460744162746435944041656141677206231430668183819780809929114513196686304709334356047681355281396362767055249155027549066833325225190977536106368441232848698367289654817521961105646846861412670813143495575039760185960046346225262911625627704112946668474154314594663665603482599336084140094594361513809813141438550108557504403444430044289515785562724380678498971818140909123823451915048525871942297585471421936369638314313014302796873913877572468078578447375473376254715519344951746558780562780596347581638897461710980299446003346208278643145243055331379566094648190605409310066088079099208250260604788693762028646258980179234520852474929956143855312029461621821313995020251467659670616589582725766755458157213426055549154331072266176386195970674313966956086699104161330486740699078552992998843718408796893976307671408228732873426499463339707540888542052722240214773696669037488238791111962792694449588632139312657522485696955144506257065415020802926802679186046170348686895187934635143344608295891606027960831603674517739915981442666380185396487505011262632683531334982569123992274868508602252865913867043573204057925513637242005403897161668021174483096996550356931259091628716839140472658864801472616702600444989213171096388613910372272112395283259411808604055986116284741502598527181757458530227336975390070207924804358375270720860322098073799081728771746292636942428118305042815722869744603956760784495030603274452261296151199001542307378022168320029653686466474193181866709769011404004536752541765285459896105978095293153743409677691939647972988383325631664484163149029737808723225345086001654158566425067323980502847349828815056137096856659208707765387931180057378691126454472304069469391329068876422437825059960971291672997854031874171251322748207168157009745780788830915632828630257521928757310633429675605132332468233156560305759846208697651394386201359775327251194172575455544428189945747487878277703905568647446224238597975366090815292882026359422945231532380877963441358511808704292219593820617504791451634927639736407261496243285155177715149979429889278497750985941461564283283554283285768950035809764637183550470987079932903041985751560952009853174754857629228827587040693579517987032932958503486577216849994530344217413412992097923583665852896697748899166895043591905998181797102240382970373386968002118514057279542238709310542807647598406075077911779304156363637532677175996750081540815089193678827110882352851544717059416762836339385805697178703856567767197884591904873035354929201516575815004845558976270043015267070267242583121577726104483002740085146402659825121254400652754027647521300105678264029906671715577566154805925805979165026987168954871365565699690611960254600206448734036676796360198783717784430765257211841854216457306044189736844229894781011268617963298494043942632561937262906053811986437671344610018899519492908288599187085864262167582046541603308631716788275132847638590957540758231881081003028803349699527889223360232941752443654939415589543200661974618485465828256789189903203108562345148094881215480497421904699732132580285259120838292784274441621426167013597844294173036031622615107123689839593091568093792850228666326534965571601780659375906058689975919199627973429177208464278089394150046535267250868671131840873329920617845799323738544240509399416530763710748545188790208902675045103423229547120512288219004736612728439267572032745037127584447960950228417472371579616025884806481849248523771528923445282636208727707657648873525285179694638724541336359892107657428327660094718750547099648650697261302906597326254441105399594696937620655273469234542708245871672998430512121090549801861748743971650396577539427788606903129880362099565041698590469022169503946319942830213822558265221003135000862383992370742645923511610269926740852189102369217376441617868116167933816259717930557360283359334868213777047388214519538495323311847949853877084858864684528477540642319711867220090662040422020224185114722544558632079148081006200288170911266196779217446428948969375060941074453427514647199387381519304879033608800904463550897498152298363430873165707532005739950200834954819908379224646484629049998186449759995501134554854912554631512613171784482626688360292216680805392510323834148463963278184116310945233343288637089694571470380449131686826001268822007633631682825025694947408716785089702708213545835957941716571710778792701612942125548499628036316212358744671312914912069185545973672199912698940676994262853741544925311813139484611309435316016099215776583805436196484807970505324959975312947898167744440713908476537220739265733021450578814478258929020614532553866108143923856208086664636965138086547158632577567682943537207306456898812349171738175044955271127973937690265679408931569042963781481117089255081596911498453886371452824277246701909283519513886154298110586970825012652827188115962235623309499384148153383827915410686956110379336118278396776534433902832743425245947481023155279624638166650864265587923382372148799269348247893862574565708144886701363117375357489435874238570913105556936651220174486699799230048538678571927311879816299537172923302467470483937788610519871801602464981258565136086106177396492955729232639325906309439126489108093957868099092819328280397120247285199204849814306664761957101709354084939579072579883041037298689989568379106383451143945812906461463791430967329363371312320854745740798805329581680472719168740377186330322048075840562725207970687106909781533562394941980154447961156294078571160913837404599462921304203317028433108311865532670909664844098859642437100710989048390822010239925470304210885362828883162394455252007151375149586241296554295050582979056035717321096401770877074664401102436194713193238639040306043592056324724814122876008953804290860934744041233885302406217793724639833335993032532828676959823165040809610053026572555832103494469375037521204077900681437927245412628107689515575883409233734596714892654533929933674633657152017126431855232026834126053537624176270095765726357147771550546569007535008196913525759183380671627824090999092745175371979518701726065637493209965258139756815789175119989322435556287854278679494185362098436051914820834819778246740181180699179105141207106124058006399169315857069141977130085668750522530585861097493508673431439440920156416284599430758301889854409250785340338276059404344785376189052787848000535943691589934620332787305241248050275217473228159112034159866729810141403183263925189360612434086566562979007334817193329069568504698392185897868734233355339236899971447119813797215621350420152972881594147137645834301612812042898506145058890706809899146802856829187885670486041097933093991768846142368819534480519065621949292359416523122286524203183581731441537307258394785417474460371597060068996200158449169733033876960748657794028496464661362499601664612200026894888530825121537589158158048180090532729721332219045601750359467403128857611191014225556244466871555255682463206384349806105030030625445440263006536328647491284421640820383981444653103643002013654360978101802518367878268063121653024625911173116658978591871648404393421981087587355644921517670253630144568902526783006906237216078217540582389962668605491137730044091181134469257988199289250426999122639693389687974501164517826476497979910995496836174888791408435797258054610432558592342640843771726377902358720603128371964258649335144226482904612695299985299392966877376717292756536138094082980191722515386825779540920771803402499851976081676442480471995136920897797638376138240114601171284459998915282004181667153293081112448370305931689793059352430294072090255245344923961669595038265774683974317542783487041697762327176797824376955463779210149719460985624431832974199046126631146297776784571257138306462782329707242299156937929159436985562106464076532025503604503700165117695944078641277243670131365225133251512580027669701021708192143065555493370322387186242313255747406622476915075430514710742022712418704522032523116814690938729735268367325871672913486402696971417158503625703625091056380680360556328375949086893980835074648642741024885550800898366832539400528074375714936485441535101285652830708327602170707925428987487608195790636876495099556142872668263145894507233843958546400109033086522127683472211645834419725398912565989572809828029141502236446300161004161469204235689970602753698451763829597443800847723314523761201924019610082841890550459734015480675818396882028577937237385511886394491775099696895595679240954711105129171980168124127188300382450956225952953750389177276763349270209105945361733418616479963239839248405277651979784661751370064418675693143736825216664867721192722090348685469253782720662523754928236522073567635572207186505887850203334245088392852190192478533838023205864659510008551244232134904031226393643127601686761271603408493846025652729236769143552807968981139679403991814297129856810653560959202116554258945663229775997710492307152199558057256521316151735130907091139023841300121113625157488425661658294414589925384255529102690884216212022093871006854579979222505373823148847887779541363084804072486218614249160030784837103726674037917999103043650814933005184283555660725327043188724768319582685389579387832899966835810507973061237531199489785187088227859236067049529359967922730969707459166627786388746067852271868287340672994215681952298052681965118416562896241910462571353587324073075692996328530792347388330341862065967121565730192803812285143685521481944027636490590978338689809702230398811302450876989443197258557163754271269568930048596937791265232039203824994097538470718660363414943455450816436719928057686341008352876828277432882111689199935903172804849149220222610148086312342736560796017020518770410585595580403184766246634389960818022104233632079746714093048359281322933809296629376361882538909402761004177163374674200506090856526223750793359360656874828264311268830341400522879201303832750443647132403350606919141165062439632408535258779495000115852384444326457056838019545061187969335975699230927458169324619939056308561980253048167376491555998622897781132669463305561300706328487845636720590353049859229284079822640031927975498826229772050437969570173730234784101539870292888710565805877594909831651568616101458059814488370314889913956650900830730887625948067631289867065424289120748946165671452914063617837963010770973296148307749450228999283828257805903083902786292104063533588739923300416029013166587989902229286224765420987133757809039994702811506985115698668284573147994868386622848604420395262509939925294891147871236019505610690769528822041235113293079917628676641067985731855607402524225471902719146224988430177496412780286119308316779395745679003909856966764525530937425133226025632887065434451658752587784225813521920607221241894386662982160092072203120464303871703050681337599104609740494604802935669992605163129081190532933791586550688958280811636904034370841186710047479777821158053659171082726728983308664351771523089612892104576502009963044597763685348950657086019035295460218996390737747612361555099408779433532435189038062225726725082213313780416943156168391892747230622478197074282694589748518355011326259861405223789484102577647545731644600892665529312800782928692019167814052594438285749490432732046924096313744887733376462474518712462551513426921006128030601170707367213445612785958688664476885472088797903334915986194812940288498428558522437450007228155540466422512663006573729319276082197706677272996517738668167863657447252220102789458482045348632823108743021324055421974554737683152185015817174277046863371141196283185647002323712940795493355497355080068935025766668870118023741925797583294884941035841299102008662299453724356213540809819473194068391718943097981876821594507160807502217161467748910737291594268979324707818942931715301075520204340363465001567256031760692433554947639067484925014761426368134444944142150314651846582607057287964297696818263174575128750582665094991835583876718385832958167190176808934667763832998721223612258309671069500962527813059858846994202835245242272156532042488999019827804923705118204368202277518906582032637570415912825657191860622944708560703921650581047968323185097222604299162283966069843333433947181002551841893853379356485380796761271100437298485260849445179470833467576797862173479536993026981743303872625246985688643604695570955173103973197676459576478386139886121362257278272754364039263830826525440051835608106887896616381719331582118230605465593677671541462003933220245779200869148087141683650834648172727967337291411635119942074120075331161338369791084140476787583550372913884683443907931808560528487397617390401102432337979122787640808421477746401436144222657883327619819955672518256735993905132552131517739969169375399774864912323846484157864577115748227758152729064781966041470484554310309074784942988824024739884923146663712534448835586216760123156719427928611972091281786815756879728647780345087956100142588508456356846408403097598661378422183179448141654918727623304202127382143256312791741767204969915234041899661309033525649917043719216309573004956356427893460827946232315862667714193365662693377584457797101493010813088279372397237387482324229758946940036629883358324936690311983236606527117948959918664164661001198578552852487166154307322513959081156566870594910924827456395521667879376111945784633701674310335351162314066451351895455825341891896527117759620422236421238058475239385135282894909718631331629487156173544916323720104347050876396222486981890743273945924590731438652379435342954713497777483295820356768916403740285399279151963971321343433703546468425739887294761303502720302305784577764334381382432828261993550958861418166733987139261059800311071862649394075784588981602941019545586527561487751045661028124169712199911770285953653071912802930631110771371260094419921539401707229824033078679214662490753809634558309402073534089197601915279516967142154328345678445106945753543236905761062736905947353025895580922890556539938854713036790969422396371528974177105983355283952557239470576294593934466144084820169773597400138266895200633412704785273381474927035568863188227598861337579833577563436067706814299141585558443713496506457362613341836269159981059084345416969671343391019565283332966599780986897185109632971487248300093699165503509684552763936188123602542707488527426860603087421228034129383811166988745029015140744983029743282772406057240032414226467274800681836305490327224271580282467097936145131616584095875052551822762096500954082872475788440682831494796606003750150315231701114599347196144614866157110495098177530526335390140931480937980829289769409642034240221389947763999872599997095451492068517038570789884670678264996807183887668361172441803999956254829976333314305556239567900755710205179309415282055070266893091929636021355404632614596786643920247781508027239362048412228729283449416017238056801549425562378264952568691959288676524455760925516828455319525937102550911831876839544845495509897285639690312862625103873294525982967068646998464758974854472582129330384806419263351023948580772225920698379964969339655894470941892320454237912829316714623750483119640963089637330392653797360449342391798059038579651100661817217317607358819593425608713221549456642643704781201194235212758651287005092760916786407374961192382367028842145528091943325906129249084478705480254202228442873710369604315082837731973366921566451670494511302333148375836874283827303085652917851822022955364087814907711357977954397842030633031155102672024005587301428656458871431718885517965326020213753966270652865498218156431847629476258929982746822436778534279375483257773260790511831263207316344186136682717583164495585440793277170631060466628053198296074152858315323983930371439472729426053297515927142739583092677731479168030844541693269419739353764146592918848283945366229463408346275562023971921941759101006314583224864391938191324402900996204623568565240747842948933901635496301543013716127453601109492392629360591904706676781910918497357736545950197651983331768887949046146451093924649062084861115436847077322856331249950043073070135238510951303041317396489949130423824426172913605286035418666672457522412827250733640596491915350977612057562814660784886373402222507155745633297427848045268489337174134520836897322247833081795992231731422305578276068222459769257671918892141530197623966946061428104809950070223558173301193339425654517112927972865310193696076646210419025832820739869644680332501879497130872123516430152081266626123264575685004818584373278222205689615798641758726984577360828479294192948854258260776425319587772989111887249016687574541351106049035678706046286886540853134126491633825855741430684786200297457030017349486367769570763601754727628796813855942233238020533752690279900728286011484398731411528427331661436906161346250575408139426727739667137086454852018451428151718535448995177343821356133760879314310902884565578591126701443080572866104531360791500605318029513887980699962591934591705260405312790563776920025574758962451236707665465069896246137713736009542002757080564564576829541983942042994657951746187223439004335499010817617948404984085160414428499308137142806609718659840415445251793375165026382919999438344730707341336294797315910696432786420077371309317983098916570395886513053919776190707014898483258379659860226009932840446434190396999952555845634105171195143510515202709774260497197151015176088163505535761400321753314428626689326829356268712542765096095882754438094370514769969740459734916501312854513030077452553752183375768181627413390048612331801778463354418627977010474597757966919839573539319777457067699083532743422793698064068509649354825801496309675354461329564426382656705848439228902798823269850968022300614803723916406208307415380782770172075291784289575992843359739162031858272567424961959269400135599074076035712997678658412863144181412211548070620571464618256721999170595225512620977263691702593974742290587437770165474254848568238825736220031372108995857176776133190091578387553338385882212241496833899201678050178831729995561141327607237753200441435031110931709366740706257083161082246158259680674221169356315627710572984097312670830103543320243179519748075659069379166589561984998458459832600570881259200021427901921103413635583441716691603713616179694457814398499240331645423819546449538893940078136366319685298138249795759345893211312419178354273470064157360989301763165728693489609488903891759041864692801337120697681092146370290810893881731748792012634991589593228179117258510219329208535575104286056390346661547221006799878836397387933817543552810597630436021074205562720649995855041658916490549178921607742675234633150234262941985374450446536090488692578861094306603569044334997392598222517322218511140688880840347971150992221484682359036142504297706963205003267854913495326602192671059999725184866710545500501387106031446115872094036200718355659340731809867144756813338886532249163928344797974307163998893509895508416926193253256497151137902663872323579097513634382087106723210843801056988754634959891459972581053550310344226712201494039324085240866057175367893094848332742817860399730223394419654331256538056862452456985665725097301559180869023860149939111806185470065162190459259952285806433475650838423614479857541776111847711056800776175728470185523242782658747292528687538742249556296986098689327998207414968107209515423868039169007498246313385856350778000686562488807073154547228145623972221380125694254876845387994337160828392112616878875864508480316889262243268474110097976609111127099295393268124831352920920809025331622776986352733272371388993611818897093343132361001642678687042728973936223578914372186015099055983553120404646045068130878317109659550462422478618586879529505942389994097894619021050893361072085794873623362699453331254566953881695623476201527827162342434284322563694712113539877501008950065166438853668085226367828249595491012603351860108697741269850409104248375732360610373692063288823981524067070953496228711416760623911910677658875910786732711451908916914378572516664582523783731862515561387027621140244980022471547576832558401904289026299971810577043979262360972981484913704886004735774133380893267802356319292840063957327007356529208706493599943562775595935279848550570690851622051899445205011106635692833536146995373267111075091919738798305123447266952933241242850437172773531976878709373543422924190965076424837683335594317766823220370537246825586589676091913920688717236927991959598911822380431155784978158958089381964970269350219528321684747148325668712570788829437745991595113006440793836165764369394857111342339517793942198509508503068313709391619175201356945229042034116645174972923110345193039107906052481628212519472286394842932627868528561407123971758150154218681159182443293959259259360582497888362374415217738073093008014934682713360389960846002357526268073734754190521343935666652974751313861580521414820697192038974101060273471433403712933238886954968901989274014251514389516992835493590182363751994232085872887932795036734242052869697669007825915353181750501057182508946127559580932581445459360280026344934723443636505469434604936026744188801228026350541222126313715178288560278920108646771385169929876282686533140183164585001072989673439805625199146785458458848906752676573674265467966984488709244265947517822292827685563699701540354728965564623388717799511208353144192650531576155026199415210220826951871714096862432448488018196670997381345897601127598943813445525434923384933581073863069913568990231272747249176794823853294210663912279697025214814387430282444026175239096276415064227196970230545903541091176976148099265102347743887314118915787441920023765195353415170425266545617190078944427841654228117561835089073731692603564131099141067450455893008865744586557160182267338321656710110975823013143356280210124213766846517052548488466193861387232439541490041268286303595285294347977887414761972105849339205332104098988173455347341751477611025860387287851517467129574502428584404083095693757555831344057734799104049763175150437581285527894001456732090139493637356315692693599244453753116133643558889937096355891467011973959689552469980099033735416921585199328968976405738538446202526701885874894562042565256515043762240970644942059308371399052396772837188103518421891858563098731577130344794489188586869476742285021863667850139681789074152993472844176233721376054609606032500369628272395378085516155871410548298491103401728220887210027543530080787293888831984617293575560442998109617850903511415042095718845656401819838739082750083109815812307394871123564276089867491700433015187748939345630100586026118925395399815680729563605611369710978636924280915252959725602809676685366035289694302104116193487484857511238666096033209986950307018425427278834741179787808438162704001894022477207913892206680954515862707629536202487848172779588686670155649393295396342061448553866578429151685441361147177650940559098405628603758096079352883789026351922480386454370448845919924585412762599338428392576876648870869987032972779335990750901964849247978191743270414548417059952291858090861610192816939302185177506956507532727115707185206539683120538343922501853333529097464836767672097667813749983858527056005890719644561315175428202006248394091661572362937826769723952902466027831957027320348928330024285979155114057819292776008874508617844200465987608523507925329001225110459656346376783757016896848373801003798769620166119523532711550986564114106484886436087840852097407082540361359607639139169774183807549085606050764497106617242487800212670375823047596042387530216372659303119205638195506568326117117281124575560834493323278360530229099841204026648965875376699741323124227159970385392709470884156723578001410121102944786002694912213383717954093302835373157774871755045674850269647222869494343305518368951472678810090737933483354508575124371833017116359196133319631854532975413574880537035212079142545945499255050442278492337762294876378311734152539278846592683200476518501418059882340210316163143869302552105154688482696240468860967951630862049060075598455829513473361993874313708073046528247778637257054520663392302137324696020754148751701965965325138877843684529982311031124106668260520561081734201169356693060689019663471079593550094955319361610630481114247946122342495365914083567790384368586635258961074640528303320490546868629983048285871912440413616107090060280826805967761923150202418325702135438526395226596404648652480623701747766160861607593364425728648826606511289070048284369600569322401080289400626641562331854023156880978239900463757419070623415671044867307055155715195274673664261598128727238061959696455963674393245252202347752503019915536694408161801914580758942046116273795435950199778441970450408470366082505105658879049751026935950589830427104775070989230288735036799723791485618355154369352473585074423739400886157477724837285311990691850878044694245344528302575462925658965359319037727385227771401347503394681676245430308275285977612829072570352000294273853656745330423289196040532651896208226530842330953612795794143360980455196339760280214198218291796407963099752943490541142360880226488701554129823133780121106881750245015281401677156815475749846943160383449457050778594347166210876973668478418498604440481537192952829950975093394379031342995073800694439597504578333934128236674027245417824356463104792663569253150299330477376897145497942414266395869905424130844090850171563680312835895737591857929969361488554904988338561827329577327679330381792796591260395881032583048730792636332154228536091571959745270004474745441446226015549367334795446499162504500740048551487455195226783359540992578449968229875925877789225216379954892753804858917731404042380027034794474000883280891526108499600499044776233991553836032009242664581911895035732362035649911847790115301816916344753233936555247740797264342625959092428917969356557234975408455768057626621711366343729893795296766944800632053713929154893515902434152198710199976205939409927508032323151799216527746924258398939448952918565265676334773631326852434983359529405612907559936747516970701539504664398977427484387617078553489263155335758225234541621997747757790672752876282987506146271529551967551998950368848042488690748605681356803119606918296515924503528089841762888891647172740037909605921550730113584669071750860653832572154057236151566481062405263573019372531066692202235475876377559379630008582278753915019472093138419112930793341578323646767899394335190189709493888971130202713824001908845490049654804772261879381070438844955008924025211139911548939704925566104588992024857970860581474395824780878059298161871295709388357015308293708413347296422218331901146162161810117854210417619510766474597360102181812063537909983277583757070998509502123070795184606899998411698660208242098595994710002238251769121004790348836588579886496632334444905935128187319946456658502932431049831707525147856161317023170683584828300904078635606205067726204074175507535506495443668849012560285518624411963587952098055520446034768401151907008957583733603350236950278114780802894561974705885075403998514018680229643744154468111721313193970827843010694360462516775110829420638354347743836833140438282483425621067274244605212259776271929797254117426657045036105538151720701540702721970187623400569594989604302800434947687558916975277746223752410915162412989358225932519545467317233462703032713335279606169104803481982218971200119644748012272768452956610919966271457016994813130263398620795904664951004428673178364586317457331153646107442087158893994982187024342718280999190518916170058256823632074028422586874180594664027277256479821646104730351237976523547168570372684145697203003980205179993268386252667981990503677100489945605004439423917243164676524438700197885621184709698814574124433686797107724919897612947175040372354163973861346557760980442387767962747537980890332607769483172159145727104391451188367933917909597607135340689734282542636089857963273378651271496612777675309293226907493088840628461975422351564437364671464992704502442207091362451782193386350094077420518655463303115124179991810864681593652811842417056876876268278412834742789986848064509917039707492719036386060076030110332504745386342048052980710671600555505012438274241626870572579601437948948849361164949067797573250612115369975603240688639036344588197177807623359224559345872699138834230217700076197490967774841700655617355136132177742422013028697013934078512862449732714308968950976195359373946870602074280772484398633510759970512682128716922769669286507913120322978889894568769078124994415587706092249816002867549349608836543124592153037577594846727350289286241993205131523791098455270310273192117202961516655273419900101992688057097333693104337131834966368930817411256350561976921560176377516849502280383286465416134851282902533129669390645271759684241829147066287844688350018541039730982406887597690442226339074725211083940772837798371232328460692271350453642745542044606856698045923191106413271430685432815012632460965925959360246739929695761589508005398371796063958910494357896408952149351126218054640067637342823944096581799921991403534107205460755980173401551939232303264586625437265556623881576011576841808260934897713957050044113311061198652527227163676600375027432225176756657941326508852163119892179826984987054721039397839012936727473375438954431910771253683415234612403376102938559709252546017831973558893346448413800175990437217243693116329507640864294904687137489664786402643830548940937691925941343682321164023735380943180614793418612330070587679252311088769597554775346406299832631295909691243182018771294574130265893546247705634035721065265720080285790156406499959484983017087417568026778750568764873222949429332874414819384578890947236132446938959266281053345965010413757690358104743256451834628668745255529511061889344659150648269179290173333231230310989465803082796897008716996849387093923506482861386999327709378933551873140712690855988247206661429201496081595144301008926661758994019612847953859088259634423909975535521553203559493821184426798459285747859854138342406125131857746798919692464824449681843741631190214993788859574492838255696131841549457779872326188904339215249316431262391625143567266524657584207041596324456539854634391798421053963392044077580200690758809121877098019689057034256227988719522478387669649403473585227249867494043065967478541048053792930366708842721332945049161716625164479500869906554179439965248366748582617294538132604519673769306482562811539621615551458502338400131734500451101882140390767477125682436231800873410318560236620820095984706888451335536926185801169452813528276587776683554849227584292205687619668888544670092518555350090511924320158636426462773016851219213856833138250638665773887937710905616402965095067798969267258443349283715551536120915735548471212849378777962634573077989340629519966149037853681812659072895824704111413380153267940538687341010549639910335138639164088090069020387675046282346969300748035898379608365687878069767314045071106920994180377175434650808623488065499040065747378365170464239933986259665837000470712798863044772769954957163121065862887103210294336442698232466600373601754010632594054162546169071248220010938521114128193129130156338946214532758612774382697860625725776899978209297365306385641283375544423475023024979963914605030710498592594775268209545238009328328391233788398453884995124277938035160391271524741178189149243658446032407254319764280952279698247753246199014587644278292041590373700326094545202648706689411798834592592494629011907994803755977238536910826198586368259760971371345025225844336022687941798173633408191263844435797338176962850854495474812958668775919410730416734789345202412829061036898169886124659592820663168393313127812579242711212094136656981027019038033279513674707137873683913049701803123077283726128715130345478787552110938508730134743868585731353828672429848962262995298088022893457001925687430079061103911433019603196743960187129932601428185136538962557710205760107339604898542461798873333362124477604586585752090717250527309274839367080652059400900361802045088513110837450461952678949061309492798708950559243247349627444699994591191365568255926014198874468407478140255060978281502501054495201725959512816088699778587055869454891868975443794022129794486126135380878630701287333087724051065220437811157474071099510868293886115165432829253494650964054936097787227318928116248334480382812953668974682579331812650436238838449057091022604550508693396841333649177514907612864778038611734727704542354208862926310818350515192819105688285401876987789870998745035602780194388818034887281225988964150423097519390683135876945071524894878406820503277284681784341623076656521425267291970397901041280464993761809650977102290027010995229138952490962855851250036117752705691218590045489834737558858190592836947551750869342381748795722003372905776542041883889304761527581542992253595820564896838380884787002076036910471460065100576023924045787974905430006339837205795808945550480445021472851573402078654780230014741404925432969714871993048969406830458350559058323981406784671824148086034569918240826896762587529863454058598450115874043106508188136178627220734854692597954997961425733714618298614321497948459873012959117559740884910566174704671821221242349070800821294914530151787765526640641766076611044169476377283624392645158004187486429476285410131655413743362747689613373828793996439804837540148706744241799986584252614497157877178808637899012757070497191618384448007523925723284411937784076289317551363163744040573687965602034856915175647713758481634278452324105188967079044155493793341268815188374089903933103166999663527199431748800472225925810066352556843892486339521846351034739342860269701617064161781177640165698457277431515839812734271350281394041829630459263900439803416725982261722605304597901036468259351221756407850865820365401240993022942638721446082063860511812069245815481119999519225339439160244997150043577572011452785074134519148057275856459615143512205595188055629074417300839396319376303149044721750030040152548894378256645616804062859251767261502848552350838874814440674207518065086034545855348569234112643911925206353301166127249076844394159374719388464484351536049677292999784470103850333966395643346352750988794213588111764438336218750618098177535491784838657656097628995360463030207243060909468060677504725656004615042112206269768477157307068382896573437897333957404150655216801211717314458028312893853557800206475416270682704450988127363648117663782904021982498647534545188835852766832686295274607760382823307364502455983975414267924293711070565467730636365649193251705893109487477059965169378560039553086908836805708518050228135134632616167099014944026218586802215330563540104415119511487897900676480191764401859972292799655482610823590234470769524595661410341372997660331459274802668682321108618832960187248111779281395268275390128402802939417330947878022355842949109833238402383999671421757338557554969895278343039905135931400132545384828801145455165147714847080333797726096211817837714026417382800789900375594418336273491747226877311529440824674746184825159729360855494266073402664618866127223590396986675999615122332802405955910969108952291818262018922080233273000059413169797077298630943765699734074048899974095256876452246821059163595409711271027089063246444989332885964892825438595531819819959815737967448137222216812116699351758266350039946157651422677611697664385419444121545885199582446723129000565512378728017668825009879846655679107385562644575382047986430590318994903958913779386831541614857698151863233065835347537635912702922575970213177244845790507741797776001722980390783280858260835560570573900416064930951944657703157514403291208838043943035087384929959240214332267714453966560461199297792572536723737571589336876157839429642622842730349510537892833402351297097888201546101730094886481240391875259710734876951700232660793320954094485298996893332945584499908660056196655310042189571518458216119604551474739420066264159596679726676134142301715968226112030779125394815219378679497879134631657288481265925389046748356532602025743127058278673660873014719415465917382670746101270743618827407101311146137048851824081973230827580015422190608794919751585389905435714559636765179832691481041515614186829690676496934625406367782281687249537313124857368604619824378381318100351886070530193927252509544878313856491186216765149880820325754742063933302385302282204137696018713493245156952241375087951958522120013347506374513760571757063551475597641883135586363955046285334046964773820965311653376679182394391554536302341501633543750182887978848915244828012280062244921326303441730687441846010350021144589730115147793882759029942370137177508601449333924354157103399745222985055936645050008767413383109752297075810872652597283754455801555743516311977382411134895249217054142020026210638231573987478073984538044676904899298393096746988916688906152446373530259829751166463973322371259748359327098203077825988745215238852931842779503312756374659775196433682340522327914743734981204858647647969428713203557982399373629339415489133577966286052433736152036136433176414712459030262851399756963494375008481153895164436086411648617356831434708458384372226517637462999732866802811818730069997366447219360210324941515447387898108185031603677494880471070548357049071761444149430885966471192818991367412249190167167517652368246763296979672813539168575905281754777824144836673103490129065732265909046095660622190874018019286629986621922265909446936912553358927516350585746224260947325453426400995074785697750914177413889580363115276023285319577997824411029816994854692399970326171916740662168058771487600161294868756496379801095760799819785676759667529959096473746881273949846973518639370736338115057893235996202787767206111921820312720996628460209530293766790870122489078234046989503322904887541149105192905085969772204865107315277799169730180321737944661678715816391782116960487239104703097634022394073210309140611988786281745419962603501149582160691570815264496312913001048705438491221488897275790476059356055171187219662090519538937945799894552526437754244385849098132761217782581763508324670729257948143254916417944436570181772530184431785270058435026958534902112981276444991909909910849178529338962710420944231849844967786100796730995461800362683168688539377824860285518988638657329881361542076248804174921837111003473827362715682609998374903705196106194219668505902885214169508029966199743697859719176056103662575924541083911361953382176163723072868407352741061528341493190690967846302562371330638576325938731847818842621531245179637079360278766913353378838230073787343772227109436583833881026621560294364266528626176610058287913063925588561711803592288443252803514363901656882703495125994798680449679950852984135985917135433920031430410707530730591139640597372147430676801814093135840124159566832494154885666146489240606343107971912054930013165952801381265254111759114802223049241703294635428432985686771387214303262790100323425312410802527273167612493531236788845625269545592486164170534825558692069455019757481939060308935780323871279150350803913144151639932582634777779481356333096332173999833971420887705314788504064391112782129559828742555449749976668155992945349863251282485068857922063854207123397701595584805628551070433779284825795098664191315699064419303498307445808841389965504020635234591902082176926110248136200288017766169622440100390034802548023340910382250535848511706959873468423838403834648553049599583925683796447731837157218683572409468154631108804387377847405718436207670566407795800450907677075928499359678475809792934867000469478179029971976434180879704658430980748262431212170919666768250952241295690983704790858710997236957642437395692788138563839089977939288552027341932909699102009025200378320895091402391283847626241300620304053730340793216851879591135234364161899009149875866351889447592037618038133575157482849491269566668315627960759583488490377794101810399865094587940395487694739640620135543660413368348465439716623158438458675942067458892696385639600431040351317167829721887725244820501715278967304983220322926521958642302266405833064858714317518047208856709132346125886004328156857182816771239345581155364882998565666122735507788866584877076469989284209802590329857560277609750522782224495340943138682614014274852317101944817556001465549201548027596446736957317064265738609898196839433742781866280362904455858985812918384413919988423770966778217478693019801033005649936925144732546486675212071047233481693166911942277688235210123487278934562504853908574054535720708281359936114424679433518149928727081728990443613653501156992906556033357694202770808428038234892362242594557910232842316987926382214886354536183688938382872077629862932398700161975694133528150217032796714390205621052649861126640673196922848007891239668756520945534241977666729189014441649030882650187174653422459245972628193919428555057458435610359906422792384348462239799953166709067328633758376247511221599334867820076085819177658938922227945221215668176496763005015483846256545589297977080148824803177803956659941950701184277365820300813644504758279823397338790181353447453757612138423907721853789149000058731990270280464070899301406131821811502592713663760626114898254662605984852277778969095665657955284671890073616175704393060804181831825988140457303452847664660984404487111732616082195153659831812417670028965844351312556491487772567428894404966605530870808834824993026267657484270662903905237825029700282329279614146314588845039641117810357118892094678299512153018023425145131418227830411598757826623092997173257143103869828506786440848028526603557013964696091967181822897339506292588549646167996082934884237208462334071404734697116327217924445497697914991523559980092029698314037352041007342141505815818469874862596633638099174505568657163133548252392061820427211205983731242510844425496486879969260208466411906890867035627267548116414690373551071263404301595067232475224686506866148717179560293285477043082002027271291229068039470852805317332124297720101432229598193663774544415180084763759520761997096280347837701701928581759681417464568519676607351822813408113653534519964665790257257893303559997231414293771328274360405161450053484091481516251834146374667078712343303851186541948405245744178415234614861624609766832605585682444441131122338650513333685590353221286010271673504391830457660474465631511204796172362243358691494235078530622324823892485819356904108222530010005326359991840396654225576592585548626182424037179596678861890560502577015990365603409192289677352297806422861613014721170373452662595204060830778364478184220335339646897147073818411147395058997390210240756287983459163840979460750810745389515422539409719929970245054179143101932845607324986288303167465626441444341732385849933084956636045211112257568301427894175258601241168425958354895532715178223759764527375798136689356858747122128362918199460639882695391959308570200806963139210374437665083515896634588972588180104979197552012026087243838653786629068147552393700201570719735516005470210567426960563081691328676411254955260493357131239325290827177975321609349309033090068037277540332026050904818914964301734289443496897764753230755431055436621310256884700016089828634865586478494501810691477255843698076421599918565054411298880872136073638799618214047135830667638490282226765249715071247824269791894977170396644379805692589705846762584614022308727384590655359582134839801300960812667351364683373057369530883806150263142508888615589456235404781699429332153125214115177077479994482929680214219032576505644675725616079318733667905342555210917169910244998086210810949568935800625034924313238801715540119096220924550215598550536833771795816573967383429808453405734471108755506943315337741327870191208457910255428306536670879100901900794064853875471741370961033782926444276717587385963768668346827000530255010189078724411246830293548517789256246734150454762674272025573182440043769341767897004052819412138451345908292572562134718250140792234134736257306561269361772550823325082164286904699776075278295018046280010900193641242303332435681486597755887905459721569513016073236942601659370958327350795613305621064286686604571896327772455831906530692057942807194488464317831119174170084049121942854125823840527577731292213622442136094377951370246216050634156429360650922694520246787916805161982566996465518462189889896633288653633795277689398056318406983524039358485385542386123333033664034623676565652302578439188393391046760593615663102449605824909279323020336529256698230856049062829660528224512614553148254803678939965767675858231889563140343589170187907865998239459395686732385618100437027009866676425323104618210548605287296293085131691554841976269681342737368587265902334498495869844830038503284333489223215542762253193435857709915078962075829808420490197762646837273478175515997967120741675686659350257368353821876906483141277284379066840551225428209799011042093817638432833773501786606938231876705784995501934526698066775068397808700624841096022456780642827320101242199980884101718665587717728561199032278766893228840815830173235040797919828860755772611487508727273163323881395951276193593073597349224531251366861342573549768120344499242428342730111655992895255722744201781205657173827231027454079774884158483512152922307828458583538749899696830114451760695264809435660802472399044543181523365011118043907419119991936524718353088464166190363267538578681721902417426983195296605364234418413249246887491683289110897574469390723682393052564169688971759608426191416778646559625679208677020624815724355954740158892245607358227355457089728315830647369416420281090772787023792012007659234628637602388410846311211595175019994352472427176676645621332988099810687000010391470173144086207080094994696410081731079605750775176923520614104928266275997226773496473834575251214117607849445002123676317832295117966321998880166232610400337983861729014208486838541487426957960239564184670812124343601180898262086658446430097741195546501376324729275021960437023282654005288691075811650028228145062569347766345203550393091224799372833151518231736611519655986382266387470440071361907179401724766605133647098983151244926418053679810863512148113930414149230972484293519002207627914821063398796420570450507376375063577140448798107446058797214421109229401968545090469958622635343898141668842236824078158802561871155810947869153762611593437925124816129907807161796805745636764422702114584150801830163838011654206056519929350718941798011861321605047607248042700589801072883125047628259261243930218310046485193132304471845750139603624550383308076677012448162489376764477296417279841211847475032649195700971280124636174780284260273329777566102485551730665507957740016604573381527559456577634823985726674706912911884867782742761705645471871782360009303866188788315702032009800284453257585737560699177332959843666173342387133499316604193875825130043085418854916221328750993358794387357935899921673014878440942721361262875891855257937135755687079556612124344559754880067968824052552502120662551809632217040343820500284596691328796169776094586623699629162973121845272113223137424541173462482760299562226885025179007718957053502062868450122040780206298879898862230715117571425296976351931796158383154060152044390875434675970215328142921403696474626205150253480080471097752328715548344259301569076099942379212982903526901843127164275094287810013893098007657955672999665377155314764794290352246880775162979250476972395356038000914512516552678298513683000403402451979593216706695710045935223730559437718176903922849991444531960182285809279997905063241109944182276962400037166375903060615622476229370189457863790697628150202719746278874641397592855652020288576620272224747263056734965358097852014515108458405192425298155110022240496646578215668557821325990712809757519415503407480528271855661642831847662816252261837050083304211154233647145374982848059802507540156461345913908915469105513119506843255163607114875457883861476258739907486156998194225593186356253970323311848542679746188905424387985899410431547200598409141378669614045353670235040915451066187116421966614520313198907285742860015273330137771687191846459309890683152161762254127012000992611103529094596883083967028607267078374529799480907416094830307012052163701664928726646652268164506989697652934279901773557184806606576098930831502692274727125253992788664014046212855179441022919857028793675221066637738867391386814246889358693501277492073069971123262894721959379094192974965108365985941170582698689783450264012888158861578282234832834781618990556304714818768192585236576704255915757845896355452596816527280293808581304067899178987897038184364378224822742746586182859402852540364843989456565895461857523391155828216859046525080739583687767727062826627078653937761890958053877382618563451269517659867118707024888343314705099670973809740216955969229987271893299861918642718115076451773409795714681001454485344846326475694792607533321804110202191515851024988853713672604090168929256101764507194995342841903751741878034624785981164620963621671790216201533446225248312689966447936840579997108290784835835257556317099045957177387879553953774329018656148527172716627402934594464002289711909008664072045911249546632660929709342677712866515786809808095839201824323142803856135269375459908436757053817982035669679682666269568899251132416224128266054365367960041304867997854429363062879721886128181543967323174775805095235764616891585843814892795844368738760688512462608007156722102890493638268786644124498742325450190993859226977234288804134259524182416520686318502028756069105739764239868279500758519332499011653874741743442343452923179812608469787807596058069048065244296614743996022809352204491307744736854719854991739472044418698778257118419118718745937195925710217572630871928590629893064714068146102999919951665841208342328872254216855585501841050668472899565609788042021050274325647584204069897453146435562852014441426770204008223001140980118497523773228772958994177694245413122664308464880673806777212022648678632591069120169172929043246555457698690725823431637614652989321452412442375300845239488105771252189399464141906665465973132940159150821910354682192332389483930454373967853805525326475018976505304157335667557876668635044699595714101800803514871393142965358886065379579165691878263634906388158852983587481968034455648878529720295356686605897300731302705588327093192022532666494540720347417679229061760416564471331162993694582476825121782983254328027363929846935878495990158370410594983900172414288461618330660998971390930041794862333481988638741766862043577374480213888582491733765988667966626903334309903684611686805160377299140953205056257737211040548411776704927977279720252414602044220909964839384802628620372456580160189602881648850417927412065397613546883258891871660705993317103818119544646604105798758975669914057000602504951266705177472345346989565418855640841433034492999085037926280497840220434959115876323394633766669662803014058015440656432109117168908270704825551778200640347864506513433803964873733839723256568691114238326831787415677390040230806041839736138085290517404747385782482105027799371041168588950893055420905304482210855723339498035482897635803776522849963550094553023938759159326560750601525806744075471913285151516962190275946790891300825226795596661104140691758649473408912724203895081736572014450145277379709840459651934989031857144824836664942766462677654785811949301910422947883694360249897350901297380739912129201066895306955455795032259509123661522969380772277861004482992828112646365924574409748994496037635445841464169998505614556367838973977844149596956119714138264682392648832044349085349693747536099753035779960123441975682097680475697378018649171163148916988994376674344655554803073472305087573576983258967999114860942118699544746997791686546139055065676813150889466352179042323995365093670956120923691063639003013909112570829630276518520554585847691447023971585131550826724057061160790422293975140512680457351817652039736285866548348510252618359352698381995141428183282003400159089071158346946362923486491134350797591628399955849924010329003634846531664026137491219186135314626711707240206381395189574883032435160932922730806660270680159589046577722316338657160858871797827845064250358590177850802782542787815131573227215534505492736767223003421855228528128514215007680321140023075797876646524658817837810964126257718715871813686862195101140410374681011032404818229936082195795550328737206221179003483910864567604580270803149222247349235291629759005621266903346055610823334685804719487540259580205008723848709281479930878851232225603655910566331656791671619376824483925050536104963402962728362014085029465449867959048725843929059367793438500463755409421549852140096949300650087413754675852972496503020960334052117141797569580688594344278295029473258812720946591159457388556738938458600841351091027617962959863871508789171885730301603993763506119701561098756404256934149931954585932635412641727461165040352633732122477675272492705168383318373169919086982574082913160516706892084896530488526520784848980825143876001737084542666977281654764827574856454094077297937469434876449876239744729816879789088229030930122332953047763933583883739290546909005432714444148809272254683583136802228002455990316174923923548056631766916776112471277690411568414088874523540253618176936671397745308967814826834347622617694390186560510326807287089434121576421095097065862568849167222652107433053247280566936532803348620069456426698773410147002001913967486398227922280195844279118023905565982115555199681864233915830206087897681673486495370672854626303651403356112502966200356352868341665378906118071920387630605120644670487601290836852851554247443401910453967207925087285400920925716295314992887469532468771077238699153569131985098524928039123050423378459806114200921724311582158239042633524240072170574580914032966092694017055338668673662065032002366623246985396827554051709598867537018934272890278401815585608471472812577993461623310627719943282119209132848921484658854648046160001959416001224212539934712339062597370114025729732609384116523705922558955929737415346986253099121381324217172830147487334942202630776487006974193817633269176549867695775386105150358238328094062629479215962857719861540858391310241568208392920798792384767884786272786347262203561859467755798429558291201615695789542980213832983260069724336211891644755482165034248061766877023481599735860032757487853352714380207142857856029742108246409550221330908653331342270792140529503001597281924617328834572585318996769118276718235379928814457702659020607760976588127153777427166123268908110836024756833339627215491804618009304303963818096132876118825003323006918110227910572954157462850229844254144767230797841472763403756231198092509787923861482921623781599192978080252866492057922922629694619202350824607962309626410771598189405682983212540456236053468087367677846366014146657723710510737627745055488087395005470088069503441408822673290500420133576550591851717518447909606847337400582184113772454200794983443867807923523583915614556022721106145491302952621466960110279464357622590632842977604766431986613200950422887574721728445282705967057390032098194603431508586771991596418119566978488150474876137654670673759100881448373213481751612226818059387913332069022810152789327143198811358517045174658373096371516540118070686922941779058064902155410019718345247369552501871955743908599172789701397972236448542030913345276417584211318820208269558327169373629146623769369011240441315429735711998478742346270134080082702616943579885843709920810502619588002257983135204928937886054783164870576956084422394638152338521377953436103768362055400313677999062315659545577300894583122067955520708812081225039083043617897348486685162839429426263168910729545010959655231890783316587212053026256022005976804544010223046048410769863083383848176185301774873967233626153065595598575725531833065712148274828105266386798310096270321356552896027782585264392290086803521514450157194342047984201167259406145983588932823497558768927977742124238824113521733419725254552065749300845216509676003227858904976559638181179838517067797918096907545362278552146538965877029232460317880872372596412783993274605259032820339904351631930887187077144078922158832343356529426560549823708471924414610984778966721034369547875484527434632820355723572496466510290133480998235779889617238685812294913882156826711279927922391726466940252109722987588193834678462674840728369547438214258813045221121815460764626491795308228289035588449414203498791396195386330260173563097899289529538870030201377590639206018045616848967366878467447157880631033556380190209895377079076097552465841766404580260970371397223601310447009549205607633221366123694168261900708205636270950267318798402441331543801645660083900114592952218543339391757659886458213212302326685107604101070504315125110966728090756190215075696306006723998149935888470869126204300032448738127927815103513707737154054674821909406241939165131917440446621848575462638664330091263338727682921463283503088727747554336721367052506160467265150705976340821617139191438057784160145519462072717061093395329860731829118544492126474480726257707571088938798369811857562877656103755784042546424949601663516547102329104262860226058188216462735851773498758642797221099054700470170664618820175780152512471408592512405235384063538722527949012525559895689557273642796879523660376090282904741396982638990672732473231005269580948062772189206826362954282060456591953254231599877812314298236473144418199599044967726487425634324042507118915238656294436614864000454091877100204812211337256785899392746692368241952036548239531722547933785859090962028679382718523016655885556757440890907244570852138332472797488566666779180839235804654033539140225553302214784411988066137926239007373701167703601692980561916373520793250860350234649632123659950117461553436430150484887424388346669183972673711274300755524589233012469945744245836629515659154493403836671936770526416625121295793538245278110544917664211183656173517595567553149351623205778943907128545681800240993632696595823170702592572560940825235497577568339726023047209790156307779780704050007943377878493431945078148855939175852889992482555813203318108289776243533897140126781091527297239617098948103563131008380431515102213739402002065488121608520328511601249050094768189761085662787769832118545730800025435955440911802763949565313050211326720050865149720468787035177764220012810917427248278483903235105624715823762777022168868966209124094403258202429586789882898570281409405486340517879387885846682885048077467373032749694125869593398655214502666301622737024572260570121958772585851148933482847030866272093119523196781723058942262263309731538263891925916520812616002918053082117754416596644969677251317412708659741931699916296223990455069424749545821325389944538570902111800585335566499272766188905126255329255953293461507944586602375712538203396609473278223672911044927793509603645341056188717397787770902271374645069401883205213501664819981348532103606779333561254436069064566515890363775331354212233592286540861721067106401710183757316877902149888899432466495087075925065347579755548445738853660566227704072934748897227214155979373049696600739892165226902718758125924540732424952495258131865265638690343257024086850482939974530422335264073744657781702294020465025962236959024176075824705592728665083231043077703574253096743795552589179582992930239060612845500231094267793672735413478789057506847587499938607619169912415858978609057094194941271400306767106482054541704998777702915517416392223365776939055365319420785963698335333072849603070966603900910512542616861614784389264124865896130493224765494510687626069638376710557333538451626363422971302836291882136696869226537779455788308404890668646930963099939160095311830414199059096114952866016870206840568001646457745473569876281599720765845442381244200838310177645473013535237189885195377105703331154189961919448986039548480126164966787488832237677650188624459323513315911388053245995432344869085631080483260567982627608828282749458662341013985308468473790825277275488071011875804580751666517248198565336313710267348020553457495369219654216488275419339889324775751998792823866571412595837144208397264725817759350442499756423937068382172162250518184142133410666073649768857164803021920671366040230464919548927126095499441076782927068698550597993602650319397238084643771457266018919148224098531892207548804801046835158465221862920224172479231040849414883347688433992980907783086355318552375199726680821716870064609452086975017294678887562794466216485421349836718830688961118079922081111645185604444667408006341773539996855719428338426235870842167876506037282987310638008221498478020015112776729000421708759375947733739143650532048086509291795059040790886307421108351862227979544467156783051194130535575613056515909318329510828872747559439519109436234593069373977614479666671675653683340829232780356133618405415120135950621439622449540865963601577481722824788805185178331203688044464301561358970416866617294598173281407548608101037188646608030230015873240563492078644255392075029788219888141036438393993398486621706334637157506301848141025323462404069158842331439888149345345623627790243170965809035761213881702161754526467890731878966023346253776207548263799976643442957105535074117848773272640462857553168589679569592269153566219205206767727731329120500303660634036870663010151034024925111494279985786329355274637221522718693687942931643690898218250578517221096061212143567768864977550719793378899597317298873740608796660128577365914984777450292646215914488695060050184318827202325890161489683254325582120997343018668287945664521176307208436846866657054631053372346129587447376084809849259289279615735819513293360851322881872286167848318974173312954335533806266990172458151476844958066781262885813932135788831213463414609805543517506290221350175770855118930186740093730990729828721409074466265183826465311055257928565091145267067101317452758346149959476023783101535270175470459797967224550095569441385458845725272129555599409151667690119633370385635156924619217205111467266750941809894755618775610655212932415069989852160640178687798641823218252773141236540020941866282103813303538238392004453578937223406373341853820323265807872733732377363452139742320586649336100051796744179426031189546874396426621079467485161120686810912910424356741705621219822716027002999193892714094675493029216403831840431513106047923548806362048156315032598505423859786113924484450350953301923334991510210176383732060932395963354566423436062934628074651771551048024721888446202672083379671338115277151262541997434460954265005386576136484046992865923861827495146276930822180733137977111418563456977348921620977512288767512656513385927705882058581072240060607825215758459787862174326173313964537627798548820505921749991710096267286502965264177880462560667026588682518301487083018704483918682551938857828245658680146241467332976204918907635124563028263413100405232092126348079190963168524818147664759033991146173155838507376003130613123340255038806023171323789487011985493800189968065539345994477468712518988183805361286279886945029097778820450084886248328751455721838879160853167114587323631340874252962541494543247582483139228618512279595096192390509048665484533368258471141151176038324318055063912684403966379217075579994545338319702051143266879333620715081411358704861981938192904799477795191698610659436882307439601338234271757684126768416260631897152913076780222420615257026869624565625411463291850042513281362345074569600994675294802136567833050538310150275697628837581078126096986397715980047355293603278068709363331124024218660989808175828525218263081446243195164084668891906347463892190939717789692548951540367704792227056343700600887380927800222936241556447209627628681689990920031839325647923077829857533073530805532283642606772773937877360024999205604228720524149871053126362741739350647665739580839965140729651549430295149848821483429466756027814682633126306081233903956771546212880554526956299803639189632528163996688019044170115077372473146912115112449772281266456521080799385765213437294779478321137281321236218796382062656331569345610924566493773194815662883732447687987074681995681134650496632625162891137918848603494985009309843473770327763437329737706181332102768617118731266422395281913671600831343986038218022444413000569439071171248304454591973854402370317885396395369617901597023201088813982671555052387181795974069392215800286544025087577005932227953162021397494844917786368484486033097880788567155074992072341253621567600634412655731868008350734003463258894011305387594903839195321628319139631328159950775667866508521378062200521435908307687775325843278398430805730072163974628493555414599220648989818569361724250412900720568063178976957429070607433974238289434866037596306745866252803609300718528100776107128853893468658167316746228662753135923792069766475708229308931223938591167656893114507859970044922287985795130674082212163687371283935362938932552840069526641025168020210569094725906005490568972748797903949229300808837811038824008510332429209710623325829412973195141110094868952840864910795348761397619410618041629802467216292842944724983313539423937343736318332097540872355277502874783455071647949072510518292079778127657500151680184687240491099393277451360745982930696828141434269807696694564045732466095686794237595208625864520200199411589478114972765684525487738102751395160799288739554895089942030559387365205228169276308700473426329729013583225582898574901320899858131538110966756107972750530242115034714217131819845684332410876869336246056894628489667866472964892475623712912432936115714979633814601846732585403648748680434160839539342031149187748760195210860610630760463591459330983458750053609508126095187566011359183855818747391360038254704905126338644433796624967420364218660166918114397709593725178880672293672855842084651816477929858708291196506092513591906431231067679490933766538860239091951367879562872413378617094099622444876108790249695420559645294738534908638474143248613274239940033748161184085191722528654691493257798816220809377951615472177588538451242530845979673891855586237277313767376661721932979449164726687790403094111739758248182506370300770006997801625591644166286801328579265048531051345353427314528716747551531121139002540214937553647314326485894641680743332158193806419533147522258072753406805990543250807681558659100176221481105105534344462081019305843455884166334747023853241710075813892834412513887515654716497249277180355844536640558420348933856346728836896330984964865398694912528694246541864678756912794140728754194302515433582842073967306327496672959766839705520184213195382305118152692977375496489471466493777141586006407132162132972181829976723501479934156289339697090727762963175163176778093490733021999477984065412217374244727251699013126695522374686803375116738973444713813027950072929471530770532916063810531806283244462975076092987146909657726939646558088097005908519997697861960823102162565879486131113799282706295670367691219474828722546635495732717220673977304620352053009546301398894609163855880440741481617395625144218548191803492018720665405161399908009065964469884935732978350908876756987078337240725012873165427339181281152327104966737150839506740581183615166750172500048603841089362896960812846075442684677709404088267927480764974904074236427932379147806367842557526750132695338185064806605871418519874318033480685663869396995959805226334016955794548205549845197222401402714196588672235075668160718930072319564699672849601717479435367335932538516215468748822581890669029356239244476576558991800952037971573586231861701536694939494085796841932941775322818819261559317284730351826337513318438980931683417201508354204053357844762616791332154542719113510990723964353163285354144793580376479108588256561530807428995337462616296286071055862859531645800275637440089693673732505842669123889236932354025149073460539889628471928222969414515519385139738772909224404301128236598359974127931522655319551557498381930510533716434504124890982178952660258266721994947837447785124635256806109874921170474916980704799300320164733715281563970264788943679837337603341550718700341967368440924021538674480206168228573383838310155692392758109505641323887200061398767355977155138063469273480433716077982080607435511545776656884175468921522382330539830067448726075973251947563456569706252311673544776764104022510883986984237578846635437275573636165556194876244664480959844756677158455525993471301506028233709448040634299668831869241427875099305657731430682408270129910860789894608396864672626632658291614767927562429339764980361836967587033134281615995622821278038814320547264549791208656728387627916073142059736798031861422291336081444373451634208608854117836490813877882383558382105355147162732188699667861980736980242568756273563071325300512552870760388222532726438935355587062368204664545257857072986693087686859036457726804224932012676631134795156072134044650803022099195445508019297100029959584574670492221839145964357012490564156083779753773555777821610284737101601830256568687819922355987286927317802632434161186815692381716592251485649377291414210374087439784887490887931206982478604943541385266150440934526458400553053472726420736807657122229614499581519484422370394240667296087565804246282921875530010742169087755360749729539747593036250836869780924776418616898658882674149360917419486044769080260361750293659770676867770282559930408839138360630099030963598462362978914626320652245218772412177753794952593805556827978250754469307078068636440202805431851816478804632143916034595811545745895672943325883542131560747402238452566772420433428326373209717762985296447303748855229939946302747644779474699101451651902167153208497561520411662834973535291343171276423730284375232951270680765131547138696003115724668003930337726777185539440368993295423411722227531500282804653864209352966510720131041796035172601576898608951618731582465117350693329410454774542154624152663354005662392811556762972635174886633302866172159202038557024309873811809895832399577130525096807623142080102745169345781574507310695025271315385386561985524092962880610319439553572390092580771039634406814165563439287479849413395827894535858250188415449600899728176369131796985383249487940934408699230488253798635029332729088559895798581916024108927723295880993266163119020056591701303577899213556359774782634700581997279228564325783494530869018723611992872063732084606516281625787189079585181394062834750697625628553846585309126472641664919901465982760033807402776082254410788523749516750677145122996868929175775764031475138086796477312459501779770662323301284511841340452022974011976526524429576056771262610233812668143561025027118717779138977145485716269632903438426151187410248792054619818023396521446460633363373243731621356431419726596798179418568679449451726544060016086405718167529268707384615008937380096920385012110412145569719639362263101449630112820034973640702318314996449903488385758965876550827393051002383570091304135939962224788518727440888839763961567169747596109239290048589574159167589905884200163916712040275588443845252962817644918287554981267934499404502441615049144431445519735457292072250939222139686848988665397869055887468562901767726675435943780465814081074647163451705040372656475252259642337198291838559398112514148516422843365093682164311354403770312990706859928490682331380667788208408007972645208559098509097319021275339813854114243483225869388870754142712306577146083939750841785654610538086669589682823884388024346078487098011362065772016284793803285645295847967741093205012507784463690075111727866803882344913544438569635631909965530414103961289635799924859477299101287569686404624480055817477694708121725822689461262436194507082447341060331655447837338408786234776552588940961195334303051308874074634369089378960758257826197499528996098737205153089547699408551605670327607437046042867464715839296874403041209635167693916674257691342694692636581262258750072176795576207345319659902756007694868666045188374809659374929570562232060601229138020695651538127190388140497773996316929265803256626090194960743049961311785434980899134945919264023810978630581055163443263637838821437912740794365523231139725252298006978336619039423457432493777138968469390969446196863443100397684412353470897610170679579198228103684698175442004393763038004170328159564585136285824923568671576160130454611697484814861284842526728934420699120640726317501336282142106172521479746941537595106719461483782601302740251895392085004659228826568416869986703746715689853018949856168546280657018461919970284880921306101049033331863905253933698519276369044716984852946830069601963458624106405092274811144681204582552288468559606532574784625098298798259466589667171566010076059728637066434140469534178766304251170258624672629970628618000145143712617284925387922475173485661170950075651488600506396019508323451124251011760936705552592220440014211484633634519296296818165083822885014006356259288321784032646558941392727595395494754211604646138503876615909389350166129128131000070282750076170706767575107290614983546463174629513485872486376923700395312684498724102699046504521229254579622005875774762865163289093871791042986486410239514686312876050455858408272728801137402148246946817376036821399519844908657778262248782576611209801957309328808866706148743231573921236230374213131165961715694967223574616305245431233267517603610778060679442474126796137369377285413696450296971004312876715998840906835477658533264349961985822952380587849061465839107231565963905087736199806829852563619377864883463915183946792725321004449779927416008225815968122339121597688215086519194865251689734913686047949942468102794248477844306996062883180181322187737898746951768289650464549619876753546916845888156524656588046480357848286281399297227063742278935916765540316219763547922933627040150676536419382511703650973320831291085754313712707880693405433536093943759711224227012287456080333950246615699298289842598465049531150529062390289068342776560113816084063300362510275677997301512183975764586937148762189101638061455436230526575082309219336650298203744878362165601040362602920769797821829710355359542046806179838400616563883780719098214956890993339907292737327345590835192264244931531438086693613114399260228981297416394466915027307463260267808476663280769527814136080855538931210667905164447783485956654556276008850619216219349115464110981995462366946682826354786819988023328019686570934858871014301084162306881393111032558939201947643463701412411995535520577210135485159159925944937304048863100926796287138898994003305419094662605136709242895962095822435642532910692338131287366990487116830011926551838326915702590429008005057154173318843002998614847304165783491644095022302304150574810354458892555657165900486948296719891938670315537752053805141623973138453913441014758248865565054108839860384815372496318028462334193166523165821071209332150342060147896229786815676906172486000807618980108993371075625254704143749472563282653507120929601005707115072458504122798276506582282588065281620256587576613594479324467553843289275421746969752778444253888715453059169670176181630764240716551161641328339967540214745442321463619859223852245410861432760582995776455015247601870022618357738632615676554651002464517714215468517012504798697251068560393409968248986748553868938649643572191543794187858413068221593633117825823576326474387345146617893143191195303748524663188734939849725539816252722058207950268506265591178461568374121804747203249720872306108245703944277105723122873591609241920030690184335199802393163215775215245411794647604563402762226359622349898574493014194345775735815327516703398289185038568730184261129064023225598075662333688930951805851072494885790375228912899993855098842729712600056600231226719864484653886302989665345716362774184884934870603802846636125928806865368131081858375037556502076456858164192723905835579580272181773627474736130624666308821377658458798513834954365951986727891552037042868811601482756794352476378090344939475529481236379147628837849707147253104033780050461128973584964302631071317243062562767515620039856160082160019136726050524001579472970356900577570563672038933247008711664448035019379125811846525062813551565695743951192237243054323333841759807966378893344815861548089637994521753364252160046496029268850285102667498342442785066183888943795607526872779419150679088399779140895957553511539437703773792215691252869532648678275504337669337660414267658877749527558912282915372431669384528444193579714190358090035924914826520916831304564371111005280597932012823822790025077828772730607059250065644816089711705452185878014899493480509183981543545912909646547959962284830102231666638262476267385369579410048964857918508833395765168795742806783262582243495706528577957248502007644339517904647237546977892781362205422754318777441941137339975516331703850989665324009037175036712819628214690333888799866122264293799887441855951493429208430829609985659193252060655064348143135359782469417920540113723911329396163279717306209982780678512849739668885604730342238260056824954607405952081729740644304090949819082008911364841773730589168459312917790737230324410922102285349240644539220432493347434262407821279690208144389638184696433002263408625980189427945191729312770506297019531827411820272099874482361133318780536421340052994330065133848786445336892268627274010857246010512333995188517802870641847695600159718317027322630233315348012109451900793785840712327626519674114178501105104973559682920045999459485175503681671388733143372592413191064982812322172422262512677551759883880910991732616570938851231955183685575965804947116497103177184885695843101528355690929879249711362205467377753027023731166081855802111789709543379561821191255181871956545188407943359631460457553662364500212217682852815563948319663486591099982111889868393292421081794965244757289480031303888876795054360040484918607643599580437838851812700694981580391544524471473524947767251318236586027709980028205722477546483681594212396144216839096701706323496192473958724023705139118621488772944766664397175888811008726865638998472481282208567791389553520605728538875964146759579075432055725395496911731712734639118774302383850513875452941794080605468863362425065229799193061864057334781651538568055866807971601044314162502078651758549866299289535255641250988418916554409506244393855427568109979469658407074165646510381180004644238159334172438652215535631650289095278432710609294258961908802037340374738042339359830874415304258305133978356484448640450834049376654365450205535919395765586087812548084450918751156630446453739110720695906263993350422572562265738921992424152597842645356178639109790283776776498816464968864045065821464215936345890330350338379939802667643532619075053733793764343369951113257787217590229056969620155561945550184237604236138917224335387152005711431230908573507989879801995338042317936621221961196541756925874843628574254105474425077706031956974657679121143871671456040576922887691111402509769717808332397246603327897470554068125515003658997920565288993618146324422753777884304361866328068432613485159517392845419472432796490116425912752017505225297804189086134115447738523528971536746121697585028680726223540212318335670604654255988012677381115931420666108681849281651916152912545156333835011076118312480632272218109194033457867622643561823656374991391890770367013345251490571124702019777997396476720159347015953115819286243418633819841763310259798856365722738678039053129956426273610922384022938488117739539217891063457121524387855593501539470464624622403462195251473350027016084997498506230459725676116996788644734049492617207162948828795463184370155040622844102872115032057668905538094575599978312519999082939116004221085779715748247361947280962795980010446970752106413191786494786749460258430836097627275516870113292471916534530497983959030134290096099699811196777559548011170679892023843018827696395201095669777716694503533533383393528068631572109605463236427002826704525671815031518386044965473644181786073104810230527616098847245686337888022486625372814172995436717490760370623662056814709335730547195732339979784528968274869486090668399563269450904757158441296431208733146196293696712851965209679916382311935690691933391586690613013009459435079509023442037233429934835819066729951614282499153063599320348220436489077195677945209669542787225223466072456693761518382010618253618015293552418225059175128696602607631954457254189122214484172309174913217411798312180864379613323516949656845243398516285863659061646700199522546778446181889497496900404690371825952148751691703043968012668004209724101194962813818621645956492022415187586726081994312119429503358706852775795725724200653738764510975274490884672334506704787068869030206567005007136299257298809560874075456702390798097363311846385894361218392435469133051102715865152678879143310356143684426472765066677962755393284758791702075125028143339054061538147688324311815153892044807986817965864746352748473528000419530156040941421820508620635797523797278331226844387615597619542383520233515208903377382827506924232753467236889201549173653554562589444520770106845416037303651088348702903995985797517917691234188701271286317869269706323921565087340016564545063983869142562361753108948741954487206705005943647745288126286112498558344788334571291830311292274672710248753704586531403573130134280920113962743537138998526969234952552683852820080798741014516937017190656389948804449182643325735350081261532532553418225475962448465629508229495586459135310338963915675610337428604203120691655882996112100769649416602368345473531084453011443216644116609404809796194525890146901190283336957108782432488017813070150112298273884151043821268224222408559051739527963873379610478779922832666751650892609035640152807038927648351980055244773644317064814286766619319103184171034895430028257572143384861895635704942583241027859829181962222029612214449344478498286354076320451753210426959086343090160902823831033073394790673643970385483341596800359683148698291844827591002760526408162783518079761037996083675329574282900140077411938726087949406077470207486060285424563248256818611328162417200538110093283707832780605057810277057172336819926991293176980015704488788435763202201731238362571243428150534515243674481818531006712534687927032135848008445024330850157340371540046926589685879199964469661179563065349945455929115305349089071888622155523810939396041508454721753305878318259354313327610422805638560717498437855414108635258077651099840614240448057839693064821768788106588089046539074468119127650112308912630442793490249004485664571571931060679286838099627392219066381233862150606859640433834595931964746914860186501122433778033486117270120838166701108308788596047825702429224927944123042144087174872155012803183674184452703814990711973205662009234357180476249341518282017773863195738957552364420615164921584092247165178940287672167678548331673797881809981923512904336876237355953280475658805130620437415561354951942346059741257056702775925349554261099484328820377595910386071064278573078413829313818515090891420917234257607523596132940677999984017931654228687683984770343563354734802675591250044712973936389487172508591174744555330827219257274235246634471965483128776071852922316457928083212390956151364586424192824343387281115121437449263926288969045244140763773653940218275254118425035500736112468632326455978282136138844470182630825396864555349237216108263346288265806406680864642971116725564206934504677593283569895629822296219281521558182979586067466898028330227046825100365024851660467366443465833636580506155675493973319075768361121494675252795547350796388311121925986155604833095021144097712168206050117870105799690252523089194515220532395753159617627435258317072515520378662433700257691910872990973606587043548635653411985409331823350034851252680419064760749868963702798241989069926764137527183045966745063487008440868747777466459719223438219641951772913757512437254472238138039510931727268767876250134195660303269578204994285843802228432026696614635568462413271541124588875690181699914475510283422224743574538063301683447901086096879734541760326910480682757952937704517292031854875921530023187828209577380639020214044869264277984153467946536228898133474289885721181913362422502995429915665746111771583888392063023914247196008652383573341336263332346479977379520656957153071107837074686967629015556911730634349079833936681634972376517008405702552796947005613375976180073524780494541215240650779193494385463210672768658589134644069080738025492271629440506163455331986373640899338229166398601315403176648545492828974831424482137143583450295979502955774791621817292742470987321461896473148138854182827223467990555402634056159073286598157000167713582094614335536870469142425786578880420919409977015834294981843756441034096642165578470057257436593729017320346736009153997015021344905737493476345578978426744144021991840098609352358747791697635006411182388520187786238965284032027664416244860508763702414222300667803998852845716496105785042507292354192637347801530110669250162242958953170715197173483447211254539336692608729719816042668388816446296094341370876495463217752178295289040276432126975182408258232050916729309433438530760864763159326546091627125378067772159335101532603104638865038423584032208441345692569368864009423776197105458590226722433092447313664024456378915515313427886102629251200231178049058501716158417391800447705594929709679776930737979245486301072319989615668224251151275252951063109091107546553752706398512522407276858039302410757602309126096735505617711314340027085813375839557966728603324105151208430044182990594616851301085420590524574508867730872471777755112168081913867748842554568517740280038196270464493169855333691641001616802128453215616530628277687608494073115720224468036271550356091915420906001821156016797962647496339516817721168967170898994536843670333804551519846383999148733231778873783039230284293458048341867843719467974962100814928056178257389217603751747857850527130922718189575520234389226274984974589858768888093183058706240883809917866365256080130168738808253770250797128062370838457314947638819457346655500161030961762152088067953898033576638828187718688190152453536204579637034682078512912290269395351833037046042470261387738423604942668247742444078330474751228036262338074399129044168690511398598536173764413010119735236808756629915127532982639206591905185067041947715610225284477226618052112475539360629790307185628892038102048649253500443805491061087917559338745613554682822201098597440797965280950318193867188381706014420405774775684161401455637284309852349854330889731341217336522006050994685936229443115975740503874437215038055602700165486137369475159476949573502431032083059748758514513995180316291708589097258259779194748795939856885818722527479607765249624005105226805681963678057469291466870735039582522036422243480625048457330734720562277220254389417353470104660294276292190800001290219180357554807972543364552376531551385460973130653296096362320984536886081642762976225592115575097720530968952286573574932674045676042411113752975359177566232148984800923762842369069034596266345008344935446254550238684991954564469302201533055591499492626029022133840595088343261076770742501755840861048511624205485274902891973797525464642291056004519341166822080041870456631885311592306556425512207884347282373452256749364665275177201216534465864748660376165816187358423065348463482092140569886882534687541560048763288598150241332047617448267270952152546909027962145619871150134135212217712720222235651518021479844521363388293761775777382296107842812680785004531640976208179570289784675622587401023434289759336801914821192103155304552451917877020513283113768251710315817928568352565944789016154918595114410724960604747533920974547791844685530876907580456782000136580625513631187112948543699819562511503684590400903174207092704799886553743531829873122032999748472240021713341621271927374773046605516769831810381173458564102901446156031567427106882983400625073755369198978833393609443109987124023002489293041445847774649560128067280242345471028928276680305799745946732541067188717017461055733002013995612767064188618433062640153512665945746599709004527852920551586340487508674505308037002463849355355223828479165018969191748642785462640447311239377898119766315447034452666368337065444147483278288169231086638754588235101242642411606678398297415478528694043630693689774013545352946121418160230803583579423043260692421193957597231470399125293091024066887615300240799026745357596965540868040290508461414796871701572583927871820363568183028580235913891253755978295564462451572767452804343924947248453491288108262769617078319984270022716463924290567535214152772014099704225974153329182243912224972717445607748445786255039906643893650512463700392839951349068840171286669719208610595420994846372112676570280335300424856048179982924367952950638084760224117472307903784451973987023990116079754555071399266170323598674058675238451168729577345652227207706945600395882051661397401619557607876544984884147174200138604110092417605326692525655814630149375417891108874058919227599738099998330538686090739415625922756652347643784985802728913717872116534766367890697958806276985295439304409428643570298270854084703723160144517723975746562244191178515264016383682264995983005937599692550252283710522501147400783272055995253331956233372101073263586623566038410607402320512280911460675882132931720004733849275043371752352745441330632008519049358752068032321003652474171008192447621565592091873525532279986883995316285801889371273234095591491740334599321477395095207055297754943498394445782319933644616673729290716404625855615492870569279933872669240232385683990772258938327155845127986144326684931793206309983720053395297746183520961018691913258358472239679736470964616733024182271812379910236004951000410719043134203508177565972583340852363550611831958028062524423197485218927624301716404740927963484098954286901155591687456584815140173608282416948646603865693708354038477075911819967031663158673534444216740937765273794698350132695747571241951597793990933058491276090695399725202595600088662880253598546610405286977864495231680088738185267356331630566439469225548053742820894075445778322408593617517543313482180273348182177734086831185084476515234392420593589403964293425955054574060565873008787121756369400223338423702793544447838477307304726462644042560852504087232842835201309379464829399912936870425165127405199443786547261731375439755381263757443154366524192029230044890910416622479530576279403926933922550368001559299614984077258196152042220390937639855084653758591836815486092576126824608410026670986121995746664808127541925400443426606822364077161714359615794041633584153644337696129436090988124960612350884460677045110281304284978618687852448976883085594639660214505089735076037995693413296767935469791391684156425817469902299694103140483930567195779287265963223492962898277907027738163498137034631728304488807045190592264346710701871324448327657367057040911097691437293745978664016065534420571104293948150691206881878033508760189557631795010284048483532472709574429812686121575321552384712940041594652365472479271403428549626373526003325908919306949722035131399811372460033577035356052358299184311386978868562814237617285321439838803237740003880831465964443865261690470322282916381963947171564843087797550574340244390189911652367370978647626344534739855350890285169641960765774341930828132472737679423692196069613243007679212701553406491095071935806126439223615362039088757000154992304012770771983452993378863742696668753948113692983708222520525257231717587673028949417213991711022457447450324380300074297033938447472279372655805698052339803034001687257050000034018759435854596327210871095634211117046152832916052943897796203665318683362820872427115088473011065846017414250923079633410219709744167711297361623747859699225357166962980605740885282702471896133666823570415099368607240620632990347823631107177878165924497318236067342796498255461421198430068907404257273300293719765276076515475082231537223567142987701019800431602777590394933819638367501718796221354445134872460348254620390859081225071267772089701057294291702345983263845072628930699684358119370086511451669742000794718492833167087915277407691124966731430794810209291632536744850607039219633917417793480761864193489491091585026098356289744973528553202167316022890318277434945332038276170438341401832259935117452892960128090027511844897877959637824309929330064276821853695385466343551240050715948782468175529185278978038797596106019742989822260507065175931580185680020982719225639290104627957491558521555330349386010436216347644498143320168440803456225365720912393268177560155503586728692117296028518273843359506251834396841782577121380919694348130404791791123077090278164273816525278779343611556851882644970505610093415220367976377106003293304060390925928635281628130640648498006560279775780336560170218357076335216306989783175251751708301005953115059152417428983202239707326817228972105894218121322814561639059257636427049843023261032047550293342587621400062295732574980486681417990569313809300412846210791850901469573657296341660577537291729876259259529954660894054623757145916839557498752940079161029229696352035675528473308777156791765814233743160845642977296535001202287905631238129846181857138810504805780074258627471705766493642767818684714457677431910296975426810208755515747666776331559291883142618529440460705271329826801131160468535652705496287824375970385880467771969838289596088888007661622923810887027430521644086330745038450371444004096662323552405607408053400125182350678659526944502274307454257009402011426115524147442945235672411609712291655508218872414390879877228579995252708336922494747534972762895161246302995105880579807625722993981676141162433513392363178305114027357770507625251002217074009514043536056165230520363085287029563447258300543390952387955439517422714950100511748993984281761473701255286226470429118589742453619820547254744417677575919970957140478351587117718183234659340335383128614556689404444229766607316709227341690602629132463769890776516952477921416526103094243726526165629991256706515713615796992204857609122935517499248875610253451508054754104709011645151213031513796509551340020762114756142331738825702310066529955271502865833486894550388876256010931084486206885509482231219171752263308527896118108602678723799115463339182650309613908461856092903544442270034318735677739824563605174746518418248280608928169526667998633347788555782084412980208799393934543245782769452835230007948510858627586437281942256312185943096236015817023910790384979475435798602167529121626367732458232832767048568595447461303758071406802048630144017542469040148367622299097981012445496325465498135592244822158603789408548325456522986150911135977948341560188206427165708663063982822648216622344114091176272214357016695065871742811089841383726434803743569998746435546447502253515278865192552628472252244373076062347208663382069884765962238920857811225047004925097149443824608669812984717396212160237211820380735717388043577419272028798406630967896927627176661581750255565187390700815994311508497757096257319679500856933613808600342072570856060258281684137374239907953450707923503173747018724697185656739108465230325492119640331943842838987146395564872047164813186360244016487222702583628929885764469060876998952539899551164202427704462633891038189879264926841401159184398753800189559720071181905360105469871505611897906776101605147721459232443099729834664620149940357839361244041372963578997748141785139372569027176685211604029876549447456222506068926748606038211353761994846789292118416524387831575512620756806765105048223675383431850923909328213443821466868644521231148474948339906750697006806067748306744122605212033062724126094972323850790659142360430165168987498491760985471424690314281191902713312219519993807637671536084548908001907589303485138740818559942601626706572654719204499937181254267280964648707747725206616620401235243305041572808988829034487727359922913550450581145052424337564915042081585237274887585696680339937037590173430569638169944025443896742398196768732847762208402317042166747279545838866022275341444203160246800786453571729187895323526358291531610806692454204569097470984795045979222575655698966099926437222200366217738411577322752846192646378109304247147652387008340076096674038427401250769933181699588087829479235132144594427196600543564598380166389931344838081312128423093347696214371541448385798487772875745914571121932053472783406145780217499841087312814544328851320485460125173461121178413834170856777353919424413351685083284674100713546190825053677494469965448228010891340645735115073805961272092657904035642695261853977773857538886065560420990800309648347543472042570139098372196364026814375346879364408417858899709255836643547474798667782938675797405917180183848898773803496913946204552027797127278931858349523557573130690768238436893068208187930684885476605582490979579032931738747186771164689151831475368170417652816835879379565308529855206735220351094042777415932287700133272643696999222067530465107839756601218949589868475889746461720815700394720659970885855917937201063996196620934043142425334720148703713443225915656400736752653005389610834486397561125093761005353800421952740149464028421237769596310395162563768306375141766462042052030334769627344908553433715003691691060008317531308046523130853308081517622953115769508758603377300446144733734694471165533714205299895596457439006459359175664549185642206255489300568080096957080622454128301391940664988151713946390100808076373808748813518240585885100951128581844641468334917424486054967060612009215923545578103437025673679742322820140257309265132350998309476718183656406768031455451951314054158360252830259830321657178002849879853163071058759603731859437316038364621158849052807811972251620143351004336651193121890298278441766269199812190214114509236989534950682565692972454823647132182142995471263796689404109919405762765257476523246737284524880086821831214515264121546079946839967071221038296061563298803911870210771934821503961605631846896091478997179910850000703292074056273068470340901823031357477491571291612027351193981442190071222603544410341852336613472278653081938017533552749657402184651062053603244294218600862509389223706460731982922375446305889658516453463543703119008510052710599065714316989959178259023633998770439816924889056184697554796203597763473891829581430922158620431896270481111846551774549761254864329539154947342612429927737697619946722967302161908163519224740697191016583370117724594396152178678769748089722655621157084653749279165592932099338346944535901844070453864240000939459147778913478940077600211839180537413238748236463528947595641035947636979278393851032689074210321608274250816640640871145230073696120488894124552395741351884100928600515975980221932040538840791170706424698490227403723498431206961957697922419906028028686504636359725147443159839511393814672131101203684862867949867230904649120852977207863217747999693926169466096932123461417391881750749657154180345749546870949342720117607592105245595969000255107435204671892741879415517923091039690843827923588695931260286239626402604980394199706045279383423729506762808188190748041702658446726345864416526639232944439437197219152747687411962318203944535517854492644416823755067866888832757596083598449319444810239809574971258726175605945966571761903857574345620804034111702165199908561525895227478188438381980547019456363085222894574411775165365083537751793443503401053745145227643656682004236914817642492668263368791129475935660762189720074621865229650727858443575669827599721769152629007758132547794091902161187575308256906938551002865464019774086226795477315259078967733736261926988232586898088661930684677613804012459429724102214189624735942999651217842819771071558384315073518225431796385233870743082949608258425035186032593201193329353516306113578803782833301662865822976673952124074255984256062292235139010287718527017712005057654629899278496921975109344985240535157063334605716500129618581100634546865066496772022182249762464038577822741925314862055921863372635129580202173817717856996573775947931324971958670223648830371198986393848868557654016606844342984364335140227055584470344833877082176033335752722495089200492590597198137234124528211888374243739610873958363413319859442905160872873428596587812346922182444458071771553192733438776286529259320199350524279034386270485909444519322798729547388931981102856224432621194763002608861255007806463862276915998361177135730149859859790424503572931638802873843319786399584622274570661862393095116519466532748978054829984557498080443807185180943980504731730648519052227820468993741891095603338231491845416319173252094415943624188124379997557075177639187619866387403604048771058168932747089328893950242767401159918294365873203617286269291995667985609255677009293271391949371493850493167073944298724085022358903499873644376671838100680503874262417133092753116232856718435463333495729597008303957469363304021139178351363687762385586406327330952360917652444477800040875789417168896180293412286660903656954378600680442767161851591491470106625147437040301255810605514721136934903687415934324151603059216404149138123478082202537167984451711043841821157057225135994981969179114475663147531906239340526593835918811892480995499582765997900635719807201522215296007248118752108348168532582128932010006368577887925073170635685438225627461205751455088597407719384372038472406254378275483995813912715789587912272166693212376839668978374866612791017173770827512259601185336034885228596847083698010959789193246759557421744077318402971811085372578712437105295211975687001175500923991345664937327458738991536124383166371610155898268402127680946022298830110764364933355074298287567962069141511472254629863470723035459846110343364876700138434057690038422785542751776813833194521195676762268064480753158804504236738335379717806541310090702333805101794723985326128017087426739817351169156055788671160303154541497633305953489004907421038101223383846907727323396836290625179492851953688856773175615101780411365722945798536551242223231964175869456399261215491908831306919369348835207390883525330432635889894485551457376585878337077213859629806972865993747650393932369668104449714968708815726950052318044667277472568293035122096175787135514513750447415148700666910188436152225952843618152999651217113455431571927922308490647307709896351415576082237521777515453770369260799800973842093374465454057204357833468247272696421758394979070239376552764701928327756137833916165843771705116951144155954610306746472679193923442984910592660686485780441580674094465372010838392640639775769864080615920766176405541522817016307064597910469196268732050821341147164317899620864371564663638344392659564130397683543082593119640371172982406963065387410165515268026688454600097778885105677991390139083814492842326837816905033458916737266558343366449598623057463512807301576112897783620581022655900045798839292554248391909677087357542749571233444373608345481725668438807564839430228123356204294029059683313160629321682088400153392261207192202879084224550958608153828264462930451530837101843139325094586834250855546062465192425457827953095938795728752827694934177854371014951545047950408673687382596950906942497030563745436812253999588784718367984014336666047641850895204821538181008035205142827726772685456065527906462209640117916797958136000348296877697527519208714409681102453171811760807179105773750959706839984018975946305419220719040001791632915249514581017244373877846127433418688029895166877287709547976948203685147722077424573743783749491254020585804401030181543929138154504297473312653074820568741159665840614286966969395169607826841027144194368455773446642358863203171878560660914285735754765503666082924594294207292759259235881734040795507239424167390773349424371687825114435579030612712099134137307724227682295639806257529575230490609037141453706593102332701864360543378851498874383182855800619927389751072055194546494859470070468585043645116338403680944659830711353488610513296455014941943101011260114925137727682886684342781001588760247287956166538626434274118009784097248736365984306544973157677288340206165804388678741417605197966229532138989973955739204338560732948979290162125751448522177276103901856330694776587524093042219579674931061790618522204187454129944454930887383015041910648595728281975256861577351364225908748528668054963143544790613095476441051135072854206467115815641714944200119798261333384265079797678353708770317485754922379466900940277220110211875726829962336089637413124452014146739514997928903911926469812299949796864198103614222546103239650585978797526347921207842208842514032813075504480144734721367709027202504683939676670526574479861447283423724339280865200048238731452604591642373254876562860956220297470806757789761505023747296132639249365797015926755721849483297360108903082761825000950272109602125949096047463906964652183671471557482276221049809536090544316708409827207528984956840129590564332239466677275574984824964325041024596640283250322523639518711860538936650922881154479269424846646151753194929386945127822133562282927574730078852355774997356646154238325852147858056878631862751025201309208401765420073334847030179723877789590052814566366709768308148360868916014192920586132537881727473973988991827479117781586186455773308564599186688234212131215536582008658922218260912453717979607528632979234169266657765834383711832203744031052046900699503144922543861238437614196655067062563187994834065589465768201908681700750863261291938305542858653632801014433454476393809850378723762220879321669750030896795245070481054360274665485882440673851469618407036316879333101618881433247337803572415683962383020755513006948446660700207527218840619984213428586540882758022802547581467852882775864823839216580519976971367336087005156313819394586107777075416733762303727561370651824521053900409924786654353919294088499476668455699401736410691019776203816519815969292628919293975250864295062114425118631436399881161906801368134622266959250793369188281128006621267749237527506676358870085842976848749681029650656808771112174730824866415474778726051156769927249915797060550426029619004841059184824694668426625754769814782406924668373505072301063055380549852501400091849807220431176377386384575158031190378990921107271419006445578834570143251855866681928944096001551088411926187711595231865643375122541064617394737191093398207852259581988869331839982032198003132965463515859914835334592677848048483647243480939070984339044594312413867146267197858943223630977714050436863486794343524705490932722517952961521369631805279724866440571171909694038316154664383458179596627080006271068006613695773397877775446792523808446093375041387287580004201237163409574356203423518567145434128743188830817830380141274877960934954425056083306734684803345520062121070431967254564556111814983432381436624294211331364705631093538312380536365145977280776050355604688096654164229339326642935234791870628580537824682436371116485499236088677113752729527640206766269717753402401785344343268847973746650741939327926405251438424884464190096798018992570744037173314290174346852492599797225043536033224750130690381254986599711539616735566760955058934766623655839630699644332387926612323213848524292495057735069413739527609557055089779232713341591225623546308374801791624872900412146494012671948773395892667019146276705643696578153156005945672010431183362842996275375112998723416850816598466562944286976880761334538967533723649761854208802771631153073360246287315095315315033616269682377665776122103268094915778392209728000356398264011180735790629379764133054359460133590767942579458911425959748858253785606268141023358241418869953437673024491792069986047363493551928126472198046781715537483908024086589693771091638938127782945982599354945737439116258447961403987018708185015480187824511241023411818276525910006177678530025876334334370059110863499113234887988195246310039328722945246523816974075373587225382177702112743277102766450652214695458295331795647945253711936265940797706461345736884276047993395920732218161481774550215384900580984011175265647342013009417427701598426752913180154949521443972359184253637363485901339069857624697600197534243845665249774272756276289157605400419046713833101373792105269514825329367099148319441353736186301585627671306791707361215663580695058373777202003297043030907052463427136149017995592981897439879211238483933540274208767638044984009611102268522481625122016802662059060088307733690144527875194798574988378668869292763216639632085817264550499773780718748141906250217236870484269213666798799411002567983319637975968076983818048823382192784088683859787028581216824572958666489704964450321513742814456873472952870561356724328908534509199224968510359672835344788933466840664338378874018504049845830511450609024686447524671071891261147113737023730629847754776873640752221250739916256225709686110973060294581230397056966629913402566478943748991300128605091598921688595350570671816251721807026689476957740061470006721757083569238248684895993001033867603829943464754314690823155992889587546389190646569137031093810232004246038153023249722795767458299010839349332806023529531108805325021085388205235787806558610452519283158084345916429632585357657952798853751960595151516750826367839742623359473443535142614095163317934139115988408846817151320004529392452245350700545290962612399399554752961996913245301395310129602836738231230728123491988409238189079544905882574993791674743074030168127222624058270016027771497235861312122095809139781621454979583140711889363084211803196665804621797290478924281905832695630251854233578561362993545727583100275676307476228432678850593622208606124653930351988583614228333373113985109177612570741033241804268570877323293499018492656525769018785015561943706511739326379484413869640353699885594358620064268223384728100705902283646354338258583604508114535480374017994323963760436523955388006272919927672041345762453062330710665338448459052780879027897133635829760320006470639362948809090358638886338196181962766855199355302371230406392364684272934506691617066088482494460880920598020288027166886270362913454030723908050542271160441477516795408228407689285167344804508094387898520189413626093554783434405899144575168529664581812432698456646880074254497044444845106880779818179026866654932284124563689187927759499933233931905756919620657778412573195498411328230812302166685283989598922541266805995742213379313991558494251444714977284261380256523442441548585376747414296898133025497856316866619634364171011937793577041195070296751276523762356340678153104275541514329711353173005575504259470042967721989196985038815128470540311015374751374630521470282690870596033093435893218347059908128851412047969052175113852717483448126434059094854904739755871993213274458562712873557032227516757563887087151300492275909910535383136505858917276239045798885963293966915789400306773032679220483660876997742574497965677870776615885395134673578212440802118794940411458054536828227954990564455705148678948747148505081143792789090470975651740414455036505848937168508594932119361731601609254223678192277594199559322215829510941104324177107174840285436933744471278397591133327260014896722368824453987367558399222454161198010778453479860129953444467560088133231128747917596448192180792846302740976533380225355700052124015940122659357565744933270744838983924370159815153923170974370554106472378927186647807831175056382567289061400126850934350432625651493401868225137073977924141300128423891372027068288430896463107832524389550668402250894265299954002389354873133221338492543671851288128037846982868204719368793395793132911491132138304890876336274032163670219309771785412359005251680041509975808254892909098026186188074412141934945116815828768305733164560131443897346191477165578657185245085029330179699894061303704077738250012343284867710169920057825988724735009453907137830605657010378039366823353044159483089663181700689220298972512034562905458024515188111620718025228521899065467797298786358963295198918726265365846751174548566375894464353475815698012429984660384112668694308597402189339432653268338158428607831877636443592417945224527288247890619675554098073148235488492839521259187915124745006821296141861278190935279106297627458948309958436456866300063063810683202491999821702863171545958725743301437911510946803455204484556524323266794812769033993307262150451572663014447923552349764399543438133010149875134541351595201036314051042121384553102062273304079467483103725269942508141630678906431836129329241339156252434555499162009379858032528481641876033319865672760715267871015883343339882989477197503315881766676341843498747101894515022262698323691151762976676330765828975736680764790845986364409676330056854762641398347640311931508496683843915750675409229648403686021176797011392943372731761053545308842832365369194468535774810120158393270506381542791142552848159386054617024041186744420044743958822656366611700825404434081444632333593824499414888847948083933530908209974734439381177126810954553385255615367017897414969437268563254302092152514602358919390388813617821040871714122369207100354019434265174124696383459308870267600789342642231917357790461833256894122123337658463741198213949593027434986079734944854043070264719117928095706975156140026279394054508529269050978371539379853140759476965552538955753851197983801915589131354982489779038317632269852528988618909161404440855788477805756433369064660259450931890962971469745603676579568939351765095843089060513133994657956787816717711958006987931204966921293915698131125963161922244300954741118976732316200067035760445832690527710132320867543877506374307868692383027859891219144041393024635175628315830814579665450791610801243570812086885811116314328506743123522756167678187904272478801033570930824009787838684088133303385756952156089771148712935925442528427400584700223868649743150876141376849085088321430264184953381667013963177899354629880576572608443911156719065934084512205709644047304897115038432968049077877469212462019552180145881297305778087344463474778121938293194846720901743955259151811835471020570941618369223182058361786833340642065361335617807229593775250296173351827495567275004546836146790017935818375080092018341308279761572433997469374775620404983687322346594718751811080756800895678372974611914313424623824458346932055729915647393540587676041472605671921006110856699457454279884282118938037842125369929284286582080120413673360017761981623945030973723873713420780217135008867297602999780429953252235267653927979746901194762487230960003450768583734272636911066832254698536489683025969477593159255915739911291267470940076719829814086883330299870232645891840377825078829463885935955511534445084188160919889533062830991580200728911939821565234391434639997724340111837075930993927178043542185592632268289837593525072562890572586034711703175552185729469364239971443387475839661979980332831540975566145460603017541046932969202605402364733622814675693236324678925218372534790917539828910294390536720447691638506743695749544927976082642147978687809567075526783109977790315232884105909894808218871252913312303859972625926279404654696493635512529542120046065655458621456764147973386525327859309971012864709070860269825881766815066947250249824899868196062863371068157890126615228014488231193015980639591804984178348623572622844917541243519944974764591733573758294308406416395965718523819998882907993420695811456166969813931518283715372182303304137756056028657445063845982530337876916599096382497696162472160373339722651901829537898110615254099548265780963328657725478696214742914471464586407850641247385745159038809407457618203021431373206803907048373135951312512590421738013960506854850291017649324260614235542806110930217274127909099133563089688516877286632923520390675284285394700347691420018935744949265187699136328739221633512050576538754419498275571950499451863657615901725317181018241977816506931837536646177470349599101512947737154782854430226838565635924647482621042174087049465482984169083419819817311692152682958374416578868118123866122021405466146703964994126400943205671032030836218323505241451650381984333500125702306475287430041440008376191475957770309724019525359283008815141679930678176941704246574675202981180584138286561031542646641369938092878786417173718038510907408736797370831878376128843037015600816132633176803743675840655874897747479212278462413474634312600759375355137895240482324252170539050533110375538627643252934256068789575068186351787014380108941807108011180857724359072987338908697311666662970690791418987760980536625704746586304514503597838844543789415001505825795992152164360025440318138348618123566060602643421941164023852832784845466904701696302139815724677446083338358043421181672358759407204327378834018194735304449428811310063251983866577195301800324697614354550795622986462043028054239291409920879392487558398589457656653670788919245786737850404417368643206550763402890129648716649364109894713215049879576477030696163025751521715725829393507301384395783661052249148273586703884840355857836488139716919207633420093584741951085029149570694260162991600514387194410526319744719270020151414906448610289105297664119102763901566644563670450686357876280482625676471937316890769078708699129832149513711067770139952829348612551900481827551068420219462088101826671416136398745140228200233360974331258987505549393664504525674840413503194067794344031259776445992967462718299489551479237018926885564044743316943667117325248635299481258896909094339492838722727214523976926986913270882048864085197904078727916861720809655835009262753252328558494270118182625564235889791342489037074231559661911717213652196788969046319762708792920253715983017074752969858569795334323153429382660319986798173617987186438432632499099939961506267128018798596151951977164391440806933521919312763455321736331176840772304995069613961044670932410268300998645891981275565439070995235687122833627213013549414733606259079322489056646696439441952662038126230311643117388310446195797975780567220836290084591481579528728607165861445998891636048800781787067463196795255890154955977534117172963250109294504690730537878313803766604418236573136283678363406437192261790460745105147633795636494143320251934235293923367553995407652460696443037733852276988925690387317600287026515543456655692941575889475304421885659459377806330428044944396223455465224094973343280362110966554481448336800452667115334493941232293451702884104574387273013638259608093020796500362086886634330520855812658540849982960935049720511197765758703035683898548369753613236493043550427593719912353178915359778219124638040254474284144131972905649499412214072239423523535434306419643581577117122620949172895671551854952766315765369136846139057199039415103223785259525695953784975110669659280756211579145610823317329348809811194754424144081391108661730285550048796502824585272597705683952420807645011401835742819918984956403012428646520813133347209181448976500087102791095138862370413515675782084261044152499191281494593784675107981010072229489882802630317901285970487097339717662085545128623552440938762419015706397411104028956951953093205371298735783535612818765928646438260050380680017114745773129961198735396642733704949651516959670788157190827442810643416797240120381690608687911180289904532461406567989350558884418236019807364356451699359034076691874953948885517256596013888993066580478507096668372040597516253090051674890261640133085679037708229808514826842680890882448567268190719714049354758537960981617448244483226543010571290219492967047740281195040564878841367227492577284858868198912508152169881793680258647017321639349038017740025357745707449048060099931385077804511101815742712105232119625348143951368392901142174713266593761572534461706719365278112926863678724282823899453593931489044886630339802891138542795756725645553689798637342604037251787705030671466668151653114901938850497075900522443858783135078874823078671236318620378930775720774981362631969356633353423732291587911249178972229708584491077626460628334244644962449573524839457731249559330448911769224143143890107508370437028860186227847725881591963167312588843633301947550071171312901977732937030160042817977971641320163780237951612359136921200494185196252486402690687275883020163341493482445126472578726425377111716499286626475499330352942118690961885810886143967007626945124527379122470286155516802726292827282218754981615024256840473332390646105238272542829341979524204071837153803982966484680019116012188209493678691240986411547968435783439174259855661618374604735137316340242851208453505411202149122346613749911014286159852143087614324077792710227646286340420694534280000405759649903436921961140880376774846602981527712486093291413300503407894711474863857926114924739915538587119901977992167485675428685837542506600732298969348596057766746995810458018411154563268926872996117116201899149724386457590123573484454612877295660818213842259097547615141787749253915161898753876528516283082111644035443397021948519432555954480170620923104711275609033167945823796011539531031564400066024194189311424244609582277103745205763627365247243237542911540874745922811983182478338435275645053970256713202497661643084260312384921689133031264717730579362836715994226676533300712092237989341627043794776650805092675431398960623866579400589953381288012690284241925718606498495322063306761284697630963609931760348469781746405432891255316155693202563782610714823128194164346475599281578205874516540090310057324322551053633830900133668471833061369747636353820292123705668266505778289086503409184341357233991566851439270653733008448138031764080610572721395699409600569288061464112323888899207890595703780803606778307860379302553730291072772551961443437845966612138822290368709425612978524714826473700781356907147630452237344260465636962163663508430126808702986689998396865703877600270178869350928960554361360009400668238904424720531384135612941392256738787882161996573429296890370001185079590741306159133883213264094500739073079830872253650707317403723574597379746920357206525062980495721393023120265117112413114604318917259434985126643815813412021143378525899891262181115551652584705676666029577574450081824710407225223046507309709833349558031255203439217526152137274785174966476918384705688767384460785573860898853695152845957723925336679677319112697368796562905038166298902615267157603801073682911125582304527638650361552523056570369790121285494685507433910533090871712323962663714420273084495626543342316494607628208912396787598878535881838395940173236704981486734108993735870357658171493266757226033834071943960828595932645893399330630711441803205488335419945267584579211658592673359829863273445468335846586743505536717676625174155826172597675906760438931487042441278582907602104558692293090446034200216648006369201249656950766735914848434572273487782027852114210577573619231022107181278112375209871039814491157511099985217235909915747563968058594354992384790998897642580173054559372725009513938058649748012307650355411825210423607444041640759721602896129925651223263027943333649181194291094450516767719635019575402206408000938191597547971491818199170945797118753444562983923004246562807339603853016614165671752909942682909500415413047238982907562787580591944290825887724021271029218625824006526036167643535753520837041766140429722364523535734964081926390898134281273626736050884593286306029851558023451929363957544827278773863451486973089353826371621843510168646192180520105185913950143035744193584543691188670887641997181199560050123020396018109882099931495800990796186857591915511017851111448323314292703522257031311345405641331577680399300382908771459594646099814397136945295674816879235849342459777538754080558249792976128993279064119812585766446336141636073540383126697901278765106949408738364501087428811796999724327553093293969157668322072959216579725027449134133089489203108830793146596111847741652420486278577706540803076227007982245945505366717565480619206416638384170071078406491159485262880289089411799960185168285156691878933347954356671562315156341222617037914790720312818210482408391721269830049243286047143646442848214146631414137097807605161597064242501191500123543174918055555751354411626014431662366584004527429207664326431549241590716137049596541572918656191434073985645290970443809332879405864747336799983268354267601091160642720599910575431319747111590090876436155135764019813236556569091800012663103689529835594016660420332462895205251240127589123143719933216744496555953243474117269972665239786006196771242341835660720785180803505033474644553988432726579108621059799095937237092835680501300981283469177358790656581255361300814056202104148423654446679439964030542983050415923742670440397360652727855701227418605041574142666626491215972292187022804073947641456780823936339980001803102020535427530892578300995831500097588339422735359933742929880153700876806660859110486427569051265612646690965983550986356935021807817286082153379069732789849793410141501201348303382645237564611706819988547281407258774977190241671781616994865504721895223784238881662348346068986878838206306231300404297327628289950575536547169548590771812007111955915004008269523211181802797451784530800381201907414907184196860077465642689265911251243714482880782098448306862952016725731992332670683067101186974020201488127196905037766788602955879785997114185844892111095301112436085899733105839179757188603088737615900912306566773300153214106044910403897106364502395053041630485973321478149520582796695499707620297081071967479667270578838130033985144655477911239175130696257973359595655052844185732570843716752888099618384185815363057024714131218014179630389744406100114667546314735990117644031551710835145314754029478058013171228282932416694172891512144750427296047525831615746905732867692550398767696479759893841932752860571772683576277985529467460861496808339235686939155074322536435948867294039446704693553869727931209752603991238527711856142007353643288309661020142801929558584400710046549242172680226117787528827766093023358281503306201205271035478407577790629357164705511379206735159439658917988255620362971081564211545270622078082763219579609875355106160344345517482053784382079081025335700717682175865480312710824135417234079616467947382745802087573294900791248324209425328187581459942777115215889900389981712732053430476013681902670315007761629831877424961205333283286558223071102172800775473535714868386843886600492682819678109719440137540856896020254776236926000623916674287875047056182940162936119099213005402207587602988269954301398744741114053085183006412368967830311509824233232051596129463213627897252259515193174853268925094258302427422866992360332340770459597612194912085721336628355663847923086980380328435332135643745433055964010828098638519334108063833014598352140456885454097723475169815918991542379865442118342506569809750306924349061649678831490217000105308847466755401219378044081648213458550713619006581735961083789703933143713118218709122420315945780710466475595333825010036907347886875389318488547394653472603860932474705417263517510679532704693490991985955646034399591641280576326903543246428227927963395766455128261936025283299598814126773476298425031290067350306492321412261093647527007855035799281553524384062398344407732583555749929375413485492605714800344268163372076072745615028258426549326230995116626900324794727922772527219830642138081180603159120596699841407303353095129501905596713328504774885647432852471493484231690976673683977120495254307838401996038273548626834894863439383694362981143671744096915350975324592751498925988232166726381489698789980853131477275515306496196426449116391101586144551436169750035468836437061761970349682049548920066271481674017318255913600572941302512958356872006496284658588826128897779801502499799014131804720889542154599705263497466405314061506930909264245496232910886412800324383218916124454922553583586226171240865344090681560272824915061389357693987996681350593428630261280042303937669138335678197555225630506968472940735159145539338908130110888232579302154301202165505326448878072681313335446503774870999247922254861840735694481851264505209750167748219799278844231422470842000471640701173258390312669650489484732666674656271980774276164382216775045862751050683202051350612505447279300505554279998909323444343209231174236583882013890043470949097696560612514353640451571502955088409800774306375551059866811380058304069898287956951265223860535915345622647198946913327653096967100998030277760430123201892117242685994133915013309789436864919166593119764587029002753334828699482717718185544308877436631123088245637078003501038229796334912703189041828575412978920062679085728205567024084540565337102663653414894209011866886156174887161010390630386207209628744720164958030162880068302123616134452340689968114935241689172621759245968687554518949403748205748158574405323171157013354419711416406506998592941408620451827645660357482957632756702457843588684452987998344617017285147898088917808048029945393007582500422801470174149437706916869692697328326598280664791562216424687739638132408542678874931122001230854815809865340192529782710531918205207418925011956071916294675928727732819798925148959337834806441794963283066560008858925488235265740512610999785717823550950087087983248471115653190492485102167479237417917694597461934194927140474964297370018943757934463676510260177312550183383168469253762843308812374200319755922040731018619644491679512510995760533007806743198671530600482676416380828153895330974974989436032102631113115320613074459405058684093362638673227810216177660779092378216788712989249364503512844110370402909951901255668157512896780132942291846407072812780693407145814327964869516164072869528788346724766407671078526776139430851481175265936328143823496986372233267175611388969741147328167583761059900395533206567344270765560322165075546332173229430834908011774893399297504883696662544098779118875817709223808194526672868249708867732250928344153467061331713453774209169420539923039944147342383940055116079005547406109570578768362581840032039453169571808887950674039175892874574607175498157675573400307804919427989480441213186241369883163321336834501041809191464232727596541010327730914676712498249208105502500394393749059882676347423516539335350054056322144514963362722485143063969228146434480917629435395659523024312466009140228639570492154257641779812899164123440513239038808369055079362927396122102628713927918772617212267544776826683857372812512345356161129782241732902088234148526009909490932543475161128351253375770749267751639587947723247799607562711439379683308480328799933366364677289141193943198519612796625265402557197826015406264522957836346088663717915986061175837972717573601715253830801646263775951536304396891499910961161644661718582142676846028556767592929913906200806111731013846593302534129926154182559662131673948736233520527285703613156474386183327628072151449597977891372318870626401004131554759225966908519646711898802914674353867822388001789100637969587780239758872110178001896280907894062227691864601324882571470200925456878423651317943113462000529902319486698611511526454857952137289872970354402639962811525408776247802366282733166003939815120188470944792872364771702505994898465377433755698844987059142607075180583738973110745657930442386762610031919098777747961826515279444379471914242988362602793462389588442566623177179267138686472255777192136163570803401393760910316980651215588335006537168942694043145696668108732981522020033989339904451009036869643817113870640589960602272597161191671504159402728504111714997162594533471921768905189689789945062420375424674507850382551318838258163003863284174100278104656291592058118534492514094780185259659299966952462503073985344757507994920486092593902424945981559258984606240299641415168717529214136592200525575789005589530366821361635193068706391739231537741843903184656763391232003482680023242138297079649706145171578834238512120262452747809432373837381974599357225673918068301695755633970650175507395162321221017674377735145999674080896419872172280444486189666652165698857576680479456304308901864114183154849176453342925522625911732483731216394121826134231306517067886008008260606683078119063461775317706376897249340324628162893810108553444144194031725809870067716202443813124970722440878126577147800676158355398350737777064475829769262600085084110814452019038306246611825836869631085617987250920534852381400434063866031671970166771587842850074076533388745132080936892592015623969617426086371543982402887317948306211832316919341417501407589990469479832441518786395747873147769605531641152309360527379601855855800121994221431096270029349182892629289445047501279444894213805916118105510688529535561393897642768687269523175844524360293317098228827052917295677344396421070249781236151710058687981695265440652562921951323275430713985617916411885142911803704266686219339908484396500406818300594276054572300457185993476611908252157578666589609763493006554678679245109186363349824436345729482976222086595728297059512804231279375524854595045804386308726845217161977019196052986665064490162625675217105889597528758628860033601561239801261354300399008913653974227209735155249874009753639118412335146253952749405197291826125715354892855035268140684708438921753683373013407873984092362980146780885908570726093226693364732854458351348600258914446755667994587433033458303677062776970875468237834330389435715791891022298738856383098040248711706317268283141130088038592131510628012556595915780909311695053627242344864341608230986309448817734475569783260309606747061648703247070383964114936305087907627015992474253426991132615140587503480130933268957655371665465412859353463407502832277048230710984390335594103628070124998370353726605007138340461806757258052597433771470386283051652853937176519961017915879421406881850584636997377893748222528254128596427662369943195886112183981833564504597905029940679551662086684587638717667816436287994740083904458852154783438061109361210772642630360486627564724316482078927582179537300213454007101179383690401614230233621782835050055385092854420497915982666240670959411303899781466642942700554929477824801668875765875233773002229750510835244220678210420937858388592213548995055267759509642236307683431507818530292913521685700422894378368246358288111496365089270312560584612139426938516509026194018977350397265585414455615058884807050416251528309573947135930084119022805137065661919149732653540972550849595406783427577436816780187379622741160660545129647340158183868351119879289597366008286538334439456780491062683608494977453073224819172707333116685941516306700541250225217491762029483029041679412707522753883117003691639830013173697005157574264173309069591208501262716846433461338865320783200498914074832220650208763104361050087528566449122772406643194155260132949124628293948669703580836198268440740236673186653216085956441610981443809607882077048903453773525727014887798825346098713886484083755656598363723949866599358721939816966513172558097389097949562271467786640765761415640864191648809798516842186964036212573556751863325457260618477754067583657732380988960195938939746773254180758506213212608638781853484255917609716663778115596539088850666880037071355246561107162094219070660127248934145722947891495966389888565139567273043249338641502399812817200321189182375659220763023988983770457302072461384604422390494357332530534179750356707672939604972491665238920133923582333049296374587842716152521767148033898698339932900982216092874099030803134495633839649458701759115894526209329869804239568732351859706999221217775533622409001633924320953727386149599021471380905029089825582027876347912981875060450007215426697428723798888749386946624898263808069884785135335222463140384160704009297737675226687834220004944920594333719415918422672334963046125733969216350082397376274212442685198989684882209456002029850166456577839917409854903350326897068068745412246548574702948615982657017661932164860558515606372644780241101114442705570868963492548123966877317579933769973860788032947760258314255636281580945395875150915945393601851509327921394140600388936256035764566824990999569491072717839229978499254793001381360910825129729602480345203285714652534926772502719102600006119510897124333369777252487740772574761638957654425021506022607292776592693211864029938226029765982648159794542256301677315050407486959788305432713506192366776291065689339748218343432296123995280684959791607934022423643758222351191904801746363858098188051429854994916099524392108175221916341533690911881668355914083702086629773687012414531812140332271184199533858541986541202882058685528220885182528516169278317764283475194357263730357161218434174473387451979077568486839467415839831744325157724060927470244020069874378903605781690543418120656869029519533977991275879769796587779386054411441735289485028558740331524739822732710456806353522505520075548075379890619961255798928989670124513629266698394142489424159099682336948208265235718438831338572061667059964461579237379584427127889576667777556598331455343885550097429858947034469482104569711058934502082178280666282268140447856068176222509942513929690379366549378526073336608806358495657009498405607284958671705390324820261979215134529270056407862350788930680917267692915982632838991118749055829050055511521937787631066043633143568367646535499458545969162896420601104851013937152208866100501432027485716332289857996415040756075885587907648603729149124920084038032668852422727362540910086810613775808102436848968741379819368757877274746247913234966481710960550038673971663224840454368106678310154777624456010270003360164937366196348058651046328487753064367608141884627258236504001729765982561788281540588461095235512069974859045850242571424290375963083620969595147839372992205973247542793406163408942852351385763031761793316324020077284046303123116874225402740761915402665496016162387574185731224809404738968798256687593727044305610348398459950708705913765874895906746763536856278939787940607796284275249675487703648292986676707572586054421767284138588323502841931544479344412054657362968315830717078231482296930101222810412471554798419986250932911471409213435750779921461945376271132286151837878177204664578530182454988015871886245917792206603534439850673241988027066922396496934481201506790932868071719943344963960440122804650512499196187445070783642109657161399419584960251905404612006857286108878500837692402488808791576155951818354081024432297146225481045804478896095603860355523291700850810782399868863812250859447287595760085208948614592626461279425842948728840142268953364421430761503088856819683516358189888334723997068263078677408744930470507534693095957535287308403516594354611417361322991066214345923641496766792450343433526637626278309654971819533284887395701614259250355572736462578474278490653382982179626143582902318758328986560498415619850626629476421469011021793322308700749483974133519586239551503895997183626113070311238659329569649352912431701818507914689411249351763366512980247884720825125414072392732099725707360123213405089812062725294460889135124436548088738929510619336972485039100733528779150280596996549919021569871262486669055321416142646061335797116146992808747476766505387396141183232430431626600275509030626209248172833791839278079338763210553706899123875813904820210382489119290791881617586624614247059118570263627308524071200167538787328113395604331500771761462805991539200026951580063271672001284059427818648037551295861158110316814200379098613034618858145150456021634767964563277470500879298151354832322603883973537310910068674818279469294902136328358729330441078193055492257650876658395831262199472302718589161300860887966885567790145349810698560189107211391406143367419926052054479756077963117294880615458628862369190234967096144169790694536898545107815362999514647068018614549076333138086520266850136754565164620887029449617928406639020337573615845007037767161944637360280737632864000529871218022063686686975703268492789868707740124733320639037276200491800925088115510221878090645701809323013459182459003155903748618537656250660949426562459317784337053495700787361550975619235307387260819994555598357948510749013721138815323570090077844314598548745266929159668041257076747185976685055450854462622154070092246600632135034479037633126051113078096271213581935033974871692970893611873221280055875961992866289815694743721967632719717422696078686212967911970294346192823968300564984635426466370466505020523488748438372785976894918118223302177469205901090663650081264651687142348769474975209084875428460037009760345813256412523368532302479427395771041065311048730473908809904142319879623196011948073031377525026410700503272473391602716065977448951990599042763366886692860246882654816821173996857962943501528303378102064099496615932526346940412025879811203367181016457178931666515712699537218947858533055729855671771919814719335739290852406851186656700622854863214961901576677282902780277252749010986436667530174992824934399882558108944312902161629287371590369605961232619778118729805856936787027529621378277468623838395366898700794529492332143305490136788702476808444028361685769722049741484329153122081193491039183892762311861062642988849848219095381288038659995107558505525374471397457719755499238128366246616703184954182132796167484413797342322856888010545191977144209175905795638252079655530652083421985950503880798924109203972443988353207907954576159647946315160550752560900899051191410924433593473250220454086241516993715763394776885510715538389337334247729239436147965334034659060073022756191298382899578569404026916817579568901869713762503264842514722065615674957307730111280149160087347587448991561352384794790617078214638001017134384624738991842046484382612071637173940175312926751647210030705944387350467880118470600879674887899602099058768211664420241896414447550337115178237195334223768566180821707043494343476026475990957323084900567144621468328720002235710620140581474630171940756326424128935861185961406110908644636665516875330878672987246526299924217129229487907451696912737287455552426606242860099129847442326542240670468900175727335742961930488379005580297923275511819563492435520291369008927473804961030756988512257945846694807792992971834181665492848729789855405449310454832277373435747380596590877149750637250102635978076889218066694922038002392231124387572515835852960377261034419722993750029216228044217661290030714957082997357590293242950105390611351194453419554864623248364709587476110348974238816819147587302655575894439738877215466141388971058234658175999350181049752174708955649857033566041696493838322503674724838027221785376079511280865885426402311759691812635251704463685327558887441952080995880606607524480883736956384866907933462603108768479223234755987108376839640469188476536426229818537927321274774066317277456257665530416077070692452799274608586148071254240742882200200308853698693624853114907380333985165088592483876487968597148825168515340038432729273517540368735612192426201781077421758766210649194970682169992479962291728103362394187662723419044212513823785402279275952667585953877024507443605509919008582477226974299193087725653464644578248156705272594020528689009048741808633455591084827568094970937806552581707552653614795697796040634168633687512767056745622836875790486417746523672282926941050315550948456010340594694527476716236373621143941267405544426915723593831059353996675612603684853261182242805214626184232311628085803673234211382606236845215412312196184241902258557969758924485991033205878660112131812767999221228159633961424943689887148266185378537717413260612412268127036052233640204022495600860231840519482211781130862301046144595161684350162579461095066310144698219599527302911368962326592823198935563471785800032366859057448021214197907022115008472821626419271338681113671009055152426945443113655701218816998687712787327143703173138972006347010151307643568088296105329848007626127979759162104516175388760919757846067009316661209108300162913706820078572698742664579493229568777232421686338747851817684007900291334187892074005915439783102716164735271902067655959198925668340860905860491780063907790155346384484723356084084218943929278942502862702917193513150747395318175923670663046011118098865042141294190445743946823419054708518008841219842973487477866416351004780583728976663718420973947877806583542709673506094832245070670171140295682228932362347555633415078043301979002339965576738315891197933070069836873672534301138525950446755681174700221234651857227972971408407892992041507758382512036723837320509002381645741425998931506322084513744548099012673622413987755858321706386986235493356846605118379941024959017859186096401158767301718512711344144505787181892587742656526504895183024583149055456570731860871715702889394873697332942082789877592038613649607065053020264512322733963929296302989728842007644293786708526405310264818869448715262621265564332792036918941133000030401240052327282829640913551722473424370971403317707639277810083068543133862850124897717859283393685089930261354751133589060182084437017141296144326740650757404251513453817364127921955205457735234511648781199745392460987127998217591034872250163581154061297367411833939306839580043047811539599264373097586001518400696602490025035205552478065719621332435712581384471322189854001492367863458569364455410801349194861063900409061678475780518055615506739379699276199671728380678920396725076667333423029436567497039125013312719883058875881176301392200518139577840172343902536077092043442071195954572943229260633833483486818643275927825721658059453749668300931948900927565359446065773507581974771018944096136771595791630481492329594008375606228699396533331637565690353927632171692321049501047013175526007347149165645566025055854922662619537156530416674723059704677934739116969631884937353464627754912055943146273488967617437654794907251376023950562872271797948989650695234650522531930092547819966762480820379635987415194307963060431053543109344696164440702157318235432413662129398090380533961973477447179191610160818039505798329913161524680563920177535817999386486258500029246667134718539429556323785287012922307637203177413974289386281457185042489011768510797436592307776465606296386481654436177477759226268157386912713631234586877764767509674559412085042300708493263454800133916835841266587857578801255024415979100987435024928001177610976602880178536015113649587276608233201647744738633518817180550381541616062785934041165886464606587419626814050607803769837228092601431425045942726630372532259028963886535571761478256877089052578437247090001594377241741250559984063542618532195387280775308782627490574182003327146032036541319278500012228881564281994559991609915864036479026358590392778463569375640377540233536873224836049639206012661508844815230697814076222924907157521882283474798602606634389722700864540978371441701239512176267800956506489327047652678392355590583327564641027133137992320211082497750598474113833499171621204508891753491219901016677130361977472471818787283414261022895703070669123668568069358639959608891333416337641083023912677618927525903813968521132600518120978964288632977383036563186716730443009364665096314745232885715631238176782226204256689045023826231068124109265338543138297972228176219784080339045029662538845933591304230142205055451592949157926665098124053184739617988329138500934557327548344502138200110037583031636378720553719001625355292144663829300460362532844303684063200051356790717921578883244016646630440071764671140680632013374546702472015517824646858225843494519167240780239159970771884346191587797151765022972693382556969196678140297177677006256646873044347621812349584598983238650137655828793884079589110091083543686529721846596839801667260350875686732234943834385950391444604406051962612207645087616095497110186769752722409289001776265489034748546583734923356569914516596279064443578780308941604964740988177812005778024776835978451508260068124060251236402386881404076133305796620531390300788211128348466721509794974268411768709338301408522672435784948732103481014226235936567597334426195241315213049903575640093357209017765323197895928884634828419296476602000360772620408332384446955280413344316186813205328594766770345388931525094568191251020281344012484012131542229326733553668137149433558077359652510780297496168172177927463644840733176769844929798574191852320196865022606332320148381983381020706765491609392127850309066435754194259621398450100160326209892275185957279563384976703127563497634095616225766209015047518246968435361105443224403070385825877926710211078594352039768347009034054410027192163694661985603356829893264785710538710385282966210767814871043588894415825875714120460472058320415264406284683227109090574405968737841398173758219985273972887476586997877473078775521575471527794469231357368350872149830503390813863384686472458437997126205208363440329154837338129546037175763577277977290190311334925705325154405857637035575187048226095000902112148041747397024394192040478321954452940166469323953245212604788892741845751204424039232669095817316920226115490150595963482500447994549948582184696203650533440873785454381075856119043157290290941034307377434727230231438501957530658673990316238619575027592288726521605608863854551321374561311516477635330396992815362243841979994298524207597990487649323285672268904800717626224361292581879830946414356958070438063032018288604871393010080468521897916191803312310642207450010295116336426306291910963589118962379043734095730705050324748989048750182811124302791139836858895696649792524430871058539224584980674399828429977773364438866985436345951512329827312309167983246686127886359269302607867302416726082915157851687660240555933756340593279381729704989724200204892416651121989236087782681942229543260479741875186175154168525037999914263356997471068461611117487133762061403783688672905145350380969299771537797233363490751744785453518111068373111033345071928992147461862812697869166218897956036928752110233974739887921301497909221853142945479503743505276358391668360950438951218364255578892821646760724058941849066047293571291024696374247322650891818473823972333849562503790856330536808653699779923024594156207559168566994582860801848766108053715348838150445447201806439754150823677383738700375639689888267542453289497175595261041335803515085713689451552240586462176431321349890755811786313806142796452740092819134091414928282151225121044483751777068794318052138732578137415605811557757818948566919320027299174431331210263085027848777492224773789367289775972576011957362367645499322115272769576522516459132814822922802632885078752970984391297225896782739654300902818725697236455502217701953458407518240418296866221139051718042400764492807997193213483996186437517096171831721015781042580949074753175025427831385893375146807115730021974619890748489648097938295128969439158432941400824430086346946795637298559452208666923996341397978472800127151264842591255389358429936729576060556605371399682860983473457944424595267143860074067288969628001086423822502732210530577873336308683493468444623507243065917051737278681924675303626748712105835910166077752179750753742040853105430564578845167280181270531049323607843448090670934878774755846715946574789596819688438816076446242857818700474577452135574847742189675236735293317103025659407018508492696576904139605820369853279555045085652856033017677155299429603402670318168705289025446745528460336296648499066946546184714344334206439284412017340598616241198069531802965391495116711160431826804180214437995069607589990544871450943891396301020496934703139589653455035268513317743986958764155951751400352393990148517040392504970676449518197236278728233550428151165764020345554997417698689216579889658133455415364738042439632151542235665649744641526614303714005487188312786668361699802988272945978376602665036209133199418901587571987852119454905224921958744427764593097944187321575525026721312191478675672401137790465614666755525207004015979927550557237270450020276869714559585444949369390085402826765315490552382926218676820360197287661759304417808343393929921321670954534429444658238445014440544646758738923093636853098499209327902857436730902665167716032944405415148230569473886455223677224141181362945834414961942973422382917505595967420882664436979628731145652877032997234939406423379271584939097115648570012604922750378423880031895336759220068620187328143306149017397728757154607261299727142495489857918150753583267839406705085604078562947222947463327805945576026957588894286280499500681334203212107369159295921563207337385169959005122584590800475984497803651344531942071678347242040194741399587607432755637149810605536041513683183749563172076202743555173115866302286401448984538951153337944230808287161778118939183898090384869881084616232560640664428059392987342277397081135556167343814553553994109358232032632666416948408574961556158257670775057365006768217914550687317853671263097020463808300207575328615599484555830073502777055007257572714952765668461333939507452677264972388820522764329545499909944456328607799634262406691348392234203747775110349299277284332169308551514215800137776582252788387142780188825970730050307648067119686406853067979209007584609959590780366721597689321445446052013243433250055657118021046087123545368071092507318662393672559438404276729297939618262132152402470149299217673858580233586693399442940097473848709441675659631422599335844056220867350847090385683551031837659809418750037036384100094483611183480571212019490085627716453229357781017217455024049605867451189632753943649449750070116271749503210056092986569382139074241368321034562805163435372382781625418396248776793214979794451633155081354254282651553551412313638004941509447114778923380341049957521954715713119624980324660471913424472272313411478753520076407966615716025758943073251184803919135575620377237873679114456634435191981742282764382522334483909289441185640027437200596785204218727273969744305090200015950361272819159499995901440066241584840054292912035323457475161450973972772609542121936635734079095707776438509402812335119940140032422008413356375407596210275509777317843439383770901289728186576705122972082129222830012034685003604480230987279290890686165185240950005640519528465062914667909044907900309578987652164456843262307231484203443979792820095240038794615327956870099459386785830501579003439433016298122082103085164236408851046741384227589715739586529286130799006181643242736587102855602047792750833675423242489670655061928671227418004892170126220727221168926959087215519019735623471787566778841304809012686652995334542031773620020435834833215828569894715102471015145743764954165999395590031022036896766418651609647416786063419722914605782041225712134959516872539927951760666365193045599766437446965676200457407959056037009928049091537709023647601757851214295960168328015627518526863840347504598650826072343104432810189577803284793924167844137529531229787594636895616512504990655681875533497320446330327629643622022094011226078546003928735855448981419367179095449170741603990039846833215472642267386271170249348415423092763640656278546785441791072323053957570689230041530339638198605613630582537663782652044122451578094816058834687472286036458828884884684806345223656710179728719034610746259993904991704669542133342521817304356749763000960512617243814076749913495631723528450893362002242952367565806966895725628140782179161367734623422063822806804298412086390361966385917980247951387071714453275761553445679801156837474930761945457842980187450240759563490772902461154807851682265169052403188079210266966089236153137664405288215917965535439764376148824068389618601775040733364218366795643779030132725394981197142858123437392506226681518677311713323142654775328691957134812943858330894803358913779133286913845086419215908421208645786467310604035943463760391015863009754576347586403147839882865155971447003837505493018408223567016575331336280774412208260877422684893264696173786673735061712084562966695126826651765531664466061360773629160208265726585218082711987706990096571947165518624530491476866346793502378356486252736369628572293433496599214327417952461270972811764605439073107593447464914385069310090083880036118475783016936424877414965206087129097181120287752599190352305253536130828136161571664791147640513516336547256107450357662039471631617592325962233907479372256647356503511714136781385874336128796693776991905905178838625165824038730307397824690151277596800950409399689971421472400844690966613617713643112839578740817039971357484939723414288978949171071766495492361077727209451970804678793004998851108036598896554554136639212440913272634011144547182169061185148892368776793959970111366798351373810053732573404903761876958703018006590203340475378063491155620004094888972010285714662203189747937583561027666541293334860092665297269310257261339796844049632731339568691485399087228418482159452678353755649940103249329440920825319201369001677705409817001138799474978498538408448254310912034816244544254837290567968106634774700138772533432866874956977950140457480514955648859944078971085661461042931896013634838138809999610780348402785050868541590243703886258040082742987598544435032942271862769726067803423318717844216710482073530538526758330196191969704552257301248277228170145204085987883135152002612856951696015688539526117866861918822942584393722805561020075342468481921181972354121561968054792359949520003840819089574321993539933471528717630702297789886556631186180547621927935404628609588288047999539759018126595698183018396905943190159956095881761818701016859572395277496628370726327794608773304296067862307506280448046475014806408776217040625311973187943537593925310742189287202305219288972089462084045197311164359610162568157896196808715282147510887608029192033545576462873509576233857620921751436867906821232768592524475459430643158633424109828939495316883521767151444985930592448685768276132597500648563705375244209122397156655981370322406484967005365108004902569090061219207037671926090652129488602812687694451166493600441723043224088616472624736128512747604982568363507166385759430521974757240111633366575359298420266092820213383824919026728624255679895745070314033716125516823773185935099932598141780821058144025492500998564676519959435344711927414937279709589260082239402770025504802128616492969037455984258743709846731528643189723656796380937841074167293123651529690429366916764814947244406150777407295438083842690039407773044647503374981919461053836497522731410453051104413905580019531099775028073292045982814823361592856511942487367770508471218177499671770981547544188292876680582853885879331423919844399974669062851462771988942128887396774575413879350312538242894956778692631806307528380362394753029811138087799691905405289718128828823452878914340425693546898087107762862686789409970898126570304703741512428869501354350808804755875270544813180647600072937665897935285636883423891409352297548895208179245588844542856250174275543651379028823114255830448185906625247652953258171675858301989177206934569726146454157908948797717466313386240935886192969827507714412831730905537264168285962184182483965838253587112302620595906985160461863927385542202975685948282103730158597706640028451375527057645712939233313962721447918938813044491322340043290158269669120361724540051555458613353573506737601277195764095705680278861350883352453716800442256459186245943869290579968736114679839006140152332299946464954367859552662200585054336191158523784928144821471422808055232977291609476646487553241363201911086904099716689316317691889831621295445698384947521743467706234892046806050421467092826462002832243897674174638679481023900336152467869005731074853608499609249081491091039396354280626950800235042621465619078626389839578776771573798229684001568897624554510192309105150868074563053498618998792223592788990009347865650730087482738278944151699174973202112956064008679400100007987095170684828823815972934389643549382050417457205369448645505604423999698930318403679801337962618990954356929873519377185321493927715167411217584377013563710032339543567368714438195534278044244880597033739880677882885456144094721896295608501888849190671118529756924016419783919463986881896573655588775424048044254216447082582067923520342032023568747778902834193135207971342536038428024200070367852630287965858448910594425209480149787949175500524483559842361750053851379383099923398045314852101220727593930825788793249993167090928054638021524765700901437381174916554098266704845196164888527843544844476089101232260362346535334706948431105273768861087598681776639257078427089884315597327384997741752996816669518993737162730983366659996573117114133493505964527550517441775856947621544192925735265527638499183019015178333770296249382554020173582442314203205830692911757320612078080512139402702506152740275378364855914860768968321697180406526412359743386761682897011788501607842110180443489335656322333154668804355237241390096971789874027272640408802021493748371245313513888696869131261565463450702479034619790657807930477305251196974319885115595271398736466130544522855873743144970061447755965325792970588499653136234976139610076498945315798300590486801403492385291814454828941024613218520377273320300946019512726926547664133478250698754403893284302918564208693105110911198792145862809048503197444220575726373936272236298868527958471628817664731579309793573816195941055301543096743586466462520387747656882364549314716012927958210821563818372286773628616092053442406412985231023353118362320249439651985628290077146333910068508135807177844547989743714716241104814018631090263874724980890497059822516088755789776606543594060945102269248501913337382128092404690262926811930275629032136674281196837462673320310073092939577281019690941179439955681739525325104609835668947206557437854175760860323193606902527609638491453744837787567721506979068973783537656125231444942146332878558252729695646819511949376348399402628901555244233012807625155850964451587241507152869324297530848040511162065805957917365965513240970397145046877423939676604736812365419969941166764849519814185703690089413111676174970152575296538826133687025343693760091185377795818445508966642492570515048895235803369877126010998392760389336261686170231123629663120086194351525695497802812522449208899356556743480152181982202520336826887048269273338832591920505877652408960551005341583022732805334317410404763806704387808865515320358496916808553638510113165304728812123773983689007205622005456008251396336257396800570997849782801306205015935449875101217675612450336328881369996077472836996890336044619152257549301020267806083487633705315600681438420359625266251050967967320919975117553974209677769442773959294977404896412021437394844645940027365529796633795249466048874888058504121653312857677596939819584213836684736012862640179884802147294565337788004542472990177055615053834999896254103422165932745245682183219801109981184735585137018034622700470482643857515087882233894305028822397169914669038108566613547532657842714210121067510214641492566305983242489985060247104541354867835999483810824205244069507901942621316441283746695663321523652538503330596719071123417491942696077361324702410934234920863676513014611559191375468822138399508108888730583741951140257995043173944384058787147107167592891040623040193198142141344699568531495166497698958115525485048494199868278395964120143008036408271624136846999001780525011641391157763115002076530609422514314109461512572945945880306216357485923320873098715632925298309729842523505642665405667076614015578387873785977342777410752362672144557972014254605183360256258214703167409801364971602914007714037794591129764433484473833619962812336790618804482075540420276668288123829761445491528117850452581569186689874904418559374845699121187655608172682231245294680957332158561078283729336238237304972124924162647306123961541560805207077354281531756789198109306887160327803676597332979135376813137602984145167648320256114043755170902419416763990748654359312494350250865853690436231374071977782982384819861700159826724386066115024302575263468578511262919414338102655838324030794142446700460957337984793843931510949518721128067216644874929244094478983443214736362687484920576712732791381006135207232464531669976338367698688408738598386018855911737250720684954333954272911823219479572946589887756759416361009634445013237138281417719818316140773348522637411773394359346332236264478877715627739842675505665489625131818183800498687109073847058101560221794319907020850094401535866746269824128793168690603308515375053981770415673746606699245104556524647290325024425930817278863971245747377894550092927422159271130356723027308716310156228720336902681421540470100584743972028475710610941824951885855619264218164278469809303835672841476511940067069272562587706935665572014270934553073841002671427474896551760951501617452220503224827605916565870708156663266179664736040326886861242373959703040455373092505801188534100949066651778029440405199230905219046482754554317951997199009306225598197252031652770076472272792506269132474027784268978062338862950925365962104322764943560286030597112044672220331653430948704783980823391628304498117943231508406754780320961730117355705824826930407742282045748902753832889718471787740643954109736886399992113578708781493358151990534334481789528125938081270088267581939128941877014644460741736182005704011568678985411452336841199819521069024080232808599622976910432422283987106751980290376568111615256923362606704859060674149767214008180784491868844769019055384316222628819679367363840859639315128793171658902154417484866955698030113328715079585045744496206228245600966002930639207686179756369642106954962513482861169676878248003466397834981823832231492948324235794571379819448550372497337560734125945963289855987972279849135943924112633256147012399230697754226786054251129196046230963250897119592985015546525561724947082816529886889589023545125216584283555317083387457453198814906939511496649738861607618694256114851896549725927924574414230507092804745958648941801096711615708829496237711556570991128040436589000430366793744965552386625038084611211771343273074541378719936662655259233913371144744237651245372389506783720418033142687655768789965354686383782007381265822027565813999393869217622841033104698041964742843427871068306471256524764243265997612935678830002708753874143668335122148694102538823228331228894417446241770842264237811603264134526365129780963327738290825360740880183754694167990793978315748000911560860963999985191764349940145949839393394678744589576203013688290504365032001035412961972664692879573284144788404960390683414258944123769795474687407875260968867722841846949580772906753460061781566930769590928675195068911523206539207880262528940867222598353341123909479882427400326331629266508650887770732137797578970872264515998316916863144963657434872359170482386191711455365345056595880665360770761835046197175343780795999720484067186017856883132660284997183479008514516205470174532141021759875002366998199507806260619420784175784763506778284976591624217687232988497605755465693129799182827578850447642587217550626214850385260270067880279199102286107503236832385728254225513514841878518954134432842802830548069497352839304217598886266809608921287940537557620386676498260142335106628550008012812500735432364913072756762524126414843264527896870437415658491165063100775310490747424039921638354199517457439886359721021046356440451633793120750268871484455526269164003786306900090468796398166730560076645699203584041491323118231040474218259376837075340149489452288001026515850951980007713298020639641015218268575291280139953859136385894250904551397370403715335443760408046651211604869291825651109826656182719010587487135071458614828688084298361154634762600947068479776105358700663980431201115584251152322828148285012087648603564996530358536480685912022193236449382665970107597525931700545646704663428335082978985531413316973503737368885345958080608819041399799955516922677173890550121321974953815260988849811838589254837870029091844808318457636730399262985129130332735903668696527312018192557588251928386751510268322798679381352657573834272890790688453394043094696735528140256057341589083237940147297570307304505275342324231154659984019551835187548709882782505576365509507737765653310182484715464494250397291820791801190986415339898230442078812110279412790457554273595648513332318531989813708252492874696018053147565526368991030216628378154907404597859036561680169603931007382018583227732867368948476680943397813133449256355901946873432710236734270133278984716834461453028187736575042189709730905274513199955687114431329988151325686516805507472611697980976028586875199612319162240518981003742584020081739071923914653808253992917260357722713861512538004817330144672810681078365003161679904367682963162943134198428752275504889181574262600799893470728198828728548521696442820690703902828886113725687519795054598405551026594425410073048500170576381058863815662786957207893184155827390947210849133265498031599989830463585855131199316880754436181157556236391207589342375293102461928272290674730539151440374163655182873812877371973849245692886960512631039111590826995855732872305094780089466743078452520443552530850644145318074591214408304715200866702323644909130954515585196828515715987932987582683069895808794827008440260970562235688405325251884041324383981927227083401006225888536188996864529311031115918583501210092027279617438847211230666108532610548463190489956574340851740628751125396393984074452525448196700920401492240947545241056596988940862642437062460016592967812455769051129394583119643888360954807693659135864488860055899464986114164401152137613324802364583911176559024369294256319997464287105183415458171673673045838036884384728529661243448579708802748984854589811379578338585410875013006812082835020755099869415596384778526692494941705966322764953841706393008273362183484530948726573924762038716406406357969106354845125544196282467491087279615263945785608161916013710073235645622773239037760293602460588650508866027917758724905235929993333131515511874896064257915020597598463050414895986594874553825593423424704733019661000450567906548917188140081419609724811203976779721343861480586845247507229576564098921934509343508611254965312551457345501927183095649533292458261112786811309362127186883079108310690436973287258704316800670428220436971944078857593636013523726263893146379630570539408187484944415773615385128701834569465633847848541384176723241399311188927985757721718786194957633714632987690193461101083000765555868410823306698596787560945229926266577316752827807158521533434300612356413715740694188372365297323006244068238593524433500700160007452792178985184962095811313399506455865603316459925223636282414108227464689882242827804731339010089265425358551355082630068055741813915810385905314438213304157420757204023887873755984975668391045851234938230204175323961172323155420523186719767996795821841217849628201054412643111289034490110110246788241864253507830997299327703483606161023630326497263204617116939880775015998787572168370606574211910324511290014517990552177433594651700954583506270844109539522659821050414546963829763054897967165234503433309297720761799292696938775912771143285136778577898686303777048857598601513373972094629519364213797761893115851371552747440475088109928093668220486404628498177350781361145416264860186848710081114626149801595489495723516830494534473118571630833537721458684217312993924084030065549310687758563041450257916740326185254703375519631809695293646117245665541184875040037454877004762351387106859602856011037762823815229368907831708276607313997462974932717210619598588598342970704878253747404760230012167435882236114636064987110254904914607085630064187137473812173245902389994702810375387202544595754521780858382670797549190390955203470036571520253394243420225954373706798727253403697892974061378900461200151858773905398334166911498186252262089872872716317019982805269684990724860963253907892754444821712096110726398179486169538632766364498328124234986431326151579495869931424930516892692783443382383160591854422739853092563596609207582610201742693917507246601805778459461311274668272219359273814258373375218509973461803321128279297143612011493343018671095975609071988855093712459621407639673339806756672452045296797034037431685966687659160309651442448823720233918752520341721319433383404182166628464172242853557458545538868976599818814344415435392439826648034794312169527284001106852874427569145007706362184754670643820243896279840105013269535170396575154163341207558286621975604365444478145767340018960116576028637096700464522251014486757880915767500155949332326032495237205662786717823667776296243347452341950410913291845303492907644784361251850769398320407618327731102306532406551425456448644832061247823264667169238279536507244127114835765368131450501750512423583386914256402454352942973062496922410213448834063979994125682918678695325722261861065707952959143934646895756428887251386852565660310388951048804532139649512337634379979820044753580340736707412637246253325093035355510383609719601515580274451812077243876071665195925182556960263943583778919318556316141322070855490451485243504152336917091357868744381326777810113521473075377854216010401577479930677484219109503505744111046063007293842066257684393577411083590926191849582697407519115344235734748929943843457894675229053876321539262335337956408728654859493269474959736017757892619692869532058913034036468292632916966068584220552421641631210791758471501896055965040113664797960601398766120763473694403960891037368918515394661565843719177946805697941419543828883315879775336810650788424729554581008093460792505354145986869910723535731493925343521878382221038352438596045534824679734354243528537127430979980899703417668598186412249863359602424003121551618754343235993421707079920600712934820327711899184692998486535513614209715006752565249059375353368506515820950448083263101776602571502064894263290642675660533389347498702368331670347719306920289631341556975182346529030719844217521623566724381310713164198629398516730618825863070365045507447039300153692695193037019897769470527339371852731279064360810856952293819920676459015335780174868779989795335266663216332954173277692388010971473335857123834733917888083013571191463000478883368816761589459119389286357799191565955420271117790064855930599706978134736338199155718985049092540128229532529992001377701111113692237187742759497280346718299174855573102567870741006016601442626501479891203592660851162622811815922462756837139852921443640232630956709426589087438297913469252946195502140277393305253523599928771715641550747747805461332361584545226021142386143536131899256780050445990593516515090298937096200729317126537781953545830733184917787639986964846200132059540274644610258102187214716456704845436691730547288612405812403657231581278187659037128071878763317970581918860770228141200332367745201507918401602745386030073029538397185128002306419140727695046526122924860320347622640495032441454804678821608378741438129156223973342387535380356560158304109990101362622899268114427644604042591331447434556483005001065404938249364153958655077887182515762841101039314541815057891709220690956499680746514844668163667188291813343735938810043080883820652589912115653956187183603088921403461751938543425016370680445128880063230164625568428869742633121171978024931266174502604745551768760096474791145296438402246074417500230144786745801029847304962337652959631120328122901718424117874464717611567934769259048615522509691748871255098332998107242524774163409753867454299740115010134277830545688677765466608804936367022964267798722772200646763183558423708722529360502509842618293107864819166129670712386521053031188085504794196925006234811917559232074002920429950000133184377343904493011523307764139077975358096652822257110268578781766350924162535876593962599592467612600266953565459640479649705596226397895615415843059209321878300132878187146980205553907725795989098188563944982747165359283760007960954042468824502988718652663973058001438040981813951884923573578768065033406064967009712542966633807836304001107354004184864779798587171123282755876836402928790423737488921931818760078721483369094633235574045947648347538040757588183966624287164846295402606957870985979636161880058775054212445720785055432304395110074818568746571650033088637038758870924271337767386418691235617450018277422888209859866176618450994108031111825669586580156569990801780345292343602609230152203956189813182899463687042116447541724639441497472670500676329824106992888211161002969730666394366625497269132914116534779545316859288999296263376674011011972440384431898227293254771157186077241092968329369097996113642324229185535738077254373019358916943552177221958136279753047547301376166039244152631943067356348483949205133285935024711049726328377644800020748495683864663225413960566206801105929105525450459204220382008680759777529051866374789207066289305771652260343691806176238859528939926400226579964251320501038131515877411548108914515101360581966736015285726238679468883889826411345156341930289870883320689759635829013880114051183753631868414256882783333819744999820983903944531162219543088613134517286389173899363176294094544463447613324587575945291643768288886231160008197309659182897421467370811128931873700226828458137822560838355101943092724411842595425657722340909729035175536384313179477759764643223055830810837306647630380370720960071278058639927177157607722837661050128435523315276870406026419371623140955583701933851389198479299875485677680922192975383525737138746318904922567939602307775042627198850247108757286830054125402335749356126932316138108790306255693202900617112495056728577936723044603532355963868826633538774558287036892002962334734526097523818569467653672534364158039667570801970566274552679809468122159122758280249424148482259261312910834200672919105407879102842957030343062982366036038194809738140360309867454834352073259564873741718313910103848311715262009893692791119903474602479919559791211844079827717317736916184939230622475558259697492058496186191035248366410233569489337152136881468695899501028342444074089723241319489107771813388629114470425115391171866309205255478932519704450296698691035762775571816869396088480830233387752955800720580702634771433142229380264658037683847820775813241096175888863633713373219293184538433037196596851593306108461712827369889464801653105951839355245089025159584696973122628557599820787308924605416431242129710729953031226920617189172857875862070404404579222199461670212600511686490156292552380810789772096069524334910211668306037568457075746433261854130043296361109182143439531922227340770255599410451946313186150879968258217903679674705401806727496180365150552004931042217534723048414091937582167016641250283982555951670118760395438785113603688357453750789704944034680227278559329933198935507535280164058941780152622412162339233260060278983872439032313343464961896558238638475691616357104047766217596679344615562793185746306212453198208458300001882259973909002102342090942629251984941105660382601830688917636120684981389320194635839878721979522413059482421628032994426159232381248843737036676723991638479885853774931959707699294889182499027458729709283261186940290807056102638080643385183202263355385395249463843763527176750320100040671369552375302104034885010395685491650751085500552736477134158212515237993250671567473371896413883619770730255114461601569165961571913636109232158161779761733831726292645390528043374118326074127424701398480176504697161411035188045137291522118018737803655081109482312366290694881566968248871623665557610746872320903903707145873195385728711223632484738768986019335189798797121187512024199198372697203888867157474442420592376243833943907766391499517370334780738231733852091227544781331414677937440567039860055180087265793633842801610743186204327846624488674313807681246402200366495720255822781520260998371789972913098623623966925020194663927208395360542045870382879041635824616870147072695602874420891866768504204398558174809157246671869437268367252493289707437126318925583442406430576623170436948561138126993296797239645622810272034226593807820042559703832214504193159589803220772150460827809404223175884216996550878607119244363734182855521693498471727832184743552234335013905686645295505279823184915027926976749126225118943040829520909216958230395851829089899118091526859328382403016605216091852679736477937016709069633835356298672864765719858430306943549722076332518223032714467580268436338678269388691269923779869231904557075365095868772621453635319926459595893139081999906718806993928189727110283050697255565976361670591078247001345774670613366804236237267737995704740100064196237806578089457966076954292658105936840402514381677301168067517708083854434112875970268066612046422792112287037786125095167396163256401702627790855542712395034256969563392199824394523868785823710461789125874325084980922577359866292691452089521842460405160046924374997836180726746206135996748840011467210101161452429762096589281968508590827303473061056700182759858804813224271012519961502737276108041559758008265802666894163410739538118092506175513511379666979370549561130763286464878887260683528492672372852969332135436558625004794535092223705806496303671524513326861845307509778347561311277773821481276262502342941816858592736079669377879310245771704028211520619120387007845280652592578929630135795326655722282157029214434480006223987570611460437166372340040797371631062833269907444280702961454395141650472302320084588663502064776661564748450949577259223843732814899423187357827466942747758794205814130227298671107001481473302723525940443734247245963732103134441798493769371895246647746960742427650160244743330312697991056891138348647936581704887118249083387643779563553190905350196419571934491800328204635674745969233330499812735425533398620753111106262519238966621884219992644502197532087493636242010178760902656853518148700193282031076428982777491847058166966421315826326197636971101202626163736826530213263858872121975675138293749688149152743909810993654608388500577770641685900057236582109577703395990113308762925817520909913529887798959757952303265120069299270606219124742796864569562835240173962593870171675279023192571562286244024368968618658022370816377443567674445527500750639312175423420912612483405817914421692873523268035154380462216394212582104755028681887378068714330863548540770808429470190789961411175099950620389842283937458661686214822924830317624014690373852879089096337996583190704002515509475547520610855307279204498617135230831447559853617975302051352363438505123786103579752166485211599034956088531702790228156174888758909080756314340565133990860793429816103371913274874444005096209953820111871975650275441315892110159324351221196854919702619967482052288301641163355737463610855892254261794774360512864693016885578894694832691574597298644092659861324634515841803919473239214678321312488149860808102239663023946779660465029802089021108973897995823361635660595481516713599207305487482845333685810121799683957598338061221438571028792930284621131375301012595648404859679057065135517698158728939524393526160503882751765277263625564274188858570114177655760483850657199280819113550196754940903222975434886858086780270125593144546722726985945297579237616719573035283102275437217325337350338130240750348323346122473349150554137379388823490098710714288959553809775057537063081000478798986900875786790100326592784264836122826444634805399434201063028884850657287868944785196337186753221655603145838809654940987943025638873735373012615985006730132163427316510445257923119108680730938596560918222118454352178436917035541594686325443365430808923149146352377053168963027380525876458479718583550829081157437323560833351841990004866420007627990526587979885317617436748254512190481841387350523753014121916806094241878975023931413804268357530481328597015419696484594324328790196851342952443417951315664802379863977575279339681534265250689817746554158852673093469045148794510147431757234894408975321900771755548041800092932770478857911390361505700959339797664348024953998542880898210010815477900450135242873752890507890673445349695759657387700110963252816070130669733784222878608875823728518783632653654035035200163998860372892224085454484315992323066868859874246569380234830724834338330505076612446332593415809688455757602601509039726302159034448367489033707676957719636511664984166931760758730583420589292330857513704473528286106167800797138364703768981039638212755185835128044587018160149916349445495002171459672948216214146441891736247820416801432101187533950042621923117515575455307114968561353553714173484170959817347150672118776388748756602649238454218201505083884615372449432128952180522311560827116743350786984241668041960389571776508161520126048500693434092355487424893791415998226281119281196154693007627091652802981831260130539916754087304678595162401460137797056118896552702049790312499961617185820422159942584771422988277426938139954153865172438598513031838468101333174399861304083503288047855052868463659453464448801606099339750137633029758618317645727409869255834901284690571522083273887199387618403133290207768307586175304926895456400471550552771836532375829108944104938647779320905945063770781007550660912693635751484165387087388359615356711481747892613838003911814011490874737318525028170578312376506275428309267124361892713808215333773327494476333084311192073735504916499132045406590133009067824142921568073455031584658845161646230493122064926502188841036332930834107300684691273330171342547915425291767565241798648311962623875541262225180326911378393225379026919606697500003276305476172749328253469272907128045910258293162801105896901002110569019995556214857817240393788012251351612933183652684101276260860178253171378046579357753264912136470962760623864221072051122895432479869077761291001560910845955864089887515786923655337460630385590011631214266165597358346846535985391548803987124302213105042154396365181135097060302086933410340633541721729992572589680662169216121662419159985923684150458922587749931197275953165519311267828150116680318557087104716019790232237816487975048632498934432024399744119891138027479967762480138811783284912124904741778235463190554449347328331415283792726650086584512384666216235237676963568919032095210187008523595287362555546516374671912937915962512902722169362714012140013549941764340237377635058310468426134092285835809760819565260297925452954909961925613102363452986298088147795381398337324706855842103777945733196894954422742545050196502850770275307357584451812295599294930621757393826502059312139989274437493620546014527223904131144623197954394596911878056256096114502416162822822243414178901527849131123760441174876467689489811843814669714430446277936170598986303727827540253753216016136663212754043412720518254969054989293091982489924848259123801772442200786198346926264676787367381491166599546606988210779594329799918100117826955939868953138825541381584493696934311137369828504988494605569503994192059985135340522981591669536883041414597571143411971798003967070058424245772093505000365175128708045516645269171198332299484186625898692149722486792498803156467330983809607447467877302146142648029807156877139881294514488601098395829157023434706254978524636226224902612596752366576410283906346630332639031766434165545376524706963944120383213448436252425812002117708454950828996309429701410155145057124157742531502350204726762121193875379834560520940320617105755647597244977984643241628017890779619312270347693283372645488541031247611495608829016075323007575462075298382852380216049535252059677641725662158642540429072046269335306707306596698388031052646807806691316235025987883405960343998178425423888366385587221734808001306495499729104041610808306451495411808588468875487540861837706617681276319090605865044879444043201286348560412627230077199950831428674572768616477144806120645206817359354718382294019961313910544504676661190993694940270511304465694018124350229989666424687240833213899041865064391839162458364714599270171132652736605528533100177711656980972348403612068674136634812350999051628919876258033215544058871134173772941709330832858912127373323861713080729047221998030959823344025738849227728981603233248337303496746062947877800764218003513979295989726152896838076420492557226584993159616860802124948307124502715984667805165228068012296996991119966696583137847368916171526327667839780866012827874317200726862958531681193268915843592873560331144615009314852355009271231192506263874764929085708020738986142678589504026094246603459623803523372509577988906695391173338413936928612045754748611679425428372232493925187475798026589017683337043484383885754512673418319301472604730715886776417957685507949487888023832541905139745068901064625290433972959180732360573634759012813160693363786342095065784131554978048616146461832361611485871123524423828754708638618326980428027386134219894317660416179201490262381831573218845027926578509853502073325996747106385869896274714186115276153084744297799336290383419111108049689683642526637457245541746371709515573726148048028160361197951358702324392051669745370321870715144644629662383580305692746862714437168440733088964100302778702807755313450354431493664775870162303546694644979817203932242672055500254543993126377215954441425107123796905364618320679054670775195164165042487638919235308122475284276915558744731248894160659994339717392203008445488374116789238981660789036535082224607412574458189374482344414347535921685960784202050217194677679883811466231057571073740152957874374384393506539981736868847108628297624127480287276819749513214952680275758782583507294339060160611280972072889501682663536017056214008987918409717530751556844392349649948964099614527989987916082624673388657654338833228079115299990639024661900861935185213467865619792578003971945485389496862992562125486361881614445910366480972983585795206559640544416235971792934971514850311170279137683669829076485025139408225336500384779318664557043383805494838094468928976928537442620587288484693359293611665294608086836328458856380438895023329198495833090889788836477676284838978382660923358184640243901533210644751398818563218382314768593669571283359123923504430132404419541690346908868009032810718877713412085924367238716938139387091582301354211033717916374890407447484100971851900495639644392358353475860014898563056150525034871397755385659451038014057550194108092652970163638540262107710858227792617558135196272091221950769223783591410752510783053273261512158626271432004186231346637279270590513933148331617342781782468103343745992101647892446315870233617793403065420714833624408187916948122966764375928186232630378919442286236360392204625663018023449256592041034970405733200649100556007753135692510719995500135098763183655975662401470609419854206844647743147215654891552825764820027458718986088912366824000800438209227705226312152301649340796689893039685685314182680976202363042865435598161743925604128842757774118708204742021956020606666985471574163626064625613146621196775406346061498024910429425203016490637072017752055172468719430680676429399930751550904379928536447331693682782755826685383683900839505456659185841279789121405063170704910435226907720952801662420227223039367265232293223999031942902827559707743353928246894716434195478080800162930028163960226074715487061454302679319999752478393696172349243715493650396186980759240432853068375209219945208863339023811120331626476804894354966090750907763030060773555018574457865134081008507694821183109703981816045415786395062590691282530985304736249553790465955801443866507249705883795808697713576831998158362082487738761396437715343711569214724631339027498689723690274965076969862922281692891007185569542265190682599691946696477052503540599117640029592769510020814762383974735904525303055891194639164096571497624544301573021594554149198248457866948313214221866589245217934246689024130227988911919709161037612751130868240973890545760316563262429831000593076781093503362072044318564400620671780117049881369947358542830957080574644471594555770927636277809102571402957930969272528438471533262906798772264215682797505651588299461603623610589344600201639156295065028803282542374355098830038972778414773201969280008994241357671293198686002288872612248833947653675219594557454697712389248597256258708856368406183758366382926411551904092200229391617738163669665141964290366778748175789671341965815945841985364836497950939064517061777039901131136376015110271446930831876964590727900335863763617219388150772532405169012852601126958489191369433761281432410791701868019533157758982470672645932222876032200168747820875152814396839490738768285708176316818948116534237824075647903295445723744822820623065894198193448515934557180009048200229071168749766863880194882912053110196076968877729963949699749225937386091196711409553203492157692404630618910315117281728126591276083182426897573411282665650139569508499103062437423109280779811810297717992560122511346989354551942176564427661716147815239703392322342199398728703460605984269781053846041038828632349342708257076804529842562689782495392052650921236716879019153170990411284270742529259739877883295273832606625403868735948352562598144320596680551458040443401335688857284698575493772415597460296648495714275741669969058099250480689316522433015691948444119848489264056138034102928903225756844222479958975972139307905390464573942990349650462748295208418760561512483237649278084672273665655592783623345299119331108936403550184071143959365015068470310709859801721642029886763653265334552325032812419360078889200022136678319839640433537652172470803097626175232087604368506128063780788131727128525324955312416414476224201473085609701311447286894001282898512864592252852630232120823088018350737393087664937000407208326933837834341370841360055558481349608583574768571336511871411579028749510199100895708774766499401398176746686598330675603732975337929191012638572810328602517448503758125468770342087115951257126947105103714708843064925989709915226789961286632079624615640914386800498431406551710427233520995345871909570087572478293828743124619280145989356676209094944840511189380177213348508509908748125716885475644646328250272616727276176376061480904655543974747765028238348597172072146586681662735082123216416771140567791536893076898986492609546212177315759449329605052643570084198322470226476711722832053139339708466570895431884627082342012328558320691440125431326135446435632360654445460162137047259636635878793809100255119895174647838256850703752355195943434463566793229519958951157943617213863395672486105778358852875772927230499955456162918143567281062930030914500150818308087778843583660500949621946138146392891189633007816727240671055280344836884840479137231165179020636075884858481183762774846222678772628609386942875605501194237578332614652404772397089609512806345889285261747809519286809986663426798658499139655681345679237549431385181323601197953096069930887420928206981679729554726108823061787683664891328050902937622703765829899933638227286268023109538560210142174768786270907952232399843326527629091713625216468070057907478307412687312046720773565752236472726771933031469755636973116961906873813396336310664591956226072195196242689415497113219102979770243832080333258081800170834367417536410772698757472417018455886172185994887528103420353245297410641335068100510448453778354302345691023015733556030163879391296359446759852649812287113606879081127695713185076586881489604515404290155954282286353646221310866501495348945146693966367349536065550973219062861189514025633295169120864249241349273156484086471732736200932693264296762138066841164242652264299130156463910334993869563188838691295976197256698208974681439478398477813230783836497130720303465768777801049323524808841963061496148443497003902495644175996990784873202850577213530749880571293777057718075925733008161415406424831466392685714750612303191701922991136819721064946344306622826862708959899395052428369183184852899482052982776214254745422533229340644135432263090085540746875012195516863847576640151640235048921428500552473944927129943000347729359294150869299389805952908946364531119597351228596814353000466513965542497613261037059289277696319285766886890269021985992854066753049413348126818123253366514070233964441323855524215785271714874118389588848612263215420503018397348383565539448578721529393887212573081442219518564910158636633788417562524034643652448225714068350578531018455648122358698108237581297263901139865485579552001937897266309357395262865817517950590535872800290473490015268559067690277192487457585678929723922326713219287342446620304491530608487413367305461127775038957430361304660225258665409657560514256718626798400905616262217345377697783061805758017269817581204558295492662834250061803359048904678225430072286386756570851845662518992750044284542156540379844443269358175913092249566450834903187114040174437971153096951371136142308615306483038932623190059080610686025931834975852650444256561155983657195899900609291666302660611434933223337454578222605861212862548735106106018144765745526587457341560906991136053786475484024766921333624305083110557204968367426856660044804892761270687383369539417897098204247315617999655276991596298368391729342787468766086030744721149889209166287514452670588956072177534369320278329983810501694270898402812817542524614110391516473741624191696714981591485663466690473842068385105873197063012915028533348335239366122553030780467338740307589902934843424642288680206362786158423163592596550626257291319668406454756170320877756167736857908633586104315724428980810527633169095678280448402279917190012325883654044821395304904184782542995812715450830083798020635792408687004627487347428760051265137663094100647749274417629625693731653758185774179715929264214478056448120850212931145685102061309039464471657615942920742921175685774266947486666820615736897153703838530005229995295815302310594279413411756697718429551957283632444610029051720556053282562357914097100989779805684705969517834986579487485158976854680521797495268422395119297291445248472554299175567188305404805332601963331479641667631533948604272722876959732900607020289143455014180065878170811981644609112961035395765090295502884612915619743549137927503500213745540385981365601816093453458876011279998235308282310191276162131581685741839507276756590814716889718928297504984284684231108603705836706429838914775520218957460189391438734098318162130314056626955555086238543962291013999180113279524480079628867581331866545989701686101765207310990466303857268074499991897738153457355753771515258065869702647120352652323208355562853968521774965688889723668992189036557671720822194415931279460325107272455994935206016910281486159056108110092774502223676120990188088237261392094130960775008135113698922737033356350930043294143824024064304717408393182011099744405264187281737882073350238628589938240171797326743648288024290391313645865630379493641214823499910120986637453576623793254218861534679258177214296061053898900882455842620420646316770062258931201171636146577589040001740400631344994789938559984722979229531712799611591372788693376375827499200980822235780718413940172351549252604485793403586002325888367994657724683864862347585252301908351100986729631654256296897371672489289359937284135513375346385389663190735882988080206050533751742465587129580850820464422437733946504095223048068492790411206864048349813949197916278806113578450870833206579408814405841953194107303207993295538225178330947435178604492691466908079074674493926235800283510894926731492535589620253152190685085031615343520164289920599357141954560679355104994256789419182182387012542868537758692585365868965331786066865565799903813602963999467561185738404595827608043562899611056129320589452347349970010502281596542742241578093035358652199876080759303717610277002919669041696904750600809334303706831529666601470538825648319391619383561716899350866524189616288674968201955618443806269622241311452480234522461655368244414916318670899669270306496498502939646409454462109324774867931397395357476184990665258337988794391958091643369652655177054357713083992717432129433667229819405807970824433373431488865457795585703451320708148003490172788502566388355281358226508016180999139724915934524838474666422006683161097006459315364005105099994028031112096822409648481105753410449733426298897058117674267648697019679808570273715482465075961127384827977533482451776989148548507164673415071796279635185551412826823824285414305889178233144203557952917842553716357253354261769100959488894674193785052200752006247321355499248075243157070472684545217830166767539912065967718018081218551671815116388190463518838175228500961162871399373083471666158935172571763246569683979346257923992083111826447315489450824133368479902906295375741004037200977320304069351102856139905959664154546166508643699984006860727771496960556401719977695006126260407671867060376793799757310469121179557271682859980285678839965449620266978367955759336746165063925225937757191932100585343307391227810281708586920974347769187482774780255769114309178239814897442946382587191311284335816045134101201139030067487695228164366571555410456614270815396552634595940888929471955349120504537361848138179966358824832961302649783696233116568917910306664605602606610627662703112361585905241670861648423066909181353061495776968933843696890930183728399444833745620512699784260956782835168987375774793536569742080566105552878480566345239706486210625415875038907363679965257015698264309917600804969182284507945337436127284574933530306244680472210591382437127211753614765140319398494452191607011770792506062889577994560435121354960437736443222344693106819840721671499215315461779727114447639001492769782109070193370518586295114861979296316283137629072235657746669921742218494027606560995824755532415275024594676752432926392885016909674994083139107308202824148568135882826229456693317695832457570261505367944315356384093115725992380733688848075459240125788853348691958665200415430710307703859174153797952059058602540323281097936218471837771770050075756785478952969620543396978438159773009262166604660180924381567558746549047189621379947102598465571620870008818962235399810636665137192729393772552319248131135323418202575955677410428133811590247512103253654084659325260713190340927295839900270084718053569449007110766443610300720602698167108618726518066112258983875900949764727514604718104716004564495577504414890955407238326962592337425238921023781539904897472587538807172274395249621881211870108546126316829848646071691862608845865695203233571331904252694371088065462052826634394924649239730863246858690261414204779844677018997901816387841309420603361205911573955361452341248743209097295170282870142037759322782632326863980334153049870915992761370669390690659565989660144692976505642104482712776226863478486562619522556529586294026253275559810317321639518600968067582435023550697903667913925119827256401199469277198613338102544806906195499533789500034413070103732192976445636659466699447757525798728237589859788224740999128812871589057242920123829085267957856473743957430912727777146143391166966086061926774734494376234033048839074975214716841012939793468866858356085251764591158686932267342430344101082272706021371701458759280405794624395424430796575979209791380796730951872670588155137115010493788700997658604350621713536474816013378325441506039562364206599685213810429532377606886386583125904644684454295757225763962207629870065990383459041211097565040279564219626335135499054689314364974833593140819783535947976083670459321633535379318183259220201867065743357045971916895188908149606400197221799782359408986493089945816100061130975995513134241013923477410587994627863429506109932306140705610689061170884653181252277703293413716118597239132681707783443092615184511252246785800532658935966783679979694423135578506293550230828673894139287657313910327770688637784487713754600628409715667279234174351011311131790702295321913398445695318971731913257579245106218075896867896682890775844454731923962796509246123699877032770121639891723767492214073281419849870487590704486563143155880986998642414534812499836132786550162069616520860881022695218000422959061337888035373314388505604186499375010820379145135748308862940271408143191453550353523879690617302776296394949204617321930339677189778900454509428495495425320484951364343517772071265533178810705391886465754488856956903048365340324972419387649225066770727294080396424348715633275348917336694459108679156105451687568946664840153048616968716564852472106184702490144489942952768804237581643565578527162840279796630908465233746889082911160633699948742162412522606857910099908122139625878755025615542776422311732421725052711178103799314984192320354785184668019427072552821341891719943430554172674956275826647261850780624491940441659970056934973684626803027764186748048563452189785371456593694357356344797281423862559364710246318155660147618930328891028583481419446649125564530363868381585507586771634503558664942319202958850049862942694403516462944571858313848675089130808865090975572880867675413932972795464877849728724679162938806853694727611830591881189239796482718290765268003321831007121635514220678150417812946507579205479969557512248800262156663886699821587041634270567919124246914527823298144597233613185741269200407881944924565682171499321412769291639385428211291897983570497042388518171323670954378878973200654090195436391364110582687197373059109267454094825962320633018133117131500740069529367450461674514623451319100886466712521548936109197889826341699458652574629962011155657401147422111321018837792282031973663060829605325158134328012888592451120753498897657742982428765641746288309148056497486721500670808746650183732752592806119393283874510133188265140751074312425035220131452262497222583123510050043578935598678903184302617198281947172959229940573744962000974133231159753156957028538307545864379687574618250224039493665368374762011179072612913317541868952304260278376132491261015619762156211499730225892112399853069590123358740110131306553461884810826551094367744018091744329739435311840075127537740567363457580899715048547361047688454288751212947396260659638382673283853939046475217453306872627002020578976403628239755307250574795338266408320987277429309008174302898758149421283757959536188778905231025444594688726388127024991644308746420569059017686341751208823540615614275547164159585524997555868867892988562534918739167736198474979205468233318065519361126886855034911851085677818444064667209092922075674580257039647780243322465933710249063141948206483862972548868625171394326778483496036947634728417088033780069061297666630980534548738144241199060764122716637352547628146873114503197055866077356873088213827575670312848925399508782659733172842879103872493427352228944367634226922680093079940061061899150853592941620692306344599564526139724340966147234810197248174778517914256806421070441300746240356186401439544647265310180322458566571385810508540914442507420953190455003964520655598497080525882830862681207477401810767292854231340963530978163649761454691146698376767872557646596340142902079498861847734234751095857703900834129621798501894507002865787754634479852309419453527774159967039683409942401083864472148687143682101108128816854611995646129901571314590021838268156365847303657863709275807775168898842115732212004518345822983137623911501738117313094682446957552093798608015698620046454196391157892543991379514495534807289698935908245363285769713900926960543409175087522826252355094700157773680989947744454501945718885360132046244381194302183927078998652562874430237170094347911028698283657662382918179603202783494981944189423397326398663954318765750024147907374089863170829034221901671865348487576115891060941478478728993973674443560875976959847848049403231154680414811362606466075535445269762969621241722574641491605160683155496128184399817894256224444815871488532659906334447258293211396010245373477488931994399480847377021063010622192341184429831871218330322586075686786583794683583898668619697935128254260564802720143076728423258709431231857201271177589683834935471631066738020857757632307259894440184998030259147423135873722258905803226670745261712462169798052156474123301874863131738320940784415392183447781119607018555949703550237145239138171503859430108330432082378879034226177610177329658302411169793414890657763862146623252783217518727203593079222924770353722479217460710929134955694654291369405330735038084531098601616771123249459643497624622691549578070716081471494085513811111832153764905715047948369432441710911170795811070878469692093605796341681422428035157062029819409736965457535624975776704917471584790134286318226107704058339429098379330165713177927434661760679053263793846428240537319107474663336058759097863056175852311929890299672436837715477679468450712450032021991635105508691092679384625405144256517121961302168943056094405062159726920129118123938455660382209983562171814607061552083527380380987851532691344456827711548981791228647047046336219787963176476373412462029996173700480407292172231357127493556904013938580067840644890263946516878591879781661703524520661056958278920335407407730799976194179284733852695270691427160651467000923955112939922571774981343205356858612754302623597822430882656964510495928803251927054639505546610566368423784378423091052166407665961417232982264528084622100270269326228413987454784115540356242219634122113118531227587974142402288147917526227777034509314438688577304578805366561793425722480253777976774760582443128871097105276457230811540127288101151458577071756455219735375957997713233089818933867525071577089624001430110919564026633206061614463972088118458213788461612418257618100348781215525441608705936945724456801612311174269908783431856856146900985971294967145054392227026431378735342049704897796668201434317475600109235030914356931560539266328333811214358558385317063257540035135861021051250734427047226566504751875488321591111054127188008002002032278472635236094915088455122175476607681449757064501509799081369147226233488193310665570864823756273347350811487520384680092681908376083022524091701073546528188333378818012324981779874033762620873370062120968180424507929268278640027631017685596301819538700715814524663732417979780585570989973927488956964975086372233026593837166691852487622594060036509914449814317342056110520109837220161026799522301201390849279937555314822332741016813990496907068906311209803983940901542276188527834721443870955074180938275597677766220898374174731820823193883626647079745615885243259884024247406101221551139969000077063596005916796266746334099857132686834920823016744532040074221752956020206799714413190682986120515968652550563248379478455836917604102109073448552066073380664763115768591039171172965908781391041375133878847483477409549917446176571409783228227783561596625348729691816729361929106397796073193440285120756020227066029300588778530691359814615550643520122747590947801090204757850589686586414533201870288322680300316922828972947438302255019690323464057700367632294602851307302552819146831870599397654871429242925287383482035208586311128213670304222868627918728945011245254473218589536568562374881710264000151230222766461930188194395655986290926463497430769990629680976528336889589530889172043527106762000459976860648177660530955441020557401334508289998198945588989068415613030409771500903531084455820166706262614552913573729383854277354594875348730101376591085314628885775765766533305517683344911122744573773998598764634855319482582271329972743054223009388725016002064860264565458922879473454023212976935144058702032946335989994476505228260602130653510973198075849674708163986990170541693827313787162912199557570746701338257913111306566149297636347342051800193797218025756643842776882364711284044322444075210015701520813752065573169968532818524438632084520615947722231446267310808314481678007489870291557931968813892691939438421480390781202300295068506024201817233333270882288721594062101178177536482889816216487903858649549519781324591660059745247760054263222503316980919083941274340158972277253944284798667931269992626108888838121391105964371235662407302448507037493810721368287143533685231081538406107744173840787330140935970915488296691575557982289162148564781202203708418008393200876180772572595602959792499316368798664897589176254077605220039881029018207713503893858532931622130605329598107799404502162365184549988808507376091167601201610861964646060929552296683433573227018573217491697309501837105619943920036404741528292711788777057222332271971086498984546938589744112846880566900554803812474440928208986531296384350746261439875541338416488675782890118048591147226533812997685345847664094038963393898068134718337341866279173190675550929851651701557210358979113791216116208183940542412109322283109632949586591192108117243798318482997936525606169713188138690938230065796138427756854852795714368968680548443339779513810173772718187595556944418654431069756864417264094711549134492315529486849908328737415230877341645140920807700024027232212542964766555234544396080441490979039460638701458353935928714118247703186840162463560958971554253227984569936294281775742470160880673113355822642602587709203442269343556722735818028457171794852135970287692451823776825726530984547991201301770956959966231900161951955438023007955980428246110448554269242719440726538292051676165481233952599960424617770662490417109330285862785985910427130179461797429885910304400492091074627970812973882624977276559201366488396919218623133990309713646913739509205896793075501898846142807248144313249314065344824320692116744162878003147893410125455844985649697318901486825872432042961920244833857346642671505463618106716915246372953819159229838842501275347870562951585336385494144162045045621847760933166883397694780116101302214030095575980700093272222644347517222356630478813287421345418695497282648243510573213901807597192026607365601975393500535105878949242997620457065081572925599343329532309657644428696746813978762508199960385843818895478202240353432879518600470001036973014214854160162596820566523480283598543144504381946543548695410114698493306696614593233847105891494422212599883936517293548186069236503394673089554788548553981100055711971005401611297167805140361661053152250901104739655316561911063035353538338608291368716788319255137076997590157012371067300036240536651231963362975693675467312792983194410580936460158756544888730984862209901398530093492693970677941179460032126645558941341102119872544772025370896490096283930708850577158967283424057050798446942269770649876122977233883642159740846770244687294654695496039637832175422478960597895341349566899180563320555848188882078004722085527072095116550767375949389692903806828740777409971217968275812501632190314912717838576211908247715083822194311725187801812920651290021728627774887172517766612467636320011790061874491815575317862999258487770988894259687735221054454097448653417036707360824981979735645893901682942542508092782304751277565482515043043428719789267084348547102413267215595898599524163772099606761170594396767825150388374096267997653665577060002017174107385157307231745245996813743330223183503978668621908367099728918703420568257978494719231502173565049998154395845719249743816649623171150396112222631142604312564025592203036676301881911213759737603942406031303894520680854590123905298255090792518703938126325441460798408480936917936229808836248300860827065751878565538474179856883453909363535395822804653274713509231049696699666169271894704023943862783081357515148873863779056985702536724636300021419375831652723114337870457140537994130955640126964844429154910805305550530105862546999710475654776451072150421985898277250557681535905154487202785308002667738257356181217488842903995016003593252992025254115773692299620629177860583742934130470519767234926881472683513848391882865265049239366071557891962906875402291255263236405250966565503175940451863715849888711126184410343311195774386250301339456898063809041612535944841024339054276690856640873009549311813845145114925071490924605971171880309937574466963933857025541202730836121519867229792696183854862798602415224830503724770742104259850813180078693886597178444624485580810834162425406506632026000756224455780902644809588798525270478005676585406760948530405540537705543925111937146753280319568245900260873860616767055578667176303346901279634114363245795821765179301424692192335166220179040957358024255282994053120907231914426942304480889402335803992141693429090934773546815743037483799410510431576372727796000227352838721324252178213206112553608696708551652545947025229469312421124849804455691867429608016380836396209311977261453558560282148136604152662431264452641414560341257730222086081198426026639292485962536349217072898143787512444116947231368755375858561564384199172624170453004751109554882909740089307977227091141252196545620039099137401517259714265162618479152428195809181658159647169044766554069112969403641902663751962487199865946158854316692676619613196734641896282119204764855982176661118641736014321070846996477832793486138145234015359636617500402083648886001580820671578987697138827406360608716327078760710630078260454395528855154554310236183381530459309909756958426830215033182328303577784604154603707381820159111317625501019122859058563578628381091224124202867628490998404164780311860794464083805538508866905915469611330142625553736661889770752129766336967612184489048888285442145977772787815448115347895410353060774982376819960525235733726268059059233063203936637324949103275784260243802731320612653971247231458117680501809719950455621951806372430951838036858484488617797879101395666380650276022634540280784785257441634155553659898598917769782637001950636390758346711614753183249699543216645206330427797048945088375299978762787995025839209669428576514684842798120993728728469110068138025199410980622222767770010348553816408749674889260888520326879120331848999038245067059723375862498100917067479369417888601659921758439836270690502735739315217099917999950181764615023914726291523942775697844232368022471505741987253194811960476609343718440775122074229137346656615737968429376767654311756166798401821935996487936311255456043298952114347305594173629035960674849325682642794294647558240374459904870061476089056096647075530252187820905135793611212970092248535951950878785102572165649140788647277833799151383899809141169094337439012682459226690617803667284670016351103748055782933295938678139943451188789960783318020667967396050736599958226799174156592760521524653874162796673732671666089757988352843724586494472689709936879592170329411994819476999152420085331325516789071785685678158560126426284565623286059725675557666153259489623731425100600674968531752206625936146407656429255761407720969532331457257951155108180426502547311890438062169387090125181021347686083192172738678341207896370693673771263436784293472753461389841464958602352744529997230790873581774182690269075263665999679867449926880633396254125867535413961720224991708466645883087041281063221405812821780470332322003359641079780141674220095814796425056702157427095378327482759674369985129513874475863108389035148269888626464357810191922674571257898904439550232215956228659719890875918009229513705783920574497107121813804652532117363921602565259126279248065074976086647596324390270801321784412001892982544182767902075519672674994355545773865532364600303585621511248150619120343368139053440174472605310974988500997765890603953872686795269216365492086128335441088377284086330421772957613854528566799871928129820042104970836608416733891111778351090210288236307265783993218220386485726632475544002668870102324857260269300513820915655637520867345148754297569335272881071287775240201618918273298616522069063748144203326116165404333670091500835646961918020359039323878361134725187939011946543176473347170745121037073424370206994475020867631251422443987744624411473574799031154683273844233642008909987535927114880022311734586771420407513551137677408185281685753437284003826519424098897541919791194987573823833617216714807259571590514868646159887303232136692924072636666053317080852693732286551548801037415169721055959957106495684430258695383130539213567048011311013265521662386301743660877705109487525183497608341801639339962601328360671188620592429256118221137637216785433191390659759622208379086730730582133450235027943210823677582469003922194470805387534156454175090143913838134104316302708253614725288139216878931090624132335592436973674049637470824156310296104409931281734901041933785450981792398091571895431908429872401979898076377179107465034540998768712205224251730605854418102330563275231853659281750191030271481031423749593387185737523636431497499741170715378026774461583545529082382573666977053503508287317334830515364247371951675522576818827579687368380122863200343258643322834016267019821925932846404125499112747297893819460853362174984566951168894146097145671022283447495922506279325780607262067129235948846221516055129445328436066129773650309303731434653837232594482103453227733490270380391036287280439679162079910049040125335699881267681170916388224359834598252166621726903648539578950457955822463251627923489842241192328874028363098688745332895823118761724580946768335870862341167018159337978703496657737230355662486867947077543563214308266874653332368694106286278361090452737953373541497904598297194882977401990219455977051634822109278972971903991069710889753999444028969585274389820152152694237371032860384800198174999526894772079552450715342488936354016078495558724111511435902076508378516261405068622352654536720313847029940750238257756117337445360907135644938890873185121693477759337845528785171979042911331138506873751934626289118626885840439776587811206864921396189507739279930150783488738382717286095959968058309623470770067986944057491011934963966980247979153255515985753861472461546948529675457421474719071209748047328611974724781352843579127249363161135371511371771159254730367308944492931387905324371970087965147964586833288713344909696433334329609551209630621636822230066544973813161509973373666870115428265260904927073982596885749671360272332235504567685514861240568528839171607110070849335465751000516745997882337266939241987802172580496444483222631369040256527607494740377305008241258635305768243155321736560463388713360997745377160134363323719015996577226697915243502194374368752511198349287258812727663111929293463079073081735254851959088820034495164049663651671108147449039489965848133325951705439293860097770195481967122668449351420277203064285340717359368497836506468967109245759167643856475428683961174169429977906259814609479398587542089870752432627864566359715650490845291476592695461117449196570052458690499226738260701370381872957172349818530010194901096141879418263922304680002318248771188297713307162184758716054424901053126456399800777012132857587548164291373680731071799744700070218076350540221386555315899743499359125201847969365538132784272558058395589836176001938260495268827280709092632210098425990238510791487877707000122874155246523378993219241790771764000868956832526016815830970257499781184309541515672796258303942388423955160892128020383495368524748812992615554845273942062945517809959721556765310211310538361899097449934989261476031064444954119831285179069719022234761508890961265855525292609007343424676493033707976031611838050217812170592856488480915605245207754408155400272163134603889443165173953845191922071756059685538801460617223368646103716685922305274277269269653902209618823834559299896673370339327769193178991543768665274593368862475902060236105859802815521016021651426483516142791681442100458395375759878348778725966845059430490806333885214940773122687194193307114734716385245467389547703190224373568241511852626708601682855015142125942581187707828526733543945983479682752131799815285785622300984614245434113815126689460228751368454251411496772095482083367224851844072804743758232417952214717638604960861151707494837806295072285140514518050926128845987168037277892937911357201352962990624138008879029219127737512726134505307572917236412611840580239017809132576955078161156930223839298091880591440875189850308752750980197494269666907656264135570597891946438782906599307718929809164460161491859850242646221302805164279578926370154617904047358292836002033376189971879897481764119845836738527595806569022790017376382950899996408101627151670548950560280128636232926940045013220894900169550859695331470214684506212099023014599038673516757232946412288818440222499208095096013847420369183441164409752582738020536210834562737507894884093451849322741238760836097253429467051797401411557709931841487309447738907855886646702286467078982024038361794519641717695664200031809027615427649004039650478206120775199204036056210652489256842511588694021670328059787370303676174376471418507020013299873546460271703441131598095619046208807968356036311980430179138715050275939711053664691883924251665533065363505429526726811869844828158580874598981073570753573374546605362568487920901625601410885566358984583509755782715596948342001342650189249230708223691611191626278100252117432521652355998098815624000635890082333908564953204778031368427408818459198544571046696743244397895312845214303137487653465602698194001786406200759492605041816001728511903643886807950959268458207381336284872524459113565515046183621928607174837176033869325150241617733374919875505956851442211571486860825700153161121117322085914943148751816120982151637623407121151101591034224423496773263768356277150910391147961009241807444736955519770299145156023351721043744849086093966563820057161016582917260055127450612992335778371167463821028130418452775944891438422161646602874535303262494074707433445248588666098999713157109145843945137099070069776609229956631431743317529467261126641069652821822189655071622040838576500356330808608697222265005367748782008892423417643191741650246144663116397359393453027407758754461841100796979950688421034314588939154097107778732185502003616005251789433196592375761294406665306498449630377971558441612774144890628351536967533490503182075360209981281917113846669069031235741276800199350531942783947515182268282538926850187325767728849789303085627009344910520198607187507109212602180684195550631440837715213528923584848512582820412390586710467384726548684007935195206065996943686384798664159602928553459916996686983299414512204792656781447138868691272904344613469278770014055312968494717275735546581687071080381295818317613240516166749590001598418149990447213199089675090782331742339600871496296148257347035032287677375612632448989169906719815684801441749283605992284335276799394093038416075031681273944202574820262583805138933839742333376905850732172601419246887966882466182572865937164085122976100675173757407506746192842358694802359413270178887146130959096035391188352230296462740911041373376699879881414669025155518807189064655632471877594654763399463889414875351530617506965064337890962051593426741159018913133777944574122916733337046877839231141312474754656243792442618594326069452753904188682182056488274441602028646702317920001936084828532804962870488175192435318345604641180191967428442791708502829165380764675925358697793951540575122606125104430584324636530728131509737074298742025789519138768190661539267142372587108519615974868334488350046165058144496542379457895113072991829517414408174638005312200500017837725416433190716668093566108740592561847730164223955866938017614519705586518200440712637094578158900593227394022264472680221181128748943174274673838552711810420368440410200034766722922341524367069602686860047963328858019685423104237304024082198387735350232624761824705489723449834282019903821883463655484975874977084075560540435504219910515768672305259008738461986385599591912960930319186401653325856466799703659069392339074833672427569516972115881627660200007780546970014432357202435610631916640454729213945808448647068537325601611151762486401857167654308336589583812113046387257785320653871021805033045029862245364939193206390551330427182387815778755142921320891840491196894155991813304557039318433772209855366390401428868956066463706544823822139325263684566080695403568768496489452637789666274664895522851929401970677090322823535505102760261940832650342303846897850474516316982724412652769612606390206175748914336224996208727255612363561410688300917803963681183203631364387512248836996781570176491006157521638119557957385387285499968986432096824440576561994406987179674697057961879885959945286126524689779917181598143672114941138247591606114203036341841165879281764036226186226455756128121703284862461561188283332501093162370979689486717079244361926414860714110063670601230881476749524456869018758157297540601533673482021424122112551088463910532207774974362878698166801088813958994156480494489767478994634393183847929510799276276361254451751367704257533446479377154905548565792128757777535345149906348084003791573292572394708136512207956684094907114182009514353502976887342401270093116303798131438744062749012485020841067486185159499490466211625169475643325435137495114466994435190016273575518758150798848202267842596087522547718275764352890788331561885564787060689444069646398287486708124574179586477033347639220564307611025518741835032046505269285651820477602074196764298661348744822730582540655336214641957455927706992326017165160994232357894250472890578663745378739453757628388473996402676383990254574053572108497178080075993896489831434768216311113055030455265273698198727199871397930410333560340524958170647792327503257258583221954432257057111376620621355765053192551354260394734239796744731493457279331237742749120525267489744678784546521757411490366936417812258097818954544058034868399039012811516554580480492428935551519757812569492621287399920060895821497596349470456445581535562673957139702360194922583885083899575546800579005179203419068226736707095749818946541539848110369614733275562485647143711632614404097085033892349640016055632683321754506956402470396603671198337085447782357287906711624655779349364978827392067587248105365107936443551754755919088993087991745613472739854872380757729462692623050008902571061409037183747983499023445061728986079589217316886864095322757749062710861501151185871634762026087621899911915777922124282097241454374313461696393524072818788073453390449183386768155911719694568255712447153597258104772715062956619502831408155788702100530099106421727535964309938567478304522731110941673771186717322987071122902721757456809730144769389332013841292571609620352460922786948312278662478544416367808651946748196162936216589725420245671425902697763874254666804858974454950220454429397335125655977909256747390065046269518258261348492507041538229266082124281747843254515632905938049922710417391195204729695021753847062570056003821654233550196014040837509411110592035923359217044376362742165816469581406439117239585230386337048949210147082077812653815445995446678482591005065856634688385969299092824727065074849860488285369358760481695948407144250999708578615657638904071143452760033476464522905990675804013878521165301153723859464974115655030922936515512803334159931088668608660243646282880939423247424907164070211659100385086688474095312968176320018299568421236739925901203508727725115556312730786633791019124982889648991300656074039268714428225307989828141987752737442814484861637100442950193259127350381638186093011111646696413593634536384916776997138955172118342768448733457574672799447845612157763126142020270103010625122799335710761492088316078712600665971564766178107199595859624800623916895623610327928202177493448082550539544971229088443011460470596493989494008121168464696560233550559262032571197613482575275598383634658707272875260256155457871028216208254712448307828324930086152944577573922747688654639662540552485811761978925530958471091709193178914688158469230571395849036153341957084665954245907072041652641263671417956612131940717709872235958191097318561664367379999666702352963736018111880522281438230976254615919000542279927309324320106379329029021761578340748287362387766753195368116448250895180446704660064409833419694628665107169820328045242191813140856958350034056697479533476329531536312390447861292580087976247269458034948740664165885108997638992148227351685248302283765154013904033025323195369130395241909207800055089486909597775064646747578704306801990541614498919601727381310796638725009101767159158180778140963764083524679136159612239753477797523802238849153877142397995936573197734597042510997046877556685843005837211316918683265705385649826184580257674074142539289295744413646016842174189459479147986949497385954930752131341428245374890636793106084919933594765283571455963093581818782280043878429949234026957775991331321149732023713904354428047362855122607956069880966573644713322057092315563775400764590031068065800161461639948934112566773827189600893914234743027245586728207390559144898652124889198453194625965560057995841262263895288336745669575972572299891233381049671971442923384010712124535303357088869969838829480691885738424440387137372334919608045928685317584934004706253768645394895510321661488959968932367554423740464826068713423085064481760067514641418193869430123164747170231667977490437813210828398301812858050501014059817444147570654455373642175664696914043955993473571196552813763869576586128546546552648009045183688140890186269375177653318853093282031305856450012599650778239135674529069494245390349756892513819703816687069567352565501188940199642403385449953344939765566703462976755002822298011828180428551416067132124000940329247818024611044413484204492483353947413755492867625317337256354162784775911071497752549478723471148666459760961939697171669699853627111234783085982588330850245122532741072378945885962158728737462793239034040434110518805267823922985880433747378634132793369846385395312259902002528239816905664778738280238281684275946212272304501870320246901590263099931494529398524405889231626487629298536417225149187409928912174535886069979200186716359503256905669116772533730981000364573626456454214100029326214877849557685071079750420784133740136611388110385868233329992680871035975117576446509708440816780586414326582232131637760169098979732055365877991039684004179867524902213373379163189751331271994641301019823263988175803941381698702428139315215264188800584367786571274228816394588412858405068942949757585476918060892107681254302199521205245400834504282389436657470669255218638499379532435125922154973024460235471321917906683568413091258327471313625921006638681959260636427085404607554795644909473176613480865280735145804771857808478888169897370814331185343442038160437858289521547992455267643710263611565086985425802963766324874194284279019161341056407344831154819369147744385151106611942043361041909786479561255442078616712852319598529126528538187455641890382694862986496384799603162422218846406199974351669203045414503359564954252985657947046930648323901909246399182878327429672511221813340518594903987055394405375983060612354977829766524020013483724054112461231859878913809640659214351234243377458729668245929587144891101275987164781194868662497632921247627041495909383971684054750300896441456697661105774977068129937145065576494400865124842906670876509621942474945220945226250389082451091660956213587380736528937532088981371381089203015297652109789210013722557030333384391252790336355146086082071274968466721158450896572435014432865018363828223023744790400914381050474263635961138883999326241750960087219843920674598614016471403570095987258803325098648192655277146016166082736953255546493866593088800221514699842177134653629125704778969246069594564988183283038246761748349988469479945680739922296388956094554827747560936256646775885954897590092405136375009061470722151248107831153273350845421617137639350912069204880050392434981513023528365459573845922469365317748661873258887217811363186619098152512828238963535140601168832288736384091212071467025068745447122552591307844592481136215866411136907487365665659758092908024339451704353554716667275754917687680333870268209606548735008554325125398074330839873087579836887169190338030810152193127760977408705212620022082844300427771905219032137617842863311471233336587855129815770371006157535940189089658599854783024066675557024210913941746418592003046708506970329020316853193697027657259629879702203612741370088636098808500700121971335732885945456495805926883856289524401356363200003879337061535944609513933977654256238405434808959476666594882860529436234824605500808324342595420603516930213939489019329506445545196913375926562799084008846330815653892801706664207818071854827639122519030357640653277241496785184336595515868961099474276245457427368860252789854730882164943519962452642399475118978892282455807577656150724995154546252269786808163161210193654183860611291483147933802655082194318454592427055696517028455602974323172823392712653348448853893319869531602538660740803278113112851192932811881926671649984018696437385510695825450115022925792340677852664012941107004971790459847929424696411639532685530089186092227246226639971526938508001553843293072044022143113842176230018571829564192437064887537911871909285123529375892405827982774491637118686346949566847413054493057993681869072074915824012899387132030194548624144803666053155809961898198872110264798411918567571887635948380597077065334764237976501453917717645319277604019825340735974999617782467088395055171415628720959383492506900232936858268445368600507785025365739695590905129722508921155718110538571675945691295122241689544735544165951162582778105972377435337460074179195509581087049069428409061065555976791498878748929337086140646038064882571986727794424888860569238088613506155945152169620846149760257532838086237675189844154053903799884978531171434198748808402548431828381674514496321416186329459128222309206240443277990315179121375914994043648230532486250100401628902428601933717108863920008684703245829500119298531403000956585802336428444360631652390011492104725900111877372221021851392250437259754237049749923226597478246852721715531632714836662107323961827042431402889526656958992213215018261261961401342280878499432339167120502332826163190619154397220794721168708453207116582094698660830120644414500201477410852878452855597260093469562464187965625789576777050911479065239213702617305340271353421765101500106925308526544929000986902634421208296784602300944105800418677126543780807274444413954164801370185219399818109190299025780614277726387973612321313150113826898554715012615686289296426122485546640985710351758985631459138844852589805285974103684316705818932852693853140621779018405606114040036240064485081313312334873089566082225542012357069249226013510743723171398754844131958751728749275318302983466065541695983621750048554575405423135403505967765612462197555202143989250684164675461630782349951916018068450780790191081212921863078655245852975948553489701636403832698099440743796320325002999795467440584657832505550481971508445770747242112930151292648095184655565938988237162303690729218886703527678813218969812156516008432259789224845991026596401803166550952664374292720761445985335175949020572833559104725955426505206688056561562530803490430933725629782319992779406205758139124550239134097861484631682498466158628922846499164088910149198428902132553351713378864139624710619602078433577010233191742298817343241715935224783943667941894378914893321569712873603495599963401085527054458914289625755582567075922589259093639420376009723799086456982867675665947496286539189694511604945847404791245209984284196179255631529808064163623011999967491747215636150476571731692369409159520732004128312703796400698625402105036190549744039732539086113822412565025886691937379847085283898113609192843351748997856141569684226936197459226554417276028846197508315364028807325181784472525021312338913090377963656350841528482308864350775792056749790301955604588200317755577979556778459912267658927147365555801387507949039262947203554694125034334608676500049719814113463420815835763095072349061528166882154124465197994094696763478225240680994308436743229567655301842672768926599269967802831482746569503202262595464452727346082595963507277120509188148408426837596716361411343080232997277305690903219728585565411286584132411143294630520025934569395601249456477051351007938011744533799295586433927810959623942931050030112152561929817305638348010406048403087282426524325275152319224506648622540384822922847702515196403821807239632926904475187575637647682830588507871513896927552859700014281868855706993703520934530402561549921690115785926327654065070021548960177992830470768759150696462515379385022117353409026442327377249402408491470943885328660344952288867081881476646548422841758596134854270286737621954426264125986621888914469339845044122508617536437404402408110603770877209774164026273165057515480222963247255202334681398394323610104932726467166345576204402819613041002916176550598923609849528285639620260009982667987264856518007765542184882607087703589283023707402720139314270536656834511960169419188796025611113484752942070009348265773623324725415280827665667692789840586674076748654142627488886429679403809008699079589736590343484776550295207683942363622008209024040341562786713104460033447998671657071810135808511833381675229880285849820862898011341995513494340140258332592964041895774133538951190884532965453775832320460884248101084342498780884388124431028759135995745719019391789685637625295096411453436773585450875757021133222529935212300642651718148996751284882205530537763809325134073875132343831222167801233356939165180852467074977329548111725301806042291760400890796165343114333812716946673911683088393524771164860380855216734808462930215093262013860967975040508411611080506173214424973342178645676711461807555513749450781570355235029081165169846256568020941157398136241581287905224918779463173160121263346897772609178453029706592946998292323000531169749612401025568811228041403418184683866241045926647206903739318936604838405759338688355443200513139057977078872194034123199003723953976919893947270444182379095262862209620335546083727099791094205675582135344473566765919255630548560309063960167783710551873375734379510147963605163273911584817162270693232015748077696776239811453290101747905292709903236663413785426964051324850337291671337787947548952588358072562325871519320116869439125995917567714317955812167856080157622464531406449991635753576271575687690881556431693556903502659382449288109763610764616005725808380453582678427096280053789003413189958749410346512178422743661503491383968525971588782101458119203136356196462037781867516590440055043464739804526443654716961683956177585901028052122182938738191087989098963899022491760468725897048162311166272190139057386142535242135163492985156083299183208059335023868937478842039103873871691512599821460114363427024857698780580126552908143725379691942280138363748322311257988785888784906773978635398862960129120930614323230764171579160629697165613181977646001047223966217505070718352883314756363223903112798431403448593126401658944089431356571522369514075393531191730482677963976926247979558979858430074403375336761368593466677727681197246344914700418551683710710489788909389484273214874306225484689600696885149817705706038675805549024889771482096790056006487250112301619268268953263050561710105823673489076714603406082722243174775354314806464828139675761837250819758549753892033122364367317218111241529838866694989455090667637848622829044193436176806650992926747724912331217228412716620188530256804327609788400484177487104044042856265836612642054991008472711423631647981876571364129108811484067705639667199789115454921091403134011275294841628567139011485073492814741447776483036876682983346465972225608501655980707425208535237892240635510575297152925957866747398551502748467208578473996604131112662052719720705273116592491063421328487113079630970152808269550932932408301842239782914027097339037394884009825001190306293358903554958247957543515545276530353623985909866024170922498714178902700485693284789919873065387254824443007750366331690770502991837286914433909478127484130148942299399322594538554599800856255384937809519340623040652683381194855820166703459301800297887247732495680518577742448887177912426498079990239906788659398586409145358484588817791516808038996778505422019682649834922753330863409270255335398790870115457670479502509405309769887364075749098232989399713528655512711834355934779390449718107963287397735579244217962558479440250237070016794144258724028318304306327365653559080270587370110762679527350122692019340739793051833309299101883454453658164943263963651657931673812780638605759738324978215325865494374935164344939775641889516375861064165430072981786579404053781384059006986171595370778176496687841384174121928350616920409159867274027201993282912055791446094407733925667443383983641228044512239933869680848303777015362081630372499394227798269767640341128501864670975879947265230662723527029421330557476686869095720369182194136165482991223502280415250370916639217292378977962382939042837219554966455194270951662976726760735642572930829583249353824025625296842942237969021126945597021693963824779805302298911559290891956488339927149782011692350132089094185669994429899917398196763227567698168162698535318155420055761752353740495908964173771859301716450669832322428318813169442261980851976583564889814391299052528916038055523580702666747356931564771587216546744438518499775865083806788434108160671145333120767357490797499633966211228839430693086427305753601705644451484065535157569275455342409493600176582560119521500148847470644833009996224187291532519360354262759587381526764196014559243706188206617904529200521741471286311172381675640134128154115213916292492770486296396576533820751870829993072626663243363662349007892580722301245566734811978439416091861955731995246182888366997127909486346833671793734354674817173925773653631879480098820573352228871736136280988723951956837532807864584821472184952138862412725864868425350307650279713856709296547613624590694392870869897941772587626850259258022209926755126590215540504188019380957734715344714381203691341446828943498605572260884564394437647446390117991994124020055305481124620785380104245183883866683492625562872579680718529853311467531800789417142301678684772464317533962234140390063299175761328470947290332841886801857583354570394120973479618680993800386286080132117307815845435750608670089664968743511266648533031282086787581682967588097493525337817197312684362935803253149016220510020043856332759330289274083018006284231475527697355393495011040873656111104703026304703495816034411426672880525303246734634252434093318169037717747702944863036125896290229674925136046264000852740707183602646480144942146066742516449479900467573081440123942045037699848403569907599748299357469497278587318117077001503881840316248997746768128344966523415933044697986386365560248276200847478483178669476534992887190264876494808352305427429024985669687150999770216429844515437497937054837286636693500309814163196382054581402294537461520949981948502001216256401312768799403162336740095716294861601295831996186493265828293424456971176509369610177485409236984632060937856840064277998247435751726168240203974085988283852318047719916492735223845340580644223610682870483041904527580736519050227655068948149161819300033864695341022801461250866115412447479685286441570099028963864354745823378963671093732156331441883596416970006059280913548428719893747063749200928176563447053814472688727378999385257195427859333624852587493928256964078890286351879780020189483348549414046670590445590422516978895789024294436357966286265016001710521892979733512056918203494671312701589477673521056306701451828675799266580065624441067650865579774045301136947042402786355729970661635187771911199922590337756684241721545220959187503109510459181618282956033028978211081064124233855583322724868678054046754511592285589133102199517395818327453357590337443357715717259690403364823591430051476927581962576671770724851232666568050649091358910407643052945524900961998223087639949549802999560926119625890482150372289916031499128704563762740728066894115304422202901165223875000833419799078266615679063126696627695109315306668342389111112291995737696245099935020451348805600744887328740702075909226606026899326780705528238227124903226916762551150709523875869861705990980718230038548452425431217190607406426235598461193127117553837062244839399533881143654778483912974959665692742591922133233672808818274612290287491436500517186233180119384525267346948411254032001552697142629690650951302590340264707155754396984695491251579412568068347837085323929749079788541189746407757083804737870556115073172489278970240517600804666705867547843811011075845827407190759895792246396185286197512140269758463854843035295000994732692167923957655951467480695385871235473167713165229642244767060098500616539405223554725358721270727769793910008916599675303435547943976067834425597785735960498156529259920343039067327004845461525146345608771659832632202889326186365172115840282197809160346208904548910473809239545909334768653459402330702257412301590622143737839447042629523072944718708809744840142537832953475294530023868987308095165942745181582064210077154199666805591532970022438462074187724855864063808787154864493911719090851791040440788586607122296267599152461543812080738078507330881812432555935526766813799023442982920521727828235641375128843068722385738174776419672444434939723109689585768776539021901764941338283992166559042598771694608739359434423799832012697804890974561037978082205157472269512063812077035150046257962546966821047400543734623168602108337555143159966325949358125583661130700802604427891827661698888206716208500638627765239822301086402360934032375136490867954714508608763413531518612010126280675672827051354887672761822337769280168978810460992730996825664280850564332681637237169537516889670987063138266724906197406867323247619501791031084749982071089240068187328770662270827157650945082947005458251723748927169520659495432763265123997228174756066281385917905675784079377892126091010417431043948394649068475411634208849352723945909042551305190605117941523940838816726473515522216905405531775675059705463313667257343065153059492185452360317707044463189510551418913575959818682060285359655743527580657808620028158004989869401365628664373551469932425370604834138101239810008591788784066619513415585159149186759137333789303704161001251225447458199216118802614498348153878177894576267931162996804335652496924721109338557400337828419869828718810288299685296531706456846346435790294079772726152109554543516926919743302943838948114337393264405274889536850396483630188743621141709618227209996572002408748539596804115210479665815399211451414285650871816010141055608632529318194860992685332004969246543126118587938530438746312375757981693686760094707837168936835756636193783082337135022016783994118559031879024047896122504219570096529947272475210506365198293458502735689386417910538475332636616348390304754757175360048958583983558037418349806141309830503898911374722517234308420453847962947185452754973279014287391835974178049754577516544521031793276702179242220806068350162506858212176197349151796584334597251093923419749973826604369713473272368072080882912327891943977825837669703013704064323113162950771122177410649547909562661307487832011870683938545189780345697173454264905133592228079929060718143363043112581828929487043143862356689881196917547166496569785125054885081362385997477850896852213812783819329545310728163500849616892931759102347943281246785959332452894466348727127647462920128040881992857699591509914610327770524225034405838438242070935577821305203266201981505511395896875129728406635992882082434938087678973942273169119944469689465076693975522571949475558270092798219145420975532263174266617585179813747842327161929252813115288238389417445142094307282351823826914775633347058571322884345485378375156859288568553155117280109029062789085130138432593197454615656412621597057347935469743978560576147666999048616109815957192310680953437645169162343427021598558163647127177646416641435773455103458237331438259004167925957276700078274529546238533570101807416991402034111134716468987425957416352819625864296010607891973789980374979644699287725637448731486122713188862419843645905100118468966684057768143171218537130501987176920759352309433827167269936608005412819061565680535386416505655960527073220640805812882525359684462765234770413237666034193936065119337784691356745164315349545757465211717082902033528486393185725981790395263589396017090141521202037043163392092777898483650542059021028215245606688795814686149259317095493900368842778165298478007471513800684742308368680680868521568533314357115330183265819682291213350647499344134832978755726307444688254823970240171958252055196281545401161653441369724362596483853808914412361928535903812744169016167237243954305365833108922141697238508075250174788442067307887134874042867863207896010854013917402281794403650645877219885615112257409374429102210469207782381685179348732429908412961119031778076424387418528396719029629843654994824394136326794798111495451530071168805227297752910313025265266929802981757572309904235995050328494376169525088317489557847987797497558405718742856761185879288130837878840836562950010859493494756944428420049701270653233468656520273267643721668578458131982508005162909876984860926358391584799054836850838365684537987940578709890277626930600435165675267619735316618686359077777700175257082942273803827721163397982458714822894290039595380871977416909391570704324782733005499377864928805597320860486373503777359344376869857442593534698608549879955700723850384788228347269554516106286396841711365809305216116581536669427616196761321637750035048668496044793293661987567684264383517021890587316179954972696036489005608692950782310931564934335817259649867909859058705184897070525040589470265589760387904614220703172328670118500111035022093008623934352821083537849904221259775003281623549257054487188613051490543810389417184931075695725000045596888161730368967474519648248152746229745530917358557297976003109808206295998284507878369434894928970423475021120005089712301487321348562365033131459123460886521057130551088644790538739742101419472478861485549570844705213295398354705939511998912313676390480068463626786877705575545605890392929683984919806050307502983706564774595701062328080128013391193170761942350642206125602691050776685812907518886304010061145967397795920683674224878826977324070066286536708093218619612086411691056830055679154803566164881943134516110373343187876872734268438789002715319160086314203964926554913873511897906294096402018967994914750640389585386800231510948521558967479057169685571203715951047242520234951664027301308661559551143533438419640091412921726449803971960826294367679702087984757018623740400979753569514263355652013964232897336919625375166236090995198678780122167757165324053025424354279921953348479623288191533555487867173223219177916541659586270504935177887706424337727685121767374518072637957251233508781395493106719288701695333434435683445750834754627732617135030634485485173185807313810424302376199354325082636590222689253372973584700367844009856992877684400763544311100539748069237541711563902147227028971799016874086236076052280905851966215884933747782970878976871310741392045284577847875312811016868267879503384692957597119533130089814610785379698594231544301201382577823857257051474490897252194256406866676859359785525761634042610702577871866589675215630813896618778633487263624036960942668758281380192974931762363520838428385152190079544354656376182121463676960432209968294598920758090151902169229888964039938505267045621987053781540641668149494864634263939653629855917022883033904479245242444556075194244590063491822247654715846437766892382806067161417532469480741782406460090997741601678112706564513388073689407715926737807117804613022166366660343607890190093978103424450082810740269771537902493916377453959800811569774234061336854713085816758723122754277817276891519557489511297490638993038737180266965015847821678453150740399399906490770379533833529375249804298295475064048481413206265108623763421216795094630555310065708693781277099014044336382217195687324706925066394536360103629891348056856344614308624505530756975922255645931431088283135903539974175249986413516253726964514428870835629261899302646445642893969362369493925312273032656879502542938318381126434846737564899492538056142690276213221915311303542727792296238773199853138067908702619888727444499312314686112146055517449987332310289784609522966076440792570096938477996403379325550929705922120779167101500224897133211816605685558453200100296223410424793414281873396251001170250611953534737449733962714462626183005239899305518954719336548216505517769576015443147793711237701811431501860519133449282194038412348784539949903169644118386922827442338229629564925244024812301743665675541631968461757175191797913302913869497584730112932852237766008288035014399958474416405723245168544753275355790912136396526098679881280685176156575706260735885245196679755391372877190167950666790742459156918036524632816709889621167845847490874185542524414879347428754619541448742892738258051841524997343468128774150274848909640490226084269180960400656469045085820049096708014396257231859963563777215139723272469632199755102568886786311061809437442758044237268821138476713310734373747991089658436356820304910222514231301004784291994668676896866283824995137293291287489437579643363762521635749765312339137014927473224028847815878447960570883203363086988089728374512104503603186311088041792088847914945419972884744661062542147313138531107915264810195164534442340593029197334432628591839588739197146253928192445185406434188539182630482843920601968968490466234361558832533880984093225620766492997058613427723102282054747074931231146092651682760925869807171383351568850371563018384618966255814291442184801655348407368875326751227619322434548848720699427109706504422895431945209955410121508916997955209394201275265397533875983464972051489494715290580642105111705775362829583465266035138208174172490501659300715235964246813094161203034944730275593055578519208079519443172642626871506185919915359932639136647403706870308532914669962151159254672606908770217555876828944178156694668303939987412452173773328353472559126869686272441207197540810808835788420464001450581459126719528595597322652195341495480889373413178467603638652116406273833564333323308443991711899066238023030942343171920608832175609958376421283897019192165091588220720762109526672069059416340026505163214679406039568451001555001363453384876367151340142162958053566246877099583881703428004417665217280191650818113836587870916316483893309784718379624311956405697190113683663130032735060102709105764052964947196774955178493266509060766680741516113750500090940264174317106258501580715201190910369343725632688281909706993070238887525907968506950466035289872768420729244074440033618345716806242993629103681541909760995857066930904436576664783266130533933695646762043687858145526313292891466360664920329704323790633094584118296049717688625623968120907159819856561704432855820092604090930608888306704811233981817720954095345993091125920566929239715476986110888050778656887644278873037379428359135260679317440168886617980409983191580451631074138509741061374991315079621365351058111440450388657910293693798796004388939447218725861318087594843020225102592109950939914453155670161694377962811629908382801736952115729989346465064707984997277443255429604512849667119416564205720698317940440616061145414873572297256739637466441175620145225203282675962357368145534217120950355282520652846943404720402209402956326936185130621806973863469614363738034512380027465370881811177997258008895426438365113523600907671144608745299018578931051446910113997148110980101525181468438261744435238952616481507374513157318470220633050596362398883744933681312361647123141114746514040775392400587355159634686966425521039460931279334540335169448399641635155692929755987878818867340799913751154486346456162565970100335470090472952894450744503128232678444864260506641270376539527625862309605259435653987139531222990056622013847465031264860606455500734604063821802467291490818460711543917922205834539796874957111629375828292404489643717299359329770702300084674476782062314407511770431150613066883941129125058433635649850706979084110473685442769013608970402301333807831019749097808926525307863303397305850434554210663827264669036808648470425832848060644574522244313324837543777050393810895813444036685110348258424043956969965329529609912030067093098782676451451330232643305673127809396823999473680410962009235164243976542672479777329257509375190815601569837325127244589579578670879246041134175130507727334168308903358973295527237929089357746931611252435508831136794249705304078562239435356080412779785069444177922992895470659589647591872525139116000661766068626273448147100159478973770561584413105014803679762344952143786398276717356609371220970159820939359821892927279004797521833693373034079368088152638993513584274658914049200943703215210044281288202016013250006006952995757436544853654037128946156922583121352223163313726850553186982881015716940313671154519905034768222408623698609340160427112915530924985130815191910516849280710213997010469553836852320577360556492311780581342017660179476817328188095674975778298029251128006952063122109386340275954818383551309574476791742408493329689478099111927234224893428568225831859228583836162387931610244475200914052847486406735069108273891343210862413928930666775495850875785728149267043042681374281621070801235985675692658989984279382759927313991194028327196844610841928370177516426626021057418253423956746619951290367286795168976333959359085485767726929483591448829247361441352730543087288804313181956936371895478487621630051404829490369343983445425147974333330760561029417493551105215550137555921754244604222465656864124680059451288591877031121198244171985713502982865462762952498963086396857236148608096478961583157480964847981633361677052799433686921642282080448447747115672143589676781448447888815537618524254595183013565816812080884039995758775209090948455403711657831172593297576748900646536296702655812324286736455080873043780796285112882713397892688101887307958188114137950538880470848526261306277330874701998129879621075992592039145538661410170781399173420562049542834919984160453751402435408889673211682193231744403228416771725981338508386840981634128801125716935556469454944396534951241623769606614174235334104115495929782791805876894599788604355112460239419884435967866138745769697346931651060465905872028844903851372960532433174197368567649262902282901961613971938178309116573874615074054572449368366556049512284478323692069982084426941357978882250592898875278269171691721061070938657089455853882865207148232710198667988206275908534599035358893518096201063093168923029504037793804389251129694993259992296963632637899241456098926790986641061608528780434166791414657161765344809557538302994853458382582877052659502541519331036477146133475874995382218386420555357564610442107987047558254122991697535517440897064005651046802623331121735810829954266805226909585473835832426611091805484736326562356238118159916475203803495967333039671749741947489934165157190683293286147757010248504773741866868712376324003750626582951415841072302450072002358516063428587997481381351337546372034371765622682465508100218708567101107390669596201345251073527975944846124459783028315846355243693480784616920974731727127198429231506634003604413212542158188458236682743142476563933006922289871330836972221734738945829772266715480393820676212045485762035978831181255080290713895174568959260637509917975479727097378120587818289450256191745912422421838969245196167704071319123401235136370787152114162369898707103335221232478037919596282371243328958996352545156787501015383341090698121244500396565379947749580647039208622081903453516904029820808014144245320442138183244109680656279114271983222659779603132166701353550815161274642636758564972348532976429736346492788098487045743443574864113566811383779371900891152579243946175898982953889629016968372730190855883989925604192948284509592829994360504398927660148021224312050649925803118618969280185574615397623697339444693399879369852141858281770917904505889397611811983776138186003526074059781860506420992438535305149428638402419474604634237400089278706014457028729779038933537561473545291584389347814853105735692570238063196875441336797281580620498163634186011268682161824507787834276741360352807530563354775272584242026625742190002442313406429707347733659886837757511463339364220509468116622828499516254556769918791893766694661550660180037407462640720915441331316765973547836606148620240766135683204269216500654160678190886580517444882462079539908519475916766379910449156532510825332133354034894778571276137252745460797869442962103313728368851240597488990779209000998820594166956522651365990501927834142029484930362786562657295532898677124008362071215366136220516569375365569771132493891877164035659320744240993659410327847135853031070408020103601801158105301282138246413686480972935673417214033930869970305029833234355125063936015567826802540777678567397527552469247415317562831223139460802946950345275784336924424855725406287054084755330990308175557891648532363135235827322482024150857404900762166496360197705571623889252557846141603692897357360419482507290300793595359306436278625290050535272369140217854595399980212245481412259212364085318131661005727500304897453542518580474390427363530576096104992142737942486301056701007525644932452288944418512377027609811374349405636601816729697824842818769614872330613423552499737307517002043901783821024160837714628734388956192099402634954333473977383710712915907124961619520724330975616148287347066577674563552891549305640123169389497039630764025330413225181343262795046979972577831880926583705632551395502159752377793145366413371028387268404501014381408349617388815946614351644618722730899929793969456327463098671162199831878755214003894151823344691690627331786526334287084745695077226227191979923449514901431625851667408273901747986343865291013074597848632933311895458447259858515655458767148736966931585671494617959994364199893756260550729484811119903807993900102533322781509027359740608273903209178628279479858535836010191082049488441291528363928816209849950169637809476562425481832470424274905441861852970165342139799985813581576809272568609017067423875784535948002412068013296187056211415325914429365882004671126190108397875589076798445851238989841472485887831936706129750726022375427064236003280537963180218145645983555180800603622900031828756409583651964734336844014944705622368508826168469378814418796061632222115244800169171226192716993666456563679082806267757085526426248730362171920004326390784826529603769989676443376790553616670131890272148963864611668148478709824402426889362985351030921613481140525914959471020662420255473756167437786218987753719103419685687480994081668625915876120811214830871899617534220574758199963418252139839610424180503852362002435473149675956286568994145616069157258526877269179150047975320630409753583910395063499489000797264476677437019718633223638107502799417239631667786861283070990278945868493187025765299382680505583340582420786590623152931142398827692091920851308704720597673799573448434338764949660193547021673120322145760359975528233329091494658305694672164192517575977097551973335534939016961153151288986955273356249952103157821596126053988257204457636211402133977129937836306600626164423246072904405483922896903065089059061109552138328311483270332425638116871388647371149755313514093018322322077336240284872561174448512531088232019523283585551955353846927156927240537052954336579521890167162504838291169259462606963593927106657754656354161315321531858002069699628309663022284253404028634524977907884643740343892371687597320796875994804355528273878974314196361633450323838572545879278106235933948028931996380922982836141994927236508543607255103564372102554527851962450120833689855248869265297207564605744660885684909129691688097600189331342385899935869013143909497683221093818999999497359624496118893695561428120922456218685038019813203641513409023104659325913038053741256136752834978094066944461714267198111828771388907482558682235456320057205261353756408046728260898418289370696565293460004986457944760130136178203188477915103563027570626151199711950552795816003847155739993715091021243156326739334488386758191721055612772059087413976810573563882066716351052054199883363100049819974497316303888853997433061885271465694143232605449324411203362405124078035808082374473826600316041584617046660001572076600727062270888406854920156707616851258877608411839337003032977829532248383636666672932107699380880713052977525702671432741025502464638998213466112167317607751707022293364755114066756670081541277719230193024048359481900810651510517544040240091826213722841791792346691521780785441584330290478693669622844309218095529580911414853919437724799258200494585329055569992065816098557812105186237522272743979698817813902959975952355505891660071105534934011864305323045906411221649865340137359335135753107499079041763311383645235064104850071674291457767379571189298420398327539833200186616879186673867480679284015438307069436575142043931574536203894586199530899455669825376756123781862033543141559100842691395589638949622627169456982866455539453165211004089814861335072170855808054029675836183811848805931043429709305905274398722822930988580776579288273796323348922046794587191463850043274410684446536526299175477309276506561937496410488018079449676480478218824212434704488143663118099056104973840182386705456158965317899957016677741376718388655018356504110235711982519360594708112791093704645646433352661372650648437765869556697256534566020096199130995734325285914693191576755142239745457085606507593969539817330555437932824067757383356893617277178752260428608795482967304470874961961085159596415369919900227145345944923960955186971107967065635642689413829353654927043775950318602171207406648398941940449667355834380162542425407046758173877881358472791814470374351906038895019685593825008448731380532759728463876576682159540201413740638400739160366329468636723178333356849258090869847813259736551402725566995290992419558744771511360663252925837169345308649341670510754299253058095786147114573516255049778026511280180016554802291489147645437046737625656687436136957736521521720865213614767057464692749112314511065520423608039703661365704345726511801040782693319975827374473028795831641209056094108182657555786897229987095670382280126814228940204777170354522530417619387482207270595518725990317015736723516600911546706541711667233373706128350735808432195693303464469397601340501367729410992305970900816397179831845616761154113583179642096791598075365515252792755354152505155841239736656678900226394526310489988133459530706937830326114273637434110487907806599687868381896866052888880732204853136951645057500186607891164012661459710154142386251871626573193565148731123285465530690271385992623544534852042820221777805334934359749606777780256085398376611397865048303017819485546324414238365846717699098372125953357082843683603505409435667219638496163779754684242794365395726006451139555512089793233313169476225535140493535430911313911066347068367229514180459051202517223009083561347147212741487655105060724690042056395598663730291347368341907356676682863984120696019490408876225058457154488178971954406968113106170714755737621871712031906670741134164231078976889819602836297836664177353909635569187090200387054944490998820380236180196656673460845501769520940637576565996430483625757065537488463560317278380411131246948314648316022088711947700249440571397944617446606865068738368374220462279961864055473416415374615695573368943188618764730396807794064368108581117467720022839559306356009964432457861055089790217731379696735657168480497122462082171939749903894662622577782607275421217821617777615468118955826312480450097653712072806030606522985414864536784868373711369705677845060588467617437182529288418985597878363433269430618268401950772147267280219290475827692118434364911124251694270694780887811087551402420728356552044526305307770521924577312719491460157297395225024323179482411927954375494329395649176823957823917998700205246974571285539308004131373106917135166325542477807429090685486214451697513814944493286440920322328531931217843640622955561449982429336042226279989887844886586495078980955923255489057562564323547098466190553869645537556571598476810325072315042922366817724535668834091188259836134570268773621200461048239138230864041722811881927316221769139869348765862972730976765222272723023911277667068630497043637465382720757933750846658544444426717005688592121136674478644404431681917485578827548454655504291968101397758410707745727172116248782188297533977511828915871902934889060040261754854526891113402308121206089562951052330966577564052818788791830644764525406776875619311075281383128683837541808330132758109792191475188017338771152242583265847453978557150054915725018395089642207407882849822467224721445661240174484873887073074779196429247512652762178077000969082688113559572069327820350976696207784185569348907894655088319388489271444607459543690322224734778034421885526921243602957245084750059316467066731072950973032156000971451381879130235282031588147060804692902235614279131677301841948356522545592678868139841665847318524882434515945724928058254445127031674104547642500402662351522624491211209371544223876727226222238525280839782319103003777201863305021711901736422418746607911430981579610168585252435204922023902048404214229915995266518910168686594176123551832798044303533382820952480568363059382128048122738818552244165600041775224682885617115958035801205562920332026197649567548415018942699415507721689662965913575396354364492553806409654549002668037684439267687705972805326064610576104497379646589885744977541054709049566784033117611835900042234995112559007225683983058533489717533809565681757649695236949205343953178126426241536729481561767567667560928415027510854748095395180013213453966089617409120785010080194722404691441742593184024967135230342362289470028808628969806466461123226646071592957712324534680688554189126330534393098553126648929730930489204384458398869180524242307647856423049743357484976163923456430809785304334433347458316613481433624265987613721740070878044389603429369263002661874018467112293861711293056626911639373765201198575952037173118139704229616383723050687447777764383461675890963649707036669763742670388743840697689235221804216086363220461684114338103699298811580604169462119460821323511974634100010233238293814637724112376196426270875386028832022595389634552427440607561897147052731079512455060913776567133572045286909087043688545800472195375452432422386746172463447901359459709776945837172646793546533868835294747018119851290652597642009550703095243733214390861590303915122440391113763252519647640323811139707551358239617768755365260405107399354050558701001074294674011822987445584887814911209751111027887921471101591436027087477427655108200916239055228828683930876147653034555064166891897871490110951962755930198160111473572982442800938777444807913481843616453068379828327439034872847411724057092067939593155910721469067459492722754104301297662348164361708839360578290241121330214852376670526469177968400910868386946701792006332828088631308835413988770106209942428769883746576675342789387897517033825298443690260714545285877774360161416374589969905036205216951378396127542097284535553510674312356371726998941063063345088324360355108447593115707558287002760422898442945796029865662768483327928039780802301460655982572769362360072031347207366388058970274607730062545525851163060054824336551004793220586575314030853730609359099370252871786822248092128327035454008495332343405553338088364741096206607679653476586056238456367194678101294397056264941007974848445298876497247354536041960069363286613672256101160170184718324474003931237698241871713378299399597994244391661990778441728581387635276943273693579417789954567125063466418986279240883675789678491127469710068877477319469183095555026791716436849678192147742296559143602993951093544924269949284784407987626408747158981078624174987179880397168976398629321537228653298242112313686850755884452765483121148364258696896363109158225495954210508832899361870440527400046801270294858658025887407579727935262886602167432906025362708607901364027315572996459521330541024889044726908481869767418623823908640087429574548733233045056077798982126354080290693930460132742083943402164962917958173818256267816386779619736398466740671066843925395509456976657894239529973898830522352176398501128153855384388464302149885226371455461922850473586320667515056164109004286502881811611826566113223391948276508674593064895956069614354012907447405757705950353892851646468416042222705011760529751838728210492402552147264727032201141840808977601597246592440664771081734044481005246048215398132532515570063290172504597089281153290958541677785313143118814318436967596275777676520333059913501409102266256429697787426097840742069187097701523891052711080428377955383669208417542130470565075300984234785136439059177675130247851891579000827680089625517945154656582541448017899198739526128105624929562566230259122255379891510163735981778077666480828993277001991473452195098634624177920207162370926032684290012167453716180479235089366894932491795831270998563730624295814555353326016452496144506279635513909557091339293708455899145845085043652151744984338247961350827396205257055537376205594435995399554090668704931703786286276392842171030610196411051865149871596292431144294592619961334828563273934869758610827355213508571313424584907596588687109786817265026604430482293953938593995371510402410911814886909779375691492303972178724466866030080756226929967758602362128842055248113531822786324706645758561523209706704081500530269571081730312682587918979029973275709359653252249866480477955273002619418030901540883137994416466040061183575110489815385786347981166596506348085285913687841246104377870275750139644944887497745405137122795227885121318790009558488239912659041205963836838251996585065545218673739773942509519494225688568033465746389453795361068797387198471227684218318938067784640330548807722142624925620404036842139966977100491224954259146768104878861054752168002643788479658935729696249253883219100566080934825670217947087385452315198881737232520518422343261472231987940495128143344690323629735130390960960824792160221976807056982169389535953825759712133900638839733115220200800406972905947641031712618808095627550957274061537649013181815726839009348534854900662566183893597988633337300940808593061669166436401016803567897936566179929244961180204680345856081100177177953873906067962831741571789222920367985310523488219609871152380677056852175057968558408436000038400909862968200859977150527585055819335976273110024448842564107829644756802903564432415629456515370356681105953658305438874641166172385715257072035840274639409336865578381366470626579406835746451126685679547101975793444721653499372984540322518554499026128388694812175985410926286564320952894219212712944765474202137242514082835337876429610674334437721793035715429704880211208181699716939458482167482721546665858296586572149966585362845712128490459516405965008278226388114136017179617057017503297068358010408772382514809850727614239701863132225810893906710730100558302272237043776085223441155613175553123966328849333702508182703750365934710631406794651602747166959867607048101219065398318208400409140502424739500711317091915183535931294758027531964899850008640567781216464595812489997675536067538292599337600839604159071183849088832084889796034646197698027650850255125499166299718742201912456542733902996973668567191275070511239522659719062204084300839680553828097376203157853485596090745982620133671907937301037744122613798426215088680064482115926976076588817335598406241055761671618032238795788249440189714474231283182783957001169919733146057359693714968824446570656540633322121513666214909273198329691660248646129377255843297618403419760762539310893927533067252686244082866106615004399779329866593092499489964661773435725035904381395924873286080376231950918738841834978516002032705657565233022437850617854114784420779876936369378173692647542201992540461329904444065802392201336675340968170850310951442686529950652372515524119164202436836029830971186790265781809684605222873054824001947100402460718442232672877185768602137516425025155502921487451656406903526941138358802496451428649769691419075665658743071767426280941498573355468519439849246036318730136758728153302410255235917570967965805077444656838064198616100881839509992063774129334768077411868612736182385991975845187336199531498725135527275726716264259765798659590276875168103718539873418890060766071818197079757157237297748888999492549040066795099807711632534785866857371134889398557125386106076489330177661560630320746349732318214751859775679185723370266814808774917376411646487556146137717994496166498745601382506715287458787815962833917088615991490103481338672096655228756946528675862842745022564962124929924128097335199081668022647037656250155488450167229727211337531834698494074611649753461826573252134137029392174753516849460570341388794600519458386167168280643057628624787136884071741412542058571344725730478074451283699380422629332685455261627286521294013485779393427735762176374439473829815174498166504231273186990665320026583345623958156862405402077179753800845974749742417988350464067068860525522704796740325301929602229100612053718264938848602559488409942670488161125681625619706558233003953740859584250744732919375335002077475355725173184363109200332595852877350041317094252957246967087968070887427196409400335159682472991347412746141917669021128868535174697848231670629991983086856426899942261973627390482933109816682044458768280756845635050656104954213082269569979893499476761230602288196993892436535287451116674581891851518975355658941738811323397327063863026690769109342276641433687292980542467734141837567410308820251709057013131673625776734982326363326760871770890372528020144070161034067051551632156068335444246752720678840196559969613291321063866612765813696581369495518292132414413753820609541279654067464069970504198139332400786958417323347065293671651461785401767110896363284286659029627591862509312461363391581304685734128335769163405237667762346779333556076052826309799626713921709727819247690750231618519816894811534091305291629159356554552841120802368764023223560293667606586054097730464989853742348951528493172532621454933541046816284578389647002651135432674105762497309173594299342876030370213613563921452974560587225404462199829905990745437216354801320541945396313082784819422666842079133083776737113833558842788488965874257361820800830058299448807876091528294577584221057287365603775562321317363504058162034440164175290570182136394004321517935558530624407405129819567993229858803063853463663456120372111994857333860412622605392925999352400721147494562466243331501250414025693639033831794140546810904931132555367426134685467450816452930209011208750016914347292427477587251297988464344210183964085494494395739974457944646719080851988970536191539298493955268718512206835066963236279471025553608479262201796802440002938481879965995471416903206828975196539011114069085935363823121292263680346756167413465450263475097109803092090477200963207124687428430572775235660534264664088468610330896902596108108449130250953400563520439776091655557133898699342482168068551362135446619842964526275755995424071660299615812350678493153300317080504307549869485800942087891084419562445755134246118947167335555115020129555027064032759959692761894963190831700392551377942325185043695480865765176521788663786172422303210638914668454397007251236161395409056870978494370509462692472644658145247814048045154600952482293108983031631519585088485911984029239558137019485001019661097460305303791293763532936957584926794302486509385016108249211835993453887570473836325903067297449888400916477861579712338649074465769007860039600401689674445292673645362866252243879305889004692609551170002090431826253870282937039411766153631457271946279475983926953909865563107163827843301500252369099966621144003724020180966820521645843324054439960402181026660111832961583517778552086837517421480418276377273020463331351913621034923261123934526438222143967940693962088164604407259420459252422472500109894692849293563336521966539733439704828275898161944385037667645418670551328343273623952699045915290343096752352378326160238741871163568495844871112561182287913533763086467593273823986067827639490380123556156645990448367859622252896478306416540836953783896006645986378893851469044406277967363501855550794578072783843705762923278278081418845253483532238619486583460221902315080310323750363227631850352009493516887707028074871303451382863564359170557804369731629568882324438275737764943747414359939341525094073626896547415808364113160721754658719748715272334387850450271285615564551415765105774640526820695088295038205624869344496308506873751485499262634003604355502498940902471863226305696864371268899984303984368320475597382597735749518187403520709239729001305008561238493906738967052453396630634991568006972250559877031289927202724940810268453777397646249085433603804424786039238859778330921439104059266437200979600810730698140068315619579738270319095740371471587050386715168472826213522273329244986654347958726191888754397525650323543978462203192842284392655116425008684822207042083440160081911774274550942126121891090852607335029944948031968058650486648270419475356141411879608402415368622103009073616266279518279812142427020454251905451046081984747636195414250271070708949512294498586735496973294786231014805343852356494917077942686680692114737243073696982210557565980948820068636500588817630945617828501993972912239746773605722942326775924883282220945791958357252378019069852449494773313699908051759288465916478956459645069857006486566193196066747053442731821456591594186640950425093277675031675880092802322934113692769198238337923336170213436607735468703099760678176994384764393821192552757678437357633992890989258976326884781836977751217001772938481730646867319863498341046007613076905803076514695777877011024582914711662384113606469289313284336595097569436305747286436509125380345270810426377781291504545493276966185678865820770320758924759779175808562067323902443438999731860524356169617444602069539260246214951033895661835060541738390875426412893090359251450691950652801828738839442073479099077743559622398924813332778124447012058148000196359632142579937786892780323592140830461453353969475939782702406326887850853371159484113227233954482762770930167028644691621015429211162805555136813377387640030766197397249255216785320845215487899329076890998010170846746479408569323383549047855900554810470278842201275146072734568869293902846332471147891835594760026956910283266330421933611924891664622087747421370848322963503633848803588970465207354674778031269547758328664088783340268119300290303120807910075679210241818131211353890338374691698557947275748705259317989930400000835956029795405790807810206601876337724635811689150357327675399178773194328665412466934607683150838544026058004137260032795484060514415686493105902158781807354955152933910263724618854871270876811280640129078596666685095128178264109326413608324415565369399022461300592072285714265058383893463523501623611876721765171730841387643841398281332594794117639865700698881955505232057196144160989942806000513612133375785851401093388258220911448522955457335342382152678178006139232410837073601399428895150894263254345258209710183491767762625316737363507526382508226183215985492707957616768341922155744071467522225862527350867473327749376754021033276853447872704044304269749380701242612196628514745743753839854879999495331464851805291080830231882608893225968872821961163844241628713208965531619043039106897039225051041320488028145834212299590330802167991634885783021926623673834848241362953204415821943815850186177368641871500757759377792613614499190277515130408412802402930247165369135976046882495490685043729112899231283314589430983798120322640959142640390553284925423833614035895690099725782051213415752181426986828485551325263312222420084457222079902956641316408613490104821213595299942358890678597981449971042162550595021159814996990405630963570882346360804989560325443787823608751667633736014199268686539371761509002103468069276062311837937900594145592591668912198448152121315971023337025212380225994035661931050325667567723577205985810312906713771662302789905370314013873688341572581123755908648749004805888236491621769149093089259894865823473616257822223009037142340732959071022939744977196575919095241867580015053061539237633332063547613821361486991368055311366018922885975064857677674744351826525231744428092078285082233188176853051897101468573313398690805395215422357386576215682817543897897455383503175860621916211360650254167540618085629752940161091206208105127719506909025455322814303091659632633681181685488049328574973823539695474521410496201546062432533526539744374610478896756841768858659656906895207544593146231401244578120367471322777056613501611088304569917428303465567053601091673489798496578700764031248759084916851930448492123321921655074340585408993567662715810682443384283764100878220826162199466337547696966858979167100004768858103544163546004628222518052460564414530351830780268024251431092571008597958160182062810409187327037027137793807465768915769398819974621982562293134602111231747453037645348095668832858715234875916124647159309754558293754174937657183472967914498663937933558751171467931771814147789167142045420947834210230681383835933778754998872604694485767219271169263522603986693039122774384358001303136556326670699543923230890311283556951465667383984392411554313395919592894113088549088370304129178392746477789908714991303962402989260819299467989516273212440136611620249455873250257864245279288370667160421162456862275085398820401231682629071347778428353806799727808131960239454275277656233284971564144127702713543694061737069647631655543364172812163865133726865931965578570895333156598156797914888473370458373368406959010056080734829238962829680674674245679992563859321925070924973151702747466223246926516382190605441750695326006132513850083988306629942582273270861891250336215768447255875788310219176408277474367119316715096490767573446541641142006384838385483723588210277342297926850707259607645170307314229714292701976914060089719601776310668798020706975475228072848628844042056252987437157800090930261280536639212922163563054313189808232185843975356765155840344005562331586580486520905934768592177695709386218613850764695652043959612208869351656127101675369471106315397184636661727782597240037858551735475611863467907202294269402936268289104316272580602516462828317067568572895933577813562913183231195570319940782969608883081218056104289040151851162001557345431608233804571096112311214650022889496490408357281214149130190322444611320487544515974312807465705544833097327864919607438427874189665953720869181384712438545441753553610836199837486041349970389800104812583605137395215620705923353275495164270245543900516063584898635037182800037728222202980026736743681564273875184269082403712293509499734759469067251554411938991847760919396478795033226093096317209987895169090846559712372436553204829622892853808166152867684155091014210605956819172912958056501215785219328265979392354853256888763552111641103620949198554531421991408617664609341663116615539709816049684197013368054303378944906067954439902303065131509065032952377163669264883591637454296778746831101990242697863310256941427674221073648593815892766484815012356855559069265297216248607074308311706540601571934882927933239999666733707212012298247661110154222357920056146943354196021784457752725591476733821284532548837361125717919848173998785068954857194610287103218563180294444795822936443752434946581187877340015995208147942097411739467486054054789476414198327710045287544236437671991793682704282980250848114319038426718554479455115372277428735220053468795826843126615955998272747761409053112987359222535703680608896542999480346889957628470449845018038773649056430843081433099872955581202932046534732678185930441600515506603798507894572419068921909802608371278958059253231298574369197437794774059283774039362157491549661891207207700899733767940858723564357712736631823861048817589744295555547741690738215831635613676316362016714230357032233876786873454357477809789884131967388554450069077654098437806228706504356037912982942317824708007037369246067577586411998615169995606755881871755505199438100009727193508458395028751795106817152992473521805327954693586242651223513502324859270723258771385986872792637873928269073159872352404040578564108604832733320114126507836448421620984917694520555360896552787166681435080601024003825792093963127073030315380262250195054357841378175584483236242459259050752587274060840222210205404668626233806746253601919880157472943068149443433465894512741402117633143585769380133967433099961680440649641342525159664433373909100153340094518463215118331580465535150138245575952651866558636167906765407957450399941083446165876909732868696532183059043704371721752009492566010801536296704606061310420778981919656338762350814114190113046650436637507755255925785187137024937362556823721262397710345795465827037448633878016153316481333814838847402896753097640639071839181591448875651940590315125296958818084339058071249662209873135503695679783568794079581855929684679973859043527189483899602206396871876313584475099235348662934956181267337903568814625355540001405997024618842310717950261434846890381862619787255936089372681002338792804693186796901941263862899081909701986236150931859998230799859587980203684087334881050769134367426117946608511686856127135359600770540191791587152574406838059721998084811152836675897631526298092734503499867570202119687789044906981338194829052660247444269847894935909766990599966916675539593928289699784551619095686738019318720578586815153003198793422676795195830661248971712832392028722684911937177784928741763213437735869843055702098382636169402746269776156137784158722067235591999378659471653956125367313385864259219951419382133789441289359206880569577590961945338852291508651087450771321196652563712795545458128514752902294770929116941916223835947140131052220173807381736090654587843799758470870253100410452913567471458058582032855474430952012494177579791919111988593810862002621051362371241363029495496614101058668906586132826993708710371901732276751863456062627828485203825248447819947550938695425669524645428312137167244618961097927758483918312840588341013158757402146197468018263291744751725007947724564255645240559952719367699614710009888474257708907697358055663982231563586203110682029136440291019878613140884355277604782477957827355292698398745547985716373091051415005004724116923528338609336717318940719706657347528680414885881214530591490194353160506122201884012769239655320616567407193460366076196486629012247323661610182078343856273041205695443492281332222304502866448367425810772820112048853115357387796570687258624329060503994273858460693846721670929522448798443633963353254897692679043848517442026081699126636634503778344772157716776647274850347786687161865572879095370385411825734485118368046106023311098924610959260410883346540494772316006379774672403267472665104795680189070442361429775383996192225418370902871312495712545556457519078199159708808937527413740946631457550044014118739365759999282519049171945294928584612435350729837784836071610196122713968371518827774627614033669682990685287045360872639988449697826204264338780439336439245092608224464377045056923446788384355884152697144381306177460627124488164684069354891228734003197530179048789650467764557529822474999103023288911200583202550846906533338249279152335775346844010651120441427781681467477809904765827473551770008645587192165389083697202380312055321149494659503587846062229349435843159179660464516759438007447653158170448838719840499767261655679029442662405235019912694576751677006320092800721543988122084792947939167132245101264148829944822651382277791771037559210922324916452000537338546597108360572248764851552394337843255921689433610845510160744745864819128426500583399226653605312229731070744893190505454858457926251882714896659347275808159690139708059517099324787767325806581153251679120735009196860144291958856623311131634600073360361782981276855486175738736599219352096062886926471522287582939032896626162441622263657246893658092737162039152364697275096726224605102690262075252980319251072700039246876105490692710018336893575609064033243812475278045103503253660864473653676422677305491143485577895022761076473856386945483758386419891761842698930257616414379642354809890174505884090931791104372227094329555401630425587159603401538743140255838478811696138383409605002600544850989215899449904853839277119970395409249317386042879875417940770704717750546316269528398214467816019381237956218298539051252047550335160514993161170600632412116846229892347896825809329314810622319656924883760783112184039614642713031330976312272501606982798281702825534319055196984445373198386098665051428210529326703276469048465736746662730811041557748242724755753033419068978174818874013153908087881631064290211384517851501462906934454085962471109467083865005829965480495319255840329709489288490908340241413113445546317763274319925638740771723087124413644617961171501685358552468523818662726875026198102246502882378952691428662754465199386086544382333429834896753736569445641917470322155025959544315992453134499047750649822041068509668587563996525769206830858129122415679016753653426767176878780287865217013389570236961372949672096421601320457976610126324509396851501503923578924066632438084962671275748284965366340471302109161130485562915081330903682139826608776896704055667027031842994957533595143040043020785339779283026322376748401476024960405062627822819364928835823565733881592209637777801633985909671865942110519850513809150545362150637420204376110108444553738054176680112219374537581754757154814788762071794202042915513256329828251510765031276895898726821134539585684099891790528262500808209995807030905946744293258606226948495954017524196989529610222529034809507233385361151169768324220515178737990783660284977160621741466657309378640301056735680986714647188494048121329662157890084456669616309603228707721892831348930432978257868635145449469187421821620775130778209160682068595096885729479568447146166666675033349397433842411041242478469952016231271963868077755639295166916744632519700296040227621634109176234584987929527343248196933901580826398208218643574480426093845431393936603448108786559490232707181232785514408440804938225518954512329770727390129418554238384454233724926777037106199319297769397493520212677253961375485217951453128657944986760634580374456615444330744955358064365623728614501424696648723544107878154657377646825776004362520614839667993131228500201598130506488937392069274514488529402199721519944349827339589837471055740993831030371309048539467395396193847683439879738390691895880297123869944286458813898302107025570584661375948875966448662365134472994243903177692764109536118351759946986834869158667896677846178352299328030658256861276923454664098011803915765110297933197262798134075759316227489690377715164046358326980323858438318671382127083980437650613014999491047648212487016335840932081651398496679890591195891710761690152635484382375085930626015130095627572574647978178248352212894846277795331450725026067604451625673886585353113049819780816986905531487932956608919003439848579017291375186022732364993133993586291732864565185762567701106851105846467833327839715934466332380651181092325888426982631518958810236504049825300911618023013008399779664255879014317754782448930366923007922970931354657623800487940032255358514551090156330722585705585600569686546697085955325773684714083982221303305164159521067971949857557140193016957229384964327952468907762319265202985574556081587116683986756924845258625781177647766181085831629011476457528375879506143575867780908312678352030028399964202207002655315921233764506725243836539211583719781770941879682622193007925312279471473744676541101324845698751680095197603824863240794916762583410597927315687461158771815408943948073251212163325403542796671331223866377048896033472425083422088931157363943253996328567896590131615939405881791448423515925763991396495871087059411512163226774542109231465993244884901127202650463280168513642323720203169026902568127980193879268190245064343465049957915360563323994895120343708272818787611126848579615052791982924072017558229599320682699094399862367817623527989794130776067816982821495871016334176806213850617397185648183889504051182360820988313822978996376312719365692541185841920733412109893240762590715355216479056693757374200309929130153027465887583601532775839771295161928264603682303566632976973707596235821974075772126327854391839778627116083063081294870016243663384492163594533847319350129621060444571858639603231314988088834335433923887116509062244286279745322567222891284590179091263064915143565698042370730169621705667936336272592702356719220493355439691957825085826957262128223455214824548919142081988248369687778724621585111284107098890544034158816994293945372005335369963485040985147833863661353489285507763605808989755100460920819002533739647234256097397336743900372475530489578196917677738622224132601867587866991259038165750860537749977527737356041045139420330530823263922163782029719716214696109803787951564089439893423095954914458839355358650016703292570480034770929898973187648755930174736585373030160347555301598624143055037359598756950073480263727893079823633620296544840068407229323339148419285775647447639611135531965646121601594788609606592366065680398942685948152342912611239759195519430935996792285528774453853479684667423323503778507857258158648624590148634240566892384169780594533577083689804981374688969959409557807650513582016944967904668625544567923235366608297156511119156427462016233092725444126206303717792544795937832485014739987796913619403871434696949902554887523873447622412105888321841676346295018657728328817866364985011269128855623600285228987632972477276541868281616333104150971309588104330323860573343434370089345893138577894203020396231380563307744380177273117119080862348862456564609776091870465097353560541213854684913855785852463605044760112102775161736595868618485220187912358333746252937794598810396764668744656801758289350758862966986700175978460219344808644629646826144307442054930366192369081122315388956770641997973524729663044395705132591514272618651945224912354649364019781676722303556597167624751380271121249072935866446163416313603622370010707619221807912705017755686409289708204863267836610380034551955186818446714047437079159505708677117645925501657081092178949935287903713909956142321566278282227867270277708139627400061311914656798529252755593078445675512500127999134745796393576491204339382857425725736899309574364682103813379949400026394996221602327600503473301419421751533690883292587301835041789090809699244326207837442687053765210447426831432669394092604154360322605317974968798292631198002408636476443413147004693311338170431759005238596079743098548275333277476094838594360250854142914689927915725678587910451080984342691568725841818396134233316894631923102372487846844918074129987649028928956612890977313506914682223614644847895052438686838395105805585181826279169048051192185703630080267923553751998519534165008355213666573931454588481739545926212677440230295117034450671526551212228622542051296923942195013160953841059111820275993014475731235243413782210151866779076620931144171894715773663394454315742060294376336010568465223258204328763267636612380490097681317771372615478831129426370400373715196753927063220224342073427793144247502420818243364797611124812276731073986349424504922250244932304005313691470031134119647599484941322522692969045046302067277733941445404135025745975090556922055310222216378170821786424310513399514554058162821670678987467519413041159024236338549724171775764127355876850323154717155820699345955723998069565188834256770130625878863540618699852023500663126085985388288874833485146675124968711669269184757679829551715264265081288913016381112089619792997821459919092133601562331202628192652950753838971142174003913175692235355229730886493775324629006886309946018946879907175348919398735147296751070409705342959080376984593219825925940786448597531812227819680417652520256499512537559615001037634916939720893325840826498944032781523118022837267058860000220469201922028046642579762089505930662717641818526736910734452459485898736485981026531893823057456831366528777309458643297559869474103565433003424903457020581319495450774625265356250573176404090002544810631325679211631854693586743006153645790910356586461073334542653062100177172271146982811342013729037967362823750333557513177025855409532190261789012657804370517491248947774320990005935614209305769383485052545125700741975368958539381930254284416571316444927618497312624554610120336272300243789634864843084025377897326767288946158015784793157098013798489731561151685686836768307199566550741073450624041294758431199001352544124035745271939463824815707568621743444093723470317466800392236625841284093128584293233668814621505280594455917034431372899924957441681738445341218976784701233923942082962491692082982742406652295489485768581200517211988902828361281647232020545889781113765749713042577560904734201530081401496043662048063482374122531289875616020019607012145832467300150314877477481221547799736631136837202146372205381816633480244393633623861837903147675289878609459144934522468963008164914339788643639603921565318642112938612685615014598288092427619424156882451549884281953582442778796038993393183451317408123465266513117206827667272263934911925179268176476828506687420713639429424618376165725795948805346374738022095210748251991150476424141023924603612208779138237161560786244553686299161914200426734661520466826484101301989061330077272052684103420732639494971984708320868067536158824864880134466531852427228075565083192277732419859611117801006956008638754447103384631832909528655983657703674788882989895026542094051752924397185888934788226207523669622838095301532706583579746083732675784562065620848696655264500377880141583891558707146753644642078511085513562370142652241597476811745705204447857821267623969618880250869695236149265582501563065043351285167024276459235856447893305520780817985761473039525118034661255067988233841051273681405562096070661481153569489040245263914646079405624675962572818145230473818782843433887122908729315546740507078269961438210791649306600637776006252513765349652513524563060559976261418703139449988442368346368888217971019426246660017829034847557557433021322656996137161669835167030207447816648098697703794576104915239914043997665642162203908316690790651463526818643117216216344883893550410350533971139205081535441978847301237039247796073785891145884892898101476248524152689511326542961956454160888996244292183400791646977468484261972049068676271820710492612179895399121571666457608714695111999236707836879216146513492588246130179207424176720781594164583603196848513769345068706907566583009612853760640536671701922308452853079682519180937665711900041855520136126202174763535798214601563797688123238414243747875859123895205738078638339754209039513300209423315750653494392569573365715665715697636389728396789872132363436312593684213990331307501747687419861316725662761113504942202354724411852860597686130808092382137344271428235257262569962052992468712929756799001840167288716724830361491068058325283669910459543099454062886334521936709769007929399800056138137801045854737857212821105412932164891771219889190425068332663854915491904920880963910893276120407415443546355273464690005323392547614493152638581477809265005616607674301710512202669153776552754018007196191372447777304573590852565330482065470809812813019027043255414168098075880431485334523953981782162127860918965535458401099412222474299091089712728093983022948124887542772543169252232615981604090884633897691180544806951658546612549545048138472587009487517656940567948357853679537641863559318521586666909111703865751420980037776109941201260515540771555300629282827669627479876940379651986207307297798158261960865280022301099492911886376727695992181813482326630795140405656158833371789908871583024780059363934846779494833246954465418281243906374356461411330478440588262219875707027326282864317297466471617100777336052601395914883956614299519861209843886883145996572212069456046924061301980598006744714076148072819636726768533712261636332017143167168560660436660465600938305630665746925704599947522907390423778782699974967902507491575795561649133664925510547376679171897636738941141164998814819260851449615598917326534531975784946704923588751364485699413056514286403316723765552244160186727432966125632292519048275921505064498243470286113526880524119591149160882330236750078187446250447247488250785281292269690500153172395959724691650343021187020251270215397255747359255290913707660160967265754098015235303278607825540796991430231636886958615652937251848799563435673612570589447508813420248330088504190878997348285323692606298800301375612125922994633555642454482336974384980316887859241325045519931641186200348066921771896765601725951936788732149165232729914326116368010262495251453273651043295613009917211702505454664674627190039798057120162875354152813139971453597942689856476494082951790733224805581537670829630215552147752736935169579737006902105740892969233802883903668523152253578226876162360801866012587624296542830807603911337641202572751860188021296747668183835839920788023527856571292366778422904157234518667165645701461984957809377805270832159700951579885679990658891512769351478095513507398611301715352181920553692711444255066627144733113686073993766923833838377191815745043008960641964530521380568229061660349837410813535906396707315998075848860134655284274201307011266481311287139278692714398725217297512719186372830778529825901211672469893507144214341692050287611386418633892974731275353433167909244515542014570745686744799557385254441865531320102221849074680820464664970025556962293067842675334514094769151963015655392574605094414457454172857009270019024528180759371010849293421851436591046792462554095785054009428637549879604132175885951412602442768301502037514523708517046265002562554545825822689402751269117338562667397727846770833879300122933878644702493198570128394502968246123459108385717865291707950546057686007107732266107367248800471743068216372860529495933787430403477360667026870721566213906040876865521625888886442980519875787523856807202618789234365763625718488553967164907078200761066578829917680356903574969702544409600971466145430905565755933894819261764758221044966211796687789146890872624298635630644777239557233367777028800743238493875941832374990903807590302203648421607843297570372898351488398624157168727091681856787758269382777586893328936845537443629395149920750799553292669430185785391087036887222195362767436145769894502110331496364912881413552045537245591093086133628738592713537684851578587830245290586072318472075554264336236772861340706090060728015494524435152892866855387314930147748853185204447434340576684218402962363555012229906882174791951036153999953876680846291203821600842080489229895142873860433413585818417334952868330394477103468335823471677334201849710925065014407749751968575397610108540103656267203622569056506516266259907077438054873406463002377054236195063068440196878473316754476091164650574492040251682410636317493354889061677910037807858593227680970818324252428776103356086763742037059696278748008790712925576735022517223595628477758512353520712315785756955662492062701213974594806869660079944151371683104356582142745152883585842448491305197477662369684594726782479224890782038720041316477533734374231771194242412706461607896096928011552267601001693924056995195373326144613174761127300802564713380245445517046097200516244004561793402985151889282962494354129954982609696326905849142736158427918431338531331298703411337774954678254856098545192241689565470178326124050121413273863022950976208915202659257331693852252296779441779169497460957703029468276217270460251850789672634735534505101238459967347249671620675907643151464941503111652104520743447775360348715283119967311397531536617606678539499609707122433056622169268461795251052563885918238630863055885939718500458611432125375660354680915994635912143083348011023891551090971663516250520982339906000392489466602772191545542550008691147322925816804821117487800516550739624155022963767027248242176623226625867481621684015322847026690291110993376132261455535751004937328131284324939946286536419496939282158763541939924774153255792707155743139754269960774704998417662441357944861368946295709540123960229649664831003727292302286445128783882281794803276322898463902718049232089442184774615201897029120027193843332017112907812292697167666500389466956434084914669879786495324981597275734044256138873719442038722241733258911841538307173260894915141294796153980943457917777985955575298949704059633889414719935214089330905310045206923266519164125533037096566278995010500008566867247692577028541378249298373992918776470436231216785030035475410403110869222608571620351132271879818424731613521578934560431377985311744129715020737189838727044861119625681664336432409025567845198401672812432262649259742824394805761551026710437592711821300072843984776282420723786937893554593064001056934620648764417842589990220035441599678641697772819185113535364444275297106987798478046535048976999111174177702627183554904223812281789354122521136382826934229698353549847152064739426800092617030056312504108249785528572785702290182246069320898888532102136965867673969139823751054886674569384511934357093143092554779025050099175113110628565893146916817666212143211618162056046471847387355648201326643090730160535220419141934804454546221395031530471452642434329350870621434683561567464089966427999951371722398861626195792959932585307723145045929298211135182441401036129571916787589502358542386766482101880187942255524058394657061412007918194406624128559224975528782395110546179780744048649614517382136101561228707655316290758522634229218324137979247374533462137135313075241524858429901280828314188822098453214783460372788856514624620027805354389604150553971991154000810763328715619939909935312540461137470353626820100338728129167606429416845495564241379413511056131330061058973912132145911708548590882181911304745851989828121633311443623851739933002983956998427830131230272244999991633955021688075659344790689573760807689154246836110451701572534657052939860684461910152623804692353605525240050086101111951167708435545736364952224562805573970138236199766375226719970859954199523039072243369474811114700042669196798558122007233361033492900363340788671580017142591856810020955761238672301984856422667998386482176668392016449616735312182185064102494745818862650061202380105634098704873190365506400739539489043083629599149981020455351802954884091240798385661564266225604223715057163617234011446662308565031815996982398422449261348827918461589591737379114235332876060718576246520115786204475212913825760188492025644220760781304395944165383980051559468957327971087720277699220182664825272876056557203997199999477523252771521462310652775184075765565147000424651580236426254210984324225197516516622707938084752776747929170975927603889859594617099152367996139229012142901999419154854909488657926045657280158882742356798306699079622084807680100173474489487455256121412284300441800876865102956098633230074128726758443536053915659768719930175177761329130878305844030925518700882728271499845410710931516895603287800030823994160308925945339877706641896762102901755001408151070580479178133623248301887131320234678410896309914645275280972521333229230393115049362988978113413871638650543763849708789212422128078290040727695716923268801955484610467213393960689467377312344735263814604792959412923200782576762560095933519867536531962181782129719409196460788651333029319078591978000763611111419120793701605917516183444449213712525135803042278573159277459876448231878834533697401783118143140382207180130048096544316327512733950143573651680678655114307104120045656079485833811818494430706404774869836815765973086260575411001892537380806509007621392401137326480170938470147714936578811210693375428365362425357466832846324943139670755830585341767273313893068951375614769701132822193021799000721441847795319588964383437211753910933740630162254606485842296670881216819249766150520200484351314306773553646012160547788442589692155702735666849461974752114144738637659985767238538070903294468041380011009493258899586879844823217690549570432036528175821461403941598478669128872311071659600260144436719157396419992213589354001553604220426845726746240207113405146405017198638825498388491161280667589051534571293729979808912585793098092631719775966127516622175353389772017565206643904155422890647699160309416336279210834702913012717462018578996495039688341822490018650267113628582763258772753865634996092843587436759612441555072751942560735941299809030268348803819805996485027594713323546075907922238310860261535025005304923769107800670978242287454477935163694538937070893658636656307751319985063041043176676569082522576118212548209435165185117447642412027484885901484353338033761889160370297755052297434713882571783539184618872500083621348271211213329278460731701936636719123154756103410694065761557054744503396311607771753426715786561786825346595291752547772555976716169992014927164021758199437777915011474106503806514166817820287896710977158592490429852253028737501979295208485464564729617877380220851122012656660006507177722243824714112379541660879897369723213313963075514113726793372432606871520020371540078296430439913306873614338948433637431160225559480597392220301487809205974272901926363170088397187140898500709026129033861612729882311335797359470082354525127123847595942301224742861935617246929793811073131061231893654724096332624228671951210645661067535575027846796968123071390869901416532533135418873937535302305782456927682690077641180537522673515309293055269646603646939304759100423721733419803011679563440091149379987595950090694970293756322691705291468786941139513619218659730174326241811569772901491393993111055116701676627841724980720636479336179869827207894626094975362025673069791566617720522616075641669230486485693361010145475187619821888955430617232111230381661586577042336264027616878684733198385657990945491178195748393282545213176845426136210779116974427676011931683377915580419525413053016195439144395591605400888949310881874639195229552530431103494898987053526178021196408490009368126698473624702420523631552581477164035624996748901103773785912017295164217867490378436010110288905807162392645553461539912204557043814651676306840323198226297219518617864432634038160483688952361410372558800691939006014105124646672683251125203133353722837112782576763583558116908555177537534684004024744470818521232573023559340903467133379730870000239571731792653148648117405882525710116317046852181151147411803994382727825787652131981001274005439226174793686780874592472258619889134883141901899407900797566816489260769947998952514700007645273732353148159940384299455814608176491934436515234307301980570083932387503493058876963447526023753018178572255543144486501010498995992471420007859943955940490370133146284013580921032226904250299384983176937492325453142334592420933998881657518366786453220485885790705854555941935839852192624681188625985954202034421740649867273890700878729613788634874217733951718922191514736537105426037445849715158743218503500124407534539456015126155053624358996104473860342880052366193228906222810620576317862599323119045995815573351297054603051826092194144008379867812734290329452492871908784945414319365240336173047068790162837629479766887987570971390688243118583269366881786124339804393927181356857330740997492944699424524924876122207156699166701363215020687890338501776007022432977630361546938754133488668409140521705368835094218993385507498981713958214202697939810106769415198885589787414406872901445790841492437859102630013758746929277935646279168340299407874659477019823008540949236468426966090046493822944806245647709136172633874283357457444744121800012682115552637835916003705317018713741349261977784851359713734165363676925781452382024931062089748983589033532317887336764667028456320167400516273796450487559623517961313065161673557094312757998098727948576027407762146504342275277312605550278438251733951787728769493525622301724158848890584554562265943395410624116259374010814836366798118019103768903063829475971304580090676040572171905002538923610922854810070111175905121415929696840653176027160718645110052069023532690847083777746028104691721020537644681283308536398120452384429112963095210279024359041817166445732007057362442447479957694445035499140487282001886692095724118611223022044115620352883152948403155547405851112559143645639434596079867732449180588588036561495315637936113505474169890731812780101944223337722516848140198956681830129628338831443152058027487648813549618965295590369952574689361969362059698944937500069407676536331111545335291574716491111896681599056009915233669886865214573255864338848777866079563278885504784569173002841142922196744381664480313807958659425444336818121886473531560011529410925993308879001482734227326002644012793438019907858400703953092477124693174673052783866471464016362025273880596159913926688692909565766716632565982745103558202887633349736553789794864063156527263301090366567190016862454265808039121791737204525357770564261346655787978076102772240381838090824500219566571061492387353322787399651914908453736038221004202587953223089148504061879951378049597644683199013872368885202436141294000670010682230649670746626209768254300816332020862554873072828773532401774798246628749792650987644823652682843516914658453027838434333618723649201979646778240245495422575126604606545224782962011441444236554139570622452718950489652379786970715984512611929258852345888958215977424628635774081951061571064219785469212666939459553746214762354714760326702327989855591493591872639915212961101140811330692799608431590054463935933003929978570233427896452158488125839976625765401560088237362679036977791855409581146638182243464801125272022562472863228879776903378306442703611239243727561384779424148152318029898904803225281873800070587809964342855502258481670193569117530452585101766270482214274489535943143693486343904399209194505212831505795694101847395051011481053136855241256838467661976870678327796588327684100809336374282563085201905727465998476354828270116931319085253874138997332384113830779403521011989993453599318394508603859966361282901757874959336915553325466015515910270421155079086465179201974533637667939672307444855107902014526895291935565813925843001760586018553324993188985481712087762511392548913659345333976562331636929986461733253055511088035927334556527963043455449017447636476184034096468625612691805139079285745387383078206298179415444631847297752676486768702690285122836498705817322621199897991078276095725809885575085701897647882028962255495305301455677839035213986992447209966458261041247371288398071989463004198492450534055120622028078343532685690358114306253920022817526361664890443744555657825022801846158815251192997938523650950669134615443301575883388411717608502151252699498495083593210798340003401686823182742647476455888173801207856347267354631947608231856785269039753278670254796583890582460834682798748629035300562140798064519827142032722862268698647832305232417641984237480113135609382069081267370653424357203784817603325206755218351075118079566739278198118483089458640391901439531358460453226817140089107319684907886393470545130455634076188720941527190626013909343321703024408282045975588556650302155673701469445436286914899303594751303844971632728909566301910467165950261724551232812555067759496939539509865633501539476359504534019186798127740104837433535590636764759099949515415241163790379004653662550631027013096742616166027131797052169331325450817174534622112979370911659270675214330840495289870125355095526171785796284126085301065109745433987556290444427160821153027773488033749167398951107280772263240140693391217615224437907314965086453107846613364739279977219841326536770064963030099841103658649893688213026971570657871246276682084072159386941054002175413893852357355382416611704414815244543789069914389700123345359456090332571046437349909911676267330961310617290427917941655975330000867522824924259299239275893159031367162416299615445420245948889034525831909665114596182576380150095184871916980645725013200023636112024689807435147069397770106425305936952300301435126585534861005173913465887162269586431270443159705862698051003176667745907478200711289920332830208563158655919280186572799088095285286334880148539718688028770369776842028644641535485579973103162084168308156125579097643649147285010962140306455052138762154169386588808133321603538299885173520387942669206839806929612041836746558488921039240084618209700845787958581254062252454644812397297773945159908748251318622537677410642437561594262353283209582181277089027226462426238984186348902725599076844935978915537680557438160647633990597879364008030625897812068130063092475829830146164109241636355839851756464671507585781219979454980147885297734208497919151505157565933075638167746020386628194233676477767333218232037442985087597825017100871859699234656376836911860789409123492938289752508768341296226100599525239196646639488814230246417815547489358001821453230475294453148953576667171231073574547063191801864757126241798455651784957145865028979618263480901714694389167507541208036414150092232085597231118880145201979808666441850639387165178341184091917909309083078929661786870624654842740907475297402452742374361513502695975017382228751233885505758322410638281739534462390504783108295733261172212531794392392954729424130895128754403283859125710488262306047814090166328306780958728970262999421459121284184882120804745962176640232075611053405959162386196165806261196951804067785849796738542220100967804279792508144126547918586850629696384416266936164890781409955546757113509162645948273719267783469182538096244823774204955817536845941402162861105106706360416435736615194483163152221685906618871116013886489036334171208952573394558285200207855651638975895381019624183994495426538085977853954848091305139746201213035997372364793247099303852371443393310401120623355531803446486162083612575739461415626625849649866795884883544766685582633098923306443060490126498235780122886613025986857893409363267468912407160833654752428700873163346526145243480985594010129212867514091588824863918606476905933153431862685481237620749786531717405348524037401952616453092813580246995933812736769848353679176252079098112209339519904905821700270483890048795298528743696196819323451908325536568507165414480654035951169412350351730720919159955626218950297033804390774864014256111011999204386295524492207849935262968680908959643235657758705765881416100888339830866820144386228422101930142318062627842300233423503422543057452789747812738929338163633144216806800944881272137961922181289854358151435037762631690318186895165826699903095401186372142987486386891926533911893322003575086953517286866102284071257975910879661476462550538848848001351427496541706513220487941140872924508226985159490209723897498523103973593666675263152788957966810645664691076473490873619711889125575672094674148151085817399821471858677687103458486552605547947952346328321352906953276625868445733857073589544649023848313833165967481524782380815746999358776718649376629221279872461282603922714156667291587429550925340894227909829539433604395354268074735113819792581702087459856677555850269851092550206903729494341820209860704486721289456170704675941313325144892616580280421575687710021379272160310552967672352282198672413993119408851054512487783736198939712757772913666989281999209156967241170032446107136470634993645979540317853379220614233200951985431394901884953643110067744209356677985575865954781477380843145309007700874655567208693783850058328988915986800573369501965920987151052904541436895490238553412605836027258500705275694058884776834361178546057379594878578446515204972015917020391178303138879875374227785767745471203048486430651296609378914607200230240514608063480020612706104522467109464444503735931552378333127452941768384650402148252965493600574793767615741920699852525159358634907561077120305790460520201397253130296446523445662567215684365517127067350951443739960633913766279212010436890479702192929031472019643539247950394813381710848186974805768690752127936998028400998041509381209556178954007847294118535266562138031204753282092879850106827629270834938513597690067096279243332476584742584017862319845045376873126053485807151084748665013328713133399008591184928710419888106913749585660302291019328217007759703980898557364313471108432162922643366431133217618416760841257170876067113388103691719070856872364147116074025216274151364737521254320424106751445289225245267977044562687061108484562550977172634563337893602504559334094149928392491098958674474664314073861202084358633759353739299759630573806766970141801651478830119305910842105296686398573286371968655684612653569371526364796532443529932944424472360894995730703063946639284617513030017879565010334188568438127255668398412146725617555418209182385993163716784445611674424252048866618608303797887988424079918886948987663145643249314011252537892317000098703801789093420694988249980500108029146342932808542441367773298812576690122257571668263652031285931996376995283034700902910877605914246475022811076625031733602051973903655381241891889659722674684407602328012469195633283123445408348469500024478495773709107228135538560720992232386387623369896420105358615918868345143209773337741554417121908044462298237088044670138555282618812812507380710443697983743550133669995056148980791730343112960504213236370273621028221941454855467180182370207431216978193968925095383143439843066399416072543870354900086805982718327165372212353269555843793461699965310346097414989745470474877282346594695341412606451210793349786067133214627553775195029490991596349900842255372489835744189344512333930860334195668306734643894422227608725070175706120312086384146601747768795376032728250778978175870751313036132644277818456706369794975225849336851969649646674665472666874811034918835428180676923043739765496179911518575145892014709801695792834565106910595216878456483670639116156563844865244193370525007897249787126299945487079250351122599764614723461471646163145810113994720479978729418234272478666802644756068702703638443100104005629007909961905108302931314226742973313396709385521529895725063146662826312280320243425387850890869969692702869823246248572687359278409945092328025155840728276011964777298123517368534646325714719123715641257914590316415473827196227572879012168551357293242310272999015054165930574140239742818811606283811715075729998414528130315916368127028787973246009309676886297940467750696281338314852867777170284608683860162242762047983519135139177130635833786029355671604954948771361948381352400336902420889192783262291737206352020932243078423211407606174686992084477400368359332440037638511955136203203378784153116810459933351011353737903205330512145743499548738105340802554915216103145716523111949278226661756439027763169894596319447285153183782747794845675002158686277227583718930183617823429532989494078748042388028228045479359651738326342858847385819118516169514214206433869326036183913404387113613405773696119583782944471891233567692773639363596904276628157726705911460161106813750386180791568176228816607272633155865821303404266387619422448111961818688909269461366662501385988726453905065568996452647898334474215631321413901144104802320535534421949543065908795641784203160926387397751186015686202170880951448051468957275619356692760474802992838525785728385429551627411724524729236014242189121897545292022281514345411005277860650054774254314427357654428213770346495867495361798519744882990897847813845827074745046518665439956481870566774222115005911799886076426912126094217910620922671430388471236632652009189635078821556988927456275893492316386148602133837315467170057904064486951272964307994240652111784060851417100694808343352002323039933082495575933551733303059369722345488576499074526137126738408994048246798983802297343533159226836056178436869918819466658589910102120609489024884160449257729835247541013572982464376491021326529744927363160171289009553455506446375999387407190791100099036004522024840203581515705647257491039630272697091792147576789603042405040597906146852325225684293832165024518192098932195028883525151908970215596521132042845445848206063133579746511953903210033392738213300686411694326469317560398315744404944941361105798756410263727009651297445227912646325017260126987498741758560292738946597588856367238071357223096907157126847588783511177734666084976542426563867875663789214279666110657856028451453264658059593335635333561375292408957786831482206266472525306383368817100179912812502487492828096218802781147019982610189328561488714560718382010300703161773327753106709394945214287083702408628586474482214228911487289890906313131108733776035814825404559068592560201076453988861247945796825868611506289372343935623182146989526135544614078207133666587872080381143720696822160522855725170347438525584638691837872365637539915206146874477168464443125068320848188144703312187598285257887186767191075289840455046714347277324433202339552191563576954495898235255286975308198654950456902693433403667666578120627543037389037025851067895142384950499465021979244976479676359829311110536691045961026605010936564051104061675000823206084886774101659804370817980877649220104017027684693969486782299418382410327720945320313108642370283187183455132195035853366480073056659882048168178425075333727272981576143932850922540468950893458513890634610386340485499503833206678913505184976068412004512651040024758670187985044618698330814527580455745841687623413930997674535558059325171226864500413082304303315100247811811496213212434287110725107491589797889534662039381295325945981437240485726867627388279529292923383429958536374141165698093290097028113854193622597795549543420523481670782669986182575866964691672694930379243332229312891330777965116372699881885373108094515725673812394135746488908426563040125412931562336257228820235893015598256608203466239660302129481079953919056346549681956093403793704981781598326472477106802057030276452955881462209272677864878412558768988164492764487877718118578891127374503306420518663634697824175622127498628846670633549368671277662003652461931055597945226494841153404896561890394937127165268557548589399880045190427692535521377789604980801224261823917767840601797613536046825611264997098442993000131324592237704015679397650713864317259857696944480078381459053631138145932081899985427817401557719090488546319758015681235100389178821660661577412685832517402764634962829433272810878722112928367826185551684675622912131172050759989721339081898286099783005106584066879334159811115958093143593225712605019938237157423236788228765098027434858701060669044092548367000502662423581441591675726755973510142048163370846488970527576504525176363769115502004645259034069409312416179055539044522101261888546020182576578291045142605767755653126464532251633272670532889542131141853797337185525041111218637011282810588991423938304902594912459561286952318461534185588381124865489118029021145093341847596272435173049345437442243344589415607050299722384293424108550836199729346533313517172491080801518955003992162480461492307004899937761541106804388350034198136027721362572951609953101738324891657634067739793909875785802419831162616555587237886532266742188572439438956739373564992581679455186624822495339698119211528503419530213054554553836329388173526304243699466441916279251728827188837724496031888645488874990677312235868184487747725129357253732065045094821484632215281252648799754851775102418861623744235216141601503370946583400917797018046380003231557237142263716108910636045034182530061102767054881561314733260024235044213687654205103234945974965240195047600546704706053123757412585021693064946005347823292520286351559743629041872920498284065186126469141256185904020595158270657518617225935008564967816049043158561156130919911654127033237824071804535198858354156950518001634424758218754750757331049173133060640919379514558554983405756647183335497771468895393953076319235036850885700926411568202409725092559330796034103885572406282321703964406275327901842720466425617801287404941229624442378217059594606093740508370519019112489129427466694893733650130630192970012157118958877858293171711662802777420743214275491524738571231471368216369868244685891340731835374589382950564000710683388041789444821041545488315236399441333925057539595932636007784800591192687164926139940276346842034587535115510878807137422268880217391445708836331450850492902346752648112046641258034728671243804723223046477114401337066725550715938335085763067224648193188543781788829291375591565349348561175665256711596125567759640958094259926488474361070839164201900218815644518116059914420647223583879710652218662033420569246382788226046813221592646373550486194151919571424245913600808066462482291828324152008464695077898078366741721140009526789789324546317908652460112265269678752951850644633452784315789794224648449304179072662087115674358269427667523684976264958944084360335188946116958901336922691970782570524937601176728318873843314507102083102275713076617587497022522870485050126951528257879374079331868925168538273347565207107623161364718434465887149571171416827995258387468245792301225274124509660396161150182600271432336363346901059505568823873540915308504024958680922380233766127949362730006025143061078939719320305144713723362597613057919361191992286776374471154910547140605296180253589697484256249492407363012582824173333028575691090903239171634275603953334106560757603192480082663248918092437444118982815515699726700136164919992342232571418947976901555978193721292176907112314793417367820506077653947675687935312598524778619844653761096256190264104291182449423981244657097572109227573156317533603951362435408251594750194949635781845441734846958626270702150869276085085900552069649656473286763787425802648740674036084512800866176463719847156745339239378165229359387330796811280313143649299022732864834708927291149017992626458797637619098291428570246981818415606784498957831946966526162754443358336860863883131473851207745083256441303710058920674867227155232716920307865536643295954085866756670346339455852182082705479471912441689943689039852283433738362216437190573365160442754268386565877422689332034360148224283473019234528118575214411295543486563246268994109069247581448877029239301566305707102198102942089632441233911435366297788911823523962133454973723765456965489859323254729279024341600979831579055593524949378967044845554649894839171332855696757851092017785310459840450317759348604149052480191008031673604055827429610103517440090119232027400933992317984342925712786695866755041419644894488308730712020689552416351935595486488042515287531113097040189561976733257214828814496912557963648088672814674864400940943143232854422793425656977552081799311413742437752469937754621493592862539189870358333489845222187106453742583055024783922992780507139404087944420237596294100134871026370507390325601683600657506554984810468047019024167727098315983361095805781904479251356645490752869636444101740009426075132047313432325146316086206291153184894645526815374494952243644310034486945607588598443676281245907484531126645236708320666831905237170458775248261632686415279209544534686957314881537251659070411657443545903505712411498501165802229192407870510197753957213730998916088527544327850987282343365145488043799423132479934099780564805953529749567177234135289858569577318476815136878350877470629237419932737449591525134984316342708845386005366811061501267443600299204436650752116782413005527442818695841095483589168918896559517125384270140254708834340358801861662384387968580770772200564335747105749723010500055672354687728230479382213356674736030517015870259587568978825984888099395219008784738608832057442406851085083353883157231676495741851920065338739589691614514019222662700219420692179258142159615892689275287878469314912855064691954101636064337360306942873197470540684901452481955735098393567074167029986348457648120622887756655198333321499612050002328449333375574083784532482480970313240094872224580183651670712482746141638619416789659827486162920356069987549997832725160674463294499768457663440441183527755880814967199104306077308405439807287980286032870487492395659855436345033156391361202201135776518825670605012837716192560420738302237082092192485308823590271483398925959990734005575341161939282086347441487367327473399582396499766808192057464493842017400995209125257979328194917851276796651537463394958129596668790010397481815616959824096897200605933480465180908359548631888267916280634449053236901565988782459713411135188479746014632904752895690575213211367904633188056467270262221554121171467902325407954756603847045773617877253980227934376745500658462264194658095902346216731668765911692408479310664872892295103475297188464493068417552924560140233294695248811081233650616657321010217967971594179803677676224819272853055296333229491836614506613712077616806388305787466457510599847961076796200556388777719886534816758741922543342943031391606521464148741787503375330542932778707574959307622418706856490411671251141888889691121577854261292379350936512757369580971460557185664421396874995832355588324892359877313142926460289540126889715098607158036867045302293188857072634669073954536367076976971414640278819005861346514665679509073422116147875009023006505427104408081471701987357361190007962874120472423054635410549025052337710603598505190579952106381023383766939450367240299562809242100682372807213945359957435786462791292796096372980334100323927932712089101767315833660159508530339662158474907098431297046953406808417864952237805723238457302764286041898459672341356578991054315366178929813323778883280580706786757709524052243514072004921226655772479261853194463994286872759657815198765228013441908408082295535596775919265183334236098471477381304510571445687756436246840594707741504617479050092433864925894219325838646390281702786763097762172469307416221209238836514959406648202289991337299978010754788376770430992613507861639599912912422275069562157325108299741459912269764810756872356753248220138780220853609016727897560385386275623828597593128303100298259827202533235461229478442209766088386602696309609750568191695273773434686570101952130034848103795613728025642667913297201883973908443255430300884646977822571299461140491517307283638784587561780200290756005707591018957583258295893527415641596049273400951259065099570985243139685149874049261445556372637139971578171702249643846286618829565912208811573986309333142086043433245326453768188858031999225341820152097053436844410770174376802533398619666940718016023952472928221881751913341176948987598280583770079435054659795201212136807084021828121855616752968388650226606361224203750816417074041754345325489036880661799046943644757817067036213112820181420008667567824135578824296052346339493495426699963564515935046057044397201920903075493395119890378654856453573731089295249958309142075690565734801010262771979007617594324807158865199204016556057581103669254523913507850585919339401033638986331971003779103950565667769615078666300247497202797128010593578258519350288695954035006501047855741620640616304745296875753852549831701790605121651673136893225388903767383762354170656221283902994863151411657375943800494118863909750362028638196790868817197026358014660094465732896071595109157330914198274320650795785537231850720041194690008873326369329053523337414258276172785280693908381422730874067223909038938387832474850120405684497458164415125552310208246940661719817159954684546027876767449888220386754391806142053297103314483078169437502293741341164917113883151741255101704328921575477700761878567908663480162722139635698896929273057275983699289217450265259337828105212948409086455735534717630131870390187989324499314459577687806980534622701176174272449016656958898446782194449151604818967393851328766600154581242927104125362139806937660766532192561959403859889832713498657236928955299443830955218353328279019771651584436239821158616662912257678435521086210935457585380091674205545333553771925724026420478296385227398554428883490649223013877990639697248684629264139200458146291212388649070962133673548676361041064325760068543567935013658998091558523160071333650566667274029780123009835404283841126794036335438299506514938863540319714327451474583798162249351283775201252883527439103474225663726962563826917261653190884040249508917862169467565623627447958477284562127282966880166450113678187075498974949148548134803700952039526314993017520733911013191969022658568745235670733795912878780721628754191658852698657947562589850528949933601159754931955030039709275836424506253462128343447256551775009333782771495790556698564507408156157015723364685148174770060076679745896298949871340051971338152479680379797183111867698748138713050248839151746096425919272658587061938424136660075280598037939420756119926125506868058972008452863426077994204735766429940904065551595327486259900708218736023682046558589829679405145434687543432148437965551271515635702825763549971754162785182468069706224812475376486716333033946074912559378425629363682654776278995139298562354063950212866551005028578047001806155998350907461819207715506815973868798471001489954299216905009082954512052213528647732438285781551720430063126226396937875583855327242118210996855502641731732650651199859234447285954738462355960576424749752062107486662692985290937033959572401658866156166905590893986473291272096536069538351427563949225461338912976970756632722915327021752834863641424132470987174445458873701035465431775758576986511504242951120430163845206635882115731140094561222850641420410309304023526515809164706526056684354701657305289123685766163277734213015526251718333011119868506644015220757119979610022414948751803783465187024977857497361524052865950895295617914711124473216612039684806351639197422135685269264209165057924119980487708710172820556323476434786105465991340951366492686154776625752546638877110471933364314909175586622434415233432009098302943148219938201919639373004278492044171019219638409373420335082761339031925156952503069836707085255977090193889608794989375690643733078972574092517120388839599932091201635287289763470047362913377967126623489095697853142937949359959961039581145382391789700467682015995257459100220336309364284734996467193735266023035904434570050643676317747486026173324170987486556032367458370365010748933984188817697222963985853004256266372449036288409061422280285966287233153009084158113108704916999284396918261473009829245978827310138126908358307406457575928785650112444148471811124898470048288875709990864944179701395230657814726389607141835050575347855805319493810258820309587503243992973774872766902950592094382298831837411167297477648450627016733291587422261745013156309768401544486771239793543969553374513640966668614798541910817809161809407677099425927104396435563070549722109320189525547475366632680639159009359988550114469052481819017516030335315563623548972624951053427535969074779345468886783156292597287724313665547460069148212353621358665332773858098847143314701378323782572448371083561978906510236373698213397629772023743660445735040547160745924066604663500693813628827717571612251057617210662642845426668776904359726486231606194496097519477411250152202667844511060746376038476906836835478821005227564821134277551203053518794671019706211770851834015710100252716007773781290079686215693419122569729930218289196704413795997451473013492979866150077475574775951149181297602331168024952459781031692807699924371622518648510821336205768117824007745189804847023787624018414095456907228144493088316790160408668509941260951229494983486224266567282156883625598737593504460817554895657657589111748190107756141312950879703110954072678890659215664514461900582991912455540347408134580135810473335118621483105651435672200677430696058964615982773248958855508978036690430064521827555089987541662944031650138632079831722178641956800510716416962104611754673278646990694616605554547931592945351927747997530594376053220780129057193619138530814614368824317332769347201926019860302579434156079372003129348773379482023596234459536265130370147081119373415377655162696432550053598915332954516327732027029958734952906980393370786062499551761180412262520062783440661647177237677784130370579531371186951846173589081968573724027906105449029000419284108983582749027720785606583894516897050251199839529212378513200479688575457026249683444904620073678983068243355376376501418993581069340011358451296296321446422037391037403690981244039519297219781517042595390078124090509043465172989385062790392416757817710130911238555387570397543352339835527149560024172070589705001327158361150710782473369043029403244812016067523809019542012307904772621958311031579325425261940605135743838243135056537452444329658289104246915412590753095929218900815061134580095651350996996677417954746710768392456946576052889098021726291808227174656504933722805475063765129010392169375989077792412232781478295510984052244115622667659061432844468532241203804239369413868633478819554288403788002431242074535176376620305389812969461575484655688623660359510738057189631794135414136111769124348979219127539398458630340211816180830290541170959638745671545334840679920078665288391324265654187978788770703733983904060133223641813309993124060625702750075986959514711518006478575237355770006374344601835678977915151963175631387334609517413469519335862985255374522474385753630980110101327427065108251423619136531095945663981229985103192632449945168329738109864978206759100231831237218538922506285905630626383772103836524450548163078769480065437755369725783967034719474745892118064463086403135187328365309609938973419947080696806836511798528427892917229562170144727398273126512047442711106673119574816452920991958981613358042315255006487741578037916453572083471538081553453251875643773368915894481226397495239130005647263164923684327568298162538068670725018723629424504398546504111087793531214144052847424040338503200216001271055989972373933752708192085691154243964311859068386426527357224872199069401088680672747859933541611925002285993838808420454127135399187153968511530033352083151635386640210402254689431488854892765524920841001326720528444717413091245735761103401268354982809638905860394094329723223463211478912702154797804494230594628029451987811960158666300466363673204782162523196009068087922660306643362297990428094926363988794267694821866990180277466850687477162362658745098176185596223506676328369153216329194007711517378854415927574752462182855491722346738223241231118611943612184085287448736257355652217570281015457332827161687453533032346844500174727827296491981604029423438655657705096070885286075927748818634193205250872122111207645393734488593662906673027677564218183420008930507287041098432686590636416880218702330424952028778161708836546277383656658520856135554277059160613058733135493449961236375829057966852231396276604096983417004907693186732568009810400619739961081228778027570917736038194676432422971472663770414912337018706725748167986485771268076151205757307439942332967089794760386137930448811497386786955868635421350477735071039107952466255453176406579476972687113619420486776813870166100293858474097822934262270402622635633858244343655868021599611100980659426478486415645754765822875910949287690934933934431109280497859986423810133619351733295916745181470960424325860263295496718159581403687640595363521830452212880851716368510934091477623330941878792795256585110732407459228498516611012436932588570338276979350294283676178247967012216341366860995415647648315852631414798011649561026707255965103985229915540638901803865022009409877070453179434661727205675622908293201825922668965668521290366866748762751905956776898740335096616619042826152637867880485672230872520318518866347743162413787511513448213051150022211153912774633260749188750219490167291264060222712329488794901373390126038900188527676358278498496555803843572037011186787070522304139615936239392786714550537304092356193079058272101906444717296565783520393577698181365684912802957202309671421774660394711387822869153471073644864103193972368675364312162692454801560124927760394117917870634830598870125786276108705994159498936408033481013413269779081358189222518013072419174311817428114330408101073034687686988522284853326106855039852907219450608232812477364929302642372381164225959267206225289690063096553591383866650751730459613954194030974109655377675210258872255852029003667700187284695906795323324804201623488615454185253067024766096885102202965581375727835746079415793699581696542898969755774431556815732425109971513307882778567937748513595593715879421232702735449092370404452905820519024877757612386008228483522313934121096903486109995256252090814730095319152588049997404763610027604665393294441669189157728860247859631704236887902421235338946514236046264138279773330355832706254500451409335510128970191313918360268288534524177598963488221542422555566799124396004520053247865188981839848894271587396572449204208608965630463239301557107917833929709225155373010558116675581674792143559127397573058808090890478034593952932526015045204458478388825958278001573370039522161985067842226492174929524945306870225111716068623465932746746764279410109616170307955180531400499052172406399060300587362377663716743490612085634309986264277705393260816461190092286967182716470686025976509030089217674610467974656906485191141628358129936156205084000752670327549300109801410771501859567514051364773678841344174831185056766816230917894218111554530460561245998424353374753106866191135298765755691714494707515967161964173826568863585701570790259390786502190368878709892270165296398990200829113048113429265142175407756275693465569177798184929456634359327563516326870302960625919420112929664062588176380588375856231914294723039466870235461268232608554103050927803443157004955458107992259384630799316632709490546694231914664073319001162688794871095158729498296584080793454361588450494836387766524756536125130602950897310960235967604908243527027946627990148060065233790623137970646562875924940969568327267036558166921769058939051850737382784433104215641164075216518608194074349138631991912460433367921505266162686137843364366903637864327066599063595937564040582120954655686320230512053473302656944747946119023561997656158392118899461604642055575941443923977808017198537560669657001453849690517985325229489327767278613028816017574791637030239139300789387721166136392492311032576152019778493570431870419421128009271589119914797357227246942561812841333878286744082854926316303815546961904684437133107883814203809460019019663491470627527329294750979728409947044563995731169828779989823815764705612908390934781670464365974302226482157707162587718214029951457914040853036345746204695375595265460133339752788854045527633975744283237161668647080009909027723198411385174309084461060675698211180559116277505302553594306129586131252535905706696095812554645443509680439262670050945853653254294851307953441613722426770319415733113270454424347713494212525208724774573277520443258118475982874670191302780143358156041204960553883926645900079863214204629370265208219947060165644889454553311481065694902391444836044335034306227443716584366570847458847399808768416098320050148167994456286567905054398798742259407166720597428487956743355850227922260204067790451980096698685897265748885911875216856836152961145317307718472826537355509766337772151596298586585119041821251814842726455301239917715156859166078489957975577294894949340106257463072251113335301343685244139536602281801796643230810388726185181722982980395858758262583174732223897230739132998075542223718902287494487765621795642270985122415199815437572393369628464248344955994900481617695314688728042794567085239433823484345244611522551745225330570315800795502529540236699372467032021702037979197833899293182361169856704211702884994082570726420588504119145609297399164136658776304603698512878363922109853500997532973457110631124815636556277413838404083690333948585276071296967228885004303031382652809736002559360543051948727828601681676921211138153831431952249005614244864197990133672390906689396996616792799960580241550654090953196448508679981283767170718374068217151352670177670315114947870880104511237795609952489623256156645602161415181742478856338496373975870540531578076659682428878203019841456912815768437376801079852030654733195756953396527533480799726212716367860664133971185248372850568618077463653537132343449119902634917899514815438663930116201466412510323946851581105037056871068856460232508712624868768462569281092423509923964544279532965205982076739633371707993164702038713089279143034900746811798608854424361956498813402856952142691436144723365425845627854916256766824175341696083956189764478024665746353705842255328299308023361812975453160252931058228656337373516096518198098085038589431567761868481068987433789792317708724408747384120923011928368527233986547458876044126503650568358472617883487479481942849211720366015220337591441861924003171060381202076713357811757267649712539762453415486260905015555664257352125313630243474052542587997155302485420988416850085242389746166943766179863309626601049081956470654707930643194254869805380438751401401444518321266807377902870870264631870533495760741846712295040553525978894752113014013585845191534345737043769883722227915781025783978526830652696489616898837540197529675219786098873276253132156343734798239287155580082598010420684404220758017358549772473886616176905995974365304445613320833572358035113917014498938768883342040171905711896391052965861204588328554889512813890827857558494439311739980913132193558955140077625594638667465721651908597733955070804050882605372401802187477797425061534880374029142522293625923792545457995051513060538048346884521067785519265727390100244077931257917940768007025403589534870707512784066579823206972260756130362531794114174802230130382713874546242981753923023621284370630145546537551183506444111793894517856169828625609961126698908238546748990929191305233794804339946007313285367939104084409076482227913326058641197944328198298666438579885019875634947729257787290454268676200997470326634926119995160594291910357078276831717157679926586263792536825288297605006823267918262414982860081260673314540428374779532106866335441175859185307174904800511048692184922646053399590473306969254379900902549121697749571604625128202669542385580227924793814699787922408527742942758909463584155310886552650086547036876241178367627641337691615113422455228197246471622074525844671047357459036656934013416038459187004170556144385423799033165581779053938814181853701659201616942397846822253467107482044558763880447673343755767751580525807887485034747214615880958788592244997754161760196268877434893081897953239822320840200747478966947793035541043782132064414936955568262073909993489561397766656261081400701699713587719300020967177634918797513626804773882009425005392564885420136043485245329622550900188072086533897959265161241277585151094466665455997186429371222446530349401473311932355469919929588364410487787477692332940230806962316256613686661159133451949418425277699190606268436708139087793798360637678126270756652970257678178851752755265262377346060217530970604897125056215829340524212601572225050076229149821190543593464604945604616213021119515004883383399552125376760933721659879673291452802448656723232791089743999104402646111113664818192684639665192075119927129738577242546269280447837393675849987288589508808936978299077010682027696604192469145336231873095901089566063480938538644761209534447487164910818724770972083405528645170527108013104337631310001855822330539399179255031541558964687716393915327815817812170245518135023035544893096474299758486838435514259621067194424311835258663517401507055973995845441366972095074188784825240747217639305337583136197426164618906589074418224198887175091173141414174760772836072589380986197843637247326914595448431235169853917955250585215451906862398209393351497911854631303476649349793403069745989631983303401684873471867046556144578140785382501549590872600611643650333824093763253402558717833523545598171232222002486793902225764711734957909981554046629448363314248539500603978222622267388947442949927233081230298612674217613577598406238110010447746274264038174340638087831357251504318341480518956571132777416424172180680585239417794418163133433475103604401278918483567149838540634559622528498887287419212788503053029491956842947745596152449878236736451370947515854590164788788527999145837224585836411863386118174336312810076021240416016039394046207204802067167359903640135112451314825861889774872563269694985544270496054952313472065186528053200111027724917196306562481645471016069977042270903467490206765956929642297357079191514377973934915760821483007634887824402967246733206011897492002933842321113579137468578888259121513265872908600736289326051783511758916213717177278430731328849165227882877827076911558050613487635423938198195065853356616175442133330512902597172112981964077378825034239511498654080626021713599240107339454294301628609266908937799726856978306338997865309356767161148404769466739826108977184374082260484753647828841759177256405759468337962193733598056971168651923725084557598046755071283739342578228372172582982911791859527901730009044978595382819688478118204228264202611856688215368193525692821776424221332987426428256504674668900576216161101888702588257535499626869678922960874246139316316901023220352460397749412831649222343409880369226465834687140992361990042051113701370775247888489423179937603745012814741370189232218705623034857531996727849085339876939320172600583178976375887200849904227941732609124653935128887064663144273917734018785660181951146259311616570685236168126020573291297360111356979502839831159436628302808932659531808435922603979962562854258099149332836156117257631351383729814186438674411712492997466999548686207201689355703241770120779600583579904229323271656727316960100137182152545924015944332708121758392456419511969864902444810650239040348887352144294755655713971878836501298952570613394954793035992025667124298278960119590982366552935726152552580576231996803543882106322001584347042990839115507650698766441766831025311267433559701518507522580186692558338662461863771624094037824520017440668202552943425134862592397823344169863753853718722925579556700526708896042570664732503795450330611529877516165960543292744033088060148135619507175754273068343152432372807153240755301707332115066079339785177513684525680452947397865030838159570500621410555925644800871849663024335282280176841527403271181491035104095704221626801751560069869715798467238377560846527518337611816416006623158214794376264431121896426712625549974391897095978739798094218080346181396425702727207973420883087109352657343674169645730788262699097033041414544845075026824374567395509877119871963387628986387627462910709921855494268176460264972134457990191672431480149260795123452618963574131160008512542868084975135426238466353008344549073392933728853598356097418468957775092240003228991015477679983111959711922115493349059834935842948706089339268184360544487237159772951281848346965366469278302383616308585002651951615103145043591580974838154022641542519834910906977749094381693543499621362400674174714511849445906057991916232191332051406639671462777749162199052272021252377278401647696428630843438827895136357609542286055576271951452368317121532603247612110576526552297610822336962478328487065802332298576176796504878889625207795644269386700543920157959135864488730080811296002949801247788984137290860589922561500257478872282796179500696667224030886050065275994819713106510485918416931292404506378668950903602777433837424944016115598147429422403433222030495272640997015468444194693251738945202599542908486341314583292108482115627041904050762832283104161198357036187720896951194711844614216204656231480573679403830542532039553746385385862545798809183057182994506189247424753223226667243182284829731204825400783654072161379333492460099411885319517755249112854396504581009536939414887153032023550365973564002663688359537395530897471824666331100373726733952951000341912724865676527940743020459249442883010392871161507495975281592851822636273292775560120836671771530512115465326547026895407659722585795396878565203200380852039720788985972571249519034230511565408120932031314216528700536475507172615203920099308410387278521279334997528767739680315419630023516725891330227311435723954720109588088008749108491788424198015807010622216088191185821806541785359660157837260643162873337209603728254476608635281200535938999653054609480597427400674660176299923385460743455480959993036744354927870070727384550755273866902475606672346875818523598422346840123880394724003685954657267752943350153302845574052853461282436989765500037305314352254756422732997508581577383122620169040640473554983944820471672317317225062777121561942199347731085984328348118619971592776933096526481859547556284360601281915589455756921349901070468680532407766541152685284923507792049589425258691967382742139231111863657170531050260732662224029229275080034525262506719684630363434651162591940522241236612796491764411399179626922920937371895325750893806308920133373391140646888669047578855615043904537428843449259776345563032418266710587466782402823192307716246710154951923378724054136170520035323671854853729716005907435634167250601175776749633429211410493881691773645045544241761863445276793167131365503425883231165654685443593877785867210677743852330312025233421936568625091872755954169767429660348018352729295858586400027652081422472008386149968185431875462644435449349145143797759957061959623999846185104508757696067427904929458488411711285114587667530943649974013048233096987141942540258985412310640162788582830107681287633900781042726848179808567311009838946497169598639524144505908541947646282476352074261341210576480234405107671688935489426652726696756833935777628502275418379000898192390179172343471962460147424843588023578832302140231421876228607042677085291951067668290661262265766827908205836994112435877616197124065520503865785632494591250834370574385918941891594562175250236110044158145014577676201168027189961615598496624304567695246700660573379529084454949767107948265983497716066033378633215150070049863374219032068329911400441320161250521823131552776136621518010335554827152311953152142058774253121019817617202976756635277032920454534121515441788084137460080434493705027651526629973119380902118621015048587028094097540661970951886360658887851030126379155460472401478427726298603296370070288871817579650248721036215615277625433521864918253043142777841410563053214838346155119335690324984518590608232030128414237599945813688369020760454230941969268143266957502186388407860883736533394721652879594876276797434278379211508102832177824383423844593499372290746806268796282404566981518150553919041735229210578469559659515366395648842174337934106116570925455748263541579386562701025454699895703335635449195500954572744384739202800740515315302382810425148330489787604360730947560858099932623090048034224885672418589181537816658694558556150336683864314633744316652330556109542900833563202912832510821531136429158486533048767415273149683987280486025660355902218015614703304520731346099787685282619841132077651516375721378628503061806184108409098122279388912742195889347836257322783575787035285979885823581875352556854923046901838283444577446614204453427111487142365335854656695172008870058698086221458620211829036176232495737821867070524768687531289942193089560728002861832662234008828554482102965874001398827567834875331834991431415635466390488468246866025150152435863986703907091479382398704710382851830852934559463383284511299303050094487681643072158884269033036610070102586787523508504343769778572715106275977707318937091335528364058495019616672628113997513407196255030845357429560545167324487478861365629221569568517279616533037584864478829831757820965917023367408928210915785573534309722576219817178029560845197299981918992997063367740619824603425768408351969125975971371256042275229888687215928772698710409390247845815518434487474839299440660352887495844191003907297922794242167856575013318109146249394447361670841186310183777921228669972846913345520760182734348341258396086899240789339694541228854385256768463890030988384660358096284930614777590664622256028280587926839902437446011806378884456908514806555695140670658250910898737027762597173426751713388471473477629308402680139254457178933177352771419617381515529196998399309749827585827195547020730476828361396112333283048785401922973354352756010176463887289033472349217646644299877162578708370562599707033288688814408421829997174592613144144990363160477669042132039299478720704486937955355915407002470126523561237182696541067906587131571816489533465988169110019626160106877657758179559558758511801179891152813070301089168300920900770984801734169987291481709831678041657498134759037729192167967169812615540474983880622250038376586258735091251257287169261285118704564636921527548042813776038388296788514279621676769271076236804758146848649170034630102868557856399054913003923930425793242886388290457867697787523178161062140781167747186005109389953174286202436339117835150815112605969933442762844181973745278334964825808384699635188697570403048060829150082503938691973268235773051602525633040540034112894532471986456908949178040746926713282644390175253587731135380739811801096927962499589796656376032035328365593030486079151577599203885370741334703486245070096413815991590627500143182073349653653606984842673877486081861447641047069546663499126748232723217930114627532451803609598123436897570257899417841596514102865586072339998639897322128047018244488554685259185629807437691065380549346580309292416401485547992346980078284788923803191702012710291043995103977726650402816487090803750213419179160959705107294580795524658990380605863974139459416625110361052360390861510148920171343324790509375901285163816374651949516770463072059633646945187682694460795076837547934596400479696343076525816152162083501750765224697901908565176731353238532238710213763454835080488986265784631191621820764130477459572542689272332235216594625178212793416833103198121315709118296764514956214174545611230796052120239965826664286743757082784787973593156068626403199712870581523518157086576189220767242638570545139446753473148970025654626850064325201534526622339385134876000828822254515971633644157766459486807564750256210371322783962101480726355100711662762053029295202370708627293766473510015030984125172366734461242545052893916765931875817774618142169094893938303099199464238903655910122541340121083090870270577608191813327532028621540312545494173721005532176053806694012743456044739026402823339045147514653619440731236318553039340343200757087313807332153929279371627199633141888563297067901345386112247288051367195706177629952330582275411361079124946436500834813997303406870610486240374383565239327578631600671599048565284131710893189873573975424673585813122900962444159788771638103565846031054509393495426369850917461171323424836222213892392185052482900941524509467298474356917683556533962818649148393414134578008673087060342343368228380736016223931866861031450727471133545135880361086703467647611652151194961077695881120249241123409862206762823059941463051625751568646348441423057815431259759375035704554000253201243893787452561381540270926968236424545301153673864874780532277407836957562234354204706096033980084359350327819407589827710938087144932963406667507076130388857657441256484694374023005973016447040463445426560764856735584663744081039397071185143720708295879194461286833761725313687746234703358119377958201649228302243457453152885447085586485899799218257723067731316542795367714685225620352679689871831792429259450477075342141120604269362583952940830564175594854369931510146387169259467618584735799367283627187794403691384263215043019318117798656288455905809208176141415614329245084250804531113083611448538312625776693996919254247581995349980593044442822490131604312528087196029828462740780186431063372250878151394570968037502808339075355467736236533888037256640958495600557158922845279693180858676038425019739927900369014272873624665509152414616358123393919413388495814493749263956373963008698059093969244701658800279014166928692027886165539356598447386158995418422634724318176051316212717132726938820200403881495633217748957179861106839229455938294340706956291928524175390895668491844952268706758063022972660658882963975675023359955558858237357511973940267107991838078122499636917561669809922858445837645830879682106383021213250649604712241073401908998861659124232879944629384776068064649685151320347331850951898304578979028909753153642113165705004391762289414027210068812824505332083305633462739734446187702987119762493428985001967428334284233514116333594256893178620307113985733297534268198680285096469529732318298280724940836458638511457908616474963698925406630140474703344333632315281672254855928389469570452165223410122715748866685418597197592160657547412678610944214823998626378113778804806008070659434329702786759396995174497953890396691488149850240739765633807345583742576390900766059754700278651912821894231659551609829079560251716102859670107540727476163385968332654282220060116889302066550701083373862734559683629646760716921186169367599816318108611977951272193259590689964688797001528427517569569887673765461660846820724225750334176843544007269661201152477407883419763807238547019210799692156158651770753100907454307734520832310825863058109200690399633961877017513377557075104996122943192394094296882546408776801492387055448493743168538163249143232482723882645171355219910530619488883007191067311831877261848896617298423816013937771171065827105848074084520777995751477632372880478106562799105519197256265538176975282365823926432236034992941633538904932834204379224871535126950159547998421048737022633214810856617406624122663528595327816373540386279870377263540248192473901097556770267209730069919641339822563113484988767103351743137475231650445010817330287418697131600971611783811271814772882699970832555244153931102028448021726280467261512966078583554555323979905775706823005793413683182782382306223269344698167424149176625662977566879141026303245308515441574575781354636476085726575431623489897236151892015221310953397907998903462706330740179441485383038626272729427126846823505419096894028539501144637997817611097893031605328218690008965937859674974388622842912132677403504764001680443572999053568764258130049157188963915733759487911135769122256349894735259430247543430790516940697533420170569660672794931291328909917039734012176829130803766010349065872066968125166892321213405605631526379019508604734906785456749631559601149855320845047965248989029940120897509145412360859596907665972264199563152646625593452522898246065935849749594415880224939270575153157491785192667351260831580648713744192273710917925992002754387539362404839867281113841954534652499803206653786765060025709490779883972152713902846835272174240034174568593339478724536418367952857949568247234217769120920246616399343012017835539707830960337979609852615763276229457643627779186416716269059411623292522289305607611418660745331166913137848972605649642110158104611265369699854476147381627922817212162835645387645139227211345852932472755959851470000909093852865422420536221841517656701593063299050167980542218642653417745300247989243911918724187429248874492143010811425696134634302187364169942743155117586968967343692304296419540803860135102642669935064023127889000077087355970748191627715510411444389675640738853027839167353108143629466189191751140344172473139131333561327060493170412479353480509096145169483930881029419828371369434165314841383256134212693463254197916571274955800244603950154661211087009827597993402522382371990371987582193861652360468207597311989452349123839049645465257035831745517956521654461464050553617043401827307463382013763598022165656970376819304923359902486198310145932248157744959179280188737993058272446805807651087803379463507500347546944269114795433790021451630713124821074169084283346083095744660301745231971569947658574691304925882065298320857560912040280701352972783642687346543267116069012914433764240844736992712980566091267128551234429720443318575163660758574858960229412325011340120775355555989740420839499235058554371939212560882799794183652732972870151013989439376791105893777387858297834714892707555548719580935189870680185116801069684113573690750862067918342534527202099553063815574757595953073049637842671914091288087978725137493248506184986319448130281608011443477426027584993646998735294232922491216318065965687925303050634301567935131224607444959078281275961938282600305562408453003394180248778558078977526082823386393791702708913557576014946373431590243171684919239924011521211997446876454334400007643627346692446990959282690324747775542122114876167687692215200052642850763880574020229027428429226187085423757928190262783987295343569188820170461843393263426888545619587745505747196452757463916800268781381403229967554893786123629678008228116274044280337097361124536948162817169616107478956701295044613079458051069123100887732754680689564942239747840850162764681612619846466283685923097874087386524292903477055525553255177478433857624039377078792367254548077108772957622696228347722574187556105204115984366480335626473415493373896969191299835035000683412508938791575185390778496373519227712761463022077290518230367264241397616647100292356439837672124049932816307244235683081797429018223269372274214526187027727067768751723176084647583435705817056164305757180615640836934544337009148951929455033175838161270623795537307656735625674894200389423258293849919797812048853677220174675485916440101279899964885760677800608931071040937690696364319419044779350319411308636319293121569252506683504805755251810901063134777901410300544640561931153608457363318082353406175465897224777932308075265718523985994256392861866679671898030162695834262024558241833955391287221661167229898156172621409282498819402359142323424774582540988899944662523269614014001025410571051677552948732343512358459571418048607578128632643567918472097714518668853220053487801250115802281902948955270534347598091419472719679013129638454298364741093834307380659660603000888570417702088441181737393978199130793486545054313091192538803741940338910104349405904227765549571108240451596472124189414946397228319516254358621761455380269132780875958087690259818819633105708179356070246711258986288186701578196130020485576578975647131023122906015908863976236364975332728123948371873464118519386432359643589933997906874135191053869360496444818375651302795297570497967936249622814745044570598888312304960145753155037623287053319902318739930071700373400811623019313206663442005753252086008027375444186646273426680470448504159180299096021718338837268770838901921322757238360375058224394911352739788161971863711785601908533561045314650793675617256357539052891847981183220601295776184550285876717952922008955169812279990463797878648637002253685482485425747187634848160106316712762972156347232157395393185539792481094724161630186411075999154836721777670422050715183364530450460698081942288245335076393875005079504427241375278785881508894618411077058626109403942447972935031589317766663693185968643175431421883354590173984870328497023982843142319621814212860586016956437818810907703378490616685827557590721687250087498205380704991517683643309079723649009173665588124747275940280416289949957828885900913951585758022594822809561871374296259575511612526673168494014686878811999215815532144271976977128623939801236666502971631211200471577047343160165663748021447058584755101773693156774345827491346271853169729696308360641121354608877836021039752217493675285267049735336462798335577232425828745252173798100305582177305466741775608748037786625754493909287916123411921582177174522353811364583885862940415643839913559451605192224872474761210980495293682323702559663382235417455616150443264564234428363908062485788604519299497322884634158142140436481346804089900194294786263041932310141909174892108253738747552354412000124446014317489960900156799156573470470930278541069660070174606320511073425281747006534138461285950407793448325555440807559713520645364463263767732228650023097485227677696895534299994249978410676838201431473987192675022197044133001207975792472896527200435489036788378292883559110649688590244142918848992737869834431199375140975144499272853859778209507685382396770562782464226202067394800982495451593720267137320980940811358952976255446986834723771000978366710991513370163453695083646119819797073623407671219666952699899294754669102079070713798396838593627067328456080202909280047092001195292624960328194488630041201775183697750367586366364387628860677728840109566055801608664443260252884308606099806696152538196658494612748585396658350342814904202310516082739550486778041238852466862845720731691508875748399095866955625907800250661326268056851786921522159749931181420008772119394413172977252873139101815887982935187571790947836560686229890156783342229314620634005831385459884383410521737333495487609538122902658666609449105902459422224067729770389959152367418070407205511069138488223676324422312040476726113830143874366481843736954804587460479743540242809523539350160766150028762964113691940460020506215507946263380223915947993030200558167533561299221443265512029634181992831761720614890770373137993332894629141545010615409384173535358583315259508931093861855569659054033631646686094199917132382954709627622249902026237361392318467456016012168256442282887690506651993977779604447960065700287395680620082717932839469874780126437513293794626770876651634065529273121582762075136730744683136341941073683159664434833638344699602073838162083137121563640949121975719426275380487413897113367528255781817203944119133925856245293852806728001014676162718083736718456651653665780189070217060686657864055391585979874640278693754227321570951186376285943309903991988327956276336086457491100025974822095122796843614201192480525233415528638171898079401374013182575621466493914514254016625157348606412906013167720493211151889956645898501673843771788919268817793880363594881170555603616186367666540065484056979496507461013529679808280095770072150270151881043508915683642859152423575352496462763808658020101349713509711873849403326395911569865847956898768038830477040238253103325235918879629758668353240860775315064483471087645652915981634442923139215943057310236031527450319325779611461130621466217619953784270423439584955907223165679403917776190003800331003410649876814730183479474287928677162055948222112522255668452539369478842476344837117106502055144299540307475277112970347958369150350987739722193754202167902625165774379079534045576606426230202262202601937502202761123068656477028348039693005589615347987230637828255958899599020943281227455183445899748100175418762025042281375519948084593512789932812820854994246055610196995313920808572382654736830157283438155227319712913556945131956717241039483736984114953011246592395592145991213824164405051579175737698809517397036383336578006630635033900614073362525037536926413832957155555850503940635638984320170594550374492695313058654161471758190377211949312693772105970462311943839695547258230799486575688497451623350932015876907243715811086317359757584004573191428882284493917813431902975996942064833605005521427114554391057252427908966901902271981678702193209672096283072042041479940123597355092989885801193830135235709524442900879493563284598320216213364343285431971352751768408740671849508447502540928488029933416196063011227035290667126334396633826951993154152157437379396470857975665692475463370333425294057849385058945163769861929592717155882734218869673362249748152165555187336991341476714600319241328937303784217007622476788643726317715776721914288096252915265626163464326909659779347817309322592661662752437338352371904774732024963118701425025082275106503096849419528042851594095072294928789554499775240839766368124994380792437147303496951200533789754645961866045502033663167394644913646655141115598524419694938896556798782080886089660276544701304963034415794315548328597342194006968508425004598199780437385100973773433923181881982591142370358075481942324567168172059611009760009555426664121425750942402376550555432269518084036610741092586795925832331174667715899334843208581556771420512182542044665136662778820305254336502872450254127683732266281873209643131724287814079816232566586655145571594271047905595344872552247904815131349667079945786086333010326455615803685473664871597608438958999687819951695628105807742370374147529718105695362267980523938700782338007892643324729932170276222993905646391176763156034712019869757860038423813720719470159195498367647540994461822130872366521444119430715863661124006892677595698455916822864373250744411728090851249956453820566291851557874829353441826465637069044528624559250004602404162272499919281644466155098059485780064385245881328768824926159789133220164737432519403181413964111168663013658625051007493173452338412395313681973280837029624437783049605554681779404723943677867902366857751025064535366177647446768565918509055772639280650463880617708680991403086766579289867664805147284104744557214196821744375826771961904955345007638521123874599630667746718312609078733754583802155676534322146268025796255257387856811390593099326470136921454840702013606096472735995442998997313396535568343033409657465321751286404515324977464760139485286689500526401491639988129690364160635767864322035096850689208210091098909585939203779695759730906112001931356788804692057989965700517347388568341033621643897006036642563674870777073924312281516126591635920215165737120461439563338554391076875035668901611429224377375230752842117769998413842001761486301813142746717192842115943446866826722385790093158582358565028577969618998026268116083408093926708608434487084157605995765047265209204221853670234854423016392930175034347316761367549705161254000462094407479899744917124249766000218581278064333814877652013538218852422318087610384027922565195497523408889624576161444480806287221469495259046150646179910182146978381309581354115181197463022580333955851158631536741552785841088834311968346102762500190907871502641521627415241961756770779613920665093245657110804263462803248868054354567604410094580709614466021685637789868969575339447340053824555838776929937511696821056130277763942204499689909975418071075565125928053341976663506186355505029403352644724161350773604734614376020479670161791527075772601261576248522615975291494387639391802593184463784272315904374533567416869054717278634314008114934690442019538980762635273563961734369145608086739108222023917253505999484168054465333901252922498035465598292820579153630813890047068701105147507454790947507746975606352683627936793830302795554508117518792453979597499598920121392281006841331811093480870566905852351751985238061133089868974962252177436371223729102226226498566344050955995020679204464608458195694290847277498142103523988539985665754421926837167167507584156486269386038998088179198803326520687193004423255660928479520411542368080468566240185447991196106619224030215943083343845482784263083510299530281379410322998954867055299954014241702991296684147759290333616616174915394182609144706177640907208415497057436515172028229328493793222864415444581421848068203636807437679805960015600195476549638508337361154107934307066581057718037760375996027190540287262749383620218988989504475367774154873775133980742528909202844225344324129310508647991544726004193457754341040938697789396204743105168542033901154508754215955175298681094478133866330106788735136029817814212563362349023610970478493986050084636218003461150955059790218712167625103886339749345033920236445072383337134107748880495771226099702889231129265697759860118590578751002588038079050916324936529243592136415922115220204906890537949946259656299512275306701859200443250756524326746071358051690228431275522350014540979331256975758237286145949272054285243605339270027345517907997914156634641540801527428276604551295588340136551506007099815019546037106528088037065960069088256023391608995495617555050137169887365369315881179098553720416933317224112517844351281219824161191834540154995549282236956374704264742949413872756537531967456329537286013623722899770296194426208213476810610492298791202239366223316885653650528627671837769787553848060056301033453867347706571177515305222460639995101587165766552449462278785683217573274492139030224029263533299305077894008621441792261692466041700668453532237827411739882211536491337010692853705458563570897555690952001273370436582647269731068165720641540651588443749580029569762725900739961384336839172233210302093639644615122106274330709849491420803712464566445159038576622520573765190853268920336377299775018058457128728818483671641240656862486730032103848165721872689304248359896893606052567465928846010127724268347407402906129146133108864414668994672043169038058170685728645076159949651271363291244298770185934408964879212873788154502014577604900672911234840459636565519739939119605314180804688498609063795986249584912867344286386177324400865542508774950010197329448325252272034580954266716912226940780519101383593643542314932477999097263531941935293727709856996190351318826275494032571096721518863141501714261160213349740290707236808552181371149580847802659606620932350046354264456003794950903716344256170896256446087982902820977559774940738522153472130043399162840974393724889443847805540832554964666807895529051585827762637409748948521483291146777295957078473777738010503141688934336017531071922484922975406139030009178389116962617693772090897207924018189667690551331977546486905572695618748971410319272347215978619641399394779477774564794925536679049683649668669814216060958715694636227341017982144940942985222247085633533060551366242453347235300287773104085025815340271173358138818476898317550024891642946114311219624071279632612905156438530314929987572549474439594979261552437510549918822093537303008230010083546831883124132543293524560835742702683935456744996927817170096985220595568441513987566682106048545019912545900494756401487387209328556857914999669016758859163564499648430961605916524434264857132919392386192988067304257327857590977496484336761293727342199756712992129641962935812216019267574758107250136668377087385179167873600689591580931588002461285695080645987585378010209845671782620315375964388139287458663213965672656264741506986550384830642764387605696744477167346343433287929672901750475063531137274803862887343519166525072199777824338213347003585305848832973901614988290648365766956415551847809738619822189193790732545414267414582527923810923846638172310509631339909775864246243549314036421461787152832283489009866055865860868538193040719857024955269311664023214999318166914754814992792747502036323244298267958927496457130630272344114260958788602028574433322520318868898768881251238943793687200206045480888596378563639999051014119278727035959612091858021027852263913540776696278507530133641804894521108659882079701925722855691119990132871808763848134992080735185689692412206753999851108116156340637563905857936852914798010122919322568777825673822080413181516719406589733082332286060967039833185838313405148954535117734044819744995441978502488671652890057148797957956779730549666999510514138759314426100472918804984890956322137740470467732723514538033887901801805895451898396214472875954173725674593295928095985993079758001782201380456025572617161392421378636825345848622044875524651979722757147189224878309950079129403320998807567503466016997548888588166365691481532897683186420629421149388361092727623096322819973477376764869592441498411895905879135735236023511304577906998387229065667800144924974652123136330924769602009667102742823088822519861849155608609463158871445288122790337470056879465405218363020567964356877664999194325307669655699656489576213888201578718494243329729629801634206507846003432996313434368138378498828284178039007469919491912314075896146702052458701156412975861311528969104283294714068728116528795608989908175410349576355228171772975832006141378635192826385525529594645585553593858101309459907581797086603287338261479015276076756333254240653126175082914378478844001941620398979115836068905721430494156149163178434899588103684396542347166762757062108273315841997555861345748396106397166740167479912265617130018211048283974428424524241538930828541213436403338720671415152387537064566353816741167744567871938897556853751902889768661004752593182674863350857746171319325052850441194069507174487389558436164678561243032363841107989611258648042428201563867700450855525103162427740182144495302649916113730597718589926234144452492925692237839007371152618457922014991498297383677511749591850802724562370181318249729580207886135406080707323063586422297916722504444469263824000467344423859507367692561806402402041373532677839816658378845971218280159443946980565469582667202648246074425245084400580142753037866167732858628292834304963642746182283063939516249610129317906346164534780876340158012093235955754309256308431804052681585004036047575219709527979136006033968128672813411425496417943899449732701320558341926662899785855486250440124726457133115750855243459254384042016499916799573488829158419257462520078730990786408091821689130439480869088976689994801498063824174067077774428552895152363140314950324203444386865605148475778879098878917316735185936769048359437446106819903216443993593644507119999675024958670290390930858749778228681417177828156139965373352138288618851192065488406883597577030746906455262038366782182045695072222321441101951385769685257860275072927808313052477848861510477283463760711546166924978291599360811105284814884286004753568226723011113402339975896040685423815907031558812995677889671331558520988221958909860797996492807844782212876851542602837765731626839132991665820673269162693424844363149654623652549940864637374248900440499421503179088265044213746347318772397800435260075550148677436721598393170606689106381940689001759973422417093189042371103826486460821681134043746964498159142140315638119426176703262569385386129992892281940036270670057327636720004515064329462451238747632213799368995696358830760080798113708879001218460253058876966816061917966453428497250857718338227502818254837249394371819911655803118483004532681400564758688161149177958417420310131635139348347919194270042740961347722770649332208217528058887593025505015404172124775374435444859180518025887568173531749671396102211965451303315567020650310560986942826979129399723802025966751373525954592628896940439054882042607918782915351672654631260019578236798549128759872815984011204909924460296465150653517506233230687818249003824492330164330872108064966752108296538367377941529988741138182276783355056455900416523128069049936157669078582255096838382458525259181272228697712843364573926432907443641148888344118394902562877092144607128384060459458424587223373123140057443723998328666158356894519618053974305279583325117025766514618450206801248886834499181330491235722077305182087049538597227913714144100360671567256259619608359814778083916110002933147248937464615228364576409824016796791292868035709899139834691563149608296509434560821614232974917686062177242007643509625504601975560141513597723455694023456650141306074717665172368796177769924224943418323755104055931081719556952429144178707107601251899732174080271337224260462324060636990558133269284977983694036346036712906781192205452475125560046829500831469952671233931871358127467133739206368465193989260081854528403928964831434512622432631992969381955457689145933094035106093398362089498432143047430035814731025522446037938927055420453225506594766659726344278378880282914258526788863150255368494037350811720460313626887306344908060153152535269605300895350225037370661599909910643235625050150209798832126623395837379157901365868477016213145730627209037170928741333865685863365386427714567121673407974750623796669198999774497824755986020623562196356758398934609084600630196781758393753067053887904488530576675289741322231323420162366907188842584250352230355810695268937501730939311272987560654723691944923027447801143495907340850539407520164849211347819186400028881148088002715936457163711829789891461327221065991733009839495498929662654948268855141862667538045322965848877951308213444697822695472626127991972065733293709373154949702789015567387681870832803836270451471348632904712971436642661187326490213053197717988683810837514317889352919600322884033191364803989189079209182109583987531685121517585257066240333590803703927546536316556315333512070370080624163555197586550524350931652376799284311871158256833810698413774616273660042548204503481104493274157797201779223946751160941333186759479046103403927638295552813714798994696680229300328957605254361911321674943833083793348243018197493668330538204994950649469148850051592729686479087684863503209701778206848075162509747677836664161511918430434073797808798957856596747830722925765698898679522611748699157002482560641887882112072228340505588938279383827266394431935477835205215764402932227914882952629770473123722437076401035562209606285564059992039173279596159381602412926808848426243246034472324627144179486959228109160816761868934254548428574162796354315741095806843076229533042635860079093215576156497704912830148509663378905329291176604171831954245299385020818865930213517796085367792656672639116118409493949926205908818604729895027308257685901776684979040714674323522475681199398118293035362033527572121487499298017325401839804555417723243070677524437522268443033948040853071755177504910313359621835725542939783609530644404466584918341711989911889444902408450680904482010982617040539556556959413258647307526890979648853118999667733798357227334315891088090102592247331103211606517473510609835821587965890326679630993107614103558099553120264336751499434358630481614134102324499359396651615029881307099197687858190192518172872394848955855644916592952286146403403801572137929584202679617411511547144754874144717452056162600189114085498451170662404100149182801173397089308167240192413189172579681819530540165259314969798900172508344731230603859785395042169984162205002120352530120727072244041559023977426551073904257549608763867237189605456798035762014435420263606513760190370914834664497832886746981833282584471385448943948413354836711638017571698454254737577902176468181175889182557928376813822748332285667208991378667539546191147751738893359785556431964102885224799015087527035899852824733931112315874819401011291073653126892592710641493232592973609343542544904936165376836872466002492259318627283899095814165887102726889458318994458773419352705601890974740171541662808035400406490571394530236046757829209939012273082321612373657079473840172860575491854602552471168916319724400328135671124145489516757275720800265987494353765503564843504878902785369828458062492070942108664261998961642765216718941222852762842177556882590032905571698027027676672032387745261399935604054305028025372796791813297573183012823450592192380576435535384485270643107854497033733513676720361088750078842178754792736197556913028688586639362613553935659001562625229509602789570734694851138241812743130244502676370030886254048579924813318785293717020117209905349302411800968360714309613875955190073069650978026751495322433322466019568323220806697596913992273808503282476972577986848960808548208156121472798473319078671204356717285881396827128599320654035947471020976636171664492686053318305197075259424507508506724914032481747943382744945403701801305069686636989127828253854230504545902617647297717696735269256709786289228512867247848868001542319734387442492009125249397926421188594595863691250329241743195864639246562794707661260549047911259835857753030636895229048960723993409800199345282389319162441341050215406567995387038090873959389688713422211761113781474788896306626015088238466232734313063083190993419980111997195005683621003567327821743524311625435668894629593409099183135813849989891866811591142745224194117133947886278518127535058243106310189743482755973837816240414237491232852315247278254221094083088518913349380527869738908036040136860915685901740079852693263667525225188726226025526286625490121285755041265018370368945871368762925105834874918332308559500615958209676764059814565367047684435399568350977348608667727170491228334087909448130146828848771610291473544737419211851492085134184780418264983326594353443234168739743356427194385441745571078289820092385834690701459118067511639188118156233880581680365914620886944062623264683355924585245657995157071734195642110235843009998346448453567253463521644772685906417071593142055464507392925207526212699763194709868712872559714729199021238333125724466107629810505036046652052299499370183095026559180299598267943185945020416748293133064711469351726990908027472547007730103914253329345048557302622886019270343115205629594661764562838698036101064925586246588078957391460138618482529917728659769647187871845367222592969118261153299692350135440252677883055673233512607459999127375208734399339842343856722743119868755583692958444085033011826729190399025677787743089295240360253561474403813653947668304958023620994889727347500524863597871285452189253067793236971084200653844015847224525659813029641906211457621424909768374115341568659871198211063655197349459692305495681616848891573117690014474031299765543524885636809773191604613133897925160019854310293970639745366267473730401489943757012842690636537774512311331740439554404407454273122504011543718420863970918360446127646324273577032854857355091735818947044441585462815947746337984446635649648907108289923442710254156034742017252167388403742377247398877775444690229603670505876746744466644837612399619704434672910076913289202537504768410755114172443284614767268301158656419426277164206009946117216023569477259705436240631596570430669085488801075251270046711542815665161686945193124833055641171864014612390817079228195357503234399340602671693984904017313779486097389863648881132187597782394250586112227326422648672387083541155989055677317752501643698952736331190102377430241248288623170628382221841282558873298758490588066128442568054907615511421428443812529099554491596419633421068891831936549896452089609500798754936750951233413686008452127986525370432287741002922267858795935386920341476507450635285595605553264568096318417632325743237221378234274402066173415236828593744057331751650151357941184389769540629537986784475805492400156725894515517171320808850266378835470570394137639749660858254656441670067191996919425732540391989637165810065059868703375263082462953319789590896800370299457106843315471723637625187035968056978689220470183329481212044874503732999042834740527486703589550061368200875059106024090867795816523570965501080877030812854066840043054850745621600352294492415659412806561825308127577670885151166545504389848046830710336426184959870627259946942863843118588875008580302551298638738789247152391067601027879080462416054270109368612713564447570008844756855290061315085498294189699923935638109659310267829996572397514104677914402987547311631072772953413123579291757818841181341928895728663422760316797523905927143429721512462761641837672647816874686412810713100274543564798062175012451836269715684537016135766265509937244739584745386956137513535482318388566085784069571855114939602643966472970618066944761316969497557615295645576971213610620617839433273729229331159914636906557451971450212221915247435687101850881034847890642129253230971919164169988388180798226285801750741408046469733170049775867754143122382244972813773904892550676144710827418625503332490735534055678413206361000644475034181949243477270792694137414339908675926852549513966905593896383180420678901999661633952517258127898906817280260000194892536201754929969043590517427285095895598304992385777549256916076842773946053654300846921454740640497790647397689972335865191611397715198053197176960735383033171419358143763822672409421831631180684814858475921392335368940652607814512071417357464026663337500375471392609308098774987809321930783183279691807155438596279685950792175650484369794195220669858202036915762048371981338769318626086935502817314472081337007590953203951901171842870909505750063118176765732784101560000388168160668486217202000648075968203853939652659270972379894818268653125008592796497010240288846103725461002066063876937407168866886887413276492977712485705310747888410735656014719167810776948166418917572724142435508097878467313245873704011503655137901149562357432809684637083407508404528749322108130147671508575504110110781240332047263873886957899153130271647629717856647308974529165391587720476446814145030317316320042773490173271885706914975107318210719977831396507222568714881718975103405326096928571503675608085377593665629107639614722667796907921289154706652484030134421010201243503232117820635422233215344136682791352498139222531295874634118420997329147029255265218735754731033136793606675419027688939940624368475582469686189824180226853967845596519698060905424784288537472583311431024929419612744452886848252679789615473349703767400527363837820463187879358394821024263460456075577521552301303248953437641341976997473565685620858168439954147371074648008910678304151417299188105953077560944954609806606665687998229325137786923126146828069142952459767517648684883810155297780162394886704999913799483942470337895349527258116561746688621714612286308814362815947052206881206645818503527485856886602435401312971148894212869909697825579361443809490068898136502030345791843392911893149689755356537204524787230018929805774651012671026190207206017680387555239488591418852060584410091538348983920808691398063040054637895694579652187754966353385953425150313599004694963291163447146361729279590587734453670384674893861072678030846380393037532073357325301063713717594708886335444208805500342718851953334133796246593826626052545910890330718688109572474095802820567759004431135069529200523936308942304341701101707512724376171859509505537057206304907023175817694189918332082092471780431890027461407918637780285556084667459219798346655249324137822348375696272668485811584432109400334461035160598211816562767745608846374568101499570330458049507883851618405853536969382364543130689793153156701952784539021944687635736303396438149826120790805907243410157420033333140293333442714776731809327626360115418504746141787032069802315393681072588204771206435240337436724265772517463978269704172615742337566768130533325498301163460760636186793801356483014967048181326168197617315809303642409490474024661894523159865752977632098544119038784269110521899033480694724251119147928988056773702169108122967072999874869037297160527193406834942150889344373572670293094371806596796788206120108519454618336785851639014799775505179023209911045483124497567840584130950432761847076224312484148511860965484680651369287557327282057649213616170517553710765586168091943525874176577769348795579628687438269640955739130224158810318279832129766640948837368706774753358092663660921630262763522315276569396995419324916822296559659305796591250302099457023730775844126084886168453700949759947975027594278216101884679142286778533747847259347344900240675070623576195897922982203894130896080554204513931331399104982712534896161764307274582631047591138340254928268406233113779756146287510207927953402738655722108151925232467145094856709093245810139722595495193798087561866768404855332697077231051358266554425624480012913528498049478200403860942477333715154067276259747012151477582441002211525093798109478572137332489885845011605544406843711652371473383960638114063191019079630995815637084633954670592849531237709010755446887308805874363582157591246648086569082203009489343388006347098388362151708349097468572020871816524409202283002040998463787597862135938580074128362999741927361634780309909555644049878514329921679224398456959049560439056020601169481434889568378256834993120537548880225973857270721563075904216411519308191929017148967495343241747106257768499547236670026658181167644401995795509247978535210601336057778641773846928838182442919326920760804587614715506231921887049885080635642913387926605517312751597992566380792834349636616740383560130835199426940246998855571913152531360630685169475700068362444382475498679179490775205419923942973057527041281782393017171553824682441390188975907356186288484539548604833794402696155024039858543814645075915540844172258440097155501708576520169081287047955955983390264258722665281973959953767696524586616576429482953257258302038097280983522781203077653775180791678529756386609714758828250082671530798228021257746899777205409343655377878784008245509865154648981989340153022922933250724616527143478462516419637973064055637459432906590549511989535264513603657799982942562292987856487487646461648940966320024616175384928639127392033675813785277363333483680868965046799269556773608378753684010338785035475512867712154220273942157850672393358538620734639472072976600745821245419209100779168890985053298196832055366861631025977991905185831402582668152947276410703483142548081827115919988595910203784781959764978861624481820297720182656460967935391562550734123755553313813131598137610584334264071751934181568234249135903738940808670615943518519462378306723922192848576846916286584429561495045254765562611884437296274086949146587931963780432287354800165878249623089718299049845924344737620596787934385363894496122159852936430207426969013895779107835621267370056985555639221855417006579674921606125673221661588121125581296828143170207603827872343563342156098050139686946489359487508643871370460553414559172267080296571975407955335064018746727424687164463258292000077569269274074027770269105579812860762137600216519676893903628362447937462109589792858788136393358698087520427936880464405698933564712723082251827455554451347279932919693524537911733326874909385548948969184061541223381404574724513594936932253638233464244103458539422843084516904498645719434403826677977291973825040314442614428543373761411739874840702959848437432519724543767291191607995327469475887974941512585858380417252588815966461379493622976402150724402236501348019626448918713835302455119741410357392035320289025027057945388723032842497756089160934198870153466627429085818980652394063194188407482674319626375900918413215221218993582736645653510230166625945967717278634780197548430951035068549756221509957429246429247652769728099169993505446742685285549102223773690932170880559141501273534586276698296948255562061537594065528712084673500115269265002291517792934233441677618743918394345314283499530261998616129958797308950303897287466217645464822854632998721213251731613389041238159348389483656372465936590761505694924574328731877682561840838709358864958426412802215633537109821887679806025054752833956108510457308112496771608997016572223024581593055484637517731158533943781781364233508956756767306935694586804234226968108503577540183753414949791406874326853226007954608537185053484580069998905937107185966725326119083562056724581360666632493729457933360166763975266713391142530472440565470424095846428357245640319233216430301999167513217048283420495809187636623329852021717292591654137062914867515973845958497491431736072138766970900530436082138239939251021057260802526584881581055646211210556895233397981611685190795451419903755005190608153108285975429720936029394903851717815607509892339008953822806875515406316739264281376547038469323883345384433852144945365152203814635675326161815157257637322852596543913081407824556520667200229842990904847703614441624807762456488898433455191221841978427270474050150425654603677696023502423967923903633145439243447634661339699641299359589405205896327428440728551419372451430511655274427667919174563996126176413395391194509016019284518091910565369337136104169856991881879395324730622709108212918547551079877849160500556190955329145683600025008591026635247164818603977507997548690710308598405108891768502813765791868855503800334830649216388584537799017253401031333261020614761131695531917383437479433552909982687688273469604538780643298441633578383135209105381785407437471990306204903630076022460586858811697038543274240838950699166141550886629123877476166196398752615026623511650076239442925366251726783921288931864977040113524787130953127472455549727425574987709933026883464338518775477279118987498524275210377705150683821617837136602749535825813055631604178210447406186322251433962191740900168283990589765974239608213124527945561075608606255096460275694335739657046068422874929187521903426881124159326301305169339525306185483087223289194419986278830686939450668812176534992937061972191637048142630205577452980135418838826489263124929703797490091916190569889119342281434913932426174211633443213055782352328999778497720557063637940244254324880200340635985438603682112810070282170706781445839335181789400063361757971785684424362564677149684723738795203594927296806189140740863512467610647502531700144448589816867821111824239257310255054803360013191307007054792056514913731049961753675384385207167512238428682050763604994936559855457201797667825605633363462977823355076181652776607004076949036641268280627182786955394899356481892249374635009108889115863603176568704515802742549223093965834400080593353180421849513172449256546058759607129524033870598554147397852071275644489867613844476446123527018784655517353046537784888764896480129481716253044301591948804872665544604052411978557498192752840440353266503626312882031346352517050162671825515659585782913683344183959954947102941020713081993655670061217625690365934057796558018984111761809678297287622779891322952795465881031720967207301112776323752001790354793772866702628939731567005929177864182032624750100762470879301341485130637950803422821632611266252124556156343975199976035108480756191924704354096950322851051972442987772023064064183756282749022747472984447191984315859262937920679679832363924547132267307049380956258704482946573144768087341651228874123134108389079136320844661053299531891512722649048890907248131147040941369945536821238183551517743066121835709856028994601731169812852062437653830811082219283421653294638615444667385622556253318767152758028897324618455481369137246646434380732809985662238295899535746851041550884836643891288364198777212709543290974583361175433884529968526936037409187496559051125646125554965836579345090586277853531238256008015404062684669309992633606545985509303256507941619626395381314834642681141177183953468058056667539455420796316952905014179417270136382933023537463622698908991919301884625192958803457318183082163228400186524587188482612584501469482088857663143726723267759209017369832712534319020900143538724480217233585266538388578616734729249769309949364027833943335233209631883959419263941899497484029882590955773577384602753450728423582999714709847034121964831545791839444259568280996128641673474828581811063152423764044664315560197134422969300247288991970165764306578920798807376553541476181306904925054299082399741671097377229719408967736057565472408714604015859414344675586688318136420153314642449990577696797811778698325580443131858272758890259606910014235401595543123409475703984572447986444985344495594768895060307142117636806602870670312738452473161145134036958624405231111763836701522165189948603017390012356269664053507207713734045281005153571861868730215763784468694150801095213869866940504691032606939916725627658265311574263885822073750187083796211574273695329990087218970103768143732448864640804779138206137465160227389449637307936805285736979089532144154863003458259179928769948650877989255132307670127846454474265146407784580210337225218443813418817705516598712299230109702461884938609031704615411185642388611723159487687505862288452762996984649877810286356516376768935305140851217126834011729024623009782434302894002740376001353064737951682198203194032570158618698124050855506608340452733718441583468289644129186833478796747386210446793986357283461883403082930193806996424659277615351329281516292309878694072412582089550921014725549887537280304746130917763935692959751489852537904510916181874116836203373985477588897635714608657754260008035738739277253457650127151300757997491993510531220876717628141095882017460360528189800990817182383566118284486762161372426970842487435951836439340344467807031954922858436146119806621364342283549539189717113008918641313802426155118079231532154701155078557834208353032783868113274310058096678458907449097951572629325181530772737683903164025067702622080084101124615429804124345720782075855466209463579480875024102730483999946996711638490736555168209228681046023831224590435898919804255407814502621251071111610543039201623637477439977098639840298442541917781950420861918616117952124271005162561176695268477867705601705170271183954641569308599198318109066359258604952126706722041995215303224859528698506705542934362551442467171955030617703710535939087956435236146313578493719932228425856153880712928408126763970893713754427823458478712808640360411328964507806734741965069102820906420777983503018849947319981690832520200997672941849024806278584828052488471120040517189514259642966897940096930095370471845032344245095779662681482776426477507296395078527934864941534008143228553667220143351535010180892119774397715594020597760970527897039317915379226898933811310483186695399644785020696287031745365650933482704646723391351162594974776617568517563616817119690359858497046977569497914093728849700879187845535258707809715717599446216638508544162088203400859743265846325975509615161996053029236533735616822585257243660212382349505755497004550429971857174198943949445120773947712334733703295035630311587483641131421882759697098195683948763904281193203690868612083122568058648655905060356536077285632909171785708360341899422110722293941541277706331464538184031448820910467667005895539056915967737981572706359567069050132707938848220444946211561373564171197629063906672212012281911648851266132046134386952601127677573577576242097391067703079331497793384494563267468705091619572992571528575448367832358100921678269979461442831954601523675685528272808014429887867387474348536998065198433873512285227369192952960092167447917373099330123655273373255009473537087153073550891488977952883366150907243511375309918626755999515078633030759948319014551743547958877378256725855053351090543828137628018364766374498593092143914157424468026137009158699377691679329775411659279682858434192855169009424752798284357548216195211031322808197317028486079179832149889980230626782359688942483981797962043355494062149076077479355277524410117499304655509961471081777857362548532042688009510817821588983263955281271311814893816376574074933703944086507624456675484882186510034389053873738317779314740271715284435919989210856698635188313775152018091358012634375723943462974599952328232646282952616037296837913757605687565175333401017935063907402524170779229183231999942048077281089131086328850418703723142134542273658137761132066575268822354934760227175354112943480098901341045620185917551443548715989642385760208492179678350755235551698067215184291045291720101691035918835639170870083558060083759145806107748197794429017071241008935358065385543320608050823985626044095345017962856788521127396240089594090504701202921605565368678333637051254325613957834068042276954633438261007443497115810151055201426104077174074812060173809393782419121698983872967485225173551418890758050715552037824196507429992091910452401163273767389829892324420748854409603615334570085054603539375650075233409288899554704050871381023311746531265393809475230504145587665260890425079284203732472937760058913713206023083962001478612969159640255414655391485421835548165686579460167044372474337755918179601065056433635138367106653389595613772634764662335974684016327223962932169252506792493374785139280147913825681287704401664708872143424514213410530826995803157213319172924338731460520338090272916160316775938854429982030826758563903676297982463533159947999829618260518292643212660947178825331102233513211103679843703553334060903809954870623104902600106588584826442814543940521150273737990514058930749150169604725133547877446556960697172876648222989529295236506138267947464628648734240517863458138157867519985469342418296534270792632069256252651459635400817853028882360557189191200215842721780597180284731168970283426224741021532725041368455432039533189410879856476881805676025458923168374987002929717447188976064783529154231592907949360417086408779376686996020265488606344201552361188350210839823713232973384621775867893994912157441091441793105456433585988622545200539304465940557394956698492637692916201317408366163261295568251457743909941047017545172072491501453856754008224939992188928945457052361733296946417287707698809627356792095174131888705748924737032959520409073583510588458382463304475463373601527006980848270658209844445109846875203334629623228820115231583805533078647032758566020240403383097099572303284637832951714093957447074145563588731428475840376214892693433218570336722938921576384389964815641416182364346515269454653921017812435017186129214163829918812982703724473662261299000073602997418049366644113721260338574146520217699507055041255845872341556765919817516092703768279865061969755926487946690830717724559651460695671542491874300743645229481528726433595795092866211956331157075522574483923661204821416336211162381306290554252782498076229676263120012540676560586661318483963197111325876629919849874322507810578985298320876695795571208836654309837170279494699185399199070753475464275783892662097980947826712149253623538385000502418519590051416605394359186124687381064111165988106704590770901153118095146119482833302152037674537469855570357819974361292102902780118370275457412602483575080323251707507913014682736399999690949899156555381913280490102266567592603223345994328040382684949573434483471771806086961986928542498783900904798815742032257957864794858725011868457014429792284989356785011596323453760997040894938935898724255874239121895801675126657843027071968183132042869889851002241326738115786952951962131427488251922395635036845947293530757134542093689674599666012307093942741082132314623576094501249685670666454899350200145328944684180284033276716297188638156140071675690010041128050576513352382329580385632215796468767196761769034146302339757229107622544799547556064613699117130945674441798727864845399963316491404619002151396197397564661156480186700301399945966947096135050560254120580072916906888023847742220232186710720020705259824861825407657314016522395412593384940874807803905827344908624881449095427192125958201446383240444518958655377484602496640031219591425786489114826910521966217771447806845067077603204726254833761994400631331094271841894649160661467469269219900875459228293724436090043729378435372353521006153066367604954615858652312612916039919607480886147527628126444463346706752776867945173293677581493507034418343799040344021610354876248289606845664096933029144092507537392752838765401939210878255226939890243956004335412909364352779554204913187147941232352981583633294982500783787896110183527038981450915287046990412901430945903622615176868749319809082543726015671770130607342736308265774361646010425450983574829010680287386196518984943209866707031535544082492475399726356303701029840652789679897437638290444866909633106260884850258870527205745507321390818484329163924677091616144516667230702561351935002069060596603451722028003915847933059725283164944151239993355955791956542278071558800419209431912814823572905597765679639991373865130167401197230790285605452893225208301167720458117915782863512643797956829612023429953582923958860672858055621352229751181274233235323299565595627481016508807941605519926042935310707695772177465324989479257951357228181094272123219966974698501451580478145638020495275328462638933198509174517928001941749084256140410174537301698596092441965789835611856581266082939889295973330227089062073150735631185459935471626964028376925632772019139612281022137554332396280938555346915472723360555303781135011075603285033849049846045680101512536395209057994014605751470668873011341308076937127002577353688425813664423295074026729845219839185265494374443649032879307044617838219281237854977795180487627129339166072015164139257199401095658380265321202243156401695554879048160900381488380972567385096594748760354581685287778277375136443283088400651814972931410931482576508356278592860032877230943190779742954772459302055728849330381668710405726172568828270921259928559106650420292223288322767556871199795660795586782584710581671215155413645664778926136231259882942100808094332304669048338998805030874751360269403200031668193673380206413135878053497983815242824781468643027950489286144140876187696914376665762894465945432184923338795904405610495234025075061304185609270660338624945680796107235245215648817444078769510544962724347046796673503295176390453828983103030596191177605230361943633405847198518733594259045291247187740644652047298657018722558943044993258862867849076839559454088475964199471283543398568184872586568353645887726500589590836053077077045432112345627638781852530811876721166039011041192659277757081998051502222847771878637817188306211360086890801010536288933410092592257252940358575378030748369945407435460402072699126087794456846428957492349393381465916940721375726818491266354485644767878467357096910663900652796005319318576581324538267487808719887195255666420094632411917410757730708439008928135814843502188011280588389976199358129005670389745214215553473443835938755741724725843782480954853315616936003726810855119234282017163404799284229342171632434762995136925840204750364276943439205606578414102957414642468484542886487792640284318067420616384354331399476869240997753727747511354931708181232534849795216474615179050559146340696412655546488110260903050066488771506536002574706059543931129084060815227916906244712692166219452258393539414641514547340474628509280362496461159267856187258340581959958717978312982148592079341227934419120282778087504294292796505066298999009325564152636091688008153973242755146416286308613526963333270616879848943042761037286136769264728590422210200182351798288809116459150495060502765654872874124152613850094084675054328042634809245033198928203706523098991855915542391216312949004344813552928075930415852573867029060127544740192912778282213051150228619757320031525877771967187912914564619616243966257218016018897963302398080467567769116043111075255640680574640868657805338130932108015902505525993972871564293642085087971470994968802538229400616325686356011711657631745369903141979499709328682459061000698513460309075529430809778168211083731500984822440167233219004494388306722877726043658042312590775409321566260789726635656582601731711905955418771332861700939333386880066659133385842908942484380066005973842869576330737809384033552197796232597749167873978426809983068954611253864909477157248466067034471734025992800804464403318561643279873890159964119310058927152750529487145535026750991766428992063047671199007145395320612598422858970572333560231834515745783384999499235127083766158865599223945654630876788105151961809121171956876093404591574486597584073530747932502298515440532346592346682731699197891175025879206076541665765533522541338788622359029831681888327450731503763176497743214894806106466117887306008524862590150191230922438609630179829484793787529081749141038416270306219783061949558548585173207385989186097540560816947689444821095626368957079715569903732910596139737387248602918909644794959973509253102680577534212236082177371453104715580913266621294644861390523421567115575481919001230285852261486568162353150941729808532014008491050836076426075685082511938029911488822676778743424940169882082448182586422004531083124271500992214203068385562364423248704253111071059649817918653344896580251174813049926343635109684609888808007252877060792558126992914556253997987447843108588458913392395960334122308259530786376618209172229376670007700441504679627933354111424522588788576224764515450207813182594333476017889890687721740180317295918739695116806833651534479220611895343541351917388840694289178565375099831053719584296910694923434642275128498297105025205007496882312937800212778734500511157273633038636050334000286925546787847173632879765805513181134357321227772179188377245866304430840287310894977973158700968645312821788502263677412416605105387741726573184321394730185796372182474188286657237906964290679569426642058802416096100293856875962552814230995679437527401590250543749670020873036861578108132102815671397173788182300202913869081162203539603767962256627091989506500049904788972102797172170965627624885843048649693733428279513935049913821328665185348952417130932989296821417582688355275472779475684363247087979045741399871903916997658549021136636592999453774059054205598011723909225744029868184818903443026741648060440961065102954771284373418549590772421371320411766281510268892623001060348351086113336481804505058171851057933798881018701272268724507906591263743518161008815839712521022828560260801500745764413131366545571322214085626741965683825159793723878577250905762172974267914577525460374070626635213883582379133371082490851457753876982537592681017673911544915869609718327784184488881995316768992367789071934636505146184051054642680724582105478813845406191475540169547684172759110805320803341040453596969572754612197685771288926538977671217942108922424077470414107190695647578572644157574454808390744765118506703139762509606631239071218302484873400583215962644488236241576667131675032226016744407828703221769625227661478875170260844990422424262558185472237177984643376385543325980797354602999635389947983522564797168236374212301754859964849994544022246237392482899001635929352573127142148144969484384835611723374037254262622964828770394692014130380751620222363671064872508629747449098323469002071906352570428722961720891429699568112957418953191793637673342515527054769202621394747135730916614927885689583694023850112166919389090668188727785125910665837647892895107842039029252848596913487815332911410832750697618389238280410763908289744360677033365950315490566771463227937312677616952234424352584217673986412921134752660227469284551280907106245629913427787835593249960005559806239648631139992629548056872074947160432085642062654093477295869140283704374528556550124736104632681480501836676030478583879084713871217684703924983451281104851722655610663736531634794043755608188680190189399462270981285715928300981275923772790165618433939424496117535086023014642431820794535758682604984503330350710653370046971249128220170781293341827642428558535977227873622033851472698092935456128541782980573422432059452952679241015477799629765471170185445155863954731754426187801930643875071336491976991539047723412559827339877381163237812859860202933651692931552934795195032369160374005248009172846529223905383919475032929842679598627833943985756649368631215999596146007077091552510000979981121514880785778871584341099936509784398753412411642644495679432357130345874914218412376507773187765192285278478961258708807327378787043148470952626537721517175657633705414374864559254180688541341623458808509737497451235768699029342221836767602727157641678290906019750006681237890019483717962792695520174599147985678185384113031079379311112932603200497702759505532778800995913250683305246824404956857918705036190495663646241585557564189672987704891863108302226437526302777949747136754142387392251512607988310783541404696136661409915161541479500003483630439449673007000159387066113479941433040608743437510966806805094238832821013750026661546870567944785741057733844214610661711347451606104399330683727425616853543079821999419411275190105112554339181838195223665180428796961561345854437441083520852820009524684907596035092260211831944670068501527651121570097292075949276816934907545762007371169718171026135154559844062900425276216691827085766035958967056788909120453370608166966387331994019331158133552536083191121582359170620681037050583240247486048791464539130520648484823892805073252503439288690970119574519073903560990342902368321101819117001225822596184440355017672122564777877596542142562769570366894029136963383954521705268584237629586266535891195811037573417799918865376964044925411309879780549444652079013287125888230297349238617405259392950005804595465682636810253577263259939192854349600201272330104625368357713910612340305054782686145520231273692802648210760463702352690018221693365400291016562818337384240437727862235729964571194426449109286666514409193606055711299937268019472648820971036715041293336193114440358902326687507007881230622777212008279092078710647783763752188078190787779286560704759113400482168608738559828728616656887665356087927662900507469333871838759560261168945788022105043488349542244748026825912511345337997407795554153649563501886147515885347284317732199567256371903381022319456090846649080036189280109869993526361105745804933631085808925022334291921244085883651836236237462826908437649831916108987823073772258908228678385464618305466099990358436782992852933543799744141931873537549177011954473242664029181789422384458510045538135561329547350014247658146396909721994846308095502179098364425486961362206925398377288618955760231810900007944113715375584100394998641434115800572732585429946070927248510327528866985490192452702343816753462759673757829768371080816987212301629445358339752426207723062332282502318746298225625537044498000941009251653560145827789919027269101386508120905819951636160099382004689892228840089001796873185343335025194752297212579622621444428849622637053345249264292293521492400820082735389453200887552751111041065180669866173307836567475614007611109641584028172549254427134675948668376880981330122368002668185704550855242742036777471226859316013002700141345011035600540821723144035833477042253687272169462921907110688723074758010225887879061518422763322887183040593789401082669688267380952579289989591690155378973366835386685821718009356518089673983344757625834927650411329911413697283018681436608183977374158684650305654600953925054414716562429887993514843770101659229268189775418412323085307122871796383490609823127597034045037912037848853098191912601219977646746250326196764173722063920528822961273476710872574404129840405091493534752745329975773852624691842832155668245238216284463063557245636984525616275416825508348498986634811544830846303461030629814248525222712573876374772304972774257877102361153961763098213937166809843702761327012319904060392616979387420137750391239103963631665298100920062426844858094959542618056567502568047495567706049200881940740227395376191703371458920972017006620894458736527035450274523189439706184631276282010320890155762390793948445608873590569040930374687945814488570324369119814192485791815201557357424354865726557785791943399071901227925214831123898750314596092546869375905523811319902171338747600677157958774333060641148976321680775417854419634434990428884917249197315486723599577585140662238709374572085074772888743151293859407171131399260520005489584556515196921366510147131820924947083452279018363214250414381574885851901886768387531097421949357646538462911051551191946189796691224176795010291972621367606766996659992724649903258966822496377412220830269620931267626062848525691396355482557601244812658623959361572549414521258786053832365580238188748474354440606897880922989261352636107898880070064918490358006667957634878371628824126356096195443407743284099652309456047853429712919427278668052231143051133020891392279210199473643483035851921212135858185473120895599052544429046107683001675250875060520241242736764236549658732447525648023496095730799649660379401503278825759854583469163136582740343785796964460169180027075619952048460358707904324808190694999588868876440936754344601135239155662858346925512488852131014116427797890658125706964726438811933931095342613709478640390700012209727910247264712561587368337827350628664385934546249285763761672471033547009459252515958655001724961412658573537462801339097498797730954206583350201125524002935693864139974916325945626698907949137069361463421673261302206242884529160813188878316778538713461125256156776614920097888885091453648524918898907486654299410307708827599181828699461802888167192476789938536888683565005980255137180544770988099866877824623454526540029988543946112308030332284981480734728586977329417812190666552604133443309204144997635348746601036905484330681889270619347027165335580019799174344044805443645527490859691966817820289973489664797288977765320307906388526496200756859040283517356076469545813313833044367187287784052878982499469588057669750809440216273459218056651976207737196468365776714335073323586808107543233247618839987253336431364550401476936227275595006741516660709002222033072326373627852975231844414209456535667232243008107329354895380851575241697831101343986920984236000578815751162873808944507350699127373225738677877604942875695374583536026321775935233288636762601573879725726102368622039062548566265103085826321688772576216222987311803560298872006621086122953670944536148492838822935405037658312376251265890556401239680221808485955764876566488149560365211357457386941852270559415983252144558277864287070161246416959278059697093622203243016277155076323022205519808698336263890067071527894521553791597705955868489816645938898506172620100914083953309723472422842186491004927410884985294781577188660154838713465890724529873973399482461599499278639493162466120221542011692153105090285524108313077393698692726309473151845678630614458196006487077145623934026967733155151168905485960261050958544696888067144745734660426641447194598102101468560864739914303672560124873743122216869429251986107766035404621222314080360923692463848587972949896322222583773914045564143207865614513206623232885684011282244680477153028557050757295461130070205265049646117276193931299646853288633823179734228057405517877092980587253955882081691601895748858379415487522678189533262599422453361437654322981788502045569439079559354208325233103068418873760596441407273560784166723983926753435799751606793163663542717120360698118209379861595701668942448355516151865332077695833190915821826858309361150896622375531382794146033933978416132613795845563592997985469191017018013996912085093460070758354396117172356224059041587952153910674981055694280103168500350753299140188299597218725433491168841992631011059952844343959218595146373845852269838054206955887025242001410325355564772609737699537385899358520163737404104904005705122665715170336006242634578048734983319989486814517743177631643213448464790262510767828301493002266943173131481163311828882573599087096254724145469346423771791783546361733376331821981257202905457778148693678498124599101959438897846463878394451954637390129882390614969404554377093842326132624021564094881985416040118842995660221516261782599805200474823353296732941678901683011253029599857316349844874180484664325716314184145299888655680338945291108136882676270236370087161185762373135560387414987947636372647106107838706286810146507206500196423465321101516455213680575608475246711386813502903878926598636794794819489071432489487657221534448120399258416523139811544658696179794709508900474053409100075947987617642817404133756876819996786276063231980934261266143675142153359499388333779250476762049277374464851182851108926320932793518821018869199718306944163387060680004346739007044029296730574624196185764331422524615528410835539832420919746868056105249247829467670120886795684618372603515629178960549856595555628818647467992516974440605778219177833973655793118108858744614240919453566214629830598421521886927471786958393573507041708017655515842704555472139939979789968331896067416229469560688744249190634858728086851819608349296839618526747878756041335028397202902582452613807669901878662544232956212947434780079571923286338127372337266262497080460540326017108655156890876219216896196677627925574841722338636029749631528950175068266391851325314180222867627533570418715177354724497587103885451161129113072072571087527298329263046979523184853046663145251225205978617262081035366870672187026582228877986848629591003869032801309491164555151048016973607366557083127272856455893871852061842865910565216505891546889833828468546806246397999672286504228987766454746651309101054438568454397643532153722216642689257524058210918332342102485549474048907659163481054706822329792714653224378585188505806625597774034492519908922562773079767915774466478399113371013921808044332653733657892523581794401132678926629102773242057381480770240181153893566600085481997322524093211253326334499965374020855483188700078483308701556510538456292047440000922683169081649971586547292989493252195557686543501653058262618505871495944434603628754061552779490481120539470980368441975734469807787537334317685623466869228795487541439415109599100518191347051542753559363552083637019850474988559681035614775196266457990892137692738894752728000066110548515343070821087958811333174638862337791811612371260924463926774060146953009808114391841280535019220324851146708630987842584618822801721165536199010879646602070666529825407909717552464436635531726786536347673000215797883990440399686677442471627638751619402785247363194049625234386074358743512983668838001608437077170433155913875467483102495823506543121143861445237578376721365921849641629928544383870735168816123293939733946544240604464764470364050678861467312083705883309611915146139273351624336293404365652093710522731903376873746353669166485244539627140965938985287085157005689061212487608106535914624889637175213084491366064135831581053945670328296030747837234711454960035154240563793599268274795562935671475746694171624150831827606973185433024501616650693343727361596380377805898063797630171051647010685980039369572745240766342771418867940709474397934260079644138932971501642757170077299584334820109403991486951817027813484137229438553940540966177747298898469458379795056741716230739660974102317488919857649658542898683828930895838752210870387537613215162263380639080561335424504302041396914929736928674244021366921422564261381645422778002345393070624901253983439354859231212782551458272800221608306822372211116669625865382110285028942551141884588621999483336144926808275177527573032287644109249926288981806666431270439816060989963535788862951813664643959509476343322876095411441925573345537860853917195405399619020925855375169156281620091855559178899363557530117762103907940482807333263341310699796836715366991417857797500458579143795275328008154610986837412041196777927949469795474608371145488070969204438919894804686447972784532213481476783240902798610631299753477708025397318053009930531633839617407046974586643587885055397052977895622798786203858924872190010585258335400297381925463257866133271336938922530227001636401391719226128606132708730032806416047314265915511455774012595509904053945186256151226387752027112996443369883784581725757604255642852459103624216094337105279798778732661683129155761829363789624990689132331523075949855562167134837925469033826829381020172380442381563019217591001074510695174661326067520115829587378351760981722794980886128405636905863806433742962751134720206196393695197890851650289640206429739247102467179733306965250221163015432614113964778316030429035743125755944318705279014418470771416476321882449784021660655214216538142220605503274819002828824345066030263846673087755028473854318914314588577993966174656252079930970753418491960200089293623565876983905145487065970154198661341071001974963525573908101460145666050967595623299224851906253987861153360475766579062574695977362989328124593578330395188188750935997388062172727141326363386259122381540155077752418429475333930964585364592483522854766282376738130475490875548624611177561304905693304222214880291841238662462967465601106501950632719192256421200492757020461828565998441873224296722538879354919873869375510182132146631117075455578714767582501248529907618704487149742757423352705614676677058238075567069988964291038962662804549965593382453844668613052278310871324601031138889239673718673558666188040496256575167931295278155592149002789534014198928238956077722957409042297805584901381981851365459059164182309519011623048104883889168144252993650726900019861681585422648508781031477145154877782153037483323351082430298554126043983232982598801894777724740874149857640568969143046381829085608565900411321266918768130911736758176775494901734500549895019495016389647908352974067964082726013401762330275974508468995291081619514465247368511762026218640177212657993305084245227740639147463943489447089552433722967078618845828451059675073750555170397023361887748811506256854226708577126437054663783800878716074031938967936799287699508290555778276026689467989234591738620144217651634170247782259257930996506057006099344432342912403210567531473661178945721605384836342996920251038447627462340012034166572702090842379854816036213957247859709000625655099582531351167869330497761649630333346734068802699029975277430869213847290597732782515106171984698759123771933527121757929476319639881879899895308668590633355302001830068863837381471899106325694919693519397725634940272298904715543672766493420836907761142486355810508714546519903268652027089854136624778904128951885372475736035230352174439452952201922245485944461879483336122191478304570414686130771203343831176342171007834805026094110484739652253296454285285043851330796957018118592372239288077109391544167309185193439094373502779217775518811296959513091142173393251771524495335929055083280167384844713169179942960621794459379912238518227068587418489322014140257023176582720018828146500432571239259364488782053819672263540934466197240739947961054569270879711086992588024204849327983296663625832403714719813370940637927319536498769871136678166735731635177526951189474691303995128795756018241637869724326072625823672854857528113821097792659058802069782967921506035527419432771952272184863102258955217443320980055251991277666552300097933054173728191682155642619986104112761639025708856697876587841523730091976406418988135180675870347835308383205482135679302267927458010055107614671709233765028749045998766097567218765247050899478613439114973923439872077519408603925786235317088946801671084860782108524939905409315771517488487198680658544120940753839431389087110460290280279940889830913853251484421050637666313704551620205148424682885813962664346362185490110454813781005379102578580835667849933434608488263810774588302011693006985160768377799299120294282225494067156580684553350058757692041772434482779959127739027991012507734754267957918688375782544629211401302536490555093022660882914253320016999652334590596248357332883207307958189819720966696777985621342342202701815808297424161108978166556344888733886502950919126782691571201709489064002823553953475779488002489652761753708645005964725466594768794474235835817878184512564018936636414431434443044827945444044181198048455537489255984929091624375530519995348189943453339052593036763312281641845216768633749648994419629957540724759455627524041991337770376955717493198014066424790902382036531276595871919144647871500667610393651006177781429602366520003382713935262802058677295641162891244306423373003718516932838671512661379546043218147547774244205668619055702597633840146823362932295044921275782044869217902784099514253224793881295168489107462773389704241102295444321032007210433454027270235691972921731234011462005389391939804357906693743323441300756201528888325436547817806348245347528999990956743954540168438451631396260848385310516749449909865713271971619649688014062177713061918542385719702258367349866220278071483806515456405621572229634976417724506327637895710600735361908903210831735031029898392164367621762358749193121038713109422010029306137924533280653873669040547587773854457094878426451857923147938418581180969846919094933279813907508764284363886257512902752120869502527238524762109248357925323349233133141113265356140820764851229496920704930741593249122359334553984870268637774977044034201920934167207254300075144877542100934791061090595577252112669111822761985997951798881666572407358090413191757789632927266716893120329820307235545546719427144319981684242922712555591053319630516606544352361720191886511562491661972001667354072592803936149912353180053021776575144165233254769468715512837324763521995098704744878836180323659153547770419771858070563246313584235877616005377641654467297528993989979950386546308168249940031802476067123367311701816761497353834538300037424903687310528972414152740501474596578679310568576605811231351569535664191820894473354223525211096634565356464969804628253999286430954761360597105757360566353077392981870603377460525103419383068968385789084677928723418765127263029568724693826546374572736161156182882549264126871843032206051208483976362198012784900620287659677014658110076145545192025148891449685563875631829149765291800028877733798199974087080446436866055381186567733160933900356442187549573337388253824581799911589514553807618705239098124915212852516957240369928079749784026578830048545974232438887829579801836506164962444395810816696387985949417712742951743058242773453350611644429253361454740236007509963928484395787011142029551448695846309012555652670485384259836324225253265069744261143477193133396157330886838207275463159003221159820312089954310378529930182991539137324031737919833250788492265732745085999734763697452494897396403249969406644134498913854177819115652101824919655579528607251852595102589184796051014606252662238511379784876181944765920237525946670056172953810302942246497716733332225776557889508767918616635194554619605972816974179681202315063475332697972742365687232188688399561348217674954974816869807223469972940205878562619123097507000901659499155290737377952049664628640076244999893090052038015581809715377250638653045388187689545831536723048753495888741146008482830739592790657471913394293187428277692440703905481228342299097184719810985803709380549088351140232531756067592923456480027624881445713090928037260899595517715807305454341466720447278309361256744706947784951963672523805393509022757386718055771317604103088651129268644934996359051985638137124741493226404501590008819466315711504411380749933915078526956423465326474999049792682134173107652530771757783396272436398359131828032014500861720662387275067518485444493958068612719856600123716100896285931982579635704022184603792233770197725547561591436590035147713807763323559260696632305284044394161374598547023821342835413032243061525053618570108631289550793627501354865509343989930570456482801873398455134470841917896438091584214906620512116472546041100706730564446795384959975825966068893466172605463368872591848012428590787161985479731292331468592026287685568194743630821603275644956446280124900493772451279700926278875919894278361372104949614114201813754940298796479781777844176262643895789032400591790324616353073745181783478692926002688341329281104169146939390535834694488369645355092277069390090464020521313916166217546638023003629345303658486325918835393809973555848360803488489033558154539806479851608728068227740251052139149067850950309330277040261792466842534615657714078433606170014388767426300861507674148698914229012018384405733387264723220145618375560924150250624869615263274613812963704411391745997519072428925775876783178337454723828525118303727550092837911114570886926391302836343566995102689738099588996294424112079316559973894062772082876655269605080873450609916945485828541088333475533304035408860931488479815691459864242714503550193840591069794284142437130751302286910014870002617724823031447915444198096197114759353471545603630232573768184118527647723634763897901579483586078220140400577889023009050284538794513903781711564148903539514374254705248634095535174814734870163430604912713847597696970805031332998883674393784771206184625974693066686323896798253198890176972736861663263704673142436912130245690571628858759486347996969542025770031957456760647154435057382835815401887330113010421157150792539016329840804136604399800630339570628310435324683217281333154828664128527620709120150328688850636056817716318878044519741526697582193633586240649261279580233956863332061378769302890181531884871494467901112719286413346195167024661788466744817828578217036530344978332400524538471975478294031936092808895307888338826438563666414711760304266555836496372189832104731581841422305420579008282160540197755040647409861099349876214028656674889047047383539198560406279735651933758359084797551683934454595175270794486082794187546806640125939287575883548252912503328098716421325428634287151511550222111527605400787420875575854050382295037424922551624360968833324780583151312808863363724304131061988735874477041040605052959198000641212685902975476344077170135004427308293890164570881416522818943313991181274508932706405532297567124412272501705530862949384858900622599702210455639064040526760778331470319945964387171547806443266278675566135909365719272881971955963975935002648669467213170902111594011831590097069054733270627270725842171104838576036431594309724127282991228808062345733425726045286744342922484190112901037237279596496590372813465072721936327485684694025927659278044856505303693424873313233354278388787600828624161986231886995079411107896628932193599796161883005143563700079965237788180004784759861616805819169522292990668468446780413124507749656570501747425303343811230297431397398782852069913638487945252612699240976767987879916769876286396843654416354456914337814939881253446619975592625503834410019717114385349841005480553369506132807337034153434234380031483041009060520767639238739198944640677225640424666302913838161443495907801119801547291602989538670138823446009993053632274458453697854607889278422883790055743921345596917892882615556178570423123314119893859699439851810931516296801459908407321079105560129310515014545917250057267697970979335517001399142428533689656810051857444880858746492849019972652682546799142127427199339513186405040509853899656717186353347012573552159426015137612615277394790362345733042587431839328642319732596072742183155942177139347487154996870950134581120592592034149577264862715068726894829310468991041699056172662792123423715779079146089504125353549444537690121277043656551818646121906196339171750836258090788336033708532814535827791081541192619568199461044684432340851968645749765399709135654821157378489076009772513963041967945064532958046750681595937606037565074017887039751102610977543288473811278997805907376244472309953518778133968471687410121766642688246227030175953976128868547441326899759155236696591665217166489866687417682067863326979610142496473680154091660072063732140676380168732870936863337952028336066173166482399669570224244859946852703908166491176078736195748869319354097299903702352140951445777973439102699410636833087552729208130712942654190121960444598451634667338298755850998715742386655149991310361251655740697879474924377652052737855400392614727615079639544036478627242309322720921348050073835439516288243975788168698157955563519416043748032845725029468925525398986528363995011417522977024587005380199743829122079630993827651912967064817024884922399002131364710282999695574738984963202656689094951801592276560800903339997571838853775103296881833964961181497758318684972911547451703543141979494259573719619409364347221853436176207329372262458430996273201147990267800402153671232031814248973784322199668605275338763017776663606285239722874020593894872963625383367069841016498031251414696544592135473411434348402935563712537398776565609246266366648064898499862450477981228850525536196052573639268266473121075065915858966831783999848033074393973393617395173456259363721813584259630465291535469170356456601607210877158552033611369512476139524248537994105661141549946985287761180032597034540439992244375147208799358261382122981687474029290950209308552004550575224257972350774483619490778021392485179930691397027548449924755288215309631581356652487546005028166802605996626819136186687277323775767420892482680351001248739987520442916525706569814021112403829091272458614143342351981357637730128143478914869027703402959630333003020618552117108836841162504399958157619946273252355717361522213128048905101553212706786502737119161650197021381648006428218649738969863690633612414321934011147342052475945211001626819902142513255140286279017796830393972674999408450183997377770204496853667369454916331587075028896396149208725462115322497997306795015879415668799197945261546969650948583019239551321796246794633654994940872186634677299881637648583825912017684252281119259160813172246632254339963026150593304968491158562958000721250933206018461553675530406285064172346579702437953027194883191748040135405323949011871081687401908255717705631156223658188757468823250098891414528957340622418472628153883868565309695238545470442399528360089632143011089539012732290776756123948414997592697234095624297616243365722693751332579202140995842235977461032149030282169105168518018714744544054366392420704703977313197160154033827631828968396306165369885773746362064899803402079831603950756372631433026533922940338893726314634981649493422853514340612860846549875066596441330175664519160504051980929216489885272434240112470208136067998063278375697271230233002456661951381087317480580758914241731576695141074604636045079965518700284734216515934644626448637125141174532512519836572685552231120996731243709269140887407846265462373812066724377186879848733838301800918203764918744209254433102156981641697817658713748513348839326896467817225563355641287386060727073273930199558001991741476459871200126710082619717334979407007848202248769297727600439955233207491099573479165714413232912092383395788699859407577102910208535532319543954814845384458397862529526158940398944738803856857294330237039217354450947246076459193209171133322383897831900523904939421670248435467725152567896316310719681809087727262247052271203161231994335955932302253112188375480359069092794745952384754070030989902096378636363970018968100620708417677434832454525606257348204915604012922768794398677180331167038967473101939219625404361656810515707423692165614672242847009950643593038717808260502002319913376785405260442051142788964064735598293963610865844668271041611633735645591796550623157082898246676256101259220454656899783884855875495965883824383104146765010343821704499527036613745998889905363741416240408027924093713057192338538109185968102518445398095623788604660962684295614687592882140841831983211691889471817468762682021394961755345651643934584123294771689632054788024899433315181416176777519257785070326687344848942604687159706453812770123324072454281625515881811317273757518979312825378566337281337020084185318236285924114127322619915805305300084724373064556392308495277404536796809748724792504475472114231594644375016615654355707136635700560368672546104878300869926901749302610100094819918384887320937525235866492202017032666855061055236517491327887329948517948434866251678092381979844214126559720571302650327742962251373280841200716079330048807327075477643936724590706285444504352346033466874715538909508311909365804343071984129586698272866980420092269600932377177108499940102094444653969761478370821586494348843604868327082640925379596212460020953109312507476577795592609152662505117015967586476574722126556577715453979766342513820704604148854190198530448575655377620043068835864390364620815992088665680598691209011608048949437688615073264152999867401779416624123628595262584368767384055880804740606954735798984172652496340087290014949309354129180952467706614644576163818287457735025796154031925962506058719872235627025856452826977773136221965847133288179109827080146475555907828386891196837625299110554677455693878024687002070740196345829968972015545735641404453498506169239214973122705635229658426602555356127218192296162161945583933349293323278259398176369174177079563744916583519249000446701307951697201670287273413314126801101885148643926948362763519717450893573080347477751094347130754041487893049191723437016381802358997888752265896681703458236462708879347395136236138630992411629662826478411783503220576864795400824912908455361435636756863175547540533416617067560797205131925778964262638551698973682337934446681893194378074734804265873499814535507537863315137972294516801902940633297297102322029419633679723189924898445352377433427897216578102705844219155890943409515787269545657451302419267712803134071059506199927575735098136992852382574137926113321023984834480911898002195986920011905869656192055285235886038603185723063411423181211915082895184327430583454187674681951886564485714583212722576391587143434657262704314629420822183047424310399456648918079071998056242625836614485428840938604594358551086859741850691672485306502712057165628107159907749279330719254776643971539200116872381131397673068567629181578530348419345543360601474624468232778128183892174733949336216403241374056867437358937054209871555255733464374580265292641252972498309725005663523503386462692782268878534383351727224595633817901149045918297889235992019763489924828418999236744004301373840222836833634631999032612164704421626844568337869045224384251995726504886037435034074612905514821647935201171056242811654591360638767522699057096529634215128543607661558452320046202971766954971789893342735077796648941925776210762574888852697038632946060168997936162814012868657677508727408235323348674577924438739710609624764050767218306788413771037945800064360063371874291967484110763564642426994941382240461788228331844706684508503068875980109999043678212717069468944685849971494956301555694861321606852032173810852655993612120831381878960964074842246528633073239048603418685932108729126005899768588207636607472473785810670163138506285813190411680328880396625432514621412168995382536525625101752896174144751195631139772128392051994644563667011398144611108447376941453505958817381626748650145423861124724775745893898719116987280412997127400746671219454288091080356682103222267435184663443370944182496734501737530169291719643405299594428461231181232512750326107753053295546991072491530800466374866038571167018290323494099485825212357911712868607682167497995735969687527393015794242184172880969721201788579258375086101992409268884741414832224647572312453117753584954716255550340388141866463381777928841718458223280763001286011768831251764862410965145166196444382055909451719801637948952595610548348412476005200661977792216270618671894848480942952038991897421083029461330178055351266500006055265062615923368107412647475282379176551579404698224282263513226170764425196773296052342687057866152780029022158672315465763469018445909557878541940316307155368158056526520243227118885505210107729312514140226212895907530109909962983047562316222741744632482019574892399653653866971385831062348493957669471672829923809958976070383513658816105728973584985478314058285906914450851354426646147151719139275402596029216460015197889841587303111609629521041340730519977538940061891887656555160706310677557626591955711747161803099443383656310095938170658995920646652420502913189051100235622263322858682263005456428625958157582330943251982977032751843623840796400228539961713062768671401460546016657591479072613302188742936303836645283112285737876999981067691162416167702420024175150315330714425510337182969996165996782167241842603285252789881403512813092628506131214495974846916533524414292630981176757777023440557614378379689124599954951213627024659127848760919519162679180167428165740429771474754166822046407277566900447876201836703028158797026861036299720443656957922083674945385310106306705484957036594328250876847279015719864522311719705270842916917673560073728774296862712983290158407767291709727991565511640458232331014590918504679335185086291513932222965500281214038917384167781115687194636999713005451687884607734525086734887895249710413005546548230472760142018524257151656220897740447562238850880543925869596061529224400029015007638781759424772080543461566029040849726500661541157596983255216671434429888246672099799527724164953224855793040571930307804984551851740134973500347514177282628295875006715325868676536958220088181420670220382353939126154192653186203183985475560425933463336300750975961333544640754586386115939876292971542823055797537736313220085602581707433834598919210089226444763342096567001949388707637105775084508316600483132082731154153843444476969244302246271635025167244209276450628370091299379503931683466480604805922310173814848429924367704273366879925625469613772412875393874038771126787154157604341148152967026093509179823246918855607290127393152554608133744631890385315978979944570630757150926215449785013042292272733233700963611156584475628879101941313455909574567357784823042991390178853627478378535188638728969663214130448383890521494959624870067089322171714683031145053194341772534750953362745940447898787116647777067398116892863733577518829659670588898160712349258345819735149762192382393026053258063562730203185004250767214970052268603687068224757188129253602225277635494617774357042732833264884003600698381380227595008476086615300553854963826095003419708231852070780797695764680621832953297944565390994248058163657034988208496113256554285311454106677267045444083507220540203277713849493408652786789396185720536554809655690628977496272984443890245316995052221500632668937007590263316828712573608845741564567544462394718279180378316074720655714784011627853293070949522120580165527755170778778256635556951494218941729508160975569179571205844560305610918340389121772789565528176687144485921637580392666155550084827393243717622109261656381351391161043741560589997446571658662349964399977664346435725262056004515323359271063919902620381565055685404247660351389778750912310665331189247090632504151470091484014728722931000358566369858025513635753173677599310193475889078046834506759094689411389891870922593064925719723325893965305054869798937381960770638268489581501342100483463608327623795090742373877133494638428397847934763404483768152905673696434417780283726932126919010980643885731216669139734199380893129995190689597144168331216582245696848798012414672316741917931913507205901706071988841762969601631197284025911623076705113555982516411455455812859710667563536585304889265023629005830133205401745324399670732264467315519576738169219032426177875396768156532559723812264092795656700596014928196822940095160257578703374357247276626815862186906325145863195598688720758722014983391704496289038458222957802258903574188515366254481612215517427986766903749288183834721696758634917404888398410039718159502970043262574218249982374996776114869417336331444628537830009995105928748691685887964327835821438137437760424351314276427283302696981588946377642732981512696019934278200275952841495513709374452029427337191281720437666707545505726286885342857936883710504448792894169348178490423578599338993360259663027869473122138562381605643279570828149710008931431629433792826295475561867499480191872198250273655295898946087958563635999993930967266517776564829341463292959760788811777740262424125783355123294164118191315667277647675443159163848540014097313223891695261747005084749951434023075156364499235653253748765799095271828117453317941784522006081517526945237094977594581697741533096392182731295145235880479184570716805691795550757016578199221367242254082201963747206228930251866521525184933817308774008453415737917602963742062683542647770319250640037134958267429215677517440687313448110028456251604591965719041238681398530909061901020385119990643920281391270114169886838785355478029173248219472063557499806914047182570106708818082506177681009239310638225443470313027205658416842019461214756067169528168836398098777676149627530042189964057419267708336725245425888395970151436189109044580742100316283637150473276348352317095504011852844229833952485125590679900765402678637123045609036058713135565404256469266688390546820514835906186690543362204911754358937711016991478720023874239552323356518223161202601117646276418777739552505231938027472358217917334639854700097190834512118700878352715745475325994371178281996314329030192575312242272049351801995129216600893473135151675217966839177786208692124347215248328634968033351388831808970210333924007799933232493682932749882781780763743543763608873214049263497170701077071707310419259549974414707295983248250277215729904917447735154405500280590730423946134546644979146202965671974547999002975171506055199680472035678234962313192109112045316664836877776499044921650532719922692496781414725169306675124156306810374515401640621534255772214242431510632900865614305684082363062814155896286236640926671351385692509275342891633271665252682212227077854401547597206245418619865802984497329451747235106996499852085636226736591539664807770240177672516142146696131689497850154378538853053719591587175961675896510046408992524155613888899781508523634163918510959714446489614158744398395952780790646941077550478714700707729582442495026176565579885079908139598642482453556259205335522836860569419964733871410934063511274692517548557284603739911972242179441945700937684052530692879836927369175918598079436626864503196054505022635967751002018094961570526337961728068869440924970499585297491490944979245799335468320338248637551007534407603374655218170406239947981661323903554618129570873676639938209622311283446344172019844137619337398005515846709555305676834715935146496486800008727184029902693745647902755900873897398117289069524169801756090704036682972853323789601849126434290306564820247207193492762378153499957150111261529493327656715795017927462433926106302545365722397470925926679260339856884480731984532085631901335071410673562052143873528304653281479845947770373080141778304291827594513674643133318580071368815456486311586538791466319132877651580907362524211899873374404663140542497184058323487284692563166985860266398255783376480626383555855020139662256839749492503565467506660229379206930518380307323761461029796947204568908728650772026560936040033064236876207664084491893578371402524076946618610243016688278687731315906263822622307492086166045514589471782666102855866244202009049182713929691955562786263163139097714862440863039466414658953080386785151368524231766734862412021626349630432566693301461061340854346984495965127305204276118611701332121045626483736471914539874331739205455784504807049634178203805353107831200951394288719823344944975189036912002177455416518087618007325535709200080414123681313974537697837420364993488894082280909298295954876433445231137546696637134854168791728347407949338221483666333781875179315614659433061283637805919487305675325670855811902869898741363093068744493958661053904889840402506551936298165792397796642026319944453737066525611721582496967716316430053834205676737593925400986756183740343034996111272047683320865294258860052419910800654551968157977487584350844165668407370274688302996381430706844396919039004986224994915553358930693894117363813310550821693509674645083890732806424795073678322744754734764117230133206232450237974262349434372903090750236969990202312030607103439319042911322533956545371765294608507958819062825880909553543393363738307940290594993256862397313540462167178606605821798045461576935595700707456957537833709255176188705014447368068617202201648362085399428823455379115586975056829069986781649836066854289634778637166370022314915403676312465414915336313875842965829132694353100472874375825201222587047756675116980905528470556389271032311812459484839267407572296653927807452022405585238315443959626592834704550756597740957583800310371226868229418828442218887731181193745718319094936569757158859635862336154064102052569556489220949538668203963971075886450456302971946276572251509038515397266277457736247381065863797695692891573440322877426497780137311280250488141217809799050321022315101135665624724833643665376873922212052695274004185701795644868758844203716093544692675785920142275376606118567246799807144831588531114628378585828476891674481482041665117019085658079864992201953326006641791388323389636110564371032271834407942353476407285713662489201017836150069620603961969073733871279888089162755090032333994108246596560770585078540714977752069591188801774973532889469656359050404297996473489255085318942100164118596425756459696624609849385632030853953844432729578746041275520430337546422517869838334530410223371987359453771695681494156788701699872985459837040766157056092193376635855976458314210775450054157542545294954557601544891693554108763163307687495548518159014203222129629996867678597287403477698979546590909755368260866750463054771294451190114404467596326829977884985647531686821265721177684220525886039419552145934733025150309301262608292046806712547622885634673035422583966497550952481472008672760382963712757431703190830241002733948583454540583251271011832010475436004321791760790814858256170433116200948868291400133269793749362957428074629430667564397697944253908853609355370568299752732962032917863982153121605429481800302917752326116493118135726131818704751431581272460966163882792438936995093054012946476985026972303104750857206976453145049739032001072495885462925493981284897650573822608572325578843977479540158328537087223294801885815151536491133225047159945390203415650219531146108263853550415564566877009468902019753043837700099769478615793220930573844085941319615701022921953816523459485955647004754751095773136038945517332400509738486863827273884129446297446156422320775278322419197463028490997939418597311131037426450905894398080809434112273898257995644224132603024697546792242899687425844669274932400043439050632840061762399204823582494608463065086800684892832990218074560640767016185248553392910288340058950417451310372431623144219269741613234085229232341186650221464831235071737019609698849260277395957636681060515582802895291033001232795592653493036739773727505065994522923964251898441337307746725741227032263940143856794972837128310957308806626380019826487688866778272201220369760600774266077621677389946059917076702394423600592985664878863502095743118176076136864053857666119687004684426373502183567794997324025127981201660937425212820545837766813276900777841451272145030822943182275343641429899590697876269587208810199156160196973866864266174509057667961383895580128720200381232758863892383287919117678243746187042927033242363215560113205135396336630393001925081164399914700542674497897571110770238981144081220333023916799622272071671228907708895259808509882329619316815401230761408862718549753098737546599910405899933397084375587526051686087339013515289608492875855224112337328037168896759687364167607391958463247946354246517511128137259639878326135280062116151592361166066782106495179270211619165654224503540792278339333845557053588355810096471919341561861844762685586346522779623188677353303283934103021284086899649751313864433768457199825913478200084519819942216602038408119952005396544439415858002454595447781763937409752363657361015156045729639455514454243224116937807905691176660384452827761639041194631752702021204857314989513615202837429140715229101280093304545400184828368050050493796322484055045528697629846051909533549481352305630206164375655090978384376748761367735802103548372887325550909804997205670976581588287512400220904408159082711301767059803926739196568415620842444765954657517005780823479725011209561667599429056662148587527628342775431700019754007253833448414265468277045221657574916025823815530321045358501857123887498708651339290160135320533709799701290667022520721271149177664263630343718057710403840383829477120861632424823306057571738155289848849715564609879403949995691623559768054962869555979094975192821881147401151027662988285340876881258332680760734790492542952003545142644074704572024770207132022374106955843489133131013414264567679589805682982349196803525482080475997688309195027358378638388210838087486850752835122628450260652365652119632509159343454429054593446283491871568237097224426422365858359208739500702566611204408916118516384406089545191017602747505628208964100221622225158559222042460918092859985709560086868742373160009271020212135431171377204990078210153296342826923146574603116400615998604689125029582157342957772546609198651009098726466350670568719889155741723009112924341577564301061797529155763367519702640553478471874168080036501361041981495881860030613119697592629515798262973463021313814938993817598688461214916241359529500482401586141468606965625958576242881662395817316051163849857485039556899998634317593541377895373307316876155117424252915545868915066735162194325728687950915206156731924789864661754189639153664569306266830241329276903782597837583437487540593781459629395587669379962387426740068613696977714332852821643533779712866970709044168711536780297794770090756739497507887821879053284389166439364884184251076821539441832453176501363007654313874030867696473289533000287185721372783989619142170230818300890302486742565991337803328811234834491998101971850678783289671853059248209215356471638705549580651330889204663709321675326829548755071889690526025801566467413415074830998687031672143913340881640639085522210098886099827663504492677966985280570388297044935873374699488649820644319293472673471633400027006355355713871769026476337136099910618807604429337073170495506272820604958856349956078034321838966688620853037358540359870522699290958415703380190569148354183132134764500781248057284493317442004942642563209118094948392431274793887834604092048663086913917690149777143524961474193899017860091214822577168532753504720361141655837174874697235000383800587681150163548292813594087814763761100045150454481944616198351256338755081878131095477422150367229977323030164730419688166469099338321363528314762384205952329545254617424099422207103576869130291025489712662723477787661737522965064151276789430106037491971174085266965164449385635057541170719828858907746622851082119537301048188518935912917937011403857731483207761175648486861097528512468378157643946353015600253772985432573979358279455413646114334148007696691233644962279617312621279344589719423374989403465203672495419566939241533788339609610673398836242450226079377238818657271428162206785309329003411236118389296130382965720894254324191814536349798945719801311958679250451051179653696712340038815816895986297338390984986067236375120470462546572143299431373797750067776547674394977663010028157964652227624017454265113364536235194081922543529378936529697901042272038439294172792962066708405367312472032855833863407112793796248747295304792294213255916858395259059183841673658208367614523370180893177278371408016862701531464256892165858864981108251066873288344405385488903282685066494542470122457121372574328009215340652384116304004600136079391012197197554735859280815044588341564277564678982542674008482848506681891241305883037803338541572169957705788244971200014505535283650322980791530021711864838826773243029706164557377837996845004240778978250847469624529605666971568668866337813560532016764739355721358337144310616527356459412390198053523556241504191389750448192906280205834752919471563135539010819713280939039562745505984688988919539559664994591723196618450580370021730173927450971693471278863602561586346538556285815590217904260786451830095844470583104180387854217939709268552386061851684098354362078457525687212613914196169447870182403035123938868215285928772187548030371247286702300504141002326683094738825586721842728839080816113616005507707811166539192192240445510036778392473773616354677511429960830288582536737962496166733631149787201563392230787581558336811130229737942659221797699995286526422221466683170917278552693605231106980397737549250907305985651706660520498730509494232819892786362083900946346964801882101295802763343694807736903169426465539131833887870516341431788736217609700716666461871437932792473818672130890014415784066089727874660067912992520736429090506192169698449386786520133961675654890871832464893273614186305510361565701408368728830062089411924381611511000946952661422223472801299692666358356728703933569787889009866346181233125087014064228994174731790276209366049267943676202930789718575984975344914466645847475288058157915702848366674946998984960821005880094257204948607256837757716447624960087117838163526393015422590205220644205961709073983882122859178941888444191339500439643586881883333223394775511439885222929679704058114706795506132364977605516290278026170730102365376946244133682107875145646821163672872007111500612309508400457178606313177810346513856668895413219644347719873354094363470422572151424901414170031984286593174613531813279792961044156916844553723040955784601258026323454913519269903966425654492319291999041343003782537641841829584700597543644559834153749391794093845700652073975819753108243532484286065242738618534701078166533517500106623536731796590993117613435463829374495827019987416060921506410777032739032262583854218192190279153782286776790716780833101838447387210338900974222168513695718073651962872635908259344696498302691035348718872868544807361519215353015481515420703944112954165220019302141016980383170229244723159547879696439434259005960226905850836558816178472686282749848943883179857278753019732252571529915424608961846932241004463707841293169955960141970964672459865469423583850966442125244765118147984213309443915339504194005571200939804813210257920975575468702723712857941557637974295436175672326749466285032044888779787041615710266845859254564987198211516992227933326170217476110058274934584846909276080640645805633492524162001209564222004015088978305487917768128655677101325378326101778770357212110637177793726841974258402534446315966769921770630886680794598855554390566471858778107754842180947627849543779174158607931826447013165059533516434747101978320625218622333830890830408094098862832869196134377755767513290866463319384421715948975473784314870173181264369346228588156638603083089488981273372137868731684044680693347658422520800686800915678894751774265117478720566741811769695550580289773619192435703994712609898825053725319418576012152180026829182371128233806611180968928964964493001103886469570748227887514562133823448773909373322040587622544129704521593982295078614228501179843001613905812142804783416380478979668331987504956761075457729329746154407299498389339104053980683613359433135631716608094725956556580493425245184377508641845302306983050585979745095122493799719842571475905189121444114787856150780395701776010088808364559010726436413173811897433472232153364863382375462518145170509772571127994772900101747511207472825680631604320130624059675832318916991249682464477818986093498068681207825962696955368594262838346330504113229326417886867563794377988125527654052575072609556610942707030974422916117718338180896505806365991093289113848428395995710025520575998087640276165663086271931356021651387330294920475637488753869260821569667704714183625824587008973528271436350117531467606359933726721121493606904858914643764119960945178123178789936816933723675464092016566799280563186914399949412971937205262457096227750402175125700305525918233632584618924553917057108108952134387577320257676003353089347943498165164437702020142578132801729466518431116915814480403294549929028706189415913214934644100221257317967998695440942017966887740139726055827901637026991100312578426107183286766358087849060725553493339176879915440277147813137460758254773847046652536806886805311610103277317274887588684501076232015579280566881447787093046314419925610713807054024354690205268298057086693952998967385080373935798083453985613699789763042417516395614877159002069996667306685575905202896317855625062053862693748312486792642042888148874433076438968245438605928290330033698511828653879975967821613790755316624084638079891485080451177120319182020600611905411234096732584518002321343970920643691154860221509607293315713253673122840197919989968839095061867896067566705479358372021594335369017242693774705015118115248515509000306674035078485576650310158492633253841662980436488188100304447591988564526876226986500195127039444287805249778767819671952652232164333627813693420098569892324102097276019217311869571275027120283883600252725949146425259520061582511244200076773021247211920087219048355629491009891422153265410037070926674216823948294368605569419086112655323513382399047687499828420057505470312673334610775544141268408672310177721591610800358893307845954847919376330570686982532230801860142011273934417583588489956069580804119766664277835553195800443441174809037297082897207957329119637810211720544681979233879228908638988522300160823095055386634976472132655942346201349556503567961904623248231128950636008554938038709302239220275070870516601987883806612498377288142361793266708750803587910080322303380028356023689911438783514119768601128383684872539907158694656716205478301981419564769922181065084365029623492211531666555796733769574626530338537683602341088439045041625391175410273740011100563596536904275611860759710884701243999604163306408964737764818356663811886882211874088107929387077731246536506382670783464252228831411445989006094683334745545607112095345669025217953705593756958771501311220239355779740848927745475194452455764275405875020486910005465330062303844357020500009669631231694292181488445959017598750614762429006469047130427766812866051217727634975376922564889373109127444368545775752383458810767591631918420827797659470415712063446491026271831252027547310562986820753098812894616732613511320093477388492925857892691494186186145954318546984714280189076482094520521271074404477441547583817215351535584225133891767454886872017278875627655066415481404077918166790886574575382693904594716563238439437071685908722944035427287435249817247903081452826013143726620424008942027336883129345046900612255389127816759230284305388309457900550784614143112853944493086107044024443564899576568855479262538915107672651864332161413409602879368982206791505468421050736987001793759173097051424718555072885043062419485179898639974075449250773468703616870459691842914802441549882180873041073298541380743933270812052539941073141877059869007287671021479311073011058679812055507878466816991163441200912726819733233689569712577046928486363315126575843330543001807589618080442555665628532443324199905969551426795050962678783796158227636042911134371611171059573165991060946943774863929765150993548594932197165220347040035517863028307794613208519010873854255805936121212739074458722379959658345920918434847077916952407959488712560956874236228626792832155755158474169540809088446000937271041335334983219939972214409338899894116723392424279497294876902856763984562321091993123095929190095402522432118839192539453907328961979397380031954472391690671949558244298620123039657435272173000715221013686451820440937160294557702034363089661253909659487622121361654838071085397776655138944639415509616469220195344211980323831484426996157844350019664100252525491458259550883783312748606602659004275568583256948125624879664153690259627171996135429285765741191672163331027249120912326876161050463699581040121290251452374743140230389306246584963008942041839533392386096701725340444150456927734294960697336941424147980884918157340255572133210748695845441418239470048264636564634526112922349412242162913978860394737577770040109270656599659719483771597791552530828813619871721240046756816113996745069691393679943437369555757892179912392350944271762628941956084360306204703803970248920249721020221860809487512254238715509671701319638625163435897514309245169491710829948208928904826325942279178737794100290643977873716746140150415131923736549128454276656675981002287158493976340016373805926926989161302324194969716477080446190794194786322794158254582416742873819079612314972061721337289921273099566790138213445764618985292746217521233660563010306655359232482214907222437043645392793982550856053564643137431175559846081591699144894987094846482057259277166803956330241783500539148266233540818328557065035013154726704096447607729916324344117326012723418843819470069720343153315073944925139326877623816157858633068402457112312617255222144944842643095602847491456184215734707729112156502239366378310334590654673764516090903497906046810982003042980037230173844573215504168296939603546170448608596730898256129836036450603634912299624538609197337123101817711002183618143881675324240368027108376203469288939789727163596873357755335594064274557720350559542589095815936209336272630086454796650498936424443154632815636959445435576167848895262267648202587592749346455800955828830596502869399480221617977276385992893197744736254713349963213361752183322306229986740653670401519024055663412507966262631321694724485537679897354194018673656095750110559610387914439909619380557352325978701473245728528356329841208395906801978244104125880476720201321923158482825733316130201588514473007833296780793350722391215986940621143090031720340921567879050284351388847498569135148648196518233752154271346791518235198245790196474459274651623692718844981909501771943874693654658266009569851034120917407011861839567435617148523579367781619990497989192506332359280528616745008437888919493109416061906353125850064542104767381694176116471471713489349566508386916032676206939369528497405109510773074393785867104800744723097249994252263856144441721691278970572300674989112052906155827992175407340035002160216542784979361378778640011692951038344191502053282745941125160611997995389901739411496433077455465783213407960580744627233789649145320921763181411988887606599159374738370353494310426468064290472417716538294448653845569532815661743943118172422740827199820557054316343293948102961901207304043690306196288103910893959795688261732520721596812756054922556004977621296615448342912583450511047449371747799828186868781014033053139985878032392709180421760301927814316012729340819847023275539794856931561117694220021424370937746444093915105341095704059724907276810383525930656014098152733217415110200924725926557063040316766860057232713595764149023608183753125203909167247048596609895388773180307286910202690842869408120260515903499903362501731586729042652971031038121422451592641296897094236877202936493434294548567987642862430682256296746088591316660644205414347518702787086622260330744392680361570463097403063275042778526305005464180356443800825462547059112771866876110796717029756543561105909842810366432487431313490758326687769992582209624807276696561730046429198440026697524563127590604965010878091566305692003236375421159777196818711926314493515014277375567554953329697743530542387204463332119391665379691991963266756978466620372352434423962580917401896970150188600331597412103393156477290094928743098013552733597910441444677326373436192039483731841250451151573100085663066234736644959341982903063144991011454728813991886004594483874400973193050906559928771559454628359275704135004850669900140408846258406266169140987558717566704835820463908499233672504836493958271386802809746424477719141183127531821650987587237066910963067843311458355858096870963798999903648489562479005594691927227778433566096794882117762455746635023660341835119635552114402691837400949203276115822458597995850133711567978490057562373065802232841506711921544461129720738883268533527966821406679496513654958876805476778716386861336392799305754917508562065478862457983204422197513421810551117860250492132435256257982111490168680957980514112742122691742702576257885296959517639084709356873105298573981862307202836336837391068626343505999706104013427046795360889916816503766382068052080171931115480151095828404200568723994289912558152953991733562141857002126301754332688544179261452306107820444156817850342265693373155741285737483468026364702639304630547460194515876746979265465487334359844942664179247338660466702526228981964065573893096475771189126013161757642125596062458038110685205277501690002396579805475493432303836954563733802300199932384317050116275414468729478935014610775087450153876298121773259459426896362359220786551335086296609535380294661269219060683450390246890420646719679991387688065306876607847011352739805417833012994208590877703898923342344767343570700241384296311162309263092928738368027741756093422200135591111186542453974735535587865007735708491741955075207898739976451569152467712450055918738593555043545166918129911639711010028581448704373020524033223163195360433983775372724768539646113154313059425908954919659478085598973757855703405994986877475582670443538120259594580955597426876145061423873941036337090311317411063111945432931059288316328191341228612131657242861958060600762775816032184000192995493489490997073008310884309394262924254585215786614727023495838198337316289735210548254029149265954437085843900053262408197145755494653440742440585715185926176894958704426797887136755913516250941389181930274265045363900207440993442723010549923023323393718019839181802858040687223231131612232549365904895010288856500994374103734435850933265929024147380594965138777675109878035479205797117157375115652690015917680428829575452798509035771250566239541740770966602000200033624210126000414097864544876741992509658731394840426556388290803766200954482058290488749400567367911382428349699941272231815401248692962116902819096988875171191812216364975951840758665821006453460647234382082869446852718902824806620636955738906737561276907703720001913734469534654794172900807153577722451990567990604088131586735915986173422574186990611869855687546664709169911476567252580193886172551856727711879892575540792243654782214055811328647571198051314507572920964213119628674276151623075948234302345167953655006779408542162470159477412790625272311955495739563180222673650908895946040569200850628393685830882053636612828626098283997243165666963617849931542386999168349704260630164117507033417805624594931567492352518682904334539389546834623641079862474101574516480012132341869198042809244159615266887556523043112418519550989653421163099372790883271980578841775123439956842552321632217938999874995931969077767968085102395859619726200792347515042223553539703312325202049056720668723740170024025959517246466797954097454874723502890495429390126323811046479440341039076874017056972688033318991754519276145144438746610965319773933514456588120651931310444592288862174995301180512378822104641581131198140938821544489253236823266420170684370574769574292536397650442083292295748432798166508775327592898250251949841238478412146059342879909976172700972870872892958561897614681534958312229709911736930920086329862151829026684383129124374350508411702845517713669059494159969325075428085126155124115506695100099579743494929620719467111204599221948231847458244924878106572033335087897427455783809506555927943353900951574893406411691206726465623780616063865472968342765850016544302972459625326471850974232057840479824580463273038188364616010385843363015134631963505273912704629972369509086525810911786525725346280346245345996199773754722633424687055148355419202771924118351015595945749624768796076448360822044177112916095893202194303379189402088175098571949433984799235494607006674134598263539829514836879086270315198898777161378380799132716177928468367660220671475617386698067669582374956145624929272563410551601141785242405105704015899901659912986010521461374327266022448878001661139175525352237489199685505435630354564950151511460628518683262258931240989708435986772184327187217029749826629198302217611435658887678910477858960307099538479447699602339154257900017199839449138675195423255178608239295758027862535528596619319030597719306105491090070985244398836379044113133652242094349643998891272322960938083783155675816055382471432217704141172079550797937969343850479152756749021756714836109467948246135154835178209812637661158824692986180527239730019657852195794346602826557054938360165804048620757231744807131128929122138242382838881208068530016907615771212592994044167730581614456177428587432011225674325320750048363567809624715137556400866628620655249061154500047305355178827394046272955652963397311632460105654997780617150771152933504455242468441944414481102785309368111943444408949976583540014181627760488098176248880779159619683121137343731240376623790390299762843235338474270108043107778962078201629868141965650967900126648430665240568800467122006369979011623800642161769444748192707478299484788259079157541661494768457656138117574120056342104743354621998704073326767278874198787756529074966430355967674406864489691770634081466006461800322751719425989561377601946633318755035708628273419622548040146153601387232052644154660689009825830519272881012541411098457057192582555399466511772535539744115612719394520911750396909851159538412057393812824768577627448560404069043852178853652885874048225938333067812156369906441156528565883477985766321907169118669540722342407589569876487485198200896966285582617227679759422666974799623067680307936763344480221216562464551389216274429371692131289649913706117954756004380919903014557239495773888672209936256135891279280983298337103643151949122980012133956539980218047695871063851801279144719943434966561391993810356155578036184293142602197223625980729932982563462104571370380235095883989095190852403620622835707881730318826565177015876229376511391763354684531280994113947555065649346273762390337031674061079860866154174278452529371958827035698968524864723087943187700156812444189111135460090445522035107275182412763082155050381989910256691171788555255934347537296463778986873770604845613327540094252307457219445058815539062560751130195017297208944612169535963062826254003883553661630971597784286677995117753919178485578577656674372252747692345398543520407466873053007264311962441110954542055215676060328283529103786979409393635612755345998660156913059799851525232279420872993062699377978958996928232538397220949909570949900143865939402673805819701575402760308782007865480191939088632079383599717768646678282725516208869337348172630876976293717537179886284723240293632930895640721049025475577735239995821624562504248460003793734819317263218186089627442484298919939289871475085440458812416760007449997864700512415843547536217250122127977739902670348888343150888365884835559174730303730235369739160082535100762211700244073425441763570262026112173316281754108198769257634302554679337336770585287502202391121600926263978270244087070227598791537685676888937296500461443760026242170599123963058718519467523416597208511557021201263472019746633816169536760748050255983016881928042193332687132111676167055079320138295742970559223914449693438031437279553254773129989456520771419874347377555347228168181484195813242593402213266142165130892225647148020943229529311012227226067460286039503288932719269026103954475205624632620653157330308334588105820744182315711330597805024955462896047879863902239805696683324371162087247430213317255931946180848566028536989870481123181417913982302946641329845772694289959035362621306570541103904619361826673220146888948986844369580809030699429730905874613710889272074004370758640353180451463173692597947613089597700521569928261109343265366310748999863547429075995622976581093834650550420699197018538796758988394612200630278158083121524784055854200840660130522419814384379957051030162039041890097678659237053206038610869152039522134692560369326911272024985117036277726615838297801465290310024620301841310667381392002816685072962523236003085133829326945955752746449671720048589102499754306577297628429555772012376220132573631380029982245158890409749697746313696428630690650290005534640921840499949436227215865252277396901372108036752885318495380461871054112088254076510106319015585326628231183997499566929668893519821877099474805774017023917252085630768179676210355366585171043189027188954144678283041236182766015584057387604040452119132195401016170418756062345202014476150582982403922964829208635510721566138715013955001299860190676288347473739272907107736742685658104536713326724368956222221031115545221444536301621698715189937975953480746168364354205430397906081508757933671590046449877835075166428203221755811151346962619661966489010116632793165551586469764109842841340352817202835734285694637302010580032495932386007907814423253074139909339914534993714485942486590602590360674705939783719486297230621051023272487514251311094207457339848127225500162027364439748730638499818000138928454749645206333946960452107083574020732969497972382458005110289733500340943876069690170015829041555102039789332408008302998260972618082025882246946162226982524264502111917260430146331683112003066780873916894837867385924891309222994806868975097809415512701958227725615676045103558342945543536125046519194772181951042559167425562276372908805449075332787778970808478232107644124085160876768062320826187134862901934123324834009423297190550517705077342868793767114058266670150177469636132432686054462734575187603669780933086251783596015109844421725180816427641727660308569256079819338597257006670695317657585195951634301694017167104549143949499517359609674697014409864030054919043513097698509433124384909609154722743669665522877108590591164326484569646776598026580532503418422564937507934409259633687774088827630543445085728749656949827078129961665916618321918467520909166305930139020556119196502489902742854119807612338412713198573440210690941489545078505811604823449425270734864315526574674061016764681098936233201933850797112348712751042786548152389215677328356048877650501995569663791756316287298004038344043284288629268053880137237556689932262693993936278291467872106997654245839731265308686562412063115953937624114810166372849821109008718334196927232299231184173710684763626614003231659612632816324904863828386390687249667687262420711982669879105382496876625312698605480237308149543204975440606525886916092865713235895772785599776816837177828106190113935331675301702238818914405499875852990220894102600338836090995316924690401542946966872395890897603055357374129767929228766962744442650753917465499576626845189243529867973475585580133440261458456426709233824887601200679881962751087416303632810426620137966080870785104568019301418127460438951733783899692100090146049225957860773929215199653398467462431641977328669548584017904440361061788101609664359016385880581079295166925535151578365454235356901154862341086873335447567794400542510087069838889768020197407159248010347010930988873193801759915997304527118602570335244948480392353706582586930332318213947754372329882086777698224841240990365255148078439093935272349006644093754427563906380460623181146142727147900255426507009090395433496491576692624698963042086528978973042289068921630291568853020947238644408787524803703673919364548041639565857163257190095080824968240979527455408358172334912081749342093546303886954055295321203982907947174153578269364967011029881303405697452956354086259083394584725715569079203651914913865062031036917180884595822379879342926769672217723994027587282892725149309097650083789086069457352938549145398110627088840602457396578262894221731555818504173331825639557571311193833745402803220883768472252641924366803515474163986539239598586912884150338401952601725044691349939191462139228828555241316655273801033749547950706626166309213275253547684212644427509706583919226178340530804485131875835633226080754475713449490959001986639677264073330548939624091523254429599793789043095461184916779701929219358312984252212594369386260852009795787790664930168651650004475385292443544657997423916216175095657026619970973335827189566594746407179319804324743480617828177530491291900499713404321863772495628457152319433901131028211942331153641356147748811106666534364488055144626898263370732503784769561209695186855004542592440819850584565814589459819050546565255971981620982417356315374060644491926277147074048184671281631799714253107860799163292085226284889192378079042272689967339206356636432556586428874260998236393642373119444833657070605922281103426064827556808385624968317094349022518220865974353172244941085137274189347807048523805643807013188110443240719510465363767257714384574970663191018399691642759704466896450358521145018545275491647564792734818181821735647381434366777056898414449509372122015930988124228847809346172472682253630403138108945868715782146780339482828639096409675269076441233714500192082844541019423152729278943057483467653463047156592980486443139976083783345223290121717593916203996613798339706458527729338273330982838354916948029465852918371537000478754608982610761056688215844335162278731510920223145669938280429333720790589297672379679521652876507113139841946667574231117039562534269887267824170003937633380212505634927426389931626658451421968750339506974488784287307850869831316008843301482598275239523420486344851520768838523917780067412382149204988366028362203264297881706752600181327072965946755194982525532008748063403099042862360582033762101505587981962600945259030539622674592634499899279515620797691941642643992233765213104142271000775454743536096988259481269193852191872761450237326499009086669035686977612558241801755200985858663233254977943960510898502802372369408750610949804992416728697906608044824891915766631241135765537187087728607286818363423518546906323646131000132717090858578882324014277831943596846063636356725797569175014239689492106567162252438336904827949040965427272666657820964128336220728029138980542991025101234310231755826962267360466915717887826754447457813295828781269283865584289102694058756870454956333563022137295436775742193026848576102302825675597983336926140754363798340655363300966401044538786727357516140860737330780502251295507499373816639655570310397773369635177194771870392611895023689765734272105318888875064268476665305717236964655589021711407935909939869520074671446372567353293629662406863048120321177750207339238169430590802394570660631426232508648661771565797848299537282762642991690860697187854101315588029670880219815656353368808233761579807254854645857118405439446942678784287336661175312280164352442052591439374837938921743826368968793494053298499306585547978527963789420084520293110800578326667580454863607351340075418012029797044530122207080941984767743897714524957260206458144836087961009918865786041835699544956907988711434846919665645926031163279027564943038278973792632781178005424458106223891906982619116606950809740909253044242483239921100762614519410045390076337732946996960780751570780094087187959483887870392291458382496792646870124836596596131552173660486008051861642211083374240119952858482097619711197514973177143473206624378582352171840614627226449758161489736936549073830435536059906831925586066692972028961921375642188991631752072694583008671444726988788362640136845407511068518589747092684692388274268258556629775821906355945374952794789567797463348180659328690545765178692806409458350874608241331366456278094006922675706244393226519226961851612309652141560421243051257802105064769205896324104203615354019323748984322578929732574250646164584705535313225531871594090228461543843238041844187578729342073069411931803709286038153367878117127548093667320614500312784610048434701038153190588074850130440458767963520180282554591662218641443826825476800784906683304600014023943368996353925538535030225724569918912828276627566280366954633183091221300015442872875013725330175691305224144695380235107242859207574906618682561528203296056704364213479587213519184306140502814414814574591417906809874797594259484468944588664287738121384416702686551355935099424426539453029300835363026239648333363815735236800450753290465105823345911305429848126981391910937960601443362689508408164655849246207714083103914142302935255106001381512223386276901059459960531490615697903678389170185386819211067616790249247238526992772128824413100440478957968307602883079509758954021343529871476377354212747429392045051095480977420948908110661303248511197795612230048903535729753594537757081688445617546340651533536752960220024872204226844059399142164761465937039240300338706527843664777770519516907099407880021402398178197213289851727378316832788447465593313934681879171127080805811976013514769129644588645697177666539377266893587359550398036219121040185271137373770376791549085488052016246795476826503560489575374577401842854799067870963832378956268329490654880782195989189760132113441861544849307496583668038865092741321259047409553059849125090811077723470768456866710460697824516182824336830312607299207718339407212947633966246218508411845900996445209171612821428513485210425714475298618368709450062366631625755125521029038267537544750042655185841753805893479479138545009868066963565773407529468041564301765642966094625463576591923988508081623770757691197834119970073767622438502147818608675264188400324559398136599734526883764361522724744317233467016579923337133096358756164330414579162186255414049982790311615490048945905119778563873327852179955760392795958036751065508782829367525501803647888761762928045859415929620671452038220807667033869009378587140949185642240177237179180621064911482758158375306123164560502495354962783639293694678362486771908896483689360882325909901308218336895501204221354123547261876546693230427107768855180002699280464405228220283143555888432864674681202591894089861981644281370790361883621507279148508405737033948938435269371113907403422943179157244686148430871584592881680278130747479896384991318872743929962081567318262120135273609180198207173680921617938959941202958922903874091978903387706144840184055164085103824930659773278017733491677921744763179403186526746222453476265218612645480358393145336829973018530044362094335487552803259083491912984970908646652762236361687580809199567085214840472227714022111060057205325091904231637856198266750034252135675437042642562780988127298389723103462867620395145179473166489114471802810301093850647181568189077052308977172617184203581742728871955780664152984230779927684363067731540032349076354943581162182936804276668879144798058068658500266031409825896355529189581518679347428428108921967004564785076537010432399576909430820199819122699513108767044104991328445288609918181817083942870609489536326091866305479133143614456746641456796474603672208353091975732632809174678976710602896084589574593718654587179271764891050560576891184361336865217791309341597341739241897038809795810662126726570680658712019814891664210748459628885966582716843541562751367581164983857657941111145303774910919779110497797130683915227430455915658904598672700501250709646852285891093250391264873546446678647840606295048510829224148155206276147265146985792977533289938164088223564808562800171964039662727948943774303569137588456678293847431490198621720166795889861909575021207922167203895041274867710544402998425969859083214368644219142393217827916264237228725967044522543966757473680427833758486921008927244421710169946813778371749327315704954210002124728242815639310482646833736794271198858068760930580010809944957777392299910249219160802561197644631019848991621241883536599882275559915010319791348509765925459150196357751247467587997002817336000004864536799143502247514275358913533128655279704142015899633142240154244540747467308865538363004982141679015678440710310183435414033003432828147133331905029999367635424044838591598077491946996272228309573208193161766524867490955476617244392157464164155655084312746811499961444047959868281100374641999797483616682402679855284870386269888016060298416393620531131270343199380950339259667834106232635028614061638058852495373649276228717169319337578697791323236396185617663304406463582826448277281587245285665703055080315622100326074927194871248572328218327277842788608413762243208116106317939456932678931754782814083560315286481506855463694928504187848089086973318641903193814994556795225937957868654693285104974842152554602550407189971949740265214617586630467697001665135541565858213892309190245364416552810949290618655232717342410550341054401612941246118908234637120975991238423836897611628746972286748890266021736909612626184145817422206394902245240344622402618606890467095250352350434069716304538432520876335442060158422387979083842314584063736750483987735369171378702461418348196316453288510625868501765071679916149968110581286874401035294853274571780978037308358843467719243827512446915877961217372305611274415663230378093859741449545771415927315559035221223001963008532040757466191136616388646200083393210055281697100671438238703218601936365907656144313241285168304048483654131641755968988894669151017566270237339538234689772474495896322312186856412560624604911728497261112704005026534746380562996918633885487705450460366476300742110034719808244726588869208417760177640793491865591019164982549355762659488380865510036873360179906843891757428984423516854297601189576057175235689482700888790170058818349565052249751986118937633756383660569711761192046783177632697494896380601596581414292277161904245600274066846857740720366062954650325690321009796698194749674636780579266815987343675224132829267110409601566818097534563949109913672614564961091112410217433296500680885362700750548823021496588985563594775529669161991788679525253618198651552352422056473144870303451056442706696415188954413935000898441628610080902916894893240173582733521520674781794521531163658574393416026272828294402311182531286511628955935358224888095479596420662047550896903210677957973619906307800902458285906083897391215008755878325212524956594464447049686785817244390293735123148512641215374416426845589523950568477104835770808328435854036903123207005778395436799341100590145803803419284155972212227540503618812974203917229163190849489612965773861855810310869374906599939020667350858407779011352009326522170347808698304626773172717523314407139109407989329629058352064690603042015084391327109168343681503835470010436987713178258012023960272222157102326962235755812226535474969241732881523890767400767810724263261635191093704279097135065574268296341284536276504818735222397832346041850697523121313826381215576512088495640423378882651535481200335606168898066031508173660422323270911514821220424693900748005864703233625271888314951642292454745852185528801986056992760194632628318842794620087659394302188265145048765928475053797126086701520925829530501806734322306498974858786516244868798378689757810060621295770360556387728748742498149324265849983902569434980122241806225717117136644350073507048595348767960055558743723090247790630553065393111265300746686785478177506524018635614677805957176308570331892394562060900355355433801881708478570790151527673726723234684452308974241486979963212100865840780019386169889837061489461120440414202734602349644380789339555140491306826939223764866719822496059197014775831437358813220130935010435729966983851295040734357988960628423288216368022328916477089739129751212976183872875095099935005180653986102652077093234789087551734024014858117249995058942306455759256298368054393671031582489928071277182194504487881402307137882114130747086000432007612070479056565306288884385425665039321002452451399735453615750344470730707839150317070453627112328255381974337898754641956454847595151320858196439982603636688716014136886231157107683121481101406197535983244495451807328014421732273883113321391341777125737081029728606110140896744356067995217455000120366917137624288999511262308751607262646461256935848500048688686754225750659948340617733965167596606539902445281153072276024782136220871812022461850247699411942416264865515782685145607546890057412981721766380531632621551371140479319560081218452322598601527532749883975343244863733679367923013320770762101282440374477128136755357702379528919308167149610758191953199662271139214683629900950645470627467977549818325532570917638121812453574135798611472831946481005768934015687977943559051194717007312185441854001949363187216153678304016943759212388776751384565787780400452784891794384665597323434668944385284772850253288979827563510168052523551755026127700786863363997292831620607389773342178442214398568088537721508148461588188317083678101128493746836216148599168595703493919865517042141113761338375630773461281780330721066788437104828759775496248206530617923213913506770579024370573820780091320513460960333832464059440240668478664487181990255215231307759118088003095271424760904728409227167895049413627967861236456120257213119980104626487581720553046162155389799987870004164384561383025101523440352389899833236305294686645046540888100886396228144246653447884198695762486618869004929879808712154101101521872709000471266077845436207627499737114954834972689241403316335995405646480183051463066349232128772071095468983648023050487587897768938934503604633382376351337600982128167009055905494191697034251962524610494567131574305590378056611604973619669630762324420721847275098588362451889393776962147611489967480223769266412569240059058082918850087195743900315377884849353328487184415694885971427603274696768958309187402123307358491704951486039776796735724123600967814696482457598261118032482748584865475538933797995408608051245115544076019556360757256902142929829696466314873712261536187772263221424613692855730329678995799076619470005878101874451017731999551248979778855202116343496231052788971591676765693199375386547253986121961371348279859044381454428775862976916003386232074106528373905935229706673599238738376262834514478988633441430348232460567011100808846777549131783591155360285949500084622345391127738046372135797950122973967648169136109185196548237371047787896958858696423805926805525502022503765416020630277531985766222424419591643357494629000897839045926868981075902366744806670569437155496880872695882026224934433180432467778531561983130456968953721623879476624537428543759432975848574947184246956471461510333805993171244970449927684732347266358390609665079333831320214450479008560003130971199445897841625649607408134141781542676155012907001255196659382562706841176375743254021874802571478210522162653017118229257988409812448001990078664092370460834162295974104900666814059016195128490654729715729254141179825774421373983053177376360936719098939942313155357969529121589723775578421957013129480528032404560153375594013489831274104118473582022195585625337789851989482154813293093275833911585769032003984963435656191378180352848558070384083290274433029367915337511176622790897000747188656992634790816393792947821336307284514958914636223882231204511170525254566653584095960114906814856299160357670516599540174134583436237268317361890049766202559150506199066015833654461304118560548549534978850325614575638879359149742835280623943946653201541081016501483795357942872382843606106555849288929756809941195169824878995675067368253991961667438105003142844395456859781770093272291060298741721202041571260528997750578040562287993857532569385870587834588917479536366233235526170262782997440869627493722963022297776846915141714912752292960598613380709336068108825023782262714664980997923038040155334102261918402089336405803804537885924068737680974283337282044441422887052243757124655836762861263910369405129836706936791300226143660026504271720950634804126871208221497426577311212879654198641343782417435726082210998651742927128040364428361126814490527782186838841951989218715103587108640161157752153592880567834960123474169832174820015044140664689298245621084519554676376154784965892502592969803577200053018196489740031656547615760075547736037342053409540403494602641836067257175391817487930636413528807003013503947983585674780447054024869822633081940792360860665413827609941430180506976878134324084520896478114989072308443718541907654610889669443752145461606525011716440244329686560546823227965292283601112332934301810221879033392227734910712149700143763835335958004904703295172378466612945807710500879398101502222530551699090655706627955328545073137603021897936472370585703150116394424871282936747549308856543627658448891180524423066902233750722814810945289580704106075490311009395509580848004946717809066056915959218150358316128450547181134206483450254151690162546744633135296274347367596049175871722526371500480900123504049554139995678938500232616331310775572080417831602829353882513555844439471587246698972016657748621903130383136128717622800403159382039110417689326117017470872317033649172251069588051388018068688076666117648175545102675508559716792201652150587125092700818064974558453584395117992717295247446139280385793292671307068957735397650517496420681506748706460557352403585648181669503983950002308043382082574578704013861512170080045060321348892654870770546585108988916366888474080309174758116966902565306964266366918154722962053955979150223656007311977288751593612836132283230779442162867329497663998025331042574401955317295681867652956075393446862276168480424669017053765565345217618413193669889383351375585017439493009626545002850169948391991971461334076404095437933896350429438106537389644150389257961402184349285724462924797168319220694229603660062950849929377382159025656838758942221722655252247160640248354196966165458299963061801344588331097393327138587184809184018157150919705728227173350793412471724002152121240099206877122798763646856050665469554184114410424968120780237493021910815701935513311366880719486564902708074648656555431404469307745510980907440424594528333006182669510882187272092419056992528335574506904690890667672752119603750856117764385590776803438643477596153717036729279735900531309579949894293809512822567546638541450204095201517677597511237003853119219702968400775995892938846768805893836508614165970465723713954969191483867456100820602975453153011949917323280021467683423233838194806155841571076422418263328780214579357856221285586984598630097236599359238661874853732685690607646920099635194866420701746571429776226164479243271444009154340185954441023824239366877437082034875594741960114276038948844315984446015350081979962183087725507823811803957030014270422287705589329592055601782166580086345739430907144958304128045846992880810647613095757313484952391298555910493832442996440277884321231991166841356177638071938235812187978126622449080818029642873961023154370954470145082738959288950642497697238771838891283554695611106633518935171471939999866583359839833954761287396314154786304050718357299195047936684672797967883337118643969193971025716459645493280309539870552016104875514030440592212758479250185713370834008171122359533853393778791791141035020055090829286008986182209912343711762921273635929396185331728977815139020189332417623306691199553415445103097265723995191459249581952741060305438245580205605403469477804773926682009058392729696137737752356071782462163252214958222277935915164954316268711189963683090636866387370915620773980884702046692048230710064867531853238653509391506866845754154385287284043308431902712737477913060365625303242890070997037233588790408258133588934250381454456625248652706223002235123980229053536796250911731134972757674345296009698748346708054543063298703259570637626917244713680568752313269602792367913849630597610846722126295869659624973187069493218803348724479577287002650815089288448227307390594064327585335807291714499443200727629483233761586942280694895136906993763875650960719985355263146129951128423449589671142089339893637566623993538917943080973283677194671848665141770174744297418102425590418468757100710825413057697336190631391939218236364945043598373565866065355597505438097814783434938366002092919970419360451703229200092533497235831293852144114976953611816080578746061697934376847446774584834707983640615907670618528468809768968922592769536888597023890516323694037938420475576203073176885892747364528516453769402757397623606799057324116845551336394350298171978170073560215879363225158952905815599349100619450511516838911475803353275974487653865445128185230771057204779426878011385102828861839051610160693385711273249127752212825662061032194041963077855282011308626645555998245621421763479784884510861933468380993603417030999651629362039731581898391494191957199392263053736646565252291396425522080335391813324187476582012437666626102798071866198787064264969993310805498642767695822269974691831676600947960524165326913979442908132161257928107978130226458580066763010334490806720992700734268314182597773859367917350962620108442701415694411411828345922889306544913345822104186490381081032104100779675337419053430528542189501983602116759200518704337655519175170615333263902998288713223549730975333641776002011468027980615102007342321852137134216848103605843336438864096963756831662546716617375525793497928704765766768379716928000732314673700182164678497795424023082499353007929363427894466748368567820840129378784882977950289140305414115097577441878593225239840702164107592089577116439860128259708830010696698555822096844546819961957250641292193242368060661817580009943699314251739205330155281633032624595220705780606529439985314181095342859950067822091912699659792302524135288829312757362996792793781979321958705436397394398216024319550449832946348815425183108109521782661030954578079173883716914078457630925381373592144978832258985098899144750455686169000325164726754933708490412712959524225701022939414893160816986354190067508584536245337892071932833192502607462029338835199079783814589077671887257978326776037814302388628205457303672012064664914383114926818363604637945942373190284507580615932474989526243211194350763373090531297928840677237478655815732157949697187820988532992726419750778567322356011783500797692723012882308721059629089273415054028590158873404079924905356691167908511727919925977834591660065510188336586768471214631480352949036746681206003077406268405526484247450470873456754584599005027920424703156878800123576833696988830398933911770124522917057934983122658244888125390547529490197659710397088293493680754661942049754296363286395788164232981074540104556431340323748528024666038959037228788828179351894135401068147789270463059684089365087229858803894299728490536861218735749237118021543266099292402739529054860506914363929001991861995113267868214242198247483959059763774004843014588543348876178937609522579779242077491371319418850095905620857829751839529508572920581800228978921285255077262353569617544733449216886286778932871431193832497296289773057570939241262008670231939935546126392939553905071052335575044259926096055898913108456783419060005107723896338917558137817180529908162777993072087901237340638128903807226709593214773465169349929354255959154266476499362196507794401576419181880580089580389549460461870978183579653339416241588431743433713234833042341325144024373809761686779953772057136841999025815900439322746167373202367713850921626337077245656302761161680544704965882638789241199673460482960018718015278863544050772286084430711048147247320768095496095352663100016832301893336523900947625473791966336641576015560402388149219023971317854420803539507578892926131926176155419587508268274022077419338970680827177650467853232138123077747912090816413246011699846268229557373468957438317718056731843031728414929812671672556511334911955183040574424267688156801294012965602790113672417578015232837902909036306404969578673765954043266464883245890483641868440174708435098085213436717800555727834084474530858956816400081922842588446219004600119226960491384161495134108119960971328826772215074913973857761414743175881026383842535150999750613134869089284758999334749051138438397638045237715182205704860211871855465993769573035701740443478544655399800420138061079368963766361005708958153102922300498729877449592848822932210168053864862396520299460476538270208155999610059498199686317389700415930227301974456784495041798481927693773807861713479380238128252171676534893530452984818889309484094441585132020138257795316904795438208902718844787786809477717788844846696978751393548586058127112549038044737715342410709985701728487886850393756076582852558773349331769699023255110674485925614484872113849677630607994102833139770974573410428920664384394311705574056754576568414354075049451808189758760276968519597344006199279792768333998362145532065522236790743838886843890726829767035249563327498161642392099120973943383403783833072461331806750032628355958136324184630824138985227435367959294472235541790217597349062737527080124006985134797437780089230576717243857996445155327331586454114187478560752374178580141218219572047617997897334157534096154368120977835819579153187292488458465233662101913502906929386816011227444872146822672948542294322396833686719118646399692863104526855156278806808470927006664474871678094126921452008032114795434669095488754291003322374906063835339664652971456416463201618005123719158822604882117074657792606308515279712943447091976696535760896136947693374716842734101527855820224117297588460453762113667662334116175752448360685191295038501121789118386359925402037035066183169634617639834662266713955485792312602520877032647614306494031405881770220374383333541807070201632717801102933284599350546654739491305191479847419097212194818423008838935852751252608407636919900317542059195406685605608916976576156460112264760393191730142865388483868876592576956759564839371361074439218194681068689557493917562013718038943632161769865790315539724063186506879381807525293198717817910909397927090331253682238208842287117683583288860744354392185063760025808495881050522360595982071587432663368061475532182672885874344894910841656051437382989304738973816553061939278175784978529091105867252276648474635042812799969777427116410922782644402956254844429831900311244272165790401118073886053230485413657438129018515529139780274125257010145610174892946082024218705388783648689902328178924175803840248216032947123608704637121973803090628049924533006929344559627702212275535246622627515977206689806477533482459611297838385035881201564442396256611510405716393890649765916130773835026980025333603410859745039846834947184545354550711927762524508826119155800292000276600975045491476315384271072733395918028116658296213682004035640666569624187923884296277072395662112571764205503420774770503154347754270214839839114421164033430774198549418582140872495095675047570837014247556219808575952085656160031110613560508707368560841911472989309576800374040788572747725325563367425628936437734318097628040595101735381859264288252337170884721910409214466077879297575974837233135288207621500836067110323059652301468143208953172127535928619904639993235444329055072152308710002619430222962626104900357774070774150579892158337380847766767494347534633374524954082273406001430591217544201078285678838702888865023991224179664780097919490221497894865881723601580967630394374616946533640805652939944312815952238514912365081708263727748367947818024122941126775304435933382783268880737519553156853767098525098808767508678481252040025565514956700183190441846442779292365915825146460895817361761906902582759658527343111791523857957711332031816591978136718265105068805184005587803372016932222361738229242639635444444079199374814848273214520875712868405158210811731740495192177283746370465401077845025451127246819302651708602932653079629790725743835490025245104645774986232090952292290403420422053992186354911519254942529144089391801927981124890096845026894161777188959652934426768509949003183034247489151574287785338817091453310933862588504673848072592566767487044882779021156835857643286001562829106691479903050888468007105175189481277535388557168105527867463781100338935297081677615289818790508687312608146446526812614916310054181948538735828254637669772998685761080875137558615467863724129818620795614980988987439993327945844110530981586648126506183588864130511792747247967698677497154857797729371548323219526774426634538270824144764832632166756996194092253176732338208488056005628576594458355992161515528427755345828678659839944951043175339361429850756715262175919402977997561867509830239564429870235556112577017541221697363791274986948733803812082933109069001029057155479035938773087589470169440898713306237520129142866690046637919115324046114969009912324411398020114704837921338518843862747364485531246292901963344067837804717638832359855100018405327703546666451127380783331583918781380073074117466126953570658246872943680153738023816801442028733880013928883469430439255350798791453088136097567197088415299161597326820140203780275369487080107897689832560757195336322113163954593499961428286300016337993776513546637282241261228177234369451410435110924714808045802132783194023396415269119809580641041741485887567097123929870031935314848116667636866364488171682009339206242972604223773214351821330999370153537201050113792569769981262744979506473833000479811594893808138263342901970545742429539084027236759062261260576370100993381295988458411441998743125796856062709212458501076630175322995815149465459863547588153480684286389043840234526752423335683497657606524767630328020808873348123977632768617698167503585800878667477003453985198256361625935120035751002508444935956473669353787199044328742664283281003374197095209434064150973796559963963246388678906489683758763905580398253753429810444586805703447312705320808967985588891263178999127321841896199771563746196174973684561403222961605419577536504700069790665819956356577106414452120587443116972396048000902644475929495765860782986193900488351646623848298227347479924246946209200166487384016549169384255306240412553715577666041329494612303904631484260511439255490744541874067427781988035839955846105111664240655553629262402746198263502547297065530231219758574908575108054483413784764411091949033719971536434487589671761846652377194874397460846344733957765700146475274936720929944889211302797810309546392710090531696136400704855717398209209373724834236140703470335358394395576694348260882102124401828633221554817633767743475021840695269574339729217053007302279583547972518158639190867776364963498585184593375185316791782724644496846112968553462570113891660943124414237202683090939989565390156487290314241612108072092095911832688871471522943554398408485294209909322711742376931550569057846470211399278575786359899526308694960643928922783943629602607416442404816030836843428660859984640016962921074797568790306229929502495640562804917835259262264602891210482531118888541154983621791201181638752692229126657558243253508977804078020588414668226982204621256429702318776788262971458993212237991170560106158046104546742441080445755201202110181632751524221676210721199805081282786072722588456093959875689949151043052325945046987736303673796780098220521893236173352983316143309747931225230678776841103337121837802622997200070870949198009225201637739732910716194681887151221799743164796117725327520113652422092284665382290951581579181029490162789418036865889400349242230269007803926727156193677854235038031988815974754613682835873201174625550819851873812291897806492270835130960484737041735415664294513910524164324925145299865063568822915306919751988830497428259109984147440137014455393691238321836984172692411224399153811864867770174636316065877229206455839732655588570839755573706626865773549369612631609370803484340116196568107351952249535786670195421487491882931794873418672098988143870588337535388575175825338306273031918694993209783057352678773025961437354475238489826551736114737316602242474797969094426776912767900923663908230319705999550162063776914369222182386220449468048341418898852478456205348988474930562928064212779553079033380736035105340343286939097269984072567030174232922618707745281229639778896822062500602377681760265556519830073756226194933927483639408089277925760527240161099409738844099190832663751907544183497459365757098322504852697925769316129175422152444345187757053399126893190473803503394184406074786653784839757649583266983049615215928092603293562066998637452891940948280483993631611100522501525139452086526711394551375134420797173297221428960097489266032490682409178103636976902699357004695260383323259104821148002750762979619346273629640547576189262876186897195734801535522355308956796953172337890766522761124661475636529401572076549576099423385493053688196403801832389889895899483784399131834758546344665045539728781012224821770415830569217829372841837166250189276762874151794358701631689678257563644450120949723449347440923603151727973569497528559966267103181978498050674350830076330723850560110252985718122258892954043712842348317153339691635103287478870666914449745532618256928763561579709675222839311149894447862400967858702617992371680386206598035725597806645572532349897601004571167312024736365153850670576901785360343829274741271685073750409049868017564788515081264062504588003930245614913769085230789718490495832150641079141413725018928807518498554075545549432069686946784207120893359065759421135207755527419524105338432818776948357178716090289135745603886940548242592919380811025295345284319834568755972147891127690889564331987941964536982765532483741201983243242941763618590039275063620332830331305921127965965828176783949149079677728795080198321127302477343836803137345834596456063578651907856208051646304111052778841891547250279795706500240247065152495197093320737924218248137275054570800283766000421995858155036668693547685479133348612066159079439675448041254473089723226620976993648084621900692141300993443365947077896714873568258319710940146277837738813136909191201202348712852744302375323853963297547820426358389627782301482398730977444922818373098512159066957637118815776194412563927993499871070824391773329462967499864510518904498683379791143791982549740936466414618567478061643239848100411491094957435436970235206518181952618058602727758880867513878921672151423219878360168496483258280157333341319015294570889769045745649852272622037258667352636430070869557279957735300498880139905329176705973957903235704821643681395019677030015103847045447444140724376818517862595701068308140457616537513858555391986361498680883820945227520529196809899255937008312141424606387735963053027658504973219934939291716856342744049485760688168501086221501875355193464015990741406682455175628546011921285153726243950358761364952164314111895954075584834739615886472167246312846201028525864377943728780913927035637573022568722551671702784302190974965995634009786656332325601228558290500378084174904846804711138498647239159297454289171804468112221863827802978773932452257843018826642753067699404391920426258298254237812726248011905219500383173646367437392378693506123921782919510317501189732361653771171303972692352916980166679647135907990707324953351871722555519500227720924685047166891328543272187870215564954122431937501286115700546800185168571589955451883305343620808583281141501296331314506405048910757822192664338510478629058648989426957503044750247450847203913529178962860480794314442075344145713414246171844497201182560653794989356164968220837929723334243536624650497254409400822738526727795350400022652495658745998110039479420180582542227135511634075537842986517692339540230872506012842792606040423920352822407293911247852878799049312435711420200060935294097680637139029308857352114164072917300274135799205238373364625032383914308632445368097850542375966363182514284194531086583101712951390659988539720620957881537685259498215812200093527475438919715413171645546341238948459229368516389365116781138539401304960104986469202872093827596662330695260042582605765060368979159888327167284321773521268459627397339396105502265265680186654999209195800562904056096069816383979160569209130673621579361844607053471776789904444254666231325946432015038942526043510573905360085019351619535734478958808502915604350753343613443991789920082905354655504905736201391104003783794854156476937628444293882557799208318927212770344065584621799913564281505069147559163623435399547110119634183359898861719766706470765326861554581404925128398433945444535006784765165057110705346381161950567740508847337100483681229088771947986510230079097308981200148092516067098751881645929762050601395740197993597291019060028068436629432150930232582188063476641863980779188203232805621448727190474839000815669310088120952548217535466050219588191160521327086830697636966851884753441997826325013743158927031134100694357432058462719861427677610182578248355569625447904237541197864641290638499350481126679297378892276321169160826911498411384934738634338189705569205522288764148313944351021420716107591043938129134424018222219034854604197639839749458128222075793656705497489294677119949369546217478688016509009383577973633063077139485028905911225784822011293173494493385967510405416166050948912227428456794101197989177145925241211461378145470087622096151467754701584423591658825659667999668977591978822870106958011430804378762661849051340809901934740297115947070351949012710807686449372418047772563047476401841923094443375407935690232190115085415424370866498367262738569085006319769392419649906421137514905101467483852045128126554884758308358035658595313576665805709571861926602174967382992804700206292781485955945802004021164326175972276188231233056948376129524535622968548635001146868138089270564697431097066104729431871354280450325191001764322526182789830946218998706955010356500864613318020957230051291029054594936725813206800291077519978204244263355424866968074233141956910540083528779510249090129461167624030157531007280436003184163817108013247030014427597403255641239001830463047390276794628123906449594376029969352851299725664543330409325390548399491927163569855305524716946040935411713676167448080022274116158904251728997202034500343377429218305800926208440920066322240091076148081554862503602579992169498740839276168161118884043458032944402731110990906877863796192071342559177042869965767880944134100067516459099602874741746856445305213508242846316581011060994586847036464652265266920402766463839702271829745410327465003451281215568930891656912064411894742314675522301918206573703897305625003738444495633263679791955487196604540184592401224837409614616322826828963078380155046928853236179268642196293269329805196034413480031125540707199133714317911518730915915869485796063368329018097636454362278634612821757593378330961488802247566048972300792728943968546549569457246352625469325488389785816429107638381678450533776570032098689037872635754080973156772444898092079296503166826874906549936982311162203592463644841879579336924663985445054448806229158332477887542567293051886164681727955778979133742077765497155890831159381462304935846840549784895417383043730098486220157553010287724100557392152337880590587118161561639551808277414899680495681738675972660509574559884156468268154997279936471707883572124598694879595993038534989448797901132204465103034996855463349136373159597388072716669101608986421191359572602329992482617223186173875567620795143837098426322737678721196923924507894912510827282164562425440339386741221521168012707261205820214524442422218011860323578361201181290774636896295548674994583446562663986882663602623125063922514630059027428798179512328853455531150084563517206023567399788874180411945752725901780571394317206258958718507739625762074331614775464606630489216451903603338414323187777221755591198924453754405639019551924880422273367872839155719483804323345268987167127690537559528896721188169850684295055200071676960790624239041857927112468878167309929371259916023946600437694490701461217045979702339889935011875380794984469579303852121865127767711132181156869915806827871039097904161293849100308470937624218635015932966630993663385158006535347367631575797480103497622159255081541080935242735447304902031048208158371271987864959726034001350625672708414331096272758879992217216890378775021880883500953067876653232374070508302194063101091061941964321580200056758111996821045351662632075782872278388517606411091686749926237173994686045483776408918548432278271944161010642593442655131417345489155531150890880980762940995259869390504345354157437109211837652129910356006680944621333085010893931216125880864289458844244115650142452364024214495269397305934645495113446602659875193685325897739437016271406382722228863898001926121011478959044739652359892480318986079160504147169261968977612697103160274834487587662378445710961988681864443800517417634440004457192703132577450875497258443653805929941992385577087178333474516890010755279635153430881985824217964995458167698474247040615703771456860928912122490538632262550481114657808315192344130571265213574118707830697311511366904599482883684821370487928091273520339524632015916594706335624569690148120487672183876810088383346872286342709553161154087127112077824320497341653912029331207603483801681829520565648927685986081774345643627585551618003545232709764794427310799254393893508135782247617092304443681048221549759395512904482224197890154053631372254929785702564731160323661470260833583645007180329466019908145750653318213866495090895699023039367207348411274914027801429567116675454575077622434143062031919992252802343556382402475244357859078130557867426890707455083829696578160757637767971474910153318008607486118245156266275293850756660982710372668665238105801176431621452616582772016718255068993665677573888593142106769720471265597957324975037372772356528393835037892695472733454646627796390464356654999908154332973532992154147049530128111995802430477376625839082235249494636685958842129514935305430969980027375199352145888611891396487000337652451220774922585662360861060836384351089746997725459467548709969443699810288916300394740530473670911081821346775542978134354121828512711727059189094839721598698710534671153445536474320648435253633804439671355204725225564439354081470588068031726532642549459877138087787591327665025494977710104781504950148209044988039276728412659516781320429351598845993620632740019809289518968370483245345249137688516636615627284378164975647603167214990770045798384274197889958064259039105887922168020058509406034488092291558530844647580798048014046839796657126983968513093701305971199372934453419284478277504000532321250502744977021818179193982839783604147995790663139863753449597452305007064148177171329069154270020153302852084075682501864996195845741466341387945268463191134540134832653392699455642533944664460885407415821765717120633284514080095494716674058561841955398752977078016438838579524302725373332915075348789020636216639643628209588242470622338686225637044125579402653171124058457351670752921275859661232929900906670340920158639208022731243669541598126700431725441536538448592683013278736932371267270930447139232410422208110131453144507169896874458978655987216723002864394515092704317837426825953878530076530791380184979832510741461492090263243292328012156888727679967374365064932210676038802720123355193896678113521671883584496999499880682408378134534549023532137402507937380572321223049091530249974776750831799023079374333742783952441533246713508069839222155280399389325114486824315785325693340881529029809030867374553587442496910646285176015179389240392260683387403182066465995770516655881444170442967508869612172913883823474987462994289435323053468671508552709439647772636247047203613117135069731048068258531572980721160245585836366324443854123086177051064693326197225284464993733306396806152717718710564080876248111350679461072215753266620844607920202833009244830809150806312647232653691284871699026414559953762249198067609753411550271963783323962142053412866960482973406322261112058743748145076268159727258894549176378243373994372505533712222971441222962031248927381395296183148041896203876889086949952802336382381097825257534698385661506676182862858398437821760084480820911359484693642591098313995699148362191950726299664928642670979961881838943535233290989444084904798913115086136498074930417054116935796536501799750504815831246884419598853870548238238483428704191797922091234599015578396063676020787906751699936614082234279648748611946391428664990339558891928095765340864336741231295199760368059275635225143019327401282109941165716569454126726558077148326505917974796265586541243218371013193130721734110732812383155687300816180037196432684350787591767046043890191069909303931557978943512110502970236022795051820833054737907824094121446798717162823191589990365575486861277175611891716621893475294361420531500891932587050186879762003499760910394451646984278102236903104199155120181795956904271371202945551331713787445974337869621677587491727393044300403631232882309088451134033856322991432140895699883673663377380360017132314934252868640948319049469036489123626717023024445123790968716483657093912871707245050671503915490801047648054007343536596924419288572958307452811884705534298020245043856249885894855856299365161024086350012247172319298186204569062951369643856364163532365713668626907022962989770434141722738366875496390623772491427439209723208213486701841181561223465533170914067133265279229311253458988771969570917037312514330246958055292465343193063793521672663839428541748526571863377796606175337389373994497238933321038637129014520881355713140919568480300244004629553498418306030581533948580824105558745363865079266034543727391944486940472554917432019671787348116064647971380430372287020506363404681197111637941357762039326757704460822512407718609446308548655282921090046473668306253332531838044152571521777578254244541272878871435389182757883736466679935310222334558408299626169546227671931965598001696630746123040251598080583144476739028166826297579009520888629108417161036805845146134907753049875037585899574826229857542108190085636156066727553113519181004667779435935628946021489924703900256932463080473343885289570187365504845562577913520474374240638814098935211039033130921286231558632284904549851420583036567783985393989828793486071684829103402579504441986516038987863341005826083455367781942375537769133929761348786612408375707646000370492941971495775179482612689341588802446917740406259744756145193384274331231700973502832851780330378587520584314661178594214891805994927222359094099035806989290129150656398026629175390952753322072595810267146545947632530436208273429544112278608997116836110636076337702360994041693272074758580230861794558757369961169142460437686920862294562659629750121018647786847333756158352818836978326331592212420627295996913894790990965364804197512079228952480903340791675836002377782891324932718939490631835432025963430779183314597945724455279987125572137604229634398182531293932491981598988295164953193636445232829204264656424962627193547382338053346654506794982772352909962230781670854523768518468306220395293497805731908929974557739650545153813179538955414370543564920048024522209414490316263473662281124728215313668847946585903466932315270958989292185608262644622178728742320927440441340160143698762616901623207823466582262634461140230303439278529478176648956291711667057046283402379638867606306445379374533312406710752733023321141470561169018052454645787636232112830046396870787414558161739482767523726442079182306680237329016535208028310532554590018181388540525154914660810646238459703511704074588088099947064220519187370831632209357260127321817769388757937237130452199595753166256542654150313032254045297432488676250543565656496027347012999055128138285057374365259769130494812730643536463698806313337523952087402342696373689761533927268944624273374959410002255707272969153857518228180448707550184341048433886229065068825148585698929294779778549070129231709230170280575496430115308422449379610377890793280995536417303121223862260559190323968684159646800571899235325188806573483300444456278231001416518162818443941150162901438181737824007662721072501910217027547692556716860031655361815851947451111114992168994560493219182471711725022531682245906282643030432035800312595800921731971906212860941443318490472889945200268804777569592520142354750588694711572506527290095015233316146806600924819943658193079878030839238558268914383123754205981914495546664513642727515595774807179677411632699231602398694312034231165398385806825887508490013349871111137042653936986287898462347454533262980391984350586193263128633455509662568358968821387438985636326561238997468195243307738462737574431660540622336152268846944792204150648490766075235532821215478838194962005489208843714599240015052003860213603935429889565086760754882403004069997728230966570200088770784331456219878571899562089750427260444131284144240833416323025759137627589246501950077991802197154465747577188759992288991841477179227080687983157785415235878510068830456918536199741293839515160629116645140549082954258124710969035185130332459238207154419627569578575003922277825524912913732191385573786577164526713087835605955486007459759671213239276464641344064104667707662483828738894298735052778330855782528142842262376101389747677329223543821066961112375598408929708178364535281628107445012275992414666944348785839962473080278902185535676941581521293964483190126774009092532591387988015303387331908448484325721137290895436401772623459494395674300600043866347509319245221662618048087616820762712449344689470854053153730903974647131095901735540562773510790030393102520429368066769313272828381591929522716569924641257854374579743563263040499215276985422405650237738435959851001919718069369933814606176639021635477088626767789113789525165937683605116398186680721253939812092886080525212203548624799339910184276990426279308016894545077636084272607764416105831089807265474228128874487745499326428917853104577731226712041133365836672738437803662701649557648256760239588092241107409377553396527405004931653196061679910103715141794807933570859083625157754175868990700974679335004648448737645673237807340970461835322517588105649133168267493324566391708470931792948780967038391951407978152022510991862422216359979752537015249464500028916530291120510468479952530671891742745936635766124220672656303704847697583171075063331346132359635282025427613660064295258354009208229766287481257794648650461096620418347108211693517391986404750203345720752054815911078868689425218628719518793764633938144553848083364142283034998300852847332191545183767329037588580690420324057614534461708960322385206557588710928502398178518184670684893536759274356890121189568521399618790747175296911011377548815203685114088006806038319444859850333526855775674822922542316389626383166262459037400476593321909984544724463175551277133221433236114255013876797699073794224736642333545619687505781045623290751525631972225324335406391951288684474203051580919275991515597280615205367576074896760204621476904059512217161016836760610859975672637124729850763015864715912716074769579124981506670616285698222773375231451269233209800642220595796484652288626511017308683890733990805009776102388212213740636628414692245130762486824471504900699123543168684859538256906045922470114439801520160995364623042872845661732402614445117884317415483412825666783520453052954116453707956330535024583160563684444737632476540206405327205082246848318863939963662937084305066815167260880707112279364619391346365233232800523912166785722063055906270043687221849153091704923170254469961623807654980371250502162831467941335453383797713151911995713464648910243975306056769706712535131832658227238411091670847247556152198986346983136031888291953556076825909872500442742075493593218316612705145885357631339144177422456856482637273296161983884136267031740276724807633028852776441567409770967041151164078872127561413615623840863257333759473406782022374195467086151674538358922057599365045785852288070433266246934943814839684454234984917617301332702043890266229257951628661700281881646612236780304606120124237164931719849481558727539110096506863685240621887388159581391655613914943154033285848790904681413850870048250761751124471754706668656766582291767497338300109432609833938452632708075455808262954276746904749473232748475887934487380718269518411512595131045107774837885691369953290756131190215997250808389912624075074317257905453586496151970056585664840661916353902198480001515220543999332774811590421321829435335743679857533528769738544233979695715437942705082837933855284583788619203104785591796590441140691066104299479121936415919371809854264293926447939355217819018907124283952227169767280472134859217437997503804736371201341123215339188966785385901121586108283402707885750539816785507153711905272436245828873397013858284591167772830540514372131519895122981843633022172972464577181415822666571106741174302761012305722878323910859076036653556236384196911197209922264433482253846418745105285721741257894738128656039156943708701495758136301978559454524953306507028285950308863538758455402316037865648103885816511299958123261123579299796966864737319265834033193362760500418580395198660127273719239846067903397498168259434208535327405000043314237751781417900333452695972958562322912280236983294571386017061983688630920359010741679175145313486648866766170402448421251846480885162346113270638321766758016869904111584323989768557049890030668023813516701435338678579492008599614709599600759538736638815703192319924765877808820531815784292279019135338419145302706487852125584741563224691267654425623896638595596394036469893498051429623670219373685722102646966491722763704463170712261180576085298206396090497651654222574734708100419391403165970395418864368441348424081455697981076350408902870500410013681618423784366377745771437885602777454288510091201885011054311803427101150597173195986752800695777348299110604888217674363703140136105239709787895050532155080308938757809347291895889437483549389477465802231577737174695654014203373750175348681652789720979985462446927789189313221587837535731856516527244692284217020950438389959783109050345535593565571178656125756388908898750345092840885036693085201783197186482973312472086903262108148685732121815395688940900586638381294535235648926392440596961659221200207051457013335759728056385084582783845919525573454072724796931918666863113315763571635281780292520537614591657447701094880932598291671759008418746835235468084281613568172748933450361938668279325548041297629095575214852855458078715248041579566545595928280313968960026293882871960150896885330722101466296079990334602453689300128922008919070695011656500412868230705817006889401826449351549725710433397991761658623694677686417125119017294018274481780062169504218782083386293406015584357135732488925349638095516519740304136470559723280707008841276789094806778821574532923561663904419591446724307663243482761050044446731406413323428178717515007343895445162181311055306364818632445609601612123757643734602997282428757772514334924947435679835130482720023343304201065784888062248705342697164835001083004333062640479832641762203557702870451404396355927769124023415071242105484269996963681206277704174417026707461509217112209087144909729870077886275220983267577478666682307485065053668027315320478732316298483709761836494181815835479495769682793276850037455373921410090164177944526017905056559252114626339368390512302717464778742881318768816576115784805490150029000653234369402718043681933232730478540763853592993212939815243099681486538516295214975074203968022308431496849433836802337276268211590138816143767350232736384369449533060058998410919081396288545943817070168064491628359629031815430737754013859075794796296095924095481733217630157204917223217817429665363135820554784758217919850409111535188244701205160934266406552860576423158622638569489062153958408857295859477340635905484080545263703039030466175639847630319659374220250816725286130146318304112205151218075401679530073297803203877708715252407821437121773551226789020650415362548640307482976591453471145440316701051285724118920248567091436211506582597976657502944360737226576966900505707374779418803010528458370102183845608731482937029856304360708919253804714669899792745788217319230658282992667136765366656185177478485678829555126864424492389051381396845245623516369469884568200616289298133561395135711041265127546276152941311607192595878222996186121089752360032039778210598698882401526727342148657212890805533156249950937347661932099199787564053867121801952066001449490650893401890102890442139568832738389920088493240499892382621995682292434052607008767384718370320420686076871767431933904202469067379370225227788958359428321824651601370539724219456030782926318914400063829443498447225034564728570459764013541505133007864902859777540781857690223882759228206760012317817074317415136330349979247910047455926751599077640618470224295235387418035184716648907909265410340329447446237503196804077284269673076393615942110407029646428218786568099379869674653175212077880062473473580868473475201435227779513968810218633128837951916424852676931552391504326376191447204719687889920785100041382994410647636155168386825549547987060243980609139688836636879122094102900935625834289894125676975118218031558516426771641851432643261635189079598257089485929017692597457753684356342962483443044202462628144493820789413776219123987346435675904885242691283496362252662701895105692241124109597223014710412887023923886360846558110560981008363525786895795532015139952676771002621398076046989279272785393075790878163167695487804479906745370555809230904645939410390576963345167386468567349675695695843865078290802666592383428186526532560049409243189047185518544320876103008525324509550059003823109833821776843296138860439713536105381958865925751754118426542475449831663009271267107748366172123673412762013819054082641390145348172695997374783544704424528302425718579313403046403457582893662919269507195221901368516236037202523508980296900364399525486713020980437660133502982564556341871354874088257487663208754536279686486450625415124443201071293274234050681730620620952071486640330349914313003535127911685590938333173700431646752033053968472797904859570987815079633122977086753833607197598322850248632567527848449683739347684306941286190588404405589967218107092722161314151244397617701771362295841588420926465222969749802699609910437911733307256584066933830857719158700436458957124420317944070028030390595631964696069147754752689379447089857330211859218018411596550262039529061231774903103293219700324444850563091149667579588949676039380730424606462103716119944992349116932112058310534782040977759912265203681900036631996913166327222280802227577944084086940821044432029963344629450054631940084687068975653682711431906112014404413765473842446843474279094343657724124258992527198569855508275821131906200414845025555181682692619795686478381911213213432131916965537394161917971913299197134500747948722832709917905685216057226240866530907693659444240980225464837676173708950259223383966398365413597863189242508352391159289178573222369964759108805433938072014118015338672715989275707732030315667539322595134592904924191832789965126264076099602038452105680994501719757520796487515824613096056540669156254354671846655772171736637046204985922926961819309437468601089291291800237830740584498380278764399115743525992896545884465726221002879349895058925419239344698689715862410139285612566326502082649178003250758155405164020252492877340163569904120800694307597315401995029034888088991424820371324680044899592075524373420874842139484813978112306648951370503545161406431657903236606834224935650592216031444679202142672148537414459190978223956596290866825071946561250467892044526661878851107918114062970185220311114588708532942022864025019580174385843173190176236779383784952757144663799852469181044041064918796131535332862506193478188814635937323179920175682717441164095425160567992360599003377348268462789313261113726974241030180899449025849878256158984033601439051325443480582942001886340589007293706306168913369462163167194758566528715846494917525790062786166508576468178241807561841682142459960016307499733344287604490628566945785970850632278578420541790940929946142175174085990339620026104555693929000899324987308057552291649510808381477735150391557992453952648359168984624455230848106321414501827107308116371741309859195785471857101940211380770447998348729500492911997487990806735147582573172365303891260832914245164035934016954851643597782571124686306466319350970491883323310447318609836580084061818342560798226372704232406244529992264507840138154003261280657162834238509634372087045013009155106843293263267197397148029467806077370544001152337567246601312099215524337783266869372912946279442768915589347204600238782911566901080116692501175542578303591842867176877103656494406014667589559056579536391662127630989169348691489797185946184575112406318259615227149443364901202369484144477418151553329927272401680947903077734662408182312828922422908306412248653037953802847357900568551507748207736841423386708665011930696744014031453862840286275505999290655139643395933964481059914241959895180533246598073059747818050793956827390637768814151304508363757175113838284052587975122679636928769510543766678994740066182358062726093986164194954717912052250624948164722784138620746509952298101188050486999807187209175013921936073230017279185470172921838766226927073845223262001015821353176561788310126317906767983566248879050310720912283529891094602925812604892142800543452077869172835816845330424592882746859665588997031106513805066359745737921268428277968545546656023326907778144965322729678313833869143120286776178298669255570897962023485954361827703899688863238783098902689765779763950242354749734046472110103693049878043080306159156115420072091718544068980470686315349215330877762007404760089205040477320258486911877173932071010200785160326298261044210036429909201235641641838002754325520223392232576259459221711844598391221039533086959419464989930213697313207739676256018452515261314005733986818712019757160845162643400197878533448876182347740842182573624860020591930302775563863713791984191508416684838075576618588495839116020964799107928517943751097709345097680447076691373490574921885575375330654585842849742592887930932115081094496246976351207979986922570644658541926906146727762113528175748117424613976193876394107221051130399896475289020978787546616440440616617003675751956294120506894047611958975520672581465692822235717164635049861868157890686458135569183438952336845886580817460620000930420868173440636520594150753877930710815484217119047117440345548020902806053879144660881642181790904889251051497763105816352142091241358211675101113549382576382667176386580145236851030433593452969937085087998664461938377430685510240953455243573940519378025520101735690283296538027699541746516533791391999475030721695367614627334721651599283405510904315901706047409568897564519897896222333933469051882841541998958860520971143202238969900190547644046498531774246315457688764329167382830265325079295718633215135710695168571902032022874757967817823083197194508241034699587202758422140513394621325173846405309390951058731637028715476915394306180847535852271990909006517031279018480702391644460855605367859039324984288662229215598045793389208976730513757634851318942626302483714565834254310886031384370218135578473310516479926933076379805157849251197383687358921703003791043697885892241850582601329464413133942771639370604116155239325012478512787868372233410489114301633598931899363158648456032508432822200004016111469588442001288966748368171119894819885316431832259909564080451456578336880833383367811421535892681736658927377817979793638251666522801919577320642545265537213362574685175444416931602181475911449351565123564412513584170663640730906154870486122867413011170323961773399631010637506900892299567098682372085800762550725525416567200306736828558572149420971666460767506324436801182426454910594262522829737507528890033702528545003009279554961773479770107298131113658599693314382036759381341465359236945483441248936151431770403022832605557642613391291881566065187030818814965215654510526428521296948078236392195248606244952090122277128711426424081868893684437105217200445634023023299709185117448381919299716330911490617185809589114384055574120923334897367079516285254039875933330721440805085811912859702900305171762823598857468303796224988408132151272455071279748930723426657577919423604513041946453523622612258802989187292174565949017916444109233063446197954578104414516550675261290199693764332772702555837947030379504874528628528951572154107515120214088581449159935400076401227066736091986328669212241561799218859664314074417137471917335335805187463962183809842163759971371647995182313388126687313617477716316986452678771675482463981297075789995034034747751288507109999557843286964664533742995745049719973737207134999706835775652637032769838559361919184721818545267573705520121226486897088954856571787783083640303828565306136778824765925196639494835856428062818644443771704746724815364336902102883000891674934853349190639301524081774065266269954477904264711818278773534717926583307474743082884096170942619338003630596460989082998850735415380020937773480489086064879924172868157290294395118627183227387938310174321350134061163819517769302306832913333004695121873238830822233066969301771982729790897644578876916635547338344914466331323130434188753014507613178874985228139605953248688614655964889446807353704902246896289278639633173871384629354601135329595904330013871348980181697096467385322421163963597204959376592731612412769245271515427455757812507907912553506638678059594827031342892630584651101685511881864139700184785821551552617141159788639919119085480241008399877415576172332918083832498702220220414271957968185638578694656841986852257222441075404528146686595089443612032726183376004021827126674985479945258213674682360643796781202008508883765146493228909120910420232422135295172556303484955736550472475745036287505048080579909884028999226845701428930336843050134082314377941475250859645501810046896327167991479640505063311765041971679462902964537112845220101538070641811841130203486459153172645611196616991365298677108233835290514745195714855471516313768146789875076013081061898889073416101810215203177964123414764078712935547368196080008475236700819364992023806793499883967423341765247201079686393521533576582939376870568730184250215270755632730063056678384159380315256315418875355163177348462156157937715462488389675746567873510758593543519818685309378875300908779461189613211706788040294009358371619878611478088533326089421420054598416084864770327031760131122067839387524766910874898426196974820413013045030170876832219299237912367487431700280439758242766123504701575535309070349684217119357444901180346086571090766381874309027978530688900049600981591822416442144203327684790974957486296587908776386406413659029362124511904657777224091405943375336550828093886403088380929346016069385703799546219524054433742717846226596170170148215805930346627078596186307076056162630666968670788502070017844286718683861985648839365784229029474704221139834707833053251808981062071091156715482030030860883791247438691598137624578363510667906130309649852174929000186849409933238474863855632643852349738193434731294333829756925663037472608219180120000066357313458497559793013816002213396194805455282205870950276386619858173632246296300169119176118838858145226096109193740780802602538392152438728206965551616790593399280393450692538836166061911681645740826535762255734334130756898996882472331751643483904601538468262184360708485083624715612237797678962261620900953570666008182863208381034758618590168233238257887244899779236193916937756103147234125746129020851715079904643844497505605063835996630712736521870863008937096777978537148624842922380703782541271820500144522839284847163286328057881423370839314385346464827428732348654434931657958905920650321924809735473767372783360445993573708833919397257642012925672633718682652762792399183539751800581144150670384233276029864312405890342782259144946832892532917535929743218731760622489586480147747946870837887337712652995382358255141168614348132048034346705383611933932642153557432439118941804397226320969407590137586062106053173191696796861834445288033571005109311812623592390903552964044804854967644926720107066524255011048278089333437102944172779574009702993440819938960892666883065318494706994671487380256187660046411889306842189173193595830527799320773761279801911909284979568723478413067541450518634394199935458235908905541186709259222377819992643657181357597842261686656702387428036037261313706438383933410280948814495329066871745159748158287454451170871366678885672822556893936971048898594035199378688710067132216053988353990291804359515219191343205639731100714320935006236094656732727411413520419380014836563826383377846623368890318556602945429700149936200380029804775478321041386769159632315405385186361432191757730979582407455929518288157932393063784497695239958133643678520324200519722316209095241208360597010676216193520196008028924561707761973126691432713780770583614374293259017359490672448298708281904931822905064434785044977965464574763887102913954424430293898963282446649576930980961364945810954330075555634762824409867248946556736581308656173867224090326604795344802234938689673409803848121292781979128650001395370180423427261678261294928799492894856200671206512592826464415989634590871886377943343335704882509879944420708510194426296530074876776075141216373289220693979497981706480041496648636612194413156825998906693387878597160054542557611023051536438632494691941706674259585308496733058711275232559127706871182383168440106298119220631935467928653597591988567962314645882947591789676403852806675921059789103048832072823347374946665635744289034022511389008612466158459412925562181411174712280655536891972064780480893100291883723019834676606099537234558462766460591689638021731911604174149277000936031988467010103449732410724637840546301434894216954685926403792502042407873195928110967298958300732580321497159128019445791062861708173019754717298536436859829744575029492598289421668029829611369901423195668607595669881164217005636155718150180941469603117297911900271425279242493563413122212017171278813146669542149754253301508044404677127720799460366032382094922241884268673652800517376168012580405750871615626601777154902429020740679465615710445945613570416376006340328965136085607639420639662954846060624404228130886591527919897677955512855524786928006301189216879877101099494054345225862307849325094950090693600977694855559315040525575629566833468752551317235308410720744442814270112977572424725099425399196991012271074610451751513264998848965788169679755300380428018851277579401486131132580029370347434239600550782118280653037847859363808241572696499246238726041365296837197452800409759447704618555360802173465704443433976291897068124981065034490429288653955162913553912372737210116882059938257125768048928619519885112621493857361076069464138333751884258787319335461693687951288292532704887893962040224201988579240781484691638995249542246538402849698384223919020243501708139054931985340074865688227903509227573719374651158407136001291454665944219127020818249331901605340403245778278631284662887072493615076058800897571128338090873700392581260168186251537475639117946523075333386002993775216552984842767275759903722657371407480391698689944575080962196077995814609339635016675602987625335164597717755445576275567685401727322385501632165703728107498029813099017811961119722575446340188307120470690887697425703368722100648567563195337731115613100398008470266995380401455705848797015568708947946767142365074989532042867090777424757867452102630973752385929810507741585480974106271978711977247382038546487261473892423451594330304797614159010273397548299751803239523577858453359402605649382209371887536941698383974563999881233093515465894078382657367898035730856110672587665208098510133324898448430914306212209110471123524853566029642089012370521495991749593510008172431571965313984333509529311121795849470271341476806762187408272359951744426749528243436389220187055453400313941859791842346699963015607398507241578355150477704821504543302867521612656286038308757655766315277708927572579042193415502069115665457513740300891126457723182510753023750198859434225289544378967296114070638014824632531312454898997334323266588520206651235890763338992473179098026185496763109200921398783096577662926249536787354773366070389159203812696738908723715394167691819669434867880161875003229134574985546257334856261196485220596669906293065755737923607934198408101824269056350950792086438360817147026197213532714251578927097355185406903227449577251379464485826675423640528824654800111153400430949240889998137864526380282458835163284869381264513318289268804847350066448123754474850842363043966153676540952295061351076308863910235256345626087872058098173132274264800407141882241544949045109184528480228727463734584566354274710975405557640839886754167542381267426280984577483653647116329960173328170343261369701361404758904019231364941506198994897817767065735268922884984366719143706247997615456360318615403607567713596362143263110216777064708474572236548568968564238047103090172041438782847906578345334715414536488663686648547323473634725173535572372313260884511399719314021134835562480056899074118477271254277171927628118821935751208227940509221388828677149726364547458131745548405662555009408676344797843251190459131373706497816593113644172564956872851459035975398872113226586827724782063707382087643511028632371296896984680453833096145025793300140499584106877569284034599750991061212213766031955476551311589085663318771223188043612641293053111577354299939764304956526908264501237389591777739150028546658397323371613881790206149532326562020944734173113915266030232064178282069115494285906524425449661168082269311065011410717562883655803762918707535111506504413194839988697624283072100474899882249286533232782957270911427421243340861640186904976935564981852542482190129884262299302160479967245244949662120111943208615587693717525916428352532320017175305409868466135739086650344927298672304420520385167379544425511846236829946957590695736887106614792502679489057882364235328671506214202236301871568135823023213697680915567785620721475129961003143893059253038998777271912018761114155714684993471808102118222369180154056760174008895116338707858322976369356257390999016878379198017027070617002748806085719334997137284064926014021997595551992903160318249589737231535012175390458270895915563689444421639511411427286524911473706421214264572328749070447044504543844539766366624545076634758635776904624118638763052947923720656572234323909974932575107227717911425330635525773277083689977845874493295085913262874868749398182189273844393851409202162270202105181589768326125042817356391553403634886121200695098855762318030158157806003207107282565266003030463306019603610399813742960377896782718753099285473124012265958055275525412526968995435662472353206613258991604138973249144242690158388406438682310722971195728708498681048248625381754211818590037912614377545194481590573328950604851592539119947725749299090126073729263729783765309333784867439313484261457295693952394469309590919397552753298674745719014077866514924033086257667056679425681867238422188226938914778412853362289541865390217064077553697537342925989327713888569588044504478139301732821304025319126684022504948490747870075896267716545692282532306936689459987091989988721192844462848819489011814133747949190133815598017985501729688572807065222575987610076275310991680128088010390197345078265195055174645870034818009713173144207110922035414173411656813240499918291243137641498431857904370984883434237608469203012494924979188891176378290659625263654715748443161186846241914051892301268595990318032384203930228359737395813102828812979567513857514680963997990475085599381759299697879136581803417061903259769094099507285498447696885531789079264434400206193333753583896516999317512075146125718424234266098248386691511875699956439099376399558435747796721768651459210742796392230502747991651841830152063451864105282611458433319850566275540044270086667488084881183126749919557249812529675180597333252903522318599167607405087913409172325464201236690256101104867173681981900817626026758735754394174921817384020276559060293673724637158505926055915262979543358172213664898753231868161929825228855727548072041331657475375686641629856445011394524912211811837828405670697330451976213451980142822040892301406046198472564159645150331418079593196962479146966776001253353576048034799229797707230113988661992230667084708994658258562817291218907756825719780767159650180705905376737357900835010218616690198827582265721441299087518923371410239741636564785018475229894892268281821626660084802463937848964457671509084606302988559456551358470289928190591941470098131589999562984067294465376140189651227808320677846627930844383628804552894090299977159607098086465914262616984087020883353386639844044407713941439209006231027702636989318058432412612757641129568634548141937313962349028158995089367550912062788283011251482790941035221195239519565783497859777096400819724204768501842911468990174710704608831165478172489169497371603427921764709695154135694486475674334344568803584101554808223996404099034172178950892885970498533752251643147489212365054193853157556551173230922266601014767184906465426545880021580132985705049880284894920883311092420450081055543950305062453406505641089709070176274795437043526346274675553544708699399009609699468467965222475848214228370889574740692801221793870941644452360081854843032171419469517586295045327646825921550622360955081994924512328001718485635612215870794569947641912325315620470415605921342884010104559551737518605779425020391972108666816859267550208177797688178449528724501521177732899487532271865001074565511427521907179231326084861128305128750724834440688093930758521315754189290483073484176054801291989210440548748929320233046363370844123112866052029382919817825452451024894120410319990727717003777438213775320857103266216450224290550429885967817530461902452980245654554751273143353905691159389958565394076756429399777150720982199213630871762588183912206695288834338202555729312780660555536864621303180245843003858107984106315353412559574885342750291580255184010985482444619043962131971333462659957158460987166273778950850197298153999307176003174141752562912618002151330341667758768155105813216707121562649970487862442446389118001999985914942019580090743960275042241668699199470869921671145847000908954199588132537534526693140485412048065793779516791659615128947700185515025287423991875436894038477074290628258060737525168942343456879830507714533257665637819080972040583763199354271748255119523820493319153137485614666388141512981502972979306240487924189335067570879405971044190972417325840346381003351403577972393239722636625285671814013906172938817818382267885214363319127446310135597134598941356368677849753238536677278159661278204580499373414385851551064407851167226194265873904595566245762761335092062931339581804016163260625984765276514969515674018234972037128621856129681614056133348556865477508024314317366904472475623036317713681682936343613645015760552035538319138044282215722601936240577590798548394578913918398634767930799379164726287822188718324961045831332148733500908002035306073530342972659814888271755843863306562612158485978379554479431956748605929931756362801739520366986525890208974673640514110659698728998198020914257263737595789400657676814430044546018157802675333286929449143767913994198436143080293166941496849035010207802276387492385962761135313962724720998493450238617922326411658879549825467803939265132908423194137546179584694052102731035562088212064147188317141244292999561876126406917532028046877515471786150531221453514070507919697320244908689928209968104811370466084265315346858530619536621958480038619696886786084181047566554070657051679903771080098885272076593442811478934437817116283470326253932076691263421461092672391661089200990382889575919689673996179639879959617630784708986178543427084197864558911588615693822695600232417670323851073343149902801028068448517252067854637981129420769883789963634762535675169428662799936834246552686053143485883745157687404675627382816273777146574386699187793992875668296297460067553015099197022819042810715532814487637891028969707608812743764738636576421044064833518987945511200141447005532030714326449406736663007724513211588660443074366064107723852186068406271509450306246697723385526262506079842557664686284411455211657637948028331315838730870607991044830746169932877399614185476148127980231380490495722365049638819827073836539364842354210615728385264488103549492097538298663911027497105407778965540397564117150707797983146104168783959184018035411625208036530185859786805817637836365766426466438609007351841762501590157785169246733164466655111475101506721976941590654441723596059109161802730021749544936173190470264806443528793377915181179302821670324759165087007852365636847955339190496567214688078629033345377418979555598108740589002873807115615228467016546172542633496923284288187711218249526910700474425112740768379708643810638633771276446190476236813860636745795885611730552184502385825544880005823463379166334309353278967718420636389994675366165355784475578416829399746572300964581357524339449305119083281168538280889701165001088097372351264764988179631358267248372434577541237976436419017667780744826123488205400610548826254773799030623798156209677207275230885830120094560970842862474235186330362181975062091103190925487485432651132058693218689303554783589098249499583490804496782499087360690040430819961578042260204228726221573595095207624493036654472912630345957077320306755395771571572398842665753152580958912037621386227770201641210809847933238370468469118518683744319310021998986450699198401613514072536458454507373262390017164922344006799668567515040209333172744121339283501666828904897853240187659864035544100817388420665688385523691564505786312469252860679026897504509774085744521523460671269796497924300038310006423500120470814875260093186068138327700470486368380701305446673067555820092637364030747746223002368127088907834026864245332457463320637410940211714391679050975396006706660824940211809435751946937894774666088363895166087758959697351512758402267771603389041105657689771702619533422274516652137652909995929792094313895931229594958634704868656785077600661432844588503107658862099093386477136202886264685275454224259815001916642906462333894437642335718469505179394430957302799019205570805703164813910027719994375726098580296798076781325737689261015494594130661511178832337318724226268954785947017815268385679827769149929152355937180530389423488992967282704338714211842210067555578839474998103387116503829934698067729367345665318163083342148888510400135066866832376323567457458209820337083863337556646978939692944843681870114383329300669965574918943333202185825500326080195982456188882026584311511456484180684471432269440405544850354142639879496507247230981073767016966293595061803339334208423906773929550849869418875804393357532616685207618679543174051944207019303853831649743516602078670743071567067783002382031119188889586621400417651822743586011549952153324674861513663467652525812068939580631404253391305839001404644611353680009440543149119245665976583072587566289575634517407799559765373709598840968712027952385595006449042351705647436113501613354631443491870883499205650193059133813857049983552674169654948256966590435614096954203458640016380192748850869156720134195715122890045228866068578505049667999341426348851327113239940235912389345141676206134956740776556932862425290606654419781831635071732840899068483694689346412983741209098907807319319900246999054928366306314855104618914368574081001435139013458917234645248201595796610322282073085832935172737344335921688496099732976342189766486432697365338776929501623613514776560617249083859436009300163445252330403253073953765933270390039850693070278963919628528125231884900039448702611560489097301615272462396252262271762864239422357295306989760501493818744567038284280948261075551946857156311869769900625495899927270428201528166231532857201872759306630712375548972579942699838301086950355433040501067103781496824873239882283043447276250722155758949934685185120403549052754049239369134973577292191058616134913982044380362433554454568661878159076372471282885927091305005985784015495055790842489799055764377128878618380811629108948080678568083226800216028245198005629970630359374306846176045879061554691938169226996773048468461530780346174841893588703250130585955010369297430251811383157202899407119329752593562598905005184999636295261194922660701063081408017504058171129229953601908728369898930698318407891093086734857346376763116510613125904508535539968897595455842602099094851485793281347277674968946496459211969625766359467043571701206119428674358954328642320824885859856510083546509394314865359659363647963516093189825651417549164028731503015008889009077926503108288742505372110148718389869525471308393751772451120718480422856980804760609055815403285182611251654372739423717463672577417769581984085304607696190851382181171184507251871043345927213731539275311280307732724294193602823063138900636424036699837494971191854847198146025919938976928519275020242359161397832832863371563691636363566630753185497308624519380353068424555498712523076473623538662617638718068435579441664041156375042897289017465818475450623496102357936690202708834732594130688681355470486668418591305268511023909982905518400797283684000572263931575383958283154380786748475688660523462846052117355897703852377342514159827607830097295274341331815385741416626598552281297497716714622914250426854209399012300053073472476736188074578146831982594634805757071630707716264242452299424549607525176221349243753912812410328231316655023864114245314697766473688376069725765032532975528031500642794223813716281203603810182438726755826423364301736664509855873036140148457277221023548790277566681247539925348408023932874436755466432979117156009734095104643554526750043995712646852774341861194547406231858561695268960366788147212817645717716364530249612581888843083008306639180700817852058166629641230184496232546146984610430641517303003581428095200151423264770640590093518857303961203763728739545877365047375610664258093216467035250620743763769668299304069488535061550959741564072274616596560063053858715106286891639029538812552123987990157492424838675697812521788971918165314021486366174004714724916033874970579029993934164541842625793431400304688155781801896189661379706590949078706024826816764989051160295618582736083799804118507082873431137212911452054659617857991997952788781035748748126456750819285933416201609921635066295263544030861566350443071265421195730100171400405614815171436631541946156300656825162022049406795681035678333220851684395008256909372752730294437044034644062044944720009292291941854463152843164703935834714160145006159488151416796803428066826228505999714819667177899065957556661309074618484664766516484131321000304005217343438629355869548581051313475287913290166524781448665811340909869346881365472341516699206344324088542638339264405928412565813544512534398281601742552802944650516580008942057105263591121176220036161668230118165437959186876411006452600545127929181039458035468730930954988128650674493863631464818986567668741641089067400401219034352426611795954090487045460278469482173101633081129536007551255347049098887134865392565016987236030673747941410730133534182618746670254323242057631793195911590185190293778779027401284304983614285442069835078228688342794839566227541773923092535982792214729787646626354189296411469716758558115387372074326399745230443696210405243656958925094735231512632086444200422852922360648499778499940589190081725202344550581674935272395104193387840434853232751656372597718943743923955312365394086453150313530659791386881353832526600937157506323260863794143240619418740249643379161762580039447886283951590358452210309415717855412973300728983360506313832147212048810576025349014615401451994407852284320634718276282075358771508000628899195765903290550148983871380557872894646501523727789190323709502500902400219581732150221608209968852583273691985811592046221492088463795727263064230072679330433157712918004074159397769571397925368301208737945675366637507825955006502363221955853996440256707222707171057271241186549946403607763774211210144196770271717354143588176590423728030170922713216617320179221556456635198618898337726343216349349502074670893574234831769803965828989633542591919673620890374858751664449229985786199452862582932873899285821986898712689571668080565682009129713149010553021012787904935220095699653273269121812050920050090288923708705764129952484132412715851074353259544342938713950935777662558506830358165542913848508802169669135413833546818584986553438010372027266660469970823668858846812786091173013551359075702443415146924827517482606772294269078981291425312257926157278579285461034397784036937745291423415055288732893918921223554688319034598406148644551615136958660176416762682884118529039568327602481813386965980495397425315803761811920236135518210077972433586311713637673080084771615383079273686637976674470630978334912017422737186279014796491459397626668990822485939591114510259010125878782270132880960552112692351530563561592298644932180553447439202446226991732045197629995678780503711033499109530863832712326831930641688465788478273771195371413910112635596991222785498011190055842711148472558173328778581582867615817758544567312044310975184626859425620156357319260317706558601444771382023560676750327488667595720216350199323712576983618184096442907696893671334092181029811205647710747462673274320277341837394561269300795041398128616171216579232745865141300359294947163595895069473549359586075626550139512065826636385420903294448086005403913900709587137459637280178110655192973251452638137595138326384791496226747847285635200555734467845337413595584777766564550793916987075718291285465641632748930534054040951118874315370316037801776645603427455047305959177159754055004793378838731121259845428148121149021958656312170897004565788918674442570911486898198454931664998581391548674709359652695272825955055718002457065882993449906181401922432212535231050415753358735250786143175802042803194144506660512387077502257987127829013651896721665924233401609015598339692451385842477487712042875320432633796987124126924762857825108091222932739208495836437605954344374308000953221144568600539125658225562121902409601563385618268012330089429410702843650032405753491369241020456714663181746166089124791353560169645761460242135954194286465027645821183686740313274559419052126711852970398435020889782688825679349080867732765114494050187039709090127161351223676810573113242505374012500383499874600452657178440669186343663554280680126820979197233107852129994467242075370475880844448862557379886147251863220622857102384313343792783562797502230583813352245654237972148914550365051545913906191233523091564420253476043317221981622728345606489942032169141774839378236077305991375521813025142382295935813050106838742141454471692129136551348265393956459284789493134572114365662195249469351895095672799682830094287739775627581031106412874540149737213739299083502935199890668370123996027217157468158970827926071940964046452796056972366774273422521667003709420127595602265295421335549352320914404479489368654408147562613442346394932787887347613008860477141403716896909953571378502247721013515885549681002858129418204078706758412349814313180234263473025063067793677583657220649270317113779673851315691464554142241604237882985980502399377347382237910432288943499750698242594287635977635935996539127870309615011347440405828769494467205983566461587654724328714780280425860371469338472707273598835875417236731148516974132353179256299578097726722020662992080981059768308894897144029680969002400720659374983235769181249808208880400591234836344725598763628791712426551784962693490036369204224237455832911746296518422734832317906905822819948832446319880381264086343667206191887875548919892449254184305298462079773922939115680436887688809272695528056921231760667674490181591385244272260713706441727076092998307918574387935074551177492017988305898401850301715965049297600280544370479564055635779245235239758179840453090424628292517478549767540931475595833116114636742985676580091744677231039105186165606637919687490766258365852919173297487856415129256179864171382459678193506305117986692804479443745896041101700050733654963577305634440469080985648356845837063175912375980470948517627787052562914586859964835214773743950561788032201721435845774372550161573593531781989865029389511900459516967200072034204389413335569293583088479326186007546841876123779234973009693227324660065886597423272386072730080971409188259803372646944645059708028108223646335619700210604313188554205311878152392024794606277057811686951927479863282589135280556425815502000944322681623311780572941070410216001089978715249528710433661769631845198702158965847553163307087716017412955292086650001901325120582610454889029435261877709760060518340237630717555599752126329175288294078491233495058452330537857502830083790747552230028087770301586662167792695461808726647262996367447507219488598983570906403019766763735968677170251638742011054985008111187915406828801750964338057222890225532579541787877783955939999915002734782826191339134111314379248440729537239684173964888629676906654977002117442676367449026421934891963673454265434088480524770463948873284507663280436194296910606617197700610262893750251525903427987956978515872197362265439533805898028675352870918070918634515255158277106495223010240942119185976334107944379300102279503433870757154696998994551693627470354634523853963553411788867627488053666683324015461770927483309522505696464953871116005447629073678163696975424947914012880717194412350242398821809182103680652370529975324812087712886889347029805346552026388395264991392957412041113400080896532353929842339909432013388851533196106916399085591263556587118849292121282930491905849594773774964499408922781288204604023533153625141957308399710233520662328630747137839066023017048479402620656254727695446420078322603062190137136637917741433463810016595616355700879241085483059407649877941655966897016279181360962472514907894326596607286059411654648768289221835421501125485884196704308828133647743731431246719733512922236248589401743786833075516195481493918131152368917755422666992997617513384463665570447962291238430350878262636918758145243221823569328972211690372499527166044718072436252775577845193372881801963796220118443070037089721106530418886573749808950553085984260970007887976699060098753634473701746332454290806628176827128628938388627548492117714421214811280206590825554778067367506651438541991681345092657920882587271741042863373702800304010589754990675554229445533192757336060846323498220257113495461790403974141890229207943228973474729377612399995603404931360182801172228797303583672475776279028841529298894905393910501642031615909770224026917656647073187375703953087406852298374961259371521427615965685100488549101136878015184481954400224206043706456198831464695623436058611153227997858607284249847235112421529795304114763826532459439692301138384532222221856467372604117002922764343642355713953235466452219455996674294217797738767174111955795967097583146871814463691627649222596345400140365082378585804872300964129463013918293870763977410718169727352333902698398363221652745925445383147634012533461380293239391734807538383498152867273815179984328450619222669801351763601503202703257097047634770515602414620138796387483883033907914566629896662618872585981486328179245893728164626022800995940128532304264565210816623480289829068728902658528833643532590781728476795549448897481507405969756708750207944959262032306158076089010968279910289623844689849238073457530535285238732168904661739072684405565016485003582864359669648461318854243624607731152362261018864849440428232267328712165607756786122777245952999643878711268436601946286538532793985767404566317243091458744432312408991026906021549440663623546871971671519107456476142928924212012270877989950010373668397210243976254152935135355443000886501413645695462449499714387870043943338113425211671816283255174150984231414281323839180578596062190800613395086110185731139067065552019473616220369814686568567418902922768285320398980618946200519913288525989450961732566453525403202122555932196980836119639022180946413051004253847626876549026120364381650688966111626901525889302642530376487026958529330076058554387549789879157896194799441948968902568214607907143111762028730205732937215915656090990084196530435180336779258745507819197650824489168516265727154910257958416353798916219076352657022311006105469025779972156199349513247517945636064000340727609326768128434474691890004309341440553674190134408885312126715396825135825779490085369840874299017712748481723823362513116953393974129247276883615834641127845466149293323527944409425564666961261779120047536100664197061047982696387610142590406536286600418496545932177764553220351415261495426054273498101816516290002098666087641381090251298842897402893724105463093041063973160192582114953431518932145701347017356033467228613128025375499093722282029978559694235895507690462870237948280967883912090126360440749064543828280126929926930931787551061489397466629321450456961198382355105597347114918329327220547356006996668496998038613432726891485028776218566521870533622354929805416201185633712627117358408804531152080391625600903126473986956190363132097036178760155370259026142544874299960779161742281237393782576993957232147362432181410580430562017341292799426057618172101711583239982758542646552010529046637724398592269750392147354625102062960972988086180840780409597977617785997958425366300954215221933303734150900742561449022700589904492463517439416516725000579533127656621835630834424779257607681904708860569800932330857328048058044709556595557322042521816496358673674459370773422976932883336531963001499305784142844425565516999610955009775809113356427046993829997015804136115496088071099451083400094746619971574485549590194328126852306448711579190429569856374451658293679421736741467081909371111773663753798871372878498949376756395003736489668908934139304734482750960146668849880413550423349229583529044002922270598003030792675444991372440090171239229596032799317293870979542517366989462415401304981709132264103967342450790168210487609638037583353402099201400450510246367076620750216309647835812054157887589491292940063520255579501284604393867864928980468960026935039175398889226317433614847819692143144854655245732719246000307876942347259722917366475988943051994815743871458381960596377951508777978298480171243486573488605865583424157127829718591131889465858368588950239438301902188443802208044504111379132036227688032510883462051149232079501785077016440950506949481047436190525368928357555612478521616114693229417137326228438645651524208173952266159018854596872218809372114331168392061912357580220681742647514779837638285641246939526589985487682693990306170214761901237614283415636270393947997418802479836059640824749980972282910218335797122729089270727071739231091131118675534806991420147777115761649828474858850175301990225417319982906079407796643784207249136610111353611442443689142117951484152169057907664630106244482891787120742518834981630775289112609759278474564158936978369940432018934338922932337982036775348390434900648680597148880841064812207454649026967386961533430309319864600742065375246503306780960268751776349269674705785922611492036575060450915827793617483384347033837370612835991308467139243737614881745600653630449500167080427014059054950912995978006274384260615749579723896316281514223585326449141977363397912919937191454344587252454094359043765561416701929735861623942314719076743573642378235421324046645276582636847569131796400200920068591041426485232731174327564016289223341827241837005517191041611084715205681087112144016866093650648577343159010954517685303117393008277864531639197903967884599564255713629172912659693231732621464606569944232360162444896078877937711132289498469056487990376462000073692670851892392374146459849992706091042681659640462879312099070259607663306513454353709106964554354234514256973098625415000822687418372621288787827956142878242025232332720581227323842391716592757979741020701179681630180847096074712724908044195160933642277630677651653757577351447197115076207623671704661525203692111141987225705301182335915619525873770210424313715388338715185033688675327896586548065199064893512162444677734356920455974849202352924754899579275406266548924367594834799968297758562217291183604767565132450883299278486254777174403675160380462766222682611138427327346858204072501213030057852001142760968888587981774789607016386688581921064731142256603682251925187636146365045043112572733176076389269770384925325675654592092718194669951172404497444992111154564948381734709490287219608500044576525367983060059224676812698425185370968303259808454876729511577617151042477265012836816385366615357151161014735322345939911849071575173239790821399204110936781096634163750670687528315863979432398045106640547042165566431613670496947592228560332970295269243055100226011469016583383752006942010608081409741604206501585085098873100816572340020368350099438082787532296577018807384625757912842762846929603000909732146763996219991675727129003098733482693174560550348730438250678918259663789828932054301068715685242528956137818957391955191816925201177784730736402080157352387241603039914324228159742034780707737082446941802191788291071092028092777154532988716554754345188842014183019312047033502708629505790078827662699992301132974543399331310879654860167496427158245734229328241183871516819323953518383471964725018684800811520792738486054201072221228557463453931833670638876557999884307097847521815334031198493637597418664490978217183307950144154649605696775455020985525361149568546626173042847212682466159815167674186943374589356730808224322132885612917891790063302784500511415848836926142440994667589757517077585950718591499903619305596670037746941909450660075991177158436478982089750234440562412585481070491348174467355712546908130001790736219209650056695319226025873938339438435839780453436953346789694745024013468220923361207570010153994184589803987314894466675617670248151121427311800050985169227157952453177759953726516664314321875067134240929069310854700813634448489294582677454524548884480580174881587564965204196375207413817814789416233095597887948031689601670325608065404533885709323053807804421687116111613774135453024621224729594259917013002717165809644184948183326803198945278700076081786075773243817136698052318390703758311700381002384542048414336131854288228496812628396260165859230709725792351753482417914084911151312733594702110937446033408556084146957931423148140253340870946291560884781514701085885178392831687477366543236912444438298082491323370003579130883690687619227145160862604797405610911595946473594882022997699076161581764041940877071929477157038659278084997218113345736671871222687902706815679703180481333416440732990691930320110667176975587357598688847048610732179801814116920651759015800366936911311474825833095041040731892930157426341806481763874937035072665897707063395311960967201313159883929669106389728203829119777569170001375286335393784871056776016932111738860113732252000317902347872181847114664977491457950324801559514443675587394040852116214198302329538840249150780078255613787972510594740516348620780713124825959460813628862677460589198651790694587099854470048823804439273697925812792197165122538673258285743474418028693273115046894965737448235348404602802663509108894289319823917084329229398928897606449854008844880015840533735865016850927213237254263218130664911537979794548051361585110645089244751202245754323305880913070386897857925142397485867567389039616653607009872604911465687269597994075044749633853571794250855293563744879270176459936836325092100195342077035484651328797298059485744317531433148510975153504581165932432612407407840949967649095933567046859107287498127095244048023969180699842679455190552850657683722489918876667485932765240005366866182695110988088774008572916596296122200790376903121977227290852650082625433306676887965187279045011248736401703088859505947210857480756290945555610880011277842170149685291443100491296466650059329137994483034214286867599404199345372985350202956879327708657526516383221078283779511184499953159262199676757537882246007347071952520769079637603417945014318529070329694010326036721280831016327901528335759501549417675190216608734325243456528152450062006709632645052399320682878151641812448512359772124086345783638047602509799710618608606261083576873382189120545967995652044614951714474043533683349560109761847320684681205108135796626518653114415377177148517810466887080134482842702826132438405352657599235039671180629781473851998763090144358470431740510042798665060415606011852281105352337095145043961486547482332376555951251000684081211827691805179094061185156275818685974640927588414127974008043534807499486456109846584938766023982734902539515296756916726135768618689463133156722846103433477471830127806892307050862169667484852435296558819091359624688189663195145374250281824151586156853568724262769342726113096905883664014902257618568183349130471084414087334952102775041853278350274128440959951917085715883423054961191174691886981735763039810557509426995656531962616329737087573435646898396182279942008660816667693391412418601943036553858749060647617777730908729937517796049270898516024498526472310426431696611148684389383932083389003607803342764765902884972508271496100317723670548291514774741623473465409586180983039066187657455309723511039193987050623194152572556495506352022615550000365765027446745791157029194390147403539021033012154219679211579216024244084928835925180982581909111732451521236581925984872305631430876114065060750078104240742439627366409352355230230020379568145467295138985062229602433995038144541834458457957190494148149416722263442540310348414817352919566568101014877073041114278809987646070778505435014691881131441661456342325574324539395959416301505436898153898780488236490097641856297622591200491082970767236643760781442601216104566890397877714048582558530989404858542677955566823862565295090037005885511615304604251407050099580226407610921463175668609220414639307061958302337867006273812675232213843100803158700575908679627768333240020123979940126360211572756184481318220163123932813181223464294276648217162199366395112099111457275165109664988324940665726093152747497701652262689962944861781052782165357733341416584912355132784924914543375493085527780605813839401893520120298446483364676495200441776457281127981254570997457483469914997156587177713184756227781001389008278338188857947562337078682079903054131975052389757524419784513809678985365314635254256363871898081684482798572628832448052792335799279585623025554968092181968751460076318053933442675103124271840340904477674968023588197622440629473369662505643431438252294797398605994664666573704909571715449668715043044040537954816221861406173158743490397380743209888363729610274951206370170832483037670722522227291362478505805695589996020536506524257752012329648811762108113454613626314847858367704528803418705364006272156025364133032787432227200646585908511413892541954710237396209519040064969948332257916193896758271420196439510041563866445772420205875755421016446518434976006379527090589422028377280260506521446603270859460845472065745131821005801270416978662166454426965354646885650390722336203048983571002165910971476985748091600542173329205133608503604203425962189160976815068112462253855875338380044001574394948545582448749608811484619299522432084948527848135517597968719637700400066110425706762689088059865913895902926900964562678215569366030191504791727899302697403257062770699149535156917543543841248333922931118132003156317975374701508548493507403033548921383973275845963958062346458670462691575805915024315634969264765101635205898923897029846013320144992332020619175668170103230571727796421776354136650431698834106094349762752620716018222203264127443125023795930478034242290530376530775501146373234261262247937264486626177285052088314394555966731722593865498470399990062205084438491549332869347652374724018466389457069768153194159025342746462908259618160929519579836582436291210566374517954231539075369144014665142103125249832459189364303305428036762141863132433003872242146345858578580879095739721927116744372381751097770807863223003494538705707791905413440260570909028880547605471164707004247373321255389081762154586999396336200854097221209125992464368981745338471961538366274308774401115626249295627404614256282978240695495662156389855464616826782537567087929824685116895841863730339341599795899010370111571904617842383550523793640203501349628237525849850931708652311151579363755713213747083478598212900520059704429521251987393189708143041229667753939943104726656658566853595330514199989811763575753738959073071385803501327248056365435825615425312722399850835276308451031996339856739749912629896815407505453270594686664540397780219164864554976864180197365530101560955566089438090666361412459686108158269906819112495762881103797397343856938935616356841261032269107994852999978606882872364025348680174188365501466737801165477023650543191971671661916269574081208660052487816419186461325264940687475977366521681367626003914320988261143684719812627334861945042818648634761051081822063695079517258401422768817307758107340355489602306162773528573852115435073399588007394874188030257707367497434167795128415761042763569794737804650913352091082915505229037226778032610786679961213881143578846403867740397510024235008984831267388051093495034740920215017776260342221274975216412365164799397061044538045598778454772502808068707364956230071310927648474664761072613348137817956850124353060408622516978801115085034689199085377982606887865696638434903968677429725607835327502959731161300914659281544891352554647239339057235535479876152431002465788450162857475472604773235165032064058969199180067279780596115222818384131880675494179236477149238878611445192213093330240592900724289159803503618792151651344656086323541737589414002674162823908254057113195605767535684281758497329961092892191155733727577255346037418830543988883327494373924154435458377526201881146019375885706531441732190192424163997952404289603255423013826558685565187389427571317900959412495655914675718721781165464312886213487715777823009895642093695638899621189873828764572076306475192472997124712837694830437381390071188165983682145391006606503044307377168310031561672078658353679121294390593228089201810288667327078282875496446905952701370234845499436767197890840412825235824557940953229470461336511302914170504836764929759438978953828462970736918657896097073391150193270191659799728172107968750860354309526851103795510571684353192674296134050341977251101212890378926604981036791184660503992920077679704889596444621625153391108042596913634460711175214783874107945098524580973372478266759808551920167664419222286463503003077400211187942455082481904768173850275957276609204262734749911264935748280487498344320289391754527867225114193135737285964933069912174436247703020758075347691430822264437945120224743618038862207821788173860185259117333578432303945459021388690785679994772243167202278897575208881114286269490148574850128014471870072496512440612355169946660192543472335517102818835314446667696803915580868309978170828575791050173713156404007605774581167437175997041384380971646700895957843561076666478774763937887546842377403028806711885575994706148153787976161199778388536052478680700891454339579177891765466472976043472600384408381568701167963193983902198944220882311624043920920357691111867048489574021635247313287772634297354183419817846122088005089539688520115054634602511014739099127555128886028433855401663666322805766451074231335025205669034636727433072647405914058920877788769236018621575405741204863585057997055198253367278823385141011046254205252619394779418462998779340192226440380230311466384331778912339036738248569871204641193521681907272358718397507109997637031328452941323673007890910359681317768310606815931843694887689738630552976635254709773751088233486467552456674899711997033709961544983584999222470892804407311854713155368970654978130294275129356647258633012743265098493600399541414397110602302901903410728838005186547870557163766188715793345603627853779759714668727258132215090335163215981409246626554416584823312942395797797740707200861380692203146647100577658608927907004467812746386255729441886159140458155034677487419419726629483107878933303734477870673707884048261936359262410117605850896962178389865784716471596351615611043015291307171450679910339490427777834281325997228948921689827449239631025161480816057016288514099333139203308973169397316518017935916664195087817042325430783682355983700765479691296102643176610034962100635738251474982463519670226628826232452520289589113079350950632674844506535555808023929817301017826150534964704540615743016107632456897398038218786558465761652806887763392078441298102026116098169932179947031524320730742227523642505501809091544502688371714285664265771590169948762493792477442300991266552229931465125918294589569655232430178213422304051926865022779107850519456223072434242039009629963072121210150693332212909007480074930714563966002287794656733171725333088301992585632859355830867617687019346835672694350824556124455066872869489592111907861934901405605668518313620319524244818990094984782301522100865062887978769644320145380064774337779342031652767871515659536556821854781302405864105262262368540796157726931437729980928361225400826789484774341704527701445322558462147795818460342989099482848280849071271191921019191109199071318719689196881030512758909177672706651649549950215533487395020079113800522647635217806846109144998760308099733159355914443062363591216666104815692280082898493974124197006394988830879645959383412705375337718077731455570559152058847744625666699394621708848190004387001098414534041505077694129576038107814199764857390554025494029360288478596617112498384994566219840964159373402984001176948332242419524769306936569890142737699173345946733416513478426622167576777233588714459006732865432822886080685292103478864882702533713863748619482038138818053410793387405256702173849912867792777080752856977282948812629879132434821016378845749004172968199378749841419511022883382409491398304146324942831454950320572157495427303780132466041491610227184429677760649280062335627558160014571241541311230115678595004976952800620417126854679250106957879358801933849740057057754947065721821812014690579931097251172263455306035607953344392905617363208269550276084793917225250291362331877146245718352224474885302479052525561830764910104790954517139473659601573081399097699104451339263276176271915900931155192243827281620078932275242497503988730423451241865361816842734448053820122387114339276236230036429909210089939661732063395355994254372646875176535358049854835396268914916505252422404212748797397793455527826068964465788531877592045669839334604984113468773458025484493088361853300751711034909331947680601124728496859436364111057874307776753608613958652038237382409179454671376393455719322712815981221310861784957369708473657460808520120203072323665693242014770892299276695148524680610148047367754599347591917808302444732350769698903297568118935734173460246231535514333881204552757800892134997588485950469522217324818138570421366770284725536207281507648933065261866161733689814811277653376633730030921817609892618739082375188176631285927932250534839549347287393578125089696850810657306441467754439918930801606836558674170716564874832362842535138027870352778004096412360717652644407507129854277872677576543039493180990501475830190989376582087076603774074223536352704537478326636227484015291176550103543319339505481689328746607657572565773016503334853296708075914896498579997188499262043120075416468855395545070290090938329330963763404899264159556016330529294755300135533874503255081798362705372382417186726422808886308402526854899437747933775333065624055859925909558475610680570114468722758362087935023902129162267445809841102309572773315400090620792947696833593009765199731506484749718246058435918235066851787230583255454060132692137138898503413209851235513159290778760976690945405234520103382674938011729070367977692170048231503860919299609963933598081610723170386698666234390742845944316079154455237789422725592724432758422002540839806931665181650100934494049476683135219509670009107070497290186180988792242974316501995407020557451439428456055445463619566496308155394357646032328174359429452951338822036939338094942263389671958346136415499849868437253090326971816070263676939217563616853639022588895905296952319896271486666215236182744298017394495989033802284978990695720527180876625800335411943912232521108358060804035699331572963349109865753277590885061833148794143194112935993691263669732946023921278506903438032222091259730750276640912905042890103549154780924712492681758267777389940582309948077535518176458068175052959362368080960738495976963303463921074400691051769512969816909703902220610121808717901958989607400563684337458777528725167849494640617571043302297709643879265073830300498470331897591469041562817252494130274117420355573594936687099599537340186921001712081657961656373936837506452926536601192676465623382161941890247113525856637856699188594881343583353147327758861889174573387965419092071863844993339700315079311297754986203435404513066272143445614483884096438957115402070117895073750294931039047185612515426084918087303585951311249356091135131448496179889879444840290438594643920517723788133901433852311964126778162953378205720871133417057824500284516882841252289437234120704108243354826942916258871433054133993123175984675282599747424807532136532437475769261912232021666745483177882336491507420229587098696331201304092715813705996662420238838350607051981320048892298398796045949353727475493571690739323591148011938460743425478319634930487549189000853264955061367464684801085392162428259287963625680667180020854109604300394920998135842170305326739492159600939246162609380579114194943220575161364454518247124387388855072120867253657815891797947908492432468827167777445967235076758331284693816025883398800080914037149217224170178334477202148461927947029727513019598901672881373363167646405037964257472038447466928579634977389256849322080370739676880224413106637456393528586294616988860485452970268654502545957430023532944561139226156572869451349712939400029223059369849742836544779475550650617100549381212956873309394106618159719352547518493893750003327349259290260327340203899111347350317234221284176039619299480330477983550263359953022465197911594954856534571447389537120690050148039009343266760433470115536116616319855282268775139248051144417034096326506047566293366496115419625565252893514691955275924930492858517112866591830999664217760380433700627673512914622147957781122466767493028570318718793214171022037804681895051249937732675246965522704806362424992281714233305001623395341465078470704066034947450474875977356082980928342096893317343208735979415828479689977753394522749283517761388421368000706839214787505520808535716783281776344587128688881158224388341298277190558022892244368011435490109757302414404017192592262561296752973891025110691398970481017945690914697479719685075072514135773845672807635110406365366073364235119755995732668326360102343695514906429970615987070554249489536529645574666457474802307849945206835163295463095507284796611950043102816232031152794379924774080856389126581581171602541001436360031684764526859716529676086328497116994234446399867980758224755614794413921027369822392047285645041673091170214305668251095993124972130169951031873294793680023713881896807877721542536555762237297754234685585943596574419244212112778066542343246893516189927605427774088676755062487919392026709247850927913100190439633052173059606187926938673119808749118786972600477152826936402283116793185827289589405694456906683610367881446247554113724971319974410634857315830907495201251443631586826241396938447953125652422852264703178418481343832132404287182623491621107838706833760170430628167930384502369027016707268877918896298256430634332465583555500375421870226529712225767640742197686291715620044546726561927803682077542288346086749079562371879122381248836578532306185830353222720866017376979587285034315163693391974844065503486705036766454529562042789320236284992103782165301834336952873467805409085127045367731962232994345811575289525581871230040677194874167932558954570788771907409394345283316757647153079196555947685967158278389445836838733358327521501311572209386499807828794976353696741622455916574874946908393054065457334925132819961022103115311083166401652974370972730832173757061800130419597465353162127469559531769493205600649496913977936968272128274807880172700844202996427842410844220322959169401525151017087905226760908016957205915802712527944874992973383232431520854815636680231243074649306961125103263960520534146916142898635909299150027022645519641797241364198002454947313832288178019751295895874808755285568203930329535614813503143769813218177669716744533756651750979708053628718392561575000852896713568527816099483606077931908090881554600478277488768411955623984075801920530412644358320109669599145646626667087275421105277678161823293336948753471478154064139414162994039984798685490692243198706371105961941244352128456707884912974523972122763716395531087873846375258155181599687643561782853283620395587181251036336943472152442351945436075482913921348182128317775000965484175836743036426940617832003909055456161412566358662587513712606956131606337520253813055672085826363250603231151792304813681462494625222401725700488967417105136537293807337932775243913855926395765848731445547752292653564331033098475560115084306739793741004893911896941979162608594867129174464359063854299885298033022769450327460580491738795275771935519422372321807488529899073090231968346551917607238839302478219475601397105249089974397934892863239807271286116885707342341045820578140093904750821046016477219182808842556953064729848374875658584772063737902923288939111825118932035255968413155500784705729127395492755988301090957221838578088739419022296617281320175581626776840813268995793597963249693733372680550326971746554697823584031790872979197731943698020770564252618582627632250114919763215880044396688499465676516871355505959683874296489857867558933057619524192764046678433796123935376974151724387500891700982261845464776280641575509468769846243111197850549510368369773530123143504246831018810059977732792837117320350639105604865477631930388291372175570339542399102146577638172098031323713698470438757278055059263667252567832644208505502928352845722295122379527393504117951214094252750671403716012399345378922391033571333533075310127730989789186336077042451717977199197060480905164777730263155657283784413949357421917974350456472720804158396854488920848519101796457957730857226984702160069960022351971787058731902317308552358257811498959003943933250595267417789747845295011006039930081901347486455884961965060311439388082167195843418384787045396816760525418509570479715511143865195710105340648089405917696393985388867840907395892818452936050928225981937374468788662364437595832180023898160537273521197826948877997758772730635261807877895953482765701595966612881094023757350378784003226575104267491673219978001498220042348111113538655910095918449483820317433296063926545202586774708752458230892478573464452184929536715391868185145397918844082003402637021740902758730315267150551231835884862776199854908631990860883372577958904888754411312287075849903687450724857755187142867049606122567219223236371147880945925459528218806385930748439358328326521469842542176825544011928357917567604009865561869110307860752001546408922599103516596913955132336908548335618072747845210929287744723432286231262791877038502348225295663736749723534216385148639694074299975283667704900413805064919473553509903619705440222871528943058876322502712532143446224945877163016399159300976131043849846267345876864258949759744692471564622900916143538773102007183132773683017472459339695168641963708495375733263209573657252632200069899684858391525242818352986175697307811881379820141213172450664597547177330687147450770583730685923197632663969712163537493975165321087372969084161799988039790566276578582294703641856632871459361420800396941810927903149939661725429937439253765858673278631830689417695877219532556260093789418497848322130715236509623669009037448595877919923906088434628487577977457605192409547564471791061957189494833200060268846276218320902038717157335879316116031565533164724498424660684768226709577228939422019752305311190328271885470913163346088998166808464859964213423133806300126748472568418681686462809970610894341649040767735725105681436932593485488992097667163000770694532408837802635913166984609592540372357516400326399845874663603958321088168229675813808047515995754107383887404224974909540855180459748747419771618318045579659468168920013139354150869004583648991092374413799921718627974922623753404431380152994298444468611372234231557983325111813662172763094446000001087059307737638939182895799442482403949640842155914852103602299398890561652374436377713233876481487239570084124866757655761606575753516901908683031700230874473065253784414648370299912894809586138466934638988673315698339424467514699562231926718380525123934957115423659048109819184236208247543219637122156014195183500771788790516717325560185612061275823138097577784463773852789034733225791286785327388171227931980391905720343041122167041754905197052880299829578508162132171799075381262125508271948824483730040245985612217609843894938180081694350761243964255612807131334992921000125442106759117692499475432201374831381872133303067417691375686653451959792030005604664598922030799308754866075695610922181257064328716733082691733898703353051366123401188669643142421861039108713721588535864678681653460291249697889416356012152350675314870624833591117058228988097852821135409443059727743651134750588379576736562558145744604439690927961402877967230348749968909270502344569579027810998376066544013415811580634581110320648957682506849909101120180729350454870188515611342236645434991919736087083687816727223911430795669202346691086234026458993062229941976692182530622498476585566493076345559462609430214775219404292891372785932318394387593969110338369447071320660670804580055057747406748859757291310505850013197233737627403606437975253709600522998002968645720682421575026224943520793109516513502133984454040403773194172784383159502239848994386294098727827055759769938033986426225322173022962340524329038740109385010960352896914113846319342705686625904553724011278310958417057970154352686317190067532115827827789695584199226343295410583649446225243056500257310817944201499501773844076023623953151312184400734045750940693068454309262964146621393849920363326099645864868871142966607077983036418668451492026925366631620244640634725970413471559098501679310652358509444042346233286947288668151307725338913987267528443076991366003843374551639006387411999610610733526134734085725672317035995047726443150683606617977142252379242752882675282585915382642597392650977798163236398609096212788708467696379034675699502166715912606675312572543735874080619627010621047383224851679038861696217742513400646856301597682444031271465205252866369982962534760433141457151974951363483189723758680855637257757234069558704837724497981310338240473807582631179090952095983641227467518231798284944477415963432336521733116200854619662853240329355486441137346341064501130305300727116474142265900217471420389232304558249711083481062012702718740909736691237741875269756063340348829646046757747415853701629967468129983956342089921865457306029854570802327709298046698872457348864387110838727116613962980971899455315546492651873514379617788363507851557838581060892190044477537486467793372200465162114201815955729613052959631463989379568361139103550835815430930549577509192763075569161278452161476060727689210580755395709094065568334112666435906800840444429918098804282638050251326025633738590524952678331869859667225158642405484046672997774543324296959387252943110620495850087405662844458773954479444282029114418481588206941003766972366834006729664530815920740052808694703792098077405874266462404894068807232940362461641544405361299680157004740434036155843327831608232765934275531507977821802452880092507904122833405695838689745211461069391616893493316997080669698614008105763088078191278094794671852191162526429930141344115426905865820779414207969362490201307691101194842030440038086751673584973160605694961238125361715816231816699472878148233372557122802909332780391194736693255056388989431104594641503175794756742801930465620205228072437121575553416932064534877087428403049005237114756190275787309133551976741740995613792666873106688984080764006753486482259176861701665620143469876879461913529640251294603518083983919117063390640827682147794559538048444746254521423070814835237668595014154669593696468808883848567178500108275898927727214170231832960401700963848276690238174769029090385757701306509509605993076281428277003359877574755834092964896980625270089666769554974392649295818583209725943985630862047480831227134665874874752187471309496877305619675416024474201554824677251344055031781639376279077474600640852520601341770551238367645899307373106474682831702245022448227126798736887580981857925445243328465243039210050496318951634778140845163736560532338464570779234433220615612884392936630965143481883595826785753484427355348972648817925122602274958880496920581031931037578249491868291566094279282949600727954215199816208265345504658770173759700863270685063298651998746469643511246795699231064231112365389474201808908783403500810848554168447636664334622407359140162289047488525651775759152956361531949451979266216902322388768282921648878710094342319235969886682875724397266691753383129830643424585063483284238507734145325796305004152716998392505328991591591334605562155527064209513722239367542350179536627765439518594586030365991439818831072026570712836863486557584239261243866224942440067413963364885627114024780663040889798656077445315505604968313556553900411843880065882005070221477293863830614134791825506103927012598029606347299491079576974647674430172469758876228644466764753891889598552246317443721768686375579554108145339096971850777603909697202203681866967043597168815188381459271187814624507075613181378734373146664123341127008040556866977278843912672297989716129433504128945515463390015469592673201965907918414798087759276072384544293020060112282561081887328621044130768331617773869402043521569557129581869423764954732183079561228937952934581470986122277791585477858264856744280298911541207742977077518251764540070336901882178194815847598136397868035989117555521356814493331700720980481084636143266961724657015136367911139267436001937994934180108756152307792131553648775593494064249870186574778460968884802746736683021260628441452488298199377421420739552336763964626963027033104249086066711391598001404050309255257010816962405315107602747639900455745527601322220661919587826469507731632458928864975085572059663470956426389168701452839102360524399377126761087868506090857247884625139928362611919944308808854419999471794718518946592668680840915344160956660602467962430514870465722918473073561204135117925521015513684211964940532898126681925124721143886026542073062438792773856564803676122572540483633196839105335980249460955036211441817886141281518374072220725029962367917023061371923771728297946957907204047438531451469923317300059495306681643680373009193766341037535763948638174086986817877746761650600335731996695352499725738658244575686067474621070815872484367093525521499094740667778299748262666006651468962910694248001696711838207394407052593324410935531804708824360952981861100517405322596592833906095133886592676454977174218337515310681727269963772711685566136476350976416244073304365848535898611978552076185600560782499439397527379882317936457587028591757259489827741769296261126443941827983517879651468948938064568452796124808153192759065478517259393884862203336532950940835141962659083183677023562831673946363269022285818964721830741045775053085894068293183168760013194276308084119467989927847762793679893514250088393445170794193198532339917212670599654597792265900193571232168263167853706093550877752301809463222434980055189543312619935303601095668245702151835791719865564670878772641039892174347742716748730514317299525432865602802695043395175032669961318263241874548610807198474068542435293748250122260335009375346274954397246094366549278182992768099871334423422722553884059572692834108711620945752098065435903755024102182215193241938488070685002881201782752537896814070119923338751777080834723264109608488572508840554513314685018215275992902723884953140934963985946765205631582824328746741361847712045988740154616394146197653859177136389824087556535700635543105962810941356260330764871903345876573018870799729552787879536144187471260681872033284283594354779421464333027519919895792355159844433276995325157132872418154983755135861046849070339391558740687635292758302300603635555057335427331055822081126929503338719531404337156430053618286454448541048839430894713020568742395603409559025426203298883302096533421051202019068894698638286627366421280846796297439476286481544118561586568800156824036819317183551372136649435949032940149464107616164924186221364276355883789467807063044091325098805545115849031918013406970730183318605509825402244448777576674700442551575276639800080039588804551157481011573613428379727923723634477182165760416999239796404269226977778059578027070494475272255193159049175239068346283035001756511191114035145308313950839613129103264059164007663337264970644929177004197241119973697900990539041459033618664465869624366419198275616192934775155868844053543253447275759025041754892418743750046480271764866734798364697893377541398415866714585332789903379542106776312113546935128795354402695039199774658226954492211694196320148015364813773863187702281355801362599792045066195903188553289339030482473578422526160128854376922273422261320053518821714267677154781115614524395347801086984123238900304237059065307133270068444292909679450546681957051621987062517108343559496673446643921779095837309556450675612886886736242243180609998901844048880094702123080468991526409768503565956763226755040449714427142363143333717671019444962590751592698267382501061892709449229357612282120342213875252496829780252485843205411469717606982954087241845713319355291148524008864183838841573081030164148679714115323499157934278247798875390236426047452429886638334826099178142204960545432777923707129559985610857060306165446855400494468222823952135923591808026077514988444160641584843839300704992172219199336874257183117476634720105917072460081836021399603228956336661538909939120559202152201449371135128779442443557906756065510283764802792578672744345198173123493137852556082964669039416591541221248616858707342774834287906291167286380601361532751290610801667705806841026127612130141872480525136946676092790992633283904116631250187222311688805720990657103276671956808666103089825150414575478306205633731008591466538874471785058495137446660239108175592482700201768302059095100301267868382964860200380649637286072736793004036327827048922171237504024087231598447232153163151096722269824649808034663278853387402706981256170648316894951219466413087845891085187079082345840059382167388305947071342110848604888218528604831766956643862885727444125020319811582999862083282936984438242377284801959093995116634983378959730290902611761093745939822701595189452903899647069239220506775223539936802472387351798603930463653425033493240424621959217725241266740096172675361835693006287551241254012116421188166057947150507636320268751773499261746937120022415059407688257123293625089435780373968380731101167886004769734350073337791313919624575502200209844977156095988482897643187256041882590929998998492546831111329221445172433055782783987258768673162735814602936056078528945026005589488512210303448164121886748840144529618201947144802471382879711659499624192211565682292329081433166356918936582181203798992256091860881714018069284343271893578139080339388523862310558720436318837805319245460094728576874328390660962746175265145694679131362480439954139862346656820967134426456233141298200712246504673661484763656633040180469872932498169480413794474173686093649820954091451647999687614888867032853405922112099188097991328810484105830449612028588803273504416863224541948611780981359983466493872886685643621296206086393004727384878193402879606125201183955352865095486913316642509595112810203701023976290038382806602015020573224345152732508505359679546890191579681293244928154155168220134535754600155279123698779659886475224339751752428333721508891948911935024133576240882769925078974291496848367974280968295083559248548552724610113419483338985881518970601932251961655623324163147204782007956956298688743160871813000386378176144650928342161958791146317778717243121840109811740634547797520694114962396991542225895614491487471956796238681724982788346613832414296573224674609887647929525516559451216436683908245030958952875586227359909209493185735352543688171111294754189307250646226032141737815597363973400038580867900506972624117723885693916462981995415794499101336242889668551564415051857270106667871973943158969764904803814450932462680642219885236752056966924335336719622954840229690577104728772356045145653901341535882996907029056862981772403329961061686657360847773825197873606470598662055192000932764803228593468450980039137954486657890613334731327351345316464694823116472670345235644353013458775898264784259159029182586449606350165116221803366211763073856933645382467389998273269883536312111416080680259163339552830409621732339111591838593812140057760367349168027590844713882141186012174867467417736853733029333703531128771507329624573515926935489406044212027671382121113052094920231145852628577087430489853653024915828361055934474895994599051802722707547442298360923463337936889624952009051327553200843275648114150609083343276305143791175135547470622961954447766736098903162588470089867906629918234979037846057287430078228784495200356431546995463369515744533948695259361530575834358348714710668320720586121347195294997121597028649610750480967244022457030739068623647280245340811924633824899615679702442203702086923072266806758529075885614329385045081075781883680986524270460718565050573592010789112397584683126807458187406237783085772401549695201156188663625939499513828026922274074512891311562073447403061821994730633148262469755229570723549064760926455781772308753245385919646289088134312252055394986078905126315307927001836766506327309615845341767623791554354139881404324865929426772244212100840094141720994561015409791054676033092698747853722251076767730639461944850098945719823868736762079590301203465400511841043842193437138995286350141456921072106908178288164370689780432119559841377365431275914858862571723104478557959411791297875631058706141968697170556937538770970894521356828229888939796247547570247074161696611803178403925380678415964948747095552413803496544658071869154427196312724633341942462899812040374306362770903757500518559590584045972837105119817259762796590600993263587896206254058569113564844796070422652992147815417171186400901670619180151348839352250387460239232796016978233798044169436350176519437328548090268255106536338767018569774727360878347978377482333397692746820226916512000549978901892134307741323364738082893111720636005733957922799344540817368343950644774143632173041875762546623222758871698319908156338916367138791610698967822309871288435072163568602685371113256340575540130784552818775364543200036090250394764885553131386062404588952644815513373598699411665055151030931886635627617575784311492433925131093921461735779066450507903590486964486242458788626423366599501949105241577005127935971966060042871849957881352004187943727512585134658825056336056655793028431285151521618623776170047208304177811071079392296583275811918026785669000964095634719363743947520381356071534397360665554705690264071473959777530129830610255670640650694547212559541119430379141246985099494734481102776378916156809648369703668488624529454937872045639583603139975280061413926414546416632620115080373467047597854540686955504023221892440978340668354359403889059556788403586037706074838602804242905157142657259428781515380802146165907640015547841584429320315509323339110122311182168617717801310102594172287981532700563036620060023735424206696435747281536396715134533801633909851785245319538040750822875179394146669920637710040420399912893303946838898718218917366474523795267873067660180477787023446501534441972466674281077660079483952338984276057281919358142940309077447365250890093739583227824354091095159229418515020502446896594295472613902275090816492874999823192050005122828153668289662297646139692200481280382760859523447965634966797677931327938363559181910015841628210054606864851820928937148874813806262981657420585264553554912246830310569582305837451399188295849858869547279367559555508688069609372724117617345638879937987943412843063481494321677977400334815859862081568546104356663790752289349744002363078831410016836097991215885180508129926233300717200521964678750530342011624857256305876541191968295455946860326275071144996390144302873483494939594159957612951784990120562203137924223878578308671913688861878245022273046605993517599365824477470232465575330853118657781919043801381690899385365675279652890078077432348096892270865282458301458823378678409155002277935471873750356337764692880335454300940759596626630640553848227465384682148614650952461337677348999144314993377221462981203513430721963625922114918405579892927756117060638004167506162852861189165526538233570836919069178905825167200527062305527755391937840833946483672202991078416724600966982956278578532342388974517083546398633745058380266003934343269806183610420012725114694116523966876186328378934776522076619407489470999152431679847756951769262503557261031452294212658338585655037386746662370044133791297833814616716580602039790057442798574310798557268379434773772737912870383264537757490782351430476711628656951002966567002021423897998774462582718565279283929096274409722508675263800218196533937198641119320368706123529499287700383556177599138064317796908374389471944882428084145897775841194760093885340529101729281557942037561985931134845644563060713473021409343228671507921158894124698572149383355627335074466116530170857304182212005278410588559816817960351462916976977945451882465049594583582802029073174902863154808934706354647779891715128479736137350037400076817730429685147954332304463183139465424326405895509606442270126100065210478092388816601568985502763607629510699259813542837318816702098152656730190647797228211265701136956855867304859551348726258271949261123239508047703220573525300843392399183874466740567270963827693675960648114549888042458271069968855792902741034823777505118518529737521964104454066406781572795523105803680777898748296092421767581138221130497492903263053960768643672894268115013307220855056870896855833252522134030151688248753440832869162282496122635045642698847149141014082390020455250945410596265820536144423619172948713516921269350426463647419020672480391890899417206165454111254302924310220052381397584532505351207267557415572358878802292718126644617094346354703873394148758551832491029958732008134091707754992204999824996502470596085827614903586520372091414053120389078568606959124889381991609463111147069097405798672939165599369939972851064245267740447091218213960334937170735598736349599785031346509267411349159399945500203452684047748397932104845071844975144233263211290654190784889365253534136444456843007086689976899097795985880350591277612072813868505315194480045032220403827738754758404405865655608731268138098849549954921607343617876351927519973330721165060852305618864654218427537132786890775625208843968454166778967932315809574753910650130791042418195393079598325510006404108066896894004674523090705797526240110041949729179574031941921463132200594009270405962515612039622605985145463674053538618881335129658973853966396901532800461928482068632781905027139811082589197929829444647868070101100331625286299292628182021199345164964384933041737377318070966393610919885013781629749944151491729443691153838528156655804691332660707490245244936436861792413069972518103232845096555675278850006651227753644907537115755114647497224358432841733797716594456788450631792262081877957810043735001230475074556072040659704024667780756917618156224017770953032365817519470221538585186596518064872635768256412912598572636376910580614895661355356892961450743255308324939652218512765697373109917442091767395954696527052171124209833731906985098900296136388175955514723571252128407068476233515685067351105366330343733991027319157891890668106159781567863680592479627020714137037972411641228677371413646287382606683065971477489333659803344428840284924499821320302720284765067410080436069301090483028257746237060112472371339163961544573485761224694239621768426789243191644536321666407003073662811101636891860181280896186694050230855140854124475102797940105543401367999923784136666812501170343226634730246827915527665692137990452558645861935793555400508111894177716139989602706674362690374802071667620465408557351398021900820254181790034235709178472689519878587208398454268754706018218884073498934379941671817288132008312274732402537917951837562402647325914188728849708399717728673302486367776480033989470692976618803488276406620740491728359826196199054367642910669021022216238498269908275540998827904901574894638522501128097056282073768344654503732214051747229723402694516148722074107776714347247578612419934010106250256066522430375357946589446103986424540699032862703684883811826879015652931540997303653504381619812060434030516466482236279935044732302132954825698266742039703932849417798314930834530245861353463901461275282532261658675313891805565751102695191848388889833269754014272213289172391291245418293870595352580060667831031447025452205851614599375573284405083966475729016067821993082803471741707147946085491371319335313684876054110596607302091599759427138175898739275030943230823194384831815985006497076178298518479161937503159001340352169970226293735487845968743320317647057118281362899752264076820685002557011754389253514937026266831321075557040961584418236744308612777305104509291030382658677867981464433594185222872891871461276225362148053200820311457350104839653208144411622575389011500047640901537377215083612555074708243648097017315478630548465998082806664838200577947508427159386698222819292475685227582258499283818711777477497436228331457074993958209899448858404895553032197105078437757719207700610144377087740654180309870406169169476506257079293166895845372413394909981456808500638896899889930439125959035519189822281538992600559363045935208459020714678723375172323767655850280173304412358604474110741078655411105092144666447002455142473049922962937709744969699519418565664590770984082925668616343221734603046670993508413930628665389804879785495559684936211834244054613564793943666289916682803585741182978360918255018965491135005646817889285991010418975935636530706576706369965336084839489530778961604349929645298239146760778803493079664470894288442230783179555112255548864120736642875803443481883190962265338199667670955537290093627045733318919659033603003594329704650746589655672856936624161127831872552506362732776755773515870170694398818809987310631052304406734099899195444401123648591807171794112440790802679431734269282612911616981689202238594976324220629440986435625687067772540231802666344559416427343712270439735342411456657716445019732485688010616695125532738060211200141388537486866041601985630017896346008664336326170721788549068829623220059377601365082927389141109488820061861686387300252820942409884260482128506331440761845874077339056784026996874017550349288244423749555606663374673840098543425176054483570130462947183300130091122821944772426661425605087387615311804076028695197492205807562782148910383104826366548379642564309197275112608523395648499225944496178851100411286468198285622051649839661690857301927013600108244821190429585226972412470296013522055390887710604694749972177591735494198089994836776179003712838984983379914266100810302440172888832443652060164034643525320846240324669273582220922158689415850222874799048531225185389914515387745299863096960776353427984398305248774192749088645437189417502367435116947366397709510318721268304610876404259081743071366641053372343696451180387413990353473464765764811522921596987667338262325995219363643891868222036356765314416242828742816222438386292437398470149912526621828277340451664511470636476449156434819870270472124498899505710782364223454854235000194667651291134413332070130898727063359018199357532692584892937475676943112293042336120607552028549713078428651575188851577731178775506071033853983917206733729795762597784019918560339077179174141140542416806248714482291194479518960323474226318150060374373205393894256705304855384121837892322787385075390707908720617063041243342313189110598016642516413390641052532203419379161382050045294915837268076565601003657144450825656817682231376859815695173552397022076148163947729408419814374356104078440340256992904432039328876033917714595123303621573410167687359886533149736573865385641877935113903311469358437415692152688572570589726262154638610832325320788874084136864554488848693778109342796625528083145637388649357383777926144495938408634073594800521418848877407147772060136302192122760017498151743494053324225620364550064072558095372369500236329577633474239142046280010309825034402708659479759276804983554016635612666031056099240906942826215676699920771412428884424586627288945825255317338226689967062473405659564359123568083343295802812665857891909880037703923317946709209082881220823528583706938076329792453945912273461110256253424891747510769349787651997655097229837529702873654400450634131195949887794450726946243021809088180873031141133958171749045754935937336580279610642731922579243668176171954988609222414482476172735380795056135848482423912991352193747342954344479399127502941065229611339011269381253619689962671911758477237579732515243007839436322543872644739345159909854481465177934320788205341485789385742655529459863602554779138451653501879125676166198549618939414668929343807138670558796267371482448511176384482340391821951940602297530588613970045776484657474163292879037251708056899908873854787830565020161181356734485485647044712835297658633621703960001742750722366027901598641459282406019290595118291672139439254211749813021264966046975384533864530851804195551764197658339412808903981491334608153640798033787821782983167393339253802083548542099001839903749115239807149141467293443268411667085368960921616617414211066580496892563256778159185920561512027532070780251163985612218676424682773774968594460301924703672158950512270823319551099918003500485520316970583219765447638538522719055682218631396010463783331036816801890056874594700470298503654254092971118743778725900014337119828101707346992462599639492761468315970747881593154405846172655899843683165196988472104938703434698961487584705454023780728555185597096351002898572995270917470221637594040801567843217132601338161856823004478015183235562202717972512861253089069599563413479908231595213538754655049001481034108383500582537800071491968439315896230623327546418771014616944383164342005148366827706448738953219101610418606634861538512764378438248586059326965121846216061378690544419295834713838146894723940395244450217567466813586551587885016126230180670267579232261616198805104049861502788015399417383939625665344843000875737713340357518766449111966255316067619339872330229701988007726655214200028511865772568124604678785508325504113462258830221882752371287034944860024665873634143829631263853983561092585267850901794205179227152236504613359286772103814044221634248717175508144468478630029135658417895439922306824071725381246943231540316945304849024943374457441767112142531054625744081002859215652607652660364673041181580842132308296517674421189260876490565031968242129019640930939697667736086598932345986946012558455711383129497678540836072380706512072649277470371013080562077773367705076180410031774724598298319423551860814627473476317765558704218611027153248989528740685421281766351751771235192163680140202691971625422948912741300541294306058157539777975201792334700422428387504160216189539865445020821639741052780118568214984651687668871257642685656132140407580800068463757090655478237787209752879070145845914937649789796301057078991853132183966009324053825336446057111068853695091855395393506752684301491101904201465272551720399721539609230067545632611100541415804559356693849743899756762594986501020223319533659453142872510315022370225505447328524683088517767263392199146374183980550589062026389488866137740923932681593751425760284548794917483785570611882032835652322572861511144907453636294364958663463212358957902315291859347831038759906645203823342221216236635297501297359025518083089446682615774449190962257810573002696669157845546062083906395288315964568776073547995476629304218404446674600481788026975060450745143760177653324957296193588018698472363244550305173863582245585856213591358856452608939131116415999231426377837844619914351470499483695637538547598144379594724182735463520510952299572261871429931539481995296999399359546373751941093340498200155490974308602226134541168777777348724995601710866158966740013855653770932030504182172033442261010770109383481285660961414349642097672546861879677024694816224798473898285757322077275617651537730801522627497871954711824687005711607611325327614423892527598046174151271156568552421293693158958238891755979322366169234233444550307118640304966641150197908572627563498375375604350205206165203406702520346475956253274862259553237009825459079115702936841241969195264419080420973246105077107470946684956536252397397426801084692062864818774549691181994185987948791354455441991565491516398181803461934512803782628164012154395048738118582731092100808768730097365741781089578824505484094375306268438866498215580761861108785095281154536192460640890603647238014129806674523628485040945967264797931266155506678341244489635848387091101763209348037043884492279478552996239448504633542459034577488970095426491114480288008848890771521035594406536670684667707237632309325197961767652166177719275134643995061249516652688189935669592666877010393026469368098712456938348723523110163991454689390261900473445663600985774455209141130316678149073952373953276880059625759686337047956930372855893303439832738154829759267596493046937770727647629951062199401924869863162945854743289526797765268780585206529641606113010367746733122529090637545510687789859526710969194472156884891685193341591954310445960387101831831054734820299948070095557054431830379907315621068192114787930599492483307282114283621387883239019676226806653927520680553002417635237469276125002272836994798923211022201439092267087858737468581217259494450853907269258626443343772950132720368983679197773223114286930128662065234829472115136274839274448167624357097050682982230264485745678701352448684327227778761585483770760736920553796160543048737803874137701136886976726565162225603325554241318821073490629542026642090983448190017846319392068923386973371216771001252591470045304835313852387717349161882779467142807356696462376277379033859681906746233322448142966645401714776415244717902899126263186947825997742420998712832241856270295686208979788801780605074077730733915501547336117305087663437876235758840882304980285171916106942212749105958360369828420271491188155883019601007850799375919849257589143949703335593091211342539510833561425135389497608851532107971332673876946804504876934039562423695379614996764757779254377278343049428830944278840460594389922967914110324369131477718703565479608089992324014525851665187707628238961163554382811975582141474880877864915900175844033140280480618617256516771226787901287472232747544274434896442859679376102536034727384861742007534433700958321019076323284669853127066022841928737089340478746449610193867121346758707731091721708226775577645656973043003839611409845444044554654149026661045092145335316579681144024207101275465973533410910931534250667223905186810458161738173348336920399679122647713285871352271946220268612689613263151135303222384412562166894169161979263059910294290499465822050058431531211391842614651872108031304450780972986129409801763265074607770298187971244361387862791834996788256498530833301476571216459542652423647805586597329485982092578783024512433720644053280530069524877420179888414047960743365539669825280497466628207162964586296248832676290598207629144035138533507175832866568811641872978700243111897985550762332125975747391766086455812505611266084965862396482830662114315729390023442407373588536362251341934821810088929287863724912154103683415468203959254584846126505233585022160924456656293724697025071504709245264439443206901086273742808267022176416052856024999881618954439299766262715335045035069096612715040092248709195726691508522043643769660065664418349286972106410513432935967666663792173851894352807568373321246477503885082456422967326966630827493412293206921265756091360381043655606190431782810122804527396439295517132476830118014055459812491567272307968405936401078305071927085030432072085736150246817404358493942472825269679314030296663462579875348511090021399488652126013826698926300899319100547448245933085283572295767629195851012907156180882682174488477468724453127318194290740250442679567590296231015708498760048627979914978429211772754600156755926778127608643253350273885679601828072701128262499687290830249182238628679817359351820054855032976071835079107989833157283693139524348263965181286412052252188553813715839122351350136812811351631725261487723383364459590018378424379517620486991485902691352077182269017234962322528471328218549220334675693348910588502700373412403128181802960350101652564323483682494310516965136558965894530513944087548238548956510059126273207989356825001314178319647082784403616010921735882017039733964123985822204876558985790177461418105859600285358492058144260887995093775651467199090004964232994457945109586812974745451883546421880978131722424969115459496902080807096415633643871021269782134944777843313091009011255112537018200590671587919906333301528825262329463617442610746173724317303238250976635647624963428766377255335308879586453375968343183449896219711288869316732800138511674905938128164941342003195078531158061284244466711905960580405361196925254104382777425620123856345276732197365286527430686081706733654868075058023491112221491197463121544900341535264292932016033418707969017964541350075648226672717103280537976214033349531445181842604256647375107965978938971922231442818524284914171194128079224166609368253382812404289841532853698890818175768769454852199663069855622094041006367565808699057783720991087390262160147997698969862718013203591042178186769485015746016134930315503125377167963237129797127330811384975891857231583556674094939685871745818065086936187965213199967466116211844131947447928228383953223333348410747858603590917306496520931968558167809691612974575408606024467877708892824444195738712595449049186745297436204588735017311094902375738659001872751304101311547757680355172661725473568569047230680528848574576522164123961913229879097757299732453720593976166501702877128133413378158752367247910583578393781127570114560943579860168651672074560020180454871156990966838752735175722665181357548924936434495266722602044361933183927196261591369354209180228083362482882125584757971766213410088851284055905421544650020917204095280808937653562045417130257606426747994798343105102085256143777225300450336718231489955029250192063886937469592711340659685696078905002706925059670963636305142083834426112814868446633903384188695179397655180577116276188103998200244415600797463620660371166791022015720568824517223510398733295996638643708993474806087215904419159433749547584572137415723122055825015897957081816467326093731139623029496683340600593681503523593836403933545478795351942103686293135040838333705779333914277472280239631296594551725230326640590399651402869736165006245868850145894428889447382695244337608761304811919202457081972108785923460292684877554688883088266552546475924725180052405727894691547732697353281594025914421133637235097586910806005384207344614661231740130538320587159674816804421619713374124173876385170106616046737960205806870288977195495763971198230784914325929580617853882952096998371665416423321811390981123000618946013931222850833375879231684501604232802440787603646097821695732621976122855305567952454406289496795350269439602822388805806636824215350417273450550274247178675537817438387044946803998833267363957329614953178269097896776824411286594105821979173704353609125429049905234536402727898935584223667582711484342160531471588410492791047027120104819179134151490301184743536065067132385606373407695016251135884708188900468558632176678453551436893843585142261009910292981671868353329307073111131751643226306876872090589012506667660720574287296763057137974310518952202373057546178211443136788072786376136714579278094654374770622424845785689813967403918877579625420151601489630981448230149166441314773817454408206313418801105439615647846644869779642344860992658524824108759419131593418165416840022955133459219374903615113760791579641999483862419622366925711159126389305208599928022724649270431772854115688177033988641023408455962389103968670800661718002774725279462126668170460125879410576710659690126309871781099478722378127700646725407728535738539780204457111615357970505803767176892037210938217488437090593680709371686776001531196109649767104614752629375323052943958916488229721766721776624867313761439889037367200341794480579050819925217264634422465632691294283718928679630581773374186121564914833482323349775896260443409084827093728340517918185883623409021467144417050799469776622067724162506029620686455380212955056241369276939866255231307125544126434164027502995796182679717562301697821135720278728821582659430215701748253390512598866962667435059383228930221907286905225763727926823543596725007580180767637533253658141238998467766530206749603933476687511786805074215733649757486482413455540507225184448925931910383434524416248302732632400425664245263553222637954962590144967697375071379498242574845236201759684787169938062732648145502810172846962630705691699243145015879420032954345496656010348257465764281332502917397589447602532652111030170264699734594140790203682277986998453801844083993693239604470511640820222579167069203599823499972925162639900199734115699019894663450571673292441170643974710194296344691110208008136136697423832399077492676535462156682182319159310981451731217914076306088451978474796850938988365833244488198999659679640018649792168817233642691368331340711619590332804905957983896220855977053009675638558153919022215014805609476868410941102138889038179942902764503709702194757710694194611551906481523953707916999353126406096551620211371499425843993365247170884563175476329697652435420304454112702091403803171686591769830670848906597095887253715725197360629676305857773290143522037008342130261600438753855880577092206921347572911286403736391513814163786434340373571829265266386531383702578223033756820421269585432135641337637568620626044193016447669710321707892387960571629550642634338835496333306450923992173106490024474668457254021066616556463809521772467548128378280190914384406849869457913730837748059861629891960150102130789228119079590138450537338796258397899824194996494257812146015163978486168432946118625423045439685900531968915226118094410765623716032615670725651744150540649471673595199389273862280249270846876501982776839355416257243500983260757080512349109001557754628999342772866540663244657315147906242220042720061396947473424671855575289615715347706742915037918243175597683581024917560038493674939864893678082671891778278613613013567534148036829367359131505258001284715774593811875886420655481400140865714958506493423150372971502843576575068238996715088568182799175657101951255176285810720381224509568334460777528986664680656176826833053480889587629107547698876319389483873931076481296274256902586086831285972919592408038798470217241908760737792264811768342050792255291550109773450207506226493828353659102335444647346409056208742439623883030037763650257352037248378221097391779313131056126542913106799198474837269646680338250656177919725480640752862167524091817561677874612387220690939898378405377415397131580872252813364829156330366722836261058823639072448846686278524696469187477704444916126347865426174874502988253212157194405451394660792362318619330430622415624632140320942875585182751683653624502545716291265438232748456670296004729623487989201449719795037495207374162187352563326334822420389482315166062628399709091692978344566032756563197199674922241321486875817385898891749983505422156943922609159990553764000940639577992895592996493740513289898433873312561746214389631754442859599000985766747948610493231588788348332029265919115644642824452764968412630536750980325583361756736169241726193384347654297512011020900873392406720011454409880931042562812712035481474978437878995764151820371995961425612616041404066227225727322896294636315293812220391469481347290667467235701714842252809901739022284248946137414672155182988578600994867461190856103596984940261048015447121598763437394922662384328730963037999910330371515358720161042297745476193507742243639045113111950892276423779582187086790788677949623452577756125450557074617050337267417843397512292750904769728571779068006057412630547715335660236568056266447080541986040633669588483244355180765938937361861596084061429049392169844812876058704826858408378127755143538396033981112828870758478338163891169545561964019810662646155169457924424297343591300903210877225724158037142452903245224910865415073128555112392740976628107045561987854644984099202962313919813881808085176643238853683642238004754480728494329870937040364062270068442881738450519164834450048276231027923884940801665425319729062952614425660812533377404874141606504273233056933975931613307263125390845997069810919230749617911322755249865611177758348826756154155069160728593396383932460404617739638985986712787409271170361503331384517480387222513766368301388320213960080951324795833195297400915152749165891465983841990294156715452138267183714742110046280112419294567046872474623225047191464143167901017981388693930177821224435099604684180195801215545900510920114483682236318875214209656662554233772236651486249514922932798935284580245789170242094100353073523877694481229033987931063958963890207120851828920316606599926918717618275098946672950453438191402861572402975786382527970434079076014559142949268970248743021772270644697916574349453834356935472154640207702432525243951559666457117250811030876444405347275717599042007298575333354283595629381058814054258623867498871649394142415866173016467935340530289077497622019682435117992735190533606048345892426498239011062132798488727845131915265779965961792286351980672565484953729541559923300835619681956864198486117132700386912413644204075576271540160243042509356740312094700029460297474565489819015519368269205531530371782254629544145374316939367573624926357552960482564083095433977711906083745580184381553042952133764740566824038147410238916911490478649508191548923718432472052905697017349605297404411133334648703396694848115744218883811208688734851074113025107123653580338363792178037180992766911227951841642848241274933599285071943494216153513668423754709110356490611554098052645063594675572530452547074796210155744086676853173128897957424844733788712116850037113184666688115002611023012277208860112062208601106811835209470483369374339042309447069322237386131685345629423257536680291416922888999137708425745457202283914734846431037465579882100249243116871747102005438221746834933201975923406438509965920383566082275132240017245462729881155276933115819467951722116032465306725268527466746392453278238600285273041887324842666910628130671727675320191632363773814795247458217483392608180218626038247768280052141405762345679000785793621407250539014347633380474565033807247657969826584144888544557271392068885654043215708161552348637219242160065655364734355629903258080760241820588394268346582790376320573761462592538016637831935262859865265903312484654577530127121605606127140043407624409471556531512491731947503562339432025647644665543917982568572543382288036759371474009223837737021453401966990494692116888173535032214208532923505236391675479487658654657072795435688686499636006516472695998892655983941441795217567624975961941851670190276095180427378956335999571622149851603022897714677635593488552760045907424276329319529471745247341664696470319360892906352538514757510154946519259154445635665823061616337727445485403008163293247583817921729654393169336995561841731651817348932896165264474385689302914315368095628363497565470827708211644014603351673863387521631428648248602949870439959348034478458886610471120101770611783617771762050731653984271024934877534024518852286703752542385300007083431132431793406868624637030193887269054914972266475067591853242195624621712869976783044499816792424554168576437032152288359065559149283057625814644856138937073842673141071882327457271864042982247652522379355075866176335523430655426426635804979261682926844170547029268297615572140801875022919124540826412308964395750252328391337241446255736460530479930171955103634327619518390463678350659805045192805160802963994726322449755067850128638450064391259383594856855638896835700046077055789684712717622489130301607394863606149373142320870703076033222308325027938435863764229129036291214222820015325340900668149129342921106404582408223464431071022106649149577264979135134202119134997219219850343421339412512084194413104918803789938435785867411867545271082903205478879422142018080592068480516241594976665736916859292225975869963861999539042885705914677580416372033807520485939003489451858321639809154960875110598334901007810916903899870617483371843202286658094213380789285100720153639825046645893109042989282720577646349407060108682775660457960707156451967407506301121540338566075524569409198281346336220191299084744676057843207255274497116132936223635676033646232491584481789613014046209780057985069617645032728718954718144953207520121548992596072791419947107799171913594131810024304690605266825768965131456277038963204452521887457101673701862126980916282723338148734881941949396721911261401676937776842866423196925433691299307909810973314201121307069830932756772093562108352871815690820279883076738755312546296645310002348719755513595327182361881542366705575008388803786637211846115326812226840603794662858266912817206144697526964027738384834803359955543312687529306029815128649758050182115979552668864885774418741569166104653308573320490139478946546545450457462906069190157634747034466376634554103497231037193098769021058895221961881754389941246470770270437964960933836222655242698993875569806705549613490556715524056159993576497680406483829996641144280710918185296409627866405680834848009001127554056043566721179462939715511881098546026103762839736598953290180839459912830053351530861297414734429401418195392222894391183007139416667905718637533630661796784498227872949470018829901231321624885406792876153978749195582932072419110529420311075449000055736114565979241043335352995936964069862813772467941425945079971106549263022461127216519568785460718633312766042142927756057602310650520771395646613242125552823784592109113709606067661631481908888713906713498731895777359658427873851831437588837006713415520842843942405398996512842139590521138390391421431004766891737165402440468485888618728390582324657269382876268099749391727888957753147376701468127204919545377727234531337561329685957847238620157296569909121356238871134188825082754612389447988985962844660304503672201065644692080692933789234937251771336478511443237849374388429313876404375752452486683618883230314821789157235483433474907222552899539031986280214788974544963300678079173795558385358487544426888782904198791264416269978233734878665183070598591004371461409616431689080823217884996501943669759135240677067404296741987543160927559546870513329577733096597104615375818540149424569402942400976454303594828507651217467826623286296741709852911868639831884256878355242854574974143830353267973387302122194520606207475477050268742404737670990735279730748936499248551029639310701810353179469412147924798548135692498851186325432337168934458527944986611350965933283963031177439606962416977392998885822078808467491293516077005940040351127130286585311306871673661045160295653297112846392455740321988988946431054218931185583882464637163118129734658080423755297120756662332244563757367521320035865985173419245395727396785568727052261281668328529473764556585941139816104882163785714179998240689579268255648483780000321958494130446375260818000480856183232377059386095156511421009214574627545450017194845893772515686489670575352060864498660407462729265520712526898374115333248191163281722959500076295006915222491018964534123161315560164912930591278309902850200289746857878512068396676164836368064741710564857746739174776137096063489512263380983851674488924054311894584686141839554929703596483862365752587016386612821890539995649292605849078645745272393495931740315060664931176926593172779789967291830609711290536409646380666518627469556799505811441153228375271351465135945558535550987931739865557861410167436440387128414678490066732283122004327246775840968277071819372724860856533654841598612147352788837301818758093460177129269126717019999977450749019221592585413970859388563969984225680671730062373479644601422620267567483554591662113314378961837430779660210850005989902329635843730083629967474402316358177285916863402850294372364196361560175481048805431888439853999972383436243663232693373796129339514541390776604766866782557687552012543463889720346299498080038212624510954274197913742140124622636492186216970049001309479740907735250212862784023978528215165708964724112390424657810292422367131804103552781630400228988408513652637629131102617111420308785967354500488396195909662817944319483166163714612933863414287650045227174072436826312965874767601972936649598772936331776519525372049286611717831906542569542106518575862393482155999406859886779314917508228763804001275547554871231101712147366334169862890653849948559554275177940602659143773286256997084017641207309633755166298524508070333450984015873182037854313150677368264533001344791102353707123402917989477345921256647567371030218509739322323860667282881621586497737311973808511263802517204478826353713309610728884929254219522218639224718389836977654593663064348502779293485875875694874616240272343910182890469927093491928083921435803392308260053396616832344731589538415210539689110466509024387681876293001074115904896755819200517900383384898083854910983654069683668962719148061204990851810860990051319419427641435369302276646834549893722532103118910844673458662648851917840024094632147973506301984210318405366310512970762335241195319626415853802992990112623278600877677240258077014919935876125994084349095867660581366876439924717107640270492239175504680794920176328228100342419878119527823276064649328729085737750757174357098627488638234615483207830898290639893674481676288544470091981892536631797224279772754403418642901721236110182601914125143443887757909736777933646774704304352831639253800528283823662604567188444317122301295638293747878070131071881682909394330263242494608965196592967123078598954711757215651623611415691581840653917022265199778600483439786302184955616344324372684534154417153059874415028627690119424430134098236320795745380035595101159954631210512482309044270342061797451802927527068137404301634971562439639745424646696302135410220980362120837542064172761610951551789831323980152851871679391005422486534832139772074051190906267476425311445079105041826946774763989139780193293899470816391770592864387142573587700775325425450649597537753601076964248022055866633791663378012575090072084714255997512536070295237068138770457853510594879247296905117988269454279652217440929852711374504895438170733564675059685653609792832042760599798215769076254116798900637907738454844213118496150004135376036885752313756343171656661423430072270508773501896481060911318860822642563973245713020108340213224769316952148734260770813147558548002943383774643508784291583217771936102918231353987881670635809172802034888482769874127956552979136874434402883726235195588658013483540675967005165428063165911630068490763353662825973321461159909758814988836010779047834782052489690242149242140299524784239996700828403598682999785385136410703607032774123421516583589929721953902887949777199083344880572082457912688929891043380978090630092023415039996027416037163794872765584514377852932900724655068367610960217802912621707433300641260066241308994388873942660455625318121494102387932611774304060229042051669236250193018882427046956811960481670029101241274737053098388108113383955535646947954086408523110845422425999073143907051483856345075098475609270950218002067819340405349136174299919826204754943913586837622568320608303987063714699635651164145360441064862235652505131823345144407790057886883286495342054605839017326181866567432040278633730153097246973154968500931815263520594403324795537658367210769428722363323411460469973032961263670761714897091946471369642672915360250563341287286079809558630752324535188058606549167722857356232505399133128558692804271631128316526778848440015591390851241039561728560906765065228723565730690506214296595159140855976828754262872427753504359848066130841629600238765329414485944051737487217377109850622276515895214324805522141044863090925643259978757507913957659743443386662195007086613606042676087466152885627472862504987237805801828445761956123316441609465236809998379064771391695697331594064888565687845202328821155600784014235424505732619634685436273335358264888522096224234927946572572994692985920524018279428028430235342614619974667542900999585365937135894673212745629900852931718317718430019732726315522036384697793343242055049794316369735778414445923613966175900056614525270571475638205003930638518857256114086411085464533418993575007028143959065448802869834121106891540379017424109734024001321644570191107465931459132901358321443562711437334327976808037110137957343001934993482837582660244288444227450630379532100211621421279877835200881011037397211612837457310850431195548408158705002264869532433258075067349969148681465581091947377971556485098373448311433143419916796058851919822981740761829092520955959224547497149150926262836215055637565028505401058844758019589626748522233771124284649635157115560886398382126427823873468623098867628069449347847049073437085239040845605068131861198675269699086443064874977426683551724950626727536917954758891821039308990838287374287599787126134025598878653574964051372001869333943726870704756445820002658968935848449633529756540978374478898248817583826313943592811303107080358485992392741825219786907931272664587512874344574784116465450188220739552507453758429093733704454812332775008435965729731260849628920616975618918469170642242245725381538293566402744907206381250130496566418004767424249213773274918419213055923718533794420411233572637736030576916211947105873804294287555012233226423566286458071107533063125683928683102311670879066838726353819148677849301729508524034499078048139780652901336356260716744496367388684672124788087140075029116883962149371284447790845111878738016765779827200541206662650456453135720701717809116748885832576840300262064454528540556479479606923608997785603314397994350427553056054748306462678561263606822734501630900067784676224157871258613543781048121803522914254062180028009736564818599822234002386727605853026335354913731607075507573454307699891979819735115760538224708432331454460276392989649671406619463885253107891778913784812943528889838788889558478398253254540606885459101282553233143396347911733095905002953197889129821036139060538622735216070134668875581282325099591772019461906971305068505128912389091445223550146420385250585247484721774554197934892976991239086080270999926990767718764866422062256311636406838180044189085531652201995669358112320934751742762996216532160457786788530840399852812151548333904321875381329196116415998046244107297967820226881699483133495248030014190026490842289086952347594258731406102456223686653867394048256325692268626321568909711248095195352642899056025149905309751793580522299047796385936814917241814094821217228481103414278935556831167391452132940848120290288518652884747135458513013639684751931011010419237077899034265056777698016874475417945008413871899800933163387868431026595526121930139966948441462775620327018635606288887893736928475570286604898556850766414055526707006376550409414840003174374262494430306662755699646642697299841553195113100934577919982951259313558863424028101451028981616461377360632345391519194282150711890077350769402145503232845634030459882752712322435311447419351959075648525539968480198927771809238269599826200949169879629912745204059472324253661926461003216795887486552318598922790129613596697528301328394118241965963987190126942497317889660827652183159469959334522319355431498702498704312826327394980812631309405135848601334039394723316198167740731844884657934145628074359833481012738663048840464732903270833930349536452780009628164519601788837393337123315253326435936600289614341943024231084807408852835449829545288932043772466793499601959688301117268666734473187469875078885168785875086527755206626752396310225545743797804355962900783466407480625559989346923770500912775670402730188081050829510635921150847753265215884132940575630265250452873693121655201148820695443273197581254176822757742694274702194358835052003190873240722426640871496978572038812388779911387154146965154316865542626655295970849075609881145387915107165538245919922503612265033323785724735152303498551011380073526215226329927190372037336263588247180503984047453134847140873250451202245449267543640470006380839452559662383996254454753460491212460351071318737159689062314512314261999217104755382203808718566030775046901949613383726071516242999247833858399383688580724642866568025234125706802404463379672057228898072737424611389137073776485100410460125633703101760516878118972715384121298798660459128035924697870814710802792671431636409266335105609041758674849569981474061982002563770024797410502633423616960492469271327519103709474618782547433522673883262835020437449632241107466831029047020341967787183430638656558182411000626547065813372791201388230288815717854124037554119201245734064244492813297487026063799554286938814232989835478219876475987910939249729272807642058745658853034181312957062859230829383876028099008717462057068814215592188743072862280329318602600277150131380624340353436358564264436126296334858818504768091907541108022754801525294112675617533881287869191416596347936164612579396164433536405313746811360685591342588376347582647846026790873191314372515357299292436330487946587313863944833511300545267840086203777527645637027067473766219347874118849743364320929908150764776783050352997722396444350440216795025675628200741023529173800314146263571342726026000482946580927735609128890949494480455945016173192350742984027136464045538183954939123603019009611761437028319061098556355308573373098665498331003814647048609437144187242568541249369561690333130695879386239205659096805531360043714434663789310905062881764569134339034889629529925164372441485933821233445816823266674078657425058987320213075548331328808057529327481015712340900343566613394465576274060578381603463804726368165597160959039286891554624148938289649765975686368830579138447921225292769646577090256498176866609767983445391127902344509690248400851164244334548942377271989054641715367811275195752628334304870238600422503912905459831556549614715925526325468578738960665675929264574949854942950089669250258244567283488990596149417574099220582908099395695382642579097933289844151205584884991533150177906450820515589900270860603176687468617291143303935276826235759327230473164312460974618046131099910673819411519664603871500545197997916187074229499837570262182686879025908035709683361168021740527028173143499702120679725912014372071433104318291778001785214733800020673733952739028932370365804443603937186914657753982301687357655005578556752649954063867706301888214488518556118461809875848046552414859523414819905578150322335087039098540360105463608412146404411382123202440528581784727258835031839893441592214237224716537875787146639619701387311315479555588652622655273978586844877294319412509820012643612682580461463088436325339806359866578067442101032337967649463447288173095166259537371157500008140371925907103667378477897478752213209544835699112555432204617948245745226708895292489323476627794476853481624018192132426331037801767506419787134523373220707991745359930580237105921378704503685942429337129565013066812535377288026774054278194848033959123560377420745339862926055102594962310380793375988923822265599226764787440961862792253213365429976128181477492012434755890124897400746134654738175264068264289521554022409229532138490628912148018504924258068876391321228668675474555277814835039925692358122894971334268896316049989064752585389128393457444472925335210959592532882143532862738457491237209154940398273800786738703647892972122893789777874081869980617687788454349574415801214120347024076822831945240886481661274422939200490207653389003810146736047100587162793263213259685621883133117406363148369773112697498670579503367987305838280116566856900043368916349522388905449722576817031584716490625341951117042513298243921456189055453345830417327957605849182822123047930680306529767662412050832263381771873745073851982576074057440717454561494746662600363538248833204291839537531166981353753679124749997586829036880984005026123958049183815160519271721360224225698635440495929750237706251166341312843549208013854606827800989401504736119387771501151531511204611317332755918791976098450758751433519066792980389288036388853369216558056425106947858680310971926565083998194310051783188537561760976729540543493242180102569560747579441755626685915839223632989203082089441085580279917129971022610635409073536642031874891043310577597256295450401581260785484533644023609046834134356174855400137940760524021915233240049566560034673865809248253787504407058746855670914175145840022140636655863507994577137277499467685214234571353702167314893554482070576163379669906132876504863876072073815375222543257625836974720424813365673535504690417325494474229829623058965612403508894751798048587177361954762754362195483163676063265214259582249687625299287441641033492664049340476590336841410520737336197783598630560471363791479964089003685125955568651509558423270897361984985037719512328910176119940138198903349536110915170279820150513810760324870610987071034067850722808350541246116532079155647085465342574281234387189541211749229321023302685923254422602597189669420357269253879958259277123078522418259310019527071006356575517996220914786168669984238298140695135846667794438924384711976057164703713323664870664029578697730098375141625904034649450059039394666439984852017851644467275836481960398169296687787692766971765286226870984183965574697153406582064292466600291246013303476303313568108972877931761351668499832452603038999335342981725724147021008645233456099941146576543313233100849643994964346803811391067888619302930515264686110777773521960254959919733303033608189933610519033667293189756506023793677346884699047598089944860607477952013022156080590448558068392857292178199773189622019104199733783966349253849036065668128194395233900715078451944366938052780846641150509341293129243505278948661563057916677812967522108306704362106708049936895985517422058109920430942071638271832694978811133038111612174836102093071977362316252043663036626506959079627287190978653098929900458059031852433067979055572181852591648900159703681394601393831747658768164065873291629923462455285969007230147400882460807432137677667667970036707467821117636195119619505737055879073023265062051324909911160749984298369713345139983214707317769891795821229665120437390856883232049620708053540342688547843150153664411930654125266125583014175185067056194482435155749687648197048779824978014886651639615600015097284428513537121091026997559284524855859718677177663107446369742205019065050878015687673274340740457064045996047228235029664509369964233638721696330965241123930595177022152440503160896135404912119963776230932888460194341633811939159793027874459772677684979996666118007747533623743292508494974702062586028275402640966830885511741365654008137473681099553449096869471262276948029792616438979837218594437759226842004744415634006975101705264317526251716727467307686359965583923421674862123707261451975499069257796343744863914785256573228181517822114571286150872609571500618960859880598157565208596876501143162811622719419477347797785334290299749481047498436587098387586546254943186385918987337501543974697379777521513741244959291832501141127798863096100407987746858561280114671398697035044643613985522960934195255597011641850057584820812657039699449353746146066141793471865284453447006199109253430961832952890610351563560217997970357244682443861433374196008904562201542850731921418113820406210453378552707675753591758137961894183509305762888172988355009793374656932149024049296588732510701336022518972383217050790030311838461874478783246702654209976155511130568115495047827871677139477013419467673829139211153957149068024729736297066388988600018723828442238100686503123940331199686612970175940195873131423628398866599803157637168824681925671475420211195917514427017887620815298185661352977183559458834919085338464921076911899825730677038875313813353964856533319306377732147788749878692116768511198553408451478108737412732252668298420211992537655698519387863995333360939440232743644942367849688392867578035185703532868024668995875426253587130341631203093620285952649102351998848742139295537468467767188154765609333984683815093246286461223562509038693933251554292262171126330476008203219623648661949440818309812885847831433001545933630750952634960317476964940633510903492781447350404375568721189490721852725085507793363842989347591672176914706200584906043956500869212163521741636560532562507434267886884923323868341774635550501627389275259323813149242588736730442536489814139856513689590785052526144267965069177266744696272908200341278800770223002288819154117123342336764589914211850491236901071161211417659369511963172925058246745324200273520264320482574269037465883926401984896176371417505802698159795971058376010207199264120830685643446120448518963117033521358082332901506541997331755615172851021515276998877704325413394504685580657395794139427600607617386984678110539213764614061078046285106095133844540986559192608048309664494183146689150581140037301690866436637928533626313053033474887638670668240529805686481182222786087756513375610700479945520357526148086015598097162287693647690485072942551194270767772433934161846075742326211265965434559903184651580756137275430966757514189848977920367311536304692572053850209406392947564975682421535622369042288444489110686044410107882970459043586390940616524033815227697693694053886010523258368469184397290025158428781317807028844145474074130957657388431171636959809968658403565247829235375276352445427192407862090862290874997867145021909183855951261409886078936799108454213901489317763055178604605943907252620708272291971957996767649228774728774693825984844419605649371199148440061673065479477655138444514936042643961655321667163245758471047077653249044840004183626359159571474837775059366056198869814949254775849876988963101654249015718053683871671593884956671623832178022095901414471515996968644145927638266496006886763029110399871344554252757299716450673628721960733047036835855127079176278395563129738449196994220736392280478578523823210028807877886697006999085238681045716204674344135828051391005635692159846745020486206589282056868627148326537219641567593691415513119413853163862428771586544585832776213826125441431632361543775862548908191824840617622610046659951683958843994588368243534120319524722594638757311904167373072937402504163705119384142329482518260602435418477216562223407152611679985702660397741306447373581131759582388409912607306950210762347898186908590785062719627783151039003938842123532900838723939486008523840331560666502532451183131423418858047636897934930951423327548100138231075864963025310807475115260934675152482470958036556846404573264473859299962265753402394718340426755820916387393446980333295298763879616077741385613355226973477039324941499689373191058262325475642448044032668862972864383164864408187219098945184931858055038070432727579637844876150029227787752450701518441879696685916168222922587214562402717056538357483469711244386620415850383212926111411766714560848023686679532734395807275797340435229336579124088964750293844200381726554534815378320152803945376469912227733401054012141007898219792001104594747917302641398028097906352128873934194941833862409916409364152293143880992851554290160092030363359460484821369223347157111073421275293198933438929072159693282540327341271506094611534285815875025645144579424887655667271010060228407918205702022841234820896619334925865104635975315202547325482834213275194696731437433948019610761154725371838189240062295293796083053690377878431768857831820950359957419839422383829881232733129312705131384281658053741715319270450538498806910098813946042043176186597402883387306643215387923683688143853610074005077767580943164743155973942504720830195839434813568043662330192708133994172787653546511562804240918568532953514049645161039452172163308148464726906869882158878828079134306811662068873494844613497387202158455357119211219817015393366071562075317833263523973189406645853460226100199192821124433200424525888700158364980012914644742747333854544946043278324370280273258797620541831864732940600771476094008863279143169404431774621978046425215749923722166756656571505816378724336725658181743705337642978913422015299268991026985981005768213951316626283456519011572107824893078742332140522547197131424192224277693538954172654392177796533984249150899435278159645272514380773675077218183497558606928332329023569451813762528143730214432863384252725914926912359477102978839471839059644425747658062370596079719374721834724006005041561096469349317364799132992263935563933424241900594066315308007608110225727270189706737488003230726172984966798800273434860628467233489968958052499627339688371746360012633719653173848030138921087617163589617716127998485106016629347781894764778495493584525944294566129787220941591874611929314871751777107930430360066656580831730614439067660603408441786415075975021319304137107531493042567094103271655965567303562221090749787758763644416269386139377994758756599593820447229436256789115004714858654878914347502855353907207021496619080507471282395408876724676009933313629254808215390670399981005072033669183501728276058790091139155489440571406857310241494780883942167772540277892030299103457192392704458366630070802727146280893091604008417527813199467358927867688450830761179087564988451944450662134425414988486086218440381257575164452011031156982079051644094080483302645790290175630037802187076666950553281569347814356113820357241356494142452857071987775187455281027788771930498616484450073895861209756110502850824503550503526913760133974988889363806018517327557988609866418365428523695879528346480454257337359300588179247700216533217188058849710408742907849538855273882022045676415755758312972560391175949027159841757395510685684799095301861066120274630457778385876598578805034477573280670906667597714274248324276584646113539441754246973728587867806738782344838167662362535190284121086472463514983215508948927886986748473426024740386164627725145767403280818803850637797972526930675110323698606278615057339524756311149515628445784277767889538796692350269805536921132474165271109514976400272245126805455386533771821517025062682030796509301311241174331978871678861588234081035966103035923195209904959045721782932996848438830416676371198268567905596955671199598911864139096276814953094050671174682386833495513292075719825165607448354476939603606222702044165128203109793821044691473680267136461940252707483328432742539573292562377985210150305088058680653122682297978383333345720466200285468968454101311909659237390573387747368245886616007835558754853148083167134104205872083789227622704012874707933123679035139575625041711007249735138842541187834783739123460972453378479179907288621122589632385058213458893338711685819425976956464688636655522704452359595407826424646691315550794472352858856761508508863336901884795569475150487378365361395645740787570365014423326630962215393757942925063278418792125763070874174838162350087136129794992004465028444209133165606748630899987631286337132702320172124135047913034069060139769617338439278484885203324887047614391209417105752248822278943522344509282990429143369537695330954041796047875862845542208282633719660944560296375624503242919457248038679891625386603844111261791012378484894988223531660120563401064103390188379093750354754743544078715384224835814152844816455866400833729779984794976210173213571901791294538702570948361205953848562360101991341106259227545161985390315403448388639744618364548206512322879501249471706090670949941687800596325861797352778542771347125709974329074878635387599328230198313556461921619161755306673792901359270637712387188769626432151680359991619277700282619315739406199624374352597871027952493432874383158566066290123497351112101057106832003088721926885888308344745022995244132786775587710534668248560835892541195217124250913913989606479645129905640495424075902731380376939527850993451148612025046924429314931043615566272532856188224332611469709044698703719940276596751989288154567554431970053637105158223825695805885170053353140835705531201145969597867510156670773664003302891076670411929957861754788702786542479401242035931272111659132899789963868593308476299444320157844474734363778734157079398979535648772937540052337853947865572231562185748638461106361809032972523666238307609355834366839696169919332974306073916876828560714601897137472699814182913137213459445032811441206248357059822762953206079873246840759075303590691931133659397328459353109749017567413536468678900520953430121188550262684518234407383985488276363433364603417866024733557109581343937100874701312760269798343070069450587674896152632106960943758944537545345470009918009123384240955366197641793559517486790395495125571490572493327629189991473468490813835253096450727056583386427347939990655729772816181239889105465369905378574562077215793404103032415448051831933612654820898774464796385524143873819462043240072804025035860147606769132569740425932130659646123229073797263613594176557372449270758012809288506096008566413275533988159851934248430553027829003025281098244456248182467353302101212348180214367441942897025337666759359949771153948658224725174754673929687239602954892486269392015919793293568534342662071851272354804617587343220897710474411531370211005216651459278341982367551216833861279746431273604125624133142149687866294868418933204685284297883574849800334222001238719034402106629340645679969023806133399884951549345901498352624376469101636299472908803323361083748124568310986325707292543140389904494965593575183990645149811568169254209158596422302675052527075849303269146136484982333293716435368615860107743143184855182471673262199949178258876231825006118493804888354597662824464374990374130689608805390895934020414449037540498417556435858938533272338332752550154166556567718571526079787507854817411694663644962570368489770366163417122951291395602854087536294232998246508972007493677067554297551183074442055495760487502848478516235260079250654750835112770063905670433403052898154231330651853430639093843633757605779123567408226778830466653430955144393254970440188035407287637625701350892714136683573049281959901743598717633884626670783074228969516826745943146971346101169421187875438878288055117014836412469946533154704654631935214010927222037545489252182008530691898602694983740347171387384332090229995825717542390771485461689948321951054135763864618856014043950126853387095555387693772538192562792134310179623407032367905233948269271414040222345796597857025195565416334007222512312495528524798807947672214746470812866970999309280153493288209616170259706358049716116397433280396402679395720834721426844026776312760683010738457979851099778644357745472709065056730437681236958168423655353128208782613140717642623440367260233535512415089094165061573647778893599055697740248591746220091807056791166548890628007787394777411170084994924757301335012442670277808242533735984221539700694318057662499336487894545554299509791671889106074432717662196632063999136027618052690302810457783714378552775035033803437098310062599134640173314270510589151036150494833364932012774530155043707144977243220909660489022086497924150691630491051190297321792823172173903060917560778183678985775677374461698429326920023806548509466664880786204308922401077028376579209899502950649557974543953706038171290454210223256764431945578364454667622521635705445549598285356565975589654650843913866629492293956193601564372931282368610564146283371952407238883615245421660979405328883508892229531207485487222365861467751182656677741391758327184105778098488245787811590310833278630997909863581755432061247267794403888449105551015368563707006733182329448999844848927083275493279207365131828639611751223685499168476932209236245091681922100652563032177363816604706552005091188111072771416403418653933729776235703219548031655462994858324162217933330202112798314333194150758751981788328099557472527458706748418124201533351858901078439431925322633523964432276942170308585668098732013822074280189615465123388259445030083101194926767939772177496454625079578809248739600820248448730179668155101080327576100949437501956164639847405952445117607235890431704288503014338125400401741816418189725147433304464994686678667246455017905955850871663876195717226697309049949133237486066926166042024982238204564174538913218485388142926199448330215990030745261939493654197619096716153027190405705956207945818739832607033182006221377079281456155239570129269950517033304505331027689817894909330959372185147352800390490342810626023260270173081444375336327403182960926546732708667473800189873307498739271065283545744300353419608520776872172486650601635951629795304514613404239935044848192380320885113907501045257768131907375958240698822854674053205229684847016543664885790225657595800915273469392288821717007662731648472610775685647991726201315345939586799656176644229545352678088856331434276549592722477683922580689731052259207543346981897907948710768811612516225066523047529712615232772139615153951517808297691752662799943009244880903073509727175640629130828461249070222525323890643974684891321766663809433947614541273608511718407442552624915439920052380812784174707394581409080372337865191619047779386002600598355628384214367522191796017877237610535306462953911498339864902066681723504924938681935235066187194736800853656534536917866494750080201111647825575754891121738798728383901865661546036230046267974388769375076131810091681279817048375436313184944989072256713146408834171254527193275008494043032151224013061342624406645163944674345761968761735286595443393495415032461996373207623391897934728870660027008945784726677923489633361271888776052490314159197484619445949127663626342278369310896163099838014732197974340143154466852336487797584764584161203143288993735564501711225116650642279466612418703049578836324298472500230313987312960068403255198567775851094629156135791820848308473923114376082605066117684841618194469447896256627246930937900234990045135729765786652168392517741369154849023146827251116415010553207258839756207558817921753566494907860118219646845230579490016964550087006250722215195451307912627917328904863102341774179470901692135013582184078563136784412086475929234426526242676158913534203926677095119286312527082534094150295403524026084803565965993999662538268464014674174547508906654477414108295911569669690214256091859012041235899985119532610486200957821709407933060882207899881086894238319352978538334403521263856784801305941549137038235150440614340307386599343355401712414146035618037419534321182486794967433687201346569821487700179845643868893188219883425956818433336838053375269438943608536112394607787492935259631367384632864113009025000476459949764385747252596297496470395768446802269702894242066733734557507639704771096218961231871653602255425852496400743114476850220220145726562414671728192720619963194241856930926894430807357598347876940064611216108710650251519778014545828584866942687479903050192729015317131337194639130011893939084105215075128686160844808527348753042631815301137730580002895134337021311637844833986813508930227808219491865930519846502226368180595601733914085884140127564805829926821936414453904620713147134272064754211379567198134030848154808030092810046183312575280017585431504938679168743909364649840408402682739447744092587291033829349739943952787596316083098897198510541901262984696593342716785451844033633559447436072855870427421587133381836959836135934398997134811463801916525890200021007386512901623373805197047430840589084805198355574381970657559498038052655059667632263672166570612642637962331538952956161198076570463641409837845526000725325973089846325395978946259003404641827406222564047767282970682399414846072672345349848918498877193838814772254314674252554657053917288570843593373324489889604399454553253810979614654612366134768312036366704955623288477574828806993268767304442457606401741176259436359505930789960519395839729851102896006394545834378809000056253136521613914701226028756723020573460876466347696993130299999388760506390854099738453513995701337311562103051988487570832550467684648832638859186164164561634815664958547255104622539725283193560102017399192397579190117414416779073638442046012403840454950592198871148963856951721484472445298404292856887633928944261550525932699418971591318772172618806878574801421776547441388966326323000553262336887208469937226935318487590014206590306060176714580033927846360302903054020145151454127185377176584268304058491160588320459365118000978684610387681126415348481942505197409966726311541944999268778166218693100385768538290120644263448140288725745971867163448028984731685242236052044145028149218137887554621447152342864111801369850990671232031833329544435967867328456077416373279963784239232404444263396468281934624226312731098331131453585783631226516813856187695645314232140974673002223538054091122679941466259732456121439546247995357520861620648891750457010520844545572925502856058901163513629894453150193784842841471508386263649278137869470108514734964576739313127596090911793630336013654562174909232432338993991033305249111187814949179434531753896162722493961569463294621509206417142590204266044312607289868553872497385132565600656756212631156275828015230671544766042365853113769705300073993220785716681759628315535410001643064591026709032369759723390680517078129670747241904152066965671159156943459651735648997524962288889366986669700808670012731683659737885248920860612491463409328588121785614741476927528861652763683547209557948279787650275342001338031730708986093356135765489449606474459767059805996301459346961341782682435785925093817397605018344657203727396584405155485500482578992580159946392771829980193685295071882672467271868333290570032516164438360164968739902708980841077953103040545770333127461093078309383359271023988305538187187235968066157545179472557072487761146382303513853967862808993917590097949026147239213296182604169803739174757409821504151358350002250136635970335822300591885331969267889232212765356944543742704834772086410135979932484770583895424876498697188511399067650738265946009842873914580483479925886285500244697479920595477196974427262805250473235444295690519287220689720677874787564247222415406620646781977967857336432065910984690735611140099208306994961389729141528133307832371041264437612775713555168586348275952180243049544968781644572368071251838858585741304459751142037431711430446292880919972899597525335929367547844375681389657438295262261758079818740137325842413675870415560376908720399415873650557842206970987554443229476066966823612228619800191744389188476089410603037148662420128918475045839470253622678809961774191631526815083737512619320433071489642856489520686972940906482482281838395491046231008798498170663291522935243866290216579658860737764072330989257553787191058366127877047291141581910256370014696354699836567510773127938220842832879998023690360757100868300985920092046182551481686326105121255033283916461392652075514997475594104840693353290580567039569845199974924366028650660309735706172023458440327677099735212600321883577311232137633533324381599424810633462329482371681688216856534216606267493913609151079945598329877442322616514571936545683924618160192932491477127761658968446091401404058256689556229884954898033456913968455849054594993173639152824370889002544074545491667268400576283612129956373425257281136688883879347931114455458489142063480153396516379777280008408228125686875957565802830865217244728385817813579064677266020474730947839358809823314670399481241660258574424844089323991266465024408289844820658356041383111199540939636410457232130567973105589586078886205083342691073183170869058285817908660889804785562559766252911127902004241492209579610805807263238587754310734127647160984957958835049487456486438359615762864934858326451564104502873881321931091348009258299382936517455342585590879071657294305758404117214145829605159930799716914365185542298274420889235417729303316984078345260932119321394695839930885703703560102279115689304881048449807560102357730075352727019584045944375298766997477504167992057622383242111195105124077201355930367992333445633273150509755803048940351450311400585289493729333070221115233131845312366486916899584322314268652360378150316181165483043665217984340058729752763002344840718392441133589047000469866526998211709696483796529523261273217728265443281757256935449314386477453139032055857412728313641023743070092137762247912930392670505141977242770249252246444053129807754700159191698298467642396490868444987579478605734317592156188182836624398782397552204060389087906114889552450042064355067171154629855535607146444443408859457575747189493360403838792515193264724809310655755128637934979667190245430989650542189608682813772422748204986501216337305842333453386234858549809952314410977111164315648444790965023101126809694295367917208361598083445683911660157152307777076732686484140344632900451703649378957011206103634152696808509060111101795432175261596323051263781944212643108876174892561242649758418855010978329832928084334536881655569621442392216546316173846564924644714374989376711713213954666471205497208830231050968773177264902609888298619361670237705300979896159395166037676616174405945621920760736558198938783348390744176767401556305351603574835575053406733858264268437064178176555981626338882076451311280967878279000188993064816197304203591883837381290685173428516698740164506459115311687730852319543518649672749374647029095654583367753370110799083663208502716408629122368700833631720856376761504130635155464159090018432678825455921251860786082374418106056164447264428007287634794512726778304994963103519850485224269722595039403922970483249442450025861840182316488366128869449795866403292410601519251667059878966298484854195391229090965803966386186661960988753582688676663582761133179220505922727988964279691741898562414248900395750114416780581473369243038307027006762101368838537149048141614756126206417603498882074993379662943212627666206083806789347715763981566604775860692194321873024339136882390396795562977828992748239080973804880392055555094985266773395578519285604937270376392747369296138455892967317650753879175846100878746335303196210832027131938114922154200374314986230126780886837034549404830597177230107510546707709558288335808173888418988238442166890270273748284982173404920098948660747508673345621865505295313156570332402735976556792230886491666307232460996215624861612951536130536350007248159987925307007559877002207951841108320464599304035145779165093100470048340352955977729590979263020581985985356780710362804990608834877802371487646349492320848480756403401739769992040911860297373010377769095969517277694848489756411877304911669123008760858350401252267355649663601772863903171786799101137286659962639041186287097785287954567594072251683044298022692183117653145655892129846989719602448967422813379138427446018467485165813555773707863167132431102625589400995661741505913594522286599894230193156704845991213759932843939439060085046807295341000912126378569457171085636957886841121398689839679219358628923217119191518000913016423957996882512190455485753618633339444460962899027954339832351748116488741581397175516615752448164897613181074457266041276572900652855216616184727019569769290657340582737343005680595482063373233446576875764980284626507410180641422043152608196903058664682877322451554635328253040135518971011293738536612026259065183541863288401651570370168160336113212997150402247560006024025404552174945635058224776716858850565959470140950275013393153157920895081202061229492355034395928365074240441473770856819377066653071495488311040838310900912903286333734996949401489695691302747042859476409272811326220718063908590895212758159294520658622559906809465670777070315668622963691226593253931034419475870794797795410188550931979437513969182726295003587440453856054333644478234344222350339107530867057490880532332832309871939518401241220672039202732905822669402835780896269989350985779927669195502652201763874922954621793810012759062120608688557322173627590510892423627126369074882427434918179987074752181930673602572755065308003738342829381584189142235719818826929292925583812171440884266257472602745758112527655279156754713655036568090465498652619650357571493420921729132597045691156601125357840919041079625134073022922164709029884666597158719510163436310283074752275178033738725762904238679326737936260952909263669177227660647794985423897785571141532933034666439160091572213690832981239674765411164627855470558261338773856318470380146554662544021177172423076880184666507655076421480614019888644160165805148694366396148518156414594986427032398697488642593660093642544773932485543705194462081714484727627365478077645067189007039692531423587057355377396963139817606098738708933970627300420814110693072851853331801932935687469831039560054916691357896395700385819409262271846232420611090533554506765815438900942646225369229395812758017529527416342957357881742921280534635298639952579727235679259917196808910472935970609590321456749764058882212490313503092954471966062711814571462095907147502290745447202194829248235115770643156319164330779999273409461757381259029449496167184396460240467186108132498135951247639865869087333313042940573921854485213399713126949835875878254705457258047699289161924695135390446007204697301049890511199027181218684693056030619254235112076628937667346153407018743645599679835576474378724148960541476402158886531751432447831928194940100764121619503962609154850418710680505956719101794775567516486591968341382394926843390937670467963305087042029780979800839480507581927588575135595898717911791431859260765286240156416499928660579459413403491222458032928797839038047878770290252002353201770985943181774194514011304147815741197367578188660169683355899497931886686808371613007341498763503887943614848453012093592486620435067936735088854407084025970078123336698053720652947167758869235004912262975943899981824039679714211611946006166588203568314042147914828926727665724469727162602311380257714815136530380951543601595911782890240137520997244569920054157302312106357258867362129659458680447264560928817531060841098764011111436491228719625673680574042298728430794348625037977886676514029498592223871204988644377284488472139585127590856954785421157603966092987630954332996958830771969057518419585251207605267940075019104321590044705693583360282886960207882427669453343374883111827764064501807170164066788764919500043490714427404961370083138180431900864563783858713045856540219476581871339413222351033899125412975962261012918925801899545739880683494088456706188163350206912141517500486859035817015217995717454632315522193213669200856985040494121732157817653309101471551259522195061930617675876881685728793684891169084786821376321364283010045968956637157588419836621070556549301499075525395638398082694660783606691628617466593037951669046595029773010978521526564467354873553325572120009082310383604235627551963586015413492036684860082622502103496081951368490854170230079267648862259807388457227418122104563210919507963210436709577218306750112332245371016077790629660382610611685662449018750503351421303709354368501000958207656331372043605103777817491529943006691551567707619162852133512509554349250918854665719511850770072760440242798992004028237582002401621104150299237876475995785655177923237825002436368159740126663031104111830198420665673616928085751486716273164399079278588872893598380446582916566557463974970981474520926404007213268822014715365397491043726581712056202130873719511157028330860558877097631581214020577348043231636689114669459788871718204253708074335837515674275941728398462139008272361028659171580669392054897071650155393059935693249435266900125710789859685277700917474514080107102329829616617799833780352384294286013631481685463182956135700081740766049186791688254547997569910578406238390060083876687036352987707353213878696155425379360883418831363367068631732948780852050934275835766819117158210682273265842367901425247909797914227378338522099739689435274376285037849023912744796245063153487713642405088608536869206587413504349776163077943567398201903699787102866762504786117198513989186778990451656339499522018716052586427876324598050210401655550318457526437039836052518808485450067457624243528087725633951185092860296174108392428285615894148188506191904101734177457622812934808169086725774426508783751293173152806626393304090735808656511667155643288556768450530831573716369945310279816555743360365842692212132523198941523895789749810589067924917607627658341130850421120115079987941082497403681677980734608731738498637027301554621269764060187614436041309154637632772508645674438922741739247368161362102199807149673608725431612374747843572352594273243261878069071291615920829573954429155349744312176635680797269650892270589434671929118362592546658009916217969820994165052561221558161992235403632363601394741520644271767426198580339089954214005629546664588544907127154638525672754774187108374025981476083192111187921563390080113033573485718811613130409135555416955732907102920067452552455512987287208284056194486551934478289959592277569382125257133321273716531051913611811048714707052634629276306146686767787978898464964313339419061673105189506983606478850661012852167914401754865258337227099694005307086883042276958013340215492163789447103122356817021234419223990278688713211127679608098564729984188248211636252508030812679165076207276889103805597343598011104109098773301325129580789906211609799225262962809147947760561562552342994488708144774132464973513738600391957999638640271040410163533617685416783180008591765144977331993675432593745903297509052468089489618370550620796108640986885284971568943947000181509869587010197062685458037998515820763487570477427015209679449672229060861572099172496517668763998763459556918205236876563965152247289534723029347676235289016237878012847071726361548191671929066643079392529318424707395058930154620665071702331778645285760257690933309379901412270059288795296937674653465371675678171314946085092833400330570774461696713866638100274669691697183824282303914580103193320217992952597190163940014104076370602627196539620191909892043045090390971407864700725416549180835504848688560070836576559515651896844547639040409003298991265670825953068249337457079725999330356688812919907929044469534314480379266745355726467004603285074855784282079804049209721501928953747001983863457659654207951753653847396572959206242501240714889063058234939557130802511683878152223084970622669873295724595196214552980441996267856361143014609156128202835361504261563123576117714621635697636208868511143575655293948899170715797571983026458266421232712939852376928231710193484778164455493075162069676280064084350638812329682529116896692071361844850159302915563687627138938291049612944901527631710958654037176582482214110738852768786907585469077227370380481213239227408665418764117192553899039726579518277991813615667609477270483806968675917732465213769203663468988175149103092942552402289924441369100933989970692869291934953116801818164984241409312535680334944691747489115442224012887921423508363964310437952644298920560835438612236326149874932549117416928723648794204143503380428857566417476635609295408347941956753703973061311002236535008100140766123566624760137473751247223919621546371708546775822426285331222043773884987499228538415133048364082238577235244214455491091594237159551372263886893890905749402167964914221803519235684037252115607544531475295129471536763371146066604851431249853229743135472216173490375228006184865965382834752914324807061360480868052342410047016867859931094553045627462339668601174517824769258755615119420911587606632090522247022431657505583792841389636465045457512997743933906209769940564303360454315615078197734285613263174616907718331905241763983510866355532622508474229587510397591428631175869847355435762223133601648304014537018109077778802027357043521150566063716792469826302232421720486411068203458631834621309536196717702474019390084009580088204799002158350271326532821697226225757570939813893896662762096491871502875100416825701048952674843095768359342271005017189673948368562868140505383533411086291444396112129665662411893655908238384163315556833552005186570631923953912546569759620200268923824062494049517124869881298943361200239904513890030025578478729883711491871339765459609843972565701081757983565112908772248295429000107972623451468342352297678288056616135221751704607550965855131128755069377208121330081419322764262571640412869181721069760220513189623808283129438939952749768531741179894456728694261069168257261879952796319595204487596855613853451032771215453129945877626962075898149008283537628213939262845817492404292725028275919017704306989555838062071015721362848496162408949909214790595226568557494283817660282341108674164046168561625541505238608559686457385826799108139513906227405183405980706776813538345424602689134044751497317088203714831614357887810900124147264031776357464058818897149889533019299584276264270244925183558283755689318507137930583121145855643877888878071900750998898898132976210795096347180826419119203120921828211171308447243079791875658734298307134635511700206580806132063509380551756309907103313368927814322958034791855740733912776239427851312710080761229372844227878973733208368298228083887537066966268261045785074879508173850989410579133421604186213310332921538973393867579699506819815289061634005916155774113569625245777102749167782174239574223229808772049092303749644767212461168810068255096399379229502693374176798125622310101473754712254653740377575930730185640988565374688534011724772881383771052762538631588902162880247604597993411312943716444308164225013388412014924436074273354894545852315924196244384125948170789137439799594882483159271034917576387612493167661600494818658093142812171079084301308595294246998230691927969858596460421828908632769205301482957175438300726614352740150412737735942734713860664378763808264459516779708624521451300249784865939694755275425999885661702778079136799931532876287608528105570554898119627101608904911147711805370063379382441135442077027000420450410104759981654724834278279345590500697965479586998211295699691434045034242903191310110531104225136286135555913372901990309883771516538673385729040660066611038209749259232338999959882893527742136858607288213971797134067829381343624190319819564960755860138818954829540653949995491496969190324191119524406488371322921358079347563065644456188920865379572845132197056172265183195300889210988300718069364414751244075081069528953817550500034631227356213572281050434333369840216545961958789941606936658893514253318864773957403182454290016077435504151284063897728348672414498629436738467787662620248113527790089508818062548553683149409922355456513319867888631555453702954038476449080411717554028448128351357310232504830452279963478698744094934899437398535899521573793023777797211013018161699332896184655314944560540834167141558296820577507833125536980853144866941054545684045731575917307896496184242008123296750361861649436013666889843101369667442065751863020352608926198559938597626448993861261571381071725135642789297657430135908681879120393084890573612570674214448829145104267960224345798655687636828537782309208087767030530425133606114839242427708408133774988923085285768341354782259071947833714652432030705720555004177290838740583310395603481196526973653576882697298131703651843078290277443872963287819022115394362936313596026263184212510355774739127671504500751062449066926674623321075473732292308224126540536780588608326561110057850872768751358543553974828344063875858797038052001562409698564698371362811372097709176888437691809832961050585368216200530158728661921887864323955985468887913453656568393582859226576535435557321914984192776469837105293779519867291467495661865886437106770794127768136792008528893368094311089453588783920378963143751395614729874800757396925807290051662454015253429538810882528887184415467371647195558493460800859037138032180928616941484420481760737564261191277311452606091925574899312630048245093453369671775164946360806430668558846494456683401785633206567657870224464149884166802179383370376645097838898302861054250086697243177931593559234502227409996856324697997708653712743566128509070875375425805725875953750083051188942579937261191287567449650283075588273040714923245957326693386587207323614573896219746993503459463385748867113888559640404713039326504748430095210007107793835742191495086390459124706101043702601444943111997814385214389613358751912770128330029399905185319465234096925136243340754754531171422648115824942785429999870966322299964549491186143607379864962914865021275545031229475670749575162492838549580022197877496347231339713042668131706593091968780552218326714997470320232103065598857258054956629906764547256636314150310571659644081939484789343920776908257094800043171123717408771512599091245901073115057558271344077086287187411348897460085337730759714586620879593968133716944394286459649006742891745626701815976174194626685407426908433102922542421152559818305052864962095923375701805978748979194848618497394433225077052875083029518712197528556796379337427605727669229789573003412573493863469160165458328723987896300553387005772216067446915942907475780980919531726035587268488654460459483953141360832460331927909812859271521454008448249472375003436101261181380597826646340189761329090005071857504192206990724049388508861465625833564330262539963987255459568355169565752249855760857554598727000983072023753843568825714872136799842721304251544047394446839042741327014658501584975384720200311331576598492062291997385357232264139264686404450322159484861248299168548036662328483871160218106708731797245288164882221137876889077665897649660255462992422430706150265861560087607994066889621991182812926207012861447030171411641163710190513309441653076304190593819687336088825578746273791772297240132392836990879832927611320167555786756339908912692641902195953584439138523709322458202020253265351868825014701882941041164166150200897739840347162889002858430749594969170942422763644721060806460050914254181975788860888048091863275266972948286269766895236086095342492505327099675831453964713422032319692093313063632947795423022268220886389002378011834425678736250683590174161148580620827838006819495948498900545063921932222037992642022596881648220436780060790834389811113883771935722544700783370948278805812706558635980357367200818340066557154955805215515880575825272616823798822511167597498964183546372211810052280505808382972041039611500960939762328125788793809602822007723215521083496937284231058001286474198726296856834860804875483332201736707657643154444507459154028412642176763299262011867917261168147859863946166716265203543124769834911356373040217831673082571239586988865595613893264626680031007176230953503037733802949692066939359081791931305459864221173461042900214511674659438413085839937153493006273639445171669407310491145841350566347687447805744476488930819357768385536400681027423744975155067317893568333027258314795658632077603364709237260240179015968060880360007624199169667036772580051618161097027730681531685942319007692926992709343923251464133943051866402447682470523608812088931011300717219527043151992777795622633929363107399591850325450514759574100193727990951690778404368128202428817924150768194263732812490990395757530990814130100158319915390562535338717441684935920121920099304486811661597173329292483686247253450441048949806315929850852537377446241823636373771489482516177734664293187109645077035751910386972340228962297620681906493121475270024285885676550711824288584077715478271417502196422249449202483828045227739350879433448861098231816434563404735807104644932652412192344260100308681859172589294961483084997727418659491126027272085748399923232514307164997754235445837990807707208280203519483451198161175903077520625084387335005751180071464266136197530316376799172149846732910826602811680049162403851067571482447460752614739181422642331037324825800655549795242207288339691042156458765882055523453078255915392563049028181781887382595911371265684213393919509551021639623258523561879386031372190352741585250634028816650939172919549753029670439631149624218060107049706749073103151461478363228784652812704301991085668627917634593274953395734108100719327170948446076858974122835423176027886015594719197352458368734550952445641011094866183814623380763195064181951593392306690070793432782699168499316527311625988936520316247928956288455297928894355085718658596649427414607884674146747191952865678604807584990198734400716322260525515894771287733800281859643828794935949277154443650648105894327439398246836931997851811757638947042344191871725064491813820300956634002709963526335767326944166361600359944944380157096709838053258717251115889507081540259721783253248171573738865414800606144676375859695904343681898186703508084139625050568181882949230091371026743277140805102097391282823947632685992352690153430081673647773852212095477446002152298890563878075625547764357403291926628224214774503677943984476404342102836773293035681975822708598420117384629979001957248481796102517477681061006964273893636593098074811992156060521851375929727418750445520952379837114045980854085351934934880182310729631737151895914384821497211264027412651072479859964422114949119375462823478806616110739393138093082164955730214587946724697921818900480863193360032838165810518757587024885025230657838648948072427467363812870157742537386166860206614744448292872678175968378383026147196549039578880815213022322295007415386553781330128676575393973929852576575915841115951255315024086878071841586896360481192650400742178642776181279094531860277561880913557120317071045837663242054498767413813330747640571137078707810924490122195987629974106821262433228811143897432867952149020418194782175791631628510116999202573119348141299173297539055414562737940003288117306174427917793435163177561872610004024533027262530609876059276193551228988194488609377447684388844474505310025951177609447408257004266099945566497303696129676338363772484930975741992395822946724164434536637913662638401235121692377601069351911920897561474382274130600796007928331041079512987499082053012835251752986696896178208091853483232033306981678184199712274348766284748651636369685716425431882388543704081054724357892943867469123722354945134468629198654340963421945581008634664312115618668058089156854060591308269628975627800330599324057117558824784385949335942288928463706676834411577299033275269334057717417590095556972998011001786434608733818426687530395263910204354945611276845670223168697545958171830900571550132648050515470545826365930331335229772085904804014256202512095560857973690709545869594546664921050928837806621071643380210333088061027748331992410176027251572878165917470380012051388279201152090484449993258363618112122856076263192493049393208692565708554575504137882358571137261217190834591504424295132769095529496684923014079536198578108531921445709117313717133329948539957080254665120530596354141769157905739538815055493495018468423829875307013592460679746166150978139834158279433508024963353204181866652113454660121512021389706372300428955972373005516169710136442754323930870444421569151523909251393176575365528706209113949029837495378614937995612057720135203887782973011100301886748993386786809429766483367186394988711330417232312470324333263948682068271549793194058963546919963376678993691351422948011588560194981805511795845710822771206450115134085313786855697101624653480400496987925832463447604650587434279815897004801278014334727391999469947116429511211130481350693006224053050078678571098643363775228480128930442123014594635398151569994747402319287814418014787276965460388351665909919202202569631263422673799136617219122199408443011692322836842848887323089780840215345711164307054223933952760514436448301700573182166600393953200048477534623440193090588577925780439073742115386191282981739167381409032318790277137957500391780758140898607769924759861642958006283065231049553385141022793767968114901983610070138700878682507673444543056628138581054856941402957621805902302043645779471902852849277178881597380028823927334945183867363650541784211835850812176604897603518095740755291097474516918480036380227559009767101604057948217261400720156448732801247475559062287768591342881020063800781045861848050340061291545297851500913027343008190536905264726137708686174715963179368806175529917030100502825441485747773781373058244033937573495946376517548719858994826906258689473862212078342344158000435143068584687102064221283816696636354395790211121230822056701635558753495396349517827232827137749717986818533263127069999596899320023668869888147881232975620661469776225827793518476079618398467152940724125240578947653409596693481836552050085300564857674725646487797921330394125516493884254539263659570254134447899578995125307722276992548192989584058519061990712603015215891614603202050201463782740324560828540693341465067765894529358058271313590571744156187122695850187056777457064446587611594948903068730742554878550769279276689101380763686674454333256973273457633277390803986618992162308559824889854487873009042318331803615414270983710279128823243508705196525277794915316039147900418995364551017862643686328072564485770047414595964195711946070606317958352660773643630613017427789538389309920593368008490020495323460775958408102759964332970380398334706208317402112976795674532283016345033320479281067510519621229137637787406912612830569011481498850440105058721436476334993746607369414759303352362468491592528005274736947237871186289462881645437851193976916645285205526664284053164305318183204156090045120546003263724480150551956337424669110520954950290041675453846324135890690687629568273441259032105347590845340064837952073422902107899833789296985526636669834365857610402825967814888564193936055044700952709187339434487512358113412340891287330238455813398788129451247378447647601188319602769304814074713712111265526699451623930721017038795287362164466687804073713128864031636412070360916460004117070199087553257057397744839918055622298652795880020413429870561290417596562362932411276438420288466354305792421351941175915550192158033985273880373220193925291563032328937513285945233322975395384899517539845370305573802861244973250730091149677052809325381451742520596676966419572208517003496440636707932186078810229257144716830602138498846789228105715794540075313141549575197910354298265978173583706233207557796520477239227687712531736985278598567905738805121032377527301646307136259747514578220530161712980939847406834233868003255363715765761675818644640592856104351368368308651451275991763735045611608828563264824067637772380901437602354559321274170681294771652458714685415684923250041388274048911828154139141570122151195996248061730564173911014398426872370907830810896966809408841833780550218999559857987248694402706045522428255774315710664532779515954038522746006671264582060842877671761812676380763556105751612442292657446289049442174637042858263271213500023966514480799679159585715802953694136804727077230832734952991436015097169575870367631131359096212657134902701288200653656269855498383003926720459878912043837418003524183265225228262750426551665876244873656331165697050935457127320519566337698076932119484394660022828430729409000717120160029899580012073296802302137950929457362429598388940454771791767878235777611561519476990161834313135974526161565432981232736311806025905097499556417861788597117884849233651091330195370782774993039836785776445935198661492924232981382032640040357016047569769228886887963668553916432807947278693476177358578284310625491466870737593422035814669987537864241310403111569721748450592636955647275731514805120974679798467397456056379372172372801037274672291570521631951370405932211274770967307249441453955767169176061170522096631080156943253812864722611290384148773364713824643516307144012244453830983146564448465009911288561365129538909000933042790587336522554772411366096013643769451556014509436476293901455776802340068688100472408297170564710448331960761028499847103232328506051744702790527257942129430837165813354138624643890808126754321577616371660624906854543573179068620450375759730928611159697178012646793495150825487695586123305891430958140304998406575738361710305127132527443890564191085471817235554686457285052060470065175664173449529157629627362364954877917411057465472936444004828837596523952666932452627581866031096267912225351262481479747974887287753013787262936935949812552292896774320998281356679087960735034040178987074987763535540121180669028333055483971948203665237495165355191451473814271421613613084274062463283229802999364906257551838812995190147530249634851912346754164161529141745897356333365853050270687806044247510993831341334182874901181956353366624948759206445162562815149497755085078018540502175108288110865792192755089407228176543017677529397790588502702217078591244387583272392189702776762641093896024891168178957164446642036424558051594319194623287587571081971927328198484064031557839844731097482038419229522526795287119805573365513209799861171716263828378036322283301537824325427165181154915170798211005364314516274666822140987184611719296373571810298087365367876676378891604037982871091792263205650133768452870697941501160851751756725751976945126224010351643218059313945149129531158833391421237248667929268882258544850509569588442926834597943777741938820706052613326149852107496894256003115777259773227899350508240685596932340399295194203520575027640783044342273314093913061385255459359241820793963470426799707463924455944352713549634399254000441303551868119790979203102252343009916531197040909095163276305928915034341690128366219231023228929037656505189506726699892197611178226169184896496290867489900998838695335618832632627308991412805960794733116879000880247752084595940375049896122776279137077338144431326179196070735296909837935947184865976461479191653902237278928302621618397747115024322736165750332228769679815918466196638349543570588585020797135099168067992180151276477402036801689930404669679680979967083010751086146691231937372840383897645653305824713765278491738442498775405940488106712971796786222921188483406912877493688140860097525277971407724126667040467776185917025391796760137491604365360187076393872056779453999501404202084471456663250013324411823013856768865033950892944749614221243742272050531960190520279409917902686725798328314180689303514846159355149869815400518306088729300760104136200891948319558493197682187996699552966591503660434803774348002784410876658668479862975181657356377212433711598292084989747249132713046831145405091874660326504003972151421359457964535298564045690043200051370888703672852233748626922297696518369054957544380607325635077927905824308991683942383871268786418083983355148175372480211405856439701515463793448349126744855445015054511643935030007616594698084252247893422649573111456194243525958112818418220208522146495926175006691559015756099649684332781000042498901418325153870073017588437424247792675279314512034098956247313388469525484521822582218739828206706219525742110920687347413750829694861150963265650568963403084583565544334366591243222312296158132719238144829542389362296631775702123449741364709627481369433553837236205677209849918525296072170295195087478976505994652154879236159652713896352356929773165703893497250656728382879775532947578716155050601377921129129512936213532145527644220720040684207385192901285403982422972984602185912194615018240544076431269109350586806569307828735707593956151107757928945274949082580176722714819237082181330733703955118776261071485266112100967839482795805720039509565873950549550540848627817847247441394259445945076598643840399459399181578298296999179028754856780980779105793296388839578968104661099460063619337588671273442020366316924018213535163563365623396675007081087768381208825649764143951524873734354089269808595175779559564711841582970805276497343957896844045021650759717940713809498282398693041414177262358310783147684725794948060174613650297164143227687694720647464769579476759121073268374140831715618782846149121584172300454056242101264895497471469865355341782738450333495228191388310106380781451991899805004915723489161411136731788216333011806886747350560576829704891625013098695019879364235483616789299249591817011886420587500348187911257541929063824120102575803621895153700559301254394646094665637167303915356643465043909471766762102650415374405245586646985198449155590627394037054482697329290969239928427730233367174108665083166385677380023922909895521222626777522470739236638150897526089660740618336177599628797436846290634624314908853492234188752767961525021946651127526826524918627809501159540106185869777474347977086383021187092169612403563081690340851795690962975385402205057447937783314432883683869819686741478214646011615349068650781573493020561076337183982737671239936043239097981835952806332912079701945511067019477914007156466530919996760127800715875753338981760665151003516743177729108549812689952771430240947616470831366116490048513744706611170399746245613443952309518498661433677497047333784723220750576397998125978459977220215920290351703274895267160722697062902044243793830777706864412620268946515532432316992067065856900341300672274246306535402924738572407284425890380793295009712383395288958809758541635816676925767774312977652506421754480201614456256048477838899281905130984938500071904283992099008223097150988208805612030440991444581810428333633446761138560694911516518123766885085243537166515404875019437623356310398091717986984795861798173778569702511267102925057761678688568325328008804631957179424879365732603230994451004940025423260073789647124023139330818261642003268423470103558527903865637101122520842972205244486436768984968919634492163251341369243959335174485783074914402963775644178913170075740296384766289953276732504161317962674730222789652386638372770860367948127047345457512851913161365209474063637859125865570034207438587704811546808258279347207657602143356008261612123099129330768302599409171202747509735134379157559643947152776047457898537380792769258667177592674076795133050397466486281297634518289047278495536819519291102523367786822295033282229668587435766606871034534644375138159882286088155486050499126405540931629021781650354441255641846115882070873370848580483175273102228184433553511275884757734839971557658169606629307283224960444592182068637220978955149343337506063960062751147320563368516610291943699821112915948774134692668752842737629840386292137800812443230381606135624878770636353534303438457568964895691726295754651471733852602777040112424642960105450852644496638048736696501926632067489271530294046903692239540066159244585480625512486142234126314880584020583539143622555624238230090226273399442709785246865407126055096976719645814600634950005429313187646821555550083668198003869613534830976736862944138614888788822311414668805028015361894146187435497915136975536870733262594281947733111466554448849201785882239163997954813152210847331824870004160055765929307040558878815477915203668684872856398558214187909762726894434483301846447844179196749421926459245513361005546691899592215839516717827637108531082679563268133437895083801145265633802425627422467454117183835809896443800121682726683180428269191946297795849926739899287674652040421385146088773726870033527546022858926981431666278754093093277139247264615985974178665623640461568505384383194353389728422458989037012751454048151555844391990737314408724843993605374735677254243072689543759737693420506620307598979003432865515670782098013510505831627250168551867689475339627448418915993509722605803918310916701566337393691784868845832220305991458628193721694135507232621904447366320629383109103134698141211276382008046232008152950671038925080027133775012478546948322462869512013954664273349473438951808577776395670956584996212691561822572111642675201417141846842224369336889409451481289784419074956394625661707256788472527786497080766233322212244969476218406513446800995973733719752401789701010680125289405632203250930479992873408463297841155164768644789673318623764547036715143946104986718505297884884268994090183908714288319425745418909087305652832385247477609376932432943081507703450831773128756710208934592951028967264911033057884356719341521870849838008311213366027398195409720896376624029954843990800027626860313129416499956873289901701496003936654604679932817755255643694698267200150775017346099919901549652631801659943351200798332095674033766839704022822694543895235712774330553414523780255280648433934406231458695070226899809520451732746606942721927633794426440806946841923075599716501212167121617479901194521633502841999870738080141553321770130789608854763973270683378653843376089470571242351610358591358552998519397570914369917372652330683171418965838020629260253547460148604177154884843173764002807597701954027637635899392607300608355741752796462901253597863317258762418327982469874559463743777670007039350070812579384382262232969014721656659668308565441298736445327277135680750076362630703235231154316694081399816892954468006430761727322758596818947627966860344570382151018326898132671444800957646493743606439503115491034091032518532230670675572456290353503950035775497173829370319750841096139475106070155677334727204423915121981129000276566100703693134087483596032759394261725749333855463504716175385588122807145764946271861008094533110390878774727357440451840057976040250011873228599769632605305201255876801476584196089510169118512199725024642684742661444872002914130684540723257457849843537321613609397341703468439406256728752852746105860380808360615483601518750094429861965852414493069238808999875276312281503145206850744000618021516185121801984299353546981418489418795915161547700364249183196432141618224782669781049451484474491228257469380664886572374476136848536141931749134553744819689111268017497299703128253751959895401212508970073712311096312520095352227308220971265883658964890287349496832229101567678470337804463476823664933476092116815219592695006640138400484982888834029011916517903766155630431877805435244715259533138796686816397670814146112112386810464262941168044326431522117265490269824045983239718312161672911810235189568165236654686337601334537071598673621709013661856074084964641717252267728513767776521297870734252326184916593108282124808518248953884651040500870577269478227697492782196707074300573023723347605452972209732702242989995479765486748112028787294045046705041360361291295637039757581935578699320989262462467475216565000460620879960798556394346965155120511920870157654953599409346738512765881178393631843298763490203381560625343947242535570791089136578012578891792704553699994968391280938758442826527770653718727319373091908964208080726021294253000876326444189179396118206195088165221625479228463205031637214382844322888377496674053755552727546471929813312096545843075724365484371727715438935914224532929458299061726605415143762256982535011054498031401910335138142274091936066471694835060699503922088293260021771484059746888719228971357434018891165881185015264078858153805468614057718630489630219128403478828701559756260598326389948881581708860088449793036604435899764109789812341439831052533437750377381802434904038278652917006619307510239035723034098550334789130566273862129195197064265341281689228261789081424483532820457231679975018108311856652143277081570681427783704465798250900820921852614014079208087416602798346212107841417997283074157579564734723667535190668066206961440311766484194129226630319783036232397887831043359225085449919602672464971198381103439714223090748541429721919114754918959312584996697078128054874016913120494114169214963562823495284677771818401864652033591315209752051164097993655838595996785590783962364770435584904127800568645362651577207625620130675832007510677617974589882563946424420685436354080253184632244712818567893273862655887634382351147528872087415269960427551661453137458448436383290169391830317324257871115272166101669141795111897184036310522152487280692828597210789593493388015056910513894806071584881412727914446065916650946194809550429960855593763766392417847258499250092404715641864494274944910329450699262592534976297365808856629153768865614932735193975001295190792571416366083309204573129390298661348488243070465231668590677802059307307874611702978912277904804539014932596443585145496918502728437966448995735663904052663087056409299134240241938861949646276349106781158760474380910127855030727684696457018663480691340911825599137810292117780571360640501467493013512399581531157864165066079341138404511697421384894227133505384451266873954014450086590457291974475012305262343952828387461346319727999403244246320873105175258463732148503732145930967794056831373996538681394841359446682203879424726746058212709666468492563088660146442760283041026890873300793762053613165441324599563739534858975912996414522022427081318979651671451642285497189960472902991308906246581615340752250684619549483225994015298587639277319932648282542807912878346265423957885989933144013861244472319526388567364255555519443267596303004208668744812136817847180853364964973247013990793339278358204434419606289260243733322841344654533020242797100559251163909730072103553904643111840417797352005312094701876356694574611185129861509955135301874359051080939895863322036296396792775353102178746782786152878841295872216690143706464393194332542226177653252804868775327658296627399588002207137478293192443180213391869316199811623309091527235834231488845875463366047931501688034192069478796263193723303493781465888456951694777641264889738850777428701381922098283127745371564298424836682474048359321793485267728424470724132691049380587256616593670603386059687053133509853068973997101185446436848865651419847647963321888036307287829673599336779895885819514169895465817037524944926341819428402672891892682442032128470901750330485699383842575119963702037758774884394898498402357409556774910943440448396186193266330854644282170258229035589002860524746536357974131877524603003638295796645935500963710686867824701027446452796062137973481375844223715383278707004459041412998000921205184348530378607834145225553440012215300350877120896745467670799262572417801023136026372817477412203438541141750615405557507934516953319346468673374012733801857854458432869289814979402983602090886262468543844237895716558736904354821751500669410004231528180383996238019207895866848867804905540606675858649449485394912425795821411926598295991875700865213363490714737155498329412925686693997466066500315337773743329082654422070462539344519798823175079390017510927472860549592564929471519415659032174880415293965373033292763889944145776391647732482591946018192030228346309655003645209401116577162313276946698083087204016729280789128812563736749097609185235576674577384655413825969241803022117646306970757182844500967924732944127918775467487476267191491859050553855190556698293990346431268070831908397837617752591909321747849423676705927081051459836275348817690966934856138528617724305003369982942908149284911485387768496262153518239443070063300032148297628993377449289276505985424852589073656713580861136994189054964624534851963423863293203196221418189169325648055989256835796002159686849494222175862356468215847446385260564680087285230653931461296972423776672341833336999923010652954243424599830999088378411872286981217810843574026022504172074608763571106853880212912096079515423615492915862135323557058357728254569368814353305246194363120978454838324255245135490880873169626626375285678408923804478599657016886040567338907996907709743273561188337219838955190638510292143396033106657105334793951147479825681684856451922420174539364214048783052546382105742878158892647918455337734886303797782476219625071378256505114590316134353283986400042444445220085988359928546817503216816576013770736244127565317063312122182754877886810517570953910273178223976208026639582522887094426412835876258200714027141636116376824013428324654557087738917966240051147132542274196830266979917778145388525522893331724989035649658237294338376155399567503624192476477329796753306522388198692702589476471755078339399759059726899426240098052835015765654787743676709514834705414900620887412988883205225384706184649287495932523193587468633492206322045448737529645568659016680781410516797832973459598684643890669296972360077568676348971106775771183637306826662109173129068455708239649259407059905351389756060316651923867664699150516760226387139620797814281535414424301427801451289502232014604150541167670446621523127769016042918708148039926043098452824979045049518918214691526860290639775567803687295701817638839871958847566982906040260071849559480548611273815729484786992971126947859173148157555949450456649860266530504401210809898420686207755824015701801959130256517910421053788547945977934850173620668573418049598442011032187868161718874394826652524106640866448118853924125066756708461025560809607386774774816902405681313421331820505816623821790493733288241518259906644913087186388382326242643457021327595804322368580335235449469472052893806550617757126999209396573466691372649975322817685939711072125724486510847623138114872923795461729021823548408743626907900407444675418699643121783899973885774878352410502324792435069421134119098767986301723254979492694375047563333269184585410816929691659038709603648728401870073684671747892942504680014447439788136195951766758394754089459065338175730107640711967889229551756698915780793843266588547050333145482473020076835154435968336218145301257149719396988169621156249192021872517258096375333920216103887386698415178348393334986805116557193047042498583849538088678894152059495811219585012418481780469505190326140564692144804900714605508188845781345926411899491762555834014617883479127170265582431715530820213421454061763094891005461345705359568034961892059590635679413932840559445016017693629006964520856184453199158359892478864026479587943816829425429894103635809919005972126950014745757316438454848848142400766477192144546395239607365112653462227728555106660497553145542107725695005816608498677527521035292535100037322226610295243131337647172834075851880065782445835369785800650753246739461127636224564566281120769489242356567982363396523816796355724834439191104988590105748218290140047494371427955934421256746500646285128671301899890471475835260590634884402065212613655869147805057732272649189617524714670163423433982468936521645820445948917827143392638278000057900238910454481688515963616708841573189619154087338703181309087470394357478276335199327336879441552926160626730182276784954074197950720687890973327115246163186848631828037101702057005772984540845232659668968212435328187584378944703324788063349761961639044545558595301004892238476538764745093007904142927356856545728835340098408614759417278951581577893833095000117862015452589036491877406895948779678085858012487511209433499555785005261724498058952490111188648025239206239920794952918397217445583093951328129010792523555375073001698429937061576282915407723937815684491068035442354853044221882627627305818901417396221758328872245256319185612505380866240461298152571668454243040785401221360759818164694040699789938391256633419423735328163836116147337254972034737930281293522562778304323994095458685313345365719286801351453252402926762522633373742774053985797145622493196657444288922603565376795933716827716790942472352629218842952179260182392285852953992682302366941959758461709574613644277498577825694103958903361048660858535280375566089558960728071472293309615705501703418288515851083040243108096546532941717394345456482131674079902808495256836017743778163893364692221485492512571128133914026989019603324301393738916682831977842071311562463298956194744352206501404479788905784472146876952381152422240621835283383402731152851498491618295092144575127589656846822826163425666733670524351126245215030242213862954566837927563356602167439955597587059390191800317755388103320363280934317876934115529607899816418455932590043675273766735346249106398021931081716914158503167149210525954931868543238060451668414475518061440278673515785828694969054887725989860508848844920675359522647898789049853854649970052609525376151767045025541471148698307180048647970506781212677911017341132891912475532110051617462593934336082685018123036325793293532423584911739115325571014230469915527115799287306790181357916617865917945787259117042371032749604925776704444824185356779266418501575578621342627943374958014291319500857319733774205726929749018659860437542322509926730855489643499494508992155782470331175598926136497849781533532282743656139452788894695197290470620815446102597920037768521622467205523791415676021367152775003355853864595293836069458024314932920237568787234519404200158997225071740624307915885259349803874329035010410840061564160239297897472285345004947035050174681756900391356888809196185135223761237323714181494469385085836510589068240386009870307500781763032065735171786386151604729742928927251143602701753230284989243892213675539106993584680751222882578289243949952587021947592809241535672374779243292809338302608323380651837105748858222928852065342974596503094907014665310884404304845456961992579511747568381431033998633092493665486772421532085130112391461630683081059770991301326212294884018461743081918104840070625651073095398830747688191110481659038598018251069320186003237743707411794986968145913675711786918613694418515395199758427391571736935754066358092093215924556633340216884006923425664022342482926782676173337524708416150135535870369303081245555700972152941424253366022668696281517404583580067808459106018798342843416943065750610052445904660510531580420038060735459721092934521750976329173934971773399900050007855211519805445181395506526287989300091482089288359002398975974599827427526116559423768120623910010459041897372383170989811492462682423993515350525666370981041593713334999984483886845345134756933706092213755631336906696046790985349425781831075239176430439031743198198861633982573068538079801508443634912450794051067614932873000913572720370519161982218563957199301139539862551026668470715503010049020911538242931583499417189488035007324698411356290135758758494797915384067390010356499148455827489592595166778919881995460336267378830214758445797731981785862542251115148113106079038194653133733980671206072855569187829476338422781203502525468318222815201896002804129350583757897182428003909967670381206518264375239981606096169114773678513806840732306802458466423322228100547712501810602965018560456892928809182268276410705202735685198083353259175833582850391585166969311761645924972947326034048316017366754148043251904229777904736537691604359737234607614945467693115453288715574486397146732320688129508093914233923303622231814814297836233220977504668119151957650398930403883153979038393070269882886488599748804267112191252323405623048181097055719064319107898485604410617454847358650117218988592641515902986471949382839806656461922125773953353199555515193779951022228162123372697484056378431418728433577030743990763520925750651079043535470660704262176045997243544023448471010761819487006563253471767308315517242804438236283312563760271061296564702874250072760054778212685271357450294443417837368715058474970772357692905131285330724962414040118328786116672056381249070519265840382213598041300125030469179150444996105664601490570252541528859599318814804126763745215314681675149127140263571441113034022538215542154701254555987552093518665595551135890023060808836518031613016348788423280828379070261798530573332640666819962408803883776931460587598822365082524932020592942505738960088945210544049237159187083458095322375829969897731535836910310874259484212279528613158919113598918105732051725020941995074109556052336606749790435122708764508569932689509425521243400385975221961110053511157497373320464975922347218970856281130042691936932452907049624939186299478701045359921725235079207442124173820869307212457679023490882795546431226844914117342781690013338588052404762440529617442041643147937552832348876337895240844106570929768745083556280617016271676910267930814829986546553650413762237426195333029971965026729819793243894255732723328844515518968171941789295968837536218926095741708764818480256845540486070317862692697285919690916930924008636953252993849459835821959504676674352777697244494486347960828319810532444211389831550053679867747313823011323003065197908826690597168256032163138129067482846460426259442122975065502737947605458544423606381045288053186242231697679256403218515856016823833337525691266169328574842453469430492826256897943939014937161104582396529066729604989372635315977760178331474834110786135813986901232010731205527954868993490630313512435899087154453406710491883567378855053214732133953273699497714887136088843556042136515220300745621643074655103764583073735417507822406035036063010828895457025184764299295057180557974325820282016532212232982513609197411946478474655876208719112025148257637092254926444521264826461226514976944651983519257787138712080872008685384452663071265186819332834885330595231439849073506785094931449599958239522121302048949257165375048263276949410335056664020464498347171788204322171576915199784640819517559926366060290276292838798662184155136350961403871085232580971614442654545427802598095185227988091017209558498401179949080412285604127941869331621480139834005665327618306519101191836475069040898332481216511760136039660790818010679828631943776357362598024898600475415839132851330783737686906022414909177837115476627148880132955887430473267963576675654880237908230571873840533773051191885458926862345660195215986385458099286498694722011350774452153323734023223067186845796256135375888155206324434246537731368465306488579517492841891003854598721509673591021701836074344277856898749743167869054454139541721230934274127323061674217102174296816010076228202058489465250125698129430022102900341445771441088332407709630536445749339635129776092582530645559219210424320266011670286066879822184354583521805876608881137476964435534782128019699171607356131921779485716550297686295716032466230086475070674722631636921932511833254493627789222313928505950300334229915899262924800093319585961021248977835488674328037198250550426725799847092346685796341123796120262047578230053621516309847046242749052636782985087667510940500440618396105850474445841999775726059928831272810384398472341429342819436865854218123571943748957038020274168807968509311374392421378245391673827740972850190107343454542525107842693949856861054819765553450703143043150366753048543907919216267464921087094756381652556605636710745726150263815452160171596302599156896592515303659451338797034495559793585376567299718537285696189722053203995529970141038682098063625012529674657402381309801946085486652991578305673107985642908310067208913374959508700334559769275333740367023438088124070523238556479569460956065403304074257511784584407507584702112024145394737815783289872892079937017883778336757887537020476633506904070961920169469679458083967166498653804076851400459357601958107090874413107860195660447297609287617193557892562454342047241990237011381848426428097802597047377664809140821230308918492675652036524917845169502118855340120504736402062249897036786807715031842937561541538813275541909161255844135512540844268086242988616682905972816654137586647246550987602340782918553034266241757205975138779679382003015649925683805424801620229818115074337789572280707114211792029547112524733623865205105328422593799910024799435648638645361992692345972051041020508942594578237461199837432644837180330814086429037966145959444790228748564456791911169286070717635481931127738898520526132689558400772895732977607863661642715045220126585850336984970760478835336406601594794689030061367386785038978277131172439782132438147666558027638190858626437615920733400708958071838990105956300785067792097433642246414105455386551134661362948176755437866923552921953632004879133242220047553221212694210813700460778224504389347233742222742944280625393956907546052347516642105176173320793385530372901262284537684937612890990382292468772536932884353689848064891556551333243567329665577478200380713706220271847032672833313615203622701652604442914515718569994091059024711579043453953773635540569198049183702181003839808615318116040344320245471687866760443438751479663621330837450816715410600262411058440768274841098208946434151792670792635168415756751392498282732064366361570154280366576526231282446575046252419006788157109042903027211150360285244775707059410764608313243081020290909052031570052363271788110902068141528538040716066883088300440337187426162336390347050158493018948402225126603042744273946460731155973035054757327970037624996233103926005579057212655395291691065705446049277760403568814214948006368422821193661438897877622632876300794996394966672596014751421342593139173784489543350421119297422911931494270484382162242387777127031921578727146789246702556454408437469598525073373914491377747697098503015836378009727706602002643581191297275598731780678811268086040215938777193310072405706248889700906635521983538687019925003486581252496016823612778534857165934046834226993691524520032675809286851260192682123495973300061789808328511977528805205783721678964527027187618948654097460534365536935405151084546537670278717632180911231073510370482576290711679713112314755441129340331659490597272385951951079049681359119615524200837457362982512815521897185637524546458488742752050502044105374548515183687632261141429812402045403300986532449147869348346641917697141600021122493790541011391602787230962803910203549533957070502484882852749062222059887146466468130016380320740139198328296484480770010688145859431145189869415533734670878517196228318699816527917603042071826651653691139308072372918966864086663980894761317578035647200104032154084097641387075268358230617020017024362878857692677641018777949290655997379574197463078716792280647531807090676485626384712144281722808131143540908031954176123337048861043498937364286142006651217665507315733509738068169267403517727613530208422736583825754343670586434973172837226980133098062199984609672226988089467373264454447658590031500043371745372239239816539326420674435146835275682393397153586988362917186308522249652293936580150564087166396471255593033843250006163709244258601757933593314708928333101473635587966152446203055099307466846934430332107636774548184659550846541248382134482722229980954401290677591853003530069761721382061882631453914493509709788353684840932362527251572325927879379717781117497335123656870705103470849618883027944360103248367813677902030319398095708287784774482752981486266738425614321372661648901712948412429373122201487204683590043863540747127563032966891657657106599324254396070349690482375405774309178692784494786419691042488567104609865337743558350844818480990880514051432842802582760552365215287704007054449058711330800500685895779834542234514526205002509257705926675832845725866408704913474955879845864572468000782021130344717901424663983746642600772288012521132385071489601067414223169818398933489653291556112721968409997121295329462741329082129208836609870949805499051930109588926574421876319398056044830923447870575006764362393688355981357709489231650220714927829574709768015762684046880975875907200699345262991537316690683913118345101329260313530138837208529648453347987614242058793208495764960876254388779549123950880975187763920363952725759226607525048865117399082279559492106916153403625261313209961933354538612308059348546580521318915207825635542602923516554266509133531556643411619094942179258913566155621662721446017072388237104273879060375813632099066588763726754325946283769784234770630943474223972548276304719936684529517391603251649559408355718671184608882267479481183600682096210310374552143401691350422973738662889020711889784117697064216004793522564605980666520698961962788992411081113646028929382205988980771182754899856282889141386542438462914118315250105802539740627301054447696227404671902239678969356222430771187304478013919923579568857318103151232826635199573215334086011645919704797865741914085447617115161507273053951349046874774770796150557640536755820925312057629769546093760470629709007136922720489187497070344289738982953753146270342587338003291394361903850816723939085911468447963660628781539702658766094394071789994332064518717166619613744950891334312728806081024868160243263840347681827162678914209174020811748858415855092194546555286309882896661849395167001605794118694069402144482856833181361412951599350301036457077418601064884696040214349478294086025929418120498960851420310316178632993203162795047535304675896182948551800896566124682967775431810106583255705074101321857837367937537654667308834677036662701780551140219945096215974018638623981185072768034668249846580628128663297664537150631602699367370958774510007191702203863600419158093105656057396150597087401515746063649063256914921694565606071658084623894035896676598247633795694784586413042430191005009240066228982222585052743925200868945852774334376085562557754252072197053053618089984082544045484490978321911906041865144872906808414849090382149113380069803985448192252992848319003677466901388789396231356867080086623092691781929458793306913351676303438570129683031946412595191438017317181731007957520164197874989395316766428484260954435116385067604814519623522294816950770380881102284145247832814712210987516015450061617896826023476566210603414793079355110236583882649786712453547356964487455675082984187825776864909649421724230668972961658123598924415393680172386228903015195573971173183602697122734100798087463897184332342661738666787902571027305348971019946658874584833200148982899643572070382903945539771600093121323664188513217053186589541181115539180557830408098881233891167644262445571299305723238411992114763313868952193303259921756057515257345575373469516596754926697869840418332582103873454925895503881508440044327035775441710447342979451690074292824485758677142981917164462210740807648834275599047933231893141677986471773467493926626699725206525817422931975053794807770947757993079553837672636681801479183355596247739254968223247760861823536857755023041568278388697507724715256163188377612717437734653932095594775792572989450472493274072800521450190658011705396777711282348517172586825208775728025814845542087254617591634611856272947361658100814242419224380484326780920401384802947939482840367428664331736626058902835362977981036719616553582530898924379757462922410970695788639158405467647541536315126591135834483088327822825063212483462860273028145369420746371212403623461938809765748700279471084119666758449732766153733410123583314181879893934952959729257941082476562978559873110441352289663300302624765100000334329074448585654499739617578424992228291688867721230001114351602413111282828145028697115299579640869188860497089242851110973759053265257738853633893912261478827215606345535863379456452051809056414204412594182218920695158679701708268052999839410514251544808383816455292765661555872726225252495642621709553203604420580730484611105462326283957315263586453314143130807407759862661730438265405666240931233239498130044846081063933582820543242158097254179489818747785534808867175013454553502019043456228271934023911924320966282791472381705528482953119869988515788381676627279963206090406046575722267232926798958266973313087409363001110046050861999356166922493608393514570298900747142853196636811606932379739887673645509411986897424908880160351760324816674574187991183469562182280790596663851767524825238936606326661574109408787488491657398240788723875176462599789518604336980088386078538466815538940475705375945642386047712910459718443592414002560586176991726930344365824355541440744218127261766039534277874258495827121305985915018355964917671773113453690616908296950644100609696492369703567155437081359429118445705078915546011471987166111460518655703278341209766098566144929642659629334711879190585807184738110824485668403188677200531130259392774333248448991628193130190893623837970377914169054220018748230982014513468450528906404438308682272777507261232808327483391062711415368540283017268005368118050083188308848251847644845061756657746710071339322249058256222860707115668225856154618823210267730650918301670557906541973707351735320111717925415812927811183444089964546978126682461182502575825838333195911997163723578603260084832296237499707735462615547978821107528881761393991450978539653301306564406972391702004614678932567542846656597969438586852458195875425771618000573679513653439840197207806748432452632768463458789170991151552554903335392103240575862862628720413954860223377465874124199099948901995576922065120059877134209424642903660699662880308401667021403104805044203419572317885112364074183217300261058177919854428820822798689439111375988540194752888030973123626314038567067059606677868537960902371011587588672825113179055191568526185043713722350976823869087893409771862590658613526602631272489096665925474859293240196334456565282723052664528646578449849432307451125226313696103022957067924021084803301091592596140407971347683150725106567760346968358877871539951103729059755871812758475066066606024735223011470761436062960254867265448057972755668082621935733642635373456866631639455288670999119441051626552431869716118833286423797206891446898127788548753559324084520435151195698840100953155518620298333448847778803035106845025516450207140267151796984864428228267234296386616046296235168150982253385975216590332824512926427784580089355300240041647533849739631681529946471032086384591621100598390538417285509514735136964260257648717446834124678976132306858027328923826396170647621181323589339250377817129817111163843183348750715541680597484361631910037996204048768738564445453527664631380459527474802951387174134853185098211915942772816987809343618068181507081883300865261684106861582437035883013190198503534869183369404991342513345186759345614767889218695771489727807060655109326406783974524114009785894473851515104314697112887478004822549490579063302034561411816497754661315564074373315742213416180072078352282885927328593169009063553705550759719119927551434396361179874418341487276482789190514040113264740511422208639823841283375153515937021709523727598047333134531909860750343088226996843506523661468891006292015862774049596393109693194461211561394729209758694083517097636778617834258209068514978753400750205206010715455761459963946805354256004037912431707785070276432023221197697017832427665315325628042589633808564783308537053049398923019840109449447573088587373520920381769796146666188294157689301867033437465292638313978538701866880052627712310503114251142308487663940754118929599828383949139502692107111010647128349103792511763088661179275701035612180354402019381053209876179338096960885426033504670912891264860354970439633702099083574697699216811622280194235968361577754517321118257196929344644927666136319768302045863318948841408247230916958434858131881157638731278847024196587425846094155447162847546597047062556651457910859568442413221929258860172957227305014809923477050118996298743546338384552896856531363223233965926896445075205041314921829439483569907942951161389613216568035079084609055921131109563584240852395395100511161574935751369072003898402827348420320852497423003029752119377020027758408194527102866314163378867041172489060527247320881016881510837738726062734133090791387817202842433962884773239493666031550869487905184352490406758292988828924540538919411395516034171136186732459501790887892397908184473513403324234787848800508028034048940225807379806863325283402104726496143861653285248374849591663910045142148245685761011988478483336775649342906256531453658384585217667091461082674530056606029509600707541580860484468516897921380364872525328894900486810960973342510876646098671069556442759244500085148250552117005981084683966898861433276651497556636214546727751764196321329296747587395955652251187715708031789530386485065263255311379016098197186139575945740250496868684138477937190394007551073657135524951696718251975934685633264398237822722841345822421936376608208304025343521819226220521573608560186501367553124609236748768752378369547975241753286480169478797580042493286168806619903082296775369095959034107158580252338006558815374949752751051192602433289187287251887712840887790454340550538394734223129029943250242433843944845340247129144556221461227614701494510955911936907814129449083496641739096040710568280142569918546931968837037109398297790748429438999991614061234945665871497309994019150298257051241251951985216112545171047848297736581380773020298808084911088904198909142917285404928890081522780155060651934055182096609890552878531864110432542699804186943783169928333779755085706356863204446272842441059055662251816764124864445945527001696069897484313621158504237803655243774521465541549444366601647128281918273086132654859903104318939283582482885210046839435969286912894633342855944829487902325693730628966724210870457436799866393709122390788304112841011709062949293620600150159428063421575252672108517287003418644564449352475762499440857567783951155783477194034168132818374597814630246072267595553485438867054533193258755984421253946962181028379174485597345068690763731302271637225869916879391461456974372051803728240401967689903246877172484083980936624467766418297519695702454382537915032154254224019004670534558878750413727090404495209967588090736633385184137660962592943905679099013906975513468986609240588685918430884674599477086163973197246308109302553481528964301025075724045263751334897285774397559207942078375068592033451341328499293327947552617490669316694582802420379636142276418819093122559633393828946661788563936185014980185688965850317781488751442833332009004182604267350955934645367879457403448105011214149485405134953196285107428205871667136379308690775621134567324069446889778863992636296348345800490581855541389124982613768527986269294319835158482168448164184731501435928227913161701676440819897628463569793803079061508210253650576880946434877271124361821515235456648542688795735598562669182899052132874531116499038189063139258755313676919102207978719223050451226817264575052779617118126645870643678972008127710123670398248198124501619235606797757353658888096731589917431054701448792140242775005188591701480947914988703924042425767469467960517309474176316733394883914280629277646853923943077344843921218416874446058187275258293903151087600649488069027969122853365523846132894780934512071234118611276906517211856350206237749885997154907186926503884424948164708416847057306719166752581055022186246870146137268355205044473751855832359386265736273362862828147622528132638350872503715348301253920745728789533854199357723486728711794716594942541811765256904135068897554392212503713468822280460418699457129791013077342645049734128396034784808188054692236989607176006502736931842110935552911923767999965058454387060439630914121925339324357572941621208035672196894336395452351753494794142029491939938343599075244535696143235316671389547158041804116799742357456593242379161771520225838961521408347093419920235168783470337620937511618428168008204493662769491847912152856497066254720360225524164291437374472249657770878675286347627149364687931707069718480397893328349811965420584264879164370061662148611207692349530453040894532428675988065995899077799973575617516089695455708329634489161526908464039689313691999418382827844807913342900608102890808154256805737257728261755541801919058779495394786315028461703972734901566974806652747817181614836503200520724288516042562335750652580968417145794525974076461834209804881326047000783072659184944498042074590399285670134495169956551509721963361992148856088639925789196429420807505406763446868014466987577882097905495798385822114870775681399714964677468390566579458757521882014250366163679455105825923518743896856496415979260614807661119704140962984099676046451991716727613816046579899185446188254714761222973434358842111934408020943185864965662702040344490963888057804961614674640367560082574322985821857543701053056877611585601138912155241897885683259443708690063107315466614890744257243953888693838773677138028576041470079797553781590587160191930813181803700471142734051908934500413626442305518939458024324888103888542504714594185393705028261205865235171060287547903280653507030179684537492120769087107874475857904012447380411062686005464219014490096674207233473572092685514514782041098967890683066458098910740083449117995254278561213807644444557918475699928332607067757531135703025500981767866433161532324955065116073340992200375777889834763105736368703736966701144256389871852188052728589084865953726787884824072680630276272882291058767883544973780439581548984278709793105101036512860456184116822267600917965164361119497539817037217443292409350322674729044122411164165690126529744582643234780311287776423431942875479025424334551048433429789103070091982761564182666956033065406115206648198427739050611298524985345651284860978753138979692421101055766668907490756795288638555981805736412858186694415429230239201911153339292997269715753394424731204192932899877491485111020522893408310457078533027406230546698524463456474560550194517711981460566327013284710415397710388405364049836614610812448591680985584246302672046632108445701461349417371852669673442727067593747807989285048957023042639693947171764340474313934105214335748301892592302377772355388602299671268905660986202602733142810034875856567193539595068205713250207339936373266873828979158639494369545461638940750801560889315912323523410704304035322268829192974445857056642716956128089217900599542662804578191124725587381323860465673306060825652354930261782430292642732358736219549287037985777190925955355609020841052270141338622725755396018064876706482782955947142374777033392091050536407905981345669076847744549397762407330503695929187700687549039877395613564239791421545763547575762476625308982216840854730378732051071065227581490200436522723856737681402123403525432194445684998587496127620937212739299019164247444757535161196701731713576119302777584430828834768360166401108895369882423389767939345219242349775806346091362380873860960799394425162528328120363058821105096582907070449309411005220869723910346003401674358612736044299135215685761364653994899245721546242691766771986292567068770394254758799412433119299197573441831882703342705953412994553903614719405968427545864674811857428375515024482007556697186170244828202115628683646468029271488700776595106570347199973654363859181757087860179668475993886395302183365799625732231506735673613675017288204108246417483734352294475420065637211400152362816196220383521748710413714819093984793249218121205395836254556001705629755353521193093836224353193203381770958028868827951745903052512212778933647749005201344857472536684966542682447677874620673124222182767423560894762394909197791426926372210400283685431245226444597396909947384341829263842162995899104935288204039618098536268156129251292232722229301815137551734816321420173016276814978053607482157929872705242890355862484808907290500569192615924981586823972953143697045257742739133151073896217349231578542364503755254448109091044955184323956033081680227784001367405576016026911222013057951693738396676125942463129287447814768811229032624407154211956012675214209862028734549349654261021611381585204833877669339956560044346166161761246929750053587394875792155276494316843435436250263134001644380196338809283204531530621401415248904255448678452043049711557405263655317450198661199932697272618326583480197437099031086165334615179309975662686599352151278045166143919570566911739093018057001350714028020838717247901212856225118510142350434922103847278715652287181500305247918785070689257768899931356004379337978339672335346064089643197098807805085707650744612193995194444364813052238828323218372979946166305839385919180919622534721014344677905994924335068285128177328924307863274135307630885500481932298144922789255219015401198082344281553378093119071806105149434558092405220490391701722692134713829648509416225661883096986015495214212588258767769721144006849120926118101026105607715183851727204190951886524714745998196143972812478259720804081877984700298675502779746587734656838222137887728151525798427890063555171197166648127265492122960531095781649141442883271335882596730742084076263633566053931713008487933572918116729550425430876348713016137270667398257963192638677476221876014776916044145870994186256706954895214783983232106143743809661191826075734983533054875322329114107321678207810427404082075934908741686382278835042114829156696370846788066900438944647537072112515382926375271714339419593134442476179406486663760997117215009930165660112571722639150026948906296458269859339338987591669953196784474418130195711113072648116639407998510171500243718660051997095784353429665012167379908857080667071285164115461012948656178698108586334083121276016005636443620779505195881977169821137961441205947056543896577698398814304549308995645741079449693293536362309008139057510261377856177855095186686243517189178506508661380249433396707474811419444323394925868917306936050605779152765596027597427187561855991732637159989037257699636984001157883555689161641354651509197389460954466104277356183692106806279682670744505238224477762118975816260645410993314620868548709330682622475652055419830114788137306484475493598435517864216273757973986305480388904078820734106952119481767422519008588264269105474298730167951300277267861103013968639876526523694704312821562803880363686030320812242138574023991490356384163715560782896514646122770043135177421573625743150248302920947683871372919880236307815440181512189444116038784232072815343332429569839682053631544361560809995218166686343816128292705415432348345412454825313067138152228440140441265082742531818244029006315284675309720675989687801205125641373156105832956804540927302454345349987260141907056915055650782225326835969801619632255803325140389433968277635265042304439709917886542876841587916758008817239847785041492022615332404577729542810477708048317683495232252292885941965606737647383016692586223523971318782535555218392331290646244016512540594802354854653363053905463068186294297241199264643180985799355362103930884711003317827602182052863354647942097046313127945271754941911673765785136259490268966073387832487417092553010184751370366797578443205963861214488068696535263048490326268808563263620993925148266466413543920043662993693900505064509884697324709249496578096353190807996968285550820384792466143366535645730660090684589990497818396697606297411155740183845445446797680395418964136271074553621631995496257525429389248525583261833346121460529858919964453639851589678065217762143257071711451152462207774730123813142457277785788724040891507924743317637522089186457922327846250186851253872312328849859637201769824623199204281389190039092104361369441753977814726540102414604215292897161606284194550163641602051990011935965954853777453562500031344062282351169696901642704245269450834318397656170186587224041763238646224871307425028132189890249319186389453327064692377320982422304749719240865440636565589367248516445875547567150005180869089209779145456931450116458643233708709874844743271258904509798093847291775455221599903220679439100694642461275323637954933753669719482475086208927619113885171804357985588756105752646648376783784808949228279643770486499991755222652280293111843706971412741720690918171667357367869485644466366535720594132340047081223467216460893527339297756491442364050039949796242564067373209313106355411721615753190760056512563298276120099375751291344992962516737771158665655637536427791225438461652801443671154562650726430153605622193374969499068896497679364833655503611125922912989810402461512444608575470524672608982794199767310126915816119937309674441962251472924170134214437755416994851504892760476092815650162261450105819191990520640299525992587361260781625738861355772463838532684755640546076931273364840941548111304833150663872827954024849837837704229647660348932238987565142513767961148703911877059286533166596108554286818037889523594058780422641934950272581178340914882452245697422891056148185126767696757504792010878390552756436769346101497615941777718393446905620646465901648000450540433910837147855965398702486924545115466295915009050290381164046509122367783847759383021351607199144830668505624341297185995250183251215057100433542238121926125469121569009935977210069339847796799826409171030528298918265946668895695221792926122025105122578279432362256585238588787648083893316082904828376534413723772844020152781535883570737633952566975276179309328168437147925202059309018102181004735680555504267930884042251206195218125105712348668246591643268144481863641735557009954978915606716660364041905320668210663234202217885407376559584833998528644510729857244240091207709920983434863738559687038107146099917577762160556137782692830590307928154574483183552304177931851188599596460613460625801006694099081794707978453703932264615654377568689563558656232702826459894902106538423379001006149239105116902200871547494762723830295420007240770118810916840907231994235128306493373079440777091729086455164730848855607495351806302546770621739720941489514315029853980781752861018094547703670333769102997157787390071393166422853744771182434882111351041950762987550059789863080053800950923645057506467648232340389763777286041746617985386956053226006582338095925731325204896955688729003224839084129801663484329001891691907834958885554020441717708425894568822951302357986134788122194832907896001696106246463057397363123493070046178701348872421740869086717373992922169182839401082710465470456668593847295903288225200593164138191929995488452215171322741042854017534909356882381554068725433631090388919357310946854605458907703456646676464526147470550681952687147077221356249666577232888885490514996644867350683790795519858936327212396852083805187039828148686395835917654040778837509859952986880869651167232048071977098751462524808994997911787536378740893123553841470751343541255357246905183558411333046174955077670879655603776180764721183718769076765815535625706180473521030162919372017092225179569077378476638093111434497573695849720895155836694505833363123155418977910411669668718914132514707210760913660409084028959690805531456381103602682175203290575740028230288939680118153792280129647259169617391175861871069357725498580673634069204859777776543252644757351002453112219860350621425102345981467999974496647038648912724181412599191993423073575420780642925614887475668397756731515084460310949355476839029959154118733435945722629925083008426008090319570047924727261596856125510868868884013225707144677473608987327613537423833322631786635490723712426367999090032230707735093387742312639643645591633589693123832770600050535197979758046082539736988786789533567247919442143535097305219158085616481056241806520176181248063773440301402403849855914654892836862809207166985720394123471267048019937874356737648972996899882345877252983937021672092261073953525439028845301053991345755743587679034626313460541124715300671244828646836128593988858575740230528462933001900975929096273905512745744906277771183192546586881998843891116988827783059484921312291539193666765588286165791608589592705546151300051179488459942800946836020729074806293550726724536795397432838095315080131717895717762287310693528756301499255560122828839056846612899366789416964023592685626595552220171688983643409964373102015306633997972492623225361240510871630649326810912079910213163961844076508514007433532339156871908497231927092801221017395209569915644208680666911761006490874336699101860224818880568752884640736147441673433548804681222668143733080548455333702054145363728403772284290219238706321295908312493148748398451818083937384862959548199649614749621801869134245180134936317136728907937828254822349560083663821773750787561704139593076403221513259772442840765931883290808922953978818426795209324540107252265265965615747565805557411671226254167729298956889721262851998751885017162582710005291094183968300084271773663253916652804804068257567205607184114280530477472986587447448146382898741531575581588390868920582895462478263243112211877186843955275450965785401587863589880500516371489527523638574714487911609449819682113227056115822876613755880249959546931906930968373082024642715175498962496817830943052290357265654161877356059206460917591109846347305400975129539025462646726256695564903385816105324761765420349941734811428766422599651868109557728414646253661421286256487120627535439042099759577997866069170592248609633747704518143524507027560948126656894668224297729698808870801924527996896767754689719078273855415791375425536799112185792828857572657535680874858617157769369454101046918317445410000661189781305416343983089651664138295542263498584106849843765688963764795853634650850548868781376985571238043737720156530262979437994363014461152294996578216255729804422229502991366688905257297769861718187240047403563266261322982744857862872645763673018880453789295253237254094790641666452500705863805801363790193167304998802997103098030831614225334267724292536773136118404239734213048830421547943001138608460223180678271595068035999601064242888860731016971855261272981768357470608587724315827051613496374577012752022028572912677979982430179266499722646400609722513088999705246985375691035347794567357797221282473769844193682497546608479493818227203398655464767264611287777833497241055516667759322872081547276486935427724514854717757642527899205659013445766359534377472676218480922694165473856131402054794652355170504012210392236118321006035772149739457728665355429404693807819842804192053075514897202362287450086215336607288953957225488536229393735841404069912504774227803778624302105911741690264651768062308061122265687144067249765222025918225848550344198575201816420525510497633893035071196361375900289031585275857552376541326197041952787860897173710601648814532065422755486838313095311242364235843540093354213433210317052184358454327506427783421670068456712571058948166511478291867453096713758588504688325857305514200979669875246564991176592859960879556995618021521201398772221369114053494779110001909015639639033069908975567997824183100178398697381540962644254252265834067832207848697802655768273816310896942995379537959483097562832636017866819409754730344718668146991219019099166149300711822075606814294671641049707237128872014620253025583566447021647893838174185925972668771068187395509168607700289896980952068623212020282258222009867776233481250892318644040400316628738003993838224898940886400587463513733927978727317649228230630491148942305429596889150335730923533471444366920934379333728796022691995226639797005684761529876334320639835927729033158551079499166423009694280771176432379646077644213352911954767004769812241491677355890081725364911707603305779554283594637951485784958125783698134780668878744746002425200622285759924660689779018819082855271350735868643899239162548824010368075534727505936609384015924078328195474263777134248624278856439790707565945422868605801287180514737982889294372398861416713250139283009239325171363504529227503735393794946542589479500282574410048602997994559329553762573769999940473637657894628564801323365615948821031311198546142730827753284697923628064179926122392120820702481144048005400235171029888726510188985865456068786083245388234381149011649480180886286775305562354319327559437005683237979616603706137467119644411687219857798650962809410536843743410557781198927664991086257513080268619501552436062161839947421336366924093156515832723208821288477557069805548402867795057512088602712576542003965445358831461671220059652711081199904987914250226770572385514034221292299640077693753052702812654309263917674137756396648107302613880569224571726888130743739318680009369935905243997719459931149094100915221037432284590577281968825027148024680147920688659381249731282181462023885011103572465345199544050324546707530042655444555904896521886451653504511161838611192141857649439596423495637111025615874991107726241918030332885512733482038575347412286461429814700499596671098228170801352163351394628109033994366569954993126900407122759102973082340956420555259932043308764056768578423273415290303988583090107834756475134470314927315108403051251527414854194547048184755587879367870227084900676110847180774510840794728549181516344083183187386803366272649219123264247171593460323826333003823008166668303921669956269233088901927327452238616878301697143152463343663781458249584136358494291060926263907223791216801064213503270004188303440147820681885117035075005816162691602486908292050633204239423273497041117379454007943486296729565490997907799854622755026840783116883138133375685168200344188582962127927205446005409147560144285817183518468725108299174508013282228030703808438982494966139430766400835959674248101567437924000584392971779244290526916557140602262614073961900700806445038835582052092226843323308834262138331026090403814607473936665321280924949880834767094101547112606713719639083210300551577327647200743944578630805522432471601425178575928374754067164262742025989759123888886814596866818752268999192397027546225948859396029434848433536103257384705090242021821036886177056748603175611437696129317826402886223331934138901258566989725057277227942397294000944133340060120417182988920234994642127845842811863771841018548973223533030024399271849759536385137739609209661651457156440491627626875114498695621182865474155119481021127950991315926465683546402170747673071142717210969402940596049037409473119155796291535865201087971985816526204934717296542034866128358510597337647400756414743976178436898778564664204948948081607628784283745772168891250091265479294647637798497739035727947981635464930205290235962426087125715330366983992134456051188359359821064609422535894849602548071962745876821299327816730587567031731827618853915276763898732089964209104175046508595452209198552991476376870038898718779966009906305488877363096543152049939085065931124350815542970111961522723315440350357442782004873894001416005769278204202893249791411143347877552940216663976342359367377017792654791719227819711097276976646667222616608681337194701106678660517617035543104503663257114301699886508337393826585543615668082705807119046091804151079874095761158025542980536665258243813740107417676261120388066834007725804935145387939164431570261862043633604802718946725555636183491120066961139472088057679964971802330169341944851022915522247038545798067692924153118297134983834730859922408295600477140187524496869574945637685373221302757027520475859937462091834683764314712846621547446267648737289685194694173001055219697441701497381427756451622422957608809227175173118414665870881329614920058715201648755803715560299192962222469816902449152088878543185879715474687823938591773839583422572097978177586813151688679941264743631902761664780616019283387186566412252903677182267933280215182726361902554321139934393942874023121043409004761537857235767472429066168593904151244794914420232856276196650098222093043927010350430820431532722134378543567400724690569234712240693436991936634402662406071237326279948926941703362985503124617586424532533783878347432609992053037595864269431981359414773186990604118551841432763113734614268731472565175070948731018989845402738077140958807671832468437812326360492829486512114274799142520260710783175851455554611372907695852825537848524380384855505652597518801252805617825992944796449486814266581673781528469739833821497795640582917173905691939110964688721013904076954543427380909717782115137148821975540785099880538918021081325559410226623953354352642151356920126429401684383569043403534669145304294966351192356176194225042240406938118568705153853223419329274511217498746520526529514457844113913710277061109638255508012827278788009777228347552747194017838434090438638086279233561508419645136023048665126600053345443156096465483081281284321857657074303449437623384023320236109471537726891307380845180772347534670831206037882263856663526168663126291628538619034630283226893195347514443855071796851030977800462026589048789744217911678651344492949973144855235345036703977298243179982367619843957743833695581965453049423720820932370713495896356097367725482523809837462806522874579578378625838712667994519013576676270498490075190094227337352138383592305455444890239414587121078787793517454594548286989475621304806789085155052145012215432538875866594712082220448645925474183818004510821645344764741034232628676798881949171998412126451162299434323998026840740277613820515163606207517829246118852452574094846888728216564576491756911882545907499434747009993893160857451511571602631906930258195566583730840370044188661660444095956988024790724406142081337938522956783749257776851038860971522116505985172122268495027159607535225645717282693846387291270975962939040904433233744855093236538683643173172064937774113165018929472748400118232180615598496080464288767733342972558893963375325551041601381420776250295643824635550756728444176962995278724711644953814150930637458086265689725319998944148251343005747655154751620046537117877222363168554542377310305067895730178740700160782127181433677739257400414448285708290348444060155183184495888936770920981952158225179951885539397099895342210583468008182289297430488725833450193956350616387205573882300298187171395386320618330364375328400100886088171486646183558098623935345266854909350030729192439763955465398645970797709949386949843811469784566293959661501325806778321217346120038584097415801776506639905922791780516158220362956249825148816352161637573958118544847885179933734861335440924498636171556175491394631988166031583031210966510351170918208383343365562368143852278284549303013878901196337192073725929478601732690430931667863245064376037556895648056211057754475919007993189051228751282397139070881645462412330063349726002092252014505775648466349642992146624555335475353157895927643891576819196316554093879966067647030311838037566094068509856710582561790451973148392221287447044594614121204357120954101395724085576499867283842336513286977958294525595318206146086303438340397638017591058218905141628477106608597189640868999854256977376226921120572084543992864585154833349243848248858043298749271069338365698655628824664396871060012732578255041350699304862783578229915610846877037631662737142538376561026622739872374822085840013212560883395351329644158333603364604505205106710650714284427312504040427228215189987573105654266290436589088644034828751368165440157979922681145077472461328176449792796787287802001318609025494323889354143816656296198890042983035713505119974355631784734078079422719020629092073977744229763242047875510223372468776758349737525601496237090813872755144715083600461412085613623653115529213281368153462909232014116847192175851013560610395207225798890431071929432402909012304588721367021479727293525287624723726246471266726711519718206831248781357372680445325926672882668368889652854504929212025906585861936791956764094228638412648285365680251785015725247758841732760007560304763387084500911146789793324867708923901737023159298350513712287836858572334382446040796222319349269802964300950498024035057564905716087540839200497918240210050196297804446758489385627663891069611278102963989889259007859904753441184455460954736906507413949473997468188935606513156004626462030402912876091269748669683628252201619012255572818166710855809519473526167259119908461299664592137830767099073449679043137304399674530850517932339893754941041215578970559531896932535942282156532892654080976264867800864935395593840349975746849098970883730947345667396745750665443949689943756314748244672130009019324296730961716599381986459188686003429086786558431802245236911951325234370293738698440205664332805938877182504252686387980038752158132390561702167626718290463020648624573939969897881009308380277497344640660594694282306549201699138169848320211565567711610860192488984712317628214711480428974244791795171539992874605766897436705427576077100368162130123348065693578219269733624811768607692608925535014291433956533646271054523741952042600478434956867940864297700830301485529354937681652853753648549313486993351797644956511271249871679450366225967080257695322028060812933734040408152861268138077510552627220794236701313446000907546448529977828777504395999002548087049576981295271981020193654745537588298579352910910773987063537220303120615180824941036180806082661305073780611157007994979760338952856083970810856807810709371725733378690078037580353287341638141292498353540663253208934559904015290964368358893304427649245421977643941223398771105017981959700094125605534978244816205848358768798751050053518204286820594580063336085415835957730902597126059555681973330902161591567524411937017110213726228846007299971834283062795800431641022879111247109098365540422354092870197938666599421149204654130918302809356934755595609922037339029727472389448024413408947479541811299376146946048519649330813921414105626104277742828660435462162065864961286117969558643164468073125017511554976530573024774205343468868769558321223045077623747372142389941633875346657193970991725244869913552823163081871069800018592095559623375348542615422359053857888542478101376540086163217536117619453902681716288445470433152658956031467881345998505738711451304835654874568110273576603186343423195051490375374825572989634071354718365511537770046457173908900027659921030556349414396718441235358291825482312065671574209909723220142880950842196367238643165162518165392408717873775254412902234484282960206567085258659908186126428586184775296224902288044621031607054210181457611435270519791906574663964058346517229249105605320742207465144773369869669857187276338907971427930439536937598799358587051603806482039049778403006498981938990836765840739209747276939026825016408393058447291527614999175408774558761126093805802388516019768234131279505968350795859626057525649416289689477852157930837535490782426169300881178577558365768671171381801628214975149999429703613824142781913974177093849190186075460642016931583565463789744111143849428761109975745159261886434662269354839149297504327045671678450968239744982613760638600779418926164371898744080576919918176486978344917254081627438870176499167947204699069571528548842421830169258326348384417853614413522573446591037356967629851093473638177947900758935453723341795009075676137921789524744278705393555208041249592630921001434215032797683048758101743050060552134329050906201337987541905648129618546064227419834504756765721635691290013259414519025916768665615585632635247504031531552534561301643340986421018444291605336091350583610944763956882313438553092549895959651686866066813072630164464981256831079237320268339319796331735734730182323547844438383205877862036960331809133393454112887060213272620030521349204433306839939898512163273504848613814818338926371599445496821717190398518035365588739686898179523893665633264307069904739897038805277109809796236107295847948336958026529511405110239612720709794867640184489452110697823595768515382873505924047626157455624135149914906555775018700771594354142328910018483583009154344848587861625227775064625171287828270326611326076630565852695899766666890106791301874782061841217804705609832357517211970742206528432722397511323002675908499567422092867994679426209327224334204189670789286491733948254808885231641487448627419450106420148789915030712754260923708789364170201801755356664414377328663527753502981467838568018057623555444881098584516237676494866930550060784723927997838283478639867772423298341240855733759506561597165927084728962866729859914869588187083948190563427686869823921001606195824082091161822281296345114287163346353997647955175184630106658030854195067014435177009194570214623267044916269306517923925970856733158990324518562843503980315490185142285731875015916043212387377595237538267723914577648257583208693240385149818992796839362557656856055503749507267308827418294879062068544764359018195672925763002885473395209315048883005692230754211909750021269269912173476007210869822540158434709387942337860790912005238367160558308540584348117178263027778203226210429861109868324006489847256535786798674344663394650032506845976599375343013077716775061232399575826467364377502600440524397651536034916921555632248124913291517323268494924528142342874218168239774065215946541511747935864440658688945534887436242605229031567468514865921978253537774168291947070374529863354964524823995865007744816592454982911202369437824434791374125308019575423158734391543967824250661364956908969825595935568886247010784973497064491916337771377506901617377766653986723247407445232353198283987966928577134270183508419389325433902410097382725446529358637089664812812625714781479256512800033635776243882933080540050278440677046715133209017619243979261933904099616678139415193333547247760552757364752537400204804155104230491385684215904002287481715864115148943300426216993766749748751836560259769545869799496696083061886169379281869329957980889405811883044622206656265116215305018754971995716279888893824482577417834341841825808518061440641533706859353947617320401371676916815610009151803252653578331933251965599002971313982041386589793798561069245056055648465897783384500817327969003291995544806613464671797305042528852994344299455237855074047430192831676277251991199096963688633207966874803945987686993567156670422409369093104005873319337117268015915737655635556822664875322140367565475650107142873485757154372307730590195002438962195261316836151015290206317735726522095839126914318711106026219002924069222278410209259062032139259983844043251822892422628879335629407513593583191494684836096222654428478205511692352819275095037819394874447841654957968509900723292347698958015896482487672154050352697195116802860707588322253645514511778642196907845777588281483083180979105220561142470464185256465694733218804320064625730077188542831705491283696440581220298418488715928288984892082193924059559498042835098994882913020115769326985352113033128281227629924669344781821487180274246202525728651255031320279947086069659972128073253959927696067559507609726924800556447867442966119089690588747528009271427159386466239980209072812996603058306984023046516730665736474243018095417991806455121257376362627988235069443417338243049589493449970446313607565543651732016841574175767650643557153133374650885405590373673195215265765808829243154197583948637385359949165638510271380692630963528349701462946362945988915873927330653974940773090897926280669896870986255186427716446305083037833471343253078618664966762612525175749993578972381303228369535186017263203512546347275462566776571453919532686295706087471091502751355160282803736193550404438610149009453471587707336735492835260553754535614168001485898122998867670959137204349035568655203655504493738414875666387704302522160387004683634271203047751354517086668598636536570558269663027698319506588177706580580273274120339750103909291964555998617986747156076011911359848799855451790955493390661712825360929960733826625651163719743924559531251916411180566969570035590429504155364118410909440978400649045510064801698977977165437055239744053426859772714635060506532772259733750048610645035471907963550261401686080860686990703504169530286337632531873153719886208198737107056834173800377856989618707192803276366900131231275822332263326522362011514583381673249830237990740057644855919329003691526315803559128165370747749008572834840274216468243184250100831243546241598199157341492946594801568036507775557855765076911348027456687918702886437674285710686417082180077856252266207956629248000978048445876856026085995409445375764112118002668063963133703754596277926290623514199818608702898624336082854730884318810096201296865004588504633182140085303590822128296765127742357282348846204974384906075916329188022017826782195534243732894136794274938405414553840157556715409663865825580291720750329779280924694995952571000396008698928223429762690876207365486965569451638233818174785418855193384553232498285392366150899172276486373019861785872151648248649939772893057784058196484015862861897873721491664658319490456695888012388795634598060830401651392709339739751334568084543225626422234406559624739495224711098673089305578993776202172669005833579180476404955700547297539375241381991450730088663567809138341560430530079182871291654019424058150510377240782297542382421774258693689430062969742014931205795711960555312402317480737628134933006342288814632556948706443041284262868842783895753300107942944072544739768658098096282018957143655788821991261802305021700012223512194151220130678423798451552874906664543229310393176025781761583058548891009378937568093382859090884720160111821091647721861341647117198570742953028528583901473374434903140115780102690382645719048560000391422113487744629396684763564566593862395103334522569579516414775094309515474522394723417026927868685098784223579165149772176897356550158854654596291144993536475837023956933936232310787451213293104748613771768874192109065746237540208199766857738007693773706700329513179152178359822445893737810459829674840811912591392944481025842186206195557002276198604808564206554383837568239978525182886558419801977148559359039764907578597127862266170219821899641407152157319281695847829178749448640874796115473961455983829374080587586706381068160579834381197297570067989991661186394181151366587609066205674456763765112593471508647315380191091707788721582092182509109157933005821101021539265375918558915932939620177248884096684699237575847474330017290584877373009710450684470518853883761129665862330929810045330868302343152774210311932747762445550683181054241602517490728594586393751581739435941869487065333526163253720556115825909558253195990375824998803528836372669419253210659531824938686607290127450436211240460460339975586647553472929075417833445146271471389220711034454082164379892109373105547748567907848348840528675066095891689551141810552286829543304872635047900613351778896159081277938641406228835732897133553896649580937058607237196073816018379115558848549407105796046803294504692112185094495109088250841478073087212615157659434498107487914118525211451027110433965174125969467264006494798555668869171083190692913372459210906734053811096576518626722082903101813424114914457834303967607009768044492893033392479330098791384901257037621858806800948707062850647018180943235247274498057621393704460491027164011432947308034406784515500194458225012312218187113189880330198404827673165736995027842134278318427927523643936540312802516000251487946609297456912700555493390599857469190181668823391517870240732063158977710416477210772569602388028387628527873352002417727412670150743599352858795345277559618867126256209700460933341852576648846046713872990122487360021883240962594938494797791076094994775266853963541060274497221725683318833677998663641547886766475073275114630872702477563798499021974289398199554749682370044103657339749524023378363036023744114775133454274946640207424293199916565268046519012434925308813187830415782635820102763575260860736315131735735276879070548977510832216318818312700719080401563025917241677696298585971387639029388406343251580039472721025314853545341088677819048883005034448317573494589466039696984778752680617112033033102474884494109584446070542071256387980773910306575282573577317777711311811520575737618078544745103201943763868681797517765741551709875477334233493524345601968648636491270035630946310403216906056191791751294011572541910378570608764362982800033158740311768983801739969662505440004328179136084667794781927934085697793614323059680534958014725358763920144891797097611345503945778108360039098920561612254581973090496043757798537530252417592317424052477157535774211333250218650374073453257232205125904442341154329516755869389196356311788630120652202873588124642952890605905815400082859020638106834770207085230818602110803696879157304560431561039394307720776441720592449348598299116668967349545931165206903651921403680077854095170409108739518702850404333405746724172899375502248599971369513086067796947383268066336092740279234054174635746391708776789445066863563402940411170684496908789506964926089032825621986492854185314714534005761087135830353472557828501930321422441266789000348637362867778244256552656461882296632582589693875845617383255874147499587242886173162379282394703596482515380406741815283560502663686252656142028513599535868086869663545081143305426341215765345459575256377165574693894201514511610546928382087589191420574639053381770412757375281949387813023492197951411576237992866009416736865594012544827911837406272049881867342129968778489390908074045943542975958831474111902780422065773701088221819629885197402530772216984216621408913808564345387121429898365152275146114514758756934992202510207422899918157491686079932096348783647599215099506482312618332159667088378775191466601025771867996979732696323271810696440026239899560474209433247971824907553098289549023867880980600898580372080380491988819808558798711040775269423218538639901273976375911635084330622433263976293848871255965955405421958098229568082667904456982413936734632803754474562846249369338384978897852339735630770550603966475850882600017303015109351491830461845817365492380435592838881245830299222537919662493476600685604990558532104960824071833281996856255196100277128070892918590282218429165934829714728768706915712915345663028405863431518416963560954516170851539301990835124183943390958694818247299992787432235842387583744121272704017670904238904592919191056650656101510551694268613104539818580500951469965970032690902940862854313042974849884676916215028000266752498300304488664736749622629941360243596327762925204410327553686331818726084327367178316894951055345331752405731104687423845659975638601331105539110755645813065361317696482602568257209865027655431856423741383619294944522557241601982311357961800247459165326872123684703697884391380619503218561631175208574496610393184694885351280701774521553610562345427447649615443714685920637060719044042189249064587713184225718477548357023883460117893450316298575937639467481584190357520741096389523316875740052463001133771020767755977809814770219212790395743934150241667064764897177815667667349122945089053362066866891591800811123462061347854292229112659586212469745652791712360050319009163024476744037179233901000621366138660885307142585224868434017454440289595307603191306945453127093324048106420117658341065308882613245085648786407710265336603483593265832485545087060923901826339244220085526399326883041712973946748842345260301074228772978508807552305006227342690472188506436304617444930786316141753695043543794422517042867822865999788185107053303332121841603366750776294588023735884020764255364044210731440202856163883342917534617445918564960838801176398083757242365314252942642242649433966896113078718004859152987582221430816451501127969061873396670621133767711147577581084988935048185650426259201994247328057145328790888899563598232477769251557757690376077901684830123462985504945077810112428051457506802638575961740310808284674271114889734834179584066268309315718614452382753215030919249598851279983593599092534417366616429001031677238673675666609037150107827388414882259522954645128312734284936667169407286137647340395986092739361699718930251480359958892599450015958968102006525468725243363474924899241220827674536071039917210193551018010728265098704712189917557626821412248487919406294948845731345538622203885657893250353020310078692093980911834277583247376305638840078676548743058554161937928034445937253149405604626493061895890189390626215892199280869020829029649794340486937187075336653179373140197180957054784705333128751883972471762320644154644826878944245243076831223865931977327351881287351473106282393929189381244944257053751354094171940318208371885249682807813645970445035000459715166466506663477926894773471805441150119888782671793231733456050184823454084545962753972440281626687398897636097777905875009195919614129389411965897418821600963560264070333378923362860241505829615231651484712662471134277842429164499772365174659023189289501289110919487674421320560515153050726475712235680994795884418199160631992302379599755552093579601043633329487296525626448053080673813762119037593066416425645306450492824091390551493795712591997898931475301661548454695734746739134663801807793580272088141329826657322860968412152925221616214102408013641442915055719911514412753376206949360975956353361792375450776834658505392741468123567909776605010561597420994153367155483970490038547640845576889483959913935750380310811618381765377277278376227435518860299371305715430675327258201202907378246583498360158821012705037177577005051600127310882308579870637541224206030466713202298745271037781007614420131592464272229750257396370033292266879056590379774678901321130358780908394842950382400362801283971999335747911565103016830276331342794148657219448821903737112144161468510030590215908816145933448083035729769359021586671487089339070165614982881963737436619399145676229361213276772727550488119382605377140805875059952657594300003316587156922297738138503915466585842747835234063898128624894447843596198975652350752744126851141101502110728552694471892636977323115956226914820588870671182576118384781889351693417287100896031790968903405658827954377097657303681461367582443729299011420476309805434970772138778989486323647281588386234532146595965255367697012510785295271379580066726981440026579259514885089446043018914415261244540902230798454201276089295117063770971241424803224139403279368552462054921522239272341108793582937607135045038357044622238254254990088594039959058187710040842294117229642911934712137964257929814095105509761310819299312518962753009873311213758877998908173097818060362933480695695726431537578928297704619824119091654451952004341005924735613373788846311208685687113362252637553290145024563309312067961929798308590106834399319747257922549897928390352987535515994467140816308793142566525149092370376900960789873180835032623238343972475579496693386406593931787516041197673488643643456206985066939569648203144900294699760483753235960543347270216662570277738150011276629433081740192281268309329562659605665505196487762307736373063102856543043271153681822238048304777207790780109979982848028383567514223061295288919851658794372661287641416751843753231341319759182415203052169741798557906024214812626959122643938003099650894616569262242330631751343915230550758137011120810819263005335236990362669623011285371924934269562347098841887999034737270534683216257083255106831622220017269165260365867527277903237322801586428328272102894513166451900851991050263299489314481823022469685935828440858417711408512591367484020866521920284084870000323031884993772923546906479532827866799311916895414409834274224288881411673677066972828782764799650776930944535917907760307127935034767198145030668545521765010413721516650276503537722862197992566374471716986407602462609932516759881102524597320939238559509596791661984902972082296703568988993863291207472004810124694643485920657753719216402761141204382419578976294905392158969780888478569426610114764789242633144706585310033229732632932799873124133667700860093689645269103308032095624293211893977904038740854175540281286261797244506429354177158204557688414367124758751851062606014780362601433823974953787158924116625749518428363593542777984415616432156166599171759175177101297243148918573456057750464028765467414614436121215441653724034086478575130002078493191511850615698753762225095369903388886736539558996948653326498497816245872339320628065898481828603905196433363962040158224847358490678398875254444095002986990303486271504526334676129300457258721647583582230221406879935976563092279429467634275046937955648725155788711567633319008251126802978147808484478056271606468862621194673815036713964928586185383556582000125154972719774750615706227197384123853834138539208041704287251137068863238672124146700087578490240260264718355128788931009578580303815481695690804053295081004718614833404362167585582710844784169492603328955589213984915586679919627823246238458735334603507711831007415389811006354473274065253488344719716063894656029212969364053513670966488886255739816132247812386603837086737096368770365138706031109087591518450274335872754987509822344130517297683486174538251977925793723735709686973912854486102539940161978733546482524268237933796389554339831756799377657803052645456615073634609762109576900258709709307793060589933022701243176361902590788451324171411077695424544242376222018511668934727469412235875869780628593626732518070034835253804696716079370715367806938240745053303035465214347913249829770987345852676503961668251195154779048035487977302853012549397193078529943206625774958416655374539431669728945510602488896400892072874214214591368989507196649632475523337546545835007196131311210188569102379343783903520281987703603622506213092389371313900650487651218800954568807565214530794777008866849385614461155286518405231394701961634836520663268779166101716937982350205542109877526194592618893553600409664134200737439033923819300124752909095823601699698316921873796584086493401008973848947322314479473720464653743862111601533229795926643431190041899284121909871388112908800425437476348859520114761533813877134499787280612952910409220376193990496895079196528918480047466696796885261908000445116949291432273959200004865846291754222014989428667311097268407877012285055527391479623363888440102657857592162689543926868200981688013862444789429853508862285053879679761655013612210663145914112570392526459508395831263402858417806818137645743588182815790026054553185154674259700341358068225573536419650292423258050995941479600280436823065925152974810512005467312585587535798064112284996905812433039886643094513429254908359627983266086385143270052725994337490554136032321416345157881991869013712240226030073798910979827074118803929192025820950264298710561924963643422823606456781046042518281082718493465721853572601971102412306672015553070653301855206991581941227990189668976881560886909144019167659399382184829093629220981275866114389983783188293447265964482065550746268420521335861246654741497159181831507831923378973775031111814600496365274514557092161393112846116032412503649237558881063956752883813426161467807996158869204049868400735648377084105126270379767121055504479604359291104870126554361871137305511617408199238073719989797494114269534839041959569802079008848475829477669568222884843614321568795484747281001693839915323057005758348830261422194915030333728458911655599013187712807897935216596733495351222539278167768723933638079747294375302061397535455410664809225539161780468059047328811883233166982275537634244279301734403253755688399026104575005098618562227792073865080267552919480326993100389170119635238960183842090856327950211036047675115824854309875828565330347540929586164040610193924093472348919296120689623005302384027433091021054223472119414209501744095231841685272009556445887444522178975804466476619915495994061150348900128083278721178337164686965046871521440782551744882587194273053741186526587970105774564027608366990831293868579723426486331044916837134157192175119705214444890345219851652173390842503568711175939840373911518480514449376259317576833404412267820018294931413805412919417535610733065212904750883033680509161023825454639495522283026157186537353893183236510112203813836535313801171179593485997447659509331999465575788888059492297102965704510879885752160304344845303302021802333378083286086218991296038365296613950592063043424255571660082959477042338412709546796425926436019210644124790028033866965606299590332112856125976431106811564019233098205565858401691010003189983258717334058146539422943055186311891455895457941212303509628637534221109222596084641993406875533948524231065020658715004269101417070889917776666119281106842261989206650435874092511716000995395659775687857390953854224782338280588781553191048411313224068889267571142254308380696821025423537226237111474770260456241294855345640180812626556175696245615390749979475835569239779530881178696975128360577673555797372897685477301190065830626975724034432553657004853007661220861899545672634916385524263900897271997582597296925329592282031231259548921905645298283011745029862376197121423731329473607738960531077825623100614343042026912879886817618065148549396656415369324195817779412165009424384753401415597458660087099323627012487093655205881454213879299287974619606930375896735535155507225112691728140063705356244649157054142880900112199328726363666520399734571750924971004619192086068603576981672691493081520182670073160883181551199809443548560916853219803537319695349829436012105365683071164637503374954396073515795593943850682847063950807587439731970653687890363158976882090846396551806620503477338901087190031104943119760481826764914130573873626278833100889255988363469006221226690640887038419084162864207314311279549447007015852853421935765801215201463538960189851853097195820232368467456726019538078233108985145159709002819950100985368131068497587578551048855337053798626007023718494757244137555868371164042564241264848604161512406864054181990477905313996919402428132593477925858887713565148068716164125634158208171285568937699342785337152497838962134431086456605683539238501362670263253667272345976423434460374634194739613519056274224720079675632745226493863880236770191401446897561911922903134260040517642666932946561673169676986440574838664100105054132992825980130201217266090173034380646595103248385520845297837699124070153548533206588169730584487136794512280258255488211424504492092997174304872255328588343445589260041465468772680687064346500052372564469319188100702423701903254411494644413410571510886653500138646812723946062132264072933116034105533822303436403761908364444824688798772112907381479793303784194868891419411218876244795030260439328801043634619637146096984055822543206323230020092643602109810951723974100614664985097123691148771509621321921140671296042885773561941624725312368369512819176174121079442421420989012261027778696049244587378912876417132162300354765042166911724574627601488304426622695986793581928486797734130074660855609546112880726978849028995937138981324421314479914577924505374187213218657392876520655058198374127089931241631616899842018927382504403679182998155288796791345050947328922644436357214444047723843894293907237850900126487292624015496037544804404898833901514030700872655149115829272265916058762036804643605358531374306381260998355242908700861798127196745901671714702422461834449487508803272758738592784671577137326221425673665730230268286399746873522636799429390986883411185833173991927683035430569034833712391114769540405193333836158574752205803635172331566005910824212708003136773417541294480979874130193275273809082481411858989001494411389237363316800838722974638991050702982254666026135563506521590293498587485809581455222735395806667517244534215552866879724094729765909288802010806727342408059180723209394544909428613824933218599953510016742891399668469715809202257466583857274166885239165753219261302460711457824029791246158735909965239237374206802640919320298569164015860935557793244561670662245520652149752351123914552769065889953513279605973097471729790788770564824636908115107504917281578557340674461089266648341736639193195853467185774087947361795448570148636818539645732465636431817235665058659105323655487433514841722851787488767380602155131769525223644505628810030011463981062593328093093854608897173172105217540238687267086347729052598118547307471668586934575140115420685721821895059207311993419744725136811033624282550140986601146235042003845566095336763997142438294442600429052948439781086330794343308956097508676641870053661363493991415045225815621390860224652187126048384317953133328064194860190348365201949514353999925831035001543519499817631488551870796535419007658754105499458175274415085661541757760629309204109511833513866961612806855519592848525193901481422851468194425644556446021879112642077940210058950318264432103340689232397802860717622235731829678943870960844002222296657382832641200355491020949666875813750858489204908257052342910073916350555519954400908485904292789307573497725547327987820951612533008761970455011374341338439190367372736852979228249376341660781946675829960461513287332939784652342226781258484262065233135958155754739638969483516616964264928233467542875194067639420931192767888567832970305293789495105610912838335610022851578907309627622674554315443481109421033757991665795306397724649119328240526896824561495692797606538550422982475141853568235173760424000679914741870485573616352220091001157765891556480058743261548351609172457382275078070852887392001805150295408443191588746763382519891305929252485508861842062895250725851674232272649810335489416900181879601485593804516308953917967444136664754154947899389155177933963809034505228927903843039645911928079970697433873566646318758962223700529377064795066765484214865800360374037232853166089865356994234051433580861731037231826317405746132760641198694890038366810646554379062671143241498217945510231657200015498287460782186289841512991802166016481884228431468904931760401882755824275100512350676601538091885913692797002051141052349812208805441095929101545892626610005483132823954081715592950770664250007963150785610321625918243751714523410579600939476519329407479763238603469355137277167722550014490269434204582349956734786579137801808776180797938002183508578594155212335545346831450393864568550178823311280976838068305828811313112637803552387486388104924736844805365127135151483070286727898029100486786953514246538816160493753208082800920751231097071271405968081313425654959238688430957270689374281320612566562235858773698473043762378099510499543504916053891477383440139525190231114581291726119670452069145076196945317775778551188871507941201984462019925218082383929506394142027548000002843914871159558711078809961309835446257831874213539021681015098013178133207335681296970017523055605824551747048149969171798894810915827519032304672470452435893362253867087359736452458553111764830657449648012288349936035017291839984575575815454759726422789339964258067849605939029079450994830905265108352395441089378464492973069448634927324855813252768207177731813143372748203080018638016488963834450901458214256924302453546666835717403613336554410222166465393881748164733961382846199775077989340347814095611166137680117348292626372877533919296283168923669985285579345583395959834262123766512567351711547331178081587873379462426769824673264924773863151036212592867418881405037025021572947525101546882021374044636426951165219623507662795985595735931940806607467862615166305856777009928540223195187059948502377481680391026756783934010785077265394419693609254119868821272133540805193519151559266037675309172271824492463311209849976516329672098881289275447642900011677188980946246352908544932463421043967981628998366559198667027249254540079841175242590076084880978332994733682900809497837649426357764657496289367697612686991980137746424334388451940895970544495826035737854759533772316143524321389481567230796523379588013394889422498512029051708256684073366462542586927026426804113214133928207762635113976500541859861624507457589389835852394696341292873019153261070469681739048676439253473991874210706696548874108206414572836506617793503042878552483477496509286876743053079746400005543900864505008241064489562246830780463345413321974877960044714551211082390961886309279233187061339726014768062495214362110799186686142387223307391432189776450611840440081349946843633098864085572450341957920744725799820370027397261094802163883010449293379612209166640317300522561229527247267822883158942837784085902753505089151868375568520783418858944360512326418095118097095940839216043740510646079921646190846194999752868884413296009422722473862813007059995026255697080131622465860157480496845213415639480063256955103195165406367666536684644170394019614910491161343424537387981059771415809263101533698031559962122586323330537058641752825548664642228284586093372152069747819770038759777597762988885296957589526666071789113886620696862786840117850115190871534763801361360190085863727416409141181622741058900769332154152490417152678223917543130237744016983141971247643806231765475168045274871604006306063800414769703251130032998923189464987524895316599820902492534037975404914521138080973689669516358454159065165031751394680919211461363410041871901438827346543738599926132528812274995047747458429931842350988957439328020242247241667554059644302582252462120215898456385847650835113730099875380409594549630345640616371659673538303028568788525797008103544969182842470340588810101062773774874222343114383319369933501681719173372876554933046512408972361279272406760319319478696968880030610525717678315903491512636176319181877793263389526832373832536518326795118765024610769626289629487436335021260090389128477681538073524022612856274058567647078243005530000341806186805171879791190083621157125802173701227693720313189538267863456347147793968997596459626488052528021315982910659840034680361463837850829864721982585915259771633056973952399209470616226272867703527776169664544445986054669418698346951566850140459554250803698186352320194298675537577357271520513050774255749882652996901469366506211802071404233569532448731619698195120985354021482147099217261272020460979662840086751304129287956897520591562957043922674249749276046138870902643306516124824704748733915509239035720427350667813267659020684707037387645597089518666275315866668551575879243834970229878756345721100646784004712557124400671099824160780968012024456101032891267595763040931377478217842875656533411522316976585453548301381304592960032143696852653103422187670989849448535834297549757994810791214055580606844311207908249282453569199166161842887156268839727808130484839658454431677861484329289017580136184241533933998554012306434883011971876112394864320012713954724814039962107203017224831141916726206285750167477301715665695659769561825551140391949440593316610790749184386224221853178076439756073032100227606365614253681343444633831707528786310057095316682139469501081375040976761717455343796399644665789661168459742694769554170122837604706213878844854944267055548462390874626386902996311344259152901898804550670734737188503813429665069653273096169543216425214634099099699244331186682263044379031533814861144426613171555937728158016414465906095315420394883054883230027256261016073438969690771106724929991602785621384539435703064472102850822570269666346467610519782466725840459692415185012667006633437361927383991039867367560933438889193230554752418852394166027250663969543327504282655557222630273845567091148112360676871261030200405248781357251477072473979469067459010707169829114258367278664511670822154352969570379635226273809428221517550870040616404545029200140841742726149290695758524944335381457670002231072776846976753975411485978820173362156883251241428659893319094852365208569869608325149997800313289171303732214997467031461354956777171003653642205961582923066519113664094018826560330491712018515278950612393746472071689978154726282429582741731819527753823719348921814746725367996712372276241535122257199035591281502743592576822838150412620409158494774828265612414978696271831928608276792650071971299699527709889390538606475438678212744919859655124030393488837701227117186373491409632009846898217137274626758778640196919806525942639965412225748859918821122360577761307440204191762537904081579057407750662430721517667544554585586388115198685810640272880320309558210896043778656859546388452722236949476575479228579704494395910128061093589151287361222674683612148927654137618209120680689183013649600124131851951096798549126475382319568627683968919245542453563505094064942059168831579022999781135316087418218720853722539801793782078482009447718039360368282322684453227631993279645698734719374149102109677373756888871738421389560993996772986129464219588084487489557541759162116449539660902932053316073377298021828890362003638487106427881403804526275227290638584623537771472375795323305010486074583956550179660777891325280450415200699816585938808414365693768119719854393189272298371843215771225060677343172726316609218070545950380309773756880098586373600871606789229626268541872156500089927951690446898430320447550283848742785904649207991763289987896256387752354919571194676477130404346735518146428344783480426905680059213908963602923520826536715267426079440134314684740942924658750906923747796188860218351014801725688011166737742374888650161354425581459813853428766471487531515446069153656232150499315031132183758877921842212284003443506816521569701475221685089022786231374385134785892739640305341658639953252813924645563515556386253248935235230517121354650658293576317829686606828777517884521777727694919174648241745587109685775499095774950458159163545260743223856992933842431864360007553013738702571277567649738912042446431129428891835880325889885754584270704264646688106741629836210082415802496921931382312000098300985844118899275633598434827060460618418141887259211835711288028770851499423715476991648148760525313978440820161865363341387250552355877513656523870196066455443079865753736228193138644239050066544902211327232116803592691818553300768636201932033706059364773341479909820500826952092730886047116564281406549669473308090135066761933123509161070871742603191518086809271462269603288334302339257375758628816202340261820955542625036287456149804083354369824816526702839682431615248358568666278113525191825348398222940711046448735612315399607340063132460004697587683401312268792815988673009728859840694346560651999370347410562087634948663963592700953486873954227485096159294060424273890842268481271096054496253525211459395282134630797512050008882544082471637171818102094113662937924216782847441610494235901366694682447300378579928370092812358068015589687332001333431706309476097179385849960421510507753189695478689505184433301460777264422624093400567904931804274927675687253208492811715013894921963207592314100263323925784232409450669350998288926251233617412957739343186776901358696962378167093181559793083805555449884894597206841263961855260266527656669064001821533067693921715182900522642103410139715936833007991451760589075903840359646900401338394523802416347562576043628191187368442198314353768036583138529422915158573050815217071615716999177415398860077831807915026525183645031719518409086315007528296325665274511778530462750749627256213332310229027542963867746883514314290807867061366714589482884150817732043791172390462773594776654737982339189831630344745723766240157367347833588549116990394463792760272099476070826872875686826838593867510178572332553713218169182310647972458738925065364104781539590437482909512237333983397833806064461851622271519135691658967218988123888835116464734453467253282301445955672017474113081612392619367617548050845717075834019343803379822361837408229275427107965228896955364813231545562347771581655049335740616522226126770986014472750208323736672884102411072856779029628277909501724442081916008854616413530055263743297723695676587881637504105813650398208830783229766755499697968000051796840264768428066836289566701108324864282385224960719749082044282451755680689612764935327730151996776368468182706312120192958133835390134737738742024549206511774943176308663758035045624378344132775605673307451226532260121256875965512309735905277788311580139623043022227079909126953698862462296780713240464985570056062765404291088619226381432778986091797056273333853212851588073683594546967835012007282562626494451449500003838054413982747734554610991422712214072447522716357596782716884084271391088462140578334922803210410573683118534879653188521966727776925713286836582525345725111212352846042160498596457465751242352741330643585721705518962580047027532019208082717374424350821495710170524896441901104816743858130610448532025646802154854219567103118227455644668415053257334660249753018736651939901031496763556388344485256808257324945742757776737054910425367660674611033566985498295584199629911478687286908073356797578972391494737752205773646600591772951295849644559823710939715916549343563622044235688300013007737928884996916777159553110885208809014282615801871365157538633444512394895297619057789482491790792499868533660512912625420648914897109155729399889634043936087829216996967815473221989210355502481032583788911509153472458351210223822229253166340737375509638084679127070876532441201417725865950000340951217963670950148388155234212893149125194312453668784964835655171118109154994378208477451851067692195819173706935958933006041846802668649054767504823256503334854709832980998954262180947863903999385865828564202693511366055717566938563324100745808179147453261974060197960425753808000626792504565832313451829697538133379325306806244454478048560462165484270777146752737809385704128703562805136563209123984053122095161693322845884136643042664524157955618255369075043934142682420073671427087788037446180932810309487723058338085415916830988687542798366427979916412442440509124424420818029828502900615108886034832895749649149046457089396598922771886802831577687740053849209735131105878933052408492175280420618951148796929130835766675645349747164829230382517673127590984388321325577342827312326002044552372284806146894820141484681592679582616229414283516485617590138710859546606146989182214510236656236309492917527194138512532723950055119943446732189042524231679055688189417517434697475915725391517742375989479887108887156595986933477823296707006536944259570895256911464627236749410900679804454047697172260721248422713980172960310073689534254872535946431566013837714245854178036744381199678462041052281663401752555498228659918975995301271209956435846073665988979960549518209148519329301810186906304877043545496056089600326790682000710286652133305084306052869073141160106573424847586012999840130878525978461489211942603959802491116401627408519978665203869753895627993926592896510928354478005126394049105548820259682603883271117242364000359930608750809469067001534847600528739828482233727624502823815848971707383721319402728028764659885461502844569554309160952959311243364375091731157667952196443270463272459551659461176367847766619631634064205200064114715529228291015727124107732412770497539076470368597425026682949975333433079357367639828483077341772339675821105663104228952545396291135858902248902981962773500898556781120849870265296429026306370263689984394566619452275980407929728716238877920248890933567679149319094779201882752275556026120845744350282137542283719754098797709566926929076553247749092488342538838672704148433743242329995480513750133918460842767402202637028596205244212476792910168140670613920055255257499934914112141288750470107977506704497616201050142263792302677170544863009076652333395627719788050560480302693715527667052789699956435263500550230079647969428125496107360078993893567221883749188861099180303289742253897553568932657986714945082041835344661463615316868619493400708805805059304598261374584018257794335038846759354658769584140540303344434591826798608431807321901283123695874462387870678364109655801655028448807815078547689224958691865236864164168888130459613870638514886009819609249432595365182036144228507683552401273005053976176561043981860093638743612938407559346242816698538456609781594595715719439807000032509171271214055185339558017450167800975614091008422545273717968237163986054082264693202217023500152381823011232914573503605327145019551911730408153927671868907091065486156795705111201839341736339567106880258744899050474464787814280064133833270631638113448452471765188723695435523765570061312526323384619760087202279002118882318444406621951639151479323350505869072159138741061832955475950794337914119349262647851678486193171279500657474383436799135631676531873969990797362226944523127154686950945977579694512948351401054488065727805999473090685453278111862490527084579390958596691360804322781984399141251809284354204699879159599688697421140607686484341424168579966785293675492920567038207279775799799575222802534435893678141282507495754939520931953036049412030848269661971427751941612313328354039510687214338084048058225095850265098269817699378578492505881223880349426173134858419015256257604934466737874343096376163675957156808841809086213610995884776923518357168593601098223009313377878315240065725990248785758059735282612212466810838594217233522785437912752706081192921483612895613607663534119875781037333621403356325903598479797418773590126395659318391698387802755575284449033966190136566482647622720835333585474455498670945688827913886412669257178638036835455106407927218824008830484996877634971143030952705252338118811639771418700044869769331574683069474202067766826751721371278826257555301846307429757437818416305889942121462479322598837189457792696241278166898378918161426984905322332421927562096677819135958682856429500400786475996710539632653928083470485409379102876383332756238430381125926342852091582878581305020279806749446062773147821852963480988061008564459974816911564540486936951216020649639782111816765322712298972682758417663876739008563216092937515283949791717491562784714328104815175889019187877360353237513801540833427942088770888319757984107698765244634981248429078690025790116178102539509563108809730088535153325776435482197047590451653627350220928132386475880913226556408254021434095743266646881528888084149277856394822015437584968950187382174678506037279814004803943545250089873057148343315996372358793895962452551906739747082969803461783811644719121734611053334770974874150855165118952475693411616543759977457547736894985005526192028794487245993722567429186796635224616236203211732292985849741198452814792158314385942890653632919186309640466104633125124332278602830189286890241574838964948948424123045789810653749605279229519485618718781861186890398287555955087303020469923071658666589540206851689896717607689583059163833600942261911903347429550148679043180054580701570068045680969704527973272571533168031229081379991055342706537890052342605376348587341539096292277011442244492733487924192104574394087085309137743793724891938691668551699877244056983415522571077503402294590247174434454863954880938817118025195512359344164967942209394950538218247731188333711242060686778409693821946131685398595352643750123789134018252967339518901548302075568600294447335760711156776790841663083030707173052024190651875018206330161153103484699404112257735283663396140549423552839193960331461725775855850502295773025683107200307128120016942314767091203813488947498637505121160419554192998682722452551211625813986605588435803087905335694227839143660826503735387040101588436904472316945414768592383310073227398295401439216111104242995290727713671169229338574805311655570250224502750780122047887509417879743369624579284636587658322116369478608027764922490273943669892653500465550275780131591248085151442537090671631368946014394449960746620011210960362432753716932204381420025971230024134423499862136768107136427738439338978331880552337235450291503263260013588222699700717628017313326092341207794798962174627350266422288012782092387085471988145604886641759925299857271652000154628138713268320812107602027115705451046825810346502504800634560106354773106915315715894455275309272654818134129211818331578202928411478871177632492371045251921235190321404052514301203550511054528542831929920056639855654539349833483830876724801708431233695118795229087163467584808340982314456439063300887887331257147477550420849776099962779387401149671890746028399075147935514714155780932194583740248585295524348783700535684858987933142986895345571127708575508864044034973955086863518307024355400098689189872232428542264856157337093561101313954305132914409464344276432864488559147929708880408281825831888143323243149591091488704224699109493246998014664135024105372625514866152157041868151281399202340501605189210706965018084130581694911397096108126572678599099443881349640399426832123062720077245005056380683658635438542859522502595191519053361489141631081328078832514995616578745600514562183922801428448032201601688215633586585023548537193546194554945111351510521599203245354757135648235398297009025175735128655019959163503886804368044279273837515679370115002134025287304168750045047185438525318476822180414901157100741976436701374994108344787645894630271675430454313840958525441537260100214938598325916522631690748730205272729783242923348418733155133057865394727163167111271487159514139790583360404364145530353036919763319558835167519513059028698790624017957434960043116946395888971839760918747141836588069766153215587755982285250162980479496362710302686871543613150666476895434559485561615270658452804280262818796248540657267300014008781953185275085389050536039069199549713835718552315095387247113355861043398434518936981981917192517785006342025327978010239257563371830930173926216309033060580312543994879182424060197232583427374957455687396529112402393673126233801052707300454328110732773691079466674882228986379251931159205270953893638461758769873299820861381486255569454417223227409584928590692950999516371272612639544172920812971031933136407396640052898564781097747889962776821554605929310680639009987798364994584100372734481307819047807159372633992452639413630664068405277500739749716607080284475048674942016247851499857792528038480229769714752260864013844313125956991357759443792027974801293552550212167671329097506361985192484197356834903838446407669334423245590058242761816535378681905173734164768191179437466431950893030409273904327430611005771236100258104408100862197135825769158608439694746652195655018369657142939890341287496096402452821141642126876785988281678821243509383164772896796651327058455205976196640825853385145004158877238280902314128712967995362065484070325211411041760832043833214965416291280185247427278630624179189619832140501033051441179134264791626942734309125950136337014251779725330645293958236920979301452560901856338597340964929201194260419176439715877685030679471998125708846346606507119885697447027322211619424950587687661028940407798584924384410763379914382801426124175352253213034430607596355277533994403415018795309258651988286563482327863192154530600396473385151012039791537972216224561548832025431023424639827894670781431621545129440959310766288786714137493223526615401007681576156114459235079520577940230956905905160691383755350547496488734914124916129004360725915900189149013514033843093227944695200010712580331087692701135469035536145549311640444350979003780346618492302656029144570314051231473007575273083756667835268341476736475802754431269839934990564546504713236200877583326143640995740403501858679652326743752289888319343104329645676651522893359762592958359198701276746056667566175105336241082675837313577042835553359282166044594782447231223707262161946259902854602159291107277146528788011959299649084053138828515217902445380988857079892125620321590764500649266237043004817066608144211857818743781977645122744865067210879838172413185037822519085364062415072942929244548445415590232186502588473355444934102879070315973208516498898003563808919399382964370701901729600939629275075136730770811274843650978865620354116487930816724101224324496868821313813285867255999320507237562143662906036813335701289654910190832035574859288796302645455622113295159359530693246834909621209437531445114277003104981401014123520494173748016268805307518323999719146467041949193106148094748433139380952530272267982458002181016459222850764305384062261371126779364343803487292717835519125248794352220745451798184034181086380316432424348026648064745285975626548710630167718942366592793564889352023440040906245819446982933383544309155902416364498426498041413330826424216469157800131263942787612654915737195708029862937000265844779017614958339039997456390973645159458651174092435726608178359566056623216457309386062916152687383793153058799909470180305837981441013117568401498567218103332641752988851634614374221510877630754303173519052519624381842257525981008283498157471411000796304196667593041435723675111053260159684847793751704609028822073731423721751686918571933604053423931156682969549565530759688363386562444289291842512590940192667925780261232674951481183478547510921570337955318966974927265884103146104079767139049528262211764728638061931445205641131879708133597589758251253537384484245442019582080184401568871263687502702715897628090845135660257942832006855325843329722507982139013509784769974922754049322826512117469683717767876437111061954373318940994134739365240470040121769665204343465929215970476588480796227765310549617572982120236515568496646404686213299731641242661072762656738505447146983571304148232689544405803097528569888276484015910486676221594522148676219310529114596522976467871674465217240775677626473437867792127363169701196445162210063670183288534532129073257549336967997320043990610487416546085841192084258730256186761752861324720708104476883861063960391923898310460764060454287148300547818853865632058592199151466960173907732061305564044589514183614567296818982657234070896665284985968036447594022256866009898611450262651027586867762064452032966389480773245186336525614342222483897540905413400249812923165383192067927833523615132923517153908183109578849440836893443770786767176171199286772375196907187467880068216690764213784340015685600707369712419080872395947792959321729664498881008900822572355617522637763602095786533057947205743387304848303594890902302327101642061621957816779451369870951122019513358827557253732442880882592653758741057932436472510800465165399650230547436835598372162443374356029191274076646142577975012975647886021287752583758302092347847940477807269159601141543862169940961719066221459053754412286632751944101125482252909999194186308830335182769864790839249363788341497171804086786991141515313437044920987663054335287248208444104330677605793201873069901882735425147909035387580088801724802160983927144424828179575820346640400540927088931365741961830181184898733628546646555611510100354353427007779347498000368917641956677861090864824791707189689641684285739556511375229989133755565866077205347593981342654576557095794975781599723653704388018034177801284618742650683285083168365490274508473893900379339657606927044525055059954867115813437770421567663565924882879944516775425615423096414159471996731781569673368673013973091667771545853292450449585101653051149078575612837808424824615045757804094680759531767652701408960979834047539219140522011867897140332427410702314284283124763792357196812612329127233658539979638326779382596320870424870089861352963505558634826693990325750630211143269232247767078833965625136709303815811479384568834695817503189742146061789154848207167819437721652902880733295545994820433741997382453287025827628438506974940063774137690891867377727500215540502045334801169800657928947769153562652310616867664435360507211262208044112533300088343734440136560091167339457686634325807619150689517826695024196888599020036337641619713680454646100730116742815090062996670523173386869488381381763702749704335672226378002847142162214286257190849904472067488620162157263974169898500714395597531289546325801176543650234537688004396498265495307968865057735566620185635392012984729961033718530903272727336154486162985455405438678098794164868396660567686462125677224514349249251105259305477226851608749843475386745716422028942408246542852538962073808436345151933490655376863114428803081008690615801381370187469311145277518132852655833499671932150677554620461804965591274030536918553830238138357357119094296364198551579460152897137527040579534717112748845273074639970900343261049355666414578510352759563110924498133760192152674933021201396315422074239645247459179998463166062012761153802652313557059971714771106078998446689290982038226406974170687382620882399436446829888540959219924946118202194664677231784803715544563906523794346648779888738688600982786776299315098895711668481211675103588387009184445963320982202703256882867189139867019830178465751155695688852156483326255153651979922461399141974921329392622441860303304578765562066144183995388998240809123542380877980287981227979470502296339708247154727927127724811026453455037484776483023563562148553182684288668942237959660572120737399717766677517063175680308768356447630667650994116009276583864961697547275845571441366592625628568251283958051806020717936180240311959869511095810586776245003220640343492489429771873184062977203737110192746863712478444518967459429380146323666086308915623187755650614236964269722303420231186831305306405876611423622603720227970128956221212441718273430325374456034622527382091121915347561048114484473602856852660362315723553882271503819306880023291251158738415685776089516216986390501968264342213434035366694641068378400146792208831377060147051168231913911815880609581996830387571927439172137267567154732979275716032863744914026424785234271001172433964956364412499014892486561026327806102045426159604758031543257837332373702114932598190816632490180815271159027705463030838894408850798436468216708449209160600671854154760283065205470583585252887823177180056569657048037171269942727885043329934985278018337402907476118690128948944116443316399009691502207428188653676599131991580610019544673550611059117551409133515514878766634748381692574218908073958204185341895838577987009550391166202705606819480330563471196579559617711131256019745930714962567826299889859774518967590028038823987386752458075009491428303708276527024637646295192978566880507291941390747327642260980481389541143643035883461160325228204272769867426031879586508733970425747340834506331977613484250569446749837069643154968207797864601988402328039738676582763948855187944795136705013376474762556928089925675313379811999874611264939213722571414008894066298022348164962914649027278675250734180724921663358864134348151070624113619247457000644955233684306066175997624306928619874942135332538830908148686335680861271126492901057015488309565114893468987397581913942376836126166190620476755741296581291235931746028823134127606157408486853681289639495188285584427804226730309797926134365354808757867273132651374410089276898534698110886915142106018222290160538765352792826915678445381645974576155633177381519820912432221157067449983133918812504053567042165112252745807068427151822313755415599924557996475122165774799747301799336858134108648579824040663834458210777359223336371695226332300514772408927526366303876479799766250582673429478087712712293827284065941427636390041357978103891821182260096565423848745001164956898277481059609765178605524787407459438116169837296323667702775797014161689902617768505066039218740795239302391214388805260039548727021211603758125537458150279076160455112684204534277488229082112419675423751348325404959994512021109755837745609982509032188934982649361529205580443834085114585186317168864068835424561920405699261323321063436199224143377092170945344372353022297359885172321538874522382125945876359530276943710594912857343970755065771240638282868752875773303303797034517407059529782814363103833779458304376567511836475823748311345668864307650456261685915866367512377950412786749529471825682114895315787945377566574471561624073059055979565155161367526510105315243044853345824292882537653208624788262352347541921813879743753230297358078798657862532568762423709261456853173319651860839657040261138515772506388817085875268337535799637101646116706909631479539642637613920958883856288730689301389473694405349736862189450045158767124840827259912225064927851566822832697219061430589376190501259078753612882315013848065554307388851007479345705206018264081526844953793469139438344640670338231883347188280164268868921101494021436100630631974186726217533182301306365038291944807420239310799349810247509274378875646541272363237498204204835433881947766499374806937264917620659205317168436645670067863557658667052521198160946586045101921518416391038757119407554051998164999909798922566676396315636047281766134201744824909443801381875884267961474202989992595843920792525390748619935174060534907247532816943632552611633690577347045452395309710835375423651220468176545730319970835580224765736962096697031462277931168200027510218776751069433429254624925864738610356906929992453440362924622649846218433773272437169926942241557014402850561047971231560879404006105531931578524879640632674219111640087415344632661375592147403890565605351507189630048168587231180305238940751585847085332391918058599845314096009257150082448122070357722084657703949351255790103674016160165990009292434897563289337713019205382022125056275658390360302514641958425871141039657508304003671801703498481412146480457519438384172645069578325569165791007940725084698645978842220036178248967695154483176367631647734692113172366353062041589799775082475200597391797339584095919023631593616251982731433284716706534321688720250797808073209711550258366371576143128680023197921268937387635588846138966435934415188710586281686413770600135927422414663001772818179781984388815421439647085202310456461090485078084670989358342917353831649385239918169680753924618113890756604548389919942618208128965332104094794751166709424833498220888468438207505920283451459511092213461477421527628913863196585835849827436449785568119017056883692723191866586048693926412085693701739313705792980569697864584190073496985879704626269540231860510675558067913303410628900813105148570229268865337809032678782212484177358713718354393428608982672188561227638075217242084148486154299842677434700259950605906644189765989869733474518196416773445543024974552979086436877316142383091960160989588396149880615063709476696131405469033432621709036720149103885775469398485484568870831414496215708855416292665545298927628820157855835497395021909451361258714395819351777311158661728312058728457475910614464001815123250398758453507160309166997160235032235215692132490052947015640713524844461221685997181510017251381754332848089416273540405903881914874082208990448242027983905589968649118835672493558491265231849789759295011763360063738469380234202059701357218616037555934748674965486720350412171147464341678613929669913845235925096559477445810179514832925960175549912173094363753499259685457980037595451800193962712486814709601610246198734284015559571772650194564342266947751313066109509398557712311074130360602538745957794388374346004287055177906280387384867962342937538850722963040207474489777401929577191885792825073138549715909112266095604427637048558452271876842286117661740698494244828578423712313337098645690578463019723180851952790849599954777799870767333293510118561718008762666144824471978373649017302024400401968057682796660106536495065474280224360474755322873159301242469519274418393996855680038407142200162591498896153134708454220918413965075841566771993464726724545816009338435057058019979356282113316609907711014259331362580001927084998897006191713798680002934863341906612961858380961030175782896457228438287654377580305299096113216782956759336211372853763963286602821095206426632421206928550528473441337558726240490991516115673099528515259369460386810922632653997170527548322866303825056566869464705274733043358774207607349092727026696498904407024236963630885386457482078104281086287773384123497466600365143832803837349608817009648553038737155832368170634014453408077505871940415016952976684212271628634241522029450614690319085437668408291924711669574466770744213517114831384393347757236771979311858556631910338320008083429947279555037886483958080505768542321108093204489777589130589654410361870318790683844335899981337032547316066865190000034325788599258214849608941907035668500875207499199181423037736478457897463892823010954155813827544218576037198545221986603963086417689538961478240477173423076603830095182933734264678490917336383325863794234824890157708780864615899501532780000494506854771549990415497734905010644328061042330801785374599248020728753775785335827176168577653755875972106243868833673736903737739387227619057933333432533106854595428172920730576916268777742652193531997468406782971653515595343596259419726329943118451473640152828653485254048852210818459183423875909007211065953850410687145043295331073214401142461201698993116164516192109450248430929251250610919355131115912848139363408035296742650017976808748007150659991562673009775798470458994048173770417956089261804454199525676427302175207764392624846544562526321839219309275730814099711028005882000962614313040779239719134046189895723642409161870974348521768986350657046176051021512831853669356780273083536558860521790980909688312600966676068961653657827824801419316750823573356267522123921905013051088579399337140000576760593021882429315653643204521738429091405018454805418291924063386278574288932721112983100174916875652721178030495847862850136219178376888517564598667808804260375049350253495931811957450175438229793753232884483662943790320067589714341877454567290887151580284967371581263275878372564689951163653168255816557852125002617714312568341149733508666196440736315338787870622049584812258664253776396513591819323700899784518303017988311377291963273443946516616954629386672429662094430265635300270716505745489208486831297890728289229377843454837177060075185557100362917285156836765073672918721950005805295510796481111576949816884324773631003505458157748869740827751359601960693403709042545956097336486436651589313817019709571568102987521547361149744603881605276336097753383624994548325164241994239373914174274950498271184586060481162421482274826294181627261514105624178242450607371000901798168202686086220455085409917160073383359154697781064252412875894727496711785659624915714927482505062839797389286327506524877024636099291424675449852811793800536967610866762572448566261788715957178158229837760210615384859777095941300412114598118642054836411966582021544858822758179076760167605601144836477270614674574842694428412732121851847860571614911816652711741690774168326081421746689853145786400848497543950988613871810774923904262446699372246002681442840636887141880450290999096230194963058281603449137334519293330405556543110922687556723680728018959270014281207100553856547802909054614847630966779349280433389994606420291797479010203976690955016587483573014594320822059038118805033923716111874599700100121299491073352841461264268041186763133279484849840864470979136606097482031362162424532929907096159563372417050136600225030057454866685752717379617686023584088113847691888132179840642816581882848558083289072683016231023674103802440575308294048874784633145692271595987593128149963090130058256570643032009837143894180929328646763517548936127046878614163748176686824144307702103313999878320549891453013117515344646309674573663423620830540154703020981242422556957411765285117950998956070990943288226577833772829339781198447023793377784459791968622515028071380463680101004696313129308483326633308438092464907294525620072218981216564942960249123753949314468856394309142224909912642693364574873595215144351098189977071608882688408115464709593044826160338939345796979665781601042597711982931185044858225880090427793609923372011015968093019954330603168777488800551303545734581187202599256969852955783929436971223149165039886792929505172911449650387696984367934700224141981303956799377548632260997049550253193158583759887212079233091855582589097681017862161969738678466161736314681219987731882596592453675845609224530668560380072521131826127172417922681270942424220894031239228877669598623886629496316159888818285774607521224395137875726143179830377919199897939739393058981603108490188614555612835872519569058050574101738368771375653095565306218050847410595443519327721580679662904824107196558298451511009844998512577245168778083289391524971634454354985546448121126576497922348326654466803556875726569540459795887239981974142665385992587855589789296359085826486854634180012797379929383881984849442698214783894382988614512707354093893240933561869879382573767536001694671670924424054998484638102258171139493709388399804665886723896890456895310626772973324977347384979746226755666128380626199578758981307812529991339089380260905480828159847826696503461997338323561401418294976635274280142188245741391259487911929961462617582280298019235945810881710768580799324904711673167430779802211683112607679316859419487910792006164263749282364351595028767445355425049588693422582920336532146007612713302802653485686713927994890334949123892036465369400202346882966502599477618501272773831489297200798101342392821482824674520528844156214298642505737177733013830873296688478917012965666267753912159940089991301733569167274406410191467681273664845363747663777663853427660266445815717078458415506944955200058498948276775384742419621917984414995326548219002836441998596255704382803832940779304190312047601684081257219131378447638632568108662347139695905334594000115397213146520227192818516359281815739280041221905500920584283889637105019772684922853702237353258556043175372949244240730692105806761650458276850814582223842713955666656249088174302844701956034594296300135736487493223405404918856196429391389152470057327418879213723561115924099270781078945147583233850954852169309007152128910678758570830454686667988892379178783576125259081919393998456243574666936507288089287174959134333065884652315715889554449897120576302025496302657964463836137472433412024146150654209743342377482552433304859958184309882641886513773179297169883011391206668590797208095031640270170402447550863995756845958041078544674490395229031279968672508284785474894854022875016269921009616427815433943269905502864162262887757676729228597609010402067756322341623440044300596755948164576682039210304841932915150260580711797071099574473556770738990401978706854736243034015463032074812949728916921235000831921158480150762639384196780456456777643690996259373661551876541324753197013002065056440143805568313568880990495387451286334166316393519394263202089713396747657411590659530604259799654854001795021573681408990850029101830424269460146924394457266487209649179655436440851657077997114617300545020361044646125174690956283127794946921990655593634125618144931754668814755616357542431420171190643794300583475565470087832594384390832416153798887388773120572524659593513247229035178474052598127436978466271160924897312523529566566632290988886319672230913279339951706393791187925809977427128098451366191861778055048537220470521575594616819988700350718690530192817042482887096779154996415156537332221358143441339633832990473103581844598039923575449990891073828287127082187407116563339043135639742529215656090746710401219613035599963785266201056990393470115237468655008776206754006288307445367589116653886773714089651480886307681455441122506470659991887972503923598278081894477230201640539893382065920540378573613156953896905945779050477403525807990761638088869156308018347858389835250983889746589015591523845077905755027389349612418781668894469089235584242056952728309543879965365388967105373210191010698192744866864123653143683221342017162226981582054713268656367400291793347805760751304300066452613138195623905512240063865176154427189144956794328734380782577639936591241283767793430692378027819229584325175944349509194499888818055470207889484179491953761598760945068733396257241283067829576909150306332916234618573671164983933559505314806565049652596561310062044463046032996484578980742777831499301458128844845030047891653874342817902642181316380405844942007289722430512294061113578079445244797348444451714730846691126733752203804227571149644997849966220865994669990978185070171573418944710480333218426722580703134934371336967074408571545344017473868186574613544835053679919436462326709843359388075215283418789563771143517786835192094386748894290044681783941769875684206576831682800499750372173951724059027951183436310358996585914008760531139074955943973486827951689116038168359504059892494922658901523136789788886956670054895934346296393826694862305269347480854942093100363954429170966956580014111263019128972734492509712133611510893936315102863296448492520818167644640325123490602162400465660317642173413971172092786111776440318543475368587698722456010353182449077078856485251948044666485845857863218238558910009683957341848824880646371551711844927414074681735130095930421132182452564916416289474455908719074799284425476654591637659924826714933986560949402484967386616300724315126796520692446533373249475626995640466787758431503481382565935067901122769759121386646002305144401286262993785473387214393651579757717758944411321035407099499282536487528102406646367822217426390186978868008231089242023439493607242682373254368630573135214155891073706535457654504819973654163226098303246750708397566581254408214784664308751411072135686070423367181061223204527005294084925815015331120839762962440848194601433578428239783948540258069546341237287077520874667380822287424920272609138965669166845141031298473777865848691315787464625658468277250574061940476282107316280809018342812641295140533708797764221329204869845553977006211105125407243356339475297199197083802526858168096657278228249487729006708453729008439821013362486517722173489767922371107984538850946879666592128359163834115504659242167205626372029342578547685903150470721321482174913201280065148250961747590157881889644336629735511874256760931309014819542074468008196511323285172744412187586951467781025652747764560479673512819370917409166100479342516244786461211755812605195110503432945116284774874490139442429836621611620489719317772610475356217274511003748480993259852538985600878860672282516790456228961808825813928530917582279686458558988816188735345473343128346502997787520935439050013556219910030413584826434703380199220774025032015818021893823799333824138874445779295839958033051951985494241435118127500356075244404480331270639985716937283615983075392007860908397430375400273189744524651175506215804705760567773898798776909448152380058333503997289932913739812449704239587722453394315120986323677770721743264604326816442827748723387873604326446024542172307123221665612972315457249084074683309113766001456605176638950074551810028571907363427318847491992986429546372275789602307643096631909965462133954362925937552682193486727339591835036270345615114278272626310557001572831135558381166503784270487496826946315901075579810214846594647642549251827893486389075249953684306047287536696649698310517121979283568066942626314582182117954486530609733823901703342517398190911539743288058796634593034542188873374726200391177023459990934205681877002113798766096580541769729190379026000915727217280503511024738988389246861608334682235835542900785251302606168713570103839047041295270480653338570487719941229458722929196858367629355597185136713896337733592169585233769224024342636310145309674605543391520438469067158145888182250560686046947667665920878475277158986556780810637502408715194823295690224595272220647502203470468536362869902304309712338162203687751802760404095459610421261650714633573885238723933704990781761468378499081763084400552403878565874218237021456516191195465751808934952451170017067700224240424881823022544228850330461009161290522996327014337836063491873432349045017287609357463037320959884468774130132969867294926590170553322447624975366045647140013240008058195681080423960979840411196030898029043148305413201397603966565570790211097475622754827286276596751341053861289689515520766859416252678071744617679212780515848515544995050577067297664948844260634203863610215623830107376191673580083336072004971121914833734653567204391951600498737000095544602323212525999420078415492272493373811260021444038291043796533977110331280658596946681654809773244460304315599172193123824262024819529203929498144933196214955992041055063312724080990151101834783715579028511102083862676822269987138730102863243449037788388166916013421541169791371503743729233999544348048461602197893477804498850992758291501051387838480986459316854218372100108295831287763036930500377230800320797251727806335643709548232642409223997898203698650893703582095607805732873266168467232353606584221195022669242750406959545674074740240639377077129752048927242173935770129275770352861655183488835753761803589978539756337496500760741660219753324646979320215512946072650447693396547446379362495145938696060356505350214214046895307952451612035203295169043829785497021134225110934342919499767718747907768272443020579437065848882991062475703338869178039605449907605572585085242065881527846543762366807093634554057893591732177978465566840842913954147326025396437509610935761157957157068913705328392871040070628208625037478865482120701091732830761557467821390935317837132615926742298833843259797449634940748156932234304694723806556477786312647636527974680042082668859158008155111172545857319951327859980034257867780912226676448517898646227616705305773911177578662310471758176128646407068069542980201754482926740107231464346476143909918712402128287145075900833270124061820261982870838317240272196061901412429195202440127808777696334397276576869864862649143273801563071739460884447197298850001278183879458933657945384456031668287987591787392570423394663390410363742700058017885121355995621336856310668370345062117343345802213366436107571868473002670302137700210465100493625516125528019274544738663882837495688316886036660977140801534697617894859850360496759953254834265229442687239685917412123155976663479977098625421441491603982261302533146770970138218771719701885251336849172578717241859427769686772282461097892226980135817798541522916980533789496115630532893851948908477404514236595153244181294435771912901820012760486200016257434069415025696699267087705389738662439303773854846558272866953860571359034400911055508142217384763976566011867224486466933253015736808700137927460276652619157788531505961227944724169674574097296280023366591252191498131576386414680279529144283254952297906558554371587066140911008378521636524753844600954978047528928984618274516272895964164204722020827525354755370457434209905610857298145719034009343437042154658883630655330655771006872611886147107902658852134013901172717517142138062794073973221699182047672883746647688102368472655338575125852073393322468442303787471475368944072596242041780495906093042347583371429167622721480171353482544030636975977489045750954226830438566356502301165079946328281970862119460675228343497547929221828495195587918919849182274904206373354317098173350207215244427313164011857966874189866215983868575743926705128220145677430359965298882790419813765395795261248805372986176930667390868653719708883648268856618385828628154237553025238020776096809220447067337886494940926119872942824383405487444081229378240569543950893687309246971669199037055464144390142271006391437722371542862817217034185503566883896168524158656575415863844272263320403259121171694168329466556710324190316584663782645574943979987963511861013678940633136635240212942238895352674496611273583813962408498601435373730735237443182091573043981301535829778571508159346880630841584267512777205040566804052303117917175364152108171272244043031055312283960821672282085991298130414663288979234472479183193511536346154089704145003193680098517384467598115920091280964098218133702512811415911123005328700883003289226774865928800843860585269238166171684319764621377278585963077938699748206561345857696324953685966860524705915288909284819017938807834205849406038076226495012205225037242317790357412204257874544555383052211083294780887681396056204381763664487374471969480066967842115499434509525528302500129245307218202866745467886989921010266482744820158644883894708963040135367835477893877458640149125311760949984891276562758758038478115996272887288398042805543805468479973738846747466938856507646605184476117208398967180059336071523446563865162603002554679510740736944863730637737086553060857584429723424527061647870730075214402401623278089760540351195027397803815715797658869286078926944955865682215657834478710223627273270008749574737226812355882719297906022163717764780795888822744301754993842900639957070180151083337194437788461521238204275393255744500009380367443140223562176601672922531142293839323992224720278354555503071654223468410371153013576673910268057964407319853579384335108342786779406181504809900972386413513265663780678305714181154558286307162744191304603742218214356859211935113927159887864289773545983563631288136489650437340497987617503630733410647826406187674197549817514726994751745436613977659316490642908501948209740801378532328626193130390885374453610459616740552084782190271730847730034046112399237548492603032479093697852441641214128978047320035519286100944476446895127607757414353033529517173313757861318538892290354308905602824771923570628749400119537743276857369079213714648392777198255555873974869713899605460520669962783882702791094581696054859293494123652158699895878213437750636239934143893317577199132124524677022259279944166302882099272272191493270977893376413040686537602721297897323979243586296517587967938628944071940427296219457693314123117238432191062990833649477414842626474636123003230715362421392650298571281997369870587754954593656197261839953043230752451411095897674708475531389147663233674614868970658746118108457101938251544239620381110168112917600657447259068272866015786433590093289638757835573259407383508714408584098419095389288508036263291544223790648732655693265295935024485769653134799736533702628046387002205183222910673275210032334330984601180627618432141607878514482375767816097616074414957496160505193286128737788936565615203227229236566808375610373471747026185523392490237349867477631064566896718552741592912954162890640144577063035727380915469696246123382727342800188338116339731465446290673997654834204678905813503887277121157149318220414773146414421441244492169230671298756396050766793901703468388283462904636557004290553822809781712671692376992295139466845803071404356002786624101711320985239285460699156793819495440332529426531611660118585971508230877825919050269356514169748625709477740951027436320998551717812819921524220293343337261296260863834061069760287980598372795425471383573642764437335527407260560909267521225850497667499738480417577108570291534262148077524574624394614949154330092420284770890846139039950395246488231570569352609339873829811000532912712538265068469651520727096056774220291381968067481780504863945135163640115215461599400514524204604972825721262569400390656084869486923550309939579680287879090952518830533282886546167502704073217818951081747325174804943236078635226089686768494618024649749898978285618740216130789203218621400147259730028093764173838947723566270869201065510808956036789074234598042503437355374451799588847957743638730757707382300089665678312498069952657609505973574880011709638148034414822287848562413616161540326804055107152347626474129779203264973850156830131768392901149405691913075643173206544314234016365083139373045700264117731946928114032392307851126123863881731115835616291283950476766006464981144698728012504102049595104954125687923603017212579398788434244871243639814082515800718659219802071277910554125795296863882329743482722117808137599242199362533996749119828253916166073442048263869317844286274058244993395869746298465060190344169366373742453898148835692727559233603457195610699172936128433998563632105071685502649034793757845391509744604716001559926434488120327053692561300450811706415356190562225196344388429588252076161653825779993993758167978223693076699308518468894593474853845183764427219654027940786083724924749847972909334559103812398460439547763788970347651525929402459482632003978686807869862445661766550446636005179584060226744872976428062977284949245978321159525259603764075913578523912078253345708157840737797720568142183737703930845618137925488905104873215081482884885665185670675187154058229608659704611313154284366404590952550694854384973321229155768607889890477765252778241930451738405461412183507339455941428772256554399021502062487074727954861728858879075047918063665740792065581044609665789454096624681244503350426926048489186801370135525061452002607410305665426343134078098813743712861981640496054853154290119207766006026531266002899370543773486658375985896075444754530412121248762357863407244315371233865506660029611596011810643653413333257786638790147983335677451531246009304392236558136002921918254655655486690803751585135370411326464355089984779748749860741389451946359987378258148488361227151858374841875001545659559342609544787860694473223001308569375478958978924964462585685097325411132633104681534607156984213504487488489171135407508395554728544666410223542954691313550348400116987926167382800176397112783961719299915697513295283197425394436253402833997616095773108965932080260306178396443312212738252915547674444284065071420136610458808352752640352887618156701294979874991149096913865722938285034490808463095793411124865501117460495621800990200655388122860365867479892329761661894732228624621554686404704701033064399149440675241006828215297291660249406966908047519204705149604245767132929367233210808185436390528335931711525269580122850770163618538931052874151078747547605879910140650837394020752313939283219129354700366507760574271436655554772926016031934884569487625694065647009480567666645767298141047268302317214463548374347303705201096610845893453475648208663538059481714338454210295145750237695349264446247412327724535627964330002234039227422729978516521046941000538167444418786491895819297116553052624387057001541283102763727674662945395155695866424674896700248958459207097096256116888681566556301943048535611305754246407802669383000060811822302207849013196218229321475772237351235920422002001751777389574744176216848029636772460048917029553715771677747163675573438223704851651577464084837426707654129921802094552976002515431275999413075068266300859694198379530216815530866950513632340620806369695760319448683191367017829255657241143415222747434646920313413145035173440472615519388003983997970122641640786615490602454728516888292375815808991233973614612232501976863142207882049277409581337467008435871782391047566543711581381017219600109686865994933034980676627562625777773926694464328871268012348460077475119290925047340157695297576943945365123035202440275885347897028541795448391434021819202016347290317740193279328576241093029015286493752641494749381409922354464182342307606243492878350520217909117347716495464753671181041951367933320149746958890421948638969266392543658180205041245916275590260833012441389597891825680603072525940607882761161274624725971237030573262599981891025734323544432573928245179092652538124372612545112045808236861067394530600222617296209105701964307668340930737220094817059940941502931954875762011765591661119277395559472753636045763640274332345946073078417993471857805098587861138447322987994223521244136284542661283373659289519996689333375970623356621560192508913147650717542093749828502064677626307839184051764223504310865144309974917791171618977222574515202521852463427895442589955250154383903039017591129816464736251493842504960239949313042828018026806882510966785588319323506143211772230944401666648856296422457052079953174604291919022815926174565414936194562280416989292398904428574874173710446804397518015438948154818633169638167045165673286558086647831724284844842814348738175292991409907116644333952134522396256142511176666002367362404056464724294329538141264444060290245963360663758210352970760238330068287521155329546090765855752138478782132255629586736020137246858252302674196987798673050174617416390942034708239292152151798697221569364209098850960928087226992182348635420144301924976617014071240695852748921552066934940745345605839368835657413813967506812012218467995673449686847000247044586077765827792757542648111216697095572764519940407523501311543259579075930509769652135361374764017986662223574773242128053459815959611835695347284712042803534774122691770779460836296072841797072057968413558324545326268826586890151336890641892857623662722319368494529204463018856922939155359707227042479882244563896552497227181373873929980357161895660085899879426960711609585469179714209667521736544180614985344946633174463628885294612034775625201927733010913136109876262563362026259301719173111849763037891022183042257090315065529894487959829609240992185797832513039850506747980819200488490717225669158363130567976267689167045007573305850059403450953425707983930783572037828810251301011130852403212459510267693118437504366789549174168397422476135279130877442933653344336515290037075003385761322666736949957567081342252062242188184304911550249719954555589808668816709001216771149611212363439628895580068799245780843468846871092633932404897465621376006260387814799844427312916415541058848672359919307998616710663026815911468442597334409555572882957088318189537855997886664799392329170565863071347115445533939054522200569709900118430722265544333004008697159876947869593561514283450097048942468509047894014703585385506574570845487018518331415946297862461783181318322977613966023710572331325558630584989827217493856738566830497882424798299892077284125460090025914459380197797337010884134858029408654495051461420182345907800753995303926111168029778683979390460304381954704533368767768220326812381145926869539860132918703249824786193835954938816052984857797344201084589053863581120766668347782222948874865680232583007891667161412257998658486655652605120598043736473358799666891609319945457776467939478387869696644150327897797977206553306066842037477181567756698164775983678330572223487050676976998129879679134635605112700463838091317522405358494969809972051091920669325316270408703287623677614009375315620836145782113406025031668387443073288491655108356674746535143939309411119435987750545348531216888489358109407984374228454455470366668478225338205672428115587480789251315683670327962040583010663522179821543458687462402539760841955035691436263257866423767846795837704293855331041196965593510797192500096500320701144257386011366071395205213702612394158662800229248419811592840465740890685796424519828351702098023536712637351090157179283227008766141016045885617755934802709407332039541205472080496596783910180721477105987976303253784589361761470288036119101871067715654371195312509136261401089122000075270225122821130239663893726448055219508124722752837322015135799694718165060964151100497698094308236882954001383287386666554188736775176882556969476556125078464028844423127716619158191581734275897577979137651596486815977406107483485924821978618598012221770191954142581989290423435164495497236214569849786654529035992403148280145535507521029786860689871603957932992388945827143442345323211931544922226849869298734853050068718051747993891367900168562734178013273888175103243401356814254393877403121911195255186060862410027195570336781759431243939678316692308173199918812687056207211752796181120935982685499947085118594618277185725662402874260443102360726011575299135421878962008585338209776005423036854913581374942175106390527007576013653203724983386981933452937064830458266307543334028291204965091532103976977325907607545831150610086700414224030839487000486624830832297896377865676945655958374576955691213359011175332025127770222212196562371614458701502597348335311024612889499938663779901698608114687752955100756027467227236834142367261220139368486345904188697008358441675463598032929742625213897519498450253657258491884897657220981851166665465679979820613826971802340945466195674489629518184206753189200749047377763378081666925639282179566005121781398399232798727898394673480828960315086977069245533552508629730268634377573282189427603879011481697076249608292477733922855165297300290046145662555340663568338123343116835841238495429503202573545070709080445756970448852495648816869666396689101995700107232328407675069616549867431110058835494283222926942360932011732999363127653265206092021551774475353499893932687426966684746709573117218518821788700573034444768374520734073507064036187555548906781105093714228460123764843041700206396985561660712817233340737622859141132029075747215582826484360067730637256371423080793244335482648526091698636332888420819200458395673588508322601197743414130142281869163147125536384289287154466665619419311261049242975501408247098483038063154572151093974152065765437915032541411767945177211992499701774022130126050022491513438791980710589157016818832633049265270997802998916182501053059529650744666614193295684641753557958718337093908889355462844639818567722874509033482620425927691562506736865118272128771204907110031820789844810016817994933668724506152326602212823486754040452258512334807650910696810199314728395486795687869928874652527809900074927892688708721837263148332955394725356104172746118351606796021834997607729678296820289604300205295961018914283884453704183465053586869324943899190356164103695356254217463547082133951416566042500097318267231426197363904253948087694258441743614988642590283421355394458821969982511092147664613313904104220920678782191249135144153099591054688531721624729136695042581056868517782014750501889579101817022438600140641726438460100523963521746239197250968854849003105638658514790623107067896714670903567070889031041036662464706207799250310219380933751787565041251584790136295475443336158481884225351507279383837979475459413307955681007624174402249934032947352109490226032701648438196157988500670397009336810420210968158377911564233898581163644352436227629446400144668731865552164355602803277261565259872513373263439566564060816375769241548026727977423876017464809488483772709393753009760348988553671387162695038139514103962660186554554229359331581229282152849229251213229632496624902097400999718963502019026002542288398761906762361683947411520558148768724887833497802862527763132961359254140315703937613792018301436627079602310353808435091708704542296508441595038701402323960408688078843338763644022743954543232727001041180896481562312853248848737492979561206304655797716235896536937445433279105998955769358706081480788323075343548304863777167041225012355028563947505478413397699098301847056573721980401802475985166957709013599216274489439961084673171442210529161823250308666087813448511315800003892700468826023023106458632886113122774001392678191441954613809747031225094270880659349187743551556083551783796104312370195241480049952033914736638467808909099842152827935396956656833927255103334825767947238630815303547350393425434112186711514518482720794578822246464049371818584747119256828674812313877016784314603300411812626197552187082523079700203161551509996076352341439947357906595580892169716338534306317105648251786243465165244959246112580315619394667831366231340473881186173539110968052477376099519917682072325639215449639756290265776997965218750438840246248626585830308232381307173879952472720812517145321978837635567408491296394540680513581237192075360679434674013300921193271067246125070960112166189008698324864908989525427266058208127963542917736674364914947206917432404696749097183387656520887288807624369287375046558295894576806135188926895036364076824410801833782083390665929874907941643367877388842536052008284278904667086997412792625947324664087805076834994640329164399527254986267453988128479641926474607007987937622109689093564730906160983476857692273866653321956416222358741830642841202514359100615789289131505345276286322029680069732698262194428937930880622437674271049243512962722542808109174708809928313128726889594163705654216058509129363214339175349090911636220553191731018881156747226780479606757198713891904426881591706010020466475849803165254993865202053715963147335541262492308542753132096281107707917386645927817930454049536311917692992083431945854321607929233168286364809042711954812805752926286198526773452543742380147031793780502362360521554829889201207323209133065128253725567700089720258506786677518333275240292143235413496928491489454475519546141110267609577815445765456405920654736596611508174112000728267089217814366647088029084385332960628172535963437364232877330225613783817497632827738205400701449945487869440103143093170993378131894105083169712272451684176337464191299339897164191297932599738626633319433002080064884010323355770685837294972810170634148854035652515955848792932730310840211823356731521214011364290066933338452211234047084054870918372777104423963609003548785054764860365986345098456480667686847562038414120022675673026332992776183089797647757627153640091715725629605868350099943468766781377029479426968135575448861842687606741449239204357804563316668064492082701235860857736528191657951898320226162418116425367552391892407715903826561902593613210164583492951490819631641251356645596996071683987305203135534070598205378070616194496780765641483186865542019616619533444656239877459489731716318859828953978649078967840935075222980688279440332733094931112887452014078016792521157266606346352153568917878692259992988336740639322721578807608483877978328416400687584993252381416349530638833137492198340419290242594617901232759399953242221763445521149903749770892194832978202759246183234293730279713008897695565745818701232214225529594974773709412669592484680821750737916148915911313001185065477654332520815220039027202629854595380420626608140208979718582960083357111338530212624045736818750884795653245987169973882628188339162102291384950360766051240521172564975038470612158971927377900556751891470691431749823097217813272857410211139922105141195632746760258649471579585044982102692840814592445152796838269525581050435521066879365612999152403684449670474519031895734511929846628132353125867626985210051420712983190826527577172968487349310644173197348653103090391920516967100837135709567307151909593364721427203482809360401698074841859500602407297561210705837323891112469011957367563949904711735852257732259228948009203956937993965973843401272576615557268238248794983828435099539189006482417669907573689270239342491047615417807168248984706927107420316661587281597918737782314918229080936002822587605745635632136486151985697603898202590489214220840734091694719650413631755376175429401974745120756397736838273841645850895096744356083599751587160937029221791863924188235419985791831182751084921688744270752733730171578310258117794411398762388385572636677780566749770833624267570826628285237207724991644542591157309045503188863164393118947344039568306292304400845762362617731244851315116086710415028494274483954576722716538444088241831509293213890602592792605490095167864868140696396509684970944900693944974542549612794147051300347567053301463941876124813157917092366497110964508759661666857924313998602121648678890399454456276206375380714419647197162334670445497939582407176250633857566064879474585988702114951509804806573636152675247490286910608513651995167826575107582760609542214656026435687293709354337863217476541385601782846516770048683828215746651960627109184933755907363789153787832906985192117633350157256549677653075047470284216522876880438260463042086065779463342300629788164607952192897324857779510239194373577961190995568327386646402264807458519362957523637532551307012864470120317884813757538402357396233360249515416751028514953190525532438877449449382740256828286194423612428397504143203815639481859468471048849598700702399156294408586842207025850203593765094387310540051076861870443488489608503263569479898229251338230218067768405515915173699049660282089861391247570145380308764673566536404601431054474150184870612098831056408766930607359996836838440718812088149167789962056917579306299247417861847969278394455163987846739352565132886134500961216345871002504481154511383065875847721318587467517993198749965838438098303724078136292567180002482283827067162350821013871037629569421826550179726261427239072581848611221597792967183457863624903401433987604211638515735419079349981854418033828427140538600237370188487958487464250807477595776878453874296558292600757303788256878132597834400032008283203906729376028689569502720936188607949405473416568352055105861544191509806329726431658384983140789201559363162924987178836847675748046244427351911780749054610764872586741848901821824496197762243286614080144405810500986540622875017725079482421721149220102337266727091770332424677619182051216634931884234576646242991439937660079480972443822522287592274768997159751086133466367213987142753734278418486148819047974973512320878246874481884467827891014231020332075507418719584582135909650735009268319506537259764667844033269082555515432531198143701705506215890227454287858793492606107494094236033489623968259797066159452258825713111147061637296266722576276204363901648413986985988865150238325201688005662671015788554417665318477008372692932751587099976724880097268047208015216512354917415331114923679040230945289682027724981937056790623350351868468442701629197608010050107779876800016348827948919464728922821308379010222751792569223647347889641835368091296103687200769945039876057833869276538656779072260985779417135887244838502223244677446757632958828313746263789127075754278443414786650833549422117276422629952655776265537062171512620612957750508009612856569481924442583242374885851646446853905928843298541941399801733500552255841733946547820113969566545808706255165161454681039636826419204918242654269769147715935501649865434493037486629350562357979409908615050401528818020967746237329021243588280076569672996333885979834404124894635603554073182003604873365300262097437958659708744158776830627024268978989347036053941071558748036695176935950375305251749948589662265822382965965711680555407475784120378861605911914434063097968683811166865827144070124224473040942936288421908569655609987205834169452855155672503922642620621619891115006157895956023596524757527060079549099558281579874573779409140056408855721704284780683032729717036517165586850034762234826507024488514858223529578143665667609953404209083549109263042991515861323909928237418104428283323477745949774496179997789662115932917366931668910594956640671537946298284426859131218070457822441407585976449924594149899421419477987076458305371229716149309735275534317316170371497457767403268511188724930846574476947447235957002349981627139646789614876558958230081713709348855939647803769904854218293548395607323124425781706319226544236511548141934651261627851363783905536385158949689583690110477955886268715375730283666343134146053202031557192085289939453596984753869081979633922332454698676597410521092877522578941273650917680754241588388101144629764494565213281775147115295622676389304887576316953922329764973238895941807246407059393879612088633190024801283453311512940823105483234273764491331330461832504201858960079210867924253282484232282110810211948652692254379499725632348578638481428198867145441202992594237864245359810286634520112086319755856134376923650133599075577156792269368890463067834883115833957852390269460054491804549947673435269332639238047960868428134457135613671013980077039702333246500790745977227112617474007132929412420621975728685768769309133884953065334261087880146778041402401254590867987192184081055702230047942410054569188737501875642419751527317793183573286071572250569258800009417763412447632943384240670756998776185009870110313119674811947826106356422721117495785522546809629615869761749813556825538258358246674915667957997633678461570507692158627783547024228913651897049790787823802908665925884288158386751334664865422067587906267857812320992622065559642744634748779345002601829489005194980514723519149830380194005791633947055749477903481168264520979321197874230534068925580614953742144099843398220595391174573407176932842476599771380836237059617613436342695928884170233111648787606299939142863902153721241202336668048803645980172655918351416242734953026978824371676410665091183214362602926295127289505800895891939842313129923256343975648314911112538034097116156378458535544585189441920043494892622104523267752557024313760926156352882042230582019612240168673212107022517642642412096809506591775963377075229024756703489507206265638777255016076852617875763910912340460567494355959608713438210759147225351240033098243917969029490597835834428899904580038818863394255852238526168170725643404015679040881171320212423182638519025397407959136486807477198978467320149855720507036605631148228027064299330568632529650576255887810465510858358468298652281915094095183141933341128564413389578326828333126934301323163913879004791363676776979121621230620760008112492806604651553943924084506567027107889201561833811638705620670817086641635029165293949485078851125603791873590578422188260245209820425684706785502928894488551822625259466722066153398500735558788783245472762977366389881526216842442516724084819224064112033400383386892047384375442331323280912562709279531352419616687218114226724148611752168535242604634008345106466617395177400422421241605285786046797688213796918209034584722097769813287390854547583365417356635535109855547045937208184019863580971830950509411527375722404420230387225880165950522118081914700171781127171830217372259611271095090336614964144262485859963675016299116830305384813633551008883413151232430782202998193120343148485000228821940713146519278019688063273593229822861535083393713343612783773464173603735830192602806165119965013333342051102728915368019490456341763447818889065925810450674640352719959958805934251864330655349476363591021401509967815264199918417170124394166639114339702394539915216960921358899706461125108175244137867574760550428998030778875814944100143920349174928701633248673471121962968606207631613564853524653314545300113193999703378256054508943222493425949551694213849790557703484143101530035976259026457288586105376577704785332482546839358558429622676954690613978136135724476443043413172895260291484395040361745091011197410650950760838664673270479406889024626926772755555719952516957527451128285236229137222476055657848227854321532458729521442795799171073048879915325054285719338760194914003573631973099729453030102157279136148228294171888710496109388791990884915692361577693379713428491006343994001812641467932697983273498674943469896225374741853938860535779210828539495739778951537607830713252953518817098077424350193142244559544416170975105954037289395620274674315854874417846425172319373844704154110517043705353864578358795037431907413482602824057711755720183916174819807350181458549459276039713348933271716024844665288361596241869258683531609935647400922448799970573241923936332849499869678717911271059790433248847894466491323756821895376351272137527898373652826571035342313909076552643356875957495229311360659928463778469198491094962185845045689404557208492977007507467517632461265984517824655959361061248395641531478518766781516946202981378069779237305470392523647464323866644758149926862002786244708801218305384940845650544197556008020582178221848294367383241138589998068092940318459918312377523024293678618447142817237642087887240608092666300134023308559215031943330814398973488592321955682924290469222004253508871679916223355051595218930675267170589793678126683133840518895662378562353392730772627926059948536109899795596095554353944077505747014940003041935202223444694344093530822157202610197421971052668908307587057965295038520313421341748771535660270532006695768358196857660152911293870982454477803683561450420640658401705753201054086699191555539149288942235679442306003777367167790451037144653229169408898364600108892564549086698699860922497003992222678238070534307713532130275694271054928351641987419720403941113926770149780353376848355575796984113300993697963855084850794944434272652542780573996145682985414481318914780554009409986607085321550920418606099978336326958036218060587287308267332845008997987257141993576201826993471342482978496371667692491884596129764853187389800093335675967354923309605963136888086161647621321624163488515671792775108644246495054077922058740029833786806361322920524238522390938527639139822358929164040418185562973242569383739761447128628405892903629273069479700894414903513248299129015519446537305403544012987029164947257295394987969682713807106772850620008597033147399390848395512451532220346649391433108072444621273300671628844237414720361901140047496374122422607827245755656061492499160559749330498862973928334620069999012349289289469116139901117123051719949901571345715716264468134118859864046354466141567095541481580000769513507896274433472415548593221687769447288003054054239135963764939617687117912367689081793228823061929727968501968044383345755739300231070628633462614217360065672146111834592692049320122656167721525435261938081406774772891493248247726283447514166229069305108728873315408398426291240454903901188437362569223634875532748502694957300070188473860790142287352960558711669804192162101065111375891243036431161176813113704499140495377966433518062125489768582093130030226805624838871659154203343352791685914405045204051719425795759392965093732412643258933705532147662275066414338870777761951490999446928192710638695075897600075320680254516264731545930571180082995647823472569139047591477031382645022288962924077489846018926003462532279131716167666994925695328153087375905457459828191518774692893895577121239720137593407385897039263247464381787959882612187948056562269207847817439668513821556810663302345604741344751099436362477777570292379330546284648295385590467687999114765757587679162773959751772796375298570438343374269388852968410370651539600987529136884565707731737817798813663542008518007389135074785457991338520707808203657014002291084341762666191427389658295399196152764558976606647221524306879376864431015637163208844263762096544254558557629492964220481938060369928558662959382322874327068677305262490998214953448603626514050570054759913157998129170962356729044842348060395042529466918641664910541026961629598245158838311907889871936846596515159666331904104646965446559145994307447946776921452002847633304015398677727057324378761687665443057995791472054928631464810921112245634051856597603223753871906247524346084442457541119311699231828265996821689286705095393606523203124173185522693518724179308297559688503844731364739055184589513767355063397956198390611019122141971958450369346144145769710080433855357106749126589239006747598866859842702883262598843454010844846783646409047232928833041915589442985451992667535804965180035103855222646537860044119660002362734013198830783110831807344295108611596573863611544220977246797719359553939201977596266081790919723691961232445862675789589999404910114258198385714685979448719639884259951676026812663350695055177274325002477992027478520759170307024479867626269281125439400527994451959089336485643545439943217340780119267833784862321781355249902519134787499845103676324807951376823364483201402225712703813439975668265028285385412282433899716878112098694544667338278375080614393902443687604054131366930535392121572937753968122505900067088436856142718605531443766745328784797691174653354916912737516432833429157578894854474534737965229224173288012489035534968190819135751710829649166425122834611728572666177075854665466178093341254844068502191852909523855201681869605061178911610837313554719685051897989208090571065479504988131354141759689426671322042677636229388343042002080575448806801067628006225778105739258000418781949885096233096140902956418302087972078569637319874510416145736600318678858784724087468341248275568401314525411453623695654346900554433023913138316599817767717721079718779107644510573268691660153998008024457438626487569345315881736340393572947307154321630324654040775784414921915532559491786587421585890972800707182882341708144504907295504791351615417560758886554987034203615803755524291405470953855051695264596410482094329389904594540752039582441798535039858992062940685316971662514487210708039676736784321135207530155237952013940798053722519632877686705293810474332693093226413437443379093193493964509848042831680364855409354073008894795944467606598190006194402941860119220551138584812370786637752100968763109383128914892504213478919805661700233150656349471186781726266805495338405518758986834780958647395165042531255679670409913467837037022846949114530767702423212923295297083654914273260269502341510611897658006619875153943288280502808699741251417130961019990490392571704176826966321773319806920056189197953555072237959669544943415608407386317655429445588134309048003278083727724256708461234383871743687470219622328348801694779334019442716715820003964557975380823036402032323786032690489295390623117874123744506259637009084663847233959038042055195489916614272861387854389667122944284027624267328718870592605444450442065304902575013859396782163002869126376366875078763292426837541590124327025144837291855017388523923847123453799523337771993840317325298536610671920210355363362577587017287339892570977896354828719573545640738486363303804259423604925154924573386718775793318376710521924040959439379808137352801829940300180946164149753146945646902413364157614115808037399249589660456624297609220182967104186757426510404160849932397524131105538031639852542164605261550113265534960655394871961673196533277935354193178666725327129166413675411587164796858214963995349262689262741354294271464404748663620858546709276771135768316054971443426699856294689867517791411424486424356735301324101456782333396055555034285297527608303988449925952261532171763199874467824910433717107373269418829629486742021200003072420868705735371408356195549994302300521318092958724567986027558039208133218226310679540584178197782222377780896073887159563813562116556736301147093571826581233267290851456561224586295722971164782186490922422148717840183391867674167131036675765526990643062532135040229974554781000415452923376031183327350744450251319611942387753936851391129075179669885640850846259445234624679809590640717396540599910852231653403913526700975496247220512526203685894446982533664537341846152417755604725160848965075087275097303474811539322805350234547824673979658411443190386418162792068405281593852040710205200052765092902619481477809013133562851873161957031763273163562330631103600837521560800369946231457796908339130056906982918709873466548026523976459115319373206770480110275831830089564697804999777335366979441191970218598222968474809842295571290154709334227764663226504071547226382313602736045104521470249845346726836274125374259802899697867410633355420024382830659321889366040519230169630256719535921818886352109066533178811268415852119815546582450751804636251867561220501139091593866564962285277072741142133636246222421408940150456860179365833815502868518601954991011896326872014366294897433330473127520748043084698241002588819063432465529841941286187123085668494376361770188266204247407065229345836299817837619845831946662952042086165768368957685636907191311062049085612937108483275256447386844178865811928840355271559684440225148938015406026344109549217959951805548704813028153539063825717412285087060495703179313966757233761457499867075599051236561512701042641226405583046358731225145468687489053278244810060069618020251758967778241062563421193803088359211184707746109253496383906228010170549767020058245827056663318123859965568924518153025926310220926486026464279357593668846753577303833790605593868412266635028360581964570091318210859373307532913257402021761455578965794068060238404162421072371163920701001157263291446285254592945784250542372831242939051404785087718943920542138074646628412759308411407990030540181553479921837458027711790355306183840145537526125845708911025417706425273537648825683071241336471203898165245961860246798281055390472056113288794852972656099403381975504415448035255079069107708768542018330727765988158471083419305252863032495591997443408268762159651618365076456263046931706995528145467125342144328865214385638195581483924979146221838919718595823520865951596223162686997490413900484295200820222262875408270550161926452871640730389515303238969579905037823433299371701506265102482875773465712568972879417539929806986466278912664729650669001808534806974617460296520242555109030339384309052288280374348514812740189905918799393173922885339956048887636786205123191912901651351290755836664086002577015362766622539545427752494906182388587737829195510778852762339110658728200181890894161238124268677090944374206262790621966869680058686179548915419479654743389364768878318250038030273973243944511750360165712284761899358207291562101056697951522386246007540406871836197622644000915251036236218590366562578119369087279548280557984919761396683613589925423952928024860115319330966662916977489447918122235801649560220715862139844453126588757804958521725833343238730172820738523165072256489363120702841842775007006051253651717455815829416600468952948387311952750890593591460842756350562077463585126664838728020007320900886607095129774120127694673600599696759081254350991122646337326631732458574177454624773712092162780884768912387967086557808340117286219596861177825838758377817894777031676685533899260611955925146778619760124511985214758836426517404055504906233094182909596211795411640756950907842563082948788524346795655819148818135065629558682702009622034250105252946088529808597581393543247268181989796339411139560553618702841830083963702132305263006195232127331499064102477148000511757017964852546253142778580654977613983545106997578803748222708041245615972012500022953926031896033824401935109104985581242953069487998350694395622062904982701662950857507545647111679924785314149125871543099868983601488178473822571487510480538593612699618949089883631897904155344486273296002034991174691188774469905156421746989222951776547761879381235537083077116750261542158053587702705307937277524547713292923895068575724772950872978627738056546379962951532514452645573516774456209905488311014680257906528152932942186889197176044510761635341909771068015342554866547992723992876653411011873307179490300110430571607239886462706124116134136335016109458021578830741500570660773941500123350614163412593658381802416050237022703071199998934982640943476600860644347203520821777372609649503026344478817400654027170503153948124041894184749473174778833727566659274524901262964790893366743116944835431622003405560849941561668338592281956860641103191026863439279408642782646473700253392718799208170380746693977916111672374957955951575362258031716180259234178923046135686957728073419738972524202450941820253379524653178490808508365183479650128140883315087880415334921569482248922938908264201130549321633926522486662322371788315718278229510100523059902963886692879398064006256194255559153670577124703085431130621733331558052717501608153642549160005906031311615716746512971820100727794205164604878776461585216050108171811919969880461571042365779099063409205314064815995285538559862655311416141380900679518467055603379470000996044988328022938067112013598662990148227539489733089543368468215494288642847083462507369720118440693464199597793745799117998398757411660858941669972918209353267969138169287114173695817558303760897909363472600366869560270046683135855548956564127270344503942993171657971775527272522684428989766104417527802253956034803521559302930554440577507490456176662185442466915346697334900821544580431033128087453254612782747124957341545165178198283510381073163898784650720456482063059027000169493474769835498891145482456149814791388919347054597804001773801461919561622991581202101929300104018103485840295814258395665347950067394550482130917397654387494282747888550901207025966142328039058960081453831593629519633693952869759325419416446811213682261312495823015108561728295002764112514785528136223410187124208705988323297604461892738882655535270521662614545335252845032846581839832258158788155230436798648203826846663030292312333473438599593500700301478892834581475368973349598290628334766577734154288444667436104365287379494523512541752765415554499875821090698525399856265960932413772275649799915353105792793981843436945918350253981779547250575257011152622011280582736440043911402459560488734305573011350371123083061396604565061022796294662674870371347439228089647404207853258239273656568706556209923324569337983819956551772075656787322058558364685580149035412783757856940880529971289920218027267776037355557019587536121515443791826333283025313766427718641924317309162953657054284331637804656531588737910103377631234116070833558196212032431733246756062631641910220369298858086661258309657094860460931842926885457506356204323874043741704513000152266963636719272005898251308375174739824313376880536558619953272759149804585933806271719108111361668054971596654987926394346667966014917779182870864593717178001288020947090249115083748333757996385872587333652800993435714698006635361094293204306444380728399772798362782795360971022602410070024147049523611298844910349873312985265470130978778304850031164572358474866095276577529501824356877261619931056283959669816964705519484626873675516486227555941047900580200403859234078350970640808876246849470375320906358924556303902740660408783921805138439515572318824380608312927672058934116803581948417961787107823256438674973121955041237812796709785714481919621052876165492378013131074358671678276991627105298459439087456157244552011249735116536678702242283345631068965145964786752042910062435201774215309007559841815523837734599897351202899691607700256000977720844149209933232827198143909304154802893319649263586195431202458379471822243640949039880343598825819465931588418680390715582520360119101500506443008726033490549072558029067634961943642678591682856152186193845481321392398561880234828339293788800980305033110779571271241969286004695808693654900430055069571598278271599546822310103114889627107424192423047779054743255603839977573080600705159780866948790316406634574987753091134966915023983473525656491595617041997107555991946009816011573156879717833037204239733612729622652032510319597479938058088667012521173554795811755509600719859271754283265239212876115712690088953932355165071318633056410773640958018481094620497627305099089726897065791977124516352109620090057731003241877417287476700583268533021466927344431990860001463148674247272307991994307080030862273741814549112787949515836399285888571957142315908159552262182857297698898202812442403916517274580426450627158806696845486306785380034019083595521530203380472603712639703871619507728403715395886125960202043903721691307983095606025261590578372376185401265688453633456519373429514829884479187340049504705113125424852030197967797370068670110638591585946715546966954208151377705215234810658552889434664730946599084249956946511527852753648659909377787338267829324480897950533365208967800333065310202305357230394292644616161738832823594928243713372960893599455956720044463899181479699794864553930263627904628036300728061835840418841785591331187931343207611127907880602189360431064059479204543842591572151390080023279160509484210997264148207901054504548135260324546192722018857703156985196469025303762530074349666223525226884365613253906350381489631807608921872831152585681896908009678786505520608059817711049560803443216364125417003498607589828808495311883500623608767421283281112449308154418341579275084724386803374369451967493607594887422379584754913045103802308712490021780778738341254540575253365390794640996631468375852191179861577447798113304340127539984477919005491908096428906138535056794491722901573751907431892682766798977530543700212127787385597816974628593610615663089629763147352123783215004086123693481940504849471150431631412698306601720669287636485972873380741595527080055334648822383902033719264197778513494261164479955256160647560731878053428358088768435722367364173217247221841095410874946907686987316018954241943665365702167308176558960981393654740756488893572742415036764892471243681394502918244523277129174028245448661237739525638317922295700189075203406893959056863766063701729961148359146668267434274305517972667469827361438160871555206253536549395137930536720697940836145188413681636293122480042099842766945137530250695481483431126389789261558944255163960621019357947974849614765416861380495469436177028018878873176891609600942067457294301585368320651866312530214880336087349678842466649497895627327716904823596682854134116876138743768241909341759420855905401515833665234661205622217477514902497026607612509430132369248167173179801629072106585493040105389821267014337286217411076655217639010847882366058125365304451138743059955964856003868322234612502167191290861805339435678757869167412561184367717819282169218854402666231866625940943363276038435903516697679193398645768479508562422252228603274026396583960730650446568903745447623566698119489743960969491396767006934215045400149402969834842048942220088323284799377118398162661271331711638539640558288319923125530193718850171657990858862436505820259366264919604502703594772311753708540083007958509705429592442425670016628180499317173936458915621188031830140504573600162502365294731086179668128248858148971718484711131082315117007268764797560983949216858996995374061050938967675243172960935415370848462947607710927553291883303648419352058924395009260387531685476781547898885709181703068366776664283491165449836145858647583424274378731888335145181908401042307011984392924696865166925483112424908406424072706976640820832150859466133991445337508704076455992697385849169962097450808828651568466846452699506263449052233095616539396435542194042155014577320210082260399615345210912279248259957147772086802218588937982175189771908071061223924627219863963060479716859955890832338634535547854139404880576284283587410015567502953524493535195667189367151050727768711260868933857220833507153815223966576383572410096168765522502118882716327898777341439918109821696298396721802878132543256950521801891269424348627068683411585437025557940160817142354629416855013013456214239125152253830768841808824136782497557437958544787534044602044658298173661617267833487483803889339919126823945797814675371050091483242187575879291584889964940944274212770474350773509309817393536409257556663466484704513318508928375877479850744687530699952069166382206644255309715436126262099302388882093053545743176424738297157642674275773955770066731358483070043450492774117897989222536383958920108323212345949675038614710213871532091791900445086462487263890290711309854877648974122377885351024802876207884030592451886677289083181340940532282234457247539080133277454394442144452677760760363596358539603472201988083710868889837482036045360534726838747075040783630048589620704604667137578360721643294192347632527702594851549861246457466952670838527564908469887816094239506900304611263003327440447644564764739299177049546561142911817029549102558111072121692509467640826301368651983364654449305333012117091829251744903640491175087938205601297844178385293234798075893406546541309484851619032615231598404829126983755081171714392756757520076799204077544053326795078781406601582102791734000269401273464272488717243289805758793671875133135375135030798830729645562163522105860257386557140920220586377412255738614355437003984383534944749527970809134626394063880388121251657070980056026032677666692798977718506501237568609446320717370047190468164161205368476467057619456124850839737498070551222791851554070472701989445009835024894378813503330585334316881447534295349923943600595420347516569840389240030329389738935515567398211528289700927820715241503150682671256189479895348362510972283460986307988253365997375609452302029698229670863459152899689547959844427355620585844678568587184770203668875159428320802089472529789533842959097878557707421578698533142038870973578164317927385776531178357105111551237671977143963712353941066702152485684922913568153110968915223004530319626474156514065784438354633732520570246352405941951248461595674687270593659718447319352600012018983599130969853968363227340290667547786587037988002312974189325738014529104553531303589576617638494239575253309176844390818493963733403899617738221762425963288500053094766021152061172917923362826600528470669903389917608014789493134031935558681461342291455371342612531265247404235624975420776446930339698773491802772828170193683200468488729983088093126262756230378332801954024205356573221153076226769643167802854440821341110726513606145765484010404423040110221320456521929117551464553577655300607865262388934323186475722786523210875944479947726011295934843835946895628091922127875139761726990731966776781551016105575461706700894250617301345112823348748405342775251590641170179905630864365543362093116178787173847494914930342020496908393655188909164977255633862281560893657044944421115668898587302971125354034646777476759622174916699946136784803581758584262006887443391286815699753518371692336397683482770550252946509018847785860534092976141238653728733512671089370659987125386778490786835907646229904842066259423076159256349528070311442450890321465983115896264784547609070826082233987801179368378529661509876425455439851785673518026717757594451035145420112950337917303408768068396193658017652159989018074942514559178728270424149808109532510744131354063427165423998057567909602920614440627519573802432069158722488637022843340030157998439419625208759130265925526241913209611602212336356862554993754227205982498250818793656379567614592001953768882366499461070303061818658747246090302163143820937406425572033088613822104661370246477127955068176385720060702388900236850873639086280519960937931847584251886215142854683176544990919752454844033367565893746502059752913585478650618689595318463015006927829478465070744307015764380565409163678403255034087314987365108107299386259865010765968823987419585798248242113205676740676937342952871071737362813360619433733844251330341405326324682568914017330349505200897199793210656037643638015084653451943887884804864475559228464951107813839171671637955352458926804372217799446964270732021584129028464126792198254562894435981525143515562251214138168074991596208067754459087740599277871262656404461824413347397327264256009724931925974444337842007588353076484820379071970914642904145677064720382389491763106274714991702333115304656911158440801491613359179516946247385310748300988508595171804447788565680133433621676644308251137138234369935426602148423534391350975514328878212202684323810238154256098104601584814430654995871657520898174885289240289283886640322494306325032208237640509404901511159526502670630407595431410909876936927982989963686783888124033576757451617721413591914714147954443086176838593783427691607406691987177088232155289149619223025965956400442424207006035597192531716599008572964151721939077486871273899283002495546902421730674364367242557134681502754876391912618973066797554504348380125584556785050935556148897715139036438889456720096963101833229615041726439826461156924910386864628814574409574239646287989591016890726992196159818217867439443789193082760263801215500423900599427407732306406760235833464073555060783825962092673242571431309488780766924072268181832181110867347467705863181218475222198805932850798203829809039626361695058485692584956061755582168688856323650016648958828044154923144471334413083095406983253228721336511167439530672775953363161497567566991496512869293587783934794034739220560580854870137227228660158207650077601021642790422530243757002662435562961306292088858469027918122739499774920611897834711173467414919343449476219805973367969235767585135370664714702152749782619167718427992819695549675188976821012848869260510832432484132250323069301756779537352931840429144667580831045554258249981609456524158994548618102889748418960292065515400561480724395199171458139401047669327439006624655720015048418191903407658863853692005314866236868749228876211816816536370001176726616509617325845556269944802163055258127433872750441191545055883019281243121433109742626741115979985426716618271898513772687558226608485643711786722397790174428914419190316068651575828417444704923128100493042338427930948317608600195140397599622957310559707500022597249885640883531951557686981321405177040628652355860520801202273244707666587842621492599276098571713417425755845061619324714285403769664414459952108497104134439529633425181920167225604169713432991294082633380534648968806663515358331454836053373799128893279800028133440866989970231278343687132169599266508667082938785372521856899903674526738592687976570834262722934633387744695555619832862564353651955359137925157506132310032362329449568084608024530974710850764973088108866341816289020745840213382657852512875042684739379626846535929907900382666375245670211667616465194712721109903476520892672444199962843664731252706197080292507244547566257417193080216738843550113968543616764033912793777819858166919809099439941566345658142547612072072276425170615376921164309561154763597424762784335991933530848020853603099516243294140887783976021992696558494593019488639687193829493602188905097319808183226823197076267169404432400688377082906947948957848236505108030650713040931058135078532691271825073177506693709326882595596884124025367937489432516331319927593116445402602218121841229700288706271565597738678983017261413367129913837671735097138311510791030536001987566853890476872892747424495935483575379509281026666938193618869013394523559598655268178162647205113403030535477427085621664994710038316324320127165773094432576354212952922589658047999093279527873028086949211569183412497816129373687692672843672971565593619627329188906402010936060516547760871590108002490890224835178857945048063632254707545714045786935033700380953217241584957850594612172854462532544078291654843131979036907840427521043309936815918839074038205840271255061844043256023555567675603300854997033188502343030134403672380323637888133911242450138254036634446662421174139328574941639136342717029987371827962424599620290928090685089794224961874749988967143083035259986204609953893601620533334439135639331512278106892705825843908385061219016133242058048506019008167216885337644218278428265768159113880065719304045513826561020521389238751904112863652911523626141021569852460628721816798707363790446194674932550858906725652477475061920040181206845157980800348797013583767446907286816161644032303430260233654099451438274196875803380265972741301066602456717602924153179140824188469118649347730902927022349958529349192687170505927330578648066966106853428952233615089145994792263650009959233805362210158836308575261098242292126029156021069273638654805815776438365841826237289634576449111297520347360828688061185770283506614102883888479821290764761023272861100506777195456461758185366811056914715333608974493347968395920686928831984127575506731767568761252166870919900166312195165121545818560111894306959041797587884199019744027917423772892454380645815583032285655880967102363540341905887048312094858599973340625203428005205016507875099394990924915214662168678629149888473298864582386052607556980351961140296197507095746996008468716895864366057761826791571244942481356620337217746816444797778668567944984965434339765443775644926749584758221354707415350860674887605577329131565991036394259114843794440656714497120623413248691531931635084880235881731816029570026458089704978467723627965042327629201730588201965785876944559782602994095040771719553739131953970146180388947961764342114648318947350481286407670346295171223146746391915495022315161257175187424323401756234965975172200463048940074723262479670955022630769250076813597882594292356302205022571788793620513318932649793081583790761078956319833492605400943079278745172373069942771118296574424476419422223299907588970915752180739835392125574040510167470266874699494821393269100078839975174026565969860359997245856060211678183741036401096985176241222309106417202098497083916103792370149797385906477477032537428264231310144190750018475739916401280893730472975398661793590776548421760213137800672191192655284404615345293808189490231119316662463318815773185589825845170432460774315772309685685003415021601357963811758487229075856961348127656737434962363765637331418971174968365029208874840823831611975625679962362779974052490306170943494676034250713236990349209475497662939258785375720522835477916386161108974068080894299580227086834286894767979979208399232713178238805245269586460675559400927507834357956791602395152774977800396076950215055612370278683043587085989751760326836171591919784896948901616831708888487874943098715183052037245422059071798895261369642946011846289911460680067999365753350453550176915814158838378905089427963798209602153405500272196809645644600063477132566615718722630256495229694782967485598404536874359470940686655351135032130635847555620862588914333943463880119035386723429159048457535056591738464780468712018024536382033886665729554307003387896691781011483747866050141239221596128761052004599229456638933543302601783233804936064991495706073301273289170590945658763905144779379214582894532505775404381574104972022516705866393663355091355943236582705232275836142253105065071026489582792077452974316991674998710863156460729747865706516719197501526854700285218093281024044760927844815492415288080235851817788285656495132417742642149878384240497409697647589405706523084730557807854527125386009495945204960453636114835356357964810283789569197027843028985513285956473755088578250494109513372843112952763017192879746222513798535944498146212755811311318122804658976246348651998241937373616937355481553064821280259721041805176442816199562800482237628962635332982097650613025455259369825933289952562629642190344727564397270909846293813678080313576840739362928578739871752812672148021058696414823936313733479954442823393167909210894822085150611821350670134653172424381356065203212798131813840231529327836317196942404441508170050680312451434121267962904353687303283342850808676676776973105249439918132040735729679636319817377815896820837038705643196655468210041336739642319724291636565743608374177569206484353240828962552224160488482416618829095284845084169403715648150986502665534523616764188955999712061260760833077040333256308519172046874640496920550328077332467460693788308096944042877591568692526869504358960672881330798933751647861183461084496765402331978156988990235565630107287755299608105082696899120249535000914431667982325446457883232584745161792531927324958440603611295955029071615084544651065972400471712589838398387797940057650757652037180730997969275641818117057731375725433609250327282775414449386886916018192588904297621490305981329651370075758548997169392875849440956365914180959107799854137846258842267192224418629496431834048607063520812191772656832474239717473770792798746534669831720845483314466940531661800030905000960951995090497462887939553309048964925303618831404678117204840825923998638522033715016266313181934556409485664133112372727022500790869795138451412247544115910430108187520632221492731179756387139596851369619779218398041101200093541262994681123566577791540352462335803739846900528827330053463644645139896224572924804778744447676813953214369715974961107978869319639578177078994506462774090021255212659353197443326288967661015942211107486550846087694126573819772033470612069218707835750711460878893624960200385822671653992575969434603125746722124917728778989878263869998770401831797648530575129687953679040826542803380481053224520093749810409173447270362544131486161635453828298246981908418891083447165943856313910888281558057178584093119975545464344923932103924422549575682733296046387147196412288837283608073858383131361796501468222475216675982787543381350962092067462849914584714290952546236050148383625930549653056060270017809312743385618771358986184349862747371133594943485584266882958454467535229787532441955809889904588819552473036159828531551069219806586428820134334734494063663361099970172437280379628738731689889176721443163631327575345454396610212163564054080218502781481474689364141130991152053684269104929833463714475693471264949466386322121524628615161950132028724487932462875289386691280676727683772807475870035143106840754208320541024243148922286722342166748546851396745387067252994010466295352429444047940778830469744878523970075333830612667743713315335390903911607340336941504102850534530536456444106928034023292628336342896125558940381881836603650604864389637071070945384172145910576353127367237734434148227936418590740398815871848064919435633437516266560858418011762194961742071119656649479126707207579803562640853272591246930759938746688340277410249195547861144988454508252698304700200590695072074502100473962844145242174469510698166698068215478889033500681262916338846417197171759228338022151298960079286949791103749377031953145554045372897547768928970010986698795705903899542748919719505903052035661223442540457232895997678605664057642535615716678352236182155611966318437418032128637226849650408953570362945832162568645712329386523276133554770122583107099104664473368737302041716529443322618199741573651806732859186129028965432533496916875850523183464152672019692596367879741065004127306928054730771823183541734670265025762984419641100765058091272931753437243570306901864355147953611205438486210649698532061112188924135343257596815909482026084012421247544873232583958981347481467243165784316901490365055418212982473526654765131726802350887354054862306719354470662422047594139809587129212744170249966795824551833836247096527601035566996741196060395471297056445332217334139163004516835896504680343661063834921950139407621700620463428825929306793768754664754788239513724090082634570415875558083360326072670564322473718783856771146682307720262725707293154102379052743463141913850340406109743026537934011826804194745413369746978122377193757222886933960804402877323899591015572927287068663848096911476036057014403648786518192700322906349682703455370358262989649206467001362729020148211994804529010948305843862044757670965406743557544382367717323857048092683449363500493499270328664559288642680279468217921055356395785453710887209268220748073860232057916207076323653982782067497837019175593839157979174978463017797724069191634045272672317924242547154521342427813442765641830985866961951801408578185539999624234022831189518997877814385401531571422640956880454973955185913394891167812394508852144044785794843510618880518405984655040693312665476913024890120964649905915955313082194391861663052833677874138253543329091684212458006082354266353659731693415506536740408320778597938875989388474245361943428273874253862792768312363195002428994163409522520805242346830543832811037175971797387426692195377839859799277638040148574172931533986763312254671739470341129160089986658521067695862600565041643449786924385233568059730339759164064685754646131734018054564048641486157753632412638142840503443292783535216956357973646595053439117171703784380495739742478000021665214789649848661508356613504743152175628627474394654154274241244775448145207185941896187134490980318153060555663585712668266656941740312961538765569727304748118940695713867052351412745992030483561465426259433991637233154636877198356912375243478677817637871388292898205844954680877936477138691688294471710106118497186886627597007254057444507194222853635323963019591908360153818650533095428284020555165800257075285502667969954689689575965712150598194275551847780000996737082022139451593765219612247267173271931369013116902444454934813946677284672961217208500084853970765535243145878748685954476577118542354304480716226071301330112384408547943477020517217121326473341182907012353441484938018539755550633738227409754471574744674584298520670735273172946591201887452882563460087603778140426421957114759316039970087732201487128309270472050525495778647964861020921953079034304869196954774248067202807608706149304119802871360380461705239725697787175631485834003989538854701568070834959532851211051221722765427235942655084960138637126527676719313913038008508386577179455343704951971391334794659778246988097178956000934426703569944567203509914499617994689876053241321521925984971627410857427251211372345138915593561927183429496548190482626992092510748964227786402738740709947411514106864300294287400055270161761113916452692430586324069466983229749046336136798328484275990727840134648629441286040904686391557909395543204741087308317887166228803164460343602838527190600148526855134744228953372539380357007796842675537648382653321395423066891215525313941291760891394557582412313528873000423230556840310970162166554995275556806828068912894204810421712832417332477664359670100292545654248931842405265287730469847620828074762215443759148421045398067566054066666681698884659436103115105407950497104916918754914182584406497298394497374546223990290202653830282238652667504298945240835041198978012847706097809131283931961843943229399300456455133317052733707180044888512143060787629883850660557762600899815944741761515390310905003609666337226520230540606063470393150478884149247106312589030286350857448976150019560251186284169314306665838286448199408363468371780883915067021496438449957701764443346945994846034647767108724521139825516276151909049859435043553508354454770986037094039095481735629788257474875217695781105238173767120596739517671769989791648147195977114199586928748956194742921827047694950174026531010767743674992633033863414715175113873144029975550433992685191285030664128739608954242064358037520903743615044049872393115532855672105281900637398701994636568555877645342448993085552401636776066851894948623629427042877045340272137323277608356842494345238794504667866424585227288588716771639344629397436344303018967723921962993635613056122200711163854156685729196047788540943947885183022012619159889829028812802338568987475248063262851891265579282992716170343161148928333860252587529989626397808229494170124094058577326570713096890272571966892084472966318367572152445084136234996219365765897978079234041237510325031266184853631906611087385638246001518834455036348518803087562213073992570985292117182640333474526392611288067662664100609447824914926848297646432962833434266854222321971426049323502783212807810611964969698969674226777794073612344242690344193665087969068538025006752846077031766463775191565072814410572153872772540307133856943858653208960083547811810340716314152154912185646726487428873122296899198793593018076140535482254057475337276947097452089530957629052340324327244923620778895820956680863370130925816411249922552300496092036479076634981494768266349471264138140386051698289141983598501620614458230843095877369339542220314768080489504535809380175806879360755336950658534778273658455780875838785383261704764089444980659992409117006075004338567254503282328409707198692210769971567409509922974824186165921264838165986252544575814270543594275840477872213719159882469911118029001017617150563729581844136223835835139273793588989134290624352667291442631764651778504559927818253493569644454048553654095063572860752138724843807140007049960753653348110612985774829864505603514184040535422951384709865480724254133006797806798066690460866229872513179162423837051030337851775344244754317647604234626860243891525010266691832876821448729036820551845047101479296911285029919132937946575828238552666187258691737165788865970753000161605499194869321083495161258827104501599015173875248322302401862369739627531156851880871434594375731299564897383092469956677034991392452895715437148184013150942906629768051409944394672074399504983008282117091665388070968302166375573330617274413168639449656267322945836494298681641901110151694194426309887991153689670109479529677000102579039778775357684039662048247963630368164198496713398129790767118028655589624676048687494813854062169157297616057895466718432997795759801671194100036895013961654090380598390633533412202530796826898286395014118872064653560516262056181379462803111937767691826910749265490434975968934285982148051003304586414035996013972515142694036477044603067722194191073816701397381047380854687747369372004824488011027108702561557426939053185999226778364745766486281735175721560307286749982826569910152862979461668336497361268130942182540892896290723063230326038914558661591470580011700979685953726860410925131589341189859019163071299378686297991345315681916805403442645747561661306263187221919680364924116015873307249652757745567915476381891240005223853665775053479315963551742413539065106049512417748341639967733271449293447957847399794315989542741069608778665976981792819566866077215617490603600153039311948942876869220472747903043638961706774686663039429729582904447080337003215544124481095082550597264658491102357949467464266374166426449632250409318650127885182145814911319402614688232258653158139126829497107498974431860708848465682354490329858093945733270731941889154186158208342810855430000291946416435766571493166292194151965197834400489487307760408742876300499362193398214625093093383746243081941601898635671903250016050046898239956067801353419650192837349790372514917953586205461928422173229306555366105852810967888471515408975993862597521618902252576042943898844127319188406934232988558018402389981445506934871790424677343832980423475320195801507039862391103163648089051618849706565924955247679882335340235664242120669925426554156898007670096399871026776235850143702775181197665064945205421643833209263702076524513229904602286254491885152353431602411711096552898505462439423699186296172597536226882041064216749208904314392299666362044471013629227342158074003025186965589647707111147901355985115475168225807616257300018572361381152390259318355410896394006440951719261546189704761059419350585878957685943123647307407465424037443626407187941582207449511808729307181011561734221928791332979136002629455872714465047724875403395735190025651728256137033294856878677440805520012523594619387126060005941865320533982077120730494997370635747695217674384356116507810960075307629987504798724642974624271902391499338861155325464029392658422502040937168681922588384710336989280784484914957415386643843547126276803330062328324080943788119343002052626861050219697171862514084234111307028971591273375425319862138837374516244208028276625843563854266801840444412347454417614780249440052453092087362196477308773941559180975306236474395071230209611255058145505932381166993286435572125850946876801387688135675769250506871336596759548782885192881530733614550084612420371504966830770476852295815464851802123182773053826308615333837157757639951421354920241509015369401183142296108293025855483436368498373808100073139376203068334801974570964681039419806395566558890065260458249718961894747255221866370624047948342860050862859547082271081149075711022436977768898429969347046157390973277937271401542071240936105522000798063403040177634015667334194071509103067134139889355362235315769935482833798306902119894001176157273869628216397196116025796046656088850745937878958429030896959557005431981670388728569217844143761124775205698880622624907441077920104061210085974863991867402431092917122275864149735701083085715382570073497187619382365646697881019161218444162574753994646075629406231602723805160870411000544133559637051023749487957865946653092507892083173883351272972547128665235552420863773925864888872185514863683170458862491408041620527865743826580856644308872533168132667717461312015840800674384964387503278134588964121953226519605239928450615374814934955453004452030284903481632829647656184764006116704535485156240623081741626673236225449059734367338885197625456429555230357158575149722843979596220910699435047723743369362728207101471756354995831122538958740695392827573752044522847536855468466481890198823731235074623498518900196589109219248764431659669306523326052042165655289690762233295281442179340041215863485995522858494530570152237878734700880923935243973588619199818412781997675885948639136715487854246973126548429294836835569495157300704503350345728619551592071650525462951729203702745423115849646093954211474457669160229537828542875792504531902666209825542224446785477390987463041114208902545964803696165443591994286793231507606807245691604667900969375149541118175451687011576347479473864325485778113169228443667873969455224905716642252278969666778210342421271630290445395797189464031757797082842456594589572647964708546101351513610673848919649317974718959247472496501451155740311213659654068754550155397051883260735578951917545214099651724608205671620698076057643351141785816139442500093516271957089723501098210216695588284948069017930481415929657777322198309051134453074161722554351608516295707467909200229470246025621161018254740345343764585399991919539206373560521343264240784144031370973181956477428806537605654419864580219079999437509539169908458215141281473913287540995228101223316387105688969295236426642674708339204670672992792951729655453078528059459770539398781967419824417409513744031236571554139469730316294043862638292565121506070376258958164345325493410441051529455071373919051259004754193647691398247527632276284646822124913295688188074095185627131059693330203188209835236771008639663941349416233576486298283372205584016227778077490753555936569115541780137339561498835608606173315039306079684568425974936544743135624621083133273848122503757507294030397337009870441212239383619144104321558969312264964863386971054724452020651205097195956119724412576260655627450889465849877700670950013937288687859476796118841566975154024333226439378253079695263987115606854429056117447319198797754327123944694442582160308640661608798206065480467250445076475157216938095872396152569674412384487794228863914242270716116230171479860391460914027831797872566803455330932067008040201053669373970646551779888316713139367968712843866460300485182511762740179756218441170614324678288636092213183087331829710818992084008551908216998589922171825571190224190372958263270035424095294321179358529639311058933556499255783153648784872316752383402675814707788171147655106546739548522803556578975829982397215340060093812547029134512665827918741432872438828197656243952115191217533327632859350336987955843499816776963530788003434117302800025487125717469901717210871224747852661495729361938360433351064097498766240568082040556172865131910950056622003751682538048655061254548376363001625238956371283636751936519044041151742512993369770212415498201165230469940409637744952930765053088628630298959668364040975668808199603391204918320208637690539697136542928669161978332634428177347832301574620145428765405918903428545230829326396552293505115819618118703007854681700315549027553586218542030715659845988185358233600732420330351305812488687662664391416815345429954557921187890050159344432178734944517050816132350265390249023023317943422946022722449295377086498989859619108546757936520464368794522056662270384777362165534999872538839660678791471400396098598255641268512949626692989474577268067759793660085854691109406907069591459765321083688208456838454717736500888462927473170752259985938105543604955512304447976934824525612620946410658435258306519171213423895634137538655544631043695000912562582109162816496096403581233451666957350963873957292092206595250661388265784917652319103576631804362129319617782621430925629011947988943497733588661230511938453614442611736613428600135748795654233780348387568699272282844341978335724589146709141504894404127600869736661398421316485947873657199421862864353457738172395684300410215342055441180033918777424543698845923029834512787238272871288836884186687125352130455712374914123825015858230486659379327059407473146859606621279344011627983139716014949727782063244270599100363979428461570211517458407242648858682860929349781843820032059400473889758223106424721951893967663054315873890055535002784195336462917293120353193441653526437001440564101931255025383975222468900681817435100970285381501095572183155579964314403678186263369146402551756994025782197435713693524051263513869581637671320839541527191005916890712428600040659189827299057032694901691649970819343168670786496135478951934689370853259404189764972005040359558094093287651758007194587953228621925777139811215278588095246398959115548317821041191776600911387939790389362579681167003210476531652823925606531234433917539159329593890298182175061046725746641125704125676249440896078746628385737924642845877244051189695902099905793880613316585141014584567033969362845249695854265281247373078525229676180353502625230688320865311725758903872221564750218063878622352433245000481770055385061728331672020300425456325821512070345044280820973064638472529220161187113622983758104912847070959311170384864838581689890091063828938542211836623247065856345904219552640637400000851219408169272820491174654198878902931073264304423422865905187111214605191872994710114098917893890442047684733604445544483651790750293132174198462623687601478343750296446041393222465764095471852580030376187950717116612368918689576575008579214177541831807145564856418055332701223626943140563690371927099311572837105903178744697706834489208813920778195465863639570889327879258132841447243670142670123585966677793904502570190934188527779613821099501020005196930552095275127690341298686325104232360230429818054994965541036915206164970893849097854011054363702866100366887960155599649105943102797525724557467895773893531081246712278413468475198207972276938576161000696769603748654944692783020521906820055822785545027480955580972868662401240562414916420609450548056984946148792195128290619146578787849600631329027508520389254796144463778701399090726178752462774611417110493847004927787104069469259697843571474208009684003672966578883818498927268644187544776929822957778545771556532542745606288755161894871269043153588487688381572270866568036519601305466730307726166209451552528805253518729879868898095625191129749845927326204390924330078777076404045101029377424627268049737655336533469372661481521145663398046267644344980265224099809251331917245336666229479163444807844471345557646800935753948841123451474704492882633356535910279677171743513443534618107113686299695646385643981657484584149536604333367912693099010277414811006334922144691641233977791041594445385625620413424646510347821213762496094918830819119396127619380671036193350353911578203098144028624888230270477159335190197314505168825542306063837587335727973948093627065400136683757116238272131914809811206011627412214992577187272755338359844902473068837682881882500606498130281917446845409488316325067483662429114548073874744618856643407986055338006720139629444570614475476607058405494493385805155284276722331045597986840424581862939127890362705736876609162305929702231890284426032418086065771477841816081746729283541135570180879193612189280776224130084349519229354200547811085115861624922786808265734830660889293867250131383103029220288735083314140967257356831966369507881560458065434514459453837884375296411076974743293245684948756962609785777453407722629558776231289496166734031543132138320477920746896476719457780128912060460658901349606449239090087168246544104381216313869442361293112743288654797283115305463516281571424160380709279116040493806216348886250547214440229089043746418574565021737370201745694804421430665104563259400596088179037712659214325778565288303669136710534352105377556216520135703818219865086311509738145239625910504458073480407812248049849173603983328567180623169662057652355655369155179464273032514961416363985883418924989832307445242975784875747062003744021971610512154148268885412177669476142215608966011739854560744910403222307691602900813689100493174592071815484789989553304408579825599802877360125112113226757129250132609977823973355610611619744877724667466491442017479985249160701800161556681478752836354180834764584457722259063475060676506037333196037692814116463593707769780265733412276537383966320790331802295806772510201992161631617955103572253837964383959471180261548929268893006360298773089131815802856756979643651702444836209795235670481734111953834692172050429145780567790845295593817631308289110880227857879028958113820108384052658381650080968338942075207716358870500628063660186940674945857504650281608091397036726578882881509950559029966336463315258948629113992104442525983707637820282650953194348290321221439292959817687525026405316570207760880034417279246032177883743054756509559588470563729565553993240051996244928632466288626733767925524209652869525081939078658653615317455381025641399514426374284249312758866964289452534120256878123225600562436971261963713195264985377904427388403437553535260748593065411129337150270653415748813160801369691031433204811828247999760078170204931465027232280829323752664051904901089531480412365810287502981460820094165854559992056414053035376224160642022823740624498781147281367949226876705487398593356835721740179642545253742168199179182659367058160307783443347786348636714977074954665319420839573980759048396140703334386285262300098009270101664980938982233155767055622713226196846812081156514031770632200338270600052020414430609708058809443529419184531098877374853029491390721142350487483501488703286006099382035472015530084469341039225057774808313461427876003164737094346327467250709778541669647316100316125361193065194096792276363115200925448583451384264505044363991990143758805672522715469404723413337599598638023847661258292707589104765040634706930576839085516315353932996928771480883294766340983959788518528423735938206629295535906521496215959847844336884570142014378221228582661857670904325289963516701821910168064265488565550701014099775225469542782139981479555012280207188336805289543796836364328180153961131779638652606468092454171321616347526157939724657298385964063370470943417358280529218149066783386791977319269148061245656153828134249206241795351630121092167835209170257225320573460670662227334127111554031980824506749035792737271798217997502828334664234588941973161360958004518644906876404699202298748845531780687603292748235147398578844898145645126438840940769319538199066258196331715122943767865287306766141121124353438603897738977355203581720632153968497301874986247542426315601736017585180384748374738069383148021109373798019335993135694426944829559156824648952217664541947650124185669902533955827950014715198024869928828675537142781967072711691219786121032233218655851515924280518518867469658309358677662257082065634234942277738084239833133470627956772102078252781908651301360436920217500236998965577776967027705155092096566292273643570538685078010710892801000682384871598624489090144664046484134991087496195304176573486748450580995282998810324453588606248441439621429463145899453138386700990570034450014641289643635622593325040071459493433292170319450212761737309131054900846709271017328896151834866341835951081927858645313393721530495805987615902971877494615270109603885816093451099668245005454786959344877204299267739872142234000764367922153765782039550576900860139738290700752249044628109634382367716555843674890732315759387893199071892823267876831597762696498489558525555670977427893200013679795179158003826605457484398682412905553245780852606723955760399075992053970910598052293814004206423972070522279129051649833577982414741637882685295874800422550135349042954137685881623999317223487619001882100240819454142060815796704766447449216769987909539551502404952991275780321014358891458368941162604556337825804770393334130261070452711503593742890824170556441807992431562612920114074536365103952618118844161482947831949922552402687880245559738034939000108952985092430557429391217710635793169626088467489417127093987454888840354991891873631334407819582887589185320096790054200033607423860759864992333234459033738834582601403195492588266690234614200296033718665527137466054325100665142170497608163114693856952321251756019294122345897915624854116909658683896111358852175961720616070387871590835978982099870744372060628033325056001548142125736069279729545902646600426857264441363654097235221246002331320389199912303931175884405119480368036485873823948268095187683678259453819963682578248608592605124671871685562827813489396291168323826580212856994773108162448718002099388022941575538277554715819158702482240552872548962213879663202715602458518271528694854069750998540542334372734023312743480774470548570031795295975299459365345484144038452206654581458023405723615145137390570326017577929983579543056350269170979560135623262599604010461623868056002449206516195057510120326690750245821599620967723918106201806007357337157540449338280619538533711868253074518665481661992513421321900282432640448690696871446540881980596650323536860737464997148903685569731618747213455752926253140786550811321019090253396630114510205959160327743142338096177207708176310852284754584066415583531268897551893706341890640984439222573811609441636771719281186711815438147832724965467650150653480235449038002387315385402849400370382580494966025666612930162524658249828528355650179114627733331513436226605226122816774458132178420538000950338511095214381022869190047310860378084343070172685137118336193441748232510719097877661139304662900478309775580490634421943632626790400379391307867789879849751789622104375693192886807470191491078003688907990979938465462794338364339424862077263773583086112158282033882560652335168179611531745109926032309537001651648413416287428463238283067743456722755707127899586046684871062454388805117000536835765547731057919094874945460399600061631630100485414568866108590653624754201084154385772949230315071493850866910743298927462773629579362401097742186170189432607254956301260832915791279013874240288958761343510388073736398472582113337140248468653913955712810500348860819698703008749646820997440056372734748175871092430174046345591404382529947548161820650987634199479005057935776550652743194761294214458501230578311703472851123168635417564295269820961782817654041326721880317589498570512777841534947762918108429326495856643415188974405896246978270358883197054133081714600777448726043391057104223538561330933003697985487826414495125385134578385729558343671397045532072468639544039277660543259932952002360547241514975387691736531992900061361177360908863945535417514167196504539612428668107322366939546004467793900655584143691716193811012253272216254537242480731496201606357402510225655832539455673832831937058206690093300069085558516258128572824430082218489895711991490592854026568893580110597996447376373224114411205256529877355117802302537523945817202278705018424373308102616269578434190110970244834851674042120432103907535755529759265379559621115454314247028003859058170859861081548982058088669007106657901225791359824472506159761899687406370253318948801794413054759505505870954031861976764586254497375917941725496222158629884512591528819843640949342697770012669953660114900093979444756700497677810173060619633928202300625141069433315482071145023773641740238910332760107694020805710937216132285884700675643751578191197728744045711406027631744332559849144462725213581734104965859576303836796020680725430182515060469011360665744707005622081826764641947184296283186530089131328809324924182296451455775279145422468788604973108859575430451776204057131915794279707005942109850350273657742699761036037792135063432952075105256806634165195196204766982906815519994514054723063379294649923360724802711351638874027021411722902239600620144387293893463682739692921917586904260834074962089282135289812221450600733657415441719257583325390098019469738558342348256196959143019408385927734579865391310929854810529684798344400140722684845038296746391433478665110043856339488837913223833686701243454221906777952362670591220566249677068393946063940094223366652524653509999977594632215281681330659323203264303019391773441942110090219397974934047038915199843802787067626196206386134802322305060997379518135556690611881253767824119966300818348763562622010658020549799368769478454318936628071062284758295718827818512519533920688590393935426082166159862691826815963852150005379102514390779376496215599372192826830334603075429801286158832670654695919265774079108100537500954749964492233687330787577712380744162984115128144350392692808703283038013712459500607898312497537061046023053549306804744920059698041180748482181080064497680493708281169130535457518739348845469882480567453390441929631426125627281291624426381358127361248334810903045919509280689286595725127549215480612149955180457288727176587788961624402700611299369808313037809071615952640465745914339021420590637453353745517057923826795116883022959639253562441411267397338677277363371407167596774815695874095770785011560947355472413786425937526587142938975163942561515972537141198148816572585969222732517231400553045038798363082385958896140462751526585638693321602754454511243946026415516665614823771068268294054279917796188761648458618470116022482350089011046597804009571243450631843223808501799357181281718023572544963192730720274865615666219595257694487479306910982459567199373089088253756380857231917350909064810534567317330486231396989546383231650906184620749926953397632688654698446947505868806198748980474038219648646710215106314012313658743670265273008394668619734433345532246330989836142558031902432951262653506362348197482565875113362993867542276295933151446545757054443436516972595192892179547228058691361738213920590896974532107394854934897521800033788426939233948887082525590587516056213991469439935037381792893526180194979639252167895536632313889023723408114243029448347757715522308500316938263967236179719760467503539299191349391397162100460457176162153970429331016642848634608918766528748249448231259818913609203261640502211364200713206177346901584074369765505798872494395711084376602382128661596394494484091093742001381640802340211846414208260817417846438405253189246069788674208467713168754537106383851969540805380574078233282562105840991386310509034587228938833612398351266250346602207573742840978620779732659600944354545451797196380493095524147114675418655274237512543190454768794062084218384561360677817928797428975794053415260344908814618344766934716771877607883761810160709002790387599304790886123970087985031040837057138011228994416877441243785791418438612110701607037584019035528560468424852295909674651564038142313800825649985044215451337507850381364380737238297128415581874912328513768778612665004226988567814446837803841715695276905754495947459259189833737086417575590431180685380910877344036407500011531070997944264613657567575271182097796805593406803107725368351978411554850663086333541376024369514591123684336227023143471434798834161045941733666527247895653934290270839517384295978349782669278058611552988121717315488004630728866018374075364159907211674056181626034473434023204729565105671310099611961593752026725752097992563454961353587551055172291275145413309320185447234881119657224260793995255997026513228678702485675222279959826601770547149766573148967896092191275794439600649768345830372361729521203607606032354586640973015385759131607054472786693004797172053337620321418973018019104830083730228860347442534791294699808852156888132781994859255004718461399356486789454169905004957752579260135320107133215212831321458891885163905282896315500648088961525044951152104697171392319670466447581645181726338210245448382650054250926790756004158343965226396853522607975970568469745423763319133893312070281897545064741554442931073927314801810267132871679883744748666860252974876206157534118662301821757279743236425101038776193161609666373169429780101937167860289632502071027780750280403229511757288145044264385960638636962238440026015458451926647307462815269842919823151158717888149188381005658134267530735550802018375346514093291852349721445116331020482083709676778678824895813217112645995007107123287998381308516884084540333392223169927798970492439499471964436107383391465326638322819116277663830407227430201020259596851446807383079254437574798392424485634451443222456974362345247239086139794795966417020712838580615436428843907125258303599648684970690011582985187936184008128712786240637377271167483531934465854146561578755996657404213326532964894612291339703776242304033839839489393174189868997620495183560427103551440770521636227382904547300858669923473518928206607852776623938884737387095942834867046535206039505971938273383781000434104455571495969236210265401001504580944697692950785506811154360674164234144219392117445180910197079762334567277860158166271067494320801578617813507460392598409416419673685079202266753791200784753481121749202919661182429200090228428358617739526079845175295059005039800280632701232717457031468372225476822627960971756030361000957791679579627026161892647106319016190111563368757623978740588980319322421427579949148139767463327200574561390885580773625250215979651753714608021989403114366722685850552535502371327840933771941670513477187956544979300570437010830459654411415344625096240154360053528174590739480479205430129538562666368337064554533929759977274012309828855441359522429908269135407909155344689196223883822848668430906963611167874080544233151799218702170761886146820026602605889406319398235137636829985393369225962248072554811806756211345860530941178810324097467039693192778017793257030505008177156835015646894986929343153749123421062458783985132614872492726152547526585058760672917769090030528028535516165267011892839182334684198448124555007870096135870824892774951879688552843401474532082114156115358753090781069842509309057540452622396172648940048401523893954017733749203598090851009938075312753719888534838839204649449499155879552341132160986735129039538276781268939466730938855554326038593270558654349093534881401761510440440972687247448260964576830141965079264262210707235728207086850735354428892976245417632873924116138870545685454338411276476057466569189375436656720118988909281531665986728034443587091017479443498512399232015708250699476466320500438189739793888092226008015067890665250493320954236859265070801327830320784398798107281519202582876240531871884050703825150970658638635632765112969642959125905806731349686452628947213062587441631475765816293234113594782910765128941901623167380857408828045172240406062573665946277756200585638805898755713910862539460437523361916961919280067405139552896058305237591175509551576759491582450916734210953161614968759770818796025884440697402055657899448897601468935922087785752637665168454087602039307811684846272725569810790865440374955843516900197496699817733799147245184739168993657570497447499107423680634353016619102599488525550917481075569474864243870182595061536214469043663165565730420749614766519248660173461519032842242858260364485428493528133531226178941545546402179376295689131052083753740238364069110443556620307578034903408652286036956055122671196012001649600480242052446405762575093319580245759689527437058660643613906134092569511963807639507129021000056261505502461132699424870443168229233284336102149870116587405693162449585300033178260252481674193766526577081501886914764317286645842209432530003433968341002542531282089627453099488113706438721833266524047518386210677409259280571709502342669148291694879610581709437530316459760688189500032961796019043930510548613828336800058434234693333117318570479096625443510191960201164480925526153880633402213069794036907702203144017310180201886413139012315896615316135558026241531848469184976787641131495264912586627134127250907288610618695042212321020452634559158716338922037898499214652166687372778855536896875568646539224052940121502774720058004523197060233744704980836903628409497291980198712167225690884934904185387457875643960408505415010696383003330318780599939423731052624223475007450184838154111176771269577583656756940446514640394565307782529728200718200968386040496984352731991497857451937001578357848202784127305402984649882517109458234579602232647724169806901286666055900235331921308215751415781868209092650212422622928439255879892509721853625779134988372311952310231072868879784048117287474925507806246475483270090952896983091175470485580213566271089381506285060525373218811308222409269591124251096509191194763003980831970644883456125218511296692042583665890953771442500732789499582387355945792316455989255792166201326813884946117561736352162608030367624514259973304623046988222100009198757872370566707380579095435303869415630736757648326858618759963608583667632260172392061489707557097091730643865397550379562643990609745437663691213125665702320057156236903154937912962931198909454310957578854522004939824451720365108365914792987657471520543902192661356514595119649591727925989200672327327564631530852411943077082091579485754056566226872632227245191843855627877573649209138570903334097954190802238230332030339640259170943555018870014725058014280185357500325586690386104501695623331255064361743118440069721741206082168379564555782310890427949023677732894098625111890674905552316351542441717872142905109782710235454257478737061508800041425091108531858319384190899750590739064373155778539767310732284315781053103650965863167666930880747884559656017634694871885310863437424343965068257695117449075598751706912289398848636758235705481159362940441269856494559018102304312257708767015625704169126642875754573979427810968558757280135017465104865940374161683505212035667182315925048722581426053721086943613984596884930506822476223582807934171905060499510524684928897268449486877203014796192310549156695129643302871427822908252191699152981889442416309486761103085604080065050617730554831078483359945893263509577837803138818909725403944072974516464256780721503091848309877239560183526595441476623759445177389285169834118370331426175169453999092965470383818301230140675746625528515806534666273738713862935609191278652923556628814284014116451821900211081608718834208756532220266671395010411844479311784399234805796261265950032903631128620527907201738143780038242533039353182393099646536476060074259735070112185910859272097708095235906000329762062752429514429911940195002388927631815584733146367182655992875888384968516582970640947547650733877296025641922177920084029114778547036786821998049068018621392833002155665417785426077253519410109073284844919841736533508524692230584778019901282413068229985282555361134463342532737139859979558538573540163140741816190233294079860147801677683741853429105800756696024986036331798766650876388186156744414180171812650512080315849394379145211099622994937190209768205444517227664067073283775270508472036049480794041164740377716024070842251874028931733545855042207752318375562732668613196358201348952276769806580249886841958322619108306929256688142253696719107187484940290966832692197222822811002153720602622675774158044002863418639990536110972327707981143859969709118566897395971104235554818805742872072320336088515040131157166365739542854235861810693141170928096826268632812073262140626860758725567918906998913658625747863045230702424504445045000012935717805587274262640446515188610484920253081022806876086628082590567562076221776620202402645515614824603648681131114659605646608696885850261319972140440177837095987987760184010746065318424292742981031223385515504920919231193360646036088643680099644361125166204051814946344760180311021040133483680366573830037504738350437592033735705092635846150948169739224205186405548042682136091354565607414261589477866946935891740565493560021429108431118288802543155092437052933101106221117069719618915982496335690360681799812111074338050535550119823255316625048375974430026074282689452500484802950048939443538922418119434528328053277415548866845651666233136752076349043481411461923375768901756396629856058101821679946118866891053488420725290495940724048070485084190368406900517036080109046116202470370749662729483572418587411837800019840757304375911111179751100283418113105396469398643817690001600047972035987301872812156552289895062086786064478979816012004271466786424569260932496104582318207015591248949371460861368749585013719652189072619373994245305709417723273940567245354213080811618589827413973476573567330474114722618104388362996882540483545326961874300081225012100620778154102625695462381239632435256280257645698189229751168880022600513229718444498148411076563915902134651618159029037165940495071857279074075859103396767057122511909699447284541278275345612123464611868170515454692060711561327763537137169322117753432974848943006559764430862141533785484678499936851956600612326991879526051021848857067428289876179271806811619565108094552662290691495467066754900488452615546232028858021777169625622254796356836954736822330819714927925006336545194334626688755181496717123465194316329168953428009350268240892641631242460281874617704673152547920018946732161567309203281864527970286250149547543246984138662613041564171896749272394508428352590141860016918686940218796492196690791202408996105752881806171682857656519092661245934824551573682702852494422803414842120567422949857600150589489622163058849217137281401846148330120347919630606229545409112834165318971171554997425979002222058186187565463686176834127927363064643804748858884478800403234118167900853886022614256372609409123144859467930416890163145784318011665992003429507200024418978255964398965445209603573464965320906046276336667218217029640916412843202485301785778989199853403538491014452158018865245670448259751445454947543709118409731618501762638963124337225384596298993600779017265086215325301384305078575627082163917384100255351305822086185821145540654401023506120079660619805479166633304545625117111661062326756132674010411522175367263358164530817746668616248390074169153498367977269229257188690323318202541245866193922035386952726973193432553639089942563390608206793304055537006914141343820116769836384995591548684024118061745268708259104716214025725282320332317210165569554062663069264577994787049912454298767722483273368032383198836931780939659061469440024048464338698049495876352055586578047730138410456157562918299198902269778745265901190124285219313459888129326405156654647062286499068106185995199299491286756244641080243176224178881409070036749849092216514019111994105325099182345645793004764781740817792114202869975429085515583412128773853691415395371211456664451030516782397648818648603343852768378612065280421889214108705775216048711883512036048598523914260143580012335623573648975035129533523169845666488887885748506719073027283199668467796567415292262462686577148164259221979133538976526590586344990131583898433111921056785755576147178990860800321262313583910820453006837463241534489482238996157122644880782009069944235078038603273575677548489903507749500915655513528404265681975664687692258259017788536799026940947025580699417046162033299018460889719555204980559342940460946812436614479324896770626301871617487254503739430420157174864741234392783545868879005736947936374711187521214366464567643907144723259540804968616410662163064103246592170010710456377022603386416319028329634546284381831078947231624342686820758131930943905536731746315027315028547782475087163844493739649548002223530275966762509548079197217631551973829494461721762439809854643085435259499191532165936918922117262434885690961709195449550502985976722790336134753503634775423475572095381429039835820951452404086680900302989692896009437149095379444866730949756224100171159465018059169343083965177264661464554231221872840004331822141972846553906084647105956870040106279550259879147368286700248364974622439644886269090552540687698016668034061704796388621210008524147858661756964245760829082684128696375926236196167022099836164321207603347689736063170396903568260474273965145612313878494561875222278939319102333439621330793428623665239091994413694511188673549537683466019246500138286478116035895203904736964691382921562797739517059140325403007161445579241109972683974645087815543938459426366180813524865786751672627622247903035026896746146723352595377616973281107276870290173664966211620591652441504343084946771557409386989077434401471937836121867047762947464473169339749658032366565703984759791274869602900516101024911895188811544371441781852458162885819202500343082196574564102764135986925741963389885474000954378116048819565751816442443353086320561768437417923757250915379306956164415221405253520756477466111073700433459818915535502441166371166166450083584588472752010991592544654172955462627478818659749883248146039393454891426300761994869197529451706398381465643865607390996684314632997423983636129612295837635328142189024741900136420463018384756371358560100369016313525798672793064143727400623558167198921398720986901007461049434068706279344228086898612230181654899328699959565594396328832850379120331942040838805262865256205324654884486575660924920090457056861505258898964077382408757878475021482025083700021912142281710434208410245546484857784141774556940651529672350539279033404928365987529603618073585404046001091835521620839751319053165611368353496288773856415695644912069846024276053582777343409113689023826612092491228017864024272443243506420111818653964436484959214549427636894423742669975453778517866140928619011001641740133354623826186344299802340001050432558463744534999177883589096188303773220479350918894098216401293928313271954488582638618589718978663815457282853772092352052363077875896847836753547940464671802769609672974064651969421117907744300685571137347367995198588062393241327856579900144869743901710630092469312961583360033938237178326964803264921664336998919549792996687406292461684763267590042839944554737444299951350291418934247110923520013977623834318967753368001712566352099145647163140838723354358948646251127586431245687368564542157896240046065929740699270187962972555365949977217215946616958571241558106224027900022679769557142896325559500156902308497750956732916208399305654181838543570758953379980505044957340225636934460749391914933066996619506874385896839029517725276335315150422380521891765901527655633030694491325877525310406169751223656693759190543974654532420790057539580878441572007765511892725029989980200822886416133419715269765573434374106162039022032855234243087788995826226196682288849097093311918818204260290848214817590270115868597887869546269388463827364839280213904022433741302381116867262514189637261548085572920896961811720954269509918448372843696310604584654363239942541393603846613303818213235354885870437936757735551705088237065532588580409377248254720134438526795811714636716603412488428997813598421165934814951167799447026840548870120495171681007410657215318751809017246582759058642148157207202836411280553846329194258763382113013888619671559445001412829978137570887031565741025965132069694181939056817140723144002500535464526727639069358257635867024364576985517364619349081621640361713092533657685258829130812221038277287158832411490819313591874000441630203267193864576337446121395659543072385764509456880544053700056977651988936543775419691356633669887499762266660951668920514092373272906839699589773102520307398221427237675042980041578464685235397016359448928002214867058407043504651848572089456420746497705921230180716239155725272460378158544647378642132409633573048089214569857325590477995269167643166754132852239456056472250236709134552863128496789636839469311302361889099301712050118953226576564423511444216919194893792462477680571029648973515744043958537723936156217277826726692600642927882415753288382266106840972925444880658460066425554166847679098044576381715985120307777847315926027042388782062591791777722192831080972118457209845705632851944403515769037699428946681779321285751095092541706121640217145762567466229664079278499310663793144764389004101114536657866821517757955864449245060006362535430911720621687225811258128774587901186255955368156217477258554190607650742863429825490241118179993164729629543470523638775957566454216217267430817514000069689677600365600426722651098578611486797457435545273724137146134271252178377011457556476651173362106859933829735518048783111384263332115067046299457087486590052217243346351366251813963806574948644442919684536320486722926621892774819447560464009525501263578344929190025778037210863488933998663275141836923557009085477721968952957327399047521992727077194092723801500321058133778280841551225731339721484217181146149409953566372382429034242693579903665230655773740531993521982600352478913105049248805398347472061191961623160643377072736519104555356935413548666571407187900439877149798862340888318655063592823647850416311201108472647951284935575128977973311693429033562911570185715380303195797177570446506590689363613098565428815299191545839902834315038542150185062092909970389770499625816908208484128122231313212215712652615104268911165652282156818827364434631001882151120056786734632266404384360191586763234435386042196682631545064278979750259069372491579850240856675039357305834037681265673827829420468798500012068064318788195507732433283685117005560256436493050908728628474960107298578499943281584427855001015090247005979243988462393724657810141263661786608722436185812749826623852923737136084765369534813580317512900059629712425374582677727992326640537730406805645442083690018510297461649913325751352932507742558750251282826739986868428223790041525800762119783446313071931318380349646157918440665182917863515065079099886337286467182864222256586097286765961481653883802822043434278747955529541420864508497122500403260255056393583714904497462390839431588552427202765109278310394797283452898589439186692332519163968644444206472698343727046313431235909722596340772039764525792603759815508853042462102166867790497048586781496586995394904638366903162016052555078989589021983306026916334059365299788522928508713649989799913108416830510995503400222524122706183986462195176375687816208608454763725968369794026162169495622124130064247209545311630475569689807881415559846239839420464711005457796797723708021888076755891577408929687057903736526477192081547925367431369270597783837533187658821331403940840317025491083705617808572529170352536168057679557865847666324437654486830044927744630629249520261748814071954260623597621391207504594082042838824852783393332055686056168479256132814452283896102657978746174297778204795097003675083810642560237745307718569853275500629607064708790565124663653399315377018100172904644913051245100545557677201669829762692986739342780066009104803576038525016646248269446277202083414519986570647001220442762743625069734141491423848802811237525602339716330903979826810160394518700858397695488973405536528806341451556430678043460843340959512687581463467510978196308308639974751880273231501009688462470685481287046974993571439172784167278933076886484693427254130337507446585392184855742673104757819899834356335730919784901642273827837959684622555981391553522226101712008354610943234626378670358700748520220232202835760273516789592807735381998325996139840479795675083045377788720359113819620931469267996228177272931691063453585194673744702887271868256343328547327194325974728994716458726618276655985286924414941428550061710370982887192425993454136311990376960468291758565910611319732659994099263564956343259650765200875542446780827617113503954165155979730977879191719157900663697565684643192294670405604422559537570900508292959296482524449260277286830814956722722973737115083201457563836671685140373997182592837722981539315490815779200448953326586000620348570592482764129823522429569375350371695627414667939045747473511436421803912448537887589171885475172892464850948198187061900547669106889543743210188746439809726392834576151428895622333513958939927509595510266952296409152767885504965628987171095154354979087281915335843818895372694465793005654912379325439372916120882327627752071819788945709468733296419367527480894753385208328580475503487293846549460849876918541912159598765767098730739051507899093688613616031930410906526539282577652146989817658388571787129514141585279254865303140357604301925619945733188966488643704467492247178216056322370143306654508015078816168310579051945980567014916721995646305099075635568061542312024623921143883727334442905084012859053759372756819551483248877578584185690084084378465402160371963543930428103316349333880513789147756429199691592650950613534425232117738012200752468038948257100119300191788361061071034380240460972801997762158829384732495676988618656993869681989267110658477439724154420659511158989004703572059195281998662276655546496041425636237384903199171229941981869456391731923415503444275108377894573891551974307161247246891032705766818317460852321533712786490941556762425301792527432485219528537983890081983255413266082058696848772117063752057976829641599381201220419854789092855134670287835350436003139703972664397172872948349534074833941994381328532222017692278331582495227749353267004451599372232232233357629768433401963746013835803939174855040601378515027552387801775843671155379883039073381303589756441205097287433925921012290003987887313283715907307122050292528936701042145679952239519050955233171596653255004912999570260739301555134540909180621957730880748262809883146050290302479820913243113132954922246001019419943900499826535003512390488146248144936114546870161867132025453751467311290567934969115348446803676238184294386048388193060728015138769423077438754925748281228980163303646496649015343578803435177506386550689212003200060730543176303691141308539709569404019845509188434495826467078246253892476238378122459021442863748943952684061488343725385572389201087721418088310118694957477891937669920244101249089162580392296743790065912411692711110538009496600968151092193638026601579652421238158347346424610635258040354533358462333263460478006760964454320508703421063037577578764076870146151789404510860099713045836659560005033281985188769313332432325888754439054028674495699672045534391084507547028025318556397266815721444784928781158791425426915728811995800042670600200330474546873518360770984686013657665827688951916074085159629906007903414484557963628614658406375785728986580103930091341627526018863786674367495846395471045737531794251370586270854132711505805618221591976305670583563647505781291040734939095796751012080689153500563088615477545103634208229126270982007536673816070175299772411219145402825160469625446814968826987543729247008420461116785296527621103340671281181484206311666507741297324016555424632424180912506599773711447378735165131418735997972081526632900450858006961634585147963396172020076739272985240403054702672253159738849743601659746870347674380397978249688151425704301753140223003859236456880163031760730973914448262523083330153406735565448145949844282162384342751453032284920249646102506768868306559947631643275921583387645823458060190913066423993143010013541780893152562101961910331526672672897261555308337128723005741673852743731765616652198868569469378530724214950810585710400295480864103982065923715331550298492330186478878199281552520893944448727797348623018583278795048016932003350386350731093953583074265518361905551831819250091021753023991367592142602768021719085840357767703964851061112166454401095480371031211446994009906471039753966901143830916598790988573556720129518524989589388882752095359875535805312187615841973471334680252366434794274046481973930996402408012234018490630660293556032136986663418352553276461499304870521620689253010534040692876097690649776450348779890048295535397010369215979596267913884711829877906467115090814504213594535375825680297515183976264542741983377690410273697058993483008932834903440000069551335156951646854383048450895889905077321780270339709073649066598621156298692038121775768124581934085887476776510357330468580503785993452456763214397596578913661586520080547881293124829707618965006222240719443485850141740302909252791310991513278048645535546354367185480387646795039970394279949128573930250606994932235182363208084958258509647171177582409982657200035683846384934633385529568216599166640093551938038765993780019925528276636701313845687236368854636904895776374852462817003792618468162162841255252494120143487818897284447870715304849604748763870998543486663423338647376498154091084790622562483364746253576022186216722706103882130250614498088959331913631762052652604499895462224765708979857462051999803110990940879710204617786967644232105998960254685809581436203748573131792391042628445358029498642063340231143704226777770598352006670804433234342767023081673190380196696951035624422991491948975697400155075158943315433642402063161251684002616901366124962978726141720906109759242227909103371846412014744013985255741185067216917590837972464360825173315744476709530307539032914857807268984892461460978502868659223818095834156997717273125000117810000316863414086727515636579499390895097663633233103857312857870313900141925764200086826045148395090672986728200239510641372421804569472027535497782981695861972213897530202924090189247684758132768302010645661270276980766255738474322017364698186080038889121004501643716504760478620269754868459556744893681596030594307854548756985264658136963918066000042662264125907362607145770447823744440299821837776630518276175748185379661695198730961287743559126025684796421394566451737727449315217168417232405365055971281106669075826456186485103006420337071348950215212641603355541237621505240101778361118995157883630435587367723086569382324326021391419209256693578591848860327481491670702444731954033023226247101250895911727915410587986175042193356215801882041010675989394986324876944646836939016721882787513955337338597172487544323591372652742903162554587099765764688565434856874157745346499746912749892319365453386154431143563832807202765621198137794754385675660229626957423103816934191050238355269531498518854540486023992913086530287569387718291396165433771427605476649650564305694621332249775785200121063690780348724225051403105569925894478218983270958616662619257225822261145988736038653908187589445921512944580283117099208367799280859236163204781267559783536438937553950362525587954641049198877074544301232698002953097085843178245830083245855451350286941675997428568012195695019388712360797601363225287451827813447355004383480390701898883029930603074880650201835899535056908130717661694939829705381607626000011677209271229910381249992352821632597535982219792030740635511797570719098185205795847879984074528912863307420035136171183765706820804864884212829719599165254496409759411454547239309739047847789262248389738016445905653284493461588370239374763315420698403516002501522177217448922675495843063609172682988261898819239018700415322896213424806804058174659182113959825498249984124642179734011877536246221797870522114059903728010916611686474551392928853594706309456981629062849008306027111931873148338790209797201247981936288098220876538488604626705989918995847998540428836644997766477533009655227442118594348829278718814963728236895878477810820727211580269751797749179759645417609796403902986235714475936402321195166981448704183560362913653624370130707068384207562828852258793499583451409666101651145446975376068331323295180955849042257135615305445248863755217704094021491965772603013185096850040281821053756415432536637792419323922307764233381096474859588705422543606923776398813851856251933527925358347693111065821977033524259641122469002467619811805512655167425882265042150104659797441663310079289941966125018808080143892627871207764680851967792844720887956923750149078672341684049784258380031197888764707612058397620404773666425896987653647695412680753930357614177905843710131805210959658906001810421835441599989928665672941449517524935169959641068138024332997266896510353322709507727402945560580900049126185019414571070691147931259466088248058824860420645824211431236049095885678136326511199255118230128917006947177042957105961394805242194323227485101194182457205738877425038741043123711078971548240914284191855538560956107702749872889740625465319518147659484274900999458919700756300249904636832739736857417795391602681172167852757387342718617929582384598924378981413535249083919517652244272214877428971010077355738880868300632033640264060027763021731261122567819620834142840533874840213798440725456765532099778166742706853261755088461151720774228841288005903573747264786327599043760737784729011994615868720224668039665774408953787775133029876487967689719290335848958317965581970067954551658158424292690314188004635141864513046454958974835382464547757557283025407528865028085988284513684593108661491711874503901896108979894810615590194905448066216475658764545917343644878019260587483388805406538705707547201829101949370385085058240234739978955010215055309636514377510615864935662627455370353178761089259150614737830640063779264871356937756314879954336251528682082181151414653510262704850881447491330741444067098649492790939430385755227945780577360265182627592460736854175369612267365768464400467783652651097994778525316117487360390245254084710033346976267992481165405309343421725369672665661355057328958123966905714934219416433595545848751526922014358885328967970799018003265556412710158155835016916202988707975274293512741871351800746302441477649379445159272107487175317011175974269899152656732311084595684474590321857034383509835008701870086124224286520441583194122001918053655329381993450557594912525431317672713266039427447900387563097230087989098336625583866967860343482471151809872869445118369800469882888919327982707698785196738849435582488438082173301509032004278951023868678523993800491213767394065126020318255298600308278108876542998523776690706636571962986196177697553127283758821129711575755732670348012116733519420963675157354397520276032549160748518251086481841490933302151540297732829811588100164015833438964935433402709256857958758789021762900168908541472129916145741623981446685977835179090886110792708802618671941525478627553531666852028330098277286578373759491388799907155739997406681438105158744137977505083783354309785762916637662170133749897500234906642478069357649840034542310107888907296028540876071640800944134871591401707466562766988536685374474028311692534824032890028821001947187939464470290098645466292018433688182054317208378110500652821321229634558857364837869526866179530272842923580160321062918652145400299959451020673029678364720913007764039278222483126992222895263177663134019978960279266801028923594784835290593333360673999429274200337376340034279949409371781787795787688499433780938655993085986305840468037770488386380581971832052252798513249358469173916439675881291245156162918775429360323618382668779230855896170788080076603562174576030293420098878301998988799406921043783414122166903287790658657594040127602285893076300749300906626305953007259348872485415871565030424362867309009721823667241239032457403486089163801264464761933874676401997204381160683769173554950991194138766026771907019199835589081219798034534917916010914103075333635463534956529509777390374518108345498870730009506202509511421118881144630765140188585493693567311028892661188940488714059320069775639757770184174651364659189338968240083755212184409666433267365482541346218652966992066442002633390871520815251904210727415762750070850778867309025026078911922360877166643334408182623740631221529891281802419185472618184963085211328003087363325983079555774605316778208244288655938508142182965342246667247095396345508777878319954275159563754960348475304009899426641867337085672687154872613299728169576692490284920206108042017033455307628492298983762501100961394344208477209755101498357292808270675199266085380287524353823180785833973040870494552794058042197045559028314294630696153841611897392714875765454265828739593998339200027275167618589697285334510909874525325677079364412748215183678437662611404251632901874057116695536197942523101934042327589737310222421497308699094351545908913424223894375130393843993513856869051664555986159417970600679127940931062934975089467633608517116019036480952256805493448168793806009133425145908987376826806117064208306264277098691762238679862059120746035961673157942413553890151281931974133568084783266108428654515778899730525304786004077905310609869281607719111774117107691365650963585523103666344560539945430099594610146404299677586247734297707838140365707484203296201268298234819970704087665160394681879209242786165768861828255163768990102717755562428782692732868750695228323677135457641406486584305028710443519629612385575263738381061380109901411212267216902863931324609641923191130158316428232260151139504068494008559420493764400977650548348482498113284704817757019749374242382066319922650784480646945339932069308044924639289302865543523854101216175156243730807132153382568818741119199166921863840976376014065771578914156373863217292327270085529938515550495618033681477063156662586053011794340208720991351130231739514963629908110108848984287444524122238211937752224619538071354336866119823288695372870550161468985172464595362461852513856900549847543458798173817364972487764313980127793792361420510169124738058331047907219184885509738357887523561808648252572696060246356997196653880077355033690936344836075086592341919063683146748828922561719325437085500664424693653167061817607223368622387830025412630698404405453065379969839693584118600615744335996296226196433759007450068390409197407823686360878578204372370406233238893910390421638624245491440564477675740204550060866888528066075347742305908515461226363389644470563170457850109375529386898987188670967158034026170090508823944051465557427168532536421644520560075964049256441060462882760995967662062080217066399887985220924521461101545017294637970500000582481597449679966686173822415395493695340255595655764841297469101940209849434519445954228026993806467600848028697830750298696883011608383235086736940314301241882750190174809892150046790185765150732783305484613294169717184239714615718771592393603167610025881512706067345330970749939063800262615281130350096247586063687603441698326797909417961551197315942694792372429983840037604353511565729307404116394571434366339503083731918527455582602392813790208952917635506853017442006676451881352189184507342978141400098571848446610724172502400107518706997814206397979905960554300501229536791355708580833812168902209206302169169443262560418193898032876728609560353956687670810412173001923084023680736796421432032121576818346525059040324263965063310710387227759536191908308588709625078518378269824593930121733061630630110541097677151727036651201415422542184954447100542024857375522005383032164219618948705140620128049298802565035285118029040719678546508795545584909848849875044863804094119722761615393060130039029858363742563292127297657893575057823721175353097000578040247230591912521377883552970059711448699780149079688799735392261874004374740448881260082484338917847289320238015986238208243723922194661519917624516035743738459952823374571947248207735631947367622619851529966443258274204185737700828248483572244245263189666147508547799980215407625454871829597816625471077064400333496029282111729460940732380960448508547567960168712395357284780564091368896190866308710265277361490803953393421824101777221541799984665882636005496180706847822879376288927795095004898914495597079626129056723973199902189395299968416040484948906670230241709978025286668245469164997283303342702080521721561277455397315694476821509324221585750280945908536130420107049226431740590018500358277845450828342825255621968025748160455474051926725596746935827426803330436636376072428596244385365559495803477002373926002151109943223475720827408013566700234087422021966836194269562895948682899027555509786611860636725371382880019222242882140605760325530650658885682800604698106394485209682490721230705587187599573349526268647212754034596762572856527254219636533074899149965016441491643802063144839696655333189519804878977120428680534039955909279544498014889985714034251364465898593766115755533122129796755238016610794760953421525082898361992915171565166190978561328373894111265279920110689984056130631633439370805497835770913252381784666006826046854435511224311889014796322682973460094678576369899624702320051680690973273601211552104974662901453065391667346097413955257798720105864766485159065062040365837286346299934190031670705981446467842517084359604387342550864924011524619886099515203193447951807148118364396170428359936423263600928295610347794077852642596467958262969054987591625277541247871341876172373130827380655445409223347306384204962721516677646059643824734619100581702752687990212379526759075233660878992025722815499054419377675420995501024679767159555719618322140829792540775891030783225025993681558816374989582219156529162558579753707576567998539666885511340455281970834952497709381127494654078400802772205639481954818795678567366884525300160643038839357544312222286284675760176526027380578114165585178300683604554196798671436670891209128852224028359022075038012243037017611967254160210478218862767151894228394008568273042794778570371646665701685419257813473686607683192521382493733680939724742758930371995878375186331534903034757171407078162533846481075746911194163726800106032851261269371200473391588460017089398654218719183590336742508740581495574522852880894007644510290552310096497719558533366182760545221539837615732167470595053739670968264160087045713808222316024586650800792223653031558286543983679181142826227244057013604643525860049662062694205130344836457940364578987874837326169885846498160422266116574239132544845132721044650328503562475640061828617970644374389583481395238229895523384137306389351802295293104149840012503241220791703859948154658613123385545119536470950026255008337681047121239394411391212092470507496469647715946636441015554826822804285375213923097639819401261452582218512313001267122835157381070996367346478472550022468470764495031584357759621083938455386379944649106496396299426201457906310137005181066500945427597621201180396802751955543358690926514458100391284352311780416222982459333772794401028659785404421081589858155019358111375065205026220092515544842462159553950085773481255768432756454543277206425372559484884252072991434803909395231798843915850225217710873464513600148127086606784176940490748056540101302363438556326389921341430306066064832963055269375581290964424187244273524778190166954369524892970967606723032549659042130241366640723868882033838655552186954795970693224607305977917697025505792765322141314667552473270587346217064364737626087220000431974057901280840768699658143921904345396360917062362441256050733362050789385437890557567120914738368928870064730151601834874238508008917119572150598045863736642471212483128877805093949844803264417116097158325031634694687157960327221260415978377509094546408502668347549319259117849994016648807216329637946104580821231837088204303815355933909279995030353494058292431971076082391271858155096144422886624876279291820575372817427075740377542765441463000166137981871350999591094379310843008546176415998601092686376593427780260587613331106578622228925775662486163311596847055771230990517541471036855600565973777169514466049890786108031921949565204204570851190899417720933869015127853011325859824180772940155166125727981956817670649439167200404767231005908176761224316299321783511387547995404542748240372978375602612443061697200716826867482686591397624010791926177822595079159743621571405064771448817580694194364690946312296719326082990790037052477257650475318394523102650561184404618507455197274543567710858966235660774609418131387608068769492847754732148585971703384245113730206988763543140967743143502744858340992866247446722482435163249416570337934841899721109809201882333629251802755505319295941480618781545117535029769203014482973021879865061543377993037287219096344783710891550182271551113083767727660229830952529480171786981874213585884683932935809570478392193300444223974226365132961017559207507740099905020095521855425205157255029147346580961492639158962106525993341969405318243584395694064828783592520184481859764176778696154302261444970564795632533741396185543028558814325622970540870610242231466371108288028895196480323696181214556158364751249136332693430978700903085110992744892190322256494966526691668339759176996575420314586004747222036322630210309572048742570070898533385669763127575764330716621088694170004218024619131112005786204922282628708969810918651923092874463065221793069663765347966037460437588955657022185986926485745274463275009112579043525823465663654663878844206954082792000470889277318367161750081586477860450204326847968439036618930291281767007377441169036587924674764084944032885032508290020390735625468117920805147154003001801674397466712993998169229882364792508946591127116972167837041507482856773242481808723213845059240388221782742935913432595984252242779451068206532851194958434296494842692871353079270882303536638036747558226217801476511504048065050010941806712235535863571707677323101440391685515656850277457080446500492321658844219300265500355638225353954485206716318381133123718513720366563158995648683547374433154350120748792801130705170476983024790961219652969081980835057908271889952541293130843953352150430955556574121535487577443156532241234889336824830278437390272527227057202405180502623755175300594826482638912651747453866726840515767673453089465814057375448006626175835991469850898424820297553734781112621393317376480879726209669565813206249979076676585532725078405405373400497091324337977736236759192869419654107987813058279749108642026056135544689476874495219371764064953517859250007958232969519776515305716567415657216568582555459160953628924528291131044853834849211911285621924670833320273144790164140373368320537757280746667003575562572182810054162870021988290975932957783936437878198129812128959678098663526771658407930865676764172277888277963699499893452661654274922566067901712357928323059837585458128951508336597487706998362737066563700487114955944222066263222795054248882212313785081913906981963950579557258571801777883178642432708156582145868978977140647729951219374205134389089240660999802234959762186845616946324599221468258341409293776056704444515660903981822017340610814639597464718570551501941632979319365014342134264400957881335460001189547109390049744480503049345953372486437037366873190633534347375149415432974543232102802112462643694817367670759159383969109234300312686742678858103224386314427062018681649656438801519995214791549491444951684618885440913917165820882155964084814829651638499790171883793663995405092554218378305047471706565415897333553094431278251319009620667240699011047513998810418235071609480956017524114337409549021757965724893116946055594105448186896934204284718860038777634396549380798993440984324105564188735946500303253828669951935584419888725795862903756485094526270891139469618189584062887668422810464158959579326479947973754258634500168473616719178147881192986778368204171106131401856656666334093814381134898642138336157123459348965517172409564302723362501044320973722423344011363982321518724300343677405796989880907398883873364699179325440595364947872900138124125141926481695933221266765694377276936088276876327533589990302963410174751141856157449768831814782905081801392021039944654282637988228530265971427642945165778445422286352867688891794623926710638781680240611256514918677153137488533177793394346112720124806203491679720404752292689591244172553649133250165727991300339715720531554717663735926455578949448573936335463878323589949335329644807493285869787974611765794470915688946370886075147602094713802233126662574078656782811787149833046875350994368873756719562252428474810815576693020055223044599466730588853192137988228955614135899308348507091698454526166992169917545935568590398221326634610729148033738016937515455261582045175995835954312893517767055214602059263425149410501319217477455256774532362602227672798054967205091771166228266035667121722330859168810455776032801289988409580954330320694267095303155458414607966520962035222958406321839580853874535188111791318722308389496724457613085654967156252565592087303573885912723248903151719161947611791116063171230837301806402583225064387949363238401759344539645704093120031154908242569669111293981726622249686817646303327946046313212508535294331729163020751364175483204886807302666272553833568500440559156138991935996912822369866544025213363628175144514462024444589188716573373453732819941950901455891911857577987436403308281868218010100385530886876915570366667360979653471438986357451441067559203843826817414643562708164466325805167742047980997762213779201899063756457806131534877316759484467100936275597144813650611222618302953814900970588238981646991228334345142005907517583710127180300237661350911866468675880202553167944077038311881714515463549874703914944243872903176421901576280291351696824506317000932491596301597471311396979219868464679289652611867073193887122584399877687616460882950688756990086388066249706642631270953390398532709426465526216305337585366131977089479866461948040673220079579797291683794868537035090652869080391310841325257605538509335961439735906860358001183296048969720396921255474228443428052936492149997890073704386262226845651235481022951435085250583574402420252519652664224678357594149806143345500184150905584447900592920133832944969633257358658693714620146500173155142001667302358098281133046600723551623360359678434318163219958927972591265584590016223100614291679916943314917235477062571440373041866565748447143674420664522832255898473569291715837352599158591915927589285696989214802372859080980547336030592213559697582384280403747380941476926026962088758556936961773571158192845725278017372494483213847130282073591444096423444319369978709974241485181665636426429367275047240894182443810971665390270080382396942871660596191942824634473186472092014436513171608418109689421681942848513419992290245453841415346624187482438541035877727241313133275715783021385718566457804600328606462559099947417470388064511169665955946855835249227814026112191926871764243903836011474887602492449791257823536037658499401584595211584932600288313830912716797283624420127517540279178124760817983301357814159089245046594045433010452174901577906554020698569470093661004331328759351943483984800329758089898951061425234625227625844332901719736319213740739656579678586129440089288959829713124359324422877195872569063965427613163552092742860512903848408914433986990822064843404757633523579239350810234298847449679715082092636816655807647947856047737115098846701295001609785249937807671714711119318293394715541681449848035926521842475661738016516830815034128794183411815357143910760295765264483107448618214412981242358431916625236659180536612504812958117435158125072187957423613091741914498562016333180228163875411144865191515581387051643586151723311264963500467875371791149268857348949352036694859708912580875797700008490669296107801932635721518506400261810164112458020358586960582708541447892899071827581797106533571719826842532227199093219813693191388672862155226133681911844054285387713732846484996119951401952939048894106763110619575726142065004657893334738970865816286996157277194775025904771971411753841171686352405968005501397286667815430952203116681935820117224984508891468770778158672585136021851688541558469099947959520739335482091236269427494604545047241216540961896966239152131472266161443233141209384002733565661331072391613526215504076942099560986946345034056580350997969829824533372618930837964465647377529427418921611506201808795223341013013375688173476842410564314970478106184323159562565576116573329265272935247376767680539551101754804200268164904324173383534504135773241529169661925154405573403479801463469344035655529674310028596266866842764529548945795148197014928310196467933432841721035980493225183384872155804765261872702801822952239682324865416590274935786098316974217508118113149286202952760751117359138806914661523700464128145956552516040999326402516547522479200916620936082660517355890803445357866451340790662488784239647251220767267579764099240571522701437224468921314015251917274274636307471460329089648927943896164578739384236496681774768207138416790365086996694761975329216440567068682154423571309397709520225161093354514416733600410957334487403212647138671769703404135671199200211270269719892385151229553639782238784674621013246121842529021155626687740593610972726644801553235366619485667484228106798329709919360025879511073214777690897515883823490256626631770137642025778227107381978989349938349905661643678187156485859019863162861094580837961147503751687600538676525314171476434434035768809087567182186694644982385483035969762575288945628436900776353537037766517251045703235210636216493855029174242214044430409103182632442539685458170930582336104387820967653518735325731618859089345050081244925374866465141377796343230426134415596002833762454808824534435729174008195625261443291838163339571455025189120766693385283337057404625385082851508014018955726513007754896561866958292625446831793920741380383778212119743187301920430914737989165335318675016148611931554867648168687267057669509611417761841857984314449170028994592697783311429153352563039583627450485719506897221400938028549201464167672585196774885557437387438816482547112466304777971934257904073153211637172912178165826182331458822739483103424864899285054892739623285360740522112876717433770473141484012812406827697464265077503827790667980351494094173725019841277684520830121183796476856866074127964860264390781602754038523379198365117512596690155104604489385317263692731189448699779882846448100973566835105376988971329872848291646133220682985665160982147738165681978115799108305899163960248751462771596618147665539204728878585949026150629271525452679310524779649918444157217945293987241621412274100599599067845313280295764992438457292648644057802825447592781121823097202145508107190943347422579118448715996293488975682105567826289577884350690352718244589376123087454982901597790087302933589816064895351738269994227919020279104764731766901920347811371745688369861900593796906400408232425612447882675894965697852440888437828222698197289019791704574407601632338231078922730349232016940736695663260586066129320589470111345896764671068438838503678239931784411701874048763048495398289905084472193538377982919471464871435983457454918910731928838430998522811273597127944730861363268685006950930571478942177414752393396193712964054544544404698624937479834465959415907323835885237947782143315034372619080511280633977756325450131896819247516949565301899129548346444393983341739531768207909877723438978415099021153520702442471468568020473229315826109692212541684427915466992195967172016805887549305365069555876321029371839802365579744024890230101721743324051746513487901930325283942754055938715758854803651963223591129751438997594754202270587840013758295342424926685690811971969723850204351478814573295540657666931989910881602941752590603148988390832640375821232564511723291115908167018058281554397915980860539268483878822269466125341293287509004716950706361689877434242802938293386524320846504135527374144982041554425844657380217425917047982137285034797076141516232348452413665583534431482142598311941921116884966724807563505685088750196493930088406982411987007797302945286390200591757383783563890648226009890673247715707288766356431144725212547877091621333059188211286388549790697989603163748064647575576122990844854399066280796158254316885429740673164776984545783079223984141651267912396320129715274947169891635351683849875657656170322732295679956936144767008435220518094269837888939198277587296035916903049946536638408541727844595140553336002713455898401500212781212777619277152035427648097613267347661563698830515207456012595540442975328131405531663163172715718349370751173862269443156491652210132755973599301771714796531714109273934300112420644054629936966564487761498759651026693035464992093333842660931034911553688539712297483335862181224349455539841961883336518776164151478376814734386292612918948234021930252274428996429011225654603113855076724563483597207170609620258418551502479501533003164536949345887008171682168415966706894625250045799003648652581284659449033584163897963041499933576040273570430552848744117352819288215545851616870724937303710622274392079685442736099497758546029459745613115012135068633022231891959585902353890906546869850392312874407861246367195935555769857883547553435451125667037687637696707342910952077915281569736153733568843224605178106769342905891803938820923160297655880668811721056626985149277927578057000072580881022786873928050338386490755891077302050776104266867879034970014325366234049571008397366832078670953109774553237464206865871737739731270576818022203027644688844966340644760706701112657145551101329575233906760143094955494935582431889493330953518236990626116842024091130743516707678252896916216680450470869833291574298309512980537689546662914975518199631804542561762171424616684185817949935133780646523357256954544869503558453157079115943934846908488772539241859007723936022520207119287183375953039650736478509401519084370330141311954955904142083581322257628937226422191149981006469558912630193141928140204277712301437033443204744232813934004201593399565081072107565643707543946471682704987039397690388849341277113867153202903093610438137251188658773928069621633213809979933373635749425149774188541711143863804512174037449268188381827224529706227963418545167664572099478788980252601272686486145235913383162892411578701203255980410502680987140892527989931582894652576608421299036180517494886464386851304646514739127759773701115488635194107431771809133477792602676170464193396608289286486898435453365993901923198980047916731729315547740918217432945274057546199491536914035483003659876316725492244748977511497467622213437950677458475035908994608307821446123074153907674652748429247819932275654764567812508633494154223573963365071773674924591273848910925293571863061929304969955050589758264186420054136841519212275986708697731500832246708331122425251896827775889261730631681631184213967539396912185312316313114910876843810341951362057454283751256597615542797088644233072773864928708349154011775937751465980429479861665266378981547728714489525883842229217781285979353507191112878023879226540078935867764317861340179434652933439443722250433073026608382616818873201339391663268818617387219920387426346606449739188218286926677482993717805414588507102259284984532951039464382312725652395781579105145510126217629727560892471334149055547369947352332664669562696311038951504880392015098487150268188675059924015047119389686025352233595120281543681236898063854046078300889761399796226487527297773359721112710887688511291642471687919259220015593332965002696336792562622630628577489846610735968656909639012376485129069425431815911728252750897130298386440485009463182302557671380098474021950665403907642351136816530232061550140756578536344516541960168379307939346087428456203895886400694145452403102273233417126113031874235158268703577070531924958495075001433200627025329700979754109203034344658941573311919819955664147883418309693631871599347008334791921201101714881164520349147219871106949589722256830626632822008989523728157760500661598050731682632843082664118906654526677973627433936622372380932322816660001893626536593448483046497259708773538184711207585697888132510491122770363915373583243015149503587750631933143856990961018743927510285070319815953276308155500995154671406596436303659910607316886366872084737500042676215153459693755585509712083831976205883230621917390769691758066407847383383946463958061669774440546384851601067775698385563028126079214724596294867000065925683961281919731708370009143547305950049532566499152723927049461568226230797726151771243198458592447013776113605279662792651680034957522044911959536120199494301683470038792254265790802236162703479085264314529289244142456310592760033025875856369341879146219716819653131554869134038697518016269768898264382616912561331752740959774969190545558382396914117348858212924579158772770551776795442769924198906366684147543695127882060346591262723673077503318091297084891739315124297125843496468544769628906282681654986987042527589105515943086663868932259261599132309569965256045235462433370836555731901357622096220572254318585415183865063895554190036632180808570457219162229318467179452779397048997071693316781565090991766578432008687057352621526342013379452534629742300115893896688919519007609318178826968682602238616886814496029299822289889566352899013183742267169007524775248408138950542502362454363904775139416070481141666922080620556041256375590375310510781362681845097689554310313618722248998983351693934862384596313072099500988183252934440074942012464737805065972939907280166408347987847642458605131029612944263132061226116777740714872062001078167697882850681574293210261345402339897907944344706153047739965536405626708095148385195625723124012435389354425590264400479705862889831670145366368336673177407478588363559116418676228169584790205083166951299789277355137264946720805782359549340922659283719094666004078933211251938259905901713777183220274902527868679396943711713056323317195557150970771654114459900124728382743462570042071519656976198723006902888916400591134737068431056976041821762173601999340142216952740846697158479893073423994398470285551539718901738973679640473595599731492603459065826501920059009510756482434122410756629373321489387661918444872409683552189447319686080061280783955045668834598064939195528327967216145043703152489896696680539478799812404701339126116267498898206872494682854234731398942287743721494087212005417074996617621268559184579960961573353672363693262062491586915249226442262935019519064569061097757199996607591409516457241154492067061601272401512663516177898008008395073308611778751449518538326543651620906059253499685625565563273276275740928597743723233035413618540696647257183896263101001189060119726099694855834465114198052150218233916010056085223426823508839208491792137472827503008226033631615233475461874182189457821393755000314368122656565450565690678203814396130537403776427709292159282244630261090654699162576677772446220548122064841862569948277225909319185561866883086342451148948866865195901399919437835130557170462598730868586086850838561822885811027697554477077779127009191911253337382361526784882750260341316599885210145970429657526644260557857024143105867006991160525094419909672027969700655045316625573976539213850074907028214690434190571810970237863907814836868769995652360941558235668684350549608705012135489188072119740389628776541009551637152157628982006378173098315318555023348302480232309243624347698388958645560603746737461406356006378747271887838889351722041867115238296646833494780853313606240781867442099149494895184399812099917754333119352423693783158989348252420434227901433096172322516799628108592878126496312053057902972002326928264439492449807006689177979582101604431835782823948484929753765221216556883134769788287384599710763254715765720875310735669076654502170207395268705797610000149477020908661327463112811273339044915561180177692122753379350626394227743399032429127211805281456144510921051120745135950698237256083189510656731042668753040055977474252944534454988782080062100389635425881161542151770604398293387076776346759900357858931277661743364641191799989289924004690919828154908905603382622821929226991870878563047943430193590494194018939617405073662462331025203615565414307343657460246328158376426418502502506036965431654348636144142641954939610024923997299700171218201362232940185799847654545475340799019952918464175319139817356430793070968160551405621867696057197630150619302450532831698519586637712825415795063774765705134801350283302622265493078191019507354828028402530124844419496808012397386842613945296043953962934788909277953634458049306147317547422390490701610388931143781378284854475889864963322040201313314424054580612162167218645824823926919360516563574187516768475777300621637555045614050390772324322863164979061877209904341374867061656265678490178480060493130014151765624281554851025686461041013458174871819910489173184200632926328217470531558389005887892046301921342568910053070627954252112385891340834376645737959291373243572061103414842759900816882732595272227758243694567277672149390977344538003081543853322857992733575661680269801901189381458707759493245978682241621079186407638379288692754855373094349016601267977562912300786652812840049595419169765280260003233266584778478650761410792628520040488331296541900370669937257679771057131725179735705684039351748968639693582626031796495088480231975082898219552357236000822132194139076268949857995805141021890895186644006994438506086074354695378860850109105964772159348919940851205020572749242108782526379410901060385514455541801043120721399171107927671248992572791871573353650316203171951693502342051892432582795257158600379944483585458734950940482133077462350697078791039440587727088666090280319097226042678195524303598417153217055239295738424124368492125971435972360292366784061256329082837548162782241897519632536825471409370131205246590686952838151980432625375259873115375633817814758414664073609143292630631834314306680636294483776982659747801959597506924559767525631213097882486900210662746246910633654902392775232531853371176364443723251836260530429153528028901240912853273171507447795291216050941332608486636419320364626303397618946443528489211885604013912820523008072932617126205235451435750068072569032622510777970975872508762720847758321935930782356573397586570042693761427351457540736181138675698041057318044857363039620956725753350885487490142921470356733664770482429167295641509952199468613362644199074772936783484823538676091523563782973602634227265156959571314952964564579919493159617361657375269698301193202147963428060895261803855951228946127586161886731433433425844024689176339392756538227430426326632467934286030168865574573707013750925163389048116803419880023343942993946726338573036580320995627465408964035740627820784202876635035128062870795949207217665930223206877724068401135498795786226695033582310493773551755216737799768719442534269196585488817149575897599604718493987172759083283696444315190234808698143311835531898735873636246912482614867282743371234000594338738805977412764171554213267763919189425643256265965576602028466975419826046251307356551855010783689095627850925185426993642594186303709721874710243303939524510709483104628106593850882601778502525275507193877051801374395388268555228161741554754780902607363335155560355017814231391488544636104103775090544236849113945054872594052107030304878459551845860418207833624117348813036707374517984715779093669288066413760999483023340548719899813515092401337859630452824726426663824414306497821638155077549577940369402391948000968169602086532467895449235007949312975480897641929454512402922458269842574840519260511008207688951256732872886389197719827027586535189725234322645678268798186487319299551813686328141644233430488094435564709369000457358168444627658721321426478062940584743893073841836097061243687388993138042850430117695706265034291196066777697149551319297024817230116178129542694813053184526806301922045893203325799511951879037106238880422433386642801429358484644851384223848743935517198686660638586852069080644012418996375313585341983426317900378384258072077443804969377726207462617924020649690820357059688384424850548472735400929627714795958244794426193478742701206678683653871486153327756333860982600554613017582903028026999897974015284663464984189913646028894398294407568212138233735858353386697665677371797576737327114428041194215915627937910880485193810996905262980224836583721831727431931984460006402359043356166691367894675704300469408571203648537043752066227954966651301411944406772756597981415212175491268840815362689849698118669950047867576259516687868697032841595246133712749794601289489756031286475023337244521827190633592127997956313425937875998701287690436015353058573347018096809556199515657395488800381195141918029452926429050992499949036491452027728098499582003044081589482381662603803172951621144307445200826710425009899935774899962370803116059136697960026758210128663359923444035383066178762929923736039284047324853688794940908398960658240806504646612434099057745647805064382769404740164348624919865388140622310786354673699394006115418315252969986454263144941074204161210313714430330281992194768666823090554078420217533212513105788689654200388176774634349952815391403278655642443265706477521342991872196219367914982021733133591765658582114909331361865298875689826013239508615614265784096376669606412298660225102593363031922674263102375601904360059388811058063574886630569949249392613797136652338266418222526673609650789139035681936893738390523429419720942634520179808801047727333601613807754489060036371157044261994309135529839614937351002433051707788562859486005617496142019286935265374581466438319271257835300088708622086422307441671716504173382913592468179599394938166388399923846136648824902053044860749119643045181579547776150437552423755253399546763952053227489516605451867527087449561284107860226692409892568666119014817323524886807911037345938322091257518359483702274035839746849124886327466659221980807547060257097503740963367535252728246992937102893702229376470299860875634124341150269252018072264726067498655580781997607511776208880459965229989118705789188643759086813473376570621550893066267178549819426329566406231820880979917424032998007987469996918555246426847357054110495183918223987940329934807863968230725075874858146345931903298287776106290718252466717236656812353067269464546659584076800593699859491384784723917964012675329611353155092269717956824099039066757439798977845966862242826361056621530241270506973452059419008254860977787550364132856777695034771512139521207794005445736308621338407469870632031953296188104243018450859205457958883403456623565973166068199600316028006534506528695493441086668387895130581762773537620906493850521211461113549610070102538141288848364533499887724829985116282893757619536472503594969982132625662371783757054934190059598016831123585791269192488118362263771235850944688812290076412304510473798711817770855539568629634030750287086686943588596560499925992657981588297979156700288881635981559280174221296341670737268785200389937406804560002084742588537070438372676678430789182453460974138462725730000030570876740368116029492260740663814945967829616239120682417629430627185765099443943891190553328344527154024437461609689870657723226353114904827844033096712531366520182835542540809228059955320017695296352379786631418853100752321408867422504436341809507238795194493885080535714230103302609855770132157353438721766705774321961565132243787583898877584862310895225451882464154856932798569249401647512702353049637644771199792813812205055745264177081999489616714475999415467453346462246426899494905918408269528683575118736294520386165580081857627461244081839572803804009548299882452045718171888496571947851645631302137217846749974306546506997541658320515414069386269951310823639985916028583839183415942234419268139817163826871531389148088065642216747525356324352141275398739981467588500205052117222129341332981754609292692514749070098483053630745669588272474180235440052707638052749623042249154850507766955456178232435985674610969434750833959597933038286596440774370806481335645961605395621996439685636268539945299006936796233151947532570152331311505943529593435964085261052760161700480933346295730476137730735412482163979343088366788400554617990854385039307345032236820920705647533536542304963760328394424430713246505278382886957775251751241160580513477912854115670143855213787219452788475874667658016955832754087575684866668856047037941320926645926298151972134397791504194759169923813154801181845567124326740377253646817623516558616735131721309291562924425254059821342052385276125954826843095206656287768629480467200054637645701568432481941834652436563089534977677737142337908259791174626937417188333465986371140446820208527210205620648521424530629045977007389387573362405894803792136460162067188656758941691156850223789518488434604074956025675049722975008325948194081825373778600551022671702699249465824368726821387360476561384126269638118603449467749710583567787548910944736708546498964783538330523514244664737877515022758349782307655505827197914535780280748558846681952210572079478671735657345816139056119423278877767738082257565993374023665714226060242313213058636410217037001042035474543945379573471699970075151680057565825226015796913613435185352050574882293615643250309190423944509430228595367590457543862868420435524959491555979715398649565658865375981949901412162985293302560768651501542444702862855792287941289711826024118361421250561677038504687934952401691508013279346028772249443604301019518666532074177156822228878267712951068263170410047751922206501242603592655841396571268252556335746768679064263929900231522517782794187425726712555522679871418812526776970852894071232395745458272770654069397548126095465903977148299610338400201553576236588589558797940045374425711855377127730629246633518948376439723455372801709906747198069500668947630257243436264604459955034390409332991421990187716465054427016614474298741556500427045905022298710716919844284849924664687301163864390491338109045521279777644222659999745313769730502269878462879644885416482173309556330625923927456948022482702459702155698893092093879996630112845845645807442875449373577227378763066768301759290089429853718139618624807239740571356588900955215195183577875126509837150521221023925807857352696716147363277294322359422469219290195270906963352259929135890151992543829442678501475330307151171628085389387289899802024147182923901192606359289447122303554294417350431669333954534133223770585953181955822470250114852293364496174502385091162235241282591699040504419003980648258137042894390979170764433491086423167377798114291822938600786934425618443708350703941031071791167992450900521531729482390621063848961331666196342746346226189194695241448171812500608107098643088528008212074278638735346411593846114424018551251862029357996397407280083700298771623492419690683273215916130894942636613951301372868083248539458322432064497927448336458523242215700295140228694941752790885617088016292553118110054248037924150158427910399008317599186425991946074050884292778510713972031200449157109714966638477012403426559692905689043473667807878679008490506825518074745709457520828583158388415018225450912002556331462371940704038272824731451726916201995663252659669565371838113358618212001729743966785977516252973398066193443641667529959511898928886935444050855387142594905970745800890025867178611574966499129355883600419857096467607272667086468278841150714643199113852855567731719138617427229361506676674211592039143760675373302505098132077855735888489041878451041170823816958504520403566247393235390184714703778889548789050844525884907112001273417838772718144152490698503708583395076668857773445902135218001255101304444191495903628558468153463233255338151065685622782226204597615566719357871607068028898561325364205943890316481066251326150996359725342167913981885963617033777994657824152530401322994916807790013335564214130179555811537885480834161977426711334782462136336656279544703205105786266022319359778601640303986074211887263807821124911676726533513351042071908825069692367286654553283144440290125249705412576172760305238615768180847874806751524552364628644099360059147830978890873232457234152508603163714670230882910658868915229869280517572896390124743650508202171870328326409637729855929357824703079291538719905200009077652306552590987180826517719568338173151518940430870632096671960642108377569184907168316057442519169508243607538980108595831404570955053107760266018208462597264878149431697728961360765478943363628277308159195781481626524343506015394159562937776393699685270288647397334691611156618106833228332399337599965817176395713301607198027667854994422240430156664890430552892182175634147095070582224778994648204621964328184472608916854868498160708478995478928343934469736107746846995140877503123681935720263277552278922261570022728259421814866802180008802016249628000262315374632825681795282887783397298317904709212571850696901198165225780789759403303212430241004687836366181123513405631007278394879359512094334891764197067975402941725253411762651549552977332248062790886961300136706359220062736129131588800628783025632563009737626432567548875094964589468570955190547367765707652148418317973532691388526720917562664928144230367627597393367569690940500707295776713431927562183048719989382865628075332147949745257500089629837881154041889727433212258605203363043445666019084599449083865389195116837990899888697099845329189890960190173398594142651709789370897990295417627759629754116573793726187043946900884878995203481824274118678598229163795468291212337144633789321495200456610589084878045295591917699950102537012432244931852100693188638211185752653441594899540979351482715218692652523894410299964920258742187772200221225171117293607458857708581846779765300443878192307135973579106069577172804384761473333314229398533479521496108504113386321461306257355154512101956160643791910186630824214062108629465471955788113469865458506887823476436927956108212686987479934297982542414223130530764903606250671038522439312454188421637253552237759745549162946721511084711958727255866833025218193740474111887468024478779615314000046458036119490656507813921573985457419736382671491894201971214696476242633147905088004002538451635852904106650183558991924593102130642558137007676885938955193211218425694668365605009353046588086264469368102642860785008263338635904072311900326943266607065402898192580711721131457211597195106385491251335128639352252851177328184507795440452661470791227984483175274653599227307935001910701430572698516928195849180571822380689933902576721191514760170953240498823792213705482266974641992654206633220801331999174843256303803181136300724359594821987050443527916020854635619328750889256933463802095106940428329617320450319562841253857647743899701535617179427379110048404168356263939322012754001012011236112817974437084341053629660525297572521706986538138743726880429607766618879578511323007442894917234930464280390098053417226233588658049868754726839554602463543731603045635768886858339944171066913612710100467524195198546873445907057664716524603332250121526164174445345545116487694896481343335642725418138719956568275206774429390213468837798288543561414389026460591690807263395099539702182963871413314257435723798080566528157106132148499921850046621125941750468078915820606921387172850933640373843191373662693001886511250265368065415503855523283138195000048365229741733330784349075853338696008898192772176359818913116156728625198049360066902519187431501809094152387395133886853352024576009217345011100967257692095620862066972709559418713384078039108754163881841645843490411092600058296476145872745828865493320288388672945169067667300686820352141135510079357469118381497129145604711225363920079978471236332929630988035773850308769586448709471527844115238776708493736692819503334026013817618068436735903073142018899572840270706366687542287093212918944451606085533044036316363935603543127789181693747152426120415009042158827323136738949564616899343561882743896247187208239076638523807584417872647282080579759788156275503527033973003611683773304584579433386527617945367394782976971507225610866089747695782326418622717738860874600174085711513745899478796863186311199628723617298083689530625316366360104800967843071228900143681756795127354914576747490839738541420169671920249600109796818985980694574208730930725018434637377718997056274384151993913169100588589205910544641165198284044622859639867903651165667015549075201497311489341702052903719510618333499342376489452709318535095282190644211982600950525215564281541399037837796502823274769801874861875668657059546869447749651972687776936142822105418228238774187998394131028346190244820084428717284275904287402913139923096181883593714252219467818654485658111092622145569093985106785830269407427954809454937870304334940318859928169766074746411737951195647691950307276952018240467730432547748222669532805809750232376803949396372360759919671308212700926077328750639519556075577731561870696000352855666420254044085987506763150044613160842570190114517321342998352713426122552483466209305508917912503666989582653985572325130538241907261899732125392708407457094713600099735488291254822688019909993841572265763191743601429553108482290441538123385476716439303136421242025264122806360295083168250733905802744709244887375709186057637129172197219561834280283547777631551897919465274710838168904986094453392102153666056178481295634091131572344240491885802056819455604334913218714347539030188354793223136980904765517234985957067765076053292766875613336859294813496971309285834856507539121927216059868967266562100286701703547606684048866019525084845575240097656500114279898068349489869928584793072208738998543747119291109753046153386361113994485429335101924535759712780618652400519769044530466126719298559581253831554365358490697940790906677837683309656001425922343598676534698845347659713915577049914283024256454964618058537931923305054300414241693814844402727274282083697475630615054609816943574169593890641629781932919434319094734001466964227416554416100584534161157993235197375890277623565266099351106952959722350091234090371169805800884237256170511617813378535991550544585207730222302361369464663399009776526946778073336513535533865005427380211914541583257955698358409729245425616096589625844209536014969599155336151255270438117612328589524046388599340555977516995732020809970899687849981809653149410813718490224120572753339151841311609626856815478016392693328510124141707779692346076340870602360675627720733981597975122246828348460717537607507890052660968220484897490800403596346991056816298824626516220353332693781116630308226316452585348708471871556171103705817268786984310793677725645159795790768179822086182260279413982871597051154843787088941303750067004162917429888947762221193452596598707433792280938818144070223501635877467263420863943803920569770963171673123585335759073877964337672727975663012637096170310978299114230038968497451872397004565192483210352913379457246971571204064081035159671377884805582545666878823422873949360638488785008337975309240327861941338314401718298528474882551145149969476847866538938041509290432280453751962642317342890824353937254255517707673740540271652041269594334263474635141185104700640668284724293698109300560084523293870787702633517746598852821838977519072912796267782402335673274182101539667995875291650885239802259193628494125881190181464642050753247533613609975170154409066347324358893418892100489013374913623385702155773118795756573770740682898323079664220042203255200139480941096358984980321110503426633216993325435505935126936351557560390446069379989965516560996125832396344338778651767094346423556031890938327283499693100145197419259098930288371326105037061684549165905803852902389208379173762629373451587691641461433075681114216293635222852980717527159340049234513252347027029866562770399505800503553889226151090183026298290277659402308073103565023140519138693227745749851970326735042532065712239002595005946875546244091587904913281661199597680575935165944688881508544050142954195423262971941002827765024977477155267923788040546821649237330764864573173945834466803535541102611046662392640986573990495154376881644876386494070113648720731585064485654436306059701670686012542371648405746075408347321604370203216343714748418980924058246845892694026860117887263283683009738003896408376672557498286823362365117968830924000727888277712019943306951962429480918450384130185103627763299925903732260990059723185294538340903986836563659253384594880557126690920901192615285081714062894641865108623870346225366984713583866693463319907255979732492377830432256908806272376743889918900834881116291749451463213769193368966549136839733147518741021158845671145700187591651048563867841018847410261154847499958129292468731328733430077019383171796951838359121673609163354864336786604294084567436235115365350709237738930511943609580977311915532764762622427876793018195922143079876977384132689760941414330205245372266580651079475773693237330201772528292825769245874489038307748692229861775320115484318839278532720250815003516354804366734361222707688133849671911895995296328033392937086422980548561273591197732618543857564179758869882286598752712405657772268719315183363381945079367944062499207803417038846943929343883176771630505669305249383946021774513279631879623140357748583624655447024567264378116435347285216387714591271340615509620869965909315088505321970053196642942019049251918281339582889254262927674164195744926220768367519664022546336014734425830457672780496349450427852348814571597618459015635619675481282139285040380515686774584866371973839292336529203830692387260128811871209552302220355976161985862948858093580736240983108607303081568880648322905030194383892217130845285300939276375002792105589163442798407515078843748066448751676830296686443858338739920142515887136236365356216017550070410495063027483727574371107780839646446327813244020604565122126540201503870510204875869817158947286629648230561681524579351463578340556466147328579872111390760698978804322260803730517283153804864629173392746476524724477641613949343165222584809859856190713964207031180506636028588606097767786489990059925592953249677210423266845376044803368915750960417687142538433853729256351862648348207509727949830457726828812756131900936256540131047913389475566470950266040794065077207363266546157850507087006523894388440661779538733967094639432012921337845972557045130786658367019692333810491830202916912826663220932202083536762014789472873926479783517868922113943790584723067669329181404722164559771272723983972561915247811188964423456663980281355290488388380040127753277974545642567010950852332231744365787138124220790575981557199563769584941976407713823515171819003478502928256597708088899460795895371630593170758012108376778707883392194407349382268140406312085501601360466498759673648189772369613490470539055200596748694380092818837869196465099406594606991981820549824681614724567605685567406486752478076745496141070027717470654056373326315798404931661392036681510851435183187688106485815338022411526119472468848605499580613831546124665135109685352742579057810724404351693417791994538732296592674805870407998403171909397597832766774398335640684356174446619033580705670344496465223888761206200225030052619808668986885843268991226501006187831496830456725349951858974149757302138847136906868311681687885205709693509472451370931888695740358417430866869770761607710137587496489939842267409296569656319434768584061519167642617023427597993719309296451755990769117151876801172897281589021494262689828024962097914397582787054426445223408421368274274764759279534626019424513253638668887636149529474375566284786959976979406142632657918452565641977713562174668779088240458960893330272909803793487210680939096223849782776049281515963456570809123582404733199718943403780478007357876422837278096076715815256773849100039054267729503814806330731904186693894110443747073866477032147320359776854275030996914505154942051616750334360956552089687663863896833237523478624938850499009566743753467546425460100772037824752936367932286377871922466032065037559857150902835783765878013576784334648552996163712094262723397388778816478629942768102487703928700577530419314207042250314633323995312831399781732066858244602657740554785381859630294351138465015590396740599701769175894514357011624572017637592425745137325287726433828091076786092586011684799313171343545063780354449662875716248031946676711965805269843420056101221379996972031518531956744988912774768825349809725874112839385426858565127117639702422934628849343492515368418516214082742021762760871427684701619021087005926819346682158460849373937443275115506171902867658345163909328304343910555405472183605453861785093949753987060803749574538475372939400455541184042980890815857685331770320416092019693228238441037233512687600222109777092296713795779742034479380970300700931213693912116955170733157509001958069001955278848556749451704949586032616631595751951884795344608590187023224655617782058534043421432465708772387677319436215390087870352234331079764129307207034655019740371833199740631408947399757851213492062510456769084700984350723490882290425972931533360304434122456269475339195310437950683490726122987673183897104458710046353477142031334700324484782689282879347898582085089753000034054231480313233486922879213740552204578922535832941863435179989065986458421408506658639683454899544052287044047920175703686701992530979737936096960613844310605468254471754345903206310242701191848061654474235822588405656419505853609641358704815837193379608935056884223969218778285652453196168012936915690129488432479142293656823730968907107819229054481739356111663518859775570104351946990261285557293694009818447526339281385175421150686508256120440760993481541122338059018330077988766238582702315978400465486102226021625625487559639740406069355751309360493895384899452202551348491378438453290925057169971104456964723674117683323657612592822796435762366940358914941813086695719183318799697197679160777339794812496007126624238737282032858580020185381533028811702915146863192074855487698239651566241255392065139080467072079592283505178696484217960865519065056561032025472352199956894429397311725571671398295992588670727264144729811045634616720426566492367288137549875704124370075422475392193915511226049729881547787297985471532941096829574642240180815752437933739509215299767781175901569661107494522554143120433873610673351461058568976593716866970950725177691586820757279687172331191118574702961247155308207300576479812823167316123109437558582984122695201113508122892493147178183351781225081515194740435974657418621136318778295742654422480202044161609278250665844108379040383539451354379306378263168836101086375507432211218697629477302370284724111678387702251896286915489841814568968209010542805614954177565029064443484287940814699651394450189745357658136398999181357248335498401393352067186272880378979216309922600810110786209455393150239458088752126539326323691739510907760502825147541712434045603935224374061377309019241059133360157523929128827924768152893741620389962697571163948237205157789754552746777968057579771761024836004475717960488033650625801899360472167506434145983490527180917633531445282733777754967302664260900235623503704856344186342682024881642103491607482533453060137483055587761540863963930705245176540038892716891145176633553985317158762805675930689589229176713424714730847681277278375339033144029792324866907845292649722233389100597686958211202035929638080664158266960318600504431838983210948657085437622237731134495719494590313504046309015888841156309063561346975976791222075437506981431852946753410870042164674978820070272777556970451182180642894040309106971120119255786257771631029201159782645164147162504591340785413110031033046406355480963830256777237081534064940154513675891833812018086318037032549225727193455404135477399931921243092089200506162839079402137175340509652623397935032181398170196062753704975181708285817703913463424417731396470585046092265628612680774456081142949407297688967087876964092089669855307853036201479348413912645437893422166132906968130978873581956272105002450925644411163377584901932890877231783419176592078293093117694979897353582558180817662125802609497694240731285834823216258593765839668598716344887447554748888352148571939978224362859473664983971145231937282412138466998200463614176398243938494899441087826185410384566649430959210356621487000246682216116120723783783838520773320405736661596926545081550701483977248183821280058637283916228143785485993145568863853493954391912371372778509953705303903512957740651740584748700295696112822216881759841336716725464028174506324058049271514115420399561927840266141870819069472009741447684694980965037146608462206463429138155367654744330201513303390920087539708577221197960900290350100835715817511238130394116850014055202703015087655324972595873705313577549099273451063728894919410566025603827247242231656676907322205969381340546066145665526723259433166029929018704245647523286693428045014839635348759461299919564362460230009191483635062124105029165145758767629381723719019006694129210481951011086906473555228816243289151735009819753558177838021222559898983710046272395045894179709791805815939209442789753901587293005219427005066983578902717551175886056541189523924762601048357658614561528267137839643850610719862989429722163019141309844348582684671917833218632437033811850708206638495164427930723787895820673122214656656607724946727611339833171748035740744104488226594508714457638379753900158235689396445130474602146058217797001566673880223146822690488635807540799454788482146528382176006544990631993099959151915343466744009741503291369559686910124397701944600002762367016059501503381781573465538832479968997988298757707973729178814766778643806335533094764143933568990637927536307087312931669416904663471665096538284298021959322893265286904619132798616321485643025753189703504083328032580110740566764598064625964607094857293913294679920299741658190419251149765611320158048677269716913677597938833421802718717636222379248252591849073704760498456202018693314372145926947636484819567891462220987687336024153556485736331752277231169772253143330222617707855106770320228798704601658944453107091182014023861690034320267198091848805670423259982354583221043230504923783923081419472540393026466213499933530086754822199654129584956053748303858218236133043864857487711455172126042365458710984458144053425303342251691722210320177575292518589880562027647957887698544910575424298370492371696615745099093172786785313887061217042660042415322961428243136976662118335400741987904201248947168361496757145147575916345060474285804804257042059223628385965648929859338154572171742061247325085287142120429162413731431786245287628992577661646904490798172105727822644819840289342114087186711748560360683503021052915193177262346957478469309453218341397487673853940245304374155018284117371438985352462077166407743772872305519641923982399621218399781191510466314948109173737815962789242436392562023789800928571092238633953859416382913281317998311311545982737819225909988150121085848704655916178987959193048102302365497789834786057539632830270481594106629350428119252631902491922766489253601491027219682210321469004598295137714971780949431715912153394804321385237651661089159663895301524924435038546229395331872769904172106634719475385330322823306299127406989030847659216106827540114762786181220090213685377454040026136009486525040445834279061531872439580459453420892669777581023465105939304693620959402011309204374899438787854013508704385490715510393286092501634544998849290841018985603916860442162973667704744600251875894215488192255783485838911135749874841565166630810268478811043531368328500783811543910945241127536775416312388482069115752341956813708501536098447291587419573872523696242438331185167571429524312504064872090699900399959638618786624472411829492703041308527355056995518400268171860049384170417956016005238543882222809186178629946952362185889911864551864672495205042642361242019334139196020206648938050578779694220247508366606102048478785049768965896205498377180408221715246891230982073630577784523402770245451010373069550048997134113386386990300963002350670089064311372624472096659223891159683698634123386522965628113405050380042496569665867738985975797567054378842126361173313689813502362564039055648581431620512450555436108269560903530314133264373771405370846588670882127038960129351467449496583024665312230067967773879971367620622466526207160992016019521627342894322271264168430944613201926838326505145563472930273639754703392450480962027578960289927151833601544797387325158234002079451202108073837088351298920049536015806297862194130992393373263046457411570280971690460445801597005954878312803699307541446928684767720339444565642485801295594516493138836196452807445202730507039166731914775666683549105580019754716738695320378640822368972819787669047332038772265913836210824893329933553026704647935033129570358215646480935451675575541067345341504917785869664790281200845645287566746079362342691527197038795947146650881048146942105486581260492266313013179708385931905208957549685128820180774594869227356783392598241828447734426442206132238847406084833936996989159482434810005208948925718703622166039024406012040426577366416186877829435195393170262730647925438362230473348076090979881795529785464070258794827936062010530098581961022810487123352624795746159876249175738881087862107722442886030789988761681704479202549047168856961610048994178492633310394134131965677660891642198299686014605616367182819499524938533417287257487177985666646224153191143178643159732002513056300015571452026138642319850212019943451990325180566718946330578714869424519707945749195989997989492155690419430821827181282658006333680336470555150895640437151524348163960693395986359487280639160374385636171717652206030911881602070906463709642396559851944977543236240405000129047484137977913205512532903924516113230480811464539093099153804521509774550063009794657848658658495194663217407361971511285189083159400256232602892785181371977428207314720816952953388446498586968933133471233702633941348221072789605567895123319626415268584559649380574007304436354359045736511520715226637340381252342253154582324882231955491756238190367837483025046415362250018518388915551531282896677652106206013429896577758876626529857893070582307001291388619863751390239098464988191962515363616671957234646863950206814383196303432558051931633383570325559737451865766374038271798609454519514629903228544805191524228859783622807767068021402340930437536732964870717473911980409092599928064557144226562564337444950119461772405944478873682087266796794177328882088619097248299641952486237318770663297837176436654724277683557469505948836155527057763384350827599095242422732508171219495920244632314979250824838189167209991149131985530745253578501258968133094112145517128195840666507512882572931872333768849018811602670295993800339531496467634052868932890584409509832318129918531926635281635559391150460121415322737243117370889952235018685942770222965856152421832472450640261918541255390633231418627061611799466672580020196649362748311470622473705035832854170729637391093278580336587012745793763960322185596924255106578478910014230072087389861807622855822292967326359071326147182510572124588268148500615093861254744468480462084404013268018335248292137064908279914755240296756318876655029706619429932847725124986762916853203234449279525813439224061558775619675261914287583799388965559815954744016064989305267258786397288167054849919619682551939420631306133680142719319101104302216084761703321363778624630333686531716787445998125652349770728599619145760317153032211474510438359081109148925745571388514806176839865133735154880320628278221558476495353119018633960619208902933411634872975993394551914319469879187726017748440578077027130894339924236437145200598069398042536003365165926933651380888628920616813995277356827792357688836541707758887367810594597003769113299938240791055131335479545104931122534155470730484084916778046606867525339738141912138889451201114251933921675223866905332764586973250910024263081838167098515690789179407009723506871722712202600964227844112456370241886801995783789888343672168619472869886896307035300897245446312341928654842372677180014946695319652288591415094748529357330787929459817366463091189061143115635383486784689688843112848087377851553477450823602709735651673026569531029108784484123065195683567367691240936706031427945536297219170690501486530340058865856182654666098076193047157524406690755822765988285149789050666693261564738331825083816501387357716678514642700381377778626515473676746351506296424728863154969638209197349282161860431919036934247425908476094649004581528620557085537343433357288692665236183011600059215697998651686967010047434188380212508357509181359150941666512873988259784685230668249006169265719035233623813741967312376489027070843094815239139172098893459348804968639978143793797734873466930063728855239259478169600033374164777233337256656881182071880995026482140828084977093560545558628347297364708567066923288466244675390993459809898490767317859920495839471508393183215989143002377597335434038746635514908033576706834162525204737631146383884985509000589204941217553047833938214363795204934315634899453091098451359760008331209110533238115240756014613458633308852613978607026328445881213752791427042737541264989660410390421699503253376426609372816026285259965402409109662262805760267365109545356407297217213614160473346209691869358178445817130291517754796223190122011614518034378625434628641690114205996917027287002132918552127395691127770874768504898761797790176682075798417568238491758368724220054593061739676104914917919046757260512914957955673457837754257022165897987322671870930610976149672176619597805777161395513838590221752869279763624915270489826066677014137054878139850704684442947765326271278450218768166995285936529231180314796810743835594276863728520606710171795397683628555536300508077037748952547410091890921495055012569695051641778242347655728875088744076352807284380227576790304541618509156485667891590702151027358344824842981802741237510730981918406708522263743482871613904978831477659100536678826403853320676666771262967662126372030141110699794945796698308976194211036639467568805703139823807961970831683482417305460600167820027281737180520722278538771374025499261877282523235460473126751565330854815251937635572203485499546600435556408421161901690657715820236726006684276283242546136178788702284285730251329052185865541327924804033797788825086884024894890274553973302961845755745682268767073981826339937068838290513645504019072134255232334587598511282401027883683376571307830034949668151745865064559705145535490753026522855310450580868072599629989007841233694549438470340839466153377392006931213320744894242885038759187484631292561898999157579158383519579634232897563694779799725922984116758092501097393810982385422647887076280184844171713591620982804047417011348611337390743591857298261899219845496734909547886498295266758841295564639802479898015242022758362542734502710697170820455009673268566084716206600171708648175729773110158862083015582231176118401611761496463591298031412970791907482225734841494030017091625208886805089040314430570773311804333332899737342796463121176599624474602490273476262033130024563966888602689821747173074345848373674725130055384400824842514018978431663767533563986036749619461419602359686817629566263278348045348322555250921652108631104992918876513705361807628268976429927206005742018326773916872695431007475420423861386918341895276357306088481408371778036731117521891120646161448618406566815491904929215465679281616346195252534621860743465455005017309793376163572098673550878065337040379070141366258715097631857803062870968088272251337038516743751439231108785399279002821052509909563396674997953620221414141098296988973542895682382450445252585002197899541374825895265903055346805138718816095906288085816755724105634251187465069924679670591665815636978238626984351421026363587966997226218828131395494402185932364016170731330738637357017531788907099215471830850561710281939130711706409110879103178977623198846571017731099648267247233377210796610146121858945837580347907882780588711076884781032042598612888525997324515918856601082713502540962656520004157513015364205548837430555285182376662015339112917322199161059286738095302178888813550335459892263028554305921105663262371336965157004683664610478759638934767153723130657341543898956584199561550944975181374376076759559258205214438387547846470220172250459444093634088442930170638463967037178197530517620689465491284531380279167625151281054412651651182042260997946053199446634107075918069779488973960136462005095712891402539066625867646448709254215145166730828920205213838580737832944488504316907458594506731530873456732045942376544763651635271105686621271417585150142734450795581760599251685918905486728552860559094792264134637538191186182864067947560334923171678809504757009234827018319392967789839980458119449104311414892754568288396751315989564260429788284033225739342602725451717122912866732587252328079567864781880848277307541777058798264658563556862595895149017088641565323529787555252708997259028577335824000962005049403316353268581550064383259383290511667310185207520443935228603097548393397732313260782641393060189735842555247274220147944520572348197037623612080838952661718142660808703888030903597522985091601632388167198998482454084436895321045603788733888397720954669837811629714971045658940458970494133833841154133375492583885563020438550361041607793495418825672504047984984572937864806600776262918636105944740432304634346867230473497178626253395303953878489677281136203661172045547308552710050385522750449764730500945626390895642955216762542831955250286930751330953581756930967468502532428127981089985851140059426703516998181094020193401043386718446679684539398320269659949632652176364385217846728885002322502803528583810597502073618373677517993651726389456014680873422635062977826275235059691207769337181822341560888032573953343912874985912263338253743779283464203477655292389311650147381282062386470992869846852878391154841057781895486332777910319501156054483140283358038774592740430318598663774078826093710009932279868319776012683127609477640938985726937604832894786088983684844779904718601517216860587027378806465930747809265278032157878792958765847315416735913908830040178993116166522032736151545447927465729623830756956976684428011850959851182015461925306982227539882778783612802313605559949214716911195834448380462201332082034735679790191059863804494131149208525158973890931583705298127193254588755448911542100863442989439933700525241589040514192262326947174496894677362735967985476635282389367189298804437445492869761469038176674519045770799982774473034567106230639454640143427967357190545626909953860348189288630060536220825369048127603070837481831310398541217106211918866856810968755643545302818684059779887959527803049803471118345703614659424852325797475735337634002070410091889760734536536527608845077381455762204626816120847519675032729354179548254484704011030061041796833602549185433248298130208543609998347040205393067096753668948521943013559270441997273087257437990636355170162528981364697205425895749359181079881253887144708873034198896861414813991581085398504275347724028803677295498676517729037856772370349049899298885084199647467133201247548361163990672225442195742929712104525050618507501425378999289757273104204294946611740574234825379397198722318786671687945360157995359215860794239773500702507526496479490802967922260699583696380099568945885448983419586893676952764978500996545569507854067489351771151803098728638253324156271028802432321037257530025480192624243427558577824656227622954421623646476720934298099636842574139621508421680862136984471051855281897610461438034482021493056118968072224093885813426068194760718486557549133099503288478766395306978139607817782793873022078827691514749360048454949857399338415071707917769863567437322564840187185527886641369701537897049891491381431769076935348944892631147849814687582381169081055467593056242186458636085355328421929055945822990153064881160333922349646404606661888595584159875889188345292526470092049365641621814227495223504777409352890377861570942763862048637830140900449457475837145860653329330105676152058097476703131727999564104254544179930057712036013811518066071534189739721854521917554330262538875235428452981739510718430271766584589133010933168091457904134298439606906585793610664077902297201521341650467357989953224858151824271181170708024486572741270515291311849998034518282858803285429711401713919985451798125550636672394642821486743105699099848373351058022235951317791537367813561753306777336612618153891088666081203351562121037621425253998417150288665220874249330895791238474734836990790225507128303650594019114192840575724831470424209148374600855415674374270168703447661005059209591424917334529825762807952282478653714266774724911273665037368268938085335456127742655164154935064646926857382777150563093406363364937854572237318592573011404967960209800940642232485076039017134664637990559241320864351552205927759086092618620218216775992314756737949667250756262584617240187324482227771006203842176135507197365049566296265030425229942206874849228098605332896079918540462107937864328624070379760068423827404583192407874427511303370064209352667266250516264235364237694476765256447163466902132643755058563445310070127153420031962729358271517524516838890640034122954881082134014868306153914874481257522143014878594781418219384467422787456107254284701809591725986960645958748332045397650589980218834959958035110141725006620185248595921343257112479155197072686387327009422141430952107173653962224250632106488098738499136982198586004152719377342724866038770201835368957999388559932307491752071197085684965859638042493637021037100000315268693415260353307020905430638139491478967957465897312077213886443733592397569428970160932213615459070283445693708708264770598370639383399077622624073058918999299018849698941122653727526255458686724458185452973236958481480989020876790993972532983467319730385129605624262756768655834758459182238592539848413386761413531074842271370087992442878032818602549107501826210452301188296203442907639286860173127780564637576118759775482311476644518558370418462482562068463055482288529254575513536042903090001529245528062518059187741870137632267404760895070077274377695251499517881570449799019957015150520102489818306850619470542658508151414401983710933880707151111966344187381710813247431468208141074822603242772903292409536376027972451347804541106160013360833933807578834714334305725067736504591781180019958688822882678323892914423527292136817208461614841055761968856905130043581201322970586629801151905311356721811487961395658036768223252982520380812473307476170714788700409370749475293976582259286282379039534876563912059089439217673060450946178812672760081444349575149036158528419989824213652160401282694956546468397633168703338992459092662471535688863097523435092376070646165474909724746150291436624163729560123501896277101910118745828613927121273205446693510352365248105342625841442420964527382688693732889868333989174188910071400333188554660597412736397125727403827575576041883457175725448762755925977691904761409632831308446967087093106377854748117538638877068356726831383891794303600635709356304699533593964813969156329454448564844600787554371059040293394152512558399046496974250166046406664273617323427441070441511559773845442098441714294820302987465062277736614502607420451997935685726711169772372213362891573302929699938352202457064370433646361649860779050204649168006817802724412689516254347009696708812080755563771448097836410615200094946237579314903794940715638150552844144433015442142171245521702512574168426098334373068038563929978934569410554807875511769227353265880434410986313186293159275178926777337903148269071436437403481022225590973561840744177873102440592317569699428532489515216397701713538061378212418888799865670920079967241778439758558413541945437430266317945243609229956549967671306848931211935649192211938251562854904431407400758595783730148205929202420531022707932915873096660482453941908730312205456073963719314993834577296820140115272208634247502138230228204973670689981184439787267393072698326640117005589710109873314271351305817063014169327023576332462163265515582391551839142262086268671382568648590673541824057444860080803189593179457274385150756695377504651688738107394921525018188064912680342414792422669110271840152660157430385287769006413215889479156211530622314664968247002656253952228154329220477730291469417508029440262120613764194111852946947409862686027599882503564735854797944018924433638067160402360458933160043157815131073331397676491699527964231950112859866372926719005400770668639773786589922548133929502069383329658546400431354499659852604116639613588600282676990110857833655202901019885728434899504822558397676085000048861969070730746560100050226840182162777301612441415794633189929997239333732385482608137442124231143241337049393666490525950417360284636647326640733795517961200175501702437818137924611231126239092777152706171668368808864519936010585586331481276602022572543983747504123853998532179286983879195754711613628739463626056065649884351616132998561027859998507268636492187559601655915221366595594760924992270917685355363567978082778978120737110435342890260689508415021771187521214802545953460048797663218261063553502910796912424569997502132085726626059432248364518038703811509878643800868619213721039937108896572392611270009515022811070742947374307520083208149739718839885513424231537879026240203908929163886828708316380344501685536891197453813487688714905744182888353323799132959071543356661244106146188488076808979804438878850597057059219136558743434425602045305125198549557495551796460633351748682042591118675148479434340738488641754767651407235618014546557037365814994505421045817431152634976359505598245052020694844455483374723849113189065827753982826371985961151121741771296928989577835767928685172049969908179557489860254118478487165004934056918997243382619999066673800566219340208270553330456152649153530993388929203108715751873164198189052087416934835804850000269189716108924885967401012945737281974447527348539986576382171989477838940825505604027299596570145926542554904006299385094269010371649808600362422070996906748287266536925915180684008726417111785921108608538444969789808767839780436933482063165312282005029017392733223081021485447570765407049158449300004695221243370924808413860960162225832777271312762558173773495067664436216816750110829196658711193258974037345349468136701048246560521540292243976479378694320490836333765046123281464765828046753323010272809961175419271225411452428416177952877294189563460214987381904233910070551631433191883039730447756878260855681028063757440943729721435115086762537714961730622464155094042928487478735567802726884272481973921789452637878829881995979634775044216793037963340712352378358940116623650112091378297473309906422547925402367408340278755978064421283347989935515089818361328769025296744153215417481169639404666137767331108158409334630965493795051164503544418593166466493222508612220929400190447980653191564320282624770024415876939383886197764287185114656860591278469800973288299410898628094709992988984543997618369110322492967368673945537355251556277836742700021984340906926455105155808831684074442878183882633098383356426948010097007450944924670154142171592344179634771552353987593111893912516617936781083824162653421114836418898821638022024655762508290323719576673599420626459607808472827380358907633716083905219807897539179172318705015368331818146914136935305307469365812471426984298933305434912139630362149454079854298437269202455906533259529385234175450043177220049275455891700392628710308925398720338132702887209953831066652912774435780684625919540130775539949997742248566424131168523901074122607504395663646636939139099113295977030701065998390443723903989371867622949093183253554641664304336988784475673392540167588802087155175659164647400411868750809698969146760843433211737439842866540958481628373583685199031344116155602487122072417678839461212072418683056946266703627245459942176215757705653410922764291072809991254147091205753349778452462691017289001880634031641460659376336508795048645570219717542693067439462618263108540065880313879578192784053434259065021323723470233344361467732343778016970168879441249528446955262804541628745979198416013970342361947783065264437498792770420335186857260039723825105295046157585756418245055679293018563575773667050155787236172107881637076809474868663766648518062668929609462268337865078374191620753731715876209081837694518641483400529225443438899535192016349989709836703028218292288111295047347014993863667860550203820010983362585261583830147804021533326508425192351577737109262265823755071007647636107362291253302222175372932138305619303752145368666293479970516915768092581507545842852698936745101795376303809182316641634458024332164581612863825185221787391903551975122623363379124510574521364097693968900257015406254035115627172143335642146959166687819080035979138560021854701988042659014678837978791409259326390042743277286945719699933456046301646852060262438597133896761711078891200456396662126293239400918764514722467117942636525098367135685162718582243848954116205558873935891525089102102437147647979665891321097805439806520367449948499104827874786998351387260688967954811072802378089907269402917652203555056603676959874665349057854985875768428129387426977357326438054500060486155455801422709566683809613490756150681873752310535334240147869801239826410874380741857497817560986197085992760978094111582187401493301535990010455960519869513994599015684933375895970827065892369432235511433702448790627508956732783131379867803766401061982344099374197904915006178064269039410254161116123420767380015810759976383381038658523149153446311594784837573900334595150854844340659908446124614159652030823317501907798519710893871086166779241616558645963510461220409009546920630271569614928419015251880927594943991915911619668455619378388539902001372407902018192832888972474617542783616023255161539905676046966599863166633934433032531640424692006228980117028525595825532320380311111032144761593493562265076480006490977941357595806898460019739497378719622623992384282068728192284361015166352023364320821412015722712829345796551917917544847879351677526596532524741410323078567042981173078597442523283031226824708281254422614961743952378012678945371075298632368321017129230599438951101916684485173199030049351991570220113045757371755926196791319646109651022786258871637832524079690114759428843570476512298831831550990095278511770373641244083668559187314298883055487317195908943248010839617693871283996911821446032831070257068484014682791472180437625725431452637492175065498025462169909277609019436967923681615750859284847400416687284169518011605870983619024745895524326825602431245213913979292127311915841710112285702364953047317195947482526142939518353015483838508154437963298011199134599829310275482075880520287641454707643894998504571933523572817221039645954912490202032862494993357604399660881688814927544287196038081678056944701646961047405784872651576018618533558891839600182060227623555687872978688430458929009355637260979800779911688651841423293260658679316155731596845395251453715638918826775549772435769986802215444860477244461208252557876994885636241525253545967571809673828679836951356451000469416290046145299760580752600939941268068357122400642340981693753525092150769137373534017954169663332587497707858039206460970689325317700113841793444622529201230615083527331869993420792692333745623244149672920090922445135335385929198697542989617209252599582411151030575610651131945785400569913419930714613465302799511196140668895571543232981675818677252260998753700535669370698121726730236134865363539598383389527951908559420484480793658261400365555306098446155105364749607173252820123730232043456340882992329516925970531552384536895967982030963639462942757955782635483824299242119117925741421381457322727306429260811453500627832905334147586821688618344497245116784882418302309352225380059832066662950956607074533433602552296300846077938124036814871344669578904223511273725623795501895432272254433799087426548659427105783052440177607851922663942057780659555058154024520264200850612523801414374045244932412858415891976983990035275816475188737213513696155705418841549629839343982988869152583877295372263767684413786121507450459432292310082653771811497089708170570583523788101827207514926525914776777971814750785872304350734216527370655085909044302247022111677124832082446682758728592211882155740465754257399492524794805294335791974866326245812910761149229376070426015577238714072439869433097763184751824840258585541196939611369053607619999143471302179239263768538971074142162907869349843017611286980649528076529192865337065033966269744665252237510092504217420362468346349747402276642426687355329205026278976575383802018659258406000459247842262176273170751636116484735867974008382557988271234448714969930264509282921673520328074150968583592973730434734786179237439711857351374664405028093492080823264903669125747860647757610375267905807808369021329990379525570887680325963609148441365608436656411079509510550294838712475246569531832631696132950063525901401267680402850495489981156692035250607739295129708876383549786512303688685299637391931202370639188701425295314621797778047805002163512287114690630513663068679305599372521156977394532129199200463945876244080606814341298340747993825860290169648217595168405839279614375557341476270083224822453543671425404945946870260620627614409992564403722631393767693301356619523385265724971044620915222705381688343403533538724939186776226403248745085557520264289802842563358468111435216833372992005089183877559426342325926543804920144410396131136442641992203727142326466098457181004306201024775747969193912801836260961102268774220568673007660228823027613185750069166451780191986779350579713305291706444177823627709145682081775113963125240444913638459765884333553045284312120371341540583485204628049117433267002916585836763659172821886530948851450831996163052311485950141931297846178231157936932037973013223219540208290893375627101819553365572855485820759835692220268518354827671614060714408881172108598180767260002198030170324281293655843853651619821677472156243953717868993641399191673302827971298775096672547645264295297982126709694246060880181743224867996656223906359362050771945412729155554715024257595031330415480321027779095127069609876659118050395484208109331487157266699790431924795902564967493194313688677383654593735908277908150580764667099236871579972035192240262238832114074920683119966363170998864800991479611692401268424026097060322110739027956116776797382770743648621203399156119733338128756399523454476856995190286597269846803089789023637584191804500387613003966315912567443981192545678669192222613230121258221276234307370098329133302068381456197330171893646944903166743719191052886106930653996295380988796876574786965021465765245021424499183408796769871215007835886073739878038699173914647306282356788804504087909262482198231503696296041456954102826720504594880284225481052025678762221949209971412110217893277405252139933577591090395082016907779499611915014162169374421552665506507029352879046313728115302017564526221514810151544468519970738617372380006553320631958597010540497070971093987512699032497114774106991951207071522200911391132270076722898324118568458529507558560407592001864454865108769870190197355347155645212113264826130276496207642520239570089581619393548359695395507510360788196076611423381769166441973818358076103221524351373385843141353832924811450792926660375318884186728339427013648039595472675098456398053505394319526042215477501646791738387092143734632409176482577975738949561293726382123206323341035377407272501027369887186106507851008112788676288141109760357923776252772386501163956504531293705121701031000502365401002677571946957990269143935727438381763258312533813550891407341913836262282925944073743130412373325214827834532872339709563538759126895487404076641220595993264088474269231403080191022287946472459439154719833584735300698389378005897658435103472573028027119204443514105684140384752402246836356757714109279593281864184585813580865797958844874145238220135577865552378259104995666944745064590707942582986679370306053583690522871891562567111671586868484854428054105346123039118417919594579348226701621243218795369554953630462619750098539808736897121048355895230437135246134818392478537338988487648176661087618308311653597287250651147152805741319656880972596394284136898699041596682563906258234116348440048822862233717789397778439569815321052102469184478173820261726269931220460720799890085141631275296988880345023613868258949857148936414854651786273798852005671944666871799060499216755162342028752069893403689402354523728228852207161063324555011273552539250323659287890981509402094693042574649813683628647437414578273562908186156368869681497426442978125134872856587044114257337213286951217326425295042135672383570638099728871424422738664544610550013780128641326977682361482124187758111734145034886306513654002744847571716129299215788922181725414612086818109891237710365185012493398501377873178238864926747370038672417190091978461786564982374711150524224077272888998561332479285092286722091959512344506078351143944121833989847701324042042867153488584649276427184785671699493135074320473611588962044604600483203941150235473555095567010439432193637076802424217575501713817341455254873636368520229466697290584951918917993764490764780710104625794462534137542782691689905879468940638776700574615450131038280502926221920152988259580654636066930512770580492159454934166480844505719140910966214075794074635958181480187546907721126622709567735527119301775873748215403040839871508331003697811698685217641431346714259609728023108459965007750208930970175752628543677045014307453977121352167265799310327970248715910267521918788331491288016648221799235314258847477617175790994315643601949454496925178694531570485658629335855324372918032841293170176014203168819008787342152464817209864979281389256245876396415181650980347217769998348168966503516792991612905148833402924483651895338633136108830893805569025514776112283737304858984089251669426362293025552133303738336012873805334348933597625540225711768473735327678378579978908873470573224634433193866945224250196165523204758881806989549410345309552166943796572712176315617910077029020683372288492740115852727565499722838386618057218548512067648440663677043482022474966898277505860072856614205605862317563274901601034078190004277676823621720471978595378918917542661753883569335354661695378133534340910494944516112814014937869841709296815198945377513105233632230030752387657382179307505455287829949829160449439198925062958195037653212241478744414055554151423693322008411064199601546332097126520741053471729164052220941123750179093102522696418023662999593555447076943270181006953846215116611836461174820488221037239827346380602842999348492427544725176223881480041628591145637941641815987573420035226037859840315288724775811676385728982968926909321833570511190644376423056428115865213552727381148703559289821965957920881349584111131607884734557335994887118719441052580984912072109378738485911032149697839187396765689364279450278028999452239210908615736156798362426632456602642836910076115192087412488268698887688016812173145307717762500228622352604616606632487504675335207568257798469962496649311973314762875058663078835969563805959191905127974718289734962728524744450624349984213153538474415711169697881548364589915726961861838196109555866722588436999793838159311805473260144821638277780809918496682389705999702561134838441568831803957386549874149676606352172399359073668334791952919927382939079164057217495172427661908377511529813855515649013910145082522586358817631850265642239555525111567409455019982873972035500517930168644284429088484105153758411387646123870162993244461943998744349033369456523587686603283324214057458252193207074918900982673729827400211578471590633745778509840178885671777142639674223391824735149073990723922982948134964140215606893498478992651707354747132654357329542425703175432213636855089743731779274391167472384884015309925162303934697886139203296320478131843573769382308058349890466735710889726846553260518233826273577589731035230066016965007731684220532370278943313667912977207668382104583875229308258674157408662603499621455386798335860327908976438923438776143792889774733861282782214226482138893565107788674880515139678695299985026822252789275565248966187418077111928104737656132217054657083963605446750063534047698784971265005303035645823245545581289484763942471536560177694498101853611594707484863019607628919130696347876774031670326093889300957445176668125411620677136971300990468333228435889572121431612711161559671934717402670516679076785736974962447925821027037128779475465540235134821379814600680053378452455713450634865868116783046116851977184458738273057622646061343062084373296456500030377974152750823380008831043923260867981212258379571534879970016797225499748165265925624602600229398939267337146298997657736349380651393982263815518010180326948234122798802535173229090386426325263586185205634845012483308516529205434469818565002655361050981615941890132944799840355352228787826045561320531571520898573515886194137707830366629302396039895710585008144791783966592754699025656554723862638396598457794390155262631737576996566881173696657785143826935515568606589569025128639016578560348336100984798813074764474552778964054567172824418980677028926358345600575048537037808559671103676935372754046433412170949047305847334844878746608143975378502974421262557329966288447310354949702038982445119973567956288290415384051323980990843964302876135336491577433488020744985240394676240758450424893357654897644052619599353111890594173581271732995090560564886814297812308481233896729676418911524579757926124340896528999223780616032238317084253908279282290825500164555345169523999292515342265351476426462849146443700941253570317007354154805127756513688045619489012370770966944891882397427844336922216255363371742076842253146557847752576535515220687616016218276727311719312161847966892555954424134094813718238151464194451720134862365092616646692120915829755446398017528423852399892994310818875277011570439463495891580076035974254455270336153839637978774381380546657907794667945395318539667957203931492951999084391440963995554025022333051626161500724966584120565799030948796291931456685690416613661465602130672877008206347393505667607593776936599117612235750600919951583723413467277692346628237291822858816918888430733963653623041149504458183377753779449990402406676288929826496047004230067312441047966326888666234545631510244657787045761921517940926583363399943270205556255246565015923092760348979258674357964764371807926770496554317308301220108705693708612865448433435697710331395636219438966372257249138562542795203748020515203145735140323875699341994907971397340317234252122076502419409619252153872537832645219198649581781512294655653664680617604182518281133832104373583415209647017640692507685120400859731762315371603211216165286316587334544601538138753962318671837176609249945495980684550608450961336961044830027012319058189639092693386361441585118262768297044756568091666248660583988977390754805253872161358373336176219862469802891463810996729348671153238515529964943010512342423801221165519490249647988393125489888451411711327123918255881487756124345798488299744588150211705963149650314053415849099481090709405625789175153470759655811366777531096944134132325961928104306918984770632224695602893415617864107213894063951136304312587439309904413750156399197320602572081537925591121773684224694289907476350805629817661177155416380131495339269016045552599847280104030235155789772786182503926136618556105359198384261803491950446909644066279482978593472346260697193381331706696376050773778836343409230194781533463643810881764502868636317725865267084496074167822696629314621094845007131082621631579540374617527032974841856504460729643497324293482925697923860298103556872608638762833652510525610211126608560470715033506279572943229342779372549672313144359400363376562176966013035108473074975569306372780701367467804591188773957699175217916078447936909013290066742440575719371341999085341430581113511761547217062136718891688718289433700833935807132645641218061031215756625146524230743165739161804441064621208226140472983780683986336397118761087909339423781872111778395045237911184948859644880169830220029110863310375823345907919349778685133003857076272897045519356167317884686456223210785305403983933573070749726298829275125258098822129445069496544141883256417708586528503331566299454108205680921828714242307264268971157755268627427682798343176515730510305488576305812802070761945326400242573150468759666899215752626371130900665945782534731290651756962919867612839440452911648829414035109203152386229004945189805971611579673335818912515961251652060055225696180921095873986525905169381011483975102751001500248024036345199276669646623200046838068320979280926408859951378799650596273429647481300842515199238401310649737891304240972344893017074293893993144035371543036569311801715142291657783711962849449818852946826768312459559490013456216688802377037131884434735704181243204333560077430988362924048277708507576917755560248039979678421901597025872745752778561024792665723866502951417565417350785694046189460260181985919266125592651434812866868219190242367594632930562250171790074852230195310447601948837387697941862276710211153760950973132117595791534300273242651009638483651496997165520318261326094040167171528857070170633051070300251974833657761599199129758003883810813045745070597332752910119848047853250183251332713235910525889081953785127348304362999517827356457848235185400892199015792591379388251870201107810129512316919156389087008834238411454061919829591797937389709040815180075839985385027230542883868810108644730147963513242464620909760042624619508465115353309446308795289647782363654047692324296858185656557809311869574451040980018207873542456718601141223312326266534140977796027732462863739812126546222452961257834978005780473867178647173053962527524487695173853229467256323813800044795182255720915551804481804025333513208117301840361905887208909588011693421398692594271446948618516040192596998714107096221331560933126363597783760860530803864445754633566113973326508080248323114469894058588886718898367017953933253749753024113101388087237453345300589070154306642406034727696777309257484341858853088250368635311506231340929831896344605838606830240171881171744678318070535643080984575962353352607393140237987686585550825139699137011545518494037170080488697758730591072387885250753919146641448859849699975066857454836046101492407676587246404413172374589344093045783021890480464275412136018452431785744809473556183152425122004493762704400674845452670681311140907404074320666269549828398886414489209112868008617806015682122229868786649256134353600106905909690938176218320831837756666532211799247434158172927079011058682227468801634903259632434796694314079548064922677237409427404777892410727041500675160545373493816912156805567167911369220218088999098829328000642983838296731283263287084120480214420124599715096080310191975840636869453338012637346825269498510369545633891930545589813886973914089914396937149472319231441428124534981954217484017972830449714324951805052756913753866435527967064916687055257317798855020647663520714240565680463289323268324460201304423148946094868607407191286718204288286082104970915784649972576441688729415478674709608571988953952239168765927448120949812642068652479022147288471175591773095441689693947852335189787492803538627872378572042585899622000748205555456051756117307062825776615518510246899098325761035670836294529124532237813234292932462563666238536493729966672610362312304085539968797811731466693046406356824106775469220219089873714492814956721534065899744160807866332139947679963446001100980214405097095490096840046091327237250343136450862894211238417947563507670515239709770548454770349373015249356824733790665088962788438379218320617080809846622545976627883538255743236697496158060411455587741580439289480197665961256975470813580784177385393982227434563920893993840537996727217610031155269549790449500976767987584469800819368025099313185676570996761174527050701084563166124811782111607056744875273099251573374244611611911342401592041670929172385759500398870285960102885059163900591005135914356489364736879827856517275605305874592652441726704388575710586643450475637070902087912881209596154517305803992688868992358539443859395843266106796448762255584281503038169632474453445581303783724998532293285445431152168917586920213408585691393280404123520800473852631392392316182992864876269800190716385155004574711529759057381944256355605162400891306857865564685413604428170578574858701624113784368929944585326352682384703572143740713986267073157790227147085329528930924373128030768492137392538026962335489098023391743396488709756973331368138012474356987503613095197183974615659794278072244081112984781276724921062005658186013108216221911662511622032461946277886989345609027580737214632518237210111386755214247975201354910967970779411108387179245852046543518708837898476164413280092685251683839836278980039889893173193158679875290025244510004874849326694164910705082015387152322175531486701532258535517631267917976913824789158169534498238564192732856470704663481934910863590345365289608094379505438615004535867829463856604101568594293667515541709959370202707543519037410950253265416879238846794846769601594175130034887150553890324806966534450183674655742169067091476343707837920578435555440364074803253423387888486342217940607623301970205448315731204555416224617781845727072325858091207120158474361664360398885274643844966050902582798789031982043190294426511532290791454516932675378651925052933899608782180181492633118017397522692997708750602451711335036329844457886736300498127884890915348130744637013495968079977745471665910118481024838181441968806266812904469921215745625995470290274376320371559351195589209999005418378993400007170153302966293285512413281668263248952085123793113331915825568856081151672603330380924798577180435743096477003238721786424584748345986756819375243005740016114826858653303216551640839051721976327157335068491204418807216874158471377380790698210841531400107771687599043219559581279871863529501545016561142580612274605471981949952555126625617327351251165071935652135596615036839374203513552505454581248463423983549166130137308358633930014853880666229460698989394221692388464621594260105083696106359219701664916993312110683192532654949869739046409982371163489611648606965872155881751174325587824226275784086527515640853871655624406483287100360835996509247698523380067508198233833820765874267228858479146925094595637805875416711370538779313068477187666601040548373102008801018804449963474618889930098360819799133528629874404417862919299907059172500146754497201467571419231130299576055523403811835913836403268183846943843683786032993643499852924612058435434329194834578514744337201603424067738903212762091435882643034829309810233242851389474225787895153927314878179598461029007271565331671413973030257831820193885745510464037983504813761043351644430200329203456595393073525647821410303443120699154398427908161653765884598905652852881737187001106232530876277766019283802762830038870677102967832719804571930639702146813779561764805617529211230587756761433801394368888620064105626483261182962762552968633993233369801847032951919729496915644068576879917612482666112483395959913248718702848396547133232611904466980459006073487025569357519327391518560439036935968006858006995684694825885024621097717738434903225850554262888938081772550738947485463037583868722652797419277123180833549404348181093301505764823069058178142307927262890218381792013033838403643283622263549664305871025839382825168143410389426442997526273490661182247340133923785745613129902078074149052595223961099407181454344860284475849017222730649024856724475742646905475343331033891107127142983827290316200683548175168297459807367628180063875610720252449704392309720236404351513355541913840332204915586161408849794630433225248225350711455536781969542068499483390522641394153545433746767579581746531831969367265339684584624441061316894237915270474395881978302261823290672736016438904851051297536240927083375336038456154541925939298511216893280181593522874295871107222541239426847683166962172502887221613397044444489554362057486534531847101838415277066177256888998798727678027386268720958974578941595608785659624670989751989699870371489491167219123399495447263106298030842731718998672663681033650123377586103686282177837332058254094247868196327381269729736552486806725966246488280704407713967332637444899814161849266258094135431392977986478366428026766899053214690684504686830352876790775547819973774030326692904315466912634845098289183635378884127640726133785952544320595093074086643794521923466213917828306742826876339302760447450709764564084398236260457400584252265770337771877004537127599409980656506042757404663714438430225539046288324601726493672298934287598565980557395806511050371252807371889831200401713577490065206081152178459703966123362619706590725929284579182105685399485834587855903856399855046931021006078065252363708609542273385138341254225746419235410646288690127596036225580818956323457494748889163164602364741763604144632213112303929740870273792796982368809210038338481730142163127577113356691294484501470524175000779961377453813680275347515597251391222428171548037394798560806657076386922505685436985170472166897830076885576528153609272049384523539250799919501927206572862464468030023583512514908117706952065387653289294719169385904324107734656176365711209110276175448161963525425202464360795641596494534018101042076128327111948577170344272219997344176558948453765535823618019121332178919175676581910781121199118443179874048345955935000644367888835819676245931918786303570922424119298929687050021220495790871660803810728340436726542708664886722385234258689853276362149568126252414819184105363270388789366644061972768079384775053488230355446486077545580136798145025384890539534773805500890121490773231497842292046698438521849162946375292249586677837491037737458459311925826556714649045485657323800734402991568957191253720712707439062552419809594321048451631534894251227107164990027242527096654536927747780793568343091547031325033082638720371081674718934926714259787698887766427108904355290375109234593445670319954315926745248291109202327498935778938610437051859407390772244488999422061103875559888779416153924006997102435794401466462862888445668869851545337270703894467684199535168990727377982373406597141304469945112239838274151374745090512445817804571964896439913610480152235016742692272003500776062411080488392692721695095067022876991092039885134299587404400509805495005925828438431352393715489127434019363337150046201216822947121784158582663510704514463059535310056971898479588408066376335327278492986561811854190901362946106714253149454235533444720955123332544007686835299522008954145414637830244494750641934451214774413205818752218761730159606068763841386749938879506389642987096518314774872014755140083432808122420531393389893814419781233388820909021622954887865422899535097107090780125589801451942698466262482091173677034373752809634022744561557335828037982594952953225595004513745040890286352427496094481275801113386588026151944839063725694698412900731217010434524108345139143192822900004880727324047604760197630837444641033966458041251028576222264245472807392132661490781669331802898248578272066904609731901630552871558579182559476165704204188186235287450508903054084342614260985150686096535684439923637365685784369101261263427719880385559467316515974079085257977688347560367294042808189014593873154332223701601402291204864003486190871518902405928875119345515998138726950061781815152980111551089534146687590206503148423628566498891422109681762327607422064974206707011327930261618110619071894036546485992725902005109674042635582081425093705830955178636280048501233827580959050166590640052094201917474729049481950987191763739315338102526410006377319809382108856618544243986849347984136483016300819203137393370954141899212859960122868057406483433781205277828795738086230747588555661142856424901148913130880888360518112425559697549153799390280090835622543306885556495008064935936773360663708972356885964391515128662564393480026102211176840905778330894916508149176684014454842001405791037223836501953543444116557936678001263037294772940124910067469879939936444113049741584325716827835113650931991390551418578513864293770522216829817261974027359088411327795051913258591676674206016537476654088645295167975623240885700583677600552047962443153018252915865864399703657709229340351296955882774350348493459328368228105917994856910573671464169242714735049328489135602982242959448662725934582794311264208742518410902281140930659050772967666921068414718711798752112921490816415415479747426284659539184023845077245666286369570273688910738509605121887334354745756823353194915721925308698828303491228383391906882963654089882280105352149272679394406527089516570904922964758470951663359320717884905050321197295229808720170920461537586786576864453167133170053100365050809016416303411991184705294835468644870792118732528674238396230158444161737801161489677390781278040310262472005949352050427782061870513023625946430997707648327748331027715783908140868883094322588219504620561441820262345272302415592667350036223127311263082677574642522824626799445609106668720079199690487455278271748759461868659153156981942377461852993876775889060152692695543906325421929277363098024927988694213081115322408872383118777053832316437158220530952639446304929228528044738510355446757979662727531509925112879723474379102287871670989238647803490296528688575420255066005704218967328022719911740479642543593030531109441787070969547276834831787480428231377065635610908874918076981376937399303188643194728702063146688900002793637448871034935480833327925258763172731308938317029962175956847982083172790770436483567611606062549069571768316386124519930349850867795114949510531085396576999408315052098027077887588958702570140465343625365218625230415503873827943539779727889385344790512329073278301585977330869074834347589007776749703539766949604984375250186382922963536362528517170376906745837551483724256326275029702472673470192671102552818268879341724885566647316345437428145283805961942914036099823434812482189032889630534062406408333340967751244639003185353019651879656742337439513812509553917635983993927292768428303065062567154855863966115081814287875148041682473540563410678296529422051297113249073490196904678000071631396393812519709599340705728511205634756296854458124178532117360565533825813611319932380592754678333214939195721950232221395148016348239651958565652882404483057042444352343949490791226248105964542125688167371065476906795089393791384256747779473653127647942195964208934623852559501719220075650072091806999956704610307482004466939981536702134559785436078125540696423299142055446742662752775798264850668790585294527232381892585309455897948509987311997767702481462519200681278921979115608567837354320979525149467054834029116661642317584775628681145505632260501850128683190003926666371015056424133202936589137998494085862931509913494536046747132507593618771557696331557527430757507534374951532129969809932457382025456952917132685664185733004969792216414500325095923024886214088680358807220750424994224100057908805187798733554442652814058156793136419682751049607032425766904851333684870472691073043553999364316668069944572576469605453804422211762690879348694331244311459784319599395188296254811064430101049483164666642285241020643674519281915088788883452470855432017841914591111837174912125043234704536472676895119617340870996868299380227717327095113629392697108615464425893179883597373588252553068873110030179386577688813329262305814033815372435957696642008313932810551215642902080697641012896739353505177106140939096541777950212125138410985816755509233809757159843129589441610996415908608844997104086897918588185566682979608399562332232260108767662809604678459767467573517682178559668043239124139870691918593994527802660437187916787166142530640707777484723238878667368601525147071427406365461172822434839728162831669715703922867511089635575666339501191706438580403655457876177701690424901368631068700374915135416525497028427168164713927909680728883788626073527089443559535559861449725019873969769037691423529265255943542122265286440612773786386501791384048373258595850612223084433557963279428880426240487040387297725266920292367158282431414906331370107639552996684814379323101368561162061283599023706891168462474073740359766113572049616897002984020229434144200058245336367920667349084808312577741346367472120990119616124173988377499728432744929211839551624169769925848350265731894376396286140873214483495754852930477523967569550695488547575558790710372310247449548344503129406433886234980074947246475138217541914137401588408453012578846328937509645905095055333620023686172861037538106139813848271670976066262433613760210882068280764415143594493214872488540096422527451953169014488042890378875113348589136659320770743415046255788663734031380980361572654450860232092778080604982410222294416469176366721298498614016391261143796119569516095549511725374430979968878027116469285321376911637622821469808732061711201353588298477310364038161524775590442750339468717550171282827183279432815939185917245271078153633264837484130159081444425631742126446470281838891307381537072277939929302473370706700555800934537099836442352062895427435575140292479932854995555889748774137935134012976610397574576580757607081823799678438085249551331220389091035495265586033673526650444973212293787914903601446840406242390451001173750354410520994513723574819502395381947816082206414819335168473722675496301647104051940314980912682708725638292453439974788210365266307102721685805463531269811058273465205326749323332474009351910872885097267894682749632773278772451987206985628845484029442711567522714451923906812239267289712998681609251221602101846428807014428584677724249869146890816927648551618122999245449494628079121281551702023582079175702247564259898574749940440493329921051605854559487262026704827692478161291194736284011199507274349524068693021620408370302318937540052222918710709857921931652204864967658064250765706074156634689119009686378950447905611913920614213900549951551550975655648518837376676627856399597086577325996269582274150937710545812932926860773203934554469800971757328643600268810017743557766472907669714552783756655897495409829743167879613595092351143594371868684144038462905105842664139530056318311583126583520441788981044036342836212400008930311800611031575885263865369951997776296991939798660861239948503202907096231941864173852700653009347921730491112482602690054456776586826714669224902818821810958430648385434817736872797745826468712814915134466524782328004271068268296369839872631120528916067636982593885779656387029271355306518823377196795987393774225690034579169540935701824936941320613464348606416576990349179761456828893033747016432543310047312999067683177638516643413600124619390287776922233056587134143026524342356623526385812750964755311804079997761927069685089682172349113047287274237620484547036464189374548467960960983095227632598784919784987490224800093657685412773490500799896209283692308110383608313278222877641735489488315999801008579507452761173417349493938387184582663366671762424525383115511681369250523471800734780523792172251583891133359367115754159032129258383255273537521566978059165522741642457027208635416204577919889346919288027756242210719227963204252211512104509037553359637717847701867425750980839713150931998733319550157776323905089792350031725926530734177421328618695995300870030110969373154504820800986333480911556395117823523788788759541986354577581379819577210587033497213489274752400965304504276322779355493884501710608833616281318321851268893861775694674007265199921988850086403363224672417310708901557350337852064335848128772191646400483499663247529190664115733693761839008855123541624559652851175022877887034334054907281912010232105655693490428460305247261336566408241692263923926871891621086658167673664605042416295606229487405893180548388250842742311178222445983076361259313395387954445384857421991365229388074975035237887200377501639889647928031404055378999915258408727524981519879602340998772766213538382301420233945774801594184782473626644972897252459042183086793675934394935777321310738456798062851945395728856894916657204443229473448630141916769252990388264595197384939729033192784500059028103797682756081627381470524979561661408283944798668857362623871907970898144827906059329393634860391120579119893321474616627523022918307155070770758835319007806897176391581260659416668391643121927071069726249400540631615472528034195347678440175792323442444400873756232923362370146087151975741107154962242624913031519737321163953756673043432352596280169131978320096653597491592970931277000745954107510527652778012664169603660816567092332942764521403180283877005589760096749966851848851294933404314977811586792446544621170759463743417449353900969814532980416310540819878654310496967698495591254459224405494682861927857882221096519654302105249397277964870166248248229363703419595525083006597539011802556807382127410135466070515608728494275608092388524357310209499937818983439101829901341087797380166483118631670846418649049456741753606931387739695886364928985443602415624549238621724821773821206539764699812153208904732407984306773035757874643439935879619162907165512337163057384858981723111700774294013744070657858214469892549785659471626567560213447548543557261006995410320060298841535985641963680794090309704272635894652751210993618250018245285286549069445107569339037460926489813405593263732018339313370184445262839349536660443071252595337017707179657560199190113740616060417524836322968093139875611171786698537203322450554636190217697042997204856538311295403962597660478356729460594141617151131100906931144697551514756172865118818436742704655377817727940308988776711120636246758462208898957420216096459645317599947846274859690248711734349272276822797675866131964085655222979179851443987444719312614486228200826712645498137054930988841799345274193281096373615247668356776235970789170782564503743425141961397410442458301066417533762450121680173867260541074311067648060070297079251958877117729467833571981240745176753391315739362821800765412117538724238795924966505032576050519046243418739761441607177390296691541053392347332274289388289524739673697964647854825740755474849029987813511796920067781361963757098674426677056931514807648588438884718310487041320242388583722595442788728517337279127807437591997319432770115510065822131952291826499336262642466748973250772001870027990817698493172604562341705945400265690496375156326674664804739441855107397162288532322272776662813187856061317632002985034363884514244445276144361831350166502797081944578771570761430149690094781676806274760219471245730233911928149571288601368302692678764047923950959406701266695103355818568765138725854274860445081514505013897847013596461044408847070420453857396190488859479077978515715297902688579509206031618945678783482301689014943382210586879706074418285441093522144107155044707991559641618620717856285637691287746642819481215615005910376339611960196737792276267716716878877369581959237727227136007116240945268351992812475312259918869826041076597506527736060958621849831547057213024301432378886812341334768722188184431440030071749882255079663224105457290533370156516451555170360018056186643590147797424878418108388050938007318997365418240794855850242128418879558651942512508236026273992583722910294652830286329936189345208769105409079832145006527005030468222593140142832536186626207704479098308139277902199607556648829281965146795026137254287814149505331562366065600440562825339332600502612161977581916312868847371925721740172243728378121022053715210389966123634684689865591676009066624211969009346625459730779187071353476137737055203093772481743572543663959156259438227532014129886304452353992964509828847496124954583559209932144641452563998392502771361942787759425164507876714826281375717819697186471612179587018802195350904827949895228153967785113279266208412069670572900663473895710224550294292228017682216986772816859987919495183152091296242948777279506308899421997509484490908431041952884950603256407370087312357385146250775981726619303663085426815047858100817648835965402833897872681441761412159582394990991816273782061662521886505134635130939134474083352527814669958872562451607738191454141546089393109948477097932641949723078381502952053741749104042000290917365866451107924149532948498728104055063273472614002238921269100053080834342401779040811296705768248142163815956938198974112723364163360680906593985494623085923728400672088678257372943828543888717929002619630056363346091006466745721262452923137434438056553171818140160005263386581948982160118793750052864831621327122918076598445196505134934018080313457772659901178134207666386430353906049152572772986319251382368750563547681904842001204291137968415740732241604578267588832415969669211611931829683748215362499589543502223053534990861876792724335221330674353517924267887022426087479331349905868142118700129555429850000658666074914932919539135715905818500237556823914595584480892384558420625066608311410225971702704710247960492681655432524158951752108832295998825808692832559928550306630224713226290578914573111459333068864946028029073436046612380752847059078220643706120799091344766366675184473283368974219643359828315476838261846620444404914844101246586525283699267312047019371335995651982346030365365534091744082529971934971435377557259742373666459774427439073515710301977909785322070408936930587898857883163853254216430782548979134812402144407926605491059279538102122306250202646938908467319438985255723259475044801708607846272616540878705859902804572324138274801828236742919117508978563822491089056297920327936425899736609459578116736596399804604528120642002135074626261314349919416526509536400257554808239208154779540686580644568001092652341825773639221065742325639162593660593383698181166592482707914504437719669609904483774107365032656409996744253433729437109279915203409691772660469895070061375129868995551122177217370190332069389745067743792827564875538011685436853535480038699438828416314992913147310693174675611842695172002948829752967840467550509065301177846390900372541035334958734011006004291864995563365514275076632288186307712742114010959839656817311365551986843874064497879563708415101520518822469102164909955200171950551463803963430789485783069584319456598920553126415163653687753471146771646931543040998754552039805905953944939011028204577939874765386504585392054205665447771892965365153899459178028807123390214010197152299880366978297329260294628070225635946379020265187772849771769587251106287519429097631058949129964127019129386472749537196778340938373115962052883546105518129036967329744021222567026365667742469337545503134941585213809167178013553837568113733389726297240279679293987592289803099761616945346629070179314650473337835004156697231664044325142081707941154017398392336193648101582310974580518226456032624970718623316280738277051541756626621761398986359137814280932707412030164848898745019863249273994231453495030158985491482217254374759959523671079672578180166842427883204212733304212640710436983903369744401002716968747476540952056519199978165710578119702255774707435376960051875590739747922279254759606532690330730852194380379028078291594311261533237346907614377418242721525552700855747282622950186257767480078089478729361488254734261113174470673409012152437599140009408099497030423739712003416770006333192160257683225329959238385423173235468405017155167391915851792109754987398340682620997472680280909071976424805984542855235702183227276278682252303595258958640301533173899489510912763231181094412884004717591500377427371395049609909556217224909219724129613200962746665124156940249500897361997588459551812828520708203887217133866983091960631208436663103367869321524911006100088247519356211687943550488081130764434582914543458317076966907828614833343467816764787766962289219523081162866178514053523998490293603236233096707997285617283922602019804893863900402457450073148386047970474715613382655637315639978882632960641267094191711420795404212788194968211278973870981266315061155496478969985120879322981765385616047220752409621721600058637460322083941039838264428459894539017389973665084200986916883530093566020759567110669702434149353122247943053333605461671739948507188873839333478573976428603527413514998522422760104322033565973594720667773071816171305020320736602693785711366549081319800440703266152259499116274798043472934806893363846298791099858254929100455388754429001451311179913540084711088943838968398987091349961741165360235728229463544967477485894947752954820948762435563834970817775388058394685616316892752248050355961285557894987577908183683140985504269411892352005463241243738176761482872553606589798286197360026553871728361399578561464067568692995670662071665481023580519521134741869501256338788629703411587262356132706881286494996227911239893085834848424579176403309981302281054442814324936467427438647584308589747132632167496588001311426355180025337661225875181818988364543507696792390807846766572617585035866945880433347429413635706026904309782726635564274847139130696360172370492585074762935360505714290739156826449012351239559087291754441413686074987720434906716213343231172608891085304365774276869693325340183305643760781436786033067585692958396669163518771954568815171714631370166236381731878802315320388062852082764825924242319919886211397869874222355881786995185184871381690202571415980141419401465299612000396063423521977758844713323231578463996991662841805155935490569390239432637857197217681984254287648869497542108621317229391451904069296146763861168882765354367608244512142917339068199547569915926724476781486054673996267607567675454667729318338151919641473615280666877319913961097248294674980751552445119889191800979193464378055939395916432090752109892774280716291379874869638935972224528438675937226554395623079957154736704581961895389332188038239285278314361277467954572744373415611541839391897721996765298894264907325394136031836506084886638609832685393713829330600816617171984967728906111504310395320086080260843913549608867432699398000718941469487359949096065564551356098490700845771080206927566742720928881930093916779524204918553979802319470766977332072635601517444099224815169955829169307910070476085037537416471723862937744420571793825343976549129362769401041952867616399323532885514633012209129148520639259997691815979129007367359176580440582050268707022971642857644271451213169417464425080473132437066479326290934544341233417602837945001206879452647749494697089409969629479879431731992468325273166867487094598800524660385977929812367795515960619492853131828875959042024160296492084473206349476613434306062124514411726727585584511537190533212380003317428193854608808139921791046933184445151505502152083929685625757335619957859009348371371351719499998496697181608477448993686334405629946781324042168849527347418922156394736617084381190718437435608049001375515123505902779101049875619649982932526927878164409236804637650275215197028531289445093420225943416726689817527395829132610358401844502552235990091799579749652544051777681338989857146951922287351914243820491490576507791487728049607618782221675451196696640429882431813870310427195048978806720661960610708841611398569142103546960439342336333087743367396104579417284530596983095022536948042354353814994322533732036643434068909507658162345319114877690338451380092306697227988681082979369857189209054871220427451300649127904698839644452291815813430977296335993958375051102652519183947797806440911891305238271601266347419295379569807392840445689445994873603700356132509501264485204574134224887083563629586535691339214136957317426815988126194559149686605938407068333071636771844957052728429684973280784759813969774080118337729726633218458166796562616048170707841085376862085215051954390668751169516981134429990500654161744864187341753857117341300889805997562779452537652558695302932260500099383370605064934444172222558209674714234887293574788200302465687178713931684964001424182258794957398635129579101126235211443033964379844780311674131448417272928546067081246531443587904336438666556948660242893444741648197464185375019429277619017555566780798250367837840135017301603070380974029780163332577334738575541931108551929874382785738906443727326170609147581395931954039369390790478947640693870156566064016475901930035126552998133388185259456210421424061222916397154110303923322203274601742920144137763154664698569933754755639214353065442055957459371809805609416670455268422588529778906253881391253169462150208223909879750115110676009405626893605222541173798578871618875890415541689195299331031958208033518310678240476073087349463519427478438705039501167158232524637376646563831671146974740879075673880694898066953657893300353222568953137825286342281615655505966904561373280878114613334827076590360707464776038730519207941425831121492417207009068269398330842868569970931645354846811093549999729985788385820444357848990020514245461595440810282122855715045832463965971026763935038085922880901178612187474598509533670902816872266293267153009477632551682674821297643412137972903946641556478657728357102073083128096860970043218346107201835989300778680393117562440877482943689126613779073040591927879153413091781411656350273382024714446782184365763847780892397628661411918540672733713312437985123620101952323680228409153175831687103799955607700941856550771848940705509884439508488089809235655937489282602482023711744811915434840818007511274790317740508394445925314730444543635382997899317698393274810599383533718692472832759874892705584475707245031733220685869001828538867524063339357731975097104835989612819232077363371413792815424269609359168245347306586084941980490791921181607216649879642373199181566250084526767870805320475313667719610944121047852313544119457231886023572975249654981927514166080948846448674752225731099640014275467741339520441093214437471008172447407036332266621279741633475158873912336941629205045846138846819288448686116476724010622796193012717682800990289787535951158271532235312884316525268087642703837969264459102149460108387328616719801180810282616648464317755946087427442728200174755416041883793991784289214588072198856182734879970044733322983177829979133754256222885222178237404535802544887106016980704856170551820681305394348938329992409238135809716511511146818070632477282084579374191890127253735438196607822634677719075359966609878466705376745150096652316676445950613985847343986097955132024851638242405878369717581430925567856679055256524953689084263142910983807571358916023138505114968612516227160862010442795310528878835171858892615335970364941633522661210460819555737897433184680230812358778547650546951717688417717417273853295739679447514512146498825222437187417383883648818479762263662460070296196673015400526922547501599559983260452242894618727038210945253862081218561999709358017243287932090930463376450431674744476636080903523903421315892067517481750731509496744552403137944086556119356959498757166972180487405829661854494596399906710951896842782981016124951248249445612139773004461014059966049364215611953134224996977624152732705211961769465677941523456935720556300980269892684702260690905236782402072416052418942624952690362281144501345665500878136941586644285856023403106036689327735002297626948759790582904513335022464906761045907739168694673222433301955908655279791435055389230722165347311312340051572854635187143133991842799494577850212110158990839609144500709763539742448468394878029787475975045309584435120395825679729031809487536521695172825070702019074034538626142731809937235543959068005380267178127686936413890273165144194560388230441868864730833237727358120502195710621102805957510470873848571158420807622552163264010890916432682605953989413983289816135354771870897833287109764440735373269711313126349280732202027547121694280292731071401387266494283505960767900251079751107576454035988062837995519538743398478356168917903645064137452457104186390003391327282648548164598763978919765666970199784260867875867354823623608846996024751509219125947619538125199320642449129980124030322024943085142649008018846886291496963275936213330698318801422459266454180129329658150450374420214816788210080202004330231922490035184057434036779345914784302112400836802419203626209195629586548604338649602441096769822488802815488419204122608140903988752162827083004160252092103726486846362746067858667452103419162372912624443312882828004974330683653903150125855710394453560489912490588008217823158877005384611691220762290410628444133936184095764624709506903039511038754387497773993101090193228656272837339703778054209097248465294751903060123684590615448232272812589328627755841425645584788746285138033257030033607169086398842824284789517193728986292535430991141675332391675301567669745222269361040920050065961294454780948530539950546262379694702447893986621948930093941723279534599137964634579751136072198834848898170929417082659491433146387300052989588296176194867830366346486715778188427906503704617264692279008627665288021285541141909481246763864229049854845687727418525600676332890734658239753669370616357793627099674194662693913264182706330541424846905243489339965033145192744551744108414643918321954461280933450771897898167198258907704218504896352825642686171805558847799943194874874084261669311912265685946750293334052908141708577835630607149700883487903653222514621940539059562119932186974949617964433817048715905744747149140203221265433386044573808007953550629682361929745548967262315406448780060959422381816395069083892555769446837397989734046824510524263089173767731046365921214977708317346621577340170968208785624312984150536671483368551875338773900705147230159214062579203420545096338545030595129289292547977423013314478187898293158329907102230720823380207456805821839261115036788900521422335528988917148695326866747026686640423961874038388984894032771773448084018374541620205114824025766165212275581376468166406382567403137237730116933822480263678488589419621284520015615315659925000789400831617318254295134993942981600480703636685711165472822048227831644630158267439559617737774030620759793283372728029899742071116671883236948148311283686454187677284772227196240326254899915239228054832651097492379172672568615235510554298758057531765581405308239540768038037264610300344721755519202716657822373396966270224384199020625258977255213246018256267415000673609757039627402034862101403389392723550490665624123380740311434163071729442429624378501084739105807337112605864905152070799487155883620636406462342464678908467159009213161619658750332814078706237660214591483957329444615020699357968813203151820506027928758688770411977911076288229341757706422724764422882838134393795884765294130803792988242418613307015904608023016751320362509507398707301736562058212778181386040216070308130749149336269556174520067441655882743447560837869405932268309422121399583719115639836369012153892650770301517465996853312390389107375100042942218102419142172819583832893825065982491970043239777556412903080286587867368605951247935968045198463513248987216295500424169481992883131982224226694628361661282564154358362668285879920312929436823683957626822158404702873044415918408009014546711241245929159486550615574087725786169056823684796204949482733375031452196981412864330841800930885015745958985414038782572030977878229267127092091053762594967466280410451248790805720536624967631573880998124813774319667189141844302571966797738036552523011960119075808791402069598352100842980337626406683737453689805400630947797869828293089607763855292771452837232307671393201862920524201516356027701044559183281804785184528364517119179476891970409197384265916543289941721941116137876462315608243110405130362054455406081332172877753843962779473682372311136040190280885773159415228091920654392609522817210820507731681832057132924514808290686286973458569036238555783788573244074006289992830081739102286059426984372700023235305845431775067355275237433492371294597182121101934611173189480238560600684589344565539767343783145693059912102198241075488132388477685892148931196894928429859191024168480213014606897180315090179174519260360712242674040703618465669305764764592705120527580412822621556001354319049467992357719682450715145927565819539785798602313991393229836818144527939512585876431362599496612964582801461639380073599593633857773408317103033565432125496587246958177724578216583294794206561726414318742822965379722719051149302216673214130005297680442704882860743864475247755611966148018467146213433804331941164087223037630566939148188158490000667702530560092220488296750745949479495682273514060089686082448566374533455786474201813667907286515998590433264248952846265027467929145740229794868701889358459265766611988041476291017813233408066421655676327535220844637082050596730511670983274320213566033514087892973960728760590742160354176715666734047888311252176805175423043694323816707796132367944746251184122442325849750580162202693078019792733427862588043654377136041973340426404043143087298141502377063437185573749572535400786856951166999365063077783602045378275586472296818740097975316643284699952470773929941698439321241244056997215316472484750398436055030758548258658272527866904921677461548246404160109133806190072882959363637896046926078719423279369311153110932792416843804330231805830101530458981479712081007670707978435725983002410100897832973912021664488887489905967176195187862581886770944041741929490761149267163473455131767316996509450796895324539132383918454310759654325397618834754927654659180060737526519986031067752474983163659978868443732309401594199511542910010927796106724473654798589690126297492610597099583323761716780008084776422022848818265355125545537284150438326663652944567941434193954806498566060698459081651156670877715872065264445255848181758906087673592533918237021647868489259471563737481193714558465254279162141570618054781077179698809615716752746210220497539635247486548649177934980736344574593077338145169726949063434571173527106910331116663156350707724911072560035850415531892254939315173561972483390799934819485083319865090604953517373665935421900450116614566721654434281878284628320037473454067563794071278248798574261688709010836197768355405663488694885251278481590025504283691747913010461969593926049232858685596390736059559874453439242884466713733209006770070905825175450337402599077304819522568643749418609377898184050434319181689272709623606340916710251891192803662265057647468669400294513733145825144789551085731840203093257368749193584356360530490324602888073637189021401014582917398341606925767426712202484712345700544568701255361754569098692943733454291892956696928622198683120542839647932149081315379174983945183975741712428318855722294155713407712512618130147759299956436097447172511442751074230093862922005413200341968341901152789529227437745590813858102080996062530469394872229352947764414120052617062069334155530738620696464979952736994596205322968452998262608434714979482962518885869991472247682175073968113397052374416585102633373783218324287954595788106577465273963689010361651944421963669390717722384945645961205054994811580481313906438132389166145687590631436773468315698700050951782192321780491957602498853943043781094914961749747289241281056792462568104475170403943344022897183607650882064113039814586388049539304888442629659093017475889685123419251577764078317545887161341595602871256659937517552333794296153217432836421413573924527468034128176505283576601215785873639885211673142250692077711409439674935344284633111105285042645110107727444199317775449260135979331665335041939973540015868612970340608771074072257026864762605138925325419195610978948839051305958496463186664768359274396369138373809682529109423981079083999449567946678998543104555731662591640304491503934535889563578179564990596559895964300863059766476006166855347633492053717959733341330808817660410883425260085474800010706192671251870079648780504760544242176947687046353646093763962518985139250446534305892235319479727668947222784366247119118974572487269296222753482416888842286818587435101598548328182958005289911008456393084682139327398284115343106977990243277962848867960071384277465740054795931346302466988827262810978332435361116457582123009049827760744838077782139939466659328683129662030633570639823237040242758491775264771359429269083355719591829471667743557967320108352133042859098955919493314979343041575016803484887584881853924510463829818491028959582717232094261682303185661497492990934921528590840631246004970764060261542652867760453187910953519625423077768840675734534093838602318937889558265173317572411499333393402970825744504326236687457821997428297600246763296180766293801518618149105343620404456721335093407558207332763367249735865207367515067359666677862388060951821962907831251066081054536569691050456818383627166441908104661754350100327815163446023830726011627685267984240503739557872253008190465416301026973302305423592801864283737278250268500019598110107638152293930847898898637493910084633027557248618351289520225347055500296606592765394638704350577265719328265361542238937914950789126153827008424125220435373491256138044647221169121740974578072247315635485439268748761243618057923663756770466475481197251552051055371413982072628021064398960062687466368058579093872221300824894777845917515485392557267931100480641111073105225326526580522057407265600257723842512408227164291945227604439725798107382342783352138085206120895801007955585863714928274549022440649952064645573759375317371965643808113199588327303573388603288627324166435352678136471099579186833026718777558916857278011976487628441153950027408807712615198661537654979925386456718478353871193065147527277364125274539553434358535702235858027528701116793055192147374899224224193873848824134743524433734560748778093953496881210222038947932972385377966114166795294961045608007647118469133880245864141534185820172149403383621401772603216554696629153972432954325186504552854858071160469884861455899802228180871698229903329577477406780717982253888213974934377149586721006268222143312158407417475484554762925288064748932653053250367345713055839135794160424468989291086443117354809540000701049841609590469954804767885074159905172416310781905383967750936127265903923220169209498607087543912275082469763000885406604012683940893872189821053660457682769029660460118095083582529027187190483766211525613420804194519697621953907539288901072639600795363919490351548034348889279568287757076363818448780296466680229230847603153956308890370336514863592069016589466695065337916433551452146122188255528865707857593037060696058721925681946446951667162771370209689591664507118255386734452664648791326674990227686638807003105563800161137492871254891690326931853871439283856477269245485702699819152772904956269639947821173797192315721690084892183366648407243649809093932610942865979622887453347157683402269754753159288934253640299596095361302526517502917422175967876110816545983533813824673216839620128120356463597958341221059198029018523789071334018812253697641368796385937812427407278062970891894600155487704522186302473857721230742487968492700982597388040570533760372609786998135571929090347789740477963436330372811925108261928350475483492379440933600187813513983156673591513615016907081861307034967829014222528511612846260506936710416654403231822096715360544059922962516782295009943436542562759177180649535916875789464617562382751425497777012388604005722001367957762562752758617888575183945780142805114943916468190196574991786257050624413919635177912393204332973833057695901106464996707651835903942838568127953569247233272090425428456019066624762405920034558349284402023106703207529586884159211483480449271153233087421628736046876442989083717464727323261870212992865363869160471770381877588633692408419653474976028117871494490270387421950805080237986468545729150616032478308172337657824618157279540929971064187502013692870778931126599596842956074677865423356593501212152563752118302617135279858740110871589180081798627332602595021343317254276104407017625597225092943283472887517728325285455621147483320897196951861607174406716411011052125617108153080936010729605371602701839171514930444873451342635044980753168262052977593730126322829516494117130113431964374499046457630188988683297302930447395860169246554045246607853679444044434948504268734111159897143270397894772181438629208385166627603352130445177597861821009704825214714657352663710394735288783924964105538038111617115933002119378834998701296477695035344342734845281170981862086205506220900106661616974780291097033150952976759443390182945659916359475158392193923472488938073056056950445322400832603477801025932259520474584375596164331022839469171549068349547650193392337243940829370425193698420302520684754348908743993263297253568906851736153249812718034591164690101351412532441475956345549219971468473074399048483857992738973725047184732952789482572826786775877691120091145399953260636618465280605750240819974785869458443563194176382717432162012428461929712119660595956959693225313075515479952004503033954382984120396844870280416083284326995994506464172049218252100037399056607468570669515451220635527983381865604229293693422305805589651329449589524206786552812061396867985420878831004162618837417035059199818295891672858234365538678606629322100702973078154831664138894426829918503328558014474619014112207430187787647060087305656991036781575388474774497476685983395549359380352339415269583824172222374616767920534521392515259517440771142359747563129623287750907256495010482128941506934104442510672491298016160237267758333942320510407130176677469743104961970073639655808888842435044386380903526428554698641213068505119871149106411578206588211076980888041564969876310030635918836920449014404991116598279335745636368840568308899684083416109869283818406463317130428876364477448710796573413378682336247909587462208672323852135944371513805857483746546894111590016623567431872570275431238877963216237084986740093181122215357061219674337663370127466394881065982987341699902084495652862755066591421874670450445147704991924217462230101082391532672651552419696496771066720972218015656181725159165899824221040125103896391042703177479927805982650984271824619128738628661603972092300677135183536186474522184323307454876454937821751028312990279354742258987678894771624825824259682955412004491004629139538304120747070156629876332033994258696242658191375222675306900189464237760101614500355650840470249207999976185503460922920143392518824755371258463127522399999554051947416288840013608349499164338673317647428498858865801649953840524976780958394868533398565802220616650116214988519842868837441802049767240113848045274529795124078702333722505090839128199339663589717078722968891839157052805246142471482146544937982090942444036467608433507441340052883502028589495300082546254816119996750414116614759354521472626445258486578159520727586849453336399526690895277001082684371397662662580509372942718244199649572416424967582705018607374964541212918564312007275206161389047729981493520075012077591181073596889012943664516119931961185786034828695222145702056086441929456181714520318740225200070005052921078381374198076831062762240059930442450554250354781061795307892367583332213235808170711791734602621071776546673760990223768599921086592334701000621990261100298295428348685769789430878893239477460753806120457036162659004384134942725785469130632425194788758174080289946971896570819882208359860209002403927729092126712075539279953316423278305291727046994094675247777578209503432345928436891993904293394752275931693345397123685277884447494322627629922600573042022638179601647931044380900244594359070304999288573965539264278363830097917226363765315676405167874173706879140672416898580645384750334942680237317697049524037854036074988304404992789114544860382804978798788664153432463951496208439357994350475922018553383859126655106779329692672059594342651207592370226871186534647838931018559928970184468814578678573163533816932212311754143704628888499416619647085190319557324309422949606071701875421103692744916415312358700930935217345052943841953220404877952123565859455460671863266877145327643478583914070653271781206027178055419611733358210317933395470426276077426271261352373379418122158908802282229822076341462740080739638839834092124170155977498225075202498747916150189351263259482606796440457719983852137515362731845968783195099558980573399093206558857701435504075931785521364603929885461563711708370598399224013586590659432301160607730181704820413621915015130242553377807917575822638962739417696691659384045471443708143144771879733970075764271733488701852725302614298542592340402408555579770755885454090585835818589512682532652535242576981500882358062360297384134858667767765979959782015940814502337495804256687692353721497022495552073199305509399394087428909260067458563820925952676358189959089515770714997921719179928842636906371632621273147599941601460073106099337758686731693363973714899098515385848556329263971083384151850426799678910839113262851407299279451964969325168440164472883502191238502082725620195211046852218675925144056376924590281053538235506754157816910607459386072947252849267016697028520878530229376884725543606019645982504607548431496328792500813262316142235388969246528488870117969027421060806214249659781413419783082787762180527460146974250710801536319866491328885277241710829373033457479781611428695115495630326126492005940714597557038439230567613943633500402428047113655054997328568178577556428239650802336642675999614707684002479777684227337230654134523750493710718519239615933667183712494241355707758990684888880538546584729565800525537095535702972821504442318471342985534549643009489187496456764955110573103886814663772438620280127469098708421045895832573914556069785268517067236129161045014079935067416844762653423764670155640811661061990342344628335335181321811722605193862705633204436949264673824714629001572925986731205620077656138399175563604796221030692853328650585917510508372326046075730030701950017958555514186241554425455248172208983856559288922631462156220340796270125401369744512394148683597990435531068611768528610255532220655088665184386278177428383467005835870001130958291256390064159501962302229348094496936160633784152603426746251845719372886005644307215860905193473605920269024338528062640774675908468922335857252295941207801249262730782466371286156697301790182764562761756932416173900103114095716126829503269026931248052313959969918999394917287668804786567888585694012142216255503362858989111101708366615985277325217681373503131870089386583526726827163897528336581620788447700088924323821819324287200628750021944960494504870962923736286187251642802081205979725546164274216900256629866164775683090989596531063490980082335553263459177660067548956497638019393363538616811140886676290333887947653402704999206136329823481092295733156312101038723996772264177483624943537454847188005690592863846371681383516374417556280332187548526072154648707978577358209711355067174491738551418207042243569216998346986340354070570677709676227362853701572432846880613710007320714743102662906445710520131300299243605959977359231094496139195927277048711254793782030614972894902222383594969025845191631431986102196120627492284687990772511734531195509663078979012532460796361362738851569514144216990773724797148411095933099018759438592079829895307664603285153067090418135864670339315678681698967672050421476145311297314017091758061601041563140024841512527570659020349058842582582649733318693794782519696750252606335027172189907137423541954081105584357869873420538077594484407409012911984785749235892185390287191413651883934728327677956884817190174678532653429833228607880182210280041633153276162152244665034479417203173231805145881617811743812458108796647818984246915621163624542560956773593128958333587841827259727113759545268419726060795391379110624004019662867036671414451179402067571415950604866921030367887138988364307675556558634269212938948859470641892800330812504568219591831904254704099129844576582006617846951069571464064263915537431758885824122885962916138630785335296622512395703797714556486017433549931476709506811291681043283088410209022052151327080772160730292222102620671545095206567378442778123776217620798139592267297258379315831515465089392229971976938489767231743885186668440913655255527149550719017116978676401883380812887798826151263465359214034749961410039207974340238307744913151773996311456842151849459640184253517673645230995932638083444742641759062674910001696962682404560165867880434797241733950612038905705672902761921036823650078109419211073907994146008505131324673366987085527937012613856316081751804178974302696306139886141940883582242581876604199210785179976582136098622235451905529666768115303501657058209916861644205526080971525519634514576148439418953886336657588688405537967404646231442632080434607779876589616696692119899103885323038202190546695151813969052739146220889220181665609268040506678694219680774401415409399685882709770519340816434674585971389430700254884102126439718797311817343584554258640873843907748615443162174119749534227267193793147818699824966032348401670274195326741211679607971557180862528960439821761809389694812347332746369428230425668392435990364307491737597537734145684892030167991421674554805882577941787094911754768386787180244250399313773708824503090748672768035649317795067040451618467597583987286418358043511096967818381761240178737759108729348612187501777595501045266431770680322743237230063001743295387634774190814728547907953662203433150614144908658201092821400025298554667746892241255453152349020862328105047542395694438960779369047972991177398915919328667007015126991166759438339862223762492838604757579783994130636864579844797020023380935906123927119460673227317130411100762911965013009745513589918360369073205940481091048521283032330924966787067409945430674700628677657402548415866095785285920731410317261706599371126999040281654514283149194320676279843439977069339324118859585931984337339880140287083989426936708749156390741633895764637150392030340640637422484724118208529436062611661837194051992149738897727059672937060498780854257784778612050156677586677437554047594733172385612583201118025748123911103314991483136681026222801082495509446955079109520592693233080330829722795057704741997862574385147554331242184038631141443124347593788820768152781935346858427128303791543463521562558375353468750749594408991776278055836470003082426250697920788224441887065067908311741840091643512292745215021617355953467379935763417144795933138585080898135631169045299611582279826182394991154360182635346153920901496622213634776063141353854484294469514042585559616863228276044606865093430884500015912791617008425015475298068205648887443422610496860913282498504236860764698420965850209662221977702329368050715855421940366536825343949764919980183096525191991921034356384631519647821919507355085601679266652132035796167305675073843424322524494863864552495759893923744716067758237702104566041443899733770954749553763663237218911058562185846531065848087228585197949618952675360311634655633429251573729338814158648149693511474857559133531033527594714544957468243120956190659086086071495973884007201990577175152388023628305133054807279661129218375911381739502347776990937838671700152425589316056603088346663995493181883825466874899155602420068084185970138420908937135340412642294166546920039559587972395465058964260110873269302713727775861563116813183491935788216143025033000606480424626619301662840661511722050145305964520952459744615027057155381140561387773739583314842575672462690831514481451125247272958959383884642542551594838990055923925827413024245964509340268547501244169738653470649674658211024158632998458908287965688488044930628496107474494758564709644516924896153812529478860237079898349625549532811583681171387476850652079673827965153037534062353976799539135003393991406249678801220551665927365178387526053506193593598710305388456956384448486751149483230965614160116051800839287682693998490968833855946997161346768111742225524326731568853758067602817996346915549965383903569069822186774615583565240677968089673420944356956961778495131042204843489251436324913224552883936607597601010726959374318217368566433292226072422873408582420971200098703402108234426673867323588859082448599471811723008890873755245919208123109135446005190391020882481224636244627082248684062441541870777759670503788825362969954525962395478924101231891089952940639757173478833216856304277740333794234536786655174402796723568075502982261301970515841431554792804421823564535920887577063403817897613543032703503818098005926654083212487553952522420627010169722946561205818570194420451939761484208107432620465552618812432397601678119902416897318400232892243938553877951586558304835915842701948205944128158782995125138758177801148437064121295982783556840233025113281586468881941191081845048855470767283681697181303508737571224613798719259796115303596044045515801403523107921413955884553302488164817370606257488774997848287384095875313198487368625813522877711955563736571892233903325680860393696308924772550028017799625209707597157521278901332263159489568035239090041923527330771922718929616499168965625533903000853058487305171155415054841483987303372556669373977799290369337965642514078948174215196909294622396111523606676833380696234317018418134479036403879717670573002194693723923990058255202352880745606605967662477299157703036967628147991688705796090104607124556005718400168011706438773927760210349853245148049332391522168364554438396094474796566412222807294287970479343881363662835853748988728814488711245692684373601761134994151149223300372052364884309207974723979624528247180320663220326926228802543665039961934388747191623120346864580772992221260604100059964827782613806005968536947833950523942257236082969615600486664974066824432181079805138166012711852858884942423496926459168046753911962757627083707957387227941055220239953380026541503268520889567915500989055718084431929444910369724381040212224891895718988563716979086310275797093171727078650096532711174037726905203948331181860208630716504333245148329579533190677663904779929447919594935228665233293133764113373334995680779021426913100263582528967328071710954591281419044901184949239517875483157758631730690338697938538662266073835205932135777937928830890709290707989993155515032924503715648156512481139591261354752337917872381955591720979719073532198911757036377886931249914161450930048193491367325427822058772548866896974518049036701160870819994520385875175902432455821289799877389870120661255938562044991097001335553558710495340753669405767049178759025788555165917738461051746269822167826369525638391158642242147774313090941302126817689961873025541604856073802103093084036240486142294802643669644765735902115843451924230709865705106573177124180602519037043917517198037270865441356017513879645294902666760301735604766308949187525199551141638042528651802136185147603787733891919728152144951761357101762514169273642313431447486358995051332095444819734230326590473549517969862789381092962858926856805231915980713121785457973500108485735939254394709124750544888300366338329683869164730810739026481708571175352296488405831884710348049047722901960129953378241525263383130624397401713926841246997829768547057225252744089833269208010496086783430126463316761813568118106954252341319936178396678731568143524145439497754836477296655032278831923040133086390063326934942241585310911165145042390351030379808573581898569099170952477669492737550447238971666280796507521667632889142805266162117218856496711792230012393206766379451470076531287554427087252165743141867911681566533517657317460905482525129490340859121614137817206405653769860129929179369989368705050610426392716716714371800445661795648608374460058157100413190471388363950670584113408940139442868857759145310406135030218896067754679117349358175523535859592580814843283104093846365632825322806202159381652665685274347632514414284550529149096212224486863662474083971742941414118607951965785555142100806170127672811820323280792944073804375928151233919416822273010319027504645466766072616839464206745268025941441437948402637898764673597601257419501419399091900499322206407035749358646037677130615304608458540433617000672810802774223340571045545030493090595269278008565379895464760244871085053540986203161301039786295964580807489718438120456096438217628718080020064100845218747012784845171101452725644984582527559238256686284902023156224755743865965418691233896743902971995178818565534927693372246753365021833397729858122618640703730333510454837464409904625570494949414567490209087081793233937960973247566097422215558502815986195352584587883331624316167868292413394797269127066613657830861494661944856749637212197678471147238052140767063888552950408723299424615550069388898882867150505792667216118821089262222163610311792589980158971872328596890948427250039776147611677996203352100999512790328578117390109501236261264932840030363106106466780732844696494141894337298760124368210915972560022621161570662033275574094084414884035173567562945462879888410058096857988473891419928192396244730446137838951527880467994879413403582302927310890938046144123207734882223782381383862692345513218982574894221654256594243645520886389323650381217558195718371482028486752557670386891214709765896455500121576920722674392201381187187922885910546687279148933486932170488219268987186204480289503962049576670438451439823867256320400458130182108757088201147884006740890443544353756196389295965050402875762530327703216964378357708638100938517046349254727773447011589815514385817262911601908546312421247973945072239254679643550737591925182379903821822139965411902981059634009685075526688337895659134187654953612383694735708812252025350656900367743041456118743142068609286912177033613711052461636832873326805746804996528973675625268692678609367064558305896940279446470846625416522277557462307342543454059531826468076274346948408992753576368702071275478672522929655212006694416543445006913554007241382089046079242101639875628741285241567127154831389160379529592107712014609514908488369708463349103238943601647922891189965699875927853219801453413370576980521865902958634635963126320633363561883518119049117374202077819182648966431405556160203609194914500502698870396256006819482565927725267089646518009340507641640542601726786308810336198873437775799968777966968590236003855935134924708050567000346750107435350940735534919859033929454278442131617492821609703536008762568285593738133221223571132564250745490581783632139548058156800136594412129384736309875014166496667531786313994488147254262285096026034901598129943527189677862354757569569579928850294647760769243003139086943041462764739532856499586486217518810566323699176717981920599842228049109428197056862132915561007257095273803722881537746895443874351730606358177293857125120246061684211501918804116504386062468866458803472089341946914833714694839364144625241807124812181321474058362431486794213404637815609679500156334043500825423300675339756207144722925617148294631534132782793427832726435446633844979521522576251762967629854988659196077698760006008909578769998927524015968984866801126079885300794817394580976884959646827374351279605002977083927409493531714968922973090069951418128972493005858256966394124007800299529217196001405714789756123647770449847474004606151904046284991234623002491493780959659921559511980863130471030200158367377346291604409116621437451675496043402861595561783141863289180755877608252023230444274754917972033176606201748205130485547611387696496862763705189501245486201660524913580898069424672274448578861541235287026464960879283046345640207987399218501985579036547559976547439448475555910734242481543545226610126311557318815935649195654599806921162051662769296079461232096148061585903249947103166082753671501947523046758845295441195755312550357382002065699209922069293792588922092523935507574733151882083725050730991424960419377512115117413794952174321828096089074274622849550232505102052082167680551492256109474059511358920678284157757400898229337855905530465618014664065372555621791235060229697532964939571437758477354018635002021217883866440449740939979241540370762108992158678038502686222625287243226906450069607226730574940191670331131036292386521630138310515642730019184760460915416544473610379374809319880484060106119930070053634636380795311721802035127175483190190391132931752336434620801895201170553125636457297498136239649076594851058571539906780985801651937973317186449991178405854168906069684132792575460041842259154566079650548611263415662242889399708136156646039251293566393891566070207677939750247150987482431300700190278869429137201310637528482833415614999514995052118767198999306247552525464671750904776183710264129012777886613911033152266796965169078459166026221558582166769915692771579438664495529349043530403942040364253719592835631513021963977267350444018086455044619726021955426553913993701945645521998093605357053832299726465815410497997555875660044782515628961558278480714887654584579771649275223897088048924682327990199372262173573602406223400046802238908528366342452011817937114651102853893522658680147564090243150733210189738110985239361776978180608978442038340498959905946144517872149360486219955315600130690629338394902193057042223081137251225807159283150300476967539764467644282965575421277471592369723181008383112717384681479801208407147903735845635729468584720948219518134418136272653155853243247615354449215223726436639427590540077109645464385120683410097865723478639268782912602160234623334318808803901795162380662353845376112777686665764003475557678891069109672552770043513303995515814373903537262078854525231590530024081841493034396531107614457212801557823104795092092359323413750102265682213103234686799944320201171487530068470572926658795663090662212601961589352353078608935261656488814944144075636523586360707336197118737933855750113721037173446524886368673552216491770831183821576797461204011370896515586373695091567687564231796920516867109946738489709247912820091029356039925738496138246504231926316477009575360434112384387458222355249125199374824758217735596504094914501367625459142832972249853558979719680771159574311673826689381581885275758366504646090547124623270391648690998485146141745106011058730877148532308818852482808719182587105646434545017644733369557390877846138408719866336964943147962574655969266176147136925908254415759567670809676180050609098459223635075970150002180653675148791059394035622413383717154304343417284907526996831811815044374718260998046883308936593532148182729502093974853581100027657587984064270768913471123508216034345086098977840484117209815813329788800656280564997963556578053641452513153187859567022690117134233622866692350809761334130712029136596619111587419683239870933755485515285411981278042578095005175062852560901277386617152716878210882310751912242550466676192195893035486964766484344398301857321459800232275998140162331192723718775073719697963050417184939800677455001215610255676532110578394315554706472705390880005002149500019832253009239511604587270915482029347161463578675070781301058305992292657351475053173851807401629054520695797735440323774470788003398904478837643167723588293618139464788485043824869425903703156444160452528916877098639230858530799317026198016540351331326357544312484002080384465733293855611361171744346530540827473002243596301405085992060193241385694312766107346548596965089570384621147145710512193910454246608886231596736442919464083437103150264511637844107931949398938484298286996732731828366471747957138778176686279236270222072647903574266351240118867290531325557361634043177181099269934669623669502937117544569824478982059999947422080466005338536883927444818319290978731301876116253274085922116254320196653204208165785111314175312534262042672033171284541844977469921179377279129271773813776089296294128681163976413560853529987534083208350106150837036155828600873195451405456770139141466095441123505317073203925021016906582185042018556668939691226906770031863518586848235552358873961111283403465114555259912272180045891707047632417799055961134504539483826838058919678461801751342899049367825892812781497012543743395072412625730588635301971526537142771181073044103739435087298528296978934093698813654175934787447527665501951090952965081431457745765370400677377456324063055070010688573992182177891075298494132495493343088426283499542349135820465411329113791899015428889034357032783874093712497082060038864535015690172213030458442001565056835059386127190888784139987742025940726966783491227077942034752762072727402345688975431237800979043105431388212359624809356969344274704232366045565435846944924069994261100387534658744837879509894451258637864215816419593215817467001043374411691586833762417327357517879870249234586149156799130356071344887111664029990345604639463259220770877960573406421078736681088356439622250706003397507668629570954045437879627691597276302135024102258028629126733010227486330412041361670589593638814832689528571750938607596936276290984468224013477693851826740681233132222236338473795317686204818923296228630697615974101035361853265917110901163979965897190770148122839418777329482437038828549404734883636433011696196345859570016633662598436195756092721333427472656590069049647234752827747532367799711672936443480798875753886178307164944947656926382092435848463336683428576371110944972045150197694959785042212097555601704528928673927872466864923423984143951420868453293617609967131679538441976265212801241004223087260919418103872751257626094028855909492510091797279062078959705715768223752757887882367453367607444915095928148752120449589992144066383360100620831768498990412464733082117404681335282176063569354529406736309519620461488089611250039999997079422735700375679343617637541502513029529840077311263404423839567135505619176418535875794311958003086171402845720241459590510724573866925428225752890682740924837447777754863670611792913282735183282530484669788804459863210424183619567885919632870682048537780793169619706573423736268323304472126473616156126303419886588554222508222500847416364337356054091074179132239756937380374947302288687463220156267313857150803748425862597696801006321776318097066840603750477866121995062875614848264603403478566444561226561879149882427572324389240088441499299985274488311598252809190675904873277707954286180795410202683024234861177281799095756594394016344698174304520235998369501381455386304884410691555637054460142796195126291112720184416057296864424793559772022741479684276451082419991493091038663733373669252781051840173276170702831775665048729437351927781172601974670498277144975988638669238037640346019917040177817176324274022199271912215487337146603756254075939299379942837853233957744458164885879804537677128694018986271062078393293335341992682163399073847485470481715390524386960247386971897031193823578045725052918301212914960966734665434055374473154405026522125132794896010115825902680361926952428399835350881986643245446507957075345885260409056318109406530148609714980404838880829552098690776604350686532454735450128160412156168965583152488563887889691283260607760571978457951930378083066148923728524216874602473293631110611572579768646799011398408915185052360729436024065759761963272322791051364104901578885387507576550197089402216872832213231669700860855715858800583108030607081264731912045800289528588814561741472530100061310006468771299360218060515056052064402867724026256498101630486115997514977955462018657157031266952144581323801722740995897579982766157720553608381689191981119732605293459445809114768600745184127776835857581132629128139947516002996585014919427072782039195854261946116433605522995567281954965509654558499879850002965345311014053305450790023834405461292364275644156094540272200543115767390963737203579189474232290049796999333323987537199905810548966916546289115832446545444667046945973328037531669714855434698397856266410271275738646801586994705642519620362923744891019519994662848227211348781815125970875361381891227093738055348416921123019550255704203766868533685599426401676781678312962002840396635139623699783155359349511943487290029205745799606719472997902543260961189588898464220706014304781894617694613328580953757779692155095433930329633302506896743696995101004314427237852910159291548825109150928219738188428428752349945803107994927996812439974118968621779548339902122488185417461717125475619875310154813687060405027445681769662941961598983617479352319786615247932008365748112010169141635210612298239398522809414419048715681549515215899732382819449592848594791783439058278387389968745251317446851544554600261171427328971972947926220993419413909583720734481227465028031610921332514034892221951390630922038054772533895675055750095735133484940176579192222552922885999652987359877436607106038265563031662227029326451929917559370070874071785596620796210996104774616469934327635329532458693470010203365027840587736513573803556581017061749694044930057842054920253314418415046864886224736833171271634793397364159264413288125623901863586682779920076839072499483064050888824352721149474000382533317261860955450528439130661572120364911612278189229836467006536468680349442845164147603951919436103937285223744624611805334066483559950925758482087431310821984009378601577667067780926626606972388640567990567719386694690694749672606795029966343670148736984237802684049553379860496592934724477178086295809995967306530370337039340139474396651128052267191618207340313827041414473572437298399494672984451148219456970207541862480273220705017952329297772396784396328490539010472035697525993629612966591026609112499479191702841158157515179710516291439196277987536150572921745261457807093775134083917944951412585969349512265337954237997780817163678849526413678468587758872973647573043996259862976172080939368188843302007406158799362238780683949118559219113704649563539501716962858189793524018589800502951683445049336385621719716880578980439201175364369367203227477911460019694781032147267409891024251886370154661049880676649123809108452760115194917142894140332497627047721925892709408453289160644356687364722621036041195344928906118539609471900645081645613620332194853474315058455935066596659427664791106335683456353411281998064198167344852721600039105481306729517628920482270887044286745147215336542737474584944492269837231896271170028459133737555215113112351463690096742834570383982108061712404746793699019627293535674894177053175013800186075904030699729384619523168330846240593560345022002151157523461736919083760590267463273653992929314826833822155600749899049811094752581588425873605969288377861904951456486132306003083661499447496130657526169087568177438633496818785290539424094347215596977732771517452619908431775812094432005549970680868667374521898197909730667818998047501302621347616953111454608941606463646849050334384999134074254472211225032730475936047297854262927417747173061664130872656778953126475247151627599494279105065167183694730731232289643596799135092424778701951522104819916358310391733158240494836829679449371113600141917496847336891559033532109238116769143425239394263685139480720255693867983846758831229531987428357772480589225469807475059032098629925255347392598112846220993613627792382056351378571826529952560158263681842003576993813364657935124383243830953923518242008316418258483316948149831006998460358612369218906809663652366103825837484554043231014577764383407987281878467986862704043538067646615724797259241758142762500902805221265963501350302147269108682443457504628466859177251254686814571481380898972442469122165148284484902599931803160168468503517174794499535705519160431307744292956029502111328637278417473079943091068034502945967918275071855992864357754239706237045185095130713920168663117985020310266025205061138045092338025273178776591721592630643130278654307978562257709109056759896430701255682290034208795280008524115840950324724894885071103237139061021641637265627516526276707784809500716619694930921169434095492635808331298858835174719672083805112042818875079889230158729648161377322401356907927820407912679314875148299747959964432645166667478778874245855715783547765602149230542739800008282928880763220313925184912668964637893319812515926676412445338639179351842838418736421864797914769583033337974597706739919883350562337064798373470825777154952362764830638417910928646206007275261316001088264309962064539517874584783639873776296893330857818868533570471775078405271346202271213671767763621869964571357535178899253090156944669140572504207688760525646295762827874548849669039992049018391939968677867606779475180847592942409511813097914717079960187344314240693254507562534302386237082812885654650304802308774051213544740659755742634293479060918196841898192130549624584863644792811782063403240479379835085138102428793096477825514119499258984138892906116243444794455980723560989908300487360868862740068054448728113553491633060193090356051549616043266942375922344157331738553721571324801495851002323455907382221002823004769622532429650316651348967502429185114208101569019554702606154674788681482159212643105590625188484771694788506466322992324709458666445861036054220352110702868103534717897070376433426341506328532322046672679342001478357888777987416317083765804349429011395872421886944994106319572598689210482699342119312774574682720812186077463369504979310821258637264339995446674787337646346285019069088002626156890498200338846646286796657222992498727510972770575821065959152778244473210273672983682677456325933857913271836254820941281866704395973704340970059572640763159743681531674200263970238419566144970203846905082427220015485831145531917770412576966093966962174794258917700354328417378842112250966401482582802836691901357401205715229034627782048564463189226956289989805432161191712135254064659957573871933922822271760768084135923352171972399609465539722840224102810957808614331168854504032440526292977410550551488386978166718413572112713143125643277031851129613674636254007233866046183356716738315316933971307289930097675213378542352515427712313287693489894444675600574950149231204246532047302817986613443921237471813723188103532124445817517888597319933481712993023507639925316600407924444695134609724690879734421964969077721736616864924607651389817374097001555249803146392342608299646153784082637303494936421421560952939551255548308542913075712633242683045679460892385918721640541988972113135413350528350077442261884851150355134138702120698125234346617866811560279963547614661801045763004939070220193366660352248977294160306289335484792312773814206944132588869707886663586389386142879264749087211343788755774489922907239523650936992913541841190581252280536364437650492101391757190490085247670382329140361013616494279242203688255072588370124716331173520426932149332959347191162151614060952042494972738889125293954669914793284923569727914478567522433958735233823905393615486053631754817981235747444112398136780537654585522041522117563373453449909476085282669670814611530357257463634611783617202288355724810351453456334316705942809950936338967396498677321913623299096418012240687535878887817158836042524975253872898136929440622692958642297075243552232118925668655640440394793326042030167504055754629349213853837012172889670692116018630354542382972917577393359111107362817592876611908305441362546442983100561630692636657161392125527317313642538652674610145190676125073403530198532951355168189398876871103688241620411559983213752370095296133960581585775658907376095285651132826160286600463612214650023954209657782394374611100915815152546457124594589806210908870024321061493878173332123516356505587555641740777068631907199171447649896259662914272490458678321383322083241201294740262180282858427907371772091185232143979933228642455500412447354778724379718292124340443220987118315789669444306527454526496800339987988398600959129132033075087315981604690565660619301189689981459200753325876281969136960455810702635633501715076295241403708158849224251878915960680930872465072524400284388465864146279251872200125584324448298427009570548065133439953014101103082799809982219477153574491561125916459938421910974500233577742055555362918594850691039677692249095852792962112949397884867505701947200281981664920666241797491525837123336789828407272701962793713243125544393159946734410832841056691177827318740513972905579596754196653513782157840341037617953216373530367139833247478138589727773081038559511833816306308879607210357079296500608902573230218245442567339378084461839339812212545609333513516987973139509600884394723136046977637378599461813903869704189067104144796138798502004642046920488701904563609149485260181591945644625596080026391045787182066202411831633707047159817497766763292409597536662466795184914526196808355840453927337209306261470639571644705152510926550897429924328820621026101530647835727926678993057586312703484281794482187839382775776674140548385852831912048121912400504752445200982402051398334533916895903903854312808090188424990774434831678435078874370185262671901242872266455142980428769680885757349941591216483828675044878135522760433491090456095774144852248287897068428650172818696921430332246573601043736941557418293822821063092739390998023693024791937447789532876060556692579935287665560583835926118657026509894761335085179911045351675274104418459052867639569851730612209772741620396192684749681431870273204498801119264608326654302226724095738863389411430182987853428125650421477016223702995619395748782711944093326257231267532602209068616531989861899545072023762489332222251236433466136392296795262492850072802240190631293206419968417224802566252364970887850795510656994091670193747185308653994335014772655400414258394820343383746374483832766707239636112223891790687362960557640989157880205891295552225165472718979839964875183064138465080421908528464520241734359151384286765181140701601110642107263090327987573075459949801687645757728267757915453836910448864004459704475381755112562690977289656645532689239713916800424929135635612702706194101450219195358460783182063871361893061751596041995164291327427848903861305573844387269313931169432591850391411847529657677788672533119128283054007172482230413478058684487705265990337445722477720363867915821446507943275866611078624068974550957757328058342126729113947898020964165274701050852359687522100067512784307631285972698651182503900098692155381258145073787109356460239476954980695491492887439068669804348452714150952312360681090141366724483380347759933150141637034745524907364945656820199664024026734808702249111665781397153068880212851847372987277849272604616759220122784123880955827054732842354835556002428449884392216122936349918027838887322081124964159774625389394635705303365428209648116786280906731867023865988866698173874241799895675409628413104495663086786946307535942325198283099030410619056254600036572413463731639934855415452334885824824892549151357898008458214236569948257480527476052296405882578407654187724225905508567224534157927744119366316110931052334517757069448548450749425437911299122390171883440725087415794845248571322807205489369166434067805487583168163650589213337254632082675922617144787395383056492064808086037674391616029443641776975128958103663804115848685454606704229949723245154471723924834068358631421224308050542621650748694220418631408022400503554902784263028866700344860632490498919030823204662737576240890886956428624977830308951675858966161881188011090227347999666225928656085864321226159962552469737413874181549149391998622415654143461483812513904314425509506769624957148451855464448085983649905271750005517102188668851547751789941480587978752136537228732299675857083164637297239907200261972468036881196960538770421668754868285725030878520058087760224039660013789761842476944902599370326540037258231827310808980649681608576773206943067241890414283201148281439962056873083592184797717671431080185007531388272551178268283040622844534810985079005506197547588886765570260264504375724858876545499252073580395576646400401686437502737966922959515347867542803639159552591948770883035478683847564600417457456836716062238750977250521420501041330838591642334103484941036025573107428696545987961566120717606761248355148746667170810930548184464716096204914991381899257255874053473190618648302640720869489978426804222061345069996728481100617044545877075504373284760197299941091109608249448005876499742802141038668924915533356379873328798589102132132283663095957269690092773195691765013387161478109748019030177605903523690305416615148621261082351141533899048602002120040337810225932402083700968410763907180530826603558051390001798332892326882030814025547372991136496766582506620899281469228811907009565645447968119029477041358878521974331136426763146885189858612092699350554878043963734447183397420914298116366634397647639970683944636340520928171346157184299335870260861845637053530611162243518045694934918471807531206617374743682703005112148519103760654488512296343421904221030939784410150916299063875160348600746012754182217426824134606505614880198251275854207444573798734983882382775911411985857787401308958858217957035926988383565718348786258600955704182044255605114177489186218599357036592001394614417550416660945913543473904552299357158870665368178382912819647688111917830517834910360653871207922221677221310119193507939999635267082620025180024013086212881740535923910054603264544891561523300162969551378954796622264229355077194030389498956764479198374229034060331886632673962213153358590438786163053708361605071472958789056573748779863160169954855853275741130067710080816096272003527225353391660196576431279472010489774799857709747522025489887167608100044215686491868953467257619901913701032149427460171319153557122919888859638237011521135519153652021003442391508880460304712117375843449553328088735906431574765425355275057545207740628878825935445486595389733827041236840541605691398584317509200649044580962238161881301123301111914197794096156207491900842022903208861289219736642978328403617082573025425933869029218285169984256945849853126381845382559621653019185727998197960766798546574654542674794971397519733820831919809107830033002924224727679321384391881296818384087511319711508572981932921299308427075911680976388951669442055218014495501916566313904944617730143421934086380212788457477421022973898320732689403072914140220666473133824921725640956641727248130297068576670460726590537742499606185160646011302887379709346622919659938074849596950914914575712632961300156240329349016031946528768208505244132463998686872779884425775113570174272205005845020097856153489170317282213144842415890333991919405189289186150977758715629256913617479163588404314499000191722510023759531133324578819359320636616757355277807556328516629252749126760969073413141973115771193121030972084114084616148515667773823467991550296701990186389835077656565213326807613279370283253244341056639145701389279984063271705302333758272742263901289032894739403003601042942051912264874352652398178267926072085024786693003375473500279895361539484778956270957437765048432459456952285870906649889198683217711798163011433573982951687160900687856640823357239615480723868419463628084340025793440160520991227939922728658360457954594581563233006678687345662001220223587513226124969039432295608919091369073224688940931481587112476785204583761327874317220255530933314124772342067771394004998599479083277181431115099981739153189763372950747289579439057677151654965181930782649519578857828843499612485808871612132569071376116104337037807998517641779507337627110850341105432729743890688271583639309831588925554280821986165806268961914297742370948194374389938133955853981164920342591334075774852355176113163644537443069010473227016630791396035983764056769792100284807239943194674499649170825183309063153006577453268929088817187549270530004867774941137520185279762968748878653338735610880702654303523783479940153783159915008083924047703683038191550664716266768639115323030047174545248209336980238931821046911460730720433364678168811051156427965466001125649657388189280939245869478317701059314438211496552814996801607105789717926168947444379755035920066184095016728143079299606762974739915129672654684953461792478860837424184958769952008613323416063878544509226852008384949535017097310346975028475636743720729001734495298635947256686447379438216244022182253563032777629950728016583773772269304103635267955212150846455569537783181312465317019654997487495166145651333612790923335051486364225870218451172074743406271581366675418142096271760296708140796218340667783444960242059094794482249602611941589069380997585727095175660730600302964039986728276675464381041529730637399641326568171667301900628945767788838746405595365042228105247561362516347751537292163154373874011943396809001127807975036198354451040879950923974322061566707721881611418514959176615067728670511994991492849522828887472291577952593787095741636171550895754202521495122853122966316553707399958200476751817009115822203202966038396224858487087955245312486468901105125997208846083794654882567702544765066261468485695443809885497154773791084432835446361396860782166055280751132905764755334604741247523464011934405991620570437796354464852111660983438871402070388786686569590569867828391874444945166775609679184423035752089356208232821496852714210476167752945605135073347878308671423749734909515331332469434072299349999908085150307528270385721133885253405403860900132061496921425565973954181674941095565540866054018562289488406016924493331987270558607773270422437456196855015931818305877072264490733560766875713129130864313727188394575361444356609151571926978477848956316194268274344131256602390230857685825397954074230705880598058018860455126643939463124591388739327962960509097638438923377601876764816731015791159661242932759939105049843180228436440795603119263904065962860846279440316324364831710302170385448210353643698529500054821029313648525332158523024654787615908430742450899676114947507352011861667941240327587891661778021165755194355676919919947788688040759214248944019167490630831118339124943492625890661385800744210741181541652915670078668815029037582807953698476415515709216916481642019024725365918085468743812675180204929735584501417790652701995957578125201411904836614691270540073635527759172413110851000020766243952048574189733510601564538635689478088061676792909966359244065653382353451390212338898654888028688193661147335821076367319132121063788543964082629216399239473756544326351915917399185788148881753240876305902681416161856192616999880525048457959162489423974668172139202789945738055483857928996729603175120902064789589472677304267074458037800719960624303792224400293996535818760692547202759018728441116506905841588465394080773186398800336604914760618290765339843013401891518486636455356917805482095079111986119752213162364799933934193500108005961194303421123494249763698974136403711519068533473454311556720439904975776947944194130602205334205266132279902732771573444867153843342516570897236108375756098865431585368713797019412095495058625332230625861412362959622772980212162128442782457583603220431824666502707632362534128359484466135437835695986192567380110993828656662419560706849961873079680361636265857712275773666705218914360310230617139054114870438765963141019514925439483791296120927249468292368728622429411870653929734219874977729009751027020113566032600964399064207692907372941496931610110985037741539334073793533479864336709059847458636662427932809374790272889308134652630270944258585988304509917957021185334483252628934783407031677245701914410060701895308238693198913048717634327788049187507764220860660262592850917039530275835176991180607967867764485254015621955138469152549527669344514816115258543363700884316586606570599845059027994431136724675797882821309363977819247646617986230806068377560050512461080839286394795315179484990199843987750372876147613012183452136625896806361789348782531143148749790386029375381249276016628979379865485643404930401449839411421508853959683540526384383200942388664823245304058843983401190137139885545806783260299238125464776832326061870151251005278330204302913201899415940549675201164809749966736002124715634594733177174079347483810180654953428480099442370078802512124371994180013116839538406232945212181848369847053792719432256863722551690849050133550796897708725212779223395672480270041963518065858499387727790220509171010001962196643827236698403127074977987667903187707236496024518873663955502918068508431001114412788121439167755688522510900438327975001665730609255266796118967621530977450660824700177579900588608039241610920955815530436970214543961613360195586754275965994024725976593479058678315434564657935522335261853217736662025777913028911919123489707749796313510822621210806017757906957471146057744097866881397072774951081928936669983998695536849007006725473278024985283068642865722241720733852791865846057486452831230985085274426702040297802969980712985839422395034243096644949776328651013871494837034654757852951161122019478463809376298972812356405645760418540003667109311191952491327506747410240685522646072781967321317154791167536064843520723455818799075397029720416985530616103584310682040456282279932445135217113408080567529041057486751340358057940759924243048482862368681315005885456078702742739126833196476059757993889177505141499879614660354703503290872547510179821320920695243500556935388669773926056960498340409210206120985349180645616229075731779877088264278575784035159169173530674689687588070168666123900482744536376351621570120191181897921094445767121268380301450945238412788332843653844345055485927606300615334847637428091029657137328838677641872536679964281347876238322668685271436475562041434273959341141486505716211216541122181109906598870303118093265605530798491321648075665578879431388523004772952154826423885476234323227787428996917808623787844977088437461465363290072349915581493611800171047421359252147179788780528627973369074860308147881652651220495540856523930183520814651729955152274563436512064309054919604639409640818677453606303500431758553326321097804664183245986017234626420049903050309246810533703485644367214104229034601402741417074569132782853790480105008903832350943631174460713373227707851142547263553246295770543076153982901930049123383417258523699455926078885926899898920484288987026918982994694568669570773271883753940554077139201487824601171192639301306569386351912734639067546181143481501507890017945702373780407675248920565560510893036223395114465025471424591531817587206073060991116709577298379857164103076116555771959879400773342620280318716538464525295611227124400209924152575846479062316975571403258371108128658373360809757850970555603066332300080750261860718852826800638539220263318062441608806337584610175791159981481301525693887723062771165191538371624882297628165806415954426246797457819577271079854813178721627881683657895986351900524763840872386936305633742822141010606231100301849889772514569183139535500484440112075122375068577242616642119897324416380017111303473202542274265571549381014222875949046886940299047621079273505019706852162238577730377960842340818575117676184362942376759908716854186713194787750981254969118268099147479736626517201140369849176618804929495237765400123494557805921972985830087918554410554965610556200232737005708777024729883523867678765944156778745107363035913852954088903898319797129184076571433499373100301088856802850330971451664116120720017131418864938531755900976621331013223364117676303119227863475447489515391586839243222009382032389985636541034659004143153227423022794594329707323075118987660434696963048235391816350520672676694117665994622500415259945479809050247906421240429105548669562740690609093325255328710709729610180204389475337932863382681283486410356272687096558568516752823131159341136951177779216250545043269008587995985661579514690171333991620361198602368135488698685388059721547640938173394107830828474615288929749179076115530189736176442883435091080714091686860738370663530555217156393075237505608733714510915109314839758632237434263014570088340017767343759477466906725268592752577530622575968182694480030081295587003997028634730534988128486490913487196344235790472763910174604711764346310768902533193672940812153946090903416772708385413009485428440569380585699047964658110825893764834138016465039790889332252695989213148998064445461901590065839168841007362042391804318406233776673055717865304891782864861017219976751116820359371115717402556763099532531759386190826639750891668205509979876326090548301314995117037362977525742376862712191079126197620144115009276934724827330045246945679133440343768140697599765381642066472388040559596005592402330567913140524005026124485541211193573512749827949916742765964881177005959686538372262780854218873574950810097376548451591512114271320785829189287568415060494641919437866578422856188379390481899837475415308526493158254057397704727135525588907693253738709122266063479442281024750476230399216735679938771929183577408215643052105463952272770397764137964123762217444503013853408531015443513600735424675274567787763739403710798993627169516402496867739947295359474996790178283915988495399010854136942157220963140338749590044350956987790659334731487382102123519609223383988337697331914338261050943199250930759242950652076761487007896789250723503906837980119215158793985573717405265998123072766591831453968463067902197234071290926596685994558758761565919650585531818593075349004977741478060050196593849721354358338400015724999124786991732491349406801728603967738136778792487458420672515392573783336974736394857883613687697878041573416060721881768993799838400163773454412927395418081817560909759584379599455715177658130630016629882144607234129462060881818169553707580171870686707035081368767345915189478711026954555167159041618322145899955108186574671310446054005237895661572796504186208626967146322818863287929732491759113097115415569145749501089165164763693597715612078558165535076797208606965655325796816705688478793656387875789824751470053865492201963770419729299052237795598438711873250090156442759944051478627696795350978739678487748821516807086620886986161205418685002249691356081351029320970505146691969769467380362614202498277739854046122243701845745759044659387652196301987823047669589713824099460787015044268479437612545831634265200453479794534026505234810349368070074676082738332901332294101582465890512198221397766955472542574586599140262793145842055624260130427421987111930338215192037351718909242083050288963344798408389706019558788052870963731329744802550278145376360138576406817836845745616666314978540812729739571348167363087433311957905916632399435224611504151372976047924960231012279993119125888454014145788769402060605193365300331862708607881444311075662146283086897974976566976648542854121617580662766644631361197085304816060166495924523003573346561917557478463558627221884092001521773310541140098077974365392889096483774309914343619656503885709981901892024172203209922267294595288762234036392859010241203395610174561622403063062607279103009830006970698563006651347413120149327532729497066262292711731893761026536566343864666423546755223661251404274361265083941365799627023429141653477503545661209362190539730927799590179055612490203438637192275670314620865741559362749570070828755956582476431245696129423497004313671223959317332422097483055770049056076288055457552316592405058206050960579100983443445867601440762313337351516674130443263675164339882020224541006508216699020012086542847338187514635011696260417211652322468600749898933548854889115336499220196932852646299193693876545058325473159478775350133887764953954224982975392782705165527708078007373399557085593936082560995845261831190561255578835420654271522374075874869729110921126633270999380990698256699411027788207681774464216836117907548188984415057488535998630326666526306913770022177442484245300681512912985166578811671883579278045830169609550992605139637025871436408264457598207657059729563237153259994417408791925752558943284684382147446625007340969890990314150446086818231273781053807255201838282754115654647540111808603302197316662406250543537072360064978006023129147575963701108580353215279410507229532485133538668896434465820930829946646155014323489283047649255094953204633210681445398226541983936018634707518821160790879763607152272649225769899255270030549605934052598280330924765159512472490625868424544423459608172574402554856662048025532527591724890438914675034850198426231090352795212383051566084055570439872974135837637318364983160607883366112761648152549263183891820895932242996801666925699775121857024775953992219502926674484567760082134440038495974163982704590839780946325956277672389260847785073061291854708399662106551092516375142044507840103283261360620973763934292711452574847875096691908699643875119623537501554587995509474742070528332651646990891021952863366477448154713632034146327351921740623883190846313649948487019957528371185350701005659509652059011959497145307903990473050781786987236063009659668390236999020496295452178735994251072352889550550119571865924193203879114989249548472407718227897749493702797864774244899865168897478698705168340298504700351063300043024193347591087059590942535055349215354506585611155651235492921483688113822186293528965021803889075929925467235783163157502341575815862542599992793697600945783974904853655008778345849627448954801867283772317898450672268381788178926480617087761368249575888723402670098629697072486915601778307123099051588816193181690320901908786843682881107322407781932156911243315407374572536676652761666743894897514410840293260395713483603959650899549527556681098462100392813788699774177980074946246945156248436088927911151052614215317017400683103738240520695311339195756111979961866335139920473841728106779004424881064366290622127784637125628734875870226540899886676792415562056378022363486945432341548590178378543604800812172988589163336356996333381686620570014943770491071372016595737095365934147667981983629377853824385436819524170614490934985145120462013102905965375027897715970157137712448580180847597036261263342048644528436777418238007967820170747523960601218568821468915384726016867222293823803861546211943063472638122431725034419932175077350362371778522450938846954463717917958049237815975200026458738113257329264644611465353318114893058681681360738401318276363919706989067780196266051903126813680373276855205702688500910785772711915836080191545839925710594681007294829786639409344238288119792924600221300298812870142404226573394510268399401914203348401686367039169118234788998441261767258624190798127544876856864873121697654701692325016201968954052619249529117100109121167033508342355997597077476759275692408747251967583228977410119973925356922075465040969183491507891289471660196778593865579499007770404335175210050240787389205190618464901118682999393339567800891026041799339915550526991585785707749690935230663726548767259142542842564901439898509925662079903563720850434775265187309366224155942267207944648303827207317702270349119411355542374633256136435593241964484612427286574543492001543153256799537477165527428432640934389303565391835741425642831011668359950456758531751833564985523897312499350658429782362574400457270483019509239618994474808821497829722185344488219210901150652678055041315639883260006010002600378667278252885532733720348535205753820603435435346832395552692101528107714327378061384593050434275054219601043831072153932443176776662550397081859622241544807819366485962901846868308832814943764116775333213720219838200960844226963946593287747497166790050808314789592966574080741118224759891178319203059615269322809661233992262516755519194889663324242515021682636499716416137763561821745825131759830338818728689840638780616137915148003125200482793210068316163742473251696501988926326500257002034366521181047282421139303059445504095646198039969654385468895162494381317864551841458507172502063778396827322836844942836776973022212587949839163956895362822426068189410694870700701943360101520986027475716319484528004383861992571971903546427084294265968877906481034504182491922777570080791321728830756280986652050921671645653504838624304029004323232853814417181492516145697575529934968986242715716935062642297412503239793091015082188897292752302207814080265690572072344897531842236099808791532560722450275575283462803846811069855997024325850600550598142525669508941046486181928126987736594129544318588931489316721195525337075734208059463278696019897873330960374765740861084834087187359286650328010999880919210472403035643588267181154580004107670718978662299306029022031105566566852610600216996912075623167127232416289569949834702399490722709488626528207453736306881894199523667479071840073485261050742646066849975819958876447922332860933486258049794186766520851731676335287093471044502968317873878834026452535509720206110312671319492875706146556815205253877804490310321616419919333335865012978165519312736065819397642738462622501259145402829195062577951488567167571278754090819156531293699171799279684321314924012280501245745653559910489522200400051896756557254175759327295354832621757681944217660434963250898419073013775986455367543712258345729688603715384975865578575812671568352817594521537586685503207633081655590874705120844947156202362925320884538195506086014010512544458811192725405960526394274349206844641734121479253735016340843165884217064391593544779344959815036348024888360487125861619434702178057050424946217207444691699167315587781803263227177200482079326171280848914382187727366071043745421657545887974765183993843979412896766962448429969000614705578970919358277070577791818496289337616091886022905832206789066141533575640212681035071430667582051914203608054491362898585815615310850944062417958203968900638180251816856852790530115824439338330665565710380610756086957953070697679208783404568690683623569955321140996755753769622055925149434783239680009586420955397662891042897904818452311517167699168342404003315447996978638183567547004838496631917420104232645204775519967934710352097131139520019472474073951668984563295420782930856679574985907736728454807428339737388721561394757052252063444476184280503086191531456364377346476357683804700692554163042382252215719589387473784058088066125658006154926604321245709441381005430416026791354232155350667766290712404280183117997789729683612193487489589105364857617019901358526990680676222595759378789435866032527988710751105547062910064191850848391171946641066976565488016579846868035509416596161237929622589378519259554876787869143088902583563772980787196657027162393447451996339102687483177634172987179669854070911867934338194711401762948486284409151783303419641096012154749249505447531135424857335496423655318830037019167749701055145791052835276108321522985364697139286326892138662162377707544028794732526034540304130016629231861573602951812867142311063872935853521127857013677200148298486008781644207129006044092904657371163983240240227012935543328243843795196172519367409970803405771643551014746788252224662584409132493594387778261521719467506093860153207217153058931829697679559659346072468376942103228883123925303062215575495051351719120001971897299846064737886562500651290932093236456421410849301498362346854535512941721297985785091841210597388920697489772358363263728487460948446774704762073410591001590006645901991742707177879957242458841384380478119663593918351656929593081863589018966665129887307375045972052849528194383481451138846172623503423459484717099975338905886861832162526382887936872056477933250224937841243226906231104674727576427848238215890162911861547038552940409020160686605319613084566942336827000660153794769280926584318641447007093872791324538885582470462434761390713042849669935256793164141843749833892394919346591780525296264720517196747314100898826870532182256330391149296896217485461197060542930585988682529628684101067213676400005832296006507306606092022812187309858075369621143896870714668239254190294852958371200842658156975919635233285004817271353747513036592203973437178931905769363643439292910292495859202185849738084271673009979810152416832960770034096191579001673876451929248800447569114859762720528014536664824802303684448069295006431390166937967038390360714329949174704475292878634296467003167437171582198355549155229463271756239983233654963284468704769853640214378765719929468391560952470564820768495817188572000016322140226609038658393553571742845532996881101899224610312214538012905943387330430686534917527077634478950914316202904757293674857277186109085774004543490068587161342253879362435117006996434300580133773115248164108569970218266229306678838110896306709002120259373922333480955975123018456652419429004884204689891038076740645621037370883869196179863353930866772511104869796535543319109598993872484968153356361397131706082768447040258474549828515524697901997117280050063313288668826224413229997181453191091241891488611756876454103879878364212149105866394928784109711838226679251989670406568514300642582529699489203418872503226821955389590558577117953143694976059740091707053525915618983465006946992844699051032895847402482121164066769797522931635336234653615580636022082548690147153425008450737216306588153811929116985418235638008340403477572738975255140951577141805660919256897676683456856281315123707471192591586833218026436770922801096254653131814888931064647054641623539822733865344530160855017977214723706711823297903668725996871848263607246100315044816860119635113243996691522734787318215377118836228900895781853410241021271282204776237611283459601846433262220033594425173203844815975652150056563252635118473176416389666359474682222570713482053285731989176235996763855793235368314013220189789607709444568542515972175751565048182113745897101305177102633949258641279436422843029212463173230928949760162799359682047465713425700229108981214743387187312770557435468433950796007909450797654820955044874954724620832082729821247231196918707215491663878567691025973852484890707097571306386501245681999955708452516926091382709127448497315705646495190281602416023778086821839099908790365773593441922240843023085254266534767168597758027370462878596692914448896847682572196645641035210662518134289143434723722648419272004605995218391618417083907564554757554652777419914442450278609964044595052539318580877194609168845525821913916949866674941628695907089817360595817607491643755488496440510983431374713805528849977733231229438702223766582990143887868919881882113369145085973390309724352792077258336077701689206948383652326840437390588371921892540478622789020030669276628960971796511581096704875947225278669827631562365209236824832615028059433982581055266192795294750344302005483748453116520079940651903170676807736601869477076131543885126854499662241511528721747079999063379440337098817999452050244760498747813059922568610628006844915136946360607513148188046414981523472361693086254590131459280428220704369579615289563615082939113528047675197228027666036447896515161652065162981169869501709580907988779377914305661415026004380822858472947843627745304423713944393959746707141765539311553454385454684051579211607848177451442652350924035079360435697426352688596378560103821225487735190796885208145665736111733933533308753606355015585472781047411946844275827744641181936032921533335161820206999755257348748309863684921062515174625903034583232099159257366326800765674800715926789375205090090294579861222945403887980827678799712337476310343473251025447985410493541481272074380125409358204517175762264312692037731747341376567010725120754799230546743724788562699530234584694358421569444894004850610570508739602981921788025390181983273903564011390342208625593658465253190834429976088421529764274224285201465229777288909128547856593406099251542008455528719348765257346952980245833467070744196605351214249727547354107986286703016937980928606233876380292863740932213071952560511572919130266599891165152462021459356143848610991933212234503061384508407541759024098306025125357970786565821872011784424896457425613264395661665262448036547984716523197697070102723875758636861716911546131486007777351991569824719137901576365590026675120021137596653890519334081744169672790935691127803913294311030740549590038868384996170855198518476853937432746732818041389431750657026875635983901411973746918719602688817296012323110233092607766703683070012447906559055227081157438170281750171293659996268547932235523877038094771920933920837782616998257465513115776447066146378506905896403693880504989337453477580588002742174025597701142133749372888707764725887717092307468435315115515755001360251045468646923710358930696125312086760510270277920189281648258396144107543959589845452443295528021613978110569753207677274917366471440756291407818416657911232144085658713965149270763634434157026950096293206877249369876055838516848300495319819700078589267903087157879787101219618768865696815869808853845172339125130596798114522192360094473848170813513394708295370362664342424342801341573748676179954743025990533221176367876270524874840395689365978993323541418100970379438123845190208847436797557944149856706400679419128434458004388087880823696656288742665787113803765706099865888470237145459219884274804578296632622698965707063595606226533809836330502913773011001704588125757214286717489251768967212238810931569104228955657403434381770121112588334236540492356986161143173213669766828313777640199345097232360994115490657440157061687846090079905383362355863297094723988955254282168235667593556297431848861601628356966747258827350714276987079481375375416568630412034234256510031175898055396361745493731664247193733113579943898910356240064084999233206754622145220424353061695476350638598930891292699773603443238999275826538177649469319659986300190589810973403039561979860064977515182674834761633181744911509497053575988708590605339315734133715355386582238603102326348649458412430060633259892081969921838705124881707498009424591377450774600725494300218044160240549063636807076343946919750661889921646471312296690878806246939277612383535480175624689150327654106808341419807039129683483226282239866786048864306489092773805159929466353063720874499847102330643919044343643684447363443859207809002634052593483783239535997269984622387714289159520843104604632256194696961140061303406359797126502060853511547755487931540445691715258888169219882618249267630910929732940869927836518676452187463762800324444339733282169016666633932631065909307829461969549731678472167942287847616478118204092323450937590670384989129206721219886830399577307478194376747831122604918865021323075083950402094972424413422422043959983566768837528099553270664071972704685585318468779291060778753474276257559508402091855281544898509612818444445885528591651963678982449548782727269005858483084601461048606052395379500753683360348935366944955814967095137194951573638920817144846646541849070726361582334293310562083135308097529133418407002390688430274789399894224067149693475734475449010433124214175596000920455247623186739561387380375836173727465480395761657995274277323964919958184089882793665873393172517866405581506240764140228718855987231640643791507413663061250989620005386243206147574150468299523073106405130836172769758314308364897372880689691059147576248821872792586855609696615124885713035225765571621486655245855820637216920758310047722753792459882141356346344823822259316347113841960966951231971094176470882768583144551632362493003077054701299450903139666252557911099752276559299692474653555954713393103986725482415930767578651124118860696497692900217189882530359655145532921719735019233792943597090097351951108734101353384433790570311167873637598226890906913108404265253037802721049136486300639014300624174519139779500451097544141900314116904580956883515858863297412136763412172319059602990993028320818246378759757307000187222613831656658353079845602051129135798292813639211848622244046269730415719113987422900323538280552670652115761110574839523529673355918446785157819350857988628504861923069655066298982212188825215723474993638194323888688275989178487185143082447969273003437830787564092502036013674944985709354790399685031704585065426688567061445011433597427319875076384073179486191161020733775990459565147279557008195845359589213476636482370401141290027580022976799778043447997998599709375121421029516970525685197248547617913900133595105171378656192346219686321752424897545005687951918745245870955014297113665000993844995725487343109670818124418990882812415768827317588425164957248200120965114393866443039724694552617651578227294419285667839990411303818222176364434783220968069720565628374943818425639111069779019805977504399318643331370174476515540852939671186743896497071385522024574525533347764330879256709505632874782969436961655394419041058977807055451968112470263424293699893705361653553159483045143839571584804860278109810378020781981309842719020020055710176755102122167852891562396128240017921928961422148451482180734774741028118753381859349070766281170954407184617645106270019002080188973763155595722321868841976628234374527393722212711948859588267592690905215022582909922854850157061235554921565134154413283425228587028945366515722378505000979936262347865610696337210616054238780219697656556247046791402965323440588135163551595611077465748126442540839795023969833881533930013076099201226465884119998207706950302305393721585885940647639410978813040804414670543656791202723505034395734409405310356448064624257625775619476534440862989467725379336203786175012280471526973892529805985478449703425461136152376696113749640005789935308715377426353627881593316358739401674534998549140086779853567198347880523826613582874522609661214656030225906161232388987392202044481585286443782239642030148367727748781859818511414149684031672717330171267435082093980552503295808216572196768287083391313144552452650381573825019177711136196502266114372625678752472991016874801879424454222208546438857593525845819669908569406550474340340085863198999736007211340415926731781276328603703829670247714055488006505172753846055898841773362124486901057217897155545760353102326154620775878431437809279930957896102808384776461058842087063663159920779222668315251267141015729831772939465809308257413268794401889027477136748193446685711659907921465816739430575223153075473861509292725799267774201874319860908410336537004516036935095698524269257297386297824345292657145495182851057403510046806962490965765043974580647794693997348312506365310896479523658912244746102523733899936777570265121004309685387244141538681330452348112023728975047635147970990006965706674403146749355662298227279274470608110476347106293218521654131616453273143789499777163638512891492422685405464078067437527201076182721385022610370177156739836535830320902619012576762552475465746878009099293751059379894788157362761783347380760984504794762012873815976062574329794705217737924033609209897968752359781202373716664577090783435171880802264149223879275543123294045091264289297725175918431188841096829204265487863183400098206615116421238694462691442081685051983133536056564336114495800195169992945507228952401530463132024291529871989113746506917667957480065727079839500749699152259228691627995434479482222250000308118070221238765771580540096310317125424941130721798030906170579575741793523078630742033949937038053986151879743536684410405829439343704558518607201223986830964107500467348579484001547196211413561667284320943832977824353722087800963166641005532463219036575417985954209372964651790799009547663573495002041566837391158967704018851384191392472965801724842231207078394217860493229896005771162893406385393204646307415344870675288612584277355454202630654003354798403263993450300435270920453367389527483082433076343417694256760228763031926237693978487554554704640697690037576998977742150287500313471385611254921891029612255969666649320883364760321835637311805404077093150296393696298536272650289418109459664236077517040279456643809632721852379935577928285882217268065690144993595342162095682917278300094553423586862821554610512715909048210596833276424851404553145064454818729870037652570069117885962250672761288036779815530398357384310770264990172297917372566761955932934149962307147395947544372267713785324544157647942647590427806822863261727327586408208375086668624380455932818439020120789753238612193854906994400521917853006055656566166871461053831762572842859066024976766781130755596424199927428286553911166108017897720813754499484111734925628704889497553103115651563839007528724021983057282867022219625924195640110213254731001079946478899633704840013010141044595980946469482388975817648752178066367692785882294831497859510949055382578131926579568061574871681074221866650878999875109177166322981802789663486836868730108030033492316419729593320647448867954525350787417071210079522416325807322396281999347302735514259639110374039709517642695833176826565791378692109548003147250896493877832780539329924156670111253924972506808850345985611377303112168386074196914660456108857541861347307224435406041073462094756177894220203036430210576152588180129312277823751554410993343251489865064039934377305591640001933976344872944476542461190872933121614590582543467414075634102801618285358775827008725507137192171049609555779892894786892545513801203619411758357003699001578302688286291160630255850977347491917715362325005972710809336137400831899244439005893676504656823842870249529318407039599701458296243114483175890674876301741573910440025540936028401995700622568726268791263783429233304856918634661319057120475763177008425929853989030586623563193012392307632183224686924724216182851661416228929816031953323606254436205782433249613842730643457122596953505358204629698203873475852644543187469005858236393323298006570436782902650137214754955187332251166665476852304356530553488071829940332000290153800908380009396900713109856271261064299515901381151717986999347648534066028100356503436928639818679121428584771436524228509602483496358615175949071279155143780621402564684243619141429682704426527450123056600358767679353343011616327195723204638022096655119019756580519855434546432873250073744717884545374896508416835732497588332827940796302442118795586784446448770197421170857416825338328517337822351521862233062283260342056373360572059232863871332341607745480653141946043245559234092956855568076103281103326733551767470711272838718804335314002174150505150355064293032454646131540479767336244927384310836378451203913105172442737497891942373189131993674875133875449515290634608727146498211829390021631301464997958656661655955225246310683397359994372300341317838248497661536034822074724547026390760681787202537612407619455984577631575767568074088939950362895319841727354187720975721164178300543282960215283000563085150290123971850398525341439550399719674327938454578252605605781793300849021137828825308455277248572774488661501770016564290652263660000939457615754008733190593277655040697013753766013111476360877681369136335132329153709731078270797584300886050545925995701882118145617527727532419115680656520980885417969070731073299447968465399437897331979470856334991074478466457378340651963817257866685187311058257533379737852505078004249878066668142164938615705367852584052097290912264343403887370255538604193732217896391982197902891292866693267051468679821379408963430852148429046965150511160174009004029628241543170524262579263771658842018090936933696373187718973112706987311949308639781218426782040110363090592157963751182871983731585718086261876524463885203207605963000149377197233701977820687579614705183292692500006547891719602092338778569600040753699189736560923622082456238486748067050996568469443727969812882539883932508413362951072541917826787886202829077559162832023992275332885842114130181705960781133290678972206955809761781244145680776769600438729961160017148568879876152555974799389157519711028079603910984170025073816223757929179148830715429137715892401389979855694892230375833643573816307710244826012034213209711585774745064684846447694871071044007594885014200220998846081517562875333744870132868980557908295754264388264739675918303221357547704724273404453671019917971693935413545704301140721785456971601882585888511687226590742224036600242087061571488159462335835743582820105488811123430449916333757791103230863353796890662736405118758000449944089303583704149576504689879773743312320666176774147849008777788200251978293162751434241378390830461380598865906229802940447377235080517818420134870216285285541273476132252349555976106788057932762101652524338496191410150276656438164879274032005872782354420301236339629639680418813270210121806810329879186157396594435247866365024160283188133219086486933936830093482631879603636214925862527056211885736908253342118562929943707764274105530547768203748248202773265258336999823855871537068711548856924981450666517423702045446367281887393434556293457753852163815500183401665090540029178250631461407467198683094276828855933628209039481507205080216391331648287437223014252908664744285645953803782207760671462149794571269838484006891152197291363225061239154036346448491545984786281248645424417401595768415858228979362230135761703266550334871374237091625294253662405170764471091486745700233840462999044895148569543213034499534750395135829037800701724467431839479355808719110390302032085994711379051746205788424449973270026901129611493585503312096490673880625179657305666098579408163638887390483798088000954794911286165827702283868665842708652859103141622637933359965452827047086729041311914594812089753576690231679192145612184501337846008421919345460298875686115626233656133392167846449001311398700858512733456385549027642917264521694839890830183503537812582230967198170041654679239717060370638959751187109525448898136051181344893860647706045152131894025916272799589712225531975449910947505997096052625652549781899978026675489851809287053485434258611825572093184800196875556123233224957352321015925266250463688176779099448727128907496030965170930953741189014369689483091847888859280000103551732905675229306602459377972423748763847821135072078811340705334640612716593673149084852988065556730558364048944674356060916837117827769349672955268698965902172262033717226227080581806868238441068794853375662341621485017774610149795750582854429902011175241844164752151001712153638588747375884799937700546207790296878616768635341522163356702721109372994696241290533015530272733117109043165848221324970261254430150832419958559787067734726847245501344164014456003921323977994213163080712566884779157811301646899660499033005279208773145917342066743965178837409434827313805709329295326338192364489689888764131149500327232295575475058529844717734639894108110146377724673140368337276924006084045262509323863080578679433994946769035933510192090043599659573366939585673621912573401954557532789360804695338655511212179265567183719228495129047054256962688899843849815266458964638368318956177028104533897528012664288376339152222992268005271444151894510745837662350785315332360689412407972236486929957056586913992861717391359484862468112115102867198041301927105929861769281881490396321837029285426530243026111657973971833438875479614176570854899516247177998185241015540665480574337874188794007708724268593841979626698809431053459539235357881624709140320533805669426621117530162107347744525486650662782941740441172739377046152202090791196784928175501649536592296706270248934815561944905098292413404437501494840080564273355882998243172908245016787033351276653659189755997044097918890635626550425009915533863986923402359720931425447049940766193290904708022183406810977206513178051819068701797719724162436749481884379270748137105759869471642534753057811865703372134697312800101987336591512635573519341166975254608958147298845666310927557062773157195714011958015604897921826288208746108622382687460506149700279202173776340457837882206121642843477904591167582107326189713797802912443927810410212667172547807202015480376956850058111755464551893682388764901709209857668000685150734399742400902004260458957041031191718384586450452332676527820781694323924501349305548969496590457170844629110431791156269748725791849562856103836894178188845962372177671027318430083296237032483540649032334992481123951176554450264686596710531806742886666234255969748041901628197117156871576337408977157577494849445303015079030501934634283828967709330962762528548282863672992149253241583110326767422975984800162621039714839500105532611483433657795390640008656615362079178737327097783052002148517354819457368681694366132312037132177729009926906943797573773615722278027778225161115717711859883340944820945574007287736303894547516770280969160569397689308643774759301218249956087772689620069672852314446258468579713008088724156407876659034046240733617576699749091393346385480711026161074707437878849336385890832577047619939134178150122262834084678270082334983265724152196144142334786986490348940420605132014150704925497210581281863767019971127570910186720595341147940104258342149685645712323893484161601845706693182943832025787953304644798544361650166332987959611724149553185238749597995019010882831677802795438577404727204156197099328770986547267215405905977406559374569633640890608462806915716954065632995673594774428434984890452405230309602455404333590001063255581817985167924198978948319048836286193444919854786839696034625866292447094127711115592903156607482122582683567336542345723189179420215082776474717616412095299952412578072843977612612190339878755383744694779714413992588827677393260311314813651308858926919463620302436190094484105901598680905633495955405431352181658716282926263455001011855292036710982169015880009457205726425996347368696957898665762269241813794414313415161698960253910547703174059225372118170218822937768136348163528034596270095007134508007488324579044321418104987499387025527808666597946327936563522058623062543398223707947125794392608842805597284322768291538002342409420076056489596334810089406764919846419003255790732643380102422996001300734797641798318567134196532843085293954606401149021868322165493002980750416075885041943316872448979589479267444214848740446768118234423630860170900492338056343004076935004429638350904286757206561891993847508395808720773232178063762438185773016166265968500748314949139983907128904631068685480590533419252359061142010400285782885438698542987751672023219245011829673493799546704931443407698478209275066532461237445379433949348099623592972584834029186333297227257909944027097840024227406944009701352932429482860573401996550859690437495923358923642668881579826899364081854319932929420837603523301905283548001986781025950214803749736106116985954276554209034650147490172725823072511934362443316446375918605810824474234757883333845882805525940486599243456174287427983043247799566090168751735148878666270513221424538696063779117267973509577342176039849767956051360782414309101214397272310367206174557402040767884300933036751178675568436252306617179595118346591446890105420056154424596390856208645359197521931660664226194154693892890026831086135971258431174433975993797853146947088029099807990616549480802820158172010961696364395192934758615184330565098691773274473026072437956705939220217958569061858730339439155365432219110808316021044495611969456800784133253487869545136093531956131186234443778027557018248516619190463259179689539552792715007254010143928447650687228633222367324948847290318509050492824335697757905442248370019053087604998849182174216667541369992733929636832325159709241833635838491215903882023917465626629023163134579046884601462369464702735348112672281861710190130201059004682977594036229677955048290137962976131812678324582212244049683038856723876738855425380933744998248963129303053865684448655733450520766962238001417991276562680052621544239818689416847151094079102384164379590695551256850858482546115201534239330514411937685429158704865913796361143571461040064858309473343047413048561455670184922256739469108638035136047391968856472463029264792933999620101928682408455189434094353187298981391089884571631043198455683512045478969749626907319728470624544459016580177487042970924604333395137582249837070523206406535561815510427028263374536845187062594393183535055866807155166768484002678241729356494204609172664906854698033072725577468264137104353179443477573213147530863196283748450439138325135467217669818752479579583897353838023589709319844774405306432961118642173046945537684480268270216409771835930395408312526545038493346144668249102311551275703990230403090681185031078519914881636702188862725668985114833367281873037810231394937245825447862505618743767717165445121881986271328410824606688557469782319241524102135458258299449700482064792964479432085268561731567159922217714474540446285853142275961288325794404660716962237720856118279827883523737394935928208471209339424962806200655219714628978566704002108783887541938602775820595509667466770034368405642423860703418163773000681745002347948539518784405101736918189138503644838711581483471574772219521936915974274538457002742317794659732292282018832200442740544383870274918504164768545268104908723858114235325243218746177063191365993185911256963325981261110786999512918215230885882395756277929852192316136947967204359848303478367831102405615668376182764855423596861430613552994251704108345561499052118877677570631033135872477823016214449245269119760075686247802705492674508147232126215089165489771787091284965898499623959702700678650242953780611564763581923694384563453603936589291357856397016311145766069136905739638492709365589552676879811568869581858790402530924927348473547380717177128900976264759371849966989964025070311459323775279751310661081132245250223993000045562519504542933289935891894965814741408053406882876823514111695959730148985385006718577766131661741238285251620138530015174932498441644198386311765768547132468233358563544063170566195329102828935397883117451686479101936853842295372811083225172209204922369945769560553974465976094875649063560370848864870749429938454818801800187060760182868734880061258467050729669477054872376210579573042296898396701783836128009154942671287330364357026986365125586318297054669575957005573161628066430840658425163652771460762429581860698200498171158061664089263604821729880531985980144316394663918828429510846611325604846730206202968942593473334913487378000188617634144498801338732545652471789916703198352963100913816166697796777333949641134636206340181579047615256339140995674981088148685281791066770775046677084526906163408035245318637733489239995496699353673860151752589447276253883066541369752854727729051124973420782879256296953259003845982124335506104515225772090215817456260169687876786101828419586185581583257287519015164060463423859209655365687733280427802872953009030813699918115692388492876740661871665378524929064477771682094841820008274548016335298591209201504156409762857419589025684889031612504878509859582977710102722374989219273247539341945148893186753423260306111853067972730923788042525508835701677110363826246028717372167429285269291437546882935140598372517176398581027002085002276068509471597665804318417204465615243943026236002432872097134231285272209735554778556562965706675866328721201066299142137620300673801722874016504479006489863013608606106702580185899876898887713358402221223454595227814519665299927971757023948873849132546790027784647761628490885879537238035157293425662789351791300289581132642051132291262803364097367497660214424801947440861192343651205109795505394304051020112354611139236198977906781706957547463538997350571309283726118300434712290490941565361566041523572594812628802039206877833606366165313921215638792460230234499858291537099420594475644829589860835553729750199993772082902106470691383739955895517717206850895004373682154136870970669213428663433426665726089913768242149427664353039404744741006741942154465380368169138570307624473525608775014028260030948093914868817957062371602183443451020475824631358957795160162633111354074861473591895029339991293626396123542935228172413219270037854620029508870443214104776386418368953995632859317082303688500730333769831564470600153893096939200551373248973240802317265108964346229989598856793850225916132185328133896314486790082631600240714804136227527309039165925710780090777410893718970089582480524358601242259709758621938731297575233484030407534836692777730230382490764773035473735670650039755657490294497889913491833484833380987876674230758704575681953803448590652351519858282441734653520513156365302164822977260030780028531277279845854535380023315391458964714226368714744028495128029146404911569660057203899658881901835345382438627476278740448704083084295011541133137908785986464318059474538109437879450292626035567192844056587855076370071174071140026703856168050846428816353027282983078471044401958031974010282581071978951648902941556864586106865933865870742215521128126626513598393440646385513261173284131372395476802121207354132423338285795412158240658439234214457780086699568912073799454515516052927597964480518114835041010145280803174620348624705760074427777084639049874952934060480515319913489547839852318813951556934497829561058656623944267740624215755441587718791628912732830139501492575717521068655566283222788684282584288346647724052592128942336690494275057267542403386176423029340305082335642040962931091105245002331662303622737916049647532383901051401203592374868975975687880061774833987034926699523715060388947281155919623320758732488022924132037708951479769805198844230414022447153371552706226707239519543130324311013670316822007802102130119317709978880754697455575139407298492090012192993690355650028699898062533193485207482270844774451596919762030414454350922100768190414508377326485687662494951164121684782298586183358722799463764125249936606543849057606951608818104139652441058296456277280328954584752680201605895892185848575767144402690439465904055216142727872783084063523541193350052370084797533892601302650956094784604950484682273432497595952980735987996935956083460742308086306328796483555949069695564506821792499678849077517917823308092652505108188227621594602445139228019217632585305035645264212625785581115702967588108910163281858392208903901348943717978917266038478506135427935183929792971296858108614044128109729372594032036547477482902476504170535521441496412276363920802724361595214263510354936356811855155837590519857852655740092331574447681049705248144108725470227925545642848711138380365281629068821878933109881887904360160363701231864849474587736266033514762839192022446174187617389208214831594592580055457831448180157196995055757781057423468511515301916265403771916796303137227926237985535564186408224977833785664682060139077006354136436947158149435620589262876349664772590685128544317522157911320833639895153032959851295004971697202988884119675174898723981086053942278575808176596848988109319886229286241331423343267699147432203779139756609000940103869372289702645808563742936520056913427034540225568666043544938944071895230355478793832103930904585036476908863405784710391658892044683923596504675865252139698744116608526785902354861699566963252285867908449589222294325483315849075289792116472693901533347885916914901693402343570504293931377646534870788755057857094107970857120613006101693287673536797350894090911244480858924894416593477969116864184266400441270839199700916070246543162265423583955224765981940597962320775932241450710755022694925505107599302004622555092641145542194752746697110487903528122148345633485431836345463636546812243131681578670201923323163611647834916793500861400306095763159670336744602433571000409112733500056622717770134456659219456826193823369348243545792678414612942883937101176622267972804848984590125595220025030174143030742842561746816745257853212106328880641366756102111211168090676294650994509970629600094517334376747917165501044070826459581992992590516300952759576905553514054404282592718258717125743089606931975910209864181557142437595518587717707569456503152158160223914466449395363860434939728176405007788600525926343716033373127986628247591241264046934734971773246944181123390487789753922617489187033908925212851673596711648119116408322539783109918003890155550364376531515255467659311914633971782493353998437946074797276080219026193735257350482256126847720615571839361309615326425259518250113508441114372148904019260637443419816056211101456072239198365956236655326370289500376871845679983929101658870873513740179262725481728732539097549780899251943370234856273159675556269256472392424427029080201286074565603473074888756351371651263250240223333408496866336252942159265704121596811794255483153233510451650586957705152618933123910580734894740768160126205468290128601891092518893779931328077135992657091561260318857758805713768761923325872918963560244040387014332497313245620138344135480719825250528490742928564302497396424063400590908801252441105476290673688154967889181889680690826150354926941603038837463857987391155106446964953362755892427576339575677498475806649390298135491952825650090503315758602825531003542419672688037049875616086266870198184139384607935057239193381583941642242675846458103410356689776747885395712651447940989432022465317121863986296065842230434971792997503828038673031246791602623312740934465845971966825037005552333167242432151943619537506470993812731186741889270658741240263997577566584048640730203832251194725875242079118604552272689563924407466540038879220704555289236545534016629910334397790091657659858339243206766667756706246736018295565963176766064669591681491085093356826868320397863328996938724768103488713813738649823757772011178031045424532680423907256488028928876344080923790735576876469235891375239636666149740399169396937829296472078001830355498115661487492124209151494355921452419497619808088072162237120644799091835081848398217422344016479014289037191672645976417859064615509672129533781327249471327957843838862685428032289825263243038114591503527169548591251244896289139150290429601302280835887358233516232076216710779002792302250518757690057696271901495636541735802185455032991750915731045185563921760282036653912791908846888594400484581221262920557711211761154547905534731378348707119331915643593448588688775464898885228063504894117424778896057981263533677611464601453436489444278562021719849258340088878645981065785432776331976363655305536647543004641137540834599002563459154585557663445916924836688291574581266998277970936181284929517963575691933424725396402955253891732843492192053673561932907265188952798043587939525179567434239510186331281028175036975043376326591951079979544795282553864609932169288716480640388044959229412469184986676950411700997117165574475963517800353437738444718634176932033765976680674826729386134262230777513149157149756340166757511657234246110397458180963727047676473227702217121743575006712628645936559355304464893815204908466742324494508301477450051748629288743884092581585602653317075087156497070018771953589805765963370888926160873063025082573864668527705102995830473414589862275852676881102585838392791715257308705008953382587674710370213480551128056318267127201756121068938659154075341232695072381381420012182427939399574668931431511979841492784877375467880719007322398717180439716193664766688451123156627949185021971027100262779653901558955492146699703706670506565103867221686132226150780333949327475981369586854923796294181971164692175023016530565244460896766247411307076676639651151715618556125044820673637274736552198487687683110923715821021623820393633553522305844698383959522099643866882469524587237640340256906336121183775412212907702029261438280445835729825626697882453741609744208685628022610335110502159772547174812221064146626266318575298871129734198582965524461560563383126632211499007732846841706465525704034340377043242295012836492743624552757372182767233370830643171451771274737415989983504795601779409006797641089403356210103106257949793471494137953121222319537037768235183633483332463846777714291761226488130936645953189196940484218134946439548356227344707803772604959892588727359265935523022385084753728020110943301480882310740336774819190404239876670991375452422539652571406165630708498064490238790887664101646864469809666776821504452086733331624011084954951341863810171825950533715210612811813847313729209992031611059359049553938136946948657027531817600165703315745014963974859819061920597390835885868567996571567622982315922183047257434985368899184150398299276765431291316775084481028005280956790237388392326197675644546376065755020265643870214185797112711096198162156900394423051066476174249628065864724047268352836337186636324074964113128432771166698035169645518653735035927966541690973564188924438050577488722547830200366568155413960802194567253829361489176963885078152269186012398067060847399829287417882297760117876314662461563752962936658460716076540727419896112385964922287938099724663497033009834681448863541282385319224667555428941948172463409224016678791823806554604261062755203944954751147769345463182803690933058201717991465834261369073409115429647602083790082301865527413777089351159917491537607782927582128110372235146788628430681610487719536571387573213869329752619519978774701533602759948057971277778144290183504499133739430473986763280301789316612962479553806083928806879691228420460726164145377672604644383915887366740692178690871945833734205141346947988622789372236266941718537296434947754508343603340030639198578796558089861797301885040675817603590339973256896330043035596678044276739218886743408452013753430013795294481656207282718335628745836465716346797471113454174456315570586858098452517649999053070725486477114568598424383601141803900554704049522454684448581645884792824683811350944705996419659752938642340792954296549308562272333300840481636839768186405732808347074470779821541944371516432134592719797144929552302347561788640534737397427752645850026084382586950969452172687115317063608912327326987617402319825659025866748428640228836899228943893250819226303746464492905548667810033730966040638783838507150626320774718490783334016876410421899128319624087232471392594629194437132235278931996380290078633260197080722943737483308733529455635910548484431258875032410712864639749002752233198357501573270840525859663885127502739529048346402282409968405459619775631791662162557202779998662763010350256355289855299303991008397267479884300893102381020312250185995005523341941502772387722599020126314589171610849212979632047719270235212130050071133934218491464096516371771547443680087359954511126974575033276284860629828418422662500304623295966790535008560818058286322318369089500194698805685595195730479547771067058359050405490907414834968042812416715427962532732029056359140983365562513492479472639758084070555394390030354894160265509475885764697627193519088156596832691200657042287588347287706909301786302757339042456048948296598161600396422371596233228872182850629410992010348628233752810269661602499962573857365763061688702437279299244951187984031114241327226758607278891171230116415150876824143003962251072902146973805856152748182135077117571995175274642840576665706709323307499026253596843090342519266904552884817420274015851081445306355542467582637910180413246645452668556102692668909339284264441495153559847288538396587003164141383762689127170717412957642645729704929312123189366316031466224676440117466279169589601602262967498869160039155244941620323560317288805565948953817880452547969357302424210899244180190303377822102662454500591358591335522536971264168002390220975807574444845019426424666256284868905015677546793089388067628467175385176332579798015215401147187463914652194777286944322355911366766372754272016969363235273881247344089985312439067243299247245116050411224784777763939160338998145537270605588327339703468283802203097668157739098324229706512366844176644033759129037258838590001559594574636261572374867191914584603269903547335197679721168306688972055312001475749813429295356770302365783488451862277118668531981471990382752533851726484613301182363707933441349733840765958569184105736097108332395592210133465755032729164414298537257489854954556873581826469679839673854230987376402860971690136147293606073737124222504100338182136156219451210659118065921539374400356906743245024200405724035437641162330122860739669321697918326566755188818550538713751752182004137266286335387241258108967583595976848792207657377609049529027473210779180174134874427384545919880688359279054471904268012630442161178950787797406038244817764318280699115314293831809968839172352700955259926842264917950404939987587656956188947085586603011319904564191391709572757841953780180691536556290639585259050102790385538206503084131059065747017779752793374038418973358734999006840302044344277029650621006208059246091313590797880281743382393763272010434238170680987604861593354872386408812200330579288083062174042200850016886042203757514600531294287148124371232291325674798148953297056044104417663238634909474344862185977999545973843597458575457752250707772967479582650086656156815784785048984856044474456607156412334714480191569859879483727373220386540753780132554021944190343142297213734424870760718911351761254555476361935645668468670398249976566401465611407806455439307089803459019462871343804088319853780488218438666396755990275525245512195713472915093088914801109590808710447855891512577639871822077685872022275470066370473885134474196320152193768261822921317387805989030303276803691211226730229880700749751317692614142574299400446692590088797431765523349278072521722719616418501878220432413523067066971344837394503590568070830157578378382468471963375203717394480102477282374814326950893317100024147136459148039085831163129105681573394204762718928604005188876960276231061248585913751401060776468608281527572140244128664075089806264007853236277917936376374202129677834818238513856936076798307912591172638509161593798172002269843524646169813608921309027325636930127745852065441051707016665685108354851529924714153237167709891390018380249072327694291225766005883543708661055664214131480189308580616780079792644384975272991939636739537328302268898821941304720248204259038327627591197959926715578433621205496146647562227947284636014279719349094266663763953305626227271633052360768632381373528826566840393590195577730642654349557907627218578588676810999109063062036628375468494511187966932059070218669952982520839858991022118965098705942210290643615810770795645276829033519882245662651862783510045751040533856664280794079923406700273268481333300267460600931887082959702656325995476828703970623993656881545760845443511792199232355016316812086284641414866987085368438613402314595942012607569294292347325667464984372897424335613296019294543806238713499435267863061003539717145511034900875757863604497812378592408427120738464555332653919169020078195039201084355378607444296636299385608238718663385903054481656439664671678147991967924827997805863089726800587187663623825818053598883204757727271995953997717911596997220695340767217324515518217025528787784840095740061106513157582326577163135912695470516631629272835745943938349797517827168137110859039029098778400639812461291595159455103497180318789748125035863376842010824273509312730700780261695116290735193624258893745975197112998213677334207319590649133696644343133710947704949070820801308548029976880725390706660452578159027648392211024709723124825173297434777825458828147287259275999965900676534062365954325446367479736071945044146810764062026220602026547750129235400319271225529024933834435519022630513706183852887264470250596689222811740858533033258881815125909021247961780563610416868555541479301540642970660382953971964211868499196181843000946594396522240771161480997029425755696334137290317377146817374759536578880661430457074703671004763470402540659575048436923153872743765224114488002901502480640748888254804881389704982235786042535648017128250705332190603111434131999488516667354646066844341416278674925428582102705162778249114354980583528196635524469974910793677841469775781410584337950392763945216454886216124886899140020180685686707379718466018384571996755794444843902898703544317472466644988604422457060138143822386866682958438376874340216151994541464693393040030268363284722856058025756713942493137387108116780024267206644446660477650244730623460468988508112473240881545012649503000105241906201380749542002051930547344035571773424209882606303759185990620410851153966713159254913743167812065300663631784656179058630735889250665746176214330931625340273963692608870671186949028269073139908619682267258879901102546235312748072220441910264854086398157408350071560382838600729520696927139205558646015397985500121979962217204362102209702178099416052241735659179433405659047134301809922996335628420500070443618798822655130371768222604641388048673863868790367597464673074675146288367761833859687225701893628640643238887086633603760102238149977779551913292836607742862315214224261061673908112201249505037507943766123223550586078850120671024298670664078231399034048981896067881590833220087241386191878675232309422352671418386327586412372149899369659535430150772795418205409346741926973471148457182236990992670938990170741150875811321754664272337050254690633386825669730420599106082278689415258550398016070517104664557728490386291014879321270564605498083048766358805044672945862014081594482127716784648280744977449401247796529753504469065198631320572906435234556789883410063690718670843947389792713699197594538268039194868585009327101562424746363143794571057682156569033530790738590158510933475523707361979565268974000692437511794304793418007388431172124113253387840024232982664641607248874294171496089389629989459251931808752031919073873051160639138703338030026939912755714608708764751899214637324007513469232286792157449687838861364220337969522033618866711322363197366974270387615647316808377314801201284021407411041607122170185787641975985921925010830041178703714560105071082138881808437661056949996094673716569761587765666688423797460697446992179737548229810065152031961810419137997577883344532558794100890577782962243437275938655563523937616329987951472847613951123933831998694529874840762872129351416074928936509289752667163149884568795933029683297109456650505832429608958447617185022010203997744416995785598372981082337345574879364238781420689590566898113320808649272024729926952648954517133823322885038007635016572464322490342759081890498903171359285255427393103895700045850740059167930627007379791588231415668344565182284596791597802269889693584598071142872911659492441136612769714228723168249823168310210090108147294706195264443279452978452713318950488967009602560900591506740292266348184183740553953456780170942982118440447100633427552550645433255979316920369907638018827101492366114082994547155385393595829592780129066256213592634236560915045439075726436194694516782011652876781828974370347852541916444869872002496127885224954005936314662536597922357698271390390660874800577872597862693732444499543990470286989849105991101514841085456622011290013005758821610984817178492254254125196395256196616974193964420487423882070513414430563251344989648805613722617580595971726693928848258350331047165566632346783589414831953537090387925565437942465871366645164998946872591780458886115894391120571243852794289368669855404719814359803101250254819553810019217378555203916326169061989008064035228640593562081096957284942933164709788997942374712640486285355531040879904532656919959273377376174265477707808005349673358672563893283696376101951245962816801570381889111087849690628300311890682946804693269745861182934325174359135694599444266869146302960191496444543241240736761712006361552102344430369495579956250985860828054149219366976896718556984888603802360259963764994744808817995221973524975075813035802994113414109349077837913391921030107189034898349786072508891124469283865635694824870348095828513965579295404657758867435660959668686271421775915013781620927288038377258091705975723629423559889140604603585262395802285672776386706215940211818738414763595978129174978896609174444118794086292600751997581608721607313304378591699129353180070483943556891665120679906562157904598805812563754940251603505600437286850971632169874350306330915064874582473500371095740171574590682321751367929987407252129613651874406525922989018175341094990036259949568787898744933790126096038571884997399588415336384738856214111908976315704275022600617334352044789498643161840767858311585956481582678234283193531406851645019737526760188148894629866299539460593601853605124855356819577774154141505373877615363648867780141705462442394753100271205155781037022774300462627132899766308614148628829956513130747187284469356936768849783352656116560349586053927448901294828579575100993658775551766252876249874704572312737137397151045734408166540919285966221460761665900946531875575365229089072233294378184265185562096130322332977032235710955935424419114140082966885415447223171039106272122522903207370737379308204378846353450146648201249209609681789410387432926197710938733774271951028035644993719095983896624945286860329723968532650565299288548361530886843138636329102902245744575399976806119216475141573265461497210772298925943896286676470784326064243404872638326199337853898516479156486954596333173740422562786928816664798311389098488779016686347148346772444074963385799236704218684281233143430805223470147042732827946918689851168408980126341380184398180185479769878613715464028247959476987113085458090788890424759754078357894651595476455424978028770136042979321510625631864736869686574863922255115853597718018417860380873113249393372110414576736052495253597859121817937493552363626520745316192510458434690737331722032913566063780593899159381079772615852611998589007197719083616540343592765509060120062350020346839459773692044196931893164939109422107548147352685716467212596423445580477955766545586871331732672346267060930622650436594387036768581522174782210693635959149134356100441394515984106846378743818262857354953556387182836633409409136539832585294370606136739064598045492755982527669170178332486003008193159445880270350065715161665597627816302775765887097096856469933379558555350323625881398847421233371456842488836396394745254994888522561988680225228340829402478150549350245918715217653927732339041924676307475226848406266588035245061281752645031998776268864917086327743881285385957909717501899811246401025393512871226802855683883730257790469004523858246377111805907426184094976689395441099670012961878839134647079577640349804386339257442084420076896219466920052869982761633141239116958267429498967255178342187514895208123104362308406350849407737046130443795973934037869701026425753238784917724927079301800291240656094950765379015537616851994498868767294850736441262347903402660446362303967367207900559807357400435262761502546570084967791273010484358450093991484090681151231286807829716677282796807655256624528012216331398857259871665345361837248660026550978507864314662126929489706520401111117587343386825374314343268585373650845523535314071147516166447309472470848506853856354710693531639699302830999519344699310960386938616919030657122336187764297219270609600483659094125391421756994643155226034470681742771961439859072066753442480009110904330949988728932253387634758284695821083794214552431123426368197961427258880640792683747658477155658072498695947771477853677779936692260112301107300142086059313093278400755533134514979318950770709732419893087440462184953078315895490891907091564448296171887897436474712797230574096635921956516815728391866213188582860030992932791141664674201576727482061509913534606130824495537001314485980128116893680539818698862331678471669354628066280462836534454829013309523850917008018462938180404088655166189793048737103658772281562770475131548288098010540625071566234937218392390200006694250065940585166512488504315182697633505549297136051815560289791215197275224352178741041422289351568603329391940980321748938228330040255256174371054081095366591948842956716338797460964652642561122228846577130835149382961996661697774547547415743030224951028292712144577150553521551408747773549698432732382136134544113876769693783166051297393593272802672856126278361999572676581723436182510315277712628222671356726161813066408289628561017399109721128394122755695602243849711674657738971996827693284836949644410196911279048437158071514296953045406399970750895302461849973864394345182642353601142274242780763326681589518806408863384118047173872741745792883077349513835533112564044101510169762657346137759553864886182959677531353680609149507370117476607481533662612972475198093790066475842571120234597329854028720800875087527694570764975141498117470327640214830030485754626172584030427590988950043320100595314822407404969328564629294331863755403934233320968945735166698053991039479644806299643392763280178018798576327707644555431075834574081445816941723018917829137747192961079163987437990851970126770288334249043761809304353356128821931404911434956797628698899041671209348767431528201746519073565458623236253466284892283128752667095111213657149516663411063945737129605321917948059956171857047638665107688839888249826160822720300724973448622136774545440213779795240346658057110051999213084915954059056833100064403588671528222880145919459441842505898195450479189728512556861147377066906387389035672097496250927917095314831433647811030235193489638438645535626557464212458493854671072062954386182442630894685209556196988980546679579949817671330934125662397878448680634817412400388094752765806480929615286048408203789605964072413822794295237414491023900346734032626462296018241905227380389803816290552225559862824110562435227264665971431005516854978433335309679475381225685367393382877181031585396842527547820554164093337862897780217753245681520971741776915535562821204237125550492154045345156848091252202009180597689892186084742729671956505450141142096581829557838902972084688693082951759305057603349668441576410902189831901317186309953452982373015094767497252066027933926415731931549955733914552840265025714085537108968351049582838221057008904700016361063528490280657831352674498851542512675660947377303557399932839886541483525402639170053204403778657516072595712842447757957870798448002966462251677203288017626312887420846649353708786318071075095683250981949482100114701226620763229713382792142872783380514931297589924685955463916067247815963748678925214672232744248893286890741979283797685444850429134853258388598207659057721871576539231063446762518901149015966920098902975341092822403976614285123822287141384567162952426508764424435249274432544106536577642684122976648823595858767526029994896547951244939535653092154480304542995751608009350344712540419663249062485853325643906999987427732209525444031347969054617196780984395307336208762846975294007346129623096613250394975003623715850643833901440046438389515553404165678142932687755331880754979549978843992553780844385788567488416923679802868843412635166378110852294217477655151594853030734715156673747509478720077026845660698316376590420266605013533970014974321914714902220630845833231805205456121948318050711177511978457759740811780572009327571014442748387345909724017529803936388203158126809424237537247437021170039675497628719582508198886925570520913020838750236809682770786530719831958071451761985741018046718601316840868318212427066614680239936606370585782881367825978920506974516626225508557913475573323460131230099211892877215744123659213816972547539820098576796919965458267613989898072726326047831644249628023442557275355169717457052378082553899269811870479926149765486095654547424079532742145404232458361940622349557050857315981123291159369526199423492215825125272888623327434545229397539255461592171986164928555555021495196243286406639872664341923859888554419698287866827671720402702841948615977160143383052775792940057731712796659800970006481369849837610896956060202971817217367537109091677246165469240894663806581737087441819888628371849043055324177088854686299078686701426683515548195107069467391676625997464630800242324639816065134701840645905275563400681494187275317699684186844054814025843935162539941726396102074342681916777769138017967461621430774895794944050607499636590052496815077418242637141862941298717181362614459863370878741893832099578296025108268794618787477331417010191269205631522158092428497242558042657325411888909027296722045897379756016537095712353991179293391655078863904073307773197761719968329297212702213385542895226354931251619015199104617238100431944037197450859250440640411765611648349343659806117341664337847638539419456592077826484911935833372458713499722788020056866705978618624563542552349180804557717347258457204634797782994384660134594690871035178482700589783153110285126325044199801497356104618183721232553633524415875685323423756007933989081418225473891969692418649768105905817253049698445483156466079043288834279959430006553638689557799538947659787917376823597446962904960138485552921072152291645562701836587090265545992435987320927663922369010941784919130887137307650443184880329087382700447071438261518928405306161404272913426090210722931304768470955356145699537309989068390706752480017287611674834447858424195016512700752376065725299469618914151128080795593291619378065429250818040340543644342010532077266998396898555179609757686398815459530868345076327810478375230806551907228925723617935406672340281395271289315918002261740343470623103150969086888328438680503109566204433525096863758662545664992919507320130673833935015410748761955846337752738075811512691298495389602010836502956295995546386154804198591378367998709905142935999027864751241706196636861746030107033762290551536707428524294813041742291261656997284897468397789914396163559428406393485773393867878198718349156912638604141561594716264934336348139000266554401543111919424649252609149450703577484680446335301368392742348831980030900694548889060382799073015835219189900570739160729650905722089759600200586292222433886050279838251232988103575035768331725842432890072468312524644774250206127907347809446164128914164845215002713337604726405164987261598649515048484671445317584554219354847147643288061035314837695788836774197017343839049875539828203501830756801080272448999226397811072914587672860116690422541702565525970244067343145263335028157175510244043705885430978699557365792475571963836369553773627518594760594811381538309055447636452648512403191190531211487489224263271970884480543489396749949223031068916176868590458711454073314511745325417062944919324113137331628009006500427502254680390299337275097806326848608039660445572322893837813648617819539438315446536457128680189205801112299962451752389220326987680581514990644259692942529988278106661339436697248102692421417481558310630954406673246341870441945643184592684627490520595555218974210684560781743656473097652901518960299538638049972782900819618971744097866931464282928202977134151661485180643933812694769036819705171718796064041236975663915580522354055024800800034862841663863827114127337240872652540830455033251600771396411635726473809319827252957768722374639082396002731368822268132779171883275133947210530027324623759457777509595906094426075840246461031589485729344736736278672942541019338016204494946578539013513678891543341158116951842514188510981705193479857065761969928363502327691006040422441412123917494410269493255240206609113498836001090855846076394761074802062837660094098460797405370636243862128693040179629137665507230785675999569497962992384086002409085976029052494048648803526379198189557588132955087527248965397025201743768164771783694603130304849515690726544937143260496594656473198938099107470054284852193717513227755087041282157460203713109525090544550424429949594661586645963151966618704369517386101874742469194652201464117781012565656322443976885959773404013044777949570161208831911233036607177348291913992077306149461253143848735432678084494411039107803046670185772156793203375928229274697428135019084995878342660824118707166430609918692534138503346350254721221980228990504893550242764412568007149430127221129963842825377668785076874572685489214500366322548711085333786902410190431461095850495469862144824571345472249016571660456114754176629143369388640139163061342276612907708649852646205135085918216859277642320122829165549691353560924517665564065197039661985337775544583058035502737553743386498262185671861378142710750793288049572741374528693555685560140737997687302419389485340823464697646712092329539158891961631492580798863352817528169309664237301075086651336806725771040263271008805720980869869802819677782931018981383185016906563554167009519370634675034994074952280065899261719075117670310111208180716853366166489361627798148105461167903440623841535584117697828511050303021934816654184751881271129707983692373713679332939669730729154197710951281313417790818443417877203082720824215811411770236929872455612606984230520269501013722665337728423817005961601136943906832368737684972761558260650277869704418682786102838427346611290629866639865057977295213088289234445911119175358556009930204725343474694539813656200674989597085740742493287125829213496300588518776889093693291719614788952396930231096026629202888069341937919051605217852494310198872858943087426358741267124362746492110178384716196346101247924050673583731868151841952458923925185023418112234126639945141930998786920978895667971293431136466704095824652172102335977245329143475204989474487851161106550594493544616101772242139630884654020924288640348003644738129618580152348949343286996716466580762967367057035530972072068355547813928361470041902574685073741026235651671701442156005706108246121686117242254304521205312229309249379293500680722465193177282868347769372341806749664226604644585114973370865264140648046483921506429704978496672066857821783546355612414211602243236151603082006757781133906158472265742374562788930375226249051231287341067723474931903203509742678772879986015865686193919366549801164391179884224223925584488601141940339161789200930214726029128714244983724528160446631449770585085143023881440548247605466182180396753987037047021101980062419057718036327175362080129254720569314852053934092963737094329893886358444200255182189930854134310567959770923322621623241048487510297617249816019708807065356124872806177378068554785040542697691630732413938182684972308172762696312884351537290743054873406124570535509496034584071831715144644555068491105888819130791112746952603912807693323862927125579729670125553156971657484605733406218129785224346631912750050665290908458433163068879256191122830923125446268950522794160760241888098163554374366343052679417514128584033451753097713206533086680817247180207347629993491018985158123249097596005670554001715981384210029831162476976855162721301752807971130015209972067096697948866233742564125984837072323773068027447877499492814278747878366503686176658508478667193135159577060184359148726317878263003392539359558227379690905807961822302796896981181652831598718209767995760992492224404131658416093650866300714552279785790587063299479199590058061891248383432778533901563203214688310967027401307518193140604575400065552693149659430756573781519093798085218276264736664611495309396873230314735169731584986551224726860131852841895461936503835919612102102877136626657798076026579251260674645925982069844275358428858891514378170591265118479072980107901881807329619297870408114255802380691906639286159549016024677113251760879642453500657451888039400664124067957645388342473707579990868203823455606389656224019272588207555675774791738872069516040134657732842491658092058194416792824002510524265691653477136435662187309723016135088115822689249316572642360173660736392596773708636348171700243780175205816913805251579330143235478316734805662810729635285259479339504645852724378430423664957472485344177614351780312897522558618117641429280897722199069683097979672792179390185523922288838387302870509414407885078413538161181051752478079897515857046165248900133346669508329145588503588996490640720624296455532700792456015982646137687652765451305231954133258377278445708937283445982515655412948515834602132288710090202591756840468828583976593888008979817999615546926874884115704976679054293829157891125717493204049729811622378430745346074570438230761297589480895362764521355571704861435849122173504051190173060579924408728904088112566098527229979371697373675972958735294234373426720635821366786181593375981505175540139223977512016142347779249910296465946099621238887548929910828634573640626681731664954044774395752482625218636802967801334933057066612618749078828453660677816565365075603424557992342982387003974697505515665742419002674756649207688658510832406041537483379737284034244245996865155053292324978796414709581119394768958328308046892749504563172003026051623819312752836461119961033837512754373095859613538383991221545599326968276439149695027531515301110533503081554508210184822169325439125385027208977527825291078858679371341087577528967147734711466263298601716897524298164986176431854223951954784644325595091841056633612633905593042781710419284644024464289000930482324648171133810561327894602500565641589763509670398405721677112509020454898560774787284480931734886039682115960710023313931227088521274980038231688933489316675478764117079242786225880276449900396664602303903410713112100673585606800228600841747959964032906300381679671149545297724242491193921595397951900800157347067561881621182772061290372084196957001027762304453440198924734742784609032468505812725353617193246532751498047985629855267173645640340934450258346967973761747090438501339514078589857540684570627951355735797665950473889340842521980887838319014323093109660707490996716608509864340918635306589465255885525272800112994566622500557791107551360863294681201888867608297050993858159476086675804835245558781061209567881925664248412856448675525846002501327820278305904023663913191478321101385852741888563462268759583336366044993472972536842372223458539322586754976336467561750065963723645217362366566642492773078396397119944534113268690740598382096341048945080342655232204114986876687265796135297263848448485798658707490359574341262911607893868422485302511358248227333827770711978176548141537442239933622235671926796850686312205902767697711451387283155588644733485164575589889470437181760113029733584434831408343305616494402291008666004534018327874862970980600622481239675603407421691346972133058983908345550962650673124468439355325864359422993448731579634969294171886934115822866582664700072572047349906949152199141376857557826992521762236176439965006468559805995943848180832847911668471897963711680486059369709147108396063806470249143109912703896066374532837608919125841177213985719960144800828967000912334710367451710725813203093417467374104983884144841718229097454306969113822511068725632086906786171815646065138650189952264224791860625363914609326314864743907807735272634181269902360237214879364240414368437710563202192885695126359233690127566973910964103556351281039744890631892834475159273080253594645536016912840846645276340725035134121705963259909785452644090543804373233338052656791568154334181834368447128211575249192779204978922678877683710915414105595338116522144362110981913639514938460008702565140314568354791104742383230173165793628314054784118421102153817816356890200598848830265222268390168426585505736557921439294389850198788940721828225047555111404210505407699149009498853962015467827904064493174798096785021058153704612507517857131620051753280275511783603774701303332619328824109033968147934114453433347015434082598563878160265662350355623882355563948857656406305440978271207939070115413268130436582755860450264101666474825177925483920087325160764964553570134386389680552585347386189036219496643848665216950112902613667875706596573949582699840949861231849753669375430034473309067151633035302085398845315322274343504541420487985324697503045001811195299094894129281259409005186789950389325121812194099735710765341556856110186764934207200268637747784281873730709587815024451217237700204030847829669332342311975659049086766767252396682700372826902107078268778883074842571858982512708409379615893192181420447667365615748222658750465508524243305602132690926719746669185561184180592168465563446534836143143456626760289150549428052963945003833932939614916401732645116378780951011021468948350267214181715909156749978013785052081389710234939315019716620898447604637465162125665078285608256145404631424958443727171976061024859073153815474446149326936282761830235629740089548095746906303026849683344812767819020519630769967045747969625691844598793560502392070077102723674953359388732228229285702160946746425024175861801774140444984320164326047740341804333432174420361642434753298683801538487688195971763701309185894424389583196930877724946942741593847573241644615440744128001420716938029079943227215616198484688174885350795469183566983095479673090394613841871377757687737576781212036976087947144318649984717137641674180819405611724224509159937880432663486835161142489052188229684639550624872364903265664494697947740978551536197181837001705057416038052577240797699308563287551974888556813957911683221903505043252858582558258981969410114686537162358370654053416073732572925022400580233126290788736936168051544707128738216941707735175896784569488806645343395862355257667574924861134228068005405342325340124875533570554169869420579954067180700364341521824057800922612639905178542094856673668236567459806697400565604259543232344904274227940748557705936845683680524448157096936410521972372916772859639753170184180018136023276860737312891665565621996888370843536920229219437708708563055997379532731078662214666315819400451739273236461293007936097453146005334296301026886136808011971082724800401263974180132094938827034054395629194645694807634295429042593655975388394437352381959513448551034790511061476011420619700375454549081876846092089346920557106278164994359884365618058803909395578602294943571180768351882678424433109749531807450609152159192998426915143789175873882960298203873585509163031493322285696759279647738111419821392375545076647693311787031710687456900153514337310038735709582188238725296150713111281750195751849600789336617005915469331286524120994751788738699926349188377311793444207049865113929923744570058243304325413842086244570206819883129742395835522671165567180071185692655780273220773835132969181091470046097079604305411510901719746701020102654625141828366153907443307194001090652036674519568632524212136407816979060471355714087232046919987195912625835837110262832163338386272052640507413936127754390251644349138493381027627702930893709289890486099287985767000105386317351252317348800616549705870264975790822264130872077892932420716037866574368864216970422300760454921575884545845957926314515354873723401412940097875030994340971368317445970519079684395141104808196949626465875556170163279669337888767980363074014569484120899531707677552840429098713210826248538124608705724843175548302438958813745883566331796224315177471083059726161804318007736282420202904900604926673423026059039841880983176364328861041339172622180767219549870908764063399024830933552752015140491799091376511534304496374708420268596595684249623615392500097989399051033195159516931117129704124044665685711526997863443608302405370013455074450024566312244059099911718000252381171015565461705476940580017999335206977073528553100526688109325055287335490656880002559113852900632359046242118107594239602287816274163420173673393767770707539327236961931025300138160209271712139604960972424487346467930404923977911787002037112165480985782395387925828346123720694675888035153022348901901836534405145547217671377981643882328807817502885999979268413623289843057304203121968890491419648359387689590689554216236475730548863032094189719922166844457983977539508170060100742996552791423354944485667433042259821348832448992892023115919115475877863164102247444364206252962806635669802679428193951612676271724608549989642297886694959639484344016092732795441450539468601400624507518324180711869631041746516101347802391268974437249676462913170925972477345794500992944704590219687690845755245249213596737903721341443576190404348378458936091989470946074785059999821446986754219528093299416092702363132170634409172328075098514885146327697810091784785030015494612300866502208788361303338678216850259184087530152687076623030636119448573938903947166398239558895285287125857893675008198396464073964667502986046764593827338447579502385847398861987081795053107061132917019972621198737903709883394965626907069234305206379186568302522782958005516763527068030676198959875466199028067247850227245415620398814450165301189727947812043498741893156273649149367576195064907655283279185510396944902823395169816632664022911304498135376476892601086502414378632560554092614923264257073364453876506227337211441487397696933963522567855882637978122615675082191562563083005019373272577513545707637754079028747958493731647706186606241548936982537780603632809155159737945343450884741662791135949785754810614254079965793743561768063615358557120829312310479277578798713985779254683496780463011907608254766885524532417218097681593358855863869850519919395229153863217591072375000406802978542469378901052516914537463470250869413499956380111185866124742709170554566455562494992951010848180475526235737221711326815636198597112607123230665909314959994218380171170071891088526389927166473447456243583345313245169469301722112605041540134517963158431151780094727720014994355299557612211990643167809672914912109663062793857988596886669576695672976850216987588155186941340870232232239492906028528598820019547905695440087349607610030886222870611602385877574722443147167191307330076617532811051842292235345034736099009065527508742563604874422311281289664152760203371126012023635909724753589356619672667350281317873950438670141542001674365402139775223859154745423886689551607769040758089611719721858137497563249965339605783754544585180392205031469455209712969159053090212374052254736722780766424886591880598127271730006307123241636179119871332485008395106180485996834317217612975434434305183559253042251275921723714941471987171091234152935048699972052082818308029377744466893898521237840205988725018907564371203148627256253088523555638221453992358655204737759342088549340329976553227558919624063973246398938572603892483337290272087918095942062234525259118925465433960200079770158595595407561772114134941536280708821687689391308233095068539554046259537056079737471118503642887088643295546163304763093986145903937491740238721695981243117940687419111918764420729993581816526021608639631195493190201790983080523994034616398053760237767535861647859486952176283088379850977484508689236611347377155983582619732863581536913395383094641135203046149496220075510897959331573909446519065882244677598506562824534295463452284573030235581551351632644209634744367473873379365472590219578616349464933047445351536405841935026362278709060281737017485033909217500238324714677963859715380394452415384243715733997975881725339925087799214112801799185280218452394670622250752069587276834839252675364668395514287069306954842569766478106199113481423266382429173188289030966561107433486074834462961258521478090257681376123561755428993374699428761418615307328108872009387733090670633824304858666968678182795464280678611308112025708325217916909168019162702737476290133728119828315975543943668155945471909215193685390763049894381523548804286620551790928353044051460351489515300644395891160437952947749355712462990352354812178188310604744052167448556435029045911790327807061598062133620573513682255964760251965048875682906516523154845943597716086653727242752704261205665631275496915123569227283829120602546974867522304941926224939047698002063588377231270702309988108414916443400424541410382087843008389364210543432665595975116757500109716771964688318628027374220695337453297265583191180723199460092903504053944748557253501621469795043399155549477688406684064364302123939308697527134264322124810784800936126566712747190086978066641676545293086902801617860129043152342709850018048294289485866377444320981150385020706033188632814505359915219935395780090710787861481431768100829041879903719616491607522583935880960045822791849138016694742035897552223044890948340866044947579195603332412031502540304519472717470420788560253414870592138002651855194977995124825105652070952646215967543191631736540515314206550480680583244492929178379726738766219269479845230811313661538792710317968157422355443918071538758667969081499361592773574726107747273684670025091640976199932984481082005470398395423453688622955357997942879800929542608574351821933399823760167498473739295778330465919670358885940875896873249378896627078760304724080252938937862109441892761143838999139128433976561340602824530997783915795920454226217442575991810233409632159524493350889015301250230793764913073096689211868660623109236822139924287649463333968377647320801671231961472303377497689317576936636901411261337543698905359988801264567821941048666956798874126966609937408657284137683759125014020698518564326264643264284160940138155280174698074266747365169399851765606442115152258540987150027036454391853711260880335636812798718195667033261331877021789190325526262480054808269867862878713485497194346718300627361822368785490640133001478809421898347429932234827183068206510204680877085403222478147981228704211488442769502663337823616552032779185236315951610772286122981638953344889407299186296463789975946535501998393590950493729857665832192998606694247164536739277962408182716787921616542515842806488828650964468754796644353708274217154709800181671845068364692155047629040994564802358342977946079679640525427448252305601232093651423603247624377587667162067655726014765570370792074393815877224680981409302601006875702867131010792208703950437984132719524219876894600264208450626349660339500387993907262102167714402845080839770746696773358559289472703899753686079669428933788318231560415683764847016539255565006189022979161960282271627002049295372541787861392155430353984265289555625781478618690612822444991646926413258142639186507448581702969711605856207271419751896215503721907537042962827691932195795559847488912741087492910990411730891105583673073901913567375407815004273200783159547244046170466076806420635738521401865646669928558369201810256731766526018192541247046329313899023676842179597307090996902785081975640967264093738877928301563780289088850175189129413208562189587136264446533057586450589282714540867988095227876677857607455818439140975808598670191605280964361968036849443950044280400276417134464766524150800318009852938669286622456069188953076993950913162876992843113797727329833339638078596991752308800592597558569972476451701007756050430572927371146950872001087394194810467487199671121996850182432306730780197555718459102883961742502294796639188879819022147507947779984847833240031176674874786939715992533016033190280701208447641749944698853331342205022874499804420278589101962909022087706407791005218051517215326112016692125814654027912661051527283259031035437019998657760487523339892131204868559793833144004484081983170605111224862245091644780091460575659952003176836060700021425806438610949219788331845952661543538896682878252417473361863075461663242727180427317693315637991009502709471705447468347785544929759530776932446593348335958953699465798833956865758326178836323816945481152235676957126266054663827249901833389870883077033123920880222090212926622556129571736570718218571250358971799825952380750700998423127362049733084333734343764647236158596910407167011968516000765818436278554571380203615705198679509270889378290693064937101446575006919777643599439855729330633073343179917317852114964031328542868283387706126646730440813163421727473660307836063283893834806845507410382277115228430754484493437494137143487161290011626105893861234959836895146350014337327388365730660454537791997704160111692628345155298040038693837374798905202916393633054659802590008761914386229500747089926133640366875055110672053323511339312239325260894223387250648220443984336881687055885808655139514405993852927830433371796558532344398980121575127875075960210810979444690966362598863169627430728401471560155982338243337931366426904365401268501220236294887124560534888930912277122181419854871899849525308955410577700341707981286081795978985035749271729085618918784238072462148751428209616578924649940538400828877320332621012066891789945822958343439725804712560136205167955399252281939650994617551466376867070536514523378837528730785343543195745034445731302236236696721059865578702017214754135431604553065354219664153039026256098382921065090731174734642323451637951958132410423191804920512418848159659325416442841492079284506910469276196956887621171542501632380238453899081304266017427283474353652981075915078964540151635204050271304428963271294867227747515544657522239464625705267563148651118439726926799133787504966131633539779647755741354006800483262310242760294203967816917978311635805353920288399560439351954572751218763342013531624163584970207179692830547640220754145438394290989135525736375893527858251394013214167336209998984281458736404306345818657944705279809657056965468634127547575667973957503680096339614026272701767610011540561960036285213420732824058210428814527145591352660606312490717632791052618025323085150264492628432713741813436190836842999180270237640643096700470214280284655302848369065540989715453140700425107348320103096179772426325034419480320978536402170537966495832200224488387841051317970834053722763567740873164331577641479677098423515570021275835521863888731783717199533001143116945992669888312461813473558909774514854827906822073077744442347212958484397088770271165446799229840972661034888574304324407186362167026127285447490251120651720698479180725803901920992941986881473955653899442456124884231360377114192563641998353269786535308942880030337223706996829438521369581638723432841794835003739353590101605417461559820050437906412602093722136123129909087787192554843227900198589414289566567340601622924145666166564774212352452592413787006821008423622723337681431456430903128445475929522387350884129864125846439609375062458721612256617208738478571990876544550291618919080291231384188487000993176669436954066919154716285778998978661406340970449033546509678773267090330787694576198068272400874249977638928061307953060552673008781278994466975462023913042598728991921273443732179551284719413739869946901489998238355339601283672012844777358952352513037626449659522951732520191222349283262430133528084150788968873461751969749961437559581522450087314477111749391665085480257554584723469219250381417643475127744962624060682071268107298151279279812457485358041638888358522402858774801231764332782222080909890837421478491019137747330608780938485469553443810388340221513429019676932012149353521120644073014382528176259022010121659125937327654922064520036004482453814278038102350524002700231114508418498799547355264690412812684497833543844279792649824335552692129491739181989873800457910217954273479604103772779679799463975116082600259288171457931218243099576905255687455598465384168064555618744843904502923993720333993468135184198334294836867636915532886441637414881211871845822943388366827489394598804621281000730072447354804813919302250133844700287835308888584796471877799544174477377592395423203400385941991495607495684722007352243027377118874210670352032533683254860717028884602974599350074970963974308377957090046982242771557304938447958008306022236216873155916461665852270409877438563195682642716741519203590698329794511313781068677751283669483557512423788058957181886971114710500925928242762942451041194731912213166062143147359534625060038008151666533940545368248569432768398655996263101273679626984739874527131719956972229510474240959149737516376677885376916755172545195306182036503281170345599401709840887252179102315344027657136522740384885082051587027940440043297207829425478093839835532371935790609949708542192460666400143755077099602228997453331741443130938772990338012818984077579454478112169734978834858237541834986769820009132379501471744923774973832189865025603767139517686274740635680174077895913773204101147216248300589019480208289475798959531042854789911142581822844457675124974081977735478340833642735931157997065697185953688659439160924842372252709172629258951267151707729023411411817053762141936483482289659024056183899085820049004732569471879312616265417501196871297532149408658877248993392461459671733475966954835107939935608746095558505340683081374858417234918291696139573556613190131610171695243125927535266284662750859929114353375794532319825654173137040549262882284110500664453095217679916966714472167950765635138809990187908829902012236240696101494529519783747531438276512200615327043504119970266103118722647434628057577108882960855133038615635564960799388810589432309542756544693251447147597996284677614979959223745375374158222271460646736847544305042166496090592650559739689474526462675276785561084897922747348639897857131106125599046647444594361834602268084373929434890319628358116176612103289406508133896888371911323330609881472146472787747578164960743256107933726116779636098648498557531953066746428174365949050481437580622260357374558797062679652938715543967737219058400881192766847868503294184791227164205117205938472198210376622478669738988450912734883766606210526966684082980898723400174727295212456786515727609894358768303629135597169782641286643372431691580853860758130572659953653643346124291877153381575705715571867441868633632524491878645025517065943716709408493831743755658452027421760513726446169789985546921003989560851505044850626957791797971442980049079685170945755683061970370156622773238018759154857818802294497631790350489056834314272167047930040922558376785739588363742458957078624371999706775074027832502662485159934547871068052106741604733618448294809109283136157369351175387878456269784910940378095014278413915421083593572405041119825233395160351957052309830363298402782234641569727787072136299044610265747405508803927046204228885612267626324633298071589805810790605735564794743679206337773385010926146170848605340269167762085449578036836642590705487197168715455558676865112945500183440259560903446050982671184675471222537367274780890921544607758776120892084216307989445246581448633585351851683762918991507063371774324135240965011987203816919845665479608223900197952810206742314684534820678353033271925019850462173106195324967391877018507259380892573454277879824156308012433327098521490037670068601573417205643637991309443503763258233262908553680919057413486913035467303421755470015899385179176606230731949394048174498045921180059156453650332569800653866207026344097891311768437788391484687907105385173871768119955759347318785313110973906535847914641862044326552236348471009018196318361909064911415066733762081494109249037087393989079231150073632487709093074908513091312344857040308101925912196045193420456248125566226428686381497692023247433679597735604023984301163539636426239632525239734044310680469203781715122957670160326633510743142098757031113441175066332478687436024590914222076790771531725835611129392914727321135046258665149180824807190036307677137771864485341643066945959371796060686212705429741322948522293694610450399137476478452354536996526036952899813504545032854002377627417328456515464776071678451347525740246233685567798243394425024422837691448923000348394022929769753586587126008721169631807962695502107771835873408948717034317362262654199844720386369629525804152992004673029378274935222738485924369981788463911215869633500622875477003034767628980910880856855762056821600033187192442967616074508410738222686654447754942474086012459361752824932092454346330417144104208116855639708274027362664662256945907715867400476407508989300942600132990891857117940743188855598634413852088645934784128332481665099101877264885203769417185679752071264831676330385902597835591660047183687179605355548785700106816767741903103150880521947103510035016504739835243852713685822851165789767019344700032207566546334030561152533349338643559084134103878081778474648683260916243479653372639148098906316849255647422611101120322976681091126705882760361497231551108645931186842582241610126039381318454020810763640623518240323721767345106504533474549759071598091659220046742366846007893255004470861735905718214755794436905873830108043107498548853852330074778702690835616562295664309667539716774014236313692035339189371024248232141791305804694059282096590128082395591906095040866094924159402962277814770150353062453049017625597751734795000951826667464811065419255441880303835975172918984569781956212869733495247400262714189432565892051276565321392392795616688187246158078359682061493450512051296769350648521650553278352718443596611460907768993904506562789309418147870247063029908690226331611190192740745869892579998130097453249593788469528251273753331426790001861264393979123712692971575673781370474619743887107022484173232236803595836790842638618288969696031974271089964164701522165201094907256556405929016963080179125860768540732670466331014764067094229647276846925728227513364937170631243635642400244449692323415360910866152608541440490257338112735490786292645396500530304970884491484108152935451523071884484230382670533769655510708271964047503267891276099355484227036140875708222560192298487949270103486731540350894106961870569007208458468358998250014259987509309942868744934338061779042997007778759945691588094973317005870266020742648698010027822524969127902289178766762689354962681212911079387950622985094704770810218445421757168992896644075220433298190595595169349214967118879028029192740758968656436526864892192070660193642204451943042467725884528333036110639525252855060268577611111910290192691400245173526559138912932974028191052500382365168283998477125503083305578696045043353311945863702647533136804563108706293058219296670748165396129019425109090178593090559960097677756344049414130792754836607657103254429969405633815873840445996791074308747872826667718550390168836229947564764658640251232013475409750481472658527396740556863488741944307283758331197690641236837050541832163901800015960530750893000815308379389910802092479571985882860774895616061684382197913647303159137747066328532937908537504208145107516659458053727721763401290530910754019373688904896876564289509064073735528975013718068742830170449957278679747768732933054277778455385222535945625457431812923527257958915737173009231705644719965929278580717445400784869681541662444754029706403381227771455299010522607459747747196875629171424685305897006293933011287773938325912419956430242334985526955910256216532347636222508661484471238720408179954223279537663329671848085960826573038375247750361437610545010647536568811783551449770538781981422917619576586706898226152519201105458219761996263226786805551727375529380059787546873369510173141489906906465185005665471271017855594506371298836501575379499732001848120307094425634914883974667823767210006351608396544910484799618962267419798764980279592680816740264694745449494033883925685758024237955582756561294162666148200115216703896041742819826617485677747194792514780114169314686577852400593164471611467281822262796843268731162684709448247630883708819143591250403076809338198444906968881952273396486587766678997663434728729577999991412729004961519657375048381235817254247000254492450496611893885306991339729165686034873989554280872126911674511342311534320591752207516664652362937246056557039679419559109910327027421362680088796805041263374121432811421743173498447623180776097474473193607433836473013852216408664972274757878688509946544269170045519116097255613558094906207488775531107451064458773043106776417894747088531571075437406568383406487857022253403195246690334048332674061750365007060635551285569786847462569849196709204505254911559572471617489617219204798315436539306029608783147168815334951031722834297090613737865158750744159014590765621431635864754681053492737782580972240220658559925530128661512302260366211710361420427815748183985663509004166746064553443232778427783384791059033126934452393855793407780531621688093456867616030721817390364269923625665310199172297598662190319844139459650669004782698032659129061442238832425181212287287425910165972464166836439036033725334610705268595549703525399982417658693146066472188930918666284742610961889470153142664178640844711322019147184110402333254778904747118316383386370856572590278035206818179808827530855077060979503454536154362453899173270024945027623856861487554391385747766351282687342055404513160627754454831413725476500154233690595980402223878952937315381319553860439024109568480465839189322001346500963824537233393710011484447532115391269318342064813701547558163800518575489326120366234184101778685105637705724162178405303972262741955077758865313237867868361852842850440063729362485531697162105923452988356376750840690208641093432256794216413084273312664272822565730106917738127014682074598900088715675084832164764884188824445381284623738714591390606154455610777333376959019852007250679491493117178437050069941705839990601588417226965396229831669095308378280858919924705636961743063777943071189389840290699437965685968686172221870669399735239727553553546477002372185594714247394733835247547464488016902324039984477364783917672807114986562033635573108414647692973102601166137094718456462433363586142759132143157962482988691617656686059588306152317386713902004191105014892427192524898336332862412817568608789545253286120781114353876038830632420163602287587216824809908586674577276665739782586365035622106477026264922856959214339522079839338468775071809239100674629413429072666113436956126619148583642522529354097460890906434569261154456336660021704997557186060625271158369100696183153910950999397001338962652915430438289579762258693715144296144531708930768662198253082622415798156418673261523463506664712565721166604795554989714658272323562745728102030468289286849587150875943104666177574634174215573430292535744489354815639067511257126354238945167262164637751948525920249113258230237159162938163501247826930571122006639373285648260528930767721816770604179821051713017012714447157061386237525584075563649196886713628584948812394441672410266367206498194444799797064903951609533567097454591352026978009691397473657821449156817255127100353701343382810292501821039534041835649603742935681351264119454143919055257509429315592533573247209144893215219877680923143582655015499736423411245873884102564108577943654805787996053886080863773271902601901321022101281525220043575391093111153843000380099903352831796145075839212910928384633653959466448296491267566455518978885701893756670915339327873600798380736019877305436283113810603087465984085713374590727219732352462816282738295280413965131362136014286834951937211747562568463314143417144437941247048173357584506285619980016197510387960915231774796706207006679127302234893700867867941507294959150825751897169555610919440507014199255419273199995185023297316743513009166048159062822002811982150584624690692263468836115082141667368362984498339553835881152328424558558153432656912502061804873807145400585217982583998239588504020274747055421192626189113399104842675675570164695767964141936986441794645115652932432658551527214559712251011793461791804492062352863805395780499851215077620027783748867434747990634371043033872969957018538562052995291366671160112741004839612423682207556664790055264443160270158455028827891421042157727165445811586174898734246572803432598102486878960790383501084052565999842628110724724206276620014105560748190332179122504796655724926480349008593158323178422380583737942655515866027525951765301468650433411161690631111303505762959516181013921462947503780588262133254769304134696203055188831615159272092745117549721550177147035224888810218544179824195863503629037227606120833783406164324080926001253912719862277937939645384156355147223885170435443368434988386689948725384674931512355626443783419557549845847427044269890447128967810497002052951436288528754183144092339940744585382821776598986030257346250537437734770664342407770059048881231624838328374953996611621184121852300763458791920480224943771714542420844411094696709839214529664964852026867613968135024692056950722245145998451314975059459416794823177742228494012338838598407478397959797852646443894071804102127815935697481169946717817850484032439349624077212742276444187684121794857347242212492647518749746796319058364723742260042540084477748958712019727436432841071904512397172955650810671301864931897510139352500829110570724382498516755310528736368344851349055043434194828567866149816581020442964381514464188537562658241909504378173930080992479079054820527550630352777912103420546278795172918513590157094044622071504944898008861952164487141928925382013257139782935327166227826189443490082834606470894872693721353050204532256489418460636170143919209930388971582958741586637011168693479893256634100725857001305019755998792124673210495196611638282469548406425989193611039156906811790645721810202935070329364188170653173651898244777221286467744995104634342891741710181584428420596793552097173349805496374767548760001762707110347694396489919937759959475207441982758197201195983272834554047506888662169324766138948206651756857896839778949436128442571289889393444332243124274643984437588531855049615232311354909912487430324433324910053178310035983700804804028630669906286409425432426996781805197422640443563282709407534596768630724634414280426536502054545195879790046011884446153958136224169531781658799704486963877294310334254624567486607329938111339978092080794215407074098631540053631275043219248644483256506132550793142176580383490423966742498759938363107003306154581258152884185469233790634183983440799889709539477187787344767865760150017892150282470885810027430355169495528180423079917191764761478524537959934949783488689817489854227106519448140031295578740672319579262223775325268016635351496699605208753334469812499027068198368121261393788920174810695882359300826573469611528564400441572583412350715090289051536724619730577416858715651712719825632618257549792493253275822663443874667619853882791918669008184891375885739406116022864682530392055615822620574778157879567894539733650120700233858312461988287316984621663962820612961567316572333080533188348193187588740665141885549742614600762355368505457653158940973686912377473029578371070420649083035958296999831901833705719352113479203671987982436258519675783990842063820336307331178089977116939727763250232772512445635292721595189165136922666729155376584758436080510668101905127708042259558759128447246682882905844887435322737941560797742382141137576996958039917595277809512901138729188506858741687733917742871559503996466787568895741109546275482100967881163155359481952387194556454367172361479373002766172192263365602294293379665216032143209767479877794062806129831700466364503866375669257593766991072162963217318253410629134893845551575779533036321275508373961470002022656274258968116246827844917218233962882184404493825532927840520745263218751987819161397071304465810034471654956127064328015852291420606258288281202386891008079182597902180518809355151703335229249796160918954361151728294043125750859953699332245320074642152030373502556431896801407403625799476847212225256312278865652531964882353681641215691544474774255576703603512181395463073618371755730134384287497601496463025130479853436833197988248808143261643750383331784546953581396049964378213665638795202183829086151937583231338573029229189721387473776273117584430463691152604574307389856034709871213285794731043729911374877297742218641296152496090322726087069442584294674326874464817649172689056135754616878532215965065508984571302911373944834800262819644918351381801902227102839326797945155561624810342576934152213315495732083375370893934248477365405581304993351077221741945042357051029970970066606806237336577876667427664676950870820675066413312401267736768353338498017222197168861951519821602743791269129501016839271299054538910100350048511106789953088179432096212245218288625066437843823887135571688459949896123602592795511753053565203585195523215394476365531028020701975109248042327032004718154129097711908451254094859581910164047270292813802239430462500770908873972468408565866695801766521413207781308234566721384629269956632922912300333931017226000213497330184407049744471203687675937126968873221217943201152874829217058508606490961327051672789243445867621429109878827543729520796920083093618866463955808715092951046812632450257163772047185602440691874482674732022931256329815919571026682602804165551088576477429182255702648664048388237984535863305683948052668292410277978569858048843957306584805812650901692175901674528788623981339142866757455892353115419120887035740029579236832786893532810470827550286107351018319509480172923582687755047115703260565418747698638473273511863777595166032631024782333670301925307617116103591548528755692858204744542050561493896959737119443263139884551295581877259522487569352882373228251065161135064653441080068691011905790855457762791672674028357753715731880956564733404446112948813016071940070546694058817542210035948605093726172348471413988160036849784084981286411370636813044557254543218560160952134586517513974390719091336295353079821929721067985718693327236543885335282256320357627055543740497745039024393435531316974001616355751101380237587329454822270484422390235284144063324243917121773383734824684730509307088857089887945288228953716359198517073127259848320807183468820691936038776173276359565472395911522041894766942890696974831348167150339896500935423280439231890495919447944585273467428212020184804544990098354025177555006217774753824375479581147079971374807012105835503662324163125985314172748318215473452879068839829860321020086235525873306976141786904038796605529391161052748608696775226760438740556394745895985872417109788647438371105503715682442779015794578311139077070692160794797656562711180991910487898195751853016744799635155312170634305011699051915832133832190995592395370038799760427155837782840723985021099340898419511327977532102938743995790755258075670197941496276957085100176889163602020120947326476986498128633132646018608197140116223147013310571933634985210162054616614410761552414104748200109584005248491726663382737617278510583972083880878484301719583947276466711407811808237247354052589401178242234794432988721191366365767293263123407903610446692251788094300139584571076276875280897548068223357997885528620189261896769458127336716739255014652050737786464720098764886803551453366052013005193447650648777390099285955799442161937013535039058984851972744734294245330767528515936785507419438897689467926929160189052633603177338654597875576760880402636269553119845087684906162527835111165788670043929057886150009097397078869350931668149188764199797132713325019206320616951517255730485512939365560831311000275587878474473463114376352868008834777897205819305685478816686307666884388843361071106747876150895492362601962748107787994200569343696989617184243119655486002561380762317096241845979700850999990678094264496534069645649060376255185384104344105721452978592842540190961485378718786046547518225513579408930817571645777412911709310072396125749918983453109818497964128626510271998421175462571803838644019013768195194689807706313462628206879812145461312997597687470080161189770431473730655231993243367504860676082603576075844686760868561732560450526901488900448342501657730626116111572098617149415830652951046918744461203164295486133245731364712063881647231163434997444611600892024927657626089772203006966880896201434380545307504322213273211892871964311084787921499195835314700211825537636288044430943934082114085021219728337786042803579783579935648540881458324681870591987156038968907832975603794108347184371172135516205016309726554782579119364161483668989549635419851821205608034182701663098223175203233128396882157571929276237880484599166561671295270451888086794262251652084387793107003242893530820800999507744817449275704921639830273432796844507470605746378834523423768736232541206336644386412283945533449489418621463986544499559107892975982407544811439077317759654677935391625020726766739205039433924732878320199832566732483660425397539405449996283935508303496846713437912406609362290470354623451153493745818999507868931664134777279582351074554693222362802345933055230111858316322690356973691598623714213302112148355152575919888399242139771229824840647533956728436420118172190527085228139093776515882428771690785311913515634272231024581023700893580068817190638924625625470900082103886829895454024526333818197311503942708677458726011056127220008598883656432662904396803001394041231459728217323241762034615933402342559244913941686566430704435063072553553873487029510204495143515556553815682022361699147400116481536115598550784419688009396889464474366630084639632522471336615085977395598639313036691841731490032505869228378500795649159564897149843806698892828590885996781472416270727597393508158834869336577317701265014957399747939605479059007926447638829649832191483100882439556736849825967605298661004013068155760461880802946844833324858522610548461591794002567284719991225534269071559064527605827110745055311738147937462643952537906787715669733761450494907668631969034311734187048239506678324586567742130034879776325173299737093045389588275307314479538285879503035774978606068992835163817363535717314276684432306269903079098670977146144492170762237035413950354870824893432590022548092556415628836941061118789548945659442999111807593660681927102119104431213186592352739131875999589656299518517229818354562826754825204053562946087383163080131590928814397883424853481133976166296579393369466388032599817490848360836656108113913033649999780191855328336066932765619999027695909045404833532790880653404040238403675568619044431769818135417095626894080243319144932894406645900750728102662290135922158617570727981776810076567879023729968482911374431132300954631418743770053600699496016035917505459024387211494488255014086184628937969260838624403826334927457104676063151249379355661106660455072098761903627318930879539527271214178751333653040791704557135994675786337830026890149645185588957302921775506167866924068813125768187894170612944630361554419681883959349360444488963471548032605039126381183619034559818265247301346649657598782772494146751005840917896210103148107144094128000514485591664172376650525999965729732126203416933592837431913942372911148091421527813863066519967801008851366919596923237869403858452991355564566014865757792035736045236932062659345354983686979172674375871482225827262799737772425239405459381926515632339395390457090553771717253452530808775613595663611612776857042530687565804504352902145909881707497320011938874772287625122454379932142753508040972714296404405540948311496296016403940720326620549430622205593943249514728908124860629078977795278895161594510057821315884368948147774393516472573657942291908871925691239832944851265812670978342783215740125262176854659101746588754791799467618220525825438738030386623902875936152057717026013516527970027704764017435351527476053270993750816247386322711799462151816237151680718477773085695440627558731751944366628471668661416458402752380087885472787768072639178968517190452038134794072286151834837279970477189985021706832254693909891843517305977599309112092836805936672710349630980747004262981266916349221435501915504798639720665486275926990752773568293806871285913175613093856842296110934777360624259318822651960684965379934483887126241374394200286504329910413466354819525341672750367090927859704966955723618946717407886280260568367202239900549319184120835607925388486057338389084529877083352063392369912701854895267887461220656183035830891068371012331918837083142228092960903522817349976667866833289942056222437137550956669186798889828853751465776482460249797370381788288415999859994474587785327263410512032740781584165726711094076516973969986345866392520143443876297202839529631035158667248704443672448698101318136964087173127848179155579725614659475451031412505476896488645621522104823794275384859533850325480897474517432612308774722507235520983791814326859940491875442480595180111260256477918113484176406591241049271749789063241755884531652707071335838156383902946998359360638970213432041431834800262563087154045477625579908507903090566657132715349490718101573534862650760388777834513299618832118806164696179609903732182344191458349063588258612816546653013184229479641360000849296159545079033561864110310092505089572997007948104056355466833139659113599089962916551798075929949148351549016699864543465615622133631862246617648792624710673676729231486952889824046040618289703977099473018521182653648923650018714312122931297828182148550228905283981563239130612549006943617669941753625045029889091125472812396451791607138063454009762346162749916790699405264180710877625341426839907576018486247710782131195668353209642861599292307332116397752030963025115773914680402824035026740562899775380505899780171800601836320578080508167762319220255452258154656722679645873069961133559310591368624842320171378145189908200279783199273278534384179267123564556950614358706439087178437146670936029962118783847067026909488474580208636977991466845950326173761066836331938745737968742658741375917999527307530121381791519917081951433369174235165236405526691787518374778327812137499272357075766217429580229034919476518207691077985308467564975286490889622411248489926048369616132741236496895787437874096643546683698802112137173069963585013489791462180019425616220912563629840236644678201303902358229038658775764092583881844822551462104506875248188299347136526076645507002433423360446114343252595204007849682731966689551285965238242637847029907299397652413552136012483638829685637938566850046318978051620082360135440920100430747340198730408350077958584490727770818338162674061926478679468822683903049816820057314174040304851270689564664647399505960923180590539315629419586558252558813322227688572239813435801429882421893230628997929408630466840938442064868290587240721341489209235101916638560066657740170420949404611408283676143008080875902129992471926951003321662671429967604017407184805991171966876168944433439598681487379528197813571432166242696989280498306427003942707934615069492389019047672462700957844815211230146136808376198028365421064187976766019349819667292028660214305414401415709921921632221797184584849461646301272932088247930682288516481289037696895353498680639550544368305803689469137649169466814046799216252688552690691711057998175180963546876620994950575727239569594025498641006298764085471782975925483600685651304370854638467838888171682259638800238510859430947189206967395884292988639377612623641763655421337728461019924886421634081779794667494423285732790391550789302975167535651494772339988580721660953864295661450728123528938551779395246529087401102028469513682994391509758381679773243617369059504980671145936067317136040656686917694094852862832760543936442276563444913789930158375356167919182044668321557286751672443345158695016983139336182422161400490208707287781669454390268286458910950540749638779328176978710596333688784009301433348254865646755908027230596281134686865824287579523056101160998153140668380759215849222027490794887874330576166417733110561020234814932665772411413008592749680372851952495099584546640429590287675730533829987621796268551697018272625280867562559265928603594382594502071240933608049206897657694503084058140261420769586499157580085552524261431481390914442454485671400911326459117723009137996764325641064729864304061490940910617509650827854265712080866326683615390198901488222425585597105419500199865983706572206637679000659802911115403050721384957599728086842908547051594891486706009893366725396123747927495424438172207233019028877335298816339552192858556318655285935558132063402270079405543690263031549005963573765436783580442493365148580374926073811002204647733033261112075621285102374457112508056923446564672907324209900624601295208736749009351048067332092086754992930267920171909785270177952307838036205659299318995081603896781850995441781413269716382544679341450535596068639431638336246419622949707895870945726089992246084647243838518551452321614206987740233540856515246989611926390609938918261303710680069908272775250592675063461994403179738909755640184362834630549971762613534051081353564632176316565750885676805314166971684188131363057638790410825824210939672155445722784645326244199876762888183192711769396775283135832009630216701984741363480697602862164675259477183517963245345710233540694565298241820556919609325317819372439316436325443680743624914243039123243802113514315035205570630309522701391266934340074343140562930199596785850349705544680111414220443722131822571770709535217125245122757815461716759818246459355547231780583889673716048695755743467719539350593547595214583711750221852821212059022728824305856228123062687681019926274470118877790344003518668130862926867233513339335578892109432569440756858585233797128653400842549052070363438496300918784783381872619559949730933842337417708603997083685363929427659501008944107211296296260829680411450386053504055211314778079284931486200696895985381734781119240403061059461401006104016566110479515094740265930030495774908014663660670123770131305668303989325629571533057022848173890165904365274505875297192576438232400877200589604685939874883925311945557979413308264009929519763857182497793919810628049544166452829214305965548259092165652099455361019202175367926723304152388415817536289059798447601706830813739434498484316874427399662871524029391791874038884888124680202148350240483962537534199367228863618918303901571802415526331882824718303817209901258694604084390519620424551696486320791919579913797241847437777958184540059790300462534313198878164865121732668550153344024492922399130787822182920977807356433894182220333253987077926450841904196918389166612425141542440128132251716593877961166538613742524131187206021879629580199024608804691750375725491384357300345148073091804473187993779449897587444532744548354298681636495327464815015176559200311211534215620121229332024469759699189416194181518044274836883812720888392666313243361726425930192127569609116834627543427401180391106281641812310300029523948540867629889545810076198246533844466225302290073062534087029889654099735082147883997702112752670386472440802450450981210033245868146806504559317551362289788875785796994770904814036590408385180267541504635196681481227064807209561844176994600124151160252818854263557370895626113475828963784111704485084010192183617094054358929933140478181169490701532615737514264907368198150695903697051799280135221932042276585951932314502135057163736223585403184355096407260861348548220305512055271122537040342517855650116528639195152707255107439503642211330658741785154853883940956282799936635473761585773431864812746111742515292818202580800213261476100019533778089671690393185542456992371236459656173667275263596803362317405894308042892796054310662507448003410477922596063748991694466126426755231028560386839904681671352120800438697029506222245704859721343129707461787662850689799909328005109781302481478100430840404175575323521217093742540551250264136395244252388976518230653358691905413278699156056450119544368515769668097226028146842775190139465401404435605813700402699031249496721625922610479467150055756730254934021109465128977829124982346608690550840982155722700423520534426046997077998176384692790595721025344662998761619589701335332171403645401405634324234810893814996530559454059516271621966810102760305109105032229491161981449187591817259551330949148479035202553048621921504592646230574906563581895449994126056547391636388019609610984251519435177297371255159901089850427846733383813536500836302154518383593392335605938301451852888799703540526395517498643832074334992154645991861263229318922443358494569543863641615522600062863249035716036477133362997044125535292909223138907803323055779691195673079320398033065310215358486475734462480252373756614681802101747244819699064562525999840645800262629206193204063502060421262194650589981737943457076666247815961797858930906934300904032048921615507810874897344318444435029707251012341816638805588212241487417757566267623457802306043369699390489098594322650732794417387010955367057994041200918901444496623285956062972535760757517836801552091723928095593697180736259730864207556742005755192661561437913204476085121412320519072642403223593823750260674908537928778893755653069344937590517722045381272844029970676609686502716168891540778131892072309472142319966051962771603161668500768500248466804976404401440528114213018324418894463701580570448254274962341335369364088052033633923222399043091688115769322102587977232014568632660408080754416829121224513975367145269636086954236854257576479774389222800602858771998214076397059105364142441175711624154758492716895976532376031869837387117887488604557156745840098263301399443757485237798778645924088767989965334421541136543676843364397854678174518312578477711966786912357781290498369792410659400624554307627513266144272147774468492178681870942107144746458211561464107474063229378133347608556656097953656671184223431575813575585050432153205299581619258184972259130648311618517174570670487357796970223140673358549250422792885872652197121773938741986480794780328937544355392851632714177253553436327545037541139038554112375603844834861909995964498907238456245918829059816748240879411118991307591193998306889654926354356276450976324375784576879854019415361427117710856262854221760830659710747008128232586458127356204184393710239621467230117003622106832132520240586259898687221174948287532838426525454047989293488969436915979564885586445853784188638707929837487399475578986176204607185264637900018691409222768963686903532677342167847868928971620064021108156873040780495864426079170355243214116738501791538599776545716853645442181869113458826680162942913099050226492535102449684515036359058522801441707646371563888902174046616507784839455595807625922865521778381546599629816115951290816621533371590814655000322353073819051115445910961230984959445519419636968156096669440793026855758191906924640787558376551060378616021799211328897751143758998382397322791413624815734693650398834372435570406354897867384221101102220197116653739839306243112271582290533677543187898600102195025592343153639706072053113064315617324330928492381173271658684597372147575295909999259730145821153545678730213799811267665037069289203735623568142471946387979237419620513979649891308980428030207043154208367177787716637684076922433721252615752839774817123133456898888578090664410162906199036306800222269838414383906549515703795263612963118850558463154187636034745164423405549444578685742678331467522575741579034375303679624234069642981693158034992629349208350507434407652423771836611614315867907220501255601510803103671935329295269540915522942905351296301487118635265491043826048871967199295859638420261995687325804259537673055676662837995702982793399617322484398950035059807805174984113616245177134013552809444684016994970492881793455497907487360492124257775603193420207966869692650463801685358883024849537241587238026893158626066201744965003611531209155009330648562675630190893469325269349112778957536653748929664115943548062350651760943162102875180488960638856351380041513255000150613613688566631288152781298187572669939301038570235056861036338293744094261573988814455042349983738484474909062393994288116351183156241827111505576376889740384388631480830771121135940526807920455188279380823587280168780369237082907127741319876199429016650594037621310428219736218195450494136880309701921026768062002053822425529181698516975948286955381387670960482231085060185939277084672824558641261888866017424260149320205481786325707346802537046668239275096463819896909524270726794575389708892426785635292519092997529164380634049438213655306204040794156923015889423896400585044712634387162966687473610806573916170689529841146810270443842693569834434048059391984467806435886477817850913542329430820904867400648483591702495360240810205977972870104991603049559358564265031091673538877339052579007816952735058721949983248973731409891725317051549963579928805083239141928195107414775564743739867010421052271386864629777123712212517529179693107889972292095681893458115325031779243705639812856976666560897205863194991650057909413695376567040013358121085464770445037842438926506462256421546799129168952772008423244698239914198974164540189784980177587601031331078385361319078267614426016709284747608785500224723443411502300597287177863041452646341553844776278680536294385271598740785901434486775937051070324958592994379009392966876746562188669101797167773964856034401347840787617565300743559436065525810025200972207938178841134176921612425357967384659689929032539930556381087890299654870800298673693992454374590360759318032398036240980929077396638570068724298574402033175118505048565604323418098006650239026137820745597293411701805150140874470900489128966804671451617779857782721590390762953427563225087049135159271027873769873044151747888001350057943361890253783805214159779512685513419417659647687096831279065904700214767174176713092327824773192060150108344069642996462876356779960627406635834976365860058433882942728663017356409872593999892811614947946593746958859997748685553499721210816586979023634974470818271513400780796450641169957063016004929300285285477588367052550784931793919987868101833272425490066640597101251342076879675278137015607975661738382290918667323862871487529884354017092720446281090769152665369701170239765162528223726579579677363898848279408152042614103637727207934336618776746373160186049556143137074408857738349142309884473670378591347538946284017742413342481444082570564104445927874736098543792322742512758956436646030281550892150725546193996355748751241108711362422251117613250837795313785628236619431034940738365952976252923270263035685973989775615166194002417616308083015326950145790156483441864368871090486273244656737123730355325651817636384345824716735949180739401624605881654020705584568167342666208454593756380064106454684485739048885708386811699783474237404845531880788782042076841557552513804129158160774986685660708478850534336687849610527707668741817806328251289864657805245037281908086020217063357731585404834602237351795646489153623578498887733240250958838197822616744836570005825159040148806593123068652888943253139019026515647285482772051883832865049415529503048263559137134156933169003467644265295712147450486514114617677266784917873152222012062576348267830442712296789695758173577414634887414213473928186370782847163939950734962052498910630588001687311042440309886356178663730304795805751350518182326274545333144924215320176015332842067405376218624292091377300584113276913696528891752423360648535785125688658991567463667503973291402729984436731143472360901193637086120534824130263427221623486768138439421008176379793897684849032939363043323877613096213695624409020346398062663682668516827072393574707272489860458906059816868195067932138117256011430237566305901140909520813519587830061746738348173540125640085794952726269442964538945444137772728334207074598832701113579050514999898318603864473142165918236066312743561924588707946438890547262812128988150842803549322986514851520294697730793412271337048324725982403502473886307628560265808327836190724819966754477693792276104576922624557062282049652746256492340942597029796540776412270150827409401851884577982652336077254547888630941811335879179571713590853674112463695815354359686199878437619887159702446079776882453125173373351341380167472895675654307028557966864908735822192236766907925850890887183347866391632461787592788924013106472537721097486732006706290804022211348656754249689729349718298066315432311789904193063650115132930306393628749748749082065759810647132270828339105053837344658824659966993909382008797495769810003471391470536125046908327603449136547644707157809650279268216619586416672716875892586461372686044818192335211770046195795775363688167776764283348158115703412251550998781779538737341528194112497283240158215125564553318245159496492109154088709606276025417990050429568958003149428049723634428522163104802257791475616320044045212535074459977381611171691154768540790814892075840156710082663716228225492921545463316311362648757751124397893554886023870064981494549820738481721684752290175668451118928587584038404383136129005369805650640923854467354571317557981032088153199396212783684165657920595546516566979774434278010471550266392131928603361714477752561654118151524130265879433140340674084818002905794024672753477140991605799930683383192871793602420569670446371089739940584014222470555701135082215321471786274042765732488451573746986974810455413262634726780330376945270986562780336878455380367362092296419823738719601194368255813910218147795098213551089426961149528748451186477615531685253318959082869882647556809500295012030848792884092743690058951349198701709394574732700241425649458432181449697563542997304453743460440759583881037664691234149375534069555155814903826223642676661760732968511703732910199283391260604619382331924291361550670435251976821646456395827436778818245008525359381749336210134892545639560927445653816334209356801875682476183806117774305829726828294427060640926421364827363893378561141172085111019607603194879825906777246885909372589158661703298663872909190000934943003046739629208788079677102893633714301903385694324985852342944230599699897738236130402229467899427401796023769254019392910757830549883772125924912945842745966901673155786823368111317965004598283516449755323305819776799020401480312567354724669953017011260644579995369708319129767020064555793078296254728126064267164541054050891601214369229214741568798739011055622558533288608162142643694574318753550371206534026681317301291585731000091007621241705726557261967924237301727587012227973049408942160637937681433162266117257887313927731844843187262412267533914045617898799187384156772398707454397664807874283704029072240728999656242940466738498210845907562241548957040520796493547238604702347979365083150578317682916077003576428422666370402357119790103721225625245538556273102976938670451969987585806156005604917195771187412114634011041008796686347443620660519930534874918753538792122407808249508007942306489621659710418009763224023265272462908791619301807148012804141485125202388514771546935597610518177833435634441424308634449403530341601401679843832223409687400670657093421251000411730894495608166164442696552065722563896629438489597318035329404789984062304592745269730174004744496391963400944996305228518246814477649756539982854207201588510529578975086631745650485479738318990227784555783633233886563791907949949807781635676412690756676042999871113286524773275886738663162900436907164143723082172882410128244127501630156013161806412454915510589980270687631655605144139509478949710682763683567171328789913998212999248659319519537538043473983713819077332494734881745021525260693854451090061535942005892019747553655562013852049922582893878138978893613833695675900111149554429704350288044098818404377930474637554162254998142556487341583377229953109357398876479553317501586401101265738477064617461831780053329156662825222628038497141524087918295513629886966321913212922681517149102493085041748304407910739788674733095752181458366212713531115603234211249467191027025578561511833364455090546543637736247418532073739503898309158033050214428281127233338366232776764542184241399726802955731019257911758985261453177171502892104009726697727618390982930353187853164092060534424597586734430886471767231083308556864741040937017111378395462443019028588895466335640905344737667453136487787395257947525611103754945784270026990358935338538246504279896461362000029599940749046734239447746129877344443679718804418542898895519164263719115796771803204563669467841774343717080257965118508330284265008950768372090782569038527921977340925953722968009051267266115612719594773364051802089657677349720257481952509264129296913509825075258342040260560200030883118623629305059864298430335801340910376459791905420084186206119542296664137967643191264998232455193119508283328061065648791249275416163309462440499754492073862582766675651152505741950331206006267124836101602338769155160905746113072134378518160107054496088296724552389156727525725873470674512297785587844226969597884415056928796035789891421800704097919871410710083448852599762208797349421759586675379349155169690301050041978393487587772780013534920830748592758522392867714053073434059743841774248008014977684268647247338849069812711622410305114258275744842142899716905575759179824540923747940828604833011921140033609881106160604329249873623916592704464880718234231769067605091835596341529858578915726977009308164076294442703950893811727570630878448191142945177878696979279437247677550708589287149727355827047220948084587226060319488761617341959953443774150805693463747802104320666834479268844600240285701589123157980118927847134153198429954434145477808982577152957459961779915704357860917162896899676811715508540179807652842223171559704365713164493230045606500269004223001518217234672253394245899745855938188315919363039144144768810115261215062539422652999143161343858186041698354939471529583578653234418166382704736529147241376117843903419166262112496901641808128446174987648812657139823664785871923891372308998586970099156062796943150490021530499119533292143475901770513121326143754586758294132669139104825009515904408075132579097936481458435892806604320081039544757162846474675288628202215347658327480079945332417539824805152970207487503196289700899456836981058279871402301032935128339470125894409565944824625573213603426326043975115538334961566226369959976104441796477648861047900004708709866424386468635660217589091314244394762607743820832729909685886393225326591712843606340841370370208862683110309065101184295537845630590190486535404259551731984815060648898075001503139205141331736917065713105586229445511997191743678596126999909438109593030056677473649733600756879530553713527881673942380988886829945490390203950182745248812591101591900011788942576551767836448202710597923620272787059984442645217382961383321730514013698320797037725290911089963401218843432519707655164169432051437936602522659913367905977184283102877656354479974475951348666987700693952304192675320298071627908220284800816925649176556201721614649893762237281875132550656233960905722913748220608040571439401154919937039707730719556539269467598480426387607968140238393318739319325718487982161578668314560311098502952226585489345723844695639569007021685108290330552705343115107996702115991643756570198215222406481826846152651648355470926843223951258664891616865061437386170307977628245424253700402809002865399045260980610054208065259982801809620739818553415921781217720069241744444499077204308477677147409360759752520401706798125688462244342892207614914458929400516385867476196995399093690067284945063853789708301205291358844274061396550114734088786544590375648457870817000839856294066789155291178250325775016810280731861167928206499034695529409777681138634292699539783560205279348975925534660115894563661955046373900921468907519741901977748795593474115619232995982842515821481886051452951374047565268006874304518916455935467777220301667509338121857426672663058664817426741474054517723952134120280436860749791427984840202861531938792216213615548749635287308458529202643325861828787444620149954551000740197923601821014742714887354137390482582304531754005264937873989395054353081037572635106160778935556887762523867147377068522897064763381300030211739333624824425106780491192969047708828141086720772012540461237169205245789102122575062253942195765563998052580834258005495359057816906877284328435006812048380364134306494952599452751864989785505926643032411137644540870189255261199306489577283725576983997877941643460981184247420327783830239439495720868468232381575231234243401643945807051069048262012121360260443349584017624015712876518177768622576618383389830287257758162911763929844252814737095899320945027391323567657220063751681549253311035413482143387605133730292080121029737990667238878326052134024673468072317880599524144686664696138881897371655689791647928653546462373491732988125185607297262195853361950674044957993542857654827167328135620906345018160204373703326217267257298187691251667554646038215214058002185409472880705042058860281850013833508657054556048684551676839380241554279787240904038136414843970401932565353254816779315025942592551999049552853130269450026665438429997905161943669654210538729437424446375589759199842243083567162314833768331606328949628394898942685797796986930369923514567738151273973998076276722837103086086480443301771105684311530135010453305318005598037565807357568530926207040512411203519415234897504548330521975123687660779247582740534283704256887290723786973313007117820281567960396910249119088296688922312503652660109510649348334070568974615650108278574673250651461485925340916581440858268671188889656845753063539480057011473245630026112296478250725352165117168842493330727078409490799339466936880161996700122674220863303275107215032669179019490960454620717171068366783458455903017720882039885717169207223371220078374941244361872139070032893422053381070671022429774598111148700748687370320985478221383107585792792548507908823520338186788734145224744581751810431507025670877732354120676547822534820871197620876429012770877049205955682983965058680361192423447660449826900236789701794040703924761050323448313949910179179697929778333611692700468002181796931067923061963802888582244343255689181364687796614634451504752954269552187205451510042581339871954605472572701917991534867740413109543818975520960702524503579558566188256828862325022407931421690498958167731308141661503300984575259120480183954103441120005153892107464235506328126265217873755946382936727004082260616230285555558988256054311374784307779128634653593612753498412453974202168948370452124778776199728819891870535459269094720559639706227995361294835226488546109413395537434608989697262551367667777422747215979756997225533742995505033898742752697452372945120770962738497734787160045342502514894840010754815071914360986260195464719190256211653695781792150096726410331883564506291949896737177375501436649708491362462704161664973485936748836423598335402322051374278648573723047040240245736935573549591243439316844788705808507983019733635600003509879606652017268512306552797438466430094645340434412485003577057324826490846461257934668126365922659159994737689859304434064522519344197885713024256599345835780706885742247418035115863094221500592496389646252036605751977809790072704149723152015237560615104671565742073877681441776928399964530726815516565247035550262984044884413893729426010784394454616806823608784571636929077750049924149030938011376553229446897675808434591569811509794331042516383325622456029330597798661157580145388540287333940905879079832915277495288045685739567121246645581889997001158840751453795658132055640212290766175528052971153377961074126421425216878608091445834780766402663942597783451016773487266719426751645247550736509478573601687953673639535433883824670116911006889709857651442559716421520288586760616874485417407713869918079325684538743712384872207912988394055354065608017008859116135836941807478967824496773188300774336558169482947302037870639559730268781650371389539864088375980676766519317308058929669054915975977933174667917247486599703167971405727643000736180474652234339977553848840508269907898726479049669919955453500707639018966364068310386290330099172624729320139401515881626494109099192513124221904652387819983497582096477472073781279159414402778584691116052518252313970169955297897210272842730264394020971040165458323837341415010393182670701502433383498321750811889689777068916941687060382917590916289471140020208567974335963893514840233172055299357606988773416895774899574031073819245187262791232467515596082433653972503214312571072298344975763114393991721985628070278371237715321468468607128712087661121729274239974640591065915984720511373226565937604613797437331222873005558845215560558177429559817414681397973280215092371174100560398885569159305499839953550911239342007663578412364461350967693917163571842489253006331310079812502146249408130327887355280615645688944115421014695484335682406247108534598026762464015688848628695931042628930567470739887270875348278707232041842892198856140453735625870576260058554144237757070471143451229363636197899088390214431499971350967839582934227406969669937203806836408379173753408345250707598730881495587489722948433379398099875992312667490874087188896001336107173152460253681161910548204300125443582453780622670508795598052756775429565479338171351718239602961220404253302027757032284236565833757763981869448083759826156602470670053889047978079028601237392408731222204979170444571908666053214307503097291316008484581243879715296101593849730360586988641877258250401371407996873420513332572509719036548655697672863712482915245055936381322702823210029267858228030072976107428022494324329307909003931567635609527772551056798621815548920922822500347464951786419675795391117342671117480442950860264089225801669099207115978876599942253785011106600057169561051365930963931197708867825755801566940818729470458981231807197375675918879307269562525478438288245802419032837128598386866988505332323763481001911016225922591947869936380276234282672163060657296386630358385115744868941574131645831068834551139144461480527167499091047578271287473560236526378587597217672794140120884260554774087186439134378065291635904474229493779822123562558021763863008439481248688161002380733698779609593123110321659722057702841299250526071142544686744501860935577895147389934395985461895434702485783735812756908268536892225654227457053800675453681196676413768718792207362158353767424114104213138293393189915576956341318232055780081904691547254598706087896756992195500130848029478115681588004118181648474825580768324831695481341308591310252382232131005534127597138002349587204489708120664548306364468734249050960944640831979411630314457222782793436145631913882351483796833059847683345766233658507368156135958281854753925241706047977676174377043917558118529134298328915275098576218769048185913287457323310511630064639988177921807208914399603833264667102822424194016459836266168262320168517996839828596782186025179916688193590839559772338753726874445946458327125266266138213225609885426504681406373679412971750659589355675871663979615560844320828797256804595516655935143669405092868812528623242854647425252507621428407651699117565211553361293582008540317549763056396602059352090287083753202344814615762776159644125920005249657170261291780044369662415869048401771323996045811377496330260638288575146046504774202976415371720736081153321141763363780684569644958839095941522090919774536801979011284914088976901888240965760373008562103761491170505182670979164494211729170017153868754339353050529245050255083511035416462523365716148150709963083240212971349965548748397583544665117330994833189580557900344060249905404405465941151207431003572700407987951301459855324244860828152149901422961575394944147211741162915984293994323440219170882139908504542679542674260097555584193574997694810452371009617469501443330420204335865353949686484450864397928313927644046526640219127935760075681843684300458610737082934090032112543839769186164524742934859893019731135603216012857941561844746595801481244311512022874367256116492365811928591819794483244827426677863914473358619319061281840360056440276758017990314535470454753124931042139231973443342905673897482704236800970576243074397748429048587479216045258017029765451917630803554604353172006248038124395670757703394178350502056684442107315525468755242473744229692487468760586386201460258168521371064796372207406198846264601773678959343717207992814428897176186851623357887507266264116482818458757521678589689400165505569370154483580328178583270174352640854181273633678405311569443640946637182014296764943040316085200322943048803277280618175326980626357793741672447320845261584634537234348506974159626024577414178208227161314966465640633771440740794439806214812114400503510881360943500705230195069067142691680327353088584528974256090235181596742118309046261976556949545434389597705588781545666737528387488872282348404309758129186630435002375210676537091655192388620706982506760294925842490159705134455414844346605886892298908915375074801845867507290867774488082549467127169001659838623059337671168485965623016199176512864656191800542264358132320440421189961449698906996726131959861143451865523230135375809127603881130208591209033012466465227084949032815757281409246878750665153065696347788706843992874389822684955617000240547130362819268295859200447399068378742867601240176209701941542979463635260629289366108352989372310390403346438886873086390980469062882922106717728344496479200088718529148920663450152664207399759099206074503862785270021039198326840969292869364796483849615442057723321528047620280968610596132712568815895665170054794664751850436279991766778686959424628318600110206392327333103293791621513833522083086859378508185960955919256810459082732434335027154391827342319961222571059614009020114533252003418155318813934740402900198046766239413075536422956791691436545077518246356928406356366641190836784131272288954967755010038125816990740960911383656502262919993906784232234473634189555803057584315617463972741128839906345603947979244642761664863978239401859846457797331112408974360844986357706776963626455604309703351814125017497061047200810445906620751414541618277489282344697799136570843219003655849762727848994646892916160249935352678624205261843464593502993220639742974401334946074683546730905703078650242720235672356246874584201351335766320522411004020044675848835892701872006791893407052495629737247580657128420596012438973502083002483789662740573787008892081792154907286456807662858869414238252234172066970959465335561871552726734959037581232184444678784422682244572513709990094467007451633360459215156776927910085362314492785695034354410602799052534643005681910855629583150579738960028184706685361300508525256908500059683501005521347185775027311767203185506078967020626943746917443349282778009580383498491141445283031988845929093918164474973038016743459889378567290376890752426328653517150086660422215363607550060762112254625355904275394169545036295562862452605557777527969873662176339100702231035561774828124000666064883205082331624222592060765879702572142744006659608958524296370078160439013249667119951210935922903315702815918143574692272147351078374113404957010457751657944990815821622640381559051071413967778658121391316814107433490911435854419280250909386423632113404202959042134479495439165177582653295299698861733413679634210004395413098565162190091704868969277395536150973698567983803140299734133059180631686825445982680382478957367622991194488285531415875483406410394519617743647785726055442104750001659991133908769674053239652051147296468499605726644887458209652964341936849483471936124627230021204883615946353680075243485759733143211554310489390463139381249599936440992223740401408303759384896518454422945076037766087211226990861569317340105492404145787717452973468240143164824815791241410523305537618671277669664966031325957351719561059406639485251765874182638219630920297672636140011477408987491450506126693147587746041483944030100927759953507590157545237164788337200542209642318324511922434289757445488421012511942798399807200950823979623666228060809734422182070605917325821170240150451929631192320811559742039276274216861593697877329627934010553814162087017063603290249287005025992061741106236689700022451691078762787483017032264467702961307889609111857438500752310100332468153936023894575663583583879199087090430470017589344201489862309886611275044461791215111614929933177056011714238438620565282296137002358534647778345282530010613664114404535294943015245700563012753075163501011506726231321664829667516882721025256689877594002164813042750360787508672471244702625384831714229574302838733600394110624192967724571427059531809069506300587539227141149767974808497872589528859377937376719691967705917324931271172408359556822789727742888962261378972528119755255436680412521083705337825955583635911266743506866181643816259210661956812916457435922549900839176722328345527182033186102008354828040981002693907179002704073863530558617114825746308549627996664654036421575202920851168303919081755684538933780632254754358082107567896461221595408980071624557254416212395667053621949438750498416549122184608905230579671934278161613191536599912727869857291425228338990320088283685283294943104343005525755969843010444892087656639612419340164793120800402230980990402508578451948959500890907496872495051205690972818349926286219903255734584384149076796903910785356735743126928293580513514357540147643432158535337477203585324115793082945888918292447655498291012118992777493185406999270960969220720683658887336412550239547401598658504961596776449972588125922218360477375067938631558964388892572257902748231367167794439373533785705515465514721382749217456079741116932795755080063723631107565289010920764741006622817636171655447861918404650129692086565859665513296926526142792239598826771843984154077773054898300962220321264838598859625380130053077904144402855213080925862918259515891712835477672122351513629076659185534651294187273300203699936809540179990362936476460428918499083399771770121326276703099646035998859438170100535910654277293399961758369692009527455738279555035940334756367336025556336384486062544765989522543797097275688464621983853667923611341707506013878664556521373270754177771018579706078003811569931980871605010793890912718967641916412035850401736674553276159879869869821802571488968370521952582449817926753630812870143249777691336531853793184415774911174371061533091283505947884097267300189367716506827505451529890799568932225605530701218186788053348791010053219760271731473544911962342197638814322034393216178846501763708598276491751308316461527365816379040212742992406916956023749825583484402766282434987267605058966690589210458680656289899965299142122430808756584526154522531458994613872599734443850233988246482200053033478908171205387314051766104027600782806866768406452391414408338810808198132394995907588145334757432200873006846497304046925870000160100854550829334441708742241833155168717280667693397584271535524663726734681897561420117694744282984880718384208041566027963770682776712926627269869609609361908870453034397785551733700286060271685949860298836374591418107328960398681838816551174419604403514823411207543466865520813550769196519864331077531302122371188040525198036273861419513261807368293074005536896483183302950410174400586287909353066352396636126517805592795554558948997326202853219948427505973494647378396752121896988433840010331033902726447095371030028651450289439465794069295818177641483303609988930325886044354015545674486271759440992842153254818137854680802616868127144257198810780540209190686239350267722183928567882738509286495608292219912682004079969423592745519154745966498217795850118277507945736628996759466791049201373995243322991018470215181342018761572623211389637930845686235096285148931404476069022803750485952260138466392492018080036497821660397857588347656402940215768665593381003155336582412576901294394600196753664925343311934486711944106526712290575303831985493567576848022538949555946685541743164527220571135954074772347893554754545698463003176298807387761586830404915023949601697937880140942695724007019403292395119957609076501196348857236395391623490684432144701851095675993943809895731852837077638232079181722575812907845075893237968448144991534264756993839835598613350380924698112021708467972099221679559800639098956017341662544663234466672579404347609114473361026046343595113195475602315006338582127602541196652335413365619016673377357616452147939545355773439175169621247107289181183476309168770559753172049341204565007464012936328713020891454241730209031912741872362142528141000586630462684458654228668631795505688934724032908553880834005469252444279797734798019978118949441468222530227273445484039463554969578880714714555531563053291789247839823896156173418424357130489286713072773715722733630284357045193167255388751896604653315998738271080275514745072867329058444532337518863688051799614404870190124063851142652546383358978277027358095029477331653862484306622932367041645830975226397302926306821582400857329668104677968337887474363371469709392809542750011135263980044782600046126298173468137247376791209425873033069933892076376750633452144076399748529873582455753167324553397454865609290163057761145713370499644968689055010362557373107915681386763091893841002486517484090018730520969494481921271794023416528887605370812772207986417715885984185367127844348722025455621564091319922506824393410848261968805538885305113180572619565262621633478770415744259305185538141777881270517233926317392452785946690895618533323585737575098023005705867841957665335992468237386084632164830911997055850251272080946120419279080098251402673924918372153527165637416018261052917412139373164937223223887563300741925523378312318442340940286492021449639570609789738081080871989894113271879570357773724034342499531413720542318830370012741333950687157339249063105312809381044566461459304983727058860837747560046571826232636896929655058868629617090123843654103169040750661465563302996991053727021115756837143351523583671683804548411813914457911488121066058212986985336941268566784212112189183035636044344826727890312720004978445700581673768393407823206432343838324699914795279786891831500344840707101071995659273299701521184454508603287744332779657484992872176730338954721741779197669819881721111848803639236663540130316898578132764313048082399559286886499955414468049589290007645363132130087407031762276691904349699133870892912158264082915528184598433013374679943441465857030736424824870875553506357974730294101656411599450321813413960595740615335294430148073350406866255219176787666287734377140997426992719489933738016316663869266738364328551326724654645016595606110904611473021205298054870383201495530544772624527946070075440214385969633526749702526199895229718589910617479335360304580843237651466406983841259666162043398223398314867958530262046540269127424946218164486805411872551851289147044487250295815383610643765537721502922673495576686002354386178131212424919943955398639715652442840452647822233402002172575336121601822860226869076197331661625339184559675710566349339519818559983659831097754429704488283191315132601807496713933383262138668743936530374645017599997201242774591311986676924976923038301396096467565715949145488068310028753007675308647031622194417062831292203055283741477659903295600612173775977734251374243720607244554067949177589720841318653442634170883155254244661751867827049578344849935778445789540834565851938157283258595313574086143375933648643416440920921254678252867175113436885592690402896374565654478888840351865238104517881924802334642480692918400925330617793080799761104712495166574155166196931928287502253054707357341262078270324920272241214000159534690871497706495185754747937943703967293672363527706030291610612138432937359015380502518694502216338413332627220212921272368757574211196663922921927599007234582244283476478494267574836034923263764949319143245428544322447210982093800966026383450617215974769769547956862158252331614367790082258933174398044545891133771789092643306745555216042101923122525361199764374300877617914121572310156232472118874793007107231713206380763526420295362377005160782515489921001002440124283661374287732098810128363150301032384838606348557338807510712983102328056011642862385314687692073301214439893329709600549155961213332414921047422870567136978415529177869839393939203441150735220547236155385554141854589463231841183437922456152924144606677662700161884358481969477516116304350654670958953254340853420177986951473694793999832251899854566397452065911135915239965480759709271416546068973979191960281527125591039152684408551819789859333594473109187616838286489005483152266196373860970993627535296658405271876705022682581079349994188362292521717908831603656579512602309726461608405794281067990564163750422138605525607174131534510930397774534847397900730821763743710196071459193018196870513798155711409718526265331776111261492869865267377009747332016910849589530565326679789897381812056726507479851651633061389449850653502300570507868607562076286970139972938559661860004002825912689771129992653051212104212159989276986926706715528518279735424316054125125499517247727868030299166274669984531694293131642619833969883064683534481209489689040371617386050935131242586829923852953410870635418305790055595545749749227932976586761543715513914340963636540695769762944780130749286441509307132640341472305845356706582540030766680525266414592843444804519316570244319171517814808939129194029751253918003394233880662701903956844948621684649636108377021295680496612515338069862067123209132611600457044604713758665264739878714827311542227166448304384437891426830165984370120167726088353339805502902789317260221700528766822958938691619919355496548555866290603507725274837778879106030184790948002695434553871937968024975977324013016836952409890151027067417160223194741667248440252093979450972531410654309817555809899874079196175351992406775417073591669282121237412457859734359693120214698942398072492183965460859546417725250555454106317812891609183929615871555755759995979407384960292269665096374567802407444202477222122634899033315592784187086194921823568890453989156845435841992031154927709150730866179852512685809099371405849728363308048252679204906781357697607490924056958267188517538095356653862107071987265171649195247704105113435622206891424814559937872656925179033497753857743254704612133975651529969072447201607136548734629437015635295911082352390691632801211935806072064357089111080456342807471606844418419955903597044556556365115944324892406969361886417612479997249695948901321125694197370406505144221072456121188551060801642698983876124178018664677041563419351126409497227114756189075052084315702048998141183362259110221857364779476984605550661044724705188892323078324735535530436869879176383258802412821262477244829681576853221023890781673204834366019617664664169636677231363786839312877681176435851194441692026276378945484357896868162687250144931089721645508350074774492237290639033975468572643969238742920359946271913700422886282242603712100925518310308160503030765458017387754913658043316857955326614317796718282049431735894366050660666388656904812832559713497463181054064505450445921846500081360816708772206103894806189282729228874791312448667967299702798063722235515630586563494584912553103379612234814173253013901525417027350477336027724076928526183161231749697687525234828570811035303602306757392949344978312669037867366152053112157005171309827986227381489855846476363564156218066804807394772260532057332908383571774329154423046040309419490409867817939634755189271480633725413046186816309996512161123667074258996055038161571499999035509574129729293502180656646704742873694811429924233564912176040711050960972653404181705418851436013691530910261413601557458039075985099933543822660353440159490628013199825114763295331476088840047156862962767654108133738986770618220595035954724450706913137783076698871804959803286431998513278377365632835550576948789517623610523599689693731603898877481151671755266190880404475413918620265813269972920200150895402318362756924295305664388392875803467683156183293523327107351945734492312553196643098433169176858516383487268371052330110362477726250951783848324464444395916715709286452496253341973314906658829168265957535456261290656341098520138551232635871993477379588057651012511961624211253111070783838285139482578172630498476194436697918375026343776294787949346461538200334820452754650315650616579402417176341002757703486938649919114794759638648589702253768719939876922765514032977951111497904986947883724605826504516803610925285549136683005330291919576802535637837794256632736033769417451608865206135469638461295798250776789285968457787945929181206150073147695367486211427744506669486356220905645462717904419218694506375243798096154147692826958988107149226512404252935920418615826491068970451680764853752721193985387723152670311887906388064611768721467509261231997775597476671974529316794102366220719094125724988320193291862058484543210019863375552644801749944855855571050008405200887873222302747889605066661407302165906841077320843879275899496722079682272440545830931392810806862642088368800866568240869031267791685731586975417448696203289451592485329828496178031522573550597376227167522028028781114112999546383616707240948817219678392659148402109486254076173306954221637162724988941423424074342653751578560658962946658143801980500843439609563370943025205537653631640495814014249427566327437471078233827089533883416590695346191626384830744718766441615146915904455577848075265339971290558016290678989770401065054303011682618326264509167878990702366479323302824679458412195407182334796234312693143863421707953509467837099187914300669131560393016357402324132791727652644787435665358395438756469172269281267495331781484333238559766841868082055611741928271805658886771868767625285550126780239690174561578978475895171638622902609432992202581884732201468421000329783433522118503536430494529712948555510434474099188883668303654671728937720529776642583884258042565276075059239791338759522780821838053404546498228523949868339067855201620035949601118866353819536623814161821456640042526169497861266645930825568843813732016974581434631089507592391626929051665911790122704839576864879756827203179142618381194797242378488652388677191903212937618652708949120777228520203414093977065742286600825123429636959382710550459758628430423933300869250529511915457938363582143913601672949346481755469890631400595880978823859048544728607715166900476357290781133744150713507371575748473964000705524562593346319228235008368385634779693888810744549207116788005096468377105713951900077391855552930529235761311701794384092926250190969350607694976312583201579618316313304566447537115462879180786837211417468910823640229189574214373151594554042001331095540498041563655718967624134608882252731684818825263137809653535348295507191581985045460628978899333819630763840507911210024455881663262950312726243970693315531392186381110610666924860474608920636670573386034412617484680152487225802501768950646846273102076375614402234506034601266905422290273119454363266582125140745270150854386398030877623265261746858150905007334140190482233910859119815432586834383118184833172297715347105954632329285683052379698526605658521037916964527283985413374673678560442950243947182510763331356754970097618167810611851718333202145915265788546180547357676837501638938940019073831343833282213196824597474960418035360970959073882035795668144542403184820085498889192276690688847495636490789797748736763796102707424144997775340307814978008521614659619316814034194788014807464124430950301262758372784541181635364133029505653607038441236044634064208222357464898838168010061814203598029087265591373309612694716465644958934567782721161136298528411719182423083381316216991805526398223402872458432819098470056288275358843824958359760161394628787004143499629783190613655782036723212923207396308880757477910059123752596497075738553709481959075972748579197633883708496472810256965740074397417783163150305375211403546493397714681163144482992626296608494491398327250414710019027106831376678936618789019751231916589512072758509611313886036043384505342437890566462347851198720767903728999361162281112911124461757121335273581242046558685456216515110524063731165089181239217233198464577230372814804521227746368690049682016151404882938500427643402617185970494965334623616503199879292098454056374530847379634338667869267361808374503581088030076320298404002342565716189716972321537729360451254593541781058093212668592608810483861887047015348249797289514655067845686306089484031502387389456649867312392724155960065622303987869439281405975655666328141939683602215434323189845937130059635821563990234693680434470544324809936798342460527778341228475401211482180992955902094161798474367308541689255853011131628651965956380689700123489657830735143276737707992675268435837639321338627332107117423104578942357311280727673166974593235171909842835022852522471919472765306672289935429051559218061204637144692014954170918195653488436835681758713607019832801051286824258174858811846002436355574369008880129887886190222505555555706024199040451544379699470925097440818361024198961326578516037570074169688566686317440583709691230223309142581458132769233067099815862716287750585606451932683597853847499971884394246173043886498025253185538425178996514722996627662424291679709646083131153969357469690071096311999863491525266170819869144482783099069255178068238096801629691318195703078240125835319712770579799049896306697746050135655342426829625184987082011784685876263035991320345406332104502625362642060071302520283533137968402219932325052850938934390866086075350022919140270479315624798994586156226740161695489167146460500876718308123195961285158070111644036530534834008570636400529478978065809088719292502440601600375141368722005403440419720493871577886302848775203408800781005968062553045654828956106687494760695074376028124094971375902686279433086082491380910632928060827487542784345071383343447078995772787722054449348807799701085379683300472779602706872582027769675102012678601032382867800149000620284257113648884049174948580425283691155845224566914682731889675302841308068637184907411688994651442404374388162148906745220337673407891684553075632220584147140138843371311620332466148883365926374749905629186792147159981168543297280952685691267479354251874777994639966330228289835106903371686112012024062564715302574195487844173400035871787695058126624916871662916243850007440200541765497033883296211159067815895064054975598255593166445086606420449420582315226697219230784319244879327702192512662404315888625493969898210286602154980548107046135804842005201746526377661898920091223657457393994788048568320519738462386012122554183076228616862949816857387319655059759560686740751588632043206723354889121282703809273250845761258317117512983933187387687504590105353034689198295130221355448636699409153398271803911884222523598203806870287263511000134162055790584469429027751513145047947290172872515324917764463600358833770008925300787939035574816484237807498817141840122309048722965418387971740849298695551933013516735226599609118856067797999047037779209241835114431630529170263807121284897162319485257549701533034613311845191609804950622435441162857573965071473890665970844239313575777518416126724678194564329833493135839326370017152841064654544827481001942525884547207047585494651278390319640162387078142073103917561835741068575234411364130073213128172651667144994599395753185860404878125089009586759769738088087341662770225135266721014138419594772598483366009928923794735225680113869333105278775876999953248584448829422536094964804047085124839663297884479283486972376104813676098682024442798792876077236160006862184600582823669559772761769655252106023960272508963558048824915953089616204596710572988860516891297919539823953777902021214034205847609741248821838528272495174617093784332132544899643536797315389013712925375521201489678329918800219224090447059319771821316015674159679306431614379422403125784073210014572820729317053415643348975460858662036899784926691574340567823725233272330323111753535724996750794282330539628976817081605249233795018551377524169288420703381181406727998592758129959605601397159270198487815737883605264319043410961407740548741328269500715863606449930614357684937064610334074076024321843660964198581829720847608566748353245983137073815049127540935984713573505749010263153039849766364989943164353986781057862086084246620777613898407475564659661923475594844470287212528402730504643288245647283775456851116133209539981134872382232506509494701761082489569734945580731195969082248622649327430398034567192435185807189362981379009954274299888546952990496537757328752013102783126747926337806271874076352359822355816350483636087975163436317127035786798824603354029666962093438264454252418909888102170036860872194179486536713878443584524497029853283131294158241761656274490643331925203706232865432552819775666732382342028879404001241301102983621298068749935283476420753087864364195819126903358510192148473189735390813007338977750841850942229783164128075286173960670881055038130002292753179683188173567041141462249462428827940682943414451337853511335610649579259756257439296199266061622315257860285480380583160943647115933043964523208181165524167409706130070417249587590032317722664102603171277383084356029393991108700322570726324107312557561347409475731383827111828879069197834322529260885745572054955293636064622878847446413003671360302759246008279531747440669227492067148749927220596737136709752866601503324579681618963559126163555729744769527769677163435784282209928308044606918484315596346647547236798132772344289818393284689868853673781609656579894198851622028316822411554912857643159236846540119701092702532056454918728191142842355101659811895747983748527199372744848591910608578231878548095937842047701947946658501125916097298915526588060565716698962231542597326142597467514809620630551431332498577838407903631655705877965160192944549520750709925189144120493233957486799389179885725920303617228953041585755090113775447258477922068132887833647950670798428663088839921327696434316184763659120963749162919112389384652140205149283186864065571733311675423910678168346094398749437584605815414066117565946254690163206172327778727088264411818696139903857495849442876826444643792026053145010782279147674607254463312266682562941765167601500357661209299741866263217960627337940281444860717125222759774431864709740055609236026700366680665294875294348106191296790787958249311928821263926329065032292949488355774183116129032339934339601378292633959103306447605954220344615201540003747642540348418538010579348199225375069611156279394816735737345097048075207808058708119361459319655723603332378248675021498054708653540645821449445463420434914254924223191560775448140238382373370622192633175033236118872520616575103097193587043309149340777895352829864217313928389559260829304957171304938215533177193034435671851227070350979947921230508761270568560685497041881904777722501931129986182574305966153868623491326058383319273066628717762193918316418034254231231496439170092457311718033347948712198679862685883012356953324174448899189126051597860154517050245952448533507179743024281139778559771383102514831376465304914712009587758268825208519215229870815414302860510415735917047675513150948038559283855407576632934149669923138874959034030730905233200145706059337542575773468081619594504369741511420684241213234904402184775065678350328859960787164004030866047728872296882233883638534919293695108126519004511327576522445784891900222552237220315879950033123677089156141701139813423894790527940596865756288030610016094461635396870561386956070836638323110317059724847001927034663207762167327129721712308119190004694280946006068808171152006448046061599580442546316439108394592196062229467150663908044219599056743942227736987597002387951240674787434765583081387601707417622213141238904948151108910805602630801270274494884527616931974261552035530419981502264193663284290594634704377426527833638624541898166865542679292060481442705845597143521172294258902583834185111759470609695441777692935502352774864466808654304666261254912821178859075704101045012837260269549013924322976986730680043131415468813254533604006939694459435040516365880670568603138610655067774126894811577672973305109337308155222953547326664724379885818820946689742401482093481480806713257562463413826283215725112868812681901013377107290708105140694376703905116902806137760683249029424392723074468474186224358835841611683014105644643536814300168929464080211303657316998918732608952208256926010977978215098749684862634587940671350386281543148836182872336604147516067984160394632792720051900770184794904196808017908603021758105138910426290377000274017754789516831498597698490815856869264116956305715348988757568493561785541057556985053074171075438623386611716014206131886901958861420281610347355841134043870671849780726133782979968266470021052044184758508994696038554994119460399964251288882073988312874952634795546180271752560111481080615260102144829783931194942644215360976039349016940312068780829312732608384122195224938985235107490900775001461453287858400608070077300349872697157116048992978986300140279949494659967001549150303155706236941208881040708156375610405586058968994935835809235859622730228760021775132109669506785492130744068838869936261896953034995490225961194294556031772928049868244538004204002245596959929838130059092540803016293268839710030519482508590703807235642785417820788038434000442785370575670280092071196567163870215453002633201728287792634413582186490104042872413140643521114341324545533389687818102627302879367399137980544296161613729936903570784288820870273586450386625149605082763556359438378115795988831301658683307774645405640703249841288161502131151473085109919573441213509441812749342669288703947649426031502363253294662438774413611668869020792794362786055186510021987614348596588301412131172515159612173908093100639076703522679900904119350633106125695995769566162873939389671468218824963737885515391234736567041100422090850656125859574680252746009587140930395651054648907981430261709266699892218517205938444361138412779279042418018256987552979995055840146626326801390009955821953721452273753467314203155935763912941937650218193264692181968622015674077798486914448641081059963898553967279192999896076944071035987933241195239770978712059287683054665953230290265270639895548381417387828677453203672926875464568663992690923940796915197165317892416560906411975297894569731216919314997667033104210102691159421742833121805550216549954401598223542426272083840905603671163441210666414540643752376731006997988894919157166182934167222732698306573826750931422181318867523279243792500869676181167315525835728903049658380177903802723904310360048435136808924729262953039594594104501309117647900673759401857390517936732390761807848246723228613384480746681944677064270346134805415784668914541796423804327024796871627085147384051158442409889131426051040644871130471198693252953471098482117009072674392626032930645024201994973864342151047066190220236390352573653035585097511974887089333731212171214270997656678179831305416460950991335799449699851527660152823914494423054684627817869798845986600042483321603447150706098353998232978532189974328468511786964346173111564162586873578819589990439793331861802747983174176679353732087139756188899257739175955858817575769090613912212453873537482265913604519919311139258112918958389683161455686302716908288060798142766040646220008405608721847565075825245141431502437316400230570369294138507690992322420168851931726348312043038097619854795193430992259976665252617609720656045343885379804360851361432254039011069791928695116331665291233615037057849397256761937285865300739939295179473070554383386389149821688908140283442810019663723053875265030661007554457054540560168700637151043405747734348047973972948823362836852807586705914753120796301334691306943305980197384728942910282160302606053510166393396651130116398667665251719937175804193771789879627647453407127295223637265413791764992868319951804919471867237053776930261409566533063613810599840110850491644985604422715852556109793762429810810167096311075656774882605696799440699567289819461718283864026666703743977507615959775319731151274134266664697195272661493253175393150948099125278123838305505870818916079684561987152761146419303318874267836184120461569098416362344615540661847414970459305111588066374799193495359530881237756778365660158354605458722331422785338435393824656874654261631348888102557509928766326767151521647983589099960624166874366025931256058121842710930711783773674693163064003051441771617981246793818889212536514093693679466113082284484991716791944354695957704420976753259342638005888836730076556703141229562199127986644377636446340278394937921612591974550138651654137534216459312166043575536123619548077923518614477417452058224751239039249299600196909111555348474342180651922521664303174720720739405688319350683421800577962113502249262933349752272539490028667321604710288861930418093732981068900871343137074501198223297266913334668498371133181043679193174600332774132870834094594689525491383417016975643323613061812437212464374648382988425572589375835735283743924083806555702094110154287479853907786778264634773775747059540362464180941185380111958328602520615166645449129662079587344954152226184831906011727924319273533999380306391095871543181463661822539481266648287315764056706103959019687990916206583989129189016738247545119600585443671480674196551746440616415291114442102223406461144766924753495267282904108449082654566945311064856715616536801332073598750571942616679414575218133420931153973057948248727630599757956751965075750815105902614661526561359642308769215677656419721075570355055678052864179705441650061001029407522598890345286585072159737270315763728721293502565807618758021101440528612226409892983389682132880337111069430776849414467590550895451074256498311076935113576655744287127823018509003628923715868542489500499975822521159930497021616976535571190124479317238561070329308888861515577926192640196533059311330448210806162583556780302491984203208995008388395491336341923016090274830410158054936337660092309320430398373777230673508713115949253940460247726330138863021368766852336936805142084640295500265140920688705787269867185331198896006808059903456408999380828152916513493186109944482407459740035474760082944241893465972593151723960269980285542087288663214506495306304900314650195037346415506171364218183781759646361565648820209159055498307581901409508794272502100384409482393289258293325782215885971663390001677762723487239511276635956758989491816600117434420031835334291731913973067403507970258410375188156210791490105277468827881992654211679154626697921796354196524465447224952084327237073442807971018783728762661512543515616889504466087110942164929926694599968471398479257848552401548831366656525597026450293373442520643514203465283809035148061397432178775227498952526047983787357780517946344972612535554604590758725513472378741759558879651857031406728176725364495191782825336211365090291875729624289728750503664438231531475748895822932894904526665758612581351592082837768214957489092716799223402702339571258834107925503922774461266967062490028415994216695677326442982686933354371948995633162757971749996051679270987300784685419387464996441250116473635750129905402505068615003001014565154280368754092808845218078094356228803687471816392966859677974849009963421635030688872373016447797493227970671213922846221775856995508551950381237403890970314721654003839588210218448345726826048087709283134646209931228336945348283226596328067891828033506643958490905118689590198894734381369702810593381084786419146443000274062829540354014322621657450283052085796927730734421224573485672935835751977781350020122815151086178047816750888851092026304996324822259174755139775914894295760933005636921026700715983594969500202681958132563737639228084075293714057695051310981777771681205686420181811929687034050078369806542919766597894868303529747178076645160092475504535104678185084601661534754750209126883165208916896069071383489847109629740622923949482119303010660247182120547773848033300329332648573210125779066432406505665516107674993039619134068226479332983924344056669128319912871220620748325917719645141920257254587635898346861610791769004696037130935620180441773185900773887363861302093999146192005630414035625194016645629675176450584101508498522843991351745665698803283557854164835533506218864298406361034004383936345238529077291856713232424438181983168251403053949078886578136793600381797562157973875214866143090308891607649008247481460843812157673399097622544088055435121982079647366070241031576681026425781663929199412357237437656103170140721556599333081807376937644285551037065013618556598866680757103181736280331260939634636593858002302187771037643910946387168170000070376483104105614693895380369498088066313739581500502948009966295920475313250511018802025068512966565713204277344160649109929236115817601608229330138877192525801251020432963532663094656036214598000449174368719903298950260815488894104026785720615809717245822965682570802003719449564601805872831255900853182738080915654810817087689777268532078372315085119888979202425794645303570512805808684334805849456422911226205035175754710533428778251822750977989922189247237908095362653040560892815406283235824401249558138890028183960098422428118956222992994698406254151865691429736814565368027917149554363228691665200976013642621602934427609618061723370236193547283852908678639236252395335244521571489459263453044589793681438884463817536935256981624606849603165032028628230960008983253045513875269997835669868443813523537345948125711750530735227915681625742823078399911996640410760364309574606372539512404684362395027979085530742903076746407643182673218456470529585896847641218513463685774481184114284919725996840026013224672719369022555703333811309146440992969167691803784094240883604496609835238887186603922196676666755830891762401232683288588272615981457374680573436122141152884355167717008866240845683429624135987755312687157278352148781901356508518106602128578385298566265549846056686301242892007389764526701756192119639695845549456056005010523983613824318682782354443478640062219770291018608618226916261802929271598335744526560059686975094226171424035689893215038229282462681501803892513912848783316863483654963369505615256872587305817647191774047193576943328339228378632305059315035965037785579751352877762071010036303554808648782386915888062141930102872928619286814596267906811969087698092995816022046100662585207831394547452610673066417681070089397312368032170365378876824637288960830696173295676134450698099495213028785592370197384594436012190089613417613319762662120350319355242695784455239641959433497280886615426445880202399466826478304467343080475419678693758792618685334965863509959469833672926210728728491849102463328857782402680262181461032799645486282179244895958415248614675954950538247717092322922013131846545005531264264819695643855853088089248076871372046375542462969003385459034709402646790376835882153112976840283066849736499825371287235983174926129749796897532138416739795436211146782107794435135428365067640047303146500149756364624517654707303766078931560665662739613094587505029246304005855904321285161395714769850577624099674385347113668018526711292609908793218830551550475936550370253094702645510567740253116507626653322783608628596037999847123832169210595006621077528887684330105888171142901588809945803127851276545968475860834772568928306129018883661941045280731354702998104124453323365369989895598144506833800330916001053492714560246922175764473717482232583271820017343215158255547965904624546324678636627020699289755267548161751333612127403199642750194790961507217803825990601836544677333246155407974123728168521902957494051918677509274868482112161305165640947767517483077666309388376865468526105386082723306572647647527097750759649253250346962696969463339330378965703833652638911177839303148938020371463794598142681201424068002229618411186713212759693234668414071434165164595191382750276219904282637092337374008702850639769088394011043301607272191663204457505946258487049579924184614593736284883529896393726728209615718326033516961122773068347877085035563054286139212064834347773527097318804001355401308181772112263526774529401717976773135759833326417577667547725544666488032570868201187351631920546203354588722848022642339371493415493863530134039709649189380084073070789373034292181077063486238987845706315918902308922520225675662005327644794082804462916671632846276831666125418076853736584363474023557084404414973729545102762828169482298169748359878380634083039936303490813315926624627398907725604789641895710600114428472115568271311760015129994826739377613822259829665242261912214457938549545519012280747663320500009290467275614710240726950203240733028511362801928368137303203288157185192527546809110671639050177834728170135974369936976737579084748573396609609300160644428456982027762442683737259209705448521936618136866126313476509002860602791861291199509672585575340203287540391774492421504130011441138097853317821999565656226595756467316534481878307152265247338551468901713110544717092942915043889793214140902704730156236212647530216822074445196515908029487735398273679200712396022644312359670618317528198684088908177925849441242486252537845643975222768574983655436471217092243151204096081274160902122458845500064674322641816621307642242575426824888898620614073595573535941465514153134076374821160028341281985847802440653748293658106469784589385391958421608365956323865526683595972758964138143063185116973994465486243182502430136830936226083274474839410671738532539016451827482967797121594404725000501919030239785705238846706961378205544075312947210799357659472225083993512980768037060679759083052522094218805082862687030095585519462208438557525425864099821419594211875078764562488183505931885386586700463989295173994085689038541402212840387982257666149654886603972355019821387761534846472915193393448793991791399951299594513687369524068718033201837106708811624507407506501524551663740045716990364180063570699672974970978036859573146105357253722166098411455468831741101440417193399314667003780936120827526036878085423436261210354538470023120774429933602435291441267330978767679736568901680197659017176426872653617202628448586916704300199553120501403174324212795360617445800564979842370069140460256110729868398453904163258403883059558062311358778435415582349082844699645583834274317888377353923612276966404930315114275659646216491151172013845537641122157194730693253334571990497386648832103910613974643979181494641745978744277522071565840581151990276705131784929676161039199483302918843297090515709397557517621287356323164008150666399976874940540229396740524942820753669044491614021587888314333450281293883149024453769289868814411453635823233909612927983433346195649348864977378247981106196961875867568548055046061847568900940001477443691492669578343705686130699167357746738404394268210884445685914772586047549354586862722279520833713376841154593179753370387373843441242049861865542508979884708879567101493842530914740763282947241804376455349208720882151317020711128336168311921710419974631914880444411552723051942711678190317526772091936501270698734307529593243118838975848007362933698516216084685984895815292229557817939536778533361682926151675919473450102787269531508269270359171190874644917449805628031134075798803803300958051911910096540627090658890506282474708686368158553287267862852420942063121803320157627028592975703471364629483521316932884237730953750786295157194196533626188368587923097432845775646387232585749965940956230082657467062848980045578014798474864606784475978583574098494055084684973719047378986681183547596388408111231846703934692996159274968289675723664745235122043676438574302791786688255865367240298058016600771286465236123401754166519472809226756100084858972308710454331632390656844381774516824096041402072468234698938361326111016851764889311981872855101275261212314121396238649115935453798886753697544372676382323817865465134566527316167274291309886158503440180000237216948464124910613672770335055817004417704308858632310039397130391619197134092817045425711328735734716702794262801557907174090327401481708625097138711221490166344099013356348317804161825108624690579606989311957600465354598406845282535086477939904078473151426704109925182876985335567581368482540201357150978878228053100783998032866065764548096635270084168818617190943207718919991469197534888221678875818579125006875093990726617816226789909449828457245961697891436754786757560191697242278680859842104122625930963896033160237334325071828955883898402740812863903975775093316129433192435330928568674922459023520299277307791007053722070008468770286127617703165947742993141190904589058000514079304471756871010133500717339305521044777580346708084820464980049244892005364544931837916200859202718766375191016621021304000459589157092708948671889617592595212965703596682646960838807015212733339031827323679470750930906461309746109375615511453117834725971444857010889071652967487450950193741083194963469424401070041658824483005958741214104416165556259585888582035511066965650174595305294349671520896953078471031632265083446745184484213515626319603170824495631113127318696359048328947188482602543545787365254526051691414198255195469181157361671380281123572973657063812958681860988074426451346363410446371244269988909948794671919034906478269589477499754469961194832921374166976397806649572614151768358006258186843138298652843495299005637477741431580628995584747195748621096780149251464469789297687572624772779023651049622628024139786494974402775911254944019531080305786037789687509237692400858317710714731787164929381264987909881635236600075304414647800145512852731775355413661755892709595131041018703785730297649812807137007727064732865289757659751908986064272022845755072641944666163932948832887958192642122854386649709225116101733963804332980526419350719525992673062449672775455211889824419917054761131139080593900468777997070725086208062581512612916355458479788046602690771042278285099862793375965570879896874366759817328229320726898021252501651810446350383342115059145169924974640845885179952907288044909085928987683755883806362800089816315202368761000945752901147782638828822833363297458171006888166233366857505702435890027623719700289344525424594363490570242525874122096683442574089774302372958891897542031358394588836743387030524492210945872104145998165514634628085583001613333534499955702457430418720736516842024364486365494921721249700700314836337368220154214571664517354390668532685649912919260279903395795143128742352918378394087106297456181739077596133666378760683880051712458671848316668899452105378633667168423956511338677278074576038370530115755551213526619028092572318886444785562628833523352613806135185881922269161774743742306292307247550571413291410595585796115659073511852942429325623436889166695828787585678484836807204437279955699539313538474278754258447246660506401899451997802663249737218311947389477566115346104946091845845328579888308953802739986783911440853975211055000057227990252615923391328846227354591548992050404548096667768525277435702657091881029666661009856855195443887688659093672022557911518768313534206540534719672745949680553397604764090485678164347003569789684027269764380390157437359207466730584233033956912996064021777262549835748009149587336885803969545002845634000715184308767553838728252028717909217107250026857119098052568772051010620933299973903102898570679633595132741267403177647700803241750055977510814994075824421390348437434669170056836539364463335961469274721570463631838687811653874872484394869096380654685721050510233949235486694971933554889576984708453428686156532994127815433160220456451439569803703393027688723628616353446400548789010480056570728260597275102236788460288459871160068608388355244323771634620905118580883076617742111496329259413544356116525009366148946832947543649908045212002659073550128729828120258494108925237824058635261139892241656909855994237232405829060807660021228860386768572543355182677579779109272967605519156325432398253859108647067163173870314147657239799967053803790867886772432336931879158161813300089976446030964762190213830309509755635654101077925518693895055153482187779701089722093269310015140630681503250729380432217667803358839505578213097623754585366434938125452816523715855843724961192838907547709850399625804252101787002747554385446386527367777333057004110839856961456432226416663088032776299385221815181676984414084422289147312510904117750117184232930692233446392247599581781028659414185750566647758676910826455393625597614217680418998979077415632457306186216522509947139335123173325408796317785635333161884291548198130071461539542969969573612037198399948126400562735515797694677810797142808371969612611117830504095109920778540966066466055978584942489340046488848344653811624939567856051644660646249488299150058115335639949607709386844329362288250472012005860990778511972254352869634136568788180094791408810613718207941210219586055366953277869458995652429575534198205558287417951378159255580933130910186703610975594713277991274874238281044817490248341842432840890962706360370707689395258126212767538054343014352375085102369854610439155835270722259398495719414110491728119374133563065767764098700812893135291073446689642171782697171838657423341413196968799681489487835813110974494409886160569256958908907345841519321266967867437582569591981933823745816639322681178108154354972904787267228392958841356414700664887381041016066843803584634339705860549911811292849296621732240957629372986806172409199204224542175515361480032722953769547166529764513104076960601721948896489745881183627851723009166897658730814256509771687336287617063982909454260245688155984113907057084002107014981992516507202315618143208046362804546350209234206891997349564483467354257628868536059008592232696992181122670422338120566609408971085723823525776362012305430959323953123931348717621581943523019711062087181434839456998287304056618915616768237413734643483798475263621018537621706226784302519687925834862633189258549419190024580811163594090784654507740077838436297617246937694053345316141384697243739006301301857141619030750456548963140599800302839918215078817849908506176636461117732760853964880484365187634185012414819272553269454538617220027006909945295926838476401814084509947072846563347961684370854906066004808782842266363426799229565056237440952874928094538558642458306406560551716686455400814254732756746236020630707679932174582245818351964212532593910374208784193464034971055168983324478041493282176935720917616421403607505604865132239840598462050536034330007534479659711259857357121373657384845113234565798971706572924459439322604570480775056747022220372291584976207468994115421166795973349718970940443560263454847425954143846080484099904914995170472303910499818878558432700967793188761153859595460936397258912926961481555615995147424145194395093836827719817440304677028989131581351291670762971496506498400624723016355927853601545031657020017872507972820702552914753274459519104808597575348735632554829721826218378015028259216189635722338837659217651758706255672434489390878410164146124868866801129042538573627055630580499899913957618120514843688229111804972083943043320266218635668103571168337990184978384009553751771900825510943055661871087513125759646081493735432310570698641095267272119226480344612651688064081946017362184821978565000440483499584516023260270117627084781825475992984382387452380843980191729509579011162784118065231681915622864681403893288763448038634588884896889888870306031086063818110838570688251485507929836945560383054864682705585789254890747774236522061787539205582089554543534050590059710330115892230114963610324289071190623707170976564035910420373098718305341120463735212210365328269593600547121146303142005981392990054496554281907298634034200523528531130441237395857307825499542623333789395385569209395781157532755656534103209372393270559618473330829845850521299219512556428084275693412978215390117878459700951252756091023086988924413918772832519507107052718645377050497299918220848524462086483463177802751027712643675859172422942784093708441823607776161358267405783908324216343457878081359383926336677687703890055668433082848082074519796769816946446868433575808491381743539210504973385826756427552896054900896349962059518562036663983302507390870162782218082221893438766442519059336079885476339307364982570296239263951510926077528160416102830821856745472668568248585108397080331637029554635726638961803892401564255394037467651591961972503448871354516432002423939201286348770428518904735079812936577699821480161002317903999702662365720709776132530215245749992458499021100564443056623168520610248743954748556094134206194163429255714958451500680642616482505355852606184223877017426043809386150168865786038382703489845314055568717470684962035204938093744847085376978226552082928237824556858467187088971144658827182292042336533985697125795773284374930840278799815123844794828910304298634602219549186605115091966608278071472778220507855623921304208742195030135150488116260348366747589047257435701738094775775106856709798157237961581899613676760404543039398533461254656710201091224803376435929290163786553392125020422568411824010013813364894231054814021194166658426372496514437996550432140437884444211085647654047444901652512065160316150322610114565355620330266804939397871671713774638407026192052874048868367937645570293977458220444494776848889158552036562494458845836801884183113026900806757009832343113615224657738694013252481774215954027780601887743837241777609054053158686397441150410757246928080433068370120689123507084131385711282101536179947567461256276486014328884988949768999455042911197597125914030697573504397289285247698337897800620524749119273742243133399493651629058633190193115746731829289897539607990892366687801864965825999139436203542637392962690453704248726963297322199317120364660656389695697693751719034289466595173069411273634251837634646561152701632506908469796059794932450826620052395100297806751930154723143233956828127567896251936801437023485113467004669767245836631988437206363357662524070545410343350289951747978086053961927942902410660093222495355643092323539086438832116066296625131116453989330599226690908771080737445856475087407505793026868439989819701350780688776003217258621040724264435534424996067030340467441102650801340549442925425989573491891119889736651701647664612856381324372033465248143306423978058532072708322518143277194480432311696660189541094554227545513102856271974685107396959833360882294051342792147448029490115465295340222843503946601537714542116920485232719763017972868829372589393023695820240706418282660609999140405443112224567089148878659668279496701894080146985488054516693329470538152417900518702286307097726660292648379724467824514263456980003675985717285729829537369587571730969634880735308402811626382440189666247156583899911819134673821937280129196688954401958711740464072925323727717721737732094142731543341058536000883340103708562821541634986946742924931175607829353510613400767927314042654800606383414262641636025907412704670395701477384044134868499036834182780091852792844675920389570956134252602233242024200438003711160955335055751397622675587280087214926229672051586674795423161514186092491711572808163814762134144303669520868349713541721039893140829014685376586047587855470571584097873970751508154142294655824158455085408828375376557337785130908205420843707346414080467486674242165480405520912226103892472314609198713002586807554190453140839133148850283544779902676967897418636341980685693785778763519370066273923108774965567486443561479673053859085103269574120373902705369000726931432602956206548336583626946335586797780042460026105509104612123729517955279325654044952996096329548532582086446087701990759036656839979561379900433180010384883981637477183711200051995979100110692853462852189758033882616933785255247294733152730857204353781290753480741000127767625244072206871782885154759526967048490717779991279862590076254329487333920171891450048567057464812162839932027225167112970788670961225340867275267509758108995760755101187874881909624256886911749463293672705710273130612664151821155899327086776982840737981999041709247541205094783422251460679231870727189025286954162832348897077183267515310155607271063519280814115947388892243932784002906177184554601977582089000978670738330991382127731114609306710136633273968806285925248126466554052659492273249586474875609334156152673291208818601562588770202487661960609307067291292152997146850427570177511710155632650556389535132162746494957754281565019656147400566457188901353256824588851921829484028518811356460068068740783136889704857975924184895261708637944122369166781344972842861726682499395976972465184516451238923408974399108194496502193180907316487699396130765336641374973052684525448325379019047747711891068802075776894662544100907018663723039451755255904039257145174147402198383801173755069499461304195533658048445407304838950540998187519826368295234736761752536269040588301673278198847306407680674578949183926169035331555485964844011097083585601483570862874979084636924330401795490760800938206729955178995285469884133340666854851893887512281796025097884264760355660570507028875709973445826935076197086203743484773018599737406893910619008880604974408256279002042326609940041332802433031099495986753627670358715810700160060083067330605563024553249349987710450316740451664418952290623819504488007101404629909563247247711257550615371176172339445984243882209346632315165239064980646141903301682547780857235357721543950176480092261757128142824444179852585323858704109925832359603653364582409389009750765157352416420246137504929808348774214133901100543466096550120454435728025498632155206191997232309047023309954566365141675454621555798746868351732212261724454666812220445301797960509361133782396178104547155002391061488859011255753226125279438439659678486168653845992780645964928216335477332304110388398748122316483006240790472561416411163902254631357372668039867824356095243823940186402917670684340686993811423398039541280100255220070114972048472165303425827532591926390338875809937136547588974038120595507912487973515003276008845183551337958520710793172083650007658737235841627521932144784525616348489722182789659803726830637804465265008828709217292669365931838838329208788750574658608949264772410206314531026157693712438108209899740422241191747377709291005799913718705756756938592473288702389810904779241584984931749450743888426647171874794767136067137678080359852340545793201178040037815843429311896721840278764548679677910636332668134188571125236971575739735921877394558678172621253163888612431998606164376123479467999557346922939984738995800064536899413404317026456606311168769214975955597857078331994896401146048485116558994268068948262184204111142022851444662175962589663449017271691122141947944989599633800962626553988236466207579356707442672673346419035842606063489506199280957724907192170510719534695982872827553177400784603393991218296809480589892681653807447886439202531004986426151337430556020594647555289420332313564214377463110312246783445956503973713531648117991221530591125389709942619010086391543364100742792794662563253376557425089929758503675647706940202781528317845130329338440992214066459737855539374920887901768737397654499611236243455434413518253162037511881798974728599034733393771142705297136964807531994571661000225434514901369147002649803788395978304825158400011633972589928128779583972593777960405349542825348506878914707337658348324328347798353908398679751257306400405597800671527246381356323948277966275141494995261592104608998401879423122449105328841376011977807327643964244526897010085865218875396953810673641497976784475891589295716194364027068751596054232906747503258400283580178758990724247331021701330464437767043317003425373964292676321739640809326290800928389099917830621709230823339350938961288847299035338967907585821532179478730463406824095028993788972951302797196973304045619647308146697758070986713482778098198072676229060272074871595398052935259438929725913498257366261059482047488211594333545606952773255561788004720973119839251489129917605436568797438644669946821417987308329686183296103721186129562261954991371581682781576699082030979624882421679251656644337258959508660446038750154928708614846730919551695294901287738464813536379967062320690934264911112129993197662245775151724342722667779587807532707709154166139438600945792353688192388372403967949169467407997105023464530021582854130424948938725212857877142009692486611500620572871743729795852198164572096120555240008429182770366260311249555259708293763035712536585767002430037529543342644812521369959019790797992298918149475997649349865497222535921958320554680696547288133286351620667551104568596668485736094736475585827153784234890618335120378763879985224967181802584122164882304173730863943085988584983253546092992381737641706439332871414278623492333263702244623665404827023415682096885673895677463892141137669601230577238717490374508766609069095882309096780483658317101099559366773833498624251474521130512925522448682631879320345313669238904773485773156638854910511779757237663616961803441779101101721853131263536286497594076545307903064423204521325849496132820713164576947638731448740716029340942029967175861899362140346888766635453193876655432223258826428918123569676351214402998549264287267548919881275400021752809498928208296711825968551647901361222034155823081449108296836164389977758463433895917449423218226047558019301639268817150200803924300000829303862110929022112485415233609014900752503372302713180124456518465262926416148226580716454875354152240888599869036618960636114638655803589365316582043528894937690742447168063995265538189016153079241184759394233055695257814056556291953579601039207178630723159575120745470780688377624423912142505756135712614906657817205166346721248513988009525802084268861344175495236222484793308128756741492640706210208248340980008982209036218238480513270700374644852730371118333686325894292762055919726994491670675532155395900355773568196660834314678431407335075735234362594227794734339309401615859265820431693888671420539074763044574593815332606462252098475489913408447324698127233501986719455053957765496132242952690286087907317738095282993694648542370392359559315097308766193335348812736371355092993524867330781923462662894934774868371797394745270204308524414064300895406091462704302316652405684473850386172653157114625876936658479906778314847971198153969670847258649093973774857549531107415431867439977808885762471880896463457386443521662854882258551624732679351073682572182544967852164405784910018309557565405070975816881599594057221273003976961605512335963847080233189211268596676238308314390115313880736012825312667714665650092844531146373797788732720467094200924471413318166376784289758969170612811513589659894037381059638757174661759703065802101975347630621244748979504788532254780662614334706604212736975407127440900560027012557360217125307497142452828285031381903693343109583661466682296362107774714730515591673511325393434088534273689411806667500242845508998905503561307335667754178582225300932487353755426598398556404113911226666962725608072978743603844880618639114226737833759889742182391739683983941826716907789930391647456331984935016629624919341997592163828788890931374032209733609071991498759345832053600194070484017516724329552180061704156149983554574463415573945576655617126640411185165640483143324697995530662710185297055261108736239116441404775242582071015859536486578445754697942274053438822452673142229287704855581815096788144144327702524029902188289217590805204752242850709211698030533597755880579824554594626563053303459373114657336738313967402617920704609221650275671275227252122130516366535536188581208927272041545836120704360655746961754191833324234855307078543170186747490959591633478514689262038013097473708681761994408535517021149333580668567132443945522928083993137162648736813480103791287615842263150271261752835980326262381519218244291668877994529109430058760206339319160956976939455981090864099660992381996855147734317956659831011213804885149279932396361839069583370595194253769827832585174264106493333103612432000227006342840289560047875061290409868203386705122955688673630306109245603271409685365223187121484844193358609463576944155256280785340141543912001044965840308566000027569885523252200896987897799897005720988355569311423991427850907497687322432869885942901660546089145932069333042659949676030478009129647994351970271782993958518017895909519667842993593173771357090304097307589142888451885350573191638722951685326031501966660390885741377986920985218405254539046652915844137729309756777437411565359898816914665678371768792929596213306461244471189311738798694957205816883980481890515049167606071636263312822107575048584306375774337532036852861341425145633473197625889132810722164749793205430220876895035343806451705893389319974076363855446622460926089640859393166574095099014678180707713773428401451783896002045955433369616821051442785451774649210168417932157418712527374364423566535700922581444172771503458646135202858548850847712797438563744393443746065544682083542108269150598685946792956563283054390485110434300263453921337285795819274447236667988936285166910390258813770330256316426133035018378107437226431772314298450031462691454996780415442176216951660707036581934659157353278830530172645517563736231977214830795846301024593143374388749829690549027859293382931303568666517504339336975200979343443258948975663841566040344051073356040095550297548134059671760637120934306602641942644276570251371735918050757748889172905235166995653102237827147620627558940732889258257861755737053886303118656181304823966591895438260080777846242636394288927146884538987287378062472664225031928815959484228246029663789606517665459678886824775141852398229727281644267828735519850859083233365315073721111295573160532300803485148868390893221783447546095203244732376269401450224682981187132901176762230669352249077321149770060337269431225375112277960364374390916368438565745742542145102633995454675342423163667502280494041180113326088629613440981151196859161644290073209068937354564074913997967422998146869888898254084876633509910636082450047295581400725956418372202625115127924594376004287399776838246026920093872346352056023808178687198577328713668586032196718501676235406769803572125017457888707216970837859688834965759014726014592436335475107308590104640522893978885790221753167546395212989011621203172905139891803957957861596175178421720724350503452766068363761271582813703850434355785488263564536761108295517285726639631398666126739678697684970612462821440430333352170376877937341311861154767114430242089658783703156688947260390036525263842921398126668916502131055530878512640491402479271434189046657061727535173099011296322891823960271966189526256791561108836579628364045529774954705534563002224218988741910535322793764286559214219600592518480099206203623258355191701103640422395053999411679161055075590991170694411593478869937633103284897188934540124871500399372715385267511706569006194745942044603763599293513301346920988383826251458003413545491151779672756426839470468735357019104075991488152755500201126124629787415561084289455954532118182878444226043269098825685949606272251261490557699718283019097737703543938607695976084539524314498446474459895169207650030649476068170372949311644017790191899586115085700739799044947688596407881747329310864066654118725658909499020058515450716547838884670079952414119426457444485999096688368892815872353173973334349308551158665256182268441833743059666555360343900409121484746523020351424021655604412258346378620614213883661420106215359246118476112944056382503765289743766353278522364457035172362820052248568152687810317527974215353827135917214470660438259380917427650674189245699453178640139509554582646800079859641947747380536825474054862550570690400676183917964841754730473888016954895774116326817675526918503252391461604654830808391343123497602731945886505217707347315287490524532710958602975474588898547514137509377593503897776191144125236378780246316593317640609381316528357102392578219639768185820407770147031591441554171471095238537296289291254948711656683249354926877256937850442191992780811262714246638532806047371474289938197220549423103890191787717557399014166349528595571418655002743106131022920017141934983842134355633984974912878071207198831996180173338594048710807710436323638327677326098245638895525558774713961037587690656248723531741557826180118476842825011473066510505956291889799991976141864557389317820926983387818500572726884680350653347885334967892071770722174988943399010969221071439213602381063415121879146549193094055668885723684584346969938200341169868128195622158821104787775404958148871973205934400937250517908483264354623215259956466973442218808519973051196409035046128977107895703072705610946649544340600656240642980768978886606965803068399421166769858292003548383645860207029390520846346321886982125703880101906362806378489091702625457900921817165533976682032098516692488973113063997237080644099240289866757058391286245538944191413860945232394340944611186062772090927994744597853991923721940989892391115875437834401520293619010371910054272235318546384595542514149694918582559641922064243166169400493336511264081197242372972238468047763584779770106852746302407534038838772928913953873128078334480035445233811397235089191208619142257611907357621358962079727776498327414620699627691049696199211934129021728853734549813205652235245102899807966454381912898015270708741400446642097217019438531565348282102078843158389535480611589507004453825256540886871930464814721558388972302702255735797025430119158485250293281295891499297233361735869576098050907143911888104063279022781492903991649234713857892143275371865145806241259901927994481574529590687645344942701602863396574163368350706936729693951076901021334633566347773933370462416789293464639972220117619065195470406078255846345651907710139622590785236836654872610998070698560421491388242103420732193232055392600652956219316289511077318652884122079325847013846176924995430993538486172152979510315507107614207656252923739573659838978634452863847096885415550039528425958756386451856955574048920016252126924129074020101115321258277060644222651831877061183015759338684725852064784337382167509607899104772879263277423344246615945177596186789017088199263311509347807663082336885623380428971681667352955311930486164559492070923925727200034005411931558315750763872528239453183770989942384351469028959819844518769820553591590201173666366104057128977723251069214014399989590338626794225286952674392065525207992161473936280085125074977963815956390013105469589854904885336345732265801706335474616437396021516550175755420259786738635853537315677066704714120337518928716399902150882520744971425251089692089046319806911463920362233758682018640942668050351103606818226585119663137837315207728843213796098624692749190152028343301806492169638620659078778937515783352705141358613507856947008606314766733124227681451446507667289481733961424556250562183729251303680152913882441060787130045747665303713351878128198496334047081412243345277607980096987912680689936168555416055092902471065071072401426120385571231754260974289817645582909440188437995959927008960950582853822139515394720988099789257500465109783721971031647926388003987189370485376660218630495331562668069701740420600246369036645268767106342927026427843980551402963203582361067727726799856449031538106128175273723886512961190800784305697827420414308381060664350272865184935070264721633824318822222656990928571612308289586696310331294366891917329132955890850426601589653198475966303123715099958506425432296578768573901205048939206665401546400213511879117254148091979861159050133171424690144479318496500738916638710612729071269918439328412779040199320759397803478567092445320133144345812663836943715811948613993077399865481756895225836511631071552686160628912391354259355764741264487241681705407764126810646027466445031271423619387934932343904075107240959382675039103956049748843850955883089325616868464188880848464746626088956214219022378468643635932967307898476725107785552269820090291324696134604285355551887843947023087852287961479946181657588310828355050513597226309703865726114471290195273837033747480214458354799674331288303822865122497334915446660948401389413107926543347612535359851131263397657109865542878068073801443153289709091384613353516175181245809712940853591713916070736028574359346122069837347090772961238355690314231040092782819525284418696659968372589615675008910472213643610495838405573477095505354446719301244026822460999303919253871724637742916381444082582009766792386970559024997109252624507235251259450556848118834774701076033844478227190004482810071720268356556500245051133409203278974255624316212322559694116829625034016331553204230844198083238753214327791533753278002210152157662484720460996499263527729789868743565831247977242323799724629859894208433027259897594557232924536706322051155107974269303109809297552149682783561038890946890032159218089148118024446650482453764795607607300249703704090243567458375220678716665902576578865107030670725251691230405601794813019590158656343860933071487807625993474717140503875597564497541647147563319003452834498409222126131077083020789911189856126288657801925344724770601873994470222546177682572064626943992872670961848670170826908003667301711945622611581940979870388967175552801909246142257944708053709180926700148357592990994225451563857948844901280963141879554359674582349452192233891103980018716291566349293229115250446429362381201844490257025055758456905276610491009938782127984437157588682795931084896098141795663186221988959719806194407627441825867736802399905157386242995585020409495306766903385077665892861647317871021686925189777385565288987473751769803667028445404477353315942929378206122982058588139544492936826442527705367957937048570957792232449657656624779508125188652776556105990378091794817001081634474176341796438872821220798264610843103577190936716281379598441620295792427130538827335922110360612418668320391962907675401853878198546421051447112969044839638573150576342855208082750724952244167064772654806761501733816944610817343539899710346370127019233880820557733822611660171608127095846594638455264249282616470483522032211335079854679054223159294359766260024002638808312448369764666440771323608345212157852393120821126558462153573481096858482065073432514670983997573644286095744323562745259834957326581123229698840953134359020498363563590511199743666635455246629979257674071281556628162396690710505562988489211833495815745978217775447693839094428866989627086985140417088793643444912018111512391626984296267433975471088707650879830851621371420799637569296415441223673548240274419635822883816949301731946345554645750068015109469354436680827445035154342699842550651312345150297745139247788605720337251674322770952030745814572026417770301707163935190763869775928808805546383501615157367091775980403229900737195410852238951857697990286817226861767687643486182336975990630441166605898185044017220130110398633430111684921158251051769228128665800076393270961908813571235232378692955387514287314758544600043988888351142585087405687990283577977800031684565860814433007877270017139018523118913080213382439893638631767639174173102177354331214517171335656518533216162130057106731417807798700001728032147734430639636663728888829914071636018995701968787588246871476207149211517327362527046747210006117034422952591316929722596350860191528612630206720271376884914487731576686474710325345760862226226236068975045108833834148718955521833275789560673650759813552376766609063701590869000072244109409826123044878684511935123624859844514839332322021521314862535061975798500032768085245384005401991316991689105711988559377589477921075035145376004273544381107336566912572844364935590629781430201587442919190824118256187768119474589203772772506286811678577828149553920421754353264736364531740786054106749419175156207930238605383171292707656560793074634386295220670965460607992912554481020275495938462891108572208271872028271868066075648353400952053839405079437677704083065651183414428606010104786587072703407083289970922984441013350895505131001524539227114854863783541240681056212528349765691226640967527268728111672011390685660761254731745671146552794507091881159641592254337526929225291474798759855535845750396730400678606692498961116556267605826046531886142933703553524574866935784863944194314063137327173004911725803122426329513777528491664969350159324605666987257460946757816273798601001563496014306064562271893354738384373789829918270673699876056904426915925733840724192483918834275367453997329325931726518977895480343763697257096329613618909761342748033043551013513594191739246407201126202000775391514343076744773303972153054916498519132045096146496064185277058664926683742397619053308187543082113041429138060304399617647590657049428372817827127117374545494840102896336424136651253901802075413565676111302880208273236312182700447380427731605290005307879413106782628857183044282901179378368352010108994957281205832220223833577066545766740331480139450555955941377785773360078049619663725284606273350964517690397089406768409754531313422573447950913619322150237915930009837959628489444309925794956081160325823347294108485461668322501530747656320177847472042835563342845650049358101284221760297639329239284801706131869464187796517004216696762794456066593789495237561776874421402473092740003717692598592442176873749295634899449080118211319570984408516048773004583979756185891395787682329293885699616035673909523013243063815171358349098022827671751867010728223890972258423388682774396238885107815390184724393721139198241520824397877845511821357042206802370798772355063411225672674529512195902606158578269325244758459469333036523410738933465398019425332808207769400688001918646266781305737941104159840943747767120815065180475089337267491809765728622962730555233554446636941093540858197200405171684488495634884069379794741764664784010037706716256097552656947149350086956998907402646505595916684742987639905591965747012620275715204646731897887200581580331674882375147265258220918406374337639457749162440761842814092805935894458412236847026984615592566628160416143873355093151829874273220340083450725877057707917577283766008385945204409261757106655490113939835600652730845613474429449674274823992869467093508832706544212578091400510194217421099190286598475916174790081121944465847999192675513325959385183547038110438257333926654776707964942398549413064744008788537725001431611964095807556173716092952069148435669987706559246101999745443189963867342538020823416893079018192044870471168266521202001330501318446681518541582554446988569318806768148477213197319953099913006515001590837387330560827072298310649620969550046068882935843558331347971910361960318415513943400345455459175800476768797684288017183003219366804739296004176521508825750382158101415536556328272374234983420470895374425702906790769398195096589708081758343822674452103888267968352981172819203831149388663074517972042416536093778021783897625824203818399922632561560407565034983485132967973190645589453443462307773813733468907427310905177473819339244440858239676563807763011859228262173035920560296610102114375316610886760159847639338614270269458097413324954093171075034376107820871428550249672311838747934560008759940561943052399510013656329777195259804840624826182801767594409526101282177323738157345823879721207277178017338957575698786147867243002948589557933007196927019134142174939344261736308818029403421195505373509021941151418359332050002611835056981683840270098480468190091880387237990901692323940336893280917591705516461788783187799456089710910065530739082583304585484717622141657393459386709392302994915484976762978604022823945311248033786879390694195780239231433332929381898332615492021640538282677510397624185367889027714467206961729379870086610125806209230301162453190326429666613773635797423416290922528272260201400213370356724481290797716956599523381731397788676027194975556394853399231673174447445969557749198369818099483284004836977390812803105477583358912933907254591648757102252396634196968696647329530856011219061506898560185828162905146422665444247187669118364141835435793210195341272284711729044685963171178950336127673092850563360662323586481468312246493032359509591778775777083895974316559299840459950532773865558813019811711938741021446471751489919009096655194639692922695384458545948465708286766717637297614353242944639690121260523921099131833888577411600325818204427935541793384985257440621984999110632047910393667201393451500503514897667374449574008327639765042453954285832748503775911130021006239960757490779752796787341526708392079041337935350868855852899143563902205384705104751563582369552548777004631349604150017992273439217576614375474818158947413094682100998480813238678663145998416887117350470121317126146718458724938547052985835436434051573965762698666920580361957169484350900306688445462248697731025255631714147462528579461787701644720802654085219609482249546498705911783131477770291742792850161667105752672759220708786846849095702401486573159438900451321034165300364943751448529307465564629298717479398430584318512362261159712420123242805245202960662084463911218863010959451974080909079351188311086285215742119337104865578024083620426921282069542889333299312950583589581982536049064593850267756737193666085892086399020764533259925079076356013576294154661449757064488437570125817517889029043719920476231664040747958551033566677494868439410750073218544348599195133196378500209761839280071440597250966057165393065274107638726025851285398933745286256947612960886810370445219470263321305285308919430395022625461892114014433519091489491970234230292306449583974033020519308919730688301019673208425775798005170691758827872853581088138839541002817474693513352286385111339454605220529626598265906535362749435185019513118956960216092415217368821877430033873827773294271398623447996170674822829287200233228943539682427720229444193861705735269461128808337960514293972478796784323832561663043785136177299354299612912816719210062287233661739604490792419055065195189010216604213881853224571074738417353842135966087740369776298014004772258245986962170487436782678142815424491244168862807499668518362363884017072501316684382067032872805555677795863914815267322905577425282048252800316294558579131397826367366188632346260071035313538421783095205476430620042141433972066638803926257067844050666682177021592152235889314220191878858355794372099427872676229205375258557042382166772844360871032608546911113786123135326805824229054046550830773789423743267537918283281660429474540782441101801418347943786776140999681371436133493101875169844577996349329337217171214610936045183939772070984299699401711829193021648176657750368427583076192893124164164445414210200803432084846450267254499105884633700376609777636791646352416242278854466384631246651948030173145921850119271806376945049124381424548646260967624498816886602924041122540630869297969368733392370826066303991896128555975326232871084096788582165448562073317158280654367833403070088910524642799714512221110054588439081022372493317955362289077694080454947344473848722911390076703654438209019693950315094371230167760602304852029501125794709410715364703715515531903915582896837054813825960674086756382229219273887676559288644714977690972218712497930788183047167782307783008108033561971328756989218486198393807210769090297120604599668900787023193998639518184187075746120673998751877950034078449133577471564695244088198259139492935563627278693861523050514602333321081048817880650643635957093771027789842253195155080035056127865068723226948142518733288900636419878439267724138143890168861770280868616553338799665709777395161013401490149928272319311647297542919363674255807535453744963913579631017051960447841287447019458015883888676979001960784945826879797852255011481879151017045828740140710735879355946453999522640549714502653275696825084762804922888371634611333392169412484795220085640417174920025705745290644771427430381888123863688555660064298457695627332623151927842052994746692267824833517108280387489773691631705126657699475146067291950598777450369354958441313573889572124949106345141019251927513528774178199953289644367083387290350892151874946581283027955804833185141691932306669243922286201276222828690448332172024153269571270674154999265637405867037350376493018052219214847795705871517536086229254400905958953107315961300061031973978493460816940396957389204378664044674757381240635788743796964517109611055884772871753136591072760559934975907401539851005495169471238809310427735367478581953744073258830370159913975868725967480196974344426365449654225429116201837065230418672152723400929669499386760391161481226895528315398164271482486995614890658559064263917105897577807650252817963552324522591380945643253621960509092044046456167759957957223380543021746676248664415175546625525553335373272768270740589102204883790026053450350345795169825875385506158643429066260004519669143717086592502752824038163814761567017718856567015214659807903866011827621001201124095888886069943344579957316898495249320718985901433089434199156791060151374047327612339220210674111061182359770650948318209546507488846040716776562629761306694514170064504906865635567270212076081968683519686434931306383977728919292600026895500123667355630039179101248411389781468410068565067410712601396069611357325823273497649258464177598163268284137699621938322353976842692794948547966948863955293387338557986737358134170185106990686740495464560707946852001841608646639207910992772597701982501234750888520066874027394813211204081169625928019116604652890648992276975611910289921307473206185495220686068185282398896071369443609798320771478630491970193800860263506181059567324581922666114240616272119197855566469081073594414543612335380156517266769342568682298531243035730124985713605758553296509083311992985783205213392817577831071060720594176821832923449821762657695167791588146338640705981170332179098156894349923174048095536220417601598408278403756876996309332868555327814974033174847021984130455588350830149577079405099418239272791738336347341715749953208046965838929440247869025970286189459435022516367523620776975888947536757352316011573295914423454592896022310893819742289305406662306233817096450784625734403565814587992756221429334119840010532970954875362081780413870919210591863509035524188475247925479434278134872303573743872413192403392918547870664402857408536902834612522554189378154821213446675979545231669425087470802317694177175315487413503573840927029979460823630960535483713894725670989548123876599914879846271665437472261660628086733197595460457229066114066697513034452714875616149321347836230419331451169084652096627511933133657732918802706719298040353314730484600294434769311177180118179789826502174308157025570342831301430780347247735108056329014398607085284704578264916252669866692729005114805271829913061248376714421812185706383618810296858317080671530394488672006733704304209372929198841361103750256436785778629494685244694288598367760038509794965058963333163743217115338585781390412838697174541011610084388859716093028039242328802297766219567452689840344112541994840537327279146837624378273237254899751580211794244227326484364336770317409499844943721985047450433831541342885384874777155342108364389734115525047581422659010638048302789280965365449968758477307840365692887753832528362844939048872889159102653087670982529625157434540020495796962155822684252112738947622452090271204762725119215739652487772800196216741913372572839074546420647077124812937872761386499048444161326834236240810509653694042904392208196192650474763532896598326967277670309547757615624509714981558279604789451023958356064544852604626390914611286861024657852689106672301055209809327258961803012423818190963863603631190389944129727110267937409225884470149466076228372683296885095042991640498212470481678562016412605409860752575548826617566378499515510253641540854972196565829526869587645088960709743075173459413320346121023739119327501750887175019619483065368412601703181076609401801983719071628256565445262829584865758601584137944887432899640546764444262622049555362547369686235567750458564292818672475068511537310636529537311180174700555748198397405273778924468558223980173715639990037773750177038930494814104822826491245241965604224725843511075188498069039928117051851065332448803099015824718497777677582415217455567405444874422163241544066701495967157814576371873711699597009549867502540980498664283750480119923144895369822088529871491260329149116271251434182511768539355998726300420622627000032511804383114373840211182453204317668402919108309905497448125230247729731087725796142888653304929447596355608614647726892490243071206295664247127008932429309789002302160103215666448562070478680975742621610090106530402624483003014366400288919297423063833130403834172044689768973803642625993067039911165301211134687454647554607220563795620083310029365248079805109264988284290417227426528339845695977223098771099144894406769566875626530722456044062310516179726530231708976187546395281395069302617196871533180111643832363714366339068741923971250752662656535166546784913385997459613166927850711161596266220361775360468602539701860407429160439376358668325856520070029926852624697089199951738373673923274568999311658747411161377775070071244661104383525727256918474215419504453381590588322397551646656647822318301074957545856516083504837079735454356392478351398419072379253070580574329803368600910661168212401377094473382463504338780526049898123300884942250677826418847700750602796976700961823083630517259183760308668023723540517404889376941472004251656415538427531044481858136415896852910701451509567739693775494720565359805907005709989547996732234215387055012990140888740424615902783263738421774391861065738076501784774273755540082408191971560491584714905653831834830588187620256711200417968195742827095986985752579470048270693881370314197831461032573539281002046175571384619384588453077897866365539649361635272239443501548565353962717281962633496286939638912126847613043206376593426962552018478369480586839631664226344926490770205687444670269407078916711780635296368504683318001728830989487021740122178952528381559960847610421755178609049469281935851496346999273710555167092984228373309026900743266384713873610797381357218107053283243233470124852568698292626542834171235409433295945400095531768613737824632000827048950566199237445233957033895561728228709900028687247060873598681667269628070666144497878792306626138330266791830806444092715594622482271386623322299225127440434538219292253999207380497812627695304377649406858053746479197375599379581099539669927466270782165260297664124471837355214744032054457605158637313710371375466221130581224497355357284862962216881858938095603528485853586432988038899996000329989042038968805893986868203911001939477942232196237369072613453018715123465883322574718860080845668261851254889403436694263305902578050635312408853828836519013664520169751493145382151503939816542887492115258701706466145749070083565301030030852159191485203269809416374527753524139317412926593369957839009170468172124029907254337554442201560875755749774484647671498628689514838708383771935903369624781507787023396476178230122171514147500392584818383225373229757758731130915486767897065337471657262060214144233060292794550047516502812784828439046558129301600609984350178550696129817263449356196628847419363434341024130628798982684213658242310492371204334907559275197828802463858252624516486577105569924304800140899053065312246777602622777545358086233538890403910536761497658412155378518284329537166388859195760101985782866583894350291304326388412834409251337903049960278086574811570425166181541741128995750660702864304451148756312225514191131075027851356289166707009122935912976974923553928655648259824996809393099181368009114588075256540712620774870723826423459016272446068465247719711828101201269925258566934293678707423044768143781351066783798583184355813935472759618381416535754184892115038985838092938423903564914705797117603514866826749402709413472918681626419253396121087551215727592345039358243264145799097768691099588975099731146432739091426017393867409887572201097667453620059788295962099741373923236734722723584562420941631142881726252241348703641431701179154179664607600009915271979812738220334275113285568628238828238325466821689646714733180473024913845617292213266196964126550839964858150928465458850844106180342312410149665774809643368371293958702722867609235092187685197304359666459347065763760077653467240031160368610713670475810933168081146498041435109099319690154489228288372313922358800993052932984464449932403579949517123293141346727968655184784584754135061661024733461349532294776653392314476023161542373153322330021353724230953880833452611631943887822558149128535859267858052810341923246726326669724878246348665337510049249141391881917058830321425887355981679030759053332816551549466930627258120275291741410010905136087955089138217505541090577081357943785282901367292565631031176222129045167168024656800590180747078349589242436759700684869971093977223851864341051917166570235195915837571135506718155517218818552014274931327503145687087036044937347122337004838127420444252680097938837114420397192891472101469387824800935123878473626809349258630087746367007722779793000382774697361819624648932590336078962094711310729207463840454692362252293647687506307411840031991415531689672074056554653687892264322901970868170761378419021828080178080853511368029948111388030281130157865088502138013064524299014605078394363106294046166916062566015398918853629027562245868090111404493052203936247992278545671007321624291715788919503318165673122580375839452272909846985036209529410909209027319817452374674890028261475722838395082057914684444237703318487793601536165707848933029957311510599757297644958741330236828495198120951249237658231636207072659497441029621432343391041122221434735760702002894012365519671277660554654229812615332630326949723425000217013584804370541000363956015795097335359261052723584491427361760682149357953151719617447901348693194184542416605561090324483432157745932309531493443786971132898754537278877695599630769272488854691563932831533544038490629581675764605885771959751520249997281027175289469073720402719978534107208497199676635732730282669995468430485532147184344128338838540893716923635104701093404229210885874322346613842169572833169531963703212081563887432440980120057533401545122150657762686335910669211818803230902707145592643584485063238820554902542312574066021419215677270029308567386071294072403929618279275468529620542425085044554052271657327021002566370718831846575543349355476819670772817661729432728775567537578622673992890057830841438540054903811156853086180630184973689592657193446993231092862747487565173683211841659199383332580626677655851276238624054343278126207109081436491596701969109727689116642326926210201403473786296056673518759054143083786860424969816385790278013655682835208521901941732406756396505661224089391447121710779747220202009084956965258508875446358846501828398004145706407188860242328189981829382255348342640385342262976803057703184764829121754376642990599043175614822080271966504488264136402929298902583578328205289075462356462596671171894707983759920833835350490238908681457141612761574924092136108248067536113337079272262793502414688617572369993166234262089369390915920974581912553220792823686400507242041125622076503859334320986942718984852470817594754254898897811506506687948289379313943333198931286890328526847967584921205156204463502385241858291546083644852187988152325426512862507469622799827069140406527840387100513779817012396023632254275374150936546438786580107972774559289938269156932095829539855975455116257371392954215915812379949431281839265246524713809777291493597789834348233049235002208870564766089980125259440585687269683427074462822958745732246245560048472983198777485575174638864599161804412107589719747771369424333935244207012057539891925764400751419760648249772246915655617651563286514516989348729687233528961355203535679925198098330061417480053945777205327981655522153988089199534500259769074847215836116554463528754689919663011067502864208394358088573329884196937697249604809665606998441935880322655439297835235415542633307686659632625853308901937545032638619954630010179021174640566854297554523126876952844723378513804642837153524119479832841582123733820225051609096427998508296260601435182116004750224028324146146033450036940135543524264936780186113011558718851194610906985210180919919168788147990057291696234993848029210097617086973798326232032274233082075875190158865114304810077430169509819673980428954120127524217110068469397087526128929328078965050770786276212131577424318784459075862229304746112678158751505364505588633532510964440743927350656554216900343557571828492991383333334561781219780886551493438037232900154497235212965547160358588523450823936476346575511805438853524580173347534885993870939830671026830700345398075713539905410804299880027118033708279014771917210186544365415448443828714942383015149629564926209468516625487382589589762436429979571143293831761139168408916152562013357110749957624838235970728098223634898680453211342904541991488878556495941083577566428151035023348915272569674966834342777751855785346908827146027043424419737933937999536060892644566724395129893199506191788277892380322064667658480645264087073330382029267840866981056971999563160734645559206896646880123267709998153013827094683183346001027271744974465569901722855994875774677815434814135059302478955973555845544776345844674116132786159734665128327523100986333666689530476507681187352628640441320655300700483785509088748354753503802923910380833865105688351858009523753227122624466939250063320567908114923511703904772846862454057034544872564506306118091524058781973597616825629354733221702072093021508707069548681558506619549391107557706154579011658876904108595863975214182771785962963510654775912417818631859320009480350857507842587464265975264976308770229914209258708834223776399185670495898021552338313919842885142567080472056922693872345136004032259393942079987413036254336719402321591378623923528932606026659032696060943375716256404184848778688444629353315817968175619945737344994508360361348546907026238906030748249800219339752570025394826200424387592923238758960083390574565281671337659878260646204784245305510960000430067691737974712525361403954313788488841324156432246114201161388652139661045657279429071392954159490801164460306028653293829124367081237785245353071455984980998440160099666947171214403529601033277052321452677815085497756174407663700237187221001812070379272175041427003674004680885708163558028393648282619106405823165334784175713118576704897797194086724722354760123677536225564082878920592371331529636353716392976597390391224721452725226955562271517462809563113372302384082753857394533289005488174573351920147685568630187846841957596716227149148787949851186716200745143418307873282311440423185571574206494658972752076611028541952748857017645263826264333026234228779804372898192126942309207183421053816944777642258363773553144514673365417679721059652508591104872726099482509168358882680719516184876589906881097914609788773640118217245128487037108538027314813629893314951738896796648983534156374920599522268042254613212140358711267971592001994101665502402333660703585274261189673249851031130746509630257231865914930898145054535707732723322417977748605096215695967789932004384911161268447225259726653164727089685759359927233075594244394633784761413638748049453081135391228874549622989277533454016671233916416584712865762414894061657131751040023840040505393132908256902135634120161960962287813294074496393203344936418388204783510694727880252854537464264584408617567515843930021588712002281496959213067266604611108373377977003256263478777277007794443585982170418714972872360594379518634238030777202255493169897790738853303252841015051615404603736452997828205451515991719498686893160976662288570836177765394754865411657062492361080315326286151058619265823222469556891891377073950046167514003165858687745571987887569562493027608804083842640673574318300134237317323258400438753886462519425975627177055275275052819109423783456037353524251105297687835855137301100540777978074826138745646202180538195684764438231419447306157034723522475941379308391560035276663067984918401077118805974325522964720839492757917776639910241820223505724918799034256921101553949488575968210623653102381329647226697641634912061954743518669177824909844832996333016669961342437792034807291393678782698097401957496320560856107278567214518786971726491676758699242857773196342778275354789983665581809379870402864844094663179264596640290156903292878294445829773234896469737503179399853144374294857829574630736024595285062013332148027669155065497630135601000593096816750281379835507650796874917028914967615722998995282849921610040063754311273536910053223848114014265331071274602057789217191000760627356915202096532606253652635239836377667802234783948807061060928701100018674861073480483622604781484198079435897679758786834298982233572428984098918584763593604604390665603070889548650351904213086547013974878698878036624250492517061267974744568561768192521171409320024949419418955119357562568922905451277754932635951980582773465341312396696688085575721442458087556544936897058494431908864215947170161243913319165329997306113539153542604564469023519802371505557670857982210909729294593607313065729334512502860136975122102268662542481538826342508574501433736689017244617546667638791458526374223175843906695730606717856343324703279665287287343060248515633748006393958335845919350965400420851357920753579732825527105386664946194183922137303560122784880780208298498519864440094610992403677457473442260636858238185998204054888894599935734866123780690366436702508786003997016231228830004319057331513218035577265348529971848286228223784727686518781807947446952856156333196664759974469697693650679713298968155040396953812256323338129231768002712101128671044306650945662258917715474406496769331465162081096529360837962903635938503253110539175046371132704733228052702405590818422446998253574610116567443331122937117962625069228693852076146426769760205249040007189999117670000835195044061799864902698082787275999934029649692502122625820902310329157140925557386819113573824068755485894166079647409101329613465834557366833592604142473724460551323621474499579213608377969844125253766775428140389735704274836627511629159163085658841001654133472219531185570659536489484252243163314080967983703558422481097514777498510936661790796042288726838630092203174187496463961283691694192542634809904696425809101645211190613456351559453214364653238087588998292985339468715361838067091740826769006467887510749532181876661672997397341419968289473584324956900807911650831728121198412065893887889948443246627545112925865106467503086817562559064529313201632764973680810729410525250903647249588028538902995146844635635830393991868424745429486225787780211058500144209764480353711763820862686799786810261398485987633043670005932458897683740595101190768616829853215369575501653002767173191410568235603374626531818712156027179270691407286369403984266224349066909884995528435350642760771901426853477754531225300625460299444617699121378011053204917379230295855587492593204782958344522899968627172475208163982465037739363528066076530482546805687625124298271383298989568953189629949404329561462858474137238791112208469920679502670580357212207208882774890533230433235319014321377156998824492475987165726701116603756583838424910337425179528596549273460070450378833956369201107539416094667683887030956890682339001482586118337626085950383371021571806267823806153748409616541847503485310343565056417721378871375306923702016555618905565845729023326388261805221417543517059194430889701465716476763379779792074974546660709108992111307592787217304715065328434198492778296838729283930364889819718998695549353402010106459719943114560244089719225494799034828899406581387039161594032144346042333766814111911257972072666944898288115106574794116981488546701257305692353631405374410828368260610971114132874330306655638668490410572773739545444795468338794543314657836042126722606115005256093226370073585271459333933021685551062374265846399605696802025471230659420230425332774817551436423974457981908382839104095199979479816462419232426610866293804301614993034253381929700411449043494944801156196084489884525314107289128010322118820582234682841580448756961790121989017355144235995445830790526718064215425700018130021875670876812147838426826291205018870010495850688515321762176156383033093425228011339212617690954861748026703718176122286248548660249808218101712102111922358409659590971332148122854110229630298502945138746531207357533744350498537327901785830116646357735832813946973644713167417385028620039843991415259982083845203961527409834252401854951743876501657551121453287040304760036512184135801748913846942591425546336016466754114573728039600304998756266427478857257406436585531482230037168704635930036989955190748774419314799736154867603846569811771563787709517028640604551842892835867706188253891289088755159742641781913663993996634731864332329681344570453688708015026309292756332566354393350820317511588973691297922865831592411546914871724295751451486607919958736070452583552989976682044775163687478950957795543377885144708982638469747016296646605518169995419952426557181424292863037501241195544717899398673657876998107228538253820190624026709459363432004641407457478446297175263912473427357891811818518360162130024323270849795106819829440912514971433732773028349265972659256233682661569412882177859096793785430203083635843504138250410837943418261954903805686813163734816828668738756392006727575487783198447363634134528546821778560176835828795089745200520762066770780793972235943178549234852052876053751132319874612206023997255515766340405803984554124688785539450701054207692600054071160390079793857148457116536132007425434801961015481878842879854158938637631062866128199568018449061632723198240067835595723756973041033258303085291353879192918851140468071663510104041565607215534675901426972350661658723492080047346714781447271279911758233294692890489163705411763462996635623295198076479197087374194012519132104069562645106012457758437937696865036955030735973818367734458361986119638184447815667580386711589409940375940352170133450920701514121407732296468324582292286876993490083759525984196142063713334037338473838174281738960042182381849812778164949531771647601828978412673736664945226775550159480922275335166185522497858078129491978950654445943616096787337182044283621800966425717841956501173098395224872428211513898995913467479805753330368709054242352826447605140142133767022047209386181374811799901819433189046288109153756463831125497534779444432713044321811033459177095773939042609005736644780283684802916894439280893418412384520781075513054599187464524830477298134309875075111212077083987497124617860108520935067444422807231825913717409407731268668984527730753767913876937212516481903600609783998644557667217913528807798217211816119905024245257215517031796785550041359125136630868064093249747873663574034962810813095747562517043997544074700498438677000813357554365330783828586507637934787232348175396464476250120880315149122813913903120654740952267138104910156142137585984908112455398335545539060687434376465593957378115625582067760378744270773728775522261688444466827996172159053958634341527877694220715329551477517521280543908129066284734671807383326036662476207211308752869707008016253114955483891887187424756866090905440675590486607316193611713946446366233519042146484016803375137738238438039693173051778708058877225496537778027690258272356668794967295568337410087182290422380015942376406917460926234966390764137264407248370611174105115394260837005850920736468583112357268046760615608647593235057881541725475545007610614337000352281959285780111934463028054758309660945714438654949228198898764869317240907527431272118166372048532348130135354563544799363635854544145795293209047567204088854377683877557099573715571334355977174015802118331416617141211509555733724562002932214656881248550891645609296870797383466004731318773491271470204139863353544226831609478309487820882287301594425699443232349426701550047929382510183349699310581427779416414869588497557661563030963009705911190579948375834810584863466603556822913130150598274832654308440027257822611084080156025653320108844474700845495454285220475348643934789360698803319509977779203591749451980248951866538871922461050397592584427504076670258301510709956127203404560867788212925192620476640384772841355864404125257408466144683623188720506792165440738744551905059906909262754067547734138835389927841731269779435075167727267944848634641452627646478430252357403142494397347624181926241840672666665876308234404037640103239565331458335646243699490389477463712812861714050309273214500578397966976189575094562321675650722218589064979384387797201512541315635666026292203995103955462453510038686554882963829994730251445172717381847951889934342083622146454538972727370933049402951513675148945180184293280584451661387320912012522614742892621287732474786373539014369541341092416602099303891659051377798217629669100504732893647813789752631219438307361431048575220453120436728579794533856522568548067677793960740384891699530389635801918656358585358922332451534768095933984218162644373908408215635821166212684785588424013201837338748247158627952240176404567961423571468675009635348217282297975595681173985888411904636614554201343592943592591950214118803720565463761985039369557909022895024770756522913873966615953105747064572865592094155080946634945066746616091882572805245437386129111219000552404887904308950658178239120556835845292730097647303510017039523185666106008944297717850007500688554918682557356849594391542706029750366213070454379314737589431107166993893198663858223613442613842984570568449436503115339708362615758877468450979006568698003095775492419078981402793378989975455235118663893846439089344198008064577482688839010041421684855030686482836794165191909619105825026783291419796028153667083919632418612320240180258694625595191276158209210909357174650527333793799957494034373050693811602886866794452734955517045624447350384241801460436218996936653676349731914783424802881827113085525708345195109815974743735375363794847591541641449799369194007351892593927494076618506451255397515094026699315164728413932828310761325158235143077025086320833270430384412203741438718625524551506017730871792091469428196495247562605387162479325068684854559844074858362196131542197400364757152357497119424715447446676899529308666594535728946772051638592925330407071544408148850862427333459444867817175586983036528542268363565751244341653088373063338115510214713389367867311251395474919668722714774114949888846556685462516910584155905773299937292231594624406714298739473737335570243071351185469327268010810278175503603821384303813338853798422085201025250387254746883205024032780060040939784015598867250477738033314336738845949146841659259063713273464352614253274466159312839318792630707147035443101073017187839403183421497225591528752068377324469748406237140661470589730052743238309981719993404095716244377927927367202355423924831012731853821194409148530711821685215999569771847098462883306804654685327422256166946559578598631944071714997623046102533025210713918843260072598495904935155943601464632339406357183301461262454888740560930255995515492363390200358591559303267762334924806495489909412947161159606803936981297179160643793305414123420122785972478515103023488319113469290955752536951331945618998135855500896085157539647665151756840014140994214004309224812846106399606606438001484872903823598408820778343070894419998863271772586187231050259256684449514312178305233645319488307923132937641222731507493890152414125769322857730243361018898139444306328589940538263791974763865635305634008657512739679457600313449470825133000780685602728428458020817433354714280844464819489106372095292419110675360412994933815726467040956346155550617291573889868725277948876091984945502041765786891225822270032341355872674557685701121512584392213875001668876313550637586735754493239176887393663191343450078466844605493835468999073390894913568618821162566924661820851149936625737311160514314774265893609036118100880811034995877228859945074415535309531707559040014923901335764850272812274718505695780670777699407977006039363191003157483912919640705455885670333581212452078611118828530567952345701734000907202027198297932635521445923807745127824981029015160409103835862077769920021386400364347653455063334780510538278466199063927412863914445802516556460172738932122517258503784016485577424001910395295217962420259141993391228549999521601195518122769206477970852773601643078699844059202671926206542609269426925815505786298497826931274193911625854396919267312965685510348919937089420029797920607040502253011981306166105391468475299078864799777639485640747725550884359332908108319787138807391508279587870183256324527871933494678140851507152105179059427981046987463040397047978080780710475777808007977186026358226026152715464885051748623744545781076080323842697729376278223581100243123365588964149227438909197821514403238522831924242145553027917848871550151636904034581506733441647600264477858132072574520912507965598215475142557534046768366888628748219854807123883869663731686514928931335312312307551202077298197859944248332582426872109309212645341047457507272691713344108490172531012152692807813136332972193949140947845257068829790910566690129123344162061603509632032752430123115845118142848278948751444684164025021737524916622171997326399230817643528406323943353609578050686871294764949999388237849972215715371932917303262891655770841616789330432009364872085402847021681543813038247767837151721925519188006680827422889196392636274858886825303784820496376754859998425129957476492085996892656356295960227650353855069925761420445490571813752728923596260058192048266627326573575024791251538243577897247984629850887602763528636607671683069826553926614763899765039182160243794294544841713462483966954755205910803017522798944651521278282374603171729717976998206182834023407095723602536638941965434767591339136275237381803210652716635676425179709238896087332483944300641965483858675533637136487199074030897126762842709179726532467063350806428970547181329676218986741564966824755049787143150355479813226063760461444847269914456393889922359509742121858947981535143309832674589809221534443115938895349739127110711482008270969398154390522980238193315648604503046498580172293471165183251232905985186920534972030088878569445056684936772892977172955639880038569981777599294367599472730025074759703439279154788734984126423673043388466223878964252916941075607988146997448661764647758427604127702535486863844309049533917222856369820330960678591195708382829380183273719791757905640618128140743845851118799927641312412720482779143538898752165560637044931319943520654620567120978800117647326291787985410935143716242202936253613196326052396758540438910286412267299348790481588538626751267244258749754068136394494303176560131772317235061302890892387897731301906861473583605856604814455654419574849592288975027739381667352993783979526738550361947926203268615009095073376979056609473181645779017516781090457696438011596749583504442034842604821888474398353295260889269268820435891291291363638161171655979388748053421110001119416870387425699617124824556998662332096439182471968036734258152132886233853006793954790471310725094398985444219603071491706805412129797410319136687951244012943608969007975722768504789226067974944929728989726879253241924082257898307729681197363599388168726752761308685142818584880290843295994220866356549067517662918321921028385983753908584384603177078073619181158072350162246013379750411722388106187226488689355592275649987089404213678704068087695383939125408748382572828894396194342976554679699238788785299752206826201917634001013641274983165864860463907457540574955170502660278775370487496250558526845061792803609665938205134699598500381826918866045369498466724582123022109965350049258741761085485023472990637184470669639267891388982557575805605095348340286301391197213262889833489009634929509603082509137218753838748116153456481411880974049521297235365336662057388719286881986470316818262203979812774395459887521494392483169896925807066893201416306355084943779800701426191448760350523403736558246122552078302719037667704016971206661202616017138367951591431750576488124125096466253777208824236652607226563334830326121286118245347942066130541220361609266326408046476118661252402109195685648815890601294379585930828597115174189895239533071483051943162422486759556675655629229554698263660091096723766683423027179309449774429286247649913461983683173544631368683502078629317638764506645449244844930589301665242697519863678342669613440498088107353955961257267645929165345576825669674708261544139673369893354355206018809579496100229842813805471492146801131788182265262541739368141600372563456573357763092195290568119326782838903072811271498210981254488930492059762713975538597843094691101051287229657446334697649931045204497703426007869079969052379994440631676645384960932291374214521155513073105322309349892387183187451071088082887858209395517990370997559615136371860101551064920377738498951737024548000977620064262449893879698756003417140384944901184803768290553957118647160864561783631358762186009095847904260955542398133660606744973428808982989907396358256192304371340885249048437230502544368485945286068925877676698952706401354212127122229522095996164898441898641431653816115728005634772528551172422890249540190197801303557029935152779154770748833957396280211555429909830963375319870781721482478404521825881270962659676678313247598014112014921981717572002437384534934746967804148566806883526164898112479512787298944395174742081772419258869076934447948242467648473409700130205201029090967758083184778934454651718394173938668040412263334402151348039188175926491319385716917962458783462829905144530695280039638900978010095134984757387837291925693887747741452906996373954796660318095035900473210634826268229329555203757660954339608761713515826723582426727345289609749689134325315297708026456830411611113963237213462251490797936371318485734797123946813138747135512134782621928997843047476335911825362840893963177537293085661694291320267744277261713654760434065158563439685275869446012551209992263069277656086539270983106000872060864047002784206889486980743838012434698746087299296422210844902871848909715211266301976170136577871309714700541299161779970154888626965319494839197683801803519847645013448070666966058722463302446372851911155714336331383992857355419683147434541479992287812157776086860339804438094397391202804872938545856014137008193179364007864132535560999219758207176412060364975896486837930582595005360373664288403734215885876939110863761371328274630561725744287120598422175694996017680920100459004253965565063799167405238496954967153532342588723316416564679930399928757172027311077341276767472019743262908300680200443863868562465028831112165673626155614428983081725318276656263804563194150728438036956121749921711524028933513360255823101638541312168940107991029904291897610631335744326436658046362191090053276435447602104364505984897957982699877879077603624618710345007673213104059491353861634890469012854334500087043095204562310323783629503726115040256971820366362455735046442840008816504311715219081774557327462259285386140860868032522089600794095726196457323773715619949181683567918531075653929658811972828653876007697661796731695960065799160796659354774074647691519754354840973881203707448971255830019833407062935055452211053602091749319656951376731367276308290276800349453126280346899044423469424861339608528738666419399518308395809026692255629875369862666150145534423408889016181773513230715092474405618722214135057821762243997739119971196377791713487515714419857271047784473724895599825395227473987473472034985053430226646035527084897913808098581340832066051664511101293547911962487169810650800544581150873312585577070355011018780005770392369635130383865845202998312282343241045428588032126844854224381066156179950362660302024533447947264097151548824859122662979098104188669425595481459056697872518770829236421058712694532944848255287911387400373880451267850007026515085837915756630582788180039255001679006297031064385967009611252970423941529106460812028349987739237697815422533574066228331097039287465786122748109212523273977017986522772875388034481534286931576983914804462604473407615523259376616398440600723175823291605709592419053171259156868845887655333202094935851134397137370894381604649420475758826782778972703405463574189082772053010720499756274236096891793870832101026389550514408080152894636293181610283437497943325236695392345756044901232730556943870274590152024390073132302444601579344395613142558809697397100767725828897491504734350326891561580659310168798788954887633246693620902362275889821461329320480144191469457176272094436523112758798375613185446170172506248012402729880448825898794326357472859756257263721875340979326700754374899033046237225169290901462091396758744641860047890316464615973512467331724928637588926374085065113765921758158434321593300971884175914855762259580114111407050897148473169548212848525508338927070188218479372103201822514663443355784129894287793321680357677803574657191942007494834198637515630412429622418635370219654122852258258899681753348241897133302703875692132199886871473553845025894575810567653235219025751165899207658747423688639833047756840302344750102280207105555152647893365356836518903066095096534563555980548201633150131438147412351182086344454435748749192715013750332532738225183107932106517538013632245911514477897419012973140543128275466316549022337135127486728108645629710154066063286013372474316306857352825763465752877961762263842310233274313754608634258390012786653536026907705596084847308100791314247450808388737761530879726738731810025502812631250630183778872686223910093402410680698194718631877946656088334407786800704447402278734804597866242870684010510951209304102592456459846739142259258523471782309932671519596283547333708765862647029692324152247749717119938642161153510910577921414751610570347945505201954175960433893283430940642881328910154650295478733411223210369947353988049484840122088147986164908206436802537203750514188283554421039279722552829189243032073097610333611665471688158636249715605848475904639526779108789070588818236440594561954286456943838646633035776054067006487646245593245318595164262348342007941529144859251474066565032525408834576227716965788801295387294825861026724862279963019537899516486295637058217784842131522631292945741865765059745359935899148285890469473047199378206801157587070230596849932330109530280023080236727827351045213964822560764240100626262700084537280827620329911374788344977887001544869429480288907102861387495365509183755483336125128466616561448019930819229220992146365640300998463893284303276326872858962577927979360247413561874995534037915689006384887775595567296739236233675250394586112896811814785208342752591399318134575766721366390172963642245765389567151904808024895701524340247377300219455924424380252449012141221516154704262790625655607587750753133198509051075381346191990978135146951345957012017881101459802345409860671400419922575648564472415647723825885117385627777824529274753976059603739655295092937909617112244953954062569578824202830877021932439053062962474040963467511970683349440350725630194365907901231251882510246016104175176038158339996325229238340827175391387478378350339572323253488891186372616713786750115424023805845677736924959045588804019331694758032691192443125288747663937709149813824057195746153716446334509635757768769861676489218615549139613145281745585244530280519903519932162465217821196181453210006077204237300673391486458495516217369342780174816115246468839923807789683246281084859737712611400244334083473771139245919435088577012398496625587031915593378161244492602756544140665337384167215743555992139293137528687825304945956680196688610182935809467777620481092327727093457037401696812327190632238514029819573098938489561930648255561428595008412567451023798209069207462167594999661380786989459516830648681964956445844158191994469070178101930482317158463668031162786984507162606830702374530214398539042058034418298620832401905424104506127260716948330547322191451846554263141563818814685527626102158563804267315136104387927810526127519344146009785051501004145927287838284180307021473686505082326349879939080213246776384231126470227061230595419679991181513822891327974711419231235707221691590680526070866935869948105050859623448093234852358610505490843220584199438168842882134946661593485990646465955918680424212519504770579644354727921984886850608675987970855531771111923062871472083787028053410970110103484908902309846540021445220325668510685520846539680941168646816361851076580422101946067278160886819772098181390291171475195036113012895287605563143686836131647426658807479118116213519199879907427505882494253037605530780767404028810389207338772593943506196567657522190743705958563568875108070599884046288088033475016160808013607884418269103619400575228345949154211933034318356907787353765177999581754821488175015273159470072579385862582733525305697840743359171422106483872264810230002072324692674938811273646779239994278333370684364480133851219147733012579665035392175426071203815766569868102970941223094926925804902010119238462505433246210151069299908224422146954474419102461875156250111148735404200856310575444230380794881361163992031665552322349201817423413008716784487727858881631042830273025652931032895791119679067890018443307970071382924124650667468231577036997142876773013744220901028871291203484870347981759953645230680132246329392824877583963796213924237250147085585911484283320043518927149104454416426351476616811842386525450300351610977611799934442009690982158585966502504223205719599496580622513880566295653891806448526604182755578389708082737236572674024926246127693350020564180405057818721155032458822371672314440174038977737562792505677806956667958599001276485347452782932766693048213294734915088383073186514907150897994601531668343417665741284963067240211177449943685289265970355958546368510634004162941442959817411383239569763538248422404708057901262925391171715006190537009931689769495808847885621060985933766000883662093228692085905068199439131815305671502818642103766312070052979973219675315449271418641541809872591550140481348351725969283127198279499104184512815484490475990004765682946514314400545970323367938859167163866787936139040269386926115849337273791653509827883979953990878522660445859073857324506527333087177391622660455178703116578771467685399904313653496515901454806680953579844700074304144994962627181956148454119435058834888431003057635557046303906588828655748556455038711764717091470867279353754271696908121267577778069114751985858980586525990287832170107694253044944236877150050902234714379350732814460175510874802270196618966012271930995441102384306030659565253639627772612151639271504670189243259296536105294282385948189497223415117178046876672194985238759924038984971932832097145871397534572209322718389297149099487600450351993301615976663967162807920310276250626479955757543270186040278391051973179644725243667909112317316807778251805611049996520163308131077377623726199381480932078531347880987095931455626359006339259804907843700313751388353430911914220468023047562867545551082086811394472541954781044839603892202297126377004492869271688280510733833505438970500874946907920558014018076358929453478988261651596644654266432740276837775689751270334659613870596802708766608288242269215710840186701493315787125710848950615503264890311271672938722407256685469150694746790553513494692082924820014139958893153951393931186290685917144276944460312512712483457180569066073092381552757645843783989010776864310653655970921813923634481993902622778366989359212004910201536385995912726404673550781395024801271245461090854202508257814160929597047038481060324307275762441532566585836012463240384801781573409370092348157049258570289137801020907198573301019643617947939318353443513415278373413507914789556422839223889725149792025617420178788377719380311722061571267549514425368966997465329211407556266709559952240142537421141569137063146926482743682948822995502597788939012238149813729097527127227810216226579055994296039333528542966646395010792206835303381943395647863358057589078644037215828845417129589265198588268373076942203234123299396406895005940905721941935992892598132644066981362655918802741654960081675943331354780758230910434068479742687857783741861086621312482026299228337911786759116639927386107965498291434550411795891550164712900674370450921837693104801103900141822883372613194589881406586722818208479916802509436681384960534746053316617235506160117749574659567914540625706970437653721705383064070729831375355862629057275348675469501845016462763673987893110783661105535346492179615604660940134841774924734765815199394387221253986082680142803621899929318078622276501191417318848040702684563439040101325463677155127419972004837205646189781678389842479386648818118144007226401982217638156273870028550907327480936182359590307921550202805145198542222689982739385497915055535548561037761983121146962033170122640529953866148204684636384705048000713436077626642874002308993412205875050919116166278990061331671515594699271422773369279164999295752051643793183914408800124857690500552120347378646800832065935840547681521501959062978148315142887162145345196966229781230866758104409891330239571105618973369495631662307753171024806697117736934880038011511525108389001906229511462637957005248635787896505173127813656129468351617795339330445900249315157096024979449564925486108447457517453655174928800611882036104605534104233035260747050837916039672258770645840416186777630007622850371223195970894445193328553493103464615697144395815068997148353108807090087361845380039494289114802565287918346034656300030594553422508063673529468546406046166873025434477905408411761570610079332531468849268484454362961722205293828105265706159494291713315826141335276012511026087507733764455382109098841079264318335044577861216557803325418719542795740351533762103658590495148893601916840313134817066265588274521531276849011984563167941592257629008175360962008993561548371501022165821544317594750341952690470917365687043987955113780091618380907018688834628852419705277160205794556605523113443312174240178743653147942426189946045915319241760864629948323163611321710584580785286936358019414349240708931763006297103802110946523232314447398458330006872947945506877444774883772765758945345527220843543457401896657823345023837209332594328932263840508704989038358418636338870363417504138644827802646594385321735012056298685102373023236133879544405313351526922864597186822098060100058852716314099040931892839553872926429389777370099288446177088436255385143364894833871121726458005245866432951231720541426980098832060769185493948364763089454919925745556493524339361785492071937713456169353864004110281390269477785980037723064166715215442657975607737355905508549698647604654050630698913880843328173836397100986098836079230198738003659205817896555199978977956508363790181447613835343283482590212360853642614672506632287825435759832397846027734589451676664664038532070098940164637947363755905657742652481655556512210900248803103756601565906292383490786507141721367831213362966351688955242032461892917634510676157335482789987446610264485085506240831914480545711011819519623313431896884989293147989746888568175445486844332954186087624851530918754840988458047248208322064298316861070104619377159187194783508331641874892005091404933267892872467893364678190575232882673235771253779441036224315479404796066380952497466029544428918664025857876886572432424417150891615467169367968850178817747543897478410051589363823201257619166124866566281762679705645955993190185303326787942733762151275817249369295454610477827236900167168115741599243055859389150062312140606692853588682842846274740079341220028725057129368242886276308075557272243122406149669868751412206605169399813714921692932373777358397705854555925909454169620970473904590903545535177099085239328892220015938846407619551532646518245604678421469623597351692070392868625504653727847922597600954826137486184062028756631655672703946401471148911324029922413722558082632967119965521757252174811507627289106490815646729643724035686758981382373229218288748146728977520662306088606018259672006528898690344607775594331801997754621266040764915171342778617075293190610516750673717417935976044583572729426885032562323469988187532381368933464210355948416213476468585115106058944028120992013083299053272650740068338573490387906064133278581748317928014815775688458220205976126478301247380925575716643409101513923372139099403666081999638600405832542594321527297246075937312144596860583043370753387590937052966414585732226161097293141987804792675617246716652974401725309419048520641909105709965107361103546460127469507053301285025717269564905789178262293501895558763509079673335772921602553436832646772153379805484760912226670666197518755954626269675855342855419960724952496407150660519806254366597212551002620255301050697008426394753506826934988763653241620113808796927894882836349316660816296726229293175273623691157185430725563338852243660749676927234141989411036590305826331405988844757767375270626051593637331089073443582294702908484985653952249160281506344233008797694153791687880211454277427336761150357450798347699592951763875507306420948370720505014501932239565299265867242371999138759454682428420169446177846934459907150531445609109761748726997403765179034401517182615943529928980212372217904170812177382368463173925450716836419941340537014429170221786445117385905520662617589949405528794154478591638514201117319470082992688807009769980460693122376240442101614707428695548858881115922723367192174731952874638590497480832251466097440839875005764363641338363163359338327174940931947191489122926261473170297890523737163851680940966609489447897386065147971656842761244872699117077430021711586016691509583193878752607802639238215851440009215300771416061378781069533113797649094318912445796797748881021652070214866142474582824328931755501044545363426130466252423518128640205405106219976569579449850244955633021364584697199689442143660438903510195846233710007568028196292624631069166797661014215788389772465616723962144270256294014201254452126515032104078586433740712901045317774769571417293490604865499096967594480733182709226909545716740852384340330345568341241823213987928271154604884282756168244926790948405757516962945206905467037121784635864533548388724133107379417284377763496648573531026609216469988154287872245110364176444090021334351463285301742384277926043567610587850311073205072055563217875587666520623910230471375983123366910146212460793992811157746243959830955733173942542633006455467650588815085546298425839046445214692804249265159448883656374190236580137276548799488225626627048133113350816021491718693937400346827281653182174701026541964464459728991046385254451055587749647439741770702285029995203530140892655906466631498454176543764455790594250548763854818468813855919637506531586066126945558087107809512946419715499777521039089936137340860509277811621615673705338841520353191148382230877871347299994542667206695804741391236546806984363830792837714350845670364400461176691236691178488523697003409557130741710887061338766643330916535836156692379942010554221675153350196635005196818868429921129414269096735668483334509613775589873876753675530023078702468034344491597226552269856796210452256309536746374098479590127735773216670527280025246801793555560497024827576975022808979162708898976681307434341912062222037053334926711639877360858801271164202323621713691874952466782774362653897728876968498317457779389780604112376676243254787681048412259223275825273704771428988951916685829700891985765849191095143144086288892223009787681200741067242149517760496091504584368435439296768257928948004380860074051953417571962215867702394551923191038369077453890494196918964624478417765370780415454961156148731040117384414308482198712882100364642633565537692323278132177708082867183941468795162891160461739994772576938972046510282701977091265312804380760346146733830204314314590134152916108660509365967030613557230453811261244408841476022118014599792444385272109262557002080085840562623648169728722684539698325997105063824356439886915688544354246312646497338705250001189750465743716288162760524663589413440936684552403207577690864614896543006334660509294958577490650330204216943285491732894051574138660985036476391102450350605563445885235893857784260251558962648107073801371693914877622922251531818848508589874979973572505461028109338863831471077016397945805054564599460226086608489840026721672399030858859365449474083382999022938126166106558360325254837144314408631446077251387733671758375191899562717770521598399304350853628246930425417090678062765711686728239657925255559056991001468777443108490648595388432833260881678953574269584164809629108857365192375827659039098960158451200750418026724632079872752742600158718988991434922441416936031036606874627374457081190178534702842445247539526649461185858202546153536549151407809408234136359416430688579695375310401763809027461374289938373756637977497056948791193422487006931797312129474432481078611106842605359035458415942582549146361449404719250562336453044540171734221048200042225599933252841313862290217891615032091117340237787259219973770535115550956426344443406866514785910460271553943962337848649000494998426580110044748154558301492875002887093739090506203575288506481732313611049276953234075135114460863357370032428550766215563047492488776927248532164407007588484853464022153821368607237484391646359018057800579998128822983715771147453112205769107908988478270349265327369851302436169379295099238900947134673461327215875864355617268926002554436614550285394968535711152865463345498735281603226106339986678156031721138568885896656563867389360794790938434814202302645279656673091375943915746209550538483868335646156864939644184732733163553759501922919930369733012927710817441480925783980474460041587969956455477609261835567968841918372406359467725362487222620715421735433891142043858120780576136842373509124801579954128169321505558853134719992122896989534261708112962531195449463359312117307775368729494453643474304570009264747581247287223067002628886503931346440239011208395303887511147918509259061730118943224831305488093302555629087169958717976489183882214556451385987889222883163900573940850903167477507541193624409239116513911733080442726398024720188176255765128779214976990702188660089895051549783856897136431186584729896050114228389581839835337547738704506263576633552326684236256270860020333890291253811316607534683607514959128862828259454711068786929567247640527315259391360057104607874714944948064281676917140700810357432920376639282692761922673409167218021422762069754157318767315384476095473488750898374555967044719483070295830273995270749204626619210849633292017371791208320156708402106784203017092353924139998354554575175971102578272774514858900513228311160738984237671914400752239289096261596892960436502621360201250445801757651675320120886517573020977313859574908229109100113060467775730692138981765358163378044423938589660942035483410993897846801834749104432296695802290826719561159836710374423448043717815179290093437441295772621396668880472952115217569255662316492744307313031756651136545437254267304859604994005083871920318602658074279590788488510856778580013657679149452406135133097675920087095627627621085171534015027875430933383584721575692321195137116928415391331523038560539026895623558592836594261342917396026895234453931288168468293380676360346940472365339528167771288044374920727463303503430884117322026634033772591944222628286734569969591644622957169984873299689054511940626303682757173683064688459616372253660685476058915986911776295628005514048540011529601109433216018265692212254047060155466854631924541487886423788524068481754567598215920244687896719409556762138380869016834954125084953618835577165896823889719853580831244304349052846468426364409166740728909391706817792353339980992495099705390283512837511809693262448537140010932430395315724558412633788835589975986834883076359127872144448302060869721607021557699156974116307340080545437579345563886297656242313949362370133257171164705124844825734542560402195881419463300081980338957801876893856861356757117615009929855438389852881458564942744112524308799671161680169645853381045694237944159693750797271569341003952277718048707338397176152820838144897267399680069101360679119827511403446038094543017842927496136541235667204588491881845678297156867610667175236743091594356124183494505272554283673959207408936533024675578582104590401448502211218026986848744951531580301794214255641424645506892532154388070643181177181023669479639582669452663891086744887108958723864188496421715045902652955732803100461900814411324951206146638915777610436597662300667151777951782392845277728283769803923903939490114295962138359453045238425131721681808739183747746425181713778864631835946294038120097116884843658099290196188124044119141669203855589121049788986280360750900407040002557166053634512194808660639171274185476048384939206904745882691195346447998672685892556379260216321662485420211811563647852024899886182398628178098446610754021516622319072468808080026293985941807478628737515379215623162051840136655243740040323927628929342789776353491334086253075794250256218135693154416995878501804089828276835641031956663379275287592542539687889598436537979438484217658681000020803302531287612270130858134992157547636123323638882497354523570904286210581084393718492007432445211748289748712940865296083414702663279950475902024990763661349773715669714368599464487330496374143448818532459351335170925084366322818036954112415367672196879788621476621030322668390349566936775474610651031796596982271481926658093649899540179794487046743366936400023968125248352793298579433348208042144283093379752323071455483750341281959325205858564612239322869800125929514658312166947005135570792664585484863361888072287285941592065607439372420632046662440091877113527133100791800785706414940811062323125348940109272152029670017679470047139392534587271401790305468215323742729101108979876789249452526036338989405517114097944066826510373782384357566311733495192202390506462561080687348169036255214178788722167566179786803175983134239030919310756201718830406971680110234026442142473704231263172821158267973782952561658580284752071975481113076687084906831379862602579133564190221140393990728247559482658914193421045837469217015200034902772231420471326056792684826811905875941783231037919992990511574201329437302053394023344119618009562519894428821690659056952379285200722847623393160600260333041782359941465823490892811671372401113701681893930482203908950508475204050378371887076432638761182278770106318015620135585426400359883311268141547019747751586905324364421927204635907003781937752291406696622662271705687283568104562961989454599929584056010934166849421172401844372750909638372069255028988143796617856793271680333421336920119577979734739389122675068668561764371996864314774407362129920985308484232257338583548742262367041208152472087052332037737578458308059790954966426137078488776825206852691260301939659095383374000556409136621908320252006640396652352403956545233618974067017044463241388296029527027503631776656781422173810115287529986898609999428118951560398434572799138138479368918119868650178951873849718214568652331869625024490007436652450802651418167263023961206548681972313117599721252298103201284529048724712283022408548078219321299743345701323573854975377015373806440334985359415562022135313752523649909357673028765341726395977955902068501982124981468512475852342824717728878497326898855559637156396239139256577304498150958272380588931786417813003149427401095687039973559601652919109217526964584762207330574545709938945028431951410089719146192642071124190775056525721286472992718049147966325181985673349305004347677660389355430765646711851905623874933899710133519222111124262207472518168626046897560549657529186765170688931766360074604048610263473325231661272777682092531746566211566535533895009070436197164416412777810948625852499210406217981831330498916950808313127451576079097507842630382859294852594335829970994529330139699622270262515810569786211744276276971676888380498716667060740367653508897339813226801865345321313466602750021044765963519053887209451294597128776813834580062179731400120240323356739398045032548018871566573921291036144037563405001873613188273819467012257899316057847103464434547492533001798732519616024402954785051388378045332825180132707277140674261014725073616022625944876343109740020562029002505201095572582916125367181449949238377586592183504520502457374962823840153977491314504097485522688634443108001638406100836182427607092703614594727981268180259231277467375966258063267239467007130738316732506229111887672925777601267520864594115991968749614798107084334214045605598178802098386407378607904307463377898676224540123906494472599297088113853151918293000676843003997524184014883798153782114792251859592870222931598108756809752558539465759005317699108472451722146318140027527336418570997715796366980902076034516654244168234127168887366966338352091781232397773572539013474807702652800656222759666966241648494683882072905958046649689505278586173387590542444374498407857919444308714923467985585785937087615305301844446753929429829233943319711903839677561897796881371189635512950533904642628634335742739529472834031600956977647247621716319490496529576950733618355473123755554994631557349973090249333857226007726933076507725979202314090869874571405287133505892751050942862456736399025261408239078523832053106934879729568426277313352023059159160593889882329459266797556299918258886208938596149800639514962308950915228795256988835262936996239744191617298130658817371867685106144591271683364892794645500525591685390416301964993025191848238708690243456323754140232833497985833475798136320924948689369148572330735307569674286358607896663946052235961675903606022356848515599071078117844475151772150566408811863577108876736342973598882570158135386195969631123760355254420991666672005924412973039938293017363290731097782424508426486464380348784291033335039809400451578276868404658613898373963735897694744984406090307308201535797038623097712804952618366018303721196362320038128381749131317293213173288275120362991223218644506340550228506779626710022763173759970574242027127783122216751585247931376816312858200959645659100959418467865531758395488332013440991491221223204654111457790685149459853769213862395301944932052042606376910402211462806348012288911760702231688951768694804454699923952485297385931490558588099640714544597406138659449942432952522778656820106637714024859533511094662030664975040244721117643405090173875721431439980841931349647201306393153121711145809338309362232951808838257333187683724692074552163635445921267472470353945035241623113025312322476413056706397634991687725272757404149408955054164490526768936807264160471914110747052538725315155203260961960057962398282827026721544516063111131067115804369774649833177086699007375114212444988958701937432499192628511434531238227340909278749861002707811045420078393585045954076708981264495581814475635773343055047286005375068635182595418665835830261426311363199073262053853794468927609795807273742738709362020061841603126548277490893876687646503723105157763077459357550062527811460439842628178440050816414782991355416256117048422982135836535485405919488126154804593542119283451489094814133812454783281669868874313990608666883833218346140732528119320543068407437361407633697924483891131359502238074700254900285863707168249970842233578496903153347222533601618344560838001896417978681925421790332483419893828166291756282461216989856565457053413514108924893376088596732141410561937552551802375973588436308211613435135562446057756996835272952030697427491133550255046956209087781442861399533302983811505542090935278991413018539830352849259513366521575729284785728784192965894269994451324465121190487001073403416819882613194255465532295084573110976432919608257685516486192737517757690632378930630223316008583410663418013330832509823027818099495647265646436412521242554709838489871518358717391998383876245444715313870383306872289792704036437446211525913961032155141301136631949090716572117394440021777208725548995283975328888011915577973117494542996697426129961790370196527263196652380107229402106853604053816228400378532570360859345023088175637869072793206851148527638594465506023909385715196688695694218303438330928600745202892442690833056636044901428870097055862661692507804393262247790716817530977544457988715247897267103952350732308158947040692989500250813226316011709574721384567803463188931734574231461975552856251208718082599365755366914453725707853762885140288999077456939546032524612455911644706841011008636784934072583167062696327537459677924931276361619868325333461904380074511543497509920373126894293328472219482149453966178798588603004496613153242014120128313842147137959493298547047746883791432060997876351209564775161787766098236043257662360560280223482623049596768323969593979998801883369265106287424538589404672646990510745275265147584039127077512794156374426158207223652042243827174482560938542348684899365478105465305702317094594730428608401930780555438702742131158633142993163561194198222782430974634580617520743361430098203022669911613841933272029288975206276574745361297929109244379702205077114300674436945673004794075690839051198983115560446112158516373573538738127104726852402662915755366154468139225754171673806237346153808695821048320171822574021158716081357877490551016532784031929662185313774861948056741201129128695981464742768125765630936968976303082239949227316709533312544979656628854187614449489204245488287736674563094222661751050963051201498301334343762650182776871266065795900587481811891325855822663969839367644389958168748640744657007616548158541726670097463140398754131936644237394939343139552703546763565775345255727054960147367570231795225059387668214582663428183249610630627671483425726005331474532296370056444153540699457573930818335395578165978928884344680799672003243330643688842424772420922556598239058967617336665435385515112255728519522919666555665141049128812476865086626308270518142175744121947510578088941098551129572701261417397210634901569059429578821456423496946842371325192503032475034399652313685792056697992059274531149050276476481531577932217042043092688445141082468466221104529775493673508419727356156020531275603710152735463063362155591077305304747431253071929072946781364618228751586362961807539457494906635608439646181483480510801234712995873914506546873179989577257698778142953535477098662068088848446103181043681805294840385966107361079907658876257611043263882467381158595235739135037516609336108159572095511641301818561459886760194848698414915506981868602176895681840061871372031958214422214764649346052405076734990225686308023592998060318395592418905192458675123833238348117528586319726437997772253759868751645525366187526019905971873548235388985725891121795064590863396219187709283007460867762044391901145645242056988221614020971090576775634855140086439559477166734950286750586125004630905148603882784460058504256669168324184507456295169732463597876860276821054783826907926087410057613170282314158726753210079502750431574596317787268320469597216179262239280170494374326151033862141628133098001814936994556499917209554310734155732864959335004087346961517144267942288626264947207294835447084625864873175710347848251632061981111643804197488993823065921241701916341061746507305366267922625455592629093302033575260420504948121155296612529023307034779171049237380137432675256445423875165484317395888555737456980649353838159320505221785016492662760757765446573311584979077798704983138502504787127153246738729083134761058993463417583565855687287408735039709940358615657028844394581464980627993130236460522089799941082174291783374835162272351237147467185225702038753806038905529147943804786804370176251779033777611456748353562516156361610257770922237954677436735274867970927473720157913483265490122648272665898490565729785049490940297724178813918324843325428288366729085667509301148594194350098077839669091222200950660076238812388499320370407713866105667072066604825433340641739096030636980989063375661218074221351127326478858073962391366225100513359959917480077057872537955588382143860933692900529907507633938202650639578048970713612597884230407974029271336009086619238750046314524357091395000151624510498609746107456508002053793460742835742688086178295594060631259340172309525637010809339475811095698884879867989003968209297765066928199435581502211020273614049787203846979294462866968871492412143348280685384799717207938823076983673902099464225332048780757980456290909600637333235655030346458503994005481274039264365265112874695760600861387525635318238349893245020277118341934954801582472570109785267973208880526001277841246614616285999943156523231137609529514890233146833264953871208100403408803274153187365229021305063475227002288598365466726283684811437504074750698077144753446073757744777244043747143824098342828825553750495808159059848720129459051469472748972024065009345157345718400634694401647222923931498332248635801759648654635629065272026641065133558177045418714728209011053328161746560323894223278504340523431844855434609683471895572782394101584797649594786459826595337156939493372325261423333999253843042243885626321648683813577777444300408491959443713841864230966391402385015621926892866762331349846978458003826835397006421917313147683021739604620497917719544432141280657256960822321158342611942164023384806565827848305750217419555924079295435601536288253793420255823225339108567275584725058418224000667080926104066666914929864696148454634001213925010069731581909533537611962084709813951092225433227160927433965668190078059164244247541709212251964906575363144685479649146637334127385280096387674573159804521842340295140512630599655509127341058195572026156752590422150114737183622507994980692119522789582980895325517268196278127052146053907566383147061485490404040515283771429576952012474660781384194016893645718645986067174375753864570084536842290071943620348003313169895721083854499167451561825680481933383833666223579323048619409850215853338122995059205197053316757945268616257617882627095570851708953268745168419536962634945791708466109418204710642454271660664085444394529673238928432661154192097129115594895649978474372186086999290639288866739951816808012111896437798591538402228758740469154940232934215305663839700710397050996553368611705492426266377106770644522841540460871589443978192871136844732316071333873921766660625902567543486914571633270357535308467362288150741861684049434993971895128114367239860183283986447787111542213368090439113463486905408181556838333390651098953628882514582348829802939876519402486081492064327356051633483182063028376268385460567299129457802746552939650561851015493060386496185866775303723551220843966655191319238314197104627753775548958697362091592888769249995931834381694760013962951936683249893639217910968449300435500824523569070330017206602179866586921266047383440306223452325524640291458250515148674653399616529714799915311594794177135901737463962780151163772062209945037466945114655396958432714661215040649198593957781724048030654507687592707736829160052028758219065199771766667213410332338944046929278202912492651454485803755052154731959139946671408106157542541209303159887337916332407227954223662252226949515531662287762303813684834935932512006580764020316026824531595041364390945870419362191789712248442088838506067257510488846453965673240998864876582627060643320786865532002642946080317160163251406149929909368510286800041287184412673279156209014736547450122532817297953021413453603173113760568145209452224159244330553966044354988515218133411661148992928913667114200497425872015158611329468045480328561352490969078091624651248410424416389603807402784517614598050775727179725927389354421629869007756691522635590603546613014844056474744527103890874642475258698060905569719319280412893803122142490167168271895119172817295521282084918724105494663600311084439068397689426058021311647870864807505119465086186802358322286956119127618771662813483323698239751663418180206833428841028270726165691429618628851830826165410665886392870024669983294399987643100213248842150438120441006585402659730835591428787288649976065701556499976259883416621582011828799557598040895977091349365440210286091146155963314228171174906000007968298991645291423171987447880487648299946093664384401270522778775369986688207576666521321253073426552078036404047064358122181828554332283640461994728083655176351460351815515273453939372563625032869319560575307931024128672971884346009677590954241523561716354933977204752054299270532745479617900137528260571069921551259635156473533693945693920598565615414764897778175597381831481680425732725741507612441274407392065736548894355587065892315526753826735621962002568666970779277816825792705772890042918942595407453862428663250149107594566494201322085688783199637689437947395072091945337238932475160896015239712621687391938885791211785629966737946028285754491228486983965482290220563985912057525592642002418190101511402198559159553983451257283626279223179877836619007962180669511477242000763580526210517558795864338829519674593006076573521573787545359215584716627520698699644915992424417175251818439347730205730133827440194368626994808430480864487140307099060963176248126975772439439957615061740029227794904798975586170263923047422118568980002602914124101140399765219934762062973526711623935321824986908674701940872198426935712290773724439255789449205846891787033392851356121353805463769389433218812943841575634179119769674294736894803246085573521852276726150587285928095108387884480387853515375983703605920410173384533321369232991975755841127926408076879331867704311496760755602185331440277175169328923811380388944887800582605949867911405093454792755832371437587533344581573319014384174412906390074417006099187131644639790729148262606382453969166366298598701125205715840931966550370447512731203783328023558342408070712417755047563650655827422972191846216277897808729283707127495672892276530279593573462298846798801945220661913695214320428826497376598240494658174254761499136602474928493898800799137032755267169971087062289867823330273991008171997793832589220494450166860839188248982804344560263870163716735667470273490319192485266521290391425905470028356433889462586999701988821366306568877105207311317010003236134963688213828040039841080262133106780415346041605292656657553171171300785982552415189755850953494053342641233265260669887388115877520704455426664856989063371833101161512221163246261407812147716124453649773929884326722020205696029103533688366713127933655738021799264152819335956634011824277745680157589765594777639098478772038158428877096473455542802715182679959739991719738194345692583988092399127788281606594694635934501012544638015660213806034059925788517014019207588861150325170982607276131181970457076467245613201188588884258499519975437331967932605240285392323399850255224496742509579236828119576010248012588616052090282338481363757157493064096741979443405126851015324617113723351932072104130877510195789892014137903862617954351599960428152164253208602064026334705302924841764296648457052916425301481440463245751349473006519673695964971824838798890355916882569643054077914005020098627868748992647681209148990020918399111515568059239333123879888330001030689118459661513419434809772155184494816081268394110962056899179168199951708692344227387937983045803292789619215258994087884332282731200928236656214977376974449487706600153265677049040109517596617550516006709732147053537770402097678281741824099121645386094041635474223066742249652192253130737854293207833142085153216379091798346050686174375487082052934088509023626543211834108850254126131828022930820460931801720778098691123643169494025460707160217906035331871909221691515791019415236940942521856228468733548840143037378592631121793604810272220200306464652532655618634467139227088678563650794176035716869297320249364311193052246696737244458983417241111525398784520473828080939609941748292084764266648615133773262329795624438297528635049218708816814903186191052622519610248753628696296777366010623002797251372317962316443612667472544347420309272530763243374889408799168644319454763751100447389139245342979892223214355867096764512459398922059321779500189753908603739186338643367671551457917433153762658449867039207323802204898766973022899845393746106818285835043085159828159612176273690323915826777285878824999814510379790984087209787685700311790180259426788793382884464956680009054692201374831031652323692894989216643002642831818323771114843869356406884240116634015638925574190867540160218457371748028276676637290194516588751702104468975935763197643595434329515754045920436912376945694004041411070066489289237224240233701206735790624921464641690889851664287253228036276613020382750542743376176249521973726697149156219115044515919722425291174237925610873474614642670424138051601438176015629890387058045269184029232980063185242402282146385297002989942030858703867404129767169147500182716201365177893119601396557005166206733305758618257405506091882510870545194587295266602585695954863808830899621714654856440702369742931524476532700488241654302679497341119741367720168025483308606087732720089960565926931308821338541000255753175197554456585705952120258085408396679510571648503017171223390860014209353726648001486915423042812818368258636531723220290452261295554599302889327877240482894402809970617102193909327471044052376399599055320707491987078137281583495526620745394429339793863532361728674838197300270733939461635827536599154853771016719018403170405676513191594123539517393208711619529401631050058713179665291816404602793330469407570882760354734171949390485175875246246472244733590393739385686933822094188609386033235495821153764917843872551377449214462931374261919963827711534197114491561951289889821728781208478060444352867071416554715298054907526837758565256666957482051403836714132073915655020783747853256358982673642196173900723185795332980610461662702277913245028275372499685079172561359920517660738409114520221550316020332315479904970153016500722883437114837286208113375464646150766293365360481128604820325017838357742951582254626856028763012586485052175070987893971592658916533571851939304411681091059715723825991987087358267533730025358516080967536763618862693560517133728644097452582272523819767203403843321788415039094778500658619672679632794458953663485356857823926456847732168539790398339935260700610309402109846719608064912325314866856383818548612360226925309261678359122869988401254912482444533764639845457800455147857934374166064797538448730880588679438801022807987369481962973724814329226899842500487205461848320257480290003942422454341690431309932212588632625965644956976144208311515309273696361563797223362512380602352840748535553544680875285652046267877108385871894821508632104145485427697400770076291267047458816747836833997666284482962844458228306370982681165681910959292443042047740538255895281375373460011234079987709111302407882898617045300271835698641691996859624635332328424444702135422290398478365379601121129465133427590107145179207957908900789050966142299854958782159937380405864106643290534322637477941787512294761940603248591698847267011180485422574851348773225663223766736650570634576934144314824848199525705274815131394766189983345248110628937726898034147678048843898806392308366682833765010027245957899094180769011638485471433783727210764113588238555017150081058719204017818428986706777215649477864659436051057954049088017139410897435360840560281344900832497471655128651583537564427721815054685102915497491946931820567424818184152296134017076326721582352746333567218496401366580285634713229565481260177454166269299817208616437976438565143344044083627478673978005966371899956685028618841349180171102156510689886215875869471352482764457792303528984488102696531643627643809041330442200124657186800157202147130584712879651656139129923214220843029272049134828566897046156031850368132602183738150210181780444843200582910442169084491397930645817740386759184008391269659596377892438974412989797661482159052239507220559114618595014653740942741552039679085307365897024844977168892278683152068000588601760913796249148030040366918314729901583519828658320425809419116711358963347642094530748440997483108415475396148962254300796539427784574875737084859153700430841001648898609365476432156525044150097958183664920013780927622411544235985728320191001936478616658651474042907855081466211850454015879203489869304094549863489455133938724434902501759353341294231671938139375665150142856119397336694809215781715531853265472698746965060780928589502832133725939185574287341863390746857598056536984055697672581519621484291278629728236478873288113089827209438600050208254727692938769233850645697952938452081052766380894433100035889343865361996933789969942275058215459570103273443956432140016486565806061542441754574074989787736057996160300407717888728781279451367542378156065624275868854297473493389492823197202636644147459291875258741324130128187048778087230414294167167775203151939478508753048767702956291516834090816727314277045397627027858164115105161598113732670396417147134509087046116924182341684992616884631321454239942965607944420069940573822153789200275102912079544312802123216120331038269204258462620102790732474687214571714656906583311648580577080808086765718975948020453828376938425312189326131961661102833338644081820363435747196508599625740284166825385485756479804453650595962771155494980053340373468024065712550175673420341267632703522448898583968462773485568667443859273575880656000863940279450266369392524215453736233866465724545118483604289922350056994846690271713155735134066694723386418558551121278756601923214687243989177952733947239051632776123519548141512457362547911552936076443576444826131196079061940379875905550590968984356902166621744630559727174672174480673536564220175175400253474104533827407386492279074702751458829358634653513926670784321651797086408102414954031267410521235720538373474737509440776717568062098712207937746656473469417175905438961606423422194345126204134060411281371759248879181001087113683832800285896978518911248064734525945473264186302970096555516267834467556675576999708678791019519319185102245124279892922998557169976243960558157300398704468292034100272351412590740140540509489934892590095413288501456750925576243504020346703609864914351932134165897373736933465234274154442363862496999140561316697112991274522446341048668341992822044397904420531311206041632132740031639021633404689600657031791943442082526457615865115632689470269603278867901013973214934330636696003714295712857547030447266916803369839241395622985713578662940077532018470908054193094714517623950145534688798105492392485600541431910410700046743288309670526130464050100600354622715977735628784185444650401804011369409814753395336418034508511074963596729043809155175237331910844342923378045052985335698696620954252331327289476495330835410381271188270246121216768252817154805359833850552722155244711612940055777456530647033667148637058726764793624741339556219190352498752724713146266419128426761480209138963505051219042303903649969925304646745117771188058764286154145825318681721434451959615920506338898109774581308767990391850350770962623706393319000077546797175862081241637549559014347505380273560123173569026782151046362062271314773348970149012642473765981550602024841931672793573482762133831465514635476440809466498547400363294358496278889139432496622957977278219409407935156735330676331510203667086180108982403602314112601579865328359089656345732744478234340455819907319976583400042949826905820058793370237152565210473551403992662107512220130444685720707687609690303025002293176537703847094330976522300884139083330912395242858886227647778327965289970223944808897249908210835606295983039763421356668125351097898703235031338369629437131320286833110147964204266144793912415630874987440037782118773851079341775766477182039566929959248946837428285267367183493906791533209387338084825151385183785464328991383742680343242379247807587072760572845022112142882457427670860677381844108446673295962949811064843546287421104459847357934243437400165764485891378017868467796096929841987031600394725745643473379567578404114355805764178856181463272189333729637600293074531108818636424324691109537988979458331628039022396402814389602015418047404714621250119739184695824595956331246269123242276353385685507359232065149062690671475046590933622780869612469594418835414050720407755168896415842487119192309373332767442875400772803788605868081672177193779369035323017805585558881771759232556595088403538144492652812837442366865358227250681331957933796194032059830688216944695008189814551274378253670713858634253056759254064812020098141905857616121099806155620433578727291681949976460075571267577845013550385953918508686422433202304210233088537385796833701632480589721384649076815806403868358545500750077444300745863526375237592024277016120530668688142633098315902505144797284024805587372633221403280394200407691582799250448378738578786997710925433293808323021686386022632888101848732532862710554577497929851616560742459031677681534154773993462511316616630083068889778952142062869341936693900493976529157636682706027379508198052109714261139599540809740234735630356248828020286990447105647878722692015194464507646490169900750851623847154980734140419685951649655683860038752323371319205903970124494739379769899549257847281526781789895536479056425949644641576483069907470052961908735202846272032066626755293848367112476525290167977438225031244778555434996526278501900824109330068326023723895933043834080919193863448690780996880693430058745324869280280300268962498912121589671179473706334486780723347636967828819546087159383135716877626269388713777615288454255644748734508517802840472358697337779066236788925643514460102188896029158374824010061198399666859471466451775260532583890127771241120875907259951019256096733125499735827004325544033323995331926536277265919797004983956926989566199418232113648670637429129838383338374968769417568101627748101304387394207547080926201370381568050194526704508207356348447007439912818009259309013182144449755035333492018683239546131202218109398667718597844060864063231346752915476575596741663264855398356044528530163436633458478686764495387948531916074543975674102510451758854093644015035123226291668524862338564766100538250915224008208934267038316373011571828265353003504966670567509136224965537958623130535147444882409317358189004180778700950358774919937358121631217634077113798513564351549729852319334269616352350573592672385115648971988127708540230640919640226473161082300755737270744252180852593894433444664141036040514334371102577551938892112691512084576299642006166824747154925783420435458231449822363759982766762586113534793429823050119758099331391717386632757809586732764660263893931413909379568964208283741979757999476410903519902002401089025038471875980720757650739819163527060909273294481295199318065224238378737915015009464394014136605736579165790009613997503011249589156888459859522447667390871104089910372881362024097880124062669731363425086247687775662946876983432072138883105796269406380283946171508545403813687069872284323604848773386227742975267964877708461316269054185432148076663818898357891768400571349044590348670726029546476848938058322659944961033902721102213060345577182862440272930904679270661830101023099397145630903069314657866410488039876979598212384505110280277713732779150340651161909151951057034900897080682197620054862817026890289904162556029908734002141639307563916785091193596235152018932770286247334452522119996809478273729764967945106649826617808604314976483937840916916199455949210134629403438920730704391370813592813506570733827689084272869227423908391092638756211101015534305551490048790219505748806256185889596458081809325323869640189285300420390586559943374971015064425524233283131694733238696597489794203592881780401406618656437397737721467619004601302651135945008529678969713597838875028408618041983426353212081880972913226339299470400038761037910984994030423144815274331652571699563082628796032932119732238916469407206676529423960773449367727301999750676160809102175636260500319304757031057031214843453017126434071367542804651905190913515824959977063952572573079028848612352877527055758541091793333835008914092845687326357394154655227829795078883976563898505058617409053262576011171896168850421887383514584432600641463430377136052736673229505221425331978493830470349488190562348262028294929268179031194988896412638340730086771107661129620419023127828184379718714162325860516744854061951511264226335010930856985719437410417451814908513452962303878390843512146693573948521988909676309987377758579237936379735740075964119227136799419358611111896066981156688919808584914690518166287555641075409033074998577857141548295553120679754231447109997670002748862693645594974560211268778851267618978406153900972065956041650965177169865928936765296784263070165055638262977069878004640574266369345054582514943266228437037281147596877021826364318511615592500340131991952169357801910951126080680507011594533886423520887750064463081243989170052870562826998218129683992335797599053983036138683382685987172130828536103147495479750499483388174650798381914254202718580000558550197415599772463647490699528824429927189097565672595140044980706821884863139217474638451698704299567546290186068295711416822964036402413689067290464428077513533833843583089047084049665582831616265591682444558789789813172668800729489783250326602603613823617723300286942406031967361102420926803209347725542581049272731552642622689400780052215059218088316869648607791234404170795826303323155277660733522504549078799955520337373667059448425949338289872303608137547671313972059559788439404097564576499258683151266624206961613261888035627651400213535927828650256564571481828612578635090856314022853002748250371304195654525965225942877147202938604730504427913274132849146920645604161429558375950682756991497236807899234919514258012588262647308624406539085749984906244671099284232037817752732464463947574294855945542685902936222426352450062052030048516328123447495444992450514703132945686632729299347794722067560957558580883573817448965976171239394245811487061243996708086867646967858712455714741214520488424862469058864628932760846521424456356404616113262643431732369502538519192511363335617983474589293278524581749258773631443079635804568613422758601844824115658448376462517607404448213762723471978185262774823715636663205647623551834283488835154796664732304828693943098962043256591636673524586932815457972522702755945424091276765970707216031714361753502604494678781754543089394096146545672019769062380781289957528179350017039703253665359058114708902223745238053517683580476904175303266963183083222195822175338347567722198253645954416097446822439677858518448591671625432365527505016319160004769262437074309558028598030425356330072249879769452881264008914434705288645791969949171432252794340767981617179484270431744515178638575901256947030806437365885547916594331100031199747099264992547157270928846006604358104756691344673036723975686629301707384038597108884712177916997740235899955021446015543581516490927523488213240530468159252901823474213399957720822912965262792323017673303533871019539446665261955171231377761329467114921963570284891173404738602683327763103366035658085335042966257397962299505881379104948737789652081366213918163559244575967886998632746035447332502542258418198615295007811663503814622874670558114582653705158022423195464784832666907497165233921355766835315056939532008208754100434478956642826972917410681603447047564450756984584142638199094076846168622900259269974613017553932830383590647593157416090755924565652056495466199469727906191120352697502966660660549124723383247956603186157625232714561069879211452680813850040427532701940014128866435795392709552203589360184994658677361357890930727192313248667715299638430485079572790693017829036101836239673246475378090047593457830991026288968454511908613129660612400470196199783414041931685327395261519741949987305111888064982644754213261494737215974666865916081384736128406577634272239973223396139347375497178655184014419245931921420577853198064399313139548073961551225312220025387338865816027512018194552281551113536409895027771719175551720306722546751638211660420534782946662814062216312729244340625178573447075743502352340504098414118811777462279237421256557534917053132671157064035796288383395069417418510155172776744965761087697008607636892561930244185986116543051130094762476752898852497717656799306218817407643142302495938221187647649478320233922343314581220958091666243491424701700756885398833778218445088603954945737681816156107852829091115467158775288851923328272699123007756644772027107169062730305378476824629632644493168412896165972076543203912893494786922922268976404035883064154059299898217310731948358915047750487862320426311209113300289595896449508728159987058382401994931628670243954212736593355196749390974959796755434503039960177362242983085964296126683128985006221456136666842915450780146146715280513314255307313498782475828825784313613954457727486038539434007865794647175301028703147938563522667366724470208761239302496148254147917914760359396471169094678027455978731778534170177931122208723919114171404689871580307170953885363604908697955273129327407688992581484934754312414758258979213561912201928298087655930746873227306903795742230873300018582847342466873807350405682542735714017046571884743462052045829439317654092680131619543760476589591398677174409378992339325431093467660639380924529015012414960716324639087312732524394445764471217174586105029185469257952821078790796878414407201488452904250982539897189752436464473633756752175946367119558752867836249348930571845427501618796607485636890993903005035491436531926801461607712224248273115981717454295214302400051146347210390648861496104866239986583895573425197451168516659093107729251185594441419155157475210730625656835127402303948878886138510817170751404833964553699483686976599328291237445025652567689592527303557744425970891924329174252220662250644115701568690208985042122023651918378221596373506898858112282316203487077397290563617382004499735688967296761300285523871712993735479117635956350501494711913205344078944629037014649582186181018454818399609721440231530874810397050536863076054866203796043261650433354912017478646101203342880649817489893819533079279335832880340976501692412045295606238497385667561889502854369479361100243187508990017063572825924878247816440740538107908858178039642665209062238915790879272904215905707796710785884469781388473254593537810302290336576963688732621451630234308139889894958395640820917747564544882021052189567282120083811514124857101346371481031155624425597829195916582584701224354405131765332800877778272358607637567652155686709831975893351506493562596925159864453016299183953705454094647327044070928324057380426534749024407965806037734486709269951756094283012437104823552669652372679948093529033423626399038198013714861761762215039870583189774044975333128052310575694502331833866996688462747704989476626472923663519375894676335993661597506667281540256743768691482062491679274596924912264986242241819396327833538234959555140789924581605608835049795931349016953388317132255817516017910342419057440505304365255277329093059294284895891537079641602317366629913889991423436813033378131780443592228106665679391363991114147410195720117875210150731344571967323708260949993672358865919283346489197331649134192423627807945277486163440280398757029166357425475868421760694652729567468796381392361084232192968438939515036075724942954446767818642080355506919017641118170006081296903445031024046853450497977602332516447537686586060521709911244646368978768104305153933443418027596052491081031991537888722424865219264093031854716673327603671885169495030455234945329492469185161695515249253024218027156049661700690095659256447538225821241413684714412963199284464110949070176077662442675666985401009189779290315449376967317135195565258560330169552192086179110885569867936199541876469841020249782745056053656839158683622274938945242991640403418911358217306065530050691027347086539174686329426777162817376174287668257459097603872404072825879750008935995525329870918501661340756143724496827110378511542880931469817969512217702968120436942711126363802211137113438933718850620767080122805575876582218418359424601923828287278848867456245728670421772151102905682854559340120276391862811967625738780005576747890482067309609223956396056248530398035092240633850337987883131317902296388545388468683117145685654099658701510454301918621648297256934585299870939387137528388941239174895831160489589552500284496409943807922775246389051195087197710920566878317258647911063197582788775885430476363087728690821015570829736901583622396535044309341699133807107064524301237248848161827455055231137974721693431378013253800163192212217049342328198628301332593686966189413768560839959573456428109990000005620708121004735927005617489538288217344739409212710706968945773416067918280930827449573920517240286492513182520914136547385686351805290391502261861111135221161646768390578217070030406714850258278194836326062686347206267134169521261762091715745136817881020109428671453201668467519083723825463273497000362204978376942365063658174810791093089177444805070179008363798443098306388566085153294725005028777455959166933212390745950076235436490735299787485959048262682476728449450597656665848353028989516422702600922427333367622285951759064969356367325312558990882905385767662494100583489303333549629942917393592551261393968182581519328816576707778992854157122182222341128429018955476126565749906556435629985106879313538905190333057596214069121205173984489183522739791842815399895905186341158712176893165966794619120841923612081233239751865251981237590102476185493767112183188106818207545753881843785770124345014951574904618587998804809951939752861306477963750806094544335612499942968358964116289650577953419974035397781838081767983448844606346940082884477851626563487304720140328464453482131224724626260142537361782905295130003727663225321960364439207857830837913861828175177841079920566278958890875916953285118757913441481559261392319233865583389136937656527093570528212669762072759320596692460214294570486909626555548333074125255378547615928991252632438079459978824454522077898895507072874100549078421702806775833744037976494330184295485936610331105809582748344668911171784472549495345130674371679094781652172469864133073102507310283403394712677782345258881812972514482405847189109422885096508830683536951623691033423243234636588296158604681933871926079942376499350837000768739625334084807703817020995709284645976132596278212755988186576332068334115974383411461504141437095920659430213306378428886573614078477177649684161763115635440081503979043247433070333605323965667379018908405725296481809809181309951767063321065580392476293495564315222823621616569728751193817890519979014813915766926877959626070492920745595301442632303791018879170489320016814621211892791185933964532818355165306051797959471899106293926131281961889186471814559307928496225890569686334431910651884133219556712590425157468888775872993098157807287868836665041844704009929249145505211081030997348747884913502428633829095175631506584707964577668797450278409167135964303200374550750335729205387402732975777776737812874832113246226675499925647336603435255576832068891377874323400424295489267292390538948339672925893528417055108905098512163473144649033649171563433127371898828779146157182196511563845034255016537157311478664500904671155645599326486006570396146936790819510296857026520015892379120033901059399803745284324714918590989722882571316240957674125138348724282166445133294392230499565579697055735584048375343962956866510773201061627062734088325805899736606166377531714691860804292868217078114054455276210439128675114577243270816749053174105368821286479645720398393997944409974780656484014982802730078055945187151233478197965719338622400505778585161238538699161892872808361207573554794284465362257089206696881423196087326947496867985816214765425957585731792341896318448430093772302767453501992071666198926823127651586602557410275627161880389506465968762384601449076796872963112564500706055296700029550992183058109485646996536772458694591483891096756578440453809730188946596562451121574600178241476356586007398028593015378017185194621020318348941611048002354475248437405446038400785737917958459881966305948831671131937895332532122344988656877119712913719429793936531771151773418601699743128591667314754614291491820377717561232445647172590933262203146447648432498117565775111003688369047943477944112725891705476774528830342773341444194770078512862621760570364254623907167810571731913444043893826005336753465379937302816118425490270232470136661947075022139597935687773704607375445217379567273882397113566804668339279870045062115327545220140903595595761140162497437619622464713170103430034972949844787536370257478269206632247816282940905699851110962547325517966131898967008550973302013698342524830893503686952481487834658299690933457071336841514250554788316902328337011491850712729704956756709883773235434204249381556679592494874631128934117137307371404967532784459385395707513858739025681300800185436941855448533005506017935998127916892587247757014593619413614772613499477582712629394240967608149366912017526251693558837969041395458513927212955535006416389836663398533405424593217958071286145655385971062314455344387502259674036986341025130915048504090254895260612516763315562719052975334837432980224858652853872172411471064126708417322702756695712031798503746459476430401303621104820532588768399501170063205193299162745310464870265785943818845554666338472101805431192567466163797305441974111803882893200311318608420583579174114581031134499985513993446469655539899219939257393856580708504879552603839142215552163461489939025283815317101190039381611259146754042374414113752197174930811250394281019680727692502136672061326511929048784338835918476483541438806702547430020443087003339233752585301166497435398850239273085322621572180933929632836095121159844689975023291667040082554205827521476828184936956920447470728769109536759895424947229052494107216861915838588270489825207914442828566653665482795160551685015207466953824636042884970292308202166080421150302872301426145186822107095920439678793468872932914568433380939404921462321225497243003237207430842138823260033660146125294198450132408692715556276933758169464927872615131972362028974848614746712172560385927664908973084326360003701797546737123060022256211800629572532588076861521443055065022871975968621603377592830390085427410583874577935775216490866691565216946767902792646044159444860070351735552736280062851012840665591965245909010940133972097366898957950391141441651543835586409741870157597471443397277037672176833639903053391813389617995881049428087403064648217625287497839055804278143576501348500802948852341188518158092807588250007760834595381000507089954593959284926492045841531964629413574901216592294662011670097080156737191494322416054672715023094377437998545982338822310550791604769234093418142567694353969621530622508009766960043289459740292451346172338468014578376989854561352032515725465172864799751796801880853024288190625589458301864839378943975108366983203467047913431347956131168245739460571485946571647866882234327804646121300716120714600380378619131259169281779797181309512957060043874950896343658314796808548132696715221012111822294586105597675268064799849733499629201489973231890383330020597683706140262181752790259748432089022007434770530901424774311664271949230387840041485626707813540180887894146728306019328243852524197538245460212275745203280473960239157264709000575374598246914586915866079727526938208123714642784176440898866147948512811486630016264262206787544676482483439744494482430185265800012363214883867368357839567035782208205840325746801568335838755762175049700908133814559843227337357442401903413119442073826180805940616088432873954685934667778332784616181519227766511389276046871072811110653623813730658936214100413246656032201017664930233229510969402000415364598741834528815879860092616532662461072414064339108709292102485761529811403793868455663969234004272248341364416865123817560650366399530678396472077856628748882888177064936674273978029614512316244615337598758256206888108955594368932993701610719373298270243887119453968873020395179905659448989101734737307453977746512987593312707150408783651285392678554921909114735079074018672127706787270853722253479895722230576428742821180308396860994380522227558212267462983545687403912902914182599168326499442120954123660595862315987577823565683862720895529707140607465464328856117571570318717716669200640447913189816939554536843597832780472703379056870400178871866388875612366414293762631364550517001990308887721011865556167439464004023168295456545152609551921969430733181711159927190238658147945116431458625769673544205264223736758362660506010214058190585769130199119619225593305136074295331946600525306509573306288467024297949050687280103802615586657835892618646546828410536964015557748689501807378586164113838379255015440903918432994159734025789635526774122774535045564685900898179713773923219997278831893691156190491618725578231898809742707885197688907561797030705608392578965686395618286045872910641028951768178308090133860803693710686380421537715626455173640154412269936282382753649405440073141607950581579709178619541370692088373110179804433876722627987347102439398106052795804668616718832176023957965003590656211127446201758715054003706391700491727943494238957726258303091329769089030082107588776302066034544120838564880938100256283032299017871335128582650805061854239491099672132172891025363107287298611109653668583184813376785598632509894036901526258325758927285578403358833981707108759185372246953227313352042933663749139337093794860892978707565017181556264950474653499870883641795939178540960033688023084342230877758037548395327418227597631044967019851127580524649166982525581114773262211623391223854651463768555698398236418172603808135736062614659789527456243464887705938691738662521495535165583026653798124628068125911020116484652262454925353995799787447246206476976540517434053881704952936895702268759668335559586246525411668673714416120929192996426641934213394747761704850845495316508649791580563606235398358985004741708264070999365740764673641466728396054573460845482321898776554170533572686493167919248377774301856543351324966052666516271864649395643091419605494401114969679308539814962310579699604111569885955130741556871278145803183714000349570736537859473321091399629531119314326507102627626766294352851032170498604393648931714167294979860296288526216387785775200332830970998057391884039414524051891160915224968930690359806424632430153719194440450983285840896923556210905621349557821528941839143642618264595684111434844568782635489027298488217040032390747766050512256251560052696245869657415618058193254464693597490979029257303795478470833566098830186791930689272050892637146088931822583970083083824198009541266988849430632293477929890569951205542706222649996502437042942128348227474418040834716685417190426432899395456663170442206225634437605392982319610681359484568648283513503518493411765999058259260419291157170780024691197867230796977621955843115206984592599704093808718057695780748878354982026917448966825122431363526232215067693560257271819602312584478764781740101305749005529204741152519331974119201836564584084190642036417525101916568804345779711174361753221451384265792932985246261393535674367068097211808108620299658125176862255605373300568250303567912135447786304386105181137757905818742488194760847694259980962356622993375212575989172174291084241292628545708653194926514292934490786472625712528068416252621394160685345993944229622214531993613046772832750782840858067235528925274958435297182064183129561641709102584662450032110931917757216449862847029982400071638846187553247324235197668650845937632536499732775929440196981722419294719861836119055625486188111366217845034559575988195308944286106893805578702134859893624880496784566199101544042844216332735578380168490229338961450202958997509874851938448972631705546572943617822192674216168709898727655426679850966527380059292774177255486117639329528364822709108914501919604609283693385791408162483794274594648189277530742194951726124829160436683494555093867272088458892342413202575653894905033974599134265656480614755457093174088001478265511188257579591018736560623843502528776057619435980197792757973785665927551378596893107753259663436904858890641138103357543809781782980714185994737523909300458887834575006866242044251592362808659067234438940265587748617393144039333299501907524149902620163887090228820439732151383132836665862257434726388309748196832618097794866829684476714567442403237828588258302704633953820882020402049228249364193174771190754023094055388169754095596333950996358021244805021708232145727500246471232512122624683602764543262122785082821117137112187972848714791355554449837585040109504785713865247179083467654720521220198287249421807607403404767647854563184259749346065247721728995024443332420476504424645365675838651555074392842339940102246470086436916416002402055569521906525548129669653567190988766583575033506141982862773706846125405325099640605497525367956974067663566439276191181932061002029148572074002392825944917437820894742799265117893039896712382998398683872840360156676165657560050517311715716041889171932033283853848623589324688443929462516328157883477612817596192449803503069045146193894863765393091015094515385526208482466518804054903574041326113910508243459448291989902466292324013244560556645348115419872874577416230942749047017356782919448434445368663421734906590488733122835944793842593585202809972984869855495659075632075358877577947284992760341167767396320559106486077559250959398455331885957127626628980857471733591322573745281887815135187740116194230405601216427796283517730218720146606252966840021426154039053344265899452662489263812219425113053129261476067805614443232789019412567727884587814328541558567912477503218138449336930217162376312868683553569409036982517729652991808077659523882755100621886818667077463198763848288037675207713562736838005994422708640760546785799787484699988890955873733845523499531314058758336115644909418169028934718618327070157692032412533097839977835401915519116487263729817778502102491455918202711731723889690365274849475033263056278192220704015293244212909005398519544732624988646683711419683259262133002666871461002192317404352886563708081083892328862264626471227817759153836171879705350269458172330720513941096426735426016562128454712720343131437783865462020393315509087952042962247746131125036589491986902830210410959419953303764859764725699212479333631819656903461202225144879459819349285796875264462056996917127609957540118460558377252099442093915899694269807369294529715950181884861436601299900550596148908235282278893324943694589169157652378306479053654203105511157154865493453071604733471681142380872755355797085185267325195521972449707802751895750871789185353958777971560345058046425682441394600653377441201815971554857463800669793002811633742850197952604555242229355471892786118337871554266405656235855323032582076131905716082909751667163292857023125851300401954387192686655742391867010180397524983892468260580206788713970668151146892216775618483734620569084087361587047942974997214363720051996877443695691682666721818807747299159758857561209102581854355077410703364109068362654119882790638759105313931312605027020400801964566362982286680447803292161050308014732808925699845561155692175001812944867988425802555079141639727313349078406965093702119958931476085421019191727457789874599447726635137606717495551277727234649338049634319124484189818840050834043658491118831984839667460842674164027033609615719007731849771763521068780184113203338032739028076733698591947651162950143644760677501753659035429296362721766428089488217900157587091288993571338408534927810864770048682684644178825027322971931175992330287111047270984102752301790771404787236843259125161989708361372901083935514175785448189466152312767531740473851924786176490551571994528726393763949542360102107951945803107678772562238085441500935986780230460428970511224078887546216841273325981118012359603282592849530921724701561158495751936042731906395401441392490570315110700442156025577246180394178822864909089757144817652623499730306653093206063861350414777858559276872329959853745140840901063832735766469833660191283836067358119319766771853957498768657427259688741268485611680044137220932489068698924735116100557175802948232663943865894284861113062450012207445332771592008082766400565454096670134591679742566549783466525405309714160348690703179474905840593840914912515051641409314244812997476034761323177494263447496243401970335358226659125892645671962409294836124925058121247344161316537147408613531834837183367393466674827862541172271650793530892170530317897448924644864067482339117774666728673444213602543742103833995192764823615834911688021301411928292060799110344810809193204617645107405792139848985072933127225691583479477368710901909026668925758336924092601843974130076542561471353237116269378618429536106219393407771970885472779572474110466622560506561945217279404251024476826254332566074323984285199222273115469577332826649322273926693654798521102247876630263331712277263114086768239774949307310561516922267726002344896463084044685297272382739489910598244479764913991429971780048172460471220185573927492983810597978439192396886953837642837466071654443712736318166759871238256577351143051329238026314792448171414434309379485869125360411152845836677786599333922287507505204263160989782220400228620014312984262765703944877346986608572844992879552536245083038143614696204636616970223577406523936490613601059999011705994698440778156785777895776816039591512053738217512322142071903857124937416485945779102080343111211081784977451130495034541922702285011682668656891883152931144025162809811613365115574421504565322999831903113678976408380568881797856824338407234556994020158288447341572819270202334877299210251620270615835660364694867338654209543017806769740039881120312725650614626490285560318220545862388849091193894282636322167146694634290712421574456926329906715956236786346434440896446992001374483545356440288435694649060670184768798854142927582827790243580853545767609352022013437959013531903304239148044718493734604889199376775535072501925156246357383884533527859562074078813166249899453941413985984128183562875533647282468364070085379910813037187946014886569945675167774526048163254855517533581868256520299575623735572291066153930525964844792134545513962057071975471856742204166458162384570917381113534794090591574653539407200816758932635825874861904478534519127361344428368918421239154025734717110510242199353342507118301732752879405236627090811129790217977508666293348185522374377478895278877909176302841906311919922783911819916633736785044372291418693117661554027913571298142033667055089424130236486660610603867217497032440639516708531363389906633538478506510384592121285978522128988417995731521346467062574168939299798488609910554734764757712646598657702404098214390018768380242285438542467614190154278496935568070539255563505643254929188152606107008946803121988503684662476225264125409208538211004053099134135077048732152567684710732932670652101773712587877104365696449247166261041711782468169883754652382353963718515889556667506277348155788842475702893211614613656670589974582831917051798643817765866999839346207943568151773564281247615847082429937740439905330338528332751328610574522399288680562435304768615489376748385332355933138126309796187986735437580490973165970938000761153804278282300404403830898415962543575540251102652439795591147924610748041420836861926265104606852439173578779139599001598224931573870111640967600346889162680802705091349803120553490392398767983256027636930473444295736673794058775959393536059216870841831032259650579568108514967572462362863788128935690445556268635001024632180442283042559279135195200734346759572332065957000219245899168978161028735869010812798661530909881938078028771472317669939996217912021104739656667614313410015797693903948048717544720661828061933167966068671344993883544153451344342623330376728946402651836802475110654900947756510729536513983319291319386942824526323278186885921439817769665445265003592740462121898119050931316874324955691769462077856070380410453979402778761301769403380365719703321975635438416518433457911541261833126843181829287574286448463197743781350056967407708150787975783021905909356895178566223014842756328019649415146698542517151279064560325416307586284984929113128221730818022664891231767727811596691714785119185619239595612152711145362029730234544308572585014951891292187848764521430874550627927957405873290024463614042345743695834285356106269429923709944610009577523825648886275291804624550054496814941566328860940946797419853994798114442512260343830357168934214784123494977518169041321681367934695664588779373977130813482013646291705809016308173877443711643532640581431310707245476878761019760914243077590079402255877787486869576748691076489395447526458677319643073544263051535903891060199763114117786803108854861308791788956267020533764755109332193630714440807735733263959499677589061930080979982123779523944406586078428672328207005509113248021584604332143443431941152020958464527406302716042886276294360217514411551986770731300635884047175814748007572022940069886235434519181287689795948675990717761230839512018616096317005172677557768366128773779891470303966900688817452779809532275479028921502914659604819834015764501335372360379861324866040139536903348025415313138961779240070846040014755282663765782356286230717665082916914648033106693350247555115590247034657691472464174715465831487397399022546067053525565124830503915420165438332462186034591746383772016583615199478911404831654963353511331238304374709550072162052438373974368125263130696138239952697328704665748437820161422371480636653818804315901623330684287143289775732759361128653580586361542818450722033688833822998543653616195386818489379514154508495760420836209548489477350177900693393012903418766502872748805899561341213124665532779970866787515379606164387312752905119527317676048874616786320338391540943268393222893011900850346315751991578188523041000998457920166276183037160847273063832710443368145897098774418667318382263546570494997037490888806031964847407071929462223380291131899372629436686468966979540707995631440923220461155924062598561343741306724499844679516723407137008945579225843682257000966931444302519274497981621914793144061147437628392983369872621517094623605104335523893352094616024418665332507183118348239667995625967212177912806096501206274399610579455508357780972830569043475217330555819228123737265499687675567302304048096136580260167944473543672000170738996072823627745294343341937740914581412583094641666220109107294068196179145444466860205683696215711740441603936519266788412279370596324242187285498313971890599829515991937798439812177624031983121576440434622047075126662263761334025074993346752795519295387526221661675246310945078550234062992423868554416896192381059860588006920878960416578508423163471273869667007228149507918709106025758299957718842327511081668115738206096770199865260085761356611941981981879143071284414229410168320415817414666886828808571316919013930321973120640757518849470673953002287767522716001199118879284550203936352111937042529956189876392835343148408424995957851082659291692292427315361295882118377832481123437669555037313213740743997771210301915410284621133762360263356203798508048307925341990556941993389157417678032318181149012630639327474596760062164207624501061569095204597545548574799817786037762986876998237340515415209679009526133709195006784454879589198243725358002328596543972486670714804875770951728884403731274962358898776162750240060503123254623960831454434569075196743060438011926079569039149631720938962501952279343415845695331714612878957595958067806481773925891550063231125522212026681299997731905386243090336665151513376475579250279216598224671527608878790543662988457081094688919744791390461054225737583500116232253861934388041663560701578539022473129159823120062958497064575231241847995928035028918395770533839530871485508027653446508429189915201601422417508929196112905180274678227380525474331935419431406625682042106798599916484457391206873453150325200210719580596509959316060769019107141250878859368517207140234645191486571825778977692089664316011757388301022296010438505276877408283643183469644148481153149964422855880583619927906104809378369542150572671903257165687424218046456283493433723792667034296713409162515732341919398995099346584296664797817191252871597590278871036788823556983005044066570120014981794780732320276180841765454938903979403578627442672628896521793862792915372763540608631055631299665220770891617353525213371865678512404953660687990083816251886486574419096598055330271709260381134579659300912448588022060346205343896956137953078009960368914665694223279589587090291527035450779238092665347545330151574068550883113320242587210338276681952361487907437106446308575337390790148407347548097287643465561837198792085106626978336098320339077694471077346003031780812649918892690430691392850662926906198261716281763496525215535320620443617006616596667616389616298401224361489311328375669040992034390411606240433003723620538967379780918848592455290564241165889524115557876812168511320903388315657713179915666042687658318129445873701832697754241090940183044163815700039906772510098347847012642285593517896868412049953575908347695086380894383657729761423429378776813869151756017254318972081010589959717073206554735253696211070291124790584998496571305403488926159604748521337945693444790008852777574475641949018283734648448572146323907172859614160899260203252278425137535651473087844579678990744972034865177215649375173320607841696089730477155155313248112661985227256592408456917026587779951043461191799864396725294390605577154240190913356215752009396119367132824815363988890734770760066669240261903058652700201069926183552617794078084646425897838400578946517123005677128728502947221594726125658588958899549785867347802647671470619964163665976385876143438625480357433003256958807913918747996739897290514068018781814870980052159802482892075068727033574779024589264981432860961684474669160066602674597924262719102850933683136861958174625379286979929516192266275338068841778554812463694359418102129041487494816773977061365392374055318717219501568779473042808805223263256074300519546833142210232320593183292794181901282513176192788919989059589988792611951222871133993539109566827428483415464382598843422333717636266706328795352169939858666032472928470445497193026698680707503822012823215246332483899830478269799912432422647196254112981240710764509154407130656337385054698662209894631489718845955561957296665373898320576240049707971981446627146233203698940802540830178178863777716712254713915395345182151368235191376983372993269161535095834674865211090421859354388470154420649082377575790118629168689513506317410646911887733434795664008251360812201852431561642820871507998221354064516065473005744013823002229870648408808837199239101854066376672466571044990910415240403471320103158718043119730367376453164903741518381053610850468448783695953590433041832511192125463269494376095968571747917001834290707678728589043905151830278073868671090840032760855476094324542680306253026271247050629396985873650345401622784051560687631874045630688139384065151843807327588740099432642481902458730297943489540978309085669431263114473217196440911799560588781005575568984345704008789318472545177821676532576607760175511520757376970682904236876482166141993200029678291015289200954601322304423183636690956684370244204995424632069135782635071017243426059251256803321151577846401002315899928548496853638853783514479738012266483074185697381800556300715773431242906885804214930854849233897817925260291932458353173845942743011933367059962636966046259533911164287820140276761243942147330183983456358641007574849208649347109185490486932423023636843341012977818371628698111763468335225348087637529426722362327147726096037760905333636491037697590472934729976440870349829382875857534878626815412067469782329383210475388034347866590370460024152576881901475943939732931418667759098494250566581013585768467734718368845801902206668717654523276965813754160250343722887690408343860439304051611294504006071060908986199858921548607952374354578209670202489653165585712652467608697556760891318100607032901132501488338801078663451923352547055636083657144903282165726492194484054963597043805268765242079509935227160881341549513832560520629220886768783581008953769052820645474758839889986301762674263601563632562844170127807252710933888415485141458280172030631647040273922534455832135051354661481678441427263505304248719503760254266693608610622815104049127962878885743015175078804187469920595990736241840848245391891766718435286884940661178478910850489691970407816537864596332334080790578889304304387396048206923805148890148563512997838221720714215441384095173017774445566720534969932268287414854712534652804488506694343303745683156591801730658743042825075253241580197680197115134863498972589884619667637565917442805519139953554287015790757066495865474569333506540631853763467196991340555115979593763023923829008685410561914041343892589561313232407329385409387602583379547327910294253672953436403288299474499630673017515956406718357549837793286599712001971477863894359086062539203610837816576744971881873133256439137874318334050861508932705636575276008862535974577760939486112414483087953198639005963141594445558527969312957998194933452185072875090326843437672806647095364247587932639148063437001301913669713498928066011158152416468757923188986503021611556758339004959188471656669832123577494717677046266302175993818181424993334886154378945567608524444872526899650677939033751490372927235033724343541773998763605513865229169818501207201384695751924967415922555307241527482195434922880413029113756211800736590335134500905464606034354068362327048447057345594340837407699598161914244516680741973455573913889534718822447877625988693351471466622861321297764210721123620091447917079156840059178957569400695615960245945254067411945177067014474419436911678890962117424331752629392811703770038652574581264185378285600231396525901369161707674352544702305097447383301804469826226817606742135631357805400103075482098375723157402820919998343195670299193247206277287892930376701409254516721901624017946969276872924889523294104548166107225292086778891169797015959243269722377976737558215530078128199474235453441234135715246899207614038709733661811594975709850655165305693043457336047837873198378997402536669302336239190286244083131000327808582559790060722658724387991714513126384670494700325768401250073884019659487710214567632383554835382229359327043091086695263496260735776826757248334957947528484456677295911343356818219297400016047343016761704054662824953738546715970937335704892081301426443854810735436263110846043289415811315692708882660891827985207474158045980646191482327017649026176434890733928962638590987113453539015922798701319258413990372652784306177629695178203597185902310290432529820962076289807231462533273956645343021447543107537710838051247671922512546522000801849690897840723280356602435271191072459440027319578725475232237248932824811314601501970854750013533784296010365243634976163026839986910495923655225418168390152171681433832407345564428338630206150951479204394458810639544587739761871432430843565288978828260858501203325813404542580206138149749334418554647858450584990083277466949232777010071475584361671679410389412012182371790932377698946715667260696910732426856783991728795781434158829252741749707838382425304816668527471317181612193059177040141619928132627601973335150107820200964654239989439984758334042657738237519631602985852207065536771116339740382368241910059311844148066662524566616310282624558701577245870160379207578750023965632075835738285772167230736071260712142122559611830701763418327794806115802554232477319033353514246242181241954769574685829015159625233860127435182688191549683242275770798267378014361433661891624557229508334857169569250737345985042731601030671371335765273262375864899952713012589808542918205532335099461449571257661562112361465095848198122250316843744227552138096572955384373027019649690084899404146424548114270482370642673076659310273013172777216327065637125817063416157560742214770831017109825013990310702687176156809022140808440792459051392592646854826755315082613656395122533326795597684221895002301116791506905665068591446492195387139210812917309966308972440439736048367111749751625932466898309622824037257210642416056577171368007199753239957754043836183877162540490987648876703004290610317425205646623261488912973302065863122257787390090239710681845335165852348830207625312859247151216241665985736141209644945674571658653640892104220300179850084856072071645919321470781189841420660190503655045241001376369219928745178334189941463185084102718647724788893899240692453878067582503986282077951224682726069720971907998153339480846171618553554522573502159619390203156334594255298611755779505775379047316644928281190548270627525276051860832197128009570793078607061015690341342471598065098431528377497374800555653574156321904221229215938862774706843156425370267841960354865615642456071991441670165789436484477701653115513927044943909187225118093937086665022746039158095194521470344420564911043530540952758888384598328576141360475383269217675871845708193694978912349811062387078923171893923412982930860637939027669989614743070978405468897660132135867291573576906525479361883315291602585960607278763603932050577994546026239362202677144744150701148358697037823173827010838718923992949133948040690409842561761321602592299904910141922457437750350050906921336080750372532632222370008422198880648654718515771903593293074150006752962913695346051278894799537664326765854068382017511799070356966119472402770355779030147806787666049624652571493514550270860083076017982381511709681583449662013675980072751042270535531396834756164273492001178323624189903534799676484628041022864611690899778693610033614286960026891140117649295100584867070733203373013605934759585592966081369834542939851531887510799806555802609548825402056485675189960767777972081140392999223260850010449385034550270498663390264795266875604890192447979789545182883797507749666598541298085168559657504382368313109969025221711460706151072901070424507180142819641163311194545641222518357448978678295812005958168406525697152320659649508250885131211453362343382037278624887774429672041352064654465254894486399007337534539575057379668667282789149533240440413877745109108157962890835378004483753619410985096706835489449603985649210982393573031085875520196202424856690379066542022931655369886847627294139723688120504816680048377905492456901318958520337039902755214407921666132332302232441030093209226924556980284877861534054866394765593776033524550258152737898715972768018247976913350780759417588884118740592839554742420433171913788308832735099212493556702142538440826471655315805364363154768625536684999726642137474884278422866475368569148311925493166025749370495271520711264889904486446010535780971765603861310739031002089217066044326961648345322199812361980071439849549832052164273374590403570718493343197248947402371460108002931882571231097728918309422012607867105967558804165776780688006429856875357242741956100995558146543409798973318866115535959446964957092355495829577104527229049358211653351220517224434910820272942683877541428528196275467738785305276043334603641997110224214123427870887771229165282278490811379776657160132903715592222193131527515929616638374793576360433467922431762052727044488543414141810652778208925759022666389093318130847698116164507744787253356207595114462497823686922068037790112383862702973753591501688690022936339199052574551504929910560910012137148860294926725892570051399892280857303514341722453941723739189295075821050862488163908127374955760942114569914068372321326203475648137347094626128758433847741724170415753362958282652141278371431915125178521513461698343271902591081262421814376902151092809082812917860980038994603183642740434780101640193907113208231434605320503720154817968668494300370661966307349111882858146120077288540801865579472110000375357860314077045802000628354913795485355665447662006139706212973405365747295435243823527957263759703758265922172897904737663837266938019706717267892389519688580013638436467892449890056392151570474279389486559212260229234389903996099004717106652093812881725728904697144644482148674504139272984892152181738901645740622263644051596961652649287478774565398550295483964486179428597161549665369132703125443462330287548793721563745106113977992716156785444158521877439679060411396115519288680472870312774689700394516261270852355657609891144617858902461801003285653523143094956306757197663711139587532216551686964791326366215985460486124292056486222997232944825579247076641974173350329304162139867125973728847324430466294187587771384605245050918656651817959616113897102461482702294683614100591519824531490342269413347505974722913167044821713064325900248182799657588427303525231879220476614219934972533759925411732701923697999645716261889715988456825374631190985150536708728745353292344784375689531994230094011257181556041317385507699683156837384506611944358090639038268700146396760486922926628932688769286207328844697044749782537220698738982678776398636244974578891420776175327576197129703306010838431724728320907695810253285165353225068894952807300814019923433161143859137832871495072181490449541266214274881996504983830660137929549012274186044621492808524191265041877610047741761021388028586342880482125091781721703143208523509410047393058277611897404691077745463920871929429550223943487364297843182933592893530752673675454706076898232148367340620077144021304193080098948166207522894036165662319520720866172353201574866571264868516526479076097566522320552543037117004833837946849603410035211306555157698549550342426620951998388848499263594702864120332154984416543474268074017221624555647274127104567982864455978284886405436092512573295566437138308546848436788500711505000596010007850995784980161472047636364988660100251609904661204821250333286657479005143094336567121603293451456249770898224358252151146085971476359621249384217220758151757082588521021405382284986726544517375342252923177682562679024069260753114560347237571577338581207799070981266040236127089814487328522422033953871243668784455611965730766998420935007786535127998765490252915064566047632192123592141151994560039304504319614986144617573329673974691300787115593991490727626144968746766838350070318003142023611094739050869013640713477581068926511402804871063226686306597599527993788728161670140465935802794515849731965453264920366250246691314724544082406886193503935023429157651266731839662280187194965244240694295060629243036854420866311691012165087683073600455773546036249849982441986317080296070482977280733027102247929300064069265346699443260415999291379713736866130294555125378136697334488296579462773955091392734945041642263024337060687363019766627178584015580568400542126744217159303835145100312038351195969544016366598319356400723142978509422793457112066102030414522044520621202330168060315407864822012327009325170718021428579613641328058851569536599456271851396770688382727727933392429543152296486344089478516379483097925138897568339884006723993138516153394537964266357055111012347464417378892951576892177421763222625962810165058536888142346886712763512678654734691574658566102689902447387445199837786317350041582940544608995837695105202811296456927488799767323725785696494984137208846387307346183084041506930286995668380475724562158982685262859511533784932636456371548626738113305750151869501569645692494996545341202710325538180280792755690185155670825031980798486583576794395956917793149983202442523330952188052023347682435644937265960443831300922152584365655105637497172294761405891984238149437430194251551530516589817114388049645189048235789009105007166335176174269341364633345580496268314234855754383858827909078505219957215880652154292250193396533428696528018316338097404372515553355828141578327868050746789017171369741248035219859653363485489431438126600275079696162138498617983866529182296798680975639321617721673711840803228482579026966928004417901760792661717493106154650889936652093733939179617310203974848322547413677315065989168318881635779897998524370099018593779590213547228351001011718532827011329387180689576715589386777852209542008979433651082262721908865003173512811235648596187513338331156408736898249373568914781790693279131830026668433071115668525236380489610965840536878343853979240130870127535748836840511467241019885695042046032540531843235243592356590719836273368759589864781907194593706954429534354904537529253956157064282157708347034019536775951731312823799964546459719252409292782671988255518772786794023083998743712502908244232288816838932157620028928663802634475302841959679337021722016655174515148258241045262583608990453200211665113611733336146064875722925628252371515726248987611505910857302631817565879814257905581006339022336199945694141536112444935596430213632784723186669149283709025875375381784187387614057287952316422937472543215057629390082284510933282120193730236232020781255695298145840682476664958640681998859854716535986950009004396454883959972556730321204140997924433636174929563259009015055383710840005960050161660685768118285090610064663552230750752324064106758252729843847508860551575595158029206635120544883153206365673424596738280669773409967181541795747130267498300272360072070506133383044062083979352962042847384128739252406777893356065755234317146693222843008607410367774929469129716341724922243957417000605465584838704223496670300709228219395619915290077337719206170718416224312722656513063973568278611448231547088668076171548330270146425559987624168130729867646363105806908211464686380463119311488060522939934823786228260022176816386701543829489030149511684938833593770902685922607878315874240764324002354357409437935748136150850598724461228147160660991549219036685615762000268212513140745570256134349276991957890309579149275176343862991642209710661695671492646358388463708053832077777820378876600005845631652283326261742997831861789977113596385079493884792263582942824925942768464547012363953366073127422280501675009698362121579588566094214680303851435570942489268544293483460277144523912705108622618245505308138105636511080358093256412865969277382437229781713597404699097384958319183967884675649791932134328131869881105161418289768091563716175247539549089312802079010093640682953828348705656685682332952027754411098968444156598918544509988606999975093197274659680846434844265897140219881286560716534829462330373495112637991353052243467049080679107094531421958328259869812675346693482130513860733412117435584690690265237096301794032940450010910778105415889062358690384549418252026873597343811729533509805718881877094736737128537700271685272059883126387811034740206502927337968052903573601076272246564825431266695632486657092084187594879038555199851463371282634319862316532888689146622863501874165453808411158624123957621999473164722126931273664703684278504334119606286604388691240584172082859591063184575811818453207450017256242175119751450719169759084408842187658714372950105568308462919504072099489975021616811198594861222493386094256512944288581124822431895508238032133926125235416108238829461795152092888423695678421219241082317779210541406165950791782224418783413567334903005237431212497356158923239986057275075436693414251023749576355264729920839466433661724240447848018055940554261136623780382123203253252415260235609854944444936375793026199125598513237969169658143838706647619608231628211167280532576320960341758493188245935412936474610776187954246979350103774891255613078754532999389791432456690827034893622574464732535154425901982868954169419452099764264953296272936669430082668900018558371589597745484753541261923401728822351852833684315814833591006367057586308483795777200379956503189535226706920918733882692230043116332577187882602895054471789291021616768728934328733891104184451157396895011925709660593446556549533517343904817608095713955894241446477174331341514666026892079780566867133229499393028447277661969529746953919626317219576584947090374160251708488252391206180706634405431786270270874065023492515617205803398662336408076135658276564390318943743624319438869177423336541010626025265701520660835948322180220712237520094352053671102324132074865102110290105136872561354422020163899572586343087955271115066765259963679677325915167706212899900342915233901735553950681657552268091966404178646253478393703134972131616864947419303441794893578267898858856359672977729359553779699343891415340858374657271836230813730346086678304200824846142729986173036188988952354296378811120896976820152717662696996464011106739077271379968763156662852804645225326996604454321170956428782892049710744786999802282138674909876491267853552649685205728452964163109002092085285617572903847464614624472903924022720936229792120323785838856723494221734480606024291997671744792017295016958118607664879473731285491940130302395676761830181836386335547580070892841437471207472285666724329747973685089916471556638169224621832458852850260141509820785752691248546213100211878731719856023511744146022171947944685967268309243221604159904706569250468066815282475717030568042213541690283213252313631012609116108244575394557455112299782068121349388153842478541507136671170772613194015774420066198796400372592694887211291133988777874041482472414683644353391665325314640868010698342470676342274323106566617177775438060846745487535194965737773674202120149789106053507178639312660951997748706286879209515395824023393904939142617653512000868492639192978410980155540698158971967392431545728812329599225436765142732621098843168202264942206457999908565195668331140836982324887437179077388255015312365743490712348176351683185350633485344834797260516311648917347024721005207696012960584657576675164322856319792811037009050963735012999047987781986809235862536782720046743289917992396964604753157741225505743306333037587889400316947290213233837495457142485373630424062542590157527385866302696520126220116712614000156250972733832529926435082870137449470778285937838487208472740882507961355290655686592951377926396209122955841611326033371893231044410960080151898004091336483009841906880698907742988257224696956309911697959567304595381021489599090487747294421209735848754635453729473660193678519718669905789942402415929665955606247102179440670636086586458809552170066885210988828762348781239597692509199932553133799833212892494207171630310951722427446965515193833206380819803123772464983708442878420303003387227657510625413320036646570182946131144315956580780619847742848713885797374583550929933403358295187938167409770399312757552997074331989342130944938395747752506579507598206252035750066582869186352490780055296719771775665004345926776204409642044734350481534542836849864142232038180330828140937148901533454395541348941228557292482017741315483080961306204037234461243703460241948322194024946523439607962338788743564983914675691826704959173007119552305645708733780664763279035054027766856236398759917272703137109486817766419052694842803000389922248317896722042314959621985993884472286550758729093650329228576432848386570511492975780959787461738932414999009079135680080782227992131889701594716431434752512288504712854050751354179046527355110792153966831919335741728752885606847004404637964948426465560514208731988392297195155692458019374547526771760645078038832462371323071502107531591667053676647846412806360911735651860775355961694341361445980888928363707612988869533889224401635074981447425741528188355558527941967575475606510402931482409648435175201466939949442526386119100209362906350428285297589487262404921793048124274388288459588022572574706566277568276929348561233561118255802998123569386140550170201875951860434851872384193004564197942218610871685038240922194670008576123249735213557029277723886249684202896267873111736324261812344318138964195686737627095594919091032289495005571572706243788121116396331530403130958251913783817104305991314907984748749022757269388929748059836910831545432652075608745634936381892745649050120363929682518152440595118705199300798040679943972759486442306602790887662743037069118007973570807976527476395810949271280579134125201419270279832444463894252646975762379161979401759898670776148803083093774867334786552531117669918263068037550424578147911432569019454750038963445212604571270130703341521613397766021088860219750395324208346182981039455242098491401509878279201991276332523824340281520287726420453409912370070310135290913403898799963244703672441604989171754960082108406626622215721961288026545342960687688093881497097351255420609483545725103752546938602729550122161209802522630088936123272114150757064856580940558448635495179512381024671740783229045763829042996302165767072810153247200831130291943222202168806207104353724784261561822957689090664219106389935782317894445592596497379842313639016061827519022977458776275473583489252966718332204228642271736089959695322462562636181951704347689687243380048068103874878886725369976575270267598691555112482326208900715405768300145716162431715431151964067154631732901388133056434214035804680998121806601165481406503011064266291540803601357652984393170563753205757914613173882960034537760851713984588864717949881920845387058513289823999127339046794548289754469933052830489383694889407126343042077704714857892589411297783504736472708864503574755445423899545542350729677635985294190629757971805395695833801839185071890861383189840479260429387328464524138820636241449085847685103594288414016188576795760160431635570612440105468570452528683490570041389900247124835594528680583753834964584454593412742877959266145303928849448844548974161465380623943041156631221513613677052417440932393547694317719792801668808903662334179556690994614768839792075792418277202781328138921869805221809803670581122354423962773433111790286248246367985870641174242617569115703939337752115217723468830908857861199038892112337627795115827181502135201761168415866799733216964122233758593249718240816972043464601709034543886841510986056751477922408176648715765354032065926491010177761801485534015072204655380678617116615856530746238954017510625010521777999883594179167088351101116829273651917935850659143969028209597668073719477592929429956472529150917127067711226837885427928514917229100191641261426050522536351749611499215199775704967654088243135895114779253283808792652960577994818127766450117522783494377566019976003184713840763671425016534491150636966822816520828665654642477016174476128882758706420555410978679154424356520707413183627452814924599369973799253559052508171530298032658122194197255419300484775583283926901142101960429126430557032978593520782211662895583868446770704610555281039641251751242786255607405451126509776623220839925816068606313218781045199675016864508994079429953114652688379939222405745508856299133243727320901879112594858250019899326938272215917823383725185720619804553503160623342010879289036155498228426150921732940873691082659430313698595272051456681710110183517096655602247290971762587514333601366993931768455415395647586888522263719631684474695080509121743821068789034094291832073710723007687228407535328230049889805110821279502222213819539065967975414203052267877167433787612738413950825423151740849023837011780077643336355718099346722622882649702857555538176396623686079729096171353140836213552815958319833876858249454780321324105826592814124799233408370746329439935663256696549161907729628940874732792980858322226009063692840207878241512098371625892909835534631507041003477488560422659809919126852353309750227960713040737094564666754829180866834288128469991657835648891205496574722559586970489513140394601279978221263286484137341188257704080325073113873462984580913157527957958373149193168998773650406570795690534412595003619390706619923227113538454390866140470901227221028703113580657464506199658462675961324382908891605172332784749097394912168212942207639365790052819358309129285093951923535472428799536912373886721199586993656963697199979545690507776581711663345918876075060927956647684058930242220523631819069701687945428898538309235685121341703287070628750476028373946853979603304279575185469354539835964222223054654852423484293144363693561669651769383686532255579793333733547019543886706954836012805590441822811430969832761288880133505286935141999159491747755096155752053272566916013632787275898912529999448647512754223615849571588137457670453708333284297160977617023644861867085182399978364053949202930231357585420855144313107589465574547876163989274414933862647968230251179103477348230922632938395537318655106085021200833329465617104350315109756169524998608607448772744260801061539285872231128508252386011436204877455715406281568209713043301586989569468831557369361916574716038728034795248717526534124226424643689906400921881172698624722944486463227978340993287145275241357358026475948169869072660562455482414893975430533429965981459209359074139571442217344475685138550004287217684490304003376375385729850480040934745942085010745971172383261570419940888657473960316735042576097999683753080513457351375640219150288866607762901567993956543224517579313473986387717363195964080403255184139929844559589910653486890019070071536170750189519128606033654936415459237651868007897383831731713798883010845574486191011888336198485270047692445256082941124903892887680554599367315777635220499206673449265975464047794142691018858915057449426477145787394054986193901904448153135218563044335478967399401434008839451663687114189725640157231309450899845589179553551270566894349238391981025306000528208023093192426885862477683886385569862179256872797263798567590341280880520778692444337521024955141511449834419677419795122207234361806901331470416481067647581859317287293387623378367244799096849048604427692634969656158170044671138654847002419060719546131133015321669993731623551747768247974387259224438721403097965085327696426242395300694892920570381997752388897516682707795237626301976881620167933202425704787396635537280909484217936440951344827281471338570582195695217060928112930543850561864893808170641047088835321191838145233984012644076048200938900910063689075217773999771684622665406412761449045244352242307648394144698952818334245805852667970313635619894815299306685458869235809906489937561377045282912371450226550217847040237154509836613336263166322841871139452386538672140080979580629824161525792969174001629279050099870494709230395748846745701301584421454709705702488570129825644529670321020411521561697803422309605774778150035316301465095468630633806215808505138240087302952168665287264107328708393687336414165748205471978864530147302521062647542820741546767731403449822153142433808089824097557813683048382657635919115723468755187111622618361317883218750623311713743556904399882519924922287988752949770219096279041130835830014826352833824937309782550600323368022630722237135860777523817868126011292510357478565594306485997313198324244519980775490614991704537397550587027755135476181051443666163632644639146870343067476483340597591037073824246795203347415374279746352769025134395752052052106632205039871975427345653583283378051318222233053886937096089127033519329017542700606614712630358647099298063460506504951795343736107198058927233974392916412833027638223175960370754697688816894079033342438669325280615991852593045071341606758051793728054604396849803606627409411223772633071763297213349278010090104435492577744707701220803441022153599448884074016429261415830274044707902832305741078573754443088966763009218835729892520100867858940374468787087630339285140580815878075812896952444982519847465472086267091252390558111624914819475855096262238101779565138916774550490107962340137995709366355446989699347539586167436927458372810222429889667444563156022890373545696233658855218964822946875509585584970030149848745973836833929061290519241039746771005223015268955867128458897617971660532419473836969354731694977971984456280290492278535057778915801797914632910343750200995641619656310636032879577829370583838080833979468701507631375263783799239235509961393480018419262686827390304511580428172677995667759996453450173849217308409203170821312432453632667671398485092265918727563899270316695045674860210355293414765933999422235370196201610421200430262410170176915167742698191964332504744745954760935763785548258200108613646401221722182853870740921156596875117781670161401152656639161328664713984991900598123869306161195633189427131133601953418667670359246396606027137430277223963116673445111863729780473447821115024499029514206109893923478366660159505942816974451548853519438200853860203582271356104416061272872883775737047159321316455569675894463504787236183121558314524367119320797030391908440274484934264182939947197351229658461665299576916160288692321423188297960737586635294522056695729015115151106241665282970756715751280271436692574466292366898491175770782800187985893616886908289102264047969475340433158815526107488508042582905298446345508300657532644541853383349339815032342697464199115949753130741918678974528036213390605727085041224077647412168149958157113844784634685311017037045233670416191108349108527917610832400630843695416835041395663078874270458617862909816427856004959543612407375844882365512991246493303350168946710039159775267368665727029860425493682402974081863915751834062229335977925738973610276377977404471003664973653521639820871510513043555705951094197960546503953934642915160772612096357620424881766702756750800184463078598030991331892971919765184789669389560834102998430495617232102502220326415653139865892244321807830947870682625919757801506977816405958118455653407501601617189224956304156688049528922469037600462445595754888108943997420788159208021610228460411888038002970417581323760249811841468032125372685464746620046361505056590535283551649812229946017094414351947739342546882070332075747773830651461149983666776458710295884814818784171903255377166544782232241415738720234045388868403301797734983617641110766863126669496983475626335743336252633073793342285590642459040147838150968521595984244871289421578643949360555688763248391559639340538636881144707873022389676308157448182329952579592560284830552752148053827445401198510609515929246017271752700935093166735529481709875846039431326946941415816618613693018183420662077539574010409126412336950521945795445683630584427979425443016087493333543218421953891686471330445204755489585466141121872841877101588550982057887230539669068259818115524154282772547563001769474898610577140935213237182144898427237586364703485963968437821726569754742072822367303010615854633854125989761024263871977055376362116736396286875602236616540239498097197085033787137332570996216780006727329638924595012033422415512495568898957379757324206407920289038762428400815202149462933535032441945753820366333230108219942462666809105989198774944772102079510690015972804472929541444724995804042616769669904436438063241958174189366276506386882718898575781189774758311062943278709398029494483344232532960965182104633931071700498687132991709483845886106472748293686189729676591151357191694300821537208895746730395459946136222510161998132037497035210521646329410169536320347181386376789372693447016068576382876557517975013914301414922728411695451620351888272388718782447468261709362113585992946148029106162603120793820258287126995830145798321515409918695911793201039892292511253069970807652253810777452764270612554461078687674617020643116736148289202500005568702147944916480217617870162115028470436114218374631635572357916291191485168622019572016262504691911670949569934507945331738363531044757351631391065849294265591706968038579344759822193760870801764531722953726940531540546169499197279367052386370467767880357212127233483414105448605308085928378028213602994347687192753697881837545508571197523682253801598133346699282096636593022677169901707998047765247659223110518615317644661527584781084980628079054885020245629374605493902926207697951446652128870419288238556437226395266018291169843749502575914514173087125368936107859327297442101056033725030288970661635188945402320176778419897470374786382225067695901808841370810054113659605398364233499868206229966454564378291162060595019340606756826271908307605647173634151021346611428990896296640476158506068635581754136166752226747126473586248598143098056134284462572444108808050353213150100634847185082576574859016077258373079576017701831262451064176599544732335059083838050789486392237480136245292817107041665312992407032261079359603012939917475921633627710592602086589450652627799386912892297866561419757393904488775093205597310171153768445153866441642405381104505073456194842023588417110389102920313372664410417086142259450157236758912935024961001182629190853478304708761272283595377134244611235711776490483592334009273876243462675542124014824529019501451531489511593240079029984547889119826793905830110372569455145732821519423715784826685233968932072547285234978364616396310872073032736226570997080790761257247876655103760529066872956430962380391426760028289105624992961311779193612036210389393110418928061367330453541500459109789965464463384714602810943362679336801690806379757575217905878876039552534623057219950820658528947800511728690746711802751802537245197535331358229646684846948337336055972740320299887827766663263346069416074154342059495314034321956854215259753547165964601504505748071578835004844367486081660854043449007964706246347250032649142224046723863334355302882490746059191563015695124062365043744305670184130538726801052579876178620286317776656636088812973488882652644753625513185559394738236095825446198437102762577669371790264117692491277446912158018192287008229611236847288985122333868276939913716788961515650266985502332749963064201854924020217446593673017702381035208810046175705981465416393990418887815943039994955416333701045125410498197442784092828846147450871408025648677316392687140462146722743483529675557624326522038684369391610965764257499936197040736183472035307442738261783394747447555487709129144705637053085044490250029969720280228979910096462670961448880882249989018770519096986240816324796183568747811781183352156662455973290037100489845761747369905416997442643046359002373098194699356825641445672655498131444775025896615574791180868449483748246531185485840830243840531658494442353001431995514815364675650174096684962438251196641549916856554217041278383673512572189879539211719266774571433449807020983788896531571574684051337671322915011372240971209890308129547322105659418808563651114126971321567231295962860663465703323842962410287660995178945276357689409755224961008985182970949964379936552322544314324449792593434029618312513746393802519658132058978963616555660752279848093840270320470710889338692723413349050290105803209480810550298903601752759189194868720416885684255550395737210662258218489233331663283679629981168721831532518706801097194408026976229783223195656712859344022003730883498596712702372436566736437240650030207848346349471607944008596378929919890294213875772874837285881757058849447760020769273883277180413151184271076858999654711263321175235714597953654988204746787506584526633777354913664969691985210673867853717088838644412156877232010578634915174948569530002818343695841110923180430349489739530356645032827348902478468424137081445324542743888256297884720110149029644630797760395921197699412685381877897550223053157456065552694146850332867564286711543876558406634767778023000669934383610345539405017565827986629778327485341382519414878752349897863268524438424591794417332445861125330899207341933501712876272003227010383029019760605299915222889123718136089509675910898099555280304239690299882840765693670009997442271971283620966033819974784851083031081858623616308336328236001181537922733756114389203528219761598699653108038610686888152264126092129625402549993557832840351841564238683473760372323654007740364050720342150086268890637444123817417147900062638979286102086570212622421761832862910104314979375182061453579474307138958297824509046653536205340685748476101832299722386614971442693848053916989382941507273686228126052210509695861984032824113921730641179336295215734207981888405981047687136452927534866552370597502085842446638216502649913072538152830179660023736811721341881132328201293719267460293690056204403369297938811129749500182290083673703741903973303526561466759753412109092968078644838681322409024933395255188381734049020115287009943406711539291865124717856660572480683954456927498285894111746950251812667704328365727859663608401461137889638856068692114444891982136915130842807896077844659621299468617739419245914498974938791577191027032566530971451942524246992411043220329212038712599980558061822596632098058345617176170811350982708310796648435465605038371165144838511197153777685565469963077656443517024916933484110793570133055803451610953638043917300163948477484655625876514666732033682393829774453976611084334433860897440702509799880639979114218271634261017999977697644779206169135447888026450159081751793077539181116219061402044362429183234582695815096131758014372175906992694910122300373703198326511244321881929192410177915747351050670542918408337085512841517079606935544974700675456733802688097834205245383901357545978118618910380185096118821526540332666945620970126359863602120312807392561254140799287087520615939678447381658926545166475655183618412161391647250376267262528272169525505846855510394861978433112682465985939857761483433847496796713209222389056201147744100295908140270567300217124488233339039149182324289727718220204214254356193942511500418234246055279667970429776154550805837875451031960519477904017213524108553494319212952572620236888128370446037765969070753623136164920274642478351316397510943545996300195605412869914185483970024283083938909555056556336720574625999222676629004697512064684743014035478871950985203777212572018052708410400714182606538285390294414238520854177058600628852446927452049324986250048795726821590119669381879027412913416480913302835766862526140119239952066356866246558677256326350507957970773197318951466513002724959810423090585636787333970786675408816573491471345871285257801527584423194999409681291450817933308522425787600857176509100655569137162829517828837248123013194147050457139867513176961065495633139139765171010699460436610139407718982672465933624735536479071790545947608494390680884425726515492082946336202393062096293623403918608662859769897947434812771028219483508839772399556847199956475563734115255113885952871329962338534750869868463569576871865941821988516861262398129866447254776887853554875901409169248410462361422450476371427409357644345773491714901081223415200460556317923727345216757230709243218291712044188393060680231008010036423697509761207644497721870777474440758865427544706785913500046726637934805564629858095753299679974821184475307368549831851140594583403333661604842648027135784836274333855578041170878195583222131675392437201424940079875494651907918563535274572819931512444898414091837126231496375740375687097262928135909353470034078966995408794312225139768995349737311761884762540824431650325131617672776981195369846525068008794141484559361333970247473825247092555189743209957583081183462542547739567609603031809148628358040233774122944059197761556095563443191797280448903849849953284254331457951621383860245302712777585133682097184490454369993996809480073588462611104773795583200197491429684721156310266583448946391512263284175268746821456929725675303626180886543480906032352544682177321121190382215364521536360722666695948046247752484360735681161478222498428926028022511143343127222896842716013163946558911783722475929734525346661488967124444931207423412452966612968720648716927831434443202070010138710256454870430434643566816141132717566017382055037974304432104560066732290134765974297418852600377485318498778231518563864539505835223620457778135347538390518105914333745318123010926407666544469861684965790344978459172112393673548968010528541369967123710704722500962544681408092266645492896393443213324876588741782863517012250114134150413137767280392952271897302641767884269737443139459810910731416708650832914098604625419839120923423966143928703413309237922935534543196861257581900400927863754256675405676244645200673433010590024309591315634551819609655716122907730536697220225571002415197916719114452844792355441977116364471783769926473052363550998352058043553815559336451987762027690935865767023971821347523965330087622895284764823795568525110660278085906107964843476471282168258782783177984650247524042324916913756760772997549520218707859253479184963787995678973339028289676600713561183484893443039718399062452856405866836630776906846294332053024846802232757258449020906003274468943973839369657964429149255999907721338043789417167736263514708691499668277690520920630854837890372887250195196453151898759614128597315101288189746802392918942875483640204334651819769719769833310682870814576113069112700429328288747954930885150763059978089027533490274274690372295090274329248990179428112255736267355977903377214299153292111176887913863509530249521947428818692365002903848527571835506042233083921208961240123294550069990027962126465105237541182064069403010275640515641606490308396017531521122584443237357043752832758270926583101387194554775965090538247652942073800215214734081496080859283274906978054918832985577097505684004557245298435869202770418457398263486363239910612279540346921759684918499965257316250349169912138348378290820482652630093137197242507983210549561641937652322952103121870384313317506448123687404697735147647443178418682250795418338108757899444418895164569256125556003091450409997447634964054013245594760507185103900360287392094208217032000605411186073962423200770041117601203760659222405581393420218114927937907255849836163139633043791597229427612506285459763312240740771394768997115676014941014723022786315753271382214342936361762476911022455736474280455181466301847670819107564552547062300087808898692031870690099167153172288081157088997506541797230613270631124704421854937972279804125172762248296862025644193572208475499258388545835315007360211188835791092809272983553230062734222329834934020942854330099309168498093433626198548574091517348418001268282117075848586223100555148217999818779951998267432790812477232108731908690794407173978102436129519554442727054823411312625679469552619671957598571760157391467771714807840094141359047465635164683290282558379234269721254888970563583676639537253220377566612217098039049260755539743355843875971845976203837876431906889537482328047931947241022571609543908778298982061129887984194072271327730960653568519292472563864611924539260402136902457205927834478325501258828171987012760946222371403559662501367959449563282748412393012663408656647662134864197908978835548119642404245801848511479497623467090844528082320489969751777194395284927108658085416489260233135848549420187554595725596446623581647769348152537049430745766351663010275107519717566683649152773422952115196861040509740412450842649326282829244281837846694463228693037058021148378017474908000307168241461611892074996400637261002101747296532057274971495367631029566913232659315696256091890365157170612894140534610777137498655453483717057480887481845952619444597044611514500869252411065768877012118120626689062682413321602926460603333763068644290365909241311168956094974451400586094542465123140717157908923021554340151360517634441178048408937234842338726885086079007792425056256294852062603932496067086632607157594834829070270743564399506653725036921605182011682006315793213664740231577308870948597172311538587803026886393270144570850844213511026075319131211514659804726119763476388652002872065605883577731719029981914765395732472109305092165596298478456169010048714838493240028192318891262443351345684837028462030269141260665043265722649075817492639339097594670810604267673147329201313333161110008094637433829840436710387404449066117681237610711572492620288838931174655205672740811481303982638560455066612895308207614877345480800383771680815658029433445996086821113474445960183449573181842135499522166685816389962155236325135858932027807607579552119251626664437527824725493544695552650286372176949496679557871368272267536086447619530760978751715138273614617996958429411928362559816691493198747899000753971090203318085407605883254686156519251815194515139052640863551185120265965297362814835011846794138020715066900585533821187945925817376142135614660503100931005215885423610287405884961653678100144296123503114316165998758175702213528691008080748840579428954791972698586720050062320924771095127693907214690239580040152883507541138886581682497488887995247836937131037905190538950561394823234436071543735923258481351870342843127232867630814942452388751689294759642553877046971375966065319088995402894641643044472369012795502785203603495416219615335537137423270168245896890895448809107897754167574435282043229846250516883945982965096712517823118085357770646844393758171702131616150751766250248549308356388894462891810586480994616130743400669990382539835871812345324484304170394462710528940377007278800937165788724374738037650270896954270691493199733728930338409164156143150511551362549398347714956686799436222444111630596988136116704865296814498726424354905692328263055430287699799927061682327125276619700453465408306436565515183432396639225222532603729488319823200277702690404252763716016247434091783910502931665856973362176133509052911892294295139650682520776226827310278809644654003533672953540434706621773822597153822725597120739069482769475012039319277244571159029861809140641340438076589811505120303311042135368134615238512611261332817406847004624239106538795771817569778684279104426507904634544751942284562498770225484169408327996367199764453337841786637099148479302015414614447591510940444002961533240610454024629470165105541009289543032559641792340257006179430277412418151720770508866085380484677455122924233730958276353789433482822983967619641959688315089355880452020117997893142585517668180184768298742390962472446953789613432427925489220472815769933667219287122204523969559417930122838470922553805802824397515998499698532132920288791445291040193379486732529461636312217211727581812347570187712273900695215640314611237124879231376512772697980817903149785867224294893713204914877894258172766360621379231813308417915759590758037808795517880765752263978606635445700830259516410354937508385731416530072112113670178326052896811933027958048515637302073302896097445688764754981803337103821171244469709321952520482843747753196696950852292809854807186540056642336935501407009767046442707857585085260853680731221650394906580431399608409377858329338407360261784607276876835984758384839232081502595712449901711436751054471766421619550324909773298393706932182433186555786076122687576798497724384529779762834083870893020138292265785341497874545774438157471645620928673555676555163283705977477807963034159792711703357902914410246834487873511442421016951352452263257452106985998293570925209731258452914768329442223174133984537851813618873697324745004778457351699319200751388325394754302962465552018028278883994661646367191681298663044339946361226625413031436303965625842935357892018174538729169263425040298438557831449847131106818221286793923839210589824100160377226389044071203104912803283929759960491735104705201037778378947999793782209577936379574782534073753142291498642421313974747664032143124863216262524194959026416693975701193435170689479071338718695382217738640102154569253031712569321364822526295685546247412029331524530215657126359364726538983577675530748487627638126381829026264168333464023794388740730266768464865117632782429320713579892983302700452203303942460549663799664301695152123129319798778960603592894041208237708055196623104267058530160966891101203532141418673252230905158791704266426668098541113569447380213000910065055096025754104324429459016312503283044765702224597710438110924648146523581262209598758518683870121133287632090935145447127298018596796996527895131253182209764530706036250691421157467604080877980501335960709733798917500032741331868712138856313944499097132059086071131977891034453641186929810661703377051595908287041397111829310192908948924204953964753885783973047974843551474169603153060324116512784946916160428260105683582451062635676683537227474734568282196215397894461979071154934386180705210231450375171355107672591399106508017437984980104832578277941384374550119333744255219018880101883935516515388247100980490855020277012418006374305691273904945941567547564399145089233011932701539973798600815194506396345538554181259690122838209782540317537603221215445229941404875406048415440113917428794433393432121812285198023561102886442239040268221457796534827035504342874719980879189419757134698727377919321477054121731203044576690163673778448524298135128664191919129169991468853204772505431339101556215558788575656331004178471658020168367522015131701732322268476954077409947790071007854846069460297644989086456357031023565447008693567004672503475599710015936688622983442946765953746131417085407090595853746457717176625329597365602402307345345386789460977731549085185528906102013624268970832047457660054119484780466345302523074337755555284228540151365392831452202128253180014455769431433587479503309497247340634318140426477810877276654335342140850245393246734060612400889831934190140764527319168766059827413712391333437286753781802325711701131159788086437696842847811981575554072532575553991866757491336117534315173740570668350504995008145515941009961247150453224968166353395819290026997395784889550958658892874616551800503283934887375712504504285613436208877976724493149424823824708887828872948087935049520961901158026208571026816956515234575941349596795969376489461672640911859854375570331483632236854041435724582794654522778490603502767307097288558353819354074395581709844562838876683548914479638569417725939365574205045589325260226793036585056294242430249451216393562825993794731442970853530296867538792332421860031771282314427421265605484347251233778889023292431876166238397938845033017410422347405422069920919266225135658043014051973546215628247573823044769005633164711557716043801965226921138501788929535414779744237430866957973244120444492693687132824340505295645254943890569274464633544402218552480838944651083761481759445877948602436560379747506014577802840930888668736631169600715609024455794480105985732063175056549578638668125986482930143032190021724680421169826884944850514987501163999658187285197597477350493002510321959009361108949856070443148790648950783200717478328407935859069419433015862464788159744486468330612643885791381903850088301841317126814523840599608702145653759803350180157798461329042721549776583969269814147008392684517593891640589409790779608832034917027521280858320284931989846834140428672967980783222814812339696576328565568596963570298934838438781556871413496841343115150914534139079766740082785737401180673812272236878389572437887846688433984702415937101217457677611244351952722127714880622592716923218396536473958866143322253857858459033839616966960496024339951687548852643825277615286220640207889224259308918783615417145234746543825510619581585488049838206425895557471313215181096625289191269190955119020805026880500455633597441202692444645141467528968032961942616973670573884591433745816157648786497296285649898702614678147577133513584198809734972604177401934718671947118031287695979944211023277157624857637508970864873636695210435867806267832290381545298938762742288625538946064146927615255337478576149907067039675848737746308329254489667852750255179064577668978332178821819500734293824711885863616448219345415459450004279373260018951309195210264821924778063186715399514921458015476443566174573616957522427759401658705105032369900828387620198241176614276850773957640187387769395159484549185844602774440648025283416062295210886481117664960953005167457972016723288216209702841387909068046062694534077997621335334887818068364909996050615139413847641289710169935758726638725604873186130366551846896001852450702452342964457767207480991436700418361005694326175391411305784112132820089785642838189338893593640444775258583528019661116137011733041164057582255242664206694901721087102043219059033718770849232149380258022638074908612510606751594604514132301405867212461920476408110639303404320617583157383730619010535035710545248898443634638010208369203432142550007893883717331574431392025521400150999194099954950206470871127940155229560460906649882207500465015904052030170625875490231931866240706086814168120698609772272786929073417438953551570880299746696391843372648437222678175013503287354426284486818046783791302869294411335030813945553480850705802952576796319482320308132689896108009582670333222782669405703262664232716325844317711630995372352856211058431359701877140606498354182672645343911674197304705572005962736189210227931438553261259039974650858988836069714818256736354293890545723472087588384665304469086676447208256495865480802988166558237366457706795583130202931910516649940156550892716545832808670999134107920813715067649646935156952882148905893613134485372578618250987318907302777992748469810282363810373606438243996182711198856465918973212151882467934883641422348851206655027381540839357408876665344052937950863397792271138067199396759616568897454235893493776239495687778798755243677142540960087694780649003613538758313155946218125651554512003969212659614420432846597340916856036846546124859027034931704548496798261684241472385622914987934122247907290385088117084212802884984998447109973574341724354808228360898231312034328028163094497073729390928107758567808082885203823982711997903582196370431580209088602922821492300818957530807219974737101081317193623536956081859010872604572928953789693662073394083054474983245569578793092145281692186973974389592978348833459100072455137139330245201043447192389903468996646225317558651655899190097633056887338838399503841130654842309959296458059645302283143629431225869294152313390052666407001099510329412445157537369800890992881175307707455031540187663635904099186835209453334153892505138554816727679927932566000136412216805166177708883886891410511605578671196602323529664296508145571658689554021149049006204147114455955933020101254738589915095883607591649640637783740898426873833600992774064636612823437912008476475901134931473821530888835330727770156139538113978267184210282031219974261031506878063561003220797892657352768692913652997917910108666142823814416433411626521043255700052210074565933971795873231632363651931957488955620350686916224929443269662235309343263598292094792661943372965555413117006402981007352298571584933255792964476552722450560904298144633497410352846985612238462790436560007703984449338351454393688631458480349421330355497045183279314544449289155523423144475706122544424930457361615156121551191277268547949385792540111693399309074241707012150593940090975364975986176166228300028128197143035802604674492075149901699068043093565882482884557832940925149434962983735187394219828712008502252068035316795466520643660432351976644043628417111490104146752280379241517899578635083449593251584501056169102504428409523502024412250565144706638988861915222862084314479576325470684348049331536217466915459403649658564513339497705500403487736697531206782008504414013520707061721529271716812154015613651522578900501088712319602857709994492523668837709514252415674007077459794205651358111592646697379693564874009178721557295513206494708229136008168890829306677983599143725454626253811274318937524957375147885807101697974986686309253684235940885777930464712778846602255555940169717894617456266217143053428752930743606639012836251356842379541838500727639025454416660368107570685305384556702189285977138007607142161482239873499334911996268322849831358273765306941185871714857960388032658324667292356480030727010452494327104860418427553057436173297889041021466096584140303641789196987640779578579193443081331094737122510944277188858180954171724244397209197792955433082227870723890852716161735801952837155228418634927270844994898434842556492630099498438710002139568076610262951933912604622233758699621992468760357026231847053210792150759029401946551173542634773666846753519871655523314653726806826951395700825416700919835019718277550307111760112161653470272961360150341076873309474029241286115530688038609308056732198257080763768073245142561108554859776060726354434922093250477456825942405346068138396558971905297699636768516420966424452838003542729460040380403778238472104679300708179090221822246346427857208174643424900213861262509517377401726420905507850520177099028271647008327964320958439674266924908940815820622576207407915522581997439444512445992695088191233793726600643955348216825271259940305253349701822151973561577936839725339837886742258288176803908492351398869304183186864090706745054535472917025709391334385968771315890518441889447367126684807247281051755472754719415903449235100118033119244462371212957880252909928508991441291802929138549960182322877545909827984522757019261191894654954067018838323611272067279844872036706453529040444466298525965030526065944187575624497228317995915869824515793577416110530753142952048778117251337201237799265099816414346646497366956367633283867927477614018746756357819423493988677160688075213627632350362532825332496634637736318879164219371154922269096533536415753760098410975672619546099376754702746359799752927107414836047416857383847472903607457543783064870504605452175936252772174015054246870749162622649524679746576382174212924194307524341345283735648635146918494352960770349246393090642447509609084356784255256138141007083122899077441631716054723577339338573721154375852026119151856772823109922778583605915685969091869466420525912356982579553349572164330336315447617379361415803814691631474247020358381167817049821389634179911699291036084404604462245840628894418685767001220377847827581214397877709809248001234472542324598349648117669158979732701500287691367873667831709144244728153022272863371368235915057030268481066538357462445948871345795979282045075267657388125612237425116979270758221979663460844152513064116903166689796819763299562829517449247607463556445397325300315588428472460827985164017257078247559321717243170144020554280420611189208370076242708551875884923306940270916046620038712778715879381739286544714865910237818558766478197713906726063667247194165152126970497036765388890490280941188980253161581505781491406764012308437494299693768139337394560646968661712494856067345150986927942305025827991016917584695951231845518620756602950974500914903075519798263975066300245428519411371649897090769390746320047411357253301188549239059868890468949112849273963423729851560006416140082720228527039396172096263427516171544475279133063961905836842399529294723974930410749126930651556796321437209288527444449295458190529218397292776305838606238248063330241998860042234037888464194273411650366282084243932491886833972264998550724399802994920921710175237855123264611533955845816175829135776897972841823145340700673594770086441687322916640989712210005413315661854844606616567046125821825772724118997835416904621268934304071845973882271111396569555170066125558452643007181740662848832766840402529865678530271174646468583868100517876542839227648805310406175895488263616349837686756080940088827934291565648969751441855531350264661070159151391585152661724481547262314509511934671156023307130744878818097690695941280722790247556064268850708766114984399789219515497232696234755037962820297278868714307966071188194872778186179954340338346915389393678756099744918953018045345437099840698673317261069489879363282053456984637529041497499916614297371681026804433546777769678350415056399745279618450510085273199606429772236697131976082135116687094733947135550752750411783730805797429439670853177605739136541600761009519394192621691657310015701961845447464113662669444692802569056963235605986924875271993205116698808178187303563788268591261563631615349070720971389091546702592383173652490459852187349390934141175581663131300723014678487949791181261876478158663699901262726157455830361343868872855536061634951592640551874653650353710263824167582256717334927567201205748264132898123780836921130802018854062532003950462292233602666515417851289433349629360023934390797656454664241902995060487413071191793083887840474208682770733792691914137426319861687682250714848782574142873054872154680972214078251642921317593281275105649067888888656794411650159405665329199778510856195052143864541940786076658632784604920992885709750218220543993613928800983511639591032846328391972739529973757475175588867534717439231151280141570998875746643445415919769675830094522502988857477998094595752373246006955850616258527440640167531547126546770110378624346749451779131265925475119308534411666951720056918483977185872201580044562337042490134487116132612977480415641625620489786418224695116924135044445082032589994476806326260177549761444832355322250135033450978644229813307429114332309858268731176310697219960705811394150987503087859583154151819951818796223147289281321444301212083234657102195742189670577271066541094666203486154391422482549559760448408514390981514131054694907216810951437752251225596947956130329705200474568010802025650413835625267896512567467416698274886613713232171812621610663980401862694629143797330479076868276572266760040661659019154786776880180116820284940829277748122512179606858586907340002226928737549088688345963439858168160911749712191281683914980861382780729583555243452930237550317141468395330271255718126904768721560876316920165812819879048651986204850690230680243562578962736824311890303146617927046738182535415133487144276998779450222971469006189308869906227271745595617640384881553494248127164930193300875300225672741608399349180175809574529231938963358197683771982780005832923827435915017740462870926636081592596927789261206093582151089832905206822080402962013434738890152293290131110471420562690164762078530512574196769621637754765063343661816488459198768920583376554094887039142368564744029837072344129289468678354397776989568525956626034545390603432373810960472752154140407777249556721128548566150938015391142834069673651588701568890509012384200970278862620588502040647279718293297000787760429454073432557367372665585490470793867133752631596512251745274785466974772259406587598734566435327043247417612069946761711829857739960932178012146955139836538993301750091388500957568968517933040702450866203240273306079667644803375060578833551020829980452563318716011385877206611080491681755118335594871577939839121067848498317243818311052930259669504656785147325383629699046833721227447892666745083406204306965621867212057348556708679570174257769186077306835612278746866197702676137269643566072636408265262978447775107794095923225523949363458433923250692327239677533715393020601331387945600094918776523275840649627363793626013281647904595594615270131296021989360634544528261566879154545702616246677541108827083196463489121304076953130702335498993451517428911086811961688511876193034063505581313668899239634967763046662670481711167286591370810006439559072416011610875172008985947346056494124048404921165101360824855175515898040396732728055728751774402436799843147865254961484008472472751592107399302000990969011343368949683528967479661154954355252926865326920308888668786350924657007438899802008676899449920338710452250021074109896610273024521280743579441760372722190011893559877824926115973295113820310624956871269804558893687208541385858200346395301567912742301097142698118210733037410867266463876610826525266575901344590596893976738375512712630304257778394035410344756784093281950446002666648956098321039032173091489236014518965133788615799121882467059961048946499330377924917081121247308323869647840739672487810156538917971459679188181186008032306569326307331613060543630032298794274997165716532417928600481667941226344380682260860155326401028484194446989895396339969160647673432161515091303674720360019590706095378841351740482604828156752812549101704857729054658961670821737363455422332759978296096703571047076546448029975996115557762353835335809081222626796721057319510397792971321704845853399673568638345640739753695289429326281765087047688926834537658509782918912161088971353585308191885439981146409465688606073344472738012895729034573191970769862222115580888160768269596191462436524578126816879176994617005716314998113941366283237324375461082551577785949358196245309592273906642199650792227024482813253832512003655076483500881638186812134115919017171339771294160859020701520998966125650530187572305198078857557616221196530789991324423782727869573698033596413160491338149308844685275095377728636916162152987230209354490879520844689371228133676010091430212664665567318896604010402662291531109588601219750260522840017502001491701281191470209853418638791003434117248264229211677465455701300893295093954419866073730743815747683435437417746115159684936297522378341568201405107469374380294851866259228875875536168420049209443806465693682851673510082316604375253678384353834910416536136319736896362627970344270047460002009597408911258837217359083399501535271718990589741141712433478444320513734373733394947800255955477066154443438904025621033887605612685939097772613949857038403226754581096592448575457094462911870310081108077550351840296267573607172576383611265933821249168705099565862007523527800724047035546157605009041040959414640700073282527029339730907781534404727737769929697772565390649474464107899480082384781901469780101384538009216879493352943859102489301756259000874845866440018231484112946318787021710809629081019572436499683104840494386675441445774929098810114264395677295030894458511747490237953947553433347819148150755654929965270267127574297977050886819378446622063421115817515723688418748573114094457120979403731396276065759991178775991358518627334628051684197927657088485049113293877131023097478266550823111674294726874541941708881713283183722394928312616148247737184566301873820450010239640435944974425227274067760852608461264039959168000187869977287775311658337706158612703289158732523808096698812340860063788693279354730693364754514250509512345956366368962884392565088700747220725745801230135809864152438945802812173725447136336906547210790530137964464995382401051469924309209454464335223349473668995040932127555294482456102639718683527094128792177834892898315449333928941874250353948597803765091900425706598873365213777370539617854281630480571713460793056019743922903666431161969058781227778930691270579126830985970140047053845377220028091801619706748944797162393550454445107919846485863340430812675208896570554985455718843173033989593326809034261221203202154649130123369947770413943175424653009611356751004912266460199678469474606535486653835298789581341714765511116659486418847414991684839054225444407392817075954299419017763059334514349375643191969793006298375085726120018503554432892846769302594130093607840640495932583740246349765559267355201744725134919813533861732751087036608172002619535413851467566505400344886312673433119037609705740713100537764560253135918149545268376732741300401756684337983495804026855158761536770065181126913481285013613315328807515748245741664552266652389728998505278605904855028042419392750206860411336614716904114359040662535370821182813280601479629577346146490354429793337106312517940328752909154145723961190939603046185959238845147784712500182299139936611722077138536441631804957328688095087340985862480553355129875477419418929838940286850001806252449925602535373765795862021332723556079122108963026287485991302814211079327281032150067112107204573325380406691830080656762714257514005327030746311540328651775253942041741798893641492108480492506076439176329247924088286191093119303524227396463210274987595924119672728432134997184102791394082636227356618487342828856942285860096207066669920703673381696736435234041902401643182505250016018556175853107407641667397520366768958496792319624968624059303592170453277735356395058770180621672255103776356526615649859307270600957546465682276049296739875707126627616577895033244198942026642733059969418992202444066649323340998470415026063105334299771873412756670891254527905066711835366430645953990771370515293994465536388793161551359176157839387643335687654779543998735760488886959061146232063133322848670890494364061427730411824980715026659020321972941189090349779100751986095411177985068221667346111362723702865637189962040516723373733631888188762335915554287691337018642614455154178394301649665532738315580713753640822698857918333034784020103112378009299134694740285641201519801740249811055939740663446269334742376192310595080121137781549829907636893824156962295523844713415789545218648224795428603823763814903561421897673518399146999893772688275783028520239383365597899802559592596223623524245431531639665859122983491352859559256644963313494779880125715847525704680996522557827289204053675128531495227631476041041286333401679642284417254920943722522618819840567382628746714543769616428366581271891440143166879492163783397449707363651257471340684230672309596093723572752818972549818456623403352553870544464266136234429100642273472349246159664560159709374171454568040835245512593867263749528525419391878609779525195009494659183942162712427070696583961294549763727832590474857170257789896789575552196097940365364434862308246304875082415437158537603660792418012774610490596395430048800089749622705503573521986847574457206668282242166599351601316617415915681156365192188367166020466096195073301319428631958615024713296473069224987727724191333623449550093954509348521602813942746514367846913584492848215465579148314650401748053413384286354549619332980923952306536274733616604159046562288534282287306128897882733027952122812881003869123187596497956038957977043634658051690637570384594567768618127618028484354191146159041960437577983260224174861894602642708509517948493146520505161109419188875621224987287068969138389235235212618831029351753796890104649280363591018282228058188722694456390788204040259646258174696418051725781734869927719028327220288680303817948428836837323176633067043301139847780216859441267923740315007059624429311074659500497574229939575657241593033284462749251491244353825086300803618152583349340590861603672076441354079004398625381415440454063646314968532432351681058415092345469928776932535158512424684963912816818769386953759341138670469350396041743540194562326577301909642186206594234493216237448973517445957106573563881185760505904207996772776154752947726002563002858828637943243510163927559492900710956520203250592366699112795050800962664126808705929611852548745447021775759556604429629012526332402980517473584091239289494643665817801410744014506740431577746837559010871265641588702457051765427315310728332274987548017377677282805975498808873511408585082561694237678494374351030295654007986222627667149857897320420567502604898177611279608267495003581392950084429375273101877055163862266709121932649929482917171870209151536784380067780668955972439515210886196932122685219511515002983594296141573710782461281808180841804936841709942971626839285108557319006905786476651801371605678149195014870784978009424205207544192504892993178958199339287365172596292725600951840475646733375502652668329715286163818973801526964386678102899434436306868149203110658381673125940297769688491668722769345859716791646356799712510255847679405805755226443575445273879479157555474643583840223942651473469700365656687341936002272142799958513650927030699498897395277721939430116217790618759543083425387152379412497267886944335873283285374186985912858879974343494126086612150127136233763195771719663896733136417680747680509306829533784905541832061908816842757930112836683774983814909228385606861102063235762895730975366127809443418217262494395687478517581802705586857656146481357784203871351856721116000136282392417049693723494746427626916532429711053011754585186391976027286945080947483892127459581309543570220641345590262126200781315706336331684205082123435897313697931787464792055168178684815186022755463378417529294477656636772040238391769441777285301185385260328037834237922972948360517673045828397601173983906188153987087636019919048181536462609782748924609259838556364533257333058991594496756975722936908885033988390224891714759347816767203639712745987410199426204031006613466554545302768557840412257421268053076515684372360191330723960667951391470463480480572693135240063283109308629971364677354471678829977026262787786844038356492539335873917381119632384769659507325766611921983401274828922878536236957137833287839863951801797588234269927430118987614251819586742256771740325969641974183548692888282544434795542959795265441830200722368548730668210085195722570286115098726141066880216138699856918211781327354795119202435132012790253295227513491471336137733672556335344440748022028539298180502591240228968727904914243506003832281324100108019433282993119136510154081324525619903193674941947814657703919094481279991521991722150240320200240403157001881697173842656771603604392521384210242285840513017974369407744942765282212273916665378183983149185246042978914272892927818481684730788466268931951552623436634252193508255574526644200360548629240711010306206544292953083032716531164038475282077207476927137912460536858340984419974894017065729834542666553889294958009852738867121860059472482518972479141986052240314741995133316889685136749822351364521734847374457565138324687981840916362753389124873936653126148562575534960368978082976451975628708430946460984872268813735201801603136348773024664051451978871054855328597904899319579430635360511035996289737020230094365985929785858767761253243180323174230609700478364589036688796983874877851052753094969591478914348180289177002813492298854695594458120740000461978081541445333771105666273928670547025025015363638977174256488026539895613807821670361507241746670661805719085039821286303007765263510487593411736174762974956347831381753151502620443247498328549627544026377761303699941469286514570907350414952469028064540168433220836730181268715310745444607149958803824048811050412546306022268699606023496188960330654836490224786291763293034341842539448971919628160133968344554849031536870482522240510017314425827916504610390098054546122647538948646165168885250911264710992592170927975057852084105435622426456994530076519171403308238493072950206000813286410259101443458134136843048006045425604115533115897929410623342212420830209742821183181539001835005933056167465203925069325707102751108719286288123531613711226876665336291449393378781549902006943526225667887883461368983742041732073080345869775418106004380148509452316642464911331128439995114026649146448392406772224019327025746222585001608536334213730793759682763886820825805335589122645275316449700806962918815075998477456266294289928327734210914930473648535224473904009375444374659394566627874408938383736177521332811130481181927321208980872552644068686221242676898082105527880163040492262863618854755463161322442122440681270126103377356882237721656499483789284736024886821819415320822905607619236923506030333422067690683809103036846535549323840812382600437659896651379976116076702485835066166440020810670811585862516128556142666627224006471948374858129276673840963209713946745376441141348560638514800109025756322563280996272815947991345377294882791340819481630931848160205825139747052228900997572292956950362736910594460020214452866390009427738185406770162502627559927333585815741188805147004746484868856818534348699499936596920587685483458556123966002447878996450825806497650462792188467395921713747244058555850411904548484745457223369953158763626069271078755811489010898484912089892474777271766651904450466795252863908247610089098866370868673165375823389133004228388361179066360009187581025956676889704785186087288792484510469761170455737225277553192670724893126143273062753120816052676540241794056637220564487662023625695353078249018181040750255167117402188344162988408522425745214111089975336794753671687747007242232331501154610693318983562632862384801798359749687886842980455467565219952408345415527262543774117917545170468531888031568516223007469384158716208929052506265935685278957561532289814633051263844295633500716571731358057253697753003200092118924994889458605864131466812761006297665193433807026422613004664872674497192515356794287922500863088264902188609917188868150753598244073979310590757894012271563760910357771967181598525649890625642466959364186911813738882101813481734480112248083003146785068224055983349179766263476260828893196497536162381026369287731599184234356858772098770421886862523964462373497427207923965706257645228877617684053245107498270422458957086104899878678154021734248787196945588728512044314959036811941894476357865936623464209829223841277656167777980771205707872733511951448856004961790476878296328300537304014580596458063196777638740508639830237876769907735341468685247996159637092993418523483479085011930647452245568513307161096257305772913499500089275024885091444144465590163450404763455945355292144466910803233039172413458908941479222128416874862378875894519353680459903648993207412551891462757977996177674966844333013754524113634931594117626830210050496492789189204887934862833877409084219210606485815105254072554151440640687464665834542284633845927645493188332149897976546181587816857445048137448676607405817124744458830035948731858670936103813517038567750521437322292991710490553360578167634443732436042713790419895590493337254833030469718978762616933562359686061390262746600011662385434536675352670324965350235742417735949977518292384911732296057552928659789465907942075806230766871111269324952377619840258490551536017178614938641411518655623040736679766935390235400373676775101496141103091125875277718115062564717681969906360912401214821923506348222492367122661898105169496903005193073314870946146638960289460812145515482409715626991554001380983144862121310933739592200819601406509374482489083943752149907668315200549468592159015413116927117834452485511302484480708815435677278888839277332992406468998981388560907795993172853684316179706466191162350655511558927594820248274650714155159881991094748785049353895059450618108297150286951289829859006311042307953363655456921383578916259521618391927664572365872636119961355988337027659649284151597179888006163859685940962074485881207296997899389198089707542671300655073300793417577571528580449524937322799170189703502031118606763779747738515275574047845875956443088839005151890616803041678505392609497991867798469171137846504844803624415047522694480620067301179067514976556115798254029251178791741309501063647563094880784786937611622345714935698295739714037440736216642286917824703260379770290313659437378408170279204980374598836809040697943190259516699450204016040883612671232431528014207670309077931935123913180349533482873446960775093475738874446530894193279969515816597698508226284600772905318378001927866454725712948189632900418165131486761665836807415642803974226934128056107515283655103272083440978371587074993941549255952221697747232688759948623670479638170731703510116361418608525102385653186725048441130208516934644633235602313366349213993701571233269228430221333405225889731556593131244806542578124060106005291738783566225672622589194055218317257279969197408857503647973689403839685865132003888136379709115057129422756205800458598605070568782068449114339763039463326727498335228828310567605661659869957275354043272647930654027449082755801230258937081046679624352778561434599937660422069536664108347686673320585619610792842381930568834497807873861695682883192660784465627780161405946595496472971541858082293042694970533275376768824694619438125391886259280411293677739555987354094226780884793626454251109021906726250508009064667865340187038279466250732288736040898556533114454874099655209999701196532044346146956947009798743679198710971822436846586231514128910284394223991637770361823526624050834544685427365319902433823172496443580575126436263753405269757285375157753371586373379590154819415296566431268268575748103841529464587580734821153704994035852655796192867167313899458478942174771713254000651711832770563096409427416664953944774993986042109999755411862090005566978114331455357647371392666794973893061161999670302872724605515830524878560973506113423352454308318389552205797621134617874114658450057790739658803196398802844793925001425950167944346675085888564602524428588234822213785767577958742679394251843504203642225844773908302438155523640361818743478992139283859958647114533182907587971527151798160704818631328652236263326067966601939877761346153681850234381901381382156080466779945037458315850628070177029063455498587325831657377038414214487412529904000413732654988908867824809434792053439622540415481097504317455298857315001393931557266880337333257792101732918903579991703066076257416166630829199105385812818357223431657267244873987531100616721797603801978388287956066187645119745990692226469634524292095125363404855856123597591741289859637265263512024135030117376395611932743182433909273342931637226159569011438189515715391096643752733464516904934286578737936101544533845954250782412078377412139846942408124188146522813494221654723671399537917853635953557338421511955884874140622010701191516342838948631453488193162390467774249901981145880393706743621728547097466328662445950194237821117179759994899053252662958021836393066194256924443087473926095145167581582305251831396724347634136264995156402671627307062936670026144094877844968475226200491483711732141096926536058443436752591648511835095690660682082506960077560657363504527872394347638890207823431520569362901821117410544287509441987791705767091416650897891806677707108220158206328755143874154167186531489271989028991702576581149240796518335241518267611059453472507890113745515661596904670779444321162600028068032045976311039705049001221655528994339825174016679137032457169132987095659262485306051740903380787030757605926456389981350382219688491093714138767353824814832675361045492035621870049170979901440426347921978873770309373299250504233866500238297787532026095709031347323232448235262056994006285846462974104229387038030408642592462817154451455868255932095694740401295603010693271290014814269797279499622899514738169566391088485710888954762372321608088212250240974382787920450814352829911745215685157919445804047720147316127801100699107813156584535820481861619703894531935992402948792762918109398292220864274449355833246167876049822235977261319606975402148308886312687455043831675755832976234995958988019000585731192594035819741965166381033090204450083386239778004822397503725521840433872985862418944834856333320794949621258360948097240334992652548818712490174278475167127257759854954673755336523189406767745954728435084092594438088795372820244601962362971999443998114763111224800098361040042957296432918881969231744821971522880857482920569056599292805548672341786138306210379860508240923047966173085430091836379836534708480449737463060238443986527444473584902778983880418326553441610730141474791324100417735907240560802827633299616123355652983634698169093254726493484772062907242850376202492485330796182182931336865678188867599766373165492271379483266333639449832300812957526237093720388953734942873405750463660332437525968441237125319644226975978714431191765477806287901701687207060254002806859934654838314228007465108691511094385049141951336442923197116113244436664878833231635211065884974736555832591849122142618799834954341720170760669336467873853663292943820236876865877190955298053488581354706808013824121640007747148657248767149363097209824956484639746377721125308966945487347064501981991152706924282129456036490194570650239263222313801578969533705205080245238297787516450993803135256552662618050417346709848052792853064015713535966640077808483725001394719242223944655819346223366814020142177593268411579984666136130101044672067511470804781053920906679231608621664519112097256178261447929646749636167417979548414386305680351920755618786296548625080473775302801861031594877126264081744429428454874325838375045860156341537553870560478859412800023455456258376193764395367872167198882162800628000106023442954197637526500519207726013949196716679125379506370142803187970598481429624926955918685763459221867299621246096791930097090314482286834859213054006180016543955594770502985662631065415785136290493792213240071579003861861384830688938898495176036746976006433041170897898572405347032834783649859820900024245118394435137570399029450746239983841339182591953312867224822294631830034442940556757740215562131963302643348711072942450231685036005037665794665667894337609777703895287816545105995094297027971412114865723592344888369592734968494583928789701546161706035696106160568506804281458108708998359539466072938956838513214743403860784965710870500004809020301323556129603019619350646897139878363339429427439406901859786463159433375778718796822527236261558928351314155657447433940719472413818838036925745899060951215319628483719177757831464440271895511537495018369977194519175017959511242668069028304498350697827975455910650450906502160598772510799556489848783626682666147777257493432898320685722676389541593658710298228752405806615361383953902299399675083346896474382931941047399829632664509648966766767657425460540192526985663126581643208866014720422882679384547649384964780018152191789013045571843765017467825028868156942459149525320704167545563444243976117812079189753066677373168287562416804975027343930033619499389652164727426569856040892521532137207630641003579744980732076344354489223659125933042102875206119848753588313406016259261840951295842146657401013620464338653133663620833041425671199747179380756236067474743656259287759005540768142067016557718944986377799861463733475246045184234319298133701471540016978070451567081365462473066651645437374536637090432830318750850696966586662639438736999710550132096736866002459726777028336722326758097342851901412840839707472225280526340205425236901993570731769686980794172486103453046527089345386569890410106270761757051141870311962012254434091433097879899625944835733653069501546112155576353004112112967687863934089736459156883110274994650390116517257011262027709050299242415203595206452631694920608301292329456989892435294411460355151466900032237278642857552478508362054041990026000286335049292116797509377030166896018117197483167475203476170498498839784663582580572929567804241079985364957211227461782867446126017988721821286475987926558063332823439824283116795493245293515925309357491932048615613555748205476878656012793936093008493180689333117963740780619206822792725346112087807399852699059614423396679684603161637910228735152238294418634201098487811997530679471955375140125965804987683854681573577509336790953976553516430321017402829963443577123184235161183760936809701221037785580587150502530529157949711883208414953313819550112151821938172886230460377637276138337133303687397378351053549687661888755779758278387555087073756846093974002530377387573422832387963242418225065847459064624641620625153372886482649608602203345796093388795037152207058057851184272002785780554811812117108547269184591425720415206652336721487055249424351047713767423623888589118337794588102855305788202995006558723233019111717057282802811474830848313831130996430891451690981112301992463406369143303302528947028190277918512946448366018100457760788418259606279128501171063565269984373269695218079446155264860821750099108258351209088041051130186803818469987259054072890805781707302178779862716060375046460501591560586914120916379218219464741152123755580185437507795676202159311405466991268045062241777017692234796356939672539908286057737427594070901869040909443996401339550769521439406618189766873347511523251285079068117932476895387353865464774359162149279101523737742339027831797192258320537114762107060338216315560781774264884596886179033400428647491581351329990530675561758082136447729270153667210840674610198420579428933479893178880652790128714891710700313534614642790308816475939680406714552281093147545977548751610997842442565507092574601485458309997903132672061560469975779267386444343437287049497562779546292415193264492141292771057477874735340004899405649191838151259062578700427437903495557165773666939939463090787379192142879645925441446037016077314634509101824067426461361921508075532990205341458915541586183069237169648430693557214443893268147077713455207446095857409309406520894753828255815545044165830101074452470953867845378983083336698812403288215332365912246764440285125657589830006634503321349835375454818146616697337930960375591417440332181704306100893268403714161069062645319642297251710906667908920882311379739184115711933458914254697595914819604242104562082802556108544202005202412381570863146568859943085370984358978031879259070773871182287306583004954793392157121088386220502158175323963714997634727391928700598083034680998286633852335418356732774753561275886561008443639336526430914096307162323043948453539909507617379029311075220360537361300747730434371544926451497975009414180268229106176971488295385668259455219584319342593967071788936173710703288406626891457730231240640715513843560461877869353069507078993422340994721280979451595013020503714084236577829200387911390298196306144808005869112072942055230988918317424499191855979242483011369192429938285501285325651911295812256955755055420225957654557801921278476191006357450974280700350243701722270322908391197606759477849532763938976956724394529207478924914940674502143293641635896741963981910018281863431702875969539006280257308418959048571004157250436783951737493021715804294542893627460872467727585795665269474261219398238814311346559335645385282828872142915053276332814507921521417305981821473232661471002024710501484647946536372022191377293447990719369687798063571316241087709335462960222834110939028307714764259276051587630567062370210647827242231207361543281171366249975065543280892120684205969985419098039783379566148553092768883575395986578300404993361207971945379633020849879506034121472549693256561564080044683903798886816042890610806239441260258803144029995109426479030916800555959986687800003192080787864664454293917418172182598516141625718052532910979104474774232589323898428743687346385747213979476096814248434083279111838333009745415368050233980175661738444288078069892485578205251366022454715508044566607818696524187723685381523522752312473490650323214926892182722499040832269324573124744171555037592853792583354828094300750552210009287319112850120011490755562785982435780280562958850065770801056207393870893973256568381497345497193081634646093010829409963823372336016987545609150275689820800058549978184984542070073193559396610187673870247473372430416522410195152983626862616274151823809855911461901652893378127722079440199475783913069559498498526306805273066309568881389810369137041628413999197320539096828417114925011596430201816038575708623043001549158732589954990581427346853109570309037284353346703688818276535056061876637236657675817067598010781033715339384956068361487351487551507663111815485047745888129104044076238883375854105768780992692477113981083046316346650504306116303309575350024639226707679833082108693138121202319305166324292823073375622617891345473087955945883597052206527939283285289741462621104881072229093471999849416906931119465494007691006189873100050923028604416809363237390580936012810418044633984236646704946838244873632140447536434503181894077929022891411936731961199266293330382396299265040036834461829210171189272269859913024270837419899357477102180070320071731958544978765512661898268310437738977152623804013139141518705491254280041791144734781935626837695677380987487685546611960239129119067211881430402907023669598531149513805554644885635171900809485778123286428687205720589585102967269918260256574695055330005543052997915854518954866617650142273549563710539789660116098276504157082135398551481625827471607112422364022193959117619415436437873693727716371405433510007930886970950298070457301336544893109975219601409679128285312586072897171800851729565609253602179405502811404689072627154226995541236054989007649428625018928648411482716801469193459573042415593626700787632173113118473310461571704668167664157047000287710579532557213652439869780738755962702049634785278820442072270426713039255845029537597078360962719999730211684266470196787024910688247122849005299638612277715694912091418209366815651227498646678173103635162807059563675854813736984434320443862875346714623642003172537930425374700098449021377687712571471138678838464507900811246673057991196512099538539167234044563177494461300344117641623628759211579332393949712982405157478187756772815142666955570999324080155296782761480766013457721707842944570477717992427798447250067707118707278927193996861782643198376040961587446984152156663231444612099501063740838792251173456764886234672011725965446388393187239775915351161564152196265021638194345532730171536143386790961145774968541961015338698693075092382643539032441274679059060580709350148226244609835093674786686882535035496878384036597598080342786408157928245710223569082349879048485565024510866005429489728789741144459363435511308891395297423369570786396256478604286828216618657541889300005039631821356805575701321585681391604612291902021974147817797168942970664200432849637045350157940997889637696973525690967207456159677783228268993342046975082091997739928064779290469826537210893105391993481288281629924481975141265328314480471868920341159479383560064591372415965322990266034533086870007328821833163483698224428364326628587587948118752398246638908976855709285270167809713642404777274268224890571532621688822234862641015117546816222305000106256193902565830045194924099287371404436316760148355286151786400373439407402675377018996919749779833592711792860401027802845221162363638869428955619679138034516450738704854294553006463682673012822670872840057440550712060963093862778899313260355134759788183385078557752938762960996139512614241982885807192985726962719145781210107307456719145225038848479125446595582875721743155850694832225515478257829342074109617525868022688351631705695949375815272634486394176429939132073297966895866965929312532944863220668197936445941555327019186484969990405009393320202310078676639279697378460996476095741668962635114466362857915099834661841998717627362408094776594855411905343472663992888026648884335936512179332507896206470845827178147897357789858721471197612337125953237361193906296488697810218663955867384777671835146578962319763199808607828510497128516555439517419732862753678322966893533671286760381548288485034214549585224763782186140419771414191086223822812675006933926197215015042838279771401603180478354695145618231272050998453348805037091970054028184540706140514953926818254640588802842895681663475890520668589890948967936557234697369891496637182377503417778921910906381290484796610116689979221426042910571682707725596177646196843968207170541250083311515102163141007200155741102494127273814271704947261921157027997222429115043155213870591819613360269805816562264448747924570581108815985363701649522762624278857839621612069023704878383148222756522993777898311836660837721889630866666784775603739777563177514840911630113895167873982741826580083004282541740466115653815773081654649809224879605562314042162651523782497010198189764987690397270932583546155437619212159393209188959990415413725177128719441083273694710083336549615319024847948001344325753200987718609059972104107349637957533397019539749756952390239120326959908423368976531432507473617314864417496165092640685752008972414302403608353983410096316393855533250902018660558954337958292367269083759485727682142108436172101421799897626447371994870601008032439363360183099126104181382882266676874929400489903589104574973462343926612723928477024476665908625549051393035440731651873055434284090713865162578830646729181371424132239980438061022040200716569125917351121532613749964166798725102032920525613206323017048472847579528719668804779198323824415585117411785176336821541740781563370167625650908952806412515324517255143630296256053410731038032097112108681229559296943662747938573470378074545175922621820847076931098542008974563455164986148091246688286674763554495272852161707219561435138300250776614521279779566764065105816056951135346957998246957488704017646426856866091077227966998010607671604323583221607496646146527197607712697718230901033652497424054567072347656077575074580208640120188587167394537047784527583732635969177006231800387685118021299083987158988393478706275623064583027267669766645211020351631888682316035545024910333128542305406865087862078070735910284181414402832653264944990884128929316661178124919838169278865435454036992758078347997366578286966617758839361578518465954456008409485566163104195145280333057158777486507758881197600638993181763220827317617193167609247980882039372028982239145563862143746789706572952215127730273662306084457886012675306541342631398740735823420720415196408212068834393240042711854198520883871841750349016932970171048678790061296886061797706081606596208585081167720817188586211201571746704284410148288264755543121844926175628055654020316081312082447703429565692738100545241151905642014315584864722316746248191597691278477198945807255008217462679981529081416843326039170997167494124099615444818593790226427084050612472474932357515586234334680120198342304749094432026124121933315104917501837876335963091987707658505011514474324385796112165723220747745778839516068806274776315100453754231208024220951918749719899425922952766179837367323832186254946492797724946055470268419686530637335480429663520499312487325053005277606776821314444518045096404615606373055378302493232224373584117638646416836102307739584059531620247866847553540490829365715740893175206176158215721344312236106879931320435672503550796682846969520623662946810794299610807872112248394860375080624405234776805234308392303481222840186945154940230285650463637327636503022533041162941029883086777587649057062996171009400267977996261372347027871907441352218420142956888902194770227426092182880848949047585285538315925904884415428977277044862904674099087274027406884542475770556322993409690578596577121356559142208985441440749144155846985818449602671653169231322020256819461335617717248652120690431629582130211701528789649019759857877208575491748487985568039340360837849771763314407185561865139705678998670730348560176613535591518426966419710613030477880515008957023459793787052720092327668553445770189939022196140787435601069528498640733139225284741581902782750235828449362250842703061921811757663802388281497295390538046558863187329847241659700457690186004537282111331609608327214117886735746554847605395015440052500108149915674399247877403739659619553403225769193193090907524771467772919245147612719814712183970652119038317760624359075022069482440384941843656511660887925632190489119611774910358511512824699455126618542056226272237378949491952700471407865161165102263029238041030776418821416075087889490611863902597152694652731674665893623167194161383438650008296429025224770925975065686847209509177743927724464830827603986693250117774090203542531826592768695192508068561146351011386980171247329019823974344788702260254176045287245301401626624299023852065136097601450847730458249140778352178901177661759721773316069291217497037548724788082676669389043887612560916061758776049449169272397242147135043076831258959962546054227534918902179650424486107867677550811053823621224974046021481398929546554864637497940321919476920752837238894069298465895834162329176537512757039319741425694338641680042322492274508535029666581045724559959836872237507182316433961143199415905520801389747467691343237607330608051927320461714011587680103301416441887492866729911773312345833796056402335007031061510474144312083661530189068403733836031339265656998814005751343109810641082963532709147637951499615558633665004991031894183828302412339048961315916107512355620908756766108727476927012347674940652343621380283125966757646237650333403458768307347612469007015556694219587983679844174187386414508342695408986868792936080989201324238349963560085032450928264993189546849951599387607621025752874178556392192960510747439812425733414833382781329336714320969274018517683907015268415905048579223627992394064876216483969274766788763287738622350372743858892100112333018073484976147231175344552204202982525314913115121877251346445378082673990468358852680235751834216355023291782828234573759372822990333246348562037798312961002140381907762694320775340918967533850176107457227588069266567127308362208755852539105344286591363042991929614087217628918377463401240985083795190394727761125923604530530063553298885199364625015385123520826768631101159205120088659616909882622385364995992850985144017844551152243626814279327813618400452300243368496695847934430785315096334156319365670610187375585829014376357170435227779055127672361748400629577696806059472668840156616792911371015426559007583355399286273365656504331123608332014264702465762031791864772857420344066980235722630962324770882938974921846350807877985213281955431114883666966869522261559171106495910463645843934666111091604625041585421280118235718086167870533776957129642331490808482868825533310738952908114669392363870781429735692404391401325025706710496976792651177775421443981857215355237983779507534538944803844566442355215490996001135406049976950949389944685970938400028491821817996285152819796041471392800503024631899557286528494081001801925490181510801818211105409824653158085806779886352330869709507651647042566995669924818171349811649757262602716280426017136404425637870914300318449307391087612000539416626590385799280803477357832523192116124974969124839236363091320534367338597062785035835692808628900600760706034612847902124899000783227844161339092078511834705275454767622337506826762286655032533880960314018383102403436150378497254677620905735586032115875768126566287834587660505340879730753286187527668273498273631495075750024336494508458341554261110903979582210892403293220711062159445771754593532195354042524317626669442712213270791257962198688596259367860791535888689625521005925027499247023305827990555355091121867523558946134703076873230819447071121035402329260030421621267597699871858923624914273143497430398825045502467290069322504545650087740729447007893354584195880988021481741816849658612153375516533854610066489054770863107909915614124456486203382672252528516714909925183251999161347784558340668311264996641149530435694032971921570985854066326854626850532953517442047158177924947309096597515744457528153345492107311341199824307976321698725825021223103352323359651470944827140850932732821219935888543023012880941068535547574852036111962379671005316776120442320907879466502727128572796289669220657765813223358463726941452572597164149518820768260156179496445050955393208554679488420793812416784674971570022826279342642106334619536098701738121061290234830675177205710633695594439049488351983200550167289903042758528635044141146021110527235432892628771935088437306561243878204349902737107526520806409349133817350975743911531766967352840853398166094561114536090115116422671207336820782563036983915217522632448971980265851864000578804999642119941874854946525640755813299728382023169497261766370254161614513194611617155924896957490028124645422564225589847434989383414868032915483453278731411663878188043665059052301182592822247859795938962348450153335368202544651741896914997784301713933874890922842183661549427115724953109160664494668504236725850729638175316650243748783495166538572777969711550813866308317955514328655512328948604883131563939264016400264647487660268503859235499587376719447307002909758755552801652943594655088936438262134314617078080417104210590634458638977675932578691551919711440300031323636005486484693256682712151876056734963103079144533852649039379201325160289551623505048810544000623317187620373381434263951673343529761075426572194522732394427034053544407728900249880674406192294467465921051875041971064072209768450636683858196729400624396110659117009252238412363907717054982372406735932895555996875893454757296655070743249517938183148955103924763451122138694997390182396081659329881834267265787955359317521335899535685641295353635092311346874537549270997639139425850139056487676158716269488961443481133818496280366670489278483643168205220781561710348634704012078983761020469875165099388050157296497583385390783373537236947543276421312028995697661812002329925513360092016718114412288379320548829957580079330927043273230083840419919751515898341809539765275102500485826442191636713032886101116980864971482417848273740045004837956559975438883814141584725123538075560405110821515233682745517822659312828961461601272186844083581531903419344705088190865832300761055511699448088572280582650731301971918708256697871477316386021013045260922743327985253367433966480634103081544204707100842056477150945597605471848141398507669917924909125421438767503625014283959349944555929438231883732874392583020285187234770282712281941805140441247574038052856080948758145112636711409107180672857119970118177717320721091901230659853054065264670875052287033874064666087358041918522451260102290551989976826145490856200191003774907886158481950184606868967280069595958602578916868597835656429856078754814708978826093377335695835928221275798790141098619860549467856979123996452332699588051942230786268952361321545976256122495352226194930608886190996607190313785771125973767369067106343943867195071030597024143790760749835438142398463668076059587428456810195249948992444199946105517256855823384410323049414782803128120251049520967110244893130771143434702374355598986819182321662950294363393979401697576193330310126548415758944159383377642380984804378008958028348170054564049355826278821889640362104222076748988474025523619997994736804890122524222946867055463826366671089856080045731577854173621701943021073245514327973353010073286331000867702874821852323305246547554736008889922760820932260787987609918190243311161281964100455931303925690033052841605162538254388081185024052335909675776853987924590605669859237062124940752918241870092713947618817352687460189091512962079616656039574313976582806253168109690878469600427773534977061280753600069166572180845383758012117410597300627105886547093417513979985409880288568923548238476902066674875335164168196408338812853950846245755032749886752706550045036858975377898973875746496668642245735974133098605000348193685432812297872152559672941763431139973690565779285677772924261027818669937471495138114985608841986224593714889160927864802023651025074148228784920379632129928956991585610087804569604979354363308205626083767898982194907907352560639069876743434460773197366505401624256678369107304436846454680960485401415143649008417219852312499473615495557502579318458202415718899632381910979915741821341614662117292314992102395380827903358679076211071022800572649693246993770118677231001131222391759590614583285144870260707885931730141630241082221924554557367327335945981743132312005133355292983569215999478492810827586161937635013017434116732686664106156537318416152790470114888625590894900708923065164053795011851965523517094204857959198150413029864017501209458805319263754173929783314849103325245582173081057469878406984661396965249119234032868776944220533628904081975297068778040549068949680368466285187312081864053526957380514234394823909104131550054157354761023322166716309579349691477840590453401813038547858816010668483502941663109761571328972927930731892650452527662706807139980311670328962901848494551282637313666073874775820210949222442274640840280216686824434815188916326463169955044943871848211582685732391053953425581943773975576510758799423956653942560667954515683524601288584452096882914081962303348865815229779359777796013574573199544980662462079089070848149786984414059637262845666993845232357215963616855249253239032897476362424835442433651979292531974562733950750385158147673338970561304920053401001897796373523175998452035422595274453505387873009139119079513886832550570961334844191465365702958946790419394263190266794039786459541057394953116742178993849939998275879710848341549270235171053890591937456031602230893359173960174924577139323053596983331481754628314365502840224040027575450957734376980991816246918722366274908975447335073092743931784277409215649380871202858992627738320028535640857309637872797501286308097341932173633874909058570145799226257265025221812922856798674758007118064014045688643861478139709141068912783335935048035730892141492668273276266597645234896536943107882531099703477633997246919180774189173992516199867764140696782604489464900650391026021316533319330375154458184358679728667568764280713872186600861864208833124008645670417291435400408623511920020345763411919525997560896694712235993974733800429734936826699090630252506196779767913335485208265772741077883284115424744545006531166165367583577183193190968083944447917380212595871876908653435299827376408913001651705577842560422323636517714777190495612276866354536533447366065130765607818533144972264779919966544650854283821124780816902969042277729785345525185539246711671856297584003788922226262061512282317475229189647778442687012947410443324729297837144221374039771227495563531980889049398645606621359390312321180108474956360113380542403687405278260923756381563880596440837200583573374627210733551828362534688089490016977297003566263857507366521682059587666386277523318529235089488792011753166304754043441228768192155669397574515612479756115871694852793792236977988961476889827321302326686300036496541556285338979705446743230622414693152882185113769016789197735989872915210592109845837008155901152132280837107610294786649516677443666853590576468814355583689752236226049675134830821657892654860143684620628705624454010735143711541967992286037461748603939819321671383403926852255099010357255795874161545081337201054845082116373804799430855110218830414035424402870454679228364632467853977811796840208743576135027025218620521351994307132118955035425288252887496138495779980211912344307698794900140035554318594179485446733337275311107207203852812488146728362142801492229639026343678678523730896536845304297817989763299966716385574672530763361385959893856952396115139144605478782365507020984366397581174593762507709503300283737058228815558072332760325501579880702014290950286720526039354098964145560996968620566836057496061435849268657685433750401982765105614017971218417324217972380839282194823070548457732977242294601490111851406643687799244370111585641337594781615132730131651967607560125663285104046735385187729345068976620212788039986698444160496184982773772701584001228200163752319356199323998462507523676210782419181167996566226024665131808685985738895481170337253336302877874050748095569217005147956136993084420107043743237556639148848778048053659965310696090321368687854518071042004354843217575136721416908260124466865511966178861739251833489784793098330890629041396738723747018980522966860241914494129772803877066192826893046359739651585885429078626295293861769284423350283395822010775995091613099102916059482639110146756601200935768820239381798420503050383464708602539358290878738362625190661269992803620400714787135261345915498463988436746239907405362546457188614373056707481935582425982092542098843999074883049855096453054383983797126278814077089737325856894239486959474640539467378260866143127578473680717752540993119932955258454962061937520980673055239504687283991162565594385702368438258424672062065223022178995459129740662077718124890902214685274435830839025649347736411552217692184431331848324354151044400780686152606753671311676147000380262748352405454986407228910038549511157935786683606508371366398184091819806635073183414246624240791221014493964037425556417790554199434776636485146150585501546223885465599241320286060307537793726747546752257457914495654128694736402978523656584687279074234525307068765882500523651849872513505249715218988633886507189942073864460161766330698553102966031232018547222063153952087768824742490422230280075938462864615431592209431344820265334594888438215683232008855726520687415042528608779004537743536927007012491293640790667974675373981845538412219196380807844142035843164677351615849856810996466201007476634821050909539035458921509133762571231348198656920859205020700525649567010083128198659115519441055098790745333947843964328428178959952174868646297720102862299355774598704399220773241624673877730238697138319203644062938686033533380119356413579689577617118558183785204459217654820223788033538211430973344255821347971214743906905663610176355681885688834828832237572342182245335928669193306464577125738489786194013228769163742846625147678285063202740474125967583380817325672329630597290299113543918110625091162669941760650905459600056505147519576349858302074594951668624601178466427448123852016789942583711107235283841550672228352493491000675718257948474219120765189280423986886004459082141435256709748496094462619509801201769433998020295309245975423735349943039110611256773756050419970994133569037291906350354098562778866187408901020476006406962906981205640061238307534126510131710990568076785304585417670767155651047938309588923338024910441057161862085476393942402620276570044270234850658359446135358585978203435183038692087057822199718161296651405709153086809272324128799074739773541888000606405637938457804291255579216402713578651595996352556930412324066828025181674925876554346879748886725776513989302921067636622802935562970170649340046252480687771148518927178624851825266963221150060316892544183610835621046248276394841466961811372437939231039747494951685357685034432409496327542216888936883415344751189457421693685361906149644103301222625287316071047063030750073416217325945277773205663486009956801662759780210140133558371016035591590389787220990691037897246038428504228602296736392706566693009072427007107244613130791360601890286130377749839520284829505003372479099957038727724039805917890519082561305004904053222064307187904577801613325774128921685507695767823750214076454661995357258001180444459635780340924757770400742455440687849117454520701110005557752736556333981313380782466679546786904427847343505679369859656547760435977829485693706470759832384786287297029299423309513636544212812954433900099293984546713282948426386339212539164917850075699051045773983722381865772340654050055635298083352685983925921955588584953232205523781492964694515466622859883173263610229155987597602361920470114346125657151270203288697664972579952411073761080601841326460114103896563125368663400090105734861468913754318550918877933622389135250201573620445575435084216493251985886793952837856187883170511161783590086658138713630758974370029181264526435597981221547408188398545345223865152530735506368219763399830396745976302329871798256835424197453584812604154728782439691442001107698586271965024801871652674398754228246863002972373369532699308055998120683638882633873008951261122986104614734427392341592968898889026048500642867941065215809910221459183161812569526242789059592859235734857569820591249778735984686763823057227198813340650296351988546795836338306585880830741993057922064999259301356872255802453032821865584328531828768042766587959657460887094711856619044340931693019028963177313095527925586237201435995673083691043758006649584047984083520442668317611909226779139160474695476037304477221198669085022265449181598956050385334095414614681749943274536258438618935441902929491093852020639788887661110153215556803541705003447869340480646198396662258935161232847026491412444699461645170238494802032842473501112238890094268814450894132260266210495613757484401913864752975162257676496199390400008193476939657949339203654680904861760260187792175810937740150151852917399707483713248908348402058606006807575081591679560778620277066679742763777073355508014709826510119979153097076781057915594919943320282384180032797844337431523192251090215255123913763611941458109281946246751346274085677199718440562781846256024831501823387094380383759666525095875170411896490251186115224414172157383820401754068683060412506821898152619994145943092857399919859641639300371652194112922002966474494949540988709976538927350427009955930375067322468909984662197260432273799420641855843365948768298953186377706690127586802258789490717475479237106001781157054663286426851395049666512712008289603079065177008610707951599117628315686317224209125433395245651293461917678065049909260043891093753110526969474118279093556861368675377412963536756907121257075220283006550258799817017023922187317352716892201595598984098249360107118943217438655174583294560955687309145266121533711876238175939110597818827581118666308991597629016141156653207400572863229626188195119632621506536243385053797566824789912806932722884121332954924966204621866172341511864086963930545724565890551281422104874438599911154213687170088582288436770281438964592635486797308809846918493182835919516871936268872277864542348112581936036575434410818024706428285653157320476323799316874602434306383651955731991400313347406146360837508214266967357201005421375647413919247843259895079989569391284815291785043714286921248177256258432600553022092504534041390325020215050827741306784618876597667460228821917201030544768858959821501116865609112335546158371635745046907760998375164677090233564452888581455784326673472850480466015340370540063148849781229450742413985515914939347508431586611356075877285611254898276454441049570934090155868127548494417105293666494237258275916486264869682824774652605033601783372517034202323820028446336752046057517057904530905028529920632248513649771919091303590473772140998575289190250020465521883640966689242739536789814338705642431644878649086947069423996662217626281291312260616014289464601093646319078118847021140464583948363453430473557447236285776641464682996999754566507506803294776861229429567092965235443005663338016054808681735412423541831342277400698031022697008386550229902759878942056973350044438746856858475993910167145721024130397907489169855081196852074461597498099474760116728169838812452206075550480967701538667576129108463486972268088711595478064776326315565412348617570960111794415395660833183550749557139763119503368428258094537106310582815843216119767367610830236747137731436061455159475832012780831850284090727636247576903048301139905769751673837687637950089147282749875541009312648808214237643965790013420756922596432531931179773055065257347043009062294217716432539555782452613509794015586679465151704691610331482062132519457426726769757289966911762466881402649556138145304902469603991095529184530571897385125773001292504412725435837267030067884157804734473879046204140087988815518088015963089902625465716265780535333895253236009430568589787044155139405277801170384739205104081553835173009328155176689843425073610766623492729217182685777028450320597422017419105830420716220674143221618531223395150418952353762527228514801064974813604550429715581594572542089073960014590268558291188948647279966089581132924804069932508155440873622091255657051194310171064873629803604797530334603906120318821386573612055440644540667695354817694335995548650393382383254021800590742938270323862761670885249979369637742354920994462423090409164072168682363968063837652448814746915814145161179033086050046790494637453546835946939204546099680379745329372204650863114717997375328633522885416179431894628270487001559457102462561133132795415632003595779273300035827045618494606367181630858764682223215987383504792625451394889112783727446325589118337584707032755803662128455941431022883364097388161378992317184088010538689596769951375032202387273560205882516814723132197158867551330316047021984488724234014432250208698069917232249961103020688458569588390734169671052560530316601261485784559496860324377160668368252160486680398836977518441820126286969277230319732690045780855587475808537479128173884167247197725328614055032251803143954343336243909860421800434886017060641838475620127426177123776058919630590587993445484151789378406884217617590758794848080703718278515493438474380480589064174778630267698543394765774036060769072917803096577022717469219490647762102185396852724748839409004886810666344036988204420427648560070209053791107245017863168559072462208479294281800341146136611723953322814201430229568418814366365368681754685360023465558520754459498539343070698620835273972995030161929776506033042920644598112022170470182734531559599997145966503640260192069569302890089176177642730924023165589151600091008034563955616731088040156779862805549292155218043646408832957644245470837956967750615443890821392478599387964129725539210654048543246727246163969602238954450320325745541676196937754772394881735383374990350453852476619547254649334450606165059940434033356114245786086612169746764649305454636364797032101251457997404914202544182222172252966968570043414214818682265363238685389897295520023569847451894721886273250391817346452652774044377566626856767493363963167537969565768205337078523241031651000066087077110097715045829891975799963141846164474827654758316947714716833317775682529788350743776183298151374906129404367859099396666479882333242928871575176413203232723447819596927240652071488980171088308777879408396793364410503618726738407607530738699248643856427012840335392381011162930409690201219400340200203652068669465776695056855992148833848418225193547350681711054217011030779185268479030804571392432723755664639871503132686654164873950735185191644973772540464875853189355237452985383880266493408523451208006709710360200364790509568721354879926077561320223925964463835193479015271961963291927078040000194541988713413600076399429960604905068821291042312429164563428856105531591422819330567744210112529055757096579945321031686074464418583484336234935021240076949995290428871478639910286365347091255067954951522722591125419533089081403994314403030292760712829366801182560922857689474910354883019712920138370299456851275491733505409681453878957948420475978080958137911152867019369203771726602972078989627809411412500185509461927194765772010081140186092054364183035880733808010003394081806638491192742746680451805866202814635181334822507820138009159261072060941785689492298973306864402414411280276426206888060619206356528367589969771505116049496857857990783875616286122005523714598755753305136496428724527867385345514783962404353444607540260062134911423819923931027229055974234080487779823118039791416819822875365505243821974764640300849387005434541847607502302173382373335379106553392449274501788816561988777836062863702888659750108497048956816435004406318149046141077261538574441814231952308751676790709209277151528666271225385988751880504927258299313529745552498065935735306517181650296427560980416846157434410835323015295124345089373606766011526882332664544824153595406247622327798062091392198099595568450460388714911967378600869297323530273769409151889802712552896579464408826041423455117520131884443292950800737645126078300439684767028320833560038957707731675553955645137216469913227997464391809368859019309420071343907836542720730530340471303565045621486832771432454458315771252214847338906804126705924426585346206981734221550102348196514002960131599754613140052801490752424292003634365952064901161465866176221516905951101562645046976704529719576918097044575464151281180699554822983165890524859605694297379206734668772487941460168007979241804014212930346462857762580025517507071707489332231709005401915242885191707647180558226595452995789376670747494736941620333133347812275957509679524670690659614917797600883661206921281130343385119221555676685913965061945831246158725397029851544050169891171458103290888753764272358490014665580235952333013863834602751149307976806619282665228866413976343125120687006528006820466539758823750919392077883847169316522319108100102026515000372402891640080477604270912343258903855178794529129965312844440271644443800214657054490199062804453319721756653581261196547965040705607297642895808129003427059727836869210179577379253585541223528711966986671275604605846896313949540630464940710880314625495355710663147931892291968408436605159586935688085283151184138308129480793815741964653385705704349932941626812377866269700394899527762570070371627363896520906560635645168966189436696975902511467204124064349398576656086739712671164931744041638995899675671003102991296396574606201731081767838198524713333338021582217796118174191011412206225103079548210843343967171503891672732650690305522488013374554257438872360231702728146646938531049204372606187835342124237798210790722855610097902032816833429957038902047591109962656350545776375081724863577518966445872572230259834056811394535213950225274748638914876006731078131821772469384926943065821851503171646895265767806674056164985594643444106426604322019781904245096587330081601662401539997431027278242780359674735496470149569525756577227013424713048031021901304587259168899667748719631773748005917828606737631634514330901713720195715555452415518995367691329639221480110200571004613667668901420440421892734258622213333388316809785012428231171564697246180010311177360911976117259784665149942401303965823675993069711810023996891636519511168109517302091680321677467223287418529063044109601772514643579392729247902684078550429454569626095496311760225452619263957235123549089981445246797763514107637564930872553366370808817294107042890762834684129029863809037210987036366460567922353498643578368793791617448839108876063603012560281480921255244979919088270418032132325574441077943801393808502916147425762308251409809178674026698349945692993420414660917644606835586843794921718684750386816235802203106620493977071198584850604382106633307299144993366315508785110464630944984352441281891984360975702123340371062313712173463382045395852734030219390701189394502190704186923758114988222438688025840259652292565095430750973908034815672408737880821864680901580337781053791734395066479399818257907703568305488609670594421832915070899896034574384533900660943214961588994811942552395651583653451496318610438507456414465382256607570002353099298407053020228210269953892775964000777529083528765260031514464709228351765167941175760013258572356097720126985046531093459473363065108874342050625791392780364237141191182725501976499098445130453549085552819178802769046571318188677406994085246747367859363328398549927747220476533026416389681665170494853474820918610223508449135492832907013370055327731119455447455756242303888020959308228382910390976630532241414485649327325053895339862253853956104059680039629804638739688960687647290682852472160258745610824360210034822118303180827796470340897554888712324254342975143100504962182578840460712368919146996182980570926249564641904239810324017780716598045076781193348840803197188150958429779344111240091284503950111509033635479487829367727363848186106086111140146124292667127049378715606329048540359997398426346602947039541724243047744242534801531601730974692700403719540932159205268765134440973321379187730070729976415237450348783659768189984078228421802761914549230241035076753472373864587434363393331101914097549653979949725341848888273045607732134109230766553108806058511454976029270786473863770677124630326186826517976198633920268283754827893824109786672972346025158573998058399314082380289735704554849858313769172085564694040573910663715328735572915874267932213427765193929553049848996975278749660472143533251722351284472445409208193367473002753082218418196048927086969622389616017940303817285542383190748618271225019573049344596666135711848473880543714852871172359794405482848000622080284614454159841594729788211826020867795676246542049251718536483954627488335827348180081257341185099051050075957430119171341344988761027457171979587005859210209674456003286596993187898258163506298352175545396859679307915349110323965075445514523120964656199522664440672298531169967792200844554705324666668577877520739296128244819417888956112043679531138183375142254565251544202453123283452485524246252770323561896791733573729850114808133243473824999207196567106638826265955356307806024576896382830544393916504878889216063903088742044168902024552184067454246392371650504407266014334464446166466939338112328952764736714290338687008971538772067246705742516318942669936899861368794926455881456648519018774207203093230211056891600162336714312148325659941445309681886989967625509267583910301586249459257784256045211487292783231289013542551326779945102252423541222461730178110828789436834698503174188430862546852113207885155194622142523971885882992847242602532585813167634828785030783153826131421850195674797968191034951898799990399576393976008618198288682459358473004631130460486157763684137202799208759344769965750566331065944081348652750244865795838976181174576500670763697751379650485299674067731636533759910595566400848278428946792992094871818795942805526828487504495522668269547995159087744668351970151120130445792802608708516304370151460078150113245176919219803951508126536914543316929550809775631658863518342280176293198236464945183972498003709153351808843256998374924346392090746977030198931855604617472536137170028904005062615584525755768832673009635673914241515214558998565061000828370721829153481388231682789050693594915406495578571585300550543515989829406129457332902065295556558621993681871707575999271621562424779411379765416871082734910857558069259385953486148629131062981919763311833060081238227137082239095457715292410734406502256825883949132798159939719112906951726765307413550183814002042543065208791730784012330744236140061350725362362261487019135708779448892523166803736304481485819656395073254925558834525255603400514803748825798936679298689311624464429474367437777052011752048931659077993186039553867032673752080831966850126657866868074866172745683043297703168404425492488930898660677105961236495193012079517391776765017797822446148122184462373010867666050308137194888223696265608803393995820021241814237832301449951800798292541327403477338752793345703825371734159559096645606838999086834462866171182376930607462727925499173997410248045603626798212158040129510627168205757763070205870903045452769757513153665845916594060559980166987719782565715831771909805772477636095151480726604370796727064687225304620398008174558185713472162242625130284661426860807665271463865659570917796289610396733798075068337153003006767160217141279863461762684489331926513015489541712765833587841615043004664650199229517058605798344905721578888625467753027502675510634652459716959223695398617215075044085848605539032913840491220429028161006072988974664248543327600199417387884221800476311031359351274744173889247743669182357886067497250980282168369966110418142883325122327201877527190848540391352335994606576888905551098823714701672532965528665271729423344411296057059680527885867010631514621250162026619996441556858011437393425041307293595031932524581040003702677259054578419231942962339235848894060465881237125398527674632181516422495959026394925671972089741357006345426385759006380005268284743069406407999112429747626157328933745778679929957153154542310257520546866689220116258400874167091968496437929264082543068373516755868502670462573485027132460444121604020056358822536996821877196235668255244131069619397062300015402137815721029466944710612556677482622884911187288581000458663562415090404677215287431668395040849543033848793554982040071115931939689357967492402511411326815143955729035280625902416365957177242091554088121943532718039617173249642503569722365762142365183372867845425894896418584624514034169583650269770016614528934330282411608192434960048971085775062733543667241152967321111570523239446992874706402728809072837213522027864471033650417233839138688642002516909087114223629141338258081155234862142876706644504060718321329243266391321731011699607167647856132472831303572456348080885210173098318222212025004097116884507799896234819263283026040677500960198633758658516691184741205933057481567937332380526309375940156974892464108388394061179892188004021090607251492491153862935448964331647860945687225749763085593422868582860036348972653255878782669426949205654225179836675546160120230042898290322255766119138605865192833652295343239328636261543755189291761514795536567757673730191669031562769194567659107954080382535143644224794229665899480374266751575590832693068432216961571577201038751218875220431091470090299142925822860014034286393836932992926924724281074983907454699051888112586837212493731500181618616803467272879207740873758923460356157619905288339388151322699526486946242146340978257922408149579045598193767664683440982360061074566421919678711180207463145620434196805072670260166794780636412999996726101198769444414739728961197038830380235183118311655318152171080319098720789168986315995073401844461877063502044738025244253807145019424344320975416477657904298312441307209141927215135025547062773312120677693806032455301351025622841118528324585206903152968282590457076798920678642821694127620445362426127225637321303303279535975380377352271388504006472731019836426778227390654152670390459901784046763804652601148122050035812748603888873776660106530867392825994673023894257455650950115769618601141536265118620437681484502538190539068498431482484049110308252227886327757233214649982223821065368615439649080969076757963205602843686049156487894153370268621305426947525068378390439982107981972835039326742849593825889149122370659145399872512062717890868516278541451489074381581158820696528861082434303784250151200527969365159391978638147831401032177280175471433138153841984469999137804239261275324480318922880057377364263037223913399375022116849016752074671660757116743494016654162554369573112255624229767815672524356076646657156167074092266097029395294097389894455040098754928970614141216963153978230552978550417680152687354958801656954952658703009328837583715255851936213631298890822395069586353260819495022088568029972980765522246109412256824929856365903674850287563338391814297871757562949819871826968206760534017777354532854366389832061383527971479460375728188550502214725192436900543818034578096361229781049523845449850889807531134468961352269932556590495033618971225563420737747007550930757012949049260389874538466258043672476781507295897615006917067722403311846280062634507925664599094994258399091623429311216710112590658868466942071072439969970648590762138502954349714241775095030319262235635484106695606333084374232911395971308271757525101554313954992319430934876387068178210688929420234631331230537868290846464062583674751996872798605193149534544112716047195352931836481298917732087938446758305181588476757725655550641563002514515893777746865218876012274881213715976965514834609087091191787068270972857226611045608177786262203924226817914888152487049334468657476714893730511022003036325996519713403854794315525257200144126837008373267205124175502232556682940289601999093309617134753469442763148156393587360053985872588987150604946312946548450915412342150591550973268566192792440233827214212453344770552762284950020891177932931413479136816415394346188658521585996621613768343322751403599245520727413357309687818966058228533384154397406348105543950226923253898188254516392924858101215593726104665089988115250543808898567149920249488219296789680971759458958327012737356001549349167949744387186049774094600908948078266722485256708263936480917037025536501507717066782475641223784084068978628792310745690859534304491727502533363954300878444205199945745783058413462710373238087372147217334551567105427799291126957123281252149273931412826006683913472790455172611636745521413529302931629537818764304497538720711384037784078369329973728542715133077577250663774871816928299563308023883321142464035026941426370894995837392291005829565865368681538668339028272668910738173084843999204046058718852192076021595978320149477267489142476199139753168001442896675001488836756549653269234857626004993783351583261173385538356362948588152267011549231539748581126579185625698458009248886486100410130653927744929692521494391540371664414482082035744733942895008132432802240192874225763231603972406172801033279443996930771892012644835164401174927714062402111205952626599877184714251473702277347827886598457498666772863274324610913878670262583007381524240693860927797582493863528325119505662173901367587317443204060684011691303654918671333749761379988401276324428420021173742374497627268456700232881806968286392086923844261989176536804745881921459990348639607402914845188122238385227983271996552831272698838953581056560120496068618955517042321544734312783989737444751906993244993775540459892489154023760478468817237831367169039060873250465507076541293248275687970247487187459567420638543505438028365840989912875241004081886531545746756885350486748077804683874923090830337980475935442650139487656098581560918399911743909323125858854825934298194443571309759117166445201992968869559650745110739044616929674679403607956877605801483219307189706773139476403822635043372735957233085892901945745396047162049831280459417867945711736233777443915772699823620953146001328899576899501247405788774975162919715679183446990891003624608647583966118930611412327099057013512006278509180381873818604616260037859094497811206898591137030531908596095951601044368452804909957191688405306626757834608708692414092786481073987144786666551630898657442941162777144847828763678526890208884421034577853449528939099907184199440280932276961939557889131125714193404971485485905676763982905110635211093318328597803815449991549123414170125501380586695227107598081958694477202800238001495704147031418169360605718937930144660122289031861771473005599954414133616948916054453495872991149825556517599290906485717159622629579538508764004976946836292580194470591370924198192196446057207772514980767787842552826702644041238897554803743700506830220898856287913249767595245911914435513048609694999250552418819249247369971715694926701492137848480951618407447086804098648687430639949017139466848738665181904878307376295546598033183927758200392897522230429644791966868701956912034577409590175619424291657107444968365225850315254762094016230816295376832990840859589689219634734296690659216139810631114945936885743738147723407556367716283372211230306339710929769538057864065954097630887900264765964962934601913691805479853142546400027710921987360683969538426662140586465170518964978372740867326524070116938787318769241026176459600137826013284097768963666398549803010653617897657187896676244092516688712780677061686982594255267029724494862320100537637651751332344245255285311753377555502727902228898255497708002055360912221682424976122493719587841319913137007283695044269116191461918172024950285365221405967902989526387986133560521286298909019295671456951736228873953626767164089490805771261960125334263699678375058177260695241064715377457937332448695795592501236736648520001687933125514445500102171947910356339589365330769566005191429081988634307146263338958584591154686622479974435218082491891822645970529542312345338306436862133073042332593566890686584777623838384809035301452965491093493923465102013148795921742814320246820239370443597307074010377506397398870495568324684383731491626693240567097062527266371908943143582961636878786540850296209940133530367396008853046880192905593302880065091269566546775465468773304135374931759112356460493488885992345511840421513507304622872109354074358992619306096877190846543767472564910403253335678254294745884790556622914903725708990542009615363660675437170279789855561387559115042849364105881249078166511878780450365774218496822257444444164707559595948714172001729798035131259844196379687114215600654815246628322327164906051967963884804997868032223095693800499350659258067204015682356362150234727240572286884979950238342038093825769277922979324086200837744557015793028397609727910503531060467574598150070375510550864390748229388807657289903120297992838011975195727875109001572436622518227407043347946494790875619417756352008647428810979248446725209000317983456812380824378103801229815375086830508678179338239306374762757161546521171717126823993664723527733291078163656321052606932296157868930709054494996838551327979545435850585228905519772066658535358511121130574183476210998315907750560254564789514041848006785142147452711828924230626703197720541218011445747828983281018317786862153458433325071181878534277580806875325134436170712583934051141920551473812189841077276924031858682631791202225620711314846769545951791237854872835808080530133116925850838534776815635108899306329481039231263564753245203678445618816775069247202918749359838561206830711244539419110118548708755785161737829022526468462679357917911810962947512336565616528745355215894449198164212559612932489206253931174220257437210340606369773500459294218533226817163314963529834759506170314674347605794730884163972785956400481338672449633698158012812767203023610610888906938348111442035913085609160671240624058545129521488988300746822168611161754491825603078809961747375128046528600670506706034393959630440116815945374779190517066946006488963648865491635401106033595390345025719389699091136120685883271207675009532955686969372150103318399951529097867907694230636055253627435101559343926234670546043292363203170541352822729777077063482434931124737630686042235705613750159145477621267979296773889189203472400605638057542425145267560110511520836992164720686443928097150072462742211756526385262629215666744019140152287145581264865444037412342348341686358600427035258551774967329412723178852938126640291868452149995871382978925240108041857176574721741152281016477825880581294044523560613185290306197202550720345830938931644685624333553814807917599810398763200953602050528999656834361567516982130543372507406238703647839605645356359373392528109418017880325556005353543725227608793744920047073724368299671806795631968087084537527915335234535172044030103497244133018763275177252835528958553989009945150162104887455652580484610727283221676917383364135283052888078614035513997800359784209635543089193472413981354093334613063117422383312687315165552331722881670169678186210058378754575739526696844465816017350907945136119590805573341598793878200903712976075858008141597251861041125162850944741697205883543601072740499428613086577446333240420296154134176037816951409897235177144390484794179816512215292555432347034336407678687989290029317709252118179058741743513194767110266485363413312782914760746237189165272069423162540778780303110800866331821656258378990163853485198997399264377810302584614768351819431856781679013243249399190793902898388738093112367376027234383192704635571444056568300816995721255844061270225463127040839811662998059862692076230720885492527065104142362626145563376464294063720321743789576966908030576839234203131597057760097949935400481775502881967958055220008707432085115010713244173869913935202068517958883611312250178215514114787017568582259367974924261057929355066500758811766093415822626850116408379424229906763185573580539077841873796435056071510070477379206924333877612722494993466510064469500609841489427926065470465701836837678298542556852491979899588204868053306275965510983036012353967009463078627762501278146666136423905413658967502764485302295051788114418309756110368545796004063502092557355545636275812028330098275495185538677141522797970463953667407313566781576277573287457607538677939042903391232326822028172860019915636202298256148329737114450012308830075527824879725086206618220555954787571795329125048782873344868024680878697199613211553967391783176576637170914195303043137036083140950204691620618705645009649364483516847788099377028769149240322283528693077905118670907336093203926558190619060587216009104521630335924039408030630957890980857191683250786769909674407156403437871564747053040311042422117383879271984379547819944728480823834648760994184699906697023794719958599000508134159700598243470087475518136779373088890186933450024928164701555143016918690321521632271932368414552203582528486151883166558473058561771528195263639842687664079632566387301117833116909783781730448187712562745414889278865442994060777189843490052764138688248249203388914611131568003993826268232927642920174219949963688333664698714386524907899253089793963417074259344410973492593686086134613601036070803732678720751792308065048039531666030313803852063957765155294563448419780196654335091883264923135207282024326604135666153004615334034779190005624607452947027141834136069852615880796196676779443751524302486015273081297926861414657457747427686385058646285538568299494821112750099626847205396108919370204176809629759295486191712119672144802221364950006949766631274703070774369739214007744424505176115093924349593168661683533503612460086679295668350031160972872378663510556372871241364604215836037216815343085297766788337475497133647105004869393804275094983552393346743275878506720482948062587920181661161428406371484539705449764311575029955976504047295967185922534037448020564537231242470701810416435189304008729030724763179196182430652195696218828591009932445546096592050603519503529553359794320007410750203779652124574208406310053144892618588335322548507271948328316394978041254065386788426748572375122418761351766159490162631123701983927927474720688715132372175561726698005382938033959802066837127726967715373719043485035392132525593083756572698942237914630835409950078341433602995725797245654279649058133940800952062108309675012100148131611400646208791229599792241216646778207300777082929634017084331882670580626851414132574325108156183044246173355684878904000083734941974927271501425571540725299992117401206488415708019045861057393253153011659627158014521093501877280623703132105191840974262111484600681728247946433173800926761573286659765738288920607908952880448965777757989860019106299480278155315348969247883995496001350668242049628429775332168001072175855815504109635352222702168080245092455004068495284310794473908405205831797211920248227301014761536647931325209793741255511873711417845981333986519092477111736779530800481541709034110095105677126176207053617700560800132396054172391347645111700665562283813913451451771276036845750023297134899571029755743352411427303637687687480970326253260925701741902336074590206388738971622141158067836533258799952299022667426740967004608170527030198301237940286540975784356421552266063201161521013340603566573953631303103312018361089338317122130998372141597964412705636295200725474411085871795599745697479773330035843414582101776992684196774254228059700064729416368991067635897649285705281105496399535160677010728361023216191213867841432297675474044779431252009622288165135506769888632495487639590216009093016506499084823420100586909916829078834643578498377661469200664379221034045745607747143878849880565870202492937405855202590391391249644323597204968650736816865198941768410520045766268981686995591593593150158970141122229394498454792997418938390312290408599879596140211266291133665238633466579483311424531445000786185404715762673151715575988306560984326038277226923632817287637348556099823588209165542734237289274862663483924324479337922033955321198701963642735748645618867137784548829956705599851025393129479332216654616926715619314072666160974205940023896689385893631393043881731377739545213102110688337962291849894956610940220919985590497373376989574559137389293240229334242470209491027377060436083503929661407840482926192009765374743044806560190906930972153492850406447864678426215182799376939312942016225449116175721098424601181496464114488265982512665789160341732557558235780722465547134007137935757936080731424193797306778409240907995747610773980973845284846462895342418420716330790074841078585668635199855404403969588762655353137174089987845196864629655025385595772636547535617945171789246284690015808196060060486338988505978225083467945388958233214969365191689944181778644069324633682849449336293756354583058767742909918955220718454736422351754572927151600230901717645291780581646994203325904094327641214589324352863565190325531611123558119804106948830838942887310035517410112199998454782062253311469613324830505998230884142459915200362565071911887476893165862517018885955857584390942721468747826855827970484253871825242217054204711135659714850642805578930253733444762213466131107175233725263924153991661570720887129659598267428002202332771943202972780140738562038930696377496756978453580085181387294537048762318013476013816221722062211206239917593120840983590995800786884908353639528561517755501245905369237840756917615359153605280343009295307620932619314730909508880122414119168888093363415008110762385525660371987827030621837447711202821889355212581904782518384268818168354121248674380631622337387548984627215494388518132990448175658502827791872921677528600924183260656892449960480815997094645496453541308749768568168547721695290131832172551412530308810905553635753972541906961061844124812248504150985210801247648581275166575587752549186706204529496842603587684179398761118324063303534689900904805713110648845505065628923176890585167257667322076081511334958448932265852718446656969367476355114704134415984556684182335705656462379322478635333523444700974819056635650609782502006289771841396576728403931056451169274155115453545634363635336496440882942085041933198448384324609855755373539343995495223464339636533575836066539539723498201486509127401559070633404914834868505566403284095730525727221151061002012456564744923616677906782632059732901150292897029630591681245936512223606635341809016819997791154054947338513670217620623561591371854322767906607666446519155380475008455424655908379871979370000166725249109935674789452572149900278572689055469123378767065478932661345638476573295029960725361948095287035578029463070502807705679841692114028857665232779168410938478769840071955054580818947317851645831090062779774331863453772067909827224346849968281964346215793054905355225634320598429676469272342315919878865106860343479497682101764688901755844483614291951222180020927481932632977776369442392456620346175439880492587433730932391865637940317488495307619740369549375191180494952265682986641582585869856955868480192058336840316021829218085225951695740462331454807556754393457542097333380718372471947219847669333811294096621520674704161434945267695895494592145895197536671027444099713511239744389041887601168282175967781142583952960829956005356704379524539044258086386598660878015677152394515850136795845160339831289830752983124092094433065929423273852972206977450175005367627914235274492565280575588128393780598189921897504854089919720649468873172518622431175693802839938040044790345558871249757970165260189626347008510050062939200811252846505227106554312000036255587536609301004904645487021860275781404705788112880236220662081681077564113877070634034486929969123624018033807647276154552085828923777066804626860235009159470854362830124686247062009448856320550293708479490227485190279513790743589437010120545574837970921731295224365697020599613304947418301257832435196593332408725460479105701526593184975904965405102392660069406171367650369880290216194776877540740323533963957677430404669232803660060878755038855806608029928194641231377288040158791905451674846132418673054928884614897941805065801895586643301324918326958584169628699699639518776796023677119360783891358885092512225414973362209463557054480850570948132504087257130068485334137593875168808465648892958166983871152389301955321279815087213808955152173895641560820318990626848219858369182821336628921109845891958562634242461580893410681798145866983685485519416219399897163513730372492653957662982035989277754543117097974090674350024797230874930415038374343559218676104067591718225805148269465850219187955648735371610482893152563347539527545247859115124605644200304334430390813984878272087054535044301575483278780085322048165155325620942294207251000733402495675414852685796005288595641800155905273272240140896319190805585324541987088688020230387714646737152702764787848153218993134741769722647004905509938463781341050590063035770765680552355477332434789116390726903013513262022965634116633730034697141043100544662089227060953961539387114910530782253585181704935359734893772700276237010366107685614618237771669270004924217391052303842928198678417031548145095168002459954760424329452461350260775980054581662211959802790267646951946982886061122915921307175958624527721118284439106185250250376088281136916888870582887400888425981449234436283072786105589752511789363055134902200603786122466988213034191034282054349460440838202175251357000839396612298089014743699019952686335216626396616558673810181111940503414607895963746129267256334283231999346896065297965547067984259719022085919439883918364257378391182954421189811465157386319774432377332592003895309369712622761401403266814329791830835903743995617889888121050893046887218748816165016399444434948838521376352329327565071854467269256000624167209275516756558641565228385637709595857971005859021467688051613660754094115360374506653853632444777402854576368289494293879134653559879573733930416414139054002349231825328822202829656291382473765927526826946679301428739307582162662334494787538642586953854780113956299060463553043799736981615381733650749854867749980059333994080083964826867803505920619969258885719544369911358411649771557356072505258417856080174248880560998790810120627467716589601577801505285121156113603545847809696197283422631504794086227808669645807034151180205086184347005722855908314548114598488555660981735127843680925829110986362585391597104127785818101931104439673706853551923739323091082644829300585684511257129510616119613620734198906317117655394926268611960549162531866304385526224191352579802899450785908362084981998192787777599340451700298737202841911805249460086249674386420899438505058026213964492175734377987819455713663374809969236835137375400927736955461048360899769428834602350842270592854907621718160003028538484172708287788516640580564835056195202743807307631200018605881740271119378793852397870116586072076504922388797274172728511501026107358814184537145746996892274486953872337762540089330017183792867281728232765701152122725673424693365286299817659919940407335213387522799825119796067747071850285580660213759211445311678628798060588710152540064821072005192381877201022224819814647376132030287551338721108601278044100376034822417475947024353619641050146276766503192099443963215715855398724199126413049626858639623050991973248230470171538111790176610933524908921391477254423764930746858551707703805812655690725152401267347036721773140996280573294578724270684674395391320109832545356240363139782540211857320092834504399791082498626716627718791190128095713799161090045680698052737511353888036116933097938205103661684909324789580565620229229104338133855318555096372903064552531398477783269897187772526836087354792918433987987608254954039114548198329177246522590239345784609446871450213448344272125660374329197717663985329573735743474151929461748856431395173213966656316654406082878013840636031936239991635532353858470416895889525695721400463853623426893136588241565172543499535917663929405469647581072058233081902414208119243692917563749065316693084599678093867451746798348914052825104890569934723853414138534619780145685544671847863746606953542705986204801820912908994389280596119894238310065135679814047398469607088928387778187104909662768529701117095886029261253321469047806887482364758554260362617385551603610867998986073972227287754771862884111764038898005590464281163060089649047575999026987709210100604704282638669352667323212994743523327325908737601629126513949073815598254100856708365345207189286511511961765416953778752243246110603525102312687942795491631125091580688068267595323913570610742958552167934871120351114338252273087476313211032889068310128722678700156555351974106915888101184444303160350008511380173101923352829552945221997149077772591334862634311458931112189359287558759637813811263177218779126112595355008823978778298726012311548332741149029963159230614553214328246639875250376701547270693710169680455027100456128043378779376525139820548749606455454679511859462721502378923176875449803230964404058190084956751432170523894034400257913302729103712061369937229182681144842271357997025118397443982049659367007038966409811129040797276583710178752539319612039042500034558379196196190862578021907842997103331027669408867868159952085658192400113075176788784674363239541819772226598919082001821308791780604426888707187665015440509941679797746394531849184259913948944068310285358320737530664728043681236321101195404615689055201799242253505271694792538027875076828482468402459261335318091257941980816776979760359039596980275578015320304585512237511633401312645161690715650784192279939471077309628184006726781016272916555323648807970933258277390182117301856898660869589347649034233937087572153522676556864753085623224917415165807600704171501557281479094906381920326930772557057458231398791081232904262702009481396173512750163244556641294884269652500566186177138452857783946563412990471181990227715699840700050861688200138382336011191962197925074340040225990023167234967659424235085973751843283285123623828781715845262951193196306239497904681850532368990812867844483451873646817193214677347892299509272618849458823525190054843045240481891374128678672839458342465263762166747804937410389479308573751771652986636880842258378856534030466557412229622910635054110099282098629868153700104212582486906766651476144395064413432757094570181959478958115417504780156392199175938489044143643410093740785980570307496347563763905547985933622208728853979486772184659804902237719796433498120789706188214771625643573825056480194481351108356208806396383637102299802435502200118206290856315453629816048814515370459357343649020461409327354363470359108661489957745073754811768530227749492974611408910753547023889059145260793707244099544971843906564645823607872073652392878159116856204326779306895912620663148693343965135232854437357401107298995014769020939330466269456853509127075805737812501055735793447570391250871168354353303701756573582722804825588924947764314192087293243208294042282129543670853454735551350291610190263854746074034191396758561544097792849355881075778189755175011337740998124483933446181181622327352382022508624968000664949990680768645331849883106800090407192763152081756843306133709019962551033979546617578113178964134180987055622993259570146698481506306305121008048109048682035827516946475610971717080401789268145238384407518937135771347716540279143537231342860437148170293717729580302625086695678751412375656084638650964774385634694474576344137800434175004369501369744249730133426810460708374998538390020553805873091807337215932685344869118144034837951396137221465796475214061017611288254016305263532412703793622199856935892453987596608870877550069961741855637030738753610020406854062016821969196736740443439585540726410997913917143803353762614102283550193486646732601238835938699878817795490839978716287318808466348056558829223304306751070780499884185590560336628448783345444210611742092063028856768685751043296423193244979286858109258550247957625626701252108296002764508239271489488118516703790402166865226485398611889581226314830395158540135256823637128062139960455764598581717075068926121635238543072124105065110837219590563708082530783966951961433272949836861290286663984851687397308800733829036681533726294925177639970253222303524152009660969853300346675204685957948916536093789155908522136829232297026454998889873212441283024134172528376631438778297961326723026441484956937816852144396216106563396017302768847080023052253088036477719107771561208509297925159172170661926056565871616257577918088176741156117534405707052820709813321365590740154286161260613778825600108972381771220108252095105789417819230571860887815280646263026047406929028897694916085737618693102883816951825379724355765166809447814242577917928693008811724996858475717844544162952433646390464936402894502303397660553406630300100947651275926867398656998353103669012243868802709161753695624071895674532731375881308434770885734728023855911664399639604811610343847834601913346188715833556607896549993388498849425468194125689290947524685495952080255392681674655145050726623945650823284072953376527906388510775328459152441580491887774422097272559105862510706302278257356249740984305347348786845479685097764538979921732212134349301445763824585748030989935625148888242102670841771921382755073752976000726647751944970393481226241223351447779809407722626857790424404547673921321938315716568763748326745375678258054002850518353061766419500220679035134960503660250852147138076397037560062156481210348851467163749362335545425496186892347196453082736612670398188930548901585129107717605457998703157398544576771937637058669488454266318994753719466034796025468755541998278334340885512772918905021638785895260225255769576354899342891795346563288799548848136294353460512184311731222359162784862559937600593296173482610999815236210023923802327597286503341706769656959222562508993730217949057526426070167735832343447224647431168969237188137029308907289374722568999242347283697500102057384907586497524899281657303019729256563235111268123699732132649618302903064611161085369008464624078484098908802088224339335780373241535333347047711116524354675912138278158595191768488951214452442981164645133982603405294342808583709720868889710448692067929826100558756210902781154435068530991142970250468117456760576417204700365101086857624173573372104000367650426352242206187000956445660382825309470063457789591915651033529021725002581789125326507953202839446900124627063713115763863514951933853612429951921300003029022916560779742424653127612106779256987583318245134392074634579199395810269622391567392803938149385152462621574472732221592770557984922867635456394905294508293040730465430444961827445071985608972352968844256058194735647870928655447439935151198705576832239037683950539914039203020348221947085937170754792061357329689697669812594592754523439108686391618555420253222353982823902788732777519821079765278625934456145970015175905518484571931140501790656017678721334490228637695465278618740637255138082909127423338039332138979266988461643982635508071781481618872534073255169722060497296266933667002156765990915908810253197137103495239702947968502747078721681533983465754405208121770877701552282237007017501879631659886725853154716910146061748300548709395561072099046901585394190463600248585470103060883936522565169048174256329878024820083501817081393871339770396046275825470166215381598958649198346169638847724717808760192466606024572474248970571737608231277792570463045697236859655514895021910150198800010784811272480875158836768308915123161708507925695045834628260124239719912267750432384588970754177691950106340377938438950398059091593565431735142601095875230351569339774059699629994481749165677781775005663786927114261663119214805643682299803274468385756770044928625005768449954677221839270145512805572967059838180764382499363190572395502121793400805350993429612691243344308811330162755691868193868532165518961418150875688448676492866224732706936744032242078772352799456796022344227399857677952552756433291081990706757975999972772419827402910047525141013087653626934696940638251735479098836196429394093864727598996884095403858757770828937660212198603698029523720638672274967184313656548709716446230452169703554199695619212754142969869960961834337900914600907346696185593914019493460298074855259520299829068164860657266117846241163970433220772569979121963417754974569481808451235782265837081283344603279914043183964546523592766309585194349394513100698134500660780501094084900048334857323012660298362838146032975193726583612454924856080363576003908117797001199024633021809429080408046399006395696096434333708023597127704228196196846725247129687740190141483512237128151500956832684698214904646036687763359545852642916597295998057112459318525775179150879547154489762383307856178401559594841216934219837075182554878517297704924706856033946400124559575296105183354864156058110158803604018023657747894727033123714859518431923238642566624148447697906133604667113744325837355996062378367078047407174688512289735119487415602453575469906237691607467122499805482506819137435913196782289286317633671125574952421133657071242411575326315290378298403415048462796305345799065520613883537602798224385681743195881986998647559949309607349504199988168031025254997075409573440090122311310111664281739046134502964760655280331817456665966919363685528522559920081461261673594175545633646117645833921970496028434362070831188203585834947695608707340853864773059464056529770511509179715527084807597207356691701757886567131382108550309018395029042671392930676833684777817896063411516347982295067978256781862412881901243100139074205064041147022883579513327960151060062401555429145037123628540226767421915169008689609203333989464544403276096372695435411042295004501923072618372037121092432702345279080874231811068244745505354098228342703878209297004333821073509944850767347365550333927641680496376658911005200398303652717284219740275243140889021383819660107819051410722451266590300843690490370947325031863004479333246214776055000934238413227275775239039649453638025275302444162133988854967585824222968856511357841596684071004783433952177552036903705712636522331201691797220097374898144000133942599752611248976448088749236660172675923504894702916313932449674916921770602505808368699436323589176913520784937266791391601955361704296102807929218186881843537857495180830873073006562638538598503227984768483948298042650189014971525272363988389349927363628129593039747654834508484345349458059746878208018680071011396838728468507743789206925011457199212675024792733671803692430098834702162130258951373568751089903158054587980077718853887547695871007248820232531340686961088456932435128631982395636517334813233152951059324943748042025917436010849978168915169879712855745398602954095848852989633487899758894504447721477011587658453370584171441512399179548778993602447368427929719936796139420978261647859162875372409859259042210169265978058072933732043970307335925827465800805616105065408745118576825245825331931445519434426576052765914897021325753901462094240264803784365831388762219559810530689993522138831564687520742524956345416869574587285243269096665427061292051962037983530269471024824750993559218179885369911825461747196926698800099466872748418367985499265241481400572489991973701030952043690995568430040992062762261882598114854466488670223373419368770545083885107508070228535201273282236550153169147948009463589915575042050699413369874156522000543164396612020718093628766079263998967624130210108795402842510618332728392476675247633845190927575303124760333593960750189842924345600358174422325041877720025632350364457541507169009462567005308427934383521608439181982254933093533630709502751417584305595948134487910629138706326565191378209833516064948799549567706261768373156478800809072980158593825772633102676146371546170605881292022362818552647591115179066470126614652772002737680526887971029587057865881306782743832242384663082443470496898779817583309595051602227771149622228008043224349718159201544864267295446044407716363471134952626627549529407081736707974262575311060458475396608419452491405083576454623791826505948420310863736999655252175161231641434058453263237066750399480437312438685671304972342058338780010586540687127517795970620730340153298274024421879879489829255646238550343198406284129791400260987887472298244650590379704464216111751412894326646614929076794119203645301353618082059482874102617710096457371495729450686987142600369258317994048641531162872356319798287786824997642890380955511986325538910596288661799866773540314784137716964999041862686244752357978448112420168355758704469171186512382107366375031878009884078169014429053505038589025899819861813822461199318553807841425181277608748015100708966395815441371049794068553749270440659016314567702498681675388704770111346557837280564537902292450009219297561571472162789272180698347219777495331425038328605302446376581950671496877340518120434046583112661179949115694744529282093574289654798425866766399407662443057406588090158060374065939817203456246441846987877594814464328012394456661834233887451314219366421586977360407281059237198970483041928036732650198674382061273709821376261704280511952761905483565943380451342244124361936926228835053957022698039622602932689100125716030134144734494647571907468060710795871755717768721077586684751215490735218255020860700881662905831733136412462410508898483832907786133998748676701779002674035395842487306443797350913576114313153440499671439271603619161384715265007884458766994629714865614227708464894119909713680560156049959999648580282926029738088249488479979745149051870400245278043475272518872032567746371965170091267607789017960482827282354871635624476126018309547119149709812662114851693921333275728931783196193579515184068482708660012724214067386269148821565223717220997968838764284914587397474998144166461605969472528465897904623682149603758586004627590557927540152376135689024636387010321114564016919751443945573340999369094154064777591617646323251539961629504054675040183286752369890722284356893742236882591087597695462334427661529080683315883000314045119234750804792568016502767335607627371154834847519089388344331995817254013568458826342369950777070371583757568143616202506163969847382203673401738410665697709047554823112463128934060724552842865142771687655231948600552451388712708462685984402014233023643422351873462893574180541843382802819229777710486359720379820581472818176204024804433110394750996891327443545350449176362299683519432002119076119463787574292893230278506067051199810419130323870752362684216702031653223535059092636307136351528423079011638249172734694867886029128936633942017405736472895812064652114952512101747228305870582209906686688761735288901636028770651122283417011901999216157990621758135826960406372442715991379638454421728050203814498380312440450185051798281983005186591723415732031888487313800507199717792806028948713335411655176436583252957968023438081615014883579964937889847346173707850982949212612951688946667346703217161333055008090532571525325338421883562251476189713974498863218635224361284247916452695345198825548910410055905794171465426074233390103431298479446660397809666268842129740824389952819100827096710785251521673309243537785474763636832009498687818802165651216289816605513676180748122816128163590356561602598274356986270166115772194300157636978890316341951516396064053692275938966742747513170286160485083602512161422130844084377467086469028623443687164285286760129238402880693451797636746415092160911377997005240286034971418511658352617018654087364101729399844223925262789129885953150943962569096272979476693187815774865660637535167138558437787933141516186931523979891998607706060757305353436539298130135988876806736995102919482073848398391706516832880459952463673946341125139114799784800809591705860990607328679856450070205264069184097584598434613744862481939096264705191194605514373601451716534767190059062756821294458203204335391617933256935401543230273261514518652975447405826475746216263118723113069284344354386307978533630296783072987954103415663300293736855146751651223172684217146436306203273926344798813524133060513547050359263236539207029491252613729898317472949311660655409013210705660125515216088998519632520698038376032635563454136858043263129948672030403147871547352284887280440560366424607167619693369962151387019197087018178222378299227574029567406464936256847898214542891681473572723899445045292190072724790865045357281843609803768147427315158741078161162096501422074872984653460838603456602434326929372328799272135637608655937611005269475844482551084874092542432715450103806199844297669866448219171761721032626760804280051686115046771051171632206712217114769878760127580605207474060593551648508297542262886212445304911599304952060452115377290598620198399919975416538494444304055712198705162152939410033278882750310414361743748491074127191885046862664601169558924284776423372418094593819467892662348473793048441632551181180836887346383552864813592898063851292144238881523226755406227474258056598233542306656810041060573168297330131344982707694027183763273542692753335775943693390616024653904854410750641855745597818420154222158295296163588808786191015019446297597492127267221824083552272543518206361927015721739867476564404550453008835189795679795281544300608070019277320122026854785383153628942264291861826615646103689336870916984184638933883503991969478428605456235518572864533060050931654239082217185253508030928810280465733667034456465922209831493666560183100805343767236913126735385633027099812615430901808119381356950338539138207398717558841181335791825315704873614087390846670069258740774634916824077473890685902955987548191080458483553323394931232412415595738522988160046883295931780420846146206133956837418834206007721647049827849561577237287312550904206120071696186661046717561625585706647491509330841998346892842797881317441304213228453084115008808512508398055823898808818025673338054834178946617417123868755877689043434543249502065940005032628133593983783718995054408907172313740442015049278086494800299658728081702943608254835540603076335140794971930401148189606364407978851733884615267365668174245566827900252576027789863570693108704401117810059331320028395182414546391946139032193481306215318571105776427349446936179796200293821906273312343396174355721709262292077250482988602364009706159760398336451625611736417181106996816226300071503698669737152292926601019473963123428381210867103649070474788220358507841708076540156712205656589333478950295386026532050709273240383392785606082588382268798130129796444382686105985300033331765970205611183586346181980866943632381991691159722785622335304901447136148255647500491757428009697101313136097008917548885093519944850151624848414959814314848768341871800071515982779930680393621560073199836675421217988803719687203005074418338299820168960593239357119465288126609707636886405814193902042787549431117678941531591242259046100132600108512817294340586354466180626600763008664056471959833743079304190458606176258453636035049873434245369577362720380015465601010713076583120855906235277366937025935953161838769005306537290219154266090510864820840025528995375949261177752076685714705080329835832614391809901403955039235071284132691721723246126894578887535895823665777114733447875145024356874412283322432016601099398335274006861255418278009997167871177890477085555089898375128610453092849317959016644731404485131384746115741854938624502150767887151206888342699334693724688892350609710217574688797708451130148084069769781950222450238451171416880581246852983581932040287872020256784172938720893136116400221228504939538811490612959663078380647145117364151676074321166128622121429127452143317726826191217152536686696478543640508854825435906821310143314156720130330869660597686182890009707742521818892677114159800445770147828966709496402447446548427599369301850009264313121229968783638973718457030902027874378416696109548937347737000193339341706734107671775077169107048418860938665246872502744039227616584863370990381312695911507613743772166855643223715697020020684720354660852159714257131195796079680332836548377182050054420587194663616824461475978436539560046111586236822306880803647830115026822333376792638347922320833852129507821824200511712362105889227964873166132195417856675154256008989298213761904595748642951291519032513633708899520243159901389161172097806425491852862840695791008254329971251750075537071455499627497177899191293543840112020673230912701550386123182352746867910801758794685407207535763616812309839563996453370446245978789489509789974482256196340144523307463581662584191349495813249902597803966077625728029860357083052176753212495262000158250649543059908072447642244014258403682165919574458196732715293260216849399426010287652624214799380954050805346280942804861374316253066366715530311828709625637949774112922141967017279264723108964858017681044959432215877268983307742798012944212304317113234106857699788334128288682820755396632003518248589249446005960029673717986893523361194992765575482200348000530680974466015967181746352244748479002825094076463147456776877713889430295559995075604533868312825600717816995096679554109709547117293804151901459669787691742754279572903469428684608036830481907808902742843775917628299563330440277611673240259940736064987740443919128659860410673118078589109299216560853130842421440416672869951161349795175660733021617828272400594861171086086672061111082593644392339366824916760779671120801009053047113906577510964778496305441404271882694146488930652493625794780181365623985310901265201546560626832129108842719349682136628466275020803638208375214870811534118425267537746230854798663530486039568361570626020198932873003741425982200580621091848371791340267330678219597219794091624668734854773774963907172595367650064037342641838366142054333021250515804339655179681134499056698685790709094323571545933169866110800516872581517780098262953746377772365784267310850653811336794129693682224130370205976581618125554029142617388758880637296761880169770505402080311818858928049149291364403188545708612967756021230190858332220030513503149836426376820664545606605400443166040360539550839548348079361799923172248366396188803719893294748242056035793680165057801824855766081656876046906090005581276892887591122755397819181092500421035392232359144498121271016427905174168992542745116818583499956080198094324003862795413028729928738592809004269791630371288900575594030727074012420712287383396349476025982081717232253977465275142999423997545732156839610685517557547389107370732617869534783870274761289524691935776443217289334129938214049778519280839882506463921833430106587954644825237294796697094817702592107531564037226408156184491255570517783593991083994583843229189935437681088366581856805087986922375646743046062352830837255474742336727494262870238116881269726886224748863373821077471950020774740507980047428546309068230138229596688302993256028176360949708030570524940216908359354157806911169356098874989617260233122684423597509102873996595743597608230726779848063328580292370425232970966163020857691006252915512859662179560465788405689721325143835934874983734995940907110373786217013877647498839197021134751758119081023488673488496505785992301205794653718960433465479408192646177879217871733556976344046799408521900704054673897273688110957713886405190047424998761154069494757696627299131527370068677619319075075192593947274906497372385776688075540241974384496623207618202824624088636703879885298587995155844584201819635413076968256664150412905440013478526657781629056718659027392624762349285203034896821241086152685997062461099476536515846373717537375412629266634474824530214194130197837498853614779306579495149444642950036649947862011002997734930075049159445398515701174556497909021443400356767056102616094328362938884715355798764107854608022497128277153818207118036725186157820625425238741660137445199568225005886471249276132793242264052182997458241096713666211055729971402767959705339666272593562966270496300559276130914315025147494062587290916640576724946137112025874664186050949711608797930400954014584197128015895327524894334668899120168262579519568065295891268833827405670035295828753090209502365737918473237158136319046236304066678166435014089684167666558803784546142708729657831747511392422657506352769000342205026944161027113445154101605445983005521561523284341949568517718127087009770563032110365761031240030685264608476129305306261829468877319916188485239830327186540831296099939455319506344177913306540633235674911649006803534815495869280084448471319854571836672929503091746386118144179320290057576733236852506540221999378529824391806867989800163450922010075762443400204730025383468108631038741052056028910594053577362356206972011788256638756969751407205201020155230852535529396370462767250430096499126678140612097836128161662771946694668229714156968136740006658203485316389400555987597137131865084826036339394833753324558698028160243159843789310924986610721803317250557470489382954426068974134866629087850186401149138688768438729075445544242985067092142021450692006408713208755441647253834190672270704493035024681196267963128387337615857126145993911834392056925216647947170490020788305547551083746623461252336116560274319089529880163430089358224098248167310598019655468644554333476103901256283047710171088682908077693258800030925374111248222213112363916214847289149404681545876652222142011549832005124925060253205734877144951671032844735224096055287831373204954653081500205216384470189089616858893991334055147794348845789694551713306929777690511669281877780089591869296691048776889855679000928383273886117484879429274218173235397977972832575042018437577210262869456218408633913760472697408410202683551261017117044421069389683026074126467910943673845917568287545870199614293878954992286914816349655660792017324476777403907907920889778915223514971921410654036599409883976030209351601073281361219485836295403181081846273861982754927911561701179857591194055202782791009460483300299306927987360367977934490395671791565845659709793529714180470899406727658917470280940586087561298543896958116462937238453989703573910811686684344821034619402004202402267304213755253285053392229877205895984121990722445230405425522372351737230825637062525771096395099857517111306521304081333274157622143625803157260374194608157936485464797026661697981372248508707764252545209851227129866701811034095171206392283394714140781014271151209519112628550278471259583107458205062746717831266679864596755818968580193599079761145349469599245876438794282682002011125353543110092881507256679186957962918038801496201093445141655689062228771526570445499073143577144392411652059873642554388946061518644533862514339343555480520781403490770210115179404050419642186937095501724548715121873534581452720892824063592057020121894904187783387916788558550658291496268178996574578801263883169696956122173843153588022253806018827477519506476457127075004321701152411366252143202024015601724375190650829703168958903270280477620451639432103589357391479989749641495614541877656950198217429092500424564156229607417060450708602962341295888811002774077659011773021862439604152325791899494783898221260501085948968109991327253886857468033206720940824161720085037169079739977745089631587699777756206419939856810700937762155436131045396793440741913881630212725198926906778323967016534537451941937729232617589993631401884836991729465452077044768007949376617338749857314896369981197940797558048166394473140268219131848423770764464464101900340493919980389089222679555847441057867717631587165524919125087524314459258287919765324441207635676361834406987903459396210401908855082295456466426271976254288712472860414242452684063478346365445022088511934811766738374361276672849854361341085416590044606079305525571841478887885476567095927580107497608469902801539363305732922719221322184706641917530923763260033727955219451757056079847517855241802721051951836404318919429311102256899420131551433264859594332281288289984504174957636512162225901191070415600813510942614715215287874999852764508878590280258094104084299647761742592203086612148243249795146413709254033567893353458895644271531579180756659292262455427843372366011992039056195356770441339459203148554114600033872029254384340694997363200991488302123452939223179815556655888241325496812081069371084007744583150367756044464803782325358634014380055300454423535751224224574790021464827785496998232647363196680191380823275113810786631062196847463813709269115287960777178039405905854970225904534293840457152063755742465674667741974164359065531210565298470153299226771330083363290504610911216441786991041523892882398128432166992444273739236935970237631937932026788447472775911485012823766252480052177251077962045099628232637022090136286127847276986028254150587147092544310561448734826302841775775281491655875869063378334931299011809754503858655712421762528319879402458941384539622810600716310832774574062387768972179495530929771172237159260040724340295693594908512556781925334841671558813059879810318495905936960994304935461472098437575535229347422588246478421316817166805027743887299102836152547163245275558756280326714373706644456997409632398758746651719804105846630170255510996689118000031920468847325833842955848925888200499278184391964654479147736529484773610071259463124396935454512231997031869947773741164535814191835755271819644124478941439626684382497030163645000187627250748805580933898931193740280558178331870037455335108131100535703787911359853883278826162575784010349317386372195307608973854702664521918113311984223639555142623136239995576312529526711307851456733150229288434279561345787879258680486232517134184685392584736085206925021290786913130272578478746217398766586276776097882367640437014994307343995742868522185973487509299985788544607291759765092680079864836365941235736179814970852846848898200909906554458305764882183128699992569358165562855339169404255406223033775764005012268492731314809411652605710720628726363281609634468556723375088734563538335751465966804355964350474694063562684404296427779790766873149987885667502118169237011096201226954038035493805116296542332447624349505148665269651748528426209290749132567391264152345357150713063392239894636881960283772812766050886162136944563962363518755551706875292547938669000578314081060241905125284742610786658686647374916134961056198403917257511874270063938610626815813043297330060124241563976995879724807566663573751766879556827550832923270016540498947948544017917858204962554751871055383711002361771786610435055852317134726933885002061865832326160394708220578408505280453098107349567052038143887246789501558760997939100182804045703587886251485087034013583636112024219331496920203333415697730570642431632565200628688577821331601193863294632658431889796636902498276903432874814882606108620265747025782695337010602252073473448506182147606057802276356693742750131936043166995705523681864827746492525797968460113934347680862659844863585407489756872306058198766017093470740636650390161157539241271014246189986778124892459338831493008440878913163147777355877850275780385076618376397916739675170621382410180141418925497163628998775483248759464155878936452201112343749731059543449326164745541514855813736763291952282374204470550750725559775271354303456472632885406298506411251042651337994994557856346976253297350501776342878833278334532603269682591386795018985375398289059952526097355294317377296641562529010170863334517506296125049482247677080590521031009117229054204597194956722577296621564016363065984888077486904353881083862088327904086588953572718394332305438334580561932282720547473364790843527918641847801978194078539356337720010967067842951250906578102823408679839049941620280232415325451988700532444915563331917514951258160353442208336708641375024554202064989803643240096730534927912409465737257341189693130632965258554134204861367374723695427831575097847104475512687492819375730856231732375386965663135746457649052119691433574796759038405908198122065562439903090179520992020799611555309358432355092312716605851407336129342045172576903706326273347583432219635573414691985082846982278637651474639935686451444374465452666367435217380720670112585976796732582214090620848658192127628168659082751013809357054407942720205982602207201323835646191122404719657163459646350504966042460180752213969841405960568269219040046848347829584978687202940442680777591745935347906600156626491340898064989403932265981085702022944982462023572927429144428625112402848205105146142088220667448324573110649598965522947318791322504184597021310212685770845694409702729867496816386854871062183209955322372014702806376096365391704800333865199883681653377292111336196683500552908777181868028246729170456206614441718463309973181054463386910823592363637112352734027038695594579913363954035718693596130957865931492030364251214343931807846997708890635245516783099441888081800100781865939215128912765455511043397790425905606135950300135570202271753754757008657901866632924400158291925345133130705165298731159741566015110117200833293774334120869491802407541368428846710285350499829466046969042038205037134510274200022323542024005921452203007332657850160888118850740389713404589441562281275950372221683373754075506703365723996357808763607084136459849671877409274127477145618853983768405518784365680047110500302702495696824321574585815189132617589865263135331425182927481704591367527441329476676895882779382272994539447603902529451699175519477565776221394592573277593617681537991616852106204836851839173382403289985848584496802169803748625568471333204540844725162369832025715901407107092323105504527904899251162257220711355089185158858357711075029150357932297696637992472363688660882619232367811563765123839940305546128140071456612815078966016561735985208458029852195711470098958931777407889324695376866879457836821959076497932704732971425150624171015485200352531440231244599527792337638491550462162932374038731628361500639522348887118346336324095225610860833590286998743729630406340440916378178889137804655474463210680324020600679260892016066627646492054999498982550188497069631934334766866341553287912187774910701233298650151086908883436170551871661802351962466328277800535449010745246378675625543243313299473293663840185357869009322596543740351197226382290437569498791139167159842750514358720832170240758910777556398693715669326336632863045361993065382820616048697299291917844050390764433660358244062475471212307481098065927596780240079654929124471198750830906839124202001760689115253981619873574753210281488481216729033789766301580404314668084663386016300269995716672221541447565483177389683545148043034384365250486454792800737437804005752262254559240172416688048720979823823605965633051470472839299711211943237559539184887641042279451426908949070915900661929072694332638607269022034256213401196704458457263546538926048756461640632859707563914082332295209662242696293076100538268776671013361612029883445489378312899515537166829112625918930663170407234054511212266452458503129723570110534820102763648707382829333368309108984042043826324841330002480954861835556366162635498960765673686291047399573935271852802850273021979629467532414732413401361767526198021203338562332954391384022296376740917650243241865638843141634866734175441007966302378547703573584124308981424532342578258962875908904615258972349157033462707434691253729771625846340471413914158759723764637416805269219886712397760905766794049944950023375841500909794989084134861897538634196698139727410879478066575908945897775179612232806145179435840857361320898712296244077902492939329798187125354611331764245134525427082459494347315336171194077412033454415620704448114032757879806049997823223323636971344789167709526052196841986044120439358370800667128437035831022558785476814966011469087221505011875413022181800798015005305528379243479026176629176191038713972489764924260824721221463786836650868110377598942606855197921913561858902591692582001111373922897307993829437603466470063781585449729783331970563064309125541916993077310812649695199280707031648164188502655990180180862448503437627987740238811829224859377606426270096255356026840388677835695121402893132552189661706111385733002277588756526069578373005729913764637661795566471184560111596020724550126931290580931288857536204103108433685232360613141559813841147446053819530353984684033450713289365957350177068266725096679964532809500439239591136488821016123648483174136041984231037857749420647602862265757973892526192936774037710222045271020592178863449412123121616829080834165059649681245154639188577632485632934801906217795455617077198896662865100427503422453063463233265017113838340644661821890381053622760197571618223208417940918368718282466272392469501554463351187420662930849558344197059468324099352899050733874674423657085354720171801407487997360489988998894066254996222482588733399121134349370804462395990159211429246339699300614958070476960505813074450148185773191071656756080870367312815541027639166099506957529122892923357833324137778335554512826754728989227331319408868594060057003099742805525192393148776825298358295635919051244300101524934292560589235685678128295614371538978754648906440747987877207340192074082266250399540320125813890901689403724498647516605681219727106269885401338628286001504960822978389458239455606132390345191403588074170049661669151718837951555215420796663138222226937233617359426903475200302748169655936882577183791061146786913475495547746782118027740087303863509404678372564310236634325961665680650847226780677099064398146139923761710513156627994356451587858526870132661304454402044495959925960274194478309747529524262670248583105307713015479515299916340905625453051796937888569769485907681954772266971238466738910609297595782397702185233988146708295433901778583316000095542412751913894912293485541763919846473307259387581100150754064927995853953063916172303223303622269506234190776576683363514527395906879463061338955205490742353858899578849143572303842791948476243466904816004160833583685575900385938192997158877598321075844966871958390819094616882796681333551608961757135158195797198640885660949310011120447099817299975237235087954513354414872338974212832271691182001785191214769154646819198587909741589137345196148351876045347009249412091550609762188597064045657097856551328530811691874770045608044268591641397219251066730224179410013059799221170348994126499997230253197845713505045572170847144247854487104469748446969407402308542220406246587172411325533519349041845210151084464864858820589690571104347686241037342903824675795948383991519307773488689859459004294111800598829015984246137360948713661424581317754000331257883641952966853392577825562206137826643457018916782701910200827747975441361570728982538819196084183084392267885917522061712410729927135241006578860849291495774458368547471492229764358341058746583331785476620225932041800902878597659061870042969094603074510298586698027357107815186824221085020642782260537601710818025840095885728887645203591564793164258494980157463409979865546572057473773710027666593827252483317458582051175007857035143832164453702353306613823496903537013193678373536945420658189219525706122248170054424405218040777429391454873523440534482640285473485149629145768831669038910294124958149835759736785012079892600391731389492320197817919266023537458333643168563893309391515064529869540004282160196756756959909317809111884754210610443187051141921862184178191803074434939053589125079754090131010995513340431903939114371810726470257564128885948060152703711248820577864328260723298503791722624285382605692258118661982984395777994697868085675954971197799134905036150474004758540178969886130348982825186193514009869568263662150648828318408306779439597985861484340266514684535459953871140165508150796154465169099351040837222859673764521180964300010042434474885083651798212291921031933056848012571933693552363055610706815600900698459935243074180735192554602579044549052018728385985210297784943432902378573734362550897065683657788711664121077399824365971974122359431689724811079204276938306047829476990589964923338258635176589271528667064728203688038580190589487382916217121056243545293763038409023028628239455970141137188168969164365271452223111697417691811917674448454023591450570639259136480771059113978586137016627990812274596260810932960502273395509611487887123588746816825900689095952691837391777554185079392961210878091895889909592698108919398121634527556110121748103819012855631306604025659226085691669606040828455276235932878378576408021336500854860407058272571794454938812465083369315302175281054011445799827527737341597047793790072888003346865218081046137286443048800824968306697640120737003847758345154118002386991834124995079546546324985895949949818714438527718347537105249126047926919026212459078382576603690413484349879003368822745588517877722498643522805300055519081948173515870593114871542701303020524945513156262998061605320943808345127793082730247129871281653623375180171839008459522272418735954054897704194530257546043663720616213276593085613766982695263548668461265296676486275178976721924082590342608789287301569005755355295952123772055141789482736051985416103373589056653084876709626661396722938765501917802189155861941394727887523478282560154928656849000096157609246975975398825121017880264796733882396853320223486148368703218818700590716005514562809420446039851796456381180477668449664363063203387740900117564874251741096237424785527332877634729130635521781967516310217372496504150239406599805140774770783616878856097021803927306862331748315517953867861206253529760816546986849299736213193680160085343895016465985998965271064289952218719232286152633262879093321217793449620437239216568359973247949206207946131476032214656321572138988245543397707463228325441144126722336482540412626998577344839672066358898605095081073930501116323394355144740006157696998893621782016952226372493181821545895883485289692536804495397774036650687281524214392902753818062235168928265852777177567632374526903860688994112717896869554462298971849556373270100146470222092484861448701702041956483557732763944319422676572360097199838521578946941357396822539069225109830407920541871550441694615677780956802179684634548076312524001745601863605399991809842824581387717260590459739581991531613922486359466880332066335993866664294523462672321378449964692287120082408830448381300704918255111224922996750168674417244605869794012928879696199830668390438345928813509596646052943936259204623774775862663690802455115980915764494477025292095541654632175086717944921991235510405092398434843282535826652228178486019347374073439227056939125393253292225998818935069841741002477029230151103917894150653877733267612330186416498102366832559072020893640389551852219869299914677995860223913497881629219303509115547255912085229366933441666347273199897630401837183887850290561919302303140924423797372642926709016332747271971091813158965284112546788405181741289417880815901741396671602877550360523238155640084373116449858461793183756679782267779532846633091029998318416716325581453501956790203154165297967295204911066443213223199500633651881923389207878071785868392194720385457982285240678277519553639866544842506468715229070645105926045243866911291600719807041514877155134127320225235158282876156939418227341889510522395395686579866495460833224584106606744508491412355441175723978494449298959191428765871312044685388859736550144856647485803345254661827688403924862090124681398363782600313821225661805623017362570967982043180085822373289645265751686472259951720493355555349182772755497346338155451736730556665010119140327111520075848877386283174483525277590274072616778997540688989192132666825345308049083251796658148007838693968040561153250932607563517043363201934097510613677690704922279767263170614093356701094245335035513971040564629823991120248757748975379318744592916113364252731981966126556596363805417794593692801515860957273138532199110158087209111538408489425217751770292672195640675554278457567166421473502938167171439096932574862539929606495494205039604950900659456693773126907402191025357391426590602359015593215568506369526900602183695051077164779137194917424268200030012605462852024646899728783833329407012209534154492980355147302547401984224965919149807925726517935419720919362485557480367324206080739055557817007589206479721020645588472192382391432921726999920486720450112336042306205052135955700115447508801318333335012251438918751245772130026719394809444825985168736436494705174644890032536110079336123743028443458574374782927994243412909855027479076885474173244761566915811703959391610146349463141986623803607098232954893987393027420963185045248777274333594667914315388410399272464891152728248075675538167558373560341120329328591986122261236476847713238028771537776119899149601184384162075970172351419922164150567746609099883070683855997748798275527977346500655093374483382453542772092090835948467211402916528353349823876304444397472133051916976257287231517997314478940537726938668755397937729095933319619066376865383392643328255221228294733429230645072679052761075285780392374882150875385806890974789589804803388821606367352461332320184240861240235593014623859590594047233860520242268950029258834819659787591597229629218073368516325285057450037700557029988417039877669865206525357290971007462913234299193983412228677325345501199802614475637454280416695014891962710295447077678721065529015536679750951121051795536746928851593454891442555939131840228641104946899270062559152279575971263105691486736428015031440502207348205131740916292258505913487554926385223399838404409698906638705041935856910930640350189731825808078590443284396830073232523019052703582170397994400920037976710980295987654921912640924446193615269681765076342329555508736207288562750315355502157579327198917038357911428025979885327874003550189256982652345583325860155308348410850012563938972366470645340148825119920839357618777843467694678457219102941257587162421230281166046683093242743001518930312312176697915587261477495762492523544772569993110124691123565335894454026671312936289201200324354523979241482964775527113148378610117034210474194813269312501109220852881131699027826177960191599613783180635959726430995892789730052927969401459002298332415348792427162853846597026934288843479472763872109669259185916360027818805643102075415574381276091682214988611524028615552161702102872262060183801174650030388970394940500056763733800964253706475308801345691633873212557441639313661308927582139538075218676044709855204404196820104557333703046901249694063485134973332991224166313712130608130513261067937674334992445566041144440778046955891342224379794483247972322376745487797743744708056064252083518005554712172911481374244067076062492426361773044563308941872149622348385942037152994151793179895238316952535468479132381222180402067330827694607317186380656921389281855472167962579156967684632417413506488648213174398124896472328069521354178859703496477848886427396948770791610330539231620405106626773154113391162033590486373130961806756503483668146920428323185573370624312443239796897694397488958913905118419588629613267120653426092666042925398293492124965976414989585382526095966683301286978454576609452713012295503870848711971104656496301057645153439594253866839199111315136875406480465104122962153777659179683318868790971456160072441701140977041814666470698550317583185569044937430142325954832879238157871467553036006587560455125236619259903134490867401900475640481360888064365017845319348662230790437483618267571483921757696974597088403927567788107727578317296004856895116191560179505834565884160223294692556669054401346731910846114957538217018384453220458432331830811257449733348888162399264816930264574471278741428348381900690683674799788437242564686694925195686512942593234926302197216304972917500167634932493635688155780142956170028599275859228673931693677534074175974999697914605734859793690233963474522121253593574651553759481142693025632896180471188503297718957430563679287631011706993899539057609029822856286003491209205679928927007880902024320665901592049416943130041143471397460609501011694636350329840771009748955886678953821324753174860800084684650814728103537910023684525610205869987100369841022851417174958012593378543614127696261479361928191007435013394006592744826959648665547240626272676950668380860876384368466463320869006822427153720390314702682274406676614175084295171000288399217122574132451993557492544608831568929301175916119712180086335699218709383603742256407457744534930240086878955069351593833365562946642156752313596018499527206779769710909072023082124171020136379796445766575080288356215189322605341136485144317907839598311546071269597649482015610653543671939499824268335621658572976474311715508170740368028541414024115027819261504974343296633239821509045636700418601767971412705461553402493821360007429386534586370464811042129561204678900505743310791382570410867655434488525913495241334337364081915097502669690096860509755403006185145186753497121307497130272339539519957768608473788745320972824963081843053140936832526991863598372164410828591837952399317299338343692885312996985864920799705562031735241289542194729135619225928863602433660896909831189574673561596992107538868322211046906868025962799523086805570139534063092291128990347890614346284586105299971913846213719763826570804065617531038779321011008875767505733638151115165407023366055046908554025136196421321361069416868990718858223038767778867626236974226282311069127459164055784906965889900908404464572027890950557506222454477081378381245351804837452196373791186740460167624025610182794408609385721136599457427554985141994359798629966287791861927269515890151845301485972575310174531036023961501943338391630433892481503805175938868646650687939643106342512765853629596912788556168828116237038648630716545766974970173752918301697609779700016422899868018837035379583397184721532947299159692211956202906676540938564809033206696865419787258238415863961692725696064656223831210881586894899801208590018046832514811119265100869271986768295974240028657801524419285753065064528475114387845603674312340483931960087120623733844576120267100477761472186232927854707936692176220473029926712110055091940968482709888508696155721048704471468559842177966080888841712286276437203573520414734449500423810194779098081144348977720992580050730738436692139743155824945429625947140428209003143061425381164151025567836912462159856979957176426608022122782542304659376105880635137405726663953337835583397605776407883795877519880225296815502153168202261256465814951528420018432894238978494564306982132144808916037163570545342721585049704830046900920165661812619957326541375764230575391216509131567576332646692281664166606346115222512828011132625026076902144270204672153615376760961045642813689566364996807596778448730793337834126375559496762185461773496554071351414270078139611839259825745683007491690869820513734297653308947224891421907442022695645713959740419101487629731691314097947497269516274891275750445742166136442117545925725526420662848822912544893778628923528801585974809830831562193580111831235992759708167576419692694661079991709081140058399593464976327467373531756780297709761463315117150622962417824228624859842450857398632650952892675509765182489061158380693181849232946583355203238037144365519852151022367429957119809616944207065746735008892619675390608465324324292113370968435051022594617559317152312207873123205739760065819865525362262403924443410830250582153117585272478586142606879583210821792695884625430472197879230145180086076969846913311935233511520200981677918123024117154680034051436263165664929947486498823815923132944853874999674725796385528413677601756089511246665166426686570147517979928716835993003930295105967496253929226265372608865211133251862274904971420443523277667216978611816877064720670391959701986858422878002246113852467839037614659692848195110381249760871288254041231571205406681117165893220146825862449376744301426681576024220311074462655146558446769512466692458809521735341433478250186337994585152804884813756643207027408778525091653776245483719049880518176367299661854012270615467095153357057023916543551676978432095969253417010210217886792313880722469880432393233536895232419824201203636416869580182029883889501468547006318568538018184563159982452591734185981578250314384537667098338233889696297276904306293451703618248559087546488524625080177787084993947153135688621983221898869889574941955913737651768252399925205727297107888873560795486655135860548564624735074648255551518904384467549206627017692376911287815668250960329474572419806161312531755484173181133084701229793102954086737416593714877172181638482779574212266555592195591750650297464805367430905663371211741642281415243795235000970200563281373029677873495193888732739928561826056631893098122273567583490408365284601199337715548440544728027949617441238740302248606631770646673791614551176892894496157533524315740045662634899375671909473214347622157255338413340459846012565382345633670923167217799821741855883253970108693745077440707712831176416030483059378158734396544881170149802877483074774081609153208488357534285461438565923541341753843154317364957006083029515031919266001209357021164997814336780339907426879305720664156652243455792083908090556151255757483537276269459196370677747314105936131261861503523734313651875270319393563687428708033192243103508841119011825341891055532679451713109279468294118647784970737527955696956264015499520442206205726595169626600652739719451654299036005471274811826315743682062163596005708191718143651564807073590024041107367354160114279689497252940748252075246212583320178925767335277070768083119498211518812806186828041871576595380236467253020332470631633842163373941945152326595988950433144174145953958374177386159221720852500744483812420822590902876679329512687457781829876938724542103251466176469413937704555970608412601335215195311643973209318669684668705542409500979448585249193929646263399130621450533738793052782591634179779057128612742360333899292953275413984800248728658567760538638134989199626495896112651886887693262520540799036536842849701860001332764241330922933324165949823617234645236503686103584273258135144560046992083355590541429585210011203753173508950019865682613590072032027340393051394867477929232752022515071789006805252261547942648796136201279281226666899607678783739887588628077391035420642971497538237108799383163206040794412480576846780694749970201869310197154129550873091125836689790340997251806322690688322674777537307696556002920432754668880943691864396940129269194137396713785308107629319550248694096109200364732671640174037891776584350029463212708661182381655427554501831858577735198091285346321225289258609132386980100284054234507246629347076974657989283026827682703543892772553667264808221682282657349894091419255448542843013872538134867037839105715589420114627034222596273802698991776819965904792237009598221164088505622668822620716022242694728711227559990137846211397278996690761844702087821503661608230502462256658328968412644572417730802547233883048805365244755468357959192161308964435853585598495610540545322481424397857157486756172758860430660689420330741492515086879037654998465648045701303988332593437440255015982318462481584182178594352382692714166810744676184313571111961427482632742329003631890828333001219974284219982608514704371698530281155427714256768195699445859395859285453041794820465366814291495882457791541121477558263525847584084045715414956980481427781263103167663342654358543505787560957078606356559606308878590078229543507204834588717961479135805977064239531243030649353799373835004335421188914543134810601805763075953164488015238836309513382428282303340995662371903679326556782746378542020314623502163172411467994727707233738976520378046113288808639692033424314829868516510091426801273180898946423761543221311142335306663685645604991124699692236877242314983285842661937229512649805318846760301739201837395280660736126704881497167749617212177879074876015134767620340218371829594875954615626104612396103135500885323401172752661829465147259791663640478740946613188744158547433048315815130748163519792488137675358211738470692952505042285222955545941447834223993036835218579497760420193167291836698148367294720456444520416675120338876578944517327636037405958724251643270097516778038962755186123818547582189080296661559074478808502639279529130238112422935659471819522557185979002531474639578070101982026677429305701787903195332390724144716481958604987764651470423585092268133679643808426806654559626024998785379134904050500287792262731912111741973666430069956279820151938482568697139402574453977451995035517080813351791902581114728275323634392093026769071411590636874305197397515302377448029129414920008039309303822353343875265596445536212717562914370379028719084919164023327254215864886938876041595563749997455863665244929874006493154883011024052026274430889787455336115261815663745072980622347179281793040985230515223957088348252607993623449770486514216244587220319459023958652340634745410473963396749010149306257909762791214513076835995081253331113036460886763685241843839142954636915375435464341574393826982446349650579017816720769889203928941435026695760576489316632064246210446838510486682503973016839878189751742631291775197723017890769892054060260657924667481846872929840641969860274795793157564762498081246694829310016828608756753147994769837346549694689552733634447767500794926097200521298551347795879576484914746285276203466516732583499642552643889832315865021127769485500276951545021278333113745116896108463086802368863789443161326989736134405130470963785585674380939328910773240329854581418812753397563865437321958179263912870482876914605276937293961072715872220429316425068715810748942719112331899273958214455201577320130581403988894887986002644512891834059139086546214714423592914888993547332123075607180959949443484252383505208847348156058051997808188159390600863203885561995432764115705222900922066601667254161906315338162379659556726103462165988352285181690252660956311592607282903822066446059498981170494546047875748891351312467699407484633184096003259460083083336034815668936701708274376551157620797975269975262514646220706993200552552327712700000395671681581327327698167390186595722146476173090592280206277445396916684393428933629108379990507352806776836480823171201381769840525240177564312756239507541623490139992204625278625089595097546865051843719747095935593399686910515457041055646593576770897490345677601862623318310187798559213637885366866195465740218982755532872983730563133171762957483678180358032908771838317925252740543034870626162427324218067014481784604119334179683073823068585076499027553942867793439650711593430879180914204350025049049687620441262312666276863814951608942771638357347634553632684711187357909550057155253107166411751056026362225797835180612646418155696321799319081413153348775550221354704108967551574903762177652445542818534741197405444982493205180050956293495219594766814225831254389136114517243911690215672363219534965798708456979220917874594955087915407138094770931450820261056066885354511772117803463610472239629672087139508235796199770403708922160742791143197525970587044884451267590211129826605112414545955837409869483015231288943509297238015275305231635890862056852003007521658272513215198061871460638103749835819798531450221346561784720901587333333150040398979936917187559215638189043493683375805760236976013336207877878018572431971704558694644503303246346033430306495690958240427593840075441812584243831160204459257062316857549561675854938459502165636479748015575216185082289393583665540440688041730301858233950459680014484506542599161965840100240248752206830554694975848115729354234159876952411562854648244043552154831514083799786590226057074963938043302878931334382721677171079720201485139119468584275914059428576464887947753973354786275635622566799088230445441931834636957850100480645213099135192279983490437333510031569554354233264660154250863214116021194783770274166479385056144859613729532784007540532757544613340006594944793687635377155004179707687432360078469934131655766585861097842041440923247830819209249351085763086008138759104857815008369031991947158081993358449874264198043326014411118244049866594479318846090214766519644796090161018919952098456038114930808095775622781378944525201652571972205584327893391596272107322576608909811224135156194289950532293847476327007894982320955269582708166007470660974441968505545319955044509161191945020153182415023103804779301111767219489845276270720001027993571069246397822067447712741270019849242805900689239526641895850268048283470371576035507995085457169847286891137028896655112323131406784621550510764502847668137327658635105375583076385796290830554387849104703049061494566536741891481378389699400281027566230253688893683710460617203249610265515390902617808689372480757196402681691608347007790608807320661711816393468491383245949277340094638568523943190113567895562489149083600655344664793322591126355667531701388185447797954318247425809961655247561121913818396437723264846314068703938855908425418744482561903824092466991203796438908678307681215009333038663039710365222667829610811693826849448781360956327873977324761265984454089222547813950053892312896299786391283868571978021969569878238506928829191704584507405472062492496899891827573492479575942489649103896518782826323302134932635988019676023307166629129453614666090041119812839323571596414542968380033364865578453527366467450374137704012071604134316655528239765300748517702838400636036710512297091941499424774519698858626218325859406390300123033030053746120405890828864561114128990014903764232303577377984567553232478632647758960768316271576633855428830283532545079442837206999289365911632520598162186308308267516638233776169742842709127433262479633363670471403900151739733728463722984561949614871326301464072686985859388608447220817104017813545494965241964426663248824158865265273700083636408548357988925739192693723279800972777991150041851639590494080621440829034390857038228808812138044201783112532142369971538424584287560159290624930684537043382410627637388867272844946444532543718004097073796418704779354335675984034159630835671222267999582138631377617413095336194657461773427994106833208031917996690787106307150987587906554157118016799866433791628280563251104636041041007677649638973770311823706247066179162903832618547395638535090121491896665495535979022893210123518155291781002533650238682215837769313804926457164874955109167197794634557803673586470834488554393877286913614286037277285242364557847488977510798181806122790912517377783323741748200718191247105813724677769184465802380304552901745034588396999787224413317529491955078622310727562752439746489222795430514160979979765679023930147192438647391846041059184109087303240979192902462573166914364714629519702337991438013552646799242524984431558742808322922922923194587020034972636986623849995644444746244117387708710308936988634216506350219278305824835827259086426731702195565697008981967827365647889832380936214010120477101041807597228386199518241557288329065210388048553833236570796699407083310670496699759983060610499876468375122664911788656849254182847068749719578760882620413076759611799431958438342737824955624661759504564698486996085293692109567283880830481884067120970023217335142091678452517208548799504753989498372656298548175128475295252216379012513310807519111441494891095834776947930232326417309805152620484404784821159050772225485733218248372480153848732484007851880241468234778804037050531155383554221674216956266496572893804888689611480983212939115628369215507931200665435789827050990141717404825082589723987896893601489440812258531647862951271953842452144057649563586472907374514626550315525139729106480226937982320918658305073263416557580439824198703259761137007439690020371266466573799900267341695558870492182998242051772769540385370567432724181829252075695071907010581602011409113693819801182121626681398346917048925438855920840430880613748804805284280206683961455663033793331868287464896939970971801392678616373444837325852771042261956418021440724918742979014115064459981432446277955010676826656698950706415731799492935926994097781445573553133310227140360823572570827943474108706272429844030162720262034654830406635476717917329385353838102099794433907026013590821741474215159287637736584398789171997188819028123699032423241892661507369334483673676837876099881915940222903161803857764534175385048652117186160194356363716004448960768285067129217389551259712447210471206647731146659234817880324335496502782559894592714692366141534042723151325093573394269529743501940969036802055393540912461104284779574376455804664980384077252560620182790600716493274652281337331332404182854602814990282730976173385473642089969040154171289479211944510012129726679118981406398496984569852545186073080857818728736501085054482233466981345196615063813588574944611871425431821330891509935870200655512999270717609935892002536867294067407019191308803308306782937832915237243174939821223882620438572031573130467779213623631363006971166807353102089460010111814485498663041581813863716868356859725051657059502595017677948365666617654016128730034197686627453899033404888464180487053804233788458112670081963515118931236981766303796164178909244075970478138798918309554267784479982028086963523646460968474642450598917985350228259672342151162741869717382879106905440654092029585601310403898639122656435575730586225892416563665082204929499832063162930624186301052608315571147005214932207374715316268421364341628683092800619338414336117224196450961941704713831769395194977886174797662875195521401028968285080207141252648591909168857282917535009450726990093783601225580720743467602423454948111842662566071802948163534998066660259404398054593438095466176727868252245516334736487836086976967397526470223674222669326913544724059343224482395111997194600412003292091557655648805733973320314427028735381683455616312326583317432966989457129988341818655002398217873114038518768143250432870863382003422444382475069853951032784535081295151583791422095414383241166961359778831062701322664767888116235453646536614919344591479892897287904409127542798924180715679599885910275993992168552532006601041314045768142833365684849659200446045473685613805538624453810898069910766925364364421892700681756697260362213603972961137702513682108021701778933825756958588375614628511600441832128098093368251443519578432678222340276164277851698649831902598129612337545859175784482656588577761239398146981951043277880886284245807398890860432451613924586938505807221300385187189338509125440236411879697576661755216609881348656155816262742530662467268472939204875742742823233898298775038096040444904829493923106226364049105941875826153745997811391995398576426240974946056970991023477239162653477417113557879393761774093529673114855915942158830069391842383877319005816287679067102777498176644168447017526782901729035100351853315000130685827935994931156728698406377573177006298517840455069645328905643609877936781587657769406415995313749468278442869717838687284853135332112100671307979103404815309936206505496311873237976287124541442081004280748766662722772574550352407319562180083221760550237532138109143775756253759446251285781479214617457582014310865703225262841612853950273755887329578711108066772861440905021530595263892954220726301155419281089542026989237712157011474539896975340986630773829260814750664161782293673117689532560794387321139386713105366356138387843296440576045684755342090926782689993595364637107815209082148721912079882942324554165179544086447758042651183310614480948962287070352128283416373071362915645202789625305114952328934538151868833188612087053883471844583783474724438677244068526856203685814106950818281312446671096936113609490513606727786549464579189781160150290329914761517174248082716435516622193505361081190952626971684584851413645431948453068887946600012295522502750595801980186874548595057118919820945581299588283215187611467529620028847580572528738949291791883890562843397254809355525578076873070657377758694410846673628473839106583483295561978199414577175105112139744545971247691894073569350814237180417351818766226093060838046305133433902283317162028323547752331641989321922784269036807520820817856638565327946090182666770792025527052672607250952932474115884714636519453212367040533414133634748432794156714821415725451224410301227304601981216580020748380929970345408223332427754507856861801558899450121925203910207355840353402074689560710851535645912787342427124009489117775851664796908481285592342785669983379809563745885653681762281126003643026762363405393588934652279548136280053130413624995985408144178663462128193301609106174629502729843515472217257330445948681066461464923217304978128455086474092743034167860462490597348542210940150630830512110816559286609339956659937468823347958522794184173386163956766189683400532022610615580027617993064179350531953979270090430380659849301905629171772572090471590203131860729601802073713524232151263664803459360350897551562450197121975209133879139041250149079313835683317350329137458210770627161995588959197196793049023736494460442237060355969894038007873216768593600272411354947463836364462730535557568774098354829388706423923853316904994828942336516107011231413417455114452256165503095104469213607402618765870301177832360560841355819833938192859482703869492100805331640154631788658463877271410114266744372151665319184963746318217429630810265193925299796461112114588108612110197416350983070386033519183318371206910602350491130519007835470516934989926039899152101436042064795577922208042771803887438884355329978489140769220927990100667570404487571417740540723167157889662459908323914226445479958431507619779004969481794937404638246759551541016399278922834456196062026961775537253070870790255268229452533757903620818215858131529599771617445197992364558946966689476046455808233006492008244914286093730146264075745991735180664339192979479957536321530287254601506421895492722477979128655573541720824842640585769633992519589692725662783806705534543278319956249492878722310218506037323437054561962909853305177298880204129769928889842094570727598264990505406958217124255408307478648296093245544335356018603120622324807370297150043972945009257585484992124367673215183705220556400246461075284968212511037507454743947946623584210409172523340804436438436755534359711437507617360824587008328366179283621914574496826284900111659970674897071829983913667553696035459249529070921978755452298643430306144129490405893838789647882288020317156814518309859460087259933165307587060407622537831763871250361412037472202917281367469919807509010445583890293486795892406481916042211661111262763502107254582068533019856938565506269632165261135378277922292965497555162657294681588927866226180167125829412969464801027519552435312164475967791926530354242025091805160693713572091076152913589181519941943225777295014141964766480397511420481638995388580521265454032032196995027771785565171771654206178696289716403962996408197543233854056881115670011859173366970782650348002806987038917639059525957441711922111751533394184868924896092064974810063031346665741771573799069519958022127829309941779171223625792867244509924591314265417675724164116174621484924052761856210537910458024479529512180694012942809924360773448682748434948474984693008832624360997192089463723034446502686392143314255066722814221749027539369618660872703021231647562155937547485969361682124208553299377904991099098746619302637343256386408909180255388294011353578164164672484260343251083853455972668686688819778377982599464177137491919569818377548509938228777051811092087585480359943294396856427800810711735828536580017798768799392412773650375820170493882487430090280065631524937469147445495524869162886704903495400565663501463494786436420625062791812224485034957972990313240559007387602747918862228315783925884235672309309651171762634832415786876506117890577401116708364329734126411059374484889508700797216800815092855921505485254160728879895148669686335743607906596608176532646780219168084254086782922318441284728285631445015117654116526467404137817644959760548076446699531720758378622606022892648772863611740150600301740679208659400523268336692136687012264201529573092961945840343925370305453175189321386846720657645259792248828871438797276376845106990096907678513699959669467029847731872117901472179956336442255208991713073084910436975961142285829922580237470529482706080235320379122245967526168040675735431038577663886505360695220989572965621633988456915862585434741386289172795874475216070257742066490974123727471138086898750995843529524061111848087598257901484079195167290259737740973627949696098784202539180959675206303393387488946043666051870536797901839031911374803230653969404126508315325895548052694031357861634873589746611001790091756554434388417283609983761451624284851459191348168723482943224560539056926074637093856304104782463613047219582625126328369933327018699991823699509799679405876597819801649052800483559399167334866346426544301227496288791361172859039189101451025654427413999344034664985112335310446532073154916112164997513945722023145958627674810759281296076596894814204980026489801118550358450802239642518884844075904140556222532285737452741292686980736785278907539766426643510314010256052614094486967146595987793824645309834769568949749523127209168749878812065296768114035393146385585895068275648690369992000290740881631334669475356785822258625546592310124863566898756043122957813461857756775736228426264939510566903509085653073987507660346231129210385170737350532324279194936584216895437787528237079269101464328742769985798005755959521454467933604027681984573119540305099682390422226323838991343869384362074258114843024202889700883654479423788804797585579530685645547560068497868152224710227833100540121089472011918350006989127029868442965949113187975424290199259495344629378070055552641929990452010325519438204532256810378275601194443943294511416091337649796639131752320087885673701877736602652771115470850944069716627061503562409306029041976345045899115706448252283128639306593865826302756726982197765886741784432104483792152691212605123161377366286298845307270989367268683074102247008019866171979635811745302925992588009759384855538522316361557429537537845107915349145404847432122815709003059502263264684327857809810436347274947267596866592837208989819265356220942555470701927701150058364677037877778085048936854818683797534697337150578499255507144615519697663088104676753262304403750965123598602228595178155670536037020143660073870033097090197084544356543610504477909684792864048874885262127508355984132236326386538290034654728284164260008705482476265545886057017692044430864578484291706958675219828784638393419400862787174916938252648104649487253452961307930767224856217175161391670338616736853204137831426744067746616555585848701774339017689985664672011651249420081353862774510222388008258928358209163949135299127554792719385260023481905399777855912248443009457992803828962638930161840155066221883831327948124298133779240031932903584567227556529855147601716207571571261810468791361373685887034806175131101162911408978487699689427902303049948150232412666526253429642802540418272408302617369730634920935735851465375469280389391741626074769822162220397175684213480008887455811464948615680980479749615301890703647380171283833724576514187477604782149426741532852999340624453028848904267800553349374544125331907019735927191501030858796970263142796461970806902343475443114083754332429659401486079589359222434118804085643431864842025984615053406062051375604067015523630792301735178395612398598173872020564053566680965927637276205018508163550164573918173499195873384437241561604823691863816546539721397872902411382807534554488916479338182889731749171887504325016939149734416530222557984609065802951893660745307599643513222355220098024577064592874572332727575090692548821234736893652473389676745980460533458576456943329589355468209282190020704553944924003077969474834252787414803070178746153079437310678375355672744105134333704787940297506129362792218003062411714637202170917546012951321708903769341677894151667530394559465330154779962970547169581985182841408516397562546455225039094798373781770786842861653384748411387529843445346851269744988264072606006296517947128206530004967109465072158356666560762506890744321827617212024682666829697003486178148628687414765970086798987225475368919945346295609311061227157276245112005064632721426798353332879661793319615689608028715988244774140556400738684648301202090053702309585123054196916331499626127204329589347722386209794022442638561278615578851014389952967634157287547163353756550605257202126548857767887185614967546377887620841128383895810310188238810220718682238261223750235366895268184434170968123738506414369625074331537791206029533949918386755025791342439798070414510318157188991739940728689031578527704832285321580088762200840618518529392663460452567778038007243205735683414515505779402590605784570806445687216695043719959193333073541323618586226780384955126636560095816244946233585827566996098033960375449207966382772045601218232167214689893460667048468064840447131718467177039783858155204822046607403607005226446494075855845310293937591022687416722816402215122979685669615128164958060096112546203256681369358414483881737513763657521833356056843963919290199961930874988482727634716112770483629449238503776575090523863836715563031053725411771001247385293401657437992858769963223173161642953139396235964813316052482192865344060515699103112568944624783289531485953645597948361764377540655995125768281047609964802432219571380989533238869456384638918442042833224898605028478412612754531024638166598043436914031955809184408591890288528309028612368291408891541684035755645059851042383268618840546834326693929600232180859676651421732787879407638612240783108754521292158575773483173838512309277063937377456402302476968945883160440830712205760888417056189276415750013611851703690495502992451431398456649810640057845651683125477008557562087073480813831429270455890773881519205152106538247468529607706410116224079806138369628402375260139007646446224155802169575888421113055379012434995693074567601957248435190046740919171339040192081252849426185402000283539638128092628271493982227850493507041273648081099124237319071838700151946137685201062877583741331075044393763550364578673669150898342498159820037210225313824357336166391958989987035997750636141188753883729270978757476516001243365330819044510961377314494742990440514569721798316953171174646340006923370386709293329805993610848840712738678682234528373682605354120424862485659378092022842165879164005295412994861964418708845289891039251569689186116265443292348660882819282390786441876647702576453890534207758010960867965905405245691312834072371167020115836227293425898133288205512524642267993072710867053481201311616867661691122262608320512126160309494892959781341733039147925121368150533573561534335387432602158385915590367110308829402292933071275159697941101591701065769405547406202442358331660254332707773308292783197242316006028866237600578620022816322668083983855267227152581621542362625596756543305710974293597073936743132708694095949021907799977405125523918963197211212950994639887783557036971537610846332778320694596415042465796088925430459501417423315804770818004403069607718371142916663697947711215861052249022954807893772466440687660550132605322551804181288710445279220042369209704046158094347522232752929397227304132377334383780007596761340773947076908678454541328148374258192473712534749972885158516550759969103749414057950197498923891760355262456764303434189666726152074206563201649436413844818408217366194977042144983240473449259813356764430314019712184920778516650638903219288656319845706734928672900797573817972306127724226622785805746799717282018857818457390971472750795946081284740550505628577804923682892432000222991388322979048663780369259895247339089883589002770817170054654243919221449325929331603217121025965710182366712822982097097556453674624722378532042833718728974019946948254325878476598270789955183277380926432197348913283806637590030267010365130226528776957728595567308302139821122252285557158454237296882993540639572308250823786275549252912829867987437658429045153282961728558485006636145621989350619441824316963372594546092203469084616635456348361047361024827563432114269145874425507216872186050355728885235505068599996082547914279656546537071336416657704349217527750711153148746091899713035891753313158742956516044117471101865542207123120181804365978515048822764088434864543680321279141701994216857289110770554760720757193571234016753110350060550633923106305487815430857429585781976489934407118043187663782660223045733610091527810114236583437993876015920201919763032839610957682431297614264769242809058005586607208962303230602223622089001081893862211388906872958825772975828325284163534046285389452578039556629225874080100949412581961324676277591552040715093124040702932306049307417646080108887298169098400916157143896365667895381346052101282211158513469816755266239738421748909579851001606821552074252821395290712529295354264370129169559560219829525522312749296878042869189029171271424465666722081670578772907330894923830562361284289910362195799298045674858402970909190532734787657128766181034463674753572418488709218489895914557403649791312563118121402209381236307746078999886919339773192139173545998592240263249300339954130802372595849538768348271150860176473161917430563358897616615047443813700355379060211325816349079893929618581127133441051923899764780631184266305284894039396036110596029705099734864822137487721533814166985363075927667818210748566455230630827744049164173507277708242667795826605854272663686336160709294632014046143919790162594890805078386014464593126418463962076898348156867875589667870881127389264366190574744325639422149075798318751103582088724385580621345662211427075798357055640116794812168926410778265512667097013226689669872256149678037179992875033178178868030501743785769973699886604562756361165998489893439550850310378885194016014114339104544111530825747545903545085996402064260310366241696904930869663974537733210680809866519464106242062530878763772608513077993339723605597882065272656766989571221342139265727287761747519600308960409148216249006890913885992426268411634540149608757796628085698920205325807406316223843838886450401289504087535239095164073868899194136328070487543549208120580796897026832327269667999863072155638590396319573810537694811376966913115192688268344242361935191037982623774083854404298663235476058607347439669723018897134341896754527062754448026692596728043681563871086568226612294888499497093426730050384505237905413608435834924050521823196903626268875841636299104102623944142569550986341712110593915143095502700180428669594912450385823018253941186081287125732276434213476557706008412165162866714201940309897711467162194184289020265033299148887126081704423132519776696021879067027656437876618117930717019102217788707355096566204378291438683270157897025605452830688098105248316036841376896254779317893988397898847473034464646093849679299500020072502908292078625201932426370722011579279773109156204254467401278799450492529155900398805404164801037107572381352058658360182130172734023268972637757165826343204073930527858977624067356166318843332073638430994708304545858592298040479409021688214239566560282693164864103537704240725786052722864932579382592479836207653970413594132766703692393364707184332100855595294999386072329994743313753931024135775473911137541754819201089394945508853215501159141454999845509788879730606646571398130993442672180296967238816365362775614728069626332410992784931653215778265586543195125050329375601264438606895882364779185151794918978022597414570035546162383718424038318099928292346675589407617256951021127122214758637524986138402603151822473010142929464122341551476557448883908796711941550741282104977188944306964059359225378619929023868249761339114210618282239598764886061377592624197372699812515987196400318418499760340849290936880499936551306365539389916108863809535386084863034577025422774152721812894252987616449489160939540786961289213696645624767836630582468818169302807150038639465089123406724880379243466773986954588403664752406295866475536096958181341208561302293211245256320573508996517207371129592498369951399719354474276294453942924397176679094179696888722272752234363429650277181454575762971229182606363259804887260457075691612970140147874801968231783516787919364446209168376846645743217506861524087978637966513354208580174038163410080532351931182997118774587086325505414342428753147354576172560031624261576032665091788912538383576084192958336205291145772209837111514002079919473568476988422811603173357949631202264049059096381195567805190977676491251526727582803052908073620798776797036607733663599253516879611928997030212369221796960530215977339651423789094831869548141639711402295542655585532817730165275072814627760016316914530276586651012570899426522726813350467018335688559616236102219393884121293884140591510614251542991495009083870248343203999538814058169070744009957938553601108554775320477537837214705028749915935822749200746028709744063262132994110554543700892512126619478382053806410192962899826800725887635201325108970410215729082721761999191370246354487003920347513540390336015331659746548994890497342382968362862037629600574764871017878650022314765246388686450978311297604070718747949469246507632833744273657633998967137345418457236561051053943963571115894966461819481433275994400650168771104450474914083042274861338762080414598210276304451332397767506935858508226061287241187583395837673811068264606631185924590279023535150550115711099694674326750953036251187745256087475529714655753480241491557126840654030015537004291954459551267234556716790501703177063760956119572015643251978314167486529560237724394155481091035017363090772118616030880879280196737224616392296944000901110342048927580847467096174148909791390116079087093832862338102391991214624241696565700548236450497986403636820598430055939080979435931853679087421884991979455365727660173390599671280367403931220503971440637388251522959485207885558629576855564478218355193855888213607559320567144168345012059502603024232600028937446443581949019815555700390857362545605146800402096244561640715519378542961235787913770697686105655778563808510442508817490041397132505040176058822627368302484312208670936359999396978173463316057212017615949078225555051355946978437149032300344574993176497602733685101852469385822609123754524859833034497591246339441829071631417530551918498226448839251514223543366877437729792580444281749044095433960056681406212635537799243258490557894934838699063088754444557894879539940695283878149870979422591901235187804709048132619007350759193943510359786515979161037190986215755484710476204264925915507383300207726049071368547367857151708476674848851715816496736940329347236580577142634034982834802531976527320037662758409502218492208610141996133316203277352162521398119915693743702129994738031081877949450139288748953319325929115748121898943969699914709948208367880600438599224599540970813934886727647694923924124042339024819826836599515579139375435713894261890779877147825729522314405994363299022498962114714601262937684907987995124705323056332217686363515606774056293797925799102024966061558150289939850429329755806749327580466059147819588837832806008463183834048107600528995987566231927056774943609517475564899617247620194640686757950420220668168169681886400746318863047182040959590846845566763670607471080826877481166716424006530490886178879446743979149176021914677664614768164751487561332294021112728285516987951136428307425612899219898746185925450066427916093075894309105649069234167048590402381497083815019083220964678160115424709361450422996242098913575435743652979408274854970987655062858603602163355502967705633366912530100002804272824067655398284883237627711311103416442401462847566386809714063824053066217905961506087750942742633780624092405111488191999308348792681514613152671505129379294224463397474877675035552599647750532164219632182788180775338566409522469165896545901994388364495159087481381813318377694346500149788741406550632150369302181761157858143211240257677503912879687766852360553325609883778801098070593769946516072371348970256276010621660984302885905402095229434637265281283903530671543661160855211838318827576456444359450298976192222354168004535518980532036741516487951400324495178773697159420077506999599043837700282773510136235913186501641249289488532571348259635610258223482535385110133132787498039181083687625952240783548929458839443264507886278632165352487058430695777993280751803469823858055682110468186303148440992066757527361855245341130346508064459865392784697832576475061194590469647951547713391372643995430951536239696137002508440705670029186121617214478558805773489255865321771062849762796744268757803453272180214011976460105223893163894572993914779252966488025759900442860145943291158419093561816430178411586279550835692446616072519288737406585780010601666827809719926420111633128146334388943869701477377771013232499992099428263066519847904630571330309149072174377481293264318329662313307372225223333858560688702672826725592708989846622185313300594846174916159568682211395074065996238986637156597968561261810756452047992673187323893360693345077560996870654429424791467927951938080783469481650397707518118653283643575177684051601242599423086431763453527079302092372192788246089718975586529461393722678565502460850582499410610392978973095548810525055733845008749482779859754019846705899346563328884446569564895241095159537666956669470425083898603359173168155378718082448289007555047452906929714356795156878557482295076144453839566396513965494340096998531008712702429354385927310604843836731038870410421424869948298199808835775167295907886872050279128126721409367746500794744477178893782880873089662856905436010791271251361755239752753772470049509743127295970889876198495449802679682181156976963637274035383399509030884950841555227184010601825115756392877798952143105283897881199419418766229614169623742213691015125426136616042886486716895764303155151450774413839861821024101069128491448286545292133712506567069588351349726047784685002510195197690665334901129370871499731195270002929938337806942063670752688630085314182526653053819596429830258866367612124635407559636499802036863309199579315452767438474473466647387489816937584449313384247174742258498698123055846746930811201435877109713352136843713531415736398505206885651063414517714628008092519579698258776945956800044246726675800245925715159500782976514706298889680699876966769607055223302276509322426031351991455696789751818630490300702001247360829204231326455342519126208828048433364442170265579344319816551358856359753485484567013837409735243670493548870426360671660523775278364428701134967473246427862812783981467368994927275190223206833563284829534616723053241538822845189484119451012009569601998349920346588860655578302610079029894794628990332375245002258273776727814565516777293471907986788967046090634719428934648056340689936792914212555322127539058203898424406915150687635920827199774554707641756827383772239842939885042468222480447742230430882312593134070827283000296943556961322681677289805626037266170580025859576008618531908127638993388237389440418322867897733132291762971796348494603663383362225373409093603986626269027716959494615021458861103437235374471953234793503300869387443298284125875981357599024541237976812378279029807293145961541880627697517977374316373645830570613315260006170707992247370914647212759847901716955102801467885243602927923432647247312414478047929063677939806621701843396822917693386626209238603624240215585953838113236667052158314742719457919374585876218759033756835502696873313242062907652445838025214890425931557414887076772406489648206606445089459358317175191705480281164565078577544900677517857597812253492561513628516182306053197179514884221110681149805247250347780178402426610813583196935818088851577790012369771033493974084383945763897257357578447310448449459002799457517464914533680530870027321386510748532584193327605973415265024417839622496218340615986984362976904596917140543490351998687803473154278315063597747281131132171554179316568415989769331252174835674842506340513254347956617203127117179239708587646950567945587698817955462135882263039972666593274512774494600141254311471577967072149205082042761650831515222750657564445618598032751087891309329716908403135502893451323110898783567510059762141553472909372844555832175296379856822872321849279103251818493155997822031154387375910634350455331702965872783500422922281441201118145276512120501318880826360415933458639616886552520044327871547962049692369999191891760632822710900457932993048853976828693967955418068139993946414319792241771953702709962280213931872599959624119758203034370761611554874794594614537662254905148895271352526877396587406055209083468622365498485666302369542792309144355459076258977141779483991667939316034859279573125849217834901781055678265439295080382632798635652760351303016877988373765364310524019430907581913661838871514198422992246589939905797579787233681739647308324771991867723778111901354647890222393167145656574129471267800249896785803485455285136528574252525958184655065877827379293371418370361063571516832909827355592451319662686468920656407138346786213237720543543110846044167741377778539766608705380862870228858864565113315359203200620782270005633494811240335399779886183042999394120613841843855776996569312638591485236597902364944573346769883138319736185179485065976944570667403070048340364177633019910130434745597202020527968823943954685489305636538264530619935580871909856088595692874015798595072432874738169218065649925344328276194235864936981751223717591512205923264471852184377894909405923766221120858981172059791040937821856981621909489460709006975378080037602963028011677581132242037823306952501596144218020496326925253719444283713870238616616575547691498450367742218538999133932018969527430732619573885944971888366010263232047589142193986794140536933058587151588648705000222793605250134979336810463616442727146737956340129180798100364121837672387518385993520834383691290674844491144703077581625918695318043592555235076347845359845283467328738360984077605396424292025424799900764448990058654769827084734969350880555580312357373459880315150788822886430921948099048961557439542683294755576736201976547248221024959371921058400634699050374859719936427160916345059867020345534426164870349751534055015068785590476047262966423927105960067312655231187113512490485036838497166256568214268658197782080240345307121712069377534232099866252879692020745817216373117715103181879531756342397431929603394045476122722825481477998816637879265599429366858298448731326444574086012004505032501649068152596997963494751694603053533187816236983613753147486709650124319818095726429566662673738233454469532360653343615898384124600459882487662456260594651193130168101173984594918135835560212537102025341626993862809981252054344280148348176355758688728396678324144654892443707088068047914088948625319559834123925995442450390340076735733386831541173952816327284585756796278664607565250343326917473909273461618735026821327070864230068186088942946936812293533233489532353561766470149960480207919696059250074339981294698451107399462401217140373596069985251203696014360044348283198144915441689211596235028572361958459543710831524276628946300462093278031909597623326133367937534238094129972661928594191329341113952997300074106159813768768074906149947318673706019405917680461259855932498083406609446279220346311743490405686309983456627907525095160494536277610488111602324175973807926104374295557735394125611750453734829629898090579801929616209190996182447611107175566867477104384805719891262677661501021139466794197532688978084627522654087099772920029488245319563544440039270742544231603032542225480278978629502813966125154945986322173437369477699418844791672399606311210954260671252545301220964727832546585014257368687986147364471734063459555653201448978202027270471470226801020694542522128171330552050500641726509859187233700043868380145180451591473568706085336153630480779838603849093588708273963288590981939107708544851554391600505325831920092809136086515943904595625520487336984519510165160422445354226650309210823060129069709012855724224621903481217304928396102896018044995894297643902462992119061804290021244277749669837812345865057669815005803116672724338291143199548417424307116751661948328375944716179826165078380848296718236047991926468707024100913760973463694066327281703289880027043120358668313578986256976870514040678930979981614214075487632778984226508753323182153060692132983534874361254672533933056222644260098413600729950799586739867266353997387157420423648050334417148120984686047730943125699393731170956858587882089982573676001152919157357121684657005608565212514812701825618326585236137559030102064266865870140261042570552493005814394681446660786597868527356630471455562027414357024306819445102325880902180218380360207366484341570566647545619897717231282093041081878624888191554507548598678521646477348338418057034086243299433674569617275590809197493489834268621962377751692200455380963429864945789244448994482620141575667182436161313464104287022338919166315888938357212582994244787588434215685082877203296139720835940958093197500587580749510867619283080115981827355192132915522140921295514771398180076017422997117498303273491996116220539303381184959864707780401585019208247043420227061500159743071314112408007883129752630674017970817635903302687797438677109746646801698611555261056320887309510472673499820160503953205535036132291621447154999020332030102266489914456301778487962284678822528421416846731832766745664134730197671197857868578743203769129083590741979706333144973405712493582300052269911159954913907085300722366302004927904199994420246586361093268921603960067028250101541190856114065978277810978501602692078110514989954212651784341959898932766061156060980894524315383888294669482157424785051653458299710147656551561632708421326144273029141502612678714297414094407593166768635605356822634545200574646206910227427580468338215202340871866768682671807463813949156585525085204501960615226806663255067361974370604273203089748318485647688678136809702889073752187292857298151782876105098062061083328233085126573077202836850364164820274234731415666814053336645939714618763598620045046943020533435386174994877624700260487831987843339729700869877122545025239670808193442407210558295068273720349979667105049471592880432150375987076172374923428084936409338613196783859901066559533643548492640352312148927194478979576679861780978933962484896896988235711496438475447483175065826577946798892012866573113357509748902347328693934836821836111324663056608712758483700305098211620503477547053918275820388210752681132390020193935688909410829182073814774598278005583065308265959007913455476957705794211639096014588803763671744528215412232816782520727491778417844357312282463034361360147985935348053043366626733686180032270435256130595843802128826903605546356543126349246279435939451027665196822880817126928183922448953053046449042015073543598443711540773745362592146868054656309200525621744335789202524837970721916808318769539760992078026038191747362862939371862324317192986956319231805274299379875303458720976400482620545074694569602709057753375848637673025094325560680600153728301287254468603788152395515662967395423929695125933817451951697361822131344739301961011615829490688153242004617264746675125313964772227576915555130996330405610125747824988432405360142824184261362457753380707355598175015555742870946034871640288971211669244217681454899931981183507309486906736795074672521562194395123381578477746582534214509419637044866603659672635110296057110403839558574622455390456071078348677002971502568599002820414070816872571049340639824329217185474341623019053287764748470485727375741897929695583385190688572879848201375730260988287685935249047077966546176218568405191470473402358151084145707376613217133987635243439672360551656309520062789383038881700145734650344241135210849607257044341606668601742539575685229500334349420705502136592395143599952376789084981839880016640106077521862434479861420874536776657715559911563884453722141303819521093896596795075748967255088933975382668056097106791693728116329130140313564264423214598142095775383950415626036218358221329915660160809713335484227058028220122458767561392858194098226491796580992062622128092111343710291511244543989052300629922411757155788780957866611738346279261857092965837889901030863353124321248678593355982854734955731399196853797084886160688318084282713952712686427690079283987112018879126134812664182176528635344022263313872932873387236389294461121291265604965437048739811647319846234583557100126253374754603576697796741261197656339976851940783701785558891828443280475033721194856534474234802110344441732825015008416489218094655063728832033947346676883027642980123205145044769647787908388769034391325507260984550309934708521735651721577680145058504490787748807630999706698154249877304977025174422215905403746447658249341386951048893957918292788099995914554387645856219346643073433915115012005442524770784897587047477835841940738258484194716206726364833344510283148919772779917972814914651388065979357728564804479358138023843292813006172977716429713664415936182698204677906294594470059831676568416801360439050117701317379325078218796275623447336226777501655678349037851083164822702242830238103187423026585171375105195563196127601321581529421483855909673217837522359272841733014388695922041435020040538667326897373140261215996632466616095301025924898473592963683405822016005143268222100801698476208026601717019103792717036658498447234982274289159978463694092962077624762990813417227922112463957126384873326789343596263978535033900856009766545888577985478158183776514554179156136406112751685904039096986659904448774508026043142023892757313921557694522310657472496313233007590636472734590675564022882525422026145566954747944294036996374560378508075148091809380539999041664726354222486833300327987739787248262933722764418957642425485379756158969443603350479290959708051711217926878223508966232430872832202964454383874051346335440051302303467713296107336401096932721366510506835449971631518479850227549659930857576450438999111828366547089524147343728257521344174705452799115059107255372229887709038116560819525009597722326565745153975965551755052830454684075601370121563685698729752770672653513366091980100016572443702782752001008209033758679898199016926733274152999713232865446382982998487105904918634098153725599508875793345207319521990471213879471793159932331764575215288149885524858208148180012150571517995405851952617655419439539941039048860352480112569147494663066461049428379234824353337571178010016686385674591913438536609793979981731692416408118828834605519410473301930911492463199168854792511238237759483861631587943053748802186145535930819195662144437372310976687339701887403760937019356598859267581249462545044784839203295365385535545053366230082046025069153757323195664597315082176413801894818513950250248244065416655342000712504280047966874565142607592686992932277830090523267881970479891026253665074111439800662721313415929283772292161979868015907743602292689743815201555229872030955488195759947293461935798877691919091338169219256873091957722787800568166212703325127030988682988433262007671983180886412372571184365885386010866260728019058465047259268788760402601228163119097863567101802036989943859011420551481662136714962962890664254301006147614225226203127664430752273089711047507124295389350568423383296988363644446999674209243838721907483639496191038794195473942250153810304005607225310303806346611110434622216501400319676948977616008087794894118317234792267375026427784413639763293909851734148335699706488285902600486114724498692232275890031880549181795000637042324480118228494420148500260777679139341864657912990229046304121139815503868412670772213574623094121761689513848342618268878167864608290887831997331324841920263159145891975258028593651457531022060156031653282600550151975163246182297333602220138169193800071757268152765888233526570315720878475051363982923208516862001887457672889096704567155563876683314711378198303694482812900812505171639045679648845502806936678702008071763278125857693831524693550612530209656986852483113222981970294986490904187067752795534715476855448752428592218396812593577535555770833714318568697112308601367169478295295728743625068313663972242719958009692818032771356120043417069696904107612727829663130267386684914917515442583677647947009014842250429939274716979643596923618616845900198355147923321072740959926453050250929561396607162890448192305119324638111611519778291843118777934836402990704774097384087386981483878025022269460403652205503636163621482499139242547790828107017413097003047328322390657228471400973265049158637382178248112455057612812031448918280537688407558459131430662605230642166514832179614064719680001121265945235283015589631010163224190529437909576696547392350249396306479816732056412520181844679158815935157649411979605655813422246777974303310586695323800148875599087868561739552675606004434085238414630140330550110520270072294984131549667905684062986036594383400430979111605039204662605265439724400716310407536422907327362072013561567947931969699318908083753097333912187919342673171794663340001596662383305044003950393927916338379050794986332968617595782017704601882124688597173864206701006223153335729436425870850711331549697823264265413484263888573351115907065223166978477652440879194994502553130026434093400089454497395058690114410085374575951818836196886716123280774385807047506049041622834718016631538507117942517884941901663894823776501581598050082427546124019365778759295186898261814846747287875172028882731317518074646309962802162900565084063670201661096463753743232904765033201534792531052631600392511682292861087913399125119619910538178008608377970765402162599857878725903896668989517752448584525166184286490482078260567210407071736507595269319972540343462365908290042312305106651171111826101550742092551832608551071541328449844184464923142742367051771074023523605055031290207394361398392919567092523446135942292066534765253836369304693597935903685344864065191818665319181307793840487040461594785826965230949878268682943185165787237893728148123052016728351364797434919358936644997042074465853674304004101401460223413549867458961281515788463392481733511216917071947814782510781391717748897536419978495803036856216122731829731744711574519732674820531348053125915077889366984021298347044474665678219465586205890013900918679828576593008560653537302602879152508262959752782830093465518143573481638521821855648685353364715268354545579365297401149343229681340765704988584178010608682564483539398086592700451303755842619885928552617191873456876116112862423494892548303882351560038082223331933725613625280229617662423831098891228796403471019570596444595804091221201549501694555560606992209216871861509518976734827460615162333304799474555892056629965810927661920118060390163174459056523469677730881309095614276789709436172534215681944985221579487104895123906338623238118606358963878651853249258076171383504526434882929172888190865433579590873032320433107962995095740091235832530656652412394691163413631358946719393973907694439215658078309199731089823319941411065330010202936506596091066862525379017163456763314672943996955520752122790421800385289271586700485011106176737451561214249258455329308036370342492559531328569674546617531333092887580416067796776918129915762819467575230578545215593188691597499213276260497976150617746501435737866393537788117981933639224397291470283468548223815435619699278703183880981245232773093511528313835945432393018245960168573611791260484452480576586278696677927805851733831023228833082177538759313271818551278088407922815443802463361134445398634719516372433923479914122077268443170413938065090858166900426706825367452693265366428768897797883045767927874880165612438663922259395435733480970539539038978848527446358183657643737147921626413738512461036226080493135928536903165564077218377632264555689358798323956389670506937894305298394110648412549022103023659857222425634016284302759262913262372487884846547788033556531029805749468987369716423755969509307314855663058617077025163195142346147912501151831634070766940078920835760153307684906927585974861281478503006453776736310754025918843115768853251198437097738119522622950471190138328838984817061068105872075779056124999258888445691083383719979549927778450467775034084777831420369834210398876776761872750093548477805128286783840300406496525708972956838871308723937045510536934834729729535870020779475946835984008106511949377488334888419739312149238173671116242778113176253695904461228703985543506855402406881607859561600156136060843732612787559892828880772635775408897842034688576451614852020696419452299093847189176357561928292042975815384119818456761237626373843823048347296681392800580093797207451491115636304987015762623867163983764445396291352059363456040778543741639936161416065506787505265315293382045290792215541324777380407795833996931553621941249064864969182448643137205280730160819504150194867653624401424454484084999528608291225956897992516276173520364078290694660604444788319700396433734932584679054364520190144243253069191204295173033493793400194823640049854881484897023295858807389784953002933138287570068147911701039225276952714065652410896710409129719763375050728782575713024120484468869212804146956286715049479108440568166971521876792162295849290949069524669841931666939137350428887460622516595423165586599372095985223998156614558277571280679565665447941810636503788932907388609228366068761423222580676171917898802687768126850835331133728211255027623649046569133176633318883819344692596771437911000290292424535924278827781267551757466675330918310194124391250976194914815955082040572610495376114003828232502413685639010460549222074577961229514985601436828138310053228589550822029169221636992979614483958025873805506946345199683388312057630384165991776571193373538387516800516822435717622095216794208059266183013937096608886911332739953666424222866240446612563466938051213861357361740571796676122211603113006458916319824089470781718651344947153691570688364527545163474666875133728921611344434938281576459517655047785033810358388673100254357180543260279576211267990781346409210548491411624529733839006383330292124618436204577862335604943189081723263847144574297174190115076154006842386158730552398834362252693827180654413733411151994682899760574054586810497868501532404945612889916282833914259495358324113776400371795486611044760685613651489484045796698337275279492743665838532991844840786879011325887156665318548098677252883344084344211296345667697857047530920816879752577670678773165382883265892599110544189167625382068904572099250907115946389529372433139402834739337717166219899689682310816807087626240998114914693694320763026916114524536011110774716715516973707930469299542828857846010006830423118292224134379322410632491843636378412553357795320042326908457179957562610480643360801379461676372121209172149343347832620472673909354857362332386642777379481484225368029509645132169490522503457342551568485782068513235048245819278230152950560731366436570396891595445937448287116146390837342554751627110318002236728581206910012465396879770699588417428510126783857777696152625856653032351804395098312354186385012964942325786351128735589856891716769132556283521034591795118413034733116149149113023340801800171177585737671349423108767144413200597310907489489978606074310274004902016349551568303175744511694552234416784528100848717168421507651906458477251433019972758436703655578392654231552489631860712831202671432816870473798726662328583827027999469175478457495506698115349995195468606248513180546372652723537460414897445206706850924235062932800933058499088305350949340768249624872967567102434059840318803780040854573826978273819588948018773563909354005420121968809081713308639768049701954736701093355169117595892577761962425052479757314884909457453816446792200240459987435982476440906342206750987699939210228392968989850660478512502098148813446132143933095349892637901675286425202633143324337479211516763862870602606969037260555661057059778600522844764231274933523963128437123268822835220340266771263408004796387592930593664415541924978030880353584498791554287265553951727477741016317664361204361534982360975287921361841041601620639673643830411225972960475798449956778838836847878546707247443126563115400346412476214991701253509247716735223539917472900533010591211140302737051615770830264349217611883652175207262390397596153468986868474815962147413719906139398918581127894666458558263072760399869782756488987199594592865480617257145342905609239285318754640083312590633805175846721017090436574114249166071198734038590404347768260381875484719453599639247381572874788728008818978515123057315271493911023669309219693269993183994767650815501032572101780738125219640755498753676068167543394400414501433735743050936309450462158988521597127363925956529137612764329396874295199164604654337218874643315864563871024340147547804571656796709086645827702079093404431260583122229870221662804154415635593670112598962512424135308757136358501329446292199768813426952697136091804780570670020328832506017141373918825857186243100941211430893110254704371635670983505297723531543958007921958254967831099945391781620105307457569478382107872911023998740507820444996164197825069936968657749493913594697474878215276543590562173542813006647596803400570933045914162570823921223957631419907975768562453270095100935107727354871522716132872491501974380557539360032405475146263331885426832921162245561429323364964018549708384491088277833995204141910136490434076528882363524682147221207865465348697093726436364170344611131345710988636442984085313815237779618874199859582592311086642045512703199822192003610404000524209477329048650246662459472233921639423719062340004967222324283140484971709779254026994094511897210812180971969399269681776829298909761853857372788900316540170220369048121679985924707456588045453430201485979829489961556913231129007946722690806271292027925869990633651478912269018145451212857783560985782089936079865866342076686107302934555735753830142616518372680771293943035998152011991031869646149896471539273172700288523191287193095883483972741514295982039696510625789499766236153582702701136189940198052975020419759389156182281196962027734291565046634076928802790658860073047404983601616165335780643098520777680622761388301502352368195806641470644625912790112469329526397309141337839045890203016506340142073222975009089646404754406977074104311201011895772696991753124538105884620496214292015528762059067060530291372913845849726376429714337820346420856657113607302755531380983764731855073360058469158201662521247583429914676287642553265176008813768866944750292909397511055327499354949125640730142755279322020707974239860881139382014141009142957208103261546989980448761135714007134639042512884750856146143191223360538027089042400877655823611186251351525965681702841552760729882643080485381238064977842522782342132661877844350976820871965382764078274012841243757713636720714571237966226250732640446681936401100520493918591954157683409353076709038412040135335950802976708722318364067067990521865891859631821422256062962662676785537980413470593949114410210237643382474488071128053800352799414072611951796716944896716749470771577247646096536416253068973895039954420994007833223614737837134386963116385726257039827148695767180278028146557506677414937663262657347530481739954011314648468091615258026355561697206288384295203869944694912102416080222600540169125028696767934287277033485202042654458212888094302158082264854577003592292534247568266139249852384899024687112127010729073194931105845249941554963516337716410436804967858273390296028353364077048267905541456237037118568968653885439925379213873232273157627318437159987734451269652608608122477264990096677620701875978525437337142527104316397374187282478671358789682680220165951844181392107598207569810768595533510502804608197803753656168906371577915182541502565500394264093260835317358105753513921031226074924389958018973955904195758747878890277113781488150817398784518223988648207902328835399589697587786981525853852481142986459634426180788697094474093980363775326683183117982448675674547535546665216483676776272637064237910582740832158224663307327308571482878389762765509766409924209735414452630312996570110891292854605331633370282297550419752537195673826137187649558559462636060821014951743552134977412063196417532087681437076944962817679545572094796388599013098830918919861201969089391821401708509735433492620575159119680912867522049347656168393073453703553959501634349783764387489124150267997931093715579639648534211855790764805096255488288235554547639732172847127760651959475991773819089599831517114307426021561570882754003515580771624768473204070361389530427427653511739649020541825069288112997133754964497569930383903174905924568340392406898034399724996733288405150692941909229157725491744911516527390930306547135539520125296432956945545599859398484280407282822835529168840822965059984710534440540455038212594405876300155004154270678757343144279796250623399298395569110292424494739012945809704402009605904382763160857214331206556585446073140319681240620372377366711707626336930573792408886287779442563031576665253925546008578874075458641888264948077314282071105033715240477968426666747538464682191032987655553657791828081380478963332008071896815759769307473220570675660256589530279588897657616951150348117555298500442998871140141830772752415245493533690412001566193837960694872825661558231325383071757678875764446598792175886726648239473558203868476536725199755453910275474428392770343437667559035783071553949718415648826300550523415533874087318412589860351194904677206849885502867430762892942909574489878369602096281629605120867452538719243688822134542064279054483266030826801905530532654956505720573089005059834672808418862004300905710848242481581697023520984281867531655688571991016834361064305735796324605390117384027227975226224829624549117667487200763671618405874619108907758508570963407534974082275890189613694207156854037045137448994860681203395636855487301237427193628761233532205006622696839858099879617742883925299166065827129639693215586771405158974306183295882477993825712768066066031395293333470026355761479345519105295703708137892391444865636811339573792899911040100069099056026663840738495317378617599215859301230109370712636187784149102594424054109887201799748313297484596880535859081473245399801376377616619391465356328745238865488944927117582353631285027682513432327249928466478472662506784804330554820051180914284076258062203710685699358488932390549600135370586288922713859323928949653491893501954886489998292739821731100166618712283130388590255576533743299551593733802345975038221026597020308712942146972029791870060607238332326688517032038114454650486875989534121717931506845563025006855138322470299165676799389634243709942653298285241327298340194051295321079259381453990459529962734616960532547090679289784372775179993204497897012361269254152935192438504028491703030083521948503926840669003526903882877725011028494592621633687012579463943168831584785006126886916151828179001548711049316976822929894521096694106622256728161459264069690282416776133197522331932463163621918943839011053898983672001186394744975180469709680512984728845285109162277538258277507250730837652716884525889705672483203978091573190496624639654605802384659765004740658117331506938438310050610879486922563821627953433314783318735995664787993333927272312409513471583835383109215909638696273272523321951602107687856989129781596753538372975517503968775671572130201497044690503639054911517318695773672588003976499065871988774651053013194616517828988732638607412027283124679557906618465616337692167904340899587439050056655942929268853670445366474570390375299400947541664733874032558922663274776792683427751323746243001344433485022487655011038855272943926393639574747792449100122701759972211349208179685352047951447204150153635823791082824493841390863839635310517485465237304688140569925723947918916532120337384279021833743757821311213036550426134432402523357217786739789942871524617057780958551956993787645629314390018692408083709105142172928356483316017878476875205409551576440154835334915248969915109208171983667570134328933412787620031771271753565030393775210208115624594154348324878504684125210189709327772647557279490841768422857257116500515217817304609291615763601977231771004103788649464751287677923999311915331067359727984925442674658602683315625885960688677314077545725883181799135778300745555019481996300277594350603127485914212752099650771180690133128573076162694508467777823223006926322653616050216081369371054785123972168369531859019961190175307479417904243500284126213243305012321162732168409430908102856692275850271247587822131105142342226077698767830682448297904135065215381557335047939501780508172357882837396689698634023432205331694986008597427197047892260486664431572736895282181669187006205440710053265979826960251447877005245578741853827719153258744053751938611826949073342578727979980585208976888594588829853327116369857033729621454626693154144737737718320344242762583544491528518106754923928940656909282712489233573974816470864301641764294023136400551410831933486672654352802406705158932098007715971674313806331414829411560376393941934674544701031011299826878445126743765866874041521879173032288992588035782415330601905895058579941503632068050929335072333417834740440618696476881731176452198861905894748155945248299834211051312462125589914390019604503737980473814835381714400943427285951245350419087296303250392746469049881455560756100889632314246427141203245737812167965100818436560291974489584941363647087325419270415493161524020382700150575406537532834912406256738866261185454987649042298339928710900297379290721854106887901504492354095760030481590534996256188234478916695928834510976531029277183652486268112356299022076129853151386681493541343519751832263821684150893048256098823243365188496528653105854033276185429898384278378368698472080522644655151469634728387737246011193247298457417027106645795702822803578109336928192868512898305867202470773664423993992370727941836903801195730565513165723889716833987134560461866243468071003028130330503346743664678963658350359012458757202706738542254021448230462046246283735676289284347743106446654445016384969270995134338415569657561983427088168823949581057399131241147016783102026064301153496647798459702453674819286314679867072934768216663308525732272491101931045292998856773564032266799190601204627620602617079585485691799094671501225551057594216328310506062845970265543279426049727749368671537879483922517733466254368801649114250270033297800156358949590405502208857472760093030659361765675229326467233506021733351151333230649376989175700194164430829283200527168572670076961198785131032933955393544600163974906862308495432950976617994342404687862003497604766784404299729454580072663109777368159714235373752668355567758897070774215418263091492180265579713076487490779239799214491683110425634258474276930106960560241048417478710441486033608325160079457671107198735176662239696495302993365256106478584361165152789633665179483305563630445969902689933067268470551539957345585712390692042286594962315390221714257963393391046487127376430234817172916271684769235267369746717664072281360403063675848288004263900265542213861548099683028038359791147209503412714287429562458013823219575298859594902998981940398794150559997185045998233053219617759650978442271791340006478085609360892634092525952359086823733573906898088631697848890504277600976507540830163738906225508646593768233959112433203339771880071241066101257277966028266835440906960331142968798723691926493552266129991136776754091436695159238089033409285510078132059796683883676972784011098200012755650208772644292204663198649522428349628403475599206173707057829652218975945308948922344010785082534735373815699032774973147506064378011554796846728419229009046541602941570983094073983436179177540331699224629042492283673593017767522164708631692125104727662918781627365079112196650630409362849052461273145653202972884815074420556723580672153516912622279260923871136676448209558706774853639415090896513443737003745478982007361980815416959553064998635454302576112410734285654515865890821011720726159994015845304640284423474267458765014206355686588787819545125676843680087140861154205319400285209349208894547371122658324571190235093331415520593623085055086287816974854037144446520408041414921296655626179116488775810691750492529310888021946016165161862358521897747349409930185448875327078183432577877602172363303962359875597832919689502284954739927325802321689321588501535505673460040974185992141806800169650309148942319712608635944374131187048913479205292731888064880323970034929260890381996040211374526899752322810163519273860760333367159988483178189578433191955931535701543935109534763016925051168185012056083597749855196682798003352364180716345908573201981612011936434112617352038509588301865033111218194428566541436637223206645092509278976773254774658429465480068061541657152044127141867624299224865419505431324282823441370488062497096446729622789422846719519125477600565130481484363461685968775023909838967965202212677527584098149869953534343461044958864530442087305250775669537650849894822329971356379689615638152245197319557491596877996338534981433529455345399932429225319450092793750263875011272284464709399503966531002014350813842816696820145681594879549833451000532434486217707421361498060674516788196919758826518342650316067491675444813322168909728812523710110454359075989831899276099341624600134453998126183439407327963420903279644400476725737774542956428351777763756881415864684081513730434444202452895920408335373770793584173648683704052763924838371827149414493941848887458999795156363176609404287036779747614682321211117264081891049626968460855587533827437235828808011627476030090545897533134287879843446325089213028954744517429908091448042497696205320443294419244421638536134520088864694970647455894802555032166512920230714087178265022237266345457582070965811715912925899473885734907029224945677119925929850769835210360558736026064880152963129579770565646078974958679682157220059568498093280811720751998946547208587871250189791904237374702113344233340388651803217483036603323339900154412163499895733678512980831457817556497781289591160704645904124852800583785222564675842245907972643791366793319065917224072331359366532366836956330707690817141402117973815830656128120405829810758817037207435499797521932384020112238726560815582154659287121647437325850799409501802262810760739055155138178029787039868845768429703778275992764341428133865952454034047272864142269454335167191336399671898614064577648806861753654527253810821470135422284683713550599754703606354296531355776440309073820140387743150610605827854767867476017211395807157286760334579358039855068846639539596795873143663298295517364633785650566164296731157880174370065010979280167983609017483444261317927698687126276408125332717198927540060217046610989979653361449486733604816666623639767182024392237209506898656634182434197623689407047716169538676359365039807070977130987441413578669170144857786593922922862030521678607549607149283472626923096145086456260773391819650958318613784323845393601175091606537832841658524935136796605579411361141949361963901739256579641149004970352145268296636962481799607355756254686991843828267527330011838789274004900112108797079339531089297344251060328473957887607224397585938908681628169578875645682371661916117748706100247205952057148802939719348355984752687640512725508597355219387961689945357913699472999515324591701960513244545900867174754055575969953458937658108789987867965108377563272898030624401931838231597061425914047919961775001432310931324977395721245995647194727279483830672863580309712577119955862182919844919250431579941416961393783222429012557811256180876425932853386456377716824393073929507633408385981999807320256749857496478220187352735634063867450852127402517920050073072973231703552979151414865391600196821360641302688934289736047725551272975304603471796100946883096873291401646979125583742324377191059271286630889209732715623599643085343659996761233625459524905468239131834612592263468362357209862996395612097336136049822030254324337908113587643658268588155407110495439173467249726443055245067080061347137470453331772333824021761036041827641899813243322629822492965778910482960794773878744981146756308507600056948314604558717415225372949622488644616380778641997158278408618272538546378387425660457072575859185575846367516070920172712684207750988962242313604267410106440501308174725257206156952281209496130938460591226113593003183748774301091072010106411287829707928569816270362466019141107976312793204102857557317372784006170318073505608797038232030419545768841747331133484008940004945825166522926368120548276556771318587474273670723376222268357887388377347833198171108565992965659339746495222488541391386970899069591108944441766441086020981901702783731608915628008749640995388541428099199702420393897454746623202918885815524406209513767629194038970844968406284666801913672908523005097373306886189457117306768013500800488430910617861110835914141470690508578172040531339082087265838939208340168824917278817829959522054137553307554117351286100021263518464808146511353181156278315190985998937234917786036370816419354947680021633488176642483906151129816451892827438325755419984585518604580972158944910448585137963515090520495780227146414998049587902963703153517553091277016366361978564295119221551766665661170875474397632547900541885773802734608656130182221449252498989308648046720449381642534266054688424412740556265289133790770053129124687534111927563903846028500147165188144521389818688615943064783014509818822896392976500943701976349483460323546377378889881243985912526917292832025996920081384238318639932203567760344929334715353711124366563077712057031751668534026871838300886844997757152999849395613301426001352150257670980045265882124177693267719576215244189339447077494397645057304309676110432821310632075258932785277286204063775032681359186855104334005347289093533006506715066546033414556158466189765083801877092486695554909857287948272722470797866809023224671856106610920374443415126102392093322367333980733962680004728093382222431101608397442623694979196112946079946695948781790758306624936281015281620729998905634001677137377410934271641892981710662275711730533823341375160852650235046645999915646965504724616087666013241484989243315827649953646828529441916423846098753523961732666516160774379606976960723720314043182307675905201807725594904427596530167805014278067868499475075309792671066462285190076354505901404712246104611389306171728858271763481579681038470280223860075172200762341111643892119587173352677195062144399832977316840279880487403773347503677092490441623744937863305037319159041351629750971012681995601769968947491695323411711283619812098427548679996964032381325164183462934126100834375916981651845625872718086510733090479173289169143253523909354137901020783085718124510002178055528031985622877285728327094917197820116030234313765744032518078572213008226577652076053737561164771610455633576944574361496674805549980789162997696379978912236464329807779167390390936175794256529393071345877705961496832967229077610671836870233823397787064930581940314371988457465999429343533246971877070325321198513126369609498345837993462319610095437587987536635395191288617252859740132079899033612854854660880678794355174129832228608417862401950751558935603341838815128028138182398000072440382798343915455047003005488137308280368266033854877206162356969727084299587812259195901066986988491003532600949358186606854466625489382654931610732617265979286359591640010676049563216102123096433359034652909048884385454587286798597895351231464593383724679312060087772022230934451855205725548650235428609097136553946300361783500691679284305182425857199117557182214822724604607625929495047718053939833826688338471613259539141637541349642152846919462648239597483944960079725709470174164792956245175276269225888453365008670941048828661049462287308605567829525113647170160588991629237244258605407642638019905549039839099856038880562088620108114720865448233021930001352569637628346780639522381036409010074299474419114878772353549246012366581044394564787306395015688214628709451548466278140990289838877652473564662990759597608869948665614461757976798120315813655867108238563820504428163067137522769244933827837180794058424488441117740421558125059567284610007257774865471579811352616911206507243290853791281008791820317790043379301793147920300348813619622092453832810037633597254809726059623643089316176145851477950443369849893593823802720572501337790786950714119721621958095896054653869142781582546184700379853400696836239720960846701875900245025276032208107603006367827364034231455374279701394400680452189115678045161298180899696711906839668566520038571049363573362298569586144419889030748688240376813145869012093500569756588542697814438973000050340605669631200077852646561778240754517460367542793952108220000099331644131168945152899176867189886038409615634117968521817288968574598937205289178559785009579799444903668828155314165146083008686674826459754832672485035125519268917067981835687298860237094415317430921696318518100762733978088147070241055427080349952717630662075027402650969726156475586607280649767021939245269222488252652459159185703347858834257864605145302040557223719847933300660705878788594287452387586241219674050632123372608034144535031679985303460929911653761900127081388577128881601944678470395089437776682914985959946332943250965483261929708047737802053940013799022964679600901157316563248360637712918882956543092517468129069216287528139082746559075846434869641969456004794833768755320744334007723498066315753955660357682189154630202820063452044450940557734823657035200888854034347264204816287709862621095805481816529388854881809836051298925825357615367579165905781071885479377595031042038114755918142054859044047109991248031305506307875503104660195683325895094642673332045736067585820643309934842053499861574635878602856716805850501501544317099882264335741504959505832026152730444556907482632124950375926661955258067135375461489441895218792425244375851963099964131174425083929817077877545102977948913445161165513092785572032845423468707659857679479238227234975705914699681822384707061061372129808795665866543513119240768257054523337463571548989702956020055130258544922082262110708145100439076078052072293463030066661583235166890651026798892531512931357530021535770464105518822375016885376509669713900835816665056716626068024510048328286782047399344706953821511963347926783605021773675796452605764963786069899077917690065311368507785154739671969069210066384849016714825172681467140060184935856607429229917709309895404554257926459025183846353133963239350522595250316596504227902851962092527834969629963184465779442748628504396821265544667154935486810502847036807538589782084793241087834483034333703107012567022426772551793070974281164414871072086945016889571793754870719523060952284716083778654088002591685940551319322228357338628119792522430705611185560955192335818695062642197467057525896098682466094330886567456719939099011712008089447998739503335703751059386884243036048119942923305553460052700416453391671220813357255146943607510773331207346122825417926349569128505390212453151067593227805394187581905767233735756827661555478463956462356002895198221948856295821619042806811576830922988677533590904585194368716292777014003933426158546886880995814742510707050507829905605736216116931119003946975971782042514984651229831340952489778484023353943733109793887548545658796823623580034893611889283915999347887160938782357903520817567529029334843238772121085622331993562821707351102038631518104972480988906777520692643720986530723777961929350092789135904600940049842917256976401637714270875768012536199523801832744374425779497960610861317510837844697121763538700411953182485742580977471203604760038810975065902299663206887508755929044129945531500307186927974627027242440903267520441606534048892452570256501244426323117113010326179394500957484366876173548254233665847193960539815350940895243097315506102112721387314698969205163399227160308950897685135101369354916004572507399117346698942873260829970808847348937680923909063148510356504206296913483950305488277778287859944508030965716190024045398741200223616749080218826329413248529653165825672695931533587134852454917711579811659849913865757715328550748632049662078733155281633298567425848494925696524836965863200160014903319907199462361741348794981272043483151389264432371345683639663721288772061656019856453723528142935748224662480193162429151933480947422698614473625428568596665265107680226215840250053211392097014573604893006984186606214646948406049152619594009432141337064372796784703798872572308947159377225883772088053022538943934797665959932302756850677307437495815772996493293559450617231686110816708712067376311401927176086609541631996618009519139299058955171650131962635948676985235102902917270450436059499615297380800922326669402685081799704743876082782102003611178444693569958461311457037345231489724878141117784343682966856185498242755729477350752105022109391545787734206260635339023750464978520413695568705366999545601812330790446267082285054469786603604852955462693063009805561054648490224859508119950889447624048060990698275218385755744452654329400435485963104872337443208484133613710182495277476765188831084681754958261317048043052304645876950085724905762118484856528910478897738887436295013661356551295656865876836474606022276891306433754092020752709740955395700887547284689423000489464141000457350058409034146995893352094162388434245759068302579459817659746380942783277623148362208157200737689580523843459396873397913402230980752056836607485597586910550278327220136390058318454004126240385762549828149228380575036371119302058144505505368304081662072505078763948192366502235485009593067346827959904302916465648799645598175958513476234911338583735581117421867645330970641887038726897678327092810731317955416705818150530394373794707528029343527694459683786024992730653575263057397448438943758960755182221367824257577900589314383002649261290695051924595182480348562105394631540448948160547987826569858037276730581869970617221425538938478101297335915580539278694555751498058843730704731664812987543120245812125482631053285941598687110387128441881629991817441649258365744775943146845834530514390295460635730104386094852542114920481247391302768255430487608384422382622087442953502568407010040016758513756632513492444542601455174900597767010579155995548570620285009991472124401363794249195142120635387186714616431706633558551890288369502456792231658093272454210002391730478518921473325435122314643964545969962337170102469191455482421945854110425565169111615569545798540341748804690056447575811914722566024255948294345971775350000440003798668016538466226858777186519469672590804507083489130680023780866689914026085094504767664850441079706790991725584338879394923536554809521562968356059398272503010411785574282980036183836316904284067789355817792777353619306686625637958299899133863004844887938261605157083529457472174581880633319245012420091454008738856367312107244268769887465090826168612167297984093891553416135201675924743938632018812931654494069359937211903055208579951446583575057464484953997142003303258789227714558069952051878810544122352764181806454387560364184040872627578310751999869397133220473398062652582808314835007710910485785322184356311027568279755460577181138795089939807294534431000804495551776499786425694088156874075569184249357942745766697064353946249741623593607637720098035775899768135392141004890092326607014172305943952072066920148531053541255428341422714589631334733513064472833915278376285968032800112672892665932239600714758782058503030186697993904237509278345341836788612711099696050254689675295362483969200323156951434997502216187989056478927092989001008844513824333340370355000899453558110567202951871404859115825671150201098192706610669033617214812993059747697009262009541430155858901391307340345628118982643297238514043605460053618234885715900680191657763740403932748336405967704322347500674631694457114424422159630873893523431673560404971459486979909766610469974308486362632044948479058446889095560835302147654404143735146044357071111481091387970020534095705114757696617884217323710718656024918051823792106028805264408899681077589374372212821781630990067390113978017271670032085748334570215277798351365460578985639631451822205433936677497640852435630400922076719077324998677852771138264313170329163105625797744416158406608580292750531671710600725621170830405310213975988670560539319869620400035634241356300804573777755972997403022422286319067115469981821453155116142775556289137450395247836808867552387630411709938517789586840305494719889292097901664242863902558462957976181741675889712967309257722669803511014696759815748249234132660016026619441411771184804163463367047989370503609182927488693666244947867178087583350189227841976598179735830271975534944566181189230671913101200249965282113864368663390044051241512006819681000742593423576007616613169766289937396815921031543662870744441386965096643585800400148992274651350596009180779192410895810496756210349454858527120635979692190791053599672820255860843417069610810278668702172774146731746454502147339614062262512294584834207622334203122813135389613210339099390514756670672247950247404538474731632302920685596779419657280864033804531494991578321460138106239051399731070375839598798651362332633948297919654666487681668486469702480611371827295512445643440311341514256580955519997682219920583591821707878639072540451761400909733016139267836560811147602198469408946733302664050192942967744049631885234070065580756963140370525232289722675169454093549125044892860131930809212512242901517614312101899342156455062905368233709488292594713581833326159670721283476049368623904814165979332689518136933227932007319494475391579593396631944663790321977831198339954818737153544734480083210152971460189626310963302880051667157738968420370868885703244368083717900282674294248825377013513886134971774191759876451312272830803759301995225501302223200485401847636298318458228745413546561912326874789307153327591802191207341552840637416777770684222863063379798760982886757575391034241105599501817095822734872301734671310579990240746047785620616983579420257826777757010142779102007183432176963689954303173146019144591922314269492592981736249725336946850329093742283991039445256858363679291154989860355285823875327387569131128380789775048459418543310911841199972602101537027970779656670008056676161054553446545588925186694876877460585153491878317724547204201620352563438865864932910058148758243833238781830931757160009608364483583357148853984688539910047639867190124931689315941670669829923321616854653837326567480508223479956298686807351042921118680062076902673303751797667287491262177408910707464868729080421978361481725473401034459543119999010060910514406574107907657413060219250144203973049334074873003564574964585016544414257371961611838600341988136967066287452633222970445595429515206436826732939412009619048552529420311785316355199659402664138336136996603211861319741083922430592168351854497915326187935666803972849467306165640714701060650622596718025971117749458942113064717878346951490787487869047275070049876905156239985849935642398001003419857934883441740608511943523509871477609087412983264764631466767231536300120592401014423106939861125294322335832300646151511949033132044820560550218889259338369071837508440157276155558193319362680333888082709322573532811701651719189752935648501013521029987103024948512480315991115042446396628698841357199860238047486216484715365064262147588349951469133370849090945437088184338462205135564951439846358814417969326018451469846716336846762592035191838394736530830377636020280726216584892691634039191765671626454335493413130988504534103110942493114522801021831693990914029524689324701576860775335283700215483412029382686573717028384652005313690945574530793713992593383529395957397356317568266791696141388355257303630304025288884228916924562321336322003441728584552349204070652750915496029564332163965648350587128626991334667381402688001292980233827858210574742321982592025675036164488820580309001597320952734301256142942587903021936859780032284715507226222480965027163008602308758025082148329635149086749281966095583737950343434740378615510883089316762721803793470636074507629526540669480404645247247645360107970081116289654523345646530352409730426177740171814898137079738067513184434439142221229844587710904382763731720780624320763448599964681661854919019690658675992677448241171816717130259608663608198548284718558238566949240693603150503441537822330282355712984177872459481312152978612780949673555860876242115801778912281966571373860820792507954933842793188230301871647817347176296710291892317974402750989494976288014326130495038215768072518824963581730041786226826124922151658172531361441792435615627033985475446201100661315711719298395392709094998378043830409422068877298320637487014497850321765846306536006579178768720933249997517382146901785486554994293230893474778461963360794721661193607234312426123993010245375349097133556821611419669765966110728180441035690597857124743862577298815334227478211743977697838433309809164324401837744921961057507692108862165687966481246311849304650302039272776960062733163745277099759791255630283649876696184611760059751545674833487065825334360799554000589048433453556664064054013442078872364764856301141770470360882779986109220036048729117958150584801913065425423783011399198666884082428892282871864427108365473417372402018034300429840341760209913660258008193381580005961946187632259615340835607622789972780018782461058105269935876937526059746671940590414149434008248032836128514178819374355021849356187229900982487275932474897825377299028930600383215390026047084572368014221833873791174257193062795305520073344673247731090054742460891955292738324370846969466990648113623888511053323867391766967661283134094093417748204440560545350771444389337440385930488819255017923550380639945039580778866218891235274752175048910782209156962898606861098061227627288110136583747564906360672405440227679047473986251095079484073890320999731615447368163155196037699733277281459826616460724068133509744827938743965050702093894637634329796472101978346538933934162628804368037432296216736863487102571592531658527809676527517913101255105023091569146000291796673270142233696887868598797248466447627021637821973413870979728067963223566375282507770526826021351761658148537016182552397975538249390007949120644003600076068351145079540100750947339173069999949494646585024469240607977317710882575930591583420987451316083792487376101824253924857698632711699286082469491085096361018112234807484179268663159545071266759125576805129898349913235198428967359569254793364408425201857480954647929389932745250645419202249854389049310150346285525654233318538655812867939718023561648166278740787781997593493633977476801731344498848220200060173819010932588350734296845473071765279597046687691940614411487732353113643037638551105699466557290393223957981186169779754986765836936780904409269348373266522166044341378864178445204207095065295307591296608198179986283605352281768859339722893998397279463978009840920219819710201589953076148197528254515652351277476808687766398355391883675061077885705902791900739665010136386844510888204556351799446304626272774246367036006117705214282974734827104827528741334798657889707232754586984851797664427747096073704928453721410453279094017692701584357410254347137576457935331051403133152062194986920888625511327061655322005326845006135038954876666740388923800212684865544884895843243011093613506951021045011249207753213160184942700281274428503788023421791439897699228694794561373858241646821120777160129914684158522515186692498093489329506622401621087566082619970836519666256349036632903403050201645556960743288468854524850334869668206898795441665165348278975549946783518169502763001498291310610189452454242896940548519115483445608084063781134600698030213284736383361216738184925169517822030542040493651403785836317744590083319534870548190587235319667829675145734029529314830841211327922194854353734509039124469669029933065102931580871380423734877883797542221601234333461108765830613512061400643054408491455573940583009462824581664857544754666143156372565706856551571238910307801751055502622737877797911757996714376994006070042485832262560599151000581395335098457131215297999877040585866094475992807764061299650425781457996117442766011556215914361453451839301541267079881634866920997445106729571715458844706394538015660979556749838846741738533830770783762399519297365022388047039805272138695372347012035262903407429317146948134303146222603443227204986481714787633901015083233354110231162860041006350590030510792048080358767000822047389492530380234247915136224620771157263483833325156695280506198150458203606795937159993218331909213821274164307532797961918854759921093974021844866154641115722292811345636706662470671739598143804006985336899621671545652393548535510131008901455341467919076296378863777598539036783428819076583494719773911278048281114441083912996403133514063600012930693555780170305691149846206996744019693237517447648053822455482125893650493305833380167029635392707277380366521340472155963297962593186312601256396947312251712722377344899391238315410942259702623466375866222071842613907995700706405554530842392345604699953878904914660533371514741560167763092163837405063101709333623930044122937465727131564914545687363477332810029581039085704744317275986965956080718862696527013135105967154372361728003094019702809647646594651359774250107816135839957716734888440994273861934623249279413701453312893439556218909752724981453748962579093802051602513404680159480755298427297551777709666013072965594546356703936911626521294936868977455499747400540399602161252666565932272166521749558991624818425929011663236305850541667702606632382318360831769298704854364449623198627872465030670305908134115064422966612055781948704128067159281279934088484560989474291651489970889770754453343903717208118649508180696747794974315400308245277807289838473417754838676984366664380572012682960338393320200991529310524948895396930532896179936747386772220023111662486814218892318866170821541906968213367816529153224169291457766394609543868640339221890021996969625363163333173302701761242680397650564027558163114535106377439520460027195820002613134714532361283345203345768219635220807199700929643172427471872090718047929698511789434613478021218384692070772106322007251489079215142081176596871912869432865575062196731278254047363763196729465530766874385201038941242331724558605534574465452892880670075434588357519581766862641969120686425708316090179965584832585268295147332758234226988579012932898854722005878348395916177520872446341806664112107316991080386118068207570282188766785900222137400462155330822740795998654761250283963400041870125872361758323205593310546607569164916409194857770744316425021356560704085328985245933283191566674436915859683395224873314583168610225915765548166428291117630428651303395121076370288761503987934955293719311882455751354989379947998059446002732728241517342904001378680755902003107281844066461913582077106047719357947768870061248274981699399016139953655690837065637144005747597793124882203815812765485933074068193645418703182082293835910443223380139425216125122341520679164462161728510704469610534872439500808622711647067643162751945443295548903081948763840360504825152592410611922132262496097912799203684126117622195903757275748749298889663705986157173746925600836949237921394754078942174761735117042833266367887294484232911694520188468123630014946693325025085219905804461225889251491587001557828143461791726123144535334599245086824513840699426071854720409235374484895991605460084784569981743195592855055572928797917751601493077730861512667287767234700947100354932892359629397190770294564748880339633984931703536480466601097279627862156879649695613957950736490280976885077738467549569492797311920966925853233837569146498151738479919974035783197553018456586975558481778990957994509442808947435915565837668829121720171252340030096271095937939458206051301693129202519374020649112984039816447943801856461729353682356341900610958273664692781336309936877404990264219818781724337456826081161978092710951246609205252241325046602196957171259149680156220462239508465620120634709568351185747907040057202261385998369085896636685531336522149077710232721550546289903119620469687468721728433224959346599077133507578454193039946294951487858665779008251719164792427448511179506741835489784839760479206356563992408043674030743928903651067770534779424188075297713764928386541931582474347318887366805972252860956350601610069708999263025844890909489794884983605785673625377279565921650450994796335366718360777273283447309392831065146606885604955965921004280061930061501422167653972396601274131331525745174429386040274405825927972902641174152027398306936621545353930534651224577180792061246480130380446879460365333182737245328108363674353580998098201931040479881499231790313432999488837112484791562945829220100235675163973465338707025037312454654374084944577752048330145722721753251061154838956210272987859669037716652422332005267726427139074126924672301433891367295220279133732447637445743029652968575801102522078474332022966318163404429694685493801172197029042399803712442809532044196592206748919459600391925757223474831485480335910239517974995316728906678623245655183082167728338131018418945443911259890580030054092945497282365801388095166738212584489438776183688005277460325619867021262495792352902797377912065696849913200307770013144456671918062985524362755386736603520666927765198397017253954055075839345414582677807407018551027091968621636241611312586937614952046605404702643216562185873461405230618738967150564714376581486727166203888906119480808296000429812127267966182218697516680073179887158766507043274511568489128892199094572376567052504433511380669506309349138942427037635104810658550667836169058538117765093980953323869696982240139414528456195451929816249733043281859207367854816187060303478528394385141071341069263116001312605174822295534933883522697649404866416497445336072009780768973859702525718091473596841248774479816977048019261414077866842952041167859289066702593734332036412341971599140300667933725566097173438259677684965845203477815165695068158709636775996165046666679341479608243656097934814769123134729341319524938688636520800512620973240444676631018993069589751256650488717169850988960399763382967883405837064807981244621513997850009656519870510613471604351333956194071402996955731827056897156442167553443195168043725368899356886488735098120763823195690800000718906890981534315048249024925618956352947586294740199344212773800108472962300733961493576064166298395322748298038450631159340906832887350080058659325905216670496092645470466016546344245931925088596318679258358195175448205913427944182076117405678490200909186161120655504698054975808571539239175041228187201477215833244147972633526721959113559498981394314412747495928530250551879315661294680495193446926067446875194287121331548591923084688696724111306447056134779937661496556635226423775671081359795327616771987729552573874036793182021656025413962323660427621037653420907672300149262900377412489188931858494587717590452373951088779041740819321345798349318726391728265643601083972387328614990264812150010048414070863516492776920948840039214008203318699415776911917494770048064746675002481937479312271240461118833393124735418558727244377882985173363129889465642946999563775711484957630788524435831496255557085044615558664244563223064999291264678599296196589099614214050508658433740541400711346793625276844291666875098753306284417143800542843964434220966091509783985143262626798151351171932233619765628296467831044110481891738775859936515837942776645083650065095462767430919210452976601920918392841347331452656565342614975015132876310516081291418063498081612792143201083921247757632310448494409649358748592908419089927977647602601278068461941998465638993604760592751782856593914910716695461766116962261485993679436257482699355018079077597296050039349316850442701271530866740798640264361110801382855914879220136316219038859466088360694137509272129278770662353951478091607126758080306399573920228753266349802417558758854775017028499382947249086782499210497433600368303239981919260586902298299995123672156225336776424540107341987311325722094319003189102674134258981582407587651643463893909788891822949389000673200942341727118349054496421234667564084644089867731281876359665512042660909523204781221822316362042622992338073028154330822770558201549798446499149033258586248331335063320750668493169915251686739070096958593384705395279597232007331263247888608992971842043166126931388164742909907937894020620785661755557214943608106098629045719298775652156057542854568560211760359026236543289018375938200319313120349371750465560873276911307177452014113665810579008904482146866263861268440574057724804386047052320667701348718437487367175487268394924549113985522425347117042913760629379171633098904472629566937840614254015873754855076994461992034164495734639486764703413078108581608970257445769142238612739713061677483399097768898161237253997656779938903393282183324294946078997365923107163032289317109363592086996284833567540893355263946933026762900193680589130835659984745265015891338150908847020592796583098556645237961507194170407621647719608544255589480017351209066715924191598115923916545349088084530490050371033516108588407949028924308049305506194839770306035423824196670342292762445663376459025499754352831467687475412206675991746433940504965802376409381430645595999303832894971507906342000452228773560249581923706588392372002482197217635698378486848816595912255204899029051892931295130407775308445169496761085286517145091241708036980673050895366223875488801862762757884168082571659062985222626594353699686200388244148102135551262268641452258038925647817872317647735451161684392286141321555696957218849494808730106139417556278025402873463762232727681616817714369095956151836130948401568144626959739959401957773034824270099140700038871866895252104114320410273150137461339172961590925474095599410186374315935739063789076665332405967061223049562499367910732602376524638598252750454599263858423517878694736327386206156230081264898653106558164708850070856981522477994907077204832002617228514181387571503390068237789989782684566128450805735095043444193100007004438698474753061784268505703555800227034970801321562405635021630401369676698912453722940380985161141577944006602598981551304684895797920642728453463566328459502656126706134717188267254156001176710365568679696609101079159393740896474950314512760015835823459626737345241320145989818852817197926528601720900595772541710985059259551102155272794504325407985616157412041442997426060449094804083675640301477282616274518154230087550388037660524877655697737402109778545701211925909189400662010757405621180054001155062354922032427446187477418276403971492079390375984803108608272321137502332204211140688261422423365327979394855380588662437678144661280838258604940764215711619084865639398607288604246128636166448984710707285503402801136394897775568941225819674266059400436518238776103883521896524033675331680653854550240393477451401499010600898409973561721584819449405510588966170758448569298848780514484544871138770455617967485325867445591744778829028566954506021283610661493679158726598479464975231672281852487477815086617373796537008308596069450536679769868619922754704838199627930251942713970981975571265312478822066303449445347137694909976187193721467516033233165854332203057199015930689862776905350917244445177733634580662884841233475898457910209712440899097731747028494767747010110811161319867268195257282034387285618136671316244834080517918872927519687166047676834417402586184262978634896533642419479109233234105384651315945132733180740991159022354853767358403694168467203170649001196594567246960627259443715114142310148749325703499529418472061483214564696994043803989345528404350784080349610876672360470059084983668018598558678949828963757456038245703049262011790520470758600193590831217176806839153063635298518321591041988776255311755634857129465432099572662248005749749063053430691701946336781008446308081011419427708002324004551612848570195637495854790215285972203229018919450209048583386575545593542006697666901368802432161687637572670132930606311246106658962275287391959345949284084465055337294545267859734151596898596497894234864429663034882423886515137979352246559080354896936302635006012222494197798796857231301154364625553944528163682263359030517984660880589869225298206390491649225063601033383009851905768447848867865552672192594683563987289611735805294131517715493235499591163000491326772588193992107224883953176187769659575385658394066669344944480851298999197028689909444720559672023312144551610512990124293179867878838616888071477177598728627138456393033637435466362673456375845196834628821553150483044704177505719559588766424693440565991425566014934782564460534937286409409672272067918702804033676628489175846077673251807651246208865935867855709891798698160277114508733728534108418128563677437649724849801170268760157036538362296317852533736397405750313561457955613416410449447756854831164152029560714131083164832979548015804844569306240920839356753926070162903697252226235532034249492165906555441378255539439830370157499066913820007100535783756754568319733099382419680411587439185481702741477646909456195015901901610251507237927173536457509921787588539257543609839921495276428549279704312265518061040469483642177876770285783232764711152609219456093219932127903686351276374820209183756735272076722725652211769667441943434002511284196998522121625968842503191937316460977939629908535432985794675839925538193302597734117590610871521479335005288609877730343930380691246090326623999959485433303409971381187613593898879561236838009270854419274919881931802840954877038000435717291841392754726254115257459858093325307162947712699648599936313189073695061886468561463609204460543576840035022537499795634697139555931978893502049913627885261027204865781425559173157211000539994324984947315095065924018865125019217658276656666751359052350788139248296687656660264453033776740195669143435205882605846540005720019007644582149523927851898337542170110057605086302471776684811027240640792530843529588550621768903655242492126777992586741921835777694496834825340393229398207632528241173724871827047742995426135323358110176287771196529720419656012893375823858672891117219195430082801536243674691433429310712458415948543914323824080264079609241203570560437169727488327739392897870421146759624630655704263248740551674177951356031216976446077618532163118106396280400081350253045077450124050876117541866858078994650902433084136644767293847315657328100514256271995213074924848121145150791213407620384126812523799335284999232759371009626808979394592287680753915609637225038785866249269507741927774896029936343721515569633475855197919868174342475622140959140947442947614914354641018071280831834193381172328941225979364515742098736272804073726254481047648324197106022032092942292457936077849109783498313933549412438818909103735720870585229540592085215494874914310255950560873446404241648637800314945312685444932283498249230273597021770528016763966294379071702010385420607631073402928137027055294271348749196540021768551957509712641212935758318411843443809430558222176696669848165646224845013373793144256146056175421471298150996821387854716494837829056524866619024485988529271804294755486235010497287504424524705327823971072912102816634625721515585074677930524761587360235119472242622435620801160718749246683605376587590941841159709089254029668550754697346748254639734718731196351785824568307092042961774835788494485723001185414323036161464408808885807562793954584723659660535205475976757019063378279868770561570440799004581347800207354802794847481269504152238093381812932393185876306067670360457919929829568777961720301261238359985750991285100991634304220515538790679236968979488294684592454206804268967231296221251692151379845385271208577092212095285339026185699198482261876000005841278194690704501198031442338167229200171964787600106058450888197853359173573851278420580685623730304391191884786407728922323762649678924858357838875508357904266370104199796171415880297029321699755675544132326503921291387572761795052566853898910772725083344576248402972530466652246645921670916407066682217826588811442602203946893664162659634840208112432375523457632334544657605215449215464663442273175132615521784438474302769002567994300668295630367876386580648841406252470588026174175960713118129271726700527543590598665832987493044635578929156936012244290312136814559862779021608341141881612873569810214593884205916673420182787118273210817892725677282015225169109130729818384570869048111964354112461598779708834865264509552974671531163442646909905283941572784048665336523013557838198330000829689299380774002718632252180585616431837725758070981967981511361720639977745416410190381687273185617153696892835132933876125696263443247027051401859219318745988693041920528262969363543579381660739294368295721629105718856675496825683477104455566830839515506069437799854191314049058593566656109384765441664931058827461163901311360138358197375255490787248012621880485901778973339852849128276873204339690836652493777323201086068088226672331324162213854699552831928212311109063029579961228477813281508317198542880495452192081155047301981116097244604973301892796281555631469686463565963825110108587322589160569733933085563135313879701601921246950847035666698259157060786641214968921563402663995149207007069438032332946487425319569426665055468785269134857482063366397132604888960530100965598738183445788592559387900839020486014570415942322865525676542649057068708115473776926230012328326506328082664971943598822611233442974058404096534798440709741524382881845120934573792731083614803935988709571750639554503545806110898857785266221649633715919597357125602544835004099272210810765219943193378180193037693961095364561374037907649395106646309888507287449646447899154261083880006355617803057380326648380155010660348190369841628628041882773322873823795563855705342789197290528207591118676700342754617533697788414299640083848823673705663356780372858160974185009367293183006368249919685425877682634510752447991004177930752702428504133191263815574107162300236810457372638753874744788278681288111792423482647599959532321612253550454244084916511535665170843426977115806633699486336834282438035044735806387422048527956668749951380545061437393270758050791387998275360346948992644140020016045810594099222398779660263269046588596104665498417340786890040467885950314017971385644029771023432232154583953793729909129644588130509526251498260536277563318587828281226393245240326253232546884291095420793136375662257406123602547223281709192373024072172148963695931011926645594399016556593288766199730068116714594741935344605825708779790712603319972090440562314456805112736269100649537194752749176095333255622055521541931593962654094122340166175928998153880945768794494673958359184657017637848709693906579045700816541530217488920064793574556545996104270050431174869164304200720641516079114998312067901261349041475809951783235129988804216784786176775009580550807222036504795461605994103201140054278659680830102125098872478282173022388662397343880202459618795542956918673578418299904388702860694072208164099694718103379133827968829898841915268300735667689103055649965245716140346468056512004690009052471781929070129919546167216572079924792171581396568590355303456346737507228637010596047820795437689192566616064261013897379460000914942648103365464674712025218872139709112859176671868650126158743114456752177038142900616527723362549294890842730010333661254594582016700293374803243273137140406347966487809059183791465003577039456900864099722678724957471212497358084904938576426361984085554416407824189861773918130062129962819595064022823356248247958242479488072399448706523664534563534560674235200091529004992662134859418405327492585104299043755910660949538098301885948678039956553970603817050607856144721261572833014567116591016690245894745330204710407971850197488109799513211798184640070606060223391009473799145422344190349401766948038890157504215113535741071925356021431720603543560049865059962705496776603750486238692106297655269147882494743104538971087515626697745885543780180606172213979191510566414787677413000333123663845485692753072398643155288744253079387936706074787922961709885064519906180512002843188479136560952390248491078871232513103299528637347858226775921559077139738922239116865213382757521857222819102884748512982716171355994883190389904306847372987529001498520833011336643268638541476400931999255551397119829190500388653229489320771228838295140077856685626866755748766893213380785263231845683559552277284745143045036710403643447748911665700164793824181631995373473343565192712984949036326480625637123458243735541592426530144641876317552743347487932753761968296693683798562247240124292853679694026936449648580545724708532332172057241897951647072184461569799640287945209807680424873549821519825159383646457847025749059399871164606076992159933506982366937987499989587038959027570833839410148734655324102788812347050797218857446466141219317866681666591803202180666793470331416903015363894548751690208161785626046413194124270809938318488778989658421151045787518986853700685130977590085580805682836972149963018970390842227160099041535808868452127141323707948917838445994973359159411033449595053935035933032154978035643449807737343722290618660232357270556072614938603622564414548273931439808021218184550533457382696835992489047505816672539534252016468447111021141601071588210885310606198642434535040275460296774830175202446999057262192637899949853991506011296792317855416161905059004628898133999395456921271866964039365339582483442346334916930903666621972251144267210778962804595133965587377088392807963790856641441876520371784252961834099984899953699118858407187624230684581455707458305057762746949123584281714920227677627245019926794020438847134402438925604671836571212509019918269560985930957372057897996632724240104224204492776142232422392525205322704413960787815607250325146849902600405177103915782757897494111513080048385515890886125769677592700748819898011687563954910897921670479884877579943791570216082746849043158032639066485941781677832509520278510348727464175205334957026550651517232436842906405698895970082878794087105795988700242022805228959558909965183929533631329887182117344566930091199308799629471790716863176126632576368082802218958118731801489904139605517699902804599061569255337110347059893103033727452396905275799268104500187811482521768645362949439603620537698059926742929657369584399958303857034062487016474884935516018201477620679235960171896952586571910719840947271448425257721531486363699057158430528751238022735792599402012009401997039523654126537753035424721588888577162547961549022945963300911511469111479438607812185011909845039894724023704718720189192711795917855012100654679238932720735784112974296087182190240634944009410719170762587483134905633233639519714749618844438490351330389899221108544810411603186191074253895524125700947281759652655101035579825573764060829260963006510826599709245705868437629366603419304891583820988863926537078818994345640274108300334667150912229281761985327012343946037255772952875840734269476194422576161914409076359307690727566915973594875374439288010424678473421302373543137935298897778093897905795930063421547852706362103326404631170450745322474507559067847544347807292593700028924504849459217711159847146118022883469495706050590539065812872459762522909455760470964164230601748040594211341764477578699921908724598934475382732579375152133308991142999355481629150344938457346098359351824620470935891702286229951827800654100513534982004805032761005325626053593485740123039616577384905750674528715058676454343230153393553369201613841002073808835567285413582292459504154011575449297486112067699457197272797128256228707150442426883670744805991159790357973251013281660027540832449884243477204542779517410742177259912044523240781789920135928403777595501542652925687527121014323521833362336441397908612410167271399019188508855351688704031843737555228021001790662789256510221531830680530933574263721861158895821991826757641167746422947655967356565496577698367234015366549653767568600786876437073088625615508001443085386182322537978761094708171207411551170105070422104964185382875168484187131310268605302123876040015792409024037469003147109852820963517909988183162477132842018011702699217184814603122214374991450353423167574515272174511882156647310492334748134017810086442523855500747630562509731506835001485473302257894058362071659830239408439932393757889237479337693369434909794679056562360466119392428738078900318501558895175864857049106065098973990974129033576900223151616319284070792124827279586511127042625649361378486821184643474930621555713972268916206901056047679334776274759618147271248208059583263692395056958379788700105316585262019585522437973732890075511899721077955912557064682578942911168398878687469708345073277282194101207344231403033717160031995401926758401265997863664489693109936611211831996515290226698838125448388258060410700785612258590389420908129547021173969269077026756005306541999296284539077961944323363680080876130326497812510847624667050429494960290164559572740894959589001080418582029068432112707632488602023293306021453939205746249204602310623923922537875198428456413481567612004904792102462519289471211660859750130511126653663595294171742232173515702759164739936818143022281339379320951360899577534448723125228644221094553945689884692415850653726407404837196697600095510512707331043160566470359301704572626062786861338804680723442683657095014015261761637939465483359422421718741882473965246169237565504474738830563534367141682854691557809189430466540016318207219570769897126423600264458658310359814404039621659082199709296750789267610627338975418604267356948633040322800914551664271557271873518688578178206804900437136998668895666161604594816820894305585511869050136154344458519906970063982550062023181253538111205411308310069854246245069914324096689191613954850556121060129747315268898179324670006889090731038794400908014384559997782026543910168892610880679156634195705217789130805906480516864291738589221995419352856643146867361836918475363559005316529186189403231691973963845652016483865553161711687419294447679813388806235624044264088434391552786460048621120940862606620083326638198148748303327425046777907722434985201247373014122221759448166641947083093114622170558566830887679835928062362272961895505169294002112116469224482034635010790590377545069264367723402158331294561879681406963832755689145491925307040734620108997975375897068459497953718787995473305530422012418193386317688208620497559889260509095551250863460537939546794594050682579633342484416822576770309974997281075639264521707082844475006588578465377698134382464395145456601825972795103123091046614124855501046112628521179415647489228671831202524607174783309912674756840123529564827345409874760927702621188152892594918651939060476077250198682954562374991267969092235202065420560944875873458850227672363558654987522948454832294569648178022034297582604893283677096389455421069285221578111336543738986171222792869677900498555107804953373605549513668272655968551409065487603577009672570614181381261291010594698446527864007044607390673942427489466221559236650536687160015063393019711345161288117216343058977231123539884771212970343520638887096134096551728975192498790522670608200058506595181773027998066551311661045206328950210809215899339383672597035878468709734694430794877555456242292561039303638106892696721997641457982868144745795576602541917100505955889773206547860552164761512496615077392196943633466910804222323021726316058548121059120412725301849749478623937218803651583041315013749444907156062162446588652298473718520253548023096149660181280343128452662692321419182218442191245602379576414648997329969521798240639212692536582500585501031029581349758658936206703726836575036279664186023478849935094822491472596505423871079570155693985331975111348695810932943412855097769152329952703832970379492674208658458098877132985137755229052707629441703810105315055857380084980327567869638228287890538427078741195075407810663803496344124891820053409957631749117127679748626131899296476235664366306555158219638940710336553650416466454728075915421476560402484563120304382154459058806882689895861838623600393839590195888576835063726736041838388570644800786325766663744556234941158689832682934734440166521239390590726113261259793470216669919343409111796546243310499127201033205379987159737864588670773806228710037164239748688325640255827619160117467571303625088077429102588298738168504844922470701592313277279651247782877449166199647646650961464357308795478204946722174976925792319626774764274202661411745070326451860860351444311661535631325522623602313561183789222707676438552744128873699060687512658286434549207394191090187970235318152561404676723672166396511824804171194695328998401035212123778132163424257297735665531444270358219496423978041036883932888193610065668233496582383194595890844244874601286655200251583191099881367863451371705045385937345015121269300915326302956989208922001733841198743129822232105805679761057474121941576949048786400045443778854679471619927145085034655259737708297009123639432137473060758872201026171852919683396528201441634456471260072112645266848965669967631728789538600550540370358126878398018232861789367912320931872721983037093805013762464011964443709686069200417740928790763719256638440934847628753866303230952605101887011158564423958551502916844089838159307748943976361409746098473820614613866560891297443943665800898275498418684953152550549186077806090629739675473324442554429576353751213194169859073742214809173888527703827690202521372928920073736972248294549424240845302262471308231907620830147978733480836903171081920667525231556954821901772949439528578088947864557641026664098040355620670282214744045733145441566061825368148382767024849300124916193852075080829820272926370414796122473887612166904193006838443873729063887192277027739459472982268935094690483651204802833984261986879851949740800904888190187684630999564764098123967907925361178819486725007299569183353594878925313336311410383437618914601523363755180440979286134350187423745538673777533997627312388363456580684888694619501596729135878073420490465500812153724703232108875038918754825606904607538237858776149014290006132814208797041394547360693355205461575909990741127643601277124192817926246030054460585722899914379769164082477733879443073735394290671821185102416460823824581089054959791151771440817328769515145343514930290200544201069872099240951658774535850228589655812388171580421858349840569869053231102832621844282425868941757780115072269016019265120184304729985925687900011743189992687108369346953700977903701987113166521081444988206661726865010886561803564841992589140645352327859107234142962637363135131129436014693357567129135187564199100622080057754290331326081112239925450140984996938036261432701512200443023776096402183353669603635535865181435745821534990929877023100281261916070751751815212474084718605634437573709849354380822708364619916969305569591304663260341420207256884724738691729737621265519230636755990566545940812711438540569127285531346085239861189426267760001204025671425515815766379990747533492307487912319873571562847949111356436763858145998730004398672545103649160388363647203252977149813365282636099145193617129917532821314526058669660008805756255736549000591690029877894917090323218523930326185291164049819607518458854162169842196094888535534852795693607206645079726904090707977625291208521796753225104754369360858708340204151244739555520178175854687233066967079672957177668346938792220931749493095007235818158143748535993453856400322938008469339350729875872667663133103944127670119804546042380003492275191875113518205220649335737347484210908343648642009684720399458678052231106443643839298672391977269782734516278679699182838655853559731554534437550640159113784608763326502375295075519494863373095398003675854480296847998615820887077520946625361423503898000770112774658594047857594699805374577442791988364157494220934675470969731141335899548997708719398000929173747039567691608632225388266502197460393289170876368593899357578056573469635890165535553206471066068244066080977526390465777137641843822888178106008158539344738734117481861336563618891173128501356461303213048100890513814486756459188083038657735546610184962895491054085704536655783912786130529205409746929418746413494698310816276805128793331199981576489573252435943743899052728499834934398173923120166241684270147147716079437122741104217436053293673720083619548164562067983698116113117036376217948714231704470471829875027080885398743627244356120595854999407751711676595566183700997719988478248642715345546123058710458680793674686350700244761515737180827416908986413899956078683962063808878669489327227442928534902411888945492575225673960259381886583675919179086937899350298948646349779101666317239805843383251800175670679092635194778759784785912158260453889550651922510150763115283049926983399373661568115636239322113340736499620706047328145447603151024619401809538586408939080867402349464994837712991250248133825026420608795867156257351035358163915570450995683477080589227601926429909373907183438656624406127814083612796782153017854031425015024076809971006064907031530313545155897783126086014696392893303881074844233863996205626321287238595437323817002342767245138954234667103922787043478939789459840171394686712918165066453509693175547685766736904757360598732000855754477445752352765171881491515177677155948027385945769316062198311256011993668142832015546714938710505694435512648827186479048459480539917877216813686399284502139341041891391639266391608724482540516965221677467749975049983631826948819501103391477714165200271613824816936385887644661652548295414545821796830958094492494578956748184257840194964157191812023331181075015345095684895195223642155504540075048239724673251781618935568003213673129802502692436240101965829216583069207537062156956004930746114441894463623978686062834965290606592731163446168416809691153542453760914653206693999714860954670685211964667083565584013858079873501204616006554567362213802225085284410048642999879300511400426876694591962318071255154823216816298764376735153417392972604080075272517340055925289762857686776419873735373984543300137080660038826297459372799719797199074109752282693803408181357918588275660613859475009717895174391236349726377515456119547177346833254626522612895188573699071878130998896710425298447504893656478722200703821929592947923641914006406019996880025551366560230091185679727100084732930432658329317084062267380888781428034862533551898571310221347742678196591967614096165354969871244987855615417683848063614665834119781547267283326075782752372410566316901156262753483678198093062623086342658888896586286174200788722243574350071295777883202495787167208380202115454007015233020347756748085405153997985998842144675612557057311102285101130214092585963324244551162151442814555313884902166673989234039104989557995475162385847997660137118611944841896108315509906751111714154717742756877202184315243287551302483122206461680087049180413040375509360395815598101475115887174698988694364434324455748210512896604346874063733816210508871708121756678820796584933064055357196171228522248038527160857539676887731231456591251476551425940704137472935051935108100556179934279051183931283763038863372461887504483160437778016485481288189152338179948220290177858679391299418315696422008019617346219189193365392645820505016600602003195385736326918647525046364474638019304344337073508525592090631739992422843027835495471259481750353636297644773854000516682059096163353818751038027370859162599670088155850244929000618302931421234706751219499675138708854907151689464146164159761105694808095259763511917119604638085103287798155557453435523992627431970345831391640747716534114608133292388050638093599764365186499469514299707905473181165775068776419473226889225050788196475385077181030615635049358160770874731676132211869905590013819315065795067244905096848599096595596821458262581190942632257667226771350033783457407035531968921317671552991036434117339741324054814475710392841829605461300966041539134317542554897620771725747539975263841706946884497441142234709398631951572450034662468770440464126033817035287568374460553726091931181338789781287736630805383122823032514355593928067390350612271240480039952216732269166332723884408432518764998120094116836314912478114858202937714463855562488481740432286219401606259301167572581352590092542148477169088455755326170464992576533675096436834624639742687520606055598567402271387128815756808741556981774503585340579551644620663953564357772658737003136346732706362326240329191853640818377679143241888704247872050103760679981990434272673021369612037165816963515759001328609423205527836275170226687900504212152078785368091403268767369353225787058125293354087544011126163078057311909407156249860835488907928346457604708042928167597822045187029887844959849673931808605431212430044812509930488900430323939016491509271780397566728995641762739403611713849467765486420371727599560431317377401150787439727383450811389692887624206226354591871878297080032624879440621401005496339343244591396909006589531380885319632311955384471869588183217008394990769314377054356547316415954450262052724631968745773606358892432246835818599324215176106071647222553030345263048977357596216652165885269082731947173468599922529821211582656507882287037969058999437249554238501583032155150848212932388434518804530316823950287144394055541162746434102003788222303039090255221026538056501274859475550137556760014716263169559534195782534149397698505782884497350773298226339972664988648798652768044498799238119128266317736935279486242148842505334697669955852639325085804545000785901719469322306795922478628519547875980373580331833418240306101063598664202135448827028578117744266009164544693028125221900653365063042477909813680425897917708487401555319276498610804494597506902522161218788498274545813267710054760032052776677835863349282360663885527935477712586829508512489015366102027261177243605921591691191122598596671784443507045136911714453321705095553674993839063949432440124243631013354555291168222186592251062368532180225532192723780334469830291822288307797680346500071095028812591431012699012672350912077998682679193974956984650062000755234871598146167297040937363044500706276296917874263721573559881514234920710715090391149517341338127106691793164154254640404557922397311491540879564834714511067153277787488444023798370974905265893324655011043226993452150336662319577347184252538804456154459819811082579665188481077040141025162061916290227482634025542296246516563724740106940584195508495434648744934827021793058946308877858409509848962203203606893479845366141818285861755905677487903429839978542519793328321969988135244749146086764059127819201642572993630620005218240909873603093686177220012854117935759722763034045876921952843113313830878664143935164317089298644631574608216215891389705636168342393648823079169768024361275086064545647189787109036964873437928455052651841034031901687056217090458857703228787707371804397640139618447843068865037535360654181266336905764270684823285122877278743501413340925855923750194485562487031541337122004459319897517545421326210254834204042885886924653019203545220922654690602097085751751256254891769152175600000436401539870147146176120265588718988670776909651100731995519797723774097572851161038313942891225340408474074945683427310466867339579612080350728775819370801961894923216128219988446540355072729204101680523996795684390621933739164620921248092783531614285087665309214539384934070250373743536467248273230741477379448960740048090795601886093685562780939299976344310769015024675026756133794253289918627793741483802815358426571771067100916691427103406934852158790157421448951451937458367343432909502660298115918846960448844026576380068140840869344302897454538915911751446106591005488099524507237150478442164063869968460585418649496602735907338923168743835446108333098804309067539806263666020539601004585452689477480244367553061069499419099173096766965371085267318394879779173996501575158173585547284938419608777551619971474065694521844964385065149240565084832404266673236474606590615614095973931217015112547494458503238362630283344606352751434456854631236270920462183710161143735375940809455833728657844455398748067602142202790402471794477256018896452884666411371930528714033028997266343953278291462878075445608801566402918477095309807074961719667258646489078151586712121035664053183050818748728220522360197091688410193682573676584643003359495254486526839733265065174209693349007119505254381003306644971502334559785560734103915460735901805116039343857781961043418500242357988632406716930533593939262376416420748434404397234250132072309800406209372279718712898176163753107520680743296723497739330689179920413669733461225690229195963997049180638416723084976575470502032626867332240215183074146726451937907358219975447968763172264796541296592379486691014649416240875586819768956794350387448532361525443038360446603723071790593592786560520606003498641263778718899671702351154966697692451015035638745929843802486305311445233022709984995362958999842145984246925529778603064458817404717991823581694730611834785370230324835504676439409494659882937900927595711165731182579979855494193469462052880355030708376699404940697761458232214639856807488531669603423048890216107477589948451562270293488386490698201792849057844160966535100936395245608455230627915810131045104600736874118556555756904390169753773430094813490038135746631274312807250200650324493690515067198005727072487530234014941315362601787888219410472612277482299421090398692609127340559285933810870857729941380569951812323779046508896759833185129793504584385137597600760548836870607854418875123983831533238935875051187738063770985083068870288510815142490499169206256786067129483041228092083515393221166533417780009766926193014164834950037836462719309690967413214837033285852378211943899126961210174177824821781784725108151331774796949960298317599395555285297143974838369936375049521477130649987422189755838353070851190427193417166454801911412660300766295404087913508458005627892839875560350755916312599195717295305787055689801797978817285235970087279329430918420286283690374651865505225546339521405504851177791077047891719297173541729481203092729765931139917340172064606792356248556239909190476610361756995098430434894934790848596228936138292547566273622276810356885525506351475704534935416550240146967536174962646083048779552212069622511608534473170190425490227254067721716766506069879549671073986949990107059166032749476770932434805836233734559124968157976457663836338834383759712059781473194846126794324309905022663637920513875185042857066697231616853727105313591569335708814093976076009343836312174487715988157826159272961694986736799493932542506997059367454578937042052295880642133210040678372669143251227529776727203533335049876383290190784155571987988992533526560383004138044068939252808299365230363661160967436408123530373940883428653380993186580389831150313025317529299646924976904483860965566195380614121103228621982498182455762260453424206595686275558030739158542978669186360839960214386503414926544257645657137658673538459333303894014451181886402169143555018697643380509667426871579869124678926193335483021683939018604380123419819319573423067363685278623337997064223929952147039832164922515295140884741525464738737577672209686078052691287402108157286332598122686096185470531184527828932096475566656365212438912406293183544315495579112108915102254372263349556373763611754685914509917344981663042649210592118928074443049734275703195425411897109476190234683495264398083644301101936728922509520214637827246361990188320635903425552222224936612150637101356613377382286215529025875086107830772681513946915091181709079985747534257054811654740835001356457302340861080172811167417352627738683136824909468502865386915727115583574459727926014261547740060424628469660180947053045940905597599763282650310003519195403791149772945757333504596571786197769547669104468436981151595952334362478007406470646245334685518479814431993482749323289612402607060867806116019462375983286216115425591761075096434652140377776349238496440806766969882394990477358319861948399611473151683107924796444120756865937266351405515008834671309338241147648228174513099123971278170516888915136739908741432239536494186214957955510126805769152848857024077809921505727902004481035760526466369466620768836359625410464813506069906516372918861094030504709152340311002224672832118121073888862217475055501693654443353779046632441154523033343687930432819156391038917085280704544671667532403173611109890544949550264955618869696080503139609595973061309978447485641877628517997276648887393545525083337328771486429760215592405052239495180632203015839549340047492881319223580494071569173508887579906094782186854931115454304044447455138471193579104841413030169233074425553290243965334784885856116816671765772579503608160143412456192347546563431547174525619662466994421260617114808467944360352678309184190602406196139038557725340268376886728054825856310793360543326009218379770324377699476324709131723675409988307797891600477005384676326975837784996359472232348170040561516405540219671584332770325869011474599226455241606387180747832065613250176819910487604391104154384450039534282815747164912677491490572392326291767511917102941577361113212505476256587115429604445913198134835718205735152455177400313703087252994238234222055428214270679375225722964782294671668545524981474448308481663261980769898597487318315043967874944393532625085475352693059686317409308534718567789890475000005072159596169522440026989725430347690646254467036308217915876910193893591208848595702989850076657180584403050735480043072557721157787051181170159601536895366844912630360720412364650506660792941904295045116692167384170439077631828801113273401581871772368221434471512609086859861679713299117666256462627773625198868565311649322863110102522312067130214586538066283577752965255848700835063037121356012153233058393615992079469713517855674037436021886492836647631430560823440289838174713774077683228421756033041333612212130322693316948074444516696080917349690262552215549289147478360067344036782084630644597347858020106572851310266695899270166141624884344058712893325495664744496614381424693618317653943192337441702161586054967066898264651370089013277050371581480530234276784729411874375942333174255394011531477266007281764902993779467251911138911834724208348649952621142840389650528824589941772768428059436051199841673605876444097905942760096725677283658722944242939932825292959148021289949063445841559942603046763926855192823407393411726199830508412410792776901275315426978935482076659533323772008371960765865323992065006691792537406996784978408312996293596618998798699944612945938570736518977752516347999365101879116008947325029373572752269053881334231223387909150954027360096300013614890995412720135519003124850083965376358782522896674102756731083925846316383271824670398913323846075576264918251459405129319251041856188877426197457681449433078065563549249725137799262018105510629585788268715289466621747165493858467988101352076399482598779220118596266221260190139579334281265938382478561903902104104787471853422333919833517827486501003942032387034564473534770232177076030614816890725785922057829287314380604810858547747818695994085319492485747068583293691667866634271265421465685884154142404081442090772205448227328032328652814327508037037445353108896994309863074477710128191512978770557131074838717254761659692405642027460742529145553823542456190802395430542129700966483018525452421533136134761015635028245802918692141433532500215223089856941784035707000821487429566427588899493791354869224871155405570820642573903543800224142527115127237125795318191096241223469055279256655249237665012288066331056384452861481233247406610543559857332238769814243919172648764060980761039755736408259496150828221977549807747952885237473989571901027776252828688615415400129252068690733413809217911935428239238050818543243482398213260202463359031554897393306239301529837228283706948705739026673722663234891812673518734960097756932163660524508459212626300127215876545964312644898619694497184490085811894244531066103494355740916889756385483720272823313346866835141238971342510548578442766627929501074644753542421777565930483324471072599230430655291226487037953336197771113845659885072789976894255245752031609120400942945323951048439888068310152135880914143810572508063462909702093040544381760254784287013752885744499210963233778347631481817774522046150436108842597027704805696973525636338647311572292754069049456016019971795211650257377571718357992641443804117462719132964761923871587715462235163545916199079119324355117961646973901752647551380137882095519929926448084959084705513854471248164674758160588615905682876980698965203571690518124338444264847830105985865292154505583342661473041580463565357219150099387714533038892398582758341215755849144969149035885314986836562008230163418107710228157756364331889376323071309008981398193147687497559078641863226850267497423980829209119378512299562877787472236063079320636219885173534558565484772392814639882464595990954442782273563943840133523761781330443208693745597396339866479736568439887047595464867562143875547305514845271255231427216500657447290982106240371395514568723281716110417661616049305635724049255653719696762664888147271504735296716826989758611431256599966511811933351300808190382250539669611038541821928700125590412449526716116022003720075875080189432505555980840510207681746358249939552463634214456260344379624141054144009473730926154026986387737744259164429416628657105394379325143957495955473292403489139922126747498698408818885633937977601701816154577899533221509268460349638319884504457233707528243985363247122433367615161748007184545386053738216680694776353848642925419164170649730590377014880354325915546770233044745177578637811639916024653371215133618941169992775112943253367586351656272858758432401192706565722071258735296086593653520265438722180821845372961397585361492482990794722719529658526483376063907899556601435193255173781985366799712308366912990193133546167389775260801917551104921541626010978314573307049461742896374308441121892153599003245033990093455899940494431549081750976851142418775071730799628581160526370793275763234374730364446747940412249570405627085584954401439689156560388491000009714400241929495641149735882129604769376094947209952780771632527477802429050178090811470862798537015775953016559389936354704884198603971493402611998273801325130887079332336357087287381836364635686928206701066227790080511637173797652274417780873720198484389688970923829834727275903996221378732836247298576587240487627456034057315820961971306586703499349894762215574761436973305417285988263006873796834814717779114486107906958870495151904345710904978398985362865304017166147101346589889920561087268131551247507097632127296174029894269623231601943341110714237334650097205074544089908501746763247783313031923784360726212872969795243396124943711708116053044241747218516513901261310041050737455382896225911706374564640951930020728130384881149243727964435239039673231791801753391528345094470177629296539049099795415379463773468538414669969044098425639134983951444770782405770948399753010071989822467163177781678307496449855632536488488705247353392673622986787770469099197782317895898739779926042430978691615532129474125114985865070063261135069935287860535446757231524347461088159026606280268805227891266933061851853216039829213552931913312796614536089475230375031463555344433225357696962568126388828251385360578007936598106038576899980093872544743700203235358762510776120405210716691061058219625912623990582403476823851077020237632987992824345185887470774274326633468810675152612038827185305647135801216828942501526704158009892450856844606978765455896353252734735361718409477637690156254902415952256215513845352772874989833976230710515098222194955424845536148466888278457527041842404954124884727173097448912376409782208250513848747268531358698980895093611084735160034135934049080934050638366772483155428478424108741626168992132855456146411823482232778886819158871426854132036030116325972809963568172560911595837219116853672719756547774751621692840173643545370822662497720715081994903111216975512453891239491015569461852602284499765532598966657205065671365461582976717367255051613790192308446208279051186422416769428405837331665559845487781940128243933317874057942559526519655129277607317650543345565411314408191310577951775027112154080300987428798159434113580910356554941019205175409564658151470593881879389368620374089737695232965625558935912545017118070933545403350521798032575839063242559606785794872799695886326516265164883002069196734745654998440316912745927644282055215039238724254220050772701287119174891481998286725380279080627725436400828825611934983798611059973696419712357827544618228441364367643605232241216445896086706684728828287853271588852645308668311572475151223995844050497525750630603553818455159394595968467539377661038700688087703228463885471747927795444433962234492888184230355368694331451238955372988619511139607794163693675543643265273284312186759767127552400777804961850853470992198751813010196324818827622189804049270025477818477037653088726969386954098610496007931373400516466427671023136723144295287016227398458961352177620361452857300704396494630350869762110491235928556436443852997539644743489572991813648554887424115301853336575527333556211795720078169541846469798651476857924925653496305616973609673687886948694353857576257739873359036834127140123417007845844917085919083244643775115569094520524384884413721748623869765480074135874818586092222734225761011669087687788597745783968286399846756209813852409379178113091488906145553263277920242696710469396193059442794733127543313287619487294097588892526551563423890120076178224571734449573297909202757663170606785357507400186179490198073279182086146634506289893475078875154186188240162245539470034804046014023492879824828154793842859871310353679703704695928289048519696169414243118912947864938698411076788382660152574405738274048881796049259932829046505924664798452864208788198862519340216726835265271056004917997824667365363813242187087968246095583171802445319002872613109211871126176014755400060076437081537946151424054837624203909250137435063086547528079021180212648715876146258416181887016855253675127707175821952060989437633472527847520974776880720308839613641742303228271028836550866880542689034747690872357806184634563467077664011473533088891692337598474511608215101107058147381202644498388683275035395136480048064663934057182750430593147157112868169112569415174534971919006927595076326124198562274985196008444868992298495157307731133219337043691249800566453476794730565178089943943160752440497096392249886657100689497102540493179533587936148451500121147544027561843104222065048304725201557919359097478771411293195827630490251387414716684263430235072060268274188665049248955077454466434661713938603135647787672180230556513429098904621827560531867624262262654576919973512412170957137564555078226701959509167092578763984949109985007977829823775087812042398650938933739218079935166562683624745897800424590699248760738732913550166797507405230974592715127957745025961276142780263403913224447079422454081494061401996568160022762339437204231767095547006043321394995885913978298781995222896204384405518782976092147686544627410460756503791154519554357555333606194646186139807457516941619597855441514393430808304519879015492913552950090191963588405666650896949653481856180539865033589470114233697934041184753874443139821354669205808938800777293268776165070080362801115424911877390060731597099409380623285985682150451679697442505563850713893388764051797969140168154117269240743187690950429793903871658664859314125634353032254079867583498692026356839794368201646401996096654278106507381956277470772533630911642312298668703624591230380334907662479781751267420148793032165615984077548985688395606506845725633982354911560308148916674759824908649836621323188345195078224693423925116226908873806087420683923873276794273074162724824170945466290789713388953275932402994805880797262319858637182913013521559487397314627624096440648482171861735761225063758345264417676861879595853325286876984676168675587513347973738476527162319914520466438832501045983456370135895679614208082665740429449273210549805561113770780998041328339579591291208843110229444871575440808663471078566731106210824590380614542414358053579369060065419207109259466522202354093359166488522739329165691535227106358746094726587435474756407823121033093442848310072856557435416517615492694231582940254883817327812236617781430034094944548645149991086262135400361104807824498521351984844653920636960938909989535613092288009607900273825000224836603907124947765425312068120590300551074707317917373328573127121503656237477538242168989889039506200687281279519095844902493691264636905368199446208404470465270684726003916621487550301954965575461436261231562899507263421911231127235697952590149208718068145347651070835940993077434238074904749195899807933147979888989692753058830573401527022709694031813904192380659501792128292340526949399268316345276152904345813841375765622362598635695337364054443247846434976388322503195950433258926308846819337201871255036952634024710259872273922901404202611934492359322417653737155808021274905577802028103830174134321429407389602087177475983064529419391937112992177206841614011339062181724280516135157600983080254751481628282225886707005095951760479242737766238097442212785970676932879300977687393688285242710958678883423163374077627145005764536744316532041817141677356082983909485711926400847427532735864428731838346682508749582440492942029437557587333650383444871246986920466366104523296237744050586185868485450080092294949075029464391189608643014542721430092312272286377074764870001893791795577852894941231602139810412826352587270446300793777379019091919334212135253993374084481423952379619657345266443779513555355181167633407973231583192854559845146146743137518370361021631447062087232771898564936503812686385476528486585657922816428786690184603255525112815537165145845182981422767132683473823872617998312442973198923519637693039302329201840511469466684674424134281997836829076842328496453108149332387565194567645274233913520527931102970126837030944422528980036325850507728719629107855265632392057904525326740134410268956570766840773233676932919356382260149884333462501576306123891210547322385602254269419511956267872584588370207061831994632195414227446178384602875359193153335051110602229314684660280404912502451152195199789019016457508108616425688457554661546255939106135631915742156692938471549317903042945550702178400280606582126295167996908886891248555082402096563107486215067092407432126469584002378399761896937862996085868333584613870766472408067825379197303938614851196345366546212081822709551786298821406600720826198014437810574824783180767411911560028655846394510483730768562968805032326003801780278867174605410615603190274797592214121960156896688760836963053627040863163521573046320481000586539397595337101755542449164359388347932543827969359320639319113358031133185188490625978654557213015613595906460968208000002182095740333198404031483726188434104989573941144906491498449630186731924003728439541278582289689112730966928099801348596040684614723406801399905316361900637534842188215208334502040816101794548356806642714629418378677889499764963884993978429785357579447043938942065195918079517770947921813185564927583466355115409913690897716434604490131780601521159453204962775834766795837114958504039707762458754004961844445430182988765237892831280170953197442834373493901664143017518213206791291601389386635886222773259265488377518729060491359033624797529145421994775250454949348194004831508042405880443605648708872485619740199935199346552221358626977998417819901993458967104021128132303609230528513872849028568450694658500887526562412875542164936302879430782073136045660704242758376572877972396846635447172927759365707624347703521418547319239842227767823115658650438309105438205454173018608202266939787912097973107077824625450303520173861820983983629122151394257640995056451679868956045545192776992186676948581531405605394078714365561688687659893608856074913941310443848327315543818269991798536067575013680075701771961399051652019453235896100520609288087822686104437506277954871479428780260915568515735285091101103679569403743424556451282363647480083176322802370673968768613491080960433638363134470635823300355784920509928070674255918963092084060715053143873448710236747802284762816311411261806017247864765843007402539724808998978474460057835442806125260093348816603348364975479856440839842202835282524873481159728454398754521765821298483823986792779559307452005667079564274897718237991719189421531923041623115881014053937447653122796543500746133811344672271892236684950138407676973629051090965142193978085688133970765469101166772089079783387288553860656026531284581339809114434744803088190659999834734936495192280277393489857231641084117749042696385673203536661778221280585275038078045291206402137531352965907601182133996164919546973666458718329086692943118706451617016906011672609042517730343782633508925849566181180874321187905935754368576393886812919397436056262358805809103246489449354613328619084013469064207818243726496765499673892841519052796312556076651191037302403488082537010193759089096547805241853811968057060441941235035407897254009537639084550234968892362506486610153569139134170180641560899189407442968896288811837630504012511890138446600050089246931349907161365724955105860891418361697781171175432638528388209048651065530315018779763501279276987794882424420597420637553462911120403649132193739464242175470259064914938496082958454664921180363220678860929948557221330750915600872548290457119439934084788207461858104057961282961485183831477682072865963958106434614906680806807119144233227546527008473543701896190198460779131984133297653162076032737088416365622282380510131351342291063132832537749725387677555425129629962884499327150357827276232600851640924506348794838265579786673669390182529268417972415645873575359542920848924783405862141777938304922603906026833841892939828887707566404990619702790110900783853014451582670786318189345630886871381206449694944878128606897554417195163191665920193202790646303038927978677462702176135680825714595251258475329360915305567418599175979586498439957697500538137062428775823662160740684746825221360830618025066704165677837464740358329312479607883034487920032593962988594601899219667919537665371593429733345217593936910679642637342986827421879063146852380277136358402053769407681951867556966710499166262399423442039571326319625346900047676306532109806288719752740828783914135797906266110912314983361010056149013017981347923370082855631003802039771238180634545711877618589562287736185578722879545785095822173868531538500500770649969210107337866843690835413604393905612387916643362710544016377238216526595846908968968803647322871292750609709413117875400613621768942617740448874693332544384965835653208632089010888594023167409635407983208247618109132135908084956430314319656976227189230708636659793237518753278513910921049326027787702927875517719677228479422079365491485321046797330910318629910566944221800537577146863777155075536029359542391803140428513470842128990486464756818233429551689008965272873411974915655746163923853375179396771673899274277027733290684048505221582006067995744685499659698247333875285948607683274201171931396005412720909241678232531344727171176969590016869368125654233454688797988823990033130486596303788499810713893762181348838122686875035874819892030988864488324213429919836546286268871121976772136552747718693168138293475667937778460374656120285385136639421291300532210164292114724707439492854281939816068083876766725417814973786424977115978767540882115071864196878045687019270424062751171617369923950781175755231324045055934135437642040937359288652669431180595411340345177121579288751697705936415965298013474690685028253367732851217854769707610179477272101227080057548291696123659550129869173994326536149138878305706489222652021303073927736825985263266108544580832583669308084302440032439133535818875958850660024355682404098639453516811949707695985500659216030713814964395636110598124968543583039774206133217825837123362451576462435018643161340906088123504813520909978926920907995163107677322129305203789375329117484056827727804968387439636943991481673368439397253609675251718593052525535766496179131610037790700158032065639973861001097661207023295102663093362353263361822649167472861651810704478766009449547116801289528593333172160079285442328834846303063238676280490114662556142717526300391657958038049736577106537790482074754424567047981911280909585813101968062434213514656373396169789599802265706555201039957298136150722171377350215897038752668746869260247077177311877445162193546437713899333118291151497403877755521973990072702021805899954903590477020176817704921223551850372874985350688172652549557372276194580484151904564967196936552349708583294660577417110176382917374651156592513085373347919995053368779149442692412452215541880369570814678323922093607959521574392837246979656837953373371931710417016636485838989746177080542146953940028706350267062269433090490554541116517291136023197935270707794272495195175848823059680065314745171658536746914832948103962197261141272095554401960868477589494637411653017878605819278789876546445597212935583295439501213127098239589230796823198895310410487931529750470536563972707916965075744106774034652170017740303502570687569030389884767980442701042031571603516521312952892027531329506826985087499698252798362837602343231880780708590339785524559619842052092942854629765540269970041885179926919348435415921745764730000478582545546963131428581595624456813554856921362859799016469097932518124803120459440022018223901475404187313280139368609702454438714824099151344771460360483118496865682749245573325322741580163549685014870369856053693603850236203377984533539049542446603769762959084843027679466309880264557719467249108677778270337030090525007627814202342698020099520956260092882766851234847968902056665616266378871970666680017444867310919365441427067812090874197735662401818945018146869579315585389519519684194838735481384657233627963386069701128757350737151259600132139458330656866098625187848811102887833732048417903002355676272838955119711890058559229452729397155733699511611943156327950015060244887440024859732676771010904809193233714277205964330730671603510183103201882397072344740069061227831315502843339833323796730693097835384786983223606561698660800771897745600110749883813510350183328379773977764019386433230353339835116437797941799472561581923679870221844111520192240925984108891841242062906128904620853367227669121356510398805534949830884943881356820958389607119075282724270411024446424908074828308334269345485019696976773422685229264186264317021593643460234380987242417317819759687839290688477350732657429471159300644679037881394063323852521732227399744447755744236947603927570104767777079462185802132016568191661552642068606711070500677266816010176695354813914096486066964573335364893337966691877853156956554720051109857100183938241959467739779872719517212419592903225026679055847998320360555830790847330126227563730234574835774986305948053050183439687733017024205553908138586135532029224260998668781952683607949059321280085640525624062532149688378539329565324452148395067604611362797154883022587994654591523905105821722964924291685368296958173436541696964444038990885754419700838439900857782538070353288525512483970617418811111470453191613386387080764911019002255603689471515241488929496989874681812187560948068213818746964139690042393106019217821871582751887619977194887551307526950297446083693710184131966748498794553495459391779848184844567448316938111940822888399176534774673011253582311631050764322036443547573819025376584571635130470649573507785811388123349066608549453032777531994051727277214759365770276910152074990632761679021439220938158581601015148286509248372805396607287228298603265202419078719307363096197409400946084930032299147072264704201921518777325031877946334400499548777073760291584485291579257067687202804957744123055912258918970721911860691380551320698153604025212165631320825147937516273119278493249333121279927279400970810747115689992687176198577955169845148300999149340717792123644391892828223280251536365049313295715261555191671586493056962720586244900241228111296350623388813427413172572818031604263064475258159492024293696708630565722969339578702113223986592197376633261072591662909834686732914279804337062949772879870875547725793297392908690468035185589046971408528361954408280035145395187649108421987490069131597178428021959331308980470522120629808612140047590739845641840765632333343599063076594594392266542905545244972898429315498679439815776705009129898762224851648121510733044623454978020379846737744137333316769518818279193029671021216428757631782502113202388137102264489596940067158661415483433722439511017523511796939691960981396055855274956993474178115072875611096401838251807090341078282515895890960347787055913573810273995498935311664899332678741787117526082640783263166844389986178843529641682694133860599056280865515616294081787164283779618347708550036185804103954091146035531438411591073575076655803217650927203845502957576129589868435677183963245718916197443560693643460852164829638154799384353014846362770468040623393665141518006360109826379908492917457957729444606007946740516627507299538431174925615424114874512322321827208031494708457057403266468105976789715806524320110353367167542432473151187996569620206062683703711543112893672586534512036498336544720661283860432417796295931274113571436465484145095274193285547925580251044634401182163431343146773700393138837240337390829571526183568856245911537114889697385389462257969369568793869326708697523926485236268216139030310240116992842221747183826681042956491115620378484118223963767275913588048632246187051903759102415816740519621109688064808928774325745817550614968296958634984148341804034027329482998047181817837404594815946544322444412302974083861666427737116520197345781110326376495887692630983128838343543219900765916976135687312096864642313163749695717508404707494526730128261965061654510883181147157730374770425912048096934169834639791030169607923251235261300517345690944499153059556033045599673004236514337028169068342571820156474936167720770910946111881571645980668449046444308853430427979101239314178924904240413093270116962720197644992382808584596374477381775473257041219502314223948474675084408405291114760339018616297624680624438015522734544165365298526268355895561558331893518284281121802576852806657611488276738445507857377246996468460053720693993224664348261795761895739685332506337037506321155388893559755997096349386715930808862725312171800599471620206107500537663567518799305312518720108764444613568744373743943271975326297289089844716589960368654863284452321879743675554432208285881713993711462446029591649169079417735609971775510858133379467155774609947471163182752838217953273784121417324898038504424069693654520199530500364794852355091793985976257787782966449178173129457726219733864471899907269723725665860604289231429689522008014743759933333204151981705058916912227667477604927598153664785249461245294230782196163162434370265307037967778792177920912466236251804765558895025324672589804947832909231473924036101082471888833621289279860882666955403256990701207107728651333371616532416857908899215669880496378119491690984258952183315775994577419046393373876819352927416682767473791398673497710866755922901488507711587447343977800385184054532252523328653089630207334481816827961953447893333770407459413013871304242514194321292855342845984636304813520371521673740363304474634707805586301367919818844492080420777450216523081467366172607866810162853197851319264712955997223304458218848467802828415223591884554201746101217775179175315548966989346164375186277396449108282823403243115745610302083914442432556566907542055895633216087243030051505271691488311161496253250941375132648796756111382228258306884186874472719693095454462848503544985703187379923532199778258978476751980169504680738703544729820909523939218058616475203282799553720427499961427231567622652691297085701211425030729259956713510670972328601066872608734241894183686304023068962713422166137805579861413661523314064645788273613875819856394129468818557364801930435795565092547137620897810219961931182278071851738166367071644520432987886812884426345579923906411943356140474779099155216882489315824574272402357634865875709570507383380212390235020606324088786088248921867157278257574177313195767696165083735289669513826141370858694375967155770191838203421537455117589820134617700887406614321749450154672707156158216023069735247128932960528666540576697471388326795066391979208082398236970823314412103073094992901182497114011862595673569354534973900122621743880094593448765998207774411664574205797494284894243072342574478433357302103192561179844373679198870981412428054322127842403762758055027769574449510901253554436992342980275561400831912822442545929508322343737213531651658046232329235082140597514498260447712095227669615774675714923164027186154802842847695525027638338806972123205356129218265494047181136792995886060669136019379384800082358387542889502743625154137698087887734883193899858789143995533409280867849369080321054489257084679193881522126826815322171034132850100087791724134718734115837083102118214034159917010018722946143532240036858040657268976590196158455523370567428157653664930991151784972387973109362832321409356049805891697551867346308491610652105289610950873152828438599440085782050781252051201936179442913803283302420700753880495535546232175342943268075788595298593078269365233415357791224697861251447246816392166303397257923237722379807855368089113486641465871985926278181829611219526706126695210928066382536649102136257599011872306882146025563285040068543239726855268723166564219098793600967407366091348752370146215433843112342941358017968283241191782872713093820266119047887453485243764179275650228864814375800803519176025884883827921788520273801623872113477298811331351394038126678587064714422076942443197518300428394912639780064801725825261032157320297002196785992509582951895233192519306004224842495241680844399707463018655571655905299947144236526078167048964246725956795294403009325953586109688611352113622195512814554329734240221238549201593673210950292598492425628375197948882555219383480844165602788628571146296628854689400897549137760291270497008193119855583273742762835246125032907741768177830798248359543012563346907450810235094988679041335531753895817057634547595354124499692646396247023075009774810264911991239398060769794670308259412716993360449704566629750615046463085720861684885347233465165620733872630085132840834075121451424081326942515448752924696545770526595027024396336542968980932833704936909981178774479848611934891316444423326088852443708804742360772323152976937857397069445860434617497035765927806727688366601144984195900158875275761248343189415090538562913598287916183525362750320520470370815309163433663642424481757256532759146310158739829100602038029046007148625876388655239740353853640145635234900264529102884467660676829820031532073773364165939385811164606683363454167858181025121580969378686789736009003714125575004654103986443850941239250072411604617082889882544883970813640633562234347883435940257796501145042977542228608232776203493435320590569502589819886914219708092989409004619614421827533718721524023262046089369262674037942180993667314413522381306636475650076460139193050464775518131817067867578942964681058461954647667244204254852651055167522754987713096260873902439605936470188926164156045621106977718477650198736749946173890136550388312794894028937741756218676887054277615135734283019796376311041853325273780199370627910267169679301662316919016289413804530205158006625983718374334084574950823459153374661637800684178075434296900775561687675198199297678227683767698280204915773557912973250946361323356006613518256628803675625685624097588751571104055532430679105222529823179053611884038525393828693573872210295798214787269602340697386489173846268751323863076226818822860148533597034558086290095485391266571749244963995996963096438510628879682084314103734423415438258758809541560861224863257466646583984003113954761596127378260621328181559126534911452562557903295118148212395987408286916804881281295852741746787024762812745671528247878354324118877416645091578556643562195571866008859681332143749753689383702126491835483642266191645387131389652029188516440468610659483274983893696766586148144631468477625115626757785542628033227846160431444234049591246498045468142609503492106827527571777794205105855662559583255825092335633285124529244550656284362614767288517911117539945009319381928313980770842930637421714218163078398563714691682115756550099012344736798897262401611832483491460385384098211041374130053571535935711979760759185266493509885256110403846636321319442425388005225749685843571843729687031131488195024782547975324506258914189020908267419798767094671317046431806739706134691723175474500439477676871159082597135536704365040230119724807164753186111133921257299693868957769670688845954923225984918417407307032083790549225397072958595398541998113250707382982116803841718363051950717683510700839178238664693200615921984140838609801927197299852482552983483969112731763684889867689046416142978116791555629423493686541157571992610888142486350792043187340007297687787632785535856320423575827050248244097249670031940061747594168835057541377002339893597114703083758131802355091785986763829570028974504567197498689285880707715579054148686681659907873947955488034782772821089560268969304872747787544756547801585368149883514116824165010947680154051851706595745689936901184742754656573850160512170613918639276534539120128222388050542200987479797991225871960223911427426413367043631963437276057105656923629399229444177148463805505824328406117343342845327506290873410248738462386752762374450714033183663542667987967130957364418611323936768297314270047795858425653425365072369604255580891631681628926061867903737285029305670262781491692848763945854074105930855452618517484937577932653273243377660848994964936740438412254905682699654927511315651794374400334139100633548045322816156401564777976571896950989803121608855050138184504474322393796364371613311758535502321579948001892633008092994202750452906178271963122233816346651995512358998621979305600018707719913045485395352454138586560502459480833603505685988822366943520367979192036793018248879017021779350733660260989073832881276167655489391158036336046448417221961406221941212209006949726549877463938188865755049913553006159172215503736356060409708666836500899688630194807999406445632206978797686045057483883332435683103233778398770219155997496491244820301386833362574262608894765708006681592246208498581512491782453091637586304956253655327506648693517811640961984850013691813542857800226824292383408994527436503542896263543651234200254913629719536535880317813658961982118100769590777765771254255390274466977745911268842310017842730879382626956014225008369680086022723589014201579806385538445110053377154844339954468553007146493997829845171830917010835539132869852927840671179401181825457925099648235437957582817272066062081666529151125646771993864578094403976940586816795769849669182730357538641200092919070206493333977674609907952030564197945074984383786235393925984514800485537342928387826488315825188244550814736831332250829103711382719915423567245046277990349184039396989848812881245120456003577507522545123193781449228841553725834599496174751088420326616662417644505161173021479355375196727135915692301024488994971947215004710531839809499965138397961268966238949688652833275835533387827297221320097051906958198046119411258883848206805887053284845496043299232251594193226983337329017529686838605173739961568719777625846248267754866692294819334035990354889522116307317428592006207730404203505749394140592258595490779910584119351805412537859867624487536143076789956277516616893090406775832576376457727432055516130744203988747761934964428662350491097996859282964361133792786283899499362551908392048421668030978720308865506969270922622033840872350153842554008415004356328442553218221603388277174725590503175820725252412062150023227372148735456326573523350484900197833021763157891005978992531895913848909248927048707377467168883688305327981405218521458753720949663755411263012751823345897491031993601277093816336839441358552907222963340906917023160268651693656922197447961431507563360367167726010447662632293916997001803082145886289052156071454389110402377378521983382457188545773637928496918600216952502277648558576701386628656361998328202031791012597721023764710535739326376604670202921488828086288038897089870023017487690512730848052162718731912406378627795786121963388894172870719796835271717070428077982696893611466214884872973349901226010308519794936801349654774984515448410883805966735162268596782826497851508641786534891230402560953079486384963236016226884051173084589008176961220671498804170211390000807150249726890175401204449952846053661880310093895832251471661917348058235771903497924636053963395668782669830705565425573787064247763618408222530098781855539699724677687935906220496431956963741405608535320406137543192190922323682052758704128028010374447074326747357702605514168300347035454186728589132095250321350143070695212433794612236530922274282407209812334223769679799931083166965707839716072740216934630883229940113118591032407377888976762064556551341220998463409015861946462319056275000280056283996347568025185525218753197538223903169703587334428924826384262052562861992718549169310611814082859321091552537921001671313298724471353678025522057692559813870196434680937897461370630140760943367210960270537014001743860143966022956057877416966426441462601040888271199244329974111895482232374507879812526733268369146337568105440983514165305832881262553602085946217412272283251020540559428325403215283776736412243313487540543382514476338831118558966666802454146597543060264848802108615753186090157950875163525289654677178720594471218085583384669015367059547492186969737593158539034093984934960067320915138217616376605269838555394289674143283545941516549439142832021218436606547723494656187721564219835927495842483112489146735079683195515686611789465327251972645000838365715461193164154580208362636227043448557631742142605457208466649599499855575906260902196410866997944628227395950602945841242582641464745169697318058631503296587600636805502724502659620547091049397349702556492613328519512681571681377792357890824907185511325133366400708677733325536666589968486168111470175244872727720275759923371237345659344025261932595683749659982857497373824043509420826655919107884981411706851086590999266591122981504898758579584912956105329249560938361553447517878877475643245556144649518495512303765016023061721853270976297357329752599763573279466573389251441149095591161787241172872226984728953204003380262938046727178683009089432675792500980609400379418296644912367522195363308859879483652310029404835344642142328978783565730065139508533762549736689863552562861270409985157399055494308077933278259876604136145664505814155939864282329110527692335331753283648801050527423642994437960114254212699903198240516105351899246580538736479632327051343727365742527861795400089889001125782463915200097223491302904738701163924913259231267056102829256489817838481975691543209307109786944618313222648472249036330020031475714223430100636979388735574322986800722227977994428939669752646739559521475083324810730818191420159034825801181052323941415254729117075158077287013952028388312921514864811399083874990678482749400769623002731279059016720800196356621278218806956272003689433591803513381699954949736025839836163339507441497365357522162848863214766437590666073378296661151666703751553641404257574314180876466522995974820559642354211100846222946151952605404006575275333541801959826282128174566617991273247633337380325200105054847149971193995446489617624767144006846763449951885806395144915774451042265485161183897516122436927456574198124224565891771055663083577292883035406768832925056731507502510451543738341801983342522288282393870234701731365724016802258775277215193511861486836495579170157468082581988619693445082491435172970123656862164054636536766865663814813573129664252586471725801057628681312301859207573210819612954153910980369195708730402924364213588325006087734839040186169535801191671339150531318392545776382270746841191111198890323760057064083196462710855155651752999861911485209868905912631458748783526049716090696336022538642495237562127099161878498826646446758435431687624796047526287437248103284094753445128016405582191293607141441248235255644599788336875941929672111271208391957549331197684209975172114840142390864722485342159332972515129272176473469972472519797230776396524811140336190139466736411535077744810958036813631053572779631515984591222321460363416266588636069343194216689065324076404463374467193873241533963985080208531161673203057476213204638423536427718605857287404064961994874818916489850237802139579940625827724274420852881151410935734465398589861319192121286509262253225089645407363261331992708677455674352800297819865556396899657245710340480726079107934718505357140650304024759947478175520352416056825679562843558339539970680721651814816544969702682302951714868753137169600392137238272963182317898509817200567839299262441552564443254814450302457666392737668132299557278854448750166323479244678369179635736452253087504941671057864323527011842016651649364756489272654799802732257763546519605817522308375398974396136650425183714547795528906765880557799518109848071477407803567438438374399189193711379396600598937551931922640465166709140711701205167734559435106495600888103974725561347051320489773162865281460032202753845853263536787264510951551921561128524267050746434197387504572739977690989517230435659637414320219927481456949466133032084919610153044462913226620233688545669710969278195927064039293740539035203557195603785923560263944125002213325398690282548244276966264239315596208901305130661166555346303286094368365548663253865441600542189280475107639862928128951053714301115157222483143938314357415792478869578623236951464589985603630581195146467450219210456504620697093129427316428043500274738852100245620181201852313188036283677505263561014937171009132656381974202316631461291007036485490030064229628476515410605537734956107478182829134364989355001581736497953732799936979554128318999203176657996524192516592544759117117315269633085022284394186124536340835410596871229194311793506940310815421956749313154382964986704887186860812976917215639953475412480602105751752895833664455536203330290235011678161307835089157029441813148209169158118863655300872416829918918997971364472266053364595746906137230374802242870424097362863890533188632773975796343613107246751068083570885788911140151516646284759994369614655870465543177763501589513648656261957979126247040607480671376116136560451726985194351322532879934705807026384744600636033789411445103268916554952142898036678398819196647082695723582315043241619507797236378738022958870136022114171960738703865221573492737951680242460147311359818765829541631694464809762851117333696715280269025831669359187496688231877678166883368290906161986996845596624667353859417609316923932715343616484672503333313784622977504068986905449271111653951501191011813029003993078652832065944652968058830948669541402112828094530917390176295941703490930037031706098650752833334765990342272975054628254265119643896924629076718188281514165324869429611787265491224774402204504829671410100742547158563231869350478770954402761753828828805706349955694738636685200383975665927847302070114974675817123618361894630272028629737852392008664086781160367977562126261016115692969066326231497223684519330406817548345918190809467439116639187721698095747582412094381202275795760958535873220599190859865622265106427741537203364086363990572597764219620307007175437260032765096561846119345934202180326876600144180717689861961602140646351177380659957366147321454203319152161026200937196625208132269703540853257417931560341802297453609120041023736135364332203020251991074267213916211187222544559701986051432542685055189168999936492747411170172828525890065870545271225977172374444769346244589720690866415088151721801764166490952398068627819798760873452253912938281237278116508111159565880521559258532720521666793206883101320735766012027162554513627762083352607482647421762474679523472116634359158488942474643543983125230310378855226219114445921262945897415464575516604657587915126097556823101043751110441059373056142581142740436298950262990613210438583036375944825183621404625519579607188344608541203671926341652990611434902850330175643202713582925678440741350098010942913086629004350474111807095430903736640594939599337337576165387099978393455723584231561761199380247084725743350308693295429176015121805165174652793570147236512760720280197008305575522588647849190582127019250776178251277689246106140259994220768531040472766864233645588929046663495392326767417204095200067180879461758475705508239701899357242104576384493189545674066719918006620684470480191215474667509821999128790712430418912025188701831253885098972952342903637646042898016749184493937289553307366904588723178914765863315016490578600467100709859724186297993200191490185676609654942232910773378411204349802718550588612975235412805824210749189465158563288300372051903743500270398478924887215320824898492419338415781783679646809595785365149500495382074897471771095615880039859187048878399454653489310915502678214295952046099207042489229098201757026999647857616183091677891243283516099591650412341819141011054333775686734773524178214807633934634542053910569098242716642935600478193874285464825404995829567620028964430038352439210100809377751368092175056594548122999365460340035722373612015205310243483960816849835635831875922268973245093603124471769888405269065316051409168209236095968770017282418260887074827930567684035935093381391822110451560230660849689825409033688611988351081946324964466823027891100140022631470609626354253630130292911857608510998529796908733441649936756429849903007459193022511922622489338422165284334195724355037526946789266845712047821290140080572524360215863641962193213385295594242902792141152404087712236496955271321367879914117391774213948160908734450459051790363240637375256095237505833237343617205399674772470028432171835728190728548996650265610919400988402815313042795898843901806590719490663714293642810723490646258982438144524417434415825990416596228924045348139029988106736846299517571942934777288764175225403767704836968380645980157858459351351012417426621147489719573009574325536595338257856304032058797637407918562403477426045174599258560832119514784358812696948698163128216833179749197236389096998977845008617410587946189785568809763075384786793520045536262290819643685879823658038072749178340287185940453386792885139802032762961012061113610352644522303054384750985228979407927256843541500746328627966274731149170601933803765499326236108571319709197716659416663845451760532109505994732606854254916803105232654249657399549377794367363754543064999219024925773442211711026364561347505173432004861898404023188614768132291579799106400466146408771218026404777014314093407364022029853355315917592100079246211383044326763212501977099137313815601286125773349520533291168153944947355768180901811344638719777140855181961511529884756506523499925361311507183214891563846960328733711894258776062541389564648659937828937039494619641576685145749833959051427844827601165110801560783488098798350538661028842031279399684636390639622444766796576513279971868075083875829254893843962441884000843026377610260023512792325368735010155472367575079258146649903709463501532228841733626654168705810076875464456202661862935760839857321524573663816100020958516835913054893723869894446642353548290876223833383598619607386806892298399721960811223604442052270095865050744445085346547913604290886988774829265017736870556585367506797501509518478738276220008409015480290179848238925345332459119742922310718800259697302520754544034805554210455803645307488167509767854019711805240293055840611314755900116559081554432597181921343625484490675480464780815240389093526862028305263627585589633854361837284583860871570583906595569190231651537587614724681822813646093673055123625576045593756923046496837711056717718798228634704948400096930562245959639315834570125267830195615658145096687163653440506332282542057710985608892335817430622857316804750469224569557642796873467881569323450796979181270311119310861029966182489675583542170004512937687517566193710958496165851463861808617346095209595497741281498203230278726150775174782515110534599126255452590716045331526244423925432224207107622462363728978387077925264500576957737014824501799792752937611312008854074740351602157264625392222740648235388193792742753873529520096162564606850504209550987315675794850444667176888105631198446370939866477817066953493242848021269679448809374969039714901740599964454008043482528034332587220940166602673860115694567019837381708526176171436995944574332256258342462117882778733851820732000648556272088291131930452444037924983289044395298697357342941762324016083854646866188061960258053214200119380771992256941251875421580677033024507703355719129191050704965438827202654278648928679721023679709458012869922502457812418825108751383120531349237929030475352899258581849342756735514633289996773131707517062370948092693830292124419403874477048350221139880039427061238622227722586801955852258562723002903086169426944068220300794146453492748341814148918779429326104541903473497153562917843661785035954359894660662991223699854443071844767681180642669359127559330003855340513417344238083655782260114300422742838341473850125477696931739208005918507541223656559580233390103243301429610833345185478848493211056946560482871814663938756428644683248599500856894847214870253765954947238486618451642110170450908080999875735595530224137698430841924470820393891370767103977686910392786079181958679998556606014765964467457386349472732790483669425796145174230768582871063718594500842082813251986988489204086793139438214218570529444883805731434767303219247302098578369588871635018377995523548657331697827160613174963041613019489672136362526648542984402715398890062433396377288423965593906691995318227645929799650992191044631360889618829949346851149328693649476108534097426727658884412643530467322604054150343723367934447510742136727892986162690742611816807163353587699373866581845539724520417815686203429371292815972430890512155718149223641074791288768802898791428922257829837231222013447941396680715844939331121061168020332338057110482956268230322169951436541088562418172966983552804437349204553608223018815214571794986092836613685476031248919289137322333205896234122508284762022790317039325932724970639992323645248547848947979982116726846060099429929142103625951087925037465584797557592440346955958819565673367716739675498118385114794184006482782033572378401587925036090058095254116336536810551084237211812804938438578487136247839080308028795498202294081486093283393359340616727991733387554013040809930198288212005217142996495420811968935721670986251537579163968569203908128004912031125749977001623404034021908965140773264379155786915675864420632276226634131088885089678018257197338353275746295568943837752282218914276844097111686637359870510066502299278750346062759398508290890910061485497341438807031158233335234458906512582426643135862005522368437919666143773340459130327449833756386341467117014677570254419312172383840408498723956567418278750905920812798147780703091265476312678339183790250707120813910616164710654949117183062796527718459309876406609434375575652914524525532263203972857915900528087920291921272087867230288291213225458911157023074379086723610321821507200484152050607398057015323352502026497492018146184953032811743403688039183066482024571527073480339612194140228442282595119050204523417574582926365738574655238890696657002631899528616626195587362678359067502093719985439619991155669254542797617277039756016830980594134292414749748453196685615559982423811234397955944573599166654197873332924834054879231310432700403158208745553128034106821699196304033082540435400082965353881253594153934381058065843352650210053309497840943230797875038454688326679684176981364460626217996451974259405115785582344845542084519287387278753055083271408344181341594905713818157300939788385229274341680060055915649207466689728111247077793859459108568316857193366580902106313683501241689427263162160359978575339820751041732925575787678102814651699076865396931228683887115412036061683683226085736246324033045866248061278609618843943243466713827007930071971594111349275058504391688729185356107900006322538793774260427106862959833838388771093681466456197087435707548266074288640883388895352767529321264325999273180501122069670705369185870406771689944537149593738723915454592398264891442428890810197147056589998224090187479419988589015672661351407493254139861343731085215839006768185594671643942355246938445451971311190046782777271314095338545489902179036336369337492753533681257389877590540369316982766955133720405780840487592899776765524732036762831813449961377060967117917211369120307196636599255632939665419497650025163237323187549615859067007297464396249197675229642628794831575012618240369286159866795551064919643937439586405155324929930135260670977534670349015340465523851166954226215639607381893047329690053103370337257486553433889949521304364567355003156091502727584158950909018493281640704161940145025421571164395276898636523213484938409319451565101399188127592668060104901762022061482760003675364364005379843168346548837484649997545668363685791453699769820132284308671020910581970164702352860884831754203994777544875160229890553603166536883498309116927506317001732105700667712225183201313813244010647133505261000867142697053337247713317831430602577162351403913775484356888207804986132722122885697490907488499945916312168519759905894841109317165710904980719109989356195687366456631462640343989877977764141690349893602306362712772488772977383264461147907696306712486986311226838018365342355936763626751990494233145519815999459686762273779812609527557956006745605353369650382809957521065878713895732847708577966357977699923130979769853618412278572467431467585322877892342175894400728139051400315596938117758162978791046023723827721810546107253584594766183394710989700602844130849137017953794111768787967371199228772230772356761684901592931581005877209204386515794435551551670612920854470503166002652897587960171250364144509213568631678762160940682704071683713019967233068202909185171386605506809802982759164303670918502020870577687688619976401262097429784767727046141822572078283920053533308257076594181718075901938555488755773729392801316019101661318167499384442054900156530517818267699662962879256587048539516088673318587792319215038795014322812675109316449440766899978319308106004953882225709149957032069537260382640436979325838026655255274144928392617294498689175930070178919030969800324549315404461181575923327812518506719765512065846386164283829751011598183353753350454970713400845618560082985073093117206888687042490087147909555119400693821816970364338065201395221901691815741224935455268509079046346153151466152043132667851641042132458611343801140241001865055251106200906527207966965356432611662249726773708589394383880375899942948968383987719523728760412694114349380839177726061333776372599696465042685417885239839286772512106010267874295032372270856255029974697462304074114311373920252656054320493036115777501353398848667600707407257292403593577735325578451212992576985332853589095232415271779062552614576753669062105898021265511266332785170720129307979609159929919711710044225946677474620585812708693555743368083472333226953228188725903843152597709476923942706733661940072668474502432912879670017989945506656888953660943194939143173329594762488122360588699266251179577481404661247394044725096408220303743534682701681724590783127821367416579924580758995344239192518699886206498765689643852003601851371200260662298359709816742917456243992512955232297373645657745225334050575651155058537575333931777742648152145619838231132227985927925285212370120992067946884266653415403532466292359607544980574081099498763110812220746317674572684135077147136821587935495846906507435282765779937728346610068017361122664461990568139038622113199537026228211540489841959372597224146786955746876168353586490153782753748053469204523513166781598273492572197789769776045990940836916995672430950538395686649333338804744272933315132931538572662746490668699408186541678133652305942098549517068659624819277277327556553760710554757415404433174672170450922032599509518359688727288545833349638765684619456043907642893057737924740182005672672385352052285299091059574730919923514041611536852603306378059766934051045030129862008525868006261448414752039431724926971887180123265222121990624543170230368952948289538335964337718514910627130345354557316827900073046886611769164874246994099120756046109059436781375455701447713378058534200168041915447945390121315234989864624398789160697997545565529774722556172866668265890433864695610503350829473084823356256549662055841404606233340086934057308537694368462756338084803977770074430775294796931812879656987149833600377747494841254160115983546863511945532004890019999331519120356982281667836223476481313131199339858434729797920987154822461746360293000174071809056239585665194543614312574899186007109245815833806427214624895587915595756955100925827893072959151403207721224608109204190769812137247515592900185799063410129462743369078633364952577365913047223656832069152681417494560285709446799615841667206079112806008361058837351791582254473931578049760217615833510236520387005529280332929427704277282424854121850890818977728467025277770827207804707275722160855258349422568052294231402082405608692880359594242431394981235457892463777065486140311576119991395224642345567983258261540950861095182329291059301235790134740789673359587336470597891351650360218189348460587105790982139786462720531882294810601509975735502096793831816752197132752214219584586547268530551868538128433836501559584727164567024879401044040917337029474554997440500609587868122122438691806919902727602753809850012477422470985074599413274307184527948108538039093422577924609644199069052792974098972585638231399551377567436218351892308892919598104594420417822456830277216097803663995891896487971128227535863285551989027176535152043296464553492147346278043935650953834593131445973664146260224479771103236153281999877369006083730358982917462053662305050937471125398817857228370543952764149757532767275773572637804246158871082504460944024835326923865368554852059519323392824906338818288654496359010895972075092909403413769554406208136965705579779329410263995325017386513811348712122129720068583156554010739594406709460663903576050456024453630006492645060130571473034597575442802520505174458990361211741804005200671210777286100364219315190879105840210316458131910790497729721056599695693114307581534618576870399811234669291306763400881881171639743085436125854281434728109181233997157518012891644671905338637487663709493149345093828087347110083802293053633549606067903095247245073005231565925002281407592551237050318444665058692728911235065854342064475732224232682918489633758855191738450908316144636546190125649550365967982647615142591730786364876754244391032810192016786047444536845221846942616426569440967809748145226827459529580887093939849571880824226867054849911855018031724353305139851047246119272611499690849266623781729527224148296733850121570798404078150731086723394390122982124558404816903414702437121348733557379408416259973455409813693171274021967697529588528901399555425747415758022466049274485333676450303760999901625245340836605512771668432095071749274048880712832529481887828500817871289474272643566764848164371454836557115585747906764725671169482011641398644199484869619751775184753811358576320854553050304817310129608165115872453693945217754182642381440958803147350044929912611670210799638023805589769213690372450569946229714356188444027924643482611330071012473571944411826935295686276930437071697653107889183292193166880061055835345827023255553502754200104269707953249498146975717070974726606901352389704088299164616123950723825280369511815300111832315069772767983621326599042762545919911371459278479299983826641904306128872083093464993030386262387790388948859042603101260896307437833597406802275074289021796541415256415312635783662509079810846695754082193912066387196764581917419661737129782123098578988944601415756754492202818347225123810652726301538663013623048529143878637011079084081499098674046861517892183851117676189969563840457668036088846602303324124883655919347568167725289156919478832583898627410891699404021897819866166591201285145426015885546425885058302068371704955803202997992277027412362770442193694597489436713915476992549109887593374810051990356721551280308020280458609866343955989470927133807592927898999558371172786852939535757757452682439659971401313279489364999537445385922136910977604884440321712463789324240487475476797231534019086674920100777022298743178311934372240862838266248434266058773895841673975218214192756797541051137813354416120379125738030242319592617588103984504302544273361868411686510551251701155078688269121579583117022071029893383864278944070530682822577795813108888279433793123511931312465689997224120012036878114234010525172134661905053755604248592227196145325915530431731571578182621243706169413754981114419149246340063844022815606653110716298828219404574709093570241351226635632143759315613552775272190452105395772927579519912893347259438542318867438105348466559071559845260236514594751557144338543960007163667763191196318577513034945004955309003948002546971594706703682094289511932333088242479908535274625941209276676768243346612296170707503420220949463141703545938228769927728069207590129477281449465005629819798012356492322255639194924474217195850728442918739345312083899124099295292480928718471558987499638695348347634004181892369521849039666499397790342292107196215842396118719148351581506537033648047251436058259443221190689146773988245183725399920889748949095903093466724849543327924016734146528026253315827901508111001345134576382764703510520844598127926824942634235757920544867660232609229708128525204997324889710254325899593980693410755884769277772284200544169331782992805080337008380279306234658126469107235593468779500991849689108723067730670319569214761453656189959178370434023606546360146154170590181740039627902259570817187119675059001609804583799819588571351255868606495113845998761828322741733430722558815761909076005328598000067938329928752413610817064475599534523546776722264840217193829989914823071920070959048386731117797857349468699046608079718685726991527850015699810402248613687815756981061519570800165375491086901085811586930785607386304098316592139949727429600035496319684173492198574251811840463863130763435400518852259498523462205570627917476807322529282094374524064943892134281831350902580415817257052069516496963758877243895902078020142778854057909997525214070946768703933574027330150590715748460365382658443456070358603558068633221165511798691545751977081454782380708853323869404229262914581169590576724211621463633754220769509731391105774146584738679679691092883998342888462818678096119198597154583386137975191645990884846557244223458984968873352822329581897721072408201672882563298108508648754854249458971953484285915281031984352000597601396753588906542643905268310151437012771621426760788185454626475754559621969968029750670708798685901774908437739793628344931273753830055836802518907744919950619029275877679896572322553562933831278824455144289110387570801473478846918601094765734305563428374755181938238313076183560223043403709448757929141672490680093072943152965270279328707475259846956839450094876689422742715648067359085050737344706593954837756286688086169294703022335296866565710505176669582469417036822608637725637732820710093867946359710954384475903284434128453146989112168027810451140315576660628491219444539889478205768802269317464542874427760552311822603176974368856700721267685205315189852280290156000789387466788385478381843544038021471177028197202680509335733519865409242742189792356618951865372699284098002793003333289143980011293495706652971174614601507350628208962793589932321378271089501131526960898949452437185874570716136365617405174181249824984077294164952539204822917942459936904988617552907666320137189056163490754409780810367892688749656906916427062372828543056572675261575768323771042649188063333863770926125688847769978993032533042252572411206613084896465564520685049151620394444029708877877825886737756316080489127576023200868475391842565440734005315654808301424702785445190294665797178342605856495640321372653646256529888201511666108427541608778275929851317648648624306598887187933091039505379741013966910631881370720260430456364425318494677028216506171765792241672148850915087324319751946364882376836167273429745534911944013806208559371741715914649020212669833220133391694048818179792403068297776762424360324771082860148023221536154085560401491296814278447831607773723378185801323304662828583460965314667588563147423396100982562535712778194471946003609802631259978075331147557034125586527559089908558356612977996718810120583599378071963920701129192765686907668272545432619960893534209301571509908006040181236831498352786917600253796125628732665368974793764302493222274491573388639486349094074376737124401605229276563694346571292138570993127871942659580368561586827184042562069345124954271427282229798300816159343660520470717821820258654093732155838086094963959517455050367321153205798818291630647338203737772977676311155743148770380090205423275138125735544138038410586691642272955359498735819049316369072673775157398466726004379491718756160280415193139566661607383036587684487024576012123456315897459519460181123874867346887566788036423515356358183325059132068501955662642415509647724539950866586752359226255804806247350079909870549630683260593124371794581308381801702971946130052725792309847610179828860779799083411049333194762730959762353182538434434106300590862393873173940183677960961544246038726817485811072762730786756176500792945939161892014889737189024004436516532097407864537341696712588270372338740916568569402155194182082402256649012404718696478496609755575109474732275247947393444335342815297642230180192308802611207459982059394037105545445695286763613796609482940204167955791714234626869957090452284292485334252132718697106630037130827123368294084032252852793792939165112153849713482932188254289535364968758090550818923038336310903362393825569112979057173995423845784405855891690920480116810689104618762257480450947920530706966055944902759484475613703451535243767631556956053605764900972243008859706245428634273322574376670858523702329996809238782907731646450005735293582502289260346289549902684808703070777904225284625435096536646644527286145388497525485578342636661407196947714867392735587092731783524003322030909745466685785647665338403395230573887354648041349464813618292586035029408974397713984625330248421516069813905976867862995848696227326831444364341266420128205047300985818206868253426214252286541290680967426486649890400148496164276265380234907186876175063037634163550758104806816271509221248291954902378461116041509806142990409275456460277940986699095334910987930586396090381838868797186584462679321259648390941091808141620629788676425976662982319832221597618167389809622718032619448094785805270608888030439520759704810487027239614855852516544901978466291717990532568778526233217448362069308452720528742166320985260138371001997716125150972618093554932057730198218571411873275329471125926931924968435626190807294615764777985303420298674696843125742802108163555456752949361293484579971346882274038303323796547533233072093067017875701384680557197245949533512099829061360077157548519262113162531373635074587116058808848902952569505276910980192927806629887957707450009317120504252111194959415218405271105696565379882855214186379319331408359109482348167424534102398634251891819624986215683515724251516664997962455716086606457877337811810489359807961174119086924593736649217655961142513031705945901814706656430837707122094469028967032210452317870085530026163348556036454132899420402063149600626141295759110454231446639144944703143781220218583323278494698466377433876618553697647384589967832146458477319018561330552892821046507220466610395211141617005348550246034540386663446157863234856443537565887142878166103046119853596486154567270971589818862910433624800041665844004098259645181344101341872690940185399930892241336930797966567278189944272705916516463297965422375859558721974045098581983438639661026649978257160760368683180452415748687832109456898150853880013850327961353393750677815196773230183802293120380067259880354589409912946258889088215916948133749218083206426246316167277836792819391019309337401746700768465021920844632584117192032863591060666148643780703987091858633706198295457405629286385525632454445775992647973443012144154629335991783886658103597620807642287007341416433225738418717383976713972089803412633019230587871441998469320416090714785954716433446995632667447802166714566102945018198339844234943019467774876981566771551317200857505816294901047730706334333603121623434052167072208691471171218367588953302766515394924607666694809995292799316533500784055347651038806352177354663542421379124196145454547313714425193853583726759412154894269164097372353301261344868522034220113685839442846079965850802921550684941706503850751839868547392591468368830016754285291646800276218896017610173031016038348985030190573579523403549315718231364960521852439020111934853406206854973431966053772183060504762883042819137939072210437981387638790295314609952790348600281894937283247507391654708158060271515166205478650928404761536271067784707180775704964969698929604440264908374426900197409322882443239574316186421880681419486908045254840298524018527774159337952792379363572205122020864986844055018746921683614702610254260484979184646545775470521396055107951323651360145448058135330574204574322122883864385807521308381027777870432782320359340332364443482654911831990551743791844534821505274277156453771472809904637496103626855672301182701226771395493614179895223333410255916081218401861728347499791192851657848360252110131711030501026438882292652623334428562205659287480354390416983750151218472596428148890646780164391926619795864733606441245477648752041145197193979539313305441703358999907397050547006189477807843737287748014531292941124967220972657029577055980368484401625344033014939137853282132962711479223342188380183097728526771626439030693833957092339658233679979963586662454601919744877244270588685462361033897626324444302132394106092181502606141995821296088682200850697187397447424388133099410291232460788523459500420817054249540747374724680401760112764356261359621380679629660636706323636403897845630434991451779427953904545133462377188955567804262549685364946710198782336890128466844765270704442239373486419311826883119238928266733417795406815042997600085900864095266359888884050163802875975162136948672901415711628526165521910504409207819255625145730985781391563752107316846377452412970426454973364826374608731992140936208276688993522878289466692381273789933670313608940136544540203274057360257975548462920519592792519170417429555655874217303995997627571635903094166160407138709470959437388559661759137300022742555582412663743693006297608410162489666797960807983193409300521602200199719539598620293136356259738480026077460415968326286704124422231317556059518155450176061995000809429618071558683054036959920047719502370982667014600727727337756511151369097370028474392084721825016923654191254593404529270981703234436149044538158360774244590815633087112516742382554870007053934125378336972607568089422014812677135873218656196636170682246600871642079847571374078128383578542713935846331860079314956607918855270845405585397827991307219783717675159409918670936641315024070439972754664983511188804581443299121071748958272466058897408451778499826973955717973097420723260124828653343572328116815778573666672356563553840977035616093305118710053429391050535560624720154858586126866236719430536736279218191465864886993306201408145946301051508942425483162147189137563485806519922951316094900917627903117884265345923265033581677108351436205089670671055797089691081024528572708433065975239939839707998995186970154712646511067577006529431222635240845647936672418796322079031509628838619564193369585318289313316322649215566643265563251323708052076635335622568534317301974528437520533314138365594580118542889753598878901558886205158311630003026745752861236674264585292367721815211209697375226460379988311795342028401845454968625207576253255984841641450324682437233545673500062709816795805629234471695778945008671958136695433024089356388654555997801112922403011858219805811620526289316756714830907406206618566940887717641289201698650505873439085761563878396065823662542743746812019126420158975011349665461770801703805843182870642818731558089184037342034043641445370043479796412832675707104123025603287567594909276168041321776204680950002555117601715861219702531755726783208935956386541068892700516474007591537154124240254031462346092509287344634977362011128963722514217909841002461400693405434054120446486625931889405393245823254036111399887741083052607436998367704494302998536229209245850507002195264917387750308047707406034871913478634469286398946380990230141288100792493682506395081355521272808887577434861926978443966003555941568048781227627412200268976404803243548320081594109352112372784547119194864345454247687263116383831576338165805675785507375127687739337298354699774716537666800354110328823964315673690780866399835158564795004533650984864553334293059011279572578528954824810204100795144722403531066931409787644874707104157923749101573983648825622565828466034946959073743176588513864565676848137733112231800786032490225284691904438525724467275528943707474615723624894288079908506249628330733600950373859968155609531583010955225913863289554106541962769040683278399164404907037702648257143471774106319469027105933579113100938259529627668448720410757181816118676117658717188321740805563082838837138854650238554088188534316227536819850955796932114100290472317561954932395435371126070339748851735609462787021556094434522093244728907602762280652479792167755187062563151016881153814887354865535017034646206581906413413230317378368637938354468581118716119770291099576377225147148876280554334623535714860653108741751339205413702446604529955664727232022866192174822459361089016182076948806509162483004010337352576825519708960886348478308025347012293843471673002696604335926381707484928650164801791266955479007527798058153254250141909393719124505137377290745644671985392590487678067059956486474995313416562623190895530219120194137350528939779796616391720462652354401515999151424050757138625004898595316907975915586548260534926499133036236148432060696797595847737806198804527280600308733315033829794926336488796409668909703116280349688253701608045623320437022077256242296047001794539195943566004162921781464271241448387671954859760680629679820424999902204504212113980323090876424355628266385401873576319254362500737303128668549276775339356597785659424104283907375270474437764977785676571835142345232192509586855731099081867803262942559856933066734530603899553166060921039389987239578139147044693936291970370769876405284515321800702777680344672837457710942005812013518318409821801595136998634822662523952289696248376371342756823817576187482105345876909903226907865147260695224370323091283059571472481461575076048484690566805348026625454409669341888100736219532510762947720427815353996963490057171062642616438611481598301039806659290542147047814686304936838137421660021166186022565877572053729419681489681630389270474996408287961329452731335796078647746099391970550996049126523548874084522875130095425661059244133383277206460140983450620651494872649034311728404954526908171025391682654481701640996999832853786001617054911495373848338444956733066932864840885725956773613429102098052528895597269670997619092188746150915584674993145149774416958488720980420009748134086968016871524534170272875087430554441450321724258993331942066750953304630091814448667225985252165002070182366004700176930013492258586500494425115602126595349866597591096406223153875533826129658034514565764279680642688395118909769740272488527087206336996753439671633848831752158658856510816877557345239654125741290075051013307674624601337560926250388274938694375225226698479136091295288214338167084657575907302519093159177376455763494788277196948231919901344706501901040586578618621287161772519798205599169006964733861275912711426067409951279813076892543119618069449225754130641200927672574096255489848704656659752468109816024974098550048175759796538541918475734984754021967498261987484094053252551898931007584682840211626058435534916147790022451786472230054700466621593640142025796238076872593450562213249286778903721975617226098766576870920980195678018037095435554677665385824119938947887603340887572987410592308090702352476154688741779561972719707227233412992361694816434456462205387002887951231326605757834543959385529076741536413026015360398307984354190047680872094969095262348069759598718633469449317392028458405309459797690701165078819670758126140689912452433305164024595333774677850923963954228044324672688686679920223623982301913982231447296225650440070453451039027595840126264942866135155094082343188459181905284582017860582324694561287755556819853767762176227763282994878227654740043356203057001454837097043228357054373546286118025872746277620568175335145090293546436365788701190510359390704557775299288507855690871035598228307408127743290892488902199443441451050357341563741213656895439569014549855041965943033021493362845403803592102899462955281647662280585848658335971886634889916250105582271980414620149376438208217827028498081156917897186735155485311936878882200150529286363351447634856583566478671559316290388594449608122392795402803070695307967239284757913747332092566802035020822279328635862869898540968762398803401399872332916459490158389557661954136708641257682967781515397457965950119192181846514336635531877370771590116897254937698064728683974419965265141304754835063293704377625947808252237082216783860798308769832130257824019472684548953834295171122996013185474271616138288231412357365288013646775588096715180374031558563537561980203375657178366820057747087531817810027282038823270315923118674765990044521101354296849683478553640141476987922144011125407179033141788719735908951321199490044297650434574080062062131459739155641977699039466119732996606495687828417373828474770930963508335056398273759378775806653776420180252452141873209545918054620274565743974193330281000827679462332873516649097804583861125698656350889018915886102893256910565378736842501531761307539197926019141780815882888741457496668695054915749765174439078559525173795129519746613891797635051837274409554179079173674684958897879465339607651374103861530625410570406540118933731679728655948962852846458700700851132903145117302065155376548931182638625088706765539635495456959758164465350059692526968064349233376707597050586437832479320630524710283010966724579183299029631136058553869876895151720025160764699101522025117733309255175621536203074778210068912226407176456931559218249647309547808628048893351602966409348356070405855192643328440351896000325626840281738215129135878560512203001393194520646861002435501187745132790246052989599247850112108375068436149358017608540124082497957960105534086246119677504453853154872812675379751643762148852005215940424547792481106681936655094880969626578427604857037746906144478499044670495932072687918908199437618500605589661199914659621801376232060389454720912158996745819134986797097978701971767497691456732321818934140171286766866326274179430195870903443478955260316769444884893565370004861749918775125344551768793755610827008172241816634993955208513487866469724125275513175779889258709959094643906879319382087284114213537759849506699065348830164535717235907829317192701850179779828523655050679036724263059600237923435857431116485554526716399865859730338079202125822032200462256776292268529831750861497794784070250365281764278472535643061024746784334036248636334991124095257996876489444860748575179585174404292798054871840826752826964931583856346701779721672512505669400385720438534206826775763157742538336626940603019635900754555081483256457915009735999181015873660131866278105888042773661805210806749095885696895525307394797504536660912379161475724800588258079932915557817988565097181576281661115675556290901316591752315000447120566411146427521350882032254358780027948753716718018613852441468935254113567227590854117990627364479639380943754221714571732606138755629073406109584001526774453242401574008632002794094522027489455541092946518802950454843098530174196391637822769410893353419090863901384491704167232567167735810682600316394000760652094539136383148163847630565998581759156059230890689656403215730582476659156990581153700839834436683383624848340292983781569855858523716425487485465241267459721949396702723050293242875459896233374952901065282838295468871608918794735125634649618563494134820309977875057204668931997087303859637335685604960917739538299430423659453078134619744478510692898713505275601661807538334440789745467888750313078396291274888100209041238220062371681083775333133391500057947065813930559913546475561804050889009626684035785887866482839978544522630387877858976909370289669857501636721276930615857231992255438356165669688336047265978234813083096716739497713334776537182342361029422170329963901402889354834825786935333971888620965343110457901516828598136812360313610041590498755640818929191673175040871902641797267260420006709618891539903194350050170588513103008317129351815644792191577436366349010512400436302285406909511383404205649225894344378498104179979763939152628475158847242562688673917730530088435674866049411123122944703148138735773622220435215579198678538948469888070381476097362099648712467152589050014342950593867547491635902644919934197864513107009781796754997607137109891074047325239721733739254037984238941046217136551936420989912855175160668394573611308003211329146576934960549516686345476818808300812772205683206715784758575431593790863171872312802915185183303249722239612298980111394406659194048503792284226826136311332909986090910649698317553647570562929367970374164815543980942099322046635733536223906637425457260831149191874032709444694566377450586558978192869454923224979722757661318065555241750317263607087460106185688293561464946350943171661212085338195945168165934789802628692228995331634919075060016086978745127590942844607163986317334529314002293609839931773572482565496082950116220829641659595856959290738661110672400691769300481693153113629841306289100321062643366628045498029337640895383843517629804356579113215249810301899915892809546811112798199008628725617272283997567879710850130324795695139083191184424749330676969695787222163482628016909007949515771717891049815463869554855756171673430650284133019956281648442722377243848788332739890766653612551782951929243305635122860663104381032654187996797555105351639602429344280951332502803942085755388981964381411357639027678844831799746160136011734836688244752171490378606121408376140878627374298261420336253184045709244077783851309435970243097077222257422057090622832262050922471191854561511442900065016429547117370287420783807257780155746848315539223113549602033088964719634143647539843832392122176964619520525268502617849012782329405537269692157882228715450583249987050671598714954989665653751869649774985856992750900737597667287186677878593388093756276765905658577860326402771683899528144300353983768443220882067169802611307367900968816550024268255049621123185648528518455208296534201243455921080535244079505830963169026318531733476967522357430194912628375517761546178693728071753033902624375330520617644958616560740383905010249037915356957728780971422467132661781904720170239493536675722246108480029392718231782750392262878962110628358429382218624384331770454894689016556964459689620718090605466770006247949585634516599387169250573548370741213271918297991450501176016833171410783543454536045202892361018592392896307718666997718933269302695027877312208307935368643635667514934909579152842080822325548661211441573569700983993259034450401158449745705097726981845068041045974399888651535272913021562486211467176945438127561438224532688748858476166760829993032646218454978664276909202938264257943540905851402379015853161880607165253666004318464952557284475445844979259496329323898084429923897330484324946514919696169430996022294657108817298893485105476301801399330563779721717134203089697897604020811850734043080719923248645109921907009607980619515177753350800268423712487621761583736654671832001158614068846817717682373917540981419611837092947705920484587048257917978072347249055059993785666111449440225822226406788247291117725180193059576197417079797983634764458187601254654061449331541566716507176892186110157434238247012551531236905243332006037546918187337271327511079229628385320222274063763552488330904128860682084839031165468326357741922523952408087070137919748596853467800865790721506319824907919657819143316592548180440539113073761999954782312369528860705270100297137959975895645561160589213385005930057794776187550633412209053331967098800823612646932458814361958675641235015327205719295619072305556142710697346576842044574642905479547681796616448859629760166395035826111072431902700205027222251435102199554560927138671239226519515633786890928375404972464731683967894765668669802546400538140464303614869443077844035357452218011146842323529286414922352024300704634228237887019174349839074414996001045495196648745556836623269448780266042200601347747238181973135774615759134442281192561486943113948848281342679100050404705243475131152105847902251070625988107111826677742029213232805019227175775252420914900051572720433971990474047723758936940557000311556140977319396138637271368999186041265290185271219254894955369505298970482772006290836008337677691646645832647247815498316101999773570706364049096528967572014628395812179312266911179605520906019891340433692027419326325346939404829648433570120723563577923490452791017215395471716433858531164328631357036178344322215830209760647039679672774007931862491439616654581086204647821409466356693346932399636795983828893791398854791375176096042701027745593882096327983825489117928405759736537175052351863656812217180340314228427694203566391334046654152878777354751079109746599922231453753494503476198732256644525070710007080864498188123667068262754076972360305654194231526119179875045464959678464495702540748177662427132695889931456446023311091849282263270049180108569830687065193407306468793771450998397903204819552352153810393931472775694016615158068196063122966895316869510622977076638579120955028413571084382336847503035247194145378388976912822043377844482609314461697826081608512530770636604836674866235696726565890903535430249395676910985993223225392132719505586891726805217000521908891754786502839048238776702838160105576485177029585913547332496790567032353688640415156997811792117742575166055055486603174283602263243187750821144492906927372256842179823823661294018481841079467011403681099411285067603292843420331321645480328437791471913646158657106785643593674695729044195455219750141657486116809721103730353916732059206021977818953067628539206791469856053415336686812010509141611836118735569982228500844376203502061740479074955656441841172429638800287937316215594496533726959452005830572118004269583908115190541183831828450486445245112287969406198443018579237316108573902661014370756259073881579668797993610975312143552028793428384609316350072123796222666873183132049122239634674380876238760114387271932798965311602594337823005539115999827726441509880335684811561782462126649018856364750492666760059340376843272813952187524559208887230699042936359500767761824730064055755926196688175831412257646781333561532116281811539001104563548196390156250925575536190422557018483473390855216740081554690500788715309068080524732247167701771655904401504987210357552486244520202517561412913435746728710097628779298036217830282839825414332251262436892744186284225122167681193595147978950127610874477998154015874474989902851595416601369165731257904330092657461495744473838371559186716275479124508605389621350787628929364102755583802901564010733322500410095009452015046042351878291221304496273553455367111224024838741548752079995229924271524503281748108516363490048337152801111616472760621433344168283914341092537371056837738863641487782832455634637660136258971564644513721055197143977878301591316920161717636505807983334686047302858875294900116727391802178292632584587166792844720666673611711565750563148559716751151899791652024671738473892266139566512153570184894141546496874371902028873190027457048410471586501910746782398404761642800256202514400325371083375058209600563398745518720492420491534081129166781119350462277269616986846465970514703045088063149624334371337825267861304512569111845207719448881283445614860054403388269390339597898101506075710235547262431277085726786747261182187399953353388510139565073235627272938051330828501782221986138744673891076595960906490698111288815543455705031531602323171791446098858993467322235813504208504613253396384964330165950080026230471813800352551379285211737488170637594995687530734423051060916393035893536213435432584318486526059625185491785819427111097211587126028284848054223280296275119209325792262806030581523250434708257618121957564261839329781810284987556816400154518080491174310350058045228470757832215868958749752552407536793815890653349384666196545374884364925546003714382755931382035117396172333802918629266006425877862990067293923900625431629914236620858548941418762506755599639517287906841262433428145745700846763267585530627000263315588771599638189545794087461940465056298119814373897907398322978867077096803800315141284940298848325499178406440539993770811101790428467866573007633724645905016868785998074781706677498964158501421110079701660538979497913345017176973098718160414663772110933407564367164918739973883069871501048975311636867914435513190071885077267632344565980465812591458746306897955957655729973357474893800379863845782401282924175530175890233448909760254934614674105873941134640089261045660584877336723137924103114293083476315822740313927309871525442853517891450015050257465559193978967401376574297692573429676125384445231589563721403274367051434997273994794152466465858234624951490014023049857474600005480177489755604279231790949463326084534276322655035849427208093090258909149440975547836960161507010840465627598370850458126826420094470701866156269153079838169375060166779833146876486769142457803513549634019992502986163162096861633633475353637905712141591890074599774835773914240182713570819331660826714611612181557802196796052896440442435944433153927876438851863824299716556144676882574898515799945538977108295696517276590465075480366181746870980759187349505970548773352830410072595790409194152235507263963795994701771210509343167817125082896727120746486384664846848913958284976139720142660795676297684116281469215588077582572462804433870083067201909876524093146578794765603421845790764741483877857010286574279905526858501799567491374165322435352934384735005446811729299481720368175677587275949378878869345009533162974043312239008971263192526409136140381453263650849620588438724013851857756700292796699030663441873697656620739601563221924666863309694726359475795449965956371239125199069913180274984969067848775743277970525226088316486402316560102919859457137053866157843428180479765459335252294292419525631158447292132500956261985986636036930063253821613451321443805414712667304619994750867947978521942652521278698525012300715761015358613178480106874872153360818497196975343445677615922988536863767057569489565429757740059193967179601127511200783166063287152571445020128908389535059345235684301545365854635383985678538638302042892576507297998339668283484882525328300608278616016536173657818347382954612187555871145972576658092385605920006458146193206809423646155136111682121268195144797540840546306168400512012686768639639083413299526574494986171190569842868699082518562237735352670790064909231341468503195128821326836260750492266274505309067041135652591493111680672886232996226458378172339790678399616111379213892754792974053870140960957062926420683178690703796036445154453730946536053063224091160375102484453405794469189100053306887065843152267917286128448089311152239305975326390078448647102074229560142255226614720877219129266136296564313593143176505201214249744932501200060220274981676708859883176713317634077237385246702840434570928092055406332769653884155609553866411750072973333270390365501811121825375310124864391150094379894068546330411730436375662970118612280056160572083945544079806727855368713047518874042187823836694436243242557964259171581821237675260026071987460894405386519724889804895565435095143648532000078808918378842532321980359617934443241619641354450797860690331100696359834785333035441498614897562405793804579245327561389557390055153895580231312398536855648244306414597180465498725756957349589715043218459807046657915970552551675191161329774490642135636459718174521075369058262190519236314468905625099851883018868618832526715903530174502080202469030808064686292980113100020620578108764385324925111371177479070347786858438834909159622208620476955436399007459305209910646062981772306757663171023073161238261605528207002410872237537596365037505172066194713515460439941112346803004599720811333026324309433970808755214549598420935311925185631615539931317293388091307618989679329358607077427327682173475789643075102998254723541353970924704983315756812975119407957923513889712536591709965150506492288611195832086605629240670311337992334823169202908779989284746949309462422619340021076680257131164806974623779895402752479484082795529259498491965834386988842807387120033891956092649705324694382176176740160062724248520309781094060262013352257346658656807585564688917651382125622510878991966094433917966169615578100840129803214394784010214265938852536714882975024996333740036201847606559927786927029680602950422366205690126205464522870067452807342597551862133561558634531763288974202704998723992008220550154584458253702984460258974947591400600104626188664013891984132243358268411288557749580536603881491067482212709936133907199617452201719477653913712224951228087086607804357245832367083458279114515066944727445420906394356734327375963578172257517947020484270298713125383451330556888754277777732818288839089189996469312112397051578388626633903565459430637990885918719871127220230309507313200088094300085241627017185987233975539926398709957131683100046491392396255859921831461826392930997645697463443891071351978606517057025782744100306249347500302087862563480240839250226367541266009527642004409961524610306742166730240242036469001218819447636345011826314883728763702385846751955432314999077792466820011822963569937528900227453595644959041988469509533231362330889286330917746311419957920683753099000815636252776143609319727528577793099525147888937541131319090475732522891037963969302874863018218368684142099493426301843090401325526301456904269194529100780495432313082905745897335815359995787004880315546204408224722658185078518848378422346624726919951352554948492842950892787312028387699011672189983863435516191362946692482921595864969694686840424306326164327788338668078704171846546686194134209851239678241507979690339157324293929799622955900686445757920367421632732232873719077385764378562050985455623521754940970859248650741948316995659413410061787940265922679917521137614209235267039456141534107550089590154765572925536963930981793780400488275836034183817493343514678026429991309565487517145750391882966538090897111915847582211834435860090068002158340594849169252111642597473079610781736839484814630103008906752402136359564036466710175080272832136632867325967323027286008176000693748436991198042286768239646871815217580752880456844761335626186464089042793862995268580096615747114308789571408482800024694730237584118480247227477847054357623828169741527438808844790526087473076085147821166152661904997005022991884061514265052909146346115480596310019058270018948951653261222572619681123021452635684765356245582253924947456191828488294283108742109013004267457759249201041753287076193125577610745639508092104871838161114130000052781921935696952297723749637160761603097215871329264188007419904449364710346362454128039924531792463515286275187512413656880005896293627323214153993155711458197009465200889566087420119937394639657898775957153528725041008194934010103636927544775896108259748651473471897427503529753335257114001765178873580131883792848732768405439034477718239255271128330679294584506002816927964588502188260739247757932464567546194725606388898607393136064597035597086564758785175906242428771598475565819666230360226087206983700244888480116996286712027556565179577794652540993866211993942420258061265430995430987374201925794365307195190904783597630966607643055098678949463308748531552580817386318575726573817827936740553984779651261993792585199854539360519967735394085976295648277396462473949698825411996017826265166473516105922739635767958939206722557187885474226042477384813849009744071266434284077673059266825674732558599613334783084582727784883043372216039904237600655194453637791789150568071498393460835148895033589342966938513252359981867482692564057867087823667737148596217031174703557254829744196612983268351822572979721088702569608473982066466209767059311443043207815351093360804156320906622011116314434870249803920873477966506074099715675827814946057559634269711918785372504196921082425169408053282974321549484695549523794980557952259060790176059474329485478630433283433016349534269211967066689677181953542172666412706281985358731670846163102377005722926466286676390301480471979328946807726185155623115764634289873144242135941239254370128090914673797470468676117831222461460379434038425342791964747799451601850797511806339620733071001687024100013106048822520828481031909021911622265440020102531852804284890522570767240728898899623697627784097674820885371122489868650956222011385575856393038580622182905197947468862488129981153309001006292469938395437850298766505361723352913790371583572627952410923947068162366135734500342723952793603713207011173239608194619968816488960635391479406966605322710346509521680827232908654015226497659149491940009748010170518742414720351993034616120145255959556912548999650226777105365650164769304176180764782265539250599375020976490747803739734392469570756054532419302749768033548413244752287694399864856236413106807260283002717168783873564595959093290775120601727669285790904250864227853971661852654619472527889421172956912759261178345006219652952011602589942181249384596985885045769682134340998380055194729333541707464068572359921077192840064456787033185847626057803614516379270195913332429818109259010866274339492004011777045711863815768557877972742538216580055969440383131474304827664496435532251934132962110601947533886352747823610718897516825572977516086885724605722909366714980115666804950207514277678391213890364040394668746162090761004977704813383209613650504061653742071865509961409161681571557499171112795127186033416527355915460993957016053860426417213175913002312817643462882844397805701229438344360725246904491385106154492080194526672901858393976823240886067217118021023862634229314042147132058668648075974218548755240442734939034298412643429694899361260691147960028498493706837253457179328454582306150287861948686404725425304061968758088265376780924633964013185572760163735811804189119344132094001913213822528778929107464353799780994806774487299020090166273886422260534285338604544919870766731762266679485835184109488717923648648765860999700162736907496804870946837528309340051515488317089066652244432943853181694582532255623474404053997186490831383797297372181323281685559111253135073528928572406600427967023050290101790382224004728291415161970441668928150375942197232052304978837168274772539776044664232570677405371839439632251663634543171539237986991119755094306347695927405399753621827574726354491944374253573321955660488183327403222397895560781659517091115959353254782853249151900917955907963397194622258440202691050967915523223254024147542067098975320834011898537708939747388224947883081496381523767585220180138484690004269164773898330376267192025080080041161976844170748731544006928379357686019974803209896488607321993625306086278227005051680914726629413659604180429373014051770711708338874895549114675416240946861695983613958538935229485938079898106602255588852280925190337637705434791639760965425306430092631344350358459369006013494193519903331984169163956723721818888539392443588198962761658894037593901707333559357859138731109295807559971095397620381292002096254209346856182443549072174216097309389382773393641778744653430311184835446447422172942200722504356133887359091810653368125336188190231503988553224810730440108548471624144574288761721200943748291174817818573612082832870323745886569263097365673608872640669690992877790805576682374697775950573311558046446890153005854095163015125437149952840761683949482785674646455451760445574813422441885926520173418686508709730821303533310535870636142922188298830144797473279596824288146426449359828174930452883662536019695696117611926096285981533159514181870656223537135395886571712678279893781483237609610922773955367305120467934437684392302347895859672061994432424616009670110880687086966990180212818123407091670723996272586438104170290097360718767597233073308001649997730405556366028296001933218611204323084817735508410805476059015496134407704605500329337104301303302709583774846998464084111598809349734119815754941555059154881324860564140814134655353000187607653918350297297405765653162063074313411211691141528292278779342328523251375476869670086079311996870986825869575064417950007066310390670348784400650757956208198461916590178175619664803076901558540793714245802480404780562375058763003501912896130109367274935356267788713240373882733618971948096874216049063216997518833390206073417321640186643037319822730257664798381425808153276668850339751347592192099107097313792134851169996314441129177221818176167530930160618273910081081204873407750032351008412449588113713292761260581938708602485981309982195908696938917094468146429172261373705505991191745934457658106664886773061224869912432263167100649736577777424574699157172140749768483076563897440642592996768498440240087827168712785551734801919622564244580013622418351583888150247041700629062415472433579216152128434698629361590304083471163115290218980428009884500763010288553533333600144815949286367478085435358517195229877966041233864708731363128848933811630942048605022616669726270746815108763750182264515227272275280071667410238016815944862543299025348714365643797458677769365310141616496713861719727391702447318842929253203503107990761639033279285616938920127762545276851615811787376986018543299139746085768869372472089594549030662182873757324220944557528980720381704406114747807461612371327058501729081556877320504083646072248661149179935629365106751380686370755802643890499922599091884437708172762085398805884028801294884956767169956949863947710391033406356504005794721582221615390413645849459603187609060318355519778576946050185635604231156206449429685591284983887859899058213877281396280315304032681678176194196028865447451667347009551486810922821492705695565026679367894688159977766094381858975519344980317117684683548763710295766084594344382099073619411449617227610926255321226236218901921261095356114076970246215106361785410533099359547726812749957707808091166336300686573076049566091662005637024161237460244927356347825511896799681814098215967462344456426364661352806310967247126840140668668112002453830607897713574225014162608880620502833881769634668997716225207635211528674088425040067780715971073038440377624876124880399053857851069705234720852855679929018305664162371460920810383917526011673077770691568934223371410806231216413647500492523965218861987227058445344698276039970704474345161848231681278561136592997517767311220375689765000416782548616525816683629137633791988774785942995575312147721737592647139651490547759295971971073522892958107049796386247739515520417329403774382068201727690000490698710389482223094318847904205722103330864897183728027151814130108120001618742918316574939180411584523885803487419779694563573917575630463346978312602994145813128558582735236531963990477578741440247831311794210775581064760925169044074224173711174821393299518424283630105068957651168389527133738993228751631060452426751572421928014411777018520969983048386831702205869482065888500010488476959077868318933299616861564300253009683005138909868710453876767953915397413264059514137480517331615646736286624423838621790024701787134258980568496504865566852312117286109651722790663294196806798201751918298966082610359384260417199574947148075034972044166620793607749621715521066461296933120022896636005722646106603671989646350342050350231061923886266013945796883553277326026499472229169051014185265718386004940702716625705535363545254191224387753590311293358910031365691487268099959898335506764552360362670310464783969948039234319048174291638756011811835533357803739301200741556477726327138413846166648414137864821358491227134826530938236334046672887338372502958142054660111103274707018974393174298813990090583384866341303272684033267911570285935123166735192674774411400496018209009227980560203745330056929293904432915278504560390757569985410213408280609905723663257437423366946017035731204880414865818857178712360008029887634603883014575499916819113629980489774209991076036067925411084421870598071462398554560501913913401784107061155768927216176063475982823482265484227060158997202013826454021801589509368996846810311289215677067313267522478974750485483501393822967349664807719813282888276734713163485043608389989899824527286132649576850724252135250791062479932738161718066024732252625430097026858985732443898827904664405102424906126031298421412611091728021770823700125531428246448141289028409416489857413481826990386566086069922353927658632645255815875560441441353134725371864759106647462683507043555263646446326130244291054750545285274074122508891531999445560232365782136889336939678322798586260885403048757817154961019761444115463611325455022799713186272877114768510070383082621552625542472500755212037782841094563480405793791261973751801554428462692893692960552200027509034965191516036458010502257100113456304561122956207781052320762354141894044165246665694273758390721946193120210975415801074584353351275230661425991927788559200291611706553957635202272999980745442883197818425497134428356043135388193726642326944758275439378725732858605494180180882550891860272222070602099164440301294069487471572525021004229494416204537033401715811406098176181043395965625090424671720127540464485912763517320597089072184618935085109491986831923506842642488520549394632329818727484276687226567084009007187215523158079419002312024837722677395560471039336764359328138361969275766168048199115617066834184991118408212726542351626028304897369039168538280062664795923892182961028395054651411524707366409883968590069670251115355551467577587031461520405401616872265154611479082582939222279822013985390294456567820434374907028007789442116010444778848800683067265098643828645609346922015506331224012856293934000645948860372430008226976450804844618550697993032184520843337061906143637895319408005636776841221787318103121961404951554343340579493374642725695057351925001166858210356936525281021609017120205273168651995590493740074834444805309811155297842452649939415310401300841682379356021909646703098818651220982791032317679653758540261788198072145806479827888524070800320797311718421627648662880561930726620710446463911930005047982361178656252555780132307611247708728279688200547977457111360337893078060633886259644251399217694789770065185053480982556327850759094209195840543629853845855245126224199037662440819416417763556346688106131384543044983081180290830062346346506777904567463106156084266304756789603481712146143744841905028295711356407084404374302253557284562309817754332039794211000656541549195353054684771220702164152831828862781949191327533645707173032729627204709612858059609450700743268213013722868403227769189561687634416801429807781939810753928238714837374897795678791619121505333598474737154563588494545976843805407293730613781660128627786958298666953433516761643149595870665901596977531103587316856659606105261348854535276567329383755125443742842776523242399196000261176147662635607111795031729972024574517035815974454639388501055537126953666961885887797391522595342065733010709843618911152255304581136349386819441749273514183995012997801317483499267321389711938358881877057633749531073600184378136402731299640302951720401640610470707392153904118991830043986679722664323922203292040568007847722921766189499663354601450032777404975562612926050344097318589930033216048209653225182618854024334450390336715369610577451284346589801991307493725048121953169119710389342025949062022834089595478393956533091100840607094325746384685385012748054019630828581771253377982017035175169131338213633990275445187164980135443958965909800446033917020258587566052570916539505033128657611535327913117580212930587503722406198937076038768049228291670507040700019455736528672785432932204210824231192961016500774700491790757108660468206705125455546374015012173871838709496404568593650106693395150468085827220470363581180088113265629575940479170183884436630827880981902788573410893920794106607075751761236753939883141818931332359286757957188994309542016249884561209279442511778484069268575798129114542191541175109154590921771798136247320290630163266820541431558974792327089780184843272369635915855619207363533237929149414507478080960278413437938527261556655641727920709193399354591898086255468170911524204226966634585403667114564933797088630942503245760754731775675876274745108340487747189421155919845471547741126527101530227562251053167332911858645617120549693355380812673816766180098828464488035394289605038661423354590392180273527334306062214751742671309762934565776061525985955789279307718187581756680131748966484800221971858216373992905399924405395221714821629471668938084120665547303516694676550044685571989060464173126444714658000195116974100136254792279313950166703699758321556191945619166043389838944553560761896830273101899778569892038409476198395914958411520279088131500479538368242748458734516124563795126226776574532701194617613156642126460077029052325419979883159455923347740864174402990640139630444524688479556087704388695626013255432600385823736984569047553312066215765329756173121432706561571494160346930494931801826577830059452903266225766225700916945479740359607481411785170062644090200296729500026248892242232973979735145984605518838745348986568578048874573507748908814452586067996657778092362764430766195378134586495714456865363422436341974138360188554418083764363829597498162369595080453126470716408810411646224052982898442327316325887938410726152189719336063219945611220862407813606950212990764280632766546510594731916223480354724260499991404980121005715286420889891735583446361651168216908041249774019515511535427669375544355778763945231116506019179087184695104886706228105558352451373687776745247354922068778097476114053026433340710840510457029955653149365211897195613046093868512091781264240737692263825249821801450650817143601205845397798614119789234340263862829492537228921748789063912397002518871532771456457266938239056926225405266061090193843317156158750104338544370540810335694434603863139858447254590088790540613858970157250995350127787168634313452834155845791785544392646048766788783189502832423817509065017454769049084949462336997032479937496513316225102560668186436235216561184568428525805759183519942252510075818712694434883039782223813273582943501240412504639838742727579459763579566037877946012730398685038174477097373646442453435302861745176261255080370958897224967550880815683770563277137763503037902432776952138065233005806386612509234988472553595278696989687022267739199167632316923139992035267348725126050900244042607973715061647599665785998554491873707003621502090701890005066671691205920633206251618350273137849062221199246759455850475775077444897306149172609045281174500613432477622845778376527693567306708594928722750667582593780838811126981709000807747064420270037907676577912077634825619267970818167190079403999969235382705326317025311720595388400715858319017278893849088958786401716051658634687490582141982811295522506148002221539948382466125690312073785797801820635654945634610045337794724436546668181290055407625360470671143746381052391791194377842695322694076950589218767814415800134531676223137750524044292380779535113422951608212726807474428813000433678813354019872454756155956941121366864091841657094867626258223781326328296210425987801417851956181079453700213331318851462907025427826329893425043726500953939484332045026464717250694831162353176129915217566066719742326539562145750483340330134602688579313520170239397147900160111469276668687307808549580125367971183958496908554825203221024523922290152294403783627687021912203471368792566026662568579181412784708559706607499019650287902009333478430741243029021038213692991625270114502020765092037463139390070976621010920868798106608602047080130551920741343458239472896732781783830781802750844896572312152073258634033945877574808923567317783718218580906968176864375264608442498134893563747216332212257763976713906941200075444549299777232656561688848286087846560711558800391877460027193450731001185333480753258465997671659983359231906476794045687560063503280400825200941461396094250577726000757522923123265953854774607357100350122928803858362625017453373417271024261409621114968471708747197373808862740279360356361186416155621018883968362781082534700669998787641345864803574326691303543681499115203600461898617865012518938871761083070468076233304698406220667109504382599571091678867450105800007415007597241613550552403003138819513898389121512972651422708250256182177284014693003218809663027558171747135298321298479515540721455940360437183056095650462832217535677113152019606315800013550287945047599431233131049147645793417939274549200003004014480654696986095873207395314236141267420512061642258099310490036770772151743328820684443887312652996720273591412939097460718131808025434960529345058308636624346230403118609100407305393405116115165203847391900717721180094814160368674359264038888804678611128223951735716231151546833453767788330517087727256992365264944371312766615867211230883067404580119174812220734238974789605413518499598430803263136820902212205386400110061984759260414468243993023811587419392074926192554203583983326994153579660237949250051642922179395104167034705499295355260007014441038474766264509120969470061551374514596644237604490478239431229630064716624727725208853552104352624035361691721438217662851143311213704274672607582554549709859483429648591228154928117866253482432098118005043378288047631295293063074044019957450185921046095098640891497606156870083306312069260722287276828534123048642816365355232931665618892385323705158917590093546213147436283724734030674865690410020319901310320168354844101241820696392799642500467022338912322273058946706276821288777741339382219820880917777353268835029053476815396260996526579564573972685825733693292498419382893724608280480213686909559058631631367347756809550835728582342125149574191719205729474221992900003527410530973015695936533647112981414889121469514327291328824888319818029334861856963672764193385459432990342758028304301983001735294583940346150519027671118921314700573781550426380443167480679324604886024501101772617508604497209480881962917898945449176588748441378713078315337052113484409255512905245395370150989996178727428800415544105233686209173118516158429828769449842462344369937219015501481167980493993080375287663594543316846311790113017320966739365440252003596723875008480561654772866788723613820479275888936664985257336281601259641092192078980036753218120907017351562069614423208308437915430077428872179476065318836348506476319128568323131790133992240654970666289644706880391253235589715564337738773771364379286942900109441246566311686706522764677380703208883107387798023751152106073753394978521115235414442360695624225618863466687305060609462703756644385116541372195208681560701784096379709157004920674364440122422901163323695631477445182895034142948037715157475534754188968306321681445600015679439191326724774116304315793965770333813165268488525368982920534957111480350328975635028010075173925351750601582060135395988815881421941988890012872988235093698731219042012897778634343606905830850828977558328511396405131629326636186798687021630308956192841256269273626835103647259315045873478835496741096994792556948266665810988611935197956718488788496230868638029866892740983797832915957897291328668015071567249079723840721355473389785761378720815577315894360005069409949487662176737948422729078602893864426567578347870619705501725323644610425512587934988398363946240844149878198386131709187062244213777543978261282541569479002982334535807123214668866341594147484927378605113150666621853413962389940545768220608863520204603951523333838924849542748424855052770666947434528136887280358053577478532387123219577456460719697218664676784260884151803686642177439358877345055066529353263683057162399728995376091046298644066779197707711866141951487743205735343926408345095147219295426729907529637503609371570163141828344836238827332070418828212276093933428438194437079392979508716869873560839093442580323946536551072789785071973350751686751565026321899737534663235466489364851504467234291909981608628326657246781331707353200947871231493789379075999102189207298756872942156465153938844648958800199996760403695512816937667625316599478245457530502916084177587562859775880490085573959808388708588262277333104103970134419958305909859436096810401789478041040944485019308253461534547038462896418408336569177600325688011010993902912467401882023792443058536791393853384573559622869967541014325019884170990007710024689886290256641754650118583265761603473117146315248692623658588777494204684210042333634713075644799895823387171056580812723590888187518896795491406498292556487958176635011725218801654009049846628905765077345212014679843102562273768380315634355801739287823174881789896320148154743714510988956896333991762334295669195365717731113401370289815216877403093917709467030748116024127823478640130333858552260596140933927978725574560798669671551638941902365827759841378161108687864960891779284398470164800732055924391821447866097934264459074524338637048754400477899735070755557794971042561426966770883864710607481449444980776606581325101206327985449164151025506335378935487417365380495305838388054862229794535643674100088732971378631484626110704534329656746623423976755099199844694516371265214083719066341909725144592416798989903869706182189596855388289627543635499516221046492670680537334021687256496946453399288680056505528506369100638784915840878756774112324558992057690355527972683996743458576434282682732773397191873513034555866001872556490403003131079504966255777654076050487101865676290577568806918417844367073083609936336729835436095662387064233224942481092464774597320650288234572422306611575029113602876810135905828413665208070943196221011586223989134688555453324857259975319720758197106991275056573395388249796460260345633597367624637065057118945398599467550879663314708768456791336180178257566995396899581356824378838590073379249813384259467411733658361323518904916812697849348280178754280705090954054650176171198156552105293090825121093872160179461735907222512464334522462911019016697943045074014293565222469928173027949264091951131130541608756242490227717673548621434253781163179874113894859425308924083500026944065230356193110937831988060502498068026242059458598525763056534999477029610460699662449097695921191090132120017669579097524913777438576260599355994813136496915655713660537195382384091625341306534388083239422546614167560159677425221758653473628025755975922501861074617609781583751831050634664082921552763262379637061204701199624410991163736835070949621290897136299856182571289631034961324605280807523726528395265917523743222753898633474351937907149411222772719730928463326547885422059772505458875324141228109544098171985755330177331994986554500057034239743250333834793057951029489675214894510960265564848342368854835892805346483991593705612509838100794840336154896827379085671632199393074643951864160961435535619915960293603104616561367132884741392530301574372117605838550039720439759666824852072033140064744631641544850450996261773245967515085991472188389308972643536547510739206989449743797775205426652401754237255147647009531839673470961075933259809405489359310046644120092492161071627844680859448156253775953484614670911147762477381279219391544016318745994382356805513338342143664375958972890008113963317001529073256611673986248154492255248461185111472746099675144364308803619907011493678188201407309587537488479627705962095703792430892000670837835192129145689432014409674536204817190157961225139096653859150801364502332780067978766314405697858060038896197701923288480854375435642833322487737539267549898300332849012024689741423488364222878770969403160833164011100096872443480121446578770287075631305629731265971935694900118486154514016402320045052975173395653442973194916757495376353792281484565998660887828657218424494337908826918270798872921509707100848858044845952468509862550937365711072944183743884941644314907728984986731420905718312999569693384009651545567391597543534290738143595120255744248616274438265096773824816150676028109044336595782684996470739153589550456946883144118702747286674295237657465520188475077764676847279675194402955711682301232918594201771476453280015815952749342312430463599509739692793683164437359827519436478421478678368486748117511157770571143970583458369808287994478385490748144560631750819265290971290681350515183039965422095435443698559685921420376520427408462917609300012937301689969987970936324390544090631088174587850335514930772138876744095585712463260001699265779510354370206849361077263615927616299788754500723706691815035027393099323309994893600898363837522738709471471281981637734651544272034531308812654805086812476436732398838974772546076133363765267068566700973741330169867580153428664944485105386909795932354770073909222591591904168748011079429866951057167466857199554082254811983157724488155258181351020437096063841486826934743986354602070659648624317682181256904319699429655695273076509909099834041965818642158502073664384422949745274024828368574123850763835041884981686892518624375267617808230818495470866608643628327263778680153959246646792925760846143492398893491319524141878565734322389065743863703579261844826398524023357378788169441672242754557785253300901160072243870219179804099260872321330097107609526700086816352913877576420094431617206168260680001720930747055854985919494295206515155369761547378206581580499116035950924166104504959779880954814222997667799309154989075403526558678263363285202595392727847965462354306030410545977171448732951066125458138114937481029901558825983158434273649404041536643379592055749253026651167412714380981524729133224658791944485440234178443246993998614169757119819899575921821150754219422671387533805859020479873151696418764967085318174225227431532144166203432584770924543697950678827164273801689182967891552189923503075026802333500772753046255889479531873616236762161286610578715438376268850599191132298292432692286800790106341894124518273851059794562712553497730772615414391238458846377377976514841924997880671746009756973236430121592061059690604735392468770686734166805277726627531125972618746844226123888749833531454922580615450831191894330280495645373269838601196929481684457724072187178465897979560548053249167978004047407600442298037386316278498166605609221133922562154356000440976189493602610846226910555586181254172202292869148339137690114219849798918165575276458341708934570503124939836188973697245476295704081310670223648162146920982895999914957067750212329273122062863410916729377729522252089743354531404615244550442496420266676221559727562769762321454043180807187206624513389620819560069572622249019764961709422101383591277296110000996296785295610208246404990955213108028721991799502291586824808750908481752237892030741109564248859833428031161913111628615504683543538919875408901409830057962123575650476407549297052017733072028359716093748509058768533557798227028413115012767048194569766779059656918389986516139362764924515421311934738489751211280324530666441988259914317469610471005430660274902299899595799861344353204130609254610969428222151745361342169989042993790246774867928917041643624012575434350427845487089057412908262879673917210129895104859243072371744098731443269599265835433114260989858628784198027875844502226663160526025458781559199421547253971764844778108993769105802971654720060532678015947821834757655326099024675830025118608713304864758319227765775921063449240307080358976066089085947815280632061238849346545153974872248967045195617348288339521442942385847581586306117756214283903929155204667536897675633819494324715115263003020587868881864628510116176622717149592443895376676934016166722188271052939927771947784954669841452969087650476751620830100451129853441900073074976895837553479329201798351283058973095808352025195043030299454928692897628725472112409128660029879177123534985546306903506364932074488996861903098903685126482640709417938466659122770071580190396527111094115081660696326195916183042745325836904282829996505842291179461306260070445485542158977068622865692127726267950598968201852373376167631426935325156896520496432092969140046482295240001827768240835523867043263805425210927961012979819896075126573832514852146649532494187741056691814047650140137706244898600357576174175039120138522552141884276327452969320607978987032094511697639269598017323688077146849149902154526624234512023088032682870413762186439460095722005146432156076222562576517018826154330561643836460556998257509323960056272220560063945705138544805334873828171658170390009032068287572231344556085961591131824566491409576156813757517724358264160808686555651719305949168838637071365566873084280870363366253263373681327660117813145969844542261190847888326465102385796118458922563716845683086696930750296137162891996990943637290681820340975796368646321158876431480633051307123796585266343757233851712801951944747156231776564911445982299879312007852353098094803560336612409477004137388162876118282768441556346944619487667299817857338956328267692074149735572126463772842896265005890374505070865346988351930781832250859114505913592418524706442125929488703676237981609712111509250125517122884240242003391896906785163515673387159651333679631797129932934826866945366961166836581347894916519666671390848673198624978295100316120471521678695525267027034470049059812154392129757822071739480699436185299693276657621453900727709143496434398220284513150011939619736263320771891545495322557046286189344294942362692693094143649624808400949651664939952404861254873526982437177042901746881177859267446035978863336082754592309493877955627705333488148719005807301252192168618028847375268746890982176700812985278917665135661522946201001375191703536496685064965209239108379353743016783682441609872447490455783908496372529166554617984479770172945936626511825423907571526272935158274220867815719213627697041952820756234519810456376371714765988986903749721114261918658424285766134810292846185445061006465121676380426919626782162605826076232937985721913541622248233674555453893835316160978021917947075547879930665683235627222552279067494879521101942301478304812411514349919708987417861010984373179243695046069696623804790162715809955042068605100906190556607488321895490454755059778156239603006920512955757518723865467797710535378729011913446037968016486245606366117297101198856925692265429954131167118345664171803924934866584097697832908237413963581884522190490814697633278385421108435306454938373507991961185319484171464101820820329582319390549054352002661827014306479613140788585524504295542409126177518916559999650158567554863356052612507399878137921803894658263804791468788830911977731126900511478927036157837848342258487884372002107030648305124477654942808746058941114952084824673887690524558197485514985947337415469310021342260014569441739441295572652132944052355305432768521328865099432968792341739569773127467143848343623223299669278111485488943741101669011980754068712413679290265166429986599831552480461983343994156963178694897596642698626005440461683957440802694754405185517827564067080786446279471887451524186190828064629248966277098329204286154730428043375653771884496660845868898259601188411075378989216855366982303852809114598718470991757174041903170795227089910472829911236619332526740258258673862929383284423884043335547137324265827379121458324869106609140199477616992534585561513118812377434967050574525254674250947844075676858072126658182659616572728253378096277660953179448611852983712572275474144952446020212886762495666517819586968093661324706541743230014378322039104546181930069834901852747644755667555216594646499296193077504773185962074968073735216747320776059669742754754982370310484706299270048846962700570759734541651452924721734463184321956440435997847365256314943351339876584846558874790890394320673994927792394855028214048742027547101816490205446919073106074530881803032426683901706349216003768364016974546716889612703178338478160215267692515159020626046370030850113488043823334697885024994344349084948714995381495769659024016384717582062093973845235431006795556570963626583051191479044934334147718022727916771562572909097051224096220546680317769792945619345944531028183723341970484709672766571806608028333145670367866065101584383600920141075598462425134478890885817105806192406710143686078540821576575264097811611317551411961280495326636903010155980468764967759157558820844525442025089796446620245609162692834069458493130959466210723062225764790500924753676420859902100246494525865759059172586720997907232133505238032241214368224396957766851213350368184398733488457264875124884700291774405904308260049130701456722659790950293763907573264354615662065408506964835462393806792161339243946586253091292854183594537630830078950308833150883638952214218345376327253485413289469294261084098715579352316753675098809664577640836395678187049909159234075056683704046632276336587986812124846374319030307535488421551132586674069708619385362276685644703309513980196499243037421967505715461629082212700137947348204617316672239531837376089269377065255791161155209264969961460812129990764710786526127240646936822149682459469915976831369672981365467363745945818504541346589733320516200490092347214812761233757462882365830532608842361224137403089082193928669935042277653403753587924131069086198168350160892104054391348958856237782667097863838265615389707531246478226280664268869500144093293824115434414927998411668681825774306760987497350459401426888488733822170153445392465257614761403124013910713526452045272844827573140169157130075957900123989573839689887256252867090898669746090564384528005071082313773727864622229163713895499940608550559439049953458168715405203234094622603368816410802514623265812824126684615086480672403217486060550658899180739756179682180914517792787964817701656228755174766859586462976871051811803179487086900993072967465635876057769378183636086000890214930217027427390258941696299114477830499656494083454368962115139541788112422479956147177122900896278606590980208720242539208450445835186880967695727311791086178632263329719847828445407564433292709450702946995754510801341222038627351048265161126391985135623012948047039816652675010686470443681917970262811426774785899238624571246855028389240418777803801320267203614527247739540427694532404388898343758465270821737980460962728656526091973875607405955280828724266177376742286372039692431929871756812796344893771720673928651261948558007929711000737395476682734719471477085003259758718874036513244497162165608098229597911643411564618355561017734305743661754902890768122303436364043069465023332564488151280822991082008681594452816876601096721054541426452190425731071606931091736087962114316225233838468248400510731058830578871337130916526373354090793610721701638878107778171390564015348869685663727708495937989525107280610724246910525608805927308269798725050729977936664057163876503748986287065660432663786387118448509544317500457908698527093764545466885092200415328031613176667261765623321761959537512141733311861141982364059233298339576626702780152959695394598537800755019006330483836399646141512681995212640753277054045348055779327544171333997686299630917651543599981294539889899473252694976099327632390632750086909279289407689683800101854542077006281859604557905047562041052086112319942085912079840765926599774016979871188224761416736127387289793797380973046673305696964823860323588432284032201161067144440868693570673928761336531944497814428300545996232619830883539441924421233441220799835123134544252127038036051493722634343757447263426891788055369471342168091462596785952618356484604395539752284695911130107275599274181424896807804751016402587950494873100664503971836772725000545312762361724584532058725424297275793942728053670416536795154293969366632936140497356409560649169590910676262310279248648440393600351493944511473353715917128900712661710897598111681773776183571432065963055397721422893725309605925391782501740643646839026501639228617339452612166611006532908209872239132812980081541050257200293805561233756006147733490163032799239320331512787266536718239162304581366593670744897570089279601720118340800218778859073227973389044714991603496842595525126708917949270020146824891500226587647585006350498141279114483079501753013432810786872377502190961705369660999021045670421678366734928294114180280175795079080975324717271166183805021224713283810044025348201851544328863198332321357162397791049716450775822605662142536343060161126380659592714284083381221063065686387396645390498796208437157800843809365072292328422837378211591207750648619643021287846720195314347195308161532215673644739138967704298938131347949068098012329145886060287639674735436841611111166350866687939264723954201274644172904730865652417715263147916240634222935634679868217247740897682794877874788137692158562803628376337050094886152955655880012139775128242783390799009179478334837739996700958060445817982054797525739326634758059946832341879862951383708963191753215259893594946072845265795122845635766593075886438136011935118267849846440698648735148095197308220285155826938069964412349645573511043267450867406300194090106657337482783608343771674857115418235253568737804780479643295269192086675573814862751237640073545915934581363563388507602922375621483633167802913095411899241266610735940098474768486250181641966107859343476422572154802880057479537521725611395477576650752225468393355613848350402790734884185961405031276397785506478934547053335060545920051666314031996141278270802537436568794580170534837135971016984768884267185620700158413520642485581030551654284493330619795180808026220361848799561134921259217828203609779527431968759843696690858913444573393425515853398537244846149153663799948802190442755206546191358091120978060685760735427787253750128699113272023648795434152034928796725359367126621049742378972367434760089027099197872466822098012334625291371971612212578559346811535758053200684660271523951800043902931999151973174320897897696994429454168009401402777137343938970295799824850914583875295112538803170931225646641547859733047685289673550261101528737954705449945347973562644843449265413789142685555054606101274465927473087905168294710586984783920152985494645924349510579815992208538343913093872110613248069126519434414541627168233178362276471697745601951139065924969305505102455457065840810826595580998379175440672217339523584463438985389401286247706411233246927502783226058512082084920539108252196134755079907064342200149518409642671449285229540425231895830408181006948383043878401793641008276666064369585578643260803476056377254264643398879785081001370847270251854847503011116429466451639624736430471894811752826332850181266824683736586607836551434934573130780391630944280462563496219312614174886226402043996965458490405635750656746597055196389051518108219781634938137675887015980392320706234864022041628324377036903538220427352178864365085896483367917261802679579542959999975379155814093863402670885137915389953575461773060646456141805505351356464246775909417865737742128765456138310793478877730724532351942785555348422235164831604789093381968069444844598996682389193542048876093455100964711458199165681608604691844328388874420580347257481095065140643817702490725468599605473166044480510390487405477253149595400116931670797118603731711526853554910863107437225829690037879763933448385285638623675214967439671502398203131003174733434412001319209856441732902040327846084746829407281290204275145074560012665847935723429605263582395143532763257012754678137196810503980643970742789659550950760360569044378451172131058138486995332445318975021833529828574927034649055000264940087747781136558461927214420635289584871577219406213454279628715582081082929703900730018586775092391340580352311640609525711925883483555273141764208462487287502107429394523948321596057908964361139473631372241058023369869691885744433599838756479896080980380962592990385128333295701182676889091753189894271817744035570843422127692121152351985613717525980284223898697684041975942409588151576243921930598059573513064593343388487445511500682543311903555844446188363904339113155310819192730703661862517767209188276949221175347739422793966022794580256363063274934877194281522964912495211578810887398258737357217641208716017609057583452182325033905210367648008125368922206488150482452279618845737070405733576653157789444573585412869530745948578190205437855853953153308261084711967229741151957343209214638146085097957363811498846247854184949565887752540513506281883937031935082585680924207344577407348677630236491115507685765135639761934429571351763164832222357527880940397281225627296426966734012085794606519864752876620529197328160130809507829733283712095381539220388979529688854442196178096963142836215628684731496079279995409202872649326661466179490039099474496532358831670743911711956959132679607151386964041755974886757255033767429166000371523855781891280063518732242649321609070247972714328770530573378178807199943428955951842748081341300724841506763647355613215095983520598315063179859859939779763254697143895546414536342761908546814873593298652343585163192646379426393166596445226755431590718425164555845602653549651889614960362998687081954048080918880342967347397856327799014544515873857823102456045482304543894097261066796034748987139399105267830453579719599908511569525095344131915874664149297942230412118037352697975034940363182382243023528114621856463341244608886892583640261936454135455872422779346098332077320358048921848182478140602133201180995759022666842058699172766939703358784840751258922486681063315231168445015807993898678160229820286506836277823237837472144996557987918450906932996016947901512925239328388835993724188448410387226893512114192418995920274115359612530371159357432127230920357420515360292163695254183574515481507112605424338687540568508471978434102168126108623472401963123590997276246168692092532729321004741064256442777098447642444100849543538349377777540120352764657955988018258882240331847442134700730188511731112068513268666249041735362925838635287980313168223404149966146078208604758877018680870118930375625781522448660383688078466942617574357536408266711163589537853148273908535739252643184322946872873146122839185935984463172431933616219451880546134045994471258026406268839333535306345200327189275958406001566712341219934144803376023950874992343897523561940630618931908747920053425304549753341236963610368445340046963696246210370640782542711338637074625077047204068671259775220262303394002000732977430276729169524755685778839541343841113333706045928634550935650479550147422095883757324398801377985575116201849060329535998099728868789467435280517083144816120485615555249956840082786183493401038044425743814283508040136093849147789577091508324229189116625320155442527244129382650638252913182978515455700944617331028995250374325370277332510137486588608945876374680328746904187504240408141082414675232717024829783016884974609580233811882728517121383311557136972539163631709055459905694419674310951041215921940812610560479006182657852261768292400536547229658720284677151877542119094589952921012204335157603718301174191873062088294924537214008391819170512329668274442483493358489292904427729164118498363931563839621001723511601225090147916600682763145369379567286342487210706851041664743861123028276129007021584672923022008603946797782775437850641214019684549448811001999829679388876924817151531899496260295021608579023979408629248040235818355105381069402743024585655469999992392643999864052051471360094341486988857270074763844726994538129643951937426739169848156154584015349235973405053294412128231504405788540627471798853378552700725972929019124224526413300040385833586128192718264687017029063775364948937747484595320452899209807238877148670945987488568261028875826553948909269477274464515895162648048014017258211652331638107424130689045267785984368915302806043077964932046650156754098731505995614982388631641301752323881519478828548533070637127377154129406917117952034001658933770015216353000547510596553901286425932304262104421399637485963178324087325208101456025856153575828479937324860584100675018982821026798498103426601476584635494490383822668237493669735123475070409490055779993154372701001354391684092925132893438797641299360376027354866082277146728844249108133027020711553701008689037164336596707285370165050040143644472588526983640527345941257280040239658540830175961123657001034340824568496226209497404801606077884852501291804858798375747743221629352306885984410581271157937236426503069839547294709502237868325633486418030170381370253284877018353575067222164413619934659756080050653006160842705665179868939710533237479387448177212063767171561146632445347519566041330052843137563825182996599828322578775151950718077122417654454772211890777597929256760281972305312821339593045987890719130431198425424188810705676516792678346318116944582016129792078579312726515924473492057219828549371029123528462692051558367198064453882538722438336729088920927083500004538373030073168510204324021285167274092634512217331293543921902207911579513345243266215191711975083399558587786047068461628557412479096330400496320021760201092142418451725998723140882242860063190440539022843368894585846557629423832487491529659299419242108850777011868862705437085562397325138254387530857592069321433145696301674522827025784522009826396451657554932288341178825848851033465697655572148043815414799054418877952693584671154246223639157226535632444449598328057026731270021337710276612255959922104172129596842704990776614182627768614106522279576667871958493942371676610100181014414745200846593604988751652796967058704787011376954767369435346427441236792425283762745134554105592832183167116551588420198805005590545772236606763983214215121000427664473096035913883183558129955555234204294629275231002366673845377201617540515741627703369601285104678935363178821785360795280907259587683003090222018479886128851998646230670819201798729624097337177946698766437479391632789615760969597432187090806692959952717131871832143939058322262128516381440854836442527824238410298230133537070076659419940299194908826785462190785950065673550728069588030125236387100969041226571561862389603525988606776316391673733049116069681416179541472566814579980746407114541427133216607054355057996305676128603741546931260426938037322631051004850943348275225350040031876584927715217225259058009202475726891818313420013184167480238264452886265882810273071777813979152373803166530008399776503459397288897716842152506065777061149847474276794598894534121043473665893603396745565809592585153324886334637078698215396012802649899801625457773371022637879344312370547750110911658830947588771375893159048167345580090398848449107533126761505771901155928495724156808472510494139260078082188421656627663784824597418386664497386783568440437935240202106573135653302493872193500742128917970864801776812209662938702812800236178138125562005627322305450150453384021452039103191541948932786843073889808518840835875311187170329313490934367389379890497095580231577080727262556843335900464621238829262151668500248607569756744938250383218840568934994273257412082310977111821620667547410952060006243031446596667167786215570614481473924705590989888993804936362776355448025296330869866875948509235542608189407672028482245055010806317989209961349210256486086418726296008765718456234979712785702880401200535262338872819307414142784193238411671140204375303087630344997316434083892270858488815230932375419953339590263120881932116905348028394405192188491656397752453171472350778479793766260575111082182079013910669859758798034277780653164323401806322199021689049212196034379510331723462234133575410584507809248537242473656241532562498413282021647068482328213747465749765347984800587826335575228893391601465370531761864692175293549554699685738590779266830460323359117015113281084922814087619786833197203901837481242093064888799915218375834680217881736057763992930853937226485815687684344316723246264131535084027957894247336964238074450384148110399937936578343850666702082840743363430186152836065191320628344308794304965627189512507040015106759087419094138779155248752668722258138671483347317406431323410573048557878994421866910438606204510129737621710349053345053414723435946449983465121120655380064299778756716724184832125737257201795483307637297277408132665644848526157513373444408444140511271237433485082715785069150764008556383352065203196749805394949510948580392274014757683358256781032125078334822668218547401800442159180702522254049909893194489441604341532394460019472003817007590770802736347883294402189658681357233638197769841490202450321395510755465211894442018213664142248204849324324547171703978082809393688486460982228010330473757145981998547025275156131303565825052655536813106155022648620155004825303883264422595926681254462211293911186991088880620342693758382172467362883508593069593794560430886053705584901622198380779163437205365111890428513637000729861537412114965868654963473439911685964348438778124151527495104369452191972061966212327478430499052866594281877728207951154291491409952937617396947056353211355866026028385742077774751599095646066847270002754759860897851718215206021447125568114106918534658430590962726220995159024715051296623514716401082807760263057465829217522520847651821915519695625773267436663129767703101825049419139113784198180850641192509440774271975320030142259176382119921515584863010131097237043196751167533928272600350685107530247251168512841919225098966912106520452528862144602965305458045456257811177678895166369712183457798312667317839182933239236391989974196129666768372667484916077109187267907135793598471021050534764016985463363272917370108899072416656109996737357673968148645402063455631028889101235168820989818436277227401466580883723956108122331209299465626988405239714751573272221966874199004132847659496075395983350401380880592510007183306810391377266837169795181005853956728845526093933153446496466348787926374892703237548313413529953524581604569113939631654483235021387831510637713145780127985528672512641074411679261904648901611533939028966865735126213357676316046959858454880833189087370143659557407060099221503883056904514346945529184748735447720359836535745057454948263701314957352361171624227488620052329844417629416018140396048129177491701643954876005226853408133279320671889402465385514137973373396677347770904380744864702903289052820562605029707817472505282227135920272956475452221154867548770265901452057931125890758016570412359574272730833417967793154353685079777108973688392789425329336480619868474177118199458589906946955469787212178191799166789595405380210226961180360678443152797142615312744693286527421900925214757989936282802638281717119784425098518344706868722949895040313305963495234470800357020375018246186873145939868274104224307540419742981583011113374923632132189823179063149200401311747465387712827491456180218352582785159491695250040488136770036549073806304498432530559098792092608788718344469287271066111441931581560911755275237672254693976010166041727156687575178012514019477906450135598179611047877281315620697849921259833037865599888957641618093130474871114218097767906792249746179857700264522706021851890275419158046961481632326612228034721543095170521306629410973651046220928312701502005203206113153182306212836393654765321021212062532673014465955860658257755315684119609651280216677106982413124050330420986809852686668783066048898259849729889527266698646350440192874662678267812901400531516928895857910967531679839408029335567334815423617314195333729883501861835564453896017743865056593937534147922352433594728808089395966737938307569578167511233296077999267701048668617304359022596417435224146930748488324394383847991899737767657340639149681795448766142620317205343761876915767959171678172684560823163917973707250962281502193613662925933731283887765698432043584649279379018835333785517413621118892227274495805021660758917823834368831682462203280511942819299092134304220495518204000248043892277369049814622093629087901884607720755720244672649145843750569303684710541070905417237169062794708666542600007037479383858162616173477035163225056536507878485176072821018575286230260481526518988766548213686071217036299581571511505035332158785563086582310776931738483168573224077743775105469670221349853646981379775796553598540338609820791312912113824095263980136328447597921739971639930700141369800934685567030511577295989769217129358103880593690063065647896370952889302723579675186949963221463330814312040944062032137296657680502930145332556424394632561153405034141603207368899998532126053829218810486049463100200645934113563282819174204942640923873519748318072232327590422438347754421127271591255614735320508203122350631590217852064465885358125303517584073983825874411294599930852168904683374905643912964408219209056542921712562018101131420435995705238386683018479892011246014273170921837663699776938834861446417322797469628976196938400326433252165551251078430060391561708271792246375758043105312976655657904652063233963760792244792963822035097779579015492729287143433804625837561665313977768886296962943854153421790300310188748467877195473906565616466621678494794747465068114319134767306733884472204773829518884570818262327248631693950500233377097517567075597444457293614254999653331930736788347143153492437843540490906441732572232582290424237779902046818246886464937556360909205649261955816241508081079198090458416042127120480720413586006424302381290758476046979920773961260516093687737817823120546615312565323698959633998957041353271270134079831665301487466289327930153054223858952054618954611854445337819992235032441359127367081142421261630225798919148418878840678350067520118451548996409555145452290795285657675292532803901082481373790500663867441554835259707118197587609200701859520710348909419219257594731490875171886972807335176857720213816909712506417917701522027947388035902045147535505906606900379058434410581213879238688829983151770180589810455558786730478937036936795290040805896340503223537790611574322886129949222907653677687463197510552567994191052757345225612099402973679585628770952273172982010454680573912538447668718109829914255427132047535908382231140082855745950403846307562469609791566726467532241835997039909712364742457781216797452595552000885250219565869597877663176568040413139324946130444807170931556301702008008273745478067904736542544715595910936698843306936814089048739513298888541692851807260014703619000045948784159400941427017607215559185114230441004947834228352500878361118153054934283494900259071205494780645688755600870122142964500868058312630650288871025619281062596225480488952204040954848068445745366910496665747486925245815343637653773853693888629248250909714501726581083434800636090456049111722121255860955976174453463933004493454922675156188049393405611651663802464972048732642515038330361047407811390026937437707820146710973655789724880790563649800795754807561585645449232035319155062710346470079313521195965266066566630543606488778681656024684914904902527591477407452960107891089566589122300169368995742071519437528909793262702294467209327114042071957403347061761556748929816011441632670121105910657280052235943288521833392814905232049415701362234318437088354220307379110611849133796244541391303470270328718707179617701098348727487312107595117451633799688999496218314658249000146806118225998486887884226316171372864046303691477969398813999474366238926773227182344520655365704754554414261321171209832200300151851249061149242586566479945094419650317735310418331881637598158245760607317302760907452637017480689726158262858973641341191340529375621430088744293807900835860158437467438611030450037273782689777685963100150998106552341898620731300788186300391794911611528497373651163362152987117060890195211660670280248274936947220322936841148673642720354703837861755453525105921175630434523810095504925470558982120656305962209546567165468940020560722082634197832075993564083040713122466961052467279677946279609818910176342864703460839986395451079241024871717705345445245076652932580878763308147693820566850566988887336959321606224530000756559907672141846259023133509854366177579460414812774554685237175079306369844456401493317967868933004789576140508674966600256210011681332246163331651840276155404136901906422474418276199460373767219640890500446011658673857491726406056417936355242108753116042136920277918476232470665580359041818238629778241836172769115998940071810627428995158381932303973264175246060429521767791715307757264585457556963496275107280493143638601411375529348926343380787528344756509067705816119493081243203570593102157671608219982678774040729482622895737986078855029109755783213389537680665653263926575540214646084016058338456179094683135634860913530278119201179241042925601721625778506648178113134778664580075339182550038312032573958559481375133232444594991436844759770052860047789972090476665083340122015494579086283118188992352789903125743256038994055933954478769369061066565292831284467901475023633399236964094522301737835735993515150228700447211012231033011901437001831548924358118378542727291355218083508111037056428486083155806405633037702773615593744371135932436210442291691239162904986212135993767657502258272790924476652887945802115249919628118633192695848375870562651007828139421727517938418412820110339512212417071129261672132027751531723891048079292973548810960619331679578693216666714003641078320134576607549108087858088921590406056098523934484966043817862079812955016481404940381380402056876419915187027115228864081212638562592520810136496777147144791277503144038890052350722861358277552545891610606339234509646165906765587532080936804854550788736839132643691978462966684555164834688854701617112651140943061312375186949351451752664474037087265639230653455282790601556283845213392232083003843475620073027776892243086368151108264165887126883922130676447963270640412949696052389069818715877143452636709610258855208983139345925290282210378086190607580287275184832274952373327727873499089545763962330270190501705210361638360432574182513557155431142171209805080709175323223466829677906096169024611966674155630702182885275951948612542567954184405450634472396917566572256332930345986184645670387445067606384516438788559892840841108650238208161666457573977120714214602958219343681197402248829845111870870611574433822811055152924789990327290715803387619031659136044127847900201049301457905023501805104867923885238616927570471457252580777916850088014419647550670896620638772808240092783774113733234601499122594199996803847484500712267059675386089436026478572267742417370529547584371836253990763692500183725586170467843370084131624109317567253670349968011344290890627264941799482787368649483996480819775361141354798761618099956870801954207905552185521641846754393749269344321521659604842407063844604064780028200195743560906628888275368215817190972452600051409284421671736089143659013725059357620891538597118588935435945321249296610004027444469887186145281720284769943647902564102319755521489731763531432496768846858098091665210911682670216940594886210842491382267322010820612093407520434589039916781849958633654861859038695891786319179713847661229928953514273703955585886483718799406465233118637788183571121282728790991745404802548976031326130612137031020362138864741073083029359112878449156590021163588939641455481073488861606380940801494691563982183712933829340615788512097057903317765598095049606835982729088655196063576807468238509016548513962783704544260337868460682879833454440260406141280671518867575451080728934361290453036908379554786024812818275089312370286518902027749443397027562367051629435863409670603887652550872638792771357137489543885820767000759488647124882158949436543862630746089315574995286081848490557919004848446245148619253988510004608486774180094150210743705687591190059064235165719336851170818533189048859960854519902651239698095253137224232504601723814442653717548720963745023870451494285412024038221585821100506427125725446601256233834263581368874446779779762654346382640672400942190378096435797393980113284356039024675707288043728955943327595802921374226159758800804311057282638824128690870165645189210873565198056223999772078736143712935950214182026971728182684115602354719462864035335001232796901293066920976255358630505106249778999623030511872153695562240826541050769791100679398023879014570838353703635751038641568199430887317860219254390267632753421250177605570505931157715872580718426935424914625385718749510556789963137719392546070502396824679163602766184914858436085344044804647390059487046676169426075694745158659242640670291180988758181264150127135042256262592381449072601204974167305170575197091542232941373059531664133196700566172043621646940198376594321833151436809159387650568502030606084629924104184882573991312334404393164696928472545532413253978603984652926431895839172801551767922034533106515284905051920698399450863943205630201864913278906804068627929814427706598163623776460958821565100513580663656157804150401584010381153457992565979558039400953551877756953127153920133276210022062776811654811691373875230606755062797722708606008539238031364871453614986872491675138498556729085322490634272172389285089694788977528755371675982639923607965100142600308763277520883759922225917387709624142314913818670358302366858657790831468410205995720005162832929172478863860740856361278335309703198866946447157103517949200440540886986219308216666833751178755955034868695124883785227645122612138075017016857203550233610196916228119890146882689207455012956887953431832394856106827817087496268450538533686441611013734692648960926400469365009987968276655440990293022515511279809652824989442928798415428768570099128342921690706152918864666462335701587164764674034604450983447246017768026534876177903194705763166019611253667889414322056417027091474959154258169800215047513784809332511543426480652416814682926530236262287924109066881795274244190269036279144945685430774007148584060832225234517908646601080690503986465812484799935771006288327512025893505728944655560453700565270211973522869453125399984573467177468425725076821131378870746619343876851938926695005359088111582778585366188416250931065378095276544933674385983852048956844038130281076721442312924966640904786068850777097588391416095969745200143443263654698363407964946461926838895827526593285736645377817924597293192479625184794450193376604404820198825330065684476289749646110548992143113299609760073827970446243468135330348499201169115437235235529845770875003119298395847574538282605261627304406866536722078783219206995456036983350215754877779574012145958761580500772452323513458744390808115506482442543264338396652542674376988705737514033690523809516792462265184652813368964875628912786080685957969781749654138187179939637782847427478599772395563677135236670299865861534917172685729257668869948000291160116136476406329611841667517978144167498765198175107523200278502069192509168020157270407404237452758034410774496430515782777786254160606222427523244285165581056494418599230314812193137630687756837028410440373866757843892124201173114341365091649159615276887743905335426861084048725139255960206376596049697656948633336028109457770710857698422580863775053686101194548686556677169093051540325275915067325958806207290576996152111633087653346180927525361029903666802838541783621506757243623145570729284367922627453543435325868832322236405146691450732300327860645789524248811383942836142788650477893368857697650899741785750007893196892634773095913473404481331923980103178980262953660576719641389843374348061137978840778860190406089929878540239606626189364888082363294313128736044348693782396673623486839793518095416140020411394424256651390155232245674211272385657395911420093530202128972920731983547608422226938787947441242076073435157964800741956138633676988242651382819725052005451417083861801187589560536465928493852968050502119850777595486299324026544045687215710369607956144411626208658151958694525886253407281072759026582943719513066742013132652296355781767670091513103068231394343261113845426883548268904285307586259310022648721329677983832067319511988558252299168559674182638375695713227749308544616640047037636382294616327244249506597144178342611327148495892324913197822513414015520878832447961336519427844064430330253741015368280779299767610068233725615043298317982164734157647524547745548764987217695451600487829802760275329498119752105442475090991565330178098819309707381496859133715057457145936716722012813958902845211332685174561474034079621334804125739781444728131217224508265526457096619146993406470830518745723898091470382940203594697167393029770519519678100348825277379175156819504288947472195293302352259210757906017708525161231213581612284897894131209340290314415873247313024515389596863747343972436296619501595422255814249032005598836760662913621020714280403765026230865046138179052806937356640889277303818627549463168908938496248693699776782788663783867777060020562838456854873084200261709214806269683164149704052852194283960072251233803263920540029183836547068824008283188133759900903759919533362042356849580268749662569179869288736070484941552428968933045245035318052754123428937130874576092602299658162671546675340349883555567611491687345686736104990880014964477490433918169149196038398886695562153580252576414570557450894522051453622044380613202044232551184734047943170645387079304280895214460229516094433401682625369859681643378893031993263395379699312601504318534556348090520667689290426392329394983085526783921499870625233922084859630758509114829450874455190462978414410285874792913263939897265137751506764469978238797353983737361860770153948378749231532142015497578778740673916163829397614256592153759277935189689691308564685770591729237900740101589151817646444866256856417237021705397302181764078370773089440279757061329026298769101956461803126622825393474319679628905596579248422790122194892224860237369959717085634117562165797821356717993742979607299105100373137817450999192287188581294500108389105409714485870124381926294180977142745013737655155685771549134150204329156872950841729462667674569525357349706232723699575687939166249559731755497237528767339246342086307787560340232230573662369083267544609938272144386546153751783042174853039380274523096122278756993151708219394292932115438906849662488537680241403561683012947233716774306820371778835297480547119912901590397118765814554104322087199300362858498794417123640587644017137191463999958852495444071372056208745458387948846425108187579689153046009462170788506016787266180863448457085998073673342142213909730784421240277191825681637215896906554617195887210103843973170140826592999398414831953732518639574626952869347320114057598296508638735432837601296707286195019027914345258699191137556072122581360887623923251906253939589848740298863608512027515031598487861806899178051343394921164119661782765354580253375140190031381642687833831907749166350538391111744086250564910311471509249215010105607380505355636760795354188103691283208550022258529544232088778268348189087615557912392103815649770015146710424737264153404729549341208241385127269719311506266388568715545900327440458444751069650804848408758775867773980303096075159022055895938565059460493457116916380891979440780746763320481445402256377656303389232950927592237920138119494064729026631000785029382969445526781692815476292565806816631734393316795272401569639061428012010822012545481209576698560296993672236707128908730706001484950222092000869864252320881564012532314324644662907796276895557059629648274959947146709271482125869238246599035168296136386542153597329992603792938952013845176642528194068928827870886198929571471142769383747538839120900334793683068703426370201406720044921151285721964799232853079995033385771884833964011673699136043187396541763614705020204017068135373368423609671444059761547465255667310718334566780668900705849373583513050660190048935096856291654844686777116761455450973911266630988649498865485786951225195195539437548673532023050815272079015046986820086988055893310537848085035061719838799302513360414283552860556680353352774691629461489694129229293592953432446022553836346678243951773055684437048523468205659331360526099728798910013564626669877015593847854514793595073766372615570223160930664789721522147504568483279332543664295038170153163699220468102776585707310563001266994776077558845662525065577714832443518022203763651127743537235874462758753150867424060221930919344489900952120494265264860754346421605531000492524606227513859462444193991826091397181314805610290338812586445307606066893029577577567883079375465400045394591448263531789298653693336364970893553692453252081007684275447761454028566991577314276631301308680977545981560404858230370324742276081830557691102657657788387191204455168283865910588182840019149375814593278377025066168725413570729079556544142150692815479260734074290537320760138485536009024080039983545873391907167263164579300635963202087871965721431406955705802828342427737777471770534651726813404354323135977040257824737741132514299363000405818731076438572279242265872237177983483680520605656782720398945234353327134285852405545158651534166046647826247851598831018791347778163601053587127581019927777942191019703175554631720430500214634768374472901391514275679078511292194806122346784664229642021705710828514743177962514774048493697518079138372261820539508136096990429295443503147915193408184626453056495606007335165757477133931457131407102483246422374009668454380908597439702067057156316042181556819786419409691260052130024538161477394011594256526501610421201533621683221743018755842591466198985462092338898049338964457656516590562801519572482718575333921993628767597247752415052038421105112787121699860980103157993126978256473017127950454334290304487413124891733075283810214377922404295218136861130744010309885119388175405402245947167971896335270577480003746027501558567946115530935820133635659672276258269359665699363639781353110258071773035586186151966101556211597329644318592690354115126689897507001624093153858204491453587193794042719129726237826469191259303439619833404643562353287747205046382208744771290632944648521632013627857999920661336376311807615156470961333260868656935644289331579999500167668144618298587096863018781943855872641980731040643167691835106377234310094923596024369124479063375631358644672945878797385239482340884536262306353005926926136020887650276564325399944332903488470322762745375852368286611602505060099586625297520658061113047628655126492732760904542156211319799317675024041721884724873354114708145919696686253669934436878294175906191063618780129263865624529621380025970896765311406031702343711202643157278705586588716548451081659973285627393064115319157867853383084834917569618217196839868017571465459405582937094501047175330064476369947302905068497674844895005094483415064529444424167652095353855322885594310872072090755394216277961208659751871170540921632987127755805569364836581351844292687629409365347758769026807216059946137995435811039263798404970142588776905656245734918030259808482176884292302104770120801474187290716238832764475554260360640258109112539318024584722671109909232996521177536360954228205722813686788438567029182971386402871774833985721108319595825812830732940096812828234655393854626363168482374054204526228709472128604927422701823605066198319608933894300210718808804696573508607121188417917922979998918221687721323511883263387526968837324316445742922204851873425286672640092729662752000154748588047202331429211511088637258760313032223971823055577153827899758047434793789813469141125607487345424033250824178022201859627965612852411307758031522227936956996597827198900325906453206089001213496156736092424367475114765877345349097944191012455037916963218857667106849069070790781097025327551490139071936661959320128473839592318223638844132592864135471226193379253947781436953630090516724458392825515740842466432813751202599163245756269152986886681854670329911784026555513653345116658683538171769380182596467265753816146620023374919773597035147400094754236644833897252626842988992084969965502167841626038321847189034142682695363488051388406890756699405693338168850938902098976741290047303046525817584906115464893156223938822568875843307134971172385014647928897652968500953788843120125243709851506931475186872522634954081892401640396481090913280097740038240018621627266705340762863764312300609517492104553507443568426923682113073046602386027268407620021260631746438497673903366066729487919865670620281937325418629836659432633037849325260544112064042664687757704058736303913299710872324600827730320178425728315243226930001630535331103047210369132985360779641462849548307075662995946908349417673455408371166684295330335535612836046818358134424806342455396368560757654339149104536987176874680245662122343037264059633463602582782659992833387717175112422285082237891536765277022026479539558015520094999266882229784808918846197374987787870877584242050442260402616142789797642128224579585866198095714313517198238431969456314255222317875541259031295626933014619927272199023303582450624310578629963929765139917099880748050801901853579486474940469564307959011193442436433872915697258775249464238171500813530465624668154695253110616311931550025945427629073013513728198021223863325541491288658689268715802542781385615333233928536873765783234549902987449476939462208735686116767885892738053379788239697472009334542838714104230069707518527447796357304872217255513595851192399152581703469843271860999927691247672846619200829380152585005215914225443508812623091865273116752520505353442118446164156256883905400903237624338320638721196447865325650007484305986977791089714204360667632937398307470492929349690508872933310342149546090368576335704392694618002631040891640239258345628756745776449941176463547793536192433036395289018635656347183467681331003664099367403910491345563257541012056729124161351549666508588079089163257877481472999243804855299472318604418429205982545109413241272062817912831228186681452961751664412356204885858272975717684449863849686176182394303428698226850122050116965134006539538710543852645713975935257778478175442696586116404911823054342588093099389183534300194296462099362835591460872731672722983944040994401654249101633120596310500614804347496748475220920922876975205332800511366621222624280322200745363055243430352839630672995248569278125566969047449287954355690666847344288220120950495299704306608171213977622134837761599536513897597545685208122465673999249628672501451781051697452832100469968461383318285254967960259069862254844244150726770658468453357962706191329932165138933523565898350521294873544196374614042891335003402516363148296544463497137032269566827959714295888333327924156820840801306847491961729862659181293791398132706252615070815391389876729693279081755400865294071583370570738903666174472427078684691307579373162407562424465434802784738963254964617972601355454985298245486656615756377937716570109176508007790254284420037593151229275232576271529455035993465241573979109528856708775372478791202359061630626218176193060172806053690195611638439652015662336868892335343968003403706958482041016646226013094803941992917687567739737611648008677229580920025680812966838681085073012192599815915708994905211007440341201475890793915073610178361033311071967629413129936589832338997536848440316458463697265718753935772340986385277431291031274400201645405991905186337753056415295828605426196038191672665706444288182363817648504702616707656163191036954303496371336882938424832414750997358206849987407631171091033866414749600389387671381682402819193949166826017888347436654712391163129549511693263883470925146369772536515238205420025344523869304963988064175866872310997245926806503939035644422081783264116780341332469039765827117633927339394071548509221799965238131607390159151006726840082002861841771650541189114140883230818080011007949740675861653842972818608309693823069760755345620410751423936936293163494397173889596823193225090653749495673464504792304660638750076971595305568253960472691906899896996438635005124048578069401728144255086511974512343656400492106836011545259277445497783487041006770862461321373081108758345655499487058681098037928312155005235124390867356486780138833551068957708556203786956056932137826287290358935923583570674690468659370616183423136462142113209110237532519844347973309009379813017573500368539935730307779505895247201922657198714046622861563430307342723196872353099540678485747653662966030745146712629271552044528479623844461558144107684325535353493764122259419071120792995886911427729199969087694716852483405448263270469828862897712179767158666503871930195405890256987752238684136366839737831337892402454841408667029006534178372433164162653062525920393531383146533612355186328360402013147214939822481021581529385402123516570045074091912758167151708355101100564719315806832415512419302460704564078775083467255727317250507940013960768721158305932698962963536877864472550593121056096185868622609381900469795749791744907110823839351670449142158873931570718287742356502128643397476733539092396101808472086456073410010896423543476032644606909944692779767611455992389277191973172213305997908515625271944420212733100655428992785327736886288601063228720222634753839168985922861584928083478088280784309829453126908221157443337572076768590736778024249277203551343081168435486437708612520884841025063582920484758725907714289991881679284072027384537523322706075515607193313913127847480479919206320212157040728349374004556809172839086580835244772523249274635227950626768875465761386926405449379771388009662983573911220769764316857280405063936333067178782860466215670097391124472740287333875139909750284566699881646918562922334072788683035203041820554103683325508451677046454117239323895623863891043264755481721659088406067839586920941669923720160392859804476066807792236801905244589497442368413629744686405933355805291686632733785509608026838595725793472902594634468395811673516922564289689608937891370034519519724582821769726164419389047304788556680891439812916178386222404930060243126653456099299888979239688879999480040582303971439402459803225632328018849299245821396714577217820307315190987052988216651850387826616117049077115243771568845742665198120583069081097223740357195668001191214808844986409875860966419172223387086426485104406936298734927100632365435911037934509915023004106393162937874327761008477393192027920794764076156875407636653110555906805071670798226146831693765792119450589293860313733153229336168304981274780683861131577315687011609359387509475421327373354890003616236584961446985403409504056565250162333916304828888230091978643913626608462927831677994650322679003625585483401380806132126691382503842168205383473188810429955733310515087771066690639519055107879912959845786886615610498403326026206760933791579283110851022808421790841747705628712673278664178502801719205466032927709607422567477745470058961927286276519143413293984670819629880872743749297216718941805996994474720831532261544972203470595341292944712127598048394966541838430187945268998515670384927933146574251760819445350524839706972554070955984536253247593147080478508169879095750781237458812720794126708414668865562269490730783042188160516393313168185920148229676281769755586976301955227900689845038706579575808806967928398850258668770804888652735594260248668222987460884535516326157365638840605373068495103344791428327026096191547149359724503731110755065082825560569497389269413233709790202368693105831346155216933706398793498570632121013103716762239572565762767460050014777481472825486823497953627385296267367568348640750947031402219702387709028119546156636213597242546322884248286864101646629938341492715905226598068120799139886911822678089596344809326653494406264076190793768518107001744848126422344233362797891248320817560266427183047636035615915626761324181120446295825133607182907431863972935350053341056857573130617719229644498836765052781134222668618372663433460063257202984277210008780102890678540300887649321323643151147775982074961514738941625415654282462395532408922741390893223207081209448599620766973225568476384774743029731262952909789145982990054611345646976218891264876284994974022385874388214310965625611250819043590592411139691721524206913198449951212920068399613969370179047299116718233584393814716071298155459759931380851142773555056286107161884590573910199191170780306476330945313237951011406088646378887098288583303872760841519321756201431066927839716941540922854780386890112462042742329498752277147180944480941320332598307792275138982919070774093658959142327895680549368546500620439211086812493463864093153138425509234595425110960919152677209715548538300788697492787344249857051573277721740757955106886503115664382037210005800232245224328452277683214645935352705394931075422736113732796573894181885023682957736420643699333377862827771793407605134269986474919908783100757075835646765309781091018867960089025898535181306390111855827153047874683257538227043224126893916935058443928928233840489708037210023907231425534968156428941154385809959108535138268539051090728475246496306489250211474744915405689331194836769890028198217557812084037324367904437247767532835944135592301847090591853129404085576850654034718242617854847503249563012298224703599493782385434734404069860111074413044229030484440174893995063361522738819106264600232248687806714414082395923583799435885219031928189287586820117794309690090360550515703931983631884822638251510355664276594171946974520728235659361217349567679345538501343639366421698243387707211249330598739222121605472095454849841971067072005494809638583245892511459130383219890920226192228675434248615430177313568831167525448273665384244324031466978039194435248288647672714844158313321179127941103422542104292079963381291968165720579521924131199138323397966517323011354023169228700864637373694749844711917421762801155085295350600988361629765194432855921129927599729223275424341137700752396037351986985111144064322586662321701631145178573622025860235529794549647851804127537394850919342113991887127632520900481488270758629871800459102463613826635398285173120310206089508530292271154109368904944130900720900320412491516342923688487612080023317774951115633507996728260576684230842592281593635614593515534269549097895539502548651547689566823131834613742978423323357065990936692513705593278822295877443238457751355258936912137417326031288814326824934074284536183411120673490161973938362274062911710409788888526947208045512362315512634818852844419971817375619029762479872306527374078785242875099946840162467060802345113963917451186523000463970016416808962616713394783074363056700467439585070338125389049902975699983420873685985739545026062299232531523108542859221098105309374498231557163306102178358371238027936243292490705101480673611867485113527982893282841677756934581377297074737356700825944221487540300972615056716376089668110313728584687250030925742233518266473635169968811654154948195502609811442025088612179585198402235358356237430496581057459486279771670725847656699081619480537499774708080944541402932770568719916317001561793116935967856455989285184829237171102336440456756955949202350606442148595804123307306547840255470212269211927006170303915593652777503046537995268360006827987370412191253886146484344025126165372097794040168459542908379724516812141622603235115566629305425635895794225103192114391126447868505683008847937466885242398271755061056759425372991991429304053723002757598465875757991830716107117375049162529147943504568907104758625499348455130003740216534137106736446775024789960847884115645473075683141256604720248335055697471258125215871614623611345533839040709410393797537688853890533830767454572806952312016637936946910146625775282369147567377325602323288112840455141626631567277910404648597264387512122323985560535324089842249451837848182190585787788987501011898655597251082493669784096260367234069168918574945650048938068550372422191345580352299692108013688280039725738161099832052207558922785611198006052069360969487977311415326154320288258974498715273276571747901204339524681601954509059350718824438783172854126728786053117146389104028962875409457352507546398641318693856029627812403891091738442894293011237349458895445030485205708978858273685603609000903547989642916368487556113438565531676759653025122203860871509855946532331988380413291606917304082410891662705332762809417883025747607660718079841738949432116632882554689177078130276156912850936638949912138269911278486631669756163973020631506443666832807217981720570003675596083901018419719622461492090183955185908319704163875340064959051750895696830573002218249577859364005919393069988631320336415813944226447747047431132252203461099795336941009701418909519885873749462594640918905233484335676891797345885029116000677487883592653613995025298934026626733943796200148166127256674048047579430446814236041307719999249456132721660374198040716035721141925834837990287377016666602706873832569284372576982108434023155697354178728736943558865578753668698495871067168892409375151328450896309868764009243113618147474130523618991238999063983191054576798570921011375322113458767027955788208852445900180186677029258097074319778422571474615446944328730979594828727892649013002765862478496796447373940823480037222260475279901568866518946657774012592038100493319933529724927962427936640696737839419186502580953820910623000334456387469235303318404285306210672923941468968661941838424949098780709751694793180507566273762015178304029181826429968551052317132979414469800031789211701256251718604800550205555882063225553609888173945581544841502033832275213636998293890799426532694986530513936243247647469572200085481825098367213849230202723750776540388763252075374209857096570741635451904088376587720994179779444529567605093818636745740872964288015875883775281479165971231220486317004914640614344061819268308604414453202532825352794989612194978079961254341601937021429343611055646894207551787114598977236637749079182432608048864654828124016946993445960563496508796938156664667763632474808374378819187133009664082673591681731432618711082096377396901827653220642614077724571289606476069988150445133421098807941578765280062161025449410821095128765385757481621188532613568023186594789881020263770067064072203661559011513313669149109910431031070489653655409930503687745906773324732276617066729773483426341330033453398592652164015705506876481238453485450540874614216641409964762505947523744667326034459804373472831695394638545337245204590026517310419303314868413571132620820824374518366310164925561488127505828107298532843574329823560492137071913630752146977853989073816219809959932867191106641831069761317610254291417638705311437390975752975516606325539209486825783300950577762954027160458450695758491124735650481730226805421621681383999693424206442058431398323177632356227400758633976396890313030068718030772717935775308433477700858380795540075432702518193332263875675711549715273633622684241826923695092847199046673954493072155037635631178180113001860435083026756401425501828464707813859848332497128080718007113273078180403762764227763979277680255030504039930838285782938559681824681782476449039845898482677066626965061326651244737207648901194694784959210288237088361936339326716049692987882481788053147449751035023166999385416089031711861317168894329187503384251135000707539516708133032764176693646453210235391571105345378764431776077697370239596019535869040683730564672887595163044550595620218596635688678682253523989932777702382650026488450115151887855486459969748068686326685861348667661279286820147583671921370828677956429272145626537515789960123029881564663680485516828370730026233200426931923815998204165809077796050108430644627023686480192954820804489414140893350365929674526036567328661883663205824032664035906330352918190599091991113563237781112373635510687928372051184758334232824985188050156338020948918988691386475535654412204681250104950337891141331887944668603331941956692273093801479188599108736151436141362805922948613487814182946110875147492362058862122415209791082052517966312414540577576095648975573702902348871075029134588002346328161313612524036221889790218781908174451460255345281218400375846958073813499876368166350441897145059937795475883456111990231869620575828802278824163694758956635620484377074062324746189430885926046095933043282094292412923775949993403083194553104841701228867115450057612204697912124915866358111871706944571484454087753829566167395030628583714080421417202376666418976743844182912691700785082627350075118912332650908126192918731721243350857274611610877091314800613053957057293496609124574349600997858441675454937013358304609200760625032186351713904782010290176508148235371418685924095264341322821219711418237711124367935756394403783753819877802997662970454015648172873249559591705274959328292404008681188005890758468429904686192519163187912955871066496672694168566792392035423732523469423726539691184284106733947746428334484867121994157936903757913744965156633470913747807339317412719951347296765337681270283166798333118114509549524305384905098508677467612367536881859467028771257662128678341615287836251771672737547344211666043423546251586866655742478833686989883937444544646396371892841115779838136672415776237972764133933163963481096151959147552242275031595610390378557018129794422806600836581352991774430533716113278820752697355899699567839271979880794077972819209693565674795752074750167811011168194347622512051621265455881788521494179349158057684667739498842048633490739668409085609758832883534340482348104874032949365419162200925025953691039190214791400729535563296179066211842183923520822035036990231103248458611134674423572265638572234513143211056380370671330696894087921616718766331523405487948431128855197209519541752003554681208123163238309696971043628602384885038043208733554835570829959262864050705653849474167298796989220911818399468388995291491753674843884417173713519539391921281182267062600586697895881937883200859279544188251449230467723004579122051652774646300808795415902192513497489921717923309860532320558462203755553271944265785446671249303871912323501529480901685342443146522320735473501786361000825353549486552455569014262438429939292641943042633447159236582993230191587374422119135108994690673692879729554240371025966425611613885761864533347474751427607781260735578444055289502638776202356965308050925329124091953513965210251232361424367234562483373654429975276283175585936775099462409596966427581813805317307149537230045102604733451593644454694781736439798082881186220794645898467143341271465672789037963474504403461319476621986548997688757443601377157681792669658106075976636373977497947006674071192148013398401486358894712100481881326143400710607079285383278748217040723920451176190475726628588726968608916350903050470903796605216901800424330885070840831760459606082663427960689978014711751993620198441017506756920337560125188402067277328654510527123826798096231278236916376589688865795294811888204032139371911179866451919915913437302457654290184055965184743992985795228407642492129065103927097154364283338414057438660464301705733532986336577223256081148401401748229293329728043312862115393879976141039278606631410636217479430681898601733517077049074882447843644412692745439583861038583279078845436230993833058262718483122542846930136710648356661591442162290131282038485823097199957977556064597465579444376918907454542715750752622339521373221914281779422798583387575882010998925296469335980173502924975476763940659675437802795217217697136353830338109521443018797643601177168374942430775470911753040388308178994868627520838801372144912900472577122263432003551402386516784466410402585133918136487979683497960421193912427137049575923122859770775677229975479968268357162949318130405447494777363418156688341428986598601385437512611456365279708328767965630598602512685780272626644460099256977867873096642237352741756418762340820430708485501863625456475933255844239189020870080695197649006616419318174440069983222747434116320160754692340902875839243124814777934438473618707660184773903823330424599175814178502160076788414917611964782166195318045943790009389372802915260023266741911808759076197653600502615841911529115282692672272293242383331717149088958789524974419128437448486894835432215484370216967705214390497589753558022602610858437769535963940051161192538865114321294115530015847840597009197305818266476472400322838328028690808522976743318865271299355212597774099873462636071001695112989405157852383719863277843008824416558094859105720638787084815211567135223070568454304606285284311680249963450269990598762903954073211998410145708070579597244554963456483299404054318576225422500004645385844501785781654327583556765614574214084229241284477892023339225849482226032861536161885538361886265737043787619000823635851325743219255468475181716147205685349296673987261734756264277048203767573638031953913561200931152852046108000834867259611122993760578583978046817690062609453317011102138075388693099139246137299420115290672319492176233042390591064631903408258226746949724776672276093713957832767592850892577258964653831331676325084393227303211967626685266753092503612481003560824927297172212237106498813013540179941902425705050692723438827678851158733896090410321982207873546260384046384046830743567242349663831045050661008102907060450979424997567109742267687164275396133498908157077367901045647005799084585935728368457852770119257404533242922969702029085575770337661924190000471667220236429867484027235275313002728913541597579299350617763180869916185786419258067100605814540318923632526533684336822562836589370900480658588479566980559071968471490019510944180355525662818012461175357340384685901745247094665686471086219012867512679102813024423189837511184306458154622605916543214682467464358001975893098373507627120557003317777264433561327476175000659023088430687507220870989885903602389393442935640670748641517599929096036287242542594235528367549817951082643733028288618429868083815913019719118726617323517786370547668602318642764590103631692174682394673532465808000250352764193826341197485412974409290003918598980688207661565307147763071516313843934863562204788950195410478132057567973249975926608976829550784974599052139463849874412129367801026915193160919474755109270665950628937249719846800888167564248322648746142122205653561664461744123444205148423914159400749217793232856190154568692350743588078912674853958652076611265112507161239480167899164273347961342344173933143610994750309228889515180263520135900468582336748258163611921341488466315793897117375796122717768625841802470958066079841208512116542203843866444934349099783989451319155910789974091081108697307749023393541129016835148372798539545552718377003672067789032426534579263851959064755898546041095448701210887680291088933681473470860261388510757369882475589971839951929175709185355121097191044457589426419957040010201975445280846509526910117012426818771704336378807653815445071803360909835108979233294198486548839548758940512465531140357431515782845731491157873796474736691794315107988773194540393903426275981255638950351266004060852774898072764506852921601658207079668717432157603325828981415372621643829075016312470822647516558149408753169453261249123924280082715392667010097709163292809062516204660972003564675218772240456480679228137271471982751170198338398040824718297425189730682324744806978262001289485867019215460999578103616892664031206186093264285722563897932519683566578879549667230746707485970728267996711051240946334405080000689664447906280345003526550905888112975218086076336879372114726506934409748671576689927735600581957699566466014597052733428481788907029210219007975477151878129675100347891313626511210515784781267858524446127421945588315808127210110669649952058907236467599671618170910627793262252479386709875117502116701233999490125812821838853456115808171076514510648048522304943537920989785413017595930884207832854234575242425285222913834281360582229643938981233607058771474293864067025923704836443187562621589426594221690073084134692041598625585449545010890743635418227793530577239927068488281259036713168077101208816859472110998012860823750885346077004522619008291736293383214600039433762031599477574895605526033189987647425526876138533454736839859197801290066326847039667031415458466318068835959928012000826232485726685917355470783076718369209751074978858736953091207313494090889312571715162076697422185358352770920856034445076359282398039987986517859574134465323932200800741806158269461086773328381832547335193452899309273887904144837912455231910425416232626689678259020038923785979537140127590594936932640804395243047962512717228417479310302639416542440004182652877984661066849813688630713750488284999806693105378922073102036819914147370399120711276962232050227810929052456052237973569462471899718660004197736655216086689672798264435110389199732650139626130025137821342268689116971345481387159990884927647825410151674735500447879122324935545997802333255934414715012791185726359274988217865735735561941471822225812662801019070806474527400147682189717376376447625067398607691558132085636246001526448118279223981672119088267617413032819608565584011269243931812275474552147263085920723790632969597825929262298887041537503105085484348629515040503598024934596271819842140252772835891967399793328059290831238406650345608125811327644583408865218093216518007880500917726434034879130573608956612977949206045987586099281951913678632745498323335231209021827105345095171353173772166640597118890782562632964419996032824897400893636585919225214114996268985142963440331049631857505941010092682982699126364789385183187839810601652639965929424568826416882693649708520980581377600844956964422547884698183021553161774852525486856132411418872701460133761457674750824173598699878515111209441264772326134459782184281461180903775981606823167491925329079723002850052776637199908391806360752043707350249589685991344163938236572213148932763078761803004911096779781717325966414144343744539655335525302412783685482634787920159148558266103296451420463027964177197917958989859013156240594666957125714751217964551036100036338700815674419434080146944774803466188768383006903557448932913896024025889288191143939714817487350177509541360275559667437810557174083237599165416568802951118544515138470389371067824051070773914668890753056778410809697889889059200846183807106043299355894970866533253654217437995553892022042112978802675327790411288219488404283249147301847299816009171710186075329307163875363400249556451888519406182658176039317994566855657843495102312561447093283636397326923625307762669710904447277184395096571999748098012531438624189289067229590816289020230229365147291471202227487043566382626893117090096689706902489341951864599944826129282545863416620143436143075653641158943131609129655662036608743958175176723110139638641302180277804754841603891035270836212760582687716501004708646916862375971263877900856406545292907126934703693220776877705935096847664752476498829621040565639847194686875710443758171718877881993924216992723391720150053855589476940051704611821075067395392292234094825314780492969637741669334524434557716216062994638917955798082934590564531809363454376846152172395103947607066121187333163113944533976550505111657520228826660748401828696718155829438412493315674398656944689244192861949459921836190702984045889981779591874718727046332539281012725428650506436010703722455251781518427892545240848209666287052598751641061442237838819644434837971900013213118502134412313133978332886115759599372697367301745274312661242849119143065552855657262848002768198271856939183754633159229732849104165755947490861571079632547105380330519122765102293631548648411884146678576354669015422357677801278106290906250587449818023388239369302465607204936357533168521210283749786592721767139607539049415856964379097626537076627964033680368468333745124235480567321887820310306177092705129656121443081530692676972960995550112302348647269483013293161287482820590602449488341759527126381891226892669613578058191739542328364668439127858247885317820211586416429566987852805361663729033283186344968702417655996283399714839538466555431193614697886118058443346966421246730138955680223974454359896581633352898237224361395458161472432124451888640090663798364062757839657443267321388861092928542041985209783368528413292846999675912323323163173938689393023703395261233951887283259657261547507859325659075256120105632315622360195447255379880504501256196615037344709527400490853387692358248426163184535774911852501645805176807845986527351405219884384604053632324744358101270590952941530846475874626608880152908790401622931757210966448048868971685417929211279225390877544365303320725812698393774049749021155402729125423428734854782426955041444026105924574155707382746845680303036083343648818262988264668345786654991118063493183073752584031492924459694421469792150349549009897558916533397975552540889281103539489823129592807295889235919533394157092969730480792804612790310069745325643179559430852233094333621627797389612345440261350419596840240013354734942665497106692669811832960744462960032872387365398053309640815983088137451693647221406614132482841954861582831551374627554779887807106594405793995658661025075147405464988196550986359364044906638949319109794366079200959234962654960489081140271225741372729524177925881175922614252727328465020708853182268614679912351934894546691198717838641831626675734382386987042233903802941909635358368294711788953972687205888851437708928628233463565199637744027850363442707510908636485391681060945998991905855908670494439510759388654180604149520614270193906095114412755233235926526228232995351243598330922132425204369809003937900104577023660684057524178548241436785655532970939716793014735833058885136076845969591457382468077277139829818634965878035855086917331638074210109962103349185777590596747089850575036354647540836858322231032950105208658011298811895564793067203707134984406865121497653567818351939854581864128970057978500520338535502892537327893329292114094403310112456161991946182244567731760213702307440849389342536100752513636378953329308354419807422177368411572369232189231061560732440536522803459291075577542577737162925939159387100558273035271097497701234302506869091936122527905016609928975317575219847565693090300290390570639317609291611644295465373008340849566431231737645944214992042802677159980535617266640525030473168942641028880261979871560737421778418470633439103456735556836978634861738312162874637178177901494185190592874830761817339932321215988960667800083517707556656118106852014840881195219452900629859397350738255575545934177633154874260889166378067371768551654383385938941935946608092519530353360843454266669559229078222001648544966467722758135355103172340647290215928587801539063892261612388461828060209739908435331571588281022190988976485895620922623679821766172877096506182610948491375021214215733756732512508868618226792549057796344832336544603313293337406417393371188521995830756725026606054706611342860764279364032162259559613644478942012323857024121460145449259434988985840142388385683905024492588404500588245015108335224652558302423155119477821067064484844863814284793553628684857793983790508886583804559189693471937736396681284435936464676743584063245005604226308160191259964902147242109879174098377478282800770967718017967912567334772326151934289277649094944367022466262514539459444510737351516651079210320212872429845208081068795207064919454321761509448271149957465714152282574525039318492197656811069799172873636210355939457164059475128515920621675283284553065577806353163895036933857870071680591719764577788116852662332235644670216487883584529346607966045829488552006301609062980181906816984996390339831674065145759981847471631683730676383934326112508132141158223934703419968852226269930113391259457081785511080003838168393882781415592598361809041332671982403931402719236724319437132046228225762394662309456654984470036131837841032172541215469118531702169310980799750532431171277417634309852871694803121538276080984138780946167737063295599236953014970827385385012194750163721620582260864736341670997478012745055955915170714028296234148896372944553948184038474091564235310568252866469441528130313982629959222026244628308394140366182035596944785552311973679325315718483448355697355757742309540613384634303853844055481422894826865112305354593921795883395185784434798186977076259884486070209753806858974836175087353653912342889718422790924528543641933269411198351429587232649834725281256764176605121708326466908801993162390303909201942151329607924630397834004880221294700499824383939640503324601704918064937543087777783438351467803040747792686686737976572536113660398920761305921154196741631505740740096605260058934335140047678491827935985672585790590072287777843432960165609976760551260307299034489746538055473723933815638220035532280159770713112525532885641873902540372996892269352015472110411966577290584216449061389712105998546407631914606240094438088135208512173201764081753193737786872520300840729935450219218993622383602037860318443558497481252148070926850626239919736866877878918640301774268528643505841241186605209207702090157184720484975458218435160687163080118066600116069635388472535988039380606516935438231291126554794799243393981138014115644791528608080128475022943247913059114839983978963699868104294982123010787923855934321615547802618836690017606043642634589100803163085880020853867023550019231020826144039061900971737298732175397134712319660185475003056588909048285903094496634511631432559308449818320402844064726766016914550489089243052270969269359357171195341956015202956436482610105854665315185570167187741335041862504749640334754052730155433289366579699317623215233918312508154212650330315612953661926587721038368759185602871018255016396536403212974970459886085475005062050915887568849725383920114646560701146614975165457641826987242567534214096545297093625622714394571611534524853577885414038387991665922513732655674491123167225334493242930524600548029061268882448033371871103092518453380737356800819792571431420103395163281859429364319416543072982365549000520468019958274493943856292930371477273586383841166221783797851942642051770590047510633978755234198655292599683400413086581365612206116945327647350641067991952816295757528390725304934649076060866486134036916486329464487103183661053939598529617185709109015907795327102533410695545352337444284787257547515291609186321299668485183478171525932018325405047573229393162202356466541212171241995010541148194160621854619962517952104035581170772014918186877013146751877989555783784137554434276442830868346667628114060003498399012382633895417230834831344833418027656874628426283633485638087863295813761561240430076997655874075724919205410172694135195595189215168757291272832086610167909812237288476915703574886985996669893508368208861856202920278783240075953838286146300126334721892333248433580638715331959044300439277172463484138213421048596143113451942852849887555528106613524862153894445191650343153920691451020857806495842334778427410143037994209542863608642435570362390968765748749057190106072661190672467475272362269425752667261509660455500030224013146954872106482974818999000267559442635426512695092394555964800064642793411343029482337552196517428424302254206952884050271393037329003402719244404066687131627524595328278983047514917539010112400238609867125789909848483442664343521804987693735805151331210472989603762926092933874804525735786661887691627720581821945260333066900614493156509691707209800221222655767697930926066581655785589678147056992994999867605030991454614914150352469800409465623506588361149781164406928031957136226731906765497742056086143131216144434116524020057140844005542475983135991169123472875310277123578239705386840779966813314993262031209266658108690073382633433430250618313498885961258980432644547154086265065811537762691616649480953608591713137835201834810935324348225717868477906080076295199951955499855685290607917926677066129980297530264073511824459892489905518912595255615741643132428496281436404511394557198541850079114316760158833681808556640247523988809974001943038120579123929843495368980533827826154354017739213537082239073419324761847131042402075840250832375593892120075791188633970420018720605595715932881133311943051021075747979709372346907561147709888666209391286952931331077122804680781103447700832266632054795761223816805685324555971877314619703696284250213144387167417222200037727119232711046199211921817988358964867747545927941934477619998951532117421085926048433179449388940370209241880156127422324451630871309575608551564564632338273897253814096102593817906832531737121015223797050600508296953305178183275015840792698690287469655049801171981473149022224406155856760905819855217464706562315671873718613779414724649520203068333116515175766017466987790822250164651078891042900795496517486424675235518029815891615743528462778710168156192152296825702867638670267689749557186249357786310659695338333295045768174071557177719357115719426900556071454735951095804167462470521394959424143723797241908804530118591145971574683007133213130662463976892658035193066989514406173553200759091219087723077896290542615190877243335624794704195842924047252093959382209333067593084052575464263855997355448020119945983620018636830780522038216202784019385412465989728138369207485529439094106106829862201356056044267155368444843537735706546304878250903099119653684456897548179538918697160265415030734989624570201829831646049753820279565851356849383396275806001767920476329550638650742957714378388045557979766312517439983120126246079334472925398593419163163564922253547049008414477946575633386096885431957688787275719048411821556809341389575940878907252761591192072994466955983680665225912987225181928095196473739199703255114490163113664487276053286786917909022635078780570725220109812957612264465563540396684766247946304492479827277675865072387715313022898235008793905033527788791910032804550807623523999548314609096472385874370301494759137081053735133300824983759757124514171076685349290394372328174037795951685298128263434835440401250072545660212620506841447612546644326000150921167310606014271695544306010065880095230588244248914856220451303999249056216692669214306278707393536016616389152302290120280294486420872090309230136175455398878336880057439566081624387441224349310041317074011825336954669099695729907173377649897693371654505515702501177713798305485785924701663274072467983721166647318267214846416923562032108475307141464592656629677124954462561086595880989920074879844602721895321398229404416831215642333466942941851484615110395766794676419766649849483801267267176966292111121722333243017291129467994697840837656521400870165967831720940913136487943900328518428113124755626610892570040074170776152335237929173140661654965204293706334365587605693535248774893712047174915078628905933273260755553350354431569234009297036229724273115009503295920255849785602262704881642121536546327921330824183923648318830300500243742079895296802438685753940841806266977224234044816600582765099861549179387633191631850648505254070662730354796592078970997597429132731133865066762805021906352224328992448536419388433883318469486179378987648841096631117196624961630879747433856921144334803546450364824059520516629554192058295549279382514561851873881191607323364894526804599417423592253828630758869343240742221152730268001556285754954137391553090162288789781636163069157080670366328454104278094537908049326162869096637500295556726892747577164211476705448163627847588667303383536704658604899704971802637372267867430937612186931990949797377008850431973383481607775195182807671095101648477307344497414480552634590872382183692142503467956602916003689739754413406191853801983752367139252096465233725767110601718144016837806107922874677934669230475341241595049225700086607228204841672768272427830277823324167359721491582339343885180282360354424591737316964719166211273682739344912553369310224296568221154331917314727747104951338459833946543276854746165812568985539531462617483546559375430777093300659331425583508805553568726944615017193088528284471402470602276169908557404735079091895751701726128666710745939430791833930846021400375873893418468180844502098433949899155305672709877156135680865255073221503238346016053126226867267424440684632749135949076774562649182323138523095441871285508145554260524239661322411317844494238201120717059371922125209945948485954791018303506860777504114643473466414905496378700406137187088212121736078338804143757394142684652173592320781840996250975004599711666975796432890998675334195505273436386618715747341744811894372888978942805710001687561565378419395116761049131541817673541290241013512162983144396386085532299378921474544422699790463444258826263566261066782784282993621253967241280434804287745631553672766807497757726373758737482940883099029141330662285757289345269611703823252515904626630441943570309826004256046448856025166627184634873061310251644546273745572845534989476326044876819071297614684831727045587718008078841491610186056644038512807757311592218941593070042349132099721297268353774293972363919803709780205310724096451308383912094165504838728249906446389928671321409846646879210544109772335848155982313355687872698567017409847239220508802795886028253742800793278156536529819114035808317402665091981890979618433997862809265676379773959952713760444632288427679666401762104492966691417104036007048033556861818411226257989634519413598587720874520673068400394167088183215725031285458866763690861716851487499020474717378455547776011733181072016959860555322792240702783609861275455903118814719301439719435365501079742971628218887452345877765741793046286649249887115606072785709099070303311942362072545283999306165025399173527735943949358087011189854907519231087753808860711340257210495611889202853698515503370869450846757326067653768133835108700020154621792360542103360520165258725345681538204494890810923580763183564017623392345867339404062268335146168201977134788659271791754771045660712692225039095753011846189014688899062309368940094735092899476511151490926112144227067440312757470291920574144696026732873930663976277344705065933975703415209452441142829162486858502294245619378792178903524554636663536324890256335114564769789091986115380672371238564505519440515277208756099183333295473311821707970416412647055502628955459742883778699071572481440918339336552413432458001711064473883820050830650248268666569122198562805479081136780445810158408511273223052457683626423461151049905616724984523252557348731042830054194113575425732370295649019507867727861055438093460454555639522577076660499492691467831897598457745815142190815379079532833128217256394326231383410880441446711820607548127192316871879376204722364960174674797874415802120451023415007451208698591497096247617364249990349128572978782646733171272815829684683481561598629700053340151598507014648521619949617256225176491977116538380306666813948451571377843040934741769157137641209452085184993419090303091910268223810331150906821105951012383692014637518494761790786219991704383515888010071085057166936567013062201487208178479558101083325762669883546356466474198248342166802301987570767024677907162119947669558720929738126525971221286101154331810482504193447398285082586014037050616483873940355516041725896355368308855161928115231575788330691300837378842528865016901740015116689066839378887498310188807214518049564603768945393995093954399307526571691475863345152318055623954963129331449494617304827978233207009071450733907158658732144641315401127324152104280195187642343084050781737949659527720107459449589668679550166774048772682067497701880171834360316264295428720167783901023325168102729294035331033529986372552569877673648426555825501356024555863803072623294324010203599540093498964645403093626120823709423483044324981537324981608588345031322328641819310422687481460170607410643377993144529467583586760939865160600468872935916778613354646288549416145967541066878848550269283754480034915696926891113097109083429747592338726378257029166554797813143497866400652212339167502378007324209595906249978146696736315791111410132664777317098504787537164976335719149005385815716319622029370099732533130311251914591955695001831320263442097876311559970280439524249044419930789897543956268973691472787781641077973091858211836695456339916984535826213116812797609642120020335135597147072410562672089202392351347763329458868374604678798023223510801754501868574517124030702245023906421929590991921733265803108182692521907345245522780102104802229842473781198225273698419709594711223186365383195265416801591904086061861645911377228779684839530495073445150727808223460053780505708054412519675291226517405689221489570410538640065764332333854719963899446731007521908538618173859809845711163410406955397157924824692475107062625269336159422906562371957513360320362625348364827589448863520829332223948573165937960712321375438042131237360928900775546003113693446086934988664542589431718187118104361838732396873957853651503405152873074641016973566236908734946408874200158436396553435740030437600440312096962115727968590415402912136386136673522756580255321455832782522693868164960200268174163655216171687980389848278355532651714199944673441808895308480651029388310845866196358371845335549168569798038070654745451744520033220571865076580665955715311440057955073471008239911260629947219626505892172936505183690770592360506829124511562388145373516206169544145758180418766841287013524690795636883862432984981445524098059623463238310048724088319467375322587571267806123488116597456016509546012103799086898905822404873160561718406909169340944666948745924582628535675268727240198134476447423077441095649450517144826551053740927397210417410022779993717648714988844538140006589255750351094002632585933621715387751241012116744862556635448379209754989063531798380403812850810248822934228444110969411571427116656661727669820275405180786301891902388602175278690117215595965492688783897216999244349584453824811700567850885052312412475332093602443442739835255675599433761314861108315014260067834513350679038834467279080191252906910486226804600432645793854178393576497529382316419189311516459015837621619676077878636581435926895273709295051007717727860081730985304921025119213478591501092670378973421741853829742593089972909081375755577491490631105713180885798372590435164187894908627248767975884679659406259513293263133788778737412393403606051823449968093808942710432042222720907735492754547561892109776415509898539928691309400725591698727077819564406176227447695163662313331028769836322931693432665833762249316982488546035984250535363456465043727929212254801231009516828838181106930379360395012318995111739642654728020795062315924615804080773095424888325130491645079636939086819858034148035761303187939378674651760013718760411579607153389375505473021159245109172124616649601309442426201759427223260156471422830576781584782652892328899597102407016158306649646217406809597795366165682327468664050225316723714360025908251100119293199389817557744760605339029258325402632103771157583823865970851302976811867812320175401418182495655986088260073087228114424396227883151841830394995395885538448703191320827894546948820774816654987804801067507356159164172757373033217204507247813524138330512033332262545048161807569382327634774062852230394977592521667769960205002406501148816348635928145432008578621273129279882396817986653033840182761077447659945856793730244075753183523057278681644498117565464671731074504455850236441835442837964285047194015232631997365058419091232479308951527837188751464741076925051543420444547666780516210553230404074091628669257741810612203839996364210820587319838084950023813187562534925522991760012199822365164428608501285522383406233604524029155168447656461984439872790238390988043533245087491009562179036200464762773080573257365075749665239743226339622582409737909706198685883432957224545472848925670098802458402249111833522593990610366038470202289165911585674893764937331676784834939529471461446003327844965728465494610057801648433408877159399323735111409393948138971768007498507554743081147370358308189589296384352718715415453893211398043630343526820499513488978014954945531546617932290716599119139731495365889973955861171094683141666295276400680441028290690526289750698816830372824075881728664817859364287947874919671138495453729824140998192092398354335704467822712020045657864048686828701119260837922063367957922104664238200766653075573959476572001959287550041281981886538628988402663527682217544537550519890342250055154054885041089685381816532801892170769119105282392785639880843715337312435153275710083952542699903680734079906240427998358569483897970603959772063171458908956209351890009990221253413620695544241131117843318943662343616166911617165201181556302390526102921764787113687208347831212379943215828920945709154832425539802705370377970507607971763680386862606562612644012660819471591336586071117591804334906036681869936686367378875797973589247579315922424939243119151500134765634323666344574988723609886743375008720234214049671045363257447106670947602968828082020320544806047846172774209717366631202842274650770712948441659096919376805011192850494680838533847821708889731147986018388805977465477995971893032999769277679115348382023853133787610605759937155583191351705408289975825875022325231543836772870635295280427301005954983336300802062624103384570322229918312572748153949415599062618464984033857728815750644065715711627700895448671081398906461721884078186844826966063437108786335674540404565431535924961612764158605460566234628895905512768970763284422512177858842167302631243667069966687520416647106339924277506212956846137208025776774495588442960158224467848539306807372562078160987636762629256093172717021375075634872760245342188604182149516238093573639710190719409331796800530388528762289074131219927332548893958018463847772826550302958128896729976919236140099692185920584977099349364264339393325290513718239062746294168984239083122548421111922495058003005100618093328371891543594790351847538298316405320884126579804251714735921022449541857495751579624676579366868261427514765074555685157012219623458607519959629147324252456096946847491661117117435860330312842093995024834394764997145211442158324686749880763589003910700403531800342621883112781799948716440169881425083424900873133019290039822698395716546755259190162768319351309815728342456446948993302546947395243647934934717547558546580968399816474516373228941142051239199436025153501263211644557745173816896562877452099323794999498029382196081546219375571052768854820842010258279888043255308470650244884815126389703012068558503092716217203783997751324602761952913484315155506270759009335708301759792317725299968438911372362863713137303384925577510090738527439189053015698477942218898977985080478939224548809234310968973701012633941509894983098368644393650529154427123649423337814117496140011838588986850523881717884545290913071028394566528115870051615575099467256059598573796340454303559742687606092601669028138304139789977952744258080210502783274160477038351929801614359232720444613529374318387803155476603735908276121352475004075635607663999657368727499116199907115954797210054908133588135931285750766734930344377755695187117569086623881888763527912578959173088022379148205370420721324631289569059338071022549508926908556126977927198217867209196302563054012903330669865117889566029725241242402651075625922867382615360321949911402064548323398693526006157308824326813937957643737728665339985310528864090680368751686334991235384345903410009512836057934187766961841875996083624923439617772690091583061237155725503477774111200984610644195683763413396232300736567286196655881173145974063853944631454638306853168578343183212686894195959653132337556793956447657087562881002810243361999289446604023167384845593849370538031959315508260979281373704231076258936437816043864750030486893593989057051300496326959987722144727799751494556763080070984761031469211547446633597346411802414963770522291336964709207933545437207952483284239577648921723782622844539620504946904891255457731727478970739784420007667474022882858761330964288346787901045653206901000742929790442708781971064644981885521383073507624790463278321838351174224610714731996764737953816337578779864180929243008388961092460457180052320773162658283368960996154690868827925882912651326048915170241986666643151512415322596224996598122456510781314206965063247767575838022303857719995192099276513282031583939956116682079064458945507436193954434316138322339930130063676971256009222821867949758426964635669540107877103328903472159690699037630454802166900645939004512392449676756097124897853326027424062756674865880693220085631233232912833344262705368407319904750750596391665049114810655477233609035018410087776946833628105693602792242624470706832986539498234366298527821822032156043563965444440625266938763744657908160759923528663034671120942186340316319083656116629281608321759589591608713388570844795157742306759545700990641564682315171130263929269179902569642796244083344658150415895945583256996815599755141527551908487488777632820914063961832344258596497069250565839859686986329697432372093739136169074565276554257668407755679740027452906711672439826831536877296289370295531689599182543716656310771802063693785746244373755949827303883190417371257415994178602282358128251751344757003063281982360474170039197163518195243427503425471151606436788530398194106118410878181035736194929344598698966151859524237094963930712279588461504342171163555785502619335494678185180666629373349742217190571925127354178343420084498659995357281680782152470100758841012630922324926560302170143519742180276767909003660605372888269892040236030677138601278507057321879274444717325983482912585577492413173533693441942499002142889315139186748969025742777352739093330988386782140835732439289698975429445429987370678672658420597697008602481420986999455195663760510428567098306015453682041193600420960125303703071986525815858266075042874795776948009771889328007664161815497746749256336642686535000911378096959405675592229757400579594577559753602994285230040263326868552093916267605932330969501152230512631601775406823577445958949266433299270975610242590166739794556374506502291768421008109514736537828296513432291305756751455303081270228040555042691794472172865445950767996509157335648078556050336165012593808461777500542235694059530607658196955650555788013230894529005872486163741406906206544770733540823072296448816729050899318952034979234820792684163036474857879005200829990120748742581160429890978467007758958882122393245942282370532022806104073782335133356397030845794373237608091218025227569980312373626550324087756557673286287136877543875686319374573713893353199348931261434290935796452427442719920605111278289479852121793051114523460097529659515606222494493088854242830787372285892339299908846051847805903350489417662598500885080464674017623115192059413619070982301003454683429257273214403850434017191732369047196955123872934997292098098422898347409406919501213626502231965889370128783327998481197599993930620776807526367138776781255994130642697729446977206223596438144675597237871845352480052073315957702765299236258289264128997732346531415223100902736161821448884247921648846001467010728388498807828971059833860528806567141059279296983325494306562400365907867751149300278137380832959036096502127053964433689285407836326693902211651437987739473038453907169080906033603186152517992822824914660225385655152336260520464777025303242853195271862619798763951103678218579900600625516662907047486522261376785073687540084900326702598881299338789253864602926427146588746541764932397301344444587850894546397455812698259456629751129375067524703318831058847074532680411552796613738827072689313659474181215770031484579670957622552054639271219223448302971057090351405314373623705806268028687805404585801266073092997004827760311023458369773848521335689605281838431737245519069450308077480271900114904429970674338771473814046257322080832774226888778772932788018828687520748654236344169937423646718624662754484123070935879614987512198907129823598058867556289040434328599919130382075398699961538565043634015840986624492592391046534190314531080332949161960715502892118239738783195803697482775000798514068998060440302283813748404656290654070760375217595200654976825453345275124852510739383341738798007462668274790040112606426623686193429625664270833386408816268040768062254755434041678974067353457079389195716993207780482327504402972038535256495105141312441006569643125192781330107171145473491685080473737228790392314982984862222806202812103136205972659369530109230706557554569464800217751808539746681253790492903079647810868774454882221080337447018509928145635368984413505241309190759567782390264273558019127290960970900745542649175479008349900291157955432380345240299889300917307106983133899130768214874365706637271386458069612843301269762335909876877494422369004431929558051923050863631235065704043344612707037088381351927943099977605504284924181930871044651789192476826870879574170715069112834811094079080227919189382094775440085832858154009007490592177019059556987995088581568409050996979904192481872810573834363829524503382254345576702446622443265500548500106872942203289193815879631270076801033415212133661275538843342164863659710828513431342520788953205959821948538124658452595278565830154809022274829410166834173973477782493715523668159364298838575244854401311395024831212662022067681269264169612351059725960353049911115762093343010955705317616484895991878727122707735980220664817104032674826172670694036127735684981241982446609987624419623646238140123250613117770732147837611291250104224296514664164594078372798434024784288388735939968919874200069907290771428631514884274333562564681452369092095807492614124807643116920225063383722173848819296790074958413762897890558651187531722871435010081795250121148885623302355073591395510412748329211456434578427942906237664788874152683099908100756314069976289269782269647574500645152411888348588250859949958863811928716274145021579025245482209488711326593675523420384703176975375056607783601076534611212919118846490027160793332302793283465278312134472309106085920417385894847920411829122253522390661714723553650070525253106308783926894780119721031974816523285792323958256575516396717101906598958398906639621669454407644211428627325560663272917068392496528040278966846956536279551237865957339332075931581912450511299138780262329303472147998254859128860954344692284798707681807780416377546020156994936518901235955944811643484182475786310609517643963349807783765521808243242392406155560062873486186481249242442361422857679291780379751135392695227630067786088883850066678727925468648479363596680266016698693073536090245364157280657494055522086305686141852469044761553596138707050870597000844561215617226180439533414344420117132955910005116798240802378730735613812405748424811092838359228170632720936274944480231953832159857089600330034240724443882389053068703976936010589049546089522451232319155232816066200186039859395653081149822759048396138906669928699361423114839998422340369818099986782516894564669562154944032702170835323643081537052291045257991978259325755985615457337572206130249690764932082860797893682280544841448017712575570526401570582068836097010629479828435308090930731363634349591614216646451011085664341418460474587280126992883349849751524025291268766551906410964869259019522194958958049131499438609534752202219554268000048909713995195719852915161294628936113993664343629597932631797776240201513402497382950055478873150792436921395541869322091116647827107665833099023301480103088512447516061993316548284409741576972919656996741627061811966513743499276548445383378387701152351033268828657555596804199848483991043852485053924930897257143798750184128275665202661048792647541906198939235443196490903515082204000305203811804453183092522242040806546340320258398159321821053394144938768204285136018043324126215221621731850326724238824221773815352105470504233500537117025981921672977562910519810232864707981454441792909438576466375618188803136895400974292471179689925076396451730671159223094912006636482189534368882832506513510530337279342683286492455152208959254070730553038437798992549014612934787835577362580903476249510900983285150745109672691946203659452682764663534256324227792127044304415100805020825645072398940670595051334651983133835836215220537303304503130527664946960227636002789279805965386549206174436283245225186618535007482230975925400981263075640352633907267466120891360357365114789269086767752670995260087518344242203150091232706108809428854078487736758842467893734144075184489744034748274231828968066658716397713652499917763258973993733830362684426032725630406742696695125164132300753087566187747936823219941674976988175098542310002971170663998188246805597434505094107838746831158559896674159621740408275970413269600035184719363434990197600705318911758756963705755359204933208864485821717853154165492785029313481034367400429506686978585667132362945193068858240411561624706051808989302496362840851908696053800639338396429475437906881367546832916140008678225733042767789655009213995187248138050333930249490050862772644240854355173674998656295733588325367961910133712979432263350921880187484347898732551798022562896498846085792595284893321107961056371548126682103358982404868924231652466069824836203888631186177628570292649105243435387089962451244526462548431473166036111581768171540426401230347638449295619346760893644122594360973305360893262282565619058113752532390154277621820579709443998211124990766583434395625422332174643140045036571655825600271823467917264087401733969919929336929116693470734015149698362321937499502659664282600184977482129986717043324413202756276838566151835689073314014830844533288440280540869690202319296476381456832196018005386110807325049999175300593919136031260417965803900767972447722697705320260632431080385020846869119190700495682919864962233187210001257581468699960304017791017858905498681638259954020108002826304546048991367612160167904776843449675400841818995928610806605962461344109479811066575190707156132830393089073542143813882417211050665475060248449960115933165883580247018762187028071334644778020885368594801945009286525708117648135169501614833525804474724120007706353218135578434470925723517061137709731704445877131936694494485707628361507536599378178587034649692597957701393544762891562303355950224832388596414079779593892920183877388417875342937933086933623128727024842196815644783663967555330724104682872750031710807547179829111759900625600933432545548526106093771963004308096651085196677581904310431325428897284201690275567082238086528540057035934882722642955219504401144229604611520760075482282645995452160034574282831994141612903205721818497314665884177769176332353456212585615691303279210432247615785621416270281958279809810290844594233171149760364443224095909312552949004659580985887079525915666038802828056129491285082627429467295677621234366382619474816407951109353673261358685716232761481071459421430974382843400041501683983165199880668431137670306792651281277120331975135841569421218569549013868383501332494736444357990567746470855243011768885833081096303293476788128699599299098657140097509587404708514553547934094230597239233143290864357234579862411923633133070976028016711679576814756458926943927938907042933784021536654089254593546805881500785585354452922450458552827404051311705071153739212476584060824897589762390174474627025308833489298723545730110226446087947823019169255422485193148224084291714115634943533581008645279786440548495383783804007556444625559239200909257424063492818036365003059048826458187023723360620429721312589048650774019812897741209764815192189955813835260328498798664258751996086315496338656687600356260225616326703242867833265828590284297897953452848820740589532785000065472026371958998385656608729208828653795811576960346490124777747936719995542690953838128911974301637382438016105706724593981066659591019393273734881534725360273858434558420057436701017271447273743883957908357725064490153103957862224048645746194012434977111513026193507866513880859445301856343618681844878671416230918689369900196000581862207698639282456242377937353683024951617137051881198917524658987763248798725304072409585246426523921418517200329335748630949167208810951968864889152288095125932332094324426059258168234220069927216943335316489373118600346699275553615106588334776442181891750699224465951744477454090587699366079039503962873174624294224004010358259203183438770589153877557705802400713669212014301097584061453017292260815656994923563920730925427307279404660229906449366739003252369550644530007167705113289651777152034445286271584349929686394096621167672691381919838935289135225654925218304392021397448762862371216811955403948961323427791890627866205402993578566489747382973730368384777907344209286866420576616311816936192648762236405430923890456877013995418160558904040609636396523233173306695914331822636829284912313881998659082226337976909499998959396682795408333694603976465217306548592919099645712121935118968710379486236738859968959500200188557273939776460019171677111673428366483166538177220261147183180379708259498844668425850843472751648296417566156301555843647404378103697587956127337814086283717832868531944312177434783816733966599816469075735517983726896135612398075761234071487716514910412746229421792230276338005584635733328554488939482341901113591930539551828473414370122625185547280454860027587391251677688499574921703910442079724869482714501079242062720285016425096718284085175667633390854012167906042526385664748231796085237494715350807911527175293003053372356829142497632378688478417931787485529518100627788047606226576955928052244759330126566413181771252003755978313294359487357358426795144885970540044923801041906234552715142403828370023195865493734239798490727161744644391577154527614694814472314739308889346929477832556039890695762918095417894674102463145292548441708826104680902018656922194569704328793760375662595284718444136943544290892007433245917564255629002994241681463664823970978631429513939222658616878449922910057319016196390146104575690695153812004017185473213556025267971596860735446773218003839240955672629878444873480650272857775091007120433194308721172519615033498002337954843147892478492616920890821927168260341431685374908520820319666780667394612023842028769770389123707279393088598633394609890644665078530403041335788465533313767278948764830311667863853838477995919099282706559574445384260543208033281762212330228195300940413706294351635352936595326500775780155883790487835573511875460713188444480371900403581480666511318859252915056623745720785744694018906920689451205391900197680717644836913454508051384270397162516427707162986209985773480865883140134668927673549733596464217650708748884847150335156831943315027384269655556848287431973625130410253609133112283536441215096067692770124268323682904868588045661768279241290572928911433495715376053566512078410572572915069177032990104864313989953062764416184984514816462527350972508052447447573084429880394020440550889377616967837743900518179853114260028552494612295877298657178243313288978123007515230510988469514619469208479031399996310144972372952171201792090187940024060598194584615885488606271407227175315553400730705302648692609577484827272842954794162593285357304635104740816616362740647645106882712311059729434569999669518688296454604520570554094454845388108121862883284253313994281193390117973005407650511724813140563730924196585196834037225269468433835713558178048117089698824298671964724252061265585417248616250336664474998230209796805690339593068160435152572204935069663134028315618557950213035908700853720214571819588150199947221955586475368386860492255050408027017787468148879024825736627299693463810937630955595378373705007284290683607717420619166266487770411491362476389254545362445228543131477332969922549071464688671108723038892855113496258552796696327496750870787458965309313118158574044530568833115877689252256613619297500746120755745363994493879110844876009270776857929617615476824678147612866044572245369963375070497796510588602980061478876861703973013604884665045754807576926097866574300564057588468188296790621859005599076049309874941883329402289617492406640910465323714842669896054960811085421402150489418512072459589135500507602098237141993910684609087073724029301153623929215000819222716645292215540204809652337255691545759137125949338125462925189067162450584613198640160189292504226347552661812997389151431330787812409723748217192448267609373672233791365084497983872899226740045951317737235286772563559183911561506177200075088409891091413259845864525490949104077493391871885795356777720309453094618168306036141000304513640177619669360398425979289582938510843407364530164997885736121617105957443451183780324858211940014967958100433154152363107974323006194522026896634120244811703429445798327047662628613677214946936239672347373739756252143702533208152971824417587109588357525002379989141398457731184214970914996228507852727922891728882163224010382994348037833125249379907514862732375587652047522432796419977316863563073963405459015818456173870998748833546055414663385020802358851113641347603969324591413354800697222178636427732777480720562666529230289689789077473977640064222314899680722495525244050265957662684049247940751007545168343836999904274678425443877709832036520180344586212195259368748014288985490870080958498548635097856982080526287515314799608462881473769842436768855895231332282512101394810564931842867709026848314970851893955486333283975679175206473825358797462644236314031695286673203198871017146977917421772008241753428567475215339567540080674668041129925675438281464200924050421083973230014062538409890739898504748092458796818604617209236936010960143305405711477667560046443480634853663760914782223788541123065512599149890221611847855834063986252773670478351772596565738693808895378865806496545121016009301924784017742378419432628138783721474849968278430218494141033049921820345943460979834181384501197843090612452589283365443594208373425625024549901728670800821077051012135918734885702794048954251141178252617236066050475288873246552103168101975754110978053325133029752119427964629544772027933784084948310560329941185015961773085454083692572209569343553794214772578692858569371083961134200695493193321034010220594473509674020560193321614329270498160578421152457313782007707933463761467438081072711330906887227540947191263579611840320068939567494808957360186533541456431444859059341889566929207970452525558023734853895501203985053316230899347869977056563566976269656755864274133178938676041926712402370989550010044391646183540669278668035283890828104190866928136103056624519903723028298968723165562713176803326139264708405674206913519041053353497730937373059146227024262126705623038001395440565629451974823047001905409988247605247439948038709810659174486686362173428093994441725566191436834073534766965784677932233446636216556831431065216349859492945216030301338982335754342866747382004501258994969532753496345575955765678126688674063787259068092042359741057370320493468067703877398855181396760432984504488872578007482882641299797893074110361184493644355019209917462925602791393224891677005235230018322985806630235374728775645276173058624265931821496334611805309207362312597524019227222392764874668484861628624458344088404843413030396140710495689531866464134816501022453002546188064143803986741739221299775847460074146488520268866868957812134124346664523502852652835286616470684108024434103802257782455640489123775973967601214684945799839106115265760183166742765373232285871559880187999049161946087541733780960351411179949084788806438898871682297618509910570358396323546671844689326864270529693338986028052952856969544080257848418141871687332507992690848992444590504899468979751158066767455018787256276411690390935742321080541601160505401632230933682740422518856197670782494278433620703949778181312697146985439809850700798130323247563651788754104771199333251183888706481789547625543274742723963301122046358911378353550938195338810105250068858237545340949112682963780956774927187645495832783647571467854724244001078057644278071886483761732021853899709424821969655294424280506104294862347041482418773697725898382279756221571202269264330449435081146541405444614743259900663219671386411976311451827105913732128086328676183289103938422806023567882658616023953895901830383162020014367064675661134636354860406069171086755698608776520664881264601755655125863876866598869849752552645945286601501344031498515822150561706195586646978478010954992924180413118293479838903000709829620513542169725929511928230928409708840997361239727497451770176967309895750649182857345255595520276363287118249506036964000876135249605857969548937156691193384503053244874768430788142231086865926283340031421668338773259875825534649554091907862618688477006092018809780691342766081333512661648505026449109327618581509288603109092793696863147080691386920871356029576119252346568785431855842438178068783664122095438232397255783146993004307907043534179703169073619995952694242613018219452665637268771600112536945401274941606950963033949399491965124837870549517714216072494333032186429411693662919325712353844955506334055179671644576313948229366864888767747836993621523806516272478550895946558354112652738185863657919326448100516159478343781147039580386278379746479576606060694992132590083801703536353681051743145552507164618945841993617413326899190699754379206531317248962096801776908697892798267548349740525004569033181259753876089845787427333817929409137952740584312168428064648290854640499335020069274410265545511787639213497603778931256798806277938884164985753420077228558915576498498574402086011273754780774496714856286743641009976910283601348589078070056485669595998066632889709369411796586370085446120196949438408637614359604871186297410250809531429135522181590901091411029276123234353013565464311695547503622657498170459456785542465292858964271607052036722053173030358909884835743452948115336970719441828817264390631930613077684338159143205449273215502434421174413650433791583769954390752163264221382604278259249350189895826437400060785456085879741338317924530137032345044199161662885057792175250161445280571323544991928486176350129961872042831977738093525000286819811881647638441479975678087953270615389946783092389754955266636135002797696501480564109403718003461193496954883417848736291882024022071991377554496747382838339358176094932080314368332945783779879630186500134307569446913817575192929921330310173364963709934208796285158304895192729007811951928884855159594361035669571322641357674986913127376830036833538525509913563506204552716078525376007683980865575276026392462582147796654670477576459567286327320388400006546346369659124079020322159088110779026979129001768255734132833550315287086771336327309785217365817071142572960797860678874910838257153137542126022909632973213766547197642592141505028100233007335566944368253185305072859057318800006371719593252392095353064901374937362480410746349366574914775513104764715336696482253668084799159008199190407635574993445823816260874876892103892932224207787241634694815397790593029806767508263385037822797994602314652207266448889259482675331694528651172594030427121841560284048213339012953455036573681757519854188209003917303824005014939997525972243115474981838643944117722591220466660405879426243847941407674050017846031539729215446628218040331650191994639146437223227295287965193112336814835553439174458865714616424001185794403270419062795819172298570962940488822721175503946046395742373611096648456938139462516460139211466383914359753186562859727262067689048365016430026797844123671917163686149869550733557607646954098509012794593476285895088960215154967970967108975203838634475122419422749604017180465736807350852808627427170372542705225984483295063841959063502183854964234126860839997714030546321039458669918970977562239175581063494403830717021748074991169407244916512173722712843279102474573597205155039178061334950521014862778007158810912514870194594902574002825944540092185540644171728163879577935206906307024945942677026774052837282007921800108748171807650279656073059415120959477625969394666045004812808121967461671097177723040625354056052200190483473174628612800372087393683730774519810932716358954050768471201215191730423521770667095938185472250375598979546282223033580893280866395164491312978085848961007170894353910062405523399995981983854800345893372899966914684146487358248641448929264922074186391236184770520291776176918410980603154152416281266826336669420590315279980524919551794652648962650849707958002312108229462116537629764413529172516580638105505228286563476304608490194541493936227853342233751013647411015851543365899983859009035590714507900941567943725496406742737489109404736709274979810146581430844705032631171555674148297546683616687396277916399185374604754658842133464152165381988245755559693446860606741667237879305002369629087506464760973324761035512485368513135342133829497856602689517697548074193016277525777560913851719555681685675543574414605873943928928104064675105225607528584677367246556029553579510529634329995332614625098422002400354390111688843050707801960893286984278120638870658655972737134987176477724558976055560116375551318441021947615165736751808965682013578604106858348909116511878934138414095145053610453487717840804279954698251222981036842969757263254259844974475082586988400364349452694370362357055768591964609007155292046050155155963927349768164402335391457759664218575199450853529558335383742252851365266707436552104406431068142389557322142353988767330962041681234985389774979637333458115428007360004317756008795213273909783735052677251598619608920492396299840634411212507246816401458443549486253586329509760442220482713249553984930340892311992449524331608822721415245563680664554859632027634613547327818511799609345384158136625997199432992573766299078204916810182635100982547377053280468495152735749475917930952525690590164134694722164068226686192042866589856217641197926110289465833633755536529731695969136502428751592454881599836543622999689853201180171245994651467104094481731173757724180248341740038184709635955444448350539809042881610913856027289922434113789044757587376033317978142064598605713755811198122120989649105326114031611560466382700002759704160278181903839145773191959902792029340945457951920622217254465943300056223179888770529401077451621241079113810123087369826501682633189618643864995235070957003032090277935558790611671844980083462271937945409489061778745738257798524518608598766600925528718572386222997290244960038709865105367464296806145361243420637170871915617184229249239779977130533743399047137675076053286056694280081246011966182463012754592431024600062375863151526187076596991361193238517312986230344438729528985098869637083912396592874611150920611450907047081010512954170398096531296986391587281026194399222743434499431866112207006371127559236490320869099995925846240717011083328883490970829930250600462788605296862211655780088604941084477632930553749479894569203069493487521987559077477501653085073172167575467690911203305040299139800423413689821920586752002357245119190560282872173438836389627425401973215246996713688099314332604283165024358661609854011236096337360929131758212396245041226606642954757566484803459466331464892319816250780643596930747407353820199462826307116952435749457564659714484010617270250980959997492544867347393962664048095532150652383585974504910225587402596974845622238643423206055650323579362317048260755997885695675205273455672109772917069614686972118904721303652008355240797552715362874330079376403870035103254411446389327680787841621065454644182726109971494710638259862395263906817429836244242476930480840282676610286335314694023045936063920954486051302512973759920576886483517606405757291634892933768715994683013649228642689816668377980796393011277018568999090438345860112756805762632065897827621168466989531011325165630172536182377948354618564646090444141232259774640385010996023340821510596906864982857927538638528819899836914519392834722272767845842426551607818683804913272764847832350364836773931490334628514154373012329329918268187489816682406224272363684466397922890959816523097913138752412216998786522601135627410561156140128832612865482020008170356375065693350502102518812595806024663346543772324862946562803855300777719796274976803360316893902688536107171524211830041972747413060833159104601921705693739605501128202074460968546629625533895573023928016413286637660175714462125552325771960690341357982567193758416573122113829231567561667994570167970024950500686716312221178183425962665016208086473761051483022623611955042053662060124620885610530468865325007415462423082540694926467181160377852885011951864599960995467913497355491327524657344441167197024014725659659804335666891006847864128346071655756765559432641747145356396071528859800380835526636271385060131588673522023563610271005692828853238107201701862692439368845705368058680357066221568751996347284374341865878390960033461749307722873142070824824517320991470449585477454423478506192012340978919339820536402013405124476205235978461231703360769192564170590922535843044884485644977364315289721595692075058384006793910629454694122598996171917763030993919965203126519446152434761733044016548675088818526098421533212786337610545964318818827033087719734557008676276146469056268706287651839483834397123431606382313841843433264952835561297568283014917266101663217686238561320266507969061889680746032598859093824267510330472919295229726636915657324284156203699422698430236615049564335058806213727119421436910655673750744811127603771167186948228978649049875380213341709362940214280465145071206763039905283172901341289186129892234704216476843901780469398243553781050937434850613654060408878362554368930185531405606326068768436537420559124379669266688698054121042716945286421942674358782275417070164033606317624184594172282731389803622277489330850217513012932359800145359207286455056560673648346111843136840156926433001418549789840309730203718395511701893663274278995072649852080079769650175416089839399834150743864995282991546869994218183843776187059334288728419818483060404518067779448446598030727662947350832061308709850255111918900124252192073599903895857102197595607645948326312145066521388617333858969069807079281085320085378823119907480312698835047742766026433150157871841081930234122387005514489883077129086072412130227168970116785458253553831147871543382075825199858445833763090942775687647789834601729950610066915765649303425825034261157655485028570969119475561694831810640816137214866183281350086565120956935395671008503905530526785797988811375673055733807965844643415293338112393899972695818155704785621537194058553214406809262481504559286722424840200187828510560161977326534623762249730638864004381783004050264336861576144109546009676618991524094857177909785125600719302232364186032659966085579437038969927131555658552504076129388290749155664909230751505252979959044373312813070613070974235215717653501154871032833057896740831908623957066883984461134672684043118021260423885813372528570985227339879635721220165618324953510499160695100462549226168627652111876663129509319558143831634805460455511067534222710596920467339217573478564064656889066405424361663362581419492827668242866879293510917268297498005107364877419278835952210849732003984102731801509148817845647084403366999048651563960426541654456046805865161619250700151781897972021221980432665479629078199503100284608270148331323032145539755970937544033942849082470261777357813174390213161017380049480427649814724161512342962557630703079752890515621901377458065353311076684371604743873216084594480905880205952190666788228791651598547606409535030316689971818228668714601102991399401077944154312235834343097267225791394982146806801636710609838960757997624105497330440031025610963895491051469937145164752790920501202213036573140854612305726658457700426598942626764111206536686018630202715897755424080736292382148068477158037509763536976798739003154803775809786950960031913860159305228088611025104125199655885161104337531266423330232190539958561610554328145671692272779589445761606888133444606360884116641588937602139745425950797025099757552164575169360081467607342081070577762898666853162772872043735534734281954332627208469985897974346812673849919045074114641655948766900597697541555027021423268234231106970838936615744897586976629719513987404012982451928187480806168246077529396894816942122096320453796639011030078636422037345551640696198968560442246688741391302424435445258929535704292299295645269048718226644576276178242121735802380771115714039903861042204496872960873738380044134728045889577230294608538118625594184713264458845870474363224452166069675566565249102984783256095986725222153607513043167139032598068409163710678387877727186780919682343949030899405198909026152955600321759892648431226639381379515627315735996774192110058575056696261184087254372948700888579409479837942706593491374676229904102595001474080658680216594752223768340820457315079589626951072584582389328327392910165011188324512335873351008714327476490847349880332987995192202866160220549375475302337161165235388396570466787766957632856353066118116011987679841861868387186014590242479642289051621296395729391901977967663988021553011836706962921594634079696079795809552810051518949276699212458117671686324689246608383838165445321645663962875685563899165811437321108384070630845154282417075155010577785452804867862644453654788146007796242847190931931931139998391795331011049391861995820307506597092260702225365715156393767503690223456445575073584420119958925025207854102073662214425350104693476120181635821211101865713007584719821583868939376445587645550018185878237584002433242072124562371524797136461674850124414914787457659103764052258796438681552935816166897351040951458407846719444632567103825355211542382056371902777311482280361220301299313179843167661258717242820525532585342659086040874786474709083931867168007685299768283357427652573453106819519461770520303567685736778049577676280444121527591889215412698989631174383953561114855918812032326986462224313139537430732604501704228631432707962487222081446591925624161812248566608522248672005350210146377045648129805677490966795684068028939253853197122463348740879685384325968828513163848828834285090412293686460565946071616188391294213694209593542451610810168829198014843360172682303076532235381272685884092844158371226820463183197475375125465856541732240809466257610041413570436746746176232883741714396094021006504457745528705074348775597286849277895905535992034130657219276035246049562656345175497606643846249299476927274511569722305723167439780364433221462334652402664176290151425560927322693525870224274610034176533829461492505739488747344486079422189887108296203578666653078628730891306184969468780948979685752616634599820221277065245523420877665499894188733440075589010073600492177899088337835223408404863850274237427414119609349868382398659622282802390993700612873396678569295471565497793979321163609509933087163959906252658012360594065931466671570922990190552586893803800176414948442467831056980652161425585754921822812520704866616639258567755257213715805693449372789121073702669536051295524850459997187771093788796286108078568824805450502534486721689438431969183076679171606214381348564318242624364786375055892706418478053394434869884518164893565011889212919823421850468001077680221378842149584435686973159192990538915934285629380964463887335399808557633412532428858469931980666319631374592945060454064698901292390992594696433558504370948919885993506687871299903669548089602616447614471740507025606979231599250822155728176100009512922931093722930587588286826345833810155796477815206184842097125134475571246175453064100848341219659187879792152170425448565555327667516369701771043256314365795647518422041585816936736718266007996939957094099455162714165798632127871686203702694545670787030081099972426270378471566427207798903020387237877215073730366789431522260796360356334698882711141509747751660843771035141600269725418569915717917569083452995570232383301314288626090622871279740206794264025603851747278646198002879246477310315791783294988314258567518593588218498860257124826493460843279907923571393059459866006873303480624468940984938281047455603741693727962826122543791521404441890686565887294318267191353447605508939409086495559744849450444295887884346678908076524453326234095585750754974319211975247522474433729005166886903421079678632074855467210899312461528948299870793295395185874412819214288648851737389357558108698696360016704478747421980392749902741459005410051132439755461734244019984831596705352614090798319863541070636066086111296146148282965511137188298849189892163302528805161845375110901287910396154741020350371368930416455420967120842903878944540189840909963703972846015479219962406253789764906894247141155396343782781081348290759566914237324251384244046762809892941642211083598853675152889318752317487766692660237542542638410924267193838489671225681046330539695567490701176945289934976528082245688803815276771258558271608721255011579757995315005419045760582175279324065406018694127639064186638706705485701164594154959527582472250208483485319461665125736648114602601063835770109547982655886320121670644412892806689957121195836107255581202960759055604376204327169849898078675362440230735157036095533986905391617221182964294400534565435705072905411796947179810864146645381838711653842344221365621257736456441518805874204884642150085942032132567733444847336425110408975377124519154080424310469480632435032256242388078295556424183903863011372785994996468901013194888889420315484516908699190489385828871301593648632970932309794449166317865078625460832739620400918194793225498580924150539911635790373900128326798583690662608651157946964433718261356458976761030717867882555453690523192788689065001494978273604695160738634283016315577672549600178592687337276046124633853016576986771426296290912757945666345101320946444041651759136580752112454976633008335667358486252563158845155400153493299809901959118738215086286718214270675184862477079980245916802027772919393199716260387340791813842574978660285150164150514778393916455265570890378300757250314900891927126736030035940230117416952551318906621086754876885456314015398552726201073979577737422343433489494248867546441242760680156036094879753814679654220554077494910308661843045500622735896931616094215837030416325452107656519985560338832440119503357920828538963102964775390976032109657685553798220617650374610974117816763815008914927913771295514286313892378336513608769583306255868312260750770696989528894704485501889545058846028750700557379405148076978247414953022465266279504678631400679021170496341575538257699213875369360675250651425360918934024285741466986396018813059908174267306722657791739878908150082173439926310691358617306602166735907846178555370677760087450184845303354010021775554170430859746272239961862291450064406938254957187183510733556568760181779096775707102308993542681566302091654523462661911722765551608864835326051417302789575245297839720406183600366667483623469232523725062657546441351055588586281117765966375457221623572571638272748926179676260791182469655115276458437416902970182979094799621663064404497620671386890388192749144555327156072827037078806993607404366225221778409806975713000886389222560406713611948689403207024347102644965061259846847963563900173542886653407709095423543429049241799900034526887176812618144988101456428558698831096705547932927495183387347101459143903171720954375776933192467173213729806369306478919392347454561434045295971764587022957413986274121240425750963716741240322609550273512926244877043697861953869733395949372559514256833404007492023767619975941961292304342028335736562953257012277518410433594124728804763732981218149668236661247016954997313730223384711605980686997054626068255824337307398224329312046435883861705861518867725351909655651203729012793540124118671143967893602983484582434668411363472338135203359023303288366588972618020768743657442477845110862200333822605042587675101449358808599595601889984417490138418839965377779607604066679621775238039719666889792478943934469147525351119850959037079117709284658853401867513406746336178165553808231771261941016772731479307681716720354367874771016763184735760889540447382100277011666724198695579437922418630898482491635999271432791288115824056668073006735414350323758031787548750194859894121466438680469182168057382842396041244144354442730741380988417347676720353746156327347747304876312846964110061602931285537441675149008664091718828536696765998545065908313698254344144441486104069839593032738246795893247211009060958559164255389161267459041476876643818594107370219120955609414489854114006137119673916745371006793648675121339580075046501871858205083246687892072049655163520618686486242867232569957470548735092603477902457841575360769067024492453990795617408860141862303659211365883464519303612208435620500978089818418630983492368047172129016723566038833314980513322882354717132988316121291562580984520126761233048348997917167744066989412528854044865568674201142658716359514486319904247514130952294623379661439008462942030391243722272951997683158955087614113341635152553605007662668658931462814269229544307456861252684036511699882818706777697063068683878837018651542636525666803607418902910376556338588160367821158375563364966741309011169755263542090766473961760796470258808234667685761008958114623091381250281333471769740844666047735218422318605388396459008190256971595016541882305296638783810700692611008518229861694499663256992772168820580179721112843578166463296306309871604423213700514494603898322411965723427041156665868391889039989828307828177919150620012978521591358062917183870933366246336902749360150878742011329168922759670222457845275582342443952388743375944317723682346864699044094334610604198610483924034919230922749883737701069918962974702412083494583280762620846499487733247506729202299413096554548639257543211827848769271835428541206652660748581904746958460594392011547725276707579859896755755045946780582063415740001284836165453509046734458501424106731071582568988690145326280266449909537007783699863901546277672319640775958658659124281942638046005591824330276306657864061344631117949598480696736705516708917660446226612372753426753519977841650249779413917678116585745823177209733367974152215992005861817697946936671592321478018558517380097790141897553866909496758556571760767502672097003763495108082299353514421953937572206315526989634664370878659933567647086698898966105262949525693426946888047537482876080152027645890985390449187626680697010637695544076232447548170094782330357544143223362509983220518924886276045088718083014179117987849469017264344752211538703410952225246514712135182295204997215057848599275388162880574081614552895154822830853376557162357393121762747443888444161273964353663946451823469499218677866745928891812853100280397472306678408345685228632768405322395525157459535997023031938195989184178465813274938699050706934775961248314660805978309622314406387057796019114958135364262853073428770084140726728083484746290886133844793602908677538908169702820690656416731476453886248596967121700870042385492960119672477719907988530741069689880130726919771688682742701273020253675931042905199443968062577282082900994306913445006993200258483530650033261666303686626333971538261749082044087742775532512607317705046337950038684954189378609632081658996575483077780158923681061104950993839239086023700632998105986679314082628513009048420861134706070408519958116683948824758649083803064637985342185396014111226592733524887872365527990190033925620384468950446072616993771781877863266618772153579426922494911329069249980034423450492571348364200814039474765882921753857041223514192515992553591618558038626939036621290096479451316969316120592321659581274239013338978797852412262328344928430299427689140521370687170984444767329337531540564121153401640308191161842233634733205658505760369697582372830343415895312719177521454017566614654161408469320520924921534854244832155678186623939193597778953715127581185624203066964826028516804267479739990388236853916399166773036291762865067035560164423756605685958235632269513577919048620532326611052541013814569738113759190804258784509651638526302918906311648147570295387937346069166418906725797560294996965009841165066503852918427911888438753679411117336012215249312663386154484590333162060742574925706612472544324515485293737118740207837620120441970387703599422827530132159752749348069744715164427743193166185948661184566714938187397333558574432801416251434946988856021882583480003532276176380993134945018212410063097097949971420992485538365721907299090450512185396584217244861187829818495790746151304772235602194823944325195338287589417869928844627240802791317311074304176457188520971220298144433775644775929091173000304169225865730857367809272081974924547915305568998003710981147759502865741817486080394836372135433531555599131034216075590417748709492833687981769125086559477563810444207776779815300263121238943365281541489500432363051917047224589428329986663402161319480618673701473504054269860067593458371720017597424945282773129351482069389525559427006920423169896727924124425775336220462405221226391941417515207988675551797551896822756298573340314738120613443071122554398666614289942470388244974929353450279433554001975697447972525180622574503017546890228578562627428722762395394981023572689471036627073191322828595532859258997863121526774110704657800666528617123116099781793757488116429231427216147513815163778298827448981622149807982573369196880925660748501280172188159915335433939921763485225752073586687271081540917966142524144371208894302398573320835628214070426995816384139567993616411491152543912945361533868352526981571019802791683887835778030036091365376729791382068418460552054753581090490265050906410212868841248916100738901063501304066219289060430799694330538258782355024381040872803836006480199603171935417791385305881747966068827548747737168862895569186610446243192165209488523866789806095666347962415043708736091085438259004804725490825925667438478927020874812742805201659221180950436730447800098335628415046517622009849665088839243082211671769405621004928915409808171276064279638628156159500041134799174268896843071743016976952958330629541999729815324065545568375013222404225833212280255943687458245687594318986813548113604920643968242738887430775004792160689438353022476720756543642152159742336056053617797894031054333442887647399400886434303022652803814987439391717372516724953031415102654323747866062056182634489568532544686867236013655853257884064905836033970690663858969914621782023262888013858816160290653573552450100432003801056317152491383433974713254767888579586803400938219885015592409332545843587965375924864358428814810628600517266827614201217353147928071470726160791771072260621203916460482403721473590976880003554523280147756855001709642612622646053368369218114703296652047700769018882820492387128736177748972181412580471554840066084558568603768355452878578089668722006967027182802060682103342094611139809475200341341677329830448636468105727987914666236502667512407701115342938216705257231506323070801451516552601097515748237321930809750783082666934115290120725855289322344648280031104630112367114106428269329568467319025567115728041300129081229949761721552026152470255373511064692435166863944380626809863991803033099478486369699367210093904079646608927629125061588592885316739035205494655281577481119723453672890795675471573720075392341501681571083532480375162686992223620009711370274401634896347357373344590668330001454956810799329477741761270698736333309433571598722289706441328101517721760226821393670252250219852926672272993022380838171399126679638386721263557482480538041462966801482052557028709028747160106278934111941777992746995611111816193699409679831196157327113480029907964556261281271926916785988379908411068249918838931600140074063490888720247686651169644927554981187192526968029992634639750084457624875481281729937112923289126771392235139354550077831606277730775556064210119461028899000548085404905572680206503762078329852179270451537267468044269152529873522336306851490795066157858737260151207842261855226191545484525175541147878364984341788287086136528499360926703189482146410918925312817845297738098081752664139554259005869421891565385684802124743061982132150944845803673404283818449058841943592957187352058091418605572185291680719401018696197037603653462315536272706065189728489680234502070346841565039659838533767050826067652343739070240707038108971989234695823341733929634053452091294569093379261448054528636157921670194895817498181519640671264011505570836499903639780759268028730973182321761096012162922300082724709683299517817876688156703776903550988262074298744908543647690254951394568617412878899781273160454865145592071849057669854845342050065249895069445914964496836365818993050979127633835681429056416319269371551375753697687385668149050045649353922778774505134883762690616812747310521036624280322526912513341069961816053142494461435105822585634127795594375875775687395952178759536011652274673182900427941170482562739931683908488478124349682407279103028857943778037046862142965665566260461803410211498907087926071314842603817654972406175445971419243355454538527117337851669363527458047559363590863096305397180799144853179350855970929320746664498210488784829008461784708203957167765216368506675073235597282724357257677822900931014087413617529763768256889002077123338381238551017875423449893200557900944319094279652040944923710366268458519561459709440245130963501275650612140381904363610784075525187605568946811657437609297185974737733695441304116909938676987989405323872035906555451925183272444510740083905554200563137037143422784516059942149025944306711767034724500391821174433933267305687932689906855454889063723896815442931430964957774997407714598071858153461563259070446361107283158931590627712782052320036090527409710818129386699082183722105944800292618008599522040450161305459318527906670017486090859753337966940373578192217534963409127117348252939124711821432992934122236653568054899082679861752595711055327569639984052263965625492982215012468575172126265131652879620028728336917383861131782081281741805422413389335766789874785988197086450915803557917244264135824547756133986937449413932990042295646976616175811793896943287766822675065370464777466256057659060555486017265550084817958333970112035253593053685221842496814376177420352368594902409304020149739177182690277451223189581504332511446995464181125027204316463816927579033488790385631610679718591242679886893762120899083098728173289475525698281029411082469714890452842672723936595932845366626562525094711408755198765380061301843317761332623916474253911299738330242094363972573855100292618562631310939816720245012974593781471206353974192008334748527912781891666155927831092112395901179101462285789315129916607544713335104979807120302454364118390264660916656959742375770183856412044347472893984848206553623826065058477656646051014463711390330909498354460376670917175190241011687454697657556684200537425288695382559373735293474319788848594229518173066028869701245411106717845413570053710528148253386645046751470071626191436987022857264474267752650693625046203510543059237632687734566612681469776705489275834891864566739623845111629653076281937399260485451315189659640751711570547075693848037260293804888218387777542872353692713430822331082676173227020729609941009335534174442172826301438491910049762651013589051858467160044962027604985357061136784123199247994036670389720331709790287384120308290058543290826352099031921993022398117193725156299560695108356406797633752364948919584130042594338629912113488277365757865755813782612898366689814143289712089330413557970811992399577713171042061665689679891107056887890274567049596207701471586661720257392453392437699071683704962375748000388356154297419922138280373459595241145354870883692863091622993009776610843086688177647587455531585532241645403857969392981439819201323629061328828954070403912492793286346613516658431697160972026657608347163941752237599102871106078183072652709665682584322088090011110906918072776287796013299461801990409283600638140568070490054190843323103582606006156294377749724268020768633821688536731173469918201850269303022275404556297249912379133902092134811469110770561188180795505067476364832886380682248464069108108580976166738969569401472726771763013748445886524071030147601396049954715100885882745308456243690750214530461502951217717909895313934114176441429187809155179289319971586464191302472178549483269651696818840285321338796098403620626031311575170421629494391807603466990677110133556527660887918334093884099308722967066926664719769238640973790223319096556161135757452730600487424968855292489820732507078525736032449878163386155324085892521984186880429574619428352626694654795811558702904358713776209152087788174247801087343895152549273044844291107349989747536836739432568853112524349179073302375113420364427080376398517309946035710236291962535385274284680322109411066102294570577252952208313336555572103558353124500594253089440670172389362811201746318245800862926064950175512483086534518950072038165425228409329155417972793261035753993717802850275085922394178285597840421093141686861475415419252799253526763028306079860184140838442711171800707748400014568973469973133608018980200832195337331224444962571515262819848580928814755091229941777715511351340278543504531859721504369305854410034887727360707816128825504544829863081994917172989542171028389264617755796920050285620379344543165500281135170941349921769704422417705998570745968456080150974060732028766387751165925303616322759118129135467013209319908662051942668863087828401335717392619101060355641245935674515685816778443425150178644436694323757648356596411391046197690597411178711537803682737734518396567215492831320888409111297800995790012440898806012534665047540323584784049299251867597210341704911390216253192664709345881349019464133585310247970169967783492325757898806177603693807792730049472846506255819340889880754821042481409543631338285761999064791602078126880604640755296102845744295820955650643350141992609593510487823440290990377089907868806435797245569375849162776143142074807828485238063636398247440629021767201548434845216807872941532323534831207416618019121733204129200431758271457889783009084626285863908438492183304981815339710767385285454072533702221103488742548728565665142974036320855856771441181218401629644182971764938622350162772443850240289745081016336706664769898615441286378616180906102120297671849171420146153478154274099401278613462356634482372758940654802936075954739598596340149625548661955876639850639356102255494809016323963352110084574521725582223525729580840154721432880272619495787561563018048826874702884403195974890988107679943980031510703750938039040544338025171134327530730123985830595618371385322042135118755098813866645044886064322913546541653668684440085218704592748729564918462285629064853034313980834785401275664670340693167964327492660433975157827589013845338911928287177191936755243671360675478276546291923101465688159770255392713244737889575973224682438056176844531020064954354849329681983142441935930282817013089143962486007725097863544432791325446690883042600449343134554297756608259353387966623497479682358328881610702370176386453113764320249619710747688097899625633225740707212298331413056145512995468796960722319821108108155396735506433077875613067108502410576926706382440043274886334729288866395940888819408641966762573929891272208105758265618991358517889743067569256637292595115047335675657469784877009408151766213297007928452662625469288715837574240281412998307057443229921895799665358481405207762831429995551047799814033413513280049534716841134267136810225111176270716799348227473533225650186729119472807429049993188545796718341348964319530229076315964068549326860180754011260953320549520682952955686124483238042350158446548653076777339886595751752203360740746702399045017911960393348809547151644162473294563751796399597402718186533535408360738508115204337661677698272708648542567042214502223874277168258558535821478678626508998902507703503164479606736215440166308971759983578542819905143760070457811596566322768811816407941597143871104312000543207637938384692859188507891884278661480745567632890067288328363635703277824524042895253079735665219455492804871575519305578236507965557248016515275959885905351244351588960733954062915201658220922428105451193141681879284561375828205268345020818357785776801575764585321426805806503257370890361504694809700754061869170948776185603943456764904654430940914135241735740787395897693521880441805207970593134517431000062312548890524325756053422371990237384107500278002988067860119923894002155313103826921312181919200215951678289225077673639162222230220973896526273311857227243311474860115993018788701844652770836967419800337383113979870246279016694767416763351670711895057038676709650523701691226222049420769977393711731870582368874272257582800206550229400055869243333612695817180613753226879451941488929446612023455399849226919595526975446144397622663606258759910288204392957971325414792847530737473408964500427007514550302411062411684526300908049982941480233486084926586419374387323107794697911627449706421403223803716176717644640840899711127183237081151993909835537763589047535480988539518272986631885146234878208845779050893992394222377355245862599276212885326189354238956856841479161545316157242741199399342884991667637915797097116243309338580463532417562916831799767084075476931667537527840229137687375698425726875097711960785614244645547587011098644730399714468439180837874348835585140957080611439170237402647535710228339996106011800471286265400291739416618928422602601115365526633720762580440543866625627290784447108961613254697870262236763784884417620621186321239554409444086803192746480090419524929051581204942835006052537667592178352407295128918120607679548604688998446473943350932690361765567978573020132545910926464291743128926303631144804456746863608802114722135952602640331216403540643995574662751155231605691779835210466687722199930232078851391206132034127674446190080179752121123115948061733676267071040345363139458348881852879303426895771713397976512930267648181685199088150806209585428719865057561295766069645373145692548961243779173184013092577461753953860780199117178895235759751967706894056365499983469048451625168281408206648917305496305026573104667624635972308146393666544261292309349151189238765656605368742113290458248153232130655331391870362080724664456804024322350424293299763399804385712286246730213787111554902820619315028092298640338032745154805748756137359372388391969326587586312495888635593525213279468243155156617441456591001952059074600736804708845190037296540688262997118745225349946350439266679983227954951833993863978966319789004049538048785215731221150074477571819763649385241345876584326538311046536570813139015408591086345920010601310455265103242252891246079056278514745876822561462951110202404288409831710410566453494879070390443718199659299831169132875227766469169051488455311775854440873362384533739225231439868669147833307551513560866977513102109109769198425795090492254336263634970044919547052075901069274436843266070059483755502751795116610587289191177539468684202631918388444416454700666465051804256962423063481740309674423306563850161274807190170567777957348036129445747424616481595681018593890645397601698066563598001867718645291405915236925400689054858571153889922806802951099355225530313601885146187217080009436765522179237219021489841376494037977331396510368426338391914131935969284489100487991930696563763493565620226928623055546632633340382301945806559607496351024417273087758234024299369792434891367444619908161980868073793187537622823259203704450868241833714574654472323889242385628769098002565738260241671197759786615999296192898391288698850020583627584773652149295395076738405653172736144547942116920574886147413233002305435070574814784310536378610535570652085741941627801991422621453926742435842312409863933418175172447710955329128165163054506113276615557104155417264850236892978245316454223406366805719720439765974683985366456307986291830892996956348347628526763346816966819990812469785414153929462180373380802824703315607424605916759047769433993252560941074654810854625927717061411432076615847116608877731230462108820936456158377074612472197635401332721611704330889900189569735014272195191667384162352093679683793434469099129023550937974808729781298608759485988853862724879001056643585954160748700715256759767161885586123518118863091804019083761021775651671954519317608784906050144294001133769034713169882794313322908025103370774372164075870738925750766933048219697042883381588174862385471164206899873249493868642081442807186783010433498515329502631886200566327473183204532204488283148636748243987333526008775246922903344777352070106374812854430015105835413485486383250920588813735237622399117499861780484955149436405529060039196344316340305698756438884011815281419580379503194111409672433807676660696978824079165847828933833499174677763394248080604137966615286186528493750222855759089673977885419279147325301414491785411321617823371578818340422194872796080231715501362003359622619378906083085168965853898692873586780760862982632722090271130951234354890855289402409189517096742923951644160526094847176578574019332642731351441404886568778108959054317702359316994308464157433551178340700530808692860264920323368599818223152814976353591283831923985094872074169734234727050144578337314020038537927309056656528195761518366419840517752307980980189632153724269309122016400828722190494383789318170553689252970169882566544109042283382364227005737981127975289270707022952684160560208041935313977293192387874124784598009857993540837884490933715655148175856017463198305115119185865673647788433542672783896053500847138686014950807142805953647643211109039977619516769987745911349923711423094981142791620896987717986252184606779639893322666430000614579809128740319068330569064385544775569182201690353694201534323898854683179636889689753044902885857630745356541409105770883906271936041502716481532721131155741422016357113083047273931060858533380548161876794463367743896126706708074670709241933710288451572777855918494518304245339974072340495242704438427830758437591424558528228764006075309583094115168476099171023723278815115874327578775052036139085180350282311242962838123355813667092278990991103161712864426196807472148141862898705362253676576175280169189598834164382155368960030230450279232757997341814559653272698713339559750479208409581177956336839219177120385673118539793128033785812518862227256061110947250734727510500769360740817858891612730757968438213202810665078031450736047201126313781239279200907016638903909278528961538131554258878350460436362755894713617378464381324546296788187190577870186835754830127293007378616103453865991018563556886737657620239009382360183120619501325880081065825133041054215585753443769851202087446108335611159947930193883674857587534077635316404805313340906534834857103732120423605208901417267666880105471833259436571725684175125436126743067192652056315802230611733009811329269938534418983089326475327279670132007518826269809460652507351843149171646030880304952234357660757862390170133001574565457055435223069696612019810065898183844884262879843803520309424467605340192654686676565728409420271818155466092455368107475178383031157491487072202030332709395801766606434758185080905842912944185612989281415268330126745400179572750500928948687567716435243369704031130227802097211378239123363271610460950217051249210926156238571954759494127000586885151026057606044668060407676759904072465011461025225056460534054296136218310884654856627493098710977510354307224816562939154191503907309393187482150976384092711786453457568711034602068904925963411180849836176567054837593185223061470093251734388480717922982014535137619851923123713906904857396717053976634277787786415600714420184717555795439670213701574806303784038476163353250737153735932298241657607244989332877855554187651660179788502618438998700658442513755777263247832885755835533614661820296199582612725399079363236969814203573594726467839095699207119200020098601961778581128944261122799418080362445176094680298701919818567311696969319649893063672220603568078197392303137129333985251526856753969585751828521364973562635382999668882459594889518057068696690943675865967540339613694863184901483470108274355121782396122908739771269233328883128762612733782426163546495763293556787569501918856107729049361337805762382653393739644233729127230303126389034589557274657476828594435852277262635186545085705445330096325243016151105976713788431455653866336149271746574484543990737653670786510582420780570184359017685144947322583604250455638268161081648770904761304371790995702753628965888173236488438257586168172887948152396657091498335994639268314351185874891843815105710905212439102905173388372772923379667622250725718982852383072599518871764987216256970415616606877331844050018880956539089759470684874606986727805368186353074704372081457405308158920681969334195677952754390216344194726177202719343492723002726913895931025243839205103902694666393905328894965295298261567278334644535281796967404979535908772621406986009850987853777677372214306977989777948078062410499481431325541826517389148422059317484074765108344751867440882698238096794988949008697116220986383460562041972215236775507160363888529681861825157275738644065673686933216125723607745579341871680638329806513072179340230314988987883183817931532403975397975525070785955548850039569678304411600889013431285466261841978446334896094262420435271697021060872409193381248471752239081566919773539352672458657263456659181503182763608193731516291176986045044994961055525028835308002420528610353626130818081972842845391936878731480604808420786625220299073288781813234104487970628403283712125858690928740481423428922087478165347473543527583275307671620779266276975079262847914542085117948912786240885061801915182928074928734307834482043340040839902883024237282581340755783007021790581959036543153037721376635727599469011534560013095679811305783254846345542600846826227854705678930912740286831230006989339899982306866725301094719015687033531409992047389299183622331087685502184095362263705045054507452081475884819510265582560605778476465325549650161337361540792934045601296724397618348350774031422676057287849682659865068361439549026724350639625489611095559951219449503737698246501000610222908762303464200287894624778519852758091152683769014077643091425300125369180911848021679783876246979169739997422542900016156190674636983603468550312397951886473616072676523046229487364730618293577763111760486539566913984040846131537845653698504816573658331657434050032909779407141651616263136863105945824454197068503320510460581499327386204078933679253829022558162320592526961275517212737456937108938429762365912800177656946525720268201994513501219493467845477121705432232601949674347655989309690989291980182489290446690941460020777214489687647897364846075720112689887734547951227372632058126886145686854198422178595640246944835877774096055831200943389884893885722352856179671446478133328916676358988853592562970828529285578741164373652665606683586731321896501494463744681586050392077569900910403802256304673735714250403014774126570622924390670803218895298312245387340507210652076442435773372539842837222220196983185109691730207145751670908856919837767774251883050691561914997981969635571739893278805320050914222958468784546391463839821520862068715714595590192888332025048853270978337176575369485094501466461982618541317065783437733622003002743341570531182736972757940035109382352230141053947577705463654354799704485790605490526255715964976301937270225628584702277399710709124842200506346679484216466965830589284685248676391575603504672383110181725068273519432408629186207462571135724296036222255031177231338573877888458325430323273956902187337290450064079474354818020864715299534824078797637683688955828644150843956552728207825037689016121280022646990525052405448157234253607599068216676062714734333434718362790754973141209259058773627280056957748677495789559374455679398962454610769004498453053518788923277075070869313848361332628405786996130256041884734295013813425079816908803783532823204849847460339388873938434817445354936938860066206119216267312079257459545878478645595809284332630621713107164096953521078898789946180108990332360523962729466491331440525069323880254674494885798746987372499943786878766678905402184501960886676383659771449407962075331929741232397893479768841961993770056640416457861440285173242504750190860633537399589034853099313902753275274931863253241367701704937897900791275695219238384771137162800700054093908832353224620445895790486730134126203130615836725147953702404914042459599454129270086086236734485886270471089260969226054955166860330320766916809657768354415731424807680139114262551030291299903131679564358653460906708691576190022137600760902352309216613765507460762315058026985032672025471330644898259569407331861223228820056632041207535201353728020262822842154705300914591933380685783225305335259406628648925208917648480017107808157964982982383449765886588854722346452535085136498474361614320991671672989333583989688585078715124652464990601973650606533808969883253164146994319796295103044787263110344239404880280037870662444851023680867715822746045068446637357200766081942238667396373140665180366011092097117994375071894875993051440427350653051620705329796529741322675487989557457325977006813610119907085651084508129525519708172023396880008971067563559500569137215003823136954320638474226503805006923463280148564069639617726054808519716284345778760264700113906139734013384418620605301342175680707492273911939245469243664260838195107009324366654533650648443705288172859950421294809187692763562984117508757093485945002833856708060833748085211833841617477231926602836877309567256416280143128588613184857581005972678120214764022348340294710145508455110046481759026016163956278859468196944192693907154753145492735742675223095536933445654889126684972826297586915351229904988709074171126779027334542516691429183339233141707580384004020106154533708237021599720892870837791465594521471623808706100355017084781158499752744718826930495010802000359591863837435741174285610070006709405998263751865192041948661841401186665352026286808087340199322788143173007646439673872773285481033427219346650631938304122572281050482499367086872694595164421367708902445906810957294665392007008927570476259192957673421671087909857908361607549926005877391785591878681483915851861025387695076352920387313955825011413906855764983555406252528873193793288545825959650521068364028287782915885559924425862427533706494806415589151617552342784836340290651407182870162510472121898174270070273441737888751953557769842123157394138273640742950317758755960421463715663598451371658420191016517734016639660189255619908283691689650001951724837628023182204492888949869425856883131602826943992291745815825458635852214029190269155841512509593029507741911739258839788943064084677249105726411394581079111724477054087393247411182837202897795320130961009683696926159197227510543740073677371584669085852731079977583453967173375854526876147275493095941406827194809694162818224214991717950448741932705029793962357186928376461584310701335458574757254763223570534329765300860135511511902042560584507146514848065349891898359173553856532004807004271532976860202771210278032314519423769379796215156855701646398868143741305340678155990453104023985925458369623992947069760421219961309558334351700371113429599997042862550152130716651795873910679648794033006232108163349042346045175657061198953322641801963788085847219507604327409082729399512183867978302724908409316469597034008678602745674925518215270003972664594579456529963545154920204351046268033714606958664034751062805365168461017775270556563010705225537473732187787433639452349566772063786803004378792768701010237007379719214191660223593966361823492235035991888337221575239433601420501759687282432257500805858168756761550588450079933733893871932538870219460221363803790669405361561419306798721468379496954711290775563877402267162439407972318305346010883753499751695234505547087910037669498202270157275589681392464647022193862336850406740228980404045907732740602647382613240132083289915676776066390735384599651164902727164890932914840489326236755833500978062959791672203336090825383912615277198238547925919863053369087563502846646594984620227882901010748741066490130621272286102108898588269241314828758063700490112072466563501222007840319604121926488712398553463548396426231778599524345441769290809989181992231388406105310565137553300347249265105790135060315368184932702200111907447647533388410553001359882771674815217918001565755161736023813667465813400340593826745128878569301888266700933423530725457823111358613804604137042207022828865562631210944054410557957715023231233918800473174336778748637619750925955845238869920611264965670402094588274744364457906432938235866295555094446036211954008919674710396016779392546802343327922861063598734597244781237196259144363563045666401653913414374438988950317384237551313683824905949149591254492994590013426101552374313572140221455526711211225154231553162204928945829940863023611249181514247956784728601365679064809029029924414262503627971801562454556666372654863853943413475081899237084429738271012590709893871522654340774823648369161690792804586753778863593649001822277689578426694368127467513545651720063149685986662683303989522285562979106795181517671652233219308481998742701398900416345759851897737828860868516551035805553198363602180402026644961820874031292309818384174824231765371593002124809912709307278074667637111329518910474723422348154275462343708310157711609661351768885503243993506424532766402547812745042454871971158879195324860552555503678945057266065862307084577065865514562764543616053346460395160368587119913729224513323973099081081186612957147832806698879888585810135954993535205396617713210153378795425824629911248627796803258633081540330627158345572467767385235127300892665662828959869904195310597354052550377819204066116056905246452902273888151597072427514724642783630811504776185068910677521732682784228771994585147455026297132690190955066484765862490581759676335278194196546680302236638703917812975432399604367880487529975656209100826802695871231070122980921162943919875932039191633333448005433062353581104189210430459322909561635274853560959450592335690166056777630047753445645622216021296521812290647259252136425236626041543223869241117410748751782598975967882776056346928159239169125984406784893142477708909031494272841083849624760954111606870573604945297760957240900102121087444517060622939059046889172390814261382582788201419951220356726476222133543171013267269696757084767662047381250108175407884309329512690268149423431851137708616827592112046615552221976030031464458445006400635397988034218100376192142928727817624351760916914996480893535222265392418041502674929704579688501589231365763990773289896648295511500502985610282858446216295032646308559992271358730350283800839228120942136699250516923406625151303647325664143027508377836512160461297477157488565946242676192418471021253688569845572128342967056443345316100297949652163105351389529317907817949823688004647597013056980814133370356480328542154266024063257027266448587793158969311053672516745324751444621900548847377453097682559814818086936484540038380724142233909063322346962623995327574291403393896975353351787691515272639815664601977391876011430493074770504468120531522603859892059109201990824583488459535993028034494871043679496492612334946968770600767710672329581559675424980088458915856583574196376697284070726643081318421820534357485752243622862178654018540059661061340050172939726260691347849176295121301447889665271224867909954006881516073853114075071184615581139450884793314729681037207279647201522967714700227798073467764388408066187107781996817412132040071286452878472405339497556205219292662616664126770599356190794331911542994374652369207504993274853590581913933539203772021322601715499165921167516283532048509239891104423572140669508792818031213383846940452767173075055592691511857959894366274726044923213836241255026923760341222287546067698534629678315442003626548475850205903237638625271041150049226679663109251269654901556065070810762869595749509860880946892197398188089754500629956090629997024064316641052296615668929146777702324212589683534411307700442368377069648701906269973507755824180958320344711849209590870300525523204106061743027555035069216325550462538880760977663663966687154308195937172983469072244661363574887095541738246233686357914885833068162570476175988363428395293760228290076246262598214799702186645962741684869414129432202369764918257808060204565352497861950142911902459171018315947071499267673502312960500475087777758349921626229508886493105120884824620351296679483442339409709748370268757150100632105067507293206274962920110769899664073229316492699860015323276142871366673669513628481300522751146176471112211491357386863780540835961495259764362217314434121498337732915000401968337374388926852460910328670445088669982464265003906323424270097300700439970662386698767938791114992481279320972190389278214134593012794546067012081383588414436901866198366787339097670562881449512767598187285696424565267129354926860199987423099555491347254845344010423695512898972020790626380334135098438049148583781044063092909130079115670762639526569525332879798909579609786541194537854287870799542218584525114251887307979997669680279647252858402985055081937132853594615439620304032661638326559757545644071978407292065543652995590475471315315927783061512936684579802270153512153972852697553452589948987661957032205445914767020882926880051567568840212397321661928378447074088228871686239896545076009874860193602522415881945651575325533416200406795266443105435861376826194143147013682968886682097014709814725459499806175796427554025894309571502507004593838162200931099199815460458663838687866478416660497329639033487918376456776580461379884743090372074261168067500289309948219643775086048020028138496321610234659649052150625939206184116027061081696031098836157708375261091200451931416850784559345922810297765792919005891824281166101342972533496883555635348857117202990742575965408529979743341839695031761561493477758228709177043957862023179360161294114518342486517564654954570262723627566943694410954209026161750839890697423746203649454160264362908814731701515528457348375963221830474398429809568214953229109179710290565881766228756013704419268161013949213354387291302598848755982343249987189499861526751076183217489527691419489020363236232075701918213815712085512609929125981387369071831057372458971889207829272732910567407310204493085627587377048245178137953147268911964507561933089304802871098896548371221728735585124988753998173108164077753652188461622302448347006641588347888625963167380108340466484156727444956807240429360993166714218275784163436959414624238714880171503944314782497436717013899079198622503270910299897471424258836656571792477972656602210885723374463314495095814225592553789087603477246870277808295246512222258586946784025883122092950774457225852508645833230529244281006148834876648741796763785300242463596620193457192692140173664954122346941820122759665698649221693337409996758666412666252468068024224006259275305352472082390036039134290374748776102786477124145238943845842624244560668549099936405159216906597265975046817036596881638683360285947471289020577102574011435944012671802469355609175962848210194236927325942250961724913386630595472263021780393455480908817924770551446771457676913997735541430074595075595218833470912646049328046047979650634238662891686152725475766220143091061136324685906594166456584957193153088391798474270303173991151214071153777346824306013842857960935008558571328920471104796157604870721577448420614234834615541374773794295782751786463417509816908542666842495694710282797677460502091204300215380199582859587497878814179184777509005750140017823772031750791015283376928360601735661860054999262583710576039936828491516999778457212725999875992302835526556115562942235259813773978844722907359449400392926236620693059694186071719394933217037542264475357595245446811792332404922038193516102803513351629614044973131344347644266142905664989256333609038282710043988116389990070635254352332540486681898478919435343257888156786180504823943284091695280681875651616391771192665709458597429644504677148285003293673889420334260292903521808796994537002080792652167431515029028098797982081099770635219747203495201162935066605656050085529267576690802082830284048058880869421352300277196791197265500609125642975640775903973994619286556715884897132265070298558207308416477754397923039811739600234850064051039854718964965318257931064017541491031267625346762541773488141013770501130396580088739752675447591070227734427651491464965776711388991557668606840938684662912384477541199697545756863920719439019833076469728847944045356618998296859747485768406141524789286210059963706387377184796663931617472262233147251381869094444122864649373035458390938809432573756250087118424389184114909043796543723637786381451248656940356484086605713757204652653171286858309332133648623893879598087083085710028554651937624346941584001245841911521817281341955025108392410404499232644230057383853659060436823086897235252968548922820785167185989345256965616439959504364576874903463285496139974804206274758466486711356873666395156734339171609516118949028166048541537021282309639710425485435852623742745544927842182443621157676182479092473406629579875233416633253980387515623707033408080869269191903941813368249482535044133359139763894979621231189351743869530854806602940260784799222874041484319858639560267129812510429822878677943471627125710231639933478977578737531187291647080502622329013105183833525644865704933758776278391786790974139604687396892520673303233238659748003791376879863699216065325445024720599414919772140383432065840682728813692293463162747592262524555182450674439193056954942228367801737522327460277463092757739589243737803772126757805463388375373673282046951516840136739616165993283345458906520543515741701456956852062432687144325700917476350749546376750188381706192975657323828966415109579556208361188211194932897229375225259812610114429319284855442874677068980065852449907687657963703428615112374020227290594366891020759996312757053993703561318674018274447407596250379546144659997950640141190004768619292268307210349411829661156086500313343742687097373375789670146073828135336034750794335245934373922100405183619805969844396387059345569245942383785720272747151998934969801778673095053507038451867832047604607938085042137352994606403266210182146584607338509639720187393942532529337982355468968060428077712435509196020582490099554209416489565692867703023326259899997296968048453948924842820478805444734791183184160920569388415489910969294774780552015991855523771755985668196687808068559095578687364009490886460229348895150362146937958119348278622808381710109405409512535485421465243540427334118470575250001326709749079522401273480871450154753370567867078371247587411958264987589892920081445601095404979025613837460045465145914060902304341580523291071749990529845358362337545951749178113217809843346507342988879953569013860072285211400194263957646677640728742260254007957664650108971501297380467545333034258105614362664196858343873492596076376370584091654392235844554660093139881549085207232693883141235760394866573780002119439660224183061189221301804841318462678280152996905035409566924847892646476217983206490656760553385401296925570496788235305788106669851229279127544501633907744567966776985559558417243188016541745910471541743299798643161572509531659794466275656934798183271206320691609664804455647427769037044714080101708789068334044078062428728350385708327344841244679145171521849083650788499406274684917861814095836008447498453989129892748350925746841914908233085061483750511734971964991633088202565186716474072376016402948758552491061416867006505872114169901659599435459339098786508037928026317969283685021871601143127693035344963195095308398449736637366619524926675644515280409827465959180889374261637125068029028348112072174160474108887095175898543183516203418673414609984612794056412071972698344105422191704616106280947376775036168731285014538262403916572953638925912533284806166289793391045647124466910666212433448649183825125802567836839034869285264036899748259728329034896208973361187935546865286389264039235623636845181559905116442626979389680932147830155659458489223588644030971846031211422518869819449603584856312208679185128801577292530100986132081587570291530646666579809558058415226666095615338692505726121485103482272115432394205537386512501839768768135672741140096070141500662653649033847128720155096806189832386463132908094901514362905760859162200126634281308864826330804930695421297473051749414097411632818169590041340896510658328812127354787095338341159797051937638658107800748462097489068952132539626115387844168612789783917462471816233583508239396331744511247183882335002785821921233479921988573807309962781443700639048565054788467038597175481475265959820224784555357023266745373719258355978538747844761539438962182937927151446326988574281272487078680651381771944319568965593323079717004736759114002581786249284028952745358864283425433613120610511407252439986936231603536404849557409161189367457527810405217614952167090636875149494421737376531810437340712252177732819721883483590010000537988393976444633198093323453261960683585477882930011066576899552683500488358904230803011174172812627350613890118897499537813918172885189921658737229845158321241943158100120060922132937790043643731135222962864280823501044658450635758033009808326434260352137835036195776851836108701177562817839388704421169478339324462557804277718000615376342828368988591275628717819680445458109587726518206916457763146598312110094751430492948436183499243343783796499607883311031317506756006920169516957961573362276029365558607440885954816376767528743029939087871627635138684066271043537532007836118579927534997316115123718467503795369634385273664344405159471637390649844441339769883771218523204741673677099431151594238167753714241213581473791494750551458851323209487519009552842538686500243854167706364256176382972259177462770934033752170801095650936451690136705090721714791449638369408648954752610528066374533395293595610572848413365003657359213518367484278045236225716979058387407665588707750846879536235300286116526461528824021722349608319012206622522942885402944180550732740525201316042661163472167682391256222659122626350881231668597084633155137592457035497290461475787402702095991409197787941399203889959031923939901369105999586684805777971511064332965306720447746456256896222833143942230190027920622841189930421885317836819204247615253204049750687864040720596347485214711029836546948187706954025553492058674765370537317731732939594818687053002785430106596506947542660142093209759958472232627597206832494037389810638306377514731985193480850819915743258087419207957047862491014435588048963652535306173464339808392392589613404415078969618174490489446593359162852891344982545707918812607021583645346334302698823510429693572683543228534136343763841364439735765926733405641030078709588344101374335197106276192120437908058221493108219603536600507258246075535839029255772995579390794922441816884891633734274646739592835235487180163555581708728541977451334354416846870477410308623746021576029817749434256274216406935560579066951554600997362409550228919489211818256418190734533827039102421479229683110557082427985854938006254610891692369042815342513359746828333844913513767418572978212529026297720983327087725985145659945514504282621070217964192899954431558394282683539249071641381477904988444615930092707030593921483328264847127628763418727349414119506316770764482843946098176655598886827987936895845810786033857800835884812269999304618551852710069317522807466071702977978573179036907045602369553484110008938986482156275436205031065952735163443995802218304251848310786972020503114551035648795824545238886052880837362412218698231121822444562184607555900621984836407457200983514923927526295232699508585879552525096710357668194962590004538523158855750797623816665211055830430214971359738670999513350060843220896613310512546057694450169733327811488984984146343949497687719978683380584689801925392463152415743490429242022298782942972781369006577803817062630336688951751894022821703453673467246030320174009583048451443119167294348013634133063653304687696078157170964610757501566752315652233398273249973385014798235887779470836132363558053339392462781593097007481025512197017573643275825416150182680109030483953934521625886400383295851513542074449772725254061266323662585991238621232431389379690803226376276014061537339246257306629311974199888855804944155532586004367614454955739513369525013326945179450684439981582429809393202120257163679820139263397547019892196284659069007565760014543126018739355852060593475189483528644633314562638509370660086803347804939418543686887457160717737460438224438037739293613928881014310865243438322502855258156157507165062681150012428213267985459664801323289441177980401898727801447537213459763734751438190416544165389215168270196288954757033912225302277665517073841421061606300189847200134334160704485231819366410206180357438290362436722222319772439519085830496107900454516487569008977431452788176592108844084255433275672768640911129989929188106905035200302067825976828171426112876712976658306070194006958037175747440343105134027466711663709917055517226388932991489494230974982787988216080296176252776696021533609292638091641447704251767486261520666046816497107498321078498965983077606503900203725681494774990451380635308124545269435860821950242918486450270152437400681274093474356388389440686353573567881855107632352908663991164994306858557892745749274507110604403069908567371117960486226516502794954162981285781374864407100823861635771252909328981457735918093524565233046145520925833169015690450998943405491017182688028795698754622251205115905354913409265215397100058400775554706031104788203626897770704050216478984985584867093092010045568729713832131993488522268862775414802087124535693602116580992319741128305712664638622431861367132458493622417550912588903783053888736919582561661889896780382690790724092381503944817611922053124969402651363819296737817726960526898434581622087178042273594321961419712919675610086456038311414070810629735768043984447673561046468640808533848003500261707204641344664245198685811107443913508858871588809197234309076428794465151354523239474290294614208203351000174331682773125843400406392890364849622027041537253540802270396786453233609959703756272739603745332961948517433901933373251621104326203441752094217799956235256279174544618736084917912887800538986546623459651324360312371999028753629274261036432065957790232492094782322450967128315285021257234533967407746734894209562552840450306529094801850521196451147644917436729271715856685898614661040605172088272403800628731578985681081348789338061412231761162708559623605773053013030534509747619130538637752043823864014927930191023827897066892208045822700510159376390147352669464572375138897808350643137778261551465268831037181404971204623945206184633089786976991943014862480922721952511264481603562988127632124379394840050877393302995024286362573145122995007418138744375491659696494196821067725577455784315673044910702837413511928210334428820912201791789979991262659519505307226496986923490502040983553075135293058376154173794050094182166337050996297862218780794010186974156042194348685299762355715651570650341529245925417123581736181563735467015362573548040877316261794220150319936372466443173246398784701490939712656388832533306322920669072066618354873388288863496924581889349314835385797367386290806004140010675685205653096581459475756099955445374158860980882462445402129984917628856651343265695109287127439142215490340851594331826728526795701423285066688136729885474586576223269857620666062828448599566872891066987588228546535958591315898528828958894813697281529995841560380402804247016358043983021344600956287008333910766617597036202145399066333765189144378975763214515515740867776234690374232044056765276084309785189561415973836516811551641752809184575071084704611103694132881425488953690541809622021178602386309805899398068429049800737513521544417596503954040057122971165655532929183147296170946967651982082406046582568527948589886865169772662308467345895837110992326575187930409670338567255199565926535431101549749768076426378059968619149261831875279892238282910921021692398046819813157065531443739529034334165524065772384909353926208194703106519576907308023972932062111607552580610757881575668201887936565092636975158067115493542170221213048723028615845691904635950367131543819928147928809909170140113629471659543364632695340337183009946432879539819067565836033995157598463415336775292144326012900376277163635677863446433740561299907660260097891939990832003940252917967626860061558462678852109225344764032804598850731773734879826406749049354875818202273314602931604150830548765404597505792209630980281942367910222702926145277752378259135752733685297240763767912283116621342226662597524314744049422606364308373157530215925358370953410994077551292489201252440622134402340613416749820662059976348290699369111951799275774782931305077544775709035276409410496269870710638328760753449463172083193823224425893887827287422260586276176005825213279238415835039773783198760018415177682598347140570700475769667489813692031615572386210892301307477040740510600737198913804050811896412385162918977836935170218598593826491737116352614376427397197021607457400530055957754553937958313480239898619730103044518092106704602540306488534676383939832618509155924678473569200854580325076247299984482338514622652824144424635309977792418034626167230189979491793292267832024531570244124997144351703846002040554815526360620490151868133819911018203070377141502265681710702977847584173086547310734691117546864509416569346525439412278113317868782331171263700758983431351485044208271462436806749191913938162467403834165815510857554342076326267174936551775037715930179307648629560184760122713690727608416077721980927786038972592025067630468692905925746426239672182606404351334800672152573267060594846558097158528746496442356011449855239606811268838914307495613938885683824609487717964087745375694619471641787349362494490429737772166071772862196470414556560449601911555938371935205637086221578814904617115191020454616105631972453649473230313328115407606340794753177445620001209296727342992870985812835008071122725011143528424890300378138549458872280138520985557198157430545864318894299107486193965471075327891245798044252165727644482544848113070268744755565072507249738385292341364225030339692164274192779246195994435081618783445774861706940813540259998577660904948114515506846338419207664742296625948571457693311169190971516100747020657271396926783107789589880684818589832226151054948980479120663937591321445400820942425379534340884543807367754581145416938750447104907341482725438729831820078764212865280451447127110362196184528969365808830490002032615942113516821666760376546833369504739485299621427907589664575381715507917499596186223687395248922292515446930809310952038019223335441339533885906399483539447201732451773127137350570337878831399875027936066205302105176357722110044728915300027077655464530322626653255864820418472174524412147415435911124240753165008445102577396406931992397443617593705660005134850178460325662423201225120243545705839392169958757446634717250071950415000691448688390262501545312372340117998976435718812546407276095958688069957996878590793905014748498929406310841602051681301787828306002428851958268845340679549981337329099204089909631799709232431358989111441145314601792702215115278745466031464823673221659526916594095836110656541845383878458345469464245236353345094939370673870580607620831474317072277575743747239152951277807395101880946706024198187843395833716054208391003287556006191878059191053146921843762736336779380386044545553800338553191274924553746313170491183658788783619664872699408989159486011969442640855972683464509564730562747345651956900461179536928376253544472129254897125425641802442513526496153839208842429338246118301304323591523804575132175750367082161364935511195822339925663831108544187759025969743101927204833958990293137318345864145291233059468549396282560751139467002662841729594488163840337855204749433124777112174576972093631463734177348381235227456396157816237992321276809558839056088514437729993307840666824056412540393126426736080833584018920063462072742390932704445794591961562739835530743431873464255121247556381157491308031944978524176625881371365893740563712141955000133034189001920751455952392152623459876174731633674705484881990777941940563700593638618492086541123679060614127046283004944134055670002237014158567573238267501930002198515320277968735340548161042561512022671515625853670371509572941016943262481631104219690408045215475396943273988221009934799030749831140459549807922583174410115652079638714277667205684477626507587661846654235686272293275431360517251977908576373288108429207232249015206733711814051963509643632286981710302356092560060673637053038998518058233242774380592583290952235989439709460292569456059569052617881817303542571359263372853529424238777348669304523736018661857195205665903136508911441036844593644048790574981398485606911687982434475648463507558686153715731137672207811883780302780178034566556936263024321611207008157864478427489739940318680002889725848337922754109185485905110268540208946305674390370439735352427464064873359789071068802028164263122096415088919174093761251617051541284967831728710142889983715274216413235730627929212742045855524531546617805918489989256486302130465795498474319619266411212911851795782212500146622540701823970619604681356419491613888411445690907649573475528801692229908571778018908043250876038303230228456429367230545241862055998959214013287102353781153427134198668038617334189204583885876081567847788945374885075554209948992971404872864597680378452192501100654763481009244699924533672529622326318598698835766672396071239012525045623997490608094325738026437655421833269159878787278205107495498895848896413566896080064933396778993875425207616912634541511897611433115026248419808914692457570416649346458750047397028822963113482865799725880140212944207118222874764433494972884417835866762783492849804109691777977049957620979529252623500149464424651298325254321999147911924304069968597759482182097527109688470309542403418924755649904299020859817046942213487495532366125302221499691506986460044337758593196048555760421969250202090572788324403715544527404750182212144319439372207533797242048370639794981262872661217708959048745471814636051537883643281689038211981592273280513233047352894698436382855277085926269484280270873457015373407699469025403430374441152904409716542610852653886472147157185183724585995187491178534959550013505894179267663422640610263410837554241162663915120981579040203681623613332826009239527198758446271590648864693769147947119937382807661036974713914875839260898692359290526436375885187407997169471706463455426637306753699155958612063396082476859693269279438751770271183433031260859940156352385091012451226994396559292356204017916750297468631126588883871776054681782617816118449198497372197155588581071865592137747029464785826805643225538366963236618049846149269758738947967669592300907424438092742360777087405971813008923107049714069945333027149861844135734447684073445272393671995303858882521296797191914856597498932008567445877141337558298730542059886575443698029380081356067120584160426501309166711487442135734550034117445750628988435604160322026183097763194432083787940560738827511021494375873988121378930718023064957665938867419754773340939154962912121208844347345930615561990987218919180393736730778504954005819308290036608907043578504519424628143642732410354848915335249202613577551033173897260112625251361306579395550737294528547423096332950786348606108378355587188883323856721501884230759949399319929103337730702163375734682148167018174436039571750445682272040128700212051646140259536339959992138269533833962024596682264075688593077766138880526328588706746768063183116767051392473131856785780928512423774013070292532688612546079015151077693004716782142476904111142111750652907674762398343298313942022509292282193789998550743999214501718295902538768043210618607303078515961211244186056647375561925363303267416686559566615980953877871857517347263571875877447954768692144069603730628058164174799102883038799722778550691441072812999158627035286292133783867361583488169406159109626594356218313255959936886261429206319278683079749261114220849519360095792182103807028722956723554871672724830925363756216138395657549862453204074519109625264343974826361448268593150487140843183085852931911670374711400765933471630957403324353591734272094797043274596221003345109862307488783509246597980498416457496644759725497035138291047252091794066467579227371851179559800775388570196523770753282559034946486578217095342717807583792700522599088713351186970979792710169176786727896123082162556937364185076862935047009247554918971912262874783818600121168567540459645472307867672610018505007171831205635831329379495202970213051287340722809511475984934657334914072661999637426445550629284951062911966319068340532375998040982277090545082785859575757300232095171227454395437923487380255609679819998279041769572279451694893926516650988733793862785190615836424294024062814820356244604342248020378603791622466650255154123834339429642301453656484973312272445349139669212439031424985560693215118502027218503841440721241473563309172829682822899046399358042257471281266794875610988344235930809666490074509329368915212045315658432872061240951486329386724935573319162582214211827997569941399761663161299866012304561973684371220001364762239275668351099532636539049975927510863696949734558633926494583679093108999403065276814052842475400543204154963526515732720676586137831159823709533926221868037454739701480568668921233393983066723863720728905976610170962157782146291471462256091825481348314836409552312411664723075628907131828616710168118114974565749529874247019860395734604984222790070383716238786890482925178519116058563634800103018199522808792590313676070453406247228822290346844069899704738648534702207227911902034204381640603408834607080794327954603088787837419441379722817846512088987478696063422153267261371149302499782490844186618905307214535562836917456499203319682590256029541515110367614339727604269190568775754434328772860992376177361392565461333925840033700565174687627615411838357035778075707813312944939554675920266607200587286103829283980452618348037714578044902398383717395602370622674622340900351164882855882298981259562903316396372613338542262306011372642216816147523776786897805896663751097897853609005739953948242776552744463163237051981902093166045524233286605810253699554855052671456030683270798084839915788856801931487457689473751516312641346404092779112547400396289626941341373923744459796133885976437716524060854390847800185106977926145955581733544209575811182210534181248133494965396608490674006359692642413045860396393224011292778565062864394609194331683846157640573623683738564381851594695787454218245612659833798478154508670549709679832767964867814560423341592907775620904441869559996748874282584613773213881575997923299449028853170355803909760467331426492518242227590543474153626612755699016532478928042676228952218704690807774753603465405103653798414582298080582656891178634687593752545589951449937719162934169138900960689316779943508640034366538410261144983341067857892672403057272736521565382783998661713213652845353550347524046851685141251859091603821152603011450539995942433847862678535012184132683718177042508526133725904825065997698336761198313677459720525051620077289329005193015133312156606081334712289490137983467949027775994593002040682757709318077330657687783707587167048849656275396557330037408672274578507183083552605335927237080336149882336187705648114010590670002157259081229911188586951788275866413509774547119891973756964930103658678425919235172354843941477135496033522138498377332047903814720544819090129348920772349816592404405714167249492259062705089299176617547475576177280437868918795274689937803700077226351400536476265583219728583705930501506477670171703389682275138108558480261190840348006536208380705982555121908489270741726047030853907362040433774914097378468344902367998853129203900702691674302929510725188798670988668929626300542076982025134546195790972266199870691588614032338745057238338696311368127227062198658209339902809733487327253476775705401189446342031712575816248635399517649481149728597237560430222099523810858670544822491450391900430822740434805132624078540742004274506496992881521615859940934694086955633744678365044193772988654933114554431258806409831481408945689852348487546117904795132875322423693421883366034800769778709419468299523053713619942228248662473346366293734942697020391899943757501527197799200473406861144095863790508497290437004416941371279725433355860516206271931959421290598060807515296145767006288425811270336439148609106174206490606781531455305025595287908934029136456782746030428873145028979338880067713781858838046607797175093654255695780684502077171464870324513187990423574959851438868100597088600454947138628302974630397183621335973461127215420401382531847147936569959981961291165182879620690867119102401931844772795576582953269399120747705863029016414369621594869420457860582233830311807605574448426421333362661813697276096973358972490350465738570306874035645492413222652951816721509211041683024821912933362711926073189911894106597234939521339336289881640926245183190998592070749712995518070632265427217498658254365520205419491159411148448329196927599499874667692417579052495756393499416528151048426069164426112278173890296185433924199480736216939224301279222045193173006695163304542730784288098973993005339421865117066890766581890904089752308573434945636993416546674627699269725102269074646552104843132319638067675525578775039579173668971946718432487267932703215043547840587340917256200802546212178288794172043744543595366505458061403369341844899505768701523254646962132127439006570250758276159582262514142244938602173348060575516889389379813462250241781995514990547719492629801744584387303721447618773044458101480053593988065692307597873157469894643473265851494699590434992222199879462148999777488082748164294203790028291418449565363261882660029825818049218626030773444325172847994269970248323311449173066858637305944838991554011999553553546755483513369610954874875141832897597031552444961349974791578630317693916080753871951150871909988128720117931897037067428999883420330935989804955082868768127369758512809325628642463542691681242539358961243110588088514697175711939286370885148018853749483106380571412774410611104917306753349282490313105189778758906066174820424303964029306854815559628905783888238818277208576244131885548838498271135724776491264549604735396210224395616886809979626603481372541687951022775531336037662297027894885131456178501483909865456234824735275432675448138443952460859585740881918029696772968983282032940954907686197774912032185637197965316962334794516542492382646166091627385001976482835454323006293836355407707670482785734249137087984108961688823517967296914240148061646701612686965347722605735244167793674771290675789106823897836532559094230998905291705521886152446327566315025072483026126394792913158216217844688989536501778848918962208850063491500104572594975138626690972856625451757549292078373701478237344034405032471408896760084526698512779489570386429608161516308068234960970175132950426995472110749210665018779188287822640042022007933196813806993072871607768408033309055282932407468271852126922776871488798610505413202467894549472878797214803099021742092771395743251992175549041383579958004660937210670939413688170079277771164753797785931981505873115313913899839387250304567305238877302021003242627659342829707312019543956170546207493578120132511892895079425681971023721938179973561273705384885940064179901241239774675688338572671019695929790534312028675442807543181176187574338668012548164766766766825301623138235473606458398689249097659826676913149903716651282200582260571608728401551300722146026159135917945228307418805967195864116407258543819797605873382330172599748512206178875678985749644710747858116255687769065634899696864155188216130060695007034715860817566515323031056886306924607683404123718381663434722229345508304596185284603194172533806858086723032983725935247074367560551634145484134777260671559365714120431391819196069584095241959896908724341097727884552145465462245524728953389640364800447640338278660364359895349634344565075733290113581931291459032734669936901444484728838363328424327281315265211446132684864972966098963129888337338121326531796106035686486818637752758431220071947562490008405791787129169739725844438307213588102592116728625359347575681049063645738982915611514858055465739592093084681178309510777341043553924947703351554198771609793338416117695026119316588410929305961077420829989322912780578861303623517451200226607720864169659803422664558824365918407648113013558908613889520613401766000499492616418305085562626757867127061013917728445575531008435129737386839980135135742468867530313881613010412114118231239143795913520152082996357928471064362024854601206298572643422542384367068258202007150141727097066447448620066293928714889715916298571054612276096586658032376481318560405939796041460746942270304459312808829292423275801017205581215017565081715459545033714105795391745255265889922983442525823513864610365131052235597580288777584405661646963690468389375100222446475840714525698580036968137469593245196818755876005598728627798647285315024182223947294759246724913811972361810805217837509806931642377662299760086052141578690819119091612508853160141249290536507289934516278231775873505553303288819907413477510429106175435054678927222323992574036663194009199382498617521754239485879213472790342204364371587857803500291663242211653215187558551689062594582534134066388962867928284842261636525808564568621960643807161884516609445115288419528356999029887610248673444843858728312776425041656294946765808864502605963774566125522865018277147784382571360211828137479212235577803080433543642303305366399259473280138427391851673487038622577511636501793815924898078232712283405441441991554013245081210963397038556147439582353042845500243230580436560414086896206084301814336595682730271032344786705501253107517553421058628484596270943749288809344834369898024718435137073490928424738762219614623739336456232579413293087220966901577158512438467562454923603645178423421652106176184974479183738346514632901662540517846543337791878566339240769297478067048262019231851612245905767141262846962717199571145918157382615456428358626708351124407305577505028252704439030125802252286950332902330239314670535258864156673638648782237541183128943481312910157595123882519912788292361820572411945629648503082147801244708164932765893690660726395459582080518578238825947952862539536013351919547092148327285115148597061422888788694552313710336459382596959009135050428994882651633512662725697041106665746227112758621910634298432856985332504556505091252568808773361813242580039657183552114054596094450949704980884382110428048044046097123125436178606313980708835552624988410824007681486076414061173118637134293734549745299077786232497032927743666643257532942856822128640590995844669945811038287532779969303061714293219411740136078087816392200320089683407070456018472542971794776409357777912387235972654301349504038741856602104029120208218972695694575089256914322803656912333681382871915907963747268006998480706617633706551268469285305540455281650466873389323308081850704145698658903458259206033741747910143284253550637612416716310392869322912653438941638211772665866686943627191039592377023587731986102926611470112056535503639950188034325981939656991008080692073497962359943352731174295161489043950541142281461468314534537837072249705170011494068551516124435725334426757016817818403511597114824063601057204041095376031363794040731725763554500683260837766214566890793664632706378508401556145903970241264601187838701230396105913181659686242900699642891185040690277877366636271364663045929967603963117517995779920554259413733154594725372943037566757337197434939407210405654487722571328893881132335359264460090465961166689225313100765881342908288441805765179568867140751671629431716191063961991594342786458745897243455021339005983049180091011971602650806650057168959797637019702077938586648434356539626476495496093942727001831789115151013962742367965967058346816191074440838435298436707076349968579515224207650545170276534874424739020195874850125059521612100722796599925083887333343116899907303131037231207934544124698895391796933078481708438097124877365277167781949897091853061546943797240465483064938245841706124004661073817045105304704624473378262861827097852230058895995333247870364462245935002046011110087870952572033996748837965459909000901180916626117437186100027564372178015035127799994861997228496243537557538933418437774766537027637099641047726322743434904762522908481320755001425370135429605627736344272960245235048278797651906354955352091555714740131251545886919119263363822407354412821342245309587084898620992901947883976724885383592083537018640995492006584434615954685648235354223120632216684212771465276150637413816775481159865811103141212153142525398102904571133248340807982964303143271497293884933829654407762075036099056206768805386887029496844859028756217713842669512126146094781581303199764061276209846706210869569514169298163749357266731876736316411051855680682133421912265297642061452980065465509040423537033136253098364062880775943148068846175876757162241025655113897365933741195003631902625750328679557639578642498219359413807165585513051775567268320111318028607007443955990358289818192511004068994532516152639213132170140581880470037131499620286911538471013686392324411039378896477045143713894915498990321848627525197480371014392983003867455914089802495563445398703296402973280793933034707478036038262932424248798227628944545725661437844528370346497911547022286383285937135840887344757352263810201965823749656827672828485998370307269803480492269189798186055701603663242228604970061848535016639083682584359416879244126019133703649642331729522358452049667432288873106442349685276288359556551526859545009587298440593788531421044861207154351877053863710971016230795821021516695612662045226835203145308214280158842251540461363884236124095643977972330533469615053255607931820013738493112283119071820690306358319104176226113718814402114639091161703100160212572311915864963893991793917893301540405577733759447058864183642166837240135141552195675279360048536401237156102947684184450166417846335709809927670119106692309288127598281720458344307406809576268385517127692744548154030682209585434749999193215084265926733641290912409655028508767802247927168993026765404193015479248325877905422222240723666863814090179323527452837411338897958356811631542573171990967152687303209032134042831860538469787153745468304950484744697128957056659688559189718174091861104669734886004469230095483766938606209269761381616168731905099995795966839984850750613463617908138356023685612264975007789366054105423241849651054241657849912646476930735335389968427121380555170498108525105596958061747458521538125623199025260507601106004585901016554712061133088476253135530425545774765092674052858356392365758116191033463369515228774056696375189402023535568860254004759880007649048739317235842794409075293319436977978431642220100805913090378898462690962168348134527936572921702948048933043175437871779178519895168020523882833857069230838307529078962529944452051875903416818041083942312607100370446829431827460617518006361081233621789939284926468187418207164304788910515311255318636599749783998579543760909287072649272162734797286295364779543810639632303584295327482813032198550644192876428308740932391207270683438331470403484563376537445582931773581850352422559169599638197558635950628426646161805215573007336884720117332056231776692286355226123149686735202975414609634417779562422852821327039476777573649118173886459085965037639881408939548176455292320199626707158726616686341485744376779468055650274927985497114421446969614071350665180812075765543566334170052930964663184587631347147005525757997161761407752966125839310610203449126844078201790355129850763733993682389233428526551312413042698809533387161090498127267260687368633077729234104542356327151045745013779863589882584102836103304847444032298722824389615544260272246200110898387377373987501367285461497941101303789250932317851820333213913334768751799586488572008919657993417728174604117788917708466704913570758225058971527415909828652646648791160802211762065735396874912848002380907279236069533108672256705541851471541569601995628328277980068479685918280081988949467731167299220816264000879577477009511388652212129219439524054919992276832622313655912790086546279924284400966551085763854398064692664380717317010338333356599247928540209958232573855190159697780870160765643648708352897626370298451502982650749193670896410285195567942474729203953008732912116573787973260798306844988484660462353685681533192072399336140700787194536962272286731168942789530143875236084353729071491735892459447440785226774172897801717383727329282640448692788274241345130513929758390617736204304881230505660821086300755717925515853509540697862050153323715416435942365024872468589534879826045500296218271810091263848659051081414104139535564642430443343433352459960160927641264968861204650452358854918983872875077543624168892289449043656278390491378150217193328325792590193811927398519348123231419806276053241436810434787676211285863996434495993132745303616907623099099875752739224888270838418305708720915016238949830876063895188813405240125945802737896921280995935930718811245276740630852967302768296838330445382714534198061900991741439943660229340446987029626593710969592187767020473369769784878328474817670425865173131385208885757107334364279336605249251511814375337415905634861825902098127068491026399280029784553294334708943272560171644711803612846906653349484012200727238070068928457750221169484923227882716641094849385014810279171659016898814513074833815145049573124349435660230296597443464896399512516412129268003912175357071016407387329525038634609584194510914511936583496756043729373522048208575675415565729550482055341176422913596156113817563556599981675789058503454820331964039275241327512394362549938926601755073537614750684077114712034861589707324103206367380963459167742384186915920471094016045335477309666821086044999408393495358588896199948578292175068427970431313850828948357971716520124312621799891482348890815003827065096305704432924681328496770222242553927643281105922089808036433695354002969498168468964288526466900137492529251281529573650094694735435597232491405507081581091929263940374914028049627745777064916129185135895573736596507803898737176293588962054204392575798276915192548449330324117436664557726060639247973239325761548592591963756858054083550079555305261388359124185560772942638852907216259819176111295757974878962010151553319095469832872852661478983379241167369228551336314008884363939375398254779524136111936326343816956830724561267474624033875976556932431551536045790447542380605702467487948613566359968394309329894518577549535014200568667980895509284355186384118230932176071214367086404332709729495477323247839803341074180798389401130103084595428417664693030324615454725163033727141426187790173230476264318227574159732702304482193456522044350413901448771807393731745069406262867301791859878926382182472079319399686816531427648892148495798418411179572957643234522495992845939399309775190840783529458641810387749245805170636574151403437635349483497771642174084589069956648164372606791225196632145864541018497248349839068202233243612126375718750868710868193654489034953095596712238605531263712962779322329722885753246604752776746898609455652311487664091180495677418868538271887614783238673707709168561829395257871846442811870056745138207241080651761156552142676069114941132799519619957119571585853182536584658783716216329548558338699473796308952245487756983076001854786981582252028673270653285488922487538955383286712231966396727333301449318739092141050659420582184446237374941831816194938287532652482554392849196428357966539786363823805228890593522349007787183957184230436163673684289857491497821373839510677357547960940565824288552195079618786557815836374350718442804350882357042492910152401866387543922353157953503306229875891409273181755199447850010915297311735079866926308583368335462269144594394580105193021374087065638640241374334349220465272003851847367578338195831159623695390898931659741770672476021923661052995500617068343582027812449378766306991360494753128342838991385028140695867082720568106486923537243109762213382783600766357706399459131604274923122977712263691994608911236349806253923011790024378838663402693211962754257192275294302940288278333270588643464338201591391206582270649209478798123332349223899099276802390834046075213711821272908261966750431376708620088863608101043901136694959571485565252573986330666495619417332613091764015069840767459038178995988752386192842649852951369207322196463857105851066709354038856657765034494514796223166150387749763018650613534996148123202614686272414852475372349981658557467623210304724640107378662576745334697510191968028338044074622923661776976041873108312686294295287731425984826334359040845185115191715197859278611837869002727057007792658396774241938003900204179381545927175573437661948408034889675719510377409961065403701475125222877079991967738558348543186150231285347277192991074650288966132129134700438997979608320976005942588646731033299172523696185057675911950576329070532511181324947202467290445893949015016852747649728527011262703488409568311238747471508748598112861178917650628794295633046959553082684284795805997933749783752954700448686131594108850400159171142813008839538093001021341722198871900526555414764056341802995997347722498827183466918023832378636264983832616615200917176640294190721253860307399504714072067531978637435814182569899509667956437268039022116073766206396892956899997924997323226015841921879701864972950622477694948821992438477866602250001593333019165445703050234755641964552830747048383216742890370994096915847906023633241848803536281618768136230420385114681286541813637793548677325599477232972533881289994921332838528295435846376397731464257595249073715072325969387302216222351975308498267920622135536583395153949283365508452694494920764636738434379160596193742229257087570767636037039417767413478012341341064500965265040682568375180933175527574415655278700021626178956061751789816539674398964399908716313408483092910535003000097683893135012253435501849449591413298480708939627037459210430412493048476388720677598198289001941508032634732712037971021359991656875694973807262276408816423010357809520228296059917789323739145325960554321092806818671730170161318199726607173202688908416622628646485010609233873950982245490604075562430821512791804066576082349635426711613521912557979907541523566026833834813311167186206347694925346937337732571154853117827259988418069044783116467101330569184103490077729130527151144576853650803576092761628236936577995684515869822088380088622857506717286788501944240403036634465770140806996836952929049127125803115278928961885202743080251830487205387350648860407791761562070051770165130351012198994708674342087171546190954037480735272581663893336280370084823247647794699323889464286477963070477598047828453880440039214901125163522267905450600786457343896665327862290104053813736675322964966348549340503961531445417390856102689986675371906106060843206942646738554119515168234239862792701973277672300919804665122830659495122404160162278122924947550817148971214508901255511336138841791507991778483181118767864054815080492926204737274482924739595812866169980291634991020097154454770286461331889446649090464334986623870925574236333453523144105469631565345435783062649055453456418522008192354040037879965637644302321925011895137176269974005459557897359864977685482024351373688653345937023657262540014146065859507179311919327193431349198230079127920595311357869686726980442440589280439065856665890594611196288467508584897623510512492879018831526684257393356299706662600363501400420207434167264239345925992784693528045662111987368571954215998027683238660565596663540502282256724167899794922415709414809267853323562638702428873000273497654864264373497130424451339726521895910548537360590169258721998524016141132862926572046990656053323966658772280405393657358163390070599001358756548710197905871069872654243441839718478047273614094977302034259539367505341547659760952957740998146484636592979965565787377319377923228684198647644782835237368699289568108090242234503860087433725147731376377062546712314399193701685679656439277636669813410190366507804965852810710655524493566291748046911676269878797193736966797193797965020783934539992616477427325288243801000767244351890474580435501126646927172402801648664651260498328308112942351670209517314061876177027050720630034243282668877215315058896720491066706764806833943716423181390634465490177150966092567407243812705962062572380552320397731179843849656119997202171643745960604759732032021061711078225850808422296307167921372298094068686941443333202709868649378226056496314603176182775692251548758527412990713768614954608962595930214325352261981753007651106979513654987021265622127940183180276171992681249096420358154246784496124279825256097965323286078424162030232758772029056426626967280825860129582255427007976381135836485950244186019780583640508887068202389272204261931690204245551615700731001488534963612286543848961631439432692302900927267560779967995852571476099802523601942766310552806249440820066256857645051983473755313755924104594255660655955129818311274935136549482247926324522953718387837814824955754356469532880378782648403318123887472376204465134956785279644676014467090239029387401831018250989100695307006310415902358265818605396905227996763477675455955292165058272668628465745934541961193294303607622300574134542840195757095270468619779726709042655069402035871941014550340638432708773267150348312161004674963640263762843104664807104125843227671415393913513917002858538757397717937426912917302791518754492972390847479412665880292139402525200273087848416512543112196086058250814864426157363187148837751838361087248228523779405316269830272431763062036266054689056805311991215237539846253441931273235835034147169902176971482841754255203252531421314287279993596933396394865829664058160666715332304170086508344030658620907877242197798079133318996268843746463143718215760131793729501361326033887755819800733732350436765215106991135314267830933881052018967913570529546878687722056922521313350545902087513282904523070199665201655657121378311574971331388953910079417494492744495527785923303027698343999216527569825508751142470352845288523051228576317404429553942290882426097945539960847551647024401430162041322828707005734129268985160533530948890677210137644133175185671594694183341570055518655692792371097491331174550273232667023503610230945751469946449249920427191017930979761168981694023069662653728671157061882559248718110307893914137857765846453980775790049305151094040821932532427816620020518456322025150001851671239706704694088371408789965106035886306679705861322369531412239844649421018971080741417133121102356589200213772980980351584871702161406762422150859928928294052553012765953634812502173859066943743950980365947654879686699676517670108574687868850605925505664722276671023486325972527445097674188467741466036849568400418034911747914496191936899407504088149885119384546717386014797866467189500005954875551862576144118365410163670898076207708688953134501338709289198429320610490185638975448245792933065542980923576373152695322217254737114891690023268704635635615837719466892302820468675599676943215588761733611123313800981351624813395151986862375562347492223778820363838718711065157079868324512284188422095386748857756239462807876231446339284165680565224885724176508297317626469952363445195248908849894671886309058742637851073207489234658963056261077200267495820172197668532503497898511971559977071386799707059472822060991951407458675478913930134087243341284706488039766543680068415089415944681621898486765351455091573625168581842698220289832993320461558464811985855367898070429266474333837692501881057085674349249165887847279697324964347158583688450442100235192469970268209857325156754403971401288842068832945434326744955163789336111767237081350291571858314290788653270012561967995703870528155279492952671927433905273193698783353769107244513216930855546287330339155005946467052611907475285081865663089246522080047625404828358925839376352430906975485487411420471143998288442357569150891740964859486475189568464078646468598953336701251906298517588335664270371239814696732245066585762780431572547378334060751046211019714901255986833756455082891221477588885063620006724065432546671838182773831235695023613507138467218425473431276479313683470982168402548288396743569987449909085145037536651105038944300874349628286391922425753422019840768304786210929503239977847662431275479023557039874165428921148239858524945740785922130335274222704461526960630001707090783053303186882017357536096038616624822225288614409066766763992114296361114353617905423064465567728593908000042700958331510546223789827804155311279144903310156342309917103196293891461026995096871890675030902381115754707855774087625198313606405788624519569004277304649388433626979893021040806850634997898705858618481339996748686246386533409590357339097101885983393166424110547282977091210789878411063710144705614982468438055237114713747208608453483244131048789090622210789151767973719660947684213513702889191882346987258296490998689386954035962897962755440838814898264266666394428244980850069833241241421485781923335580110148613291862957176690096721887242771210461260907301312372340227697423405025539455041975163095796126125655586883653997529335845524922405713069506609196916530156853748793630701947486467863945314954587791656465402458616774483018959892180447252488184698659292819945955421724536783627972471371128611802205391118195075244870484131804956299981005228854546093277586153669034008475832513418177602723122915631723278885727740321519090686944340888244773586541962316967486963420206182785753926317974383195534581263347268679476606573150525296072902768616168419629794433255199290652255676539942445390755102828187761405697962880972390084102224101827706858491469999628365541365977105477722729937563317328097870014501991506004060119188250415237431106624195889523844162400268752872107145559492181513510157899232676430825882675879975591824526015488939321628520806937436452964561637361332853369010425662648511136141065392602206538099793127924733916526592608936030718385384125247210420925919002260592647476717919446587948969354974837984792246570439730908307124826168689894291158230519165866597516964553650146469153281367477780385446158257025549082717309229843104660148697979253350800573506249077930724622016387953427543188427331168636450505237301527195274591395049810240425687714315470252991784000366813086606221188489865850028159897448892823637602197912365209298929564746662554349432336009613392035429172753178835826689440496481878691111161759370634031948038827345388791880366218431323875085849866026538896366503316812224685122382458563938141952747158063003301980419214131912867527297431869305712897468569513925568641101891178915680980200703108920718351028374390338046593085887477756040619567675348381987508516823577706691091406804512851071439273037712800885921470693562671200457165851871332586141066803206668610118686390645521603082007730308659547125305314903720844696046820855780800594800027563899584321954265679667146506497125782738783885957193639422082816073428462804591568189209613440368617967534755308876834582407030255558502739980577136540529061130540839379134395312838238566463546917967899928287846468144366918958594587586218518101634825704968980773365414753085978718777404674636665503085172656400981929766622539337110998549647544340323787820564403084202055715757675129798249499532186490481266378575059603572759481230012261978258376255722084975827659762055192577656852787433708700743643948378075059406712941533918497777969606644483882100666441515139027166260307892132777494613483613243250967652058938512179688474110910604784253585180505228313261845102521692631406510371111266050022305819677070769147283301696091421558483203725525405557624127024728279795200705677733173044009000300466695105621497722109885937904988157038502966556617695097244993930699636988874765075697510683003214732278255353985898337375347563387066998914971084198741025842979095254930940484517932488415587500206629467414081617753335309724224173911042199713723178674267879682479198948397002882799774737561933002806551579605223150712296917110536365751354615645820779433577695222005947368352573273104668385745807140528250227771235933888660423066561430763770408049345143526109925526322746975914953939794398588080026187594563148717064247382060255741932232155656322639406065979946116527126181956448719098026856382520085687135769706698802572375956354459610577901588985660486894955338835865526339719927200408261993925769648349185728576511656579049286432491525309324346569685467294565953201746443693188790990720421162012493139478298911040163242003301169336624311635863449717793288260533340732780614156575270676829773973646034350491100462669353770728512262660943326675923211713063469761742888619610674190208008931768348517973983370384238138258525736671746248972530770204468674665265305007009312546304930259230756437277708906754949520380274722363597113901974253372792821293209654498036710968728448316226014716582157268567725504293639541399932017207804206786755018771403797595428026654749966181276741636908092892142550799661112915819017268679731346414835351204575693165497109306869888943067437263335506022204799527711733354011400736634435883350605572599538880895300625558511566280356633244304704748267449329271817895125670763887154707170238510250636704914555419897873462690942181405253100924884391568074772906759504759244005179439073698819678600102051376971589243244593209197107807931747826660724746013445148697392694438737640064861645028168297618338210813096107813115185923990757235807424616336917724029414438331674702581478929346616393786996000688650689775550018924661076312790449677817689143798445894733486241501273910811182566475722675273067877046937959932583641873433131124884209625900315235804436994449248979578700671664161835061290571613140153964733486290577938834524179146138188356862861058913483129583198694776062083513832255709835970872112901556886271619826555168537757343354212333939953061592523124276551666229173916278500296746627228834936210578360755127085232896975403752512166576854135158560983308450769281196505685714345879494607205798012768256147539902935369210106759505689215345303679442530585208666678900413022968311238100666350007830965720296553177118834009586309535866987500812984809697292132586287314781807811541858779641673124505935519624247026655381244208568717860148606949122146396186834183395784661578436768873919366552803007795810294398866756262860883599268662020786622005089226985028563469536828266391002016498155222442473191609795812543582901877263870954905382427325854641942903868006091690962982612240154331564959344269771267735275347334780190551886787346256097455899278316541841020928807291315097778079517036611360762431799752758641666271056671366649013651153670277994916217978459673221966753659014489846172593128124007062532074563176701351828387832329346636032555675138760949140634544180627309557090478939168637640180127340937834683468652721815353282127209108626824337962217460000196334531273533660123136146585375660295505804023489350450322793534460603743928858033270853114172340020356939696832282316935457656176974061179120822138522179578066180451536823491768458146945766628717642453806414197036582843898777044233144335575808234554873740846637681530946453230133624247641202504713128943024961021715640867015961107323633220199529594256523851297207139191755886416580298242634590617877495198776014610354359305123420796540243775475024771388676234220987602126139410988277278702313465683378291603779903580701057905324343800706647723022722166937933874368798672552109449422600359200828140351935398943723993773884657675967690447095548858937004975250361420773023996962387486153614626634941155995857608933841403295036294440969448195891541958474916558453673048157727279750041905901306532379470387460546695805833515264310888742101564728024767058688361904102323252424906786991996752575842198672773468248241000624253728404674126547402996736842389037980465310092931073940945441186896988288138260108280381181833190013890704393246644799741413018278442985148159912603918894503700273370871304478840459498776604115906838566257096647406588838153996367879578496289233384764253026996518619631382876517377218317179723060069289628371761176326383001726653678023757038080963396431506376926580259673512036387456160481959608444876634871501847004027088825904341286593814669806957077939750650798559941990468713318890252868476349404126627265745870516774659136525820675640448944092866090724560358663797394164888369140203403031276367245362445411538551225320689546364875652072307164216732132881322383140457209291666796453352816229685190100490613485254213695483023011794030748740748027682054324885846750612194757848836482320252428389085494051537116477884957912999310414468240546424830475379939681423796914160517659988408638044014918120494401817564383284232265702851459675046265759619469802098331992413906884072965119271204580211999047598111649495474363985213462368956111302783756750436669598973232014701657004293707713560933244005765644386641520439613024618531669881487252471643053465191114628851925437844145864400029718920256411629381571400957765853000606062360184860899360088344641738036911187871408201960354052188158354078972735096233018112187412563248258211675537359588542401887833734202372985244301915420442912646459784826823689930273904616379167096022726978162536364425564916017689804459616911591811153045728277390461311256280751701940601058160932734712552164401991350332926220365709095114646838445134025810793361491303310751742743260750866711646409112111521645919465341617145291653600748055742059567909580445685835959176002741870228303020837512913153567104398065822982124021327396008339000519609773429727459312496216516900593740976233200915632482505947366952452234476076630273141714124420593692123007611376506449688510170511343957625023476950999548874756131280283464989647631589965489547877621612794537721146043919393090238272437680492522007141155574892241148245126076710833582421560268151268970173324390188547026700546017987733080720620558751402037408838372504858579106389410492565969128583128148912522625212406997840954251569707306105366720453448961679206775071167200331067385306353407486128779777109802807713570513577636082265092071224161144664732984919804702920636760849815972912356835117443532056706671692551712088850436346884267165117644944130058451630387907417334897262226442644348461458769589785044414625360599136355595028818973551967223208563655772212076899877119658024315571978894144061511494776024011449750464878380817182606536027889958052214881881305677161803326018732920833726387132331681465335962615122946918127810722292573706543899205615460008500149535014597058386747374828698583394043810042245761053528619345085440514217917917179301354917500334414882303868471631435149591165586124549570399953893236430386836973549801905711866068524743598903428438303568200158198190013917916771038313582042677379211240181811434999763250037812663225623917571796166632384530923865356043395410718832421219453841312246321254387207945486653668109096102986485464556756681569024550644362296916537727247657169560331184818328905971480179864091525092103976577054416777073666136919720862655275563533131278170352940832774280714648129302094900778247295387893876126233199065705954868189217696916280804246492941776087760462955633688487791887904399159636474890240622090795978705882859655548153639788607421834709412875354408804358620727176376967737878587072807145728723607847032373959656852679226659603440107507271126493681525161293406639068382421319488818559334282619301288238377230194548605162517268731595187670568883577370939790271672348800433025784937127711557649508205292419594660606894129709891477446015655200650133501839639693818359255044565551507020821387053913029310493025603858849715364225016902039110726228993059484276031667992386685969671271340345990830070573999374509793278048450797492081613302652048493439883314772315589618780335819458723529968981465014632699575488480794694760646214735929289933777893660942585585568397906992055243595168931153632099470452034903243356280948230430714386324759972357193218701986328633851609993206166284106143095905080300457702626401265198696114934349780939849503622491244265981264832105709283761195423581424786790219577220654780687949612151762801293409064528960346237457010162384737485931512457598947304669016691519552189248534605309603450559134432494973654933334750136543610943787747772354640138788199853472412920290249381209499027217386220303361647261593231171566918293779877107474134564001099323463377618022822418010001207630839871933542861802186981280507753571987500848506679538818807579395386494736314533374070016483784814011005625644874408410928467649067890876328795011395207763073902597997480546138328248498226600084731339687607092327930705604019845146291487024476384201255052855255515017260739509847324351303982006456584026178951656455972111037451464730536307653468364337066189457056971876215749088548854947373015013752593755199582007604076226752033676363517276801102100343063119587638392213801491475666054819940543858689899740369488003476037764281132452789869888455165355186950260925351139353690612977446758832907807451355538041830082704566878397506661402805261687305369786349969312868773226419305042593264731821700951641452950036386577860232188267278190977619556672886696308956947617016015657518090664446154578181440827262086670580816838647547206113364959842162485076851058799496449831877709159369838255476192269694750879533147048956483235643619056166459268260870331199273007861949532168423293806332925739348254768755936357961640388937534838507846830530666352390881399449301422118575151234986407374823298567969028813155355853867139925975123963985013280201168550772479336555290356337770757925878825593515945469806337487924066828346107787556041559614979279044584116448927287237648139702163542662191853197940038535077930415513768261886720252878792770985676579656750360431582461011842458111784348670896796598602061783666673440865911638500624209155434918075953956927375488274348614461474430725310705248495692428595559553508080535819581744941088584293230384085311502346721722408511596850961562006401427694172370770667994585279638945632903514914519805556301299454237619947390505432287678740282694076652088759691692433581240637197387677179630043148557911731037641239223231303061501559107944625933286963470190185608323705068276787186363311406332659367411576862313762952583922127341539686473286193354714442916618337753278634492601659778059355335496360067521930830767674500206417824508937899083512041523017411578896090321045941216501703861376649045901022073817145513227074077295658856380152761229917281437982690125935710458983346981714776786971061122650838051559905550698670654885654717119303864771152500759020408230787314640276122728370000698440534913400187558138035762767584709048193127839638887936587623212507914991944256500141570205290683754249892896477193346122887223713873354490896424895142381727091895461517163394660534188421081453259064923623596139915160372532379900344910192221794514772396317054109797602122641932282732533996176638379336007502696444926409775205753030382194726268567404124304978618874411332047805203078990524157879253263435572072625746846400193936534321262089668092721996989152316703374335115801065523440980907809718505710362314839850032931906608998577047595489063878610246717636229506264288975501887287752747684320807133465551668116474350756272914115014539594872880996868969596850699377855303855369941745383985973138905805520856006932696946465101813637440018260728797391280936754798722143637416465454929082662558945379647146426382325740926384678743615847914073500701195078312631512645396090529970502119104927582275622726279979791707306456682550830477626247535330643717843939700365228428512083517910799270767628174738066122600338329375516001261767601297547826687168904995011230183343736380791017013877758117856292194515499017291076427607604033342934866199041895083441029869310964832916548771281730187659116018554765600843541882439037168531916393993482537204117252362300206237500093394800371168089715597394464048724491771581298832059282920373592830519654455380776723669501110764606983603371835897024275033964858433145465718189475036366251545914684697686247156140014730542476530383268044133538871175330562830216460937274994083379620981538705121650714637065464278740926967848366465879236070515106577977045409662443890048835333069274944800623923401202552963403770966676638888171367414088471619284528807160607142383658881537475219763045057053488834014619252128225688517520665716959947726210572346403116006772171699888758358334937791250176410052898620661341015422472714482805437553195002209975251751228577184935661876369012993156534239385301287526706790743361981872652450455988423076191662183071272958750951829415317909646682812650169062796746279562051221526904182904064719224078906268201086358293795467062832777337232615127383721063306328347037102289212923608410432607248763483497935728101895049995606098979380452776145822113646371298323728936287646620475824300594013139289299751273569322515224468646396053375875919965940667577244348223954774684052902624270034841392799762825920040178646108213337902812929003373651463432013485950860137586609712002780847280479056018826407523205916151219811613474465452132908480995838847673725306747254354667509719014193922729055184903044671796710436767903271639757063563184495395242951284546599764085674351771257102588132536592531007075727333138987527858818364486858988002649798124263812754405804756779018078760340774725357665416277469112471704060972464943949855942995176283023796134216827919527344816089118211150716054297789532107409710701706892330509005634504294771523962751610271952831819352469927519627229643296347760619801850502559089495603067722881444507003152058623885787660818230067699530218716434070516277467857413317512980113314553219040884295826762660496897774892235117738215196495478580763008339698721214765440700144552397390471694455403878929443839310413567265631080335711415820443517199907144078464253839168070271883939842482825282359662408944039230460449974781893149225942429123290794415936863288439657128765445372684910033059698149626705157827286895058846250867288594178605759589158662531993509956663131260971815017252674146868472754347022197856568587861379884738040849599307445472320229864785589606911024653214658914653135562998952673303212871592359754169533557393331304739972920235181158485635836355399848691972986909366637636785510461659874801000279401559789668971957389738732641700046442983574755231309493543167016846114313659774185054051538616124040895053170186190756162735070121669948972442723210804615266566573003199574409199269464284111261137973590708979046889608516356002958096019756476584433190981052174899554430115963282696167136026066651969135970286905621603610483985347498942974983875911110728297641531637747332697462148139222794654572145766996018678194589010587454153728773154352604552100857258567553638008303446003377523068204052503169538364634001496719093962300793081238059568297397051705386786517974111352189943555242722895166424623764053749721639966794683214753893999751114266892343407091615826263778236841102367519023122310112432931480621129685853217622216905780106293016737155718709210746807917256079483065980500184771322219026316368384727382365561603609415016165110191744186524946008795769986983381917053422492631675843898965827775912132384055145365466189227843986049550276281542024960232848710032862950258085346801519641625159240470731874503778166392579326171602431507219513201038204744309109499306208588632178988696510417068025872839610165727617581156849200913847027243899810756133982464617553242740606947045144918359801358488911942521163404111096595828413020050630720285200146734893480250796155803838414192075664909047771465644425457947437596507074225064215114430234035846131255730730071537784179930816335640854994850969543502808070386549395545837147048163534210512791660662835663545935901194117192399083890600465099404738374926472873718234848501853782033491334963842319815534370817002462183034234108608890407333602851991132364860273763452556429891274374019768440147108456238594359770349830299868620904762883147193036576047779903125456085206549829797470621131132631288860311184236036229804742222462481130117032508819334408937558710177447025517465594852559222610428190530934981352348388663223727833623732300080497886486969569915586087561457666807031783339553583607135965105400326927305034521528211031661132867508957757505169993097713987809179709398334877211197522703555587805538218635934098840393942000857012142536588411300245204171318365975421083246575537074315013686990271833980593531714951875719619440042139610264673285707417649514112151637065565423817348425663356052262463904627179139778806399365001192935275388701540853054222311783982926804750424856369731977568032510269645978451574694957118360921430517163062157857840176562590930613694296108364136033928464240227768870283191201569911699862951666246531937315392245832872965254847170346266296331661820360688254644964758179046282713838316732280988822639911284408812763353799206932603221884038839549654691722558836578315249425141452063092393514426100986618269620155295099943480030363917994749688889066509506425578257801176267555905762842993842097675786611185518670795533627490168640758227530293132497873254043233620532030268986635103101324973392361853310614562673462867016707539400297437757136251857270845947791032645572350775689598014943484956413835903134578722644313454403130259941906464455743105701691298085605417977950740200196963792126507195980282550659781992953449366277220538303465689046293225853393016439477534914104096581957303969722084721073122923535796937238495321955215719509803182663720108465884716431598197806871456076595583258549723881180285041706511603298712935324437618337620962699792317241705687526737547557593170368479490717453660671924749889813396334850072823424970359791711200045284582628655751130815308597177010714356934821209804419197620229278761669717331038163645894895515082877666286373261325910706383951914953806912976889490762110479195707729923211168825779046437674142425251308192587259565637379728867098519229083503169344868605569466930736976584455834276798139407399665166189649049933115352285829764620965397694465771598422037210006219842669101804169255956329903339884894742820681173369433241797955294116592937069193969497289152777481054627337953603090942716116509635427682379182038877728241850721179811570238556507241268557370604464749163862129793293604137370810112405053053710209388878233173260771229899733752129672627520632414596018077629441984996800092434009516165943881396319945939318079316252107019006361293187206960894792941378113195039994569780027876079854977561668567087781569317300033496566650177856111057080370003046516335611181842886483689411383826645260590914641328512437423629932426508644032830098532671081481926699359889834964402368851699304359743346300036161915306861308734012735853518806564824264908547851090317468045599014090413450978729746409607989745456765587099732189379656057176814630023416178454062656534260246167014187691924424367224984952685595273233794174663693189744354700082655385731216464446647691613801711941873517416054916162535517061375241486665269181382623611437778010728397768377051609617446242847227993753338392859597847149022008937726471773831682941278164962497916621147027091419550137287019086950129553742271413574774580043187144865051073863736780216175809504331561972689773119735087557169857181696855120891725981915395454193717383770955798289715638462164915592002894139957767933165373784505088099857989844295780793152476991938695186816312710268444078650963257691628182966315161266215476523534697184167879123745204448309247074915523678156541613683251988792222746182240060663456243111195729600044299842607302302681418643361913382488917314865405327946020013515100063115223087449029673875398486005877982360701342113656759269876566111438383776678755161677693713153547422440690243892478518111551718124636639114059619887954351310358038030729480470050311936129697428593415046021546866448448480146299895870022946475772307214005258094177126458642773100148744742689649651048691088294425324115532968506572416481787623228172127000623097983560823013987110476368974542928461870916814883442135093772955116155151406206359327841597544910570110144372096281271396193298002388342109996235359630111407233852298996089242547435404918907231795467395547263079862560011548907623872304865941337466663648659544690753836861439989978380653486917916242137083487986509683773670777449739629532302276244413692257859766150652018423713666801896255589768147306785993221291902710445872774737339618901293522616714020115566221529579127489042000207966340467945340552681719496970382434141835197870262680730958109718842319586576602960929328180351129784459124284730099846989580120640019243749164215672652666474312875863506392657992460041270499004188723879068996426083532340098441989782531652552674194353542982814852401695330017302753131937926923058981715429662045454346051602414176922139943620586160289775949725440344342618885076799836611498621831674000205953205754762440360220204774656009168540267706537045937948648026388579409714121625231595951630429127228040858224317204084555482641384080952939975299945222755331186108626995486329398685278440806979637881769745404855337087622477521549448206903105372619013752467523565602423194933116762727188942608720806091626595390753854472166917579610683314961036272425722127999283942008499951249412965437684377704653043266017692725058783816192537046694627245896910444161228761118018788648419063937465701076855873263741835247368340413009938444351984909135461508755798452726553155780492247943201300529057586723814775901949237334034878720837718794634577999809914121254108295770840855406983103626991232800572017950306562136430616299575480908440299861706092798560034121838351723423400273202370878895524090503923454552543804097765575953086178886413155245014651484638329839894799772869052652050853132356223874608409501285878592159518306325310559646050627396154518811866983362676811395175452537319557082176946096608384358057620921363329783101160407355796833525507617557068718035919475282471199886594415651757177545640036376724779713610438152354296157785299598298316079526876566260231226597333607721135751929657041211596413933087170645165006338467981072526435636318038585609345338234433294444278373457830684745034259273772246735991940674861087879008681365779737214289541750024189857809595724986413409386214896010683154161780333445651052169844350255007327672665535640465469530367658788939785465403130567619498761882590481462515330453018993217425500572889319587863545803506169776766316541945505402704693947369911187428897277961221738298789557888533080175936010501002661802701930550020953617881038166485701817869905783362056698700416825552883780824902243653102657410371296373956927921737352756361589153439275611169458087645577871590062315328195394845449382487561219026723510242564332638817442695940101549129181028426357636108492056662213012269684405027567762277238057008268016135126878836030087637446092517403081045894583155648673514863482999552308908720298260950454764289868563477732669066272594613048313382115185582783911300394862911748179863039874598014787843391315626382335388254528133326377919937394762956677819745894914232155404733414743990283662930501972065540739498273940633700877986429982802110874866581707908915933163848981266090447980054886662051179184615279157895656857459873283436298338804575178817004059492900855176377083757496918411807087213593138872285039548183013322520631185087800602751918638278954010580322868583232102762579335341283588302584388897774178655937992435047668428706127053783684204216680474636245049714702611548894369847187204255970146732691090544393995328617683252781536259487235658351607157328659236960989808332663756914343555749445399607208926735383052194918210488151996195321210001365678468857032679447787198812432190656676014412159124727333089199728603689825041215292987630585054893947305574729434829476671781000581221813254337331216491622693061361317459418961074670092769793086706354190173313885692925494171236781085526953481825188595757196246317545240229012395725818967142102374366158851043295579915830791806395000912698157930986383513335373812439822942514745066043787637518922376092283809796347468802168195226153564386828056803746317908614335629116651353463987343494725952299272095067296531955664000925078853072164528291722190497613481948778702493920433299264530615206802156274569464052382412153439761122464463316682822860493895177267618924954838702505951941261802564064849051731958229764925631241067902475130753136899697942395349878627982992075790096783312894046998398000608571251539326725282110806148282340514992749943935921267763608974670530881152282135786391558584731471255726825947522057160731527189537190482018622774140536503031760371551764762898499658011509935901565632683229028193656668885106693751600766797764285339967750403119830904800811524129968560064129551328127663575746733071109759856399547453373693633206589061654553384280938308256792614190347997217935577404317360099943496596687940341898045025417440360410576816972609376549071685234874929905789111298065003441299660827271600847478241803424795651280374974512823431001477397048164407201277196319607741353175626448087107744947797329618540601621610178568936232890787923832918803947338417679889493847269881361543789945841963404967095631753274749633399381030256840004493896220879012602411926827234225396784871536477740435338701788726942451390491490811813807722517743745715159423445256416391330819083176005684622447551040061254044251634289800405901660278454519847172484973641833707097671324233565804644054080869636550392001071933564214124460689932958125198294304788656180056988375620095779066171225279773037225799881535900995347880110767205958918493368339648171282907254783362803859962120052406732547064696821151008913381226939625256310246936851877489106512400984817567341075266186274974569352533182625639312563574827371131448124516208397453279675090284607797612329636728682913319909280813012742640169732195982143019486630362888010268333300325875979066058309807251510038236467360736088300826626024955811321711933093685476441072092123550648309511173347970779955947730362730861269424150189637231978174430232966350492190928418947862180429312807118580511819750461936821807114125909095650421286904819551080752543206963249020647474469792443317969275650378382756111803145016041047026841691412007510161589306437104065974524599960865302264812284441858318329280320578320364340126325666590582143234262929492416530420108775402264790091911792512439749197763552214064100261808951252109056792589506317784321466762490170642192669103063686808310476518102158791556002657436364432642764132719678633498636896298777115923045134460147076738221994864013567479102031926144193001644529365388507396434732435482611954053830273352819740593376477462834638374616398957283347183364386638753435828916210091219495090923214251704396516625776262815813588463426466906640060596608745055613420695334154979430228241197893461021684258389690409637742503969887073315646741116390651285908656772997131817780211800767420724665356845299610775032155744553730206493592585302368041226885308279213769271051419722920279662326530594986126750804259660125647631542949427626214835055202700840851843006935598876941487477397648611067473034977453660361203205968125397108889843093057018935626719707964134246864387181801308302789612191378327540409946451808542659629698315529135190322190703325351913368887035195259215252226146962657173608807085951478887150866316698952129131273377967912950837034569747101295015599623914073595253067068046855376718724812975771883187932767886090804311544350761223116754976388498842647306350224436959103641295200400248956243843433758225542165887247780758636914411069191468692311692770534965378275061694145351194140539468834716109988113390115145787091469854942969311102339950317704503044440542255994745422042501608583499650469422626503223486761449793011956174288134204254365466063176527638478109833750376564844453313910970299147780127695310894530919969160097519170466887925791756341447318423841314735422658982091980021354925006200117057826514918616146834501831209314279562927784893842108973324814617928399269843423650495144118107525562298118037085038338579201351669134296735028800773996066573808347907675292786535893875947876768369719050340301967650861059925358211895495201125604875736960092041365611515300539333935393278755660905591918892612277642561106808317055060706626718397279232937602061024632360530535740476912949065721425861534514377995888850230961948730101655473671217163869442677590005775676195809973794696073653323649680219947699046032742056611060595277750046608363716289365084709568656054621552302741943378464340307568499488807729235453330345432545813536652864278432004861624604823180813564754693536185809370905788926159347791983885290128608408097628442870700635377505499489866091642187765124619594495941709234890721530514970252079608738167979280287830823391751032188788416195603800034167895100657271708593330970102355011235388926323761145728759255330701530606521343697372374401810301781297855971218021733410108093764840142657991093533576462574086472018655061960021701223234705192825470020744062282427314325184345629162618123089611142418549283154705521924334517991822241287678621166983641110851494070371264288352327143221089021705392613361710914756100036996455559465344689496477878180430946577059868054795132429420995367900838789617766795592512755955718969867315696418977164029772984848676575409720710611967152125348745659657508015641293667824645472489950113610057785483725688625769047515223588752839866044821540095916189691769792324945189958523476367408188872902006514327617363316611915952874158919070943221800940702162231994920778874354158646228711857375528986149291981731836191996628214504679424527237189841419379332487444389771778456622936063776780181133415971246732179832496407004152163206949494900934013658378023276345714331841228643447911611635176388437777692611737241914176495862730111399229972442433035520609472248322593300238022811474230877165484062451056952322040686723348425222931038567436251897091232085252235551244297675735303780952773571219277818129374454313016591835753156154561294506817775169114255616650651259335317026680773284714894336919910110089654911002762706200532141345979553007171670205696059645106421306740846941074453204974156076017469229660500572030324433089829284558135729950429717821356583745660532536257726934093618028740989700254457042094716089324213211893758646175087556931363723501354893520263041280423378454643910536018008265254599430333710582334872906539496430967730094459388697379820019578562549960685263337883869172190143143538751875542966101348613875579211733240548727883498400928594938650749500449561470780305549070820887082355376631817136700252240077437056558124411217997406710539784338268109476367423515858166327356284285904905018876968867862779515246207125451043320326686004538304532048984635680173572069470211550051555724767511682979779416626274543493325802843648347122948068897786290513492286469790948516026814376364906823198333925131853187924941592834793988537961679081795427993733919337312014197470228080575635612002642237175796836064810525624816013738210429716192854415515827292713536176340153651100879564861870624523139005388204236263867399270328727810574070774455762540356167791669030383790722545812389195338035709501910026421220518807129831208768970754195295724911305580630395135447292108233648821152805832564178317639553346220896552728035702839173767571086712145222130153678661158594128344047555202046293453664220698344917614482888363430120397545614644614623473138556041896417670717377375317662326032148083633044017043921921016780911144682066739462061696630115516085599096203164378917515881605236881001897056708935547752365804476524411522749566972756955757027543762046242987422977331301773313842053584986245098720212169358211644873451016914745146271334181471119672055312601356694560026474225783959801463910851766272547384708136579060759734086433910343207135004915017145193855511804976517402314192608388383100641866528241043164993903115442919848501874903385150337499634368282328834526418437555916300763535827411198037436412180878462030947417832730488469128173585818700878581230946936096473806260997431979460440513446458415231719633462375910949572164741942310999586422603053590045385606621835069534592852365426027242016177821869269715253145574073207228866632260450974319077196725054446871054630953469108634239743072469231860520451049710219394698912213758762641979886343841142314631182132594712358748743840083359557047401829841528683763753169692924254723973084481046582421650750688181998172575572108156010619856227422580521810851074604245705536097682673314057007512386284835020100950206996283805016864141542389525685400959493348224605438155809971111503895584965569368389332327915476034838014354898611119135659107262990721596727141327443491026477614684732770775091157318397978800120768390884368889172277276889022263559006747683769114576926436281435491390193159424025598077888611293892733256855789402331097993490153500885900080596018494317349967904629831723471460379526706688283650963996072760225072354390202963425067488650619870154483334872023943823569900597882828252067340175401023410802385542077614967676810581880452741201633705240777819965023073086734272971162245803220644777178336846402385901482556339536293780581784424958361666797524110725094586808702751423436272119292119535490708406132984650835199294816899448204610862778187308827257650328712645481053013698334419102080985357474393583427969788586522672857020861897608211695912578929203180563661569191339396365880904407778530095602743634530262538229456018586217319694570690310559107687274965843234303571483258404862954113513239757335999342248800255017095660218951764443325039557492396783897481761283461013447177678072116728155724569756916028605284788371819129385231977161976795856103292727480033195411822051016788304610679269991257816675543457372899612786005304676616474622653291034199186558996902769672644591096623731513202543278549584739632000490816014827273149672744290244571069574938473555458234230982039048936458365715214782375439494243529953857831884997361102349494040658254966849733267237555516872244284308021332831323885112086986451943189095739772021603181531596595572569532372024116111360859045661353409304306433192378131379575809012043964292088077129348987152579104848692355695585697848797258403170191831331132838776265002270280308680183705049845145367553868330002487700503921008688894041818608145483871878558004365540432333727616613227209066550103635830490944777700356686730759542274763386719656157037098796118167577060023969459074242240905044005919053804980758900739031860501161273973059859313764254739233330433385036721085300289147706980232606371831318723992242750180469859078385337428282248981079811699216024116560632423542905644339489644189219183197814208027386020473560581215158104121753978906602749557088543403013866027051863548235240397233988866287728593260215684741080621965083688344860069756910381642702198127182152053335798433861072970402166381158609074821986135222993479233657260309902365635239712242112221726093926930154716200870960514188179870178316424740289094897758436932712311839705545103365912231301415322843189021521587673664509690640659821495239476262744004927705945564732343816556518269054781142034422789242420055812805798800717201934925821683948689807971288919248679423236276148519782210480385282589927186505461268269204853803555168310499769082073892285697338751235005755887380977955804123873607865454465548869639355831520914108620262897582085697632082980182088714577560758249508880408533877662882221297597337489052187623845888132636803301779886628567087227718985773854972523026695837610346135568739993488812015354250339618179901504667927701074010910188788413796327302925133966112502178513571669407686509816525084463261065481103390952940423715941090075815581530692431520979846003054423820801421305654810721956640435129172276911981340624887088725836397839881492294923668498574147804783267373091625924084137694647780222992515260024093750780627700552608316665976696117290387016317049322674741523105653114044351410487117343729424154622972003639092911687140703812737279262105399532458168620095405222042065830896448640326173388806686225632683875087129299581020596147511064239944947847588179629375611043146800203093973037005534333870914291258604726175103662332780486716650380227247785286593333768899003148162940999499043058103986606303650533837094071703874036084676979538517855637323729472064896992186623901130880036282581780392278364259920363270355595517245891422195261563167936847880681500360009992172356502852651582069279683337053456617158013216428973216438317041960637231791513140286012432435845603313008675269549668722260640274094331066690836522730993076987080688429450231114029955189116027165363799531676315383728320917529837957965785022963863436390625777388564092049298174793795089011533451695957369115273188166876600123327917457785869253941047580605516989012352617437000495858908232791016522161262282185644716487699520305161589046307396084879607196232309455138582771593228857947873569114727930076992391004250303861476424203424802418625662532758992044488319790873792915464457193576994420299362319488238813534926304214186772300048508202588680022286202459287564686664335886609240727375205400247621947995963974890511205917138648561545684327093157457350368783413990958508130869371723607633340377213319782680427746554525702204802863725568950555342516566391244524397421903182776660637995980348519601274888107663968011326150066646892764485017272903450713471128134978089922314567740609839217081983067270746927706174998247137309386424842241308402079945402722451504165807725771318073224031394572481106965368286284689287797853529650777218795560061025188804850404736159842150826444394383248063124884693688048793440334917369583645121374554761009615213662917327529784840982404850207858628671843380000681785673688618916155816302678465693514168770109889793149637537851928041378317044667637567539227921827838492584101276772333530660603735805883967272290030199385984325238609156715732234129263075614937146138275196575454025150748950210591250534181149061224848635707848938446684767668663162400105963811014982597120801739298597967093236958516907017961933230829353509044861999685628714628307401962222534807566972590323977270327522910047119323652508373168940841584225202792010849193582172926006154752778416250337989540224942181782801261364278190131766824105236702012971739086486866593544400913233438351918074656367609330591754844547323988962150728990247781360173059683759444042927418058472826923927695941799054751494003724590291936556670518438169758620869937444149747818328495513343858507077115038324029830158205822755396727045141328628104806886654674065930050122029724072790290695789145351998103825595043593166666371898225918010085253044123377354923992949835036239512624005776570986627802575365666260457728532365508380541423428522792120709626723066928999432523286071408599974548949896905798204376210650442273174649489871491633842186467898029548037724493533954932490551356352217411378000557739401780429147111731918980988497789337663923665638251233577681573719354680546341683531641095212028184016445143624131786084443857192454308684717643980548169088565572868609520920656525225940303398395933322196834413534549121713176377390103371636790325038175492620265423114441458817149822153698289963337928968474410997892206208382694845502712542063025369914409679987778502915733062576505266502439242733242057718774668665540714841400731308716616444077377773943022943503626529274249506254496475035540116633047800207655335845065765205639211165035499716894441467485067406524023005102407218451332956851212081629307024593838618022459902744961192876480510441860338574659710219195108865180164396292339049911214626533528369016342943998060405833785391501152785987762309469261400155548904736839345899659702450415504864106412835953753160138349576713786103440191629941953491258542593634224017152458408939028412408659541285576712448558910700796474836866812792789185336310654371363177154370488519781681329213064431610605448708605249507464165657768883936555859122569301021378983703987420291668125545468578975858675504607233807195190118003544607160152751647692579678608246883194909618875488974664438342890699434865864500133719600717791818890151493365162471760846792545900149555839493198285017277237791765725126939695773571009658317111435902435364853756765572582336327333528026608375751719911144321844912893694820256767839059199402783042338780405702993990360365540896511003640704823400936881599584014624849686512725767501223537250967951252163319107939424987378297119239033537967010494034666729909045819378803823852047396774820569576070729851786926760672471887742924741395836192320286660742549581169342080027734516410549834922973639224053842027658241296530722364347686346598961918766291817414759619418405027406552734953694579871848792286574783297054657347597019846806858899122730720590225613321332175825106087993754969018980543630319618412439428413038012089524372055170308948417658072555584224678940690122642773046529330601730028674241345027021984762623120135454322449967761638338972820864500135725989762294395426767337401639950188903549819716025631006534303695687425913711978550948433097274983971716129265534014677395731891689186514300601672988004785419709111708698483220870091174174998351732334316098397751966241696908667396892329801820911699202615189476594669312671664089431052337664704987367204319958872463573458198826151834182722291003755590363791105488463720457246622347238931705906029183375300705547592403524077679019973878596745443107033719624717778102870652889957948086185192700123888688087808379985034448783631594648658947409413785330058922109659223866977760822990871740053370929304066377932458857358471216200496785412104937921723547529247004836386241879089764225487392020321420126501848954402173540694524175127977125896303921923300360144804278296037707923965520425751097785269968669568186191940545327284262594397138240612094838415834375690130991385829384423294936393089125875647687948018721701442524491371559310553054518126345775815856141276905028484012029201970218626317928370173319829867708466734565076632279497963715794603168723751225524242284016264837272395609883680945714019839939986320837789751807419158486801859496714465665830091182389527294642179922453449316924645699495522604037946610065268185593350297110529729091617017776144619347000102586490286695669814540907978811329195673297461473055455431624147551993189675150563795204686757958184858226367793797742577752172089523510885983391969686734821257409346224609586229324259195432460271544746327144650163015820610443883102588687472827920329395416528834352127425621242658478182336011639317499710258019497086777933403927173119241105590479107026254579091840905833158023008602907264528270850944042991232032373682319198761941733400369946436413894252185685606076345824297126479429069551065450399386580598465619659678926854043149942163274419139102274018415755263680997427455886929539880305588895200273132858344602262722215511783681878567491259828996513532284130069753906854895988072954301671197392301844403687679185272800579932695917662345956668074900953489845988921207059749877522443549625002944743437261104134401966495282160786609989320804290131109289926172479523544100385215698593171252135450819186561087687335574417403710899756436342451324653646688574882094102089889383070298327409800502099934490314439642700143795065493555075383062247962041328539900694091382351811815598367820683600892064748353528340973451327001782662991118640853891559563696427820125541346438841548635874622977192467726509754477546859083352454267204694790225847136555273131199485917852573229706463825389226339369219944889195806220020400519089681075993586303792651446433460802484027878933471943365708017298793471339298586831775862931357855906921844963742418211332697543309929825559030616340758792739594611486170167811252570456409058495457198799665584422299256499967923607195923887001010182543724891197485310192374394346488382200605072970848512419419937871869061130551306204485859464877068810703127473379949788894672105713632862805130032544639926035418503601945275522288240827182050004583441726966024817851731849384186082403334773292070794254035495335821110745764208762683530316985359177587879570151201979542249202952297298929549863767025368597928289370474470823573283126663241760191036627958405048258086509448543291702492262106988176819473119153678576777761786493449553767600627504799706347923303796954527828643967774998063501944633217043029952716290746510838529540786378426490682125377392660523265353764189586133193554033616538483409755732024248077895012590340218873681171482048366460169793321314567750308846381477753689271107055301685902211863675714612790490894651047763978752957125531961644378445155276635201825954791688609724038097844985159990351450673841213338736487660618371492377446221733692216544189207846026603339905363641507558649756740743600554798230475274873573197094831038097975363498799220382934895152504872741943703073518958669495908296264381443684200530753293186508528998585346760777408228028907383819914699192706121551733972327423429916063021822220934009674089910478497232339806423620341952016168800295275077363812712248878973833957528213232401931120336881326121198035328195480563711526435411346135260941716814687242032725612017494207785858202096973761076996146537133057612898570337569022943688608269158654954737134798125977315420277758891386616115938406114301482909579382493721116136046793020174925226531072488816277214980618854350022488713740600737851243950796557242080204397153829592092079682567607074090238947164424238125598729919897418443151470140575687287504124257094706010032977192187591701980771458452799034888018360365890871808842484470481220417339280971416459011803783074622625866674505216352002002032322279688557605024788979551238980730010386034846082521438309042588974349419239285384914999181661744531299607913308543173003698004841892616372841126799959822739868275875968526320490201791829804469375591204759952716322039159080889511977385135805398587076581372753989031431121572512791533288878380427164662584638834789911311570105683659301111716524039743636667593481256374933843999029475318376820110900288204176102844178650919113756526914223143326017182158874223890405417168036868696581894965270226017336412196001468559462578344807963008614649249448356862555811049134377016784768687475370779360798450964513833499471915242871285595405715958774978794335942168673902137776272445749899140442338764387076920014710641924308850608572068814956348488708637420982461843274827911281421912716649239529179836850535608956696770726539572269987975375349063880318304717557806303984627275521950027229010417570105608519994817866353309472116254805484121935864132354011287601063901590083048975219347077246351163862658613160625171657732242620247942108402057309582267774770662928202047153266711867386216994695557664092893286821681441609995031574771687841422658353006852864622555631996548729350364663486938493930439876545459737949785136638920406764550879167258254633048691588890828930848088798160180179185643699875479756891472716839631844685473559173442121956469673565520911597027408541881762424942369191495300702496499047916199691454686488601782907119235335599975604123537002739467448505475727849850935285813481570456861124185621891326631243678594889587362354727196278870084213396108788244422744638327751398664777122133287072383759849690817019175231240314282511477810412589924114358051384594760471658828444659487287120909580011791615050200612908771871367184627617047290004894163579576473696858427514103327663724757950567933589622693394276241710748546411301477585577394633967118219707908597475489803403018663227570563790801223434786191926426244340723424886399366353111581850912667349426723685380250219260669091586435416589523418208516054037901140985976912450136730835749454021217010176066946677823955777327010147593193799893203451747630794668770768485020399162439227969102965452035164901422697370422898944326043151173168729530424401493831386801127296121868448805754733835327977095452641361193312277305038447348870002526020027726877130747755020364467046553239958321270094358328449170779304048031760848219054513072607805059233242403526009046609524835665061736240044386994512316409672989499710710790443030307303364994140085925020829263788988175295022516642932427083978380470146164018904404656894453636398731678681821941919619875391249957814469669377493480687587261136008391341835312870341960903005399503637703225524246927347347487416661424083409411969004363026063062735661335597316877110129255025603438929691502112320987661761723536153582298380136716256082500580706824621899810849320133207666340470514717073665551111028704787579110266817518942163440074118396453755817970370014920537405342175424605648019237645956459650682862179044945442975787078906042079701278604061421573046382393948807908957634188077583348401256233324386611163750685027802877798339095124969128740833654064299024368396973995957221209192384292507321453354100807521704418474606545635970483388443055764431034229819667287126048782696585805541257884034140395536881347764637892171500442106637788767943974311741001759900909046746372845866870682678131942718791663794315374478198403025112515086415678071805878205074191334624945050725678723940099074618608729755178080007582353828973237656300180175723560538213866676741096378744611965139320486139537992390349873447990087813362431917303201764613779648258969776528100985333227368938555568138607812347398817538837829445856249897688089102028757027908583163333928502681654778493761258152394710450557490678543632880064664488521284936668033124303740382985403629804022222863736353300144693445713012641233799363246510874843816106389390235256821339558327434279241811518802348644346846391046782744009611813026935739550729459067355637733333346928811837322814790118444977632516982729543729081667056985029083832349846216633944928015705236718697043745178322945742659658329073284563690892545433199676761135834020184194768749074835977308154851943341271399794469200553184789965957044473248379439697916211855675964572033896166793258547524868169476987093709192341875585052108866829644312727369242300835570096569129075648585058247772289613819532242045293198308414683575720319156667343123215729207294736785983909165150176018957211705268007616489689657874627189231129183927651281350395625508107683423581814941270994169135586098571158347179237130608625580107493120516062395953055714010933175750027895386149516768439982467322473153592046087869180502852993840390042137069133341329008886371867694289835683176343369903697283062765320897974966418446605997542912905029962438563559360850092775390386448773429218067690447356368811279650964970095630854776626440686377039072251540951262124801676272224007621245128496508034256360558017991730562324150226831282746559911654547309322414374905735802680674112197849846986580331498045862341561616898534880317424354398229123422806516157564895336641129417250753816240556144821517152637099691726817275920663093230755628544869500686008657477082359303892561405013759666524595148973151986602276291337524702709206330756756921249620409042138728802805564770613446134222054584802584977787029662450459427718900824522701650879854675124711247911280292958077607183228751448823081381484047170622097084064237050920342970870813760610200007017298718578243588956309564924873005744749049941305681326115457365169991330033356779347258283797899395442853516163596874808855079015026757430217513238576103085571373280424887527496059223525112334323015749244537634316116495725273639565911525892079446687443067578254566844995848138353231912809798362781426832132479826749033566403055309008061003588200812522411993683487128323574387222248269543171148489220054915082179170590363571567773538457123016044880890134059129298356153705422625032467580988853078467821472982191237071802582943596621101100669804095516492849642432347777672607841790614058292931366767641372693176170376657034780017749455416512913003697318728111334253364837686735636216365334611427143125989475599081527354775217945336779147100408234391975935009557664797529569787031722720238607309836919287034877243831085755473604535690524973670924573395690158033951260295949681425107870228544611169404232857088264606134091318875317845534791722421076913519702651031236828452443221711706635882805136410189620437489945638380673727644655646044379870308250379064524202476647778621069234611134374489436995011626744786726441333551900304143048704969507377585718535460256095478503120155657796321677607936106301271304677955265841302421967178258013433794031644319317765174787312380724913554765765723577972561657915255477284564724712163170921739866763028894759482204723306610174275168542821117673404386133562762388916697897291024402106763339019764138312330794096245536875111516475327062798320677008849990202024026376986789182517209035986351277120141515582214186109458546909714943063420800604112478526828486556857892133863202756036159819458247465799161233627837368629526019186499114734634155806496536365720914608285743828508938796265613520608293925381964768212647034070480589464276600914913734582505469694895404976723471759341632933584849131526067654418641312660381508283465525999943269520528747818143845146825754013526856531155394981966607992345685636384522413897369611670022363373542715919297561377192195980257612836388234678897991551998109899438082217505310651396321613221029301092405273723446725997714266244118026456737448838953426045444798136752818338415361840316462051188681952971235516122480008348103304478853227936449917887715529613401187705933384246225446295740979446474027458813054369196906118770974446490899045870167628450986220501335578109416063472929279346210687863371747397893626233986647869824059646602989837982371627732796591309655977304885456863111309471049071558305118346101881892483472616690307235366344365255092376038281953861858535211941962239103699627726295214367939075015214260053441011954658074961219866760059909726719738212590896607664443706709505907531689668295229677704805521872678732965355394492985999263011179976218413505431828252078295068460378861252137497126153146734075885032056269244296843966046552657926153756603447327873683774605041403121868535883662129729488712341145657065026314892166165539990688747438987041036674610214372815754766763840917557494234282399112175927282161359750425254807985474494284779018062287484930803801905544062695732227133228177464884489200522882290904326750270289976500393414886983983568918831616306592770318065582371020546707896464594619310512503580681430710258456455575367746123510039001921579271424386642986041149196464894899393021516825033504765769436667190333785066502940937307344881342051184884116347679897416094821970528969986727595255736278847813050967634753127510073582794273886506157949839435670155094606456610520521863983563940707100841335628333431725583159840217365771224329982822203413635136559067079539078547056651515144445008337143537570154861484010398137890168545227900369266141315523729748272159768664848536937355909266800376251421209067487677095764747546981478248165147130957362048811212973192340507749320922145775897408707086484427210819904443659544515958506427241571791952466136569842063721905364911521382453974244322978949596635125179531366652323855125544257230712525871916562266416042742783680780482690465931330088617150844361707516325660407216931809579365548884327543694364503894509054841154819468962572161254924037097231021309887911557957767175315742709962127171527930580049005874971255836260544683546941609294719085788435707805218044368216747511834995101963001900668066845870658167801001558274207117395763542326926541422015289749048319089806086482922088974035863475246281172624271363295243674795224644065606937496039852503403748008463540515239589941943014126356783226611653189108018716314149396609155132148203499193492673292310539951533486934174932438684129533550963752988081187644269453929085072218834849643645967500888586176223526372052563350648810083180732246199905288185347888971013725818756503336594914845098429369489650390990893065754516753379454744700183821096200575024878474407412657169336127550120429922567470699142352047603218180136084093811177057852629619606057280054322185469286070005171772747944973448877655178210349150757630600334314440139312646760540828377193648439022293951110309923708542887829142615059432177129621281630160772510671084084526079640636699237589230964665103959401046035110818024743115656037643671816789924110613940777308282300877984325557495715906436897532508304054130119519713075269112721728012282829623152541168580065983923825948331465027686489964721364827572368161714972778814861739645453586562534218251531761997913359022089400183896414133218709117719364141943355685119481576246750790972951987980458068745022758131326578659310882642836528645814149304516796825846619435156958533175556080544681775482160633772803732546760055970548387767510457092137826451470040308857568380299903563178803161510611658702226737167037381348732998348216036159649037939567658526870747554915350596254215973490088401342451242380805669379686767760590018129680687127214251741866073827712052130302180626246223249348771768051159439308605525666378574831536980246432374182519643461631639096926320013030513944223282346020409640443265865695180478247568026007734356901676337910419643934603956798359804768198970340202983461423240708586194707345791712134782254678745992363588481352700498921977439252680409289651031628481728422647948391582366444604801420905855162903331870940803420117118596476976333324270560682630410935569051503540871206219762181028075725829394124412595837936903074957434229861504589799063979591400445775074015952430802531781929810821339034463237935376488745071660175145275757390830801507719584740752543094495963231037690887056640615339092542730215711183420858351547078072184988209046733376773405034901038939386638032960821013936531415981225731139879537613019026050583338921858468618849469460441854989437745330544654727742306918342101389558817600651799803616334681688944413270189551097717220183244697372736692420241627682342438148794524953557782713787040809881745211191501850426629899727983824017456940340696918157298785460543882026560340327112766507833296921882867431634812340041346052619718306980791589381550839973081346021514527601636146669725790729658673207868987003934683064479703748531791045641986363544610122764067596310339576019215939299660354200235440283388939484226799932661292371737640169111502345682287207342394722487304873728635194704852800732222783500344799397809670621786266908358104794705589461384219280814522840066295320841367166174539594789362842769713838831257888543194473649166922041226800203067373943434956860353890664618892376731520467057432131536582926639098764846934220161940443736754581376529438315692066976883190080791860311010526779423898460040152204992563350653886107561185481039346516750636257051634015132074986961916060163725692686375517424935835958302339888055423777913806110831344598763433084646096875036687122245730336792637168638308181764870885071755624673114590779128898779472342867655751865698306160053282130531713888141684442494163658526241735712736095125314128544787723538756235193394926689477769183413289745201853832969843632581428287356329145533737441780488441794556567561168097299437028861578999033918308516373111487406353427755008029989387250230433229057032150700255438649861714155382353845261907980151859628604225154753591430609456176088023051313361837932179245163825131250097322810954829790174963885976139827130802757377395276907840022605994102803117277670714745609361418694465873169660133287765432264421440930537763700914267792723448431236872976086217596593428328646426642585061756501091006079393917773403902070446619160655963512932279868964597066519012666331898155345262047963076366494061133495343611002165809920090102015556876158495448200529636890068716753941809610015408566021109911199106205900532539089796966015463938773344510502623876363128492373897632366538340369722042044073565646286398776273387210066288535411681743839530954215792129366411897089252186475164925533549609245465183528419081033863430131253110751487840845517487705769913858059083990523309499303979833927632933183697305898642258831565915555668348476375806944742208133769529834391695286764104641693940813347794153529641025657038151080074181713264050971431945384146291301301922154642317776986008222477179562042058325099003938153375052820391157413199519283336063102478547510536962759971906928627892373940723149704327158447739122853249628444646720599250540108796741339620483605577387687846292702607656090520593973323323696057374084675725667519241776468922656000172607742630525057239627003013556103088115646601542231442752432047883126558698504823000295833291418508919105261922725297266207560185533727533523081010963108451465673648418271903862258656453099627968848665255781880973313100949588284407650633271936059850750982624718973044560781618068921410725460135660313168427160877989172600576760869073116626498364453041086627842994827428852244819805529405041187909184819105978911348103415760024428912501699958732959539600204535258021850355769110997962130486556922684987481932161252156283233545641652318338952427100033806102326904254827115777825673586644377913886554711051711230677094193768510823287121280199073913408305322907174761809869174217848755462469606630386576342207383602911155056268518482828848302999727365786351290003446484744631928582245838332225290090306974198390067527094334782811724512030375592493718731223487290917415016598671408293843402142318931778658310184335673906747576211389080151379795016882758807500213527946701879553655256815719140131244178336137300107285943658876389612130781958097138809843168023455376821792082540130093959263890577998796982966481262981250934630761947565230302312597672001005700352834487708071541985435229947949988542152830694051133877926565201290988171933556972690014750728812241007630443813642507538110994633944475686929210525295228663219066983422361263636839778483492306369256988777640003869365622064071756065658744608687687232523446084533093889901109082638549601772990632168569046479037720554626934987096479953058567230148098602880072213864219574360595953779800897330211386747909998248788013452641880631679012406812460024228024224776226573890699819739333534274050963654247264909789920871696078422928023871401563243155785710753912581002273140141604911939139646448502162150640750006817465938223679723156651122334618183628754444281728190319219013324760821000376799937710762540445765724487467797588369436798865745652306541661551743141725235937057811137098179979249019173701357385292778605643074492911981882571780068995865484924428564819738167914519274952846956756011766377716046172344564009308073489206278726255148068743284464896970198604114636156491466711458130576863855002880380271684109539617587899116858635413983329116362707544597568882749110200519591808708070065142160790248917438755069164075627413736118088180106645178072686858829110167072729718023072134900133092370719380581935166454320512009429867254106918633275239178440881353548592506874521132985242697122195058011231807291903864175023383451572733141890443874260379069248155446397474601209970824456157534290782674186623545226154230020753230546195316459011803174779051375598408600032235617328328448404034222183614940897001283740703873911173476521489878021647369793712301007901412330435730569196522929960828652560876730334046122345667999756522033038547983108251141016044048995244282631950595720246747073681798567738015111419245237834284368341855057664238756010779609608035101104318782622126065724526997706281824060461707404470876173186721056169773035696752739941798663300388416996706357999214263208489822043280187041731576455670157058955682723329530043600300972593857164799866113656867597147902507007418450249994686729225717875206498880116986588493470315827600040646962653339417334142471436182916412087390483707345531020785823991706337021993151200727802389912185490053828276517430109113944650095331373605704339885976496062917654110257058565364638827520185444945889420988505637497652211161281071515542169776732412422738710378262126524894678798131953869811966621968898782188956697377719920354219695682097458375857895945006687976287953196262906080171866292537761495707501447254849811637858127870516578139094014527365698656158591099839163394581158215128395253261438919714638627112466599826244368030803293769265845525156561786874942570307257547275110396905477281697650213697200601944043522610692260893676042712022976987684230771107704507830509620758881822055237258595231190953310513968630697124206155665621859447393427044353340745337508116847917205149973450311500241926975994759807889066954158163391731791563553978523910748126825054040399850891114491315810743879731174725654060400465566718701939095205955303999228174538874082699536203639190754368686044407167067656118607054137783124218782936654526231797503011429839628785402208041197889265574350128642559543542591856775479507091353845852939487563939845842834358693721707899442930814619168951105624659621280714883390246234878304647868743852304254590224604184229509892411929432234980433656711388907044329324196399081363243677395419685421885927358887605602904830540838743239649239423256800927450076561719202374982353999979013267378769385264722909135731518641115075565578584197499272784748419128348684195291407792872164437103417327641153850663444626929448494028547894683746950825203662611562362651462356338016890522322980440726312816939184258193588246808456545389831094729001419674365925925060579241429317751166437907391975301910575999714690744523687978408059424469642521101511355766113331229818365159781923972091138769916102136958643543756341122132070338289114562906844583542264993158851209488174757545213346579331827174704610886177195050213345339792817254208038948229202875645137843625392705236283311944969499124025136503334669998600528081358483762258101527312512696056343145906231526712365769891054125921591605764923588432754764864895401906370470981154899400684255153298561334011789654555783740849730144636882443100758271900572820488985675653627802093337162510163736485416590226615162306380278995052674768332534552765643027796836539856231089231825494123995655765804989005406533607377007582565417413211396058791911658647158077962370253182849159368165346832080844832654644022183495803561950196778938333821012400513763055443366044360854750795535507711268860891536228094492306532282107881613082644925600086235081555868772880364511000635131568293013969667234145336133280702614608614470553336612906974709921449329272306653512891769344680731299165634872798847095332238246101412174040037624828127406118407319923410895944713800070133794033879035580031454667142962194938044627559919687771951578540260611633020655158328591377826245380497208355881851125102486974086060460086786661346828595721305814531578934752116575909200908984010785724909264669729986097801182157660438108367262863531771198230308412558579357473148875996724242353404386370642924670682306464710219300094046750072495462765202548549280558914642013251835470283561601286191264796446630653108795565810524730690833009538391003267387371571956966683595644580823957526477269236683168627333131924433202995072232069834390386233980385512463085743076730194321050115743385427571684475928381278643985520747922084427846040636701765454774996938137523381293794715913811598885084424784558687490062966860078467514367787296523751070384210149750519947376757816806640660504390893290317585326895906600519105322594549638067779361195589631540897721727269001421966597651633198121874661093054482894501886487083777856706489053517499016784564630892836940401315968821402253210229457546619418344937319472871841947303437320715177945528812084050614958998005021465588176390099826541604445079269150956700309289106441678978409192149159942786176047967441245751896902047701443767273552006573426405661611054018483455845387549176966192564923083397384166740432275410210010058475385777021657370602337264597483144726260460018790651912729474157290970505973066494057135762008876155630813969144715305107307369056074752282277786903072525877503872821751770141156595541952715174338374807910757550444022814789007735388610608687840906667961193043670344156405397110745088227495652573076169319400470408509211968131202916428466708776777367120543244471757516635193567230465405121331042674022701051603827308350720975349870919175982187289615005685958454050350785881600534780288781575968593958191321652192228521912127052133489220028211736359941737722694749316771985959170930264387549259222050187810081427099036940514456930626848170874872282514416977295289951345860474650391379395521288579764868485753832997427151088828354140223014844210935166133759549603974599893864549177561861864715677288351831133148904883671273376082282368333813876756697895369960162757333011000928093758063542786267203750086495760491942879573427548305868014319194903420762648079727854786070813084924755896461129169698869581500361686786695534840408584273423993297723005320342144494218961304402077031894918453307390434417505427356918070566213235049075077103535315798585181852391952064403130609613904245382720910099788374135458130470303039256210289617170846144679324729148240419651653868935516445441456980010371654019314862780717559213360447686847118017018287555540540364484049338688006085956925050850819836910970708400727542293648767031894332907950113245016675848781788191784541207507951930314304274847004229713825335442036554362214537874667122778003437795525109478519381878063219949996495609713569226584044787069748226353870477099361093952270433410860540766942510236302269346446731176622576546729097258758814527856738014312076154314909196429575437597912799592901616399501828090429886050950992998389940444894855373162548205484412038921576913602608642599034516113773182832508623570889762844055799866170858998078013106097665685484206182565724850545733098557379724215720827328176501367099918321844766804936308242668670903490025159940425332842446914397796715269388122005122545065162519749502584007543506110150240115994633730099533153020845543646795017467533843323960607884415205267049808820910175033757108728046707513173614318163206896670620048844717464465609101565787806326120503380749629010859985542983129984144727758162258295771887720090038476024676588543489440159864905851481384010860831166926333308998224695527936901667167422291463163777040733315856322024896448758666915245465840917787018011337763776109382594738490844154452645509401520250441903552432903855731775665069519976299395345546407951082369743119075537078041957566334556383117787106671208725632657982204273268800430694106723519825436988356875269871130166183986619571143942133551469647942655566440423401353653335666636654387780455494986961304811487264708962694164665540324354108423131713595371722121152873153878722594504185148792804100810503040712527529750519437556459360547048338430081454530574101460647212965481166701664059387854066954349693862612424716454411742000347014919279052294855502576239053596999236522808854679695258738870896389246500834096076464110060555656488396255905440306512054613563956221694420882897754983432473212415693414115228953302559341834664650373166683232253318166829957087506183264440965704473842194907223496827845768433927785868127876415902490063894849933773388839397056922311467720587378177820783395464410305385710930934959925670982740114240148805166920052296069256114868003813268900382958214679231310339802998423174213668065457470986896992308935766989679467390046418948451797441261585653706802916227462303892958683058671353467112547811984020199973088402427717951582226183792048116528388957993253142851347365915735643598796302892553489388558024089020768775117301804593374888539435317664793196827186909359827598872617347069514652825463599026451326251172647491969593519612992884171342971185446509844717804324749238440541021983916368743229070630150490858157324380179790338528476098840172124675768376604735421130769821446379040682751529090199974018160800092014935931618857584144803295154336363983786888778204064708170454940885332169467370988453795072909452551986880331506094752900818413300403718934207016303118855898560866582946372285735624730512245152157195299761863597381705376797554560331969598302912120144444124131590302834911574904771743248963551112964038410011396013309895014428415487844381495050480212054947319176063127451161108875783933450886255246233259942301455575246490268933060394793312638696550969860318371892261483117105515804388282916411951251624775543216992240725878618898260825434296214709377988744029130814673740908564591267112499510254322868625589356227487475655564926481854120474372191480107907702124378260055370399406128291425286396164406773977325367692827746732375779637102247739614734626882123657460481878976143702846125511101075468550076563613217414061609027796372064293369459474921978020260574517491370774521149771673122314453870188789079431102987107557834843300524045335333360986835149972808171439368492699459290776188620161383830400500223966938063724221746421854569406014575448767119716905015637960156779894318247863018882467309261601038229816876786787559810488207018311488108443986691512434312343406454777468703465221596803474766002308729814530173814096513813191626873825068563851999136266253736766433009695417561212236229942637397338006806502536689108450396821014262314602611327048523556872382779393555633420216782878588547602365079709059882037748927427349518572092391803003552820984547743739008198695483261718757427770779911652488525100269701449772912305142248680989710840429003131080440677513623405742217564996100301253422068020690747856877072770264866423917911680867632137873726379388564158042742139371264467366590164084541544925923533107892366574049508216974596630431382656337280992710122869803095588987803212997794719466087799107481488444737746961984017216137213532150485542260622478633110691197282735823226966528518569151263535996314393095615907075833970320945549136608012616784204260824877335859528478611988646341685243783397797000789031487143129023956364830897034315973483646040174990007879030668546499926592927133276576530786891505198317873880973741938390605277145257425024891698578707540504074059879676622056678244653838990019279626262732645181368835350487262538812667327667489571847906691985645998658879552864339000841701580835544508207503332364881192355758790787822083901085382632655821335407939352206885720829576349419572770797360665594001005701096327174505044001215576488580911988278195336522360243508799199879370068257670535364880454426654224682273839770370726836243562100424119656982015209188167776676921445183723710470778828117404284913941143106790827908963722053606081093106856805057280970760918734537002121551258666951509649303014819603535357746897175090923369703415956347457523916314726972426948751283752138199858286500519884382421993831698355604809722360406827902020120659351403875816610889756058319668025032779660949296373003977433778957885545628019613504838953571901260912208747332137972877322635525222177937183548274370312995048943186948519880319993779376648612233048581521147542511275894516230266004751534656714732684860631046031515785539378353643995934962082354657008641264079634834124937933838526595701402836809943023591701781544412541271669661256287644062201693881563761557363807902528071050061263663991273640345536025496193497046901352361394039389091344272095953530526773801742346272876581218386134306542690349804621149295858110701060919642348307566767695588300111737732363915355967678510114473639073499663494131774397187544426550817883605727218054672674882895512565916570716042361692875707067576838932538347787935441416405976179738853878973751835627628963867707378776132172442707857870388618766976494209820517008751248546286341774549400602619610214199914539488400423240343042041957009147613227471723878435667255822050466270140849660973642517638607576590559267650334798168402631901150278345424726801894390883783200253128645006269440487810586422254115698141756162909446148749931852276569821824314909842794447803751112532178940962443556217782734523685012618171425222516044834716110896152977710159384291063837786857235354541815478799934479109914845734547257635263344275850122061061146749895160601976968453626226346517279648190614257218623333732266930526259238779493733458552446289263642777075966417427199472121532021640644898345319448618676646347167649120946895138965144689951007595365950715683589335285296002626893468418793925532288225739649267044047726622808262597021760803661012228067139407696895977168004351844947275752088163429219864967362422209439462096483211634940781052585702927122070476510262632597273071576273420219127215574540055421189868506122812852186273668659311364124093935058028171920689699109383287893179582140035011778905714723463846447855408647950861990997754984763312551780736627391094042950919952452411230322200905860444163180667564178664006809220768363060338163900151622140309537944897182269965814970347393762317485482805474040759983983121979725338761458633307151373881574411336756965515563310424416146435275180849499920619131801123398620512156171310770888370316499935838471133128805720771824982114261318334246360482806224837148882989083409694922078714490277377785467464893557570376299499698232236560231856581187553443078329103088141403262036331476393866592124134839149492018050500818601842520348305385069657940414061232387516494965739784565921587002090519827128005260993106043657787261297508439519779771495742197328212780633834033968068391849567644241451334735470645436167405703486049789160338254569941230650020379454305066205215484770426142839964739414742943434622872281315423331663336675098134901525100168714371358463461626307019887636574464710364389962442308769013757654449541179173762551094275975696484492937758382213271692906936832962540429482744897446914969598724725981507148987392288519235316106587336620895455301796851308992243276408808300912014810224313372352077355335371792478543416439956932388903426327960135309554441095499394807205440352426851351554944995132128519790750549491601484752494201377940406761711015668950278543472753908239112350176598520120489663871226283022523075621326506185891656273838733338829952961295579172081148280403908323136861701253152669404278531277922286027657995957574746150872531210474978219721765942355963571247406283307528611590396983690158387245303219797313540382126273120596088785409302781188954934547273151092560039634114843645386296800419758899936816229070355876219845242360462658078030823195713945288779921549444807392034792404570086484363164066964865783742960630336089150550234920516205794764339991534270913975664879991641133245273592722819094923831707839827840649559021762377962975287761881702054578014633384956488173867080492394691722389406477944487754386326135373651213820502270415488850505346542643825908419007196062176170992230694892114123784764172232472869081064200196425435398806761303324107282209578522351843584682385090028128846201023536960871597908944523569346234806210386891981644677545459733982776756927022457534324632384372560710500123969003519516635700061689494480529529523108269517116559380460086742514068975701834739569497585894736960614373495007265985920529991999099596389981320924025544453610718392785077823346239394922288557123630998956235329609967302751206220805960860829765113203967211572737154765554274033849164923646597335999807678084806281552657471784302831545369132889072686428450081534719978905081117539729494803264448867832182955648038691200618131382674978518119959350092189696234032863401175612798170585934525637691309346195956724563822376311931265208079071956419737155656739773485829081941786831416144003983746092721747386375548559540059259377741302237295107157540179236782995898249581013196751194723959802940264826117091092238050436828218602889833619993168598386840809347794286545727009694522066392979189670141252885024372897208899428653574100868188429912253209262549191858001207580346834912647934409107442766415837217175851699194870501325165165182018660123003306590092274331650990475370451518446737458993367648847066397253147003117106195972045808110301102490721850156557402678849996007586980713522540306568712894371250863818582905988768893686907321617670943546046033243980823597891751036758110595972872026933962732013688219786224992803030658188671200786702374115041766349225360346802123165904638696380774064608757794821168268209030632014941139816818373759212335341902391920611870326451407950564165056630230045351232292237965175265373008428044933519581126886203582456028416971082151354863106094195008180831012554380566829881371699317244044558856555824270397371194314468390531565688434079414010561192981889971568662458361788133966930806534034120050499245811308855016186612462323099716682213018801010929885176358500614187250161539409966916570329952423934198577629437293569169338662785594913730711376959136647473837863138186725943208266200604212986253173612521968361199991938897930865835420791821734985236643653023625384893197871787215802474501628924812143435671850944302743015391829948511768775623289982719085648066190054770038278422450280027559155929537045799871698265023541912923446553040948366826295286814875322139786186092425907419129038233426860441985206300558122802227498906617869356054686561974975205865063089723300376371760927909213906835020648725808635830222802740781447405541326698084728721355069457938736181596036100291144142103250894188207119152008292555734451118311345336810761058002890259409589069655584781594442951973341863598220064853482201532290542901232320933737732819059692502736318082478655852913138132637740622353138124234133278495959551255935335101531828707927150640482933789315990171047943534058215715986802305837563663000893307175963169868780060031788892525326834654578337445968253328896665643859011455416800652699175069859568355391169233104830416124184322096662046186606508322387833161836506980190353057378852443172789075123545238209660404726204269246148871446295000852282686084480062474779060125555029178344344851928099865800603361147295553083939061838764456113888554930821448726092979304652833229209296034072527649972534967050392367520547832523945036446332283374695922241558964677896523742263789108276418313657869074282044347997009521099677604929702085316262104144441412814739360628120671899233728868637602705537818194162093329864802614333622145012915520051128254856029929793097190674915039945022794543482913980675760271208484327540513817651164378307697620364391471845145013177886536919888103993130551896000094064745321649206457475863900622456408513693130522525156589462660932391323667233771435986272602125040692725121045382737453915631187178379264136117834638815948289155437857127235968969052699983403534464877804209788525878054847718576600706683360528116355376428557133462505636350576502861742865224844798121763342792144745883557613682621872371751316770172296958493516558675033596832691544839953471378719892135197370984840140302279049830924818244418290289591549026829709231237453242172412174536344477040464123766345526885857675458800076843127112235004666785157052782048578691722125909851685350115252831610197941672423333004852455051282750849507320117165271407895531985787009864858517244383799661776495644098018990924285179067587550196161570282974528645634559521064288628485786624566371762407909506292702094479014916503870013316874489960654581074941343539191791919309159438884205120011183211618347497883728546014921011470749881135255357236670254825966727001988381501814394705259234327664969069871955785080256630915375466890798033528515159490821936990205493267641672120902045977418786963740858674904103694746983226708764183644426138305462179103784595513356780361697629015722375852281048018391987524792271743779588290100782088727479077364863832436059515951475752478361449310043494894985998163827489504452245142591343067088587570013036368187988650409214325641841134202427495565804117306470953489144290450001855431234837118439362470803820399125763899792650971556790044847141783120280790502971857161446855009398327985940008784634564480554506305762176264772677995357560506955169310264077397419160184102169361901427580916258925423557878528765022368079229121775559412070003081663225659134394992993324697147276342114527984407015917097006840777472797733329529092533816004276272371825391403514806040826902002406250885224690900259541923063881544254020302952460993818133339192177590041181148710586934055557491005736661758786436751500319065862199358477841746654896075136382622040839321593340033366573206511121121433157358140370183801947059696631706094207676586219843924478145494275030558202924577345100992532143464023020768240520370521448705207583519701434088635019260257279689854431776869180845911954990103290885528217409313897747565368338186667688459735206352597931089033062084207426128464205921173949687955264176975641675066442571668117105580187035158728297231374871933605044358508273533674114382361579804823166560587878386836458347253394735582670062676850870796849003580888048346954060681747107278030505132378791765661003408440395964547251345325814083412482267209802239815818617569128091284610432959888124283879635538553462828480651915786386171912648603111947024097274395877106512551747723340960882003689687639790953423703397462319337314147826117017662160692512710039987704058924260190938206853062721104314398261825848086184091578561656669440619153356051765045265350235963800175310184574619779168753169035600776888321671137701564895409106264846671976754825080326118025283583725684210574284763241412083552601900395946754128456736561035156298603783578158159671307048077445576401246916226119157514503497980653932086584546078542835063170745202665357381535481243382690288165691329585826784382670150418250330290879735820774527018138102093428382273447645315079065983716997826928193054815586017745051032900583370061801068536937808625756819161856688696015756832996276538311264963980567907450639747305404705310251123433359071662311389405955807940270982279644403373184987069583333973338275846980637047819034715453213799104364086721222620712384405616354940097289000516842324203136834310269358937483551706542436825905877334251835904016139920312364052857671172539572367523251425018679743319853450091095277057582224265375493170652600250259967228514703945155610446975951463402946301193670218047223027350855308335739562508732868265099315782140612808765562005750001541194344864619583519303611501812982836361636621235968853121056219748879039417791319014377068013023065922929063617372253841940381191220215939981968622837049393032419026231488997151673469077133699244518848869583075164238981894525637137009984379343631741900688225085531057055019115041683266599181579084388825074865051125818277873725528107078067008267169962967848663034691908399523324782780919235395373557140025437949243258174628081280719752602827744426587338910365593869048505864880378017694300389269218539067496445707876531705037060817253674229990020509807929998016624366702437297252818659703712394596395572954409212521688176973763354196878101113489166790868499868850704007780076399145544878937407417469472847978289918206526082612778012840291817394138857580875047967066754432806902800712659479634336354129557466497531682899993678697174930853373744298923277787693449526249647945612677256283031885143343630038934710831378030345165935667009377502554811431962613896783303688503221181127887875692467577038665119856007403457652384378734606153564052960832102302381095586037828606964458838846616639713744957069890723727627833272373466055118167030930903681617050981433621999788209021608023371966982801659875031463958671844488396852495047743987392636613051725134596845276276195506247680484288706478809176565940442172584395700279669545907126735930075401265590891094582437617966175379290127275477605286089991622154825229041048423058559335412252004705350179811100147822867091878284917802093289164017848004230036707432965752386262096054886063185115776514288095181487874842232142983468837112709048505568470010824053284773157978231693812628607332997864397560854420794825563230833003359226399250546926261972725987055100120735210492916296733064163713584485741054713935582082735888203083093435617722608453145884791557969174439545762116976997311534541372524855076957237648017340097103493854825435027687896657590652942902115409653082468125998915155724646740117774398346359040201307523913894980012261788211118756494437803263362897719284028300785058475080159159030744018934799616751437249237029659198360823495167415430305389077120547492662030214128197528507193993699643206983304981623501749662807443487852451520356195698106646861255604949684199548889874156566439627231599669487433133614794149951694651026726066778190273598108444057061763474009451668808273899905213439020004248814099417465475648974234473125941917551130624515258138848015143271096826211305250109983078525560850886674172359129662263559768843557831446278220005392766614540015178192230715437102437438350611968392949284355451329329794329597284401008927134980465315099008405040922965672089936180054161403252290594666545556895332832660970976434330358464784477131141244929725102286470554413723006215663410501900757275926377013059924718690873638874934866671173649802352793502020407806053375754906640016421243771353831516069077909104450005956289030978187206974069502363989050642140898904991394641402708567320832524717095393835846372805482156541114973788480112071181242313383597433127654903777688738205994806931775640153520192701000372854476412834246958091357690172748118630993867638418302156874424771322049304692218801650543165812753370746054058316019599906922019020399330654358407963000893918596195874306309275897025570126005850944983549431744572197144376470945680564357217529949566244221295154295515162666243841600451860358605961923252476989917449908157655319511392010553698851965714979097432885394339858739679913081069241070039376801258339921071820653816354965109697845537638960362157699815474463935507120303403232701760168035856088799856680117991312443411655845148872432577078466876989219697925577094251714720618740795868563187063620763963319952704233331641318701024805826512033364325717934293486955373814968975813821509528705471813699149924678078976638559074068111394015625532237701472740137810491227426881733268466861032893669672313868881134215050647261524499662026242112228274396252211219519766797107800464848679211275992589833769490465626541294461353235279163181381375149463617515861445810049623229896398078648324293022434381512834427850591087775195038150106319306416283371228275367276753895186607789176078357291404040429273401754536485557540174772643623729010868519463581653351925871862855757359582212707766042637561205837253007408159693261793050583997946188597239129528144294366712544330382184802653098263874225804052964338035883304031483484778976115228595131850562362401921515979704761275352928141821486532740986990519123093299315099713412671806641333005989868813382699858772001209832744039531878937175332910013291486082704317543057786782306190218492434018729253817751161592684800113583572080821689634362918115248078642891097551305950828241411093214795939059010385121484129643108592132814633866085305874622368029791198040433038703184208149731774345474521955111961071578988979118626842785959001618474584856308740745808793152324195001092284301619803496748985560985230383404574436577336409318197447157126305510947044677716329167391658373839885176697715473783412380741802549195639757388288086841081008429198904605774002873253464149453510797766058362830773401283527668391972658141253962315836011802465778786301250159226435954776269897791061123137614042657522804553493160640803159450993074795685565091765303076826116635208168939633318434328560478352686712989091869127203011401211665663277362842728132803381741945098617599183159373107872390605828503629918396659762537558005833887801169006478507058057188512694494510290176189661652662368168411348707578092974652443989364304641755726351053854430748684267437529676867296040986873826653894614489844527563719981937021546451934350951840779211661292647504576894343473489408584520168574654442554696329832565771955082541414997631643545925419650839502398972185004010523946633020315457511897022660391035911353329507193568397651034147592800591979717176520159262297040294666874941730077691645083514884157942463893456178373183615532535505855702695892392976259613703303463628184428229769404992244084044152059804637148150549218480513346336777946595617551015204834190038294026595237273401968512631618340931415259723962032320125203381322736118311786190999224387425574986813487648465552483257676805758217975560318608114186810359929084668361895454166348299126657376122304231062530481404132938745878038809760518903912554512321150595301879724185219647600272561413995844187429207631828400864028991925886821222470084493908644105826280155328484802621722896025513074825836788041268373567609053841627465189515702642719247850268150495809761410194060720575129724287514952369435240131739011452164829389537842629901158363912851436828281184625702072989705337292944978638398021012279754614112832929538417776571621195687735336187385757360480377991469641208577095539747384307654758106470004542473924297086463800500204154619936220383022920509603437236701834619547940885978854604928896289326108399046056426542404065635251079614383343417510107126055764941258537981003442403449540331161999772673124983129520657854256279966167434699992932293885913472055774487693510632169856872391269825097241380852497284972473135683576605373457687344225845548550683314419134686394579757786277886012740414667166864900316125481941920412878115685583278170806986903318187618990022862076795509969881494064469575337033562777466719369141560139449566992679323508747699754038379718416251284191789761239428042500891266515780645720703506657423062827627477220024788239731619193207108030050957406286586471244669307848806020555600309185805758955862211146995151787412087039280169851008079857499143710293142358938047153073982068644299178164565564786147415351024358182062169192810192995875666582808849692817221596778559175123348537585037591916286723946359547489626884750202134615700846106019179910305425958812567816421073223229453386644374830776084616705261629796764995642732248830270125370870713552573320423222845304418543119619753030322022849758196094349709318479119244947021027883410933515989025921438533931896646174526730706268840561990930652460845868452598333515690099787217452545644535832975847648566201384642037330548252938715840028371127710801328290941442275031065092835328193088062121107885474132062803575541106493764369177275269259518209302653355230938164073333184711116278197493173619141755059772057210744342080388975130483632028257340019683712364136918762575461258933545299425979992811567168785620185847928234302102703621633810756207808676470138190836811755917306926216867516814084401613844077482190640745380413650495151429560774314499434752453628451716862105639349773101055118177924491997001606720336611435810449319785424164376218841680941398067634257170687766458222825907636438788516501566607587308939097893526983271022656463368717347635971771581329654483684687329912492035668523112794017315200963217675806259644389632315969720190367863929889157902965375941930789937666387625705791016841287680581730482384002565226677915629524752001999541308014953899702288663183297454898362760950429092903121105289643678490827498040295436774022582612292480397509573807648590847942807996931906654023694463748620337518595975939763024254489003426789647548757933031187512219361073276572370424371142588520379598908849373563728015741936904011662253052751745559492260408432095069722177131655140323599944302749894597816309388437201786980263143396488294416177409769527082004963780499889112181976032764834368899246830391420552253398097648938965628094933092354155837949755396212590787961384399360471671317004416368080547222092004192659617482304268193437655940570595483383711294241074904569469287979468793324632750086541144399414043857431457287746431257926762110966961704182081511256395611044652559569907277554944443640021257555622108122869995814092994860341273984692485316722788790276943194920014000524993759230750971535741953035137758782854059695637922512952232466239055424100880842914347120415013309708892650606562149940431445505439849145826714356944813119754085758006112738968058066411951600294021484159078719646178370698329813743738538440177404984957469854732748615215079770178640583861933453679617618497495725264258621993184612361766977980080251474999172400173581286604220345979955093270404429788551961117403480444853594232812579315173830574987568681777675846760811949531750900080061683202905241302357932291619170428727434978070560657641936472825847040358769896943466228791363272372360126370713861648040027278844135119597000858616628806613398693080005962913656337956113971349288547496964379408962047413760711500777314808084439385830538007370390425169458537924573367044426603743038298019862776592199884737816663483035974503091781476526575225167056681360901757325592193891428529621273453936516333059301436632354655413359028910045997386102353283993316388201762356500833789133617936602970243351260423821580054859160275078383998590614971913427858124163558341940411065277365043083680714439510135881569583795309739643073378692340179871424611721229669903782026846402135088555427482520591956752784825122186932942344052883338530046419689631222715919473476034212482208850232300067113646117441888508770059474203513460904650737748381915821066999601173256536251335565504450078619222659830937793890585640665633416551932691347860036356063412487378504518553138370366410849157549185614009132628281011775264123180240994063650880515758136564922842703581271988022000159155705999755123533579631449353361934659566859171317893863533585572318867567812088230300850461402283398126134515443654493050108949476896100213068873311673648550284863826293981139367448457144696454767289993680681557240747058794281586084613896424171155162395179311399541907986640028101923085896032314144241898817353177280011769043375200265938047760721540286985383792215968362097264783823333034252787279510742308111553049874491680908115529329822024405785896194305068225393847598424736549464115685208058413016481166949596422335154979557702844938856936241897764122893170606067635590644146001783874464038767147723751931361538490612254831097734589801893814291590525509879161796769496589889922677759645566663863499105568135353129707557430004129959050181566432703408959100006467077034521047538102822751581811801829566056614180787623700196232031451762689494592022639780885968314866037448053375789245671779012678810239575907586238393128975309439082219840658731996163370321926391896490480061711939905437696203451417169302177281438652535064432541251282835047253956458528733427594664277908123286392596591528298521731441019390460505852581615420848381690300717663099705315694308556838117987275359044083626014946342500704185569269220165045443023081762863878815073326628258646372344468748936056419627939132906736159907969463662716711362938202354496276138157588192732207411867605818110051949251201593851135333303945012179254020623353253644876911460209101546865118418426298792355211925163733868174188262366238218292609255180713086868515787006567367154697524712152432436300308365538552577310048314584505111919083102668327385096464760445761204660432297107129485392212978909083217915148760282651061176630122921753167514588979550988068513310995569263280278929669431126627957166420192277087907389174272573044356839759521098545954665191957735860311726154880055322885172089530495893796026902531826761781842111304713799164642893326558404797403297250596455144436722238394934207339369533884223724682503823941883880506992108304186491973883522373754411779503227098296242361467352401130493122319992685561607429257277041953664901138616865610041183154002472663754478113962636348660235322815184604892535025857310030847484474091201057767515829008334257527596669048041601285070794152309166713420787903341991079436135345734041490645703358139166082963581640248873616134198846640353009712606078785224113840542480058035682224598733327566322995774232993143897444277180411531976809804505702380581322931447853286085343704240544610255888284847832104923856655337038676122910480114719686091459548820761912598778231878805101401077997959213053856687141234947980105165267832183733670885205401727773834270505855802917187942419230465378864894274243570756115102049518893005265065138372943340004184679118220752233615089519461814453145656398839385250138225065463206261676661647954951548557160509512444516649099075624978896265379445203126940240132549534878172652282068936504073265039159329212167979608208633237704724434386181309517886407637910469627241240307608920203756153675242781408564078239304564902922706071519649373033735564823833212031048430077748138104638995276556878242728483534269585446279888251178318403695565450728124801137448213639371175871599524945743225402893591623058887935175938710643272245580658228002468328036607699807773295229322985910464151254208781912743887510936811791025169084762780587720444362476119274867060882938570260775168176112328961480485783603435499041197100858127199910811740238849681291035089704249257976662055517964853629032156460521425226803832806146675738745417874996710121049246024785676924383899827837286991436124090017490331961068137688428990722048878126611703336277473292500164583368915200689590096942632326676720550728824374742347837125458585891268849043023928249220077296261514846520630002067532579387319427579198705001977577600384862207021050319174119850347394525041918627030129269024544472832086684528546641504175433015442189301677574288962150723996768465226162483594157706401501995335016275277969595328091623921167686379268176536060259166033911026782185424740186581686571577910169739054451057878599334025621837068550179092019111314703667918140145639516342803522900535560044786696567317825602928655297212288099955710275425563160665946315922446842536676101612024990923673534835764760312482866685389999266755145334859647504160708424618412887319986661834641416855825885637028573831915176265982510846379207014048623512529300583595018366498317359529606749730095244654035532148671323718816223627429359130536338498958026148590275581567743155877169535782179434632082536150886611325923157458272095216207656918993081885527126830959111226203300432797362223360040627264725790891945889260890170748388126612138291637465332082363881017611840105979095236430667249583756877101097037274674054596656911894943800161394376695434894297193412919755610923441460029416767086818919238544201023348479131918373860235501061149419903471824351848473890350041893683080929847306244374032102055218967958703969225054035868778620856751268618724828209892696571843118728769879434659333842432625860171560940482610870472124897640451104087321429140996710998140634855166654036954000125674068331270228996743265833126511527210700745843306942303107130852231714832069221167638476040933554621646745608260986673119777943526155758685573005782523839825431117356920774141815948048441493801810536676112233088796557413569729444939390536840437492384300016457968657377861625697180496096667735904238134186569943599102407568117973626493060465988689816665899659792902418259704336140543943738585499601561107511280629543757873989461113230147806614834762120847738062118440978841097672090984478049124839850613095336205614114262731788326215664596430455740121881173162470472693013675106080465047289912061465999074156769739661145511352572827939798469359987304554839698413799990504597602658118056311177749391589364211766498365513120615413751436067411762871613036919298421310738540736752980846346720792603324029635757918112111961041234128330924440320464119874009911836440386280873357627514770784043156521897669819771856303409698549778498235730524271042432551956779068425574156892859278097186766201800251133790204389373769471597347162438208311994268654670463478868227096156437526567900692609673475162167915884859205936190105256001372117211789415167209449550086513546368537005375672199681738456445555536532885275634745703676883038272513996655240680921584964692020855578905780894053943117874499605286850850000607081577616071614149484385652030642508916266825628742700929165575009306960185281492046786860266194672570996057229206798261108846784529285352379376533138375714040944137004108130154146525624811970400754770942986771845370108751969033741137231409299516310464231619876975017038967163947976885726404195613507448922255385287400470773472737125368561330517809188812443429518996296647744635826991507129574881132838400212319235551815242356182439085880935802558628799229086049810813723388930832904089184756284991910105879560917954894151822307390281048196303716838227822498740839265892928741333364010713762973724205099487038328773213866429537506131055833169955763562981773321336878576826276085886559890242103628383191417379824736276402581706322981723594371566510392309564749628330801339993123469348249020087357589678608270922961651450496407161531664959798619917084360627714150407243091768559226774302006583342944097812784159807437435015879933154650904963132685908763233224515832121023420755700410844471664246190780807470837001330843042798191197957211388433370887983950103595023355828092788284985790713264822153890925554687006050682916292670766060772699707071899494441097180601375319044122091651583427228336572030860647302863514727953825974778263568833596973797945889986431014737739187445480709162504627493963214417390577309129510905402749449008832443082688411116161835110098903962385172710324527573814236275746116936927199911434525492484585073923841660007797872667595763037097228416342982635170806878191914937075395250897423595443781966128379211619371142460010529983216038323478206308594423682686752913606432551114500422488527549240920015104039764674842137542875026809951978973634060314703427326501001843641762045714696910962366711883823819322473938218558014606585733818969335078920299581171994909875199141369562085181550672465856007757164904669362557919117033529415852519554285950868491706324533594017069653925086288938328471734461577292103718988783017568123880386376172818588177330367735151663834422220664396151191481848366044604978225689582087091578117466018271639538013308088859717561524692196877023124846221553993789655838741832357214027442775000931982178341948362498622906862506115247522036680788574293021905787206246258412320586657895581051323331730960582185291886394506919164493681749045659877695273774342313835921034367572754116715064792613873433973558081166569655234004925684411277633686166743703795156544731808429394632350548410162989117869847775712373128642099905984403616772899674818423814941735292201970057544772007608234547208770523862266869429791762140803528389477725346581826542710016309130993113485909681199115651359745955878381759163271046362361644239740538936257983285750894226230532124788904005140135844960864867870730069375389975888351346195737364359581698937453528420570763791625420295816589804537417345654112933079862119696622971324310925032695131247471493253293060332325149529541028596516330168324372534962429577794643024545495367945812542046756359595332695304649462407914854904539297409667802988299771142442741891008315976165398295070684264972828482385546886175665672772409211698215854893160258732414526496270589958406479496035201785400742532313571402940288344596607426057848521283864847226716971710049917843259790676444563467004246445729186738715359559260364158353085222260320628374441313326473626968031270351924947874684850183211802895163904623578765260946373142375604853164164187163127489943829661056279901420403987083962965690487063826634292151940133925593936551888680835764983552377633583839433559321336594660379301715154963161399941010624486281547355862669911780252019805841555256080678492251931489650014689989785365836806337054984420870307571005564695790969385551827420852552972929188455890180890082990782788106817350668814023671717185363702710571550151310152216994882919964629599978782486173257062837113151936933859645210386201584023375082708087743290482166843240002227422279695548599603487153882232918529720119003475159274626826705109599275942013358636301375399693869106878940949846397734092676187027479726966438162603126454851358677418793410222865687050718336002232639262084885350067463603034922412620662032268319516464106247317609167431389716045597946368167776938490679217874538483060952232453694016986365713675310872208001188150064846787799259302771601989710483012464832600613425015637015124285796382394601157045031065576733548861933941166930757274783414750305540209257844128269032580914602147034426240543308509431678798955912320467349582784799471807136253508797467718746079233451280963203269259468388777484281993901365449787701448794732485658785164877322112372220880295680376365372629288495117295762442353587936491575288744669419524005682464136991332222868037236190792277757796384296287574587997606876013048209296460992898500913312067564669769142160440466790253891841336009911986791214322341337407564695933925298726967682967348555106480739754780631249694576616121062848038880025304033655923461960273578954410256573657414449610069085358850326895838502763414579898749828611460508317940869792197111805491808518871160956455782895309321186418768656417358624944658242316292430711230066092457450497737691564555293381594825641206866388533126665592456414766450728037663974774319496428438438157742778584199026222731426567946083976935869481119609143673297812126830699209157748127899838724092268560026020464571775743205601529507773573599409805851700554095911906480122638181150103638505085481427145258730590976540532797724439126976842015021215702217946300137752538149368347686292768284331273043400490613493562391893038196539638683689346389964041104066506066162989532242982778876238914034404291225067479177593995304780247475798215512448440518564218687090889740721538181657150667670627820820626887724890518022560032550936920944375090688293017791297389428352238510068822119915430676470867178297011668147604614268378647632566081933041971202522827028908572238880640180295030802853568359139385777201290143991801265202819605848344331947895682927182279673589697967034134411753735127078437082461421979366312093093890802472539913313639471024788455280821713096456436739340053514335893956920491718928628434205235542064608484337612739086061425583199915587538016365546037079957355253654333683154927283009849946260900911374183332080177820979480836985286017956477025810270359155653371474999200178020201264281223550677220429501016161885621318804201905684116824247042857219675016442766685107654607238584164804881961859686236659179131497826210865548384522618374756049688139362543186594632430686379550417402666211929584546178772398937197510025490339316574270007734915414063224692435473563228371641044652389705711696551542692795753684241290307220333539424939979826655712131991277515404915970609177891567458906471156716532081006673074832066675796474990989037551006216409348091405554973232255105493811359503631679205059879727781626428896699920400393276316607298203330780523312193850131246786758082068235818044792290848850619065679337445178785207926459367250635078063651199064479223992451585611036849654755950858343648341696374060583207353148226940325888167476339157621536542760363281817039397626382197999034404713175852437355635886221382700369186100541292473651432539921281852749241724701049554426898752027938427489118448661974867032812350380202308162528673943560889003623511313857642882645361309275312823498951539126573498732136696522529363012993647023190909558775009275216316355994405461322193723120057003028829756923353447874070217662144259895345183962934737575573182763528213601398451822623779244738670157938556574755423745999620586421410273646086081825177861572745411472165579185457356522865424706680294785592939262186624618085058110798530044119956377551167015197408028985670106942806919668133544590679985975645758575074679817713802310810025721028859370162910864925915617363018417682327658276860255953117267714141449833240540571573689017528822461568936971274621005792990314863371132486527327859133212969736985718418286272515765455480093230718076050084514869032533502619476616154405560479455587536104283595802373920204959138039262300012830874609780864005977998888815130670563582594727216084019680168151218259246428618894262369144398760567497848685606102135519939537892338593675391926501035821923698102226341306638510014879226319397889140304064393900768521849313277536658310829467928473815803915502579365468127716331700951150302780132137024269309365061517500090812438563387705066170266099440502870645062457559151362078692572440014908032202772276194258332855494074417694962335462044161554526610589750872768056821179317468370986503330700192787388572410406109589901664341923499198205790602099041331171486824924401971252051017965143754882322146051662422681235708727365590190927479094504368716682566384179988806822691568845640942945117852025956052645952703875447264949771727666594714421784668094602274476030910546201124348180812148004120127750132639217640131478443371945696836682638675019416728290809899679160621751502355577416791664870976615550250689242714124876354006347493833290615597347749514176342965998631053413214908716985953519959892592336391535463085770117509895212030808952153372694967356823624756249537901965110813880302217871036771298304246104719757537753305534901409007461666186228385022292703716796142474527030393515948559485724270451841643376365234627480372044218703883296195984649981261680143952897542575334944635336569103962423803555534811681101000972042596927869490543795119485630352165537779400412055630129117445141259914054400466523163411136506329282503504782469900330077435907977834341162263428228239043294475361426480956279541156498256817656082149723488649914316118911529633380205598100069389562254073994612650999872104276669459557410926938536287309106920847650225758248946972575784111702990514431163546341550594641621557160155530225747981247575748485699802229792197201060630944834311771286158110370285815667971976389410412808125780252885644208458451181791367919076398637560334760633731335332569103158195563973780829255949432307082183351343379802590242632995841921324564071379372189256239774002203928325333521001687246320508254032949499253329829296777427812396209360747770482246242590070884114020892003833022784786145090966642200905945308493453710988821502144690922773545732488756291023685460827794051507996265592567558218739282447148299031359657143667138985991229304214547412879031249018258728649851383852624536489310350174524104119413928358267810365288114415363272069498417656920659100217851668057021559727681496390110575257286195451272177480889840221867588584908509731922734214566919824800678082531061264015660557223232585420166498997152586482840372168478436531803637454984603890506055162966050492990349237055867887650347746515836724720056141613861104003129636199072491940520080600494178125221628933106430001969024245755869508276600464267647888325360000851266465582253265299824604654325034177213137800563598373037771706934453857047024384388615312450131206224555971526016228707522368551637103517949068930697380494058788565411517045447378819339068228859808510492166507494088235324522956956807503070846958416869849998300731575915999984751833438889081473599841178190939614536353909020067220695856377462479742612904397882079671158597844564032962857688128310290339492280431807914944640310843672802339347143416705130282510422076237982855664129221669254853806262876885972084660647541550429648064817826036878350421198305601965416336769959586510132946556415629593885608328734073065246318521986518798452348662212953933144171414693197001360511743442579994916008176228507700449762460931368822196962042260716101097089149733605681413336012974043087504993943668389411570613920010850348381744402091186466545593192634515059132708204199673231695729297586754386500598218487257954874902279779418163525778360295512285147444927582062321437196057583601860106011143844226390234528125964576830098883381085343879364268202913664957509932698462936407975401330352282170039703569379571796340495420708265324623844493484741389221741244603386657759095385155222853786349447819432413552678495696179614956304809766898854055987154219665287247558651899363979281762634133336287599486375770828515263504335950166046130391649020425414422477954648864445539655636650693954586567642107688889908584692228979346489496514311075023374423806870525701518055272601454869044376379231145166451094675831172097665634215286506253475130937636299484466475955857958134159892538397537673253484133275039338750557192578247246495177438695093081262366270727862750604615280084947750457219758180395039013040591841475320765394380163352036056883220368284718503126993208727638787318300299031131662257968532898461091343621530079088583638925821517880990914474921107778739679257556441056756699384204914095548322429956422078521901931533095289428088689530684023876834497704540559782434198289873472953909091481806040388731448387298025783858370880897873858619027921932954895334928682156988709366286007930628600355557386222935239302708464142047981484915288090120968454206875749541642421991140042250134894530975555666236520701690025278374433564474885646859747719818455793738845481713554217295010998161169298875307808236830763255076695145790996018757911333666832640692597764429929523739554743615464140187048567872331249197673750965236246043454608125941235394165256537925985555588398482828188566101061776824439037788513029375294954456649813435676623758722125084603470999905644335910696960046718472665391851275429715664757677916506092971350053004409667078831297707047192934284126864645115550589352228334128484799160267559370563909160582520940570613464019231776542965713322241435977938630852767380624613125100582056055599077685868454996154643738481824647929418066616453484066442277638636486071060310777916519463970617917516879014605811754608691836283724558678269074643264028204385194761948864199917068670050006731923580488544060530015012899902114933224033776647191210851761745612465196041599536463608896893100367573474662495810497082879414780360666581868628100814406754963387758465905743820004290188078474312876151220507084461714164337100487350228495535956409183199769487592280341798730409218867254044917445772641214606187602387733296371490595812029431236066567308976130897111538880195678918096013711512366967391202823150585130821179795049988719840655613879102178942053622053627917223666400608282075149180480037439508633940421446792076048705888725246384191750183127954256763003767523880125120794127222727015005625422915014873758750558722011129129542028994128139935687816536059994413112411669329216562609265135357461265584034128370707520612548805225807995921010383748488935021148833355269042491168675415499666916986246497398703916400036794795851942144479469977974484272719845072236794003425216060575193611246665006732091716803677773130494146217571065515517894889286648833480378693641085182819240395532576353859639773278591807209600875943553240972544987082077972486492523293237233404171303833677903549702135615537955856877092046554464795870344733674293583254188253523723327665650530847943163931104553227604539539169921207677905151555439969466732299221055471606197591291839058568118626304068954892960945665051206868507737129680880908813779781247661893422152400472626535126854693553790962861784202402794587850694427866163442376453197381900685102225686393660900292898364852992922831160932383210018863274125904938695305282215149593641824122453912018876210892687142537194606334490336715668024327671286505794461635533848054475746801674159078593490845482539602995901039382943559514049721254586894091009671557683830885130643067237103751871184589080553755238647603821418431026306809100004912702364901946375785425780869902503644785982187417706036883464425137516440251938850292461930797699506986031319746683137207333948662682526221641615645731019117714979300648138641885628779898633002745862326394144149314762119186389779381414296959362892711466062263150860401846198656204373263848881500707351932651730194047322833262611943668914590327675692771580584600631816427239411812866331254991821360339771514444331515457110751937345303985283636813722322319666437226472728626085181013053152193150875303681601432984985671765119076930078689351055104060477808702888665720635876764441209001647333210119040082579460408417794783038114197385049686816430591239153794370171278725754712391609388957414736460101834364660110719108131144142759428321522635298239613379378312685715732605857726414213580557907584541762886535423058038960908343105506840528848266177421800946222893063731646116421715577878870819465790659506690746921298529288983332940671530930870547325217298902020887178379387986652508755770654140625258044007206490117397253569845337114473483216389008246216075202313310656112655081932604715136523015958084184389825966374807964479892052466540123949616068613266383383836252167268817909202066597793546170222672048007777352991996181747448689149979015020360451727522105402142622843163203265776890895521212287641277762684319960983846693986174488101175871160565275421128464732142227017096555409048227067274623580558359582295909811181413762920867732886539965811876217034097151698762433679417502218051762051947826644637636281486577612088639042325999655010610561877975015590511772087109755581987147221922199506983548581851685402878391269075899266477974412720859732743430396550711643437917964243740701672184754530644694695070802345787671672400586157741016219307657681636288077715170267218463496004486129248641391017066676632695231020929627228212072354081064228788407761888275755427238951230330287221607910574052552105787990961984854907345936610927753043617993380334478723090405491959352891455206739109666959228721415284631626719722590281208742620039030293459483994061628983293472175110901627224473216863187126655038678739272405923876276662649566976396654669483438633908477140641394950397343507186628818167034706631326576310016272457444027919388027325432335091087654495079446672909051545890986212070173639587678559614967846226792962688760613775565765844379651752036115756225520652871296137947566131624078700501206976715782764094066922794607482298060612079660370395577884852048628545347262785611603817196146209008720240448757538987739487679501253160203159455063963789979784602579098153881454268663453548521602789662280785007831049595727398594793471010293589326149699405816406692952513800268543229231573331281802715862343457477592086821997919392158765033383948033738778919455737772928535419792429514366823796069463016932492815478581676053647515543269148974180785659551607380733566990574831700245290834031928623694649558728587429721583951167527322132148481504747188225435789702160417801297257016411544162679573095006112772556647597868888879174711140985402022261974422677634888458737376077282995644290388626937271036485743936806090432926331791136539050426290369069667132729174496204167941072387087829363278666830693186789613579395627431455031452269182090259822916835251151809365581694651998282942207624134574119713246645052071043442562070613850467822518525815263312253124869710201382880943209559563115531594369660298779327547899785129286767515959977661692454321397173842170018732240410761294727287299873987478592363173369227403550794955469330496026848935698468574312441129990475846942970026889632645777339475909097146597798718302297675337619742578204446801848296802736305861894396672021173308824879418971995932236561077630664773660659606775573314657048793835570326670873348567755902579460960159070951355597262326250428430101586660330580417369839166460329474562577882488645983448936917149117722971723308069515600919857490880979314939682775675848349435128590459482265978035095326861288691498153867332726901745088653348848189361820213706699251627955570601650132661643264250508855743878824281117215544126066966797506523688237299090877681290732214816741337460124636871620720860471933956154743656782344259601363140832681268798821392158970347113916622144040827813655329692018238879392694681087529944638609904665545088418401385239322727583324697375332016351058454549127510723932449283668312284221172329594434499504625520287089426867941227057317407076174885797433295139405305325239426109015347421232837195255210821081123793415849426588227418366262732135574458471836549537726250516537503034644804013078105872315706084054006271145840408687116161797720646779800372035936819424419013587399268913988197570440062775335507264957712250063730964546905930748605199588354039342301323553104890665816630531649575175333610509820130856232624073708184854337138687084185923280615066987438710555634909804040844294702644311146985689512781510533098266522515514012505320508448501525668546919210483236375697265322072270344804101255280798875288113779151221880433687946683500968419243323557752429141014138395473400973123297922470079199228504656239708378245383043322282761432529184601120595338655609546907724849269418267482738589429519567936980127676028921232613552641326529844834861888550722482054349826460961208249148949554507533291287545098391079849451170092668388965431259076326903516160961148482520000288932308505628501276718471199942226779120470495573569726072662452186440878722822734290248840743995635624003554168757235271190032090468666454978864111222553028920899213392806459979210905897586517697253049912978936984262277829713151275129061926256754138810550303286481077423006785373922300956572643843760151374095115518534558630330444618084207303538221386890912477427124521386342361269112901274753035329554292755316458479385031382543090312544213100805603179002193388911287827492533705621748034843043048296672055831121922510017865388928294486586322291252620070822351184814315307983259779227268460547726640912848657463575643127925999475073447840616027332065051580872884109614198088872892855720407981290972801790888792997113539861683780127633490403416412395831591205811956578402949921461095543442231798301603778153985431515413066337766356967180158286461353913034824601573901241724963099031306748752085608171915026973773772123905390798535010121905544932716534736172362826408205975409055883164586896736810960773737070280937628967690128079843736733663396112701994618027847293712581328601813377764795511356781370318130812947020991381282118209043029617955421353229486100956970407831257160015056993051291026808259548137576789711076178073851424257574097667555398317091219752422488659004818168791844751971152587306640369312981273295201099140132653807486583204391991632548461928320647900323308552428292535967176331009279158381214692394780860328130529131414445007194003516940434926365365813311465366837267105810751906883523920400751228139044468044619838545426547251386364554274009898056959851434592913658256292247778473940749432972849067126710697306181739741173047364652381661331215261669678329496355280737592208191328652682799255714114104497103087448985509025251149017601052714275959921968223551506168888258326216327396102544065688288475339785657767090110002254670757085897455553870459093908517065581013902944324721904981157589964561907346993668614069740856840761039816796687779261486053537029666443058650761759383375825915968882756911300751027732294652440514991358439541305720736190768113036753411524232023103173950471066659308144775783052173716721022488522526416605235616869070373872163465018834071684103286662636702342392914059776261376212527996075695722828198567675442056490538715992397179541489457403629415317045481621305510028819222317835752898971317298330352161978115820476921756788880072021712020762494074356186906949229635316095742096902596350659788803739021897152347395246637877548160640008740537026475089188657293214502142656171363926414968168096512459584407716716963550050184762188151700966467560403944828367646760721669549136323900796367404886329855592997850735599213092493076984628621384776307337529060139143287302206886017897032470545168986769454014770778419025256414562371439011840048667476681580459188177408218661514065215541545402739462944737843306048682890514296805931556054120237169345750460103117467481467998781193219885264792770543212831354494206091524131606719945675444809523387660125550862416817171884545070015361341867730955417097628100550839132051744416271972270199148260137799016713619482031064509970358522549382603571710710572878234464921396769792685534295043549904447871087462056877413605076183237117118890090199510530816070382265718314162035081572437101890548951658963734507259144444743309502942833816288817176031266039938902983152453937051649550359543627852729453668249646667570218757363223941647229871704600774867515392538178467319384255103462029200745685050510823605709246913211374446248712672894691142867993053207988616451083516561735484253473057252568198134813226991432416323260425254917337076319068149429024802833335555251253652672783193761489802864286986940429368111947095855033383050481259837080777149943807827816940079433289437813920443840283439285088178629788880374513045201029026924696194103700104252905509182187759614762342939551195811723591731604277263020842405402483058769063320726499741310379931358447807009288556038273117703457185203630440399639217921838357727075125225485908663620668348942405613610071616790232371551529736296738297920178146281393087314849151016460240903512452972076532254361239868116004650667533886620373732752108415059022283378658237125474199769169697720742734336891677417260190013950042288602942889369850378826625988439410915604599645546098601287281773088652668229364391551083817402489848033422186457937637654025409789395509937959665028410913863381302873835464535392249645044783269018331199576780284861802164968682196447956874633589846390860097907055708623581437196204888319131852903034475266943289733248596664616066080111511269861319589700673252430999631149234394531378232213481437104488351119317775268374191201969712520015624340616237387929255377941647640185043931634860980466144267300549972039767932259720491122999441084031817803192816342590489853255492394261985909650550803372055516085723996607453993496005450491277189595839323512819723366224987602116021360242026799107446855829319970456697413813542904933118545770335913693530860019453761694245837740306867732915957768846695947093260487366347034200146556543960633694912039550204407470992861777808201652597500929961969670485041508149254798792612082064859144930758419125268512662681740319816937554950319437474148948577636152970342196230329487511120951930684716057754786363766015343983567195348049176803257625190362535854848873819889562927563724524302795435618535926234446590218452682529633703029592866635963999301916855487670024188934161673942610440591562134538289738943283684574682324795870399786927227329206552357040594534800095131923453222561394818889935008241172290965840190057514755238444840376353497488214385870407804611068981670484633125075437030932575394712358457762394614195168420236788101865122331365630384803749417939321221689285827758376518757080639503157942380021856256850767582120426073118510665138351608586143797973165347458406000047091078117558098720361756770723385123998004615737577244499636418984569727863401047486588259189442195997440890160242662072957058611880044913830021386897802638772066419011464196325718371796591597918573897956207094062955933282256215864057504968584708643890210210484717544249462083948065604936767765868895157685953417579671915503813216497196566376943071863152155190781422597657270993192937169204023509435877223608162870325374018228231557442508401910590055493648471582237530619823781350250735418067571125168223999794044200356910258959047016182898634296700823512538958577153483178637556517529603284948959063853430855856523358799354325182477911057656205312121527447575362186960664164174055437707095920633131902963405627534279868448897589441523236482058806327382243549393380716627630635796904359791735255897466584196125208551248369824243743111554480526410579026537227992717527733611116532843706153867203396514619717407183090705011525694868697980532269366586776896966504497227118972567227264514537164786740916516533635860158759475725908713773567276817796269468522444205424777542884866672687470278653891601295633533215777030172674036315750804121119936578049776294077367925251713153359249021928761557668010626648327446343977488448678075617893677720497029151329621551413483317284039257256477347917651235104742721796101253215230884687997753653170409119550845409837738530256930330869993278866153105948278427602980269651491830444231889356987252840101067030681877520107583085682106485747812380447291474898411121039114591003292097975054579800943513146233083749742782360049243098112020122808540891462490030097100411919621720986762746363105361150530418103929727263965335052068360203600501680293883815102968369535615562528781116312796005116400016213510279989627408917625671322879917945695295977540941703770691206030801896274416245073717695174520149301281579366686107197125071255530172016186828237034389471575831583786103779875150409098316779127448799661809201392960536189375761774412896935100851031037408115485120840254230749569270336931478297131860250143250638527477513031179812186609248288143304850871021454245965290699005761915110442627367303075901104241225624258571621452642136515492339931812159236392967850734993813003244419436614868386623223991666870355853326339126445486934625535789208743923692320097940746767425298629265612844080768202488841633881451827349854132667715724865870792728908189371028618202173519604426657456728071829975581218590027388463140687333898472456081003858137822437149336276135746223435602998869103800040814142145706788697327277191548305334130150240990319350114963146119803433540669437503111419711961833590321375788428613119071010183362663856174457738443130469188367455555509417300776628158351769415744862322396976277774765549053268122907670807541283684759396850367213608916146641053394708331280627529068139956948352942412882322672152336320719492869452310208045596296243482556383183771232959690709644326868735631943057627223474241218504299822469287239985869474215274072466830779190231783563447786416454728835536631068755220843244006352294514289398426291205675836878995830899828270844169247842044628850293400103645684384249176896983257619321872209030503304508158480695096242835672851186569116401307594660661325335512460594398979210800199492022843726763441112676642447810660427947989925471163250882401860407809508077377019090701833839783784501713962090633717048172965871010879757879938554582303921091734773649691533329906402324241402062079473388573015832340470459479519440676916823231599131195839245652810055083719837038861000425999608014244637964127004632951832188538268568399322834570800590202883424909880236410299656731756153429378848660892463282331107198123955135112607420537241490597029183285469149364598558462038817824387709727152225779885500286332514912775616726494893706535976712865723193213177684625022532935113710217340799942638638672827905305755497109156912680374645516837508593330449547483897466673261933576366116164819749687280768230507493570091320546273032688613933893511090024101762616343068000549602425106795542645893840316174565280708392721474683145300989036921668710324084258499553361366365492389781898178664944357745233970614935696265666886369979095170415306338073799314361707129800870526401387660310480864136660004292171398508379495334667482492990705113555277949049329424624162642093547213112079642041614553442572673453847469275881177690919576866719960797062805109026586620860225371074939063862963498375644748993393035257993095124963187838675755385302097886408022738102119454346850276074495792341152380098997702486982894997565043680076117702639250913669479851303759629005082588674646023309872881704419565695654509934980692909390694727067830244070233402277124757045969759885862397286509171342270616693392589439741778859782044989165531796556511674840710061426322404282880782116882906903360885613268811577572765208559914570406656091630225032979220923609660856149296248833576567993170315188368677659667434295153161294125525677968439562056657377347075696727496714718470639394715878031037497923074933773532407478284700832804922081862694184789323601192476566703380055844303973103778143129008810804428982016772544927812707267635229771876854457058191375504461574984622218009454265546256524159515014796236473768456770090842959533481868278892300627443097468327368422694449819766420245177935245890181789415760214484793115077027576861004009153952067026442988067657618107794349588883159400092620979711096361263057850983772240431043349228413042897366576604220819836912003784660771380343016665629631102740003654105895492587846113032005333835342583440725154606785065070173118844310992466534051946833669049720485595237771994089043478769896415772462078106043366625487137087788330771627212060873947509747813852518076312472018369739626568089009831301465046994428331938176185720176346296787389717679556301395427264603468844913122762627488147505843311946031628494428524239225031154310851529640559415777616913744898959619787733590581202553311774197326939294900460867161121171208923462623248466067623918122906681226137393182317372802019695023588552429808414806153097721446962711183327089624950354802282172761539125700893170264690327760363813969085537481514277666195399079868440540201937484590696978560167416018836471519305616252261101986808952041968177370067197875177007760613157060279417884529269634552009556561260659184620519211295301404439742533467962874586209250555247025292816746607037466331263472749979600776271549852492059701227480077115023169884068043292479702265622770860551965192958682064573924850335948117042860791521766410798647543524293762148421341584852561188994923730771318550904190562950960552384391624302693240604651930573919772409885050405463311217462528075609455620836676473659707968701588187369638821259808756106082891607239995349720032373764252036218605122120676936426585080023023145895680913926227731718388690265678644451649003765299065792872348514843765856658459406865208462558232806961289081289197252028911691519821058622486861294826557354669295137490357560381204476190295073835936002546560836241701642733024880453366573365186493101845980461983954484608500947118839729964125050459426274544438224822605985719794606611444316133551021847067786099330398229429677475370902788729340663367778226400443747852986602425651576846916975463341378190248371251790995019291658562369696948255207456285048633278090431648606347939918286617166484547589410514827771730789670353804837105235395611967525168645324554484274521282044794787324023543476531365922953972296170333223489082791399465271253138464745633015603944214696132155119227968780078625778098580943484578382190413551606961881993316261877435773021652514974240800320484432111790584413683012501130989086214603353001242652460314827579678627736797382737753320341764857151752081168607789389380859580983390197647563993298487827678460303109834270548845242033051827470679457937766731671351617337130624561821628429171785457686602393565197921842261902055260570239949660191947556635076583452739004582986420466367909495309450168283876706320507538605102946812722791316134689812469442833261172663846043125669014266033182880018640729424692505874499488998316755485362086762600775885979672798393722205189360342713139943194833324926379036143367079764053779686502530844972346630332860875137629516757784358372233895374065267449497689975894520848488237841867166678216573824441370546793625165319671830718125232898782734540032498581575082166022995007447485505500009867180114778648831645590805707510063772095404790642828271071104956628033574863743274529569004262474017472518265377104168867704944899888632366639627412329378624106146273430258499176347749356259185199433158967342839647200391552098929145095662525164286077111225101122993231003546272758353158415252683462967236205057106706042586535689471079330949042833361793343996714937714059901832285169826696372985592778268722178244473175762386367321471321164908434504268811355652066148342914591729421435937593287080694700057804356365412405559341438847644158407428432676535558035319127536100634576486465614165791251276070950878394237531160453642668274448606965431165203764729350349992528959741348023931051200983919695707437099365024531554014352605424810345455179217946658135761994582628563774336314673245708302741825789613266928355841080684838062526816131531296825274977597129649081805902309391729454932003225641769993286680996520402322258041109956452483473286157906399038652626090606353322257210410290089109367806657353623166298175056088506818759037387731618920703439449683087505346103684038007848777727305460456520182556071012254785112022953504514091052702643356193977678442716378671246587537229925361240205940993192027826791943067742199873826841101349729674479504206510266329434019744556799538400188713344381197972525853262260981084534947482600395092293521389300624722635144659321621174390169803988714465867215676743939003069810275437765738219452214092747489381451429205880877203916671435670780361304016071691553153448887321848492793113250405496788095675549098866281472325252064412228242506333432835102879306686420607835265675786412521686556163397763989803963873324006763959292316282174603675168995075370845842701034673006656072854443633121265155272976746387256306548324020935095024025298470520527444532910653511409358024489339496981897528548179645277863037343079895019669037707133634781606842898768055475319186303820690638898291475720969019461683831684316878901839252116133343506182146871173899885895998794492608236176596710729232223499753968278733585512963114179799356896238517376127408768741504796157675716589049422995334578850537142308319876610656177634102867299525672426322391975953615004219312075667221274731046142434951796063020487627951750536465757928147050663532966321697317735978062969596141877622860941244480261663654540999663694956818943434777616149563445868402983826291443239887130754383657546535467388670062760822897681703376244360588971897903782045579060013288416780658654814946813835248251125388273889781346987856654251923889528238318452041100330297945072808539449233013240163650743188583130898411243671566131591366454449852829725491192577764097734126548392464732274922727794654281380930971349571785658586743701381539806145569984385734648318332933810690681729966092768584220551233105820937146499581838663543509771747672771737627461188547340373266058284278608265947050704417287758230576965910813462657705054902237570840389582622960448036849776644607626170345729128568687752912391885096073869689039674695183815357041846054196291234166412025839227678916478075569673942426577782142955179843482090838005803726996800811749792241427777947682598478809371857727791989921511108475129546539220005384072928003116918521216483217750555784932173140010780925534085855213410222677482895938814396553308296419567996699237574796346110662453389781585901754023073716883879113038386727179847886180758008243620941152954905086053584229093126247307795604032164237271818981222545824793599670430364603228130427219636273818405502206906190325508516858339939817857384074468480523029114125380164253222006642970379209200042543636369070702789613190266795008616667084177614658523906518752180505214958829123445843344581529795493275761624121979782483928026474682505400053995319429405003688679195207996782775606181276634465618476462854768028784523788189869641572606012989861670943341333639824673365303434124479856137041852098052361484589520540659651718674476779614504148834994656737949003268638931380812106372061304069347194772770344334707933645815666865477209283647267343902442654965230105141451734162892307193497792240891861649598074153769169522786826119539198413716652012583641279770834267384608689729100003195989477495812019139839125008148203233621461043243119375578004614395612086919025050432236220464240251594394800370453509951691330216855079810997889035456509142225302099299364238862375253368825029753717551038839683488673712626777940619169225946197401965869571724690400692288514678587998913085258010078838334798486586307099540195715450326679174745791070349228536897655516823246513070544834272320145573829017071705999222259589746199105838738165651196026851076406358493790613672820974837197961742588378369995857262892678625884917677563092027874859938820792081128792558868114412177235306481677639349891026984546310704106059794424495956673530349899888773187570767956062174749069244777044422271335521698011516813217012332951172027848739783416259000089568702884622329229334315170689774282817760359273538980543289284579128585984709441375971537778629029796478993183294415724092011505016885192424051559972004659452045200085138835779399244480905018696342249887314997808213325116402446423022149007676749371760659415844859029909685987296926067744240203334417210294585282535681865465582252238051387331724863789064756580667605553839368229256205954254110644218397531975075286366166494148466950879431304298651185024488168119556674543811958802805405390868988991400142791406075551787926964937276727271850750137894273810103805808045404159397900614876244801572106347590423424186879095357618843018804629634182907807715193033278204035394814338982038245689579140022697964281990043905263576253783210723099603102196578421334018795096216488670989603233628246138048567210285607741121743129601034187900854638855333697055868378756127075889229691265312616018102027021360954633087765012769436207282621912485507759153139671534579991677917082891870759040616878950518596228775095954541954996817124294355189411094204660248463152648708413793915710472112630798293176276453402012846770327424055284966869883771661418776083103928255355203921575094077681552959886928464757665582178087933562408822083107981271863386746414418813645860992689815045003477337561422485901860229804089689498415950419888452005310596170910880198473061866272558176528838114526867065150019254507512728704923096256835885673358209812380180170636581948210374761066125223222962467779418810720097544435138113875295946382960382305086092293298621733354971486460039524120377696729523006917791054549193397361808570651390494716658445470162458448274595257556485413518956852568776195505051831840122133843535248627947264196589393976312745540383792211615909667590874868449260533273796964602510456374124728420616292019123375124633264238197090669000515198839813056505101303124103316563207981288053360482572598289923996093532480133434469132747607113446494033793989971647999810335742441523989496243521265656413567898628770121878615867531606768086453145184750606033876425509787914450966784517872212448047064208885396035110340618798336696917910896084604958511911111423368313604126437744711504191842343277917195234040212401407604123298560959310140065717382265417505904666090064588429791370603764088823901121784659907092095971377796538236328108719307221925188966785312888809419924720888217378072958825415840792345944099350696713389054878077464193460683874988096689404991536325969566261717810514055296453136462462617502578509447096273298243760318192801942775638100191034417258731417934723959271980900775641570174760773385746233096380275013729537099577406791720067599426068320436633439879212246211752063583906394944232449003087981414451048627746546185077765714661840985296527768516444890412937176710289038479466910364703127408280143519075116240127992349517459201077368983942598207867289880801219485042222095127296791238464652796999644731226882478220064431849187323053931579577414944326663527385312330655051728589288894526291949076484937543378780207664470286375055277609493879499956017372888520027580860904194385605842331811380170807994799913557443137466448805677472625312944551899501768571258857996273050321989664616731960735314660263653445192518349783974411880055854125670835627237751341161466353721528894952360713985716210972308474256751758610960737420454501627628488902008002566261047770030614570465208954937953044977577322343444647281699815472318122676704016834174173424726955204094032978293295241582513105537418162449854535577501076397952442422741845779088191144114033246171248635743232413701094207786925979887274881419758837072316224918829191830237174711066442978828759704873170030450973100967689806168953024415755841700325846868473755755769606943725995769299037635223026471934400611126874320771715905768956605252218566262812414810838273036528927358634434174728139702348817960447234361897344704169625788582507563412285878636431642276313339320266850470733384623746295846751166421529560770547526468252435713529739263860662458239654944282805235234885261929647067891327306122712462180839603698955023042996387691976179046651179648621784775335019797514432637795191151934412201690607061806867784221481245622897302090364796740168173882322380907333983889939204538332878596162380686872395634347718813496169632328577716177744867910540498691865444083908247893167309878695265032564480069520169608351762837467501916309429272246594798686679105924832472889404753271122912459336642227056897389184375734433318593831508894242841070613580830175179046266722923171401947701087580141254211228351481096985467309192881854155268722690613996650790907294748904483555804270504932818716574200397869482922113915473235527215729683818883757837187389141343656897150329733034726663887370598043884698978753740207886533200560601005240385989896182126463598254628180208629222219005206839838577365578170754738082402965844866514206277354891699858032900661678733036280173968515960464007239132931265441557492132209743177120962005121762675442963665605137675456486954252659559446536889557310013327187117035530970023340363555130359104206402482015629910719863839301017441609828478148211486569502576267254209984899309949629824874529922265872049289838761005615926542548872108768089171858222113786746133058030673523573328115756510833934538876935900450253901023120603073391506989702768909895092262313645252010990942242703577305521720086659258152150916418989567453707021458942052411392646517919828360669574344637897700629066187012220333798738997161115546788911356114032817961259718140750107292799345857860083124104705455282058168435513395287544402477172974938047063745882876048108031742793841638519383127862805629001511723678693532472437501912257064518137305146645645649721476614312086934889937471897880008667235269254878620159816243890556159084407404176298162261360604197456070650881102223037412943666294237039701482488009562834050712004910303156867026781960464825822638297183844846428010686678760625094873535161572659766538654574355265964151583819602951016941585175035058746222242491804052491796167581441511471499020743231803454206171606186084831529727864273101672774678879104545876979351061806015228947952522227514355130739905141009627212084996174134593393538660339777437080777835934714803113412101172255916769628041547708972618730862476829759992871710677165731174023739369123051312422598772742085461602667527453381837814818914081173804436067455296535623661967979335371640240677828829094040148192891176929099676278805491337312321001592801032221087812964758102770382235632537749733663238407828391598294387717748061803003516991225936246858733078005875294795140411791221933401807233119055835147782110371387147230423553387229216308436327641545466896373604085963422593099317801513495775628072627038447651280913332300286301823208593012226938691488188086043794933840190252622763627563147048825133317364564701015370013938807667529961963145808045945241408877530930962970249867281617529628447100376409892854521116391155281671556867134728647498547602939674316205157830619349790556018456737761302859341428206216387381419137258363825294550906737201454388110165268653143594362707895735946045393260387653922146639677811271611070833262464362347578116845079203750942168075733099586749801437309120640254251833825985775181462556046652700948409513863100719880284226203963231525670455768535269177072503306313315923862539371117998404080131845854383970092687005640466487038717773023848137995649391067158428459684196384218002446880397216717803903235690134457524563404126388005546713867412143628708183365210547291161994919781131836921866570273690636564153670070246456168326996941285146166626513325389280441600514206325858751007733989200364562321064480873024312143550381459817651558605765404055309434224184417991455215314034813156996866403682653797728778452693578646971800012866891034598124571994732957693739034465010950036473571818706786549533063902058356586984698720870673992113797463263317147412863921534297072913643367017370699535869054644567479900440860592474708607624552586589805741919265729949576926804341818217498461241837483672183989437170863106634318973120734425831523322806218788737336803433748626571807924375866210807375877264811343216286604887444112643592826439869054672031420823195871949977155035017394688160690586088298738425852260581964899286365382939689606394188171084312318809750389854482623253090639069804460633859065300701323816345860353263672808118694273334935691161722745104861449247951322284024000546280792584086839448023478815759791380995366944538933539723356460088474107855728371912026073274457498086017907849099852343212643807394752344618163795548034140388363246711532083598291555817865405760337114999618743179588768627223204474621514571775340173401623386205482517763376671723274422452555180524408934657681365725442252148516805469470896111678598842114063563990541125640939131560592478639452751828985108532480864614312684964941797635533839894423126202820209942707290325086164289485628321138748616425620586277004206112675842238145535222582671638165089694235492742088369506148221828025402353642172184849347746157269585680029447145262370764770400935795623498315341027987019697822507419963140820475646788478982070246094784821185622511892244216439334564541092102897667870558360543959005204711410457637827267592513764595385570018151345128293963577408026524372205195292314656748044217553048909872744626580983753383291429908852602451011670271387422724632073721282315179630034993999590405167521752691776111888089066652514145862438463996243671335729734730895003363634566487911292411488669120551977211389917439520160800522436941717075652497201681877087961270342692988999525791260080100923991456387748951268848726282293071583431535930523111385117014858764664930177195913980321020029682778656782265344319612578516298366230336979199346027220829117238243961551111662492416406293335017204640054979626760489687340358734779464971472812062526425999854332637168829191237489941370678518004040723483123099937845728968929456036230115352132860832875941432235727649766282437035576770431309506706835753729474318340775166556634705439145781518749342941390378779191672831078889927638719066405035392876824457592274445249615070811979981671793621477135432592025024440315599786085115351742956881706994025011777440215546857337574779176085458707094463849051465659159300851985250250207558491347313090043019616714540936666881092526143680807066056350076064532908950388261316388985745915508876477642206784258319254379757391278327009270834273490543330196960413704575504348710485311034569982590721952899282016641426349607412129362802944226239241929919566173785818794226044027194581926975613089689550741645148961348267262010905525982387724971525091268600483986806941831538846701277777489220001391642179143880809488399429130954831516835406400727065780139312968973909645106942533447134261080875868617609727827848242652539670276114735493232836940372082035281295092289506441918395932344513298907167561545827810704463813607990257403328216066515943072265183188542017648908482188161048327162029991966060740197944573827636868349630838241390576116060331042729252583190626158486261753196903994239943513792375968269575707094703128391070233715374319496335906933060237890851861970897591212495530718539017220540618177677641129596471475916275598161473341265327871581384250347699471063427592566706200251772521369061025655490278061613680161499189405815608146212714713904856909365723992002709086760614217691974294007350003433856090192973916177022374384641122978778138392759399007124694649386862190372838541189341087142427037112988394905037237503210199651345005334864561562813682969542948623699938878790854290939796979951979415409111358794926685198006771418775668580107312321479177793058698518619052327225417026190232737995556375768291519967594074592107288365637427400614863732683835439143884921363773127375275308723119602749726919894904519905403922587467628883979315039233999491615643885661456014997800929059499306136980828650062119136990934507607166233518320089161401298902828361180285839593423951717485767116839475471815574469398862325061626026674568623937018327356561719480467214080023719210507510135609644922622146710031740409586052043426457655714930713568034130886080303308572315154444331418072309882591005062258497351922383293560362899152609668606715634113747087559875830662613248761168537227910889594957917605678460498813987212370781267864993178271114527618398151990219737722616413479170179205487591067840010512867163456712113795732549084775465938693875217779652579859087105273628479160049250248612562413476213006026117645756690395848155733540531138183934396595557515208284201615362639816464081597024182916324980503180395557855681543158089393006521805409651171557258049514887160224843189823933220039519630521279926311799725124835363752288292400682449845407824839230819381655650276925708041718246252072920200547700602509403946220193531834327892063162839605076452383524759692829517628354426320483292342665440372749005163951969255605367776163497528605922973591237736014058696642965622892642733873658734753861171270447910335989135128244395521414755115477539015813674364552111402355216655889341322424165050632924428341276612877671993000150049168094799838990556967305167828045510110248283285257892469017015481316464919813356234419807934058254666655240874192794074571586427024437434463274043524459888163467092795399586035793104680482911559629646097150871081640777655437498659350616982812374715786424200561663097808314297468499866188408195422700914846110243552023062539156129357395079195653117439630970041194973784958262095339240410572237853837614596448716504877459446364443112683367216097655605846298187461931631780736750122488555554650085364655393519525955640554577286925048613022856435133523577400270859158337212541684480197805163665302364172933421100938994502906977828056306128384441396279910999542657671329238605329778813740883027480481022744902726770873314978730334726534109128481418208612804536793096336293462292262938466880763858281293810502375355061407797847659669714478151042443245735145843285742055545635396491538924343973500166873977680702490068461363006374159346499965588749236770618544454254196050426012924298812283140927672508832723452228144115071864611527031006104598934407122178904797009340791950246118723019673273210373019674472621686933492432280252761755605091526676057717763272895880640852261608510083192238836122150222459880192521206510014746067278025853102017414204092434948565205821108652485108892006359576991835814234427378637440656891996787741937213471011833561664239814797930191607148419204432310698463332470916441344422954045437583259775540256655134607455948181506194334395265196906852378107582219311962756587509884915888282267948584385273293911025943519581888001095359125304066068773645786543834987389114445828357756940712468449964489413213688822851805053561929414592941838487269881642931227242506332964394539698843829690704548811679176313184746460431350742113586138041222256984245337899508512486104903935874948114026010647525456979806802576785767952274305355172562045584118303536640543745566720657003924077146821789481758322378289208172976606915812950444029288594414988531424305199482415808646147652118195299804401480190684217003318794625065557985603523726036361637518493962121228064550769758648673869395268512036575623357830188174091036049092581191706237066961649502686598686588972253440626949627385145137928939405083883140499368327398438560186213837015127606163046337465975851070143820390746697300145409740210883365059651528160898661764864710022424005190985489298480798580981808154233948857766401238299485410158753639749111631470009816151851273770205082902021697584610495840041813543565277508075792678748524962523548458269743829656771572232157989708522276511652154698825202992924637258588135722855813324938840924772689219010851131089465553443488366948176284872799247724747082900121439063746322351043319346406324409848186554046997902218142387319694485152772286882248520011490269598107791755697172515640344165063638087604278701993062599551915127276453496976797180026505248693234327772280447120578584677717164150705044433633741116789993551799916414201924126175443009633206702996697914431809358168228367794745155535577673752659247946370359845127623267267970032916567556887720580557028081872269464764509724033594715017201000982856021751216615401735756710229665892415542565762167696505109719492270965563519161824575008199994707157933861025912407905985897565323407497708907519082158215833913792595385558029279751397543619422420622296591236769385144383841341125710178741388601482613663033681465978550811581361330463212078205828551548118587993601860216489695971772724978428894429875666371939878982541439679139698642219133786110576903657733929773910898915863079033480509825820933995592009398976907505845916546143221018893727498012060876650969655900598282649790788075948378966026681961246124681121769663218946599183880438430247327699870817705428848043304028374152078591763647251575906683059230040609094525420503103437406857919756519618778270054679074730851969924116386494544124638891054942617585639799329398310485196952950552223811298145640621209644192376156032846694555672363585245487397341664432965810697329274999657597600212780459799204874312405478093452284440481045725133367479117827526558304121406070737406479893130313212248779049143761436773849173715465067814234204643364901865522022684418327706732374769899505820730996496041614101058635196261406367860783221189291607038889494785482156337185226588870708768197043775930806281109925926719498233442105217595036820314229436843636106838038384881001570898749675295694599888594527367201523317084334158402350138767915042191080142338669617708096406884177598032836635966007972984592632378767706268976414365068533383852698014996222555977504564776636580219715895432836339725344551727948856246413146286626059521689063125635910891999392429417834764540550292742774260295588783680461105639784165483666402096840763688661049446379940044958708308068361823108055615824887179136574893132236819194192372518692944743804529623117097432491532659197869922987343303353473049022353682051519750525528133712044367368446332969919271398499794401757422240346595039506251549734437756538899062385568873756739108793342915426549352244401793870733736693093341531455235321226574181619032312797866758871206704235108139349483986137110518377742796146953156602371272986907772473358868459624981772812327042487724719848653935894627147351383380679047935732064683383896394506288964212280463475861213335305107746566075139696195474582199691807237984192530859924318477500371208385234794368505114992923619561406627531154794962081787433398506546989420567704052248404899117154380802596530203589079992716623197308009958922936116082709229532542183957699180215586456670420776975957983240233706194398693285267730468279632817567347050476907026870726777401891695410350696305861331553692812907220532184997203758918168211438744453784064887569035196453351465784290762173957527112475464107728228212675189975674950106557243950319369831796416050700413122119113505146218566836203862207150214258886412441375817641583370214938248196759934856233499601375744661931301701490309999979220491805255715625704889505202068554841829713608079630643655974159412090945972450982778844616437190174027511626145866441340424850961310931437181343167820055052149489402274256711507286270338065558579416599826470897844771345007223171046628679036008298646466061016720508514533012234868447773441351631603500330872532265221554127327031363942014214899442705078313381371353884061278665138821839685843086325031172818277050974760032203198570505492828857901710237796450753347470521038838671011161483289679200600591937625847376671996533082686639896314222556162131916558548987811477292789511254586630382628179381735936436913070951492520343471531870603329027494506534328992638327375789847301173029397404060573816179466065385722351089922557681792256029702873254666006548783907086404530343687669884198634195230747067060198327019886477655001366121165763501580175747320243814881239975453651332896516487225633160400512713154221724007397241857096573167233381535895311791318431809586820548016491539649569403568066610077005743487382733694161031485841928301424632167419666129529476315346124828323685343988895775257767277599412149153950376479981190105459758116321919775940550820065265209252481072705692284831997252689746493477924889450236740517256735078298346728583413309516574964135105224815431411874207588086385971087067031351225478932037227548429533869212176834577626334960430830525511447244014392832028975760650866112684263472600837818945246109726594668536651518265705470967322994901667906555675141179538681921378855336777097715852937897017201717430278795402369216381950070693134685671576838314729894205770620109173538446892853937586169435646563409553630089621573724281570769045653828253662351713711704101837480753366267858756197555980781211868920335255935966827319961630498372102612408810154902435147740578220240151440440430397768614407932108888146227862508355479982394525737450063783691618006796018894074723243215102736521034223923296074363824461504682435269114051313453115686737633342273244626485434235711226605541979883963455511940146471479027432886462683664222056849790492729472028971349243401174666756706990768352162032102402411140087156900078136211410408623388006756048550235320827918552597113601554551213532781123384194986155140090007612415271869070744621287839244899038225368228838831730530861257478330863776753742511197556562096932730779318503785037515654548949209785084271067843277484166470936143989725100928191942757025720232291017435667756969829286782268592726179209006026953970735721832220061052651294452276766150212561220989158544992983831814057244615101545320779491964954979273440837589428341901813365043559660912423975670866581474153943883556681578074450371986625334943518111786321686985962882154370799981336874768217529967634059677764067367762492915813360222324084334594949609060453787843139407416722818747300172373049872165987532659941537574595092728772107474790016578701479151093092334881931645377023934053081360499216323408496712050305420667667237820661171593405478999757724856577838866849102109064585103386822697798217842559422781904118561848499227002372835992558150987063189316202595581358773822405220576707575762910232404567515238089638877711471690534381120246076143747545324441840012137017548056224799824004065065530820235009862485100292503278859489716391779890535712039017115660256316359538530980259273144400788227413817410005452196690671564025366997246987090526160940323775955967884673967820272961835751472799190567173304156496188073593701105158356241816153367829099927379991841221012906272024847902677334497975787541798665485686652811278965952386495307573509512942803034675408368745926452999130625339627358204599780921198632557103241126127658689028376368809899468046584558190708666989114369531431928935709615121972158331859320270830456888279201606597617500702150077114610351441977881282462681650964979516586933663961251282800551821525069726083155799328772536144949319098175185815319708800596203584711352504479971687908673730105479311722587980567715687825940209780473297903426282331807942701523358453395233415279202278661953826356420083222652041572501788997147153867119626444021863894047291760013645667639913107382672710755286280891999984845901379399509756740875118589347411699519306386460839225979598101459787462962336287680293872027697732394273281152062349020377232961813907275167579710768738008186189574811144073788934498956951250437707888597533434614187118614126612572865082058752086165340428385246858025341697584222945919978315134366221755296329333992546515889283671908687720087003946014188697729298769475551751063296021024887272506081891440483683923347461952063044152205980615069211214976714094087321151809855285510842625453029923727229050274653467762457524762341323128094625853891027743321668444588923011552684217545351031259261750262325303088325801377977465397787887465763181760312786061812824701876333884705736280153287392937823407559343677131773017046132887985580425829324557041174260799880869752834388573358012630989925089656805160777016360496135306988266041424108023005261601076379303281601945013840202755525973374727575426500137646847584443986497927461937182817892830904544764633524056645175691278813335685532120561961225143954884597250834080627018745860528121876563777231103854502668204024006813943263908619533317287025959479010502736376810699418254524772928704267437925699870678284078957601845998818842497184455832464708991039446155189341675916650602426347781460500353473444346069433177835235599138477316293638670958204599848688739554452742370161631174367840507426987257860232405474887018439622987462908461931408248066769266376479669994653518170688188229000335925149320736773601601664583847968812381502691778711213325667846584146452400877007597168851295533758237012825347826446532220124036521961344674781154242704747720658443121768742363450925041391659370147855038866148123641985368635140907304995246464871987653793606871212973554512931724785412236770414650577542373240568880641366763428317629505090830398623110813612042393459707034179156012907914474130762889919810241130897633207767899071991947258965582621966862933312455523721682354231387689966645068461371968438764031362770762261954612580579520282317696748422973209803408388712421155384991629162010607834216151451521520115592579698326731902608913934850124175628409665537481527250606412560043675669316359330788739782551234297003549399105713204740836428733677561148456844991207898046179679616323893452158463082744208275665513135817635696938601539927591811534722438290707639333174397496659024959357421478567574843402349155958880689137313512824044584688454722038779096232423202009698316735335584344846018706625713142752267159792240234261476272428080597594932615773626400563627983223532448980370304237187473278032796089763727329142787455374307918881994841826320000299198797357855671878130632861957348778917458691857727707698304695470053585154988579568608249918176024303798932214243033186240486105744753907917476824429460616764018218600016429672414835127142648746113062201725754941283643285717185738714224544537018761657708815871144627970553704476005042276839939936010387075219419676093375037913253296022494328837753935877112069819215712576489264674391629011047862139812314616376917647284725789024865312748578496508986285908766376738373495192887877843453624490603503793646642824391235954900171137671194400671592247589381187810003003709646487726187845448224566688716755928219243931303449248318061545974203063934096453686422631028714024075083706842165903038116687970076654011433264621934607461078383585391349187150423622453456964956651713570455615084124672014906960815167191835425309582262796783358611701851970934866781270565361297728416717774024872898334922887963359428448310990122078537147163107244747480347948510254759199671385276384868778829006630417536188594908257850229771763139394948672178961182972399064071483708318624568820893523990745860536920461418535477215206359644933697528519947339302060173141075352858130080119584131129460764789023381160140115371955476189161286704797679855746101452579227383184178334297922909104341367205179300809051585571452347803599328868732824966751056452803243346894774541710232060928671680068696193356700175835965676804871367160929671595733445721379258972384446604973917757308518610436690852998266416535243758300390078023068004584701472026990887568103067941291298392572259731245915811718842787349692826520384965591562631680317549692329475996881100071173165861348854889316230585865421092779627899715047210903901448372073227437296408242526521922849369738174101274925060364767473087446013861134607695472678448536859356310637064695668872968673456039203235801377952601528630196031349699231836923756239322782156600656004670435389437105073849434267598051344071388575925059001953776307598767082397115659776221899459806540631812588507818204669103844554660829417492811496606104730685107153483021245067790803050643321238131248414019973268407066407952751886522443216937713095729886698448760202591614324124486508943005449082171132746697548823905441107535894570434324525920166272279156875259367253255398310797651043772650996806971056750274638216266971450381036321579439719519669940158169192934132382118645743242582286513770334486352235268236806157223539308480436854991888676593576303564375842741017821881034130085354367435945252517859869167004547152460736227290235922728750216144142637934458129815899004623978056376022720788199671482598413018703732018606112192960365665399370083262452278938339646648926104006474947234131447360882511362495571979723459830776345874534341034097602362469679855246294271315891174878940118529450876342390927508685653232605755248145642818725302021965512667094033068303142455402159961883430364527422335212524166525969634528074339867728367437903714855335453250367720696445821319834564563229295666606156322004175866061476218420467195540757221996057531571266122142828215450884646546458835398191732376644567782224426154948469938236158649040662489825165427831122387561451122005924359139299040832519087214951378491970571309463316563095687722470748144392514888515520640580874410331574031586068619370088776475913696588500383150211069886129803143724291513607381057842464781975013505564378415854268417731955465864474001668143223258959892388939468579894457117463872070591053916910462046913073304965551986427359367004150471421339461556232945071491866044335973214273690917859925783313545153659909501014100424320313577796248992256404901957987507362553707155870842683734862376880797599115933157852970044862057644968009073179474252929775530056754190730507102622434659572590626934663304280498511035098213759156698476569949454305771339712150451837240812658530468775251604952494359948321114827803486702452695425124029114375003631780909389018906646050689450220546899448492405114770200695269244934619019516915249336178381641427600723916689553817525396028084149527959868265099594145882359795363055512846267017266157803365952091357699107686323937949790887138758649685165771625964750581808117007884439554071255223187443755106929986501491015394075464725160821526331495035993630957870840444902234817020204127315942595580069626681928367676928128522294089900635824944856196670647640747882250612527734936841495831064245983331098852103322253891871165164897368664836061836638154091987779520405371099585420116416855006698083878784712773330007528203500544412572952344602619542009351159319811084614747756036453319824068807756965797223889639017721286344829982269521889483506767481902858584812169791444764391959999748789251630860607992577761834569652403977248771681450718600481080027262009076203396442418345232190040962417993250723219990992555249425116063997476267283531980137580350192946926861760218890702892961491107266026477767592991593359024002226459031322884594799175638559763386095909787187600603554851077344725637336716906849762567180759510120575074664867948219476940783000110198709394038770465516977535238969467364499733062192180495324135879434235248398380004311650992509497506409910634023506596668945485251700898106460703589902192983226015761916475808967346893956317838800173529707628286807289733690962734918489907521082057258290953086259643686580923495398960112173857248030796982923726491635452650974380267204206213300642432839924527141660283381824436966531354235466039520447240788542240281039631522206072325826264939235107137500038995538663444645721184426832658810056122528379216670581420121624752015098003010940282930419734323255993219397921664502983148820062429750751515139050792522703753005152718243538193677747996078213813450907542766615407449627955617987265830534342571487662713249497328027579591949034323868220955953469111656064854552973113794831257114508379555332395660875075820182333364026584942146135583715275974500783591262685015943419055658626565727062734114375168368589503864846561862184885328900882335131596810417691019533487060951065116571227441331440593916068865026683806103590213993626444585681890346880160089742821390453688857231754568904611337211701045442075769606533841812201683067370085662731317743734235852397079908899950229663851097218976040187167340700156011431722264401749464937077107526249359093942613785823128997212050376695306696317610384486016181547286337731520763857215178692063871618162229548771998249623908367054522719960347326850490242891572521924548931064227725186208012076062175853387731362641904991782102429478382439340507127276489568160845998735846942858104578455230466842304824317324162219692242342235911085078071804955963763532771427479965056583092717421623933901485634984888382142570358121278150914127970779029536380739152937354645149741801424721559388692014347808927927955544248977401432881777103283580837478328814597779808920021610466370164053016631823408740860321297052051380096115137027838839213384038625264170787737180448485545524414248102409220528303935304606867695214926222996606798393522512802216772097822916597714281428945641993085127075069337164240991873492201024660567473970872175433654815800774187160745500541117694263201262187634430672126813698452201244275756263023732926731802680258968780374439194862521707669863243220448858836285893971288770784256428543650939817349881596117156765527995710013709859121507711786510411075617247469124653940515952024839853104200635955572849530919043223808251966249749996479923917932177435504045367759040446600234477959714061232413257518958737819786849493957150649015587576715156917240288226532031337903520347170776753623812971484143065461578738057482302466603639530820265987090849785839708008588446311723678056791481289220668177349689714078568812817386579280954936450168249469820212501717742595970256082742855999148476992699226126284866877092969309097384122955485446047897133440054646512916475258936846021466899233153171175537552207083492934169570003966432486925968821677813094202926131983106236291619199025592554557862969111802612659697029212788938993103654275583668934027467698156425554191278089270092629827539753587755184785414529989854955854376468043555614028010765721032817522715659132500444423480623274946042803936739960213092588477033900132533842514926399499922174321171651410903394610370470209948709511278904712420074249431810522346348435092916501637216648158903189777431580021301858889337987492994554023339304584532833620665194886871330038640010565629761172629593565208433133081444052551953018883001578661045750944346901292467584197210192711150903846636641883684560048622941019823539372894667165986119091695074971319078501497743382446978829953774601660641037346907860066973781325173558131278858355231137606880156774164209262770895814507915079939876020778794828888395356256070822138511098445452976020228228121568378778233145666026910626939991876340175685443083207616478197103965625978473999446830597704213820731381781228344259871073728391873020894078362426551937061429042640484757619101653072825835155335644146783662446102249023842991373253458057958119451021792714247139126769388110187600521636147541772216118887483180144193152012784784859859769616101017224491056260434489673221636255201297696642639155845265925938805778100357006880970939744545817902192592489502529291161773123785153833222182269924996812494844451237832371409025136287635777946952966697097467123106375074028084314273921826794066165108774742781528652679288704498103397215738021772192483029383197547014617431407419016806042422712596956458857011395514366669595452809271864015608719790301881402765893850965162311231459375968587518787392631721482528107999365084154937369550012210362662601664752220550343813858790786896367814064403537378415113983454867146514809504194584035882856941321560073983210799541979045136581980800841963343898257887051245703196178612458422454594373828559500070331692904410398663734196825410799369471332740614296146265613697690980595106043907994159692202837880257764185188725062842679208652747820468617326852706856520678719364358552071446824059574296751964493238963589565144116053470215424712941792312376838261963710048403383334788532802845706516422490407703624752251023156264862209441717161293659786945563964986956140058074287664776467307999215882366680988159396648580010028220664441010102645561781465835426509908061629242507581086164730266872507978112562524178395845455864375870460444562900790629986296417939838808900358867283412015661172099400806366942821997580410862267306208450396740605452514565283191380157504407428245041368599141901149387405762861254037766974781483005019247483706551482905321392378859383959635966300125959512846309466074564180689436238688102017489564900898698599801163495555582533307897415911610711154670736113806152398677317161228340457700204393969515003149266688437036726696628109260579356585754392490220719213733255424871883773027411319147931731948541269620413713704450995194305578423618902037425275287832499619669604710006514524541090735020292027045691540496207440304975572934443878568824576270107699245815850299496293359979855118043548708354191068348293910867369329304591335216108967785389773098977525173665650871558186113915177305185729207277443264952540090350688419767019729242526410572928973837202401848760750060773574138256020328367406865045573375995536372898935625516186569862190910236628211544710688741766994466344855831914519278571868428682620468470107979232275856841364991394922041194060837130242653549596419041879762459778842923263742563364622479299473339913199521164919381385954114108120633333511272353479335313895275577799132815772051430762418764277168506465928107323481015602078807333351106257941503110841742869885413247290601384629961521329614528158518157357742165317684758395209909351065662514324763454325767267925459886711072153793521980556367895060966896713861571966634826899285760643267568889838247118435752165584182195002918714616698532036428567972275977515566500277518280612492293131215273022829708255227650951098619617780862629681169657383505348984610232661525107116693338547683468381462547030320702964375149929314003087728493656660254262271715900768419950106024932330056637524900596854239710870012666486234679611520173809757705189452612438127163092731449320080720177230660544365383263769592281660549194617778851840525971496977800651807943507567586315642538210817446108016738155163986806186509316180857004544443539554084810625691251163576994789913723576714775336032482810460180604491173630774297132860458246780323745508715490436237065071747717162366331324673471165639409376129942194843857575997257656080190487798296390612577692497772290137798663003042876963723268108432201417848765703650517394632859361625971060466361058646889352114272838432392758803782984084144848276185977358347750126003707477427471941304215457352908639741505698777890506330456754571847668069313463413166351453946522369608797687818636740421394510986964838839447930074953009547652050428738649082612237503587948690569828434875222363042486710223716418047470964624044152974165623128193113097255366102565137516490791215324983952146341951661729506654415547321983640251340379128073822890613446748299107898932661977116110471204091085616475317703025779787754901030890846361933620802297119141299865378048440636199280664022604104610160161625694630066204650883899255368931241486245145098971076771203335046554410500247875197483355591085251755450783784508336765942040102772808110903692526804463497294506738119011131318046108170227180788918871961849638329021018680718368016899101964494122717933288074848335915287360928789344117620309857498858523481250036487006057473476863796400799281953879188134296912598194258972533173350178234975494228297042727441997044198493618827826733947611321827088697872896487580249945572093504556241227260043233724914404280686642306341088939519813493121094914301133606472336361976066825120744075859553977921301691298257934258996130933602877709318192889553361857247898009657991792099668214002839548867921121312730980131516614029480136283376499916306714812723322099916930133994553958533005051568342189732971735197650808744388471690645662297779975004087954349978882889041879512666667777974174234538188309380352298349762146852133346671697333310738435367332077841135428547032182671630868299540394891160463719722483668813054317524181778700845685695833027255096415564222106836789256009280784960843049741311125916650095430942557407859016834091519273527098978325817912560844786808411362850506011036101890849998234027524258284959160714230987726088386189973807403728526627159630412469657169085833094041030765772641189610529396364771757218773335649494563762343569221254755814257341287170474893085796201268699259055295473964970095161134804029772109965778822434212483140820495167815618670642495787266501380908799344682200123040782863156244271372017653242318637486822435711332427935606207667144794281689576941228297253714048896269631053173770275019833518465095924602856208789363363646690076887230008382101433288361830228068311771295508228702363707317820005894276051228007003098929785851866647649064285315578480974225785339603419759942408830229057021188203510180265071161882495052892087352608734045955404853809934550298631425606775227902648086981148547903149754747617372051108852903509302104237165331604317847569403748313511215594728151954942227602807458441591289417861637527927056180832788089047160374512261065926386824203228063999289947601841782093796022391751337123011100588160101695105809822289332053086255621668824273676277393018211327877783689403594037906681932576117094359809777912252005123518191194221116078869957404529374445729488247253582585286635687925428843055122576892681876210366594219508357403017845223551542338907076158991021307502424495600180065018364157187982325641546909226173340156953175186555752783972704698159297009086890362599190767309740959956353875332259120639599476845187067862752711489570711397548245498192068813040723371997349154687011799283084186554013101064779323611697883570968879646159417237010411303135523976139067622869225514852765308365330876466771183458575863545599364617164711720226836417838654003986650976707585546833828925675252352591816253647196101467383038476483782198500277847362539338411794151147329321207933617765474025408864733932696461184141932615307008152938579044340621616723822786529001471479808825344404613265760079742959894087728832442954329455166926954215668364805207247830295965963950728240861043909468288229769173259979593688860956508521285752770564325598719842208924310819606682625454839386239668057488559099960277570200945911885642417965909330610263540649184891723034518432421424458034389754782571973215452308176035039796154604441651625706171033657813985892633189174407918706003750540127997106470126626040557074465935284609246558731365348639902795282242942750191285245646159405319055920585942347117241596371073202640517086746367901792701342045853107670709418107565379034330680247950945130317791433913488856638634724576079731848084467176343441217431481625421878137026189562753921682953425696757789117527213247650520157890645484134105181979954918530903419339794632157592328585103506453419409382680213900578878843270700953557641281766589133328201596761002758622810592174952608676850573203737120900604619788450215971719474649972488579264433762522954766564790280370434463585197741956383301029015541049247349062761398587723138190737696992270758544883900635842965572714925405205449053331116255386379904365758381598506150790873279961931128602568868980691790033708736065411352098085266373380232063621613862449682094645961468544294214879050729738751432008964132315544260258667124914773591340341193021588782249428839427008763867312303391120662867640758917176513092010751389377241570039390742423207469069469668418426490780477865975910520191472466214213764910771764259353367492285436280692170374350316149603158370303757818791706381554694028867850332200885631838523760218933759071133978407440020682301275834076916075714452676985366578973372431032845398264012495706096838344770635797889971539233260085316902196584042495742244355352746735002680622895395380258884296265845103167515539243347712089156909754080706829818777557862671365114816255523009832410693233714383770863600681003975616135160174744456931190548068354710339436714175487615227098955879489947850132752161037145765304386342987012718390963432516071189673819447167876006161806876068100832487541568990798330484239972567451508448219167543770799464763743503231239875044049930493558860446978485321372844651300706935127383301964110154377242102398329543733250154961854790187342555022864733802222316451335541785147124850643697565330246096328986036910201928639743756866236384112613947165439239953316534365966248992212567591020028075428380037186590164319164404943763770806968440523521831705034014642579798486077160495664184367544117500924008101730028506553509117623871768258714209073893258879747240750436800162788074249554890689807891325489955743959327637020846391376683719035883060505721869408663857043413950224548552728617102287897471951387776870876219133211815557610193236425868554527168696415899523797178623456231502519025817426697698142244157465527906918028090133816471821462361240583051951706937175792412525553361730042768904009415686108862141991488814684298933061864442808017908540772333690863168630217051061894312890004283404656672768844248210039391320757132498503941017998730387857077131721253093570307785487023320172906283865236461692672506696755288529818144642622017596450313518234796952432921404144592666863697935235631172918243057967549960617847848245948973324117344278008860485061385177358926823435065644676972002335383245674118353415179124934657753465245454926141880779656335436267403724108161208120954522043548088826221197177049374126830878788867495749782863903509634905446508810570287959074741849971986032173628990070534665223111998694030947248748731093452899871387168325613870452053576471821244894167837274406812203298434879478720164520032225699173764491458142092328115000565865974040714394866410734260263319401260181202641417472483116866365119572438151741441744873685197607994108783554693217946385303416248073619011048742367083282413797740768930927907117472163583294855003413762783781535527567452134663031868868280732715771090781742410788109809869177562301074386705740121269624330152641140265407117417760691627696674851519912489838575516671088031731017882153330469236881392947620614240670462775786000687477403020491469086961988868712461116501837158939550469943081474069926395245690386800681760786843681938268388413854496158999931529345306975704923570893788199894385178891664313766492944170037114902092139636868567402275455382928567521736378612093037314627207053855385567098582708861628536728287098995425034960501765425040099181605418859392313211786498779184605939170578717248412951988337241491263317733514141836944728142724589328612191018869430693062580552807617401084702426281634739219256471637567685583720838932155381279262006003169251199370522145891269702323030633053419241186360571081593072926976648488479260190426187178248450286404705561772430837691827633208460933339182673809287090710313100461486272774155358624784628637335691791937456101141213128369093227597791662384512987502142127871942138203118046336871062919831919802717840875550870987996149146563215267261368220483289500218633901095165637986715608990806439763625283820002643541375837549914618056443805944671098745407392730646271931870619123573088420666665747615667158466995787542251636081945974874509407822560860020808609089750855001469533577364986427981020162566285566203543212805412833793068349283082046280056589375871801473989731871101174803163295248179153168496600096978117128258706012680907620385465368620956711515221127893439976076283385760492320233001913407850145712030617672301970644764727355580979517184036381968615084885253645596566839710183160530623033821985866689685252190537547705862021497814541355007531315030295023333350680902650862249325911651224760083622498285113060843411058833865657517877264394129115305250292648964088050972275123935798625243754795410246774057115548122148958179499441662596040366183577093624245223153990029194196529932779254269810042532777450699951644096716989129043510305129343216657523139196614928666553637615724707868009202653243998879623715616711860079781796442924908292139482698350596073658335306381879647321913328922030957694184393278111611207721951666683004193161810824480853976018175004936427645487316109577500098924977151361488020923010769577791414017045408738019992607241286366331681908246473730227350583775265114825416486026873063527276211501763191446857371078649589951262432780227099197542945681834450301564391213540108907746419269332019391427389446480631930102928531537062259615099450755272424337016160198325734044794477222386266024820805230533213000376152368912299641326389658577648470106395332544302561757132618496633018530104220875816618312281276028029373240288724289673456069816445522551389182471249092259484419719552884351534247597448408674273495046758277853666465319605002817205497532724104256121374636350053961356096678272842133727747471848112526304583465782552144559551587685763423621391240062994408738353521369073305651583274818587132848642698885368384800831247696513968005697578836589653328190518885944040940493348906675044006981164571979465261987101823883542706555712316381832532266765767603953253642813017005834602683056555735414051351464453017516735176177415737491924948902573821197112752361269319402013843344020964573812596042897867898369214229713781146202923990231157147252316929823687821842925166214735912634374773586309869081049376790098934164022258070465945556466520049419333270948602946996735174232241482891823223528141028502481145992711066567792925918333026678565335924874162021190076529364799625523297563205913810258911619551912496771879242997221425096953561369048981334769552070304559139016066168439002131930670091292224374261980229185377520469747080938855068345067698506538448562652339655248967289842178504604423882620266815812198084345887414019020472499784288357245630319975678105612048934191802519702202360541622260357396570162804930404410732827030557782816708308967636778738475471455687683734849172512289341051407366693191660660428385474157064446464616599233252072257919266935851509100020797156816537539628948503292246834646421922132706666339978579366555209370417310205581820635890704377039713443574515846149976236867481453867480952130096626856627589829791459006374313979426141398577521091074132596222408147273154761809533708691867406661194507618393737928834772341685082494503972581196244364133802511198083040232091897759898666517721750363817432742264069593566813636892934821976850742134959031616530816448005086098483126273752959636322706805246574088389618398803457227876222926148943714717225773094875792684442901752108050272222707154433547831918573160208682530091100082766545501650291558531609455793113965416699329543303128051188179782745970731117938917335151695319271461848644290644857252143592045173749472837746294538401105628297129375872132886266536841225147118278621142848840026107800385576169872601522676001388207766719000956722197460992964288878825304322016997469904064250216314256443025830475560283824802700130592514261885650116968308676217355320037054173547503229568251004791343445580942445123167508684043624415635561126699820943746307801370071073342459490401842045828066066811568620453473408640149217776321443075016232521220252614628052744208333238750433875582995425851682568877801572950246054011089800796549988988699492622421279709217295943111419387940765764154939991062037973260481742267979226052053886443968607558434667636653450252775661854659408973621395760581858100161377605365104338830152202378922183768703607283676209383696262132350919483584041332316727414759098536587781971049460020312190188052960854438370156589007916766692789090191852199320660793120915552488396035776451584105704546962084370626039133588899922167071449166617380093046259721908810202631249989998314615121889026941888665903838185546645889891758699441617855702139587078722275007276668178097870687343236020506222446543595164965996473362458183039949472864675189718855180715567854882528272267189859688571568878520674732094824477245030088771324412180128310181688852781742257324532618563140762618266260609872891022237915564241760734483342509940101820808857031405305733335407419999403348154822293781315130639231207425014880982564808022005860256572641424731833490387235704761584036806963879864886414459234229923163608468125165697439694456384844788642631470450502957935081385884964005438475082890331680468948408148488628899565444532054489157480580929859561880057513817374028828716917770697262595146374147227137330098416950147723800509540333410320634856545197930026036950997999571491720448115174361032825002898101986585189603882636260741046333773679396622730299773402940808985181776679755669034106177365452195181912873147298434274518947435882601941484798546623676529950671399726092291332122319520606498820712849456686631529151087400320628846275834231264686939142571580811205144742881571674062756934909467513909003837042083736139555884516742071926172456055176355393982559180856810238271179860340560347820819327695621011019876646993899679288269451280762234371995120586811614126125591736747859877684267108147385697981814756545858643688289114694150595557863611590156284087539455640929717447280658511678774932517195602552328606891682336897891480979342327895531877646067758457438188525662076466277511040305422122377302032315182720455511521600603467929355159155088422265071543910029934291324604734980768976838467055649355224045142048380820125970873157661083380169731313813311207769334813597021112493904251962926262698861210585424947642425334201226870327171370214274382512691786527230817335574381625636181309201774674624416986319481997888353646660650976792975136329590539343124717940031855992644631651479786693092584122818317957766306939905142085216649234524234653158860796706121331090660061747879733440850052718917205000902179798285224625199008543057084874338550483037477393790585344023881165512397220862068026054051015782079408649676556603964163770052453539588188116925233889419814543397856460183340858622548973747359469728752671802748910354118630565513767146335423941698421968856599220397835156715199511472798866823610278985971988475001605859358553716746394259745533377267510381016435912604723075517114135987752562773689749558479646697428476489342496059168717329165854094994753081789950004363835366737231160021544633026136523260425760704024263060488783868475919605373590204751193898365028607603724814228874892432687039204643135075618839221397341699833576084415448386504693332622092071083505742199697053934578990301036533572981799260354491762686664074721961275324279378303509912836288214192026419584522576886122767324402570044065692122937106952677973979544202760600279414988801745222567949610968025036409802077189530956903377069055616353569381262996292290482078562970696066022241427584662147669038988860921642009160883544001131062178662625300236671113137719282807220669944921290144975858469851837435709999317472298783169068650971738578405907598841779299976964372334842950867529571728352954237654295851738655588888336846760848108859311156301659903334295182620924777393593783283693887793199798695845369082793188957851511962469633815954346889113796089961049939169076192266955769144452761012188285130505576822781935775204758227579870465282146725554776002615008295573094281294351759826566432708181382979129274247090639536978175253200618314428633595385099052032382547390260386052842823484700513442176215048379373740864753319625231024824954186207318234713454171400671065693637828323536244971601238469730722861957952467598452141209252824857846296427523866261971613295230695102851951497825915675116634659926273629078604265161684933591593679807826793392323222327672597432794783658677866561336496937367875782904217598924416818014251858752416108491522403275467605855145911675562308429464284021063544664755622028945618103134589716295227570173296394428013577304503656390241658395690987505012961632366198416881204592937629370920775377015235787732725918411031114630333621401473950067413539403904641460722886651961994749747346961992640962027592237406068469813367683849691128845277879539665636016361035105803603292417593110844175830614508760364564474962278944989599490192581377284008714497139830609457260313400706216273214270447613113812479543417964062934048077826773539221766648252314546215875328893159884845434539751968391538799520327238920629673301924599836334651153397898597693089884822601502494325111324577423194996553434135061096746712336515072294858303459977980537469052905772827174392154950612772713827545702664360582416510231388331011433050196187799636116885097939295648342666711386339448060300076424587405129139570246400773139436585222844579220386306724253388948547087531170992331777771458251455677331034625378201583339121752260951936223617636254035574587360155109395738613226396239890730004417213083721720599823166031179730443613559922973866439859150600198756372780907698962281337986897015631883552608519111477460765187654990883014755767930402815955103329246351421693189639088908872217657048550431282404854302759454020932307839189933939361992138893138760984458064516653799629115351986298849132228949763268553208258587276943809746605694076737631701189774844773785407296034396618705678158272540742677558327409749190692131705025740255518501454292706800452541851594122970314640492896144579076485001241087158055056529735404579614976230979414658230507902830341307072966349692025951476494632285174089437032543313715562160814573267089301990475967199628363754356460194510681913672400832965066884379955041537875759168783003311059102637897019529604645498411678605248643601604163524873100989906377482630540655877669472300073813989654464008579063932496934654208222819844758567590451940387338666535273068791380183759350997501263418949364975920686418744996633976443147937773626467854057714345859337911420294653207853545609184949816427889909299020489692873024367617808010738760791466792873196853797007488911163046569877599565377338708582231534376108219362156111025993331851196024746256851906107547720875088107427248059776489856471597553700050454776520059425749693171242723826737604116953271526071028623234188899994941077232750313867655600683112793797895552711516092410382161382516996100504249384842660720854647050468843495570695001657766576151727487323484013360923282786199753392522055576751564227379263327029539176870270588978875004693079770822548558673927614618188657140961532202812182438848697576791313533481701175956571354620416603860256739824969840218606507029204357414756039970806770557169343808714857266766910568935219415772481738713229439499864674715743292036812892701157138285281150064887531767455194756710723733194636505077231836581979617405868301287248444245525231868595571848161006109771720496660477495230154711385356951879078607589818995868440679456775289032307905569133110797377019595350198471435972070414815430140886993458946760404132010393649441691468555339297062553628647098136262091102992583762753260245958172050895332887174848829947567201029176416565106256562906784823090374002997335547544349807020447914167908080228667625430064719725933731413810575247506428187283573191556687993311968558802297976299306244014947137703152981215143642620929381369585721548538535286482862450905158351049903933531595286760207083649350006252880542201871410222014223587951040355970665709052102445974886909457062418636793127461225422280947637945463585349825021647398070208594215263181863261150839008071966680852609664465732132222396569552522187038035800332252040205808797196623886780783257070678340961701220008051096635081509897965396708580169535283829425509685918298970008734682419305822791134719240885814740197894400802987321124824674249223466461878830853802718067776994919061914692841570294641038837419507736487884739671419471239672944046907685778789356453301193569804630140738197565115755301985282344320333203067657205729038736138786720000302414678997345324564902240100037600898839996038307736490831113867892785450545278793926774954306192497635494336726849629454820683354719325407076386524253948219221515652931925166907372371771264254452174188105141041731263171074991393238728865001159239616891288313833603496162836216438608107279935118078989422488807203100048016342458618460062825379768312643947962187980217084419878971282696801299585608324372998277622824802790670125172352494075276553340692348900272725421300828909724248849455330197842136911936972736868375621955856556886601122882987463428199415189588700132320179564918871073824427051598190828084304365716208670765878803583442889716357620365807660411472950574908326133827564807213624545836561164109681999699465739209241445876374205335900227915390277002754117969549742154185599008851945074061282737463022716812294359812607985746762501491771107482977335128822788366904557435021049825023593057128465012520942239274260314336806439373055098999575822454853826755254316663775444974235910429923346198981391216715162268706334605205325992104460168764412110141711418042284365281635495652051472900551984801371776445483356219871716483995125250145032374253055226737017946203041263112392405261842771541121542235385047991525288269286284510301861905682780298952910168280663706604443864940937260975323102472545913707354403417481032382546457663320520598922922695235635462043399349906122315803996075623629912638247679631467114333980309834114636474322013411613257864169936156079278664951623630022726801968443780269768938999245538944413529324548308545080977096502028254990087003385121635999084689489774133438626297545772006678323888107323607733201717302735620146188807201611566715608800330075309358012468946052547580803272792349700335717155288710823486744650391763784073989759879022543039870753330126367083148422156739262429312440918050758108674364626245564812222392603004441136500756029733109277486758311323403823760376916957732496733997854186808964615279521264949219874402912401833938123531794651503958517379602899696547179930797036768766619600955913275917824681844121209065418666471883317183149983903720465676724695813956074383847057699970893265264125473341919070879382702122244799324238925364872314145790018082995843550901611097503019429056412961123283825808648811972082469834322638801036750512252006493374075671635818175510645124807616783675542860281581589153466789619935766984517331406988688145875860073509822845968334897999596811171421123878344854292107766501993366317141581718032135600239950889370583653533145694212601064590882702671599534680296386823520593434944906021693391271463819000136752898704262135385863070330950469011991979916908652861353804853089641387158740882311810402813374436842081059925791136527731213974514306771345116382399144874079228908395845731639542578810126704213909801552868530780264696408032661073570707869010265722286685576237048785882746945431092729224005409349001702131336578601607968595473549586196831171066280227692096020617501406012116829540781835184659206603680469580763133750379305782926697931090231647465408856399161096588001436511039146442222536316711463066186061863836330888009061788331341369535318471194320440410932214764950519968064843385460821184277185445027404980908405705005425684454899304425869983801006859004724004102608957032679902396443396003997144255779202331128998480185870565555758921233832315626772683193299035427731227757499214750462959121847221752272647235287120500813548924561253733843702250152888978366184000649705016895343802316412737916118808071524628577124361285660154431448560318178809489371246689884553390070833192215352165519077129757297605550330575770154594225702775215460604902758613225381469086231942349895059571807968533426907695144791599652672304490400820535617629870550507622612309310041562514594009425375361074035721176601314578326825694849902010273296822421436280805287031528005713932584100959788850245204866276201517877009367599287104684295471368719866303421564146297206255145400729941641566626216884918236493022214721724353288568559525457731579754568695869473517083260894451219989046510628240463045211510511426893179166809523435281107929779929500173458892922284279814488395176345730804852213752231844787566295069222934835534882746221440857699457888607102429581554930540499216544593403154774812527269968434414803124748062554243416932940262196438833176982995561941897359957551325381370469250350131870038689307290042460100957310684653571426094161167181675092945252653104521260672093712589971765288128702961130631678629804991741866419002802647414494622042724997536314502242694013534958040294194133937990910810239519159230049998921646592550974090617137133378887148459532363156218072244595037216643009829381815192572787145624121997772837288809128875845188661212092796011278390075026801329748495114048395522962381185870224494025391169272865959648051625186530065676815864492686937002073887754475545271856794284737943489220170760576001020646285490791880461718299551424042395077149640746378131580957371207495509904022718295748613122032175856905753248873942354658889039956975797245157208060576933181662712123838897662393431372963688513694018659205546060462225680787848145934494999463645727510436597814427365343812775303770739691160908499546335239133159649104358126942687452430016108965954553895641820701562872034532099325546854059444876277167027201576121869787348569031532765011714835833460841072448857439356720085021557176279467898864358064126333182172220732857028603846820450941437930177210788450979287199996056177388092935831942302032371577723154468068808529995427216098592748432430667968551992471067501526298807088348253797097230811553586710644846994764839608748414369976740023872528480910216179756309013067746441329306810155299264753168312358572579258530694588042916915380161679350296205511956971567734700847592966767868835850828788947602994715865410943101154302091902298748733345394236119023664067185240443192800904552462747094081831994102680855518451629339022822927413609874040268013708589693610888256615343854045179295083984770081806966952000080337073022133086936558500896888457037689284825288984363501513739946869200555041451483391105182293830933461519984843273726326668427236034738130843516587653300333218845684231900427899463041507291127239846686608676081211163174446101826446061193939886462595028848129990409309561235420567379184523374763666367532686400943475779805171276300473313085534952552952907042715257467322145805903664556957878173192278779113608393015532913319261837948273925167203961351127830091048865471304032101628937114329905854818118109804018003750845739674887505228374276163568505873647519053117609209067435309421720292921947769354229430755115902436114707067700406625020714662290623862556534670598423699118119970707358355275801537546769116646856197687285039836972656978458971388427012520884460714319964733021709457705256025569328231060555317657776165072854635744055515450310255635576842871719414513878354745348905527044169121570610344982519180096943491362592904323111874575834077079758382292771398011795070654172560872689466590570818713438668994759371397426894654759776203422482036741486794709399728060095616336236279257241087163510920564812887675898963036327054424772595456422475180118753653086579525037748218354716829506662387804365742915614682397841455727335650926405115222219254846699496449756331366141824044418381798931812294967466929638838424281521908901890044197826839347298667776878245240065587956922721227182709310300296295326262732793535536682225381520412974704649145693337589693667739409862029306737120375004035120083228510230413103059441124288683356701787617755053173337206388352123100187271396327948790749202711563094391559459441541425153611743125045923479612343045085391467484409022932626668908633297489925750340983006379124442099445686873060121258558542142408214551440739182562622360584726079379979107131561037870565215651384991599380868638460764006513659683167548091308291707431732475686817425333267482206069222588011955882387705585985699780922930661259297954124708140350405194133564893075740919220587574470819431481502389642322090609168459000372966484294177993210201280741594199768015292567143173882378522148537604374361952763223039666207172118500120273912809497558439720207399967912725678244664904104129608250495405459672100188329737853047850940881296602810397395339235548523872794824047818594936306398562626541261680526118354251822437067759111930360456479905767776092235887860208946688423556289029631568636005258819255319013483155111250956194253746998683928863415435766529260752108157337966423216047400073225196759086871589116770140971860702673957164749102885794940462225040789449788731968746432661057855351359701634258783699552917175426559869400344841255268436115186266367263270558786387785893852816711558320792742500359747557268799380305892899308725216932867689925231494072614682120093779825743372679058334289852401821002200229970854033654127536469841186397865010881462946925206237095966137435109361743107138596955598613769448375247810522444467462929195040488614295906218792435411919568831798771343335924157619599292476161594218798043834365866216099223794854459983763851665522489846831349967841329005746562677486208602600536696132186897131927945133322267351523752901829009267534246612414504939742205463173983568482299245481783024167853077719721500766354687163249299497160336371325439511786650730558740325493132507041498574331240079831151917696653265631903469596185636811570601846453848209915284753623979481665539764494207030757407235938883362671797714816238138799957573306719941270784458468191347465365638716556307776416024000254718704377386471987809241146817465485014682273902745597950751171392131596710033937954966629948978297739893202261472575711089818942424234316394795254196717615808558397140255853077542322091054423546527563515872489996468411195091136395215126551697379621025962861807685364375667207530566097156574467634190337116009517298902054634192934237503891898168747617480348610385844026207134114151773972534208885197585632364199184535012347635009187386016410809218677170433393831664853272119902829972966511922495818667564677027473602700907974011414339884465279934590705771111867928785939413658944308976779868904110495057484751900080075176955459854251586161728494545681937910654430838599974687149328313944910713386151956097438215778479072998056361063859109146055748928271670616432331771138475278965127935959418121635113760285973969303462807045963201636556663251266257109895645476442488155476403907578660530603757482465626585615096763379950386049581211923751105139487271883005490719069857606825480569943236655537430929091297340917633946848456564041616721510923990356208402766845105353513530203451448638944557028698766620262090070477969869787093750037337413832626637365205666062556751648666391236043928542416017021377688746641988167504255236021610596168778835393201516648487977087394847395145958989897136083001533947485189789696680724072587140977494723980588114990818972168708417181746480167837454138046402409508664818258946655855413957583532303885090578782919249831207408602673054003217453470805814890675579048540143914119168711253851072806456651040499872178208449312875918169920890982457251288410215181546611607697238749138115888337618227258351171935411266462264186450737306046718673595885012998046438460686055728389723421636553355515023985751174894873981852689546635311889162673351070634817751527924926542447432231507274956386515401499872764840911754026636933261292425407574746260548594674911285203864746443708858598746738509920107729865667666620207538730724589296750670584654011396976695119158603965491775238906224359878793807227842475229770855661305537973313057905567143592884115465841667603160710333557789236240488380986840116664786541927048209043938118447414563591831336193397683474294676667283947641847874228482009386522560072071593861499497358401784435765573546868217686721777641419547929627657302427675252953026630697474482620319891076573369946433864652226111231299517598159796772266177789628242470062887854885125946050469245697762077811071183035540621636787143792378260242940246098947549274923214670776933949692306034591513746576593510900819175010188743338159061415330219239082010247838394902457884039128874079295909370825013511459253861611574149734947559055281149623020370756595692880876391467518512036095882323782103117831804072454832738069381133497278430394215145825364993194480366815203768291650068493699576063323824354121329002689477547767977520203779440521976852012890663489904295568424541941909914828538632528725162824800876775926288061926999777897826793761315876596028507518850554472231989191028003363315161553682588624452010989885147525508559460333044520015632549784625076536130192493470387214593299016986511029194887076466372580432400031793238050642705338513310716323309220787711822269069493384962929099819056790200946845672833385147456371852433352303065647242356138991371413897095227597178673940311194914991334697875320171765839280144924933443646400681149115335123374530222315228360356706860288848584748066634091983919019709855527003202556399172594374166803737850745556084730136456652573229747907519131567714001296163798364959790299771333736373729717739694940817399815727029762312101825100269824164011966007848760431829727515131380990373058671719466972753792886383414906922805437048499387537405828788762349008621091669062341919558020201517479236621006965854633804093283467079347595231750687493215298048884327328354949008615821113961919979165035708573251730467044876499536376234547484577994729582047817212856895851580276639016568557748732513348504341487237483487351261523180266405686781065686072834901512915640591934249450434429361302603679705083172000014755942467996479216649556113173015739940657059421541244288923844134813910241475432348396813310193235754956569393307520276710311684099086501771167139547789830336704383484512039329167788391767112868488175682025358092700349557263939591006913902287972446320898670962961775548352249755761690550857066100478374528059022945221262919797683729212310173994068971063750697489971484231979883533206166092799225106965291024216417095721544548229311925658853250528901263443177852985201489546556932844324562890217856905872582921024363966191762807897542857028493044807993620063056832832801775562490625924210346889143109551431074042119205777376177383651106669106641129243375376479050591808193723760803595786528111674250566546700302042407862046111729343543040014724797012237338989504735445835580015610303186822980813846100259999566146349611909944118738483236338284817511126701349661285780308764086172966758778517668037684186825611447606909577828169282328653862544478981816354737553775475108085025284847048673911600622310138099116849081691989783176918792823203545903774025983028747494058121065958419830886987891417769258095011563595300052886571652150134659197469766107124754912599973377795080357634518554733521471329245180138587981975652489716453425877541434456233344194417619119721447205408334116582190788459413462384377302187433321534169605248693683919963359530568108445595672105022987922377930177288042481056735585151018031972554179514624381374022278771211082656313615903106367837940962691371947239527662382301036140282819533445365026109570790832157088881653547239041057242499486461671887175586944564991449596174408428414495302427785453059170901360230672225335142594420443233990142184512238123237856350003258158622440124521951388039458121294356167470970015686864216578133236086621291133928748426899621364527723860743399047774423137627313012010303277405229174334860441743955793942016463025995317016825596099087778943947327046048024541288503849434056564836081919386460949373247408447482377019981716460963572781029448186692027956720297153756360675127083533826898648365456749594814828372121774706163431930930251742561826111499669373162488444811500426878049601699761458007924455387555426121145596689195289184533587589918825989412977715786095554187070399246041580638174227617979196659220935991818670741796169035329874441072535705567233283521812334775923692004347688123710860368962788905041054426369792667609313837205061540674145139631002353654929967811181880107787013108379836578972156801587273624281691993605458587651304488967575647050372046041717395634142584741995395677006239367120725699285661908662521698993492144684268551299118702043904644901470323831056312189858123350457706707131969646594884303261358201083993282159292522031124949421347878332448878120359441348292229006700839543994576400529161774860275799990919948949448545977763037445059215486975850400223847421531407915197655897705222361443190259387558470741607792342974338021991601151314154488217877145653148421819897646034358403880379035434271797740244166178131339811264974562553884417410148569603095958267138277383474737565762781659178103898939083740009686172358264687649899788653941369473319534404540450914372934159317688353297541328135120912057828375810853557382464414585931580167003159543026729499247381941396544187084962809777501137220357034426319594276753929756074049324618256770514010656975802633430677995534679787799392792352153291081937506686196126697981248648963492852282392301782656629561223230644283026490706190667872630264102353352752764782038525889733086046195399186946473593291436216062098087655898203090267225459340382615325885368610530488852206178538049028042656816275170718559547489562890538934027970964168547320702631689795600648682252493172380121609476998637047163569620225456480890981988347093590764618905339995501584697763533698012881065794625723739491059012395446718466036930162871462797722508815998212217167299094502582802411619129467769191123190898872036738121135074725847426435446454217453107197925221499082943574000199832764860452781060913249286905750842741517498354393258892467391353446183153438988763751687371299315796406749909654060444063535112237370388776027879602390786586404450937144791986298346064099243759133746786827009462205423887541133612884828753752278609179443065143200845425577644157884891324141519786285798348795204345772909870945954067985823425370336119695351416893903770676021147785932210273943867478533899004927563796323934328978371434958148710970351225339035857942204106573725690749080050107287115354894776902958775378666452157060639730342896072777387449153227940597705186944046707618112619889985276483527024629798470722973663591699692938398867119106587628507498255896685334986960914244904050245019063111230926944846709517645437359785614205468988302577402025024005938925633053104936231067721966221128775201113083582131780974142833278029298129484790859573006899368543567086104312486487988906082282629497086932499334747354773359745995620553029903588949212494394671120773419988494985369667630305796510241109781809306921563054392780822129978341950181433048296787503120049477156459696598884265305495383787016001818677668405210035351760695583481343884396380983412523456287006734328809800375861415162918834214489405456816084169608580043307575193764861285445465691651404559740420823720061415676175612519405959590899870753233852989143833152226608006465203388846897053032863137242552288302567934973716202972468180591584981782294843486417398420203062794721878089897390293633909799814180057639127378340681295337567098625316098356392869283493082448896656915493936731755292751950743864407960724159096314665653498284206633495135056777317444638529958141162868702265843967829994867999414489797667230688393880320288759697810786134813233002384669412416229011489819126024754025301694951318747355725365301648463744836089222317195060670606558537309435290168029805995002037344814493135381869330465937805029571953153161392563469266747160915609470953757978441095961909163974948323300400506984717970892612312693609648169916669860019076683771855079775431871308602724105157058385610618274812555765422859272150631414798947014771760820827392270097823210824691679564901802110606448765211659836848533208746757387826951441096069573059007143030025396966314101066650230086489013491927781518864563892011962995800398910006905319880162296476834556461835717846630899456104320523383298830534866944730928591111555012074353357883359036597728052871822458592843155649712195107211316053788654933133505688359927188667597961230627492625366606153420530378515509471818594712239620828555559420090816017534075731529044249532665644112764677865825216887520289813403899742707755033728286272932579588148137750624144678243481593882023444169429495477551979515831955925493506304003756847637470494404432387526926155595797139365385662208540851685748916521834332618345773315734520839397224202862372302145176924418327073840739778662402391429169030596814410456419921282302312647842305862927121085197361758199592741717281167060671765513035771538790141901865004379410450932753081422133659401503476586086651001065681921027575544242343055177202024015144242313165885737783274363125786909845230660878379238100379331265609461179343740865867473143502999240709117932011981612580529508422307505548749659474678193043306301736125502515935149397257674958498573072717093970235615221397218494450269983535797979747972683948735155880034929320724008881298448764668209890191513443510800211681047534867301490261195092778640058892028040125470521228912224306145955766414920984330869125969569948157218687822880817681821671838759417715079971649560176998072225763717563686795663902484106954373906026931804793337343770904826911258642967554363001661626433403054195738190916201059925188071221501505128322131112297286475304286295908937832369241179677182803814429937566031832919214096963385781594565667262191573450173612239780916377756149225961685104140363969136836765593349578269240196731520325333030448858945762514865572165233170781403652762486546051997035638905590029725452394449133761545886843731804329810730243199541551505572438532020810154310985715825133917126237229318511576206281509921581282658813509497745577701055034541175672004121757889083367104060895704708596996634975466482600722568829277805318156042467861749002189884022844775984797530437584233588964622298553801667393348491417343346163421354463345392826744140892528802906659343850551365754168897831171544084076290036399720233495928632326601411650468972122106653881705838348830937628907949887815169851338153155220217975386693147529420741237890340668141613447263172556733001921259230841377987987110554223483015424881759345625890157915664499437130538722984498897006173881281838571025376948600378221019728483329329921040921865577641510711071519308950035808501094482515876780612130166886679152809757613297791417205021887385139616468459457386198410432788595350046196035983938437158047070680315120348330872823252097223384331838927255884214713453624881868519181438852284482175535079191137224518249743791474371418304124873454456424426009557202619414380061992848679539539361163264385672491747404030046949089373777441276966584765376749998207874003953661470805200824882405540142270789366059264708392385651851404136141634365020227052911017271370265780682115504699501090195035978251402004484853685278187364671834903562630331617854088838409883592678242701407212663802654128045114774733754950944736368075783226264260062809874554783583576521759054610646629983739382733606404396631604100473886569802296577377124136566859670987038170890330830114415873247098959129141835476225937264890753551089712236028582361449605705573258027221535370813165053626749933561351366181900790405740124245895756213803740433215423148569865280113982411932800562736509299277708128421744923759890694930116860200029669870875451109034771931084307858462913645829816632795437455787505803709642609041316208888180122228975510332798244105833175067906507088128752265733540305370922688190109221692051242569960467891657248772718964053402442811032212945799876397586248071225368577298401657549733775044056771860284492840997812464585631354839371309506816566175933591498232612430291951202057613011242755620004465423148692496831190851207974683676239822431078905823386923354909674653568392814622556135935146816669962318627621087584449916239306961989055568242215664296516971592582251390790568130902072211441225818356128220573183516672320414632640741126898219496310394859015835957493152922582831681824766259658944048997491300096544901891295817128053243451577626836493219741688750151586544719601159784706394704862942350374029791210139850001794541692792333891931052856507947616441627559304993653808262618161659530731305662227927413112107628095879867994444933605747810189721839830697448220598518587450149112285572794475159971003324382124033813826918332913487988199939640367734377698782381134237268033678489000303997218766157208922340094487431878115501677053317658234052948764435207770604258666336587196960604304693323848050636094692520208719237891030760173491247761424227018675331378022202482362260739860502076623963779833143504882842902199128565003854195420334919983291866366400779135019189895424057989486982413097711801927519418795879237393215791261870938720025441826377178967825227362262002138769794925248150117192849653982079279712440508947136843250181368334666041708625768549405738609041942461233512509642257880654203127035289699865645212896400611539450559540876574735396386407258433735179752715467167813820790608090947257822672145631431061237234827728922669799623223374463351568021229568328242778233287297167347705074588483379871021508784882573679008907469439940050472003060746115593331602120423536419192281208180133522975954305576951534220396379139028689944571576882582097702839959902071144837888630613736649239239551397455087622034463759925919877014731180113911191126350913710006212616652018000674953345115682814630733341167972781296471972766778942133315724654154120782856306179174865220679837231777733200340189808533411506290454692149084729165399010598697806637517685084254699157527094884509236238848910469124695675629749468377860770696280250158638339472891331055258365410708351128220210931663314776030527037771154227880040379472648562730368480252367628390413628450795241537863941779268398607479044764784999346274985690766417027309746802532962701750939818445083847510449201393399432855192041688746605981453918202499749512111974581004203184827749372164896626729938246334061142713344972146744967338540037766139876554403142611740723073232768593240561353971060586820106479284378309278153979646139400409719807376501944739210645621569831094381107384262352571512873275556374977600835238880063866201574500266633059113591614015012741684476239967160565627665505754256388890345769663588349299082131272831391717525535890992773957694391644578973755424011561728369320662495405277458552041340422733100353556424400515384422427675068522867393754765522685019482237412664347357068717793812874400613101445736798280901572678046573417500279145485218304198276690790363799149592403116818261808793647331993363017928206629396416174096157117585791686205128995051557289745478949360456870056724556783565080427217299927658008973757512127339799243719544906226620131410720844930979020360137684773576830923157985777940440932199121540961969194873142933838838838757116674173560047300352153931902319590897546909750575006747427302965474372063370317731119363404456857331644328322712475536568169043328936736065259662226193262558425631804678890129918879317775378625396434053679600822582214457679334074079300447841876384101950546928917960677699952670982328924256661425412445415573389517949389109680494728977074251263216921363556821490448980415401790750343762789525558866480164661203661985578922743770868578071276872419540565926279778609547819078039552351067158160028600756902449504181123892418915917074023374591615451046090165476527115959471899614441743176614058805275272171031927329476643432371977654457078798395708250269330734966890660774492043114482368207720127382429432138375742918508590464065023158497911659572048872328411387300450660677524039766572857038713901550531624051740026400100703019049825399157403847043005514186859029127800491516844602770204559821544607422909160312547698854141412423291143395810928993698280797157437456185089251154726140621169644744039597663007701995883627867626731328802534687955044041827020775516995018303583144911418952849628010776708280865904059966949780222673469802289427431831473529699792458260968794249223183650196407786510425905932379818638898952011984602357675752834029639561659612749832229103880504989812644100644399111337945598992467775157026192005792260266347231867010420440227043409848719325514576010164872044442602293624963611380674845393193711853808387047349693187831895003807387207658491323981178454717282141952063743960574995499600395996276633397728347707871653219883714127678915351666382155120485927414588190670860327182782306928917929659363830878934654026917037641832376577976214152517992433047310119363716361397794886642342721038218121240163166142636024884823214414863356944345398303610364455792745794318804606907568384009360805848828209036856966129908747531068688516767247710154913426218438398952485801835744793218300001221645906613021093641968325086041615519759641801508427923366833279739868410032630352214504310013975636855777131903426028407540862230962803596256388930689058109451010571615051501335421397381310342758314888124389202590580616867657047718198544144169078677264053904335118935588228729590646809859525648594324049702948226653683969740216611945439142947106009299252798967236612074631135101039513125506037861554379890858725454148821075281602318717104544437911641081193960340297863491220358832127861475435457010789141985934835113965509461616501525952693080207151182679953511888740079520456808836796376526063571446013373407442906573571915227498985238920375159138616732732820145209308489387153158435647662509215439424811868969908373584569679868070148402955295726617414358415683267766770923187681760036212457306407325607817292605836640900203757001464803078810199919708730140960326853267674553815121091255868942750629275493326603329935953010297648168059826550324343044512429107823838788065637811711093737350579418232619474204896929354503588093875542102657297220837071589874859738695031841440928297745507351358192913291033048800333123373860288472045297930411134856327069412753390809712554183035944486781330633978941352618772101122402772611400768534421479873901076930096884482551567022694596785169811311378090808315749282135467115730645799942180225661084504726395475598957943406007347162524392989304539895370366200699993588389579672699360039437734276127249945382927251542033643057645564523770485650142480177262932282743253172398452256395493739789616563913797017618720445512440956638502986666027512673231361033813061416154769770395552272017173327166714595188260673655410504864645431152545761924035701640156866219844874587202537331877000172156497524444796431816991250390805729051348312898001863379376180189878220188093792104528739769195344580479043492123209697530223157530108498390835838616599203026936796969995698101845741782716587117030068131459533492249728750189396781711712008281603507425557009583276658352647572643988292825129144630179423917526768838733378324407988748584527899202897206700070224299951366681126275520488841876126436084134816334285035177248639778553033732034340792003800693820927115659645540121510845643430646675030820824955261683730419910285861232309525848402625844004352697378806489049819925866351350243240955416761490699512958343638729027652715546762632269910647709881961966229607963018921775518596028024172181090302868867063254594546854819879646427842370195980409458883662242297351091313404483039282488316603815605135007159312896968282667414835740806959610115264235921731323710199597516781860461419701550677310486688243331936187192582114418470880767057178306513255347757515912403388634915445769633344761852691982824365706329599143126268450397160189129958373717519642686708137438228486429839524442828069048792428606112467489008141575166308489809560565293707639450600742959016931985234107721853650409927258749210650569907779495292451011492725682387351331321169649337849844452604451452726211518972189498645536612189068773877257866206699954700527722175524013169580131803558399647422076147251178718911739094187317292021375093840881921197733957650513860415301464849615276208738208236766440467026613722731163036877290299644711737220221628228881845710410164418429913543369172157400619758254842786601728489387552600985017772643759236748094948788922597399410400740643551039769147753976055707228825445857904142444144109066325716363877483101883469608609728811767534372441717514474201094263563731020767713271189639768239874643777911473322805999479162617962050518168133737396590482820808894020618422346520342477426928482107193058838987544561423094998712460764507699702850316506313423742883380564244632892424481897819978643126682682109864461092938831586072397160448809334179101747136924254147060290385638797884272415641959322922571210448112649251472093875655600793167792023619078329937206135834319668936954804298167025818040773821854118328678990866188547127677538605645091478686690568057979397920518264072365753994518762725065875042208086892257035117902541610233010382655402886966359621958752820203391792855944729238801182066304872276514999786588337359013688609914407978911416719955967936929915060317196251049050986625343232186492904732584682848265252508775693792582935727246818417917030079111967653278654667939894504421000403931314729689607212450756979221909797259356483419979064112017291088882383503387528295688124208880030578402334267369452561324294268865395030313829260350435484289861429781941254691259169306138578329599923737599714900032288593354633876782260552237102501515212463869441142520889510356954527098272723785432836754212934616620390313722971184318317373146130316269878545099526472543505314146036699628024900807644029883033442598150907412479929300658900495999476877942670749165977542511276854767216529633859212410066279101738962204868530260910572299455490514758389374538839421319249936793219694826918253807678680773490873069516069146033682324902249612265455342108317078611077355381114866284841548183417475151745204909380024784133698413316121568521250997299344654453227805214370458353056905828287001842035837853529606074879387647302928962737077232757953748756847881634221549492989931706913212143877166948535674271906898804574238380678850431664519761612513274289837400649638704260813618023293757764670371230511468423500085844430466825343122008163770189267350216931344552337432020689390208135810385421118403306077087850885917506187953094273832656561427361814249310377489363659478853034224773321674282825385703839838154052048943039526938336512174231944537074199452982236081637000275511506013107603390026151890499562477660862971131937448331687851662264421936488172524647298630452071295356055826723977082690758886571578305972957286925749285650459836073588667778580317815588185721942103572729488909847258137301373727313095396951223432287976131930050498265216691840405191714540850213763403401887464159612318317099441934182230254837453227312046458117024768535632948252710345756436078828981266026805160394718539077299083099313811396513170508174954282317567676971119414278328036666832959666485252316349850062911294468701429166908225678237021129661688569006233230531755642254322086542835392971040949776330971828453990980367663702175217789276781466659671153876367986705795723331332354493528949587817999013114349526475555172349748090040431712146283997268436818600041156195999826671292878287420687901527395857573105134445282482765108071948669136704493494886039115941905217030383707757579509325202012222058317844622540377044781246653799091804315752882490255914262813283707292296128400659949477652503751481129049661978664420922740034408292547916544269859344202180719012515385973916559496524079124078268757922259364021546401574796970005744114607292372322534898583622657995163092790957019746482005627042778847150769587690713265515630066797286400662043329327852340924178401423504899551101702432636144584863864635517563807618811044267704374518783236499014378708556791741486505017695639598669861867012223634607850714358000417625424035015662064893523534204606034337467555908121641842445933817892905636625656987924386992421234431597976614709592374394625744900608954065595256657949278560256661357100929773893481429883703854810551164561405347357142310460930058446209274250613930788385478440587342571395944688350220944680334552504224380285666923062793140030932487509937605966088052527449801816405453532689739303885735133835438402352281647727526659911453010394529174095385486058898928365433325352342738784211301570994763950702756481040459459508710032319733489694516528068261371842236712966738436509858605271374270832982199815742345697917138046947817679567781856082966569267993991128236180509170168483089453316502984709268840430638200520683759571377761676165202752370418819591507484186951684434113655919664644142687753200534188983732501093227408713732170296636055254961205294173825956872396420125206280181431880501887587943285168614920445427536748265869568214804699341094263051895464698462006194634199281351049828745760783985626996198199051188610408580275897881239504033709219676604198193904712542776951380485355869728467896466327129321707484187826755177250723006587398156629035214329711685823487130938458125117828264539907019424597443875174168979754276551598451766038294002498209090682937997876954241000351154603091126395530758926209544309120161374598193856605149968723705261774269159013541453418184997996101148388000360928750236751532910711694025912646253703599094687737149182442167192735911960815590503181854644777609155944532005733088204995175722242320112219318578246803092549115724524401597022282667843503395013301594988814137970440979925909720723741695458275822125225431391766680945366467011781871239985485112100815084818240741112427897307649635390853169078230514383346263257716863600822721737631680885558126417175444177696916051295974433590190303770850386412259282958440095696526771506607116593889271496063825094132800290253137944276506964411429634601559074579068826162338746584590173273115740855980725493490156189172236353890005259554121634018820898036720329669160490831093791633271102969251959564723068489739204373177093362808157631220631845249282849073020438581728267728751510987468774955956734406863797093063969762163026456207008337614909319689168710547718226567744341443534823138990121296608546727754708371212966400721505626545675600886158309612556682944019980515600511688015839531039796300211021467549850326377830219877582452913244731836709192004389174509692075247327548586484974656051879578911074702889939183430691959403798804637865532933497053687910004596561627008329350928425295177575653536851402702964715715396908621668928811927007977054951916586010264998710208323201592908310118555930635576607359064907994838437146414412488309753075663576212046949536095335550866856982037746490767215214025128448450163308627728417134221664004327531543677436580364206839446454354526996644899247321756934594254084113239532365809217834235106251879718755267410244138051185751346701824834531507194077153195564807203088605906675155275563967562164895753550366463644998360054130355880894583323755250782485159850159277514236618544842391127957390267590598998126935771560684120441631807595946525311980925509529856360686852353613762000859559551099764872070507613649511765053831391002418363675186520612310971944448769396226613737356646085231569179902110143117413347982965670420857169076577268343856541531324071426611172706142922818610521015917250857474619398053942888982384178003203003363898539479990539028548887013078752902030534296500549296227626495382470524298160529396091644127021639424648915727677231728096079843343382464395259546509256019640314074744650320199853087602264848793591258011473133086056573626819462100268556111905093528162408060947216929260319630205790158562864914706084939647747250602180313716787012341872803787756369193860545004818900245945499452189324393758750986015797378945795996735216484008810362523834304417943779102777813167914785254522846982021910377885785000997400896959838692178840196478646199470827124483490605825257394889361866419342268814406545944139878731433594844806958345873728318468161606002186958090937804216479610934592782258808909305138991775269102122526387616836079241267614838140765571342804435274596022085826913134978715584916914335765417807834210095040086691254304781254012729190660189552751282417931748558667161969472370489656118548321714119359733171393289791042573730088155188727613201849949157680748939981800177073463112375634677759830946335705842986406485822560324634387672324383316692249358607176596254779825709240667009338158593774630003725500653175208842753165344367453756952533935364174439135772456646018943423320910696845610096084991971032429384708794530482453572696964648095398364185450429889873368315521161126215671590159270225176868896829722339565744551956514183245317881470269086978310639532453067544978692367538990790228578680857070575132243364382742655127538439935515501423411744655489336990324505309885405182179915190269009693368753266922692324851208204291161332780735057981700957373257274754272958195317765015781909887669154352910709550505823591757315373213337592517488238217411153658904125391399293922016723358904966635114375730391981751487405172925947532692307833060041558802567767932265549980436301022601606397595525672337788008726858497576439178801857611035348868711712395592844116215229509462407300774657047411374849852590431540946237414403177134202468292402225880760032231232567365526458142813645992709366751596054748980708464079327444981784903441706489295642079965828193103589782249313648405394375396500517820199600285427115195720394004606293033570425604251694711566192541261939461659258452805683434106660593798349258032009555581956287314909196456145362333795137754716147585721619764113069051969547594232522230648498645029241080734906474977836060707895022026120887837333902340404793057838361403106001882764119547529025561965236286797396661200288254868552017068616569310549974697564185950721635280623817942473145110838836626902373970156030550290953350222448436300113303300768083334900088218048074644945750294860979582453913087824281157908968803959029354158171470265297968311280137433380651908298934076414205218238936101446201992641018861930636017030593706540119428175909980394537902226657695826077248591846703634864226926187484668747984639894609005947518147812071453895600015160108068117254477505529609938080686853884186617666572426874892247389896945993154023666958660768930624936101160355090188144245630731181826662867127767360450540761099165626300845273313816853399129137906195963295006334079889475857926668885185752155789849227491984379507378802722905467722839099239543901394403910957122540769221225090819670893900091861939040593945210693274219153596051983809139035432756042742869332468189773228236314797935556441192054595862404113760441447857958726492016553554131068676290656254428861019847905686527641955099342389197516996714436581311250128154513933428493176397088774216197392262938789930852718714922186679590807350907811507172419250554666683107830295541195820013966189067470628725499024388589579765158415757441710963142379596620955675956645631819007574894134822983577963727241013559630007011644557010998466810972782875527055323944186924436153517797013707688983117441729788218669901051209275438654779256420238151932231468319585669043669562649207525064168296103309753067206870298424968712954029896412549199451377451003685769067126364070593794743609585322974056833165443311575121753308404135192190762453588925085508348589423657631387496125403772706554931068257552014850940036902915918812049186179556138509573632491189169632193098375273846604807360142970140970594604725979798030783739470014341771709020852281684537602685215579295256596708732306975273745762887493424675699084977046549292898542390300999182173513575706420134112262390541704636315653739895266611813403119446829742701248998582080209874063060842243616943583894309523532149293965460934344853364066264588957387431487021060280203827210718193332895241199623930952686397152885669423894925141167095044341348470182025196729144651361071851347642840282925458116295965725521939995630576172883839123813447902816328240492311920804884100392625947873292641354946666190795072014256267174129872647314450066181995823611204110780684024337962509112835913123023475361409526512940994571472230536762217188196865210558160390033203605355151254322497971533588605716978073741028472221244781783099198271517749720798020345476975724891440901308646634898959873955499631579423307494343381837930833713484513634118422825919109457011278442022455600039173864043649495657802569670387713468292702776907086427762134508259802640470872028570460013256851336636146656159515915366844310026688192550740350979482889785675453547533200758530985078513750916545214760363961436226727625691449514292735299482519050012402599718259321802443424196348544366503017355286060828677803506833462810446924201147025912895854847196737270524160400888535093019069239067362025129173481720491336673883028268777716427087391683933354276207552888453836231525597708216648837771589211337640766202854511881190881526767274796784047051826795666913877207891238839735145969770724418636383332002275087158686571283936863845865238169309358349505318080262535990989602824796539728219634639511005130281363133222127723971216960103111200452384727423866795218056817418707977441004373588356664232379484714222483096195223929506527146214054059918851421499107164734382647872122893821546680349556050943986954943132002646633470946258116848514691116491390718423526448712449894132236733070520454143342821959891088432902565132588703788985898674221326434791718201812863128896477468626743537572747563097947913543143084105411040535641404131635488301891185736720715510557344723326942145645740973869710605003790809262754613325126720104418735575611968717348475671928825223880520972662791859460162980327535290066065842444608323129107165888478179709193157508075085485804684662992835587653349787782403007371170715757984825191150564493645788048684488738912507207346080305584514964123130887798606759103637133434587808445158147300389705215829310849719640459876511555776061558906402318832592958896585918425263010586770786362244124269740572063880154529718494886615166074488455581024196984000953896884468602161574132426861125956420980923150642714306848467963553648528400551136426838115831783759322607429213597525700046770957233200734602437325378782348622589375347487081425977912564356468074459622378009554536330660428253875190826083463243712118262288236349423756357357781800952197201208813618781325764190864845457432217188668295894972075302366549942241978194994516164435474179032755228368319243465857517468519228371034530088835531540785782453186428884701595903627959564766882279343643199981033217168524797867582708974889324385153416411133097368813042891108740511100785993333385339899003294077350497729829504612031629360358796441851296377593914109938320476030452935191118604765002819260415451134278671043810025953366612342085101641814992837737922375943506871229945787701052844134535948135140751596190863131647020712724106242383915782084862287046456309608692353703605105173790276387671857965391968620961050477880810545183819319497684797490202154478328286939591105879956093621252696369505610675993387979648723415297606378101196530526677291541745494698476277451651453614558510854967229960149189261280993308506140660370695170802086254852543480210313582051055721059085953169359949326692632354398653193629141341646087002274620989660321542365191226197415486192786193886322572304528885790955087822321067972446476390115665088366969968165406257134981163535030330427829984344061803755364895076321075293671898211638525528190731167744619673829345761801574838452746842095574276141511382928586253788273206869242023230159497760777682863827237816124537419038699788797778037943093575265162443343376448500944873493360658809781034808966892463718867536992713081802164288930206581150398665825811698705454244717843338667260133579169355465311367854651950330981298570554465971142395827659479132888793861630395848673947201420130682075869817316233298188927050175358802504664744736855942441060227865491856913567636513703454760155171137158252005940263932348890291176736800494569557930267539234862250904011689018415570823284610097619047740017282833447562125323405214999594955110435182913378936836171105880983418888361266815081043141866010148006384575396143830452027557745887057128998504497456136242044417631066902607161807474384164575783011391946674338155758255398725673521243976406391476793787985147023079234539975049986424676745588071387649229729321696487976423129271993439518546058587641169122937507815956232674735292916252547683041219260881917518936708147555480722079791923662230621666517858014456563488749572612471531923595684449858675441845766748220371801833103851489941797377310355468167866551131588306357740648989890107777020753402261758351937303510665698914610865595779307040048146291602520772303773696642127869593751103599131178940643107821309854632094473683828843517159550736979226213114090056441848630651210626314020335261553981943318193745882117511768353934736587018166063642601047422933436758161815250483216357921955563349076793559591053850106613368174454843684154138598203353458431543025388836235907739644363024292601592786888091469539407577379125584982629084135829907625792280926105691633036359839843521438332087399751901003645293882747579441402181027899491584914907095119419734084182709617861393560057576114598368660105729465950644468226714747696250405357627235712349506784194763885779439984080238896881450249087286479388922329120167594190044869033539773369334521795937142537681896917856128594752118697937708759290173954650967703061056729012738643605401450783976910602372258296339672361995253832970998940635560360033434362286658273424766925884086355227850438974146777969373853236096849639300195501673460941559052811949150442367963676580712095631632318862943189945681343729928513336467320707127263422620646200907154341333119674602263359807800718333268532214372986964213728577382173101555221165710644159136123717114457793168505163135297341699214467712855519339099963788285699865129672084418373463694846594720940351131298517272229745682352983918507775129624183708002670913095078097790206206533338147733710642379576511777572521240676772641210628936150578141839603547754129166411845223735282394916897637352637856129486109830360550240153990141362820490275835878601158444514756955610904351103356119918354806142993115688584251475929087953419137191197402540325140807502798762563284158682601464323751827034114421002422710274781007558595902394993523749171154400569013945086409458692998422209382455018585673483730158805819195730263777500142875588550341589945491715998899688382719361841105541612176619096453680848622435258602876273115035356636579428401026244405530485525418933535156745492249945261256900658131781460951575313733091228526297404867068009835091144162053586510756726730151187806689111963755215935696312009439469628178158487850979636583605071492979021045332185260465353685640673186983950145288300357268085807984092626010685539779011550429314202462242884704631598658086105166483421723446179131977839144272525506958740768928219635087714390493735118492755732203823121734600438027486889576741313522600018055430033244775697739224061873991501233002804995267489845587922004469298779761694821004117715073204670334422236539935958459006488633269912021008223376363294540709811357293191369909672896560891339404567961641429174859523456970868395736625809319932645515479448468396510173483761073994542095436866294256688016083997705451093285337220018343169906123129734786193537983733083944579326524637557848913958899783369959262948264029973830186289727143072423860579265670624144077551604441527858975531251005136494001765325217072310837763603800241666328805279153635234836794292975809329279438004185115591005328075232561968262744841313529942281453284082162360871534839839235460427503324444417305218083065083700368933274309907045129854439993932220746822444825841566655015499853845543497366131882780307022003250335989984936156940882806735924392401322921764081362053655247238444076365400159474830748266702662873458745688663660334941551620500369966005294594518115453739212812400211826286356932825094116353346262200481302253231662577292105162220780771362804233094210162459561116895690345116481412534160662490853779525933190278020570188448050350655722352173108440646263322907119550916126608978721226775723101757067472498399002659583474122152627561730897621081876841586544822450977502556587214504434998693676606402541225375990542702177284053022911268535386890542014761955393927978231467103957358701832082823993572232977970745195468655642125401359193041804477836451226774759361086282705112607675934545147428069042816381776925193870990193979315009969117861492811096343798440930723788850315223111250993816957142172721128604224772020731809062035214211528175857949358464880167407246895240369461505002234783361926339767323315234886121470236779432958838957898585350527950513050726439913318858512833312739558077959046021655452662850452118083421219214805071055518614893367671729812791129920587044642219314141552741996770382814809574404129385294975222997905452813816775475812282407881504754103797905489618515966242453782945580166455782179825950081808865646896094112644655618650833268201102834537469933619904368262377130204961604763659512261887702188211780879965512175465296422038234838255782074550787258453433167333128224274021087745406229300440594307399771816607927309627504553915597150267984913791668427449043648137481038716449077790991264253930930287731142451130452294212876960932329730351094573141341031557206154631556549672057649240577943723506718958987080078310068685533226830071113521761540222513038508558622657149279943671871331154071643034331046501364255944902245641689325690400501698450724540201696000751920948122744415731309591427795623521450596322559540886255207506145369393522552368457397632572290068291712131187508058028561735118545818437782438842483281683197860315451379540934031405778135076044796206868942858582202174682879833801388097398268271830136857796188943253169447480274817405821008426941204004812639526899750222509296676617073644528877579369641178096424172226616559025356049922434042019923662402238397099300437197401432536900958636447168510057811793397100962287481491132866198880148024065088973768855596175635388587887437687661177521567385202000510581676795024691681428221320782781005816183513464895288344455358505531221863095198787540419995955778614308171085581616902386207350420662617609199290832509080007967677643118874255345351261745209799198901666074786645486877041790233024719812362608377478206001528645857564056080421652378778363089797215029564523989725960771996981072035624242977910137378991339296087309928600745326373906718923989986809202006280578774205822703907539717734118303634637547685979885646273192394314533310037537410364923012546024002157542611107655996855447770213331170379426279373628730671757420499697989767185792180037509242985871217494836343617719859613837430180395658197130806068404933532843265605083673082263090286691028744258795641950370144597885952795312929608511604814226298913505399090743695279390981612202568382258058585662992667356589359758274996150554189043487459441224583073838434494186366321686981081799244196708951503939876279784972397537133419437356810972792723182033708759499224405890091329133380372852959898251488411861834393488877225301101412668961039023132003720546208609526433351144316422955085159090556052049727717070352242127631346851156672481655717597330391293269222509798548363144723388095339063469502133780509895997599525338742505738622885486557681720026336720080665309681409842185324453826565209795656410713927715386974777297897600825819126196192265378492220394586211337184121505279790928188746790597302426807282417777728366159123122115143885803041972412919123289044057611744607792001088689591152126754421236213329146915882039917916962017367461343834301772684496676189499431284859515385295968803247173393328716508121986047313783531673778455770652632615518707684875317306812029389697842545966550912759189088576624973710004434868987075109704144753641839051290633397330351879182834962650159467135010796319468628251300758351674049697739502106255046384909191401743144835183578881731952033059603268142716424991966941606214298289128713598613909675252835053305197537722289009631189713144062543038320361247530413477719776388809192034507683921104293216911540650917991351749848813806284598812272336480237892877699783365659285519706205590728807041693979562403116556552044060394462444309644246686806924453547079866305114970827194721052169071892294958567150557984876282219374540252685243118900227197328205484943581765242673663628044309137280725059086922887392420577667718712607951720922390478286987528957807642151239966506793199883791879974312812742062355682503126120610973120716680403940073075052161844421358651538152315646274481750101637298656523743882713434751179250144592418014973270248561133260767037656243187776147431562930920940377011492975563699369601014242872616813735573636115099571224050154691476500147568716413791056906519695477848832938905197285485631667989768751687730639283957621743369321782842312052137514523865816716905694878299834025263538225229782196803964532338940149939208355054917931400293268761806164515614653033176078256388253531861641933647081459179732288024305156532854486249342848766951601559957888719279823149065072993636563946663891932008738862085982214222745744674609166807061989353976596610968645880104693135157112374874372682469661252756744622789960294718439378212613112920132807477519274196911528876958054767534789292694097813738692555658548291320385317493008792072078691469505731248799619251625108117360849153047828560826860612466846214169867214923232044309316880264876646629925735344978015297906728168809221779741090290573732417722896891541609433585268615016043070358231560597013200112576078103253998598876351908127261562496570799293007611169179083364033125045232715218824550202111652864991641267123701207309829121873234202025655860532452040089805871113002541809213335252585858668086418202008649736992553503265083762620404612988803699929455669672198427608372905608213710145979257810405121038549505034443645807450022541310695717734488126070221000884422895573867995740835212220910623520498403471496628665940127592561366501914202344447186348337629420683906784749295795061499959879958700633675124317740083183769995195178340092090249906795704134098754081926091917314760129253627500822095323407708706009923258134850220982149331580423462176903707261728954072018123972774288412801990015261257284584582276296355656703966863061171199143907786971880043542736419258078665488214331226570956665149070490324173136970683384745376722300917644877000759232557773784967526057189554243414943600820369286327796709454846517637228375817921711291879332682808212386631735292832387753290965092576104713254987413528851044586245901036240376169188100849368718705845550500067425403972808035769729468243882380881492026501350972890767978218285849206371474757088711351585174841448573184081563943357066436988351012337847752236984160900473425934102064465247667800133735342405474324731930106320224954294234807803543857698215280018332376150966126651870369307154405316322112277704089810724017730281859558962375918480213072347903055233270078584943367346877377949437394916584105392772869105293589324035604809248217799205307989199707314996495180989166655824860127389222778803268772127052137127119661369310883608253799879275720863548464875882590254922312175052531813506371187646036593621009922761010187895426269355009169741475143086256764604863108495154195580123826847161251487739644403164319673267187107814749371131133483668752086428860075902749757754877475542312483323129434800077461789088572266905766082610276893107930941320617043782520858810846580043293301201557730280066170088983325824250125260460508903850202916887423583426994223291187881550682620400685619998960552521771706281703511182126266670202495800790242807578646953381323433295641628870620518317752892556343139535856391301187198618677566146788931923831935506858821527305873856927199870688493294159665709142751096900138778489268620250823663123160847445016742466481764207215471381366962568767719106261443808597376948078547250872074191327861293302983463146825305262847538845869902724914812550926094300973713636583583808464008585138169824667586794154342949561197887509365510491556176914631829381998312152553445174191968665874063023400629632314133275563585862381154151639162893077964744193253329266191138891825706449571404565288839439089003197481411904627276141051424400359500102216384053377897879851121437037754090995238452534186165366442332564004727207978331018999094202994390858215424147750948357194334383169361659980778258938738979345750717122816788395026524218711164247941601799841226221768873462958341630607749275387768268207889632172903194801845360883242306915221496641802865670512688787341388966136678565944719544330718864160460005170340353489953172940539999105552827038780406717399144014338882461913080551514441622976228667199340484979401882956745584550555617621062301282954882255376972122669530953298561731801903222769339577233477259114516719711728030964504616176547305078299865038148107800767636143979479847534562206859257279122590572442611368497861882238852281173331502568805892065685771669490662577460515405554570332013999019553997453935364305406833072457122568106304430087279625364404511749056815964676173182154156858868014133050520789090412546886303132506918942497268816177241761559099249224404919992436709683853904078596817121795683935501866177157405038999944630114529168793929556789147069765169426373613855411667259507450816591581807778015293732424975384952307349053006346321249844336327417894215201561309831438693292390490722569967159126795637858472397617687318684653381685080562002181319769203939813595646921608965516876641151550122944451890505798222194529102739266263779899433304064460029189346669472492508530795583442585404228350204151707155259405750359849150155171361375658296443428495613880425854209134018469667057010628534207283612549891256848628784448214647653377821095131436091727835417346099824561825359099782379932084194207670106233216711563752945162162804929930727371809077808988045269385373532396242076456808286166868498012379842655275845185935482838037798950741208116971936135527755830925014678692197234316419178740587726498157365577947820826982406444345709433969316435553394341425752702934002206399815729706627912950005580350415834642517378643190760030258052362591378684290349368802426678462791476885142925881619825803511774530051128058967502108889261090134718964130387731686905403335930393606684982472819053804022752893712552458074005453759214204830906795883185764794382596627775581722267943297793720840470509975337664590525879232884428837835104474132851013627219964691139510509196709154616731245189911443423173700875858844696499259484507634453633451490218845700569325921218185868779732721509881121954940642957515903995623503301198945596137246548449518911730514193716956128726646868207105450738968256780788128674375686459708488593414033111645204979162258011872597787491989748420040689348219428345615546581916262002539742542611945246640365039757463093901687921867354679095293524833818239041676848560749370141948177057474648739836050201041556682983403323440356206709156800191525407357950210377566315225433463829882196773548644356637555340229032344043628528537286747543944847475643748383546349593532384969423122006083169283125692181767623542369539059513720541574124101795455785570490754894407557840633487641770500964309314815993045815981181547466899183479617005819763282808051163595400802811404173819608201664578716068651613442746613674812703220244764695425675653527374522897877835915792006877882140381637087188829830019497923890209597534772756754657960574507813746378654457426785569149224262249478068997983294992163107378644512587682601498120192481723494115692958174730367544374761047808014774114350330731889012464669719165088364511911994930558753867983084109919759872935970314672559988760037995372755140822507734904542702709856634257058406353591825063933182374659215923048908679431935490064316580059871393988334711156801219663983106572225663397880684116088417518707751511797586828295141177519931128446006498577485307073006038543158926658731056366183621710560778615628603401498855299888578903514370131916363517278901422689425152815967962575612109302156361737425996559508160368291426144029510142180744528604522808248660777158809902279820572692081730687301657614731116190478929580469200758735104443429453511299256398068153799436380505560466261605792010884595695029982928981419194376432214914154289027204622961153107775767474231719450236931961178004095549715220022333342759038562222004845693235927256822647936333578161311282970360074115913814546297057086545781510337327018885189779381177011144906565057965804155400224304842496783398733127038630830263806030139268774796453185191946952525578388343237593326163426112785883372932234318535550166391577641776045741013291841376326092784675327101965414383786051500945237919148541927940058554211564822789479961598823108183992925226389166535557130660149963552967145976548075410878398255369157119255213643134258158047321213036223722679759663622413095973425975322508221377464902331583019859419421786611579295923144530971956066305876989436979396861666542790390163842581978137095186113981636428149918289175568451882258823885006528706823988908035963825330638497362687561057921975004997141138027059372022760617690400709220635401042578093867861509636003318265371345654737588373581063121213053317189968519226056387167709741047309745221346021379178419439602769358390043169290230910186680883389085067993197332687498580972382920128943065678760283531476715394946769467236717697416494001456690299443584956907602367177880938808913839633652251699618117929596096201405186846234501058324813062735178732532525837653670476634558315541751971823222322307116052394510305682885424039047884615914120358735544817797286693327655365408980413459328879560754668971170404550698684873755651530486835743602740333704334615686427145002315066512147277591894124425269946253451089613625246348048205394969763871962263123005182467378992580055839385528262849083543382246335956756416419667746116735526257836562148226621717033201625705431246928447602881214291771572484665378863106441652896572585319465534518856720649232935771303711859290376179080831168150464421678364502591046479433635063889656309829493180321698449553330857950329138906660909560676638933623456669383141825121948303213241146978339924487189804227268764425036625928101392758049699422053030673611633683897998177414864601661793853354639243388479760120020777167747595553322746278011520727900456141956352090263042225048281038820590910643305335962518377306137303949346424831918022926072237950785643941506449495114068906566994961482939061147962972813192080519034939085132770420111302497718034239949047724395047979953108098836563883399132521936324551249872830961141625388865045888797820123447699560994549810671128238835407894156155650762693192775613029702827236772573597395490563043503710060137068439364364235434344877790492546978613766983015393385523220484664794069890639250711261324256555143404701680767911307718687773634314191750552323668632598312406926133370231765863082463841366670665811139217913496558025338819725601201370218280488408808326330335486027798136382418010202725822805084817209782696834023742115332113391497667002788394095117769131350087395592134475634364905966428984952133828574070344619384946958612025314745888362057068186874525169733745150491237792831029643292340173242805867949521165135681063915933272293906199779798839913220097898132686932363590305793416841263391304545076573856189088705896560270061970902200811632807372852887345887882136983137435609638858765787630170036126671889629596665956701934447630291865651206962775257348105737737846335741051471598368017437094434162797689783153767646825142225362022120761593578980925010675360296722357136534159884790114958462142634474806801159369599820775066797270669000905906682437413588675829748059939108056555421520871979032223716570065427040126562624083086387697570959542344179292451730123297530252170248941859085010510779536629809614598973387948117727925451252981179625421551437550322656565803263179378851392822663288300535271190900418572810800578564334874388987647917984796840862589055272473065896763238093124199743098154553044489082798278065081418942578366760933752042346569027033906697304397538512919262234055892778241754516470343037253805585961937485056770097710706131891286220826485559610591186895983610596381564304553026823864699716494252396914075399199370572100766669596777556004049465498265835713961871256841618406916220125627677037404181383302139300124716155097219552048137915215335793853944153899176676186503157961780560505060497773385985540907570333632109764583978083403696840061787088598228231763401728358147086785924424351953927930477622473948655977001136141404191080567732240677486109436754918183116166509157027343587520124475508315986469835867778837081714496923975248913884183444601549166813092314802245147841783286451097421124567161219798092986389858184747934498793285578987917495790176094704458931773666620769908662099875526523813950201071698175446569900914728811843486697863101257220387875951811964073158554325511384440675101960706151239391081624271110789352644541535975061633260571927863602216651615181968779061475337732096313651976585583397134663676859983017791185722557905624652438832743609776246013477151818161889643172660489862161198826618560791039199310251646433555082330283996203820335755432381994452530844681210989749104078193176334445190141662998033183650618175007681547629305796526682376796338876460125304953193661125687031854896646568198530405700305130506590855138363047918205962106236510617385563956093184210371689193601130892357071140617429694085937943470809530161221574095939750564372701533266904311007844461563773277935143212691686660522637305711799200307215765264775350011631261647177459250888676041461626561923695444582415194409247367898145760674521015879161992550285162152403496587937505071640927113728896766823239598851949473796847972511292976061257876706729982946357452057395331958091833094223270757408433659932742023445006719111190047021785686626904911072658855424029424236996565800668666705010565950295713837841741932944495882804891535700683882368067761471751051080684864406392675521741336653026876209486822568265895640792704258277227657396557853082550127035399698638255887690731234149357972352741902386958892978825673323368866164600151667181700292596607381002446642843856191216257425655078364717915025317230546606485282144889437164662249774107092361700535162710390079428652041886131035575250107328278111300713153836101182063809164338935727739701076337992236530250895376797469411891912932718999564682763329846158499938252637079922608342898376999566365410145571377287314838504747590956740053623036796036984143163223127338922480357631565079037472488382009022480804971929911907094333420150548904286192669613268471531679514837923228757961205209925439108278579301409278809811246684786664390098693905923429124539984633365580029358840346529590020315022823767424738355525922717587069468542439481869000809313929812961422475856929533961436717395323760341089135288186044244698194521752103191415787321803711419077714409809921997552540386918400240737577847532685753811564020123060951188929418231996436064931962311694541610751583524708212421194454617752815919604652597778877882325343526076957044893626543141422839620171725720010185902938182503453233097850237101326867120819071152467165446801911808951328337018647504169746098676704695811744710864557933327536915500986296545033105160267673251243365793787406926605689596562452470203298646657486716518943415266826131321763926787789022916457116930645972360425983925592973855011239751884948839265563926027555481286414144982608057610667851518797419186061288242949006826486153705887798895417894427848591553307155101851461345472989642035055408551393792202023274622556069820930839655018811568957445583905954177033592758318760149051516100696942794903831608841534660843380420545756472458585978132038216110392665627629688863813254228061452622978872763207623157674893867420931767241153433121933197891942532815035667987736059251517002197984242204885679500088280628371129764299974825155967532683260244364891179075280839393241771988469506945769851564882194358786680507570326877443229883717453399146706826372585371934471327752728096717111286013351027641270153500584829641892705070317367378860884056532871993137107334628829920560309681278881368526376117681628793290187011186047710553726574490757522437812205319550170149167661801338578029379107712505612677873284012966391599517401439449570875692431922005287254406228108963661960499026266274771038447184992152105056048009706425521900158120131965612055233627804409516849958874693492395277912692925460691668094084063705824304667146336453364762204559256665878825836798620140460070645405135998336125966306646594818514842415308563905372568637473330355762301833263800945626641582471116355467548496342608607464157428800434963981887910719190136481638903097721175696854965663960162994972304515575099784434951338510198398270507586252756912966367251785788485743692264365736865242836553906667322813131132855186057046552967969878710071139385004581261480486295973839049631403728466104453648490296148208556248775308231412558091689333764551878220755542598731762535287528855989610275579273798683110772530276802237055860064634251130246486009581940350647184012654114750795287856972694491657882201710088238489357050883321092372985004301938933535596939774189451438294371691084481200800124807177473821162858325773107569361842075236279285325222163962844520274662403319653102407644914510291443488698698109632620178807418077016448220072048610201082349053719572438246243917716713697922450995136925954554826218023456581612925547610902168033137312937436960053523630041068090628179300119143751492119919052768644178183567576687858992480279296815639704801115799113646462638700082699347286277448599914240422848054616467466070470388643669817386252372447197513442585625817438136851977693644586927279955227783106969050569122000128592082768353003367716550693174761922635769401228311150644628788265728749896576188633254380614819934772989304556955607789852204712155192103337997912038852797984712231361776643252238426796804691846178926082045598747453669511145882755368663364225621894147221062904345922746788736281250877838510881108014146859160326582371261335693969055160097232121873331024317442898474468903850297974953811170185199199365913635525896560268285538039455542648951806605653748816844368736176301441422762561031465220384684052338618005200400632488645388418480943882216177100271482266056342939325626265277342026589904563691750420709315105746370372728839869045000890202655809424974530779128577646833009077480101122644294779951372171686109247478892591338619107274536121680977078415660849241791123818575441734757346499871221122824266862253751707250101393632802705339450946592864620230478050195919461487518439904954031778926243690037906092270127063415423822945695783855446342329238310440429179877518675011988772613716255560619439627625797498059389869325494778071774313450619440013740743049844542941498393632731717401778270290803489046839917842109404420814171764840086943037448655654444987671528569170911191837261577911167302643754293945358643895981433310178605173355115855606929545679791000476350285435674434379370842707254969648670707566923831495101025190373285495159115800711810368162537225418573574380278429295034667078433119987282409150220288785691398996634690521579616784855239447731423575310778814983673733297792213447222172619318154213765163784522943419633310868127765497452590659316819088284362116955539433302851713344442257660646236627764595999398519172155021248242785191929094475435078592661376580437797554122904127123391219705786413145427415703736346440942563693766853106393433171183416211475251528420179718156493700245666977664179148392783503765376142250156309223732317434402064436058349972519402822052284828308948054307623353178614485488430475648918870700152210362035424017417880498095208768218909078459891592427183479555330857051279674344014985453691961047309287609979312706033086257503500012260378811486938513052222713835585533546176532384593146392999777205310209999981175100257782703470437409874217356690253288355645300775644618401950318609897298242443792455997178985853523784064295566523555167128184591867615694098400086033998049147977996883639949178221871282647859581216977064022821383392749606084667353172888416011735789111707525813465659437654509144996376982712481575900096069562244128600166735196215727380914351788172264300316311030230100913351561499165402753645410350415745842120697929438950132559437345350374897110471625840328948738031453660467717399889742468519234705303513214728379670263987037879059685116164721496067824233937564185623495786977771185210524865938799305380102092249726518771933595524939560514997879985343621546219862813391848225732311759065130880671911331847024126347943789132382138691112794937311585216392739531034960760814842132888209563140578346509440797931474513293191883722696677765601103103446531109871199293529753882824844308419045645894725220559045612517208693472526484005171491675206974176133604697173648799803114359399695215691223959434358491723086230722651597512086431619262464920581561250448348817032278742337625295555568603089397237673941217755184978636550777634624616707486223817472201802784997943106672451974317497957505469314145203322507296896379890799541192029324246721725116804859281620928393007992784496270602994373116189244880892921676095231338455847629575656707064054299684240487137111043909884994723889280549251066750256705187463753965766627991166519926357872553508153981174168275858805116043938007175640359748663723186832958551020418457360771983941443178616671306908010916988681721385427629429045020599759680128176183745316249352371539287519530929882344335235880054057999631050404960598585664969248106180114455063188785528378981118504217252924794239924552970267969231147942071074907854076175501786595564401832934290912069673054117154934086286340494113058469353235587239429415928537891143744655080501466438164615404182128156798752051056049722554729760430781786800438542342691649069119165678543670083963057332411009762043560431406153364229928924158133901003182950722590189718643644992856084966289019253568828102039774920735316901410997932825613494127817629786209103228898969181777369217398634884727405890686341251305627399942093070397559199192108346742029708303625751252617059699636411654472793230760724231091968467485125355833500664440122340973237328251848943983623566352533429150308386597123204372620866108291388970376883315005851522655985240860736840276292167515623867636649267443032316401748212042623915644532677941620617207386200429479904506412951196918967586645935109844468568293290645265143431015736008205756813445000609827479927334172727599078608690067142144438778143789505245309933475605041276106318822586016204184596325978497419123939305875202279300374780415141113291087208827569176759900349711688878929021436414971742135297972864715504224498891367720398716441077519759150921514142039220319552129830825470772693662755117206430329860670737962705794232103332837719082248929771485844882900703244369951609516841586130121057975125425776504410932257076507734576298125457814015660669907429383844717661913647293206027176920071134687535402779467957778924173975650997995501343594862322887840089979315726824479331085175914500203218184466133119262530513708130170211211808273902084652709691588018761856446436849281806239123412614207271523305563909833452087613900866987044038193089183780527847196568463852887486526229224787063430587030233832432570236522152178455134161831760700404241004276334549844642818510288608337234431735345154423047955830483559354489210782941999371044638991528509156886493486967500572951441050092511089999147849445047099313515142092817414466002176905999040712213917162708231530885266804581822938584101889674627083636562303681898665728649614960827151454479668449204513187156063416580717149588094699806176811443755417125352932527824565007030186542226585374394207618403153660177755639933555948293841143918231565013909383727082967042827081176061837622350690639824311917631329539795637544853845953910387202589051665306322318519827783791307415238291514119989288816618168975999705112313479107677758620151304087085688916348829820532485711739388507190615423587257097284089651004405742444478006997742923906075848879326443743048615827026465854236339044405072655068742928444780269573094866160134034296333512631493552944011797777497576214060861206984968499888558395790785016347303559367423722810266501921661273099070454034905650334347294694358938714769729650884033239423283846330117995199671819099104404290401009830056116304027650634775523670733134218876115999549064516064521231208646671395174133069545706010592610192443048613244701967389212616423905611712911959280821474893338544102160773243551492760858467118588371757447683737321891577399649846736356135689243122636590091384807752428756468704630748283620119471942464504982633352981487091780405449028000489355069304377396003370473171022248316681877149424904351235222325678860169818134210970603076923456358365630436268169869610907849589019403145284193017939267495777741576069475233994883069206155741373626856826820200440114438708406682486387392928247405890735302688577302266332871161587253209316986992878341979840644015232639014154319052136834192670583313593248127031688423807512888000321630282567689034275326285320544475221676415354590226993869716455400651377982399145633409163153358568874271833561565971642057421080849417658241354618831339722827791036369862678042876944276976756650657453132706786133538048553737087564414677448005521406003308915371099699069155775623302460308044144874977300844583232155928766553912774149751717355645878492187905438144553544972237593729772237335039295968400529777624416619044320289927218170933608188036057414140773860103537631411133028117443178431163972604876995471165438984468033669854348005954571739089309176947349911672142531035318607974880022531150166496193511125540679384533752176357878742452856639148645869518311249818716785354829156762126523652515768452031934411843085492686796539344426378602940239315650807372151148848300830503929515458869137003677677665705766735190036624038476254845108673328356980230925972629035135192823821745869001938731741286545114310987124382791412766395179119151581030083853768788400288645346346997941102955947176599098145355305080330213906470367702115896349018152716035231156710037025250480757498088214836759000621291059228795586878677645495764223988247218299535994594998126631061747025884668901588796798592177097421867070859062929778570574265013153746668418937115276910249941219497588344726483911748575059124547911344385650038126710835721342178369092645137244917211046738663163363316509784215740419243004661350939741966484130535754380810420250711605490110716096684260917518715516998460156494602636114203215287612771197607185614268004828671832357053748426944242895104876462113517703101783798459774176608871206908182807278095144983495814502677674328020646528349678249355726406877542227192458991354950772882093185050833477586700668515481133590166727944694365756660563283701858038231582068946093707036338023274535904281176709110459609191796636000469742013735297908428241830350135647575505724379763294371395837532872563994682290970432656009334901707504013507041537705584081053212061061233546507896660506461845343596127067573993758854724123446346596981882981032633081946394786927840809992714560577983041802515666797403293663863837371049345422530572021987459953135915417367549912837626749425641078589578193841174699742067390801728932484415239584404797017124618475120938054867677202142309507422434874193150786232413424409000247052992053280329310593290735299703766746055526541080948581434234797344944569417624646486716658002192944091460708814898289150539121788262574511185904091709945968594320945797035679734353726662639272714959824535428130878893445476008833334253890908466611463584506840166524020332893046016001684123438599660956876112805070902119492171504890363990597321053764514310387910283398780496834310390674375760729328839956589683911075672763120592056162982409011037110077053878453946072849961103220523701820606007149841796908679752984485478306882204982597056212318425962523199622766660092592299950430590201191271400003416004285200644893383283529689227058600088998232011026336810431656842988667551744177943280582104487074242233774085906466365297285261480739746566341222911563164650659653912290433331681855122137840000646609339407826048753383005974187406069623284754849935699699454502820649672578760347387249980689282329705636578550828189740297174124210425429560077154924148128488077494689597847854731976872470173199034052562923814401196655843224278914256997306892939125245945986366468558720108983908645107438231003123238738797515085766528511873751920213870460627060550790030756949735329267151747586216580669951830448972359392558004022543727848453654438984863575696714272501723672244803988199828155081452208064841567338303142601095554897809836744980590343544379593427924773582294985450483275661278711055858029008472675352316051091834330543690710842484012186830007471214514899248610555751136438856732286213350249890041980781168389731270288645754110742832919826087115325146189789802189129325422318638172035654864739185687762174877686762528583910725018730077723437729245083931840053687199005459837074998015179542043178994398945260527950360247125869758210189422515057379475316179727481166139958472879136445156852842992622283294324966536969439670258293467524875576563406260950740198312804650153710309669633952719558450333677123796703460783998967881517132968094537942732273708113935301654738496240912325043305039601719253766902635280233432796834085018172488230558487363421512204468307518770246810019976969232354558562431794726532436227177314913630785949396312191228597986007932548468735748896446090213942607325834909286016377528487753960414948701997537325399023073612856437896874827861554655614124988490805336404540302954051545183922891199113084652367408988184643219484635061260026022047466902562955753894803954497598956560670601102537002531936088685349670176907477185605867805676667417203642717898833313713508926054190598224491218540471353168534712513011824440577862127763494564413428316029496094701678525708193209027709969471660255350279667047251025986229635182354994006890103820040873966192112294246299797991589577902215106729444728615535159138212004456966110809169119097937043360957611911491151563013833189120780605777562205036795911953262783960364137330577432945833876836943414986754589354460729525625517940867893255139544261538291621439766489840507673936016317195482887790339254313388651322011375191011857378296013039789560970775608328030522039152005437331852873645930300003071708633403890270091979710879420088658548053893810063335094644815167268850216846666175176494191846565279187486308881207833951390142134048134273275000057431678513379704752616171658364510849182891414629070723860217893071775043176275802285802066101681631027247061042365094786967844091358809358111653089403331615154053366756762370976908484238988513744194630138754943196747062880705251446978782717632846370610015376456010996623529737029180324488976775329095408970580598292221990658359403181967729761473450858151400846800405222168969204748651074407957340466845480689519686030299318076759571475063081589321223650132905697586381516794854059418500100761412380899487711172096401732705754906996648065237898929512468463314031687244458448102478146825196032528768698104797934038003694785221471789633494573286646467444568174844939380579067467671679281471440531645347245433971246277889369459111764387093323812448968375913440375504021769683808738538163653926415651248917583730165138134704352112174365467270843643268080567870771184777226780006917007617795288350600226106290761006307188712710650822077411244834625110741014730414148594702837176794336056355604274926089669820707209059372266583496196851446036808520912572250334420837444315892289894269895312930105651446586251294056034844453997698109218574781526294930971729270346332171081775167676188639560157993323823663218312968398531020343146172292944599821190419899378097166773450665906530628415060278225668295515411745852958533014362421358616748088836642880443131416864379195926027409124825495699878766588596914809298605269533709004111303900912208558708673434431728218579404094140095416466640746596508539031201362616112348120738034536265736485429762266275560490970552405511879594703145031287828609623578804218541745030882910049260989091512178393277702552373986721958823221731244973140165979310104826607274977533119668424796071292614186108546476924999004661801029320084904480325505203334822568519588234127981619018778034384474757089405011731937828337956446005267418534672475314178232662238912566035963351317905022402370142817292210024361429222581774324438746493260449328040144266758276256079290388429743932727608602050858325144894571087353068564158786362431308809108949543331943452390740130483816023048543358061026508090122300385598726082487864093663013546031567494954615133173345258965443718397719764695777588855726178845297410327443299523216324628280712149750474314487284879593430919585325393910288165345219338957535109294650987387141199860924018193921747927785430802269203540388799722409306755536446510308128823491201293164356798964289514629584126728536806984193857601798274411605556694478924277839634347240769791401129141962385677494963115862482973412825583561971177292355807763988582913391196589733989777509164061577056414439185691151218552890847448651327180212708455750684611104590072781918382670566933425879656168449228598256273866340727902259251795194568225253177160626428460797712179943108812861462040567965195071144397745292454148457123265694126820362199897466005251332907562207749256602514424896330605904640910297165801805046693657729403183680992436887395963596304921015250413591850467067534810135806006162240927922476673798059510015315892359409442619956317957439507372400450083709291044375855019526130178502527689657080759411997093449926504655311743931340362870943291672115774978599129503462589201701771261770354802569509596996906651716702243311865083762329882000106334600880312378977320121534261958052817047355050523102145153867095382098447282339151087732373447222980073331721973083095835094291226562645471463848419732505130366843559210903848868783536735058740406544019992902249950159529596626100691161599603704939442682090945954023607682959787309592455766351768264869867663880554512443926934697361186818089985006467174351484527500021144857098490297198051445289075084965130914997734204037686513490642425269332037103469403828485029038356452994153081991681082817502794377932212275627460773709083039970263651163687730459164445408364406015244612773152270088078887484292018306297997459417426863054282812358225634230399878358731319561919101358179755417951129021194717827400185080998454351783468590745919847271347644988770304394398069262653720354349607867400898183711384177482022225444074864974852372652989800246301577989942997454333610915292830688884970770061758294329813557374285695133214626927879234835964668648132347145434933872916882192893744635948871072543435428859841757880402536423568010153347879049568878878077635738356955843317128096671079147369465844229724546574722256954230792536937980088547678200548509986677572655030257354407593047699273396877073986745107894647083836402081640301645152155652781323204706378010443987794436505456468964094802574313007348753568568988707599104902490299730498944177508410711429131287625333867661185191210329305518660887332093032532795067213814109715552569098521077492662009649185157429541664232594203644738462972805793291534218087109679981120761063185075557741139951493696149542346954830895313393813150990100240079024440109946380586101741181846881398208960519416232498171067178569937182914211334061283415543668601554510331112072720540861587945790620220682556614005982345051362916591238190306387463932360250271703038154101946252948590421824924505581353307361971181271026218430585631482501829359707831177219927965339899593972819728308070322798621350377081208765882416730026474831570641515092707667003990659179811238571907822621251203629449380299880768996169893245774964629249616526893922174385833297477966860186563358238857091196282571635949566331368494667528528402802483041811901563649765074295220785027487551739944075448172234138364654631182628232399950743052056262897818088443140485060556853008471369702106667555892562377880844485478092245049252852511904742893165522693884150020549184380244985149020534573611435077352346236184339799381091954464989673930222323013840423197005235504370547977668704484950115800207730568174537732824455457135292415067106297869482914744141080694025652414592032106666366171610286299502353158446080510430704296916253065140491226695599308270985256472258426029423516065832986858563070572923616203415102604627182758365433147816401778088791486437299145082499262621731092555036003723824600374120687448766041341127345767430471602222610451157257794411993718358951234882702939336264833888496247952106667187855727816931272060061777719526106114067188756073603130110790850415108547915461850418283298605215412977351192550451284886099643465506447621727120660824168675838217642641434116222313002560033749349954265520280086200232690625512434494451096732998827467964359688141645990966940224941511306434176313149214907383504282850940993759615894710432690259933594168348103822051675187223781952848996905600206938453002679326969805331373783548864230551510327573982781355889988429726016054810293192019362009851609345648352060497556168414757140506047140139479878771096537470989648904424131673196665179989511401617885467260804378840911549667944658658839586745783427470559982053078593713218461967423610731583890718621018067650651980905034752081783905247960890121545034470514976198088791407998854105767768062469308788274874337176829158340839266171347651328321320050149579998153610116840421797289437607338691112461948559225046726032285676250927932027978513172671386457839364370558318362504025465580182559335855474192754479388941327818854684214404115592781483911948389620359569375241845464862937079421687839119513252928328818838578011203614253702016154376444593211090702670415171348149277848001150729434626268367234326485662056165521115761616824710199479530589734176504492143487312156734408247704991256662908380357172094792100613022974865422138825617066831117944125562538801803995709612334078867251080186021060093689551563498710631214327834227421281787401212545225560397458835203435430836787166574890692347938013958830551243247538698363960865349110895840742819980495347707342903446084601577182861770194301518122212548143271432446624693981261065648077002572550870990978643786128495372238935760347926955220308762531729386013917048890552967851993838961704212445816818861899196818764916741545707617132128783892138629754636293557841266203402469471191179676075027225012307572791281491992656903589841849456053688128886651397622863723982142615422807188700549413280105499926436738627689883935650554292568733631913083060975583430658042476392348583258280940738179878376963807358142723125034484794915040526523839227138343173861368305054623505315282393144242681017591914892187632042026536647067571386804438705785610883625072756470119735098934488625703530085751865956212577298231114177548714946822425705404050331568404146641002178532154186167292817383540847077010132780778249913668356447088215561106404550189072215674240198684996595821684377619314034702255063997138228527206867185574218807278941129417492128432789183717398309239542582532817451590069192764799878209308747718483548740053123692188351386768838850116988759691869407126865305066800358639119284568751697623452336284062372677887322994115475316102231805745053517452996284322602502024493540096193980021350636336007322586370822615341879370044698705582688748939362462343169374352870992612163385689298497089745564018441270847946865616296623888920915447045367786436717489238734625275854687492772543834042226722223710347276199738841369158173446755181927951914217273183150667440912849425253802190798947443468070623993509390122924827549139121746900916722466689643291103158153021652091816911621233209537061290690489285602334696341639562613748291732273933872382926854166307873340339742746378639787232270786226097773406775265048423443900962085472949983926873060107666045077494285913305466744248890182596171595335202237226442276402643352158323475874747628967226836015487136237051562587762718848111534102661080651506622933178813503567553467687690016760678252771090863430174655050053106792819105578422191308373482314580960254899676820694682314435781863962156998654143834965223398186539655568654365181069318641679789754436517920213541224403105627858812051909130325364196661737503364134087091699321647593839414171146117152158544545857556421577730915445491499276976310915318049927944702199612210038314920438938618631174611452758200434408580671635912944227532982875774033705432842883845042403226080640253929091793020717433070397557931057067411506182826448366408138712732653688427543368172814861492873281810046472424242495792771088512167335844237894289166871574969158284079681430057132419335493616277322369935989386520673587947921108625062417914696778629248191923873795025833250172843046693330195457875679181468696879315915798600145546040770946586356982105894580501320735151300026484716785224164709562511919656627022814632311169287023242511989253025963658523896739956354762781417813765965024876218030308917079301216116790582299998565785942196640785592792755023171424235240274689948543036385375073246506106894677219081282042911723672960604568211138363215127508465525968130740901717684712127180057257784541165810148899290198912226439272540440889423590119504243958665366133507408763188292812623083779972892180538521209444739166756979204142949426279865972532139951012805331503303956369932244242661400665147544748464096809959989025687760169548708100625175956986634756270715301813888655699371572621320448133906507007582506461215724215448137320801477554273562484846012473718734164630900384246000456162701127797547784531616082956719545681744404518068033783168723388073481765562995844302160192449351839032769434124259431274767760029424173059089084637549784132008867985323577946424971196600111047396693756282678863802737060334928244892878269434057201789560545043375422836022266147266557209950005127855103815221632930743381756355503547522365236353883290194698380088174779425277672908836576203513463700048597180598575403757551754915575783649348062421510907137368041731018393193920762411756450241035397845361961248964804296019120498185927062193217032043555265895018667006046088382037085731070045140152132541130520087333288221698252382574697874317913886293446809834626242984344159471761072259926848546750683893535522830003758940116303485023874951583739557581367544810024435227166968700213640975465312077136447396503577234798443423978619901271685734112637300003533985630208668486454014142867015791658762978221216571186424391912819163094458220753716369643063016956789502409835977023352500175818596002959953497232600762440179984506364315290464321416406740083432021997336425854515944422043043809014719692723898133910654642550569208885938114777048417963288265411914092803420102109844512353929408929116594562569032285101978416143871315852334007827884783282935045217487400540824009612892197967331482201955222829459312511343908985259843225594489796529037736914685887808796084415802585732033234284858895051852804998640355920892793734005272333849109676186276254001945779922572225174531168929749559320057843643509732289032927137098395900086209163209744091934520013598077368542013726062868056976745127835846933900296793098500007995247931771283755477505174476751181538905997124830090593722281718042159215021788657734331085939416799747848314122982841261743646112042803110633342019832186182389137319149216464783271332249634085721136983751152983159126238512921260805584291134834063591402766673936449459860970810247809226341558182564419171594182187108199466737880874535744885690951259495746367035814012148683598910121512681815087990725327711304062989012429884312581468980707511554668931751558258777594662158466561725697387581346895962265815707723890322315131439265567304128065251038131591234405420866157700423485104593218439803638083415178947515429347686996934650439753766533595251844889603391800116352058385157659817578059275624816065621693345272003677448137373130313508637270913262107124430707789537478028092028762667880962937794064818188737167023099172255610772535857201212702918062455237722568950871907385263801434680541578316124838977289552428823144798138041952578421315549910040559175605288348915172216777282621495429716499526526806407874113379697585238371459004191198558895909284762419764023277960659879078749761931551866592040536876658784883703462103855614949003703119591025928780566904294017110590162328633896823643882581730399886336609982950914881506359514730769912506406681046197208269846648874661238968240510042722620014889998486509228953053359342992323980298778210815137448972356604463250391788972213264056665379694115682419920149084648132039243883296606644654896503209227407710052309346266007769939550910374960221130811647757565112877931233247939401793553025771045644374716804762971454427198416202833182080973774444809821420192043805662357655429873446743647850562145433283172644221158212729036921278726697483431996521822934809919729510037241633712500593165614076138898722423192389273569621819837112627708723133811460035070268500844464192987881626228600351818085842174997262569386412573045448721964408722430508771125685989629828844193185401692221642084411949832387172370861517993776547740903513073213510643866197763429622929917684594778214921075443879871349394585357523535960585798542871252241010584806292962553334849697092411130498003056229438580771163810782176477959039040393686897848171942816548171343015187572687037142630716024657263639746292906377140540333435183451485051456831225483483958865910112629199790669238900160246972128925899347167691258654448683264517994952128653135164639581684251977812756138170582257280636004521949727096212737490060981379904315691845025832814184821604594948803529909441630762253205128600596900722990720603763427629534989440717986749940548629634615864060051150862184086661474066931312381092473286622492259693054759930360296234792137763537292217581330970546892782223345637878812843201923930607743504837218625847479833633427256589580878322636283779372475582337721166901963131660329186357107317511276330113403170707275625577897982641528857910194033402355297197840949741752885947212634133856565698836298448020090182858796080179533825394195760041349148175357547148574447257665333358276782489281441893477552370484009333779953890635296122911116265232264424049409715613623533736652721910337277377601137456840300340401731967229095255720368969252059414799222712942607629999027368062849626099334246093308448775807685986462860816333072046449720540206130294321709402387019456861682039738401645904987380421223689381296762436496542628906210348960324162956177851610250676378364698072960025745425199273772889807346816192217222759194202493069385477162611009320016981545457587686823693220978213013026735266207988361414601968906835300198549428038616076167685983884795049916140095478965893471385143658725762933952769908892800901366318116573987274370434151600700564999438852769401866923728098811955403429551464138534916576234458476137976735028283918881338515377843056510002606390885215722459477690171027044107086958460210161829337394701545595734942625160869593949200863586459222672639600767915146744820323083407111866184600497463346140815835542257474665522237343229657096435890763531537623690610712964938587812357836970139028075173190769037257800115255069006309143199045661147204652734741675593783135788547825571624286086106504350834942869003463201455157885963128351425546620226570994398921341836405337067342757313684088230151653135248427141995869137704926354928511949106034168035887633193494900845089780930670425354836537404422982811170628350505289893902614072589093494573855947879970075244487547289189292453216181467661571802295237534880332962211703844668467318779254286653122815235034871541926410286580372135511377035068573341392391425907753601866557968528324191527103636656646413322861906988701462370779841239288586532170590091781738306506437501233114532300735701605889699544277308379345666449828849930257279115350374460260842437860389108255052632284635320123300969435389827058683017868047540240770254821166868727394348336068797302007635329828989864361329848038764965414239872790374736118002202172148257097231777101877247185221787582328133207061114292115655589417008280046518532423759302679621740939345176988943607101302895749848659135104497371196388043368394565841921181177451644035060000855133737162235885895570321766850718450717862778119752669683072362638360938530052981102206036429700462715181783298196452981718555075274217210036412638712911135979153027346857256144421776424344507995078182799308368934768925939289615091249277940305021624921117781033185292923453534427038411175948660052117075036587056220857720992846244942683224792937023808993006427172978140180433031879560557076365242391266825114839765779617141787446645902135378867410213217305403548652766205195024556049890329502494910892876420052205517928980260439123559729912680762945238915017781533369748735094699733196981440956728769696949106907429468826476288150575325046999429147378196875803539043114327500346515631802285191733638881912101676622151128987918634824569722358587525374745892675987393037950112671262449971270866792567632919045151729144544623463990339059172951508406055217810123954857499640028772114373531424701005350016913156517791390768785273381184278320691531648457247509717598736330182053979604949993243269853145095523380524573624690394463858589577195702143810860292550013625894597157944009535642247688630202844856294250685440634234085093010896018886968482116639798278416182949198927951471605438951443491293749742493189808624528540013112786833543233889777734748060656497288368486751953016544160326595771092204130467172464158964197559613992983088469518292283335908980605499590085918579445813098663336325483218499488309210700070646520656071011840103114898611671566505445395266736051331114342282383413822143105211070119913546248826614744327152243268181419789072280371525440985378913532616021307337641425436820017265925291821035243956721957997275977124477507810210903109510377351690312105410372207866290871347369032322507698531150050279376016639479529329099327309825275845368433983220477303785417891868448333023304429231425845373863440358761163564208442522496447134194858536129917919844035736174958532401237803768851184507759902606109662844619170559359318442654037418511972924411213693549372016252281907446162191595053150491841500074130507468747330186095506277805744568992727833767620077657918378973297389210558145382770126943728203293533965310759852170215369103998088681827777346626252433926157749063265060522998262702293396648195636767104163407929199461420940490429989057307359321561859716265066877945860244081341915707027997105832081978809719006741805612023922175348100328789858180905734450648995070037569396760455164999747076543488537911094841650303190319674261628793356785270332923456080267928393761179939675364546072512991883602193359773154346564012505534917441277600797971271037788823066276156303383408151891123061478431763789062565126631787464022631663523827041108670659091148356550930231052006104432130640915307356866936706052889549195625176406677135092726854209025988858950971001175575401601382144855853043542834586108637628097747626657341418008986940016141800177338593069123271189982970534456173277825019098664867242040722661444691826585183777609185831603522754969317473615119504595980167066664412463559949443154295884598160029555342349848066173523883152776995791846394353243599163141600853148890768383580216414422196564903580924209428509363766957366857272957133980085150176895870538269523994039604469615670390818820905508895867258776816824572116567024445968700054211284601614838085655782134691401067051240715311413079222725568202599996253681454631788386996175550876793463474316352280703486572005697416176014458781456617643185825070344515381300164217823793650557328010935562796229599116039958872879924845494611211336092044047112519209377085553207552895841851176177024370856784431641866326967246978933248545175115389787705329902059160712889285335410379824108913589150103543168321341863938396509648223944838802141364454223609086446981870892728688296664213852536735728832334219730362887801038075544359015359265674546229778493542324329610808147897292321168385590394091797601026461653759016974097627596299278783296919884403768328465915795428173238146061251456354763125716271865683728541031357092519793745277602624194805016591274399879039648440849046460818949523514367491602388997955561678771495838375886291294259048397554993302930217906044799921183935145450963637057038604531773064546563109231098478690251755329204619250523077168784251692766225661345577346596568972818176697761481898415388758954929702263996982425390281279814625852381968904696615044967453836821919038049351407641169102950211931842125241487014020026899365982377331240314230784367849346878847623721105406955099232806589356366984248663312913892451042219886343483735494418558005976310635357633052547721425395860774408839036228894171366670422634613858367448613007963443805671273461067823233626975425927518668169834238060506516018355342504943196168976158026749920525695586741949914210439997275034825640297520793835846886452810574915065266841274519844390020120289646819306418382674183302550171387757758058999970764390679079564867220634881135270296617338988237228084212609989719397698121710634980187937574969391302719433329255134387163878021338999836126591455660467246884070860351917179959227817552733330023703216830876248381316442206417102309548992476569154062882015388869105301374338461216261716903181636134758353221374415624782306220144756821805962884048810819255750318238539564579339186235993346217255491082091385224127624409241455873491552352858101771298383855947721514980088572248852065509707156536803104716399688564910510342841295303121718007843913468362417619131718002892535468252124641571798763550199536983699633103011511437762461699796158192444805157984702809419795582395274524923200723312568190326670763502392606405732145578112277578987768129475086718027473789144635130252555775015043585510634978319421467102602726853932342976320273357719997069794499648528835369231581651492311150938232544041333689727663008017537119360505931983136194153040590216590940625610720235409998305240687412827014901641372690772577786735361325483257679852644758686242146509365720342801417281398673697919821747149567126875005364610443386411664206902758058531486675062736997613756001173135150149061607305637790015519300970645789573312519332155942002173071291454934526269184639921749153552371294498430634881968552740367394843255405253366384732969859073532325178464472716758719529759902824460105745881819538417412573090122954610707308479153106922459469754208690711971455641245591220699271032878528315151169704197953889152518930435365234531473358236304021429849827948310402464541684090639914358818608735663343088458917672721295554540101513952935692220097324854693438108390849816147491754338575238549732936717457427887478465330898505039293002785250511915948456262441917029125523188825192087577857137753885458854625730177939885823976234684323332440965002020277652726174451924762661815864215043155682259355349380144233131000823835906780599028371946069989767281434584139601140325263952794944051188402903768565852116227668547600512936865595554094319635552754130553459981968845478868532362945558826483440810966499846343658812505102362137748709842493631497877178973621552056562120682900953296699225947089978630786445996049806790984720291863933068508979036238154915078861213700040627674135829207555764202342829660274341637424010233818593283954647447014670807868881403214955027751605313035456663743945738122447481217909603498584757144514534074419029958488870859459574513635299287179322570361743015719564931812314624859993543044594658684427641824590955885050499725536255712759839196600591490716650000046597049496477986526408343856106319087696573212250618239275636911592044990335507826174494569722658822741385504913406764444296211621588395224543923065305494885466270686071640278864544444176087618198279997693940637703011853059138320800524682531750974626640484374220902172266944295698212536298890408150072631023299061755272927635303272106301126765793446378023769876947225767102007467931340262282135504558517920366552260433903387123910492043783835775624004086390371798929617556493012373550888605351678212372584668808312365918588039394596617445827774416841063663466128647343535858223926970837236051190039514635819883047353656924573230581020634569878251832384924739264458821121007032198714089519196052959867949783258057806285990814061911879096836537751259240555988011983217176509326885812984230158838700714831961448545881930417509828992457097378733567578632421154366194952901663316489378747289369795694509256808762181070545948815886427252118471910010583226587888562760024882498576508225209617792506882581213063061107434664228255346971553175277420041981946681615634897917539094961749460037555254060350832280936019896871335887402692870601542426713540727609192846525545739441387965346957924985811296896013144302196316459908804401175325324026124300191588451479124772318239467442680216656863230262590073647534702373944111311727158841492415780963906632336934658678118267362265645340038902918859318074359062634580701011911937892865270161397600093399912074487367694045380153717173099835615564437407348341328552447362929220365188540102598182489476202979330370813257772698615938032253831356890189347535596360619773289755225020996371182802427477259670560053904740371400735283453852913046542302851130249414951149769648881907196195457511420323449983581166176680862225806047730795282323603812904817329003207033484647022040695468954089067379588908364309828245350179380771799353933688606439219536786653180299946190062257453233828648712478407441943274425512105801960374509395656668376194301125617219008959846633296128847894900480864432842057144822703073763289504084728793189366336661871943627426639088975620359597818688644015880021873925950330601384950454815678165351283007150743501901592294174042715528081725848805987935155389360675860002931366831989242096701176459624438986343019762846780292450702887460729650713999050280143938908225704368239514921579595021951820969134530563949429502408871190927460979433393279683243899796356799901597210377542940077293513273174088603561730383681025580492093478836906414704205516139296259594570378466449789973289759712044853656325796614200454956026793470014974151301056617300900174395196205960984953803490163293772214862793230102599549057330355090367047873435581552002714675590999323540005554366611657481426369364659895141560679588908801253080963344316953962889681624971466271003119129777475011417189531129951181314048383041916466127953108468598357865865209749206984863605522725351777691019891053263143870575591699159404478843782430494604204643270819050326237360773061060342668812601026466285710687780166955154417421243853400630810222538445077995644727114470566248510936133869903810346906060036291156818543350000030826059240665065254904658453326777116235418300707699735620542946807213857166595401830044242908960096676615961238469466430855113037676400912317695923675711042788585340489365308023901811113308805606296773904226015667842594091347450573762159314186169796340890171842125684302802287275863027805089996918025276524751274240481600367043735390375056261159454573224294154862728529112796851968398347282158471500944573071820996676992725026418840462083104844919572072778840160962045074343601690269179319549103340432868019678607615757699837796494681381111560396304282798875910361561962659415986834927376964651727213440508527305898072261717500305298434908178162819164539792251346801437168992650898564251827031626952757162457730159602263739274343621085793284403200159184981936905457373901777813319353527308627217463410584245835371571337741150294532968826104077512234932128051582688309138910040160908202261100664378452689230691559138944958980694760331978128407796210810351144599418165276853968183339518954613997942628864709115993213595246907099543260265103656554804672134690653141006471639162411096131804825967985240133240031968472648573789290324698382560350801732296823948252241043253869040844936005388234432381816418164734360961437404409721021523547575407294271474624530462830015276357358089188179535112144548322629991736679432885785245075807124691071966275789251292334951532474667437630131981701625384237026400096958140835413080996158428661267151819073237759249903364270548473285907806528271166391678950282062413302490953099859386719767042963313536071335923739871463256287342905882767979046317220241581512489568834728089571559352482014900791720120983352941059872235612652962631223866018337676292276114161065582067521320297534042620370677134503875206585721189153761681833142020877184060341462692362606747615352136263444037223896435044156324725637738346876032533164073627804375899396664379689142065438851746294796630337341352597471959415082049973103577134221444862600853933835120630690465265578034084551029599981698121618938557501799474122151072106418935230924817387412705391521743903667647106064921168806013414319426631947846542377074183084469267741527242715383386705243607291881764165146614102335795888863270469281779101680142874187441668118020022811077582698034480426313040172599427993907509859468728610584797189762539792457606510596973887702033899506816987783913333102262491623532344985736218369831877178194422832896183585435851283807671068256710444621955928462303307348235003080522843063906170486628185338563238050640132280127293064028093210734268978836673622573959301011320775286643143641321835917598409432295371984570777979973027307973006140796639398120390486507093484211703746748930774910080640818030542726760859037560082907195709695440672360337760696055154671977141730370616897755725462304287976481347541858695280263343608234238161976615379368776578130005062600930144242312857619418748626390960352432572510360967411365688591733404684321955210878689038339493370728618118198753153322086909196264536949020030291529710477159022271410990805240886405925717190323762303059938267129290310909321019048411908136383173354609098523410485707688389440592839422033908564979714313407613952082650669378667881803514027753083683756992300622942428841523063655373330065378652024399457272603942330145430676387450975278214704893850653401735042919339227082499945442224455252015024397588889326607118289947996319775646523981772171999330421757601190926402857069537340792083891896358686391424917807681196746319355245556515685786919253375193666642985265925688987312320588248315767969754527605724054567932466896270511844128524412530890821789292076339519806798749844895816962161787528975834791156389422973282608374439324758412914831925692983168816381726473184141607018145888987818204495837067670869704508267061484593484986682801030773848025796133484408946204179101727092637729707710574623385497093098843548796243405738100142189891927992239476992056707436528983297644516726136391015245323290801130762662958215779161198656623694141107828210201722211686202846239742394183851661094703383626191204175889294328239439637027330897504153360836374771391935499488144670764311997635271080358160362007959979825315554427765568357568936560704213813111099475647357846235818945896855816900306289001002355048200582870168153686025279784558556088897022582515389660580355158166976210294386519908618013535468177629376263824876836950178989767847033105750022601872193904225696928152593864004462214173796297016844545514876438060149952588449346612838484884044504571002144445091558604587992170246789093387133509243572963614462132381367177233981532186745808392466761806940235845705988327488216465226091257196862316238124554193492603469879360259395927385422408539754710704858035481725660290009634843677232235128008221244587890804467299992585089087706540974299308853787338172997273508813185299406011071696236579514203973163842353864467445363829531384621474619065038682817149018234792865322319270476732249206232886431162243517967988211071755652416959555172140775096614299272712342292789192416856140065672919081310777832702204451866364196119443253332283390284506726611765436414439558152521224767961664775682978833014041610736031623247454632724515392022702219271443621802973717802687681674237939946903326524929555651301717310217447669556598539655697762554890341117151451307390021519466703865702473203036705892608759886947339657233707901462467703640482983019151832972398423954328814736379676756561064456589754618247273357225321979291893928650989455937145993953162474788104662510836053936363846365169865290668821324110317610900440638774496816901208445585783647880649909801794852765559495821179980676787703615463161876728886491625129160390471817898251354297669314718163954456456320297780019610939494212054888067490341428759534994208218835000959583263099499523772357063443374807679708109713062945751510778262658910863715040173890221644339989273304387148000920717041196872267009202984463023329549915547242847930663403235899457597535541182439997532488406485743372065531875625157277870378824368420452735998999460431074162249730797806356743590613240914223442856187939780159778534684963078899235196345530046244562071071978353331877097191438215049363415768674784212933280153116183952619651084060540653181990193934361023102988100705918635498989213406813886990792177123814169293766382951744582020999852939884731452242938561422292609436460555324143846600712320212041405761876566971805595767859576455201923171970890810847574997199382044424776488745027810447353092054994322457142266461056214928839886068517415549875314047926251027827132758934228845011222854952627317566800676899298759300184302572458780347560197261830610389306839921224367887548722539107603556691267228217859121280802379403417362109085937003700900482745774532146027842990309109087163065542997601894663916757399699694580472318360650506398601898679052650992714305587599532591028135330447542097555185433472073080858141666629181016355037928977491421392651237774492613503978976901734254436271573549433907247382860011439804628385856166416850773748854227361182513146707447562642313491020264309053918270651671196994588501283806136025985899714563622554626048057771737680091904008549534239517963888912743354815110234872119380931198536249874648849807445927287581314327715090615024762681497208532023950036561264439501765318920382830201333126321299931865015793091959148807582982649060111991647872852674295008657984159991601743535234191690100813941401810676120713731730110292804507327580371786668751722840519774569077955780982349005311692418782795789725769356494660303701639252050733861422925019229356640859549613981088363071366493242180580886225568159705685297025850583495753220676707013147267458931598496489050472390866577210853272758991378581295887943519407746039911343802848770387929645636381058190233545998184565730174805575410060434249413602657673308363345072907505076954231214937353425639972473878580127326535623332067122704411819954054249862074830031014863683585087454404855051873749464299665650017864644443506309223209878927750037228898421189578189927213076200971537609930166326570108460978950656579277729581222145508680190992204212727097360692776736149457433136764913877116773982308516957600596210533007189797889369646225388566800430269752765608100930166985919730730728440688965730933671993558205732416622158571852062771882323667501166781269547522907788318314120791094778026720837435460929319850487717730572020345276474597414420293779025514777320135653645595291192697231886514659611250569048091343999609220306300680409906124182714883139993154833506180839647356233497556464066727918340057938070629251169503605535381737178777666085299784964187121210766232129766068316788608613651289591054252183951515697872121084252980508898276634254053294589293606118022091269415602978941014601001799760054546045627717631163924678046640905612030868860050951968587459964367839205016288745682384079586160143737639691169664678839418713480682024385966677757097902581872411265824172268822016543776535594890106922188966597967767659866060750501200848589281405414743215507659984637729606870177712963136931388470775184416676181442579918340296229888678355675668538488542825240397218632470286422685037579321092020126409975793948132140938106283319093576058367661126703914531566868555931756365633799315906847858936119965415676528169033472655715088680914816800270777322540454283518151548977842183336949930133073801983572158218428228924208312387671969741503904348408776465030533725208589715804821085051249843643627915347004194765269086049449025194275965443910650038857921761970557321234174673102746905034624831432469644802431887179088520524855885931355067114567954908479170575946640079536675380531047787439635628957810471560747727223638208183336237123282583764145184174689245180468018304495245345090255428340463074196532146275238936134899188036277883581283164805963720219024714520968242476371787480220933909599321788249955981943376408522297014548922284466877387851414124535230365580101262857872781857470463928853579716115204363932224519003016973190628035996218220530971541293771991523946944814474195819109958535430027007772716268910058905797168044960381034093229328071867872067481602380314432815192042173414305010016878392498964288571160150984627077818518618320884013800230151118870670651525868181515833805432775641571602946888514261565691006972359601616151836667763487830667294718104895526994166894842087290812336221708207864101088622177101781233465492487415417507913684568375745766355367349380505381304422769014575569525228204007051698383022131560182412832179570652672896597400757170244615427775351850436875935826314549729944210126236275366914361443583749744927017978951117503568348644531730419216801907619262410343405764538428986756277156048978915952052299496245682937676263525159364492345662548395396837674055460629654375564939532456372851409854479725950068930467271135409556209258442824412562518290246890645927252285214900696675262009661752191651697353661748337258982793920810061096898948362649307326620802420380207344597535089415539463719211925965863286432551060582051089334624347573376816747113220631716438936498046344788826924482845985990494567325499647417139975933751269339393168110564198826974689686887904600243272423607006757614811912667885694404110812191582833191923139241268674977277750531966562100991135609368314420438363218387268405124222880061409704291627534776441267327779326154889688805354737041224761203588990486178814696358178585122896595609933830223027330730548864231318165042140054186062469972293182816131882857201294057298735627366861579313493874715587879159560576628527811287170291422756530333149605133083632119045115407157133690321356998738676634924323469884238722230391708574836571119685043784867626680485317021161737683608954291784301154654128112614878224239135347039259583820270159803994124376461094159374893410820300195370077784740573405471283098441048502529017083985261822441038506237024510829984446561375892255426421634783522538552266730208774813305690640372098088723244109153441650965884300477870546914897696197113078037296480553581312071969463472796055624466707339886650092726378636340917483875785147977046168678042518360601635263612094257788321454521889571963253154555432658375258119069131764316093110452847116758776303427113137746597748257285162471110254067168371559959756558682700291740175605353841079703299722527267481470530610599974000943938972014349068504411231342559454365092434016796421998474770962731361825446963069765205153049234800626560655283730908531661751299242065133151049068893748171559870326038355675551516287490897660668505383386785016201461008275942556910179035367681641269016025460891908898678605061209512630384429977842050433717150663317252896716190086021437065482332385022314880203619382839818194015692409696940593022630172188070641328737024645941961463789200970769411456317980325086814317040934209700751678766979100969340162791328046497484625004663634696550205063841920213303128870134114011287366514722172870378866599067298879493068218384884638352167848161243940154094831101534750805517727526791528617946855555770472647136853433574199291625325956597885537078599468377816643977680706045863763185082715332750707960742325430148072661578225135528295382820298885055967298700186442343394851161269248218547862733372521808259737801238947685275696537728087642125618296979244582474334215918439085366675301542610060240043911829457997540197353374853270076542892523005328359951302537073375517415663920280926079768101726259256304390224725610634044650932605694775614954532772082426423807705124764895679831371917078597186097715027720464467159413404569708962023779507865083004758191083265674966390854251215766651193162006030252372632080082128054100179332847631581042544338570230594599335725995426581578764105882195535585893488247276275321061483544117318679002533027739008328544894018927241847504378582178502018149160809755707009699806346863439878087448729506907238968164235041364969253316748970432621589815473331948767982630003708824866267612741999541328969331723096380859296887885352723740715199566202865444207775426297398565187386598381872154392054565775232916048502378619765501281459057580418285076239544503213902155899712958604592451210934850201226622153226205426590028250537164774247218353308371114020241386149486017769415099085014852747730354854075831962349900308489803688716476893234259073486997910989682180479753709639109412074887709829821390983173854215015245902031747595394147482143966374984085772093525927442777875751102925297469121651129953724788798892039057763105243194477473172199528786803398395525075412973550629674267682700193112600744381648894328656085913366272529721707652224604593249781640148620843990954943951563246201557883924488159892668110282940804436464716825591057131068415898369553161549539881242729948629117641411442159886616069206818529586340995363152903260611632380796233206396150937902761635492365699234730945057825650440397651217165722323428958444029218737685173046374148300343033809063535886102238237206434720015274687499760720169171762552999466950927525203582142820767731039909665425428225480476571958600392218990110775946296559484497353588160328366331688566308898044738165068315721993057071631314719188580272970876748162976382596923481790694418408117051468325592791907126518652278694274767034206104016167713383775526652505198446434927834483386151211984216734908103299886451781873191898858933264615391255837294456754248457731353434748411234342060377076508812334960939076631664872997240380022692132475406410418365679091415774741069319601198427043332509469779084156927861440461188633706856144597014776707430387582298242110420169958440059023216418498484271654657895711323092879138838573218105252768623499508563514703493327328792240764663494159684103275145578303174595625963973156570712263206539429160614717769460576563188214107138374782342127143632645613755182888702677083552652942269806006273317815392963281849674231955726759793786411832463362999009288830767052997891834134361785836650390599823868085753395574524642244092419466897449807337434421605624070009667109938593328474099628227989072244745614599880497839846916959995678655027819204714550364492924491853445559420936772740229110660206464295435935633114155727514996445785550132409414381113922916151179344294575377120215185106935239315611482912099523980302569866837192968865761595426994182168312016407994359488376115381798311918641214187322825691455603509095745667922851280823001233587399290106404140223787679973721337886349021950918141334894318491349106283564550901429199276078525137834876007106620495308691373043401363424795590047228176839415762986042455711053865227921535549908150557399710782752041799178306163107042992123605237551544677860717099888227598966060007299304081822726993175487946188868612134151341896293506090307497473968804970576422923442250465496876627830833366638757941371001309331704930054967892629347688235639975550630954416593771209177135539596535089448690171347416792769883841407626743103732297989706822802849942347736965463885591526125761090713924097826636323635120139421664514041635128169541154804178416850121506484927114769267020690355568131209286824343211620578183061895001803613618410086594918717265478866949510063152628670428602819946645450042744197588529719897457363832375478052993297704204926132365483409514266068471869616491438154510769828074933750904206325383913449677067452838400880088745877160779073343231264653204965867211112325809181966268002844978457619516478987775868891181788836140222567462198046171078387614357203359147391628521979990639448438262919703368579719760726251679552229446364524197941847820420954163920560483629599983494869403586148390430869735466177314365518666803382930424497793979483956752184084703656650710680337317400079762654222016466480983492865793562982581704985423058835336907196357283587782125099886218298815494922044952917466168820974533083593188903056857636981513132364321625383740114339903246559283481405607128950792900237307225592351567465591090017928515217139991821668206963730868007847646945840522973493152314217280252200478160539015501497011750298030894815220053334658786330919931110028347854334705913473596218196933419198657726617432157747466824296760075976042920784004567254197789004572855290019934334046511621275854942133953431699063749839269186917965576420752283784152709224479389024000202254688842219608233733734563767351127514797581608992811503215043000430574965996650889447862963357895389766822513964225978169334788673277330962186461528493680702414761287017064618153773481784975218108247034710753415271341749659201779490191364064249781101398018802359417403959967754966222930110710101290424280895711903637732171432936666852654050501788352277673406351046166273568268943007910386574293720771545023283748770484310408764582031304154081086144249073025927284879728257671198311494594236236509384920924763681964592834372262645852834896326585791806772566739447171428714170650866064539720376302193386432338986820398119411815635363143579074153520789649284034951574275515442165587328410276559677979005296323808182118935601023413508245165816445001268106509084985177657962653270389852033906171067798981012173877103830794835640805912806445464755188920950681776981080327572015339588552323455269206260083904191150347167606635193823758877346503897825091215121747631387974304383329556053651384991372397548994197694242838308714865769885896978369157756391679064744340834537820928797843582775273048434762524717422094368110049263904083637221554176490591586084426750350016337020994988673948201032638233589181271436104130416380083879829186120592219464204271746924677483010539699681188956458169754664250695991758523133788142881390098242331517967696629431403824117795593556967060874479719717570523287564068540998642556456610681584814997678891211302978821190734411133138691226334725953725390500627495296248283699541401861920373142184911233198152889634470044340946485817175439080793930431115528170143634887679081439233342196507127707725068734127354132195969365272491518208669291492583933503504728762485647581293432442724038252721347567253644571174482735678988535005293330307194504501144579373917972727079681140627181934812307795266892818121449348087215248971513977156651237346627946430938077427321430505523131201352048523488782459824810785962288090220755667779493218461244252348331734578669844984396521209555710932665351752092200836409633276576376919214682862052077306060863741579257880414836524988422405599686948497573023064105078901989042903085726286657732847640290069540512295308903537193262780118284072513406897787845664564817704120052589941480644326783711438929991721466581389166141560836168271237461604373438296588869393406442026663991751496194221461040674804539491797259108825398848781591797278779587003335130160326948399979245441518052445988078069682837155524146067594527941622804299451200446507629592237329412516654997168019995134394577706821531117617762377066786640287872340745761207033248354367117215125106865267790279193874843190199333902030333081393036237579245788464953936417567327096356869555114637330827624340968674208390556195506439142260011023768200684016460022025773444406221432868191458919741744312845101487286362806238439658536505836464684295631495910761239152562895148069259833376344838405247591652110157745249126044311560099338653514850547207481981707148820094863041963273111637574367653428346341650595947895200895074497173483736866520358983374822056039568296772292790259972923858560216425531466398367860593141714456818605738567069103168434446405322575522801334689658283022126438216120855284333786103096814112086053707264502724556597611847015314458284202896536654263204580083069305629788648215635594616597451836455321114933523831492487214088722684624100059255126214230070063765556523705234556371943826248569805677923572106953873445671836446988965881468692498177394057369351629736189961775576047247392255467109034974578292200463434997976738892870011337478982443818423687936258133779338822680200141151548318473707142972363964637980986724067870468275729200458922744713773565926372870137182804593449918727346544157455782534939018919721130140575533051979488951967016902916686350121559894483083008555866293970507347456636481239213552726645863519079264483878804299269694624414075207748484029183154610191796944594715072584533093946101648025111042214675589029125048453040124919132149556223044594438601557856600692618358273589978938094091260854870320008896778045341976226085077240134904786700155617166282072094056896078359397649778091252076121869420549834910205388474665314214968828542011438219398780231314036731633536103241751666274879906573073635566530139123776229523854918601544708005560648014782527591228564442399697184211199196844819565497178702752042599545819401249225247862486583972121043321399076618614755325220140054863167366572874273240029946676756281626694820054288742577875116598774294641282019539855583694768155457937509582467547241176688438276719304753795450258714090639798428187785266640387456812037775789881384684180610730362253978035607012428898500053658991253854746111635084889039490913830662947644077645118293313670618233770212773801759634903512258598680896186350851423403804206339365005467459993365068281536218608273821745438969810269480023747840396313293310399596160687919246140331058180612054717027463634297790571372647205893055074068354369977535724135390244868768651656030354676005810023393215439346148244005024010082775326753455478043494957658567929331219822302896368635454585311210879637536058259211376672213830610333046512267965602797996376741259508198747745461283946544625176639002545365967884717553404034849516486445685723325220798942035990024645373263383368528054543530250914654477350994723397291846421614180214640517929943842755504476477969965262625481617675215747601511135460624091254875814952047147999012625689509563736433125632013912165862579515355984541234773899222228284664752916918047598584306618058372031625959880592615312326854102866854134693007265440350447327085071650358100923058414744127172626103129676195391048835369931004906257446751946389672711039609623980466737225905226580502629615836379725006766008444345680458468592197125618470836723243197313532699643147644682470352382939038081507045270806002069783379573083781362246837723828267367475156313835607006576128836799595937763483134660416765766764875788347792670642290764821315914334139868320925045980512210844876892168514704799689896827863520118063528478093359693961662051662197500159539928760122525306863394562463616432917475082322055039145991988147139882370906291485990572325745854309361863567772537457002776342890144139209640688928380797169324760211257165547839218765947728476168507611754210590818303980993894248773531593210275418491654142198756970567976801851251948222843856054986711985833723561718005534272413595947118352157937572253101140005234557600856576212900695563655535285333081032045173966916071329200680842816543533826099718731550458246125043772406909413073837120561557289544419740128043413144671044842203937438478696150931030046620536378516963587617919862950668179665280493048401383543726787865541995139850498290411021517391218652276379488819971606304288601926130752962719883236887021341456639734178539309854070682672463674739227380516196019634124067339064704812612634267166406869914420093789088707910230431690980988799338211291141496436181065246502963472875778680513471997982096221574027093017647252459441862469281888241201314194485305452755666716534603772557101202027340893920374556868925948783383313738418588469371293530080016483612993635534851011879306030312810686026051478551610946298965131579740641008605394809815148203502574021537472192763964234073112679982078144693602415910775111785234389871333898321182035363925747795522349142236791389297547460491695009741449963477882370332331426314359868738667356446592310565792635248517755754752995082681035908936780926380339116240502561948796006186623102090025827973644214252619183088718925506945296392208367280301840227026441623118432760866749645806665081187141150853235185032254424347578121865077379281051226461805535908696535372676862899008322392722551180101135388136086189082389684987302542192348044885493492944799757001845832795295150097079984678963754346487404486727896364433124486791336410280515303682155801487632314984288350810653466701675105351439289532438154749075250457964706310498740889212482226990822708373314041778970363040239551359259805821227234554811445278819220827646723362583909126795312124909757961005165543939173561927286063482197152383363845963141613282245924206103343055457688603681981447896013743721654550853067211598903083608701155665596374089027636000840848564175805748386208608311492961111887138297611547489068595515021299894594778412290670789561109768647841718605057004157078961548968600511146056104803017036416842832776332610154216586615935539296253397701111452512388687942166313359658311153981935200236194732231919456285959262205142415586256639566902640055214252429383582896493637718364769511970452796450378994136647666184024321846608826284106135233382252664270424120527240299128475641141872934528338036001939712376789354357933463081378377284725608546359766818986160169317288864609853314019612372376962232289715597778360266162216209626346750598518798862477550863494432978173740836732998956544369030852931277810663610929002098637721450345099793805906823775830893742573908062069165202602181972950725211683307105005323894358453653711235981416343509155829758457831681883669429439723168169908522150715645988649135701873047551553539965834823276722796781704758600237617859719819206701028937355999200129503829000317033125968888367926697471692295808062450862704848018256987504747841963856084139408340576855919440336715416203713071331401450666556192764468238911605690699531846578795333955307491139089801306992926241010679006802546772692591728411160900495824400121530349896378465089192325382593985748744105632657230463480030310185066248881209398901591007852044982451605292970965262446545457317242639144152127167709029936696221536399690651061096600513821124056755311255697492910748333234723751076549198570292568590892577271936091485355388314310011359454042830290282631075776730573566072389991797511518369739302588720421195916480926132349043928392036232539804241938808522085500409602886743713704332456584094936267412368558377916249034646504836910073245297357267781469529358225191981836947806251668149092756389609942444365386549509400078738383319888521100703001432708869312496170709650250163103106611545629959667188288037749377886165543130496721781750761736411131004083348281347335112431798027892082720143291973934822652701396638462254822102203598857605760654427609192154697586912460279982295559194632424033841973198117481046271112316357829140605233648361643373494565151234063334390397505181486725667023426247879344680110720841792170977383335459110596983648668489167259225976687248798921247285151275751447309037091158650632801226112584568217681129324278973830694330869652979867868336621159449427249188787337420556690470596788846459884252065704712052005549496264619216752497916171982829489155701173339874881363665769856158875632006126568386872386707308557446022553609668433740665612445986888595502557436117752309749986807187540487726163660343960090472128082513952992689933518317728010893665078727531803122810269917311506584250243721626328360087849135894216723713475836204028600753720928824528212022776394058385876871965671881168890109125350311327433178685997200891041424094694695641518903957975033720032949263039677762090003031297823444912686071507960801603144315693249990947768913021506355141965397473466587969261984145124295383989865430625695351643654857151278344082968957602882656745647007939350060201338339764565012338930270027477214583314957705294500336774712679011136672036926948247795516092352750493937781906932594902855287326883468471365041768707845011882404847286694624119734254270901564377999205882145126403649023855779656598479023480810190038635017484508673195272947923854970370352006299974136368843864929417302467879044370265314000037554654023981280589036414910435512626674404884606471092542844723967927663985381127907639234218521420487964558859544265468428646712512795609074602455219483900612889849813129433007579178726087343876933434895945541140891209662212997567369159955916220639386848682027164636157267900264069573980588093540656784953265503611923884088425539065371125189572683913677192452571836597753645497646520710436954079411840689146829711712294388924734786270494458384583126728795277251863270297627376330416226276808503975429593366049581500645896303906958644439266763796602113669721025385991124740958613710393832078360471312578115683510069040414341478956951874879670481031826450830472490019080475968121557545377342584967687490040042124082271394744070902021738095960898576341443336510260542400780685064541358692475216110618334197813405268703049494506487982233872981493192323351856442569493471634535867623128800016821981212505593572265948186976806298894786884370672208311362771753110202652135691539707296344816868030900680775868993156182289962171657907620256806711126289639022336712423145068932299777117233640446819998073301455424670837559936432775602061283008377785974166185473158065576420064592126278620299415650868893033191410245995897656615497093695637645083272719873620354175829370152948676267890878419405809410387419620566115166371542032749278252360352916180067290982535449762190024631339895928470956369419794168455560703671547647049233307939039580418351162971208460921762372896113005311943546453630393817581725227264432714844672293480247686945770274030563884353869507631160171794155787482915998444631062089396317964369891072079469550149965122665512163322129650840684277936705105536505949727998794963274136441637529374821752974801748109816944991632033918051135520309532099885040865993465734532947096506668692065646127073043992242923401022093851463272192885105967933217873697956880929610595493343083164170486283406371100528176274615297656223011969384655840040239288561822752125976065883155281623804032993852287017809743799258385039313070251742094239853205138979253051705920922258991489148103927436841556190635585353560961454698111406598283531349254523756922943286841353181097136371949089522935296643020421055023426228667199035398994141532523327182372816778043514358260316996317683001404984241344132328266631677451759691634970376020032905621137555642953990357602396718349536779844614518957822523880501206925614687360110549418078463377656078718954918894876326028858211464103489097577928517346195612132234482726297503785002932574528364608434754718946036137842321021649762786464388957057793351607257764439879704137100335882388401091159271098160599845595970645482713703237977997350028710720827037089253258251494548006572076073459154973220852067840467853139590464550549493798947676719594267638813069791614410971482037235708397843332422595415157179422689487317079385868019149872051476982223679762906065045582066438901717584773543284593738591267542399854932134261678032747252694708410310845729818275026684569257969802753918517745572240148926668668079591627267807587718171624650928662737534809235797225965926885052719695779790901075019743329716289529844689670723847690891461827363029885065268027945240902611892855283155099557657814309553874213933392308384928400477195303050622183159124656764246277470375372118046028572880764459632303448577967392420284569211977418190106153095505317406968145042266780533554488076540278624870279096080663951207595223300379770638828087773821609434959189733874734282343088824546887905539508546402469056900631727707970523910986164939667463342491526004986901348313797263781469051630839434825253794793716711803667617544353376722216303573943621998050639190052957874194911933160112207845302910997000151566255028633922871548730840193931555799054249999668759507439488999346901814899427782158744121143574595618117777727741148124526525125093200246614998732364001753773772203650175227779125627011076777282870061093100506253852498239096141035410435591396885158757679616299885055851639583007902739375560069307211016261441502754580024160227101408275907459195395687149420637448175493846163081416253641680604536805352574210731061612953308921310441832802002484994745607254406351076275418425037574510731444929878593461690236484693198055360918965593279984438609205882134788738125603396883040445074041216349862816625647364463598778729310477419354210908544035865389415659691351904246597203928088750375397403451622784418287564193287877009547229243133347742495802271333179671780645408715389138209518704993722153152776975160024809532833860291952340909820947588921762257777124024404542988679819879180748764115091852983402356529261352621816089909398144328678241048539067129666885427790510813351796433285649065869776380671150874670679330613838468489395729288805280518055831751655089732431967319114666503950752400109003840294798414063304943439180061211103364171706993575096536625943419003736760736754366801220110266128812334929658489670484523686957819399799767511615839692765863764676085910100885285186014387196954940770021643134633947722695522234883423973738522920070952251790645840882887373816444555924763165063384487087805508132741006794050920324538225801382218919390736588148046814982696205279268222536350407872312046753007643141232163003118973912538959571625653832808734974534423803590003172278790777002239509381682949775038307025691241244453073016795692629846690867767234661350356878153661571071387903519508726918965861313142328890497531972869619119118689817213178611547411273288016146775975882563861919733176882334744239467222737704795610326830303546733669400205519213595757742996877081009218736483098768557669941099083649756020269127789103691521603008896859314918168298039057855132106369831037306188083543073365248549705295315049600693937877373245103137479640315360690950332881825026252730270935416501885204965490060525193836062512068254722797162949431563564103754995128067793770479873057520414752479846042064053651821945974561437019943423345995019833323822683935578103928556151711786175303617339183774201536495045237785659438249381649717322052836569119083841105336783846481485643172877741618858207713475842189986652409616241339107678135879899662906381435895579495222962363811381823111445620360495679402820669872556600134811933756187314634705266337450191248026792553527443956349104755835505724532802428841660443642051193090887831592714305942181390274807856673798822323941016186483871783729494269226757132300775385659383918363752935615102994627745487354259634819392080399775347161675839794869088261491989728279597009546720266720093694579742300707375683035178988031912435481020588139304378801995708290540233453056813384985267368745086960226888231753495929500688779269674504854364747203212120808227912236223030438906015021926505241439887781645285304979010140815620965682632861817895809808408108767252916750902185287774549553637207177580745230644447980429697242889029877302047245657870601008440586472859582893777192481633014715722781001849694485966663238750188995485530477801810158010867729139042030844358011634283570954814443867875117664770013381077256663611434593459706577493532933641489354828857650044665982029201841845437344907848531229620660979669690830519355545973721639798923775373959895917018788057349804006175690777639849734955371521486586662347544043238881862494465612106567556223707982287388823354462705009061879712659513730806455589617637169001876474689389099958343663151430026894828978241810752372110871417747203667327628441479502525429870646271509942129733231914927681234144519911311333334983963749910628903038616603760433466786060480332785441930750266272225955165030611206706497264184496811973012292936655200229607843350011997321921093600982059502277500478891976282710090371698747773054881047975425559241286803646277617637070787321026052620619213134396099907477782509220889299621819284324644125039493690871874218320015445435077365106929751969846046968403022246599352809117053580624428273763881172249258227696992327677291998106421691554411589703077582568988516488973866520477669965400535013522729428025211530061009851231713758223324945572633224296163534517114972845953383413049116817987393113270761877020455107686557319285602175354785938107544121044018731625689666762602165164482127995225414798914250945590270783110734868004143977711367777300261759518264323542826796427399140198486675221655523561808399692512490607462790484226730697312031989489761141302411097421808788986298724880331270740241882535014255111397876544177230712877611313052156661178721707548172338973574773477216857948574284464414139977402463226891392821796621202137109734353971759715050564214912670691441427825148483984258126027742653059762407343827614723114250748392323308237647543068701205439891224116125078670061274741158212351849463838556733116386433866572363546486364081663561263781617609238952872623868079932097367336574080809965142685222486971707993066711844498058876931556056391442025228395794755176041700651293631310093489488324438280882957045961981290217598336834927103115511087628449724356528672387753661299696975173410216924290915030118961149063012988928865828360731227181900901148325819794500386568010514610447092802922789277835557120003359810613092537011985955515179747755201045686297778122653867211353127243082099137003468389154733391453649079409352567757949649307105476239199016746372880729983857333781150185923974822360453133147210571188750225103623740397385180362684898040182718844457837012783383049047188208658645636186299075473866141129759841747312116243856008788227724497309417279176911714214714511825305230702622580612450729894858316752959558096320363830606453304801678309657949568985546769447761762554558015434270117997576017480063780559675244026289409155264052740962636305371795035830881593388016907956992561773965141632640845550810709542685629141223070223830357424061837141168867232023859043611507515028046102788290546094046348547090055269083219162230148265142453712082447476676814839087860682887525298554897736931743847132516756639717272369266798901600849104837908701800053955130817264510752148372361790862121046879363373664597388176205506619560693402149587465394953298840041212708991617278928106331828559565229786443951496124403770824039783932288934636858174064166122759953212333551595578807959040823425740062959296935415419492012983738355176587183345538692663290223808161212932465900408298669693190615162045292508753984983319630034194799017343632947340046987359169721694103346770656441053141979069068492269781428736887584851437807991488172705954176568987837266226309913758801692042863567721118283419243144342189280955873595851202002037132519199957166388228916460175908952648843682560709526319994909049387315632890989896652829219002851858096468495422975431840015047968220750811201067395016577347461992578870068380695793756863772938414468663178879546425480970488679185238999047535588457048857239069744470225328848656590582291255575405110258540145233316154838659390605977845369504688147337837504977657095896557971265541676139437024852906717932091699902843040003063056127855954967867849743766777442597344366576932080071733820822785295598700005172332686416715515283302539249592133800815339598098680884892333281067769137991935096916078520911306566146102907457014229381393516128491911904962294485233353280458125945740908915392937242135205812271325484453000616142247208479233509724014353238855196013655337217740369671189059495428591612679594121906062704338694756259305162740053300075800823618356047228250848565042633610635239417888145080102203967761541151863842973838857183432286892665643706511554260828368999000550426782227268497937225963039397551892016758778280441225459187129682455590208904215314338536994604855922466444445043745164476310201114832864679357803832726501184793476140242714366300751277012155706613660355191385394786961851374315138553239673772716595299021822385962583347675529128604605267779516847980846424562471813084433079232318546638657453771472863671340212903851101369425747522147054192638172957447450523087417144211396094001109198718705299599515795700888863023212573354953161924670164502839947753044838572735467220471026090173891043060609202626655708057819650556158341187863159627387845912066452726460725069650863201976959131899550314809407869378966539629061443766739275792771513849252162932880997128265427488368499302690204748619974538325803500505833322070184704901072319543355352777907374361845701505479037362141828585363511794397158595628185214831915544992751459819307113134522323786779182565752674068463589139370756898663074621861435605577343773390433083153851056524852567621117521436495961993182333822344695494515566268162027311448621376677086370462594605265802331961944645145020490486011535026065871746921495749463357488634442388254517196217344878764742912007187130173712526466581167720614128182818286132573861516978551414339111836335504115421506469962348500354549609318386663639495734733896351229578792754031835011933874114786433762940603517400068551922028880805542216348731981178564552887422191441018938825938252935747496101993933416505938136408382773610438243696972131442450724770488227624260161410485605973578386896514996632281271371671433242634846887126951459008045799694997394763379531113921294418489251819303415356159707495725094438684825159656486771195392782331119131765685907602313696001048364202234550202150087658964833141763267204401375517958026923706332645163261919089498412707046651984062835919880485835165698355372777302140887334944440430696846255936439442985544662290417534620819858438072287883388358996291312935825956236064276144527115103834197224356389088339224329388502300912952826325110489689255428949357360882302570584857231820887910265869987248038146725219965295190714769122748601256420588864181376812106129835715639960068532632810652465268706121952056186646336008541456515910962544566500563155818537260204639067441160967607786614046761337546405515299970920622631024043415291374672230665541909995162630984633197376851003983787183409233467806184130421362290332745485655083377190367628292453905204233074739085729016575729800877550515186424378526484352795326905041502475402690507128861055480162127337345174028952962396182848515247586676784162156793938895053742645570213082389070988915589228760603278437128511006179006598682348335841546389246133625601675036039400157226017714788172129949321763526716834628462745855419020586247117969535686475047643878501942395118646283261430042119707976039642259211458603532109363936481831306016740081776644326102412624893854689646473824310212244282198942000051836927557752355680758053485966435617500868507990328977864798669529055309725712611391377655654427579093595560585819452610394896575963298919004452579853771935005143747646535353670157037549330320958277222016461092710286035267914372182333681249022342353591856859338369541718669652609943477257772137827468569582569578126913672073353909502617167595332657779920895336614169546409506296748947880817931636295237180644305866804179120842005169067654042665454598305429962120877431853098933137669900785532874630821328720966742071828691528570622470602826232371426534798182993359620644742432266224855716632882504366083184966901161390480404466762407111048496960778633672031159754050405744736738200118398972338295957189081610368232986355237707288857134807655514288518827221019543459789705205648194574719393333494151916246922870775299268446321993649574090076123863429406934527585250700458402202669771812281856371286722807810905030935544017443632421407159603731265518080439692112462302755432687147939716915157271222265303074797533991366618489106678992582449073486116518991705755877913258327722607851485603095561205753728552308913779530686207933082270805525674501041453415879213201130212365700990064499955242029893955291214994138155782921102611221837982882835385289307444616990838657536947932288304334767208046737847401021628172211481015080236676422950129668568303475870799517763908830386079901582055928754222395970590857841604429488234540664528684644377774862814730751759727084446303551343829136625802342611161150962054840250713643727823209594883096344761991807641400461892406653829191542299941416035356652695061759259011885505996350878355895115988714695070628814820163517777029742945456216689294457907907156143541209729380491857233580413319161140745228374592672192162844387186573607013142312791133589874677536017195412589130658033700056942484145330829101348247562892114208849234175650797450479026519718708936148312726597843230800965325270350523725328062379523294693094159487707396054721820255329115932953234193721083181944216601787769017660640647861349163713137346994283546165888100572202329684965724786045505849869789037403829312243164635213559797979490399196196555012302955597607681953595379624279370888419132946175853498517126072469590017922183475276671575274020400808579326019235601480878649926800467429235000557620001200667891113918245479506807340399486127968459778486393521804021379338750234314735322261967882151003079970412953758736139665954395342881177393592117993908264452452022800401840994482341233033977554396200751689132287362372973967177446452826564440017464300765984004282914961527774682227161891462775358892539145599643313582644378466293738146691783216088088101787853434831855248093937967668748475320374784336690564865690617616330454020778333435467484806953571432650598553785512264343910132771103236754532734008583237662243800844635831271535793299500123179069212726145266333460734551688043176116695508036309066884833651305120249191471857946242145054706512954242717765236598981159812641433768969558201096848439298537427536662605119743520787511250050352019083153012071244939809904431840208282617788943103865180377404678498074349987305595736782957803785673194943182571354069089646225228749293418383192935564949154066810051150604909225392060292620633669333199837405684379795550594825164206942132979620664353360940643572692925073559876458379890399308408965447843018014994734522927182679771530176771425989242487931455652026515809406665281553842952553740085967097196435453175007636691944016832132967371975981616082488229216626632848262002036643002602207361832359030116113663382940973072136066829611203786383406835864057535847665486505278941069952526115053296222902929736075796971931729649839487449944790260731628641218455633733466080413956389290273457181235245233334812172570205015854769388159796470286502129059850357547836177719792655105240668256450665900836124275533230495818096939719037190836623104657436741158660154461987896906077244883173318655528139735034794503296240642435278975467267290971334906634366742787093119579135384673431324671490909447863728904531948575190163451896111461356925957544390626861411868122769138917207374716218043623734730900619344091598602143618198913893904024801154637332269223287303948189680614387965156645284820163376537129020477880724621771125926803658801033728011248712091733880200775372636180792518930946443218755085038384275629811333579209586615305876689160152776614093496206312014951417075989907502066165509304664636764455512170373966564697837406855484739059854168679668380379329208208361165640490830393599467943158144916007043860106673106790979331506427372145778822333807752275277991468911860627663580328272634843485782376297058288549495747128543790693515929687038449243495876078855780238598481036098979314191362707938776058475813208428384955586316181455982193496873526884898316537221636511750117047203083250543969481854539128496346568792628384932835405378181950515683172696813413143509319809031518766518652585975250066858097230031466399549859848330357390757191218892673004023118465699069234274314513277225651933108688862629026491429886923645516717168297321295879211804873938286532108107069438743217587727104422197431548216013723867471185297775856710003475959650973825119860442362561720505682615987295602662397604511204572406266510033380602617672019575167823508160160655646271129854829216199685119115363914444287986505859243627398708478546418252776918006455068594955635796251493322099418281998090467651187209163803483873919528679780817010924990831674852234905023499135644563376688998366109647998423261375095814161090768204623428771767474122747016291887512693290362201097358370967822474501991510667369161614804677089364663163746663908107124310877048756960799617225511838928782756112460351121018622664772810981732917426258316606036853965971726129912037742616530158846325821734891283342430213153801898420385154289311367122833893476204831981726223445552076556486923620647542114414532271852955303819120314868295148484005391069260670384397531320099949013163002548127241396115647494476088940763431192393283197226944591067273017236820706413352941257764058242753552847645689750625797836315905256342341037173405537747330821647474437672881364974711910061585326938413550481642331186832673521564005193041324771702794419987007816495073953113812212948979293855824069254181659188850085140660520005983328546384915869576001475075278029223169776868109261234308118953327238166527843131524306735387259239486459164927452758309442042746545061038497515772268212477583481296793992910394730787915122757347671817980874879066386955476044176035311954924081395580717524338362398088628219394031388311826447711012702022022899618580860838277260569002009468928532595324403378278914124533638545700184267248500450834440561064627229426695895918616143715441888377985773885415252982747692050074154861513261218083000958186610704215597356777243552948102247761283841709410590670629169218348558377798736647644165398794529940384431774233303165906571539261000780774054636031961440250263547532193688660528497494830406921879879411998265522467221648500202154220775201589726850765201623783191907823145263608355863144490482291942750315691715139596463363040252290141135731428889035718661404893651646702842988283795246898692030397517868717528354150099332464097756511778827204972228405218356754265275053506140336910761249225648297141034372916030585171496211589073941786049559554372669348663828618110830456938883139520995910694687385423807543213526819785768323309938597925319730238043161613395620692567104429167016511143398125185320450732113785929193524656129854047993242793725161982479528910825884420379401271525863927244315788003954482690803405533671058293602811826534886553992776138978889230445352008772685392172724992574388624957766918854162143451072750328706677501244972716747453084251500287222189122411893642843815176409512589500698489180439968302587648501683404895071463698103665686685801933854582466620691353403491861638861642050137569513108982221921482748382900246031803314655656233468590108385523064482581920368546675607869503882779169460805269426294566125663058167385497782100711063703030613602577472227121601532990280353766089172107789831849576785610079913120371078988106457577496230797306033463260511322199705834630222590780816409188018452373054829749844736678008714556362837850777426033410115726813192993577113146724342518539778005158721853532346872231968837039173820735059107243387350990445532036479999527272584977358934025130665719502584951416797277547188039962849874802918365206759782086310764236263524085083713904210373913594743691049241282907142562476152476605415086693423352595598073865842758003318259958991637942840596525185081609243492413793249261923695740528047339155995933340065240012436333708831050644827940099639007936898216968610164450537970681524316194976389513317916934205526715968631354790208106625595109237730283082608555270374816612193424733720603842331277080162415672797238822439692693185780609636457242283854926140855615362591937219109365693342794398872073124700081108707151912461103869762837717144875428772716542736685214429589649550419544672046890927727303164851890379005210259857276310247749750260296822594871965391232663381486316649379799205877767742556786946192410077626743918893526102390542289623760413983174018262922501994541294273000390800772005814021547249276709558434215308526911051701636983341829797561173104186185241872741503406221015192288166426752473139168339108355354182338019139421209007909875068883000334904917619951543849048219277605673072429175588691851797715490848078032780282338310000585435659541639819732088477531568354501612588731177608151481448433606582226767815520605326165441009646734155859546963109410777247932067779714955667190529984894374566095472249879360104592284575006825280057528859418337779313460866870344313761437567361875231658203667130527683296905488437454096144268807475169489347915021585132785669685255106221842162795511822888575345328372873635272324464283110664202044603022927959792876866004011691421851781022666938806562444455939483799410870100939543439080338205589945327670646355923766073873169711348736799690356965723136535852679741656109952319306574692531676318704351544400072162269952360280732746398515181455826167055722907455709702491323826620983111700738428283501895997114867794329502834899561289810843479012372423114983360859898088064980279578230629565823839910703498230503705492812843167698373532119639358694568986995854302889378888616655767348429993920618388240401791251104026018563589879456862222335260836812601648180350635640746556574242914902954355117521555984937448087201017135666659178879957372759282205317390688123914717178510153111507482287987963895103617813745573702563119827711536038252476089538212475429544781427420430600364986403131814986501602422288757113017257650395227589262803299054529089406478526379920328147098571173847605400002646669519683856173099770571292112953730558687705728794627747487202609711148407525278888752063418670684425697086218454741663830789968303852617477514720080698516879887605426295426930528751232588645592400363963326457595460979042523153601971427411079639153051591653591578754140959532852371371005083108478015061769586667392459020592293685927364195526510530007526918876293080343644698165223294548117807372136348446575635238795995327990966041880894495481774985123968106248792567725705478054142226022496762857657759541144837634233006325491068946826708967973582843004703159271894963835182750732443091798091821173677145561102407634925383020518790419669434976499058813080970780877245323799592709916979458335972656685900972367435006499202387156491747171103553612398387247689006518319512242061788568699543178442619786297585743792677471738894242124557035709038914091901211435603826995123340736402301116786709909603432826214122752321499630459521154526044162267039847355597565224298872452748551343738081753606943531126139300191444760775396452503691978517562607276702709388536345652171423924034594921492172068623690872111044332606694562008535213749012235335418562856032562003582431037784913758193428546540372524329205982472888255560667299498049111187981804941168629135778284315903695442840110755238489702267584642275018769753000154703679836016077423723778462506725333076034528295301084615445466917564371764215806013199074698736801527240001130374597623778426382130924248247402930806012211460362078667934051519773261201297706892275397681025394498902458567312641538250916252708012313680582409800199099985546708111609946382723649688950164701446188424788360262949005987327694823750992574004071370178674718727902591505245371318923492483271059006895484254088725827508326323653452838509594616143049455697000345436287665270259373820638344320812863122467176219161798507671061327011411441481583315409667040189073979726387036354855928172153423852412794154271665249309405072176475179906567575337139095510493993754013619163309432493142349167432288838383746075350908717934886241344709827966763130084134617538042557367954244393777340667254465134828237636493342233008859628068338871317058336340745122511188399536007266461220840588557177888998491860388466369574445553023484840454643980533916144143236412178711352085396522037783604233124945266721577436621824702490845574402854488934389219474780044883131874240160769258769686062465691121294291191451720764735752877123039305248179058594145257497775434303296841129615493537246126084758398047327661010066336006420091784874997302281498274754210062408427407175079288599588845424599345737214736246765914177982169141717065930730518983135163404499151646024118616239455929959648760939540303869689166743770544234366826160822659317221706705948227349991930182611633190616164423814615940678463601473169824113497092154570409844850910315940710852096513861817006924172930814926539391013577381019283249696485720400865760192050630390745247617140022474546675269896039117942086972104600886676246956656989343749060050036013675598149105285456611200001787311259160677901914191469470756194223882429922811356834696656367493168705786504253308058390453524896490073919388411672605714971251441323520438442679332143737421439423954346542602891603133680232453866346871005477771543315859220725825455206369454731915182958455386683386781757650198206509837007582925162693354812887089712673575183657850086597300139902855202584336782329117018159028841996412770010578322336274066948896235376487903634791509198795555792696663093611104087504767843635395292256752890670966297037569415728459249211842077294765257058424981712249412223672082289846083312519952019014322827719766719872700918989710305062528671724350122830613764425789807121174769908980270904110847063972271543798161827703359439083789310358380179969310731346624339984088882998405439489284612820805686609633679414912421157375547424785482466935874188957839001397626965010597048322731069748557107052235974707709765202219028990526597014578853423200022569655393239232192978655328970308038215814569526504773655552825618592153560034130827760855821505735830062391794552503199795622759075892195641800588414973743047774197870187658322346416915641037134256413013102614898091457289953795103672143229930185791786485413004199863513658555956243659792556640014968503974474124622828997267385506342905018932371130120976612618420414351572097221001894474622531909974633776244119477319120196238200379682595951840147749265276884702977202092287646059433241329820044303182948288475024420056452667656550294418411789316208816863231365684705035440095935982590790574536146147104044738393980530413415918291448740701154520399737501183762410187444140572444048413377403524533343519988542187834104190444668376754494245227615129472737990788260380519989891004441323051552880171120166807766666939054503515534885037470982964518715461192961319621746675887730590699158671075421710335833337781701177594616250991280709832193958711228971362582046599650492195269240231788233706051999098912474863787845784709325745373098452425948833878353077195825052099124480236683407024600864891315611630111652354440622405319886887767553047757400280521342533959497648665221358078683471734602971106194787138498530381837171444422952251289956285244104191464230566069957551061997711047213300502178470061027570436716743503561825198093354833803796782863419208756669559663149721737317903703799029354214428447526504858860998019937309626523168222649216330642195891774326949448158678476270577159921922051743747041940529807915649614429835599475168206309581898721352627105641719010156915350176689192296528585040684063808392177149883163042246686190988423918327184266055496162330392976313134778969904799843665357130220079306108367265545911958429815328208658463515370675832605736685636899667693858856955539965191912479396599351819854475325249867708318987660312024264368786254711224571884482761215352233492365496922429700953015631102250362770607245291000679293041452158020546735655319196092976758934774535547297301793021379393241053579438435861293726345319001271986204089458132174065528003741550774403351603658710894825691491182781113559757460078785088594719653800483453470030146512927159324313508868449877058227455388319840524267009827715191686201287933511539423781248863689749025044963289560825534395334951482625869633820325288322475430433023048056984739354795604089870168115319017594988558772994799039227470393549345870136349486778435287989660786385649967563272636371308122895827760289853977217430385966872167824485948152224856620372101890447183413253689097386602192873329620359519320223432001036425617173057529725922881801139196903611721643218295853613891363063009260787757829393584105238624377709569486135483894572876380439762659615992088943802782840515153049602955756398469618237476477363690834669044176299092632208110900201130687839782405365519490690064521542341934025674977972909788589228879672683125599827838417150783909737310220229828192546989766171968944637463663624875043108208127964024400770765871076071160581666486106261355127153305915519739425166332101577725601860052089546193572676153978748184424187630205428840909623699166984368928602500845501655869769808315846838795989583053009769729905869538363663943814057927123844902819239471061358951702175167044131812718809145504415121800777852692797910440180116558049860886113334224227221613566616823578522102607169593165984755898407244983389435190847466195012319538204009130865706497214084235190275743313185664282125882585728825125973101336445399328801917631769025003512847781974197799787866298633540157114647305809496169117514619190539309884682166221780347507177242231767255750721298843256579783330630049317050380530885707272388489381640251042692306394039545795820994073527180221048933140684044989636032878179007846551510106214389106645840956568305746236171547864926418644511480715100649545726890420846764775430122407219914404163843053408224181707515730944642349254970278676427348832508265667263923100025618700485689448935709236812064691913118166285348844518031792785453933013100069655016488032920419693411717057904274247361114992380029038913355169440091240818702285550768324479085819290097112895894594056176812262655004108780368629546498567847885936700622686010410321745586506156035302403304724088088771639396443813254306310176432042793749610436950813559525637608471957348671176612563858680025075255911237843293341170983329001353477324971235763580198890062571285103741178729976232539448029073201365059874309961072805349273625097393961983224792291010314884344764643238885124281292068513027781946172686292440264882005836815034129509892699155411371911848303497782520869418792138953997244084138096971766877425089117355215862374877688173006389189084273554634298744140323517559121024102312806970420425741740481817304780095244392060549445938352461217843078730303361908598967675190123017743566489565207045660659360434406619526434694296528425902805335114926130897986495770527751464842453212232212006699861070016778757954871079283095443843216197759384917768965776565858970726696354511114302731893377395969663126313865257130096795664602934546102411410442666434279492661013291451797930167109846194290672913311313515819059652399785066042565332224967364405629197850989242110482353680224282718852110303764213150114162475129707883363499095376204297636638603940132724399076457063287118467109486481759773022624693339288929808276268228623836706039479003365298279907380504518707851751172848090004937320427377129956516553468244053659977400537426686030383551745038752800504278281901168934069973806084433102303650789717607615285473490956446029669061702447954274083188104065306264308065011139457624771603484354743063957271384509049014864193635254672130903035726859638051363810250184583406608906154260285902071961942871820304239966465591442738750839980308732932660802050382471091042737484360737345357201249329092680221503052658153767674316514212814254063855882597933190551334470447654209885088700294263276184236873721726966258087013330041538710587482755593231490367009596945612066656150998675738892262103392827162478343172458024887905234615957523814610132492541331449643705091184754073635789879218742843593949002856979819669411439029266811609979452108354234098315703028595645817462893018607224247699605896677054532096171061380837977253966096786483861912766487283279477025707292905272757600131871145143841727511595187572626424583054427983942732585523439167942618035831495786730371184968043374561053564749677137779695249342365468923582200892918953314309961514241523917778201899687005854235361405701295746194751955090155106792013087238471271511146999820973435417794941622025429574975992627382722217277605727858086660143771079958918305902851621671429124807212692813804029682931685426888906299551920994214373920542889723351958888040874062287370835010844175109936617141672127120515008120774469406717629413511173893468744097162952571117236447350961214308535650164849193629761617250205921642529071064084102964534757100332861431022322107332373904357875094051407635812690967055627086379983600193511726752489834191804330230837284298086648897063690398393611909700140528481172603106543132626599166734245432876594671683607615381849175128335258274269519015031919208029060922816458037481620506875250285927217032707925965438969711148842189191364953853163726060098719793008965497080796570881900287068303876818922932816895924970441697153070943538752239355726038099292896707630593896666487153900797965103518524142184493311516307799940711427152875602108863565618232980839938063393045821270128923741630885628376949161132605909126058090031029292964563808160355237256171689325435916263915544800380549308789460169308049214794363637636633393732218946816879326493764767002772191310052323919325545701952082411469528971793318556187734950905897915177676688987597985299143525637811991546256771918225408597997154878234503337823496533568194309467633930593282380302028757252772125436585971269931901285194499246559878938649509377946751814107061084907152029720801808418621991097058111979205206382754971707715978157299922373553573533907405960332621800834137010597948575272141320119992840349536449223653832785745628683915370479559891557816999761178986975942421073569284202399372981476375164123709884676385797944605494445336850738785424405437663251756407048697518732728751639504141160397085454880776100876605636872158971032568465398645502165020633565849356791745915032849521898041369375953208812900225851723479906732240621143149562640954632774931358857248450821593736183328234435798971817231777619617500055383664190382896388578453453503430748494530112062665817804796073446347610451321886776634871512450180843699419877591241141932633650757177417239896330450274721649142459649815051137093272119460908074244668618176474716672080762034657274352060895560590943940844100011223796353702791942716380700303519856019998656146465226420905999735880777455553888968429210130023258982216012934720256254516539068158267500544777352990035319813812274429872290416270526009916603691684077214225126166365514558711163008503567060541268681915070307787284648928505136014055260334993535000645751859391024048276147532828211647991760732532118244305166381375502632727508549384800763627949018560178165850409532428274993976992182314009496407715527417822728619652680749680822453340965676595034293119749087496077683782656732157208738132396236219480678618830788095984640615748205768147893001465367658078049644255548302975874200688867414503575965650249274878670246292044636684531447037108330718672469963134053130709537350559248632260085276239775937869388095060643770039303480940634246803382046067567285529642955353980184957564068151234760713475853798393421385661585819024247363251829333756084223994209844739679094806478437664636537454568381738111517030065316278508048029641729328737649040063755015475013051146360786042485526874554089369803572071271757222783426254530615740830751594993117952489123975605600988889681823838862104849304232941824003953154047124886942866044385957014685095148077167261840284218851850303106946483373356539005483143931994051617969694717288813745313645530392279391969426684513338283931543365944192360237511825327305971239084369928380100290713141365838648021354466920659721844901161555022275814273214633878177315462331106122226303717862160467839861172567904123158843059336972332835870374752727553213630860240895994525527412904663647293846861766850229295352692427333403389819108915821788642389808769727188688154205015602122182304934632258921698311050009615843784449098849975813771155952084435337751861180506556137420287253933053884112306052650105104172439278480173162787055795884695273512800700078751022760136716961723382609112365806968525192277757369170030533238394177470689345920989074227512346316376246275955089132267177672279362699436870040439017149435970129372991492594435579118110521673292154915267020366226821957501288699018629471127913935266132565268774450699947049400457827018017643545310373328795552711843914130712050020776917812702102582734902506606492053391577558896214280455320884727981376879508700298592748657904614558937980338209008498932666351905035321575854897126286890715039407016099609339580242726532205170754721253841183375415810623576268375254428478515487750556476722062675217987106620069808174493775378664169928646912649192217965010618314521360447604273630719096161576694104149115013598239039599911609701662181638096035495117701455973976105406462912401843913160496537605931832696598651285415865593711583281163802862365783331230701265380760789761493444128879757390251346634966089534041429927908754667322213039351088340140005436385825626004643481697001286226582440393207833150208647136974881073938713507237427226027041852939925615048855836353405591144287721598080328429240078014508819465339329545398056368344817697627349190451102800151778368553401549602233074571865959123689353199031906252147764604547664751694948770223558193800907188879740190766710940272066748620947574592369736547863196777727359540599433644326962302808880593514913303587128493802984852000774583162236440079236628583490171043969587755461292262467913280859823341248626175973693934700086534590587800841456154047554601109810484822206973211373245104807182901534119242588925040535006588168794046367131656942489793512911352758557998179323237297604124256970014042028772772931917320353946139492829968860958714436702685791055721217949382257530089801506384426947009311217142995421843656466462080677145328378919221215890553355778073595155122121863214694464644185464067841012928498972792171104171047702744807938334070437864075324938399777374775119204231291543240407874580451038013485743308941307208733519644001060996242333598627279989041741547978968833949122060702758912473555579164774599865619615887966397416309156676867808940002374016321710985983693593001434775392573203370401208828631726997641067194455766762218225516940322984204037916153486974716653025858994949875262628111173945607355637343099730528241938214080920238718618150289096146571550882799970124935621196842209241122948769098294003369031367369925711611418906789730300174615769194186492639540895834269072291749719087523627735458005598320205125943192928759374546577361884492316219482284538773256812552471632280364844334385004545267409711946115707758548599582110272751584206735739069634608676446844937595632247302810145302603431695623053009236774823118642096587475183609399163404829156130907024597873940295563959928105986352296201453762691003521637502876635963925862469627103181991423893106335056264918795265694221444798347882545019606617933085453764963954937947765737241180528645197235486974326935348257205689084202811605029681700159051061721594205007074334944334597411282724406442866903845563449306553344629649362886080188390421694477871266518845287275196361261087623651753297408930390166319080039437040209929661764803970904943701426980317208976440811571710380302275625573911798284628450857856921462884162897174639585717726792806643549222116342937199215280573748455252714523722065593444918423554780603280883139062333454282684017786347999398691470090069206543091521549112249611294771662934927958644210481967706028165570152285930078444488766525481166065485375996798324167936577376406910862086657765836848422638318408692317062905977348619666134850000357745903931241368711616836935985058240062557857391153257193178210248614263094004441858318950761903428546191519469603881378469076108100281908662124986186268536825241391748530777320336774144931319888721549163314578714496609040520725348147517744974932247545252813698854637323338719359370984744855059490653691708622316157252899657977491841027679662031121235769366849412704714128055945787703029576966971601295798680312181093515746297380253775643462781020878398202715392699672874252137420545508602528021437169258163630166850448107506782010098944816882065028765740708660057802208952063908340620971633300809184925014602809444051942910576711023052677008806273264286011729691067290530680589946871891269120166313401138059174690868584263688770948374698287034976080500686780666539392178080740371817778569499199897338444978921582940644219857549805276366251010129016754266516926782175831449873577617889700589454473236380118924572988678141589753883279341867478236826637138077218015047743545712764420547114200872291371583464188443036266880218492459254761082894338166513231639086827439115244845363392865795637486715493013915934713614700406692994416054264741746329454045900436149153250644030908030893772257168359416360958486492500695093751773762128969461756172204020636316963201268941723003639671807304226263821732407024051699559542064155623326424109246550138963122254113495781439633846122359584164495111321468134454294801505864382059151263468638534669195654851580216109875418608035729471207108369408646203497668414767156025529446060412615780081719244076286109287749445003154515534879591163433230948706829641083776741049164449292207695575767375280177069300069363780524850206740974887854206266906186521451519265486656128170863350644743536641980747394980004342934966052034757586076019501943562827843792467605512045363981330426421164368028038532684102237446382536117553995611879819020847230500889633834504537485621677383743556659828569250513844356083717315604479082478171015441711367353314444541663625338212615244531364882047580779997190827419757552014136654875954933600173174248627285022732924169394468283526803083207994556266195692012351635550755237050232747904084247752153419613506366082204016934498721581082324366105958673561660332056085303820257058008516233549022700910963921694155785375040043691581950996819135734203945038070745622356367235508100056512021567342853972970971567968971537276022935433540644489548704084359919407858022080637644580069204564679287198511995022150142160039220742943482264339501338519095527946260595074530125780422706537453210315816227861664895590943414733647856044045299211813217855126394321496531526922819075040110251091587011710168232673629613872511195297790886241408255491148147488858881918580777357242277962273672832457708514581194773030616784747702732395070383352549360693457113495718725232390528731052694925353096278547764039938094577906693336566738632654165301511850806397917657580332007607724789659929882727347846684653544439826304035095245409585406150962406910112616634491718410360897778552808900063484248310903573445638831397978755299522046406234331164638583956305415423277211257353676866140290517564490462214455593447040703064165273506544414616768174452562852945476693371112472304797786652978149059578364290580223645457974158271489931185460830925427232409661018525910332075445251452793527159282444289424887783891828217932264564942677967338848854994814348759450446265309061198500352371491314917596471675677620057460011339038309455670159707993961831278661187031348126093878097405022019080514065457106566403986918283622778345801122170219661842401196048972016716322229333849764255937728431053347020138394037255261066095459288413564722053893782867408310447735056795668268582648451592709409977803527513842765688584217178354476923937129407752783632040987574465442277044752068813928481346859521679256845665976589189696778220184755713360073445552477561340655349301799528584030504018895584238806943065798556329558395983321208818604908736221413828555003518293278327011830629289252131967282253822169996216155808036247826316941791348302301781516067109393094414621459564678235580733860729531268934734500753583684138788317591863072561659446648170212664124858603340026606410889785580822719813803148184271132551382390011316738319438730630102237963223935489757915306162713457614306669357250394560298984806679144746985812919400329046352240677996704406301792338213530400296494260824937122998390792856797013510644601612918123402399478522774173333116561231524154215181324806679600124771628657441899575302731581433645510706924558126930381750602525430030905154189607601132889184919956116292169379161682813127048739378835571106034129652225836911703797232572055749047845133501900080797453523814484085005269772233439189971859169385250849072079239108105081905143172647270951859102445579993588347329432541054783546604167924217211717473255632045815834003472528388292920888737453329940401098649706890743420836569549584310996849722927833669662309426311613173653731218484208965280616063315865237316423765221765121842532033913438085387272279173934188508294090571073077452655290829674749483553549536658978465890704550622388556214867761268115260165917640170451944506383445741036288391349490312522384897860088145030283109956137857468233283345042630300303177309701044145737429312295563283878159117142632824642008873671966270073623895722496178859278656906184284431749411862470538664148658996649095655123398684107812353442543097620179637261904093008079722079703772571012769234842105821008432711790271158514204121243337820314665425455926006566298904828712728744978374516758047266481705944456773572958725965699281965230512273062895651450064421883581541367236470683734091928314055751560294243019143891011771091426365328638565785669087461404002402413796661847562723199554110839113209727040561738993350567357999325162706433452761290714254591640200884555038035505308500672975760798419055759201881709880003743687391711489200093920895985032082504982466335023252679958761051690843907199089236568660886757067728758139394288459730109539769138034960457515591630759293708217360195701385312284458692869381404815187400900559264723079927361106506746114729097827969637388198192935131856670415505028200616192864753155745998845472582337288560297850060306832965876187092931847137704459413983869157180300506353142880214742688456815768326388196282916282546796544272539722220434459884261408777869758872452952807006492933502217290377323445436833762566829179641657654054015471271292192661264520918777544062979022199624255928305525487354988513390634321558051715551320507295887816798386300159638620565336518257295676333038489134319254540711882018491610425735161847746671524298865847791042864486242904099074018857104634608167446442005940228195112161983416915596530494056719934617963597743872098259013763000006094592852537188723594760191692490771309061865982443045104646798753351816143699887323866212838029323326275691920621684322506185094431384328029666146954838382488052675976464371809302463014716663260023223305259166042125209021045268434603715875708951229767602788858209135039130569188502006862701419124564417893730362163895335609452831618594947470998572797884776103130782287005864873967918209928391672341476046072067702279193861419449064987179736741712827924698963240110021327282129587938053440835662757504349223743014878138043577125641474655772279281562879456938187975302563690802882971488430806562772911127176188506385398391093334744448062063512121750121841894247360808584052866198844749736577480524422181068729919491322585501345718560146167831273248296060918449118459398184794372261510029130851800678120053756669178417952432316055712413141643895761811352953433992028423082786731157377305176490668284553056046278736089628401448360297807888014000500565549535230914631902440494256733745376551010600932523540283281432428919051992503800816311564065367067086659643426658978979620434267627948633318380974881906913914054931905797159367831938456973229275642733717091259850714792919317306090089432948052630260070113565404668930272874457128418404544024545461463801263903422002229098085857520774763348740506012950004352795306465083866310369004239119022903974329679967821765809325847752256067522614419467847462315249718781936612914355686584109999290115553404606789797780003611885929272297441813186221684415532356977194779845125838401632586184904197415132258525538176419214177838306309597614678076109596274980210071660295746577636554047266361232910231193031157480335708320452821722720649793548700228671792039882529552287089892900052537456020324588098272611767748933843887691085539712214217700746556632009840507331453975943210516147959612547452502302984630671891142465089153315080355088636730841370752052546342904986975667179688670680038357297394530818821118629133890775609783903636249739282862649650073323921828625525834189675650297342662379304226590449270003460822930670880275793264140085992163452040634999190092177085768321701134121434962218579166548019743577399746174070851727077862969950100695228316642845935885818864184035913531079447007802358889755373901636661227197749025824653429042334391674601104764351080738424891324678882255502058558184763364971892203894012202327668442524362100524169954404030230581085499494265773756148910573121032603772579920531762937355245798481184429644296513036484197779427897308956919048439207240262474405160688971816274371237533467472730655004462106934910941523325435577374892981643298572229861884313308531333460133527956499483942604269590567957321850475381823138139472846425755332764779932863693299406032583499424487268447187260961220058210148765607240125019050845751554878280553109578285521386855920434609672987520539356386908111502414681124157789328515025165694016757152505225628152978509347520098717392497915208681149940300080361087223009330803055757749462482601891112456978657366011608257600540512981120845820991496345216597509212671782659032926676765794770572309296615077717772906825457980244541811811496816027458760810556451450681006847808569653887247950818883933713062394685753039746723998065986186624297104387227996585550846747820729774461406929288149473889499233527201424417838676137293246660450029424258464986408122328298238367257688424160387801139772762735182627363954099840955359324149756876802841794326872232702223844653666915051844379398785146228032782338176313151419727232926722730136565249004506346016238469618648538963479343735040456507074449727771859630041573752412795712785064668481438438541923921057030913388294173705509058131426815346469612133373848351608258828202528726740075042816239948151562158086024335180338537471694662862277483919574902250377302785886552541463897331432282759915146863742172649787204139128118894593484669970197118422656431792704627820445495568442613367782578278469127257415624761431720466846436621139944395420181208931966180020260589911573036731034783586916737778837859219143409006300621313549902209857677503964231366756243511177975670944732619777488759245013587290453161584670106803519953540805807911274807631745832385388258421462134950422584259782995886129866570344117902793152267270292941736550233813330482806548638212100692852033101195540444462855690229541754155308952171457818735651164305404592179103661210521540522441739987833441611190131042562685318264358395116058416173805155737994229656040786993212621537739121686842160572593137703538387828441810680663018686129696534267720921384359123484389478020214470837226265788344863020632960800318890938497377922696057086822289051973651599010574795700251908020712907484828803958467715434320318575876503531466585419342254040952639006389835323880895727358783773621491519514280941305104222847920687157136894434648721532034594793999271585554627337787828438323556334332171310152517865520591594974875555586485172819943565959151774039182486523913812979939815408715282999048009796788423972704950902152721010071386150440660809030120720136153692017615334208263314240989160596183665653462717796498027265308952535689139030357752504727120201162364295740824916961821834183746849788217305125690067134257499164945450794378061767470710155920551182703104720875624995409431998320616863284002803461452418461879126972912169768118258544771724624891400461102356273689959522643011011130904401451381848211541452254607432989212234769255755524175581039352878932789440997032953929025974161656556653529935435902136102027529927318614024394293296463559713390656167409783696495779711492735769463356319366952717373236962756963660861988598581707112669073330349465050358110379950896423074778868222775402261652009523953926170322656853646452096325472338723467315025507284815571358515586358453110729245066284252399847989883393741513105350447968770573247719798587909650164360808061961775508868959346495969853949111154354602456204249268874396730386855798210621263743669095039222037567262612211318060412052759612960454544053354599167168705051130180528435324878406709866943363346478284620124736329593063728255205711809066783604022146325882707916271810942120117321128913922094810247124953626569845866220650326931995129302144426208575380924855538809401055168766748825759748049938369265465404072923681957810504721152748012726540467834841066828522673168833743721723826450087867525912551030129699424501757439615959020013774975379913814901609656459272505904341439706683444422246677417857657726773912493204421825647251023340339633405024250246033186861567204774283658809206917574991400539390919946656555622162529613712392122002492412299720265197521290232272135562526250300685391195114355448447984545673120337428941182938443726045871069087469645062815550463817530987736311739366801080416290993324564623039468010262796735858598981873651571468513358720239549866631479055381196202560143200879270763250342890837053603601068539044075411369239495844309442644002310677308848807751021271175979932153491745069663547740238020938295913965499000418206676177498515435978197197487816075146064707710717372307879048986363791980489857392841579436067685157340455315963504266572595961796719588830852927443438962537841379181313855457559381832048001772843622057213153526753687259731627448528916107018564932078122579009747229738466846969149490272139326766300440670488352822637896844149877670737793141550691991749015699947740471737777005826258047546510047213567560295714994585277675818546661253818307898726627271803607097100545086769396072557932696431360333616714093573685789253241405368341453842718463535055459426349845383878342696217272197373372368182386314740721476118083436495843598588252851598030273744165937626624628633228265175210852209820890377237875768931585861399682073440620405919570381849945325513769802923938411232360185604375572092669245950084547046686265591780337281783542791311604191161151485387104655215538261511298700369663629984135814623385176583517296610831759319336795919561274821467947840733772723800533548944949990774477405941208199985497174514064322171303810563374862896233404705006464771499526164158233610264536500395542365196125690121506447925039176919666750389893307270894873990335121066081789232116855434060311985677300582956200805711092322134246562989570116056362859878979711732608129134647635615164619897556266451097471213052331985409087803115135147804859707780596083723187563516397765022063044034789846111908172682496745015481565855986140591472572745995469430393782802145368215595021943960697725860858206024706060907639535916381222709874094670071336064834983576418516474228951139317451235951477881614474626501342535789760733884112271995971020229431917983151010026660297767976304235243713637137858642434052994620788615101696519222401491248110970521931928761342209827804878210892723313528278461369438912596952916952696412238685150640104915217925101612268991709612343920320175221945397011687625381297003280866311931033472786472332876345352381804286471323802797003608129547561640807647423861725111797101523778684057216733433599805212795500354097142893010626202452933908589658300195190562555425944077732180822403976264736884983623305406363615835587622959115849075067188504495390314617124086892115598098994120178717087513903700991980307230884542538409907193722303512375319029658257746638356665018462476689393600035062009426314722303717002494396973071265917309962552288583767580137725460951084733561042824089976990298960309192365753483174024964421376175955432050882055609090994447124902355477145443441991853823445406147283929588643686218541985319521132071488387050681354166940545511575035679097608489582603532333875704273015051662502280155692113868588611662732900803830832259282006715186694011110256549207755061733430246154001595481781442087359843688356479494758294257651204673533821015657563852599211975707563131889159832760246344932710843806114044073306302193071517019190154752806843143534692827907346892141939783136057764834845828464046174561808778878239687736505909356332807417099933111608584119211115381174338371932286344768281892084433062297089816221134863904108009332260723713755201250279631097386546408852734446249909949917982487687469458485589226038406866521856609158923402571305026136105802118517623055704887951809823929474519679068426858950081267736169599365380021071600218190710083548160689508675742397238267638387844684930171741187554486936459843806336891866632495632603470826704999397904577965327189909789624713543899380030972375561304865683183233734582486927809501053365497672178911312282442678388514050877352944989043413017766280998874762813056911283633088539963475375414375629590293923556602464550199203457715682557529140316971889421574579373775245712102458460730776468130340332695975491231840562848698705164427743925781106453763919301104183284524629579141292434505285959761334517717994082528317323324338876245404244047311994105523848875726982393127965555250906783104726278554667496643306478272009921291254076027088129443414330071240413139627894177294506060733348251813442562981320175476824090051132327432824878939121961551489448471153841800544079684386189115674892123819699795423294117237617249350811424093913874781991998125871635195704525263497218569473296163671067372685631981632583711659601248270878016778105206206622612715193267262999839042442827154853753313137620828331757426956983740920021099237046950036863132930477880667501919862520055765935352068334204349220679861045370090831410752133506641883554042211316890060103372660379701959530070132936972537808131790060344279528652955321592686949056962896209817166928469225239151610827252004311107308731058238220355002815283841711468145471900171951203312615059040759774423253424665087221222751197800898594799130463388306739457696104681175411526404746252602016519040265923029518988131221378217289633462309291645245193855164506119432771491700509368378998567769520859595858241880147542445962159474896799267660507049695039848306764429915393890473146906562672757210739930148096704557708491201642406649227683145637662008928711783192899598741802826475049102689006383270685479946782486642208898634635205467795835474455898037109704319552580930918223754726312680318878837555195357492326535786942095396682212039180504769114600918539009757797507584213565871064852650959139444555283200142569804516045770641293995671099374821377339735402780471662294852907318245671216999175477596970619984878749016649425877585418691891850658827886993996102897418605231389761488123131203542008628404935231075484173207770296365743601168277671849599216782472964968597910249814836088940450611452429424334940270389747464214479078773526695891615931894035779491651016254285186962109052063989924401995799476936810818621742856193725468600912425797852437631188910744597095831407179813196317298145736202936309063178801240080345872972357210241169170894657618027372989337752066673524300268208943006391765049524042756594859009222119432582011865165205330271669806869190156437110444441183232800113796813553011371201379610308915111096258457440538767414519769785198549377887613783512072159716084232616235208047705670509428554390380175086721667003118845578253539090891906703931699234483121239306935966868418362665935129055464491468667198340581177989023052545508140352523875110929365094122237795648502019514865470797370352055172110780722096665883706408057848089909538281402631658783677270141327615086416756507315556255833076253135916845779010208445897298035938467012670867404164102087986455436578792932182372912139968765888094477961192767859884545912438504083458934979030403425400602780746139264958898050610498655855363656675862499320826554632178762425730052460830764004500611722084828039483150277789758354730347863030231566274590061923821613151346982125238455549042150126339597098206862741492471309817717178575371027250857622202943466491585051248453762025977211139800775536007905620914540250403864786381412732366664825948986700593963031664522798012058363045631145771370968018727694510462164765142895980879944536870995885968723903932455084558619258958766379114087383844550997229311722937299163588152949820398687541857801117144465644508176668383027188579080218681178507758275749328557652038735624064637851759250865126133603541573116765640642664692222472776225350119174747315147477194761065910252345012093491256284905009377699427075390133209653681978080451715580390498264795182006363383882528986970437295875528301777854059077607503427061513938717210773565398724303824059788991930197740553921081614196603814979000010856853107583689017315579204007608121331324279608667687877294909933499594068762837446305719476160614584248858471149122515191665284995518358839065356631465977756926255396549987422249281983958581349462944779942828160448014314874217957193992629302324007979539708256022262154444366519729137300071471635816184770106463566263443373786537402138515554623156509312514121771886795577519743836510237234428389773855676856846994437755076990559309537042795738085807477822102483596837251358135542670139066523310719288986611336857853559895554257521601531791107464489823194021120137775278888809340297786437750947856045601717443122795390153359604905552392352313380083630744450302768010469821830534497242583896130321942042180817878504131305926141258049981776554109179699596292469682055063820692025046968984490964999475282476685150330938156232082958202434167875127041061972344463070605473161543779810459086740982343141773303693183604412948495667180362766846830387872923242529029838768295606851552000186338115163017261788665042384383027006974163585672690750724499767307230470511219874304168174900182371140264726834983654282991762538415167090907907320392262644616216694804735465870144922123693516567730214451307704310395739746954187660864434632078921564853255004567423405997402425806837866952183740872126500883627780112921629437876996323839710739440160160239825361881737528384721342779902969605235294783676507244436925909532426107629291524474578182269611425524371638884405418245800519889146237514276253293311564582961170092375056155688032445621840727748757947265009880532058457358511755230465570185458663723080038199451661582360948004129428493956070236280938893010656947079448646638338089812107113042860057683629348217599611071687424816671381072475106549687550856444984332584467305206528097228060024475222669385282339995702971011078590656141947912723327997317094058740587915825257149204741745325857686777510720971318702241913956126192864789305366482762516050775172794031846157705267626795681863890609994301845769316316508397543621253647133716077588063212853452249645558513566038590357297543764416176025539190627004736879893903176186834988678518398266972903660230569455561049754932164506561327328797486733635998562222093035028977405404694311680936730601014708746516601546444544548055309810793446855156887358753599665774341640203285058841614808810765462180135433771537142552107766803296309771908450491493713984957943043151784051470161246045504459578776919484061555193378762697327432454820888023296453290087815885224819775179925076938054083144214220822301575526322992044097006895841455759193805046357965740212805092411895402377575589758006329225956203416259345037134192113770303993849644849424905393887583295500053090938492338352679477621346743903774965596086745850666559513992629028973905738844856383362942106314910318456105221368527741565276649493634668005483729711166747176851730994745124504850299649632328919925927666770716939496073477225365457773411874711923747810594960349101122675569514607636209187491700637307889513148129358717260887997262750340242659549759073522845696952453007908698412360167788529084999460330730247961028836644207761634418468683320500930266576964475371925124243262735399217598713100322448001234279034880539256366361342223407202153385134209971091510068679139251151629266404097811728443186588374001876735568583888533229412313074187623380050440175833317841495655208646578019613920335699972925200003206300059932850263158897696177455325985807949673873427659039895249452923735999990562899087106970438343879697097493243914797690376811443453514040684493245659020609181728293744554830289407340152148539876407702778667980831543457720353035406246831197286621362533304362607681142246298042371556672971549784455520782102429407975160780874114327697660906837671407468351715303155451602820851442153768209540661849876617030138092068739278172352922829094753886763475757558303875894655192350644337849580166941675660739661513827325581162718088131815232389427199650122500842639530606939737444183543305598689147663718921909453591457331064526164076936665916863919573862440869658451486019189861036981724630430994953057950391291643667868068652710769177297591476265565655546616679455752773595623987140391041487368873467601141100993572126518011392794351272079798391349068347697959992649374297672906275462456024733422911107139316444580760626808368884628085624058265989544955494152314761564547273931857803117060850967606379751332257895070943147490439198136111433071720343352631094680884707447127207245098758498106786759946193925969289340155430024767578429477481855127037079330234015434685192788044984097218410826804239226864329224619817730930072969245717458794899586641986007824019742563711063836787511136981803550438803723171101533703381859878641850731846896760805808629287533352481387549236726740267531942651421276094839877137407635434791909767772313791071708308962536726429530344899207836778434215453954345400572182979809881390368193809936939182340011192366021463174791605608880166181207225044920380609994087689707244115107910569746447392430184515756499705214980818089245593379730155210189859551726045395449361390775449569041328702716443487884926118316137850487533100389590028975791926382185973475817913365825567569991171286985477346805953733846940607519799533161219692980513061633698625462222106326344292026951890626790328087903073696970104742111817271260881130666658153717130514667946247079157300237891716786773678629615393487926188867373789871392543274026114244290637037628249073178069588462101424727196215666866861213214619977135262607720941570426191908860274518325331512776188194937178142498931102938456823305825614134005531199167217068043966615671396422278681982817203270169520837378420998570537331718647475952589515172885266951101118578459363609984704583065507177748046912173298530445648092832443407502325667980365345178735272816596408487032125415720922176426081888047415727479887797404403087142786161107927981567080707501793149531344867780552667564708901928346019723327967178069667381138963011075713816603323182477613904316495636113852596409771577907991535189890723225576388791297885761908660273544787812278720548929738732358705089528839736499390899017941282767278037407150747529511220111596456008619926809797118593223248613567092201055624004773308577722050450798304066068530311008678291216812693140958052031153042337673067205988748547171075671999868021098512702814787188162231875479515216386596219883579591049391419946479062559067332905584596811304990540698785987764241222981521928412791795391840728818041265996782282001743736365053147365908478156375216995400689176067073730494708129167521252464171739449105016221643441724637938320802974509349027892503650672771723188424480736446473498744109639318027274738454630218252688124609016238173583466237996925344725122966379236754337097973680061112597702031899600752900021759456293505100920169097417027295891686992593932880801539408719603909149069776724029707268107519107092705869206525601392429714605805206005667640302550675740143961727210518231254816838103409286840718578448624605147562859323353200453417740241361097809802337973858568868299269457686897868204270141891822304306230656474010112305176277209570998882827271729895870722111896607634635075389634319751916245669674502258627999733822929369883342569737473656871988417827622990510252128282923599176599485850408373997443219937805670190498057321303817554676416261116144662783854081876116039442990241885735817179298716467970968736382195477316649352572293057599306863640401283671251132224462097215656764916424500709813327152938368188357325415913367465579467879353662892768849813739807675967213397842935497560678222064809583021320878597527705039295220344398830823121104596892784573770537062952545215257690737934371935036008655756545720135570098331919585154904876962464352979090997949660453028638194570425207356244115725886250556584784906662107689873359083811296838869213297931911637709389958649505365523353482629981093206540970148342061379184143858773988925012655515491506169910822055414789836669320750425292530964916352518838908506692896474774263178711995303074745902803759081164853450523814567523884440823765225493520956233505774113563223318499408908149428824634628668371813399794349627088416845308641253921371207033695817314321792455180481853165203827448373016256623723512880637526544423817732854616523728743830381553279241481084803525431836162539810698688786683704901774453864648698664967768616499595255959448210596610691645877984133780931835357993932418594317836381588970919263747547000369695478421998027132503450461198538559553684415210420016034216970389819037642941529056074075552789626190564997137391747851591629131572562039415164225147750137388985528461744045214665322842108891439169891284489401134918508737228871421668946130448039712288253399294777257460258000824513015957142218857214319797099748846788337701520855622102214201465886940276673339585267616186824557499363473285805082514135780854294516424553811003048721539739956852316328411100170129838853838689484904300078820815512857939240766205831472620004008950329049917012790815042964213520070923750067770376572762929185218437490345336977174018689536437752045587955136404908368115192694969885652702882595374344891785972703067277694369933967369036229990148771290664292272279073410453691131390030837560436226926063976270939285486762730164187344171511395122813286457931955623464969170224303494243997445837802712655856674065099189289078007170775329804014948463726303426147128396919265741752179810070849633792683824880559526453811855596025138123941160233480034638599675963331471728031960201257037254937252899487854006114951058877827391971863289201415102231058335187011744914134032150467384245930489982250754653173639137140363468775385653425886142452363689716216777062838153846979240909523342332660496831090693658972488713215628920185734578059979370690533481398482957339069408048397235098657695167910892746208524833837876361401197895941750413023722499470226820563848597284983337858959070309161932401104363210391411357596694303799982169878917042104333585441749240149339959634729555859891822847619744065670514567021610907147771435782677045664921723449203014309509798517304645464399614321609372366201465463019906049764234950431355661276590803729835825746456504383151585665264729997353702876904577816485271046101807040646919320818481512628388915230558443414834923143605064749590671012487486294224916317267230982994424997647187670121179058229897147604836132362000960506711464349403075550347949185494315264710834801501210860092833184317413826181125767855609083897679016673488940575553901748566342952915049805156116913853476175870246056945924627063846116384609392930366719311792708057991960695169612018851906933319058820529001465910404563871727149521026041886803987460152465608558549025399184389887292425621320477404596193409337672866035420955584048816248737156240351077913533178492387534149102652270479228396599542589157152493369156869127918532833620390018183130992178679385960345777340299554805416098046637432434508535698192055802518540934703339588826347963177811573921034793345364101929025384164309513902684501251010295490504077296742577613551101837726498082790335545028112096822304481108900570786379621058544707322845812409268743026075905369215045069827588758454314236116022480075359334467940273324015171843695900206477254220963407032234010375157902260500927812235617816766223932276566788638975995457657832468632859351683917215739090783669542234958330884232016620988932793850442072730628649641027254322427456425238516095904113073438432420829282731120890635403012124379416040451974274803429279083657775160931555164228128423136866426408998024707940502469194019752923961381679734393970883155332799986017212903274569476720286642212677886157278820307512897763572288317945751848597250514136536586544547117155791329200796799639214674424760690548560960887718287901159602137354939480352966437509575565088056539529225402644118305191431815473294791266657110999771157671694901964217062000590906133516568422931888717313896845729809855299512243100960369096770914880469013993037762590409689362278715319798069417415142722651858153439392831076388772200069565142987726872880202910227148124766623629678627666681091607923290774314265633860076939693168761848361426020114818908908543381625194148171590102360614352755455357332142544451398509340672761304984710040737423830920969667490781710663860554205372155272208212281383789709466952492715568040058899198323465711469605499529044319518188966916616615325006228114496152963320539021337828333744967784357370293762286224205281581827359217235082124791541674464814788074588309177370717467324657779781219599456034120890273388390856291819307220313261259376525791266169285951240920889598953159093579692372453185633399851201567027454909065069004460422984253988518020815891217086532328637458452591950377242154646799879567072817169902881628075338887322899633820009529348920115724080534242894993259179647362014015822157951802310781463178443909582418140563890407940025468387702675629080612124439076102315363832055605374186851705183078508179686607787103875820768550045725584679583808772904702670381582046703238197108094605461380974116768811257304411899106779085871842536868382408959377553573422912352012655382337426908079579015536881201133796816784491783955734903005105597154219950159798393789030312699944522805666439079080224274413382059094804820878760390613748166570572408376291170026398264290009415341225293077495768581615158785091567542339998912837175306941340970728586545112434176187246538719602891406123825403770561340713376277659690056198945327195848434189633061798378834542622190610085956215444557707368393888073497658612933085620719115943974788638958988778720524435472085453149452029629669077353413934440429091757217116422396670964352275680468264381303308789546344392919383001926044025435276534342395361614290433812126002012937545548094477967496229084781212856759889004813490645527434339730198059378935485831693848467826761887998887944171890219891480315531566660426198938989190463394773175719791684959806148461333908444203243707790409224506764208686810991715628654585500188696962981328420635829333465925389977429922289476550990346631069221826438784812910737426456532003458530747236252283269702194851174429064426280744446975036565433406549212557825354731486501354783582905401385103879934155646833210700209905727746291915597112185660576179437729521458440498544753211441768736417466968640770443891764782729610039614320233056210718037586198820087059974265626567437173244352046722374840790818030740321553453704081275088951068768755490077827191946715666908357240322012301794918461774627215170667323874515683356157556364874452034828900372433582108782393632508706607470016101317518681947779541260620586765966541917727967102843127046762532482119090023597808271926244848349422593090955273018153268803304446804671657197271164745661883584675609198980275063344993082009909646934799160755563097882655454162530731758442789009978386540127275878891506435985724724929952544112030655822958805183125567638427580448635021059567706168840660955602156865695606392443707490003824044441157441347835042094081238738995300100768935003645818348328498435723587830474566870134434788354353434330948784432241385503416028851931952934148135983952528031620463599103332807695500474051271835848138805115024534254405416759701752523726596999122255913820382798407358604211169773995502456032246183131324178451516726913452801845233585326932673219594167411625235271940945048926505676728629153324383868833736020001829413910979556688597369032687538908197951951975026161826668006474372307829030668423862264422214846762693256464308800822878827765498373439589911017011183659019452300175654943449724474349126390155246125736109883288796206325288785440446324792147666280853924929775107964044778568559029331643995513183276678823556257300167749312716363259504120906599532256406907817276266190176429727539006750536581310638028841420210485508424225899684850363155325537916075532506233988855213880783528064476264460135202637820517163574050011879203024410544975675820240231575735956505772108236138638950157688144273553140657484302069997954136043611260189386511242063711728204944880649252501633100777276412608303827313894062699163596767219032153596019690545512138458757879833665626193616115196697120590167549837279873025648894646202570710687209557719762216531253677837905930388070554631845482672218862517112809637513032636108962910749537060414969984536589650504460105430010664434722498395293390894493912463159649518919815801778996798178936436946394547044412365059919178004427197572275457775368381189819481301067294351684962389248998363528241709344474443619506632291484759056189410305527094138487974256369348264816920880650280414730267137902673069851397913779840305652246268846810964865543936058326294827085423175313993292158762082348787812666952492089061531057942660567301374353868824735071055758010665211078971672619077708143865548082994487187256361273515812160029514567015204629710263552252483603559949297789531761558718957225894192051889366774314793466142080147029553490751162798468431141234842072602590433141715620897600593767782768458101907151481541727240905482708661906849083094444721067003490234481231219935189944472078148981579833216488235082916701064526021908447195105857720537419201695915806238001002878279308609949132017414653688395491234222481693522347241768433377873690967339976966017925892486367405491309387277132786980631316818430428391542511205081982323082099771378020333617603586303383779667729830794219852232588451831051096142703157945028306483641864436952209941229435211186892807408110345418913901865492175522345739895557388916054810341911423205063964422242732466612299671163225513750163486820916932266567789280571818699722902171838270827218356342541564601260974075993459535040440342043785282966783227842981718010736170522562181329145372012562881617676548147322675500507497955023041057800383574006326540573311301301013824770881871311903643979345361993308495286052561763767378552166779018258271361506032439440350403036215257093483075240590209460372134247010473765712226710651514430707861664971492727617640291444771387610796390210133528898597428269649973070660729805141152081935672664170622735159490392059267386968887734809973303908402301575502947926869762532578055959835918141955653168554927172388570307928352954083289651005020552050396855833935357218465256246967101897483699196171996552696060464335910731031905834950216862686001844372130101634570766390583196274632818379795219390861310286763325986518822242504430829870505267548656493335306478148405510434540725801541284879010183523498153069185689832841379308361673079954296357855775287341682718655174271047015735808853909635238084965060046433241786472175186635154924094796716310607448931578210098008786217057552625435139925230018044445914288730268622554868727558524039128296877552326714138492491082040655603287160705534316189698251417459761660962897160527492703120225877904492927323012570573447823505209193823968361884972149328110542230926539431908435003242462602072340542252675242513335086795798056619766784240197741239507352610454300487299351500162725104784365360510948333701202862356191626136475097190947043714656510147102870703420680366417025422945870564241921042076508527968065010377237549989929064536567997861725751685037809455439403136868261801268120469161820498410488927926719281171355655769111839359270627747373506734942365438366455972126780183382768651648240805563093829241028963839571886463070899689631723498351244680343532646367208422819213191390191494384753673804563719697388977538140689470640520771724325220149664609865984745935930543911621470154816474976001803222122876721120538506723827116126905631901373287914368436305153621424606395189781337923838481335627038626969130528779173603548310113449431853834195373077560154749262635787726821868438056233812638670566379829366116036877664336472423721111259523675649407485254410652397553681177070129873068258241762827497452317682250752843138556047973860044933946156893415296340437000282318809720614543504387128038766730408422908454298817234185902776526694448944989931825366485193682848329636754527861158278369211881172762415847034489786611966775311012820565067560777334614397774024910540127556054654515661979740118342492990840902213033633807953191126038528456308635779367565063418794828425090003439563211755083102374221284040864517475375875519444239482504237097613527419618776227127790396782048721293306412179340848957799401575751390672881158323362998308149104435971746724519366072067658249721398351011577993856776614161537794683457523383335005358276125872832829145312983194426045833994627673816699785345491573025666549717992456322357551673582897047634783207378376573450413965754585004790613758832458166076108614570186541797279823949328958089354565440709710303821717845381157642788157193873371399295774448916338113197289232406308608081317727989692178052577203054460346131000171785873645327822207056390651518472892199484286206230818498926294440005601603058807100355994208460646585200846794570085091911588608620794026704600056314534229996905750552512269431532581911782392895751086663480511615080273374448175886153936630129589678822352390228815468590403640833433932725602145916645327185819613532367844794406670887338508973939847551950843629004614723116927664668891916377184722059368196982260379007056805555779138640207426066158979583911174566876748532245704143267025530789629459786237676717065516522656139842714571919987490372584923786352199021248369998443931344162565103095519528440017256318096448086136136136659385995649322623215607141941892824110179281768050780257020603075321225201855726348446269148996666565446776356602037124834335161748212198504734578484436900364965217515740309260681329910155078148077374798915726155733648910458979113877971669690229401043051049249304432834412984106678425301577759871599945726411127930459085471756987268990617808971303972890683462178802066233656448448973867914529613270520518470038954580270787026588280386731973018724119617326297640489580900147831085380304655485897644756783435334668588969755898814053724355263991889405979351446683923422616007644885165530447848074803317913642853906301881541044810144124179520644413680062109388379218745066509706106104544106211619834632514634870097606876951582783005083135066073202366947011114164101132332185310862745466394720592616337753414607412033594537944436830404562262337761082660900708065737238737195083942075070130110969861545870429594302907382127566580675780517067566199453019958261470307054823998304068984640657090304569398046925550149377238341532414232485150200680070477805119794142217458564705881972650375800469968091509403855420566622617506080843661873217507710457634644394284735398397175677537593754594333500702882822942861904655524999741234026836818785398472894889036070414429697061953885318512595942210256926557807233503499013891246096372308942268670408082154850866066049722678705671406141638998363818604385965169267490217966625539126072012590556556912784732073740865881320299548177205239732004345745512784698492022754434543067749470338944183619327523252189665679930102501314992874598659181130014641230879485489692378094203544969710649807855639994267544945736195109204975164962641219048294859457074874690468300168795199934431062969978324896475643187701131855218061387136632359148238064717264605783438469949420486981645736816986304631657013529496149866203257833748452507125536748374812967046047232972099541792821790111342007985940758872654629309513576958991777097589007208609986011725280403408875970458657591047052878432730034366049059366564931172469497086098857557503919056224993772062165599405452115013718869336889244975525811008656620022879707673841274914906801748450299121906688774262622344586023656458838746299893779566070919094202413512396950762223014624205373311740529383282683348077246255389220974340905355995208228758062189133735036150056939137366931128660043628843375078116062138840871328007352944080349572147531178584350187402408101035749653956346627226016395645706933551736741212540841798434207221049892109953895229163218767193440028323234916244420568966014530681649684086817546547343229391200396868892232168515141359905928383385501195962082722997523070199636589376986786680206933991790891479875515926691954874793564818565963673235166915943199605933612911701454701923157925303947293771493069640202422083358305876832866254855061987370902446686357528851525287436953607824870533900082297575980045532080776175061235950147592768505060924660464838285270052879825436315527749869383691611379472765303145155055788804350634079251608711070811701925263200404552198999244055447400571032229589356664693577847093157029351533277740515035211740270241570653763069686217618698323913036714440942516943199676410827031301336556120566974496397290724839997876124356171408949766677693692835968189449815229931924391554127104642162494748626046897729034634502300112391594360958806451143928686754958409354919174211257039197951258397977598734584167004960550151038760833957700269660114953819871632255765397337518180034499427633271734172665040265275675876954905955464293440127115663882221985742888042047209536460778109533977678006766292093451229282420265618296224245269966862858601053967067037193181867054838907840362048778498765956049905771339920065166059233433900004492253737552017797301046999591920781871434018523887897921696193676220973744935597156495499258416789606644089064352767623507833242034041760416915325483187117587754385446367272208131326006396139541376266998239281306204645294812369085703976399246208825414110815245155833652123091791399270158430873427951781711183510216879374439573544222743082380855981185249432358840507233702784043437694601848924572319715613807860863720148854601346236828835300247948471661026212796991767103345969666745287911148281630339759006881371250012393108102247456298465138132728245186197152203601974562974375747290152262371635172427398708532229955069300422807092056449180223226945008006734228807814719959791950280318435043958735893962688581579826343023135591432916050118879968977122752323578231554761254388206987955562554740843703996653652146957524824192997469796173090126415601425755581711496664887596810996770115645892327975372671794614815443552707599873593159886204331188995794168204745100940975511346733279464101990233474104579089307151414190108492920226048834159064243770734659535971933281556732821347498149357712514160450244697337484217081023188495374590449739140896548470608335875595931100766003287928966664539497836910599011961950455576753293283060694941245971443235783232797241055789793912615005021388780939931629004904128436502956347574738854701270496364966892481912761255150248172449745651094574680338264094263209399145668949090902118923318307570904413033424874861810000535761305886237758272145249077232246495253789100678952503232178804095759748803822440690975249664125284983373598144609143680157076514087014956861199846759798376462683030993154263000269294205264207839619548573003339853164134095825906812548142525945602373660935884102642080177238853780694373119640818110372068992808082164685591373752438740319026665001294906227481847830607857650780065871631627953689911709965952817537240811370552124685376103605652107699063625822997331789428952660121832564137924056208911794709769486993630695099860364339146112556106653175066172036015232522829817993482819514504407113441632461869350589506690668630297111482343702751475160462818618129151493309539868036862415921803285532705079695957036430482161595053460100617243277898825459863337746186001630908098514333405233509280072060988575343624388254124726575819005623258913679918456376817951871542591147042220106312629004610593409305954954016961126077801102111772077211748624958881011828787222771378900196559418575644088587810087218137015363242657022978143714596170573639924235897945218665881360770681086523102987753134391758174874677735680563829671059110706238173188529208960003889168539794500237357475599312260186849625897232774462568773885832959999827507169941008309347133896305798014776412415183949382391622637443749313952145666224424483148253191905671998899370941183381837455589652887945006571976088931222916552414676700857193491761103023767292244897395343382169055421980970141976941596223229574265875701185180509108944106640929892674185184002540946291862585558199811449975288107927344636660772134236573547266885240457850270863791567108267061747441170390240174812307651968043370994707549934744069069508436061813552977451195805366783936795216729278581583926986635025758319297792035706571565419778913843978179271278654405596668838469985355211998350851653803321400904871879604161253203630266038713576284665493363395545868522926716490982964658722205185321359620198219978112056971820912985133094897217553198400305094161676015720758892305672170752264946250180955653350310361978360363734432091994414979998589670711311232585125697861030183345828747005307005307799592416541249445058628495036013298491674975753542300600398048571171103461409018415279691220932382443228215704212035432152903152477280422398178341528795191665693510163390516454438358244734845139457535364105718753228280840518705849375561091361450548047766477174345856941477998055327057501147747728045816237056227562693335250576464237855782760043944910577005258184231734066128307704059643382228712448070262924795332000837662235302368235638103715101874451590927337569449481836700154958529333640548930782496692641960623093558653184203047479167526891256994081399087809783235872266814968453283498519722453659312448195508509288594130416431605788107659008980508042639511643706397724098780962314936534236304619762724491742699082203487822221958666561687729989870767375564140298556912865421420546788537391968988591528978124760397712036290049427089313429176531580524310326155467311552488528836281054989086516739322298832081994262256774752994617996078989614345770518209758516017368102916457375555315869236510025294589116998626620842423651965647737950931620872950227208206760366285453809333149148638504903782679952793957797138610978994294950272299525063497767463056814078252204770532365073258781173157296403143986134054879473402199674122748821865480869495958202066868811450491503100395720799759144854299289418158340206318962570282742019461400098342266771754956725464497486924789761363942313969382180674056004577666424731339715759096113626572467849476252176140033544957653991545161981059233568093128254421965523674514081453959923504908789061923739821687523875428775668307187365320677154585279851564922173689067887319517763874767716751081179228081257258147333016705233719256728045892391696399878175910562129465784152909582948126123301011664541629924649912228387049893080522131753354767311485547998141517646651731431754079198074716587434858168827579476329362639645951293739223973513652753808503357690009610719176391124514570278743847865937596676901019515326031831692841800267586905246111845826804318338593034849509184301310142833182325224129240419370379871850049886864446427257958591468753959650772551378229473364527271726574941537891370596696481473151585317613339946811896629504917072747315559466560534514243551887902826609636350133840592830646137503541892138788543967993310454069134502698152346607980236807318008970377746778400914120192661257556361329029053296861078261759970739480569508911967636712263960021295714284989671932676876751386129777925551637851154780810211389892152028098928638827307254912408348712255699399623942571475218386647976766736371317852619777383953400416846655203916211393681435846827466357005279901812232970136933757291660935446638975612102497532621185836233162558263648781617867004852650198756044193601884528124113943500580385908763141577730044658050440018167078751601659139564576525478051313904193700684145628954564722041785368313096339642168683773117283049439929344362071631368715855000613699707190527740659028667684639362636515149904349427869772307588301134009998764639158878567108666763246038520092364660467795957665679368497333500460710486862664673246658299513748192053864098294191046523771199759775794717868050237825813718162534034408999974624645832480477039296336535577999955334943394405335096781603335144375633522266603470993670787811621500011666004815252506971336664325039583024703159880331957202352485538452301791358001905743224058411316934385996238169591760617757671646662954567844771774959114452769584136342016540815594161847482719719127986962708145798965167842606963705065800953566939513403823782924285106721958791225660054099904650874329522636125649649874301674158560551604260963231863072850481675481618486603417824284351900827598676832074495899256577099144796870534831063020355804804516902473395059825690618228523815666405975091747327207302987710653632873778188035309162189903616120449057813714553307742098735640815538280104992980099588548527573532543250211261519558969033050113210631712424943308027889214717813171580130737443457847001818275580178054022823242093359160087467864736416137145710541499410220054779274266364596933973367348049018277395638162417878156665823486672349244748868435191669782719081041372279865486158128003402237008454994911022381486183161050773294240004747145561595388528862935807327744201696821638134933004267962176782473271038863038644653082734092024160667082956284372477715837684528663086304168988487483188267442607831917221549527528366639999588789577167990212228442169442119161233447629673939826391039454966216183192086984980507090159324102848527087949807013536264528042650997776620605405015420159338727987417710212638621534635274168246914470766520425083460365322782218801417707414759577526778122261579076989076926530060120200943223933680507350469602882074585736911410517682657152583820473949139409558010482246220939835144529243900197611660692091841222532807050242161069413442423870307554991438905710507309729687846379655858310401427575356583823622326872015512858407687620033530675292329899866940179351550554532716030694194291022206965004667037785907165407951915273498597791052824440605911360181657448333789442537332655207856151155260121483922649840325663337814989989344320450990936528668368733431082105715797405743709017869431990988043579045245079657673049398826158607265087624794040337637828460408252955894603314317969858293957793125947387782731069404401650394058904459096771672803352712600735797310387744432200886349685729697057950101919379946705981169581228654643939703300417615305407460629366574127742791939359539083364819568337891837998106359209156477187217582151480768639777946660063591990678052846998548958617603538008893378682321796050573627784144352880748027786184327016133337227998997470798759583103590393295065937825243688976721162199242137226384566293249513781802575413054377788021742421451007405821659694301624152011570230943066613780594439177519341890734967918350151080572326690869242539946437423323716897630933784785216970848194047386057829072421735076657659752131456548477436499171532443932445109373282142865023824677264062798287649438733787961987667697011481955436775854973917093067882530952357623999346535755298949331737423447175205604467536104162349392060530498693876592526415977842250358335608844599862088059224599047761037681467176181285661276566434892693309192662308691490164853218395675469248936705110195579017802556093636322658822203739700577657377532611691680580679062156832370804723848161124467687544894395349135976473910886035469631211762198971018134013291274544798085361920418080606478524406611090891928349532594519439014124913726521642736491363885565604022118616210104118663205580445588024406928816961159617852618817380862498977647883719014209050563528801875255776627998820678415837514551216755312605984531351908517844543600459897857350785957291235376360252138581406698414747267923799362050447089815075118856148612931465899354777271216770624639647155988329703543997752020173887036177956666513106426823060619423806484761365176103154671656923660114152720170480752838988440479330465580295946061017477634536524387112497774355408492874115155156582965266458948330087913454711039071975230163188927572846318426529310371728288920376284053285165014726425906905807638590878566295887727831906810205454218027127397551222390185231161460721024191088033141973555304645425862712769041552199082190887963540202497869901846951415239182682441787466113930609493989543570786876682430875507645022041796464809820328485771748484140630318881891462965983432934533243499394740174727888903804114409488029681352292225335401988245124798869239191058765788122297738689411256666485561979187058404812769922431245726781246839558163776778588125095812240232668370981061441252465440307222695014531232362207057568235005127083505360604967555931607885100881925080167674184910132934521869764394150416240842766328515158835276014366356984176964597883403954964438439543987643732379209628081451772683571918597266351321434047490952611165609956205507614303430006420543099351022414832940112950373890196940326991756683963862360970837552922480330138632181749633881469582327607277853934599633127168788087732543646628703607772682662180514919882064466477326876180866677428646910065584550352790560354821838011543941663409569558401165168953089701321122559533845730135269160305773738782531909600120098064988400819887145992972255445394591643270238360768466200742005512262244285793228458091423048520536467019414004934937149539521229551928740689707415822953999870120361110808615500135297097205370922845394166394474629379641175856346859415902486277451400171870308668128079545490213609222469694507147371231205245012089794460795769684727181272688717154469611645652511408509943535196829299709543510050929161575488055274364718075477640237258298851532361389743114287257806674145030312683396786406497825120660467159588345543188485545822234433861087130162454107114778636230323035280253776308842393379586153880468557723435910438640416936557124810308710269679339870176361146218132285395821348712296502933232553845155723971466957221222927329398595247654579492567918772339702122088557193757997891603867315056737078080385656829277755910881835937747736087121367327032648553498283273058891725406703958910031985179489106050828304525190926178118096967607471630057992532395307657538883745526395154311135461702441524789612042453529863857977726089541010476015458352429376116164681067942726693197102821996673535725832424733903938574131227797145971819078273203016251822722154015324119631388745979746305898536822709835484166126189572905187505785719381614008225872063462745676406513702099676295413860441024406089262807413907545740720304375989193044728119432853608098366058911169701615098737516663442109087639302541198362582689042975992611758475151514652975196214022609479021085746801536429799441318431339236030974140116483841358652389451078519271976236566536998929316523115241075834443354752669444368686645050419946101128600569603571625541540188286549692019713305594916879781530812208723729200647492429386841123856568105068475852198904321930879427825110652514180803077920982494913426875072217588465042297493114886683815494955957396434899964605553049321398302629008386672283995550584774680650107159891706522794287713714008511341022388177195586568196645771395829541886954366264227230279106009221941981374298283026375743743901892349863296734229041650222176709405281041665609070541131516490811135142909487806956526259303667526731840903639761507447840427716630393505654994111147148537417252502292221329321523358000076980018068535148026565812259094975763958216188136554385323304995824968600196069133143587739765182399693692645654505444837866322039486990271329056812576107623459296563161956605579228559339571811251314443571667120358870413617569301688195594249929988404802628418545885834997104905156195638835006931099426819132367038883916082097513840078049373047782260695878898145665281023543624797439053355815709273330514389578188065109984510564951804241626670350905153319803778467644513056941952309410232640508057211452837414910583480835533322735122950507639569144752507656893674762522248350310184116946675883385260002248917972810548900712353544642440255398979692862766063931229736626883816737054352311886756631169686622396190742549468893143734847920081400156262394111984454888202250406504609614801090192741786457565995873612532274834767067910906843545495277435589524845627541907767018357179415452782435038621428795778189148090494061748443709660440430414757493388259837641843248869318808189572588974030372504868869681439297577766599595139177081245670054136506498559234309126837242564190214409836825095840573577131002619999012063090246915347862696644825689533137404573548896678911436816305207035561851085823909375985441244097241286007666642557530065317587009808921968485033480609341858493010813105605248986941701216087758903491967226124074346317489351988416285903541909195292559524539019484887214939762376855177390693695215736008598335635843201245701964920759691989438972428927109582793071231304383639929049732444849504611688399104990587612870492395144419532145804831858681256587982983504058558415834444667325926047406142305085984475958395569509448158494479989473166391322475011618102194498540880854220322999068384014120847200039382114766735185238962172392044975997270864829086466512499261977676682741446060107935961025180626847908393580672535571321365535017643268017648385285686587410723941719881652398061488152824010089032910361029743513839401803210801070960082895674795244155852677274005528214089847229247257445025812850738354204159559847865443515262578580054327249380124656674106540552522951227046655293589176545077601308078869047198594308216606981577519416578642208621379754084057072601280619923154459117122617564489309364548651062291305119062540521269808239118759562114464920361734427621937177416435562534634357677076476218408433914327171347207085531972565724410528992119466743503082730769301942876094055621072664940388519711678621985642257400339009812913696576849774645519576133061499839631161019269058376478948850268589091922320362907139187827568881069693874737214457746469692670585347786177696395577391889510021001943872967958452149345682230562054422554240935641844656508607653149132279352756077034732656219125054809149924596881411042297639824021154375844416349699491843747908182956376265215882311187431947316296606717039121330062167090649506779623778779523365841123871779883420206992684203819338911801756201495506143926929830502998572315153183707889492991595202677969306149690326176051007776519225853723497948493583856855039623965973913691455282438394744619427821632758502483312130558033814015758155644778452981690107083103633522734063413331680896432419902978005720737474258496331430637242643797121403684600645131128084898779039987707213488307934782293538783422405693946210972041465269357082891283908004971537445333944315537902148188727063805307986878102945760049830310560045255872360668513741246268063215914984217194037311058386509468918076650150554415323009147251770806854261737107386425778244976470613801936315686773834194989203376440650312179050684664835505685854047947535670347232676405637131858315622775232705095888155382772944649593211792318131960599465429584274679784364765662281733576964328389380691052948128153065978533214167444646295262638008454030233155703975323717876902453343666213480672429020805164071859296798619202910498385067127097887895877333221276791626190011388093715140427419045325279832999067794386721548933808206860028421594536929752447086871567422102148974647938985184904805127127328971143788079681921758202217228906253543354578234353508529302449921841716901717755486508320018826538815140787371736915877843320936237311621272717993987349045004474414964956865256761665882731751707895704752164253733073148810334004842014900773941713064155507154457396359130589954283048755922040186484956670735177877551994163647721273355648978856711768466695439710871332409993162842561868191029948152320442228653863726974646617683441534477476724609772431768854025197481925369970238973760122041906240029936784665382396986675410788467452427476801631552423310012500666706126848167538256169584782221417402895645354547417880624707911530832864741977909245930894034867701895516982959373361081505080322534474105476455639143184813282695789070036215266622899577430201516370790895342810854595563400822071620704108972898218222370699739160855240071901367451871935152194314847783484068084057814594617076491714901598999636881098301465792829612522631217807055737487754722641593827962149200316521778679740354752311815633930443966110653423529463029560137916692370244978932943383861442921228935904118054958525530816192182310484909600167824258762656343083473719157579629297704896485906243618662676040261342259425427270923410569646832017790166344802853042475364602964708035180140082624798428810652506643980080265869535111682200478363784026397938171079279410333406582764091724047949307528435182955693394465417943189405101162899919581891907352634104242108431254364306979386849950414195931299578149362780454924232371653035832363359004046653114069378489103458585215207556414615702002839515544458907987148685461822126336656678355864449988541004438508832657444546700780248451694268322009631240512129861555770011394642638135901360504771836242848950834954464452021869234952848892349082812065624357601541770188375327530322743625127953009955749894111930391128554412690567026350039776971722934679141232604697749973081322772036669976775601989001361104283637797633474335906375641020541238560123141112220337270893029500888419884134106148958710938236349356725021136532820490611613301932447022824910821432314297007289004322743794660405540516567619208280737855952752878868953206103121032117922843513665437277860285382476809135907985389068909029547079993283998899688394784911203480240312872585654012722964579969218362499402480467800365481688422514952316386381078953921250810633438123357166987357967745440218831942615353715856395711680405216826482374379185541624687507420366135716135677583172254228732783956574983053916975266758248748208303392294187808479841352580703286386974928095208533447001298179934597662665174609043511040840315215924651267868529816531945737246801133637620182893758798596223162598245790407246361621462994743606303666897123213113160198696007564136767846509421475989616128700765483234300016112630716190592323880516087785569509245352707199074453381281965072269605031744678747513150895601306286512813848876233829441758257196765881757465366372144235484917126738875905838288178456329482638422907209578873756631787251363155090108734495466081655707878648241603901667466953307600046503246510976068473137826170008977358929068056801560611277060756496432388726190551509081120580211255958856023309333522950140855901103802897664959408631296608076225363134140728328872158080804023416013649559649744771295715784235034801621100575125624611625909663913670620856020792978913234872016105193770165296278644336193012272194117138833945842606631267347636272841223144199136477926299276182243143410395675718454239597133032250566527183655953347195084565505788508486281259688858633100760648745355958025457904797438373137636989990512559440441798157589479432564832975157492885547159470285668560821501783296296396514014936005528386786669672244716863087099370012384368427303427592765552716285043053952894321672786143573838652107941792137761050947324770315277397230593630522232435001824135024690337336696318732857584162074539026590169548979570942582264970209899712694872667942062208332637320695463883696266587757827769177136212518629683428793125222183388695688141899222236126614096361998056984281132143744572613131925795920772452423815079465912615172871898808645415583204930746915606313732398984263049547335827473268454660516110141840348349099911047267497658750673701018728150234475870177371940058707704764974726597770124199761644957657374682073941809900712739607805527364950844580115550435194577290931069598554080561172568749002938275429259448614594069347237511480197255340876101121431849255554228309633779241409305372094847683448229974310822416297359468149343107382052902586924512466185206421990777952918072153602761328981412650405773773585938837906501406496171536234305804256588826954826409018178363878980214785026369515010119984391973597867731349240654838696322430692659414291759543232414529402228693308824333126855929656920268410938306995107175877179417643132450912677440662272225407696091535398659144424251631538234970470716821900987963763008150394168163911979800524668544712481688384716625996045585450469112481896804785789777781548726597166917966080880586845201241104375048618390336970381923508389772205459825381263976191371718422257015371683933888941632420667924934002479881334867831070010579226037300199743795714136747529294033373887985637642429903195696842383649644482001771042657346386727167972165304138521155242500962616609120229881637129719477516968402231530736428053035860154059439988961404331955170155934665469455864246620384610723211291805329533374074076380038186891848640196672714665191416413653871133477942926086707201146713632236712391051006056522498018255001664771228782928142707384896236161988998089917529153876688535945940822300754282997968693772619017564853410770155026187202434017964792336935447157281913334694684599918663533865584024771406860788436049406899617470553977776674449709648895121535572511787559867877559280555156199749193517084274654015233218005291894589500475629879438997417869226309154179933488919589898897767235028708972069993283552829265935730661306288458080261132935411418737696976390469286518607343067384020074388232803715412819007823724349922659570580684485926236194974618458407949879113120554221442476972367755861121344228102349599631661141580159657208485810654524472554147132256976340587654351244488852891945011148217452773342391555574566171455398970951834365842634552306976173207730620847585038253308683179928183646327925755620887669672900797059060344260980708940361466081656047553757340268118756168815971149393450502918908398292712805944844279951564313739441241354663614510254661597940405437354967046735112175171127951986827805038758768850199103382937237412284596842280195415932003256019359792278324862009082495242739939414926565204115097447871521480927225554730770775716832231640297708944695762555394637140503084366560288747904115835289982847426015893688150020054394489785427920606819569977205530251970868565142527056931660407510037413341469213439120075722900717541510561112247310474297316677060135393658501971996067206322036856363429017071146611318226531003560512364060643275384358834598247653390758149710683032042923006200493853983677492571733485411288013293258273229652306096130506623881822645430107942075064818067135721542973012028076349012675427915665767377687648281809533302665112072465329738598707468168208453970301328330441292276936641551419442753019812306729528947698329079533223953896455269291132927785901231563892797547131990696907449150130733511427651960625004542715698527898065802565377777846477050459469946563734227559724275790288373439862915199238305228473580669486524181702214766590820919824564045144504618450336900725071505025200788450029326853403641500168292406976397364216417690319712326245414542620819156006138078331043011847855018305260418903465742915819962736169969794730792914380482801548442574220951412954047395125699393146629238347961488639637307923033155988192861506944253838134833437819915825959132833758657216326813909138354010113000886488270943534612885570084752133350420313890325556391202796001265241669358072458441498719812516527768239436739584165803962431795073095423040085538861796518093987483051562416778699990168269771749437540482952328665682845397456178107007879499519812768029117797465892934276661287640907207351351140745675078408026149548599941257338014466873724337732519037572174918344309687458467308125387054653576646059143213656765997436401871199554881176606057162354230332393385689427126451413074670666272112391831779302663137223780364728910458032830807070615800993151236753167035122475714832657464414228232818011529040654239656048392363341948152516088171146574981754763324526134138627289093697382548531008361415825344546373447637196710828210432718780411294007566735495514932749810157951920976990170356433837107207753481128139032266118883552800629374180044945876498108538113812654357798407121907194733449478650458783600998418400405758092391515318185001660077134579498968778896275621029764321805911075683674563076475261675023700903213552024880251731039894883142336426762815541076069878949107534396675445121281379199923207675968691493986324999369350953646776059663947424989536731604424055304913271918404632344462881267947208634515925841686675962052280595634570805720278686943137843740850179724904076602833748396571271583951437288480373397244121972418253249849158636507355131787250970851060090204376170231686232311540445829162026933086373670892453757172064131213047003271603752950792275945822490257557178551081833447120046960328609314288913495266906785416499784227000617977393707106010873493981602952850035215425762480963831175801335255919288391215914279488738404832331227717332043826142696888280994889318360646388116774411216927129326476594860451664263497000147643245317485023554485543176200050914649325016395247584555006779251180593270836077891115018264690049533069450174786663939933828234833277171034987295549997435765147929416734734251748729398177787706292791417817108446676336996243802327884732384750324039356154774616033306551369057053016988612016444584463215569645307206533577148447551487015720171275767238951881713184975653633733440831633795259807694402812074703811478452622431027277398860231566295003974465855730569666819781936365399723994947068960847962413603491603252053681250632595960704797363615726176247099474800571602047063006326415070082227388327208876585180179595057250195302608784600928541177423955106483900179498443633531562026851536000390805738052674094581468162995823127651365701417687092872543201705561723287029205577111351780529744633008507671878293258703098178087344541629979938667226449905381984622380224721609003499821884602904485201891085963830326452047307596167106588602119643980514803880291038202686730168867302250618415366484595148006469043180060724972654669374824783821270457050435460647715386696983303991744396153875908876565006337137327813487913359608960647355593687297891345392008437034489213242388745454914959190550389684841698227453295022072374903803822381947247364596616986272578980162973145142392381908343916880387838404252056189857628686690471244691827243256918643048256796061829548837104046361863354175975268396692563817781007492888050389872400380259284942356812459009431927899718498725053610197566311404962545483608346428467859277056507741457441182431560020759432802277059886149238135213841198038544012171201835711563000079654665108501765482479877508587429105982621576853176777262432475229993074313377180024721572477895621313334658632544822778750828213750322933347647406197712139483932057804511402051380462647511211915714697507189893273430903185581143221171007981756063205392799142127707311762170742256004164167111130822490626183719400562948982216275564479616129257921993866867714420025473331106304082621134727526335220139332293554566803434017388583343066984326799102804391480685664291158279962975962919783431302889840726636950943537662352169121075007244758504198232952175351612451428317952063122356543675412486197097427099935277352948697215213103055842966075799827598824756838328879309966870972837143706676792955498820301567446143792211827082622809160372967388371069950311253606799288973527063160983549688581730470318931458971909455105057310577182431696295381820890466542433293972780193920170735293441262344066079979979508692726206850082262095621851417447323909332395138027456532723317909967394834828078652073457562182726151998911549996301502046160653720899903043560264659876465918379608572694192187869329039227384315756595352591876410911174575960051593692981912502243648694713822723228890003572845943845422771354960663076084040476431759284256389934948980080697822931365008298282974238637939174550420950808378846808475717626244354563981516190902984193112880004722654767355524006169731868047841080366044510528656018466445760471158487013476132967110874854640014793316952963415081860494561135898168643666870290407378897649018249027245707008240150180396749517918446495333951635701050871334347517122275731051726859676761014013570427372737222230941968939645882049342199385516002606076657285212402658149475912886329984673936852779807751675847957263977475264917643993193194928007468254049272820422955472345851162165871483794725642966676765544144011670422114382533300275280194440855787732907969970732562503670509326516767309984613068778281943664594457396718117415927928402422210987144815908223743784140701874739905439329959874579282870765407939994346009811090187359093732118267842717727633616776609474125534635153932522712372916203564034302873943556996864319381593421581880165107506442249812471541095302389654729398257768261539863446131043600908350872324372542543357349154697607475558042349091946187036388831978265007041008340685480232096346992886555310007645200394027804509734008190068756250853556729960098290722786291567415085122908299791050221981465579824855074704988533601997356486073647515332659923259260975728175929995480126725824680692843556153114757642870509642518789909726006288129710553570485049152478514222698722374840390668537713681456410683645252831109878128925968121180807260608911362593474702065758531152645537362718792512127043299168148957476125828551871135889880154453415988201724761300451795159948073906295900998036069761761646013423057018364716670180058833769853092306065123068527842505575524305651211822195602212337592503075999579784090202075042154985481082024911813140002623229621574179051336563387682215961742282976792213093691198028465144570530040244182809162259723068276069828603555026345817715998804409245076321386750583358362530902967395604245685719809059893308553692508937128780871361492365828794826396338808263223831943652002535521343755962915945122667208498569008811631068886463976501676044067125516057445620284729164923332707877556327060358364684200073837678686777747601017252417931685085470724151818457519615110292533997578430219222104693602532581463939677317958730087569493529944638043974203904015349050505024210273906882116758888393641212955097906524256871914583587140074906912597164477673462513976173588566127861160308743426376385457947801879400048463079167576673861328529399693258561943573010073783745558909337594041046363269520375648506495829784688805100328810495283315339593430623258936517190317145036763134938505589318599859041792407686638210157701785497663280800912459298220517309709349345629335684297421898836822699998947901517039648072321417394534472363336457460490657730481697032148128807207016521658686631260125514334875092859936334636985478567763945408511321750501427081248264876173251302906215511788721497763172220020127731344984394231006475220222884604239262522375323883065792658415843505984284030019932232852058739525515370770721740276599831178025599387540689139691940695825796770065909729645373071765770239408141331142870738392302224621553847158071894980398079940042603773865232639730316580517028400518079974136036391218984763057804094142876089117923553735211747603992424569101821616020375748741239371634444106334274343572248367355407006925086770884228909766604945343848601233162070231022853036972844398373675175695952625909268793593805535792023761070556531372252589480140209457725037263834855520322861093281156717319304726293971111202251220001299587257463122398345384317117617875469229856753689109919891442212115323176427958174837799075215441963833833422699650606498729138590127549489983839718408505445663344962440841243593813188923275393947655177269635112136396686253712062451229618280908072624391103585684071297508733622303400757261182690003472512158800035993000121829362492666370689303396645776840380873394923436918024422812055189935519977102270254228087339076279237857331180933042303853523598960787344315151519055591505199721765589937419999926855902383999348833142570763012120519434730037887613723354700746608772471434050926327362889540460160091720331134693856516289872883359433273801246786968798167190818949290151178712836931727906199482905065393752361583047124934884824197058429968208589053866097356584505153167063040760275963919239181945702567994022850999004855623552914684401200534015293620159169293914284534402832364225317876142739615827615729457358237759368302922312565155815084931562203102964538073576529918270695423803788054561202951893379954349429078832557664428573679847052423243529692296177370385005332021578325074611572330674732795552972875537962727059437253057350612689684265137665393478920077495422944152155563451297578888654875451062995541359207323671448673775215186335294755297676424659006363471134003425575933907590495605963352309038643067851495034750581550517910380770729649338088033877520698519560435820861494965711928609385167406420421402201204991172230859469720820698823604306666138313489900647641485970594119335385623776996498536500044537903677403323156360556439559884148555407233202707335748223176283584129497870463154191163655512176924254396733755477014287710269653625744299313471682757307667454299011830100086256449777796311012972967813969146252550919105348224554550071113081077285664651614009251803354205408352955190481838457061538777709747307364085124901590621420729103616571017607178566721692059067932856426682441308403370810696189522201827786502408549576877253984345534028329426723049973054053946475900507046502245680846656761444420066775350066367116850547484626815713267724593428628901145275227574045612804805701056619116940348851965616063870522825057156356491780378044795514514254092637954385803186248862441938015507083538152789644395868384094880534521279406733539847632910015971995593275598365841964205560202556743072458320376741935847739258895190329460401936850724135090108662559126776153132202192523428140079950749953098492590041268570221472633732731122088692658670556568258088595580518859498015068419617308628303217824061521813507389602380212246948656320319423488012530906849132217031123460078247309037934142852509630907096620602125098328265546974717105416344258845794444118077600675522904259531535319318223346085235248130633316063202857347318004462327772605852888719849129038732917458815177431878196519319864777430307647329762436838604060072647180212639264279209138214931806971434535005986241937079849439715175494609999580965011893341454735737480124567221613147284506513836348722936620683171465702722311652398760821508154128202863335295360193860787267650012275041520526952922964005171567234085788057446132167833454273270599350200303612135726777875006928354668981466260492239149750957402558183251299487765412507689995087762897040231212228999350835550974026776608375585414651801425502809366952651047772563554320500616969230909671071018300002694209719847722406530293106416976283080349579514257965225791878347038803770570611662587613485108488793920556325707658709985714016740644543910507398148052081852831185389559936681734007475841228552199379701592958155659107585484787910119685695146139557947922270360230536810506106527665425361476542988633504703135955016787501934258404332412167997117090608501495055463326003349292602992344619091673722301241460735260056005903721028151265845261656687889534750428788162774906157197452367586951375942759398314859819501460462910948647502619084917597941543743778960087659653945673188219875293346231287048031979947349900758102426210722431690890998402117092527922370856721582240280130824164838263919685949858855220820701864042615624075712085085298816701289760279875398996761396443809482169875070107267740327137745987890413699407678930736556768613621840087414549623688278721209823722591080387727622410060318591597153162094165470708719703596652373403293634910103655202883698387109322572036468505090018183345283242302143497988530959425541552735139743232357188329652883960070643538268070521005305009567176891175458874894331098744269623892870371744073924490971159297404910439298627148739685470802073826717619391393248733543689228976573355112687131446488718526807764254754295985534272532457370517025899617550068970474632536413501335767457640867904070081309020354699147835115707137702650584990832255227712139124442520416097919751847001391992399944110521675950535039490768754328947067683688602246476925864025211691977881499842764031529470505932405196986684029016894902104022833928889031901973408130368525484040208189603856506504943014028491742624370720546473142562672255254743588276297625205889606158844280642943823637689133821686823405069761034174690290017473702902389477209713787945178447440444053010905096845777101875224061481064423729396038609554988401118187344553706645359679378235859244609956066121317336783015098905795522144162969758980342748344020722547874074116018512593052495844232383552533152201870436507120476977344586655095641940651400331269708840573227409328180802657280694972213846728984455572269810066900331486841448021552154538994056393223016010975700886810868739069527784459875151139068950131051045620676419236179156617709132093351044217405093284861023882607805219715659767270799327897333952190911192662533834980453584241791393572017309688806273300721447553550497494797691966159001638243091871275197558824352493269341838771936741293967371016188558830750106101089706929862372032801766618735744813773999426852140656696874326363594608879094059360688788713346533632706441804896855162718500650464146515836849980452577191445553392906511650090548769487425562658097692153417384814362959514698710717528337958119424953237894320937259985401647776881313668036336622898952750600540152544061668151602377531881798842118549197478743274001717176337376822792288980217074683816468965345943354987613600101444744059379404884786152367304964382986732251355483971900602224274545680506465233368732042210833042041826698553770438144875289479525790361251327874787419697078330355651332600564322999375611410170045116822420335434439456202080166889350281633831937811585948891967495037129726003079892561063057362585489350221525023466654550947213940223991362132163221673820753042986764452696862000073737762759329045900347643516915917746365305157091665829633983050902616635945693821471714912905657914067101135816387995478423477942635240195600083617132761367983449932120337754755903120362917707596401310010035456115153215923089497444186150366374139650838148522690815465533115635784272709461423032796762281981426671472006482140406904139864990905478468269156730764807891670756717624408807627101939537909104562149924795097957267465145711830343998325497316165120093566903434818141771118863485075694438891166335768654005471754157052824995331895638579960170191787608366764651487500811228923069583798632430124950735258226030069462507273923144065656932563882358093853489727855666175659814487529007155179705033903743491602965745877265928085840475039180782737411034849006914222658163940503008535059288317441537108118027964817552356638376544151795513999688563759089669231976895803779260230953145468210967387637995044532404657288686731317179471195430084826492494578051869059042812437242165032551193444393849008162228509928970537099845634128883021250948443817968047125277563665011644817011685203984561840410319699636971055236280561859821461210749847435889816040718421325284216815840038404114013565142229244108825136857453456409875259369903471467858341886206817443176923159789442698535911067459266365496340903808965417429722662987623209070672216731083786375398048558940382880515286985495615070902873521155275645745860923861666026266006743367336554369491568091952040163423018680448542240644298028049714885788815108437599429888471885359728032125380165636627560023025667682340986982632258619730214999841035120326996523818342341456389335101134513823286711687433156449407787121229904705833793142756645481274154148047551484564812039087732019015557205624421526815744084572963265805466243476867723852986355876655957528604246510996691591408025536335186536253884155807231589241237246133016063629924234014353405445182967260575294071513111768391038077218954274681751018579684536701848417402089812058466480061431956852378566179537156277150526035970191951763425536333053341132131230639632462197079555222520088577172876023710882106410060722948427208279057162386617506160595882338843452937771697812812047945292715443860519958348344344962088307205037968408276419453527666932074474430526171315629540272023664768024147670600994672002529763920967422950948831842100480818149002173971267749883236771080412911192494971688415566797151288332045138639397179217439848564269863144817503670320805584061585289292708862348173238929192271168363242074069045897693179368441012272882484476565632418502734265959401150262300131093042676818944188506869578906078761930454343455392841757644287299834670012157584568131736327605745087304999915042763951233828429977658092493283850907459713522220733542375459497445765749039575867988646148151792197863040134460671858293281382616481118142555990884003986827918750540304667914937289610992795198173265702016860309457252807169465627134285034406019002623960608369527124745005383734642959614499421444656335324187775105217341602956454062408797818310021582831393193249031395038092692701136998549149750962369016183362851600703890604174427335503663998140946730612052365720424219222703575723944729912774798040256106677739847766884837558957371575115104308973493241004269852431284730566933679807117681838066750037590355859681321090479732958244268084311306674517210370854970449180678060761894454537293099482348298646014821473147143791253582285587400410807757368223883710772356636340384633632727033573659245248500144468226514911244567916247420974505917878350137800786681789806087635730865000347407686176430906703711976854220679052271544358077266224991304242471045722501067951113619719327880410189115175204823321926617926515851522726716820075804116017627546968660073553466840207497463924659852458317099394363521712950726311554384064428635383992456390363065139670466694765187172305423583122799143075185462523838316629971303574149828256121373232358265547968379881714669625456536597553201908513955879655026967663201938119590941541182012287713047423089368105750641681731356266135425102805034321535898847255763526276201997528051093430159597028569207038801954206501770188630683173692706091792590161085709114661869313507676192020255542637302629791551321136301014038001698096703337971962111844810934967583647141852588415815944215291309090376060232436301726986208430633151915482667119293681857162100007049036258489827768695521016171385936034578974921705668938295767958987382165956605387452840659357654902375223794904303553263131986372514216501602251703951884042125465213413042834049239385849051657196395040332323762947088069252183097116783918579431580411072822367322370608780900336393941459332560324832720746413285427921516635632137166274558170617240819438222452953066788549834713048156144191621229532419452688871621137810351327495992109202269568746644209070959371775777160366930063126910582479649981676525490788841038351324770383972694471611831914201467190123927931388899053494946084889253422810504354704749442708371639618672672776919884076931325030342716850414837149148586302582876963352801564677833460753600666254375424589206752203776145009758471620865267688128244225330508702477720949819584757188721494140276396068299753825427232811220097322917456872424984329497422051277654373578609731730399263785403475919701819205392106668264395122248786947229547969404542489851480406400985196050441853307177801428435975878908630026860236177811777446042315283080451854081041471069962421499651363970702966910742752072102300757105090700145567507468574264666086370779066385806708081763257919111725969454134733791519401346580195465655445978164659955312008573770465028402481868260366926183901374423859247306762249356109677466225656438283748782868756393260755150222385536574792655070567595922277403582137564757052554430485791783523924359497411165761150971827497235670759548266398056597100025374020398007600518769958193493390387487723435724049931310215602832571131171649166774892648064184644433550107758155910754569457449592785661118706425411753997657519883231345024202909059305632320985175356347425249817592016537910000688517809119382124377341647978065520138228604987214168171322247517465720435495913671801712438491336479554211724051325144486562412296155050326980184273567662526206828277776978382214560220817907982715280904260263941686930332382826133690065523701324699773337192868412058033692495197221340821790893633519084303068427694494468754684545270873218020104651674450291095019799154924788509253450258873711669992134381782913267522128483150683652028214580094105376733298733355755540350476487267924934367746404702138919954733632490917302638396767606547996481297568925305878554626644827994139255967638807562272186455049552557564688900552442557252305961649917780907559685500209946558640576702493532932114602624971036548802884161842863270023895653051822826921082733870204306248798195556732254428045550737054244981906481096200585394508191501266447883990375666191298671356034696313015548651628448092738000748947577270161820249880042750529005882862093160598793950727092005358127707365333110258292558050333610007857393273161161354704927894590151702106593966409491177914850349416174804625349592155173063268007509963312889500037228980451197273231337279023583776906954908388755781632306965849626179086959685883353280385914880640167203088159918923762356260143477471407466973289100111289558656152891651197090940826310752762097192412528869783395488553280569719785058110971763516960027011075853687379934107342004657684360167558147828182425444027634209701564508948813220079516605628556525390105613645360812483227762702673812329869621744712041906896606463812642283553592480837199782732095137403094450390010288408606640735717046342066942267640684933927989063724675840536648232661826157095467146444607148032927011608745742068306009589748495596613521239001597552098698487510411108091848030079046636101402155065954293325518746414464293890751735164405582325769728070682933037881282015603519656605708631776901271490475455970863661321285695170326008869418357455409038938327889086723574285469930909748478964941067853140559631214569764042019555653345234834547180168873402545394645678298881451489839018165437825952212935875324213141634736711897229438238908258619068964013875607437612463224966272680039146244723752433582523949630915264357987180690617177192622708791383832950852224760338674364758711557426054206843640123953177277257326985470065604895172820658994626046614983663876506840107200076437220245380720608286204797319159940018373499011043160026344541495675881477814290207037773149355703961395512608310159323833478562955817532157641519053919422940579086299516098441433183996071555872831455019366749212353265335228868446499255155545911300254547756896552249663583981666052851302810528656779081674093680829295891137010048809118482135723012511857904190721268415490803628002488178740466875044955983753377945147391503802074909753094231449230693622745224966667397839741236548785316326963879124714322947782936446887621714364742183885352882773029361586688596209742148324532983413006303830840095104909378409437528267003176866100070194706903567874489344344284425347814960620665654771841445700683002150460194700065841618183068394498751025120512759690878637693714961823951781212684388898757588920481950659820411220667754483588766654340922232651265588994544661414161157733824578976045607720408149451045369747113151636834085787724096526376109078276769716788111208073918665759404167336085103621292564604319454028346470653558900610994936239895662625418205440886075118452753280346448679127687215906949819101340780249761742791602057953309028900317927871328573702177430746925799769094040101199380514138817036145238958703499203942110354123724567905446980206858892712742514024804806693554164008952191449342146452477724654250448041934923388512593166347482518812543929749343951577320583171747841838267476683195982944579355613463289128222925942166842468680985145447516848016843430387401352555975357771891522039099787250301911336020303105589901323331389712022227007299078966391831400802121070170321104858355370986807423286858655857722631849886534591883119249606451750902490414424744627211828001377330723924918599122664801999092889739024011460379354714738432050053626969058195561845546985282999183108151386042655475100255213418321641745763982515282678634355473513479390641268342119917560718480142877943247082216415513739262099505902182634109717900783708526741770062440638156668751898161102939015696727478319876780529878912688107772042648685235391018697612341408479245433268889622184564014373766845388769596041980964516870935645204794844579263432694018222201899715928864472304780649258122716892593490269652722643943236352608345221761428247003612232366075066269349464847561301589908764715352274833796884305245233408993590456666116698905849989178571529872805735306178967989932265375544843994013415982595574629999861007139873528081036137312878256065508331972228696348577479544576052480123001734428402873166166923662069120007494786960415601017736264078610171178690807409648397219960350271738336246182332722105287966537112760290135944093184204486806587886610734506351827594475409305973944957204564887013915433656865795806095642075628920912904064289236681955349423687339451985333401075225683682996989122754483294158281457005610225673415695441658897011762863101041393627578729333379540567116303014965636699640167761330218709933523482213610805144884434968140876219977169020426748843588626874422179154978255870760550364204643448098700745297018158897174030755164755602533231266636886821898240023593815699535598519839634551033732658368943043141801492817952127448824201293283904812890493943484269838365593505864769767564827328377876206585895778644763679803558707041671325609116307533566545278268320919253261615233743062756676615901103304927287288164030362749833895090516414557393970170702006652315479851597389211270017259272825596010672172958115773766612956110241297390414405539490540691463486309228579874319874733753255642656245824469899450797350263306778818102326720986882607105018340790801418448682022927343928575782958159716762437498846354934269860297995361151179014232826225404256463626773775033138953237806952002253628248501847841849193229868601896390052246155552788393878234665364511016697938445758129236828531844299168864995640330499039525397383549892324036371168393918778543693361257043250356312167570864555049873491122273482560833728244590269638862475659862025913567283513402519139714324151896779125883124537526139235704003350019468548765576534723183619047892817073933667768278723574676328940798301177171403078205638535080442681914615476757121288069874851012151015492709743933987140041257079589322853896101264090994503328253069622380076063553504612026142278139518741157022923911259047659443995692179188499051601736419054122736583787411094584354045379680390608950744191197640719948106374641730239818422889947583593825573967165235917713679734428695080278320896279608511051709656257093500235692152322757419447172132711503404034834122937202413624596309888486316250157216432766613710105255528477400218587162859398461912531627759942830930781363454402908460532571493863978084828398071078588669545715750025669455988026353238751826278812858744169909846380980618744312989105212456958046861319074243365686683485810874230495996056907795732279390175448624133853442641068185260223713286202203930481275888734018387676736408709929300465554312719332660078388689161567639886114972033586645790494105385928109233747417251370562556185688750451565795428987500477748445765976847499741541418788601819986748435826278996148263484742178869812094995932594687839201903809811787606201376037689270911178801721797281969129594237130589656473515692089194082712093435304524952735536903318672620749704045101695747800942837492482667907272204332731381859370110277872392920364233423826485250707172856720527637984581017557712604094864919723638554115447233704070648222210675923216773238745983120692280460742799744819525496537609873862443672991240217892683739273014909516666265155935213474142030593559867801384461801397446214090826417426563662688021800442034216001210864965115253936734606714981626825386940911846450560051381498350232626456038942551611960869558200960221667233791835222745330915244744691324316126874738354695424675704317269457542734951530240006835167775250643885990582888345869254749190473004750384559247775075446864869338958609602122470714122140066335688674406793300360566271661751642014404335792605569674963510268995089900707538336968281175974805966230357432375552193974444923609714121585373364251356115477229060922211707303949734214624211775720591514717175737926852271581988960255032317785769111801545809472026247176586761283152742566476263669567775219718811836434713952442882986924025629560841712031248055939057772502696494198464637063095950266269135727406517887286753412725103801818531161238818385871813360010122091466357786443645642223898553466968131853401848380071985718450655230943184276784755936761842617288930001819260339682429562620709973116366279421154103287208824678270606620698313077687439205388574719666607386891535721590019481448164635236546897812900863742227050589971568709401879851219509114278486850535362924094250023565350367360325691315962966026616346408574032853824391060023290273182956082597184874069150009488426031005665262578055162554461434964043413042760011266871244872833498139053228455728230683289580775499685555559707760158223451902487399272374369213493758921269907706644525353627545287187123399899017828221542648463215927845245161768447702109548005078071421587602381875298239512788057384650695200006256255953947630560392577149147936340887564763935174100874294020539731998564893213110687120890495718215930279558387430078657477667770520000182089300835793593384768766644488673065231027969851236473101218043392111025698639262052248347759888313200317658703838868396005036409454058696853373630262951193376233371043643855866983670643861726672852937779119515681269530341517769981597732783709694605698301390519390603589157418930376048768483034243387375533548758929011035972214738177333353951215743916817933242243474604736143539652849438124567050376345968738717735850706051290137059217778748893070073334988126379760642780231253194301416632555198043904852393574645085292990999966495422627918341979122716980976376650848039018430211566382754483037624564720637603809023506805912780896368931955517778803048126890459893331287648823435876167548731121408329422542719351057040549837220066168847546733759219011689274246749001317292682304701867249674331628255930876834446639413930969755560578770302514740656912259868510588258796630208807136932564566343014678299246171588154783985894080114866312907536883083334892421421687222303383130547220282864473590730894322726718982921435225159498240882944112537100684110251829606100965813089910291316939784144260932210230141032916347820983507394246986396778218653138333148854340118901085653643088340798770763476946992945025755856550406060898558293445474702979095015963557204351956548080525026736976095688524312653586262278558694982175892761246718450587185773946106231029729271077218508254767820515240375221250471389151691575331485398876629604852196465387373943346265597453293218567762551521752061087648130188109040986991571031400601316002756709227032528853625595718033864272099538932936091563286052760098139296895453899378975907274817843267333429085537604993118476388168539977311728469049522812673699578800384039135764366393845684726761819903453811268906316030819475777751178774534912418109541494086006750031680054763787284011968699850937847046097466138546130283683319332418094182449600090697986876544785171633048161063080285130975609484416323080463136115024374589959504366964614964627621553841967690247898752657925657938368242266136658316725278123799173629149476326971630513070975615288751288892262015655485216053835826917289360897828059296776299166511077757478624974008901345069715477819024825668028166513206315212079970260619893164311861246990856704894857762035803002818929964686159420052553398985208152207779618658093687166273503147440981332723865810520782525404788340080827577076484574900792770642795391622255152110544841319507564596713347650886849399264707185473731233101734227060656443328285065847167287003827065618268198633886216467053455581409534480817871159827426349632487484107598953644184304658907679448277733128887937545773605785181334400525784663554093454057190877231064739163966166173984477838298123226847502791652343296589844907147133809566795886844146360402775861743477611972013655652733956633102173433477399537568384786631054351344542435117105608755228781345935553200843328779421645920998428977879010728231692268364075158709345567679789693414789296706641179124316355718362594891180381870988920524024541481266934157731545230568600934709642468170173865295940147069342405820806217637520579472838630714779181761592152960710994221510440986665050049596266145397498378934763275369280506008627709608620610648849801515241258148026193924435364057458750343094900598433991601824478262291261951149020413490302305968283931847951255190266964525823270305028237509483324629329785622811811728700085396038299798118777132167576661725134646964134424696105521780993056728301999966669347511800748936994640001404440394996541030002613128349731500564373460613176272189891054226433777274227915207595897143685915594902471974016543966561393632428348056381894018359920764518646216614971226995829966618772909522983819897537191409835235882008484722435674221388076393969114642142329126433341779697974128157240219160249004059929489947648213562261379375876712998776651339437095387137647520580312654554078689607393226223223468813201640803006045013212530378581670372054892197468336612208885494082522945424829553073441347462107051816547743218839757824684004106155879508732708328437104972793967438882997084983928119138921372660571099363788910104705731567855171033757598669027873697882726610208657080738638465820907597979879769016648764729077024872288266069533076507374558601287438739048716635169664069524455888855528305013342966274322975606461611883221009656345204361376405817027706199685217110917352516904090868984932915450888579944807267258911333324057348642561498528727998943206699102022045478776513800355705021973860249488176829916776573889395706103410994310094802972769666431024174735189629822991228260578206261994676278608036659064695061369767196545946231524737010944078914484854382444012535463139557893171968890519759800598019922758501622224203668758960009212853343134164341035332665145006946593849508510374154095937944161972303803387092262372091614735217253645779254468427223889228079918933625062996471644125079452065959637557662285870053398654118305228854702436721725396893958885121394364551142703744923427667297657371570110272742102032424900770517900789010433373900040050334820707432120518686970542982250892826328578479329445199217940386972969520223886296564443719533124674217717921383672489090601153425618081643132593953599649441137745342075175381457285488079949282529746118231038218726661363650510569881613913868375873986361976073708416040856896544925249619484365230885422876381216416538003350312748112829859580533422787876867187038605343186793219467032946462700017547886637238895956380041063154378401931716093931409308986691379435290561090281155073368577122059811388940738467992279516483727831885280267506158521511528044352625765351505020041789454300387481859541720282156339429255393795387432856204352750795638092169749131115037567345376740774873705311019171168381870065609480734855794301363311581851580631341403002041923781360883353182724425984755512214760228910516890762784175618160111692706218961838683671939023619781677696176220500898224678473717933273507650999498223922058819796329286947400166869476132083943912724582710200707992926335189705425687887348859023324959103071404362229716960124098575486973774332431674695561782955053136180211742919819722963231432883631174853475832561200253970729698999397108039372590316574840423954592721739561653083180986964737698568999704243176774382457218272666221693892279682251157417603740087635555405883120151846592937550759273030138476115338802699009560634386767214828769699279647553547986301485955143302136043361055930389672000473463647011396456972515485884787286342657069860959763894437407383837312769267499448246272246923406050584866769493878849873838995619344434495337565970727805021949695791892530708027162451327408911275959810098354540411930109628837178985965266880404877410472640819544942347255229282799468574698490605874146878946984881870079825698144850200364944809141140135234747716730522019127733828171611859258173274753305978087223301586203222122677542929307722077597049412214802235467020933225189298780712275465310192036173110352368900034673235865024123972889656772813883628427307495125807848228723079943913482312686088638367906453241244996792146252945420896754182330185247858450509064322191248299947565979603064456400540829936624652408441268990985238105369982686000219504416221206636419658476745375723079037124074349966617822037038421249281933159963211896448539125858330087747620311569377123140061661536442248432380451318415226710255353394450832394373238974256180055776086727865075297585215243773640883091792062703412846570105175707320185851337039774488903235329655704433527187851565777036619922546788902595618481800385960709260795347335778964763265403122757705782556429501695030011439346320945318042418997207225428909041453026998836993382494074277337631128415326232132405910734432376721105474607052223358362676624105267760800359298985551538263282913027643411610118885032908066361272792780567690016492962980684715791567139568931935392618103897311055000519229306665520223393887329085490090252088001086419005688311745102314759582351754831403949183088952533711424510694295449555355616123205594181790116082259204371772977430357839984375758389909710677391047367286661901485205068704973459505758001820369289566492009771909906548896792754564044280111845319103553172175440754169712081718289187662599244556573085558057609690268308658002239388576171612131001301737487743251313297084695605125686697924857944287544804240742551204285583010230868267329512053151811076754118079688005687278493278619115645031267567679238025242432558669211193106675612952757666142726364869794986750972033317737502026886907792225338342044805517355117710971705071427656467891619524602738151948441701138554049510933318056935433989831219694357163769576974781188188005295612246866208037429570276489281499092584696884396729095999122247077120588890861288013216379142675112416208625428170747062411748710215301699563766203746341542245916138983366532386286545380160706216841758077066451880162154703621873521655181366192658303562313523863160605633810588421539069549687868998903034492905362009862327462400506457653855051783275161480331162146332750302447287149907704870124835429118715407240850868808893525412496972613396730579393551137171215188470511836111629253568633058464597104584058484802797917649289980283701732396384717141438610273880033607852355897729816274003843928101744347016297442464734295631381553031391162151730072531429237927490262104693987104338831361879119087290406547315569893712132647001524954688312409391185685823302215285728168546435539424518855520706761024082023333597872183112545246980228746042853741840719439807201471437967690285776930841184009357150785878060871262677133086885536203667815848768857950724666525964383767522694437710952525063315193051664288759865378358114222584446379233465756055382830417524925167749685526265718875453228783743814842649340091070587915203211607852728364625113332378683725068165238088531995663091666933247391792729390348582010910073172928092721502174470326454170874404395005925444646546671507194005321415012673978447718638686202929112786300171552496245552043953056554895317567683273063182725678563404025074139187822620384064977548018258627784338590221111698074313767790452485685677918107808764798532284264440925099965047313011654461700706594613171306775345858663873237429555990410532429144234934793858049962697091777458566769699407121151260780731142680878551821066970249907551839817709150453970441855659672619826890849903514738476299648234765151332490287617071847205031999216242543016239502810382540828220267783944050989631445591255439529780417064186770600867661658601728188696200728365945284708112678017787122783046780983319091564048067632037208572369300534767173217154075693574334613938040946907730463884589417917393575460299103690682595482170792908420628798319526231870562082688339803163298787368268992984159145600133915638476105693337082295165222094134696131643633001127471958038741125970014170002428009550820407819063615200572590795838781563870741749303942488719359069988493352998048118689003062656819273330555224039652474935931324062365606026422099527268421208266975580634775498723411447972949989595893334888432015051700114020589923489165710659916457735794534213524958726848885836584823255872781366248295294799271955057732609081701885346493144609304534277759864998131918150533743235657000939446232559434415037257952811417704296516730760607236819773611450595259204245369201006757188172349196560516683384044249645562350460397239950331240800498641253012308642815661875442791495598541717572776727183577059519321838258509079087585013426386931174428440752654650150779479472489833406276537530939263661683477158672469011549428272461544633635130838483809343819355903735502276442583007115632345183013705394077378186175585759993872111027160706068772225893741414731178212692907996553798638445920073079376451665146971221791304976067195434781528775090456325630185421022513100573753311361495935010566643527277651996049514580144584644236575756418336112082674820984013541916952499577339947033571875939648864559772052920210578905596725691844451004865156352363003224658960593841276942686748883651771631932660756981067748581394537262440291406663239900413293002081189201302588843213281493473543885948203810453470639899909448741564070495006449326920373915725726953495659702303593066854052771476900852615533628007504556158845520642966405359390692477908116632773927619961484180174447939539673841669650171631696973298266116092614403737804308165192411466389537101890961904205974111726275811514703025326497739681333645620048460086569182105445819791235851193678544818259617710964228051521801168360605426380534514865401839807011609580507180710841232850223748022042229247105582838978417972806055190638028890702260114264388750888843975865398847997922510097169896181479336981107822237574465361802997680111587700317292002636093991585621704332653227913004626295184081223076030328137213125095057371339550209286518910171997102179294860042619021996561706875381874975148151568036678662648240708276565487875265227296263244488305770423656232152208100871836351935770307179460258341751835480981944059484846851275012282704593108506004474211373971179265678190902695924363649195557769599324077919382340713456524743832559557448987195418653630778701599773322540207789320374677528809254971778722277468775988580757936062527520813915678498534413281323942887098899489362108268984538185250231851064043569449562949917851850348383877153637171194960319969459305373546697073763011582122422100612709977169889666015502184831379165256698400768193434309572284637234188736043624981461889589254601272798324218900891415345175722268243600348323216738934326669316719175494471863827028698334033329409321569432700427228143964279754176404582736528314672846780957990733570818042816623626755417149450900271057704052063433871742182506172200603114513366591254898498976702410567540316702116812058751592887907602007448637447176588468809096664966711603761628348584589935264969526794171815310820283905131149162360251122733936282299769558169672144347497679210634613919178841904753767063772360091170415558311229508718740117381669873678136265574861295492232492452489212591620511431183156684333567780794104351372436965705808713859609300078651323459859615147024559708587769194351813909125377239721332874972367785491403120101606220782343177660349204035894898805565297815907340974508528539520138786794446904717111252720132096010880282933319290002539705851305904667646617260218201250775557522258759214498364259968950686563856545483706209662074402436881367332544584748242531159577233938948672387856844722238581169595655165124261557048480087092830696251414046495980324871344328477575043591192360102880744671774492104293530570179192398230120752700252568169059976144804158505439230813036674760738767098852217544397136364843197604325487483687670583888302734910008261275883620201855657450554840560852137239141188478262726500400554666062422989612557281494114424530803597985390178536595277028644146753838785377947118783058749112208192363554600997116925523544543244726371284776263405062693387705506085015940320125435447989431801252659734080765465745967697228871051277350991638142185566867198814982220390921517064462344032128957282559014965166576087433720977220263188974604914484555561451890597620384392749590320677950797513669443990207177169573093669807457065410346550121087560804550180001322107738224253451819705559159604084489096082160176637566003809893037480195488492348459290475131626158069586785964153548463154360768293624403490043430377118496985894174065409133602562081348399836477090593705257201219239283795522955109137701811820934228450952445760275560063232765154854336838798681970827170628803631738321805649578157399459564028873955407099413326557895169928946005464749419836370147417085397674322812873814970569150944015215107790623508212494941420628807735432621549294134926788188281489437931162334537278747063779015850140035033549458424075757652005282999583998233299419812101791829800027264413559861962431929315112639747556123181596166889361937374198600139185367459292926607481563179237849425167262063721304995396270746658293695639664145514924487548723368989817879952514080045061291209836535331402356152368605074826286596049428142386320280144636248786590269967524900736814694878223833464896312858744890866837340354816216377596268477878781468595020169152712412825178210080276564988432229236588272531008458478941175653849574959900073943592531777677846534983098474852468312125526295529789912619117119955873439358458608092450110192134420156888773753118161161331347238467597901115655107898452582999189795108198323568866511236995171295819432654086490321561469739618842992474857071642267219957133531976520914744247444397727935376147561103084277368323254096301997226963300386312436486581062804914032835606085516936239326278257079598015403938854324023715978331742992399128461655954178564486522721604424670164819393575443238993165010166438894660460694008120897507814489150249052643786107383983752870375584075407810798309026617539174663846409431156631642065708556437228313521693826498672450803614827099553169324141002814905371087853601715355951020931675404979840635502007075802475482959143529662403626800533537142543315613409679724129641730293321257856142045460740645442493586724300636565370814078938562914793974845804270215821450917688053560492787729367359657787631109287476701163484556094233051308838941032745294675096348030771951517545140450894440519910712918925711275656069910781981885712911191033187533923038961689300960638362254841061205741793115026146265815088861681114465302914920939096069932005357145663151226791882882282410134203196638090283857326087860343637219815139846048774684077208042937568552416698597326495603186313359033221455703398582605668763253902344480471721855208292505499338865533942321322772338776444179893286555383261852840309689547693221499401263692454585412949081878612003756601161444586979529739168690833639116245018733025600683062944119872778923857029062528759068688303268558576745221348187077568078441280157320152547414806682815104852754826635430928803373927675465854491742710297029222004011006386980606862486222998208716590132867634066337428118515282216891077743129902588364613930232461056089903816267575432113553760321213947795991061999051044997249703572014442026030673233954286503466257243868246817240740271081686018515768223116618874406607672965795201765759230527938267872662720743658232450291471876097578498485204065612900491478544827097694962275080011392019522468897335851242410728495538119295246911153452151208382315676316479463245084669403876039134520673229881265611174662899244781556303478572733999233959392553395132230847834565186673259001114616870040562891672644185467502039392352307003813282119951711277730243836641348083251434774611248438925921991691673521016439521771326165529643434772051604049954790268095788947304178692033036795189318040344040990770454662793707778368159024270751418973811210690827651621049541204802878948139635441567714784862910184890233824611502285877895797955512175380846089137031826318962715530503443546424620529144817782386893830094350018062733557088801573167336118637839096389335543317227098342951191535728287599060335068616905723025452675501804491750693740599819527454585289267707360485686050709957295258042981195190376513843951721746595905428150665742799875780528685760341091348282253196871721084648057049195091414969642154958998705750880491806569265572262991747284944425364051342971839940398954541386844933242143404777367583773382746960232681376664098832732240169140010946285194783666602025433907593933293439074020440633115666176143741545421170455980551644892513157399971445117428979924955909622037113722733530422276971540265560786548812699222400587146889038838769756319272421728681084962780786811818269838827880157219181908575709349998708992973628192702035808614204802234564838757069503267352137540939567166807847410933739230939740154336441318035785178853699397005817907483543215111014897997124255030403622025472197794210934637068606052330539463549389599910708676223987825748442987299106944110478165247502037952378908592239023547399342122430837660574722745202594094815809380210901151490204801034635555364150343107754938052711146055127396573100672715402771592325269433550638826704971806793907277945007579473229156887719961642392457496896653526282664281471127573897156713728656156647141463636130021017760506636503031080160166963708771060042799317934049213865774652021717470290910796535595212528882027131310346748263612768926173248289504203506621279528056162790174641661770490006961432837721213560899628106847940492795926168417609893562384692300847428195015291866930390133237751318909834168232858339099688203109804836460373615423118542848817090552070866642952036394309965607356430933514023092915787588344249952913640371355184661080296149715982636525801567814239920899119337832155995367279594641974528363414997431186696834858255371968381771007560536244978869545881199865496851881916802565304582776397170135978807140819534873968239517470806070688321060362514962804242875499777520385332387909744247427669423164702248433414753142060077561703251225930228664751798395315989052265996637664072268893460426974431663205668907503770493116980507715306936311978284976089657388765931199288179876947039663359119270917769561946924793035735185482938963411201328156218611651520936550484015231555336762182332758419696613766644141027031247800748012696706316890826506543824436241912527982373760584563003247249947362778035381498126238852686352766105130794245821057282553918242341837418817871648031587376591045334995804941104537137480802137079838537503304838842292472650849443061007417705794409208590465756583124070729817532422641952224637248718706850722334696895578827700657494262360663534572715548182074370536599873587812857819175316400120809151430110796384043490206796071153631276456592695544349506769589637781877410452101284983894030244385047956165680845635841500089735029625514933978981251504373997225258836118164134430457873594388522854554864455015397747201772636992304144895534688597061270990879221964204050644327690590988998062663233638761322895350728378606916019938751449797405217165449975670580283989918944678683285508614783030460373999893194149591858109468901576462903718422306772768712162469689223894315460990242967583174804822290142134711755923331545195286853515016044902146423633508499579165614540479292789573434105236828272237029342597334679171189397906348703371518665284513237296353893142781015097329496917154568022120739254740926377695048898148232020140757895397406368243327561151344754707724833830434627923084941349859743605504602994684383678037297959904953923054638487237409696536102471047512209783992871540746784275930589372145385537083890765140968460106055862465766655807793412636976294999199053571310009760348421435708299923080410598312701551655343636251860242694072775403485421513051445631182356824631309006921597746161121425669998588321991747315337707692094781294487037917360632228631414878154459418152854699276510149463266159469711019091863448293805504527823054669587871039327777357830778849687916061095927418026230572633929014201650624894050856837052913402772818232468016966331741897193753908344772512340118199287142755919808753667924129272851337735340090529986490748933117939977345496105017185902838771969444083297587395412106528491376148538265930828543587817867765390461737558600707214758528239249689410742582664189792929459061871242785553099946210723777572709873911041858291074165389336577921040094241601377375613030383049125314883661500607494947296246009694514513781197772342707457711071989311477674104274189739154767847040365074066109657819054251423684087576640308226039318066151864100129601593236690413072943617546149836434811929427917498161596123399065173831769130870361951234621086981562338352760357816285364590252121103134543849998622834521722771972254741097345831248429251675307437507193507184716805619032114739064441674302819758710629663616257209475015923822954224052254025832994519105623904695760866351742509092197188514949885091910310407455613168993363633897487658828169111006052179314202183819099283710305867815561472767767393538903721556843053192873345724980722075014033250091539940808511211151819678972060801069573200173963386287182374159580282717312187772932725625522653099731421452720109826555012504812294775792625075007070144136334695296750579836391736221132549838992970875812589500753756654408857629105899059680490618263353232601064158116512932358483423176936500027442968733471323416475640565808178440747863101322021808256432306323802090093051630339941798950805733263285010906298699909583204914289604858069417939328443230827844568093614738582850131751040656042964159760553872486540720420248214169450327403727660314989539103823996091852932176565697218233999552282217355145931314739028920908797526697950436181720036496119489673453828058075304768151007202987181827898229841490972103157606511714555666669143850072741723743505049103771264123525365488854259410238147154187501582213059570489691288867853303297075676505817531985910930582116673330783667386232204509739208804408779165406639989036136540356186877334441992729185782218529992465522800274300928655230470404854087353596148840190517452898989395615377787203341648771889593857772864755288275733976214589352216028535508558651395153421876309268425494118786489071876370761237614132290051477335338074662298817972413558234214910692630595466303359908107028352979031751739504870842875233826678871503801829636385840324633811011474253406163133693179446038619680265240066052576283210474576843251703955986542528974529264756874745240532279011921371332864360960544108620462934839345589018988798287340891107954148225571610192357685124716533471678051098049600560973565190700834857595378480115097341890226255928804235232627400350760072611995471034691542236565910138787679359107137493041596150670614529069276318904805105292154715608003012548700250471710549601013032536410490840893595808038718277256263452665976332784830859469104676414981368854822362180965216017470091287888675807157525159462089154312786555358343446548620330703281660176965855663861241757251061736358573043280972566282933584205726021266107219316952637700846517351365590838275137547051010704020610155296653188096900176911000844513981661290784442724825525251727200531027997588327072716468698807902902373970302791460213539019104338289116769402573979414190130551855986342326338042417879631015640637370292639022610315852565929917276844384413215262286292307628417881949459719505012598814404854670697303398621487908482824848319181151326463285964292791951414149535054233948220001502011113988972538717960882097736609670612890149287780643115671204961629184293054577951777014592877021411572587530748564078707221865162333634186982270638833962659433855119914553756323697810353447748032605194465366543652394299692902823966485053033234798430047986637013008715730473063333615878890440008289293758300830650369057585063676643423191334004123657743293770564495522584997730787785116194957151749892479990425624205512383599188556274395389134108915559508823207920274591908998506113077074612935502486608897468414683800818702457039355205819412853277533731105431278215338054389687780183988293785574668798755785482741043333097225967657460448800886631974784906632965738469419867835728085706680125672054694508162597223157215027663976252783349652416506641023295804775429218128639564502723302000769235602615864995157679753795697012460200683966508518171360557914492786256194629037447519219879984031520311761916449239861726619508225229620809561994486409120969855543397766582545930587527036894553952679298693094669180669570581184916672651546394857508941395298642650790213404988614761323903465556402606514134465556802612435040995079894898026565319421144348453659646025779847633804507727290267288067642814597087340577337155071304800507998794939165812013918655758166961729477400090533982192325844430374958281432299993439701240885522672870422339951085460403677139392509333575471795348814979835218821199056585774304645018422573039443411999593109371908534282535248444868169690272220850147260422155569467505678244373376808338840490046833821090688264499214450330045033662676738509962900757952361720405112652480130775408264105399348131735306032846960297869330485727092199539814802619148746339124524272303269114864452028272276096033952979159167894850927535194802161287179775889823725973012531772208579312987501072443866651051145831362854267708128158169170279346272768626874651823492858306571016888967816706279232054500785361915509006944656586214951379872169685600946507715058940863337616539427479913458748044351181822910405427642537488165945015157212667536855297977359783717264024209000725195814423573641080463689090090970092283266959567979080746523172734873432568700160586921462160262866475416605062285814708883085236691163230144193126781302122970501779767721526359701435541124580326934696019735002928378432787754601378818497360877994804342476521790708549459930718604217165924156189021990490935113672105415674125265348840313218906278290898067263393908660643076089161850806643312003754474419158262206962143714379536078566439405933778218978782549811817729625089274733839196164094209762662953840097660372708508101231013220397813174112624459129805464524373516458403786646700323352197625183949282702801805113426554102406715271053365693671362324761456711919973976433646497193219740954958913001935129417038448829887371706314473705606216265471500024011706357629819540163674970478444993356714934860574642225540617208624997064289699539909010658471096210639742918582892263397953845828606205397098028277575108403833338025499735099994975252841052929519063092098006356015315254689447599135178135063824334377199922397925938756839204738726094959365672676098059828262372235249880789963213522205777940382420166804360944705259556999886830136114439342879583412403654914912148277016975139874968392572821600645711300709046556803199873226611345265197731410887209179422719119865632482402165782499530705936938978840852385609941434664690521724847148600523323565653752654426366679400735472607880851514552816780841409331194326410695732033887618832054830981149876938825868022651908462041560812215172079454371176668605783494894096598524249175410770290717561592596468061399831727800424970387114746155806266362556352631855844049320485710391368423860282342504211348817118863885484454568147846442872396285124287831821107870086360016678569739106880162760692302450023232767366688617853705961507469083934513631592324208253559081591828162546949640532192848579828217937164899462578416761171531970196351979521482070215307360202120108651443446746509585280477758030204822501934676218998655936790167957553683874957470513338624448212597711890606416124910308240772417283625251635432407458239278867369148464980698682184745198454069206972201890634476992377618800454199778798299170415016369626682667476817352924362758707724279769670885368939114863624035786735567533896684742384784106752848520098077843130199489449283402555861780588671548925068250377975908057203362511783965876214713271772768108556177753141179088845867856813467274486027730723603633133379184456396965761810185374737101065167779862381521531495783054431284733669822451527831660658536542059438209982955432842945592306700325725327047592760701912119691709796062167145500057236878310699022936590307843154438232986030157755266232031607969122860408311726557484902492168799376103555867540141025408266390562314835343804940013505682342808327431889541020180862715137964408084048319309005461396390674878547120700286084156096944492203871347534970031916528945139793015868862975010893887483265273370797975636226120287719283686051261510666660800818672834874946730310871778784780038616972450728383795185880483373069679522948717308010377112975940198105943152785048797184157535344547658555628524799294114745638882175533440617029031429734135735283809596421900184355815074242340976276624434948276413781609175770440357603369213130514940112030532868124377597957949817330103097605208207181634410672518364611531561795953967464106382351314378933011846193230777025862811229789645332816233225068536402413417747292594384321732750883514131328926795301941789439580251147454901821836050225984931733651340781154939096091954171149615927088671098975591566030497222612782967953767824991951755521758066250216520923913618021718196359246684671656529978282996724575448968989340982886011957084570169722931743442966020086224545969954521863073601483095949026602406197064467804789739038473316088669084902631154856130577367259938617062202475235715736738940383607958891189946687998146683424447881270889960393207255597020660092228552536552954951270679239463679477020830893622018651651040152832557590075306261238818553650810267119506918284992487333546637423652524323086573088417011942897165491441649714989068285080044097468996830675947291163823109622289609993658763699419879104969923610649567643885998465557571914356548385628616927288731095986616950645818852388784243852718973644664588443792609280802362538010613299768411817199411864957413354945487498954869885963270349460317273976865869099116550960046575122335771364241778636871664696760795326663383935036353711587488777278143698174096884717908018600496293364452810145816346089052608662525929094689546335442727784381425578138781529537554005269434403649842074306216247249064914811053845257873286232111489303693533141140957599932469823101247307777252221804135653460820381746926846480732423473078083197397650982070154760414247922144701761681355167988942438512974335115762095967519472169265581940345965641011068429308053602586558969995329798259467333923660037825729900385748399372539628788369549630891582419227669064715572538435405326972695333164568382887410978568074989946136946506994595188200702767674578376031729625272355478111958408717604869799062866462868555724327516102680551668612899292170569773355848018644775287887134973680566141593030229708265507187413928023371804011874208982640061822239687940634471761515845804563761754733238769752604657723162769339458311550501115837365037740682669319840686779103724014117753015325083836894494225826562957884710792857891452873674898982515261539499445975485981515449876198849818495068065415889545287738601093828593964814095880107826913704966366692714483637901490195097568630901841412799145179002926157576602922386801872551705536560646086470719341469428499359100850090325353262690737188757221219588549611069279294276893726091409333360685800497343903390303861010112340406885516438413929146638718562461001886685528759263900132972309954171318611307226240713776395917123431026864407796420930539104932487868617693572938713650622245539426609193272397322199968672587890019995951063952766761295390443498648712945365770205325308953299461225707643813003761250352840356743805572811607399642829917688692520974846572018568412442907972446697545918495333898353921418129769637661080292739962803368130021659093125200268501149373003811135829468645995069923230735685396319763171551805661972715484267672535750059640950086731350490974477535014720830449658894539109049583853041863420831114487514256679723408882982989698518902354637534681506280624979544679916692383961561224252811899055896678888498395909551283454919657901550645660165661777336236670609393834097868349161703909723362705222366929776572242858764249035017111238958585861418956027461552973501507812224273135089928081008070574657722085883157272266764482888167759865652622399771977431645180080178142445466928470680286939663543511215001878993347207844082647993135459844629057354957424139626133986540261994857036358160316602453889426177842351953094948526121907044737519548967984930887673168275134801021955816970846540437457931519608657420619628270047509375937348054537305128671737357037384601868278090775855230000906011496576526682457275493719965420033753976460776367569660587353156008107894230060092479804785384747668542119915054642095089887512285687071911215237093182591086292472796940273996971996214738778958251258025033131631005633562486784619491531471406085113738161189264173260411267674536100522338241273916325839126594348818754195780701922110618283359325558547507005203445121495537784607121138560766688569535977667939438599736896366825318901841372875930721016249822407363882710078124013167202396090228698543537451064907928872863479963957677200835030095036059197353008929623125122514066944288628470721687446565554973675371170545066860927311650088014104178520416381336215109946502275256316288025211549359571218374760122738351663623118173187499542652264496528904104160817551126051645419742147120827117103126773842684780745938409344502008517048004750965200995740341305077188121810348290890283748103120565834231257030222704758551280031582156342888833213484673617171348908987928243493246797477658377719920969438380610137364716065169202153991551295589092402831997849722557421083150399671455446667766452420475985759088916092222530534857111224431989530287828122037029443206733814428623617258648016790265886918604199697366518438440130309683309473667263293755806507825736832259424563914031253463146178782020258384266205008371429412218918517718731767504201943968416923450239613651277132943598857990769231910806331628457282541354328417503990807972478987558213629018834740753210912142393751467934810282440612020541290902454877718792558217581299883187268273930946834549808933238775922458588663376720073239642109404144340809614259743017093207949415264720387458054373202205954409568549401260197586686322749731326374258474699319459944019262869907746979912211877720666340533346201447336698056730597473244324430640016573676703580555054500860629746656690670716781650100092455632466073318852373830546514413126985481316263187333217317126813625609612513094912209358560749904940370162771762038395663742447556752915566945522599716043852509747738868701777437980260821712415346802095777583933818854180593561225687936119348489425938758559046248200638807968262425798560060200758565503395022325920438820365638512507618940151931303364681087382390250030131802923277932117028852924225107738733468697749140350113983035869192766716822830357610715344813637871071034220593541944521798093506803892317954267688216951922111437471466979027651042957516541636405507207957255727059772820302842301404778947846298890471352758594880632364831794775516389252647779589831470008366180287373985543152181943178926718876847519921909796418762496893599238359939195068166878350310081356917096307605679793475733862739973347091728663879635429186309843362190527758124541483118330747356279916016965698254625319513124045473496896446534774353421179933257133980616757646045749173460389435994941168048117357994357829461011657067014152383655854278210868929507486244393889319020530141240217933931807534442900650328615259490322541870890359265930738292621467776392247735451050094505554065101794474889897659979152761241419822516217464048048035451167071183807345325664141069674362949122251893879120890113684322901677113384808505558054877175012474391249430289370847835181425480915998340771144269028534542049769903008842783762796131940807442877282653980655976981140498735578673193519902341191949894862751913823737909004559725318117647648871995299817987392887178626971518061990330962744322308613411752955202885479286083605011505865031919674310976948026504708436299362194135794404022366694853390857379678406195383233715667631342498094948522969480636575423644525439468074768605600166417676528280661894222627351007692840492398844883755565054101931022653017021609863455670093399128564181883134106169446769520675374731503211552876616588675633090635847389985058209586378284053160356532527220157879223113296514764259916113920813643848511769045059602601977754772049142821017923532664596614931982008922989251993152889829740323750341707784708693502445752977765881342925427947316157719780484030773703461909823633387960920898706097015017625994590378010866187485601473489403803013671863633724761633469858962197173508240613460108834056254974295434264555118826613995543313682919881294215523693074290323855754099669552677928657807419776519133901530391229410746842771609228146066378545527012883919383959959778768363971201250066824085368481529549876873480466537656390487298354363296303178967532704228986147206038381482746766844188797307595284943623093252805414483227990544622521968508140102349805175781493095054189980403365750863313995935355960003642818489271660266495669846523028299561114969947696817891998432589969869280941218113199575249218886287992615852598511553408372955616604209799518577493777111774144411611354792915549131662426590912006597829404320071238670208110105299042638401987441387501200410446431534682388295986995921382710982201700884675001724307390580982723635088273348730316428950265126644803757496433741995235992175437695059759779225101253569709447689220979599081326707367083421510202975089408257553390819574144265039951161703238238680481838607359769748210150842109464737202179861810939863706714523759110085706431987310029267876982026622178583152223642370582687613727976677403356034832583798050061792436297798433885265128974461890979640840792866070541962194504786675858939328443703945441210211771770386907741897482146983368960438131684950916097032841052601760470476938965761540334616890699967052222453917467909858138949791958254587787942571641259556596208744162137980494146868311424898637303350677078990425319028707635381849754429985666124590104761857927545605184996423810315675526806986465573478255960225178469149579397144847150795642373825519570992668191346904473488386642404291810689522820033824068910813023616053148267906179969662065135448279940688606675810814692902742287310180974390613819308811800990001009623948016172875613992510199428058777809712637243341115703321141235255433640398240194925102782479727290053037279909772475266270878613510850625950594149488366743615807993353745497060796457335397230367694823949751047631290656501448601932166903909804092414653714479297808805268695319684685681533456367350363462160415630105385227807042003338671302324299776941027722479543657319187145788869439213823841969886140073412775216031044809032756344424174911318076771117836887183781881804224003073847085676162766073696449326554417922889588554354045313398809387257245772497653922497830434402050039125106350527359764370342920503756588806504843097193015636377312150033013170467410369050800375697240106008290965104440143716818505521455102263325661659706155416388996272944231658151573276419992630252754128321294977586860579659128390120628899956855647814994561769289390181793520946789994000090467160349595136837311904828938692072151783221177823027360972112077621822479148776050130627827896470448051225411079115229262409318931595325762390676892218724107532210888457328046448790811469251411665142127277130161083350562932809137824797891060425750063474631822446817046946549726616927711913199989112626563723394589214653086981757982526447979609933377011937272872677937057690567569166807001454802015876284785648764752592051581945431761307475550038194072876031064164880324671451802147136783684106555742241708290358988253849518081499845747188437867732628580536079684353790957643975901803558578517373314967483730288661171897958827460828585254994957294808132333944722425058248770146192822920384976978264892802475286292542169081311591450488569718795520122263095114411427551015922386652836797516927780854387322469616466818527197185643664788348538727606226665277907014715983719107811566016755300235238231651274809914240696362941666107032546653193217445148742110384964563384929542579100780331432414201308279667723096174090848275130007135916327161369773171399571900652437953630661199997344779299744676530397757504266280325214542286593996147901655604709459460179693059193716405022910426345736007473656985123939979716909798330918763474122679069853783020946204698055293299284369802976058160726978191809058372748152240222592313404176061337724137115479487464327414865657388948776077096326203497747659159771584088204081490041510565133453847152805801817000333400993751175290198837832873330667477233660141503370545624655913887923655399786354247219242047457672864462570790517171153454658875178360507619602446735983490021751205087174852676171287202000623073402131236343753852575465375395034341261003961854402994095160431064043142265110144458078162080247393107846159126430416219189126935772041538109903908990587579809081714112005504613438664469030058414758066816447850998292353808417563647839366362685190803442696284843292253569937853300381849438017313410523316314723199905171941979297661767068079101633810926938271008371596393958819137415183741143881794958968992880803929537124237313835933589341029746294908065177941550466181641743557103365216840355265190972715239342036803178289073882339460013654269003589595161912238918907242325920641935176391490252369081112229885473698688084225027755444605068890827866544810474820174232478064050451755717168351434869294041107999876652701449723068143809892699022146448623744027947106128012274807795774386691572896594905391691503482079262815570604521618705776722137084491010563874300964522088390527215408469356212856974063172994539050763098875959023493469400065864743879307890806590743434501289426406909692120203156414289700022260767852209021544178887181300914995496487553249058121688611633270401976805451272831660572917699023398372583621214202653480704765776829115578019224580032386458810447532604600227915275759479502799766691921678344565730990185843569283985080198788533076334105858433943841775959718581295421670345832091002572943822627733485893284425709512820269851381007655463030388433571760567652363552542756519554392992489573050106811773762335228442636214970078759595245200645902937270823673844165730843631087821895900165425542024881160807311604432290039811993175841209515760779823118136999848119342795684332947366231391443444440342369524179491757000203444950590796873338950381772213880602705450912765406912762091416413637427761930714740160934724685911826851107608219788919651744190585478967857311000112137593647308190058176925236823236822487276089473412422238378013325997840171373112762956125313363878483662973685912179687117797892743069803219138704462086545537508401906903974189506160427674275046044963040071476429321080677049680403370694114489111358468388194796432999267384258553566245578912823903892858055278613767888090690825608378986422062247075004493191867461754089306717389532184715883699263618188433907895112112204926147256643330615722622624911527448785291641562479151639139952176623671909257495857264756315130422863199717003640120940338261892798271949845283706797115567699313716883834416794799838498071907851036265149832640703226537303116847788789949454334846534854380590140948082240687016838356037682913473028105140009312953701822352295377851425430297653981144207797088739203519059516036368443024503225578960031000586492221405829772341967430280587284243648984172479946817540880807134881782065881020265602191853707101033114315908196933088050552312934106390021018344117516810492155210870005884482573599008235225397057988803342948782092526500556905850305664538121877375261615865545570327263618223857387464248426486222645626953090707808543081094977646698900083565496572886575894252561421641095549141103592176383409874461160919745252843609109466772605039383445841697692732182248765366043145302672202927558747554120709926151228697430665180555385458158025637699814105920348059075388634454603006958898589998497503369819348607372294399732913066616646343051899304668578304102003719620305936431107183890927663071940320279958776790457845603490347641346841700266640384520073714903082076899544051759092834979939603994858182247105178916451223164507138790814954174599351986999607592491509428223692632431202879466832192581776505621128766173386386545760123728825343889622664673453815994773974455229468445809703296695190585004389171134347468271206146148137480824021055120850322872024130999575523625373416104725392989763889622407408298337265158881686736405923323746059156631466648458570329747755889780885201932568264738718254656718999603866541938184733558311402355100911688184446971149177693700701132350892885631860736000024164739510244546097537801096325410003994810704683903710924983381392213456363504167041397034923083857973699621146486469211740065174152077625845582437598185008236868642372612436685335048522005472924062951754731398718164009403913323860057133357729353463793549889838184880388985662982416634510083778912738333636796116202694860142966563214451804310300673431086107459972013231560668049124903614812769103602638835537041150118024680831810460125682699506090193193067788394196125919336457742140400748647794846388972627383469491732582718151183814881191571853846044445335148067360926059644756596759613394002077322626680338478560156384160566286924917076327266465997834297127780412457373793631302405616518895864500650790371195133902440616768100957540279618961519785917827314284255115991850628359289533941672389263519377420983922982610137204087423970859422068339655544096365553359419311538775926662353112637142423706589643175478647194727177541889734095300496892943586358572981644760212233813504223288226064216624368193947042776817217714669990015832813700748259423150935924964622294371955287977002669341047590178138712504474254088927506474956300150434427533156946230885574291343805243475547091874023031254227731375750405045940694135738258422215131911305861487534409696974179787367296400888173499061431030376691859817012402577639930987758970703551798081501461499394014470871618487370939147611266457195907073489963651179076115332192170659164284016200719609219099141933948293116503489263171367532537087237216148090159076356969399206488138786027512090698223902536410032547273436495867718491920299143416752003189338257060557473699335377230422572605578063249365267208582362343649177242356331473251890505953592190234975751463101747007941269465911477307321879848001018515095243696442683070246740917883730135097953080806918508435887388060011293581078794037687141640452146204503242465287168154623192308017728054199213301730952315278471562451707465685329367944845199564520031856786639410739315694787112069789982032592265744966869193591853998738755248307518693493380564491802179723328757832855988904979821906927538048333233014004721381194257441565621656900042466653599754503947266552597848196250518358817841305853417859731974599689979886393038743630159859972607840316436216979585698685124641694267564023846079089534773038013057585309601982263011844554384092352149712526827027722031046537219489352575928112159750206337385101420097511354957609421613073765399105452706196104663996916939495241223125336907954977345127879243663793762264655219916627049342865430262243120432049575111443314248094393745002318956080625652515633968039229596413370173685094684848479743311399680171975438251203383525142634000585468101294415318412999785922624687233023337958044027628105296268663589668648147075330978386488895880462071783305544351658209090077906340225179196324450027169364174107447520086200592301360915374442545722260289033219251789273315116937593160165754041188812140310862988383122794859087209454661756393491059996355896895673351163968430386603699934926646623624982666782409356077405697143994902880931104077925085171349077246897148243615012215033184500142148760166489546892452132831251587905915568169273556567899171861879541449397807340641142756635034113283868418326995141253682263553358934777017742663609567384133364347006586228105575502108508637933885603947392498416433529680631936496151357910847120843794721600261520830018375028182212464141727760603229187672990268017274071409844510774990743392792120512529452285554375018024491886888709284651172371697503918229643113388086215843037326281391444864249951490823966411803034238723376820770840830128689554704512064065560757140942633602924394415166977519707204908937516167764461281475823291340636874717244460375335024149255134312801385574295259297560083594834726246425189563306557038909304162482237779855803825000306165080051463506362605872462076378398880745443087607005585829152957287323367096764673883359249746964044575230965314623082677074541463631790172019937791803219454556522035959787589375381939840109537111081677390762582739860215130794706418841570315163468511244028063618143116772973573242495329620211438177492856152028968469404531493038959162085124385519714923220762415514657673516247369072008013125857641642375932649354726613039447290964779502184852609421945759990348932757454837799712341007814071036889498417411065955187408923923977344217763524286181879418397329202371347218308365152865917597400449705683051429356357836673076412382779346270328313695175866307559017184849862388064196542749760129772159192685955824242315307132455464806309537185356026428235419501621034773901898410970961117849275272163183435255608161532156661622422033135087191960259387750593129347282843211767786535450723044498289868126405277647737390574491820719429548524646601731076802278315545327478387485700931899131582343229580425673269732348798218649958731627379245976832884078386661072387582450314057687577254890262973073050538218640428039983709642634582520630786647993080084624447025402949563299480767519492166610073630520474979287959542124239419683503785290470023026090527897579685494798042171528628288002641625843644906914658758949118117132797632969949656694433718335217358119550488687322925232891667732635668321723793717746444316050882770737314256899799580871135131865732749071045738816320968178069009760985298846178660059836670807104651968042940532857091491491154817746876222583403976044369319917791221741099971696326746386873493007056675963744595026822542330785824189301438502964340349021844770200999068357309852430462032007812761656016329773513813587625951900679800982673721997818319486063238937754436613479621701976452925936815344018526125180954733541547528849389851808562235899333823887012067065902742957165344508713955041136326565169760536643083236596771055936325491776996177434681157808434381077300223670575586872224226153989731733091698271699663757456499889873690676097686080099543274873142723862380172725300416796936954726908389967833932648237675248836351522439164463866447830111044205433898410269999371848310821027087079468767955019108612514375682111049738313196982311996018409183398326056933021524320755553159868326328129694618696196036986929710631226610133824730316343347157743281925906372486682354233406817877913077930609772998925791507605017478179933429936089624604434839676444361098302897019490253333851374987752091099110091587828695109340041220521138847942030050154763625519363398483539551599954601765989439307040022719460754282895488058341840518364431416662791708814446483155216015210699669917162228110468308258860124912606107718571186697133083749787825770308253059705676452553541263839045169425172456847462953444133488140672868186761609120194944744760171327293011830205587438255502042038680077906055109082455885333159835249989372889665015935493823208916774290681236155844557910436513582297661134631994509632121346236866204043735140413500171704405315636946585584910019786657434583825476362877149797360205252900495787762479342048109076817688799613059165019095061506639269382609725017660852025722326311965472873926518915788426514348509294935085227361611305385429377626105029041544503180433032300273886329778476717291180657029777403838205435775170984860261360686668780691731055202530768995897758634117975709262615650124286433071873140291332891031697986468305368566702876607331295063823950283160366012946405844719240369713171532567904838852651963602333621400275413656542598941455433435217245935690984735587360912973827162603719645998020597079373509324636967189227820834555960097270859108123970050990358474755254081016417908588451108647783076216170948268685159808586733578539028512607146217390941435233403591744731223454805228576869407777745207097892884629091091107620026208993450315784311446980751171882644270123052763872687743697221654027129669950494142105316583584701172596879728131186018875475963624477626886151836667693753593270283021941909665554842574815960253123009646233769686501750423463141359407678218770890257161259098008175711441425449083251581229707669437622229826024563431706243798760740753521401003355312989293436942785045776041778501056154883638621794556923108990982798718814431141791528587258576868446655233080495846206873395141061284705222047654885823499345796032898693794557950500117401840351082745238222395342450222637733749398042137000779849962386593939999564130447917476560434405351471044645948753931659698973145235259476856299871398718273813420068397356674828831215013546089818703593458460893249721837971222363439167261348692033574156719295155383521113059457016815751346350940381101737761508864940236459203704819407692915802641723407610988817880061269578498601445248792079252107664655058405546014484665071884272153784661831171709950024736340480735231861028555225439279291680958843065123520221194383979000915702241589451821800486407913353556988579911460735910566817396269405422985619880353761865794783200820529321648232591301158303011165293117436289664113259255059875898331589890892190908475485394747555016377982134167233989662486596323927004012556707943795607765427145638722103828893079231521232184004958936568389600991083200411181750652597259857779074111584690667459326543601503683110408615798974011143933253274127002817316739533487197329701431824541480003258999267453365774902611698867145700669265989399415898694208115455340560677916859083145996432818181097913258915699688728145361777121032958309821692811021513331739303752204287996789898858804848700398185619507923775628206498206008810073721287606459816908432861384850679717517575944571644297848431366427936472857287385274951327507850472794131163275024779559972605849331786168397008890692231706067706745095858431522011836092958329349981924730824686500571637738325889728976855799309115878658245750762843440046537699606661859555488899338647364804455235855842661275148768707111178298086950915927503784609798668866628792849179809785245440103014063908075730819116371006573541486464098170353019721883618841021153953416508521165651562108357995725338336159452207289904647725128873986149019872431939717948898036934452181664083991590795251336806500769745076441587569763892767502441723455118141528053153287689653517144749570363028616675323838998252936363742745070923653543811373450235167577792167884857020405280398767647395951725029285836335160964049795506180090956340476977713967616951540820755603014661745923486343049032406685753555422087515008803131750622802895656869720083270654906608723349295833013128575076440320361353287171937437519277240766167021735925668067289741308848810070172936524227511710703592983514649281510842986190248959744280997435813458890807340278360138857183591736379498779463936019840480538297152847095959386644550270131637119678581702612746596973734048419072172110362404701022840801187045265811481245118103800878655267606143528712277111499262188637072217166198182921112399876776078969886906828691092931124654270100405390930755714410767808715485276552110834314293869600181140817099568447772888298632972423184686042418606190422322761468887196509666631989877643785201165077305419501227965990614735862399124269908096035365536425773710612001295544391827061113024588702036687041545085816360630322928138206079121748186072682494414275246554394616425917428504241153178529682066296553668498554367061685883889358224559995971755938963870956009425333785641755520780723126207553225337575458822116229508402923384748209673980752359192759451309474000380036065270482645544546348671815697516292156257040265143068260401465067724366301402986541420327245019218805772566145599087458040531464652056925095331412453576185033440406000397001250593428098769935856173566198093178530813481351476408310367278447554658611668344243095968107394850322835180414853867611492903448818591043682081424195821349684934675497913155907894017372885911347328446489733863668001282695528190048790154787529836063359826958385039645611940648191346306281454234057987803776940495991833545791864614142487807909707452883766865567127961941438890254755713812979212553936600626265882424589441101889042391787932309306587967903315256503145307319273199403473486803068671072777848345076058282216171729091254377790075133570868687803677991895289975540306826558903040303821808551310445193373007449348588861100330803993436588420796086873118439757363693956811111374433452898365810292168518952558112179975321883312777036977244801616670946715741623945881952836604240350445077013205042427654675173472323238218372165167639200519816529818887173089814123717430851569152476104706564496862169065036091472320922502123001218371063573391267734190581753156065942954687401286895620191533671957609549305156750937334042549194488507215087046579885613403215660959867377736294586211307385747055053296842135230512380407079747732043039792732329643367580967152548863150828599990454671255957960223535776899444322798231603863105952415171692418444822244644714883513441579874535378379299180650290800447727801063259569473778316762398064806122421291197339701550736111936231843735065858135661786819470281571640689931994513524503621989028577738582864017022118366114392650525395974245255831614993717017089307109733642661301749916624759086654032039807883698535239409917897593284128644934406528061426919729312446698313270138255127192391060261354302270975354447072711939904578239744333168573531668181845340996227821816418015877757906399534111820021452095096962355078096098693350940154249308041384902145439405796036933079662862453880875399068090660041171392969015433927611284517129958881041232584707146400917802848009410925957223090618789833051675238234159633085664303194667476288610327744208558092815840718045662556964822567961890874102287576332197833637941296746686827643789710655597912093877432856544595930040223663178458605251872614442328402417132871200826894672062760842393443930110368199239673432037391493417460610139543541833140103530474475845091442199528156771041655009992547410792814418875441854077059816313037825393957374112568189902295257743415188315695583433953941874588098154270961960212727793634279865725681435298176520291009376397003085432618963697574460406374447350322220926178907071946068229350909960172484172650734798393180141970217782555227833070463016657117332613806507596786086563882431022354114241118619885265473002446174077822626412223308813067586631595890373599552898670491673226072206438318132651245644566254726125779008852924779417284608278619265677447035180064206319109829595687724515977172138491108501338973314846565151298140685942642047832944808444002541538182204221473247080002012346311174631375493312214225690029282111555666458252757191082080141755447377770748163956308622780205665738190028709148518296152969027773756629231177469551435900216450745965397453601930085321965562381282818335593382828834965523100450622413368984255749736240801401751267925977038808799294173170261003360747368367905874848538543985308163132547739229541463291592519909413867280251110932680667243374758211835194582537379011274907124800690090666838826859259734391052688343466903731111618616491112729742175104604743515414175459080126539284889893206782192919152190289031766011340752983909625281296786452514668912787911115103670767860831836428153978412122612046296616837760015668447966745049527861965133960105339778747756397425372426409579291864139577204300498265707382847085799339469539669518401290108716396172535170285034980451437198034303944500017509199817762802202342034366589329965222329617908121829887177970710889399798030661683069283899034376775374082551273348460942677125850939416651721788353733813770908437823482386788424201813266528107558497461310243888866300165762432846867215258198389088396896167022196751970543469818381081546910451226284184775390144098281744415702871745453465177111627323805871879436647691538073424100325329847728135844746998392165744471254369939208253055804870323977265123376712234467254839955451467185400198980195048087675362409370998581777807378314547519910492536748992685634488778042972365914136596353485949375797373391544362179690637898977675329723384404479960725195504725058904805546059065328211448457081068115350662999045269024388685173600312458213505286311895308789993288305384823654831818673621192755762166839449910686375153110820316100570870868486147999801418737771603684016809897029987682326403616250803998496491199344315953026189455120950254372554931816137301889232740256811196805589344964394087316034260108462838022124699447229754656420537013732621365193790130833131687956754024714735748081546911851037388525601986014411004700802383272720863273024485258200406459884944471489888515507378945488026903285019122839474444291082782445786544282320087868068612443883890978901755969710785084277278040076887661737264719154220356935513802887123804311853969108472103771956656353296332846034141529400824201695653913043839392132460738952574796417440984065782013528879187336818592758365727804244774903409943913932758099877765337087263276605460489118102624818151805971089420859085479156466390634942781875055694501105640292834483914688098477705113769196149976793982230588439149623184884279817283905588253160965954418057655033086785741467269890592881635097638565273608086141977889127082030132097809811950204273782382884728203614188062586092418539724732257524233014874393414876593350829392206030634903181722889409893912579359319865012367758887955136891919780631283151728956540266323152852560342909884616450602355683539025263027753344096262911780877381594102367677701182002600812206954377330990885767362848294739164195759159231829689102334478441539153219552417451871629757625829046047038629209431873725222312764424021855274327466504584447386755469130220151403131919324325548020525132905087932628762599219928368317610889197689622451310347566847968529003665915194439151072080110191807258365961704431184451105684485635461640606836425961643652362521714678619882250434628707344436072665486172793505602917163351931057875859961574475722853862291472001801776404538057603455400740487931923470767426267121508299968521038673976524185243351399442605374771926394744530801367163846895273651461955467402634188485910216101199266852773393316959637681885181946582861266569032781891209355603961039474617779649997775333112402129348682298664149858076383733031312976413153049052414983987103454559139113438888325196267249878224529883645458886330564399129174511251984564377800861944242387731409794664948626569269099375135579310927394318901907051059799907473260993877313071089967051721648999524210815952604336686211002483782170701465505038393486492422565712878334782860623324578782236003321780987808225341612573578810343503654114346465176164011971479312755127584335913499685645252650238631992569279303234104980496877772873444749198105419731063391883048737195170013414968165039162112414289470841839356779391262082236161244251418008113518892466505204076858330773072635155702827983140791254753025049294763868265352996295664848356993965889861996159262249512042054172339336012507751207765954010514910088719155774962260134630155766956644104477769609185100534930448677948136927740914745447360816317362171440131506644944307518547725292843899407930563979002559384667228708694306886792529437456136531802586474605866849974999667785254860719299180547706587037578602469568379999154329464837783447056104569712657813263763326361437067086327963452699410503382035657831394230000352919847561647925238735441221909515914935061835661556144756275722097410680848185286140855653390695877234794288870093885760953830410369328194041771990600712666617472841879387747629828633119343537239912934176314148780092721055242520789316592397247094653333131161096747982328376004117061909521736926888661036325275116757898605079029873611240503591271728374171445061268381096102244625435736295506158649283135906366831233013670270130075815727515134229135280924745476586857471712317925402060851766427436698896939733185448409066758142381171831255860814483159143984624459397552767822108173330325113508366182427767305626968698927192523574905561374405030238575878225022168245811510877515595533281191666416182100413833562803056640317257623088474710762599583507215819144381884830293906649800717562054897866240080071700727397705710962836688238970510843934696702838501818491108873978360021692871797021802154563268486608065646103107756634675470803994792314369632020063638763224647089043247608001843576738406397691862614967418440786918293771242224075695909186881149311471304582284569553974365435722592436464104950796020100391833408828662083339139766769495976939645064162504905970658383285505006215276410449433112030846034415619949999992436361107022007686972345933129827380203190985783715317800243889066918866010264498501051345543775827074753944051403760395960231403759780085084641875846139861212642697201719270146699189637174100369201297177412601947129045392049736608118665037407997151038440967565405811123178789206046030057908012894141308308309430539913895222118012613869527902938039881007368328965490630672093647489237406111315022258399152012257243716994903672401966495546713850211359343842808674161268560899964629002285652814054898319476702594724464988164327546194806266717343901852940384988606388050720206126616439479869951338775433830483303961681027444672532920279326184221101959749959427467316992227338439222193230001143528954392783911083777592577672479211437263635204027041877061901926058476254618437066647754422000685549511520899156898974088854194548474906387106100635198058431969479398691655316573957267416649615034014482771243107108549136939292955043566912807703342148173407791455675424866276057809112377003803487746476675629556608869050399466975695959357756615040257278131487500450609799032239226953584391920705004784249426889049553611175783289607425855206707330420530163959008592904996616866853783760433877973891622999618873009959179124935143858999171892298369848553528888249557575121985927082094716747684789121934551791392338616553082821920869470535749610153108304341753081873056658388938941575745121988950612711952029054844752664220146781313672002798530766049105685789946198652317253443358340347108222481950849262724803651144270209889041442452724286945339833637904747927846641430477120728911336215789163611723707304465227675184593906710576551734315129543883009107805128624221768455465903645701611300722357167808946684685068153985933855613703140918074570620456830535335115454102755524496052609616192218511506150423299962973744141952813427354316930140048987058031616659371058971546250748031131692644238964974882478500827093303100588123271728368091227007023335304622093140381052906450680737399212394690255816597401744182973072123240936847065812482204502073733547817075431048907802113583923788019261590682207293278602181424332737139310492452775841853448650833932605578617832923485650809359927861152897912586733274410448685618646458724202024580846703284366301464359883961423425502266501571858236810287133723736248610875065756100043337733334721836962136378846688699139152758810635900199907521014777744977336187642108860209332937229414684931649210596350584223123073465148278786113781224376785207428013887409799604818885346573966361389534837507598415468891028585240735893210919488074873431035496345769876079406159121746700747238876102678146137316003555685287846755938681390809998301895883012527838066603493457363692164542760505967789490979223552960966105561967068490091276189982050601867865258960526632907380205038706013431580936959999387856602753775391791320869816872501644313390968067891043324570447821664123193111838492506598974210454537110510185857517618639586497762678551534933399409613000210099367944265142443735672651776004195141357261407542509029884596819643512558262193341973416693895245406446368368023275339446726299492345728015952574835962706800523549438832663175321458155255373036713923572925873032405300403308773181649455701365289896076794984092577135767799633652923141733335515178540089999815923791350312689666647407166670253722922149322468937105376988941455266716747577130374934926554526475792917274125676391899318408626156432492372801807738814744395495125765797473627222932928505854263500180616130201138016295424090388167997636867908511730625312721291776514380657759968048992050615545824386399365963006363680906076335940451699755809946104329066092474692707771136334819337359375070417005707057475697043729937615671033792749441250365687826523638264408336852439697074700701685545431199488221061541699439442275222352910558002179255224478185783929128723382222040612903496981591533637840732003235787738912504593093875456833043987633747406345213398761019993066969848130988183843891160994283502707343277236575958428998518178692611158622803034608179455130084685289644439954404302893359449728117644716453237212401092694547796079532037202416357075817752849762027299503092957148184724899369666861697225184464292276983636806049291531262228194927820023495779521213037774146186632699460899961137892693988345486214381526466484671467674203175460552823227939488257982055725720600303080455449783970377698839208752778858319260669599777609747546804449569159768698892209491108005929905173217597285438459870343844000509864593234681492518232439817791068200571215221224627802281198358881196257644779940972243316669916620668712023314499526430244644486920840929064281571978888128549638784878828792582923000287801084260244537030187700584514473091750191967111756145398182272071297782369863062346624749984319618404426646963293478492475988406607255669371840812744022070914453343976741518393818343127209153380588534198646276792836502403403958906963571924782022644023420743963381383507133694363501164087156201427145244733896767271521677085030006436268460276666293317261508937540310040128185975127978164104267285502196566708697764931576556061717178135511180712801750999034002352315500786233093342339691327341238541969401313452479843109530355894480997925675763659043062558487800206389680884624842618200419290431694630431395917847077155068510066711259284261090662188845663613582748099914579297333062513751977462771433253646593037812898281067417669103820368744563287246611928653034400063089839221255562763191071643771562938128741371252569280566005278024082197232131427174752367799615970034573725217414981250327620468807574070250362959722479089676914808855733397605692339672032695971813207027888392604225480206712232952369605374991574210742958400362769152801617728597053676921548209234574587688067221440643855882218634510367673373871731126886492464753348375787033697466043050239402727540115596231378024901228200352401829389134468963062094062747504517359802745485618994959135589392329704891708382747904733955230895525587160300011880581119346861745034508036881496215015967930526252090813568585791465922558402612426457987542120985152060364976988187070933105242143618031289520114393262420035444984092259013474011505783823399442532676157189218969083122778265568255677047539767882922771609661159441689536504176012027464079223398573882268411124425167538763865253594315493903983424481294673269091142183764363506037981329175420726149720523286670766015605076730508858826454986384414852928109221146949026800100682748802073709728932896217298424352785373229456665399242966897208617227801055041722670129112965151001409087777145995361442226779054214779741224487322975667529149718325479343953145128340339696235366078907395404315834387590276145271577256769077058536735697673027383357121629207745426515385428464750912078660832062183544320570740893774290927431724908074347808423421745543665065120976161708668599753238270729410028622825777879353849981399029088350814869310754886818795975537866265859613841083406127113054209877565097386488036288546112250916393004261510885570163759625437466515884415357899249292934245805798486104606211986553972103169436616985646842508570883036564813218099133376954573996707946881722411890064727450190606067984156440598009272020613360381571273491470866477980202492640789164139946959421658089856636141577806389421819548889686644083006561736885962816520489116012075007981843723545543644210254462766540271562095270804090136704812199319854294394324698334858744337373185046290540663210672444582580476668722996217912201251478900921938234354895904070590798000768238068983841913107485810792415109181440313142810661400583758543021621999290962574458771390777583467547932516719777057999268695159552604919726418588199081777959563650925100955540107076742761231905781819522011533011231060734329158143055170836365677575584508149067675248359729558096278537578386908788597516582685677882882015923515335703492418955426827102380458103210442005414401073044933573624519924654301595226540406670702637000653511221846637103888480048256082413358569494483303595666971039258518169470652123059435205324710314625784181816200527088027724406941851408309936027802115468392059922206651756242695288959260493300233926444734134359181602402437583686916954286039865929796728036046096240139673124661270479059413673141495083770896775560447334244577154985544182127419165679175423226392899188046549833176944743913120907779236750602652626829731763561205211687084500065333715747684189618152844497335225627656872188930995850747808325487754512376846908453782640857561471535032237742166664285284036124128846959997578030387890301127766774314656694360793893408467670896509003577282854085035531300739476136473622029007899424476030002473433193806106681982629829818762857913729648811077862208742481853039462833656773160141131980762817844926858870203470640327308492157846693085202277053440266352240965317845693210420723558632681560854810102630645728480470760776215877288117723146702461847016273894992737164971507767665060476182957085737236375156729975664296530237731860024583108952695487982909420123284879061535746647059523974846460405406307931388203820379976108543556177756868975822959277236500088569991882198944245384417703698078210470612434353739708621821008737510113932116422859278012523951119326017229156756147938493135140467128444188314567118426254040627085125827513932077065562799422696206121818150647247829913864788898332397825268501746353026030346381369828219238685542461567435683696252618814356454889599261255840884791283287250119541796498010858566306606333608447928561808592026877028404276812747703299330589946310979651403155459897639896203666095166659061030389852281193388276134995719383088193738994217664423243113127758122941049566412064330333628904733042553064337481798064919250124620396057598550926923322927249264732782099151718666373155924650641751770780572960715003497974820899346265932690610050487973510882148819207636753844162674220625661692208925957087419934707263312055269129562793316384644744293712393272132202448478883459083489426570516340190421839197342961966679335914361064076793101565989290710918265230398573039756827956441164923921924060910469063984246278282712273500118269104909186649230426261050335174321091201112804254238599621699734178437454942694698705212340419256227335912699150480651828752612739940513226980378128498495795982862073821205504362025378232676411907841952097187816751588691001941777418162617412503557682020592995760692728797860327007174576948129392138160283709052949394308781945751831916589267314568038997392440836117335194807012442118540650900966145235160066105888490109318298237637331709532503904886066872151576906411835591468527575982628411648428574783029177069181898231196864669042631750950667341182007716615690680924637582377979436153080827205800600422040278649013436871929655563975802097582727166481243346972467053017301487952142697622168989451320413045408296787786972015987223537322332314165761951209151059576639239522079148837674527386599706469375893342617740696633323925504628562881384866677198517769834766698235760917439989159165255339577875124695493487802223783493521527315450846272191752043556380522447243298457808119207470628239135669097811615921793753768609179462135836657699740480422033005824601911067937841817372760421750152336968900150595352676274804956039875473798005029096743730674684642957203011648559373492063045404786907630487079516236314086910176819451924711792378723426464496295009433121731688249658099768928275281350725523915079793451912172836912163664525919055056609663027244729912809153732781228309548157866167591890345765324535698427604547764421114315457430273914718467260501069858175040242972663910288418153960708101611235050258444012914786336430445909035197472211337412592840880368256208683671444023728105743626795169132467837649878468210058497428555903121918738556975626274018285747015036168808986704811350227104500110041440423837085992759659770483001758816931851909370170140744984947764463686204107388510751048292325697853300701545381992927984314053847291897268717152273436088766425611273379914816456745581866570156076650234744179868549364725632579962864358649328522630408016259302824607218382045216307227480281138099809100709498211168357718666210465085021867440136920884292693281433186793080850258090240223091168298462343773494612136495253187169959582292712848402181639888219876605281442143888219555220708573753505351003494995459342809477464384235305160789546510329085946207569751096684753647122137629608915885465639955642173320855172056309331527869303347328309682955326394062756472611210947409659313654646270184565763119451379541937812434354064318156133541849170668280784038889850345241714175557549497050081512527658377618745770978986839138491854101307960007700036928650245625251697809204123676068575966405209348439555710857888309398354324134108930783682076292070705908789504310435304677971261384208175904633744897128362801190454545538005047669892602462986524661767606428150412984659138795866703741827823074739837333072295445908216512150732741708185989867278109763655172778517493676738300860358084567503472604225052511272888651109052848454843441176167155195147891484053760608481029665132332591106858856069946697829700891949424597941750151986546123272024813001152577614635925380061633309787339435075743691304941601797362225463079690298376348770622291718197221582436439477487170874972584522714197770320153681593841366008829074464657232856406432654096230142725721899087033400168681804085313179882668100558258670691281862240026908430217156390117409194154474811060717374615967366671489417182806312193140691588759589789003893975183526772000066269078342693828496986951627283253477904907842338652785206846612001716784897343305205547859298874480645769786325167931100627562378015448206312361485721994691100466887128183996392220469225207881614093818026997819061384323397552153247915542877211130260841950011877758719117419585068020115722705356756903514994195607634806239229483459924715149932127004934233672156816538657422988154862882841389633118441834594843480641945017641439917573696340845992885126827528426508928693138087972118820943576793191759786577210592930132780972265216289501132984972620602164859141376717124252904875795468924059295649228386285679223031121439050958171060031039647865766727606625311290403995811018830832174349136245183760530145369096715339677839722073523182863051936721880423128699004640927139449096634706529707807735356556059980604762954172137717758496304634010195567309450472525865869173405025330040426246394947762772792888802121135089284077914720881573491370481023082154565807870035899622548372797274077400293958017232524934940110040383336963436303445554834308015190616481944514842521088675245584275214103450885601664863191097840592794733343299176160961685204639961944945996636442633844932611013873856003292627055070515574233399476390889465002350430657862192449590369897127811080767151853049956658456570998625397310677389888485911576371417858520766023911148971826527221649406221987619100399727151043586687811950982296129146276884705667757292607755364130992929170548138236359940717426950415434833639749468185905155475868788104143078829928204049263000387240473839505328552985232020511781333807530027238005004756978509011240711592107923218825243127418248225304678539446315148860092121116019882773295906392264712261372114572767681904261949204426301158946243290256866384101000702694209076673360847778959814708994335725828131881512033234847756346920010018043918401282570806204697455138548156612706549560963479919050410868106148329143378870001306275020621617666312855356544608644786457676050463645128649316639523330521887940657602717815813184806961567899683524433074695149455015583821320060855493532955724844043901655456909379160267419378919400150738561353820547012543858719788260124248378033896706314951843284024214702857583047489322785342801506573949656676763057539832343942294742953960571784259112791620446118876114351784709586788176131663578002102108761825039501267870701683394275477042349571233358024727087338501050024696194919092238916558594499511073681348818523658994834412549879238210850505500326651063443398457820796123836092084242731693034497052470099723892859949310328135433589570397391023067548490410845450082685084182874583149836698147839576334103905767384492116930778401050128375068216923664823091663038404769467903897554037883803978928750003308615957763968674039580714362824251388911462292251860545316302129749638998311034815113796994508952811117568110856523122386408458281750543688628513207152756680740730291181638062340701726061494231260244201550883219654316300096062081086958890663814467228441336278264791185363447746944565262085149786608913589536204023119408659225281327237463143406900808362987330992220508213719226538205401108114041870579914124067413023500796284024561862368848627298777235965871427516287115446015453674996327381862600421656440653798918646829422035038307598451090442581521277400313902939077326806224488847223501219192638529889093018053244091375886640719020732848965965306027418158676828822019678427874228255346721176733421872641451437565434279947599289801265505264255604594288850963130763748983085930000053497416489105734950806628194083274237360541744078082278656495020127127361547383542516579276941522348544983205879421010307726326016386816261803184202580402136819955521807211407458585121905488880408554258287672744328960466095872442837974867632663563870113666820397669625307197145364111876639442179758735583253611628910487502249375499557046506985150211503332456300681074749247346197762617364909919576774841224345048255876272583478558457044352240393095001606849504419226105023077466906015135266589988411888783660414396213067179581524878148112631935650604409489060821751293290647377839120627376796371988891252538193053759612414841511894175609186548828694297345372293668813991184739525165837443233370029503570600549951854246665948365433356299591631171993198808436851351161402010971672955894313124300121656768734679502284917684664961680513890001739505369671006262308500132168174528372625984563682738153521105876168555886628187874147178869078485563691139069315727325439550491980232760108061683429026705623743713665363206280406311443282442316824636269315507197250484335054694601159848788281760928671046678019361373970829248586260247892639275003665891055353257018603149154757485895725186081113988164270816733809432425956871352624825644448326365569829300003095143743147527052248330806584451712915704847835629621124542644348183660393945929831410941982032675701730608983113287645791409753657051498295312395938230726786017512834162571067327740398261578155231889814007577016936648288895866257789379672740831234489047656572797148532131576153781645155140681036890082341176631370589146075655744177669252417351119582739383206544542626123999410599003836336000788319780429180637969994971592777801006995747291769165824547608640168071208438599499762199626935373039506162139064952779631994380307945665050081104719842053790558968704103434171181031952485569228256604334470297202742922266290287234588855836681334089521351307276845282064387595111302432604778141197282515477934497183622862635447666629089643438641532842028438481183628635440706856096964240935789280736139027734408414833296863051700872379962484688642272813398157559418106701670904706733549521668017391689773575214094913926421933527990724155611733628341238600517505051295369515281090531882632159086027519499345688325247804823522166054715169756680156052814590369979244669517274915603806387424953963592727446922689232147268606018408648269538524005701331728926326586565254363001564866469652336770071427980140115647071601247299944363653862441278164194794053586574733740754539541727166864297876820470901869048538511661510410444854450892258014499859617903428072388789238028517250459011091631433369593784422388218041395912308683185775649643089574506758368823306736944005013704934165008190875207610562425656326802687140425856763133614342922801975173048801518324098885035991528061124381921387915124321584142804289644685994465221855734062355030490688495950535471207047591767057218072004427843822765560805419288313028446273878028951127946226055650564546046279985273231994868663354639903209053527383128011167401967879899661143927987858972280118259446587129496308894283843487602962057302443677280565562141347520732020746257384231307031924664503857880169143350680290278224038755531040832758987042155581476583080053820423162038527082000935380838375936337824788357664445557989956152396644697452476652069193770623831499046944920772639283040891761574567814625232122772890824934795544237425338959764156364108065757879285657149597465137155963399947076309917862577123361776452979312417766189469764675355781323710455298296196499873235846530609977970600984047580748392891525591300428429724368849926264304091240870994693624934295266248757570336196121350649623690352848859482635636528885734504719678061627110729143393029774934895935620391255311871633226201654937800516534290296258920675117570832203307864120603393506051752176615043890067853597999305691296240130762180698703090376448076545128246777620168526135320510223690361986868920747266397061185054268091091163837623598202009217835117941960096258244383844106016857504433647578394007667124620409703410654924995925546353761158173710013318088623424668622782604837275410078877286248732250647021279478089217254774875015260736500784546479081280926407880465340260827474811590001879132780563242606693614094955678151918440683319201743994770479759438040059729939129529806664751671861711315761613717825801508575098239368287088103696982721222309465844973332947396292519606221886560924102750487670387810045055832812450267264375310405759105434146004573420670496508183953595640532760598768042462590141976028417500389422012491536569293940159343449887198811996566250288281412177414685568144938893084901731405521908288225686023679616830972058306349042351960115899439757015171466652779944294661783915026274861712491452172867407340832781049305000699640102749622424781982513115968119667305272744763418366605814817697529000283426199760793475673315793249195739363956824024822639553053406689934452613861431748074800143110896756787854992824158676037147813343028464616061995448833847879421465944430752191916030282480597345373851647478838499664955733047227355624578465489507773299955817661345139280465051429545040034560943054010054612711351966499775972402372679421433236811467027720702353720442761463627710352864481751675982625267720744748616193764739731379808228902995139140283414444702368731723907618919041862518209550114240620059307397542633916959244472035518237902136809995946972860411714432717524004999788111224042867989351852624328377914110593506977853175857866608602108408256935983666620605279827275160522932075229772438069614332393072298154489193003648781558887424766416537830895467158307123346562104789258364926940843165479753679344252681455992546037879387526713157428696044831665642845689779411644616530559176578126912547844153570831509038105321720060131782787303120772680672714110322473866487659012263151860742882313701946482698599792596676412461129719012449295951730073618954969612126197221618910190011284683871422255644005194027827187166464982993772811505250984642596108123081104244580259253942677828713252410696547136338166835058736844907020403679132370634398313385281491697413000363365638331962281105961862457901941035073638978152833985056817091638625160036159638925423280708136203898005219920927311622522449963858178490109276897018612427395449725074440270280959010844465707909524400004858380712814252627204525174748838432405521810589980455781438300875254723531379329052343307233309346752497535850573497386283212553259325633550621844379717065276969900582672028257177437271830965295943139229945520650136408634287377865085901398018318142491721168304619985751330441743401682320919654785497661335720942230849945054348576151792736238311177878101522889758020979898320687903796963046225427218828021407315013191210740308581184028163139143810992273598486195180112644065866849641294599697786015096396072736732865632786294394023282147500392717896489904878332304928321672747974699521687705773142332917378475923457488887588419179071661451997372784869433055248490288930948170563088709381107900192306857435884953135587745446869939242312860511399308531114625746556079931902713080803944502985454661127017712655695836834854356901417695063179035947896523190214203617956363705448495398693308797339733171726799106075362590750573046999938680425355515899325105408538803618189660843136586159074812676076611166989963867868172822578848380304096830318958393263487227251050978008037173261913593881241621386500248709099654585149859249490648105160929733077064697368046390652169735218264241257104734306008231001177596891013773176795494117360766637511471083737777437737025910456626403108921157937804061439939047755608943569885710000927302207906833305438630990944329388364999276145707118051221892570688739808196564501362066761412691760097427594236169170430101501793005604121792024701044768196468937559839232089205503311120921705286260518641400918233373546351288436427167963685933572715274636786799425376781346644567120374723331663389953324138732206775525020162134627445118685131633824305767260506941686102054817029651246711942718507125897578559305018150476002434932708900382135201251852788878456479618394383593651850043658159278620792340138771269515152178363771424053122522319492981800546985153554196940357628809292720770048982754644459275686110892426144304914363150429243358745539971490495285798936339863588093127265497074222533889346299567841386807758358942293959487900018690577047877131683481806553444034893993826310096690044992617192086860972159553107380315413405188107863254972759157691732920465392715988921423505057448133565305932344076880830895392687578440905181565981116766196767457701566639732746669801061536704788397254894503662484545683644824316033100137937977023167343232102555559281925042925883265795736533829543436813718229230454136542801015005905136049011068870018522191672943436517585812732481526392870780525123425726808911358059828615367508152703753309920993813652655307215262190137884050911713776698832450347327056762608325241336673817697699079469663349466259828373387915556519842127709632115136748620941833031442066971563934633012347232953949312683228805999010316531497184592015321235868237472810096513432486240482159818271454634412461454314046988616825356418822144426683116267194102073326909734210880225118145861590356151106598058183434628200692380362368558421366015425496307985811853848296553973023356859927109594307082727989939543516907410314458168043751567368054989054082346706057606516140174844459899415792840835217273095582865094686319366967793261058870823277340211770098972225871903014639945970217122408175239177368000903229286523838649183902926941591734775022831776753344762973805347227087571820349799207964855870717154267852905301222037163307804047844609036885013057176435701623873078993599646677225129581556078820611136123510691831335706592991918511407171125580464092418950038936768393091215680423308400573949539555019121178190436361019663020482497782442001200705161941710812621357359392253311522023661411110595842814528337877758856803686640105457811384105110861578607291695022312554193157679170777001437546042941368368273748561462039359919938325400098713998905637501337555445662075550500367840542822582142580374194827237138846484048953166805621806786935940337066593770756836541092007432937737248064190324824084280068124187947918495997332061800210173577664031842025819079193475539247370497815091765399535040190562833856390115162372568667677321407731140412550201111299128250255588941705468493170590198655662549332029971561460288611030733592282703224371087883021100050601125822417150002503007592171221278617204387860023383196076714992672566812730128100891279137729738006609222182494990602706300766883212968117431701531944250357713528765530338452507212967575146563979190092876076674710468231362497977655529256684742638827519604868470463590725498039517466993991768948920109847939095334110758994744521528432697663645373823421517746378877062265822010403503034212776577484840487558055607343871577699654162441458575308707546752880142674573852419296026299210245145931790220655942373764620223487425207649846561899493160948890081553651899410095502117920834480510158739318902513048362028794727153162445232289407316532095322477744540384119249786331287072032118741752102482038601935093212638284643115685828133611094450848410412837200526519673107919816124338376855226086563081879392684772612648795771768461611141000337572226171124404580585840564366956058575181679448918139790793433345943845871187879302005792811002890918239570763406680878082455219496530934438224070599277659517546640529302679250541726587158126628673125921863877416938471777842672425218556745637212206792573031154435213283327330622419504136242361855552568321581371669011492347552892220496199053562375319201828342935317655517639291942611934224036428502814446391133555656124008853515803944834134479370453861791582798050451950291257169413788233436653898348653627565123801820481913341625761505573257520813190739114815426248947082449847562530584293000252710368448105582842902563511047829933365349335992810510955659278698082456251697183804750332163114359983270195939086151678612896806505310863817571602352837554408605190220588093032728486799510738708940627672649127519186686880228501865702535331623818960280307391294031084581745366301765920542070406371681572464612038359699765520671099095432542656783850193914176363266111796187593862209528883138388352166949150480592499878531907385077177414312793859283305556548314580594095386460407309183707279555638318006973671853290743622372852718400013564867832284989721083807038440269964870313285902958584050210352604395126069066363834536271285390880116446353604138591031990767430593835439504409592779413405482362735491082958515006115858017092069478771043656585801440046764325591624554596703940692460673262064267059851123338973485247746085281187475525328538665186545041419642632139582669659598041309769281711745821343940675410439695324982036057827845381965493040538079696585095036193729322261913037726902165636271722000368110465891927390916711726800892945050141998620859676694923035183790569542154377275256856168222230021498587122325927363093512898037008441291582994568169371884410385646612529547023514730735519513587401493946685069624164313259285235188396999417826563856357622916123328554539244759755808072732846823888043495284308345446928451526165832039309912582509587344096648982218451118446206529014099907942700147130211266222603786411989320926055412115091103708545280209009647196206551334119582273976121633887320502735458237869534862267529370968451122810022907515351735128390738175294391752087790542444777469682911109572576957247382889180486161724828694960948456452597015259380049520302834292420297537224748298342083673608739356301290500413776126497866882018385743234459876808711039147486693372776365500766483284032178745040730644368715748762328958990058111724993855853156800140638802291785405091114914353101345049501285577071414508608262027471614804757036739275047625459099818332714407235137537641761024486321417704706110961764693938304785913500309963019269766916764893464484953228784817355332777540881954842605925217669180421342434629152077366940374630549591748860568127278776338328152272794550748494073534882893063889095283438349918048911307892377408543808884933206658979904600246819401777753282586944895850805190921119744590050872493345764990604406976381314573409689332733771167216104646072390905278527400193047945871054686201288933516163539946734063345170179524964061503344302204958264533102333954033877938467169324383698109431575767852704229942853734022080372926878309185215862108515605019563126298908162347244661807129102306137919672056295399122643453307164369992297315319398279165318874186048546657142723759706830511487691100848108697638697258078942563062477271844555434855473932859182523724708912943569567409092034715828394862839219412039336037851300185678606578383093205038771250887843007911342264291738992845764683971146660684300080458895541579150685957562265136673841704256222528942918153137587869387284826266292268635895778715227137877030502246225597024130019943206243915366236667182002963129340112429961598216858233812947703376809838645874810760700867194057559789276162425665195259741028073453798999971016849277326636568455707223722085008541801470773894531606356077071205145646644770532692880268077568382924056931704721130052801510338073805816647441478850652489846485041871924376856499708676852588837738046774281574928452830023794921587124324200347279166090125817756653072073269066374123069142922320605647885168316343603538103080523851587308723281765669583957042245517829422728299419725140437674539453017839949264893310883961412414144029542773648463547396338202029338962190054517381154423078539130234584449851367122437095036117548226329685553809103662833349366517942839310045802127976134797060849130215097837857800059483727387685655303653082407889369566288958638136021629269892683506315355943017088570329296555556251228000802774176135571608042812960901832721439192328788571165338650968341621513811990309915739522475469244161817508130489175246582655364589699474524987722996327914567857133289664773757877742249451432990774665220493713722280907206120092429384823546489700418424973613106131799223532734988773664692447448815516739878898604818496529059854709886485885078338003510215642164417934808663674751394478544432531070990518563839710143516671222105241593975602071585761039750672852858136662590532078488551113831456297247782849322610137405995075295676190465514009233409318272304982542958755261538942198499153172744210378362406693231530408547267324385621936331734089384992606016011178278120707264802479202461593676326214683447519531500076601444747281084521313043758143427008110565656168029999736605630416960182401739168838911116278884023475968108775163473004883295920370637455514330468979463752304390684599016644751950926570362542282552498382090615616336661339295720466854410717089396349989121656200480262973109979336977147210088460499828909733184917633576954333927229603159049059369799610650493290653223000866435070103793947082931524823432872350383722209351495447098992847910708897985893234714371496932788163340653469682584317623653550600998019348432086676462505458194651732038044601677325437173515398852683652739107193194767691223655189005082040743381330655009072567156770236370533814036025617582853981961476470061120815988671784451008228652956882261032083294997992742393326570514327144420628442101995489489912942913232882301731969916237551674435823346616172409425189472476577823709643903440812229862764883583522100986844576757257938606410383341748992778576530026202624339768643379929995956428753100935241963674847417727882612452991128706575052953871956246128677649468615982085371569600158993964261161902494184812050741575053405546787018337285300413023070192027375910394117356656025392693795497182485983341377191316599286662575464934814352170338536250730339444728572635360962173148856036028902243888626427311869805513535850432304127819396191036324854441950725165201261846911873977680433686956674402366119765281063731217759795232932801216006975045162419803724200598540572347204303527537955350530608468307580888520232719822650128612682048042518238269703267603171257693461174811973391247034009319771346333503290379419525807942103055519579230225951518437576183980122435480591847090352924628081428452471460767359154545946113353631646581771251101379537981229621496104992966781581986146014104593474018711332596647455340385894177528750384692591456735910560173339994202799434412132895939721351358397532523240579987198108001203563978699695249171202506490672705665640361718156530006450063450683940959894702510908068449349873334878300867905278206159013514614294172044718858026155890309037670446667665813751404380364978866210611126782782505836982426064443572147612379920871476547878668644258357779588326641845475159590264032872330163213435717392691151314177786975713945660249531513494472497967167992946982638082970828152438358798714599888336919771035694544897367403669783424460263765672243267611722957774710286717268691018342659057779720425830758874016990821758905550691841686395603675526361423505257298692179831606780838217213931875750033585650168835032789101949200896532434467600740568182930784722759350358621131582561936327183578601807735133977157904528648071369999194450991709104146513848299026814464669948527337313446090998351936413465230300406582319170615636563977848716276260178108810920814543703712426687528296634391160589751597044749395761175724071446852887121144108791155072860079567377066269780572465965045780751878871655719995325663642746288668507985908886998502367432705750504493487076494012788381586198957315428374150433678237511700918697517341404284111662894456429351319437398970119195763277490782705082486171177623541536302814554758617868149805001202925709366620986160744450368335735108137787241399688075906400465481600741440921989256691626026133841233093286463421656789826783899609564261888641847859139410087463255512545078130287591518107617229861877612516134820856415910718157445853198490654480704546326582112098526201345801099106147778486302659826824945990544305359885185433864819220796797906658701332190620811814832766167220792144706768927298765668435487720124262136880835731425596057796388416187341176256805237879959236815967299630124040123510693819557411295813353452138321713168622159694071674244986231092563199398303793783192319846317306651032121679855462968113520377414138118744571300033564928076769196539280769365303467940409242566778336138831363599747361149245365178608277157955286615490098304464685621333341799526136340649991861909018986446692988705694608824861007407379717188561929867154822097154202223325589478497186962287501371353354351876067001917862121951170596005185037025075623562793672691314948382288211286658763206554551129682703524509612545424971536658476385294953787596420929033255653781334804717030949212585760538814100121164963151445176581986583749187645025391826705997985840888991036565864013166667040297406462404476037157946346191653301839109628110328707928393775836956855918767123866970913201450047319472941444066425192712876100540556841165211057135593547228226679680509846545037141084777407918888081049827101472606134606100548473536060016575738403710412130714733051457125774566182913680882660951063531593632604499636450300000401614132446803993277888318649657155956079256072718152270410465654895985863030525657335017831783972634548514375599303391216456713280379899660446362305098251243017308168809426479211970108081321201694133228119377346397374098717660448195620112162367942174869506993577137872369323572245469278314801543095213177805447973756164206876031660998849516178041917762566403968073408727240279115288349348349779925311321701318521760558571053402305549250856699619191396651268303667139678641139133267601730515292009424780553894244211792458286030415683115682438495396814788486352604150690776705582173401940590587959768648010447697494542693172307608937032315501569124253341480332135806759986463823685592522602889825203845090647298494692476835450188347310229220229417061095885667101188578293394239554520568363274763926846383696535014247946587368080441636778674165462400545267760573357389680751455163621969089576145949571680617327901441575240447798204934880049011851116874163426779747921208208119527794601948688856250952865824600066809770167758816475811897912607523342651413071035661467655038360918308215134419405046131926603115175931069791149994300257702261146857915805971095269039247772653720675497906457894310994900392284898633005622924573148742083010429895230685339008967845451026185294437327839896384649420745414015524037021897894486191705980638041937250117267729925431471647979016398936230057143052598549601637549086831821136656530809264429452710070896288377097293143641777407989574969874563848406245672722013778944359596745793981705568349185484109435591461941816447912412279840107761410733369164058944683474920043210921544432075527927881704013587993943576888650547038471224834360995395137932642329235674184637684142803766832206866834149125234829786023870569552509366273875719561973430087074470978195164533845542748994376555112780214378338813012761518526933908996447590531073585230603085449250685565882351690835073424966035048830561267564305638536828363590765330671679952027687917963737434436440152210636987416442463019524019373137366540349874734831400208494720037174753558341920515598260722965836205034502620639668509268206473694044016055506873319263383609699976675222980127242382290878482271507283592837333960055284630962929798749875661098153096547924667163226287498616424576945262802850777131670850008784522304941302842423562477823364498743687367630490343798359402256094406998747307043206292009428765367076915382041339271958868992967024160112090396628102789972726931351306688013004144611281954201382593445211515325008463861831988024386498831774475477698443860194844249709204270583865229365756349815405291248636497381886261446625123243642111657950859286112174265202922806959353791451073527455272754355442263088473457548613785710008386261274782750551687033642187420921514530946054429378209058942185544115765815082332415927055895938690009968647570587772385771638962427340010540640754424547351907443880792898468188553810162094204304759671902803667466333253157856415511211583013355752248052141450572087092734242045859840124766419635088447675186121325000359518240339061435930287091710270093191887636563128856304154072056003124409301159046673001677049696717693927238553273492968266434770330872611982721095475869503655024251999413483043186543241684283712349752947398682184421986401790964856358917533052594367255770409636770071575904414577702404002142938488924152405114511110943342576650735364018702580896691593141373526589597328138144849375963679783256642045297465507685009400549042908988560564596297199832438403119582023031638669485491985141468447902837299330074910300780744282727834442727739176268944015400481007947372860596574426682300175263700247735175933643539942713641142870255883361266188897995347111296557957947723062340712753869764674756971544744477447741999306637639608148634387755806012835449820036242611058399870274626110751755730079727855913720738954223238060184362037710871662768488951624105708759919750185138580474342842917187646813712880338453882673098062655171659899641168428740645408198617797077124559361655396083354894180625806497779063415702954603348739067734106884168501925834986937218541112767114578800979164885522955582506049629895802117762335905807523081935527787366776019146585464597347620341485275595342387346219043910863775684076690385616133085735494184515113767731430599400130929782624949420771164628029195476459396363662824610642364325526442052543774135903383573741287596274974912135551790906741178549370570218348890508087010344908131329478901249064934337397409106587293481719711136853809030057234449433026046618762949052224513120212213585716501215696919957407109128069150908642519661514564917903089355031100328343019449465100939255521789562061977184806518264066301181684779752534034274830036950821884970570487174437468608484039923861419285628045817251343364452157899551652875192514660175344064504880013454234124389613217594722304137047877714975897219979305352814211425939286902232655539491827746132297920903761947527839128800095351832881818957288104886552647453659592809861723260760714104410266465068503995224755085980841599193790175265791269639265628439661161808747530890166028424964608539401994485391158944714509605039814192246204430558891686834336287635178659788233055274543116187167780042196235271234053491048005700580513343147225175442173439592376052465184258334978073630617003911206864893816453700940229613113676888625663474389802385901412258415150382921749904158313900404220365490538157658727980699941862362898340790707833259503235737028364881966476651750106862570014897740999043725353529001900690321428343031465767645353784320221773349572069804656794466096155930960295259679988845186857491220850664287209012864120266369645101736122689931425025155243560164327110129474253182028912843881931529827151092886864311301038553838413413630606044596218438006371484181959350237587756863694660786447758244068888750921537216697861653344330603798836756750796271190587577675278339976170378924745200602663976349459431300488629304728588933585767302454546108044155704189518462270971495592841678989337709377401684410148786714143589772770246924588307785427454002198023748754309583260186130948245804630712183461412180538528279215660333855126920808773581351607600843314963765012368467825930704734175408837309372752678999563991031145745278907634220480837967858893064512966408299695796395103183673468483642934734406615664496776177820469241266410679857917191520608538206519820710558292224191467984830551746721138057949362042279063886017836126360270004079643133570561932501543299192319461914422236510858677802955530338229099327410762448936526434243060831804232737098125277590750927658766675941667792581635150905488020483069982146055806157249242724713902918178921717293569687222844584149930341808821966332649422037393975221172179906814913962555035796275788694778401454831269098832975532819680936890837758930179957304679985504328096090793634714392162857341150105079639208610031020269326280622007634237647323988563854121885354681995760790823174158452799091043489617218493760618631415801819918689124452457649522989073712098059589668273411368250016517606659783715736889077981133405114547647669830369147022621552071737775644995732818304596283062782400290779372531775398823858346709014156206941940764754995277576950303044073189802672315263857287808677833630457427927426407606639286385887965900372656309473483447873548631687355012847867445610735494640956341139424292612508277894633445933919551288464588749872696846530631130518772743308205843334766421490397650650864571784199772984921319225933362830005678450697290686129978515944586391917884209805387778561743208863293295234562331313505357562526318885281136732949661871567949078833176852373820301409680915818675581929629236728760301009080607934327388150720935316391380019506675505008724644139766841847166886995483469239001474038559302906732381684409435408065134287070492855012123234082783599165187756149581766975964683441016461798768547139697947677160343849324320172557402667984298312397265166647842583260057066465783779811991772541890855642358386481785639101687573581959399321480392592205926777405054638652668207612610658125023296014121042228614527896077058129520393822805900432887834906182635783458663610811120296740281005741438010023318331595560313400020084747127964477691736127829269433525331919329721951242446883992385190178124935568013458482585467183989553220055465065553600002252550014173872534805949288456617120819851534622705424768548992966415969902120823341352217666572117556953414281486378386525151215628330201398907509350673404448805818467129011933512893779395610814134678341404490178511568197515325558330647259999721678707734050432168164116080546740581958887296581127699419133844290817089737715759870367159408413295081283759230002638462949043526182798628523253117067897367414251438244619142266719808335229219219049292605578021031723529905257477321466120047027210290284851864031463902029260836098064381819125119785415926628219204188323561854766633682586090417723553784334554847096548668909531624187240107978116413818664980587013248150275894135342489838612211707290316910311294562784278706680362639805520510967787743866090510719885875139469517506725576461207523127452774699499252511470425605219252639473365296271975880683844544584838192559464474269034284870358568496750251483837284682797152417653518237215016748416724626896898882110781080150380659582264659234861900039372346743136522272973057197225763882959121556153116848653383836071762029346822782516369141444002221500438133975543618251001117462418469491638520561349785046365035702774953801643173358257940173939879757777967516108539845402914113088994750406496672771366039901290013079800580347461967519694319486080700944988603583670586805638683131749321219461789257364649669894373322322278351703268299920427974005246088622723717367533864840340537229187928672634836551450546225157598201921979488361399893231965759075744583859266187752844072443961255179156603877243145085978761193991169731870276431345734725710847758981161156690608382161330623441510963053101896927713094150259162405381265073666616929399119304636157311595469736971562657847112335628124708107972244347079221087955331914212167837517095972535293490198332654391541699887274108065977174717095630368159993190346899157433363412552220574172049655826512740161133053826529138115806298186025752573359486182532232561770226799267698150441854790967937375211486302300689388018784392756872459946264073376944385732607497520716865500636579368503143729664676094119212226370981033423793736588793565863381864734477067890352532202111510736771284211759716984004199706940689789900227667249594366266417387719207434453394130912600691609660095921485116436036405996194559944012605234704193521511551024688133109176930723986799922781119422639872032216600042455562294088938626362235222212072090381985732907917305147634085165752446932751872569392609372450453805248566992562625006591575415152966596573936035300870652866684585903996404781426051777267124695508490934810446412408901756917120476714936427838400624826932263458184864269514244470417724516528358069858915682936363584444598740998746579591290871142490938455134607651215495914351600489310529574625748578700485508850819509720930921091077610720265064502032550606034744195680121217189291445255498612282324990578443305544238263686455412597135664169618323857598637803498691445578840821277453687991214362203031933941472062617360291281834306702647414867904095561618107188825406764809159841988735786552990709885381953581392475963607864527281448390917869432516308109997643211547803258475032450891054953045661730672157542092202047063613511606792469434615793394939766393217240484658810612316530568994865319274081682336250290719249629344962117931186019647023184178649532547042738954970426283670860987106327834336121822274767126794872420765785920857953407544694128066080650238667880392773505328154294853706007105522202791740113264076008237003577385501160607887712633610907632089056053035194545774604365578176224984065118406611334072947028018742353571733571071127814709196340452817861090987309960365852211701768932749257891272950969219278111994737792620161179890118824542314086450215539111627249764767954972315457580224504407307979128636602975798206109771453488037611706416657028781127505373479930971888819288353286819343275235340222599078843582948027739580697504982005725115544902523183512243016309414892481198207405210951337238963484964910173582235102920175332955611429219881664603454335990718149950213792195699957384458451618374848670052459145659238090701594373349712225103415769974533526467008905487964960235280125299089587913419878910601725100869438646609414070233170459877730867609090286510273261020996676754399208872211360687761389331673738082925366695472343908065026215397727547086191927544867827308183690252860390505794250250736765786609189161177438391655045857611223493588420815960348200428723058192972743188415059627208844616218359629541496288617680165520392616791726768219839130921914124396132212164391100069289170624280977745914327886545511231747988006544676967077831475751731365398218946605266258286767543309133818049832008519864622242323939679803502466733426349292338729170844045701167914213211911823778423791706302401462631185576983082846419072780995920213951358058717854196069727026611903513165357811086331000833140137882522782587580696968130218145411428369584139831087104979141417604961210017536735956985122819535080247956350104785555787934192386332846230161833813705193162946386543417295128629032301180158331723063947947331191492477308622052239422252986348253036526670928565647648057613653349783188590124982494631006210659227342793813298732452395133171924971326660350104267326622393641443176691178479518282398517853361191449909404564418655922477632444391831765669597910188544950015933449442554940468772820829894728087129079226826948368533529732658242793612649067077791990829834874365875985434321276087728519690410483401838120360393871308012604574128581732414658484800893717252935640178128749418857013599273611376546350631068363470355990198293786854377508045776203524726831885920174521872107051696705672831625570818564484833746439516684949641249990966106720812784597327421511853034463605003752535917291070320125000264667148779817567466026595523526334618371912530579004722797682239575920279522960276137610517776108523670736383135205426416773772323067614102150022176113233158169174884693748008298266084717108483807215954718174039168638121698342900150094070664047676913982573759655115973739901968126662014572286724504564022912237314149658590133127872811253123904959000485066907479124266745324730495383613188918622961350592579101415303645470976197196134965133067271252266281768772890057195957227702263935853931074581781714615904189553854823032667765784021443441113501488840723228671806905837051066788446971972749426327430587975694006771264075332423299211320686452072174498565656603392434045771453332729024221909691758294147222465493169204731269798816255275427321624305784780785680963526271973544487982405161567253335821713307981205689338381690265719948379476508804602010516648227041486358798576489090629597427533268264344755609955227266845348553112903888979591599518141296736399873074449193563196007569237159664340537309636611725602862423884383607412282261677846724414665263065553030607782685556006547189286525502108245721250175541656039266372103741501291959816941979475025534341931945927764176425724650743296527540488240945144098843787252743761154668276615589830158964822555878429201123190480604775560241856196867964474283320579046249425792158610008549703993312396484865150264753075020791447619296999447533840987370362370459583073271302574380793995780571612299646024935149964316189692716094264263423564737461617562812389525106617409956567657658889915754911078895984680770520113188519604017465756459909266555898732414000966684247328003338975875219202995614952741680918701110848175086241693503777567249035677329362545871330531330067759610524291853864026700846981559390460585747936693124649258829068004503215987539254693116248340863242181828669094275998597957548190837429037586459944664694418306149217866029080464077586354170308344573566043545204770821213144714000232845508821953136637875330403972345544015036808343073299335997751384148354033773460977286637453989654383925051184046759388011654369841102560810353951797218194381597250214006719242703510893191723369723691204915297810315019188762378777455682062266472966348733922270430049147835358806729288152056327686088509833660299420992323987600183053108643735551962700536654643539650909932353587731288203097818586405532100356109926396281895772289925953523155627388923661781198691948662809568809207858258541994046971192229234793445109629615429434698336950304451227875119504743633195862901163539566102689224536503662190409430122122521204052601311799591815394163578649175482410921465005899878499437125823040053681638207389435748542914930416904984231077831356881040985594740658604701298465067322954557169718212836436738307440440830330632677389103604601161891837742830167665646562590839963551370945085402265408787968084698763010639881925061413944178369815876281443709827044742315127392668187211503326880393854855882451577331861138449202919516996159719749339310329126211628015973648598623705957778010426479104308511232252112149430748546688398065481955016255383369800872456327715462256468380928158573872234941437976621491966700402366643566544928746297940676979079958800737614208082986840457309302765489200561802176220203982609922885653359627828140829986684383821437287726923287483573731188224276176390180047583914914043429285950699308797382072456622392450368260595963615291000644195662915860163717755032716588111576422206225000576075278500866572489850752883909957603950154024074556069100082626578032980768587172138841300810164220787314224485496311468562853187368946995748322916455845723495976614666808811714100556210346627003872362642203348815225326361462168185679657314793940451126132681476529587496627161299496121943245874581912752615758195262787469198066825770391887201256173195236022727509647596374011673711610775867415229118415851336823682413274856537630577064112206678065664024846808245176767656678768327335505610022139067624068651604421379393407357788050755632480197195945624516638583963627779171181955588765596166445099039228167421458961693480461181617560469343148524140529440290684674546137067909084729818033701834958342046361713426857643139114264750932318061049725741635877024259605447472538409742975076509919314847714679959053637834532606735180253197114279618870101865139843668549377802409131398231078294490862929752305786004470631210921153210421692760480659422955125617192374650700580955522398873268731593638039517398328459190308820026911250932682965994328004637872304309029462836901571958781521804511071568453301566894591531199814447288030240998332034399139687316836146156747115734225060517497600643205910259572928808615593481741457298076321750476143355493968700813632130593185408638218574779826359275952477592881264098456665464484446756216527205830592078048183803680038524385755125013887131985084557797777774956867839802621502888306529329155399450082169961557574112683699077254822615058555510815191085656535677780331719931619564224592590520723493148426494681480377251681642519251134684184289022173150724861054241240586860927136950846767720846137147274632999091739618076413426037558716249321093791214911475954883403814678496781593416313524813248481680142082834954534749801815747553329167282267558277409969847885035361426080927504933283768676006364116225694966413214120626352803692290835552775953901366445804612604258499138464982091855502505136945966218126806597699876939985458031250819160742352441924729816643692326704549732209010764721663357445711008649571537708756819164767546559677206024715123015448792191580534281626556934727590717475338763883792325865535514669926391154376615389321412965467808735315028004926439692239978865712229971512835291136336028170432237769540647311148592149549470689017469342371084623196214482224705043410936399886289518676020042896617033048375996060137203452156205170467221710983589205181446546241740415937915445281897915928464407267264921406345041358496673857317243462543005014188521216430316633077424315074834895377369003842670726182215851769224666947203094125255461243380051104510872641268930161274192559588264551805281258603899907813451518412825639950553830750323861569008567552224166729591186418835815483248723405667558609188987949082655796976018198818283780261950907669327188380628447537895483479126328873483406301639139301199175923305471682283924365081696469832760098420244752533828209515996079495446857991945584324620417833889944759650662266731972384811690796195031499722945457594676677368062709527496569517303959240731294522075815093526806542512551633609061986365470332613784182362668417549282490288442429207678515676665479744519062070998776560351540229966781007883630763828947307515230271774862173402965831810578611788298469758731929244130474809903270106530580994520834904062557420862322720395607828944981458956179809722737824636328531832853668735048421180410440755151493957584562957699298372924401414766780356143414749710394549309888043893964605225374959013236997379168483705716053189889649300991369863813058578663539022610615315245505383424815055147920006788425408620041053415528983536111920998610785568447464402892124403982751911411774481802333260459990908999112292553540643079457555946203106353330835080995035334303129717196602367781168488084513481415747847675059020874600283465467606755092938319305240501916907370896647757605988950330617124566837907112512014604598972355296141415210388725311838094674374585290516924293684049058381907884387948866324060475560661688119284324810028627622616485300746356568308177779343972018476890064177346343920782652989585880668035222688852074694914329945946440264166980079916296232899201219689060222831762118212484628523299144116969796126394939701016914317649828660251928932192939832287752899139665369925132598511247245781940334941949257705271595868642543784925397328521101559340252218129939401723450692768030827655565777541877101928227967984269170409653686986573916508262686162137312614442987101276363890236486165711998376580123642408646196510232922767225759719685871823030978827693418122108834635503109962322481399891410133867131121909370317122210805615306111782918160012345867881729988122364550251911884109521174438973792492735145890464983864230895784678345815006747839536674311586815457346721804449437977122586354827599494222896473820067839201242185366296958857302854438707854140104755309489112187457906916119083195603734202519026315729993937648736347442588198132929743229018186563023298554538810062300598991726288416833973037182462986374393169258782616948082666974146967704670051475017801071016275114069881244286964607246369778633665118684142838735884906922813374946714178991247604125123504887979535958121780273931824534068969708262388211556518059819919880251843195166163199480389148979292331050285494999650953431531288931165567747286946862154349177929111185352236053856810499439330182926989589905204087111293698996300799443435106097721074033047054741447767401090125067938543689760232859003952715900608452793958459788662349914360243321015152512677897162642657989476530033730582725416637305715765419461631706315990930628147700653701171592965168481634096563068418038699135233569693717191516161916416087095940276516856254493389631569566351332257765657688687588940713226957927933457044587194379844601619812385885930993196096038066386108563260507335952871005724382880998945702053178962184214405375616908374413585057072933726979826164937540987383384543835365856279875228542100372110017040251574131491017935856119168698534358027950973769035613687533376030643364899082282133063054911796820641242789738355265829358695502121078105782856310695628757266571516853076811000596720674933537637847055223780788328738255558584553792246193551448522216802962626608208855667861919812683658589499690499842589757084425175345615604792135993000078598787977455832376169755366563972268630360680094046180095386643017062818705032441815253347451946470824622407874232887489387473974251162445038927617197749981249960579681970473188914721926581376864722582823126976546604781319753191052026485675380120784491316721606190396548970382014377896734872828590248324656372090679610841126899352593198255121170409572814214940199656030527489824272133814780240573065538269234593115210681403220290210639646605859894350531032423179899573972186567757122935244063987775727678930208782514348746045953317326593507957469798447133207513806630864922694103153786542173675836948281592060630319746548378579617007517972396418839200126823109500387513483657454770546480640941963681857075784466010978916989813413918061134747577442673156491790451825932731879406227889971071346126812496703496384326665349435747448504785491878206807990725838675879654853371964098536512741064194037668757402862072047429588974277615150698996128150667758885864184164233911589493919977520233388388189665107404084229715491165353245444560541449281505330481088286086802380705918456515570152341369564460881336902076214073426418202466007819124608858908015330296863643019149868081703641521776472055499705044016549561770704085615157630255821991425976408607558311394652044572722818528345032962821497059435798141708637454296021299285891067351255084676345135819887475465406567020755278909485434235556666549693093664465140464762315529963687666221389238706240601163168918775510010234318616050206266300258779160853404503322297382387010763272072897398136661676918381879839916897789737831991624514063430162140661741007805884929259918876697261236456080827350904489837460358728503476766155694563234134944360998362825440768982113545908260083643120362598118333225997884509541512440048774029250029209570124755765780400730932966219569451569762280486492313426760621732421435307150364341720188675224966842934331007387727929937554004732498014667102036605854985797362901870623606546922790336766947596574892680425685150249153762803407413293260078757706413624450127349943805682707270298191175235054812856816388348138855788602653346054572172311237681182686125830968607472300416045922237561359583740572073352525104017613152927274553088608963454815269479636987350789816529702172917507888525488828142008527722763789277731284313737141113166239876850782556289324984495393937124860236695643686052711629835196201210082480939916199192442221626041135357496169992429899911173955227417965545538718386944257635115136896407127770053403773128399677767875687291368995373877716463400125964090956160398491308094238666710331176080656359012373645364620572290356307502117574200661101881716839416258141514809809662142313504323309349688470293125682871272395374374641810319920623521641083756923627043011704621587355785927766598632797995615626082520857208235415640249696641048253568388353806725734036517682869904828900726455225620853255947693337994401752943041188025978585452890233666433458781974218897810835911641024010975489731004921216147171833064556937652323311570528375419346633476316131139173246363345481972741925274979168243554810916691459193898613225029244116146566407504489773391424639500295496865246104760623020045435364241789715853602511222859465015348039257736137983687411071841959495537535159169278472326860120047220636934708002965051348431975373391341327821275890933235448269723881642949544823489429030326097429036238730736496586723319560678173145861131256160621775747924396996496407115901069316081139067992515414109650536504144310585898998131275329999101115426244809227644885899805872666456144202811465550662092717115769289643643555100033620249501853126484534672609392131254692311683536233487196552387198117181326184577222254986731786713706542410584152866746927524164568526049720685586667607268065792462131739541500021375959473375646218290976474405928652322341902716330969991874238056987440328441683622258421151998105071710439040877400903344350785086933030664259407940584289452725843929567175847794306983331003618202206542526995325352327181512147476808801988735644637078797166327338000232641983221435216954200993880518708202791478372941582441651047750316649664518535751121384569070359797493803009574802690574880788934006746447886932422223282639585458635482721730849097911387219057703243092490412270424280469575235802695766546594223426033053629356346020982881875155160470871281882383942699886610426045242682837374687806086224760545623324615939894567292756094306495056452910833169169662606187706608852054953033891522740503624357832504173818049236881916313329343630764208659561956336527446046047830726416315102659760193639728431362575167699446819844240031059295103689793176197074974816321127396824133671857038484705990159180305049954198540636085055400740808399050898794332509160857511400330814492202908691149679470112457441474288154376546674307553435569920035535924404632440646954211444815245631373423941419134343797906674740446852944413762839628145583999015965067657468341049209814017945605399437582667175562677688625717310530952992230885093439563778242604336296501886479756341487168154280279898826743577995684431582481604912110862150952573715308979935930933580333669511501024260983586724661017553376571067087614359871941737925165719098726233246713638216814780144688421233349879368286418248887384778850714374289667916103488889114907121730335611376963965081590289340548073074861966870759386461167184883544062814109038965488976789767557298017345488666884918089454500253869719405450347463986671540442971467715857053839765814537976407203197354213013834951879038630193166954513522809753975613782970455455707515962243224974596568708011290194763827713454729111569887706132848826147875488499020531689687251083112005490589460087277551554299662988498140217407204868730893192597769194171381316261323265979748977811425254736145067702113387211386460601239929610434283199554021987969243833522819093959852397497298540584669719938249084155360859701764517112362752091794838426536233992653217774098522680134329667472891703190187813305880953298075747813147438144883394223651007166667717824532602469129394782899982976210978619749798805660320273495334921198420737926098215938793082324470236639205356280202774108321339961716534007258718553855017052854214196439587313629432244770430176381558751506213090025751576412886932308693924368387239148648609523187961848121380496758750026025264765852857269060008062933967306475319530354342655072427149946255985251402277455384460581417438677910244747069202139583061453042210619662528269139587966302053267356192170935098528191134013280671806066308653525149599041507221499210698700899301171101962300107548088925327471080870818455715528544443643625718309444310209953203596368624637326644538045142318840092796072358091856163892359952420605923134441268586765285273465198024610275797019909417593105217819932310716123244496104281566674906680682331454329334739761082085967269761921764908807564643881596101459930827098118986236138923769232073539089031586178168849071760249651351221092830418675488093430760501023454784774672633639638420540982238988401389397622452416747644637703259068619397686302144755830812268207947253677130366216597928433205253914469346757324322397425592586371710508537254598225548331022367519412705576592867639234895824536739336645940893678596342365258818467442800612874096574739771669143986608367736948532419935227747927056648725827780008251259979321835786347030307923906980542522355408643439614250613094796359474903453442608776032382340032394750596335551429850034284131942659880808265440285125100627660456773107010707245668791564883075358147815718998275220332924129068241314243019958781703416911745739933615605013943220694504211735443197745708115377968902628334242055379391570091186194821232272417844333011464746012526603808947490882695605723772754499567109299642771924025932693820107012204186055643999103801884801474455339248646138510287249554698126239928093087622993906793551625797603435159922291042539582980275701141255186742070119183974334388135206546387842221205366846704625679499305965724394808068676230675896441034413771775997620095290084127142827176024489516411904352623240146348389570831882016215922680925524543536179537414713267626312622014745874864039267773277050789245349304788834662405998016938773056826194013301967223847213168697668321008214598719685815960687749520292591878263940760731596647184824528364339626356311349333927105509308399741979658900517553857869075784286404821819306588428105209225137607276673388274945017505252269540841037944612660379339025964565357588152742614569201668376364881627420054648761022691884826636645211208109816530797041552117495366168207353776490528261043783746037252174381254359948257511068859906861327683168802701856380837636619669240375640743046957604825392292505721434678875659424894872472140660616729916971193513679935381969122416434775233356173070917521316792212450855402528038585169498427157703466985121009183912084080822858266191497332608449868571232806827742657405677040595531758366129049779644891757712925677533513189432910853979315261111567913313820142742859685471665429707851360987697030827367073139870830297237330311189432074368314960484801799961529750501874950321322219323641141041156449023181488258792277462946130042011946906048870427876787233004641507662366453578528573973709731053301600990324355292158096546921727257713133624725295559192616246689401755526123346052885802897181961484573514671566366024590350510269751192774173163720153915120492498440638605890893612411822382737846312546388518781950149980083590558891927140124401569763529095634562736614729874755278026033489717246648571115015709992855277147461599527652025488319574971084712086362218155594867365818302305976393132062663532923411868232970579483145895499058906164197271705785843396940223489271733534038006801525024448946995232292709655786922668817907323489204536007641306751227198378541892761838140540988841564527389698165579884348907859013099601824128490441166474353324640310291580581463577137671078418980733200814586815663084141033089583819147200113807759590656288042621815880922398943500586833072967172825369895412155760540269605795652425243971192596169457032994255568466391907711181441154500850675286526104705748538460623688792481600302513077736392637087477549644555153120704738115557639039499229535460271214882218478094255558006693590969819386966694551818493253857955574205397661910805882148136951356602735485460998450762717829612765927111277639352206998200151869543120813220631292462695425222530743491537954963859773251509066045618074633745144467830428376051541829349528110731067655349444014728860588330554341878770760458171894608842706818146453761221195303917256093776938195606733275126806890805344935333820451062811783354535372024942714975815229961930884429991961628540581631760039368744697928093549071952792491440092968498931485435922558087522959795338442281509313168062717081166031200191806934156814644301325501255042501499002939466761430015222386907380944185884866034109132174182439217131097930308990280614959286752648917238197983067214752657032011767188354410123443397418469931636760336452685417591788058473500531316680380210149346060780399862091230678475349774787183544649794036624014164824006952719181557690074123318011363134697804860869970165190658003480660753978194027482006782128946831091067493473031213262276369185473769753627023876147642447556493995746053211629614599541117034996090043071110894374069387108173581177188245104860761279852649165069234878993009802893832489206681737088083483698321856074033058155024752793221774407958377229603999791088812507184174967159996139966884731731442857512879129897994758154326515948489948228927235311620929991951060551692893706490361890473140757333430548857984028437692857825094348335742485699256764499149559853168875087973217032341472658130456938777236340585405714501653506799734907579928510000402326621232954039634867519329608045059129529617837435251929143372325634238385483353143134222361380565572155938888482057219650523901693304665064504864906838569052667179673791747288332486843175896870437443889733358528977051960018092611267964369529596365694307694049976827248210050952027374765755969639510569089257962167908308783170106955882465010742964448272586824734884584883394194955219298644104451081449459736532960150692066769185976135862946617088765612536803292742567218985417216564626592222173731308765064651593680041336290122989731439437116566336302909533438267024308834060742981468140692043905064820855271903043209476326729559493310157516759607065864663256175129053895751800552452518641461635678729357259623998826308371432295185602521985624600778956158039725392575313758273467152118805658171346076780273714958842299853600569604253187644565606670639010613789561698888959982427333950619954275663976712411783487767246396109171888680077161872165116865801443234946386354819396509303488372582050387632809306561123835621203829701418732062968137443880384437960324739892813204127670239011803276479932807122948419007052659580919813709871269449992725015387486856522658238170100891220307115986430600502154223909938754032407024185698810365497594929379221891861376289838286271163401620755683745545995601803889266942943656227183724606076541686708185266298924744134480186412150214101761151582487231907223745040758637555843134344615819113124112587693519220058853655532242582239501243094299231835636835344447981955566385474454041600486494087996916138445593414207666567204001371355307910623514192768425124487918185119213079415567755090004664832100993588688890221546025118658900709999761449965993986373482062701057126476948006379244948484971189519428879981931701404934403425347684720526785367785009970689431623331245275582447735231739881392608586470266902272635264974682476014528120133800269092006780471095805974425453692776715203115697507296301376663122540879555116235787008317498207890474800395325691039875582231183064547729447648839988344464991195056233765290796723904530338886794932522413783535134183498568509535109144096342307943967266258194343504994551198998125495018311597600784141575105797595264034365694075726131965506341952427102651037480530451278305215316582690569900850894617057638535314657578025214405522776368013837229201782361685333156497625187817977332700771390900567051730007134095131962768262891718009526445946677229906754356136500303530968400865805459175195818819122828233797028419269053307778894266308606277326950832118374349336391561875537602728727017165515190468826636911661032924287697561381022190271762069071567298445755002121412745300888926598613788517941571678863481146890577318418860257368430258597451008728730667377842826709852758912749583163494725216019050017609504304248245517432693479750367449380737224531414951823899111287799991034755821276308206160678908192449450026860833639542133730078591683115052196142025453148104699675553549938766735427032671250897337367606069875298854801321961969958939303855253740454435943881923983889527619649410873907561568173698428532346418356721396058163125774542664709934657245380812288505486753317899488259286355324762074320227339233110419953652830671955168852484725614452586832549127192245266298225828136931054670168989067498181128663021769836939848187610087106124011017733377343152336164578604181459817620189147297015130688164390208952473584779352098230988595797320030138677853898686055017721159126659738286161716863880951301622814703071115367136808034874843478948766328939284926124112560104375413622202586249018762430171991288043506967910204138400420897486888975277247588450062599831207367583198080044363677895307218268616965213179803192176496266045588544981060349735275770500494108096815338162459160036551334539306048159583199530800872161063020410662837001399813792205662071833801762143229677359819181496003303882689954302638166785719924275846524321797606910236794652706023518142327342873150544796658709495557864858120574096116739312618276956507310856336230319751602446365300746092691004445957638231953221952925234285629970016042291190957403896281511085362148722723305316611273499259605169675646620534148893807351800720759972776677052030745756124814946164434473692417277304754421584232312559747858378847239658287610889393596608650371326998660134215944298698548072391413949029174029776940519480845712471094354776341112612058511071492609889824384067279838483003484698186089232375744937463449258397744950357223483237474055882508643011882110730303623260837050693972423168153266350161227751377080620790011134300987241369080732640600825577501208460714443549269841614376052764785853849460240649113613065037346436941013998791933778928803669251459951039034857001262862136515528733988418047238093289313396963851373040900821651220206176593048611725610311363708417203044373589063194449106817884629365903952581412259270336208421691309922891031789172701366239127224978915136470440615987096738582138619189677167965797841822371554718460015349919554276733573981782457952488479889811567342041817539695207873561654629080802593772561252828098741100420850199904264076538897712569656939041088925493705437188647024430538293032756771223992925818378325019586675030704974398316664922256095199256670881544571981848938811143873146016831920560683186098561342283606129158732372067765759677465745695559373353206142420362512715990699422623291960505982527817648522994628912861074284563204003040770520952064868076755437975517483472146708298217483537039465534193655741877661648384725382700135371958886557457825939567086061686045581736893241526810382243475927629804103228454944063199349230170760741550784826214808365213021379099587438770064003593006963482935843515816870046055457428213150835606977688116069730271474333077665596789423625292762510306542588996820551844378175938425999075669905547297860894798832891669986522737684972323551035836299686280123547491934798205490084076627668806873783335681776134227049878505986639961908252806220371269159343944121013098241815987885341091587117746165227646398597472637465763933871726339063978190313276019946977056971453563379255764633334548058656794211027646336066442643775603884555258335813274470609889288222956057331207891154821757844097227339011977020790067871588028663407025932328295230416379222223313992397906722302521829650384173316944110045498245842311181845039665982014535137946265905470780744875097072160512233768989565996426508944888968755495173589447735244157942856252755633849920761115778197348714754782071970451703383761786220086277679288451041250116823104322532311801090208509558840893270028267689381652524933662107636796589578199628883735805411758754571741691808172824140840964688314264252439632240494345007923618781451368402130845700166106528192552737008804255057339648110320830863619065750553046939177779052713828628329915385385571961712360312322565407115211023669125275791779468936469760531838740310702471436609524094864879782755997055541838907468695083171878899163222710115316653209379587908891169477611368876676439485747559540444089473844180310957147043634793414806390584803876619777866321551936063908463770677583310428300507218535470958346779230655810315267428647922325947768877968968439430713822656518767155465295862721957285091626966341882573633151106707769825931292578586428433436601627356979094431145474377976655287222854480892855814375001695937229657778722734875068778385145415195502584616683082943086731950144307902616205035621355901704416587714123056358452912243078004930355638607734128663344575144929833863260064589013418954676670433622183720111795630427417044409776614621306169252234596828799510796168797373500098531928921629042820719579251860848760523821496766969880834780120327829326634893247145701168455635833274448182888820749396578168835395010747741539133448713765111428129167544556517469055667010820701927275323524309254332849305103413908219650672306143062154722104540815350506125212023038592733122242233316631708350501043804866564370412341461098865869494638677338513435452368816865290138980698792070397436989429938205761631948359050371255214783465650813987893240538030661385721950751662705396688180366959892376128663046113782675888087082530709558883801568021585613566211617429975083635918537393070991185187180700389848545471624209034082268086981762708459854416640459948634983984278644888724327797363474812804052271835027046080531621355089618379470947046718453588924081891432641854753510214288363563781142488389187462400259560826637009557173811536658264631534938816550771338716046762261479223271063696720520674572861830710956992769479173849660906136835607704092825801123322481969302163801840376600164335138434709622198596914320070504927560103273921612782857253699943419018568309301162521693152353258322968754702089721264349161365827160749804983915016223236991248894061055591668583818143944553906905135880602279252082967330622138633675191581804627093297512152262184875953496085705837843549181182943670877653851130090693984864117678760359657168432074509277683885631525736043745677854440650519086915816262111123507148722161426367884541738871929596735697678056095654226850534579705172800336997205173543170750205630083777790632928037998846174776224066374076867608435541189056924154673062909895490925858717601983496775423476707417423909237248952229267753234765511968191372402333614059224665759776949826076469835728742834276006358022114027847794332611353895715658654876144175806011496239341607138928485949636163499979302201591243200126642041659347882818793558040486202577564394095398426960370778906481701525128499316945757377932386316376630033696070854614645859991308012715139087183298212056862757455320828376068245342914414783565233609620099188589987442190747513362871526678357433170181217616135720789938899199404840660044709113327237671030793263203772240682833446079663357839252173608594057126057057178355983954324494769751141232376250703153297099563919198818353656633106525781787862251938886181834187999504594126742152874879112140121739105869133224715589909290526665571541370802295678782270519537078168249294594677564214979568017601235602535757074767994377994990126547836021999105710670862931095659034088833133449388614593124742522540831571575743225865398355408174420805259767850651553275365466984957021309186497742199902199607131344517789322298076050959793812289108772357387870585440321782913156954962116856897990404771363001387710060714834844721319720064216805145274446423726139349945469780635612841974330627115208542715911896309586929264509890511286297995469153157466575480740183982462633536405514802420748699269532843745718910723000604940739788037120355030184305020701344400411496134283990437948481217102108962313506573841671187404386209919166624630328951993378008885249944950875243673294954797526424634411868272090945437909946873322568038197884709588220239369664300238989691297427723228410108649889597261122492361390891704665283784339964421489732271406649503598254502889234700051601390339482146396036600259973681111733799556928867998581665552038581833311709039547317806028706075199738927204207242291033762961094574110549189737008693250144637901448488365991120885817801228036149104137440266412902521610785091412221274736074945503700930882993365698448070359144972746154496151753860011841999557935327054043944034573180665949551292658349262467068663316638573274440985571680733226029109846801374928139808930774983381287676828781311279105778496832898525563508550571364303531247478169922984855347447578468188367974430469209358294778554010543650854991883318681476524107475051131590067158002874780323556298022833990097662046851498809883731365518835951138764016235277801359326114419136599519865940737383799238712357912609893778392330880915671102693719854672879329821050381036794058090756603985736396894256785770696791752624079239082520728444423580788337634995867691569538090075218006595830210783440482010315115877969254083900420463424984863713675365276570875734511264724381924742732531719344383945372152155464282681781163186709793165119040635645717379154042061286992993800071288743620961681364755102285089291351286944433918782406906119404612217644890542991638262867768689124137922507317851481056654925154060951869985157805698747559221169432440284955634625471862679911717797012511541896755802607760305736791659779399474905804144710997386589312740456193013782466051681952034704517562296455668232085817654263853111702084196819864096415778040533049942519370912934002254112617557717577555214320144272482642328667899266819642231041382676457131038886136603538693139984152026406425797766786874633955544990407239795043750921092288567818753292889734586733517533797147537232905490763201329196795298790104227171868553638268054786243081811411854982101955776476926374676229603674296022787683185305139989351104909376791503485481874430412918003634140542144387005727198971792975708902104289193139944638054201530000305941443634618633908377369656358828463340776822282018685693786173535860723037301669989157730254975775397420873997761384798239258881219970873129261004193419360530414693842854496749635993577919435554622946859963909842956919020324749289472704090399712390292931319510276266380353232426041879360297851993711100105642840503373291126642202239715436057618685252473916096903461783041629635650210105227702567244159965313037154366057696300232935051031993643225189921957784870435760955996431610740861789313796705031431672496357142872065775114608917644117262721956328802642930846181276113226262367834576785121806596427666891760723581383164977242841974047826574144503850488521526962394450989074617395961126917311673159889886251906373151872923623021453765822636201378315470870971381078706704566075278200345941702396593476765007036546437450425217913017554877103953732420932397345700487037444385745314671024246424165617363961812674121035005545936324086138435470472156297543421217620586549918119680865409461816694111375343410876578966330194336904200930422176556568232351273127380004331048927998220300544375542055692104429639756278419071081241829883832071119130921210904137627582226525413527512203783454587871345083013720639037266440481845525177724892791526573251486553810696195550929651625012481956051541348385388714783905297587729776522854013856587363045094170624857283958330820942588083396680228255429143113264203555567359798584360681840733974406961870617981931028037197515770175736284165589606464993654120375163544096083905491258409117352939151024614769672959839446424426546272437666285424376610737277417033569430067699701525614950631458695854841009044009190326207527370662318414279076533205737493118874756238036847213097991570879632637701739998891271780773869360116418786720332947177895554360868215566505826503817825422040724898755162880191759150938811021442305122776881933690118327101000023656038790683077008348235614727904774919638657157751929454325555304978095854631916705045617318561559458590199263515268766016318579420898008014388613611716051579729566363017650114063832759491791784878061789370144125310545689276246729231941548508733729020902550633941382588581339395315976424762459604440909910275752747227409248679872719622894459514148277352920007427845362078673678696251390452115950617866217188989910712999117451372164475818920425315756343847909768842611835911046310053626702017714573333339630899104816622396358140312346277925628930246061296755576684115829436343239811561375265714700247168011682648162703642806380842001424576163999542046209641678279086088233831870765781899318011501606241147388636415448599795013854492002248672215213729171460947249381177419353869186802294320205071519829934450079975126295595758796749435219802513132697629716649512684102194447312473605980827258927507749315560526083461086483012186778886250067435377042029334022116286726907952173738247548055654755396701594200280731959012230161167516755019113510108172174875653858817024941199062626557067361505399781026097584936730617151531020602358615595269546164009749258384899485557139348060710963501828525617991488291068637980088799129938142958145886293218621250680254918386141986972330335110444334197221596328569351959766952851761838710952750493249745227350783405094876703050991639229619297020705306201893208581561754764630438097664706589377034376158152574133300565448691126555806104941392799747973885159559941537086652166444531912390639557906790827582862527516153411762142166421387775916380272890798589430649740752619497078493813182264008054745599187311135983544124704069692288840477631462333140375602539951378436019540898692720334406297784546917106714063610359558064672099559171975941670619931198209389649468963003649374219986539141568913556140758582503256123431470318675490710037742778615697167141374600634722280445423284659134334074173086776388108770118127343690188926940309621995505201078655732193573924485614546739294833379127788178008516182358461622188269712547825614760266989020197906550363002806590330557900629629576399878831105816065451697795401761759892608475339646922126532455390223315297923541063973772045136195695748717444062031966045257829301261686681527236591039204654574484837888875535348905456100368189416664972515106263437347206725166254912721617170020333269923050768502276524180398405703487236696553402611004588034679345907413302435612189074577006641886913448568448489775308448081786088094261194986920881735541646692192372575193559319586875206571359719072349961118362529174374950902938539305079444051593309765832139818600873581682702269890010207815633283717234848584141878911446592593566455450315092006113224500735398878611044951133900304401524049030924705483077812426675444808687696623620438059464194374986224887689814858553349807095191792644962989739084730251917184294082298872943525376641714633599077544825441564876472990808687339956717739532642284810084216041719271791913839064896867889073068179972878143426609276768452792470770624329059032366077793980529314453378427634443857713981697475549522891615325292366515861906518074760599866162922146822675705321939651836347217000328153833958236765427351545663064287614009489973796390500784241102269242149937503251551041294110786703640339052657935585414250547595203889528261094199833227248564870834901070268553688223608933304170696601609393527377347356835855111512278092740506529272528985510663540113141079318297698786078351526789941173078742404033094862613663831960443299422632624174002429774763043662994159398355264239183887122564556988009924468985607430376208951552696187407259095003414749283311716447923209314571265827590136574610924669150944090921442612316599949324435734140236919732844795285466566155034473344204112875060529753291502585835771174120514278554810798314522373989855272030015524245282713125719883013714059941597411125858655844352451904118922793383266574347760430623726788771913884824447632501476913762082099307603360769679163198122708201230168636089350673343997292497248581731987749824370723900125236428150913422323372053855179426779025400357258600262507374630345649753418068002662023478537819445631409784093621273855408760466314278561342829845556877290349427266962457225485530119151566765199748906749100289758121210112006390857619779128745038636114779969212760580962530282824921744676125555193278242868158881474191912103754192740060446564313152548631778384253325120332742147473267790241501445401361432467901228670677868590549525554519295919380002532152441067629268259381677294267169947091558846153643333926890258652331312104818839672929301209252658057150313218034866237032733901716895003036072443792016797279932459241172531867073242929596003016185355010180677556937993797056660155732476127757087071899019904187992050338753259653922132440263278365548455332588732491044059165856666306592309261938708642976676414790115562540636466099036039443847960534132242918150881355357046507764173965037711189353259572264873503734055345048242668329075703167187761374112523921471739236683938035560628866048782725306799978131345282196198204528732067015095144996340870942427319458069101766507289464406967750234189338602411072857377861144022161461414267181784878761435321192406279244683233677461602643155529512896846931942832509643618247899491686313484631785285142085899121741224396531373024608465900010891047804053858272568143921803807525375396744064904334475928250607221803955897835499495622878348346128837597339381967256801018416625758459957427996530589787734474172018725195342090816982922742455796095221381373393789495019251473425230005493993864127546853166716651905313270714511220601864467429857437853211554477361740580851494213731036389800787076960541018816406676513646708577791765661048878232870571066983496437537461572471455499165908916985338402971755539043534944530072345274233638750191210667622417640083302840516601929050390788023056261199161262325914908171242646648510468612754431446032786266965986358007579591975692136461034908434640863167226710948301641993615543349118281959559622986658286626973790074046053614612952438016409953073180721104304349899618902237228278860648328054377402056622544917442335914385236700150793961419747317199968372609915313856778804272823507477526275232416392647991176807509797693377116719067191635686737795180799703213014799968950624267680199187777435001248706086431574068417207081181386322673391991852813746895545692525856598183966822358092506657477882483762097204251981524168749267420987202137738039872329095943125140243654017312032229272401021525916184337925264314521754070949340261395642234295153461726639446192618044906759644159002787287401803331901990842818153666465625545661208312203303922391892596285975216002122020065162456083653329009263584811930754573409110958459819337206034042501957682056710057911761459470905394500533476131982257835592857161234055370677880154050042607036172200081313342151117905528327125025384286914101057584964546985819772687570620993788743554338529316079415511866847878530981219132922805689782148433967492099353756133138280539600240567870383442281916278704422218509633741083952989633066780001904629169731155515858973829694640170788079159533220277138991986480816866019927067999229504960416767711994704918966922487584014742833444754144302052378963098706908280693054957126125535264147486551950038140733836338722709983266285850734121923116337009853805124644069580608866944201370998369291449018230282342456865565742964617367139049121017484671975646528179007763276637217981178666697117740444191405030668695361997174548424268994985808091412327338074112278001587808312043511370039316456177441463564505871581162654183841159239391749593636631256607468401830896199969243250701124918363485465103942787168850602451958724889733796681003559581182595799189461332885684995231933859198053269539384288788527604498495077009932677745234014049774946939249085567087571051634997891895560189137119434912078696331533952520949684348283755352421764542910334979096491877014252652212545403433775427039695636258335750209071044310876415208134009105853145857039647199570498420825707044313062681564781143733086280531833683201941337972138026338864485006750631086943316526017932514788907938050692785150960027373379225635480974375496580249230963772777385688002772963006920439056257273816673923032571540800473271509199125407442134799497463300664882933519548018415081340725044441194484418135812886423561811643764679176616042487813288984026523333287116436745106625585530651936521787877808151067019492759023154909051099727639800793399176576534335121941436858211164908160756819059151363003884952155197418364904890642022779189016401723490702776847623735213775719388431119812550842235926117013867907623463122589193808365896130995082324669744779207126575164742539677397467475415870276350080231766602807208726547095172508097939114021976619332522733526798712090600456785150263794275478733179965096242107260463677274548144286150633125671633770175173521487141157803656452311465175543066852206648562000251998577946138030572636952010412086476200129922176556003192209530616731115977219933637599957184264776278771452259524962825941411549470137876951217954066522386325060612728980610049497869832981729453585806575956311949691792794858686190391383994133547649548032572483128147065557035391592300146878590223206475708543939306849499077831720443094481027786897793480182033961933940485205089650079252333911801733867337355181484753445597954160077741578014564700009678083138987786045973507155354611848969853179460951165924241877159446136049590462711662749054344445891739708089775854562666948381570775438990840931054546015168754731660461200997295744566473241356622358318311108537063751957655790822184569841235230662083094608437693384822479560292192925985762932633689554660569280701179672536809689858354761842873911599140267809464679410860223832396158541453934033210005602881799779558886702660949126342238088493869578686617756973636800986424803169522772132231967778183525768784854821972616071633654607243764109749030224616726332876234847574942166555681829551974487518239206854258104408260878763260830871710457848520974323615976135447078568912677993163575623897045714818883776793697719594472585522363322287689526911237980081001989346956452707252745101482158130881775827402238004085118361046963667796174785111831027745419713870604961460755570400289715654644456733464458134277452690330373778243679329960207910586982732173905080590126111404963602461546011040727736319090801333915526700872950666348863205875425088693142513735358344354281822797478722348240434827046213702024312598198399308403566748797732408560533905676342104163852470485558254284334556564258775507669248823360160963596973978872663343862508387432581651169801925397103266271179208099610289496518123212997375661713644825822057242513969667015663997609226465636180645623927476983484134885310530001252169245915533810688112458635594078441558579840138914807734913080236551271577108587541917212878065389866769558233732523997147940088960878413098242597243000247808034063821086354530934141626715114650843558119320935395307539304684715823706293936093208444836791391290758737789448426049648837710550051275562500617868543566936187286048435525168559927944848017896831845510033979346001992657625330602008161627913676663488754718535484878780889454405506431018571315723151175691500170244196631596537015001545262088639118630003143416770450799383709472675896176297454650174915637487544598689860617441504655174773146174946775861888824721487198113958230499197500653300293440112555595699657696107978147400802074044594434356424048369552864369083167157041830675024794831872577461340746008539221639035033363392348576872709302930266535505738995433034510822119956536405414123383384885532575753748366451103731996788749077668140616677236567272860364528441875916131985741893382255862282736847902362429474933399852987802128589747782405312626392245690477076800272931539588549509974030060473088790514827429607951639667804689752517518546387452370501499017614209094174314819219144378587729688504558532682816312937822188182625711435452918291184071034125423620467065052084280837554607585918958064298120923141277387905470349165690125087466183974325581209005586627151428437857187484263747776480964062715144106876364231512723131269932752235214849469928002589935304538945133284439515220360125753508318901293372360645761547565078495542236622690309867580023032714374162995246942541330203965305285768220034935471730244769408303697131848664746078459701664280707665105602988813350450307558635032892834999894805670297677645248237670542981133694664742961902701152845134568271577916554176261345770407688652163111733822097819044924350954422083616160336361865011681751026920508001280220296851863889283574081589029514975117150865349664464603675131620896791099118748125522976274623958731954293151558490109148881440339245233292372938047067468364162927914704066477803829223587065747073153267072341927753135404697080881215763283117276633622286202392590110647272338415051249825551815780457377513922788274812983837819520773055341968267865062807345587855038681170699863802935184320272343201386999665997945878824902891194358677335887938168001433306962748185514994464246092527224559527524613386141571691034772682858574178870308072654423039601768828118623665765610216161839917465162393877283477232443049607312329812781493002510480257713861712819335798437932941249470714843593399328658721117959512799251510329750045326063239317334659477489255965595932632527129192998765559639615796122822334432046466478493042798745183473108077092216203294169072288319072996627697504497386100299693386685988467995842922370532688614254923217145082731817565128825309928495069260602274227439571849358949012205860515735450131644955206614928489742979359175569664427145064066236082819107819978346988785683600723327902523312451761825912847072778236099491737221057986875262680244581821517264144410085374744098029483467207789279398020736969846668387682870723027390486666383781542192427196710472192715843822974900415958718889466450745892658659381144417942913213616386482655229277853413752140880344504683431538970583381735672858265003190981238474407155699310592283137102253490996358439974994373998905605941672915655268253840764151378450005814857982385202548204898677322774370217805200219480774691592264343608251572628467470173305955260117562019458549424426455895624490458367840478934371983236036642122849591513503820923448939270029573691881189749832479527051802968758549317427025975277565454770692153810187178912775622814461935717088649885737820794436702436801613235515275750122145419493226349039989068984844276406704266156839696835458671822637393215737588136760728063553811952092206303296834791023042214620878794200106371055350646836407942328301216997331108099295120697157520094915475076741577659981297255176648423512249465656646283720441790107936079549629473576685496383113154129399912297123002387277510532799071478595776367590677995175985163395152058707552244393572755846935772596610903346180807620477776349619265447568468280417935483370022781517568191897196088622318203204333155160947788017278788214143347707414497244917614155286788761808566299901383501291551057985521542323356756358547817245217717741011264369228554381124572687287384014748914002785582139984366391154448254345525677075494379355741618344195990982354027344004304484471430385847716136857452832925349530697025828685996390282478342756363758473527946963600083484627947508833185255029209621200161975683403720191294364316606528625335546197788186847722926849008560035390122089566111978389192696507230339090776059223321631374359498278520465583348506937125331559971044723119901891249546701657093965006618466014243305463277220221886643470774766509488053113571220441107981222950285565844231325120447948352988953831230288938173013533716310098294460512401435015954451378456894923069483985790393376975918216991605610405424548927686245725271247896569945764135012732166345275371648733963493576944317120159135630251014768107600308178239844745239668832879976552254856601041451692568523793368189703035642712503549277365950979403423043873272959647207801700594569253218300875015959562413157060211104621126036709219531141113259725999133279402555388909078618403262293353847115483772998234586153843849270334284358912425907273394984414665763305510109647386784098277484723388663342861431628300787221689361804781206829228123213923847064365115759993666310370391454067627395579080270355522255170173388536509472562172989229038113596226803646787509435165827151677036411639530137580995615100850901409603297296752901892085877742276434142657052466661715016326186623729273167551199503572631387225811751801193912910934440511236074312681346849473130695626036050101169217240149622534964710204131720103637853570130035408752837489557075687137739538613738096995463216197772478508640912614659353059420350397668482618117394008039308264522220399975546470499642824536941483903185301268493544493952442410352098969017046109284823487755345711720644587894265229355123403168512892684348651442166137543678687549249384732178799299010265186383670993485702494953967949989661131976942360182453300641856063768751240329990972337305997026619588607596675015129819330189374472566541346228665378687324374047538006764046000610464961767101330572483935523591099766741601948038970337742388588972872849364389722916566444104462390132827228552431204999654207213323861896354921423149237271891323208837074731130042579917430909284983429741312037822560948621374172267835730180921876457413758889456449330774022234201153217315376626231032906689160125212556141846213668378794191222833139756222357208956029635732972489675522068155300441557871804870863313374748954467726521438699514333191371368435861514886072063373733084806815137904598826268291310676186306443457647839167822496993115795688203468858634601637489805445231475402459313819266416621965559752621382966811951427736012689624823362799137490732710935886326620101749043072216923873543182175510609657969054854209307260469370274720103893240762239407426162893279405312005310085786017542077050766217381642670144436699151685153749704338683337711038294091178193384505271743452269581111523734303568593949302072591340168918152038642904355161658240830221678440659262018207095426307242794271592034023119967846639673953356527977141840515495487230237797761102456639409634391982223043369817849808054929751879151089147639176516840713043097331836796888682223689036118855579438122054583616759492581659718702560247405595486453774518796635788760972206826441892772839831812111448957602503752960308518289926545298904094646364308835431916628473210232968688388615119506025510975881556060929587479401894470319667684759596151853479496220925725840899656745147921074241399336731333003680449671878687059394790050964267205524321155706985250038198811873942758438867009049500672933622360777784125985204457835566193158689838788210336908656982044702356359137814174459382320271325683857671900645867262215248337562626811125064498331921796780454845196935964022835263402741839510332550199821800069714099995868153895431256312096141604470181793068595935609622085893147722280140499756336931007155244688741267999913634116661708416399681709541199257169732287429957407409930350317833058148918560025817915227359916305949620362935963860241423497457961933715909904815063859004139231029203936205238165772324065143733615264297542914155538356185789644523764052867246545687779121037143668226178591107718167687657261091528520037864273293017469767824340159968244709276908703362996488800502649020071739217560434872933011302818194625038410141323387933088577966325097463901754860601731271557692375276770425607652470673511947749163198073405198505769187570192362559071021010641304835699190651234914859511803258513423560630171350618694788145406550421346883483351391101571992028559896516073072836548403491367189519203708084247292452011339780971228771438520627693353095464043139407374497283420546858001618941791670156083996348894595650977108122970633702291109570202158000865094761270046676395669701305831978102113110295936149965746943187954700422768426180541387800859254759210797000295994511550283851233222627033953048781414428159520472234672726104031934959858585970507982593781352407456897253732012527225516417131456446703974461892970756704079314910017847154789195814737079525316774543849621437167984693878171778090827448743439228605158250998732748339399061031379412354357598869763893448590574338238653704801315910759240537840250540653950334890446247679179868203103159867350769449321743066633053807655308597585411788070285934709654604602879897009810555005033615677849875126251753356308648648659404165259634726793623132988568139937073628724003766844090678251593947620078793794725138624436436076724507156333100277272517492604103490818411401564098990756933159531662172750374017695951397209786072354490020440582743140184424793960246508698640095179214687872055650853389211024160436617940629276328230970335171755888555127876395580377999341212764168771310105945997200125611142287636253870216780606783299858128002168364897493364239111335214770778032625486291493552383044919059302113576812689601641462804344091684701050288004857327060833417400464383943930833514485989724731858450944236339475207532810185327671160431986324850838361623916663687463095046709939572317539240253711325269050696716205785010439975474176989168776822746078560633621535508274476665581991335045379551246050838805271792913268497600574615446264546763465127632467790107437869562686092748216433921905285574661536160761199042544178633724619825841981193554407769209878688095370766067924952961528669802352767353905501530141792295549512057076273026600789076592159814452944780271980982233871140636469568334439592205170032607503884526795231921598480354539652234293331630310023485079693088937625075591236743754680002770676317855985157081274081015988419353198979701899744607740192669842860168172373108248599800665966933065423119957440630175236951020689668115195542667176240269327467171209402235536692736251757802742659980697446364472644999573006283384959813758380082040364321258604034385042778025678264315304362151240983696141186620169397420091169007719609923422026490783653016379794487851851569902105947824847335365373665396900710744227748597389578869051231307313601567321597980559911869550427117968754551596315600478634728576446657575213629528939363132585751076624213942955584056889768647819199612606120213405578205918091554952693447895462698586943318316577785639566104769213229106139594971314855104494930091878798075266923151527067858819130309627261651791791321936669686194163000153663986427383071710810687310787387263360889627914418922086401663772284570406583880846472422889622591450799917162584643455555543302924228655977360722673467400846409282958744279743678636042580346265534446955923449589374408070593361224187139707803430483698779133817622635118692639794349543167963820326745594981398930976870904145661816054518325048014071149354274771109723163710778263654962916281006744814113195981986931094157068055037690949440436424247430345552251764969233363025117183286878997493596078265962047861123908990580337331073985833823466271954262849066602355276648247278197097906790489354345826123138203686416091339464770103841741454236855778603922527576002451737373492696878033017813387877693630536889042269697855576064922225897336129014700808526663952941075723460433514551878771168562788683609525227329049168221194784290004741052235613668392425460335968748559623428705250631334859000408185164722617557946230955007060580725174063471544408625364983695295257358863171723570890816884698527056683368705209381292970460978177493097416585829935701830874396935460014407663580938458196673058198095275470665986429866911836867628899468138960660763566942456862748320291151634527573703631988696862026628790822357272626034637341668373283344562852412583197425770941964181153545245453738174422315152719718030749378372594017847831506503902107243768814787996029311054207523370599763179463671951713285380510497246024766956396893338047930336700600072682891912642198559319662240902111987603221329900213034118243578731347449326946142972779377187950836554891946573602284930225045746859142002197979780156280699805882975564688959915958119896063137679114965215521749504052104769904357734786082256450075720253364357635881280197196536978956986564607484279633955110424530835691857117242958979864057358636166552833701239159318478259313793337878211747539216960544171702727838317007627065597142183812327516076083343317726223771180203146859686166398886801447147957329048215430238284158505045594455087351582462990247895820743509102023565346530308948942470369679918585192204817117980572081793820432248317444587953350484237837712020196752202107964151218560468013224165014965249549347819172577999882308853856205118936538840068072140914261196646677014764301471670463961346237606337672822136476650795776914682934188544798590492121625137126885646581531276926612294929580996136495641129057344936456242082067290120839992957722703111814968165246382201746395726865406609171629827284537907572539375567169459848731184586116233310268179559216974006526360918103862578902631306421218416045864750716051846996592094057092150759602418890222637961258120099559786154662185836543153329379428864346926180940261503205250525930238598330139074471576782097720207379665211870695876454375951198002727303862493854872751101059498852146084474543343504802137448360190175890105366961099485020166882617672365438284075892204428736622306235565194237163302504332705968234483440220605077105009745684089280190176327730894757991749491431561990737480665999614413605722359478013139340805466742386360228031547002438243938051769047135487999747084871904696538596249437035075117142399141999742590863200036289019974932651112661086904064400307403791611476544704377004612353184884688236696167440040222974203807535847148626037920710390884639472516215844189436945272986016462656336744746644604625404665072059493638008504295539323176543645146915191195321331318904946233954051663823421668080424525261388558737274889566799041161591591357284394688508482917971596274654098937430299230641727207041732667379212144332729568831336889101760280883194750716650742613495532666365621103650825170940614219416142094731645686855234325771019382504646486074357125461525294076748787346337733664599606190275426152752919781243200988611606752353326896948540109619575349141905040163683974471085334239327051471648601700204470300240447908155244350612522350175745623173981590586162360982072624057286699104942521768078166423215437500644022069998457031980278401305594768666255397411928745947175594435832437685400697700975615527214363309293467864211050524824371436195986664298781714539393169252319499227324567274678675256813085260588146851498432979531517270829493143644186107602975345529541923627595692518143278660431361530470855251874352729316969620846790255896612180671945291009983250818661518514735316298559285633133348726601655445293335579124900791521231010331100654045000493724936598978225333943583128210867345739136886278926978496738343936310518350581627857998586480120047018202523021561004122311184409602341504174905419206145051082108614961435885532340989938870227187456044482239513428672398033426307898734999336516460242666038027966146824815754083722349220588109539964623393636743680093193929165576492301230082417590612728799644742398561863215006200528273886471753220093099464116914924818868452999199817671400737831408732916135233878103460975651634440663629944123198744509791237486296783976498646626847422743858402142196531503350934485021555748271731628545418010186286042198933945259602799484811360287599791007231674705831986005745986228675192706292110160345947111797487445157591624294378805697752209497387875526620829987415831215063617742562605950770144663040088416303072976679697234119769474421100804025084049487962561320668312111672538082205199744848324054381728467350496888932425302618990957296919511899464905881336075244394447316667082961970491314134461430199311510415726230777884973696596754660637533168254115323196757856061751811243068736770885735064150169955516365773396091423923620815827601882920398247220421807858073928625624756200883607796616262944704243540245398113488610976488806223180651520309236436336528923788004398209594554223197837373628776849007674239387037753210088370759172493368924572535266715054389489306176650246694371632261860936002608070808091519555548745580760473344230743939020856436404780327424366848676852922998123865578401764557240149936334134775628120579239005593992472484288360176569629802491459279255694507705052829381452374116650171029520308554360166012894460362291413654664398037320019035704311728383207193817160065429542514461211584292863044662366306303763650953890622782199655385903313307388713887936313258626191513222218810337512406893598737196942612888809976803459858257859681558471389918017249904127998404681007732917742518725871780611894771595434265295004025862652008339516075203543911909226943213043577150987970975652977404590194063536976797202671816569442128727142719732641243348873316122585004824769404631961773079429970583712304704433255828171470830226087497835486561084217124763634038761327606318352158562372608669901249646787878382676489480386159246063944384828185203063354022048785662795367795935690548612457683175128339067855926099311425891258519450018762351851890298770015703849935895267507632976172291220479308829040282246511181310217962308737196095330259055193918138830392562097199441198742943239665043124832287916628837664314660692539093349674975907259609242448725870859644217130882915369340234491918709294593250480443617443785567789319987160922664781670926053913897466944249979114535258078860327899873502520016024929312247699203898598994839102172816458092001540961748889711350668718662914684576226675013694068513331480531373183540758066315403171590712001463343549507243808449798940586290435426262860373117265756037900793064710510451407075539785515814636386690356825796745763329785286284392625020166980557479014851022580943420105065764372645533133020429910859405744552416398296870013253010882570120625458902597369241325460060690090103948687996440824013665784728989029371463768410312748030035546640543930296327330300474328001728572988069008509147986271900583046403179784098591144728836362597991501353666696130659989972973204060364817215353911935810530697079904110184332416032694505792693086176469110801512001723367259460365021325070991263492119121207921588048252777265886995257479432194351748709320131481012453437576785177460899383552074050100560332758688609776128794774037814358892535238821680094037483515901495413772422621066360071030151228222741136698450943307761459693822978974764240207857051154525395171157436500904020931178540315574971972717499311396561774270371793105007282077890692149091589096567507705033496556814887554614094809130302493027835481674154596016801778809959038556559512674876271610107594325549373986771086004431113829877483683167632851080037537840218626243550688827566849252033012395152292057576827187865699123559167806097930570417695347340574627422447899998026387964998205778576630286225479557307556348679297582900231440702689224145778086835376513685612832305419592228266765714193539221319184677510464636480832406305409598787464555893274560796312712724047543575081811295793330004785439392202230637558598192858447613928473211399086606507163675381261617802946134642300368763488111668513139628788163260525546928941705442651859487498180146700511431696343257488759745483839405707684303190252443631709750024815636841945036671898581808550780423618747216234099111672227377859707071760957938658952854480303303221647127858380277611451156624685404738957815428470752159670164471752336525876809738919931959358656254118248297957764949470996396151358677730816513603574577099545750121017124804695773909304437788139878229881060032403391547363339373563025606230374127571369933102955506049488605696739143031640319050958688131762689285908923958897607895020037027401021438856738845274034287615942569843494897001602473274086047577554345125761713561165682314760507967831157410779513626026450907733832913360459879105432657404040719372652656175928741633886149748610401039949169437307524184797204043191694366089574322501562521181754982156330840331424143253124003636047686041133980940133095460858570933069065992913688187684441062397434534129901280254165443638428842543959540030102766519076525825740085903077864016457705576237384591056042244886546815374840058124764948570311880760517972626264014296253059334658586992732400786644330649449352875891242348355310053227964015729394962689624730019178363006797203866693549475096351500976178147385393008423393396606955608127809547717539104574998958705921211029599402663470897413163651869410042324587363926214603437584120411853651115164032810029279710603892243684823092930401753014839577800004666613001963130168359228207471427245866458869259317400359528379336009782002450189617610252952040102557287992661846479540954218292205242204743538420511592540625490366150594181110390269534007989054878918581085408703835391485965411876592729514453592998397053185706431597280623384481446167382838853056808275977697855112555413135223478326016764394375907718447899607449776742674541515482457757927145121585339538671063352624689478685995336603429048520817295280512260387186652354434706231971469338435902110291301829449033021018305375813429600648376564545829762523153202753488798065881008009327357561408347758502085782708801645896090834787741785492199366566072060869453512106760835230524341440536726028608955876428087812737239069482883061951036191392120453730477577319111816069686516860052444686117947941459196200114219100305284048156122666815351351142640034090146244182856207532255724593308992204602257412041951473631088123878015804640027719651961286264761255851451533631119487037233817377543958539358709167121591397799853222617015072071183302763892334133512460238869154369165932971923106567984068896761451424985552313790640443815141604528387018838051280214533597685691711930419647534711376595421002688873750331245047621903065465047288972529524533132161683041803714832358967768163386726870924704008092464126140570122828080801233924626891044105927196010619665755939675978197028458058161561781029515589782448087246565276406900038121616950022685977558860766872641450543229992756191743516405641491562817585312055242143471230850247723661637685014771681587269233246569226626830785433754388086053458132059851448952410858340906325597552874862752871053247946366100768953894369400322803131216520037287623993761164545761956179616003286118930793895682340104108054067003347426522279601677326737601593164488475890127685693947990550463761288316658558301937553606581336132434937054523661498563176066788682151510161743777882507627574037141587758472452504138864718777749191666758833276744475677330132194105127397239159597573370834330017477082751285692904164726349731355305644914362717687275076846519494082367631812033598456321583178854291112641494104782212825906635899785578362736546846525843857335862198013340416352494619938914926142267019997235520783161737043674181437675051412950319006038246656518696308485129734153590685489985556370630227522661019434418471425804461633812130578136106588762347919192247505402829349136697144037715073279724870662513377112692767419407518849523886909551377854234224627603035121671911728697244492704696850816882247711732957637540363588283448037914627056419022654627956274596052437519554225501592129047239825232517770784434889158992865348362961798482109181486864677083470692775932742275662933088512371868761248521395185871307370802753232504743432866436004123543038561942326637172861118776126137144766074991814637232180966549901219870024224070711125132105536729550817574555459477348520409756402966145994437550543390487779699233102421096647427241342979390206746359198857179707684759983413639901535992008672590894631768902258226489047469828863530018361242428953693053092344563994815847909509045064887908763109638505015861623235426517878464571186196951711771937300900416596659601603025326558193125726104941681583975229224520951595715406748223939647309238994644629283216973024936632126476396934726170451065326715367926932385537904700556447751039289830816654145955843260685461318776454622174320808986721905926007328806345380339021694536375523387561705008080195444657236127505978000381038080857700429156219163807832802531553573386094771690274300658757047816571942925656839002159672473277091598841970771758142763713508591500391718428045824626758853285982054172699371879778636306553974349891469943667427580716692523196990868310758946249749096022788980464033304356393470684771532702821593178609008050461162188794759475434140696495192756573795287550374598570356291576878619533422897224620722079172616920661069628628399302389621160306030158641277146639551673243638276001975914526448690110840321594047577135818082640526036330561557488349983698136748573416034493640237757957161223173056281976154404354300091373234005142917588185558709275702978884416206075173592596755411832922229556470134474339749546829736290981383985642147999802345101497800711052521006452849989523021314542044361255440599810799302049853236625026788922031989600804277517401751028512440488642870382849511931349511730528515851676094001041285818206950715805656520860997111090683539055622155474226871565622444349046748829096334845307867725034354860826280652164306674097996161267432742284775197159548928847490899575855029611349268555789976942776687056093214178437946311083830239912841033525718025392936250772049745621488540154256025901128989940988801187784641044689691061581177767915936577967401145143734345661700471104918656110178795628604041695948939011480835494415942830070130709842424237688175940791286610743504076184309112390445331311774740870770181235739743184598144295021497002929245512647302542825785510548651250533888352364932996427355390647756649237021316159530222932606503581723711208451302911258244185815532552275342896142435255628380139314718268661073778942018785801630552561486089461946221578486502393301211364977024743179201453659297981371659466242410150436161810804055402251838740199613590828954154699903623530014064857243489833556262589251870375616409375446129162462709564433314438558183542145276917627280491345143003722385621579545586002720332925378360693062112215845864826635572411727486670487308201743685615138064271350586303417627590338673460730987161557524279548158490050930185943872743473567857736756471022461175859272086677523740829513005909415871875416102949886029256259188280169252190109376930907849785707121037085281102163915209779581788526457623768162450612843276136575769559296056228956350436812518147135359721657606358697187463626239547433039138604783543312150885832350548364478220901188878044709186612355540720140684774420824497887893151512772343749086187674711825546069868624823850178060996715554018135173820146632123820683070709371576537509448902359536033582060650165895693581585357495082464369521066192813801752757870831107075696323976692770637898409337056746447318069934920493802971138175436833815661399093353208909978034205129272098648197477445359442284671966515509247487837949508959096759315182876020624912348472392183374349636023187113960734701776795581803790800516360219722938280600266590935720000520407066966267887513929489650206853920773256694958761633283147132536543681656873779445448570690956345936595372567579053713939643775236864303240318271277983190647942438636551725052241470935700186338091503646170155915091523968053766888947474153233579933380505718662264564798313106829243671784282166853618885952427728864083967325943806584630454172917238605450614640016737795967321092287493221270674715615449090321021827214996698491945318788649553171182089253797858433729641680453778213913540968996283663719330699288482704386621247626370126758918189465010603768756948665252477912747047865929823159073581523028020282196732515410075833528432104824999542440409922434492433994380287141001910553634749243507138228613866438508924387162679569404555528574823001021980951396067375490840850874798879927281557150221361603304342888170536340688658183660421164396125888455305300139872381466768585094270625147842549332103771360671774413261008778774684148994177798689653733449829687580802753364187074156722425051813330170205424471317830933741172248242392862403077648521922071963421874387650288861973428863870518945945788152613129275781908795054958295526693715774279770682831615956270859359382814099959359607095088650438664554513795333199335846041626977800165342469794954025727020863759468415938345654434089658862249703533493117429557775088577845617934881707249805517433741266301937666053915345687325953679831817294545626524620661677819082867662156545451476503966688988187183887499282136856576760727542728531487976131532014439914459917808341304534820410807815481409688133825052831365396753270332129923875563359370287072453083185232084361612000075094331404863880864118395518291790334378171568362045842630245855749408352092955759510391325172840928411384884286594065465358144197485997723345824878648522866279417312565659276572465352493427062478034324102251582442474819001122350305051389717995128129031174519035609602765008611873776032716226239465656818666897584074245688174807768123361523432036968914589568439062748100235167939198833938410452658471377913223200042967985079061040020561391956663922073638747384921420026126928603897049365128549860507793988979541452577584087167180241625887372283639708682895058801626330845940056533298876665078881397403333185186550934442658672887046628734612461635768159947747213190888115213905808670066853030629446627646858604873093230104029956022471648524160043553302957042504615973624159558579857315592278763641852243126411083190129849972155463743803895750814537603657301009215736985005434586952656499938182442112102208178260420387071536561593709967224347283060231867992936565146651975150876996429216331417158626578014878248488049342355738371689527688203016955817737042230841032349214998060021262019038368810800228377431308631274774321311309216118972329361554166378112057405645427948372371814750249452329782260399723521860967310640965017467703993712738374356083397147026855663606422135223720963039693823871654273433588605933078097211914234179714991796055638135291863055979295825879927921574503198078815620727590967368517036666781675197669212475267644233398080088165878736838889886104777225251510027449879214832724196353009584681951727524768310227733417281712216851926816159546306212997648638141845635514817450476865649083474726278542434334873853366994824258653253920013479088386133534921772200785508421949350696894484833273954280390712805710814358804294207855221881598090827607086099904302839807283415311722673717288785744723364680292856445135714492340091869661677203550500627846158211108413900102564700912443079324444614452526698125008018105657838070429310238866937008915648687163312591327666586896519407429828092373825788813613595623211434724499190233548266796830010816286518866576195372100415922001580682099486637670349104677116976917649345485591302358269708164376546541779052675387248764326446454563079460190339165578949708059647680114226188087094387497514888312810290604710530821995741178968361930123560965851699026681840869366335009689846317028387619655347654175198202572276912637124931478307654984066770224642606490257008725597633167010280021153651272755358262777444017238298661675712133440549619140106472950917778287697228706806966461107126636659382093371387410392603385219604067634650599642642571120179900974759821020861253294032968370691719397083258001868472745143321973629763938358045776467963912460543259446513473943099499004090607024906061532532443600903414130577418448832993762755134611704240814497406353696514383131510312139346279822709037823367298371672845024642564537698633394405187025327245665335925846902178310946923596248396532770643506908393687820073003315532862486444703242482483481988924910196794490724703217934196934569744110280395925274425681809146261695632915229631465464575018321148790223432647052533694031192031968718378930267878551612436590987555139823880654420634411408583980836626736500964459524157092409282984278197095864810464684571869414059825323441874420925309867607698835037218931884100832215218674390140252386105447326921623338167067904073871689622481016146517244018095812026923480413980788506655735837921853947643772505907017284981119428345316423407724798461269622977571860579428097234789082704679821980974252391758706487789753690801151177175084759662381162837500080729434030324559442765611606080584076912151796321818102128968183148963965196319592544593923610763235190505755460129170933410438887769391530587519545543668977931503127654339323423609735842826539490272908242071176321700682220943669391623562408735539388400061332281721003973222818143201965935776847350308822388334352725499081432545559657471740590348795316101310916876253645253826879382369272897422634792397988064726319390989777892836813411150746600399581902574358403479500432123698370472099783339195344163487043724536845306613231975283550342776115735195468063039281030917918387737688533133958616576429980839648605595700270367267035665018824683292434979218295273537219143660081656988113462142076366046169869608161166007195023157560267032163830319186699732724008692209644855069197434487427795343706027804102188201567014884050118729008035981704280719041522594543938867404995359328965536921888045066390168458094583608845479068816758666732074015816307529626971783250105760197387855695022768058209798674714242702033657550603289886744453315611623842373161415336271543351443550333541511229768541679197662204910397036564952541087739257087899491753536212341690585313920988665836268881494088453157424600503090753165989026603661387617914101116396632880629165747296991882073494656247423944259862860519681365896182768835537318263038659902490124505386926803720204917127441174778815855059185824211887144226222538403513004806750731206578463782473341972139252380708396384307299417007604927682301350570330416560589784288714267723181327707855148427584380089848623339043661296433774096240015327301375858417489659109421434458392229811771719102569531792107711476941236840746048481783190326553026978438414326087456090919350101453452058688700599187594892284530989573493224001780764257741136063946253779314873284070311853426174303057146716975483302349699492825971911707316935989651445863303006542719542251377700255519182715329635542270246328660768406875998325201059098707021222113327446792865013943198699639068355498651727512879383662059465797850734447380907129236807341866530367204846034157629717846048175685706856912588684203806149310507002979944655670866624065890451472293612888901618854969214869294599355060693519834091520143904457537976742397450333022290185252377130395296515258413391437811481551598888118511816638588479029773000347851895579371884713382346421344057389905939356362796373345530551536168103158262852752832945554913947380392216946888785628788310827159320583461698261237829166262041078786505469996032517503583097327670389096220981870057298931443772637613636376678517630214304338876733547408206069832249716572861508314524906094436340353559476510304829851391420501477591252016636176051504045333831642632514523533010225400340514005383910184423892646997172374246367157810194154869535606699443210754333534642760280852699846247717319524294085413850039468164857840950629862668948214444877673857681608588210868733973382434211229764066102399700613096423112687431734422523037307937448073579213437172711604930227239726286664161972799851278295950303211751790346779371685196077192011840720656705816396338171923408696919295850266810668398360518428175022044081507352127929350615650183905175871256100004979218543139590297886882950453618110291483006912343574578383471824834205257095737614490307440343001270992764069874682654806839872359839216105734544421579342858765639685547691527120902361838148241353369009708347970013874866065879380938721076431332276515646597488019291412425343174565908489828688144184205131673228943331774295244064142193351366654244154744108070841576796484840181055053045760223342341178866727559039430785845591547482779142886142515474731395283601936846978542226278633381343969746725401477559580352986397283749208286477256559074591701144706297970386360628349252802365954937081867058359295209777028832219443544207819466885396015959838301285957011560129829190449603662754107633645980121043653771326985900727833682634713562286712157455571016898485290051373468167726140185752221405370171947093069535427902197963493601563884573576674932237234763708948229638754638249104462677951891250426973736916252500046330055506125526013316543606998668252514505130785495872872089704118446563568328688981476609017198828706517200731009895251257676123052022082121997175058313073524501274379623265098792066327856790691160132290819882744170881815632014290753652373145608528568997986434377391453549662868277944161878641577983307776195887495945196278545625878835062618674016754315611460301312269693696497791759282354561292998000662191920140978407497363932668467848275248240194078377382505332500143277249456889848602999853946386988666182136892992697287598150326661602851893178907984051460357349829451762636826532380084314928493337028659810205921080198429244003773429723369051506803010322901462182163484838625074458978113420359657665008006540739700979372608375305262946290820776861819238677887380914980615445502040266455334340692087597157666337254555657161079530753697497895543342674266734774439787311022079366980917598651120737164014043910193901847536360486306070412775126449086269343067163530705776524629376245030455652378773793873235607346160779646346283796411925255476402418217172316195782278400578260543711402191724701004755947330045825408379076767342766969962293842598620224680401246510070022464437128387951933356215621030734434701788417507471512175186632862236504353196090788525704904465439927539885248072997544060497613570856747002253715755070583316606478046347002508916392501080416810624284828574312739082591231439800236014835931626691393870497728000952290756166821728289406498018828394003030891530573083508250415414940305850202186241048484889031822358075827518082802654226122375099412010137398446725657169204991484308974208362368499401184094562779745852553799608788772522279464697389548643738505145925020395945208748218428828963405176659483225135583279197754563333156604986063733373895571145245278533889166268826362186791832113954279589223232840156330083838189822524084059113888685911719223303308214735125371252095369908374024318181063683456890089515377286234482572713808518904034573839992229564138585040073016527235924765461855416951471681352484986425878900519821959349563754479945934010962345313126856975177103948911016961330773647594338370870634098427585816367065156959801934120710155957895134170719867262767899000879863467178498962878329738157023606534798720843049687577291478189240364209739852687925805159989797539229706876111207716649335982756305477510241900701543119998713546272095278892757489744044457280916371976854911989999289306975352958719740099161020076400071048253113305996688636732245270999742297347801550298353210947142344603229478995228431240582359765171984142639001686695529780274470308462416355925966672328783140845153593363369297955313878510930261004249389246394040611060306787734762825040419094043522783519364197203067690628186832987794031707059877088478188207610877345388593125943864525135883039295815121977007643847612077946520318592789288998123695578331688957387757957187070931299167223992306570144514762989433173499517587851843374461630744909292131156053089549064109098320060473991982161983015197087109190046892139401950617241566327782642213156682989090889959959456503795817211044228159832978080180880371322513131813133448007275505110600692367969286077546855418135085263288174864923476239540081483717532510340340937411200603265417708399125289713943137219827821491746043527055296326254353741971792849284122483338065471376828502295832944454523875838550864493895319056666832296782993782879072358519617535207607616062051618849857994410892733267181866619510705265086571171964662698917522442328602557742176616768220558020051191446204655299128247921306675040986804938607317378254751519142019220128730982389510537143039058049851690727496669025464298043616575974183858291373118767507078315114498377396694229526098201410846792622794839058185910483234275495315685643604631051970634456697674081278934212070771358275749229833309618639761965678906423537336387548893999464981639342526474688895740346334636854822842388743528907625085965323301102058923767742146173548311292030038727542502641990863738924688071033544472514303224644133630301747258392541512159708395532893434802924042419549259298748000183944651175491350999711386833905743735957715541483394699114006114957987709767006487572490871119735965009774923569536113260199882496547284814152673352089321965845832618493250642472171845759637389627103287557634531361218217138132296547973129608712329182529272475645069744524294897626950062190020742784757336766638919303035439612883919166900583378910184953019788915205453579462024160446336721575202777738942603705953695724426710952726895446603181629259939884784860262928442732620740978841352508360472995456052468559895808422977065578726518688865849317823716115522511103196837734242267775344455869367364092853646672216166938031516691040934680569897556972207550823124288275360499517393457904442031355565120039470940252994273846183347596828406912183015159217885433401290552711102188312183205349538253312597262793820932267475430908945482876231012955739562271473170150166400290323466495686850049738404283791546641928056625882473314998622790446092705401576390972371814874326016528724108071189984680277268701632562135774478090863272452981526421687800183642910422681180996263969425182048322029154399990353004168946052862075007979446217360021750855284010405917633699259733610544341614895042707908720010065527774024817033962124285035920340077494470854909650775249831080730423108195154624071563962156634100087143585331073960467441721032778513471069886583585880404504253449440153553150693257060493027642039980385557081250249749702746866758150637216491883800483598173712667826396983144205697721266552896036654176030468729811870786791546095847059756164253828522273399441104927341150666589335016170766946640937064982866953869169923332516967239302340996549786585279731986890654992523485254264058134928474676226775304864206982282270300487031859560178937369134774075779714879784193325559532141534173991404696825556483882381701218886464556548340444929439822676035618577552457404956744933044380215610586280386376046099347750558269165586501460136009744983907774763333903328438056836987461144222325533419018579220131569469626198888671734831091492613811781847619287104070917445322645727376776066305300333863044234049880805469499803871651327734464919397617864014479766047559939934186760041323196248116534956214277559713510182841813837094630580190371154237694299573671845695048237200385771747492168543659401696403502687413510757394986544285024501787867696801170881237689247975085788413397750117725195783088166536463072351468717334231345632168390510870085026780736581919311338661241366524664661810741807693951159954977863317850920869222122954554576971508512860830194564243579052486015682737379709951663696562946556815027188278226606704826065111870035355171141462338582471365513806917471612834596248366903147858046744906435294916323527156854131134428869318481184148922947501443397150434649552864630504459449173483922649627377470282294603285703191537343896873363030463485309123469322987378485920860266064294339758381964234607515068307024867654650054584553297657240550436756554481544330084159848768187749143651529954866203121070614766237680942377476863668694027646701670860703704571871125763942444091201567885938799381650423749205396738265720107635027778232516497871069019751108256643220261304168762181309537812002032786822182758332927192987573004033301297025181485304512830463018732094005064115501518514409930850885661498103557899542670549003566630375355877315575675956615299966626202203514348432536362050779676036209522724521810549621119037330424214487189101469592323273897544336898385154527478562867647684950617232768234303346642995472765680247222335161601250212266414830828749302359128621245508698393789390640699617908594258640785395194976899377119765277266969105000190514524055780122280854582511045918870162953733304413775116468493521934286762937670353177278253284977589219920283529223770864456979636865252127909544054932582747907281555918003680660624979396533649074772827465447690847418321915254100053324809963816832756535218058106055845928935826416977585789123402037981868734536296202170950237770158782932213002535822377561479589681076789564344544196213511648663092395012533274523894979203555389329505463420625898822335500921893215371775485667454383308020568714898564911772604323900504134070549187582421210514101757960790766157900243098398502381843373697772933804610891307311796704748358437737082504764976203067136880155599773816324832758859815706991270067296240206124736535551934219442615589441937307961331143218304535345697817441386695374807488412546235366322288348230578304007264793177282669569792123395935442120150095289513498328735709137203931216095215960889444294003087054110192231483382286642150600070248225413455180809071441745415602928383581633463516390234044524542414753619563040497896879577235805333196035205962558597073580312821207780838544187033005912738924741638908924777969187799551987571566870263418595465589633892300693712519809007721863213059988970684209768705638148695131276065532383912859844994444116050715926026998942208688696352583081650357167201688821615911144758236531959700121450243778228377147546832884541615975611795377447373054948996195133201719130659799936064999728724350825695650524746686273446846833424611909482593338629491742555034144101703206056270277178639672179576610468073204529930440271098759106832779565528366612853379937079238535627936445880686586142753074755084929597972710728793410163421871146704840176229010472544879750074725608324444692641519977225020745504812693012344664483017866834706388372647076009034610410712799237748661292967835997968160126737638028886117545652116898844088674231480574030131153411284513993583095077574253161422116542973436796483253608435897010403483148794717946763747930599788540812354861097479471320352193565275110926747842694481209741214746038471521200506094285503328642568027847112037610549267066191698326227063526714578250462799390042776021120740878808441256805073809115016077019078283251513520536918805132624828377584130511437549515221961786246663939772513051907900403164807001274446918185895330120194722496066627082926328812093010419204726557876926404082015791050584273537499948986932040620579570712808419779205786952292019696907883644001699598670389280303159206648274434942770297882727001496949179362552664237308933202162759807258595156902364546085723728132954621484670112538383944179115679654456928929195042218977033301739639672425389891473133447317420369869658266858930272113517139969596445840733459968017549819468392215512204382991164204629972474693026901912898928655696032190582654046853060917283181757960037889159100172230299990181605752836268915154954443138409808666355586640806790796537678156330036845476428531388296837951678053854688024768992187789335177724627857890160031481502685759484552452367525553884696917127451993560776517277998145226675398313698883804456814826801187500234919195643488882464611278529599857262882784145749334653626777996266555509075185016065002893327906443811077873807230878287625960936550026968270072870214244142553708870856183876293794925787388122900036543079833493140864712892952569304647706959109234899156142642217482432805099809351100957298164539219648491607705773941532543834771644788827544717859759746225863594796271346334967820536828640230485251315975732895194159540461506062425427813697858550870668218170653059889580223835606021006547152452863948681821067442171425080564992093391730473894974081753764074312919599298534043992721907586595985628429307754399122255234035907683429625136440331691983949658002227769264935129456736884762394640177254372069219588752099855246165521876364926243381426580156856617882399903340924195522262742311058599823929987309880826175447460930663112342910956791951233422050664497529068195659291613649284504230967990755372016392242749895116088673571513188695791229188193096935056013916613134302403321217113237719130587145775642489737320122508331294129653056540040797602312397672318103599847335645770113049514867803919600651008096327215256295387664167007706003284411191171465165753934477535492979405471642096735269067263020544377230028684278213237531362852710591139374908995155692053413718363045230437095449554160810242252404491398173457558335361395136199486108858658441107559947642591697683772359764274820237142139049230071578812687445924483749547727835415992971344886595132534416358475521197545824271452780133811057698237945833485334099843706017766249824646986536101076615901152734634864617548555174699471077563796013972856821266756246115962852476413606453671425769928320697932948957712354592571147967927326365428963081325673935113695538385608722272135198548584570419350741667301872361539876700417814127939297772715121945139418073132387613375074638445854509729435545033641835901818190221655449474957228324371841290803226454929889872671016880020138591157042516619023201348808407289914119052792374742942813963111672166287366252102870019100658080296896069384119258940999683848054632813968843534911548272524337827652080501925778123969763420479906726628196231334731979265103671909279224492176020937145546279685816640559267518048215204435493870116314509338183876828589786604213481550035493243773318022978521555698159248757974968217021199139401690030920573338081029813754706237611639139248121711120011128801146229996089513820924778969055411773674407231930656458062007162375004537792170251254351594219653311572206004671204462229538069227629411200109138491779509837879532730501536192248904508521931368003227602204188273614349519727981987297637832856979726462567214483045634515199439639655217218241256037483651903400094231025110763928112442041500279857586666605091694984035972607307237042688201019985536349339881390932143697183199556803696554028629450289834946907236982114568864874232320325457591730344299629515672159570919872323390959539338917945866224164964320106215934464364603039336096429514873121166823274464462134114832454667918350098448069955105717758757824485412463961859659253256794379350242187326241177636387482751300043233630277810988210827352136135867597193804713876131799858998594746115689164227245504916391239081105884984428359630518897828330723002666127613216426868530509617274932642185924689318495176488318198572590624482315284094367744314980759820104300636574580040531679527346509368679353570071991141797304693660140329408792909837379826124036107306249512727714660255015551041032973440076768460989204222460530664953716782543007232854069007442846505216920832052773213320893467419190757686340367881492478104840552886484705870947720876630961130816881577763216762801538537906192621353899414225352962648733653905716682928330590987006470165865472932470784403395046548935937969217710655874977276599759369441874117050182557958230351959862495189305061801937568737775318438849937336989833248405247962269418756379088908771485620248440435784497329583743323909291068341111449950738730298917902736030152228013368407269901575255197498915205747503530816008944179820816935201600711897670308385023692490314540136069426457536321076520089383311726906312118178907588207799865370156525583078357848478900993654635762951847456785957829551086873167610482142084391663524039099363188081567993146828541393122169040631707426245464747973082500106818731982515308164666858117242720213982263545044709597837508047200321503905143271735029568598905426158650684709258764382817029492142943664173343633981849331518283347891490169356920443820315126011657433518177322378500232202402326266295047306669268332177682399825634226723753043671277995783019594231932531760115687850525775670219888877055104627191595869577031127939140963354238389059678651385283677249368438843492688405046331065803771995198069999585218478140021203685221119101873301325489438439545236101174368743818038991342642575465938206990128687162175446273114596099248047802026129763499729866085063548838662282849008468837345104417489902194835514646204226334470490082035205394788708652256575576447566582372375923880385915938813146480049408833829776980777031889530240645164253793951676521937770587497112578227638083702734704033443254537713444031353477115424036356533921207239504164277017961691701533752375419080765189661023912571606126537517997616412228810762986045027526513929415244498398451305772605938887781846323834492070897943184482773184490551802499842214987594661071229739243840904703582317422565561714149783997895464093664808334182480134139438247034357093692748153754239105435932764342506332840334376077440080593198117169270477252412484175931287698578014222285307034728662571788576824332039978448765047916465143088287317392803216264908704331673244644441923970538050247281384423493043262444853820570373721984778126307904625214479998894133096776019612214067736113434249476391796999225116005463087493340757700960607453637025823152608338002363708083798895715113123010305800539254171131582488023723132906982573111785351853920222503571781976386538816122962592703537517062914241622412314980046428361934397813604333538654240068030639777370999870640520537054440308336797417931783576470074226703817059794492821754000248254959409717366039834570805640304832409223707802343210016067093655138754002704558344358033081595403507550209151113328802202789790724877275202021423076385621800081350825672568086355739106385482844383513162113506935993351072533745527301850110775332871225522924239034496103156223336107564609729316087083250223696976471959498031572171160409497094869571219703659523306390784043254587890171339094265649458609110137481894363595633842181414038975706148739579053735081362362213101367398339144363693592520770171378374834247268419227935524492783649704876295579357875677170636013410835069953828158990986574141541191073991568470995832253109588328689397335392572654203571173334766347611192496839952325368967178953471370681746259401854429079324900390540980778693841621513551869643997727122815677534156023773427485019552685984497455588196942006018223889034123824533785690780444213045991095279996536950737912887485867468571699134494942682528878167704417507696507731726544307391688572899646636798109503711583995147936294180419713329002142102065917123439643409098310041133471689410341411835606183542173180688112534205693862609009757093795684269809136905147293330015377758761333187855659231594686394590640423361517677919215114848163720028000366056208306776882769934640545020993491788581096225284842994392336500425591613721755209602177948846563765389855808023341253130070333798306043505832865892461465168220081441781774185340920228650242861800078612170031868641782237325580607038523384237182274923387524388892063224305086435532517624841273186716749888074705749198589022148950295759649859063062460051577859989032759109415536547178522839544095693816536016193928075697609145984398868862013839628390310549995120104203260997353461076751182365850161572305140352099984266812058082712579517675656741117380865840211982260036244434528101773298529934029513616662720973376517812431933121347797586079986327999291696819381120749012650163210799746264641225636078999120176058328740313625629201789568865101613866358646038596485828854130448594596225658298675258766270120581148283389089141851972072152530742928013465971684621585826107079970580842497686291620557754124642513246235516532948043605168567934486057787564596166688377590774201299262355486101893185125568078033221377493237432902962090358664528481195752747034056436215546979485371540281646588767538982128413876875025023591129062057172753535958312142299312624119695896537652045298361298654922727884840758170618537183796440199351707856490475213178745433317990289340698505574293092383009895081067392941218170990250083628354088152498961258019355946172317164808049205671580293892357635587410710269297644409922756199355870345920361903170262507256338366931089844128355459606696052488219883826258480820437829146811304907138997645611956774778507436289664952840692842162214251853999755299712159314979031657987276130119951439664986749440751198595821312843611070968377032433818771630617096978505248487536562051762442347840845648846099953462531610073552966219117069179148073300765270788626746048873944824508766633407357852136975509938905910411438557276815973168929476682220529913036817218758673770810497512503854268182793947410788623987568567416413510368101594614568410615130676951130263672530957833049360310912759916839680478655677610209315357580232153655096461518734362641960954632432750555703863090636671051862780027876498305442504789445587042641786964814190965111791951227269713627017290603069572381826070224389930341241857394394228312690926809704843611147399206695585537549628823672079537030888290938871398423599751126324141457730256320395343596618960375376069167362833878361367776673313885411448306980309527751434797713040311157748406531320264957477210816508923305019344025991621826503409809018371401011822843893317685534462388499704566500858021769249407092644073313884460616390790166978384639633514739780043061353847563577954203842805213810635114021866453907035538909328742636826266249502896578805297216499405018574099610208450654757925741555535916931254031592599694671963763430501331724769308993281191078428335621288140256570482055623062771361733855968738695444621549293785534095749814052130537498216703628112050160054001047466077797912959960121860207753228019382387111026796808009902609720896760414956345898843843854231485930558305781574139252528762986790530492437460649615409578098664959878242589644492784887143748880952974361646514457163329285676782731239858042286923827777956810763400971272909227484514279470882227954493741866482881404084935026252537131976126048737859457828857994242288667594326190560596287023071453363369702553116222721870454902181355840644755755398255694452893417083738157678253060486923051457193016512722739661872524049202173331782631923866063812420646105981522200532234237912797412729554757262991248886054644836367942209482090187687651606860933221626514528176201724656591819863547285529657575425537567050222878855941917488115893437513604850960698845724625773086251121742682509970106795788628840000797863147664707567093213562399047794491914593112657856681265002055842221103205346573395542422461801358937583355138629952246849031151700172594705010711364551736557638982462538481513412228291669962509184287631925028502967263003252701238344379043355729031500573892052336307982890605927131777904027984417571644451609930603667188289803347264975281075423771037505250550812125340912473654070093527418464252596625536619708808744726086811983137528670668557689286634865153518406826937605483776025670146513988753465895200543077095637682535100125408459803998249032747159234204703315511119072495134873800401061715294917325599899997316344322526282028118943097558402367446944254907041272624331148403698375862982229982134626761620490859393621261066798698481765507552469846296478760486577907347685678777542469970733677225013592537035268367780403814879303094300147204136743470595195097053428933769567120892640007896496357202941398903109137610047822002158558363414082439813300015692027184533617520093689670467701118926094725429121098372040014510451016487777320202301117765255302065121185997979247748168692993026749301266595336184632137330993271776419501343871676103656092779948057389853207861097084048736025777640003232665781582001632541191566813712339970105353089355061999501343999001418931205017948311332607272419681345374292846945556578712536966242173265268974003833972482873654446299440516145698940954210630108671013668025961737416502748139774714232001370141398587456640243998488395950676651822511188090544204768487860298417108842107943290867278698240023968212849322027748155371536572183918570103566477815544136282662503006700715216865727326276180922016672014205084794237477699707278330242253419195502917497780225024416789241914199613735939408286553737896883694866254377815632591400774483190169103301571335633093464641406786968900523649720390872839809127235031850197039024567022978287928509520127312045406155930956599063341432524452404537722291235706312705114989818181518957063958477768805348527218754205351807143931582778868729287707644201861201520907308101100371323104301235898554172994050530679363995923198680421008490239519316649102566486337836905871377622922019131491575700008173292446278556711079397446134588944048268678950053813853874315588603992675712881222465435865524322365697470406517281514128648837488698696978069394045722523422136252958743127727987332385402572807038587885114704180312279505177665791718099071131267710616526344388236913997614058213980116494827476205807546845746336789569788117736050367221972721091020268850044295956714002449103037167062818710682805297976550577167209304977827373945780208291281284024083199370844959919193423627332785908266761871213758558759244136319471254641031616661416215967883027040976176362070649205839708583192193725247045867512143755003330495348211733071443391056349487399293935369241407126633085889136568596037712695028302018518277302339146434099738943625756440416601676163081903203879797346696242289824581104775135823643763401081103174688675181762439636422330856256785112179992183543785801345219928019140532609845651493297953546282244122226128369966075966231273854186828411934449034332295844693107379961919729492867344825990729186839325785651033111251022939842511792722086869307934885129977851002846018606558287399788358641677995643084687151440840532481252116056370257163977320869652446534766200634936611834306319322509238908494095476653293874396605999926107502700341532050961790770856458789824912876872738947385879994876489001172625013436335749645687460851347531153087637889576703000557910234713046716616805472675683295905570831674179043180782931797479584234766105802260296651399296323315198819646031251999707110163788765412327072189049218499639427036425419440032870521265213276297725534234684313900056629955974589565327822782160690063231810361168631193865313488017232143460352217505674274979147067774288561524325221011563147710205621488043761037518578009337785956351805137804883697422925003868322223581089780798818062159621324142526336108694135525885045608767821470888215562689480027045447411620808245966782080926670723705535082924700256576610610827295798663855323744380651505425436440696374722401925390290776522127262269495268207590996240354331049722246610559544240172944139477918479701805839636594436340453163400104531204515072526128059022174290151143586962681343433524127627732722615238969737527213031120105531283151125122506842089213776478567583453023701697323321412095735345905159377430886454659467057335747191178134619615285464894950138429512336296918778720892640955219118953892878485241062763482890303432107363865980166381198543967543191124723575044939837303695299700850946908156594478077019476323429117654086730651565349376341689353615458694413839750715805712372206584893369059304516616174782790444879037255175635128637041748236782397366044469251622409332436821950254053096452172553397876133266278694433982586219243928407691218814832636225347760986363125435773533341757907307303578149289918784326480079009808183127883459502051909169071948021031052794867004011132629859866938723050983351649955735450315680445625742076389955589674071101203349586296836931814554308342121990264446721950619281857210029046310865331490471072651840364980439595096357506721373497463778750159321528620384127536272614209224115468478567438021099068888185671698242057909243796601390272594394159362239467525325565429742798906715465718837714973842408024454670290767299559030457930077993667030458311431848470419702738120624916208883671041699800189916066702822550516520891498643670640169627198554410597077584943682955007034539801974092890240125702620637017869573453677599125632207298916161462330127488332576791657277645310067524119297498912632051106019929021736548530020157293307800679801669812412151499078562588303402765191073639736258225469359805262622506776248065092018854277562669348021432301763599164239563986570544174410172942263983098486547059087720555105320772319223039415196267559561515787973483505026355116050178956252088732999324042566625914737096142177125573166719865734973768355107179138996779840165620280168272482719202920144169016603864876868943829187498334291840421967382667698100014106063269110652122953514697831120262173689680343768130222907062873260868012385340359437256578768447192835186056954490313039732680250596329275467208485665043930555272777709635999304422461201187986363851529976355489929121775559997651828598007409516286078800364138826573502190187132430172650256322536681083523252332241980864728479031860074361915015265398490723993873464478103998724637250035132586889552583326708837366550160535531820303992945968838700123526403817803844612648341938044316692635033660349028490574822994128153786381246791771443531585742276883408463466868319986639099620172268514234827257199835063898745669589804451510526577168056126862925381682832794766182039118849195655762270115633394074906750625955812319821785038387503513454473081386983203599939217067682143857824864419844197268920146907495346326048290683641484223427763398345334140568060408499590200832347421221669782284300581721216815225405274186652102762885320494336163347203700308889741205932328313215286528566885430608982930408378335616267114878149799975018520825923156777718676712526216826054813950979603822267810581996243695831881591613819490388090850591735837009555200189682337043352061571393387989252620115942456776329651610839259866650805782737137598893097817563969526452596102177027506058487550756648303657892797064104428141768269818073366887973750721225189791875687417354807914175821654439387616802063460191264890182691364201368366559222911365382948476263733444708408024992330290258806760300260068035096253909252976260778921823404441094859192274186704039110688599535337117644456503125770769633951188646454069099237227678492337219155719231350707705529990731641590741904817039125108334101761982543305445204404653680166660559010119041571661996824640982930830706604878425465313606807668916644756636922558717767522366183729636412051113874393534137697498785672886073131257837054094553973166809681694315790975579423934633289740133999810779613583069791218936559954532943959364370736742205280679347492032007191039029446918414423735879465755751044685504990313742172193857587394751755789786236143452140486132066288038134992533556201417981188331799664433091677612276221104624993375395789231122603222985927732311761551892948677438423539151326634580426935369729656476186776579652569275361968395287112168533668859765800027106600038767551358685523532628592885033743945828734116842005263303480732342052085133264342616075512735699433544010684976809294439126892803077196344945849943240809128127451710022824723031380508294136491837181521758213646960309032458900063609840425357902390668555909096732897089957937952975705421188464138679715878823033934554224894991984246422991708549109877163282446452720782746113943600836007322125638369521363181213200655214408057541686252571467781332467612735184631042165010886200978852216990061782957309955674011568573108077122263700744298756189777214116992764164196513099838160911125984174491067875550576302629864535906631203118410246295490090830735925023252538357131249931251247683481684627255780335776424932686751797680907232641058456000603747630438708595888475164998338320357421445041021990258957898364662705671529915234019318897404629044433841629161999954956482493424830839691299349370009847084941212606747285247319174436001561869814131776107445878707183143625722847113280080743929924592105578385328565773654302356015968315198282209626581019722765050633044842974377601883535555806633870741369967896865385524582310142054400878437738600321483737581445636353111988919053998594464819849643672843229475453735374411930011085936857079011126659908538837544797106199694901901251527400979869843062826347787496982566698393513840340903578075354180526017688219400074528169162184503451102963946154996206012801998231499565397398942418971412829568110029273999831600954475569332293747395685471210735087857905967456649627461312841452851362175798613417371165627291905282894128239074634192945977420985435397089186502917937536864920189632658073449272238504526892974095225459883829160800351289746034034586061314261116343278684903247358845855301775186726380763947581292784000243189217475733628485920256324668888932566101929654625563016693959103619573276110278820383487716742925019284312588237234234034212592936409513674257192597576910543618994129571505607465569664209120219376817048214256336563970282758975233563351059672952039113994429204610081123614582703545086668086546736801509532166118550224928304184740253474338137174773159395087066986679275865127000185764010698402364700102408199791859311067649027963277817028593695379209146037293764580938372662429248472054652523722621455244852167384793646992577948442061303877674529770997226066644222896885235489068157938156545060105335052937430708688745597952493864105132266313496490559473058283228542459986502627190601808891969997235202772836956893210614292994564755051101880845243877096545390995936275047426017457384832760285101386521372321546630994644544494471837684418528379670060129077531349430485662962226837738678935037001939530715739950283150059031681262786645703689294234127674357276011129796994577247912112831139189132479499834011584036985702585485979378379960111509390600632362674881225442199541782340738933902789834384245309975093923911537717144632384764917023542671551952227101517801298916825320828908284414358856414956297520196833813241124718862369016167125472071383272594170374911369502933365346150102319297249858821045430148745746034375344248602474798787317635726301603928154968997412779730958231550199164295633250768970957041253699616415153369130096947375820208217779558776412263846679640037362471387842013167097282443676736716924858357099335585009732516789062445789539438429969715866959264090002652878103008274659309797748899397189860407995148552660490001646258800897845305031991023353774112368906014295237182554128852073585965176761115573184663296225337582898956860421853757548799487508931402662407441203627389794766638879817512816527587621382345319009079610325500894110740049745433972641956581027904720161980642553497983926506678983346140949965567296058207259113935068382410369464767497017545598225005672084145976489457456868517052513910551404468457546988875906928889113642007107322678723433106371985331112393915476459329034932674548636435471084586084292135630644847628341275010787614702675201592855317891257426996751323236413457257806784487324766577285424203179262509755583646456997174133315335095816841615480543031462501949266432782062786368900353105587961445219223456642762211222626894897902324799877961718856825772134623284253624969377643351056053786647594721868346432510725457104746005826862712023404623394608111142637462932010834354137095917923197020576179342131275772559476690794706387391482219139785610507451080190225369055749958621584316905640380799939454310462031131523814893576161065122559606833871379060550727727470469235046971244251214026204916926653766018718079440891369398112320343296065628507529702234416432647798701752977523668509107825114345991010578116384682618564519451551184974295599538062243904709456542750312771753177255401010483236579097313295398845344962329381951795500429615992174972930283412386117403567445390654514634437828058881719740196009888248160533732519454259604554846278333303615939924417024274225206916102853219148344736900351148723421716729542256232510060342289689554424268270520069014387359692782035960566161384884054213053898108298164229775218009521908081247265513481445793154828423533084412039681950694648408571721027353033578485496156642588833108361672345903416188793201703098463450017421977360031871209266655758909404127021792297929914542196746059959056160123599947672133618218825181491460817637491618214607399030804442596330119656633385392061816214482718984933377926195727864254473187968249172356816526640087790932506732773064334810007977232996434525386642486361589856242338535713484260565092746544131811396766667490602015055233483069315877795649881748579588716010975682314042256456347706308012972694575870023095110413381377428062261303661886378413364486045308661964916598710346066264808387884241824555771480245016237409293304142286512836525669966926854049865287088832149745470154670550416089787508446740800184576689719986940390280147871874447503070192449331941096425310821982702627814015719651747135602010167707343844498744978625399085078979015080848459000973730420069379287511183231203615580206105052349927122483007818580528012070738990743776033291252854978485564280097067352136498243125158154437346058215869949737070471659043625196546463472492814230475072478528191361140405917622985316313966127672522741750046571693362613883828846799844865520286760356782009908621140725440499688242840578502103276065313149400435384012055598320432777784382085420927194072476381032365568899197977515282775220688659113338260804061301119648596610131168064717570685119955805561549908676098109890902621727788007356179249573668065922834265051741746377919603313196133596940697152421389636870989269218759169176742991691404670668429350696667626673995880581165827142230873917347835673734655048184755586803128962610495433512436584009225595960892177109285475859575937538150343905965075956065794430334698721487793367133771927214587585591918624806497125635822918794284929612935693059495328010670558679803620421529497035474504457366586556272743624499161865098893166973787937337270036437691414724667020305730956736034844182096728453845458840132618288025660905414840973882221128579842452485635209156818127389294709234107739201819908586709924411727444565961482235052438422839673683378731932413587092592536610758619104530716442353216972003121561012112111924853753134958687008292620289087642252949563863393702554777273354169384331525662357327290410324859367068325385671781834975081191766718320069659271329263430158369814368679345873430878136352136507434268416998203606242072983966382269683084421997737012958150652103923228071184654813486327457151686468064236422450819907559440867948666445527645893404260973060092223643112903235613776184435748761664680283833232994104363991935421428772316558997767248142785900654098580059622438896622125624552077252653980702516190637912904627648302574634779469400347569961781856792369095010132951093885863899759849151060011240883701755160707312669455331926805296501270638750373184242335748325486622444611112500642511445938501443731961539876993049796965818197444341406081819083397422334173642046144526035705249749907442387924413524943340492437063833307510094431890873675691651076587838720535592374418234420359814702160782153163412132794820669814843062491276670612158241166197710187673708966682026213740840334281697521160903904134717796999368163534109639191348558388799093539315850041505746970719768400891357494938481607145359052509690111095778623478613275269654961704996469132130746931061275635553686099197327848353139439691110288043644467408761985264756219480896424310469872208374279681708686452502615972660597551555022076028334169926940337828025329811452885846581662267793840718840562526891251269754605364564566677727431820287938926497734571670301215495016838347960221897370437552585936170240870241232481358693423702646266995474888959753966453634236912550158997358248733054446463574750648917178408265358856097186149364480671399217679071772940474062905879316957011496640083197353838569428145468998242118461394769379925005969182660565402903362239499124636054099223354038857596733974109381274333811829337718673166307975598387872743467571135541745176817708367748702374191379277224737518390600703001738529345941625794332783939192996861859163150500105236302710940941298817460573886686347365916498533370687262710744186130083206483786189040712232072192637741058079766674886586134662266998750652397099784017964199837925810222356227946336012042734865217278701419386792063233491631549243606387599891388289462004673104728023743116671827478025253859492923997379990063785285664683763437903327148879424203956796046540247975914256400375904611240695356573354289397896335139763350523650697948162870231581848602881911410638741240573603469698881419701172495281757640271577720208204758551223117597423112017700325329815577950016108977529954325325849197245913802636949239719117314551991441675805023004050798863413414775291742695188238642889763483232426591893248513567524759677793830317984857842388667165628663705364945833166120076071101097009830049080300118212580576550796504740885003718086132926227088645741030485438946466591733159491732678104924378547403268683883515423260597275750650101839457415464116059962692607407146777537624791890418657604822570036763466252052483617163231623094342710988728860189690246790962223752927051628466504167239583782080266521755361615331751366037825980952576575036576781357262334886818382489605598277866140852810187061664493456877876028704281817430332192416144728209192116958622804485244736699983205408093695232228232757836805543396015374563775753246439459898681985494060227433205100400787119772690046545595563637089417963590512964171836289182566896425101228761583230615975555003546672168600716916922538179036374347592448104049451995377115722933169226919029113509755422679385243481534080366445508108552355172747299231799442252387939018169384500323131814110880157098051016766212893172726741766778204365803365598225259170773257902378126923214549579348251319246076226544524938256500494642560808912384829507138229863679689398367313955847870907866720280782057065410846093742711946347510132401825660098264473766772943769158136965267386481099592360898215329610851878075425213192802937072079490673735680110577525217054874825088216148292327904530719396064765499072051893268792751265961533194277024754435226033516722985117465757241801669025401833604064205512749493293485001154216880777294586716260348749168041653306452419174631408610006002464510549869931540485410937479333235372283361489479281720482746316331157055845333332594171206178224685614531346693717927758386820453312084240171677381208022029242435167679670728831737221496090189482797350874162777639007015099348541375599212941584808798995765254540606428019814707476758315021204166228878703774261921565809057195123163022968026778629065944940013252935908752952779637097957845886222657881367303118926141971873396215445177143211168223413280071918560064651707779919370828869455871546716498425457549069352083786993706915839907971398394879965762236244594138989648137501554298882829584717121868519828200502243037861065494872349185471103947352202133773097125759124736668700971071598928768033063871694917066393558037002452281003307297809568771327184108890226736156947966481723856974741288513980669300285254952818123063668846168770687467582558858238383876905553451718905126358552994629377738946292632902622422294250354208751365758258325263804033428781952106584785555022595599655596140509499307816226735443411910985784559023004293407895191321503431464244840457558996625176187494847028201072939781921458416283765346760338342534847088714147535533055880949699604709709746545982388221972648121023785492305209987986831527411945549289063071432924244651584312326283394799372855805609854430444398118306983226916072417752454054568320822641564577007065949268472595329129459450478753905465699792135448172765933616010147620697377745419001654084477887276843485746095274459396835064932979680233324001924790246735100717484119947253448244330426848775613831438994617770078161302802016032111114973708837520034137286164466520961979583904837213127881124419123887965918850227969962183617336200584100779098871795466548241444082078828646409316602884530677267861248849285573761287488888701555646049221463690809869298960699375656229324101972347712756858966674548145033439319769811940688003024463344141130027929647542178472322292226368421507238715415466096649509743718218924334465785382435441566114816635473017904745121984420554403253724442284094381707211338627377809512613036869053991652963007162523933539178314202886807535199817679990866461529447248724327449207997848979661020545162844721957367641990071301760238529370190073122716690498740341257540121752314834636096980001161579699726708400619957211034586006227478898783878722735084429896737252614226457857859747019015610823047952523966627288171383890775507755091008353242551027165092932125621597180018852588853908357791634734846596435920490605317428503623848697637138909185148088854667063931861007746990277622332490217217826866972261990646842394123744742124755847267523576562684524189288145095168725384885416755316706886852469989457895975138245151575839307749792911557666015917278760094387475554553141586753188714325470382100035683209851561087920330990491840632379895229003058403836802968978671958313676706521193291920310894471660942466979097455555883162845041876802130453249487033107493459366797528479075127946647967513214850952196243369803747096524558964967156822893437593183343214831828744833890625687277162956968483643213167159921529469725096873110272358526909344161720454407670791906945548873551762033731271396301015639153826969099732935476045468508291007922938466772904340424944610579267657698148861999563090649488755490615284454665812804146017808804236244389441076289547458017619492257894063046138376772294722023976794853303427977411655999082202111170880859630691633879335748121914738968140349428028257958257991104820364690010750816304142776325684519714452640527535615651677904317937575477338347795006663919330240584514640726794502805521839154318796782223816137307685072921492509514165555127981085300314409961685903191529294657415878341313844782163951265254104565513422444627002144190601619755808823224191214619691715468832858564143761636049208312799732225530084315712487467621649642641939245174903044008886582255803234485372498352492002513576603173264972125446544376848318387036944339771950188838705571697789058357079152418288783045375019230622483017259845860613172315592062333612368887650890610573272631130349714994169016967079322882577489403768904910733272332522027701043993998076887939671022569161016341750252028647100331767171885011505911577492093100843040328105098437417299073715010339572797078817353383726896169911776154009512576869222182556106257234558899543380005445790121962221350600796443805406605798572748439782209355913412051207641870469023026566422293417326645800932673957200439859858612644821241579563234991741286192273961464337935110465906192329115527278900741923390106518384821614463183362611675702300586337541076261695961947791404674067847842402649009703264301688049738020649662496783439506183339047402172671328802663877062040472774553397604320745181465735813862492379014075619560265038162136194640685455326931685936345801458634695583728702042768284084429875195380486853825996275656900629881435117559010873623757057740096874748292833390861027565872538801155286889042799080112788103685774480106618739941387376795140517360602987213314403366027622681001760481885413410412597638988272095577188011371776899845073226531897302703910627135509879162776293039639490310508342029468740256913331161833333524046799229443607447649810534419472548026262094595003347466921996002883536269569921062408456298958968845004317796341481941553217788444562322064427865648983253153058433578913423193548170287997489460226118379952452875469159701669626021125002650734286883647259856694203339723560404073695742274378917237733602455458207732450157964497364480377578209691148510320375498975131242022093534988155437427236696227453059310984308769312125143590707825096408426350948063338191068231591060925746624282463743766125568119271945946642025088908029704406024309623959897574234655975406929069295182677747105196249718082629870090086946144819715401408677723951566069233122150599993785363677767230857318334967887170261858712775994887226568582530646716536134522964577349952649990392441977129060772804617842770563047475699243019650955361715317991069944524679134452861715762717135407577903412846776908080513584586682804872254166876182250056238685499337204210654319991197855287594578859848184702125963687790893905611836547218039511794796882281960109106580560835992379567867883593812748014798033962681390844651432143127605029484878772807853660438402124546463845715806745328534860735651874048580534608364762177867876349917142742299094997313668727078775598357942447034482174661768717539300699048406042273707003053202246795991603435178982454632555294668429332128718728980472832010649805210490262080013607760063565079076459918849918489720940627296277928803286239361374015279610568414051131119428120754371861218392456421104030239460376677391896188102595459796911034222694330349445885196467284523110662923854333738840738147440596598180696780383454465934312614292147661822769261495406446577432714339118149301800002295471554191420789428706021381905874934741442127822402408419636101691847887702083267310096263518003077772768972835619777577039466091362806569113853332800441871624756811279137254145516260140226108512877461617489134575804460966589816397956616328463558605577796632664781451079369853445697648166833510641661660400917223020882046965073303389481994650197592211556489376756303589232994049938048023949264752470407277224807551423516914717934886462058062370007094045341235810361026228312244405581278793015823734836331604146980068225077493779527933721139143026286940522555857142249429823662548270272185409972362394632460171711530266704435897934178356132310898575628186498547835844173641047254874775186469322958015816782958977095915495832709365322907433196562072719873298467888057706564247348568921247426267202269651298269879177194480189853501495731623496170037467131932855219821777282561250946712190979445994907023379818975386365962800883535441401086658134594556610982709621830902559818226033232598120421025889774919599452154419107631863937917251386380727588730090310227682754064131285806978911523497299372370114921771954195192135889238096319141018265260497939289423699082974400660717540154536396082115716368065604076311925953501031967911807288346573322248822749744864309687544185048049310133315159689649384731962447320981659619098390297462402605990510775384187000022501183318861827241085937805134056925392994957071485986277467616321431791907799826605601448264189421215588782428816835308176881249870014809090461549662529879535170319705537342270069229891658117241091938275442365648943505775005830789800820707995585006396043401249688301894931869385058930150976539839350024305945385569574750942665109254360180672154238162402942997429870369858165296755963019866530918834076215313482636586362340300463557677922188733242480801262799521405256436056007201980234529894648504736967805969547776011485943956285327013353669494372465716230336170207191639190045001753880444126252741360098948347636706356687895306935082700534605257694525798720642649404203279881695989682741936978056962058342127666329978746363342772176469722953837495653425533388974081436858946837764268609212591982796879138039120765585562516812251832540018472021683949137743552441561584239637426599897353102578072575557621774044826866456037993483214551735562425778480917246424787502231259947670321461048452150481966456508519483719301394790637980767619613806058467114109980892550571931713290364382502643511021569727138477862275043776266627972081138439680602128169751521802442008146850987603710686654842266708465675928151082890671122609047946214671462043434863155648087470893276339947239246650887862824071653901159091887839167687245812241824224638908527396378937848026562498730028858055417170236777472763934549524992823961238102947705942733200141488252621037274215466150753723556504933005004430225515896280284964767342157965788941747091646278573613133476811050923514352041417337255343358825495926882313064208895745500230104885910662494418177190588293290547051665066160333016863894779186999073344634929773005429043849435998533015850513594198041241161073286260545669639327289365172463464346969619267525220239532838537295417745997778777998914197992060546141776569484863654446412624367200578174179426964256343721649292358794783617055802157909935606318633942115053107803527274282910160353329311115131295655316465792945479311052546518539090088409299246757733470309960335889741794953541599920123788186513700237202556280399564993488977407252135835532586991928565486704939878696495738298120266438368940840600213612128990420708759481247296035807385990516008912011690900139310372711996602011632351858473359242962977016960578744362849033794455148916996542224738637671677992522806049786994222729333939447186141680863102911806777412685204400616043813422417587754855256885839447280206581972314168453056401431346631399971263070196358663951106173529965725425900363779765153839922245229423330266850057173549580844318501123401245869287585093206532464855246000611044769619348799461206432948956744646461237741877450809082232931323470736333800320348447721007549468673316446025214147272771612361145932904164870494774616430348751007948493092015714731292236036390011162427472949417857248087133660224104018409999579940136260795614336248425343836851672790846612848037305918110045303285809038474216481375141210000444876807609185524684481638512301348405918443956819784132348365571233496966964183372716783646606715035727909537802472421554950341395076403062498399740459352076718930007626540607172341719515233796845100177679912950853852977489653318676170641843229715819542446794691246697856448133975593672827440575767495520802296211188224956559852270262043568398838831769500861222069505010672182328246147142320064424513351469206391491201923389567494366038260788777923036607169784151239458766782515144005850060393285621362933567433149469152354485626644704180420470902428444308110905265632918807124486895796381416467833295383593459030704127717474814891305167706100255259010610462315452588556463386941537884704585399170241622098871794120617182845629629248574734320168760136871612782883228703652877978764069979358913421794035548555470447167381496365263207597847195396849390560924636084871564630277467075304060698096356171885506106304757806913373155202410988401889992654948905866797894770012622745614158176627278762414694028500846642964229627394005600387076501325243507533515398559701544997915666315394655475906485044778361893509444877347180529833311922083645884010093924403967905160416321101445909532777993964679224265015681804564033941054755966798412372669865700667217575006815324899878041821486000196676533579831085942456342602067975061447349918974797886061679170200003990028581560009296016113493016712831528772499248842806526781897168459579295172427009918689586850212661446382275604978104051627453546828774357452235885655406434770269181037520771573869152771966885387114965614097715931864887463267877332585565294510969258525770756296087213866365752969881948696478798258993105985540830264309585908948382689694034304200081902613074901950143590211592175533479413895920909811716745938391249088122311853595474136785538367286188061156251320120404013827779307734796607169614534070928234250923736616770602935169474310831664556332116705160728605863563497126525310391567285333216956099730124117547011381275202255340956881635464207498490626212763591033226539829589571377482369719172016339617397808869491351507441825438833733030353531375455105303025813267170227069006141214705536448269476624580077505641403569378961090315796382127324802120194890803233039818261941771045797665584307698213180392021749566409782506066641667599037963949701248119954348388887059530775391143713147597929108898518637659302487616438525113862822146750818420099001453194780760255011476418491046841643258785464845175822703376972913297473013878443704612758723308410634766386533904157247279224527075520643168414211832668126783839754387584629702469764549967396497084544082328154226954133245928773745680269654988715170243983526566305321034744533670391360592157734038461299966523035212765232180838658782326784580710957510429535587690983638401923396788219115513534687491293148616825619773597710195836230864663873068440607665221396489505134931528919071763121504451185744418093632383765329418291946423455943648095076267506717847771905694542688442810930272258484602184471543748742979014831774148289283081472129327277307411319983286789427629937143145708773168726935506844920785030022056478341067294516746723809806176952341745094833393953759156902076658688434872539864990850845446042418008930683262256056035096292115649723567467905280464096124014003056143540765076146585230173058619153459145053544213430530108384633980816391251179110510990760438622251464748533999219880978590103239707141546264101373363953836826426123356745866731813062257288506001134172608761759829085261936172313775088946307370555425776872060406034303688234085774622224426039077163022667360619031656252777920356929178940177225792166577939374204873219734625606111137708669464416876478651541502376055892024108880672194400006856544054392732926557715813430800322726649156685630650671492219429117499724468572040794230507542422873977854053063195788512100168512420905879457880312291637759528608663901188359956087233264702396590551961966765748219632519527277479927965067443912982623245494010246797835613172975758009620565526392468395190892139749454708523013210628917881022631011096345979747172122832219885414122979338594960050357677838064406542253369913640749456358718857702078655911833721183843212887717841610548470663293026854794767086190070483178907016142850132054473933451558165822032878074919606665073074505923225391497774102330259293339083216797759592244742412014041090709418487153477397258991133370478372087697499478663482324447853966411244476064712919812733688827081223104119290273786838970779776449501599018482526962035258161343735215296687392788210644921006923700787831382347451955052900621769607394300518428848089090253948421989789511747546873669471601325893548037966754987511469202119896864980057043591006223089225359894128398717393027032487292197706565384378192882893189731849069569850540955733541577991146563490364796990800650469787757983801224247409939643474661956953354467118434461446906259863719271086763972214096680384553898560451858682960626069251574932890190937178579093535976895000435985089326577920566306483602268202340923831272156028338900060605888798394726580903139044550885056732509241794426051638704410336627444668330187252171162651930271777804811245771260288631648887357980823633147010502051602462302762689025513827280047587063516735330334494481706959394260956330178047994121123914549538421770696304984291961218839076655085274661620158195286559775787720450187773196312218799194041070472296087644347639395384261387554010357451440493289855364649538328053845226439629186060860163038989398147213296014558525124826521724951913950392211959285243587058651133048326219496523483920025157176805921600790240897436378432118692324157429344706635399255852851949074186008748855602168782637597288789107145755676237110038542680037846951728028779600875652596616649671617201380721853036574304939827408499178277740991458230671453797647304908737481297400579505938406799944061482799370474235904910671895068659525753988675615787826233220373494340054724098785943110152841994948547515101194357267759078274558557578510446379034725223295830744424555320203242631442055491601889693826066791710419641965923515142722964898168243802307888943849245346275573082487118542917912212998286266023620815873821804574065495424079967624341606083033164800247589075482613603929454564683089795858212322404117322542474706839556283376567401552097613552037470816488728698219040831452629523027813296952201877452750329862016166786213046451112853135658710475605249414033777438585880950323832594767183873657164694769741379382737783363802754686570343743415851778205516466685619520756901572182732955408718289975176117422682544460840812859892113321537290736758482340216238082508815209532804374801348854500189596412048520329430785593083498308081997685451850977951100047632336376414440838700003537882657456998490559212038582823921035017547519262205226802989668662394081791418741562761463024271717176004277667855738192352095504782894591476194155427919862494942143145153955835934640362237240616877437417254522622757659179175434666905081427110582107453420887714857377299491683951535309792660126328950522347595310526476235788433832696664412941878118128571394958267098006033545218015633610538281666075818335330084672870197654603894860211991214896138287797204224869702035115670901437183515418667666044127304533605496223477107780486679719246101038995678992064387015875475518274803772715630263149288964043787599328665062689909540271981394145568677380899523206727670645042732164304055186743231393206665786825615104717921136459742864640625371572827934870160941795433881199854747437539475686642847594647684723623529937584610942334081183391007202548124833442562547493097029696302642244348169237614908197957005432010499655876438362430671317228839391718230993679849915984069352400433258213476534646257219343098359225525588154534319787505676453679424493139427401971205829442539291050968238526889790284638751197956361028669849003652837964630391743918369589098989008143671278093605237583724285581699414695612440784815712465859139725286856083362450321182805846170507896150891073356992040121587092118732818684884215137073747770529443514765653304509432238127042198781223376600156269298204901203902373346420786286443567171737217414811017885156646490519665897510231374420016185677158706795896744962601524080877817691806916809689628410581147683933753542255816251348486084684472364223604913797287996384233130545305403999907781810361023555539387154091189399793223935997555049917883075463285936227234376449132940240147271429998800775205034220580156146633092949954284161413618991330908319410170369939729786970310630118918101527067670938129711502709132329449248335043956230394674156370511491337370541369517635017789572364430138364288905006737269202919008886144368853780486267543047723319732658502847499097906524524828917506079650307514596673063829903865031802791941698427587316171760074606639024703541318151735476764798496035025134044660289938462133554785447574659822741605116942618743446900646680499232897222724412998793726802635682453999340383750049716650351393870989681473958292140957388954630446262420540625478794636465620930016965982072981571048636822951269486087634588026028537063679205235878181961675619798876975855502189907861306919213747529908837030290031326682954307984908574664014870911415574153673983802995042957657933223516177142350610278787874755649149372405005079886669041402246288405266932146279562578163539252398322666493077118510314383515391218318422638213857935291590511922522899379054126155658825860730707304527080831151538276506741921195371616070636493083707031308517823118277827839790588557337378740050508155567103611475877326087087773511426248808158335233240024383470850142489104947567961586086152442329732157628385109921742847257009267856365949126353559512026068487863633887125776584575088084479950424526109463876944229949207446957614074541541730808222358929966612549599716793474157778891345288576087238783883036886645484309351759740136980258505660043704492770672739980929498092410781616338873459968015671129003972500579002231375006572695233845763587169295731942218159654425739417606080482533650467419990459148136611658433147319878144242783344744041332708482827244244503433820610590035735975518808094039266978298436511802457196965283732456105881863755338558652634642089714717074934288080507420819256323375347503423308161946963269751116839281628510241421988905033266494640836833892854559124806482371806025033949978806521064986662037351200449131525378862119677990802631478223152011047460674482507393066689133729186917317774420695546241114339311879517834986319696601136552765648205414160680154014529772106109029428115656595191143776927995651663494547951058871599842137489839070662104883003663276374650840851898851105938767731911726138575459519574211788114152044856892587812403399387172641343665836035280564713153563683461418712347175923152589866341074109909304568503842615490184061950912045048152989510688518550352113445882802460831604099557969035726317131290323707809587038467977333120497455357865396168736127393679594525789496865337637718804109639590719061122565817379237505729591130514470069354463807458552931450834889154049589604388156826043178418370272422725692106573233198226314898804018038743026529774946773363971242843936246954100619566131845897924465269283676119398659716783307032830205417149590305718089370493490574043726056970555178867103192535056822264249619436616154153699577546532852314025725256244004697366537108035468148155879007370271162554779520153397934171850972071725771712528945343115211962932213079286526368730143224254596524180479406154736844716374632693645223131667097860724114404166589342786398450796058673274462324181545091919087038962975966357852892750055127630689750452859431898478547847290803846812675412599077829579524486437588211437927263845697315711746051177029327494182760208177128458860395788704833254505067852524061511499608217454490761466987609640394682189287167124071462290701124240877563674328432058645150366767786803831097435043936687776694215528203047041837277056202709144506962448460552481257642142326279065582781910459960511238915954272463582332342210913645655198465584721891838081974463608855001824959400107775969527976419438507911633030723848191252798354115330478772033855428774256685350257308478686192568149325989167778388195251627539984547945707807764802434000697887055733433468138366091517349690197817026477649036071176108594229433381136071876361966788963115360389814237522066403166166851186700061157468208134381363640114249109657388447728138789635413959313583208965552950268412519885098770999849561942967685175286309605629257567998090522295373095195455407297077953563132985262478327666247381945902314527056575194599709321428366801845593218172674114132539882671336461462264768401310701638817039957990309185535116449771497180368806973378774761964963609214521388222436843388491699853615825601346122518233040134295408084115471606946275097807376880055983592274017456827757519400426903184189806448135246069747906180260816841761148572640339264553530901975230648007216571346212874423039694624155350425991065194444653679064122918517790340096540530787953890325118324920167850851264927261299075598785651997398794349374434913912012311383462580360884007238362643677810508082693332043438345360071735348715190353096263139779725144140977591981173208703843819217660575852125098646367871273568689506298754816843167991764520766122313657805339860780677002276070142494465404944008408891719139276682472041495322990006814698872048141954601516220997439518368927213570009194582650310840321022424947886937599716727245154035309888739062311632753519895293604078962073830232705281913819228942220053817406252639791429901420145883049424034908419003275514459192754441169191493684661865325777767042274661871182779467491126303542870410343024839738015387218127407944792284571511798262867002431351420043519017131466036012997142932538164032970799719278738026888807211763736439994047421627201861896266676669479267497529375580715352059228573925367371164531181681938180686375747598216398546173219136885953609333767171812785708559588957918424580356385155652981792923105548219370615737070583215978695241992264405863054594073940972687508980525327459771235909787612169028050845245504696544902942171480210356615344894024688621575712686031863905793481539298255293317600084160337490788760138377979083539928089141008960031480168106817689509641536085737716110871851611554325699594984086869260140410356446962193765820143274474806788694566151859413962244206249540947376712516304736145603572674690743026153863824383611040000495010230044101852632103024684066400315937487706645587553259015396171133030253233787147692413002280218430799454093099130470431412171993795731786813752210660781572950907155247639176365518673812099748327219464986321323704838170296111100111169724009952329580727849433133569623095946151285977039280761066016805904324328705819965121993148404885585869868297371347743300502905822573712312086046337128484346877955402945015369798929783473809746994723022581541755947326901592834418840706832969454606111849975138037907370922522193980819575190031563617735002879642794626833924781487227302667265471329108163810054447907472700068366793529887342771620033814885328457968926155896617783918069124046181429443099215991240749275296315212334342430969438108853779174795846408187277307892675834639240357849568768181798355993834355042568556260858798686430028499359867944274787525468878887330750463360104265310598539320567431595636080986855243565179526362528521037064466563645710666958200543914627364647024652185928672652673991286312438921023401097234812491773323318692251462893762268624660386188252817830604510445992932443458054599119553839022795964036576680575816530688577296930385502298599778056825794174270120442469142763955160267952325128625306446107254062432701879349885524351798716272868610956590703370372029013185511152932262632436773087758144956812784595742981551162707139165312035439568342041446901481214482581439050401280967049589913444803572624348641338096139330995393304695666947377652594658831008089693532038891931633312380538898717558049572199299237756621299932367290813010824582426885519683558010684049301193719973504162768324596557461305368535679245130826315886489894951145011602164523807882420682639584824746253825006193118121556037649201780219543360012088650046648204443525112063325194865558971339844587671437947197984303962344707313987119433950086285602455435197924378156002219628731903484818322732045817404915678589190836816204743508930887918843354818367586996161983486442512634888877729659048021096253455772901201907162149874345594853014655888292936016862171950542068209415063421480567399334817331305077654783308193010090199318294284571421713355133623104139581224810621493092494150141994108356319170551098062469909577721495292046210380656148768034048951846390614681429395490426634432519269975686983558627774474642711917660091692020243513939139773844865946353703010749103665422621289462474629387521209362931783850009612109895393851566650882431132816734663999794182014323692224337347755254607852998103027637240279824418744801345310194364794360853256072732298079211760266860000797429985080301941137671943038978612247670013229575201541056241499291440327659075073220366967994550680563167522274039783153269936450852038406096545980911340433432103248679976896394164711573107590702234670256789812222506592413918175411666410512033048856771095690594320574251819054384043994592959003584205219650078296802795924033641382103919415629721587124464949168583106385042933005553150095460163485712598658077713348155815299776255841964488867556252681812727807291653216885661609413830323964965083942146461730662359776498351656436501879789557391630541510018877637434652014131233302854213689007114824739587748129059860681713079887579240528448580492299761826066087116075730037400694880906369316242713840480243571755592401230624485742681180319960707431732873170590224288462158197947591485532610191103649843199778455284447565685119884833389184762409065230085894588569777405682098037355412545651176780165327768358361240538417948607871121905881424889150173080298710831532586866824965382624430670791985831779233120946668705965209705361020169741251045805785056929004419810680507126097650935230219338882427023185584308556508566473955816803135299657761644910135061551463301317265165043388876999106699574586884992333074968846062101635080444302459227444949416798463468659858815402607314914410093915240159986792966093336372550058273284005071943262380071682981751507242241133349554556705615259935245219802573235420571715571961051412616154480392815023358415971364059173244993299216751584309332465085594936581428292205854089668753006755346841774471765373565090077389559758012445512223018162897458435522529617516410092284907616259434226064188223993678969578217842685710800152796718563602538574234929578455119302263806972763837532621894758574891114387958041880353050418951850329277918240832262618696646197024396943492364587217317974339659554362632611046481638175498058772765890343594526420710924765701007320938469557543869925462810035831128310142008624157538807780750167169782659284567438594205562069842284987831562991390165327281094602589256460917673728392174849007277320629873989170726075429754290915458334971882482917232922450970534172854295764850585627693621337610590432248246270258229983893940146906207726563729744471458922213771491213739520519102050347107985298346011066989949330164885349790848203980996824759137754243137067828356488450417614130335251698480187965241971114042365906466715148553466561902268030856625157595403737802204444737136939687533664514024215027208261009050767876057103746719004369776784316587387320029196540673092243596133967625339568506624514255314849485279331826603626189015153501529500092049216866523593921335989081056715134237826981526238008112213679004868588590669821488078793927943206078910450093423578806775529452016364230615309226641139664070955672718319958896760132862776028228117213124137974830970421294542539962861593964188723295115376901105107064837892306193849690631429991938474004157537453275481403223559953814536717636474530671532042387997527549352023348272041958372421075411404638377276682568007710604473116288673497539404762374133559417902491976251623239469510082250686319150757826487296428225513430268565769073757432281988933054923554637054977251124731189151570182416253370438707015812703494008684905595556046328834559580071630712835638018558973605517455345075126361889956728344460814032313835788201034375797895887517202106999637445772482767236072058468518904396494756942941007797442540658398332504293207999871981858885550507542786825587883361830677366636428011898465696816100074937809503656924536801903008873978084982128127973502229215296765549223122258675941244939427434428053076835450220986198830756063728408286483450804791958311817902322387571036694986776494079845834665572186235240686532588729754310238591850031606031072907922883614658793156929890244270895365620714612867464182521155889993033705496182091722158657642607160417534863497632906933481106393146704130727888483058603731118772059790552255644811508664091287287161007789436469203981286704822994664040726626779232947814362972027551655469766431610463145570528265858839682442183397568360136526079807060652951165927283733564992063516025512070324351436562280184633394690650521430007815282372208411117067939303663918928797664954211361512567980740195807895454836163073788973464225892861462740915788201440426824020102647086971503638841642550236581350822755612465737640520746232623688786655421799799264688817066923589524103694578609316510458398927204952514583990346238771318520215825045941362136579484285836847909138386745940791492228538454891074764866220972990882152737443612304410326189849306766274132369768646416425524322087626392788483182186839420106588387913367945165468508550747761292501463159683551986372742923682593376440448162919726269725127197001080816846674450844597854238288807039593574356151756383703108371342689161281628275280947461857790213639740046241694867912049863914636024077594549968847254508073493807281433161879815777921845943585433191565079565622038417422937974112659455645890776830862181087478739767759340910892570672310756554932852834502223823631216543576239391900062034698198185537145813904268374628920962939163275793378603915944980361146409697756768243320959709609487557750508189402591178774403193984565902107298252817521340453215424259374462252912499613949583880751450835938039861687607670482273134580837103167255515733561070745400417354466589462687209908803397431311208747247081481800373184566251480609771089648902982212985524410629948707486368790018945378640043387636958052208374125437370998615232431838847143786210619773429204489398074058133067586903612913763232846977663307727818825249990260615671155498435232435160454865538454507392238914701561666471513796715479933602800337260145710812905816413756628588860217392031034578669756205788825824420177717976946839888442085489972979796740799837278940498487947426290957396163094186137444375280893039934334431112418756328089800549274035957200991181992959563701393738694096874789226459937638134174892490473335590756490969877773722546420967459851335537007705825324396055484412153710851413148646248501149455244506221662911979179987238326085515225204695300750473078641186320628179355632179353903380891623038848772859706331688748113661975858281161052013701593685775441603815476846177736321347718184158111523582159076258678833281539291101466063226155487769018458417836932434579100084536244379885324050882543430665960819765496912018294471972369219101710999505872504163450202266292579285798111594227291702062880433376063628880848827799668820340055899347865737051116969977659704179421292839356362340880787224743367991248547119377681289791011687571839216025483229164271747769623799303928825559660713222622837439848225600099196183324975792986276280981479841838727289461346493924645762940807044549436451354667131858916069670812535301031291259826466717943193943891773145448994543827345038055801364022184159765971879532453618624601737149856315696072181328442359330420637597129223139211214560111782731445802312788433834013608454206835640709928779787823035832111645616361938071807490442764525704217633586193683451706277913772210922160411832464600152255431971364509624570543996860458743375514068393073883211865483326298738694689559188211743836134312501265134694376838415147104099110513008184381379662088401013284144409724226307383828375255331231783164614528418123061065789936908325315841034564249754183946415671259815368067581007706620067922821575919646782076614787918217106769885700280859080514865289341994989663162211443624713514480533620988519288537475369294002448388993000252214070284705085857628013956841930013558745950140649743650086822733650990202024503132413328831598867058528405275254277282118861835066750432225762639704288952431218347017888494705022719533110419739297111724421052803284631360842295515696960205148792703114995515146893224099892858820773599690636122414202568686745551103129313963656694360999377873653624360557068540604832938992052754410242133808947539928769488092792404374645316979298062554135352368930742868437540778926490338919578549740415421261173539020839606246654491564240754753618175953899925078404707159040809695115180339750873829116167276072050430298002975996105416749837802818405601817254008725446010303678104050693142634304889928234237793193966787229698675117650121932670124062390303614812396317518695850033491748470868816127116614029568705626712496421313890558077885355883502090407482597480628633412468928207891472994912813949022067263924836265309953980799914899565692832709258096259856603877873081743313963968155161581051486489349712048754344164846880711588986871373871168544112496711141885780655857741772712114051747978907235663936035010451188289886904529881219689725675744391048520964473585074525078546890879765995782388979413399882732041077268737406712207395830519073049059376180521364014678027868672566879452300310364877192408958101145290980044377232690874859438496034457013443135476866677154408097624896511611703412981560062264760490812845776217809145165419665999262448740019689219880738690112391004561269351935657067532080558369465179905059078363514631325575868729677036589817564334018133652611077900063038780289694953420734828614966712355021148375754008736577447312120492572884183205088190392240004251758856899552796653537029864503126962949330510253376057600213171937987946056966767556047303651422513773160012995141968580466475237970357161529994971479169811032329071689327982330523325706519913024034966269169338899032898155466130779874607339199657583948749721102128178795841219151060090809162113816332761493427756666447410943449132630650998470135213760021723697793679945843584430284189792714454021215878334582528170017842474975834112770833297576486705259997093079949373468954048800265627796059454532657035606391668284277556672556162614591948982610235774698393123250980092669814621211601975479315584579516470738495517928573530433424620188323598675320279565046014895108018425761232428105621460175683321310490728427836635641209324483248671216313417067749301704076006216011615472389835065971869063146413841371418808164997174724537279903094375082801385304793843003392385990294753448475806336961555066135296796482554603511202386607148998232445729761081801026854958797185101403196464773540955871340680899498502077322117981424993944127839714953554423214162754941124393802791879407369287183968754856146622841936891649772834719645732374319540038613350844924163331599926807015662347460561663317364391158013900273859464573197534821890922502416935815320740165402868827309744154115993429682912435950467578175398326162358410579315901523486856831886662255395321026028444944141356769480593374497405805763752019708054071961232126052842777422977337567764427514432580925338858470169733762520947827366204582588043162975599502741350382880827591048642065348916839427221198592896115172457366445650063334086472940429366878788762867945631496332464533228361626607879485144896439685941453646581556586462137271322755458117479826991269879149301293515915659198720282923490781584455642915965914456301413362339135833901814066323769262729954436130511932907610785883641999028634332386963782430659829111713923457069752628218034054229799645047996917269815989120907328095179028394054669027667916946108284095165644290546380845004494236265419944874190528833458068390352986156703737663992777210421320475756675564588892054009548519006112130764542103607876222716960611197556561936072160327246691438221802550951601266625621081621813398784850056889650967959259457622990381534870631207735359026393420736770071357484201562531550732965349472570724917900452852830324808145039683910326129723375828751007170871643587109736595219051188262898763749161275660881099488250111337312708365692307358156319129335625497804680595503059877848484314633186105679593532059326137006087343845754191972186288203160198003018299551488290869405084839835184261258561694687285907434262440021545598451071900119335509942660799952347419762597564674932919004780142605538723863513373651557219735340319065524826207101264689317621290618019830764079764055105410643414098715081684248223099624971577762577515194672861507861574682796940476770182621390093356998645326678373617570830140599579902665105325335621123023960564739312027786755685924674803053493569553436120045929911730556881483808380667836802673489832984686375980472029267790056103237820184010493149159306386529543086880824092312342704509040894453415674758038456177394366889315435545671194924365985388140592719370391835294272565495048582836981756146460080996045220266218175444820947038619360091614541167550203338437579344790761585227322707704575481419122385737317178058373761282061524782820932585690899348156795245411767748633425783710324049100260018804773028692975762780588640635664757148899535796685329821972939782735579814887280298963835171692720746599094439359629635723758170379659169289573343777298129868133287967063781651323691876004067615832879317556065529289178923200280178044455509198333880648377280395358029647081897466448404750379851741288270421373192862828856353640097475335669815803992081150209628671025072038450808467148427586363555665804895177730356223972136539860878842899754136451490838807951919667495022455231804069031560850981823166300834840966653074035090833378060650425123296971534611145719501864261152523162388965298419055166309689965409321406457165301599547930299453797440798294789289515820561747037146406887062878169484336680836264936577351477836412700715538035745386769477942345199178949452054693599407325415130008313002129430267171146114061543972665969625296913725235994506031273335770010040845189956826314180656012098810280553944863394932072404593069503191113315258695051754228594811441569589335800357543772240970813670121664846186355942818270526091744062268465402057443889542059797467941909208664297669968591176444659717933362116213940019073389906576862845380520823522117765980107763179415502297627062693721888158139853400501802427136964590098496812166580117667049449316991213099856731382350571587693752444684470040322678026597131071814574793798121951725934754153029394656279960946088659046327145013426421484726780869973694495524372375140798652768220968190422978653191263319066299998456360673422794022728676736987793210702927000468406428069374804400320871410660007421741407731350011963640638937992477698197264660615804345443430787655034672934865046109655135211652356777100697764730204651804256844165072863058828484534891981925537069616819132450280676071286647589064240548555321574727176720566219848776974827453367990408434152847972286971223048045904998557589651432284574359580288297041606923725791706424428307540097135309863884792858081322654765671191974320417986862106510264938888003389412736931543634981665465052282195801495382249861752933625697412144440427893272872661143008824107500062971367649319437322081476280658360825088111017185653423151659977025218454781062607023771047198013373597212183340349260725563752723361375646979154094456444077218548903254814846829371339561994616775167012652436431835233220126090980946084615509701251060342379566856888149867317948423504325697165108337086015085098274897331143659873204494689441964633713693684646193878774747852104224733338713554723254806973986284270184903472153388572580395876518899228438058203902307002576375760314479459993710184205884184130207985217158440837967416829473306403265204843678341666806608395003514451467773633939453791995237206424087963647247959130297569834157789534841270080082088284476744265634283285883204327676602033972075281218972940053754858180674040772806141534787589302724838542011773403801165882619373481007800670374951172834697500416249795312941446988184547230874607165706702186464674208516187642689726830040433783274504324881201374701658324026306321657466741893990843840079235561539994939917749797797218389665867589328961490624758284959253659001905911732651392673849879340476083978214947598724589736730819683891564008175420066456193406698504185635713934303838112379019465702064841379084266606765435028271799512539491764832168515026806486099205539664991908205075543172112190869434479639763203703370116843468307767221686776755157692345063701557509350561215055838740113443171375343358223620870973765206549307404555547621927192973975275639615767070587993705465847114190007125520431419273967299016844113209150920728403876916420986521999925283523406084689157694687055967120965154105113065653380343409051693784653338650530530906514195705404887701327821815874930764314949496603407956427413906430338440985526667376805989624441646012076281840648864535244456114365587494850361610587332614388179104131047064210159545294263416509088988888215264615257497905901513961737693141998618840351125860141342166251990788263241131168880291082444880345578319912297743578727133854826810220149070327907803710256021174321241839015222099702771055449770923453991556022021671691078298170482629989805975288625520746098775606232289797865203361226348198261309448871553190946591819740694520486529732204567838247753600122129204663425763643511101458650300069639699830776475429629824403751591476956312065875444155918334115973268138522434204464812473581301530511492536905022420966169835478492519172292269723471226844512654888971267470279097470197605606784713865157699954860419569036759408944575921388469237445127366353800684549480300156510045476634360757013405791596590661725792564609074455035593466232798953192457290088218116170344645833402724961322098268451362334303803080249839163640447348829355817543782197605526128927503255676333657165522118046608452619332316089016069609164209194606358647093783819067824543256242542727434191828177338694910765358601571705223231068025138031716234257624546540880736805994702261065310254234656596559995579838049945213004017160468995713967173765632512192774641128982180441865054202261317551009605738880006674892513600502379224343408697989376723473066954180289309221503465238446379433561543416584487506106243741342744761370070207048091823858858291185493246066100979808145222407688111540873714319325575274187949862951115105351422823790233819198327321327681291078568299975201877144430453522349484209904533133357641890424420973791456223645435607846015608791971447478574270506624851530472363588366327323810583846544644788991591378386558864105614775337068023395146587201363256612441928570030349775028815016146063212127939354306059270582773776708829480142128332697049534738332069947447980700001660682685669560603299353244818793215444258464962778063061343470378585501839527836848297511679373260667536339467313262755012487616539357235844967623866511001960122599820724788788153781653708389892892249840648385149158813031056971040290581252603266414628859593737830332052173070103782144556964460991386881133181054445525244340476763407840576777859852323748972516592530407611312601401281912037331210795238827968337975042893853610870626977273674379395219975063970325389825892233208000610444732865253400488441645405488422378675264738801683634409905074352367424727114780044207143677170842540368218516498016202006106760916643571354530614678334455630440736489039487166434048169350403664678734825288661752629320017754541715079479500368883406987159690425753627327863307314579585892752646400867576959611245236853438244241732850314072805791512588913843893750145620961197695768855541480537566274677366456823567233988153711893640127169357689280185679548494428548659357560868933829208723640604337381778841665560120990387880521609038794097448611551479545389564031740498673980942945876452372937389668819968593394829702224996654809255157429358779837098248877678126056004711352163977477659335107271736560931274779857833918972986547865390165437087366204967108028640249273411035799887255817314641663068660150509336077472179636182316579899581170078835929848039995682283061544861477232863830589040226351642691836692369866503171649725605886499232957817460598059496618082900560569902562563621977222826776384382770282237435084947586160187325079545954968552074372447643061796304428008891485293564995143508859783335781011228665985402664597275426474525512392664662782036707869440140534683236076748043015148797578138321138858307335705529744079841307935443652193898940563105075905091198386552731121550025364459652128009399287826869463392483118350146418037206555449459249021779139871004776273564857368196972910520727759720003851385436052929372868250367735252738211212291430750656689325385049127848394992733180255251439051280213086628983063311160636109454553504636236827138071850122694653709241683522360224906732593598933034332873516027427012825058595084132027650899500705841546213470531857831283888827585023423532050834032754559618393199549666709689553915455536975743480455284090170208305515831895702476194073823017506443561757930554687612538743936531989625822864452683747259413186246059401661816752861926238867429670489001806615706519480759048389763286545723245839376653987447813921010120764847269950589978069155362474968601804991250980707278753695674406271458610250557764102034332065057400071415196433540683244843068704682559063165551431215786453448795534925902808298760267526140533922891438423548060487259399468105647486199059762214467135714214361840850384591399493165066464237941488711114580479240106540735387691257524811539072470628668052062699092054029522423641391202582093806014456587070302774889254432163324792930846163143469633036558529882447722149241410114292211466802086965185627287632559203382863766073334875685120543908348505351160742447428377265139572446569002464788113700904457536242219560073636740183841915500891387630269417943735983261760543967677863262302878210524423666355127877210921665318261829972987886508388954843002186091064746189754985654160112041978168034617959527418256991223404332378558226383197258024541707103961706163615215060126702114841161319888743235242302933974917612001957395465222519538939745756368107498183049470536183439263434719164258631719314755098175166754836173222185669742878667642824110289118077652024539567200142652830898112596589882493803710615627456745586806026348219840566602223001275164312929413351142768344433154562929798508371538494130863126652212288638335709152733277313857832733935559178386254403916312550138758273807430630364659681404929165006876688102867877909011936657984005511274772193810779048000173119758036602974372711008940711409110695945873652761507555451922242189614105598279711980403898429742065026547372268244442015944804207597640933306347966911106374003645834823688727588632599718306280304332532087166225087074312220456039790022489533897381484694411054411015299289944814444099795100115989398971329590396812618277220854033032836876886106145326806509475568636712714286279601994519985450240532379039498298703445387424917174156531951762443486638212460942261443366850776786667767254421515290009761732570524296992470592124507797086926636317049035565817055757557924760686166230939617658476147097641448945760905182831792257386662968826602208930285964861572680622106044187138547586537901551602406557121525967082472902472421698355343170808216413006686300010624332642652564347714160083560169867448374900896163738878516607853657488033411768710453163928057249911619126296035487755300613808128128592837502544136305913442136320126817047729381462355867502572128434449178300905760875613906033207171413857703301221834098476405041057520731534539051323312260131954365069407858431817019195337376755978447245605172022742944584652884120556872250205252882552730660272738856735924181796074460244703940125461678461519798520955670437079763786316947940414015147208250530946316021867785945651248102154019351788206544245350345283748677353755183380127053349165465951200320356099647889444911049340661013793473158619456619209428625452194827609415443496307415000591734965234548788407790640155219356744830822936876571287168080428185410631504094801805891904786743725203034285542465507731263979500186645804166066148506531586386041811063657911379705288061063014342393737835759393937384901623455158110523917347340881179575486293266093582255862874453028509130820665693050000898362747709120188251323382043933399868523710200823995688291224342489059731110835782219644999487342540492767121111426515828284953307189134514751561879198201252036755660692005313277290268256606666917111032495033169515527386233271387492135481667512231586374572166886144716326346464742506849427504909677476351387522925927074278517190776093030760398646493727038993387931024480635387655168936360313183670680711492430521042823534007268255936047759843757269493439718758550523292718891058044845568678748668280939501918431062166131417634154742806359876104477446412102832661749784286524529100962268043618161645579057167742582852389435696279784161998193556598108377820906945539377841975324754457427942834657356869184702283148316480672641543408369409209238853424128151257203658518893053665568399094511094764664249104477662661749986395517398403595306322307027844186034287982292944474494833089940889041268465740165639767523773147212593747422479136869122287654896859976877444533722572423551609015590408113987094702262874556405203447363026207954700937930189082635414676409697018659812569808471518861188069291565929781925689153115049745324833416497531332994107608905588881069118716565367480251798934836648947199269587236335534596703027707971835954273672060883251542386781535447821321891165820419452680840147171605480227087054262583403995361736659001325576758687300757697116310464352938739206969758006825122350507101747744730667063208839781417784737193812757759885938572747792036457650021455111347059697594494097511203299532888485905725681427082827720876228680493433464522122561212850454704211708352779682304008682214230521914332780676007001418628012371572702280719470079877878532203015267901612919025290456394331905682328478184411617055676968031581491412285098973880614160658239990670259334823460353975622142066185330568455561939529106913769089418409100762235353613570256487368142767774103979187020544092269256975177334996110409949526062631694060025651522062647439688412795639724601335929432730858673869523937914900912524364712890583895388399461403282217007737490829985966856480569964102018584512832494956521974387804960909929254951142165462262068614268737502276889375496048368906758590471143929161498136014048051155334578149834993245682420115146226691392905551214118527621362064840821208795745416107696893432230813480643629766063804788429264162018845141120576913797457329659781792947228782959104948304635037062478796697788911461116105809642494853853465144536878094700063830255856364104297546280719244559518514224914704598429069449435567427227765039469342345777389645085916113700715540648492894674719944492221099328853327083100106978262365814470936713340479668898606648113251071997502810614325936049102051328018102940469705128142799928550809223466403644594195364109642909643673998987645796605152478068827242109907830988670802702881068907495911563380539108803628982368126714905069551528458690741694724030202568528958889190365193891235939158185541136765268851925643366315484247203292448222083132083767050930255865281472256361896367807373089038680330131596710534538900961248690863277199792299067451681665422666396608073280535087637984531854815038908545166695770128634420578724628417392232036922528912379560298769263320124834770837109593076205269128764462101921309351184049250995194643419705260112523944185965481067851301898681211608461212221627866066791639099965111403604972079345668513519608934021027798646914016569638852911813960781405862877825945958961924672128752659568407292842370173856995323053580321964591852728982578158717433329575570077468069714080269034977292800591329534815846379017890583833450808535161383039231641939723115601088079850218843207856519435275855603890427588189601999528198247087574330761120083748816097981755775870120190949394373552192669706252848600190432304291963317229405756996906494192868975928280543778107601453638902634690659520921342063459007710925536102728617034297766574938186998190118862516842965824325103561990186173225676942614122382539817628430062665959854520586292646863415461217692858846988717323977915961271545648279999770704866139390440082623528308263918602669219902313892543093517649832942250926856378789889128283899363661277036615266898122179424557626902013774154271574036573417121647348718094783232690934315551242509576299961865893578040661528195199972273313847083188162247004550529892498439961324053400223314872904544874091622639509728917855123911890053739504932524394513093454211939605105015057038167776455821535854160086923230907656855357228011274930866426334913974717987286984538483966263018772294558960033073048669703130663428025885830827254227902059660893987145203074871244792365562892832362433754210276032645179608670518171916574381736735387964757523726112162546099791671028698807620366709814176422694021332772897537258951893589864388979161023580844177050778085128907785478631766859878741360662251269288979732574982311906204053813010677394594324097740470812956500793397068924563791205948175449975502578601782618441430767356604859284724961250963324978863518403932609581743874285378330817432952039883627850221880393886089941745991312736742559138169275532553548779820525018358517970321397367858018284525629819513436958997821762231441887557929372215679171059365427426939520414854402280371010297589853335354827730183967629463455260191979813483889380433435757632023838041360649271196146244054899049678190199195019700271308532081145471093537871332500118479863526655284672254559078258340921466115427175708616636693919346514709355402940625694173013187374496034777422892439657075659477602038555954389209980871831546707837029513290285710694432481670266485120074910006681798857241570111265109534050238622373859380676246411393847115903429476459725623404621345687726467173633376012798601443939888203480130000241036760976036569233785125873708007693204108937578330410035136007976020686970721934769086646489829221591050569160977362591649970344537418595465023988508410041076610881776027159904504467540486371493035930431892673108831129570700205753898611039330786454951233942799588142461888805857132736392281972764794714472408730850768276860320818334472956008404095142160223780196849041192779332230835580312986511114255951027395023033479288334837800603910914759866629066193473849451843850569155148102677151960629707868585922260920456032452179042588918709711218523842761673273506937559218896254485910885279222649553214694472920339371592172305847768563762721194178286634961572282092865240414881383374235962649092194310183798567043477538750417152121184990759628815248304861614523069247419283682641901250332277543816389982204302479685482868690914061340931588847220024157817141803360896367070424610433064050270009731721155975231043577132047452790346225170562532179371287298118099822895408834016940980392008622491779569735888270698472748303427455787875882010230845031874052766346071668849255372825545962064035728121933010077497158884142838854253074946928561659779708136963411549910780574084562211510747201067330350232636073986592776360897882024182719358288789493399260950688735167225305660705032292790702306694458183232977861533538566284066466528788923382071071668164259765468475440025728988977556254982888283847807073481659135848568267394440785149920932785878486836448088625456189639386669181833993984468606980258171685644049462163439891964336347249463883329436201852452956957587776840827099269333667164065693784630018484999318137142552253285424454878725569647371452266233465653542210697067877733800667699554211058551971169961960430994803484348697118839309586249088085661631266096939140915366864458612606437829006804961031236499677581699920894454326090923405816861978988784079719755066210760490761084456049747960059418253785651523665882425962472386357602466866559872311457751349185413210879143266098308257722480819771850597547845479155108446870706657606698498559706506488034692745636328549888189541210356570175590304403884393980349617312640142943424868316839154800973510510953068197911996403706190663473078126745194575030399629925603386604340670514157028169746814213041821112921610022253787420434188080719684163729386293287158415107991058599229126857846094354577797009128043721944813443109567395732076286614402900938415710506877895503371752926626175606664628817644450462200643400766347802451248523188563888336323935526787874703110247650375534707157060208671325922913235314632435249860547320942007182034561666604101053681132668140845146661810931208891872195168068617091969396514538110473622194419249266115104813830884688533063084811445513031261907711708460680642286186159360335346305385670231381070058264298101269985096416769123395692002364690038187142648968970867448963838404979335141745203146275972505006603781849399420101380594382326147306062402317003877557214825864077143910330991827871192843502991232111818389831993703499244909832912397004793767030262289710799519462636083172478755352397574702649345990354236658091093080654877132333127866350088680664642294620435409251912495337858943625429021087458575734626048608612978493828591365058646744886389650565318863430561280600647726580422567102730871378086535684450320464862187861338687810173736418527475218313013230612062075266484189296603477098780269491770497151807686552212761242606036477659323470494024520806017037651881652878275767237323254556040601170918437063934540738907661869840878160535199128241892893138579010332742778437549577313818465201610265027828940404385045415509904952447802631091629685980825175211340537478803996991015064230251822668090560228854881582247455976843797629769892268676276077048121769802318585468109661594937814316161213777145656777394710106885337193717807314984404453405565007328232182419637583868032853791150125566811882913956275571741987730168506104156742460790007940935391287184158651205229471952926719912550804575936440067873684481648158865612521946690762544065051680630399698963939004469816356932150484385542060760174744111853789034453717556204878123593090406624442321465798907791547933327177806895174697052892688183801483856370044230141253993673732677325102474810735944053563877985678188718199256760967402158211872165809269458412377320077317709584593577998968940602845761196690963124061395292436934206018535188697203556151122039177987308268089655246141309754867938168882577252892799518096486013980918541519245716103728413155121345089645652291633826917781578284062545513591039185558487214543519931120930968544393460794396821880719495379657318204011805185870370405297845551242247453094265556537831367527488346257188365341084447530125777185613137787482618468858992236177072074435121589873421237166361207722158149417009686600594171362636310006579725022453410689273901399310440754071646878029855352570844414320094483714201550678749845833009846729079555251862154916218165402362117847435054565398394260319914200959329071177899057967135531416270041323285523380749591999439603608278559346443546629650340875512846201156522038428265094157375529921618595729334197149749198544846809361528518213766565920990076968520557917129325621892632336548981662774344920135871114491935279171639809925364208413472905332222987906090542525596130996533476481947886839113159858041925866020332365121151240530866588696183959575453090512586317959739563169088953220744261789655635065142083963246510409602852945957547769869075201178022984665596855993947354791379076540781107054657914597135244654367692058645228552556620485707601196000262639360267183745837299257522557550719956784559991086855729738500151853376465462713348234191053807145499098030786961213894125272333791642013449705163698067477645000693613358381045766367618083654845724638690956621932651304060269042871696574852106500664062179764451265866291083200122425890826116424792050566448237060728531257690814527987470958141781473737279467694274902463354782142880098670126512795593609908380844037883875297843087764384815570589852602494380961295631430573037742917563872206197071345973540437835950058925911135329264086311847741202392478014534664246952151682853757435059523799794014238018641338261998528997976700208269971459429294849496774431805074858799829314165412547360746278124383393341112785009775928382165327571343425632136201306268813920609344607220901336813420846457291327914318359579754528519069955232955840312691243530334841879981586897212622064130566456780040910448041873301515165656042849931427355619501321617673913197534874464147697607870587488380877220257257176639216969641752952656966315244041113044495835233901385274754676908792062486926002223817984710711288924149792553174082875678528857802576775385543116485902537016801780054048641328647270189119339259970850559290557928730225723921381816259261860847868698231110612478874609830730645474873463528830165441857169546517695192492145450817562410555083319452564539262041716238525954443919350477601105433870531337465349489998695302644002355756175013540018826710066146903167177537207051766586802020062514694464889085314331107829067401964511323238624692740572309737036046268266206682731981266526708096765144512252702632444856122607011612767489685872862272339659951690174012438928454621873603072571496952314195834421502875967539590058315145404369584327734721670494260449148620252158653118030604649054337379455077579695071429606496056644330021966143458407857688296477678941817657303132698428807740317159436962209867730449337935771741434594997470018512915499634983759309417243578490190315396106929114594755596596631305464958212810218917745270770222236183149513308301404087053149725190316343573381529461287624307312336329971529895059153900168006906380616854118278896700643795402308748777332862462354708878527778886645726220940867613537154985636359116559414211044647760714549916228809260926118886770459752173301853771337189844228831879699360968545546219295705702340098920394882550792611544292760101091792893888845963688447772361061061807357812414557745435200706761313811477293552192215563635324951005859753222452518065059214676469419161284861829904059843042319010778542537606796894617920367905998452142949146468046554425041253507588380196471211499448475790716906189831004303634985100986757880521699183266256451133863661056684006127950829783787225060829949952891883220994400061225514979805780185560789559963801857937295424324566195836270359327508939944578580634557474601951944383978080743603986462351272575376897371976060478417734413070129207562397422365903181039264501738033239344414887204736979503311850457044714805226049347419609956192102969761016391922209052138169355641923555330931333248219372339354003411613967191117819907186230611860520853555935718101643612616314149717588150046277079477214880482443542185032234744703998947052906250475044216138283861306615924460068529613323617228406534949844776835737663333271799277670456762189643891591730904596058129799826490856394535388029868239165513938429141451913066882580550902697374843965881787504245811230230621466837818772324839922071222945857415413806541365028496395298065329266334574787971991991794813039088598551209977781557010466525345535928459115875588273932575671440351819398793905134071598867045695375143886632600561962170024940367952545664676980266023771280145677734455837928998919088246417720773463138668885210679943776421001071567469780952152578775660068788600145311143506634275182485894581767441342400440625078775606133129807670687972179297231259223393140134335568797954604440132515220731353760694067491752902219865993767419859396345354359218004641441996128798393930622737227743478879068261424284375208828894638700324993540459361525985914724175510377037983754961493664939394538428596979680092796645780761009210075649532419427287420797691534849650381573286746713654848360315105986752883351675102291698205915851585223091036898000517835887367631803332260779289145021219198678191325410340401254515928612328290879651232128197925396528890642291277303461594318104757059957059662376591451970899141232747752463443841248175079338665788184095821671780562334924837870133257629030659417364371768001283455912384861304833759683394366946296971093578573924363741212574257428737311482011833258295361035159511430514247025939181550105862503435360781372436188688430327944066758955756527933447425927901549274521799284422749312283946095724357270156778899827372790075478144201634113140353271918061054715122485556155613476657230082347844167877184348755047634135935500817260894312967431795575103022437650487490007950246636571674306279443013783468646892497040332124202478234542999438909115674530351756757635711585136294821286502751535367252978570008666172495396294782890157639306436848675705878709585095039078007200705394429676564213833633796414146681793412830605899145634718255535084938009398646185339612074731536102185264025590144883387793907407892101733112607410923214332902602054495828670602162483437830757939802088687669429157372235330437769116989163235101330718002946971103591329759989259229156022665104541336831028276048289549024955274542114455642746364069111326591709076218102979534500307913313698929937518984416439769219354863612712628912563426057950472115081212123784614144065934367981548444693593896461565924088608623481027753507704877032100091632044546582130644187767693134822556373312630500042733021147296662951827511698532004256336663114122788334088672896459089082789408058732538397485975310977890998898465968545399359738111094743009562895327752261277913958323329568994064754337222709418891708535521255138601161054611528755794622874639696991664927796166351051925553476588029288886813413957421596669020544513291874362313403585279286081651662942099487944337423924949192463050738174573079687347392264084283580781708251932092740110617242290039303690377826549101277028317645130203492440518447162644914610046563237971343977754151091520303947479921671457112618890823740199784898230668865546330444454388144027299632437060540876907779547901839249414387968282193325186237632326798938995220051152512732217482707949675752222109051214294598523219187063223990536461687229810583729845059126872096560850981897227163858140943512369347919931062971656220412939285844855377002916823864155886114435930706778841740850609781174772198940279157279902117092626864321720595406763671797288188398677950582006783121251887396266639757722369809290118358697579045960470571245129617006305877147345324012588056215689288366543231354503077842428556307045907149598150374187584417094572277354400433847563539622361791317312802352630601939889040032684189823518062316851757224967817948431221234854061303275390507394586439184693833429971032938837015101185524778833401064888497648941471678049440988697779103889614250291126613564302041559105838159297825032613327488105727509502173906950560709008853650468866102513688991277748795511012303579024899334968162033835037735438159570224483940456837451057051724767486680465849825799167170710515392320558874744633774269312021643066952256446171046809609891053206210587764467156763292790391262485380466620963757809069973357345118050129119327219074461426851073005814595943895087413987469611689667372637532708134474308959598246838719717940446308569482165632439667438964027601992543566836938714771866131070849111479677748703555535169309639014056591267991330342255478422424772112377921906854531128971288037807773751306054091913683149067452727466614448181235739069370868205022218136252219270519630047098831917787938355446969330395133714662704472539269579629108644284872932307293788205260029160486021776595767778021050223629330621072708614480716386075947888577686783108210137570154614831985610991952728019802558648640296025827992504696007572643738339330563659144905726401675976476089326144127687840460880956936053654356136742774641341179596262829424740125924939044667870124879965730132436427678537859267489157824643314081735028701613663283192832059666783834779388867740600579447401183466672235382308697468087816072939735718600280671948742233926063972657377687017515673681941987365995349668770709094424268444636510041195623085382695882700808307949773777139828048041207332397237715717142924730800439574512298550400866262963958677514275137341227449357481157085532618633661572193826632234011043183028074669509754325122288794651730265368738656353096267576284438688580391348189209524516216265554160641044706525810941340203374932873053904683237093501596306551393787634920516015932775259807876801401251692764652510745199132388603163517957307677971422298997011883635014873054743371661149525780164977372252555169573524077640765039758311068586923368071039168888616659354358903263847235873324260528722840101940868513228867647066130888756778805868520065511956436140037401238724127564505197288190264446516775005445775666787270150971984014053991994254212955008600803592473061849407899780694124272059738743237973200020772040229746018319999531610346916679906084085277119530654899442071329431519928320995489812675290749832089710629613743226089639698123587829425655163482846095769320984627795362813249769005103550408520665168459712525393822187961070768947583266136403978855390113396286847524626053101049382424619747279753086262024591059661643702007657975792798474479953404416011739736365962742609056900785115555055666483077456330323477284785643268676485503747747584519865042662480600008610198237345803997880483255680307036630860435416267448641597646095117293777372270176942325108960145240047910080080437181189511688907088511664380377945538208955364744007143136764695881421660318863091713144803275428815514408527457093305270016978026889364270478486607238781337025118174737967209261400752687333860133927608557336403385984549036833565641249264891122862883142489560272324300764069929517404115023898317334051927960641448026491378142001260403982918586472077819294565679191732824119947709689987314397868888616561996450108992460661617315855241007803707921199890429738585867459349753308806076454030423746315750818337087204835379874507382120423297069928464375246541125841965891255313376432497400440478569402123712193712073729638092382335717855468858065931270148582518971451870636170582115574508950768410903384177831555700190863405629358154417374769033253240244380709823684912279876356784219702031795437480210284592871751927764034676113150501476360953875685276174237218021247108337168686076154160305095200482555511055768790648537048282558301139426101773769909476043357265072108943722043608303392854879268679617859277627008801403207465281678950771905725485815378513727541945353652185999312815873362769395644014176084762746146865240811865746599036267293819829115045677315540127454846538857559166130250658123484087005393647472114763193618527800862202874602487058317490277829211634178534127804474738629688260943197713090964295791588071329008267506445336179814531475375408045274846777071478252982671886240367143159297432260626927849605464670261137250198370171962914753093150212205379562077746636297058497634512416828158075031076646425155997661383498002168929449262687936905313632793621496927471231976125235715997932579070871922848332755035164378588518854590831595258726393555192494264157240008525372541255958187717184364436916411628661600245026418130124958110929890875069094393434528045314565976895257724654792861793267425838613951081830412833208336422154769299696291038537326903703559696902449746041016561755259681304635640731381991964087937010563294281179008586372007475473572702272270224297548493738536082413229593906887075667495722315981273534102688698126238175620126668744850015380327574847366748004148628646085446139557424483634559069723774506515393829857502232889343560824674563605982240213424106672042812924635141977645315802905171127821964938830141842190984647403495578188034984209370901979940778050482600192236226290587501255293161633381335021645283264983744970427969416361124194271389599092145127148021844479052520040393150783144080733422169427471932606335669594332960452035751708335160307936236635683370718992917925746544237190814909350757615470292343114171264301258498167332108001919248117867402150992665658823417407287510901785066119481669429089755802609541373843884750538416683006525615826053962255364229351746557924787951864849803823092816973652351188401712489333870806945980799022652604753289710698903273987973325015357309272379688929656041069977217084792986234776214337377636195031857376547165871074707759176292616091354354900272689389633936679398314076128788302668842652629805877896842434820238459911241022313920196362784306532482982429876743616187904461232737038696265257440644748119899041125120227461554942045776867282499090912322696742350604171506948049213467105394996020911329965793252344381699273001271664637546736753011179849343417430332022195436061051922090181118742070604444067353639692373802560863331386167230249123856869260241049717867074692246401152476174272126686384219874730014339018426220597158479769534172374793503598965720128193525158556254000881844996975930788289400329656671651213910866542076436291154418588216726692326032828012672184722854017804752873234950022888160732072997098601555877440776463468441699476382844941004749525588372227949293638271048230722238183993075582919976434866049345016367743099617011825154541818684669800377450895989975458081415671419575366452826245757869175189852197660176397341666795226653902208210354126711512121787200490722151470949348384041308525011304663320740613757527410877725736095002463784951625666001495369076359612516284481304541781776629507240107731688568418461461971225987214099089177916490871011123058467639354784427697558161181144805898063929028420462918579084025913968456532422464121686095820733671558039258283342223499535374604432038544224876500840908844302932042652561174723223526369705200405001480824809187956506703092226635136007455589057736276893503794361198380382067729228591064665783487799817465706507888192083730822828003929829996214148740972422831243657803521718679598439464031108360041974047506666308279817626544960796571202066677574978916333626082246346929998351563481384733762575831535329389378035429340440628669589216571131380815150417460684425899643101640844975717115210431015711440324576347836493443275945068807054974505757586332863533308290669863514466068083772001285112871093253941866310463584797679026324850810449161635256473506136802245924239343568880284721485535954341819866913451912831949730496118213709853438261079672002846710847037530624776456590572939129843916106715059670393701127851362618346450677720572487971619084505608974668284949855153428361025997463424687763610352889873606209320500021540842809102868103843135448152087798013585014560244721404265932342150553938154730883595152507150035109342078902840629143292759486736523596755425639639084818083044969830182552744802843685352774007367786138436874642632414718692843646086961959469650048968402424303315446611253256205905557003584294394303219832673100985768682625174669592373548700572577050204064055158449307310245458623233592712070326485599050447193529756039562543509521744580129983385760574537930657524335826519889403758958581809106612958012165971431995542328940366186640390412577797685321206936556408884941813264533106874798882285820860840885671043556622883645201309918753014565582802751000965079318515351345748188226667922159799563119173994976775003893496208513803244093511447634541389980309761139301293236874608562892101053665611396045927337531427603948057593681311585670308502326342724920996546942920611991236035465797802036429994497519888002856534505342194450432821645383725578956227548037216453864222585026545698524660529653386673647765858228776794290021016512554144246793332349854585768643637453665826917074055688999721296882480405044769045685709787686763510903360520430160238273612730951824042995225582325677181967051554687787334277412922015968946855099239299186244120145332421035553101836929823699951062020994439590000226534054595683211505702338111903886725754362895447816322013033945069055504009592406127123917974619192987268620482376110725053208558716944083265151116333801270891932500853274127883104393067004579069696036377811175375600949521947858280501367139370288914198008534249076200470216549250471596713311131057144055450263649732051645151294833278467341976962927486247498139869725125235238777080539781384118787660332157936761751734950890581237496678333515959995277101678029277889952173137931842928820725777334224935402080510178382230712078999506962449682165589120965104423042737495528741859848387384256490744921327997078644077943301696877235727572300718920779592545703376057319807550575843328108898349363884731728670515192818570580004320331573160488373808021894373959405774543348134178444775608926997194213385974139239789957971523514051454595045709352892852839735076035301524660613632764204983637235111248773093467695736362011577109061717873975683709513490375456410207255120440796588910313263684383236740349776615203877696574195801838730247813714296413504309355671757930661021121447623309645445100676054199171378017680914463721137112817292457001289851533947938850899248877437304174676360951053487437229075272889243104211114845752052252463912991638391127249241262941083841305166361708457001190954000729080841247255510794480617836701873527829616242094020534627632056661357005765275807874393725412337988654002712900977725222020600047616828449259304141499238021677041202841715424866394187319564940105342495847150755148136772412185175914554820140175404227576944638158843356764447429775699452656501734979775618931809189741342504351301424607972501614970676093313421057158448486990889179224158143720590691602986292399336992073563906298060582186352295343488955625332608875326098835949059689273225483494217419268712705123351203910424293560144503935948518221471642481923069390491431126844669307629171466306963600240093258023502887862184031739379361891124868205123642284036784643431261515277072860963033673644034832091557815351369510401569032488943063752914080703563809317536521449288309322620285151159637657059032163756893050460895479524449264188473237358500408171329113304928844111120843675573204276741421367384170515363191943237537083550497599610805967523188259929360555198806583899021471945710685876491479375126391326103297594565215895574452667492514115432151142936288445739466553433820601772245675161933172333439974901074877066615809547737157155901401569878834372592980066817864545088529163839956108215058003996519652943456870273346705895718189305534409296827733432911666501489821176305331669989619441123349885981937551940461265647272323420402379522331707640748554914808084947109513540733806298568268462257094808805007664662172193044630570771496356623530256700002557024369672729221153684569540220325126263674665091147505282605310561162503372769690556738268855969411375940907715270064862626479278915071601560219775848556384030846113923329817240235506453001222201581692942364210375888198234831522344344830007950190016049705821684932794003842624056017590441041670694453027382966773955927192792068853864831892810498109495351231004255199471915930134841894126357135137712269668599744555935905081633610498358803750861044296773167434628817121410037358537364698358688123573416287049385343690000236735467466171878225990039066528834969958557301061677285062184389351297614918542583037738538570458216805925674483333034330398419100902701038694038624850356953851752307212852457450028580986925199077094887464824977015219993488682639729226923458747080281845943784355847392952097968786687143522956477953153322677483958849036928030313196316696259182129545985796886720992551624976409881311394014383697475155403197303812773304646326046553025276527896282742420526624247137168745080393744480623586306277260781887055575575150388409147998567400842732001588098812490230190667807253026143812609742310169724366373017028089614028011725617773929253405372149550511496315550479293157892908623748363489509209676417799344958316735667240796164359684910989319852543715311755835163909226843281015678685488485332971604745469694726791639656025607227987702109782690148817359052154573829219457684076074065913112477492679939736462538002033852823765503469021265662255308639825398394457456976606602779871698777850130839986499302046631719356291679519454429159853895851194271776814357434617284422445885478473912349774130444450141589985960739098715924852767933256464595178206816326347062734300593367900388505748048203071981695612808620355615918299022218200896844881433708080851732572778992490326731561986133691198432625845084003752154587530200690004909568160265773135426923616125755994278605271775880147925594380588835703084349560248829675089268475453000156018951581698266568290656638774202487489237583930745153999682770901286114813853791463132829819045948613724948447637747666939763904671466528314230710936547328761904521980304613840116872881868425054760300907237878097100946963414404014020835687024979412387733744586061077675012980534820720808615408377045394257375809768462085970969970448593156733068527985130133528261724719045175076667824342105982069699176948371358652085383529886547666963713030646439215621211192957363094657604566637050427610387701507620251640790179370501504751930552887850785472922411476684192067207180884034532819747444470912270274529091357534388137052747858519361928386934308293446787680121663255866830700030481823349689359649172449038353571784862852887515741288300859967539481306279195040804823039854314917089594664355239180245740432843526486572570553525349477767518900558996599902450051197380419550616687552093994516733256911984316909273133566911170933543455102368169104059894474101326861060134589893333858730954511336211617100698450118952833065082463214628061312134631834807624814711624122048383845465994836659409265030804613592143754868316797323495032038846497554907590172529078387765891136506122631461705382110320846782503094008222748596627124018256786505677891810740987369409366948785537083758726098405193462656961312823932359607845816233735546481898053652611545146796878002391153445054783148867095999776881562924549580322820110115593094048972118954396903342220555991356037332668367091948698854457297368476166284948715696032737343581655615165060257429360010255870447776963218490262040438960224868567514242510007466677778320837298760140706522912651581820097607324001699297430434281904501656012067563414084303739298031450216470596761664873699449345951196016501534951020185346646937783968616209522391352625834921240615229708688460552540513841567358775809610037295129681981199177767182683714253307589480719359140711835846835427478956373729332718030840190964707112204583554897158123697867612244849686662945238880115177410574747742013208284364354044179441915461967622778585354912064590869970138290134084769575287124158730647422745732306002586155893375729442377853991718379208179598104240746343191101778487818052709603911244598694459975834259031584844051864841206605941481782943131981604454132811624430947208883926467929678804662301142773340451743111805836187746001238009976520268192657806828134152374789021467425276827624699183167932809804008817884803184278191314983211035268892344615183201530399020860469250687499411003988530544577101606652063157700342722802083055414278752305106242044941085194029995665593925106688945453226406201768306652551806876818292922877306989923921623683140405353753449160084502362797826148567848824163368266958625972054305538738731492207929673786052712493402529526767903716528409512771703402318097105759523569856568338549332327361676286258603884862031174221312647392688471158926901525984450005291490696221307458238626125044383290612558395324590401396503114046078601015184286136027568524219036921839748715906168151232373452892264898700144441750634029930739199485265890721930454287832855311101830266592848350723519562770592381700603191415308267043107945717214075492601148952507645908648982980453629778331322454929308743701138722610715129603918441424823967722250265779118653521075195743158675328564694808066663904022632689717379498080679781284753577327016411231186366866739261600262916078971985761439880793045044050604186006614866430939533792614497461265496500320847348085290117076875457750614398757366616381613253634230986975635550255324570870149923556429857805122284568574877321878305575455418179228630029830730895994507017729554642018536994556150565510369175496044673183502415659421670000620428587605714751931036361285933809244753514899541389590142552402260634178183714340069666751243920890026391771441106766225828976334545358128996452531859738565039865280916997113147778215950249609107020275625374921303260552221945658766937096649353403574645968890461590696057911392565175943059911658001218100267969788304969634356696833526884956286301802731722434922904610081097274433526338452978448635345029957238624367636648395056009018864748457099040063143076400241212217848279953335610957418544170715346346011027622459744367415057819214756097843572369850413775840294499129528355941841756141933630078028376931470891959885015803421064673528198062293599960715055435273236043409249318058388417256677962649929988534200487980056112292642910984331883580993718312482012485256722978041025558134967754166704111863549786106312070032821007514377617220842447452869616526448452752732738864472962326552232704303224430413864779228193951662740972601500425663894731080248364364749563677135040076125203677020224507252693389117389157475652817052438746790283502027721425360861663848732996113186219487518413501807255805358272047002794502673248284634803531407105890587769013126786116134136846314273536239820687671897387278888754432160307557520584782582975500274635486441213663453638248041432965845978397356429009855488148634306773919512678023211002796858801592480733782781052250441496475224915666942748225239360544793470627030421983794884041096953175794974897324789249930604834029628175683963523810743912945640890019000352397152263549187094257154045665791473842090550415080059326094554021703634866422201764449181806834465537371468487232824674189580054664858409630990299478438211878324099294389395805864153015479743703591270771018199250638704913204316474309203996560415690213088489316264037544755778641202154163554393310070001489134386272948426927477446630129980085492805171303747574268940538099111462088804443259968191246150095419466449184760199800294939388381661941306339548104595087631854954331800777281156270167768913530181225935854098645421437537416453648528726731006431210663247593126425978023457845617521887318382611430371828881899986052293913717441698381695368109535739459918000241027847873257862554406329575335622242199153126075371604615234802922604373764101787854975559189481402491063250847951514002515827775043616837406168842806888705772795909098674046437834153369402497292642456530456180578096113744870569094026246618009515056274807325438840696649370586881397964853740389135565875236693244673452222876899273058773290313522617681630622893703098664031181475591523683674124140098591525696188758057258397346495362683347061497789566672510820613579319332325990177357574052679641796738189424671523139916219821734062983145459513457935564858108254034758626547465381557002905971201393977885470391852840026075905487186608690080773063124036281061009048639279113831460742060650531361994043406531425852494073666516128135466988056488210271536243797658342039608295531483476098598318561967880189961561570987363772329218949811288107228066717648211236378274567114492663399997465948790190845021778781154655932432470156195197061026300659975102223862855650366989047788316044073293649901512469997568293509751934678292330772165660996390665022794168497157338469182577282313181030215588640944184002842062749360710427399327209448608944467131461202816471267734638896721161721390096738773262805789618171966426125935011640744788559290479328599460893435112689382923792645225281758572764146337992883062097811041777278482129183405650165561066141289122505668203659538825335928562421324182623576791002914316392419251436730039917261053691151984255592529906563482922486559959107378889583095225336034052099368345402019450955331171615266649855300417498444556797511199150627805205453489964858825322971159138776823583507014657245231343062813164894247622796658017274959111154794560233125314732145875526513362674533310448442105755614186612623037713457413337342442660518449311943536649277321853013140209392482384265271818218323049265387929329792025707583184031781446385461453424656935689894295639466157492689629946133010628138545523398539985100362048866488484924330712847785896043390677298598839570391424888638415524871900083069038714130793035124064999575257708548411703098806019591305991150603819013047068978468095765445372212611684623582159058364429633053961248761698150175821065770454872851503561744994372330900732140299191438415574776774949847672851872287661071376638357144131327200944071462053314061985864474450183572664682889195703431076362269038000017435868199195109427033898432421451976344778495750636425378438664167529552947005335146766877296562761367829544143083297815739274374409850841815071017225534256862451201167332281246696460591264842403779071712213837966350159853432055064007126234003389029323067511049643266368957612530545388597365843982576215974750007710129989155332172963603742180628252678542348269552877997770878923316790086938088059262905259734293423632596698488815863941578621352515035192940292651625270013034376499120097778520576908866763512807814994397204643489640871862241267526741572464931615773724268520447929292968735804616180041593611949122200114743200818307335120638151791581982665924169233873940040795422665774934704823905542262568622189434546558820639554368620316394795310390364592064754335125623235477203308106405400159136385747362309416111726054299296347383543383165417133505400970302120715295992828248061321680547675341073976699636628395457368654126593741681204728902230653066363176685374336274669056187518506811381615794939613326618516680367289679616390322301106183632009636152368260776986962000220118668278968238819741072623089808156832325353907625383526349228333910833790304755835933329690222483204238557542326917917359957773818053298591713751092388216701327232193637443178759553144219641614626550544260275491910523049717088086194630465879194665409771357839928781605387198946664170698292349453454128415084807786115513086433109405798129352584770173300548415943125368073507434433274456705297726949649376082885540162606862605450118705506174883556071326704161773293747393788120655990803213784615568367563615480656177862537372834416146731701108637152512018899825582410052717599807033366312984430658042059404581610965352192614515082506039249978871310373434473071525322080368875126522180413122924326420546480185076489772994513546104908801077545134042724869725432320063035077344773279237824953813218554854337759911361968863724045481113283429546175981369821985915463982313899245861130567321394742818820965345856787688580005308181703315466922491964227993401431418727631316457307334784205241807762897616000519519365282022492701228892233111099865394879145066771250922329575266458847840893930300310235697991477745102398500614282301341409775051750837807109594589630109131034850335470813782044030507562314523808570401513020819263110193715202584046880581671710079117486097132478213440963945395391873388993316706945185314180144101911046855960983720921840258825177783130725795346656582964199394302120107055691804818341382660881789012224754781188785687247644519760532765356750720788859627641886010764315226263416424402753023101246328189376800249042405456800758820504150962432638284441415933041975312764737276529603148914106794138934419907629382787857557286052307600469546059505270588687568654455807604927598499205649672288266527000533024463304620205815371540395467959185620565954203891415296515481240852868199846532447498424646311699752876549942033243201354032112730491737543552615351623815973955214174537363960584248880523632448005353642498065988700640302820432599654542222368626156968653148281813359890358340031740657201160539087756959837176466843679835756014541477270467997806980876579402638359441493862198659331989610846984984979768269428935929703526714838128042028677343565425277170573177414819349363904053043690514593125019856468466894956432053537558408800830144483043186309612287618483037279636665245812257711182729154442003906494505048553713002375346384387950550670340334423620927412576260385273214824680422532012376076163581860176891801609894587264721381284034080033243409697367225127913470872723681756145799508048690608765208201830247894464473787820087633894867626730930685008902342550049027638609792215243963025930979353580189440054433152859378058961930412782603927679007586851102567132305241667157087733613186379380354207581960101643955387824693046709732485746020261860394062444105087285873660684258616386780194316818786656515448158530929812506202026189018002894939770225190433026936583822050174474230090974799172970978196912572421770614969540473406138391878112019934167695282914072031688794414380724994229111221273257576772959110871062095620962432165332438989554670940697612208073775460540325357081936744266930222325053316701856683552410727968305976394754569839523951162810821600266504950493776015546890654215704738901826168111127771261260596760333456326835386591791974508104446323772748548099852181070869328295971703407250727015598700594897099288178953322560847967342428915630973870791960476821174083109661537092328699172262623159942657237116299025366003897788000671840659658193032854090064198774779426805773238076973916353275022031046923186646608963043686536047765850934829249906495567677561735476402703709104399310227594778912544011350067637139459371094678031371253807238129850793097372074483325677588292024443979833989586634182387164000562337197001600671082390795034591235507127928274708612054640641342179844775989162579953532433525554777469436998434604033138089514409204917354503093366314071358622210474715925411382004041371486433671231099700268592720683165917139298555774016413396266637920368623779213129863576560158149361392575586315747494762634006416797907816795695495988343825233224017712056863569968319574390040841233355062399879996990068331811469223321045219969048397832062508464168676318403654550909556421167169888534004086251014599836640594407653897897301840277279665379231322868510511326502540199314509582980307023926959561911795315662675522917245310304097031084817368582238157489383669931071411410006036254350620159364308507404057608070151645374494320076819547650511445643365699958990927580920240152842277983119831309602403579153039981479752566797841459377179750806610467230985526683457799189000024560788999978682566294461996134140395369695380461396828146808674446351868397864551752312598864762990491091662320969037509424998237303324136509512827726029795625872169635479496615265550419536019053289959529081885868643512128355433411981010663326467688505777243857062994138634915528621814336973000836840935285634973191034778135479678341528840377068243932357680791333091812943426612069945956933294941213540650452993448677630329181388450777194360888971991290484492381698426681522921750321638999543379645970109480213538872588343949770443548907043150682860952719360999162127987272555857891886965869094505042767872964417532952397265501678848035178704400008910848263340567327719172859649188897180175580050693499333165014529695741275409961285294136901489987952468400186989700424459219153670794548410778742752825886944285620844154448192700134295729376852710450042206265110148360953808118563763188662174551874049673053543931485567731303015020471102796042606441014893506981188149221256124193396260636325628177691688993148638266744326602993175690244376329222100690805511138793182236756594636320245355550382023714560418301251455242325146455589855664988083643825682644605280088088251571063083357611665105925240472510988484210220176934816100892758162898581255443355017440311854658418113112207542299618198940357145671788467013657947414831944919531266921656033719670375573017959997959303317749258766646527705675254075163239993672193861907543090921570264749212888147113389421585265477483934588305596116173778726704794222735459606067894029379148422103392827173985639391295719355386358912474374109567906529448409067002306695786321193325659687507756770038681050377776075395141252610652495068675780590463035085594527743317783694323740370624512278641741476269992837570452333242049421055104006361022370801775912805677383909590956733991019637714822344785314542642549781630001804959696232814282607678602087565642600325875242394553409741059227148170324422741574131044818182505777315871352444242360681714240807193887983519904485778622856287546599042416190972733380010724243349539820090632634157757881652241064604138852364922276792227303310908554570442826967155225709909044789018699771686296951152252942349121676975508394287027946042570944218500771623070518554734634243533554449387423392492310027218913658103370231757018207875225596479746734481293344622729666317413997493482606900160203499672285103439881298248916646931814892342238839618265639691238778893889094247692321503063349123235204453413989348750035822283763760526802438587282481227034538473722653322452697404404857057553203754174757103178218386932631491945124767298199527994546969290566290458136473179451834641186344990286965758268058277868811677556933993552573168061083249632576737668744291011131231277714417548831720799808057725197143432564093144616276872284461980287999201083245631026769142700832258690367497637214555364316849124084999623955711942500567711333726629577261976498053533976104643719837146741272201337739521131279294553484304007303658651591858203024132640160617305308952481986247899816248894940456652838663453143562871086416422700379600199283195164705589857088518029845456941353832015679265000906298845525861353902660750789414696504903859388859404377594950674370882348017520668452343333202132772478261023934350159406451191704906955757118666205711891857432211978545525665022610553907422513912562900306942579383635478745904794159002628852551735240431653092510865941997319661004849727912923766218221171495583923285257875317057438775278785285485742681555432012517504176619060603186375946278443605661262419168335069972575508986452678265153727005027191987702631162316834172136730265896416717164810084948670967819869470956244637786117793801270816922659184979130489491237542161732496791941095407459082636059706094960635464079131874107380541113036396134082785266364766080358603131035513854231276596286566105720736727246521272792336220715099604894802417126735872260581674201009332536765597915458304473610690963480102139638699774729666833255069365316950150375710029724170697910933355773694493484723333011389612105922492624558975222142911597407077079977928290550708297447675314363774008157104886748834147072350541357060072093094719172124580088788181169535394671352069332389583071354427861015054104315036199789009193935890621931289615320121584993052884486425070450083419066612854208644282995626069576061554012245939085123341571468476248199689046017456160969381254557857167297853702245734323585914246474629147022744195711743979719817384995807342523315262745319142086112919748653647772983004343596703180542761992686578017476439118704252527092065581236876010447512801887138410179892382360296388265086308865975362923791464182124891954368736629111343055293895545714220687779823637590046234338385222316885840353870286852910619408759206869588375928006240121513284205621005954556861892883359633203394735243786640296508450222316767932701256657156856071448949225230806778301822066776573865346883353376786005436458749115970029751283669024805178634425549522995545117690958532624611907392511986302027836033351242621351535913547951447821515284000592030412054115303143611239460673903034913886110520729146009456869859954130117984218566323887244450333824060091428539705571129069149252501533904712466699007908921214203873381262783585702547230263963074447375197123795492212170367595022803789072081183205236156622220147286809023015362817814341861959553468111985976210403244022932893212514178336675575968064700087789723275058231898597589209546800929413597742478210253554214816301548723226578949166684093656315226734857366448797950698104269735389499891843520300746048057251304164664225117857241631933684568777068578965625357651206954791088132611186750724152272126624632801631493146626466186352104512830618100837070244173734908719197361897489719669247815977663369209574777415217118692790426976500769559361393883837980480673719585710436033354511685458345743488292651540669344569552416662098058756367879669997175956175904498740446763244927600023005465939692410689456419830405212267988032734490810300421100211471783869442138242505393983902789131357225513983415623464097181957391089197758603420363553834727499853239515985418415229092173177462173985449558294840337869365959129937394653504070002590830417035826937459617946805801903811606279796390621671666938795456122547359542016794366576428605742374624473838135462443190311204425193212568575030444542177903822009664909161269866850847188561346346420335457205051535050712780897453565975656556859745957616764613599062097353556590051855666727851168991365251509449431063138662929293175672828728670471442257368023546272601001069128784636307191126410679779156617225829036791280545155355795780058605371544346373920876243232676282786916004127303298338863825621492530759678910410467745489818205469435706597587212965288157585940045257487180678385454072292423023203446591216806824570248003302901644711148846357765331143784215799012126159950876561206996155835733700779898825817056588620047827034411975554428081401367882392559458430984129531913976367036189085016824312994877547374011091079291690907243446929512401219168361346731324157716795622782312335585660258273330460525751832484041626361876363394867461089698686780448421764801256416266970891557807373465120666846386924519683874763066899097585652709296552410433065315960777725845492026729478425677130074039352368853314778590043264791435907453499538225128456779958898210991253997956038331820765019344713072324231780048776890160442522451790167709399956038136115446686701148447327382378894865919228012976633108589213861693550990010174416745741222720571957252025289611459450889788944571078155562950950627403647619445929949983023509566154154983522017201969042063150315495000890148044606864145656942468713661941349453567416178048064194091843329413579747093917030538960059186726258292694082661554655955989376898917175866369296483420501388034812559264022693112829801261910152976945233486483877457238232530869370308385788166375731444571558218334213178891969467385408847867133764104597474354710590137254896534458664904810987055115551778654831269006660053312387295077038408971974174309457978985711657241993058042461726680381810794202861034417976959770770280110090663023598759212515286257691962248026649969334092353466245957081980347943125711905422446226724794558505970321928678810571199065499170556325456845248399685861375811134158296653134215690563094484480866271273159267988785263787635092394487086195299146538961576004621135673800477378520175538639397066767702390799962083370634683373256924844971390129245758752291451497613765111100232733263500495482306184119941154725136623449416238303248962185281729712488792110644295735177030876529648096310661030778988809495381030315946398795305543949814079377235902871988492915506507541238657898137790882280558117692153268279097095957105827960083600225795534234664423222418472958050949179516744374645657430840061935693338338153384902812413391370757776224163773139049923880899161750518075331747777375246601558973032979071755074175205965776137293113527224709840711363674161431675855817256934741358499959493493917311144160255568751847747408972463889467824487887122899049379095858583396843873149890431233285933904236536134068643134466576695551112771369288547091235668612968048577996222075374022844174123107450189703004967650515486541542501687745686374815512415473337305266172352884016809366740687914655763353548244543594942404695750396381582116664936992970934067209763044026156748976461689843185928554749798706929874045889796324526320911385993688869556842721037033317175624782833401901145208396684321651090159180220407133462412716391192716106423169956939868775376200974002568380304105471506468827718987847109364258435756580810043099603235577731940191026776792113565420692959998386461273503119344694599370964592010516448208206946131763590831384516577638705319429840442460146690401274327542174164954515709365479399530627010482630115651196418086845726694006501021455347199795823117062881388487919432037434712464255667769399145360022759780580254136724718693137893865964953402271411589092080215722261478207519674823429902746941765052363204078238302107406346717052176678532948794879337067791197182409490073143504846387307381762327871505521042042550453996914654320331980097233538573348831188548112589670307853596931019085591403372951451597810637932845855441393632140266228294820851200724827885634569203740650174887062262753430290906222891915360876678227054976002344173852495376894368465550815515004441638499629837818579890418351553410587944206896686041417754066947772870264605447897561406509572792435920247959351996974914583915393566784004282535881716003332427589611331117214892812873002044753515863737289639929647947783977099779092016550742294873862605338003546536589088862151244303228772649075799439956253338101875232129131985585709881385138715649257238119137762732853623561586527832281194478286221134226053514791504816093400723659481894092880584555134663700751969886850557997494793345375957449698547092825636187199769747084424849323678488445205588774436088217227970677113608705187678142882536872705984765744750441478772474610519148696253739918567447479229139698540207949413001471533124648145394428919255614312260444670580777474988682617915660215630031740140549685145291938248180697915992998510184510053026504643224354177838867888892734657927374319575635378216795149616094730456607319990355583883885519010068414383144392698049754241538517780766984673174644105150343483697994467676063318681852035820417444172153770297348406883758680239899007160118005996539832233649880914102218211373223647848684337965175118666341792121231999124364317276270303008862092128764217384519293193043100011824746292023847672368859903244193991937281867292978459080230431571213027974337224561238084091184917068696727597171032324899845387225719566892072001970261303979120264616132521653208527794088749416813248673943659312233156685831841841890587001256750168019096262434796369486338704993011868218903607915509533461321817295350992343265810912634078280292859713136062510916396270860083040250586484859928138175467721921040948444992986370677889106860748113990181804304749096735249694763787330107508111525692563974456919369459228569696937304857245551005576756867592315892888817018061871659769753805568856108907187274032273331237138608149984844376738912285231615900242698270441296999244479618474298041970303351998184938712641572789319990622771807173010773137018724700625748264690164055802702844245851312019389880924026760948441837917205361710707492053003157419067749227044236347426679244579439010051149805798687595151241757495195393521746175383764678317516421137978856175685052117743295445282384033789177697093239603352065599349782372956201299497249278950740925644062371325446738776810424330509280210419094627994204388799407289031983636521858326508050407574332023966178230638950102080875490140164978993750579277006019381221180806057159761080017678846471250693939460839800119450012597415028976528637076986842948384532527787928194587000757865654794616545086504230736480851275320564369413894958193484113210854940654907653152735282650421303581176619628141561585337706733633742072605773960727427493024406123272925031658025085777541504174570985063073470169685922199028799697727289802395432870016302895705695244174158920860361779045505558491133402790449977176799460029070694308090362196480899837519221291676273890853110527708545924141777432253782384116917781009489321712574528796123777434758248780685485340439726369619127838271128073105584464938454243928926288356001614370962473816432209347318254171523671440933006978301645826943067512772633972527986766072994680379777697411394066697130497285236100180126080055053052026298052555583280462027306159531246767569461375350671373984270389183607945071050456967137102635459856691576439310447833793584563454802774424913284535459655596538758162399723938955546956197317198080342868537097397990753022257745721306260494310736049824212473451528268617417056890696567018761836929873894107465322346300389161645347097989024070274463270872436864320147325215847775302478664121940070572228049347198709160018707915799995805753352962777273328557282562792840333796769925226458107594723747664634187813974653225771018403786263690167614880877427871324764367783095118914642584908960037525510798120048049892914808771260000274659574930297462971532586601172740969882824665318835561952484013904932347762186129729541488848551347087331285018158991021002438320547731984404151868460143140349725555723534262765461854046390609775736750688036102106121293530805012016048872771101349999174477244864984712380267908782923389878649508449226484025604228466590399206116493299448645935740660794952673107449109263743580028160279507150843409064894181465823276984519017052815445970871486595905035880649310027353237666065566628597969500246805037394469901582923806529966931168519703592521908257566863913798998281583967430829976451057824372878286168714446604477349197283257449505327217612090381433375297168652072496785457174004513564910787111940384855783739914016941120466226358523021529884889039107951420648554877871337295924174054101521040148750922248617959153761310131194215236635919347121388282982484289157506006233505160366675337603433267137025606890125484811299194035079695346703538010010428291451350883695524957113517139316384653140415933969914886164418357407546500801643926817853171247075396768911484384169109306647018138888751154994227936373698434120026554101192370324240884031889410698080283386892298200703869755444563727211258306300315795997450491791377740237694768650785943997939177955123031381531902719410687882080548792450140727428370651397882230421511354708810694238131545057978242138536958378517859874544561869880262346608381206568847157539209139259883276223531223270353091967386071380245385786051043174231823077098900286704731681644937232117370940849661223508131851003228868109647980745662171291008350405899115055930494603204478327881938837211957170525415690397562324445687147919785100398261285562911315307834042413832451497179550841428571444443947554228129481790724806788223826468296098826250956085657731927396629245611683859062744057468058804036846814577687639803802368265073759260449611388010947226303540510791759560054739150305908594296668054475374676553225467333758513656523873478740060982306823353771241155575918562990462369827297363732643971429899707041087358963984650943519404404409648551704520636735260417883944057949916298977412658120314917943374113318186690578937787925644285772606605076750935932365373408941340890277131665349892579074685953450108909290314113570761034306770478607583632672897510039617651723774720549167515327535825257029869370334188070687803051438735136152623589683523882701901707010138871542383538668080182451261460859605399815108144068083421509928734895347612842410596316343484084042661751314755306343715838871481519380251349768126283544051830230530809940921268273290221743772260896735560315042196447293891608119858415966414411813018879259299975597592074236875217307355667383077732596130708987176849826595958034843869584690729715905390924450001985511092466556243740656862382300214407735574096536033155420149047557205076276437166779963587969149576603498047931352178317049199452683285750264668953282119237119470056822841877533131322950402338223449450835841127844287895355740546162171768030343217647007242461149136129900469601526963564512928936576301221416393413673530375467779937365853223610345218788572128071105936969665606286596972049998683403758642913362004978621693292371147094508460679879695876979840303126337960266143817250811867103085583370415259748868135397084093569042200368850353237304966197231028386912207963258379672815682861590669130661817197869052884743004538919223552603776985973339348686459942752693020833099044728334649274679789678416650179021409926004803343941514973651083428547617064696954500615077241668616653510867123886460071309532448371173551189762485084885517324719920071848137887627815050491298285393904010361596276891754073278858355936137351239838050796856786804418447547626919959571473974728448729513624310401165947102110917922535411122900146075306748049140437606792456389707061207831067456888153313292606368130698649079886850520908553698029106305369473795671026793339663461604626396333930737427556932801944087573257179556377669842744135906600946808725592665499813292536714104060582603060970574193696668696385227394957724930441180302742580513579489251494943148633294965470999282172995310511287888381803789208831856188847689145289743248238524207516302512738305901965741222347555504120229556972999567341271987485778546967498353358891585336327782295930814525129145454956255323787541848565072327665658951452412040130425922204324636855679715954419369009834115320583409337462672875018253691596186266918385102179034503236579981175855301101243709590988462038623992443254489329293223941233070091124396707900113547001452934190460186803261197490498602640685118378442927219203856520799121166263265011271912277397998628234191191537082562805345546008256829371579800305310455921106577617515736457430292453796879341992123492643558581099460989817301563269123559463168230463151178423589488688560193500252004360011663914878411797412089055956657284526428813284074628376542283581323232977397741595111477859394708406708968348107962969613230381384031628753259521533541145164630875643837972054815719752462727024081555206036524327614844046439787353695322922238225324068108258906922098144729428804961788078308271550302971826045545121542138051656044206593244763721443051833303050359238988710161316714092988055018051145111754116281161796633238564996003685128525318526970585988910796227753389909202140788035983245261917073520821535956043605061531065012011580677918661070353949947634454115813897155815182457217576952233618594377922273727627924649118296481606366675794537713691502696074598818031687454936934891405700190966086907756065046113554906184597037418577159648151991921767186710920056367757035657881017456234726460398790922535082196609733957232985601006098487836474966207033028479648025024581697053698308259580612824538200048896033102578114132208462473261186846305690381984686736746650622364302549590738861339643601075379325190730217652864814807698637975155014015216916954430165873571774502093968757979346463357450909112105923353492964037671458039666279454738037035961652933938317855611330962678337302527559501642647510637571888552747073470500646443658247763730804572142805066168783394380863710894047587155309344633719192236919469143720831633738643273242879908011016527273210681482333613842307084332590130891776336873477522636601250143849379931659865520742127252991425661825167557402661294342885168741361269271310048558259216373535986944422901379649253373309547769722403360811235031216870118621802967244418092910934065537639006632069268719521504218122419670469000257030920326136560484810976381668952877599973871427817989455015473417862196026318689621832339521285803489567789183570286035350658265318639601573509380869316835281807873873696461007656615959582751541854699633598768348343871792335080421753288993391439977054286341033784987882041911687797716130758399508993336474054104350254344142532326855657516292817202190606657730218058471917331812292638821310761061584445516344553718881904674706530025277602878828011486259485070310595266393117937135606396264652409118049473424888457202293516762437923777079174175188304413362757830788622193760584981924571288276840831297580388221871845210176019486807879110991553139540238111390683226925333270329018647904303387263716244974434754608300262338932999096042851662487318270842328212016331718733177310700196498260644742411048709861248175502802861071811544134263834751343361665321769958043495240027182734281287617898896345251803277826264403036693865667905620131166130321195517816930616683137291509476595375515555169656956899460299099154704728194198298879269655103891475297599113470342741190587036427594962283273848815555937553859978170296531700120917197839066787340127157879535156879207917807093323272064359523334615969259237587394688400361242964045018995665930061771325559730000159298250882876334367622932149863179576634026888988487169644984512560851625413879893464069931249924972860410778226478765929249388920994176434329381990151915156530306661619910432209293635242041150830836055642790259456532296189990038810980359375871463556331906308982381944835779725979583341785769802989892640084832258568526193263626293319665977689182535049500917562660557541765216141065331341817084534191807113418822414015170422222628532700454078772225500582534388176439840393578107481478627622449257411245272095007782751444007747822435634171761391202477001885602730773049327371351642181337454653169303134816046659778825005453823192193465342169794492184760951538859992714194927882801513563043112661862952963051031363712802908789207449902149412063754822612813394340788664309080822356090822957495429339186973844367650693167293222153596015007660511984420666772423665590927474994832397219248819261138529902931060591843242804850406927829258589412515570131475610170545761533533735746610877520173553798590502465162284596927743802000732484202730080337616674271498549795638813724523109125583207945130415445320083733594153518613098155688457799412557180473700314185926252435228227958239406942797226983870854691068911777455268709753228675629134221803374641380448143373230060432327845246451975719638563281484118171604217972314924513794144038002536981213055062425076510625436816651309335829000841272878274113931139537044797913328629545415933798223447471187981566278213866792659570486125127744039144829096005173495057372797227112946679926565730973984118928062724588467040686440269074052127529640509400200661426157351149766888767992520362573480904637482402081194523334510438686670416921514550614228539256801062098773965315847073427605072404022562816997960196173019303554410067991151652724887878482619815531495587201616174577952117246177653649981039964419935093544625826198311916405299283777116866748865255422461286826315035399913261920242716486256850148045790360320023308279135229464872407680108872446978511275908023978390663003192131773940292704359933694219133280597696360599961636007200053841326494745323669966935728697508541711767780789216360469387534461285219645722878153643325413473052595382157922786731512257718512496595239312592613989283205143044626780304480839916087341472260749836479382727316759799575142577318970087197945926598595406851227956161767274102416946135923954637478678108422046167243600460335164467543749821177427222158812238941125622954232587477538810043651169993514421445131091703525629120175305348327660786402819939321587564872284360186247256176620721494691281148824245482547139942564452320686358926895287223129585810928741628864621651806780425446699237213587077114992799535444166099706913046200235869273499597905869072603100893519842306416282481965147365055718522477386685202482383819886942703204079892189201491140407475472021759320708803412356892730561027140303762832139806455873303610752019316936138856667927969901063747939684618805109664442049633876994677030048355103515733736181103834662545395249325947330034023750883215812636075404428599794839458310871897878631935973892636508132892515978669355603983874848587940819606649833697982770921485520707420753774517377998981833211774188867280553665933195810934758768864097805696923791404551576137667204907334199035968312771454275111185881338587542428216990575922144287426070870680421730326900869842373070015832257678482262244027088978878703366650191765351506730656014353014022525442633128446220392667513006302507582118324186806610152225823477720528530655718173865632770262904715661889296230460878588221985668097461212838204087309619018177485562468644464014678348379880601297110204073172303312994425396854777452118455710188592297022696504971762989930978679748873446326350811932776074502141755699324670609573432943019892931201915112480919923582202595700223283492045926416498787951873481512461154277926740803257572529367910520031670473820880052153642163184364150306300825064281817430613158839103833295689343105902216214218042882543427400988559687495410571661047698007408556449367715080692151675070824928048357523399757418900219194729419459903400857273738394162318556731154877631564512019095517020990179483900387053640072327381723697893340517541533052991744432490136355405248940650398176674489122132957332566464338823050283831780443096533996412442594924225831862838418360872732953077405313145466434414765378150141884417520157813225450566804498905207957066894054793388439864946174781650398480600056199183387738308532447893873995950305611543046143611704296854150741612348865149614900884653025294660959909626986774525683070846589623334788756261272544879111191047022933451857642295318743816271025502090959861210562139265722778799424463030431131862402890101369374377903733700511734624367010701066595114002983755179833217873849149317379471074102076642737033471602874061668774354401320853937812310137291128308813192603726293769668802597705723173521156340571162483177824874611856216419641265358416477389249783312692140131104770945692967103216005481488852102521926724915693436179727997425841347277713644056616849837356210786962223568033613012746792841343430585509403084631076294709284267549114748452793865163381691368436497474526719712656602779671815087807604993287425457300116590126753339941335618137135686367669094809749149090075136207940075550524850362791583626624253010299465596447189689988316327208382645359264680784174221303630700698547670849678015568333901935964307684894088283901799210594357288941349030871330585142511935519413912722098991722296253911675991773856279433963490684732419334161831307540617820334819220673704157357232640622745604775517150344046733012014940092734717665364261849469423364603070420116912493200477542790070642090145938248939303361097451995508426300965088041117640382503429311011090770289850577217291290388148163324792145977962431403212606160125909965748317847158228501621682147737139098296779935764272959137861520876089975844936560711971404619050804847241781324533309004829777341591727552548512122309815809452616339766640295456455053531577034592161381354077997959600857576975024394953682762864852416882220456079696865874727367030312519723419724119205902493642834163920120258079679584874183789669404095028012929568369892674545510297967783830711415882548100497074993743977038161017573886644318712221315194566019690800740431745325781926876497146249275960469256233040587396347085508200007973735729078152532279267189511542637278195505431076114957323553757872391758224173129612882797662342030788602747485880561063039771012348311870046523923269159423099285807873948685835778393863829067152420014022422500008692996937705803743483669963426051291004705061289869702774247981609561711160337932277559222960982044486164214912357798872286145118785091381307163099700164936851061769126530738002582998861266153541888181920134920276532957598299394573785051619671333124370520354796667965291574184338296289357328212904308680104858314166946864997899525408203416247477973368906525804804182211458873990432301426835138923916908948555354556233681775265155731936335118930020594197554141733958899835191887591185193027497996228378449085918411606544699762318640266001360645725602559859179357295283674522495545363652951066474787265512654947480494361130717230209757331158843060910809068468782901090157491967320881366060187799492909884362335424396136909917695934466180456344165248718267754558674508790115053790740939612893591190609625721610763304420626994272505265989688046078062128856974039936808853198255343248097956918804749511439366645814330531463653146267392787485008006311742635503799203420999294070180147170306002464801699625358864780640896227081951429486386719047663494401593410313818757518504570773575551374920737277332667163288439880372599394298758032665872085319292963438013091567060080084679679587330883141393262956503650145715937593388384037230519248210484159784028240215248172726995841705101768162961617825680848812875700895743351328864069466523648186766277732720366117918692805109692452495903910930114064673726750015366277859022690210021461959998070665090946296236909694744208910875781314473057833116742476102355587685709393464490159372200008008622311066710726920073830159210214295720381703426880212169250102110835066188767260451694078212689562845277147655055863627598426145666994071020512277372549437599414675065151305407008222352691761003915089099734075982959701143103687165201344410989941359351800690114798952840908805157275267737838788421164872307273892850750577418946323190201375291273629410492251832546410803872564466100364179684463728930342478067036090977808971874060481744267464822172362173385099345057747315556643175976838934627121925386618637116979665598002727978860632630159565873634859518973990308920803932386574830588267057571399042531269413226629526287067847159846086668689613064604384850910019686116272489682507620974266697640138444702530007724700562445047119600868656144151337986211370520697436179677445120638648311876844466567739563408253733904524290728524707146090542378419148434697779570985926196747238320209110370216671575396690838034548200714886005849391043330120283445579086263149892048280707985729117477478061877034274759552229618042255004259947341843178028339138113697513346362374538771172582804894778606753827704566017200303493136131425851398625376638767186566285385357627739829258211382982240820544525829259050141174771042613274606663752865892112589391397880549918283017352426127329457405302202426255402561756940811350086039243902135540253292374328342826432547976233888919352144104671112410135754647635155476000780358916031514062443063157594068388743339225370010231141024247867956734439855047314285530198498019728535883498192101752199534191279757557651222643137441520388888153649973769861331771896265180075924526406023792839355655771865729119535470657775860961552425283257227700378768216453574204063114241546534362654795835853890572143682999958346604967205992111544790419527612617063374499640210871547798236124034118563081697485859397661197494610037715501408235432073330659943014113886077014308103133831163053216926504243735686782933900088892169409019788844892974270956162064065023585457837309442933554765341646721425380750581273900518104890258642350153448000197714462766746982907925030022785467144121215310905740084682212374405184656809634575921247172645725054705936449565755441463431506325870740790352278682389728004915295699124688337950432455613716831746683431615808279212095127497074309815641268237826260600038872602588416522327530591663577053390143631493551564106529349154780789549242359028867908197834636329905239279863916124671792996434641349967398713364550844631275774765084327872534575718797157873786413280826637769973209447378062257526165322858407761955501273532129567504562467247335781768091026414392330178679413209773449166039834849224377328159617648816877345507870064849998664897611042598472482962050153940818591491684852851801156079233464819023324403592473695917674011711394703558654859868463647041983522721576883867503248154406341993589927819757142703782877678832330291257219910079211320363533083571429828159475122489912228425584836108779043251728091090639823652334584334994496137504362753081728998114702100789265077014889046759980490765673319966060898937257280244725613106547860782173538383431579227860824166143863876157726028153459475186207893473304129873239201931829074680348536504313499300328386467550090255019286161033835744963259292093854970328671802793489286639094526123710707284344927252085867121693068918588312856964602945896328771302590084897209936333684588955996235903472404051601004029683410821747405244913729092379448209942388682456259040866669414292612840521819386299601963223898206267181128070852048996440779788604004880849029656325438504759022674298743722166354573670057179177182378373122458937636729200400297592337838929852890979487739572988177981754366342266801116809674829022348843167236644415055119889168111651045610233243906884882060326705906374591230688686914900450868000378084048500588620520996174270557300213848994856954349635763092043205871394987605896839313625609354425670035540925278283124663691546388804317146751240441572854367839271783754532444565197765897317331906603310437201103706691596880107458955264777244351610378928752000061029336745600473551857566643164775685161832758409896493418759004859639410753579354306237101278989472546762622332348871085598325935795251179982386797885537354867266731405432169429343978349350156803723719541020763318769389167117721199647680741076752130628590512730362828994316415379087648719990926713364784706386036533488972765079801380764643015397593506889715558533021784368859198996610938792120377314304140540368947550295392878109559528422156756022046215772963507617627557764085705560765276629825655941317999610336931444021427387721159236495072015059755096619654865756819459310811345823827497983430486490457838293751067807094553117086525802435846216514957461728449920212951010330589581436254277150909597629398945986000025410901336388059287415916810676041897089843807931059889116465388041727546106806595979754558171804206487667760777343698328126584064930313459620338392184881416623282812828467931652275559877491461126094504125044845258126041021232111289483020672525245562804830592587668404918535797886000473564014096338761343214966492804811784799891345511461143901337885878266884532869068170965929144401642642140459557801382764351537790551241061820263808642927678005671888083402084719117612661291270940364284969622043735479242509268658480385583812718944307160856574099858213799536365270137677960018884794628549149368924348195203679429454104901315824286704906625625695096977984672792188960144377450621123126176975623580257669335113236250890151369935735537633559983831431946594499034803130163361560326727017953691323465278540736168558226957385420766366879844785336824380700050293751933698917825772991136268475992854689851988957141224329088559363113637893533263577962928375888703849224295843176779076510916427752008885291443789109764470779355364454689898828317322070188645714421420401616472879861381315596844012439146184057789407053305978769530561786904196657552081424689235281867245211803178831270720633895746398541485750232321981501732591617285196928359385318832125202515022943221812053964797951797705111837027556748955515679800013100746692086394640039830078984516004089692847682868992151385295995885349304107441568351990026389287260504096265011922875759086502221110687179789446839541897574136332477670788977092809867671004696882856344670788284660147596010628804003026812729753156201837469639451210553031428308011183387831813603723041062020698609169690144090352528551023842039078581929821583475592408021165247811823913287276182695491197290787994369983987945506348557267710902398349214938099040021696997629352544883618423342639240162045769400717597791308621483928542805714819205090803737722506846560657307547534843305192694193224464983889403889579036068888680532408510901275384984846750769359979808631957521135751064533851375870532899318829785826691312859574264694938410509445628866054449489363350794685888451176874638010305606612807558642198061476363958507521304947592105445021203664939094367240065608089617539126157587253781567490908106332671968944969226668595750471443462014490428271848769401462044259303917779176365487550766595140064639828568864757629993571190898652069804045400018097775742709211892076483614020649794000139405443481839147995941019379223581926678163078146291981946172923316371266682100174991899294124185789715098519356404409764184076260573665586199336792741049304911789140063802534724488529323819109912097793607411747657139819747260494445940958260166561916662482765917574709240617640936630661014426394841464629981045868257249588853796696496582752423599381968297692878585376847459901377087041924836654635173629835482012918257479874285235091911817312461124760309566605930250793684162864596540580514936684709436412208008384612498534084697925393168004358531720772698647005100449630201089259959009045456595431004973106592255184665280679297618440159543616563052032468002727014359698043059540934716288515208550000848701893761259723685376643498540097556627262169730081956855115665200740928669082946620777200106284028619454945492313566287890132480553872410460830992509956934702308890632177636035086453929215625080776639898077126332077994894468661357348419155186399002911476705208250440739741971710952381220890715377515447140694636233219602121305026236652694061891920901112184488527275425959911273811289481151101322421727003026198339994178804223178977625649095367059447344826639081322553302380486000886394037074168152337515938143064698355291315483523244393144436985894928310606657155216482440282998437906211854672374587137208412342510732103154010207707177773839572862728152393512590170967971558959106765034425581651318245225472000003799757390093542065025014337007496587537955899155724869925378512266418727854800552274618954587809861551743543658529467910312900733840240278499167377400323343072408636223235546420986319401434649686590997664227640964316332631247762919090528414059576975399138297429418399960093703904958437638638154569822017953137503171598250412429398376229745646685329092853611962090477320144187809588330075927887667401775142376170043904344493876153674615590444470462783371414396319071309272921812445837729436839270987058758330316553602525899237996222414445892863077979490349038455020595819923314226140293372063827990433427208707985340042455429894230381234046265337067004141132732411643102893504235985418203574058315989426270126924878328236928827969604917452604026176147379102255529586793158345968293634165305197322126910247872179761384860868753218299137183964922310354142996851638690041550397400036849151613205515958393078359917996104875415949108730760441984230905829213931671731700657837279230034462257571207761989187764734915961742786226024684653893467800893839856982312536762704128008033404695867236883890975180042597123183486869778181812179012810268660784896736315168839804879095643644142874539786990553874636634279827741712266972692002523498986421239242714416038094364081435323356565078165972591685857797444327855372249188114689079645275302514828588195510687052170784359700234076004086632224870854209507991738170915520482539784367780598479102813001114346294221952334420343423073819763723624187226848182416912111995402594238798495426910206454808102714347551724113040490182546631231582523081349752943401668193084638159484943280259867595895707002968819684340090957675615247897016283737967655477534124810382653758529221542964529934390022401609143556654530211855537245301458346838587118027996297503340910935414139163673355107727927170038505350802852746521997338823226376645741480080070881443527877724907263520687929615019791850338469394506614539712306427779613803652169903494608580563782854520135870741493171262857640224931760013213997927122465693164277872793348444741311596180282200884673631673494345301505688112360475815695261373213548754254736263463342798883202418662813188508744657638611297560258419237721911877982989224409127037405071475815212922976687726482291221267235311239402757832019543591600072662478537105086174966826095650019396950457531601524530024324046678808933282201502961739661549071679669457125207970564278416244322153191142839854819721869301025205858170858999221322182973633342748224620582711209684482660741484941709370689916774025645100848127210783023317283455409630199496724600386160965170857988455050756700860170712082132456790503655445988356867990867076299356559256835553601621493540342747914269442221165607902826339858000706649940120597879564386502262304279745375587871235202704204823937533398846809080451840805536682498349629214127283053807146787455055577692644497690328920944489271980077562279466989835696496714193749570359807835225007656448067555783188066282783316190275077756691317159417685140969102909960707214240747097168343691824178211706473979496534360976163825009794189626152958163634067314415212137528349751799871036152176814786707046984749737995947983299315670538883563762168327533944987473999847924001013545344447749287107349817923004921676149085441773557211488887352565684573080317702998016382359718802325046816782589618113204846844434815315425120930662538304421072285767038501694116991317245992593071249300265786301304161198559899803173238118104429077601425768730791518614219792734586062371087001147061505727999854024116049394452432158249175075120399561690156180852387516622834745234216148475704286209793452059048135715055507764240638176071616884098815366694378788990274446112573834389586811181573785720656412639939750902550160972880922752402891422224283650793234993765526490776005373968706204036923372086834951555545446971546510145337127131522271563401095555750712429530796073971596294351349451128929153058988689921214502412901908148158485645797723121257206417208925461668536639916108924110088625651482797090288491519610173785853312104923866060043180755589333509918825974033033738471470689071028761978590154358518660868023087247405737350125243026136602276104693980499809532351975923833617904661151843681859712985314786074245492097441828352150671524844226337622141005730816150897549798593262338804391096264266404372540969721765567586592378235115580495654751094949654756046741033508330700212184069776073874327084612583459893698677839640101361295615159620648071410464740716928196153757683440108643705226506620867371017186985635581121838125185306721120787498707265374895018630514729008362408552985735405053261212094618049875944978086438821116532670331223139870134478041525429738521387146215075751546725597219526743994357677276566270196008793510212568591828282178849802511453935052266835898488698829879376738983117378428438149833356285625737462689091818639026611834698402549993081239121810041980271617719942258044105277509142381214907836877561582851645531215854875923663473593536355357312273166570187014126545231864606128251718067528925469304735703524049001847175653601801745727560754580325129421398496622314760671122211667780269089630038951964996150712053028600163352978493122942994490778172937175032371567937106156412958943158759683330125620536139113750477451864137870283005796418877958784191308345905604300656124799526178999710990221225881280565341463440913928673288119758100209273983274987720268071455633858825460725272542454415869156556130606253915728632565550216121868647593449358707896654141423705694615034178369010165766952617236857184751093279377246760943886097224467340131080169517517968693854435724745296821433397718963728829787593904699827259424605698985921809021824741269836932112538451419266060029787532684819223008122165780564057265995105464785399424187425339233024311027518692400985529998327960571084929762668306646573957902808144512794858652114433812847269690523815889074677612584773361201200875421913909296147740246395028014292515452865526349264786869688466868249285187112024665601830516061941110210734373844301721061069636877414686254457590069759955934384254191751758481047726901803568571810657373355864722757631731427854550607447621826764331078086944669788742176090972325358462421277947710271276248331160030894926768826246078360257320552021631502014744747544424607647830337821003489772059514693228806196326045723900580308438255550911355451856770367810887309658810295555184484739840233782997269874144774372359381893524692984672109237193011763023604840167764331489815862242267438957286570488737996161843792948313989467367665355605264626664781125919311891924737087737717831706048649413092712633121233960141692041735623405527470023257342346192977592883662718673808069212992225168681944467562767309747514359604156779949293227729102677376373682041632519185374185276018322321112327096486729722736409089418553969250509187470115021344155468897975518537204104799061568882341264622505293954469786635869316394958786712514484647268350079044462056723435722079522159634868063663705193555445029717495423635978300492078989328332972813979650359665263357060060601342157512770701164866004921616476088645726420703662162204563555892731610201255798496542172812762142363622052075401603725982224081105578205463435567098510415320571001017330798022565668179888128372877173591022573965828481598734893954207759002497761515301417487384856302000657420377703330117167095186399967711326267324649073328779797364136706637651460710525964007343929696603992120013383026432275269185479882346867894972598949665825204284609045612371749019832569655339633738214445594548800613486038222447899606886129419600330442928392215322107745164825076636643614102100060629430885686614636846874435999387055239756371280713823269814132050123193167834158166736815076264495219471507091886263070556164706172824117943080441915228140204755058531569644742713261123500350439477054733837736425872182255084211907087578131559126033267557669146263559731068687406296856318042509107457811235725409045145026972377590896168919599061964638789426721177065830727487424898891857442999121226988823152300354200523587002374196930683026074747737393709018457689468946302497927388486070543467040213019281752679043098525337514665589418924434382144481643307327783723728702511380495823746582669986558825351796597573652093035211095507628957056276959752565248844855988854075643770094767270284148439322918970372906697421409288052633788443231533646369625883607152929892261112096380928131404273372355305844394582145554628238262858879537547134912045561425455637311299567568887218981333536774765619353320671279043917727411920696506013469560850619393541036392619134910077422234232203724233009378631877544669133601119527369882151218612431314922264896637593431709757753960584271757814295859775574652271578983064500337411877303018572547932979569843244920054562382112431035700938993808585081862919215128368536309663281657339953301671153894092708480972888865333149774011416901493601373813932326623840131099580922825686670770119220091510508274107347061972192622927549381499127737409612865683167797723824759912482433233155368460008118228719321163308127065722382246735567295685601300923774349571260347158446912833895085836428149415315634174778164262775710380129760205017623657762406552486540031858473781216275405936073063767483065592253313635478039755959109808221550892035319111111431730811235034589573244257378031723622322744214578877424385361921246897454410742501242803967069878029468464371477192753360608413508721837089557870164526911679932145984318973550380291721970646322860621929203671986905980897780867631320447957045079563746729159947295250699039104300679011366967025333065175431933049872928954381449908484582257141184978854095736954118867566224706728479608216386609370708252620766967920126142890743986669084550912897828232641764170721990372990750044136674566360868691225187929182533489245151519509727134818674056293924749336355745516099585686076792783577947095893587669590222459523653580920836632276844973918393668427553720277970680294789449419685729126283923189250557284847992970272773918223529276537828921809849158228240243068104582176139676506222226020618846274482225172010730377678759478036291279824792722094592350453069670737969217297590023278566495816338729192996087657668862563784169948639813172072979707216775386150821197524086884649218622605424172631501293849637448284289254822953370156473847947754320833409389719321061762642895824143721545127231299897374087290903725505673184522218439257657563150000715623604534585820488028444527629567785910309309555156995094416099503837702298845568450269821319839427443096736238990759304311733633005490148725951598619919119478418473308026122728822747151875593183062538822275597684867001669901309170463899608732522305686245970701727664787701192245088698404283370963296108272701870226050967618894808873884470577836131559709820243955754370677042158513775016485775914636204825253322051415880032261248673916775083926395291632683787943752424584285558296417264087207349931187633777628089675027350050972041823927991159110550196183245829215405159877614484294701444896653821157961242080626331275241830615748950630573056480056865672544663323010074074800274184050048158630634652443330918783112427228601762999505596892276170488236459116794783037434523637605965866321765084608232170316547971389877400575844540739981717128258030226704945561307519929278904950468120760575427025684181490275724330138331231367306023923136102837116376146006882754406027746000876415146776921269963039877755891078381387099775644515605139745131658477117749827041641069723270109651970811336256338929242616853047130362648364734944706258718286681844818488525073196499062479226916638073388517039659193335567711779437308853323641707610842144886993183274947355864515444133948053383111408573039288224521001440432378875356391881893683628843006397855128926351173868792062017528417876588382775907321597877979531097726580977690403014961033201728439167913633021115821274160773805312134060706515653931733552088157420714261692456681005653748652653364151099338223869150305887777867781999950087713926562966787876802833368870748477583596339289723938085206365292994281763193904198069323573669523664417930659770466564004829014665521640937691702602409994292453195541396029904457434215874353258698620521940028928258100757098925060799993118316615736881211631535680558022055630676971982293977851137774017885827579895291733005051732320218997152735011077315409151090063543597774458589012609214173995906736338797492899482591037991721695710368681983100086399383514906932533841583098127498481240664455478530240623211467230573484939556253567233277521893961458327194597932365712844297488894700068982776512278663207325089354756193799477104068004995693705517931039511777428027627113768608188105150018716699106367371743121868405963867551252628615354832421795653002709951434377903660005006502610751028216740843962185176779793212272516805353484053969993754886754838957759846265073743711490367850917432691142448155492013099752265761627139052149832204886701555161349992667195534880397269441889665041059850242072858018609950152787644297854775203555801600827014888046348326875738578569483160206321186164594292585878471501331172485410320907479738628172477641226728058314357801573757796552787449550378401745608607534951762709208847606406268896020338405127879004147518293356318644235087321731479465928915987023593459000825527544840331088667249838801914513331427917631446126945677171981510180801786916761306914626527837427746852838867044774666962871866633037109761336135898440320979590839868896798422111092505865123567318055054505871144930867588862969670556478549908957103925974307316344692762960077015431407692714149680919702642429883918772837078850402684510092699692715413482956606124023734269530989357872949449937115988902485979181216808772330318371778276843275110317703565396101189192566425528674110237388244087386950338119806643703768392600348629094975496469414615229899989724036289859954091102460827149777404682437316636426336890250990436499957997848866896721864758389890390537632004637165055618679792079445515287674389796512184876866364437180332783136749677535752685276140309193863472670780826120019835882747902040664329104843445665261187278647350992883920422981924839911834988577041418333702820899828474928682769941697561223932102838774095759084990955189493523203205839321103384367375495336225159535530021475521459874513316860873081319220569380143692079044428383031948342609867492024721828638740212899951199703303271354339796508449118464303992437029921765104116735027535776582601095795185042965947053373421365660536339740310799671369654761906512262347215305108149110888721936901403930094706377410644903988328473378345031745102251367749236961696750845865813075871239544916046793646629965016520070455497739014308544185119231907099402533463983445927305824352670269186940247893018858612513698684039297633593312558626822053671134231346660104920687230933051265760232984416492441309008626471844162771238787394629667250193872419636513964343052179599612930291908278133041437095559397287162162537111973115358756451312534232421285719393932647788842504849370918475603616832818735067787850602196679478052067566694245421132634534921981238831329635598487276566465090523918135087118136197657239872529285950851747820186166130358061712482148254077137613240225927814475697276567835987540128277549093966133193891547389349713132713122046176126161914179529568656069241377966029319171982556649812055167875346560351653276944362811836443294742520746386911330756177873605605756609333378519812235665949175252492750750367341173479163518054275087410070655620954838604104802061153809923738200129523304770100293630729014821422133803325094280379670177494631362654360771152178685857996931793688535959204857997409200391958894283037146466187158624307246124526689656806731905483520840068398417999374123328314490956632061102314467238950251401864072589269580049125649484876584166830149241713476564233078489087294709923858018696166237296146471593590821334642219688103553642621974117506466020340554713013675549101759546893676099502823689082131782635351652148794436247044670296690052804002382734658649131727527643730189075559959242061429243117713138505989303640899473484191932220209242691354550874642706027830059451329521729754073112058993859138176896552434575238012301317709461732578533909035906913628447922848271297344630797234879561098615704286424408302954335545454780639376221683925669738872240892847319748915445668566459790651542795565711637238765386626366033745075377136106943825833924039175228143941298378960101495656417947326918138368069535791400356647989067883596767790401549260165616263508303056494410905406424236963060112306974612865114592329062181080969159889794629064892558901415361020136776325379328232174400811220080473316728143567279465327202117151163610838067571201915798997360800346168005279022147529167881335744938768824618413702846083418842800412016168613992244426673643873829376657915899861925200262345249904394531790157144015741691356805508757116099582110111848322324060244431664762315205190571336617730090919105261714567840223907068459274633848334205965624845753337583464850405891424872228315016765928601253657995267436239155482271075811845165392267329733909321700940884681191825032180324428940109953097570152034659527730163058822865993052275007091914687638942417678548635542175311018508545466291165530854028950441715523372898421789181245749360534507925156951431113441844929549119665600765018573024382438131143964148774372705022759659473155378894220955534306484954216843160517357011227801933210245654084526273429606172922686516725546356221847469804180889309634064020058179825720752727159011549961468595815644413312224078509379194990107019899904776174025252210097034050961019917828569500557681823622784238409234127102171893087892556134350140320181789467185553321522501402190223980304618134719452258025845226616901180065926274285518968358158488638279257686628691129650129469985662545275261256061504489029987190772287783837967610728216561732490406479139200715950778144679886145255886015538104899022438773999469528366287862798557344639658778011152239214044404094828460174084205703732007197556223774265253559818431452696493443489835099967273553878362734916841906755997149667413751931651506590009653941033668353661401086844956676027449277027742302799659933289130809713278610261474614145784201282188914982002606259994889416545104432884087720326927031217414002225201464379908010213101161525615253333586643523449368776786563067621317244494297797803640258821642316491152642813727287951310599537203917083086687888724319984159822012231525691607318767480484343370418802976163536794186695725685100373322336174598232393845007794255944138209102051113489155217630902714801244434861873432276959406094352622893085331437652108562498733818337668709109768783078417224812724284879462486236605053720963711855552439044610040812614130324100063667070517473497816849118987003560033654176353613964835452781419203622242845600054870478125394532721220455633904961961841500796836812906462662060413539632127315371378377636248897317821961753744221004168795820976383700702269147441587989795954023527294555484353961263499608616706439738311649292683143870486185778552972965924700375794945749426860802107311429403436087893903543203482846797622250505328927195152119402338413552932059235042356349433189060092204348590653823800704695943204205883721521305916664048122768199077204237135154901961367946423333455116383687349301805876514113735615792253124172172929129921572842160985430851866819395639366342468311420240846916529249351721942324864042876278399048767325009910561767943758280579440704817403496007103817796027022550230485589167779204420653325345016995701108781308701084576484430109365738640891922807890524001691735781408876549478374580005713370853176185476446804226631667344801495033698007128621551623985735722188146344113682795686669454527272296553770935825218931226980684382419147453078297011742118284803242987463826804463442712474306615786797253223267433748399844529466772515966570360241194872627768671485161566754434390687797594757266764402128523171276017160060417172142315557947320263306752196881357554435391531143268744186716241384440144270168077936286175650204618904502069293129705766877100126122413632900395354454589374329989207903986587392200457267378021179028768610280054317337787392457231603405161113953942638170686499083236216471717294419924047186257185664136841253313782765874289355023145797515393190027826581008802125433025331651935399734271050862619458537701931785972014490535878048715852488464231983512715826374732024232834264668481942628424413983314305755377619531733424196254987857850647320518365246809098749070410365848260051695713040505115578677800583887734208973639950126812002976621656471252881684152256175552560686133364510162268566453305173758491573790362850433614776509428385564985029385001615357100982025459095608049672753271111253201734424105331376492318257034785926211468457857340249547724376748474525710326690139037337330935625607223549729964233396606802322719844455984757722960068500902254149428871973668061809098314888859046704502676955975072500808648266474659015650077642967393048281144851135949952969546087290731766123275207787984105505236945580983946062069531171112846539904129646400126731965867879552643628733223600220479057077313103794726075153049417254486975506495050499002003997228005247443952187761196836244957149863565382614632490252986571457943580238904510394184937595620222816203960936164993718346799613445035636960540015467841533712462612721699669071705562103701303976079840195545660293838168431374378758674546697186883230251993431737486370159741387711563988984724963784580621664433636596244205161343689836616421933381127109138920114612402865779676606379941538917301868768221490074534517495524375303506274090697696692061495877289665406954968212405906022598376644870334236461394417300639014147114141970575115180278236740322575788315649045251402739014798021067381140290116298789119534824175642701092602987812512452450343649970876454071163496683999961570738175071615143899034669482653345522679498051906968231610518020653730550821706187552236911019292337710862808972702795090212891099302358039033791532340695579305042606143217468955275911818521357666792204785904141322514606016599950213755297615551906129183399839942509671093265124891512025873523830885058208538537947068610381072572464787957095250543588858324773341868549779343504644630112676662057478567339205868925846828821727307360253421730778077126914187155510607188913211338776888469949057704774766596181364541097767565072909912781414456809298895947909264880128621305999070308199714050953141773603607237941452026605362154106264026056041431732619135339372273892504919134086833028887639416149654900362770803205167854358223726045068321670178454617795252293879517775855777984183725490492372613929749914895793374553007443227862453029748609524442361773735201070480515994600057056412603011173240224126639487077203166619277306430310614551428519683744018038086118172673153598194421170460529159853270192659940632778857255655545087813384606666024280517870251759776441386081475721054482344098095963995562072239113835781578603634148400290047560337382587969364318621455119265001924809765360415221827951969929909478492926705047547605381563372163504083211145320064223265668949228764832190524511534794265390318089863824837663683597427638183182418677432161236210294913242696935984570691326536523739167648918101994015923727567008693572243431736000407688986906725961931487846703784124288377422176826464286075755122868981533156440279593719286285518992336030215973567565995645981227086154304128502135129530079259052917009845319313186101760817040262375305858822958744646210394153984606310698062674369526782790337222509440900241638036933176028699512097905340075027733521313952946745141511247887488149884486922469993789542537691873797270760726487677213823153970227369880697945973182397981356062895949701299489798190507431019422894990628109126141694851041959620681052097164630978314369989732290883208648798103490485572959790390186911447140196426774891131594244361715369547170316885833416786324910352437618485888429142511663002854917334127730368105380769538850054012825838684989406061107766166986288958539669900053834715680014419111422474134811148745697423496888168603757817060116021432660986147015313868764784209136507782030624628896582267213560121018152187529940136493938589632666161885855005686317505925738879162132896411912856567067068139078503682198862625445877159469952020602860511144851549550267334631487146974358722958108767419455266251437870126225407950198416888980275029910135837664453353359997068869800046502450072512841841215409819102923071144680817544549732256821061773504224643808682574554990061648004152177570198515544749559698864425284011581075540477445326656328237330455993355227651959340307815884093923083497184611356094106120880642727346655548742588312969222872213023005800153422422142554942265724809972525550561171008439690862701281914462127546694872677858010070291864745270417863668361196572034235263088071083410520303272325835836293906533982571082815146442405848917607077138858418750087920241624660443676673215433472019073721016394533322095575239669096580659065626460614430691091241417625567317589915376940115067912035833735410368663742513729562509716122889993024239799504430102148347585960494729115789501169130062012847250639429155634988826103720710456079299387618474740104563850976276029557554433066076015055245978416179692502119267121677716430200647676839123190440760466487136919996274203554160841253815229076759869074277855250322471736630527899445774326992120163539534631438291116434265132116610247140350613772756726627059960688956556445013401584216950147085405043082448962428964712991689314757857385044081729958756400679614188927732969687902005767194702644855236489183622552653056980375520443343162620371631782176761868836108635557837426347477329526800177005750441583984567601242822283234739527296175625191261282737723246848680733021473369515700702516326926899450449488051592826881776883276421563821847461417298420675080939985445874909567123534788698562636215213796234187350130691049975994802589438805065230005122314778266448393645885669239952641875661523441738103080706180773584376220343370398502545954723136141436380693471640292470608857294372708805001806798767009840927643514167071375438812563749580897852612372413805362380076951895575180121163112264900299382748488115528621575315600161598687287020977871632929255725820775638590319110857656673029496161031720782266297355729150315266049541331838080914472252567915978826842932752628050889339759640971358655218726140194023801169823575907079345254804491881517937405767276873472037139486395696646588820500206504523149134475191321631577764222143728107477663061804575168807793538525279995548415135082381394051672646085358449605815557653494493310970160380050385546621635827895708509739782435788244626821610517173792992572960616353722044624859243688800675066119829160904491163239106681547028740643894522078469419516673359913631060036452618949918149005779143813220928241106469832946168588635732279107892622246535206782872019138263512242062610361640482645980099583338968243723384160738606504777521940610333325475896417757772949694957663900470770980270191560204737468186172507206579999288545952434794215591281716294647404149003374429756609817405531469079953360622215649779299411700674787838881872804296213092482559305505912588543154121995814379799335153991553115921686961563381360280671974882197877460317130712095744129091981616242025202475541083816615863948318676244994383852507648189235941146674337259758403586041334562718625012097042845196548176812702907945796667325274580088193495898016429891090860758643805179212991200444645598425998607708935521277082140322954765181529606937025742402521497452049795649010865826176394748694120997720960347488469248783148672028787985224452991230003995166799481354738567112487082267022045677253845272620107091178592800944821683455189887796945643219958009620357805505026162056979987603949717060322053431459878204388030076200327706727326684983140232822338093026921966386967424947712195639783319334613750545299079442342816636914971752655159371579640810020213518687088371584904427540608546237276127320175200913725732611231265095945898040587525988282169093286596209449739121398207923880371534200589024825551666939819880814126071838400457700094163556246466449474728219048099159933542296840930651899300523124041209537539878011129965246677719601243622599998463372325232348516984635343253221988270876666531181619506443524215256317790034643330844900870255498076329126220521192927592493684331628353613200171934333838632229103789569979779802629801879018873555389731913688873346851377030531361048414773899968902204020793037805770731103193918094256214264118659889705231801385241512297777034649053556853774148350361682606088504084008500820579436094831200763941182366516497448401774187858922892856015618291602125507147558152263039175858989725112654190462045311436034429149903972895587686779617919964005706057321648473985168320639722537435073250361319858442083219483653465676262097887565363160471818817268165803200605947296755253247481459400304089604056793888159424156052614843240557725568531333957485528792350870130223613156819379264597711521729426942974022104959622388686312663592868075945488365766422236767324604275689050625362521274818270122222262073226666012081028756855987457956699175951195756523644601520166802681798642240196695735323559479563125505508497304574751654959440400355020292756245992197522531294012116517164588329293827731508307269551552572761437829118292306920068351411594089465228524346640779101770824217020912755777713100321304541438238171788770127491948591713998189384688223934327460435538446543084781748703916637983640221354849971627065887720159407298587348806015459969771137191609557870340848253694505759888720462639231558553141511741238214949147079876979089598226927999474859990223506646587465086683669983356370511308781240730408458255006747590180223210756778553072733188805228249837050244682733739601153513626843611355605160413067587547922718563588289776553262116070222621274950626877518985525721770618895714370756155920129456382294349531785447598411309252946546829010211682138436756978996330415491450839322416416848363459484023403164929916313807680488945670449695331390719083624250671455301132364290224020628656316135680351498275768537399374014870753549624410408025623424492070835613204104113081830270848705690219535836587840434745956028368015753046912478972996527591675764733671324503439979219021271266706826088619898758616961049874846622151090057401272971634824557609636988589947907840779777423791847554256010268188052665065476703618105848064294675112398014140840000429695938201306080898359187328824891415098833657334235803389415832176598611104438767664425166597275230772285478870655474308824628400622366797772102208059433636489314828559748313889279969357721591127770840122433020799476034067121492026846768865948073162783150080617902412227458629859179183665154427022271817732316222332313475107503161842163640430394048652008007943119462951249944478990420741349985592241765549887630260832026754731613979877692421939542680750351403655934587898139751799929348937917577889466160820894239955374803922759129851766933557158177953191742944409106676303638377430662140185861455763893797549780134447387414149887875401598306262556523639801018745797493107104878374095082456644312901937068347005851198684901848420942474031582128416422289122701707716249927041641596545303072229683142102797877540874963670249321758166779478887347974165492835868945451111887303424827711442045442018033801165013151981123839708906930919060090349120467330700560947914484766537356152882472382457903061631793968502765435142831463955865423081733889528116954240322745839440062532784912151576116233484777446573761275427730938772879807413139895626969710404610837374495244840874359511105582280459007327114153281422483163509390167057750791574342674409048831637412817989848015773901937741475856125403786019658184511040198186514371146255715504026842526630132080431845952543727539664090636172791865909415213663735500050845694078805799986648996296046039404169001931625680993891138263922659503440604163833894409408857922031586743653125465023152390091505587946043398878397073018060320202453487047536746785579697264541633015856905608285143367569705910257852377155463270337950139500676397430937700544379198902178207524175365924263369914002724094124161594965356508508260057179560777106596564277264594311765295782947038313481052838940139934149909357386367673716902408616661149109180353977007950780002874921909401396166681522001589513976463146508119749510832032240783686213833032705729995054424536541666269602293389980034864971497888508127670334871292780976969189674643184169286668403089326620430521635094633513868403767546421851178389467869120621813804198662196446103211388252269507456207541578094905511858424909236142572447637460079489719717430113120125847006561829287438714838895233339177682679369730064405626766012282021226189737436249985078669369170504242490282770138967864761693981671105769892799651125067285057478503511300273641349999968244945548045248015681763749085741728199726962534916000828588659861251975577001062683584962286213756088645584493425393148422184429104788778565194595890661398537294179241508490014014029902553694513399381208110611759172286427140841618372319896549814004093480523232876577672252511791012796521664056343105215520227436231797847770281259382598310639109951478643398501916062560625320621600207905777918226950308709837679805001835109189565536919575303474039659245037687964835018440242650585539912753760557880379571550953915158983704325866923331657392260677613961581864680209041770766759918913799839441469668963429032277741004611092340967242615462087818163147292896672513010429825530920303194210455392859712026334727278106450827981009674107566067389226746965029875176248623797284362362361154257107393077049392196169979117073674122557018255369493226187753174470524491149466072196697530692704725580166730540255784637085320886937294788751675894309288548366456589135851457442542863455412849432023587570298948600741014963191663932889493116949501724396887920595598705676252622601934133216902623558606844467799022292384180536941615548760666285158811164812214679735571271859520823363987528630012364405353800595799208307615938594000027089591642253750189707486405054600001448684062283967891444493049187113620636455217092795393422247148528836801877806054013462906283162889258299377023979789099814450478626761643129779915455572664048527280633530505416260152702334636953915557701151942053149794629172918995043564821494009460935628401774300425662041311508172445928317528450122199792415285191510914445420428016848605493955430818221571377811236181111922078035019075306397274317367580435816422032548083418470000323715243677354661142285277746999439971118207323153390102324382899246119831111566166177397841465087423171679180514425660859465047287927946458763940171811251601336842920586759251310190730820024444887749687155046200117007893512252782807301894494654886468415597869764076637619901226646318831646606053398421881238532712981625100164969034539705358661921624972170073201483180010916526237660150136744449286883980309552219938743245479555321997114107610553831768807149525381166876408748149018631850703234919306932269543714631791932494538509269190523797637538372933750015759453534016191122957417869103574726272727311290352688292821995379654081976354002982056502204087752320806297415921243357321774732800468950225374002486234754964901760045308972420606026773470064993549293155858267901759246413432431269843090168934037707178873489590075990623067076014579437055216042581953448670161678018000744600411521202844259232556888718004264168090851192094547408471502092423325123462751909501626785900209981249143862347212456124751745587781969160343700177568976692979584767254043413617800208567763542354173749577863489928292666111625089566158965398064628899989026835699765090666306612765945608516910049209749073074233913019822435675681201838763221060314895793655209860748784902981002401578195748542669636576179688430711756618940216606753834362876235773820024796706864988133823767796689046492472738177868977247057599992888421181092109524613006400981965687284973992828986912166650521954245840353860139235990253563938040708686361481587245619901135830035247590271075025944799576446932681046666863516202279957390847896960242553367095612568833266960822529501351060399139166531312860993669790598202427120945003306389323861169336397028328034108335693177104358686095708018975169357935294178188790982337556588407479711513499149478108921695473652611315919993772517042389547702960233617845747394051409615444068564106639482922442420648625268771978632006440478137257302968224278332501303857498847149239378346803461524906083363054164708866713998409117935915804795576495421053875958855408214050780408543485726749874934803713745310228431264578080388326404524138102731069749224370854399155089556707699770656800999184717899191000768499288403561182168090612193962207437216152359481815952115100533468387350624049051106102186843875072626537916520302992636238612346518366816403326480551620118982506649828309190685107228709245095844087702378579840822188225800957438191577789225045896017340811605998762838116322483312594896486566137368305707078891867845998400681722626899526233687829847522706084153376661857860735349742151781744489689887207226153768114455428355125987236373962375010994408342656423132504807976047039649928176971042825254908039733235333831200588412409209469537706817105853010039295190567079644865953204021253312805708672043389302742390798860495271551548936465255648932297280151684643405982250634088978276192856921409425020161765596396064677472542165796324536389838773969230692339453164223112447321315983640717902048217819327757554276573821244717872121177060998826798108783140686841585611456444656331126807914672857867693407212457860615788343830646239311718861778462838672598909590392930832537504473723059013497363942464526206970576586609847446762914955892487340461428756717351440292718464427774305285093330215958043994092985752650622731064122225559356311034011339650266896694843156131092640826575472174129852962588511966408713041746247670870773049384367672135505336025263630183230548938772765363444499412678320786869623565416838849708706194907000891239210013730322906977506905524356273097592859074814300491493722006056712492608647523060993649161892061795593144042622861520883634270528190987934524420495545284475574851102731421602937511974537922341858497199643570025399843479929813847282296971453169849641172736095937063716793888735455004950899487017232942321209862947573308272196889943519673356419799969461806095086618119137757688357428253443210813273951293857159445187970343908958328071808483902265862903261987124280766230813160110537791916077224853528456696681114531594602261618637400125561989264835968261288040683964814249528786610238197560407376992045576203338509074950672896483694626218098974548619806031815522778159597734475006943081920195146333771112375417382151626531790904374369252588424777334390712546734598307722087692802434412936932650342075793635536997345456355709754335382676156866684148252584558686192717510023873842091274460050573599676102685336661703314842340338515872488449700459936301803955488906337768878876680127678595825016517984884403620506331184427810286851623242100339946948075653966024222620106390104641919998301320724743354037715793391119863921991844988604255189910101470138985772236883891734438583312584747272085139199280997378793538725834408236303700743133477370751405122044301526272660522438509876941167339922362768421322967424558793760171683341321677124361442248505972412732999184157430486527753785254102537410321945027785400608233983371200467864251888925447901533282542590689594512613468363142722312999942346517913313061024100703417109910401260307930927450575579451090986598169162051079706617730116647132709827927986854083071960289320586066921967536065476967797793375776645674424915434203170574077227221902120335966147167723681435991565513863166369147777271875739315310068523840720328263451160888882232566273511422217753406029484766419637218290598963321730217256775325219139973480184750077838936780597315956844198744860097464346330014394285572513228923797723200753935521019726465531134492146622323704442834981210516025268997796834297487368549444405331575847598538079539581778846743727653510776482295855548369071060051638076128456332194634442645878085020087800597410506774063087830899504146905275528378998998436322395012595334687057877073569382236302966185208824803206598794940324941765167158777625623984540465723177813271452510059056484089274494726475670462125041834937721995031812367331063618617637906089618646198828685464466946249429276158417620621074560958046936136596001017851555979644853541943797813756504353209594771851150563658770790588381886566589224746522315271364969386201739080140442649976138447241358130671917108022742751219798122798938932238573837483704717549615576487928570739532086628709925136665799917589933629956815048914845069436323317460454031757311140393308621398816693533641011382729883199567792927910462777799965642533782231078234133858568650533444537031366989314264341484469475863970142603085883419661645970263717863526997191490496870748104776815105122875785429893432942885963993827710277908087095449976718806805034498511569875809533338604245179283414182585995810948420351902080317578272117958712811528910896807038081667663951856330124893883723993674507123324222443935256449460405430901025331492155327863524791570049146591131077695732372100608369444781280996502084068006462806873998333065390127518036329954707890314592192767361233053907566760130311502184449059987857379862635511615218879880763679943271715587696281265898830094475313081139660934544644574152686878787731375497215147076836017673629373284457150565155683029438719140843720040888316412548347565877244448345470329070954961691899493062897459902564461635921752259308813255918944652458884202107273364266557538847687437623373798768795286897361472965032186384533869462442408063598592128879112502569232052922101943616144119914063318824512598926260929985889622556067253458574772669209898567359837455021640716948123109717374777089333046014598603099814708488518583990253353515179531781368533481479954093933654051563900091339282681323060887107259703272537557887847484246629457344201974435272448690254728611087013215629850675237356112152195348401226473741120231411151598291224089459076359212562719979586016710185706728572583926797477264342076961117320595431129040712004712993683804768240029541493250862585324065885742396405319378030513617132718898389135773886165367439500239999285608276572103222820322185382972277434722458870005668235413080090427664884957156155856075296327551911163593817640395951559469566081523752881787086261884143415654392685061887542798698330992279854462081845637971949064337275287368778419194866081618777051647569965577853689513408688739882721281583978373336004565554204220535302888932570697437752848317460620525983389131275457672855664298662211887351437097692444531227565793427839031624354812556788674177882680022805489978366500604277109333518117197510753658213889632279022683961089637348482796549232619352801846324632230386838346818060486150262377485861802476347758141755075250775003004025019263425345035068726267043889649550570485241699585671910848899607665378282064915246324786990689009736461403439507597395154626439094647155677724236638052708872455831571481389874753626987287683813920326484530571740270513623592417540912217486230300314654650698231216635554164767814942928625666846395314671985367085906897075247041530869220217026610468688920198114656288566388013794274466590025381486202657073100578200771212033731408684975436968845034204745009707391211015412290655670359765475973165650470888285436774334105342906792679679238493075822266784245225313222328932254952939968886347415058558692571372854228820126439527597179721833371474484115256183181616360776938475439264110649742901991824882394687240206719521122206801582184353635712570854058157528971755008924912729369174560426749873178716633979039107037739293587350085458162640386335174646929467668804297513307363751152678407710560008437299350407607551044566693123885475901731752915334872603925179170095835983359973706299317276864006562224936940653037352612420042379405487228954394639219114452424439099406324170431064215872348174169491470277650177712207938908668506099674061369673878683534151316176705439891854895603701100034704883940312607578062917548724374441322925666825812047063405245105698675696543620227152000561460989731569934709918162937326757682139980520527158024510537647529722004352022891460802285099788929026292598256809280329452049196811875669608275626604672379348864019697468228129688585498059533862643838576147133935795333714656483554257621212040277612889284565132517090700391238861384778072637255253957748265412278138023582303372324181918116829159793439672618800485733291504694130070422392428297590388147821067395681107675125818731402249644406744453806378100770056294196138787885248929043606629057179738010164776233097851783277482451324618519840176584957340147741131867278105529492186287434470981158503603601684917461101956029190733176382342309716173065419263722839360281518682730346327168276285467975587508138354822160067598056165541773109545409159777347557814522781920928496488286543390098158680411872653533953648489672238242046218194278891311974194544941149768526549424188577365717178710161795477284272856679158079101452825550349917690591149111164840785391882611308100865506651719315260935298887311027670796579743379699579464271540244308078340563126884149471894985890382041921471423693098064831650772767684111227899102538569734942782192931977942862160477973830694597343301225139171722970405072720134779186067267138563908989900578574635312005468748142372471146377506076833638517832295495644144705451623775123883116837908487127510398533591326190988969745849041844855180476707505888642655741810970208836872559272761847726240371014854053642213657232266558655008399555734726341643471010441637816813632842645720958950253722513012689948957435062127161662572957212618463462969815452364739574281254314692592525429497803222663974144860263120820065330117656218720538885799382844184060408071135134363514480511083981608203128842847081883698207769176076474787695494307672613527079626415957149449297720647217633550014667527408241207660170981011369502122195957430632253741674287964746505629639294515253361313913756634509231283315829986185652253000418114120991209281334995645759455061526334147796154748034386975297562971459167416283223527382296060903989362914486831209615667391121140505817232137365942926223579413377992363808647297601773259895902857891752143130147313696633773248265534361910575945799900355225628892420185844195364916425375277514931256074707879222422500860612052090828350237084732284868044459487948561751497440794087176162705075155736788097242381757604347442367553727156419232201875390257115586351488677531902848575603048066837438864394978246686618309532555748029497127482538402513233842611579253930032841600285467164325122593513728948522704559462938899098539181984625418223079799594970403142149731114186134280892149929950438591615171709209458573493619663596723236210529527765077614800083459581339783630566647956292770237836365748156476196563079094281622996983245571494265327748932403736639563301835949619344136896819592697212629620793598939006322428520770627794055829236740545137461352810305487421728151751091657295837637646872702994062503143806002618028866237639909573035647396270298258093509459390907594760907377720427732532543595772196452183213931327659416010167334556989692750852091030474095544562184214695184659568567188996445566418081342267667172366244266447275937564184101726697523334427329547498282434985836196223022296759209960768473400452098834708221835692477731491802853192734603293586319110862526408871945475344269520445768728666549629906232545574682370440542109360250110775534927441761667644581491316063347364146129107688178569086954274092600396691392513755190420893355704483852078646652814731569883026891837643852415440630364634231257086024089665247756621089117415158208874600369886645393997217859763742711441594639559638813355619271761309799322790309910655276682488104145488279609968259690444986391004161062239722650413936082316321317340116756601856246665387338497585260531571416464316935657660098224768728722082641578419130344243885206443720776941223351531110321649167285423400230023064280826604350541717602284977805347380042292407953864972729746416015325226432487944154569068503240970862423349377802986394553858290487710850248257343349761559576616051349537312650465669605117494793541722602421715231700738354693094285099500287213301636161525536032615142319247249082273923944910751514182802956476023673548851463177593421818553757720003216980482816671109568483099024521910560165350466479928837904051747726680149397385997522402057043576761184217097262015768953331982506630766024078293900420809612298337832371772001472024306385257611784394037475274741748819705940164711300061882634527718868990754489432750761826801591203713335043408443214063980459898071271417872291844780291784061443580487142772286310063459099107064237935552234140703554859763074390137501460999122264928706365464676391534133430948201906702846307599000182164909003105536328175072883657531166504879640213744071468743552269308303837435808789772502838731848660690904874420385204303050616332143969878182103696538031158475297441233369793486179508907023706303542700020959934881167460644151219728342077616115918982391502309153261170029208314509430332762849402704220641566156867956341149959735373784977102850288721939890509731014690769866422967241485944282757361237226440487604764018642093476572474868108332619650500389478750133644627333436808744497975473206809550457200160907728093757865342254360068374948280357049016016121139439234182989492008475842792277030475872741591779514484431203318790148036216847596529312588099686636848188626446538978616883678744879968267996543867744035037483539927356920324565453979954656033378282161497714510242298598669779795488759289878065181621409544019292159847695183619040105595046798576335766082528675105018398357654248594435652149651011494606793550732922908227018431636312367967038572013160872968145371788075895337439664472575633653790112621822514296065396135007640704750618251837216217463143361441032043669463556862248818894277623644366654656463199801942375256224634084018231816960689685058148251032093280555303740927436356351264083556892796206117171092804682129209145162749340558874611858524996405104526440460418314778760441561479241458586218389089564957235842588260613025222348722529129213891522612650094742453601854179284661793140860339775116759886405635794279499421269727906353624269000813325762934862773193886587667892235986170942760428940971243754005865121202195954199480369994386564177351367928078316588216689694197124255663148693839589274169919499256077283952312794420128455156791568529387484896649637521248459962182800507979809446339347869493302661368116975383196479593803327355885700437628582145925814787429989240787871953819355957252526421944939015591291019793658104248784817130686974350573777603670239949690974969027744315076295295278531283125689154982195522596203521870129032831100241272529020016017507659238126748130210974609097199950885812460399189335162861451508731282148774680869873654193040895204737324335882028570057668177706631771668319429052802189842552833213699169804789842645486589221667826262491817254161901817161053373458808936636579333656523861160514586967324661995245685213990761683248715807232564835305764786846583122914439309183937096073028820863589905526862541630704911600430640494456598986181818661890743073742721527079974868513416144821708950107263021352362488522023945926792363348029555776982687111541345057930709817098948348592694004725471058494010236220122232855816038021404525898457649033646054546892226546692532817371766320479816905983160397442840846050575110968058072719584991803178464959054399702106670542124392150763902446912718976543182272983310457421936584706842620207818431584640368320197718130445629421815279652661178432938860902792033365351875015303614616006764657848074585665218479856009020317214641057891491553680781572521868964893621642746855062247169212605399288071963679881249355767048884276933116230420690155106294407333072134540224216126186029859510342589625069179534332970357930106642613568918895025271033684881416684605004993604019276608098005609739242438164969868341744032359948860676993145963058027376658507618852129086746448278104496602235625829104782045602195633474630471907941296973756395416281521888702707558976090120053862630062146528453908271516353172497969053459735493112551039807592657286016204146157166019994992765926437912795161165785071752543275160246091043278571615732912394151696696865030362822165070071223050981076368089504471801923162804265570512637846596450384444735628653471910462568654951579247179606132328384206557353440878948030498607693877829464448460840078363171394095364273819676837765739890999862829116020595289854233016964208706024062881831451563707992070392128977234591419371135022019483350913608999879618659428402130502767722502748432766711258554422608219780231152123391751575103461251512387922872902635631225866407197161809534793865407399016194343080831413832496055497747552852887488406129520231503427499955648298171514865438193772069834748685734148110849923303862460066459069427417721345376631421446298628900059164318778163317007537053494135428379220529432153176333161905013915627865700161651836031055338826792111502149529810310983473939168517547717963143235488290545683038299385043951883337653023112667590601184056447854034039431360361615820221802205680906953272049598375217555564378163311330942330668069355340457215255623401694425694713776351531925703483903959064154990164887369621920912262573996642580099561754298173547287608852204235210752071495949492354297788831355663170759821855303719527624797849022034971302988293059166487074175636810392820412700199004910371281752638344856469974396655250497440178972807447057820512921466384520705948081537290549588601381435757679519244409553050033625059822911417812230568165415552895081480013512232254402236584549196499746459673254797458470474282013471219863281147535254779812414901454863854498535950881644949231178858775169380675208223935096012349740351817578845091726843325909446582683076349528442608908191788009916063979114800752629897352554760090625147831109447789161035135005192245897597131352486698298791197674136635669537177351186488372579110764596581058353482092778953929096940074846992630031593723938523708299362192112552967005897095763189080101245103364988832771600307532432135850365901728915643513261359746546961808022007991219253416452150682514399046432105567692188249165459656287740686712622443477109343675616550300234236970534031536022103706940469851392840241609376120789299557517787184869818322842233822612049721135412067285230788840423408562864055434909734721179711642401326943130491199282958281905924820684511874462855592855675305037404492010179178759050901204725229237058177278491712911607425199889417620409871125158082856071472637958665110571072867352022785987289856198556745329623959176853682795535226408401670713425358994258533649158250847217322802257136781053545261009030616143808081753781451810798570688407119478629345793710673357752797770874615047369576669516847393965795933355979709320537624299488213538445915866476003354488571773943741432662628791423307580958092475249102950769216961275212885553906107263716250713929493530990409789399601321245559024491751744413010634507473839660029288493466915074556115884732930228525667751369214375593872155044419151302804598519054530130893893513568463345784263870265053045076776350223221755231268683156740425994610340924108340643770953738392455465548896228689054182977141521780718561700487477086770459999638061343139555919864429113124850435224627946545286757384567581490031612781414950787992558130834865438764469099293326975589620094782639852164669506482382331606683365343306922455569740513236041354771656044968558816955314982089606852503214867573347828351969011731996228721555851323754094624708253012971229099664105123443716640699530049563058494381116573993163148659015025290853864360553121859873522246101840471697523832357492617761481406012579628396286146311283743482924870952741224205276171898609778692239663345590694666214619230862309723792344320807295075943219273883644700680416780867939428967816573051419466859983168019201390180830343619373918404490727348921901862080571021408804006789698411865407323655890587933997788666577275948942338295189406650046968498927986577259641507463979683206563548782783072213309214888962438446798472066983289986770875793217684332165191717332791330292089226597407384553778982639623187440554178353032102416062608081573251681170763967203613363199981148238011541700019150908790948640479712975254205787462952389088754798316977516670917988876163668528485088825315067890771341661727589964119313904240894082028623564169714354075085543787783441728996900520532135239246658699098425577108057495793460385631468707465929550484951804470340473390352509125920999444394884477666017955045470397783162207107093919318369610036648033615475667268193160552281792953503742060111119577707248295422777072604766795634355558824950046641109090542265520953891812328848934030068128704878386802167362535575120058338663498978487157920694584363899420551658431214193440693545168345900785300617201345587336554980706884586510914324037895766581712134344112600393495951012484643068731362079992087253760230025584267655267631510808312223589224353470268000732895274682914010132407932606080302219838938301329700326311885410681630413405794686958362588446385063984648686908738720337202238637378024819567756329680315915868924084184623959659679710388077014253041692625780179077237340736506897381332362750705618730646788123125096967853151647928238306453688288906547855466360575193444746666422972202380423053272190819638844121105721937476239604128263895750056140479074826989559923616432974679614232100589282105637824516412628734783956377344718678120036843854107592716028471088492264017888069475995008865206085406952758747415213209178740735064579752650022138706150388512461297225103108661278122711647235074155965281149003067920269266008331709835359323584854294720912503496256668572538189114716009897185703187473056917505022393914316812971927968671451894947943715830700259347270394307826743312744723906088587450329972539206977817871744779708184128077084982781521916953288061967084327705228745093302861211835877442857539572807937324164711434491353909302682202900246460386398378303428879854103030361284648409222656259871520820931306271734487171056627788199919619290714545082490132067244321428801703058785942134896752501668826729599118113587398434037349595608584216858912884818108795521780767961483191898319355154682683584994960319027171976644631577303418976180295572284989612394473494102918276515122409349012392488217212372635023653080786665636250807872489624387174976571908298280799554693197063916596204647335063201749478517020970712413733743307769344525962882656256721909318471644442778926999293427671520658411841741651911222619160769089027406316747232654567595492491056441734524617268614954440218159470387929906336090923311862662009007854201339924372127011548285273349346356906223790258965919820149181480951195560334796637653120966643104311470869556734980659031318248590851545072614290054060031052160245277040831736168600029406016592267861463295468020029888527397546450439894550767626370301484518969082270871205290771095083427072392088912588721052695984477003164746997623371785120648840790686464478685549587974044533222471039326479405640241704682432135884092739747992295551992281304366530620149509283533626143202827284856554954885737793868675339557028361902821911933082177976807744044096560025919914152441122051647759773617320155240099290897574814301855940991918296137172287981665646311747790965637369223565771389959933788896590260850711716302919912138447182240266132035678026176816450020498645790033626175789407730634456208306697186260596048476479184396844461093875180952957444785944232050901015364433228057374108045052705461141245970635566505384719353383621604126034720094253907007981536446768324554671676878745075360807375879268793502215194020408446747586390416768267640116770518185987516482353806391289365277486998975930525597186141964689713730819821540516892537803436522928980659794303047105326921793123688755298911209346128338630172129153193719156918708941602811500279756915051380380136868102990405546442273524553552928393482298687328969545277635798193500499538699813608127145539930289521074180848600593085226897611336068651888428080238331808181096153853613866797997586189110589157297754860600560606905012854517602327464644173653971023653044750899145165300404431321875447342721220609639062516694702693993858097872304366178098526338700048458335142028519111868235620236066268942707529164310176878974641974769647117018357494606256889126923143358991787162356984034866710852242464017072096363049024938036395524928639720433291397975765853056843075761210616709747229667741148745643186308033859872321458147521354539371541799363177700495416651648496430527861248842588750562214561639316132153505997907342365368303837775586823479953283994346191897438847568540840948466121845293956858475406926771826982073751195736828963159060770759518031856043945742405453435893591544237655959924779277517356154543822440772311006101333458153630900796020469337952062563576631127203535485001515340559795229289388089984855019649515045727767527554478501681410716004446734246533943887826553346943161261563539198013508743943609120601435457019723317131422017545045369805670662530006615618162029098521705230243918600985463383529275199308281175190232684667288385954005762531996524022803629537665855789743037925801086127869474689850528651708929999938315192087487611931360185070826470709398400180990259053974728312046841860404179904699814771803225712097573503812597613160451378647622678938927789742937749917339685669484629661576508166878761841680292309503918657807748786134542361179917253763483603345003024875862642136214459028843475395983534139131963148994388062856366023845625106191365184513320585431106111125504185488585218415439567287610240623166561146201483185084269528063308475484918600908016792606108756592753980265798907828622899676737886406402162974585790668867650450933043707900622367623853545972496693564979174901228843155207732443384993837093877210074696436901700054074132746802859710225214142962423954754364304686229964453255061037320861073987067108638877995145115795827685026562245142763462356188773576295318770346310193648584741954116128273388599619979147555013121531324838010458361862724328567025451778487878150775744238737285859667568746538743787549749058094301329006240939869884402152529695218969918428680957964558853301802501817961606122096203999874629523266074161032153746626650001741411743826748142121876338974723133702406887902738582507475725851734230986830712915429520882126546895871146533533980767779713082730946908546041911882840415750932225076362742508694012913478856674801096850609732007769895665103988097186989378909892633124161548441697566041341412509984757540293455581643614147774937903104961215249471715759319686921825854407551841688653750337675099332913581718509148535900525027635250452946782335993558698904871177254877855539787858357401354145825563931360722183087619596409394868662510725351934043753879849489947343417219790237055218767221167797761645437369726912514350336277898228646797700276028058776219682117646894964864505982910534964188002369396683596957348162924803614466925285277907535496357892646480383519879520275148502611823320093885570394835536963438351407481165642281715480144183461222113473674698656736921170050494170394855034676040058772290862279663417167858521296318229969613298486087488391562546795928157372947449243684749885804496834189661543251566409633687848701803441574197424497523767155453406269804207813219390111917276375182412209413490134510373542429134527834965604320250583093941791254072227319638931392002146451301358609371923923116765504420225619572768781761161167500585132791754127343140890166079072403632327481057577548847606690680216159787265944185553671509746284067786949919622167630914095226080026418904145933449696709237707882620671288466351115931213958240271217178730590555750972129505847906815714325221101147424364790606590210635366168030852993027736213102299893160979721912824933033660970996094370892857714310556329974005938720238843462519122689368343174688726109559041204273949432257291170835945366459641803206325113689868519052020650761178044625972209440090106793490104891847059628466557886165474631037270131139306223961781589741520920568052354522758924378068060211794511413396160699817287533497764671203680303906948549848332495070753973362204895169518774479545331941548638223230571812711753107871910480187648741375583600976120886486125720541658080971544372570974951312671399323384121774238518840987056263182685654171468016046272104246429347847216729423251064371593414883050947340136954240484816664546811519726191973325162553611530128902986192463582632675494831633699250536985273306262759078827591628944724660178487003792535737314507092050859524979709157115094379198431924266498812317763977480463750519102731939695387324054624844325775088801258424274356170745219445262357306935466234738971894492573805149340138801446770044491045786092003558001790650068444815298556702485502599796900378648197216092960474416899600553832715426393938401323032980702908088611464039611472878356850907672175887782570205382534383601570134872477411623880150174133618503313564223725288813405773785037968068765533009171966282564530114487512246924943499513902288111167872741707452530867850823672520273937248890810215986455451606488927435490693705949824219115163769893001036365367889722941196678691312580194157499819744674100035041303540349178212961075783669501916460717698670075851085530617046056141226115725965797606074038420443109650683888520916577026982586351170174493797477595861744527387187884422258568705632591992799154813570301807408939587263135266405904632972466627476063126093930632808863623096296999779532627741826593398433674362380716152017939890012247092613328952668343228406066602219777642798826549477497071201583208897717889521601736002905192931728995827877322497749987809182232921727811733608211721341222381466188597352074943375654325634649680346907248057096144435747077045043213514496573206598230729169901970732317650645537757505667455157818869913270386487487625082787257849600792276839786249980634824604768491270336158816449642595091039062653977492521674409037879351964143993325440658336532928302895748214424515408736998676318552580501423258659127254371529320550700375153435341136167985789167571983770123831023635256621511771650577297186848638996012242924545721787920695011577535625740210979267680246205708856965059726219248341170841084976078282144559807645335304772034992586860744632657641871140465862110900324565149569777394862333797563040409980644688266692096556905808624255422223819694145258496422232852049701091095104234329100554221001973727683292448499695041691737557106183924986958192516091685489788385149451045606712560712964528818587061725690362671336494555199389805958847442225625135971089979758026966096054408066934200762712912987631173127533034287077509710047481329676074832944140169657845769582642825509766251476404217350400765552988363641110307539276413452129923246437141584412674530756881863129733248446189529988965490744675741845956363332228476372455912872228786517169053639797937234805529135273601585475950599757446135755164314042287179177241459932362361960651251565562523660035221225824618554089123441934832222899397373403189338596916339266794465747139004147360036930907071963749329922396806430752074410380276566714798994551371453747136969942541360390960847581873686816012874274646580200736720317849204510912534034514531699113617465778751544862788448339256693184142742137818620451957458824156604219501657740465321695846187524233322307055022365900297902993335975663480550626207601819004155522283431278682746872683274418424622059476222379969144306752285240481562359916262815284522018494621526101602488399186338657562871550175495565832004140197218065399270326041179494998059481841497879353762785439655576744159380458073415569428204315772487957629952120869362489018665036403248383022821561503650828902927645538426692905927890066562426832859360103453037764349536608136593481273129335278083573825054808045131673056586160172528813237825590023250212397845728028964650399026245892860415310708532062193105091567741880420171151382447068205898192500115511688960058099857654749191181190227781301241010742945897968574694007510027047699464080154539509392500161719360863546738322652708153904130364325968099612836031091408438431344064581753597437239719536847055384600204563604070450904259912249102214277313997470651072516736274885038367585526682629123196036001981847054781784582101439971381155749244954450793791147204402447538703490989566891298992035144237240847185805452027680367504516246262938738936259599701729991558798303665674661637310589540419524895569688681498022859842862889867188328436926555816277692919870345788195541556374646711123250831188267118932382415646766413390941215314180461044589768006844287032735016758555733681974896235465115542605005779812773630711095581931597942574375474218880681283259276182651483839075984757391296497173937833815324201929467720702083882866830155021473976597903826960559260874366508248376975522109562316723189152045156393233234909240511252848550895599175829991567608833276693000703436363778670678739558531426910634669447236576272148175007885690116042553238186591951814613907962199794641717074977331874903833470564774870114786873792741226746540927341906033532316750869973155304562074165153044379353178502504828455310750815049903066048986750948458411020886272730761571182634541955889130479307906688442185153191330985616509655399627026097210596608685886821375695037328848403202502936540916313957069865821806603962587474415603534919259820884569212732036725279767534438821866425406663913326252037725755530980114717697387405319207607525038538504467050695901376548669056739151198143079722352038885615787560676785436192572058735000434890965195036321075507738316710498532750398907740101560162515626755012761540486713500161072053636001914791611785970501998682101427377100261919785284335524361145198716342995056136392956240000150477862757674126104212004784489151040232783845479932344547860350835266987156250443344856001404998931573090124408360819342600756302343878530359508607575285831415440835203727501531055577446373555503692369362055450679371471486026705124600010257401910830937577281372187774868902321269377207761962087820119656744485123788392206865762151915753334202501214949692040360404505029362107618775146045187258106961199678138870576495254635665899986145716189221587998612140020243675730847186336081913417754291185837002427256613039180077223700251037361482018091501265475667603136448811057367778448207826863437698168574972299097583940481641819623398345963562306673942851655558831058667618991953938770813725632468755217690043289331510234348589960723384716498744167473195164601159256584619204998725136988935860316738419061064468658955643607744353565812797216541244520838891125146025173869841731877677871249429658935176011019326002827507207062123180137221445237222534126106108496405784150893978885147815282481278745576981734256640427988039019626585835660611086246913928048732531504440104365038000998230477330626087671982828148654781259179488312876792252488412562507996360082191063247862305266039769234497883475533915622684517098931525544830090982006625504990197541605772310121916611248346487072373314976362532507686000821157817040614330895729749887934610099665786269145097585738616116226756323946866056448225314669623843857913645412001174190127103883252732489893988516722917388377962146865401002290965031210718995104190553510535618230920357915832028195485884645182432884667563085652787586628404924299075307019638922515917640854553303983161533719172270303852598422257143451376089426721940498014943773635734568453108120192788567396946799326830653190463468831882899581661900791975527405082132667972995514120449141378324602769236611012803250809070476373388813544242847048135691088083173156505210379794283948404506674745078857344226690800723432775557735078446054478876225475258296515940030266756391990458160915931047603291436611554540389695796964883867139967457596202403704212249968681592696033304016948536693025812668195721496915029178710156865277825212952648412996494734725914335859868491812202140852901814564144811544208210361171507974229172562696002191053414013411885413946774319017930139071207429150680137462258395245673008090002252846575432098941600790643198370100536612035262503262957637591756387745597148122862528661698128354000077082384984537415563577601802138030151118400258811423934476264684687514291314742208772659859465639736513123407714781425794997270726776338945496024152144121566396567952600218511496413559919927230667171063251375147732959430943506425537701892733716124706280562408809239134164836762956979147867999204723416820282924319911797566514006416541558604406648402443714882784870192612326872029588379626297089637597312313309217384415550241420396646682972622312389548328820216898659462795626870642336872363576049181373145866639242035378064429629201908753415543553972169224787725210510006117488606825780471844113524530746288476030204186549949883530225912572692940208530270914507686713141962391013987817733172724115312797906966739958379849207734027884292739246947380729709111632828956970986947728935401977142492439632726632803839945909796449604396037490884170378435452537700339062018907068625888469453016893205332752780689962034183589091921870822049737234556435522340428784612169900458095065904961492838611612646352879046173294556398048372488437060223043620261720497498112170260365722203115350835086725845665435987603297525446245698306410728791599688830699833159867318282136397420227529046851679383213863214239819210293633601071499210903375614873890120625362092467876453640791973239107182191200957156398664077051150032329590749507673764168276704892781301193134122356458002361289711216461901794356351791175507333775966329995256009840457636912476903249685206709142654357879324850423528148260567056036829294059450762129189897017201869266172803074927270859314150676885911653209048555010930800590871612149465450040474161192655783462800089778468471490659158667030766191147933231349073919834068641460281842807125937512748821920951593329067248542483610612734984250054167215989377524327462483687604026670776623171230026902470475249324122361404432238755285707632473114842087919669452867608051513697855629480034002361583158655999250251026440303117067679019173810970769329426849613065868810448056903827882252972770203339099861622773230735189880994711974296128760984375925329192525123758777286542359325679949657476078787555884824401739694034684575997085464288374504387199820844698375682164550780433214002089880991639332773418352597356537315391815381865586335806120128380839465107943604615983726152130288731010478758096304433451536405552584028203211545988792856162289110479631079571697867715506501873696933087184716031081719893903886766617575780137147903979811297077911348152247142688915279311807490443187394621117891301719790212309550543012743488666499705243165069123769521371741198958056811354400144056639183657087711748941917887371074189979038606786227767036099800144665940675064326108649384974941914953029318903660574798217530847819335371717161275047963466630783942336555376511270445214701264016674381865937403091587601129245730251246181343931289284198680767362883849288496189335065481264053794663936136413920189083743682061791966927823118906596870481279100249612535030772590832884796873376662565376614714662147243810919300207852422271716538862003338468504993089894027354577518805513552188378689721840628917410449981254204573920795814324940656376187215514961258356136711167976330549134728030486803916473557877472072703963543611999874067528046127731070652004731280330913939541091032766626804082844213536068564026695631512060476942572067505974716414740256909026579357767689574345287119342138135358095550035216114611390073397954759862526976685415205046382166719556907959184211864107469980808642973403909668606007753737696571064395277792766011440228058084870338155744752823706383916496642319152473214857152498677006774842575063947433598368592686931255825044403063902636961471724917494023424165834644256548667454847589627527001632074505593681018846336167748333455630346109980262120378283105152652863431793741465618013201787873181024791950838788636640408817853390916655174646449617022197257697294093310529149489952310101319241279819536436743708123795687713618114844023796370553897755707875501020486001402334288466244620547388189365777818466557903366081936187743269664094514112692836724049517766403242409559778720574068075526123737135830638260866591077201663876327959051807278705192059183361380797630215183086991648374148630795527074056284373674394438413968970276235756802116625975626328700964534809705327116824246985676592790794575225689947141894175797986937994413696061943059741393962782976222646363406629849295481185893069148826430754424091032809239730431365108811177948648973018025439290057403852262582063845542929303941248186460059321323602995288641787098195117810589296566700730099259123030794367316315457040255123967658356697647220676492564776336651410725435047957314649553529370972208808440505393229369374287359177471791815426474903007585375738413724923848783718339650975375065972273936082201155591866547347330016954520282679842469791122360690677418764935111067780617453703252910811242548583826240910910496957263132776777377354462500503460356816835790374198892504479315442635844935352334676259145320879232728404205699772024265126251920347625747139482331806347659883454893130418388750756351102619057246948660033999823341611654019571212148787720889863259756207775441251311257964029987303343620451467249893480790728262384540250322735687089495750540555792774508546325062073227281401812794762779651186462147994744495637561623972528066492259416851494563811045871051985502316827063916888151898145657503511676227668097399431105658721219996324102319187331278074153336933402899695870204247535416808441607043683050930577603878538573793390263875027009780948292179291140156205264869430437026706853856660796691744553919041489722367636869337696548113042044033852861058023275062537899083181787132863460520403120968714862204462758693656552675508438153390029614166392900470874557476863250116344833190720586619137803910180754008055063366947412695259837011852170729853768321525952357110348651681875672019980843394477075267591901022426583652274975589930601670138598023342764631836825066537993659506775547239166507808619734652050705398885411698021981508772047442366749749666301319546176029237581328870962524767510045358434940424111282062993368826641431339702031707892863389719499086952052565641514673330080446781909023561110915029404978909145584502324626960595253350905445845828113786809502454966486169896358838460660226189568518111246087138292811306095916670542106482698744816162238580623065725166423883465157543440268341153140747508374538659378808921901433306873940205845684105695879224118145354033842149345764430290955356477812134672650532885440861782342276346709323349101930604806805341571217347141302076062433005820115213335571978887126495802488065307350190457934350046824681329890037807085177685507524813179907544672187335938916187909861208943328524285494415780410243228954980503776465478878047077896520100051124388695424833541066419129069199422312568279754036414962593529909648762832016402851884759081101353735891824866521134753560206818765167513855996046434674336227176363969638604105939713863847643938530507471856250558602606398975566795451443310213162914863866750722439628820779874138824362980098352709250895311996051889984351855935096064335426812088950056914327597479822865035652585954308980175407697240416055421930205299240025398591300925608592131604080305576658540269686876645224637787982180003475380263201120656472575212718879039853851479023395323217679356187324058435266585549446104139401711316282276509395399765401295302488934778057739657995901111363987673539349448395766273970455655308630992308481943788174835005796870779199974278375740821838219134206713009766559915702443174671425472592944744631187333020799211786100855488175229743825602946489222577821020756808066145433638700091058439604014557171122231261823008007972237248061917215652949324686233317623500581772270351361735576311675330125690976464175798307131854492166369096697858222237754329417414622799515743172212927906233401635012886240941060160863930086913582901859849478667204297446590214204442615129171125865323302200855851359725789219292150483166024591238516655729384729798447430018455315977412885022230420017011353331008960315203587257734218799967812224996431594499140527691189578052812242737658462932575658119444631099080350333551912632456805350768834784909643564937008935304525322822294556586246893615422215453507609959669563811572310913790556107270697072385368881749958684928761575696770973808289827966321742479013962686160459640033573534256223731080266086806320721847345918112731766334032316800870398431147775636417647225852773979132402995354511066759486175692185419759759696851531900257668693088855138846654186926618519954606489518900207189704149747772492902926549311814361372360281918031075477843864866124196546547111329452959297020453213269804036243854331078954205991940887941977158491288634175547689649629603623120409473744847406709832339427454166467653524467927388979747285780309803615758751457778224546216304374512334266257185128421380830404745217894368084969370526633981892694165670783458287922572300023049806350016821911730504838314986174956419251763499833434362641733149782498988734867010728088342898018816533917140397078908327156331100913126377310738132194469419150143762939259765065165143884274880095478723811372091892966144279177734679089372604376659315922888821689496680532397032118297017302727939480761059913848242723208497193696380618549986829989473358767646060772382121826470911142325664259174980482094778153475165897559318685990569166505990422255590386873986674089563698476660180627288019192168637490862035751504431112144903776950313855655808443714067440309718387880943212395931752014060015813631313830703584684628539066537141630374854859150716873571132592929135644203545451422760752072393114166836767359399003266255996042114785794823426437721917830693382855791638060245275099512075028076989530772096912321364486164881570472347543372500454013157242398549367639090772081119687828645718760225214188541620900022368728198751122830309062877860786279425578159471571259704797767947192053376922790254962070792500392350973044910711156793052313371416262619244944466352772873792984307563941349696326911583884978731714717181449826430201212159705846665516531252525890374969944427052035916048233342959046034948869802763628185300650998062015463237270342655555167305214150251834750778733023933709902403990309520304171964523362356592606755554464292582807856032172724972830788949842746231852851521992332302088529743224841241129708821836082694725404527406337248020033940912056507177260553197467930514034262378783882828363104165554801386708957589452044770946322737679449494287671645779447391607691305316751138814273459389524690874973845026582102857187312914253696051323023490544465844123743757731067782606843038688465272760084279918407068798101225802713363392280606722358128177417962392179977056956035989724007373678114821420637462517548861490232341873427087241231318375559373452961596237022910999298908127026706894532775587634506055176904414820756531938785559435438895058899522671778429411207454797764015759228757772292031307917877351742771335269982934302343739400710709596624408705298612599620771440928904103067280593286913041652686875457143098952381442771793629585403599777750174477694835703475499386226143046953053199326261497702348457731440134823642453887957288957905037503193854291680757024119321897094919399748069572333183240257902201953683932548295881243658035618285209351266804525128584792332151506104286029322300153353891463528786672367752370974663075495570793049085661339780508764962376173753238655024476838881175335512797777543541890358624546848087809646719348149627194178657359489633691238813451446831065231197146609852464912631439665772203226454941343339231151305515390291277182456615450355864471612035836130640121522790178930650835486497204385915968885466011155430508533939681700412004686207825678877295958500201326207248971225613785482598804429854202157643803071414610432052864866193187257320867997880823690358533370025864692223449613830769921500959729299138198985529991412484726721514501612389953489649993379130675648198856689359606973586559442613637243122271442510567527636219339948247605176945481009979318273963526070436030726904693483488312606189034339557769231589348924666031117875995153694931118931727254363301315695584390910371299833321238413488043619765671404198646307207290702961175469127542156752193840741749913619959548459515185448126038120861857435871385077601285349341499624085868276576319713603015430003130612032591595642929878151221232999100960739593120628563420213163856300178798495077931934957148336175921611853399843993370583717114147953025343127150825931924309996700879817609435938155304196012792090679706575210410611548091666996810019301013887991827890624730617981554619501036300778337314569441003308115469171690700721065446328487246855617389042351770635603995754808270718334068370957105163343258649775128296644030451845046954871642952974847165892319586290310284110347638357185470803899702530097019239744292281304850917576589968604364204306260179642570222583401670083384411595164557926126499723806536343231238726006372765638960658059468010266195676051740531147752440036083031674297124734879559641428373553169319269255006669942930262084329676562759628013625628346821015137062284647321557422148081176217047021396246989113122835408961110522345861787373465549487815249836204541261462036617244606226165293432693727709369704779948337486761019049253362835356102294755790273565196061769936835916136679787138280761913729282480866855923981816170900071184495987396915294763214891369972147141331447417296753028466513341538251630988388443810002760323108841261885445390896746195248353633468710683936525773436269751657544385553186054778361853174813104904589705007166356020636881341395974607527184173918691823022545831558003881747218120104382357862207057497448181944144647743295676260567021506410688661137699388157482091266695369715532172471041150713538964960462217927669974976621447848805115952097897938425294675422163869929841142238889431468812830628694683332776233933740225825169667925569718741824706440771469396053302589090746232534708307839352475838588522106570428462004039620808334700673811976725074666581009794818123770343993859900823917333814438726208013317247542448282244968302644024842089586271716156253161424472065556093402736923676744471033935629838996172143576516925828621823344662413799126667434558495162761391229444912976140092666952802118528400534783912389335135028587614273633667998987586567063428613759228054825181169966805173160573159134317597562894276664347918079100334796053917636118063481408315701597407119372883230050773709477335545078120847659552235855303607441165687342797767206985334351640058164000157050998698047522866182630434066269066751192014755508667717629752887898526266876052170872758469569094363681348321973902009304465174938512697790294376753912435030289725092816369380456343415457149897190154715984108066381140805189896873891723100179769003679271591913101958274801287464306273200144380448620226202155930625366057551266993712860018968911327539761992277306841388941283295946944054022260983317904638421902690933517700485600275907895694593155499685808064190434307465530980525728425781683257639932005173828824012024116702245374350200125232814438538299100097681975538771353004524534224882918318654227487503581778043690753214508004147809404495837480781017883412641114288329966996104024653945101032562855499648059435551594710464812780699588760649303714352731046741145581410749285352754579638558547910708797182736182565194234518636184694010651280834024368248319037327288962518538173919786672961745268046547462504591429538302027897488661737228309718327623534929751445164209551047974227515900901217499849910848473655141273676077948598266993946725220476796890109775036917213802726312910162963501342117490797539865580138187066397879948681298940562863646207386750635130182519693538837225061555064556254384625124149893037863213801310666589764161251773841661972104728095620901236229333734795776525892927405814570547338986329193952330364933041414728139750913156311751638998016521586300056384195793167049304973204470780858692579926389294548459843184368549540518406489972666694000517414747015510685566925321869049420797068526768199783631659155634130175501800202382933150402013812784118509500599907231454851627427930771532343859084554720997046153539020196970425765272361659242540089178914374807089461779104872814710753933034097834132604004426783134663289856068608226611867874050838547634495929936304038687214499192277397682966798139179564597245686348643998915489112531511157161176593843306652509286043138189849659790735995249978999502470043791561965767532265853478952223509537798878286910215644428503152527883259970427591559488577823798146871728001611764746882645542272322362530978544164514763966954255745456764579319817363802143683036274572541551077534530697586434240555211665699826245156397517165017094103472651292266504244061851628453616386040710972507088053313248864026030748451784450789253033849634711997095720144256148515840447896190217253769873109915892253975276543148487956425966075867644861002495347153888178073513274099258481089765962402374369829685487498920685239193166365130467832751835046804228430475170756015049360345069963231906614689579132514887572857562229234986448767284256198830686753478716838512549491054851273076312563711923659079600692197148072160542364266032163994667771531968729031603826964269871328301607371310919421014597742196204297247126977891962641745194124499437203610665870611795483240586482637472790606841471290438913443598784794148475419229064526052993500851682588012903972058470926501073689259397307936089692999956653342714098482424543359758819750923068975042917836328787948002670202484886052703196318284553905469156572038898328801288097045569962792865582653569392353891498842736215311155163706471819098740515629421228073039662014177763932771721903070058587103396244269977666232438114485758929923472516623527638634432841584649342069533470685208481740015558757995459835714438558884993792872555910769726938289990533197184816070636647956325459778833570394153245166648813277885263992527032114510432889620500477363114372784862249601275795282729097083389776141825418185933900493320960096516852388370823160254763352162653136589049983215752243739363298015374589825174767361000514725460662037802289642040953661299583971331697254992591343353881631774990019216787313490458489728052181834319773535772182841090905502183349011489448251788813781065356641043744097859561780758158141420045772854137283201050914751613775354083190369838871098889054086522092918817546791687671534440864671640909522640253159948716736873028591929565806088230312653736689374699196922003361759116558523859942220663623249545875118816767374497458279480590232229061433743847315623362533335167007560005206500247598875144331716537971332733213443565667699858338944634140694389684662728740711196398689499064371579060061189542294980736156418863142254823726039744905453886029620346571169875153737097059840039989325039897486013937894797968488753651420361637594338121918783869964996595833844933645216817430961389773322873703239005721225312874616414289252780986117777562648094017806624627662223664064818826360558592905776221019943861346725531719444847039946683614661602325746212877971908269302600421728807141888351993882867605330614006114124938480337279601544182125497564692383048766333132118716932249990778760827983310465198870751170824661850453951196161821637552834386226381544662331279807389071788068095139431661806563671885314142671396205889884942232027423618524386902219315710705005613932715852185171484632125579932551349350934364129050363893461203404773852823271134333597811482086825326888636392159519999432728336772020839068553760322505343011602419917706888294866955764842550275739600406966775020566957831738023648412040488774319275959401165878432704580247458498385493938372483539612264377118330460563511390804346399249691743556735864905975622176080615143357154363578049214280841429845081585743427829447855211014996091490120951251233251777319633534536770456920235723814848026226552137414449073148794619277973658316317320658473068338473735493493507646292898544583794796096773452981909987741805376978810671287726178840108017566862571320292072543704703679639420270207293491319768036536949513529674307169477919445511932991122348516715386883759070889747350402012955326919322498112667681272720771336157660782771460313650288059440365687965516891144826205338594026033383014726272631557740001377609235879077844377138264620071647659187874280119530874414914712667895621324080271169531349964098571644408776519275533982450369693256872069291363774549537345969270374182787992044008049048305030743401216121691105511728752218874686446225173559467008723559601389546788857118544319523423835063951019349724281170645883330558211913755147249491074287150418078788732426867095837853282045331288329254119231965669803550762726385757096914823661220666247211934081161265293010996591589203227013624479924706207238046704688533338814346574923982742929751912800741100543711808436349288384865775293567383054384568480100780726357446348592758073423351489397654698124074376836460180835044723519174970606907939135462470239533274316339382713987195097534533162416214675972203439010921903730508464546911791732155369297987347166262081884486901973120239196049744467765154820471435507263871852909722027739933670153667251057173341449475200943274264258378434014259743991922702679826394434148375074397810498745017391378404579086902567246880752009314739015021475100233910588157430564444226022560589144178290980152555264893030273056612006572255333501528265129295607697585792167374288353686884294706302182857129853379128732702001736639695973378961562015966843204095374898418312512439474658094079654199504030292345757416567335427098435913609412967465258048849358726784386602245488897739512795041624837296435915455127253274064460901883325595953553198498924452549681208001830159213500892383162998285965264009051066132222043001485100180429637674581268527078153979780203608233019684408179266780456441255602787981640015148756703204188900451159683651051799790847266684716625393373249334627989265582122400306997350422711063759185449992142442988074443068903349286785411669294118760429101302639508654011177659666494721475518175275306404967638878116454864344636489585931382352945116095886583779742729506449628344281290862399839823319103120011049936207432188113097748394620421029458840200343161539667445192293271934342400138853084343605228095040200459074988360322100248116043108908108072594074734088716809557882643625351028122791766848051945820804174039736519839589318317396539971774296970598837863366826280469027803809598381711010462542918210447819049198803232054464979511510842660823827315047942649583435688062522071677610738347653678593567011225421574908432203905046533245337580231312835527066947487006222152628940761581232561348498944021893099415137272529829148876566793750646317347111545312171488216935434385968071002992504944405786260366273164681003453690645671004888014155904774552850505224693846878564994757028208475998071231757908256640346772646207833168140434870500923554406161699686267721213425588833186833760983798680119680012162405112851060262807761117175773284905854747794771153662114446220151227365754509924965755740837853547661219093835314594796787849681837245780506910250585056722446520463040036041072717520211360976057754019859838334111487095558738442002504368375312018814804908147488025820614863975248944061251128552322609507671741804918953247446070051442660510805149742549608136169024561732338378305673498798520613831306327560142497110986414628890564662393828875882040450719810511312450361227143888347121934775062928842754496861390040885509738496513401684973106042626967737715084489641077742993288746537998938579062761205590052587692624905766234800066324311245410736762722821681480248303013074078735291212287363729017669641140525774420008511676182224026434873609668321604056654271428082115242729970957389332544193443241276400703982421351602903074182521069104563139884884265087081721577476676321974417077199867808644568551927072509737208294923575997001297606711512085563003225327785097758628123113835513823842143867756178732886929312157272259747017078061055108999146820442393389969735379848651905086544958031555690947540450590308086859808480485357257333824452906812448291289425777219627803174192462423281718814542457960606398004479874733201963889565555534264949155751742517802476283640995563690534513903253132687159354596717687326425365282072726110238884428413701949047709910341480713591732188091846002716275301106035119793050269045915961517043925946891591532861085767514329839827632515068863585936458776230771445556128590823900774561975711122691812817801158889393449133654384970710643807986434071559848847691831920337055084908490248355164990017193421661040610328719880389332581943417508293375077377461834137703876000111164776747224670625069930713385528552519217644734690769479756529492750582709945059874583041650798377079341851154662573622262723491912059669955453870677997226872994652226173248511019862327441216942833220098219746531494573245318069505098414066482176382632934401641857325346834139419132338952761432154591589300182701736134819847830838931913485836183431309250443497632332833976172803855550129903744851001439832128855779467631136913091738571635081776383779391637516750846880454242594254363193425626909627946426511448400694065969662865037363945602858477524001109219534295360815044008624446341966740870338806809806467982397699254442490249848082117554777702881513241833285831065070965601250105380196415695793412395249911521568060364158802523604498405079230384611308561753686433209245621885438035360185331620853434142341923379141966086297739497515904230148912616415142540569540408069641299986777336538765913084016937195748077351333195314791112675084520008394369521525377096517841051688033333686981097451299436955283606040717650590317285082317238168666178847986618506071161991669384172660802016307584785788629015361856541315848590796399330100342512206612549165344442595113574253510475155501352483317003879962065255746998287180542233372229976505964893515342995621146867841883810595370229122583866108471957427673149540210181916590440477142058771663231373715864053605637965464975760106585151515401264822439104884123996015113361779014544598009182992201369531873480017013902660828445111019008205042248792482854980195840141105973035051334309552453841775420631749805535325465935624248823661875370798715348262562497268469583060434600980037132520124248023251352981234831039717680409335701843980290138816587106871216911325771399325174471301307253805563251329414807823744276448706641969218532361191253414414444297633832834744499075390693099244803240412090872814918913705292066073341003498330778821821962294325182393205798251353290374190901523215001033224963912204939356664021925471911396050718393083163784799130053288697269693270312400419286355207195402767873812215748528399420999416160494930092419310410875572625284477268564192206917633051102034040493351005684275137088919456801716319730572404714341945130617314591742373289660523532229719174481189559825132696362541676602564226014548608191686923404967893007487210571800214559627301041008984022150411807539212849719476808224194701340481700663381027956320408442510694591535552574416986882037382457262307950917901190776464931983596551882040483291677136480586533293796627325945896503531618196605099977906598438172792800504728155239317297477539451007083960831092472211453807060532953074357272269858976437905087780825461744163488579103170503907814728975504724494302646074544940446040083757286848203470366101660997881686130765105428587655187100834542238501347285017218605862077174073820988923034264919211010340977010012884155687179030505597505463335189198319341168253667283812763837164154364696389990273111379014237682300022543161534477624587030180622177308517275355641504007685540475050679581222576680724690825063943576801579135637890036669768229282512040217712596869960046907204075313147811615484088764329030017761476331701464599482637876621873425787414870861120188517874875167220637205557977369678010674419763790652719380092882220374088226477825272924315727676388384455090108316625808983950771802104737002103926121924817896647179112503021034075375506442338553688852299034361144508385255260168579982137969361696077630097702363593443221665507833130459349918459669865386345098023258959261456821323497864602450724480336300096431170619422595624598804808141498932366438416034492736393082857375873613143049142423145691127122767985684953632676881659971758616395585977078489290902910547918204265920566855680309345120791867575038700403005558669723150915200761471186176563804883712044748158401084432813038068209018111960641056392213154494654018059347913933182815433677897301694623213807914933466989257595611211122393613426043703962862929832675565211400874964091290962688240444543275505191953985410506609507147816594365446280392984122236236466473985116633751416490134967882266252404039377366357738282605742830885651335162094180969262636967451907244506418271241046150636730407840801645423565444014542841541773995078402699423031274786323495278369137545771060009670540857277168539845147351817341339422986828451370978043707058812734819583767413909903841178726778132026028201329875690148074248031396217958322913725591099494628552904774113345575896170001998742661925869522387838434870155149374958655195384437715874274628245178824820514308364200404184893717292172582808282992980918196588605351805782942775157769561090880966566419774585957985960991993472241774984733125291173580812142063011208901477738794661294064041555437246113850370737643651140135989611019665697194700642898708795987063958833600615399824887415221101311060039559913924374220329581069267697077625534492511514510507347292699045325577245503166825598575328921929232081272068962971609214602738839031788899589921074825617822387576731964810508772280804525687360450807026399218263524781777633811479218216878812903053705489393316448429343621303109172988004596971036760862039886569381612714351484817537241413429512078832162036679597952285549113572554567926902052873540402675196167552395427282105062977483032528529089781136316329891647552703204522375034371857204075074204012900624730500176269404134023371169677108897836878206736227111757546103895218103895922055548925017973454182188425444730502628412160136903214828123326112005505118248366427717542337978129356959124837365278249819502283037682975256480405436250004631605749171996872806089103074153270125452140222961688525656117175624144134048850577769920956281767043761664274200001957476527382048180205331467566741184561292725236732170983659371969147220234785369217909268729558493852083935489957380434843034774034265796941483055876766235991612145165821153838351243554600951091397892962056731158720537269815758789710836192119308168862590063565794501496637885066598203968616148896308730175917192191644173506258469486998309986514609114867756710165450705988818325802342604027594717056284796562843498462305926768341956662246160286838709303712614316602241295719845767678298873038902571660732369264290608007777592951870243549818745718007180728391781895000011160045752540664370175959312883206506069440041957988294993750895528005255357016750576115056250146689174749683990371699924664177814600065852779647942041056059805410471436841726124836155491282904169993111686015971130809283871813192781150125662042554368244585095932594666476349747040832292866424929241697126803019164581293606257889563871546209472923220516446482459406170625217312701082740282950283064707630215149719340693452852217128887050453059892165110036547958811896688404040722629500785821041029582853624707381512924661207123880807759110082154375582382992856157582386711078523485774847904696684002717736615722576565022151087796201054230496003733752430203712657838515110742807117360348441681710636274194966490607116217622376597836633277438851834491504605327007936115977289088646421633759305594448596378159303927612630722118712571433101391971072482890882458563315734981651658487354786724960102583050850786642082483216527417074312695291334219750793591911833527204105474564949196081484608218445291883254635061942333806499631372261121844164490148914913518100248467733668397306609079937124133486562199080208794015866396914117359349336087015852366663462736475281360579809184837410279636800693997012683901005328495658832481434868096146045174908935635848367204388784699630821038750674376031820372208087059016570025340423475035972007871605396456484569411121762478440664686480453102730398035617285817861689891044130595172362816553578881638372257803783501709879380771062619761024189882656954470465707766071071880776713162439143840731552159679918655164364747838874367498791285853710458252461915884536299380320058792039462088331175500858685638190208268840015177029555375003463376621388255010280938280954659065835490269820385777258742951421316230953995813038639024989071627166841851781349160279674395848581614571977115864995599894763363590382793372236488014807948639393749539454073057800959812586022656179890299957349253642297666980869176127239428964781117885893064235108268020433845945490507746238336159522519376462949015359331050332552934936998509965561888846433539695304041009162548484568188169343977219116150916327342920820457227301119529009212085195233514799636019563074022149296571038792116301771563416009758049076887582139921981141018888887286454184191091566797693308855328278551195170350036298699043002649840641978567040461615487288356092629315510143827703243164523724981624892765115472120115071126293190737663110716802672890802566687578759262517871581920378544112364792778841641197627105060913570392321597563179377634133772045038778483338294083344181220693412943363097622198998654089030498696366138477715455447225529545906359004527651422250134681851905238035850839630266255421407151536695078511139199754530289902431352570317043453481057637465414265524388851381254145461345239483730255466905633288025038228430328394510735174348301736408138038824513296313224552352771730177913000694932081294578097512046922081015895217178002911816919138502871265729552111898627437215803883125933714666228362361364841151296123425038019050634022684916125708169119655982482317186982364149019313569717141474253956442365623273250662153763415021717105644995145664908310532126636083482734353032585641321738627914948308367355699466576619480452933286962944412625105873092902138067115697875016931158681249798794539791265744975814845077568994881728068759539824301051936492181970798609650343056294710096892657339259633666354535675790536248607664630820224013513143029181422588313077209486173675951901809099445900631878017644633686956646751427565309736813697371495989457994293685759133805267850122996860454076933127990853084264440539127381075224678912626613722332006585351488800486147842746357813823764387609454255091047535050301350184545674809800487440232580481810909950166591265372380206120331800409187634976146585889192089476919341297925066181820332573123161949443728722999017281000890070305583596930351368190103798384400107398402169300469042083593146772305775519352740723622111211755615314960094617569456052783688886801794438194125762493422274487093480681605528568810631994580387159063672783768945164355356721129914636933803636943914848197994018904661425835359243515514268362916811161512608850457267960348390052451713546905323457367861376618950438572320172439393940595919673174917587756801330787809159651629896637136071794340283276089118619469151861188622855193156914346391411172792526070933418905878283005500327788831265491337986667857191676873980559210065413308602353290030930148132291431689834410032070554624155425800048125849911162169792207380057516793187326398437324457907357699598996840492034539116962351579596817576505814187209205665476018026652367417448071376199970119137446669544337822618261379987879648797367950135597208276509392316917535480267118784861942360623144113632128666873628101171249343331672793265064459028984628683079159021506502095632247953514778812813416819990334629551892548548137873648431619521881783557673806127962911404274018408327105541889296849659691941414180445370862156835469941621775427053502311637414038187397940649606342228820437585441017876708280894826087762945628101320405430054929889805912584537921830798433755460160905729465880646919830183456872306904589504151659899263558314497638294378808764769631280641368934532082839328695042869092065029424905321885099678725608160554293371875080347371758099244443993997808924573291498175373171413422670721338809126800799334211070464780771513333312718832576196506298145361041499626591301204436214620211786699096462643878028744756203619397709475486903975263743184143259926265516496062782064913056313662534366068138112370087798685180974353591919160421386889431114939508567591177199208809567273960466603588267963413237955383398278695614171854735347669415501067373776361736607584807838415456772353820819749125023025580287656000466095484269477142216361062417330163246612830254903731110236704899957613108296857436402934164737062364191835435087895330536478015309418438154804272737202201278054007228271721851605660589374409285008707762717683787321924042443440860617233716625190000021819233992399006449295294691795706169023372402453616956823905215590872754945515163486922924107354755328231173558174651971511275622696126598278667195237350262631263790067402329374782580864285304814118709547749026158606356608821632928379124478487275614742703011886902597075888741776279835516527306454776169011686055074039147160452906296674541865102073062223580724389606294430391973991893173107285470377413229197688341623623341283170202254438860506419005760631085251676260513853982954851635563048499140727177263335289337962790840889720640864761982270190719395238281661261743409153691570486929386198523059647255426174171549741693832472620342100096243345364805311890083031080957410284875479985350908736555668294508695866582805624116680981767015727699318088412316852310891277104254627239876455462144166475671823687021197591311830172676368745635257038275751922254074552234468919868044438262262137284506979867536204233060166037427565357946350864825594302123123013295327468600844673194474246367641638290194975379756955033235517842081489160459478038016840909411967089742024165227563448616418377533394360107866482630027629823101274286838954306010672132160043799363566108694836547392679441628739709945569302066870988466971283999472944458202548901485608242392959181264563913830459694343699596811146606301236225779525563988617651266366487944061507021178011944038187028160620166971451704042643626023446397439229029792603478810373048537913387813085789499841485945629360859633729707651485243241154043683049804713620107164916059249819135391709150331858874845361382291000513057122445201888065614534031761905150956491373730792992282395096455014175548988771229462206197944380017210769412860386470770600062530868133733245530732551281601069793263977809361353628944091511601937765920207528470067643224404364759123861363588928191502605083632787701847492745908691188430738366965288648568112975182120240411917162642948439473363556213480301928304947603688454919209934117283261140303548955407195203749933561123266755773447429613836082050608138077365498594914551402532340388689461903512133654245608329508540335141282922567753208465744111075908065664951345882039400085737930413234949093948022388887427315286884498180209337303121720629819256806175536335399816571714692809194676922372195411816275412742484551419323655266620500164179098421902455464602857571298189332132313446463895166716100899551163821716720039526328644838450871892147954599398176773632109418718989476664622800758738950552254359224570732904912097665972439901265029304024364842294338620526053760913844143922930450967990983734787710084414451956360641402893657351123401556268900236429289379132455487732179955621511057059444197246570018955100600558228914784667748383528525876938083029746325617581555947663831412793430696188157176600254680616443490175400750029162928686533364513530382467238994954811453480860675413924611017231112585671377117595470429361963980502827411458652127810122460250660359890094806347562921477367281640727311419605718575776231325782837530166265124501518134518394433648337993815812590146174064646537444835842551435760119335448609016845299443429509614287712336009457680303708229154183900238544407229123362374284043818342204056628810150599561861889517113763350045577057297667419467199157560321286325444129287477237728531429633129526291089754395794879212133991676271146489213402084894953132605926098318094898375610089406259023590688281457405862718876884561143584200719097224447246627377426476237291154387146860983667049706289317911398654803789054951724611306735178582673218300698588690514904440361077073894004260805220967616873940837900732873616003236675881550381336681835042363680825932120102056809884049620893094715193341781945796552867451151618447468451761124451455793785084720603325773473352015403295355438769159992292257939805326568580960479290683771477975909085815608732184794254027690197923154179891134174448334866025530855999099590073578648666287648583774348628210001855150937650841287996839746410019316774165033741088705759364841215283667047519314013249375957572028612519395054645671623470661076402979483461666422695514928191000920574754665188470422242315593028893460907148787420185533992704696641407648642873084977462856880389677587702376406797330003648866922753535053735933144351770579970162074084562189893816198342444799744146757533205123290731757875414823018655209987441366246299634428389270678565719121143554614419573999762407596854807802748954745914952240491597391178392161946624885518545209948502838028252648856709316056623609872733978040385858175415949471795749545072865814913882570938799854052272827960418969716251607842475431321374777713107285353975879718844360479030961348070515517721565702482485723021843362523487839919125780635590357919910336053665697028571971324803587640631989421444137627953014803606906787712261337450301297299019746153725588146138977572182542056946118879649843900832036833938640634913250642435253378277049213595885999504808004021125003834751288031592019103508031516733120642216930638782559996547306011466344698011261874025428035799973865719007671023485851354447098904470710657193567060312356925430358829179119432199204940322574445327819387685501448929971966766689280001558891175321316347854168697542534714337915815949667590128276894336492685982707375725279942921401019198461876940893141781258509866934187381546308161641097204251507174588961278812723321315108657519619225352552997711604857581292162508200330946394561794718022466900315612969235672782032893561950368646603382276771861872801624254991750736081035633246607417353635025199041843957777500989825932757450673590127227696233269486885346120064710721959365146500553172085481436826899099631957466753487452308208138566722637256298318763731592075372844933065676627193752402497278446586219441727966749173475406654878589371346247032987987000220417540532516202124510123370959567175412863459126446228983753924679363735067879095005208999695688706848195053658340736732054937864887360701153932255263008922833038927186986248808020649786568836832484745693527367304054742852598712348174460450615369796120519232535025636229905618207823113897911615405090334493350793460278695611500192244616039946823501257668309440155738855530594382314232290341192681301952559139412521235832467501601928422803058563284747746635311570366419402898988551416884585055294024523131411614462304159279842382337168289022112285534644599182855851303957771349304954377517137587840605484282330545620822082175159672201806044524638225568241056071269617033584408694815351096270285245215567219585343987527476764949570847323916928848177023877270662620301956186434941418588911143404018264362636449907203186120584969251190693907210310976313124754008799781540566654472536677639079691417985716392755994327001621889796262716067317458901553550788524592929527081038744613607369301918841455050736461283876091628770509978150004754727965881283767711186944479553834954384435369555931753939347086015643575846338768311323667216970774318178491392958727158166900213989737318818525191161106852866365882969399314098544631940115798529924161608677772628302610329966869680101719348943900543112532700044617041292136706950734821884574217971903199815233070727972633704607684251045441769112028163321478277394839011187184030996164868850789533791806508413131954057528250485374749999199762381809533954109554745973372391789131396879712051542248046352661821124087037674167604695076708805952117677638059522590188205661812129172755988926044105691933761821152056806249119664631493744099225776431986380613856660240957646702450196497112798577365176007807466042481647100654121454779689958326677077220613721052775099114955502348187073520574438557915186562914918019696341850297919809918140934914598963488489023691533102157289093793436891464704540077304090067030140145193442628289407322216033209047098653036802120399752659345521055160996507220296845604827814446126301287814369980848834363927102845212576075947757913500794384501661275843662803114425891621352424272699081173516726423801079845086553726084109669070730137288211558370479263430339208432584581196986102465606321536480225991015252655709440628740213114966415376477132325874973164295191116339581885475137440698129100228116163320809285250300192334601937782969035996741326645282730348848084365571000722654299389803509941572462724055940602573533214276004327248972168049047283302045082446906152908150380450500035118961470002839745672351958093329480957128754724143150910539214626695315945769547160677633562819534503464818209916962950043542612518569574143418013289072063004241786967737688989811528891170730281947800309243092613211037512574429948009933674436492762788051294185702813870435661713468281404990104674497042855462271844038106531454462153201495016922437440760300904270467559193085685730960239130279477340275805304675296322571593588308430427563616035766784247729432450117193210495740404573545863926710553560061725113237399477443131098144630759909026209166119012410990549506635151939912078379366163569285683931034361411128589338610127060390734611749854559376001806508836940464461593259030316770587884058423183046096975476962325729340793037801933015302857513958010305220120991749879297877246977675197547121442346349823062151408789789838683237523483598038899460489316418020609005431611417497541740357913663607805087887491852813554652270269722596501304455616591772449322270011268613250369620398033237788098181838425798597098284423098330844949941919539071542879669733505260115067476662736156512432924229945891498964766169948210880493524603279108713668824170424397515061442340626560935446483656335293355720117643601598102558851243136207216939478248643201423235133247765498852130871937061280485029607345213814433457522244412041527953281508334291638433394560141818144462868578624448208779152813929916274610260789668166273616891316942770743632941527180059321351752203897027498949141434780793810443294592044472754123951964108837271815833186603997819848724673365494885337638995778342567770830052813287352981246961039775335395620272412823552559912377473526549363710002529830702971546802923001487905140284393769519895662148174972717891260105827268704507840538380036258874953656222183091462197749856938083220342286815008876360161303704207546070696058643601771339647583537610844268300359009965543947349199194478071970045828179907215859433504614258042429624611317597336126373073871261442552437702547381106383476835762427625362576382188336378634962400204211850784573687616660754438861071803462147519263177702260803251398146239938897383356003713354931767922643412097618168706723770139099633835898217349182771184498999066916759191164182460819745623202617479015185513711876695787484418399903681754564535685033709675581822533757051066387802552466835990899883759645510106633957521049262921977405666107944512170564854082763273437734037754980819995961446978361607503136544643625343928606348071010668774407416586312914536317821505006060805993432694836639864488070596591396928565943094768918578536882237332575965060139654490139485283904110415894937650003583781135921991667292837515554059249024405289256806164877489486629258738516395619229222347488139875390591228388238479824530395417007521585443602675450474177658744892625549937732841149815172062246758321182189441366449548389133593823161799854956073919263979051018588123184080496968519408457408276294322216001067291058073733918044258245717134127413711881485750975265388115860752361178651498183989907561353188057747679509539320113160906633110258339973997772027265470870822721094045457742561097348797899829257747703192454350398671875647259628604725455175917873502956676604578814850813060190309454439895974667612821584429682147084568746912651715565336797770517030273719267528555318930817331525801855766953224082395013778185947800786821160907464417827611856599469479440537172866652943431129594382644627867176006106266933918115227390406800364770006589872988069282076151163768139784113649074217130129560668636551262471834715322630104831923239360992370760726274146862569702887899500597768579438431207067433789905492614339573369429396663802771695015413791835863379819388912945161907328561934319083397639959234147930902267808354660745170350519312246387931919296922894241269530484386001329073467061166932448638505079112970204491160143182451386752070744383870926550235166971221432234244125795288755807179366099212748010464357782411004332254747433300963437543162481526494806033708874659515243614797237513980329168251023455822532504879051559310940803052398419041599067012385382379167468567292633883643278061047629424556135718480021943933536769068113914086300636275314795648477906081522173477272441667420938976809573110410308271653461127132403941879545131984815219598347315308291726216839314852298107971789814371687505348442725790253626729018728888551153822031265487179877307282404346215698416759091669834023923878109753284336982821188667082699996440901259652010424640440363328500592379278386610581998235989383744165681695716751843490902314433822018951565524059276911044838139680701316071047939382656652841779988826540403682915564050896614921487279318105717817627071936779611545364958572894599421338481120406205789013667666954670756605050628048332196840235507247544587204652853637771201440382865251381370982437876267739688644207383418904668765011423758512623661908656133816169937029081879196824848665625667764509964674789370486185100865955170665884248779909964802440357178433334078617619994344792132074114039811436020723868606664840620390007760292353860166192103997935872750576112440156893299213603940052869935545389472413446953245099898479040872809977549574758109666804034936448411457553454243840214548617320396840119017089097667983450442599941456929580711022194510815764415151058631261991182648001130861533697348332624202559934775296669014538995001676303196561120399564363965547465283679445239669772626682587396148509354742041892232042000206207978770538689614982351681225490503354891140729144703272877739359758810621114464000604366478693158200137757286849943095850753063091916898271191637106833612077434039842041632161688664937139689245465598360702010612908313423921874266164448163568524526861137069615884805131489136965383994172892317290439740612428564496638147497034793843787604209115820233805663092365925996075992958223638078864793200575007192968715891991276956925990896118630441348600587950185450345498652080210015054123951472579739790956365013359207228304618479951552116147198628011040876159951428386913575606215182274375591651403703352903064561651738935640376457033914318357561645751964133917676886274596470831264017022409390215386864638078777628690754206804616135144001466250947991810908883679674903337458740088247635329354020437791128240551859022097819330577319485683750455992016693666664041937648743573048573112038656316061560937874934064355660282669197129955322102891584426293591767385685227406547273923707909232556792620049680434043291878766755273374921418589926270223523692936709958239462888577087037714684101383545910438895519929381885860103319862804942418155586788727544739744559442214063794381626744724342669715027743211490439466810704507429648369914540101706929167785786441994834368710386275635243022778050232112670500878693974784519187547755832012931263522630366025652768221495666363908069307927260843128720135565175260562342930989153834343785815043370750695534730905772217223934765861237540120269406791704106770013082259118864475841274717019476853945813917570887419870038917728388627343777821538816330021495088539476242108645595346576726385279352556474445428101080758379360955732190783914674465050010342234580066921186882813058481963517824957619104650022529607433785692258349204196274961946570128811926536967165906764346283995766545917874106572877822256491737966063888007118204747782309023609563081964858114582373808647125384439226852073106784637680177456116782222360548544675656818312928604664207194454091885379176513835052244692819749037333879446948012575941957219677124888125715734564031163938339633533042670734770131487331588113610737780091793315137005514111431807837067075629584222954288165650270951895502521348344531367590562395930480180952365297987272789312837738739667037596940654231921205250804975058565917334117790996663484647837568381614898254720870914404917557153200335975739623704396750899649041429236230268791520781041391679358053288830785262007119892422551892211235348751194965102229760942168337835628690891244486171685965975431037215831752732974575326269145214613729122318746364648295103580327720094261799081106339533948701603529330594680456961960884045017059896650785500235225242722204930414521418520303230048010032373919463229851780929081746545987988004369012730039002215284635842106340639537502197430838191955226227792819648590741187510380104986959009270684813477115512266893368402112421626878413309097210159682678485419296517530981623253202132181790798861356437568718544049414877052289248989835591585371945079714376445881394289763761587755582442422832076391547756274426913675126656969467411515183800878370950659909444659583345103926275153432739983704047217255470979424296467783966635541833115437449078918612478969154279559218808718219396270630306776836136099425057254307877595243809753858600719923382484764716798595901890911973875245200256724201428448703286712518280292600662150413034995383792822037692509576483623722812012866917289776756717419987371505377235604913819445180060007421226506346374611416919380231876573542991108379496160720802858756915300833528780853739514877739026245920484096912730803455749573736618018562449860588603606379257890173630559242168788165657780719261020764383396882760589071469229783488625015283335920938335526677215286963482015224853002785109972244616413849209843270893433690469553329530188285303338653223369508388554559399990795362313254141972718952272979805173239292720356738455291428426867145488540369184687254298858097397082597099586105579037383822160463450431375332352745975005731067244720791741403001024075534270221394970835423185257379219027159246929500187873551728940198759466524124242814476029501133498458866635023054943250440970547169141961473012701429334572690308812194094216707148040106809994290942593159651963254316196361583933365331248158988773817982608197321068036199325000025361830562756374204082291305660713719150783827207431113025870725327654403509574329374067808629564540618516425007176964345281589197891058034707567627724400564515829004837320034132578015821135637037553479947517991703292043457111545236593148434482765905204335700016102810767697832024008903613286269594388698051027145912084874234529358775451970057803683388060611868623989111570209852402662892289898478748057719002316791403545807540838788356102924760493519259693871634620210752146671011002315825205917951205183158777147666773157706142498148728605784902199132763238901357175409550744387674102746225313217490816268160937365233504692679835552476325099974309614088690197891186253512523226589514984896674321968755073716447069264962434311879521273785544383254380680082535622007992133928133503338235117604785304806121639548755881349479641233055045186503089852244773161237315818041214462484724083716023822171751643927704402880046789892008112674324709297628731325498964153119427683752521691154434371778611630207187189848309982515465390566636753631231035490505530920567479222588784733963451922895507402604577614241793962717012543265928724323570716963570882006165712150699204382266133747531410954818329663083401041325437479952016379645199237932385452060958628925230092348286347923887008978334343775874754739709507086833583204750058938533485552704163271498406683272722917705185707985346551851715816435930005240541824222565806836452029176974199432690006862293202641584386461219209085558089786434424571084282110426734670551480386762218843877239791281086602798512268142491840409243014526658862311187459128861090945101353510207884777360830073381940576914325333274364980786446346554300804073990593169987013041953963995065614336841890294553191326390747790530286984924232125043381046023023663529295606792792048329936544764070656242054340093548942500066658082955179443992252848183194727082558972347702359185702308749702923378180240613516335559257867137827742361288732379000434640963430125572931533251854406637138443051886156595453469256898238126196792638838473517637634531407405682157326865124584147980225629176601701888623361034417434698576281611423608238601843478894054778094947635326035682514716242563602505732447322997483622476171516409656817329665123942826520832810608059012583533461360342739528537398863313622959484863057553811865890803608258692794738815415009103337652444730443733803649009864516789636566899458552104611695644848867736913145894072435579960267726273337066645965679587108408114304600386008085766771917961754117451251344539627541381714954727378001457138811537984177204629458203833562576331450653870196918849041383603537648732005432433903572924869752357005660189358457446911474297328018808832453317592805838781953470368372554040997119392110009258797631939225716078924939196141415648788892571565796484421421878952237863403777543700833272647041981249275608691354219373717797878142811765430179630404013187290243525731215619912818246489178844686360408663508796083434374577749416423597578190486850557859820455301390816571674419237028091546678832956505701329406768099456613030121509417197971448379224515748496484585244670054083134106132083769602706957256079955770017681391253576150628995586866488784906953521569234750041508510304569454841598612809504187463707022818451125016564054296014377765275287235426077281055752963429184850262895372658698004205415388043094811411555938081438958393994170447509394395808542205620867640992902761879150284632584589098836224532555343258293290405180221127382249503292427291321739468942944762092572966026154237178354616115127032283967103600857731235176223643949650282573274151171492354746430511594265904006428834811417433735852293726438526406787187876378745905513631176545129306017449502994963116676190283732702923221855454770481397013768615373345773375040603280387537995642148950827868563608110500978582715548748147489807675702800332264293332823789622644822309766187858778763947207813513213222778757030194115571642007221926858871642677025990640136512791793502527180232173505777383989813064931781716684656367641556971291050349015784720129155696454344702731988871765830977096363415792397656768111003102206683125775516067720924530256716126870485361410111208174538811949257704162890871770523105908152208178176703768085355906182238628527575549876394458139816113595268172217662072473074023817642668644333100200853563882441911708583573920789652188061520050395134488478069210083450685374027031208785260164628461065036764416547324309731193052852983899063038142629608868950351394488666266784504824001547314243175864086625791136215338378697442206457950214750281372922157043716264044005692212467086870687517918516451393875084871938215832864588294487902667558552870411975314547127245694953220088973665256462109555772583583687581052187592396810577001361168341484540495986755096646886734421394629781125364969385650427956066071663649570934444075140910089857522562604565222860468929674488062062196519354900930196177259137321729153800943479722331716316043262031619645993794812081642674390558863335790513176938872735748002040332834004447045506938293881772429221878543272347334678651703933370108306327641296108619362003576081521501924512162516578415202368329808183878061932744341257507072939647658256461269441060199958163857957596620730621418189863237237021513249558101547154301127646300696787980634769996576579526451696430902821189842461153146945580944321047350815299361293205500343184687746154609636351250710113123351619940888989471266108201820757044132439172319611260749193402982856786773836709091693797213809269281349460724806320089733979710645913662331110643169229843312398140667058268952985966547878666384702661496699114856346459706156813475383603122897137491483923546422718884452426876292526225978633467866235419537550048332205656205571457867462923845518735718872906439320646916901256178907662804491993931189392800885397913393340411019903300291525472173707838922908790847242597682736717610526814760109694096875188159610760085621595951664984592694733940105658268730976099178742983768138841419701269715466928835827272318347273883666402145978951954946902278455455852265347066062630707872217040399082797533707617782080086340450603280587730532090702331160785005607406292488556657799666435196509121781068802845603131139134593643446161568539628121154867662346156202303344362514663841680569101003333191718141635714184834386793591251886448830903877910858445689725972667823781315512965751662189750710667415918889127503012841908415787802206524681549916492122401050620838106732162470156838990409321670862496498544606899646420619167294378222545216388372187406138978238350864748225891125381863396298985519464826390814452032584983137100859910496839467666031250517005373199411650833914062548788539414984469774981073560947916818083381833454704991950197783149388891942976644611296669716018469444411732009556627534784982940566710026483766260270505583974542181351822483345515387454290465102756165747006185300754824013804580783423222590946669011108135182943613586624492217358201852681366361485643414026808056258320038117783696874594519381243515181695151053180630997244363839502393174124947652935040811504220809928670714886416328467901414962390643378324682986428433335407017140178897891444923999643261936561128145073434990443140843878559347332153925263401569483120059345846635241917724306398636311552229515244288872773265561250700694655970634949346376168772186395734265578840644271513292020673020084033771801102838079037888614609338805039891527469956341010895337255207774360347511293078052681803306725608970940381637563608390410218471014789232617482455879077993331874609865572247919365880008377777421397260860060639913972000362036749564525387715309340064336252762274661712615740377775145936026972132638017575674318465991580690425319868106251391703600877704542736486662905790407463850632447431701455924256338326243886692075945899515362071956975314365266764376494767673960706637428075126023999575785328489693250206766011651809186149767715577261342952611490334706142602401736066148540215131638751102106195300452609224839953645772922352769217757075606919286796144692554449667786685624520980508883756971236721334585409805307112057779259271543601418716623947482472687782325295763552804517132599702146700168022000795364055300740616838097485393488275394157074858425152974488737367572691885257251282870129081595791884199545151787048624519151130401651952221916198989908165055743838776226847806847145721769539186653205100294632908847544520579690568041479473826585095104347878797765335098263514021008238392202654662635711947666613503544348504609552340707708789809872952606232867258853178114357745956199860649378643288273539320799218152943489686548337498365993641387476440190091135591989581181951170190250242849060072534777665013659183712237594250734981484177786813259101442265654339647334097481332569829152891112456522612728188905262675676510283328863800808917637140411471795280645779696896190105179432157943515495710717335174944629189575170560456780050270335936777253398830862534586574846575099135237700531169074431311539310275735873625808740042443700036483459142070554591175377105213616194810736439023372765982532342517428668988765255036024629117460054376783182192800129130992525071636665895450539687692000756176395851535819445823636139235873182380173722229138590920837950142602812031926780613376158038909607790166566358353791762288540751849625268710349860992136386570089809318189937249141307473810092319636130254315413193424459477377757760452809972644475675675376127823230116347448310479686215459974776598888220761558172644460123546463526323738586720440439607616594943655650437864326255403224402103872542236444307551776212256483266329368100732164412268433731375650258962250722218242595909414083717124938311120237906133847253589600014860360797269994232688536941149389948082764533982211474208977348191919183408071383793121636438755138880945897781683933349564542399201239844084720327985264013411965433451608955814514634483753988674735346912188304584365685031306054548110801288935622230360002493161241006866675348650370759418716182455827313736223139053676845057916464964609881493108994012897677729249722571288234352353108679166842849647339261294879480392508361241707855323656224874415740505157219019988748262519775087965110417701686437900824395457854938904696375664144008232158911117174411521811220316333968879182303639561752003978901203989534472763953169750643076487548814398592412760845610261487688224891572441891845880486424131608967440080860671265630940920793126152720544758097488704450314689902936737737540045821013798518121386779788554588193920080201155961595027591923480269091397344053825770181273015940760137177605462027075821470639041016034508670423938821959352908504095640113535760128131154557294287357760064352042934580518336043058467420268604168656131903910326884475969323874769997443366105040637820090972513223176134825982764476035665345119654398869604500876368624549859298406229156424910206690171647062638145529525504772697014035138282840908800978431574652517583086309352420440601655953500595619921510671047301009877377754828705521151027250092407846650108791624297440111310085518212379044342036752584076985240876572454427228493555106723529042718040432544288439726155737094252644057437796053461410423264590698169179187957273726903556703572668969273547339057564006752219335547634366579758210858073291691322617674637248315052109505142479918533498204230836642590024203482582982143983962426880201275769081327133638343962023053938501662680344807747490210974553357692332918013527149645421008861593065301664340773471105937956620158871441385996852183770151324555200302235378361118699272801951574622226682862576213959274744651510124176416596923332790250873520954943877102759851791133126709178097050905832242818145492534336546915449908239393338924447469760184075701368859276967772468538563591642740691985245157892531822512890451131129146442538436575404794341889012021039594665007262954963430812852528653198379051795953802376739430306190854046376901472480651983716234672976030684693647097839848288316739066081251789284902555994433706089468960876459097335046194188420934057136973651536417106987924654254847849139407485939052520369754499432308763629913510599034669436086501262644630344024259452810446005708790309156600771997343530067837319498280342469953362184453776361757101553194779508536022974580179137584541734856960809165744256934073316834786855602751283803067918052407965575348337724617126917665189427372404812332709502180069692084565781568911283049578943431798995722125314441872135678058284202431782341981895266905797611993410523859135539040279192267856535598983949870040768013653943365908887511524394722819641154838538956271169994830674268776351941193089867501917346203710810445857234358546994149186181992411556522747194855690689897411859824619415062631512679790412801978603417093730061076546532896594863982870538433421426695426204308951991973265058785449867918362127069213529114219018578835076231659495721991676721013024603896228286604139563226786025073229603918189524052941820036175070310219989395605500779722858050944069284921128920372186476741623557682468249364427240542372458693940575721166628373042506878387717506040597090492067213496917301079841753906593216978313688358541781901759998429152246746224397336139255409397451727895764480836042827528697115637488396819854067799514854186785609070739009200069884484952545069162199127787290162210752282734000057825990360469701515429158939485125546240009139567962397043525530582642361638549001403217550997446939537174539286693476813819816175975904583028131806293771134932394009541663082729338579084385856213353567547541575519663314471302685103031999846869239055419178669649546344140516373895406689346628919462682746791451824387808003298580139918067644481638270440875750824645091049670336236547184359650245498199541340271061012726490270592526720439325857036530134796167964187158799734799146643947937800718307614746549756697292257932757891913323407893642927145557394004041197471622082129195580765800512946176759186121184316617301201736010453019038445704090778580642541334015559049928330166893184389145907630512084585705599681591759027105524439047820487047986360326903002078036266272044242433041752535173352989494087162716650829388847373159225041518093221959481098432803855414213968908839626645505911361251004572992113947823951629715350111372755654959381000819331410866353937501339579982199432321651784319658657492464622570932823174307095258807387509908374972332548399140457068160562851573254339389582690545270590465551996590181370984873803399210779920410939945718685361971790070340912755599490840802014549856454852081878116093779004727610502520128204237231407388071431954911383769737399397148506982763726094535802866380961124760067790406099668898299781024068757257436382599444993746387699829401694247824954213742200566772250557182616764655876054440344274111990768316403890856543405022798534835651788316987789341309127701335161554132248255193807456998493059047235222468299781515327085052321780702433331285534755044621817909974095659403589251452463496522764153339311782283289947877681374038207716337123078893607501712534240579029603258724755891986318535595605725057723094881902028888091302839241310900223860149111282821331416047944688374927994133699820806544364368123959339794650262029605285940289193342389973330212819802968381667691274556836982577094010393242500462402040576371142307351793212563175401055121158948086454356157827304415742726020293342829421163060147810093999407687224791162948069485514861391743264938517991807146438704465143615925291615885582459777288567956807004432111405663770871591241745104765182543546138501092991944360978687281075038097019855559530216547412322669835880714505729587630127814189134579713711405107195362224357654239465919422708561530365871819109913444471845545771661653372497487807247465752929305802439351304216073916895932410550296500872993760156676324074610698789203148720659859690232914989019513380826196432157756698691021593065577924507697149415404439869915417840433915337196841204370016114952793513648994626943128442155119495906869890611363759780767808833800412062622401457234935622006982073111006552047015665897534365016865215607848308846181451334741085752788719265265141740173765553359335225947871358631674851682973019006019720277209695946032256252594393729955188749484559316420823777178565611409272003006931097344772169197232218141919952678804687120429882915954494530377179734581816801008312649611896662708000586171981378758993684732949965995835496867985264691235608303397458118000892133862848578443367327737345745199363565516656896371305037954520153350271448704672844108508744783699084009848836843308563804975477504446721943407257129960403738796341859815687373042456515934050844552088001204691353077646851033389619325691852816116511030051623917746572978168523148568193310184716172459885788797281527184327274207516884631520563608761585634465239028852841130140775511500751841280865222136749675634011643695570342627828204802670011921610120348726099746358165983317845616418414696830318833309791122669614625502897865127657935078386769570458252700449421754784470649101739470351921701741722153814709920461389048872915569156670991046344165150421561731940036080809045593189362424139409399179963180292401632187650227168818353419138421178603530690805188782316594823928417356061772790157632135229115343017694296852811679240275111178755423215723866149533507511229845084900530563360642933836946534980904166340231246715037715237818232671277080662432144050177030371483492784696090819819877070342291555896658202362938027878513770124011871351500761083260583424753553657526975047253414011104173190096759739972720603150865545110322215419782537403118262093546110122115171995171915581131431132440071477567770731344662114577484355469668332776650815015289933844173296976619581099161036007509421086041954768836774118833246558667076407057557157811762015922973712402464616570275723196809567671938437581054086613537213263503030013888344291036536703174741051458781403630841755027859869927743834181570699207428731089839021418114516554642796677706868490889643812531814026214036838827210722143856679749176694082954535345563420476554069138752555540786807816513201046665022308428727480827347645065546622821353978701495514259040580879955865524225470419153647122720384079410020249909870208717864501601432584455044888901103060680539894212480747270041096046089398743086679594239527596280425820503562006150264698442518422149282512184170548472277458486521320478248118444333327456312406373339304327418683412805669105940913905009591141275056967616531584141960868641397641143416072158374518853537360063033464116791848830014085311085120378215583416335218097484757131479542591489853720054836872288392376723473310221214580007706999783578601289862164037114039682069478990614189697601731137751447733573032394713498983930077286033485013377029722895346842324996507623441717722042793011093343125669564020272261985127299696355750238621468338749381241103345856442928315399743912247147619159949770235719866760422555017868067599499892051873079647518983174502299339037294228449538269142758981626148539668626495733461425247819093617500631050977361007617033118510759025393684050442800088278032163674705158909928092375921795782559708309355905657390889924067948190493435788800869519287395544295957431139187830342723065444668510886363092449328912689385223850785779374277524130559586569148598660629433754994713762428986921912539192964517481294075568905033377291094513343999485168218798678003611007195276667015523676383357178417396382388418922862723943817325219810124056937403445530780682857967209670841277812956365198014564538443106149323038605310017238176452143226513300471237190503359701596359197498780912841191128039928750368421609594981170261308341714894440622795135521429623158765628224203144356550582591629229598429000064940761271532248886146368065621230334326202844218818291681328068270425106685940690497010524534685208302649067577609741988158829441899830098910999773650310181464692252428170564293890903004511109510015090371989626661487571945442235726208995777690886863101140376709718971081209304999233206713752454193670981071159793232014758120069507115467778263043954549995371087026200930842981163711098402270219677353834770052977897500847953665866986361171956674599191979750850875136085382215987104706525503287121234165100715033486345098731629206316189026885772602956225311338215509560982523295173783290561956853841115589313308957438285132702272733158003202468418061572463859524084776730744108191005147216764820495842166754089347076820578062489521063283052426130303742096370125984605416516361627725280084485108461439354625061178657677321224013821572184261932031392647248028172070304674017562099569807348165069748318266734569523395491732015640526526229803953755052842904661638439638151325379841257072659194586691971666376349558723296666316591199045277669597366729608744449772127259686585564408245738442317314704464457649327556072084683835290942125747352977014465462568162293756523943319085217069205162768500324414585962172865190209252370742962726642305576868084257215613924451380228234362704873611983498364923721295788546733209658308556830802295168124027438454799384277112846608828367309270784213176983455503115886017891403180017887787022870466529086917000629741446725188014909361714485773386993987532813889758766277399419580917944649278666379957525179772217505000242635481178524774979612354467483834831700807498911647915880060333228084323568554337387692061208776527238491134919305280462925748397663844203534701967652081824274635390226984977106343634281978518530520305542615890065368222068186943320924167299329571732863366539100242216209188040652220635539098376078007047117972458488877903727508881165706610709350092743896016793420592896818919783543085439737298483636710908229243554145166417411811373940986217193489208338142637843027751766192543895478499443096509016670132071522124491654839805213958187810750248819418065884573907630391395558282539069828205005855652930432599767308825983720057058070690902547096495596716134031089320798593200824328628297077917375703731276632659059743472932833283465718227445171595215229500040929445439422768251455141967777315527850356100668255014022998508965135194221384178990400715974785357259152935767701204970797680482674528913907832838631073126014361290773908663063721679894950788686216793030325400705773890043335185342348265800918746656628007395226079616705510248325421872693307327974414215798867413593224350743614936633836002842467797494620568083053355939763075993076331128129475306958044178993748466905096857183208851741013681332850616472287206506007130857117880641903321874018172206432934583782202598892450420575765881122694328529499560250162253644513709460854084008210024141388469723209727249007531625361735393157221308444913118014724804114483057173250666425080546628500614854643350477561373838207775203512871560308807037093124897669577088781318322938708601854907796105954186558297688189656104767284500363064799082615202328592656236370661023221390731355353983567066697081620092518480787349321580254436207794918365405968713419715281747549634718333643106625766264930736827110046925113156025069182686123479658469539255254635512336156441114224039530185549108478915429614734606666354242999578851897366895200506093714905376146835097532863884424409468169874866195973307778766774301692925492237268783991596348032177397779983161182021636371373378971471735578541106109495340860160186445411932714798068306902622278600277793463325053019131344424294264030770792256435844403873759669966056476040558714600834128292733927881085739654837490268409712615376741525659206711150875860444635982714612570048331978562612310829834561991299206479799319856515733269439938919917256800699882476798470771425899273279182705793658833459088792236533136034412750139774280621828678652806690477686721762775766126856690794921016721706160513253537277977170177010956314097115477997377159806086229753485395098245752167925305167804553878062371161551944241417322867707655618390819697565870233124600744926911482683023274499031545004746336327831006615766405880454453802485622413666030449578045623175805706188731385257021045352476073478969773509199905578122042519993246247838883063340495630185504746980612218341394178218943049793766570810272536889822601253174512550895724138366122901805721367555231604535454795908633694953405102073709201926223591742826364484184445379832357771167387020502433671026740025794563165419739443494119259163399455980895839831082747514227310569543407176194082624191424902283593108776114376442800865958526346328039682120195999154464874671116349096135986197883710204741921786937667194981920915282009497603106467178575813004081084341835669742927410369643867362185493173903102255494831393200171662617805721093413071354797026324978505865139132868311685350005698377694199103463238277223690634194431185316698401955263309155997798161559130471802965192112269079867660267419080135924527619159214866558352759327715821405518530161085634708385131290628031392911544600477699147451870315636833555406880706237367961732496666531208975591985771789035360247432145876501705283363135242090992808838407566346134248829713946819378583577425197724546936431136548157200770682101810791788791451311837570295822357359580535847583855378733050821305206290564121149990064344824476855001207654673148238128222349247767989472040450861266786544743351500658565446538171054621447972447057929828302406391048025549558103596791198237477733030498635983539699302811947663057708323980350865303109507308212649621665279189675760893871818792583773378221614206884773356264169255132610773096261633753185036879716797133624811685281126583663402363183257476420973020989227156505263353176045050056037658864690019193944414401366731890749856691268781913339813469780753623778412814701528099415328134697178934986657499659453147447768222429665175087304420888675742073123611362647455285833223953633506767785212663586840660122515323248679321749610144542451042375673302506935402685247595002283742794066793007829674106131461283789164191962152468271554010761927565937366518606007868148632221670928632259691231879259114292142670850882148658419281747564274667955005501478709435581052647103002789721863742773658788612553398339027547682974686390112814323614070675338031493602120310479312482583882190975809154227083677785258084601456869974543256082415646307587481448986379410918200401640710607579569913284398914581713644358579312677173585003015391381156052768345683107203750342145788603634042015091182372548625438532301106745601417959050134450220390006610062922823646356793079844434055488548787005677883613287874109612102120423576734818344378131945253326516239668813869520278568746309034236602942620484042267702375098540574653271337461891424752577486348596180471886111228699492458888721673310586744823529905263096720088210274274628884189790552716345083455592102491604998484760195232716400245865519192457661677104352761021956131855634498776685727173604606930887884674124061621808009716162964294135492698235196861997408469256878537945830013575297723920630235397750650192187175773416226258916078305172991831707543881987507690868731690826982243868662662727867762403807118102078953711314754999737708187539409921524891022823427223723449266332881077962769716470065352107513140974224735970855612605764039594940351211172036559261416466702637502914306017276978260866446088317270982895200694335200058491478709269395372841611212412619496152470552831340569146122156197685227186264277297414448877209383269709960268438256925924110146829927637309874672565707992425826517872269977195164787485910288790206322230159272323944090836918934018019077778455941834797597472291283989732951980400275337280167931614253284515939682888852736108335224420353384816193743467720351060339932340558593708358848789064121108232004130120557546471330477156109889006292879957487378439312117707589436553043820321562688331549562871215984958258520983329938958852197200455226912936522601339235960660989187204248342538940217364099102254614752170191144454130572573814829760083294176986037568246937591391517139935205536786306130323782312985184459705850332751049752647165615323057928705110619888305468213459452722042590617019102692777787437446863618136963606095549441069115256328155772728611959918480232256897105133005055140989140134570811282691879847346212446485406090164323530845940912235829384085866909628534166422032527255069779729416042552035165726536410991136728515428149661745437659545862052885811539120329068148644044857388553018172018946212545102598123702655141639909685740024190507153000089484580372213207523675474657125391427473896180673874415529863213880621536730619169275624462637761376792539971949564369101276162975186402066187018194889775783348063914332394004619297874676460427791115474095835589454412527815441131252696068335946812362192251392565140471677583026939529707061048028361223582835244933549084960480965503134285290222504963240985122909692312848651396550486105041023019008131407332729333661384369120267945437885890455613319446760100251770941702176408666735571465636583125610679810076747776365871162902347295958342074465355678717672020598517257069369440516323988522496950142941454838578210095281368430816888177312612301789211964353345618816771780692729431546683061075817494051383952030269179584989439767443452159366022712841340415649180213115771812481676094409017741481124756052272784718724395284523719164797759827910695424975915365358720716652246480486963922081960052549439973006038031622680231269412656761796553862664273954960928507641419467223428214892856744037404619513025730699197725297544419065338913053548398500176956683990530919346900326718246019780482856980460695452577941805145755202455330539023962125038719242487857448530321579248881916600548042311535171853883788169456888143619383598793014744300546056996981605145658967617915677897430004296907642346545639580042118968673609643368688529438546558723016008638873090494874086919037877290857932166488347767240293649923327467835708471739746699117378286449556255046807474080026392053000368292707794829473365303237579825235166588328064793338660049245417683770712756848422390235971940355404413975792065520607436601742214075954036897139738296269106495198417962430219513014139400378641760381390209012787100337761083635564567380201617168907338935436482151563046610097761263431017385666047075382525094929567549530786256263026259213367269783088026818493666732111170040684635736375451010768342713796519055711352667364951520934805614806257388348064759544885740448349643643728582505377931973759778686337372664666109223290004550039493711529549752169792719218008184990730111941132148935116734742302499041049818303631386234427730435230280745520630393795453974249867128084547128307055753260530028897712095231138423866482013918300302190713699196584206065367648880649667396754792545649313869004755287277552557772483628362739159588221661485223976699321909243194535763707989878818928365033411179669804806998407174201197157618728154223267525968524801490386472694526181311014755607547348809073092597764198829153209189235426699034270821421677458471009300035205351199277468409699639571706974451363737874878480513518461859059557607367803080222309228434194822574516039137146054162697896687687831343016060195421515301804464498571744999484324399375851654027483898029337014149264670467111906437443367133142936558522654252185677080811849155705605470014975299903940099667853858159591038705383598582635175101583666888530720864632917476572159808125781312514664870660529430351173790200560515104498246897139792443409198193963589853982688973282230209156901708817737732212716219512981028523118499879643576114010725370017912927402999849307565068803315917590430818567148062114548885799911814959492687655291702221657189192951995672282522845574960697528493365239660195144899325024178391375712999799937233853596828864148446506992778197652023264666813377357769339836056149168329572327581402652985453585450898852869295419236361115670328044716254897547916828268884099633150867510222722730656562315376500122091168362839138236185623834317574187223961394335260617813067059222390279882598598084576377361886904892247656279980118064907458744522491910436008601111536385800487726091112892328942441877296508313615564341882352261134515529061209168222800298506695103740686602486579970796450101955889194194701228968305894188472210356889215483194859759367906727416836153832712585714292093776784052205815422921051565683103410367443788965828611798789958762728909636619001600126891681510684998186109966969271214570706041545718784263444028328773464898394317343268825471822133710249266425697088266394067898065947843512380458601193154398998128982283611365671243244631431768995238618624114531497082022816737329578451119476395453792223311478411922712593541315149185279205097124294106019893145869066921520643743133995123442998228853255020382085919513565006077370387545379277769003044702697832318358595457471125323119112885799077760129155941742710754279691622943217688586507560290705436046289114005514729661783962673857821486369084196053807556225468408706554670289167759329097195072379411770180788735979775195837707562329881007360909620432632615225633835609438696280655057837717749521118077214476610369903124755609095059324135403367007320381458179566123001284944941460470897808176003705131344224081350188307856488225480367578808199807147647514193910349769728388097230488153018267296808678725583289521508393720008370143676459483757168188202896348160866708308388416400061666961589709374248961906830261243786920010099336769808029342725487690988733667668709408603099333100476523621996444137291525147491354539929421846550688423594852459769188764575634563724213311915751865153309529397924615976102876600263671788075930787574625259335442182876873809200309436680420494565632992387001458012230735884559649855979009633535293949965661143639896958909190961003506911342372952007434485340656209416607447244400515593068278906514849599918379867073518244678262420463425249859501757371418218504527290221354342482722716902066230004343304589523840758399349787361807548507212525808097469387627128047052426603507326679063448725395583466851060690074838003026866569555230384988328761967532486612412499663771298496640557928469855086774132862262937239682181969514332358171283467042442391736368387971050473581700893956534636601240278710758857609913864248300831407351365858976242349617216286173430397931595056514704896863492431854592358142581569160230420773300256859346867778033533972980049711623706822943698743651855315948728682343252676040244038757499057375136156023974382894046309065310892645835760106522688406318508203512057596667897856752468207097555936766654260674654970142311447316600751410164297549453895067170229643770217912999569943229312028174144942152523162492662569626604003398430053415528672851220734778520948047424644409774774698328948968472115570963899457640284824699018437956512104108175335858276519288316660445687322546017208106992218542294299150182175460369768720957577230382164159995973054106555052564039211889959595747192005907278127297375051719428555835168372044689814799372265895029466163114790877991584501859195463480328964104790667184912611972924975016726022570714492101428042095122626848401418713221411373763093556085604917094256582220035654644368350422702765751221468884584280372595389167506699178645367351629873108730752766982027983875286758247200535414216521037388347704802834387776325760756819877463021392625398777584256143493420264474417851880545741845814354813177106754189843924834311317665668308733206594742319262133651148552304056042178484650625604563714912952081192154110344249634963751330447935935264764574898912483840571798156626249526972665036048675021898764179160997906349946999723643382215698915789508613322122439243441551468015688022779451135616623681365328380859729754948974812872846403229067371795214054202415139768731846360179102931152633366303564268817731463733993777302642432732151923912245361649414399752394692676087197504135754708339900034058877289375389429168248125841454005368991050964240328118902127050608790496688393109480024262233370518380032695680350874959902391400218021824773985764604788213828788408641938862286968062164831961362857412033731181105636680361806656821338741401105835153193317122276622775794533135024054933337247055424119531621121010581519404851145426111252253335241221522287204814012944160691437241311980992812500923044912297198319329941232565381053532350644602380445429602795438960555674559480345800705514281965801064007738798222336131644645350090307472951271183879928434896903743242933437217389777714898270560451680127747527380219779810302012079132808999401628657664252534095143318821107887967466325331002521660814238680893817841456604901807718664618264253321035825425209554158992526882172784344873630870196255697812744858350992492373808867814470963662884997729597039419435203738013749741409073361327005078984926824286787962682682072900379102064623821555107407014181310587313150324787235577532106511284393173444494217937889081437058768009236828028495735460493440263493721846323871778438349113830839313690360060300139501708588679986852170870447668877323027345385010800741104009326217610785198446509972169091820471432101853760030157766203052890007143895901977275640281412510152643885496355210801792757461695929069371960612106301227637750574240471336018353147330060877056352942993832560479388114400787301488089288898388296828953019246458624322624779201330637528070495301978572725354305604157618547368717987217904828392318210566063644811345347169435131049216765064538618850474422917175336492344593462508015531436702047121486262784331388581028758926584099226692819910378662043329613285470764384625898214411859955257339020629659528394813957416779161002807744119952770834462201458091634633244310789768718430744546536203569513785553643154260368979305890803824111458533597642204414646661316406977792072863037277418597903269513838077399383596946953733449614680336339028765917902575935081873333809769244824284837443667448278528682425431276238713661661847006401270134573816047066177898155215844026448459507924302392662698709080615778590568290824203956975930314256766076596453611956454177941013385848231074819011223775151965278339947567451803969357931416777976366273513638363128500970774329674750435935227023902679128072672900217834984646674953623604778989693611917948995943259411053816610916006335796480871062692558375723699902598586684961539653893287290356346457397102192354592475954584672133070975709167008119632555352834029069398480845186170640433944677914454300113800232019339609683336959734667703922762429591552361428403596366113944715005241904465168289533309514992425624538420522343449258345847800940765478318049297740242874176462947676736407471922977844028553323065858326135251937076263067834714512022098789578863281951864077447636912657289768461851786581736049207426197739437670851483591068667503278487083485528013264990439333001478161770048520196223469754745438521328454846955320960797112609927826084648280509774039270677731443159728713234798207050982553083617663339057381890610999969187503225541185999431215144101383782682707215745279313617338431449658787711085467519820252949915916918239451015760721673239421368530729419822218881382649987470027967459619984778906530334786481209838913039544746934518280016821755506680511974496822927710507081848210593130595470202177085939590691856430960437962147956471768725096422813525989129838890624333783442279024469333040852109400318358438105232762655859410618126847755129176156107091840427519223713265562525905611540184687883596934727623427467042474739821071176371008403090070900561997814716604103507048667170394922094739521707635883792009870976780859222119618168531964505230413724817055252224291173673857047993689140819961809897419558973009372409267479964514871869431798286025391789020588494050172183981924078411366270448802721341808857579648825701174534895495422788497924882268558011860571128705309609034748954082858152933533815441186546625150872819998268071138480003978453556182027402750817430685049798625765859625562929299596919061220828563500109928973047025684051922109932242035038663206221152652050295551948068422981739572147813876350870568279907786433807577440274509959910885187927866354955205322853560605900215037658205110126887651626724897025093148228737407577423242280182879359331801477845754270155483597012834878212758760936754710060463436413687836382990840156185711885562396931369196230617162592249411076228104560752399626620951553082622270583017780150869348950837142932285278404738702542676360811884841243004411895196357676372527047753350017868661310545389716538532286163375171226127695586240102712984471159318117441870062640208987824585135726807642126153361426928185396550678904511854386202295341260195635350118922832884369828675914618626541960224473390889085603333414852856448362380102360726754609915375483167893491234493305915291061644949347356020994547078306327166346558702081386637159616391123585589904256482061070997323547692950511980284005785449844566795447422761991569064237640193163608678692867639475257616833186022431874512539983650689370587918950598183201655671429912726006955178067796883647281947561736681255358544585061091517607364339258710921461164925488150874418120102680935002638295408337779089329017276184629651596810674694220669721363950301477305387296202327264275945968969825305867488186231732826757374006680291618713485353465298493220480613201071141286293856373126490728144255677384213999271479938162772028814918644595109071376915583090518793229512099238040935669047546205710722679750808816972654540066656521503696586245893468688688013316966765870670389325531379767282223380419312308463435406962303068330016436399849901721554428561381156339801757860311684463429599461981668185438560723482138993271434850823531518732251158334303353258538127746620687288387505288230825777365912091091401707422860435866884037923617367909662351679269783300829165531831791766763856277453076848770618542488767012060021373266504960553666657384113283733464176423542990461918183408897720278358727341426785271264813791328703027276637636753189061549396106099645782174307491878721590906822414070753167925445097440332986537327247601876158088736712066110415020983028062064939425198751366226319911986545712295891118777970216095834922401788906237523051083760377390229762228198348731811550390259232905493375874422014322485536977433212947107950217430826582138475708161325748177109128306506490808103162857451030699735336764117673443426736963519823735879037867460583735144677569629436089654865807189838972972189107699242297633654104228803092575230474421775364426020091075819024661017907807534000187951332783262902539092851175233835375720475138995806074475455053551680319398843984174954790209450822143907177362372252975094651110427022395403798647304445246721782488700321095434490086750182670980283086884223438935137471018459330866805605316428779875392191683501000562858327904235559101153679843957018652486983267198628935402941438775652681133359641602426507985893243542531430200340042232212366912364801974137552899593035745228014381662216284942137744502446559859029106128812680490240087574408909351909209784815776971155166855625611600089089480294161517076636656988815368394689560330452201415197860652020319464520272072456816811091026304641111657151908825048377857193844353808082637296220332498842405330593901883150631055068711688544097375476319933977223875581619593048339059070298466836408153656017079087668316346583459701611330302376590200254204222630638800185709848822553766293346044662612590077416764409328162704352766383808961947378113366346132674536145812543676761101395566481790166267474129449883433601208255663991598660082475726057588637180791602544753219707562932548686196343848606130340227855607477851240249893970895003798385387148659007477141679573337742369365573771747901258173166948095266353064177437555652497160024544477866073040196080128440575902998359710243261724828618597308500477081653418864654373414195386074387410675980850881427653648000196630119317088197332226631471005281269622672286987540501489638591939286769974701305863949006528116246003621347734361436929756309326943067481442692962037677450800090791921602770331548253263281398342994513266479609078576517980255973113040078154882282263152469464031905715718639844277808516924826708862612217386100113006102977934111412758940763232536880198575591865571903626540150037520463136532876474234519947499933673349927595195931952754132173288311252813519647961316110337055247954713061589376213739935851643108866855631865478462617123076141496910050772957945593495990280141100118569686271084463120899390413256383117714520656213124308147705586380350775121095833599577544005795116193699879916752157467515789229733463756833174231252950331536680404955650957443611677939834696040328093678824437302731788258857164670158245386663772568886019517846572736598980074797798157501841946459868742709580390554957331707274728911280530042482697750386006923806997437469673310517601809807245864605178330521693911197026212824468939300416967927831718030213317446569003305731051440920214964759844426986654194688381771884213443103533912394298609251741149429093590177920288054376921513745782464441431153479277122334256101635084012125944751925116913405978023354467585269035750318305295429703455092676410803069481637087046508985730356918646789466153182061054950532937967529422114986159501518350144432926658442106975002072643672422660864318482049177114418198022203484318734501641470475043164352984987020171052829602090138932963787418925711272294041039947861868051252859777787077606542833239946374717234014860457220544467206954043753877933354529516891660962219517582902694326168166489077464452588915248325878214030086066785965483187392560440888687433529468109691507518278298798964661797863998623138943547934396740027922919510520544641071807150339226942580812113814994055002498090990668350918860840323363726567957767616384518854164562018390774222695234869512878709901595697858804234525114975769191595659800705607590633481042454004600045743311189479031771966291119148139497720084430814579847836250702713481313713419923864480960529981610926184007177762187794345821026569330221120405366770098184660976858585883883915805210820185989732656882056638192932014073761666078405184166869029325458090461432296026440236619779137597194194839066827273372241231156401621590430858887836509850080123889561347493683716374061664518112075666857663057769043531309228376789219359345369184719587483670192080837184601544350593716743350828155859724202065148109881231912582681787759145443569026715463179179551615039632925493478904912272716043982245542083172619317225212568295534712774156722603473442766236940893493654331117609188018438111908396822554742983979649875955768758343951577013209255143037268719760035511213187001788691395600153188842129933432557620655209426609026050248372626208674360953275306676114818451255478453741627409847605103448029936766321464155293843832515472682486777063982418993945421572095769168411018908975274429622219930826120064579772635822739250163393064345176889054942726966599010792275436336377206571897675325741989982672821160951389112909162105173402490954028891873129429456484728063817680644347557029568239820123672334756872939293860047748802932132755067187550342979565645531559998591093654748275395088611566011832945142252562410917633245983651606670113776396115506567342732149114712848938046676151284389890096020779667283480779491106914556911808219710520156123989590026737881747824907789898310980347837904113420386034080209879664032596271604582288381027840911859297952716209740403983972487806796581944571649536807791813491379415220556475997566107529830425456873486789002827843641885750699959965713977170225071488248615788258308377501235514090965572008830438916319344467200576043698678236420539440958182906932218539306852995614426258343240816756037485891265884098555620865531931488991972295985514477295476586664585403492144970155915357655763470591289079078178714133022130305428252631410133034284720396841673617884131441257126331274893858886430859105207964361239400683934830158872548030573744466669468220042765994925147136529591447592802030776066665062615635551821709622643248785522736303602604644307697707855427786496139244522632604680528475607459691333442134900441879713523688253929319004388240989137353958209637576684672219759703612202067204411387399319575458211642718571499925721838351864186732693571046213023471856617681152686846217663482564854141695795612508519245008800430159817475523609805307900830628763436659475129545209988322169685541004031696012062614188505612077635407946792108913727567628091350310559780941766862186837966077668052730871574364764857496051516646262264895762489828897224930297761930697984385285569937977371490024053766198085502680378111851981131166208043406626669598356010045206676199299424173004837102711083530186291312651822250790110566331579371188268746540197229295168581162040014443750366636841514856081658851562888242937905832556828956988636512126484216603055899929839522265973808534826545708709608357919563966393192813401544066696301379236536080285081788961264670387547439574720802842612885292724274852636911153765767789258306375315760400443246928718447804953155045829441231933131972399800398982590598168956703368996860308477672954067884265622326158106526937606912316551809163260062349683553436494073194125958424258938144071385693039209104983836301064157336643521255199866513470645022708904185337100238886939500348041204098371585358995784629451902306021735584152011576939619563529799956905188880146228867654127615666851619363663487001373169972727994320118011738270473069236025856343403406110756192636253802417451721281819140492636574189875245627188616097814508602907905120599986024123897351158800108674160374529582603219670276585094517640987467903438172603256689529975056440850136534216118389479117019424440295023117292016037667797901797150435088497228304353420673485745770061545983847482789676490592707495483399759751046813836201036066138368938239655991717956240942980484978693070895612233113779646528654514785676287952317433902287754163117286670173116640401647242284710993220230767031796416184984460697648283190796546160092814224208449157374407300520204435301477425467954944096554936810607326836222420654297262787024922580545018968214682033805812260902450521178354586756391347124604701533702968519076965819996868035290160966577134145148982062418451462401948161296347550967098058523499634577939326676435135691944399680526307813495117103305034989169940853517936193499061079349368151415424769871999256272528865923509904294649462440928435961414938654621610709259432692692732698859279552737920057536496841454085199763728383369585406419778917692579089895512979575016039921558082916160757475488587120808110858434882838705913673047598652883584352385831339237810484759960842688863223034006596854963716553240471367523638358767286856226639527827478033048979631505403861432373773670271137537376034872544660318934847882218481342833266094901761549002131187657457919294798938006265698020575600317445285542122121612940515673648860310870562000183745356016911750773012608447485553269923591898460265375095356152156072173626837707994893672790375993673643748899728372539325034216631471079342469471393976178434814478262373816320834228761797880106966396557329744960682102033063823816333769354285190262444723764349666732760057385822664994130801669445762910718088901441575841510540543492213837604276890017980342927215445320887884988935586514169632814751648811215372573299459750052636029080371334849894004278751685123855768404450343038160343671094759044070626431673750750939557025371726369201737955986967353705825145998302101544839428721016023821759630090644681716800321004782204565435028898168788061419599950665132814602177532293597909379109479222007710635987608279264038734881495900996813485765478038243996615359945898779055155183650875711149926917441429413176156831977340836081623069270194103523319393195690231032139588839141174522641601985884986564595365725688754825023881781943396103130400750220852857102750485936190889982933105579654384053679526000698841594927748454700527599109578216138668329025333466991267428247007257763883127788296256962311695349896230502067224807662676020274477742064937709714524620912738382528892986796934026714096166571322778298827690957337128757849745071123379106835958510578457011896144791571603048318256396483700303126832787604134922612858547880943428795146971947398821347428892797119271892737851091830436483329203630288378900479127043886500655640577580356716531768188864123997230178502300456194895155959467206232297412769247793330035957976617113268924470577756109551326668931008940828897852562924763854395344203299322329893159835822562927264497837491676840512595329157972645766982372351025886921997823646595139228435294803732417830250421280001994572259128963205240342359671276778624386569209720998123334059802700170440132297763599174584602879247244595645746972137361878459056415835460095236269231250816886322044086632189482962943786669796466707071275254252200565623840639207830102205200074531934899568990483553227275895873570799973998093479154438701900970160867362907804014697482112887016257465758579227778202154747902037859894822150986379076556374996421138967600423994324965894248714922364885312770142335264343753898710742310822512667192204779099896107661791275821789065943589314365092036337152564736904209753035652496737492250851686803792422536732133724832629319216982240977308938072436052963037603842098749441127885185080572131524992924438392730863360460132802560908132115908022551095561334747276012399402805874543004900390965047254517920454556234276866185712121020996727698868699764505145791781992241303059697269172347321734147731422590875642408285778970633104239816354305850184300644723797670109393793106713249139860358508384103022698798820756235371561349934189467699165718707785914101060311988533269645522727530106266172355153454312809364729406714844029598135537271800181346371905343020171062865447366018417924866188531569451749161596026540570999732350535054177709256572829039840532516069966516079134043585257695297628603817402929679865501368095530210463612840165171205871978545206443870359064205313798899227908401004230673952156677304458145523553298890499682277815375635137553432006276418171692677122543030074128948042580139489656889720469465200479040785993251818389715480168204421112677015559421080877935436764186114777115686518045667447176982506284281440267411094044261946845610238883955137599533106456702883713527917306860814343589983001410897382942816104168588157800786618354586894841173603093088830564145750300488337081462311163012324711333809375477296691256967071325717033686407154212786746177854004162209002184057432656779889168567594006271224882275925269676300389376301014746151303618169905930403947516932599508406331262384532581041041350426351961436839618180275373421121217403678403974890542250770764558842635228994679194292726511632055601744972720525706295773204190794551481246852730050153616237755387561300865366883529959121995645226434671075640665215782141602583883440017237850147308356386994278419122883173116716615434289620821470133829812801402254700478462467928246863460991541012942720329806295427287094697423679831182258996232474354897395900044783702388917149009115933959197854974336952704910491062175326351845485381148467358968161971246007465629645201167465571445875170824836574634934524599065200691121867727254337888147890266115475508799772062949577843777698568446283170112478280597457507364714627161554297401285918689731780475563735926455608618211196581048106861341920661210460435203285181006114644613040534603774034697667567142448236068653609592072866031265649545709393538519212161704004925979732054320919054899252162454440614644711647237582378488355628655162368670508827526599255468706518790563644106622421647999082901939545808968877198945542835897166610608461217061731900616150587275201737483322095659817467038906426719266510400028645802030540544355608711717962108726142460764833712880604769144736041901974733853019191133486049015521623920907696812671870505191777800005094099094321850781466264640506423625193833377174047077666468412840652121708095667732071332014611082114710560443972114656382507363003363219843342421581441720049022341169605301728407775421426662503195999332779323144203654470806665999354901827986828914080706676188129580391729307115925391231923505266564518146911364165516454975066589018644655368824325128847448385017346005040087952437356467661948567553028709065296302267294417780846486916511725695948380483142045336606118091806309265000908477626085010914608816622332219653265936558892813391633249541439573743975161148384995803882610399653790328084288834004046550227352533313816742773469515959326943707125653026431247018565873260232786673389983596828012543303277723974169156866130702970001267459889841707414402682139961151962655601908492581604263538596369257128548662031202289075078970708808496184763285938864480181750922375233764490568948674379916288587102760464103696783932544880289683527242081071090690053704776766032489685877764718842594169607692325588436061468941456928492724577192567714780608307697977024258283036108474555850152913501879714361333451478765517453843369503719766860620800714532698544937608227108685096556201145515759311070795634312983592214082250610512515054502816614903538296594831545377765422365548075946582548690642925174347407480972650030507469734909903109051892052863447170620826620005253716124251862268270053403430424955400842967074015973164638339565048333714991415451945607880144423100331520027949754395899118897836620265360043119365198146069694567787676866604211509361157024380601065410444625362393341167761398043095521614330372635344421477610529156967818355885434950563221000768933088767813582600469536156888977374824832048591253198770293848216255454923322688076473426084550273018811388942966604743414661688230439021705965504722455800562449682363257548400201918518752602102746147247232293468287439059055777791253430361043413129548012219251043095356446332835666640279456006843305052995721055260609434221141147476812957247594565299485419317382708992583217273671574056213018178439191946070815523253050695210174993419232849737693671653838562943765482861395843223001119406629661520361185293773751780967700085766948744521736617984333276289110191164422084766879026761340438323251395872363433377653065919022313596548206443822146309648575357978184370202110537178437134504517941407010489279848532594016346438142869170726990567712344495710028122649406817612364893975727856530814716086264942670136228198925939311373562026725511447916078128229850025674514707189478156822960189131571266910220585075176782154790419094451849427645383799230008337446114687574746854258211123234281290689699290512291492921205637656789800373207090007272824901941749101914925803053507614183381748516581950449550310903981582945363350877651652879490896561374675283690497501048633239546060099743003693198902064428444043516386519073325281265261128961173154322018223599444973303270456472569457187790011362330222827423383591520868813051643716405518429975000616705174022529698797150456034465911616137625559057038653243871332523921087713599567580221010100051108059320243063555190068729837258063031739934850884082638518752946480179357692063315335148540870996683910806865008017695776806770963307016661503015906778359227699438552648803657743110875482892030919164869013619349342871153045142216699804106091035641236244152562380788058679068899375716330574750233996963159180693192468949609528043164446900757396755061833713938242301678262814782884643906054864843959285655046482566824516313287678097067834753468990078352933926790682275477212003824599735686922120651903787042100019813647443520706319601751988844965472607442791582896910891130327928656635745699675991549057272512020270176927170219729561642527147523053985765098330567811143039508105688572387117445484581627995522789870441388621772010284511351244779877319705522424861897753385875881246783309779135133297429952653644164693181455707882871607786413870972481631113321456714843514497961686644847268724877559874158416092030374310106467144881464697552883805585576854215064496226297331022424137819839585012534491827975303951982666962020709232961790017465024908005810687367195516263167417643980985827531852836631672611318780234844271513329035216915754180247721589683355377084854704286851976585931793997283425642596669763578428875709456456185547395314615039287632271092885316835170892154831788695171138747177738800299487117509458751884228402912077613160944952674185571858966113878649651488275069384304798269855673355680279933711489394452568404229447409895786195276074540831310312654764271441088430255643716512100320364532466528946075312463816517755225170044726626636356614835606435482295248696633664987918374873907821338674815790948405673407840630145148027977238405557115272313465286755725315359026992700009799890762743391490809422910206551557215534030498398458361280108395311471213396121109297402328565274546622377612553822146455024241745784982253328055739194117603781147374811342629943761905619912822693483026518977012015877173414442659435194205783358300172968086093495217413422824622539431891844322612932562412941976979645707438180558061193049914017756138842034826496521321056038829932216302567786922630224688719130992881732799066277102842015825191190053271111482392269956264917299622278837000758727711028146641948858132321782703697143292423981767432936146699412470765027459714612247218217719932964560184088731770050626117147093048145824779032578286159955959651340008144161564834232807751498707597607811030738619589597831213909035989648088050573976849651417565467475597695608774357178318143162265303198262777082155485665893846976597234270358128134332924352006751796156209462021694615238981874219735165951992431794958668809243413998592379330072244164723990843209020384038549624395079078844191302017069228690683558920100477171839868284917049919583694307939109427282022589342264083959919548997474107773107420604728665928492717879245645726941027386805560628038976299233214479045019173644239377144313275349021213520887097912377884837576691683336034588236399164689074870790291594903469702135238717501517859761556150466993033355467857889810413085390472748558412650572667260641811228984071355001842573753498341734402083275470490758151048327635398434014466986261195396875148263895891105955617381546198188446397518508434509670698345123287119337419780000106584960898664054378478335998527244375190775416226351961139712426886233707295925327632483046680535917086178976741812432040411267814517103424526603950456967439261217536635336732075758747347572626465008362537555672561786619727169703248068209692371110491396482607424807970640369753608561154699122845687867211140435502185178259105443920713230538317162465863474473865605379692967984223688330836519084382223878488043229445304024701695845117303466278335324378570709736940832167458890340284468591889078349206686262989370561306973876855391897631124454571620074873771767715413912994222321232040600650355598411501667382771009401370813262526781904636752367722547786334150391768526655565082750095592190700313777784327874244047108009528910583413807512205023081835062643648621007968405599027927198665825675534226321440262490606743017399427752868779588794841307701169789724338547731473780454505960977837804536082720847934436722160707296153230801705295206637711216116384789084089887528343226352734755085897852712286870939484749782589605176005368631054726755051621027880501073030589340439270672669336794514271149160944382738170041545436570793466860419978049792396722354458554913173830138999243666038568155705351378692749678292200004770252605382125635601341923200222208832081469557890684265639945322068468636875347202701384182378480966031798991567220210919465066781830895713643864638814490031559661418379572195927197447582483285756366316561593690691178840083038042807146463066306425277938239579800162241143030744318998986509765465930819730143892630673413108915266376094164434783383238414696486949814095175020670092676599574641082826184768944672499406193252645368074673487687963614660740743685717544206647537278643378413549663835137727735198625901592394838612559561661299283390439423314161050909314893790055454367688723751005037321435490923064637379821565061726321523205293180378203859249120743467345428378732467380351592449196392223141171905618600210021517991018055853999321088013481618155025402412411106175416337787114393607306344760205672555954433777127582893139775452787765843257994707772667091896473164165181129762966749410609899593779791450486128676301070144251543160727177310525639841070624127419112621926372887933227269996208083782608542055674473042990767170223038827105341395811885177396816763133458666629743220390934758587711966735670595812041023291567150083644665475147737959796112247711870461900531880224760956011794609329741267125377640994819055879749907271569656215534877575935089176569449713545824463580102268537985943302638893290350821983620429370517566935114408593110949616583068848857854541251472279403879758491279422973721015010995738490854984100297776752295871861278036502383219069121559217564786320626634775168968555391131110358996999890989496714474425290400626166257993848655762254598332215461050193502094594398138654657182688853056690153245482148832010367690553894848656813498210123573647117438800920692858199915927349721856131272781924634309089313774938776873772117837575660380535029213105792980399733192788606956572500471015537394582090080099600904279001948536184299930198474006203615556692028231782507060231928682405679886654812956407090128782157845820432577425787953462316240402573587021444286129747553260642991863630634216179051099401128332959173271273101542967930175212237666818374121751714008631629825944597298217217146748717573588272831387192895685789508288154325509978366903621328105441312391655227892171814975922494575902772221799923394515553961855304720991564368051631496606453093539615570287637733790291877950801503053872282215166763545867356436465263162004102586148848516521578950763302531696981320833782515535428344341738469632146067471175086408699625935413433927092387487318308808382028411575463029345531277530003804821866110262424553131783357135105583186417323789561870343129855088368721397665238003569763363144575541683350371296193779068730895642336414185817314846107273878180196753483031735770485030484986259890787487683683485226544621988450200661546968386165428829235624019020839305340826727273571530594879275462466628830066973299565524278751851820647721507867545093510888008534549239842117204731725994762862144937737008461385959856149144390561442210364762308922109824841746729665590099682900298942890658321549245763312800114987030039978498996451805144128482537879685951293059759430886058232657653078075181654800394844795802037801986036996953546860783539860274244419501371417224487438634295568961269630444051560490347658544828800603680580449662288092507631421603332312380445961700464191902922180968966252194814291211532602768457886822957823547367192775484416059691927864469348397014592823172737470539078456427929538215339389408427174416434263009330439712052421506018210112940984847715427716965139798888099121269308450562593400659112532534347965841938447932684935410333154898982804143316556997353558730692752262078261343913800608819359673335056541710005226732700992200594410420145962010818918205011373546400735867049890831957525349226641741193949952869359030296396079762198447850301363576881439817405507609693902376550439960383887438438719356204537478510604868918339593312073384239289043122954425950748419152758375070590121961099373747489489591632852262492014600561204114669858727901060570183385359235984013705114463485257513075385711810284084496910705825959357627137861965533762159077075875667914704566394807956401817709014911841762606661210738008415812987046493442747855494003628889430927467494580736606277150856446092480387643285613625602533727130604497402513989326352136256445420740419419281769073142365091136009355712120065871357374374612974109813218049904231636121423589548796250465930379433128750489729371607711598965962394666001765048994823470783594300296743676116769345436281964556923070970260573867310877409471388362871603819288486351224661496873620162895194302355636641016043772803884891790029756603110364685799563916428910612718879386733754460794806939034913075627601652378516697012369777946078021939102925951793756033978993203437588411112494921940099407566786215423331199153750804386553745781459435927001283835909659595538118216923650698036117825521208161916667485084633228123266933145078959690004265532105533204600551988560587335349840380735106975432563341791776945701442962290270660506025739866315960582157118711588258747543509648341691347747227282398773633494236377408365574259600515406430706303817922451677972981800127872417723231305315953168321069932037012164410558337372562231641970195675733498870711229935435425555454888908695804107867722655968574483201636312262112158510747437242806678328075908627402192494586501685625480484422775109680512059386099825221535905515108567422240995432779592512302564404527391645008641340862839643645068381841817171513069060491037168523947487223593034019703580082467081778158275425253790851641908366815066942224648623546942509369091722804214286759631150007101572399675659415479813202252673043856017102303904018461440465976313227255697229846157039804874572888083089840828382726366995854949803090567681276211617112701846066259381540649985604648228475285119936830283728542057232805638798757297274563016518820261806751185058519265387719972856967330766961358493026866363424289901538970180119109965768734843286311266394238650221912797206309387594784456929672276117472354679569394222063109798347398888287167439190914669712621769385123307227522230834953738243969353582706019780687289411427297946387627629540193115216669685653742708040399486159814981664180155541034621029977802663743484329233232133831614662768027102108231526077275021223261772565340197154603340189797563931205272762900126943659972664647160145375695695627008544289206662631533512532645788726935936236087517449518128119042812669088444015954893802714968072944935313748630402988776165620071959043750222292948943545268482694139995884589501317752489492253496433812139957864358993135592199618121708213687197228531890906545418527545799890800454022078114834398513574707759452992279564668222539135243667048262311109250811208488349583683100649141725647286867221183600342025626050727892513232655306292414551668867297313005968285191430304628493429905150362069689738837457282765448623127820524680287132585260609561932575581482016013756606739908803174137515388898279956467903249563541307020507783143043950017224527700038030193274485269272033333026414784989371286987980303024156798906740896477976396092130855255468299777914898296641761833952988038386983412274469088040052446882456664914051300987615320782758148673410434005118547362092779066215097342480306331934949952333274307092210417106875338113767980034635550991246860814031276376804109239468631626029755521614394584608018442163888583884679231566571569817848112919110687712384882792685594292584371417140135322746946636812653573907214325675883480855513076618005190112549571108259104569662762150121220509678126295760592606153413187105681794919719477662157904273329757465241540729862688922460091142201561795996791274084933089513199784495481116267914836901975759439068861013976352087389206104073069510675357657555722002560557638903275867352922607916159321255190446882040180035973108135482481890576790283869498921733081608951074887386042495643936440300942348452882503372060516869477411854353758190291957096249445993782491919461849218861228498945819457840792511946740197497704690457847182877334038306390178921584336826614877844584786957944995918731752776396925669437782875599535071693748830682664702249948851072187904131934149666778021552128143800184058014273549960039500477778116921716607485475351087864118349699666509307498850532478795599944754515946584771981923815822981940209211803891055393363823411558929750744381020975048031398803046847413707829451608081744240029352916858536038493756401396143352078532088944073205347949052128615540705186096981366000457958877326868096544223025951057560570236329760434269388682266757154970927032311374909645968031120472290080919785263500200033018884270327100252515175599014406877367730628721362227247860821727526085903690696587243613525849257795341585721733478838893421377163251629266788281104934951362607184546764185141539513408955084696210566229105477712043209158015813599816278015367825162316834232444791855985908785037422393433660032597307174688156903533553624235551821785748333011749155726455913712444101471671704422169906917875059211070785501671366148186983775875051316085352729587938556404989999001798673334436968149205681102107840581768809911641598264147980633560281209264310822889473129657040493141778447767566168005354159286785193885371212239160776436647230018630825881900141816353351072229486881550059566834325865222913866558907973529197234550908803207456941891305074936889276063289222750106560198998798302187272707778966060681874176434412180109957219442530505323954380712971209624219738025805439049424835344947486600046063391349413796954154992106527367762679011303397794791226265990731173288111695901940423200041914546995972579988586002637682218261063357891483502953077857521331452371909066823188213820683727167479133841271631606917244382197290944405967163811052057570551074874994115737434947613705613578925228833038991971869517235625454598425284257672990318787588978961261177591408295411950513963123305409592916588647480990581406453132176739892954499032041504873707531930491270550724518379800715324484720490767334322815366499749945251254655359482914369113957544891612386020394786486613909583894827678999470537643368669199001789135148656261413215188349640440946810287306401469478149530357434941448661065577984536992438188362300221782319636578099868489991250424745339676934750045243912670099985150863207310008896875716185927550841289254127104120444587038615082196065875937676308163568970551471290414670239240709930202866534164564486222156517031270458099653672703955937249367688557298815855907063289463924665360734309226907288042224258718267758919415013595503465001829583559337143176849163014436389029062210010336384925879819927346857129056278178019034926884863764655788500508894120651114148694526015790010707752172116407866006462087993627832280819696067129432323949166572632873713902435535911595241973933095158427474630297407230633136580392675597427309924209891650741275617285890361167269524126598856750288853084728452600561271640314436832393866931861196271668440339798991852803053341945172840161639114827215819586558225441627333827032911670026771966019883687025498607847741435153748677639831913055774997972144397282879575648863992965140499517268208806318350075830601667862955491314704549258436534240134714273121149703716096927987346873455156203314945627198874007025946768795805997313466462152003703707642770804568659999612044149736267349762590460673172080717396850709391542981727595489113381676245594385510017533285711456892050663945020064078871406735623953638103103722004600683558201287165551354293595095303986695901600102627644436106384510948779724512391100506551573672660663831422979062954429823442293958280576229889117492909625512482676429006290309347811865993950559564276111513144532826939842356375232947884978403966676775426468825016333604537180325955211121629886119663671942966119693946076901200674365332945870591155961828021118482375448570592939769626254569811075652060214621304450833843547789657268317539389248334943586398342424456196294605169850879406662046852721966003077425477301643962584473498033093222946549181059954513459748303885730877399844695159182816375357678956570618706156994330327497786068661011925003814009136027884268332551330903727391293671780801605975016012030526679421396744607671987112328891763525023251584757923225200099781321114824214534800810398706102156464595587010828488625847507320169022621236155354193812355441079066528702674183494614437481008686686632330123827383845152977283593299564881772504745994659778426055545057689558961073944889147009835436728100614069492262719134788476781337110001954379184105351387611132986001916295832605425650942918252280292227526942407413726694356508931210160196348665295604304751407816632880108609905191579274567322639481236480773444518342733438847689791349010766737233745172689765403368385835421990141469365892123376810747040149268088103646970931093899839731001820964982988710410449765459207152163522150407118669425952657142606428207789473380265515271896345662541460192721278175694762216242685855740170673624573948944129924935331236022247395294685955965832930426223394644004427864419420772070704692981592061889001236179612627938976663493219967741337070148206531042969434269605828312111867370921952603552349302643060939523795287851442273504020178072158467415301838405453474337334992318390731998016428765915719112039662549748343280736557622780557043298597461746303349642542893658792805704818060066980721746923661874314935426776194614200547163154158756317633161436063427497149063770434190708095228080240301025123339565654718579891521745522553863581590778584124752291495616643224482638434361859692138967886080325546469330513813940781857528235274402368573077969753455464127873934487746544649441118880477741848034300817103364690609552663773123294461389128422242427696623589392136668149445290783962385301810270998887612549763184937591383194788720362838347692175094504303058601237632384443089328115548628241459623778732308296691191645137610023818365925611047316851638918818439100593359444398911738919514222343802668184469160076649080132100488386230043773021837107216488738082570719252541517220869572289163141035772023363794752015915475192882465527582378027435276108166255121936912159301057870259311750735551693272278607667982691200859010648437844138337514320499377271628109515064328042127730797943386588629906143900866943450853683356551883830193310309942923773756469440500175833094715552777116064678514189661605614054200157253625003887554921388747877749093690411975176094640274824298843927824590183739229239972210752051410511942211740925906721528867935783124454324223678550708364119872571353030650207280553679521655529671335830290203564571394842267357986147030497782169132262475262351209596652112088803870518131855515746374586526239217726892119131937180585860764926816780857877181296445523505209612835857025766800427693498230136796597743955247465926699541578226127373826720068618790135331253310339460221142246139905548988351275263641750561642229574485666787432556866792850257153041815576306605903229739197221393147095469022446694977856853890402808851080894619661851008573577335181299561591928921106749084831056079541506782710742934555421707402268746181409111496035334936177334612441458417325070120820600941692276305684177058265809886758059747590514375914798964248378211133764745875487097925774883812111500691101776256703734635497648210692829049416541581689065254850880805782467269741689969419494892262972015329847925383214759260754307823476014321739248029862631196149794042003624604785283088544231931972859205673698306009583464737939139843695385761186274935659730129168016622045583170322316525180131478871587014684559000220888343492045011519215841249933016089341316951922695657557709045238953825950721826047903611400201798882414181707831147795870833904021667707539217290947593569336931001213696037745043732178614182099370821823896933983422599513773984620585030610064363776738151428678449050997594790474894817761236285736926272130938578167388923446047616333573749735253303015181178539186933255356957409525697874786082482091834860349395506791399886445188244903719031423558088027979323426550674975886315823687168570468294990992492232514614460605383767971920018033284039726763320349985048628469987604107727531791764169426872592424160616507799710724286412089364564252694974154839515153484923540470161912524859229009065999522054347751171424847524775941034458131955756378036948552725657391842866552073748393833825654725163686977112418226081613449220302666563687456311524973009960005824687601566976253698440623494183413543452489914365212266056651478053201184550129441301894316904591425031337952573912316967127229073181841239722371403684478903323820904787981442022488927634661194140198107645456714787978867748309310663078302295001235424675098836927319987567352491213700888488940555036513413362978987921189431095746359364290495325774099766320518949775188283726100439950190370284384163345471405933411378642947105075285422663814554922523645573419666450895794568957319551663052699291034848148803157224111495227137560957271285163775380705535106369716347901280765452197312079948986420177618828228114101052392164055170857847937861880358566338219790919950341326578771246128118934307229461891296219808283434164176016219228857296030067161362819691028919114670116491152707035477223943647034161660463559909328491973236412860601401256898322878212958532445472944504758993202290709364962358740967282755049158622641786617327207253093023137004055106589678630566017336581357751112229904430248528434333856646833432909139725024652051606044349843637387626954078899322868364734560622742650182590821164839424252291945617735353550923582892569371680036838378426204417891129835952330131085794504538760012994903444624946420210381164303444846184344753310700849515055133549923075989977860488510120066825526970178415999961601801869083663269501865588680673742351375850331884889016685055891314810764195568621850275898885064217717061182001518755195531303695830892651708502887622093435893958424378785666413629395801621064458017154200867756282764241200769133421813420212432848108722442185324439366722399891825762322677581981259220915486200892642468607860342723856042704471402752112771931482942401083742590373271776768849923042580326874639285593449582910244213674017562932064605869604860313832601147721379479503176094626981513368746383126740754074746862140295054324448138924650082946953611458849143313646013449003340649911896238419376576362069430694309581193957682636376959939170273904742808149121775252868561303522441968983749766253860111517243484104107672898706323027606888324562588137469842546058139237307627297615170299368074917206696838896915720779797611908568358633730458793918460420476185874004384921151912185666981517853308243159886748190202988197403931091011371161777360182659757583571877397483907122361922466304681078633677996788271193313870377622860290205780799282341683404349474649649549510463503387321291815815197477936728233803350788812389191721683508346986346987354307911335742227585456513266084709815059340545327131292606264108636860114995848815196022072369369383757854456817409553403612497757352842017738144331942880126727230100217526281046139917397492141889466299215810991065085734561281559032285511874318234716169836630481098396922331423879129486536263456649332308853190139088476495261016339883653695795466744358004845627046591474568740233126214367031364390050132782559936109555740553706998267006778315130723363100274364183357160144067233736716820450823216426639878771778919040565051526188971151812667123949790540946625986487629107000949919654132153603786086470934600691655864195580185325074705448018679491193795938274368714929394433125241619358196052268543957607819308977322235797264883581951408754787355459296558712749704366410593523340228848604954535821082128700092480963234280508846257358704132149378742709974948790810732116877095202701488288479483173403813571929503911689907553008935553981781699598626734454187775857826102271558170285978557661700803495042909738325761783601483639614180444412154662751773880753267531610681901803424769647411700007221591191070922510682189942473153177774127246405533942623000319659317980515589129244431958410206269255287308758563055085168321171291684225972922086498791725168972736359467496221122072150559579557414024968985170429537875378202283636377949079779308827338370910497777907020797460294654556161370870624765564351804671357566587113285751021235048415671716583357767215441834982237697715691192148136903917963920126843035824025721308916798239002749530841233226159290659132291843285023111082902185060601178038456597135787535308731433127463330685015408118871005189296857773427049257090789809569606006835232141381159466618840670526925185361752758141141156340366551318164443872815955675838222815231853832457187345561300908689502694234642549917037385750310108011806133425016203987904012878965768691866427669950110524981418664226289973795792953956308016480822614533893668511455489301750743232734481955188831539492297964699428685611770955126848584992475037305616362694941261059273053870105213132772789622204782556279867389505010394756551237110528549063389690339260224372024329216080674759808868946685756916297924433111411969736761848987605502959371603900905183294693604406693017984791800619661991285547779130314035016659512473256184176403836176451122129027293496734291077101765114492702427543990519865395966132921423343943188721583685312047371891351676247320949536260725190028735916429182324305975580875688594959579452964560976166718056005164991181374358161056904356962863946152945780467548002237803887467026815586316480256882462321888377922591108073197119578117881781394101087124616771533133301816323331933084096152274972271066060304648051087045971009766597579628682285492360522345862852007421998399337790812054528728303945260793910915385115138966697830935579612477237460680486659533401277146821018764678370480931150233961497666939728177323598381754982113400966094884957015918835589511071533419030596072924739266847489496075342908316760519049572054280639886867923863017211264579586032134887004798100596684494595356173118935172875958587111984064701300247861325447454718617352966808240849402711781949836778507522979005788032262973221273944254621888577908198334234039937010198281235532303233670243218555784707737091868518302253738309958431736957972455635181516067611555496868883722891059423530611150284484026184712867338442664750483679339656391488608457476671106140482325569158544192979297865088407932277296218362275585608985005758349730404541507072981918384754824401979670233088154398282385692229442970320289867936275887509233526711953304845752382036575963658455795748891344645683550505875268781667482804923285183578912429844569707474146862459391533108160899410736861939554512388556429557714058481700382429270260123656140404600480395817235148815470943942038326832986756803976781678874175413668163047036828055721069300198147622812098884369114959635133469994455274981103123512998047712767076480226027597774622070486366593195167045768239744249335154020973634976137150489307538306328599719501518852051284396299846206466192672847107804179620062567595199398848908569692071796370707366463592949600596906977582716065009784261164434914150223199922497569264084790045166207848433873688365153551508600994145569262358865376376898095024540357897674216851058585057225019070111606859130533647002440903775587339477326365689968512767638779161361299587050471858874511089571265597843888835797254308173580156399201230378396701078401058062770744142754149283820658853587472963572071627203922232244563860973791583825084129969195926041105472213824693856562361392632576615478607964680706145702619458562431190994291623297364125176125277294366008299265170378558382078485021245045833000271543815512257950579845387481950609150512791760266050417901253871093575006880429197844823113872993245785222498569898192496703322153421082127338953529177210328975732744784410855765020831067391687185286432416434951486210865759157422383256807986657539955350437727994142746379394084279020789016306663415466646465542960912454592753430029542743336081930512046090320660620574711967616664351512294169603311554808834327449174582884819084454706933087956727096128523845499506541758089783748169861360705122258743876917767005349897963834236333199216975640820057492307035341091066101569047160999327749163190288383114436393135469268553321122401838328437963089877577341091688221945546091611224095031445797345781152665722542023706791150571016834151564300477756909721420804830580116704434117860193577770866449053114271849000389137607229602399940925295493671317265923375170800341220561356195374374356966366728661280359366897104682955209978136472017123549219377172148441138909980966721232091489750894112594667424084512399385757384301240128109293387841605258950538058495267133179745459377421102393398987534910130361539752757037500541333379901053418004642768065719669820086349290471741568556785239501852032707587503588584191701063431413626264877053326620875297351090138816363486026480162068575627179018833325797181829261941881901511365543313220886109723929553840004026215504021179247722867114842941529333222463039432774806860525262222277759923302900487617142762621787091185014046123248447743002951366518815553611934870667747104663442540291766425541460637374213930721980239920259147887388941260847794515842478766187244053620417281516462954653182655687228281154544285061479797027113420591569780167387615099840021513212389097340152298027534357526769283058956337197576594461938511420880777447830858730155663530798813645007984599067113081577994609449653917128150579001128789892365945851950664070043044582431845954329364238126463014838557557407812117864501076136113825153282600633548233945363298679942700347236996010957287218423291715139703015063490382573526141769505798281512482944058598934879541918401768769885452294567238269095061362026212512787351518620789733472117360100483994716883342720853218337877473849002104742077630953948236197208187581365079084790109438661484394600440038735303673681835789838381121712602810372111905512410301585743298487634111493565093095541964960510203617586847212311044220894344986205358647523019521492473339035040119713386317822212817451702100442349968025236377051815436464869282224439471130943673344102573709988034290457835604243660609214530151008135265669775890572494887625519242388058988509312597114755067347489328589938179699426315295136446546468831059282377450513379241838451506525289365628959163897975495759930545403389665328711207072469464124954468159978489425995984863335664866803423782821970713726766326018938542109317569771727459631413791392022266246562398907811975769310288257786665236130169879227264805756862483771869117518575048723276416668190503346489769862308243341524041220952316650762428550237722123653916940688124803469053070501993168023496251872096464697328223419051416033455558421457861177717944721284867397794390876363465524009713771765967865912197825562778140496243597522100696279747739219880016366012985600421421228195423949943320255079641158987079705761998525684856447391285093658044833705161159333777969964802778289966241153948916459129940462214143025012474170344751582832528505787826458858648310662019327901270468119753425475556289181132156487178879872185227648040734096862893160324264543063434755162149829401362927546850548372905885281535429603425510446649239584783070436145168524397807884957795214626822810914630403271711508245081465682195716123252726661570959420608034714597665510506910804207496397614386212612123996232488624628866445032007548295706306505203460982234808757765896411876601093117800665431251133305496631857324248666739804743347146632018853925532593374117672412351362138559680221245081280360242711657901828224004564814610798578283592890955652569094229734014612891879250103582485746278195560841058761683101082072719137210150844548573335566516759662414763288379730911597579172985354086988286878883826429974636520815772471321469468800845271158835957224031709275712066170551603151474791366692479479474648577193577659904361812959329700731125054185420646292897242135154569550859174069705683023392370987211824817947437872616045709976203550080417380366902091117365035107076951291426082532218398108222226904010265993020616014027348693790568787071293717234182170147273702169332117401909428067761239870214079401711085295410600534223899887127362828576288709912142727075992285686735282752370586049446553067110535326859119043569313759123623317615877528883734068112283215244504346038815357483151863062673456420467416408513012650439111313957752235089924348147443960916620308090289582152098999831518452544110313703108922505468785722951502406323148519231030628858266925069560033963238084973426527761928336270866266123095502872084836757494849461826415759535408520975540299644264926810155651348177272619792934181815766924017376100886309462617989005130330974802840478191062656838607032910243449785787349559989161238268578339797477111112328559885765018972962741179326798586259295354220182838951651698229454587988948260992822035066208915812095573131527743395896457402854773511627247681206348106414188453780375575067073223976840971199402547544920131071199806928864258640472555619047671177253325444772307793323547739196307946697101413701692446623948438341600127791199014117564890648120564913991320582780977156083741066904813924221496761067022274486957979582583841765126076973507115068956404040636696942245576256503897508049155071111910867601474133388525482790022439730623039374872844913033843078635225082376776226960848837245305171432784968462501103700837210339027599007972462158669409720478592581730719513931048197057522704865122457136647094393868283247466393125776961443502494468683077298530855614515107050120309893026730392797740348151054651984837396557325099005126073347383050786467990409211017032531328572191601383169894525321832944746050699856556468270937728505632313126540688697947665152458689919965576678372067724895480680888822808598318807055210548579019889858949176341162333032756235247608740651130478093382479322758553970248770881933306706029613776617373645425239777138110132366246170029834945992193435478244378065980601399976466062992267364115028371909453373658438151663318229093948721331066155217148956200956432750082553067750571050946571159902727634990836465154270728519120779723885061282686212009585132787068198128641301852835123774435393980135663257964922969527996849637000196560119765156131298595215165760398326719154418516649253748309760998444186001140117524094098780116416885355423543555047261380007616926420143745654273951648323816292169588095509852676193780988965550786825711947941480048162454917045602897750911699630113019126282698459384039401976399478525356788864168562472909611361460334209346776575997741147169333628676239203733338307983558903030309626499183570833061826566438618173819683183232599377768805691162169713755298470340700830222242276514274630789036305598726836049328840660753180698429200489245511192250749044278959587746728923834942084352399233602195923681968498712320943234422832987722878096206501425241374036408017749537325961672997943990803339362207198069421833709413602859940725999425224115039161300330858020386561418217880800045129316253074549219769805757329819164074314859903984017116965081857785815490180859818517437790792669858382806234584253733026661380362845073712245772470640242477120386687954160666187643556226567837947882059936029706659313514023117034947924802087779620084609993400524934144744525990037350442097934962346078656998287940681703227997549466416721944563860139446890588621825204562135723879258352989707669361272700928709101957730507697162490334049032415006402890414193936638874329454333369621283675316525072452719194558771189694746286929376508587667570889536835712408240134353533062000977651861576305609651613895789000813891294908612582836545843854528165896917398151607643678893920606387271219446173460016235641220416256387112588324304460777903476169796232212320497543515088994374408762760801869418543466835040763878587791768788752789154961627815149767737002080036544918263766962723446621877746121894362118612314795817487123471633401069555070035895841358068059664380232134075064592874672659248026949455024318668001740053185835178199021029228848547876108725474697086744677283541447574475457234839611755706648836752767724760315064770357114100158000199734562983682659802283929888058988130846613102084245677474273587346301358636487854051982066807469260003593030015963596472685365738259204126280326140927217731810288308554001011978029831000140703381607296780567697896920066314319703017947956621752919561203102362223127517576446993183647760776202244546267940135012258981079912555655474731290813970414659356970492021037258020830347811778557651828804624057339001468255893823001981514759044113131192142047732404045627556889849594788997701581570173838501002544858897677359126180905041737814390964869279007037438868697719580319463267918986295540060414637512523452826657509601183710413825220823698304698751725480760591513968701481639321551440130276872950066728931202752341718855146843475178863842847341489187121850626402044490859311313337984846050619242675551549017136707496257294609891472398464043312541012036744895197967039778751827417963005487866176783256015870274541665427522824411551753985800118612109795465781788371354282416314267851694692344003196714819745920956180170550532512023534959661600485110536573963228614177381132601491925271426548895493318049414079486079583209529044767459247922095632669700168250131447551712846006035356163882554076982795102950258975965342781949443199866529837095776723214593498887669418385314631791823125801227827145921644533406067807069680778539517078310237254008743025497529180176308389959956632253123453783203179836909869235758302078508639985131436938452980376197307773370435994734415017540104762888102345999050252929358175539909103403882120559049077686518100057462857098754700509863753105730026970913980820409981910736842264880564744926867240686411669381315053166916672271259285349443548042163225419514922290104297263375014498186098368453160207445289174405231518339424024337037423520428984960089514289134895325027343053489507423162346157450959376421968195627397767409846746225649735881774320717021530325223586967435528381038098344882959185568764432306952888087527886960317221966057400904045989899091386695490438498650625826029163903022848265475270237493084424284409334185678010476303298986501259519623294588109172923377230445824066327779896305987151835342002627586474436615957148825363569558956039256756198795682298065044155673778293537698612379557458913686316839356024395584340030351756944386107606130537133111204210293558173071932715178637647036036550869890975300217374942480166991167491934706938727330212675308403594698453981479184965625902434934273016214444030429669215951143868977363751508959889914901009489990327782514384099196806556890095635271607226991020947620980030455095922709930844202391870330420529582102156517664345200797316183529170266362087617650958808281042974335901477167908507584011930161565661155893020522782315356626738922791908040442531419015182928759506089140593616344472911317515465161289859188726214077867649697347019393488858874458229649995234523044698590414021320493646634518970043562159131950587764478054456545214569041095160945533458417370178686554736951174415581941558901649912653229769640356596562126521957637266055553195044109402990217447863477521710855834916021126849991580215442954415532043666714315004840497122071506090095981264321759602345288750441199723773799705173333637768835366830316265752133215870549092438726999698137234251963217125749923057185322277141496409569956160609255245688491223531570116158119347004975571992514121677758674110745738683662121005029884911997465477403490422831876210703153989951465784642316156698995578365673795015882400185978943012392206581735815482221769016243809288855539956748224044712454103297110166005376242629882167126326799640078349693978590027307815547599984261599517584979125369787825834702442748461839623606961126764998709137555870767701946351291386948159899087112940258674017570409935687724008305688660527404236421615848451148585280916976437911014924066995933613802152911974193060900731637036289964057468266376443595481286631052350478729636550316330644465500154759151921104441705613362340902648790146919318244851437413692942824927937662154445476668214776394921935124111883295895993922365879931445559327914724440190289410109486648943162828182467604614242166868764603002495841815338632777686342773736447691575236282179280000429502915838369857510266349311096158357546196828999429490520979604359834933042598338638198442971931902901374204977958848170951621353486795595959445360210259985003054246988281353277414798645831424183208797250792615114762105389733713559159857496135668337538479008962512626522296193193057636500285329953393629068408570215577853017516187440083108308310278476994117711470812013915024847797170916262603516073212585850189528507926637669505426688174343679263375858949074655398286051133869780712620356153894236299923219248396666127546013643364295047504319170860868938666907959642878308550496525817143811315699429808750096186052755083343516464763108165481406786751887340188311319584764232907125528207175086070747215871344225207107034574948004441240096873965441737767766003239485466088118238953560450631465030668119019874891187996729998049783496009187303099047050990350233654643614997077187583747317365528460899154856513465682987113842863141610693699676349024362823494860252867666697423333211402858441454683729422270853121390263339374188783072873362253420279509343961120522622757513299673703864411672192396257305754926063558296677689237262473312298961397790612572369633568701890502212388450902136024910934073351895859255225444679097649039456604776896455970405494494859221932408819203352856152734048493853189434363740940079538184416574221349350998729923194785643793946631181868995938509304963993041536231087642298945969305521277627831569258573962172318544964100818874488941642462698781886555231059388452604796840549616596447152827297169936919997450481270363588279769040520110120087284488984557903841530007722488885657031549187887052913033715468921766170714681980956766329606665340431032249515615764228473155394156767480542233777807211386019561371143548359187656934399758076274206025726791872630606150597589467793571276624121509258254791555289495737527067282212777128421988973423161978154704693885635433933850637635476051833186371311075995499115092583330498488986412789673970960733526478160821903416474325319890525237938800286476434551617081621138973251094958669227705471214821534661712165277511019904555430072323780415159747913435514367132407972727186087694759305565568966482232816662576238508885338053629085978343354785145241907243048615775201871156162704146172859189674074358014056525308598660197378918974315327328481824913878502263890950495411037806312859073071487357973492074313035382860919727929539042250376905084928873296701299432185873001086351528282469096421359999055812109209275516983546618831532632013581470375869917041545673618568225393132195634182666806257144911887023885219009689527199662947601335408018724335520405298880666772757792686652967232222199943340580732938004416299942190442020802836031044907775522948358165520403038622500973629932588016405665210757032410533600973113775626603469779372544778677511189478981844021335559517314771210644362310284573069533059540836044638542931983698340270113610280594439048908463229698719396124441862532836633942616915145788282997735744177303441875972708977534984034938661433779717416827249283169314332084725337384405106339407614078699967973996562574735028163628967398325201726227762727611730050299641820510277612113604157317249944162158864239846408655107210092678272063728666915167082746954713032734579741954478636150736453445034182463654459124797608892098175616384852513137353316666305177816034340054141202167423557637438346094906555236043651330274300816910205610009587308275310970080628426954471125212926334366764088134701783188968456524784850992516905588289878527975065193342388044821753590261731546586015943456941719318961777538303150683138379900490750282541810784571927688150754877308609052189291279529998087093925329068094848781464469809718386663075325512216990769381709638037152869622744350602930388876593695641187658552866766457785627993486610720738018405005349178064586442925087657623976414712208021505247540026122288338477112290474492811751985683488598881382798062788632462537466476190362529986618594624937523944889576001580870414133403578213738846924619106088991796455659377189296734051695891214635776023804214672271558142440201575724861901678981042544809122837135022072414194032962531800971603404489480710252678912110082805974053315466258417896694109349470505635323610370041870729167910879570574111368133119160618086732088444945295351070661192989485818612837089199538966179580841450777699141651515615692370337707502243605437254880918345510671181654318406313924624496691720804560008268963461682571779702674248162392186397018567585731799515528189891228858639563926104362226611342367066641027134274937322175713759809982680481692872853906257843832852570165616640453255132385214886451884881866156985359653356334927216875196634509854022315034471115079954229520022365362885981922812779932897551914214456064462546177231179615213617462111913215946635946304570308579960620489513906389191992583688212069630387449848567075131734959513334447655591471928833770940760618438158320378220541716297691842324231780160346621717126767459863830400446093645773904267995821451729624640862223614215082904651019874241640983717949257208718191616628660823070977380423221021560472665718710217757455109637369503635001969832061628777088529779683403611286054253920938955670879103112986170457064340061877684275349723968301723428186271788066535472970557000267967403700868276409628124556031424117323734230104884412470182719196003468582030154330622922176283455903010289779405179524136347865334275197325872401274273973778178426400007833058405941425306827464902191021246808221133097048697725269807878050861296886154444548037523051748640409531736678704019241605388861547404457400712059642087600156938232570411662019121520787792865795053156347066895662654078932047229225299527360261604966659869785394528282799176165704493507995353969999967210809383346102714138188999870006158455228786557244195460753699233494702929090488883706230697330946640196930766463723778624247980930294604445567339974680746420583538806110922187114944335492976462379817864762110887069031411541068694315922276564607880488992281718140786987620415780708502820627947480897328809418438912377555441187334553866126098497779350885896664872828915478890288423561307911691759769914568762614760846267600688125921612383550428513321501863530473745119927896956232666614861985118299918602189667781240347822558558254147085505056109234853914756896774214209252361290557780272745780910461163392695440336717491345074134281793239110140049091730226339687693363670682119252258007244937475481410807783325311870906748194903199686380944124794684361388270756393906971788211621854931270103052516293272153243596452803503370519836148065415253289079092276132270776212363535543160396137766975880104033035330508750727669200651904742787155277828576843467038826267985788821324820874961776181882675448634480449787470937362823490900140749613885129699731363779518739163327176360187128996119220844225344226569294006015506678048934769463435477692964561805890198850365750299397861607362060153903899570736052783304983395461779344630709699469353004054952952363073670131827517528702888653641046299100329818857144829203038228259799028621394809218732789611408713101013448776262891756976340607417868666723293550117162583972268331816382184554155782106477149598824074686487387818789183748478909840630868613402775200610040146128108823305715219055663061292302173503064946306562097233625802762233140346853353015522453204080181466261724782839751808317128949358074236356253380332851536340836707655820689595972180046861884095295040914693316825855186824337060517511127706449352500165205847376271360658485250201660963737512052138772538057964927143637356146076011051915606619684091838731257891782295501070698714571696904235270958042616263368699227976715262370816267917243306826961589980082996006956902405333102150427073948253341783565073828135289201113892017920430836417897878731889048120636581168277167140706858069136467868150710074501740304872892450451643596843907658428775890143159646140178947071772585475556025469581560028089055444119857335044698109090426542264417582635713231154303302703975070167878213191877836334223643585816421484357376365692738680278900638111928521674892248437207519359935444179217836925379772237274903800552682322101307909482798573477035903809060227318122902416534397729881130726880508634307887282038556656164846349412307524796222725407643819995217886349709833698151394666666443600607733985145240832616124995610095465084779025404567883937747864992524654968718434796798091773112099051732819275532871656593019855480363036092649219915677862260651871411862482998812881979059787915610933082608199833610987079780170184232256070837390970845095784167604691934548224654443820963303507518822050633914959322393987905552397754971007146703754854695496040233841095334507981276184233796367508045883016801037328334186361080640823711444526950345450542652094703771759006551371225734914905523505935839213198130827896312886392190245772356303632170582500620919098912917780719048628926017914495216795325212629841490382726261862367854996257843525825862516068876415323031765585428753172688844327834399146478410600678375109950004951907009013617360358630315518839593803002218628064540671232972057851451490341543560696088602949280093206130995555700500156041079615821609499577570075060692659565851811981576703176260354933517670873727172293481495456439291506657185828416588908269795616203179479714799159592734683980578690783366462651452587968847546387715240396238317447240584328568308363328321260698615767654893355749785094934621143231621962551288307230053281998316374582359836000184975052817476743077645793996608092471060386081562135340631356694542551559810400296418497617192363570708170983116575756253127508593530277605367923084984979820614640819609984932022129758575153994586728687551392378313777767176438280829074762187818186481924021229372664306775712577001452188509528907288977681759194465441027833550168966439045338055080440717673563799468882947001377469321009708115759214966724919645952617411168899721711499995862657821650197107511928626312045147041100672205715515456052375024388066173205585445710960521036940443124835947460454975087735601406577205706176110119793831569994864295146732664200537240055297143176964403247550312805479400318230308089841690323131542964953304703980067853815711961165676121241883940550957854753391023015286996537556869052551633495480243367161251071606699403833649792326527067459137390995526615858394401461628623490931415231107127754295628676834609260062831776880328897060632252439757147242769748722374333206550663383651127895845121081558620579432009135297501388516500330099867059811803051911920151516320923237155333834055002781300180633420501665436516669349894568252848678730605656880691108161722604072176310351939144336284399129233321888316597177886700203621328640113382184762236545714675969493449214675665645117497279497442766985858722413382487478816591987997378654480764546261804839251685307811081106423981188148695358142209172822093464291949873878438683575976812008056025864418154407319019975577751619816212558709021913592956977419682888921295680714269976718117521464010468381012272396117153107106612395525565615749562416741331549233765824112474478404646942680495515036354512610548414372757817943211854948468755570935893892394559084998601878838283344319725145477139005309836202974931341317477303407520137707894291063061401353098428935022419817800550165366587511732828482058106494304518153621461065948364827053510766725052825692422497635945417223557073203610596983105315450919292032398785974605178947926116920614355757463160528965879357920938170566947383989294126441536764411515727926355177616577018421285038605013018063930065458415925613840793466933422357059667930515623510108179853836676618344792240462713957315091719146135301544396430444584823327195471421581497299618616646712837247407369762172974519939359160949007038266474396060695656279732981739780985895534738413572343372739503399592357292067965108491503341997553534045987712598151954604732185895654605712236240202957128619007835133997321312524897952640056301192456262726400692712358857648835855355161811489608247557481199060688458339371075210837208375026709840521649085974508769907599336084805723017583321295246901399132735564344476926938074947747110939761286801002798810650122756677971140959666128249806666482790640272607177504067567983788486053602964492719167323415198285835353212050288499583440538349294015688107302937390785839202674467875008706432748898277182087443216146502449296967106736482868644112367896943394213919656913016009773788071397259727849004747175022417129326476569496369211111592584708646500813279389865822377615670394094034350354831657472135394831166891003877430783291517048408802446023183177666011210015733228417518991993859050791855302201161812500827803781732280511095563555024792554813293074470766470699179110858928118617174632345892548030402369011232670608248083954247999241648574223927229603547565501867756629070346833264906568639552547125291688349712743345507659549166246984625168292726652955189042945864795934588282840250040339154382074337626927879238555286424926956644898749681562538096522804852534991136801894367071384664980755306774540914160928885727353995066194861770223310341616081511182969284825136383970012327134203614663469569664397652764706401579499500009574269236570206243586304501454873089792241001292503917452164292925052459275253141671431796814544543953280519919201255643224262890484574908654724711584710108651321876095715303007424992188614451793063270983531400677817501674548752804818697323380516649896534065052759139319269727188943584243826737922679008084314182203864799596869437968593735635411069403668243859253592762825640225032439943489403126058585510698308924786050855089442405832036782368659373303230876913409021708184629814151305638708940154995706410800381740941315348908980611346329068018629410325025086319075960844162245525856906693597690792841663912432863078988096692198380195955849835919922749700473560368376738538771728073255081072372997028485423814129623485888901505413478998385074612494336063765625341658927780369928685051650408443744986329902439410484466869208505841761718685512789627427294153788708256334458008380169787320318862421158403642594520065050961852083382844627710779980675772308982682295207736563037348841794177871365220251650697110093751380567661070613077450706576802535240142807239076194680128160154983936618465802620972005474016153524497026243761280080062887622881380665250586992288856764194023097479997362896511358600349652711610653365017249030480651777472985042572303020628897025158556464072587341494568749026487660420744163643335228943061036867180951028475021486008763354126485161892553863443313145101725488984592532350911658739996736168365642466784151500413618404644071515178219220514606985451873455197280305028615722082296439601744817238589629297416605067143754829822988208488211911088030488230816499148444750130186832152804501331129236090934479842364086387057397339452854986199939972870498614042950963803889003818120014400161039440356454518769350495594726314078998979539673043184862077657226618543343765741581576161367219190981282914619018228144382155518278817948480776360135174761069611410810945723099927825885984157353525206469450249882574684732226671625731853340954219927643646914502860323496378874677442233408019392488545295339753653995928794601710527243378517127682955344948678162786632484969782626257561636907241191059927498591275845985566238734551757416169862061630564004430797559840526190517009113281308244767123536242116818923367259262739818112196337825432538121055344501058605624432975386602527959545614301941572634364719932709045628845424980596049331712091577754632626415411606484902142610765964128069113170529539039987719611225662114321128390934570975181096654930593833103412737631884050638169978485963126065863531255357113232455952502695682288770065586878138207698144988838702260625861547516597785931932175347696272391749514800028321880653316817934987730256340298895337403360238403139334318571068862315730730420930056018687540458543786335343822615206483987544032829394887610224828644831889279831144461072889901878115340112530570382687769979673000756233054898981103574375135038083122995840941788028982984652295992439620206762267335883854607620787909021651513503599319747611542144327371789506573563844357995878098060030252950965459860009809915885694921105837356163422749200629287078269324975885741212806776049776690959497499994189966517053706833232258924288568267260522742906448438727556334771173743324279702025686841867033716894926285004514120802345744770693615442728241174289987542921352640397817362632857649968120417395849373173208115923041519759889184284769389430645599352249627642130377074833537878788469433093338972817301395404646933760195428550096295026219122027492896705928154906540050372851319110210307731622651676250929377500394429769184304020220126997606994266495647777859015649723862222175602967722723993659023642999426159789545930996484767081596065611795211631304358290347623286979581865370571996687650289437838237040011168885417448928697252334368643523345042378694223312716928074439927439394334264587058783077013921271114985206144815519775345046475033310106329619096102040663996634163007814282562232904866016613940876050870818041676804096430692961111099762170408905112308737449396161357546605738247639157974139670985011592712334259239027388682242815250430871922360356199759561212867769872029140941242145980850592226657625912157286336331682939263310069669641851995949938708057999402269947661465939556695440931455443056204842856695678796625030030224203514772343061844304084837406495689060511706708825519940451525982904629504446148574580993339099981941506677197856835148058139122994758142187945361590551864008282641169251406779177083800913046971617407103563956236538854712787855255382580049814586917628478792418912157047814096881308412968716819769295821616099170233917691889555868418141158851410447063059355150700150254490196682470158935986202597203975374065579723860101197264619372714352029257084468191670958322069713124733334949875963578765561306706005897477350004866534646555798481760910594864177723341471483191620485194276311962861743985517450072147930616021770546601274255362328544177774847496639664625438033333959865954569852401452274659660852756891048818750141483014792231702324217142593596963248944070642683451867082503657506525300220740293514906010110799614703381781683522699432803281768121484016311032301399638328173540426890423824513093978884254140450688443495181856829620280930809319803761167465302116360004423408261435767243196275303514983370131251811989308629782782111883545070599111232994760370760884359636396767407826209825400217753894497206961173012720163517710516022149357314730792965460167722643524854555654035208393158734941595468156347815134277760604829768605136768578017537027638447242009749390758876322521280394766266171421702677060634685378461207151297318452696215037917839520272664954259806774605775856231782303066843890759546499054183157356668726008584852709953519243770502976243933463892696831545598022563563599124795188342413094249778202759663683019803980750716663016657778113366682987351518992119373209004068980101639538461301252090248400957418535426485882318556872601589236047033327840414288991849557033696259888944717688008678622399596120458644671894757501178025281364970931855985833054944895456846425022668645431517053377483402928754147271975773890419917869776360559311871214053281278714920679353856839166339126205125237850303557205686872117355934515059042261987548383548881143804242080806191294643422649750939734461675543944357031428772387398865028290878626847934739656166775440254108800242487691716040088110495251283630306580698001899056231642240887865078972959684062208840583270554984893882079606311724641298614302646489325848092584616362013242244451500800056864501561584588537578438633929150603126116450966805551268022542182509378801613664729446729818647729136337409115097708960046285770378047990626450117713515054564362694809243809878674058595887718078090054822262092127701474975117884180812793682813224759458647775930016090096332741997185997409505967007740668538910761437717584941616891464163755063891089656824219707662627774652512950366913330414465224341816239250345119060003588182460815735045876377035088890009060515885932518384843825149427700286161155826870423944630697209613046113815867093193283120308122595207608302020523156943602809320455074000039782852823140587361023618951549619745221564336346516759892578333251325912412881257736999608073564428116597178166906954318362498739995639980845388485949137065196103178328742086288588717125313594556965760830825726795007174149984151932342936017574836225547326150794186023233501590898168615902500872695113512310663162194704325932689182927952427743773270674111540559728970497717730649890120164977017082732398366159892492509443992664279666445806085199392219918815241739534015012001381923428754796902033827876895116371662423509698026145988485937055728812548354394092364784627156012450030186749890272173196332717470338738992651250635717878026162649612591608939532412497660358502857398151089971355820709945887223598472758485473238230879806782651725987182607468857901402117161337437627144706817306721954310807325466667303969964601872463688605504718918515954313882135859572758052449211600367046697178356077845390269189003867196092378102598305389408713247420260064064995987355520734899110667684491052975154091980811086522474023488077162603509963550476693688899749417403459357441751778178043658949563423639656010116690537341414714060031968713027189848286982071858210021448579082476917882483812791518522110444445722722379825177784335532814240245987397648614369095274705934633398460809949571801835320034089611913444893728614203295140524218023897826605039725084867417800374965150396075742382238539074409209793674081925380233279417796618968230875516471573896273193286053849127997045157737117696863741944253189856331427656655489404545490976392716795694586139469631818368209967761976065729101878674689954394839985040628417393706814762215365279436285646343015781726757466657418317388631422791262899218851275591821269423484675107953981444248125352178011941206599780260492427728617934169239173065328803872024398732272691542221456866352084266464537036727797034688613442120024920569435127679595377573024678223561784266372666361884143873981609028896840834191478307716888935895763624373287006958467693504638938641545755775617977537587022757198089589635159272038752386345184299125445211143971428790388073813339867141083695151189719462850899232524873617371287979013142351629645332937355643424495015461844658279367304791537949384565428500979587051894292240217128813713167939772285890689885774088243757395712263451950618623381775317650604919461558387360592319173651058511009658024157598796921442399434664082046836522335597412050496006744483108665615021421320164728339165917370038608324286533601174895872245352626926446852084203384255555226219912754989704434716054581438029972555836117204187968726001609230614773540417329063970870718078606860657340233690870982098917610426533879587906210883496137781768572753493649205367595318335572623359847309317892860004211871814624982489629902797754669469625604009310879487539509983249612507787559309681137386294935506884748994164886270295372241325119064119780910330995401009916531996161412770553842085463881466185531152332667946911690314459886523037836035103930881835873341433415675082557380441632564622261425982213129768333812070152787089587225691819498518212805563050761574742035297849027640894892802826619992089269682075907451375147725673670178765761499099629423931717474611053249706863263614654669796900153067077135948098130920270353044917932298805307713996472510425492745749826564026371628971550440976743602835372707436978221644157863377091186462514145925676519882167250485227085267441692390109548508985803368682530132188520369255021104092422902461815351487101370583395203740813528837045222799231802021904878389099533628169269159701607437299172809527120755064271766225193090563861028033284357070876063541368646134803331028753388695296594653017920304582636110877966003097980511469107522257307709163536450479835962820340741804681672409189012864893472989700274612976495528417946744365577819583642209915312813859081571423861746524722236523338533421560167490725022805230280064687835170090228503265758937949041868881380345079596130584978042440172670854871661413397475127730463420399934177534535040605085946930375421295251782933163782232901612547582622443761884512068782200583446339122403157049401993648813560847883249835843250779239355215777777378456786577529322677066629722865788228585023024037737646336617891997855182310750369950611404271558814937361045740479311137430514830023745087259050033191755620851525201765877027924593293777301477276504510223618501362825547098087353983607125482133357216895733316349822728640072409428561932370998316736661012164984937609475231846521441695355347020109396028276501224055666923406115016797821511936822731318456011595121843141664354474830905916832729060007660054121096570331805994287325131448503536337749173606726419494280838589311630164193852134204664713130072795169831244139195406600784210501356190435628106469636434842357665204406492692330796534393240943215080727761136289404654668979217201388370154138404635637303499792455439374792014341348214273107972644547156358430094749901114022908347207872627479593515495026443079717680567074280552133921418243618143584152485627977086172450802342419986859454498946282127592726495692009078808144209069716353455379401799366061714680728987448878635424017555028373590509916272325723658307092125391297468562273291317166289765379204636246920715580458530441396497802729231337443695351728047813855806639291931220147220758894134649702622107285953313527480965045450820185091731074389300512645942352954233121391034510111776556152628252951451864653449090047140348091496371091925392444854279975288065905532934818374003864722560240852933615693208390773459496768575773321972997836691644688460285477191530789453045401569777881862583031965761338052367861725490668642005975702939534142351596038186506543114539905667669323264523304581496200543420641776377068459500753871567998451421471608595120380227283891173057251005145275572251388116884931327855326856663494193978835307098745892278052898747069650478045096320248372588922473624231998756339507868935125052990430038083088403606230340432457398630322881871542320195682538133640366623971803123566356368079533991197588018362292938497186887065830929492823899221722263122472859460058970153231851447922901680311871438009934793529200422520027385279767538605545653146986719794261108828810314841697586566004076604778856499969310140358151475985372780649726947464586020500894177113416671509106201209331863469627530594376958043365306025294518099965201978831360338010120589962264760525625473338712338966373522254415625623400032614042136065038764020968950562835783916431648721397635619643134448256864090283987623635679037589851218615548862739333665263703523495961993039015437737034236436016397063894274672020670069629794723025918363473236804466688482093182230226212684833009102663851572954254669975537728925282301780873366422879282209387098776628073176402045400847466614378747320487138618132821582834927812067784059782077740453947969026625611852252288707914914840225818911177024542432743358046528659313893894385282635950807669631742260123152536806800435873685147303006982664426060689452768660809233184163385715998608827373733131306409944004397224009873723539425126615420422765741779156804756045614269573212437495180327121944350255118037942435843188914714468039962803365731786812826302856393594615618235207132238355950165209846431321845040704705598666654352076292995368318307882647782368515275122605651302584766094819289450247219881237086830377439142289495227251370971027744824531237453372323943256852498148183047810708642068621348429782265116786460335810324616792782857132392119662317288302309335517669680810632881345815029857621452395572576036567099345177359732185129798618872600474903988469443032615615674257189760504036495254649668139950863911327456312323772578232443905213259955550107268637307766274025610772848657222724843132585602618912362399262402830284806296317009018826822767302395791456929711895058256499151093485921752069467876936076287242760230042908946892118205645763051114754780079678585311887126679837833691086740422770131003339440844133507654160894391723051229525685400108057306922254600757624868347413903462485516115549275591603574737175279002951647301111720377461854417430928299588269964739760822264160273839366514137746505238418819372648215480759325407984204336791960338684914468202475339867758453465130395975435314099230090126902836451631443900649333478299431152639386060394883840483578603415540972706713557985409227687394865766504044530034265749381360861835713553820476544226875697513307590519115920701182617425139642355274861231633878953309867491091764101236794838553785774646828509421310488892083185814688173010202282400630737262883775165538442621375822187927253876628401272177226862496876243944317715999514308797791294967256497568478858344611358461982648801867204926945299707218715377349165124642286367981356146444216582556233167902148633472228752258174300686159759322897638344402184021252301191503434620789189672513820026839044710486275847075949751749290834509295903962836965358678678311164520219876599420672044248376797545421251982252660614446572710352940058540583781411983596365873274833533176145744880755420548941070398608383760706737864257058397431963854548931237888838625490167698719351073767196183311109058137522242496850354018986428102766139256850064966770865513864779072152015718740779460735699343480836298470514230870618311289640326999232677330514496318473050723134647452043155840296774020948349670379946179004162696943361143225401485166929353815494467689422350529109587040772328715014109433612446296240240592968202048119551215465392169280391578392983673412329719632623056086910354515606585563806189083714248663972001766356828528764432613018127316249177212805428233308034010290364362149055241529522658599960073661026764973534899793882655728825799034445421363682142304290077602470814823837023183084749674834074258900230002896278234656983946685759433276369708466557993943518086792497242536946808892770577468451261876905489464296745646073049912526400449313725200158727714365729562386225071156159543238183872277208102137534516867102539203533159277863657489665106281484311360409437111452074482238790401215120649826280223727145681904673943379728674303463041500623371506955523353743432340751173723487987709813319308500748098087065276656855117379142725116403195626166552263103242823595265061246517678008256617719180074679660329962516915069497313205180845239176386384083742999837471101087610084394266237596679632030907378148652279122839164128241875132477424952335995778742590166986096587075599349069860208853216682477064131365363380025475394150877787658123425907890806597429306990231172818905144481465221308460159057995460368764989243508062700688118716388912250938813119117850635873502420359899768998774803793130250166321143932231596993673949854234580499198994574409608416992135565393174930997255378400447732400160770298101063315347196748962111921119563232576764772830904878297690684582009257470788025912457188159558219869672073484294907246559151673562092704223078669814966372446790737533904377782231719823582615345820228878930051892239125334165683937450674702318200171664261938329425097398129171073103180414691927092440257098751320470559642564876193484581501631654617949585881073687161411505443910565585073709922579360555810056567034586801118297885154425827538250253367219961919100556102954891057714067413021942790180411137272144171025134997218781991696180242418021138230305311626957380476146062286714987105896588388356264926727331778145350330871561572735578347622084478731997697364172345093282154458903719558872629279695836498077375446703616391190274850583285275162047495032751319273914747131970982320975572986875334322207260349769500808029569428876391054757580109363923335125727577723180647843112035550758949326603880617002141933232018007966664865627346623065622535188243692500372138338420114659750413836183303164350141474248327677930718563722723378157851091156972660899548157451309166588384347287216257850672802107668600919131093624162371263159370034984738352138370516529603397555348344671628316467625534992392504178888397890353152621665499272969548922733087596379869821355609625087706223979058577324755718592931719258049266094931474241746979344126140699033087159741103438084086650182921812741168685254748863862470447815926652540698632141476803126251527162693558894020143754522640125704306360002744500779765730607332514687611558749212862735545429494010071448619043516133439603815541126900596115434959760558804264606995937409026142947365016937776497129244837285677680420465571566000424323342450224242898499085168113224319946698296091605342259382138816974358063210454924386306164804522426185827997409372187222938519460613581756355049718758131532438879022651612695841159411195359971431273026216766206426080354633052729513019134201201807324817227207106347495630333690610817878246584908668492469371614173183897724866992732387620525890830262696731678503763699650307330092516094153821232988440141608987839552422435633151233477996810102740612367446595894145385636836900811424409954972355248506189633289213173440473491099601402958703916251987972523508322540997555321458320441411521273096412451274955076234276564336018405100872571161388947412159718434631373010503965366672443170256135775061429594529901616190497914208258593962885141260058921284363186895053175755118207135963740727329082243502875691586744020813164302784595243118989935721896710614795656428134242808791522953126544287796441802946681147474854940031564179542261965396014231986694596475093955766203276125278592993125743394086947272355875666148913822967764832494316548547384065082934880268714237454304302205750923947216423642964709173360281710277368979526695626724991531471752916622882307761245908017228426232191353742111868231148239548395009478207056811169275043607524930575081150518719010650845985369599445955995367055970661011506279637281347894749539417288220120133356837168784852476181866153580165355770250276541970454096900294575218452845546448381347090026425494799971987378160774674926885385548784351856927254913104971682298021121933649776325853261728206264793821211581835811058792587130749634402356704401624521641084662318147254407409440418197109813194181181895914701620899443704487736803694692676530003408202371059121171276365871576033328067147130978549236019995289210840667087006250951795018673268162567670627439946950008546410725853054976104003986521770914168609534741835312194497914507291136181851479600132980127776101599234634243565736160544608345249028322592598160821135427007522036869434758424702739652321352609405689111015377694638989567764732759965711584212090220693799472162440419062586169416513202422346104519148863632857229806208654002540762552208447222319298530092890562907853662521582266214989005509877588554934487279847907213062263005580875766532589787949667497973764071214562174697262405173326717457130518532335640361749788137925617875041476741331705300544463322618285400118350974025848896526622464422654437976420547450350902423895459995541645549364764292735260123058463240807410401658048292187874519157715255275537640799463608032823013628829098079713456570818642918014566052408959218726724560745402384663449237502153350772512904668010221999915569482672306169526164783206987181006802197700875297303934654825998722486295888037297659153549730166529907320520856105124114723260862573786924254330536957797662984030452058030981881206821713995605571561507156585695486194127252247703517524987964065070091145430307006300764585199481451426494935227029708241657309496229004218583576498880375306996712601859891418824020535755831892671602296539298904703674702988051419853717707846453665386800859114664222456915429746116442004927742323324329962681299221167173549568770692232448334118067323565895867726288403229112811046496236208523679053612298758724413569102120732717361324805405051154260197326126438280080897625065989286371580180436117060343861526812624759610452624274124344951676633679691331236063938911956967881647596423688821790955295383287753737873125644112933814449554369141641627571629032170657467328769158133478366470665410918171874632856129832986399742477174959497190848750128309402872975597017881574579405884145331126244721800841548347509211130383051780091042537997149063407687476837374723336533893222533838819517586214398568885532831434645737770306466400426899485477616548711180421804793871656564590996043164258585146251475146871729010203018321320413113690739531030246972315041831901349523722607459044493656231959313216729068659083228003469295586751252193551974385095419429953034245310203002353971435901029235808667626151560764647416710463152144157020786108166382027156573188174450867017977494290097601924520900858900543538945666688323974696057297637942807747792778709452494532336484596459693020988809868658803662970661030123204795447972150758372924505023532341183188618755952496069029049232809482085973117160418999423445140773879638808834876723666797284328309059022004393670647689780388047127812442517002275563952341138480352408391698614028686157616265898590813580225058031703993031020693050542787626373734138368793339245857549796672353617755283247742778839122015015801802731199680092274856691644306972143047424480001202675291889244371835876709784577943620795775403368773290915472114737555633610925020943072711870156400557979502991456927750309072398489274318816207763422226357590609181451163985814259710964975179139595592290810977087902282388051391154971165934039543651689443411167924983618271894928647142546844258945241335873718959285458653645684336013519327174304441549174062685655491220931019038867654111182412383183166940057119371650499981934774417547282425747946770617963903504902740236780388209037675968366239811560391801420627389810632320489686135536288852520703131595287240137702172985268998001524591688430738488181108933349039913071383420888854064822063537295569126909143557306101446806658378855634131685841985456705010842165481925565303019830524259793462137504052136491063103256920106280529734199955436359224625782288813575287369477467068214022903570216960381003832272792474419296168130399551856995863166095400077437228909308724803291406937967462422635645436108496559726775764076892388626265846495421166054077332518759126154650651035502178391442888433636135554731560574148586858693927242706667743450474218928419117264825080255892610673766102021634027267111708572158776427653605700108010271646684642394436273907888884504262140346736845245456659268561857372108217366900486193213048580100088334440182624785798876033910033245515106396389219779034637804206694508932973999590920636119916373138209522894560956141414696185215440750141067954687831703165990045022782890445140712740251041755357013185448733493524208030168354921608027528496935806524306664761480280403538863238891939162170009494740379695481314642045164068427301876800214717446812700687075116816536541269507140601564890934485549845152790572886483674031723144998133977791761434613359802102810817193718242148479571279504441089374607014657437317449493142311742898844384193794725645066579475697291478007947119062818899377848434927505198547452796802571855052165748540758866054417879194204397983093359786190818230809400183857859358224179093893523993380137435800856305166892675627897532189698369544037361175886637665493911300313734416345726690790204508818338513116481212329913498822746070530097549213849759533574983072024412450140532697444960169091774746279718301918098525646858794018962500739357016087096994282155966823785865150225769708596600302389381037798497558570936252951125385664740565706128580090504249792791219033190179032322842150289511376958380133515362207313199018341737790868503481448158191592960467798855825282695010493557973075378215159119852674550843760319980093588338985230818125542124554056946735770153550138488692053830146239606434726355531651159263868107946830298422616605183961858114640533364935865197881094122126044635838938618266255837021366783693151963455398177477838743321194730311852950548451840492814658083070597696567664492761693787907297171284532342968571576921539839735570780357547424163567990476647726957342509739080997702967062053023611667250409709823243862353577178360021589604558997944672506596971125514020257768013516251999760341424220630983670051430311796873126211018718793725887323098107715458698952922721154116609148252372446436919886223675366703982448858834848629549923694151774640757209910123934357026825524100060647002253353374473904241370177911966963859332417910656969678328834789108002573909013817252519859513207072789908869342922316056683637337188886017718849504403909855582104854251817234511538456117149799002402878964135586717293172158702944106557267301731452746241128156902483336513248010248160773348056153368933349787681509025692477918484905572145238892631154563998684662139513984232105559629742605935472479825157511738477322895685770295325705469869974425289868439936532269959987031859730793905769442814344919783396651156733614515386203000424261425076287316383973904445437281441089907639187591572241975808618484167284962032513319871722102972727744893712812218145099946231826423788953000475972502009522931215095731905927508090869591157748192110794159638770732594127010325566363253238030369649136125187141500403351208873935051891990081625609167534329576935078476182169737800495799930852682460180054946264292051228660505567146992214422441756932627179969688016326723527870300669618866985386590933435220545245796433384594100837714696530312271740332442581790009838018840675477252701777915441218659546116379458230281177818091892268471961201700737440685004860091708513758869095385373685976936543820615468647048964606164764691835671230033603810300846837396863147229218648475126379464999730759756165501944269482190512050393791349142122037937320335853258264606292308040829962239290673179247510221748372937423734428928376904859228489927324614999574061246483528367997941849728405182426582785061621379872750887444622310115445244236262237758887744737951418557360066254798267791520838781354782841851389858093145017517461753972610809931975005343698432186516857392601721141647611799775233904332853786765941590189979928533632332708706656356160821435263306522856355766333124136181196552824053320339824434654041334397039951271939021966981585648695479463435426648532502481670616701037124494509795926069257752315560196123114909381263427704200515940253679620421729796219888484784344708080638615221795940877672616305297047542833386908405679507536008393607636615969486155527679679965940716908942030743888712728416150145995485535819533777793844623413732015468153314725546942688589907274485982464213165664400866793594062458533480158633508941132824211543242933377121870577218485320215242277078008182100559295087259420256897149177768830693444188512658578106711633614308084174980865213385814622317765631785412004176942322428031386786112671547847761492504058936699256102378906383582045604535735591291376079617571846272086056767424717800576260649748066549120208940861244402710041736993634173428115546875903065824461195495451302109539914708069445445363523398617015816085405147328779823177009096152628458028598944479496943335941796690394142596338702980125559126976428018760991316269388647059032132445832898838242812634183428838552123254926454653820472441854358393824993960622934828318646684478818099973134395271642308714587629090811506978893283800122027376660987528844556766894078519797331772415048076763702834720182422483263459284082567295400014937176069106701956430048957447679172615786417031143072887208279252491177791544267920888869969675228872148772715005289698782290669800270908031497109616700732571596206488798266868504191199463953855829345309615447273731416076977214890561305226431004010910097364178579163330057116307859077932907673946908232153288866662424373223057131524433166020601197101419366845741051882934925476271904318782119220398647049970233917125829209134976647957819015938637145351152340450915903222300614600562041951411313340405446816320289156177185120923898603268446652411253908028204254049675367917968295094449255945361927577590116211384314679118392689431037755792537857827704430941520952171266788380169395549762006127405915826371925258620956722034933995039042059531355270696782729607796506175898976814081887680521591823752722512161479719922344352105246006731821264618621300194386460453845226987802694789954174875534910533533297667532593034761531346766650058618828328826878787660624323760783254711577830780125328879803169808575086986770788293539600336116403841193019094526436517252231640989136886012984828802237626298804223064673425243122301245675831415283724265234762168150896342600494477975559621040942321774908574195733197351900960511432608945518870025248207956328494916164496876966815966310098846961018415084170388589669211587402873123949988195505881773424882241456757024676338141068869693710471239334263402936859697303008754759910987683578854503116205864511506212480647906335440927824651697243080805172734710320465150793990180460632449384563665543496850232784303181024884175899578882376568937156675510592185213480264022478176799143502730532189883533634693754762184129515004582581846561778144383234832091075961152473408811696179436042678383491596942047176687483533342207055091211496594784159075847320960388391631664403382040507334703942190281459614824199609210510695846580965126433557340157403932816023658329611291670726223183501373915523783604006536868681721396942803141994991506723939688945165820816572954160261698100489627416782540473476991974494319440840097697417795936313086178637272548320426734121973012011085399884791107649513189999238343574287133751441065752836489936834532963507395283709157132125622831460627385735559929414721957266730071271672866803050732838265729353768653891453462766310699785587176622862616179890085037099420456484978301358625897319242973412320849894969101247579892749479754944415534653567721030711567382648734499986239560532536374844927451298735936848054505448486144804509403177583647397517432000475711331289530857775066427851056892353811258744256989735733298548502166585816753474181408084568599260591621296675064179366663599779986877755768554606512121088251781354126395886346253889839405074331014479765731288763001597440635611004171430072330845176573181382650979236664911008262752864546909272230565956132390493177800419515544597756292497381256552351461214396903163267261903178920577312832873627635927070285630460651100834744636681176809639115032312558216344938710575540368288849235459713776405704868643133954222586353228566209943773741728173388909367950300251084412765775313425651384681608055896215976893478783492282571648418380633559052378856563155612608205984937850575487425334840092273265881784496341185920470625264258734623639530356992663159298038202065199862402856367277518376320345276565759770053802086363245219521147109975695060105176525603334354793095707978216385251772892998659108923213579629093398185633903321481328704410612230045097260318025866493241296948100217288599608610092599448203415077539163757660012423815579532698923555366754073919914964049487666575226195099123099044546592253116114732754228531454827048495007924748262757809609113586638110096707770571937785514469404672539932931553047522006623295433838713311345433331533718497176646012089425779519740661536322482147758047117459158847598507294481048043768343862877727766202720073336066868133153303269529924891597986635746711457976400518439971901081419657527998521867343723825609868020929421304579431839170444415540199456372779998421380646937480502260802163212919684933313442212951771969653701010374969477573739807070981603302726201896580917086662033428836932220498679111511700010951593591341009704689278813386767230028324803064543053114565722627498684448593353986042211184688198130569149409453066376853114574334601815475531271620293534842079484708029674477058076806286854201171312705347280439405199755663902535966944416236842715345417919959411607232549473856804211331845370475495036249871117019996900162803568154024728863365199278595061905489205288899326247385188895064187766743863597304556812055929684807719682699937485010186468719778715341152033621514418974591493536080971336504419685810271271880780857848421895482339508763725049764269842793815711688634964909071125329414620872408220900620317149393450418228941193235504028621433489858280328861551223302363329865248295945469242661209072955194349564263472649572927236557086155056097037935984527457845110182808920364221045488242113872863970116021790450540155067650283375457269698843962357475155192418464170284606282607735654912892513399947475807655992495925118744125000596691911018514070532295062843298804595049022182577293981338674288442159188734594539533030468683682016585546845244744303901497977627812592021450511096374180701691415529194399699053828101424157947240997214327497633919186593935288238517017968063985707750944126189483123299186753024756216348877979900319037243834923343154913568090253563188790132166481966652027564079570825218405133145248633303889956395476860710092734676809377814204288294552066684995442254964979517955266509733234858654913567731777196828761503317009044816252709584793946917275216241305346430790678462011195853285925715708513916688396126522035679758980937134321593737787868501062776344754108806902781042042129938643481035765961564175687613732921542014415543220566281088396979386556490767676315360636762556187536289449491570400805195239080589993089987489460822589165544350090828081869308242049532558935243295176567208966863901226755700976558297356827431952722230724865965267323839297666977914436016928084673463483511067583769418464588861674657843580016746810595006848153995305840014625486916051317896174369319362794648919247556848898237104851113224691993762704008986883803952683992041361610607582010820183551834070712805177067163172918753299354088079467789504469795481340820379253506998005626054711182428532137860949611913937027077508358550616282857006425820052913984359111779810423945821515190436844839470900666264051576632252055771933215416759715837851094702200582355385482065351464971894058972377584626336843499439543305582679505841033560784291090471247050398145731396127458635664184402805153128885980002484737173006572581748918997628451503214443758740990374018982903881441367810134067587847917621060105000219026401544600693446414524547658508254478867484864221951891889410258755637877025529879936023146264378232027911663381389082772769626308959898796779615302561384922177818792546652231957733262511995506916922380201827443545318039356208322243170391179766423634986260928010658463597180726937282915310422604798640621294332851088210967478641057198223836355806662468532107938235681638561116188152583267828932462907222223774491653248736090630758510808550094529069485199845630946586098834277393775503274864842318126635107215791050664540871378774445684569242826882094227383238505646260102046883122855074002071561506708466861118235507774515401640181761708767688854050448408380953245187194907318351303715616976146639017307727171501432292128647145818529562119625028121791977945269509416667595225796574128450890344012461890064505323377620281757049004052627985382877069704765117361771795915404299950027795899846735823786706244320397452231270532092559775218925900186895029163892902054423612251790032678052009523386572765789325918166830316778607681397490568808834339894702758850902025287317389646969659765334593986091452845258424670635350667678781760886400489078785496678918696015252812685287271382677243717235098626034702797196274757861128491490574950105398257670882951423739050084218115098546311525403848805869142714854466704245443093596745481171653046873881482473795774276127201304796747616599717707835495645642257072708491932542846096282138185396344376036462438220896890845501375904327512007223528560388822543941225067203735059145154932267629839217758511223934587683938751224238894235527536699842614450766571277197532532687789785198771870834464547770515885046467218576265125810115078044482920446420972976614902046333247201829073170527304915706899409158847265423863614177421803384144889828399334210052657341506000800495517910680445290827838450590033061251411721415916621313875527465153451929661908626403410346044794673010165637645377937492621166191115492158730864076394072276930373655020878240635365716492880376797553918865039123120264736782725042410841703547549187248664796743092255034411809584315004285829485723378845682230073149859285774263802355620451778165822562352105615499149135433774130563292003512830772671498617278391488040874779928690516653226026770105036348651380419424667817585758465508276383798452831848252724976983711273965118235044153035154689205255702683742062234205953539659327653940368273897285141503972870630983872442252612747137142929855265563219735627258702148187799630856295157118853530359709230937417876820570838942574659606674282567772799274669161920489200205605122911727506257685261296321539960597336169745261583650795306715479870088446186230649826503832496959517334475637555223854227410947667813084845331863973265416048279339522277401225105306148866661967178881513618003926058945995592603069342159326024248730247736027455749969875215502823277348576074152140599510209904361234078403177612314960606519498538035249019430756322225733340383711709705986601486646240014704557107208880515637515373930929530220050979240026846208955269242029627755666097711748614928477853292554910153788099167802472425814715311275014727579262146856966739568796327427397614137806594855630923379847193684629913855654995193087679904063855056426220914765100276335619324057658866608917727202954109588626248896651723396282459775598661687538666395419912045362855637692173187206712061879875675068509602834562158600604476864859532471085185085513570394568181173703957690069496692510979768282994085936967962523938620186186996004434163390543185630418095200249592177047551453735792902053537791015274102760779146037927463337031449920156657729013393472596914236788847172407782169468808060961194285150099819105199271185107631329878016037705453246828513005074878194633091912980024257543211002243748305304675680323444604354206620298259488960545795320396110141223442590755307834309172827847752559669088808165175693650800918443298267574907492685109606492419931761538510399185600304168011319320644959011420473470534711130779263012924038818209038507166238018062461986692131023161038475347137359269754378494375723278901520827074175869334422193586551890423961045478516761219972609949460050352760973791409533106827648635939382606184227299625177684645448797357770476993745889392837246797591060138758257384945366086239024386340392555999887755558401428223586492683503830552196350935061569764674215297998423689735277939533001059614442132296881255100739871790482597689270766145964315930453642448539281759981543007538224363630692535132078515728046634208632717565419519906628664619944381990768452989191302288456889556167666706110897357571126909286778426205286298097095582600545791808887150290652347503064468734925853562765503043534332797515618019532477659377840072035905793271343911862295958646314622017162828422594906412230163771082493116331898750493272010646775599426148471609124976157559473695201160104093499803539453753304314141358086430777066706583592778808294434884572239919162170188645363283703681231861522530399330836249250761625008680124569054087189300464815932448437476046604103948876254688783587201864008899897184171174162675209551676314307203212788450177800526508593179449877781834366984988373842137140087454762612855803291295569063831515671270964251844976044352119417950426567638718064733920151112679405884414794486027715527686673769722995580743506174016119050128375925113922883501310727810992755212241059003730844665427143634758868464820233815322719919395747051209710576398065457289884351101138574558069407318056304632883624039719662750269410914981176832241783871965419414725650563195332168908568657028625092204573400861269185823039661990259088080809433721585073791845676718753961912999389241245416156528967604264583744337437249915123758924849047687856877499727052065524913338416332149287785502180750683782920701540893390036224402845284034264639029739676250921594827004060164971733043731730401896422691475124829593286063695625301075975157601982750574800677490301969679233696314029567557285522655787448986207198266034740322347317418236801151858046822920620172254556984443523455074791795529364100840804791694604510696687435167219072765917309089139029739002849268848374779838451444227915797892117889984761107585764233015844846088619747697403007618775854142680744577798427913264450019935583889693137504229144313626484550152946981276388202121467274832419026197204367354184876491829476680702294987600872170542154498355536140948600998088775620677351044549788885889106999480847822478357920944388146268582968526396701263427086673262150532662840725453412763975106736601031316529570949216426164741163022988709818339816635135356164972269312497535257080243058641961811208858919624188639951471653970027775474877403154079563903694749314280364228854768337948619891470907057017579257930967573293909337831652679823745624759428566106767921282465839577810986423522707156364504768227676084091849475372011907741736302243709296340972185229773281541084079478722646937555328215662432182467656998192889681043187535375186184011745841598542316314335148338241417330529746897656711366866936365430628066304083983699172423702195832425238129824559691454186263915238704521517719145516285199628641930244927000915334552381379596057877383577555076500932187337620853224407466330792658883106769005691176010161844770898525838855713051265777077789014802710422098809079557717551689756800567887700163956178001256514143186561621550538892579246817450593828313277499671621727463347940872529037260488285166347972097743767636109191789940511124443477193109633257590955589109356279429214491877227331709027116730158863830907193004001736144979777621730074875990589967663818064159746693753987693961055812392413700964439466027012958850600729431354823036064890048142818688713574653018436329707888989661832422690499925126327737323441826756416502090972113249948419487812151451967055882997935721315236038341558267409649559498809159987593985345154228371466434267433495591901753503798475503103688901844115059289143994747179091081412608519952710665026525620265027363513404999627459070815299404815413330722037139218961826126582108616007186345242077290365491130407857295957783282728427000739204591288951614710589803281090643278519609715216373097948590381437769925453628398662661134458068088328548540664168485357008305797097845371117493556335487790748420571917053248216639900209264963488001607502596027392875230933790536467638273513123380604681268104487333530331789990682775685752176247646696877987080454612069588437260475742621625666320594789515684457965753542001963635258674114613405658176959790344438430234941419186551145784738699983817828238224783843518643060579676958455789564395008130749799815736776131677533142077005410302513549938002752432701834743682500974020395294455657255151158100790919999652175096129031958779098648409028183405918026735714083610706504662806828619870555839948338587344688016410010687244070126845549099460393429753563069264486334353581452652437374967212142170642091030111611644469183530931441000971351528081307865451140567104705765193852118927506850991031596154836255277404551256893580331743157098346627723982212155867605634739728022310888673370726861679385334213625879592587331671302251823436003353054111833291821231698496446797187992549190103444044553282647871347700602593042419679698653680777865969136581725248685088513564302485488347946708362440755259574080224756273456372516510730328712267034957997161504948351200338663292404806173921681790221862172504506339730205021550493908157151541798478079112019447824234100689612648034340009925650305383451966166633081749906582032556370632764671207588002731908831590605253511598839034909356366067994818487828382043657462259027450084848171714626259709011850656154824647213666204326972108861601839457466554666427311997658899364380826072391549722157925657900350600654829479306677387104106634636955657285038099126282525173088724867930484559810763612518533490503890844973006297680671394650202991568891608642913718821661606426515729264715425959302495328232790668758307574910824722742861426119621782843331138816519491980820849041238271668259160789577413964515489339644305064390121541265962018031865762541836418296681593418171756870873360446904716339254688015661892248304461801456515959778483242217593397239367221252161778169378522785836686752456266261548328027117034058506637199546668108049174059576936903755454024703077680827664492864707911362758346499101588797717585294766611671307974767324169243624272202690510308694752320476431627255222565164333121130154319486723941927920843252652905691079111702194079259481322088517129803863322777164811509755800543260881157938266862405826953847837726681875159055153798466725832811970365901546925997839377459706984910011346077101203661267395745417262263876390529942751956304734136930165566233734068320558625274699738618593252917967530190913576062510218329534319395146284671450192177584976228365544779705821833379405992079289419981474580865673097902698959990174435016409917836895752958815758891094085362881188187659820415431354159826550835495503528676192558235942796475941002217397711119634549941227560703865739098301855128139810235006243327956913924699803640251693115384496749084939106508060788115839879771803986015467917899639010963421876348964311978237122533134801777945813159898168450218490634171558511612639103750712214083498629409789735702091045212359656688925131328073415844860067117926937257837435764025579371970239116303392821676103360906688980739583389693570989055931975249687162964602602341681499915357538958469476824757496666576274559658819666793531415841346147863561222131165068269998377987652073489998010026211559809514572731314251691840592565753195608602944622591411555469681519820442088313346747330388975495969667094964336459046885754881151591513545071873041627203758071456354202033334935408559897603204771253011146034713830267374428190986730649342271818043560563434714971671968507984916100471473393686427328116584976599821997985329706099252980771518370876476593518814040032178216236354514504153568647787958949002457582035818944952714531255030084836498826310391771760947827853786689201023323626821889990652036869197344834938338073142993977152383963782948857229678159798842211058299490139974083160107517709107234607142629480522140119637635191333817351101819726904676607496026954631675992296227051183475666328818626812503292807752544305362443488048038545759756999874728819483771265015687928565810747164983578401906874149152424105877027510689592070881159994819984723920863592710254276618766651829780821253597272679356233605646252649373244390454124449700285672002036791530022696052958098390576802075150405315535093800248883661838684518417068281956928110966561898823787521071548013081610542553819188756406765054579498881634652873468296022523255848208031528864817134838312105916563967881763421008926459766057013071186034242064898821904480670943120920389034931463692082691059249326920823344680524878959978096321898691068160763476591422299679240188057309723213778031165169534797611580366498860551731850372504963185556764986681032564362926569919403572252245317062779967013712728327876401463032772725195295881821879636558843209967867972837459258736360653416470661007231367684201919399506297323990773374353042299434875775659957983060247374804431287215799110522731646629543303543998308358166662731768968738826503847058157629496505671000335158109354773157746406191586805982367987810255760243655545584885454870585141673937771481909387307056884792810921097403431597712824216193297906723088779266432933918546062859103668975861077978524366240801721429864629919542907298479978629952786337113431420582561076591979256350700825872086955221734944999479756487010727957383563976749726303164617045645965107423288225553385162520580478597740455675545207933821367544860116872752805705828741236514934176345919147400686920481463789446170419345519115129104364072082058126121979963918199232394168353711401085342333953479235060287739095797548054187036279981545913199674310482546016908187597250474825185418238790610535000307079487738678732018990102634774858244727460291250911352123526756420826316083531503014602606277008785185088004119102905106338810501096822930295244105691086643249935092295061078194495261760894520560983854125274706910942912580295895347714409095219703176270980215689507513834033964067109126665671826161754991927551522798276808847997190193357983971270872230019454351704879176294478035587367298666925812550281471132791319802749675305600034855563600677473060018127928279714573262083141260631816677876429128530936228162427293422817124587118963583113999724715844285876119639930667500321500412302776078301528421142610740051407198405223482166100205633622994354080184363504467163335170248916777641115301328603837513483861406818371284837895934414925286126416700353295474302632473517178347888071036910356523415964928903551105343917208409917980243179654936800655002977458576052696516105567794119140674782718737486914583551891009026610469028270471860759056320113448277950465259401866591036718874543447058938897709015432610940545971386094769698946574818633130145749124464350883496540178249068662648776580035128816473385079260871180056660518308727107135005545587970805311112514288588959330672240943677178371304079805060935868818656326412020786554607073294959920675228848311120760359375099156908804165614809813569935788368359528409967039297863746122883214708494879104987904701543370063236001711034089226235550728355989704857213077004006773138959626770716522551505328928117175298603820326067348710103853391332723279316439945487464117674881471148991676329211610642521285474926492220499775123802313303502616255417097283866119947402556914654101196001379762133012191489200255158397177953915969064643445697447749962277022874151897733147417444262162427238066247990911753436163671082083397399717546397319157539204686544319515928379805719112039837402781161165954773986062156495278930056852525862746095535870184749721392977519161159193277290502452942409659134808535920340508139626026877969206617538088469158071451028852149411138533438590053229960422483524739095467265404835848670377218049962864682079242432146826372156241158662530725255237135916272223496865739372697798396990275495393575118410614462345747133814866344285308770432156266928404206142464261588710325349440195565491831232752562566515709658083454782600741172909266754779348298801254717194592994771520078917367921914409143443011238411358876712315472946749423181087436372062531977452631502830424133889172955839886509378265841616549718934205602650187031080356258249547068781975759243925965657975309349972537192314577780173616706429561635594870672246165580677361044791862726869680689448600229653738765657996017383090568529609761431454032589273798507659765942969510377193502070690504196002324271200823128104214234069286209488939830470552962755500223562953963185672647599985859975577374996141357261503998739889025732990350725885227315521607348665009282879385711609331441556170573403096194403024418472124892308890647819735749600002902239776730871731879833513134703151080683664058273756987323100807316886131927157878440884770237397150350750591660450709416483380146360038039511865313267256411034478205921294737874964150644597752550091996873819382523128654602309898636944513994193878143679444023535581322831316120315217254361940864728897901536833088722541180444071815393230805021256297285082106965944211502899452428553776741851379104609023671079944573657736048521263642810996359895443974537539871303965515273262903477659537952097133614623613756944262888178127551132861890558436764564252545311283093268362393936655826720683379515042205110109015500507847048249323883431934301876166643453231343764691605049260666858131083300652524529978271010493326537038300040942790363212484860121738428409373889981180250128045435044319507953569019884231718249927598202750879495723258256625736059335318802372169949962825517319947829186769434298454186575589514800234147157066132953443706391889528095342279040675620617111225948543922884792749867492564950021638778053475147337188268256161981915218757099778138388102268423968034474742662850477837237045122307986997672028652118472230412919005111604685003894489528753239481001573443074307510124778717870313800582997768113586975283335144754288726697061040384923708741844746383444165096800504591175722146624004142740585555629805267173590579354569140277224566651769587295276929556247654796238640812303423590792762967259839890829078925891064909758242753042487036124788158692283761201626478312253350734983569936803876798729934136218654517132056083198988251556975800799182642992470408441534204374814840931468514630327714823097153192145716045370424328288110582052370316408579080843273266947652967297052740429284058435100254345668568801141112612260876200783870475155226757849145604961665845888011475002303109079789864261563071591737714009027213816762051041902244614684488232793696005436324414618884270385262588446846800073678910714420101935042722736431366154473469088695736766217863782874112249265679789181059219325941065522011097396512308899705666683502225007824893002879079049534658172079809456114068666966916627349587395865202572318140907190291193521259136043533623204560286996503826854803284685907739383778002264578710815592135268737863636318956451268060237394920111074920993277845909195846194444886252075581099159948417508437460462805892377617672086888466509039070266552046344644757935055299494691419790453871041819685439985753576641882124939439577396899473278883300903410799825718452047813842101448395183413807949642803193327956341410005482686054228695716763351725637524886373213682499504532262135012586342500425129637019452357061709569630986809434185926393418450316632278874610236062263879706603334697530232165410807338993643508160520775896573829852995803665464937978897002753884315631479825759182327969768894706280211449970961609139140932665661452039204093657615086515771073056737614376614089061720306342538357421490042526036590959185970057491197394520676732888965029203474177047704523216184900531158339472585068450521448336064417787942543674289010523787085391482799909963902542858376876188186845908913556559814558722356345934929849749262738575048485183251802133905549661473113411910902653612419894274812922157054649092224815800081789769038542687827141404222934304322857109611630861667059010499886862917691732904457401965918453779172281556575433217288489357904533976257902185298734424399433283361303127784017495807794044771422754490870544167240894171838820688129504741283814491506459295671611637062703502645059457361631085969917452402877507694646819291735210705370813394668612393510405308697795294700139873630271586011334762422268024196620958613386224938011217465003297185310132798438615024750341766457477505436379578952917453136882277029228013538673168207698781883635384236202878146929083364608259668192630537043826683605273216296428357569013796332543348521822917468053198852850148093430863543857793977711861820052192002093542520088280389178049643787651900098884676754249876945630286977328279484737196209249870352032442054757141529334817462696635877650222076037914506626868643242801851615660555219902009336433385090586885984828740737084935106421320246584371579209582832115625977032719978706382681935223445277314594277103373895484273140164939373153906091487884453208062490274692551135596059129532233950874413130306308503475833143392906697664804101227083148392193747826095804482194888251483122047895494081765178289440835528859685671813346354047066101121961228230967260526589038950481904746914156715513486113208741793280936960979507660745654135788236526287823579076666397241607327760190192864749859838268233504965191121960558875479078198529903751278459923444266993015696020289916456569794066105336977919164573263149711750474199062376847190742415602300014605058109646178343736789869040620192485616373923428224672189084887193229049357947081015459839932336057612658020577282556171041036132277003966430945916773250274672712678268292549511783731933123611934361249182088869661133062770179009194622069604815091552259627299151577103104276502011575669965627343862314666833384270740723072656799043837304855367620742824827512068544393006466262385355729331043177970223110259416345071785656160470357377165226795188040804701419207921825573554696670865755267028254843567055817741757568227413208301235337952808032813499055850474103925785590530195997296149983919244104550592900929166839711106351700653628391878391200496806742930887537655892672536332218251478320738897011694018739399754197317257740193549044403452957532998137144653741347046786965728098042543211740373603355902138530361999387390964201303604892803727021765439196708496935649330936126367220213374092882498438196330032303817669019381647582325158474217204264984154932209811578576475773078232291594429751246553123272228025328096252715073737072907064924056594038321228615087530584976857698418934918979742129508265125122821978872243542791236597786812243292908562957659135557327906214146532133802464687292807189661047678954908169159560688029427410427186957141080496048372302546995555085400279288753404521248838026448975514353683665975852392366666315330533934871966740048419805940773352129502192687090626616797142928955549376991844699448967501594974207401884278151943073455877655901306085115170623814271084368026859475511127431022707501995938929995178934360440216286535090192424880919112578473105304148091712983844800663064863712957238439061287462041168026736881599370131869952173165975881774401654276432424597373810104139206145797203937738127417471726668065028223102277208823734128552992136823798746861534003139633732493698196603494411648339859082892972542874897325089689921207726132029822935233382839516250759781782762571601334636626041297593955288350183970909692627870436986524086367514398791089178471316556279954316207285597212662289327953689066240956046054833342929347907352498069748139883608746629244981931972536660989518687653006831960263184159375537379668498107986270349060829243348996854592453539606150225979982239445776675898067302592640321118218362720981034045863848635867403443996397078184593687759052028583153580939905863887969178551077245781336562219830225786456936616188586629975945031022573103526689112308432629709514262506045507335107623596942987492234441904508094262535229464311410549721314388258313597506444619906271264260702114196066144897595071362863565275019347565417478548190623044587275156351538413158932239740818590564700902208338226273551563149688861477492217378998223317861424193572959489719091873640859543072034445506217132995034685950989178722699709902685233400443127417497879861525343377502356713096180215258429031509020880540916373848145842283910588247211241940067509613234937515343038524425112931594831835234808385948767776001838145227837243483545726959202860191775532360472063528282281380079201825389088239450184707692661324611445145417782558636439464536518589339587750996583140438479540605104195392408709731097872498216246929760241852375724321649257789821732491148642110709669491930837305635773900493324995426017034098058118278989034384246038634215928744719254155648616317316695994463761305760681067951898060869337994223064332622290195917885777825065476715337981770371311004046669507937143271202239361287080872362281228521180885880162292718124843487711420420401366411572386280478246415370873107106062374560657827823032416107295550668997513437353810802344474936683543055519788912697660508804159656641537760908018703698766083253799925830470864299925166834738321902730904734469286591633441512552298656754042417159747025967063082300164916147718537237239801318225933643721831752941631759116956082070180755466887655337711813200244940620914866164820700848450970984514677919003762563018719226036908077981437165698080551601632289929509797658227298299304174473583365916469887214919374645676076396009877740768079189749046647209029147077462335709508820501269563749730330360756316038254391630560942430040583475789528714431259256832670271563107149644291820453537350484780862367787050443685830969253750648354899350883013976726614153400106815716420824171103585210227006212931091034903262438127081185133507425095826227030010370128005267866952186018279829451043285965260446747147959700584514239389695396818041866710061751072483528990774607255970693070005438672569380466996743164476007369473511216680568092745303741749879944803529970191782930064041265431674916788534896904579382578541742554293563782408553130352464688303519675273855325731258389348902091182980139985215081217197132271004814236293932967715488297224278802588712810248968250750936297969682700397631737739326945737880424871680184146023941302717453397201691121365868930933574857988045746203833318090627455003886476537813372076388875326300888417525223749372552937323350273279290018100043236859255901732685045100485963888152548465464291688239987032787685624736544911548466522873139139197819364335908822322554657737612476415996323721327648720002686014248943084947925778069506506122400522180206936750942961016222393410068598718072613397142549107213976319840581591440479507654383551493284722773171154066223029684740112217436222434267671364880302052291154726088446316161643716939197500650876234651286784256735097633692375598311590673649000856845966851846997772453949500494876350685630963931375765633972614880362030242624225400676232189432447314369265539347556246694058162479513692120830156249522968339918700984139529578255585494580591751966121089984859112976161645829760997802891757922236474326148982479259189029368395990555509657708057599521119366621161113366710189197944194182504537358231755591248797504835095424077003869918302049640076406899336677786256243774184515092700500782776620677329858799577123770110881683940912661070561049112719759496285260944859371103806260877878505275960298678697124535502644775075759920079968814171725143635204528609756336849288462149402345041636963215897184632365423566137407654762134290436368152801083144184478949043451637438718684202143463668086292244530353463742626921221023410908635218085946841822813342682783540248863537617142496921160534953047682974549450993361405234228634267051452634366393092936795537284103554667965693562362635040823880687033244945592887943034760111034350704486875329125035731429975594702795108187085687964071166408981067961094294118382456019067236467509251096857097544344296838439201656752111249229662244276853476426005697230086742042430536472601118516117967462459270583656172027337487193303580022048864759783944696919968391174733858450809977346262380595387052373374028276817056409232415351051574182701906682693239336185784936051565710454775367738782307190973305584677599037712692641704227309104625120963647885749676103708141449966145457985952047369548309063263402068983479432926788202761087575402216291795092196082781928528645619373696372777457060203988654139538667381580995561288729405775494406012804494206310173600033274726640240218202513648365987456504528692669313651214279710573086280504327715290532315220098480056074656282403360754550194396395870408507267853982681146834123204509050147597265592479583383370867380754616114885891112190737262933282741404736599452055515215135382924421041264738451441666554093576730963201016076720713402399130511319142906948889528448748064789777717941366352940373798910922258051579606362102673373551548358382912459744789106775155700332573189101133144039733345349539839672223070507603446017979346919971420674532719322946227091783460066890187287251376536186350238984925674427837408641522924691327743466140013303514850829250817323311082846004876146875896357472017365138155242393959762563376378616899365324958410178861538649428572790988122157041504691049997508262970605393517237157600656369036267380633172739822542948620108937118319865696930137550899020561660367639923878810139563472544818471655789960763517300500013749095028780953688522918530526729704057539277327784821896907320703031190209592618460250272772431966458300703949833668321616781090591981349601277634507219671083662549302861612848072151983599190940595615830642116027146508039824789845143282174536279942623364934108159066249785090168272373567345028131952887156847297673730097440405000142143608248505621360539008365611612713031662489929846901093712807813395265399909873740789747607447644595811495671921704438094967528342280651479542994373035367960842210744433969309322747054956192522248160157567021320302032540814262911849620329315384100210565673969302852567277039232734101593164029934354874746067295195686156479052682681502821417245785882103274620478942010250698703533558559242517906652660019936881781771191483706129842764901808806095829302558934948948434173697264813370327257812988931466136133052192850017879521542047668781119314808573207420486470999157679447245558887406555353619751148159082192140613687796329685437609420616844599057453074844258088164957046644387255031655063615962340199187034139666952048449796831238339060829707893156843090337467486156800091281608634518892467307721835227724917361485266182006873048605524381720988861666037976527909348456235435790047737881266462998792148763465458086744626311135707631681405155841407070144267191316500052603229120697955117602398719513490651786340790654061117840070391655197237919779782075304381236598901245998939670183225353263719676659274031275964565211519021250595636970122006570235819093830740997448084841029298735003334680757191200102295057080689096058024330787369609830809725448691937773116354379664379433203290168581167300205457381835620919343625454516700847695293625882715539276003048027196528935096719498017376600437743038561934921937531766349218718293600868450023614278317215928644300297928546507664611706332200084156494242604260110894489110729595560012439214755265747551365719464753983343756370701725854611399729504968248101333964068971071529704121936370800821865274293267067183802993851165919394455633534037839537687228904854164025078492238571538999612023299226174608190019206275479988975999985848525642988863671443363831602024364919542656137991187498478454495618310755697078713601994819465379301563647849918914859536149990349383619216830860839926515314381123440893313422236035134718050946482359470870636584010271487596011202980586908861327088473336741674024532140846192724811277021998764486334630425783056296092911860400903420069305476483805800595341627101223124368817523783910415285050653276499737910610697707886181143574328966450517898564464972454946276077225534727875265195523736420881240677140169913646278573147840313807043744138863809466412218413532973378435169359741969417027214471005760755000750659913857289202066535264132439134047076897721999793253319518501778484870987616408204059380130057871194961926590396831309012315267733036779789333189545936209959592342347162936472609758398832615264230798012643379071544111635385062462885283063578154300430288101221581849061386768993432911394914083546989816139123112390937411090487946125182053544015972440180271924899664170907065930294635447378029438723602561895768379215604085010070075971490188945721758974979104174686988708348804746759219622567482078714514870197906391607682678775625856530978837473007114113035474616914763724986179015543510458946663976522116702139791432878984350562555381637652234339680041432613113298815537067795333898173592737767357418108965052590854017143232423825798056784279250807908580281892146113299101705312304991466714752954827540059148302286766364906364656697677385055606119960963648381058165735287143076387783297452259612605390518051536052451378008532928866885488878143386955961527984077552917611018587058629654449739130704781345847792834356285452349289251115733015412555286550269054495944145022270051287971112934894398937757375466731867528401281397568670227379919415244706601839620743437186469596451300755245083265661581584355428079946956540038292641526931727245173339841481278275505396276416135389157784360968143781509357950565570728735090019015791197716101897315841590028565728263422039279489974986788067647364301097450330253405071236539253993648621371792750186356051575124808190765720713570765082094058374663080482724568726345602264431792440004125821176423883389609087667395329537452945345046313850766027245910900171566535897037084663239605587116184916073480180096359595580095933163440324185079938624766485574861305522926223297493511853066559500476767065383259561977392728967333567898568984090235198069790371997971909523344356577755677465096178432382694775799073511837449248488278209336444427339688943504893558751410964222783100669386796242211324690883269765380616279876808358296227545521890501160071720928175144514518571993192281543360579381704617476111749816799937616334884028927448816464016235827593398475495022475095644416411032330644784737125381007141237182820360724783372105345393235219132692421948389667185012496492441018633325467059126307491016207265237703367222332865549904553786224445581701665077782611972712511038673094209055695630488843322122043738521167712917996181952482675310384502540415186015244957555510456073969006662061236737147557252234626937625616196345856097999959214669557626413552212452479186473363629788579025990023508508291921888897396573078576432385557081682430415642082418489770740035527928833569184202053932072620541445861837617909995479685410550057637790568133752015697660555193526321796997038762599913926318669014248853310560657286157933480557128535402349368690445191426155082319459738339576573747999029504330943514038839730013753299012631418578777234169658735468314326972015793036110552001241097371202497025550270085129430551863977567245848077784441054641711697563005550552849330928239575450380119111996639710711442181316354777968011401382288075825232892247495401158599690330782436539543511523841347371910280959356506599197138550918055478056635552758030759324289081811543615122411011785524851271005615949567711029659715445527727698920960039200396893532100217121425906440537436317619282709786466084698518270919231662996579200916242134797272876485248425165250346933960520277277924754336061629056060297912822345148703548983490935327809697767562705419449220110564940498791794678926891675625251666585569172469245165081517953381104123193740433857959051446392283873313098798506982476299366351176427788336800053579308587034169396212168570182543144024210942350516802731810701606260771998574014982981963289531861335666601253874683360632030291890870152515024871688705238566781432343662779993649808645431597325655319270620707359832760137193819565660777440593928178795213086750932440418141859075594809385663549005238698418590844618818747705851461494800168620033195806837913098113739118009172825924138687924186000920416807789524183656648530747130356166938951836210622877358701225736074949176103884255496970866005672325963966344310992917900661511982376784383054871936447889989288193807508222499269488988524259919930790174065452731399986095756398361350828015724572558824079530974098146274690462858353974286038615811585273966361179789147937076951949928637560879326867202771686705789915418362676037635397228524025869317907097575406820245555235525740754808739287967597375518045280704121331992275247042055565850555123076967477404688451593024312725640095120699257190433553314129402737669638634576797317725042860054980728277524827587544808356124766950442442858229081480726249641459504614286613444668973681429266244557060535236805027240668880131792801371617310295785212779381231827123391140472456317175107273448326283606176342436610785697154250445186196068102934395260391447655135356306991612714366055580557289979517389236092467591596144697249394371329544443800844473224644604748984091253573164515851000616240446774022120597024102569000536356146140118614816898096928564142888855473797266167185262962794983381217574690684558060133471437611098792103528149716494968299981806844037775159923952280340383227443372453550851199819189015432138467709905595482447320192481134290534311431715853222660640894580369859533989635013371227295073261487629548698495492416889144816092231684695779750681604267541477337567285917894499587778010976177113574054755178258404112262869236949305090493065726336517531087777603614236542407370498981830556579253097825070847306405383996532837480284238912228896072115619763069892686194838734929974434537057826278931573073437011018523402118845964324828043245512082010874040848281924869126535147359089460144941373099268987738932649647105825042109493743576192453140356116103438341330899935538278598791418238411449294442113935628932114055454881284314049014496120028221445868187375559721648608556536199356877038912287383853931454053845449092382923562316409354957060710255583126979008064673857924337436819109049570800993999847715582845806778424183790793223780575340463429700483074030359659084821381499159010373689752534501749875825299511900160919500069933962934087052018420746824460779506248574024758558849708833065285661653106954223780214089205125236575432754460584609763224953060674271953677334792410631813025974030645097140733067519597323129605644047181480943314660661357672953379848044291941118764597641941343169577874650096842407296537061211431036910245141370023861258146628529226116181382049929640325821033294616408161529253161259645939672343711775085745224728350831552779730205928042414295321616303237989397778956782762149410523592902301173544145392902004882625452865187377106624438182615862850026469788789117046182564509607886740681394176842609840019674566506596324956014503821217022156394164110385210666941001659183917301600392259011819571616102383050506522277451290050992541485059016584982232454451917334678268426476234432094235440723590771063371982174721585984759212273483590523628024793698536585100531205814130183764753222267876395710755616227559844366271070592316426866336916068135670951000304663824812734399896575892326579843682574671738112137414657403670783253016106107093067759949761292800431456815978629629072960643519899038019252045311047800703808444358584897234792972868928480157802672389834250449080117526856166826420630442160248288609019296413282240898294355929112399200809762459585319823900704320532459637536150359086958527769155290715883311114325615528438660563453927768418978095229835326246088037711666304154895243244924588271655088794473694682097359006735749964768235635309348139862021283646592291983648041533322165652898141449587996059735554048917913974311160702979786562864808817925887212663742617893252099813389182591466802345161021531132936267035592595884365696477810647044483797068762047923371715656673905261256747098248909420796729845207888529109557972368071936299745410448957473517798578886478944725541832666576637256077140584108075422523182778314668302796530246613978289099250155720938103108649140734613864840430808527797862908913452332443206945159859073479047560136941181675537257064524527922562394406421367049368778116564420147608625253840694651871904330912319505237665740355036351943353666014964803890510281869713006816402072710570813821906077362520688127615960277354908340348223610025084699203905647665245630593142997073057535803381142832509401670883201765517141284213267005864040931776141605353318553512304718913985475786798827638438462460209154353841534784230311190673345720592681017628044762047880224435811063722365114852228043427431341381985216412310651506085481325756879039061509870743606406000298622592799631939561880875203413417916674491017964078538162668887503364312148733906771306376096446611245481513792310751880617069018746523505193055722544761126534136919449117034936406977734902499177649964289321248033660210547535162333668899381911669560069862965351383728301371634779136445358873734308432723694010941006552838378376591735772814442522798283923398890152666168624069820020604499423183800611831464088904570589208721818443250320558290111882482725881766219445165244880834680672176156392834095079176586339373027105843027947134681298873890163541547070188060576396159762640405394992748830687150941753915480700768663866759922064332101383584684182199377315591375579900290817017696051783617484761561970657601734629075926441105624043117010480034060743931026644477559448662803162526753853491359505443709534661423747822029889717989198394769471215433721242086671408264409310255721066295667114179221176965482725311288025914622406767580489814130214106455384230326133417202385967261538469635485826540765123157559130908918276202825766561451969863495278063095532382558725096562221998789469073809940864345175558257509016671364168167734586404586791955810846735275171865951600957167345583932671185275866391853911482402915345253615653256096211894126508533627525566512518309863898553640886720754707870666455895502413053725271207452953229817308603489371116912344837151762445901317468984061394713237178166916019534170406888408013588573457947747934868844653388789933205903196163511907785050222905024234986920267891783667011408930559658562429518558440618581045294056832586899105251227897872899776990152724398964993785020814911957330350385571011677542623714937533447916676856382703489768807611767824580432171325671673903240613774747286207970797654820891594369825853374153649733989311739333743185704749136899150342057724811645324737356687237247842909388727042416327521297064907858238782631112013710462407308249887384494209725854072053404870576005645796922270394102859336226352583705528520176243748312317889717676904855424875818420418543468258794664288790889080142876393277295863907035917886284603974080031922048457381648903675528271170056184412134151177189792258108702896531390860638222361363262274761245238408552871978683087922857919115075319719669480724384603396558650658065301356108359148011927197499553527977699675505373370968477038780801505632525417841784846063063167938155414604794436587875788126675166133733010892835764064288967095455952895077839804842527099734226434740204950632818263263137125224821699002917369843230384128763800272225842548290485615863486889380511617855778610448522456105614568162276313171536139239632436465111372832319115771675420728684453039089175121351446461819709904236740492415950775572980427456100848306881309682209111606302608570641967572961270141545909533577991441693345488775630989655951835619819515102637405128941861353028535995502459906435682403222843678646546974102947595173614626744968835828135731938425040245132483057817740916397731634848880165482043636656310827712634599209117815517279864170485797540823819999346378019383678084595920625352043671447879048591877883005438872061073531566247491348844531791032226981891342118837630081617173610910246632874665757880410518171542884568943554215751064303666936086528660695677008614299316369397463869067114291977967273915928861374095096873520246959367291393265659655015697389873950511081924690643231313136991832429930074882665470118965899421001367919973310024291085755397706399251640601069186647658903611746941838284245848587269462605974767095201378224206485411263435631053111142001893327024362075574621734757867375851819983947989234233159257598295194774391746211289665172356054418440655356374504524806732098330827835434315279060787878591186779977785864291012277201321482104966420588810424372550630035402437470471529269713039227501097072922243136516871323212520318305032755303948028768174838104507229652217160079118004406877766324029229017359727448844884624321680139019875308498643912255998719568045646822384110311262553774748634476816255618859463118336837178625187929625631060423435863953740193158002590551462109297627089663587178771731743240461259124121200708098486192579882669266034037046686420443551110899260488373840583211212133349043096906824536432690944192721831353798821849529816971353199783729013673224698236374037081388526652222626972008913629445102230590480670758409989836461135104988307441251178550278123634989322017597245296108055385609920463740276206994267203564468593619450781438092930879332010568298879118766034362075547867624036436755277888342347269138781545299213974018389382157766191658478446423831750941862417287941086389189503952800685881043312400750057634904309348854891323623811154285181983312904682327507796005647971319195500347784178683504962624588231773354334751675167660061926771843613146989014237106258124378855326474975845001722380482271035748718378587378622948221276143579814859387980576446969145413292471704287406273880474322657789043126094742108212455588827681274120251083553191665580670016147824681805477614780014695574346758489728888079562922764011811739260409480381909242193439251845277450046758517077052145357724188653126518611944468777760878401475924084632083344475731283727457207669226439069394567732264315633693263442870684581743308207283022837372644603742440603333385475108897798684868141829684478646962885111565836872194753949319392112908868245913985162750186777092127249214333908064811163898002097647660184904985364894761898278168127561655298202924518290738689799667148102681423348448437564785059173076096709012450099024021969195715115719169002264094938909749815622576269887053475244859174465636337756504813214646396132511343645891855985606570136808255281038265881266061765300643947391568525433155094960106423943373032100442371800098704652693562653590398922530204891205024364780747232316729874348770697865513035771364571061887328677379831882949027065678508898684819133158656652195259289378124111592823291848309131743088451199715409923351259942838310786405344197164847718047843499182498641761700863175971500956556090833539996472005578491700858665805015307427835642395552414739016213953268021759522186573905362627996325263352153360370155195023824384913303184964830194496872841361574641385136886870838944648216158778757223911011765671001592859370060795480588319613642416833445615684035805040347019710575177558249656615128272646098108729849641648732605962581838617943135597529317275463451482255970217288917672221164006619370211062194041828810473672851636418697833482363177060557596545735869100125319663145810694455855818763686181268993945559248436023442670829303363057925027205657237633823216342329911029640850317330109439734752751631036632812452552946409740430885163445402597138609972467299755227229204975331735130861091007907950145968686624190411086678149173909814816904996477416356707444927947563780348035685992592522799934540046480002850698402260830335708172957766392980466128504343057467096023437364719421633867446170344842354348199577960842141922528898163060569906800135706699714785603307914559983578238393102189758147279728681245952133105266984282446584525122048228327976087714690021660600501635032661492725914134129893274726228134744157893078383665023839235347255805615438897249208270230100056779868006604560853740220326272125909911104634988723526595173256824252886002283831135932637372919747597579930184172586941743322741361327009771337346377280318395794593959562351871461835564847613482354521990427833112310053721085918509817835940853158267128220053479330154492785522758009482356703147560023241582096993943881629399648996015300412876262869963800433356658728555557457156664581777885223581789275170325359528531507441387538605344350760611383434094355606170128176065246864435405178144124167001538243872787197741260722183683946042523114589743849913657685936546365330613596450290769883661182599976411102129488546204863888103089184234098988942386323830752697660062286545444586317569085014427987608054124938050988380324065890395104563324853015222142432250193561179829720505517491837055213295516281557438182653238315695066067609671623447196545107664729684297656774557152624061967871457955517957978333077289421376614794706941753333286684351884069388986671204052348801517822032137549430989575672416286681750880491856074260367881321403550810661443331600974438612528338572388056978425821850219172922395486193903143824356973894420931368120598060435824592574469386930909949751713526077126237885930959714862932416928453990435012782698851883443261852849299106423400616690708567811316219352944528408274709374841256668132639850827281935284441921922496362954918157239699245579513837132330804712263416648672679542845762769049536840781924435066859523907348158305501600170045639041472265030492296296902636878432566162960074290460915197125066017347132793760426126394774601291874404861062168035358476316311676721226552390980498613131192872934230880764454859062057630784956622118064654428812498137687529071975340009823876431498724820179696509961862418324583293232367420073662928581984839346804628780861054482726398381011659449268040313025702223253923857463387490738738571370408549373501389717791333105527079289473200079795294535095373171941289311151932387723278310111258028074938162088928528555910535868638509498189716382231001519228028065017504746848296380588155784172796435323059665281405771125123019733565099519776635211295063853503013431999727623005548174477203066624409468937925732950353920489470250672585890810573301125620421872800988307312808242364570973145263927117496523600023212775730931648664699977400338866869829199458197932000116073810288729758358745339443131840959285724467122614636646843993703369411048663307595974749766787328221916639452065465892651050903415542630309850231629928924459558219958109152961593614442596555068354664592561542521402550132313033305254910569122058478550094607988593093778891705015289595242129346501665068012390211844129428847555166387007931123315057709029925485546027128146765325524836995942247592373339297372653395181775369211671325681021927198371764495114512884057737649052449325619959793724155273780560693295291984565108344956170520733277789650149449307757588626159677545172821617312965508027496890609530289021370542620181215832396073414264415804570763108946601391185799687308457406777418172147277095819391587128534618435622084427570085448047969314105147116077971799585391830897457445616048651047255839247644422612101960529757627312271505718404418446306122137577119730497711756038057904346492159105741092252138225359348273001194216607694083655156764847851308762448781343780954067214895418676386122903204041830583441174773905289353387645177254221865967143520549047553442850199560186201621090717570438260122814928847059868096147484843862106036594917249110399800177257822903374044000087754404563504089990258346554879605070726985647371436202693475805754854764252100569282016286448748096621474612739095101092187276719493748380410342938630416872852745463294122058733506837743055399823979376721128795923004265571663105552969545695715367132882110726291222856548659571198517776358789443588039474181179360861381818682200243679694037755169866459760924148175276860674190645891609492130010484794295303715738078695850765037380298561225774199404930402482839185080134860507528082615916419306197014546533117793611426526094142454825317097256390849416699958892166474475536451036801337860729280042979702997315766309633724271930032152007179814106909506210248362114989686787195590616945589046739663334313027296356852504560511110645166080465687455240221493423129864409343504384264460544842533156236607175938903842697654129747172099429011627528272004534698839709448978675781992999503942417499337921055685150688061822169412095643971826827614257428107386557552883558301461155469268368660601796657421492858424470989784010961946086548136004403342307275785768280202674494339955513248898076214564808069104084110753748753991942263688360056748276776571551664836877488054591426392779456540644677157215627677641619562925898841822886388330795621937869453963928249450351762263058878109673948810001896748854920446490648142041786807464606010715019221955913825240264989104466509044360706652596828114717924061274832952443432231869554330671700445903683530182196076253687432483502096940875803397825527137719513600081147238563517295159804991696008335419852193249604670088832026556929319191044890972814504435266118893578790250778472315978960941724802489199883394337565351399552674725334273471111730336647652285334373401864109792105059666514064668180442322107965755108577538695860709558165098264116975397195388686707505603090972343223252684118851129502390078997278767721976437822883728605179711003546944020778358358315681156048774841314516286758262685724554516170603876020224247716814815682081903878415186761273503985637617870994876876819139408024449760735021764367178718691770441165407151149171677767348872291079625151063942320716468652098131773077458100340924833332856520179232317724522043649343074086060997005684937072041411533813231715511892391291115330626953195532904047230890553951163568263319292394611847484511222943762777299522567787350349001741933961550548528074549604953303944442021647217296565126572656106044410176484141943306737281675298871881575287857074286533516642464437440013111854669930096199710665293609484569309773810920407627671590047049461349909878584064570050861129306953607896159708006415105406417187090351347976791146849395185994016322500362182247570767625511740759942910613868938129240259540394348910471708390972349860174074318280782700119203739955939566543413395665706290369349386648918272556112465156390050013122277333705823634389921518476607254914232948609276513003765956443552049279043875976738531952136119880052254291262764154416200885067891146681380893978096950862385536243064209447519819042053201213116002131391104653405677603878984981177381589975178309922442135915165128838349576194936878493851206562607550149761061281131399121373792299125313539771617052500256479549504165386899346491816010931737942024914063831528858820016790102200968159870381094312485648210861072671917300343545246757429144153211871151033702250375628743774472459308477478624730816126151934706592512389858429249868199524900975508310214066357068926719569921219487928395298002647731129157891838847450817899973717775057513685536145706898074321289929008856374231983771001135225059855610972413492242965951816195506857993958944491539690474268471009980233763733013005473944320861919198960942262652693908321193803434284704418257327036607222921129583118980096888184734087319591755074019052143054415747497957162360211681346968384320658613308288658999643428369812151651483833001203453419938026533366115361577753945728706777280029037438539258745666818479096708759446173843382739808052861254996008201451091910252912871675260180750511636937915055321915158817639877403227989706977394294044343835812547267568724079911781327090654397422285070644018837388879485216026202101818342689423772412327035882833366012117629123044137257987967939319454574583179251269781596392054910252109042040976574235339903154355000848505409870138514590428108218886006767297113688550720859768923496053708033599876237814085439346174564668796310251596544915548264209802264803008921749685406625222405830368625879702752361467541261905976071058117365117283815856137671667772886072007929961941798295295633657669610757738405749354915119838330836899407315846218810424781223422819583892857293426444043199979336683763587392942743205146150250963989616419291568797652036995107593320676612675703834896593371837583681369191080683654103985202930216995608995059651024430608078330347625795198775047588906619069701231777512975981203890823944704506591442910906212465277778086712905571273797186123415632907958961779734705235577995221947878012238758949273076836754844112003104242941227994816826284097690452538217991352276950127642281557467189088663302614054204936528046188945496721317925681631650899850200001821996347481477578271521702646872621046879433530901906898970768459790815306995336665803164995194666303011861616744180704035952516730702189239541660933975474795877775123585074151238192806967634053928253410916888293380172476853775966826235461437944647464257144704812944980317747874166482238585087113694947835085215328572541965700675285517111546142144269496646606404046764024287917052884812734083042134494558629391947600343492150656687060434897999610587747181574412337830581216159653519276450857266164907132004556936122055864160724305857728118989052750447904196105567545578143231292033043924017515498205165746667419242086314388299225535721645018244126216071698904229074275995043685353554956113607514449528467758128280298379936777683436245403590719857464802008534404163060198144721361333109721325873010997226159089494731716842220327943504513615100095332516482684189745105504915864569330583760101004167546800687832729866078416107740909605822673015481352976819989626749191281538537315973039806930063194115727219810210336007217343738420958462051998685523747911389231804346169972780512196127421056120664878159239943827612268059861955083469472100122416934306979482382481727047985096049048680490367473633831350175851181784049297986931773588344004962932566847602326293487176581685015839765886771163861732351840863255820141729022884937159525135419665894740766973600270504360006448524309828018342483422644676368376625083665985390104030459406974150027691754292474300615793105370058213702931434565791437026528995753028337441228721650391279514434481825633542734763729775853542265044674447106804462363310502703179767962362920434149439984855797725430173893660085134459916652288506020565128470431619223849661857778702365055138759134666288808850873495473809023169126662725099862028170028738684497802289011283739114841348460622150664002779220631426158215420911669655692838466813266226931260225209327015111268983557350658998715431382393719200111458853702466062207568874197556364601815629602839943441528896933318850292557863640623013445482807773248499450263542877030778634474506765304775970194754463324967905022052054870169401742795576429513903629467623886296979602634493030929978199736103260098659132494545133369743646849335984118639064351335511920728450094061469722598656187731883638681667893963663123259833146796532609959830043350343703621985603908877092650195209363648049270873742151067237568913834345537191969386655581103963661869279693782586779637469518343107203264532832070097528315636376461178274792210578722038412992720513748782867508144821702316293607998345181296668354444557046802659384651820033557741780671907915447709504171538130146782832806574379335319187215060459502427953834240649774262812768026281001305984533413877312947970900088227301387378894542476848495261202121164392967266799389058562082438998417899359257886711099730050626090834221256069333452083773572827559244842941181012878772573392139226332975753721602575904070721891870536186098422230269188402550006759036883870358360569853463211306082820838746017588770441718096728092028758245005820855332300448043324821018350586713273067697308289808910022442612186126159871295476246061813604367199492299151115102985049299839334288631807703832998059995567232187081074255906037587269403938267697058134441819573623958680965985322058083432950539710222831732499130829035262103012749048059129139568989043544246306047956965072027289213186246115993815236524302662322971381243337433591834222778544232973175176087805492378289491080611953099925344919586462932151697500299725225224562318219900845187637865693103187112777814143452256913342353723848281934068762208317380121932034761288567119623558894476674506800463543880984805197293176805134286379586256232532546219118062057599715503136888671929674553933264513019557984526078683515798464753881281735562581917322637328679902920540747922973301953623635801949445424463981528045774911594283949086478474661276325985133415834827265951529841280526354037886816505520155649876396184014313800485605511231706777624461157097016771161282118835396170761868764762076270883837789813812973520883889406433919405045324465258769697994930773746637860410075677135413208989503770147923725177835561203787663122112828421596155777396132539013994257040467524940860032931513506951142878719836272983132632816362486486957831545518006091600058108858749190791143877366837323921584775347553486709591195447083494745131234261473201814749963644120473290232899682684335725327263678210620676803472337666682196139562264122234381638007301431876500358640791025051373611996465219197149919643579882320061016751338815415106642638212515355171931653649243070575195406435459442134190361902302808254620087409767340351826439717637346200562127638464138333686088797847502465787824135626923854632527086787952656728751344671146741580836747995898403384320212532981477381787440190029341195521350049757303200480748755836672375354612049481089060141632636970325448427373085551486944945030629136789115061329430059929115703243628339517122473165787176287828466214254825125497077725763024089446890988913541426636789364526778323235939203693258471834700724593735922109679808371269100349356131009515111286558094043662793689888906297036863374604187812759529430926037029575468334516822792209814585013595115697615029248805287718806105515395419585337379880358109656149806488459293726465095297920899425541532916890686131212092535665859455860349393717484811253671715360910821838236747091858700752507745613802141278144535479015250319214863997161953360383714788653727767287070638566563409825604639836614511064144147201432051822029984876662564691850885099504817814460607744365532221375527019738469443268308710573046057085609353167748794289287896672751814761893428476444016246142533608515855624497463450284334970874965512875738510728056547932954477781706021102903345858880171731273807497333386816808118802154107561647638509134815551583174311019760020374464951313077382595213419529990163054695836793270000777849646233292323088427949195447777029491104671796946790859253306383325531108464042782909486858034547396772632513528493533804830226323712050424979815782433839358375663223252904753549896341787722593778260339828064191298847288274090052552809727027782792963954343482401200599407821615487869881829395762390207970635538626774788658962598843741721651790580841947827290993247041216983760517696419552099166149383142771186710176927790254113260037739328917569103575309641503846763299405614442922033572806336920094953630842232074554191461946853850383481310608971652225827836723826653779073384667134051194725532816406046798287102875780309945945908978989179730437407951786160537450364204402191000591469174711691024099758966811603045050077075697177512331519378771582574455263499618129880292880302403636219013041649728320204651509931503506572877779344147516111478456670158473273493982081184710402953215343763412779109813699454645159479148545675846587353658480451087233233322405691571465947527895894453003635866743473355789202138941515542898368264920500215727929163333455589886840262921966729830797564917159163791070199870953026706039378679684049764530261767211523763882035966449981815248920690943336608867918563632323065609738943786788903724451746751367225909465180802341663349060998281983996561153108471146986977165193149965819337767625620100530694480146394866961093636274132218498109356401750056035738642020675306365933544709386913320657690581556108304723665520558753336338534091337853575765894249076686490848887441590710412569684264506778034509929702251742656512078069471819918200201868029550637942964347104849047154102831472407040796088926195275081553874609511994783832651023544387524457085344782559893279529730366127344624354169359931215882652323949529295510150737667658614023436711649003078413365417725289793488851695332903485118856342083297764213532283167510861875201815379316832390191229453785610718459148168532643541572863749733808512032592244985334137838092642687186731260954212571974714370318461597445862205447745560888649792812110425447031271258242058504368236355310161268602690968176506272662849035754468745346731395414852790550311399006290721699505754865462771554822912792953478523077284656427976804502365440559027962097744440064421994409674642559424459464275971717592173828063244330379971541539741453580401467315868435474778849618204644237284636925155470429055790676399395502906116590598216997473071953821849602726498202056415552258347684125732832424109165783978508017970008711431954181064252161108580233305361758564126554131000365227126204115425886673471099414147962760492955523747084446863731417153530418249762049343228460503042767338544730979744953367832430258228633849171596277595324905004574926821525262807875811599669587858169926803842246012011779840171120617647989797347880361806262238043280710585669328524454983252188501757494226649200051469568680225775651855291907306154671772087523040344534301692533581248569066679174797011559115727938510493754859547970670987445145463358694734777633046346994761942353959170517414195185418949467864689217718122576157341032798566603438926962140322819845669776534261703824107271416066285283659809066593683861833144899545042353552491576786954090685580420106597572965424006097516947258865815408683237297615326130139575425336260675727776251684787847935662207890207965186551663602784317731057864622473717157093603121628285741002573222158939983263732434152401301687929785669351630936808970997858385272191280320990465988363978047861640781649777154259572547054061914383073683414726684156890972965926084300676788694047348643029712155089191035293688390012577181542429892203626852961354128652909749444065667084664542574232939647650326073106680660265408915155345130807112622288214187288004292493164746156529405876631830276550042851985937080293859975415505218234963430271965773664324844806360746961911435601636743832224920904468395536420430558058956347217361429630660042603685819045728030517795434511834217010395252558807753740862265676423757351585583401518507478858416873768488764912748242595892988993474203207604788611624126057494817013461294583362278741434780142595156410438676590906802811263136526149122195927518408943917194003719158113323519891282922073571813804541365405745441007354848499689348576443949207026720771478071708538290259073234807693383446971643409642011654000135594439713703552031785568045239312186036931763166260171423482858736457957616468638744999489649814604575124174415256815131299161494744947727785107348849727004613491749712226654373989403404114331368875243566662268498771533736557840647678537082820012027758621767791077812030231755713555097119121203255884635058670079093765532165797511700594386829297656165762034845867128958490750231971303405718924308106743514813504701930921010895612274650766015830241452965276542844600861759946897269266399226125552825645558613078632005002492280796993783356956837532881455722197512326588078803457509468482074407320837490681179985033255485519729099522633530086618666129125520032794943910222366767162435049172834602588869049566924714480041886584190036573052969899741730362108284629202803613501415149958198019309562793674899321909709599007355873352485554273099367192254709086724345977500191023603012350472286396727173624568988125211795690725692225773179775987429633051687824992413679105051590566121506543776166322664731928444843952239714135049546974046491503021231004686351034583400319365806278460884211763624105468892359390994095980871539332805021426952407542508821898114786055899968275010716426802941212372993404518940267054447891598522149895420974325369284822797159666252025335970252376961556973945035527459020816865844614143341763213111631558115148382130055529418072918881644826961840869793184724568233055037760256577708951152507595036125950055700605291080521637120357270093354641040356638188200100297540628577419535542041675386262862964694645368041153032299270178896446671200047030627681788028432009898008887856068096890472397742088228215069033087306111500468417132672903374431900606328466737002467176843395251258864140001177058475127717323380430107860662041854572770531918627153335902620350531094825500323718403862729520797691916571621516257814752691906995409755439566183142701644173430712116223367349924317828955689743616056943035127124384331943627688477202824512296748927277732927145018502432065659150072282474182569631768430522716334007554479447225342770797794495191559661062667888346955871109483495638436412107237924163516833451672892612355374741322530167697880871006451303790774385693382255095297222834349423405931963506755897821445290358971720128977651716003828780093670434589228488294907247128259963451066051321747250175232818210040061847505872389575429201190801163089527067445216783729244479208953570529996781875182821778890159888337940289053985532553916710774457143444306167737710717795104376249826721432488051317661437533375200509099672923346188564945079652006332721157596550721712178260816649842136293115701293524359935056543535038695104086283805660061422601727846069834034352098395904071532605458679310145371515265714980463878835230259608271982693096530257184814556017931481513404163767199354278372435212867003782929496667327068825144986926724409901676327987935634290469781291707589786983219742330523879296528670812449910768465592861653092944196867367000656969407087568821342169962787410825549046810321065716387168967941085769468870381166245790276176206123250403075705767648107395925931741003613433962974110913805311391899587683184780424752994341629732848289044364909460869393065051850349372222724985734255445286474146538357361581998314534545454145545868728590044581823359112270286067021359881910691251374915899636463234411157432244799400348859751738704325016825818734954274350619293302754970243320252144033667332269073373961581749825585767830506781505191920882616919589915576730172859988805579835529276572965680517521071159471638167225936848636075507243536450507272195192185412181690372453653744060211029400341494487515482413583526881904234101440145839355173630366093175681387546028750959421131530581588756591779283123613953155424882229586097560568031221803486396303273478673746683837263041499131457184617527261246589519245509243294398473868935562646860605762315234618846870601571991457932363700962166833451910397641828378969038915542918427195914841995571749855540775176655414516906213251241881058378188475691491434195352878322150281716695623415250928090541929001317814902789112902071607091799418879621518477431374681067364173416710814618065145141271907278956190857919908144149545988879986063822953713387063920219504389199202785710281628929554784432803071724121570647995693283180724436855898772717312438794718088842427023576812970498301825433704117726425347940010795112197572600762355836521859477834778972700488736972043985900839892365072709267267511784333728196369313312554642964660254599328411523422176710324074693786551824969294072796727609477953390470184698030862712870583979329987815750041818905657488028331653136145592615076484183862486410519954426124828647208628522596595764622866577448916174200413343491609969029368429023155425992813624677104303422510134124017277830930879241319632458586688273127874245141487616772889141325665564976862799920170865408611367465552282662271934633075650345960481744070372114932973475147911088599809452056528813740233902132758616468890759245204566138966779705146919778521731044610777913012146398761885870028734842846198680469996927669575479839968436334824151979566192524754509817444070041978618512912097670068300018897657171867763584566478855420172023470990171897411489766834858769981880821430924702682667395347206978811747398301323592764050633161622180952918254678821028333815794859703246849011048872613851714001309304433389630028640381473965353123755444543258857569834091427506704589909897249418981151467688817481509309985039876600948610877558770171121764974381334070271485867965196840319513967667155909658735628719692368909016352074253780739638141007440632757175242926792799712921511915242893673189072117990195158430879827616183329752202881814386075065013839202987452997648711982509398626789784595625963841202713018289875517260692322893984949105665487893324361662548389220625533407678679437308155492260151125609641210961426376257282408675328476906544811102019281212634759254464104058370840955548947305899531820113624357807745951965118363521156957802746435516755414403492088703458218146314160458089037692345739146844101509440683849607294626485471399311391250682040817536433022259394100487899529344221615914518235625443001485071769878398071883444893390988843695909816541962773719082582530782896522190197910478090541066492585163811124827181807178642726578759720707610662053264767436710242115724015601634579524842655880865045930696853292130581175536692183783496437440469903395662732591151871481084752261542061387999485613167159573817162290498563106837117139981396472740658091359788363304535384316573079325135730412486648496234047593775872028723654895569667946965105450410437743602259350818652353922387519238959270718652876818804918760894116060480553762760235203450755841989743096092583673305105883095114663843234663483984453184046164275885406714219121924830828795441537677864830936451397067048432063265523225528785997360536430563336833016448188404449353020411748245858206290432043923756477239106041544139302448933120577407605447356016981924316737886643388453769975503967833836964397997277279437856300074138740408401549556238930485419058203087544298976435211462820725088715030457625831549447084650616346275698981214584883071945137812342125643149570385677136121916406472500439868841102369802138505577561512500918262856227014676306812105859948597827279514075374555276006871424557482941708003517306318445694382902207591967803057674892425290493101326390631254209155292359724178620786534542106040963235556192128918857089545250218845385469621526198238134038961916395706425617523024181492344865220570217033354197572724633550324435422551384099819557838546853485291536942346070484639907887127952683314120622667192049905994162675259404458295568525048727538884788215999710523307624250525520610666626543358029248695246911862705323517739267723233357307791918765527542403304034022728523925384415665421878913316805641871276203324097135381867049462660531209024406594708554294693499811997516118186890997179833002430231234850192864790909061676129682266051721076295657980882743544464681683396170310983754159335238659534499163871628720897410348709612204699927248846355119823016345513648357882687430473521204763865958997173038118912927183081300232093544554227197684647009692873189747771285601783302814107466248544535776416602904362812492150214315146921507836755104351583731070631007583872943960729365842064200592598187772999341985496510323165587690213061709440581148972309671109603725226402636406996940622926245569797234394640440857149075143662196931741970484772480434172473104508655723760594998237852202466223753300127080412571663192620556069210466047639221011371624018464952085577411782605892409697137393229904587480796878550107829334501266363905997511102942485657298208091819689491941159367315411152128894718952536295926666689455996695973599849573914707860757622227086946564577249302317075204689223961850543759481637386544746700476547413004047999702901105666651390720116346801656007830989992634960298655663673275416708466986331089071541882544932159094804674585739891193148010915383343908171270079446498350799476996358977317778853722345010809242465717612841228832364730338711380949956992858437540033314441464435420952259980099665245064720085292118644463429556766152701872782661002406601806642763955885625112912810982765279098898297833817463144270144056527499789684998754374212504173714553721489786180220741626508793546943753769704148076959246183839549761886363613457120653188992101607442113198515349175826395191968107429456868364054027793648592206480317775095474414510856643823233991073507401898376937866730733613246199623130378528838054367724027616573278857427249541391656620794923685035609243310873162588444104680325495949953500089903888310696310413561334458541854339864205911412988700877349874672518391574120778042102655929442227163225691708102901178757807048287178815495791711516213752888706853174350301059484205182684018815081229304300421779817015355066903978428837878081208674258161254368878788598336403518417732581191938649636654753656309255976843344733298812103301623417702265695113490495653956381977780107181216159527437263656832046491039680007286964301278898176362470526497956907696823796055924600007083604662671013064493761451368345441185071955464098343505440731176015604121795476009746425034305967173122010345381115115982924630678337590274938019958833738353951537977542964779898627973548881933277772728476851734384897203960728560329250778274602916135518298449196603758855039396702725726129069684921185259132700512886810607012005499376035124473461760865635416105933301630109041666492915361715673923662870988683782393615916861506554682867048448508421948628405435969597915408012004764393673300303380438685905711716359310535848156681669009093481506249609965742222274978697623127103186986020548022499152380584568268012138696544663254030615686519645900317050681511038330218127471142927482054071443534791078750707485611979067469837551313082974743225719676992939274361860147947241451160999849539815447811654625840584755598638410515761541109955855042969680838559702306262175554699568321867110589081003018051758579407488698693922500595037154244482391089583011856097917526381947827302869595970258083708334968127519599525077770594813711823699016441092572127796355428740974929520654750460918819685964229739575328264150715613819342836772823996928390388510565064160424574308243202853073375568810872371621254216385316332484235986871115975579544992376400484992766869935085015813164602475388389077101661785262021455234403890800558210596868350502958626565143207614640477611763235205774841928611710866948821029418425667443550506116038102583390794847975499596248465703730304695895603032832190861259747529667404976397678180198531684577232084915848366507867085322851982831333175702802667402697403450031554529786885745743899823823860682131514687932882297966446621907728160941129018823775571312566982377045959770490616746540282534939778159938799112752012154459355803656851373728279827617385772088674220129393866206899185613793010301163952778136748008021183258998185770018588452616485870676964262934626591724536187618960195944036406250808631924593781436603194070313224828956710797177791617132972219617142525145127000100747391959527980708939327651422553842378776875514244678436330506180004946443578811424469588210802422033474660223906821123179398714044663465062219294110588024647856353492523153819801913251090741377512349564912455087497486910102018202771412599910216946212427113806033589530305570162029338419005376228871659609928580529236085852290037627671735000352432955141506818562045624201883315550272129498774016027050842895201145905156967600928442304602044270638153044834842367367274218687485785015476614845212986490603882685968704158215130999483809357918425765565777658937224023746330780689419643017078453838116828688604398130239297899182554587721877815004186670918853501778726882841861819318933790587765843230293636698606086376068529906837874690617907196735689749534609702782175279980524236939692445477323155977150602047038160595255499021968752546267330013127473973601444379656216773186570551450259144634727751934439357895413684090048931210522939463384991423598367494172141512487218582719833198518052756525426271970266228951061004689090756600384781289936195560616437458271404557029181109008791626767487044543294209859131801746542234250936530078335584106978256843151947915850299173518245955737215115382539241883655511948894606999757988262927397511916908210042631740716582041472342514522993231414168959732973444322512349537220729445325853869891811985061025263362005380152627583100933841882478407083873845818103757910240659771031759175442051967406242166094325137833977614071635952442261705569895368427674238675565287991930439983199645476260571049446825360550380239472453732153525379472038014067508937045393907314453516366474874171068583525702941005698036598925429124961232621797316111911649855241543079681351754149564510681352026787339924438566254653178093342387536933110975037236421735528664602699098296123576071104783358098283849922868158388024660136337316091225340015617653871013576076206952866584178053388732364702141957833622923136103074551086408607490439577494533593730666818928326823587388879608284724998365046216969926792802066915879035971369966293279441218326363234948018425396642348075019035282496176486127949293162676405995675657686703529150409645727768507766812454521520656485251975775203116365383833947629272186083019699579356803776335042219491930294690913303447695777376335500261553039914822733123624864010320706754057333364448308325571972746730552345433589512896261100615663027962231316899069368104702734606988609406231194088357111406850152519403223691341946345427918508025026231215655566740601572264430670767821026421233242579204887702443178054992637034814810342440524018195980384021442516634285345606036284368592799983651374614915621210225782981099662991394207689469183979127688089469928358391818884328749306856037495424743596183570922812354443154782256968803920604673542578967833001696887924967484061964981648064026398124575625686585128410603792741990433215610370885981164473006537980532188546661857847296685295444717838663365288586259901344174546447759132826905147505276979319868278773913656394742303535887061914898231863019278738162805809483922361397094768938091886192226635930305399299445676333893872528019460324416123004061214680022366569101495097750688249706679933831436413597916454177645285480943283099179418347730993951955370080294347385226802138806361642292640424037249283779551472971787211682217510084055624391782545910560463474744374883112823644348935840480302519245547767147155015971902515936138974772123881601956928311680656444844212824837558683383640231635056561436845814653964878042341638773905415542408133223824796565129848184885033832572317102158471690794443926201814937398300585734585938503277378625599761219386122327089051307769416654024800593602044724754789586987368952529435338765557430556394838819389960014640258924024134882841772050919521347424002678914719768259754711339759029210052597998412437371328215858344559754173378662249628098996866006197296848956973281258470652264385904704547545255768589166449679985985663433615159288479147435160609338506095541504576658006487274602172752957484209108010617354070904415226853201957804677955220014913364366269994796093957537363362246581875572184386818223493065857504709084983603596825669594358688067760972188310744302799587426793828406766818875660467442720489137705741187728099149539144714888724912027952767475274013923460677660068197563084136270192149771957985663623793723122075029953745247760446535769147874880920385680749991420415326703269392576142391305324272534941425812766182671403890767700993963770414725432011205208392306480458005542997499651749456590111728168651542374250904800732755139730659234550425865446088790209280428554854843985977735381132955755151454681658987717187009002124063450383348297004779880159715173433193058288916486345353537890993053289884369864765053006368220564897342946093412522436447793330078105887080646178068595938274336813064590662173607279639010016756547368152789523282170637612578726841007490785180839599468703754358308863362927030721136935945767310510535340364197639385757490714770977814738069381702297983199593501047071734867372658010144872267457725747135327554233434508224615141501733829246632761769236098332573341407354963704042691218069749204170707818411894887940536824170133679142151574199775589167551873131154505021100275995642909128158073474866615864711220721649314325213849555744522846901550043268153300958566172618543282843926893093677044823802167705143590886246168931768108541481193235543079282328703837457572132353205590165460753703385837019331781482821934842458967701120938483902182743097019712231994293282787717126709929201548055418046256536456004154139229273654288162224841249352763589865095590967839898080016638017970957620681324710998289956454843430179639771712227584689016036046152483802497334163666717390177975905575579243843964001776981911020818091599006025423903743522900003758726580739737851381744717890562717288570461830588578265450074430309481582062144994621959678125202038282069930465126651518180744523976923040207458349272325878135241320931823132426511404064687871010894592810744421087622794335108884175454985829222728867263002624662058195929497984898519280672595765371866409452682900884940091578080627588621856806774359447735528251011165450825568579417994398006726781403665642389016819408939089019008123299064974442750618783069127695140600269347119931389449442300212456966692560071743019522743456804664389439092255385448348029475304643316922615055031206169563902551064847217418217987407464042204616560566821185026702159355260875564817065589616260126831749267637876922417290802805933017741902098445274814915036624686420699444947273772346503639817351127436131098595840280222373853336313861549705665149226257476778626823699904287975251063796304072444878979674132593438395092254879307157715722267873761738694168667415400232882756792146760848280696304621660554598028670524109397892400395715444108004467456337394807516770122071059759911231514439258283821697818139589618514581690134933602096113490327043368345846037940529944995476294612820997413226934168144986351895466648266739431356848718979025287906969764917989324316118239404467198766942411749980375339170978677147637765545276803387507378107393376016315020013150774979684074302320380369445017434445499966757955725154351899734969241586089080578727810351628540471722404966842676491592119708245499942939743469545126352670320103864593989614729655037979567069262109915915209162179299936411449615353443289907976243824375251281007317277953393413217888739180997323967199892120884645649671918067607056766210126283014168198224598235679993318522982878813923372041124730688948616213060787962925293554009993326279901894810044460390590976168181227536988380208822817317850497865204069379209083284096880935959434711843304563930660149048953054942622519091567681347938575186359368106874073500865160610360465951040143286121717375052307534587066507346445421953059310977769696719637518820331691444836049179233592914956671084105045543969429763095669204782803429599628124047976147585535529779440768091102905586043288310884297915977915794333163413471495748026512832737550473200497467986546966919707436699845386546186286484614053565609076613279722230909893073469686413772987330570060659422337491380865940919824846478209764830753907471056193474015350169850469061739796402914039170170223894759542455659909444255958710687603372302658768135538257801126863073050483653089987027581727277766949096604455625953631021509038521570036276557309337373537653443612543689318825547475359592059574894566041953502822034986753655060582928301035474786945654606160832702113977828380357112845962423004728247866394480427523544241042809997578455255739862665986212332838201599224420452979535785612602277872765670263132917640407832070765533033594608029192470971017121510747095634006151172935399071183943516371976316803327820201356627873115182055727537700553532138406864443054392226316390138281071727632977731298043207848055884400016811473752583332940307989654927945939254043557332722897444538313161466285793125147095515465329286603176715948777827045335087146826174536307253712743882573066087523634989725389798759252245450219404876994197875128763438989440429135690604317364511119433057980403691639587335933757055200060688840630155427722381028585832335969998316050063754638085239256538610520157478069559273015579350964901880922726550796305080245874000872228902253226873317998981802372655642899632812617017733343461472930044352047953215389892922873433757940893930539829891900347799538475388929982108246587047804643807203941812635415132640542899628052895642972447027749362209893256898851248090107718010368548798973216746573498672497768880058850687668876197616776130049963683330624299180884753569348403924581930162886103278813842999034553213955024593283040234959184633648822941303889982899546839984720940362065061596827854375523777102875774661740800171263373265214306997525956837111893357750215799599189650182864855163361669635047808831940570721469518186560412457097772138226266764178680763759844600557547057582621369280948758587599492358795490010979231186038940298470668982925430790120826755202676596856874141189681543967160382090563795341042155662311521592213900700786610598559707619556503520108837694776091776893501633591353680415475657722334221080823682809120398221460120367087352788116964303828575347168213474015410208165947145451211622466031719379145612912807754308427760945340670313409827596917374117799274963318268488003376465690608617585758187891829587703593556905053955512337899800653409777637546390428815616773339990000223095519248448282286828121516021163288246017297481228864614226731362131847111711333831417803142482755309633705584350698322428596004781344653660459615440791344401110962914882172511194208850560065503874842990573249347711707461765045916533687613948385008593454769527747996843405776463128754345023843631434065842285718570455549815047556559555527355480935994974207949831976443671626070352993994875050039479285660916215035372323397551811382003294329604181043945353362145708326102128689390367047472953839881291665446649842600734723432434092206881433111031693624832299771067231862140206705016819192696843429991672405196102521455745424487261307056580039142377184043012712337866918388352426828028687950367364759534878636224296378355971654908053841490749312846579310887959642888485903090286127263813017945321546871029325461962930186529562647639458416410539780020833878344069851308210337579435277156998117945207252439080431777931697979537570035294814930200707005810720205873001370080955512912802160021410226853046614546339329657635378574132487025946457829688162475147131816853971812286909605334677901335526538937578409534020584118846775415385403549859497152202981765175553018135499196574255089488299372100207260273008056986630577128363365387587307635222433928864694497791151886284904491854150212065068649601134239905821838542236111702645817132863540583968504218337494990954979673557759603119332735069545809151343140250902860934653523433412597608643833172541508291271195767335577689189325989673715397036518763093674721529638918978716214239920093738264163854775830373495588477050443979490006205194063773697226775108967949941908002397187346127842238293861278927749240371233905506520809559416461792504946545285320546919359202172113704134793674402548955818253353854748345565313339531086395189683692254768983364687423236986128067810039130813182276417794159959865013096145696124037705892482928515918961553952445617777178833447888105081362223265267715606947499401854260780356717575066185951798644657467815462023796318630328852521932546469307430360902852660419735141906765333126773202885755116336522944553551709771958013189696555213355378126017852913209025654053473689709270649463077115002814608836770664045909776547113575872622592573673265320602031201009625082531247121215097133186116155909916820756423495049192701438449071061164842614351981021989009615622699040964017540751224512388544601672523029620065508534887637144175271314617039286792835716270857969902559241905764033269175347208480378765217202072965050249948473860039971806050830864583515316412404296314283268014673742376585304415387032739978693685672719183939724464401921374782643816549287131230497756180906744784935138026744539082425702441006257412400552961389655910995442445888216770377204451758271980423176282109134447441857133865606125702465150831451265681159561981703651021098869270282803898930475849130693041319817648052328692416793003080737180714082857542784510257948281867619609754478561986987592911301110513017190588024419027186327396537683942712259270446158919887921621939462017309437252979105471818261833738124100381407941659466995077041109042742836125469100920062590983610888809612696407235414538187960887114783244580864656376503227630253366990574944438063183139201139940380688147921398274902776151223457320644922965198712255319774959858612200717422111720810370126185194497950680577415908131141424917011994320877274828241879339657256719254460489016280564775517296228634117604058549252496130646033612527964332928481497241206309660090914051583677807748303042512076204935059263025375694858293792641876605635442567052744366310179742608149328259292212726541516228475380086313849249330554579782936186958949429654138788713495869337881339029119308335165435583583880718236908000908321031244146227741346869644264479441568483242656476153086505129296972006896973080017959744726257749137905667733959026087760035962331927876263497585492719653600687959673916644790760326229283619117882931994873364778450786884201793654216795426069322248085245356023303353069074502973521912997046698384097797102564436459684049212597224199581882659793740895039903522689149392927132773960391623880404631643289686474972293744540346083994081071282165369993936890963610930617287219818789538637666750090172624318752944502313886862259008846859222451501564251219167783391342458497891053616523837048655286794308067857004630366125492464105152466649693428892156083744549706989354435867643816485174223534340704135343040885799641166493423426896191958111672277228166606354018647103150835826910465044912126875886442750651732645448167870176107236602954549330156943643606158750013281631098875689285392176440650203148638680871397263676080397090312768067786146045918237962656654150609044362363030795835580622609855754542120316606445436807914103902631113063625858360097089957343683756303668192068974370436532371082540584935642685766272538651117296919143871792027850127654967382462259770667742470907961121877079237879852530339949964320105078405902619168727081604995790131617719794345113533023928786606072278540237708627458461908524188632404099567999421750691793512407526565018415994446719682753066080064818344139274824752992020863632001688969979482787524896037014180176479083407844427682624078815605875821453675493254866720697424075908454461871900450499615448012797783986421249092407031761216800414000099496776621541789601101321112903637765418349859545858950818857638628872372027998178832255321303792222611211669474735982064839167393549643163818329996848309240389554693713751299518794566017879280774603325795831883310825772453245708497922054718563414954584066131117709700272881942018946597005742250063584775301272785454994991575283847474528330158736649123698242856208845349292288713399893757180643046771337732595378214916171822451622405208144385882389526388187693765686013579709352046936582294967303866052098973092736501751575672953619589286647796108648023618061710582537743271807785034879342747464897984566500439753837174320977564315552572681729693489321633332691912830538394095081750560840478911934651913480464969677968788606891432383139932204741028199903234576661825652022451243767006018701979828144735594733518005923614030061846873571951633002139346563595725857046910806932243863940515011601112463099725223347212845177206800484677902654565134488415648747990934107453046246816218139545511184552721967708321016277923872783500409710441172198420916041095509599110133944473412839185275189662075188387970681823577792344990234044622374346766101786590471415248045747707867966352470862272029427964436735502005158212363788240021779314155081686184742453667014024529360364973213752689348271069080757179621928170320975135088233918255017563008429363218647418707715400611126487852097153429902890744606332093595087003345787123122301799571051129238772299383523620905287604444625562203153263759235881785458313526034015683337393272892162190716686515668344372278927100544674349667739201436655792229648154211388152489317123261659592078576747600644745094064888504654780413580150050888848736680174425566090418193990358200129881387006297613689241101647514442272164246763740030228479373274779626731832360597599431785347844017141577475822949902685118791865122869213586743740868974481584568238009494318505077906658393115902044966427246281999404453642515768429376070819014658197558163823162706093537608748401363277872844436238198244833587228998473536499941311501418100516073950120761570026527911978261708890997140205933241888093827754866205405676833658923006623345069406355833628825844912155681395222438395221751712846780660367824414430263394796355218441806532711424400047733229484692284029434976469287186219181587671338710971607219656677288382934107839384997339517039778503401570253289951072847125248325896277829231244089889203198787886233506494915715716805113752411363900045195661306564651931294275190713181039142844558011777211066717734461380844593416749626071605345077591279796787626490550232600510835988076127915800998479079498687036964974675495870044061485663467256336730783137008497713146650603171922033422974709035105684596845683581934553534409523427072403984967577637815870762770294448628481857915772480479342853680071435100765057411309487371480978633165353175396993192017125654051208326964771929572853124328876563397505919333000439540364099466953143293288161509448595414047144718029019518670138938733660256634424872441655204075651229203868371476784004729895658069050235139060121058189184838933252147754330855354683681611391506274830541732805378321817893733191426755831069915261433800702146128914480680778969125990901998041689322168583707323189582223648506819315309473639072607969141791898927973661872018866008378715549042041463146505643280792381554388159212308637812146470663620331619946856359988712047625850466783188734936818689839608463914172437126627427008487429588469117594372119002346702924751070445940612877099750800356869195526531571581431148204928541176515664828856841064064149198769222500651162045522915229501082388935605199760806264673754280848112776414872002449075398369660646408216276142727507546559489753464896988186439569885055778395970828595662335134618006681056652856453566246873558954371312640839752595376944600107010744923250454807392483550048315586730664493880111357066086550021559107640389942171016795233611214503572012810331363274225940505031343798758455457203556282495950907796145198020110397102305757127910402439680250676276149320191167035645366117456313524780291167912900223953206122939832102879335038421391544651175584784123896596048022719738486316453339230604942322090870383959865051425799227570409664147500080288728310745688734617809505219684662378808090718591043597690825291469946511592497547909083945200268288903489675678553320879081098641033791729042976217933709172566021074902506875544136564155950526219039497177450459877117191629629521376315888527801255420723011746538348226288954839747385510138551323068870786963806471630262791353673358288101358446038924089883241214872443295796600627840303681205212447462986173879260200838386443935755053608921957741105766269785945960695534514570789148900768619369086840254311559030065524534645888239509941520301949771476902063136289121229225081645469229967610506048637683135135838551944305442626861739261211637382784363936354149744257339786567890478425810462986477915681333915434405848622748548372760670697565122236926170675872448239855996616858667410832398016458963925029681737213416761481690515971824259684827664200606694559122832497210737370498032470239426457388676349832596465195476743809330141136297980961312901469714741895319509804340373131359740915834971006338245862731493019808683914052655066811414945548068832774197750464580701960668417267155698989192884238320057637680727130105921463746935010126593036340449767395710498088471153608539726136545394816612753061541057448855331720149500292979045521682317439690031758977263767618049978445745088257672205249221175957493965550439962317126751268599202960667983501346147027154100641605565903234953358526598583577411776108984047766538017503003312064663866120453914907786973558949210577598042296955769960792048895535990756876617411604157047337675789396056721499918057591562508668437968560002807701009479636123436046370694009896849195688240832484198000612733998742417365890189732989726137604690588458885063729621430503641838248914933366859370986738573615492729756448963298053523926479749231845477156352885715082471616546225176754654623361779685674508676462024690481050774429567294427205929443740619044184126531006112170377846290370995196837929165793734486052234097351260020431492318556229024641962739438194520084689036896827601092825324539447849215027287149490460756753968544921393414776949229851372823304570547328645116858575295706024648954915152090697604011398345477607659097956115186604704346475724824757769473703796189419232803997562329507379121126348380273480036053443662255372145799124529238506576867140276572111370177489306875363700139098684137143631867464818505315601220165914274887111750180568625516813577743269257837650108377399387402662646738845828911105451460480814067832248610476338993541561554603306046763965619867690918945239073342641399820234791784308012931761903749449928985594116098444798348609920261844585880376666827240952324796859229630147007192976731580185773713279475421942735572084381504074018243141417092124257415291219013256314009575599417895131296660659994789312886210281104200985977959928688115954149259411595413609653203525298813860531212513153231322856411165230647715823476758795534543542201929820913052107107633610884762361738796055029530562406775712718099084522630767435373158946003506317822053843948250851792380181705057978558439878220315810389459743606841640883541901683364498319128897367595679432760875366652331141867305083461640386148364493476914181774644511071649940641646198095666895426055660836869111505318393472842891519453972981046278354219987756767562180646045233107042248290066697693996543091614369276599979691283128478186914475702650713616167175566011680434601264058904242634128553012607533026662499307271736337707897377085929477335164434461855510231718083518858211042756624663245122220473980053539214521828239781604729007476173009983232190686134179927024662443477382712399763276333406274699167320756509928317467715999938547755256197152538728353396888792146229442859425875316020348270818101623906159417895100464519609631522974555191801710817419639496651736368833203945713572899601850246494586948720285717262213815393367531246842510659089165893512811362251432407142668239447690883611765137204415585838749416564035899757086218672245638667984022323231770359451880354655964796169941072159845066585965077862356172614778599269418970145682718221747347661061007493235953364412886578837234979114410858953443987793124597096475333973425680681567331842133252398039752098124733379374394302212717150304314950144358136510642792984061208632593635376100350241709417522186724824946442960487015205658305778387361738303990640556146601647994265950733866811674861556279902450143865767719513418732538057779075007217397627011433279767390982994112051996331534142203772034478247763320153899195239414640237562001347618391499221941446108808757936099677301986658997807988951143326020697167615309927700810630558209471374427881488453895205591860986251105128585918159151963638087010500355908458028997027484122876017090006448174903434132935770308763116622706428256397768212392553088158048870115351876212923362510151490125866582426508070892584543638082480820288605992754027358062356649745751107035655968595559146458738607728971586735162736900317231941892666953198870596233139003943878610213280204459322638959919485401357335804891921416027354165425005511815283421878014589703232927822118423827662251553620698541451706093910274358715846766933612916829359513553306722934734718992507406606458151077385090049673445304483624596619725880286772184580359407483004748604634808380446562975211588337963570430251360635216461266937226087263247378926568094470582241478461554851345629236480678698315630313244849039671699343019303640731427318315092529822023821870685396386146402659556269783345403488208198275008851353074566658103024517075101143666628573951523572487604744792061456166916162692249021695116627942874991834044413234769562665611709424239203414515704312766247303028134879634872610664458239462354207208127869680600853585955160776311170938832516022121076677138716093792623799422641825918505053867031543342552052714128663611092920675159989242886402127547408550877610435353570538613938835093614737805233673167932192031336177399260732880082392826219441053325593144776857572507557964288086361588290615848404564661969367109901896855664460202949249037654084016270896268361212209944777436929128115843965792131472954911453859609621100592929489471513945140007056293780258957017142923308620296432252828643374293569078117907358408312096143817977187983059633206640822213252631780667160932522569358891114056330316393323843951407598121701873895832865779317728556394689558655604645332866602393240266895517633698467692911395852144417100332055231400053932422947680923861029738558368922195795016810972482609355077660992156584490408402310472179515960914977750334436185122593798656525213511424527211098101136696809004908057881635342470600180603260404652135056909299020108245767027099596048333863718446605265485069905296128450591587505140177916600042637850059599511793705914167054617308502651725161302402745265454623930352014380038614811579049620037588256042584269123346645555453345807216605997723224403138181666194121613036534847189434393888447211833021401945708865349353966980638012986559999281453515157752591257899013879120880969873410378322630466368788319457606343283747588683698767665724751180124369063241222654997780922479951976043077640608041170665440545467367481496170486557822278979195052296246263565407054760335282771484710423053729158208289824813552563828067754708887135560958892878073859577746283711821861525688068831485998708458666760676283313705003961465728349196897687040395948361535934234809445610218304138491002630287258529097263154096180466897309348033801488347666996012093603521718839745240534020948342620912960455093637528554523098643233955081795459508816988255724850522913081279954356814028125929954896565151968359688329195555621521951251342369756155703191235754057000339270034363801355025219016226172192813129653339963994623927893452920181212281228433603185426410357557592736557709624505161947018402453171879574061491671647969441175561632808773546893759724264845553547055857113593565870306953525467542700980784013089961392780585921199847179249582528371176883587437562750243066433030747338473186665958384722202075244552052219767744801567181432976044025323137940812456391912557163994761352015241960080688084696697957282112360117828911669672447277565857993885326302838255202253918671803805777414478184491339424409284440554351950948063348845452573528600155225772461839325075012270295664496114500437175486226137821743084350064138545537126699569733641654705024018005164845164185551536396705867157548363915846618624100188518725340352293237058205973565661523148461957616054917622261447626802621921209431995172361612367099957581641675995115782701538673343437139777052473481460937381975857162795300433152491750145607138791791808600046766514216942072020210080868842138039965453661903396630859660704595578654532561833994246872453403294978879332176076228455590822204704770767526337999556347187630605885799629870735966704600637069033731515079501902959309076347094587333332955473020310223952639523157393792095505367917614256342637396663412703787018185182679879597104217604183696988047873648013331014226122761698364327950549759074641106768174422694004958732794928174836515263462660073401765481674870796973877741601334178290175880634924351086477847178739071256533859132389040621970172566089206434250396977743490310950997888047568924265539705982619256209591588484222397556589707848187648442876659064845475604004382124593667651606821267980368709208704301188964622303746683593345897968565414675643435871646990320675360328893251914832972480114717975298457692204953565939656866756552060075454321820975373315944673361198582093536951482463969745405324518996028375540893716379334918897573559112456988374186498377685585688785011270125347148702222203337480103326519604219010254626739842546890531207842944779620171998951431240459522504957389270788916004827687784365846776964842201113862675406033673617638581269965032675010472741281445859574212142835373898026527728417487647968419151610943597228396319997612321878598070470800005006817425452140940389099743825922276406011587000276789914484243370746614042867581589406317506113889502332323119965676837713582708098817507890719525706048101934682956679003161175386155043172617464474100512580986476399935759623300842167045332174528898633905690673378950615671850346795033834613919654358967734358509669813087123347404279151542596173756679926143586111941034373412866186931120995494139837074191195742854637498986209155768454240882663031622390791260634712963214311383880090702432091838601333297736627984605582750746571818144099565747984148911925840782697755689772603094675982745067483558855030739274996259593276441258764705618118135287519647215977165028634712778534816116529997056010115185929140965306735861867734693954285944265082817680028569530400992872260141004878331641973373033825313695788551468048421543944402052437754246358341780041500847777832837888755359844588080657135368727095665419275296090599210476462630352355921046341984952968186049240405587265031156922945722470425180485756120531760980469330622704635261483661237048815919111061392667208329468411169659281560528845850812895245599311798392977581422109329790790306348170888342645462156951130050395946499670879576278440951020736855743627711422365977679104098454491963507673363661835971821403197423160388313824143171195641665932034583112596911870000494688923812510407403983742396038937619623697725956208198003565856966897323014363817355009110537217845184378615626084986613145569535067849588560439954852352754556815804600364354716938187984318831602705647888194276476762133500360549313197048538099603177066619089596390387912002551199202756881661641092531813094652453366771309295008490660665093235626459184030226228212447885068301631730902809363051243561658629136949465836194019959705042006837274396721847409653528983157396493604332429941606521460541061682915202971121781440178408654978915267395263603024389438917743039035575835629218299190937650450674221029462584395271285390381937835481907067083158878119205228547823941298341428849315585505480488348481424630405660273941211486162820344300970994945316458695171819243734274266334010613498334344901191953359042552767762783329570276624684995428223988605580115284948572298136475741596014492185717283194372660747935378792090950159463912099162713765718505295395042447377808453511057934174319462297521328593646055390939194420730995799976295776049517076593716416392421723669022567530645047698094762555008686800437250660139017698068722744874352403531083338909325629060570082914536283779755933260366001296538333366073774828876096490724598452533195101364417012360938172421576369814342746571078567683160422641206956107290368529899131937208436688327746862558084929226854902760772489487227701933698665044533712991819001309496097726861534415338192853121357182070153200337577743094261661749096268488805024750623144601892616316457840608992480219129806185868229047484230214200403986636498453605885199522042506748295369609209200425195933915554719009009442699025699354883531674368521926719936632388555875223685548342283918947255671088618141131065804470146228984300778232447862821417060590389028292393100008073574415791306855799518790567319615719116344365120100025655820835012763677321864208059299642234716615028761132229698895388964019810766878851302660542711224043377839250430474218238883385741258021812127898800588718495114565661069544387636892931906275672685796698643775588378555087204137458016630154014492604829492209380832079624620034725185982501345084530637193371570044396173923797347691900098612545476122782095312892028667948771941756379093778453877423462203478533134642112399100908156103554179501311939230064998007694505652665792900676566132516652048724275283109783298506973969996450463822267077221833700533469990000617183997002387294979515846965473676598504940494195568404528462081434700388394675930460499108325082130370064066004677215163686174924294583367175863876022316835385434349732215924070917523659313737339906911189222703201396465202201292673258857488267698346696625100983795313494045127314907182887187256168675619525986159468439724220502372075838894119658210162659780415996811813800560081565538644113851439470956445786850739914166481717762528004600704343757417664402555068724723433215405404771831725093141313178836959477697066125511410987008573442061475556726097579403944708324048605243891719272785248332115285419611152935925886915910162616186642166697914944468604288335974845412604192613590540885227326424789523378962136674394596655810794305246073986597847164453277723020004535634736493774140427970969723770209934308420465914393793849074295600716924725772690570982305316753726678146220882971837174442753758917410323543872215935406885761358461507017892189223119800522253362491949111357793961624679790460585350942520439142789092856995851100018039399713200036541147320486207424018267348642901268589646513530517337717216673137446856047118496441421637048967858948892597028298409122793862373153710645749720786644952080412554014879902184280637998360929497393441383375756650863610135004345829107324926232389975795602735794321055679280961149339984659781251241545258645898622249738206220287657115127465293992309515340585812667993023081528761753958543249523367358837154215621445999614479958561199857971728983596350812545796941865296071970137788406501906129960045465648570784050785745448707798683710895893756244350763603939688562685907371352568394678698220938201957006287752602756715579779971089206799803912174718675469809628030939452927947305594822778593621012173152292458242468390217052473135962230237117067750877166116793853340053538673926114956793873514711444096591848972291978030077453721968618603709183270172018319463351410280521969239843493864204125315240549908449768211317666133714373622098235438701095574829580970954550834860099353613473529202538199013098507962474754121192666455257269393809756293285429110174229999787104239474310029225704452850341795730525507797757368111550640445704465251633975177619512141194413187149068834596494214062948664757765846885978939479034661953720432680760595371192949877232755092553052445237348189619914482616332106528103570080624838130304530133166388843457932270932558279126611607344553146156837170283405773039622201296470226486675068191392066354708988973964096021760880628930751534111313987090598888857560996540810688781570668754002177968955701950080140913338530231497846888591739847170203309252546805425346435991270046095326031638257604014282711006111574251346452409073600410666747384253083110739040085582227248411460717605679624755510431009015311614420021771637871533610374492666042298293146969647985570346707682890437212758545953766522806211063362294718574803285615621513202233339543100708300979775646667384663525261456728250272872571790187870341827253933965447515150361688992355306365701785564344977991307506323183840404560514541631232886188319476092017134188655894667018440025396666518063927574994804808780467470875042188039542937138295092175461285433591496325404926866456833041094531495746794705749136892971178030261418326213266573573626782677313202147429012057580768298022830298772676473842551097999707308808897320666078683312912319900917903648218240846184784378124146912788660873049210680445105751946875428204013095243353306881200406034448807506743961259252435285144686157960630676374361216539864032148905221277242467212933166833667058644412730640897694900777925586664277743814152221375576253564392099950686008536534779699977917614199611854786311976052207199329658307713908564561842435530592624287372385192743481906997935371738700129786871329827947219143540749713097639169091540655261885113715594201649965499321399989073210836021404504787323093649785288756258815923231081052324597787636480070823976987537251854070100276910015159708160322900484068792934177640817846316953810813583012690299740390442342030313661399597122893083915426638356988414186531353759566949131657033801535025904216916197420966149578743397994550248215540415121764996928232402483212846435510088807274942107642595393925089702313777729517800749700775384901760906162240300031051740746103503931012622404867165971556678086887412821158508913840289939449814787913750381395028753028358519275903446361289434559468728299697112851032469348009328733016400036423382445032822472846340383854082998521027433820879979386848730586261347132862917638116794635670309232474657502207415231673819668605466588137475414911561628175674678843076223891271739989025265334433882798676774915244678673002021032526724920078756282616735732221836532080536301452712934599826114915774102305509007201995215883385058703064219846542380576617402873383649743432387784937262958545658960600570326532904455287918496636788432828415945799705712092850761092223291123941628409391562632316351621466683729773923904101522469020542878673867957488872172425843544386395981575255480597707809826680056349322205302559617630721817318413487672360443526766416279193291306678162637148497946407675972532220900144670152817094466626681085629166747080525314259495018030427654651337004319395849426349698262655833771611009929219563561910778699519576688814365736930977831474121583136713746181910652194228595298996435405625695762058841335032214225195295459647515997790938780051988098089481502159484183489734929635007352550384010114140158281824534038421318592443628578101135682278272795272086142534623777596314124699330891860362992694872831243167165710112279967439483598458839274598557268773344952453308216233174838883319058272999564271701511781578549994446342402113126373021693842503214861219045959349642693619325862312011859107570428129494211482180164638454303119920114427493745019559436188408200828483169454177464237045276308905679981981385602600046322112453200417970984931050534182467571180074341642089881150585243815030780369063261612427426484850955386022241546293306101076693082193723442417568650121073911319538907671911371659023121849150088318038647759005658802229392604274358022297702428412870683895799591353507405103761971887317058781496415854053199662473263160287875309325625756002242792940486611019455750304264223215609636692290035685333108979356386913296840740558980930238197006110007292941614268281101780704865170985885986300414517418450207913161457113931266463929415423062502102858571525106548347001455752643686384113136110637154574441742676322637996137461957105933995382584134682638161245461742280041977767135861082058393094262917720783078689498667373864556546881740014956701732884931460127012652601381308305575038559491892085651937293642117874559595101263118304920887170523026941692117331899160240190609891433021597910499566363044658916301922172628046284750054271452341665959411472242840376705551880744764082977790561650245273674821539051927262947933708445910254239996378571702201869759941047766307454128082100419214605836724452300102991239192313939542190722422981129490221516303821154775385110422340567838656240382020203603506225758975905713795450259300581021303993361894732270754625460373610429956020042724565897213890708438972543361544709756478385399020568430913935386380354456559720009863090619872898703966557412030656364514765424994789869883859411406130010257741519881490508881284621592152370390672400814944815315145493580006456476938622085678235645225448623624342931385610433473373702070710008854204095734939318386525587196743757466103573690005108711152148325550168782018662461091133599227097768348435678440925046724056152065974734096926138714445109727330900424429196357033492433380969018996241503888446305807216966194218618464866854121749603013875618249616716890905079268251998859218276387917490517261689859181658797034980058003031903062795189865760094898404170907940407404221600756228196381847058243637556506765588817865081110024802395328477760758793409595475247613837066223385205165235481213465166625103343567175104255741748885053817898254403995332422971113682551765710225087780148415675743022711081209297820116396580812900326894502187634559100748315132146804580062961985761895079395675752009078188189880816710476632217266122086996443955615038896565272782780913537284587660337420695932818018131085990053018012282778302756843122877456228891202118759285001857507721340931092630185975857248624929663382240995704057153743114374406927887035743797085454719373854618209181696516109643156441022967961461337515916869149426152507421415656922489887410274683315654202673947787905380053117066187366026598747680370093895109254624229547003358751461864066316206590750080932280908101466081314650259584750578476097716719026802193123966810373164133886906092870364716789473409872421482533116309688489434587922292517730494056907692352852415719081764235023756338871284812391555543634936508680111670879486655192406028941717008185812686390847306936089503109751206260935008784080343777113900068184041410852218889197680286354502952174192409052151733247215094759483615208443894806051413108135716742316136341198942289207177232013943237135978677783486415452412444210411090587952046806503957181819649610093899225153207089556900644143925088373740227626916842926247472493681397006219135690124681077511537717993230047875180749784544621496479863886874141541622404707209153078572152417830756816259751668874394183485173653507646368988917020948196719676420209637380466516251372308542895109195102432242911848239557706348254777243455258799869827038600608944538466210851466270270310178531664345981501880515449028472142086119598707884311127937657755307553041086366957192174367498518567242071092101141875885720293871632892672982390719922635112359622391573766268926025125833916097170078401537836804000975421790698314172209011828195872542325273574895889707117389572417121615582998368250804067574430389877162187113721033738721438463902339885589554007126584522372026347583393958336530610103782832097665397115530836933903893028476206642483134524942451452109484785695343294643619674888599326564408746441048078311637350989842361428387335208964349792776398624697095922931827554954798531312311789920737901041915253193631413258100551182558423992173610575608686958734108840454297826407763588111066075428893950801038992387599834375337635480674473642594432156114520672523243987684495205869238393972076013062639089354365210779668444607628331884009991492094575179415177153330304637095156620391702161942210820012201763146158271496028260588889994378028393294748518341830093774311376138101866922948397557231067763616786400509557029834625437977872861234808754058696479278905166801705028730359925570462593751166537639199271230910917836877871894335801388336137500183196644094606527008716849264842303213931175313528705551999207680395078766933948577093189570805356171232300670095045052529780375516965007962961922336508281992174653295725140171639898000072465705696767448119111180388073384460079701552511455462584861632453907221795916296319442051075489272955479000423089590295130008387219651259225936612175087590035207813423547158382813252892598046285893646538552112776135878954034775761494838174042736891021886336958188127636515298317210903085704936299466924423235982077459193627373256866982832560399687698842562735672481458013567562693425801357118785405898865520920772702659885531329146307501795620914102213019854912513263776865610116416985681793985711040809936693546044705016313584714270614540578930718657933621864569020624843969708830099663117713344832091967436561671888529484183434518411341816425834871947263316197273696881559891989355546491686322170572550361749884247868265377464535942949324749335634550130606925369953839898923227139226714084376444291481247138312642982016200620043960364194430493298284469576850116203344523772478790490813611584160606664180958810432138830658875703716589936180548036554630948979249738932807651384869404104670798838873328194998930874775612668672846689388545424120604431731518444661377699201178427024235238059393421396872543183338380490521416001025528112487639897711125087329801242896510173206184218713874302762157738701759701557546438481450277361666319949458766407267278152501730105058072754294701539015054750784374327976768093588498746824145476074122284011261232491867439573569513496720841275121610359868802231637621443338914452675232277801851415864671622100550294255008109663031688027366380070636067736954958224512437502310168964461476626401351675956296969618457657541590408946220242036944079987151093624726837477554034868725974970217295834313730795095477061313973355233416124647727311839168136856374585463936372252663970720693586243662292987233353014027566805185408390757155129425853461353028231778612015225215141025655960306738979492175433705261116422703049682532526994652179033066666838611335794798729191033416820605520305089361634655599692152263385047162255720396548894368184460758627038196227195770234554400878349963687633798237205182617416819081294237520949276312741141545672358128984176203612843420134603353753068966421419552777902524667280024483601750435642323973738444100155744379096935325637180959308210081638684564908476508777221991667225269868222930654638875210396388680559621520801062762855681043835050364952175431558246934382275165852661503619422258241043157037378939047747671580088039611816670758685234855481381874402322959768445908311145242778111295658854777585152360373412137092044648974149140054323643770139046022281236132452773297377339800295857151030116510960075091333267681883556028618776888359689104025858957585894022090959526239792986432930645159740607519822553142778581705163307608406874317847152207568938128127069556073713484442994510065776420780466110098427017588406006585852681623632806324537637687102774357294368820444883807367513890053686893268786582831497029241517106812183291191572507891142792285383495561304306947728062984777386386623482085453863923335545044138714591056326085940807716030939804810819023472555337331337656181065614543849824541213112288608811846708686022581720688977806868632689218347254300439720621340477209300284787990392601921501311419049174269030617170554896949558143375955139728810138616012878601012831247994359444223189191440696278338787445712214867693467499418416738440724476131339252766678220094816511789492839540496990760478153878553922706350135667409915145255630230935187974768244342611048502231083494844497145261789859661733554447230921538928626122916375230929745464420444774288053744073378003359953942376318429003435588187124615541237735977121789582349509685126857783695208394100465996556099448289634211668211039797311222540171526709288893244998083400610393916267614982253834853872426327865135226703819570510881686456864016373824314163745209862802280394072376699195388046617941640654591933905921118409500063314056579662833156003486315342172509402149555336102700591396908969507788404140307107338970645514642188821030232107699884545645860954715927695020908547943326450490027384653483413444762775294704640290575574836016856152325167753837260485225548934625930554809095874290850813530313467961955459914289294720848200789545787468370704189830359449309029867524367379982695519541848104954080615185408617569033965209663788480954280774321987727982657190086658965478727404558313553810208946905432794285632844537418621989613367561036551748056023795506024986731668205573032238270513994605897142514744628123827990530863328109873963373425867355898726168754823639688681414313976412148317166895706610217422177171744172928700002657752294413331431197109493859959313170221856393372984994805486499186166257198355001656445063695712135078402669879141360359116444477189845023411101112376440914114521034102940344966638081040192287612687878824621587431104935632394319562527508606743021037607879789292302304920903537107313246594314285396782543668821238623139715214579789747015118275801461924106161933653987972504475023465226159390960243184760588201919897202851597374587559541924106795762170325073988290946631220677600535648792391575483602681447684848152951461751976396944252016616869305315202876149685896695581305818886660791426667369902982032167939061787149218788045254179925941285661586333034496593662235437255439122751322871394307704127847848593340499351846050609599267841050518379304903732637476732785281628470618231649518621386516360756068299317274531880400959188302298345704544642768965273125139772922364750223289333722941644413283646185762097687135176841753458693524288474526166661994605842898756058788451525901446890032253645265708450736255327044359128180738877305113589044356600693944091388176209156266777816318422226264413585729099628577270991183641315724908353028884221378618799674153033774120731560384745827549159724497576849030892860134680453627361865580725861605681205263546934159233290672161897503472761383691775241536204302735740573681460409092812527948840368199523716701432702546924192826279780383067346021479018615077417753091329213859012457856605206876711408526127643983994756906608216557477546434087805817302081056714438754675421761739629599225637273419213124869561450960418880396077539910624105310555258867649803025527086667584443749388643597994790283918878621526179333658353463520079643108740759332683068843437649468012201206145124969434312451727139034982975541455602204345874944997535861709575560515695098885757612947431988353288515577151671811759235784567056567222708693972137247652347812786652801700992908904243343463651453679208125351875886898455601754116439576849136608064351805497888345026587359369452034172834715146895977931937227446388293589389065301424035927488136917654603605648178044953521567103993207874077773392000378760921317702996969380095869796014246971780564444297411097975619180684090825895598132458777005813447111100557315228261321580159075913521734871867209971821679278921635925366339092372818722735077434445389280442664365619686953761455413127360008714695025566748199348529814492504491380525662399966116012109437550814362909286232186750091518283023540628499631383265858943600798476978661424633641940848049347558344609504880715601714367175628171322242963514055059100691375386191127722619290274002238025523657093450140494258595992574063384150918759199868339379619221737523387276507365380076048075724782612778531154249249918187602748716205209965980631432821824326055131042916621286080038153841122340985688378900218837421503967209249693095440135917439020734431912734674109369259111385232532319027810049884658912288150844960315946300566566772121963033778676815352363321710994654286454396002285809464190417437899640670134767008841507572641256383686162331480309329210487833438560688150795665390246269302882812377612516683548728625934237534117260403912542146601295949357038086279251861591758122563610825351374483796578525304057817403976239810011442508903268128467338676017587951897585596798821118855774679224506958011805899599160210440437553511807145138074474791181529245273870956636154590617608278623546573103798300321467880374902595260073952801793500401029966659523778882966394286952151291606255796858026601597743431521424839520487712836989458334032080969366277557679744991708065273371311247115165741687872084255517444992535216894655249962716060039610731127551245365031874406696023713257575979937811431054527322733981481683216064977859241810938077463164295475395472383844048742372581675039752742743482538651459760007533939236297845139079502713371369790307619052432021093190221338867155604666077723605586502301176222910622883099391590365357210702664348813083706309547958620389258554204407166462605030172495376377771316318445297867783169771045305103338555254085146406094651897012218436027878695136847230547960564230612117804385038376185989006428721267042548947516729202910079179376125707700420048001038782585180964129174534578014661285819620082476581417358322756553011084657959643939063269312040472607789689484077893772497905540596062842979282337966508715756759079314372122740782455580313913249306461582694276610383243702868823027655299164376109971626045824698384286540956889116898241857681515721496994541595017281342631488692737557136245243013473835220050316629803557080245522448187396696470180373610514124144093307922378932332193568536509195348354628984604766761783819061657361431196854732866862172162058806090719144653078730299172351577061343958365313303735174053239230321390630238457531099235148889204616324644220159059381615585794729944243874025256476028513963563300035178028912608089982956076761977996861630804616457748029719728560303264197410629313522454071680582799486709179355654373279299777539418936198472842515730736998664740889165312135975083050373262000582017043541649261032611873049185041254536069647880238718129809711224233988366172104829880568511405103126192786224118299098678856001633526292929689730632779748198531127872463582291964861359306485750235964565451979616611636298597525483740696402744637405408180606837648980548124819542992535592383888778596038712458616698165884930491417215922469540041205716053605573075493965968766040339448733360731112985578324025457889630236336779351533521129027150196884188300355065836827569973044188260235454947035646459721964673055841079483227967450796019029617977427424756661657031075803906018622462674586962116143956842912569402705966131407109274131198324557042355909596421495766780813108458040592443367394188043138286515258940211178783237411501466159232379133237665902200261371707392082118564236057386371770046412476456291313632928327627815081982322050872619731488956368827474661462675515242059330125680001124086217543917233424418089258729986363151787181519942033887402458141046482455468844921136575167781493038973849827782112752773168527821174500647711351510321471013572773571158585606089089524138324698422049282729503778880834002047090251697119743349874670700573809601650277547622549618680176934584457696235483511432043601460978527430382459877793565194059900293213367808437890744335168087667778054721485942604928012477959839651342057910635610301765027803306640738360489895537359977915541172275704355128990509346959916728603894111544374140784777844062644265780402275927831193863858174899809112750995094640597760999226363332454280946462921744259025693255183284463554628768342137778277628607614433961360855983901089212399575017206086288187429796131449300070524133268428472730146501773067991947430468646452835793381715421014682841637740924733310091031416904250400439878158425996444957934748392504976134137024105688350663155631490445640219832186417691434555349092245631976232978889859136655358186563825052850829680568493865169282070877927868558231075873061611858979128825046436164169200841709767153581918095292604131917715691599007419902436629199981313873695764137106771567326752311665836272548023688073884358507032081000409191457384798981389690733049895070929710343992964226324693419145650165552579226961695298066892368998126574354743252229858353699110327038423166308418794684234280704018284937123588862165001428341955524589312189124875894973002449964036802688688711265541002463103623431444469046218284821307880401901979547185743234339277382966895626271443138704902154627174037069448019911285015912138945291582763845330044850078716883700997804195876282142719750208596597648550431276734502871449594481432199088361481877827565660807101671414541422625121781173043551064478506290845412163290138146693876957301664715556325483604643096321238737231653102796515002756442926552285548020813610649238020367517518628288678104078758607012764351583343064696356394228694288970123335404975333413657364473977617498287807037993006027159502015871166080149511312039829996882888715144303997849083403091552548460461042631194797363739881626795922334039925199128400719284705598535420955011528976637787905363514746516689419868008951155076979740506529853749034418793402233810597613224611484200490691308845555514499313719882839955228374761671397466389622262559388392047953879899927956697197260806726272642386202540028872752647065769733137669571309069523636273169335933016948071585309468414442521014601731997221963156927018254325325417111998770049669552376403935789704088782334468346146729644529336039113914999180097431675172707851096129883316306016661160676346613244120007154756533585408787739752942526196525106673300806890122013960903560164188875050238380617143635578731986954806540907317591836614512482868869160344767509232975476639453385309934306234592262389803349428497967342574173554076012888414725939782381216976460211831847523922180325116666314122335585676545211012737827499764356011710362091778921288342900062404025408156871653917815596115803885912386118139571183908384884669020743006161647851901764214505463589890226638929618709861451470245338055054346700142789395367177237988901777606261420073596236426483868794122683600368339556099083678457383254800275575557856261562913166716836356562362445346317997576107607065489243506042604615491225365836053231636869681826090869272188271527573652214620967006856882653024335597750960807035748673572728826194350119050863958574831624952765489636676525540846566804088820190866590207255607104130443111516947521174003879714174900812878182846665826526691377252548585583768726306469206547403524041315577916271168209193456305126819653291583115721006639191335016700904377076068099690339798249016965683268250695308668994891451089016383613982435128258877553452814836121016243498437880015638064341654637447283961941727302560315428851702587489719977375307431240810608842508122971847856441515088952659518532135775477979527121592608960937322913207988140099823504478887098949704924005835432931810284373847166873569290756591780022773082709537331933768572713013757561347851473509460553700938571062180930679053144443144945897742218323686000343134230353010996047530818395573549803024251622667489704203398662157324810379740804261020931947054692651510592549327060611438978684018966358506902964522797470334742717188770550482954641957704288892160204531314580955209256996567366880513140367381993106088606982922289450271895512232463305864822722393032619968078138196709916196124365522051458750444609998301004225557264441201095508821931625088136566977320963280564207833400918004815519309514649800682991625455265380238618107976950958987132364892315720974867235490325739118627305301394694967287398768131228404783535234664648258550027454377404290400001195549208271504187435129801523917233625559401854423272874052983285646725811634842102738951266401562594205247744347568167126947441506744319561073277790339238647080169372963252811750716206015947877311080579747735928970313390501276791829664418622221999687539805269840573187779224482288556456295289101669301202653631127772745632887736063576936681915030084967199292509989368879528941840226482577891624611048397236809954145008734148546432871530674942693610595225832342202751963878854408703041633670865518921397936682154003521199250597176245476933737099147933821473212020167903396746536086769315530433036163295369679679007947089754085489383786689732896173847619920231942260985948686568256220780502639675833702578284695136766509004250752930665308499991817094029670832073943521071185207948013494276277323852608452186575800275380839146455653830294775942654549206602391667116868915488371633129297206080632830320641025237643642294467622585460233786436337044762184459715762323507479311322457873886845529682121957659480666692078854322883932035130806957150975068615310111443449084026744275177747711362908003469947836213460080343589745732541727758029029450195676764624005917813127520598210434690719127533941123744514932545680306622644874880709916979337432564463724577873536735460776512423079286712391779250671462844321977419203354586047260711715336058181318136231622209027421737640480534606632377431919556448716448015213144595121192363861475904212565669532649756439141532844133556650981177194589113291873667129403463798985568410866811001465775862883391986252650426054968925493511596275452621081029535746530746478713870205343200299415604305398843615776612390554962318266454213767686603255087331471020284850978420774199322665780778811357341752490068852689502803118819550428882309699588710743568692280870186030901845104306988028803140032938236028245622631161440753267930026315513224404120645080720832053516229215674153925499141152937482984415855991911457658906583090305914150772775007850184836470440535862827289440571301027816687057094236917040262745256003011633669864942078560990156925419390427600805952593162341911156092753320181608668683178951711530079983656761066949166135977914503181734160103096885422524419994112707621262121139202989583321492459533333750867025972276636591342015215964745859815158561051112495108771843410103484799836130451521668690008010931273209546560992878577927083797400030498874094487993745464907441973412616588773977800788099431139964964048309035534734007807156820700071064447514623480011911623929490943845059638407137942390275009556810603932441858729404548269597345004308218805181888991615857539655190211019651716477925568846210191696657314128856154777237096821117803461492252409663895576085320885123469238691128981800094525360826964350603758011558891424872965024615995359245954897463260977876852967338724750587020785067285159242877720675635043959918341491612492373327208427122476523530477717946567140822872816053368632197923887194036274346696723614127233104815011387626536877125688167162405734313898556980836157915682678674477367188962446521567068632065545105124750238758608382775683448151911542598334666323310992321653173760958238816805552570773414553571724855992148897986240196372401351706496525856434526172551742577487461873991440893660913086606765681110879289829121852141976063453491812249389734633608513568285318946177409084335801624149161580127469857508592995333260484747036253029020306548455600004118237571082914118678238475650716001044320299891541859469346993370815322414038612016939117295879893807007867633011303068767014088042664953721813970917925135279752911177616624915163002140712850280281196796306925983114171377895518250358215827262328999749975590089587251916891632727803976727777898473966026355611626945729642273448853081328281468034715676159156505268894287825657091048176464716852710740308104668142812277948734917754103036527916208863306364594647043080627137623119892861445150708752069428226221441402664519883835945866985847172792244556778422451985013096734092273909700017058353083810676878573595634031971094719544298670199348087035628290637451719884275607946788237294341556906990913996859770880292544779211616234734453069278142371757812207137702520064417567854086549324980893004252319377359526647353316942859167324940865959928625268991487183734649933962162487739853848852239652199453732650196508887310924583649246332289715366945363573919304930152550152378806846270867986084759759968463774178443349687149992926314156333210523293555776069345113781548912493144942124097314332220565095229290785977765755316749765510789050346985118955630331126986740649420799689907122320700045190714040206260500146584886258211180249443592682207194131141606479804652680561127128903042715973506995676683717126850398664387895521976475120780309323331465046586893026158415142219520348695459265841441809928902407619657406738266210297171684393398686116524761593446822923371616253086229828889131044268816996393968996675874440681863509796458155134418981986518820613340741652802928722969979423225087871562829424776681334651276808292996832188412614359707667844774898597620165210484730929156944365645132088134841969461883034282053237844804876996036422062383678368909338100717716839234403493737580429249789270948997327669969106758731846449134560192208703315830975004756997760601666052510902217395255899654949223258382715393531238939424441802549829865995168047825556739394401356765114894067074180463189356526498749464694643697066900978566638524175867850639503605867391695849370703951087510993203353899394056226821545483778096422184067355692935638540001690225567500876794588416592314205556838129844447974283596543249407208690495377046902488997498347174921877651579366643421830995538205526565549620164847640769725315353537908232737735974144249371819169505327951502060126474478654360974431837865803475699758313904520486517154145421782441062180523396402379597646726590257783395791077344558807708175119784338146418035228249312639450468489059071980856354158462457525735693266992209586357982138396907031250475572009008401883598563217993585361940191311908599474362017302353644442483784596942495465577984430269332749768431151618982977846961960743452382353567427229390721054948039980799379805433379417875910193023567243054555234529083041312585844462290839583404205020575400880765877439406165435162460090157724827315042095392369336125641004627887294857000242569141099134725941389846470317923032592489690239258422882500601106274796696476812702751072028186902892157640487285762205450867483776364169382503956114190400827328310344599292887155311718451897992170415844765513854759938265414775786142752274922998495499708566597291886255557272984698371918544726019320745400710651244273861229658003724968944004319415553196358626594342635289740414352161490101687673333726204761049323880417281882248938422382213353693571246654475797179794736105118390575324831482980174332899443439656762246594239832537897719840970225160687979383163474718711366863361341619410694943255196529030699821015510081747014140450379718223309620828836235854184308931386256406323778548871580125275959668000542393473518361450763847061912485270772555032390435803393215928760407631996598288632767460359432303015028199241635525242697673649607887548113514621035833076569857883505680944279974594968316361158741729054469127063793885015192477084122518084230941100729546603386002364028766320408292930103948103114839444759066178289907895054335446810285085505146909749934265069096959976809091569642721231359561073163021213184470542477749027587472131562664669657635556751941550520522301477691559847753830877986805211474882419244723722796474984358875149934268072599541663032281052924011208648381428335277726339687460188826943775024253842356386480387906571987295897681679074236491342418144653494071093379651398841917746602181911407494475140915294232285156267624585949089279620090156932931563407132624960574480228782036930566976946870107560713502689431877190446547371473552294760081058214641670617173059201885138448553938512451622959066495586886721326416060183912259439325206034644879648100069989293412468029763484929757111034690003070128237488052571315879709500153819586709688113519157456792278117518500823909568105489040446819983801907221682590725116354064279240583560827260702867669228856095974951749039297555793676864143245707495808950932444339067960055225184549332197570929390816670145873006278069975396093420697455430463516534815045396641879471662184009248326648923657477280930919701656804551799368788483852489763257269168485830836921882247868956881285001299287439176130915541833373061190140243217673094694730061570710805845000264275409342744426144957806121896887684672052765153724010699600127667985243277438122551584397342350458844736449864338235338304565545050739906478135252159929844659594151450758691066721763563638844330306529779022501298065858433089868294847590215249046218607440884019655208427979229019813514832401013951321132418868742743392922342133686953754889737850471180146608687799677069802533829424405125016644500382516139446062435134090397542466960656936194727448472956456343334739823807680583211205040280134647059301822138328654336950943423140942749603781686874303655425904513865941865487338331678520903926279272588724985059712495644831594017288680739021975316442742366213494213937895886483702076999244874519583776064284045431594788137394272084156069304312703740525103436907984672740292131074093010478441014053699651637678350591323146526560017093974612650158346263986443335850527824913624282818555519193462635731639281417649017118378748921364522143354385920984184197765743623518311384859554894581763021758495688038610903001656710770742986099974375696808733083042673780717770902168394251236690869314867052176341561328613295171679210476052897424362764564428581385647271826416311047606264176787002265826638944256547982757357627804597264772336203080079155206921703894606423662301838531760597182459792892454054856786644619396970292697308940703210643669005484957487994498512988713746588874169845439828576615511116564214432078379433407997032398848556421130207578722244952298021975646823716684264407974128730917879171174709810935368197431051305703008442091558250194988254826165454636948800731480166047599367362123327311481184166906625825724792324553585021431021218747973343492223324731306577352541567979615949274482993565943805566102509549813639850597236988672858820133248929391919238486904665839637294091136224579089429562665242355038487026868223160306985152299077367116354866974920532787383301738062067162178226540839837037309933247588434162526729499816850406266686509062448462949379977985535324811498226415600618754146425155561470430005353658534828448993274734579668290385084062856085096958743839717205737625958466962271916817890847325333291490400221397302369440227437211146537240826675896454519495812267930763330886934418317465666356578431022630190752960232654691600057483459744787381276697988591004223651039862651637528676014301193441235419048996535111193759343302985407134453598235798055078152179884194794362250601636756836345627938388200200677087383112814682790848786215492542480764033964887418310001307566648662250796794986744174568123225950756813104354377906458004070655743681239352832849661908256741423187471728404914045869796385970896609609663433454036945793766462742084260026169059412654653297247862467598864695581255712167691815530782411965194041407893777139841167883444438402933494670986908355690778153161081220091877652502382128309966937057046912578225909317754892617210177272134772256978087583372610594616013207806203549006140457711250796820006461613406614051022623724941319585693945696605814145747487845077579425441566764912704080562587146693102150272331813454328237019081225143695575454724369485770159564496796359706864507072167125971890558212788777645437680738192620879053656295126855210624850546062592913554736445358503001127841954817390251310110730172119413957701659724858152760331170932733384993662415820962215604880547776836008860627251930852731531035981027116214654900001677450169337766126098763831683968862589232949026617137284999579955671893369920330713635299845539001242294636210570586657608119397643737366703217477010965679968471890081912515461021775708475224166482439010099862183819285831674217645883714213143868036589242838186342733144628115280857372194797667596591081125185744498744687353581029359076871647798763923809642501246120888653643400515274201919300321530684818105612437561450258659221856120280971140157268947945965880260997952956645965379103365395332226135266754044297130982352207310891103410691623953898510444629040606259014231489979387025718256269271798815812067894780230119465772683432732089800832330346229352324908795114727589617610698008241598371975349196012505303000764336602073232958801014093320670985062195865187861543797280883773607071600813379666529300965419756996531469846879614623896179283580267587408256363119716407374340564886426381968896773863945134809605042240342458995625903788000344936903296459113592899446216736047371464304274771688705918004105148201273112168616901532573719575169756616071867121407625314882754503569272809451402004787503525500162787931117050645478071610067635486552970046295495198573044921187927674449276444437845373110200598437252553034800351881931730348034312281509343046312718584524804531644222018565142199793893251497157984231922290965757768912288116013057197558042517054867871098323338014445911249634583462076185510104239565371336206818036164048495709709340163830451586291697825339940323262266373775825491446255934308389024352921267630134464876400376128197148620551067820716639720282373952494312323482502696332055125619857052318689511492054263157928158799033993874257205834457500638294751981161282424551347833552641236002505847662192600869996714330077300433179317538954347295123089126826870106891607366003207529209748433857031734814499855095986408692815864096086738330850115835988287868893640269615917109465480460717366877871854109198550527213923373030154891081368143683094937996399252925424167827109877053708952847281661986041634737975579844710837103770073113682722424817651106448149201480788165741150033977182570191570216854211911455439496018724471040692523762143660856436776129761800858069773028029867665211027774219747161128732604260858382688608765132545887994550020178214035627052290421201773045063992887705667796311739934599126683820656879702885840049018579651602508544507330610580360526782469573493626287117889865784455092018365626962844234636152672087733029319167060250755059815677791748271729296044116247246757312227871966614245040145450136111048058661097521612675564805380534852315773305690642551957130688777348022295351840483459518720116584599972788163023503924460532134183345759492767641880473049693726947610441440193165060015282919384418558490224128632202234028498212646017242699317608819785479388204697547626479664335161750400041569260637898935782010483225304219910647529838425816930778010067673300223829677276070299395177145934513035174000971829170386853849929354846305948690879897168125809855564029647765282820149729098502015465427801756778145601897747138379352740753230735813418645289677671978085273076255657215677666267980492596184840252428926840045666220460237900871060153327194402917049474748483068843455192027544075308981803439398908283204844344241570283514828719514209953510251345581451615271430724418124709043044690303752088329871923983928488622576867650303697040895241787235275771420255257585924071651729190289076980262856220153685536503834595186799638127929884964042804975670818224965601144490773861053299760831672711170326369620359099376729217908938380161824453839490406242875818784016119968808465383266446739683930076159264731042420111835088475644565354550095709496259890930673062621615234648550695519218097102633956554062159398867528041874517184902789904487526029970782367269593167843674614339950608042628565173059739254273729918265381067077691544385980167377263934487437507837045398540704488703271143650280140402879861721291780060589306654892753434803420198128007198891224193257463237838750586839965009555305945735297311383364611511605758797462406608033811539560927243039512360993151793327045766304270650976324177344453169093441713692992130512836661575722092744055199703400001254674005450620549505933003242827550985371001611421077182215657824015764184057430195800033822962760702531121406329918775976551906096360929011538335311199632188854561171133318602450422494566688433135658234729037736564447750675407430429647514314870358187809151906064556572309401390973907274210085946422354932593008538936192342879820676469123696856366382019332696264345447639788257632816978739359355154218554932995625181471760527543845733740383405257892007723165515832536344534187380420395029234331026527678927434244231830968680937813715141278579161547619132404182732903990600981025436484439870524453637926456978975254929867469661351272375044166699997322149486844249091964334098511862512358236286518549216874150146995040783998519937463458423827018458605397120303562119384606653559790420304114572583608880749237448754478555513216427553371584065741856418652029648572241534756627679099226490672790551521068027792270931188638378373974452715012819406700669544564152631547710700930160810785150455345898756865088685101300671892856736269657527751546967456725045939137443660062023982049105881949107980944890055036771463100548029495726684974629309174217913909759238582561886796946143574927967888993782690841104665247346499912917807935327688973918906922042571961382903786964526235309329702834770743117465371175235860948355109499013562897622882073139062216448513075808804883523406240887320394867664323669031446626997583939273459916114937686160577979142706763023800177587245818662017655964527727318339694886040639003911516810952228635562012405643801070149708782766483806625896798371339376918841431983900502629880674691061279052931515613624640067167181585396007894019834136885757319314739942529972837367091235014980563663087456381673893709575465770515902234255672514711911915279671218228140375636499456688680624866785737004396568926051533658049012764680695924651722903750705746455218262207473011505441420598216721652128546079323362281153360450203972373925155386037788857257029154763286952859011977324855239015765650216058410825937657400175114995594729641285790643967024395843341958874660433875156298422806511708704510226310836965201498769862458632474204103535103417850506979282914056765467904739775490103344532245942378846838293821928264135566907598554013170542352908364440496484989571477477103097864467200974282702018510073403153329500355890174642881593293633734489677377659849598802623342008114025644464149592317209657120845613044226485385432197657154670503989350084346458711776888993054376033471962362730276563868251970674788952095934377888790019554956677778787279328855311244864066848315380685291889857559840394010932711056285275464423867954172692321972384583407457392071137690965405865270273047640204634834547252818748288450617346361772289216067783020677011539378947891804857696668583205020979948864083579787472830852542366180810975844091150012218737660174143189873413065720706090230782531993313016919566502093682409126371572494676295909526423346543283021736478693812787218891880327217837972031517126162776668260173451718231734427685733477500816818241002096541988866506837816214191716392302267649313263722022634086232883025066302506572051639204239079861558829625983645267734328567116136488831309860179311670329272339604926226917107354223660960585473201314489126464398695511990928555790158931592834127152882812746401688454100888253149133484136538863751972752807769551598429125358876331982882297894569108451211277177589547186850691845483274791982924311319118856928173809844024002323309802092745022592420420113234820124343870099905351881122424389921470572736766610904479375589472656568837714581792136196215097395773974172466909884519101975702020299207576161270992734093839851124973395381431681014910976972672106476456752212835083234673850730727780921099974908668197379318076938416429245647341460991214976229411968784272447573460335427048373233318560759496001138101114766401599414224848710198051520149427950000671928316420837679161331614596459991603643637958474114254983339741435066002991152211371361625533843107463753514389771679963000564055990094549406054483894334167812606886322124259248504586226725653109529043885861723790136548302935569202352627889083429668247869971137768286923013303177880695702451267627776228187159800189623123719746043464367055788153323904848992175248870841032866864489584018206555495594703721834383652813470394913214414610600085369412627004935734489480420389400125549254081332600848462293615784189254862684660593462322001424196671876772446656027554332664054945302729600221558694048910557624538507674229573352470431050970422034425415072672983653187640268213045759786277406239302882081878489748318221307468699604995542596753400730932921409276200550031054332701535788128734877288035855951835902810552659799580954737961867493752539496353530445110214554564758871592652856720852770843175320894259909976152425029174426377327054396659549014468142796479266459960513733199535133238188887800979138636913656317845756630984049088614233782170281752633721396252162250559389606636643905766354099583691351137425408687178571956967917457643971050622135042350897541521866897760640500182867345420812408197982351360572878060122541822525579291059724743629652958083650622844044227974544628384631597962506082080686163333239160963735766918833531399921358821369740589240240030388842993057191818711556461768043801418578469174197367851156700906055966808295496409302637059359845400953396709450259764684631772499335947885197566840315014619805434297835387564750993373795461895763730668113436397411133927200517383178184044949540235927787587436106757645620750478484257860281258891748338002870280442892149800091276333898934906211895686057484164372929734893752047399679202139187860231196860348622856015738368309452560698455922709874579156468417316103235995834747858504914229424023794228301990233923812313119878090438649080390873764073478005772992524290268410998221232564841056266163604272917408821290847154203692854454432261974227950730533985302322117664705722300355547984620752017618085845960747094851207514913341920558693060108955458611900157125481570246604873504491998604099868546917745405380845833993963007517761633231720940670942034309140980562489282175359545539501863567301704243327382183282971616362522523778871145604835641088797190675756291204693453840637851828649397528901082313832846348132325866592676830315193903899641249913439203529413799432754385888455451452850013830793225451193003683076781230022631571690069419336144089253128254162596270812019582290364021709771621295967545276528549000802896915677984934000663313213637155225131392749158971323309154857466283038596573115493723716556055760388694274062924539460622870650370265128577090771880815445127734964289382461024231750058585607664585659734683100680680808296336793514921178515279160049190585551842699249271161877246007958078278855211947956135869377662255207237933896723433355721900363131400788033412179267879036048599791683639561041750860209926572547906028984624206584809105889041941920001785400445278058737319667689864096413784151611338695346123569139537323475942594216090435173811367194383831346751810557556826192016632236903070067308150520941480245455087632545304605356099049634315285642553560421169703946287248066366191247800531965513525417896366333728772858247308641132074258425401908854530151954008145218914988762826621121186826979655300599225338584392970608144660040328700168423441179571979629612963467870305182097403391434270032410952434363039270361083519508344888195901871262783032009069222434696268085061401305025985314944041255258165802749938044474596916235676075394339033420616991879895819571555074723896311494610008106255772898701320604996862171460687416835442244033074092511042531648093889048140764048785558120218353938868435749090465509155011463083881940862791486348837233261727691113549564471566788909317951286630215392525445586054052976848936243805819570103676931924549128087963964218741699787131412027140881122134395946471382848227126657321333742119915777152255371819231577470218354364863972152059637442114010292843245059207722147387870692272387422411120393991271304938635429298577732100373676173365102333747635054903051550828395177721611921395826544618976367921947208721372984623234905819314888648021838300333605796712229769108370905910283927254482525391617537341105232324186372472168731636147327597742582755318367362816469345028404278197240685548266926089516939706424045320258644201174225153699870572396069807572341453484509324113803670744786204130801525697978569755841940421540423940550112130927779888338229273124690714967852813945843586354110268862960732135422118904474488526945283684678451668587269370643817204438239396814381212206445427655011525164915887658759396364429487182697944656864548093456316108739813668743092417715085687827632695294403935768760357489950823962099638365921368295338972482162777635434792720269457132957107208397273567724402677680546478237372776232791644664203323314943484628807138040611259946354945461221267133401748718926057990406565004737401439288532291389299555663059023334884551760252072060337342480802884135393044413984168341407592714720123534250099556718722182881812354532068460017173220502831449229213704828621614785286844706963614452171121055562629367128839960916750702531257598984882628862353706686821133088866906442130517746866272903964198874006422305495671105330551688563143676360139498035212041236288222372992322108473218555001613744418299643183302582313839557043556468622578020856488032322983859414390780951683359070040950443476933783199039234942018761985515411065217738054538288300159337354478763273539514269782880162241239114276645804137052845235739422613949776072916674742278001354873745186702005392048720225453951069073803263672881095856028576882854926717449935687695059448715251547277099575874725102058102266466780248790927165599629781786268840229943149369160704889309610701161892399385126339110428400187668828474411882711490122704368043656556035030272537585295426616408915006373434138808535542494721599947902187452588648801175023969236081294656139490898450750388511291328196813793528773354115996903426017799934911847298409319703448617071972293160405512521043349514124402942472541757395040590800386669745793303980076215546936029701112821101732652749544876210457044873828614162608685884282720548537894351568191395444457619438114618086481145763719246247005854027652633156213833746626611290581420310902030623270319955892460972648468235886756364889662740791613429871071292727170364272921614312581385887485762878911628578009344968868121384894450500805446204662997930397729692781767113652856910052681630660978792005796178586800762919691725512009106503641809078794108907609203982923995268382382550658962715857634228600169389249519286164937672721017700822948146882946528251727739409604332498618925068081621828180341608074106763063171208917428037352627738475011651065362718807676496570783375742928324361583234519549392626907108557841155965219837799568398949970097828261325680691724340070294990575471009830437366899938661224693102477106055807907989060316519007216597487166321848155917872691575099500851520437099436716882862393590435614924216256899759814031054180030361876316943484406664556582707627968979375266376830105446081959917431018969047367792287532823389594805863418500778955607604441050989646733822166447733191338968012893526069631313569197074824417632808487495296630814001540427534199108775822179518437471943528872550630449995929810024901528463136619452044191185499316477880346370770684055471379038994518194126174989746441338236513977756532606026266773616733437040091826008424420304209349595534728646327645007589633943994494141541885078564924968066631488801510289232704309913805391348986974777163523496394361548762700732195616065839671804263569366273848387227062092308410701699426417558683152894233276698724355288264828075968983642924232066447944633425104256917255717659495302275448405976960032406415361337023859683816945807931231051369199552499186746664022206983492185490587411784999809789109617664428436026604951101966852455732676627522403608049725092311928755731187474672919438704553105688586795147026596322652882650044332501331617984065973325277804917277223437769882682820288554299838847459125746615144754753676805373914984776713748728382226203847966721813062388481095987079404769203621126167456833413340796046425041123401598459241792537416714055453630360850438686642577578512429358091926348446106552520860046728489245549965469851643850514523213323858340820657187452344715472236727723882613130591085153305814310285863567283733440439514436721482979311532085283268681804568990578500915152327176280101934496812610375861795800616848750734797548272009356560359187206330365886178586323973829968533183383128706621442259167843245550771520243635587292584455883880580928434838748211393137302450912912167770126797554479614542069161111100970640284550033222442302760740686945380385549615585867763720356857347488408133090660404076540688473513243658258263430615701005869817517981797550835122775716484367234289639588506207859473172954832864945424864687444711203717239331657993934676422249054282898815426591606425636698513943554834387325116669820833910184972004595925354836526846993198031278503899105521208776131892797571417090279274444681885743821614335502792025962231903458593677772657560928033396045593743249272517449824909175255633670277627786020710472533213898116024194971508611253376905109043883208448755537074244035321644922965683671917418786581629242203541536752770256822647827515900823416358269261069006827477899408542169302037007807260444396311908605802569423083448531955499829201528177844991144561231270484027683988458060923262095643355616461561086654782331416992765004756448738852038776502024022064977478377706374553533323471009014541713832810419551600068677297703732414552762781546982398864184459345554468615258638108644792562359354347860334388959940983262968054815624230210786586490655978160981304132970615465955592040449337179001820148156834280844807245825185142739808397680613724370835134336593316017687395309843150710870300625306017181511497434813052960371399582776587618983312868967408606902192623257145215639963024420997284295387226049063082621492337997154200132539800111922346952488334606262748928245959035343017924149277307233566544145446223781016996106898952425582220822826575526812085396947862905325957328813960097691238413904262747739950654379333997382833480829097680364096745638806377322546735377317080312143153667546164049595752935366929872919510276629584734974723228343908143276872493449529187781015880994483526189672063398131831033762560338358554829767563275577782143315335577975383257256666364896210188133686955917833333814308742615708583643538216668880760833518963867327994092066058523319527957789366502539697108918482393889386624946612894404440120048691742190104391106066002782631805063200279536761772282223765606132430330791026615440342945115047294887833680945865698043224265569703590307323765445754399004575299578581931685137613456862635948742230950607752204282362634799055268376859559692361315686646429235972439057195102993401619782875185131614523795872949821247002014062796114962596514474343915552514846846183038108026941503440921410016356135192714634492758820258909674748123269374567355549001267228983605245136327121935646257102067511596903700148783612424243681758710919559963280196243329434729659553675486321908228253251021661593279937553017139123466567521013925129310563567310061048179416400199416812724634079553972951021079759396387414972072423829397681153234297292924666921282078608506718817716389977270882522248485498372060453928326550666958784322965570863206743299685528906657554392167335930290312170325128968145940270758495995083318616242528774290028223544564410580934814060950389602553299643320740805426599043047407883305154891619094912782841138041183699222657956875119599944191802520674866067568618003839907927626849597278010791636007929201876277652411324611509073343846524403829832037564602227586398879227950422349345362500153052274044898471784640724514005639881213664633986450111486726308759605162225817052257282108228152845698320608643991836488331015830717363809407958214332563067013469305762709317586050445181256747919164907187416834306461743500520558896008817428743082113157982402521506175169580125101505408335559205760867187267545254162357061460086240308260330801686260880610295272635970854161467542592507625783369797347966186053790022172865913796972643640243069795015038007649305836235226273000869831629338549726613052536712390191336214684264644492989787798536207792400959014130908480773777151750220441256961873750726140175050700735011533020997839862245175617406406583714824369335929719195867352506409595210081217818156078231151553708969498185075650712295308554722743435888045826860546966104320471606070534913523208332683774417156608103867189250957928946707819071507030542738056321956898195843493483944429899402819584948469237058012422666674679530555922359410788274789802089022833573520777845472337698770049716943666021414251268099109972960748063171362086127213443593898472464664630387040158402898722023839166601173842523930513904624100347032293607784916056299374531184386119468986588521976453672841530794876988215918169636439666605450392065065342304937293820252639075125499995616678854698588116504259801804806694344125440631503946283745334493565509166318583822586031490380934295611886732124273729557807825817576703971034503994015916006375992345263774913372215558848496171523633645029182827301069055056852800280227404870628584864629951108479195624642005973619165559966658923793164214420880405167561745777233481771289876626998006538973665255622127712709076736478396982124522160264530605088891596658216091018420216949975271721759857572020447641169279043246595317651505832651133537226848827317906215764718816939428229135508834243029001642975493261765916091184624461027932501134550049514095238979963472911130983108973322574881102330975994522998647870172070917229224128036750049060836565937366905443894282996030665036702413418314481222289089410507527968282287922817030493574237131883369230717695343482190050642019079648565113350306701916714651054246569513921042098412560830945662799032523312481054425844542889289913751497866589022673127048616557784741168859312510005415206327235823510464702274878943723730124694976031667649089955750303796696301811045761567602861778963193377555211817095902046265781039919315423935604065204597289951708508601778686554410045906915989840752764366775305131420823987569407927152899185922337852670554508812794463073679085719325999214345335817657886605096965640889817108320579808929578534518795597701494835318181468529298816179422635552931384561206961716211739103685607593890163021721002153435508933242022887526151585559915189306929379550374744974212815155690454315394480022289626647512324550067015274014930111106874010747862865163510340370605861237269299493891150382338680544162923385785730150214868989303704053904348755498228275147221973779295902863174211025822088458815280026808484743897541773200507964335661471176968457355723723111249073929961157580312884372921371266725525670972246994183265351451570192403721521543341007021946410632000615535255399716262049051302932288492813539081838586850616217568798339402067164331244468653925361986949070489894697293813592394319579654464114410936316676202370749909424200432585230006887786477444271153250398586008301812700091754902263484028750660863931502938581795885547588046891054647429057126771463234750003984321326745105803998217976870419186343473731584207236105126059221407220309648822698814040991866420339878825740883740549379390168782533937105840988938761315214029375835322320698975908156865013264900853518453863916834571698427806172822683622009607781385987660637077934083129154078616308676941963617246891373075500399223834167275971352663639536462712132253781173688073905777964406397915686196778835642602405439989656539780693820446837377025483946117914867711909932472189746042907732401435189637946299299977086037922996673086494900078519011215745037421658229459892683410354828886634509191656235341128569353336063641858296855724690506258127465627885020637040537391205783739653929480968821371549930253359456611675317674836981560671585835277448346452015785171920687323888936227989118292902913805585960544031501423651019438785016779855050314817291310809201793530938486786350455208456244700649867269145279949222805602558868199545294073472333701255930411772299460257600639879669744008052504805167556636471052586404088025299678446475199854388178740887255102419726906095577893949067161149645463497929247636172088341756139851382412349952764678905919547594721545558192082038963365939290543488499158141592631178086766635403683459952816047294693239096929487260500358027484939042130830207825001445396528158893804946607216873752797096482542349610526330514885652429673102890211877069569559850797356263987051005568324830940685871947065094518773843522144765509562166192833019210754727113968442451881954085088865335220212726280884388915832827882467855212139152939393965607557907160316460445247408033024020243769962589129041981248905710222493641458232258723465645314063328751559092956025608827491586879480593011201965945241293462989186565803409819324264790345880759326295132961564895336036210996373282439213898316095724221141994491520718999445646666403425307184093000593538644907681670666141706289300176486558794396358932739635693846854282090183712860369141296213764055213858359426146966325952503666203465278989303826216932985864637128524689023862436779940154610437360441401170738951349258870726053779058809806768639699723608595256680315514656348638664921885073583083395920306122231528313263788832565869678781383641201551597842901201369380088576852435019439333690932191909455455733048362713653779999349685807491818821788180010055528283256603119117415841013399926462437628764290851500161803251700335233571862104197309021116189143804515562786618341692174563341644407466370263878248434346876723272470090452275290903423126970289754405401610186433384479761877327630871473951958876503006850987058541018702681094095884332738032769113678271892667802033233683619147190249066131256480034774462078095477459653737931042547367232805918144174628906129507798975880301444126947221698139017258930299223953559521863276648069942763183326606888378253105348567523969012768392362988474930065464413764806098630880150347271896093882899933508481486325610159981788831728748623408062047480630635721432529608282688215924647103814420690016031216729315821728937197185220643733620979935054400288902130147225606230004411061287967244820626931773844408646173549068471621513697465322586661326073787129481359917143798853878312820286111430662169313710198288775291368864459484659740368573806323892014872831972181903614886328345306749684058830989679650377637925922894816732803171530797091410938160886798464242509409868372147704673798374221920817222488170380853170211058704577765906180257704827293740769797280969404397899911275304539011086554611135412926056280613577223438091121478658648689634290305737946894165720297801686304241447827053576406204602948033360512291227085072459181571207681787684514898348191581294340331479833004579621906919210804676871849545687016697894775658902468698454210409822612287272543334401013021668868114961770062605746093873612860238271762323011406069093926813739815126883882895004964688681239068766922621368815114610980033783523520098717646100467666731855422811605977548846531846957008434078479580362029284624170745306163943679366326587365920500215091029976578073514684870739943081151049583526261774849625245157343296354550943046977768206003400748351489049850594534730717337529852784071929942990894460990980356429752628471180209807121399095169703003983161796368186568948398985929263648003489690098693030466878259975008964086279529153299209673047797710666298816943744954668360463704291951952271594812355731495439431377824115834278552087821177357092311580664075340378273368349684639797152179803211156660738149324114387088171701345340932404614985388429210969824281528168107343044381448796715506243684515055262599236996812234977374884940375362782352607089856651206123777299267824240947754002311845030317359181941681160948943590339108585303121694641410778838220399169687707159807625960228058554566128049010449769929497079438773921589475777649472307308609233706160135466063712775117128883984653057024475858454116341787988527077702947876586095071415373380928228676621657376349253290852697047261253849294532034928957970287476051197729149158676562577340977065518316833568594023581370726334569392147830097826476300457506703997520199136199979259043194078263969316322682039071007124995475733317338625282141341864693338888451405772676454774740460043882506067630687045536317885749302240197910487470198131410297222506765494060258449083934462334499780798218826868500635501237921077889035063807104799744320724999196820772306256632210762105492990810793953806017487496155733614961201893752682053943122050691504357322580278445450689985184516248280218003149734530620047095532647435391866090752797196302923508841509485778524494225258666200241023460699137398422118121300559305848091720648544140552727830975522919307685632304156409855783799139676382476441447863573205592378882120198711814832765217482855604118605378701636454654851115536759259107816809934354497257608630590263476604676213331433086728064792511390564047620919360132911934238636420344176993572446572924592881704254558291542151277683170694517823901042045019660514651533109236888331089157247375748827575769428961815219742209661375346889222773871202114807482915619951652968364764345204610781635942041354322610032968001682366502133355694861660337754329722650620051814328936440956055379648587612871690819799203973049213362697762820097926719654189881761595030232231343691961740247826017233306599397356287375470664215163968822864509058007679128678880725709304802256463044011831373198769380440405034028251394302967892051217264994487737719803852220394370373882943264198220816931862878523200665845298582593451369796125395998132532901643751030604421913117832998802070188659671141729310600375227014901323690222628493535163710857222863411022624525830844419905366730418505523082571874640652622199971979031988390740362935479172352190726044101533152280736264099434152935624051256845178842283603121446036807069201219796227262025925741340069735119449882723660425753230144466949802602226313542843152842256543830222896730433731639195884835373111125096895711834423271435422941083030923847521631192327130361525298349077427582389325181847349239583977171683733181457635698802660069746099832629095126544321610682419739385983201561092426841940785246011992816938562293367630510350743012861061885343973798396019250457769836598223644188976700216979768448187786177461240709533721087343492368937233736963538136762497851895808808009619795343835983993531703728661097895387120802307611803411513511680706171592301858827029131529829222713910032625141367981383300992869712085386807894087215779268565476475942454176323184708096745400377407583796692685603563501385687104888640644181213925699063749060187137324762707298457896858757466271465398854498934041085803300327014920209584228961596588811160707258494527929979326625052845814966466350027996928044514390028723239909230510851133637663964852312280664234650259657490099642751130786166476108746440285107711367333237474343101124764804146186512481292463686616582290946842083371491898731909127099423901183228918386006310990709760387670084599521001332484178389086063477243221479962958455280175849573615362757036346275372939002479851842673251740830863784332873436402848481097886950429510306187567626074765906250314143787526935352620653037786692020097435632839371095523806725649140606935959461358242363860481780123047314842585075471800054619660058934760772710700228526786350413235721745664141607301089283661501955528440006280946545044674637238959148243878933513866186918713856905070761912303181211038882555464490089897722997993980839189395107223942720592286188086187287150469993310801619224998253758805203984392376767498952643461164537698286388706916866775171483444629627604354954959247856505272506682123792828997659025014403430443249881886582693837277091902536840673082229457720553427319731848843742395008441033760289768685545192338839624876291726085403406808876812502858966973248223783761933645063210341475741496534049363001089153862367087909675648414371314353893427828935579993856180905526321627494908634865201186123527250916490317767624805170693057779985607532615144318478567828502371121714660813524123427054390639574040943599251334542741998721160652730067362134991039284882661379506568223296983815168476342070174142181242584840912299051279865721626772377265249448228433360748659837967616559460054503842265975662517590131969423559613993438966312175835956316769800377560244258544465752284360686843261941361408407294839353400554470377745717237257222280023839383374199112698165592013823912480031602062097946278610437858585280906195634166261126802079042329234509183727982553148963159084647741333861027981860783748666614679258126029422613176506750489806365861679517942523340222563445069647061749001154924056652239348232883087286846199498856302893731148561004493337372332817870506816963723704080973753770909587933787409340028872797888589675249438913760748575258422599174938841448827854259247752103187456130493311677138981517908313411226551367181208066040460665559619025842061195533411439529849615652379735582263682828138705743126082702260369256921980725082939349646510775787396937522600920438129699144329141782688638094718125392502595020764993249521489621855542659717558458020858764653085909322752911330410735154788660443270817311014636440582347717825746405137667364368470361129454528543099610829529552891177594690749253503233808496309927051874790460437970525997379340297240588086682582023220626280527143840801199860717627127386721212203841538290166572549940245805827830308516871544657255597746065217898262185814866107155229158713958407269107219802537276137967827497942939490390246006986985010905515232641844312288035558702755903145593781060223782598961890971567826148162561002793059909506566472156259672538581866461249187821376694171802107133910818817456374959055884975001717559000132183231922875015234307579377377313449258916262075300175400811328963001109984561834380849219353293007247257825353832227703686185547483585314035703180795659878991099676048208832563679899197005124947844934273764943877053044168006011993001045876385773761718917067502794963909452419072581731721308962255930855645587745519858702440067032227465016870591697563729617298874935384347277074621979762885434275092448130101713003086437866542716562108664387689750974885816675597019649833838914564776324657654599147200774120123378935120103504868294927776945035284620632448557448807440136547787754859479778458708593421756353762710775062718877912416492592899646241726537122533077335960634191480976795719516717461464611995835408103130263295482665900459574603108539304627332623358526544166162645532910204658134965220232794512416931769783452966222023377210949553459437657085716702901150619784849094000098439587073186064530894924954178744381765862128627473533046849125734934088293149848783034903706594473524490470965494133031386049116624589984041836384908032652540144267815089509533971871795635208554184224471548271316379941758902855128884394392382177186440687681889066938336708827139369144409019489230112563780422436934284863439301600832901583246622112242662366977573289369816108643166018856274436664455414764989192970327097977522548138349936946154223874176601112241452525893785273144292323178507553111603512034377519584841376757384467306458656851708416458446423008525114143906784187452965737826991961097557852864136850634722216631108144054644015424040621263696183543455417832601135319582744598354709197915947298510734988137745553620414975469164325518942700238382978636427279776946141377146476594743883434313921576390048311579376864068442331556249798604086469932269815444110765307758665206444617906937338192735188070481526275046604235097725734199962190482223238869671993485941659219771586680465969915733383442520382520905547874975797169063216332735052196286180208932678118910365946125887004953030050702914703315398552704879669596700075588843593866059268346808419675251149710028103704942873287407337609578605831044279827975575965283882234936875590967065958651740202869609936281055638295585157253905029751883748346385787370880043817236937280377983258307273447701057092047872138442181625428531134319176085645216142866794789598055824575796628325210752216369188727478991511975147516625585679381482766309074951660621621618232278459928157791468786899582739857037552659365568510521874210391770090799595053973432975565937011487919169436166282417529994805301268238207473486519497113189995623951337280995100928363903648600682765760976029171138887144335936976635642402435040663547499118671090365404323022433341071863573966808833531486676064023733098407670612846566302226330235154994143908224759146840206670511446129917094453493426614282728394501759292172160935835287070552003753365060072514347862826710795325447659433160803714561196958420236055800659563327397262085425772697284057294047341067988929545892466117581650686201608193742165031991394437283915809974332093546572789887452978713034091369226210138163868983401291840805523055971333637795240230392734102697684210599460479781825091041458623294390571726698351400210690705448230254689942376250150014069918206503118090923852512253389805284838771801258071128329101056986012486731121665319143908647976419348428264648489286730636890075439803543451784076509254877919900989636546243218101004158851289048512801607340421867285982247150788908138192868796978700900458049977580205652907168724332989772138743806502291574771509906289246874492319606731139766709952574260682308745976813566128883360481140933184792984008654336141610234516919202853114703060208401888485684300524163204947377283712769855822887886604384909625843839817206238356712978505489513068258947084572491398920946056479118039316075285492941863504076115967987529062836492525227158948384057725279997601323102442279654400306546131038164504139602250214328107885429058317791793502787011611356115505504900153355233858030795807188637045733413208007717847853498125818144693980235596695137340804148694805290383827706271327370609882257267585515506685564056461662562900353450308145889410212084014174026266618505150500650262156064005284791496622659647587370158231854882981450826237828504083125168353251055513509507986315494207832572409155141995984516247575850378583197231608227795966117998557602534736062024939221180576213813271320523090908420679109285534380110348943014023670882734413421003638016392657028937320826210284750404105820896166476546228950436803685080750814229601102796363992993792486991657353792373060381526080498077007534208004902705192523156659209657917795880776566776298203667897059938453797415879696542946289141264352262517039697891855067496945359789727954439193629882131459269535054823615162044967453143854246283003849987581694237514195060012626824679493896896656585767190388408278355994587143444801706406360919558867590016707233522689087050700744122932041738336480185135665849407600082411616413230902690726654776438101601585107628103829064900697549470495784058880090838195595220937337810733115026090112725960367976631210558112236925086977755209997746834058624314057103579090776867478952501899385779730363181466790156667473588306467976771247189980037075807301697081041888469976886887491018519766968214640698090263192241447279712233058046541661899413400976069351616521646898448855680045349751652156855146052813792372464956292844381545099992684901078321760511857018993900411246220639838140690019979771282830158001076897482932706680154165352785573150257091944921071447505033803126125432976364413823388353748551077087483029813493075042726591532026707550687185106578222395399791135841194646001748778679557102041003914747970336470485750469862523285327675812002847481255596473089893947577803121611792652224484042205490983759714375266204684833752703873442024502712162796584092355926950797288144729083582132544134633096212040595261828826449350490954985941033634545012595833497641870626316722655808291213218773971446671916577885560608354506997444816712678430205479920197338327323928425244304882711935456904459586450854382791054449642863238244591253175882299890251161877543712985936293187311514578707871368124421350744049887315644841283550596583066090193236033296553510355646135951314529538964970303516224562435401336496417401022862719178861408648844696483647900268302993134714001220720495947838088130243821238750315329137608368139544988441710783900316433190396245546878652077916794833552631743532540925950294993650084103479820903745060176886248603605421843390389637962397546973270520591574581351506875945217058925444336264321899432054507953490705249648551280756138445999566964351428523127890841393447051567012745423630398663781189912656673006696417126830338730006531499151966536520453494260401941305995081029479747555498940753336574703942541393431425883862693780319466383120204873195807971146649178978458125459693663593783802024943968855407471508074208634111621409036032396731137468428401133530736134454303796049128183999256771679227487613046058483922046812867398632558784798092466099501728928736209936112576559079295999371598192014854981920391095880985168810058108335304565139489736109704556635999628975278920256221555184316824239309881686414793628442765296412798279207700310705131461417740533116299498821389750411191739245231991049191352066140523840702441560636168867823745198275005725998936536349488879936858906683542883402316701291682933928608087011365264725923804131778362552039403270530553428750757785677110401052248335709322159104801863575054457697495763896528085818255148736465559227954279063402027081793509273193569920994677943800419917895600197179968577542240115440438711765970743106932501889901850304641835499571094469418202610560009909193038481464132822834419916496579019336636719284204962820121278858787303176184010149101330687342500863289407774191794581733521247025719280073183037608137908925584186845046880104005450263167795085162466693689132979850222983890970091637772372571903856593115248998160010630907909648724426939963971842173121449138043751918168551161860594474126474235790067728778564743772434516073232660199212373331849532680369635360088862976128365692165571839231389266309939998257175971585235672373406044873756039326389714185958092694366057697102965124370624164269329282684081385195998264314960977086875373504687368760697240208480415797392739769318549163875557025197267953822028749004678706554720959084920657767690384646401192723917573488629293797431289998166993759660807821407874786269170719291118050758286194877292266600637301981555830439215705271765381557360644870699731344477642655256877202990974608480577215497961118282540338844765710706133547994822199414684199911226258757348436135253901466934784484513127048596158307409228573635085894459259632400261035483660704359471630705276528555301248696316995903636410132183270052328130895985468451294371647814332744057887280481022538193966076532710111943104192957575149561888444689764249685264168413221593790646633395360424811536684247494206172559328993260267404074728330782642441164782793076907438967820133572801844494519478807561247081362143974476418252639539584770306209235295646880972754354749856567558009719602081178443402552336954885787891563837956087245265794637973693321888793800117313760769648457260072149513586103364092876926395484148817965687358411185761803792306441345662610476537125949097595046836909587737828185669498478177260551316245555913451027600702053905455414169174481653631304418812261284620491309291642828185972582734453593999425179014085196418471440116176388957137665935329088277896723950694357752480967404331738418417070822183602434268370788549248785107909181037154224189391378141405115253210444402147174540086252968609898022590174577842961249973513624974488754335718624654387204519632069971903399653484828224554986896480302600639141491768187786593414675549041025729054386037482105989465013306009305014930603913193351247483188630221297578750214553951260102232856171874409707588910171596823813604944426765015349696036170649766188813218795815568459662837392608653538395452615494630032699071531504434806662738253699856105507825986448004976154199008928535848907794557569151807285012323849291372275134634783859436663777875604895366757762836948649219724950317950702794303748310572073863141184735404874962803829024943672921973929907625570067993683149111185386529315455225030060665184706497255957830232417259465904483159160180110195374802112503163941430185416983879833039652166977000716189941111368066705142148173438296621677435348777250815754918675353185785613401141106403906491967006174180534730640864405307093888006231344590671908300405936000179073248417371283613899666488315435092967463506162647217519600975804298425238662240255385986289810040167322711222611597642932456917009992736668643384134534641884801304898245892628084576843160699017855328353338727429016543432410993802953957529730244348520579452305256784176712087165332771119310918926787572189227586293298726160394562001763038070447104916916841799845822228685605541580892629305136874577369182089186828528409622613897141764878347880777732155104790630636612340000027292673147759145654601222325670121533138487929130490165680407217095627645773816465659794717835146944466847430003630111556110178110065136648000246699641713252795684221782544956030759965250162320926396838190098490338987515344215895266008548288653170584227336845680202807081368348519849790048337994898668706785908422223193325385382809695598967798112758506191684966537592782244056879688530307910563163949807862143353526802179753169195521473301754015801230660712954970147309260193762724186439497531794586441834850989294588343222729234472965281191313933036808995877065825173338409652278457722989008390468760196883130395570579144638608549813749627801074771925138703910970858419261282714844734792235282688439905006232388365711096329957289346801536340434788507651518139419914185699784460673443457356315594564189539025514696312187468093595004723078843571534254919025297487120721533057496565612932682131745097228118168690183106916586737516706853546117617872617947230103437932747741150914048272938924802452014221708593805124455499020655354459336181534446629309144893000099784005943588340827926521869154095900926070508869761740885715371772190342898661780037923835099604733217258539722142616047844946130914906193241182859670796414277221541369984063865686491305960117901641078973369712214472046601063389204375159554241964599688557229454648460155874865061992407604353767327814030443584276720129890913448243458200775724445862428586100794677897995020346013857523936621221700665190305737153050802119665396819317756283891869141171295381625445530726611954562786001885744203250039345629540349287233413744466424780638710095996177811410806787106805106940306298318206710042412901188883200333172966027699224340756970960075529710595048587565221346443319915989742948387668130658676913609700838310456186674983446950251390301106380273004299212356816994526864495322954416253600977238972849668803850253331310807689781379752212732537796398689714919441813215427423962299662834846075083584374335272449117162873593334469879824936858233391158597291991997425215063005869009478274794758592430259479525353059758560338649025196130787850994832810140471514382895933127740214077110025597257568013426374016913141038869611453206691639324458390344364896994609050700857862153568731874841380719833608628443937544279223226256472059950383177969005596939997725976272110376307206069291197337285586192229345175874797683305832926891300019384936796170830494257840605560131999070209742385492567089354049512471783481765384050144137820084211569217573289664697487884972346294543182612374477498109351349880692114555018914191574223144955176019309714654490785856801015848878199772591259807603740768421168923361099298105862099637765114132382275472412151368158385046489755445993958778746967091466554019402587583307767810227067679194810138441610121611180212953653085194675683429114223436873863043741130984265402352506198333942979591212967592662411699263858629779742244671860259628019923052518144933772934507557335853350774108104842358607739622340075870864381364689034839454001486678967689981045264409449978834326130886613944293075194774532801901478710703090155511777896824024322762728938127485760005844926418221172170866235133254349896371229498347920433775899710301048178337353746670008062634434405318348397905744912007139697598813762664694341770881920361907845411981034971143358734021059325108818748674256078932535623481635451037664921675144712010432993380891115409320604344385919191215776392768892077030915388177094558534408403265869059081860120140107878616837271304569056928684167662282669909128242010837364692714000167164246112597974530641503171658820539923649720266157369574730979984851495903465785512837770284112870008794595448261116506901630507604703389622934128837190545047063448595568223405882259024612531560700879943839375000791141889848095233755622591848153361194474362022052055980946424619056447556890096402348918533864503306048761586749059002359061755995044613346018687065724236167182149306269011891445788551756877180184842474355641823299422234305539611931709387258272750438967233957512163766891516081352546263953685179874663412471166341235295977569702937554193269070481868340481061091868907334800500488746723608107427233835770551810267750225432802066916415624934075192954498865819093270787206102409720367187107703414806300767161588207447333196398639469526755325518123576728753236453720602608717385691096849004727615346829050520657249402896946306389665087032324028223331905366698340166697248320355797537529270517346175776330718844000984808368473494301557942841742185796966609249623799052966684059044860844755115767441804474210894939575820378465070376114283786055857607471327294763999195358470529932313495786673470075573432191714550192516701977410914288137493450521552886293417330208777647876433119343318756570725807315079072302557037286904607631535309426169756132990635772756805720419570884666137693736100357053479854786370086622353538550281879573191126231457304012676996606149448682274427430520457381472646018054186829014214361025490567679406149926646581110739691079871922385354436764411923045671561005435276875940373347911485876066732942564708456160087953095080607676203748995345282239403633402788498549060928826157451443024516501753774287349233601997780883226380607501181951347866968436047281764692552746230463997441446770739862235997126067663852064492611553882007375512804449696996801142996643256410315067041390169414959382677624794639165688143796096012315592282548388000088786932965831433662659067088897512796571690742926370063404286231317930338662067594563673191399644853478866084105363567266429822757233030951540398360267775972453929128897469336478951737154134218580446275837389854344384458481325035777337959976900161226039601874073924147655008575136560933261573109939415467813614060700193902654951322956488810153552348439968064666672626745751077469506102646377797220237399266297832158675959508115210636931005491490198646125876805338923934290734622687132985462042772554242005443552652263902970471859320874168664473377978132052902784280251369944283527531309361324126271934614405716732375444846961487612862097233772025715647510149456391919597431078609182930493885035909476722064452305103647792158931250472573236246635245436507709751743232197018979980969271841151870442577359834043299354267801418419563955602120230734094271477092430492084700955396606442094770301817691006828531387510295974628385371496716227788674802480490205268859506289554686515899894018983874944892210547498695564012219018559334739412497296266224388094091398021657998534223114580312373223177719406631222085509560040671063176706009076213671126827820607174164552344869607188410326825274873550341605876101465693001732190337537598819062467640334106871269108896579014124253170279318513620577215658211789723023709591859493263721354240796423590425132639065724656551822241651124199450990429861310104080732510953643788594538521616756271560143571450557188286023073340846417427071578609340800292852630541690660151353641392907340712210514985557730610413248227172492578096578773482572944936847594346204846078367593331532426764765774015135991874163001478442346688432896705338433026344446008713369657755251704663732413401143291708995843125856456668393669416661904494382643491906327177355776080228657646646646275412132955054084207580590602746399910210375090821221883618299403550537970038404866849330305460291453984832786949549783182848638681595716479181166544808057831890865773776538133087451261168492703961214283574136044108827294469325584458348204730151615150516123661929546290013911051374711450100425638444177858602306176025458467276585176178998551325987906834905636602460537313566233675734798047742388143298753156078293737689272264072211540615840803960736310136246942630013007515063020510414836605640521757797718734383454135616816828464538705687619009749899160133956034584652650906161308771189853314111376425715085483962984563466370639971391809670878710416497684954092067287016635377287047172624219406590188346964871216471094725665900206540599587196658119864136801135383122984056096335263920814419100856487226068482567932832444238600658873203369126108004084355972825469044098239378520798833816898547724828339573196003677370130900209269662208983992502540072415491204919523951411687271083284777472729605338138805800936296678156690726885827605656551036058716346521884187261309133485164880529718039321729309130564207962670423861955352011296279580477115235359324926378538491925900949948879455163129171112702721325202753051552560631741566446642649285381245876898361385422329077146582330417377106367358283947874567601478526212089775266419419209161013397128672159584225566227289300209603916195446023464910251179481387323783610219675600953023229578044865873046832046636364662983770761545739509906599358800576286382289062990446139787342585020305031450817513731451063870027303082507455345755699088236831743174394512630612403493612701851241919022572215077009341136570103468543780295559182148830460053837456546427812857225524529593502413273193017094173724977843489788729240383900369454015530385045179127727260683579641587787324393226937165456355390666114807076545979589425072278380114810334730437280157489571809582011784880285947827011894528443381658898469432341397773885226446444404300802561057715204250526540463380511499235506824541469959305328389737469100195699286435091488784165083638282652438017341607250233887734542814698632302585740778367323083873543565414811301686534401387364524410077588027151289815405618449117014204743576637955386272138761372855407383631296046501749406460861134378572213446516996366925651622752916010831744376109198410224985158818252632069042295242949334966447241801838767805033392401664981712751154350966385835950559242861329002316911520878713986260980995073325963968462341607900528525626353552766022237655106728512486548964402369170412143929031924058767321111921466786171406042782928807961263501383802054667567691147742129362766548581146239888587425328199771335296511740956792045795299836495221524789386871496627097761827615771511341798989177277455210517069600767425942137198279415422447363694755678934579620546274755022450843952336637406866976374114409477716924931135110723782674356891927369117343726794745533050495156857270059356063481413038044092315342993230381298184129601949121369840390944615826445152715466296987706537619288672938029288016015532389145802997577312203602375392124676077698355694920151946910887350887225766651113042947940070155589647595407565768752801106981507127921670121222301712614362113227097128956806885935528489980307686451646968180554106842246655879163883830970993283494295146856919990203022797234223439848771032994638377245512424395773902522949740508282482043906734493561038135915959588988454380085965892029452291275433124364685831636036915622821279625651480037610231040374499822607077978721015450912230510382633557252378173596827338735803525667531608959205949173810418721693995739538605920229642170868762189349604610085070310808251426345916148449558591000654688377531011653850896390716245692684855894857423201789166808613461131405932037053617608261176408385932611734705973799605077006444482673510379435128356666639002328351176210159651189757926503314169387385374896870792484107700735067470319893818967366971928547721107327572700261326032313994215586476412264956850885623751486559344900412409722598377666820451192676999771602343377275908075080894021966969521045402719267576758529576159850555812691930561890391389348368074781020019762705112323703473483273316222384735753925945362102719717025254411612438641408468453677353135321628705984196038223539296900283707837222242631169216905316208848355577255258808911999461199257216216552657122108253022271168501070613779432715558084246098643725757691147379465375272011760535633231301056779692951431049325961801726846629309016990769928121831691877478220758459882922928880319993760421766812005001628103066333258423435529161324818553204191655340730652225298699065956721516425263161672063149402069429834002971908236519058532859971430225050410291754657209050123434722915027819797886361843818579219442107554627208883714000471636667079109660528670996870782258486975511318543968927571195301306791009745498717402321350167071843713629223057574718163252222669671249109480013681904615410865651627209002141468443930215903353848542634397678274861236152684124412161692588330228705749607002384869328167655731526881069589216283610738153079826202101634293820194288770887780386171107130142108280970048607833327520474398030084690239480764636237305300623507563456127485247153320750224649872554323164346172245380413272759963610007220692392139091990483711812682401361891868635111694436902972803567324878351534311209435088009294435336296468076142234222070512414884662614365304550053557737756333069273865318035909833950972931559048097909111390535803548925769800080776197093065312399291029914875727466416902619222771402351321568235979798413182860762387099368579549671403984509013387204411849062024069887728245958732221050965248641279977119555650223975855097011018326073796567833310113912483353841724655118670850167595298211979323304771418412291971006602519814078103462001472080691463619882172993594336066834859500777198526977101156276261509559065090451109858536323503898627251693946408603519802222345675406738229748286237006859465127083815641594623983225283336272886380042411689683782806287619533942914768588550523686398844647365770805854758351528779085972737207094726215138617272863604357739182340793469232074192556449885030003195706663212165708353532048671750384797561953217759286798891638884665404428160625500725755607969421011882057001187109875378325358358508080754430322889365401394616183446534102458140552580076423403544823602717714339855291881570977880548937992638573584917710340209506367587120818966593022039198909191894132853004957006640398787276741128702335605205051134177366783409415639815234627538041084147968227280846473805730441176313869528684660676016192369933481421592992458492481936055126910234746320334242093168502822944229035941235681053209769049333002701880483955162029602179976721115851229888097087945104611653659410476511225044201233937118781088179034356393023323405818587364722748924802542054384771417074700424801438701434839222092881593159827668955123056475912980961076711549399673497986669640727479515378557591408730424303324835416159110743151779607764128695434242171242495379152242618933172711230546366318217463975292117500077468801080464196961247023466039909092279124039121105263614365218284477639689249859103494823098453816631636582139567742093284786198012918671527231480437303414046166967619811957894446755591929996527901108050182910100881572593829206981190188284407517111987251928539861782860018246701067299680570873363393665170027475679815909816718223361893714059213802387138865054861076552986667801740720902955578036473404746102187872453472758646012656785224552905933002460318668146434359499368885813674154742036796826157009599941225852756179300734864352348214854137349067290678187934567186731519840089720148704565288140671887072135694929964428225944992027486858738535975373352101218388851992739002401787215689356664881401795666192977458851530271241377446528357279669702998849955463838983243006996861813003716397934204318238174599643846173894276459654952293846317146250924029566910422181179451584094599258048446249812679261692643163881299229283448405361392015592377777091056087158074638320163141022293126858818156683886000125416015357677383622282291178797099112429525028174895003371725360391381766178765985762520680489423464579993909979181898821104963308701708721110519948535788317268797030157638659283190027747816462609735956887579513372723491835225197159756127601093722247916942475280447360173188753874004826839574705490878646179706574135869348501685142190499448137597337981417435771669598383704993901698279047810808422192322276928451579540821804434280969755898243880758961822304300454623460263471926886298629435890157765630089544085163804628597570011517422437771277200546745096951083309297801565135689986872305601118120523108165975651885662685143173946482589368712409338174052653368835259180940973681253292192013891561665877150201963218644699209935154547749851565861676133027431091914293758134880272815190542053159582710255045739015868524686050070896192061575633779391852062340241113933168001518063758960574722659858802895996307276812818024609453905782245556378584726710623506994433139151699295831138894205751004866949131143846185809450808369482625074653647175837949042657942187302868144541692260130704421357198222059904915664348305575877196698513410697060859799093748396205822256303124311849775990941512403307816944710079907783545701405683664264447493673073564851999667422451216114047944499481580953816173606783553698010490279041154345463629871845308097890446573047153368150335295465117730929119258665942880897672680235231981992967739720287847941242227159452439302094521979458900090710308404211577961110485259590184722369546769931300424301035582727239498100685106829709273635860698574449935380881080904777102931234322582352822594095068436611628235991136443349135726194260889629810340950144423789765975457126613228532899141925043729317007572506827835114828268717240701725543433045428688552485044965675207360705110291002195448865292142225459825697320245462257460101754344555726186567931014770529756851407611768718881792233643821017392895931830708457744495958373372887405616800707976060585923768376018657376032266284684129843563193411080443375577669676145034566315209021853823117961575180822435745841009587950033607558420395778812188031409531795305153842228094651704474603632480842487514023966758009868404492235950992178028861555325644212757569532957595501784787600761713407966570584287056704322204943802891263882025582711778655206843718804718607796809223531786980692143251469554042984663748271183202435462418043760848709557776076164771933719644666322289213912399251145617735961858927125899580398695402776240776500103473637366411577019647254702756580807539642643740605762600890356447172529101312253097738010538873932035953537329052652998761956216446858470564902259067108601841784012744199763049336593345226967155440609128199620659798888170178475014515681146196590823610894624155482015536850534083823916445815254125861459244923713968736334854135667534049952005954804989118809476587336159452102970736070661933195305451812563309727044954411578322941298641909516725637448626341226354784377795151719578799354026710111147449177001643848761387476604586765128269438222007317010777903731870265530745596016388420460015789498516200187271418716963739397263852201756459140475277173598314290576930225681300990199180859060286647163204904678479631731446308333316417600921401157321466421001778213924033931753313815301844054973445767107953567489338147575582751997857931007412652340810440116809109076591797816035956863284832362680106182679242676056069037622828050240586994283976291370627070267335453656962662378665245601902931596709075495466348233919961237731645342355325349426189429665761642496698646177871826871324692262502620762694385064863530997377922095014512118582256571487220765147145837232085667017555832233370219461281521296743093154588042068153013587493348941370430768505381438227998268409184983694069537928611461094809982138303581923100947045541482631631419097472379138881774437129778170573969787896409605746356487674060636325864699281789432364986137282090841555796798554148179668583880864801108261957736832403708938520766919572407793351499836959766391459891026570493576947938511348957063480292200225944419684483618848785443958457344145137129071438707652184614043800455954178989244925888006055721772787774577141571008870239111118800004550270991459575103563530746195192532149688278788727429140389550323104042022883691090383886480605123104657352198158597354368579643895956048582302108268491144897656259495765541947440373005924879055107013803765854036728849506657291414698193236906125726502661845679786312455720223467614528095608581387232685411444967587103254103227035173566370306953337988571440646754858074070056077419053965958223029054535642608347450018622467495925517475487416515727256225024184429208674928435533604401617491647270759930836629187138465360356665290238018467298956607059418018345263872387032292074042963342870265843642187218072238968889478803638843465606476518616282716280598299803138162803861362490891330824136747903957518875955673704921149944676908206042296836630688374215835469105759348984468288943905156299841341052192789407755028560700848057827261094982108609070839416466108959818585239877113473691950936439317072416556798332737886397522717953916048599503998645635544003143715861805331873000735309934472621754509986365425285641786466421243205838582799588302729420887970495001042970900118219805665250061339107010843294222348116693940402610148237008082744408522217007926942920765592740087517435103635664516425207650035964850534973899748138010206418365995434403124140549618441503499925722442850157349231084856521444373517610219410470508188909907283999114573251707197439089399306821255569848294755510100815259079171478347732048298213249757125574938011471223948130360028389274956743604390189619631740864996821814188357829378231285927057823024373228690350389043496640456671746378573363662924521612080617181270796925766031568723566626640017531039917609169082039885992322389643835565817831234419114412789488981850674260551738037965317784528182503525752620171291906575315430013246980086703763141611662059440055502319034740465395482042768675701145817767769944618825011152060835565762869367638177468109271421254854454010072742390870545676584610731406921464529463085438413066660372054833014191681418864625580157127794780311687128575556577129963647881962510750884121874491277141515554129433922127273971170998480211495655886643462487028152205192442772167668876305661544959818960859866301679736566308165267557977727803769881129105979906704316695158740966196809476006275782679270499825378296522978343172813028828721269478944466313491266052520116805047180060211841156381557444700486533970864813873085528096337523930419300222825914399158780955154390740132881417868703212454703636389612544482381686012805036269447627643998693374676035632530033995771234305953042160228932588506856756496761728310900728165998705334604456980387092620483445877994963891833960351010271149397902337231438982590496732263495668955443125540286931678141142865331005696701893786164454050290586472795722843339275043832075537824134451048771730267067219134456187149062486264834966337687965491959477087948482150007028207123039521051263070334513042535695334742143766727757563543136513721047370650284554507011474536486881097034125073280822626294123814837312961526067952075890764417984075513841065857686102862891085212662604556851614690021787710384153739128735793253026174538579639668582683235574119218294418203431057230595400522633530656437299796521992976281875460635793689255897227140067748501889842741380634841157104151109160773856285346585867024895769319566027865306261896013772915552681976081594845223816064756236768046363096219456153934653681555326729265255632576806709904268920109853110541133652446948299770305579844211884532261618434763512700474784348897064570909707272745176759943019669084808623404426882972658360595007146541332659081790598656697620326931955107894064430587752309230642724369625710254427674194732044730081982361482909473468788852893604255904626677906086049315378685611365675671354386933447018783259769715340206503424131199160059534412243386776211284265971959784374693967374642636925173009141058542366655599104364540993996835621066378887332372261073627180321305799358963731527074299583619651233998606321177597525191331455873003930268229345418270245054889826210120397334852677088090933111749860113522249708230768720197419543332688688930557881749436874588894236031397442562078408121467017782543320764810334101584779562930703156322508466068753845592474314782891088865700810602536851246460809698803807533732002464924844095542143681906358719337630005335147159200002999332791547995694169539417714362663940070749632193452751125353011797404909354430560806049537586196165410280043135743532211515836697762017952343866146205559596317383132474582268597597653270776005548772884491684699114694015785089814708840329489966512933795330209802948161106642880866115367461464185541038221078975309540428865443295571432687774043083815016226352090200892818921377166266003968451080529364436961791675936113813089621805191702945682932306240334132249956913310174500893724609502743181522900962501933552508368184429494916006522525253844689181902640831737606365441336104760766155202154907148549775306947649384911724705458645730949489220956639221729411769211414287417883291136586424489041674728363352519016983061054049940755997014224706500444771452397764154923180465882587932198699924963151215476801065858214133890565649292757757757873609720642885762412396598655197696659420345951152562509161321870814132394580248267701239257299539557409546282362222965735898411276914450639408912304641423174709862491045359016544428743395741506610321018919985556143283516436998436104586736623586322013102108092912744237382237105438555674182775393704100995444559991226265375576217801319372786264033963596913037254596051537032967222424674145970979898256062283790799068775262605726109019287490526608573576676666169174610535155399025110879857116490378314737166208071768741487703246610105735625231321369331190447460112149857217278592294607379869146677317075872216120550840148822401804730091499849750415677200449144587651348046609905903329551318342760164345089793217444378338169580195411233079150048786378074403339384519552163478130779902626789219591937927652912279638188853755066130188136958088730396311363621708857724467320543626323584561614779395193090832558983312310074652943467057327363986019862752573507712872031687725037470961938074379842867929566637518023679816198779577299066711171941099641193072555300141822845012260794145816555723199373693469256389771839132777292931593019133412081637441260419660637444607027838936359416560374021190181536404890467968226934355037007654742014191604860994589520979504589354880524746020249805513218693790656893470393140233436053408032013722409622408636652506236536315514799820310633999206585031078669785539137090574765144069909105748080763292120096700728005322594146620647775700829562857927243515609947005950767478895068026717879270296931934642270594619492884638517425148757393318106704461580835478448688761121672024942301431743685214904303647975885079902642453418986650420093884912038342980026541226803260030386294445713300606035252976426731568135809778379861395892849496141151250698992866381209522961551230042740335949422638777102161774704987752754635750273753603599521932633497384254677270095224799538199157655736904014864890411975028227947571219265529399908751509567354693830965118208226484629351868385586929634575710109237609045772795283026838275845659460949205284607237344542312485065394357673929205210741976597119819170445045045874852049585917312123912145872595839094846663993834407282054069974440235555226773107999846163410296708697862297590265158545561205474170011232759904809410841937132770112819745335993290420675895457857608141217197051075381838649833835203094581864442810473339129039867176061214258829666880049983154708907947795527868475722373671333260407487099063564068535198265260683553479405169990405938811142541061667023862544400937146538126805358453735791009614028489321954246181475732765206384152273250384661097481945105049864015724982517491153859447106840758700818509548309438420354257204350690762240239265761676816641189640975962143046573567474592214499876433335037127589353016263545221323788096510877479208379841118162992672605090955422289992244292041835225062466921001060108353100280286918987950576059827539203644749615070991697288827944515597118386158386496887515925780232792642894742859592667232466346633582012552700919770870559705218532684670111729394451510617049377969711282723602414623372636760030928595095051268918977021307178185785598751214911666761964795286954816503029321931082317259306000775761676804680778597020416127863528218220243796445127872307917861440782743828920804952552163442659525479078768442406125112686916106974904508027662945687540491884162918293477111883673329080209322691017440424048457576333489807015619716399728964198647134742204892087999311101827079455086297349209245817018208852886247793895204758854642113898742331651415103452409209247736017633247055825446841428179147340275309165604146203853699454722648091325373668485372911130641094127555595426669308286742316456375331325582185310394966925496092537908702820698644595863105296346677632181961157950211766543811377013354878824632257709811640846938471799373670114697790975338595729133173935634819312831069140166654072548226860379109694865544545322113027552539090947151597447560093184569469924559791626629299701314816342898067055232708646301215566409910641897757839686526462777193847272642510278576671466818848398100025613267903685157438932184504298978312629910565191261995068113648327630697706187705668305181365365581141604714223354920400693164435628648986466708129062124406556007405857145114446928091508151415812406163057835692720549834118809858580608712651454426876258190759052098650095748695766555423738394063356574123396729322483535926591500493980563755254597844875431636923879604017797266786726668031918913325695630737523173447362728724150791338034330804576093168620054560957231487445873341134147160522198927225463856127028753547727026576832147258793659422472166732633001543707231866538367786271994161533873528309378848457333001655198997801257095872718911407490140476585249781956906073142476325539634169067267285126345839939640989742090133908374601975826723659967159375394561351877520315161896054437536850379278643174917731766156825988503260911258911384653832462631796435403641112332156609678268253503669069683211956440901575293679268464388366773904688759154343581080689368456420448442373487051001335444550300300874013143473174580733175730218709449894553301101616446243250417561673628078689732729902350810221491005065287520863530539505173214448749274415728906728520648949275087007662260841288393290466412516026244402714373529472190058337262178568823644268999657804409152584927798969091790718150639005324622496532547424682206654252084001626413728619345277327955844528708579772797475725718762676701064566281262495796128639341831898720351327500784507596529536192656230703539567969113565342325684963187365298846208604614078699877572332035524042279611499820966377668211391061547371259670147380116807250052969535948850420356691883050864997525096076737332016150789430271203250013070650451757266427083000868258828028374311586264045306463199591920711094617040491767560364581272368385145597732282968102838202349384991400729717242136926263295162184058837188722256702583454047004927224210116496676936414473997461076884383430021696754718699416418794016495817043303778408447120331868382359204771990670270360284050359079754960964893863212671918717071212615494527367260805531709283852327000937715487959262526958838844530763740336592130218941291212505040745752507106375051517264633678401292469349343517738691883622854203642161635210863926124146378755863988595622424365132322122713368611974076737357557356320749486301869103693600052863776217785634951344841000177373770201328983173244607174780315234623145733792110168094086074313948516440727632268308982721307455027907351792555091013839302367026107433519450744022182302674984400436269481487921766179903656317468316097835848424887948119349139536129139441871813128631950390113076737183866032646126944525296268181807572210047550792756880396894471387635044213734748868431563520965106961951846949646870652798421971030609865096409199360135257767792960242042160918761322396687037176166568397610637705494870282332890656993965656862576200047796066824830971613569571394730423831215266560182023474394075465149832202874299375042733450044380846485191053405491269529701057247696004806408126929124235640313768168373391599594313283969190869749790756688169734285335515747620722181238203896046345608865443321298856749735411423478161647920435022413793302401591798730372508112481728440191432250084020718980013169475476086589213286748110782520739874425079437608464077051810513115009277323236964170055118836528356787258585584103925797681638644133179556225981357586616056037340624279390246354599888305466845588879445885809478608167873426031319328702409756674543470765492839592039126143117626894447504582808834383487349399595090746048877168943667628883773966926908357199372743047504725138422698685418716638131563544756697045208320177809233464764206995063637215112905358121778213740437046303712274405083967032358892171162660318065440494946905041731249271918078742575047311540960430302662180742177357467843850247979009988669049271366919563407278669598521201311999151301032115616465168914143415928327876216974068528738321140107565465881995751529762200765220465425285064009272185556730375058940626547535222873956971697298714390908808432991775166132393717873562528491784749611677417371868165155222713462680849285387839508002080295003099659087483247233286285465558607527773393085003892129868651004767791034884634320626898658607128265524895390428330455461084197553353764764877323563831472212625400663958077786255901318702893811145315929400374189835702829862589249034447788264457934951181553880247995437654204047128541830586260633483203959635950872537293872196419961935218924193046796448139643520911073538334880687845261524778495820302370843700160212785559581822458935107219064982297041306385824525668952635257584297819026390858159367259899446799685892894780896888191994142957112015686327513333676070407906061131530198200237831386127131089044249608686983388908127015087966318101877626503148144716582118545318935018520570749025131986550547756090909129210116487651232104785981409480939014261121333039097174617324314579720681827748379217423953425553537128627108776148867132352750831471415471009571998330474240072474667147711810504208788884964645791860118494254775943910335028106134358802314246557639510751516359462342703192192970964352357878296971462887646046833583364540035156645310963091283699210501882319026705670295977646869034913388032872634308984398573252574204633889078502869078361050635689171956935294814102216166181959184995042126038588919643340635044621736522184387085962472544799755871657420561494440474406675912771927300602758853784747754435125529915379754360251631772224033356163430422712789219692120991442393043415063092326226667305631815817814708550272368701212796915583034586558582605344143494064606280074284300906898482450840587748148828224939931982188840619714152240186586558672492553725114846149709559259429047502478355595040846709837926968110546253216172081865726603656515356631433864841071064608260437299339014463400870241653492210232990446757354213376971582387769167423917639026000892162596524550844720784076203880778031765205394003010621961074727334904576066831623428909114368415122402301828908379611376412147915541189724735450265417479277308325997234809544279691918834759353031826493414697538530943542495155156669493326945829935103747476585749812842094066075732375936663118534508022034641195680229827152507010163301735446530604592763284817249897377634579563831968160614227026835550587469938537439481884626088970216529055521656521277227197457426844966335628721711755374879217236291551154385584456999246204090759051569866224407612530612244943966826934398534290820539967792293247431715611519763101572546344688088955544613005125496944089334893086971512923823162269833179804374324315985236407027283103693161544229047520108385697116988618170269315274466602271311009745625368370324209242822645039362000893046711232007271678972686348518273415595571631097739884881910534292329959645759379798980880973562505699507740856465021782296072292443823722515609438122829034852688830357609768105338126608248812865803562986617798122311953030133130160834117572563326094471639897732631841472848700097425116952949744121219627597835590586704625527100434946075138781629460771303934514422713780204245225801279108267948137390117282688396739942850730226622767571746601676032930072270678763269071333291634612572646749006311320183332741233618440827928698767311078863615806541082093528223963006665011582338576986857592551369133911568071243517347009332676134892072313622455958167676847314406357006981822520973837557074226947800445637150886962310160090942922769315608749465241071542309928699716055258674647801763888625370652312486191891111599248528471214560556412652313470700285919785321688943700607111678761189104419491510569210955241270759184608858977750740668541884296742696151280608311596403387482505699866887363822500375506199136004432514966759853737220045582518179495189831069351953843923998024393035563981189446029840823154713812756601051486643828316855938187529457516495912183511655620309876525890189882002604929268702409717976008518190162753607102035542908743839130396172297411599443088876704133526222494487776058180243407255096940376637586547618191429141108846025669602965423638072122017754469433120298751187017675709419765642001115223687226483298681666785873062589972281306397478280533074110772219005627419521507438365128692604932262109751435741916429531890818726959420277848760610706671008964202343009649245265325792424155732876837156757728914062957092940398395481024671924743694825320552330936108002885811738608362491735200549688885261575105883365672186661132091722643220180979899114713956339678107309844983285521845033466901373122452653718045351775777492983562998388723830471150925507442641997085450959030918376841966817226828693009218166417195028349982218739949125315707457304980435335785032418513242996506209185443031791943758764915171116062928608478906328005224280289834245948860071597597700134141748727412911677267766281054969110253416384807107780398146132404289719004625081629411809165969157165470068561140003060515809185515554556164458406352683056601093159945555771021331409841713510154307691793525499439457447834196132304516845751567587862192346798791061253657955558896358694862243402129130803634306540271075853792854357017836239791010506064095721435860368137178673680007181208639646701138658630900591479972785847473628600671826616700319256008610717238180210887258910269629391967980838264186371680769989701724287835883101796872847018876736381273655473404043540119606350784308627862014088793036684708131179980842098648759306306561810569289032206228805594855354678509416498716694168199964631013245017274253499795826845174118528850860281635704292658963552284668925173103846892064252450935095935914326302119978888394124060577108940902406058150154041376662828872164422890081741331134104090029305870317604617569834003310036392592465102625343134152548784447176418399893190574888574982478109098074698031176306074013709267714800287954218393313111325081441800425826764289928020259512570817416375475229061394026082809376803314777937077237530677181964582700807542681275421888326084236071462717258955362112313889844586342581966696141154685527341644150553738473047144074623878472919164232520208420400209228228587089731311612406605852237002612875890241944845611119779747055161112366051214778050399788029898413391586778035098863396931799500096765468436825124920263522542729978637030764891536598091757166524253725854588145801790066825894549662395038747234400781255847378199500864275909599262123394346475818160156794665253578266006687468004561600534140653329373177847705898389898482667085352931597053492505744577491152889022769333160280921332307752235785109226109274592139745446261118623824216413556606398937587447573623438863787641691315393402922639532066823661612777963678804371808180965801955701224837121594338493056282515995175348933011711875687764354586771124563396688579180231934887385440721675687708513781556813996051182909144739196052553127168054459746755694661240307188417059816713903600831997459913315252841676727237180509754246396591242800466880039165040086906710719274542061452704979531358364158499602140967510677251806894052458885873413439427621412364022197875897984139522206129349850093708518885425090856159063535116691239461717259611083051626667021981877174620177084636951562576093968456484297358016022060090322958495185759261462533882846176081315420969962061257743362372347781966103147231296010754444243734401625910287657394466033522739727715003439510984855395624885528518802124426113090947789110829876611645602460957798679138155203529288306896087358446199447511395135163018317217917388729288499180083720521280201545931699004574742167857837276074772173282790996500913495885643167972584980303327992580015358691008481840605865628698346586234766033167580906670561855406818167084419506249011760807083546239799728008338875460769089814477556732315995709170124711655356328493131115649893927826914791532218022067165499500905677706821963095225808832833527956703333153020092293569807908131245178303637078001359247866310979535868119866279902396846450421995975549592960033106464377293970417566321193380988823148950465673875013775805150070867908463706912328513182276836184402428593456791700530375902026642528650352188500444725079407989793008438466541047160061271834666723057510786631953439879383731717262965318566078788205901913597777738583945690575436065141918963480820381680206493154178631026100137358954652935781051684912205724217710931854513483174651849853100178135515992088193609776918309437488208187101983170188114031005813476889046116863302219432753142287328712184082406115284946512499942121537424243520686602186619238870208933859946586195578234750120276100657918320674336384004413123176557260723873306875600754377121447580402074755403430748007549244851875339236674247777379009094116793226560608550334813830020708179389917116286274993295088078825692896143069735553556902929839335652780865489275146801314864213841673093851577274853646177865033663476045100054236968085375363618122575480755745582830641610240333920443112380445967314383678942150169347927422515273821812474730674967712697092825617215510184802656170945243324322770652737082955553596524768130881561767278447527169102514849268665234536312432703362973183965703822961920655065716264871503775348975589471180041789590458575497876307683798150093018308441951859763505221950498745386841197520972762724674042102732954498306822554645197660859095562417631333524793712241813596320495912203530775395838138411755383036107397646590705243612667620605270370413214484997109278960095463116650321180713437811234604994636052185835107598445481827393976730933583318419157569782429125932999171644844879393052847578332852122643142979779016583116414670387170737562532932685627805135752413030330704141711675053031910000599503078691466717323188652578933961224947661301568582148304565493460372584208038127738415122393553247173980476944138662541284490837185023246572885763428317319862994761755514290256832174494313151788520639561083094729353799427195174185708573215600940999750361309218164061854386936396860516475784966086408513465805022030362929425627964991900057538483708624258718089727194664109784921950252191332390474238165564391151126449836535705673239684381973670827571731003896762477605574076030892723028454786039833188315347583384215658409572957647980835414819684962760973375931156083858404644634761939680846696935380226243825441224932649242318379930885669773588666691683299770096521427040816226730666403489084824891234130907823546066407015194163421649312499671853098045131514996040502810399732851627089101972653823884435589447234162999546012689977280307799836148329313706249649293468450210468928984885495324812921364656419234399102658124841160446426705150122352120537590632295978042315643367818499877022615437898147488708575212880015461008289939239631340921935380687477999310631652391716595544383803231523689037923106560990859215384598095136841782213864312535804908742985526082348496358085014488767096920457973093403485844936649758664281536932811231260719379003177035191140385158107135975785747766792714545639236887805918605923733199171057540557741072562921567984911413792220576771224737009366490195591285401627386915557341468074877368507607818766134764743187531967297932820582046976266869274039664331455273132940811534101555236800325360789446046016284928131731661431848221249293158276131491008195941746425966958398684552061034338235282386535192448437732021553284617894194915273934393131732275988359704302130263621503968467986434603726913065084977461777741580624035639663848492266676823496096626227645786982235929055457903541057952185994529793382600329071852928545952879357231489997893813412897152795519245435017718065989235587204130499069058620378411131847713461261599810287589367858350669688386590887836095461036548332872667611144216358934065648780702278354884101087140933338858425859636530191293235290478390170069253480164677008480479916661338285222282741008946515591016191835291524804437968840119856137742069542582190949313633803440974497986552544103155469246739128166216491651520408948309534914469819105980054929520535053872319626880475693298596527520330433837368556816242183122742439697502971224733153317552578951215254766350452774251179097989551086754762974156996892508308416848820372588070605805312738691297038609823979321984265386930480009575807232046690821711996502761572870693266330633505801080037201541694907016483682369226614665123643529392457612903054875370642543435865943788055334281134312589637264370434283204579407462228957860856031659901743844684055633685530750919363619397807774598956482961595863725098776969670392495267499588307542086611858862791004547138780452077504914023799284350131335649924417293634751507329562798641694871583284508893045366541728800315246261740037001614471832677820633640319743165393193544847230357972831032853299390340326464868325516509415587778379148914379725096459400271239621116903923832230122886268117949839281928247790267613853175931602885903002522401081319195996649276878303560749739168213593535888873893887674368176197368421905008382688838968805020340728085094104654716381182163329873154381502552114644676053184850145656264126397480974912531584528108322855211322121414535289731328514982067310217766026927776002444721139058061558411932398936604196033074092782627324934369987625782893214428144381459185489861002393160631594572264773617670768883518979875121300305875646325036596575106319520208138218131500399212108151711178981842414596528641648157704809110273281651521285617455642000976766098353626710528223251665369929340074239783579603277725661653267062883976264279709787568183345513688446378658092341902684212581732822861798294248624924753470091774718243640528695957770574297833008905299022939501824626401145683245846051966582903153718739539976834578328349993017852599966805162726921242613335853571417311491910145457637296180865388585296277624484271281055750088867200297995746323351577298351431364019233818930054353322849689743773377935106696091861420847380246443295993628002895981541768062770510967189926899080725258765833773437943072723725375599105763556572473840036469182172941763337162712413785724906674722230680396276313859945344230007983556534362951663005438258417563222017869441844351629414777371702244456142426605066646103837380507914449249244995776933559982438375419429443419827173155920062829927769308588714991086781779931002074156796889208868928730017048315870480902392690846156011442125195873735158192698530266629709238954732966812878720996029843398156000529894946474963434217952363363602773726547598735541903977071967932495348181882936082676952960870946804841245643852287827306589088993497238887951054248130718467374748793797425861889401387425092439709284313452151417863785171409620106247907129772620804568005181295127788416570286834397106771581727256638485057686063087207107086490965886776413573645592882743267550184728247496931301936428156440634806294948171419180560493798496362096398294732121031602111292048934122104988201219208213113754968466636510931170325033794074554634921211796028549579420416741359829827585042589706751410580192925178395789727273252001224591763188214006347635066020676789561654573552600195644882106598012159040333388747427507294360857613669924069770090147192526932649549538394899963319245591954724110022468276731061037006669617133945664418875617382901795921229074875895658447435870323313062988904638631892397661031943769347734289410275849956406915542751580654799322926839075946562426688044502125466783498129339566812109993146216580442183929402995426687068280298155460809443884904599368904716414921143959590209630507318443321136034828061223822131866863290497139062547154880870233730035856403482642350799156330397626858033049522371625467406997108636037696697974411659955786842040773418060067628934058700286315988228716800392982605044467049862608141554481567638384323367164147898085926256867217781900314959128697037642963952973742463758798075180301058403371540200916491727769981981936392236170457663246577534567988382966226783144633027671233900003674260583977236659000639676038282665412355990181250990962449635041280356587562425053722140485110496408096157816848672582724990971679554893257059577855506667693557933407494895470126825720547727308519472821851612534585670899551398259424697319451954240325239988325445981651699714531033864310437802211279834529133468470861991859690218460923132534991165536386339303834430464902443090360558208587814209395541464428265726125638120016505041872743152684864234967750192337765504254679159569475616914644148673509470170107200154541253634284244053087838872759807240439924242548001196935492100702839160456736450158130546343264773436917705173783121281020412418250365912873331503950008293618454213899684487022821336332792157482574965254271276034499697431033596107975736707639483240155545467400003733114008626029837512911324115663942452145836343344767406870183126462401302797545978892368437593629969258388642995723516172655160537221736113638063745452983542868673907731354374647596294226330810338969436786597688820818038901156852377629244109189515871560626697026703858599391089507751857462636905427272642384474749626014997577632984683055573672273707240376746875602993483926190165238081375516591667507066925957819934779318338547542809141338993308136723296851897724613122601265564788401553960730392229077308965790929596633975914626278959015076745811621778867121944558460913639421609884440712359569800671396768132104510837218778239313737624939131571852290567871074502032960223566711511868462606209791858335175085842436495198591184810226713072836115317576221678433516478127042163942695322034237336841267892346086689089720865819824256781060528158411802567565971700103246317245421040417948976833195200063009472919943775988547472149369103164511852057283658573664821055144798437453983492943635701116302505581510765976728905923847274317865476438707905580341613300860941485110926310325698260206244333199762193523715048874651485445223967305935789294569875648495945315419663180899689106722640377505890103137565017043583672189075548590240988790173595685724932859422037789761719312057192822621570053113125891396654099583989741764904320688628000067821463442291158306491622711049065551098176639707504058511363712451631329407652060685334188156615222402687022080904744509044366254717856032817614144516066919592018204666461663887743682150059688484520006276881491337146730794165837099580087615649017799452803633570641770042256043933925859001864183486727225276678097716649050913643053648181465466136193225873964952323887801030989559415889954005937630862969321525190223103697332779639091380827179850870764452265100916357883721711061378035613691384636718989792666117576338775111763970260208095491098004523231945172996108459089233203052852264961810363532994602733256624495493296491710570250473213707926604563208327238997246224552449045449590735627082276687578863006352143953149267370416048443793555923957396903217524198191623308007188025143887448995676315327838503630409868712864651885540211565455446623515427270985228520728389985343827716961050182752109053596225748682680377570199462058846545327370152289899922781321227290638978935618515145050439403064703620499915687761067110674145329090952191495931949207802455151338723909445794606873303615775272634847717013166365296794009528871519331558283477807643618856075643635786793612032478275889864815298814127811832698439943795831771421832721072157706315055171484621338056650626006436380141210200875039773306288210511503143123134383192919886877044392029893349428621267157424030825700113461958215326862410745800398881256373509485998814655933732470907693519570250744208289929897338795846155555612650213319250859295989214874048352983837205590122079518437676462104138539835187435002817902825110596214220033624835012948608300794178828203327058204905920545127569309973990755666302226719330064193165243724106768275742625592703771925531414085544315750550233765155132915236300288564538220792162643641617851783069847269192835251442341917150497340650534629305083263151184536748520638887905852533237919875652116603000877651676689804865471356092882925583501634699898773613684026226757770395422929278352698344072387560696592530128707514175670753134253462825306954928177533700525183512211150496457223090587080175073741061986024023228978500290655686554743573356070235684228116518962619813418196072565542423188231229021506098975500277424438888389833942781573721450062078261189388758591299174016317639869519853836483527599343017478417106158062624207929827220023729468360579807664846222520719425395312653994576402573615437923126412604704856118536673756437481616602532030980803568419503333489391478316802484399121107626089054512641839632532543246235045588858812372559295726610722468416309414517263494039107184985905615817592864876757710085933638987358995537221249678689438452666653949290713759716800571649356959315146423585693109329379808644602728811307124420408101649338274803088662947915970119383112355239565432068331770177793932817290159533904211050348263780488870656325209915702546052724601927102386997663255637776369146736129568194568149123643669851666269261848165216647297671091162171243309515689590529349298035609722894025192550192580007659133844787878249889324138152505975127689172368406931472240058406124537113835359024383795822036375796625230209729008700682784972213212010625365223432575467825461264046198953223969379389235173219278213245677328635960449040018259136845106029098581873859772640044474992444831648114871390156028472752014976105950972043274511856671246579451779931390949672282264833194832593233404920661087620910280731758487633939706431337750197142711478892708681479747469786603124802603125922496490793250460020070649313139968893385372633820345244791013224981110063185527188911573267337100406208496132797667279752399288854667485061203514233630733650550403902289881263107993526963068664515460351416167814498807041702633163999496237910510730788644311124161288763346927319109372167253673249859458145102446120621052371696441987585744899553673612890392611139841543059139857867518190693035529109814351215142181398264566771271569067171749147399783408887296951130025062556441628507735848266910314354525238822403307392248969924704954328542875515901247986026825343186953906343870031260163464878820367694566283660081063016157590434582824404704318827751380908578300266102441388280433858795113314875785821083567217406766359045692341954829507429297198273390951042671121059666785432686778233367603443023221083946140228299620799944057432280242000448617816923578088753552255007098000471564983489170856325979418617320997420725807637261359206986817163278217868645680110773005307100043081552821634709277663177364166541673637751704466541617365584675827572834018458622408818331422586570604655111295177267722839123874044781465936359716575270092863469337037663896573100333158299312075709209683141968867701226718862039822136360461202403732143091497415526278883788643348527723402883986424724608045077439038287779585132817111425038718172474213357147488832752236721530030315364777202613359655548235089093725987338235682847408835622286700988874271492580239235141663048016101020247536270857631672602676483141342776137596248939338893988982895844347568592889128528049302511209814127609535455289851633676547935479241773638972270284100239467183931745380938649447528348540283184787822508455420816781015700463568196166574619256110693985322829493080130180892701391666167033428998587527101656392422751239570670534964740893062664465158936633803445619137547194477672405099570726878650861828553794267790161926735011744294448846091557811378324141447419156818454610883551000678869719145750169156921378676864420543846937617788265886651857043886412752970874192181310891281742438357341403669647900280319954943268380446379510819868962337663748858270869189098820965469981150888980708685932581341533854744901347548763744587795540859828921816378131821205184681123252203213031681061686313290968301458339472645396161626670684294617317519063592612264601471218598804088010068721795797876228928472051403030579059136305815873329908070823827085849848417941325590273247936556917977203025729256663368574345857694475597477561732428657540954053277341180594153738428852731686167102410872975022133946062393961814431659519287209917991683030203916746586165829492447170031545417932814235489725827780918086287876958076760706793165187406244951545682357938858685883573765400793813639748713724388708815969378817642309651997149803193083809920593056432235504369430444256003676949781487949084469261857023969767209982402971758539249310084120970470933447447237099244990516739090238265015974286882633976807086606048898998105967598526450747745440989539449597901289860049510347232568976638800233583007673340169069055747624187146791379099118903592987654098397777804865501112100721413829379621066270536444306040222704198259112670212903428363427291372171296639593292633832370898062524667777565259110031694677054871824226183235106972523703101744653472823774088212590973069741156398507394457073440748562219684669975105258344612668778473492492146020078812167929780997218140783788893775429629306118419225678872331760776498609594746406001114104112013656483112184487445986086351893876727395430562532395919907137667664701110868024403383770929097562025018888600261470927282682854410927470996129802636293856723080578451113649268166386836348961069509678375799546699921113106924200938645671500759478440465245191499517013313088157654311417351776867932141466798536572090007263932446161967539829939223510789716190603923994326622711766773288386800800927986751679948157368101138801923616770071267958722256455307175429843000789114873806733363925401520096300203704129138348395840443154130582059403523105560028563593986767317749504756211377868544146689320211641828230627731011861334912279114552112725011493057514986017815992849428779976015734425951474811249405773864432903985339091693455170232762667273157981428956317907872550505619848726141505560834550313966007667080874997012625727429628971106378630111896204836487733966042536305507240989938641035517775065992150372090736208766271780321209331325921599438141205614981163391234714337892070184407302907640886271002052217122097396658644131240106781563161487012452529803053442586948667244485334059395347989275673959486687767573157469857923693017284195089905947534668589456218141752394420934290581458739174477524978852455889455404501790789201879510747950656055303880447681684323758268087610219704070125759346448425519462823368429586324818145186577697667108592608790099936071176654806842429772394734435614840103052606877043616131048376937980817766113048935105759532757796865922766794904904916521260073866402345175406900643573750216524818852885259069982018030642192395892984172188617395797670053475787918618892337504689127963855502708369345340415411402707889129107434817974250812774389585462972463572291307105626755236688507721072802035527532991297124242224473181592752301156827282598308653100757316317699413975094721106150489357220863842451292465728109170276362229253751619943458055044782664421474250810176384012414556490587157912696892029676924640908684652550142507761205155453226119945168671313851053398777435196689251986652255788828658118358382881595721641565205185605085496770727932758401766270226101002187671466458552730796698667690848259513400305863940664269920208951859385044540684940702619370760907386537920889192123518262394754394327316686323843843477504653516837614055899437315756812219770903220290388518633278560538742876786787874053481609774487262540334572588010922181438871212620971933495648881188878612599001883881038846497098923882109718916108945056081654345747781987219983229434501083595483313167823349658074684633467616254100061102097868383758538904318762092046222810380868138164495091119691907913649714671421395918423025787051022538142335138895548787376501430770078412676657067854004678599850830822392211591613019777656487584881720833792831804162572745880885930565368811837213771839193656057592571483708157289448848130638153378452318902186209117634473066436321931715889042781080327013343202168057166206773095026206894582234367834242079675184384366973503460812027663604055771507917350949086206089536570503451003209167320795565198521941454078636687425814618329291233311454963091791117635080930355030457983709707979880661787168756487550790329434286125411828371138455622432588771036363797950415187366819845834179868359469616298797213170662209098717033569024615400479855153656981646873485615201177618407861393719613393915935297963253365349862771212357608412224327674854007089503935528775399842542553686884119803091518617356503721391631866128844227682842310738749782367649232501492696355895751834746403470201696667709096726541600302671623690320894682709357751636925796344916793129433159691050351039630865611147463349983667291184496865831566458986460733114129543111503385546564630359808553023915971055510831617079176948361546795214428923869264928519528471254123770758837913114468910728566968342366384364805298179122687382833270918266910089534575322804498222378241527512792718372812998332860956002753430993015916528213544968131708296447056147900403583189005143385336165895420127569881653337302500284132547189600816150715453631025698754943171237915085664689659062828057714920441399313634953389661816196161549304876290121860770817179332606457931191625081810573276105991975685668778547176444802342871837316722416949408563042914987575388865872480675915051934062341096202936416457986832056731445061933536881763010933189839865125335640423048021759417894082078489761437357926119924648643527052496754268417169846694928480615373296451661425903862904067188941940156940158154379472022593728542420852426969611658246979697780576533671586016735632939859121621933916827444681276329839839013179981211177119806870597454733990195250278449730581357682461258683363421862530120566865362648964250354157880334080205837521326382596511529204187853480509952567069795277800476456567249861481271291863972559657316065244375083937685813899194147917767641821959488726857766333106926741056876664951848810313880821074936074468256855724168839788956944139793431453704941817986590452370737554592154136139289152724709617014444878396557340510206502398848389548512312766671986838128622602255923065827988939432835092585191333288539678087428827160893374257394178044531332375610617083877234031652670695138516218493764660801077172485582852088168443216441256054055138274148722702424687970876905859831656050211949967487997307090284941639247622488634509226150411135413650127987623800255254538020460240983307484546191139175361841376992683795393516442995853341252183970452227366870420346777294518395898509315407420287811574816415320226777444531011813520173781766249248790430665377922121716457438372201231736243880726891441723002006843314594289799989971386882662971958697182568758681011132491589778907442294709480375933227120544416910490574646339328422109098120650858422541693851854190989085969038794603408443447415253714327712358447883701714159969930788785776011877659995108925393728011264697059131880355825306628579437511103256051518466414828368605792954596023011847354497399569349428241942472508205358180977623532012713889457609762636176930281643430433907437755713209392290834278265583086553243199671002567894805277803020234787905386333553183926374862807386075232268585542470956993749536672734429149872498481755464285447033270371894631545605406165099331649905074617972841643734977085480743167575130123542532009754936480864117074474165246444482186953302168724320797318528857017133690789423085467549172467634649363482486681181360923148172952249350428053828820138898205385864184925291062530772620172434898892096932342108242740561377575372879751080840153985446737863220003981125822711419120499504827794300717374748786469077799973446730805544545682114289375035823560667675486091479878569435368321044202656190197687239903701405000338556021514021077403726252573289004086574826691098841241306870763013242078256229536351039206108695496529217945651154660020664721021911922625922862701410465713106905978359537988930526448291696695366734187503040990957498955981461987761045315892087261241424515261019016017866556500705322189559642370562654651000322684411770064447107894367957936963894053430793133157795365466079955938895174857514660006963563311283961217662825391797204420333859507838729609005679251199742156526681081790918889549042942442514189512756769292564227123154291047942862970120714833968842440497277161888637987657961326796415472632758007881005506393906737645458656552698061282665091836457474198348624156159091811389218688775724369311700347152443197662130652350543818122740261400766476681748216516229098341097084308604737828740923588072256098022063765355172012187765600597072790713454461278878144934731455655160169265632461389109874908476201194191566128066719125015023262906311608796508814285697176477337961607256685528852775702466744737598784934818688795936471292756487427710674280718960212534971765409403227819431703181404282189934821973368141011106138754545051246562043642914517174549542388041841435178086438569148724988056215675509200764501901298429908819109499690441436558362137962324885786765206095559341517704118333192280362813459368914648911341033528357557755533951644844692111460604107191088131858928364503538279730196168028446330583042882890661155872282345359584128689891215858586947064424358727945189383405109226829149722797740898855087647158576491556814466581444559888738507946369950951527718957565726994349398485131571064872256311707765431082682506122537426844408074977840949857633711458101242597851955999963434870428703250054589013672918402864200353463125284744494207518722264863448758898605064477796402196234743020639581949762825031577616382658880793932078715559937401122264863263610539913806158236449625978941261624885642484575691811776146725225761129972363855355774853273806879153826113405609112292065095507142772328228901085691676028133050795411446838421501308257022384602009366278343532684179506461024050644233886236710524240111041768353867767135995365598031256524424340669276271954178675084369279546817439806461858479737293981079744033382599894374647093080975715159536189527559796056565240497787870170219571953363730873236322295476713180399749212921332283645301709789582454843955293514882120815459305959714346355334223040196306628492402937474254474214160181791499146729866311407631613258870404859956888504660487038873111278464825975799915617815919732584721681465760866438301402521817740730427381930710949192447188244342546636079697227922180429920419706380220087533582662675514869740997818161326731173645129544902772631302888126636280018151863678309194257579211411529090605942139019781957292341770345571677567848408623295281742233268721214695325024498885556454368224097783683127043423996636951735468888781730834951853211218191315561965226767330910606816451618171579257888443974019561879987042135472992392978927150070155325067955633608161471157579848640742746796672883304965231896793690566247244993562256500532556111146111584899708653314268564252716384294993103034809992882769416560924604496831034670028552773908997012827575864131565265243378973400372382469131634117149813629527417425666058323143098887729205694376115222946759888326332953721067369867979506896496073489830562184733398291420319941297698895876991302817534470795629195569562002995995508798374397677233083026128327490753149144598159155627022968561692030759621166834223492871254172852156009789000123327624586395911479929560803430812005090429463131031260934223165047915977285479437391601694571914371075108083351723321296509923318590007640778657852564318465636233806342647373142236332227248674099155154758123760347928678432613615208724252026779580861825241740097884347191430760539278877792854381725109780462858777683758139718494265792322320636730966266085938886522583677031132163146748469644694624738613221825824872318966995219470904310894706408022349249595446918257096007900553651050450665292503933496806685381682234345243902959093615213273864147798283365692115620610405412690442182831150426186833312271896672664343825096035379487791732997127123535042474586589402327589315041974772442256242635015229511791993615069167496245275723647093316706430572690125194769880411244735034165650868873632697072257142113368685598115909033193184456927439871754464462126103128129665719817326755582086074065273365360798571544656239245411121995378877626095925667758912105742239306934399935744991584339184097654683912247271155791332936153271331668796478458847746030801785171283909873790386002175318252827664520834349150283935539682602625420118039356931837249799697567669486147119066767748476682989315966135206355108161520705582560557957773169199341306594462833828631825325232500217550320233725198371908379641886384112053479425138955076984311064907838003049517088145163124521657998940667507756384880384546129219251496987012606921231239520180895550264271674613176601981346916282469351058117861499334202121909738101724107433878221265607903892950965275801933010393546560492380763956706791630876673895474836053399082179964325951270130040229397926533939345915645672920245918837167079650242859423042787824363809683195307785173559003872693050745993024186905918735884246335325688178519327160662033607916982475295951310942896223561956677255157201824520271824611972095129185946055749116384548741158432880076591855640349106623187671980771885517271668334009159812061988520462894073887566263044953290822041111006493283874769165129574757806412737787139371445561088467997924468826544721881669622113433010865620136801231471197205744988668930150683494578014131778768464772957060448469336942344532841940464942471568830758885091432611080667677015771891181159942903780191368537905524367129170145009054077499225464726619902971105490503875174752111702636571577036025586745562128723724515902130378615161650538179384839249517227574685326799323499022821544150315840312881215324096036559876586555047204487040089165384549013435936266243528330567272998413253528561043035328539697834725827415289841630095554685815680070666142776094190105272213914526939329540571979216649920841616937984683628746193076990467892457135502181342304556486507396596175853821601580668741975696980420375077971710847188890647966177378663817410250799485218601579670577795980445646054756083891287672912569463225000168400875216156313161078308575699763843957396983788887985804332618344349751207987242584795644549814157429628881991076126852573185235855954565646408196182309472039517163923188969493364755935181166029380566476400381103307335043369789875195909595534950999846932506617385853380780334438717149037350664034754330166689082453658316388531537932498157450942835573285689482370600947168125619016326468019716349463510331333086833181499290001455094987849053488338685532505828645861640818931379212593815024156526754811738759394796408602731751424638269802016421677596905343648810959527003270195485514511439366809480121633583738903538914961020314302855769379740727961285092586391746888119385996466606473231807553696353675931858757508270477711601334308580267533756803667849491191282327321019587689238969004496891216666006140338230117293238388567252417042424561726969588240151310903190373039906206533048291390437689281601689838828176226944902280589505123362665939094138724183093063072608190496003008900650798359498051956737209067204160587091368320635371327842139885575031894513262191801340455389450524271638765690770289932784648535809957600439603406897250735885557638269118439364440597942317310852637376797296957450031391937206938836162202822719303723486415191441855737173218218876012043474143055568959335310872023676939500741780390834719121160478582540424271985993428914393431943755299834409415119438792018364420369856006529238002474440325692850220533746112971410848687330995599551528834884052933822297436550029702936392004026987050086515469648230816580472016701611856360998395577502467095404018621348476294032487845614371593669612716686427292452249934533513587068339977989431693647115334184674217641232729884406652383368027067374355734262689182136627204778921747641965623148480367560940849919645958419544500291175113472671608761602134913840940718128646376199610605775784856911032705949187688113671854058041409927343758062698649337881567764625740122626331633885219018909481203112751485610469077706816913164006998271698686931040723981565330049128684414758010136041888870433073031620851553010912185183418075897268220546139003046348001616086238940460069457774553022981873625597781259490123183892446857085711174335039973363949418080117279653847467431107914028775882540512701991422506375566485807255312782543674202061844960488374755650627676904931449143168994863142440429561477387424017865275635299554361540135019812310803255317899617225251275295867875530730610054994077962379263155718998334369979113554524258953674081135984784804531505251574462709559894563890157811250607082090855872753913178469984738102602483549231655771199227357490409189980183141309741319200907975284406650507122830616316462497598220126966413150077052318732578333260214542027517570576284026543937285007663997520057660493053984743236336947861213081273151820095412724597808904897153838649468449864996882704732941777923366308261726689459209018303378399001694952640138886521575128383429089500243772772348935060471688586789796702822406757792624454589025941995242400251477934369895945204319410370433462260171869161081408462986947561959994522053086196737242965311886117006392342294203940407213674385589317622626558678812450511797096264793400481440810435424621374388694867831835538713643550022047654766826214506113629799725862172813890895734739083307170803170733535472877975001454104857604230949306769306217769756970356490241171427470473668477008185493520867199940670456459511266709423435353086585236651032481342211887106093541770852605217120675107528071424051530043373286731148018697184555080404851883252966352875509633827460131102798062091708296194764832807308456855170558753015198060357818851547753845670981819570114158372386944418985758287427210578050207358487288322397622749047663878713137159035682068128443309511039154718532520732960945247154608032597894658216222662847633247352193358318955983114118002246461148504381073634167368949596917450900888500735389627989918929556866200617854777593400460357072843524497072766764202339323530381491072991937761925153383937184261027613239716038287316138112449773409681721233949093035320365755612807752342239454176082201344073367678494159807391604121172270030729388167466446393720340092883292126790423550119345273042579172484897741169462679708922417249282234845894066597503971851005638897929002624476851115723720513381000806867503820055969051709973828658223979446920821466371922913148353612438494432689251540874958350896485100212050484520155431248887213899054154697295545590803444373135026448481075484592011605098228197863950203087519591588150919567545778494556418244820250275525801515508094819355510909179720132823636493983007591479591624316004156199863561112431337534947066182992498031438450967679331282949874621986282534576654575215152484418966391535694160318080984814832913241821484631826361232787222557241436383254647872746642815614520534650437217926780091673243481803624338173715473019367327590425974963250740645649501833521427234188382500391309730668825759321616653940893380334278910522932602550779319931955095208861275400179661317325163701038873703774941471726851527973507024147096409190544982527920244075746028544032192101685723617370587646482006403242833727740981922704288309513909347778046604583030121227542234731402174715244172404785920641525712505417217004355540777980195860450740444339184597347077792067421020880436456959425463733824533783824136520727121317628181057003124807538214288853992633906711486636095412314819526088125851443140574220378127475202027375076841861508243693623589096180786064134045619994806364981594065515461824233828238576516989976007620079083686991692006138423684968917133942250145763706014004320717343046624995303041022986039283319657312863023272795853102319249199207814987934579209616882707421013011582386185464058485370297176547088699716575480665147759861883614459559218737384900436984088433190805731430310828310935700772367449156362906135513944730150145198572359121019102864575488097628749098464840615393147654778152912184100489313419305410658410569425855656925868888994118054344563239933541827166166191703310565743165045757496245302257689700854148422306574208063290546168070624815937539685380832665334715070755300444656440433002799688541141125381059517527382569586904108314042132985908202468568285120959791718691222656421368418101411704155546493257076152022347727107529451874375820177175411843892935364928787013024344151263708371005956782690567642853049831166225436768008373400494802695648817215508827072606300796720773376652721039082663734040770488975811296589021702711902247980080018272769986403642773194276462654794930268370792175195313005594408050406049315322073588565411639713508608759456675260438468864585309768101364876209296110793604182542476894727384171535211621790511743514824344134606089755087390715552571928533614289720152121517079066400970651441591637122835756187496749450838001754586246121227640933592045400074668752140481875347258355101358373353168010922465728759689262256218962980279367555386359492347192482720631450364567151018048637391468698210282099944466130879880534446234909219042504554649663989564974748001241170611283082482619485778411249142859298976249238990631190067118445738315676320653646218746884201015049505950748149935717991279429969695584445278668240482580804304819164857011380861512159209206396692643432652595277356908943651843480723193200624066328973932412812112595606822812894691414456745186361563467749289769276332542347362457135737814145622156407187960337920053749839274524334760468328328335898000003721863070375584629028424251170756199537906185002317263351510979387954112299216637186753582083162201020020772485158679590206916867659750392762928803306126754286766951551879996562670422341596964850135135698062663984057451848522804238858275171234273524293397012143187454176308371242531723369986072512679528497722948427728587804914868939159497802105567848906884383972221699274751750581336952710685000567637281547377738978244928674081890504050689108434293549227946596269018836941974140820979294789755012344955843653300344019848404667022119506320977426884995136394874256051285749869944573096460750699910453642043170498103950980507297302865596715396895464640207366511864339638029142343691989384776195041234061184062973280521617078833598742126743264163736256400815352482500945404345697864302710126870041111692223435017834645484168508136821375973347660974774104279760529160716327652751467371510205257196429552811833536935641140324721256482800318004756624258839754071210700533294770750513899654861043978769054727592484739435637392787728544647891459715382786280835187700445763636498661291436199327447138337857155653580054252578409924832662082216146358786282660998052412437232234536430397282648229383583853514479288160775103671705913290796514544718960888097334321921087720264542590462772891223321241522942197184742233124218482114772172426933219568741506479368055898358332407034956205672660165613357851580473145495997711280567602300714770510841217466637218827142266194768499665361948480856362741776253052656040665672149283161074196591869808172116707509258426452869108853325390204919411690597567455172754522747844233874287686791680969904540122284583714442206162900340771197037691138960756689503426312409704724468751055436800972595239661558323077872135303282719566998376320634900013843454731325855265583625312573889144088247606789580429086161140087211905124467259027590240011702721142439580184133804461415858011975247753494358595629801728282297814610724177510744336086715725789618667676739757256212871119080352851307843327258025963545458649277504762470386702886459010740866207719533822822410814683959149118896440089090252645111579951236311585376903069507397291010347268085211100606121199842874295177476806842227395216036432412079082924665014059211751064395124191351716693535825853822700374409081024048577851702631979655951785809278676504539519387089072397438106831187546208520004712611545278812227483351449945668060963779947814925638693363287257968107084934541887047884032962962306908563553734301118862922728272231924151882579884587429989788780745306088907214204603337829944057263486428628802123447319144173934462940281337354363500428892951909741919384744181360639522013657925421898902965772133169267866671941173774082839450048429324695284844120262495766727477627809849625055811098317367644962206253520439928518132623066956235872375730181775648678914638211835323983520562715510707047916233119944586934700021812640190232746083307981730782261887286343993765687497227934910448604507522572945761553594156346312674213506909886239299809969303890790970276958421023968361137483867785550775614719974166871158882840825975334974463841114192439030542288426952837039893574988465936726917852993530385872510189144434116147412240014899580022074680968285729819447097692253818401322169321302369230203155032639529597872188191060731439442641657498926507033326485829094283565897811595265936763813065394000970058187320293961700983879962164241735245804362685067957408628558775908936145797342865651793565243496588539944887437481639748828706840880152887333675996403235807072279453963339906073787324383084909788786528392577207593784878818189545813554265528979500267094546299085544984419000830802973603073205686247752044373971965561547654628523623358608925425320484030879311599263926544684810382148428966454350870824107035247990075963578182760665070045257051295888835149236621029194211222501930534955496481061364674259204838172080837214123216372949177461250930988827567396614451885027743819201599240886677640857671707875721490195190683052293992033057674282680057936930056692225788410672738523878138798498877078629032033709991641204017648514542640880146456690576008077006572933179164934079259253005030018773515571427245356000377576672932323555207270821330143868381139520734844573423900190703082226324205394092745316909956802988235789012758286283631168825988183153145296055033011737856811140875350123604551915427898398843588753520065123605668062473609758161811656441007370914213003307339594765071850048435605988493738692245365076519718809194889664325488150365039733704820649626875257339368934658249033033245307310390201162110099620884211913843995667252316920998772082831918124723897093542785925750238886444991913475712113073449433921729861386054266150299787118253607883433814145168047244558789054137985407243853035484782498222207098041962719257283419472994249311950218673649314780689889305862694973100873426097774306081320010269134728702000137172420250649701078538904012006240288934860154716473380619303273861348071704139022711719390316696476111815868979054062307787639700298815083798306296928744675198292023699413529185861546932597104327945122385693204030035466011758024163117393102259338819015384675305851061656883942835970940102599848539783685140672628220754051732983563033021234632311874060009668408113317765695792652112546696392367967555439546032133541823811557329638315739934429546648096829315670933639760021221287551724051101234867323565017060366107941046204946930026635798174362835939256711305234552019341236209520178590951867022864877605499556665677431977872179200904994461486727738919471573820614576541826671745761735168758495941202637796514111346110853734139306675440687854183742115512000780850431898862633582794213766299696904831426896408259116999633566327458150810445867966065297889984658499809238120946208280218414185091324492206280098845458993071963488590665339796381151008029235244617167002235424506248587385039893006661844765929473216776840869266948319246608285013796874522407827718640139695818050775721816735138641763805361094252582336704158280125987595704802449587210242956477368975253040431177931438962893491487147372957534419715661634579413518032849077509202510750954677635512112544995006362561044684906839716422847206973320069077504586396195878967146872495408087635285319149174118679749226652369121349330608286723865275477487798176891052901007381341033123518313094584576881088061149609720100319923257543577266220328550537380358465067387345061495072952381159417173247376279340088123668281781053182022040406421138540947505098283449821485605384538279840863465640175404415336705631893266128382154063679927745141214964861495636506418568991539439920000404575179893668878293397976826792331097609084704368317970285694554921717790627703455500497626129243841753474826468082852639119588136199103111710882506545090982579471571332014442897479710475279554889221157357202192305437979818711748138284930706437440023396383783075873623982419324539202638630363997274646761160632250466124147345489109116240429182708596154281721257698872090274048164649041026609471805897049738757904324726044897649307004103987732746029912021402838679960041470678853740486485225924184140224818304447827482889765976482976177548132455668002818739618143136081837202193319024814948251147307890296590724062488799904868207335048691063827570449338874528190355941975378664135127766068101770058671143807912854391631576015261594860705096296331641666724318722300987330956900855894479178376519698686023883125735736125099746771844457334759045926416292256331745291362488945593208772074038259567588617747114453113265503109088564094153414657327068124085100027997152728051070639193437146983545319596799258119529383198739127684881650037472288598862597364016148180320058194171555402578508964196747042973961484129159789878870701337061015529070493691705527309874024984072309859222413506029056405366757252430931873801469703637549170960945963521065396137052412976015384461538986220514008329796432834866623081772912855906589436632027344772726941071533406683692773554120324613336604202671301392130807720573113283216097097898737397434196710105519213663145171120578213394585650809212534895627298994330487257005247364810307615377156297424952588462960243974585276372346371428167106415401654300714432132686309151540087251669283951665222835359803509908107018477512067586946530976268547782298444762042909372463591855528602705078667200789696986923514750993332330251457355297352552819213321579387031786074137702065040374275611315306444001079432282432500331319390509798419634544805681474258944577367610819835740362116785484272262584668813937001816901848939895823582337066472644240829973050114981567487146948912727035589063441054628240783648962066561644850763355121586419478671496428509631543500872197475914632556568454312600260728832287402624493539327574737940698880254547961606379940839972073161565603654807830970678281383802019048645186381543499563933687617861229402094879248194737488972296188050086876608430946562554028816658699525336926385914479349685824551084782535333021574108782152772809352688901287319120716821915328090559184622087500884674520188359592061136805316095218026208040522249897778034548900734834245696290321500900292954203428614076340202110747270832390817881896901717560655178714538823032845697931949110799150809097250502500255855962903105428299023456677216108627695878097644254824535133701871463016538706495629289994085429206845327012929853477952483653355549267536311558411702365954356847895769398169197547361719044199466316710746313855503644295156052614253765590161281957249353494026781309934414918167228306927799767067991406378255427634817755291795584815522695547657310202805611083666977129878147350601541243970308016475225700258292515650319780130367154289446064779118889099208837746361644562245463112599502367457909322956445684304179741082843152075698719357724745474259520686557705942676571724727829351377082904798424374461117965791812510848194916179536369660877523388792368071184587516173879339889182039673163369725100761565854572608013996109386363596789729124788043101351201500138201421265378699963367308411054234664695703973623511232064882042881004255420730887063794498098945432905384086496858055938090455037450467571646183514558679925334291730410420477464191666894495688971690942257172427678872309411870353287761155313703710922786571055311623255421093691877973042288778527454986225510804544251289416812742177515563254230907230708792168491522388994308827097352588709423578929053485487055669848433325448870336616501629137812468830778530513683891173928438608993041932430889508673035287340105827445626978647669499344846466134572272432042021207338183693274281198099517099820712240334004518820777962839968079086621481380601437996477932090003367022960396176052508600964864524694548193046820502025979721615487964727186089126629298869885747907542575546209856041946305015369139520829699976840304496239634206095418559313484357894407159246404742588402348712291441909622992158938701652108735574254176740427135157528128011074091260267911924924157705556946238129961557870876085709590471420937832018693005584729830319056311480001283493225392773457217097935235898501246568090767914577894332817844440536935766144575192751736350374360222668938094274053462488973915786096735420021221651575539608797359148416733561354905329398330145558331881277957627202089324215944293597476263744631258683908497935738931785149178515300974794554259111050840381625520502879541632868565887602724004728737059476138732181924185260718179829829899765841186721105478695428761488223986178960296970685467990668850011032937161231005148753286861250473545437479191900019037208934402322289920860214297595785131569835998159075984215325525573254505616070796795214166933644702714811937964259662475451086109865977716451477661925226400370721265173951675270064415949384110771941525279232059763643652665027991396457394276542464433985992381765459267969175771728089518515798194946166389936110020099811604499162155958195004265281545142061655027516232020617048674838608868053673483583290586510975890375498920430204055478481022212329554119482791086628815275815399496491802689933323358125271555493054200873929004985409890591326290789882724263290266154858110835217755436710133764712301154050421707245508058806135724701361999994575428305953845751069237945476223188831177839837388413617852858195743555054822413601712595658531031951518047096707012091673354299341653002723779846081230152239588461319534747700341606050978390614575733558176465717556175486055240821543135127716854999749562008061822465154644364248143462480903507912546458887735305068148586233719979921289167162824445252469053116077274227596746969683285895325028349885368800047463882702181315128385715903390222032503763267578926337214178063652970708375216496267617021546797274357196418543747554293622603349723161377083123652886942583227435734299700769381479509729353654425088165136983233902753323424894461187431001399586370029286553369290293854904283009287010147859761149228589684597323241054000148652304254654449251620912029125057416632210570577918892083956871435641686987177795115063369977515922719979102091522156086201041072315985173970722303744835474575657072402995402276271012692295159163923017755550050379875865083774976629482429355904524085417589435828901906166497843216161524673829894816816704095750252850130762766042905460243780587570581219732818729140239832839544869434466267533764285885979252884178348083572832141877878551133540822727488570598066867573981162224223848308274556100526595470701420845394517975791369613100889882527115913777239952506458542189056518484150553923701517838846516112471620117378501660381710454102444523456062410356681985091018350554707136375736015651692514293384369992455033083290962655080570092101703810469771778644503388273200185736244138146911217609382288695827434340410421686778566635749949913838998605678692954488845348718607623248357819195678314961245790660010155109875657603344742921662529461292021616023026967037944253149065792880381269680187123532274381088158833348040006381503958576470786238395474292181214259026035339021189792953488454185805375950597035587299370609943727391868366775746468284239173745594210468609854393373787109556817923392871763425990967565228823125460069155349252402988122395685729169334248220899075774416409344478575994383342325393836952618174706947925379249748029717218634086490787449762362194903523342034193737752768909989736533581035711057988036060888130529281781772167643274803491919089795717121834197711446914745492995757722389014780760936591333424638067635104031775654455472114097967857596824210142572135963154715420688909012395979650157902863680927084775864983350610461225253389527838256318123773111399766475718533053497229181499671908904377916705626107293510830421959468719547681305269270516618394931355166911274111578850512343178986578534042809033765113958512779990369528278463109192237967148649561090053120392578762287132805057624011004486539778034950081210496086697191498392247690315463427136783642545233812274946441660483648244139119675063298022235965135000654297960242424097040805685271429314994774861497985158298019918646141503741346138384035991295417470150038938703256589521308177270244602039744465055601480832750385807267598678362307889006493043804636598944643723934210071907302156961740535902297796694534947554179894877980990564442622650355953467284665880286675323746008907080171415124076777346225597798337692590420118495380581474133730208678651765630652766781272731989880853165075049418348145905227298232342514996512291183858365481131683374069706501295102253181141668351085491305014499708196723976666329597840458329938934002294934205726883853114777617749164367868690348140807068488841216919961523547364807650924946036628185626479284233380276384532347536228743941583381569210949278149907052311891422065616194289714165598367180705773016913869214409600671114419912453136713125085011023900455112481425038428395997156739767536590731669080895193667704700877867673383595876088129555555606138660461531322815188949011570717855566912866181722918384746828827180712657834378624733705711639424952698252480981806409144244498445520722070687558198540667544303021447716127318470368543612403607158527101807180754045265778499730929458239706669362239388992486372272947467474397843471819923408959892579676603428981012992913677068364453411014200533953822370493596848179678515722807440595406651869014501117221306254572694645047422609688220349288227115043494712911797083343162469021483906761031199013292609111801650658804703861544094112778123433541077421872454375451986411843532456119106780513824649062193800966874628435952307624466687444025510546491016833441781151623212265331850453979543533480902184442819519093071978452310469299406696603613674815148378865811151945253410097269356959782117147937232708829948208381119784505420629504235490669452862899773521825928276015159320785721157915825339193381616864478626611588148407884350109029569926304146344681231202345818240069609432202280694459537338395642954929307871943330034156959673780999907354278738965930102600112947177511234461607038732882551904491733224049486060428631616816284504963693526217484941748398246154406735429652617763784467182404986077475785740406405246959446395867028033426636255607199394125947791083002124033610548814602336890033147261576343195176097546449452560292388064853762153833850794605278692928607797506638752540319971458248943872691550185345844554338383521810491771084706927470855360697363976481789528633231440832953116361821576212243891644210299873681214714900390483307294488632889408298677260173303053917034849243083437096904749658854209508665760769816911793681672948182718719606441345056991032077546008861013870557102468787031912974189902834571806471870377094163953076846214446015009036959922782220742380619580547634576849173722742487330547332385792076269411850675374374451538654008508691130132387411780358618635846723753155256615168500735296634240196813951858573307806324943486604192843255420036299512353044037343540894403985688035074216399657882441945744908924814102681662647457544806892728251247314289907797678077203513259032590849909116971456966621353678189580742064188177031028606550168971645255528772214116710177618723516446801769071876846815973425730249339890355299697441410970754758616059885741863318893411743477091507200276628765812007991935093829212811857325275360147288041092324401958653161986961964480176069569341365962154426053382376074710407306954946638004295616204741015835991544891935502188305866056858616935800507766103148847509575407138275448766464789824394638214913328345860334091544840302403073041259413807635927557679534452435620769649139242747774095142900231776004717639587777738089702085750991939401018080503121912794750968152189979794030908731391823745653784493153010957717675648832890497591968944105327242343199552647377360403349498735633274336528016979270481886666865852260454208147572045535095025200433358249239878138590277496990857593540631849184933064473951218286841497221349854671141478185475072918318823990322354491631871524657954109476953023108958220704916845701009385418421454146872025624172899784031721889501082632812557951925259191052296446523927681463304430056455654712492642784458163265618945972289528408250289246058016496368860632560396929343561560856273543582757664265748227382706549786786927491203199407159530043109804753170253237783582649091801511435757640492328609626001102500757459893560204148900053030019314305408589223636932486983055305500132562408717871922364747968787342586467950409027313328828421398187495849103860524301624966379622717765897177159494769064341622873947397538054409541841369054922025798064091221663413110966137868829976224658216014341423955296771991448195762523834870888793251698717728616503879628137247336730627209414782923755020782504819354257627822306086343718569947692537591522982691996046827556289169167812095548584127752882723641312523429048212458497385226271166624179153590884734227247251247499253853251739295409618734372270230221622052554442916404071858342722057412828772493510666319298235527292183156131332726575509607005195441290050814323380078214499269856957238552538693246275889642335052210349797429014733465668198858067395244233362158154143727457329140887352963203023163345049673656132424993115522889469743247963422169634625356161114925296225546670349850729194886093217234603299628869206883697199817559703118233805913185516786303146724278214095632903203977751297731690706492079762529182460232272662349207694523202481407728530373108048995851919427697128334861701423334174439193401482386356871092266603906277172929776896050295339792713615901823111930716078188870782328354304602838801612362905340523250379471956992692184755353891818981251413634096790206281373939753156091092738201511458939152258474627831992976933210077961180243774746135823307969493496722485074550355359021556355484073247218284970235884321400150282698206629935858911437504276830652165678385459258894158509037008290347114093034855853206357529081896026531291073740140958403885502974231575189495369625313675425002727633242572848903968827956231315500468192091935613621462963241091088609041891538066840132368903363171692784049749474979985939093736287053995817554945698309638059053106579075911273015340457759940159560033700918838769771793978266401665562831078830244895095444114530650842961013437154062881569093070939872701236382649140175834507040404653929179183699000644918745341789121785271140709459811648752443325367330624948746098092391695728925919732121891139740660447603742670084624861668560263671988064041317952229358047172629834068941047751242193440073342644316507912380131780831469815529649866337465732314120462839482622417620312695955763243433544533670811693177271740650475968300563719109609422623326531288722968277484632148518419929414123443592885393487694348369539978030039133763024014742833884017274354518001824715333990636802982625963028048055914093738969894984231726509885497086641655218399113966022561453426205310446373285733226796396173763924414289248769377404087334553129253066803759005493314366833625018069778122910820847457136541680334164456602813320220847330539453018049622979388386037028681924912244292532066420163685567882361345749751156467409485562837486669310821007602477803546111706176520640236803930073518394150368227048425991121946989037860465723688121759779301871224327311376202751504165938243125687524781793202885346650387643861611001228714846655959183707136113283647728381884580828005892011120272626755668251921982902690565318953159886884145823693341268968088999262381874923940803527619461108373615696864502559444653123561918791970131288510355242050368118285587095550730572931158555292600156889953560560428595179898217897678159516011755516175565771977387770709883578084459952330461048406663606824803171290374549050435988343711919999528598829660893338883693548886315446332021919230623320476500705855580978992832687263275681481262433629218704983278432609653455823963421604970845604221733064233267078888913563854548017568497112971827011270444838445044164123684430247717128563703547960750738819186103834896897370533749672577966942221759585761540718441998646161027097603069012184707087333406368661313942227986886298590248752719045526951081956040500370290159091181530271042757985166654329418595165215241173801075480118978000050244535870937725609335760483440886977794829610242973528438148593796133079612283643581262797572770484808383081295880417937282681548990143058865999785533907638544988248931828342213139074233334791689313554799484758641603774213426655860224490107231151316317688771186375135112828907695750020783211438711714792608798322908317815186596681228147942516965335947009089618444879383841432576410595924815230899771677072286186028202610439286186433271016613058142305150848669193303943249810117632768834432723381753538262932525324288644766191007750250234652459649693968135970688043327991773082747444047610594843095621861638541098675308488423307634763481505125859496218146656697275535450705178332925780054715878954609897645778685784213008342513363285445501705067246344658538756249919412500584767637358024884745997476197116370095445472974749285540848770218034238961896909039856806385210336519068250685243074023192975110173912222981199738184339573202213535301491684291267069562990715689346750410189911967237436954261280271539166369376232340024786440796027699849547886983025287238723595817020967603210628214318971373199481437317603713716141636142514244347715318405237871851222845018547453079732025261426831903502571671045928495984869578729537244500106696611000050011913076980063846319083742465215910556364265319612734805648823963672043440957474099245424532788323625190612425235318769709947687169757425997288433274302931904706334710395932582835556927578234337851900400239515837150678487022748009794313152731510085060971278739554397034608032735962374587876776460620646563654971269609313141848945054899858838709959997106948153779188791619087663117907160980746663041497349799096823755073239098124103459898307859073535162470793079497196966908007649966045041597359400317696287786674680583818755459864903764594441812952492293502605038477781137621139298370859449139386887130533246856895165167479485888056200721914623233868907011302526791787342868881364552229963804704838337563174826959909416704107805957687026104397922707234285111551265350682441955934815636140284852460871762064125710838198270491961520664030742775552364142159298762092702517812750024414973105308059743202281523213501971952822652967772919659431217492816475980368720176411707875400744052484483728380810657533686222292369465013067275824157398957775968117301453873079005239840274370621600541028621479187331718314255871132720647995360462792927084409574508080360329308435540949742363415708612343683763779813275279583745131964429185837607224158445646912939869394172449769182790634992645417682275490679623936070450328471648369818742454514481653662311026120690289315240197991813776494682501183598617559568553816654432462482420453032893910914206349665129177349455588812493056768823192781498544243170004960216596014325910203970118219969139372596551182337783789196676725586246641249197798268111040761055023615333578857445481110274876632234614906902458724109813671734918620091115783430795650640477402347779528121289214428194175838195379776454782219736183868402223874025814945827187974529226290751167812356117143817654627781145774446548067765742861638154433459453780820532310221366396324830034317002994085724406045895593433231566875465510179367976218880816516825595677235650261826313608008883833656048159480044754805951578735014116645665772258993443201899672928785891778674820263825773498071171736514192955576661597508603534435310833218239905544117222560982756369067969724915056105326136851158890915589166139207501565696013044618294679948491664845349435791117366922410636526882272991640906777235141231707086925648660245499284349418134747453121928402072029561946765610343797713919923248120649744401785140584462634091177630142589109080841099962640222062212546641148943083217382397736554074187029321944836986994275205325614849987224120153133836578113326790809273805671249765661333819558336762676709508830371464739017404011398873401355285168743013819920613181392390526679139960247380555945675054139855436234062557935519834100578664432345566545142128536371448021312950921920834127155069192154299896304440211643300733154131407593908171537090484791642684194496175252919267527605821654711438394756215462433682761948242170243181520081170852416846548270727650239353157673880192764554022242704377712661074609855269123228971272326600254616536810837155846203628597491720622530314358166330101451782313186902828563934471321140044135643457305982177564340438352400495365856849132734403475022855968397248085923859233034097825923170769313973444363828755184171182341855028977592736893148924817089148838758241502977239490454105824295527563165676749393327683566253347807536328831234547788604823118943356148026839642077490032172370377397385944680103232220674455874192177683922686827729950585280277470571870683318173265497308959446064111886328191284159351929721414723704393893834056985824912799356456344558042176353050065985611689586391562219976291930711327944288879618917856124571110420740440575815820550502509914195523212965667952444422098466403567859998687185768272070538867227350349095089357155833434339122886584871408863541111528096236019530558912971712866869192915691325038391526632377897159220673829846965033623679652492221474372530585281891612280252559755092279952372556100305689001411504945339301996876999807984053893380432870939501241804524516982851593147938037175239630834138328257496855960544794163398322238091410377122886204384997088974546691305832426924998225322637900500603828035605928153934056068672285446238885503589675613473187393947393513719506270048311219109280461246306328262540743685024360133051609918163178746261128916238208800222429607329213487643516488983513438538672830529286761081490828964995281066689173022075770706430510541320530209274060972921808478420469514176050980008064446057002458226333380846608051370293680051703666935423502525750765822655044908977795044364427174222162695176441601436519872389028295482507877135387243680965405370126534881236608884786802683608818557088704014785921575214203421743964663060328390750200518185614988706051182387313526179195365463694032374073356961723741706894465055027994564795450373820858205964298916997290538138507425774130565350646147417266872133913799464493724748532129328812507181083939521434686517426677585149607911441116811398988596408173282497846403938399336673633221200476295793326523420809740740024659231444129811587333729719782796236906260341894984890966014552197469627618457225519044248818608828487246494451157036629689785906866327820750847033133906536466094374368486354182166062548636710372992912945842964031364967681124919334026875305721214210977531607861308785453644057007149365933078222606379062891506367600312420556783549951235526943817054932011365070106846060410115867871381233183834395784120060821736394920245577435575792951226952595968960190928540445976025289701404835478872102524346197443005069327956569189986510690404282526068386936034871136543709306132147261236717520345658380835976863658486025892970181439253023054038123031434405546022522176564203765284831600782548827850676390131268948785253985656170182340485847361943248238380379804662584342201364331611003350948449214614211179253873024981132402438178889179324772602410012519682229033292299644847942538268629541601385008380018402989619994705343060174151061396245952415658236724048539790100654670117197201605151320827998287989764120754562490410341487920621239966051152840634073657203704807438343584961238379471574268379319657317013407475313584218795363077282431116767479065375319903312281333594627733807312109587264501877881211095211165710470562886180952909059965802932415952762285373352219244203850576805230424493898848451040102456600985769881161831893951821324476533535075865974339866632337175739286195936500233001031514079569405267603634284466713114311176971892848633943093337855049891215264787693538164768463250522340907053281193273957281626620896349383840018623238160058946081230896442921418702367635008934101687650127002136985489737382001723216185414732955664346431065747203312245767689745543978857025111020108597213815499133917146224437988759760769239463503599789849355821335308736027151379675735302240227522483910241669653382923598677009594498694912170817830328574944236187828749119113898576673488193755940822569031415289735925662127128292403619242354254502408551195063173367931210792751496868409789515688378702844474361568685751593550988327240916425729471408184001898372878353616971151094379071417532327468221076022089609400465110003008008183656161710487672377127369816157072041239018110580412884366089164291414233026228134798142658219534391311179689411994939108731928242473490476457554360742624435510154960222382458361795606955684426404790600571149960851774415150859632884055830622691738531646296941464601066165237863439674896703990444317523258437487513853819840760970733458063905709306314432216092340362595602450703813528467759797436679427779309126936177484260140067904409256781427976674409662018551077306207950705174706573546063500698796411111852534723666575584456536207612713340176902100830179983584611677475865574724260591519571028647350872817544474065014611166846662382460039837970574976793600305694350459495911834473982178805318636266568974695881571312593887119211633613669130947957196069554793333297418590907839088633731219823315419937988237032557029985376010016434565927995962713466342940047807367491218637785330105455572011530932138499623721856837230988899618704695518389948377198072035331944240937289147073177220284380746497333181988290575313454342775449270114770979931255830455203969773634877107165468876709431705730173563631290530641505704526867685789467720980269258825889791353541748623366901296883015350464206741504032070099743024759258717665706348323155864862078088115825877604783443985442416348571314178716803512347910770856433112614118949581282546955397897837032441541475941008607125474412719289203392931679227838938850440430852181082436657844924082976877772831958634377068291120012587571272619865053476161247115552552855129320025465603193385479562311678473033892747655543585777086147077712245384695475733041612884706976417607529549708484958195686481507302483641404906434499078655216185215524959075572051840419289426697699810768012326984331337274619657855227770290977912538718783273353413855451860492402655452853021640161600636890728363157700618017158039413426842465971015695870291656924654080385212961710750469241061314434762878283219848718074819240797244268196415915326664083930533964862881901224430317929185582461960096609529855686969252041684703514890657971012103400198676469671818643918940580312336142433967968012714602654240618177422188686033434666600955675533749393422410462899206308598470309278438722621148169918589917446473947896324216307974381635357082374734978938028191318511088654370030042012502528530458828803210294445216182425681105516535848077447588734546647728293505456199363459674456892042474456718709153488656112041475987549292807992951706437895527828463479108182370530744587884475531186418923941195761582095884476882001732850731393667235457619327047237993539909886389277492199837235260455429872928915880621512778021002547100727491077291376486398875873615845288660838433400489193320478110914492117316351584290197750245020521213259057869958075981122564203063991001244597918509420134805054839892419169309021519603443086556955556006996135082183105398124482845606667128623135117129689101118010304222484483104060417959565858099334506519978561472510471785739367963982214029645461165856322627001074283311960299507107310172715912183021871335054017865234668331471150650399549855466409723681669365336539705673761420366384886479868258456322923788030020409066043291545309116124769176804678559626258156813152410007696232930205646147603080344949824478397965435532770321178751428009908500434710301315579700902406301366502540250021829300680883163355840203091887288333781832856346459365876702472423911600764673492482237238103537056598434741632654711755589595192600440606719195144652027544608056877295071749461875715468139408620227004455510172403774519086940734104309403014671404910783858124011585632237983246495319085954489447137864136211665117543215047310034237058469938122023585848850588216455752574771282091693885771408961048180492206061303352123330436520985414353880313090720811802976733218428385865592437879159685732484795019273728755396343265705950671990673050061899665807598586885008000159323646449559648045786210488672081510174240536609516290340170098297621036382718987692696848106918054621922577146650334777946059146417654410701606709774873622916582100409560148733601600919042869851358934268146485175600005845457141007314158870148089105967678698570061745670411328620699136225853205181935360048949531235506139971756972579143870809910395341854759238559352733991943563268906678982973893414211801467297294859555096142460758752537922683198075439339056520952159122587051882513564739298838821903764068581850560882303545514062359763605747759878094378636222269855249711835056911420694567804375398564307107317883970449913905979502301649262692738597107008122915262007857825684402030699456282730909981020677349082739644128387132045908036349438287890784354488244012508971079414183097723593230874057129649737331625024667885929324602983783485184232792908201686595449944480511522472506115959320729178340740482481433416040224641615423288552626321443323526422367633496668734214928796855899562481289595626075764167329577491867624930754544960127190405221658413296400492687612162054719732623009236624272930711496999910762212976415920536234675038677343622603436557104912060044826358246884167534564564365833680732865700615585276648971886227593954401648590266692316361928884038341939620494852739201894843602987530802264942089659169219500594196172300043849034289218152223848938586262736693641850550812526701612553001702110587473692600269558501457828643465514373257080221978920430529741068986784006947077490021089486425070169436653595002571677778292833706354266104008435523552384771648893201461626922459713714736304058756263887216117141729584698200287779152842547604829709523125097821215307297020850949103561208948183833909063380493036553145284828240690751613347663682010355185066154749373930399773944070736211610613365462288212677719103670928637357474334035673604461732764362353438049037243758649510974186388151627535568862205319801363356352968207478527597939586366417069757826374876201260603793256177406699450342866598517466899550360891321617979651484162109679487604735650691435234975790657691133406271672824837494482855977257354791968999619155018164642199729391296861878260654384471418313955367791531959202028829693625599206483882274943549529377422948026812447083706161963857928637700850399092120860311412841592908007068114020195639205100499871197964146837875766867984803539801745719372173708086341900389399282383701343924740712382907775103098943162897377800579070157328319836023250340519316480437884278640270228177960051058217375497098470425366112378430579379476701401553187177400263889164914950771395082595665403864873933763936690221692720351035120489156325116093038644491108627633538871421469031800173494522239143113184319798470997192727954609482836355047342342282271634016943668172514588199274867162254036336116046550607320631437943240360944948632284110853905045496104393527402192528488221302951370670193201778000042967132579506153139603052124434997903533355803298945740475440516278753520960417296894036670646151238408223135734328807377334865436157347213489107690414285940316483303752652934992128658223615449155378522827511053104779518823259812831875059760395539657323000417769156953878341663053891037788959714513698386129367648869535088464032222462453015423573485954990145281395876127580704288800062412912648569945193239455527439714539040410495437580673101952327458813049614732998479254104288307228386526001182268235627977085054472076965562134557702043835571988681236830634537979227907088418878008100150780668633815733221190685839511487406142401187769558848185725483596762405941922446738190418342299057199292638836497746526928648531303662699062246873142768317667719484372123132879456922157537383294984931801466676998595745520539505465438678725410535488677644490888870103772329179695196733624801981745370263806992207728830163217118060672673721036944720778489491932866398985355732925000938689593401885314413345608972705602302041083439954463215109010778574508400461750800919760630512034608329562204011673078301291257261919991850798232284414204621750452641485901657667233276679472566641484137226302651653879824205209334715648877653462586845189547287987863864461970407353800024126796310285729861597976726222323087383449884209496936661779773956077962224518624387885908627949670223172837005531833093679173325474658798532955043924740447636260620267864656970166325134091242313306180640083646223901230205111116299336592789714351439306510581726130684465171022779653325573468362619248233460132481578046792768591053824971656777091881428780645767548288181024013960779154259117233133753259021214092531026978681330157366282710221923111869398429379890444328466116315867205906164579138653745903099875289869818402488770374341753724238426241466810367432318228314176497986781212986731907881532473027664100095298975610846119051955810996048854021183911464922737398516920791240462974668700851281054036140395200229374390179348708179296762263168596172644143379398259064078641226518207500677188800586406940373508021548363385827145556416759587909185081129101311841999522800154321042856863546801619274937709295147823779448292992315502314737497209741153338124158189571682826727809528129264283617209844245131247724937752789079427478997557416373494072834260872442514602757634612325498596131826758053322194866761735758495151285074799310647410152021390462876003842747318805224621906157442001963065847362629740193425693110727694937860146889567810289741453492404177680293607207193508650635451741328692907112244693189783061441374390811850393030875829727179509373914815897850646394082930276910646165467776422077586071062318740699552628282023763105468018329038625086102336826222523057300001554407998797719924604607967481423304305876376222463901252109083861396307259507153382716111844629404518230814372780804359743905825667014006838360290914473167872411591367532184823186262801798189010132583999012776166980482944480578206457547712263356633202406498278296153240038756483235296636116711247606082395045833380120918681312006424716963562153293453817818499352379148990629877400456928586441203990250332362154425538840376292265897557092414014770341029448386795130574444081932127928905086091801655852269990572812071410850648348499303491509849168127201025659521276488279621100461258661652772630144782400118126035876147560294538237944653882763272584967658590544580125078239671347745113191978167703712766234787916128303252633722178294831451892555023537390788463294989529098023069892422249340142323440131335746844277176424607983147873651689963762154669587676847370909727185662676239601026781797505710395424390192800928997317903322007005932331582421552300048952387067465417948067564008650538644800974736671436499322198973268030219252649531667482966743263349441210642116894536012191363739347675978952465619197254063906157896526130136219855026129602748959215667056225040219951048192629083668647984784902304662016495817850016860226043715179211083948585601243169882763780610062091741495640446086708504007472793769851018721384139253402998706014582688170322771805017019351463619489574886276367065156002370314463670228173169975547578203239657302120481884441333166132958330482315732177264614802776951071253123775382405338283527437535869791669307290911027976770022976153460961515260039756979334933452305497037019933512608590050659609182121677690985688105542049370154847232782513700072291028261582082806125794962694630687119078058113472595360712608808379086484449673549967580716882726463760207908159286914846440987256988232636729976128146270877413462588936304967762519403460644965664634810660390187717058937586767519196494444481311055173701941775293737291619186754464919812349361473408131844111768577112357238054998939562181437316785844868237917738124221560777847391481575112580868452551050907170420324239887219395419307309111820450775008127289734182678201792872747338007203556671244213844716892197653519527764184652888408426554608641063739686461697276110205113356499824126462645187889077170136348009577298372791692452109474373082017893939859944165548989358784526625691489868057390586813634666012807778779731172175939224830693288856818737538748225538317273021724827883327234509489344665221867030474097942550205125507744335975979144215769256537810952047815335849208427809432675898066329208195882349830767840643757275644100005432077723432804471390041982140679506975701851560102575215148473070407666146742483923109653017062664943170408547154829450477246211350493197552425019163204849809760981023918347460762424629181111895839830093230509879168052790166424077335361015116586000096002305387918327910326233753102083184307986702953122133590695645887489753228107454551203538331019595270834289465795314632294902041786970165413760346998358563159478202034043540015175836882319509327649121689219960594802882651942169440584515348072217064430387472186963193261361945315467763982175592843109543588562038510521170372613133191735387715495403507701142418169999522002695338963616646486251809976583736551035345985988236025024773294272655756946972379180160506459414269581941677985163036129997049827146108481627038115913629269197486461917385209469425106049309351988280846593134177334475669286491873057553872486189611542186438523523572325105353176390046846881667081619871236363838442794646528858465974473741887481487183115370545385503580736505551509260141404657809810199554727969827424940001019379625166028838565615981277011382295518516991283554586112092585714398068610483431504729502013772868890815472480207384401021962938005836897374208446023699215498255512265462718437573865716428149502180502815857566674375482716456671557891991993740221228736800567872486236718747642230984929916362386901500845467376750525475449810044662796545986522333837335213401231381118655842354347614573693530982509198352080078757626461784407342757594042139134665090712180113341502940681733622925668666982293150748999745490804272802380044613723915044020931273202803338610926752726928173966462821949948773977274200343324488138683204774258917626011932790506478285386366782338155346221151143571383489304323635089008523595569348834177955127543068228479522670176617893535959746699408530015954912535688550642556746304713396915512320396135445341349290981362643411623560997620722158307687787346058974635958876847565490152505328231185628514648971739344961474020859970459777825488630308394554509211332893245202689975825885235790211203380046568459077846075388794964751091054783021277888600917559218597462193097590279014245713577028487277474732148897181336652497791450159071966974124771718592404476604425218158145510662135569365431185523598586476001301704045388979749106976482683223814687454952504640324719008229112108773410308222250922907209465245229410978257484447004039230787590657255398542857432130278316464169448637744727382963257139586217961724944755975334721583929571288453339583228741921402089827143139267627658337472943934543311502634883740876739541540695098283931699035618566371383449248045267679443126235241274992229429146642656159071096735268272479831420523744364085488751858134108606028666577178540891885231805797955138441463251905612597868003899538828750109435392804731497506982929063384501435957580804225127561639542701858901416269757188083349217529260333368062399889408665958494781601441364127359611056377603471835359960296079538995103221387795600535035346967591600334979009148634359171522469170674677695210975902613791694892590841536040181100072615763371282971346269154937488834170080413742970454024581743575053195865461779132145639067350549412222188681269144813134827806142458543874136130272847151392917589695757176413112240559839878392583998755978813545352824193292626339510368519759949969410753598903378461363436781549437254436910162539327355010236265030140025152235513971736709877627998565228925491998271575273817289265098353849088752814898430618839695656006205071324118741865777330906070201674393021211388943150848941424382589416366069552730857342246158729353544218010707010633650724990766631707680478197424793455175753319383690243527130168464938084091557163387320928231611267375920718629131227755108370946559079119094040174674191601139628200992807552845649169220374811858847072621087719666713756144289600640027151589296950108817631699468339226856369613769119999662094170028752536109107724044840763871245579029988532453184915133423558095983412303832264221505576784199299644914046295871055387394596036449096307143491477179234311517653821484252169751892578046281030451216620000731595082428439760130113551252233047831053869147545545901679504665191064270918411371727321472870083696489175860500268707819359504358055821066064221513251297307224140193216660523855572130002467745747157501746725584534241067787075457956940648805481948179397555708359553660685283276364208217529809136204960107764933395087918510097315165858270029736007566709305437738421317205461614861173911404523760949296970004341802994036750060630859697366524198742647601765759565798317289338502205936675151870633247252954462481766532277209132962805590226771223379048641176603783874583820055203192035627027431783015688670022104257548553488645520113887905972199695339677382659703692997607554729406668225769349485572423216690608788858072043596584233941593848125887829308728571053890169270788786226852423318684382199141161017968587999151699370097758284048568718665989717287796822686865354158492260072074623209762647541866071491168384443761142071903163860323897741445769114302306635019902665483255444441095681281422384064800373021356962214109781065861339136324211161283797285246581869438057441432238751629689129637522174267345298245625670708195704560508929055314125647361928925601825768463649130396734049198834050356789610880254774061853449275016053752401919097672708162770937815394521732137743437382929520973095291786174892525721075256513569881994282537829014783387712592877896623403425706729390157286759701330230034703870215968341903209886169070626949930020379001109397511124895122222192913470095604403135528037084201940351950179542834225407418765538279871131095559623030347290731532876373951168630183675197605658962765454138338029897108586217052176850534908658289292278789056403819357611189062480944680788291902831942695288279785874525014717007985668030351046361302964745751718285611876710860434030343256367749724905724550065748919587913121435547713341106057435244538958678698047473442789467870292687422794376153858210263602519800916032579237128265838693409226335303680035736844592758903753668717799874644394584551834547146534246329824802285663771671937728179008590770738723872295358502382304479178431902421755627803954473431448034577966157302151057946155737968096995406595226002143263633701328520775415417664517642067716491288096500579618760753146513992109524955742335578055431502674849022260613964973024399953677963875938316746509476806113563028506760560594419117123952529965842780736031235658852201331765029925795108193238976103014772605736524056150744519786257907497006893976657697343312465947981721247828427232264263719857683325755580440449887991154904577131846533812683929280410521721567798825567760625545523225640064450477392830153786384670774293618967173628057078490937807317051741510544793990886434336448847664492685732867265552693642633764351679368392437021167811549292330238829075308506393578668243762201990024140494730467867856246778074204528635327728242462617924870986258460273652851040583698013236883904415301725428524837473163413291751237012344288647906014300107040212840442205628971886105129198645136033944749328327426635700305595012249808048030347940928073297032823483972694383608570754130549640673838580219659964871516207055038158068032481274404830001080986547470959903190602767636227591904368113818411612736929440058374958644884564134021123591469952533972213988816833715343081359292456367909982461308255274718479274772876378116483307873777494361738449147630811884695875873946672500417941883723331972189856288510162136455934443067471056437400417961824387427650137225252735612748971840885732768629164797323992502909060294160876302295541934171004274420111573210637063045723597393517343605106660676770847270413950200184114476176781174992209262532336219140255100843760919674156864425144901062367583143855884053330438629595735801602652811908855192471668748658279228352868768944682969805550776395500010543438981172902433195807797251233614800882538053370136881516446434072020854715136630124476464075841637065854895774010523139187738823387330000184789269960455578061885751293023147755748502355334468315465126401893203542867747905299103253826805649976926040191954060354843817165030784329684314179898301258895815452748380384869606496183558066331838770215293478970963641679165218389000400328868665243184463835751941006398466588476979486268616626398772036555504040594983423553937090786766860887586115227104213523289798625151760358262051323798055493218285915734169654315390733388387643034169718500320242616786044391698911818585379536494580810100589879721380095429388664682698166662728740812660914440529569986842640279038622433962346376551696189097111963966431378468998581751996232202781005643573833638047914528190346035821324510118465933951531855044497330747340865555525365191255759569775380889343030084919319274955314198687607249720884358985221681109292270997713878208455416097454798265967049393577196023953165744238230597539471825328242088545121714267418420036398972938849645887135977738442101329031995645703588794260549617605420210549475930368108831372310795692545311617091877208065573508198125035636523015870070402351686076603599696298927634411442244352538496288765125667553895172397769504764930345052173615533200069122939343378897635631897045145863370586479049532151814059120492900196265672886189344436409167905805547974875367710956520964354936342960692122911516403299009207233282382763615483070530430356855757267597975131823777097024088136308006555696346200371802564463827192233460195240946682109242260903382285979592731129348639357112559437389080714282575243898603028917230353234138205248604802974516958185248490680420343131076251977310956505428598591633758493862167099114602031255839479864633494477992738967981581153800008562522302595818470955236771046309815772150631819169630723373005005911476018600956712117599206625625067251669494183105840395200311866524201937872197288182081498641410160173714925549595468308504608629721720185492601813396205179091085822580049928909178784516612523512384700415082042121196666597390399095843172635032601799608398010849255154432012398695156133707163267563866823594478766490255546240774120857533269227982190655916242739021891238936507726543082900464724388457774583901250968073825646637495325785937277791343968586800347623405981210466241296222935601068767736418095202131638966594754212372658399848648229898166429872242619973731422363962311490221904613860705177930170270464852177555650780302752351149611982079280943413249991037105527052210779267024086355957671894330089590900220710761449538517189851967043844894935630242185447745406226697621407610235035453077509744662538550927456779121473159511630813236792749662222682966519483832617978533433381348664674491146079017523695181383453202096385464275437995074912976912973822019264776984835780041937351951363981739126021229826369336568843238852022324986415177812925136347494155533839411887638895599125745416319458360982120499453419034554517253234917034028928346129108106906601649458755007287582996342345679437909634642972197837374027354828013385140428804225027180393736573456133465278216097698450598016066548731956738646516613644434103793352115804279231590860194104618708464356119483448887700575647069121362918716298642638678358168657584211824090546132365700809811192875831403564535418068552684423848084049531694461841289119366193298565720705357460492718669892379623031382280042423956533039860293469683796612305772816695711018926621515818211208576485082880154872379653206736375141720933839789808002471908913455577437521166184989147129870435731964860378470358773450417255528172773847767584101085359879859175267027112071851008367203869076824106319287565146370985072370688997298061448714971744948172681245767093773983317004116077485150510193757487508518419807935932626429539531032890641701165270273961632691043433177087958689330132930891526423865038659746599410848699552256550104869566260839281427566567012123828779594081300609855021063944959001270038157077124218143025253894253719864072772045692802333326230234356521214321121894987301206060013796695761263028562643014743368915954712220247415948880381546447143611551921637121185420464728373480420182425711833112485380299867899477166239150373061933868979123303891815835618980297392389794506172931940712725424947997847183720652371560732497122218408621331999238795328307587553190763921815546509668217546273615189863575133788698318319330862241933435114753044250264200621043368188269390045694042612511724702992407374413082492080769003832350187902341042974684809504060893041436594711960534206264034836100839278543937998731518800664452803522860349763950005554261221351295570341742191461468559141572672766311537514996211392820314112991515151280658001157361191895917345362243447821836279154124907038343749999578524588347635398014496555173243369539672597777763941148588015709807567515531284439219491999440108965314862161489158396707806182102064439467095846835631281057904654180701448658584023963774071979585391590864458847808636865777481279048427491768461108895836259724411398039772009511468958334979027411546265662053242717622429580928293108103789545715999066805782625968243232652332759436765562722142324624581646829803546741595594111293452698745192509244099263964191933486011330898353280706087163598900929448498432585098434834442225810032064351399708375659237344693040327177172417806773337712409625722497459224635426638983444242988407224162670146976278348373170401922413371881800405704088746494843734050080078749485236202982055271574555791976579040115707019517857115982285810931155666772482536596594885141121118931101209070074023533483955758914261389084558814514863617551713665736342860142727396692043712361243758017598867858390002383000092507475141971339245898475113046981009684790331800353530143336599592530912397610511193933803071013541700146503356395522027239061188632133256356830945504769599712837587995045105319359515776820935480175276409868697094677850207700497842212416233215747474335833261221261440200876658800327465996018806873053575106106580079684699893258426602556170498367547007973803524200878107546545532621537507622319902067931390608632037438652486404388872759819567831159338534622385947812028401450961280561675215407984979952939250418291329858833651950577672249089923694777882546819682068007951732853239724615017537077217562730910069992818103154362968701115683337470447732650121274947406447111156723737237854750274454364328520287995079089001976863645588050380607258853810242193095668373558686398696468154889644825764607117262539537383495958007714733445526520408258232243965324749384440232282178678667423397609773876665971511476457151840921502910888681902695967081328208452341330162050909312859593648714120060457970788888936098706199274288063401090208176102802120683991340553561288248980564773527287376764411120452617994725127488135888197196988952140107123186146302232369964895090266756135815794927732712806625588586588900217433080163712233877073618939042615285964248224052340064153220385851697691467438220694681692652515992163742178068293160089321464817047409758501456597783387083486035583466078563945713965672026097953680506896512143257319399360459571933574490254264601713026224870904416509439852253045114808496374933043945551394720378898757049983730622648480240135220009576388997057444295751562021784541920510212340294507187810712969082889054658808446331833843687754330931005601646257851634513287408092690202815619083286129508895183745129369330015035724163945658320505282156147070717986747857050978562278139446352422919879212831397390985379422744851494512982544728833791981246069788286610851748263226067248813702526830494313322006525931184657935753226673206272930144757526909369937447158830859020516232795074990657200551285959892000535870517567836594396018592513927120959074659492407222049423028050078503202498384661548381244288518289698098128759059334920223313900051064404985421253054681107190870847296389305508665665237427296389702844488164717987615914386557193647374583339635893185065057726746685923499341564078951527593706568256792994039413288146690401043499396735016029721268410643887487989237027181283013469669554204788797527278536693000393484090590777701175870285751217100176041547539002174765380595088415925944635732623864159060122164666548404320446819748019988100010088172591088444321908122261883373451113831358960684653120662318158705342434259282979261003022825329819224034125951586480658284130391416536598519288842556581474280730236597965475011274091317261332208147541897822427242105445595079507758222028802699453867872012478378243486896983318191515687683460650538856273587120121413202004969013025609645769273852361280249753485286339421575615976447548724476980492847239132252336725312446045677663724114861310813313355433444518421602574045120175127235993108986336006920735902701529267350143441525867811158782346911752309988053008262035312749300676776008944786097734691976134868010522644964312572045689682130607292957535897358626103420076210801023954583160901642647491936926961958438688477860032816023426767847947609239991800523444319230406482396988379813534122319292909191829440735096396779714607421955512164333407759248155425954428616662991845074647110082335608447852057672565113988947842808188088995756279678517248421684640196946512625560034241590750534311369724723618334495917575937414654574028658886370583913804617614605803874974252783900530155376805838395491626099574798559632543253976537234527393840029053429273958650367821184804281420281978625025158545349713350163106851360867951169901114262970775815139691475352139365826705634719643446020344258001762981887748123323308685596039576400092572834938017079032552329115904619378711423009586870053522475880752768267969400602322848748609675752667547479805196867861892518623880909838490256252861120787451888475788689060580462047602181735692853602476879063282143916957995332470284646686346456616598611460453288839609251188686786449264461977296233190678995061301617249243821474150884901956447797452721902367320308222467462594142676603817614550975087454345211567903154833440997045648461125118145688253092381365001415720465897775369645187369292916365991914250630853914243438841166817600560495697534194942635942292915087802195039916585578896308560532640408012877839012154281870351633061106987285183883822705152734108086570990341777766923328960724991394248339116095711285784043143857089329185731144705158463233051549243805566027633261419487629781408006446905717879980106747475332715857653605517851773762259429761122556950113211630001210568908893068210891801679498833889007424019274924769896961442077769398771086725427422609532365924463759388827362666267826930837871325558453461771721278421150669791327862222376887666093590860127903554962338867891014452843511292553155964218190485771204968843846327244736958417684311124503312265470512805573160550369927153211633204817447727452531912494570110957855035338573914101814404394563721399712908912112821332508237464359959079817655268658365719450811693214566887148652919189990945730576282616055272501128939255361606640501670642623989358074124252554273771047366204282463564575047434859183419393903084778974085516416207734604282871750137568569348129060233779517392088915854631047072821395097274253701336026090952830889455572544946428222435281340124780654208123842936853034726386526480884287061715898488031860219727294270756528535328071593082089081009552035379651608902166528395883985052969771333506623498105008130600278767661672572721533730708478772188807937052055077209460329519654928953181196093355035825640726068984406785692306309757049290049273756759876810869612367761422115407577780717969373730683080259732068434773547906169450565600500625801061644858090669479505270562973768525025435200440987514434672866243838510595659471362379350826715645272659450436829098107433479086721683823347043384264234887410637188337169420199292434058239541617127758696505534369996150001537862837482651644700327408753677972168164990345922703127470117159824977688162680218981797962464784577715380457084277956222590267673859534228790708465885955838908269178346059182081509707462000346570718248498905707947152911084362363501658346684544758418712097701278456729937704575397847703401324066792458678676603883079482887845474585015704302317957072679681699325029834487228629020829351993150078190001046917424059846781282055048505397396664085749775692583281651801774211978011501101598296994727376347962260545707976967191857586130820344287527978479039948397149316634270851389425974924243629551146826109995065701153361653170840812775460633940659320318756265747293277766483699807118064729779165673017429048354028831084447715746885309470241917274778245846179249344563775594090246498806232946792856972272804369524435270109276673347044025705161643960261939081486540963719126305941319290527072988604901544603084479630258580402685861337818376125751580874223431871846702168147891151699582860091915173582468275111518959435670682382484573073405014719799724915290407691212788012166091982106420137004611033068549351850211681103419722720003125042348840513564895987591783201544543519095633199612027689856359576335912235092796571239682770217044688315983377508138465157565182244156666469335094616936236860699731646992558443287858255421532588926233143106947799886821551184721171017562617292234789227539879938521952798796946613247685677314452339782697131958492721962130165502535417157849302337851477858896522349467297165271880694468636997083970002630963884277065995245117564720282610514794071885861840291337368691957266078679009233157763134519183056717092362422573821666138184342713348559411951106607698823175789750127898306914930327509198191766717220315395985691846187665077383541194876071774620799326260037599017433285012345397190552456398306222090984576693928400733031598908582044723085347259094202295374387092633211615361506907449929094986854234707082731397963736210979257668838948406652692089123998193358999195013610416768325214357770370684467938186218046830606178803705148668270641305728647555268330146087413086588010893830599096686542014138220414555576845420550985281557525525936462769902675560706107909556183982745206091885638592573044031535772477963740300340250426672065276917871108844758768733084637525348626660469255855974909275643161307872978479349700262828771875552022900351289717529227511699879148889643708618870596608752346729425009052717324788429109778717729111303785302965817909657698359173870529482869589605463896462398974255283047937157768631746515716082639907171197858454386841830108245010373781282573386005454717308415131246463364672312950927986080104774236742934696431866421317014044151524730115515501393913236572154220098627819949813395981428614520809571414545281959688183344885023478840748740770479845799501379967242140819025264311990314084636647939576910652083170026004363662186629412227238629357110996514312139113426649340012810144337748408317227983548682438516739085453651839556262488794026085159766897918791043149626633159818137035221209389076906874186987504369544291576654667854307665938194692791519599370160094385045965983056586401145289226163394471040514868553795079451974930282515829892796136711436171853259536496980245987192790307935931500931204505486205048245554893153801900229925463998032965987238695014144445107180881818021457619238507302649650971443994443280768991033624116248285929067802852695574362812791285747419306273907156899024946907856194840521914048943098854558954847203638812058001445436891336767791556322356485601393499371620782908386780090825588215630967308985550204014411459823184491803027572877545590177050346102831135249425624716168674168760336964919721714756665971875549733803215651814463640823060605151008231182804593600694385099384180653097460307123593819655103523069593012212448883952796451251473428967597066395072416665887439556425842375670553901242074740531698372670523858929738003223260836205283032901820707986329323795917080219571144547894424603911572736237723250400650259321753048394915397860767082645820377996067046715760893936406205977288275505893523676038499765713784487200159140170574629744425103555788033657447965143217066114885191095652564837660274637836373995244890921530282576299185821440075477876211531917919789057945284111080680767568259943525617323129459981065256714848626433978340582303246431009744638600256687208171740019366318476506115332295218982088696226667894184856014530064495334301108122045378875391704785615602966797843225562362090753359082768958626759576624108008950282529428548924240928137613545241613593731071518803107345179229594680285582149836080002640486743951483353416419202682798179692228590479989693664756005011691402029846742216846137719250750652054543691258048686340051386137054721235461227994111926787825969559168613308101185048497962495965284461276641820785592643233337150007816898469144482518340928724890374694914386718284426283649062505202734814887804149475098207749537751951830205901947182406132191450243052426047808908460374313115661357873277920773317322899617783543190110914016087857859444524410400280667059280947565026541940914577597286948657443031375039708741816538166039359574594828368412463053992954877592015846119232464949040262032383556625668585933219749368487833337499053250700299991132628011240760692941405339347723945428394651216477466961825871917860969950045839720563058476573802143070596020413331432044903174069840976120617101104708995502620308596195531360687743888225784610583594759715832809295450319819887271588725465873325109992526801352531167937195302644958642210602487828020574735311700362829058399512594838259918477020398424723510659717698715756461554189038591289844015581159769020737870127087738448608181492045860264120098826092082081602610431944432614542653932619986573402637191747833980819472593933913969896933992123894945852685839448210604255955677745448875581908438169542610464689008989222158583917747798465621813211286422511877279730725714586209363779286627962197406068245285967242570812841801265325818545185346077867397843615365433799636304792219078378831743060255658503803816344125813235250893871650547626776067786782466734174141169816347885679362604572496679040675894741877284737088447055392008605167927601754892565849807330084114266042854885878654409119536512764097284208044435157645065829716698321886147399579621492642283294140855090934034704570904486537929477102056343959332187196770043451319716166036458112857144349741001632655068485812530160729900128781011711710463270572025015866997502785709593666551577269198603614232400965819681419406666851273770542970304859266475745124028779406444741670447646770308716590428855302441898766716735677847481620114448717702577341671020436862855256037747210438480830456674465964086364925956302780983154201070845495527478235191640177280737418170163713214129955818119929901425047402063963566606317341928259449527918192022503779576346706079161326266947150458767866527923518761793977215379966610819076209474490013093728954019372367760278193152706373129210885957204582412190834634652765365316048707696868275707532371007793025858005797289079673761263419839088341293118893873403162944875903637374156633046471786243526872453255985567935650213928001225096153224140138033336530089138041157232909113145187788480318892730030298710424994165365710829452508880953487882107858841680881024031878076353978911593055309819922765805359871277252106017455064840533891370983642750070948372014828340499347805258448898115843651156348356820226973564348856693314998827166631399844562031408726315675388179738018255536942527152957708748410786733150729840168163845357915262758811088016624533191049922461669835472980046467055899374816656227485737607907617176392605649609845466642303581540998019335893554468500166118769524333710398940382438273416830898348165117695561657706308826648742043446296931856257453022908065487689179691164068050504584085312375131472647023680039525334546069788270506128456245155031149624241360837145980286615295460380092167545698362397708613430754136770704828963534230737036691333422904585544313985407915240529514205722127271516084214118797238840910457825432011360808406687283188426958097772431768716709420526151748495189484093244080324968706933665351037808599533593749806626210744975649994130430611398765310564251487101851841020207253369028948412903078392202576590122843407327913199715262117083959035204782941258463856634899950915426941414402636297689627499832484918228839829746493778017053535869952669954354193232738683569386782575795131680256848243013892261950926981360678293420742444915418442949730625790853315153548286590859652230703947744901808079268784918449933083659795826006612962351359673860866926732189900742624701625538197521014137153470253883645278137998491183612515222570238340509704983911952998730668236627009418437475334860018505241024532625090372428732963212883002367416354235388547070521711040386345524106978940503726035509456793570593777759956399630903020222365221593575954436970345900053414338587337267024007342406420623947261092359279394074873795387625740340226866201921017223730939665036051569540751827186611860898659178831128449732047591657384967410710678507648373689850401122922099614494413267342190781491553999255721836626865797016105315878388776021979027909936632588847505151019425548170261195147966686684449685587881262819222566612852409664820934067020036193505669772730131079930170795958272549729116566809048564914643157185603280920910238517271727621501004512532493409877540057669738148401078023887959159981255645106191815698830570497253977455463404024485105852580596819521246001804447404452056976667055108519227885783396482533902950526761573145758357732376025296917592458293074517045922276720993603327252856336373730769189092440643866440728631753601933926765169036320668863988416732816551852001245564035978624526248676767095577353100507853272335793045268517928397309651418717475952864171674635222881372519411236694816648698211184929941712816958783520090399185246736819441078210848371064209859719190176009763659266170310354654269000165849775806607126248497704317201031740784181266248323011536500051529751383742817293137466845628519459897456202113337672115491323250520639228674936849534231404597079065886236097091282029730742612633540520104697248929378631946575018934671308611767459746324485109106910514518699011506047726552405729194137800046875256061865622476318894508102071807769339322362974657868645927870005806543524682116575451092246695381921839953788529128051683585293961750065790308041383910323022598979089393431202471573399614915807092090302094938283639510909752401953055823006300474216919402836706369546089391695362571924679426638980619143665422831632286104959056841757303396602334475199125388261956692870408358960399649251217508223800069942418433601534378380810271324603201295032734905035444488753291527516451419386709992843217242874226521267511531474610782537708670488471435222240026201040184894364018297545073366027543941952423492516383431684020985748313955243578582672723484588033806350284019623312214094780387370682052506866486594175501354126593269653481039930475262388821653882263157507041823025276046969430628844610925728588952605044329184656538441611029275678578876660020689935461701890628286713117526874842528855888837555847793176913304382405662558930351339339060665451991235242230805384919493225950300152295511795819164002641911804527537769934408355169722221632444855837993393573106869503123112492424156075717262507975857748116398832862865972490261200396609051016779262620105330030108087792340209016346920166888914631162276705876833482441353633197668131182367434224067210161067525821725590829920526282972168672074482452740024032087803334376804913829674385565423802329024176640272892924708559410924677349851314689728688775468356054671203849629043566185762113024346523148098521566196149088822579118527272944722057797646965394122566203813876311537211854902132004490230629651339148569755826275204688530168999448526869015321030410589459781256302578315306013111771919046923752849728925646117105636415644823405184669314990951275295005365574457014221070374467327420206590528512186695919115733735097675319764424530130754658717643673366415105511712258389305874611506585805760581493641091353816807426746479004075995181883864192507966261155159440990444252768569066565504392319436466767069127679468483330328682411266823270411869313482191166376785154456289891215794668372854754540704137238591233635751383548487186035439275557770727575502157988225474439043859585552262885678584760605949239672677231024734186690469468604856506828120822390244819315976026068485368592234440705466668618241276853357905770983429477040559444864303586288419466958418799787553357027432469153884322228974441687833952661837796277029896561492460219543222961990404958736086309771727750773609275780967295530677742518660691652315652260253890831437063803401768077276350961919919044432900698555669714200800578013561330127235550102950428292840292578154424291987874268042464187252598131541926212281396999469669597704776904422975796606670749517551767967590923171579654990060709036566250378705934416402018215551817781953203624293737969170267463429578308898202937924927832396605083910517577135104797182348977652918152219408156967247713382786945970058709930252354195937276887797139487370567584959914259155656206186685464667522070391763712747890780437318438228095425912616344829890029322563416555672630080954112357450701306436588413590156330360200060430777908823609884806275101077658626556085080383713203757303238430778875300363841068688099533392364754537910239897164116820910742985888419048538327391441365160896585781619335719074819484339847613290665094148484184704435388416151435194167964669806582764325949572287013892626252955838299955056278270084257101967526874982154608708321240219926707894363758055864025599537448259541197839782903120913832332012062486916145017969741202399746790020452198075268554603241184564543473228105710176601435298585101139706408773380752755412761838365905452586627117733150217625535902652655841792426079804544971553033519985682324941120458699304684694932987671511768691558144029567284810252092522172004993222963258897075570605346277727741286569661562491326782832895293976021398120527946367987810118727857816286626285604234144232290808610899042893913278955806595938578006508795685993152885995583297676998121273819914863105143149117639139571948098577787646233963012039973141804392381477545864876376191302802648385181051965899936541616286383103338665821624561843803059858984733073980579074633851686513787902859056263262762121896165740068056823492592641389822364901459661988067420893747417014323243657526075230715950650326732650939642536749158115660105277486699911972430264621208264601468595546281284513245146127015138696463041095527877128511233167794968243126845125160631365958348473697297105176248879241342955530379960917975822712330410356579342249314551223751932644605261283994860208164685026814190268618753384387049124708695171728539719315114655476884794937646335869530304273682853326949484605365017122419158910105798122730307814302397967636559288373058636606659063543235256985602206952788203335376637957296213636526097704616601818846114373429121817537672794043152669293850582182637508091381132005023137687483220773076606596769461574207261535450209292203479937128567391045165890622577059816505707186810406931299919377946312760189108187192443053816052621554701406529532123860238150974276158377962115965689816103889954651304802841909687005939590165450486517071004025560261382828029796652333028689805935951717730570763964309521216324279056456296712053562112311774977464783897717818069788335316961439905340559388017579306755552361977566044406944189675686325494329271373306595309918087388685937941516732183352300971835789423582843680600915889744207349315091930108569121282523641417898813634017120414943374920502611353259900944916106547180181253620435787274983554962169453652631717711470300664929892845451490527595935498411212541745383130556812740459111076725959723592495345593580052422645145231982824298492840274145953615493525306909494121338971558621268249279097631504872663673962893679227181091818142136823616555634162078126752356907302480408887549841942912065441607996297114184203557207061336621049283357447648980729952904723171926709569761367766318495518799393074772894245010491834494925037427818877948185857194573100523206568857700282298254465083091838978828372690979732338282385279035269934122977208309299411249316949302098295275315981246390722666604957151643677120480531057458421555375927980781878312558997524519776297109491779405205782375402611210985239690593953564608974391586233389291047543944912842808584787617508342235463903020341874348372934624232190514376662074465475142541017154010565348640956336286245794943411443279777437712993617016944121016569450621430218760655556581079223926308339212704517158039995864022849905393271044418844938785284977492003864175781092333806445975572325812510893039194225146090916148099024551326301605804482452889024741319859984587519259173713555481252157003535610162544547765665932452313632190491551185291221884398055542258348667331259509018218226732786414006531653116839954057789312634832749040082499690024450157031634171355864894220226293411634343237656373338740761404417589617713469396849723991957294508591289418934783051878132199480661323717755846907435728243755394297556045948559749248652246237041204460938122969416398267978145367895175286603884389540617532727223271699285918161356124116400484385781640479869500407250673399092511423923464518110968010916990570778110654445616812201079608078659974855567550633709153492063994349025094864484390612933574406473947131098824307694930250842749568094956542755362327282556641281939309126196178720985387029877740910747386895110400157239196962912006415114095689744227349853374312899991776732817959878391893899458666298269507783084829646505955080264531173128235048318371595442351933215940696118444063349445133051766776660736548256450528663370672364837832307367413595201475341048679142705222066438083295029849064804030579575948295304399541021326453830621899777378200386933903017484570698401166488468478098496526528319766023232440483589592469017840102242271576909496193280137200475535570442039879273344122726850759126820937412191845810059874781976347426506401232381734223423873362324758543836090672344166073649104187244813739788316092066300793168273809697159989751395352141597257833789277748287825500278351218290357166770958907785391522915532266344662326254913139391165392447702759922755155625175863099279763875028049286612521898074511205514955311793728259154697538368718286715671986910153853413614179940105999680504663973823440933364160127322439454428570415992589892635067081866855249868987582932479416367196733814089532055307778145054433601328796808151447407652367365897844257144575082565392313641630918963515232085699996154655790979370686880931119655894881059780255263588474806818372552895694969101613292453684864646984823289655216995070645612946883102073375056610718849124018131670642994628689344364857246957195620421611010331643500090179745810832215578146656672311456105871476235947688310334525432305635998622317516164052431733169954225279217537219731957014632720205904475262625713976304679984902245738020866239032727065027611513376373605608341968582475074020847737759631822327440244848295523349268122749653084989971020754505740061680936656185353272009374219488028165134198663881330310186815844961950400620765379850050773506257077540046710775133913563032448527297935511477882004269180795092853017739200540925071513234989632681961574095015633888945394025548386722416677312858133415181778436132680132691062997625796946342963993022983542221878647334467350981174372583249239335923083207429934690372648779159033714819962511689924670201229122285368200529146760216683643505259411599838908504750262065856560638051535933971516112991774544202307923403122212469193210146258969466184726665668191786899882284406485512574443273109685437449546324840453300494414319732375275204069845123984284636032793570186747780640632431378004349096436000693216926686845047971822071960681747668388254833283390297391814028814560361764713028569686290310891958389415360180378014451414015856905338190614179436218405716581789132116628246060923545604135030014885401451591147637885884724970298114081445805407346843730486216081189202989845208807680457036231641993650880524807993113421236408850546477138077053258490293649270175145583635931769704498091810566552424900652535471939380792464430126932287953270287949239267029854771250529075028168778784151315853416276790082661037839417523890314801469242262542517499278426308604572489591927084142112335550678858289306062641611749194531900108547402776089920544525876198917355874636362394924126668230321562585914447578116975373263503653900008106310196414569072411910021697108241940132932558717065893965285378222749142685641294601381090132539557933750242718994725364344779678858270954352798952710220525286146895827456615476215412736357865398201453448566401080403964265591664141822457135432762208529175387560816019999070602168509972735750503421910423204197669696394081396343455346122601863001087328207716770601399441179396531006960357944627018986061648575292793668668247037321595038983300547408131961077317711144954019114935881735401506307594469798120320643169854463408729543755034541101889364478885739927651798523874319838572863758465300313537588070083795335102429664429026196757259310747845145546193980370474799205213022449216111429663253082272329088150687866839026188136394020787501460056070531716040791415669873455309324677307556401126874701648156112400776558144007819107821763759498484779332273183714419399280435260037813125879642855271006958602377016034867222657409544460647745673028753775807955035662819617625490848185364990868818963385541287242720321154582723184078259734221604788469576235354253549940777286701846645340314564641997138633529939420313254001143704220221482150586782433648358430466942542092120520515638232121898353318347974403984125183624501721245522703801087989569726515861116712197869754555996866066520935655149680171252407375715147574240454134384675112481400521127269875659531786775787075194558511517708856927263850249451210108449148681885475159513129510580632530784727291321485829894697749453664368520500783823007372959201586955033989506333648089197432681291289573627634003531851859078094428756727032334736161060191466451539214785712548226513007524278272018480361005637828201108629720119558261139278197699359475496794997135268716171131035075677369643446731697776916822444870004473286929038965196169112462801487469954679769056317168781342253729318872158010147875324872447820963225068857447724534805104715034225196766243828933418211213806169214004520089765696769576215580924433054700578902948584661400088004623658194487626894853997456564646273532305238514870214194896309524678044388993893131966020156953306690914118268281399634374226995739501461099719285642931840326263614953407538176316564833125474306976341729233561540163379060363468615369648064632678895013022595033128269208415442938114060486272509049392985200866593900106277698829412834188599787760331981285332057966559909962869953000518943362343266178757504904818476611971746335309373454310664198715623833334255060810840048824668053631464843333084451132320561912682677637095680894727597424508013132891337931793095159845034408975601686939394329054508376080650681041264468619274785165936511462468996559930354544626710435419979797194433390558078808697849196080508624901476894071315941741509035995496031909710310650453417790786808521869108852523745086113106389865309695714223142860713767931332956368131824159426088978442208411041532209401313550708057612151341598036780656201511038576231750729174079950241176753543208590993890763807486180647289454818516592564589532439554590796773123702835944552116079724141673841651824677040818098563832384968909158783117232807250727672394114218091439068271539054022365517446270089669971501537864042173932841059897413434646653183002238747876695359505361033461813769364030824793791964133335759637452803820889941725553418800714683507277371156726936197081963915930607912101447624980581500752861048674936895906048674576189983315693079613366355834493657329351270338197207872098271506286968891690818912903321480730014021468504577596400658791112121818297129790043270508880369905139058868561199974587052303469213806591504983112529432076280954096524896486654696102916978436928757336182067431050875321266791085131047271216328079856274433549659218820215430773658822736256665925533772685068319732908013766453384225790312854323239132248775193085842676838053136035516328384099076570900186123584540844066302982805239761723686331328007221574756951047341016056082360264172265566084689485810925872874531056605800490817255242050308629193480286536578212111946208895267242089933155695861802166299369244173183228535249761412596991521862764279443449295857007884624461731425705932426950651218648444253624427187692971944267181761736438476414637206304590817323164214385652992341046539408763970178092623487116833239506579630904103337240242897471100033404122453400900701535263246792849885091930185530528037589356599098125465800705269699267487199812369205869658478913921791171192570973042416303950726951043591888673602456482331272851457600249341267238950420814719389684585120998047754561321090125904567687337652388528716081168688886731492392067152486408548364565817137829623431076423420398269225897443143069477014737250685755886593915369699569908979528893471273991502540170819844992225244744800044690442838681968040573791871392029053656228550322506983381026416665269251475174153727959097488163519648497824156226565752105293240145276811743717431605807472442223075201195872749279045243504677258045948437986294886561677058682787820358175690823881784295375124384449203421396274970179442420878785609079022303570148700042401155461012827816037679985971876058591379508137667588989602351835335018261743489177379791268412580606358451158757288999865142344619062714893953068328480905350736475363334260406746611255882009881004140352931910286418847831780389304278004759717109080563366737958145721272036530675475270032647141281472846514687172887800524017521405062994230680358836055158821317126864368959421622324911912590683099299462378455051078024431593290297255860365771793810948192851599924663432052411251184576950528032881991418875593063225136673262134939789642171608671918255039944821119488375106097637918219263497289301404108225551869361849919254936519904793901974727592113277654380059599198650882285414000092535846483277349896156093152492543954470717134663949742577804372786970030569463210618639715443995075678390341511238406800054079131374608825968810719086833207225792109955082835988705463259684668533632134107117752929069672407272094584665421455246830888622329633685094876662094704580056275416858210386224347497233924439108150809098058086814576316595004403523002177313166372083663365028750546847473675024474306886253948054348826428714199818683352604848956419005940442116623841263873613664093528153927389205092507636225177659290722841623325582986227313504821418013866086591754133788537910675496676393744391447864000882904660405058507539851847303020854707298744406101501856466188332726628598039965836356644142517983746269662002198963850869149613816412398175092623329688781136436923409183706388604065910532196079371994506997961940138590811414293151004665802648321135204177392182461647499618950237863218698779342230777402020974046082941418043655614949612850777613312126389162327389268560972753727563217960278670560124888276681664543160504372801665665526620963937629938502625718488068895016429311402809166910977762736107511677948504975468329146425178689686188534576671690030808880744451855545937080661255527851354087171710855812376469158843956991490142895842303360357358982397001191564083977729215112705633786286236018448785556149199506451316211848619148925577059861278766034968422625188170061965835377662312294128718505498187989520620358640819384431794224032181390365984683650515541865126754125584989904129575222268782351780846424827733536212842482228973910176112259514716399095911010088194807445658716449818328040351428956617455250186326034931511758464811026275052075675200233380751201157729173292694521718487586894524236029440891068299566038429225071966800827448242330079531095277040814152785114261033668783788009460084210043491684023650424266788029902514600888625388883171800251580339269302927467701307420158247223831860829927528960540074460514029308785916956882524614501499410044682453739376333592013045274637495327095197354496846337506711638887226914910838347994533994674644078645599239259410373431027463227017217403775581496901252630938578260929721845162688061618434449270193638953888200631856314825852412196892779719968475782548598538478450663988109414724090267680234473723488633881914875118376490364357832555719525588397543444186160718553905430530749005120983284331193997303981340673655070203251111807388901151139281225857123450262975780693000717838747301283991335256954491723323076829810245327882784253497470353788273602700337726600848476700871814243240809783741679404878148039744564606313576772710380852093207420765270048378961039623982906614235236884287878951609996877520626985293347135763274202847480123414597955191138114819251376168270054649433032175910881834676698728428921900556027137858493943479890415865147468066146846977485209293724089042918986576156147665899490631909867203876535376678149489215373489561571037321110404295408428180320658580197900862061063408277186778698875116796646446148506025043319728668876208565745743802685131860042392434305489435208868561993365176762189702470361353385436686276529917777329633404720277914885394435259439950266422723815332580209482565190372594871348627672542140568657561794385292765344735622609205105688906514337274321273157384432031170499390721437196055730283639760283835932834447465391071480383559699288710449923478307224052797159761168849266136303950566696952927114816742419058746588444249605342522439741819748193569000341452470271677810635399110101085858443582795472090518615925218714588327351770881331007759515457026702238753927012343806736557795434172843545204860767506457825554710717751428852076075330608555198745284324351852306671922536242245637810536032478397442646105170992248155525384348354047379607009168711697312766765472939786946175961390154119346446989735505440744394715826686328240870621006882985563861167408888516986039091593427102004964018488061401759361067189636313376467928503737087117396034907169501236557174110785964744930976743197276223340000424950190833317540470454849714316831619500354176685017631319008095019275535187795552811297983239219166020494416219622783942654230532936072759558653137032456054812141942433525768130965487747604255155303894172967222471651859024229075192225485369124335407127126500285550611976325374238351626255993067263966244403087349889950260294395839375852225337356571208384385275243660108993425558244960753846995981272393226319500957825200513098728784046233995069018846112540617848474018504323083880241953336523294876104853472002880784697057265747769437368560751283960710532851314425910756189527629407423068983719180657771610757759058287562211699010009386069863360486162510638770732463168932962350453539257769389398854078870266692142636338168015620031012433760414953066653099945861743018554716564826004111967976692960750161401199551360415450105478455630574238563147179468167994315664237408037056482858104175863979827460449270720635946035870302459476602831038301098825026400165848243960156251150303737746580266221655413585286334456378412042167399983296658021177718029933571387782370788478359856064324415964476254298631970137090162061209093226542458924013241107643942648178089475965277160773776901975358084006325781477100029879687724495047400680841220913394888756758944913676653712629216700056499216309358711191694328436363895925751072074833637746603409082025391918118929250153398876150837168086995640170893570989050232817898065446349872341344667406828859703271552211385256621904871015064671741778517949222837322546336456234568627200973512488084967929125151386092613206752337281146742435080301816892305013326661417409966567252599657126493423953591747256788637390907125063400758221806097529913257393609139358323292861121402827567022449502477217145048060076642133663114960891223644915408248575868971923493627653166647468372375401407953642955538037145935218556232228576206332927218314718175226207069446160515791020103053968632396639062308405000097425904659793474940203875812023606772551458536478628798048887315208216508417080745990431203543051855546350587311019273116902960000569293807652280368943019424788242164052760772341081414692061957866988670570463168837912019649568092851601978749750709201875298744872779292806550106463019057558505157670159031451411196791565698610755735842663533837621590439630644077340290945999192097918120967606336627476833520934205150854155856673987834985383463718295568775333408722248884373473474582814937601148948649230536328347384851460836033793528405651158690497821533372409070623821433572203138371384229275927784853440202636243141538366514187878069399785835222228142997017679744477143542887336672703023373797182050905420303738672206388298734702188910687820188047479721062309096617120331343915237920444404278328338555790938071325504314575686673992979060519633975113506146345433658560157655872938056330915131103315081676768642110434722535602836123214610404550326389051613894535238002946984732762382063156999763240400599650226179813012210634658451134103945222184626305488163364812822895096983154371226932525981822411252267749167109965232462351589745849731568488156690365965846754221115008185233540192592421103488574107345384048406203264392002022240237071094645311258765227973365226929435345612668955097777457332083931789768639548967904712122755647657271149490564343253972952053244838592298837446185874822972835733241246306772385245555255395400298206559661785537674455442957830204119071798444669376811019750946287869436138816630729003329237358258052350983257716589777706930825777482474804634290741710184899738935689952779279534706124514895151462515776764009893707745495851656997919024652738261530373968313113114601305770495329725669187418198135934706224516431432878291598915043564874117517148723248232252476196885134872005754392229291157819341901403056482129811693997234841698219380543641554043404379607352338132366777714936237885035598631959259152449052890151306954887141297428938744359354457805563102782275264227693610490367551741971529871335695310407542008613742673007542137191234331731446901655070013436856909308475482047799521845911739841232990810843960733712982007036905490726636860853579116584574912497349866942217062629341237410327959556030854721555748905758755325761577830250491661274344549153136073253825148220504017629911698579768614850749753515665930092905688841833320681603274700179213513504112003286411891518855814979461960947879323274408923842547348986013111314119526270527143587058099868416435979165327452221084746919859932423129131772748376866948654990662572829666942013949169430017109863090349046510078638098635605115811077775195559386467941217908176459958152839108269350085879934518894436523840616498976147013174470783779418507255032333765204514911708351783460768068274703472575882678464373122011379903868270610654256052322314192894608270416012671295098725461379503383025762391258489011377782562202697297866126972880941096147109549936532435171115332844758460776350165986648022352352218047910298517828029523372754882859925107781210965368958942473057429013925848767705819174407949092366750932626458082141498456830983179105079655266769593578682219442350779922188824782805277004141833293119778423201307413589262946253065105415336247282591271515603277513872418323368132990358061439109733412221554227985334023316226323092732047273954828116177601601845468066430654818031742973287726876994299189633391352792863667797660959200219285929474053450763117859288001154928006755926902464269426911716726517587765541707157143744839393777148130076994584702884107867534824663828038918376925749372452105907903021635460199173439914015121719862048955402207871120237979195465447015028636714414655117808655348755170289358570164368474811364418872535246861923723315680791294759462877618199500842705764308145659950273481893677051229476923619669453877051397827279498976885690480598126706193455318993531637655032367407839141081099569037186565090331674121728876120659891264315014616898563578705108881576185146333187345242545963376511979088413773612430987759355026028798471847577996930819245476224881415457654326468663153699192727267967572762794551459377000780804383394452641473106826339149895010242666486522592276687466470404122615537896637134119079944843497648128966369539305628045734050121081549568792705096319689895233594148328982153847962973569767624216985390641008788505388695394960136897176389466557540327019802995259119791700729878980231375071356941185569472468885558038246252285783197821448185507706435201641671184097057721690039216097291104796792208219447652557456497940570149896022001980142017038364695085530577293486057761225268144971896482162469935650560807255951132467031055609258886485864148893889912298522687716401923313924385967659637561501329290091873926051081249460683435030832237159739906341017924122449881620683305806967317957873747411176835071792793864644563264194646959398673528831887911199965019516930535537268119562205670094984386699081668537630960300772734625850709708701596706862782001037596901162255087115797224835857034727908310804270375251250879469712710066348703744806402887433826345198540830180556270083107556368751480963222694109031608901195009463200724771838110048087461785656560974448179056476315447598831527237753825690465993307287778162596636597624237010368639863512200427831545322343939136568312410692528498395629763708066993729559820910653692976997264794852146276208310051657151279159690171801910935649679976608748767590585925809884980819564361904031549220455835550728090431147783648681295593096879639177836861538071596840370431242852867928765516949524004128980608922197622257357365051187414894867615422794014526075369734167521032019981197465806815943907550839184419525583097694994968083866191509952403958978869763187995327066513579423277146146434577096449560494135088944193582434730057298474477682482241098302082951361128297688946116338806523723904720434371134037863657585421000548722604878768461153341289908189732044732245191887942080218776855998439481346506570295836028165768099940337404696579936631334578467700471246338352492621103874440058320559634936906553213869347060779742931155502057425231165777045036047086200506503161749335608139111852115653798470100590142734704559779515221434815938198771275845336532714333455589126057264209186252801144826471217242386134068787115293015625343393015875744907318453808079992089555901673433884292694747388851655132574725631904767346481089985035563044721660926314834991028271460474468942779701304263797893167248887762804773964728086658819928819321327274700763360911999617211754523969128845412904377866857501016344442878962720872083666400562750794011006540319577092594635212746801679468647061694083576324043878543972704238761693210641356049371986276756726858261594591722755860678509128060864893395009598282443326150739682411643115805568107665700724978160156623084304256097103910116142869513205221065215070405827410635724186684426134370913085675280255434282500371351984040597897666557400991409968363125823381469329611007279423903297160432344881682538173113876826519785804197335879415523593422915423096303364102052278498470453742187778946828126055792905463449269410159981831485834436538700433741365542697010245938075144258814550407537824040780454426009110305151429015188093994130550673022095645190758920760820997131953625533564862961222576243939344076292333088164970225194068545644986933238862981712871244458063421533824655053699628077405303008394876563141416543369997854496480652740685231866822048370464695664691446760957591273635346205421255780732505987063527939946574250128489475718101908131121206919953199828152922907424027520418699056439031699371429214386034915178207482871681138081054256876620666807367152573108899393423025059505715537622130840113691636512544736945815750651241590790078253322185016167660894178206594187116543475429980164737758565836661004051154206519528711393886285378732227624726583444065378924837225857384642003439403873890341332118362177766659587682739381109397251859051260568998811786269874992310626970250305831455049304528373112264186999188989379594766117192001895733919361549730807045264039348284306475705380208280495737867505521313291337767290090905867142760744958448551453034837560200490113331101773369575172873936055549102176414051100809823238551078370330457523457390312118784358584407224825546703645521019039245432446009703938062111185053380962564109890309747234727110529058402504825262136908308984035033280509268797771069232794944666170079346781633561889567567248374506159474276593727894631637590232499279690147721007923348540368137776679675311558098619307551361913117644399553527760633807412126188682554664369027677565805030655966653711501890525034832010084626364023160094332472972149043970935207165871057896955351273701546104479727719319316482417963120899255714967238613088387730901596168341064566933250786992128453729948657628978730031474314973171211514142149078283158280078405535642759419585720722536935962993198008192440708532892093929744197288939598978062425072826454883038361070128637636095290820359001538344786605485825233311532690663135003432171179942291007045672840352876375222193426332260493999593779694839876335038635571475358991375656443308426301715200275524786968771497428548009830422772542439098174306174974346655897111000681684202803988764918772855470530993995945373234816734522123775436105770631110991621947012130173386132941919821269204296569140798848292709543528774976066323121360548611125245848216371267255605950357345147409505987708546471906489072235841133482081203019660578161188099618282202198515290381497123599165917983397554935675668756118561747963643358995650701452659136394487260342545008787571808326481645838273565280248430448386265831063746501498974916699339713543467425989886537457013826350695762816417585213459284020886488307890811332580265673911256966015231594601322320494957674381303118575334820164274604493092076884446514826306506601162068427925839343851637230977422370289181922401205684156246267848695339343424958891285003216482008794920629205611518812772847410199000956473163087779007035133801929207974020199358773606018977946263706526120434637868944717233584397681791155150237108469653336700520165681409412874316387969416218258827696237929654205231549587313611368010038425849602866223462964490368583304704884343933901005829433293295938810730546104693349025641053817180673392153541672139340897075802149891717230733546859650676483622320033615197862823814601864732838781798022893241897331177077257167047743083781849057631872823150510033256448537974155360799923720065224107368832099670956990708185871602505631907043138162273067934737091857245042219959419421073970242276076752112882142168044133664667007376263274205668658989115337500736903554717571572736520844323773606882896952251592882061407017180987750187275399909367131577290023940942117938745647457383941533430060119541613191435929749843204599212202168395649221960233040278644268461421335590069341650307668073246906207857768818837617262191921092671185041063843917190644154993453471621280443337964098562251156544229645120028689488833390502996111756768144981112977900294399301442391391670325983607212205096303930757914118019097733453272182732095135525295515523486618705239061982659043984502657799670986809720933660931067155874521030340631723607127972596245141473820318915394336189106714673374681932499149601793629632029015624320734631657030717566186705946254903699869590128656252525733166079401369780957111106777494794164796152310079343510032908176571995586622140529092296112958666440764470795342762408500988947114610321927766274729892512491146581963573471711618510087561394645307413065368644342950340917081307115985037304849018475095972131223116288519139051959929974540666369159888723155122604868828451130970742550929579898103613344175646142923032297108511441203698706317704699844072132132880670879340844233256979618299469555922967548636287413576491293570933865409707745429836896490526864108480029958961251101485085086639838129130779871477021970416670505385786108982171729413057331315350282947866164830399646848443175718991626409963967889220962917881847145209188972968388872567241025339215584040417511018474812616677519551030419033700846800729550219694221695502169433761851633474970944357419589520612061424753964581168012487487957542598893389784737709974267680822212671207477544388769583256027707940358933546734865729557285322120578615776895508803088173619830365781493754485977597735585183674954811756310014927904557238371400935724760837907738732804779454085881261460835593742524275901498480436742688781481065443325598530636849183485299168921768413010487948275086840614886350901118498768017324598659427871842182625241134494970443247835360843428279320151777982129327178978196481854750794064189658020061986989935240491428374308355852793723555926104262709127973112516539248981814216437823791860434839891888561973904844330637733781232315084302596384083370314398318231461490471456011644425767856456286980478791891881396300765845526431205224954232969558840707493722057958002418640736906760160911643504637019957560974844581443680068815433473360378877277949151147926544320730904073453153564350180873886993843936922554411171266552242236846230597927429937012639177193672283870781875784125431113948410362494613929561997268934209235987490609980815947053078744537084892480922719509011768087476066208714068349102179671605999293128286355794053060446662190802506850675742511091477336869320314887930907259695201315669499267206108410081620555626620318086785042384453905245780538170438433023574465766084780849933748509476525927718939186608094286946556318614301802070319017765426930074495504304778386666342490222539154138324602212106480316666125048967134843489949430397281218554819455095123838292762932838460927592956517312530331224693156616470834862807796261948341280693060674380443494278511824187027071174233716544941804772764358558223242767193320858316307664836469540062428328478409517986469580806535731405200704687165736216098577886884852321476977784449616965615944086117065770654236547951647937604054688452126203022681714706905527148338499284582723382386873252437907784029732224868961950095829739609403379433913061524167722155083050810152141283204829819568691135302758063619938431895250334007559552881464323285262439489750037240915471172557199255656841266549484639257809394559896762327812621017371344313878991781521506432576740565601991253719205110626529680048429869385003410504127620276219560327961086247051446070967497842500210114646791816235782639310595446883603582623438696161822167475928602465647860046474121474102416620774458861072557353893358803747955325509877549813038990253456884639022062245813699875520467912656529298478859105888572032609448844331576926564348958304328087326677238413506276658402916897156960960649343504021089354821265535307913646802301248278739836178251968822404974800464319171791385742411066012191041368793805422243447689337353143400080685022409635502014126102424639910236964436767717426337140610126880435711410965643184318411814915156858789212709840023937503863890820597366020209203521756356598004583881895508847657585641650512204753285618091315873914175674215435677651608866648320358381530748188213825515642182275232460995846109368636299849513912675979504390131761983548882314274272332305985660110345830374138876569106836186010014912731038678497394133528299033148765449172635296485388977460677138674065874615155997790079228769230673496225167536992124886310905863465263171986188580699682014857496794811457430616408672616260720096827959733220508414432642083408942163828179030842171246860682877460543315729617188364562874466358818472000790325078908763880221410787851618191198637732650402567130198628494715694976777759345278304999663845538984100956195450499505367505943088349132438963067673263662001073275504233264559933497204414444082848088402159674850009075980541745473030650867374136329166650605080203233781170880512572915478608730372742074362443087114054846859032670927525988814785003638040470987053000626385551732007514809646000829023149686836066456356932763789554169398574719726697078279300676198307832932060741306240291838906621900723363115119409347508804607792839462656489448261097465366202164139956495226475510262064799522290688716450117773145128044891782816407694999978818197807600821390333350903346569323983848309356988841058630166065586439809198758332289518410216130745393915204029738710714966479763041576048181783238595515385984303244985644064306791440156352558257057551840356605687677557542803853438780041233833983987197305945464033084376316196457823407175510390160398852575641239244127934436717556898770415860485249849872951755458711529283249219540041224363271486578550440502098928665577534705439723736745606611732493442263253716658508695041414635529523170137193584827341462524992757858338420353319899612103124871214028840843518019171960015448978226506278472103321019165750987588057225903247853287089349694183170923006424364423705108934601517794409397522456574160017678285947969457283846904159590560770640108111859862358555418500675731304212161401503561509856076822096247518637988583368668871950552370177489417559749646727149374580382100744068620191586827512330125466382397020910169681862510946744930631246598508140784146115582173061420884162950029119250581487812541662027077185894602336234308487485051954514058514851202897041144123660223247290833551411975059519963675215368326715278507226449765263659394582903602599298735822024582756993967136407372717212916009793239608604922733147655966548415868362719427632357399686656512952319673368356989608717664869765654995481599933928273273660742696953841383911692593676237252088469238891735553851277436561664574303110760225611772979144591749972638611650215121602494752099670769803145618166096979672470544986381532002139686475437372015050034660958973428417695807982101784474702111971753323643220439901715900425827105620988694029680011615619287411291375704171618481115909137795794534320153112922694076718101885589740261572245594095291487202447736318186352467645938696138655672974796779747817504406202055921536535974035832984141441528831521270490596080676987364734169999887519122143559298243497488528940794236926839141674542950951064482870309463423872500790501388340703271571302565249494253253065103374115065538429660629364897615851998916795878444813239623342800715787128053161771618370893090442428293706944074943297149034089835383330766901944204282514540432172605018917693373608880530339040998703703196591561217103443843426154600136910277855582112950754649409301625436510107385831021839376679110621434243771216269164262983054456602143787902503233778834154773501044810422614350996787667695035551139421293729126730067715202509656325761346392335271800878149317268439354405665957430656356083711863405007844263636643966561238833004438136990066257721908956891275735502686670017775502421063546041361686248792441627981982629383910173101101985753467332260814058742156418803554294075359558589629500411467261513334986863982049310602877966640706742246673424542942734755838703092131189482108206953311844049948928638045915319373434955879830337209519756711060604998937335603737172311714670626896206799906798302653166369597907010962324540641638848653756948701954892171287136871594098626639124640355795532714124754650618117250827428525812507455632279375736600183989126866002281230267436098457689927679232490437494427836459443679230414844506999591143341144922033856311884407371313838380573034818368684504672540185143611189275808158867647159617622598621623333894062829702653654844086965961178560529165577279256954316006554621273971901609883535168384009574376513397722840170032187822323210087895146335957561806421016911076473651804693114610634142683572664656403725240051623994938032445364482568822675905759778911756943598240456589025848436450347019144045809804516192877956475359198901318347780230584827873804112645942973755914809084120689512270339794852693498964608783879121130855179882288566461182452099889991708518237846098207800707196854518259781373471617620284018744578874553096155488612203926263678994994313016815024338317303330633863200179331302829978611356431829275360607217879109741217324606235525565007578783428794063847278989504074050619496794703707897565020676475863078047082150038533283524885699644060896476167424513900542874002881002909894230515728160071681514026495284615400033753696968634778113406788976332439661780151069140160036460108610809749583297774968214142136369990161182522221223290861172575141173094232915161150917226632219149410675644335183090956742333768672066472140804058166914543861540310658488245875390634004792080473242221749091238963685894412940777585829475754293916059953198130785147354895142729342051065252784134229393317162315371541839176275648900013057846712595384117629808603791405710979795237787769707831436539834842309030750675326492135874131301089347536964842006447623626327419357188847461328683182445236380267303355400822746432935424193958359900972678927163581827261557441845483069303574498524782229533970071427103862159825050909506731933454346590100571954744570523972196441203758870869688379478807005793259182059273088862732403519684482514395138103135548432811533541270869337228132769576717566252883811026412632848271136098659020286705813243704960601303436350716109606509922015060932828375953444472641120035242673421311606629854306544070467308392544126354693088998956641996746387205162878921258746514441836973681027642307651250369367616917252723244136330024349682396740550953603651573328124982472993007723209906541933673039166920884608872424366586524977021531883237504505460999798835473612167985116400320381884684184908715488567765684117699411603664019460151283231193519682881179867335800078149021561562541121036931055648965629131216433710400523167809345923714137974044980699528590744680997592831720095955355949292740613853071372056778613810451112282553936661568094270564166083775466792257320529347449436026630709125351687093959159611435088054072090312514960867521848277215215614227796770469654176687287657175176599156254532010693189144666220885019771328482018095294572662674307248139502794799877153479394492362831437430777028217714855217189754950075488925030497291538973940974825610599947564940617422879947390351642216829180649251753855528743411485786499363812367592754686636471864819269097947074110491553275803823597414813401239084258083089544665345276347309977640316411714431163868854782938266593907492325584937459425759371239437184559484886247604519560156162934032116159912963174594032391905911285496332539535274208524282095341060030126557328790367636946324316182005625096473951594148634183560490956407186595792037003262270919239479795008313180108771145919166968921523993606942159605909348602219284046676036372324945824184576582829757549317650092587598323184551046698360510430856415901320902418683302986564365823037228704282577459376274982741497027171033639018463445577667800922518659786246417151232494141245842134534229235038010878901887707934315931542712558508683248952123897785737217477885561204578917921341325931289238439624318803295039203155979368916508010598584825483389226396616431325398392179908485246476664632362260193877861025564243509539140318106008030173700709408570067396197485930241614657800416620324027210382256648082577961850468431325891789335995025284743773512267117792764534192291876466021774825213343147578763724010562364032206694746013433379383213556139986587431333131423919408571378137361326229380754358943188706152780073985567753760351334055245994947589414780979648183043724624479023324735564940207822869278921536029205575138559323812161071260332177802569159657191012175890631869806358735746890924848123570219921148380002979875011750691458552803220006047332102412048449298106300915708889768353551163784751941224929083878800469582259929236813071507154444295198248819019026166198937037475187621505183520630495035729342990364671602252200201068387610061529172904410772779127933492656404979789362463914030030874894429150432325196233526601828252018185756778550700825903941984544173479850051767703043622627571950746725313722638407801265269179998748511366239500114812769272202531372930558678147993897325966871321785367655571969633852965351753559222464915084689290877687117991635053846124537007130074313225465303469029765908123530811376425560001148547939999947376779459688083141485107862280579796487268038887294746858456624786566713240957595816070229646943287435994749700313918926418542360589699378483956757608644459007930111513817584069520842858067809844785072141805159637274537923540370755110805829722617307966023709187461436763581944215692084824625285047266478209474412256567301208195971852236627954610233473791228327465222005012160587853988553587437304115693902259300499085021293886494719840911679593888643373093049111645750547838101049515082729652429378624758455678638978570011646404454361453959934845482074305020415054631358624656995371351267584133364356004763667914558832396833812563222350992623120572207158469965933984825271821070536753086330593669101727546252110636093158996928605086767550108284810975759764640145329843651305991401730263136397300399686905163470405283670042334914289588468650590736811706017970625861230171434968531924236810537308464818007191260909828844104548835640152547067839181064842817267956688440446339104652350995851661682983615667461937803935508108648542624894275656714725529784479751811603123037604949829244817570471441386858129361032478994084937735892500356283918610516963288890639518988287910794458915961111272037440752679554359144324178767859208813476997989099449205955753975564518044812286857241308440647868943123137886209673968943670024027305065529273708740143728076303132886466386414337307678741293951720895404327679791659474590169472341813134495852949916645115137980809206673090862292454228441565895319547903578936851710078350602868163644508843682233217892559575388334176653990340363847181876574045878072424695329462426165980741007790072803509635042087900892447692828498699097331288604315536849447963761133720178127834122698410879286341272195930907717556305633047715239361766386771289800031941228838748504084363583773657798034036738365639978731215812920122523938741560664520327998851366722178165543118461772052435864082716989401547591957674409667897284990599821933929937485604926518369973112566056040442052860401833062745247025593490590007392210272985984030818399769556696556805810425089123510620137341652316868107172641687018123414627487902533279752123263137622946407330733047914046674535623184519039885455450834138021112755139751991247658217378213857609963948781920260265051166531938183679444695066633280418399239717248775836115127670485801511839184507215422687594030279854792849694360108723523935310257729499601814015492480110183219466733882027209169444703894566190513981583446377516502625372417509237608161488655083964818083196575336006193460435435275753916798861044918318973041181224188665071351252416132783071982304092897563549993401347006960053298162260562329631969544098738695851851719304991975856600908548337621817778853969743713899299102866479005889660253650757214271410578010260889693224858247048915411248679523888217298828545938896841706580152438807514418275238268538480958426155356313466818855796774609991066303891384236813640213563784852240172091387791405183144904064404119114918921489878149380050984741896874534294564328629873516504447948019796356397580199009974507910081998384732353221191786834339209226476039085015636670292055674198826122369825125967735740984852535962560570636749188987735179421238786136649767222427664408020860992546556759872516849381963290417870145531154317264933538316041609160616965809407652481181400277331511576634703360158943460874686704982220030436256609911458571539032068480223315660358482728271273891086188843088782124369117974372503370146101984986994561258008778847680287118182875239216510822996816400961364282210022309520453312498144043443285638910812414875327031229169548489000351983841195605788415937680642950762368781664646683662902538715373014534187647453138940645098467049037843596992273813017662354746357437467916591416716980243145354999329794574148234629504884078478651195329640348802201023280032819711411605335995829779876759474418949959164508474560164927547073134426388620908375009501594430109945436600558176562214549892282065746785413387287553112225333220781818400306290461817086005646554185535479083810522807818851464625596065948411298445755573337961991726370888718266792144295198446850908419204412243391880945354121623568232396934884783233768995473587921368477148252351035865011259401274595992546485247666423164244144351200961185098395548079118963384144456040230851516468603355200286136099133582483091306161277137496123766482399738612369244611131637906205868889504021293801154608447785624748467010140033587101167588377856778574283933869111013341251700985978967397466965747940582933814242925489011951957811311640300791946804343270537710455472337125942780357779937273908318485457292774253716722060626288400055991336023374963713295929429632684212273415549147849414201341073383500489279867542623835112401107537136325057740256573222792641362370783138282970255726587546055946521515394096405922693946778099374378217237910305608395621896988136523159558888668542419470031477059355501464065658908259259228493011666441689960085018391641093815410207602505415258423824780977069400946469247302996167960388963836538675570133223806494542938632764846014710433420648550312508644250422730400530604391577426073063774151120618770920654136378470933256549603464735963534013564670049146168076808798366492875725306943195641565158976280608667889728341001543946713108923338355861784591428793064867660218613477273283499351365378536301924430149896911664428583231942168396599443242250392762093614807247760368334797835523792750649343940628750719634048165835338236857483432183788583521271041828665745343980370813950190740237543827929192949295826292313007832170241384479026055301789127298322553631986818422129667337345512081757538138542859146830910192537525847361682584702537622061152888241891432728537334332376496118930146447035199671003208974921499852337673636674454263403134993180716021543710995554495825845855090477947788878617031798167488096520645167013341761066239330949560286321063428226750580195797331083831331483507420437120576780115576669082430976548923051143541069113707122889973017869872761807805111966959500102818946072828548294349365045695910135596902675272606944943965399483957531922462883006914407803221499639541580191271397017079826492061783466118899217100957246570281042922859568656818072861712964871107716095058584499741371307849141886370079275121951630673687454068261259937548618412893342257918412314311550176921838055310490890546796496920014028618805203972446702363869450063767903567764402467929114458280981720908899737668650189593617858523082945007152298957503667636671650404136978061247574514089360756701650063295969771033111084002086386075828514625325805986121115729745006545281359683000009252631090095278895546690728445052309590022689265366176487352841562207176436692213319771338464538917030854453467186750492226244744041669386398825885559580598191225482173663577996715270727869092822806217296268036079975541166821079884202237201481247740957725823056810379716068421049448023567479644364059385757758036960451272787512309158017797454359538735953524030394906297375885681473184410497107508841282089748904136362726861979424887031094558929398686947029137880087483843123504219416709496727553245727860923625298462615749394523280031541970519482404329492077384515987010614851104877335664500475962031113341141687096450464469071877356813129639205452186442670566446342017165293759366584114438284623212869730247129123345568355586370277036809457693335628312702520109616456977552959670610738129393518137743410723862633580706712229818770466446923205186158518775019374386174953360325679886044263784454419255716108444474684433526745546262474187658347528848003873917237697763597560900415341894717364226071107562130388658407707826783810458350053341195825578126318587571398605200118786603417965742806959566098286665449393401847009925691156886921747782758415201243041871593561395637391384696490546861568493139188724483154041964879663759183935643506395653065217970901157996520119407475778676795230068648854019410904401174973914271314532512576643388817888267919409697729720783893192470906152772320906996445583520597802597311379762934923806818575673699147071271293958801412567924403512079715290961826943301113237395137508448482560723362548598934244847463982629839605462111397078980731414067121996248481830076321391757186021235083732523029712607000506571569345586786241248436902776968817787859506095637535267351489669150434863581346218992847383872549935577780951666838659211398945610627052114959148964798959172972693311537180701094051985985638766767536288178066042269352818549845621375543615600023718675662830247705434434739297105531898239246488031258505655272475080154956805386310471037637080418076292290561797052183393423654819046904551633645537776149833732144938917936405960816357378349184638785074263559742856908409057517485637818062041415375899695801290351775920412322472699409037507079239227147421874490343464356705354905220226588684032395700027996964664601216197763321072688587921419307365475663523038341526464771704836728484743247627581758137560024173174234464471370763303438722041259675174589268158590718589865839148365592531524202904126325093970545437815382605271382995773739798133602228172982084882285803867023054030798100304578510166204819508129359797811083875416988740643870982609833508156416880581324881328697848804845335219220957785475106683396378412935544055466179829879110735831694031821413217131846021404611288587861148389864536825153256494723650434406550330154314203414440975674639991450324965145859649430289656584635944683158027531101651500736143484994428644896660699504280125731123646651548660638976825353245480307360487612445220903013664375786835598175291251889707541511978110553297671904978816360969822693524161107492441575284006951140762170394245991799607480073298873783896970369586683925886360125160661545651525133899160927796360723413647239194080683464178891537958426455732504607647023626291163440015842182437118390751409835615840650892472073720740271749228159992751262547890887154642031680271519318409583515821789334997921071806673207481922636248954652771977277597445155931855603381289637662859357316114138230948353402362226240618340000473973035458389091749729332729779585572330979102071377489957621842409080506539617624147272618313419988997155428263412716318581038726015882425660651516288954122316005576940285782391300133298114970676006470323942031621451309198390132951697938870544238126988575272881163661402030854689440878240308567114373275663404381563164451371056788977119400790242572338041959376135343145976551196045852813145808629380984480247231403085874189335269582024410399195457301777887327324835292319919198634782212913475342177852282309944371927160167379411868552599483313293104025081835928699485872048491600273374529929009634526869275816579658666108075051823077569692637434606159508703900229333366821633142209570619854361518004948973387326192020319947758213960337619572015387090152753236281035650148540979325018368686354325365026725375079599670370810738340452214526495520938559627029706872326899246440436783997123573334991392804671015034007447727065061474377648458954717078257131306356234989069100552780654130644501443435479280525543179849038984425312147780052872580353759561277742010489573265197661219585612069718996019056954260538505903053328265681606401206988888590665940017480492734822631334618104578857266239652443453440753369629114455661108765188452582903055818803250051324175369725975251453085880637582351223404647289565158778797281182529082434638232229615476917081849747255051628131244340038211043300237197734094653272346385726911934199418948909242138574096572127145866609339441004917266540722735823745037201310696705588678367271617635894621521329657209229184067875963824340584057157935481578323282601394097963812375302652628164134068640017716179084573757912912802390857782909821030012781573063271170953632752370245173132755954623548450334269344625053334477667452627808905400570754642730602085915506878483326325029543615367239399820815055240539504434539032934315961294499315057776392301860728379568436524323503459030686007165543544773881407115431982725703351178728146445604231109817314082856707589634172305508482530600398481974949439261007683989862445141732803453827524858050632237925648582388960821139803784047608447885629117394234917071270035496364368985751019993838636238171830165802688447238335888002687390030635352507460305085664169112340256091734547052039575214054900557225051168426557948734577688748588960671142156579827846089097588221404651328586094709277947338955082701785466200468404818037259014889862371758869455165701172383234072560509070802106709969275184252558466528858218784168512437939987488520591425454887010113060934881609768553702834649409582527916587171191673354843566078195417840672629180964699324392580121337538340642936188049982867164080668460711416807736380661863640667914262607873156200517508626694921193755513115899052601658621549589594142667984675511156442466226319196845696160814833475045603489591420219112205616240669028637783297023941463431984876653900991841137847671193536606546136096203409074186765826772028304387475014430609762068812540222085119631084136343351835991028326316485118627602704960701509431833266385311814053802718843614028743562146911568095773697886387399560537087854845117234604426157622126297929637561180431782529695375491113477081703294475380102037549972819492629215634580275180555357226087711613054845357595947035301780566044320946664278129332314174329366154969356974440310283633485250399548153864679683654721332786674772988127602672745856625533194598193629605710513601999152278588909741351925404360139091695985431607609157204679180370546188825026433320847530554574381904488517458284137309547170864335738144744473078719681020221299414408453993486134754589684838312638834115359735126370896254833443342061514235790314894524139350372760913679456244287679142611994047137813967173848087004144154458881393332836217956963979708740630120337709087064581437762218188203685098938581908649303604360337584003434589240803484156004908316773450154378923024850543554644825986414681363153655123946489711978701352262024870330792201918778314724689797796315214139433158916609260834702823908673612204313604992233724525804331026578776128792860795055243189609487260065018220695190837433541730517767923673017244603196716730821657966903399962623366894483618750313564555057669388284968611814416963962171374322814234792208509152774099953326816376535073601238438550040195957008869403350708475230561811609167189434609766895865122983299597622364080765013865361692872740935941536885097051215764995271234663935160274802415540163690895748808847699454923888592101395655394866288364875314269852458028364102837689875529200431298575002617687984735565081206922819904236648747181522468838883264322037083089805264075282624680210845884362695914818556407503966550380585508939116540535190933960478121615592047664277571923053732225146353546529866253569952306989288427233779221154073736163680551601868028641126420514528933671598006222858265617338223692536970253275786458222373927676470787237038282589143179366527554368452915524759842879822144637544156005327915899955405487447428773946855856241963231460256171180872490387591513684596269868118444996723216490640239065293768565932914765046068201366514512319127644675252505249325131262697596023530076690935813052768598687888381594456424745759448003299985252950207336219098162170696043530909890072468304140172214740622681746351502973335152957455961503556825589037520341782931284880528868167488644974218541990081594076987670974803033139464116106485864570094220886950574232985363872007556819155853522828442211181816974884856102792517338954262822141275325882599832693012263134095300390569203077237549140931801162167085369951566233046657227486564703889367215806318463591718679699843063098575371598972032819042206040564816922661918622225326452845255937017175811924248693230173353081725896927432362943244381625188603868372099223772782233728732439620129496771604402164656419059665926820628288491087985237678068648474177411651437959043797290778075297638037079615596783641235607987341568087629200413207798878227237520195874438325522261894880330875880572606502592794233459059721066223167194054807997534616671568699124608458839618181483096851859457383214288552168307424356399567410397966550498088526623233396776391573718178020536525241974340414710199626121050061766274488487014205279598553949693808414071459110282499246217486490567419708350939743917397643566155406083664975409940572901877383989971094066564921093908098226052353849770161768006500117376770356115029229260023766185748021580521239147536341164947984766167222671019067898422339353798490613273609684933127529475568089730342584251634385342533736687626501726854555024624061732443282310918397969615338947669249841545044458142248385609552854655302069383262544203039683763095250842024796433357959567545234614824498576436235584594610845881742916978151252930121387530246191941068943461574260723858171968817988805438325789885351205700887767015768948911199229672277886914251808567749049578262645668834308197295175552043007627008982605424023950225038387177723399566460148308372296134852356085089781204330927025552321525013226580674992040357945193023347320407836941154386458711180593379394578210144736154258546979236459392622896251226009713365497713263109974472039902900478897492995834942537684229094174749544191581015988417438542567847549298623955467100213016942381601256083642600036607456439133786068489675911415714190877753163809350520777833423796309641337694602107024089267407468654389695273577620913597537760436645178251387921326628393610768911060513695467186730637975218005197773055557341532707108508629707317985735038854524539863181405922175298878795142760102162347176207082937645598123887192346025495584178199039687707438480098182278657989058035647210990793951895297388309494314954642821418160451145651307622574372187088790145383225353900579239596751688280383624065248578183764366279057860857972197653876132896086009984649926877214024770061791104249546860898728281997057779937486452988450456833243145420958958966580720681830959368178485757543154389449360634444185729543547855247584782549844907175446567275180855492148670045090366021971670714563081163942545205858434088112672504224185080935991111517349970121686050801797276702501774669987746178626464185992044013959794106210916525655615444918385397850035680094298438213062347292651916397596485648745962003380075644669198853823715557562461102382276486718073368042892289264822618858691917435750947749679526390073151630284901755361939896418795573583443585584770415229500287120966932704768386353522863443822872458761090364256699124002828252136339172735454137951359343119400811494120437984060460251167276544678243798283893266326215682583155249983126495983565273711988961341946933284154069227827769621364223690670895860107071957381355967345041313995098676880412224769937893267364608474308696335767975515150674537379567091960020255818320305089875396524269918964334808127875472154523428553376928868000633634600565744207281102909699400055190287397061834887958667125200404687965882950497461984378818146171283037553228453602180764486047846486764278210575850125525575224041165011280720341902546247535485504654802456301350849019611096397098200727243215435791469785633266403334459897569506428891314978904865291898705181135999284341797861420870308806314054337686054891726093334833004701087968990374143349227511293062145592070155354178072329317944834023434862325890130313378469179442871695211861222003260438517968757202854010954480009773326617293936297082594090828167719571536624119770276454207076248197647442504853810826070709136808757990695895575304875164922672325528222539101397686110946614876287054982259856993193405804319528845267597440054594322586789595267332256316711830889179907718625658256164206596451644790566771204699018567699324763217200473268246820453686959341564223215062511727053627890630882520323428517580136092932188525788310555323374144831580347273215698361956897644445055250041958335028036663543326341927083568287885537064642571274677875841198152914891078507837679629082034211093894878173167586496082324137258834629205766554734286541656427710933632412557739164722502705972497132064312578464026493698723568813339765617827462390609132988335630703240919306765094969303951159878780597660253011065669529831851063540074861959421781818053060152674731547050847595164350944760391026597665135137482676836990123574888835230637388497481706325507317535441049314858996811019810403265409841818192073465349866854932239097675245830892196301004680718594840662358685916968852950836893921928850254717924942464103289157822664388318811861159260319582636535631768373278479476477349170053114084266965344427685984673055891442219578884349951086284656840691237387975909544349835082244555874089704838538939169236518352460086842560115496523647857780469841706944542971062808629827204108738989808421153505562322942163578964216236822483940346768720658547127004252374166416225052105591190415864113793763489731390308276165003219008716550322362120400843215234303684974447969233879450039288429206362442102225847154238712484355503224213392943416647007903520973796391754282846221705766299174563633477816082028940154941957142056239238750036803264748507024072207745173446093724404170432413477809297210721631272500210620939200851818297514073871087267276335999116478719350887388719387569033350362055225839972874748227069536888911095640050966839767048243129635521881945069315167261898941391683242445377592010468777300167963184445729901711857837639067147795415471945036803327549290189899902794896395003640503654309022961312187777087383303952302654352124374752834885675100653523225066299907309575989637319304918838589402763933238411816219712419802349230262364589613865653429707630448453178313365273271074476552010489609134327765592634031772690128795315528580939352807491080273119687636514095132232438365699984323805529803887310897168334631854519062397663336171678346124537593170294149545671999386487032088702069901869206619950046513710183987208196871208550625199972387421606702435133752628422823729356129302720554638331594824891907444712215113449726245477917224522522081494277511263113515224586164096999992852009092232836810760811169039643174582875400291500267503390437992993024520855562008724688618472060701175403658575572533088629773042812530663401976775228701119359276776047437279926439840562726311543698648497172328038445567729672117749264789334805828327117092959024833769562209512574260565483215233163904152275237778594627145493656827510391318878676941185469203451041624506791881041381321864956236972583500036304741612161429995209828979848479783412653715212882300895762951412068161664090489175020809477365666763760752934394847070191291400903898979200728464900328637029073182921154892202625407414562047052569330507825487736613089004673577612824351982669336649715132764633962859456678043671954559168376121814296118163940635123154282015258876951995452705332168580170506950770748432741880075755855771349412381305738460465013152611250201918249811406283776027579966724858095655436118134122241650103639411005573664432509772589980322334745252000351744010453128074796653514808033695384082937064424639598682820161015185216117832106316665034911630013027210117681841825269694110215713867939669087099190661653188678363412295166428460053388910544093102159649415254439033299274895403807395970076446746503891168009122988893056852741321917742547459911193805839735578694975855919153580615465971098113674318606500791593030355693305540580879163016048757902245828041862166196004005300926516397528169191531245910989723515015119857418429271875982610850939231279358585228468690142026089686415221845408790622580654792587704522150297528114314337297426864388874298213291248465749977080824414391316557292861910393797737863861094135377359537130589908303179607431540139993810157790388304589076003273682044368016603775724392636974188173668466444794647316125938043378346834122058035124181724546705977455603286044289945084345075747360391155714651994565130671882850009676219218951265614485449278266362518629435889047589890975730827461086487538608585455405786954074263916673982148527516245325730337356790942000118480933861287871723695832037535745700615259246953310837433786981115851864561537618076426277639881580442523578834955618934315181167872876774466366641992645372637205789480051814825156339632380496367284538046679541267614484059500039147051585434957190488040707290098709563775210788692874254989758093403764480786955240132930261040639594647633663760319297565277833524887824399101355969523987180732580474668669370312333016707554452727855963530256962616473066617073595282826439277193967868321328546191662601807558140496874152091007230899215950834145254856031562343045688677874559678184294212839692826826104676821314406862535480715081195700460514648773093408745697877328853696385904380034289010288303892868853098954000838791237503454882719717376339520698760628410682552189341638357296253751233495265715425374404966605409038595822579222626242023391297731017367521701277910773041547663461741985091633774863151329423185697219127364315591833583850078754568346601088849210156735280326320440191402374880863032859951485971325694181570415466775398827081149684818694859060653778817346593143878772508355643362088850480839480084146472158954460156460540566936515710117863382104325198112222470215891201865514998070878680758112803863721921124099417406419582993130713747617788447385874145412755141698153433071328117001749904759968427687817347758379200229950663974857846150009337147241288948844440308744639068066553956966866519025649158455994510190486476825304080776822974445433179653739229810854784912558200908222786200456764707877627091967640464580941610021855532178401658622982825686767953344673641673039073547724635751268822392185007591106187123749968375266206472794192777719863196547683803198910038515944400165432994658655114477409792215290078103527063239035050705496264664121636691082783049155948711605379209537870586295228673415945511589281547488098331173428945685472090196057623375944315939617767907681097407896627663605041928722746695421261929633672991945470376149189469249246605599438992143995123082102125813915551546146896485141421432150211230402439603439739348614768154239325445661589200937639683426906536295448261712388084199622974418965061437476321059821097687521601045375028960868783762629507590611870961473974600896411643057691555439099541499236685991964325469216324343971766669537521596000333802458469795617402431294259882306998527491396879085637652201632295393526556064398261648875471871422984457137205299625780825651409234478302126501337173919844880744278937581305833094523588646682842937614528125963320853685928942163572805743921552044595695919288654543224813113559109270427595787339868118238139813334888605141908990871491176879767878087678397572276726712901798924032357360284458358762993397594511996686046849326739495290879432538070886969962068382841940442652188681265553260146754566026589395319726668223962871344620059740167432448482114119383400484152660764047934825822656963738217886348498010538665594672339645289457150209279137196527223570793632933657377346266877372202608445447339673864792635061744138262798663102863551443010086247578064134806540373591851250700210075791946730919751039457041244140171303043868186193877990551017062679032475890528951856444929798387588077311373100943182838683052951032698038535989536062802943293775967094111120869417806247345460806716882991332856895438077688446648060355223544867676008096988895367731647383183763140093202028972716105424936883629489183836546709895801877331204146238047827085519974209434640124633019146544937124641629321934052449399069071577372646895690704209644407223963121487279231559391746202681233527589279732718074759171321559843381246243035724253169514974928477776650588076933928469548485324890818583039192969061055193254114465775002881707669243900882923345014381673396319572392480871204557576635792814292742205812768747748256666733563955942124919226996698344336903081686011830603150101414013481647982383338860209687575307624397839034271624481984492047818128525474827589124289103358784944458658833299691523704375121395570806438638155215513059275690954624317396916147333480664597516947151979305174003141202563976531114447228964840640344268233744616940449051713402166385963395996185775998453077355857423704978817928097693541121281023608406666085062213274565993660595130308146703986720463300345256880846526517970103500959970727367964795949092495318706687658629362213543828543919730909197063155145975661820324170318030473622626338690821312798100265089722480157881108441645521439437253723362767972272813274375761588038866574432076597419199564437103246211788831119439200792018350784863850124723261344209510386689962060246079722340114733005186870826656532964140172475841108680520277342180349659893693504856873153054846339376797665020793193475455606398158872235679486523426158181065045434459515739981165053718157697826550372361436655062928419900326083351378257965268280883620615802344754246888399273235748897287319201164737392279661074742566816968731018691775323852737199457318617464626005365492047663928893792799462332824926499843342539099134016466847156746728094818626090444967102710257123406316226761518731559388962213005550061957932320765889343773180498450389886412729161556192270970008481141073379920902547467966522927295420718751764164074655540904717285708825186874118504554401436319410393775006105010405161077194960141078283061682045009082786667152105579785158664098607006120747250050232447439652552902788710403528395594634777133411746288845263198142969607786509287144952990970919450920108221890914197375509036586267887614796012448094757768093718384631781412830499932509352986111776599200721047854189688426613933645453359940556195618671832238379755210839112107963949279830612743618863376062261633572789932011165956856444714486687265431922115038011340007165207105878071726506184171638064802671945911773278993230562219677204758419101420399495864174893022774870775029407550530062580911746205851763611064721451153804184324151782006329319434522283392656288335876156972644283032431659324687883028135883771001390202150338757656406050306732779779016985371374233432651296001290040254216035443980910059062677833209907536415375995464019338935449848790013386611879857916834017946028508586766474088980167315754635123907892383223203945652017285502631844220797223790429017060257495930104998885140296681917149310270601611880813417329483017768233693212039413391426754391432262256498525751881539700505708096985733115829658920614492722669046921133189256778149769589175907381404642003515771703592152721609005439469656089768180022265277257770755880610228397557415722844603250798481048332964212397085335283968366842660991274232048547833815719999098724523088925516013391928050860762408169953576166704091716191858217006303732470235152197724724349262712718391696035991082264469627151740600560742741627872652782330322927995816803688268191981526437398147694281934414057556429225570790842966964442211283253662910646714959787679703784368877842002027665039490288930591372638122707860790692144987964946121783159374756998871436258502138433085917289062367898364388112384465124986036173084300459582253115029478451055795915297520762593399795008106843321024021670499911106463503671723809677007420292635874873990779069183374429574914053099254156088132957150049624977518191983794274119919788361054583867167327772738066757115807702356592189369691853249262784052624069018317155995032590148708005904913296978308123693135827214914598331528441190251061640823325295661274915037181172690492484859502624163705487994136608020055301012299111160763084525786102736714082324823429745184411859861226542989320134428754239522002380314135462605103852061683855655803811901433690193907899480495670918055486711846981735319659804835809623644321296666679277650078737522226631931632685782255489196854739433755158956533759136917134829672146479043832362336750044991253795285649403613116550723946378704266999289047239862933095223483994376274021799408914827676922742434524660415045043294756306794470618247618461551683822113156168142375177199853924638678154341940423508289699674554291207153620759046304223287517183291233842356200435748903656355086917651107253415642780004699997006486728204950038231955309882791688435699375112374149805439911698734872801346097105221089913035334964325687300985780573879902646416181119801134866975243470827978273748628292973624351376269643407909415405334466027035739209974725646756627476687300479842551739353307245206017537569769261460312192954046523095151848568333648382377194408033124911269197192122578340201545974590323356748667002025510256686017175750725623184622110263819555058048987924600324079376409657061781131399415110843419633077894338096637947371399780665355962121026357675316295080344186526133557134559201388509310845193632936781498621459061411353966526188654335179420350216118679699811417796205485889601254987411149923752530406347136550206508480946250451032634057888086853681765048362835227468712783638860673442562801196619263036113481778112449001781007126887498649196568865536624456404432890820877912521544083638038693065360638997353044967907270873925475226898032719455866484753649000231651116157461121985341592910285718112263738157006079500472552045909944019822988910266789842790928683551479412168612696491118863172112602200839148040927995821634388788385035765171862556783938007609808312326555062491424859558390929363093577483474044082578365042106366527877449603864112344977227286700001920573951454599913074503237643501922353332592986585056425548797991295760528192612739317085423116495268736645231585424970565622933573394984716375781898698595465907170922257276857070948396024235512152933744660967294240318864995992012639590584259763580418803539263783670135084253567752522738181151628449925337752604180366439226010082775020721004433856551255274343820763773914782008334528712919693615517680819413198166220758518928940191177181504455072208779892845989800047259083047586901919182428857379406830700923582150899943821241651077043654788254112864397676834164115143065751725354320759813646743279432331092179512969908825550599060725656345098718380488892777517323509611932220874146938600678995154307280812436639690915424075247565836734794309334714934145857626691609229272562738670999783759044699944728969364303676939391857943199490586980157267319016774295271491087965369939202211000240111867796705405026740621788380102857376814433821189333380729805845153381922186009361137343881605064862975219917833614980746045828451632125247703521202864754610653870318543160340422984008333331008749109078054859159584384927487763979372564861838029545222978582504449396177413497013716942121096839132300878538580177709617596881761607340056401379341659555287961717364481759360159371436289587490736522076338362433477610441377351558068160166426207350352154025125103525867410750999747219357164214280847890860678411432026467360574259537933613270593267490094573773295648134180475455838603976820779281787891142787447646621648921976728262365799118141264145697530746651263174494388754285093277360195144370359860185694868459403106904910454860628368004597640288945966647533162736886359903700683569661764531280941862482638354398987197387912159766183721401658170141516713716871783790105836024342420285994430999847223830462032075490996253246271862520840785323091304561533802166714462501734292296022449354262702553890843653663378733060636298085937689776677484630268936187497802644809680828680220565980646617084461789082894193994408547139932010265972669355769227309534847987639914171360829337251589844794680910690167554591632704666121852995141407606266753261974192680396495822510445119095127059034518982959676356475296369826025624379646870758515860805756929216359288040954549131197564942355985047298082433412887850778731433884838115138464331836418351231433816980229595126146438477127927334960375533949565740558711003276808138565133857548765166148414155759320364776166618019770108486685951372168251118168025529326734381179499485708171132824904880608579823712638679233727753846696607070262378822536279772299184619071885435979748900198722451365824277160173341494992441749184644683321877764716775968758771405306212461149211429078771230926770965560190460092590042216375645146782615992199339929263640238294257250540193269923865932656271024248455235297126952608909927051350956873606756127400286353807025418375835287675987639539267204143674840703227003493168798959881098280261891129830789813811946808498150078661438742262009490506426857390232913467815192345903427560303859897989156638395263124320947805229842194271287635854999525189076667884427328833363429502835005319958377156346712921046292530520654950049877982101790906760334254297763264204228120048526542465932517997516882847843098249256578498962657629273336312235644941529569098647698066612479761896946771715167983286717946779029908370319014972113766714764625460213825226500414308020881695437884123727467919101443140535260711685281398455100258289907141355209772487898130630193330863314258283966553528980815986447242920747297495380834174182131664647085454295839564998621099873860245230995610302563881672046741537492969153209238884501465766675518209829402252163678931654825885362201734172440926747576416680197662339996661458788776214452060807652290493533167152543051949230982426634405412515683434235598548725738646882041902801997631034055819070586981585088878341160088501459978786658010674373284073379842410046449226453804544998274799705344653551865792208451755122985606301233321188502647832465318891609932571812347212901469099418448205274922209547315371255223968682946104239480449401597615978520067820769490784614405209464742449913324585764930430755093304896926299420677640341903083597196756941190719819947283681505766024882890017023381953424795009622892207594402396224892556602291347056932256988762681486962645124326993674366401144652370274251316271996909756299683796427813310531596702248207829555281901781515395244104803434636002073443829596584478517890693615431382755580494471827078923583189157349547321516834264177570140469636615870852900503628822214263381924325132892031072491262335218210120668370994745236650136695791424840615858472972527140012471169105476887722835728984485543701753659361419634387919424717238969766022148752898347463671571494572719037708577121453012022246061421662224025699347126202841475393767289804273056706985940735300996030071069025113688442368671095038928962359306443805364742098997854247169404226911139662074154813220888291211400933411481963087939180696408260951060122275052634504071431387122577860959448145885000868556646312679969819717513369817208129920406789505981255743832857574846783793650790941596148308858137522450065273495825707735456200900896570149547037247893945632773626972134048422004418141110495332635013801484488874319189062186065521518468447343147184683822489400956579818259459882701282572566256066456223550139885680926802096918068838284332120716117935565907567062163602175287523520998668515317971304789365622266265994731241137563142537591935731715832212724334841809986297957535669109738791410540799921260798163760224705758658024051393522137889839296829653761019908229684344875275161675980857880629954639104548377903171095401952485874569456855059635448950002561800362156441346242143603118352010247563633495563485958626404815282003183707452625233469113265445599379613735972897245655435882254184432793646528861077516335426268594308886355359724844488023926115291366282479019506790568867506670223089712376479354858444213726262954797393536430577957301150748079862976834657699180537104871651124808447706354932889448836255566540491235964326251948424521238946761523270806254115720895037970041428569428427116849907863293228305852780573182782511465537374021962903715328916769518236360134689824732789663901746248094688002867700995624006824652170352744597340542616266061163530968007177589682404802217412379106145728967211216627489284829982805211638689398842745800035849338490548094982738403774665025453225582414864726669074056503120118447000275592321072964925646843075344883813871208403577529816564976280170005019617097241543430607669529569118571825010497345591774648048902742380364245060055902974150336527136459685602463750943563074767641798893970131889373552583580297398499094736424125375750337784031733906126276678315701352512820417141320758656181320663888294547525158551040871995354919922532676884341993454384611708415471736457024488900867321225835632983061113324892569370286088156264041818673922799860733996879841748322607403968955340145383301347860332314972090704602990363934618725323992446349208162353047014979771273725089657072510320611522566908111249508307885718444814853743963339002288376864029094477997950430020607607458505822468896562817036070478020221191125586670239760592659308701235128038694150604575216388824513126228477323350088030260407628542482321054425043458853381087486394295303091903912543837458138878010866818495797964445589543293825342724679489173050406796472810129435916029728232865100945782449923950606976917371824433301187982027063743496943714211495222186113563762895439867751903882294993368590432064834200607416442439751383019431884276775738535108603123921178263526806353327114307068365643515805203613100272946985623563615079763025776875167032371875571954808729802297591102135497203264117615820068409265176121784562574927019626181096686256812853615065754520986311069148552034194234312842209351594525500453948022616842184350484575350323674095212874685004318536556135979578557651920411097005562725467026270545419299390475325295391414505811540697264022596090657193487691488932011805005024712073662267990968501076942697124525372301595634267261692350595706499050463371452683466466871360179434776471963246546873930948183658558289198498412957811035733275622860318801196839889190478283801676472585132394786728251844607355947206041939454154930852764199261012419633861004560230720667101605603558619710084204912351946546327134794353484295951691766395039774883620748961879364713018634948067808348313326184280104939216024604988811838288447775690444068585428758536634049691874151905248276065348081284314097998340017158770217152113031546558579318323434331172720801393812083650789971520225809588425157958206819783673330963591662686355625241514018493542317459998359689835766119935630572020019154422130953064960963906744740206997586770674411092461739908867852471244143533080089505416076487975146797990718844581438932238245487266754750893789890766166409082660734621264407766213292889399350602752422168679791697685946247792010744620585410242319352930440246305849052784951827272189646427169392545287139245874960096679814864008856393377252019527407067911600439774143640565471539292079927162901931658934185929126214828814340560060502349897142643390806479035170526953510289722429331239001859215775265560212150996259307235935433856433982023145728466595518712684950016560150425742321635287083904435312216749013075677687796645443789205876598826118325814209198391778212324848774542843099730624623228995706032417619130012973617536926109995369621365569155854619593566824886593708768323600229118521096773529927407440876585490914360205626668506740039191534549189907466652948381728677657983761736823471383515428883363114919709206917003864367316077599582456333368697871163347815995273948839976338295305580121660776427128056464626827526128105657549753434064407679620511738658187445654570069430433307582514141809813032730390957178088831030376141158582301751047503598552142393530313598854712561114559094523375195021495440810468104716353408501206862028663413294330864169376243400199448634970096302134608582602914509890776122936863112331035069930047869365226872928061366202672741857220299148528395251526180028770241775294789906040241503413977448593037276018540627516938931559297530280494846250698355214135871068538338069558209754404209377231842845985839752289599136994532405264297787388339305938076714323677483441923069918261163356803463262530361836977008150868960595131860815136528307960806624549987104860015095985915482589382990135256578390775225155702514758701375468333654799296436748322459552574136360418346726307967830647053597918290511066794009281353257267831140094703271797399495737643782798637679544170953129208762645802796015590369438829423645704679184807307287376511158198010089041925488328873530061276627000913500196482851292124222665882184739129854388605882480222655555268415987824730949893914142497080775636274730003724145514320652436577545762389372167077121184016767567806140293288909054120383665032472199668279903754223216676775755675598037161004260146595430164725578138043716983213591938438703174719879688532055678831620907438106866421286484978026554593849499107099820501229829060818863424536709906559439750873750181741799448802114910995283468929541545429939562773239094439410011790430539264092409801159609372290066939908998737669653400941769107941832230371575665355052898350246993275137024178491270072533307507939336937586519503471367723393704224276769575274242279023288770897063923279105109018632298716718599302941067663553782293680981575246648896307742551402012148729468433104959632945819575502292696776314259906403379201686985565352440175062929475661300365327677335348800719147356125569711374003493235953892043678916395744517405459341487970114918744260373487774534878795606747185957651387471626676119202063560486229221851780304848877635639242115091238749836031402015115620162299840099899900390479292582396838124427150274272822537616101279431535404524575007457124319513360671736724354438522823827275482526791706854625340911947081809661929610143254800505148706128499821915936759767136997604463704989847750551393129755584468295418599373452303855458820351009236969493552352980308501138371528146867933836455022268011501061686903714206805346323720183187799680044479767399318209827928646215718686217647510279638553043490986936094593931877295636073225840230581107225399622022182297001548994538266983094271436155911960748419784583041256175491233740403790709905069886437665113902849666542769466296752577812037242853272544775820579253785476976944257670336411577361451625845736340607644931485761383850435078728362913490585467494837071339571669032949702907260568789063627586255114060616680102600297895561841386603808295548828770484565694630201090819610356326586257599146978531968795456406426748220676953306050955604950385716224548505772179875211864046959416176505374220704226024114873694226720155700699231025208274938645640042794026958169002973077592399195178018161764332077297296691541718193944895440364216022183123295766933719944110803985873644404138218800086015511004956725397074281158731445354895843015006917158057880087754162743565237492504648458651707205636646398262188217158597640838684201021593487837719420030587628855006023854577499656889572644139911409115896658662712126168364336968600533524531451133153366711966753900082889069947758262168410297956202664005838746397308589109692362155527232840500682366393648487794111283015837895772340895044293079014898524770838527882624363740718989754898192362399548205186087068446713260829355693950206402641528336526843821016952200111773076324252938067325295323022583371213590965512343890062977852593404830172317974789225538197214724105891051064790508563558146497979654029371290729220248411194645926788307229254031600968186307426527995291574706592372199736118695378877958579882271033936610425742558920763566597210153429893648574526663208194101698724694778542613784080867196202055032165275009794055873337376642337673002513292892174164841514859885701308613942595433928983262321649490590173687740699987971509171080655008534997653862340472193821126024070362785121354394270298171463384473796637823900862257498436265396100678827791847299431950248372472141395554203645725665865354996567780310194507207116797500560565898961331287362281355502094172331297507949946347709052398271720248357101555295104337583684662083450370511822468516032380726412798137474415629983374308531275597163315110859788635691429228228897100423880871136870716239295410061235103544605473944696234520207462506339754804611692493754442130055231994641315923933240661277862436034906796111679074088397607434280447256824152439915659169713766093659186731695382359559239835047505458810876750375717163508430007353153575341470210322899440064798059313135534978771861165627513728937573565864490058784197995430844064909734966607757816555571660073396417324570214840380724428286089864275142549602695067918594301294422556104717033684519665678906443073833918230891843931640840084593373448008811093395396550204603754603638235997760442937464973432118083588142497256285158644381752818499392422775863408164522093006450107171284384339761728044936882406587235483335509479847777887620938448252157812335462603529005903113275951386176826216743353439148266178718614806105516686383466812916651080391206005193089892438721727096282306583835169741563618754770122148190106004114180885937840321862724932345067112497999873811334351512399360296614777050199203801001611127066028814396774889441382907542017731136539067459945633117718476592734431919771390504126657288896928983738597780354041772968873208022977637510641939064931115555771456724561960766426748975710047897126138486322589874865957841630071804343170432855965631427317081034228347673538156268884596016826045488676648970178309046259363564372125783762356955214507813407256191302394911004014547830799583953775720907408482067792725645574494110949661394442266813556399893329323496748059848852719955041822858897953952219123397535199575396405957552937705447534442621635721162059713262965991569563990997306378819568479569828435628037795869116025506596847776549689294517622523853126649599198690065206284358859206259834921610818891832209360971982800194509739485688561832041417301886337825176129281245638432364291623315575733842244720667320350198162330460716231453976454061502089366321621563615552435583219045675756467035687806996910197907699030501077597969152188413655008459039749882381762781159280244963450271447840106607211884500549101186492782775495904342615863521309138234003743745409512991228529148651042139543088655473030987772863573781643983499231199970254423746481482053996913536296445340832856135584800068251382897378330284236769409991155930757829969433334073242673259439263898047988363817615534496400409823788017251486036567109225215583127451964767264272518718471244523541872740977013340430468250898857682542870530192725099939267545724604451035645425560459563860281757994156710956748179787866322920396942021255194609123229394276219713067164737087237722610405593655339569018298392453260955577406162545481422787152973663021618418475289642811505670171690204143539629189027133130144117753568372791312458224016933028025438231493249808407965389919531606209331265459051074187399385306679522832238805458842415987203202995548534816810157974228271171350119801438018269259213236560068627352652600060468500790296315781084692247287462223397521620614620007266550774757798233878341385818622813887309810044615700309845420822549153319597430705237842112098510613426386336727182227101891523664924914445847974604083480583910903480329409817810272750405040356747699248844040495968404963860047403575706050649818586482027520512813996911719083838762042645120535033570645887068501104727368996371524781588583820577771304732487157858259033580192168966212181323368167317011456434221122673734592665850769879984439091560932040314869804034125267596707765637751103759034009572372639216135913996203447053718262391365842897727616133509902864008861636336310679504670394923950357614968392439408161718814701454947298352110523160326722333870667773811053372124102471150904513713118262004026460382288077141006019702384985478660218389447336320621569922471679388202381766525410777302196966738201185816715509802607082960268704843391655947379619839654314678107628872609676806514905281875608034172815947635479452283529906157234790716992479197792126123822889515650534198086627852665261461927594220203346239831127538216118252304042665353199550448461828984570242367070019962455917667031663090801798116120024909663291422066969454622833431290768678534329386210082979333211510606141265418266268948771165250272998229008094994974348496686126610208276606642242750970272202648042211225723750311284905517867845484553959239673920410250065017137166310714507034959427333179459897099928408048980074832559998914180281624439298159474596239326689621749341008825295855945091768817735766407253409658953012446477488583634094246291376546087048425416335247190516727672999317416612566997687287253214979046369637391198160389584300480693433101122234328658220896883916523215789853703131739172100041585373392261543353640909956893733507912338895806922963008562830962872040849222923535194464457318464292957209102621094844045462745229454413090251143171111576328859153246296531821065111290165772793899747880382791144701751607029635311637102054239881613954981891683588249440224217404297960346610014661062374975231064719575260112179156836003959974013742842420265566400930658638809152019025454721736840110498010442391297200353463497788837402304708225632552716836106502006606344839507952539504939822902655796655272684880142595914902211209523623564466169767870224343803876723520746527357731602376305170394466555541751753670869066291200915121290889653129844038483940695312979125643033471396098244019263598831936720736583633707866155473620967055947351961124544731908774305613365478384019244328632944969959109791431056773267159434899966573708279063081794833641180050606522973920222617693989518878579654942148838750516862414369771397007206438479332804783104942113771542400455692448490605282900520910005772763647768243165384273962186475788991079029430860597273855009419491703545532445016865607293921342266495050721013828079340145678037515303719644428745493356218370331502366902313608796266865302569432458031088052428906419163166629960805124053482156427397903115502984084154181414449075386344965914243789416638156481384297430612140602577570936793423295976137815983017263723745414758103159986633376587424438657061800433062722412198330188831319861243952496133086017408433341084304954075984563608139795266801174551701706101484203159192588864442524322580865546668097246174283777796055343249633237246073702016586416263553419295654188697613896389333076495797428992768710717973898015630974172409899561933866375000019304880788857617342908787939573582986068805022967201945230846804065993283780145442049063947532798456669404493503326067184586197725563227852879877276538185080818128654944332030239931961163618110156091035522272302713844941861997069340312443814383898540132350044966161950484607597565452369206007982423783082562081080506092341595060327959822970188373321402387916856348251296355613886164330617955048610811243226424293738417986280920356304598110139554157275184014072907815459068978796492383526794423068331242284075515688845338133624202660770697827467433600474660507791065018342028387693464468868974356476405315719996162301789253518974860293153982045381482191920863653001484641865217525120071149846664271433871212236778269715829092607833912800721093976067004566232451032040188389189510401070835771638104206700653152478925376866325276881578305679407423781860412595139943661311146728706541254342144175074550647639616203286621095611250348973303276911837446451542526848134552306410350997291275310945737025841520984272718518132797668193921062335597449678601706159503023689655296595510704510699420945612289135104856786038736326646925772584867223082045842159083188576924629899223450290359379303410621055485696270032472729069534825709910117036322080203614736498831840513362968305266211469485488828996122136410381317051745609516984475541031184194192271651898543484324166668533391609933828127805105379521054612584493040360845381174074878554969211871308424355058269872944962605112966294513245870812099530591812191763236532550901978621317504607492875301446367570535009706018378971008419642124844434934018255067731931671929420822015641613281342445237631033162980970426963217954762979987688057257729400232324946920326348557094142439969109715199645118476859585574076161353526297397736497448831694511711913934659864917540285763863315253376766917810102964732385647842062217577554604379448592891122587560187181604396910447776902102378077740064664873746850851968512410889043350701809418734703355713459674550507807744965640389625045218053531824092009913819616841756809242636261436614598814752993978815988403215915663106760446151807941388690466487090499115617418516567532117569090827716907005689148399534624522291423528759740276197735679595642817117519731277664611346078578189911093041736596164230885373144963288257295458611133100195420613729916113574787640354034606663322080188904119632835624483860595499455693036246412212732326772932407413745990592052231679542293138999694754194311030324057330878605804450543288385706398797528152407608063333189746315217842268817725866275984753239020612355476744809895016962908790815673413478761944536678290549513423852077535483282388657280667717375902267241063457282233912132405171686044711814700472960437666360370651128612278122744069380258069881532430152688060682929059774747861723725743333383639381704557592938341344341432212130754891180401982194253780621872031298757305973718198343795166016311479229935697641043956864327641487120213927749322888400019835396319449415934772500054837379622732721296791992982128242684981450112024337606532074257429362367669675249414622775022708682309476816068653107461152624488710860104148101684649525041549551906791749231443699201466932561882150491886824438883206131302152862499317349466444937691118881181596090614886448942954153775492260483591742622828791922004837620048338238208810825307384115396590882937477912088170786739358609633544466274230836226157322489914747523680634964873468863643967525760231926099404937057661448210958710886044925718378207690388260290598783736373877396840339362163062655713222969195224604341736894506711882254609359392281640909480327269747478980869742755107943282056455598440227299286063733202624139436786337519651092484349035737418432633510969809286906896821963834477359016547875017556332925571797042874499756563236172235427240966432077157537681391854193046380045319229938545432997923867373244563089784580971456819435050810963335072824919828840415530024941198042130648062688235410488893346271751390618463681160410114652104561305385190403085203662795558643622506216821284487387037599915644258376637626540156764826578303470763909420577477122496102442441439953047573889442598175034218173875042479839413133443956111956100899904798822405545484511445972364673328202582969811007148395163491320794212515201586500252414810852027760128422395871705227753261778129783410675412013544386718149130945823723727733315044013684749717744150054233027665804424375011447415923415735070700796397402683548225110046414690756758798655060345753450702416373910851379734182959048879026226551127529971058814283356569128377012616968219474276384760514311545931132661833222539984384977012370804279404882699480365658724012752267682893654467710831977853480993671341360096029445942773762825910737514223658031773753410361880531055370661458164529801827321916228810359782719890592568061939718358900549596665845695189315628807757606063029957986141881377115753724976966759807204994242570030713287786056529389224243694221115358426616051539983370192133074662769388057052916584044763668388750142344518595663094613610240625785222161349407170671474640826687981886327083774323548533633813576338766017418027003143410695644818251752152270439419205470809571570304809791768663393962467132133312315115112481000901769064067961763236370110341421086820956393497729898042593625388980084888401685731672775368324389780950091489344554110684630822359139429608473974720313921317893251238552657270126683043824958391879740639861546823601409959184052286581380211489370115515981873756025368126775154627625092615132753061349962280801837769487368708947798715387934940700538883611256603134948199306145948890915179091931431089036830913720050724522494951568216192022239409856299031382736234691352315591881707159559005139895646586609446455844287298483867408145140158022876660618285395088340843471664883866749300394209318017047105795183137285260013514623289810570286936316727535371980766074538906214263670334934914873012339318059698335801421493003349742681392183529705361389887227906702674979084038059589063314843277854222722064169611184815606575203272429634856548509727868922120823432406105739762529575900267930006111513185203280502619588131060329271963948962934857697217693495349568108172426699875877926222964003565024290299837953292565641930021971763952384908844020142451007112521064554094122506770321689171232306549610453870918783642670676248365747429159771966010557196412365900053241587204874094847025258468926967690551564373082643886519644041404466707091271841283037458168615211032547661649822365531159969350673942779720871851129130618894812203551848618721305122211741025578310318086575684536061751621767341773961187916115984971871925419866401810199024760310921193637156332127545971282894156690015478997205739090057056443876239107926746408371645930152417667987523994221386608309186067525028102509851386050857476825990692821315257946207362017406926729289314997831764652596094384423670501604004339998881121461616724200953609858442922165380536608480450409535310480319785895185585247826329216546533596799367075238550268276893058118503157394695051501674825095005409694073254553681729163164195656309208875613647041183098254009630511088492727882980173086423763596455441980405580308263652622374220216481521359352017430105412350280029940189211332474666163164728430953272022722964594422794308213916814361493864602140706971164496707541298789463893180173472946292979768574755987029463304864112416655857441033587224397598152460824883246616114357991686680529310205731673297984096684114282759889235979189868107742988381386130533314987354400678803019650123654840941397607758889097675187141563107060395284252986065609031542301607030363815065000273126801236815510307750940477668068307514873408723740551047369552718648785870443795888208411251630512167607609182087882919172323954197052958005057827144218408405797917448587253762761690784498705608332177837725374639154859962357791565687631268054654823030890903469159893652607998079361588866926654836310242004812342746857776045952660643426626936142124742584548521340671529543773709521032835437361643270823103218798906477653602234684997634236720167886765399738609801675465048380015512067652492730508456167243992056528032257610928552788175524628395810664049542269382740097707953835616778563554387211152223005420143597002584709216816544940653183578284967461658644016474986009020232524511322839651599141113664935263203366788492235120052835324448387077120195504545198590105181369379291682901213719040728267473273514753593097992609054273618149355954440654385211509654571816048833632997563891277053572470404019087046452855170309397712796774990729263017180446239806535310817380086816966339208160629584533332196256162200276024004007208251280610542270016878337237438486139854813168595524768729956257780470729205335586421218892793584027494800880378583199866175121594248166410344828724865805259224944673849807976736156182477438982391823755219004737344904067798478170162724399848876923583955432492502954263267714238512016435270326742148142046618845855617242611297662740794888071857753000510063494693105971481395797952200089530206313704986195627756520484340658085671946795643183230663397834645460207630953672049047651294523934839539438037979519250958518062032117574789207653707438807074046519849256482542970475109533538921797921201034433267478601096176948585495247636608093296205782244374397672610183636314945387927711680602993103338595276067751390905911850910596779482339823265040612551882078838680369936357627789958267888225138768257738109261636604353887704787275632667996057825666039321852904894180722452328976789883134455440372835758396396904929219865095993247876941444370553870551095702930731637105312562403941238079500933793888941161886372816639460992805353562401297327656296040431604415620850249753859585410248032410025892760276827229044870480210388417725774748151113857314051770870694521469787731657014110475967572250498373006440247928769061160739746260276981461798842534420652598645721418937925518676973417086829492438150946817850607195602666261097457580930172847834558717006276425733323292508259201699204634521351723388874847996271191458796788333911069714287822958284656590884288342407868306707483109581660912167323477129140711885256505677168114035968659381362952591873076833859536980616263510924278908251617265071575509585520517862096364361155921271020190782228409426963971104651350074956439009459514234816139629414425874042207967197997078077518400719788880758276095422514833673577176248077510112118723433515251896276614694872713223128863638873443706959351222863368691624914785507947482150579499089011544223222821499197430970968035744270864597005660396878810623596477204679832510886154196009182238066925188909749492973104245137726020352169943776190645635530011275302841393857227328440192952225403934573780259741502202198169844504590796056715841059461192598832678101344059404826315218969320417572570676606862743479308921947589225145879702384959021314209500119586360122853085774275180590015001224093061149290762161369153036116938724842337584464845408696794336313197448884801506509866847745074517148886838440999818509940187469834872846662989607919903735268515306797161689827933169985408454986229989093659292232127288889151422455185169995792052204427298321029443761897676735582278516296276333378644255717740716334104484098010894702056673320634537710860910079968899248818463043057494046873048495604503269623901863095516891407605967053936349279865591397849766373430648274080049887523069221145746821698044876909619319485593453679021236910861154653729534417913384367588125164568388532300508834412010642676147830992973321369513643487470806771782277810757151776381366640139732600972084491740654843062090491725929736747000996034504569148891083138748600619264445145599491767125671798419840444357907099746285982105911436666471226599597036456254082684593029794882418246935737827032465340647986085844192005084127865121439922178276688576494789591422358761655622886750346695393624081215651588332798260984684476342354087395307238626155089548487067568480733597697457666812011421806502671554319135407901338424042958786612757150455668783824605360343970400111375087460221889880276798858310017165042149175806588429387617610885180679394223173868859434145749213299438560229822751965920081699425220843266838127889506240543663853887842504878082879443707668004235519010423406942717976680808484159112328492595602326824459091406466950534900495745788567641547471641994136958632518504559168000241775767989016952723308535955672106927783376230580944034002291765827173189316538366475860109082910915200199906790983824438717013115409492034454267185402413204775260564924283208425528026815294212659905634266499651744076930743553321754437057565451498691970223408798503399116161621443012391038089111437660530123636377521095469372821719566982260937405253486793058910765646940060262734857152122169080646772548265600388588927032560297648590188448231190361392572348080549351632726380960881033243547485337752836929082488016940690216429293840896942155041787867507405924098463058196079838435481699796009836419291981641633606279980683817163847849811690272143154352092079601271835719490574127413606911456282806134779676683410414039712456523584645080674793736418795505501260417356739246315223025517384529788964374861097509674461381007743393020883895645968351181091154152709045330931461336235921597911604608058114649678210880718986685776492568131083661373149948353434399344354990922900712018553736660637595577811601960181656669209723799434389106624129614321127972872092467775496044675981630739108058087174544117754753392142905795276320335967024722794627185201216392456003230581916055936805028948442433365838524654689322486718962374561640881906659689087708136655565697791294517588990765918770211096536792191281713417991675600545105789624639989630647709452230010747240720975547752744708543479105624138402892930250541633871091237124017238927952726785307444541845385719436825394364210546798966899390903668564932987831879264350260392409001112966413803947095341242727732850114271067045424198801332264947393300940053187282356894890297839816728269808641891615683198384344434750812912506112345934437697631619628619314159371836004834524284543786846485023597086258708516919888013569360256403274387516358201248802213862389703521893899831551806240942331670681117455006054812954828742000171145399278968838671940596041887225722796581390343996218296855736183431394387705425782450305011479356883988089914484761050237347919731539057402871344468186623156290725810385633985813691317122718472437078762156322914775853579440928572788227443850481499253192846429802738467345719671869508941996207370848219886073381466642284389908978926623539718571191114982546920123351120921898720805206094902610732230397864508497091193950588107791843864033885392073722658643955250532124753838242068466314535473383471166468495358250916114540368095830637508174653671736303740818761672532044917514588135302768799898160884951934870467206951087061230495392370781049479376710066488951202092771609252756999536010929975047308657478442762987281552597212402373346086791625001814651164008125127623929364952276745299179930970655897197047469277329951533655154251490461343858934875703989987554088623947760898531638886226694448008213782602608815559992685526024327897002412559532840239274310276780328833695867117190323643712001938261130228352485518061745389632235771028573872650837750951116987987132254919971570122936721369650274686753799759615340563700721607272289291890408997369656450922463259894210552147522333685223576604703814824802514051458945588261801577169658029273268909046664285214188970783867828274046218531401066429156470118867846973422429062095067024759412141921452910674037038060828014022338458215269740179674330231674634277503494971716806672234528278821705852509960619012913099657591117304954152505499953354886139687365289970888118881455362398670535439604371862868318797764994984305661274729260940549782906042698142666754265641034424278539486325317449910771560403598056807069192132254843998538969287646858231194841053732842515379477830871932183088404376031490077334126318184109140973376369043113359605400832517697705631585277980306586418893012375565606210832684879042299641413574416326849586133153978923173509024537260054099292163600020961339780614960183840882005084095502506340852732657236543393897185728728485803431730209914599504096715872856867120829036291857894489539391234178995209813653682903311799342399589527459974094875300974166850973621702995193951553405279437436452431696317204829422304069469616995273740729465175904303715397306413501913641051433035779506879680379325635053254165769100429520651689225649435192696873832344508435902229756779640779733532008864217366912746807934161534140634471000605708703387440336148848410141984229118224001632381191879932880403634041187455008403618021230491061312025408937694266412629099533005442437403099620741101281180050776767710874422255533228243490174187706280404039715105624507234956259376502145276091094361498038109943202453788129827670654964210220420998677531686288371499157612420895268366227156400800984476574671528268435147408979659366918136972010090810828896264298822088198081097799086106919351103942024650838718574789713700671767482913761599018191063457401000745819997187271400138785646529714439830425975402460919688484059426488321362581960764972287002870670709362532607889493533958315499275559859560230526407305642022358666259055766642879648200941355787830616965810880715784740413324953067996467918519267427573756676611421704984346522876785820052088157908405051302615601552538446314833728143757451630879000873686250720401562604160966314304239354271399773978562875225227507597826581007544143726784959663494446724081051463047167864457565962995687761623109589481678921688381889003506534061049310097227014756977476188516781670763171655374996116251241865631482384688300886577094773429480558244796398368873957679908231578702529544469083751727971281502067855292462225327715906042076084516386634167697503147416545718466292161076409793979443931350272611857049900302480367304499816945804333897737995262303453480282998228259767357371756898969389776564662864752684048181960165528573662530497249927315929957896396215302104240575608965280026112864236077236651774149446010641846565918818887673962312114048338583963149479019137584643590838899977745016425082094866849135045582386913188273569679027289135023838932029428814142845175487716762602874921442782433202946827729991372624857350453597747079254636646287793589633216963665920418215320976498554235805921508896937193882082493348709415400427189976769084666022496385861742817498558393447760615004481285125140268951636043227461310734219927068758241252168555284336257360533953429806127841328728920159760867821882103399461542542479678065463247868621532352848823916030615965395538591029477660524058347376588098125186161842595538523489288247327349115276119316365529594026315476619803870567365409577110426478308459219328552684884870289936944665574499460410048957842827100885541150743121958318873476784568184759263739473659532045639341271425374069548590995936885804515297691985693317046628605685734006827475368052000557350516278884610994444913460369646127526195094584101322931121232921314597102491236269224594902022107960823170375546446057204047819764857081208047170600586634600561204233393912306398618861467878839918179002501742293136097458460241688313948485251019784380499910012394881884386410876886302785178163543268233735043643560857778034745599606277171211755241409780390427315554133168902783767420473533050525372957478297904235026044837261403462712073243255658887196558914809260595187324347575781406355550556750210009736289897227329815636737789804466027675471300971178539172660704627545202183976023578106618916236457733594657521524784259878864576200251462263661958286679987355502798399209342481497137980799437638737537552401464008608278394453375810258568691169240088886570539002125715479809493045401881539334429344633170088363396803717091094604439614560083260349640659852143488120740856324020920863004248413940253012586658312573662323932586170363017514694140791576108692599695761470452866831771132826685012321102750795688365260998178981169724000992807632941307262652575989849995765494341384558905400370858765914202806573499593660697086661732427186879126466502948340555340598980338783604318810902420309687033441216692889898943004274068033473862671808154412055095175061950039528553058523368475985807779171087424776393040227694224200625324062513333405649115203376439496551784661831282234069033039291089435540598419240867913186575232061487701984329167259138881416498277000586788402943652953559764214133021850221233281907842392022003654317653882806545512076454438090128427433046719485347651003002334568888356520336116810820380247795879649332302512160919711724068885535559553852353551437626745288282659664096325811738192223102512677654522715662777305523676099514356957091960981920240486930288041439086010205555668712373682516853642757940015018250402185277836021972568632567358997901074596940243380150580791744772904976599038792452569576591167029624735396848868144471337450255240720164777918401525274209994861618656454386003283796845168004877305273821091768076613884850200436317107282743570276375418992126865161945179557106659678112605047928513474052570252246732960465355371489548224118848602746949043963494303992121318406994186913243634871937067515931292725851143675593162245740710111400233613770150987306932984843642116130905969620218004829263646265912063796138293123511650216723111663282481708668047479461448788773399949159870609256748267068795379708794042374052230410026874687614080474482303357330336483671484943224707005574933116503844043097374722573928789828923265056209704155176987435985699022139021230150868490734238481021474435500187093746761834233164045416013678395832730733727327616725228710749226206399612102041627495862530111589314865219356857864702252880852907640708571084025294042529162180757527522139868062198479309323968791456631088713131357644695483098712331510886753046766905560420896440973156801375526535718459014818139590330157812354849617008140609693949298059339939652635904588151035752136090398346826618430228378139676251316782549918792436468902560464683675301145941918823932756004292679371811142457017595995008190016963097681967253627871238431713387846949105800710753193530724883608006671949663376936210510513112534392102726990041065519887336928865773106024303879727046140964241629921350871064033635656948848205063683377002314400374526041564059632056295875305636172127797545503709790098144565030514935663866108236294627638885577093813566202441830365682365815223866862632740632750913160368924620565334178424530947976756666183930525884339629655397008583744862137528198196297534863266993996862182832397746319539685580429560826791593907209737456732600830807767786338290797104348932974665839677144495306723640157757274024483377973297946416689507105262042097531360934704127958365847095924898249511275391438567506165573425104543799911591778209490092468400056386138207318674701887654175663869638932085826940901965664609380906914807608205834805059835480113281657736076832039166175802828472711432839187666638995407755534321662989865643839513833543357773572288925134086006291635669598401136770381849823584379848317813152709235993477778365560456143079713362709222992949670583890708754851781808919780836376546184345988130828602436125680805833805044272809138182359161600567097216682704124466855251293899541891106024514760390801323742767642800276330094944784255566423181865215300007704872889224754911272409036711816502321717682452044995412151449699743556600500649012130724864030461842849811393361288778252869989989276287884039374590057111004749444963263469467821221842756431616219926796090021760952464089805417793629294118768868552066846898122505410743813567361719212884618050072383402391018879462018838783141323227257105669290822282132692184215314805048246069926256566280081251347248831028100789369889488165566164772287269664262359373869475990497001925431469909448258237382441366068024889548537666025273354526506741318100426251994860216630784849945756294275942783642578097757223167102006761679593804679337652017307469501432370086693903227829342762075937124188807020737424151144665206383743258028577158316664365324081698143476561090905864102572881122883755045604331006684029651020870530004447912551122277866423928440446615824788658910634494420824383508273151450187245027420673567310682011137457335575556268848873629546513071514812078903205074513958464193554848940930347200830542621974081076191721747087655630377277199899184000127866956490704850842801050613651259422624895293802005549333062637471327839565434500654397355722284152849767055955906228131960379474269522466094307796519357496880994308569996544113559308967010049128531458256596425611185596057756590246089057254735748373483095257373850520961872215069394426844703628571576484106762718567334105453422241968024087183186934221636045162226672243086550881787334751715345255969975295423295656596674827310463031709565305133727498212470845638135979068526552777138908289754717044901554720204788622783176710265488001864164981791426323864900512259027497322061538793598566628967886219252632930219044299017593181881093700187782815978380731932632405551309510563410976560442591363381099539099326791959116681525318796609474087118044664584354479165616892761503908423232812245773491491957404650386827156841723595339764307122301218418305048708592537706463943086849889277948900416932141997070777246670687438458788435383761448634529758668799282353330530681643378146163594851375462650885135675314175155616414669394637912718589095736566230043922474990004313615088798086991423880799333985375755361022723653713860736956964713435526168220884388327518970463885959296879034190877303727997230431388747883637117431625296630290090006876141349189510288716185046163588227723437731462313934754793283501009882725072999452965316828622015834237686387750909552227332478337080152119355402499810758048382713842257784100548510965600433507734164002436113056442897783432656174263354586556048514881803926879536839736634629824126390974393517204203250516822507510478823059290263867979290143445484901129011680516353912940347044779485831281884679937036162319467411549488842150616158956077414729626256334627883465551692187161563520486254095426211522916060403521387629366621502820720440011084042730860013411521482310669236706762682626573797157521023746799619575376457613408716612554865811679229811240705182857137102549647977883240460235358825584817661191391517217128392956856010138249274576455836811141399557200423344375318463403634292339173225594744930597289916226211979820486858308276311877088461348774021703780474586426680529644785967376271722965768592532831563208015153478292981187480457813355194614298010523245717915955499566587618427901867739955866434970912814620362746330613170079759984129882377072582310045580627379653752925706303683382331844578014106509795382795095143533383663634519755349109633232834722365310188836700164695848882111451352238134977972012273874852863145600493078811274329097860516840196111052390913500853115702260922527684964467392230433713019787716334313562667035013440045599321515180763881184909395121431165833457848250136145525352419632167404043166938174329379495182896613158589723221377740258403192548465427052876112983083759335532452458292545939061842076614127429429093967674076064974242505168511581917193392117677551646656835049784189987332246733863592416090495527594923314522199951826601771307542746284620315747791564760794386906517506875933309203040760615759208654874015085361333936555836130258418420631150133958906063407536890942523679173073852730038045475818907655014791075801969133411071090026330403989760761962101983385017924088477015360997879276665670212170560661341704133034225813561724870388276215531538601525637552228497978269624701744996517991663620968112800624047361879088823240923900994896057954904907980114258568282236173240368387665036823847299405900823548621915578490633228503950887624678967099396127824529435442370444311818024716253712149327251332593395037834865816040806303111100509447976142361104945853813105713192084391899914816221310488471322227061267487855730279790603297483220903191174197207434315271460219269332758544423349608742329859473069745993287704505105666770649556030229240414950637553299712928595344555947711979465811974396742535544636827167534681421580080722322274872048631801978499784977526015685679635216955875446101598742320820556883717139881308991823393775548951752820163991543277292218813793724510011126155128871210105313979671736987149901160574493794337112324070606719235376537771610187157937082956759120525846944733091286789328474575182017355954288816688126692100875128492688431907795321499266760440799464307675585340322354691453949503159634874321476880285102727831026845572865736153622941033492822929668388423682441232989845061623705302786941045921884628978756104185352993668837285940990078768200613818109164665116286713024610838846949521925490846448594231654299231867023316190035868675749625626505928522563861870957307888239343179902415943647842011790892288270688608832298660644936912197985003114307888804450257014270241816123474472634418696304527052021250832426654134494826753386208021443712743166724427920470691237701027839292642668817859333162664626968150648037935903840123664650390431620876072359063830129683462219412992469981972106863119971118170234631630364509370867323803799626769892046292891567049240127747699950233050259088345792604786763558273235274749705648767828240539931909245233945001049951269498197107504284377616301021857691195570966954977804182668365952542697504878677909562097239274610650742276926335624778257279272625599732100126189627333806222234400652784308997331222872103329523232656981431643077531390057866906576196367055196464466325301428062002659244924457981514633688080350693824064950727093809132178006747334721708360050955813733013559784541330826375587877351062768866528425987502909165321478800947831145426546562095851106973340692102321016883164518722842933186325676996116705833190517056946956355463469467194774787907244098734665188691179518375660841228709613371204200987783705187761002682969578703097794024027838003740169110551772175700930432400794502133880057764973235590250918199370692832148964144108770844124874840835447856621468059350075497026183874062535339905511177053758374446129476183974526100330328681022910554015811839280243207777331216883680443167740573095243470179676121338707408024983689063664071788337768234807477375745935287353795840311837570127862907219398477863533894675908945820695763225269419641159837613384975367383636147288937117068820083662763638752142673443300763313923790570447953701289393949018708854496274399817213578985359206750753439399917716441913967210006957707771121963408998624906469882924232300277878015605373809317732410908782943125695166944665393465700722965109364213072786992706801065985635408980632887401625032766101474091494837653563738224639372706829207585646071032239977910659862303508556291975143392482282895049181270409348099261595657169859924345596397669203916581111071545505785731378144959675488256566800122777053895368036603506466368923045230391826357579239038218207335914255447471059307443511093658761689150514552105393435453878637518369576957119784960267239595366384369529287360940980994828515548357856681207159434379693064616099939719555179028069150420096775118497199384573856468458140210321526416158812146000011955610353599568500355996276254329973354798605808869353532092240753760525565851563236004238149501773607481372687391843894248319267934056552036968178476273603543666916710070641307472430684773170917165506618779266812945176260427382269221806317815186763450590411331103244304166320859411980974166508919511987285598903419769075087145908625425095662933878666826307519673989261987240842191855958652756647094522082530705502016537221246472007315528085472926731991187237012828453552098253146258970668788236705661229411390556986266379714660584197315592207246137271264502642492032284615699104165881953857452611072777390551184805114886316701689841328991081073111221814114250375938998448680452454091641560673757639297605206716452089835886173943551616276680115084226991824873562460218821384760132577888934115642632510764186574228601191255110520714728995610812846627208048125536506284826871005723914058328244920187578501911082733893457518278468931634685021790467033925292896758636029164718268414297615649742179609391330012810028865036392869533619721615243513482946044896150360279669374610212682492765401247466385967664710568329379969404484706493901387671082132826444740175813740155497353502426946719354281164865294437587774483757984489815517594800541977829377302548779513814145203474193990157340873232056654259888279029687269643685584462708395425419197337852417083992852541185277229677448014641801869717718297179011147313289721192213912366400844398212936485770465714354107274428357995831244669421741440265739079056829382655104047503277607496052332732192934547191556537881782865053995734131238634133551042364317120577106064651305894097863130894833086668147109287961164821351195294855645982251146644535690531543733604435690816736691905941137848517610622629174657026154074201867786016224516847628546455684320616659435650559623352315918646046639259418496108731185384628037075079058569735443128777584638524169410354768381840410059707775346836095339475773242835598562789705871281287150756374311929438219945526836646955729297261285402375876750356427314006470676237642085483277750878908798350033252225399103374834290216271801259117498234236249229000462000887396630233490424500718442560174523722950339751787965868970205063124589424072981245287539345675347777496730484844284754211880299818208238650405825053897162480400426944679247400579535570501134090562610312252146079594494980556549687476009161884443773747888383967056596247401474685184571340629030809291302230838281894888561348718007236345248279649336112788852404799894169383017066472737297262025540159586354471645005142648579462853328567504096935208395741781393450031095908284905762832389821823102025654998968225679339520634099215606282837903988693981791764840839677452446350885561381325099244519842966051265767974840508220124403926197179765254600476123336128596724864750922622003841112503650863844994656471689917671800139565624525344076440322324186927869873824628643072190003875128163080469144696706253743339932011427311623277524127885216416538509472857831125803235680579114018343972015975251047483712153532177822639957761765224806003703813804671700551546400834192438275876720114687000855642280701570510395527180236797573978243988285452835899151758405511081123622215253671504777335478688592053450164342585390818740431303724382161844681132221822915753638858944578885746595773675171813023904985493968433867880266485161719236115287425550304764222623701459643816944459613805071037193086542044926150986228095395822136415002119985732405318697549834324315467971129173895328510589369349544599621839885601488915431658271426993879982036964321724157661892433683511012695171793313542328027363185540885933120765628360238996958242512041975679567801153947661394106684821328787139357496419786643091059024392139893959500748814003981302634439048950640101320900624275663325256011998491031010765888343092157794263263400006092411649660628994952061963361700997017284102149444062145634934698358016641916299504511977961678761401642572375435865425087658444188791517012145625409430163319970415934808437204586630651832755188234193975458111441461960519203234323372919671918593753225335729137159556327750282526280719622370049191034880616335306389795212046621257479965542004591036593051488246765776511716176816148196333722534717360470546441866978823885585191176895516111918875015331622207934006491560370484757146075812685776246459129677877142992636056158300918553075283802987263523910780631578681420919086954158035957339337448578726294016682768486680261754811424626042111211860056896475023767168739395317660060813986348184998855443845520161100691256034931530347258647762367607772336668686916293285163979206623824311808241138939033482822908545261153076695519596641193582544557602478295712139735883655790698592355409236667472473207332992911052840273838944226268806921213459681359340312515510379500945607709310841130316700666685950689574726160282996076127185583833620387633494596223622757096998595659153744254843218422641438208183025369046616777469735766443576331137603564819381253742049145707569604844319526649514112598472769569481600243176016068457569935253892185298176216003150321742302955223581222644644698273628886140206946908770978642885296470408837437281732073761383963050639702358956597974338661440987462941635114409304748074754371901589897377753590681223668644286510891103658736407885060076256248974787682938949262146772404316005098793743333380866834787065855324317435600275370106317220409946052747119749218970232283389999368357362279447498295017339556082962412672998118879511746411821249358957181804607289624149108396270220570876583255492030910603285644927107808872800986182509511216180132518103203913838976610899534587423519366274930713742041083156759076497548559095235579468193543857354753134980700168407522348042521437071221670144446316973692827198499360017209437341456808971089844830036525629222060210614060071708940797739988831208495995316891229821800091425635291065204523471393220020580632769922705822708815321671160966483078130184621508847964645274057362686630971868791363245255183640161443937419360736083058954276791830271066306699346511608978202231174243503312851784264207477009322188784324985310129843518732241286144315389605595548042448305406137753206481856329042696283806080184211187858124720058561649647679072730451434775453497938097733019104973484565107039268563158700277992910205126043123298968237020759111756332687888078645492532510969409793857912931032471192626523250740934416158408504345933630493629244043899687895665423419793179319101248391167725597443311251748065955579873448784063244862526012051683071445285609839128047046516153376596512844085430108356522426388149602078383882423991199115447475485917516137372283895802721673022466953370543996502905844638202022844429992630631244066686172129013806720104115098141041384481912363132826340061630641177733173952265343935315413955896854390833817948689395349644981615667664514992528543926723036241777553024716532434622410850172681092346250653957740545261885100535790040511462559078490247281816102744748640351080085895724292509836706310423100417820187826595155159806684424469853642941094474323032984664110342147567142785923028017403959524884940733898374889174603258495067781275786222797848212589454687407239762525761978279936487458780640823112022975218384153527029218803059383931074191262804763054453090354706718233591256309314107746028283276099907830490458308846527357408200740570599767787081754336667252538359499698026130868797893946208404955598983418516435437277211316909187026603988434294412789087641070747438847072782587274791716166438911158020747602401192718893030902861461131244319035193477178622389895849943249849627084854875560698028148031168032390170899810602651406727829758155778956980691810949731881562549303204459444761771412821455303447361894761576727524414825262432092527621595782387866094889752751936985025320128620344529604019768255317821813111568097019320890018049917475792660521566146924001028724596925363806374839808609168972901058243149174965780727519600843202682566228647577454941168809715047712073982532558935477498449163101378227096589510194151513316699278538844191931875066353732493917206763310554134758174978979136344931439980577374794466268998854476496008364473893791786191583936883243311442212100344088162593668455205387205313000721337381905600004871243244270981783404655864686074232132292810554989712421936666843214241048611505643926921058565448835680212605995403707275698017212912332983850808186355977219808699322205261186384992015106701755869396051878850787757124801092185860554461461022696317634418864089610562119345128715058402507335125284093399432505126642656477235184479145758319548430501226288503678498734403106141746593702672478193542994890782169596215030379838999641245623794419202816388095899349592205679381968766931894344491808136088875707386059793908491328925137141053970789012683158487128900867919413052354763087031135336870792541537392122853979667673979340839813199604460980318558109642167919906055179763858058446843741284466431648736776850608924622116761369412900286212252202911725756381819720207606494926801068896698731682618921987455695167256878507094709581532845609515946529266560940138327944883780271029513582372803858911180217549892758199531092272104794622287599986269994900095694317088683486328481624690669963336408457293802445711258367983994293853459392366511870087226880573704946947186231721941021290903205036763164116109039754368731325696187446011704697301306373746488200908151432437864727635726120050325571118520537479994260562596297486900503734629064012335475819883617379392886918974476980603991737549411708209751033171464881068468988186098983829967699493109231408357388847943258038310870388408697557212460851576150832214812449998773690711887291499673784703380071622002368254399604432239161249957276227752149873564370649267026348762287130802069672853091509426808301238769375682182990436281211668900084254014318906882869878089976132337393935261826591683802175656475243556650313402916928983251613590615431429761489885901629729198139095123698958266897198799739159476503110455164302926929540141542821264053677815197777453870830438443451894130624487343847377717582265426413963854072391848039507663973921074394450463048785829325270966441422014392773964738441329281551388003596011921661541962982422884090371424497394044116309651269254158805052034516181241687350752269231582508199613330380048878299763029252227680394413479316752057329128185410908701675123447617757899531094587265538780042565311573815070182304879148078575627302819505723915877056298682298620658617746289721790670990879167672987825157181438228816450324296933675934938313220163085291327918932872018008925096325183640116143110802288141871373280603018863930960811588012283230090001132770248946188498062166300282505792594079990395096794525187709440658706915006544242224639813014214003431055651517629836595429214398048178324857264376771044304512890697472396568840899652000823697431363570973126306465495156997856454800519850567482758459892196074122826102289002996019401980343948284927146485281703208368282591416289457919717376698262726437077925429145719187170196846910972170291629636125388926316729136074051103215823622598456223077704439231729457085450972188668626604660603095143170999675140106708991705234376699897328647205314846627401392464984610700526316622996641342482490556490332068992627175247522605382699624169069733406600627446140083912685499040759941014528789519258040929182448116829045828101872803682361567569464155957178973359947655704683927911194218792219910294255117699648930570089320092434517997558797940296115518271238108494352335403814108982856360173220980760382484351817483241466377517265687974852520439964652706523806209955378665332549455905577502723163803434600927862131026266164234034166959011404261918091607974511573599365829827743957628410167503013691830299880577412263710808893505448529904557611618491770841947781575977414647649301126815128567843636126955400607989295854434274509189962493674840538109801927974682012882681854513460373931703843697886372388559737048990383407795678795385803389234163878278069147772617169776753959581478092968414242275715540978824406794837379944763947219096852268204078950709459738173919233132718340038902126582093642407481834423732009122031990239051157596026356572388363873560475872016431468710523934263551199907299845808286089418285212703640474594256329632199908116366933595466512969959063792921160221821197109968147940261500890884167601303057688980038977643099720044206454814761864516758148175361626817160633976360475679056399885468500225542713983444639659601925378485249425008955092109341275228198202762463576991197957179365606238966378354347337760959426545609170860875637592070620166178237239017486071633968643326927964520980209107451632972687487348408863647339433419205514385321456208709067213091578581331581218736122090028315951738134591759270721352175732671812139302900364305685411665390119355954754302953159325976606127117738821077463076567361759615624938764513764699042272451931997759107170211365470427566430614113095896585987809015508986807636900203853230955162865459277581217724496862411296999994049433612867164480739551837053719408371864307631215873943764344034868570959078533498183763562727480283492143430626860867310771610323440407863097183875115892122280543640929378308797527962952814666542357518040368094630223613176137759261288445138381410706879242538809123779897813949095504719160446056666090047624988304238874817079480922562914330486396134838323844931061602450380006771124821408353179182979804563272284069471092347685991126935593201285020359068177864800233412706190432109228471911675322719270207005051369157658480897557836807543434936626936367004488153873007713447532550624120265115980793437252160555274255353926997722045057431917911371145699490742313040274011292474982598263163824810977489905452847226588303850107085886796843364279238441497790632346641411591696497339130526759620173862306503881523607138439052800524305165790946163453478323323981712928590862936936068693602566231047880281211070455396881914723193753623301883502291878070240286098128416218647761497465678950812531584754837886800976905835999877189189263264123570402419904836739059000814454107223570664902537841912733882654188971946127622923981900918814301913779493146065415139663108444937550793681544568219884700243947715113153090587554585841364277798211171133230177801641381821487773140187313376273305357626042631499698536298673499919285504585981396277752192687870036018232813828259068289974292941569973418837377070971279892382148064101833081163702639497794817550971892800952621086754370994893525560394128172220361734782914469797843226724096708567280628940164734153372045927158568529640680839168241733984051159094882771701911498002692599095517024170374757323337091214049446495272841455239965843077355976966066010912856444039404230249577491241010096651399801079409078264051194191962412985428815128660314938087956419713340159298920640852338905748219461999307377181639147852488589436469830227495073468817021557189329743714506084885922737583310828055436731289464211582277026097488630437894545193249385259515094923629545318815438086911896903364784691208951952214647430564045952372746023342527135885208275541824657409950027127514384177864972969875293943333900902175593723306016082738347072268210278071397017509656167950668435245075305415765207141675268789281209060310228932853197822307381048301785691094776765708614397532320205159418600692752786750259099302472166814682469954157690379345328057109467153374335017760374585667620174332396030083797830845652066442461732607681756949701629366150911932240751755498802295041045628611515752417486269967062476548520365427663083246890430278789412102013708224493514417447254677042482048622409220217945477411989926039643652524357064910146638481082641313798322762814739637865808906015397882849673509879026574833475270315160203197681770659782996345257138997291893464314374129479314983148195330769785765564176682755224338811052105035326390958122185434107981696904899389291919247913965346733419739987798245506102314857756840303665503536299963236120555485505046498117312886197754661496975421872930706761403332590110289196485055822812120887776326413935153213545413013546917055764502492458730461016712151376968274473650370895744671724375994061212569322970144899396704798768665385022191549822747197500145618525293005165488413495823829074204715436802824910244662031321389225200418186860263671635224987442407924461698926523179933001993053804665396535687862662056431880054094395147194505147333605401386219534979099418343477150053657248315858931049639790497279886031492360954022291887502209875737778163011882812862810162274732582538439845269165961961291164375427646414095371821646139157266015619750527356132265796631522025003706198835971755102996498898163459675169868190066609233412495844439585264199286258487030448006855397910010646122235774289227529672164411848076185129963987133143550682223743925082838307741405507910464249275880206068102892475233396969085391250126484387479800706187318507881077682289303972608454804627342168794771109706393577832567566843895692730416970943200033543473369580765109179551434989992478198430122667154431273357140912430969274968234140507730360186583079269518944626138284022879155954890192993457333737517950740035179969766014144771690083018199284660245821301763387510548029898627313179365331877695125343181411214060468620928797607712087209963773507368776114003990505587139781029431413690479234590325196817151234542814560834168677373460605642717562153549677965641948195804306632461788591463871016675383966024879305371945560824997829336675773729209388117036830916127827650202956786567534002364001465777201029838156267426324806039439850492563534294759561127977138717672509753747747454246475798258086906643558052392273369860486455966180128772627717139750843341247603985657290187820090425888747540467376108714840007762109066477005257064638390403959253315091955945872066852731622318386837021413471563977299946504163250555335251032833915706221375022191237739109169978468653035905472140115935012536965848669196656576166871702040365052856398389258654131720438707245689458994895829707678359736565846938921732357999392901954121735018775196793027893263338253283705745292031756814470641409898599589672802524843595952689920085742770969759550435151795034065210436473420280591837170950455240286425996899790089035899446178156632245463981609456032023200060220771596897895358408021460390739799878065247200946170049506398744001486992551827263698680316625799863341853156614446445235078096346332671498626558744225564315835922446685267678059926654834733041657584255454196985874650160720849892309058585292042521061091570548184761646961619575763661763644535840876405246216641331647956672960518137686689251480111353010486093163035131284809825820112600511024546116931586987254919903448867529929108046165737344475202782946391950634911832756684491935763035499331218558699042191065966079683032897886918902982151997906352213317802448051398469874174053392657469067165283071019066706412116042502805277777069138145394117945918007869600625868446289900047704221339794367655455525762392966200564887363915911680999580051557385977361460397340237135423892203585715390737301920420519586362284645738085284617569972522990816658213909794965486401358402203678026184303115013525649700999313939670803728111211425387461679083214265817267047697040690608426789814277261772415592461758900957888862153378650859611334736644794469474634086718156310246997669867633195400733636676240426674835915855390736983314397826518061034609299212805590087589568185798508568857564774057624177997846648402274407641680629840836888798058071511925857008372966059362166336463477754496950655599020991730576073335710817224368807584230573482543514387619776147114948809816595810703685426223534708850754486264390242124516912161387882336114804598588988655763347464973440357167579407921471025073089639195787614783265345653967027057192598450870451822786511150825208471536177429299127202892620879300590794867782895323692526619131558385409906157422620920636868445461354378022168638133561269931029154878818066965755236345302466573943431284658652766077183794595052389676582530684528540847066811140671276929152450369722759463475073960801003475675758561069223418692559837258006437939275370775444683182924469219291205232560465779333822992976740893254211862717401702646994938412588769721428829446791121890237985132958946125344920124636254547117843640313756794456610898337697751072888779752985069956131098636988259473986980531805419426871780498258253562173253919401552086223096568509221540451554941038080682447789325305526959215016476139911730081127459929281220676656221721111537887070893702960369629641505647944435515882508870590003810852027691848849054080916836820656015702882829756881937342014819992342280059056276970693871687016809665149928808538460215687779324135799402641084663962299967523034295341986427724922595749484069753218134513144975405303803397193720278113157879280806003232633295063544151468281917854319089061831560425398185858784134426380405137116986712837574103932459227571166240380073752648543868053748128325019833003230038365906126509308546891427791104533045157465998132061428688087604209546995485493261630378975371827742671216759750824398537691390858696239210460798096598938589005754833102440198455099301100233094690277378281279378237661855509484449543287899117588156746650959068569567639242710678907792069572318115770236275691702835602322174221747536275014414546814856942454602352169926380273858942100629051829541537915096623926834788137273068021509442522820693560574556371190320513199053348594201726866900309979005539543594278869516475585759766298678523554760742734718852681032194474382014264607719937829735702228615534983665612230146629756838295393122778659918818584505532218961605001288045456646876748351484746731046216651490705588481796648008202346518657816571049638818959759782939900965258700519110996210031892729970081430832626395005098209468460837748017175398591366841412009046736114373392496248077308810215443945533446990639460556670170520453751592335670130283964750872902032456591573114913310830547095693874723978323375918779779379999213405061354414691630476008476586423185040366512805030653534740873925174893437957038902793402279897575827466767601350070939754793060720196518583708134236850327210703493211674950972084739000374171926223028000563844734175658391068092096637699342153513164498065982758427364854918155379117885289065301467857733137754408014986924153297972143883892030484146459040898918659274483734724252485134263919038353041011201750604149455320013617846184712346081939316790608425042717769246871196392408362878226675892167922343853181783906896052080862323662076421373546763846324049013358556131510491846951582417850371931296300909250625105287990078973828474157430045837149856291041774471945409101591132111575821735408316060604929110489622814171948635097372781695906658253864090445794892508034999405013920553182662415818227532030001139049688015169814764748435168181798339595021388711622870744928203693020719323297272285123459403044218305035875609331212678793104875994935980929560623677451397637925298851135214310164968677658291707977439706647975308668062634004064514722558249175253191153169063564435541457185957324484644971634144752120363302926240099475274418065591870034258056147642693446721824134037570185405707787894430855513741486069960656648904138164497303854489275189781810398848467699014133625178486392176574543940362392368700000849463723753348741513151372622295204208848034826787289922942932927272626821120064261903061035914697100942471801672271454581242872523107277427661108983213217610793665072895209347137291325883975842487652749173131601405306482576167423010308306894730596987856339152926744301399574136620396202506398174453605831091018836617185815302582482718720121469672028680932892987645534239625385631940482911700548148737737799108002794814757875379657445097158338985025500959954683868174617340394961715427848129688493459560126459592683253403818191207395691567157243643855331927305972385465334511190825631337436772477755008284939760503221881800276788035364485707226028810810920459492627914753174412095158470766957879059552236502336989487910105176064410342870471151515856884676268344782313634947189292510692698171940797245509835227019989133093639994104721900680535919895692996216777556236837148915691964209479614442325730221761498647213915946513281343288516952311482547553470572586615170566839797554255388818339932503618485585514305494852986501728514143226364335813647555701286544705843015217329913006230964578537867618217676913423578248398163668389348543827299035954879623106031969242188219874701939990402826917359333279297943481757020344707210258088815385528685840557653202463418359534375299961311485834430928676092280615183680443832162043163013532262877222155587217705967097954408402902310529690723074969251198190302671401357953273493854418304872616564191901587949909288866230495754743882582778290962099005624922804474813424356031937954315742791260220713720849233653769091756261475066911126288127661427547506968877340249599784477157438196773296973602316427276597901186619928322379832824263799070294442030959576217769351957632548105417306283069969548150576650334012717433778126559768662842818068768151925166696796935179683518589818932559255319906995875937174709358620979497292221452535305172618025566630909184847687306285532451382419263599237128847447186726976400015312353395355080065511838190126576372050945311708788919459799333433581878624009805838145046674906413784807320884306095370939484928584624921178093648842433021711678797189082136003809390109540759245757979683206539679088253539410288522052183573159161494129807786182244572404233561741848843594439543306258871519292491741068113483813751051435139063038233795906019598134254122866539246460263758798191996790679313329862827390609909717734547787715003267223639426916991868693783045743862768470891398628948574392896743916007604004522620666793541766960272835741546036564700037401192554169326276624651661606238046128999478275756959038612498964031578354129423246541048391171044484948251223442572847932782805327939657884803016827408610090030008566079144232184117195377186131092915180173660847354560366203739915783795395077633379672532726203240956386151332391223582288158638022923849182163255202703917044453235476649583011603967376389531768392341673417316017656356740542221976549959069678642537623078064389924746146696437087588646899300937025602268730342168185874056605320776942386444637968054760527231879535181638754133164691597392607089660836362851935118803068387321013916245227586181893704028166455599025580893924214448731483868274626726164546686426688216123105112600527555279027972847835992779831640845276361981581658878259437133653087706658146931810237594723911191104914345237142848093581452673659541428987434310788655735233938568188970246439298022894018209528114509783988208032081079414493961591366398319699766300715543934211441701011868738892866086746068912817750695133580519627535741380341643775750927663836186063105619235323066311204873813914488738518988479196165481964814601347966937906167128648720709649401105693209433965984901126305732843947281187003680442818133519673766043809282997344801892453869189018062977093780678041354751483878255802808972510408420146795164991132001001706080901100131545483995578625583499975016861078084588191659861018668183258088547962524368647533006762926157784850743273554786316074435262994104610976286648668737473535030205440228767886266802125882606041320791663696014235177735170505289316038770010873667309730226948114342647741344564101443667156918109988517413663390829895073378549397205571331393019229887535543286110532287415865069185123422293593632968948422483493011779071988942252049784629841988649371831951825438237478216978845317941656128634208407108416876412720193600897153815711496460526467324629505240729394666013834336034285144170726043300496592071449760616843446364994367808889800124018677797491377352522832682727771092032151058888193734004983670797882422912264747693856787723043446140989997054355164777049019101787764442676214077085026830224612963674202524015443016645225499751847513325707760182613000675539011012962640016129485968851475662991011081906404123323041210968187895349960563929764518450953090412847299181393297004681325268380196314499068458161812928349645873211442165786199057430077806131431791187760189164384637050974955449063490939830673674833218811705907716798914582939808605755648745508139606244044011130777318448098751233937830798599733133283260807693918840456371840973836615213912086327915705206843186592700054117307956772027018325879914560835478915295465380714280412089578502798876748113264473348636533260242187562299835797978274783530968035578464098067357090214131717066067710807047228065275064133153981187173554294711698232057232537096125651573350813515301349166063468792710756990592082424977185812351699064762086737854153711969392196051841466848270798049730064460697434917364143365468614572484213761611518435963787628555335257031556475036684269664605007926585396163651797776933042353894244888188260137485436424308288612677877975195430104066338165278811214071957500952221867197105292921080536651606460508142741605457083257205152530528509251960373431810155081307187219861700392283649228007081394182330488633271492197264941780281177183176187498676923048435077817246058685605429164064053147495937244026209025756158325443703409907282704700946429686540422114406272377281061185569327641126481200321650293838568626462756854703840392652912061958446653724191295177539912826812519698501083452475874873640170040389475001574839168436041171986678764302629801082094116071780609901356956825628373316149771283373989011791077671222876548853439350507608589859298132316806310358605327508442843015314133569596119967028851690769995729481603625473136765632152946338070903120477329990388490649676104098428207323940412392918693615994551952877977286790378158863280521272295967809872071435751790336189156334128165895664751386672006057877076115691339542107930543528205480573152341038966813250182385301628823590753166759889356530811324848583649598644597460234811469281197285797992928326008818317368034253393018084492705043110674463405950722199631487937044840945523125105764536005826862714133548823233275679560801285923941009884395698922502017331040263658158443579244520915933644230400705142662092537398205503890282387236353772420665186651667732827824503864114317486707819522737959718094337773498009926069682111837822777226419559045865413673561647480708515071053074693801882304958422640829774721640556697402645503765884166845994523988283527397510860206524165571292991185479344353316595743785993198373476894838674250214980520860182742809138409724228269687803438721019841401396296203560735419902780526967531232738123109561464871015094576636918391718568627351840792875990918472235449056640046117559419661107623579727922580536342925501269635603903625497497999647563562503426071317655025841601882573818160253445267794461027580400010869876461655372740838058999815521130149686404668268620505619939067147318166893526835077608643933487383077041690190935562965688166618666079372900754348742646544695747806148545773959114269643806503997554876692433165314108025871888393107707533282673083195863026250634364186427440073428116761091600486582998608492354523469594761176753750115784076698010254729202323729032819534496941174691134566462223962954660706854714574016525342337213056172942464642354322033836968938981188506364028640213089989096518425467094303807319046469830983526295834181533800486380216859524765515834763184282113963832172076355570393202879757444979450875113643354469472330779797568421666483437015648546736689020127823673915822478146712169280582026591627348675405619676801618812559787473323255751984404925829229193645618094235948815879899065795854964548597756950079313511404946525704189354922352014657025474891939028305433617710768816352076795486095694924429719576103346664864173945446187531957791951034148712624349454811638157687780041739148829045545692508259807524178802598384132870713269201940390064440463108540181342857500399976880008364367563626365703583871236371130257512454994729373040144398723469408592223543800271365091814649531917099581894215080886148494367667070138117202553895829353040055997319052205767001573224556246637429655447753581373044448184821817730358917409276621856483944786059885096476679430830793156719184758939386907164201869419615353187995139054584935144170835050687234836927409793580755043514827541176036077569736728695261296676775566570064682460540350329573916932023922626659587774233743539277631468123402431738082329672423019473305573255449406074605195560004943573779289673393727736508852746196692455252821958111071141680825924020384118571246622003813271828654292143141567598426987106249219275975926657590328836736951663907316573807657255024136713120351659020912503850657103382524821730590518013451671342873703875657557669616916406203836698174419551513447822955742497534980193169534583977116998207433757788918611024629679579743483645454253434340877262173124841106964054088151587946388380332113001387894643802841218264822338212375502734679097042949729811446706939326941245859677094404474591018040854491488465612496966001981439301778599098423034056664174948599978918550000012694709136268832835932813510739791151244403342866681493917942992085501639399535575588333589266688508587044553043622941864453789763885411247834939237228657874187390590568822552576420279185615191213366490096499201252932773420165706556588025354379047070725215221359291786215946484955285858941403974041363448773459315655592548940730334384599455294544499275532008098327231112201096570956677839354891114383712517636557625695533672026302692270069647021102077962101357118749717758549510238949348795410289426952468242140453751267005380681626086557349800751670228784715736924105415508867643624792888559945677064444668190448147003620523989241467760127914006952243994469301077357881984346659936616313972227426668290599057994327496232967727296222897364458817898186667225726927665176461918180651626530236966035311619869608772544039401855808867732015858915507593621430300383450571551512899976596172159580468601792067423519885401079236749669893604960748526758801733848556948820978409070741003111029578514855845268148171529734775058140621198688022645808699750546958306288977060997849742992505274948761766073449417970832036927927810748487175941952296445182452047552439487762779101534890098810298093928531329759745463703784790059525411578584392231392621662523104075912391925929504913153786641680635450528769108737252207414465246938914847994094627614540990030421799847189518043948335859176855286995582385786892208476695213885147568980520262760892443671529836870555935502506469823225033128806397515339720300107494435955159235185893628225250346662440560181149325719076182197096796204371487718875304418696719156792267434411249172392027476446344067661746532392651029376215697969561332318548660068223958005489549157651340082386011156168985090489749507076827052455338387265799821666673389002245212438552755432360949933653686611112115349950995987531881448129185473026999716437774544587045418377727999455227833474129890736095037925001855073684614601406475549546732233546788172606518034704706791847735246303760194001098385645463739707871493296274742816569496796676248873893972901416046097321740495098793162700352417960261795090840516953053967366749444995884518606790801733001818621051225145904934290467984416040886149914852177445417276162200570403497929585182601800768827358821210791575275878463684123664819257679967473076742241805673462720407379292875235200138436023202505015146460408852953352906513479549879134512476067417215673733019126345619718156935262608570305528314619337615674782778047332279857003850139141589155152410266713681156551085593055718218589156745678428876996416614040204448931311745417453313351116176074715683588809501727468563828195295918581762726320944243547777702694710467139172713211840284042839527258410518180026470961690903488900318765712537754220657827966390427299551299408226269426504761604572591316085158676565352843018010099660940581966763661082441433973355338583810110213371178885875748457639609701401378819992690538970419958189584595591618464720975432739196257829061387995081437447342014532934259493147724950562768335307452389743537377332238364669220237798401392108870359569250115269158070214819832843295770469568844764289529662254971331854097233753217943729216405130309700624438602095909880678351507593960820742525176680067260772519609875286447486577018797061019003728379877080216028300126724105564608327550742170770140641809797264616822615410202912572507294384947738583671200812221382784007719271338945246522019446625508975441999849737899406780498868382853693943660472629421879908060506335530575883692778957051307579926155016598034556545440072471253005465701525272712341373096578563436342171905502150921706553118504865543796335312943077979748405081533699642172836591876920306266803044301395312991199167762412065543857384082986188820938097784523424476275948025431332243555883695828913472719705558311405871407266962318746504823089179629436228575571224877725757950373589107320765130693540293632920475797728563435250676943900706855915298242558742086867154700874908713880613601732989682539753134724019331860122906753977814406852456982307674093422956339886978442041453792742218667015091316557446878265265019935586239204901150154271819425718585556006378300238055123171985657061581704580107939125807385378674313342382914656708782670972496187736068359250088261719143564244806357835893748113412379496331730273968803191329555436875245678982082001003076197316173502649839978317573361634152979628855991105649860571946953283069623142662374804284993404063226244943605636002498627335579889398429215348017564605943973739733712256615100372023727738058528773875059425734225179281295385223974786712328631225925870851013248662518007416884704238821414485508731076070971303184428916789368473073889016770646357122398084243556670345055011264840111575263701441048864538781737408322656757081039897151874034749963669832677647329826240205126368834733550213835378797798536675871229339544080052264624748958658383426984559005412397839326960532441554683926537296926032493472061613131308680639552333318558836188357257514153942985913925010048901097519985906801409699653429293098942637904802381992815948181075889512479616859144692792118719237128013261013033502505136089933141654045583953602077816138022860638395175973292615204102582186907736782790944048983973199117023763437856396979800568286478139937420156676090001044958831918342285941970193295252549041705181864355211037772087774561982489230725430833746702478072816596539171404656470401127010032991290011323135340898707686048650706241578652869185280536934035655562365266791409183524595519915273855484341789998425940031081919792007184824278283208955478616315831541724969374301002988732478011780846712919530650750758675775592613777324815480502033563467712946128962468473282832441981362642416111803247638583225484377005347360069023391782715984298643739798878390406428737717535547739487856185970627317551808095645057707374905460624665802721711824300944420534625750599342821214575501312247488819860321110684657636429582453755930898657982403383445403388441510613667847125828371087742014371434594575331428476943636647409621717346739564878518890924664326267407649491956978127440761359341338252076997506349768437462162014282360446037443555399207717931516739341434183026725182801993690063418049353530419264099306528022444990848547020649575254639634347042690440381821375202885189719845051213880984733856908454539688875054463935801201294220089731598401197041538003561048224137904722229695384448578053010023194200327577844233632138116980988155498460781006960474032251745248736799251116861290899400014748517041306775862617627017695290870330364800887125267839070985048065283003050222595319683818852059729046683913503964934958750380731169510097621175753582802619211715441788697075932269462404442117290181943996361020447451975403718657555788688978145098514113661292435154242518947610148726709561761012891091909163698868852612483196793669160687114595776960137185412457399143402280404742162710275226714206280215960858484133365000202295500082449256212022337476208910982419540964629036140194867492938119148324823286201023654405975674458783752756299314084835616446576063027574372906155026951903056548667683612344399736168389116057239143571458323622797590252043127208060605928329337204216376333368047892463276111251779344319421619336306938253325807102776693267596831340646166693133978163048015327200487080592088571760758299622729570711505268454553759030149082377063799480876158221000445036263786642254710374100147282398386496372406377381656544757701851734485540744725937185770652874178009185834089259643117326927903091447900198512133217052632893857071897575809983409505524321740546963080837227777029396605675980898220156960013390158460704717931713302971222880706372583873576437979348712072525426740549888208266032568087530630930937339218056008091674760829637939932279298794435717441968059545872904089911336736733105896456028688151743007156714423337625251593920951873623241984914939736657576798956001037648194833416833252656317299782900508918079937104425941420657178012131797800937702384076455426218925226880235402653584250863219030116151382071021387104042336925485027000317173948178214121904274987918251065166823840821178925757126159852206322680109861496054637930350952237607370349737990216137766896190343304705379473487022204977031124139543755434971412778641419926978823748530288500426692787203598415326763061680682905928093829703686368339739951997484349480835030251374193420867663594192236652902425823738188598746698105873567752803213136002392338520371230513098275748146023505869366296038887773271806587339461069367162744216352403250189491093713556796245202794794501112471505224300109024154869645493135744607926994578542612004069520711551556558105824993038213534442560041274272537423716058995610260493595718506646996326691897400167023739796917077404217782147368497214254080075954260122385035025148706009828518532549545812088244878797412110803938335559260985474574800850987950330520489813967938432469067947077942416366697936260741132906554139908449514388061854580247693891430378036843057028781830628711298692617414692728306510311144079351236834505097757062091012123895855857282461971913955823558535097305988847547654853435008248725817903063911799674439165353371291317007960427407430893561588760499947580422419383917913930523194843122558065489419990473539713933581770451716339774708920555232976794957343312524669816171885187631048087984959111639602945714365660194981731094821695993282072566387215648059968319250897789714258953677987968371681688341095544743699631200023545951042985585383836144783639437237263925565746021672382797111374200340445839559800540405067845752970456656945934422844173197770453566043119849140516489794929035981808684779124859853858970549674993049105991944878105136584110748338843017565433670811337080308932335098897841001234937981221355636564584185720445731777317466308772984503909096700845459298736384012904442974762924025350852543657746650227659839595494196475735400071932277219928689370351512249547556289510610656030444159131465767916912041045366589825296622556778440705577159192879906052204017043660732819086760558639920424598404325780620347586696486969162211007439588556326015021869568523974257727269208552102206144166286852201307806386681142435788803612269387643367342276046904747252666154231226444185438227875830552383582700410944799565855310650239887965050207574157833050742033380567880939424993515686438287474705398859682617089617874838550971501984973939526851814919069413750649402716707217818678886159136061285645899651083241643124020408738635624487099743619006591539578225928664186374151479459158157157032122451894628127013004690322149190395279128905071661664846359921182863395991449096298059445729234769630333724003991709146440285998742061465366849325947700458779244177914919187110304634713666009542548872052159454625412350617352153186340389509003013087553641300309451114062648110882214334879587957387829099100446482075450256079696737404883750072680450417911119167222750174585971700325025048763259721028100790569670167511123923599116744791366942063816273951964143471028854181252389101362228694238477184177609268161915657740247344267594528439211228780888977860213867453363337478401713604147143066389847815418280535265121604290278211400885912089599828559082920200294738712321611819328745614647870236772199009307957537469585042905020079874513397823838144854914833957457126473484304804084187834283186427369408114338195263443542672864884520188526624117799360234711407677658356644902087774144525193764175586146012815433064771075935793281443636521534982282007399937066957180263747178866159045774413531195454114038123205946528314860781942093889949370882938485232116573785877144880118216963152168836353162596416576841550843520982895522106024931187307693964595943064116228977807849742348347135306655203536877027729796140555341770051312569600641809854826304514669401600611998372885952108405820072291284333669947053499686809293822809542879148334435516486765123144923286316804259480635420995731879345459200271508232250218806274534651783771227610963533937958934463695538778655866666070226247062012702388447172718637538855495469079652901560870027990216044512462117977094706162771304250234078563624752864566439309655743400211804428316554489713107689326727816292369888209946051022556839164261080038609909599512825203635594831295402492439636655328080788688858562873791135140997419187912662041339520465170998497395191192145341414526240941127874998797755706342216311139110941810391427229022722733670173532416650820423400068606721280002044494913572913804127829972098898772705705940834340018015646118349869287250349947537533846220382434873768202385860355908410238807972512857530484926448369054646285608669781275964807153989744597452828104919457457071844255073108376497632811559306434251607188955868493660359174609073788967718394557658648483550624808817750216470680095742483346434410910986190459203827334321128839603478137411297363479130480049870909644880929961854213248368022813657022019773086023210386163248444634634966067958742174923567033570773666933406957952521850069912136951923846368093277300112089436256286223365746889344792891198736638049109374960042774292162225909799189333378352761156281218514869987178400154193319749621563004328832851168749461641184998062550169721834199739568189770856016441524962147581113129641245933269715987055274163464625752662304004682174284088952362124035356428880229230912674235399859611186288015918482501843360360667691335249460221853294290047976851451836859111769937622037672173733677658970003399568649524541792614494917771057277288224246498278171889120901042925748974210419421428684274636500926740289893928016203878910068511182273589515756394969806832485046835383693522240403813061563915245882290724529671470646084739411784627981990985902102768370903808132183626031149054421952592910171885822655050086728334069478762965883656178237613809758116659529713024559755807436864853344760355173903279252540804708223233692707684380432665948320605025506741987257127033805018562738237176897067844767274288402620041825536716060436322190336250451024821760694496555846811816572130919939093635311069033259104930916291873427448683455561417890770176666881134817206960807139357728852352831090818350192128040797523224143310436868063227505049308446853789140698948996242951184921873400375952940478079023453710497263191224161795010489101076714034593849106885312522925736354142161388186293488052056180703569430934881442038395601802248934165889754242088707260776085466425115766656627886185448069313686903909579633706508662769082032412084457103320903838820559308931609734572902214368615714907562290131416610207618670972786505364425851522953675588222123864511198519191534798575018812221861822510781949185303197727193932673921885918859772672957092048070708453564135289946994887821761266813579051041780630133182520074356293755889969874583003473540011278471174701579327429472322371213509187568351400763197054846912915708422459145507655140355137496399486967883844513077070617877725372162439134994920942764245549920954711605223416966816835727480502172755635401401096934539851797365982748867599142040378506354613769046149475226354674237425305483088098887517913167007370731999312991281921686597257073703169472138215041340147026169033673286463002142379153452297673180280362696035057968802684767556873638116601752244990868063767019225574899742465967643734094429795894380450289359878340092008893962175773745531866629309168524100081770006453777835450913126995337634147176246344727190381991801146176276660885923398954439714853845033544083817176844125534018179970002229872083874481554965357696408628365004961900499912268574301981380514750088096380417142890588649943387563272190393222724702221256724452402772578063246164336469005681370437635128387636055032802036570851432260039118137880806717197506236263604492884999326865578060501633546135510431992446764910352578522267760010488552635031394229975084387034715194256627329527430112125670203034539274829074987303800647001871209135828695796600283844104150069894894473077768980701839274232080258074079222184025618945638391944623807209762950746725273546269375918142231024977145527358838694583238375384621513142891719963440401703436104697047955868140772044916422892992740170307848022797935446805929413571994819688776314584446868417220135356581791475062312500252932529964279663668134005945031359665352020303760204557738603353912399778395930126547914812599444164810560363537277387641861639689841761032439028364703092441232457142033075696071638000050717312346781129656046954092713700984022780497925169694778995037040766581848418228337730225312497109911212083107755316410010978220832285006417642526000662194937236115898957031012098567247517156757342699865072825781827251549708830085517162009894849370372352956112880418255674087932680870539938581587167816391390442987906511137566532252141436858973701495345667987455042748356184767163751361191025566181884444036530159672584170443448831158006282146106575795810751954990090581727167704377169904972146403566892299643749203568734114737046556400728308651386371651630746447734480136505695870604180505236609213284708352563736259625352117690359946410520404285345651225211229186168898717825457822411527238928717795184587854296894291616042647999653588921469727378994440840196959908273798803731995614665421675235783856542425266837447572542423371730502607585257300346546938716634330254102629392864251155440592020695653771522969894893083761768477006895193865989528212553539379670726009186113009810303095417988453891254901348035843551357942424507868630592351499858683028311663376300612680988470582710806252417965089142323277006409800171608897641340804994892394979945536688437162917949928319039680306659345015822167534461836467556242988539641213941311518240639138542854239123708942441188837156964905910266257292514932737907704897382349238661131911478961302910022191300462423780534913695066226113623336689872310825233436747637775506478774843771049944901329826939912141865133878816396799882801812105889244666957398869551548780698752863162134797385557070982609531628813574513986995397744749003376205336649333637907255576050287217784566258241258066171300797712709063249332928813133354469555768435883288118759211390114888780894232142548790694363762041022668866072817116708940585029209572575509835313186077723838409754658071231000204562557447807438169629733299897233187964124007681898467859609504847649204552484062652364391334946527507619845416420759971913982606971210520360650499612378826515534095927031313368160536200224211201534292725310257302617332308434979506030290821196836731916912062831073494453056805130888196023037642020510899349344094304178784714894514122991999318732378456982857499911969508278545910495855100475786363443406580930211698107683626117627962229362618337431352179245643634946928251466971768708175809648375561038602130891091649725496610924590992171681009134106196777470591469327242734160553214246470886837519002710831829547307354340364366443066583875186693314057823293133860155522322993593028699164139072437460950223787299594342779633617087847914523069498294467296037294604043707779617323740284429731122609717309154722405987173128738063633942466519952751836036425010134823677059231920138430137872769310196722073717458733853806794656501770436183092522270675684618467829919837601174400630924267996662931469970317759475473959789688645136847787618441171723499983331777733891741858408318794713103540051875098916150455591841703082825098451912469437818227790499852016362422155474308518739814069374804300091767967317835318762550492207477472756189658939833049309263135392562850619040374880193251989961821101803598102152656978694200861179526996216674814912296320299605340482902008790124640516792178715174536561917430423896167098861618430275435938395488992062141645361594204034469329410168496334318739131871993577780593292143266790575863618563629507318655485815089375980887918428739620151767660700261144311548731064024942264372741440015727927184174186910062453707952920296316592567942859275781951560863649614047780607149149156371003409609081021723852506423252162398680478636825245528000430803711238706327741149080965761652458296479172035378550781726697059206643961376895336588143789676163432290574172266902980620416570116762921142417765211131559694395131621988071688827985245629715642113397862089485873546790482887291266782476352197569152740273960449116256815665364404944754336740655176686926976578897164054859421842774684889963604132490277669440547732148188110559775642648839064987090570142354185736218954086456469684360751152558971835939578688066440191103038636890661138421437067870022190124029039645568673387310916687539915630547580521977221640960875342980169383991853534702120994040759323137286592884385153371371444731514144954284066794519086193072817033438320784766371651146641110735982686243999116667222447671577670452598389579101100919759842478530806771333997044567877572414542162170223407782475193130956182773187005794447902246257327645472521630651852305725391521457070575583536381260753537281813832800301499468684535940327869145028949289064276444638694154824695057232277949340655092062648201470228599057719699896389320224736061784924638432470835022647035300872564805016558424672799384682809559167287351501305411725472559283229212064435649419762344221414293776969287961587536279507663466650885907741832741852364661850332887636859923311915192987141589464870835903054046845985511078777272261457266091210773872102702258973815155092407719938179697673012694320973206354041036293632727655468600203121578749641969072491688292305073537003602150441736229596749771641460992473276450980673763189046532378392749666517475326515612515916324690788356886015046198748993135261771392704095842861573393938590351396502540479067100055637486325651565701740516649115334760033263293531019819811915903968757155016236596232689458824336967939339819933861715047018851920856815158170723133789467225858173693247591378177884461963510794553982084326489267214052110426282519244055900052131887802824554615372743713811692344692910343789476274724605219154379568428857986601424196788750850181259625139855315999856996477503532983206409980119008266784433165618303852853206093413985609671608367236441806854924170063225415044943516579053209191072045102275996223434328123527343588931504670045646129679078561129758249213596539182436375087815374186209316971588464087520475415513472991761567078264201646165296850123669550190057798808030247502364471235331288264322008119912427620285099117096481395460761677445082242651388012987038887240865708245051490401291249375321071251007852534814996962078814997574150399739977050025344538765111159208880634465493567260410494982184572747126326544083955586464156882239797077309252065236786307776012863486536874413050277915668773533465124192310033172671520943712032461129777820919892127212532506181381737365431316822445880230477749937560928894237856386815840597907114753501812604656475126378262791668171007943835110708166809813462985819410750498836556819779151815503890864877063913936596006887594443078776798912074497307774997684241059413011431001091295151193685561143505479760335411262762049986055889720051617081310781615893060102241634037026040090561959250239272008970047130659633937844579646700562350358362603223787855083046472283668580951630380376927210267888521938518755767104503688075061941585058067356291458275901686242114990370877465282972185455255959644285371936358262622867864424719955039008144189802106640547457805401435207312062301267123170718836824456463373197902928694873150208193923080368997756821795351592080371478561583292381777849930676412326462044838258918525428092157240169560821428471667349510411271513601192565207639776311561723393644819584107114146830174167976964762295624701634396451573032895751773395043586044102982224355453945392971311966397914830484009108319646611340511463791937925861228191281980725353234609072383774682057584296718419823327283005169156805023957141710655994268139883370291979398760768466013031927511336660306254914221804762079300396295125586254044793769419322816444816453304544110431006007812559826094081113810682897448831022716934323816927451519098796192578700130390863606245536374432673060458314724596147056316629313613230692165156625180272968043683520744105797620976505585134639030911593324711677848290726324989480782375976947711290171394895434177195507899785675081375290922248721489859462324718012139542982477189378734994334134294525810592867665064007793524765582859036843976715336976314428993481887467435715566538967961624399915696013190097908548355667294105453899959130436457954427477499978057776317952088437006776191611097148365463302894647147801673699160387141494396238302676416378612905394152805825253160746804147425748323803284658947861665889544897075107708322022785948289797724633011206633576797914458769209366863602767326323892352641286476345407798345866584279301906750105721693909671344523091976694049946427529174925902424442600698816509277485867513430372462428773966944385208962997724830660075489168239549937387220134483545090969871731222014173843362005646844429969821740178660281112869580788123717917778505153283862361813557133674435226384393219092861962975615288559980208454915859470500686804502972626521849072803528468586298973671064108000089966736997694720182857947490600019797722839626567802910146060933356656718890667326678388431666417301285513975288354416578186514602721890526464356732094680098132593449294063865824901376614558448698391533839398116799385747030027890469659387967130964169535599221929286378786365717226331481313705158828653342394557759648004082827872343569240984655383953369993069886632975503971473396809206590574811408085457290936391447003729114169528225247170005586866525349173360629602470338264708763078009408707002651714923098898253974943147617559579786373130610033561091651706805834357911711909794368362716618897973263341996456979774766406224482192830857274797907670215593926146661668621377667182699577387545490464783262012832444918572167091602932426215562658729665736615802963752054457197227505547057796141103365942885590868481070965652110205183069601515314857275232256789659016436930133874882694019060723582375272553512937959234836785277164713622210201106304212307086549132410317403767094456197917134616370910119362607974308412940234488606665323661500164631112854218825533126014060764902310746510037358562351355817998131776109866996591054599064503766971081567510331606576626168763511698087423063086820210188147397875508177419936633808405880255221657873790783408814576115368821406395172251382147163443057086268260599835021441250306357702150247718486483756471620798768051210040941652299682163599528420167286843302956697130697516246889670240720113302958828677487578113633369206900459479729096333395221147308643224477980734046198139777140775919813662970152605735563537785279465552324634552818991981955971792326857044781813777351449999710544881901006563598390415615588471648128974204212522453835320824327033298859165760988462611959651878647378210382889538367797053316627198151261213355934321128169785743466724965598077869708465558459156888774330875022455114701639579492294536085166998001824258657707764556166758606905153646899718628526437941588348886618978119620357831479429780907328283297044953063822994764140999150152819893293443466810509393411612734468862062530650244051667719554412078554892452571095299571927611159513175920895221358421744007452924717213104544021877314480694866050203184473147073885871440722526360862046124459481392214672188872922599985468191079688987011051127395059719582537618405633627885405598211361625834384861635763318344617062628475883908994991972536346079144149169792969864495196492596016640945192278022725973366901398870232388927799180735315033392119525644287675920165982298000780995375654965757331541833764167889958080559795697295792889189630255904066324152180797812646034462034631949480027439320272749207529096922286457659063683744099280043846850615627453877695285913584553063710766560813659574799246282038608851829417345471436401878848428033245629646352228090314028176322284721868204886581797578300956826952533546006461611132117421490013200944154877719631051373096862417817081043330218791015168956580435952939137045424305370618502634486079628572225774221640248160798435328015076074541004187615447104419309284849824233946865745439473338675957163070674986802363988364784620279326425754381045047830946651004719589345522719291672034402441430094706503171664621592650918924504184204778807455181472155470883642425449814611096947377135654795562592849662902970290017371542166008517107013533195793275967584567720881894362271629861430187946561204648574346231036835736362853302168845107317528250273064575364752952163643528491028578214882079295380779114928394706918882076341997594662274159362707449276434079415450104892564235273589652928774280546284165937715248318796244577074835703899610017586256601790573601623487613609182904781510900961529656519932467505110350725560655813995514551196186788640292218912843337826634028023715581731810215704505234391519549111440857152999028376639444317398189815768121376212106409466028050841930617872292816518371337829946813837507901159007092701932383066740256548096531723442717465931014738360786421951098647461180619760339189837033266336445154143273936183299590168980036864168085676608064227509936810450675650458719221555165259050911175236188164928090757857676949340854037149804818320125756987522898038239710090539369019251665598610759064039621587464766721730002672674392548812149046536771303560292543886346470611831947021331383695120547537707346899719912458528864435182951945753649756893952048964237321154850345171329534585769710390402524870844002906434604411185374873137295593079528225891280979171563767602559541756620799031980150733612405827370568681437864120469588226017725019327214314019783712459743720936915920570001211982505700449189116117319030150135064711208795205776165414006472138389485135468901380403430215100424429576183001952291140130720345894094321724000976928363583411275541248351253535427795878918876817762126866161955851741729982007907701786245828219717279844192586308045701638927172032056292137329630800697933178789639064585192353420356774773547762906026195189338306090664443819724044069692060448146216274476783584540287797713170078826616466294126443772131894795160296100280336366034998059811407463638802490943745919029118899619951733992432768922672801508739121168882706836474761174173911513182896596115011267085557150155016250726417073728276706059310085802759804779470152853036659611491872447289891981064939092683768659659335281282515318830859859935743402839213998817467644572218511394683429252885351601399983775751277182558150403657189047478857846915216418391936317702273721438995407356478639647736511378036215668405557755864446832244753506936906150352814669017193601043488769964629238722093749411519181091362732452779907962703103409777352407929238636840894029663286173967868733958503859589868482218714412948884945609341493074756899705155956163912448103096974723512044449677235389342234590921560782143450538994530895222481663514384556494312938870536731146587405727442131585907204095396082232054519331554107846434387996594561715112110370727094687061963871020193103519714321438610914002760220521734580946673104550194309790188413565467793335905798076124729197098610015247922151364680922083506225308037775748999210490128274520482054381060823476019740905690861046037479107973565918769004403852103944642917437872593901709453368252805543901733313535095229715218243483661111775607344999482763438107581237638510629015768171022676169537863360714222394830880907268926217345922918021876967419159386895942056324952261178232472222888972529007000483669481628281153121110107207588272945468985882124273728023649083095915856448233802159371285591742455556776820814194720907921774041824758839444730668281414839449629936866368439717358486528794516868368041715963308594284332349478197729414984211244398859708730270834540004931997961692003533337082133157085957003330182132299971738103644290042938105756083466240185701716983106610632957766642435689122449914893740606311243211526971425279556403375636727575888937481300352580438354212873405127557296588750298521070853138157661642053862450213636729602031133018790211318647611757719868802548229971737464750628213874720722247877226327620261566799079700320352813377550894065394472958567949319507163352931552668585361944675304617951462787451832515727991605459544386900987575424008220127010298064209315975413209583411573188522723687662381138535971213956628169919007115475944152259255714790116818164301628634123372860434176945777736310350810405402633169411358450558958090292824946764298847411052822341384956260998263559661654306579263397129549506012019578362915306425559238215672689086378130023352204356568916552029157775286922178883775316187391850043594990292695072448760889229863606818269236953693760453779971997884394357551769677857413543030923170171849586478968457821437528053300609257824293352116856268862066302689837416501191124363090585361681630140935936951670047119074165207611698236650520597074125122351467362163113227649470185130021719763831467430051791408011912802992450173867112475375982415691242041906466141366253289391516724243740406762111043703130391698786304518581013777772693960382468140803274566403650105866966597223969926524958877991800725441433907444175329181223528556291000712232120695486670356849523627168104004503990321983157497766476240885689091410479747478003707270327089942799872423565200136458382054234893804060469074400879189013286943643938272580386520022115242601639637562544222634592064133410090975509028906485661894671338880305092538187258038551378361876478579040774850959157680828998566912526153486348065569031257467440728586767117092847925425601617891067030702349046433491039521961459115342449543205257329628725425807530405991699732282759276944497201335358218925384508094057924841646103551499478711843332395679227639148684531706009321210005074352645540078480529158020903482134662634249394252553505953323073252437371366383671271724837295768889186000073628919700289249002403072829057920548634275210675728036106718115008659732032291892508024584839933747671362786258350387549110782086456981600588658160887549243413789384195525427971493644496435460968949874513727499531043357172996072779523013706480811801557628130876800913892156771965769713333161341551022119310420579667850410936072129795827703025858438913670457661358151381038416271067396889100100943425153925256812875947392429452982839145815920281569445661513121167575680804554227830689953051618422877003755861565425603195306241903585380711779934104522518537630777407862076258076668599487619171184367620686776467306672349499693496955127025370654185463324454459233540423113771508522259187077117712862561948222638042000862992880666382331965725082303009163912591015011152136126970377289501833229287910114260116150818578108298756025717810712672033083331271909973613928777785286232286341900896480782313875478416631786916327292313805653285739735698280406957932906129712462753904798249926767413645655351805720653761934290038013606192382774434899088725234744552340915031624944137243459611503696508038379096854490880730916184074381888874388093017013688138986339002971081481361081727746355926893180554543822386259648763723750330965018798605668825522391658338880645399310219234338327776529313228857731360794899405252344898963345410870629398801213625162513232606300936718748619296855367945497097934285160012133998763400397240582366150409133880741298933011212916075948163369434330246233883554364800939115127367482573649032996918371704000048595734283635494330100531925918548847887600178994868009444659903488646060923882636065112200773813662050431408722759795035798083610272047286265328678029865611318109685228517407110661312069551273650275597190518506126243873096513563011813475319089999599310085167746185126475481061947829054673093020166732741522399758177088823924487490619683243965795523091529357257890693782011414001297324497128771670033489553144626024158154175769121833493452285940387953636486876745563900919539726843947115850956685445360013234681320205484613375043361521050872539063700946130235520751037973396310128104473851411649496668601543265076867232612350040314853817378970316200869740844580340405010510427578276970466324714510702304403925698258859221959585900601903582268123319379355582814456599132221005126461860311912795581696806004742870230885509719625508357048741948926358027416150284034640013575668895660710730159486409148027702104000021366533187850690823253740478852217647254257263449733999820358360771109425221881547920720961646901247500031852008972226252748428905185085896168723216416959689544881840641746893091043226959287590226678326020718619651561096451428751312135063806806521838129340245186210571872816702491114579111870621767950910853567248437290235847479461363109345713803816217225420413026953435836034113252121136398525830960871053475317331231238350017786870415773500686651695434560886374354172161098012970878665441394462655464676741843791845620955094519925756131329275255295388657197718858378378494738718334711745267444765082486046574432779485313853965123986982642952973905944530027320070652502416219953415262427930192359701427090299355462063318029531498788917767245271983175204241986233739893137914742060231910836536201770419436727627106203036319624929482727578215953343556237521881896328887567648125593217001253011591514586843932214906714923000038589283094303441654434318450626634478741426738852432421285776482972744735295033096930242619325890469859996546709962845856188994401036744090663928898952941757239483473977199360982462385878597912086746932670258794867911619736653057692295104310195514333926641561288581817376565287937277749263133941083507286999976902130504354497678801018004596499238510406909440744873015059063728462060418511963112837266198917975934557737638045002524501804310190418926413505827011343595098959263892653474335688350135801844362904369781111840363341933252920030114473145035184850131653123226668828545082668254498691963440159545627545016287296474538467729743194594667050081966427989208871614407826901230493291122655111772640392704734263157136216429777777429648882742970306490237375295889050966490049168590223974476238188377911327891007128832423708049967991616742737986721624770693572763608425672128349143985230623002564997068422311535296385734596541093667052817521753795670946018012742779895122796311145750339770946497643070157714459114577489213282222110818803039518859375515301081299981598522616775643936246992654020548071494861260418954662178190002889042545102972443368140135157067960952336135450989142986770811710146277812046999987508616238354694071801541933103883586454215826475392694169223389804535797634970494962587326799211933411180308472709659905232585668511050631752540193066772400293836105375388247270200019487827587312288332980720758116363625706046462657726964399195918229581756734182385902564108942779996652137330546780753882450557598783811541103444261791778656778125051870642419874735386115136687810117310446109642406738952726699397870096758753329718904349284057818322190323064186402713829639395824998822038265552241669974139273366193366862564208979033696959537827141127960891758145615068284479014768043605757653822596626194998994627097623644130302467676046174039188140557657704176672112324975906439687218059707467242415771447485493752461476195635407508221715575158340889017711300535956016736384694919171410623741965616408737915736266869536335391738830595803575715670463864101380701212677475607676043554379821720024676965141300269830194079663222244646542395650116522902798148859393612291693864857641970185769764244009432766611634897229063557844865455384941592220530859443870409316492486268707280043190427243294837978496725582877435461763664533724064896891418310578508722529225649613173552255259348352726291201831410109032269728846740818033886296062781459921757826942474315100788221145717259607171007368447272041112499587201992126437434423776076861739743305313447479620466990738188282893986325147885758062101527390544375282036372450720749446756695446552719761018420508106298840435246664742507796264180084483803052249439976906372622165280081186042527219567548359239738523469974960525963725578221566193433644807514290698646760316486166137775510953983815973334884532350565962832658150819303457915685988306399303114899668128255601537315402423131389422083895406720617584942902112257153731987698157403038717023184059630750327113015515720966452745845703978771181500136043599432070318311439567234587072586643834600256721873443357482072501154231759929178485031888419604079305769183530166066365549430205770425691117553985088842564539438331044814121516600171211517679074397637353902646714256160574934121204932183868896775132058689411220291141494086502020065326394023834327345645395619547412748762131445456615508608980005378076675076830262364729009442329817491648761106434673121877768050299126956375228647383798304315046684375145774409170167248202407797554445307776652838956800501332618159133699355464612437991795430506215829076948277341751184102090052833267733567056753199200131097723932647943871824875402563550009261374347989714456492260473966839835713772086337547984987132901298590667907323742571747573713910086493419793992022018243278331721832483867894160463263971248857246197209120596955592513935096396755583042393947922386557362903221336136782558507378115445295387389258372037005730375481885919889161435020095274188316993793983784238789652201061064766075408380117845962632055583022197569869305211235330540672770210703032914043010696837225360997187723211307893881540168485288587781095373536971191385239962213543295633218919489680443970171868329925702029405894998234450298271623593579711363251356239575862740039852924500030723098517905656283133512077752078327666449379132343796324753414389700009148435694709538587968153655980917269019495023731073727412873278916337044835083210312220831064401123243378816295818897128137134751102199502199017129604152736466701870981772215632188547337375481979051144988223481819708433575371414991987537168216569109611338363609425495768939905476898256783310645027609188996629176047451737434412575931916939522933473553427928260954925734979119031368043041180984414719337034054347779996373343320753264357322072504343623483691830326666947061594394778396884705154690302667083808914590726197078853859682466076360447390772545341266282820245177388997072933650595971047827586069393810942279262338745902289691789785571937589278669957390198678833575313106809683600139107248189497586967089011668797689502848672029633467339944868881158687422143748731062152659219830536830033957527096947459106321406644182244174295997136411048789122318760022135576600329691371948773720693119370387463130694298180167496090316358938240122391527741427495856178782000629242996993532142649932149978438284783333073810278591299669335948349533777147355167447115549781736554383740207954056884107888173937809099545324381364509013849443407451496471054916667051280006004199767436470589511511391549241090746589151743948676174864730905698842531008573480262593074409964593484905082735470076190695617054641583048412949086354081292828711395669098599773620601083588228524136839531948151487065045777624153476275520224344248585293835584349229267171626210758890319491621255758132750105906143503596873102428074190498889713639328072161226699710747106516762125889050684860326889300650914155528833022283600554264826616988842414445429512412853720504541240423866222262589541279161505179170349182174805314468338349186507475751367826105524369968848557196358272593433186300706052959306306892157940058388439410590833220235090817723131692682572098938393640329864267836842890582949419423477966977241518672956369732752515950935162930736419064106970601447593207860310912570533857275311379850302323617407907376713610852783462289536735734959177810670169652910016216708438427928254490682489085413515048965703619638108889864357654459701916730913565676742841178894549313581943808457651934037757510998545921351214835371978592901173139902903442811817260902944421729083653027337063272362065450063283687408556403474551689319749546414999099726314491901115531667399188217934573552789516805002143949197061650012548610148123324420923419351128884234091939524573757637109302953171656071262948111518139275066424040858945039912018973548330041634498148727779103795062633386959950835083141426375652465500920526669884726219958170444354245688569340795252359060998744963979555973800115897780908721218328514724782010054582869013526587367628613345210113129583797293443212275746728522133238964197365754194727532177553081146116620815469340956505810015754945310315383250009512304439107416871995172976511277953047006722743373392547852945107198139071591924843383914814502046146078524370868399069677501173624858743142423901592098300938357337465919827415469302856785470927582949536578017297579373549402998975737611679957898347413770401333711631100207557102327583014238944899653185911042299751675570629121125723840215397520126294967655345139134783647987369358590208781063136743885588343864055351812360138470955476410721037915800464222695872498825932521112603662703486135506946159464206910072228598306290135478130115196255410406770159955957308524209902925526790156437813631375477226417072353545004364876331355107943960200205886995271968506373643571297952738053660027446774143226167626181887582412540032572540283549407353296277309624634543409218905700746823868086585540687783755633768044506624966003360884300661018603048977574041769449276577729486357802200558852164423857798319338492334914296917350789074835582488790149862760435210535095463307129645928385375813261199700653545066190497178304966821095653776990834713980754690001195087677550480287276402342676828966311334645652485675534572710492381713144815799415365376212901459862505426396142823444298197242182962505252266900791230011054995880066250344517220573886970894765521459207211523692948078169206279917530176757742012819928738339336218423920458588924043940999653946490128958775007447872174824997762337405114846126167302294203461017003584427501853315498870461379435366595276995691689170539617422798316608539064171001023169416548006836730914302580595851177767640519674507134286388887917519854181918745785095879185789392329832652638778774322466095652268470241640527158191595457798960728038888495054492768158065329778536415263783811326500615108244999995736172971957726829758369353155158049531516711153872976049075967981729037054308041680985351544341266641703131858453917253126904189436457883044561076043579878774608590496662613816122585604005992560721250747797936987717066379993214742856263909588324349751285424329475229513639167636910309118162334499622973877783204361678586890381427329279253285846954963047026945210853960951466361410543718881670181994349534536311941657797874559510331915401986243645274717256569275012594055579784344929885896582820163591091087672658604644711479569918586409903993746516629057502218090291766272401945156889675659100932602291778381926547914677812750604950147513019766055978218828727913644038634603721249558036717932255069410200861429737288648071315196445282388892182837507059942653316656011109819372235959031908526213394010404131545030430661781637793349852805554313875115188142326976047423621140336588160845232846839340444842580316562134378565031797260553985856283779087888454867615636608784059123819625188477996390209489608502476463620656329154131433147509674570530456009296352762491175588400359186712924572434026223338392230970693577844442953376566615393096213905977388439763943728270029582371536414407697216629206751314599942623469165282019095961343605085193062350651111510147646934702664611242356799413011873321184374056498208072976870248472534128893267088457173236073859840454752207449289312328738675570835147743726596923124029417070158127804295609056706368188288951184093443872951280404014204235081818398027541488997260692914590675925220598772607854148667225979625377119833335046130540714382291406382859164134740229897936000060811214447521009502125640052107980007862237360515963106398195930442549673387944147597376484684034270264151081506902604567806413282971793450175346281162947246969941762738098900905545549190207764947941557078374185188811593631306272034777476204141917165487479886833909185783412132024622152505131476099595506878368403768412948112698676382056227285492456932410889765396698811618026267534323162462146949238532454106999521961303546062211443456774203671671572697467181506040759425513432409440683202239606491373487379788007790443234745665586770637921884530437277691903726632434546851112775854541063177716704450920792198443430911485281318010235730408818199850122653207554607110773121868365647240188628826317115150663409316175487516393626335895269889224356711046170118444943496174014737806579410488012071342303690227995706978882774287363312051730005385811310980356414690262740226835412365738332415789914442668346961590675071938685259918070899674223502731834655104531912818685899383414502900697514300431599596310460279565364601725407885436931258708809532161071230570073262700132737641924631528145884801316666693687703421824511234275841938878574181727288600414842373244716959779451817519792600802804942573042884077186607637030660535358499717487457367705098149161290920221559523048480417561561193756323700382383534838020904281149493438035542783545407455540412202366109267486875488847612487080698364570862502930191472422475134912567832034460552179406214747257542483570818217493366223756966201591553750681521403633128147313070728799394479745112705475038382770968042559945393360220500877172790369134611941988814408192716436980669086457214437721665443017313258619687487546887987770274839897870083564175002212933705256476047875950542989422839154305635383878974045592755607361886876340018117854329078982822123048236987908094057854832414180212266458245506155165929873226220043617584482668361180824021208033069440856537016919729761966751677859219581219671595426031583935947968805277730395350901903908178961377115647372615275689055476856885945573838927087955163143878250587436187038064257717506762775526958985143240467394816127289494453278596836752374700113013025106192192058238704987822192972540277968234784305103897376609278041442611535346406021506908408323887590596277736860770488859375802111009282327441801719270542330555926145470525986895173847055615453746177725714380193890075769658257955089678926078308241330043532638117964643850165485570268803194859239808181316162969659779007691980160873123170611749648866922326297181912052235641062987960174059022352601848143544520298519000068086513908864345972506902858880020213023515728701703815799385417378383088034952509376381721642819542713623881822458550370938183642316513424417790045434920770800257885019971388057904852965866869233438100447998338206527857170439106720174000947342784593831429044104992485745412259462079035343243526382299081598143102716249628279349045157434902074157541401074165518974750850717198863727045329332199987286803689324345576273277877879699272586398937792194259223646683292531102056737888407904406624324775421680700015327869396744008956231531887266612369225401421936815778639165894187633763994083365178356943217813827417218397681232245076686916192713987712532128840003309475527984511405381552357241089637362281066978148261659460865762141890738249405392582183294033249110252120250507589565309752725963477966197900149278498111055632773554892121359365062122109016681513812708470864231439206860028969316950246685096290257519803096811023613043348271786582763326668465284510007259160205236757831573014313541629064188182382226045276252823632079729935696042271905461016384655186752773585824168908577173956984132300522773459162308902547613524674866122410748034488788780252509042316564191844390482919312821993748825657143325117005469822541350945510621252688971577580471657873413430019103634898910586459057289725096891392148070343214554401181433394583725405459395118124923558928504326472826458736737947165391125242422307953084364269883963960719094180379636221015423949560168164339797063028193452456217602954120967881511646298710331586086603465111053407648299222471737052880181898282793693155362292649399879534338928526786129990120642122525801071222637137917710390447104525612664033497685692198237071647131703045035809114849887986512399132518912592564411403088693107049781626112961490175765092946609766640664384640846497501339378114677723035788930760283227584775097930872044733293330201285310699888895807907203469713886343864558600946615734006185044400444022865747138154795188991401114965171887367208843506757799807221536204877565385527826180929310497046002569190969448774066434625635018838759179105592846664001060099923554561006515321873884539626910236531308981945556827816508720664614908493915748510446387886525734371412874527613684915298637630429022072124922370211494892943080726589088824686536737234389343792882007665751275512274261526964135131487242866517269820315193739708569899986238642784155203092783604142046491232183348778745970907073445352810468971660500412739094914334873168534268069995742490014024417362351216355240432285416400063822408831877089259175149079903630752034835790364144119731810493013781257972229437066243332550615395264769280867133006150826775365108197809199272212225960801723302315351997646339636212398838829230718572693006594757334518626164855177479805375919484438546908427484284939687177057373849892416560928556920389305020796186207660160504450022710540769848626353989969506016407687419317871421227828861251887018464904130512785228557616780136427053614351360651031173361747300283697619138905228289602903102489894132625201590770777235305435058031252879474872905365259417769351932528294862046103214460227751039932013866160127673313819427035600095333850862664827976396555839071981104471025180566782110462801945219511743328759539445242808187018061116660254054275581076050552121376787530710217372651154731543754738970946329998857249857638459146212212656059652323799363697867720573369540809295157653268881237764863688606344456824229289951496912487848058156980051141434224886063183868773970031830638292311888585810241183041401834720747271297104114848425312918702168750225844249286098972478213802627808443495168066053367472417168557992182479567604799149941986084231049418132802076131601544053316640382530038022536951178862704301625905317582186578795516299040665336268562474792606746086568737573421185789884910675531985829021812944839724948275371848307580176849398628899968344356278905373703005526863710657721378810111348193306313691059890908967435172963041324333347931486618187451484527556376308630056062300330736750198002906568893109427828454872609375813230485726122148562637294903492644320412249926810737816676659761835867550983253419098994207000950343219980299351295064214555777659653977137400247527505699746970761605518639383329500027948990636613285025717844376150834890494986409385647726303325604409707250472361383673834328739210641321468628014976207968863379381984051573707842142497985837022152363825828118228476433990050101712120902114509910886231819277259769993647815799788616434320429492919328566491127962532778473918584435295626231242726618143650505369552421873398495153785441296660795398342005917329128110650813309520414406888621132594435954111859514893357784994247500848472729856398262888092231745673379181056268713604929378465565251945038134614663086594755536227985139386852422129271887024776956410187382828020758353465204053874856443936714526563436434757460411693556078714656174909878567875133631537168164937818918034824828130815604683636377538883458100513359264549482794805387762051357698025003100603860075686613023760222075973770125732831302122064126489473538350358429110506758342440690217437375855479524385836759545846663532214937325616706929345910168007379151529944448548487543423528349591556851077843365861972886181509549693118565154226375900098920970669198751416193279729911240806475802313820554323233007364315354182634700292411317427866262234418549996212501280751032358789764274171307961545516452228597083743865459233513665933956453404437972330111365737874849371947531655069504164743205279978836368651717946938362544914138272126121420131179044347533180554633627218817165630663534161842839911734197909247625823920740545592096431428253236820757258865557528901725164813273676441101068474257712138595838024919244206897209590943202713822976247875341878023378325642406298116498099509697383863976650008935759916797720247238548328725241349387503140941133918901963115559621546320503600090536941453777400703321266649682954748355717431960983076425948758251772818814454537373120916063417581338473535743620375440909911563303167352247509978895586123354831671084160971259995652611876855471768621603936727065381161896478776334972081358896497009203895575368403425939183379148223880833794995133654043121748296124574923744239786643845279740400593354175878606637006737595611928312865252582981050965313392414212533051936119761563396301162744099787837659092833500176243622406066383528699996393043215856483556887237449523257744623744082402783880023912641522220206128223342426674891496441670511203299502548728141049660857098629058752331304377176602619743815931460189123507643303857853919612328298493519474009514331277573252174155070935671874524805578794930045715076535487936050643714356193734992981852893245460486793666708847912313663761688670073100516987004348243978304598285747512812558108057587133496828599180168364480072339430782288948019811807619128043432354720809219760862809964537002832731110749036065378579969535878200597505608914872603791477958330272565238517332432453202641336711803610713750790570302644279811653019282640660458283205208056932173828571269743197609367756356330078017732651445314232470526561519510347810972974915816233294131387784615655569188597505270183188776146081032730350683550851735292606913324372080659005711295816920176334585396537005900555422669331448899135895687883278230295233709093842305891065153190773751073149032154459494588221136809616035292409656636552908319870290009951662928881075562083077551883205290192635428001244444609570559966860409507008009108905837441291496712319403938371682270248706802962525408686033398352566604935987247264079028804599629014774881780222488071305243262337474286639067951175781282535314181279715731881245421469528605220698320040393639100719346868492446332240576902369569584515630023044547333557740476093059862002450076143485967114181517418475682588104442417842818687262267078131263202597991681789924896842161113956403158435898668387383237933339411772081422137596821016498547789210016756051047066227693434141182055668977228803340060192100417233411519015317068505339436358168675125966549184999399276174324821496709914909817774614815352154889200015490570435660832749980441937159305028774910584272792636190077585378077177906602242469758838650380279409687991832604972399825815291317425317684526221894653295330654435911986500891519769890992747637443972615437595155742935194416550066036872768132954414797389944909395665449653646632473082246897274695222120241862614401334485761610046190957609031251988600187814839218146344426941206560206881858749361251173915627456109847689712127993082626269913759601281472564416074295730983909274623057600089803675915427844360877581453582818993186223153069397709275206530623195817257122284225119770723016480420290371729341922863556954915415475499062565466545338138758357555642925904747827873704311208725192797174543191160225279010482582119789255780315708988243834361657530347879547109819494351365351662359480710493454046153914805983596304954029653684969990907221038600155025105507963351841663635156653154745929607352462929315849638740248783799360795526620424932638156374213611550986431144782485856193885552860821259495910726891635895128081705307548464207088363148456975301335283565158705581112226066138904073216117701809655714644913454542187116434383618887097964471822133020917942594681167419669040807636261160278652584810319440317972930401223459941644655863686540647891500453418850332755454845896460942323480509956830854991092894693680844722118695902050456542420693139147843195548388083071437629752953232481045566093740722479707082880523007697622589899652732553008844445288177431960052689888723351975528287412754039279979638433853592532520065816237644063718987526004789170042808961405263714029022317608187335941606201228730792388222551018217133914257581468278632699837680689373123533108343114594489424173882071521283224599924991932822829448684508119243438196813536264902858661644179795887225888350782389723317246801401201679220290106605324277670815411946159489668179539778772776597778703019614596662290678608570177225175744725867162534362117336636715403901503715315620498602185191820876246535991334831493901223375521034571143925437844888185514827729135193120320632555494290297605854950278725996808928473085335415921441464458790145304227651338609863317705117343205009224669312623215641861560757987808892315159652305040147962273834799095180777487589757332691870768766415032991655537513625765888405126804363059097246214095177899232536733463356272413038378388574504795764658874255159583238598658628091824487420136090907690335240650201424980608244296480738676279796201779930664876534928374383500337288497770418867650059316145624832070254865415242960264852706024277420850915428577912132202146506070133853148156550327052377515868792102590224254582934236067471727401790732380891525490344043193711839384143381013642042354198628921783084790978817766135375649579053145289385647363041454588058567845625446256724355002777711394753736632834138800244141201119858872490127000520562390037352858000098756949608717660549434350777473056680998341999712091891905082325276312122261726495140828158868764334368917677188163460956219747880623929966476966108451335206952196895080490347286932251335786484478069835775284649016314773787262776746760982596504383457319199271575132194523815462202614451438082549276403594061639852232745522147910990777691032438927438288998767954854696537762922873310490545109713659186326855504558041963342617800884803923677116156039716009856544771364650026997336493952132883349427105879996753220571993446924428151686223163873180680361861684237852920308121861868287740091889242373859265262261918172318681081350231007883725997219319758862661952683665205736718215993102719607238010278358508736566822564603483566345337948998431946585348080466025226940463268925369793251973381976303453336708321498190208739766477333432367268619489662279417039957405206335955747582359532309600268288434633807578083543445429847623437659102484909303508534464969896851181213338414079141538592613832686683823673097359844581232001271757914595017425490888042964294826668145375904016664473713808974130516466958997820561416482730649906740377529879003257725703207764719893182278491935458648337211391343606787103415786927053996243035697915408452658453834942931430902511884165918951804203384380545012473769294608617190977580988344735302057428209331942628941551132394008448650167358450765206931242478266026985318062398513920252156597604367196742231228108331878610508946181559765348934439300969340000958615536257645137577555409199468636316569729959966806501535776426160199982452429582826617495475692571765424870629508958581552560626473694544747521275910863237791863515230438256470659123966714212320944682576506144490488990262117070331288948629830897364774904333358777001035532747956187550910325993719824034946057156128576358332297460323512833152988457081466007643052352710988467178064987714650097857869440796404560254947502212875917820788539624663596297692532725730630422868954800363054539557014974788178985706743931623745051730320159949928215948743119945676079833623243643801298209487877178053576142454877287775754195615741831499223951387962396809055505753736783304043211576701298687969098391437603988118378284654016323345953610799662015432834514581430446970334105931979103684788532085560339036467463888704394073978775899291601524409459009644005784579852162053107016744553512320394810615250918987628361906320624942109167273814123607828446775985187794300395904352747929513882948161858312708890526696157011787702635479688970032049154448691546053112714335291974156033403021144229361141213359425538256449177423188816363176106772307006106187731647279576217841728089792114088644974420734638816740301224142957013477894951759498960311696593175711758978203505717254162386502361358095440965584181215272393565388375147943940377029381851630405111488053433125300389619333938603825057992771265230361249151556109574551324414153874807669736469210738617540551193768608127498920310302656585401020076572029354054464604845649212542593348733446151993159323518435705881229281797918090602337577189479058705910462586547179080724589147370956536132010068590746448535547262956366366094337391399911797468998208323738957283642127447719859268279841052161482552259459654265898245521444296752313888510401645735535506029254629762984868371865634544684932134285692742493784626509924888904241838567224494537344658617545444620849908033129162223359672199266964325231256758398614962113291887320487371017101386752441216946858648214863967593276500554336742696353258656868434971426116343768993218153015313743748898473648418889462875157336258096455998014215517658107266503949467763840304944804348245691586326188926335469844510459612090483465429457233450904078707734220588070661429275572104621591879043845809420602758641350488824713355475696459712622546524106598519853372097262275036511906677641144416988665805985417873967394022656325273025202024168059472401847740154438784268879119476412168714392188336942846399905274219657696610115024936731675054884848809037392958486646688091051015439181657223817615208284590454495328735627974963804210339261494363799612577227033268215344296671152284762501460112408145211420995184002295169886595381728691787011635687561294166419086981108549336518165261080555078919743499368145684436257542563690765978362179511342919257440497718552604326882153805358565354885064138648082412943314836993525201213840459076975703042345249445428267315236381191541813848112160889345073289180831545334350944087918544710455059257473622518913032620852735860857543573318699367611610699892494110283092812229384502311247745271711159296337037535820451688201669410012263174276394358761684897714636307585648641469835583630782765528855646888335833544754480076167191784297308034011002341524315604953321030990490405727249051790146389474685234483982941674101879897831321961118195309431598162662949356254448701691391061027871724599383245279787374348253257863083341117680792540275313550884144723673950602043613808960256257914587847567732642741030175680781941291636919183511896432984975566995216988898302056808114861494865822688660465338499806362387866573837727899175896396665781834801542244060324193438654404127893593570684537987825584482222045517072063450168102743122780063544053068894014241546505006471383228843745687410331306179423019249652947182299971931160187493035662846700413406371725079058724824510823483509896992244855418677197501449582685427136042602771395891170286662655180634344383480591516057107086468509022265172059912525797134223165032418430087949772147403673767325850981999760086987910613405158617564987050192004785645814991589363941834242481194306727741924045985070545095521378270491082226180315730074199274264124835608632121370464750124596967211102701092974798215439618378606087060729773145987169275805869763686032295473511455947055123420222032063472824191500488210219528565206835729586179655261863250346978768123922161033582358258463217696978663351500415270860571381195632632194952987205490320153435530155482892841043278084951536177633455382305549989957965486887947311238887930319801414648150465932803601129240820800391425507670274484669945262429070891769912127292362686858417375774417748871425636685419777427243559726266378280708633962890385305612744591988989171330129991199398019124504641327136808291356363757112442127419587757398285411898996495969043897697288145066993060091461667847233037641253901152882867234223402595368152195036464102010783094613470999488952019004189320386778344153033043883244431428370743232972299960656885300177354521082188279060744865727626588903164575016429597158132073211337016244778875013488834375724008380258476656013460340957775418692253973059561576063376249246466561687241409814925766350161417471874146306749253423027892646334525767382557357127128737418705852494527493326827285291327461158033189636646734011952955705115996825690594464641475462089028425961323945725566692900671296905475894591731290850149665771518396725174096049776518887582126843298212884825242850633131108808929468067790281112760982351831238800058464611559087479950183741915197056718306606561053276790504658303156543265558836225353311066393232109510321553523499225082069990637176318218633766288126044240008923821347464929918806878899048105134525008463688667004218593190146213341354925714240690929617151761326068022642843942757140451924391830343271132310167476810544572463513530572380756769001298183659454675684371152297694124537835752670394578331959020381587052834098486572934092356583892456699245842167868468039054104312122602728744402017032777692150306544853211524988770074694524417582287716056617480812147095660398727402235253667562520867529740703545050383579755540029279081925759763319185633926562492693816180188973424168964688958492260187865601657080799929975893679603400164725385493204081576179965766223917578083609553979022261618401170814095288617832627985860658947820336461470317843919523997877079275223697155373449865979197909307522917305019560674699222769488993541515868445830945375370583711979497686797244558019389695387593096199851587817592861678010374301083730066404057356931454539550951384870701133800076218774965102718563460313956180834833744454034236845348984143728781118736570824790978992912154056021715894694392479157110879560685068066699863553446459553503689876045063234895638842990385778043231782485674943271581615093439643216711633308021163582748966237384331757955969714031434347601032122459605378184965605694095073502868753953217121956818162361484925750435359696879001038061698454077864027223742266232205646700253862561969773749500740155463220552037964653307081975227537825314973020171443707931624214748894605484768996333780722500543685464072096595788015426983399614198447246008089830459794562717458913912882259629993181272081528249983180955224128397038160437118000781549752713275259279226199047815502586410978014292058511530483733059568562146811372971304980368783471429022480673952838017888596988407251218002963089396547928164096451904739008896536824929096141965278971509467028262678872257887551794003220473682477320075783169211721609881040217710338749132944879896029441321650543165676608902987237299982873663697104747442931918094356175137745704759226042705660017037245779225117526782465419097628609518009508568912215791285543625329583994526316390516412591871707616274309794971444441995494491490254920482051753125049476723370858326676633913479644748792029044905806170205263555709438324280065052009132094868678766490832158296255662009889276128135866177017902305610571321202226265691685771538532438716972208000445400136648157667565831188365242049584043932662025148467610406024109526746374221787027606025681233611992523686049125487883407511573301636448312675315058408084170379331194980482965685644163597834079873011171396341780677178819015146605214306930150694509702858985363152629816385564782227285914101184385062805208543735016953930459148875837028017994086697391398080011514378502240855583165587094210487657843579811700403239151914511578909815303610921596659676557789990656410605148796478755230882091955528314096623237877946135194234846747860928092355121445060701239950515970312164209265744980500745210323018709363544621326762562384069222841786436067517280121165546591841711701708334328758096107567439192552361057422277712636233400145507454264925982809946164182516560763316297584244431899826101422113546764588754680586410142314594645271140549138639416255118024487571228769448804459696566892356924566102822639917221998411883205612769165000231167345171741361087032936096079984811075884389494088766664409380318725304096689707444955537590102485739048476403654782717436533283270251003011044956232127435159611735840381604480259244704816147666289825805191438302684058333668320648724659417135568101363257359390460611558877767525292050448739011655680975092218517260906798816026281127277094403552876666603179118976024955193246551939403911423279755453670129814500016570168331814459748995704375154932580503708874193923805689651114681291104931955932024758298500188543876248995378495614448515468708548711711501502526015788212805569776046621933228691490157217116860377261940603997267945655225442139722903406899956855394195694818343726615190105820689848805631918569225076154353546639916252675148846622282498776809724435237620891694190731074293091768626284168431083468330799960918567938870303203868094353521114337336156116380336177809972474977222548609595059316906148260088651328141910524755288582228982272869621294970010719836562724017787226671921212257736309423618968418581601816960711068682789603224275989750316907391289090327529808153495530053536529518301693000792541760889247307592599653187974076017009430657510898744607464938357446658013801039538822660710355900684810777677099117689171872476091539884334192102636051504113778266652631899714891095922302877761798492594418341593821586502871296619312943714371981122378630230704186315572325173630445814827688499308444740460744792466747534526961681337564775993636789553045535452180891008809774326558865291326642981751707439266084772934713891696196063291844811298782264211546828614693139277375457333227897240870677967623270904574953838110238452785403300748942565039586212197118052697484446390927334325778674004039874091492321794463977384855578050755739511419328466312019291662427297238501533709864277755252857556102089284676367349959187547199232527604629139549865588696932538660721982575818229529652759793118922910533523169257013502719924194347349622954738407025978105214497387167420416542160676183872616898848374492533086547882830564854639247326259332109219099457109794110901667922978046644137489940933546937103326469508387156330498225383834449270093543246171093363905101540477341917146485034442136345978754575484453305551692115394417796103171368983179266976909610171812589330617095751875215454471758733077283448330726585103038988068903036560294541038393124592496340355122382900751554404585991129460594016750128260436117419283728834882837330726125150881060404578542979940945399756166549468394663378445121071604218115163152134944883886042565098572624141969591022659063374749000457334722363183212766285299168070235277886745819088109069032343351778172862796913571451894455720281675633060275354021340752699353802454002970869759231587434587501548490778072269754042538325763403747910556256985644757445948588925661329953373753887073477876209951055157125354607495883869919631862432909804213693209163687835502153445164358087400072468150708097297288113559827300369868468711873639350272981570553549182739720761355789455798853375474783877795516767375777146555430007733271264275439175214467958207046191315564901648869671050338665455011533255525020667662511160878535364342886455653205900970668380575733719581951005159035550394405301477641033904113181015728362070022654727656670845754600861321924378214689982424830222497100253284361706747672541043688561675977563285357665118182779158267610842035230930716273097737695441978040334348851323827730408028459633121556577998824573707769187236509862469143321843653167839386392390989230569636457345964170329675501327499626691920758287204666213077612536422888599052277959700512942396794097316908141693627984340164778387486988221154287947342598078372556275079008469249722147960045504303330791181049846060633927144622626667349217517352137881311415118251019607520031568688832954195806073551910065442545337752223566392860945726812580479627523441914324957759979884690776030830128804727021772186259515051479191858768478587284099096212339649516451301777903777244901247584231742393358821505536081433453482953878458664303143477490144599091750324418673161979585100831188786943236141429666978798301899178810040298404333896864172912032529694166360274129877649275820515826300014178586337959606109611874177825162307798648419988499333073274204315921976395452384321646822496888076940807762426741702358990998830375464379332908665601507129519723055306296884269673403135743570740993663412489461948940115146760711322112627304621874433566169069462264170271094300546366611433991728724610141858396147432866785499203778757514363469829923046664985866615344323151494860112030503339146600964431986039671859180087577927507013635560654049174965630991881162524238248187156596264004273184220338285262297861971578686022151884361180555252484230363943519198463225870353025099442042071875359424851886682316409460506436958537319221445160017224772405864585160897654215237772375886712137118193810737580626769079518815397122926943274755277192030390816713924836360166451190100727771122422740099034668247896073034093243622853179430806741074004971015061713878954801839750731152060083826785772210341240929349109267658894841282726534053818728542938844030901970054804627267192220020130780627110168812803005990812747584330827822067368787084374068575435784234049365428311429607058980233707230015292087437118228206568994250668583307647423894630730455630301489101519238227939598447989168959906793623298062712916704563396393537473059979553576345084981882211422380437760091753143573313567021486616772108827871055835029658869410463730423101382260014911314848077534090130948484321437618403452934134912205019263016141339945721678525953576425623787112269991513211590907603076055962934969574220583371771046482706628328053327405177584227962114010219207429092394240127762257486798572763034770964139224835424858581930436075246145166781776547466491498285868689280958252893966425216110821508879747216354825924407731500158147322042937502813828961784296049394138114937930866358703443533011113879567955469779686867164900275639561666228709712045869244288901890622653011491545183481688634168646534752188378371189030153582160224589966901915417818449666640370521817967632267600680484283377856070686071124451692977083631339317347821050251015093192626918968482184165389385108611084344980711024656829960103809595845636821543502261336156996907055628174387964640826434836445611838100940354530111286780549504398687351817021134767860778646997798166813422328520386031616068671287193981542694229759421465817946179124534147442331772012931063252886643211317540095638716009461545072479939069589763237456039071638450452646679104724715669906183605378426364451576423675948799411923187737405812335434666011088190742740661810002187281889743056141268196855995207187141984594089918470616722631224376864493659972391691774955253155498918423521148489113483147082867323731967398408526924316940093375963362179489537686315034309742696292220999304891809525390937085960096091633455733645889072246350205130174997835710343313217348554278129989739667521857312690147398505875331746018545871179416801132782165473886141847853846252301702051338939877821131935684882390033621624400786962699774159186481247342385045735683363024108215153782839581138669890061426848820858100306476052212994735855843308111953061848504965328771264063454836452793294857477409811815893719906789554648796984765869593928040423922703622718263537389495240858485669599947533528258993557968344977379199673295697416815643420182005649618002748090387177043607129340769878723832076220239583007841157019987800347031400430072570273491744871167386729106291100784741968494967132049365695470425234025068868293443504728215627436420540999059999840435137583375596031743186686213983929845291754630378748194673187587553986512634857802857553817895719359528763211149657861253834756346069092905654058915612774742402877260968407544470252198648629313708072336116460713781723260957383086950957643412809087927527099615614230405345161670984425123111000926854298860135990061616949166235222888873390259758379797801852260164666264615051069533684320048335505988356056190706051951754309412005744847851576215479657726673960970064897271811671407420530361352882578982419712337940651751602487775145141640994122494992442826765886782918518682357299388417904918630182725751323791951156890313423895244772437514333037821220484195637149457951470583243908725280958177406270832886401136901843174476947643580266564121095645478012058991925311996590354524638375962643023550017148328541168396646123380256995223481945115784946501853056418844272422517730185182610115633051646879789143864079046322700697640259146820360921953618537869932065457244730953908687721775547611505964820880457932430865798047449786815060784518617518156734459299149752910057289822828065935249507024055139549978098544547124827767134100865270348151981264851438183301026757609980652250402263580638864282425535863634587016066228836737826153888808056482321565579531834926644654288734762135896014185574990017702591164776347135549284036203787789880379671195629714793440442453653840609070504171672420996522208634866448882015200231560943353000317941410109502646936504425764484739308404717594665997842453604246751864468216889238072318998605004881782846575085221494818901614146931728082966320247081522917756687460267250451289515329805953773345317192846879610784454714421667676135481425677577175830372329068245878592182255588290152101042314098416617140973898111390047590084045874555641028951355423256707071356148880851850463679798249181098495852190640273410328699300969622630188794949289668609006766626081353792264170080355004943014420720905657872965438427516290332082348598726507657611625669430628696328424640936748905364984801755228047921174761735644884872499011848225397031238472666861628304139652476369049213756322214312434907932499532849140213445873458398309650541059388868323417309053077532040441672340098261273580475886432371627968954978675917535501546203046556639214103213145581644314143733772541268012624561540494806949819770294358769970949784567626008661984635725944440267693099580067872705282141899240395202951928850216808701585225737299449684626666412815778221225159379651974470106229608179770314841851013508658649262653336282896620492034849478504690758835133273096009465210276064009023087852506212817265042526881760708102982015514247694840983235931209818566047603792692124546819025212614875740340587413928872829314136207334373433243315562261553663106304048532019416377219753069986720666726094045388627125366975794214343440944892228935175937966995291524199495185128682998514840020218290214764996594424731296112067994133415111008149502215123994182859607926497161509426380208711697628022863687404438533828409308940414631432801592628748172362980144391608206550974429498348975498999088932906826683418669207351184015940373841295491315615887673937922721721961206839896949455460584810890409363141945304876784062247243499299159898392232636023679516166830544986927788782003248767871146484551161749385244041176220442279314816781633792768563422147256593961880251278763669499945994331569151434646818950224902053256524664252994602047053327751637231095618355441930414498471977995069027293150810260834928627070304769104014139777085688544916669937109944895878174769660340223673041129053532824897129694338737155863805507002946060246332525620289017008823073892758261338968743754632066604856749389683857250742679718559625322507600144754193794932977193133233986558569887347761954258834195767829069089941104511713808080968781089916039121360490940929622031575625817420959786052846908010961968646569626106497896021320340243304155043297066570293170969179074853906474527580295910231727037863040226176830858189731112480611213513616626661091155196137663244480012133430313722475916536664294568185798956476530097527954974225188552505479135357503139414531386867048598385917783131974556005037659483790339885692067435106252126072976086076936465924461312862443195320103246592183603157237754663873959319339319077100734310621024137271060723333836166857951034222564364357348558198170161908886346440093976652036497329224324639813258739754455096203224680060026154188557589015300042702466563607883759176474749357411844673583491278606739840280071123607354093050008380928453547830705602987090225896317638459653985615205798980056124393713721557866346047253529308469256656880992745699664999101198792483451948961809576503415253056574850945074472273474674086500463192808476304775556055421249819889720109958321406550493384376248656752001110057021540574478338606647539393307940528435631634660490324983270074274135039289024038150081216625478020266768954786196790660480727604264574081706696631845828005043082166180404927916614029450921679307465852991493426388364439746711513470093306051827903145022658928663304268399346878982994954053587612422606633463431143332631770481677824870843507665196528109782393934927263580038550889175269305005216286918972167261310887732310545320239624326144916965262827944936534213161997536758125738408105175448700579909496355524491659613167305567917215891911295930295455449167860298274467627651843415054938270057683964940100129543776360184082884477109453117587392923524090278497605806452122761723453024663922884963634744987057588218694843027573308329002350407930007759145176660484207427431924461058396219985908125576845059191218860630734346989246719942272906655562027827708243254990438868728205098123983731930968535564959072305427432648688668553479299049343396696642424928138993920166513621197600601851592210566894223799038656247917254985967639662284041204989321930550066715553939868224390630405231861480234009576270535848434477030842112212382621192801310788501752607767527293264425834745850149974638886643718624765961325368482513393351339941765588431357140743491010942107808049525353017637266668581262232654594612319181684950735400161340198097739289118149561356171272142082468529326754695956989017225838407655606580659536781465411591353247109815386661246394587501728859913522886856143455035293880351172616961707309562347267529542604737417181336805296756872089484605229251121025850345255124598774520699347010698416175944558137139813902603476711798940092580744950969902379422882126471772715939510943511230628168874085881951435196982598478777126010202838816660106112798589847714985987440424484859212298709943591576799985105989818420448916265113621872072407543701346881249465981022186943652946226882629780089919390544609419770619306682191754740440293908218750329519927318273479040155292662375484789394632347915039666752423786187956760378266631005168730207097589551484676895605124463919027175853460577253615066104634920173511037855076623236684764671782430152499918993728937759486682819325787468611206510148449155785885785480038018985611909908179819679264877005983125250060268222465848087382872776604048034820912616450228908934253233851350445721788791068308167488559952144316928353453821898929095764755259908193405880284793872014414646009017094116986391309700470902617080471995971859577728589338593123401374392221863570015555457220856657716159531958724122305861929248944102345681437818742119917684348997788464530847882851328071558758530166428847806726036783418465839107340915005575883146141705765115706307873429409827717280804206195569244325225246110126148067882971501534353526938777960628243923405648384255264119672115869573129175067327183862205803940348895285393879137308915696118698365285226185634713729944288161437292746919600697909943275194399295642553744499761174228163024226914938396603314483336811293467100892465227107439866638003101269027792360466358518104292673752243014452006009290711120470165901626946915952904116898881410065885367577696235456852865971984933438284438557904768305668761245854918765443556582486494548243788534655881229046011118163649404572087893028638816037082186327958294308028252046995891014606636080767491841289778975150506225784305116163243793871442214595935603991827927231562949788652482007500356455486489143304742700822601914670474953713950568400932048590467510227162060677428869605945127778369690605745547227376662006532856043194922161689577442201219660751254791521031041668940273330037609333392240881237792169643625134201848344051873751572731113281387201698089682066601607463753755098168604598970697007530239241702354007460291448492966106368892216298726195769446872484282308324304707626022732611880832270592993306417142315694424540170366556636166606958336375698771210238820209391407083096812251361007662767453659939877903752194533613595143146582066970750611931090518686823070545655731461424924308202840604405799841973836887331153200713396529511764432343599491277525553502796070989315511431908853424522147213727304286411946443170114652945584500106211461678242882202570261267633715241370777794423923625209094629017587224175820783495406061351904183270223913662349956653013003669604541387166516324463824697979418312926830898975001212855471120500099341746851211948004877752530445761715595829661638287078517403053238847989680835354862884490419538145943437380682715824113334397270720729548172245403445195672383147673496209994753468124421799948340292804958201203340603761250388898143954077116148769587292330039391980940342258695879679426375450571640722426357124578091667335728115986941924804875108113720577822891857024737073713523443210096872043594621680611409056385490812391014741580412729376809261079819548814857035371568786701882954318074942972490278530395907840721785198976737058988387340125281158354392520549101550481474443794049109029051606836945654319541954615594911783303673513521439749493305715314898500513145487803349852335969741254783955043272269574736173854928610439016047250562645614394255721379243718597223042030847144978259137455131763068760709802322870801355314500656242690892304109616153516913887316429286247059968118943798090406393874288252166346552220916608667227141813261849143894580106164823753278032854312147931877586223520951372031501106601378731798077369449989815528208114255968799471155505821702707828023013351669128309813285387508063430115394086869366596588548437651599967262381228328817170428157770505699884590892689427193830008012652083867573080877760811930688323020322992058311474474990386598049769670448954748116669646978011127720151032123244758816913729827529478056998147854518874659611159858640663077046423236914144954432676672056953203828050482484939190894289833606301627459435101825171013333849870288208534582285286908976434516804017235624556897161212402484295512431134009068035136862125475773109424554652754175449781242767127099399281646713173059637448063417712080495313037063202993735648735276800994202243617776197100878436811547483211559603737825511859475952667089408056484446359328868982026576743305067658757177609859914068398840352430059119923553102887122846874571647743984554458850939860922405346190830461183382522546140180896844815332215461218734527691157096382395610726500106118369127776347821970572529049393256871884709969267899023834597652659594949040250445627852917437124243748924959669716039726628169968487364679814507461073136877717808121332563410067759710130782583635029667987951723969114972667940565971118504204316245682842391457205597977607776141798483441068151349176399146824872916408732636021656366543010563658360305569540728988469330352292616692710428297843590158833305712032948392406879459973622639376364344607156607705480212650581167625086516146376232478275129982771156613141857252712453449788304785012828655633060790375842424042078520424081728808980945434142481734645617352219730988930152663518142176534087310534099153784395798592935324465478468404524501850625595235119294007631678678996199496272760409646725056821761248342497469551618296183482885142393654953767310115075760976509727880235303093272423394356640738784723283054891028409348607657693671339307045478210195265185296055348058075795830489736015322984890806140878600408445792005957281797512825170763512818259317152038906579552870410406198245645336109005458091086224857228896270907199222937637892684718006309790049085569510097000255615360854676769599590801216236031343895159617955481131146407323967226269589092275645587380017382384574793752361265033470998956079442957143019763685181339326609174777000165074045439845202093654017418304752912263413255035880236414286385504187675782886933516869590526594214925723576316987255339332243103212476549943284961628336560327348545745712420820484794674855577083952791250735964491460691365840908302755738333914943018483720484515018143129780645301325942923857445390019836699875358622088397813033284588085550493260516743811383071976333452733577257666957647732933026463280239013731757751359218781009752283892979718991633529917586289933133670795580394209867714319315564626028002041080503739162848521198982480078785488479074178044017003865960758461518473159617994620846522811421809782685205425295651626775302928807139680223567151203872284879321870023638026940402213144392848573652857974903920604518278547189106862139632952187400632729600685931854024832467230656291635009192338360161165871696180767839502353622160689402672419507708211996571990028922911114825240025847549514485898078058407383969543802185043185759027193278746859030632552667373757442942977968987361621305771274218627729903746033265800014762676865893939052321509101115398231366643682392724459973858594673911367362033138749685932723756539412537506704741054127870069948283362254426743248691714384606505148695764172879588470572236889345634963067246730926712147432385923680458136109092299057106683946843917455694343694149121341471839207399770891839364187693169289056599426253753006279406845565979168989138472705916691123932361551138527472119056818813086975976221324164139983219263828669088087419572313610039905122192353761648243532449857763936048934612535109950303921991127514148615256745241125571397731482564121760169592368466795439975486419523623684622504297026251942214553706859558904184214425941901345742414535610273695226851538313055335205992566614582053087832527582459812067793229178757386749037319159178628132527375577033668107373034700809253518611431547943759742268196817790380401000813143967304281085223186098415958188488476646840584101840238808212751915880136081717851429822184153065853896151192942006697904908630262333368889692149433586669376354723461123755789736358417454308192082623012652437397990190081069634268008420239488614823839832900174057013860146465792318293908718706981314102350492261315792101309602128833543039726139415151133953255210997142934738498905540990123749670620670932777401866274294128700147048414055363737928114065266015701550476236336564309285507352714397843314520390940780625720108313644855064685719591560986945119051673177224104809158661755126378501714976843990343719385272137952010834313517441857103964947995961753007913001123788053762104984630130237099040321945347609509015806630677107596709887139954914619586401180702259391974443553852887206398303809538582658785273366665840067379530424542928449117631923906582860466935185875425056957939227072940482215699307610047643750991078920207140332505464761466851590114324050405735843392594418520454505033507638579031825418745751908723752789772446770157830666346782913436885948379731405075818055040375642476993847187640319618975396307130560482975350011431029103842704390337806353410720546599764948065949758542624823468913067119634227624071781288306328076453419861887370654309135179219086928460313619743459733325329834866744738094393992274583271551742282579051310541143835896771770670635369874695166601084499169339660722539583941166302374979133299360223003703515563792060033962800128183598461461333091844947370794524240942046085127269527999602556751656512500754039208915054864601130085600196802257099915414175334596914193095935891011736121311600782872203535094932047946870865358060642123246977969279539485794326060959821076084924179674852648894212517254384959246502667601755102421643090791921691799325759456611197097074809372949968431735268111100549658677782216387532942587966232564050326090840839658620392035043540843720630265378708946983181345805673358528980890686683967940711157842918509852262864491660613988888121659189586104446839305048626018487044360646212736194150878722353352260410020101447418696365792258009002729741933437543178619170639147961900610260402512226554441549304489857734982312535695772111483835378808009259023706207812807159209133225980121878623960658508493413991073382490904326089105552907349098333378413423687728813222348655302960418047601711678318578397558014869485981113410757823462151010937635180591402801603073838090854553097061946490523046437227950904943239119779720032044846780878526404192428753992135245619133362216012923203816674288231237121043795238694150970924709102580730883957743162707573603787693287948685680143821216998320388365353289411109831928904189963754021491998338627870700863707932049899877150027670744690409628156603865751122643220724740517433136954877564443793664038359268357963966278882389822522588558124672563016344905828270623607557188356163321371075166348321262617948045477304357337512193225697607838508829780374815505471705112986112051700079298228345340481121948659428782795942273843084595817786783790001855149885305166964022487812490829551381343288304994267149215709352727542423373222525355348773162754615398037596766650955028519596370893805334428359614288102137326909491242013501548193713075207809281069413752285762175586417159804333934648566782705014233854726268171322034929507096591549700596127652538599165132592610903980537170229933355658022708514943408901867744113134908982895438884682088184899428716416381827425266066082638924880280865108602318067588934013078626183806495756688136018347573758860091688850410427583318990137183696011779413499991200113189550373258274380862625752353150307883561625459937543886411572330884706335734777646835177804912169894462216481153291487639766102804048162675979557415222781703219995978714572797401630304463562687715738926606942222913708311802323140021073704015372446603872167244194112877592504014050749250792162050986478475385294235043940896859446986236968122646732608590452449319623612539541625468750504459954712323419297797643968430601561106304677348848022721611392640077184864371394884117319710709855783649808413280908004869828568427591561654207849436440128341016693247483419871464825559379113637527981394846534735262742002598792250320985952066038193227445709204935782906949544075657047187425384940083676969263587737250165644894818231525161475886216051639637548160029515539722964649225417374536885185566600625334450314036567299018821443081811211853494624060697909999347729812885196120313813770894405911862278707483737538393085988594125078721653854851832195864398577173286701862035101530909466434302154891280812897508639347508998024550338900346591531090092184812052111825587042824708119690801973765000702235443057569034472158272633927350366212628931030483911108176494618280526570845145114516098888684318298178927291591701660744808446644452687676792141513757191419823025988710852639766086719868580901032077761121764285968824990458582501107217374521667117369256285470179150500788204504885653128492698495026365083192294835255698646243901245691747116180030591423873962605486497140482335016986716612274566078574700053385086543452028422173717480077202825919730306062773924332414893588317946894370626495160535598017681622993363414255780831304488074050417848703188785785861424798550818928134735184561944736763420868315025689470009042977157050667218028930968650960877803707872449368425251860965697115790577879509608648325982816034655377101445737655876910443422126006158363987952893504781247514451270374062164617495894000574627416154797596285215290219381479699146987205962013123427817162697182773352755731715752036071247457776993544253143496292496351525518991588550281522918760830671024879232675363345071288899649457410692352438712248433500128428040689345706943041727632564426529316649763781648055611951538903042066410240718310091810442142236155330588786728685049940710369766992710633027709647320457371950217212785999066709110197796590322733795502866396506411369410503160417380775029542769027999181525167635965014874549200007490865894738191078799422927427371206297960899404574237562018234471484588124216534525640725138342462074729140300574008414393631687798254273630690624768505954364223769105681544762908837338558885020299551739279691081300265082076655516266543816180333764055401913973349688961860483481939206225416106591072724186849830029470402602783656331886446270677646909018869513679282816635992256361355235589368382646345647557120056549538260592005110391625603181496720764203427490559806710934734142579883502421082578080450750398924004416715634886621241209128578182993290293480997933382169278599695743386113533297099686613189615730166906323940397743529176980242077985598703952677557565884452385001465193574155727382596861506541757639625822445792050444513446207313163896285535617974026104058381436906085855798841700503559360778487813136808980502029120571478792358604665060705792940862174625571976308423406508126879777575586176189662339712389400510443893239922957624143695202017398797443046932842799944880799439638968577290262995624496230509323689448763642392284942495006520881447349810023804546592058658565371103173669845105383998515212960491951307136388511655563205646509259888574379779202768028083355898954037217724586213670027520966009337403708247034931014853498062862206712045381130936894186667675174990968565594711402348575667210643159376209809339746286968682916947357976787535604257823208293746742323624190549075134299748901280693472092824702151523317986569900217246804782877599193556901869639789204380962228737099859997439652320459888893686516811745018623330560401259181551647294281025688616923529923736886980163984677562541523568169639030649569554905583756667470779071177516212331381509041609823093553747895666140635815106927307428949580895862836107598847473073442546037346534427793897198580717909880354326663143771275902929219800191397196872618531636388815484011486918843932340689584636093489787891082829154006851249501329721423773842431852910160598096860143864151390354334314181665773375588646575264792583771652305754091082173615100221173415311152894496034382813875232443117914722928126636034681418078855661666880628883918529161012865546611059795480743237824048962590364433120896575891799526301099963909606952109982622244757807117331836083382323909610952696987339009507287473738724214074193502878954826972644503938685247542384106726860562624237722182126041326876829597195261946910064222396517485223011955589750127039291117221618274067736559260149060025361226167182281078823176502400215125426052901438637838227234616575541537609972025482838007886085725862317558341207953897654372537806118040492105724039877847652679305254108275597916379896445541916290516250258673118220198079794797480517827744509902461420423643606962972560479372675684483912740357681072978149531531193125046089634218139819653204057568414896062044600329743728397191423236934214163765466871953421926445102057583386932645557547210130557872504967513535112953871245151870552510998680242988866374588115830117533067494718626616049820503000914473685160172107844157660634257734353428890138672756957129565516633132513317632463790279699453118485123556986133705796021555190181722601262785214873224003581912112521001685507152501024389945869032750528688216247711554027674295958067672590456318281029357843968718826948440140996317218689561059793514024720029979505083024234268417209151199612896880276272441337436098562918334484926229934101316968905064272782622208838594503508831593967248962419436975820253416969828252186654539770936398898492991653167547014275243609125631828834508248206954005243780855236307079104621314036026669669099829447790839809292941732882185274535983678586114539350900476123519044097546943435248234096742706133707697396188505350787389002054814586733149897645817022937890517902978934128372387071740281723286375652735262540956662550168801381085895739115338210061190430455459413122755089778103095079614580122696809523757208811926166068419196226623535505140759241364195152557669965240043187304142658328058217674599005196068272033324925400545951766153897688444679173400460967621558625532298740005076570229362166970831043248283628585665574466811088908508747933151819959450649978572390832338577052656980180398711644303871801054246465345951656905321183996195521354400727696537560015723018950865421352851928272181791723649807717424462426346724194316197241529277099466617242387597785548891501202877673249452446844043210151921994036254728100985738342614048755223552429905977169170081420242469412323160825825909181856997448709594813453974667596111767580865364100519326631169680683621953281374550257703107584960068750873189597191701015575351454936488452697897067827262171625038638033005210390169790210899686639509096126616292359712108380515560680983681867115744188933682919536392972968039438215735969907358869864121707344470519653395333925028461801799131316403627643355304088276491915653121293166135596796591890676700381879245038944007363005094141379069343851479648719557307107228189501806333695855537170655201525833261202931642712794952285907099469651348790225764835324669233588880046752558805531077907969149226194682791346398610451457197842146422196329513604420413034098543144409206934332400212774359941906454283266090166238733627172928943025280496869656596130548009654238642476179796934255418370510139749484721144625993994655100894203981205060368817278621888462173903814303935057652083381820847180157029508533302898086432488641118229555880492146332165702275205381877132079095296455256574917673386151219112471116793035692167587775802221715232087016156579765167575915569844456297116268881623066127962560632081248165503955939970257975198797891358854823296433840532530220542706702560932629954390778616811147955709128182993484501916616388233358944771236569829380451842967912972216841821652288461424840547048322136065688876564517531898357368046382226549329357040488958702139610742840958226704520590886206238703580848493496920128773188211342503693028904234466870341691560826709807045821531397760445737009858209516383716533571533016346631381376997923123636098445721349534596960854193057515414552998711340222222396844485259232721399286885412578756178870983641354963347798746293866053169116537441181536730059370229727062035795042492469039077031946471727178995465334716608160937819737831238860223042768773208736123676746072496719546909830224848915434334985083969102743088420730692660514759694713562155732105567295842983422295606016843099046899257126783425246898845689752992237764086195314991955097362117797547484787310432538693513313253766181610761197936824520077631590141610033074479058472452785094024746902939592342481812627823685453005183299255572869022784431446952419182157360672265422739195411611910267865895189951889622759951615375703652814025119774742025170721048690037263138287796541638632195021716324705677499090070333800310673415550579107973575562944781821698633036435710602947407252816244160118343489365874137615594847117949564349225431667253515515370782997593594690024460668161634579336858267539678646320160536099348306661278381713525478081414512703470237707158628687140293140739101974222754472507743600723114376993064885216495744784187450989392031241396824489846645502785495885499794483889855175807887886556462206021878156507624015055603089632629353692706612165726298041933601027277069583896100931580880770151167775204106520355606033765586298353355049223432937597894221773583925414098780249871637840316073330396290120854285054293648983183916345290832278688446248280914274319455191503992652335256900859714353245351649845890773741468887353107119248321364986931103070724750429455732063807543806834224842609788773766804739690307195286722505125749426902701344197961031879300973645894941017952159010558449625305855315665174624736534668533982904220187927979118330077569010580279291016189546238077771420615872665209725433395158808850109223879954179922061904781074516126345389642156029230158093951522410696688119776856588390724005499489885803400680482788907200746595259828243542642542919751498939965779525616206830692889898935229838847891896863418837242349883033427151634188088330346020780433119146283168337179389508356952955159552874515046047889045624879675162965983342229490002168700309068933145336110416151496757323734543396453307574923158938790809355599453572920186548701489387623597306575758172196319484404300397918605775053928589169305039529730725567845421455366121739718653371842579273208174780012415821187822614755635914133548498110095683675491849105823146960665355655115263633142960567672555158885461604755555599425826575448555631180219323710397023275159172551004860103510117283961880131637194008536877266062033603875930202003081155063226801220317731554424931025341731999369799413929925045065600986576288604214360722137624289825157984434446940375841538055173731496802138362253009319336763790122797150282965419796326457452787516396607284788570712548673352955899992826253210657295260926677870875322099865677462307552462080924458698406020069099076975370726504856716600011848547198733390289732887712733452366876065441379394782166058350186568179157640417252925795063859641672057245657887691272889793198657111054692097691167787547637008010467182061406266955349219820735634419788630189508676193462956327865954969135100945709604996250311761762902395143619380609512324168450035124519542710246984617950658438962702869827305460040262280731347354233848918825451946746325285427936241434038414299737208602605111930833008929843981861616141694585927497850729744233113815020219068383555410189386582340616441087480626232803641872083466514698036274823966445607389263141790505039747557314860824175977201591834062974070168887171887388110049742459383296667265104234552222482230968384814299102038560489062429635954784677710154746440589805541700967517792915259593775768256187462102133027493916763463848654148564086713364712822693173028154017917953638364406690610343201285595820503164108530374474018811997061928101726087379832494350522295768248639533589891809860160202957816541132160797005659589113528517199571208291907502301891454429489992925619705905043837016103249612003133068485232460913871549486811410079127634226432700894178294388456547557231301920676085734845376994592592716218691260168677878759227769191270386812437937815786455893045173542234156672407148769576602203563163271493447268235689976004436881248925192014261485795884476033398900687403050332991255670461229112804043910752910698396853051904130440380398018555030904667285135790569055921550606113458055358587128448785571687077096315213023131685145254852180223725093253687264948112490961708318920325192111820470246628433629576708127952988625778961135900985063192519470264158003195823449913072940295895061571872022436673414111654716212629278040412905739897965534182601660298618779173822682254616332491119025194946974721870838015600053513688672669241587918623635845314120244801180246271349327783146232912870008568444012868021483274179327702738679260051144502877741187498691555388875355324427812726404251172790558212463400067245706375329451936573059921230282732264351785717573776724025260444176234962985558557087701540244057273019484199504362452861796366845519566606126581699360314286823224466102272835181168089020321339381020142549630601985670370933067991764192502322700761393485193606709636939631879271298840884139573785564686959171146629417429922322509863975107415722694482407957310099181106385027235762026667500891680874011484676755798152725846000916172638883106684676336683692671048871145793256518490371455794468819010482014223118670311522157889789393404392799406294525226037061299758525952209332819721285309576222990100487302357092288859036356780315678024924821567396337178588838653426024107063950928397370830199376936217196850244338453526052904367279014685362746583300489797018764765826277253477725481054696750983346196617322294502085700608431217446725088200275390538356548819966103017439041226510345136136937810167528501187562430744518849399407856546113716892060782969209196069003074197851043489086489465972639399386334591877855856047726100046494798382980944510428776226797279107575629748884250414872720799333873067887233678567135376194172730779779225667305521638390453443472755144258092190912998817922456926706811330428842438986032872994708143307305568281430694994656746256613813758084320514718796886629540944765798763233033804331142260640036505729356935813630369807455617856411353857192949580135220058728394847662603718868386717005859335058185517992188685823166363812772981677958742661837944024053757615930475143673660830938130782727071441306313641069686820073861611789455093862496147403279082852719243769269719547324913462702109523573900880377203168497240776592105328885762168264397136281884953351245709464137085279602835187503206702897618316863123743084736403566279054966205889186754535628508398369999774587421931011600671968431106846996780418107935047989349868778144779483558998498019968426485693327998469503692483463807774571665528707045562841505179808340935793294316848800649745354149844026723540648242705185336668776777679487617613171036616098790344929464251740110987657972123302931819742816797213409615371713981551973454680988240650568169166085808472403236534786670274520621430450857639262262585487283251688913751914409631891857332310831263106947913228296851528888129269995296892883406104494295215493318700538503073667113391020501232691867942787973436162586417404259425436340255151770868133046691792069976237013065872623322029180210799703510335547119984981025764360523384207227101760923798874244190178479284609972611176253203014195555709334858380611843747297099483340374550106391665543528268569242145949274297222365219003470893382196475397551167548558708596964392982644401254150621296878514931554859948079445845765728403406039965050255611996708863477325758030386927001706820261643262944914535406796359728432611010553272089648120120639587189098707261839837066194607017789673521988696766542846547856475806448291717416243965149783072240591146669152923580794870147823057810168245629593261668738873080439085097944432971250671909006007487426093068797876959411331701220707372151921076732084915308226668109876942668258743612003342882673828817533342844601291749767425080983935982299301051948845311035414713128001736933271758090946819331536034574634279751594224610777376960929989130929934471367338964197633842279872704137353950983297868944725068836163352612868790428072938123190727835162496746342403447642788293576424745815340005761500001321551928367083343639935578319035270232786136361704171880909513250086119623912764811188688402090787509451954774146236300827272773049609629367801688018387211004283096264116693917013218235227288578425894957788924450293260099916261913006739053456931335181033401119334424377678153423966787588183813688791851173586765856334955483475091352215369215802628744767750451633114696308152412091645378418965786549977093511683200721290390240389203871463936711223675897247378272707977929427872780737980317348274592897313247740868127529357393875599613364859744617825692309128728153366843404476657333776142207442475406719129810988759595085075841533897995291950953278664831040822355214570339727274063051033449332484255169105761087762348989445261028243358035943385619218377344488183365942593471881625102113273538438630226893201783003121213089073879383536432220755628211721645903098026597457340435475194789177076180161402426484358680946135382753648154984813841412242944887186521402091175887114447507171627102156361717648883060449102525434236541368268391668623988484601623067556464327152025293169920216003241576328866084014002461568632509031257880722144286558727087442166871722059904797967207991949644348363070935833589983547011254528898542178968995402406102351093909133290644616083379098642504817686571132487238799698767183352782923356932090852642341821484990229639332405767315257494691932107368864827172889227658346563375048858174108000868242267361137718899998597671304732962140037333052468822063243682339864514889054124931179079708333722271576871025682461928757786664135182945190705521232553421411939070332994469280222411409426627784233900039194313066940971765778926691715964957301417669067049869474866754571073079728655815756858327412610260154152426563664316523691480521213301532731297247039115090538249528531534499379103998739045578469730054819982669838316308761003170643575471318868321728071620869644125185270666691629513131187610363336891898368815176105084328766938639127463566966511741576608220100204770999884866540437735389909645393646677874667689913244448072962560151501163292249143515085839659812991889873916236828584971234540661894538085370613979440196747028522776932695060486479418474523904333449455925599589537582780704641765918890946378709071696147481148630524019078623254801419435400599963229814833119434706827620625644449890079089287047254841458714779933724326861843993171515575453690090668875610580893236758977614123055602410843547534945859970079777302119137116829821987257730195586962537617115702946194867448284019712452286677358278558752156886603995355924786669865567760537735344377456572390868681694995860619653706243768840544034047757458051787832344190860148870113585307336360630734571931715234929496896603532122663590893266811309140695944422978882759808607223942372190894654680959672260016664461651156304323190005857401874694224751478830654689125233945601290304990308444993136794528475808700764918941450426349076528715579719692029401403514059649747257265543148011692004523232631931826628972808977413883289223212867204419433749123308903047371664209411595836326493643610949107058134737073580276105881297398792662479040393505141103910486503574290434638073214416830912790927453362070225898629105790765322269756338952319454982132345794158841637514743006134800960608403547133717190535640897791679980511535474881851132027025114453504278695369514246681908907366330560825669630028321887399909007174209079457268888758835255848780247486715914619192185581422960213749750866637397486299024733051247966246440336020185262816034819261457323765315187458691563591194707861255514597033144875180173017421632098046770549565103291614677353335412003190719757552244932487503985050484442499397384439140344659887686174063752174737025452227638902074813286416830475197657273593507925622908462358180116420671712314820805642133334622151329709557243516571295276481092894209022215774209948176828687572384653833715088354943001703864262306485767329101407231688219570394025451341620953824715543159760672725796610453133290048334476121942746299700423601371128734647905597309847139050993101007069526437815960190074313713777173055627242944065973220841842104449688178102931036951845551520986821224922394222340494576831469487655377602688227175718276756805661319771877759335925883698941907890533364871024404049861153172503838145135597829674307815875051032459149344316141473373422435801271280823758951495727286361572134131545014093798211898788078117185244097644208935137009116543224827486960079161063279906628996873108892600307500615868736751137421242422256615513570796107849703608827712092756351713513858551306100948694218532191682013101901543255637066532891083771192598034609070839279332641583651747677429638041499483746821773752227556524976896675957551922737602083859233914365930710221785750261482462745413646583364934653142469794726351384759707346664733956587041488114666609283038699276096436142659288642426256737171338252353434927748446862393152011605061188164139457412248973299900524281587039280657981263847864440254529194028083715784617288050986848918421563264196872210150707024746343107662724938716880895633007667745305023725486868638708361466124480600026225471951434326320010759851681040254432056340476544868531978416226353507220445663767126840193942925864125121425164932310308152591721188201238939765862769617391355668757601279718481495580176908641359562524455550344909153111169599344836521984907787619832544968029476262523640220978154690662004273539057273405053238242626517415852546241072107869478703716869044755280466430300223310970639380582685395072865677165012933785692281431472951271028066608317879167281639612505160184926880655293600146904279742177666496732101363289480853978763140585176686741727333735691448555881589802606459612318365800108438562651709779243658152901810744014905652873207161364875295079731445773616749682985564183454144259675062741270296349105788356168902796684184443068641803130182328855463825538213642918749621237421726413567137408696705459546545332639321280328992763249016980821173972720846709218623175096284964466785667778502571801240062066769924455248350158296772713825429494963705028634971775504567445547176849347347627465402783823722576039679235914906470377120833103057124149284011536677497676191782344843688849702891799290202988149011745089507329629871923659092665088620215624919415555184864881198027350240255764397816476610166678510397099340115313221854894706507287669664003233547889907223017497757673739036587861906499170659526105728516868349294269995408299870042998577892561698100298149145132268725638658051106016382261286631615366404689437571520278746199625996438955796874757034599388357850730092318653634650601705000811295907701176017784283086787345116845017905042782062514046643655655970830014023152555241151933134570444696487131011032940802150594055189464774279885006300502595235698052747765153665781018924376016302208125303006241646857766304158630093538260489345607448308335384122691444449289131561163725831570268250328607095923423714328420442644157221827795393253676792820076813306693838535191150229491180784353424493078628960658672917151194740409898978648054399011651229083755317779898086528068383593781413651695301273189278885135370931412245809876168756917547210116155476198692716676602459014284220586254292460918245588242449560674307209822093079533528732392509201642783073916232639972896987056346708972651418432618275234994775694815283257182310966906635006292974669457474657758631855387757687805079646155084523411318597791320985404385549432834159149983391069670807803564548330209140548258211738511957938427755007253504044025383119837761907112568518268324985498477352936318698416591449437409643707115046186991204545011734816096763377550949706592466337496411634978559213809205615115489161309926061424004727569232200733350182878183619761111100587206053258846812278018035448713547608996875507739043994249593084508472478544517988894057123839800243579825734614265269312171699245833269798530808946296661708249677352232630719916553320383606297935389587586289894429555243697793137377847776059528108110766131757812933647161535963787956482214297811642159291698051512334217537263926799558860545954032071164575655487051732017082880755323318506760023919353650039416294444529884322137606431056692872026021807093143800290713621404862506801024756116356158080885819054379808268748122573901896877818185365692841588006462674078521385323886447703302644440893967190886327115743686347960232752123826480754628163994297329984136275140934582005706604533010186541240453528999660505658978824748288570305028439376021808175735224363476657916145738683305995239356456766794566107656871139451912004278985175243563090844637213601065607160626076044781126528322826988481257397273878514791817823704486008810014034031093205027013545424101392464718973573080681538762110683925648076765471277972969583208599674030351837613461807713220270018345604614425772450364988178674444220760047117439411556736039709801192046557761827358674657688982922887615156722849685896445248695765707491261071942602714563566621040891678773260525481178275806358732552320053171173529674903010944350009889362234440771972479407714399551525677046692897568076730123523198363951550554831991094318980394361887501714489655854566183584794550714472224139548811696160269594343075656762218333161908074342791417624327008427298707706815670413020732273516650879971125197983130773740074253088314226370093189117071164851652089361059309221630734453348977317617494050582066886764431565164016173279681683414103921118022201772628685664654017128538683978780167419291797966946967308641623661201750654423736070818457320273964256239250339707857322645031354613826678309961447808347786900755283635642730418275988598569555029070765939715241427281700749196600968162104810827460221640231661800967049556302404575566882943105667263542726716028670757926010676534893037973257358441221301807901865439807545553374431689596317824455211721467011350624206817443971494272149321324838109732134144297062652974832193143984610506538191968193225663707520945629089253217521152456795768705178939327495662984944596299122288189785546415252638093187950793549736742742646998993532838271125569758267498706861672506381500476075246144950913937240965648821537700329245440770528953357160337348100971659890801710179125998089636180167721419820223786156327257264794489510840375304385456110347070134792226302882767946204078748912583851134565764304906325393785386899302559627684838474488224588222021996853660057719225844513763117525439950721365557164941490511088193285992095983016207709423270049019962472085600822001606381786683949627030388980011779101947515370678862943748180382722577891779138993138822358258938871766985042054864221251330725581760212591480701830185091877179203297362960376843792823868423211476550162516531666580219279667457744090739432887769657860047744282994152732784603208006266711544272065607081617805090461657636576487755167518282126899014325054760631841272072360444046195811695414410539378734457151773301379574506196280835936845237741162565563136858245472334588483518267263891609609218194863381376510507092402812370102192798199143605055256581245876971526881399650150899313104421941094244427046111929534295374695375974660306829652983022549468415914615331556660278250977786399522083635138864090516918447210278188451534702926888168623690516581461434518061337513502655077815795820807973209243096923117775700509814724285134839566228837771136031969777610820984938245878225497056738879481517836127945033777548896600456333242894669145322465616046743675611776810133592667875291416550249776533561213212564003748986475647223427797629809491377297946348987489437077780665270998656970971610186364212348804792531556835853779261780505377318899909396769285260753299412736608242079559399578327074994180252974948148069246492526773500000977390232951220561753848441046259816977215756182631900772262431270700049957184044226608698152118298647802724342212632638678061650546290160824237474449649139687898670496418737780256346686027742822723740435658449635281807383042887514909101462675126147308439880045822124701928353599883286574049335752032638587944933206748927057433478318206407830256191076320566807118882293075990505758047367073843319750328927096602568446531457180181209127708301750452064183245059563929719179919940772799547559114858950578228602555692324886039052928113983570658859076310284920431888788673805135418551631374381155577390037733222667739406794578463020078477516093799049158829725363037884976432308043086257313731294406673356768638760467804407840707575978991545784634652262001068444486490149639492621105102974511705401566795179099949265907457381786834775271077584534059614664476165643062593542543540853539479939775680860244075595027182099858912003495233135225973569866041974802622204823270203213476992849401557340577214872120522210811331726368228358875264667752920575113017266548174293307181725064388120691479446458468975805921840719852801725065850334458062696762945437569227691832598696004289935792068238300506085903342458167341323076286864930915587474981834032791764431638249362519927170733824657515384879735295461635337418739038531027791129778920079849930674576483196286071825669717399065159918554321921954169069370068060443434866007619049037251497225041320190321258582882672462103090698225742833543321724191267767852142111497891428249673632693705845113899589926400267318573863537906722040316320369720118568547851549365064054067393299547092885123933839960514949561911410139340170044808148116221695620668000920239280796298703026628247968500473806676337484484055836077098181092600754242044249608732197640228728327060401548454436067986444111539657578777896139470191262066970837059068349093515206239484083533425142719940577838145121353240132312825946246411509012382029707346447708894906739942200979994371674784092979782985255481083512489701200254908640684461658506042122985515201990429414513412409540433616106896605123755723623792401897706733393981355981251312606878055250712291607226148635671326230463164419408247514712160182835710086752800795724206336822637434211803960649571198635917510304205631405374245127783093155554259236384878784235884502299703329706050228393932886109406890128648729039214525377951822684361868303163415357660826089774367457730847777669643082661070910297476901822951525697389617687293150093405429210224436232702397450211674474119271013130486001892721055154983683216998314641074343037763717778007609371511252866373056760075691203436353352110163830062900780039652404849832055892552250525813262612518740319914721815578599901501774173624260020376205635618480896621469492463450530097794860307154262811980239274020142852530739359248704959695607177498598749142904927792921005862487127820633142479452080984099794057449717601990575490155131387507306140879962849177003429266817497264139336426050763344082321992967920974983920280191586081166535232896240818464548464402571008750612112443456550163175096529364075059266789886540801122057578830303703852401143030696675680552926545790940048350890676908098082289377968858852375520624371115412269612043504572893746015112367371390915850579592923141361145884440044379743959604220339138347503040142815059135471969711281626101011798609745761253984734193425665217311924364784632084836135381343931001100967396043766111856689601058616894155205169465069473371808170784992252608301858185321725592268271633087738552113499619363607162612066335078377753838887336930210312695281930253671787139869306000344051524182595079217345707336607404910323013599964620197452126646812777554615138621521732321481936708742632485168741475299338946873694504834063142926077495079958207556458665257920269238974193989098357144247798684956908302057166773708729258574614958702611925272474365624477144292538778513939454013094457176131249036746966200524915634467084690348241150620852285239432091880595837099728765473462897367146969636038015105989747935521434163786442768581548173379585143880595037003558725083324721542242485678142261595838450106764124897336363851762587553765022640704928352081158005837281245626358002386780684756925691155793551075400676564912496681052502406223548948068836830839030621327364888500929592749152352689760196885757701087876866913968239692084119964710744221169636850231559567159741603979544688372265299889032962661086922068487594914313072740674725371787621132855183540871526043723300556060163654789833585459515128291982945563244089653027048995522208776674993714669634207164601890141132330199825442581898946910501167756562398136311450160210749778970430010047216531312690997922544540735245467802122878964527603020572418897326272030558601939616236384844369402299629742301195631114050847099941954569433943686471259500004443085602176272755736936046658799143027310355563037501619905568871851720401391260862316199679893954964699608141228214242539695007267381811815021905983409436623279834583680118968378055133184070898506398303546732751829929090268488160277517293309943726072826708174736573367659558554939373933180382540434161348529079628879080986029629389958778302202275693343123863991385019367144750628420457817614110405428305343389629596213511715784493203201019142407975075607209572655515555978488407381486440650485201522205871684733820251118282743098566387132376640559740823102921932567972601638145827561577749113608055883923387884517078159320991977037680397140193670104938460775205149193270246347122743545815482145821455559243949215572080238484718557828916084088420620405230978332626859924650972372340892487027706494746302180123544438866411250062037016401821243710263198298678889910386687700565397559309143931748501952995631249342343792650403342343256233740507752085046021437706498767612112830935984908029512184169907912763591590566655437681896536724932512062722294074481620545820989961776324308763975810747865170585860512227742254652439231362063119522006720861125071929237920494950158921556806016419609553811765306349429400739323730625368205280656330766388801558869045730171728241353120680543859214068020746846919614577152773873668876659421330277081811746535561205403076843330725528645695713256620601512931230508313120850248423388825151577932698350934725879320842959099939056039928784973163865432229168774183878229236170611123582353167169419645930648359595392991879992155091655997567943673765532638407185754801664239401234335751191904721844007815526726642857513732876178560495370579242757326994931684847710596669141815076056299713859954316964759101496818552457393835846769989524580589745886893797135810314648151836660591734905888466456733038183276240874417955128918623696168688918622764360413857844539651642998455459982755064995893494393455872785779672254378926320052644662322660725846721021782705243420562547672582762003300730242103195630655286805238265602358187073084124391112798060072130691594186830491648035569804718472550835285113283839779545715525156096034560129769692987397359746818653843700298381508696021103485266760359048900655815262513859051641899447721508741577689111204673348936475867467169185133202286354070788702993832808961577009612728729525760130694122439744602385571655490476880557623286135033267906605654458639041865259628891424696026441548828685561838939859824865778334840314401464956849059624761919344581363732303314707898506202915659588622459865412814611284067026593094710645903677296941256983074838903239033167307602125949693809223608182445172314379366468452100521840941612202921329348401933695827855463377895638180787334204133964185416882000791575657639224384883373440321377678239928192689343937375416170300540846005921363153197407486954930131458211100360751399211141702689771468239522182111306141317719954039922773148257748662704644178722551773142045130905880022562395208088288522696835471262568061330969612976823427593830725818643121755792150403111404101853904844186746030544598639678942206097435977654775725159988927096737079246982382462954609012456924087064128403463197215531287516985419061159824513405474073488784230421672960701259453333211224171865798485748370420623147025347004081745429957264064300135207081817896604947483430515736542731493415028464626714975280383668981032059848479084586165498009676078297273244407037172667658515677083429551764102082873818957023241636661445675588308246384616211402650523408110773018853238020317911275495615466085345550377070859526646369592474619488503764117885801981654330818117040747325016480198142049750275054391152472636491496839419869346869122851544245109437749577068634972948538236790338088604087323137066283186805036338052498596366560371627661323451669022985333579321125574933976177244344747432325930255926857889247057243843592022791053516415442203036807877444856659481264234503568444120949447903286885450249097479226311836374229917344817643767508744489738549596659528841164830004958309394984528023697613224638653151668382568750176787923128699286474053073866785338467254886003552473052575076567964963283173377110875510667367823226297875965237446421099262578297495898912638235161637218961721165310713241270188242015056811886136251611691751554873843726103097610549754206751943883719404173382233446273862926660229702269644048617992494240331915534371134301271780074988726191821266771227414147277221133315589973072426227528271518997694544397915588467542278925750631971803699705601638666588428936682947288527602225792207675025918509145028801653316622800110887853036021888650639744350708369110550960750226512806919271742390494537420861597637545156641982069794720051988024868462560064012782105194769176114050783475529557937246242261153365265234246639957609121592458066805141172903016819469174328095136730132707187709965026995554887219320290348681802525763409190310832617048020185083513395292133571729590173296810498950795104862481283328260965335905172982032072202394740446055622750994291323837630954149020083261528577536974869598469873680998328157112274984120215641474545724487828311691534874336050765433195879752990632006446916788064022466449896545241389599247893977742929787939928567183007839043469748839456310102151495653475175710680189632061746120685697200890410030812328453350253902239709136963101677408904782817074336513585913777880065117841852271379213570626300755320350139229729327587858033150126497554812711011654087770358137103428013811267390400726680702336067369095296396519532921818199276667402560516991753817331074132506369910527119034118399718830029555928224654535263697790248633928039418274743968252661693896384057294325867721424640284443793776425741322576740419453491351992700652839961424895939274865883993264711991578800538832319897097173059117046775219763162435715056150327184766711806806725272981220343715968818033767844593442638496968988149552769713684805258057139106699000725242572206786314074119611502888549248158975900603747914733208563140883361640063361933372252449934747392077264835436308090509226162602727922918063621968073176483851656179622409152449027800375518147308159922334348178567886827802873650730877830670250493790610387076903075390441853135535759398853029622850589723997995131833809523698079459637454061312006661455141793726778497303429815082294187674778367756615146892273582145542086295256732820365717591851570935472752647810781095493218053216924524040826082049329999761365646884353221955140522563830469080846395555344408635713806735499596571218424888257396240308451904897184724582408397859612636754125638753692279028684174499018876554849422114981613263993771981855398248462321267806927927028266920972967668983372502260176722417510944605082734201570553532991936213438341217784649511932659942369587726385566597535961326097914594808271515629430105086831017394536914656798531403929856405979191411263608490796332452523178526180081081308143044533218834757198833913433364601330783679309974654405133317768335714618083568973499551763864551893727053171022718184206632080823014184672035087878438346062509151306304860287060510301746374747421765727009201858759005243885403538655877044448772847398004748579621727716565081147780644961812472862863066543979698020683999131619247573462887354662982831834168418061169901736605056755284960524332473323109888465916600225221701037838739698545365135056648949315759485820704793950606583523478841988936051378225659837351876603155920073173920685007783819471347178042307605737344057530528247222190568914867338254354472908720429023391719952854099250677919590539852486986182836557144138172018239675766621479714580235751391853965005753254536631532055854130787893100904885241925673268507203571496904035976645833962809328397125857778531209728673143154084656173772522304222481766689453688237664739073603441482362443527075596162346567188649203004721543887276931381509564987102003589778898808881906943319510919348115351703318274359077750504952724816648372243720465366708088401808547138398202729712615181687580174011201766568101746054259443105549913943454484250996509960717621287274761489511869731929221601029607885672322368249636830188935375870768335150213939016311434727829672954140622868416600152658001807716399314559050633387056911560992873169486721687084550665632666193368367042236770529206340250141026483471565569841654683419698089254007539378217347917480965891875407709042096255460982810917816525907894026165418683929736159722737437077303761003291990092067686402835109338785435326449517482405887114010706733669184972556031053340192738608583915149710788215772710047828068635257037277989048835065357930397014527307417977606215824929152576409781517877578103523455655360878414389828310912946937490170761616427927013158482029729020941114940214182771798916530184582125871359315626318154112910404546875312187585792540733991590711068599019254985901768165411415603399319289870578805575607128884836199083039195469306954488126074261114059146433337725375149149549579401057675141522760438382488053414150875147406726436427142123944078008308497967675997287127601292963189774677129571340732095516824034204000018315861928842396274267965053891588599265805398565530804667263138925373920468128850265388634033006008020846026211744528358549707105932457273495616023283584465586350356924099839287723773055712093726612901799030271169294882022255818938671333259766015308079039266686945311179663386134072781106585024383299536854939936994891890372188773253969404937228343004746682858023142719417737271969632041500036699713398196514568177800399308128770977887221166481094481845861139677161447457843802752673492861411347361265185310679143938794496912486035654767200636411153392379630856972933346565804799709015756357706517229474024322398127775470258244015360675535930935573789905901524818817906990763844801594160275744049619317430433384816347033886321799160205374642961176711737658611374191829048583227070568886857620281780228975516185387449186961362735357764322395254105268657813979336609628737186955687284897921858849448543446467028670883631979169979310315374037775289867083492808525036876714638963994911560735877330178459427550858296189021614439017034939405306596755076304457502613746478718185212293600785370755187551872395810545031904875185934583188224593717924580084627809472200305157128549617324123162507710068963198576127264680914514737969050795310409223992122680235306026077912422226701960079202766049901937319070852684733588137837562800284326279217296503452377117745820097825045608658817686303596118504770640362992181540543052434028709413745398612737387920951651428369087217917185939949200237852266206169168781192119133923761305018406191880806097997688381142990615091317524245482342161657788251992503849543626624048857429048036833963148412227537401103550732699319024418221199225498588892510706292537797785897339015552338225337061964350015881783786427094849515779496137485688071740836101437458780071587738927098076907895257290954095492724992550986846309931490017363597329724996488452547909834857901525977464596524880230080685120653251813054426204870148488103735093881061846998483298016343633512466630340555937817892845266684944169831010522850600849427854000869531989852123769649768603701829315248946009706854230330120278498777367786204915322959850928976763275213521255356667927392271870162928179167733442518169715267729458774774829514639708223312431969556056414355480216382014788968268518052459202568675905064008205967927805185894474945653386161727563041390134901256536056316872476415817851498088607607232041625153854675461584211598520898783725161457998416538324155930562143174546766707971991321994348242312797017584485406359765034959476136413594176414200686783011935958276207106516972784441632381593628388934629157184272782155496423596369205871301076795057017783651105396004502300763601780602958677440912112585038786430037281069188668869337846795269655530236483288789469164809435236889585682089482168820272237004497598315879758399339576380622536283645166783927454486570901835951859520648726739821822043366648459807962824991965755607839384909404083877858986784694353324450165476460125144348204847195111370341065319723321275521723360101114747956248527141808194754483952605766645480698631127676808624266105726344687581730096391326095486736208947190141728432023193856532990041168711300983419553048008400582350704113825182701317976755095212807745608168552680617339412933162424005600201604717488188006994628305409413556234856693873126728431443255153621314412832381661467782314630798019424201789802874519296776728339577589873023360854864910169568897373420168504513000897288769822264730073785600607469091220468529886624294954110110171619229387015962663623618603249291361109096680238787302970617615651529628796862170823585272982555776494776221919670583788933988984987520687584743240139687942338872505610758657608041734210129515712281952797588861051900916065825413837817683212705617991033353013511321490394925809036121101038307559720126086142629147360203133622375482332969825234368757300283152099250816750314835136699438081957678843505642423337799233663125144800883106253809116848458657518232323633657347517430992243241194159868391555726973783483133835846875320310778009096161663978035158498202673463570965731203169283764880495299094676340850064994091501621646072317319295689909953258042869122581604243763594153817958650717200966363201758980722186138212608415047177541282709164190429091208346513046688493852579712791907674768118402850428590362658467815859512943726103862843371594966216042800562652452493344644795688932254774627997082780173886399363532884012817880928367569720065718340493622722667694668558886339446564058734663022609823031028089515408462105364778524217410410157381848032117269703064567775916770586750971266943611074668244813953232673834060027338110501052883872743465557000772409046836434284505758758235582830402470654671064146427100402640885309923650082098635449552197137732316047913223122568858245081142348332452817899979104039814342170916119848109462513639101732094383647259683813196198687623376412886655444996410407680260169820660578347822862669568302305913276472536350717662841255758410309098118755082450592931429522101533200630638874352870434381728962579899112058071686422989787317605886981079353728006532119207034931405461832164929161606914989831449812498472080177050351143762861284913099846569207119984170403170357412757821743724345752860733491481664407662641732774443403267973096520786012454763002291095199532633756681233184214697679426667402395607962267035310417976765275323144003245709169321244351156539166630964970350784227822495661306584555049262166637600595305851684965207692571001332594870726054204978674986995494795877732866021122619258062539472359017792852756496091649255181501681483350925346405940631115941940400465885490404452686527936054741228009890332904945097801365038913825051510083354806100258815291346807908356778516944748351811683081707384883973807709556279729351523605667348479038610356049752427822553224440996865419124089232621097498672120810289141840725178844589602763029877813680107280463316496559028580161046290708003076507818108464485158780860161483350485321948127496968633225786255330154876325842295956532752463224509415068166695696896219430498110785527109306148726761661419318164808297524838625243684776227874353641282581690740778434463070562668296986096520506748058017480651210567316535381445683030298854723602597893169060374581945156666273669899440771089501799008201374106753400433683416138582688840532238021180848064841359878461310309539631170611111005397209331350640088395183806516999305401824211206383816229411361713974141741760541193967247918565489582210850614747100866430511938098838316676703560428580364827353330258958010286185364495076806485161625432274096386453564460832836184393886811134127419173459040247406941490529059293035896531012996217391153902420670199502210690119616983024371400770863000275836182489832427007677512623672897981645864207115923090013143936339202093068153876297032376632736354934712251860908975086225646247982225083460934374736386306731802462598811826643684949007722809111072252766421225961272030073693027633633832628251158455259019663039041694334541978545220976950964315974641403741207110420129151814922040434160221367268340014891072094664064284655834808539636810348690123093494006122743024968048263266455659938878346629377111557756532948993197521229170630200058870563031985005162359003368630222729649141925153487000061451594484775319570739329162758587604587180346292586664481842901745547658749894108354349487903396037748958828401471958508923684288745335165646973103663783758523291600460293255488067499366210928190196686262869658949598168943317137897045215715108083259397011430272341629502977025236578869241897620081429540405799602097975381314969044310660174207347206767051120892491834612976076738571058409141114401566458209039257165625240388013198608344409682195446888384665627065950562154254381116428178226983234468384897211034762805382985663750003697527006921092091549376281120165993716971942103339036556980306158246683038840040907590512664164298203433516721801358461831504306445268332894530856118279784411195742783275941486332892289466836444879458915282754670932941727432283472667901027310764837601141906470905217047724044495593759520617905136872495415249832106166096900894702682951612774356523655168293117909410854455486270158594696277355582329906928001892668680356341420313685703532971979191028301679669030239571534528824694794932102717698875753058206504817031417773447556235623169056574295164073924019856721855203074193849014662065429924629682125858246529356122449833594086019673278999559484817474162743115154820666757733872236048266354656766124639330776175955857169122977179814272779459193612203267269176034807349172181244821462477629473951180322213089862161243703478071466945300119406850472096398982545968972235801679686425432490979911387554529363829488743852198847353841343516875411795865183959677530973270230641413190267706449357393159831171360491488076224152625020261432088614300555515792733340145775868258028518133477373945438684655549574289435141673079115864087690735349476813631835384002391080224942802768564661682010281488594354959973525570031898384390542955203802443816522506891009923671942767168195758447319168327719894446292323957883209090592633137034388394258820984073302640047176096489609417937812194686437879901645792129606562893112688760995249251488523745034619636593240528648951691710335551521442801294053652262770186373195693903754463354400264569210443938588151426967168316840098792757549727084715966131256065300065377820049551893397288179578874343858348024616487526007778244012574284924483240620603437465943043695152411296864857375254481529535187523988982082676415097657619447243888831126081278733628255167693268388531845650529613757698452991029451461460805955601565455588824101031406640064295869808413008447846610671844558410930226613078458383544786780955301929010319688097200267859685251656837155971924831570140059622308838610558529828271858317043982658002418454084167236399677869363277350942019956281287453743969870463578557685361172224232068112388307349405904308552367271278843427706718827402735036691318305674868043100346558327266241128507185271473426264770887056262480962293058528922141788486921702661371215380279618125890663744875245716041234111422591539641336344517102998379717549560573100996005037882089699451976446860521854402196220442210428125202581099685630923996308766359795122080974878775446628257768627098059489883031773877248631127941929620262437400871178025493638646255502270780094491616301425707245801795296904538899462378429892241184512928036584774078729833157225670260572669117728202988331158962004554252700981205279059245281951821786801356083285518054509929124021009496789094066210053136772089889326403698820331731893522586825980649808429399656522188125714668317281797584512981303322911598299565403137651116019701139182975979464694437407100279060844215033623454825507477982306603325008756610572459411231230453028094514547270170017293195110555997091836663327319865651205945495688863637038952640042032860897041538210702464201566779082323240448328138507037514368442018884329615402067090420846126340351223493466828499608435173788254598444798939679817301483905350908428128281766781628694074107817635908767750590263579422881642560970060910102525234450533820460238349176295867733835401929922062490870514515260136297043812709850848521405280527906204141619173733214353252535392468004534639865729428763562275644314741251549648216226103628389921843696868322874171604782711938431727794019470636081284046026296842365907379394211115418968345912563656595467445412351015744324679591337482018536461254962240352120266639249052050663199171698627660464671401699005055975609973852379991814649035422611914443308762996430546765848219341457675026983703661346156222929400241772223599497989481480060872236410789528192960279102580515874298335727983904738312335749619361673703988742974267033368158767465253860061538260325821551689827460043365704908700075880868075070901211796774758763392681054899874587043312465423379834322148335457527262715737229689530527509476358933042583406017455207967685569416724056402746265359258350887448613984398330654439068520795670919428291972549920482566620043401892803644295244444954902930200960591728197358238709864569866110021313472219376833606921624733126983880827254664193491481456161197311108768921285879798603662674854990107098432934629713728821987929440729677718865440727253999699123045362428211904658671779830592512487429417547946038960884240437018796505720777962745122800247143409990330524513641480583975441545343417100026043236438454653186927336514548686469628636282440927496238143587745059769671122850034328751287947232400207655395734839438971916699972777609730261727102619471291963903528715769195840035556410121735579688299664819176384934153867796426579597577893009013177345953845884655775232938713865848558116723593519565865572301736982384080733157196297953989829048884905859192927642171361358560178280874703098661430848580862606740040207010438756607135255171722576231267793085423729780039605221500150362138010616995712071794232359568090669255450309110426068069056921806271556577719515367583582914302319199054800058039288767391183278353520365201010910620259953803847754593612842508397141561629752319772546452480520112837135595738382156018909539798370780687178969352877996275537771117628484942213513149500646149090363143806451122537296771345582081369019138179982393824450268302128098965409542651118462402025881216900169626383993843023534425927766640271478669672668940926562925187879047685430029903923411813121685336627888347980088048338507918888018968548010066307067789225489878792911643674002603368394179905159067044053186571643699246813906306512152065393938654981704584705957503225820137536398152720656964057646124316923808943053562292626333373278902987276593946262796971844987280637994887570429133758890675612095439833159530225940683700657860943806295504194167220705997762220489135655317891617105851837587635778427866312298888731585987022187209679561005473623624988685147233646237554328595361169287368041439450512916513110905134253923729964814904182384237653365713571992400890222524504296459483886947646761432974111005838698745522899644435311714964730158725194503463337564688776616126017760466760747657061289026187709513798088043436637635057904657271716220324908752934626033284523837281073558091260509507350212348329418106198355485429219349721751893480546708407881014595552885055638611188803969406372509532368750613965893825023072773064878295767380895093122492100246189512452374855141229181976712541542208418141770335311206695062820559774073469652734394626268500595988286015583908657044134776958392073650250768434349294367798705019821533544693241626986386227821056370220688930225622460392330987051754876893742716878673790196570655018852450301229790125624011826931566381970934177696471389071890009719076989471585606461268118968015679983659274103543999043618542985310105735028238669553977091940388512800960493978105668365217155282355573919279701164768817560116877531047470325904891115977630245908172943665799413909913180640301344730887814320849937006067058990211748189091879208605451273033524960209958597418827275956516710122916590123000181481233108909126811513744762174712928427572453730537952823830533745067528914556455895862966003971729943321737839949470628225085871620943150238597111419242370121621807632408247380848100245606761386492439960323787345944816512904869845584956173868030455942775655913597302045641720496124641730990828659293772037341090031585640784606279918559446206638211101423604250094102156076410993339362637537953300872578244898682717006900077389101345028291034645191431050921157412606171749720378682392012115271490791630844017264391480705169539149269483008345468481743110505168026519126539076705558694846925275387191968068952273752114994767766362926846907775720401706524298510266144882958410061565417321479265056645645578646449205664282836842580563307120336046968269470093228794980170066663201407840042877385074660936452499962830255129019219580739397284413944990251599384575470412457494784930036445749750007089559903921413049396605121265520255880474522493870410325139476859519508229676031394638698855040205220677623784718954944573361547669542986396524365831338150669539680337394688403553026020612064108289781382220097274909308823350931830495992198996119236950595714471311197545679905082452746260268300729455879132086910855345667041180240730349897364200915184132637550753290161809661428146965109306054635431878579167216833779433502364720503641403106981526920222847236880356363819964924367734168551071527811248483994572309577780250424374732510321525945143364360902238409940258605899318399342768101262578937601619201319164271876347811812550681938944033272888796757802174190356485538193817045787706758289384516450767333021291843941639696260665527976894867380391184507732290321361558828268187191002629783903037937495853927923689756541187907388635861218410142004027131189772913207753286936910657311811991549940755244172358826894200028710397174737463049609885113153338136171651464544457085793561718081935947645329000896892775765024482913947890013177670652489711696555404464874263900066954955323137658108322710627166428844080202568278574652663936825935883957681135951341072857702988159289232822023080460606256889719122424826289272079655794975422207105218868793313025651458517769007590896747416743944232824882300700598507019595173767683423907265185990354508560085966820257158749798725130766863143547489684245791607934778621907165315375743327044893542919516110369975583099387484309440839773922494655720552573402711452332014608530491494343784998826695055508226182756560368508702010291881253054258254099793655730761981496374684169919065158550728472966321562515822749838111529950414974499683898096224169127848168317540034053295422154130970342934085722734558328300482754298274114601411907130734078646623151680124878326825942211496603878702641028975414664480685814623645365783786928228684907905501191568554180958149172289271338813203398392347477788705764874652027058630900365440226279911506664888550629043325005538600956480594911934786436093185243987761770828272544132655938314930245898145052409901604362595757461469173262018168319400347043731348155001977814995166395392502926543398926297627474158886521673344170028875034016741593883102066698141494981960326795150814940423365326683141529126406619484820224733475978938261877345258323323537908601917078279066680950207886878940415012696397009806600093665492494923469692343729686118841541072746737223175731321116361845337877670482772895850481412517415790596376999832438774044573348073285313083040780649273441006794519715059542365559115022519226217369036805316967573652571087873119084256414731209613852606414361645077881462419692007157585243006458656298894760400910214034766550221525586318911986103960612232760644489375261434721367727525925221892840187309218541718178701498269897476614586474276311977848901609022354427070292433204560094238909478342948275776381093885275181197316630225936767676453898327441735141426079765827569462726411950950838180744002965429047236060563119120971326199371598334672153339195350081178043046821972862652829920384240556438972088633712635594885559891767891445794106968717186620748625261603548679716839618876577217899745489334599888389007710297475470750116661826805318699331456378503232023472431935793613820178097988612314075286109826531499661650274611889315938162696674794918721247994741332932966820210483403371418593455772413598582854341171740611157693217764992137767888457921756334550823848547785382659408146706847875470323439180077685768818512403725933082460320832449232946860145010346841561054353158666263669398314123177763237589702628360194428616160050939551023170351440587906672940526853210505337096506088990907207728834211103790259742777832460211326522325459877341616684946010805796207888603025074214143398774762629757592468475920043741020126407076396304636311460827046146298507381392521085628466076727119661104930679080771164302512050265620958777403332737600835738037909653044796953323523453444442387018248409820722533286861254596993851397663822293289146368648315491782217774474059636923061327874181749224302378111054343319030703352604838671150679731576981200709588232677426924931837332304917325213393017004269592458806515618415871357135135131494774179763375031722321371089725520929887043795654866704493845800482481148754093459738995853326247154702817100664522607735638265328187003790247849305301654328163110868560425947905553725195544784804277256565294446833720976152469306553268272795164245703637020355240470452632160752820726550540927365379480769066084044106959510304104789563656151488731877137075386975082713169222502153806002169937278822509244398817506184634117887423239531566611544536641842341532882292404457700585487509915201934151401484427907700469881956308236011544493338780015799102129874693231949355798917441333112048877843268427762914682704019503989393343201958744283745323562656750987179889770759278422755868261846552641214960626801513182280643956107392148210728662652989196991739622787094022642724951437197956251021001962776385540491391690490859923668142642461138700816948760388355621253531532432731882754595209569330989024788478349657494827026480136711985665293723377291630733057167625205795624016316433661055724780554080209258466019813402721661821060784056138435189686364371920178060249967084343678917154951646958821735735427841995584811995565548625878618422767223460874595956791915280174592252190521734392367505901839181029498729957915442720647556137074198048466311994082479931260816865009509871599437466014479612070661614231989779850465610963537635993350077977794297417888272320224947886350155274962253573134854563554487533997492141796814827266444523862713757018625613922368419529145893165902975793065713677024786619165247685186665728623879273089302249613031016370339159957253470207382093413479884206782616464567813863977922620955093953519700689181916935927716140370729792854143752837653716810473367516310833212442392575622179723556749860700241092835894511123394069819289183102211308447147793827748753568567724256022711009796493891536576058419922249641549895782508612602763307948286806510959159496270356558230488517043567238009214801863698950140886261050045949326523401605755554436313817207921476443992495424266237671112182925633323974774457501381395104081172228682341215205639617877197809835484741333768552125604146508631816704060851857991019400610195802401978802555551587763420215433671172470793394684721074837524550863251457082260099613990925259474507402533894414170176896617198828275242972707174451677628558434518034935922072164480053445997731014059877669712970389353301447064172147325035717344725977682095180092940968424201505548672101468461273716913713019499771786335564849828142396495091224116404704830241391220833937767815412637801005998404376140807859794707689689945442854339365848507325519148296916049847270868431250160465321589239958052082996692572236269208767748262353208081990861274464253520956187872662012355646495946737971505619050879270680154312023364363253680860670639148511526988465209768584468130295380475019232945519401320853057909383332524153001416546170227593083862346035268934002276228143059033535795080609831060969402404938268830397340224536222659786684463060804929738186223116909288979877886710877628317781552628209556287691202079009095838291476446561560630426085587681678253640556300460815780339307509573573494976121436357936720113602487999886114628122173710930768726469334734852417895152683254421238067672645805621644244313164446524657896341234339410295790411287181746286609431259799486476010556184435721632695721503331761528587796946399669857801846544011576893354301587697357602909464549360731938033706898488287558361938060345328928827793417156660634754084669706927737709760960112186105460757188849997763461228172840132079565050972555955506602643737517523003525495236593612408573606465816582927659466741601401359032984095143932409267536252114277548563416304991699305086642611001054501906591045359552493407715826486901277047482071917406552413256974238344669437727057770102185945856471720426855347136155102735570483762104544010700148476768668840750785012492003946417916306475518088680318641029852307630613798442493404444543465311702042198169730999435397087035021648480910782369619656595389027017909260533807757256775917271986302422659998517248432722742626721847578875090237236294135138655978692190132308063639050541571717180498813150283083305304149692972068446632696763475845777450905743308379513154661846622440307903049713368889931971160469860518441943434251970681399879410798317373270980467488179338582278270693914322445213295413335894964178970022920250186638211350286474989943652843941658603189509163913163853228802965342395470243677086290376962398598892502167913817121068379927520465894780463294313769065682623074017643121856724857653930583378349454976869646406684547672487476703920659784930973486306079506971438935386434484198638833078090275748882754951506727765162821958950314440856880650155106872316771309577891703282826585093490363544559343522432704700262363534026109795541326126853139530190892084781824822938885734454574609055034641643356146628746880016783583669398682646136312407700538171731731745788769719138736417613359583962507046799998914856625267660244036214650743983690840853612866487390633305497735272006892904025234185415963023720503948817080858262654726295170837666597212205250172381285007282557123248097331121112113569534637722673960021350356971395003174970872498351575650520004120286483537045613217961946297162972411031801533288687013182352362197460918413611562744554827621639976398389501507149565110584497601019597097881819393328534713768647848102516751046025506747360163106828034394583863665965740567467703241715139587534275277015188221037525418232494665881941540519480663721685558383294074294746821196905726348612170657225829123821342901506328823539155878249615560737059014369234881798749295333985959576778988745375778566578242318570980191374941496396357794826231442796195770151662947864557420830271365807068732788089419356251425417720162528181103387852264702312358195595904375489551853446307549848403984950156327997321801526852239240939005843539319312413379719487785665456036237417462141218744744926469747674890593349301346593775681927585029052380508420148247033864710772958346351439464421504283972574443096440438442145024554734236492397451331255843165330254071514188879936159353906670316197642155650242147864906901588628386237298332633493149742156976835951999883669649296835037337343493111813095830369508297692962655471658077365002969104032157249044136031770589919854577441466508595235693546958735665398703159649628157065081387781905829132650078438651913370647712118361224323034815543768724956830177893270009681837129146037784557934355672839908680103204029965135232254670483128153989834388109156248339550555869115925936321470109390542479620153646152730013291541305059902441172590708945010661155184991111419509630718121742178461356505704762894223159063763476414610140231097241001746183494944334600194277058967120178041551222375018292130890398478520922927957957046860576584416340724468325040060168687453693640060504206404007814821543382920597368809785292617429977552649698921662381309806741419711980201537870737565550650676024981143481786148346909792313162450753837342417444265922872295588957932271755887124040684551784054850454332528222717889149081029752770030631641296204744778256947220794621600093402957280209029730341367106145103223874056168800401414197783461132658234059556816911546292637016813963209081344938275091406254962873420797665190665296135844976358171981673369847681533703860420944487132724387269383690810238360247794515310224140628643613618031238931447926119374818060313425422641826172262970347505553179531017877161006820237543126276421046977344086737907499989506231485104988025551606714265120732975099992744496710531328554155508224187835098314027080306946879222615561180646816092211236646055534504758126303659232690366790925117315632392763652486701114852169741223047861705408003658527078411143884478057574587507565936588845009642010453026996261169646476272308669271598388011273569315406351706225405798762764243308770432239411378069534307062134317022784247518940952829006024182536498387990855102963830235270937781202907383154580659350204326450443274544839386475064873449664918233907628793845553553939570496968988990117765383998206571592736629803395629688192257181702911087632492918811601479989130446441755808698880896737208369305120635869579308332669211730937448405029544271766733533017413753395118347685870241349704514001869806171853512382011058132016450407930139492780266029039470262855101411555061887376863194800733880877916742023052017341744723811156626002917415643150806886908962214999936674230338641424678524022142634915227612634480326760020096409543420711848289706474750641159895583066839221768364747416207543739364689735102075749750017030488859837760163119055950856235417132941657389188191752401976113632541567353266311402371732087636809327272813518731871722519219821101824763438369840707542854337529560346557270039408318980330085082439300542437889899658407608449130772435430517503235804331524188492016501061542154792325373238809327554322218896886365329187967598518548929558211271912508654943208944405362276669992286051745298653371254127561759968210676470787482637263044899449144849928027461430572935238301857109357093785126351496936879769683560742921029213987816992285657403546616320688430758098965796103965642507592354331744852768290397939063396207694071174613562922313478943917562322006976590599067202726144733334639841717676484414749850506443927521112160633597348939816825688532372409914519282471312474700522120155555421984012502005594934618237824213870431015386833449517968061412000024754852776337671583195663499298418463949778883707858906219319341385100987205770200514687055905390984903307706709487996478146502385546064604924080949523815597058073529539882622421313747919960561160129788185918248061020464360508312074323879119446997078513399632064977170985028270546676830641304526039984680694604445819503668109778710654125877223981306797370290903849788703988909178074031649257000657815785137413863819450699164277839926216172025222790373981806427350110472076433906156757765221876684661749345040492002305592317722881415800496632911649520939330862600328848395168165855570624211200915457141233485172159472726338703303609612769929700375337601620910898118447961575187951671314847586855606680751593010752239903487106371566436082291132650961139710106805741819771356269059713522337605441659337876632227442487237320629616877872209899399341567650182392460671100953274667690625427541927891878785997945052539280303841737816832106954461468390486320712346180198302496406268131069880196377188400793367691969617323355246844026034910173534384104964530837398176944822235893228365755671161144384845768763210418852272148411239563732259011630780477273933936925777058074274340363284818704984755070203337516953778967979999155092104941295121057366742961894813812195628406842265453668127462269046850749760592545790157169597692831431536546893972841117464005959540059085651444790668054966399741102946608715662966061769676066382643789493764681179456722375466444677352982552416639033276449566654260285234996503050297543564432814449224210742104116955907214460912328043948534926093066228425162188127692888286644175411396546819144600530992974067600713282237616377556280614459926184116921441912677906463163016885290821742267544547275327555717778988238611319439876682770244677205344642940286915413132063182874925750540410330027702324634684787933429403932120956949755053519321055707148510410570747257025137066417410140740207963051135971875604323667058914710500262249840944804618483826668088097011326310796817052066561510277973441209407224207473022854194553068178504297391508552725191537437014751642696568206793414666572538529554369820755364461357845440334840455692184666768349825375967441395880354155623232405398437017241814296274799300925963808391137324016712038598400382176436874998543045623789597598309378446282607460966789448448976427637463810661575961332856188562150291828279286935183659592446810792405200270089378866612513428566307651964514901902049435580041059362184853565060333584402564257046066941092723527173796853529791151972139509412633711571699512335393761779333333035596848735172928295429782183156199374351073442057396301563296687880398734944134975820226584972423586847425914755514184388765415376928515501818182285298804747490758247636768342949870745918142381314825014692904799805915990671669307979327813028543906536749812226920275048207943031685113345282868744609988306423554880086591168195872287773871791614349584460795715288650397064336486913048961535035293984660372676954480644824970766120929224775297443531365901339441837748527862002025731552128228853978771615981132166215180061385080835716622183175544395933592646363159872461891646910578881508079229065232382995958814919676751221994656231663324033317431865130126304771276824255370310449610734205104401661419775743885581746889278100785901555216311828743136801816285494251957948187122068657371929428356500777801281385703269621462660825776852221407101232439124102235163421252545188634464228478912145875049357206342158233837311595946399161616047358037116869923490500667542031448840985089280173861143987265918695707523178162300053014403996664970504740879056265219612996311053402278627467654185134999633205365833242495421858470618467648040552653699657305904077238263987751174898514159118741203413829658165938183856599721462103890791682737050638166721091910265365778169763328675157023737408604009569351369210646520922089859124412120981483507396106743990095766697676802656089561437900038075621614861995988481182778651745055230026326536785415695908899322208056414120380266898289511245909272107522957110277019369907733721695714002035157222619252072598938685799888131764588685922664314278843592049079960561984892381984186124863735993754485194996502493663531172756507671065625107594327260955671454016074826441113228726434482112865534472450247280501325795599289687146837885022101111940284072148583462113372263591378161733196890084944220140961392081806726544698750771565215356870966517733469445102281368596592310269867230081008502744760620910266978809199610778042541887905621610253261978068775675159878602084537198488745108698824053073816744096842152810990178351854385077648309961320539664406313933105267339068128864479926491025083440051131444670733952901222711605001446048173761359098140240556703074929010737280374612049416949484793790691116781746770616019016609769260407046735923268323091009897576278581855192092672967438870199545193825471851264155201572360901530977252747989572723947330453922141619437958000735852573023396950560276398135103260712145016681896170881402020004777292940494389788056343180723341313830822683204842928251574932956657298718194793500619810610486710457512955300058984146802983191343840840131685262082769471852487560631753742995434017194901438915878938633724080457665276975686006510603440660361716652016095815361854475675527123795438712320547247337020615585079954670794628611939913942777176523744905513982243878750313294458529366447591861430703187756133652005823947616683590784040743676247869414219559000259310838349105715117120853472157126795322661453001872697318509527825152015252715013587613628149184263709844782759116726339967189304916235124343164472039811026565044594168154502480802290322989890869827318976320154165607515627369532501616710935455672819369136359252793240132587426153074263468619630712594986919526415830957631303120668273810876800713248118179887107042875823977008100491012543696673089349408858565619771584441306779250332715568784715951481152470707009000540719451586506508670452071505037318300062472160024536090688101296525528409234578934300549781183668893788077210320025263831608443581366094736843276759740216531309468523351811824903677653126962526275332789672743791398298891695043396355480423424256743170915112189802099305140685628789333355278910704933727058891172912361950314807505364732361429345091496081227462739595181261343929237213440675295923269580591750692065182002168763012507608130662333917795440388216255652898440011271028130160338533689749753344194676496736448907354274670213588170170292376505748649890390841177139085420115080468258813945890722532153332494666487186409738479777542081866223810453911638792376289885980461929610284986998871517138253458084087470823934256357649938282491696469546784875451713146035597596737395843255202440473369454530395307014679879755109890586518974368299978183010924053418006139986951046199203886882787953382618950485453504371429776291046217548813090745043304837178198643362117066825305720570860892254192673441990759040185178040135242315723448892978347346252182483551327834895302858506714693997214336982307470917310723795632053925794107267038919199950460898515507275325933759329131511417145206241962869045536845076126318214051595565454435723085441715136847069572058188021959523409787351005792054328672458810279482423539421098252436548471072330345280730110204116839629177835549013282096476255373521606326391751808080925927865459675367860395965277815405369364045693493703583669353629439000609047825623863809007273235265968726706527825361967813487201813372436156411042388740304919778228562507967442042974038181768612999922676781363042221011249721247969156113006546926410475488911118242146890956269813037269587946937184818896384024627300303025972870189160604064141407138799391497814809195359538223786811678486335589956793684476086192559808616055064491516739811200807502285754645370346228941240935430384785581030669264425332897824819134066967080684379179325198622669784730159743869844663352369058144719827559434432636043916624332731596636759206731469968038459296480596657136840952323670768847846306081768653371759011524749679023536908015094725619152291864911034725301056431572939452454461064782825172630055644505538535506231017073860548356937986347857555910179298798086058522840987673097884496782533247645200208683632280104427650586723209803101012806655206855045289655810614713435611498558596208134836176835985080715276332294611016293559027164627005333646566001651516191636869667255742916980433281047598309250235812339929573648636120965545889712333228471337026037546486052598574830394328411047516256771235032168867019936186358948334022238166095361503932276996254035551111279697820603462792860483572490298332544925422619728667797514649562164332853046397483397576858752299441046725780893710422339123760337812917725524227793463548585364071558560784626734601340833604111720876211084529941301620459919868906537562800134231879981997729134211769429126272537183556444342821434395518170726322212058139731238995226153671749744286608281100109898464137260312549319619633743698407866265579463725655790688522649058466111595647267999709457413166378701512457742231429346787873516688436295791886918773483715353365528874870703100774077338932111758545855648182586312225043439173022382672575460702298247845534702145986955838821302931349699598555960912944197771302197888960153119182908346176231430081185379272323213360497309730050677207266540212204888022630577733145565336633557166325048752005937973330028066487786819760390695317567181052652199378436287542166709566105303264848441495393647149016533644781733620587631626518668168894670276217217608919836373132326344597941221143654409946299164442317760066912195621462978777048641536219363014428341541846083963918376964823355708299454333829887448869498275990490605453282401699640190246874606890824722009302423856353950667510873216385874537256126466310607107259568814272984964219253548052994746677808345750740136598542359667462108377253927692332137064751722364537010139949587622822609001109976995282706776285434549471151162603695118183032666867134446674618925677790039061842553268939214799204124821839599981403626928659552284441416449831818246266648314158966521981119910121610659571114960032559368793994228157713647626005045846591300352658522910878180390268753448902244215506927785842424523953540474186734518401543638205408832532195025155022590293927991020220678888940207808988335044468057374267086646313353277808960769877657874354492989510164127676213370704709855031095979591876882385689159940109317300387427061763032158073005463150089781302591615954262953660152461748899051083306349779064486307091837953283182170994364031623434083275391622977880349928167894820311480708539389342221683269702372401666110069159658018431779459076332417972780508762174096061148058451360355085573136312411537289191911155616396600387794120760672755639530143187842036676370427627913847150089533733116094362480835043481788783066619296690455395233620781576934807344557316632961037892183319332213869214368791454131023776340184531344438312178892613217870432016244862957523760628061790437560719580597029925151195422648037073347965415276453332562589436208647585470640688823418141490023038752863292019807494907791126389192376798732980957485380327593785046676873099949441064079161019575598347598709538246211244118963910869009826193034424710524156476710358998675049774754471656778702913726328771901116403479209046275866747117734046417650413397216945835098497142149778409401242801606003286764748607819068490555588607149707507088116340014347046145132188978056950362573254914411779671022591129438068075692138936144075102237513258624511777775064183896926229548334810891570748100130663001699701298666468147603005413762611687597711244354724119302606406799392364108896747722540454393682814044195170391407162519959457386846280167804516923683869953250339994740920193677293446247401390330375829839591292563925196169875099414308831005673065352113658308404180658248913220967258228983476584149857759881600576504213183293492890415803723380486846053123554798017860317641349767658887112761008109301506456404938363391396807460074847383601891478345166167812853741950349426949605048522214107824361558574395941443726583885090507740134842056994578244328708467309693978215702461227422344832448363115568714308750859177998976639698679215347391003315386287384189814661559407636126931165391147075431675281353272056996757097371251578083186223507039399298829085654021660223540179179437327437921903041621421147857393781716219226874069463053656582665216195187539259636254120418193900919879755090456479203545322556979324808629609690943876636146629819811826183287712020788025945231461933533656935685834566526438534955745008433673439305790139980285677954712471414244202708868593726984427466306840987893988668290674954135910680436817800854746739969438888930080088735927859738637685906567486479201221937604974669542536623266249676174011357368733163213386389109377211828897311398156426200636508672126013545975712607241482115439641263650453533258243253900812750449413103157483213683499872836557995990574317578494984061226493613667090627786199921289959364123897858111166266002077141947254098547162373036185688617536333624885611086350939399252333973989288058095254315384153597688430112592806058918375881513200607321251608733994384113327613584194906438137612956561044988962165338891118876160421089659213196252949314622996470454895729051771402986885900680387331914290486195505644510476162944998290481143645000537650283308742387005174558566205521314933599905994016180735962249017112480691632198863747312492607066421010248723718414575043866231990265480352521061446622634943165942457465036500180579928067293270616213715331237759843388286619441001810090314552628203457249824578407133086430784177312728060217395279292612200055342374626172959467573193762767138024309777875084463102923087637490874992715873131726001142777403671139604935727781872137598365516963331816941560349535799499330504949399905049270057720066186256682848812142883253546785550595701463159097325933102773050757562365540689803482291273090512492162962025060388111491775089024686153458897969075403410938749306900632404935767565159575060917925836587021594381328217217455310910066540407922048716566394986885874895104046802640470176969479105765966218940456971687196798477593826528054573274721206229816453529723127680716088233459679092783962236824941464576111654258630090716285617076278873974195509771127497335127482294425080490136233635462407111121532451946596398045348386272796967190527503964135916824619856687884759451668084553885742291062501045506295063246635186722035750927150819469226582759003201287964075684402350910860428968450828000705037834492315692242303825902555513580319820559380119845251879411497877545888884739709598478238706363514220165870423523514669867924198022245994129090578795354972303260643718095080190776432674250910367354360560851514789282689915320224759566476992216603813429903465210816250064242593002401177130231929975775249819800525481681594338720189691378052500566045073145033172398226252323434660577097649548704627589078642609472145470142637007638320279225779827410673752494982639476704066303952619367889786237558462759278823705729067735207871187685814550817868131207182830148393194813908816353947801747353575644884362923198306660397315752383135475705066016791121931826905738264005108920013462485101835846814963048818563364511900523348655422293463948004482623496583387035862016691521563256747201783254069452552082136189150243510729956414945084543243262931528002572710730753128901163092606128027805405052594404886751470024761846348096771381951207657083417869405703373626422452898853306866804994441667585399696200949578594904635170566262924248577735870519826861888130077847791635255434996406239346332503064539043640911794969344169412985154664319372589206924237396546114954008679923230691720612234734456016825127839621459188314158142376189753665223490445730764242340252727836206492684212384325727958448860025846449791338470744026766677309952395322339165608078414202395220094582413722222128966891686562533938107588815393041847174108205829219111509035571432106364776918453074414453191815157306535140938880622561123248687755257271931950616849683899874238125816444010950610371428329187485943001935212547369215194138106305195318811018949762536202128326407718777720903340358699875254373337113846398025992319769423227170449762358628890330590347187914214974602065961357641822701046138993460392725574663958983159366470406479734146140621479316422058553568868441767586629937784549635448737228473214730426386008845082308277268375826926069054554271177656524765951867199539136893045532053570106320778490694835514687533621612337989512978222801887882439259166904797998299665341877520596684285654657793989626226127605204182008677510634214798237938945461570441373756834885849493397251041116755155736980129881621270317172539848750608143993805422385493357978378252745751946727567645004657954412918791221730141819172812800270846073948379633805316653269855184270082082805761933545420758956024282772948400549644803072189248476218711872386505265436763861631046109513353409896014839643529847589101025379409761242966390427463187650444739608084221957996873181241493111239044143422853254025954948570567275452127508339233894791918932110806022816772825199871437023048755677687318067312129577439957203996073756012242791331721191273749077238805358878155073231116390178130133150500970847473224489851830281144766929695861725406760992672556978816104238900742862868866123280493964634153028999607195403634320026004196466121802232926945555821921474789876860168953949474862846008266280712098252165051886102486923137293015278819110573883946318606052893158372353431363790813778677250696514269072156078747115227907757961042280420410052530949319390463713388858650580669841080782198416904864772807251675360347809554573841517267682341702995517530364279861374142671342433117537334287834956619170120345027257597694180642465945675159991448033988435785225714248020678129124646243882716758458596939731796008758067381184617170710595991662041211557669033092118539110406076796635082625686741491588743746845251977754256074710733332722269573380141721098916619431905475784061133150201070915763611175530878733007126392330688995386879907053357983331212978121459774038405975519990959656789170831161360401775321525921363007032648001133951222110676904591683541546458218472192833415590249075120225568167830957455930245187255974266115167261409793790758153922753708027838002487561894454082609692152464301251282060406664747224702644435658159155783727818458537535636919032405651630260852173483812597518448770845396497610003739489368507173073335616636333717040327177263644913090782612344374278742994445470524507445550596308683035787271469197912157677372783275479493068466926555311145677659649860047524486107763591589900305535030355295009971628182270357725999744236686116514418733759104623235052034108969988718178770373466765502837544131945757901185803281590840989871655908812922119974689207736077572059912621616970186460384908007337497226345419310147462020962909352096027593132843332182007551086062870511830904229331448241363908436048608373519980088256896363845931058592953036355286131626291552666841092990803980972406075826555238027713577811553394485607965389739049313079037117080284915724308288280301882859805002944946906601370894293915625814471137059053596715129248158878356441328263005707580875602791820344923290743722703413540051334813975246726325677661288724149667557804885694786205051345088591124372179774841975124562081537832551808529679031773330808716840403406734791296886534900248746934204849436809450536525043206501463706388032163536616131219720007087272263995650053967946418362629494533770572276888476597574529833199133409488080201930301748390799974994789756121323862917639913112915000344906148740924407222540736188765900257557934494502606697300343029908288722027958957426038888147522911579116230943075350492135646927594126246792025638556000855774758476580986551584876154880775559807310837566477953012755695871810359783524427205651760340040305584954630665716669460543867711179842780192755297865088036916692288428255897922299855650622292228785957354739173573519008014484043454700342538052286799488334508635033682269642919044977260612089695216487853393557063250581045747259573026746343935505651387174446618979345930653937370770125908356059618155080568413872589029001862775683871015486509622940849974736639456073952721077791651779900028166508263679160704461084395430797800947992189663729437919003104210112858220744951054647692774578584631073959889738785269078493794985027122356302658252962993669901920784203573040916482203326752151379389314535712501329326139633967487767642543531416132057587786193568267801940999903604651418836110280412908478088686824392928625076894360642599660714968168747965314212469582151312790634693206367935703211509323725580894530863122269952026173913319405516967967074890131224714228781000073784535369929663849039407896015242195846120205940535192003486522639520866150297109802655272010184401424425928996043610723548005284584448121579820815285603690427169537399843592997592483745176469929048651525498619575178888016624262796725994712464830296193703317377059715429336280181984048959153050143707494299239122771705766832353422827866828297482334871896724193230680530176336110949671225454115449148573345813287271302102234934236350371297334706530190769595251588940049886731193217241391296051096669906783234436205525359185916049370689480002996329558085392107749678342187663785384885913047889532032993662737440767584229141222611381000650523396515060980151948975542366908951595777508693724307803226483445952674061681400113001423358912850043950099258219138410022384165109916634350560382451039991627264648542386235427337275871595303354228320012221252702363584313847321414364531698945106283051573035963559692158785934123954404919654170736364156360493366363668181128997545553912584354675254184639662786865798023963461746004267148165955476360929842295301134270207332960048508780211013853652049382396261018083722180555121459330822766463721330641757322750055678888557608142962974902477624420811678638606195174723346694515897151866141844889998640606591327697240252845580533703095210171010276256115717059381381466705260886216521139312769310180892189639084852682194072062503507238094876204921308256110451558702167520599275489216344361750157419739953834064564942964761663186921174472323626472448490701208144673191512075035912951808934234929507186821749715434395727340780228822129180202171224373404727349965328708577250423562021136698417877931144198085780933289809265522038303257121495022626061418924706821243216257365247377163376208411996616207908165199151177973209263411348747604481532844759411713714161060188849999937217399734627908529776116413313731468594997060093815565213061350560165767999903481587569452660438428876470591856756673197597083922357571824499088791749374822565865360340011093835681598896176651194763615808857898397670850728240989021931213614262044150783515281974377601048091447379353782659261728489529341103661257494668509689191936878534399995258747153369615729754333802425769017674649593137020128228840132259195797842160643942097448269707104890395029804645187212565857823286766418910442677903060730421321970388350499511857294827139634945711981270731382758889745060991119339140300911207789034027866382520959798690698928830536088821808981542088357340014762759454889386168130311654237732601403746292722249111542018659764687573415716919591830244504429869405677320228366579893998704898802809861650855666623315297652769428263054266191128501044709111580926083791077220176414887506796387253535418836920725132578407351424437312940703031606929236515372507415718095386241418003775679206707212453277586380889840899561195246776009858125470488293754701323673191789145200657695454105934939103241383094993767298029921331973950359983232866465007280892421253824217686499313259515622637886507031077538367255777797420804228006665385752750946861825469659911950043878926663016601389166643789357300862199637578671954458402392086709324809238403524061390747311443705926633769765184477746540713334990500713171676692926138689283853947829220464776273438398764389178238468368397950520898524391697065102196293985844368558240462301014811419884580361411065573644648390122981507757433755358087319085272266387566165765760757045748977246300030999090052749866667065140804380146192169942319470986776086912279558747111325647284689970802456747044858901303148149398301971983935509330461266777425865494243766161808674257138518553318093647868460614540500777135689521654723699549927326885058649529127206607891092405909758847207031096788738652029561589701199680777449044039540288499572983289745756892621920535227207297308291439656339799866335720822878419375223266875102255914495344167129864149135948669732379096642301473184950413258509845653103171688398498934351408159617242584469918922456981904246549591567913954590513275308342820578327497477674596818790823841014465775970109182112393389508545661526106525386013225713380786996197905195436907139138251602893469361387603343887594976692807226531160408573748503149608750493094791070926104913814959922250691449069542808929933550516566043404790723347479408273089039761156118554033115497853218953588933230548288785945784292805727331668756610978873068343583168417538249933359714192894008830619872307651746048342359798291133780356958231099033738794033921704989424928524006212169316176685504678533093436832348753755437903894878979956584946160732616497060452514890564309432911021164217519120010380050208892355938549354978046683155354561667393164789542909853023133645455461797171153954245911955563775372620373794724454629643460165674049723124148599698414247791056509308104632751863656117127914476228535530926066001766314952441438116337987140936483445710757369370783390552270222725004905604763438066407784683247762833982900713158952679288428894763594212689384312146690307504891686569936198435434490657553419529587908038404777677446614667729979422862083859468967470579727174670352728803383841226175636828356743164323464336685333911245862373507402083246466195532378456350183845009691085396425720052385074230619907418090178992997605626622939690072351173526845979956579880767002244218873585389593179504900615714363094336590306340000335340718504798464572059422024898438390723877778955605076679330523053205393354454424417035524403236946980881484071302241599892020246936526601206428218513746704620321443636295922896865441989670865594506248752569751747666124474401774084908580248862108687540385115985369887962133584090675136620966618775961424379547039370742897634281061020524758892334856931498904216620100920060047703142877068595588034298796853419949623559547645165482608677685320644046364686870971677923916178866739279328467043695313132886327721864053091506380928545974425583307254030317644574007080659390360141316256221020453346913520203159620736652233528085136907480814906217102204897922364307054365714707911546805418308831844876752945132534019372196962411703086157366316373207022564058302737779029069003692482357748292582020426400393546218495028407373721854252093546388424964835992701326678122236187547863306857488302815028066518671287797946715063401846560567899452680263399667012928118688557904707280189951221299040786821418621184711974648762673320694478068044752003452358674499567596944189111837764809527645024941358968573606229569491618088569516441840186413019999836228268779173086772244225746738562153701265847316559471767387439005254795724154509368550793214961371978061198972384702514400110059931153755226423424391670503663281679056508194744975123304974965099052267999457369692683387367193556282379608350884100004389597153358907915515605691577042052091871641177046547568203764407844073906821374944769820920377876925654322558066324991371007347536775702375094252820148478072082721952591571685031628237477908512245967623373639366158271910744746967307827150766948541008248522228432298026321156088511853692463263764124045009178776493432602092417453560459136510120989239675414643683200257953709771390419116313766576366595126953297468096937901703111916162875070851568787587530418178002824821274892633002647439462889060815536142240225902705171075031941488025055747264841442163563624279269152820160003554794695490314615118894115015972894397591045730650615746183519217684747084007857051944049840501708580742296318280172853010994385846029247941506035036707793000288002202691838884373578381348421647678770216461071673408269176232647246873108185503950884779769702190187240091379831199778914951334486025640262151944564929052524684362315378055937820061895361919227766970596680929127749404608250201238032627868264989519185236962936133606130219753701840966330304173167570191657589511284604146258304664043076912042557119701640352594322057519941765805576910749060901242675646491498109562351164565158603580516102458271619717984198220114242810284879582808026944461751838268526483191762068459620218545674854095870556465869167566460816068465611094463383890202977315937766864393099241155469743078049473448454121812351059384632337844240610162107711403785271016359993069205471916405070062626133522202929951436234197886830130176879308383296670385088165906591456602073810669555996953312481981817839716855052260332156417410057875713171062789233770745848880224747669555769844332835921707274438429132315376926536101926070819719658815410987915875335172361578392151052229413185252575064191656503395414638455189426913886328658817301633957142570892644747510154219577872233862733183720636932577409389454421586057788371305278020741655199361252100326839329688754325076309232778952384310134098555358757960944034840734447609763370342598904255031778627190929631408331824167669654919348334001063605085833253057644807584021049282933685863643266785233147243094559044388352540619706016016700542411010259581572891630112089588510893698389658133896154871891851152707315465556389185702098004421343672270339095121543489134254109189733723728369243434004954155454370573864349873891287371728853080585484629259346137686050512767871135167008282243335359695308134026719888487260751451283761107330024784003046452385240674986295597298798776424073308253527401177881645617475074210024769463757268863763962168097519071251221071456351233288706795517306871302404390109743695410027639698051745815462652348574109945577918437539250571107881913526981518695301887788121307664392828111580314844873468695863252488196114346822013872848704804407420926413238310467313335362691859053268631596763957965295698497146243772256632468226620657866172342122682003253704865975337376538267661629455410134599304388059752950611429581653755709441184893139394969209382218217421024217214819849255583580223527526405391106614717202203642426397097034241643335446373509162253520993792800881618737767695918212315526646198267238580138564760090678615087977222104440832117087796376636857753929700775538056235832047934932682471624031875874276081465579529899451738894794839129280380504664022528323808715513821131344994678659704075604752492904050557160321271691687251961682480326668911072643118628708185170495790869700852877650111468154639000512407226687654403624954651160036398315866294877185359648995216802883923525202776361769420082221608259999711019312131695524556375938942706900957087905467803531013207633563379812298161960139624503741826958059683948770313410692724400184760902445538790144914266834412434349927429365117367873056010524486338465400690512214834516352400282201433539468768694715647752891625263183709943613292821034103731663486045811111847434755297836351940291125961982384180061482097725118857658403855726094501283423221106048079927068104689171585764171050221587400571333837322300024204773066397039493002898463832982902642208256304840733596762417652624024643383287488027497982959005731005630940655866455651373271084940099947594616887622774846236045826984705398350721572089780711499827263136848840172871736155207738487064572481709124163658701776823586214764382459290061690126801069333793651090330004211261990346654938000519317275459325048462671570873655409925448580568634445045367684030266295235437740228192507037890921549923070149149350271773285349153839907424724197562401839762611003398962484803839963927198033941963916469627622859594346990669952374325778624116783215454314866327262822933909400745802746407478682180669624395798001150225670132498742026543843979781974254149534231499220132029257006223517683096122537563974628481215656221365002373096815914824458035667481624245464482808269445885589452676554442184849439409905143367041983545688364840466678394584956755275530124259162120592103498810530171029627230961314680924603055261114713062001398353799020037223822677368449551642614230360044615401015076046649858732459576923572769480020603483785478373400546658243173647567739665689108980313643359233884144482706211616867188708954088145940612761970851643913113608521938265271865504694585150645828364123453346109558639633910408487915848740631267299524542365958551580362884351402824542353895133863208911221465728545455048035945124250508132073438483981693536336393691639054414363486273508230005206585585044025650456403513648526120021546783910719427668292975248942447275962892079826093249414191542735477491635843106931847873155761300394609363771649663782166793482294515388503327951744939840389838564279017463001785777490614024391933741094012320306828144707184229821625344984978767510074755230070500736168086359882237899626869367738360652538016200545217423250586038832166861846561463404969251767395448154376063368298191766980663826023718904563209733649299128913244918885072050800172539792174985089964116752347581119099201482846797406866311543805312725347478701529200503568831115767717826008170250676299999197663773860375170133132266556656042977684882601637116965936242444998052056036764915091220421631063323424606224971872568899720777087084156437761726697471002484024158523366563450971341887611717477944505131565086258517569544494861994771096470715463961289481289451073594102565790273340274464734142341538284616828969171014774265820125307810934453794250202242325833924118320656755620980677264569502340811426367641280229071544941937042907087609660919733313331703227322685300657288734947383177383458911492072226293667922016554899878505287373694604455903544744448025099086266634331546226065573970038815513604004404181664066612080286682076979998076258300203609365895732342344138860178649929094468066352889050465587876389976319927918680613786478315972413795667351683745776634865614866118834322991132543228960645622870729928068985098283604352419454213702116120785451434884918379401942885014239935795562846213722834498924924417003273884516504016679502144762085808362484233076561739229225905739305399157233190872422971816701593450728989924703397190167517267682079517890994885692165033393775702064493500519606801273542264428232519143672141577611540787677756880645270380478777468849671099791193592909274327158560627135434773043645230448005886529085102155704357242025706193297562096157808461376636580564452974752374841491534137473245540799077106187246073529460956546263569645426659698187762415845242844113090792916691555012440051018109723625124522737332636231661927880038955676890484952561482087400702672116955029823108619053755400490973699594826899492441479773066392435310565672513482073447605180021424969063975979927727929757873410730502534124946937477447820451019961338981579884254495290419888453875120646639666648960550995707306672658357178406591733709752862365185982233448937926484796114455953507452167107584634637371687977092077782922958951218193737444544181530487578623602902180066657085651625664385184757828753248691500518540707190947436787981566734601908900584159048806665148648760525550713637503313907731262531312580951142485742250326064828169828069031868495704558633221068555850493207682635852582978512064301829177945871684836811272559598398656821928002478144124602926917366667111624611108910839646360356163159043636044370876219728012430514250158194831071021403411131322876934164065866445240178760121215899409370088051076498400243147131800961216175340019288908687044453835190235527376441782253524947607787527801913167008109214287080127996389613827294968938840504928168937724020250980687619432936005574846528975709036094221443563174906983756591053990327080361346435683611206161948532818753938294466972852634080793638474121420760609901878402770167752383150106893279178350287829436069336319108928444549872567029375403181907280976108805131352013828905665304811359366469306692105765315549709446512043906466624609651821869060851036842829701616063267050723662151675468912663422897442258498440830658071862404321810241331756684395600925353996382246338201466607803512139642502280986182588108085098112293668147952378119356757402569301404420240814838894217370764982981988670932523644378210011511606261984330459125261352151282192445368353188248843875697903604014975641110862264923256254445668216086232931083273479030016898824336035784025050474701701489156242414813808994956673913055249371250685690115447064802086231124646802043685947309920533219347578171257142225055069380442777234381153680999664373415973101383262694836104165294279998765045046285918395745549730351113192661150190339371022807256275034510142847086797793890669098067579623493660387110341880447579263297982141821437281979750254478453532096862632814945034949715945446786154906751805895519070328102820126641774534667807223768948217615107334720544134971757149830685178580924574265898553507609503067306879687486343542031885481584278829649893314524731431893210811989480426461534681824483599789958390403287826515225345040422603933044593422852213156350821486019334186087110424496083303005279807315574137453283639220369034326680702750922108335904572193621533893020418879565333968976142181678434286328338399662468111426644360857920618498045024892900356728867866140429315661495586219030590109832307538390547793260382015884062307558248306937445054744165409334138802005232456044920391421339527668672842031155970489849419892567064833756518856760048755401075802719890844193246530819877776739621669520473342743581193610957345552858958899191935036473801422056946585968271567016662382164243586661182108138767919495472536371908305286811452357339960492738057224622784579005864799069141065024708605194780674635254013479036230058359720400797174418431758657151373742786254297356981322547419049521002588524234872892439217904697812104790109274090592403800529712635498075013197129982910068197886173693044107987631888305164900544711393587107630738974163872173889680889634827731273520598348106208471529987697746195213506964279843060461893485806820717263424254769907195477699875519009000012009771986654714180487723216990106312579871881731166285293032048369299498018871091290998468594284918923418116953452397164803850760226794921703884427306859448056911270185598197044033794945658486466977614142259316578971790167054988988114354624852904469581337494350069574334275678487215526210373360033379009406182066212477531337307011621885272860321737778639923516083810419505556810059012147993877534226435397640945871811051301033650390263249252802737090750409718922420570671735410358714301050932681132259584246414915802178207509704164590004633234444265654777360753192431600822514844359354419105676706048697387915649527899457267435004839122575111085130275958735402150992591139503752611324183238995371420480138739152542474242340727024607326548459658267294154954005741114215643272609037624243263848269686047859593525132800803144166227814540105936991747105629658500826241482804132614150883872905296558190523153493454796916267502912326208448903444453389014427786460793765465286002506123175154153149390065621509848769351473837921567628887640055014568892185316046153586355683075354312417653597959955370877833603716901483579456651618561450697051424754598105605965873842095890308558186637274014894097133962499631038350192082699593787419820376502147242383072361991207523613971348764046368591930984120829099433217002996050167689358455511353441988546431097705596966450875187245317216186233050483609971480270760807581975968866689054776278245159512061742727025773294705341609903761620399706904061856964103574423258415174235732154701374961977188536580432764869360752878309900722688072971699399051522826051308717201941462299835289595506546179236675042440919108013742996651718555383462415252496074015238784260540432980450043831643634169791885945462530114406305805784574764341274506944340964046611949322564437310225205839930109139731892991798382329216050729654208568238055689399681272743103644359706144417394203697204392264105091909355306857814887132530983255825723326620403179885584963119279037499135391401124183050367913535358666283495089323119290968309190755859793344948240122283523016617440364966581296931779716010437029436202339062098800896111492127758886820555329626077910719447116653084615407463410926185176145129797148402095296559830345308053171930035292317951729941006729551550764368834624908646984973928361574010427277915139061442144143476388479031590422721987578638042772513648989257142407916022387790778270956116750950521507526496281667367652365050701493091927038834935531681741044249610285135761662509190860083554434637586447901097028342000853035742257589848196339990614140279575844768661653708432002737053893487133950561658970170952410705849604658009542760072692230403038731213979422979272850355393150493338376419182946873213501218375149169742644575208037945364033276913867403344360151918889613024946041770012510356465074233066637327137350547202840001470321842045748672237617964716442234316814666569843083564469489152859200639672986013214046589386446111261636993774206186294426611951750588612676025136041568209185771102203277564288711321443985250685288504804956982235404902343532582394346340229176305468084744202333596400336911552172706685256520242963220818282939454140784671817847637411858222838181544998018205045072853868616160056846860574401720200329275744912765684422976111753053674385032354460538764632657316071273293877630899548458671940343842741509406826127534495230183037874026546773959248799031875705017474220565616655569704731066571730095395076608649593578943878693405764950157576536645926199928588829966021870501676450999219834309469810935850396548126419958263206030665783361527126210067131278748439710873273122477871370945127696057773929064240994381891430717126834525257790726262360520393512250030544004876923957448548068597843696609217191773922624189351654574095853838675215995385469293288876023070619307399478450854230103340026266111107042637639172450383070204662216215871569609946501245846797669927076032759821893698689187345895005647289938311594838832760133136610247234736311124748640449004991930489195446483059820038160811263687343272344761045087975819587492349512431828879151627184604410605941213734651666605779988332842145119352302519489135095802970665943430849256730285786134464559121908943862517163916897745412126771043815159185466115429819811339688026800047754739856681737380149961010113894901528879325283055649448507043608464590972422800322672847315360729897171538727120400663808270692798911853631002103815968091997236148914866474864868061418102582505700799205483759286646898927227191106094930530813448697415635523560735043599158457183516592300037414652949205576964320015982779946060811605174505970890687241086125331586344602587837108551617973818592183540358086232048548291087603222833004547788097553830943366846392168141208601006715448029555225065044875946111434463068745357723089057380211603051135159533352219762287960618517641336996639151597433938427505051245060423575232667598210191055696479433663875030657260538170515488605807721010019809557415919352907987511543562024696392452294056719859306173678237827337376768639564049171665622435157608063915979954186502566593206430516813216301836288234682201896843956405110657341491825866350495114270157230532818990933814279013542242182225556006801149810379225686125609713347996705349808190035349221160333255138542591031010709877996423428488342624861531732938955735841791324562040476196414408675014747244519780591236184257937995491878404863705294261385101724784159572520859223755565920919897068924564171890158561254473879266628744560234149454201267609473772148290446925073833322718337646697071052735973208345947216691930935821703662806254620384608852726674360492576455646416520920280049903865503634507022124871339502511164435055558230441110291442473487768076448988987302323435508698229185833411502031375453900954959445874660648252700600108810997702138274721394146069046106188093502893398631600259158504925402407634582906182224898941961814320065423835844926272156221672609376373169085199873373289469596946740470404373260561008740871842729653056043328698351841949535947012162474554558398696375204373867145869410734707560600128621769555165015927526930899759136526564344945844591302699682867176756246923171494014408565527939720156987134306974161349076670953945673629588403147677418100526206004120964284331948605817002879750365538239611348767301121384073067406743299912750751294177938561755624136352041560040748032955474858666190655370861778261815172649027339876875804245113917851673409499964017941968165889367649296708178950839960561826653336077847816494776147741307046891068017498989131384977382478201666346676899021223430012885957390711415951699503758072320621542887509433358731041325121801013984235106392636767826101604575076404835577571871449117253107366253005713245948208475540553456574581827320299966547531858517794470412199219352577236275947541967096941234650311046816984729713714606230147285753500048141624804404934764452309253040490944601761065932551408711428882697335793937818477012717910997963598148484730208872610148869430951412225015198243614483528755738929992435113222712144429691770469857047812998904837093874404839952204220310976917076523929141567647950629973187425013015955590581075423814859537874651086453797562527080093979997233355814818094037120211367092512973283456040533740636155362131587271062587132490707824626593754350284333989750219026732655356636205860917477911176022441753580081102857467862326102424823453686052223517823208477929298332829730810732867395182284028552752278712961544590525927393010665681237889881833383384961577310429510334569106002568489015163445540921080978796621785976179692384062480216019342642457476772118113161945499591166816770355875528541818402485660665502927549508848503125830383294070845782158036717675593045914443726688612823125851189150784848069271300205263910755748511974236876589536313321165392527849745088699076350204848364832110995470000448556684337918623341639037677143668709108725685384879526217360049934199093637848716185434296134694287545069949359785913639015671750567533523680896726244618765773279507328646193737678139919742866478108875267637580406224637184567805938168380097863741338729487162631806273754930133610380097310583214449396378116156663551499786172543471600711217348147268033160406937295053659588771857080337201814757186171982497305866787287096251566726315375550879622014379172234324914751906889163606625515697478672847659131815484717971851757861129402753302003138229684860288892524118527250105015218594217559433749166728299365413374043791657051958451376930820964034210644261679938847089068194376691054213715816236937514346196412880763567521756771832148209260713170491280158458835535079343073129131904910600402687870382385270150630170568641075927889928203471662234156613549104765414553681559899733945645946673486871687402359420481052686190020155476598048712677833941775748816902596754111568933658142060680295609006928554259019142265735528544961875957548762512677735200540179071523999287858148776141957782927412421430055894829927291027863492373781209994770756184240346131515819766148085902717117561283732174008900357140493123113742615967282362511311932074440830033771778597565992486531525897228395614996558295626641404056209651665720830064392693190632852200779911539503804111570931575302549884685975650417011013703798321116260723883172918528255552405466169331376663007404251260554343205984848006772397857022364028737970882926390292597237377423265552004533608919278887067262154580703895097107884778251760030835696027861650294907217950823573149669962854959420052015883822258483478771328187885912777695340435765003169008776376464795834623350748845125569672563708595821837189174567656908895312359318740011747854765430220025469722259516045313505702311472526671766981087925767355102245744528801127642801461988401831667118261693296975313149273409626087057486360357651928125129651675668303301497762188102338549632371738393680983474365080249884222422033173935714440736933063085518155816760101484718300999235376812792617463513571289950819318373660549146578657567152905253593570646029726071910990726850882156029540739804245577058538680014628233518982733341687295921795023505076346225278377373607925716949256072423811605208363201809195476282139469935287660577179655735764619581812495499125481289849835685283347541542628794495514243765125556153747110020557152162370669873788833517751544530159840999977174021093947096088599812497929606632738098826660409723146406509363067358246295461369663157584343738585618314189531219721794511009661217613389670492292443716640995394784268187572629510990847685983056446489309790824191587308307277442538744824996472136481003676626317204005634184749298532346509195691347106347016848097075668426319476286900188331648793098751453421225685570230592427572190491057167820930052879030233745378947259583728527186788462693453018553489996838073356070849564924670694532897559863342490768852734805903281019175876621705193392777474971853910239692697932625217294177837505515663702498193147982726076737153816335777772861064400212455797001184556050602386335982229080972828468981261194179755799156158003015215664998914910466840201234751538879852252983789572072344417510314755010558021650115340013658527742255902310208010639737150847388605430902894806578666236943058718286854292137643585755865074495929263732301195385956942177438642375565677832439922118830510680410383007448205496361569857600125309905327666786148122154548307334918575611155701292150598103223040676991352734175385487354531480059680874991733222958325126738305832567855532258847272892721055022977675667519581367003090626668904974244318037317670350212188371616581948446722150808540993156814047421455064477910920752931360709419694303378749145136263874888884625991945417548072503027670102137588948878975018925253486997215368973176729480668424154505103868610439955112717057138815440000221910759554977975706380515962328246238126294176029728990088073748704543920966966772039782564553380041791871225984794047751856269321555002906111667880514709293313839583402840553939808912416334243523089766677250247419027663506815465295826009283044674723956302816215446528730425731923326525627110264556332026168990600107672122265987125705744925362605257978447617649762491856045914991299019112904541199886946559453202397468525727053865804636932595213355911802419324696436131275146404133154580305800865859907596506286696218843909115719330729754331244643752512484512389662321384124076158863038482329455850562632345880921552898328218512378005743326583625215130638578454784215282781617130069005052665877595494963592457029506298492742535824193191434439011041299865179888864739494013017838315132879314601001127225533482562033630681780510524149337708584104096738922811562568990733648168172851573638123586467869711151573773503247136561989362087430376210684440006433238605306302666742832125422015810328676742913998073936015906370634774259084293679882564602904659252998007967094381998668534950738564327315726512525737563978672833069455858494397559522644740960030424192077764010480159148442876615881699788024037157048378848083787014975688059706245070771665138991521779409125251908327182585934343127952098665962463492970929811306097306842062719435830014878274288122963907433884817350327080587315574104558927577726368383905901325123186673870535873258305987457439481397722166918749118966415602847404382303872784789304916636021900353187946296790563958354681791682587412959665918634508985403140566143499888055185274643803782988405055383183272373493643051908011756924699868886608261119956305989026889156571325179584361694192773158230250011095823989104728243633229922077766082516083436292813083010700038956629094287402719184004751554225391135960877473968754690448538412785649630901437889970052812385848146893044297512463863725003654076215697357495350846755293164929116967885190310236149777437681597787813009216395579334784725095603158021430572026712302811028597636516082401276526178914307591777713216971284237518683874059725403131414234503592583074730350913144259308392975523638146907444133068228285062402584930758832038063133179164724835880640557687315023185626290862451433037073042440468546955847287213483616778621424588832298961753605680386322222595217798044577261441109803629599034931212301634755521393171519424632967583115542151425611515581183682281100430398373141339949126895005553063055743743277800732619556442248216362514037044803732318954739781362780242234941839328263121381578269858194498506362369200405498825508505651300689037819555203893517746909183223636156001816678260530477986395725223380304951746379137538800381988055852081798606951558684801123767616273627610323019332503933442789030087318345349006963868157405757859599159527194130109666273194828031280233531053505246363250198005108898731950118159996344207277184018214842452227276235783279064752805653335185749621410125176074449197005625908779982784411612407049128740318174821891982544572554766146735823389674813320810361830398228087409941920582415884392294442451179515492160591289404869634864701947739539206615149790864877215687299373462093561943276169382008308616712363355889824994506879282659792000106478898420701244652662274758994144563008915458296278422308298791779388911867571162920215302766746471607756840724826293338722236791068039407932468708745474872324052030041422888758921552408681756731103435416676865760567126390632307946048212892965967802485614771868685331018666521715619082104910842912430465796906040071025445342777920630995151315598669145466689267963081069017477985297210904212442323567624089527531227019179378606671537828763846064878200855977199577468298741707471196993701249647045756525982092435661889526120695395797818533684122411645944254399300318862968839551047747293553121234441178043508076164019015791482885450154606443343174506892832536127835262644020271842852498520322707873634242790509827305243384237358746002528521013174139214921223292723984008265645836847078827098769317642584629129268913809023894313688970803801688653010620987960588347389730115653684543172027315630624695483003003663781904441717699737046903684582345389927909965748971153644423496541748233990525825276932921408148285896921928423438069485528313726969525998753172080435743035387739459597121530362668872534602580672269025898479685616173727753377668321485286052270402287339969163106285347869808650772814391279026661477525686693407430993514655033954772722562293153019116828293917212082943966793591998140942844400809318304553009998621417233353013849909398856509885674223065241257536332909863368514981076358914091962251012621885210401565861103848969829816396378925517754106153277020912538904005680699196526571056266070590341571165235973705273182805360590914376167059901425933487725858159296398936272492738984023710343286041045935027391798814439202674758261064456575290311377558753890110052438717097711940446802434431145833469785634647300072951359978911612601776482678078290709191806599357011508136162245035338566350243705202281373648689894966968205140133421586994567505852341818036243393883381291409875119118807627054617735053280789884851349702496215116060948902807366849278720556984556074966948532315770033314361252662302462787267053671529059487406266547474794533727384486547823657969710127091428054889339972705334088011559029023396892475259033564739471195233908724078165061515935303948412115906728834431112876544229328342845647234933858754825369114890335134700219002778517843356846038011987546251214557409798847344429684028408112594624096581425392503051138390157073411518966269069678659519844340113630488114583754226041753100835767444597493454515588064072040112783326142700119044788771371643240363704197966590847899419733061650247167429075667218358503444499928405546274176563084172980933447753314355646476449852359687666827550580424641354053228994246810914749055102779420527159665168843993033725170069218116414075788835424724276124757560867688183576118888330837543275172208269214267943718987386688108430682726293029146593329078612762378932316781308972347101720852102619141041536715977188067617252016469902705361668519684310193331031026684621235997761007889591350441292439320305371415552330207373807065631105494213880399748181635507263913170242051742809439170475614726129434981882763484805262820781461913472322720388598515814813517978615076265049919594061761949622982373268320207972833721444252685265046904783936048182485099697588583136316973855959691968850590485598941797934774797745337330335709036240224180288052787640496837327943480299485515627028790632585324897863494250216070692522769737249194456353980834069745417327050959605476171457241089796635274826217505841450650269558787208648191208080139411320673583957091874727657891715858144979618785895841263344445333514389129301506143139287985287248839295094261769628399399033964173422570945302204894165630970504873727327921650271188659428519171556787154951533646346060982857064615425431329042408908398518064443694606796652099570377243814002361976596174879475907353847798115200725714298682585055549820792190306910042978920120529680171965197082070895720412047144021161047134160057212608088066512690829159399369507392452588180100318104076605262120604470445076827366273328655169786834601532907174703417652397066126094446860445098862359368337404337749196862570265317043007236548919688727785518506401287221406153604483961701928312855603913393895208894576762544981756467077226999382097383776556791633744959213370756423322966284967588101822476058152471080317909165287162666206521754526141121848449869840920674584979093548318650284554479548894540426639514655091724547890480124692124845126089203204053414211753140937910880453313115630662307151115345533099679071226137649460818533048771065245156581278069946973016867843129568125595804217820292264773561450704083638230556912786741978258544254211195083909979300316913486451509474913691672355165063916984441280658081291631599346377241700768791928912592779473945574360824578440157076876470260976909383927848049472617531240276237597858276852119356796303577189666645746294760992742292482172856117795372468376510687073520673241093552011945546130835423069828204240206062944632855978599053273252493575332832660271749635927559074521400566133262037366806865725123175563730937979791619807511675912800507840080759374013130073853701365855459258342954000485203463692627570617356960914419768300346459286730132468186910827492246475496883745633150799696172515351299556518536715551326590044457797877497882831278794965670617457781630409949264945734394311998447389695146043939470980975384495993360353442702126763534094932013835150146807933141553799404484864034259555021619913297154506678701130035946709077123091322323359530167966002647537062134526305867109238141959710278219780195361922943022790099202022950449360957271142649379448162584355156253804371970670104051219320458295558652053011927555118008193178983945020798460299606870976672407511487062258982686436904523761026214482174479937969392354132726026028070558353573474959594430547913718312548495002195408785576080082165948517292739730947981085248640402794449507792274716294106753708347429846172419173994210677121102861276537304267449643426709286683548939145886812543506946358998208399277241876737786554970935647952744858985255690047185593608612103515548608233924098021519943128875440515744613301559014177895569574319409011339070454896092722343408255249549769765393166116060070099786899518755341917749824805730089115771026654365236564604750501344921354578267492241485116161033130914260859085942444499208379075043363432676355785389631234118798408592940166302859851956782096413030500452915892898460978332256362353986505582988031278547036436724795038696900375289298387896927835160951128231569848326017419619356107507302649527626105305948655048549152569541782360456621065018500847231026786074500933855326653951040844152054665047233752195719527482424710554726567642433902727850363137571202930299507316086191401081054509741205143270914132346383074169327249158827169113469904911658884556065981528449509927845202086075290126760857012210409075616904860921486319193368847041717570066256765965756067691588282620419950684327283888102595832964355487445132490427440779942712039860957655861240593442786515182638692345239889800035464018579317605165322449125718399048714484398977877877043127236820941072177728676199530704380531547493264325974956178712920374276398423223092447558571124669940312092522685038693890690249026858192993968418213051408040662580485982046127710389315406591673057545453735940461596592762487059798047685339976631837243486410218132391796347036440316740526830449724611993783353707824099362645967933628023366921597999902540108905553095646875450008012581704471500200555330860013060996758014643607288157323301693914979663582593708375114226465966691399356120014762538572558212221043380095496775892237803747484063900300145196678285606459150711643596627023768916290949789115028581172654848601318671411570003877199205233932430818933144875987213420549858507842385736404039528091449558044651574827119866799294945948353630041912912010290057634713835034145135598291691893723571335759132446322004642881597322578437934654385562838533416662494990787042254915787142184038916069957910128109877858958127094354702443869671442726420335150960752233303810347679976298737061503511995734039291181641328034293574381343713799402136028685139918208305862747772883456536064433701372294173753582983529060538809265599232802376745175594165747535211827716524090991504659510246739251854293950886306760047016677309631426409746152417175129865465112660694508746708066057347376328577803901669731131672504669024420293596746252220465273704385573994288683682448764444912256070634950924305197807778621639427896162727728456606945593512573383159478939354653913660405276174308992246218434956184763083707828839876652144120702779459589449942556801254669043097405321622131249482555225822764099659786261563490274531189368227473746125334681074288016237629083109243455537330658134867413035238632078387103253330190442589473158356822340597974594846747333826929658891896746803350421372426013136061996988134103303489959191379350657176133937576864388610080761404136330736951248654664196040137993759878109217558736337117723091803474092792023894574603826975397126257224362930820617144575123299790009036471158163275789823195137907455043357192997433627215051275491716590085774038046063340732407580970455797088128647072635090326375705978043000494000264469800405234001336489055856844185432492417814600712126101294080275506897134767577997053558921693600945292074668254933292480588533482249501538850619123511031252518754821727252664650100789617377285954605337979447542583199233811325349931090347022590572143280223705871829761574693370744881574123258581341159897927056929916548156240810168698933873198977313640344906714040778309428902491709217412256522484625379003345908744698193688379280279961508995140700541210590341406944114409085682167592252409002116613922614695077485259150137676397386021129134456009196538278368880799458406269381553359995776981973527986518161415707913922497166326998573789740703822826656702199358788813422389453428525973467098581109931437407024612556366212293014054165053025880448661024474630837031069068668493185344698860930140322345353224831138976663684739720074065670324785294346258104939996420154268106134120771408142234834565292214430747985337936600266873737913166065486262895061559959312288931191126980655304562685801129992205749215354741014194975934210776351481109615231404511377618230063928268322523328253109823950347444424948412029177041768143587835253577416487302313049559014513566595062363519690283512689438955327818312812906925096553293745650343579299928118039503524181630562322817541233203348107617756786809203359471243423250136112339555045622375197594472874668927707487962709932214343320950307387197164155460616535135310009574344974794073323535236784490034768338236062346320523508645000478722018391895447091516632877077801258345248123332784676926900554958340436795887237063258877845517540860950652993637091130512121134669655223652907945060031663564765532733230023478561515695191556639920856970192827215758894810651905795811985191262542118968450148472116494054755442358686751466149885031334585171838810109304424073049927574204229622365188774895148800588289990026039039937415828101185586309024993674956079621496136864096993390476056054035899908368284404307795611779862753402856360973955778935054951111251444612259443583971586934989679323227639324277701926555640182144630806635349539914194606432251910991401264038945753442952372150321112552616107898498187705736900576315780048125367973188940122817296956650325227270043895588354436097613328175730160475159396509941250424575930931476273762717346192098179874478531402885680873769539717682288055381331521095658476174276951219371331942142976275928844087361850571141137536579787131068894504256609732490697611162840557838399336243899069569355552594746759869826156425817778751045728866693221014656338748859423790771646722049721252124382630114908634735210147059935430150406715402604746136388207396361237453852075102156369528778723697506197430823079547690734019206064612902935866526760399839335221400294490052461373958104026317751749944828823310282083121742641730478150415669523766796069013350815881975728597169543057572131407423676690679964398323553087962651313561980491883481496979089213359962862158511948819690432361288642706013938446860785430447029191039669605912520369300812955457203481632189779676397994569177922952042940003817899889222278126403874849739915930101228188976785317271231233511546834674127531081856711014243150753417334786949831440832083279827630493142123623889281163303260216853981732082828988844565517311776944864624666945895376492326964462266188057611112779392755714545583613347420245792028363511427849187793914049117799791483366584104860571268060355926754120440692979315675285949221799145001308781334915766797865871189163929653459870090581827170645016427011857020523972305912766163551980754398064435389767533072966475122559613934381543142877904696457207861793310731722804854418652518394409834995062739212076748262177605269738518827666296700560618862095837534151465814921578640594372059058510156229304397501553133082373683178866345005084513362085114373498035966624584319979147427093269229035598036293837983615333107366625426662869381656239125859744710648968601701129374978912951849544280965497075979395154128352466959917361746853146023334423837202173784475394549210356593908491344568024995556510330113684528693083558228429658131614738382722221412337883019090142445986836275261739399160660309449172538998141781783403525789487092003091926471547816097745334148342389161164420934717166198972761114814632229717745913547278037772773377201760628683877423110793308224362887826276310721438737080030574795836658022561980886955839340082433409311672303595378985945783992275136747648847092000987712401624521801262233255360462853696972314477861930660640131707735561922033118952990199455950608919184182879098009608646260731490640727067351968407245151495296685704364739108899995894527623139154978668034351668128175368340468365245076763089748948533942677985241809365685001337937558519000840787089548880613702608548912613809301883055461791927534224538977005159666045192504568859774395002838213596623098481693951583603049297939148845714184429749653343592362643743310432434532558715907587793156715527123116476867958314641248761077696303017187567110339245918663182238420455631152277160722493003998675684719762982866985874705891299700150913552582507019613777733477433838071227701310769636438139597150334066444860802760027956919544510230653365306569362771559113796272651487680080810277884661384636033163078297486806906571694754362998122448368017890686225704388135016030829403630021898544860075063143136201574199721316591955353466475374198543820695555491528367168127027274658843853610915558048341769683512867994595269230474386977556462530952287015611673167640516575416247567631095891701239140123938290621863675907201649156435159469049848662588799119953601500598859193756937188733769001128770472794884130277480702669898484464599197884141332146116673870736947193509167997102959373199976559122441072784931589287645456598512500491485840039228730671862588274321886936783514322343333920217409414881822352435259413788327664188343411548055988547504066119536476172356376148719278697542484447918329752983210526611328475918714436864113630333736352539781617262183227727417870520076828844001018418987190694566172377337403029671675619420627623082556175676639447322898799246395943847573001313878903844170121249946925564826553212941050992529589999544687779263358786768551754997861206938158252498476894607055089977709845199299767224835037396445788339977735120251084597957183982575967923702607140940391768821805255914459184375353017689048217778083350165111810093221827766255998136335437033884224888138506057554366843076274667385420571566164477974084266558322128957080045003425592220821817827844747890472677342977144089435524822305773369734741634937898054505398266383465917123798562851518643361275916599938117027413172401059715933665147924096893046557735237534750135711079822881243243724026853010275569033942653143332280977902623591100242151336502605622646567070616077744232503940688221290880805286870821668466959758742479092754053127161740311640338973301572962436917071009428498336857392043121697760887344571384977049271794593392928936235583905776027569923795585022562229794219436160650258754475902974096106031975639140847882403526249879241308329975170456045345503150605269296202929363987341345252187488233703703047871474486168597799239741998988865469333819857351533207236368754249907759117938052496829481784791829001379019399086451755396364407576678603449332770059484752132259259515408532144051672067650701110353171041741433526803199780100493411463611518558607068062008944293074174751317630101878817492186133000070517226484829546695666646568933517519262624591819762130055677585953449697929507688675457393021065385688694167488917537325041454049297355391968014039754093622103273517612068292552189112253527560537283946197273785037944387009795292407723992128741568504202920785775073440636064269117006500239845869012490165331413147071725340882480243981292659220874901241820358650119087633495705346452032331688994454157524755086156716826183498311141675701425460092430752525202220744515008292826509164393736323503736033854722581720313267473287735016239634673333930338517075807981142695497221547519770398552089860212424772180994491422832803074190854610019588018437504209790580847968401738405306314510329564616519212284482609963209278734258585467523772655963308688326021518663862282463175016553683517806645697707930572459007930473657469459809909185445737342975402476540159387368209690182948163144421959507182881266296212086417431102493717196245911430812051816880096910284366275092660207314629204736171078955263109554506152850995585347539770124502514155783379963439942984356662192998416417444392455543640545414836565683073578831606622236272507330459638675658696429998686793252821162276292761551197016945669763340914811738204385279651518769241327421484770644551336378063064749791404306343790635640070395233263552729921946564610125804750883577728996709151151291518658974912509830335506857297965297662407789548096444379806159066603556970323152693319569317531172815254352854393381839173796537900810504304540951221718244342633726348305385383868190796842009553015792077688046965296730046357962061827182221077024786572679077331920881251481460798525182504242337813940881256407895912421795636828396125756274789348991886545728067553078941248419533073908967162285163732403278347067467139278587379618893652809130274361464498653965990430215272254836697584311290762299759404332016582947284529446573975335327389264255530315761023657255235126722186248003499551112915426763119914609590108244471404496937487366600855119704959536247363244036707135228162939256224090281626085179188939334260841585598670612037917412756204110941592036318017912209665919793205962141385152278882622446774602110365561473381665283456264211567035158387029858460250200656333731043123448147724609117598809841260429027739411400707068120653168840411831422102766903898093429170005503788058872936070593669957273186813943234031566783091956405269143560553533600399928723451406092177167213208474509119992084624987374347675724021481897412130952279753865048815841716339732047385949961620455616896754243138506002892852393132825981938699974826298367040437596517264701817204471729929080834155865845429105116621934409864079132916749952072866840932057117499548669027170310790641027362555936902900866369760116891827262915621857734956082061318623882527725888715569133551731871617427562601209807978695074858839544946761439291916111914575002850896356376921821223505516509224304634970033963861237520796655942459298630854881935820483344616160578075394416409341402599316982675989561980113725271957561319181868645675484713555594186896164261307386631822590493926175779509500930494717988586440046937824577904722854130719729992967248764144069787518409589100997938001955089462339973128801855247030950672264302305232836476153236492958471298926368339988827146206902642060534571548573136052948364153601223825635236091952377291472486599183219628164679885677766993447457910327939633730361586888750875284137541099014117741782307721037959874721895775439721034669569575412200556775983814208289008743568162210503327687321749278019930242523953253853318132893365071377230199905380532338836776237724677837572155731517950168632119250170851908751622576070223372629159702551122961604845879284449823053653978003347707556300503270949454110956340137891821493982294745765041388506415066432923116427063174933758285623779943697287702398854667534669840535830080690712975266160226902517485185478522815524360375179518263725668311983900728645652812868300517645943991779737097680839011523655892744005605290816587654857434183858315426879624826888130971508969422786218112072876717825957520857810372884267950442746957444464398926138284905417753118557876468212647410402490081701727218458463048532407994761414156980027450354183841486911752274632588066790514763922513627138501151158577381943766028541793636255113872535276912783551637382034709991398186152363745205950550652687268708753994716086402854540473282458468801920793498898621835742522221020176743393058964508441299289180419894878728716613668618228896026049509648616677793480790471146372194182622121538821076862207122065869173049642153924258250252792118783715564477536421788041249763983974197717241261189086337302947850784998737545896592991697001999786119081928570450185611028334879975588026252703378026779487757746705027774911126801589251457720715411044571333967457014919109869659229363378594099609950490192600218419205200555033333043306821591462743312801220497289147973988865703030551855108616144048233294706426699644683536789342762313914598621485440183710528982271258329887747802150939148367518215932753557808555127847038065495919170489731277286219465711319925933798313571753760016514476829590543864070880383919986361896995113006386634334778700199131784260378896979558172678946031187763769098594641260496193245493357156905966119435218163081958443328572350849233777132099153935963714339046812656411540358351902999773900617579549946428008138008493478388796831735635403196867495675133435845994166911214394755750762862619141781192774862303925941977164676426529332687942378403257985016962645162361722767903765606686048163552578090648139230477905255116280621370201593854754529601442160798205148433343222893628778070778802481728484084143068979943642370692982236733809324809508820968864268679699169106944537861461408904235011103979969363453606580667064782602232634574202723255883757030177994426774839320831434053168022318410461783906634942177202434194407071750491309179240830705523783396422756103656104204244181840741530937136283508234750563753185317789453016552429102284011768658444454804215836646883325655171547100079006758935903154647305078554509310063363676536907283456235812316894351012727071921776256827441744828396093347986119580320131106835720752211037187996632945256011615438175166670844649770229629507780064141381559587538662541305097038030197500542112372532738164902039953895683747015461721806379194691381556597020857639928009793490769295705718969037693973414632108341812588031185523504858996724973045685165421612029146024416260762179974383210108790718654248107012063153148241464683469893501622824463319803868805676034484537398273903132687405705508369988355452429620699812704200968985724442929555115500597748535499845372059183776507390375848582033755773414969566671238414675892328610027211425186742206239478935703751024010728558320449406084385862878758028021195348686512658069223273424873576436858278552035969447187159682452732324990222432745357514684283605482469208598374391969249856690332055828198156462148363804528285788097679085356248632023566719762838453689931207075407676493364919623498504864001134842860995694555522414521620798077409092379170086418064058445899333858123933910096417526206519868869583500374438155803326971173980956681997347765670766629648934591341480289802891526884635761372326238399647321930473857122153263144767094724593837142859707771025020079414787860469122723230658422194711119574791674867755298187926680371375541176641899396187470767443479430888038472854611673673550890203222486364254301796140776548067761839667295061679334171457307374602749726234169899141236588439214694759223533300930541031154813972379158495471306808196477398844636642514533787245859476321752001399080150774722592588161166257780990714184418264756345510211755139466559857109919549017053626927616858604527446272678778188380528645321102421736978493999526310990520341352539553072019640187436001072739522449294391396350003431293651256802085996484900113052811465637382019562709766946433258397799101717970269410712012183894143362843926629531054929280637572570628132794515798630522285928320989845809326138217644493187994157833000836762370517457641288092757538706021161266401745716680386911182703097253846694937324536641981128011132515471861183057901083006021040846064435824208838732055583768576008770326690973508696333946197377993713811118502051874950218701926282603147515873256377434446747762411980338505656220137279870021604039506251259535073014462561475724203657200874625525026440737245604073884404886366222527894260938084286324433305022014617028952763521072505645375807944706017014998151000093007502158974284201212930487752954346545134736399275211270867977138700825204733619516919700982807062543395881818259411082131457552254887836746858397586073491838871629548649023310752624437737632172985158850971251107984783319529581251231133934371537291384323163969409577922964058672006487495207967282119077467076633654039852653442542045893247328481285493145746258200334144196283656192229151358410870676002995758283587781483283679496879930160364942444037546485792003306595961039896460731078527345401189051073143472518165133361900431583975689513895322567055367718676991002303776358710243770831433505195788203156899285675769334570580980458098080915725491351330823097637446519858300506633058808388335047346071338584401155405441499256976425599579317805166934174134929222535198070714565584675704426636921879995991376297618407375162433340313775604184930170138046466567459563275206092598977610640557963529775911154976646679283157449639001467634715608118496917988224495976274799886118719422839418593537151356581298223158535886755698467046618784603254108061654266934960461681165014184213805201652637524707950738350667036857117162060602502955450857038969705407966196964974879524264119544606008646860887090655769499532704703829421051421002402705749502147460591928238199015829579789126751534432333030193770093831147749070226413858381438258584709134270553093627349784244819174058199819651226939448866691983540348917382670601658414891920932487626691445094268605821570802155760535275534875595710173533043977296925761799812879939266629124988162575196673750923653721086331406505481097363727842910843291103062304275426078295039947995768518832599219415995615503906433428836621836428355023920476991541412055853123595965210979445941786381693131821649576126367808274008536747147623167208380515219889286156259201062566933146479682037480603637681435393381102595605214842146561312926428595305718516468887786719777595063548566481118053746217944433160145408658312428597917463907148759654450091783349526144633159793248630144979660286339135743123234674463756277242391739730012112470524142227086345141504498557364149533053962449984786753846427907069090635604742951262683859875071640666028195405182635895411669918512555133888463806458835448009806069882231584025411837639460175218894818353218376467932002689610875255716266747028543886379352174037608176166894267980561278171748338800646186575323799766203452323174224194735345654342396599380640187392438281589602076466453537801297044492722582899110799260071580040885319332999958411828084415806145754127206878070074204762573034116423236942544853260076850376195579472671126991983795415144696863739477475836298142296408267102130023034286895137199585687963077809675775421460078886390928130847170063260815331448989552165139002060647457837954209284441823184177241803426254218670698146318348022789860593441825323955016533196178033163227193204449037508780262310575898658861558412864773159355118917970545348249091221767761867360814572479185166041782599602676751193758259807497069724429292611351882224320050944400414261417180510297695409718390721692920181933414179681439508585033152998386832430045373820481439953609816926403366697577535438543017558897141439121908425333698463752428733068995399156686675519863756461067191272844039231074725025224014510129121630269960786425386061364512044099981603645495068253268612574485547675174000874149612986748606583770218926350065490072983670808805077590772948050314404196055928669248688056777493745362225776948556653084572584141133039413162329734036352247426446455879501797006126168149666142543561174428208995580824920067294217785567334512193540082482946816892739042485772253849368307648011519894563162667919549885466076667958402036725849132104481414449590867817281646898200807617770663288967933917283347343472981553764861991420035595030205308397355523840914675104859136677839192712740729212251317664658467752053430068638041057234873413474534660746059738080202106415248819937820138005422890286451006649306297623988966857179908190514040019781311230695620665360992949253002567918440836843011827011234310540371793740576499668934429385884540416693338679665606350524869482901765614116693434093307104712940255901668333649253659956130871834051246548739095164389150078090143180824220316989627829900547767737515926384674668837387386779744532441460315529811132411219842302216067450477993769825056950261907884855629689219849071957785918354809335637915437365616562773877824892589106582546417248876771240551098635632173834794263292889080888693423621509634221746515391779263497219741500187345718867538056477873039276638442613756728094303712735458387538305536022678089605282968200044266009547757115257496548797623766371275134264667981592059546142748353857320269009236980431923663632686551337935684682372462409868450517551701031620455836045008399863561865077519881488570621062712293550694252118721048357871207589772691893810076114702572758334612238399862615338639233291218868207813231617105965110770684149534221531016600664582557737038303085738567583263930729963003771224662744037290146803573860217368877707659551685333170758321154535656523691425401263444298446260381445472704257535882126281497496152502231297203001704189915664127684136207927603915139598458724722932399969243030181801625285549784820124598354034871083349227161190834805264972588238624558288517812763237620681758574949615213396574457637436277538291128800739262360266202588203049601434583427192309205644917533969566006356096665712957806808406230182863049874067129530664216269111380810088468912394655782744704978361419855573060656993549087199122196615035185662069989007252079243020622639675942146658955664297409284932790328359374867899528688245121751606478010332156105427889704535085663605277223305595427399268859281446515241411567991242872960033477439171250105614884233783512917258972625602759834644328972843864382110909164541029643401069763211086156909920135407688220959634666656843229245223913667640798914567139724200300702864286800414884143217785827044119591557274224327933638427996039909925278486052919108012078838679128267644025548270773557245683255755986118339348147805054306646304848543523861016064427144709253027318563518215829708176284790420860315045562976279309654974356867534963599809957090956554555759905479052910969904909964339700355544014474923515389160817082909137818338727453716807938527071387883407743401062256638539140703897837908197698809465381767551677564953216661848035160325466732632394623682808063045937753091151531136601163616450458446459678951336293880342351872721639867078146059018490007280999176971978097377912462484579055100006091375920590816715484824115178100761311671585800439717042228225470538317613027144823295149463462779583360684346352978792963870654198175156539440576682383843543838951444458969505169830613610652017201952006172160657145833441591426719410767901543590969532618368876769858959379031478605517151028108160785747854240312673058121117701986412682347070410486469790909710405784790599144659193712795388387449846334476415353534026693525167937603471205198662024081883822584020495578545660015106891718511774054649878890677719207448129288514386192596431802025624711553819857354295679372474169736179931579157528716081609521854550373962803137598520941660132201905369355774446841948775131938429338498307485037522623142181428032839243785438728053789273225097070476900773315876094410711348225127115797700741490010752776906878859303649945320977448339575703932456606325927460370774387292082711603750108684037165830127140516672834134585904357917107470204407780937880874859635624005399322498195711821247833449349821129471903689296116369580986873307635424199512630256494967744533812564117402431339704096592725120983083849161705052562356692307107838457899341123809311297166247191372784525744482233048635064200415168238048192844832984836859108319048457555346709789116754836591836951089606479138484311509616869422487190738674954198453764993062532273528304332018574922249355660763233820613628194548257487653552475296645767441768634931042310612209713407352878285791249710439056126999470530890715816736035186162905342782215634954620037993694803407871625308679049554600664717819476402808287623012914390480117444586753683134561710859706018155959850787832162223196369552606099873564080258690869665902435225628787773088720130539333005173084000943182634103463435154434302278042147009340865779642167407333188899182314339126744481477074599951923488039629630323742596257470697436768589195516999148152434160600224722594299351660588640592346434281866036185670920166360052985266686419536064715612086199259546146511932800310312462522457185942154311450008820191410920337491289998756979726807147985731722559275344910103903303891638453776990681981279463542341584243135636355988119394611519770728177789114925802815327641035801623583594041222442210043237923325687690703019325932035016245595049465226765946430956997078515543400671171365348683729863331545845759166949227565999941179515147136175813769045571424378538644329552447831221063268833064172123830184648617531377556333578995383018275925995731478702291936387981508620106426838514229961544193263717381081464168845929063380893007910495610144087122288969260565702684205674833333098464632763296475268423604900445107525243595975535355895159762424463043082635137796319709810386134948413090516636767203692220263059308461487357270379832872427132059429206509972051290902455673216613330091750927670446782272278710325121310028339725803359653091625570980678693220588098239802968333072931825266642512183658327011058210207251658602587364810050656283640083129017857556110303084430423702828048435171409075817821974518494444834911249976639737783421597127100917800001306260290644524882664274607084406271005060902532509468041576790798996957774590308108819995003277749117413955781685286536976392879770737614463642792663083380949416181664107299587400144804728574656293218173401153229584104994281005558048183562100883435058194465333503810471752193061994669634651814851371828331464159795799604540843543625413502532322879344302914864914670787914085835566229234952598666593161262115675633489109928890506575556270459255618608852786265677139568359843681157296959438016530790062217811232805118667528515933099513979923956832395989182848644030250822745289976641611595238298070467153911057323968448563356676903917775654543994025489320112260792145038498605586834855601821660297333861855468478349085546686537682983070023026610151879139714694102148666384869682019560739755255990909418551377894249833778505706681778512687232846042694078932692204074653767192919069169375314324248627614034846375773755468009995804227917737604562355142238744343976538044583399496788256701401477597620203199224646341743665600188795404289299296684215568740536075312838144159143114281982260676751638408874888829511037300693879688264273321978635876542017893604451425288816285075684347784966247478819911663798119338242492828242966735130603551323362926908700641878574434754933946065113251171589385083330416342191001102518785767591535177012349718587842166668396568069631178090679837120839856700790120431756803242086619678618449244812185350963695297073724178654162214155114043910600332359772279012654621027090088596765466162276682415588247881500050933577926867428956895071622717218492223296389336740193674463309649945268391593494925815159659441248539991222645078972339173359488805700708163259488912744296491856805298306598785406346543349262550232830113762765695294486262940986642864711915758840496264548667940555641004275488191533079871783385416386092741222753481698043794118442740797139223299247268838055732114374071604284397709514288294296212793995592599556405179605507490201905067985577690351456532087319563384096280378763710135664686926794706311583513211891533197769068577736026536284274556120778523599199671566374415078992947255373453393075950792746750482605050185120301697032100173768350790619327009169603489402126545248784783176350346657846748158113599757987683414458901257503954771184874723568539358864075250341926664805982010872229425780573905521118711133693547950278528869026812602397535597686696046669800986547753109992719370556513199759861484087383917024188086003616241467437167523820940985818133381267399756329536651244325734660943381113369654228419159463970156528823925121422573963234328599512765892952884320587732152984156543402362737788091824945554019098382424136799491900677745704712739452254817522994932419508054029287225280921961210376484728127511947204245028573540892736354150694931556381518236594003144916864060401440893332743408694095318250026826290277340281791483343948773052784638988723114410703525338564683496613499318078602419476224549542072989722951097312337408292291992505464323475385534054092018684057433698763838617504847736018942094307364788656500467742154847308753624547625848787863873198267384716696812064007818963949403227445685020877980866285479359444205684962101827755954608605207965890975341925466523174067819612949048324744731128069434443259362078763458617800244548393833912898897632470230683783402484584231962816809232972768706358326656417366856313356871044075899513297749689978774118204926902634389881760696895817428802232558264030964706560987745034104462122372334656124673545239337866553328302438049524235611681446004484337377776617155810578075244013753281851701881337590717352782595641315356557365642202816211148406634626442307021429939772583761316789607565621719562708462477889071683391650452146148628367288676809140135167612580311245173643164355414637162891813961799798539554983443904829812871474730609972089522688611416153659362579272627511586055736521503802954246609639784163967758945256080836475558198092922251568642422802171806418950066336060947945631098577155459558991856037531195558502128667524011119543717170053003263400298755465423885042450666589016836182103467087317105527687409225490031698680267583034947161162054762870349114370956448328525754252085554184515180479650439079552049925558709139632805708947409434568040758862539650665064746661269162041212155901704634556141905363739476364796958623716431257594705624243145634002501680461367615062513526319682924166034085295093871862952878479002124323900619260892550268191356923404522278007978869718757064208163220684017139491544688687610248188918580865329384155330293252782869971069898820202065749666576691676058636517779488646676459293128894204642377108111610341765687354235345758295618763265794720282156643141356908453321785488157911148426187801632366213201531619003119453067227199661873663342311597241516607321174938432259114662665006610607533652997118842872580539629905838887239725974962575039506788719553763145830330096498736776279931621333255307445641799229880096277005564086307512783664134780986689322833133453327276191215095899988019198288426812541662028408462457210194276947462631427967711103754274421030473424197275738510130822169661771192221393562771846079413915687061031894926045870650281092203626344623068242437413962975680470394218141173060819752930884571643143445993114780183372135712917547778862925660524280147366977939024379985377035064990754079349385921482197054624086208237473254619632893042063371639152155613570937886240115987255090576474541368928687228782344304895837018565311926916761670199490898454513121664501323440007462261412442048841086694863382799260689143817776966754105820579651387001997411550010262265659847074475940511845336158135121905204436685084643618303295579697320172214228354694311409436947668553199210451508966581874163942355961985139586101557023833206956551486344473345485363922502230545953590309764832653596989132291457565526275129639691976411627070990384162850218939531664356643453430442985288303897888658027107447185163237241766770833892640668902902934317061947528812323475367303756352078384489613561238020163814633353433888350190533109517243129839489427941995348801030268690387371030707483341748606479500508390855343115255606582878048828161700935455539335157107263539854175916648219368018137278619836433158841120792832911591994075222996643778923244519306711725429392697593945560407199693945749779763875820170217644415333309205307383099472596421209067591895565128538645991126559683696730634271841150798951842718112887378165910316053817013438134215713300445992381924749733399101676875780187564649318564624996632088851007557764102637118339250369416523247908720538898031039341767778677645099753655864542003999780321183012969787256885458914604259423635925011512825386343685937844123343127178643473435497198800754696263809304063195833287401269216475909752027523364979983089063329437924647319788950037527724058172348954127259901322172951034589991535339073332199255550957909395827724130704736204785817406806912847806804276534049456526120526546578196377481642177044164124808226865479042251210396750036710374108506761840958060782367741478421777648517639511352557297794046799129079402775320783113696571639515207352438495393088374261369249885584482631802748288713370588589561447192085157517140744090409482835408349809884093862452506255842956419165296986825720011218353060058923928885659933368885797551442102269565099079977389657610494907056501312329141223000070039847139185864474325815947339611541924071671183183146102305054443881414555221538599461996638214714576269046665675356812335436634541650053892637320963834780571847632202279645952535603335686525590727664377474149659587993543884937245589690564892544598203066339461293731826953821043637102586279727592104079693045648309854571475655335215696528606129521032885700036762680830142551859815661522227800848135882061280401685894854926358080872969108648918060476248630781075899052479449055032228121899841446931724299388997670555883652725433201379819235124150611467935780463426867654210845756252014766632714995337440143317658284974300658821118433109950550596007044842112541686775736424399756821739863766698949537062453471918420055192032582532997671041010636061020799852414922354364145775764875568735564412311920055003197028661756232875431724538793934381242795951355394669598099749560643439013193011335492402208659371703656243553269560962895347063369575316790797834408530464907177798887795913047278091266989366592643115684107131484405099289030314027820333607126553102059488423689356922675110826911701130994741599579176076300767784181349359033512122032115288599469980751057339711009157222703201430103905181950423592617191015031826006581415024816936408622955723696089508724285561237179840281896083579179491540683182299442110584651628146005612486538917088560314194872107037187309530959339137237741859787990214847329457559224818190242445465373543049615629990611598098884922278810642410104127142361860686527325240237909535858613400033304947281620992922701952747379545052511496849527352658738845189718566137394132863794186689010828298530031870915218520758770566905619721018933312726283467951970913007160803853586014809549297835636209709931486559820713560682610184146485101486520294334321401594258077469879773444735443519736184269107885235044632168611672326772086008634357070916355098705445016014569754063615277592501695078162780084330122223347040996937188986108049567689088214897972797434437371922413505284310741296321213105385874910592772679974421493256477222150106891069192562669164586152000105623530774897310100919475966873008375989203252780503208451730922712605756050231940908661164001068402134175356130795077163158410634168532158182237048466319197093303250314174757954961121486532476403675393543068880218575782516334206184050688312059351933038004521118536276717892106493787529844150209631740564574394191189857859369136005750637439299362352746442795435471437280908077459406755050680447590519988806119353588575378084324043473571831304642808061435449076498557321269046092413709205272201319280426176068798557692723105597997262471120510374336128727307042480779992617460786788203247105141967306847068412110442226751425564272485372479757410715609064919306883057913261212283620966630178313006428299897835424922755456826837412789755898837977161274253713582191644470745787947817014458082291906216491650762411008979401305604673457798712765123622947333864974608335198003390269416109105785062364376503605492001002156775206195394877863832821608242947501888978099495752033733914017835531522809543829720746391290000443938052310705305169417582982850660643004075978377202390646242325933403475497965857567394395368164440782542619237950915093881781693596217741291944633114621827211609596282234815748588482716812007377261876022557642148418437964454631126324682801462361104510796719645327919404497458774324384827526130765259519789127279729064801208086489945456327887868266003676835307883049677355533148369941498839874902379329063215661173186249734079018300385650913535592679314187019648754889021999698804025376816897270133071469690079651121785866668556843262396387859453110207745855228031011088334715198224379577068351392799857446665292352267818294286380246727682099555045315597466309681843500846728230579010846292484182201434158693729186596296252025081667126001854205272595519022820446369900841214017346784948487745533382296476522346762358509699901410363732622445953017747351576051420515695908732099299466874318817319104696798386094282851845032548462561854948684350509018890526967686454087973014676276870583155960505118621069062887135714299222197885783094562621537050222441022324593831866625608271194753219701948624651107391847620391955177136511732211491196929510063404323246282879008401174317004315825509119492468172925349658694881085980381688808613507433330003694671007612191557639826916105103244866936194056178454627516719610947159782536051832526481538475085798749306275330117551662979176912098635832543317680715012536076338986831100556919201915027580552695211847665486245824643142135007720313700330819925575302731243639580709285111246673904259035417179788801175131291826741836655417931452688461416602730445953122402233480293222934693270056597180647952416068200262486564729858095587384829611457159729474435771516077830628721481433211138176514061078653497989616918022778487253846197831911205921343671299477564947795001224439334311172119593147897625396259382971235648218073347571695729385329628928170386268217092159180675297434851808982418357986606029818364359079376500126426048002062431657595745509453698964045731843612087124352027530098904911157327016299495207708724564689120747750154013076225795955971665012496538790041585077710093511115097045583565805769786406396755849160570128660360523498984230677206262877671493503532595251686475619152180138984908906995736041545429181129633341149933341298993126108555844811544912188194429657591637415303517952990683332183759638530520634356327761709235888307340888534039475312499352849220344394927798048529896861663154456622713149832211744784939472073603100185961804376738815344632896408498365428955361471856183262875429187261833288535576345329676628873086037235398137056078574053923462426357907086174406980552247807980657922451534579677450712400918316134376383598012642691023179528824778384816640774603936450571174025481668747482445460485777489399598308498314515705521859632342967389976621040119020648633090459605948945912920227000695892186923806776798125552916223195201805938317705465979552366870903289192990613219722004843873833416849661126043702507094522340897618226182082917945509690380481059499427282630073111500911820500359270616634132336303259427552664362941078484688048875739947363960235198906855429600768406307172855190954125659950819061508241216210136142621281226012877333513157341078932247216637883130752344328697760224132684947692693429406066563283495270066831885809289947948239489332992993374012881394636503124987270570803036509951309045662890520952224456889807848789916388374041384077622287031356093178573536827380092881334615818090633820147340794741413412718535085504765080998473739012537725015350411635757562490378289554193611481667342091747542652910037368620290455762381663154393272667513375578493477887009094982432493288914029196896904584314945263952516546383068149637579824652320021770096350637993223724235768603498620789194610437116244371417101542816749221051375128937845170450943904169730035916550563519155957393530814221331253182539479154200041991250709133474999237437901760448531595692434989202348851939986021679560238848587562632037109173945598559976769307287667542123582671754953477517473768112145820998207171817034004308425506483081616693887283153001082390202892280957992967596903357043639878812688653667398661976176602675692495679314799904982117382240775011989105972281482455102735886941019292076488772378706106926106817463390923085532891004796599837347142114848120239906302882599233279932727107311848031832236774201005664313075038066630950415598044691828050256488639540046095373691133034586739018462034469382932314686738022049096052440684116716711758929619546225325221549118024155622439835778871977582116836500325915442573007814496334340940990108660141476309315989020063982294218986512232987815734178499878682055096297602808078766068490824059367128444167211039738671979324101015683208066514410422919041624516279567995300342727495850538307753975416394578204871568758086016766465423484357172699077986399368284480489294725638213659904357929958741412645358725714430540832923741934893839643437316430846486463562309681198889140953799061426565392799426554277052249391950362154694143606079300986855761279921321766231462410498734187752101957874433909833192353100475514493274088886971414990474051746376420264094458910274240961077221414088215425330767456512356640143139223565067265874875125096342662568966513369117179538640407698168535139613523610569876486216603384925284770211964794164993851387745824048499387510569909757312293472154831452932626437491555207986459173129223863185270917574640278895095980858075218983405361566508305199001350006106825458365921103315135554264030488896618298376375958887783062722738010466253580508499716406363501512365685358442641040834751194849464202324385378317562581296021559442394701935345716334125419729079432334117478343872285175645236267483310784247958335665600314752697572994580244884081927446990809559375954512477386003954501004489814383672038543681348118675210287004862428536329989070254482808204096817031825050406853729938379979710396567186758386071443462977343531994282869596292958596985724443420576349022771592755537072640339470389591909672678283396520582051255532541257288441554980856070648652531144095344740463625959039954259996503504999930584891929151813736114366302416574943948627550850404392965640927780014255204195156714901703442911967285486192098123658435051666329257214832928111199082367792916771126594482234513862322148858970955949499665689183514802183473053429770150435650652587901078818850062689440605390840964277361808882932012267314358675787464664465137752620647304600282128390734888188636112969378988431111693448691380617956873375392518509022333504836427270229006971079436053637026657191752268973230968875089865608645129343819440916082430095142743018620159556344736303895215452687143080637118242111130123778641386700335301856004570995472252809551598061570339286205605123124618976392788179313970769556519487469679032176471223411194915868903424895353552524014367671085135621098047558948729032409617357685896780361753400513135881635734684607322287063235425264712382346216806859392289157815730453562518716336110479473678722570551104567207750024445811478258247821827555955536299933732973691025462612661127508527100738267185946075297318851353088438881201352152877087720921449816315464367095729369030160312897387159343753388213823944396216560472394533883102950648344675632309391166451076178759141271233341687055352725088723819751230063067661432724604607003504185652232281912244843418156092784394333083282147722137695999977009680938232189551287434599316974626168306681654495189282513342250238698564561031179882547319561561004292356187662779582214583779116111760754826230875828398776788845173638521108887915235167086235721363062142196029235764832301754479046519625421843149546302484592574823217410231365164589735419877115315831134963085058245076825999786346736135777110761697388537198587173976471898577398056194127341479372991273180287760809239849056508580098528866453096185185642749931140907757201343366501905221629218745747490322767632258442744448884004997531146426167276964611528146622858309262699253683351051278109477892389908153216557431050726778900496948321283417307311625976591210537829927534041345133290528037765023452696109667369035574273713475400353997457831386189357856846113517857078666409151223411648805139034734887908570352644874771351153903769763293819352103248767321071863570861152182046768384055711026288491432472456363929311675157817687155467810397231195096971363248393625393452860131784193196561433491491960151614265903875645065167554156329449283748723148216578124254604973289408886045017213036473894378235154695029047300106433129889640440432213027708968635806522268135025173503499118348696373990683861423170552828958992592295672683712057504284617623081676261139898764999469238335807857596276291658822769480195956091908225767996783263380512276253235472101441319095582925641013746999409191489217195834711996513422049421854882038847112508789507292205994627659441996717901623766774095690436375944688476676174706102849092496511180404002225138409381058777525416302099390973898419741644808265831183437216010363460906183088553104404062158052726078816029765151428126419766844390411993063738806206773139146956641993340914094237057641225874977100683524375762235433626660141509973962046818133459799349210992448452310520846954899512072678648311800759270734008231223135891512186509241307116776835301131286471746605448951665038360682062714333704774534846537307369915784229360412990178029831506764249496352457693911072108165362357871411380511793563476150793918849801704978221732472569067782094828052283138114731931962328582879507481612333395416494400193781174800158255114471428064312457700744288114305169442814592845050390986455182027218440589660339457313102717250533911119974383766885272202365167983996651853194286486803956816630841393982161026766580401465832130726053041744836078426930551988940637063411705516049569650139695533279472987547573685486530061159290195078404253145721549426789857754598003219056755677903891870875576114238271821682032806980055256787334822401881129703960309664624450514110497272439836557952457356612808214449812784339750073333914106099526954876657701258311290226076045984057033187867981532958509164325122303534101018996002509088193014727096293325022760328135521509560064413903912564760729241088799111545051106992569519450411633958806347324432212173320750889346341579214832295433152086418184975819563372075023188818810306587785931682026139808402433088369371916830359168564329150253171231309499749672797790419704378207358746908706760718172216401553543533976602444644373321666608977392971291769941531208600978351833285848461113926625155776674005847672026153907891062813749431242290124023140859301271503615659451254151602762570642800542949136661717091982032461778871598088930353658042602092663826888392162680347163370542369081179579801604262828151627799065822154692391519013440449381599334950978769832377802255990989167923025793170973565483948962112692334748526675742672951790180865341607113961399787037778998967418636710138901843239613215270411063682930280709123104263277906055500356949982625570852246596191138090435742732787843917386074128621167990002735721068977599306431612216912846781862157838353906935820122114102741789031202744961999787825541538944756949185232039496373128820945193346296618971039807422849660073202717431791014148707584593790787649376978677222603241200111371024748741272895181277586514399284801412785552392121892695905000505374317069880756552495637836542297726186865281221340734062052650694624763906774619514522458913155595426786142319401048466525656368528305500067890789966628152477049449187713050753972109082849776848834802673002213569834482072055954702002090899661465789181947206540685869058801974788219177055874661752970533964022409951135098643244643275165990913793930969731297565249003473194429849126554873031926474729175769919388953510264092051444466709448548484161160137061632350203137651872344872397069184604584306575224489119506564417635760858503450401120917104363382966358637068485173199751683542497656773874761067900203496771996009584707209455770961720812591050776405019342150837473261307146216529194631139211341766816672945903967253546185002005818220237724761951102545100605936670882506372995047618639915100507524863141394129713707372536717684644976841179558941414705083580725827552250461988235753750307464869662299008114004260801981243934951510588912817135715712442999299665129830065165266808953999648027539144543909027343814623792107103437149395398000416546311131810123102567883646235887369376690715811640701094510717086207340762525436600360500749748008547063269959715449820951609660746298241211031329690801190766461925378053312382111122190024009502026777099699228216941613166760941348365265183993267088477022470930740735904823918870312292808944240132137063782446865730487039989363911797084379409042004831702565350733744402515525276264787690582231708324480469156876728425813753610922101004093338853089239423537084063962596109825278540015323251938013794949405239510191691832569456947322712497593931037411684828950093520485867555201949862556713261184932331069352633654207315373540160292242925981581874237067102531112455063889998528181093432624232563163714931338205619652094812205339438523715553424812557555226467866530860170181683352247132304157008039996171910380012610323007871933036554023704238715959978412982022506893977965357779538814903030621753088802339066638853437484127170300857169043336408447770917309777744698485053009711314585303359838155195542680768968030502196150893109955008883930989438912351209189847599188171471548967202339879253260564828744669697827645963050537750250033805421114630171815851862173386547209796008133675970535892643657090734063626594778029265628406028052923942007280370313397219067520793052841767572770639543960927201458225827635327509035179654061190212057969041578520237643142569801917340900365441151194127762115673115280760242398710358834273622767064433385342504492579421494202206855616141323007849592008101370757310367946147637505434470899142427698907613315703362571117550075029993294582671365584048018286253844392087582056189647270105586451192816348913244498442840102387952426033772216618573209555316914520073925723401236146527442888239812368000509345307075456859565271873983060761890786419987321833557483475388017611105834556321422215638294017583013326673598566719760044269386988264323301236573330520915739053450562256405111712844823515433833196243788205030627356627981359178695920936001388687903463460324094182020655907821277093495947910346940478235761662287029348672469233959090613664641376131413196454233145648551485679750662162331685984865308573628599373725149328768679169764533782077146404866052425218467904504437217607625096754023245547008825849482938460456649683256652039389012949265666294816248670513859757181374473921576121190214530738722269929702116632073947830127434093980481904465317708639247669986387588158040526848991109056951265830542708257591042922465640528260215834045252860298115230396010041520249563661376877436051942760806579973925090926834419893152214184476444277807706137916218976298862934589886144443197723094959004421503432905499746364871398387967182649350883752589674649961477678925031808602447116034032842623932671183403384447702707778735390438713831685057581446663140879385226331885529191944694997998240245596069101303447662013621995216258388307528508895467511986156040031429153622514632985872176990100039496183020030545628814691706004214128225004052017513408671633323882361884342704534708200701558719303729694617090645555256372589686589317999523023608988374167928012713732096065979203277767262919002025869982700573685404704408898866062795531272841037724087277912329087088433826109648693038447244659866695633349509528928010778965331084105196879713899941169547093539560355733386455052636293681771340814802113818417665492253273495989713554477749201959109889511567984341063746212859699755784397312804111328927607096678524319315615424210413777814075568030409683440391469670030645950168365819745922977162073362200467036644178652884506500383530939422646244282125090250375403769975640087779010860986062100595086567547290341771587897452211634584150187986944054135456167027242867335397383648923359756232852020884923952767916649806740197333805521512406655848489458362842001478706014781738727020817407116785490025852196935538063588743470147652989423702578220054720788038230431861833130470442361871738500357532851570514384254152778389279625097102417292316057205075907852345270823016111637886355495164432841260866537405550508221632564178409963306068655921764226633582600250913014731122261610554522940253892566308750501379044849062336446238539051945656080683436398758311609566095716813283129572155676035674922702834468839440004610376847296589246028707230438386484368763651154823066784289921048695208183705011506736810828720166743158800526711152630187193287832322365207061611402376194216680378711486344553063826826233441578571694527630069192044855235199498692139052123317758390434734315513904956323340847959114275783465443686457600158566858019543220574227656519337144972067516990081860887973475052381698592855836426262985507012213561344163313922726176973493161585554984053715082766117308469391700477447832569342622424879704459603183916587669566833838410328902311229451610861050977272476258070389824804625679223110360640520063599436915347747954067506634934735729024711861666714245562802198273039708540161853654961793186540672350868324944342658500335520750259354435840946144144016301065708198409901129870948468849719878134376429967092507597739057615810585046391857680344159952270462614768414972982137160189997495691807088347494436769787923076734860493650757657364823290313944419936364470996935080294163510378262848899917372052199219494588123186881714770782204635868756012961972229487086854819929527720728527014939662611364502916301594687329768462740206755564087034631231339158928787824970637966945208503955072627325900279320691134634183371036625447385506627818404465265646174447457426797725822223016082779739686660003874224699178265996561116345559170263909592988309515982145367777355452520015420882070550292676943666380734444371370785735384839030024870943174110554762905156712690899125156341896699274388450957194206921894934393012876532122125179581039068424183105076087000312789189276433710460572039607676590896377149729936557526993571650602138486988666985765389073623034820984451615653945052263472778744145736780412313382918157654286918032506815023505281797082961812860141253392672971090466259873172493231081513955007934748771520425552391868496069817262318416186500655962455776858569263974127226522674341657282143460743388217992008516280681113744372289907504126447224810398344772633962131665087779249290139064321386408490997699902821071163252303868769251577967758794816926962160652982021934387044333156581053634516193588884546977273723907386924031586865408681888197159539296593853458016492796668761522267474938738194870143003181116187606505076493781637325077686478207966537973670462195464322359401342747962477423905950587525621887290426290593258274623621345423341681799801977324642995823492679896415672178939191870680700299479826381399382275005750668819987518504923611082637184142295463701735497423293741382358005794226590422717898237661565006803976948618506803220741091791440556503983529490638993614851989363548248444334544366888715318187121032881918237542824539825758274713919799797767680067064329052437531947826233197240794568041843982811098433003319161981183522800315846764146075601759672482869811767868043665146184101249999641804874364380065755559344337732204895647756123356228835210206137772928372933335890990631201202976223939128894993601875387015482593929707102912100024308889865805403286708100623795514203118301425630392239608654548689052310834040001180599618131240276334076621289597128743891854496044538375006442077301202091329252441652876716677696331939494559693899769311055771764163241930403193317347888086031010870565258957725266049334259357927190945523356099805051377025416434957776961175780956221277489342564018405340060644171511024400300573625336828912643359825251600394301487208710866563128740152766909916010497423754187727686392936928622471235944668346808210884070740002482642167434157144531407058974736281066047846607781797564797195393462657469151486061946407743700293959663011995857048823145228156356499802746253173301726381305911821245784385503573341928498841852661402268055238658394168091447444195805428490350426274863716903311700930445212662329691380251612735306896677281506023941124176398472181642726667711059757067229430652179151458352503706645609427899004451834678015899474748901266915326034436141078723964780215584549766059414196546674366762074160645679677223040664641682972170904504196521508231659071559024624198657395759903263308702474719001638090920953620255835546908062214750917728560184542978700285400094278882936560775038083280906082341344717003229068189465918392497666260679553755927768404040568009544201965013349458614001885820923677247671740936544575303113753465716027794255745922221789058846963411104636266745100096226409796455299388874897392471254585624643841723437786569947281849283826114032873321047583266959164981879741110167328336118857433644560416940194298768676628837266377765439632596986220096393508455956885813423910331939442755434575739466708932441945574032122566728566231155303452783796942255758361489579893811754842367386704876090531215173583702333921907785304154712437931726087470165674224100417636244817711307128835331998444718526653562914998394067824248109794866480939773573455539046631270189946660673237772750631359691133891184342138309996512826526167413788397456057457428786629184960151297071657815031197936092175548123916710619754115033798612508527534619555520926849659348251467922158946269216403919987916316974544464710905003476406322387711687098206882269761652537017146916008213898413160334239462772435784284840708184033716742382579232330113167034867008469283222571343582836470308959394871934676635887578314883174334479854713459832111960211391526816820619459566190424794220783504656681115553493931301671312544345905707427215542001513738536047513013497853515108887711227125205876622477394500101785476381545003899421007745516319027142667722653773626940730005118445210097965079306940587585254960380133400839695794617874053832131315605540507608017208722604160216773865642579972996057927265178641814597397752205460103633729898637425848359291580424113335588292188434207159279902311079651258884903228770167645459357009077865347405853754474802272537685403724270721923335456703170357344480580913460376159496643553138752629358890185534124525000349778658085464543295066237145456002129447684239557737703569576127715520102942015808946873349926403847488220421907293963772047872364031598567774316835472185669134983162049128481727074496493325041925738073261038946955093181998454315700939072684456643174799329299309129458104980255578843616895247552586263502049391446602510427232433939204510423936499155579951422050312830635159132188282459816222822403447894259194526603383440093822383690901539488651402293480286019639983099591034329790542603362562425827912347256388306233156811113455269679565577187792532663166089423572476678272125839634795930937910832560975705806216421935728283103030927292474472212954211162125258649879968243341072763702540843205680174008775667546666704459657709895471703363730421653061953487885525012006324256748336683363789305562086914568623582503234609864102601308292084630665738766626883042855684660614020116557233593539872005680940218673667681753083600169521002712198954248827437632611186762410812980504148138186130511256527050589046725967626854477729080620094120686149981393201112212183914272631478420289642359575838731018847124549877194905888616797756831710776279906736552921874370285306298453630997123709276372024688620179555483358016509096262209634183522049405369510618065942036321782484769835848033121812753781863282128051710969835959567108346874977442227362858210038532466375038534285930864510647802065183834465779964981079015614899801732931190631142851957640938185499300977287588357815640893384755207210114099475904575879985740829014193565411898279731050235462540194273102195434821969260886471003244779773229657835465018822055842326927323354048958636004709548899418820998006442796669279098956559893820673397005794793543030456549068289047794858820518240758020608210183996677748644850480131668944737206362388129845687797324271352963319545323119194455093008333951275425106299813893777389412333493145378628938647223207335161768013450098426924150996614730022809283459284989881797368515415887989267866987139120332949886801873494587880460927847966348779539402984565352887734726438150321928866099539986912451665324845793531979490792956088735716313850334140313801345966936698311652103271839615534367411863553230914031484882135338796883570981882911034424902961494120140919869795201409149026250718740947023837664639160970718952283219743740482869310596243476199039222813102415321623311079797661737510794596772480785808913902800042812388751394950294228704636349702024751354350960807949208664731816009884485166529449818608472951920645975936539268483401013464354591846192418293473659223549876087368827773894516943168556133791948368444639913181836152362527393874559889600190709092365030628292949779763887739123881665673007792336500892815257894954176608990542538229022036093653222605202125149541948306512021790053775768858039363846336526971983336028616233278827720919176279721969973136393268458655613853000277807873679295482687725923649743284809463161067137363334281288139309840645256321925979509335491318626852906833244794781484888716949214780539887245049383476500271001110918246685412683754577679055524640618907832495416952721837364722393850054923316537868731646569963316104576331067668632684325730891373840647089800540228258501231042621833135797666780634931752903229483953110273939530066579476722887392745448124201809472404201541266981339126618538934188059016828515407151730718409244872488280420250983352735384443899147729525433900316277515634256889510871353055651558369321550042939339813923699885610153361666745068926745964719130678983526694863103183717815502946699661872110891535229498505406620797053937085556207636464806569239704668919684654550931807499107229961168986883973788165742892258908911179672521032016032645881678388051675327622393421894259798336575205929011052998260106958106329402088228904658358258000907147702507125390610452364604370809176665209942746136631123287773353430173127079785128523469351235227618161757758311426629354667440116593564634482784160719380802066416043740512624485884558937965825988350702508297751980893377423838913278842401132303935022082717051823065175629264621841188213033035707696008705715390159568524028736742957375066521469958468013881872853483700558504450184741194439203425309097881458773286957787368091131480396061134427085144078413859551814057984814531556788013235987838188629096368052035616061024114203660320792342643365129017236476253741695350948199227862134481896923790102773650376181292142715639935312973332210219874629164297130996520434280202783560882775728554619925786032275044663615079847961398481669879776488085562629932632864871705509682429737702567666068915342522263530368191012170163427327390170425135278870973477365256222922361697508658684138617214985606563428790834654110132034263401967842430700204368938614477876977819432761104771634572797810089601953264059713060123103528096401386677241031429299736005139716214273785501723626252536807199515042446978174350409088303891005917122930367126816947748543535197191219738768605600953355575717290379721830439361281676855358957140927195884083215632573048340207877248052964047802907825300464537404814901845834886771310810438395047883668587581097327646659889520830446351834218442345605410596281883342652462482015909931586889428579765317300117742432143914785474668535624558584204657135397383996559873071510471367549233454437058693543388662142257724940357271112227553900731302375177417003752209045915342251774642560161916644953524450449271281920861427435102269970309318275433292731766752687688955273793574408643711596843381493923656996259077051188887464935702928211688499069020162084361146952827132345188172789216789258384578267475552699528128440810533188944130868190094070761413132151909212133685881135197606450219100966607523510535024061753583166637561455567392919108149116764210184570241646642849709992592806049414479420086479076053712012152992419803791581191924839343032648115377028227345137012550959003572337314479519220304492172484154532420873296349599373409126312294118548767812851015208380290888901330861487173191797326439866134034898869309093645182529190033044614586091707972766398197450988352376101543863937073731583877177896337368571238134552233633706577881203521423001321961261837488045403280280523443167969813001522964412772856425822400775286580223179227937301726377827800424808267828320137375567008537848435345396653731003352420652688721558068424715182532654647787064757903787370961801870084636737637643183746068736836032450623632778899164241490980535381472794617893436181767130591517823355610713238750629338983871985283937482221079214471187043929733754612605749514035814291446306567461347658496646846153565205456848666943606107436909190358906200015780292539139990358319976178830255093077810703003096889713390182556640113068194563521825866582635197926777327744912601663695460905564103940077026392636687981101438461350354859585770288718940336988394447813019147516166559669384540420452089944637371377462782468666189453047401659760479840346249227043687305062070725955412286124280698859112133882864932129462790236056668682229059298728673055486518500157803700008371451653564384000298972053993451012417812275673229669445401861575544858832770084125088006679347362742273548877643235702357213656838171386474905779597621699257026883040978428170344586464896212960236189044859175196090547048705860226840251934511181421513119870351689093912364521369327263065025202653285724354927428267305303382416117417775547544609542415690439726942945613460795554516867779594660387826430796185713068161706648801327687804049655873323045057819441817076557348892791387839032675834248315393716568342292874786012948030472439808914995686729437741745049547921508904167416761443355519151864594245084920475598685676157313753333473982025780283450775633105429811649497204995541594992629608126968512046115665361752457561883120570405002069458235891050400639331837706903561850638449631693159810829086252537972792868553217713984238417447644955731908939819283281621170447642063867618759853587533271056855799098123137264053139582425889945498203357897020399637690705997595040327686074878999155419703415532527136398991590117479475294055133092786954776826730006288081410101695668960390098636895753628772397431478071666212316219397377277703160426479048537051932855498269402754611387352011027432423239708237611845712657603084893086411315609858019632353484688308492971170177205459559630406737780584788009089317934057947286194248915697736277536191856972934343203861058803618968755650440462115524979196412886917086385043260006689647740311317368991937723094573907841135723951573572321789840873261676142886180983242476419722369791597580261103702821835342183267638373996543452284230205532044858283946088451569775548503881775015800690981052745200761115438619838028818670669406731515114031400849651585572616791760196147899087676536441593280941792774577761719455667717881178052971789962477805879894009442932915716969943581400001890954611478139654683990892254079265681817666596977001684320993486734019973368043246391976878169098475299374770797453312149723663069920534084475683758917987299578594018988361799444393496936113501434094604331141839249396617437333419500993773995952681031065004477543549597616632941014140401841807675446266508470413160147817144882678685644561209390342837662584965883874770109767540242061850116619410638738695950590556990175749819975871103644956922997811558052188014030967409079950974863807946024240223465145338990939721992270633368723954614873677173076097130810944257222006062413629149776521754477972995116320091824048050118107107347928235012704664040970094059194672628614106952012970604288229580496781101606209449196274431882350429774687136613600040715157277392703196223434624949918151151647085128618755817133692194129555268728272638167662791132897555018238122378613133453942384082449044229111232008176476106039339767889439166611162759297419929718850778352090609274315531318560067068851602227220653761230948348593509845324112284620553227964294204142828325706874503170030802009763749808047746180731930217358690209127463018840402366533266054733014034865868950368162524849130911585409610670597613428042354893795929174175758729312306722558285002757506968790124330090350970268676148772119824972743966059986167205079411829482614932642491889156887213480439689369440916298054596590485155736008512618022167956006592205720310260611620020915843000839037391336469992821619690799966512615280895562885825859139661021781430377769989097340298545723978015287532027216117407673258334932298704301462928628069853666535545264324998600494779167875587584434645006696426818404442796775837972108300792859411354574055369802946930078674253299341631022701840773357365702079067643750774835547446601999766075400360526590956877562029246923322386522265492091923251128921666120587871894969247057567875371250027965432549099533894396810053814048334089748437699696337811500893087195483166235082049865936171115135014502137405218410425204836111271979959582488799718370585546544904573451423555684352495738416663826472648555704421215544143962986974546618740787879689770675572479573144072538749050104445193915130152589755109687882924801417154384105189894265343840443256033577816007072121917788087122921995191284366016995701126933621165522527942158226860976337485459252265332112077263417002308426783960897593195685117601553285088467163844564533425315122632372345820152847380351990211455509665100937767471446579568952225780212539738429759190770537769108837668733167857334813462733703020814797176691382800605679392012812552767474153301083668345700782506990638874504317839253472609723522152623950651517356772219794816431801635833976238207541015547638245746889271872186073813690042678672980665404885460022375462557012886298838275286799237652171241982020464096087566206624191560489339244881291573695155784702022108390863933175822798141957815177040602640717322143915880039982407498663672759032783721967479821838611214041972714591402748910911281567556022949092015079116940571927855047790605285891860374906417185652020670056625639753671812410877937299365808622149996062594508348884698013551999955852327269148342332622814859775920076541654872950495119695185332801507786833497366133185240498426844841155509444887290210327043560298615207207036167119828694128951361634218274504128809433295097540631147876201823911469448089550949133483333025558376226237159311684695249556156644152594766043056631742230273246136890103305481619985201471696796420054358205946778004320704184403393107412650662584186252940235447061176669636357328546774172722113269509583114541887485458398747667584474833359685638123575449337574913928911373941811178656816161366572116577035590317265716996440821239957216415290774477301131433178374217545704441222871171199916098399606239542725614242949633767444718789285936441596397236964407828068796366387163354349922565924898420617804033278835979711173993031206434179883407409532125750222119618556955408028802412463928900993201083172459917134698634834706715593692312529401036243818024958817647532129865137252786469874107621442792669018420459718154053725688987005560552255992886190652288877460565011433430882528696688730949967688367042122735190740410698388890447750631134935955626630979956593246646473541240012137739808042877982646120394706907591331890273503941882323841768559890579742918219891628294703706568927789513025242849632255174363445316117659089649867944325032768215163815500575700806127456755040755067659452509150261240287394138458492988894719677885177887419533954314226604769157101471574662814057350445858147391309960991902780809307240872503837759472441266352478179168082597141534409319526788471989145075218375360712505890656107250487217883880308496923690706114489146598651912994714942105715744066644007738811441816187230115969152686615687374838893759395906568144126413779874645918740956314145678073309947395457290330028235077908833865645110680765212129616814578793617801120411830052629183444124400978172440308574668857795565148156250346811200307609976724054044771189903928811527976268580985279575695395987176603357454478871786818065878007093904201868996758674206782474524479444831515435537628434790052583328853404258044941292870401372670082231089735435706923598804503287077162269753646670780891729517921698467518923547190405235214938947070027266835305726134016185100277307073639107693908725681770028631889938033849696402649622846346024739005490261855465128560448562187682215509946266615032359152818910899591158447079425007044255518823576047437875486258012264487208674716583003671665605823701507616327466132890719423775246225966270953916886416758297663199895745694939271884818205919460915221862556686229904197631936950626166554567742729595752589767019752137833365926789467514814806369357969725343162259606172435754978296542959515479107657893407777035339054219103708087865074310288139544842383390141086619553403895700118923576219085162356268716963170207227366682112756534757563504379052386648371575095842010264043567232130340497405760585029931235048530732311783781368764072026200878764985916440737557508751468716055354243352201350041462370480668670752788621633802369819245043688270916678700412059175309351421397776852371800814292823148825307548145241876321237449913609788391182687586089374711581325224772387232922936996991566507612311939756790348664473884248195399881442960026661795908052643449643084250547669417458554058716055819536400513053145355141856083765197770223918333794293779512682176980670939078277633460477171647964072603895825021063462924164812639238598395348034452931679906115864964947235494270173929947185569413659318718058064664855736826731617172821123466357383476964711248399373347289063627918006424700956420247510567143959061993104354642348713139383613889002248146147528280063685521767858935153064704454032393369457769549084027336493736803560345526722215927264939118690806813168927280888800360155242468922763993532234782578646408408015015134941835297202274195052093426506522807674029638772558837889156004297654463181592500801879174660045935735205684934632842281491149570561993814241666252312074232806262691655613238733932197153003476668167163311047857142973615427481052974748717132243731963596202427744577141572110740725239682302301935200823495285394564334081778195308569014662931494018883793571448866712980220499313633819532943041594567000032498248787194243544576346992904646937390194884091480563820697900969150990477483324822899833927308205522903357280465847171118493316492213916801303955267655817710343927730121641261290556154397372551513892107122358402433748159453261106399129664632338109065190049358591458527872842057996509102217986023691780129925821389299689561595656166374476107438536249143016298740597649432052303174853292138711328035427708325819071718126366040407997632955564626105521593762525347968942704262038662293440036294060009317994382753412202212628805774174651758410333089756746154946942884444701016259531528895023833984190010818466837465949512429101663450539096682074861858804876670229683983635480689379993773045500532337494305849663284920820531243280580682484407481799707366521887697053046970305077448058364534672879920268893365737689967213134510995812998218553323041101953905229720766213126062283651183331197566935333532738201278540535446258973194987512724108927463190109111874209428775184827439801283858048198015166530712594189135422526457057703680161479385437311199586847876715042096054828317251370611944290199042099758333860207304594268832501847808531181484888073704227182623117601576910461556646547805355770886193135954908243320836041459194083226206795430001990755104452819475441867174735092966734302021728255052016721668002093946910665740108659004887318888110584943331103856647042196064916932746775095177172664656918800245414353532343768331370597161227802199870742196012326587136783368704328155538239358881542766445924485978311185386655957417380732575435293898086810781321931657313975008674757208991254090348253549036396205876501423660548017919284844569258125987321325390972083525338093267543968773163883615930317768706143081329065180123340719210157097506471896476442310763002683566128584323922056055584507411159480898617054436260256823947680292557854298826370892481972981218433542251205180744617820775061399414218530987384557784374171055050513847696847124656541941425331988234240366511206093189034876517352876966596484858868681727346453797114791438457051034531230866712328056103639069106952567597101750483297511795788682135169084190889019247490131514737659696474184337455502459835941811377849142253887003115822770310659390728740086515094837866012603406924652302868600042931247028159038347691882255771976200002199235757356353816269282773684354817631867552883440176758501859028162525284310610240152948247480661967787495301463022647959944076469578792869278535460179494866748414481186748751904294042074085699340891966865738502129987259157481833928050703011886505887495659415305150854452908371431185790864181000262687806664434917687934625678317240065931650904216225952105841868278101672827835869851841628008841359525635147650120388478328644920711222907930287199699186481230368954369513786901041713899407884730309722957568296669732829486808070481566473770931613952276738844349199026463406908091767264443113999523800802574496234095407388136186562163911012332836100078744007804840169098725623541323229403134667967145396657523417298214212398732163440213954606689977902658832958405675104782136120879611149408458675244025279733013347920899309570500299422708389881959843337721953732933678182167407730971361299815620304038227234373936214301754828156607536949033663257557186586831687748971118134117461230892987063329527292013673126168780041343341180207694547730035487800648527058779310274031736792079520881148456581869740004100398320572761958104330679664726060197300427735314464913955384765265406784889610729128715279673892890143395205700660667858563434564475108804345360901104173747922750963276244698150145101964090604100727036287771085238491791454806525787584790567901594685676889556351585568468899199637152916026835391799992464604407992751558195171430089043980944583529272330641474145868632533039250464040914780390129069196137882139776245468199358064813208212944619994630224985850256964379099119804433188819052416069839214289047244558546432060874758357462723345879092985723699090263875587884445811301922811841536130893695113842333001614811038526425384632212748392525949076071053222437348376699832437574919646311568227966894717791231830779208645380992519945285403698896062772457319041095069585111108729005153597774270367574461082022541548371352675497956963232009917819529447379976546463969572708909074045387779024520117509501680765571091780667560283555063775245415628201275148402794677520340460000863506796512483390338060948279253740158433753549713474365891045166769438143817505353255632318578342259788512909235050212567128075908603955958017869636293028445208955097406971098407393406780417784891440704807875422555102817968875378633744628900074735079918994143434281238001034256463032907754451304019699067853927044550834493419032010831735565946436915088581444196400145224437962573403633235145236837900898125108413450453003859178250610611135490686897635751566020648385798390178126853049327128222848824837732161890239005596394717286770855718595748017488079023838621863581325180533086745904766697562694896506953214885363604116100134854405081108210729992857574413022773804167602134401772825396146975231692783237383835678761572271916321874177129590505344849216366537574387320831676991960464030320086358163486572543531173485609738193295884993914874020050859782701308407346631394479150281129197361027455567501524256780449471100752596999730400235734131427086917580409737820527338143789602332976080750463898592260393846857434488421283721180074198692966569665984753386956271479533891528326502525383124429626496622372376115000516804401545366875129004540295069149339281343793672416699933791856290178704419523421273419543003082964390273031395393724479234705885820442346111498360273924106223928221557729082558610933203077564881582279599951597480587431834583065867969989061337590563794769416075197748657203584398129034079063741108870330054203240406256426554757327280151943558713898225923476977551469250538920474091994552376804390678471629364492007479028835345773545108466511490241926752064132217547946776600978239930061197913705205076053650211808594081378390071393672405406920025087669892878876302047384000077712624182804092173541111881705320002003057110718398292189241202393654026170117730176544253063887346717389151724895846027308188984605462353707249948659666288572615463156189910548860568377383838169746006666728669760662044104950611303019429202352457854501236320763205940484651752182027643739360980313692628692801878946154388415452952190453238454317779619750731334746279627071906164551169782555864599240086817999282426026693480754382978655917961721259286593996523600710313744076998133929835360812300411396276195437636821344844873460907560717303875786913044307570873931966909083446218388227414335796893484117587164408979724289161621762775765416385893706546680687660986509107662041988087224564815233877012171725233768010659725561063851308229439382457243957059088420282305074061024600879475758448728024774328991966678605094939174858801663203152920605358360717479100008613647067610490943941523062184616658326581910103067321225599436250386768608216074261660220103156957912585876365438580001068999353384401077884242044932939304357711950810827125948898117417624039604115500596267465703405130138928271772339079078046453384737528815251478389122254672154629829162119388486190371655764910073874226301421023130703935724161078380053732967397966078979543779977574864436972056584393070590950150112568639945600154972212819949112666686571190538903350387306761861344180945731644291390678245962445011350781769232540539640599448243318250218496262596082087452906004960885063393096175175820715798784060918093394429760593868765449461328883234011686413553896371377551058315991427622494913215954601453995755117622376368133741353173499275420914725523576889707132187814553694452451266152180929434206187297713633960764597208185775904587757008976256125562444467017660634227102566824441275547030666622964050540551457107667126874882155281768915104147663379056053527285037951499169188616948211545226417151014057812462353432781480687920884690098571800890772960664319656329146071531510959607471428727944187890981931315002015799612268462538871324662269957936461580865359058228490714461974040114838554120781908140827473288644065369966852060971469813810345928191851309736216440566152265911377301290756640159922995058290858358341992663047164076773694003068080450958871380873049168781571154059726488947997176324675847723014197648949942390323432853846639614489476258865493896978229793728744041258153407782950481590407979190459920701598580406789376290958550238308634589815077285629868054266344972422542802121381849143826810341803786348845169977108675449412244819221798048823598181208223701614183235213689219516276439180033571884867753006919355146726114095087941305683749381327987075547082313243994895704252764720472677551555374784962504256556334013250095708275158058850316940474686608472132245505226861891651136571387429232157712298414160081377544094350118506278588767639704512617183732426024192385496353402207886327373473809870633971289840301054750190576565006112365876259597659674368415092378189462443567998688700271047767833643132841300244786183637005844284279305702712899981897326686902114161418622676109937002144140602118196254863609788931297276623244836213393125307842959650547387647932114278004672385485786566507200742100495168661818987724055008043885904071899922189487948146930673680143641015926946262739099733752679289251574822893884424787510468640165336939102001133595638433079506225904390771188294056807178946151865829916269821337161253607680237697526276823550148154858178935987044638737660578318340107202300830710321530777724449860505803816147161218774674300355167565197592525453395872869771073186945833300691460051713869552209175482854627244482172634377499132056652315290050402691952854827607083646192070563704143788152130697592282679316049707161827732764705964312797548977449446920568685466458281944423070043069898896964146267359499867090332462829631142233825742739651313005383063893004125153471657454360706343624517115359030478520584928635760472413135513493653702302970536767159696880987241743939835053089175244104969060026794364871849430598657737913355749227075391818944008681567814459632637883084556954840379195324021038851268771143176983855437613246427138138692640328427725302235301935686416596488489253056026490172377154353768203344422110527529988860457422230258662085508561769841968615045731521215166878543930423222334087351367464020878657992138357395691000386478235839591479026041224705673040757152768626710109365533370600260400745787471099619894441186707676720742356667775487846202876836915425477118626395213620325948473051963290633666223055067252644032412081615745941652775044158400348352533888163511153640168353571061899723385493075676040618962535095586146205684774782885499447042240465598912663408326945354637135943707803494800041684630626490581476091004524245633939614396450153295925923038451008105870334920054275072898860604854172326850748223968722974978472598425078752915747309622122527792573632602784324008396173926770400979645795799252197453387408166635278226208851904925914773232972782641182302943360727220694878190704794586484598094651767311634051014560191019035495804264985179599651586081109020620125886117436078865985548705246217734828696396291139470556861234384287226121194417515835615432529572887000860355126635347570298989365171821252628258356370586249564915547063235862838674231468382337853517557113034823086590282414799715332895761521650181516833852886284721809299840282171294433103143003255198250114771143060975312815205786106695398511871498997800171353901384457864949653894980007881437796860113429628417707682064096047940755355135936789703931399906709549028108251784244843392703526156931018842221160811233558226235889227424493007626231951578462477682492276021516554802062899368557066362559170848030777089038550217818619696873827585996083102942198059309012040842913584471406685374055244075794943991497909125028319324670189182600710551844968908124469961743191337753967841791680876838823703306481681601242992231137830180533642442244901847721048950171350249307263031205404669668580747017319368853468802466155906288028792283311194207655130856240306869267519757149699579482723857484914879195367596992402349329613223799935251573096806074976038577377963803580247490589743988782478796505091777805101099008119964053133736799367465064235830637361031648519093228081260801479745602508562289365572548491688205500820714106898049784268234183220122022010198973411949805173148029593784988229503542560830249484558585532384964243322375510555228747995446202259624378345218643821110958679924522359371983519503368610654977382181239740972945991765128533842906092065068934555543975378387084855870969103076904460430443332287730087406628483420409650284707008870275365955789791956852693791612910501025230636842277590154429417764782042304599105243310524544663218835203217455476956188093189786036938527171535917552844209864279127246317967787231193371266273297019516874467463468790602020147305968501344595196240880917391638239571755517185889663702987462604916200062811031004736377074008597619032442236416725051744721982626615139346605439512025614536763924144586172391834551595115228619935732596420574260579853901044797277558345088686152204883183451884824478315484190892464529892257383569796302984302103443678500040804786080386778860951572785590121282110250815630972422578595196878309694561665329534059537732634136417330785257813759755999020871660636629650014253173628607872387128487383077444412033630568874985668211742805188524645895441399183863216095528015263793264839165116958740851218754217690847409566062818585613096950048065986641527893087594832480602130153705709013303807998103964693403788577032650544099320293922928464242616903620444495098325289580201777545040107704960837531834797534782064115014512301733526318347597237157369967429293965572430946966873090116187927094086612911690070818749991489320022605837701282294617725367512381282151950233108627547421293905555978231936974544878650309058398534441301828549449166778409064837799874513485993564770154097742280330066563082212297341719993399134010871881621983209651808868612107092343224024735712274215147186239772660947378057119884981939833488395733305391328734649573616170028461940499495962618232129863773933908664905254929507979187057405763425003307301612955412361913710301304137389986977984170404463410522422167981197584166867170309039245860781531130198321843887029846973914467486836149057738911879091228346110101185407119419180041634778111861557511874758381448987403680801842876081397711077814470378266299568385166566948049457542800831942437580275180552571148134286186345232316939440659312744433349480455003183730384614373653140757630556741910033022990027486972146951452256148853469745575579711724547394630214687325706619934759620710093480229490645991485347474525228618244981535770570641207266580177915075906983807998707054302383821016540755216022701538415824846684241237991943180908548886987028273936078928577069802844425485374826943267889539622279381291588076853831062559067960523247846766841596260898406280837659359785301899546537653511986837902856920748320947556588165980412863227003256310452932373453965212545889215203336651437276540550352063637555802633042294314448282185070164242016361012903566401393763869057896091674552640027118770409189171036747019550049858248105142408267040917722713411970494247750582598987623819555782553848888935400651202591925959725608929282866445563318577675797171384189477917625537096564200194243545223258963768218505291859546831064617557895291678001912915246910916258112718672625740871624456102757692779398774157535162160843035030458349177079327624549304501387229097418929774022717538272896663839657802343812385504178042456133324768444992876756403422456450922343163190041134515522448270986906719055730838268924627757573120771236644919935855406621371994633685508433388316727683269311389613353914867082106479637803833891741835302758937035188568569271735093619804559010104468958176153508537270417417128273685633744771268293477823812835113497090298906935613963170714948510411845365454152571003881543627011375035705042898573117353266787699730870176949971009649415971658454655900740455448714484220296835423297073230561142657884392928060187513860206782106254909351115500945139690886713376107937332045891424733551486493832068474979920885805598462147087410251403290273233290920156383441531644973495669248959495964102095879399164670804283799215822273784570099157370618598036009932465366097414873246119315771504474169896196568387494387981766048467459026522975550457167547453817705405897647700941958813401797911456384270105422435779260341541638175677857420897923782471366966171508032330791774305782526242539051690389193633779021253720406899104276054035714681332557819654263574148974743181348424834408435411136000025923802123687718262354667499270197392583634539312928258633538338884300588769310738603020502897176957930054786948380540026578458155519421125267927779957825349391771405668855747960690767885749223489065504854776655636279532767921428283351763444632396940280031412163542322860892168084431535250230384691699130839673215032604029753426480578007949052318580524517239347869643158180607589466422307980368071934569322196228871372758539859038671739649632034621741982439811067148916412478770069932996730565843571055062660240192170675904088475649456381946125793771158468169084133178750918882683173404835804651179892274581777785956035785588976840999113407721255951847982386594914162147547136399091999239728511551946336351426871325750792833473833254407398497639290857453298817287909452316613487119846531604222438192336198662349702248067495249929058951162934582239785931796685200739462045816203709040310044918568138673339950286454338516564977313518545232987737019822958817131719420465800189261968001912375652087764632174102887785501217647637447250474850677820654195477633121690609956442931849375417833178108016012718593865485278211926610888324074281324094995047839227585339327603875342945081303541680915565495959270636619549927416013176191626487347707318964954750181941889817871083785637182829690383376639331453017914887676076117165215717586116863572096350407593611147144242043042115864377858084654714553060037130964826255321783368105345798825700799912447361722917530404981952434078841134106143533075633846961933635438499619420189197170718079122429735477026836857056047050173132896516468000954431612955161713337475186925878622856384760019154721551741611068227354921773754410093765034939682888000594124414330734044477103113929437042669173690686759903661617102371630590557914592455215214306085456796103454368743412168683390016906870390462427749108189686619343153771114062445291442205208672835372130473233835599567942490578747021406580669413527111272514832385199924008760379860766415932632426508017105023073496967758921099464056635455212407641087621790492627422947034666616312351149575991338844136866847735423070128836653769609491910156948544561723592082244813531434829211161556447213677859220305693806006340986334508660127814341894097114461466223313381937739171277595349179626603624618430431648777596696461090278494355313164594646750894568197885788124763497122404294706699324457558724570862007866418105579699244282353079487639272324443970009921119225559760623839916617747794141857457683296737527555651381489981326878871673849279878279684263731223644865609887662712046922626533929444770166180087098158993635271120403950406062216107072524945196730838145635789615274917691781625699533458356746612300178568290741285112736862705369210943816612765333571155674176738156621533947004443232056826371347715879626683649866806180501345978863433027535864655015452525119474144502206161949939734737256106950980663888464515122308489871012103448675812940761988479845221960303313277404215823633922843470217235380787964058349615853293730619722019318122125176320686907607542408042783152026786132108776173155333456419338053628851893046100165635123695543084612035696511084966665822341731092407587991254944155863632519857137371290579419779514482883007976356607962637303625283338527127405877437434733896617092418495533924674298255801117835889570652286698278981524693642723415250330084619397911633794313963568751888854527582436852376881553172348775135168380836776664610675609798156038899781961855641753357745420363236553373076433253666600022511708557178154961753887402520026343965898654388680241401869467660438690684629523673263329979457736551213786771929867498928991577242348090058985849827747260210236395703605553487025790754672879262335662546792463489045300701385102080766521391866909463233687051195399172389540550564428998680181768592932732853080702035257135320733194754745816956131981940137576150698385204590565460034414161326108240150014460456513622189052900171668260274839230814350490865314407704518371492554473414769311957603696911410940401556293707499309609025458465358906987821053374406236633776605983983325128173868175221997713786248884411449492116406652306579844273603050677644275118048017239889077300896625565834039825233424668479297985732301401490750254026834932110262807125778123151201854257944339756299816120207867234927729833003670004884661812504226800450486934223889237016388651795102634201282739397170928811803869422866574506940704118893518672406654971551211108218514996977770022205021558286650552676161777490710332813631721135398231264575594449160259282605481406978519731436306123940634529416517845531658800913540527143691122007957289561083145018455692391054935228143261487143022319525120211634231724029372989413919089040535229047150500955351028571499972109196883088719088816993696725684800994394204213382316228659461993615861717816263806769117335259434731241047314555997446203721172370672711950060996412749274701199843043248036837401622172053106335994825371002008310610395888928374003238776339061272192520173782810626315129669399339036213135151776253129651713813310561629595832040974042514757409718398283093846219095936404877094808141163430562984206681200042280377640238445037350788324134663034028377882252669849924612368918335474121634601438713754539561979048660531853216659484352077806468558459423738771956618834978921980897973175190013615319256427341050260137728252646004253390831078427948626266285989607889647083026993614547655278678043205595759179232919819891682698701847010949811958261767693797435183627782142214533915913717669878388464462859037511928360890711104029613793584703540631834935413950892508766584876076390008195881823208037648292171880899432737321597828780075968349430508663578286127045659166791031553070678407915049868685802322901741553339659982874228833307640275167354877659044982130326154416014148499690652776230930250632283643192747662123146488080315252942654188924613229990400274612029491999509095555524779458890975132714523525760971930350192456786450761949732016260307523327063950434424944074934992907721749255342038109899949715929881252122721795235884859769780530421613304897694438112037896407639309091675860765970161646618588745107549519196250440310318250714547868032071832223103137744533540761769696004043939524776110224903356706347737759198506576806214101035457992986356012406884666118605258638918217879978560315363881149151649435741740816502515106337974505650890342343426465724338013003095778643794226037019211735356721353221074124036241324416438684756949209095702008694585627324063236447001314035407122646530675040750790174862127824266927537180742954943625275055427128001191936457551329121920570505435860581914775446691781582869345697085826585873419693272874217443017376682290083831517230267274614795873792529759576750293046478387614517609258235370554391728892840596797584221550557984065481588466692785069916537185149743248302612653258356025564920422524628957838121345532651626137918741531985938266185109694870167701740896272860655969081923313968426754273932930888087536612767082779602467684306589649367533928348265182482853069905514832291978085610602233652641931683472566871146556793778759676217501174585458010562469876512197025329158335937055585435101274189859536621610164964323553301863343470228697388697709375408480899267527966661151772315563362934565037151973655582859013944846291290068471602992353774194919521912087525742382548766811887389110109026550599020948299280987223132531471117735542006531458984474187608483921170464436471038586990868424848501299488309975140817339171556495605933689734763040244071590443284641231519198729933938021291412481978651251218183237197504440586154200884855807785461752085994033289283685415076016270317115506649320807570268953202857184318189478360110552368146865873858871312888222056287412433631753574347045058697615250208842828222934304220835623382927895230516936223875611203160958476631921717834642441873787149096555660602162488409337545603383903278009542026624331582633309482555241428074836963335459361852928822683901048485065951524342526624234952013774634417661956951694545342706264490029342592766736077153637430346271731878559508400261058161275651650001256654003880088128332010723001399009837283905753361574619647454145430233221166297777995165368668534170531873986512641216483594298878003212542998489034928137641098209849932145298704281548725542235864816046022861629343954451228864157089693640173852927331232008044907557141169398529639708516845663331922061856078133695883970798299561276652430714088600389644990275488821987515195835941733082073722335149025220705853862758368452278489759372077651678586547633247885909429239325407188989065613024263004319812776755666235017236952424902543175481009807152943803600729802077240207933644462511353287812666107157780717072098724241826902507034104065247914450127483576826667423975749604814133931236340491060703769748734358261431715197361972666515898235265703087204203414533442413339932398452707226653059258934734754274035491381715768329380846526055509024375658125506149635533049521318767274342022847338036936974040172470373089312525671911529976733589153166655860038538174741055257920498487195497707501051632008797492591379096589940815515526127717585881439282294828541166668690671307741730458566149590443041046598721092620252389817270023263799502454936126917316249296701726016848479852336713972899294203233039573412910757294863404641047514469661564816599098116512258696851035342762665699292414863916681486262154411682831911044591984425849644094038137874407363887905289340415329905252115973554484098671805626189389357616369334637584036351109703548377318913448085066371890378731822462471889302002232277023359818868923377391420992230631479465312050870192233759485201212496965129757162958501143089018930970102237630431634603233482644291362251629473664339441607078509687415749345569833378918264617493661530127941617977803154514500077187939296197485016421450016752869445928236362748184726826418960936293919629559482010599686073366386552510587811602463064906394069703506147255405953094239279775469753157335210327877012560474127941203782611082667864567715746542927017688508593756029764047653446668447770109840762199785709004076317956264966650426483192973570519162037204792876098860443299019411673144588525305759963010514555220588023621940992366013943522795968366332504374576551794534049988599888813561498802709255018588772407728215628926134935412962910875042181850002873873147202156230765269050163792395178130642995078702164155355953518468120187263637986913164433869154472439329582206575309378251359595829109050552651084871689769187436066823717058637640260120351249847156095476518050595732604310295925175977955973960863819103868833721179472343106342749602954526873621514843189540633529908913988325226102418496411452784540965761887322270180347238348605898137056591717204787343120070925104976935045430629953500458055195963389222108539308973688395657753703614447925838540227836758260717567013493040616237523486514916066681559354404594127842952350306027716567379231929773104755595678046923882339960242470574520144339410044269573754135007080841277807736640533277440866616770072989363476393816574563131956471193323863034464223461112614936774496666698747649282633523314779148215476095090493737468906383015474200768938594406103014555898940969010419715855177763444765390198366958469419435259243051990236416134765765366486192882601659335406567513007042851254291067294774652813286872219400594516029764933058393767545568652612106610228010222630996646773099103170163745752678201806258456089226246195142800984165126992325904149849086708016584789705355164585309851919625450847010000422792239000377793025228258161577136217250167948194928138461634358778316386787149975753723465043684959368793291531604879657955569303471315077400231975514718362289817850008764583882402202315014578493170708351695530568595958013711070787073208220799895547940502440057766836016514218147585013194200805072001774233716844203120726786739511783924316697256668044904185189747149741855456280383871582435110586798118147700913896254711587767782265349058309362666048011789273437956494522600882904718903648685459493411818487617533008661129032610980312301522448131050149628862419828035906298012781998413496305700722742769079991913864429491178773139391198084075887935027692079393904708309578083990803089652711397161955905793512306753245344851528055083926511007888557651861304559845700669004950111455956343830940806777255947301578978686375518869493577502274227968879927272002500443732143981470576745929056934358624518496961315800594150866279713167323748172615976199577535496767998273177521378996245406441276635463037595444397134792038092995549922350193054000933505542475312343808456600824727478709004967006867086183358435179534960515393651466746237580450152309832827343553513886936433549636601191608615736552559073706772869197947830317918374685822201137641316200065546355204397165217423379824551304403394870933124272738629376880865683323961580518818088564753230162085353570135294228404816772520058674044476576223459719834464159661154002686918129017853838561459279764515199474241688045481881525143121306999216324846818914102631337235361441692263948049941161522595774287350147000848867134655585039802035520254100519955122026937532491186006897710207819644498392447502962884103633798908510250559826491510443657582799662080900560617928792304379928460968786349724943709377415760419602139336950822060102515130858778636135054847753526382477561601408395584015583110227791448008298232713149187386207760088685479095604303403315962104755761790712093665991803670920339666646467096965782284280055516679659938503021051740157625259539873337779637435055036329835835942511004381340362992022651345614814879685434882746373434721220238860384979842638020248413958863892238399214765329020683172789039448099885648354843482808566426718464347252784569732584627829227181306871584856668285935829777318013315271607079380259126542165899501458847748784867339142186326183155573665447150680931468350293291091741462683215236475342672827822143364640041607478026268943839709879069460703036432894044315912581507877029471322327608959118882414112823929858407921198684633023281214065815096951904552849373396251830808598755723659883632365609937536666002738987149197759816600648412914486093562330418065586459906560843723449463033045759730190589679390762313563464458232940358743117348295685920477496055255562706402902784371854786750787691027362804431988284525981378161245481566075969126134868447229784313383695385144035743825543862409691263711682049303986385342512839300336835654910833404268629163148640745089170095191855934006225504238367374067967662477637888427869900129475304948110884094555831123502917328391506958733754772280175488740718332521078197374007226875571008972912488043115558671819440847172716973785375943221198878019511613391751195248646017898551199857911733487871806105462068996479949135313560952045385025464205812497585107579623758331083249284826873614907712653616839282073622545840039074004325779952226542009678361683385355193810706795019512773252480149905869941592849011823243479541567800989201088615118148433294067637291265114174924951992120598719877142517711137805848268710672638594443359190736758039223049726830697678772526972812256826863910260509109810550317345470535379954553659615932517445083840875070082769122157451537745563712186722694953664056734141182785923784415546542993673573828460650370019229877341894939163222206065158691941025239051949160676654154871480828873035768977813285029305194101457973064966706294903788244739341376556720122214431241953071286313138101554378658584209795345539656142839914733396895440429196412429309798993077599742289623251427141564932037732002539670553835671604615253111196434473390722279588025264892649739337908611069063420823123980765262104103320547003122109508709471475916365665075995010415358500116246462869657129830757547663784444712583356356019631386517377775139922034930349429894692919493445339591770435166178604708679839438472750958147754626278400874320688138455532673417076159977073431068483371172919461861977965798791347979475321137816565422745586462075533916447899824845749503025338027533008219934341348299069367804146639663847069566831575360543999205870841110379466943118800705794450429943182117788804630097056528505508290463589299100006683468802560914003548218212108607900105085793025119689998754227338676651591343115196284564472421701549104959672116346780096737182419789262603386720207235706809555492359449687092944906937350160640668126634692239844557231325900043402548621348165179045054336558537379400449220318761711517582482670896730519575027756455487360491304775638602778307784581707879972464757223688193958299120668267337087626590100483529284774825145580099593709005920831381929777980679404873699600744303152339442288205979601241660599136989517794029119385932366986301878451527854915643009232964405122011335409006909462641165516794334433936282897202321346521541496131962865629168009183025931695153795402277301758689663414441443473730014041829985570819066023616701202945045653027985081857805275117586172593648290173832103029822200370678267051763355677078936040932922282952942097808036978555647602203406665893662255432243855456455265486032374754848099740398092571199865225158227793547195353619466738310811171373582754553014787676652866044501855938915764002015176124448785107295208227199198776751506070902276037703375736752222843374405926650053370776965412690965450456193631668069419456950500265385706741045238321592520899480985111062647258379246450652902846194230144966426794202374945116737411693378816634855545423619353097341565481520781975134267739263719642883821357559153198965177106893708508218816437803612051342204119395507375625541309092496800232454313971651602391115754796055216792988382291491166850149540451986751897490542351288293802154005717746277528999165288101327804348196970485762696581025585302281649566378821704974754193455140751288991055943128949939788928253966008340459557325990352994988648929870392084894779572181000196358300262158115356458575393804890479085181405529010429066282699530034396645389375171661405225839639741776617637069905258862885809128557153397519093549684076785704419193355722065896384512867234182292907435323699621713944189285774257632250580430809446088785751468705636200677927398577039065784336412047147993640535741019583425312681265132509316468083009150251672243570535343157727066991606214783498619049505973259342962936799658787978573020470163060037126227407301744189197745800097438153264564242053811124223762868314083235678293735050706662283418413079397125021359163462516833024372522614752977458573043217294174160454549371314156945805906017456779635465806228028193564138780516535356098489581699645999068162045478282547021879698620567924340478742247699307772766027898576581731019624379675602650044527600023646176716868663245740726772138300005953609665525584620013608165610710596509804793125968495202029362573959268830347994933538291583449263285849157562478114938223283541439131773939867590060401866776349267687922260440659329864472371249897362606814615758614095158729045472419394883800071462386648782299661115468108198245132251830857692026648660687823547810748129351374083863905340569418246181255990507778196817224241092709695731356884442850948468392946889347303976062175293997376645788448653015563094338286792858440902172178729021025584746510002387706450635030838227926402459133637122041614752976770116524499270144988472956719612956208904793020898227533070885409466088912630726378284700150456743141613325739299553426048292539912144548041827013850756719201441253004925150714307798576029823936316331192149983176024535119128752701326620956140969127652242992549404267557628464915499743446849097796757128623216043116467107014521473929357595097471342116602815325651980191949234027996499617456044958519724200159794321278813151511087169282106614497987790701347506386584047100912562102013938540199347415753489312033184921807109112447324800829365486609070794487291671791704528155922323850753835226849035974709505746547059424238485640020652518574094851926963114937742365451443665862262816256313524566998284870867541081412702868626253607711095544980084841712672646888531505272323845186688094598944254921812278960891630442700074326375022044861886606784273194407859657714767524049958759480481537830387522374327718576938268179318259844542427896320454403800951200203571016465238729530931441772313884333501873078405574397193281421885449000162557177521525133517180830402779124959631949335036952767773171008671230111235425164289752373181661664187300420587312341251984132657114671472908815332511794175318347047284024354358606201648122062020546622151274181235424192267534323124034280591603360904711860060185999965199699304261498374833859025726565914006447808050803136622139206272255931767549711176761732855970498875075836401036972946913522127242232950487660182916962608570050699591312536545586314602025980330582122614995111850627557170299168831989806875015688605592424866463717595270531426143461220954769597910460474506048544471236474192167702773550733835336588871430354178542143799242403250747751794960760657322176187138781961665198633370430741111374779689238386423574181272779154790572444780216484975296892123011178981303456319029119980113525095706722805487374664562345560091723694856942820407989672554536215110557016875758967180984430204830715163141978515220233821158332929424136477952928075150608632042563782696858780215019017917739159893344748283214216230250246745594307158349339099568830683727044916618556430525208882007759425212848166967958305387621528036598164599260232070733705760851383441516224855677846645254925453554759993038337758628065592892031942237455497265318976481223224198040568561847089593159842336499848923684920500861748626536268058349440400196296491936779323494290651862145031357763765289084725094152042773427237228089406854444040462224199036685468049254920307762251217107545496368617294983666088737141631242294227589534600097332191967520225374791275524306138883276675013707970317199109514665438137106876123797503803626116025955576310036491602105440944929365252484771288719092114292705722587691206575349589007950162878079633555956338556960448353662746094366683371766339579273363673127724201256528647820857126908787785698953391094990487641921507026047678058495615478322345457555778332124222763774761125221238701632490661194844252574134109744698388990618475096196312641695480112013015631132689809248980651770076599152204040903589491019468720920139684604591383212282165720762717648400577997116979089936806223530825731292787043048327185456265315062832088042849958889253434526899098966199276136226407781892887590600911475486847538557583595108104387943485049325016318419865182361236178201429821003112245965844685899223579307317167354255268826833598870537819094854203920732718986705585455213005768780353734643558861838747781933256523418406533382735679991414525870034306396854600658320602134613266174746734779842192119540876818220406251698496295461529132883170165365352310398193990563652583231015913923410248899789979109819615152552029634169264728283530219758339896433516766870939886333363907825487830825226061947269455782879911931267514000095674631914775342269433173075641099911958010413589097099113594636813967769922964108001138176233430830282574534377990320272891105207649568053767399393143835514430973923696903311610439877010968599539311202467758062796593097053955598925479139813128407741877705208221284453222832530293993149210098855471399333609926522290439668114165787652346963022981534916834262816252794874399589395157352383901963662838010594759350746449999304416155719550117748142543159069206772657935949075623705583026735865422893927643248503158100146959783551289424940457988179475419484907194256877742321456679662839619878414343887632225780556086179195549935336829029903062149747048844990126430185417433664438237046937289435671893481470727108642655306006760974177023495763166151723891042138213615890315982677604974138842536078998592483312213238835043547380299057468746874859221529732402078158777514737802947298264720737766715276152462579197214284213717767030428098410742552296917900271629794729628377212130050368454853928673521333323055741953952576503784802482667277682959474645114513142275423306867311478953349453777836060014908014888759404100401755271024673233586423083289426259032573210913244054710977298368356326213889379513538024868946649615287225350432189058107777260588100824167740686573007276677400448991882814930784282928367955981948941944019479800940071845780102688267749437793312524454105941567094954753788564922899838175947836936723958760731405231914299776702137579818992159289633097315996389264409090019985367303051960315818897113136217014710556809178822524445876613106411082752057729300074507926846061581813652918227069996743838366945740877772768823405259662729539668782472653012822088087679937319182354133946038593942153012231701398006976267250957916112881187403237342925983706653797599921801102490736380032984449596048053047217927374503942681298564839011424643500569868185945071761901142012791548775588913051334134678837064622541217647296809424737809981232031810247055173596209543934502437764082709735282293080346171641139959438494430235815107753195953093092448498392289603507982567300113873127304468982103189886652062103153630552422490760984017399057890539973888859318198804606097703467748628001981759296825975520716356911283840281736311814290646506446712562432812375673201349247137669274700975610779144706253005702580961238710755893689872317727258495005738049818032940970097424901908666663349059059784326119886940416687806453209849696083742788251586249687143433583415227992915617640425260361145155982338806375608587685500887513461380418170754472793564452455758780438206939164026071365338417419810607200902464854460741387809896710342970587258950237724448105101315717994483560174149428542850582463382942807488803149636880716906227421397325516008321849597219869292065555753121720283898630269138741430806403349139953352145046111932330719674859677480967557582556220444411407628985653475866061641777771900716460676641627859385930763879393570747082896667801422817008596565472271504642548112652350194398678281579542043015073586346522719488362803447481960778854441350030426142749519049960145868631957866036714028333378925905866987988482573298377077010488315604733411043732169854778026688275672104666578277544163564566330922614811721116398946912958805602731961555965261598294067950121384081654524491694918369776445271781006423378794902267872806682585054831144853336359934927612370826184161765003870583796804979417096631715986968204359030885912071325085829647320039684785255166601572011188605990967639979877482152992631715307782686534122123396526276997988101186173731153108501832948672360928591817602691367182222175215077505782212523673254780706616746772452944785625387390666868552405304773683760630816702575898798025823185944190491107565669172290974222580955592269300447373275263000067827874429061879800792286020601640213162396675038233362416810717277481918924092476550290265466276354032165009219538477408561388145466957140662273008224114538390815712605744401628658196772726563430029159290125933040017387673061927654266562795250802800022013834481282246704408450217134228238369285693166138593864413838730481438239421591261187622356844860820146736766177847805284996854102032642115117146128108023820120414863748794562264869261739384876070073577089256602292625287181094481989395545359023852781601072228537710869647777752032267711005084091129515223259610837595588516845075623490881773257163863108748675016742387696738989118433531508998979016944347193174101694069178294453833651216586678704559910044263433910722117054101851113304579494406743558293075904842059435757964329070393534234214716270181816891682075345744755161950309837035102844540620461514059818643923745007239489420047819408049535166243051018028722716814300787937013496955653490552806661564716274378686264715973152166596758073775340336796680644954161837845787090907267952201137261196044663784839117583375400173850165985138764158597589996119487727316531031910649164564303904433124326746286719915106779417188108266825860398476395483413761352938496195342203668298269813075097160195325592382349918294252768047000810803074281261886720265428025269567132428142036079392435092770038174656699489157599787034851905146913292698808610026390108067013995702442404004724462952336217131417405449904799648975959583627850812903732830076180490877387090295243211366852855044388600504402197284502421628697212039220632267920658746148086563624159810651225681543051865743317658316819862547911782460628127455322395151828680630586195461771171446029927406712734184416044876777077556323941751247434872800463079834922453109375686030423042017465179936939543626041170217019740500235661977700893794496279021220920460793408559465038930524166182829190110693647920254417253091456998017049311316535665569128670079611813848645778949264052986435474028159344870807742687953351178840048687984177900107591530180019750511319476801623686525886091508145171784649216474753567798035725882163348525633549785687652207777312346573398009981720907903132793605197082595416801037099410828041606328408968061905288331431076457450531282635742600734329436440782964393198624890495015407077660884711750024211038327288460651556157356116330834767317197307122731188651763123435690925618629830012780869108420054628532222455131880870255803575716243993051656740773786326252783366526021946372732471343991777372240891105681348833500964288212332110790481410398304701114525678852136597737081431471316927599138128083006601814315921901015171064395619640725582167393271306674232777190969060027174069493741805554493361084961130944375351022723056154500461099946371663700885571029799800600097238035304702822351024429208564594442576704821165481277591932641614345021159783888790062593343424490079550891444011728647509388364059047238905736063443742560772798342974369356752972471150697876553717973356727829984253212836915049239685825818870629265470833216671394962626461586078918988412225534151943624332628934297945943854229967523175812267509484978446253115411089782728698700385363526884297748654746713679067247187753762678552618887736114749132923226327819453416703689441386670849340208561901215905635580718853046877292220975419793570941967341933273277427512948204087764847139699364824133322072963515366369102176061706758848463210909122391078416425062931935729038957841869548594870535359848182518934792945356001769833662411282222449752759841885749192530507878943153471695974127198196239238257371689726941904315313384289758025992035310213737811297812484298336197382771246780981904960110307566439342085082226509126874904108493718618681159668701377873229032426257371126899459757857663365197600552821563579852087571971464979969692016331437303073418959033494977414018739813679784467118101912528605053107970514904534010887095277385100012000383000602850781469236936460494105124882819610961284002005633001949959852263679054008636985313717587753689431916591876613163619352550807231236104443479615043691942091330007978991272931660628060878420877093824642498576933224802372134035671589778142888106666268147648658029533981330631618843605384648585095925559469879147452745176692217905427995245806395838305631829238871248946693026520509400110717110534264530889652313924326776523330786484309371481606816234303903201318963912926950530190794422561099079968491632066223985433587319389238316413266595082018646890446422047257934443791097912070999265232168839295214938726717680251002355480995680740102914470013526393066372947201453479177400595003338488590979933606462424858234768331488325502624251712928963625662518176769848018324291780177949821786097942186024586613105532543540109215292441181731885642058081388404294187167210611851232523816631436571745500898501951403251231644184642141755069954764800538211392260960974512864398411241064416761826987220689015711198884232751592459943946081906357214927332599929164322972912246370025619883200623974773574872541792599569775500217168065441296507793616178373941610076634816699546253464718782542200636875824883374523094694398306781597614797545478800843985375652943958645598711588003739937337675276989117262195596356620654765984898682932068531789882556953746579895078781208477794147793700124356611072748503415221373156926273879479083447693601992420793568677268446553419720934388766310542442301786610411457856703523777653654711085565668181178131656534534517759949452150481910630529668189338370626593997680264053430897405981163022175781142727007097864814977569242007912576471500130271856012337867581409451241767121457016233952770586392599385011309612779514105524284464080335134914112592296637980144564194430188646733293843489115497220697498223861786223267540280813831196721321262497310720380037734384965850512944125175326925076064335131201923474537211871094108588966936038025247217848609907016358381437098801472977974017907055882881932817232812292914570742345953361828534502570374338924675378857737942087457431656707769085651416397303179562476259012127366979869618294641612838059510885708893229517170716484888398944740764428629792555628835308375615482150485131709027651534098003352447710046487990749448142870153092030425654107345003875918213615424720146490402246455879616757299152527106652845602114559175148580245222831866765146848245183227503226137602020001039011371718566214788047544631460088150486717021091830906305236280123068872535383478003662578160893023707922442084228683199631284867735149123702121040670395937639173714982648673183217888680137914237980504841153305003916771072016344990149710767388729852140103225225009647671340767215538357393810365246979760324920184177632829982783697056773603258854489149861932276983924416709724394689990287184111610823174156847210335768316159708687756291452879061688978793811508189277175640072412390107112228382500806639637293291588254370343470437186797922429221475384298457506770804826710223976360266635838108005812457283790815263580879470743291294636417183906919622756076030201494545499170176501815347543364317944414877797272499670504521645980074646412134525768297161348158064987139194316971901963982177350607550174036461762798139566159326695792517325603431216106833393725192009692227034248045844467354138950399833610934428617999808224561155946545133306731856242274596982856154242980637934366431568820503305907650339359369004751991220712281961675853810999629498268105683442686962153307608280667177059909978010481234663373692951813759242832867890148536178430824571578783052392763536207372892511628547566657962495182118797243778811122123967764154881190067005067618857852430255784068401660601499643241300659474295981824170171273189400396437648239243639350010030633490061516652177751652868167799388889447254891737372977935744996906074024553948258987391094799075503226019584965515055950522182140669757869223200204599594506881617116935320194078042291926858277331254355719795146173487365492244731381062673350798618498754193576803717300097698077845352027129943974884439861514952137568114472124295953428475921306825252985239222197661108200246395516909730939174078477811710268087121053403232837726893481003088819945994324323645509168261508449737621725353150027753675845480034241264773880475834406469674785979997069255410102458216610628979712982597019050845958212103464525489791303752930907993726070266545128837305312385979278671630765564918083103160977799332273750971608574686368623203801445091176677587613378330072945064102123418326367529697255334890342393118670045937299689187941575205338658751340720269835048968223832125354199145658593719657600812950505879862073442063729564553022327283811011467685151061127529607713012421408429710531861017038612237981042179923901900131074112484780910672731987977867848703190628305271887929484592700174653188049813824963678029616286370513522191060489916567859496421313111008485981834734883564049128792532219159914203534274099825391795556653211561259692346643830087984018073099098121789577869307649318457376624544247363214014490773367398044806875644271686057864843101618741897713906504400375664668464265063787812661927309348507284312347205423218480385409646705841662355331082616295168353764871327222106502320473314055838895931610666038191903036350753655362598138005407729374969037476262933843241702664471449240826602370254215495448814967347276114493406996113135242656825987918432148920534855805905209232734912516681169656499891970296263560677708697157829027335702215682188693707924303663064993015767961406572392735856140332247245405895056577906511156708190129594544532200800909539864291442388131157702386397952067464968571074120988373503560713985821049902367565515613718355869640637446922877619050938826135932037875225558342360573233983244805752890876602691916465125210721493953827123195527582137502012196216821109675350502250019000886908160560820226961830295605691367519876488058729153698503838585153019111655062309300415791206032442175617649430426022612489906569584573421459640975962518586759509771687300189330779011848037026419989017202026906008496521924777722726729481732571965506324087753811306787403460973350200162454410676214251396247926785861931444859504416495895672587497377870938033398064168116427711899901723282153593925074099434601433687241781874438644954686270457835268223711506773049798507127279394530210304593986741397190831947022135799796792537323174646381295443763864411342974636256830095441447528445414019295332644052242711083208633686479708110324666893095946385893858128914999828921811075123101908910545686373889794035642494926513198391711733768930333206696007431376644361090209963366381793152196449960228399333606171788558905876552808848794435957700419261090386471966256914737409772487303937825354970843549076245450973663452036934524804638543284207885484968909232975412190657833632618333718823340121836113010115719042205875014368417177056084488348228242205129122468990102186275580438895505540459067771213269270927599472363391012213021597662267003499650911466497230093249407930042776449764958688640692786919849070567552683603652665625107471484888207532565722521688646654833036025583244741153761400014901806211548145995958101848644493544577667522055776436060520415659255221263679196477617214888964181107117406591053123819181772647712531285139483745464842605169668394912182696755521725439304939322703318284386817101629604656799762707508228560430842509344797714373165830889994823253809952442759873997210096696423615532397923525198660917890541973934508854493265595311848178250481197783910875403229857165643163413670798298014190443692565102833722514966587130067052683201893493440623040869115755970445441819873748967726530781940303768550630535130924026677574024939983347453287130075493697041862481257797310543394896941964679969217759444472125597693171191448848627557712914999443187939827172962560035247328046216850431497529525861712832992043242053853822067010098835069228465893884079812350192558003733880252211180369510358419602546353720102571589442474129646007947676268380643048138408999717762094932877704001181557262185447272178515565834669066452501933991209555307164670805073781294303486769424892807351094373417121080351686262845595458516678282472190359820393624593980702648112132089849941483980732430804261730474908155364521375523686284264998732469914549930829681487924924090896388316839864611966875183178657623656263140778621651722474454797615957750798654518205628963911294071624752091530698190448677720131041089832688261699564382111967908555815891257050548691120152332549749242902570256001564914870614499185893954771582056187367202959775596525449508652950338211396624626962650717399616772929856334230765510685728902565198897185353348156183398118024241078247861435928088898090810899953029347738763172266683372468383555147139103765685344845180015179288178536505598240032720339043936276417311837751005882503043539328097804681829214475965428729342711758445555710157259442902238939559809617919606734364871192026870074235215117769390928812420369663796925525492753011244376114575620367817759604486237786436761774984200449625743619053675222992454511648708083088630307662455357819779762296244300079933702652357737020825189662310557842359217377982520180512964454028680120896804793152417091753279986188869464188546671307111290182570772151204117761241147736795197767342279269308960686438277072621661952932055284256686864836896035317995515669712810861105475607100612157246807304156887570290272061316908876028087808901381695170493254467465165358770694302909378255109943231902886348764880440136907813125119452469287280752939860127054622483519729333854346375375453967697535986169643580717859486879444401596879114617038797259006736520689496979265995297558075885062026995010509497540939277630167014661314472210200594019298426348010616067425821843592414381031994940474752696983778384844030274563009510521548725804901023595796544729484087043403970147734840633352111641995054349004519273330440483209961691290234076704838877371873363668625137950313615887040121959556094227728727350708704872597368297022797702372998163046386075409729916355523241116178685023949508004824722591018839734039690875127313715043368008117769636193478693975668473486513552451845318854408978983932696260450624250970672598001802291130915271777077410266387273969115867821235553717792270326367333106047024951955580420416650998998375516558348493399027669022360522683638636679970446872004428590389114483353650784690455969995042857995912295080436175564550186259641820787882611898190049152401626588176103796292529726133141369963686600101980016085360954266631243099851776218989632667546172500946792085314739924147159452383034995999203848774233954494035431504514225213332636636664634737233136821285668536821211348207836346878798230017493297020850372330141404797062512996815805689316584405053724440608875222419468585531185461641867793276723521624794166147418222406745774399738794395751814899733659721684125072503800234669837391810403166280832534384441585941518735919708933841795423061315367312708221867339482632577362856052842915669073957914514693922870664114298028390492449440354072828478858162581425700124993496916436961123218703919445569673761603583822717801253656746117633211302497201886989500077770407432199492874475893877618445720999203366117793312751962469008821342203691528010378775547742130828000988353887288880938195017812630553048957810534199261762227397975348946288147546694044143075354078868132049105413577259624179031440306662954168419280748728916413109425554784081019786429757490325778587887522714494415039089243056524142644800925801095672391245445674045967492770139022391206554047552604775567849313334325093443179805994466022788205920343501513176460496888325313845781430670200621379914534843131097490918379761543710989639338111060833694422645982602425159206096768382614902255270110569678532011569037603420473684428906471908572460116784735598820887945838706113846381884704671252175184619563878317562324726835751857354461285635828614432570001649537749553754297531997034802379329030237863959063001524637794500796374971114879381592029464730304068209275856846266786107123202940710048976511764267038830197760666047171277123473295848933322932311895778503426182100536099179588416630614576156862719478041288234132602819955482856706079040998848935178571456909257297539810597446565917211304448887639936750405913199647838201998135869544694030682885827009213416575077127027905833450128261080880493276297859763327595079462639530943538327266109438009764666197295636894790512400378546722319496997846617884544509742406998931849194121889162133863239271742628686228312903883740696389541635551450851802716690629657512424617212893803995571437932050553775606309490977881801085862831248912335853080779941947825954128118023909184991427505108360124853266323241521150576637184599949022617300225415814462675123727561772068160017625190433191499808267101854687261020649655865017341043331590246983087139355817344493059854436485302126314414125127662130248708371513875322050404081537226874347586367846517523326647743382907976935932751097613259810134471380224691093845843032815997264064677325960213133172978320242577939722291166668538902014078876401221201828368892671714314602186346099544128056339366627881530082406356693827973907140814780167613354890589527222862531697339143146828462645422082058656790391991544929910840369166182948205184668898404299743913108927048823454171059868930070595909455399927696763951732311714102577149137741329722797658908747886170358858024382386873602117570316006711993636288134692561231392842809440512557501685917153200684060418660209182541839328753020996803723976230272715612204471114278690602569718775605391562016545533883649609347272049641530854934156489855320745751846885398619008734290212387783105015185315539665647583619399171060941228117497200076523216597351808440130852184911653758643308222678207350538420401455646707252351812791342920119988491986480802629079788369332995758710021784701262031951282018214683332883017455281589589918070547584325710919744053734548501818799671888932940335151171538530867000653830394440565613831005067710876596975859451292980153653321841065946585992823857900877617007353207687008771905050356933638425037345573304979143359341912121870090867196058625275167640067610158541603545863882598974143957063501142490431722314238442687026866634980024862773878583363814308795431009399383351147190139016652313936378212653320375301127395007976724064695449520483592882921492094941454668660699924931982084512269454388988672602452652375880509909199047936656984765772945583652153542630492511544298332873857143579722054101486294119031784601077097092960977684519657955723196466017121660885107485973049531888663303776551567529341397759555092190797701306306259512262448927452592227875939558868585145252786705251892084404074613280002467761075684644367908361335683802245112301821943119976646078568941083909691675730710830895371297720583589956285257143416211950615295172702643749861267851268955601177687926883245683614549182694662259516443407427758818470661574688257474376936191357300816858303368282990586721264491714340539787839308908277610791630160980317002792351541487754777469711546998871314575178046893836840648608625418308559820789318847181380203122370728184243318515197162642213210805997852435173190695530071658805254621939601260450476829270881958088672819700235658358780065488156483558768525817498217322625447578180961999290196105554674897168527906010343884250170281169491812684993203800626057294164067956589370447236626746088089830269958752826487805295549448441319729652026112820963342859735095247740364770322144309301854102723962614614326945364633511957738463981528969224475899960647675484076444825817943444545300289806607806945220804496258786717047661684489733832717362152684952221322698711564936929942162985174579583213552587289031940465833617592686275620245445808731211085173193810770257094496965353292964987113087335746274764243296338668509786715951008731848752423124491885861556427066704696138985269632409229847826775952364906655291714960575066421715135845876290639380830016153222006471363682568565153082466562580429587788952047341172769114008717369384625233277997185095451617891310257456215094461390520994450498002545901815998033575735407124109444391896844547171294885725888754335594449081685914891667213146697826964302597785614417114473262137349876785901443651257047050761121854270515435544048477711641392434695068050514212646047436910056456191893704190099721886436772989337583670323563680222489451690631544917354608669636982015520096377825710050512615318058671619247550852004954853589043179785935598501529318383868555836380456542811477857852513240636186166672337140944851137325006348083186267796284593829969529261540510695284815394560030607940351952650329395315132635185030163145447822722777106581963034349386978068480208991855361459807176549353889670900272863922798653471871306539679694278823008297688137993333571761357081934582396506833611683750519154058265879318801843093889822279096562378571720241245552416788532776753483158617175399101088976510422923971070150076401953515591692529869326388094872451021770821305277387587971396934983152762750446310296634653190048093119291150763657462543485649821128818425079778568450157667564683506491443004245126944576967102112112599369538275881971976697123018785526249621336695398468176084416426437492042159993137279307892736284879919857724329566965504679601365672924365845348549649713295114559239713358887047378032875878976396377287893399853954366782628653502040464437359014204193606746387512994977489483610438452135528390780944557269511814097008541919633807356896297435945187072005683334430208514260739373379016626551177676802521850034571519332406217077263682328580559837021651085558555137169359961375319756541776690047317321184785245739495825083067652440904843557073573064747916584747825761133368397351592253893248114688702370921116468807701068950428440977666627940989007895964166345547566389481372339986919910631543406993496518166240998501317677133304833927659783581289589150062959075282190087206420534443278705099517736740509545113613023191248658186106078784401243542745644177955221804047750312267315128253063227825815633724665963066056553213344001969877891016807156763911800183726482696826288020795578087200647689762951601071887233914386429543375735644508493121475613777145618908926402371395249059893181492159280627515816414098166601542749621528085274417028992911070792964003282249932925076479026253302789238543826320788230687733726350654741411848751333835294954132260861562482529028625814697835816860530563638733017112072906957264970584750860234843633968123538359847609445639790961963589121367568515004432467429990851225161454614897565895135806174500094804907840816443613510541645808140982256534413266145520600887619108550646595594992722938784491204243826397406872655045504147520290644193438842084781650436061625906004181051759774570277552969893701548028043996175336260293085988483312582506020869930062796920144582830808736952263268981544090120861780882635160225615932395522061480190144255003838652604313770575212920639315430738350751141906368329519784964374516297030874504540080465265259980989235644908666632166209049769479094247828787238396798572305489664952679311054103635173852551464054907559527666979438823962375210676453613815445996720890325054805605612065791191784404335471907002791319386410270423273525276822927289555953270324196697345656525941847755766721215867911348520235277682811031562299186931164066171119919502906503279287770536501180445040201292628786771321410585216757612069653344603469273495977311604849275703013035930142299955229451427231443461288739227375736781962407151920664886703599425716446997174006189755091032516277237301498118645431610083163699660082260074844217353816980228350525684956571246693967579831919526442219551772753864992073962213528342359700803999975433542759492023616226987297100539489269265208267818107372793633032012426465918934019539590090545037528040565997741511455112997344584440271313243813533708007267542421271454100256823625832016836016570209286851709877992718928418130599212221540790175931477998926391174774259815427565607713336606707620209709483182805449111768379848332986728838224339678627821014738770028512901478531062269095498818590476440481320137963706470626308520901192364924323888048355049325686721695830511173885974756532621058065835827477085287346242348951918169495798138140894769940263714534267529003072373246094525838257575666029926125199761971880846785790947776677661989597322137402319724586301872660301496803771891718770363819114914882561122267903692506899257224619165505105378868656526816410774352790886564325166206328499222219788009090008211438535707828369248638245940789168689680150666734522465294678073097468337767083260865047590628112220368863788535296582436305302707565440969473351720035558479383281134404563725728671145738158818638293707787530932676322006620508846492345845052633899555172237747894817924901674222968675433233390896184839376404107866390912231516357325351961617812603142861460099785598049049107816505965651642734688593181828425561973411057608764178562688535212793194589849686082540284369469417138887788192651881616156322330652123571517777040024865433268916012202714692203937811215249034200639624342782428577856716937477421898614224191453045321423662406434437631551104987776051402331245184228891093688581715141163571890420235754652870096461159219150358136306639035699561632613349589606316937263173201895095793908653152979194328458394901438464493260447266140273840324810213387268976521543335355552368910098326930433096993889901050930097806250774583602965208198298688510148240805022301431677268869054423957229784797416954509642600213951068247561283507712712866659009766879667983483139028459834886236507563757372972411816954515978865292445124136928825306727791566660892525284677360717900476284990033564743483605288907018214197769895296905802900502241287548389872228771707436499928962177546291221331908633538454735398873520783945861670426837830840197788609388941440109920727372663029614062165333854738294069330436747562811582841831199619942360803518623373471292547778472681276234943283411342803897797030797280478953699566968886307747414995859050851821860852699739297029395411318404571843802668654512427313507088041337783763980269443869102621576154725437385636356079405601377614238650657467202036770448974939494676812179043175351365553508910247449779324381822541611027831839192138634942559186232755994127657026577189224590049586769515245014926869635993741301227606344969779416806015456766745198230405908003935133352387190562792628695759954861969353225004591478755700561479340070830664420937216111233569467398273798761452325001224971551416850434124408116264639190855335186848124008770486392315891697584866634054951350197982548485024182483326264067111777152498315679487917928815688383979149043383300254135848513847621576337145853748681300511800631056848814406167158642089465657572845571378842863288066521370138948367782246134938405407582883831787360255709421151595473353749561912999748484384707188875275442425229618010217509347291839198823323396580498764487372884126834479280770900087231849248440177440408456444885064030120508031767848222095049514027313558553344683212583389618743445137976886521153847597393781695268757804351400664511908524754740425228410921148757687464721883200728445190425276441481502531503679836355353872116000206781921811559719729983055828607292459512892401992409561286428525093862781529384714095636112732787225074798286217023610186674873948024302654606613796919512795122662461842755798230476582558440419351566088003846864742496647060086545974226928567821953351344210542250581474405726208721668775977847140854854319490212254512206332608473021534053438788743279124680575161464589120861931885544686816636066758387920553111869914835342741690689490633066976732710039250043156424687049855820480312815738662182062488176050059266915276558534736532764028121423775330579003140340408464783790381325193330073599928647920287434911911710280754177954791871907274016037802570523095212946895158921830226498275629756429557415528614856635171263681463068630243256866947098031048914292256964482796139898564124168857423444082648381651677075929997127556994055748055409614296308804561404659065407370988388002237479064787505013067214733463322424874596163107492274247135716652919393560842353291745180307580070129392615693021060158617255523067098877851352119350401590095417788698511111786587427537971275721570184804295378610183604959161393018426107285174038692937378384077380781209716798303299993089601920418333080490777225032732298959577581303458066433440913240709317220775871057400304606723656057374605084906911853855994571953671946930856233319394591279614738678889421711149590549067529010561109998708345314085294306816964239969426665494974102257678421110320037043277434804269948145454268955022908360267366682238079328126310151015614973164424731073322635725941342435682060747854942980157348832693210106350902673046742052554567705794533428604546083953980893066759417198477545923323286765648748790721749204384773979452307639520528021508889694110320777720595596842014880518594694360836092560208263149415008857798076034910083708555203285324762673112566720562263222703564309732577483626788964208924633167521844902071789044095405974448188305296552002380710959425965933679318048613891236520472463034306603530362307764931444256947266901105845867062793518906244312921400257888111588262747293187499182270090652278596946224548570406438038734341229313393010763126827953602560985111177147070200774144488859611657559821639270869059140037516315446729384885852450382649164075967194993726261272732508228450639402860294011698618938193739080135780613127484227169550298065632388656060586631669210108055053303601144387361599189646308647806504854411300903998906457404678451310635228838439207177309435612713546420415439683001263932501635582025500221218986017547407556058627584198515492717603602567230208867512279576705408115418110488226324225681871328385773929456242725136466335797850548427042156824113784275659462363436037228957942382549630821076056576499523779741310645666879612606766798915873061024028460067528926554336334283675366814749912642593483076220543647226199744879214853349820247831102277920710126172301238866387703575522117868920905435177837005803018860129275173055304324452462413157353847653417998128787227058563214624336890475439898691646484645472351654335961462363805207887761275042071768360264650697000608389387273905362157420297058082926375875151799192572428558695056744865634836324518537938015086537172844836662851817960437065509621198507197626980539617524144126377885128115937584056607698800967570508551378161634701864680889894183934800975844056146371040306233426707134340038931497696196827263070226056213981187526655418090799937077904068212772210434596504099199357521996477767676784897571349549075365008995868904627610358635348705184195238922618324073587557622749318859532266963317977781813814226416644777589628201302758814833740412655367460831327175101614234330013276108184714639989505780342124009694836266907589894090129437523669926404998701588253564639072872365185931940212836536562066139181944986485921778898269718563586329806386481451312303503376262924972225870035735012587315485706268414327205686904390175634924677586199402822985498226119753317821134040604019166775291795785109712886959533350001153124358679669741612114975768610478023571429691011382585352038828059740403667740666735633211576664105275846912722604658840367949932076510843816655040995087569360502810870907924801492331173404439441931443199676123130921290453710374440956828649168318022757169731690250190006489073144549252268488636256646670609395672621856832949337223406063553397298401172034419513891894102574580692787709367505004833380532758466318578279679288274902576499365081347956656602134657396712107737389000909516790714336149893917840235492075752724948415762089608943565272516880097215239302867317123527093956439071541627442548998595160918356700078196427946197752439577300571527587722511825520444778465258015946388949975919678156288703469898858142465190075646210268967968949844879365628112605971425388774132456024541418226585712254843845770929310041379775818526349079220146929169866098172728560631848708909148417854566816320048294780542544184446612034170358915857449900905360390032757355706801032816209534523929644909866030076351180009154255511830320866054174046994650777821849569161855607618199918462524290158099614834911831669114005245900774550577289965247359935136784396639127176395819425917165186928336960776089371685974184345562082067932657912597191251070217332247163094373043667545651798731329946294747805224696654432868557717720528587384324906769722055167986846607684315324489647000157463254513721038929192274950713640692538306284235839747897170135266446906301832788514489567758526491408323827710042096361301217922086805064037062513569352608335994864657531675918585135194191852927245012889464628988220403136447946534915582012152562974091595070246705524562562113517391811136611168326828906197319935144733221911248660621587641687079630767471609567027554791617087442201157239036822394776554739519993986654479443851822694000779456142038234775270132086960211782100140365528981185037422074611491845531998906900211440203536453311970750763455485709467749682478681838234663733337877217803032134893535116736091729270299208653905109442455949373904114242276491422868637718638744457730206808730438200083279599305607062603670718280508798985516669413723104588859860810927217399136129635279684548939876286600527019385783466456473228255687676127568329441284257743913443399635000794919546960999300866276091311748940110748261915784393743967570884403289819499180141914216761525925432861810323339840966533317245647876158290067431672553457058272416980664910624073196987043785193986375149694026247245515630507136739896796220532650773448977279780854606607554594993524679057342215087472889710552012010687036321895754807418987242402477917598941842245514688261470774986793646845729391362422935517721235783082746428432507466862030166431424555513090583211456256544848205765870214896229768276970175053008728716011650869586959500027435548104071707367052581823026854683095018849387187821192845683865041665398934406814275550495820376605605888344494882667011930435439431585247839861434968149953853357686104793738975872603597556814445718118288230109503128160213048542192657167273751872229608547698907202176113914703314822330842878399706403426544138624218311353570604780389346286821050547336910639023702599550378040968632510717836746206280187025152947786089663369401806162128147791873168091969121064050749029134627384039084250678349002007476457947164014105652936603298592862906694233590597206877439170836117178172233993258762052150897948248313565447263975486562768772425986230147039478542094691689383664158673622377013427849596390923310459140629728164394517180426090258082641252381077852088427155133533548355715692672965680337153374358047345270774359095638990710814953973401437657205438223394378286648803402056454022998246199060717453223712409318057253911522417216829543495668484620750326197126633220685873058174191598045105813463628051488827095816690441487217507030896078549967818803323752064672542072147743373336356997614898331510174795651966206392506243871339449262238040537796122500350561014949481891398403806173012730905667026139307184987049292839805413122107376541203962666969933331527785517191747024664564374805089212416742418562035924757488089106725078525546776184968701179188074312396279527086920277831422953802537029881378211122571212247321936892854704134311123484551660182791516898559583101987840230092717199123919446879900105279248047511857333587637228279851045641294021417615018261582778328420286600406609597628014292449746039833940366115915774802761179657302582228734665726225358006756338138405411218071016465542433610452892055119296674666940208403033280928500223250909365196420842407689719389897698130491099006752575910895172717231305720114855605797341188536922567408167993606221364921233622675425195366179346572791310302410640759130447465586555175250441557111902023884096029231331631503272401512822077060372275622480951582783895830413544559181096287006418506116678304642347197073140643673675850279987539333654798968713229037128569718052005160449269785055771871345444990295994768229348405225802958925202345273211259224861718927359965604219109357243601733629360617848656431216327951801771828873651743199551629057458058920342745516436188127696443951235876146498695324867396176983823668666822761371651022799185630376535097760478225608560967771833659874227377793483172623432142669387847817370199594965963190485305219203417444795838014270710867369014697704410668903377517944831153030087988852164807492823087606409724342043330196990616011759267929998105972847092870213324702003434783162146241339928489060595696483727594275460880732460406094485083563276852101764351479764630214280773974887313093468096899300161222672158989515492513090872825677984994193320791310911039645681999712481650015184911009137180215080454570974872178574379980409883814455292775770698160823313087676550649529188436724601811873939597442612483067051137659329238581681596260284080915851808288020503663961589826760970041635635016108356355648934865102717437037591908169697706162948326075815880047413076150528131448590153905147795096188152119679698648346960237822994868499120822209811863991431627234627385304445469787724706341890612431465811510878994439241529063946279319861240463910388111872626012325013328278608378509448206887998203277010883549816251139939027268450624447921847520381823556404314882175148737176038750119137752750216457426673460743070826148793933213944455293014166936799963747698165954667136557198429929312038273839991777192517727357351221033082619797932758447039385004029232429798112152232991306882901591374681543138374383092656497990831184983099667939983396251166886725509833023265973082860007809263327762235558405270567118485169640863623442894658491541094269967422582556386116963510187205653638630652570036960563052441692596314180303755877736568030337295182830880291311641361256201066052743602248558132975419752708019749464353450796782354869729097162661071422650712734951498387358218031206807626107112082648857181438887066014175588349151654896736300841711932056843421255640863880779960650197527275044430399476195513048382720729724913425403252519083302623982558787219363960783232562300216176758697481096884050904544883444778057629105072977124113566302317460993136452237748261262137380790723052991923591931911621946157063530292743860965206349331038006955075078055657151387861411975890783899694288390004618696098024369265829565020244707032217231601591971353956135198252076719153883685814573688937203961288939123308517659414816240410806608011485974424669743338095565891014457639677830090363231226004359208539112401923894731579578920382407333879096715796831517086667154017583218066826679317126843312718988146073776439860792539571009354135731405554925329233531553490421115809240903465271031906176493630009177597930725803187217589432558444999544152635639708012807890773395015575938316112574735296283189114211409307574719808719623758693727694572076541607225489531440812102913614377595908796180454030892436483983940920762119970635873492727436828560948993015242022679569428122353512744402243337813661230934069402820671139772821040810532708799914827763665372697115443184576210882589122411884443198792870021789781365677995574032771769904195243947540414261448488769838406804361053897558283135657187906179626116284848833125591574809302502168194155048410740965092692628233837457189849302131487407987182246395035613080883938284477887027450322268596346607545773483632437251547945851958126757638548302878866361235597488074710324575459894006323818891934322220000820593239962624467479546591938676180323909719385410781094975113826653308857494598561064710341534711658316097781682941488941862981798470597111617217422351702452318998769554442389269778605801106087029187175723374486882643342946947611415432343992819431006368190747282054760720763747334110020992371042929609674497807210668697920919412784557228767112143507107298796118826790293283818907385980586347798342378724985296042397845927614103468636948290077355536280180125764438034612434548731889987487454816331682158509938091492199397258025846057302940589136021013718903211591678361613370445356096291433771220151594972439058789713815940326268537000387506885920517222412713137459931836916814459201831218738851426730131068814693234837170724340912923721501380849906216848921674368005827625733615801796047721298350818555542367227080631894993318781101516378659550001960730522034372968984701291893115175597001238681276504597402150154579455210303624255996293201901856086351417180368176096221983080015998176233437969364431381791360534140523278593761354938365960282615693263788234486586090197655581851824838047961037702928786894251451446839968611843472432130433909744835840298729054212655698413527455177769811444738118649501029762285549728810335691703502922850248419803561876358629899680489974384079930535287599760383832710188809942031046690324047134716421526441503795032975632391837435065356640938906500176321904474221104672089415362698272610077681704702279137325553663002829406590936766778671305469582507272893198508003700355935729956100169421348792429654539980626354267978057027771971488725171782806094407520684979131672091981022623189914219200758495317516393668656688498092619526277395360434720733741758780290490434694160190269244176302410308635065326975348459378975239989715960528269428098337583289376744077603236684106950416475607116500500430329199164552250338136849476632877994764865765093492125321957397902662740050589888977907740145272865508721357458086935384889362298740878424095458315113352680987118385989811331284113421260355699713738871441528310651238267142822874900059440798192852261403307765850112281580516907140460242360326243781890731432355677949127063069573454792326059699372004653899064275513495428470588509692568102978005630010977933220313053675497365964300418699818235822811790439985178047086535850788995224585944244282169394105361792664845989113177058964525361370742889527278695743172303550062643930982233198173993947446877175884668287970420592427388518240153986070102200360885922018591290797123549240953892200679146509420498500841509457768497737147387343195008818291892678443864146691484023496418526344174479990316040714929831943062119180775722633689369974718438522650797214204431052902824555632054448692929822901102096553666011468398813936454872205658883361080359300190991955322916262368480819596219406267894097197503215684086831338336897572378771910929211280203695728238378966230982318673906254201289542349771284041727362084412275629144792117678532605721450492989445534397168382485515448402463818870676631610303037090036127048899628023059779982825646873877927199582101473778661929302776487591973122978896839989985348882022295286202291509025322873939767695020181360602655676579515449861622435989916822331472696943909265355018775601157114036520099558593276021676234623560539576505679658656183706857918569446064852955636918632786138587834474779698845975029749466896071787593462209656964870446452337189218858081764060611687131295784283546672300360584069881675421073436141616408478041687424428284075979958608924343889342379542455028884601332708510473277417548006781860908795023380693324563247610954960502797963016720645320731353421461500150305458311142596996062973114134650797857659649853737559190698318936541883927944728080198646045644324574057007006686317390667669865276827736914749098319203934605140323742839773709056579156430169350258350576249273754022629252861574007693501209581233160704077607190753435375643552445538900659889634084448106667040701092848268747083396065350383883122099850940376320390015691537041695948653856569581775058117456251085940593375008512772665772669609314189228791028124467380298668952231202915615064422156754065341868938276201251829186633930496352584679528583487258731866935437981683390190564364265480659941204975722952211553947380841852899409425019907443392229951900726977758622633266634043221042064165475952042639599775995451359879142099109525223749999793771027454288365060013989363097760623504030213261207567415951272132914685660956763290110484041309640435994854022012939358080571805619231987586935405204678961855711867142597142738851103299265547392085877597953715739716492604261928720543267149624087458523727893683985232243255046977242099974373751815881848042989441146782972147955973478757745491129639808082027867299130913563477762781310633351920424162396475881652043268655669741378198213641152690298341976369860218248764777405326902549373532272544144397214430840787862738042582466702726923057376820705062191561821972814325372157675690865299544174335798951424346183779596815988173225758869973906725671476039352481195845670340731217561727420696898840450153436264411233461447915464739437832492629339056314896945897612558126331546102341950175368276532526734199881644479011807967519538413046115655130906033339143857592161827812144163723585884952975460730803716342888153563852582713528236170650213811045885396429747744074447647709919103543919373736858666736501068539585243347058919951555614958887547257599110126506109679382515711256777221757804579389919508062588640902276337554447152635626857381769258025165832251156070183478512392397694472669328986383935375601784794469773584862784911742899204829100349364864467471852262612243603004502008707759148774839089982815572650765372419122720372436869331159114457155150618209271030487390955921516163160172529476115280783949718513209597021931988805959107914534952359026274765427578856410629624222769029482870847493536714750270096682603046460603723044554517640566184346053727174976675818441360017635641552356635738966675172509374879062948768745711370840616886398718710523445847752802387401450738314549776962800503966212477517159010898498867281667913081731989797021704145158529613738768526342776607331204361793202138159415301496916606359945392281470727423115673183789390870973366436793361584604956287818499143525859293864109171153825331372381197562122183405069068690956089908680841190197482716856289092601561360441231918522993062911969125268680605932651884080953963057448484939310214563679684861872566747825162493234056012607106148860915204132357552485917801417918081649979432445514695553435960776642357992698952918652835042545627189411680686199987686597573661266737980582726138970627003080974737798342752570091854153858892406557468981227520637565740816938918752862962449827017731544505197710900565439369901200449117296627730857105538147765906576291827874671484624434060598197777613627738269309484482412801186866549835537944378676278389667500919680895478671757161899849868475771175069104930415217232774314339572458943178733234440298678576437735156767221663129337635105652190630630261705364518931175009600908426686853902279403907017383586916693745971810836666657147432788515078155681251530720903108254241557170417780425698541796707711365207314507878470532558467143172929595315770058164281042954730317179605682090988105086955915940604813207454981272350253366467630087878075814780946277997468661056028828667231804362117028251697829696382835915205618439579196606888883934916430564534873937525031934385026916248441835653714226163461305236132964862679626126920220487975833125424524459431917036312079911217109259716777828703294502288355495669762400167796126458378885525185576381141598047063140179530143118226036047566123157445078647926818190956119882159630130418169537342788673755772364963511762792614307587008211991141425555895115033628351661348243167273877168777920760231449623277646233094760600745794377089580172830133098276081109013675635121169391639588232505731437784958166759167853548231289891430704966747696741481425714764100622616774552111833738553921200318082699327503898103026683172643892293155948843932961878936366077366541748104638179838105067238587906487132777280525315956796603361352126681558185549264770019056279226363006624801517850788722471129813278958743754887010586821041542284767045611657262146360334541878949100733399267253078879362883411649981109427484523466926558176460748421480644603536644123586471468442385513384431850043675037237574859947033389786255591798522278867904776848320196169360855936743573842540776802573902697567375706828405993758242258224508337116249563934231009632489554658948100758082079637786319477372071676861911213753936181723978583969556545441957679083879673203309505662825050143207420124679113163545033857874404313687305919331591542115695975968342404072088967363624544319833960508779657109887293797090127149739428339180211668654095965160635100625635123745199167120337329919797114640533330274502744613586029614835266705363172829150374827007993308829385727690672948576240772271024881752253154252658792216059455481764727537539986806394190617260884558370233572552054307705188907982383054974736583759670084794023257315317063262277186482454785530122817094579527091983690214707500744521111002216423298816798187004908817944028605786353404747557905599747606926029893570566351919755627555683802548782076837604322970005397556590772834990701274311751541031020696324133384685600548754333875020532816920288400380576615999964233120885266747839754771320535129129889270839779153935708462025964014979080438648287692000926176270837503358736790184738970340548963560032388468442245620290834661279360401149486145655165474103548420119621354348318540242766553757116624188938630000273706603930167536065158054268433674563217743475627962273497771024631908870482494921556729132807922048514657315848447330744695589481365501114724543311170772728013024599485974672643953548682332291094205027682468449440147280202040897298977605843977041550562672187194040053767319770032617994229155515045093114064155674554012211883729573525604727942570639647742390906309002465166998150783737562678465546344569257894092256929574359811531148815411189067832871129709982503858489733084359752500625075690941413568093707147296593097412509065497079595481442721309743802193627059822092376440492227158558288043045020711050168221478052006436086509743883644006250685670255770993920248088116592041248933553943024577375648234017621456185240606642440611535807937945377651861166620921954676203338344292218284783471759405231365512944457790989525453696854276451552145063860748585670517755337682101304041951565773539909498854876315806639756449801745413825400841622003554398767800808020138353148923883404869057175380257064895605878842748430402094864977083778492912051229605920174156376123941272854988858056774647037616334219716838160042780522609827476603557716080309339607034343651372272895535098786606398694750857434934279650997785826542094328515065434937359741569936991371363252318662987110607468406954728762118863634825332376001392170293620978496223532550564912207731150850546720035376382124374028565203086121064504684998998745345765420050302398153534839670960330878325833815300381263968109158747983469231254628185718204468149682265285584989158785945376142428131752052588816842837222354585743831853692135464485385867461110389034234821719439563689448994681874980682765718629108127241304978581292331188314349659341798838762452192508431528620728489109462650626234766838910847635336205242179756746949575341795788515982982352194835192644913275784563446157591342654799164189910758081537890032239876543661127582351924652914860280016889786910103602930452592078202082398343432452483607682500179232163358452109219951341311841679936012938260714551197400821748608482890300354232862813566309763379440103397414561833075625593230210828030384335128068039867371838860619159011178719921261828664721594767482724717113274391951019750899914160677151831418800006608045407748094016676335014911258259138144249761141834207895395899077511628313693632373894349597874115470209569457973060230978218695046835436607452446062685837906156192893694353843531447308382672580701178759083180272728930115173094822719110481600027530123349877643142431646353952881167726312659863852538432765281334776267592857259236843969442303331622650310978668394508021560286450501773293782754626082274204597794168573906798931849093860919404729573597291412676330288118554318038767031127002667232070633372998913465431620590728656431109661719904684142109741484779179980025116278402729529067626250524631452330807602695618545069566768182814604920117886468264366896247971681943082444305017619609121471733310396556146632259974190604101169470603411857834746147805619483735050037967027080891928771302905963404644697573831283204885117879152936416261316115517099337443153214450257921964935974481860857657334972264213511885707278634298169893495112123662604744170072772868763450115419173384946004239092600283282586746006415369975123573511324913637097015220902770664535009551205019244269465004494165405939165475130492421976397502150044136767372336627860256652878413086304247604183015454322922909111109703175370738183600027471182657924715488570767109622238042565656015423301182650309674097779031863632663086777747070570966585107847175593416897654339477734260084500244983274132455882619408218925957441314545385857886275037238585668686359287497165966752206531534667619463507145453926749444865060708131941558833823287265768162740405242351201992757687179434000175587984628535769873237729116435856283133611725821964452935702941637672489094154913039658521271000910859448848396206202000780976390232958463430479521602159221504467085005880843469192259367158145013819252063072315106646970724456232418451207626479288879980813068637392370621037786915829654786914830100463384316596343545713211922437140257685694685247425518247081995715556192761413859668782932694367445312521277526923735228989937986943711061364104783862876929849429648063964510955914398217145459034217963825770231957789302235977230389312080341147065417752495106623321430765660632849932340616474502027544221029803414114173440007813290186907023739431176949564275461725214250292512882003070484859405686165639378689632862587091363528598772349836999829571140061676187830933784699076912097366244963814532718881198624550910816130118352015418076900859925610259467567789727305492512653944583459282294161186281810498714157308564279783530399728040808216515242922207230627082666935257182890439047627763013314818830493950768450520282742337077229270456728744251050548851599618678378947697382842158241549108318231374085798827233093385616884962175284101584071934295813381255633317156149092670950579973496883825020700329229056862988829499685918247995776318368149587327696738374982749629225464881657200806197479543413986237598085082562274193862515184804770928340190346060864157764782843756773496222030304500910045170029653061633417737588872895331473678314909338716046943317979648416686264245484531050783186729966238585514053027047564192232198167034654305349039374370223033609280255594716312156260005544598333092018506601045321046257392974890189896206271141784837086432555637365965240317889253553673356195968687524858955014791333779431975232467967254606798761654251078475864625121077706157688207456084594686026927728058056460683073989633504466814934818259228732082614462020190875057472975386251378710659414548888184008047913689697645599102360410564351353265060986139319415585698649590649509512850411143732554381545484908188794190774156340068946657723920855189439415540704738868316669022542826545077544748706473091187849006805192495406299514594800005383079058921193667654427067190101159683864371785029006056298814046487278959371251660539508930356941220786511237008981639438660409097753096411318426122863764417490112132300089520334255002867515191765514007182218356665865354360655182205512567505044470770871021057712844455008277165521940252050674885498458159030064326726662541776870138358812521197271195559496388972084601949968932138693295371316286700572662968359888602513515229173199161226852875394344797306892018100139731401609773229767840833074867242595168295503786806950673586689632715550843975293737576010167548554140194118501966069886843279412057013895180599016411043179102010745994073123690192883756577842832730943035908015049917440248964901294889931882211790220628048652048733402634374549139554772119327020082088016973438017388873755141048903976392580884263346472043229730961931416429594489994496406226584829908907004953609811888076727378900946786054126175082554655033383837236561036023748319553189066096382413856587253286654102393604331744369630049085728587506718050367387161359124024048565975760341823578048874164855858173577992241381005037239604367545232827864155786556025738111046087309574677849335529159198171050963890616020948699716541660081284004603051888520089212453558766369708380337061679889949649796090718029295992345122993702584422642097721707048118881212675093101563750467548089282553683228408645169197110649545325925158599109286186640275059333929447278543556947406784049420217780971836624454085570080699192881148020424456970357205273458657880635356509513042673817747775810746954898310792914668406268032366487210496317457857453978049765558009824271086069367643349161247453597819410397372842373367068566984440360651602885684237347166215174758964901167791414003423866075942877637422319749614215364645760649525298006770551409300282167109508004263251424653441110144686621895880807063325792307264816909033995646958540198584021704128383279214638040599462229691873654230965051905609818244648373801525176755478726980846179644245067350012619027164112605899590138639445037168958561244910840585101337887685362555047903304751645367462312890981015190080521512520887221948201389787575305307696503696581745292633812181318910843069652510557599945322979693631528751150357035344530027176486356260028007459783423791773177349185685485700529598686630991489110849639216276065153280647624836964724757331787894432332249305597905525201330088245370411379281405600296871430668319751213806281930683538453141157355572410506006395681301552234303613437665819583828920081547764256345720653496694479170041410182542750835702481973571567239682841797092540965000257022517856254782187136139102568645255092555829109617960946206553271331610620315260550858137429865659860403661276809397401978835951067518470043847974766446632562835072228295389192295416680808821216224881317680822738419393745056354514392815079208297251735185264510545900350542492267387353799456162716741513372139939259738988425689305178297172290798850443154671660286908718966278324814410415529125622830390777143949241973906497551564834395361371890793683202293915467386416421201809942049172710569650251387978840003002350163127151404886274217934988204501693703561931035313711545213929380525630580538251879081332127762573120186653134719075727730369653853857875292168271503749401748959191410613656799485674245547922729647348056939326430785816916965359018684015218726072814837350010774432964939606188765454702387060424698938291216444363823733853189922445077692132023428297338883572896462364811841060118908443917734923845604005154974902428788858669862641223448013845042333695499573940030838902338304015929851787232373111025902675838776112924572360484431727723246695549629889472377808957138863865458604985159340719564842608713805395934712514922992563323825751029829930353915760831684291763293506510991226509888830128014007097976928455454230229288115223541348000021090521751823904496646184503745228026040758177357334873860462465644481510855140257086319909319863011344494970824384238086282225836627426236979467429550403695594283625080394500616814606877151200337085918545969806644874163232188543237334572632046849164343245501984639821976424138147475529153452871198680401304590097460855111969728453413564119713907277629508995880893000793784701669340614583423749233682602367449054728843169880495784119802035490382010211246324257594681943733214111317694926189343985692042009811311296654224483932944386837237420097540484615386171672591555854342834473539913000891894135069419983050910280622846215742219572817605070872975463554679423647485109468978755003516545507789364851201140549655786558105722335251582801264790737261226307190024926043222594413516118924851852549575065973561619521254291973425606536155013286010845852433864286771832482032529724330064249218657110213558561357172547175153582762513101057207881075159685919176057842594537348537400085684731587572390668925933283060769302061694290451139439601188800868083529669062389965431310386890220633809011943171359771046445834380306726567961193615263688302053789514619387792222972136553354622262939817854256679269571559217270462677197219432420953193935176878233239307134197651590456756828990206185339286906812955104148533686525670390335938449944589372485890693709776527729219173854827310025994912109862823008162508897290723415813985952453794452423032342817375697251315946130440118769091089686838274800422434756132269550316371829364639636230804585188914225741092435018584964873983441292716168078242113406997972227991355650925739182032135522394285495888473835005112922988487486550636546134863732305859868404640785128452790074133771523536548419088963929615153412451869753886098775894011377344002426537996309318965866215068225132498480104679432282905284600112475530628502923279097561479605588406187507500008988940821111534047798536657831168072752034417228590154217889302957900675362625876039639928637802849542517489094745282762894076639804768002922559365304973879180186988447188094234888619037529581848304901699157521135595590174211559100249116004663041472118379280447170274083365792117282549093428386367796456625966304609035424417918568079796807087779984360321131568280041221089241748119079255675293208441167237319361707318484352705688990078857177997109199583581314982723956632443739867216555881798279471918439945812278537342277839508575171797892571089267504387598266427757022527918991411495876036380914983570643453682227401542134394548394497151960575938229178539986948921064460505510437633797911527821043336123741154892104630224291264394355887757268884493696411001468303707577480097667734182358384814654602146347817086836841083729017014122438373496457098471389728548820823546575844658263081259532394313126191909050155778662581851668499680292320397629516074411416653631358502435870172801728870678296226037029710572863360687721478430593714268739777407727630227671293883334699516263004955216961361970374291514554777694743235134713218815233059928796733218616811695506704329969892107262733719222845876324442631805672720141918776833235902677560400513555714561246306703706863431379686956150449304765877944415081973727016920570013314366990437672171886110066090094969556820008625094274615166779294484623015985861593493742882621404985805146963716919962646833625491161292537565808097210645920294463042541793084662301452777832963142743188061099468356098219968167636239945399826438697259477337563988405254270496059374153779709668231937082843031561528029405954220616753963585601462154518241441090993032900533455585483202439578790399504065989116981480821465962057409991591296507943529167001711620484965788714988895634144107850449566087714951557153474386313287856017247944058380460448033920251769206348597195584803909033507688630106731813522722442418863619575246722194577840491866010373687987601943216430485914139066777858635114937212670276271063486035230676525080799427103355547525250902187227659424619569547706086162301097124583421818836048062224253119475429430463895004632801232808599767790682309623453569379719881553686215010261164155789391469783667513752756263812542619827384615003355915940093265095832492847692376348905870442259417203744903771300875732050948941205128607678726657835016378325624522859885551983200297921712270859471597563383780660892034729834907858998317506866709859541778452542319981639743801347156277955108393223850606842376779012502658717223713501273217856590874633278381437398387089293045624633567690081552175139562775011182982015412421224218818394066409348777760192130774311299601252698401186834478546884676344486625633939817408781205776546962425589972594922985626252053124561487089670948202310029646393595866262917712601720214253074134465047002351509850514290879046026682514933971711125566830308624860675290311035193156933109686652514612007596029070478048364053866857958050519287344853576670870346766610725267886203735100300235749707362655702321073051430111565472964003905595703124253578022356439895744476614290976616985183890700988701380760089286409812074743195186242569705371995722991685338725342032374485376184914135946905646094234574758657327736543531566773948605521990575713803797524755079008425919391633492372057151354918882853160410863846533593581413716683468519562382163858249556436601536089288413435739746597079472067534541397319340205036716207156437417315538856838598954071323909206648941202319603917515804724934671977013897717475240742417567819237604250317209071707806533115425153136706157299184101580078599955871186900327957183233775290789003732767061178937834443107402184509719118271437429639748702475552707910742552018574963394642300015876746867061486014985453333913690711930100607043636530017375095775897029407828983601754753767129570046044584910030724394187679810765837453749875920914233937608122447053866496529966005722888461524821782533449364940852378167162374888420033408757323812087172677729664895033882402035190295292026452160778892820835918355336778720582762035817409850176907580887940213054879004919121300742974353644333877654624699077230599593553829047874878308955495995078181080915131207205530734593631699733628904739933718941711170797255754781046388930208569974203643535080317460594155782936171378618893616963357692193330683419404317800396095070974397874382273059214341154678255835214802815338390354751831769782555104111443447385676200072635659333794613824579231988566803173083652037798310335720679508976026560235438849123539546850123040603015719768706380601621372290957725700513432243253719858502067017189252403516903539653443084882872210503944202361112415398406758311414024813211285429017986399559796880700205257862659827925541520970317204310614681004304792791789851064247374716709263405472002668794245875747643924409062448717724064954851648415401038277322223846573712511317006607911076423430310938699544573656828238626268179878136407016887018622057989919869233453189829401803154322951051685534454836189677975766883349824756746368616242050699964337292840333508401454176377323628686497136214505948852905405305567168607911500094404297092867891810126182779819190873544925685289027236942936737402870906585841419767655211606832891883132929345392961733122870449098272757140289401467804440452572826623262585546100183098437570024970568364160623612274967301810682994442333869422414698812341133607407170869992132266704439753943088512161125993197756865338472566487970981144398953492066058210541448779081974159888978438038288691754157776812824858696650554250691801494209231274094980153375607125204546465857130707187292922497144256258974842188375890932176288907000666877880956752204825652703258119114269260761721260210540868788102123853523989744367811823917593447018000108590848498855458871019081764559510686163778362755276880809561966752654159175662998005536442457780607279483814862798923552402335265313180728083350147395647302716661066794034581476530327564219963326903734282975522755254503117258768147727803227751977712861060546263373677306034151083593279445351620783007269259892566375971703811570961190394921651527448505154055666490631061965168910613452909819630070339335632422704698126690453963824240151061988489009320072327505297159493243462462913322469558441332798399448880882622508531847969522379188476965775176463911339511341464763463825570840687064328192705826894451500922221494674017636156610049957060577658321804143111152569399657626886899001237011967162291542441195070582111731609856517871007106053820891010573141313189780858499147181094442823892848195563585561665727654696611430628093799964310602043963083400455452121882839160862135278910178125324676750184899221509950247397092293350499374110760218707198918267946044961470564747509612024082853203261828712793877933382802029883084780911850998838226434562854554788957295797809013967812728898887256738088031978090584447386651738665037969212690093149052353361354769702792454885493949461647607968746994248920390790535316870646770162146235916781114479337106263637531127212713910142743738605075891238399663815282525485862276090515144336518184080736941399079977203441753672913303968633653019860513599434730364097365284226806457399759685875208112785046668623409973904367683722560991061892582005801041079150010142248302269732987121452510884301096000368992409359413854044091417897644802094829532065008938807369961277503662401503693130622938316104237843134591987864222355938816642489308357209909423626948309090175751505453119961150804686590259101314700660237870701113955595348653386170082158855278816262639018071791515804481467317536581350340335997262944861294139161885843279985639081640334018229912157573631991037765024282768999022951559219497550414501174631794195083083755377537117649918344889178746257390120488731517275646647940542229341286782410741567408044833757832845167475755911322589979580223917690074451597320859011552258403852839284072248508006000602849129127702042815506069430426757133225831130423512383649163018160397183939150580035103207160336573657105868205749098697742475419048759970193364878758089261830124002364509367923124450221036823385414776731389210286471175987584813304792097705028123278312060054348323711062359505057230470587637992193557674595077886020901702682109940811391129353455723183825315042015541042639425426885010087562073372321738593886001546679904938159441702119193331723095651365147132863438756518564790781812715654078697332688029783437020695879022658045862071647187630044304681592962140280578805602296455179902837420373364384314223309156670947770080858849807815514928109542292542499127938839106260187776234100799936918430548366529003276705218491125850700976652686668215163841882408067349325220029752912901283366932597749007005131736582156305237529903514661276599425643992293959307172339430338035261591617630632091912455351874196843810500064885824464603547255341362942307198901599814872156577455477791210052208091607638698142087290882699264934235270146702073588652844162583524075920996186942491930929191361938637871174022165666720663402845232035019314217060262753514608034534671543407939509844985324984232514967221785774512598594497600561339728451083572600624683554539684984180427214342512058826429089017708930623979039935522399032175276462948814902330635667310366690240465884069102925377291464441449616322758506127862291310345048461486919719354602820691357883966929185335785970341797089762451241649328173360075998958152584646546493339184587636301278560316988415873938370313767945013779230214758731404857321001257237173412930793404123143849955393270173509535982018505118361019116692208553991773354947748485511819086683994422628622234505341870910521773785366338011480406032995353825676634948040606138347281308646922302001081567438333515947907029602083600578081787202545828154998958203429302070856502618753224169036696253920582565810977349608560487514640341468207825419124835545926801332994685301602740911823698454358819122864638821798939330099118578143392371827156805300479409719009839513667874044686801221385336713979944496980853613386508851718820178578887077963329551654393629318496847936376350414114122456339711838509967913628469541765664733895866047774489432495524167658599746965696679058167152816566567372672874839255381737075286578729504468709159424060059621797637698612808459424833797393228453022573411658602785332792801628232018038920767061546230313035572250557117428332483753163970284971470419326510227595954939433019886345485837273379847277327653291089061448886679603016140685857515170658087871192184218377933758581099081631105646900341063332165112798430033323523295710371113024229392523243284014087914944128226464471539545734200298107075470564938211374085646659180583779712728751627725065198105407723302458664926539297870835271154342451287633070961400103355037214897245013301193891618985180046233276430022932392451930527361835126698222544285121945386067908183831812209556772465998217842467308348962254332005660154623554223144673886973475387216316553866541843068284645355086268316748889309432956314792166810709830201483878158764802105924445272154014444692410749345667359514298410140740357218638561589776950296956533574532496154521621840928775500580139195540858075002099728901129176547684548111342615479723933801158594251136967857038406253808443305516087884680350783919434032919531651181364849751631437094799384830581116796394075671586987675415074993548496154535998388894693116611115950626550057811075895050875188621194452054903791462248591525146012634928654076967337525236034690357007489672903470349163273979567589060354771613102641720207236298990818977872724428137869642653773724447606674251174114239865240757473048329490446074488188642213932192820388003974863925782496382282259528312813234781663878730994851838939998101376389575763733149704947525631450439674727315133227850910524598416071961305687642325946745852251203609752047142600745762879271258775575271916409151693090453115116587566433682581890095644335426708454398295678848520626925621365278928741605774068502573322731552555276533601253586059544840282046672766413521653260571172689608265853025709631330471388839501381781866782063753722288557925642099970319710500034252203788569284711274757686046435723876296857173257690839301960775637375513006275297620820286471417790362762716684257869102665439777099117503018329725603369645203622459742728045578361760719907638799369262202052402695939748449279544856387871634195684097562563395797449994251002341812675993536041984371880598433064795566766405463344446723066569846125901232720445277674245326450671965401109268100989408916699260730744316537582725548999180300449953099305276865838393317856681779307800804515330852008598595486377477228908867550332500656951782552362630759885384201078903995284266298971626742090041621396090745095140685283118216236056736097113930450641495668408244906265112993579681142138442914776190090893031827066002505325438856242315988917920597623741778468089242963323685039823148998108162529621425539834332892623752363139873986790860281682908531119600411795599540332840669884837278372427534995224696563522883555240823334617198187669893018127793261020069113311678520949328295256283367466702884054409785753345670023614792213599875453555263056846629304714768706268590583961773531215877123845959119031299952028258420216445180231668197537303358181976496783543462598191176822536827607998007630813184816956626029558049880936347587125201436260542103767218048905167126957866686345506727738230475971132372245519318176365800488800182207895581343098177476725408240969164003845457350789952415115727299945689590662539126957961914756649943243127668604191755057422639946278360953235168392199463769486863124932028256270338956947295396078236646942853146224075325232609847622805999863186297707058820892605011757933397688474583294223441021926702567388003868124490032447619828547025707250991860836233908692904346881151571616138084724635874937071726282123064584941165787382788700102001572850027969544279162850533931079361226070612086638188682221597783099156348079361445048088231411798657542510507784886717819251723394975814685781073656624780305983733716684072840864218566694981949619197343730565838088307985334547354417679209755072896489453598989656949492021341424652961167962165008242833053223965033102244000607974510885660770013887537682993509690357939545140856724708499316419582837881979851322986771005381607164722095099981062802975029133697700412148026592462242594409597516339973421418654866538262627999488213634356035638507082206191014075806898967438323417249452091784529352502558605646898971283130749504478589935765649809786931248241606742736502145917938897269113340029395430623922977306617295115115268911474085094328400724029611705795130828239960336951007648337796910154652976227361052437604799855485964717105373157241708189800940925612263549668280371408234053662297146612516649631663235771973075325777943212160035204343816201511817775629234754323459806342388779957302822116925010948732128734176175750332206516288516900868020578792671608072980056828331302271821632874255904122722015625761867797832533865141657259230927776028680613707677463483356934748926550239945397702317458009018098457205772525390657675362400821532396078831193397426492104719287943148369701653795092969971598902621357415028928043132050259588007933983828648899145389182714099023540581188373728480116036809385776001343454779461374629285586247929398654780964808772930298147415685097293716755660626890199494521325839330732761290691843654315258191843030166720092877131993384980342363714224246241980706604278649574184570368631572806080619240694513956942264417799913175933130522518685037570654718305132740235736100221816800629678961928567647691144329993156015154388904025654041504422142355124204080810423921711625131731847397326728855104169159914016757229947167388239634524723281496585034910496518024792334361778681971933829130072601905340304697237550346349282116673970253884341672943536914823777816817294203609583378079586092283998164473508724751927688680370113378494947527832132574987486352277236782696847885745353506085276595290795408577420985548076797594508113467969502349278348838386591825873458461443465375847388119106623958994635340387002963528492517479608474879034171777216389610876042297611386540828091083679212907474383409906514008206484534402490379510584346733595284092907870730657166964753658172679261680877813310244500282871249807733168652433682956693661067329787290024713916930340993792994714211236530842619236922496278893798071162258848397576226909963458123200481734882607168088345056038431028924215051033240813763048119186898596445196595983082298454790251184676867238392660647447126067820475962359271736310548345562132816661062307480152892225556485100473551007404163490452989924926592298831245828795062579725248859513952568695243994209070093613175485912872350630565766823464763264415964717536358369148832254523763118829289454690379981688849629925528844029368208625887658632432728630297774349210427976973099990501514572174572963676903211451863725569002821913479827653333558141416192632235571740523362840570073186024507625827856524948472508792960311346567047116775974622728366484534981812873920680800998477505026752542509454724669146567629076864151185074991617777874410411105897855707876922404317928212529311330329443318015607303553143413422871712051052688168966508299479049521202329458532366438615242780105115120233165350120040301889125851725853642152054401720337117260521725390407629362244390562612549884346479076129822427037364077019404025804431316124623356677776613612949197202725101470550143507494647296677484609172438165085658751355046653149159862209682228292759999307952474655748548505406462321315136604204811443954297616516842332100001886894935330059115179959632712974449763087024786719327813934698981026109442913664607743184729555620081792192744011658209119414275850434788430740115051023995456891561099762414456888166812853447917334698417571083534709204733274796225035422582558994887371574233626627558838775217594634022850343029014594096933402745537985355957182738108842402608339947193654506231127230735173293265296939181914472933438363995880735299886938128687748389019970826811028446672588668634062607727990694631144947321085651429419166231776317127089627602181901140985241465625719921265144688231783060592827171278148369929146838047612604119821826686854598732276918479240683732910449939062692298532544790740381473362763583132077150179662102431297464055649470525324168589923080218892604611114274167079880446434259062087334084929352041938477002289121586457234876345466628929543698097696509744651281930481642378652509337994855170041568460243772072317946350843031039073933365041818128841190343678254933951525686132379671152417524945164900805757630385006281497819797191286954225168380972867985035410567760925829794375435713921709197370619429357612960204011392596752976461100719589665964387723063103875628630055292990863015241467962488757372494488449748380625223218465202854459379879029544507120550096952606987984610856772699199144948396105341036762828338943616947939890024739667784611838867038496802133264831361283308308871039206134821099543763038812006602872407539650606952294599552250240315937884671342609317752841824231556546496418434752697575348285224648304568996461511823950727817984199349738902532526859269566478921536427598232007400715192410188696105729334593858880285350225507101783941992017002912600390555208276612345940774596431116343999028560668938144966120246632518387215606529405222818934068480816519210147215023075133465929783331238409370854086343655899922942812714955370559808169425814053549106169008874684900826523143326268260570085475655124161897132117380919164268680514538862892800957072261023176962089952126719629952983522436992467964587341678381331764449330722570610185737795855074518284500065166331331969034812893022815498432323304114112076217892815264165365591877077184602870961258116706931810688233466149715692542875855535415514811553724073875114042049874773362420376636950869837515102782346279414153049861836844794348417507275016425055143777813497187787545547601755554306368361341149778469273433087845506043987844706517702753518029328656096808049347086542921511032167959850692870818067220601348750543700533372329672086598527000121339326909405799816301589898466470235718668891702183704788314243552828875157314127274023847900350902684865868407938550166616432644059768371363211847815554070386776555092080510128203941793890693871954333975759998203872364286375906943276801872701242434409482275119102765438386550638341135919530840536978983318862950042220645450272697920131325437929140175695226632751391145486777883922960421920148402762946371201037074931446239568951192870964289486600483632749273677941330997761309885304539506803143746761806463975680175404453077611992279802226666528499622484378873193716738920891459333346920367452889926395195884739001361745186937712486437650135715862407105790823500159372663326496298081021317955581516304677540616206161571815976091328904717630531314624782597895006423080255334694174601964242252077644368200233977233271486788735194898702531451858576148034778022061423596254663587804259738765694321966829707903137284944636069143887906427569650723112432778374800943082310188307302170214449982916928801414853821405868912497976032534007325305401039583782858164852671238245351176307960631066138750434996637236116674188467292696118831393566362526079518015137682442646660296772320113510977745139350239928786602918983252563838954755449486013965951237918430397687436710065547772672096528304115374924378860185891586677894064495938705240645109446093882930916208726359280145490680507975908742827509263904657801706472431129116182351476761344983712559509459428359498654209751901984636841549784423563116132830698748471232479290826852784549315716573689715592290714067303162345689376149416552063055811748327092238043910074175705937966022981475140285326217955575733682706249791660174637532610516804151533031086532755493893771041457612983658132166842696284367355436772704465875688168605593391049065484694886655290567195165331492817613810702283324375513981690179050006745079049103868250810168300464466238660657725052248132154778292741212716095889625421963657473376528933613679223891814891932180100090578275088428493139439218773346637793558573609361945932119165792114195885224693734845675400323867581621807343300819746418468000152137776666164677104988135169631895712724634211444832499666636962420027834670573753996351686594181421914677818058489361014320898991331177095676947703534601302433085777050722545196464154939730308841595070166074598675644019892802215330670102236364276349410667354860464062578713466296353972388290560835940918559033943710136905743505104581028524400757343295699244736072945890339816612873081061527055468072402153817485511538809180827089278680804831414381836759554408135342683529470007981372654929971693503075126187498545095118563150013873925394656419170802451109697831981678497672289360099563793518092916852009662257669796300539027045918274092702970660577224192756345315470591138504235423006714085604350335621088140945337445967599891903785886941433428912074728714583809509221676361466539166873811908482880698167437581765741476419863097811832913748543157077220683806734027484322080113996835242893467794405314729959468005862679579401361155806135911835413026722763740528417644796147630096686365515109862890243877112895818023974040111675185391391590717688912530190158397325366717050826046914152891463287841561494195790903484864289715220844019494500710110387548831415812994901312075898073352103547263848099216065123884093730848383381746619414826745301352032581780639197619879473186639444328474016569331223920037587023248420971403336283354659434450200961128403289051045515283492490820138748359013670616650558303575903983746097297088305196335016891458187331185345394534174095361512387799945754266514736044986628462625277158482434546543318530858758189761696341420024485543986643454328547192938645722006699928369504363951043814658411933329297103075521994804889280449245050095308912332948914600935718183250404705052379931472535211690272321041221566289660800148806432177179340194857012281315169860790574572543073005080068733008476674303893208213830100212309645577362560252109182342840455705256092794923902812018438896155483822579071334304256738167382341702003439593121698061299308242442456509209432816262011808477543008956724002781387917901659017327274802739780135749676970345846544381380717277539657532061279182870003434554286806003947328215840496821816855577464534658018760181191308478970392920234462533499766174842921808777949873817371421408200092446391171033989322691487046718459510865421434855671323542125653207675365884917155011555712691717662140027968662023278191070791910480899006732914204130681565347577925890797568561226996579501337483592650708627280795452654935461943926400702881715437165658952358365782968072394380683189321736595653127369624857003122073642381478819503665233527836276837155346813763916582715966430912273472265917096489275004119879778512659311490425326741859248938242248487161650928751226199218854982308245307472843401886330003745858683628482066737779008689326560498771607415530241234143124728155025722628713717046871490753252487564063327057543365339263716460600422619629017392399008345720614667581468250724740635850276566609132283222976296095858412022745882022014190650886875078992713255366047521992817074142720471432479848801219556211675090994440936644777478725052081842021733548706784970662907752731395219562377991257325390559990049506783956971833814765472526130790295543702611561764052978728459806726181693698089290148032559860807438423286911543809247625662504468929490754205923372337965551214150689356926492604704661437470873591134493357723967484850538947658164347841966539551061370118141042902138683457561606817390312251437702580800824852194327732188682827360251541468187647367618309725532576340749550636206724358773739893634775723359032230034092605464692704538535293438120525418624774249054243487156752150813349428707719756630059494434234695515681938896746072643218160471901217383281262705329853474696286689607725913332323613320203028136086155630237780353035553507178460103984282853341010511166328000363772345782036128001850872837391535997001152284966783466954323995856512969020331525663399276229759006568169792670399867900134891313618895789327681559294425871259419466512828628725945035045225397991917830267910730542882199930057293778104793588291802973174476250162537029012485181175762267201231321943254013134829348661141995619186777881088334564062565666156843392458858813888982599255762357354712795648880062621265512429182520736809833921805198487575992322422510254578627851740142189135654641384907396422560501023971492440029948795770438592623511672429252339700341860593068642598937668408105323289043678024665495222625807470084787447560133040163728376044838178567823620968490916422363931923310919501786833756179711905431488897355294901946379751748574617614939383628761366950036635475689268552738572189898515110037482289422966239565358526672748247739858332272781403964145824957991354357088949207217685698146623784813326018236641092748269622182451119841664692341192036869319904237300414823854388113573230903074351274258633306699495755552749140307677127182832506771797431907256562458814328849976630627662573306086885611974255032549787980605288201650385373623336855269785153609013017420194408527394043789693534598527382996852100807739263867862786514433738268844379193344077191874400275857083516141896460042807441054997979463143419764298381851620776059813424155585098256480945979338929108750690199515124838084363700276001369628081820753602579385151022261766306701633387988432076933911424443117642785831729532079967897651631884689899669389171461668524164107368595043594309405832647622262545254872033176847671277275679824431606567861829218769385003731958802935942362282032214424632485563626577386956474909069034973078612931337543465918522543792241930225470493701772999003362909597326370486236430717675933683504201793957270257596511120007895400216544963017303064796016684730003927889253340477042205087911909707943610869337827419236173586805071148622277957380192620540203656887654438445238634069792554301446749677367257988946292146615632577467389487299963533566071341052921471567466918787126546695357244654543930618442031379183162407650662597896917341265362231455764801900180664808809614339067167549825368378124682284655011688537881768775791879480848890422529097539565309143484182286076607660333343504559108039693549929259531083851948765688825981120010918323139260174247351796229611207183388578453608828883261777723627357983631060929593574805256526030357412234459819989495947020803161130548489941274601986542891562968909862072187973840794372737419336862917478617777933558437321029004465309715348974658580115443578776708086247164485761035758393210850693663804822015527490840455860249318466985217314416750919102455686145273750092006575791354645694102897278296888698793626065719155502826572075232623714315387260840676779163914764365957947737062134687994969863847470369469192859592377839341282455771396055589249334091394838128174278912922258685949434445720752921738026126438335254487548616691458779794188093074530462665343719288336513123948288490869334393603250765355694589426979355185705002566729741132062501067195990708820711471905713646532007266320860006538596870029147526757945397688708478612854489564729774077035189671949670158588663434837238947420163365415799360530077879513368783521605227378668378922019568165085451764862126072439486174027448538639804175132277956591999787094470475924522032621399907823064868740314595684452805144579037795236746050649233849789357431296714859709279570724141103892708623199508900989335447127022191664886586285416904714904682413273139534825137487415871058599043989468487018865125086190053427134216813868410601703280152083451504104952806439638867703151245283627803493311759687571428006667156787654150243229871424257834345731676771171200110469521842692641611914921642128948197090683080892279672112805444557259409690461272743420685381460252076517389852875790392487163161374516222409447825898293076120744576636697804903234767679512467720559714617450036086942081145015989084968801525038589484578643474451208776858450725634239083998713911184624625859055250689232650170542878108203136947281883903475871964412083326708545306485819360502579910356944890332606601058002121891542684158860298602499556645213778988109099137350582885325570142943926705620122411164441470726365866371534541258811953016388881972731169958842648363544478887694978693133630476523279005535537679127383779702597877318842420334886869593087347787348840850948247098561185661525055056335429897497260966820591109004446591160808955763515509221129418437745166085450480344149377104456680374710484929916601069293308014368237974166867785153221796527973678255421832431338342081524422301821832633986996731314488123481008920346899315820082948266119726777142203753378599255045443274618508637481169271562224384747767277521801543949378213556816827888192140148001671714720000097977841039173503990460355911163331657889628166291173450067155717388137532619191920544659263461776484732090140969765854137150222144903474416726291240739542118067260555429388483448817669912989683524490798941945106467822485663875141575689860081200135462657385471458332206578972690304865562476199951326972645622076012952139241845970051181179455785215674614931564735140046386895643981196377397793815607252792456444058877466997125699736780112393901570321314609171612200394219730283953748825100322727165464322370228850245879197987992307609791583376388741539317366421776353576166904384556422351624907913318205751484579800621404782682148664183570040292336869418629246475104476313275597076454597043187830221193652881342357051669034041956210599720058587770021004673559627188037423322880901539618377860471865305824780649233112055681600017755107968075557857520744697332109061325459248836922575633100974291340313601756785090548556888642277110238601104152357523093295574952312689822132420350409384235919911917135486886795906722291425048200749812598613913677766868258040503637467887991528640855815494008989095376892198648504416456920277099153139382556697815386846795647031422124775562835074731184155892907967518581731117099082066709205415965078166588594905832599134313168375629997866327279865111676410212803371374592043055911439398423042415605224201495925025568406540056553970953661841795881003787612866377204330081659385998278290410486457057506546386447505277561977317552009179828850064058831372114098809602908601070741050246969143327891443493655380681581085564044850753889923995425976729089374620521476775956820339100704506265536936516852186422815621733873616820747370730755908639613924923750286921857026887308478808364212664173037726687100508407011824464723213382384141899515888214528803837142012563952760397689385151548573079513306189221193047059562629174982142687760250488381430631019819283660649609070080855443551870320382768721912354574166673039761138989732071357920607751748124988721700586313485899967844450064149306071009317948301634652956862744051604403449341649110795789983566935684135267457056796319516567915402218827027398982637497988555394745417820818791237461050491922201668871191270062557372134251304745459480593404799461495080558959636834156672865835497755113190260095081822777463274667429405692443966033614347162212329784600132623253879387543121454184815944092215521921639299852559565364159381985095459970393637841729068536441821398832098946127211213518937435282214807650349036171019354659799567245229387216926143245441779737111828322849596618986047570140622095415485675071261777650401089254483121116740211707146889623285371095791812804494903977970530407704695113491570711035525703954297199800193347790701455524128258270638081207607700772413445123049621292147264672919915303613717688165730423850491390976320514136843907840194886481279884294231564770360999649894932568931745551692408812297765523508520959030259564828651107257756968578508813863738581580170337539011964439459104076620709610774457070692193504388105391289496222903074959275114745140952138655830930523982199674499589271371513583034029269581415319623510288636389267023692863838248010152007117610872287200676018283081239638139277721741951742297827375364567879063340062778235889161336951379292326848363110523712546963124429414639862128753379956899255159302481011140549224630796054480777262222432860253442748904252012117809273274921218559968634486840879079090079639868900074621553033099525616873975169169080218982147571967893025348239317523711047018499075605498546136574484217716978105997720677875403687318088048427253453303886275271445572661236837389320083701647632328965565288621395905127595473349385861600708585810655692574681086387371920508420074104478907030559266970053304775898216203764622565235508661015806531693912634026179598157042086680554823677916386546208378271493668732559464377817375973651725568861295334946663607856035043938029216047894728508669793780834502423136058110413882903092200605259499553427290575093227961064808358997369772783094006493490095601345430988475620952808865784969271691180931101871969644716756852738409026394598752199093105436958691921292881552321905379191217069351725464221720047790131910320761061877800302774268014808598679620109623181225354162299438974947792152979032174125982663754290863069632717066541626987529474722327762765905334591287912120406582477804267161077396081194321284342158427358260524813770704409770255260289838824066528439128522587746710515734568969318518925392284746862696554905212165497677031109999391095271210408507668012062431503315348119162779056568599785126441961733518697972696674600648918066945913142210012425435063186235151307148422588583774273648138400952505776910004288963177436389348220264741134904472432983169158566064583277171078934170945028333922846013755557952156411639189057400942768328478976506563251935685417108821236665979088578708407600898625895852903094997440066017160030944979846656284878796782019662912110121471955562065346570821016057286778021073071759404050055065588971037675718317808083812925796510970884965345784552868953474299920768418355106028227201367912392431576960989064580376007401348633207640723267169505667561741226146204617489830740196520635660097785047259266318528335895495903599983148679114559017863140007128583028675359361147926731433377775695106929941685119177399983154276477560103270899427594741327832368249940688951010648897185550042623132194446327303204422283779642683854868178270231364128801706441733719539006145885515427393662490206983953748579257094479070314210289339644700149242518139839202934061708585091797560591662967989822035543232754088178764986713681635184136490278323711350284459793589159603271426772897984795787840923962175627443238771164110082563189157794956627287846764798381086117661477702034641542570860909933346216500823119747253605145433848857202773897618780725605427211691863605451667090401963656697507185583989810695814951588294753168309251175894151904044497570156552386061374593768127922756629569059234940844968021554295258970291650209609590058188208988898342796419915460120004700451623658431391834590644937118773568920018508526504733928582494287298989111104182370279465602331003278815516506573572417526996969613031624407657458159672304381454192289070305914927765265576137693212063083952425380518320398035375722935712440522234260582591057673146596379466299138375039839064557727017685752110412362265660818183783631216121652048998845033761642437459208718888486614568859102503664230226842929942074670972472436117675647278011152005582413685206572296566967916671493944012386908134343276471836997682348379905921099537619287511407243056360556943059530698907404539788595238058555710026704192513137803886810045794670080680525405782667016883733815630747479745679069263414858957887452630337828390932798713647423688172175989653132608797974333683697650772417447272070203748318208330616272441813012940096899702646131208382801620862301491098489520163518727953085633359736828122366983109950064215334280322237527006442201627060530795720651034925632738912236296879581445658673571964655924049849566858211105677147197842517140099513336539000724315013451215346363835980761356900657067419112284023402406379385663418517180282131667883547157813204114354355918059974207643191127936543354222812498407267391230528403085744733055131793026758020387828685794716332466329718597900584039054823425684987725679670359935566805365288415641563197272036071200637926058622361947656954958777534981036356791498008094568285642197339558426474363191180851344314140221254209831692784759864990542283563546453143181690091979452192236674949123111245989834900350835348467690423013018747111211739216427086930124468085377206945883969563189401291627899207036661452729500238503420167373677695930018693738873035023912757834192770468959871461824027397319382405339180166373489130964222608721200830871292257453567486925823474028672334736153304086863175251451913603575110583941620327928743142840434401094568951877287148200227550628135724613716690731249526981157775447347141929520020130256742859034629487313826401768460982087487577438801607732375997092875943881901441442397873139883504394330785031266989536080829801880489862147239921158852733149627135524212284953162364448471039660045588228713093687571719857493764530657807322367520640977007274405983730323461420966412742639333032266198994297842726186504427033212275269950003729382270334521577259461788085422579078682704077880180339904835699992987023317286942574411385126288638957644351396664352000653384505095530645411021294002870813533100738721214339784772566550317864203324243186281340968776442093170657647962559405036054112423316682650811900837729079919557926462445153321567919092929263704556083674462598689258840666281371914322610871486558957048605090812096756533054883975100143884278955833954031358647750367085597163181035006161849662143163797022908186956477521655334699473815732037900686853212268783823891536881842428620611544839591661335617548489613817712119933230920898260508288810397759901491177334780545382413161229514263174389783800010513814509175691309393464849394062710070155608709851327328824462812114536276178213312854632193480911290774772658911057211267204138723699984132834529126599768562950177435425313184447767005622172854661903102804779789151379446133754911495501369476532379626262194264370455099331819887657478761386938881510174675839301221482942707535143802504086873346972598340122185764792457088281493365293432446900888494358095512125524767004615798450540102302082066222228302342207887988510243024272135375478670589145943685924669051137473941673515045982468836282888118208414368359063690142166341763158740462795339272728134847368583660888390853515764260106199706994496861131042742369052226669129487062981544881133386307473434094185305317596488573226916991202535356827562434822972835539686744575884541187816077513078097085286555475999392765808633698867061623397941048306752342870633533125422841091456704090852133649734256162260936408599800693862576965306637632536644577728095478976426195719478411959839182486738298149222966578337410819272989699751468597882928534806647971608495477827386222503209546013531203839781018364340910339208822482422615639003974061532371381096980045920342446673069026271515823604909500589303210394720054070144471052767708627399223834006152931963655873872462969777405694786355589340641294144479208578588267196744014966666399490954416193087047474342773461589117343797476129486259066069454982994604971680881583016343619379354672097253581149308719566329182679469814068672754961700094562648161304750394610608035204591620467467418387965015894659781066974733499058887235375478380058929937398800770282163767925502647872053969817892878384740715947067146403543082609876223799248725198643985827145698908716562330673405437504225714675857939406496912866765599972702650628450471615640639502136136190339086331579770338125528532748698228326827021898678810121094442408318032995121169672211144352852261099940443532006906599276166214304159692648023437210787313848302012430847700763884244875926305916360305102220019619510570356233324334663182454896430844352297418017484537240460019209035544719715656807431272660721548013841333907284034043851372842358810893104134158801195506773611919659621779221114193349401395076916654499091320816376125085001526203078317644318137657910729452347255738117327716997779106801903039508778535927065783325742534670517216941422572822419537684488719796642409407631493346888176466919042415095691146702650161959368557150907753816383407652986207551760994451194350390699085696599731316329967101926139748378325257625257058590590293302870798641370519808855657321293108867658074257080181822604266516071755219396960134001450085702784035378628606893298210375970839158915094609379782139004140510997194772675547599539452853681146501228957218507231433553080506882238974918332129913755830884277990229217103754292727781506993260792246347960944145930777993846843679199573319995646546789555053850225135171504219982058253599258103689020038750837417840776053387020579472077198225720413259810998901828956484659861456667666639890143430995655397833661323051372226093623867515976505992631153861652033079943269650547872486205987098861108974245037726272962184310642337424867916707402532771202105075209107586760868481075896004770315670268891986274728885721046790753892547013951941184285193309519392961820972883555356364092426478617833399184437109122599327871387240412244914290333248298362063224808642554603976638778526512998457757727466402307159553517417225201779299903476397547569293179921413405214796296934900408493041723974898413692747892815551699359194849793092963833307319778757965442747818735728309735828415979791561765177443216560698417097417238912134082177309512390606295937146570243313463696509087425867889366648614112783943107566636558582334995037634932316264410194774571966514302463748300787792106155185363244442696675219160545863101917862219994617331673990575158180024506714150078103604712526036199067341524204530518355542384368432386749187044940993717897210902346665719313154077520555117680674919720999956427543464930566515499258676805107943927257443581845827902589221617511978975596329033088181133332147374996097952008343594992101968986386598948042538427978807722502342770795698148716800106833461695142191490804439490780970281134289133793908085949676141907328636965158911212575451291772690391982903991579676424761777821213905464236228666811406702492348788802954797543244198335463982177742169879505095733018824986566617807359768147579272571669475626296535734860763895628436617180950696139503237495022538300576867563704798675112060682626543361655897759963265661676723417222097643914387352146436020666407174357754894954739423688707926220724465536594754278633594190542592550928848645281618461938248381610876467432478821273350371841762413877661404056825747300037660757598031868263132665257313801047923261946330019351511596111870341002606756258537709272022577658433567284858521823687500713057488411402515477763398182620446041281725618677219312010176819859369433072730006839470030009896856982124474726871112805326522329515723763014416586976132656483902053487302006993617499717967060561300036788087260688070798053492674361776068594318171489783641416305684664062642328036430071127655457990719458731070246479383543873484753365710529216223594803945342358414493273175295770743723598185262503271480486835383975290952064653580411895999389598643323849485171439789517814612638950420986640043945411432434177505791491299196957932348164514094450194553416921609638365140372430314148588458731240735369422720074131119423927575985332331200821489198045275156110417272099254914014817362306613585488694967033205251153547704356807302161524498526548430700097122521104216712584031876532840103378583126319927908347425092670135333598263864429151388038026478683836541834580407511295081962147917933570732611208126597092907233823971785404964226978869367332395158287437054754238188057242697953431263277855157654135292540470364272536559325144422186771513955378045529674198012801662695423571038886522946566987008031670057615735251824046651999954283865421186453885032737084338353164040389561636292348861694580526741786864110158386544487310281804469703989628089409125985038934775116523459412146690433118483649434956483673187291590749825979534859437385126025734204837450491433462669448167544843593643846484702890558193246894292026068094314866454134182560347468133823517852637652516603272142014432840277716647414495131540529015286701437767971625803064059431725296962600690116900099082224243919254007246974301621089303763143270480052131462619731360116431632102153095321244498356120393846259693474010154503641872196232437814093145388329693663185583674286235766656862406541298767572611538753392537067444808889169077449360656780984979531082756844027046666626276803695631976299289505742330455954444813284540815032730867603293264446784290042400114941002587469092436047444731365100232770053157523144629790110107632427325435134832054350660228885768723798814083593688147567787469034636983520845072229111730126088662592309616330535423160334916158956026916330686831395243273082550728185225667372548374772882475840121955572188423974320234342425465034096943681734592798402668269507262929319259415668405324778998040169607816666033130916410079118381648953281036394687404500696208628848678924650364617578772773882176959526467617424253531232646074846504851565475782194519067375789893593340896830573307986489842791508535251495390775411874191026632024087263078581572409736782758601321618001459592728655290603440311195844207935054009583582878110708365750620153234900373173624315051948582554986512518657330395177595692387941758229865697270361436799890689618137832027903621347235901137038872267437295258154227447188119492708122951853494726528296887277151975129147472914546127361723098982438199607264934379097780484727232864578721312865031503865504214589310188352210149719687800197311510651375224812025487378323869693324503628757723715577061743597054600660311999940687733668448587175782531995468575647873488186933235626553111721616268997277370240370016998630297143287403252153025222262983405434861900886338925790770375013291272934961032470051944038692833424740060984314970042805035816276833377811839567984259097809745444762770105760509347834451097806253237813484605530472155033872915491644187602352287194556808441701727664228544542417114698297466723981465695958737534400489317329041746442908757587305090589986034563216113296413353922147497989241895817194982052100482024631025064368252047617773905980512240779778174979306304378200624364490126523046369955479237712959855955884479475855037918862967947827527747958851581025985747694720782018902950449965972958451321092090495761660154172921908423902568097353768472569807178004145453248825382997973627004230573862424287746553785103500267017401802122212669950494204270374434898340656865942355916083442055851871163523145700380281198053338143683094664297106988439529294812669597798005756694363782291079868874507279223630780974958734027763711088696524672777439244994995372782647041289659488273473461200145410262587613185504950918844811402310325937924131555037123979298116332613485805054029016254359264561131404964632201198809281841351899212996564770631168545474072645330613179491959059726189589075789989551294339119931483443675257403932717531829247113860408369166282235920713451305047093857102215387758016896276490601384807679383639703789138052061858566578859740094745762915128249178314774535357344457604218537766165562744968726882102630129585919069646312740317134044577066174875499063845005792711076806805088033962167906826538824478212606553334227851802312879235606020310094716089249708794032194069062201155896056601032680719930528058207176833091843347797600643326925737446645804230050763975405185599408090298500980867287293740407352422801925431917729758539192414421698182322443595205419296783184996448064207567437046478284863440339509805975115107539670315409436693492497211498391772988351605923253184051533063251164208195207093380226127273100485529040873929640027025159481182323483116396862203500404318098805859144625651524236613979009209235912785123072276919766586419926873488738834629679882120976331077742607743550659316384145585025126618759726202467990217470522845088996664969224513230496286491932674590059233722069427094991406718941521135279196453424977880720098688710014992773878492054064045849084893499795554362733718841151234988292793782454594262424066121720902562282713523004882499713284076594312714602103377373868295896434863631137747421958071060984892562574750910722008182013212537709953471365261787428943710178267369022879909326502752296870111541667766826447946197621835402221459669369015390905527284927633720073931901881895130527786446847392731803337603463374614377044810733649186258038665851527340852029344173892284501483711412228278071401830855500706620700240082992611975236377986953475982776660655843428841405515272999940832061107796776265331645510147718937377507723597641468910832587838992833849122122601462281561337708381424437946372281238425216359774072592983395695098704309119255544859133286168545288208696735450069151976613059814958955837505248480227530577661202259792540219495041922154154491930918549040245674454497110760903310142137155605867615485870675944358442516701843190777236255623830342417034586875251937805113030528214898606829184997232282476989902041442161174272557899268718445997144909377219229890891416558023774340400601739185859116241843972000173130209138825513704129595632940349448958306338229449002369577208162771040427571901770242110747510699927965893220309497758720236464642072404396984765027796405284081770920341839198405806469162130806995684295878316040922336418009990419315629198074086830451827021497020372371274975042157178581667121583938201899594975900238180488561832456060431861360096360698764605873637048724875822646604699509734963929044247070602774170740728366578319756443978788279580081297515805341002490347161942471240259566026344066683535031936023840250842880577526811866424479075177661580516435188349559951894765537694222365434587028460971949235380300486350741065874440484488863731077808868635000152996318230143579570201285198115833377789917933944075606789315119322723716393074556351954710601069077434716830746225190329152636940027874744063544390952510076759067362858748071502467477574399076101766380001884886439734204830510145805646766929469578041836311117725877915758613733459275642565839499703160500830744144665182757807807075967194693933679544706915862670720831774539744423210401212803707072432038617257646037867797316537531442208565058339608260483665644696227658357292181274673740616321650350161410266695014326219790480400766102345617691095941646766456538399055938549215359673617594093138311299004115328467527516860448807956127086896280467008040448570664708315303476029701110401515448602743025704760125154854245988175443011036012243521728301829594883890683678862825813230010703899953660131121741196098917554880857741543298920651548174825502237608471369473914607401382149335723521967264672724548981063885592592306080368021475139283740429471051841100114343822613472760755768179549278191823452107222424403858834634206567746018256524211308904667826126991555518101290757382110748189462842382445993868473091775684043503101386448983678718983015836957604572577299414100756657084772439048536121062004704764383459233957958213752889861458653961119345816255209278840808661639313369416581016657104916159467238378240290822814162939529493920534561631412514322695166863162954442003623813073904037538344042915798670558600724259829415506838536602931773781784271068161894091303827344317921644291507215277592178316156730288267603810907354500356332153246428889595581315773318455943095253889463664675160073340341382467844998211940373746767342318923293692110079597414603653976990649347730294764230675726002533333259943995608577177051715808072719653489191878012665326473254800905832756026164777071000961579609000486373413740857951655958236352391351099122027604697222064706068689318618145122387166620063470072666484135782904725797688684629435937149802941669523955304694664619324891250392647225811715253788360244744076801305850860460805482388617603084812163941167101663317980083088388946969131566115715830166108326921555764298671797669321143355689953711269774242005125565849571238276563497761317385251273028319898135713734569802096363938702234408438839943523444354900235740442002283740523045829878547045037476984669899190993972194718773859655485930930590777024222845800318487252483706114051354383527325280883347889232758197050693288269781441906436961140221030448786311944301743155631711491403062580765421025494104270758214187241369722044114798651762597447035380920605223804575600392697043049036792186491199953890127257878459702199290921541768245030441081637702799929699433201870170086477052283963759532259068664770853121831268187755865169158422793999671783583488445404961703198385769387341076145564008193054894736692468082015087662971984394403717045674130132484572544689613159653591268993445522720049489965426439757881143671609707854243331003279136111216322304670552964396458304701151549814376108973703669378605826610674224491118693041130387295281954421548786487551164713037959365250820560550598019401249432644799754084635537666706756276063850838188592792968644022777347828742398337857206297827901856487566325079997406850680310096094076527503766097380664407879271715314213846569049008134997751685816761434075726603387220324680505606505846335779011378846005584158733479332298456706960903380964863341528402281146188587797508387730193356712218641772572642500021843001879001245473436099758645751717176610088965418708201853609866198518080740988822364235503331856645005844216465164883652321327755045646993259092155857308096242180908508781493854731526729577132878907259000693064551397378312540973720005487013508262451146085343306035492163968555730539393456074266981526234226111735253555474082714968592563065298485785540411197343600483632920546495446463427444645162831665445378417540824025023080293537733233669487458938809223742924741897770735964395055099054227727997269816849424715801375664073500474116509442558031609667073491156218263095772403138564616484591974831380440234739566698981365614685491012564350589920638251850021436918350287749071496743872566647464467704704468516282541189730236100478021931176061015014818122471725161413149414114801596886676043743616596799344798542594565167694324551782317798047470693679046348020451766742590587748991725581873495885028441985831848722543236345297393766083893175650177312921099470835942441547007035418067643296830472438193706631462015042356806791073181947927861807037125445339203166407945587644448017216638094987953557049924391152201039612908339689826297898711309802106533166530056026209431089845158365930489541542418344850482365942096764544104666863019575513179072309843294343892596779380117437688874593489507925590011836296739278438900886848383620343692198561718378391389446961103096621506671652558827220916310217762034822134580068266782275886941207642328767446276610803331497536934024624715238938701743897683117655443256586823081153411770358201572623028527090357754216656322747456919476558022587173437205257221308299742518747821365027386218806782189207843276605205123448779243186910272386568677515569677860965656951489586698372316089046472387765940476677932953292594343030036418242206673693477960526317014487636637358221293187634662155362852607484426147896128605199697986343345440175699532541186109363757939791058421396801755608891725507989695874617469146755982596979979998041147766263446408531500039581667483809150024719377596059983655546619147666573889512763869865391150648874024293405292693730390260807203975172770895360601590290556792874613818347478293889354463054819658959049883939651158999654443706288520923189498044372861014328911919594675918944407454963632571488714633426952341733283393034619962735014717184444971179924729465903963589869796162580538867300019615005447465099099806463791901089100878588048712582121788572476933021403324882900225333220932581873509613654324311967924433573241245480114659056980947616165559632352258948922360895862580197688290221470612981347196961007288390636975640402168119799086423122585383873635120277194924247249639263322898266488882960210005084208725185726971487855108741504068753316471137246054882350625158783738645591813993608831320749199116173329775620746836651460658110702390409591688036244108500822792305075413004173285641222104715937221130044810549489324953695344227126751129574251414891136772492943147140604713492861791792203913739088107226724908695689569000842675504467697158284801774145120542160468230606061437385588597396148851492358248510857590585624342419058938416247502127650264217677304846655380059840793609070073645365695567132290677712819683358968352007628625964801577383804733449406128513331782256325127419494856304041089837984943008245538794380485193945479556978681451954387385870285934852056144856866396066509571818961547345803933359884866115138934313910986770061100703777974872796163048976958890552427030999423610185491267344165757616783695374934637513477551998218964403010623477671463435644899592274608963743237144712628194560045075123362680407444043551739652394760055604433518131932111089315858159281007018098861672671037340641525211396971952067092012393131284417323826049345008472766101537070405732170596386928288464295573747007250546755461387508774153447746755587106021492245118175142097791781505918447248194056863525495864663562942746402431782955428224348007638427811837683147286619994515724246480726979472652246627642189920756981531497646479741106813021578105305639910744569856995611883015407256184507370940484788518068569230774671957090643608786169569668441868260347884822968116272400721377779152980530328185685730798787664198928799258952491840585914078038815179152910907462810301892230144700521284991783079059828460838480843785821356903396653572164363063214429989656599188064483535380349875268499309543939327023965806300476465895416476505672951061034863487069383029717638915125019990923075383715159526926292754931625066733317263992229052091178851887857586098399876287949184047903348615064325131740423189791444609102541492880596686838184545408339638964579001121442165754773585461379168809267002549650761555179378927993725843361937493543249770421309138946834828990928920535586152244676608202670310382716884738298981145511353617116057006544686087532901539253017460207966583157597579775081630232728073966569670537348944699731318335949952593359099650203615205516908691857290835734719171135890151724374128449654541883431311276238312405411733039229348107828368675102980276184714903813712720862707527775414218970431736408844714753858687415241015605107337176983686254822447861254303777367578114304043713553702779780874769041818641489786918847629309786292674349665639104488904465169757735476048599067639985341867076020860689366707078287547982917990784584267455576167102336845789482575289732278326121336272255682564298978332649694421768842846723108543175261465155393488621667712498949702839155586593721862194779648569418120688852593734132918753191738011644046413329822351063649434455952249431482187294692851854804414105354644456346580199961450446395464976676134545429619748566733053148503195402211865433678682034541788456618110112511158054138909035114068656510546934655300109301434728140542298298579983214351662251166490070548536597206662708011675834988176942598116808781227972819247531474752253135136773956627773043875962729019597456061519896882422582833653172821991945854948942076410553581352379186838694476291547719392830519503478130105630041620296340788249435456765213694616880385602030423742893782892857431067559497971072794625306531504561512499507368462574848880295210731497069321187375638950877778515515898067828172683311478537337611531138819623476594328083631026522505498114302281097947085805001445954776986899702183360420748483232159219537085931467088375118618804288753566370393926803495280485531147454592341432686152773002267345210649517985239160445153250506820251198292225591108604986785044260580575815419306497719468079625904903882233000353586357313474503857059162273185236579726812233780483673744547009527597597303624115819849017545575791958456751115868535938297385378910115773638185944192930170136929336390802030182216376395693290665848262404657963948775528800880497286949982148675528567785529723892911274520793107513869700247132878877848983360506600858653827432808106530842159309974356646414146643444301749654033828774498143225437034662059162779879554711373063542332924814731726183555072997011264564080271735905885185964101440958261026853856830312150645902074339246838670157339652104698003291551706876782326962941231812108584224013250188344856218586307810235461138675169037030589111267019832803039484436529723400970939846690571588602449797445698861994687319755500978483811043385855135752632909314329086469745041543543374232626218036292292863691232897690062278759719691912907057875491980135791294465727176601820285870702556327929491968441365883005392271861038648438129898670103663000301398275356426083074865343475873054724185538865143700354289308961630806717901186563272167037814338395128315961979730299476211708796109694530484577825699931982492123019743283680052353063746070575071663289794147978145545381183295505341743626308077323444334007149649981250534877108144309108298327231786725373343524936015996693161820081951425322560996683640461319027348370683853777525989203714780121932265762129923894512246860007297593097658701550664445699607349435332744210903936774603684695358956136592026058238592590294954144623371754835844936849046910730607313358682289237237863055316932450106719812734105955351600570762720291524383867474548746237717260266887793323897177170873661169482153063736152655584982026696747008920215379313339879804913042681212058956353487941608116097561276188530278161080203525810399122438067715015947408224482283764300942546429833266105788501469129565652293423892859431962565036789420091253326847653275030017306500437746749025518872814113225752265380817763890411717572274884663585187735807554860734813335200237913251343598926331728148626879288491103523284794914905429975953295678896381906962128037522736657030390135251474037405776462249506212453222955225572090471507352940837690497912624005522122255646200435280148016082397235124663111209509094087108034629559720643689523914797557760978241507599088967340472128795887368090526202316871376053645848283814211981980665962515718768429007969781152616936873897317469431075125282341728492491010037822411296445291044621710072369839533993492421295525227686575967394558765159090595241720050237856861066825447367438874943614265202735782247968084302933594853396012654062453022357297605641674203446123859113077490848880670903496340586933827451056391120452864242176235441383495074747598053533685004967026244008217898251521294125668528889718261535623051788640140433527411128246418051081906933522060768448921434792407968980596003519769175934603283448731274649132688760182622012379971823150686107733486355606494600771507202349877452096436574197994629120161002784270059130253549458695351993036262345813502866612979655147866442996952080977350520887055287438164054790108001307651782564549341274577543630178488070322168994136141057936318007198356959080595476345047039638556179887856353551533164979141386485152104837461434829965963695117632904846910601705087164433502805570848344866415568796219714770902921343814638318319098834658491969878321617853354917129930252612226270025228878572840817399315116183108845644951490451029789976491897542828558499923688274621473886717786320369402358103276029991483229658849411047399360773934707227139840608417835096558925758959329346998291810180742990455023233071817622777291246919354607548981803063167758325701247877226569099085310612127684518600383094479350546698886697444977470633386123373608627749680386000500199106601128556256968658131551502423789158070307061290724879970232834788505858203115251088500694848988242860489462461221087265091679571214649345742264987793989858500397138760398769039748029013967757015091178997393367876770944347296190915636368339353153083502953336733809088320161556973618113666122973599974922653901611958972743192756582258774722768872598800472614138327978679807946493234836494350894207921026441285414389531325685867051047116202166541338821611671157917666639539559447979417825033005142368301318900229808549044564525423653218169726636814830143079801100108917366319395722283550847157317087442792069370684059112573211750190185250758571268992152226292211599338680775859891752308209380353976836342228168756167034998734581359016037205616579964973166250808514965959646234482650415340308756927052387858352350195798929793506195530131302958682055381548681592481207608728954670150226957277655324702238759838606759160057239656792868803293055831023083161535336610092094456463916467772567571476828263291181867709320408953015392016699159646874951813592066022002363950409123948459792659765568646839774665431049564620924072088671370585601502861398246851394540551899670204700486593993957985045663355663184485230672179473292893614176981404021377318987398289902704611522795336448179878205562319309535455621578761756606684904397633187762068205864279160865194318428181722998656214491078843956869702497008523723045181803364046890192552573827563947840502765804255169353202077822175474061799843624469780717185471649971504965891099618465112151704058533194541779249569185719164519052594924318411047283435737053695502863444702962940182280998314771697821009976598067825369732132753785096537905576518089720030029117883455433087866309951962904187762361952864785770681750378145996907110460181186492854330314303844741665923136531550402642347127822159997077957550698924895050622688771974127197179643310549424770132257065086113423341850640224859624211412731239217517613721720136355889766917730973000716685428605438407287307328540455991021926595143611088953384943465131302843655836673955788127251168722249505699224963030606810523295287991933777764894168896270686359256945654888890511359632561827353461681151708634561011626734924980559588115985438943836608964810988606266226517649022021057151443790826332778735333514301523411922425472717483092183914488752173489786622274905524426135577531685429620640346410670510983538004307260314524758595123431564832048537242996415677217516238024990874041438090146162084055393180793778017526923062456501288748185411768138583240250491079215476780485216843981843019982232269519164382645087226349606391133649495870240305937984116564132046052828297956708528771989073202277079235171182082933414481419764788704129186754567718265097188068982160312835747366710771211184116960287244738353866554914030526537973572167994966214865028787812911902634626678799549753125088997440829243430061934625760104478601758459127181815605459233443178861394324162264890154617744453693656803141045893469021074272231646815098602052908298906335746929780505342302315632686167189156231292713702377518153555699440173725466701717643148470272996477895690569666311520343814697195464095405310931404492160571881742207924225341753703218277182121520073691821550996187833186855444584193602052914535726915315547948888101583294228291441285437496515231348898996575887122889730692298155966873718876799695750203028070023127941170860643435120754279169871814657289629900303792030290477862724887461329355213357497083722423278497005965106723488770098663755607665281560259353650960837326958540271666093338367109786113986898395321759877151031751394818263805022470900448398467021119597136470432939145364072982981910831731200188579469418243778862100860208378598010049335649746921442447566251430282222219882091334278014452227864376429385055135727617585810816591921638219952157222999942195217507177958243078483173418287103818283906072417278325059571373290963701206436019040603841645490659369461869919099772230783923196711266315924579662405324437514647954257779807128932130387973745588067875623984562400433677153082856023018197692253531645211967555513691611744331565229928842514998874151119568428419165824164931084338865765882119028683635873474135886617556578943307637144734416942253356858055921723452231822378861646439430343181335897223493167578803550141117733053432174812015939543422785971339357347018258403469166967931978087709978986735769258738575888869909425141020786371217311153291911248597916100174565995695221779768603478201081088929697725373607101769345880638832517371473756217924560726486066229561087344595914803909114795265162864811781432077160411357563887137365472622438702083512303814472317142537993018532013758878037471609999041256363091121602321441845586322025964435348818212848640179152609489816057437476466027299616394928452196144749583283688619836838948003237670541999798940233261135033953810184451544609207465088881928410092481921541147637910147439812434420617413933466187966654053174481967573538561302353979157915391639325814251308687551774674612917149612087567674073459476346361006341991447165257290044788601159995500402595078464049302731901901533274992506872006848240062344833467983122161060819849331691808985708441565333295782162753152768845878133883463514876246770510505452850669226871886121820651990501053485844646540111875830689637879196973256669232852135342880543722542968347166980720491649117036742173592739273818628732418196128533907301334292379822458364903542787189655529322070284786357281280399911430834919038821111234091539608911984777289683267853784861370287423660215697324229898150902668945914277739623446613448333628313188866023929358045490661096848218748507174767812648963814817996394362394403107510181385512873080025676163040995627616023201064428931129607868976801626866701313859594790775601605807003829579692374127764968861756130856654902878051801325674872283233903897585756104377571200389859700615717511572189521990936274246903689407460243356792215061807315553430130954873975449882560415983141340941757296538472236362436736146976709798629090770259152353910834937036726220857233116872651053708476063475213450511655145867582825354267749904049361235144529997090937629165304670930620242119848243617299650987149445071172136025056087852897082208426194000886369970130943011398762196009976893288495601301250859110439791537845281507223868277287058824850794802794811059855001291981222918128935853357655653865505746985335545291624127669076980149419754391262489175844853822533568820751851012677322999487465325405467142487237838684055586434855979955021119123042329745988400520503249240674612009479042898490248100285311773313089913726414920787052040970282312540078834370516426223845555252525889358893934683944550350191455137397931598605772330642463528681209181433643987390142410290129363928439200806473052212024516799139963294565004140477716673350857116496367364224440257313560372338422777856540250777576104710088066791158566662574744321567918808035973766038294792731216196720574258541978758091795457456991456112929201761500449655345298268752373909823918702357889013590328283327208198354955395891539941027324749716977526901704655456228323136199488853046355463393757593590914410589859934672515380883517236262014461963339241985721085342971959494785989388826960379946238838896050592599863231753954326828434968570126340240997353271632214296035645845540132418434859942458321946929400377890125002292248941516279900763476938816218277621013749559031595674475558360044668020183336447834838746714058838772633460228435406177523894635660409588819031043447761266674333409596070118370271925993262777935111929193187300045531033505978419579036793426671532039807732311003969147655668866562146942749498566548283448100010709669684190790372320828096354346416795027653761065124241892953032493119545564736236236083408886575773727464808700042938981144136284145786646127755756473566789252075405736483034379204478573649755766076937510209462916237448980065401916027176948526233136701079510183195351370187033142809784553631116859088816969588698460977669565891222439017168032659352367431447694095796678480464662419952207918484071633574171654332297865060012160771136868260256991829833180930434653640717306617127834767767805533732919744169433861662754058775443502904796761873900934473094397333780124461934165046096079349046202803562615295717367134014214485288102837025990268379031483513502966401870585245102826265261186896840366722791899965422049578606549511129386880539774821953178888706849481283665650584337620001279656956186963853671245977984999010345384631955355549934302679379821421536446340545664526695418706411496724207653626025775223858836783142391972657979855539740301737649823953150833340513445677607276021939637097985088447813397829871690707841499093213011612565671021300371211368328131638044367801223828490303198695821137081696518400078589290573138617742019063331126103442448668835184566873225901729862259499365071901870117993908333182307528862678202907807768370953937702090316334922406323532379292135291592351188716078722442085488054721486785114828551964522501261257993606096925496073730518530495744169615010392169391688355032324939804263203396849379238171471692860297591942462349422921305419224102679920139354236064571742542731899465464804024297830425669664282552471883416805043265457415692056274697811592107411103305157236405847014260965312607430740842515898598769665715504324037900418394458422417787223129782770890038776337518157961284559930582146008668794938238200362607743116239132424003774660886972694326311895926542219394115182810211937956684043928011027392255916729532684045499417028708530683484283313532109266394320573449896534501250005968114842891881046434405812249462674862519629409052506301935288104353448645355080270417344647507204990970943303123533649038846511485774497558674253172714727039963700598401274258523406052583399016360774191891749323501045580079727367490013993224810347682331726326819479151989248237966873227326037503015849077576161796589563863566389827067133657653338504503198589552007335109850751060903066479737773295729059765576002357766024281596695396886436960226668164194512997020934996706574744895631643799249153883133053960492272073253015630796743339550452835840022556138044801749758800383197801750474829528194120978615947513448316564277285169267312218796123876441739282287007529343980204119536996623293455904666696688957869240343934110179396428575054368036758353011461322205597456965273851630170111545849694415676649775547105340349824964234302803326815148518876341522854330307175994907755845099451796850977193556905593182566520508757228878037438610347972745376238744567865013832639160280055045937309652979907024524955584062077474516306803318943096574581441869720152297460109988726000626116879843819301992461389668801671453600911477633446820221162512885148417154398578876390711526184098463604005971174592721439832502609565593157825171766935415388950216239765581792581667032519965678997596480637104432022467366486095993672723297270694512482774246985944916730241606784749553324283788425686841634706021211694617031593647004371205315504623786092541631373902576788527957516068898866308478548085932718048900343111978068536524393134559682362940348245271210019879280818434796120005229095393619551257908794180628123074962938605114796605503954177652722121432258605800049124835840129800610591866097042228322814981643724554738254094652618937864473790483707024969769126527234928377147610784228689648017118744367596676393771400715230836118525683261894900339744102069869801226531335835506515946343475297716046024698377206566663575035475578631647797447360764544794497521543357944139798088264172851277779812093604149678422497411683601419871147951658330605290361583578367032424446968273690887157199810814747754901495712210160259996414704300412677888734742316496124551305095057183635505769243140744645014491519266342340057140608398461307282822185917001466272774975938839200935019853553065408993737499942156722668763336403362691442610403351997790656751068304740022210567746237531136009030566645979796191551513716891318817860947105041010134228128170333133605611570437207257229859992801659714646645597387838211619628904924866136252092545415937715740993248145777689577894072609669246102241924589609769644594512822284619047134214215622777367322403800230233802077711755386369752258808358069087413599901317273412960109200260226539875609558830092596545329531382220056527149285147985950987868564760715474515865820549546804942760012403707848462547085875142532958785270165464117990220935138697666654610584972820477552763934773792042048813587933995436039400650383130867059868646226523525064020678526676312770222871995896302942173549513915361778419626277619565767504626752026965705347706882119673578361784165488804134934442493389984043403396325215740158162918274374162265447833465022546435241411026628143354827939959568944811780771101275639410108280575073436059089119464512560237775080360962342523195276674334650611721953968616913109375913815681271506080732185156015813583457346958711671815832324546189472198743673028497848507040855356658334799284315827136357895077653606949154420394134171084688792217857339740112513113814108028043409424871120734207959027881418598013801982184509163211089879508488255773619855024053126353547781030444540254721870685046310475363698821977939467597426018285577997565991696763768314840743835752393098430542487775500176422437565145981187172448600364696688183565178665307898914639702018366271456858224662507310386856619228403216144743727845667943483147724468934540684120995791145112952599996858398929508066808239158124788985649708043555599788304824034927387662786059897733877445569991960463628217768135965201016264521354447023052736131384296072122576097270270698109450332939129846853654255614685973377748070090051506889770425468457300011609842208107068085223127460166775511777714499544691633590429022525956563419555995285185135601393593250085360145709130581896745138847712417046253342222057453817058707196181392290008960896594951193656472197202055524147629880128510448563425206098883584707648756509321997091085398789235975120957598045116070193028974048324183330522800608875555547663379775186432532334888058774611015217223128986284933435147287664952656505780363522326049826792615306217604894980925208535367516567313335433831278689913249838065668828968526649384083726301650976014944129959828854265271429219344247715258398467479024511415349488876475550873733485579563637622130934443196449000178213071761246775890333690204913851141801529865618636772705188954650572838839751858645752034696102907809492350586495604473269693043878761965673494650268162300977323565806834886979544262393424443964220247275138708503652560386623866398246343204734461700090016268201502547930241225512190265236742840118781392599069793918623758662319821951909977357051567956807743204769212290155148811231078579520773522386221561642277527930177820053583134846460642946155986077865150738835961312205858173598304707708802221109539495909768687406563399216913222842378243789067485657206761012848881802546359918630821676840769787695592754971085423810700508357343077862059264958933206339385288477198879868959774416277712395967228188152895471111869011282050588475121708072667980923283394470978017318182305153363583750331350020510373337087701226824024838995567115606084481764530522450080064686659321135645160984300876290864541590879759133346622317701426820904865087331831745614161077709503506089412143786584710282250026474356068903838140154968456427234678833669479297700189445466094005221626841621814579865936132907948007014336542020807039589023183164740351069435994006609603412733024662318619755826739254567048358057285974021885118453542003396173972099340015777646533177599915182017639962480280644195433004951585709366288887500084839433629641521342839403826947205968867516169203963222219593116400797493998651376162500047093904336863917816091923946786191436274775537619844626025731213569869381139753868016555886829087844419243358196221736317239426285613836242935596727692038044362266740554609131968900373587866048355804516278370028197566514979242686857729539822612340917185019307778630607486964189518722192716491003778521780646835676262658176312889904394484991699958142729895946735514231703693769797429430311433852234832836915090673464551022735333365940923808191800064380560721231638260897102030825586245770949291728989985828129543485908224667449060505686854780102585264227817527973867311621795439607193099064742697477532461626692632678791163091850471600968560493234018273173528143115407709061887853947026638135618245507388872019540294984261906453624373471774557532901377489184783261202910856249958775737858024048824748273369656850722983433597333008839661163744199211761927500197217498677069794317250149669836486230804504445645351187783444961382361104058386074306162905437508007296757545877020040657665697907258820972834111025062919345690781798310515929973437403346240520037001610131044840788254788584723403735197623471828069735935481571662853107696485991733629323194134460178303008765272876469902090671111318456048597723140711103026047483717696323516653013808338327504788032426408583782849662410781356771909493046381017476446577801413424679794649617572205788887638125359594041930904772112790531457500183907172962332643140524309186962418549362611539013968469938617144772624090092295008692909334486316566233383682288942201555111288551793352896977274905121669913765832205856039398625469865828096419136821766081225632410092002472308067245039133878849869600071823002529528754795984952882141747512847565322727513913592962673146367198014626554445577987275094664753348477567686184524587337882040952304835536810089632169707855470450222385312251954824165504364414151886554353091907406837029455896380919646059091334200778767416281589692446592808796545986718242396863573736109197059601913760095397438533571036359880282073331901796024813729228579777426230359889104367004753397232520629293512973962614004962516040295075476032650206038573831599001514975525443109553971521850575257156188738686025107183421497621678174484751987691302625860282983320556299312046642382955804260919542544648647226894417030171865244349327695508609436089797233582373269227943623307477594357144676734891960298952443152407833595150769598481389435754220925318031458371588389995251010026079287571391312573077625424865242569192452592023327355524740091030724010169357402501738554298283535875072735108246580619423366444536084779975467711270758926608968674572744465989775086225419663867654818533337928796001474557565942477422626401561254030102550570639916153550112557721544080067904672634723169805129358754028827803984664298084087283369546143386241527632932810570970042596735403194985991125941152610483922027378851587480306537761912614378942483977934725317037005759245782576507512213050422073369659245542490726770558221447172121025980743813033329934942210284633892438515695601133826077596171124718593579427405411236167339647199567959729742042488568815809606137407358511599887804425112220082245413883079980002854472739310858513662793280104655858679132506295724503518894374068576398037139280491662335057433121969282364223223544743616988674955690527951569727214787251687698969315490846990014660473522435847276712754403017690211450220697654388852451181589112918550619136831516326529026876678343336329972381243505423708538641480880149579620931479373211720859782574402308737973101906190248311120527920984043146690044543147628589858670860187104397598207061460770055581459513717349188985045876373141220939538744788088268457562030216030694142006360902687469073079560352907247969330215825978081733563770443008413095025190423400985275790007207894253141940430318880119247125264362200931176220957067726919964951075482314151824234394044135358190735257146199226782808303620571056699369627060660501625085083798469965262218630654389866193040129442205816129993030112992560631780482660061941259794931956898276419433973644916118277238325938823077171147805407394736929887764162468281277950987714106307653417805270678163957833223200084238991687874197220679714412055621312781946499665068420168317288223289739262956052521997239027354694754834477305686933037332295414566284136698286412635099265892372078351192802660115202478028686254200188863849022614477686656213825962984299685605009342824669012526125662498057109967436064621800548936182462174952617316041290614919063155314511855172504252976565713268198295564025487577370988202954208402320931667757652418379185860680249280312354328856227461311793301543350006041495634004498566448684765517321317190886910950173467550588149667035984941033084706306992114927596830283164838061509671478587242826948700792728274847109505291228437109023425592533165053685446822666724035556476898097770663910681407017960500331703206059215794992100312148021477620963440803760507427022757380483920023191458787419473714805544203103559956681141239206766516672576528083769007075272425307425579419398275807612034066857955425890673326691719416834254242177881136987916319066484312394125749533016175102674689896857192537343704662478345990346087740894189958628733173970508766374556854857960815592535491490179778082415554547259752113438527016999708568583222119209755705247907686590677105961700907946270662979570963771775438354868212465222589649375986563703808516818079725168493969035445441276477274191489489605592333793228075225575638881268887124826966835175274099541163939126731282713840055211712726254165532551101260371309123714019300037634653369315011120681317082753576377011835371287633028270727209609149267970120044370025755931744816852506771490321166047727173647166453819050850629079014395608521845783678256415620556074503077967103270030868443786261062380563216701442892748391015842037822186100191417128462537265624406172735255031346155488329547847781402106813484342685928490578920907151755738897122761562505880745897752314939942878997384787171098539674943712052607471947578898222473665110012249870998348573998571930983300177590952819604422138406221938699136676753413339165721289218325719453107544976665667666160938706727878369018691047346245606956652405877202674301328169714936783151900337320333389100756560298281491447563892824633992665921598474292288835040538206457525773820160904532050361622064287176217281725599948152818503681554148927075083542243159660978793615182791110007262451761596548276704234369697871901990568892487990766570057985208349427543363725080643301403540365818388520093926330001030656330553798117233863971785202848994971309905983215794021518532067853124316142351947291014687240102346660074070371274966747216237858939528729997001117071960401864047207720979546581243243575505727974702700145091604197224306851202086380198615032541148453508684557625092256901543324686483183887954125574210437832316222555632496245360945991379278233772105506631066788222264094144608638110973042077550374712960849857500618590896463341483255581825671792007700225634006437344173308657858650660366549835248111167066099772351597233133091885709004951571749288395392488067431374317267083459633993574297507359775556175433001401688511115376536633080031657014852247710090155324091323072795613910763321944038461634309195677100370595493115496369678497375173259028467927038480088028640140434021582379586741335647357825229513323587217657713767401809620856753971814023548865815529140738573413615713664243003368943992281069597536033820843684284823954859456448575324026688083502467567813481498521644188325118604012755113730614083232686514253323462017635166841177427607965242931465527108490341074509945992836925354650334964312204628722329381242720629624163278037152718318589532843375570814156054013708197982477206336639038330207387421214374685169613090853382655352810299436284177825101181972713426668985894563004090063118106820259761242485403818938654815710617228658049113527612354068794310399421844631509982427243990920332003679782486550906631278002658899684373943569030093269597871225936601551952531763176833080143454693328091688561037063782274928560098378178638539288771220233226449606799424665037652153811424638469007113420185270609178189037630527101864637843748416090062644997924999994107865525528196458708165038589837070287454176076720747620023988398216213369494545456479531807323082978590627413247028272978460401309370558975687729899626304138883660393474856638820326441443541393520273554051652298348874780523891826359144375357239913670279409016954943508540615949608775122863274413052978841980183714657446186286102738844765568192327028101215952015825081102132443965269133745225758120071457283830381990350678367308474077529901990103871717988993664404529106627725464528958889596434421499609721694486266012998137694561478057236903293143258605077229238608544399986374695046101594277757899294465778575002692391573960419531856596015105016038723894187023339128304255696339546631963094182916202090793460518427913012275477792705767402530094944315437236860360990640868626356697349304527035291890419948908214640255497663514073595125275571369348395405248410609615488631367263891172881283303183612556965214081872136515508314059309356495790622773116416132489990092934069337459313434454146766047010240256245889683106901436910005363101467787063490830956826765444317125049397065383282370940415546511831951762055443879164436112575824199753764342636827411789292378689741984135796306620786901209637408499635119616461027167583014182127739120051042175833075178719325959043117317078091127029707914975291175961339434887515326316603183068442263958045000500328436974663355041867732337167096163821116125911489785893280950065420412187222929824430345826144196129222528952240906211902000784122202280792804411721190205025569824452722328215936923812002650543576370250391185493584732175830775944536672101251328065383200863332517537119182977882912571597149802866072011080213835506928067521057949129178207038850007038808821107771251470836848608931906103789778717792243774351779498741293009482005346521052738544625555669415621954756526984482661275148940123122232089787553683377191904553816534019516729525889525970880892989790472126004845325758156219209668981568369030178817247831458850782660438136835635185838726192026156733378626874462798712929404342449427488365949714483474794188274622081125271530456313975463797741937895437840130075142192278004033033351579668956258829136739296326856778551938100157103085714316871318969893590726265909813147956015603384121096996633885584270101039306565744840211587089211213994483624991712526486235812627840820119273291562283388192901601394819061386904355937521235959357694545610423431666650547250346724614559307206270720052403758049973134803357889538825281049720572952352783068641286694177494497248922112502660235954715330369128412536976438941696899576186068417275735432117547112231448216547278008186132673773182752198581953671850441070657371724536292873298194288934867270212504041370703066111004886151954986463627547763236918156692357363708248716311262217249672165959439389378954713005119693514418517721798900224416117817148892562869060599294541406459253627535149842074039673499038536867784592552443410757196399498062027738640750186302284929471199967473742127701210918724887580072806782571775773482477726263976612491259172571140289074528332482074714247756958100920666928644382382263471918338508103676709491487147907330267529819005462288442473906774630676752680387645281270593842327985686098212323102907509393894536488716480853721736282992624724823317529106068677941911787010972249541319781094773136474525200098409727817395260817249186019218040134499975878021512568873763751806370030345536572839781764748005764470738894154797901545083486578249810870001296220466423665110347726626940387508984837600658256749304209638088135286479298277444902866924039182390756329598036654407799800304850385671908336273087727570884829182607777366981152748166532217232804137898241507903256819777206351600098433693460436399953749843524197084594715405720274570734569410775748726438151795314437488741049904608588066847537933174092065302552358851420787176126983402835009898052078272898541869681381207517200795139316469250354982013866232921052602346572774796712872886522888448068241529711880934403586946834238647472841729344557178997159751792602854534084936501829995365027768112579670152305170484714196071764109084775242175213582609822540555419038405923646530109731658605976874923491984099421350216437912051540422373012272818461482958478732694888542369002478667679508103021032462916735347218953333425798034631935432118612213417202663440408172529139643773740411099503892843199322359201563271640638334815242494409273377694214675875681881697215679484656601305388975732596432880997858607828618007974962863998595587199938335517016281181133209672654037132285307414890888458887836363882781844358828289185188476548004883580514013542846893311220619744350844099962181830932531561139909826076403366667201359656408018623561439928146606647053429273710495848863609348474267310681875281572556839878797861812785149190261639232145533358289479004177781251640008334144433365448106576020999277839610239621586308960907431261632564011555224488759508278078210606154978450466501325908526238295059986143620504417578539400634313662517308393761047199073376425909993786781569705976712351137083372661700766817897293114186555181700439590800296883094716731117773607791559628560289991789498813437940458569375858499628027594499500511150942955925299152309861942387271570706807058123244495134353893078381147178288808130351740321484469213257753732373983121098553491046910582500524231730638837501580884733323836634194364201147241893807869879965103155627436448606124045718834563662269392182478211421201309255982520914850181878785955626182722456485069595286995916474297487906613262368352437607251589280099414050589618597667529823474955502248930014160809098970238027004314910998394729382192479658722437192805065838430152060824197718066376814469627038860656625851977681772042759708214576237583723706777678228163547813601893304829026763394033512796127612235191923318807147469378619775473633037360331807403245915531073745346219529048491463706792965824841474255537833979509813329148347122609703368545094080057270722173426272040808369669636914572040536174924004979309180418204218269262284025828094998784546974545525005307690960496223222292785016483366613142399503431120837707889033848994036303578417390844067232486373347930877909262328149187366560995412311810270852120102528085095256293755047462297818645319641040172141571862697335530019772433045384277716064265375935932827208397079009497764262002147122025029424539777917092446645954515237507231443795551653906439979406916894796745649319376315806142057800343495094812406003900377525671036892129904489482433265611264918766987102999548732740779209211655186949092495519567982024292382728894446874528894652707613001434632125042915748422910509526229399322299552733839954751951685597389980194300263373958376767365627323597905057695971420489504693338834034163272858526131864597876461805062179698685239249939616477050197077484777664943650784274362039197704472322814133991653368331694565563207955853227941570785826559248403435272145589312521743180196977144121841715309005597255545119870228946579021426490420283930071161951171313657049229585085600269542831251871314563000064016163846553921116659059499835831257621271789501947989480479812096785260020711732200764151698490415316896959590693560898863487059738590467686140464316127500028771254009416345750040993127182109343960679874602784514612108990441585033152140842299742247555720108525069218742631015548296536853382367878942904074666450147845749419061770649294240097856508659085323209717638014478458367487003389553244236401407796927199645932909499622061069326765470712251841532124209680297362281754376163656855634049823102788619669117616675359790908634671220299567267958555788425903209039768590278738758099568213699716346061012367952767326115587325670156683278596727054296762753276560824105650562604849122821756405130390293429213447708824376600426753440479075141495808776410712162444272862669228156736934168252917628952070052155124203705000162816443047538706406798386202238976251240270676406399795229193134291707269590929297587557330631660678240566522554901951817158045981667801468856165724825713822329488432424487702735225827280972980972441902743460062332361922314317045106889522016203737938120780157836036568643461167196008174301306149907623336977790525590496874128584458202248755457701350525921250317161530181647540523395111610851390561276663567626519717495040668590047542544988404236366501380736130428091077949385187041498948083213114035867858609311858381065446429057884190478435493678629799199181325001698692242069364188839854081605914017648569395893900166157114515279565402419870537102341364065323425278718204034606265751415464141269973019283642306674109886264620934808280441302105321347089981154854846091783964084442966315247150487727259348239018614771739767180047516450156176306844205544204502363677009341807981149307253205131989010793048436069250489273315276850381396360263857036982013257111306387901376394491648743344215765457791483758811944525870917008636297297597512488973600189138350224943096986463023498305282696731747228364919273700474754734944334666883242999019289542188035699450654848172817950479226966842976757422226557049650305716716532996970394107927971994725511426529619652957323571435465725782985818800789861488794273288637848259645155734977748353354227496624493238610930201815456363669114913547221615749540284414610434383584754818113197545717622617685557474097307960758868895654506490320116191869069350805556180084276520772088146830437945351058750223615750171208438323835687885621653208649101793645274529102921547805564475162037672786444686183786616671840847728348496868296247070283356111101010595446498448978098143022878384730092572369349710259509755440274763107394700456112873619184579426714791809789075697192151788972114191041781377726267359896469824128399896631718039871285144400371937619757199128905555274150393175235568566544821837876359468822512860915652843835244362771592620861961819901738145422162673875977375617014558053565743346826079051766735380424819245217005969695797126733024744751683986997429733334822535102378343715550818889611003992584416863168520658368876679277911749426925684100242556348944600781578287310345826011169483125657243998413604827894745147694796082035563277259865412430197204135019517673209200553315680355067105802645721668742581441866877938608317380810458749053254884433809429608762356395608950704990565759691178943045117769801367304995376754016903273897122401601142686781681658083582749143761280944078377415828466434295541958359046542786440490241511100719155888483730746510837997724269376137600546466041158385286303171651469839698238059470306673013871847994381228389080168239144281627712346330803170626389816416409025491551356894602767099860551635466812676443105076355785409529347999568123233741010251392074999743283401341184790030640333385569433538444125966413505838125261966470853425942878165649110267523676606551041104659670231629545468564093492284814994727931326916396840371405020674447060234810381899071773533463380363083458045602093676365084299133160719587350868278900031574772738372226097256951419799889080852116802760420462894592674215704580778777054508220984965433106896869257367119380889896095395758020123999945453601014704359672502191079009200776352886570369066041138470548361758052956278951435948207268714653937469618437296250652415823887195793205070837779503062847864211121224496420918202946270501853023571958573263510066952526716347954732300416167114941730850237265393845615887366954656122262489909839442077622563041181208273363677831194731858617349001576882174288046700417636497236665624169907697882779438002733685705242921770985848752673135568998148683002145930491419060137707342376210044780068999164972971349639281309504987519676074860854995017231110427468362085056027921046832998476716992380227075007999806831084142586873886364554756455428975211952867328403891940415829615270712129972244926504384623105986692096633742260302715794645862516060394031823408358380507320351237638900181407088259220047345769830727083723088326392982663881393877255046715206104674220113866846359408762737507171114404349535000695687537157612104480753701345742604213021575374817951758306409322255658966949009816195774943946741676484804129527457792564423737637417681120679294686117387215920305033295110797044907428293604262502785382917855757549658978205346050458703239022863569657881220392982897563699312560094506653918996685264646948392464997537630994534927365913813658092698306032211828984728509850796786113691892233618411353958332994773767852383953925397035218521915808051797270177308512344771502699747986764318340220048783293917951591004291775852872711602263750587944799395735072047162050291653876772009575440361760068957732773098165671630501307007384399080500775448747141613375748901251180704960706593505796348289156506569408720136361806727772281842853166584542994561918887238230001733562900756851223038002635589869461392458171292633538340129910043411298907171747859952692736024429548520878511021688658083956151081198967422339419277218511335269417635994183663400123939426101964643585798056684451548067929047217912549524506279524020420204329835724987877930947299491376096304916220261298638839424423544815437665091437063746876093878828326400727689490316898256102168078417573884946057871127093430933849164814653316488115960066137984779199891384770352932551364576559321853644901303312897642798101416870829837453426643591429663159448923608218751797255833133015175836050855856939389171350711436151885874885148727758687828116230302643726593961441778745707753027028024088163413101385694890022521015512867320505660592841291395685875190329742546291802485038114898125453327379334559718333023362631944720243782405682953118971597505141215431953590670239513561411164783977089795099016928012817375204147834123994051352012466354879318479925265295177065196942337332364424249338945327729794517841052150538403776191433934300390713314258332304779322979115556847679770973765610276512632325436921561548408906548089077010642870830056830585601810418221208079787621972184406064169676467733613986279187810990002532429293257100241902683208588566664767198080702359788025065413819350239569478876174371285644767850325623305258140616682424497413855123621810322485779429523184129380580894715564473481381404703072676805912346512652472486062723283532460108161193141851895030596768095676172953531103574884030297389906491493800098980500309727069671094122382396803316979209078296285385776679727710194446790498795352803812815825260071770321289081900378739244044647452236768680667966366499020232375154041710951638225039273894672854172666522378638744374395591926651631795357991762246352961585603562015629639383899608273892994496513932539368995388350525730434523176879343319548533455086108753126078578338954539266187407297548420993023935782125649629799457973499992615750349766648986552137454206510718162847061552353202183266386841287923020023587940513651812070573665083723072281199342526967086564496280504917025300584672277551315755237017880439096695908516644660018688011635499630366984195183512459822578306981194066020783840665242763219006403146785142933781341922951379303375107862583621856520199336875094953123952027858398186151795165791494969701948905593390378905837184718026423743846199990240204026920472915846180922006491770368513992201575423742360407209562773956622666989909175887314539227176724588722024363110946274362467392078753050213123290932319529148253917555180952266303114024804056913027515864017819714971423986767444133678319645872006026411518784540737754845946019790439860179593646527064253260677463799173450086103950970620995447865792682239981372101811518471806837016261101475940512386456527106349554031038442978614898859174870424622006282598854571677847162026809375265423531772289342959745160446732887782071845828913269950339207998267909185038377262379259474716243079198628468009221796696841748282260579823977252062072659344902539628776081226706337482945716617631517564990284791990922372259130770918683107318064606945131247783216728129388504253646286651854568796838767789654649610781342806142554208072038956810230631398974889805637132692259971884863915355827401184604692886230865259946363071032489959220691866232806411433103225887910447946083495046748404961313907382284905975119674398660564675843743611961579858959226290861156659466317975686307885033603900041996290310962244007899004751360883879777138750848047966622869040863667995896390630011528533592470158028371876015565521217299346940896709278208851764725579899824197356513214346140056711739093698663128056364761215887962205050369762305926385313917069945802345429828168747674789884606080769629710354389062504340170663660839755256472754973133291727883213172742220044496371919375400926265366860912416619805083665354370525730173366370836498674482807570641876404582624190883413461638513880066736142938629649402896846314279336755998527407309340586948862175751714013809005929882350148760822560973732401049855416543546298234638232259458319790097315086340176975191087132341847043814557450387480527550430987989311441802578230793189947503868958812632994737070727541931056703185179308181464186843748641635680175521423588842739208511334556666134273376799271194144743302839537564997667913381109380946345094060489952831589440564844401242386246248794142857118282692037165168226498343720974437265136949121022727824872312050147433328108221779521035288562040883913624622574056815931230864019722070290785818813163235954161402036421781418940384665227822286550083479668681622498516816686426709983394534212558692413943026667745336226921063814882268845868778901156459460297702364266659056184635642629460082900977487947996943138738495890575807803297105574814270068527829745957754780621177292457078710663099988639870456918567988043932590275267668256208546785452697113840708289566402654349782943239575043653788518708529278087489744464181270465004587392991277977874193615134959746251102182524767230102438248953007429839409661619561678547150521808603243474920157594983350846971837535868250500167108462423531276986890400277652650299270995174749840269076189056771165030361012924668978358491506061953719087615205960572215538953994324674151303529701086260716184351614010836438914807987246409952587008739530096457891614775902679047644536982600144747414149542878979917862459745993900615945668342789256113868522872572130878311139157250099501194147706398955781468348427308051450701285647077638897142818505614920801802118105748135733534598702265653589185462205243595807097106002170562798671587264316343523499043990418854128924586739172425483732306987882770555727638641906609638762246754880467700536902461769389955263839443258715796537856845136758016859062419119451308023617910149690693133173604014196425354298421299830438411785214151098627764171002915392310143511361955273756000536073784596342173210171613560184703760580151200213999892162002869851396405343551350115471557481036437772420957079411316170908242432250019548527667594851129653860038083349591540469336734449879760037984591638747421375742489350988173654543645875172227602451453632475822307999989783616787774216964680553565940185816521954905248232321758262053531974987010929015704471541517430683775602176802099816390187595935006478805182911281595811141000479838638481370120123837417736986502415999274235018536792321580147838748058575905236426966459206607047676248361423458104159417719195295378729344979163113931661660800952863361561035853178835726583843822740248929009864943420858970484751073054949526335082525671780801942656805955758722366832498493177218333734994497653654402282745697600711563600182806072047455160380032314849629769975913961654405542756850676210107574514766619114627408812675146986458038383864474548517263841674302599302301337575598795021671574789455064410623678820196836704715566424681378009557396341869937221932716187297191612399347796415504108583314561302311112317782523364322738083576774355784255179247140060040086270372259644859904965107950388576855673785277669062090048273888589957529148537909534714019655345849264852130273863605270121987399256894206913868040292141537169237643633435650367674630245029364515748044405648669563112508420850393997624958787203057318054506934390251551968112619406684245027908053884004445873211392715076851297715255240550723266433220365402247467023209568354711876283679898343313998103005617432710005935020193660128715956906246996260663889118093771258405863993747055856619240930009925190252368869799951959856383691029690223631437731342382340772379787759210939683863012301017257049983714620464555715026542830740162174545829470509254205195127180822261967172834631270605518646921824223660611767411900026988306278930466102839835083409205721858035323609804757331184908743696482570772444765272353587292181599619702351884372840987954309902549838195539837487670345298371428067438773745515837611303733903474851908472418831656344403537394068200572746077789023596642963370414721843942939323364457884181790380847032034190760256553588457793313986420207937900741001900966063836885150896681577570333266762071831909241511910513752659973828251295858169574185478963215353568526091999802552344065092248569647057397732729066727399649026636347773149520466687419495924741081513215437958123185058990222884518907741032546512029814277889933218866165907761080576864992763281167429495575051406999417642789620908587042328329736666523137449499345787677801076835167667655840318289344741011243758474421257918299256632851338914343960599995890962024211002755156662256034994845900879442907121866518862892891055020156797615462241379863237137488890439084959928302150089719288761033189789670554436993608240594495586668483766194227942824376502093270100541076036160464111991614023365481033288620272049976682445851583058063132872080373344557984033822085072559973631126391292298248542280404347091252355903784396136362328152011778005857967457952610380982514794147936117165504080599069041556480411057074665678157745537076078608376052991170507142216900275596145652804259107691645000019053419159621892561607958355128839384772842988960540481750843867459102572885083751078038441391046381695074829297474551259337574370085225883409923361578891898649934788253070668882291278014665177009683041581216753136397378742992767289046903133588258779871700985896214966393493889734688497932491589956690056515031653842209811274464717827017107328114316823584184715808281457144930033645092677286331526488511511575028291311861717113764709594847478326422363790280507960648248641883790508353116688625360819526894731352787797041458273822618005319393605321591375353315357568786387116382564539233141174828004111331770799691036549333666073997627458106153123464426423705590648582044531516527521004358437252926964582802942280901488773246648903123120001523986385519297573491210257725014450359274347186936498077270313533460044308523108711401776325717961096285549370555618695440963586631378340697935058504491880412228735244816308502540434316054738847011549688064491635865989693387973214181238274666485689149972369493844086546865540200138922264997238008073074694366501118413556427255779478347931056838030294877723278108717513010924314473769734562219215579653223195055898468018805728270558646081478650017199572020213179001497719340122568324525646846622481263790028011388158823183648732438682562688834003693078511130045857686174902096394190543541962486394339341252918503542403935229984206695234239629187824804256232858408268947339100012659537485922547795676680260937438550208872076171722423926402346467977599830901480487067068233883955345624593030897958495109044912649387819119300039440037714626181006714487831103883601349264352876242179888309265323086842338819026380070951119089388496848913639857278355091604812142254605438629343474311989904524428095471063048447465139878899133475121476643649629767675032837896685906505145495331181963927539854928545275504266853683607661153059432776260607162302773909192295148617679409600464604757785190538057573447525843064168387783075470636041269425308252968154508597817819759634568402037656874194455166550064452176628663324518826258783172032360708083091957779386265746397322674201266727552420185415313440864731313388794258822388003830910647909912139642226356507737600412323637988973304347449405234153523253128529061465389736454940331600438109480774887173095535642624284461964552125932677041495085391654664495434603380676752895321690206601789918826622670027157400992794304583095226323172397885829061356614492040543434405139201984982849875128014390958431903558045759947019497547519431849021716689198011465683987279723604846791500963113489107919582388536112587844473420216801335418935668534439378745723925240788449793489895704897657644244301083282341677735927921407891798858806010380920022194644315963327043141543156356376175101146468392535329724974031657591585814891981905692057250587757174739193478835691429433580721527038128764616656224852741222487340895358015364255534603698110455938723982869690318282947815776790040027779338112822259450920514786682075660985671989721017349474107346180486218663171535147428545653298226582693546546762531117996076243698176551430327889975623609794033718363607015190474446548614943883815538754152500411298333777428003063160052079572112031134056399173179496653522228941194074821086246075952168795159034686231464975797319843605678635978336148832725729817858916447479610328912436993594369477022236699481371532988957578275476570247437987479352220923514154360058316187073500603253700988540399879857650335701950571248666476005717730172006350301979485550345175953175579297847123541153277701136955295034208865838640152838823867428019608704518739723998730064771754483727099230978995696581345109045890859997871910216609289926646276525933303762897664986775108623547519469456872901472952607498110800589022168985424754446906661156991138576800132773375315154789185284329134402486750916939636861139896089554415958540834719729390048566351344225010933204333178774943443781059977705880240417554605844046930837650366888655194436462973103976399862626270030717359243093257111565043488489184309508379578267307323584133764924156566500189038998360382483362204822414514606811384784683746865382181892348078468015675999392378135841161079235304895669863302585279424596479255128920771022552879297975638946398605654112255007139035598400960860755516303557422947914053479138081056132717044762758273452998064605781741321670993153465314260814293952898319065723653557323079222198223166792885583815419265129123584881136284155837525892530627445790970283357903971953119900477436366805166545122833154751362517378103213275744721823273446674566400279122735953701098014368401866739318119587284845171128382385786936707729761124049613406410899827294729321873847285337583625691557228514682859837221498493800262735700696510185037092461566071856440844415550450962275190481843932080133669162923364629113422494864838183084384700898978029347555842723381276494486562916113179940757311124568289378254476864497959464701952160352432192985571158955530347943609348155805528820601084872662266960509277643441605066356471025737881052339967942144649932919824620963517649121725642325505807085897198473428496855789451155233265296698981636942830516319424240563446703084722012497395956761372304587065087763106798141366811442164789657080720960383721213725590989153282644570379666076388858909396220128208920582348408030071493003762559546579406824366722631129397837588137164303106378194136768793261687433075079190603818764564693745141252511758222119410282343238148740430985563829715800565844696039064928527818162790193116273155497188221303223825735210750756048292216874322959470653774432309650962735309354886994228138841319698336178928695819488519915962988481930191136972299830262966959992760960062526317543879424788095830660767516393002286667168426821325849415104835774304710692799135650967519739209411629714175455106256260219257907846604014291962081041366745604847273792426969846479618509235450380353226054704334975007546372561753439142676576840774005912795434285816239997712865465564813987200368437642410067234142374245660306995311527290582033093649295234844556790085312658522648349096306570975342004810407451543341576609262018198969575471095743574138044591246090511470692873881010481724882974307204856993552579202780118796754816071847137425477579993188985105490126421854254809601441569530449429460615979259678544546257270791415704417967927719850610220518394843365874830791613836833115813607984301407997631856464084587287820878939007179618688214480632865470217398690730203515214061482086319709613857990575451811272446446114283555757442903540132628161225961829968825017955117208253732269748503752855735833528294237833700630544193075467436791049193379587963017370158489755242863929383953336058904978215296714271461158220533555294190538917130811529354953838525785165921517530993646614485346722936493531094594389695108800171884929332919540563346552022440455263351189508375168491277165869725708033840177755848396503978984691248494419286461800909145574237299307437670730619470594646774770708370437386851881865006932105124487828818696689675809197320572692114089713584414547322390828711814808096703602195049400455335217310054982532502431761946762792141937134162912090517450471295682888744934615021939207506816346971316330255169160249410512290574504106426088746130395865855490645442297839936507219233507079311284672850678961479078017994614914227546203295531830086460639103318404803052286426129526809253212212711381506892018366392572888353043097225345154933007518236336448409496786261818889701153191903734685434314047403885993713071785820433575811390356236533682557615918056164986367019814921322858207973138996936694110781484399204331733522441980413106398861861782414079149037851376690819126921681821250522176268673551224567113681000513716092867711570931467961672491075065320436870290854282411866894202183485793003885079574848799960922248925208881258474037411435054108827247562962930759135823222879554629186703447366846382962370969558592975625186017423527157625320117792896809438711355986731621840527314863258138743503149195998537531473813466646491339836750843932181727313115926640537933437831106394825784437544005163393057372352140821112018001524545283801381474210448465409085325669866776775328644273262998315772947964496641581954559191222911915207567245146521582715935672557314342440347994118055284100491015716591658346154585816535404782334670536845817952842681749856626765089701731195599901974194861505408206400223267190386956749617043732410359740275123598132011516785245577077359284941010132978857276009923430957342250670820043362983753444293626256792566426859502688169275296465402461865429691471014213866571724675880849033787558927530133239028993406691652452105272845041577346011147317897511160657299236078104601027714547718544934252046356527156126569226369377467560646736023938004683840350824516775301041372127330484511890797947753243928910881959085150249015970936099991390154310376387669654505578196013759517835561522668699283528876194733435985872716684710116297650731026485193939922035923095977374278061609867908922740776071879363967686375760520388597701260837266598213293028279219242726165903050680999841100735210464486620240546503374257135718201668454756243593637338757298865759817117665053243514421715702147943589075354460688232214327994891311089345750754438854666396341899240143105303775664249113268323202848829816818197803865527732849961998278752019373309192776112811661015530337231007062872797984226253380638292026019469872673816308198991484462153458217740286892443690335853627822821291646502017482795565889573539305386291452244751880030573573915217006741427037215971324394558074372151340550384108372095832855793258315247224439065443583101219585875530435458580681351407251411313428798067843394374822897306498097525247600209899706285330900623348271585221918311223253673520385363794433150772410306389156181342791877824675965921336319548281536363705941228722289192338389250680312816899083578901869334391000581587679135134355536858985644080872331479620283294940673975685010239767467904265257528542173491928553811701677646883295507420144314461600946252657045546033385832093505211388040682088178238287728313814346000333453971034021221660184010545659988798072764093098703065611693118929133295037410213761924019492375529872715330736391563181362757810965684474245450613634627725123599819158629242150625521071894734594980081276725105466882733106960204362103198923254572650479557483030877787964470205122006668957805005278457529023894271430806840582550840547870714845110176655518428226612701586417679942951572223052275796858432838868384685075753458946721013995333009519015762000803831680757570136385227993125187705444058545573076342778381952665216984100136099861403606378637799537380087262642727302422049054762429464931446606939865251955452018595997510064116307837983969389216761179573461626103891756121978011096420243152054309110751733705138233447269215958841094129101704706826031400268946138358126373277382179069298579216465221867884205148668628699962045120243154809127366267710514523769247327873980126665660302886149151110367328537797394472797450014715563876500873723859953737697770002436665552979187366724161376745980214275869689307201099221728136098434651299921478062984845264964140836844268697645113896807807202144529439638445021194581262265717229123028341679348377346739705469845590240621385258768788146128946527246703874770786872965092611841816426667767459080770350176190202583025377574507829855576155798894174266537191858203840995689815633151259854790342255065486693965790017702282201273810625413772741299983069973782441164762802990552607672051320959463445771337481732303450074781883621817459581830926788926948485872161303004352407543896421107065178876799966291958871412259602026877630348262322277189624111210659106668379089731347939480642636741524779569910477742213749029235669886942002613877741025966227059609367685632011229246766401329295742441664394670877932140617011991829495264386531947320049223744401106083116490668223022383847424236147348091805355847612210179017776612644317504248652208237991010461640749120686757728691702960327697525644402680791045009907349540706445082227044994556986103688511992023523803466696200178185659739680138223078520008914002490430718261725425431100464772447304635992684003572194081752161558790981025232089340596674789803716237422475823848538218665997032935819427602067279268288591352470389831364593969524468816581689811536939584262526533876748575702339223810777958343676935584137621908821433757210378621644321109986062828846357931008163559947253730224405719149656726588832750772079718562273570682534120006174446588889320943503808614601562113137963098583731576571995438224257565554897756854071102491771731915195293489178986741861840704160113820039899605564806156120267645286301919619724411311415892524804932180911388743956598323648403558445704473740457467183368982189724311175701758408602004883613810636968765392710829299705830988371234297880894973437066339331590523518522269544137899127066736035756262138268671446361388492458626507446273333061206571905246350981039774914735845567103242258925552455860141664775220604970126767490289100034963274873172161377607777482713609033111673910444122874138334024662774490892287829166129898697672556222297101795939565127830192317445383619976832983817969375684425270670147184439455097189610028658463026607852883287758703959880409471696588143831079337137025694158928996599971903400085849138327418640276967579717582242802562176614900708970602104592502242257807436239378410082386489650310854162760074306389607811881901354255027340211374687115093802441286424943173399175895288212052151975347026024802798827966100967495221405136879653464301339478851183141501081900091373715791024729159572451439875057915908677431672119755351832405265999992205680441445638566693975618685921047417871746238418816761873608392146668952500087347435218113159121679255482180025505024509999156097380165672806030200578968033132144334092315841622005299788976279037707481052103740113879126959554673356266701370647859088702845238082445915048162279742606646135257708855776858758547200624929626968022479497946630705400555334997161051008950833417606504423445903795923219029077365429036181424204813607404415836327290790455922773689762974035062882490403571922639397492726102080270806830209329714703624907974528485737355635081296380791754246117435094085108599091529229168220409143523116636361684453076316808704216390861362200742635809491516442990404232061766867850865311920559957462357979346550714372018024931103097179008001209722750617436227243323195691091622150115006029841855725581788640005119746911036170084173075136042372170294029303694358518440600053230911345169921112946627199231230841136360217758366372976900523049740027458664746015221590670332791819511259498381131919234096355734940977746221384700456479696349253622331941855389319410654729600239386735388220666701592767641403773017080045834256853639357232917456996436419963004129837043471949100655613289427805577449914602807567042396461952085047444918678555401333736041892063202063714189406715591758000360975746383922207535802325949312170035929413759822671915061139079897782724407974387788053933077350810244053149367543413727959024921006449307597529666187718969775167775967915198894327570669426232475455226138367400592333600628009528531584941241250185700333474233334118835390772751781150897190616613911794995881711352958480973555458465691252749592672167257693675416051425225975052864569180249761606137377427082261957720162319011916056444061487284201314420666655345559726557010714261707904572131332265687020369893627224001495652229572953836954026231816545671284803653084487466342146882653942410196962917240479839928641623640322453217916628466268150873178871649730991021773503041632568240040792426375349535502407656565968448126360092344100974367307053996284947908868291810208276342676522119503588990659657761305184564787755110122178473256415380223356337149406409525577162953608791691318849650117475566842372541714361436937257966354103543252743821294136084888238891207654750744401053763673276349548786517517787219941004382462869365148899717860685370532420424764766636622327302735389475236216674723872306431785261006336220835381447433735052908653300177404262171021497398500506049328938360161355743605159709238729089230997014971953319345176337403225833635633305343929461561570933702308523893440533674620861189813508043619043955337665521974691459196018011134354588537599878714627083008604513499611084017656270318817098870814732919693261535788512074047065479493814989160001705307298866119090576089235558774796914323774985399585597614631759490944778905807408952067841364886502546275959095670328408277524543242703694531947779437177151348683291958499709713789531650261921042870992396393375229328457427880100775728212910192192700250010393547858405567718757393582301917024304733957108740945218469946574778560124405164698977296278235450338133482977471063384403147062210931742283004694355519114922196980133657175144982280187667921419884963441626812205847950790951185944952001981215944209046952354531534859088732036818463583888326067515727798646527699401893503143229094497605928859476009177193495651443369663041107151201799209061099700311996804977616471613365488154705723225091249775393721471941151737603739796415957996096208513392341390448088444833974071488068500933056024106138899270281639464938710885829679709086646487231403965078071116744535138978801579462180271208785898328605394710102626778138754412782290397693475433736752753815141668881692957055500056380172889975796744174833280426859414278765418847685514539255920988986649165797099273546788311063157759090150297058594442754375340799290306032707841804447895215024718616852424032778253147990366672350091919973184697808575792789964475093344420478893454972408289468989458715439388412717350147021166860358074000333707903319117997249525572548983830607528102917447127260761855488181474333483246274533745289820591182229129055301104865986027811468077033511097839571524681024977288038308688629807159002611490619245077188740806794009936306258062042161287292416123656440488107879009380134879310007551676570574594288803553403316018562469889445859100013643761543324807150871795309239814143193175305191149021016657912240729582811379850050650492019277341032904918924920349303934829325251345337693866932617942447922342274305543894480713682899196456583632587638412924858947156563159463661167228383724835916928673912869432415809294747611247460777296789756181601691802238491230098130502580359171224619838540823019329816635701083745034030191659357388891930056590093573958620788532775637882015779443970568468230259201614493148271560823676459174920208835910296901850742669047844844432673659380661651350138838663097658775330663169999052560689864152376072672064894421475728565610753627591870638944756410518498091984483210946359919685763008678601599967439149253387534547805664245058208876362942612606827654982010677338503024656530778620801805542229994518122230493526509114923402795154255143865894233726814041960109653854944635423909005378370933088194144365951694968716147688306138152339984146265658816068540061953603435279823664863931657387242960608015561156369738603825602850678976842249252184027516439885209777333384325123887426493946670590470928441809055837726301518528127462425461258537674437485440558613459912279031884806301830950483253049324069413957145603121413106936003953317339356506798171159070421577498171626054014412764572542792235534029867750523760716974247577254409421560628786617369724494119851137666825530838654805048821444003030295981206245652383529510202678548784851902036251509956731978079638307571427341145966795349432303403860928022319623327124906312180136462255411511089255502421153703170244436666045124484705155197437243534105936297068140776655397043163019701130088041421323698794523532724348511231832688686419052533853198930970860685624448599557382115607265222655586815370077396048696151531939765344343827247364098123590196393910652513512659363601188023927217129734875226876562470565857760236637513190404296535326059004548643921372772961966986947822246437867976003274281824261560712003349236098213507523081990803045035653083205359348703888764572671265309887261085409360264147581877559295069099174653139343527524463771933706526469738171804638470860502060647839475032137982696088517271363555255263687441585423820666328043506449474028079863679456611907062840499411745695198906084730652721602838544363295304743174621418179145127560481864731536493710427373123632490533168054901684076924872430671079611744637802325096891463152793316200128432274604441391919004844099623603052556435605509763145706101915979145459257519484121965194221915005256145051049508396063229281460973166847317531362096239833838647182414489451256614323354812854384298684243816509044550133184694794012505056758117898043405685891894895670427014512884837754044373348179124866216971827520782361285512866725358774566139430156831348469415612215587374653373863343663986052168116069898638659233609017126121078727564683582125755170073612816425581762582789437800909725756226851804752735440783704545936774559526031315110464297687977297413737233655856321049499240974311645826130626903497913866963249980204429028358122310730721406111454364115997822809969609257740734938632163531183025918107036901580464574701123586457714969764875014669347348307509367666895888550440541976373440524895639421494906092637522076210474540538453006333787140039614220243733573294277706547599991850392402607275995318937411819202867112169783549192283616775219260278506692935405637830730845741865931958060008543998308885938566815510237269470315800419051261603405331741929906994625104701722761339323430766591215057760311425398960810071800552852567220090834848782284046697771704116519433618025754579934071353536416084320510806401516055644077679625464021558746102093313697111958796953342980295500885535185928613286940363150804445954231504227738887371840840047076253079535698010184735961338758709254438681042409344885678091810026646652970378779292029296636657500927629992279044143919756904166874020186774758864112993239181899242774175211192138280932096570626399399361593515364459677888044861620559423912300564862163246665882494714135309291993170879972060766913267757579032822751381676454353768388216169831148277447423662958494817480773339697876838943799439396500348294797466408208399351334204504944212166377326995521323807349194678313266285213614007608305386426867160446530244364862938608917280590394862447693240284877460070414708607919798970782026453117931066742570163747326744407890529559441768767723191241997685699407741301793898407456528601968005023353666964157444167659436999611495010662959724835311996655355288763053309653991133774096932518099774575992676208057724440825328510520662001313863442318619113478561729269119894119787667430770352151738595189442287491584448324123813883896055298141747771032358598740957458035184157756617383897605155037533006904597897704570841781221041722912856579324748193800420355514639294243840019304341845251189319026034693731519269904503169789668919046599412212946450886665968696713064375417188854128998020456159898776256731467498454195658953064532943136828503083806586529125721929168799863650435081200246964492078056713671619352188076537704540027639263432415439031086125780894309337532609377841063694063524953851122231571436103600736158706558464604430256066750912510771373599285695655688868595672140494295621923600091698073905709077680559683215583415167493611952739629544820010089092205751043498747058810356888087958609908208941289352655397088480828151459877270300196847903422615255612543815011437898326394264689005457251434458550810688093380108308661477373805915556988567226327584899717684118744577284044233144398822893074201255137947513367923610987153280599758671604831790072545309467702701344584170468503281855218692707385575567897821978745800597999022823049035538531962256714267530179555533206450924175442814691280953567239299048963276334496445613589174065631136330225001657717953189224658884865087413650896180791701283256511997969181386024408993010251170464242331415633441002763920908832633896997032781515766215344363604489820575084218625975713508918571613530266685817632924207136484471788033111778223697693241155886176963515376249519335215069756291124374936113700891221727303809444472897116851349930461613180764071606983866091432047230760654850779400029117783726591981054312648334917404343961209978719704858526531230609759999529169494352507641086470128040917190104033374971355010756196386535272432714684314947633850040467080746870983733431439819313196255749132867831918229137275995176306926826328493465660185048180872833142891550154902674325774928233800618040265036415348163857770651778196334484075659280261504698035240589847362435370828069013700364036120155959925651790677516624954620274465753304879419913628855583635783632663712708844301255220967787856756329455403692799498077058117176961958835325315991145839271107348021450289656249413173032407707146847682918685116584539308128483029310666847038603566343837442899106480300231327899157688913660467701494414974715719059300951662916410135456225001979520327642749224241640030548135127480130076305243575022462154797101074730045956387868505622970878696655226969212219256382062049594028900813017434379720805148214852989876707864861547719091351313386225085568588476340651743380106301728584478598600647278124081115967006949027200312220537139208843193258750943063163078525662893494482002790937852187543047415102160495816926708956978804586548493262488098059134170890150678894128007662271481401217202372715172566909484419266982331751742978075183806493886630342996073702933992125271123432626563410952753754268113145906098097659427280985775545777348182953183719301062924541027183825082440496236568429730727073885239965513348107158750918100918758290032343734834716844703452569576892223834469412749512835301204440863576885641468833509759156523405526229625141587678703019848472320045558597995306700338495061061925288260496429240382989749062423485400062087844377906379585628696725235987548735160288731624780972644064556407354977847047486839194028254553781738892068410154107242126084036434283981446490554544719630015562826287956675116476482251897686853964764064913806939896987746835134711269376954767749607544342333709878850369881132531434480078109343253669482968145979441897755741573526888482566297594786009914457566298443499787080863900389118631931486873020443587784317239081852601032162635280879299881329922642898230657191064746767749556749081577705634447810406376272013418906956623443751114153564380826789686761651366022516646307883875075785214577682072700809237504091365110133206194218262318531422534609625077316356166956943293439301877550408253040080533054778407275549928162833682679762063408803970390032668310636584779159351162645719595546952907309312368444650480579886279828440981131515153582175311501738419063504250306672878961510477080834636748418397516102276858017281479793241115942284271932091673270919388963416944506374121803017845335667429498541550960224788038904835739566455313338266090071224190878453533120437359412324113224424910207587096860718679885473639137249050761612133872804329901182294702820702589505479302839035111367569174322438474196142723070329295331930581551100260924844267284647752467349293883354661720460352036637555680077617904081967732502872104060625137101131426409306500891885638186868501394547422193457507709781055466983866028484658172587500301454953257590807841597925764856862483709412102789402590006391676900088381569673359546123157611047823286641635661038120125034018732390109814151813311480297077214360450481272761330212926152993143711915743020176087108735116569004390889739797294203656121463664359788693719114244652326269996253861409761563813003687607009368297708376906151529858503651971998089166364354322582618167944124681588001872654372407063544891143408945003948454056563810404056291962215179809604419796214629441949019525452504263525358304237282569771719170032891186871218869839995393258276307993719221077381157764532685085681210069307029571759043310708434457965038997275620817501230633285818551421446583365446007943775152019456678226464394270020960756083822081840329581681392257701810456160094016834601867356120405182860716519663252084981498198551896986647960374753998367646018320972984544599657229389170992077132546708124226906448434469054018610555327837076011601515642631185604140754545410745591786411872075933994145436354236117453775125955103630385074955077186419756735261789298701419612972748018601993425849760277825708058519821368496071127287652567455112189463354790263147032953693449280894694404766952815056038377600136715837223700726841402056578027011392563087838059131482633935015515362379999462494166982430374746847789185975980240352416449943685918670907515894208395664636249673500626113098821118247235262527199568211098672935618124318976764106720625560798961126134800799094613911151442428955155714351812819290652028974420507433127881379351644993613153360425609512687928200394492492401606894081305318097124307380980306691555780705631145664421445635718395570009112563056009013161524973104040216273593083772461319370888882257655930669510797958914406238899184364231191232637864088567508013582691390311102972220924003000513972311868052270721190077643633347015653413967761854649793431370951332570569518971167413568360267965289214700141348366610029127013997859131245528582332459989622627779775035419001297237980385912855152460118183353928455675296972908349363395379263771605295741376394982533885231674582156213291140793973982286613573893768534646078428992833574030766600108260526670922395830987146355911021696497642824868322127107010791599201686891836970773805822265519109023625466682313848883123205769344871197461633248633368428058457622470256655634101238844721556381733236166993146806961212986401768492078625619649325558313979591359928286887132270495217184283743418630818397295805740469423146363357826551093890680111954911094327640821782051520876524390123713392369711652333291424297834423039351319756891779572975304966237913000736024097264596388568118584740191906695613867221498162798209796734394318367130003946955534287000744256905299579713533709412082306140283314974724990894045652731321922650932328630422384275070661824006138269024740686575344738014576243786528218969906102143793883813435934279540586422918765542448796620305352908429404952768409843734440711582058693042606872053935986184157740855256400757283429646902998844947752417129671635925905320022459838287194351563370252740165016094197834318132761735249585977905780898053452459174604153827994764197273666198326920420068304575271781922595725030096666512269332438593442202510508735654759562801753564109869821094463272496988249268623323313276134984641562266123362321534929120803702842761775010038093273207137029900455098983089278761113753063160093623086811064937130681311092396409732473844433230035753379005068580803245392216325915877593361325943804756220979064522721862728369128648644975743816965246130391921266928683809859698309747786311852763902741840010945216595568728307156815063989445689412520659439757156076146269986369726437708511083195546170190831068527676345687131304711446213068184669921116100633976653510498870687417622092133295122135504907973063140871690837700729539069989016220123679759683465322630078518774745401479843627837656801945988389129920957464334870070014239187200146954291054799401823459425491488668504198724173032687425600512366731024171507605033814227772619248168916535640846134991511642796683846790413557484431540795547420789985995197847673728201790934740636413777203524946571935234883508488301532562140521769727406046200852511135819184224886949752667539137356948907613362644076747831961499368836472383209259796100832689466687232770180737759816134456222369132604134755265683954439085277536598655797201931262540967278467396939759997742435752073118022868970296546841463509415641465153437317755912779673009223995123712783465839086248696884432631747738808306588591918987042302501101411782591244310655323268314161807215815884494416473167962439766722624174687650752007704084751221021217867311967051211277355566522301574274328757859393075348147033864609479153849839504082792011055110292514407557904150475722074303457016206546928637343678215107727076494370414687971729061119739377735069806538924224340646620444249175365023434552753996674504678964659493447722989531290282253515205403952768697390870924257900761267458371515225192567638886548839603827554782811602406599444409737202415254765998071724116964551884753363763371821486682516064473382604951610323710262103595851801313041038702016536931753234678730545256972803805884944572534257430372790497121534792563895353223657864377922712124681748857596881654941167976480247084871869258132049075567201898337585416197794609696480971896868970378287961689797454504046654034993057108855929364114192007802533274977575666415855633283515938332698493648481194601895713639926873754548745634915840937637340706553860321550811835808498083494887603124170667084990628411224136723598478649232943016377401711147801554373836596681266768527859135258048817493870365167287525051232683133150452648735569999624271089869782775150240319806268990566123999308434873880893191798550812766083311270751204558663538109494837178967883589116867629486999515992601326198296961827700437893387392227537931544727760829877309095771228951313654709154565160147942558232660070885472758513341141918960590266022182214289594353504388452260245459135727854962778237759298129654224322108717341514816317260802046798669483124946660195696711499929552649588456429319230336925683682056847016541033983630707907819101581816946455807140434430637359570218036887653381599686355634633368698263295372597527290104680364209694368708339301847255761254664895863473647177809937330226550772517410611848282372406540315398732565705337320891192327710309134409968667566973798177489658504225188209690869595417331788557685345716000298358566878991189606224051013627886997663354414575729947425629764072804146739909993599385895081162416619101274682948208463788114199244037047505413584310707054574944859554015112750029380410851710898046975688984312250958357969199637326092726608916233267684645131745684966044881184320344642467571715075236627609506688195919763228458040941529986063480505290618820969385734663464181517236741223511086289271446496308772936375874694325177203708359612305735215932866520227456368525161289413550160594281875032107957955184260817983019342510932773719557963159646262926807786406125749848638257855456412622076298256718666564403661373328367921995637163198184329020769466843423368052535862612204281247936951982720865613663038827117294265654919775382938514865636087546244237730326428039271416605263061853968976742536503335869327948079316219479795264272842361023782362824264424344750236999827547361134132297814435056964321424709680491290831723030085969620841269213875321022642744313534393842364274682010299566682939883793898417005596159422445322070401205980995804212203370500946729786432527535466329355596563410250594592847749309866782287913418059384919963011566501989458050407577541125043152352745591360663188775284377795645211686668244837999248622920266651394838041933672362816627290914743229044774325609103091021236181556329164124301153237141708541070850732024080103067170288470254389186690502604865256938197297366291394232225122706004716004313771122305762839214342697893003504149640306672758030768731510251009748238963327965226029962502383610580179411383999403963632150885406739488051024335632260892563656859823436065629977435431620562732873767821764334702143006243444585571452075010048380001562987214625149526240928014883248145249457907028034128598380583189032679886362041520804533598615144421043152225969927307263867102875015994670125544807735685700731973587536992362024619062956851563910792861508591353474592418019681191693911794811973992754093879383798055705791215930395500375512688734181985898265125244758340866436461795606290928936831799954211129418747344980572109042912613327463795956619507305188282267569947685563257108515370363655880993535835913862594016987767446817933592252782979464307225794461923732502701116960028316818713098929400856132455828412775962128847502701027779951943881584056368380687907327732427504483829365777981166942868669711645327827681646600679968627412321809800838621174213551674266659703064543871239527142049858856595014417386269793209771504234202283974172351348869341146799421030070052786950111751903372723114044807551275276874986243228569112308729521439259580751767607419536112093207868221645560211304583290360476362047282862729977971835550437297920414587525896879628962644836367205657283681866827543776100468339093782250585291932602020432023611578296109713879218659415994384956727657186489221250008588494587657091097993814989820391512255805931769668327159649649003304134801493552104754608632837545142932782862686103912625231415009729125576896782425117431838051672245153470313649528182214419557150612538244485906607206623299362439899176578933790016452745855451947517809333578735303619696701165546567860069807693669694464163494266724655817881592784285214907572156211408267068992582563257154040370516379550581019325573587094134140259390720231774974178779677896576112483786104836562338706001982974262658918729042603441027668460239357313365404724304286808995574394859968131833427094006877454348065250923910110649515103690859289394758946717289505967328044316625411626373930298358682050608939821498134914173713743837451602118948464857262291995911343161045671281842674537473007445148971925610971354591471926002394875805634823656255946689599591618408711580478028490979263455985341390812758896160716855450143457220843684150354460471322265410113131625392880534452084926383818662412732331163371886380369654733250099448925557658481465320210324106209044519287034188203099680516407732296218144231894927702966009554666857956145843028799218622544760829937387706967321594947696326874592947446761633019497670788073941304269799402517993462538654115289202559253661876890560501703582380441859736526424024220808505683681618053745157166033083001034551506171102128092936358136681111293060546553081182091217432627188177209267867086555555905786105879275623863145573646665256122087117998575570054861389838395049645716044084491352059834562418239932304408485059607438130233725912871099133826406041565022170396434405294630056195204694928116330823989646216545944386912297014928574685709482708995841336120126558528811993979840210586469976248569473380990791366746975411779368811272754967128159265286516914385037150543718911995574158064201535398771427951552584871924773352526708435287186602066009339781746668018669867898046245608025582530886093018699765843094750635394119405269498735836765043874104894550154963144414885086153620740448810777730788907722085884684608918953197412291450770236623075783508348768310997199242746937965792438789874950164009163706292092706091956268138564704879076930398053187327872277705659172506102985346055777464281805337125113612019583539638390958115601866736799877304864055336753616465198179789027237295489344578500301516681976046605732535368499801744509506340167796949783181751027727921497367634518921070700356242419659644292528428748720979670262742909063630030240039262125533750544824505238087138433444535737543712442016302759118311530232163439200721296688409916711452753737616621348807957319381590088788542319056130118447491052659277311057577934093824052720925633506372953836901062619934554198617117827434559674738407140259002715827924603872045507011563937956480065171983197762945430172689132069771927857444953031339865665179529449912000798040437644119953772405902097510390433147438661900822818840542673687816986809651086678938304943435757563119291765714606453832900590153612053029599087043967787641596723519734658617883355927208871451472386365576645250738790525379842169993235521952405923563314516844770219492488190662843364073815323136215399060625339558588401590971573571433961230154952135783132660358152305131174703747274069433619505294895021735401425161850107209369745393302853007421932918286101193287258620705956056838692896769479938129951434174081059172506889899061801908059238257069855725093064778552465700677571321807243495529988830591145473360142792354842525059646042817179950984957029340366219598776547097345186825958557587145690770390492247404518350792038234201036157905169802648682314396880256846003437491146626149257949043809044842037418787092929576558068123301853955182437201964146992115848548817262785911737092844524799724081737001231009489485633198509134995234582726653520934382345689472451530217546388586587424374278500192781235916381879762728348150143657737256460858627554568581008640500515473889934310705777289830961556258721880126571865169546901164304660996489256903008301487148647404689787014012191464109901618573939498094816991029862876020550191975937707315382696734933133570316233531721569100665722443901257191529971207765788998476776096672956670013507300449755165427911436486409578528155359409631475116675554008972634293285214953911567619919735861913213005095998775755417959054446264181527583631846622808022500430679247758852602427705024081503630740275606263817376746424503803987752761284285993903676421194177807819039060160105250301030520789321945710135735664964921969818465486489679370876130405967758631077984104490885691349460493286423151568008351929958338665898550203078903568022831052177288103113263140336940723713352455762011215366634254749383438980522344016914579639506696866362892648405619010748624214338796255874093986122088573201018705833307429268344030951986793297869718278321912390088094597607156899950614944170458842471333870397228358687039048719136662753596359420348456297224312331028868578685604777121135771235475178695393500721766513797367994535996645095463878807207276769581976521502330143714840975375772330499195787259365623203292184975583554444174522295349550719412715025139059857882442306678128113230440300080749374249747679992047297012412072215547937248767737674494514926566106078666376869448051410581591137405924597549096150496913905753720964600485667055086052423662795738852937031738309271874713758370115517526242156057826220722363408158100818210718081538593198261908779681966620932077820575851676371852465917975014773297008728714851035601873201951948857849736418220962058686830084089389704578699587064549291805988610747286344073028798477945830205914443353566402187059981583880915707460934922618624097412631239212639821459500519994905642610224209529525762896791846313019334531433132556915453585039688549188721909563713477665329970280512002990898400392964387229043844419954261092733577980428769500395661430018091901973752805666672288404231327914007138167379148794409918235194098544962772295868466047195438580468109036003262329254015061017729190141923598861273558825391827172201968399413283049300257871029596492751568695909080154443159514489105398822495349528448522217026476850534424020609653752978409480678183648958637140689011420364556065761587495010791475693538366560447939328094571909973799524045373357736097736091836471551347700619942495665141565817112241679381206828225164898819206367698294343569950621616352952098812893509136704116097680415181581758189953364176962308369798709105509257918327768829175942134254273924523543643643460683661059657330679470315933171935469250523296943580104303798408040230094402430113182695660240062447050559064973771412362876407848421157991885729230322405760213623180661561781961387889434186018658847796774858907397052782029332874367121022390300196918416516240098919941403509182683136214822632418473083148246563041039137972569664057148063346321820821443189093751748469491169415933241478455355713799795601056782449729937593580465691299440531738613219586378083913897388066360896374099953160451705258446886485371959185793085330322950430892278358723352433858686407157835195945212944963494609226867544510154602986769805346215571260117081859905942872890668051619441516515358185976280194532351167423353051896063516704685303617739809161161016410247329499808992564418171470052559902510780263602741987184670653582858113112668419219066992159823480498764975318652623908124281640180344256889020180233414208733881679529188747516536535949801796263889554774804575761144439466706855855074403298164226720642533581326678572623296010458450820803116734031532784445187107660888018001940574190987561995580635706507260297810899515185329688736272205980011498182447914822953640744505020011954017120915820096727674000322292825735522296384228273171926849621250169291335013303527195779598925314135107420473682799318693057364517165142785074174089026663541944560867593136564226361823207032930507601568028485534641283026338525434838157252400670809354291503810883149179392404575593558315468871246677351093160244771894142519667404221814183145656453068486243587110724064586960844534443832671570681730927430007551074101605900450208614181833754186086182443982056075388886575545976256032048634484674026631802937722604195667516472487580513159605762845339587712309221199117942945809702728670393949942370908734064967033633804659433880026468796731958921336247444029052620768135996308808152745014630713083533331649633784622039912133753643948515400659971910104580610403488682189568849110491287531118715106774072732529969821385330855080276606201860976699389945332033736409071565223535305372717037343912802466864568168910692796780413069301118691541080350957420825616644853771668567694572091156974488436808181788946730336814953815006425839704639984885564801507977331151143639008289343395820476009470103440252147307101898340263141328090610234672862139329346853124394975446589816487262966852310365589576975408757119651488717399824670491425152682945126726733648753764116931271948047534300819438191118477355410236489693009018131431703106914864557481788696843347649298950722812182581589044084606503098314840953449376999340978963637580024081988979721342346097717529046662134778334027665281240437211513654799996560180581336538178392106296134132472356424746510059224239005559667458286878765153202277142310891222842702911332519296398704980074081764709523465093626548585182644407488103992901698689172844060047701233786681097369287884511925610614662647591944357867304799538643062522022455641059154090236986268995504543976120030981309077646272762384415115586117144480418917472585394185832222698477164210244110408703157713458228339903468936132254298585800350564665890785283132223603077915894255965401297448253787508803883359910814583790751796137651483851801655297645506730991405855544424619340956906229954367415095003309258963954355882999320268061223768491092714851295958372745371516650297825845893890928138734017515077018371319241263798706617738575440082643659109022385857515426664620422731695181951756455886750372830686219538966196771612557236602252530737853079541786296456778136473262894879668579420823532152694872327190869298078414347763242489156406460882954641146495493902527023682922382506792640712687369065893607988358586888336755872646572799205941466858832685405829587360756649259669884943530469910197936124260477978651319700101219372254839353539463031080136666710615026782667404150190741009216708679561639067292136344020830778068124654853039718023071427223909840192342174621697632686738564412784670196140901997714481434121001219213487383197486782743455949972506179537197717147731957031058015176886433914996441615022439680858261075234382674766761695866036568908488856095594529896622024750377705732086571394561576616374843164391081960833690906129174971412055978271674092562351863586444113686087427278538765997068017090076066064353966008197251099999840300124291696784215039607156928236185899554612782926812883362802482040811234575640180834783918296472494867201370895915698993267993430643743528205158637443790648650100675217659528744032012166248781346302171126164432708747012205721781911194007909067179997877853405193941818273833783746787259574974527952270953730000550876539441054606698702309289890167240095028552340059264402963760516952665138267291083948731379656580474308841101687795231154995419628766157497710194029469802808541412420647279060088072858321500723192360098410544668977626697285971518535989995333148800932360918305245608208995339239657328272819874536741793110961562526570468966754731296978240660578050088667237335892439100289655423511566914456557641359953704372228368775751832905155466784304479620310682968893458296170303007042742682191289864943213120996131520396573214777166850708165324647754070142035498174702316016060812019630953101935053934645403831253125984868574621845231954761723727624167725547036431965935575459774531516292540064729652024460210630992885881283303698965938150199036442593849974297039411699631566501862892550771514684945316495106807609691967634477907350074094213918989958989567249563791630104952505728793440796142136013445674017248825024492907864010338148491021706645267606919962183763503341357673280086357326474104774247632328988658887368191362513105753396170921547241559696707142126559472347673788675994583085096556514811919516491353613186133602131468151046318861748185094321794348106136844009674732826732818812627005126007548336616395158984325194979136203085520019803798882720627732891292333439326546331247496072917093966968028696421853318422588922827347718446459941335351842396114099154907613992798735347053104566078665599055494944364777689682893892467212159084863735028431116097139944820552091788140309236432651216030059724064586048903581127948093050830365541095103396257937827773500904760701661523680359443189320792571670699049404915914744579565105986752865929086362717301649151523227823002470675818299576387944160627197367555750458349933518668125190361255984562089567454910697219819287413232378845749908838589924472083099405425622144120842077778989429100308222692773007351173463819965379379546717298867964075723741924156932293288771744814615664040128697092840750950027337511096977169366527799194668113067186728649523200765325954080207763459489587865299809712235900036017619443211945515056146922768268123199249812422664536407738682571630209595996645606674580798060726225854051051726786511149895768551273655820116452197837173956024182044658883904025664603027004303192106407066614537921750106659696574991769760714706314016869491352759467494852138017817444307484190944605585943526683179821346277063732005006064860572306255030597618082509066692892223727039112139983995202798638900110178490492480308475536746765871699262078667991640306785477924721205782289868252093175805823106124646121033607816719587490574862734110612632431688519160461719003014710308176866451805928642974069803001434724645352954424846308971286526661389825290048359513996540804864250713187221915555545304081627360881891367966539170661396285937872119216908656244258305693525565840900283823572189453970110392216499216708284351700602174783892603522135948334280841192730693826352370497059649146040890950873207105616841682618915082409391149375758372098625118980964331223930652301603113287702068819468295246162060972652564107000455863580387407638417316975956459647953200120659131227296950760695475778603840351531314035884041414861899926021943219309990059035039495881463352431580780042043973113449296156808567796648160370570609023746715504375103172519023613837457900956948651274229246646641917634206752956903917631502244823561391437046519267500838090707697698795862110399672559021937385611978579686788904077778333745833255624773902753403931492556170456627425732412999407877617289144918955381941066493411858023770210611148530808473909778689260264425353447147200058660177710517534268572407476532964726357190917165294726596280445148935645214633431185673188977689467590292537026942320675261009987742170742639030324225375884173854314018028418181158093314503910798040492449312610237902249101974367324414568311013972722816031243175713888675116967795949252802284967899706427353203926159903206327144827367008115565395109892479904109236834642277581260683498394369382117426875455081941956442720297328847922741568202702636290357094919336629730888505084429407880816853346721942569299540399554007855997419426693429412035784600406081639597649528236187182030791825800712160705012185093989720728075462132268092742816449347377238425329387333450359763411872783988386358603673323563196458036527640529470234235098051797105273229186617287318969335998000987796420887373471673930823017377154764894926548941333769882335605270035166581066992431032222165008882268893118266359811881841843919585867562152781213587194124029096574803661690106428491609137458291909099668607838051277684768573172462291729989778400781077859427645774985640971313140693059287195677811751158176855719229141691190328204812874835306662112947428049204619350783430840488826406433564152269843014499892181523602080415093787066512081781907308025176415657764587812070877565886134131073215904032059286006017228553511294451850875237065878474947414015482533223965105358605722128462033175753505052764887785300416290679968848117230371426767502889462853527033364283602611691956627058870040330088505696010513746075639565202298153388040989013545477584782097223824487729556229439405421934817706614701965032637203345872296776792062161031508339173951421073336562954367625523189426626611892955719189563817713057282658213020708487845193039212572589021122424215929144323256798019309146714410398104857557499882132863389215896493922951789007755687975409109912446862551235122358483319982033395586677130802158117433330248340324700429733357227902582643250052001297571726158458099972278234572425206823219584084662687517410390678781186705438835061507869960907661872469109960093465258461003863561782225196803583603191014609322838255533758089904539994421781283757632964880422234589902166524601156353075850401066604927892109743513767908139021616240798513274954211682876051510026868362579049411356574752535356271388933052838904343189658166147743977956311070867210404435348129244702000586529327766354229435701960878431308075141351713280267537278218633166849514939907772976047786583439500503293976946568093589129226575865873666781539692085404266717832251776565195281800587507241543700412340835824183984033523388309148967898602907314129321882740497487495693828661994101462413488182359819042035778198671636218255136358265488304749683065270659253124689983848461824565135201161660673503296878337130073578958866226110257209621576595199743958770639062739285277806478895817181406969603148074134288046491292405460224532128519871850689498968024848823068070748280583523222799028522913976075432058874720864527504307723196521687327472792035184406195433857371013925101015206822943545978116694560941711152279252784036983157762034412021633775406589038225934056777504817281957336793120875127616767257929523226437194379244970417056273638831043358880927053337300184496080865154178421941960164848000344491379592598008277649227800599994326154996164357613626489156040610477850233447264949200747804632400424912881593057305934146364200264460979412390591696216789963284622886829395530707349326665711637980673966682159385379814223530036522269840851482086229840672232210289113033350828738249982147135589527072835057851341459517645966393497786241927330885197965812086190229543436917773370277040813886660466825590027658313494919502822683483803363802226766361074270818873385690368777732342965665060576951157801757855412061581292769864256090889486726139965894475957982687257917644749575509478870027765392596542883008953277393596260321076199895980381903665715545172315019937419498323824072589925196374154136624171043297557238955070717825702161648257360210498879405473805427428626956513328111254219640209147596832207289185356179389087687098491864976581351046293149604915138695709243238492112077791751990208639477215389671142674329564398658640157278598159896463487042275877858721661408204468928453151598910781822599707483204423412934087873364872248327425494575009272630966240696075475586395337740692528383384586820372550302833973060842325854034519653178505066333804510400709983097934744349562209860088691458510365844914714069568261074551721433380989744815967474664283196735969577518264155610186571317748623902171902656115515151469595822640482569095410117241517336972613785197077964756027851531741224251604204929454039866222405305208643107781607966037406216964585278712087494402013709034521694307074470879549012162326729265539047649211306170535621113984671163742304637359692820976619324067333095251053985169618746104140915017095831955123188272726451565434701620883596161232703482124271681846901305122927230884656268600648410022406109169631435831751537894051546582011921303465040783673654372681930517093988734884417650554922153209503600979056987346925287702648317622695270725451808749580523573283470732849060142170265845993437704608906526823445702898092847387697770396461659254790437792607300749584190992801713008673674093212859539868997003945219730265553917115049650225436978868884244626563240530987968763966078835817626111363770273991538292634712911175012790468753662790399532995471198675551442347995376443233564402278713039895954207584598745118228906855431821577121278645761727567624952484407020606055394843501324193627319522344310662097150306800200872241770063471757934736798489813374268379502165186538976430041766205481672051009859143809351591549086438280667250911343057557436803016640683073701107535522531420879120628065290615940511498593389885316498859045599025243951973395797083606272282955702267872811783353049161717345563772107310506325763379501120588043628084869626465023161641836313244891925225750662287540540312089379752814804722482650221211917698375080368883325192801746835798081262804876106727301186743857662390805198222987951352182208105286966132034096255756801058854053723388741458385739979643669637211576029500627542349492965613929201631779180967113930567613799312233741327812621019664851342103141877113383887130209992588390343358148536193336431071381327690950228570451113021532745829502441621304235271108125484800939422760884958536505756535026072662431081678106582541431617328378165333092452651882284445652690481001256060387428088516863380890852070602812154034075203090384684867314509532638647268307570831650202835301101473755116117655300663543169341981285440148686757216799968306311679364103432441460641188769485492165802396834520761317493076127174126000375617820506377387352207156339779649733316720915116237493025458090276129645770565304466375809108931141167224150709087129039974171457851336018211092378235613120376300458280841438017188599911535776231962982479872625492236032764426735218935966621105143456371701994757855372061737605009618054938974045696082045477756865005938656033269573897224101836542044516496652962850439014933499231862420188124336305424917150652427954601321858283279906188456640171890207391195252726182987178485942927692363967834669711264065767571241223495123058890861865825199598022160633737371544328497129568237560390086842879355685154966176353875535563164212552875352158094712507519939876766737162562109663253815817895437287727405549384778090126514795488129897141644942768566854772530888310062887398739369461574648246008257328353770248723611812422710960181139494103594720268176384246359916673810320697677549926601645098056978665835014613587263037031137925286314337579644237496215403808177946451346213408438879280631570868936233622234437562791969550560582835389750724403340987257612478833598962055940925058975127686538596568284270248288665226486878944028147955268614544487928885723586459993720809904821504964060099546082263753600803465535864170921404942437800059644160661623986636000108300732925351084303701403654940208938362022711948062122077933382011026733993770854586404798587672556159103796255936454347776955234087964266188979321988810142316253358838145625889488412150291034707218201985469746175588067515834772793173767299476574450316318972914693172988295133419531144571583265581679546788457396491978720687008404951828290918435806098119097679942027997640484542016773913108344298679627140293710745139034204356724642065798229464937025835100287893149073538739891271147454405278912592132167554608182423361984611746209416527948371601941803343440077635823999941905726714970435796616506421174189400334347134549024375214892353161670988776747915478841662621808846194769286377598518467212604029237241197394892507787954161031196732572157197916311553011226839987334046710637636935455860698829083149759683276084656955324094455949052955137061245564207006532251692697216026222699368485004598603305455781060739434213257917819285480187140167413491900141531055200434042555084707152500267144073107142682001239169702741656728674566229069840719396823058147533266328720227621948257566385010490342815112838671081678275453434505875442008977170969954895484035242152306557252761880509069368210509212833397537398329704361545548097672393801186656572133178264691175446569296272347846285097824587749081189718625094861220415817802384930058016294303504077259596565377685821880005361032719135508289332962866492164930460749681175859339798230097352879081048029011285026726591598408401638643940435143170815992744267594662832574494205886438862563852137449318479441525391294283802307356473645011671978037665253837168649917933424849703650007184645778562753617348130501889857951495239760471149366678876439077770847069722800128818040092764723832654239235893578862027003350982566894283134591103190516851443412708289918622008965656201794788222839186970955159811897663323115303860452606989258330645819271484582409308267160724844376495891849430004858689007795360781546395412273292763519196329999654408567365543900475615724202316574188470672397849948184709136198197267900335894320625117758220112642492050165895964650751603490947907547177354312288838015941931367971127521225175605145088262679426498211173104496986821408385481860419451520485342437081666891438441014609339042256362164810528942150908795688774607790362934781856028288893111473491279146355429815024413843914563130208150041371039974667750651191599629860966557872053070687788256835947678033796669355275430941726209112338652285662204195803938130518724935556572183178459706606707460005637284490803857256781715538942155644810372597112062656065462771486719278485680131393294261712815737083880457669282636085060298679215873873120218295514287130611065023749588903072114365508054755813538315928409928768284707066700801011887889035112863316665288792269467810401776554788843141930435247376064266076357614452417607608339609521651670022726800209243034926705550185785355754798587863963131990090360397199485143760019145925967633112910976744808407115506973143526637519972248516170513570776355145363492740010846007006705185328736680444619105301452212214911551424412227239588262310485875032225484519976161327498702628982182307352366837198495552283706657143272823236283000897319757259327003683967714096999907027030310886052677018869847660007307368120708316626231607595039133608683890235259664211064384075487946560400062686900627540204019271586056111231420276304377132183107244241953933482073468292956893912810356462557097624517927972797398550756261938224315135938342308501699395089259382279621283209448056358883148612203443729868577303423165848609331454318645298280482232168121329823772728659967616163985035120557263607010481782055737842043174453887685338782146944355907700690450613721590284789434047667363145668621930176949530598964475032271907935036835261058834570421481076037337617601809670666152827175947013711639924737666609260142486790270297813970974479466960457593012775664838172006016017469007005518763428458608646430491169341347213931322406781735147811651700585004502975362379709701395634505929635087492022727403206107579961377138976533477763878269342216111264324679215730648912941941399119820451458529878637271822860804199014208462420190322027722930020598894437403212485235268863452832653289531664255595373916504708329686810000456142673845956042848732613375187799448622925720214820774487439065324815862513400624643690472912404347904842075495878125042894840768710431342623209982473281167416906549455659605797928112035436675124401950850476116940221126206589297241248373935131838458516542720404119697965790060230572343209046384454594501066474922108995446937935874758520009123911461495915751431088828441861031891898649725839056840117589449658714156393429091955310253469223664984358374266245592684071507935678942855708482767169593685401802541179948831497563856770250588712042044209633292338949370707763720596818208060402862139943042649506510880455813896045762459330590435673453416927965801937045413477259524675696026245751106960263227535117846647423662336945708497404045750370301254509140377488441292264211577950434068465475036093708007790198509189238329389708517773539161998413668009453464119094391434049723351722713195135654514603808414827798948251060407197474491640617071388080846902068922842364035323276329214804407724733074091903712855204315247091877649806453281795190635709364195613290164276282556200487177329939245874161382824975622620009935308899907277672903039321981527630441077816137888835120950222431405116249316527666110332880682674951511762341791910477106512589927183186245607576393816495786992800418601449428266278695587400003079737910289699971143408186557340832578122612013057812985666813141045519398058146101763343530967016183663308213580726284026810515639319963000141939225568883612652213924359873121039431197671561041872575732996457250138195278032889554472965777261673589206556686980508463700037543486156711214936389638931893003511071119819208024832182352062123732470749689554600823112777981255002302621940526750561028646818896213533470948731508552962750243774531936839856458253690483321999850088833832473287924851761335480260033053687821074068396212057399204437121878294712894414583636813217498396458195572700406129296082136574934223970488649741611704149756659732607078788488193548964857855877013413764176637727638186069461412912926134816393076566337452318274199525857523502555804920128079708712659594837975220268004165571877624145104721603018314082991999599284655201340981885795221963161078008088375134155349492399407217523048497749391537488135525733797457225023789760131634440542225279443917915115143693989524838723193853160637527511487357529670115577956488259713341327600769365523926481983968352716467488682615232790484899684599532465879490742304423937967645242334799518190006170155092986900399016707894729267586707388543683744322118762957738899553017630484941218917556456254334067069865276410164976568931840193781468891638846827382556209714047901959617788440475093574257099036562807485566833779701703718757308568843718184193323974783916811529199247252868885605044296417907034991288090891927710881355240761244210762085486381250574109713395232836235910040480380938561841615705065477162143861107172457188614804443398709328322638187959309589373592486630922181764369976823532276204982328910084795371956365195575755413131339974923835209983441491832041090443625429051372530938650265759747116802447827578628311575382645906313470349934255380221383299952066630687122006589814633827474069940844041429529735730618981188812848133235687079533442724114671412790557348282102119173884749684606702986015383785003137092223827329023596298831868872740491096867648761651901618152408039533746945421945705085383680527750235660743492927257305006235933854542379769544260033445482850316120307317383022766789696578481555011056670912238266119329058177247721680406648510500301414045133060789743272460773416728709949365952804551392942516531498999396314392790319553340213234732406536479006862553957314767658804147696122835083258813602057505069661525310884345662605149853112174874718777487830287954136901638257110893001293242591623199018400208190830602614638490802782063085277544242580384646299592904037028598176639493144607969682433370732123827173742292499454945569228104397353919633080184733099611861250137671000504388317329350212087693747489656487886863195431706154325915903968050933581490211257900435405573410047820500397850923496760202919679565027348772120709580355487243103917678528397785214612441226033149236339395894791777001043037076831108080656241126484680388673253594873895717749158649940931358271970378617303348712117901585265816637840329099515228107943532424708291961899772194675813738829801224371289635028358493756089031944232384351774677158364388513984173404955541031302866826241305370377188554384807515565128594530237518144009840516828564057885735891613305178109903362130600863711513457360626994002802280819641714676416041758985946077627720729589333546785528937299177709911627042795179440105568724016966224671475247108126984618412531792376147860356026954137810409451375084468309586524118573491855215770862016255195359847922124909046114435642817519626617483551507078368269211078207469160365563183305475217639335444412756442218388084395265534703085510418646889570942677017187782685642794685005715808446513656843295386253867829664552160119457024822193776188272600341238845899108127860939976585204705212250593725771206326124774445968736459585673903705723459099457300928322293476074159360702510942080564106662626721690091263842811930930443442716511036500684568575543584202744231494714581050675645369887760180371940777416136199424574532019452991419051582474541059211899456733904972347074896407478626092272533786997211543249527615888754286508518975830643161624682577415373704253904840876519706265718783739571910955135962161816042449364866176482902145780111597820660062648361317749061790743613840010349846149705712685804485278754148916579200268366926340848062522371305054885098852061428618923176161959599912690516213062651400382576169890693488584141679162113955586796760986974373695655173367589955753160905686748968869221788236415926175194114350351693984084645953831592058097739486471100426169235217460669823640634554836271734896601591967115540758410566337493027236345625853169369951940717631379102187473265237985893276008427715833543124220770319494259367201380280817540210952038390857207965502279319427398217631322137231307450722555195069021442680370858666490167180822728051809381311881493991054683325013731919989652562067361708348608049694614241366947260279902208070509689236646970973368812382854409103611495803348531509404495369803285156227040793696710278448055115113368637585073471269219030646851937705567257760443300879860436722798343722707768732009114532252296767003805362034983541832787659665000504917374804410531624087995711859561907585054299535544695256535416540538447925374832850663396586467861829577275634511965453644163292679554816252115322483435928597360706457175752119570067615215761076986407525564909553109063242073736463741444446840691450357810660895386361179661062056151839855333317234720943698751890930845773084288018670344169768490585138702867387452392291530504032506664468200802332445460277741550109857525151601280376875076316368614352797785239311667188292207427711549891079661920677148294440229752278107383370915642861185920503171634888247874251220737881942654430485295191081511800485943754830955019207642563843436585253631527843332330682048910807632693236416239745598391435764197871801449197321253279542504838549488937856177034958037457388279758028925026089333725872524123708713712964177499998572186160498463913113661918745623274605006094046044356177357752562718295111587887812978156072625034688163563685086582046078778998004719302755739613526102503991387738825245410897767296729042885860644071242995934248756331610042730380816787126098915980840295297928625451843249303687512557729642134781627437069766884613099940731805648308555953572389791980068713118883470076897770085997579345767679970329442046225454262795765310646718134566113442926942294288640985736830728964427934027562541235283985177525034663350293726747091935713313334595896127145284939268696931233257278033036587838481990317331965630156239951804404109948316296228475015935466778824949394575046734406191599519001177395809253972253882158447754802079745328432246950786718592338603396021628675521308371402448570749115105665201386938211864118366614566188243785781091706092171103482099284379982183548427673496563450915297342804157949537752516228206649896858693702869125464980016427329699855765141701481832183279712055017067939972683176454025785262963481133808636964969050087043500668000260652054349363308583243084903631618147316971516594526679552101901127793993973167529651462562202370830684798712481396062719308092670991695092444348043323327281855074291704758658446709317025733865823389533901781070972351363599909252771704542097635832769971256007731206134337445754367722674965252622996532019747372127382007542360516959901910726616925926862250623688728363321868658806644724487238086977669016402965467252012412508163618056056493241392886062822376328069318267550423406092955078618669196934585924321306227360853676217965129696085490746495884403584786814517471424030044398302124925989952339149521095496218035156682104395830340895354190715079832413373830648667320739587526383338609088927769252688048334274048802268637140854592411596858634819534398745065213364323633767470515132931618787989634423631758294613902699722540929274990698792985022362713967993869927034844440956692746826337316112014423981890829154473658753968583658491819110083246976345113741665286484467066904976482189091905262575727562553997378603963341259221617750190950680460060137999160822759990095257331236486355253514218339481290406686126141445834473475126318860377677113777930879306789815695500570813138990305060195525423778055603194361023716633648935763735258778338613353736183932328880855658116773108706748913935733366747105500477375668239202087361835552064856607928182100585595258138457517025527812838692522660445943998347676671733619779596514025437884883376939813363428430657590775895644308163664935447753923690399658330488237833153775686001449999728223747197991241240945878049980753811603134926342227178106509604913441782335860616835151969937417757200534328567640727115369598540336736516996664162022625606063992036631810030503882757528332665881938925593565555902470613152446786078030196510435201380314796688777213594774410911721532909699751429847412357427683668776578380636950457516144345079634899169994232970067054098830706948788408156267994481028135086359268662050622849645142234655816865440721072053100662094091070743413987843304408669795153907373202431442255144875715040651231515809683090070232088843584601534272867915800839736273431139033566517069587805717291925463698417395947356179830680431265585358188318962857863660667279764048074218895044776467328213693906535599126685945408668237807506352949228852945525631819793312324867632029974760861289143232480908260313531189584602255742110831202213290042772547429206554300568394600137977719402036450135610190975160864608749835001021019666443271395717796015226216614183925589206789250902228782007310685952980578693958536921553694069916080043251880467342146550191011465630389692427083772246980901083845258558587509083390710710417872922236331916207763171738288786940263385442873591955039205742493959057538016174256893964385188819447737724120920282890525768450987812477968974614082117272539128274359253723923129742618986484470082481149923304708782055437335346000530532809282046477488355955816481613577837447779310059811758944657588648735578280089762391811649032797431498537456840239131548178756664333533803272403075119967354463730250232862547947829845059201967784206338507358864043227308089029092384504642125749913180361393999873306318854993096479199667644521598890819989822589309446855156161869835153521418808676185622995468967589522692097097591926235584385058179608223004925472747525567783147713467689190276695192333785209379776962430926366180607168220298212759320350356335235062752768614444221069605810047541074732720722487343164590863845619192092914322576788108960249590543700799480259474284593043231412343280428103102625183749860622663177457870599605946736100529390658044853965323033705179480549926280230573521904070273540605445004041084797516913790331149023799906483389813248599746766690258772366232776711379422634851673220647162448341732705111383771135816219113431883685721748489533964317506360617938885130573023201664643268187949641718393270189980061548069562934212132692284487878935578961463587372522777486831018779067522908524310835486504375860902715114119862680020076575292598351799390358447102931881349833589742381169717829530418786160038866801628834557657662024183943661524534730025534173737074148788129487842148011121794321179333118353328227058101333250932226156545422135515569200093670452458739676010462311844648283416611683388816562064370608697048235109274323636367873147160430827082074587271490405465132715071823932071143233756228718087551629294920522329118311251756591879287925643035411360155595019120744998485427897678190904792524833036842245882079930786636439320509241958445420298564926150449599594628462045240644273995175547228269926466651371829888884720983802964242113053218833684632449416703324901782085537468023909934336296550586818269172821260472418312304213355200511384787772487074431565829096064872038004471762777032209289645869506561448439967361785359657321043280391094972070044407918991274520663327518319426422070903584053301770234217139988777853318860077045579100801650467739919068108426327065822114272529874290785635661226622323580071078665524249078192389630599411551673862040126511113565942406003197136169976908580121439872748640880655494369072550421001526100699503942294899973115556397408273520006189789328031503298629781914245197590013735297799250575705523938299316750506431186296282111778952530383296228333477169828644542011530306970121557432545466480984647250788935029179118025163013785598094322260357796537398569277050353318925437960293960375597502995924562213453147262765668521805683829706447858625595664363089633803139442431806046664846249573550778349136618495221788159211994296616968253939378357323922710358415265288366058265944926272240589977977996764681705691758136827245306751232975569735954142527859909915233572499826315245236992880094710147015415918085482077726006899868281050648385733560159339039177619150316130304590892538405712419210184619047881130142173310769452396337882835372974163354834044520462255389534345864902136195339346735362280974101705187019291890560819844400433623298054955842990911419409820963471424241895898692934053433962441621055616118525006968321258177501983875456917823460232478038231281887716710339081545092342777094045119576862825864652203311180855187797375973446917171505662520576133219058144844367238826709763526187376617710847071163528708536797731727096080000749625085300946966368014395231872847416523133642162504847778559926740632299691831446281209321889813059931944923011275480628670327282467127332229790694556263373883997941360799490988213869880618073209974421092475690372840232869275035287759684740162566238017081243958307282300228593301487922645810435600618754366347076338249974560568760789765924479688704038589344674492471077074480380239038362736092424684281701730675573169987448014034882767478415110349352174059705597867582610566395855120581423145103618183178190589504096287664794120869929300769081585324905258636204761943197883903101791081396833410349107996563927938265765504879637565380123724166694884864877984010440476758295355804675399478499770817969969653362596209864307240822314706371797572655051218516448660973172463602985607227468310015960974935131124841780128527971566694361911653627507830431192464269480525661790692617031040853957061789113191972828909451977950278878695867042223358082277392612985501729757344298643787102643991038275918442749808660961409057132852017307212663921414690895069949156613574219659709693794498091843787871628476857457903594301889406646882002425129707401575437072671065138866772702599080866933861380495959941566219522387398408345397297949121031384865570144823365886508438205128548171879172351247460707364262663595802154074768195025749264898558280941030517679635042145967312398736660597477890573651064638129276550357631806357581898566223698364141546360228189400665365798939637313443167624274098603317403825252711943339306440076871658575752969541646042602452209831054222118859324568450169960367062339852022613325021173026088288274427025219118012236218385213631790145612878508821201057427670681469650235335258236760712978136982744263918573039630574136278865374255486501739199159333107221362590475464435899633562847754281820783871374337495492839277062264011598640401324475259226198649323431076892477245966742637480910158161681294104768086005643641349177060431580274752740623471216388277471455058369400354242559989833770227577549642778950552593107912578354120124652735459123691490784222917069381163970306618757192226336929195764118392539280673582596647663466712983892846517165851804075225331021015475853700810706972390238987432277995496611066490428904294366377932938345482944035322900429699590652611838160828749237795712112487075922496773616049992224785264953515289976586539389166351848143699004656120369987897906677488282099796112296261144062873710841574353871873647617793695017631544700944351711844278249014553219090428347680997825914509944316804390773512628697661857111564997388319352362232572078458083444381306426409341051176515008975662058177446924985860049920656892382467027742027194219559141985974500729791299615711881778891074443968744685913646007112345525491035576242820959484058088908393457230230662639079107861888965022719662935904727187186567614418788479583535777077700213503616688176590245770642776204397179279237435524789512137086969771151798001215388620935400614113030995114123545166216322367795337991236087849559998426108506241708970273143441446618946050882341091468733231065879062037465793651953337192315453490513463747191441691997967044634259856627365554386852153782845737587726177952355393272694481737150030429711656359098115852765480317118419096602948981426038679464983418835807397299073196649737871197440765237623804575265599134417765538537195278411031192178864985355985241122922724565784422354737421387017724403846543279939650442057985596690589493360636615283982914400602406942958201920291936797675585567335317718232555059372720012167844657573451436796861875253179542364780227995256975288714448869193110355954424786071687042817363453044450265581795283937798798447798262230639278013146906841634565566302284540022409366302049720553581513299644229786263500447425403877842566545139432045237876853207244475516589196399456877403488099032908336971304409177120679110451389299839983039318737051927253150047155601565266448021721486597243692132087459849006667570538517846079645361003016039780084568844503401791766023723615868795979708321334579170162594267156245134613177600317695915064868345739925848208589606226026652951612490177049412044819382067609888545015639213214802564397591980185594645024966880219304620450294136745690506330141091776564650968918085734732204256196348419654232965147575245825837754956776629952640413121554005793073322004067122267874030454444156443929100792193282935804732773735506576221521852528818051917231858956681976831292930736528775071053153805436836336429114772417235172564417936251279207903002235273140764697331764807450373646751151540151731884882463688548619035995825017830991954197842849079040098884507463784714827490102199627175088669393106997718450374754302951499099746855197485699557459152293628646944375740155270505844899185327493259364160955676069760135651971760522348551080269134088720908080747760721038787404643463174936015505679362597825022865639583345887769963508404803885370570812123342998964949823398537077415672580385141672423948813428252553536962602767360317128117633558594388423848460762868219831815673283855297591518996390294086594420120221057244233502221514548754084262114073013521304770600219608183626346701036909092600615563923595253305359827034322439991188116291354986152641130377042648660830437628069650284560091570678840962679810156120620512183666327166505477695197188944526904889475607424218703330153043807298754142279841116202488865127747131799284577550996457096895574199886127573199729318261966951314565175576264101929016295880030690576399159061908761664983855546592588792562755848107548913232548205105131507916204915808781496399778631654719351070153601036589202807343120030324891425623320800132486880243813649646491165777276243380160991214085626870661910436890230948433275399973698822827176859761010285502848562947930876214440802017958281271176422631858505902291407733628416685117215374779778700820134270708571392864983760839435533534304251809559534510029090454090597916095045390494433220141536090500888777452745532932429466322816141043141647055568667343909642499380490562019420508421506929357338763541354622728072825497403973800697028480104937415390901604838169578969861193675133072053154467702752131747873147691373658594962955023663672827096148027490944963918327318008351921958173437371848844276514520843480985957782566631648078421152873734725913607061956622073554217893466703597332457646126524798672148771962850087615976339493324013332933697711180065109960386577931244533149405017411393686970145178029390913902191359775137451690357996482784006629109379181648441338957494801926081224201285134586149384249395469708659469827483762029280556772248737138169596876926326977926831398855464314870191652476103996474624256908985086856150142950479652524616169006691669902575890128950847737348561309699746450328591937449885360817923274642833364086958553343544361888447559228381599629065582709187872838323684725518575672290941416254912905959687084605408179060572605907649150958718537235389439877362466793022050341861188709969488623245370650435959625351071099826914036533826280304736576314419633259105284455626269476823225083813413026501633861604885222821741374474737738379475566167212516819243456299135542812980303587590883352325634195553066892301883471444697971902829687470490928577637063549612775505604757655120086240854511906932365135037387457057537057680681402945628607070220053996771893826558398709319431589178864258083742715989614805481970815453477471715019930221970532184858256950570728427018412728128037877722214986535388806904533327173383474796747369439071527399309953491201537068168949793218627702706851683258623418577020175692746913651214224215828502634574205913677210223484055064949669544070237482671894516885908676412965724187265322370465883676480134865776852393164497570888760729425180956524042106947349099667073414024697593243617653603245740133305080671499884391658761326925823197446800593177610835315558069488418496505873372009386165720950712919506771707922361716604732468843251215726736995675975526959229673980820502961687319788411008319781273548478417889898180892414379388078899599446682632157347096939946540715029995593329998930093452065439958898057613879848854308945582494903761725969254815710920208558441541887651003087192717372730333611849024009139195941074171961541486411609855262127054256777459330518516472572840072895267520135426415109634767135588389889861671851818357589968237206931231047910992811389983401347200430869851718703181917486479948485695725991141441371481598665823358563762966483642347244497563701345001844525439679907904245900636639551211590613090401837125633638875837007833604241833272657971587377311923842539162395249988642729991428006328343814450344977459462570861626035241337435927085144528517862613173351986030336988084742526972909727268457850613690241290573859679999200466679829986373405058197762349062635011679153825503402076882586277339081003323021513781526943490585110386162062089610415847108289105227859655117137613658559065848274742929051267219548711519432589255345788793889373252275708930021170510442329660089387127524251061112230806853044937626895810849237985192112795410714644032083448140639273547404176771282447788846671960243356380468615146026229426786803028459869526492700088943235395201891386578935977802254345787894070903694808145457564546106173787879620906477340128840257986467477002798162718530015404113624695773967977951900357733819081648871659551212099418071792547419279905706196910134017543486140465701965759010211124176067947478266732209376121214442105909088299836990997897163033462028461945383998157119273511539031761439805842487756981692226397935208871102053030124990456687753677721538330821437990486977698180248828779448305604427863274537269710750509939551911236609370608305228237285713583819610422813409463759201718072524064386207812235271348679898490164931978764631687813044336010097706890965451833395214140573194672791321683674568243312173791652034290676886043565800015923497952683267337580088258771761896474832064463533392641708502923530010686975852690309052722995410946070738754852309984420944655166522776195453293801296260586552516554997031245235897097786622442304447471207146559540344084204061885646448820363470287526960545743745983665181141492006451910052211704794994969668480092515847092427569320536033611881479460637104450486307865257812977002803958578854816955028933346730863411604422607096148528984443755206841127610904617815719786103348066329451033467386720418772002472864306366864745434664135924538329621724139789328989529273302553380903876318858990788813031031742362283421384280074663406384978316607747480968456398129741873650728493416271984687008104278547602219841991511833648085552931300117328058425669837476076092580330890508540538722067838001066730206662915524807655566431239778409207236412896820608156140852802129700079344254492691281802340794639629157274128312174774061213861865229393048952904486051527055482383293332959263093085708518058526863465503524908636784245746039825024347279961362933095970751060164478843677646337788994801607218109997956820181857192072341314784975254932805983223624633786287343562119216650264868154546736903577759592596412651828149774357649360136597824308842639894563799290609591515248714749587050800200511552642941685469776524459480913011597661621926289494439703258045819313090787150584335445629107070712722004190043491264576995183629930669760761504388578639120810733995106686239098101621064720100197460111743359553030601604760705602287345195423356939896276096125355942251577861977058986835530690468677410509124513165259967747697641958238121713823710337231757851187025292264908117086216225541049017896725001013481449822846683149346695664530928314780292755594169503236226968551057850932236400910968363080109386258136595126973207033119899198884623437138431298479782699854968148134149187092424056270221093191537382666106325704821951801820601667229681949491273555241694732573123151653875339359994227014663389445211198583931861689399791513373061140061338030440038487699453309863646935668554993463002353784819287982683115886574074400063435110953779649780920450806973885778031170987139450690030958076084242929052985121902141492900830388781562960057297845569539835713229991165289021712781057805386195480562344735255310366176512564497611386051240509629165353531452775556850099673043329355321555650341466502615161393892061112934178248212950670966316378799428021581178806889476179809654853477954554073496647334043465955489673443987115492748458286869897360423036531007328940347788212421094470964253057944482240829706525357962452401398146100021636205194757281086330402719624186258916420256971839107507631270928195326056541760650942719807825781671690047344688440371818142015785361126569332176010047958987029157505256992146449616685805169191269446047242389074844600357496546639036170480218235768669572917900170135158491491540185053089131657569016029136283745904496939670789028569765863570740423786928567547642377001022769468959522866250550492937745323408526924683945244248846508432622046580324843955148141567264148472664457163398229731588519276077381623573517776848804007063712355118018262909469442450441619950201265580261590941949678072112488040780715257049059243625805276546567243843761422070404190357988676280406124536181460494301602733094600763137733558628868151633409529906233687816322819458899079306868950556387993099260318960818604604652677907945740233676065359567477782789965107062790477630713441852218044585043179497067480586662440911374080240495277209778163118681316808246650480785312132713328785443974913750918183067438202492650730507473677799660829984891784043196761117113585287942209297324849015203332558710857853612542903019230015046896438007792170829708408838856070363543180014574035906902302263095160493757418471956612636351212577195031517254385699997320214216477749034264868542997993267474850248381780101867735228259032451557060211434420981838045075834916849526901121407457682303877856657592632075059408301092326063363979076229982829976653221879367339341008316758530095561446019323381552983366555612790952865262910244456814415939922373650266284156436219148427143775675914716242932942245961944464589950004689829380232528216579193848143167538717109991335761919092840543820249430814158337520106748805746818136191994815799794639965687812063458320894650047297872398442173304080874210747862722636437377210302939124980820663056339297279100892545434955448805719449705956293574409268034214355729217324825167887485694008137731775631712709918009221064547753874185959237647099427178687498618293068857382585245944414722156508198526148829423698058300785251412659643571884898939438177174183988820285803867311590993787533188455090950016572171330177764478285230209188904806441173967955276771228370307277774500601442715437778521651734694911051288814026378269280591025511720439000400433097426123335793265096159945974289997270321173399101799740593183648278129378403267521676802199807247289671818190086496497863634048487530665922590414971834500615783967168149769339850248783694601869714547243070431741565707697382340747480413047716337555635471179053847940583929923153448398482738984898605443203732610587508102947745646397374893881345492419502560516756197967365620418374089548992999632750626570502609176993852615730264757504720490099000296460806036051253754903845244797675454290197760657258650783512278153870624369300266286468920090856653393895401245011669346170316758779996718638256327419413394918662191941981721874277954937926388197883383815807731139985690301087418819919401307689728109310831792829860803177258019582761348396809608334947251937773015965939945190091206819438822812380470784167736096377633355308636306141726198679969688098514055993300571848643105497915031826061384364233924082259262915274510816052880850035585423348375445381684623546833185850180812975999648375244218052870412459410386049274648140331521296568003987606856947874382110514928207701772841644923254377403647047550369671152776502712994626478449800513076140539136318589014540237511137170136736253298099957189268105614002669940556944256978065558801788246422632722485909769690128221678961474935811712640180625535198414720993051963565173657288138843421284981662996095868900746318623115703255656690518574030416121761217443621995401009039892048604522372360832405555788331040737816396608599660748953035637130308121349976652775541835282290762898537363817432072842985283862659168898550073793498454048696003339413788346826527313314660757653520267068269774913008170182795162913578827366544600639335069406777145826001602297050493421239770965502240409641390957821759207379004195761837159049612612961241493168129662206235649699530397351802278846709054569386104921035951438487295801650816839591936882419362569424713251090808860613323231565720577495603398203257297358203003256123326399750007345056949976958878433762012422972109776809592981104740818532950302918016167985469929274823662232999887529972965723108264649912856579599951390769735577565325981630911533734952387974456844623029579934433636900586975928583887715544803518599712794119320723853764623626477352262326580660583948405918033032291470990756881162651429076482798305217989796003737019052624158729054845549893293792634065236947658495839309949689161984295247814358864617477808188201352555674909948115596766618809268338158523364629783168637769233288915386206408396297745319234360193118279341037591679302982430502211185514908772351168305169284325936025305486379122551494107428303362234221681079585291954663540743969340284417516237575141686367682756114100407150245623684905935693967822560181946994753891324650175684302769133960988659639131393591687296672471833603506129119587282831455293297073902999422102297721034263009636808787583727800824392359632912290837429150387776932156623297284039367004551173469898264970243103136016734267509010582030363000118687378915956421527992348082615344218829445206276893633108882644216764556395948712588904754465500851899951841186105483184632644600963874451535368302617008357174243747855098599731962038809221945764001715177064099184904134536723520415520953089558073351148230682029342584893720383811116302270750218919595808516949895488015480237101146036327042704591513289836583577709646788736931547611262473777192553001844453909399508861639220563043072247453360699294083021216942459607802724812268346851991313703849152847253111625625177031834029287971368171677720556350650885418554908169880875013609919739470905701525121026570886596683606991537680701398795839472634255318342019840358868468391230592356715662049924494233843234185092777470649100289835280273603861296730021533494885349526615754528886051875724558833224216646085825644553580489379873693287724630176117113371566667887386337080142286472201647623585841124383202707837768188440259823196200278573493985500902329630132986888103731140073579588781969506458699236262455467650856526907466677803917391222515742637302126900259487626499336183292902929025536498456708936902750777080462644466739203635357879818022429782936878066143549239509683596427864545239115575429224564191141680743972527394777405899501360729839452994558863293127182101756994582127135653195440724346920476491609650355549106383050311384134059202242369891206097744150994264793435946342244476633477938039509956322189162604753181181523546331608588327989733213480099655696573799690695536729924625916416972622358010343399772857378377702237013147598390429830237307422726358466298923287548027077131953215655264502725616562914072971417321007779424244454292627712471859162173578906466800517141845146221293206198407699644716263972964214572343294383128448164627472379416934956964477951259141879546552843862773762383343282211521286066200141938540541072940694830042715149646936038877908810476652209904148617698153942647451061620934873661856764974493565499647229292644151778613526300291157946390539154820361331471522270599249614371975818713378940878043650396079574665740557869953636871836171345523239775549317179155232165029631943151063622560612071803905835436330275662529167043458003690673861716838532486139104805499999333896793348725845342496208449070897294402758806205073897689787741197763499743117993526484613919764259585233211850730979281720640286193559571348843202678264612819568721250379823555807968444618838209135016338782720032473420302625522092258753380605163686767284518025214040039017884317868977904009708520089836272691709973104933093393294389432934581707813569027981795109602538471502588037466345191820372226168872171274483171453091713089248388689923581948862832949879434721537481007894686969489682487392852553486427465580342875317855495386234289616558213216055219043518741751655352491518327916101472075765416202944530965637217097078326745900215306537742171847799994173140788007849967537307669064212495244990107870991263900530742986250930360515015019460343884886786399318023273764295227819182360281286395157698673080400041077957343208850267152173207721232905975661108189510077520648076634699856900265523718796026761847354144509818426962274049327348576942233902780172916500073367303256262451878069609087036366616885981525546734475215092928910430561368959636747703285823700694787418497303443987446441654447686590314482240868100884622433020914270082280977835630222357262483247764965281870743719599550868903827245088208433604201833286940814914783025994258633295736830880513428127120215813897301623768343045679078596457681832951688577214334205400925181946922992023034357224613234814253195097183717072450049251990326729044393131853341786057928708640094748193600795280029262147072089937488775168269781581550592743475198522435466977374773898279511651979032244779591991190540889787644303848101687286291450286042860120595291781127423486340063964735936135772342412044720233972249343892457881434575468859014468070144599461869873088415036788060369006103799002005858285755779378617431704145142641374133074729242443372774152541573449175443809449950603130387993869357903958537223601656501343983822330109258190187697193267345942801779891589809468725281072098543292832529206186887420327596992909043572397569161521611795213858951647722722024248475823570144145469369651884923908360766303854227112270723713498524067864476213935383141908563168057809872022957388570471743394080286854729027819065438740156776351184177355892760259626036863564943197731245606864305276065134564751717726333278120290751763388993013605131305365359252245476281651905825710606060969830306166033038593843350878773546271382594357878879547279810211691505667320017352005847666790370018936833525510304390611318500268511740452288937459774048436610536147671368719250929265269700593964087556738582050279909211583893039613151997123385136603737627844987904318615175173008902619398164060183906344593995892935943124892441135349222683472967454095716938603994437335728940369022632997847582000989127908996432834766316040920963264678045798367884690876985272500783889044455879950165973127731232248401487269069017826670905895802351947293238454980568879431768220187579504376463267128863810294353248622237319254319869944317170829979727700646503486444673847083418601930690564856293967278953989968848833508826475910844063062866237099761009121842615066376242840764270404638605527232116637270976631273982675916029584929377108850612051381610819730173676432730880627682762316426916588534007430569593351782094842646651384851811729854097276711057697369086854041090228841745692324895773947434370394869311636059151545937604498062354005805590330574461611016375014065354306757331804805484697823181499199514173139724412671232098389915294686102364833462769270499083160918417585544548279269871873708482446093014450938320750549273840823766403857479980540240916403580245325738194257010870009608926701607633152311950288197490006439817174897301251095267229075183708031373985331493561638013352927948036366672103619864087594414235778644685641937742700751199519834583819041866132888899632107365436655461511769778892026431793275735939254094685208454263723946020757921280872529554105687881051921954775044519418233245939301618097544088856337284226846072557757388256046761814484953603458137750130980019052013178405567203329587671177545538457854094811927941336475190316327586809770908222662934561745146170078834519109347449465988223462812067211774781171221606486142606686466642327737416016528955229159823245469405033998786050915151290729038979624160613486161488331511742279946853939118937766698781218954033775427053644483641898045372586076864818582303946477669709283568963635803738211202797136675111447985047877802381018460823485693471318806388444257843670423493836504678401741124694177155205183961282038735381030910734145815141550037795197151192941484520998225268302132961848476124679726353719679084534775039911536580567819362138865290761696583328041434152941494113586594625064182746682199400419841199463429588688410760355408898383513615825874791811712820294574091598357835677424234976489778147247247220095021022343524782115052451669016701556928225877056571140073507314247174462500323629122146712101323376409715306721824166645770966653559469824970224260730070594783999063592697577869599834260866328431797641223928067301152995865400932055861413764244022916285058890935521471521833302340557072122420544363930906355278822666462681701352016921852962873600048726169984915983062463220238617204134673631848279700478318401709627519797906411083389713655869306348830335158281336139247914165179609941608920058031611972765165668299242119159062195378929882725860242615321310766173046222271192852355693423265229934893593707870851874167771806987166682106441640766229995923885991157351662434186769954683577252363400043904636938934572867035200904336079899392225974859054642200981408871399598664559658526087600290151541186355452120185332255039486124249454596421226001318137515705948525288159401271870828421680752106733093854031680025685782516557284091130645058631713810247031927504792105114167160317043824593383497153434384447678082470054653587113983336214944503115637084480377634647231349116662813738928830040662175075730892359735131087429956177874757538536261645368364863478702055708306894710083422807160652017534443377762676437251512088463576337528426418820078827979641424543864744058224479354680518613748151801519930647633154638051412970139982609157514347594534989452793380365655066809955737111759556247610896210187409659287768727002800978282071797445536871959564391480227800513736795132438882968886119963578581204927965663544961931257948862046008900159986896320582678586222801443216282723861236998721920517032796446703395574632589132484370144904108469565531812304458608261825272146441699205195668536102633073890976205522508393083400227514694505058261942685928320393794340961054713191576847502943716748516643530576175158918842453359863150026039331913676233954644655381604041239006453920894781011849971132677464608244522943273543343482130721162695949372727063114971773846639336800005781860423927178547363898835617548492543493533378378212742013649621715623436388414601436489619740931791904676488097237507091671495541650138573300566379688984851984613077917673220497737161283663882582419209928253081646190263437502522663233165229202752168314600347275257064624985593337034572626229280932945452913842935286740523503135267575922446769865195491928223305565142542577012582129008443816686965136528177614887811423600424276580458023540815101254057575075790654581752093434232229550929532966210779568313277866681071854412931033241684450275823513266463792555346214996631472097469283821316426131019694160492831886556338917105893646471844268107063770234059312978595814487992787669271194424401709546352546971446302919584817824561653082205342904482298130585455414214991453777492128766066042168386374612400872084060894350158580054300832333734367109059799934700116482047557663039266635835413604755718866453563815461896222839729977224415772103995174984430515341747039101666955251530544278783658891834684638756813694783450823195441441275975073244408701585403087148240090533846414960475349403331508283759112496501612864571895194279313151243970430282514530594971661998478951096354964010991838921154909062513922871172417143433076925799603283383707514178239874734769785318550921492905645165449457029549314330825739014532462465181017834120593988058895654183440761401272571489527775111201226769385150805016398897626201100123138463788335246962241637045664789311977368916356261500584141004933330612595488844695838958143138490874137809648195209991414997785028006724796573092947228515566529470350655423976492677098291646988891817954535886299666973934519979286203591948005999835441895047025523889965249099048913909916434844427937776840246458054021153618980013387648875205271999222745472937413066564392473026799101927926500688871701237235109054424154056847561421411463266004071050618235097774301163031621673727275099304550606867225708083199848884305064105699958991262347732619187831525008899963058922194768489777308302263385446539976803014365633964013414787728507014947118564208139202464799111461500495132892170251343374450695557058707786949371355685432725867498693219067165017111089726754115220755852419289692875351497500216940883862575639209291983039502885379680234619834040550963809808473385889142603549623886791039462610909327718173415967260975452211544141707675636786722634049513793227427111440781697589429426269058971375229896306489846375003972056584551322097406463969304790880585455896834531767418486931408359826162399920235112690869190764022069757783785742628636171450240844142551501046729145458496874401786555414362548587714417077188598725173332495958868456953791152884697545282063418820957176995753415308609239972011611352476659622165847241761368311338102593962085990207581572051023954412185389593747459332883481071306419536969470776230540722774326993175485620341687251109879615228461177894649093438489374072832874412769018073297127041939548531131213931114613514730531418509078695384210556705081561499266953555468167797348055017463844794464234068273666179900288240792563329734076081843756836039428837488718151189404988614982807109377873439347275441119150184088762344892470023242590929888047374202469780006038628994710577680045987672211142886759630037634352324626654350150655901618897604134445908114419048458045816107181011170916689990881839657636866300494878551779083177850827392717265888538392555837773744309744502688957715511111451312386567270804201018063453763480045477559612180715019841099653032438712618087545754705544306043318580914777590186996569199505126222571513130064521317473048355915629252976542469167053226396797189218478211007639048517659741589046972187964969361004458259118586692858988529135194639293435207619912392171419712630808973195709224509170274843144040632616414121473446574758519502894533974000403655238991295190635687071481570262103718187978129626740884961913301073729689405700854248985924918592628406511231794558883290758466241574152341482520493857185539559744524635193395996192930111421581132235654284555650223635275174688219033164665265534810752094328262135845010896312855021522106061455458965542457206578183908259659496425045709963362928560085819096537341473989381543515091340597163331881568354704044157856154689499176513510594373056973446688501275427810206652264653320529767070856909053704479308290388313934907444441607229201337715690768115238608859864849076491971240548724358097857788943468155969262151993244001026104017063040209402363431909745152757871866741173523893168777954581795843667684528119918043656430824828180250295696836126463495645338832854844643072073030441934286487033537825280883447028860102392593544667713112192725279318784119044963700467112275401280147920190741726431201298363199890742718893881395995470103810797504795258889531949058384983843397108193689151314517544451056741649254393397902006746213123571847976524643815647894316549472288462998943411010149588690224668000653699458682034154535589088805922896165799249655576159810845389983087078708666864550910017653521237580436031179149384608226730661235609746780822011955597430074980601468720402225966038719778258938024979941017317645530773180239177959054322060649418407417718627186399317656499014110506689647012037563469970893116650191061449824775959732202194722820552293973761384357222052322903631906562741295552038599550825480847474872489899785008543407909271583618526085198861659446503803362034254029625877378166757362032502173780840465104570094897758768498000303740815087294489569969947914406824392420844106670245810585820505608540382044492988075257078585521296910613256059608368119212037941564134195369388866230980850993504514425858969707724664253272629811290007369134359816598062524773150704478826854205927013265567131901009143569524632258263365353405821059307209564308807772926897727485448456355844987687449359886452555322089589496460181589946175627532351408343278909631180775088848241221254448499201834442698206713590607345161715690509011560646142698011613131567012162780131231889620943143624459054493675502899142117469175682276185217696380144419129884354749532998565231533762157075048127088764322206888947175827502455313675075732335836935119133582541106366937579922247367523553906281663056128301159691265920649224300474795920872632141977357308218431707977862674761672219441116903132214690034613949779898706217227741640097426162576853042563666130729699300096940505441864758619304639963523801323622899847824286745812798989479926145656590264291456793442466705771010952375366322934226029808732591382527232750967973084376493602549666310495659938210705763778745285130582284502737607915599228888395546872254267332052160831890462503495198022086114648762525432440888301986996795196821119839325045488652079575357457737109088455872900592113086618929973826188900993864725131111122176465927434416645302492936357284729196760068920187367240773873004196280565867136367324846193423927126312676789911638504946201651880974293206605440692338121779498078085052195765839270376235630649055000796149210631699982606694130370667702487616898059380644877633256456414580432141473239631318050560415882060924929773879205807395657812161310439375478126601317724015381868738720568308541647989522809386353702138857307452148798661068847880056270684481197130371887758105702125103138416415763546538127240937400258278750950020739321522765842983744225225916463322276895696073136953136314292440727787442691174040043967752641520255240495648160940054935203094595398920454027979038963870715991841228714812824703338777783423235244934624451520733969453451607376826781962257900357072213125419595873943398095824010845156963179153636863294985578218989715751683885580553233489343948200850178619299914751385740820628192172146410921350640616517117582892124480499814480866947121475587680463125606706327401701480907546297770853927308299436423930621536832325716189956605386195268418183014921464494645885378087386565337513310923433784856721676088526681818902107892670799572460425281504358837126849748429645249481747436386567555302653502984540218114586256826908503082628725188866821033488394974574432398393917947890058258981415006008378144388216644034717193577754386249964196147715982173414281837624872053765784339264580432641763030127610688777393901414128626183414376742060790813237147169555259080626918838906413193061555755487082407808057238044503370441806231782990568449356471662446704028447244200623307370281905568169596583803867779437489162145500582039159276315264778123330199977140600435084930873562787719696930517892331434338753031981337765713787468195619024112361288489070892598175837378342310825324668709273855518535074117479208113546776345245971638937766136058491547573195456004371214592471164401767099794302950102956997661194116170160592299694264374333308643184523815251177582919705984240631447349307309962567605925182563736007247339977319477578249422922576688485402313284147140334459993625713327807297291620258822504658002520414841840343291395197842522458027956193633576610449331686199486059690679678159095981004241069310271360638785830475827060491403999716759947663627844066748504475578563917929718098969087377909222860641002171793297490197134651268056762917157896350913882496964016553803113119927874434652595536620584338753141158347010430132067953902088288682949929977520144784176992661317955143759237697085635575273902008048712657097247185371505629919598074116358971358451456456221479892517392233874862057154498727791291487836779803765409335525880959851416052745312941873251951322850439894272951809405807336332644177740297073947320717201927048301392329685911064444006500775134841760400179285109880743080354503567031356435521410367280260417509934582761696047110457983250191036818766466907253345092771006959234625691218269733396940033121706283736347613309502537723121105013476632074497984520497031179606816188825734530362596668680578934310225300537212960683653098076544311385094374824516177722775952735467446120691985317627432071373615249309616418039909944018024097471660474484140806730427425202173138004709176871101158792213481679825778078968379363579498084622941525310687629586468177081089127147912237042141402521459288563189504475803956242947452471483738129873944037338528499580780679661496134776095589784183121988198319246796029179368742348622160122287709150299842568158919576595638262115894114008350318952596424992343483018412557654759286842120280276762253418798670472363732837935894201898671268900687662410194818671323422475517876388190528911069908257617390817129650328404674660961965300983914895672291057041783754609973393067969968471220302405689647187461981732433501879515722426350199434790241289477511938419430313828710423133829045903472312103856718181426539685640128865088057226275057456461064280246953853616333195577653058741826003157812555438613535776343329854839241926595181950117605431459440475503390184741548258902645748485673204504945396417545297036382038349106803819709259691418261275862164482640340355507631542655568806835292997782082338393222679101610315821181317616008372576373668339759927494107637275238027085101232013667411278929103359360146118197721675078799156896361556333039286881128788964532752867938805731530515516740907233169598089811900140845510013312912438822604315810352529261786150671100036083771145839239643798923099168595847951130852778211624033798198757777021242192405803555333977726250583852991482548138569608496127193731374161804949071029489269593414222776536031269784919739526439382863163431544033889040009779704276355076937262933022129031584262035495051374635507813209525116808393270631187180163298124080169938485346567259648948078759164700460338810167287764846920213229699229213553169658316325731748132321532339393428692759458669544855254717099526111732453178252093302501184462011749680182051520854984975405844154105474446945056244493442410225630205472526696672598093038524492361609770810286166029161546950266198382228650545482733905117343634147624766862727683231333109304725152862146019581009625045538175504876808049228901676271925550997201325894205438204436783023817822065200395905271389713478725385199771083671678470891085783088855286724010083664688508593368226935008117126401672298795043652040306545514089075064453243518000770208959602926355697424708413242966939737597006768042324585958537804669093675365032778998791740139859147261163012361855189593770143807576479386377167862872763306416017520569385856354227943664227168543727772283320442923682108325585692166420017673901772386321406015590033368312569985367427081392094740661503677904068175537434958371424351196013643483436992940612610333715308738590686467441283775649381297760391052518087148727288425794069145034625111064579131396112556600617198801915024463932672717577592109407557948997710969913720427942546962320537825058012994338677138895802398730805571216941072538651672772387325064549348173133017047296433844865656640935057972847681089427117446600574595197718292032535330265996305177625901010688112329987623734370081516869936516266655207035702432311686773963221268128803082497149564726015495281963687936220136733136190080821285588851249423773835383176693961483051758308721533095777569473392339360152950700578371617560820385938046191998566888565859695914258969899964203661456526909850559990262137896035191556648714151392802338475176430779196495334107215389897792991243029089079279909548243022204779193753527210368398063857651876695052434832282763572871737483547204910442059405467556842054325289455739919914215808716390040893126710973535018394572698818903424339567334048529198951456986150157307321831890125073512859364355279967258470916420129897878269954232932276890964299096765590249735007805836908804455809101473605648745170781653244670814356976540590633929175316789345827226210291152737790571405383360626020415203035018343083962340218212836575423801147138790715538069483722405131217411521276099855523792459206741352425092967706816512674371710217721918979054798489870187200821644986183847818719062323015138378865281894115466448080708631749248879838188453612660653077206288312242878243070244340631394505997581354131155088739215251042869075206909135110160671198356759881156111842256340189275290865460750082087085453580284885227554523301854524663331679014856333050428486575181433602725823822196466962015707748273403787497541178144573028911145300302043213694283255996137037540381066375606166702553270568253307449207278085944755040520087595248391186254654699423232468956024525578861586601496359233067913055004060352425524333119781060015024401997369371445952329949382412743040574106942361670208900439964585477906987386817915883124099670425259908265607147487759247807761278586090788632925292695529413919676878265821291157711252873335370441832260049143637970986588802776866861995087099254152184089862907204868824929372920443180000486378077417666356362311946537902556228668601211148497418996422299330628708334332143575054828320306979460776081136649396446135065330723069719087009685193916987691059878828643676909592428051316233934561600315413348510263251522952511616574699243393996293844766431156360723741818679112663079985818686748534474128042218652216038113615760590591975561988253432281398582599980910735472245925459683499074437925392262215473077072090787830891255024824761136462607548228829048868992342561652981095958671865242794952296129473950292526551753405020573965582039020846006647927449566946533674872125557729253899779878729953700204810388030499480147935271305510994231300141191486617755945580695717284015991626330891129114563667235691317400924123508951074167907303254894526278047488956098462496622561721992997577938349215643472972907511252491325504441893358605104734013458943633350275923261776893170839515160251477694034883846944039049061021974470140345084534653534539420545996393198431033848115741924946943618448504678964756597767949733676713991264495852701391368473390650223160698617678860177418613223243876572393417658405928953528713440865889647335666450135202759510673070191292096208864269014249681971322139726577150726655524110188286881005262525445863899848736129688798449939878571730410296940860446774693848818885032199337376950933028426718293453118380432347222164072441423269578186150795131963921773809696775127804482388677839025218551020727080784390334885899731119486218364147249003819387189640714604200177761093189091578412884931770358609586380097463744177079828596549831832836416613937844581119944597677642328933535332933635126399922125523530492540090146542797273849632603133927271753573569967689108871417091120258367411811041684830186479175944634968850232479307303271080321670162947852362035558836757643600567197868077767275723427539689143309309272196832650727783524193864269921674641695905233672512974698710468779854002235883741217561068734299225679491114578889505501549345187719317528746637340815608227469689007448575468220834110026654526297256742663291829131547316742379233433849601885682231123269172425403748356782775287661841323185714872673827239998272646100283265200413379829059007911700628950143775998553031487862314973142265181625398093027737641784989394508848466439383209688457165700239556330140243952400740955094869711833830091823354648122445577473505542147069506048541634650600145767552978728088137122157454967408771930572902414588282852381200830817315053272661636878927735671917142739518536683877415843043878625381684578294083909534212246471515811272012322931381466002433058156159392022520015011866038957973246538142773525113757988525432420490849411300893862586214835548107926443839462317800923348491558677977100381885531445890586020991033003454106525130639143656844669465124255759788652721558530000303297192838338821228474618030630326983308315872778767543089374143321027724440285486059397251809906043364260132369303373029601473001141525250543697089483646471554160841826386275327484054215683799790122338089296183389419094743897632090440986324894740037622314377738480502558088928465576155072368061328173587809068409964481404101947457904912527273821634272080586469929232794181166141658417575763278195695968911231843286729682177032509347933089561250528839740193243657644640779457546060645275345252297094265336046146221025083578571295071258332626912402431021611072048017415393287887948952506318332360097781143554557092343422991946756299283536110281188983129121599197114127779539658140566299417970658803301528193601610603212879018226771032642197531849074492179644828306978254241650012815396234260065308028458014638947182145829632298559093655887982161256295650226562792706710064569863596289169389621267875857212390540455756821776198126471672940491145807707942095412708507238093349069654131140378273541878011617494121618619110230212111954641429184212277523712369991625757753396010798071651009524856383881647260238725753590667464922251413174383102459112503127788332242393110481680318694351986321626645559624674783649097625099689350083393525991534816921747999591464536347485047393733031994251521327036771772785477346089332112411125380416042119714981750179498595655367541599912217566538199768011233296729222030070118061753563774388612170665366143777493613022317943986733011320428140692894848741196501489645573146010390484544422092993199610514463659271206705662817109183243095634187954387527665608563041297923504365150174325306564269990440421619294136932948659221398449625216050033381848949414193475598684065015450298193685969217331928294828704675895863409339467280681759307446024324583260536795049303491893362991674669400239356047822019961507128120366994664278662592034970895904286314152113936856603923204308080623053419204856663521143727620177876554212809616899621872275872389662986629745319234723290834532768933026315789695027777143617621908439917854979200580153651450065661242949556978767652752938677426570415779774790113459324153332346878675466399415482823925951234285846902802980822758232209459784631389899849512301595661944053100312217711243274321790115915608772565597233783731909295122683847491246180175864877959127838554309943118641322855595478699167148847429846185069112602206705255081830060404231548304406152943304185620078453175313434386326068653530651158870563347080374689322472532560360007583878805403947872809238768117358686407371625090270471367207154766282187450254637533988248691430533657169478029324064447605188718598171851890160795738367937172544771537485434606359399368400492468228524347193466146634805750921018805365776127254655286268985242404559802576075218384155477758430756364930865665183601456167641556292269001223533564365370298279751383038709514970270873563345718181978819745717237832735506783456120278768321887086286402361060332607938532815289885985706132883304505285663599292726289757484651730596721900106095237599268560367439872796112706197639303468326211127350144128037078405498718738640642207368516238245744409392065425204183899664752429851480333503098340687915025196240932908201592369662167143052074944347864877380090490297533873865882409196884023897995677009515604760117402541221064867589096693530726465052281948488522023079115651796658815323615439037719542680904205419253928843844226928028543641610256668876420704548258901456756346091118117956003232551101447534331670234017483321083336511536224119891881591707333064898421013781544280211608577364203849287066248389935927719428969339521575192073533331361338247266695428310315947018041085537393961014615715325391638513624936418993421146939325889596931450116838310962707392698837128630724139116121251428303450234103096192198845448318430819992762495190280547490031428123526073376605692255252814877345117632443030284541302593501130965772065961953693872787095925895187612753021924877953939172705724369352727089425464394710111268002816191662814537452864177415201853644846390954287847056257833220760171175340675813820652591837960387789116725631680157456923612477454427973575378988267309416489040455044608288110718066906208999706206773324954106237273597353028998699850873234140676731149303974881981839219503082076780640057856047651915073539929771827386638260496159742351950911828077020289119198260382479350871323589967839411154622000405682255261351242640845797638690443675500266958813054230417141039702812675949046867716278122550777385619201524752328473414773045840139924687615104170491513704405664111348885806296930672926985058025965361950143635528510170090989717492190435630904692986942101708062939239695379674151226969543717625835036585938246879941615064185716014046366858105431175527758847611672056264348909908399152544752425954222591056018750200562875504715143539565393516526941987870113692832185103245458762582027654345436988326914836392474842915754290036945468164871984768756617818441310520586485575905677481687961860811893380288803408914702192367069382935886650242299935663739526777182917794264672575841057308400492352781580889261024088192949239683872242788054735481048498577587034996757557818647002329556182454223203606180771332689693014885393735797018374025607368882337216611177408411188531017880702521801356048037863127000849602198007353350652507072858359046738448451054306000164521184174414980332182708419548803843017323233450245003933196532238533895423372219185125611543926300914024271430251545038291687861231738544914260928243541673651749471602576432562832845735854751933648598147399113203148057664064487157895479573932482967739088116309074628153764283235602165926819038624996757219632932224694750001828509162696415845518451899754872330115341343116114667887568102205654350532365357366436225173971854006069841921806809362748459352401134526494844981921564066695065883077135351677394761962879500259861436198614617525330409211643582085337534288593834331231420154974763654831904973291621404744083830132289569118271326832709969996279954802886539549638822461421554792858014047700076003189512765507196705998526350637684521544866311576654514251243833296048589423350739287751385662337421995270675066291198733105115273645483684998593130521164351113585108228778555761836867830225376597520835229133756094320623917590703825645724432690030891776145066923682373361248891555335355532470264848044217445004090933067903688379915447516837243615514670620133795542330375794353357197891695307629399088865158328234159352558242703393170980081615368082426685502866333146785397483914958072529468692409826362269493897441794811875024895841555403084244428015477623805585619201187221418033459394224460249740456109634750320143159917000116791948995457678697988750196928802289613579173750807668020256000121144120718592767602812001565982490169542023562448552556728927979523998415931183696384191841546946522628414995584448925610629969377418782267549513367847389606641031464115304563615440979314554075054561219898102696995082470591374658704003125091052889423741206860877928754203349680885064860739014015876391134650139361909485442233607141962947314597898213070089074865201323640807579811757061364448331395815418747684588759677190385395523211317324000419668859062859410961426966710911344633574784362607342710499094946546440365316300990150092661024109681152937819423638529214846630833921739065919311796723691912712987955306043731913547452942794115581545774904514662026313009353909800916609935044580189787877725881628428820706850029263528416977882799613188965481379221301951437315960605062305961589897268848538658564038803974193729924827031788292740175258197367851220410025187763282734731352900131479295333916331206991605237292659547524967871659711637527245305508977885470310184246507042317548034543627842748649957227673008408420786291733239590263490314409087497134174814514672879314742187017653373202085163907347193026924245920620502106557155287636893512241076909621867137920898891969822248762966228604403908834328004124197316790355237913786806505296396303061582199199580615032797388242844071248835696558387059451110512640882653309406118719197423581758976375095336269088136074618098737548583126463522395903106398247710751729056688137731996065568903361125214127167145660421464127303530831651179239669751284104787084341358366518886763753189184635358334004382013859681459026353581709251480517436336987922580925885446469655975887510844317622407140620966083511304671191927460476901775961638670353928860385433596759039281330581011169410544560024742051194608650670610823695555870647774762467252829318169291237459266983895900642008021429764344036414989637473620513936920776133763910677597954228356962801795476309391218750563803310541746302734592520472945538822910149189182035323291444723886607064794180883559628621993228553450559500371801087581528509302928074073539658401860805670175883910772406534593703490396727969539827716788322411509599638817639717066845356203643224230138949468398651822386018386437231524604382188258901393165066077946843111489252931042737608829767665995102900419558800270226263225484161875358823533584720048700776189661301168861551178287907764372616862270945232756464415785012656228581646812357199464462755582051525585573531862079854888670258086644547852930037695922865011003283472386581057673061750298139103431809681595845246597579853305606482504086660986381734620647272288358560213447181603432946157179020917804341105027604532650882780418758654133982373944389394512613664838480367589560918243963169323905974699862571602816786173267933296354794814649810869049721220855621668256958924450800290727483689795808860765400117969510951324662464450336790138099226122791252988756034434637505786527598888399499230735115989079713711760747475018625798142719082239726585424862340880479315916024069535325277819545567370791818368866726937671357804393352496388251907297820998526435437854870568067536412600554361969412473565238955960840689636879466214494408400453051763397263711044808549649453761713509507684744537059523957232801935142272527919929298977722209978451145358161577407914185135354049387693881303677968615991236579975088383936438966552810294397434781047407812746467183764598606837894477826431293817056807933298875268073618616385011483318805328507144258283046887376712477197225418581301309328031394267385148454551363997598945941413780109705754475654314170211180785131685115143740317838544395862441155419404517702337263991879967466745405652609949331451223859665812965537772691122583552833039172275755432829868501226064538236717137196241518588811274812150904561392314191285966098761141654502091406257361988766996256565387198914624818974830756444650342714634363371447643064663907744632367119989745761664678413767053274339166639310797697543194139850604744071428126664052162671251247819604899640983492782256576828093834569116534738676360876907825643862533762857313334663777157539690502149689913039444592613064061833719714750447282106359838939041307200081603242066751711559485970587906228499699954498900956737610585504233537672874430209036596535124621436343981161232800854535209801428385644790667841078293424713903646177924218364600980613436933995346655391652491211148658262743542878883729044524473350907970808907597563363518873620984969977078797426949310145153302153680294398823320872757368040768518854900314994482166462091691738514930041217390688139874854743682514929364027998739004683441203083568302602666433029560592903142322606529030098477044373084053209659414276637700624170520828027365386586782510460597162386239770760640638150774056294516291052197042251392989810343917828359700111438114390313889772748794009879449122404910603018059394296531955613394271742479381010742278070525167229152024988621222814612092942335550586351170557259880345739931555617088916675642420662608839243691944271539793750340843075156310605381333329265888700963969023656817581682897206963467543807782352168599504361622240908381448205965385110379440671025123622536004837292335002497224039042380909752378774426611045100359567340918619141702428916164184251177137913397061121855515435726050847243237417966163621167335389435301403580801344131062540774229370773834345681941278407166461841909081546676677431076372983091165011069474853783546446042105889692976821390899996762138581466693292536661115992463448227161770791407445963497988326437989595353657253491846109358185576037744371100319418859623397639477767271622630715935856120940903665500136135804492136669256666314347682611087889317362540282953860685240109253008466431668066623501127016365666091520356043173125529646635828838745374452123132715474040446502605263348927446647259631839230813314168479645829000595548101894688270608508741274582157012453599703319752984794449612455691050834661473823446746272438964124216648453495070670258995344632440917645823600061317833324139713085345004554361988626865355745429969134910187111272274625188541808462425622932484339118143475864691597498811789599596127086056066160871328645843967253266369950374120930973917295855461753189731571524743490749563052863279082411915467211289767727930101805000994570704322371463842782304897539777563901673095463121010242874771294514898377650623518461132346225147593114637957221234967580847082715882538514266601509559349562917459288065197096799409721328841334717042678699357208796447216033988681748891677899677278757673324101574713567371728692719820091996630794067611178659486852233249214102397577501442569829425162841132051578788073326598725486490188804053302576446697602965375171594122850365313813129085735172452001233578682257697280195110568059342462170999525505157551626184534300001757093791531539900610053394401907269132698580082787017104299822844965416786512123087436389721652437380643734565920962406624806715680786712548244688927024745785147507183415352089546141686518623772156024290280181383966625134130025755621086093344570507885788683833389535376879410944266129363633635728792142519875988374170078419222811758521827816999281646391121098503606833516802694453473462336835170754514744298419076810114994957853224213837346519233891000215118339864355359324229099062729478942231228171704726968892302676263778877771369259831936873570474655932896055273230142223836425941009433241087145091761035807016334400363207440100687700001346756042849301754740830167145511653876878192308299835681002837318574209749751731644891814106606731005228355556278266109533925863715774370209651306070522904715299073268919335804114173876986401204494344639734547538459393598521176764585786084215687208378209725052620580405451034898363182550225325133551555071295668058189669291116131033129488124401958864616449426849893500947718840136768297624242489033129182018119196330783125940671725573232083312512486496114573487185929729880928302429651245499688485863196452982735187402964399891698508258717854589620242191493943754379860995058784891757319522367965315589530291698528677920499296458135648455258389119056199761818094999171493814464936908719733241083971223391658897207462745206264629110026368936409529311739446351179514687730230745561875829091753744210268960899092887167351598257390187579255248833355316253940121497695599977122844404678059823594261582154130860155673094405673910700652281263749152313343319353126718524134756165984557122087235493765948365047442639514939230553335673692658128551490119304497268287237510259818100747698849790613902890811982135004789972705499766683180777209903258646084396662356048993348121212494418077624680207348387189935085832534653268422944504817501167003362574840241081704377517121624523837316181639100089103136779815369179233359002226414030827221510297246953711302401097344325832487166424297953367307748404590913948310298865937313470176245702320862640980789662421526313705098085113992954818270975523470077849890676584457248639642944566221003104215741200362988296247667745834782937107364263334450521823347443049378415607692001631836717041342026142068150526669650352077138668083440752620201595565933055176356857683129396752715528429626841103658612524780193125265511639186391157435949891580871224943219521038809471796166143220297565895820179858024272649992984483752199929362495136631831659853397093105079665845667246615444616962190744795917207107113081041232634826742377058772465419452805097744613992952436272913436170170654469025667834680018397828704660519001196813347663819255802614943612522899003263535853297615821815967027356676622219012689740153294603717542388841307221822370045744886810994528656507582384444433476731233032841979301248317914928000243030067812629051304822186146290480241956880274177294110803762580287103090344969636002328895168734055930752236205659888616010418453087598773438839049708530593879027926066442167303043502501941921323087913402302757385281747263085397001071902551861027537491073792849651294589162805070700423511064845169517819068058909458926274860958117157869371066645449392756454229058800956898691511880206521815564615014614048287776534100362490788454382684960977913498850397671369745531920666630141830849834570984689750472016707920531094391767337268025149228548560358925303398697856676583371573613976447417639184385079922298968403777767165918541760862331980746643362238785451820428582928409317638614659336267441599652582124865357849955414420973232356085242768290409797955667466157666185115901949597056636016927561302210303570720848619966996129623755762418475560580929200445511948110231974186958225894404230098617605189445904656624008124157724628098114677171472488869087500590144030618538742474016954923030449286710590215656262699448038000230488625392963619332935298275606511924204964046921137764394987614051362969127220691613160694073988280126316480056753194890079208865673574659458877910864497380943482337024889197565620353213455213508852030487265751659615290395922730147060881452322261440541609078655535087691212777634259106252535639203811841999784325655191589662323258649616619651686668021836572927303101154773328827129265564462437029053684216441390440428369672220111837063060019535154326429715715135561816671780335472056456324383843646422200628106933598247824089241149625889621110779685202901403666060111660373817030550701751284558220920751736257723142774253918778585607225424387504300042369604562514333783406054980747537327113386885990058813865377325195951687454371169913017920550226568039638044329589947293798405626180696452995728998750851422055961669199872014033372516423857022324336160084550926078572029099401055132772028014163314634945924565811795442048810940568659945821554407430475535238784225569170473060980677731249612185051659607017341637520891533962476125257896327907371780471459792422545179451503317955640051507667426304867824623815635573563552426863238947459173944763400331044892326655235527429758360428524104658077713815632681196747520492049372845688791671748878205068053707623597834195629358715101095279204594286416840597954452314808384446302221025934445776469089026781421221420547269531693132723741563213651836775192825573024949275748120097050450643360406487935258278678756960816004816284513043820920527475746525219408833994304397084073690068197030017256684803734797674639410479331980252501395841190292197562684770518684430062377768233910244762299878874109004234166035202118027375359579105433409440569641347463268847476143529099424366014607301235108105067621164975961329957865282826578955650625815223952000039085680242506373171703985593338799250182034713245102756184506995807304026385875355845554004103301732898743832332565597859579066946863731812436978077523950180730623879737457313839562795326117533016580369585506012710813691569056247832523112309868707093518813634007077672455077376209482364443752635420962807471484102346477661102724129422740245022996985796253119023183881036352564730856476779390907123360221646549174278492032328253360480462869257362518429460749161779372954327124001474965824588017139433196587342020442685498941749703347183484750406358185674199546646908497954765704239572401798645272045137455137631360097456511595856255367547011238975022955444046601035195707708503378915370946460047104752940169398881647721683270712830614369026228103635657540992136039452771110865287314055521247981423213324731345132850370351760534578815072366572707656789154790589408187521372653575073455610298590142088350326019273350156323486198512676940826225847323210626928485389386174993915689459886131061456930262148863415086321692464720513856275734762949609331960780781364780002826872662829663535457016557491403408383514329814973532951468114980764327619237455944130539920629343866929673426718860135074753154449940328938098921274431108785542531947509288224291536073626234684187417103458755509454740663227623585254168134592422087012203791128172038031772793687959016172995826220202704843268033527079698862138698008151431281341192620299617816766985526423108080212915981465518118377489986341373019067573986183472969458100963801490390686984253456893623949187184644689688333277069143843486113492558940163644964045862235916497665122533790176598118384574099230425742506384369988551445031183389890613212827931674594173908496265683064871594566354560299055776722576391710124004287448890621165206956371636943070907248841597603262321839133733708773888220748250935237284116256241058968697292862399845544681620473490613784478167528145850377656545328220094334447464567088982700110039207621931834991535867709369699263653788306197299256768109684769976804241644285479021996493052461130246807140774351744435688462939036306615760843088268325288886572680290228612791259170919988279287302927041186393516416089799933470479304171457543559932330781642430736783204210090449917119855935740712406926045400587164219229435130538635963762286531370376432492173224039076197347255656654232266111621740390298323617291090349933035599295015436069744589897110814972332117628981331532819155122467017864959155928910970093147311992032749028304204174759281155781051656451882681477518666063066580528831321671610195000129046034879749955940635014637660090101119911197492984420599253172742089163200244565038995902998756121032416306689244849183739908390333679570713149417157718237044621806482669788114456148580478952328110373493722892208614958686536796753047594802043784028985328725064571769944945890767821539253335515991225643047413656583829742111273063940981941494615022320101618440908455384043943608325952939554278512825013039003502570631527755096413404413449623553414083219692817963982588061501821337710343657497671420575715026115499010385556684010858987468678894663562198020204967722721334987014658929453683928638136183118835813755885016885354728559709366431918660181095305038153918421978838865358043787633705094622210281591750800229594547909226503821518400327819410675743732669707236155234996111847004677760318669301744126010211925802866355381424565492724426560878865322956317979576952031444012514090606133777894826387239825650418574374400975108454092278492794521669306997746737057336934008238022178435357141832499143691844555461337561089356632981905479264845235603905442909144999075829602229147633061489232420545361605930001469273842026206238003480346694744666166915568995865133317182846488872565179468385195125682425647940846461254494865410212850069110475793127200933952079296074546154356645906002027180277261542472662882087786133098988710757745785690848159944263264082121903124710413214671851379727633079376974707380334083352379644859548042846486950945728478249147135990794417935783979145469627208499425294682055513332113541459636556118037157138270996126771052003260013564753163508980652893016196499255825040310787229109587266837277896309618833054177299329436239629696864645591228615564144673657148845636235319388131447002268623211559998092871199566091951439939005351685762340587814013810351634393319704838471127623004088862170917745572051056937904339538508386539390842833559176981390459087358712455604844734950567152630027097682051973669379942547651651069532398705342599161332150644286113140210355995312646965530680377619422291573288018259349507513466899837917495283664579185606264116384494849432901720074652218351013622691943108485521421766205541816772386131395566379100358592230577167107656290356693835739760385958004530336142453194984424064311026290929997200479329875172531429431033584389074933943244718801334045650390183253751493210702487720457463593783532352703212427800104263365529341032141483400612640730279759121595594319265593565989221115833655608408070206553057851490495430848705712432716730547719671496157078992439091855293966140611948712470383633668668516650896118747250366170963903654683184596757665451905930681100253670025683470206493247022539438945623228572178578676828486088134466785904990443755339132342639716768382920604020941005365649366132161075256184605504954137997113938113859609099461820464488536963984636088753242169848442480319855625986430185040267222713093977681242963418179505783646316964018544483008029572529646442995145896459714958760425330539875740167631958389898367714472524729825196475601493291391625993421792207551777033623277327279429810741266892946053186749148843256540934803734108296369018544205840084541748618379201443747635413759887399249491479465824123435782771582975316476025178106925299780561434338103494878311016580024324389309855288652555727450415435587608918605464239036548405195487677062858451599141203603862573570169025649136323951047527216752807272940954869324747872051398573429026553150309778011360935037705125417131597288932898841257473949390023535315152481485671077853126132813030114110561907977112977732758059829470577003913749448404276531031871604995242251885829075624005499412668521734188690514731796696288371979776930229670812827811257210924185892150570701087099811716854246244467776437873299063702462981222326432358176680202989562578275848142420582188521635754843474170275293755797106679684738228686775038070661362448194083490407455711291145661883533815763991963605238554477962955458446583244537369058026652641234918713432126363445071707434278582176660476261381604470719987735426187795223653955446405904309512597905490583637504579629719996634340314217727970033453467837079821267212655314682408245049348086871861907242787723052576669696781104128271288117975828004450607539775432088126516102668979351330819837307981128979413028460412452077785342087123435704994404724983836880978266028187620236539600091679593278166384351355363355433382850272349203489759141945485873371694475253252823069698611338971685449965878507949689647707251032593611756982689640354058866509266879399928169985042050068144275476602018067510061134417777871811324324052857235679670703242032995243730956357032349622073067594352012402461926177389701720274515386123232813639199691602071972925815128217864268534634187522650179285710406518392060055602424892002811457575659589548378201445796500056311601897861102485266026162278418657596173316167887080661778442623854301855744672629474674322818978066444479318769463675072599469734766917856328498025175118663164588010469197741664562384758192697004420312197104665921382861559606115306238733732593169260647988724701118789343337317922263770403555576233937139537507472144117287594822637278485696973592594837668187742000074349829497449593441751692601610049885368125345433574515572669417117616888951804206728806799436889817403530044548186750274632826298981086987250403003389226121009280133552962856232321682212228303181443375104643578181271523764745007916997689230724061467236576661543808889727498811485352645093925204740491059647836244882550488879431101162164191606811005089792218527596763387600167612346139872591003893937186344205210720789926518585217100944664305385943104594467900468492271115539764398792401726752221397675426843254559023301975759177882134873021989964612518158916059149844295435289890837505362171444588700432417932312690066817362060798402962198646198752083228807128306994379123229494762843039542564127997761767808149100186084256021290814302694307718058823021305051415689456660683775201468638221499664183681993043505601289338623526194548661181258704383031998355713128384982201865147783984470162956099031172471736537090153665352848743244077361909493872791730511625487816787375588461580558360779146989569418259733723497941060352934135265018419632781841848673588791471315612825368750887837532943739721679792675051548001470810583811351495288850780150702588298869644840811121816837255965025386708705821121118088708930556308366673385277149732899377405852612808334021993435557314489091396858498170106849283612549936569166845592572255001044832003719403413517897423864462124256953364068131868353221441162899673724405615325204116392867762929001741407578909928964066090798346710555205222938851617221227029241478633580773221390224673550866130148202263828323100430690987414440044004183281838864306401781826889810408116191135660933978187624957093101996004849602534120724120847157041043478670047580064511835054698927448460527153620352092448284015562298611283538906578913431743364550102777897749623805212289254699482630333556346209397017331422581166774742598359705291122625858255447192144360515629258331784680024477288721094366273328424960831453452448643405660476400974262799457526558357347804286933188715297964752087568318489710137623815481504901310852539547181333032094950587987311059586025277825356639248460317290341429149234472546488644800897179984624979659986907084428087250760396345014669903491078274709416579866502770210217076344238236056558043853186962815757817544126207740688873089255699414292182877390469895062344543450684066667444329497394679885200837649484073340156364641076908977106841607432492419382083023641626207756089054246251802523684541083521643577725062422603599366980492477415962308394609387833923916891052859122491657746908414671700793168297384880173151835163675208810129268746796163383695818895348410195541129447635162442916846834788814430022742365387535986708317943711773589879125019429016808828522612758937199918333677332865252823100289817969629342392374579748750623581105260640133727659649068789514133945636491896187862703236611985799297272141811284429968059359666599502468519296038430396811825208549784604516552238717903942784172801063864415873986975108441283185133932448817867788270527223018680427575689235112760563824585227425387170339738776005894816017481392403163242760110216475710686830174010378099234662072410795888466658888152327645245415249596484899374216245713916336935422269666011928596946546616490911666833386840816613248889556015165603961979955511626234901316983478610640118496000761360800570216156085008502383356687913563823460295217453555458285349194216544738107319389941952545922138503528144094014320183562423221609100371315531498325895548352995317233392052062029661572493156016396893255770960859939891559097836423852282151915199477995715729749861264259020250024733044274675208806437362232859282899103608662640748960568403827130283915450826888180689262614074967388789324222478987631118516118883645766950017716722320468163645311012571080616144614462057647885301413577387702518412804974389648068234994446205627815342107166137600580262996723534020970557469628318181201088663724980735423567847796627502456291223355978185972061865847991367229606486663121607363009359190138445289151638895948543506777175032165296258033959467479485474450327790049213746493029942471996217115948617120963223794933513576904928623987140458906419513912054063722220793544331649913627344153413245852558440799766781081705664130672057584232268798148687296310209384338003540728675844219154605861592555137776754706338328097822885785830056524650083398547966850967981315919374996392310027631455771368389458061886145436455744800785882215315596311209771422267014477256037663271987720674054716786512916072832764690969068907535607720510770533165631912541931838942568310508591195107108752446399662204656998145924354198955762750374874233546599639704393584808093494338424619396312979315757649028087364420338043436867097955934610680294147049719178909269069227129758285773144407333036388271788610964668873992240470006830214090388708293410298046163918409288838504613634839142019397424010177681282248926197517221873027935646218673306739535500110060126273273656187804478774088946757927975308467752400723946144041766538267140991356374844344163416086552861690260536896473213518550212287147168121741696395142117949774313091090932901983680432671683639824819661652029762800398023105509910913915041702884846614597867289737666491814470367445006270541097706489840283126357394057867645032995464858028436605268852268842098869353313694644081403302994374381061385889238481811616995660567734501589742030163822827332283374518212889242378717662111418627196205459401149263322633093686518143957459337270196315532667720056378949925562062124784136764261392049953266849259309359438953104422772710650598586987577180936153030568010297934016059637227499602310076859012839158795441815804817673745478486972085090450715862911374703215931371228157878911824937370958481310118403572184056483538283189547010326977194634750628028403191372704611377335288451395899857150773149814446068970842946496492989840424351147885380419088847623022080351235598122306435587813819895550004020252427542966041782169269654113159353931113960133151946436208419917240585006904875717350016575948325838253777639515494431342973577694536655023293171329396147593896408734558242279577549362131428119154912439141949476057459432400816453089155329071757413988833910656035223585459374634907565621102960911062503199692264309977800203331073100339679939359017052871071785060376111545450469266733892403052593213693405342668149459878765044552099320044518697772978107118969375148471238950980374414736582513324555438237196768668944564261160868170856228188882808350824155811229337653126906146250900668316380005934657961211709226438011883304312915271522274361903873984726289433956292708562194653727621641914655185500860304555533626162289355403732879948162193635386300424954598370395139679753036411973597752378805511501489513855813224341077686434757830000505509146440867178606156090201508041677582284442361011683961732178924638203836388199600309094363000064097906672418000774706733903758485538317207506912839626968870923357051613975696929880018222183302516192791363549094301444363938564003758320202959640228342246837376837002472152724725749042491737312407459844073275237145696098322767143423397525507982609500493655454470188746052708647429202102099658209762706227998013031027307792650109030256420180441244890458898185893163618402569640604298036509553017279143574322106392468135286705955581430254979199047915844272494125745582349246595187724834248059328945170405404489647670326958744894149467042709325713267223279196896520517004075544198424022958265804939980043033320406687076204763958104649188287061676876036267224298305691675033395965388020540697474796172451490477282208514144329496091514081490667221856331476961177673786417467656743682489066134370626901753021478136689730817534598327604069505217410685376659888226809128091057141990649524286429413722682570406360062230717089566696139834355565596185314581768014326408979070753994785486119050097930423159825189103295969476646448015639054386745885268307674907200387837284357422232414634210095326437475625686429652203139780267472925942034054897926439156781985611957941362920941992493342363274479695817426599263084853548010000655216611457751084978895656462099762831944581016174416885517834684848938082760011464756682676137327739976575926507020148254988509061461494412884453680955030983368676294031434177619563813375587162537214002679235523847512824980129107535408973399193338204623739677274921505213508571475223098616526565403384830447480975011397640418292186428781548213286498032465523569657790494276582296291853806580955115963857966574571179380022429199004177628470723911702583134038935833378619068465056204191031994776754177923640283263394885632667828316944111004224037579945781078325633191552708036323993905757593305685718676062834632177955315590928469731026079591775645254577019742625587281368545566357987768192931484687675055823831506455594370095475881907686655016715885877884282460582098322572377884078713545453726608036910347998020172864863142661672162310510486745522706688218068279921081563603994113383432921485135693510212932633851540991587017565552719600894743292541964536398912777863982401762801658864028374889873867728455248933812841475482528497322624127768378075482851379853566858986053271274896434339714279198465313657072098165458089660862658064208504612620462724644540988083435503655349275608030605737083522672256689114794784779123831788810048296319804318473205461829464049686046746619622594513919851455093676794711766233250842871409684909370759976887146504891139497412542991378372159866831905728494188638652114498166900445841384963274861395540892936637964073706926115291252673335900889733084279766651385339506765678768867862937723018492824367886487193066058698529335117779089169195320623134009263193655388780358601024321978468330503056484384767302417995869291023562390423194633200246331248558709605909616630437034481216941824092799512080131595948652648887469546729380206925905399205173674041893013152889258394460402798350538892441511834153020092532744739230343520155819795576136225492931256524818053061390969653492790875152180297476524468228261039802214935217378938802599299331051720861991444193342082111071900687871750083582115577122377645023377065332737916395058465899676799374472701808702179215840056245214519293029802382030614172079641688477314247977332692429311639197325082213501779661338903404720729371411015409620486124021919682345332908798646849859668686813792255179674532218974514084017287908104080196103194321545162647894132389393840118569740243998468108885480952959706637593325821231156485987874787651856121736469218439092356464584630333345978758075799533127463208947254839252543452359666805861260992459243342828478963644007458745535062471059977508423537479225570916896549270113491961733813988882989521979085448326036600168262472320438575672437881746726580950026046419957556280609866681122297735022757564866499250609291547655387569777705187630087109881614831553220111607536113495837582163352051628139099234449499385640857197201506424978034977083680181387336467913618477335807273550583856928807164189407010787963169122166889630755999190188216034896419052650907210694565010238516637141609173860569492862226336743046824160832220895386692171413471153044291716765601468594260519591833684303013627629336922060755607629382031078683386025958685112641521561207629445726341236772754609417909199646415740123065247698049481346882089034812090472041725783534991805023954195680262607307922211378319379070958882581005940351808191434907380664334584552880327419986830369424678902387030584890149385179931144357336948864332546520099471002123139469812086339585169613273048440867688781833951395045894335556496967717588754679103286768559668559998366620164425876342743970502228870655162982027285748892086149651470819795668836352001165922097255597892197135533630961030239203914976936252189444843840396485488556565659085810155240974276479776040885462519671396456846847371096531621473951057199650791041649367872357770632248581358252002933432167559445691737423634237412774096572649171625283023974668984882014583929256571297576016844642937998675796339186846612915385892070109422827375002379203402472065583364042659982696865563345050094893672310946533061102767505995002150006471599772090982821652732859618310762186990323006829901180641608330667094499428869107849623259552285868636664119665639808087168086268756098132835200103760202179252846409488141498605887314442507325545766045737159798658388953828115265575232488727113723028293701822556637035682946096855010745662897102801326104514735249623118040784146594859743728137716486284443054476501457764412811032345324032773569544457519830100052616366015696230089786370473591135418439675590909610020933865747800822625327821877185723531635357411430559199281331889024656028878307299427067133600547932742927449121761523359298079121023224537881211091325470332843922784307092284215285137298627728952262611238820633428787667855399045517380897504033746616775677335746533576303682164701584412222561002939168223407498715997881490090899061028498415126493894985926474588974543780710997738248439322315277868163626267745993080397058849416471094863139981378342127753466735200226985308485969482499969387685361203646836125805879087710598720855675198968463777783482589494371349624793318476240865547640418141096953154850642309348182734418713307248666228304584064321749568662535841004532382006063855330494961037254441448460841257851537634333734117852931025705135302014266550119434722309798422963027713107242764504220078533701584982642573234132198370033532738764674370167516821276641179445849615209473039724364298820572102111448307768310136202222835181471240316772373077747510273250693044781091260237176395764740745315942014572305526172279085536423816853403913179881478600162827284831354822512659983952943190577110671188419527970641195869580815239845572926169760690265712518591888640752817029404294836063961701323455567895947867239346714672332216683593823495120840215170231364913724669164580794567953179625777128271816998703769462280541539975137946508919613314827752318003934512953628474036091494918748875623416907605686562344939186966725940814392463967009066996999696381309931258115664170964825602754323432755997571657989918274587778451239883014438412811674388437763581461604678627268062962135581845061628268434482819608196818081846556714958040304557092751888130263880260199777927078218187020059783668570382667350213945301044531666549794970491330782008815089583373742541102478112521854550129583127862957371309084910480596356139589236432490313532867546812265903129911947488517674783534684861577569471368959614571532312146074783956095545209533262357717713201077087940778029159919788901055634456213353211303420600746484091277966516534512364379948789663284886696211666238790678140900707281992534310021870995922280162246962981394807019234123500597413797240539823571908248548701804043809783580523034192734113004484663109336525953067752059925929092018169519569607515764882443429593544921315745730418109835137231106853459275507250095125793195987550804230356123198814663073411267054355103336961167847303319212487754297370609360112708252038595892926289338662711701705559795236543994491258046180624406544642799318204966757725476552867265195315127278180057140262310054276209433975301037699085800903317996719743187351991912979458520088258140163212064012943258966010518092189852205474328528147722093371162601296069090554551020920775883231444238543901718969419470036500780984810082413653010959059881681937785620320477066494375221302398339719251519148215560819842376757355178489752053821218170931871453300126996014632175406169006254208989319888556015420058210045358111833073903792830763769725167934624964314150987837853730970390486724751031145369517878600017647498720728705058177922694862404146019973216886186600814227810606598692204552995741489767758305234851246846975525318350465813633480819497023440483273342394370369638442204430170752594571337194910032917254892684587603151275451142163408579225808729680289674981071392649116609442312629491446496056585920972872385692645983127142852330453473121278406305484181890006388693157271528126147019132240990238753542072930277924500780688290183758986595185829426212558730917851485121565481778625705998672389849262940579297121536792382202494268866597186826590971276405828898105025549220313404713166899065789325755420853786314546940648567453218206512285299351838269735898949279461954512264584238880714617866584449943023796136563484398523510226203528652804655955121088395324114339668602098466062906408747106944376652767731724552377799944670285198297001800191482236984603881507481576484796079823089269014740829729912833213830561892146418524853085559082940908729546327982050904793320203632268669669569523191609580834248408037846766351482114385987537304598499551604994121806848895124183969068032948084334087895535118741408089936061812375469859846221137921480276826890797663140222695957306023566938217921942613800726212989204863674692059603417138157394018885843410487918142186266734043097458604113647165995399700841051600478323263106182184086340009140633504451695738798481152688533080532995471608496204495727226941324557872006142419354706411372241886186308567523113210423949154847020645657177797627702778627987226676184177351749723888414008098791996302154531789192391611216443552804489941677405449179826123373721435591465104457105009467961255385877543104621585775412932724023525168138648386375251220337492835942165729883958729650137863309968524352027289427221210622477271775079447848190191835851241894165025476466779121414695155819116485391642436024280046850410610776837717283891423181034922140369459325541017668204186533398610464821543125093847744056123443401394287864854131986091730430844589379894051623582910727812294954730205573541313844957800662220014710521000935933943720476490325343627923698955857857430831815119075440890108224341471048157705502444851436397774891484240137587726708189660928744960265541800359561995663500279705891372483474440403676535515656182239780812750727970591774948709707932217960944128217629445707837014605836392752867289624987096859557144514586089666011006598171202989530472914348821560263824184753196319814571561784416797487455375881511365201296190655323940108411227776791180614928412389258871466005046379658633993424733924959203557241213578176514452151189248146628611984946713147277311030360025387556422630215761084661183894735127465991458068190028962175553367219501962958767929551820949333166064113725216046395295773823240723176055904420788953741670273980019372491922348249826564533048560495555893471671938037213274197705888604676396232630260882532122819232574301502839959872415376459957056474089861386700603677483198439849534938699901388044632838351532082011655023398971981137684389724141463921890039020880304343658512462422120296118118835234784109335049458266086340574010193311376236333281710247118630664226626017078751177250511609743036494678025225240472214248985999363076675756056057777104727438401955062922225064956832708731733778278419394025106065831356988153228491266210524541149385839460936840141902388100020736973228111497134756856985269876441052515467486728164981840269954839059115884266196373464595168774261620514342690711644692551130852726882253353276641468524760605145920757324230804529822760437331211976065696893940934578797753909265316029649598335034162852075212982245268590301391390133956794135981366883520739979260078089615328847686279605548957119406665705849460032595628470671268150733510350388409652244517862894821336615079956826424828703849399040154570891367521176604294332861918940186145714069929566330744647377833293438257133641481653576422644925874195755000029370808269567374526554116824239921328370963777086492165725157991546003523442834162900288496111368437447101893379821433063576265930589394578865745800852772013169710599894612264431149616282067642624415176822101458300544874654429984980160308521895678041416792469430204250600367644684243685953257160391525011376356285025014352896860556692942401328387824542925081065938392897813195395365718779351144558945407139962410305014441573167518859214678783103140233735135549399799140689014509809784812740295718600872569808348455296118569723843152657612122261010421897152352815747645514215781271939473236287601866175250339867087612576406375959372843588774450244695196349317199688123151762096983857871286104112926641266248382150654384809318110913089388195097917409822332982711549889689554276614729520270076609186779761884723875918345199181181573562248617810188856384545051826460206404601418142362777163061823634836398140492592605400595502540913591692452314104648221099703870609676619128184170773679905896710301480572984063402474883264875817594135625382931711710655272542058888288855287161010974569647469424662207071665585238446667051247095607100001794386348595466389863018146287535959314488331503286206997043571714202626686024415303162643141471106205004035200041502168652178115982993415813987756313719267525733850090980883271677907874962615294761833005755694458119234088573766606045554177955036237813682094954005361700406346257647072583561154157656300379180894440723678770200580776137410583233631028521771145163928487954574663645718023274323103054178577812204401802070916485219176642956186595183950055805022265399757499548839634512753297926092034979173098285009739192875621572823940577383258065369008082098575284396433388001510998108107796057187092755474675207299500098110227103410550804604867894526481027286996544718701768627773945088512658729072994145434669887538700077496146177066219092524406946584451726295014375375281516698089789415738197629411900814053445414870505918961294955866775528988071385214413873161805343647893961862434324355834533777131819277021984419682326118653890390183467340797281734979874373718760879651142503299017678655062445538621798310957090552571678720625894111998866220963469134893485934319986383069238688622889269587331709847428685575967792201818486418977611544912966054649814403469093867967767222195927677647425640480936462033617282889296843664223923695947175149463016551716964210018781798183760314686038479618505435844357460260229692115304267318945323146713718150015264514040505278042125629269742414917587225298117488449162823415296933378493546924094576228312102910665890631604745688505748426169488839334634531736138109551937665609005196188949389529735106173841412149557191122367509912992716110231375868425657278557929796320182233082782341628947665271396712411893627215748766399077875274218363108044678787654702587493748446058603021331603202324932185146670143297232804439502491267290932438184896959700763885214705656350739814790399185465777715239469674393602143054047022104395758135574401149634133588628385639353454747837601225916955745226222189750276031097958211893278258032151687147036592857102240844443281146402674008380656814992810294790935600797153690771358258814028676364667931408601323055880009276076935924543274410611289115467399284485463047672386873848563556133213166629210778156881306075143531437225739339316884778307915261668118445397425080316842975841544615588040946710927668954687007188007900221118920816749401546857743579438089825927786631090913027707523586383655674471038025708074354737074310263407314045694282328852756654358871507696010535769058153831107310888503696557722682440918466207677819246667647214998815223815718593509458084284412586530757043279334472944528128808324875708535354570219706024741018563091122511718514403206881065841126827869484492171965642842032076102328693008154591971019653174355981802247827035161236024061143007327259828265111273877198645960916937955892882811420667898514033353121223685030587640330279032908369053352673127687354930170830331658316783537427579595262597828094887282395403081288391375182621879485726993541039240767689751633649354719209984279081072653717949214979345236086032789250157026145402122895781494747167853385305996275578127859527601350290154188667517713398892623204279784452640721636874309517206659989553610912056780288886198880142847064286243226145099466706818954871401586442653856986503090177915299383182236426698679633238538004464697215589652265822562705815536463158890141656721542179658139880538062096799005046676157112185283552459598285398433478847276601035510576786554286790527714053354656121546766834068216849298745928046080133900721401959738964378895740997709418373488128173151740843894078928581203986415236036979015112071061744482433679277538407023334839605715621679905683782875641436233061234911681483955569545879701714504567247620849735725122036612284323643324490009710405442334884210723806047740189251150417058229566051284082410527029894879117522415739273300275589459794843049752461627378299255011844879098015689147226192383838968517708107549273078572435080495173916147454731243122290686513207540355647400102534352772344504684029311866492887026104701185993910241634378046264296556631815254540654111367102255918180731032506626457104401454644079464479854104260525025550259751981851558555758590910275819766141276662478756411675867241309701162301648051323865754090705339705866339640219227640852272716768015079697684543192656055811959265963096536231466010909505556779515213089216820408510951993405079064870995972745959067015402826205526530208626715675706743319888585870442575522611923187583166264981265880704392009953901815498413799616659197526997678652027075979771737272237531934656033095824992077227619105892384847071962708803743946019411107230967731144712691784132554035315312341995542274978492920906766534236219299831656423274116906194724724699674856455158134499373911323433587674841979456890462198372173244140622064086507271959306585008592955484959271734471167153730227912978449194146592592627956525709602355943262472686686496956379461582631092570959442762015667535929210943241130870788287420159793401970706569014513597465599254993509875862176569374706250801775207371500633508146521590989817637494858023687132470803847595391810935609197761761039615962639191537460331663460683057219864943931896474067045033851430044358999137502416763311983805238886381090788402139119496133354847203310376841586142014853075325826216365075367536262770982396337306283125911845137810006972949946089168078575320115282693417261938582775385018017053680425504908148990659609902243017449023041877220447190451809718728724529384406403357888172418386596501310253250331148368303617056201128882646790807553276521587279859789519571702252951045195073584797470296393124477575450060368145766647038149248789999926048443748302736356570763082799337068775515580542215866774624919506575278207711259413983388371151527718898680182644656439081496927439227604495327769898889582628222313912814441673744079876173236137717390678008883039141923990583499164100040420937861683440919500760436490679124836310521258845636947440146354227121595590991390903328814508941558329614072297599091762261281598158218686704911741113283034726803271699684527502494482797211887102186843923614716430080273650902855538387812463543334828025428707233103716599173290876595418152105704273146269280373784164566311378993321616266396201584528166312578245587222842310181463507939012702334506801954154501784928670625908371109651792000324262448797871986488285772580324657782647791084286974378876358567773795514890468537428100000960128967298021525532928472088330877260753022167951868613061765228358741245844776340357240366756165236392925663818879062119117094521976408301761307033560736342729287308966346136531189607981489550295046066087426383131209019104008789407459620280842401958635689365249362061745631849240171491438004225341133117739579045691479931127060213809939391001120842192375039117482239336758450411820638590495751744702708603169380047807868595883562840947673671765268947484989723206791111849315478905266769954143615656302351496418955668257849071333169005917371307331396387187238762422578450785863162882080000777660782287252298401069413259554933623213089722022524748665237547426146293750414952352687629215249617961524728580284986014084496651899243999089171157897346486777192223693629975668869754988904024301032777813072119138993336929941826512291436220378411492756913946205724895426747308483824865283795066149919504213891545393209164319499427341992278007330418606394785266210435988680876403514338330269747389011659233687024424116814701224161631742906373623777772448065290721621780448841703860220859500855125979703144143413278498710795244717155414180709088943185655058101145529957028097915834819025987334277647438486513716876192313660325105076207086515197172785822883675376649809470817603016579573126898202945984812915000534591726330746920876228001944151383508942756768401128817670999616046457194988861227994767089904444509603333310557211335013875842489274750870581795012636693316937844751906548339147237030891145251482848823129982306281931976611235037269964697437529767224172247724914822574486492957335762665402561925632227059054921068397352421943844195209079393579228579935078018523595372997462570146383944310313037276194701845143262607419747658656349432978008775668401610523390794576695213531723421938966749126364769303956012676798178767649259919001886152268716772791836808194816560330758294212597057189305084107256777591696830204419569243762675223653323320481359021471770637635971247185759411942769634048363102338155216249567548094280709227819880569482586283333957059634495098641667450586505116907262105764934559476302203991457380144368254512995332512668147256354136904893635395022833745156621577552347137792640352396277376579931127162855205639196785561489914710516443049725423340553482410161336558152437514903285119878579186963831578883585297115189006688736969119851471888798170135680488413302738200889704555772155112558519651848981133981767730053854184476602093603624026934970037983838433949444549514304814369242959008504949250876431123609265208067358005328841571796503930013522247285297945631066169836046157160872468116086632267463440390044822314766742970490506550796710555728710157695211117988004472080209624940065132395007403666886798868541873151940456466455403751935021794670571989471213610960921307335914062436285552092624815169041069728484095625985126223828331813087518290929553495637918043795583063859067005465090045823852257206179203782418230352402646529984142605667201960258157684161123793273508709166274143767907007619561292102188664176330890975525228448050168998414759330266559450912171487657885439126407569175770480554334302916400099952716596683867589552122479161061095293281958160719851205479931590206865828508184109313826899024328242053724571153602818133266471949946596489345669086124615534518450055547823671867140239826695005636656627044682470581969042844089822693299039138833413666352439212334806292491263756662571207171978788604266827536019218065811622696904462915368145785220261964955206265376708369033366653804575888044491110670712974403281823420561890136436769116868293671035118362527276624742797804102106941593444212657363910881612553865937472194473791535968834226612898834294846486409872581046412536651025145530505263344477263637792673223855232996202022330389072435045004232069417915803079642460976710929701593670528370543688335708417237672711070707252011856761002154043146425364771232445839683055895547310709725177585131026918603230658381662360227705861115335844742001347872407928572207378994644783487830159294181419268260942852522830377181227967417449945245711073981899364495233942979627430591729578204670710417904786788829034972767824250445554515629705839725438345992070511798686357036929426157812209013225231429883805321951884587677512595524389094568898996701674773431422462073255674365154782984384181768282867562104146667441100895651614498931890754824196663978542541083465633767080099556998950419218001269284225125962102924049971425061757013837360154467413581885847849681533359024236064169537217695132933986001847424931277602240342988370359067675455428386815661816186001334481052111229166286233203041197128990469878016803441206796405841589836633420386663232245871889660713740796374435584217631294661554187364062870967879720433517135818937285381585770901185289496835009588275942935274176446488936509995111706686261191560250120907505487126823293110358924552646541517467499366757948511246674944402286857431296291932402992008364458817106316200784097201830769291505305703453239148569981415192416003112673140208776375115000586195616366108397549338416600683367894006926901126304108733052762562043878273884411553731038384469457609207388529748669955656053755644169223725182289946414002487485744890971322519766963784537105244617832015433947033717426335758992026169074069356543374150546277900476853146163881655962656537089049501634840262275091732522817637686839835036168955150237795483553208912564865493216162627801751717477527887983568612613530710818754803212747059495139323348468631992260366151769403955209972044387704083391335896517434016385489739740406854228784497210913381365908694883343023767771534714121605421084568654583970783307987982217669893052825802904823144485436864487047637313328191320878650847060962817391639512275739116457560320024025813266426135286888017090827177316672809764325654144226407417174104231369935182217932784683984531784801480695741789665369113023247539791126799310587079072497254003872387073039904148501991908855676919814348705728563698533612945658918338720603375806144114238218661637588526267552407983845857352140136188627475684297804715566079062264511003492288430430716453607769615740993679907052322004494333270125719047968887777681772340824497142311195811929998909009232618639528743679481513564466598109607576605500984964920660295300877424078737507455890599068851511617267975552120652271850517672133055874907532986830921947235248612673563872925372956294389791654645773216089962235261065573530800581365182725018110437086086213672464892149807554879515694058189358386181761532997076843901970320962001319540678174122842200820351679104064747941555294095355920812230695840315559552164432941311847741846389123434228048561002363011251817331713144565397371371002362881243658149062864061385351587038102599303083607826670305106304145743209336075163403882772782660490715368946372057175095039220211706249019023787305835653290255577658891970317610821188295562292147845102250843802093532521534556484084428005139962543696064818902425155681496962228999679005889540862054128694875038562381829981039820414089007913286019256474384022179574116679783567250041689416482663119607564932547096914368572213285248695365904124915430598262481796056084059558410422261811310622683806082969449129543477246988190908388550266754134072694333443750634940329631602300042211939163077519427415024244523920276216532853842881523763503443285630221099605249741446868248436416419679430817132648398765676477525474109119341973912225246717346620584179233994850564448945165868770917289510237022593617371791240574047079604149509489384889976356900794138055340940795635766583616592662251176937769835158339852985340528579697589550075420217847531678836308674715403335874963985524359556672846900604297901715755091353728080005973974770023291800928403887460544408481504950025830458377743181299758105994528565976141475901131205914029721864946916808033195060547173679074260386102716163572277665399951249496426962137786505492072774716121498633217000604977136298737987189409630121226472645144096051660223881532825616130041761609563772152099873251402714666010549206282117493716799242749246118704222937972938314939384228006944333645751204558511106303840310501468569648727674102028771124471252802777555444187879533058642861193940932137148833352536182410830016673184757418542513905254119504762049251971765182316483575072250094331743011014436574666093303871113807741154175961940552538799672275806990918525724351078339276121180110094549603946746036480303786876539700525131136829509575268894629321200884758550146459993538540741812049555859780088425079981249842418263886867372028499568531032191024145807314677905377016470319035452837334322959339017838158599768997043724353611844298237845378647163883308685024728141426847895117777067338121163376522534415498887817538249534008323999574658981569450648902745076495201883970769064440783542136323095827417229386247659362990383519107509600322072813655923643549022385584669413030372502447021556745889643323524766710817204836601865347574063457567100807884098635133832912294940808687762076415727042859559057109254833204484264149245432542505983101277174007925026594354701474056906107720387551170691309313662156593982191542827916760821616148427287790093573672117304237028279110676301933528784124802132942102372138062240219670040147174855666595542352704188412078998195051949985297689420762176814091348336703899569972706677220089305330176476647150777709596102943743340387918515869948908099628011178054917242978572817645874875062450117542265058036553338764399173503460890459915675487167175395673940518571932947388137626799630461102772344568294008915096369003829240194722498801500447648166337359817881719107477191606187571631195339368890732823977172348114077903778244010526232135598968177661707245054628478749427762951641875088186262486554775611825085721127532304274602798762439742585896818590743265587323982008896873240423688421128972769822756989663829280654719010898826464001655897229642402884921739198357587412078965457131500256886172192100292411424635775842992518446669879246527245534650663577904037583519352460464032244898530768570233391693766978121926261139298830798121510459643377695381470137302738073954193750431444631858487955705144774523673071844287274411243941218786286454894073339138759350280774197304760965805849179280661515494741892215358907403474012299561651128013177956105914781062118414362911334147936395841714226182201626581417167755206864487537301662569586607038737680833480817391063260812030185107447046396405266019446948097459284264860965889214216926357499202372063376793272202207464037656038398565746504311525146644864827145126684219288519156256703109473554540289687922476334682134465397254677380276874704482230887950026702626133270509303066758096910617166507448726949871022543455336196468230769659732162077714866092299200416012209578597551403367266750586251603191900887054188834954499894775807461378847763403208678069219276069852742567690895545257966768571973543263704630290630387747185787443093716439290396215103743127042448977079208374934278163476508192825063488136031047477044854693253364665677126588446546528681860019047299139069854674619276300795798070266498054169995954117321906341058277280471401857145057761890782309978477318399253673660856957709362771111064743125752868869342564270177804226305665442988107639469024025845297755553498196871392742686964521305934025327447329165809240101333985880923042335343074337001744096807282014917947191362023953916433990350281651123454453589858072778519379036777397536300422519425881709026183343217526261272757900374184266155334836091185162211589526073211911432384755751215315209136094159559269026088442601369038099623750767935260305649987548769809774980981569777469525852625208687717734886731138945992555398498334579919411002794951841635366135697115568161770365624401162988910964557320584388608034433235194931568950541290173092895222000368888242853637210453368232842191850010940636072036154699214332819378852419055800379480582498994492069248406546019090225829403171124081059027518902455329652430443638322792104430503446688639877191360963005985673970259385101243520322073562879130542186481528222918904582839373042360768551661498759981579187359596381642174020232685067202429952607052312657680501039719715098800459309409573099287710113365084131966974308489117191196131303826449245947372395574359441910709897308326784312242235490586869137417725444032582659069084414251419029850476044279253327948401180885339334640821094675162826986903974875221707864860647503381869466064559055453176662988681131765178760566396937896724292230230916776814345897924510557337016956715584597138477334286261836847140905047606438924388846819093691608236425184342938772101865930004488434839786098033477973366116445239507560180240963154622296895611624494705690160696774003304103938318609811354718431658898912450220932215085294083233255543076227616911136080672251917790260100044599384956915400503234616788036344402138047461803502304407995232743104503782399982657207616152189910795482504428920240917130885538522962988233430115186192265660701017133508316966101875282993622745743032742055231275176396875547823778648857228807076684531545052145207622352138006932981327666573573200334386807877257260883800873738408770865741387877749167645495929912062876088195233430824385362784007733846789454370201665410248549510697976617376954075267594408294725285344702814370364381766347947832130757034989097337926789750292053521070891809794267955217782513205700678324112928063912912904283751239217072606889547817954348666833783302926494750956655055370392405396507472918300175945864530045006202860810715401282457393425080108899064152176414629845268989422918591571034669886923375140331962394109524735041594551075689036511686496554520283517907795361850612604202480768955732643357342644259375755005590046869336211295174754107829468996002801218314381031876739114601755791372527760585651482815191091272464435230795017967068283237095688999756285210132795784546565276352106857198083062217520342977607355932312506637718829889874235560562311310088832240316153936057266001620087837327515799582046874486754438024889084203939530464651860142173080498580724477613758623032593427142443189614096449165879334831137698904558629400293234978974505656228537271445736503449585936871375908678059578060990517419257633938198002210369625537478987279760096156760629003909884058816595266987454063977922309011609286634056009670059953915165002771526667144044569581314429303746005395564830465316429122853331466726393806285597532949043951027446791916252068107319913667788324023255448285482125727935471005680967468363027255609886844889405596573378355117188191184352656523243704190366509566655748202930444770237696717262623151745261647862524828110221553061906319073266884789141885339447449516959975508059142977120204630643275577390686765095721867580339899183510039759630497316015789812817705750159889270865438435874844954715874183674317893575450584244286175370574233877726482147350000437037500821085063176080484932810760622420001294948850999498983761328458077961095941024705073528578566387655014520192488597636418188401388653229841047286176880435609086342234945769943188448441533637823746605245112434917105524050941279652181913876122464186607038587200918437298633553591978795957873672689452681393538716569400097184801378323202531582201619412183902225564645936442695115288433356193019440065261892760267116742910498189193986442410743083280903591828815280046853365359369297987788855142092326496226232309105366515512534308560623225882363096960583016497164267732695784363560028202556615901397240141308104341802512718696567714258368855307025663691749538030567264522229966370541228050669347792476926907854745702692082452638990318273749682883018658329673047285558802950353860173408701596076408886701423666704536667319302594769295862773111538549536890414843235884726059609275521936943034730568087168219539016139422178515542487934880618991764178296523842818673862546401386422146469359572664441550129334136004507687736069257610032957832873215247421196262184777334445038672628437978949046445493076270195819108392977219827746744038824283665686931562684457250743302169032587680744196900436461584290380293654863980586641084421709738342191289651785302138003426869479371258260541764300893984732859112825402994532137627113589936364417361791397353074078955105226355762595498267664514398577609192186848492105148313320983747318064003930851155625128144005190867414258104890807501463606187777942214123738608234199611740183211537592503975747768017817922806710818148835512060026766555899321346577173797892125742082210186489417565669237721450833960105722504748275716429064650647503318536562595493136493098705834412957270834663895252680532708529122132395333580048617239018709480984545484872669458042370567450101616082065054296844678326497042320042691689572979090925806226428467205851647215298347736309036442051554890993782190618213303310800216518799527845824301436865618225382092332497709957358750253949276074508006572705319258789016465239852109093168345034511539414330246861319017080386105728334069037713593799636297325577943294919223712485788216342527565905199243202890021154371089860506679138538618841588221416723392828232925425520042079940161658645314495907666537261001329918978189553415557630656014041139471670803898947056115477128630028059572747824020499934861497109080603027282917512537313776414031734816547705450677987247326124196634241720771542015503660357394218408038394348162595152267060922252871841836387450660883342234563628690805903014393916823379313166310090391456740077550614466737234280529120091475763648703860111258416628538066430608661838562718734594198550697713775522825414691863113987096043376917770381233292741453931324119314228516411269334098475209710910187119781157141606995088220855943460107745943443693263879822900145150461366746909614127429136308787844314000053418115634903254924191712538903904195758682373591302230125441454804003818278593469614233166354912395770414719288458497618633383873355846736400737230146167592375556028667234444588119631258426833602768538011128364847189080178443700537793609849281180858275597597038576473871899457572130628280608082543740462544154773771163492249343946348552269826757906483727000422558398924643589457314054706022559388595282480637939312629677924351303376078832594811743525953654982924005361412300185942040764151319298359678187993264614576391662022906265415596308553716578866662230158908383721317955290045451533254316990445735871215005257088852127986674495331812821079834851183155955954071479950347337520297315927611096868789238801886645515554209370676331212695846353705050925792239890095661742994447221897288595219700797993803519465116022564755986279009343905195102964143182351257070099431688906181331288303149322337621240443301849012799505813170088804776317517466601910812577658781199508420840594358366346963049998074866566119904009356962892832223081935920705795130239405864788440719521491292621438294481753372422742351913419054863860512659530365517856611138416602959104146400638236867276091531505903577442708407580791199061623785159641215002257773083258283546454800354741503875672558283797058226834002021925379445458920195729762612771488660041565102890490729408615752789874161481960842958591740255351393340674721069769713033797079363897963169872498478724294603169183583528433065007188818869314238056046784645020889780492065003465415332654273486875219327750264096127508900775647099191793407083756398749006771500983054030568741741012849555176887499650267451456609648114003975690907459859142179581508806071801226316514914235648063966917327831006034057462679040191759738552574149437894900714216426287864059097242196464967117272322011882220965348248005860848902700513067890666036209121783048781852581596763936050291524503459244883469237156421020155257366727095717774295927750087161062238940921368930585798733409736843545759607088008193850671460737413700719423586724547124604514502851623398876706101142550681043425246920987325292937751583273732608917511595038625237683839067878022667369162532122417969198973353571246889958841770729166531358688560219758987558233654847746801896897097601945640303740842138010324975136260379182412604788652415871688039234634056179307963424006694934167273121251344630343346650090947348665586759513246739878251468563354572129666562208098695013026025016196392167448390981109979735938875331014385780710808917339091081769000393569446711173005191564021736546484149863505777331451492530900576627099025794253310693638964712046388830928981183727405950964669987922673937049537589559466718880903540380970600699374647334226330508419604590400124870045840353649204672636589526833686531380636412284241934502722622286919755818822378966837685625349375812007731027638257618815180439730724098579616613690164514967114237536074487884342106714174314347797043955597601793643704136928770524506171760213367283859671130450993162144557097560225847995913592189984569042257979123627013194278446792245590546153389992771388897328885321939999696919115747806478762378459741146344484339988662450997294550766084070274259619047426350363597467250312524285778063875750658417066861742608722126318228237908160582895171278235013466386236357294110104550153438347894147929469999186567587514172580986450176787157157040449938949147802256123318327758777536282266786687004518532748750313900861287163592211396173063840761264723663626620933930458536475574159286444199367670056749587232914813711369841002369690299659819413618137555721099754493826698549333526982395313519140239623936050988835310396343389739070421822870202289837638934863041025766270738296785583841694348037411781992492282187419383625657610130928180114954371490789702169976173087977258058883852078037289458636622310118391492006292570221118834181546602730507147721709449485428161309470280282501227006802117514837035475509108025695246222067954254828415020453147294501907740867940068683158504383808578601955380874126874203304774943747850345278834664494363090158104042075080665433400988299396251955743540112609259928654443808063743655903543625207366318915615759978793240040333921464839894186107609023345235713622476644567100982897092687841343539728437318894087035056395358273108784809968335261467054057425927221352544858429824382597645759617619470471539544883528259030588544179491108139873508275640049755720268460084086812244727998564543818618287353930123557839301754738790357949801831841945806958857502370073029119786627703030034102095683281452111238865885996483693867462216563248763380408210684870564071589625528695063795865339312206383958018729814038655865738909846624512740331485035198845308229820255603793556685815353131329817432485999492860639627405471292178091653709663892704141158095148826854031877589626643749413870827541476678158292468152430581824101514255032577738712985765721876550913700120349420579286616859944126917248785899915766268530150720436130665874685093455085182728404231176858116913539488861347814351936106739156062532861615579782892340868390537405900180969310239782971352003658368867259752046066111597582095201445319592016412185742244531327095587804434506486869850322654312315220925689977322618879562728421068556754691608657961245969722496556700691491781471218721033912277632864390179039872815435462667721152586589134703402960888869584427490587886367781377225228638884777904875713247194933727514024982759696997192415735162303841150031645961119764419064122533036332418708996444393209649451493918643696721773548333452955583668522865924045144282130826239528007802026110382288231410597390933614462953736872860300318231180402678437186336080137823869682991060633238280399863629339394778599868669541259821387160015268762689786937734828155303471520932540880776169914570565450332937461424323970669162686306062558376505713369411308088520533110204288098540123580594141686396042276776655574500397566931091176148621413409897018390026535317876848852030771207585768302814803607558139618319243617066036660846380273589416093194009580863734259792759174812381570412355338731087855535919846977377726955213289301899691583350146261143556109154603603040476300679592822984840459174254684609100695413787618798811507692322293501924625188449559580873405191252721430873930666019730875668226529451105710778376187068607818363013216858228351041947776204461838480725886653019483215314291172539207437103387109294768000720628637730684640602302900741149004520621519545256542908474404822526544635904183563125584829680635676592520852682251260104826578119643535875274994818822938419527731717331350932131419100017546112957340714317112586704304689072816886422446554911666874136174555320973538291505522125375569667149171200948060303201318564209369344002121667892630098134967192903709313593699313253352452107194141618400052614695462346798557106246258442051099617424332342231656563591133660418082015816774023823392129981989120844132676530074692978550601274517930397766420949836636729883263470151347400314836771107773750403107312274833379592766966554894590866817096728619010546657307400433741340063127541109453627871262269580442498243236778937999913963934835175029529396605963270425130805230210270385508911593331081330581727889057436510930902248637125060895470416451388229888882766437249195400038814593701796963299526917240120405169615689687576220465627078913142731669703347305810304926275297560397700797165254081821376866469674582774397268125619920683184047909961333538915872708911628272129482938675024249594514811870012813765620092971458247803838309342931285680106323101614731059377321584144843425333702619294079459194835741345765287643700017901677270193868336246253051424806025220244265776957763684580366303743411929375763528542161220243160609806894268762673129937856020880549181286395123148114787719179123036478593483611142138487112886625061910670167333682441082838334584685717650697601386527998737042958799998705780634700056700941840235541894991413721179793215620191585539172376578108334485866994736146311812703100673028613728940679609323138956128845967062534525110143491760911825713226332307679086104166861663040425441569770101320291441430421990096530165932694576244003814068364459210085776689668971302156040020631737758071574671117180978434564887972356195147418329765845456628252734522277208499156235765477014599009329322499286109325802484531605105937396131028690320110883244147099055955902683425235324930531620091105393509360625721840820609851910148263499598175152466652640504712189672870522068836430319893176020979767054496006879314309050957122501668732862127443575683783968016368194416928397959899731766395372188031532071993143389471089633190325123118630367842909188957124007455391667414597595199071028596831078390019932307753991496642852150503344211289488129047288756237029487190382798933672702572266574414412975747096708379927510772694863963306387192460866717845377579889635320844889022512410676401996305124663978865873970278030052476880059960999506630909534461775544438681849672174098094770690969356915101008936461898728393114509427224064713732543953562925392658711822344543339165950027116273746089388522709453419774665857082891343380174149575035830231194992560305252669262336374962572972877877631568656944679140315426542966115291209144656407412175932706210523175504834864580071111533014887974078727924242956302351069665908149193244169707071210799126298657000433187769517936539105148634656484996880082641112819941907940256467931361583939372604130459390716393126103663181703550517524470391919011098363281567045716146442681441422837224995894408816581228816570476329332765158263411890934863880295312187669574012702745646254606059995583452162938523921163579910454929917314869565845611487883178730898403583754047777364934891517678263575162112841273585871513077563157051756071727536986565865831517385983226194391896413329059571119185631965785255106712023380337790605226701956629256662383947559876483194796931398284203529430917359492428008868116281053603069208956204523286322052096702073662204516818058140287064325351902469221919954594899958857026995668867660325824484412128267897799087386987775294135568686781282563807926230074868283248992644800610762314045012391507419888482077445855728167884976610601920885429197152626694389213771791471703598857762055621244644476667078354514127003149777289576681544798078575927943997840236079523415846476587469528248983891603527992099562379108501814859831561898627482384236746293750681935862403763093380246962653109833198549850256277857945092355314853670307756242790313211882546042958373522069938736204416686057898660119042380016605799843986186988578832014543737413584576248639152894850387619622831886717898178879775598787747630372320163664394420360506705851371646523016674929720061873350425037234617385232737968307696508892880189312876009105126036060989769231425136968283817889511228317780271281431570393030214458996717006559887953370552401332927821327557545685596310416589424471146653417909700176114083742513849672309969635307665331306647407042675293455452827213711672032621562592025924065233845157545408232466355956874563600052861848257872890733439299473489504044978726179192354310639057697647848991808573003040227972482192319193466947662832097656241939682902892404558673394231851540266588917299182816692151684083881346520479890298760226483936745135808914815783802725050577607415463539630203774304016269069795906453033447940421313753348773646907047795136418186039086833202518506250956724845410297094963282546503142785976581214100842490288181331433964006239289708119024675801858306877823616647276692432059070037596177932492178366653754997405744008824202796159532322021799795031854787244114700148469806478331536714231952273282451177766054281126604829939108764517848713778076312136564258916593321216537105668832681275178008905128724359041211453769158031507401611563724209989353556892485713329564873049776608455591266391689928648767364571981969021836945104838352738624255128979394057669959450864537598761898579459179906763090200052926767487470384628192018991150010415560739238284410982383288305547396782032749403280816965258888293037737272683578774607586797324758048263957894620531875844770492099571949520261843346599265575615898482399175773198317504594876422425265565449935174885962501078285912483014318541528029667498753081266185688789064986977941266711237931112252235138539286891292269683560217534633707609873115461318070881072591279345095947062097841653879573020171931176747389019621297736940764003751914044827498341167079906749246520175101539930198910682808366459908049757266532020456572549670406174412770895749764026647051370614232065785328128286457277984499367330408397179690947515131257088681385786039882981890762909556278086724755778616144694581797367231063284786633727013275728133646177037614057299208631917902513779988082414695554512740205592183642852184372506308772569636422537285705554620872332370200939610060995955572502263613698272193424632359225926269434875564961076287152111686943996932926407981270682340781567505596890437337153851649963902463205019584205090282562161607057497053430567884432659247158459142716177135671783012302690510924210823069012657008752978522375968999022491357439686477473359193269189873023183646639683358617389447026441238405186628736139696962180862259939141885851558288070786145972233019317579213888235096071121137103772105639856987770858389111838475619411256393889584245197166998039094890509102662612585264759475949600636246170195146806705387433159127613619660684653022995969337239633604297417108886886801815896263006742492216934325508853313513243554594490998580643560100894351197628926003364853518616143916552494043349845260368812904257397203406438133287468942135755610686210358808736269487567511499992975186072685321686859926679827301719339962320674032128369831022167065883537936517693628367186233196587116846279080424996945238553115258136276286191484581711207586473050433927627770875919645558291906047074574483950057237518300836512674389710696375732699053732829167921464976527033337619682975818581886470444030331505533275860965032772556934957313407695357912051140112727775881314828648873323467322097012579371207705557539709827655278257814901546406596633961550013660384485513879923873866509536398676364211671483748704826621344586847507401050105122963077995684086114939947056899768586209789665157893123246823267825599682503830276207260467889051178821531320158905542169069172663716920416887966422207953151047675182365137855165539976139471239777477495510836293324505321741374717033661061645966817774284246474620394897860830268559650274113329778244654898688144854338560072767409169659433416274535413973840226240305245964351236455559725816867810310302991231125428403186378851587470803050347329689368614254370672457897132365568023564274637761110545112082170293049204262050659044223140711581185248914166036100736215830773032662816173343183133860895898351254796838445944808222725850250685307309383629732998474153235081662519126140465382546947973164709412589457460714490099605712830697572397126028522929690468160662559222173508181469989374372622530339193044083110274571148941425708318440274746548518323105313563206632893297775057399340646547968808330369039615007217092774623278212725305160178925798523396788118795046012664792356616914524033387691221517522513574925208461711952085945280966831114086472458209898920911012496841243931055043838013342901462013560412091537254618322371801454383917596625374496656536604183241428540232172614280133918516901231274417943164643632937327487741476634568311206461300215218125881002390827050363434056164181533162226715334606796398031465994609423622924208420178775391436914146243989943046008375444732114835556905834494850758189237599020847292408840850468689614617346284077678167542009042830428648320785447983488979513293907824532722200114096281271335158627434667936454391175373097798257133632785780675849159512985505139456137928494826784589928781748623836813375729224695239927108833296860462336600028785016900192733221492160612278040457573010397990083495629166137250800086326699822825734210851669166445353734569128668811735374151696175958473028930157812250112597499258170285731449288885161837997560902639456526092306316412604059087798629042654911694845373280051845016439348425813079985520805457780009068998115032516470026296525648651409471192403515220128877881183645830375151463240753795879165024032205315010588948370345864877257507651084767861853564224344514043847095841581245262854075696070574755061406149322155128603481668135685465011398976711270693939023410884085673868407841831258245607047628072785997706566028952266986024981954784831436643767837912212129333979833193378444743007879660658078589784613511367395082493457808153899774026568682861957483878356824305196297515609011335368715145203421566248737715643519366740129007765473135871297878562199169571226274142254524277778494674348392337682820391492152924954280898134770949114218299021557302265821610996876747180003953514262202817992143728067265322467535650462580283636038420950882327493620331367553766310159159189316081116479887056453363031118440887864594030968601398788901609806751405325475144614873819066124433730377070290827530938834209810697184356774421724531886680243094102584473984278495629369460059670675415169974459745842650025441609898811409706999953797092406076046812312588616317880108630045475792784083759749213687695971154494922193710279953755872537017084882132828122286366901124053950528161138048181154182780576802329285682660958224095434902202914139157943185341918750790077929526282260318861233903295590686859741832046001677060727425518296694229949046417074878435806409952862723691585204099712837943312356293121237657070880597141252528043700450231443042209999827982151437676684602152006261891853841597584839866209904567148273590331000896034405777535859707068789709198271079560722967326723146803166914490403345309342021965482902564965479731311999917258553360818425000689166776026546485893900715942423097446139901339659489322886161257764922119626958333504877867528147007110370625184660970452572909983129351562038969894124824013526336703989085259961390994965305028452490740766830418097434288578936725840406868184240245254911316563104379424582059790434426344168790053597066960530966317098879192151394042170276632594460936031463755604690288636990079979793593732238727557332165978932357210094331041722771578391284304621671170018849602069290898452182962740208983990872341068496454864888752268590462939620446598782071708743558998389879300517160951105207176444520436588434928092822200257412288718881162163360445824744768118113293343911583274819475329797997393882401248179628065391983362931558044217377721364140632113307818329176043220806434398661699813398699603201248474099247374513411611869795537632201834653296496122151427540540680061264160966636761205531320230371759951480178407737977623158559063201393243465280309047358767552663221576487866159516905658901836750574092665696558790578160237806546330243788780302772047251608977038163025195662318585798575991046726836625481233157772308956125154061062643029401400076387850251020972488483829617157522276222956647790724360674956947501831829181367860750326742574308540039223838262079351354999951573567848474607007981620866397061915264219257693406004711275379741935570073741751127609478299954375141573234796721126466247468305131160827876468303932920708823696017109270238219891080248268491065204991439237180207789176909565884908150773493653682136121532254515183934597840577311187248513412767326377353161003684274934943456869520906289234713605306075547973420833503594068791640509138083365836086603772349925946312043105660181188158945006046749602630345131792595733929999418303468333941746688065466870401164287327763149528426793686694366205716383049752764310427806150045736090707501798844249912454342285120618515717537403083300363742048729925922930569270379881812296944830337458944837084869747299915275859992912046246981237480111494573255326859093385136287426077204139578731360776929339814885996135229949324737180506737019736204565004891200766942352156425574849226343549667343502764109939131011976780535383360303800849585197394816054564143273255840268953243535022651181956585921614753064648493234136620086500366280344822342159447480150905017607988491328624108195931621963676806438522706865370175006961434648508528556256596276902198544892669444913212841344997351305337143747211501185428057586964607690481337606189431799247731339207015774533397590987707021835662450496434278954771184474338221219576596606349672937031293890710240699443981997963151029079180004864127290677633352375668005781153168146234822793371162875302345058820580733257324249868449416939535690074145987888648664990611818118305353814303521089786846171653031987176434507350834562971661872104930425376339560443214642731094884015849126036111325637865764146986067265556916734631446947064215744286487050040727835075431729768184417281943428620151325964954505331897621585832651192250244727922210719942043028603346683788494983489776074450410239326687881030646519124626780097841496807390513712409751603044951343092293966275691186313902879285447099611294283959086623001906050366270926168046742021548225149275605640171623277289268987637034285834431341141857991996845970494150753326591702488498118953439544149478489552240650992709169182025577968029189644083950230483190734505055063433549354186577460007199419238747192728021295274738812341671641561282559204705948899415916249942666644120219644207682187379680661645706596409717903402016043564595065700559252714863523743336876135923340392631536522466431241319461605280185273955918834301007604026469786630623980100975537753397280448152398313680531819160223097292906621423995001175849337718408167934414140172458746773748927445374339162379640100958550592359360705063652098784363682811101027579576001327940495321352204006105033330123492136936138581012502189432288564479586863787665498948895204610890250938940754505083992812126750738964708029913525551881798207352174824464460894237789216876824691779575353960198520550485394468750430906960320129650800237987236729097805158810333463059538089733110584334137031014092468752992251294194220623026770095268148641345613772255350098264193168296305827443032443754172437588228730451926373122535336544698887622801263875003778451764395778909091610242201884338575686417937296240415266701392849419944173792627781994330772139008865357085998871668697873911424482756929159984423978004298425407978250239426741948351023658780049680998577626776022133311865175430347286573349494269312646531191829263648719441384693606878063683541030876812104870429264089129751778472459558959985226260521711101327703928078809512467851843360001963490836167868451631067648459802416910458356072766867451748467649341771900620117369430094445540471951294946642491062981629278611726444078455627190803096014001261104121572085303989969583742477591433045192090190882425035953285522411895269969621211833032702136933159804283066136327097373185926123267483397394671073918505676620692349260982582822448415739588510405519243316949082242655924343317607700553264413582345374631502887171294205569463681376065882085900629725810227898176322860593386411019229472957257096642649298008121827888376250445981466329572787071571016828221080666862551101434564383164722060850052638138670035099182023945999099618428235103001933232495817164104489632685518300371814577896802809358269016186759061773171540649668259753525190848532367870670234125002854687306609082807065405828142923655041883187765414694628045529321685200032084118990873047400701708568001001261592967264807341942704654582773967458178659423042305105937774535745451931064153423182470856200239827868776112905303235725770738771181465856747047186220380763392102121144218828940473851931287762071375660291779380580481587171760659596739595244547449657919911541478560408177224008065266522334963335225209565611727398935259622834274545597728817394382019002863896201002074165656360240159581245167312561047651172548466474516427576118535328813638805727989598103779772648868449934212683778384248905224757583049219179934420739963308941256727728424269820118058172984095441271458657053130643807533540771740053485915613004784975831836769489336855955673634423602259327532500920476123583643828773674020659404424416191217027877418050098220419872704061907596128838766569741941889046917480676749706507424215207240623288243163716816303936935050789420404185991077990523629605839615580523296205871503842784976463817932454844079688417102977688520416289305711117080471658854077090697371677840969881911675350189051583533683496747588897617431467742402559530862824028255392936679708683634893176690393863470992905661557624686308945625362390782943867249959841474625285717219407782627426089288690381308923592142065655739841338451701458406723469488008471958563250985653932779703214700685632813276655983550233571111402488698207034380271281563235051814000117851180124531331715564722894104336974447653247016479121988650196596772864712088232168846061422282752712545216273653284972857029140751665860363178184648860952996427844046001011705653909614754059495559430937641406868748040279313794457589002693987624450875981234020629377503099023737549900421683816311271412505362207171669389309843404876372736428560217070675720070489466366232648073150440447028281361391776232087295635492993200021820718735999431092572482905259207973244182224849540065714036562356498546533044969613552541821249540568244234841703369931680033943997792951880610842293460102976481761797150945626735130526876818572383280639944877446124179411588013524054365443958846466859624931910286931121186474745905458004205086237892584746967438765067549686672652739300175621110383122462586414307437458544623604867764849222119074067690066022220608792567211008445965167798992780978404386619474566298523895824271103922358654947163811712308275601131653034455250102277006838305924026873322271129410209654309586864082500782433762693170418408928844231625764926591755120887993938215640414482963708069298840795031383587646467554491542873729046100821162296776110887253706927750881733195628400885688763444255010761203141854253907192142905098453797568040904716336324927467270311027339585333940543099323516067323298058493962741802686225100562907877711535026752267480259487495145216531408430687730010192277884685827217356950510916338287687298989707882994914411388413115470869105143508105035390598864773565043490031849508217782898069573928534091376106721447783432551743764180269423701944759139953598608411203906344364408127241034805817701286016846396431312262281306990396879052878148356871417203804075594305047806315452113687510256862625546443929327631490632515507532012405992574844991177575832704596961004121572042789352964799412856149441207870342834624104533929450801608307661603109788165367551538194708487413863330214094287365445098443319357610831125596838353412417056978536522327785040062714473291841874080749328952546785908616708689273939197365377646892068777399815383575775049088287659940691109874324900518049006098517941878419549607719764620066378365685291209539184016308740103341363572350918010856954403506586997456957098547385981727210482233979274590673559157881546994748454462069420112673241663695528370848659168368180945730266567785599607738841932559878670988454233349769671320932768601612118758017964938048539888533474698569601790762136422755744248486407588762631987467675291901822874679995095352559878623953886030900032751915419908704458316565780390996018910234504639193920628630700064766138223036683986994673938425056179465655387648304531174637274033142152649967600401025847906470529251102606297362173301341826654006065993031801682533187334840520632992437850150047709758305260792462950105566386915366182654256521211933163930610420148198841803583980245193856163737756026484091593828157466344380690121538500152223398411326547240379626579589109966813582033527124206980306374063903708260733413173163368639434172884430897422769214284245064801022944566322601120520301994785614204982644995779926766863735065185412364352416207491213383732309958065557263751164021062514287915542583033714846237337898447955916738863332569868611675210675525470173627561188689163008507916679728740759596231273023530790119175980467154754164480956869669822734722291337891347951203138426668930263358721744119958032213696652237169288794056025739471203741691538588503462594732131539994122621806475208983593151125427878355412777662699992719154919233686995446523974241278764701287991214151550116272608955550287796926928804798337667703158234448148144412149455150535459487443965501800720761167911460008495318193733500040157726619483798449656356940363814977735012681706708199065772598213142302285879744024578280910186146371219477146826263734897370172137443640222628721348048286185197274419568463077147995917096034709421599179292327074737025483745332653851791810607352198273211529982720352940971201955317831448020326066325550567161632567364469479044071532505296849920863747558795835199374505833292235164829558416515325295969487586079894313270619796974352005336993784241530639560500194010257798744132597813921003015918959515523712016340201563899789787880927555412147053902860912645335857000063659181879297153725160935155117290505856895807582528673413818265974348161731883170644200481784353876790789157749634001814156390057615063180512125239206138299816001706910196417550999179869340003552029203758880988971184956289753449810945216159421002899315265100953042222571168348979400059365284715697691653112842287634106786302036284785920420038098343212453690983935491800588563044158361004746660843374874497215601631885575089391794780691740704017564017884412904534254136116282005400068157020287175240937051192301173725321294473787786792905936777536142745018420744700322609440041339324680211351663313658763492797102809185571783893431859910218239336918673421101507172141343606934140144272285085673146970543452319402209938165735364887120175263657085915537046484657415958629193754093946814138297173545389449610293917092704403903040350203667278547757489184765333076497530713811930291546546449258552125021209026640010056352338370965969416481288502412517702559280166276289149884859939406650484486540619669343991072518816528242982789588352872659225004152471965861511021447864594537169003692510964095803958009996526613447877534081281947002310620512740215629665113594406626359969415878295559927536370786322024734451433392909328157199284069953802483985870228433134317909416706144887404674575862957868149092316285137727015221535766292732147463883852113652496700354868768076459492819359162601585300635350421079448717090509887388913506696389377300853947172816405149040020965854097411999237471517928045861891168479197582764190286061693101533673236035260881328679830257242131133920523148243030194246345715170110807915484516433428357112437934497810067871595477495850069894017439678042644268541032147645665148363980294649924894268913177672033926283010631737564617697756627114114973433080847597627626694951195071590638894736296568317592667290545934827435583986408255846206826991453401109401617462834234122339824944602695511690326021979632960114056729697252457356772672794636808756438398981525893060683756415251935052337643428908370352105097236161837054267662934611647203716967467495678817562289575223973988700122358228949894032742354153654676460516252032343933092517131364185875807457202632959925132183694188773723951046499429044295069580027669699345756883224840388617681001582515614429499295990819149282630963949850150953478190282615947637300091523812582752892105933556221276326855909670854420458422161405709453142273896395682955141000353177635256904932557094742831184564371923405181868485206560347528743448092375412562676404135073738304637796234656677961415358206460046430879013694263254183962096129120758092961748773761775703680618945771927384654997046224863807200001926227473130138401133169387440263092044413156002392585942182131970211581153868513868006582690886366997437815233704886938663216601804971340240367965953439456880289872794946627891589664344603974581708525001468019387077989569574539795482401407980500589892156813635751020213295698463948548128693635383900556957007821096642107197844435250444288552326397501254747020305182305399719676817085906255347689731020676978705092765740463423010779207550702386612035390163345448019102277084234772212106915993327917871221981013869090619014476466348174843586547555790736909297903974670514599142618910722754950531233857715043112818766823787517100601083095228071697426788693143831424403206787201863377925774771864192913987187685281096308284544114809083147272789877427242255936792465132978514327443224163342129639586634815863101203303856023484095853090499713931929641369626245867729876507771715337681525817637744946639441407946380954577253247295870676136441817984452627180508283152747388506680726889445803800241940637026355385284702670780449988373637994442908175824807318499315413964444441569529361495267364299057930162541593244392572304809071245169117773153873495448805135795178901845721887405258613318656474352554651867174402110709918320219348933232699400696766842591272650330856960694054034451135020757617359731020356865379309570090857948000951649015203946447333806391728535875007000812176008158399592172087638628170317061499288577231016734118119591006828424874128785862400742289395066883389165460344347090431074050369071795935197576412747753540235625329714101462583151674585777255573441028916335613043647537689893697008080218140572313004200534134750659390615283894190153255271118410451809440901487827233750535104830029488293483075009990337908914114807295688292964905456801216617365673138219990749347908257742898108778791167611117348823798163486355526535571495075800471590181149707084778151149218464961248529904153620791271374701729502796535798564445378856546148725184358106770265855677541365124489379824494176984950460812922883767663763008920049792753959962662712900626439302129964693135371167562934874740138074086025679927021743561642092896668754495827788786572989124908757177669280564509102565077892619429739842300438073722055333129840608269005075102975072508223786831592466777386759720226831213899475004582653898196141656542542282478247823760410170584880325513334860626765586542658441110310472412367605706947688127394714246960454116625400319262690881735761356817129090603122362358839297528103885227676820000651603374951913302296101702738147640415835869262191423904752150681916866210402169864681565744713221734962201403087052442105413273223171044188330466499643419643169360425892276835658643406261216551860182097765610035717298168558847578843756251015594071238153554635473462226649491289929218313737378503511296464554345617691194920730247774553643518106653217727990572904283225087437847978091011569390048710690536875788209055605429996898463684388302713088331890564601868099482988750373942566835717363828268027280034177761356853334844781232709445019882675230973176209946832671075249452992383681452088880102959311625870133423264354961973101974972876419860112154279730685767337195268909370426755417001750538934112174890599132319333962615969930067280998021127490744853527885958364932889766891403795720923914450885177446828315235011626302274791511530702960036963174516246425500404635197410662880059714386587648151832570191420374899553274880967285092940402028076222952363948665466775649296778720286981420332880723472724285908682848934060353463880792232844923774166363504359034920514186504026325457621352997310419126335994636282319128097672334941180142964127408090874318443981468318688727168828377440149194820923078548246650513391305374571951659776524672349047626925520823104541810468361875006748689373243202781386011247417191184766882397241274434070846128025358792873686827572022637294797290019164591914563136655802203175710265523310111531903137988242166371630222634897194836177199356506532284093783242590058080589711336062975493133164782295777356979726392217703028893494278363509394548149056542214060943243347480143856553420508309483460561782819604985820130297199578907160076687258166995875421539254401668212571175471010867297084557424909331356397383084678555253134351370166202587814094807721957376330267539491115661928609085342825253263582961307341529801353912385671985789637198737955013807522544708405313905640981104796644902375850387598853411285204057151796793810026454166878246995528048703846946027316198343219570994777666204234710459865633709073427817249113228362184713613593380522756016231303801795856953630438836061842666482598024999645660518848409181308425241662544799853662416844360236144323793870233323892166059797383127016087860556000050432473727549379353339167800358459669626912288664825032984168181723923389588279862950228999220531882911612678674848809357711066671743311098361346067035484169355277520899226306477849704212341081598963726621876678173732727543261399725445242272298283434028984503411544732187964011432776329589003875208971963377998887718761037768188812024249348430259536448369265652088197316533243503242187947286086209290397613355260840569773501345570327480491355319206064993911463950691622260728409214403526086908898996132059170512792020533870017737009181067440978003572033399723326802749417244592088752167455241342470037819858549791629104549065397889205758933121749607588482478288304429439075315359927238084114852406330792445355997725411364172055097391533147578624146129056980193169992846761749908065057950302929596368628451441661140334004986556344453173072237824438206494697244571847689317639048018722289070236231397456494431018152264720874573148239074141178429677738229080929133829996537911693132625461428833910719138005146491012217048231127360660757751954708819920577560457445669565391092562094646540777634708198093158891404866940895412614455609467594602423428416309290834571094591166127485377738890283059554558246622963263436644653857067605521192622724940506905704621922367221689355964162169476849173445611124788494008420171224649865728088171195285286220486138225338850341175839811264276313736343401433558014822500040575055839194616899491918687384297144818393174087872003348938771785015367166584177950503812869696200926668857691627685718249731856690565078700958174218521742102667460937503397953345732244143789015513325633337717402611453871827127884789391987507451779384397767991992082515745198590957062538204876630535394529213367840580425887700467298766540038248994233832577467989827982445259738518941272439404029420539746263030823074986724913070983826113665621307408597625715724699590242361965875542854592286759318797277998122875388374133660058054583943975383997070469077070577467173925584581434348560307266219795024941867964548455458237940694183984951876417080513540165546812718935395414975903793496623929181358789433766655965339362220135258334928531004386492830250718219422730623231678548440942681758507937147620909153203207589323152378684583645330407421269628737019579109821431975459340528573176937679560199028174280198685775602069989446077692289671684067692841568405316470687259300467939917206515323955616809320773314606972740224885615125099685237697209515712466368111094074416311438122715283920464687619571976821028039906566389349598022778102301772654064200881259925764984720762020350691786186169720663230177175503200585944226829039574871888519209830487189470795263221006592007363470690880635899903328313495994029116666034128928599454467874712963682629387095011284650991992330899363784549971486088243684510007092875617705365641296320229746560965239689884605555487113884817803597193101288446472541266397515089331752079848129281767228795911721182800233934463831982943523865109495238464009686404118185720715397681116253896166028336537172811475775303012432808534087508979857341846650840865638329043349588704647560921077393288381241353977645512094810629453727479078980465852581931784011277067078414599208941624735210540689499489288843525909741723864242255576321836413198882984777961635995522797440644530519553466738454879626566506395831329779063168542615468929456970669298529487770093654643472763835875746411321787585375086049941875476588750105606023981690032138595568910134440586302501738142506978530017672286705481592133910361524584967780226336260733023486172097061635753781048405274614501693221177040202179181753111695575179134613736940248609947291777536921047716229245010038889058695522536963544115883084596025069824023471814509118188898346354320622330903489129657783955227770546591599289135872057342893619426308451012708022164086518406857493145099298315347713934894377415015651382491156797988775157984417278490196518967944713643902459441563957325280615300644415679443968053257335437250755820752005184587915018324720318180295649377368813043957027584521150457180192442905901061183327698673780896597874484263252017527962717969264138439575759296996784834545672850040839954561741192300683117327041417200966548720897677510299589517956422949726946377456792185715460115209617547076042596423515686186106247643475246714063835821467069503279550016693819858269748687290831095736523939727455421978191642126192589125259343498907490732721915934335577880926085703470155266777845750723078365990413046437601202141913400988847777419987507640314214982034824703217799189913653167423151520651026615718885320989104039684697816341064157208891500405499172044038503958793760968418169413942449755047589994586103470931161243289090948749590957166277501792326134382531655137804786021630441997230536584313997772393022602231978556972221562731630040375390616411307059397384458504599330434406183175846142505182722280147843161176313883674264482413313324756250714355606403122995737886433180477230018239714751158926190918417930128478273721880508362281933308536838353097844635649076025638492358303431685361998252501710959048666248991019404601787895359196525231630008658695438039060263517714508166695072800947009890389086365424094337568756465345460271869206811749329384163170370141406646668955090637000671977761501352378492611549562784797745137841682193655136239972017458815417175051265565980608195666990931638704046271388748224599146342179327334528818822527883065221518492219622911553352083391365067581229440855173570378447327665197995472346920180612582185860656026930738770247938444445720306569789642265752079390191208973574133543201160990022636949215875821047546786467323286230862238822395482276999462263743804783971777145939611786595536128134630694255421345074005575014827272834836419591514014020252009018477531154164969916079024186637249217223747410235386370281126896670647908233217562256047007727273324979471956064257423792757700096356529094060751777999744723645238255586176687331918408268883355038181384690726154721063203634704278421196956703485871961064331187852480247788666004781748393147659157621514746770748963984105576109968541161869160783248965656658066273919168088570167005103108169808697324918544255179295869296973288395014140102526544100351124263939288373204931934913626042576554668155716022014767090984252861849192402615569067984411343858741984904657630819872241689676272336470101877613935697175368346780927070588774188499566474418310754165395222630530592840203282471291655823745490289317770969140786788804713191597143944766759011386827845932356732319847380205294546930033224198888505959576755944913637690173098995062085406379925903784474194692814219332282091628015512321885295103111465179389904911439422192002022541877125686310605093299069428619082081975257730385116719797294459968150638029173971222825983898142748300675089198067044222615601152430392012717461196206607972729827395720543371742791128295121049115044458511998680468834663820139675305949508030772809528617343897422043983134992585136995562349101229332918242169475804510158958534125565118110636754372499807990476681047664973810121801331345166451512429289479219848877308067614457735474466459879023839053181502175411951500605063380980528312706307789063282402163638359287012921462998404902809115675946900767579128958028145598497995911085551177744968669465717580242205050932574638253830119078332673543170754021985436632897216639656058541746053791865791168213543008808911907655114253228423944589084129006384411161633624929545925609970688314658985269853972911657124401894222123254705095220059626893042477971529138876625408348665718190374732078819153862789089194837869217666632994082460253359019350146785803378320682049545131280833418387821894687711239510862203968900230227219483500246508862585892532786481003185332249828904279199813267535881273871546039702789543042171700353760167290516772222644125967243767193045612386916619861476681860646213601657030287253895646498811549144907669493860554731343317805080503289040427635538712590636646503023608963815650095440566109964347506453394053306472565942033156632449078281851076545257833471614137981388272236747249494442059446671489589578399719453376754660889284155779844624254873783679792835935494137575580149251107575945373073619805291232247568356607165444954078796832075945211778630543216806584030027024171169742645002040100405457697307881908784813750473618565170862014020240055177977196538491187796573507904842695207664670172287282732802628359783857618249897282620147164361463231939416249645589960553349030639821859182920211725675360869317185096421382738119189075379853220209260657813815178057482531719308123596304105058518700312384339447407311457285632581862753943424663611408315277319241076488789181174329222524560893118538184319676146916202182503379335114230494633184599574767127249490785514485039704826524174994851427804662708492972728595400377844510449973971401247702634874650728521324761722532204736421921377410784863250669442416798830351827237439992973785821615082481356581995739584489963676510133214456102325597992594507393517819984892831127308603721537372664545447970989497115971674931269614012632802352954363445380591566815732337195657547149685633715501799341161650483764510465907485566525504690622791478123904084113460358564209735576229452130672385539147845145274559294142098482433621497244154286783759396953694644012251790243487591740690917271805721922443487035505903096344993841547094947736298584846085263523181314236752711283186416224650545956127352798757584672358337228401815488843211853943084481568958591340064501317758655686769316258472552598688642469649238420053982062056618736480234793368198450606220001560586405595042332388886783973611515762434987505114853400956830345218384318472609498706784499020812081572171276730750127229989437695713495823767785925593474142153968308538390850947389982445446794248486282611866482867900024246210082621911754223173433759370135078636504314682530850243120063127974691545393960055636930897049887718457738245853558417566023500127990930361492415620400040164412878153099809348313135815308818599568530895092735266551489755418466508709728476122695183994093497946064164652522579057813246717173914538459551605517498938642855036691012939744347656845315420077573328771506463941927189793368772137157655369465934721578532604040567882035393255714100398901999840793567954321295705479452349793538418415883961627177767800223256757505958716350962638748491587748538381526296182252771502491062379341579327418715736295463585358136312106904869793714786268694663582771070542103127528781896430506468841538011775646300679496405218684065086534414879413676031706805477133124951779623173054624296349222945580101379743784013412136486537106845386639867810900786783720080575071795641515352342046783122835715355575974629148321779693294609987753886389497439613911561191235967394757488454852095394556127487954700358420467049282768921247551122984466040675573028661878771441794363737535464168525265363583398971787135054175434481272125026411452188353574345064493132701748207195123538605137411534614715319740334745062460047270098298400603383424611324701536376561605759035569915669637434905897390303269646815422445135671479419602084189675263734870892486511575251130633166237529026265266611568474507500946204728878144016654074787603009422190381460939404096800022463134927050813539232327226042117729736907057375283512297286562559293130082073936987299263559878524604480335789487260442522659310681733848955590308461204627151549090111217597964575185434679716339332352170025226449155892137171711735870215307504430994285615307687812468902823902997275949291480903344633740122705576783377316302111434451986339712600563564111668763861760587969718960943521221150661634478382119703992978396214150867215938070332928374127555019869478228707906393567894709438951980398979532304909691440288204089585324987287283749284257355455968834155195472946699148544938588967427210230788185919377809574213650262977736761704765392440990848693183772737216733282094036996824868304453320818578748213329971234944883595413061269278830876146365790361800103895421836049167763879727904554178727452992021420279583203867877987844310278516633538615425599066386629644304123294069194577354014625457050762151569077606686634860706683002849112144735425975780026817885001448055561686698133784695957494907517271129865280428954957062999718236580052613827497863831649965984517182197936580578611651152909393932231712559378254494356436783642645531678915765477733417506994467065495541004829477269835834215747446643697765141799219172209442148543235105785191701917744614846968264571520315776031401098524701819286988632833007500303378961373790287311496133998372898258381707929160605889207273202387810567587095385645821293163642345134117114829617761612249774071997417901051554503227970077600219548811378504601645272528680151709975955079120426066819192529216522130952498111720123387008920416515754838938111082464521207853519195982142633363843609764466327240674907321422391890189024460617499093409009653760957423434256071971797658577398839093362633287982850318622330575670556733986021459375597920392108870995505248378324294766167761252113975663191389083468473819164026253921776423683519769097050924426127877005164180438921087494109251601373739260464159822922570123350206797926717017262871667131569693401398834398799326239998776104388300255424835075557588399714388424548067150785605067851104473608608610597126155405026749801039700559849190974629779784154800018969652902652200552809992165083195212404030270865046138993715148045680718623389131231556285302112078288028142436722321961501710410242023544349112900666301548663354601969239554416245212642111543265306053763085226795532726248780614417831075089658506712984605484185372486908302605216825774358147919881054901861399994999845025305707648260822875390174753666289410058845475479229561230094845556628195106547765966014343778166248145015682913748345701091293131416689845997170648677771795280393675244398461538583099683536614285114678008843624254952208600033252287394360629893522956495138834882710583688610381265899537597937040486165670777555899702914664531170836215334619443085375522374776053901767773233036402665755834442852614687205421292136985154754704405140193890410966762357752465633054297010083944289864413080892532960947093892792692693041537854096537573875161492705002980921208233713410947654718763836847795940629101518158728995578548357249008017240788861712851868651940306027434864974619524446257706596629054824073128156122253829655740646308771542774815356732496758160315340589615330718834403608095085053686458395139633261334270696578572317312823755263726260050578585812423557016469181553694405198317932927552673683087129570963770569819308388080612075518470324047171103067610038812789583802090626918851566090998584593683747735586770326720608909109119220016579089231867468013045208794363658503401317011295168042216400885849448259413771705495426669056284401204128129374704708375010133357510790981386061210032227961689620280895374205153775013853176247196490192167138764199845113503289249965994614965592205931864398968631975669918386551731927226636217227945909729488729008767702512409553972665819954019623211418752295922908862744177439047795840781709502169775690807617069715720735620315804195234070156266670720360666602738409422916226956208721154325150923644390656776597171528558232608958471434111380314950891834711612721658500659327236883205205801944488102299808180068050810436034830422604541041490547979691612921676341613270687476117169487758880248543022563990177075992928324905492107070343593651424290679620357706819002990241815477737296640341118565105954827878121164983763850318915944367350337422988490369780879447371475232827896490351730738280719118649115664066528901227059165770995874011444813748461612884465643852945582993335352853393870714740726769173422590541235173609645731292161850174315001310091844718459456455318916728405116096059303007921588059674072702538368921978460269221444440397408305890081218974815967038854483094919742780291418995437353961289377884266914659768020545519393706389362136515999486948768852267720991647128543504800670197350493083281561564329609546776984224777724823242206983932152032677761400000681991365669198229550358947069953631757994425769222991989926567795501200888044498332688887125416114786960935576399494180619100851258788206080717380798926506617913043316517563443215833001023976589053528375377584305519774391412284378065112580182051361539383011826953499497954893570821957571612170567465694970060958793093554214684779497880426826414256203711071700148530920076100506334060714774892533882822008900634558506644892047335254888969105952241793473621208221015583932096812264217150094160332235962859536669874777427658910162588521713908720029239034512086873062432317721170597544738134927640488768273451705932039183894242113891637008984356008846420651054990799569652079834802655214157870949691868579208706473660324341498994983962996640793382470770054480397476339046260337315365621212485257837523927638163086523725180131490996803729151461103427019714886729111404296298581536652531807418168760902901214461138957241341211075971604484582850961297869369062501241538681756447103985261358910180175659299627036185752179095060550529387012690141056498913953643847714942764785116179580189639111972712041286949277839033175301761272647950594996232878658967964996784130614085391843417060703891423890029751983958700000998525095695956750288762151328098008018954248652668069332198767457748468273656753609910621890356105672233556089884336864760199214610064715593473261203400648154815675531105447861634813260034818393351272316902285464695447200455648869544935798062272336683023352024413885275556187304886176949765748680445793791687066206866211426080147868173771159224307113620372394142691202871924680080845364554713840987759710823914584638744409650163369008227397445435271376585095582935618990109703972496474195404540762312400806326974847805700352075803308927556098395400926045364321399694977411230431751037719523285099002465548825203887627972849862423697412830367704779203447609904995795163656271011054194160810044164196705186176777761094686339995721048334104378931897180357173669159511789428367299403928650727007707185001797083258510266894130668484384111946276798384674027952961538021227267484851135059946600690350128730731231299210337938471793828509076598067401009280664738354871911137320902689151921470145422056584221293733311015063134831038792666260442492949893830452873012263659433712266197700463734416779438487814460866919971983162471610741556464243380730048341559288680710039350660254593430287517101670837629000893945266855019378117286233382342678425734970849984949481825733189020250149349997224272077775040337740650313135161457755635562677831181728089756543610937630835182498863729477752370912497593035670999240933212214085980317317230332167259977286601626444054821171127553656511060817001690178514217987153182923686349219157886259477171784884556391097222927430376045612913536880357792429814596939977686960219825236023548072162413200187059815455334456028786629677336233541254006755854800758455202189595323720899590513962359169908721316837609753023192476012736515821423532825865751809126468116074696302936648526707088125551413771840879063828244163917706296211677863662823046822172123396147703338466861912720811902687321136726808220918042950751838739194854412318747230266315997343435043752952975623191684903515187608942257965471236804556612298611222673671894418463070757284489645224877556562401788218761613789303918157789595706030464757376041533634537187380925948688261548525993298866146793874202089104808370707990585150954965804284712232419485735742355466326857323831875483485027535111655281092901150654962533529340586745813875649100829548231565998705846736666368643558378012652493459343654524989190597773279741656616919250715559321625818985925134964621418343773589827135284096346356657313805894980842412355092248957834199530406489339083382954507079582129823654782138810537535463311313327182923841890295389146569133631093667543296273189379216060960937618700045683378374580982284544899440817682858746798260889726127281565193754601678658500600814249011495606620850545747811322160040710233211393326083127161081225030872540260346797702536561077193701598249449547961467455315963069323540952080945554070736122587689903400928387015194460484363774614439771968395578594150318517118930135533685908011694902879770692126013147999314798493528532050242075958301057787642399422461012828703929844320242500416192015672281700773008423321211635382691864310741646909687411975608247885552985427303023683650670534873975747568019463586824276132753854457129753703321060242246832200743389003975365604064128319654484289198718150564008628835881231888616335474628591347172499678931897278651314243862200472768587955920262954394473206197899735635029538345680746624937393204184706368804697084874705913392908545616606203130048508241393721781985233721338682641517749048289560662253965019573436873194197625256116522986484300907798667206449608324197786794395124109265356853371766955846778916845043426505096536559042428048403623369221129637283398635526543137206426647120202606122607355694435386741223064170742400403541746331597783842994776522218311386519623771702184857253140773880123812336959686050985884292197163292065895172984777285822190928568252005186042967270693606353045202856780532596892327790269183623526578929591197972883949432112271372910035173250400469379109835543607413309857373720130707400474557214117582776974527204340181945875915263234409078016224878886690477846158802496695010512050554964943281004552062753811584081201808901014983401803211730789154245049861865312989043278043032036631863478738651516807919969528117267808548417736489125964583708800060149435085032341026712422172551666546718602960910750607042887827696485537073320931303987983178401457763810485226800305581945602798599922058681054804143151609810816396879033214341411607939840670184719616453012375272060976280385144984071093251664827761128620904749000796847067370739700869722145978764134367247156987108556286553073669348281314775194202754962582057585458968111724729188812522138742152728998422165238473350422117965326881285353772803596920508625676415503271681215304863431617327947507498619289505874237025840208250542405675378233955192618347985323173314681617594606651344488528631388840006661788146358464309743372010006812955292637902969532162949059010947122603879013595491915026367453644929642401372598410603256264865155469260125399827184486139260039553164228851431891620321881742668880822576256139443365209076964868553470399247368655062239909781489173742575652076302960851083444807680155480879764658851433206191892353753399925173151734559627321798358729153276690425455265075268252888399379792026404924341552871295530561805638496383064375937265811604376641857290970824766498245828156154755674846281034222929035180748964007885690460897497734108259309680267356935332293428496310177852294578618651598525397462914506982412274930258876139167929244198529242224045680875632607311155878923479811648835285885657597367607515193711691663333495785037254763381764905187558340612147393523176906568698629817359004762082639217903522048932377220805965404840450787113968025273442458404354348481125471511760310545794139846894962676729111389327735418420768096571538252947943758518713784486937612554522625362897393423233676672520383086663979073646878397968514033877593265531788072156838572434048213578176740831161412381241676200435500511695055521626277904874535258138593973635636185314744162096110910002872548319899214040688978778203222222125412870891614450770013363175441188130936054195348289933037630899109075418979576913159668629382445757173597521232653234336949754458714916153641367941957565636846584481203568436159079971261216739658160160497663330056303894091655274911465704538694813841341527569170934822172910985732602867089129624376603848699868058433129014952965100382157340468544050688159439480107399920016991837604117234992000052286785914140471082896984604033787502003033228264499739654406439136885507786065417651132319420078959844570734433913636062258478930703804759497857475578581207374848239244172567412408318882876511691784134688960137517033828204563548539680475320089357412788256129462177588511644354937417814412968270115523651582494243196745191516000763642799656678417219253089197489643813910480239426344086101139864437814773566071761586106879413968389323200971921540046686296304530024584875013898484186573306487248670584069561754367263162274982128599965342412811621490232653422211034660411495032110602387670344921857664680740756877973315395039010213104651249545568610621584276447544659239642505187036700803090718055194551200291744496812431477995757338335866834872501200985878542031350515421573743325648905941944535329067524107634998950798817323904331238510761943882942630030586753856670357496704138103702446597709115495382787270297054538354338076359625597041665172149233808260525334213495321417600469586521746805544925136117204383556627514432948232426948719554409312368604533633335688383994682348912205494600651310361873206691717651622874861087122892970358103987285268831217941507319269325543301370645476400067945417309565459345598426185654587821568539627361397042914347090799070368492852219312921847210641960310858495494329491455062613746665472984699613354473858688731321140129951190390569202997657383142695228478779908192644413636791347952609418407651392362244023981341342077723252793962684434864381875739824272032627044038646785997589743625434518423715457298624175828714994023568862573698739902730239053378103842367116951248437337687848171799400596875434247765635320000859692092553344272800981113071841923875890000198716640428795609002933641750127296563732040864910835967568958957422521183558786545394792435562900309868561509254192875277905183232780059531756070032339508936828747516691127554780895795643822629754706152378557773070104444993873745604099252974670386586813335491940346055270371433713820025079886049311284164158812383928945696941021205271445645213863304683146734175994603405715769409288150895244613765583405690630117440895196652548641489265509932977628175855731158472716131657557358631266389611728953530550996671717209711194270143847953765263198859053432799674437463595084932057998503484062140039784728487992286277825108240273802662966836744368910961834832823587897954014418139421121910224775645906839467879170767594436729810425355355857517367033069411629680501184125133849629152222746290851511777069268784502398490095010678357292480931334410811962360161685672504946404487243300905350296884652399171193278098716438118633799671995818463125063293471721054671797502884255793100431167577548053375938294660922538602551234757268000289142915220946225115588015371704402524338108395368490959478311896914331119443412785950018048575603920040445329454953854298000148239934657928073121051173831264685850365686750695802237043912452398195001879967941265721354340673422796729175294701052757418344216251329437394168481881256122730265412550604780506188800314640342959943925271726785014338921014102388550662666857505060207064404728221973808308350426879329922330673834473459513806691396300909673410854251037592473802264686701672023545152969361970509393717132390745600050983645306788484059335423949366561501991374412775403866896128004761388770121826195453146009240422474870790721024636534340691097886944367801493360124589041106024568709269793708699467935826718632471581290710051752400474321527354503357942364283738194791411247771943773742210296806861157237605249928336234839130739023038042321421608028187470584791339266720011393457657034774149694520488812951912012858556692609647081110104170709425847266418169655062041037793236121181404387722827390187197112984546105284004698592774081840720491148484080600346544665083869647023747713269805507918477327602195154846671134880149664924946773482548099545410977295900919319486525637013454762194396821485737390978921668987423871830453160964890482630094515625157191539310778842765458292153500504363392980828513193758816142480387586047259806328555280863721289828846847306243527618274437269627858235282392031819617964789369254832884257411043960287469247537588088306235580067378251437030164157625309980162367726871497163025552553828125713852423853885673209807384191837826761725999302245389026124695662867822386499846021977223955893550782169171640989527771230899723553060641266951624638859393840868503438366405575001984981261064607667875425271115283329931047664156313717892188523612505168458428252302143820206436377650805376375512015830105751976203245084857314645609348262453782316340298897764958516484910171453220740900212894083542836849933055984976217581880714465063330416546485094990867498488565965012420101075701980433162344558977861776924634558649638716374379452413632622177031262087150052303283659158652111236998829260468819652667989785289215053372170054547233976043193602322365685100504001312385757359330584797128020632781947336710816371140409271465255215377752038631292050111972923724869399375169619121435613356441835982879846206584757925238505172328999316475449053639560119222358386321803508826118738746274260674994488888032874245223899344895783780315526096508792022376210467659866171903174095907729384485484725999857420657428245401735832695311465189542059522434690026440220397662066656500170371826362857609064227547006365342430819086621963057254563567889123243566924649111074098158587700552222610565845062315353487184936740001510777917432209415314166941623709528306407107487390881305053565782716329759017366557068188258240199941258403760552042166214652435069506367457815101674680794077019678852444265982380722265694398541561518711805982322674683918163241529527988882000630690946646237397077002314303539299295676626982607854632096030825010493911152417086521754273576697309941469918698760769201686056283795234101382198613224082029036607689222901959036969599974957415410372187351749146070192139642114768595332966446718061643172516288044290059624638599778781450183613748762575024066971380147286317664186332114300414938321045452092983634046989207568631793567044100625221669302633306570602495997216869262906564763245612199795353203697828824434099535887552862018825598733576116601716107104232478525043872684248703120288102431270741091879053755245125755621693821226232878160645136437584047958500943651988022401623333829945565927925731053754519791483642078160856192404440354100980746885870682386679307218334681972080901502625465627830479769111782216516840426855298793433271185766147725781953646819674885636680898073539893986503040843960227187176533968095031074036940985789460024494621721407478445244501222611827725112164595565112604514684602434008676120543796193224795766697975783807795950014405828710390742887735660421487692854935304008408665745631450913566953402893803147151148156558507078691951304372472654914805504685551026789096699492107211057542477464949062156428046615435625066112712461715137995706869191392077765233485076617406899649736207586605597220135078328225981507934945103733080902993055815689756216923338395416443713444892971733810883694328098272771652104507238999063499747088489333993208124710436558846206306007991782939637843876655113504086039790449809301023276189996898641214176443004912185090616471903481197786744167010210651113038733894013450593853258230403667579756932799273417845634879827778107783030974820071481339689549324687500424572253661066710323088694597841800069425957919869469322591724622670047788752063859167919706696303936748642310900057539419065958764945610180747159265483583434741682660868105125604391436940093841129546786780287117269325557681702491287850163516204401625375260434609419200675119337749700244160022324343265858241855545688048984438908045390018855480924480851380466788634008233896513560083713313877417705127587613673520335817050168148624294563499190565770373493089077545471360035533648772509413629990915643811574995617100986173176556558761120244494646791133757474165704249495208826374672674799802279490521953274645005586054861715115560555746456889968856489273418481181653005554225263335527772847515134292340341977090602852120800869666800693447230363782287084647663944173862502795507309358908129464895727784535237671947530514563276159844097446692931023271209154526004337675465133828162815640599993022139813972173345577200870717228112754387660288909728544959751807886605790373193749595586952615193985807953650511830781601066267772480987503700781790837572708684275768794748580835258490837654954045888404047270865672511977102690998799350018067229644754059242893701581003372249919839483286905075565770999531547358138198319295768399779418262663961880195081728612533930337774525731360060315926263608174903211952192107212323183493344001852984487120790046028425144484425692432703390188336444594997371870725769313291043744709942061641092354873864626922950621804349047629449808491088219178134899396413298371948175157618375902126203920158256434103948316330435795657158800955773280774920217544159869939888202563286627776899983816476170616409202081186286185104733826209026716063086828584394818637976377719048443508445030400534101089943455233081842080502149279859499102228165293597123338064200792186392706426011341941111106343025629676742510811293369338737698332587992661080396134772050239269304819772355568837327389394579999668667357702936822271727067657917562695402770448012857077726761083826969633283958895996627256317640943778233317036315586785855625399715220746899928298338526802396900836561699028457980206735051321706868729198025018253906405938331727814403945448198494295765235983975272686466970248078377272874835248892770260760327011844344167899178428651253551272950753118791012385032156989127564999807356322991965043252028208153590844956427761712109627448334234777516223041347648287576174340429991764482336809445224532225359051662410367936780160640674891648953994191274922123988760447385609602890324203250135906110311794161507847227400944411670529349077392001052430371369353878548111835756564990902706179374745319879148103897246020737566166082871524698756421476580827145064660616976033304448143514369090905381872785493690066715328226840153952048245659758333410227438981604232376624017425656583166581188755446324096386032798290459902559374416484840532827820569929159962245479837243219696377721238744187235770193972659606153826429666068179710654842075854702416258604044420256921754701260219416139014364595080385719602377167703452031186004739407212064120111048359608872789212032455723003968401918648334312036730975176598443723293075827242288454528996534163843857385426717348180351516103950305194457517358656758111092915305711048295064092296194487706045618845302757584688210008254470128720846895338917249157914413327798099300160002990074677437007232896698782352840047637370415006584859648732614966591529288882160956903497418019926107692489684571027087276961545957106167887734698958333193412485416234640434114700965575861408816515744923628066902404523183838933440281167933797560380393242238933335317608814951255283871277477298730171412872217311690862069105042043705645571593837868682216983752308450625610122989824835880231056335615938888594092652476262855609729770443767658905802672032204833096689737638043413226406748483362998941145383719936925203763010111104600975154318565639500815019108535281894330522606721352906160936192093091804141912107316597214356178121119302341700186844071182012429455026426186249006725510215092578232681293436494768794054182158075730193467939126956822725202779721264090138015237750112939252139450986923197624993903963867362474429736967048544283291450990772485933062225179960243438212771992027873434133702366466497053567428190521046533994355352438704888489391961943245342331090847461494054729127195357292355901371772324043917147385629944375403187735087533051293232921115260498294632681056959738629535904579006834218849643333917619837676563383451228362311954709298516578523631742040109681840438758012565536687247257828363215196103383626931977097255840976548741535590187443186080544408355839861938776759384849731650870729177798162401168327860919346870360547671579546265800361930272992078064319228933917658649236716201699089846493541326744118510047845607422492876447324687992391911112948118186823672183453753233695150280614671833546230838881611734309651548753007838848764542282403232649532701255629999610921444629996868364722712869940694797739986183835499514187385477651766270145088444499960613908204094446511585666790716244011425547938699879100179865167691047646959457590849834103998027769401990896697058817338877354056650593320165650286185882814840976773725323082460577969872244655332781421009757475427729304102399121438699883993958911013824834926794117544603143630856783369924439910913384922786618426872755433729391129858859424251125659607367052551686581084587604290401507912589684495074237112188348632027778275576590539623223479289204630515467724933814525768071438153005981978537114239665646785080108809505748158778090774632893943665898963261347759559103721427512888078233344623790227085588255558954924659898742217604392260936160147522686010196084799301660482149715811296029461211936951090853303542252334048545748266317449676376301797071167708145708384595511791463765928645706252759138044887066071146467498374508669031687287131647227113400958578909711983989929288706065273818948730171175318416131564542705023517982075963638037575276489733772068715544302106042528820067161256651900193678495004459272261640962685237281823993814035003260492437366099991465592685011660943799663059415102878929790758400006177293080301868630021854634199654952296362079035093459158976133172866919651750966373492062248265491807866097852005506475540374475606053443228148206188788099570436510368263105296980795489783736427507974829691862648630352906292630576127137188014155469502668399858673999844497587842960271723357613842452014694633412321321679834204201157360462123817038158274298395124040713288073862494851134699676556860239658041658261478592026954985503083808047120466330334298688798410638193469041145433747922263590051596216024930859381441852048832186772032839696095258242092171548832844054474940562519550667930936840812164251248740378380070284683111456095354647106714738303287535796559883441302430345431278847365127093200153383412259449214986420828913886409966065381513995110773241322093236632608083978041800176822216259158669397993858904428098088908763481741490734175009118088545009519095303775508850710924972715530582186603992210138300564737257085413440737276504957597479615817595403204867579026812017727257416182781811826362227346913695448985661275911810176803664479163295188809815439738345940694863867996681348497843119761630657739190704986492273879918419932531982928915354014614611348640615521793895590022728165865711850721851028593110935891337026769504755239248674143278671296904644083867944023177300801032697200363269873525202440387369456606853406498318781307546601537200471516409456746947911948781724677950936445256879619616526616318900423289351583185035676333678029027979250576335893840317367721596684018452466982867697557506887153488247866209815836062043038440067482636866730844858086147794232066983676398751364324865803998717864116390396929098623124982614937980005823447660605638122625049165348696864038122800152932982122883676707731759264019760338741674457292814840614597427446347464869955585744758435642584253518304146751420532377616426158045115520693106361866675953989317515408056752076768565880138405204692064774002660282945110633904407819353275509518712780352260259186917409304835794762311457318422465542867424442688862765284865556912083803849648310139614103762684218866371498749960027794528483830670882283738788842787901359592765315755398929078842494749721635315324152455650733945759675042875007765457792895138072976920522945113744579155577157192535023422926164459619073038718178715539605313158604602916462244135361182501298103534697449258576437057220876125741439057742896486021232200510808699222675440818164250367090110715352446573166624590507401289660886565810438671648982756199094406648167784922113195225442759534031069283381886347717483125605466358006004845332360136948126247127307036802488912637528829303929327508254849748275542720644440442400963688123643319710165465927155257615876197243139889382177590720631022754848072506560543631281204184143403682173416475880234480957372736407353476363325040629924133909382050774309082114462695222840755543516278373519279727004968208616750787410907675597386264732516956641217290514823369919983875272319709103959042209991640040351590262037317002860210604949080790322847776700912605230264566995966682287340410209076351315443338795759976302030785303298146588492080038907028414076826094408967635210867469393382352088985720454970860176906958951434876363753346660798899780048863213398715450812565269546680533576066816327395287064574809998490244700976668940092135334801162633978348620711658066105025648211436488374770756623229383400429823175696164255090228219415650526780704550872340794482767130141423011920068964721468491108097415426558791935339925706102390396264260664007647596955148145767688885701477613039719567388045879969229588230185735778062506548632020188871677163617068498941558742545613309965083113166763236907661266449101406285145257163666772659246736598836543421866841411431394762417971599654231884989046549917836853184127669191645156227366282091025106250728900002466697605808755504892568171825218595596894049288395997569722164343985149417140055367402170682602082708301386095999106225314844411771895268088129819210919180426778141713689983815369693842192140660250532470465014965606351198063566127104884013939550056624010948961737103282026992954585944459748506380288939041512590627048732285715007654783212060950416162464855688470598465878506328225757832197747872364557255476733051353092944941396689066171226264486848806810551909439932332172238299752806446459161058076049692919502506928293831379966663239849088228841968700113662269298685223082103516922566204971894974345552204208724563556931930470284070784228968168019118424808313415756708843455510224944797770259203294497656139959708800575575434651953808142904091464250540592417013883903491043783145903410953498347085449989125637666171765652086284576478276686862176424729446678282498878490284250947103068575357958695166687178475879363426737293287514099422362522388560827243162476694032363058899888951319412190857686043135125374181277699494099067479009716139279055258501783385436422280053765369317438752958398374276590753518777837511750372023455777010489352665855108986009919334271183345087890456301410962056247781231517622268019231361911795918890110724107841766229074845444424690260464554641490581036219113290036734894785161881603704935567840931617138645656133033705697322604626653643594561721868940711114536763272722378667566042326871289944485583950590448264685058489341637052236265353712390431163941452539094161418313569754070955753654581622963181682367249311533245312057062355365080820133031497694388628834166765928043112813552425561499268570444883630064695209635633545518264682974608989451577250519861323504061990594176477117209146346890661702308989186259807962702818612482638034717171630166077162802870951831941716983481257870325800146255721147910616713817135939418596078070344394389528271119849587474371692645156852906030558758442847084684628166983816104838102229514237556575969616972250055745112615637735851354740197672753427599554899034343900198438111152831671695775346360867678662110418792768797848024547063791944650290517717206964888321115111514696982830233011828232632658242014035681295503567702250081960521067818003814163744640301568191504208080267903474397894809645928422761393116750297116804926561001307050622519031248339391467237090336094640024097462891378187225857458516738833158940847995936915549814916024692571335049263849720306787310868073456172150876678117027167405440076729798137617162953716442955334090813512832055792045341266282116181822131782005063775617741162260533445926343730506314349912721850994222978735957696899613100745318232589703101666089183800075662253340222988631755638642036273025476613699984444507733527601348045433505378747763207610230754173884396262124535779041215519608481976568505178644943043018381107887585243647082921119329450784207094517633664661778012313441351356689391842556914016007783914515334832035893857201424219579977144277506377250664595967390855500721153837070163468574347630006607718638213889683942964493332478121610671036972856825698939721165200095867029924371342473747278491983502399658459575149059170872813893306215556001787265741784082063238682832438110306352755950395105644499568096587769269987386813119812656099463472341269648631131249033828732807926721234874497160713592202665463958702919320397431950475064049631840510192395544850766950484481721409970798079916295793052589041330973174289068086378801733553141017679478773584224996847980328090448901494897776249143074645909441292460356047911436159470040003217946372798955803212287289845796122827077645648649113339067080996181589232352150255675615377906883557353396159824693339350643991759675125718352134268039358157219463263464029384323490866166115786386399908267685496408468236625055094934394490738897034003360760202105201881506551386252858397810967787281700594831429490878375037392922131344726430742473731515562053133272224482708506995179530587685284960181286242984231360301771909668411649413528435075113668235162597986634799922775377229273361959699000344904707907134716438659887370834265615788374037384220607061056385394910430891222281713785606111566515486478079677552473721158330584633569033177633571052115914433630632175634645128850289108914404163952129710053945157761313849352803803397768209003731339599499682482482593093264815396574395151907555675566086539273372670188484698542591158893655669051355754623509553706029859892356248909437183727656005701698365873918749304234902143133988901616638837329740169555423548901125818888041700604152195756351057908676040701197650035853450291557023386186142897744178475517897433446863964059924254477604479188592774727178213630966577873854271100499263699938624927371048051984939083437635945882233661176679221390254872217628098478877116772258695807127071374760340383722014143610988419651259802065407176710288538082407622235816198884211381333088671738373875926930165316852234946437209743442964517754608756368349721557989158112046385293816236725177003638563975098024568190760453927944378517051407733590830463086915299647605961833008122921208922942502396387791984639255635063730657579148028341772103463628429201780772050481146986361565449013976938285574180746534447238656791907113314934160841058013874722608353907062959676212958914614567158877176932481930620616651931782396417887218045670840626680910922346095772835725185266569500202243662876073172432876030632870756261625581837300644154991826358410087443617395197217908054963734200051939985442873135684830286538977247597827529982036947307282942354853740466820484568703425398098341715278940588050088341345228373865216497111338146172916266929986042421382225101174559131603338726421250598045415973413723802639402246890011564264552978050788978318161394714142058549445888499608356678987987644939017989014090160908579347540253463524488418454872946058343108563832525781000094597976583208711537097483255674786861447408651254286405156361118749616185909266323902328647409822895477410339262378400858269155085211757721838326095780038177444312941960586721391179767482184218511049391871696485098842233957151974751547591267134708644607440810321092032107676309081588949560745156073347655904543789573216308816069684131989242926226353984894728926205976846138840757021492189815579549021174080873631720587408560384846485706527634280662511328966962471226504217492457006936524606781850707891380842476751816724684075687993134407812696121421298406082470687205993822726729635880779134948027135512762898496475540397625547179391138598576906298838530323691478407619307026840806668883375372888997085956587884885377280421999408406254323795875204580513601620902827306135318372440138057510344976074535292422175581639476047876365595122290947300637809289385468506542727169805528497025923355300825000274269150021439001790125674696327413614034072502137588325567967586339215329725280382693099580549009025282563236003887885641107808809165955706210436832132269430025615425462731398477555917284228113054637354506133965063004100072275873656786049165422896822006801951064307408823045199674857737814933458977888788448699378540106658612432589920530692530345456173971853867473868629238678325160155024421703304530352254211532136927942552931451995165369209040768714673075400854393318176166349729332458826688622961959081356981878532477686865731761911837108652471652514706653704951193989940883379545179017282875068703469877031034739639116483409139432011067378218431870533796926517549206972387396918090425862935898465708741178828904409050341419576245285551782398491770361180849334518735684619098935674360241396353790082984160105065710902300453348385031822011392196324259554418381598398143319772425394410248569978102455240907284627509020137480337759718624818970854794011824538114320292606859390880880270265470568938056362101742699751865199143011436734770185582007477401740813182750469496597361614329063063244744419282475711949979499035875606854502930542088351738716716759179971597076427018711973588588128164366552967592725470578881331594650320170769759000709547012279669239032510998310403724830225118297496170205906561229100293023670714245409283319608088587660141870987030457056404766318069899134971472163690756885982576870084885295831741916859274457453083789938028731112595708156824556522875006601117338218864208403306448217280866652185452504717518381756920392126026277532041344718600772609779428901776871537106371269276031629840264846610357486331914767397673972176705141906231709074632168273950259602588424254899678426086842764203638824160520167491795474292457892932938702529937634424041146929026537501764497349142047778957718619589529688404931557145478411865816645035611523266391700829620308884109645738036849173280629137220627182862573925235748851543726871821428111139350126507579205473804039452583908607913712836979431394955925331456109507552534672210387060208946182198357924889194249599349612479505784904541796306537586733259704586660228895847612190908266849894931316719313488917531044955536800464472528432327624445428247453311685354663268883628827205594010498055402250332830451462598139475384647758461528839718828186439367150079115882418122937068031003826787082092588734552121343616132403301936537102770203756668923119756739771942752976674421011800867965554369481053594853641245476820632300245728303061201716268396431077024771784547746078472634263342099176720697129251859134622186644107606716218679337236605531198819779367205828228440609026269648111711664532010649831889888656045960838734030628320069024348407406643868631641926386828157340286226288644647314711222976386734800364869441437347866267928869724884351331007408417258894979695418849530594929851184625122567144198512293119725992196227961711443825600190222056665760894951565425593058229368297352531682728606997324105347964163214471093448137024725047282848079153615551819187538167467363827224906647356852569129745522547152282139535419930439458592216774998533952046154064488085054038617816849393283407958197925283523068614713815349949136547987043709630813881446634443496518024326367551295957951616062692076015773086891446562623636548191333985868850811842356027929027381875903504842229596696811770226021300726195460185286104284113301995003530024133793599077149054792970617084634501090981748176954053044812905275713042801974874432720943776988831646935856800249621880872941043126004479794057719156519447734405957559003338584307599451627044735898067096066505891763861230227231416643679019311338410086462089475540956886849641494497937177075901188784546476926075445091178218755179873860517610662628000009902040781668479306016536537725878763100553271527040552420264887890750259808356254582302413445543419154778398169875682629197333121239407394432827304522809419595200899553601584933645508094201752682384208977459444281013052241377691833403110987010816488821339296004259188916542970467684318131335921746729522494782722085824444769135340883599884425855554116653393225367622786466402631246380733396767695000890377266732403282092844355229040781000848716260542585938872824947088593385657222707098885553850247634234539679689795612366812374474623676857904900887243745617380434320132180787335879847973156564615879805414386141209564289221849629718971236919911353442470186185298081483925462463551187248301981507452642308733775329599476601599193067960346539039329260109253590965318049876430776749770953421491686653079175822608297820215636183725822280247946737152549550172774647742370442831906141589736924279935190869466169677345293080433348847809542008459583022743066969996247494633289214453749116396521969888630719126985764783933984462747028107847995154959576863988537777877420247931132380466943605531272387611702462003351965899808379369041317357423028526844697526585509533917637103328815757633159478247376371952943614523164611518425222224626711774117244420940714952739965808673641330839187577066040933689040218540368902986662985432382201449787663213629336069290191409771318041963571200852173039696615301646179167855282905141242478092921308070878938992630307767756885553801483281485746418155638510577539528848299502184117285414939427681834911439538076528892896466603383445731044557112678062799731824586043675046245805830144395568548681386177152488820394965013424242059946556393556452360502751669164936581236076203180484842879977703281909907008261764501311859091760342858954979727538605813191273875267178585049673304072595040689309520510887531644606367908515367929675324396331977342055318960610779852532951680417059573505171844712428420569867445338887926072858431545781178423555583662785700074378611888496706416823494471504313118387730539210626052476695097757134397953906253858165377636592823353524630405839931321352505318131250753438247911437093703391485514571263043865862836807447837268025657196079595661698068271336162190056755567673011592344383345366871298487677174293378417384558517959043088668493199291149960383879720940704640173331399655997631155807335410729049368269420317309311873593110210611829673707210017142193607677001159333653562652577228620321393969478877454142086043469471895040558905175014721597105701914350424963317814854744827599446411236104919933952224148555823028797076284623285386443279678772416434552458794612779881042716266779161465853020479457143328269432047423962498334725014506107965565858926961145562835649885457641277855019333564630134690209486877048729298345396170565756143585815185858339812100949821594261100717697770699637823345243411514213689785853336438080055844610725163756106959845540076076755911175279758995294914903087431943772640351403406552298421384528722630478437344682608909215254216682136218275899910721576094896364034295996885062324606327627782821160777493166185235078911548694018777648289204025389032053535590691672920973943607936114935123052196607689948316091485783416898358877499998126521073882269272176847230018871020668159176692747442554627806450547258918580150465548392724646834990127425209775450353557945448854249617712845122620521221549818260499687088857146489877181468141033469265235248678984585164055055964356853517391667104587117031727960818710650203042300408882200317090327271834775008799791105162611710875563346735280128719391812634926462934780887385649315394909307696086904620265583131495702744152162311665518059603464157156003970245633627778847604199048800208517520426455067171721910845184804492107604582907149487460525085130025151344427851167055510246175814821730159579048174861728446838028489060475318549611278772257600374162599405565895295294541330923609948566835135086071688452761334532350679485968571945317646134743267702481228792732644329773753530066265488186477386737011696382374809178048642251708703818092372841721751233824985715797545205782003859037887447953868232955399457292926799606870794316706681341455834467620509218601077763100368548025223099131384909771521891612797782802145328552754538917319208364143280007812363791752526247294239444727571768313364841786427027807161468934703585562296405336111294086219388702424920684045469748955826650699544391634725765705259817619333213390049290389956878839835134858732431638661953304323511625253787573582116692276086288296469295862831442815710900765412249840172154691340949219868740431640595942825545288579351514020329874041734244521627483442778435457975109355180315924765508073221069090304893216831414632465856779655304973665591027041641070988659877253790658281200244045270321818820230934893992964843453997415743934722366894087528076738866173394683523170672395778648697213258208799628465562013095077884329980005181384879423220432283592004203353167954262023289475219288954284949411904953573779385903887147479530816699115718046678161125333657909752100835923516158581846254695480500673114784982788418899615044460138792180479373914107117986898380658068928151830303511526739494232761038961627134304046116235165150269475298688780448617763527937590270123307445772080584347977068599971010331496995021519460607981988718959825197278263867029307067530640163935479667328441047700683957702455692496503489929556149641353159592166040042073430360460148557001729014078099827590059019284553970404155246093206131037235192572670200189283939248913397307895206030320522653903365880281516509824997010697974609558286699415616586505252963330697436668872684929658095179748936655751936421422269962376980104119889705087437642276206743236394170768836504850197011620312516013869166155675150526481958538020243920372659818232743024759171227596686030585252786716545918347060016499392837145652206741795542005363394937815406176470097048446492057550977813713661268037335373071301051613916007148850734153965934551859751730359917954888489432087633361845632709890859140658223134987460704969595820266485190756732164832268692863782695202630366075855835910580130377439227341424651244721661367529132947650984880680030668202087141318087754327648002411907617104381229008182638640257707129562950615190481944661565956243919045647715887530493859156514016383959414209583441711893803173455406078994611343849186185748365093971173468560635834078970541970759766350284749928105089372602964206294112394644967659005409353364992078985626825831579727582812379439022807140833680084673179530956211071216290939686661295325535540744710388644471231053948564910610450111673563477307046002735544381032899726733520606839874284977068255163835173831428296782506100781219074779618841369114995157431264296634185980498607558059056747814129015129365231583238524353833943823345719061487277642467099122383507900236930482466887795056792499478656535879701815248566272488680468721460951859580557301280166504757760976008252993221000224153072163085380277965307881660695519323272549315365974269698789171063744650878509281568353469322615666087696239867424417905417862356189860436707778669680674835916112546093884907602561821788656287637820760438366284230280913170847933724309168010549527479931839070837779033157607287337620674683342206830750454402504364105032645857253324979795383058681353305828104634393952099370492561427251087439754991013508059242941080171777231942112585401164438838596939193483120076379771946841280141647443876146032063283679830373696553419178227713709414742765367417009032835224508085578293563661181321042864017524891842826147989962202812711622242997704317869107027139055104316593327759544166213886302694336736545438378859234803296483473850612359602821646649164262627714106729015314741372997784909242283792959877054186923138663673358220884222068879087678903454773956364274632801323035886869145484576069863746738287185260446941785831486823154810822761996502054493984066140039764311514604811538522942072479120323113279013381971831922402825486771406331341335396522612678594268777140100184981448547710137938616324390798094463251575302503175416094962854996604782198293196508124395853138395144007995566886427989217142351233400483153086761656195879980907015494922538105493059453407209126517852927059454890973298638464567204161421373694136765938683437333890283479738686394218790097360360960722235325010273218937446409613406190471675528502982404927227638641698920159610585409507378109611357124464160635445046123937458879231788759646674419796165823638718432830459260602917378661467599023850647532131678619050305438992057133282108122806243487073993439549435870249225771804386330244991455396830603852346214307979223764785759314783651451144872710664062071824161503427367255192664231308973761407626985273082922395438057367706512293879290334811133964674779224218676302081863598987291737858868373286185532442563624205122852641108056727010652999139818368620639744005732044177664822588061436582847996989466955285396871295170007806940310939990121603124583873779669470152853616447371727109819537980411208904398037759993792102312300444809078259550169881699325572607995887254275317725568718751768296172492734986246910759067561548997202073429237875865193725648876331490267884104994175899650906672808197650916325786393562785589003675420305709330479979595529240814909929003787761479199584047949212775369418191106646573775169050625310220570691060176847275503609982118639930092814925627724097393111758748067308913233101463737238275444684210474628734174793621069414046883079552236159367282483055209061543525764513480349957175418083591083340893720204192712233043038634346380623454518835449889900933466814098294067800647038241456312277773408124506174317668271673559354090805135328075062995283454857648046101174037296705724476964279917853639265815754450643477385120096484625062598623009584567073655427282266050331564043416362499140688958570900010976405001804948484358264356692758539214689202071401127583607832629827577219407710291830690037372133857700239977421254200190295500831715625156241364066880469630712740269703857611804691882178385309785317021706437951238611191389438164022159237871900746915745976282248230747754100801730193725301825479043051254784285093187345198540968125839269470115863189407335827543238307683130364403030318864215829375181639712503434171702303029176570072026991781950669335820495238872149139419226548135616382627707436411667519971532904919121283644072945279558687883592292750992383829800117107970529576878900945631281365689006808258851248426800281415601803348431246044518685179827780306239259475978977970272332223846338579966267939075276263855198241848521637011565588950188332140436175911106222301000565760991073196226942381213152861437068051294134722717047788037115150834528730621896038307458915168465036889012626977559319608782616778963588253916451473313601849567015162095244270939480828213821207498247326871664616519089544984384784770573073971282016066878774196391937868977193959245936903014424345845572846187704282616762922538807975787794327842585698491230774048657770466065487342337722452902520337798257888075120148345322045595416552589141416550211738002010732455561118612404123903692290842545354967009365735851354413441709909017505369908115400472738983587754024552118430911331089852272152688141964308347436707998103069025012617797191233396767072659328064246734562923471983994852834256314518727089724852665136156109677402426977693327121032994239212037715487686469363694965441360238105095142046627017913213952532777188718222074175389481534999768702575186592278961938056690915309895006421544857826390455805321473434390400919914149476859492247306202129398459966834857494728164490787547276770365858604413063927754194455285904216984276551913975146152643937882301177809961030224767644253592362884623440021479886014141667440521246287669417355242355742486209142472830551441126720991030162912851740423150914104356803262478056147677745941982784902388010380514566687146000154013455055266249269069657101193274231341897342896576766467786415372784756724124547528107558492801643720767765792146885248601598235113748629618986037612729745789485255234235122858832800943961981147747957910307812639981402420040236622501000075193961326480680168268969370820674643723390513906086053605810427049103172517301512899720082454447974093113416925517849620306047226508058289991892381419391153121720422299387813977332695023573144449338331177477698538846128506076576618970534353594147874282301239099672402980897810343588618427469939943796697769555524800272658032903156004072305861641609858523847643531999453695496188222143580301456008116388085172060396226598878158792358021215330295382534959973770662168715720378616052117133052095599256577131783165982405559489917418620101954106642400713931869597360594892499178341280541261687998385839124647306923425837037947364043097876165860230939140528590751384509227985113536313117694640862667431949130599734017787452049659887364996154205925947529925726233119145367082300403992812847826312571407910846039295488317637859833174417847295899145485432599873572485421228876802174196773460787276630428466370029762520395072292545104604325852545076811594673318675678333564929759482347530507122507602035969614612021944799421659685325867995870515286770735547626486726892336730703041366882494555559425227902012136480921905425042464532118057217100831061859641156861579316226002064359612465139039869316346520044933898571430817238068078405940243379118150108045701029864151274754651341006583410708356078708019821674411782324731347886466027671463896022571682377491546357358815378297391583737364213306729729186738851208270306931478483666984976148262257832174016922805131502883508828739854914944285642434568513745847736959156094371736820706931731805219613870188414647469084779628499501063076925767075063241771200615494942932323573320031300336567821805640449933785910911715743028463492672792410875876482711198122522319542436460498570356341697198174938762968220708555776356517845474957546752791737013440723710768749435471683196440562587309575362689765007368168566882278902592674307072801900086181090073628983857908831725521329903850555646130255290833560771901401054244360607438855095979912584289295173429842274614052934197892820572289640185842167204423634740405670415674835758517854226690394868540297831188645688287554340459576493162950836126603986910115656680064139962749201826764449170756337140964153158245376062326744499801452165256117836252086619426825943328772091404556521654544135652048528193479750762795473967064509791155673122812814678510743387585670817816957988837986021805939524426104665925559506885829428188263249010909211894549343700264048687660047799389491674316701283266218203056325434211595959366819245223003955188928543411031627399663320806276083904971188436445151493799696676522127320275066513131741880771992790306015296566304785686465120235885430607134089590742296027357400779588453273592167061652107257353255922750237044027477212168918605685466646657424016285280123721790580186772152125101569068791015003789732623236288738018667058396839914740297996376821958731247693793446117878286652490456731866090562287462086039358459622077088206523086004068973974846862041509321988624143807950375989362524595782696595754389280609167339858599539283991685840446288140893212166379002483323012782346818989271851525780507457098610545824107300142075075964835361984802996928423304607489226681031984772967243999115897419717660335173809530407022891602424131513607234193127031522620994283211084640761101599371851226186895318817649270949722546905186887176034990477779962920773651132355342988431245134537722504467515264913175916901396279368235804152550647081706559080817728780115019448516909410654831609499552398933862645053586985858496140938906029080828665995914444604798424774898606837456849927829650722986067506034881110237168153220763788789577259531211299836877221758578225963345118979935896839322461083924760687276571196703366595297007351986162201724423757089821168016143598783736438821903103814156479461482352575609486579222905873791183208812906916664703646383821267199784605525501913723261243687632388328202799874310131906239786441068011355282637988223910744377072099783639776977282687343596801326229037607315472864503758358553617942000398479272266812704385427323994625983289837391710096897896750880839440604249570382522784034660132541307730767680327096472211735392979465444821178386890065453222550227179670958228140624665608556736544853976215908727843091414797138151111157744746558372341471814310107096191373740576847221145067443632329463824538690924774566016242271879039463825723821438749858783437516471231282972828469438919960948760545668919358241849024222314551882880199885005643001691415744551498627744947940203724463613809921263778774630691105362498021692272919239935335313623248299890746119559390621836630253605967595044054095964135682978636623195280761172367161720747929905310048669825147544058376860239135575352442795625103690993304657713141531789513369098517511564212990164691843700601295608105299418430295455006485637621713491684999445477678870717305706707538643620991338060540174415326463595136281887011002204159394673651854188809920251118560872428936011133487223534702633929692384959670479521735335975364815088909335001232985907998282418434944037880048176459752609867216733015532926201917462771705881865706179879098368462376020503863316818561108683538870206347601461776835649791449455831073882925688113980311197898378765925444865236083441107496490300580655801284220572360619982852046827483080394601140151357673165687161411449700230106332205842144756348370378029189792174213357343052483176612791065983972442901062065113394928850409027286435508652608600334786579688091691505237894385200262007241383378093631834999201023480185224017667396701482596986900269377548876583449647163449416756663706510089509540772304503766029575004147132119114939461529632789644022738794835660532240057432344863614400002360321925654397039551291678353955438075808612464851524348759350474368950692683267454437994807290607854821289389100083502526028789424705902053060951125001930136462210226517045886480932893930179863529340431671157278978391155893387635728267209704925102559291099159327485353132016948190367907146654769013816997075356807236661836565894697758113333056705371055733336767782471175086950165198431265868506738728812104038524900265153780088866972015427045280654211448047823954199954483091633204894510124659965539245695360963353978080364487387060825247005588393203348078410032697770304273293086990009842074418581857988551946923611961786950035426934557454371992846352916863734381542693748709730624467800909134453110570819569057775389256925700919674427843034227153271592763718577759280267484996694602045430028639475944573096988679845571987327447785784434829087412752616062439863076906022803401490477872569936549089040628419396529665797840626922213413522832056106940468004238796799749648719763782801587136033686304507264754845311956906430931129647329766834750350198752799609162843224279742590169792874225371239189728246125733085590861175093445044743108811733915213665984761711893127089847942059428012695487206684747021463431842729009713607284116067715169951772116396909493784344840659910734680344739210938384727960462498488329928152782560404307736769744916508498903673960956201215302133353140828916925744366976148596403849112973704256979305793960643708104971331866910990806688591007627127055646260814291853978132333112143003055445656220097847358109793558807805908787319137802010701008796873042708838561111391875384478754173689755436770426612644649289727454618158780852740553468026506029333769981243091738506512426789967257372414130251324649711403624980647187285504234381358698179965166029763591919198440229205187085216169609566385863043678972740448684497857302721981347896752845293865360784906421398679044800383723742657163948229167497629421492850606933812025002157201521284969857820383527720500090385340476922148249022148123469509909816852233001810023438717525024416083958429211959924260607878525974628698718098440163790529328383283850846196224729408542085861369529309654518390575316836000074036593907421810278896879240671479443555339535543388412564783343964825358107921306741778197451172333349378046544830389671673310850327648859320473007134223455585378124962818139878670809417612222383548387900262257242499293786378391351647713863054568018579416886498413138171005202031087748801714189631262347447782873216685316551615048993702247586097340493297862910660935042332890914445110706802577053382708037965586655630343088668258331806565792775739415939995348491513556109264182895167876770117788741544710350575139795628818328677185856974385220851841866835668754835055120863944154317314054710998414125162526499754029005449035685116039781003667762280106190812118372334338853415125515956069585589130484426893049572645633794072466481120300114791502082493185971012472534959826358584590106370653905906326259479411898365362000089631462534007306670740858280113934475975579831073208931068444131094340835888620654153103703317384874635121878259768525925288458592663202552960406119673343909883113733354834567012982958105095665546116892792800841880251007340229350292946722316387477952769602048701638234095312732711081453337466035076381974477958401318311599180330088931338527218563447704793141502417859790039340679738719077115450534740803506010057027099174649411440248945406699217886870494048930840542177319674328566221267097847270803552497738964255170790608824179991714771346450571882048036945604921710406365423503582961082871939973711590651495553157113636022563308982119671424328207930057877054957016239840757201252486788550475591288645373635846960969922900024352646985523670294842547168225070280034197306754816169367090401368895441494147340004117374341804904542139940646547783990477286454410092785411567547339044933016775216286894811313739596142630882632253489125570056384082749069026513258723017975875123950765993734107519049065016026860164049956512904619402685247689189054216981295338392715527519368191575273127382658511258128524668793866271935510653545742034026810635276128719882310580358490819361148743751269327819625123722188954863358225283125144889503964176013127746189330945552831008433750384657856729933986141406770974175740704235733435569253680734292544773330691883087179168841982005291808771087501390481560695082606306511447525899886524259162744796796153375360311028099409650702305671186957037686691716290978840618239147925808940147582189920065840539044211693130920912893421705041709774474392043723293755162015779753458755109996678328889174019137365745057003237592426622008508154372244373866540732923680478856945114404654126775461323726999117401037900168252747316019359887845170451030820992748238514242915954944248105677198902208449260293646171255231861300683648810822607690446711281545019001300055432111965560040909374584668363930579430795449117903065767641851752623126838689336121493947865549243730682761126710469416040636678980788567637527055491364475581123110887961373934799795152385561451983970267690950564521829540586245783758428323412280472587507457941678242513949927777405904977789968479199906103999480566596601684809632939132176913067512239398723355596546177675730688670508351296750368297107443871157250474070094392643738031988847893759934579798597412574877967366081524030962671708411362430018494544831222571947616069084486774403601055702005594502415384456158434968133801497812568119062861971101658486240945804802147580206830821337623002918763956238515767247974779683423929495867294664880328753240838498355362523578198345600271485941568836230016340382588013186470145926106772054829964214443235147673176009439781335301080452962099074333041956252486726708805707137141740267199355182975615190297802795543094132068092470735160538764245536466803328152853174777438928688581594280338258053932163808379471497068584616475173915023571637296186174798791110025183292705513139029561020519859982828099313159173947725500788396681984685480111006059595729310149490424170650728671456508661612942556147120872831559116987069224898326277304829849065705763510348085384824883288843553801540267470275792792511937255588438484997972993420196924222847421280659788253635076725081068239221988898689216030071561520415417330689911299566608596698318234047466400688321762748946346702379325992816611050485023519533442155129075895861437900371652400891919844723281681077373861766602386301342864859725422161551078096071438489760791066659209218654625265515777088012019912845944172656626230239732928525476366254407225187084954304287057024484687570414456645370556363271980155780754770401629347923262953777822594507584953462599752786380946194371812482344074078278752642508276474026030353260456741474228978822467888168181422617137752366820391925641946310039295986685236396645125642984933608619056905917967727064019136850471648268591047741068161350315687137111695238495419148182869279672792984251079132216546117497965038034632505345759380880735510181042059081970102722682197855192786049114887811257312561049852209816445875946150619547915156704293574992976232860511591668497355421018909721045909032593562081049767059772634941645021683267569566555357384158053210204971291312602523006261262206089737634985224945871174078731622241830267420635918776657469295973054700419582632154140133692805279865463229078860881031592472210920279428036775837710416851999380872358236354529077003585744341425841733929244990198123676776959417742656324951875807166468593520264489045424246179724125950403884579694659625797650790578627772136162598754936900242574655980024639159294492517794851327106018099914653577842182999949148874912673347006936243310953171528157343252481155575072076652817604975446900772894533462845120284685770376804453083102991945988119884410528834125797538186100798752274294091368913391994319525249332751640341396088630664559067568926823963703883399382082306532997391772479130270705793557099832784848430826424493386613812315750914639013387315002313405312774260687264854956155161771423670854055497110176324853789169463622824215990665070252715162746991133022681751266291988346552670747461208512550885654048809084179001971062615020772831818352012817229829575318309282746641334417505070342732355621946361342303290937288862511948115750651321335444082874524420531856648107646995594748974068001833131532837752191202535289729482575817485902515543919457034978926149221000153843745467201256594277987510490592953267462485810073262504164549178707236961386019389294615165590933598426772248191182101551776785992916304914426169134805193042274805436387713068518996992952409742863271455699301206420825784286142563245556688156232592537831231083614095537054791512673590466157939331819896320726646915889846720120120081181779214217487497129241716262114830491459445864085964767249883995443605288916599440335582844522005227682130750890627109769696953946896882235024437827885632317968553799411553902553103201679157164949636180583518832333526815666717267921413160987726883669858598678816110008885788172695140765152419027778064494447995583837330544894128068106893314729065510570186468226783223010403298912087325882792443724656871250614606045998510730466285084083140971391733787519101467141724378648787702042480762299797429008513581971390458382039251692421356684995181313223661971965221232632391675766548829472059110379633839407629871197405766763002857157222970211828874339595880315426868138956882595368119871671560135468732592839440374804496586738808954995081757010904367794302822294507815440264969574449359755652139326235069865886616002025373739320874717747435300088560292029364014227792537203482314984446994022187696732750876243078144894648980788199307669065976010930988638496459729693253523876971673893236411200857389507322716626400153885386196190815021901847779161527928571587582068819223891333123445022045692094570665817631481221067037375354629022753906419224622065764843769395191864329816354192276595008604147712573451264038729186859462771649450956967084109932477893134676440815566996087734883093742262709823227250527925080703901150305168809437712699753701769970622581387198723056846901064216736081186669115825393684263643139353854121273145872951298395676798423251118093558913219872294384573579274183992570108644747806685622081220882961762167209017647981883923560139740012243494833136239380954963767636222242554764726863449078868126460596067051227571583408015187804168089870669970009158118184135764116424674918554084402719466770455441651234056025001850457229763100869785659297686059963928383443390453180522110654613524219577874329204838033696250277027960349921579872645354804942288295876377574155880552826599264422499168845509304944581234369376489756756929634384890129935263004088684186405413794835379215902832752361527505834022833224193396133169312507352594909055260906156398272572994284694715918531435659124394353539401781011155098431505442108692968952999095171076499263844386258003385704096185886649899571698838694099486013184589577275394352804653232430922624504878399225780795569137760405542861262110743525211532217643426337645834681963113411529483421892041548133644355464203991026890087596267495977146232253644615742631692712904113584557804981894553551781333592257638921314037616331618339261943943756832061580334763026432281771275379695204922045750649156630036333950322387820338974761333379378370534261358278679226943390241694461065575615470632616179622279039902928376831919332048510745386685398615894595906569921268896928899441761046984147499524819973394918974102165117540835043610115483261930106184061622952981022028508870425344326242929200012449519645167805849630162268257835010670761665715314780462359219692827539647319655583474569731713820061048340468792398824362034752059433591974483207705059007476882335732707973318865176066264883049532341596392824210594986642103227054430041804665721069292658788845147056749837541127652177741453302333687952249482393353363195391453238771571978445852486966299992583117179582500316500515860061639562030378710153420929460907783135795932021354609980614786559202009029981119521497294036075151669503699566408993929273136511834857049959761388556234304455336099090378414054268389574617411268223491822166374313895417329461275798828451713447468491994477829296920888287227141344276877533170205138008634066740396647455498652265138445198878135043921271570434233596304559257635105256345146538340003491205251584380152958936603423000908043399408803671372282335191586586512234615490328675944426805376352407515235907161777549324456775240485765738112619245346571606498041227391978830129756711119569633243574083120354017379135222526305184601179545063462721789788841064609150632688740872198129676488571052414569531206117072092796112034153595975850955062142489086331031362678062183941947233756018313913258276619109860263026936238689977576491247256102213503707915974908605233096521899927154046690926700387829021612382029945052955629965918626362003033611544925041792201003279367521483389136240471157777508788286111134211596968505582201918608579496344406008984242926998114260828784970918510440928118117589169252206221480044085154653732070893824477965402976525535849253649423317751106539303396099320530922661734892384693000588409436323878456138343394253765261344600825469260796135962338531226801738689746285545569300914111388309850979620906911793338498805957064986444659707114042898269124645333344114418988924608344866361811039051163679873709744388684010347680663925713309999104506123036832650898452970060490779745018108999952721156639357039528731208458833547058923529746583514136377888205106746624219815360992327234000557752108806226379724038926500442567695111102484284228781499397423201666750913263323171692423576640191947615876907236293303500636258983808284989826903971348204721870623599360544004106303120340360542399596925040735168772670118743153049695959823637251760391376576882809019678735799370283101503684838641556730008342605878188748333304453570938748767543140783263961191220490980797096548144826289516879194791489308526179769275910297114260731968690345742513679732299025068816067001195606743894162669732837801832634137056697067896263785052020952587241268731916947423617101237290313971793528959598096864236446130434072011470665346941942335169558101385525887897891803967963608725142213926213288952902040369438006560079127570172729034947834615903261694958460662026673621164488893596381227715407225186806748241045721905909030227161737646425436356800322012945988449839856080875101358575590977783581953665389719939911946380828195915299201042340246124063046868668963273426927139535258792544407449524468083632816724240632723243512478865356127474764197849416186535828253516553156544317604616807078861023497920349006136694506318025705099663711756890205602802984917470271003191996162228517062429805047916348428503182236745802904553591788818065872520879785658460202631172995142723060005414643205186445083018772699231478400731855899383687910715340698863430783787220569242096614479532327321251224115350985475339731069053014654528696994629118208342588591762892706805370205523138919351407718546069995519759054014257791185546168292228271140343157041148724863503889791733735048045210248996500774089606713216575745223896865923961028531864078109118959415992956081671597666744099686561412843223850470636275543843049500794915297858382298751823970353247985492583755946009197171236452293426771316427941168500182363262640632270567620104997070540018124910894180372873198739956068575989432618675142767096475150749345608890908350838434335020693746293685912183920736537840643026850036257498594905123035212678644983909411043557493864130431619349643418445064810630549985174234538601519718670966046899818032965551912738519014904758853654697365212946537026808865683689332398756019469921003967750897386926191562049765525206039119043695069563586168930216296341343106529252144715431761448648108643357245356729136624399376981180292350097956438064152352602928266346759694910157962915674286289696568379199892617860156099077642619736316006327631753325632327700021989701155993433607862241640472777324301824127546467970409378792669302698255539608177763035782280408718337808063028933864162572797763369834612876535434965711801387340757527415801790051691985326646522892402054943341195846053213123569765820225491184017370579328473000875580544290579380247684360991012664623876295484802861263454196400371056579622753810462889573094529493939190537559084990175739444268368543975140680783282822908126584962989374031001568310476801132263334634573928631015009551195790834927853688763232932234786985605115796064691557953302159143587858636973176753819725184529521883197340006631844441119010458099133780392919798856405451358714844752054519086497677828290743798129587330508919137702180987913461981685315553590139066291666143684249432695612930442252124183146286307721991776757462007407300771787875839101263444587709454029411408919443088566905130902708183962521367591511294890007706407185195028463548093691205947069241227789578222953679891161721152434686845985556241424625170955670309961541918588254846805263812065899341701027554940397052412198285573587715005329930020800711005808784885511688005462096022131180473830779492336441666387226051781490610887910144929800726199179806989813721990006254687190151748629820085084851406238984631017921232657809539237437054515386499994825301618861313167026233961887903872804129405563289968780778656592563951437662833267192472063991575113335495866173976385247268424859761555291274951406204014046496321150590208738947349605556499822428379020244815609729952386528279844312919517021946551897761321978632701218644165806048910353113105619919536425609886936628943724310693708550604721925860160734278780406010793402368612916691146934487435870273433015901843795232904508617106992271033219339231749201069047013308559541756860186548941765323453130754007328431747745020335836728726589336037040243340279229808031004571866464572166545569535639382195369647842179917628233013638153759601930631002570521480639555276794849482047399106778927743151995158807724851344492001026682914048126826849478287587457318269019119923174349994152145055655741613871107968695858218701169797562354114660512749500043225823967922723346353971638048815151151375718370689858072632725094195948572201638055378753474114552808210316068321948060253624040978425738033694867654150705091755677525312942311361716287668097380365994994037945715734361413331769419046981875994576873049248808855337892646596098626948926503364203939472099452165289341252483308229716948305926962273266065416020304742565254851329619144607967024297815257843717716590197154855746987043374374038220576718643730758710201777593355731332199062995137050135660030090234722950154018046238460709056943987038366092128433027546049071812482984763975442317888957197996460398754551505670644683556872995719149623901705606466282094511204067897639294917524719479319227873208809695679703624868899661536427340157588117356957465721063661896029796150912049922141481716663456043659734708995171894619328264213322397718951216630701464336493319563629583336713096070115304145415964847146365405800048571218290430385977594564567398209630031662317662087803434606042561094884363661624037783983229461169416884622786999930626672163529542233144653285463672818658999591072584953409793680724727654533840002010081440056805219659885710522959649457339717442361101001570900120695156428800097396730586622193546565264726577343656414561482198705096208486603370885245279511702324655657728671998673957748707084010801094197865379013340108574695744081773591988580827066674298500169678732932104920295350223483495931138837711914529746321546600894091330915379336058396286607513221786290017050220971481514590748609416928563943580777312391003263385672208829574858554224277250455921820694743791336688332644843557570579661109040695960276644309357016532581544894250483263754205551785066383812856355001592848987873946478498997322481560970956070625163255388627932205120931564864069688461693535712278077971548216608260283016601676176686719450711728261568782321851218424328960763072668578159288376629942250238688511594175124166205957001180633613244257352982608850029794771911649992939357999730063209090269890844135777500617210397183558719723624048425349664780356445730995865336215216052842570523456515052434432407647357781650433342785695789299732333529363258532374470680287831953875130206797812537400665105978786583768373571478697745819192487617905462045660099780952726959543733811738549858074639886281478703789749305726403056707306634945767539169495878350646876313628689511629111955516166921877880582846544608624131607606233892775918825253353322858155261493691780214940714582661312829715857975396106769495379457326033981901700354320453243673158369738058733037925755057926281374515606787399942766711322159324654331682063638181048577366955599262088551662011752445482484474384065583566447637636020766394089689955335210194075572071012401302111731603520076925790487775484773423160678683043851760985929591520608028747105069681891743275971512995009216431035675562877827023813219463662658877836414032655443937460569714845296150236134011172350381211349862294404463292041784263909006037551122314596663322901255607354973881999280060380583020421062158496421712064071343064715061683607421720070449728136447781440558048977908460250148028987710611216611777165454939515365656569358650812649796401538987782591688096202243742211518928329622286721728796324670524052672013971953305713753125637777328557590129341479893748235183115007507126333938478408334723287196290420403604649135498688110575188945128948918791850345298149880624319255950601889333536151097898667299083491772507566236294424101872324094781270680366481360128960014594814246005255518447879159113565513626806628750608929520704145974795548228503951796831517158665241757658124648862728169053323572901932672836811145510636888987096983610753134687320619219607804181125060958491532237101836414182333484899114312914249522444684262186107343906227284425031310904758453516782382113328521397710367155481674567011690513003338036730160811780281179674221002861412901090227021281532335999600281343038359491606757495454715644067873333506695732007076827109351211191138345612556450938803550828670416512839027908809990496491773993798183291659038349462999321021929161985289691517403899071464736628467377119708315168313504057517474125739493905470371977508270486798600016700671222557270630865631523523412547691088850830781375354042760325128187160245237370346573909990166441988944567788160479572378605903763696632552122536274707884382662746325692028533566343433189206966233431378895411475076648947245012973880257906218811913609076748334759835883525516918950107862237998416903188236453976479196938327227779674202600067556693777014144288797983799392740373436965387704084086220465018750656141863132499862856356665729272245214926472607262885658430876059851397075990020608457013286808270644993459186853752675629119192693096299414322736637426533123567179864101269998960999386610808729159743595806253305056405319258094846298315691205892487752762263772426447155865886184972943022880329491852849180804181985605959710869419898745501259378402390872301065322080291046952405109584142590500433202513359424077472110170950533854864341213269335258119998692996414182121662839887402014980768718933511509627021123116543975962446222056490770905566556745949821764104066210843937826645339054781177324273256963860964736039934251459772736891242094650664480805042615354562565216739471846758967870271819597221146412312625845238189371264218954585124074628363124906307229045108575506614814354468480095011574721730356225844385615066358772476604074798432206889667961990749826770039903674426227276760066276077194375421338117767182635706544140994139081229967851151477922027651108610054029408003773638018801965363013371786479720827479029037038694776100318198421721914330807206408258282515639635806959509027254448038918407382275444995139396581720969230535329287351426124192455906770372097154786076886387115012567154332362547883500007325375066687207758576297241595290595267435056060621223843184698878996019571191371450237687509181882046922877179332101517268478670704167598722256063899830911911677427133782805167414135537349536256152988626964541503788389353176943960850398597590032913935786516441659706986800296787596677162625049425713514200868278991665652738177582273060884155811915809943831600759701895228392916053810271754848929682096564386705086699721658125855677819089894187039498659428732668666446849790773498635999191804934105092557478978488588454940721357598874017493563378902803699017059653434225701773397375398499170739889914008450133505804768401867489403920217209682401310474890902435132748682410245777973255914125358236586339004943969535012704106741540799484014649975014686164043948791669941077644537667203914127094075877476310544093077702972665191807816869884272076327284100971080826656758852472961039899120977919410411065280104049597136130009155083678857857496280399797724612645679785577758555718603614169867218810699358653346310241432150420813373593155595372180427704071318860396551115835798989675511435723202841188087321622176054904525845924761470531992166629257029080900129598338277346076613877442334684432364140080919687744851471004537662837062697540277215342699987630610178990383259074906931957383239673128185823174334726550022709309677753458049315483374693366258111093377370592657542576567282862741052622603103086971182081499348088401396349721551982578579697433213450312079769678958093470047193357934521115910417535173557183030461002639466850503170992069292928863096703970583902989463822239352239493948807835125596377761969875362536514893276847797408178184094244367112675406838823562159078317173389967818255309173802771612609559523262408628074833127673514010965132682973245608649508836086983272956989631147570464245564578532804279202307677322435124114464781160674278906118971642241348107083543624196551508159708532225841888693200100830751957493912381895482571775976599388712025066030719309599542948703135604236708649351588440019281554007936339679534075149811650592334429190410761642443722475422204502566662890599638561399929377853869831800822128341310636965832071004351435074501240381667261754258487873836484204730962329368358322728290210846885785184705357346726537655267831040769106841534035299335465884114611673925917668008367326513883124154253820498701713199524224254203478780664489304257486678097643092572793881878669373453590360349630912611802026856375324048965094322041180727498334822140299234500117755846090550489588034109235735626343692406908836731759284296767572925173767026715349833611614512989200522620958033656784478547440911861417404753586624275739531394477124391905124223129840705995908652320780549002918451304009478363722386283983694175774353423036461434000393538975309736432953615877443740737565409070571898025270454031801467242335859324320751603437763358302889195737605650686439585689089635536149570707016871574098378081112384057726248114372503849459833517059414985307519536712703964431104917111595988935401011670607371744645285850078624074079852535471597279032916639955836990053908828013457542626636410598278265583517942094377692341117663673702949825017027684310291504109991460223652559225085545124277351509327284354553856477007177904348030146246043327216037654955143046432132810886794187357335691371955764729636260970079965280488292846853753027337780470365374948716138817117170644646717056262559144368600627441297668999629788445065420325485940125951122067024040515025835603880478591555510853402422719083876621266033226084572027169695051465784501211755655652539313000077006108002091423744298259773799710319549092704118545023401804503104202094591933420071471505782836145309187675872406529440227193558777211471549146232857225078921673689396475669275904709863013366441688140101794337812479925734016547905047746696179128176376628990936610816697681117636133129884850463415357619439288728431304387856614625452368853148987895282407597054264747063901592452621395680949601097917136618107331491336010405006411114698845725446298230397083651059309480591656236840595928692714636767968802193410803624831260621271873382370244115000121549978293332540760410429724553003085778638631592496530553541321709910501362146588177619395606883637937779377427893858007190271022837739870220842484498855251959730339006916197855472898168437402097662999851187169717532463590822314836109210008232721744282372832682453820214199134041456962272219875246041177345035986066282357011966500280844672494602796558709066492712295512766019049794879119820115360745253278580211167482049082393527346646298821657518258127853531427760982296258557815097346364610019417593207033928734893676037285876809430768460397619665312292706412574434900259971226285835890149513758110772439691887945959064642408628869751636355062889121096603959130949317167508711158124400196126951039081004056276541588632358075779496258153740980849227619978021884975522905282145953640478539721468053366910658529875284167977096513968538722654276603439833941369755657661958103207900531517390194801091293385179275104031999031276658175271536536838657793902287694807043225425547949288306220856608401003189276853184064206073120348920164752666598592475449525763928965291662706365120989989880924474605160020742769045846919511946179110856347631569850564778496663093671689581733085347421476822645353598442921353937497935387810070636996379398395708832919566299437365589155365479608134616979529546348996404135723188491428021509165415869281719519911045481022412477598701562982596362944534154023717255197435870189641632151497561502396397194102049520790594395088616346603368103735619245315959270705815825195227514010488719116918106435172011704346796973630018133194790240396695660990152653761125615329282961854701125817375894453949233696814603880124442558170393012273698013100544004757187324258709284114251560862637469117444645585050814244116117602871467617955410256330727000854880988046896510848632685365348491800081034485237501053492662748900732618565092902894323809595244924905154302831342843975506232400072290595308709064313653395078594073839746525197075025015548393735558431973907338440266619100111538373793978221302208650320887566985484925532006439204982685532099342959963875958798715808276270456734339561837745576676989571780934945002251110029635267337429042560874863121516528238947302538982544869978599991257853540429919545913798036725424152983849114982275486816211156421114459635796735843815953025481100170837578487744775904784576704814843224195003293613924485909139986144062982284883902139551587539372629312142158725349490995132349694387008661503817002973640079598980476266134527917898397939937041860447415299556231873014411769747034884053919799916647851002969463433344036727028962052232450289702940778023787848424253532517507605433517467473443917345756857174269746799339734961305080110858982343171452178947424186684264111751532237503819816269647008151888942352912610405552020918826072946107292317739194366326288456677367537469701489234298738142336560073146643736461011982246270856357024250924139679952168798110075521087884384720009355987306683563074833017228610971576257768391211064632833811997557487464729522193558626665780694333007376547995391857919915961752411018957356784630152941846428443441311444903783845094471187981487702712392024689089630753555157402614545983097957379036220357756004639491589042358974975993943874242300179522401512696135210903070500198928107902844378131195177664623338047881930916856586548948869834588945159081338244521364793095759385841322290845549226955608441625813438896487025559710030665010474366441238012201624992801250578632211590713555337451860659403827052067957317778769863728042375638919226449834696379607245845708791384769615724068513026255235731041386700754626523676959706902903164734792940017731711323591943410107830680055224096886590156934268187090754812247291462369410202580478017286232544976113916094595398797777120477565291477743197455644974541358797943776978310534558876019854273746692858963663807110677993411116760738437192139642954989943742543419252742781034322318203852004560644091158535887827678874981905944504800932590480656280312898643909742453818395590189655697357273564325659289997662801271592465677243421702106371297944677319508644435263945194065198730777976858253649327600749871454652191611660490960920683413007094433103991825318451413867277332106691119858789899632379344087153215300919149430016503074597412176403785729676309217365453467693203941355521425058916528519126768950410049520554155964126421151090825353926896415400394013292050946741007926013983660279388306335222741576273881921045880498387555392407949384354176270463790649971685162824259087499816122155924004995229638633200505003984989454482619028373718962609256116073548809023634977665098106652029476372715480253091568822165398207748790089034208868677017960946278819295431928324894796658000451710065357362337711324051780260539929357339982855439004580726454802570899067214203050781444113636972701879941558552811512224513977965371093489544032188399664214866008688269167213283744456990444777646193530425375517688901749265549332310443978922922457460294490441892872940837755199869980014593796772013202828363388710958128450404080483304033769525431522922656423595977717907140310153850836109707151203384852783127127065637819569606785447248311078732660595473296781134205257369403380203047548824734326540955724441856219837205124106479315956780987200950783166091603835755925273117123744894671810302306757694921789176256771476292399341738993162166693956406197866326166989225562235668477305282001794394058610880540474002647852101028475270610930244776646549624114371541208618898515282773526742165726833726651176104524687829235478771657355444431681791974030318985487394505537455427567497791341938835313507376373934086728127607529438163486070976613179842956841078139098405025501455802712541806743718585352480660942347015997467793275150682188857041675698395503549090955699280799628966003913129089495933847479042929852339407480414191621378971059810945255069139185922504178135892305599811453412418189379988798492691924734354610119154239483796858844186229561397997232936404367624633586053392425595033770076661664429388978745841465004582997743320170610666375174325656325357838479219996445337804422479198103507968003707297513412228011264292512258505311681609410145749657941826702858064429592486620592592305685343824897537853943601449430307208364785593141427378294969344650904083864119655651540339453274211827441694863953197822308908446998395630782139595613820582821143082981113834892116472591703190066472415154412713611088744000443916686733314052877535364504118730487996646920588330729460578850730799174082818174734580815823588268374181956691533534106508928220905573109885528510845640603327561253975501654103827015015916970844165971273715795377521974434771334490715506886411133312248801648914559752023561135847058215790726950492342464061897336068141990280529588010437309566490526213586597014896860876015970878858523148133971073237481942108630463523466432444772214290497130713947317663316408603404720264145898989204239934022974520362101751927929405966362632911307277380938416519861334466863505075622164916840475354038547526198743111525478207405517801159416192767102821359316761244116318181395480671759818042473135428071037335446949154346578093119655515350851621852338265205856655663632069343419146208368618252076016785508722463010821577856792673635827325298274282732036576699124635148808896045275534570313731893520716270851575198983932858994139859983333758811401120384806877175412508843515712353491416819517217944622786310114470990222235242962460347785589211427795446687515938933366958322772307562615531798478385091265547094375239716631521547313577452045136478494484589837651174915731911563477811502429311418980133149904889407921468826666198318903037894648277621053401652590127269384853637978565165014857064362002773322041105154946345241326016797424422800457977492204962313205787229560793409310309502802847839076285527914541407902441261259495255864068182748417540386531638246490078028088976053167900578748670567580008440977563833772669045556667082066925379748530678745080296536204372218188652725517693749648346723726101865064909823685072545440747923006516765881001252228919891070763954525604903925321924623052310422529953400877274479009118972489293064111224693268462239249430264913023517609600968563949491917481575965000530689070829863104769452847392879068819105818807870216256609213966721915568585244879123204352382205122274222222260490012855803034531194666447629573159047238461904062291720370521679689374397594396859879840946152921616328346063896362307569920024785880221923822256365560140386153278632525574547460286111291505150043951343037002220830745494352562216001266226792146149498608618007351271989111910754362207045779755914172720617216825158611945084297818768269455277620245060333405008206353409210550492443316911850713532635341403028901688859254215734762904612006777763453274682843797273757798499290609277800787905220008729112460723172993976775921236138542831862638773047167055063660442955468674893878009395866750886302409751875442492124237421382232557572717280675709789665797156041410472074805740464995134622804165225235774165077325106924526830829202345493603756253459502208757104193402940063998185514940446226033681135822053576193691405566840835184248296474827597101212431950566391126071906409006599773866833295397384487110085860480858884111936160728062443632944553026218817167163426055511081597366463744774466342586127288109043680609356535380610322121315516664761747725812250107393847260450199365198230461584929077042110233479976921267103174421103194169970791316650116713878116131683917294169782343837732243802509528187352508538365405218652498931090592756497625583775683488462814268754561947636874004995145139178095411080470540150662121222849099771241418984543381527305348033455264250820963807093222897736062143532150920369910496885394253543771212077389800656156016522239277864347609029577877381906704494752256111961536395362297886098397715052587464027281113855233220910824120055167066680226992642113651451273625879058218033715672843195794130447325614571460737860262672338039198559578323241622714223686393952718086064217693605088209198327028255379442294657457702581321898577850962561622581105081497406636660603637034878330532169856701687502268396860154410553868732985578040174062448215614713220423148917156749094369237240981374949149564583055235685205018551051045827888105778685228778663520264150292862648968713677401483600867456267882335313293719040012767611784482465375072423337831170470559246215968783510737832181870935321640134504708575368488315457706211087482199430299616817254688741444891182591200430333293337147462374866578070225978746446451540338670462418149307757912683447672283893969653442443884634039643154401136552872774033471233535351788610340621587772385621770875188480061271560094841122241825072252836983046228899094720137988187370849099034460943947658963072552095256229646666700797870058477717459140988469314421519927311249391806906197892841743767603936566055332731112161992946095796811726353184297860676026162974507038244840169851901894076493345715220655717921252407474783478904923938656605275294358993078240959614579261135995040030301499324817965803978350165938493957995362267972675949660221142760259513628225666698677838299527111883411182345007133147896180104589964383394457078215133015115158843302154709773533231043431544450049327611087463844496236362296968457412531481759650198782157998099435359979187570524066318477258572422795636544568832488462350083821910046015721360350388516370005356599884764025640094767669720338491809886300632357585722375315204943066591346029982091315729173055123397154403616833331511555351019302375048473740697644267398695446214353921764270897157549300422144703052182474093031028098641723028870650740530962245925988536575591013036940988318717612095876811023882642016415046739788825697061223896023024423453280180985860354067665852824092559235431329344882540022127830155588964741036004022748201262766189717559472416435556304599627672955812147654082923058568779297296113018965987886818170942417077733984429807466110348940450801733555414062246222918405758553151807520535887714139730715591617364166694973469431157390842009753951288944653105140611670836297362972538146213399318800085870358989767546309346564513887442088880312976189075982982961578834997095082347968957611042639810932364391540322658608056422444120280397717302708503845212259435305711597053678058688387140126551516874167873243333372725859303184793325139851041799590052765040156881454555139719451838701280880255887194046227948051371612604062560224465153627244242057347742387809755649430185969644165683108845276264602488774026733130283470957335262484373033600823558413006091958762900083378280500579991620473497106881979222950188489181891017225074468596316145176618866722832861119336329740719415805734549230862095979948975798863453910899953060059852908329039043407916268649892340442799177031575332300979258414323445546885435690914164298584522133617142570161689385854803319029023801480722604946019603700893851986746530355284351214521006511656864261000493339721792613078302042454350346643380925038370122928216117564018527197626492920294605881265985503184128612646427139699803734868814281853261410188481292714930804597980895762517835459530222192768236397244927981902396935275477371544175340927394018336953878701175541733889709600994977686502507681697666556376466314653074524115472303543782615255377002980630980819480327899137741906775889504067730797055912623580711525797337101832832633170907897156441631699603903263815747522380558663869390913031973660787966555736751718966337513472512067542619489337972740050781482273582666645306760559490411195441704925279856479123864820756418747029507588415217258309655280620293830123123260642916980152277344743114959642399200600252513898511662465453534905228125933597685936953986684034551526424479128850826044989455730254235782676703404514084030761674034788790400479245358509320245462089346301533141425455547852473355341215188171503222736625952485364961440646068539659513220675048707334627359886992856221741806935255866790130529326184823285517394023611727219735330618660890558307266806200178792268821427538037291071564741921744986455771647752494213071877829022056265612564281606043513714437940782658405200109103003265938092875532660145006540475394035516582065654734776427494731986991390110201363478239340142389463314017153496573088935987683785132246190618317909299215961215282818601252517930928143115787794048774508435659320369839420077669560829908423808297084040852801344751013414099033248650444482406290573605256809566427574637242237887787802822126577778851933821546718238265275496502776811157132707380975887284106004939575567489131033394608248386833512656732610389381156934354707834968573944547865038716346799997067172258414366185495378294869716453396514631170694940760743100141699472889434322899481311727657011891229816906607781629175647033458183967798564489385666821168756927806600803246704463947427429870505049780331465877798730468373480533394042979104391624457877240673420423075604856651223819185674229242833587039928191194003102088701403362389685190336560785215852427064478245247186887604554535274753338230414724232485344556900415628985220821420413987547573759665197942849485290041607271279042038890830480045945212606899279723405763541345220630326760117185050329810658643295740730783809223955315323391510133943186359808321418581320135709521001863000829688956642889342361306258036943841503607978164411054188768444064151315441991701854304808972424869641245388900912518011792174508658339725346171354374258350187150415911154361180311326260149269979968079921454705766381258463035762941456431011329656992234294522638287664218027988689813218004600800442883682191363418540664717412691848824318935573803028993173285654650190199378500787491235431842493715245438764585544835221351992588574475891334814508185753164660081972689151891503709543863505662931693779716059969437962641567562968731955872740104886673094814285322118830491162230687440361078331526273089116266425646196171088675637714076894821883980434885231992741249305920281091798193828060643353295784278356324387807830881719487767042223036028540100628098927618284529139269948886502952977351099998995483903582459196389834503079407432374412881493045830558157993763806320781977905328558397269966852003845419599677038385317769766886572165173477600310755171294160041040240583987501684321828342360792902004616727886496358628831956414444622888831995515786511449735485227289421589548401627428970173504752287332210140633357679587651884715944690765819830092052168806483852046849964369453235867668516724837878182229694266288660790075234223687385584331021801874256936552987649604644425757026909415989582041280611633482775445821541508347565550391167536138171786777061402879815042668601823993645112701829927685527416001135130559519549385690182151501938120039569940723494794556659211350623664594286491143101612010955871421282941474942848954461220502319334790868497146334260423300915746002201717277928215629450861707457513983295716487829037828617818918905457879216594298727295501893148731830412457901558109166582590389325280076345686038894672476138278700387094594824086530807582143204107107753527388240303267434928701237513685639021511915780581018301003390847813913274478595615595013251925191567215585112054290579923480425865716810655118556313950346098772593241352091303232487766133061456844865955854208390346831781548982543141034771153540263966852171073805273683937053824886446800553912778613514118460466060437136144401545215282757640648537508260460507045803869718926582958821561964095938346391314333241585767569371700582433601863667419756679277414349502190129931629695364504953915101257261759079481266226240592781191167070418430204559039600858720520947828614691094868437656905895871445631762318694107913475708591144976736440189168913187521513714830854989447848710001957406681368843212717554947657836448868550348637777789347275166135603648441794927124868695803426635447218898952497050628745113832190664087107464637586940205522762792126918612221451129047914698271232441094354239309204902170203709836357148396714428025300720319942717345148921187814792095275942231487802092570994763701598788807495550290931185886282998405432706700094369242201109014827557279799718511778109939337740452589159189486923460944430641540327290651765328472203260588981483430094654177707174312526748108803716499003776776971290379507433513054231520428062764988701344104467727894069234219225330591446063923775955877800503760679709056265712169400507155469162495335956978866277196552044065721481423754558439179167399180115517638730295518361056982252042237098989243060267407910579926788748285912739452936624512001951382107182975996045743894756101599378577216793177287762381763261414877055120455040114127300496576644354775001143720257402617937817585911216178448691695873380893590764620313392538971933258686665199858822496869995966581051381235949966407152239722926506613229494887665075698534383498209820424421688166600515718627965001757551470137685844062550948874048993908547092686317555569371504291276090932184349737963882312559089350587674554255053453499131916803623029776300540136390742963934564970001461953565777829378799725085270361131033402525541247711351926234766896618530019820622211491556160549179395495035638488042314154216368971377840359765698556034731976580408858818876085946150901535651421891231588666076163006128394275438451856236025922836341689528034471922921427842762848496777779578082798471734559675151488483354447261844867061637576596577829761440915781761508687786630204346163156140979996105926106575350229603663829791995928394263853150406704786365969536689427024491641490123980558223868914757178219996399618810556794100346230319979685384338445870938308104785949471956158258344428416783156558814117127977991777031131486112601964361031424852163750637109580723851754560441985472655281553250978873265263042736478998859085040255613922170620319146538579984014113879215795715778229386617011695119526683298313857983254837085675231778028396871381257707286012591244110266384328220291858796439059594383925260775637051413602499456305656381769777619553216148462112533700162244170109906343135258359558247065487658592683645956335338992404138599432858436666730002256874017602405448281134926335859500499158111591021789625755500150158492712730694610379884371242004125577304745156584038940278499967748138089811454056490205390121434820103630483651278021707443122081466129461615910038434582027502339120159357526424652590685971387611000263909774032629233973992736865572347997092577342910297195697471919547544013380829061054504301686109841881734299766985779559555605071346099976027006052415561315046674985555670778560113711967463951792406116388575349137410215439674267719400881714983116122352977201557927926254390137296913915798367494175326108188699388743606439239601764543860878917298782217360306461787924908499967128513489470498133182856316683296317694298850509966353346919568000062245439790776456472683083329066284279252284773645865746031237208787545900084530171947853490930465650001497602984504567579145626016666435298395602751637645456699078407415293957690698997978296054546180462428841559078122436185696314527887231713950710737997468247331851925711721689495216672022230904439923173010983008752064704406337097589226412643593615682403544101917643146782841286038877771774492458645165624388894216285087928205434509330914737811363525878969264835348813939772572551122854048521896620375717363008928817401614189681660566783778323542068126420037346669088999282180086030724866923030750280492987158890239709165442422208974137852484980248637654887313071889779446236909892796049794382474952613208496084153150333231858132892292004401112776895099780264600778251110695528595419240810141098241683076470965830913695948970062474406183271407385023444521543183368580238342472229653953798132272946040272280049081118821394279137298054536986642415632952167283770398215105665218364796362123876147735246445510912948645235554687278406202787813054433648513268431479774696952371390480095636200900311249821666998044327601978741492681954674346818517300145120637788827788373722475953936317168560312398098731704160776237265008170137958179865803583080475972680004718706484318575673669493654844934904351376306811244373204501099557910817159589877913674829618071503967682524132487176503752760006283880832236537861096032113684021757132770565859889425069247645055783308058717952247339328210673404424953785023880588782517816768940479321987763421583317005637074140829209978865189911369926336624218668931097207330558450130155902330043255330840644985110660522830333335596221490353336556895838786679858935302505837044769059552849192045517030075187243194304334880576163967248960407551082483003496681502550415771918178144079541402445511652229070612912649478404392015689174642421255153990752762655121753310303412062202331377942458728234592812643131054617595017454754177189932371141938570992465679722323321183430798271945124602614040977544752652285105680669804665857900249130605888078051126956611761830817736090707352746928605975375118289576930503259621127404007511750314065810400789852597839517892491806387306430702481301060691213215205297022915492223343037645478609489897321600974265693326803870921910294361778639338399493132531431924919004974548081630216158732089063625890056584527686288756276913713542172405674844592896665048683517713769593112120586063393638200523017185898835017926370616615761649802542778541268724410438235001721030705060700605332346163565555564900342364324205658733995395545030627061643136365491204775640082414477375484072039143591200226276465371209508129515216028516121212520417828067252525845822328498901635645799618787266602774516954246501057435060300600422478647712520782366730519198253897691934407140132243290285465006582369626377092935618401248149906466492336901688199419916437491874830801547042525740252455794803790382313776702781231675224647597626937590292926598147661898687744105606059947036419943849780268791927256298939765681096254603116842051901461686357781435345504897955916520586203378121181559074016433307395347864177168199102457562123599314135912327539499793468148739297543844492082264472453769031052133539544634332969010976460546888472121107322905500880245382663271060586568574975191416550648798200828793449336033211618985571083830628803574439418289030773657878714745998173440524046080307516825109546938315885850715340715184545281657990031545211716522655979071642663660124099675737908615497090935732785381325555046948132512959800530725820883726528944657686974534056238737210846301195259399634871557673426470692828913045589122903410210673402794102643854552419374595916979499811711174870527228523728974540158786036464893732598079300726731585019583940796893841144411667952738911443287981498448005412410770411277609013306931873537366545941550876575215298911507502303182776005539581006657811881459233274587769256676744511987179302618245203265412027987218339474747184586924104272261055047334261882916119280433972717869824842488899627908357920699280911780631566477757599040701518282680482258578830677741691108384749655931780153889899490119631350717219408140016066052158365947724394417519454740597798502076079203358809972021277275202973203515654535827488712987448092602593758425640415450867388066218343346152868692208989355901743742252385161774707424243877084759309003135117509843704049647163236883837203485451092477095920465080499729659649567424231264367891301966142558171752426139032654430232204186051518450143245613992764397534577559184964817964855514498372216907266230888606914570167584581949916769451860462881504880219773180249889490742754697106707060625168611158044211593302727662236091664050366228103954384252124094937023289804052246318650257403440484873324185542042457657577127653698689919334509556091920026600390031430327730694209829810941425930524407824603406865834688437113601585399734984029201950944872793124662246344917990320081606486379592515696411983531914675858168827549510305069677427693805357695809759976183841359865202513584200398940127287459169774805463277294490656681650370301929519431607757877040739125168492757731312447397509413899650117200368887899184998428930606730511667766763257473092665581600375836460302116326303384657583995459423220400678775239333580200973053605178795052222687907199563937176283500299530239985166811026959759603405064313055717342639855196503030936073930215616181053686483679502258192032657356039086503744676575952576375427800552721949623290349328278498384516593569096380529234672941467871614265612497698306685738009954994640258358026888045230007012773412678995306865750149668766204307814153637757797510837471639279391398399039660610633402681058906984688094245013077875267618778292192504033457284320259273090361765715161326299515657396786341336471403856460795825211296139236649432535119685405606638226284317145913627243285595279113204805928756654583338857455116066117301685470513489610068763029932871158206381162998289114949742874052282551475238777354542818272662840813576366196205739361736966673653721454965951909153693236564660492375348382107488313437411707853888937017530364537340523272920737597298582948939941116817925739450263911302933369584351542894630558736247052713832592753684204874038243353018284481149129515341082098361233501117434839025096660197033531498287361543737744934294798654734723761979361796027895630127479094348893967384820241628702336886796917928885716385855036798416198402124550856685640854486948353286832186017865840563684130148292484913914007635179384022769364464801801361615007158684142368636646392629111255744389936263501192487592161031999301668121255125147703662872319496081899756730124965061104923416711172348722212989409163921944400162012467673443835110469961599003820379198907045839379930045284266372775225109111816389443158145244832644140864674334861164637429827635984951522858229811805039906793922110466559696506568248944776279934592885637184531666358389973615637749410955907863853954915216722541803115265458698972751658655529469246282174046721193612047195535135738323078501393751944584217726726028322649783476777956977912935396614841547643639409588978926498985650095355399113958404503018400854673970271242778064349941894273971774015342713566665446319592224439655799275742374908191426488132130370938169178498433840384336518411391508782393974669911207848904294114208497148620387981366717293659718848091154777106509627203853366037819060473090685949283935939985779819907486709486737122624471505869233688978557943233055371625470147993244790908723524588304955271889767925755243938411167171975240243446894521809954402127625145369507317103538995063986682834960851773709950090522058931276894061375746658991685922613865734861305635163624449976155113571948140471445272292885373750953219336256044135030757691537043692774006043445428882497290833690655389591620154719677559766709107645133463042707583068350487180699027552361076117187980377134171412512228667657530953668370696405252508759460056845194398778057309870825803744255094319658526815060224800913143766573745474245800395672850201116452903693032367015564940102544015560182516213391636308647782109235442419505626985986000393031592267339673256452483898161483621248569121636701650575633405119620174552853733703434412816921485237670327923686691602789674093107526213493991353122491219324988956923602348113837919758310022678868051525101315603063358104987348602508945904690872624854014303748106348304042193236709519632515818005322514495829416957756701723547738815748070680784189893815033512388330964197532194354848589655797726606446515284929131054819840820419849390000118728420310118212723569287284573120857516042296795581701372378060737079121778556178677670279104374439084426878058395912861535965693844240942356415698110092913821390727876628162864360908587451910648675724634781834000704488673390262982997968477910365113389816524032409270207474580858124479133948928550940233113416514065358967765802117304011258455716987927464970054737297849488035256437609540146969492452136200331878575523083607330193171964896662225100750379969547369480549479459910124989638076846702441367002665003528712444846018005320944665217565883558674949294619890750328930235742051980802037386420852200406016162896403403092242513409324132446938828632516198331158539561722772910806119803723827801504913408909708953176161958941435129786778679894950300834762960234761534432441213563076680549720482356588154535320854543462351628911900239923117727561256310181424255599415999868028578103008174849336824227785126551585747193669098062528003072674684569557841024295362021356697611237885226106563892469511566715090323673462321332824794919156568393376982716195599800569857990325872418780030728851887253069077993864967698277892832086620827481434363739535983212474033582175916739462650689406226003911636857718739999121027393335111927579236931007023477195988531545690582136636639761581875861410196147458360269233520892667813702934093584272043392790264902790964593478688484618417077920330291991490086749176122804402023565107886613435019350201609888613061516666606057249405451148159551574973707642389827960465131267207151174350869617519608831876315255238152608167702273995260836518137870546336995252708808907373274689294598520595084551015061483352640697274790335533719095045132791760536641019222723290205351832981890565640779503304897293566306359301402134362594448983784039464515895992366023973523926361951659171887997593500591072583115859579361237304061200946490114036679432837874628833606185868485136149399382853892057487464553782782159158520425782062011512741838620869317384607660043947806174994704868378342230463965080430159408108933358848517773169533663690249620872978401202175914284984646933366275244270547408330232333817928365410917897113833070121803353669475092283725848198074184965283258246770656167674704209446208664012736321879731251010543787859845583218005418995186445214348283954678034500535457457530845092903638805252622354668224981719992887476323542428691987237240276956448259616603691842821924480694341724798130472482884193240733915815356184411769240792892952794006224895210872711576397454390684868881752616120012418758806396734603346822137245271955916146763727485068589382051370552638004530049933517092004623858644624731667229148458039908482216611242901735196297445099105591622007980669026874361812053666780043461525258122115253049450078933902442717274179298388186496202754355592436911982157632720805747959925323583452087882393770183370423542185763806595919503362301303294913163431691930054477799866275481678989098628194220299452365852417853433188139582627821133769469847841726846771460521385998787557375681523102450414709770675421268755919021968921396309354615330851087855093616468664913728907709067841079152665121650622029813211633934465349178814019616828506713907926256143534310226185071669191583708808533493082855507012727562332071628492106187832958066732091327472819737038410878406541694513959437365735592252601844531229318223189240400182591408261417346551185236217019176476942025626635488678400063960600630214203077606530324065399315735379347356356487491583512184264056932275055665923141547766357527044285340546404567973866607403141263924829192947950592478120922477542717541073014456294257990400738872705966620550630413523808487969558367790036794978158699961502572391282349918536493820117802327249064826725971299528109798180122708018936776335530992579353573200971386344112963759565008097112025087631303308840961746300030982591551081391323391424463387357884939287995942608722160695827353407017326951715620138248451796303908658143617714415359114839356219425784756592347949678087786746330423780540665402987250898160444349089620414684156106989839649776228069624034252164053897105004560580130656947507047185125682088861999674258683560954770106282322111586620495560398129602408271364813478346245085713194004409191908145830706539055508064044938212315002677916251484201645697867340364144585156228284115258830706198323869584911689483892571505954782463223879697183323010712987202774981169006103076752457082822859212012179533688676525740147455344291286909352983731244368212662369910713487926150573733985851245910092628665553955570967980765099578771460748348525590303233811742088840045256489942129283129492916494250383132303834715984607204324628085853256660407308485625906912867260722909105095461811035577237364661009195596451869441122511304310754184058452018723967654191844998777618097768218019774393711917429863894953665161939737985198648668082011608866481982398493932132763191887498957834787703078115237410034797959044881864455703371949093721385479730171873510197011771284215931861104869735455020843713642607662886935250654379184136816529109608805506403015678481269302973589850183644104336390071537085583618425489702143137319362422015441965546027447218070316454306253514184771910322411527048033345202960530506596558531969288453452449265910212497760392135361226704818653069524960693716751090495302990282322846985549918516345685223374335910468064130055891436906853345325491660503278375410907049670083989202586301332339078735391362890659866461396530988715520809569842375596107825276553324473630947173134770794417329618270684558102199789586092711775429662253885164559162953412468386176148422126599967512761836733705734125030145537047963493088810636640323921337427818088787063964232670843448763766012037872183650103786475803880758478192441154654425290756580140799233754804751236388969270226413515308593959792060384619499880894728547167298300338045480170964862742323336720500733065514920659872089529274377934779183098290679213373619084872973671568232745370082195930379453559248666451798433577481887007069343884779364883280862688066211108274270461074457817958658320744209198273325930888796964523005473014986851408619871602636618531901963352660137273488773032105631293943056441287852060673179626933340572339156218313456794041511278221168403790506440012068980814504090726655073805648839131742951815209647027946870942329083827590765069224622152796803809031407011213980926731525077233784061251583152080701948808494301550356083223580184708638288139390521251026878637901733054460670893671696741582351934632375744183904713528247089625222611883830499310059899831600373399736123619681428992865164952570539494411440990181633132394012691576523118886693670604981068648313048314579689187666810044866482627878300113122890309761574919686475391732158302772716270887862292548361729785585099034790580437739077383684362889625188854856133363503208981950799951853056692692305534898991362452568445553033756090052794915753890363016703072021112754882472411825199275402744478199980225918409155314908294209944915026309375152720816335598276930614865967084541332886984544876300919855485672918184790667751257974515919273395883451260003229414072204285785647754611015700771209340009568217230244747308611071892712269177639787608940781557856093588922409359996451632428417884799186462396622639441417588262801078085516985282983521102189238692163013415124364439257423628157517031185698822478735258372164753343503101347925203151740416200181768691057899936330071120240218367736554012727871133825155653069429400185793592156880097698723268037607900621697754118466294554456688474829903467093998816475109099853923733402459883120665260655446928033430646205775095862626511233685876818131020506616438878478845119504464899179509949176285455305094055672368607642427408824000900020375049858287942591453435827076084262810697897583132447689122739188550436280303399371628321495092129647190597686525645273979293254401728748385657637572006825140977007563579020312314159400775379144070709119353436191604610813128031900489538218757254287487283947567413583555375958146768206192051416557116850577816635587400408870900767317221252573586366647994656396376922850742233857925801764486976672108870049418343492653062684758286781485053585379740623578591831914546899116364004642642061577163151940526148477283559846046467930290511663505272816234320278748550363866638242357387260423272980544401993207046878171762899042992427599492026263987578131868603020711687966356550784851356742768663309036676776377937459232455055188092022593974288269199357957937580630728096058301792712495234479372355757099430196203633800157348816566002141201394754010488097696886653112639081968889514149741340509064667671827230366517921968411751489806401394127384688388238239677394269610561337543375895802501135261995898250659862853194231296259763828828643861074612184763378301409218366104599138786843257054812062878885686821664426119142306523889826766159601750221483318582893495556889181298830467467068355482369129877481546214689189219198609063959009052925933384007213235313185275029949654612366392801076457653785028378106804759051210906199849866302167420948816912785485120650841282371550229466161954054612526622417348971942508420518493374856143846356652704956316534298318729906121599773811813126645694517060594271285503604166074472625246587453171829884324092340350107069711274079541613758418826814335618411124511037925450602229617422104788539280491707330958821878155116025481792261907571056203306383156660446189823453582754395200514079905848500014000332462232145937098373705720141733352080528233182051865911779840199976386407035099761875784154851350504999474629653305172727351118723872111420962382487861442088206880661322512486259666877935755425348946689511660135479772971671662580738158855063182243022216399573195237012497164339632795189005101909624066026196522384001619948890384531396015519900579925785548808762440945965492461915846689586512484165153848372019495928114917515992510909182859900003896709151505639672884940372149079117647684554866151510613472705009907766299286315518291425631725996368080275671188881106330078059135219337806690059945245650254056978115001588320702511877295987744582957391737298712948175190970266752894537564717634028027729358865839320180424694530981456045642383338825741685517405921656719777052440665787541249550617680580943885786925495545720504660090497868762544365376844422211038295235469245571444065267145536766699003203751464711295341329693629826516266527230679183979722519280660574449211905478351868333388688942776108522021614363598552216596389590813785594948619922364069272343140483839852867280356636418745291060443942781294147270080548739681444000934279803615227994224036601095232324082730266910969031783487885710567152051236522633983394701148828189887521901800654101396522190135033616039684060198889060016283049999017491745911388962817648148004354276957445536572435814285979042079363823442125976852419148375345641379697916946738966148261433334415634353542339617495029643378057943087961756802956694982092146001576631613711897731612754521298059062146142182809542039529545717725085259684393388333080025129939497557332175608321191487866678226099474556331155453071928123644380020053084641109341092410667235325612886507801977511499032311170398714992072016998846901923987774175290702873514507301230053293244741036600844111719692872327836618564014602521307009983246618996519552290741951886682968419229871615235210867186045772553501393563687955946736885604712926892201222192011854089459640134453043206038180814685943422030734015051900671444532970605154258692618846957898302586663828922081282192156597335415342939138663812508847843331656536891112264229601289638632669042134615733566443628952911402931821451970720550507842145725544525801434725701786433708556953279147880227783818973818834481299586109421928956027172970040323982527400667888672636457751176701706778998497766484046565187997078884614148815121496353952695270586545178313794364523821472937827152268277232557117324526873929163815263079025707354969257522475021521951871412933628436210755245380962413573116758788986676197928472341760085072201036609481089216509448167878810829278951980990360415934390693628809174226220080227678474880919871089908451990647095961578976195534517270301088978493748385396355069602124579262952878929283833050706190773749208787895827845769988717212978442595889482453589433658070207810512809778899150423853922233376879310490783805898612236645418617051259387911237866232384367581028483721023393097798802079587210260590861500558447130748225835886063891592922942041508631371603636047579039946329343614041446937246846076571300728194450664460458079045169601277236305944426303858860977944009858332544104588764083392288822610423303634692364943696638408202835820276449796241240531536086326064582602175270850599206164484756204482391699097308004750655716445579231179503876745058123385824740932970230988168966974658340612094327967783871402367303775273745643922388503627263478468220584259382110886925833868735337807397979855699658590431139945067192250492656473047253968646055965633776917983153838028946735858412973095025022196080053893343041354444571674799104255777755309027642887737539017419786071519503010658117710779987706745940177723738643569860812761376154111514597677563024881402569931120860611976868015990106683532696144595332463222678419600908543555225629761411876829747942991431354327655887279621380528859168591730417880492954593513250610102442170530759933660771688884288236644462877606162703957512448526584361253099611553498362670494962896641903776780949887299303967229010735897272521814471107632827351798470180382230799871496184904946659203645785538200175679435421555750677539418291381236658846198346255957305351064426028094504475183969668719710486309033467234602535850653780689424289006175893658584591953348302105480136614055039001397531214215420422022545540186682377161659706749548272067818366556258308185346350096960828575366870621391398893901438237450280693080389391119817309545273728371854004378878596548564388433188569260356242825794577661404591420355053608114461053075507249346446669639869769443205243490848284971267048899032199053191848663249127847706043165956382179181674958546203766869779930219031746889196044257718245691580321622710984999549989916379838534388302978465729639327744374630973549741266608069456137584764510475578532917335015398574187008369098950095783421265104738825274081021561857795601341234536399632907890925515737413274138420221901040052289002832672454705109758497996564231773671681707666285874976720822778700654427663710239934170718789755578674856363028253449481755872602897558780390852092940687005770379887833058257471142074804259475295847111815614777938920864436574823895811512715419286083393194023421441917057660829474739710339242745044372477885033291902395427893915969592201219552155711322226261292930600343271104609880925607815697743118049025592330121612679134116835518889135918832526388914983075821200918978991075293762559445017549700096590601641226096168736986930586769177916410809334331210031977130015260088632852783227685059029678814957408582484184486001449988280577746833961334729462734952099912894036057001730420657608245761889037989426812491583155772261279213653734251836006630776243849803154132254461731463187958132816448757327525851148763655956375924898262375180928179408421659263184496373996430724937317063680291218708536753949244841652971227513387954440016422414488239144304387907165435712902263922318454179656549080046345594074843364549887338346040852162958697325230540095302246089585507851851672015354174256561927215394246034825015437042177244022734368885917541529213163098030357359447751531599920023975748264485620008242718673519617316180140025431957860872527065741218794786758739226838794119858608462795463204083529992308565450723973539721005097500297409979036058143978880824557244308773651872339218305099321373150182235508442995057265655972262727541405305014612061895696249087630175125108206459505124634701066724477193399530112758049149917799453504493255136404218995904404408842074799217311274452791524988878702760434503317391961434520915880067859216675971824948017123254547317245154473683224557102296456574022094942338420528057206791508607072176064065571291731866685686849364453754703451161497235148169926939179281902737472865280512456138682525208714473154982684904380757353510989944023744421511193798407761340875663465541987283230105246483358903761750778471028999753153957746523314334280558874794161850546710789151782702784775600486660991563444035858065053608587322397714467582577076241287753996549743072345210472037433918970185861076031463813679910204449106096417758786658090501785286384422981365368231397697948831126822286868726571296097010993178945552371335115724719500293419584859216509362305178310423928599649719516905895479585906733854940295597494873223019099805475491375810523394441075394994789794925378207467698705562520800423727981781065039202552261760663206396014401921704298177132302195388585391930694966524095035542918407600404814168202373794314364706931261243560255760675981237170778019116824739397026770491584655882417282887125588796756660780848589802845834959904031730298748142298241367159183015912814186042924157094656880816514033732212357539353613817205257025417637945562675404776007029984647863480883916043158094048777821792227010292392632236831576854807489880545725429175778197892980892053783556624764727678496697650063517681397618998878431348500828771663134960153088733373049552280718470470948800340326175082632881120706582576196130397649308645416143976227325072137911362241112587263827864038951075265246739927640767603773813465365853284976830795456586650378718231272445856815592290221769700645203462657391924984877177758616164730120237268128933913688586908653271180297637561605775903256577440137660714888153615235524073624803273219331319313453294024909006368828603365619630862396571855221020634939377622182812843003810798615527013469470685747067639081857723240740998002733947537344160051436387340697721867287039265102350681230371242000196987815949111680458022259491017828051736305595909500267165034817898528562790959820271693441497905950304995114775301571249376252978375371068904122454639541336610854864363071798155765058198675782250062830879551179543726149027117717600915058561924435864545818070142053847417604745731089247708454945877160191178227389153867719012345246327893923672872257932676064634963985524419143399307676593951732901870808327322736668137972334113198601482202293432089429988075956763067851258740601814252281093376028920129220949868937412213768403572274424937756828942754054627784238234523688429728140784695198785863063428291858624663927815514320124204631614150650756513757109099415308619344330737477495488957925840283734238938397727762237378804471719044954178324910324910497965907372489447754831543721778110478485934619806573480945534245949232458372966408624548778641105610358162736351632286399891380470083056926130962715842728458961470985791095583647734451935676138617439149039188057097477876879498147056249307581965271143456097847064624632960878927204100779676155360302464040920439740010802946104782794847110121379977989113122227116530995365960531556285379982987605877051820076026294291835760938839372580288875167918104721686679567621530812206746094738702577469750158873591252242439883341083665264076131455700159921364395176985367554724513598516894833957389798389687881358379571380507673565291008996426127075083215461818636887852680803571493682785769598623376851561756970302937248357057706382187638244479125552372783250846891846433243047583665304741016024907365803542820393395223946279018758783533091314406669692314989232822506833256624892301749415501361626150616021526224315664954166308503548021169945168898092287123828686304598459051102411772533393459041846253915834898818976356965849537397308958897460484231817940538416693498371093815502110979122533080589650102920729843627204054856590213812699450387629028173043025660248098594790421993016865269721795265631700508371283667561297374520370417701825205905198038671317533269805490048245663632063003454232744269472916121719428400741943309856103841177823063388638288713460353474461137780362171599095989854616646077595899907418591053564085053937963938158038458459696681919423642372671344044644089133681277663056901141972281282832760275923137462771369619551106488755793280856048897902259040859284901384157816497230313565767450136891458311040902753784006977702686740991917809560456168367315038282369738515261709237179086660045263279820468840110130251917735413542354248324483975957853038743493782499729048037005275242294302905047579308225441940571363052873835440752398267909666775189629633427805250870349642422993239503736610805710808260873149393517274873070207762344054451024262394598239748029573217972847332208549694378915789481577416014282945690647341055069083371496314471904812287304052797890245284777686452891582191247573730008270007022347435449030540104243674430444707443693748441631099107880674679245089527332137170878993236301973561315276385052790044414513794914382162648356226518905261404344085619462858813921558929018373992790349411536726508004051929123395995814603120158118365030730403008136438050146406633510276748365128739777636288573420668353738580783133614594281915044963448022369346050043569516359779989931322452920517127203977485075914864925500700800372535836668036894600547211990764369586123329782444840908333006614229865063837301013554737192230952345276897374687767777257476788890195230828670671477618637581339837769240088087917390468921025686601371304863529216954466997258613395840589624995371364093082879603289728696117390495131549609021822053658820386137282134177157232854605800936690108653122085300840738699705760785373293129110346440467294891921715839741913007763809243418205452716290323042244963555575665367539969863087702541065901425676700326724437646811813053673441073376531906627504964531700196830744523044291472823458063469434702461864313480730274735648875895488610653701871632946267263891225267138725080062065934777844519098110106351113584678503217011172150693619355520917476324836348041503144523976233132586561469198851523805655437474585049887289417769819681435026866909144079178994862646772120450563800490106733326423435855042317512845113628040307260197443026494610370762832412374821473237084773344521105345253278542336477942687894508093268752589452324796955990256215165207297544372160446069436180850724502310595303575316686955504210415923498850439491001154843982258685292881112100323683893833082060495287773173825989055817250970146642871694840712588475234938006504550147030870990202641302066043556733773597355490671974650960099196701882684549643762537286671154700992289701715082290180098796841420881928866975009295333739470310127499893353730273582386325608271659480930751544648583847574102154225586479676105126201930648165961259434552213756945367206324007273657772515601342095943332329434596196887233366743755526650771984734484944703790079162563413931613866761260462654409737711741563983278544746092134975198775169558575275457491503013078754240553369714199308523182992478385713527437227059633935179592968217176863525763973886502362081855137734492810328861648137663581083823999346731173080047927651069682404895437792988327911142911545121588729908000915539280313224634675673867988938933152008741691279996802784930949357834550818847421413016374428810997501093845937298095287132341639944434891408037809874680695079466003341026560756115701061792006445178722670805547839082192034020140486560184696058411506462460207462045348609318234464825471076530864094837510191245241414040349880645293068146753262096890263606449833960398407575194447122614259124564584484018925499549857080389731035626179031272838520721839767505941070349658951553364881160788824787611791637965259361394037096727367089208716064021738927732713306598665056895073316685669663122996682278168981442196836285992561318917793134691778163363283090469778946243505702556271723305460990893361750575077725534512595515781299018561330373319023496905266700964917388538429099411207458177656801104537038760722960889551197617670634675336025541257855666406303197841524058374116635864249861344709050483895873531710267043167201774960956473985125610674224868314831819677115705464928068238540237898400333577722304656658559216163075952092132559005269336841049262615076607540914586599577405845938975450990787416884740925752789560174546581884500421955542642171882294942137161218949680744018118310011466983260785544674328323384573113956070748990197751202304793630044475989452902918821073503586111475248262847902474917409653823888363545687853124646073623200400607815871513817658735476018207148752384122305697597361442537794197900467279922799463937560132125647871543523917355368382128450752992248138330768537686569459340769484008503497478324361966945315320096734789757695470577193786566180261431434891947173094854465093074853498486402848076101075766690571842121792379416709568973055048565629425550888869274526059727243351720434231260750032246989683876468307539961743928899498441294643091950104160146117534168906922643781049603920772336773966234979448140892059213473817798637042538584550965890789376785652308978561811839596143189826316601188924663142883771326287721810667103689083267712503727766685329656174543975164761536158326055768076478095280186060905527299417238009785216000353598656888764614798634834707789874049179941139322686460840596904723020382185897009921703644650670489571503148715215169985384295613411441493763650495516142310845826881982215020992022283343883887786223001986004742391385725170077967921026739268843893749221188684559533734381575214035559030756334365766409614537630657008115538215225985219633746828628907911782671950980159499727428387994862858309453445733158372335720364197236524613906459455690136477019586377891277069934047786026560336664650821881750206835311674253143628515829025466537118271079477309176915966579010664088110817364500626696787072295709796478917647269997625462722217529341969997957241138303941067895425119047700367624941220678379289934249310338667297116607870523193075788659227106893394213501079122533431544952817711577238127272705821908245387183321130802796576688019409169938240453495544350263855567888315415925295495329064936731863412493596819476607566348541122516694528993630970105681160643522098234834333395812053681196144502727077633080571463444616328942861341123743934438566194486910417698466218970160450051435911012991767935401992670145938568525524848986402329504409344252618467557494652199955118276256659092875907480230669389991388519056017056447576153967628892153400919030892263725759501509497586929041540441896496174926601197160756689224747353977497153742243995168233940350676713967127580101738819927616155358953334195707102522864618228742520021340943669570942339021530319825082308414382338300112360810804967293131121172610636649453836224267750511245682163080301625532015630200323098414851695617619422051060377015827388688550581792127199952163902266265922216964361697787215939883185233728794363549362298154911251694615454667748022192355479402782678759234572789871762230316776521398209027639238616427032064026921747240517562598292958885112419356749460384286763279806030187192946904276071563406723498418600270618586848943841859227581646960084889192872542928400131011120620197637896304962121849259529636163221567107919885921290490377922356077917310965817789951780852834524983272690834331752741210081082725282225648118326745193182115132377302291327105469650058186206620917394130103205332847767213383026351521374903565922701652240385893703700503857062259346937222061288378519229801320864152506213102140355644471657583458736947611190160255591506541858262032977253722161424943558004623601736397797635256212529293173595344465392622064251537238941516527306025013190449807847397467502018586322023928155077632537773952171282137605456526987541629710710508722201878680595703251728356479829435745738989416032547638810620600403122446075159507258489816769511560128466537666811262095489402287769413953593532177794476440766262210562451833075428368834280416929349563857541641136707196644753349204609916688710228748371233076332621614139960670602480294272272057491134206264292356236912856707646548790862312027011776049352514374671572263481052332304101742111238708215088866011021408142085409897621797163626574092184982770632051445197696902790202758193456229721931279408841117297605940755238402242636720848577327532275434423866653406597415991047709219043651596533449369261330063302108016138962959059152036397465345605876673915852496986700050461923851894329963405164082013672919120897646089681049131092354764279187400035671912691498038360098958265971699168638532802081347644173157712642718731986357213402882003818486146120071680307211867003552492324110418154139684724370605689582669972538622652903557701969393053494743415620981420362002077749223762424853365873944045682937547535088345007701242205440291223354991614067018764099852694373816292008477314800099453792541276274202881785278162018074376050630832839617263762727981661015859960148056538772402607975347775659648796001996961585632976702582967852751657144534061378839240219311292672608409016941357326585445959620832613034755249849821693470299143978950313633739063694668863814863816646560783249098811969277867107561839284849810459060553083715984912834931968557580464751971509974896710818355170818163820214599858119291624463340364199219682717897002001449068935893746053953659800069851024988983498144063737439421416788253120087004644984239513954395327677428394159831416474556432614154971091529118844535938471100326796335671556438532537103256629476677891194670585723096824729651958342458185491101219933601397279837514349489896453385611597723325914664004682810353514615606542510901570206225281120793734579223318761315139786921365406506126060885828285967720584045604253495137981583434883757884657096286058984884936448483380121672074815906064571380703184733317121718737570864540400416170239643340916260460597903755124239905956417877283757436984405356409068417870252792305645490296650261160700176797746459298846722077035715698787600510808007874650811537952798361102825759468674405528646626454902867195243407640644269031810973371900413809507566311870701859907514452156193763854758379460204265317440130903221190774588137919455297203005229069469932237545701432782293411196029939520508165888341199844238040261157866041311940847522456654587504412514316091630343332810560548039479605601990723736187811288511201333621868911945165904188392934469227945257573693067930631697335928985464367551076653331052139766693003679940897362115006783474964463644540678319110030635141024890125964917798982651629932520038640259758039479818593331741687666555560745543176814281095272471810434282730557805522309780160367333221062838704913882714613656711816029754282197875384522729467893489803047300813442491262339006825750148006857595084958260942051567637516741074616169877047796949156617488716972249979870241899693923798729538482169436150060502317474406820365259363266777926003630344341296580587713388294202619855900127179605987888265506416443020413940101057878870640784789295401506201050503025798745465699668089201076643265055739376997847757895230784535805694952463007399924746122399152803392069936782870715029222612345422123495714154908022946436461468692152717474108886478976552038971079024697770863927261977054722233274286159234435267341286403268005939325773918667621546420654976914881246219940386908810247292326916347845282563496769256793982440175307567242980361019049903088473999256332935689389294282518599985411657481514975042075419462967751690107347045143271545115932911133318207622580527872661424522426762513771806620238363112929662605221859695600454791536349264780467125666418885911590432886202115058777441024993617824159978631407503916520342620704108908763935942370869190577704798643689373094531126003372426932639484166991175284055130644743236564200653828621056027535069230675482562211454957296935090049400031581977376286093783477186536049143547586200664267325461339454526147489125404414334137813890117818485705595140195785150404083283260413855102262301786429385437224773836619763352737799087070095026306515469795712493260967355890534049983707036325967942692804108929507416543853200653490546689998131098648694448230180963230857437325774763199484164340193857977891882613693602424551344857760512305284658379162279059935539722705694435113105212666378774145340590318557843548574296615977928032441829575313588915177460889247825403601572859487095006766317666990558290264315363524322323490814751835431272921168044941285597646779490299496209630380798596894437904043787725153190795742426763099527543894838797344952372389420402346806813464744328132545769909124790996151900443126399135925383340001803123305316638297241836101797167718108539287487474311905423699413761519386736447297877717845427480450266549836512929479572104842915363684947471574792066602334201444790284366051993463117893683881499976545563024206373017488058696967864754427324880923182237783856706074751032162021096631851744137221322853260099576624714172165843501295401195209225808132785893699532874255395637546674287435365597529235883223381988856385624248594260202608131469575908336305254103123265381991819453125161752850536062012650521269688162537810634830130441840302613753348696738837820492299187004973757068323690115922291269041883408641686373350586020498168346432137498259120164976403892848010366261171540665528161604344182312663066644688244352301999586421660633695764943487405695384501282191262264703550006577729180359917891470953448178485342920386453396920685218488229542464883366059226170852885522212654762449128637031669948117114628231203160147564208981318511666069990270323155912275825216484344872636830233888800440754171064997167199462619220628495235033841849508922648244783692656701918260088767002611354937778072128243879527098100024412030857467537459011706451194906957176630419600973747944954430127454539068688683916421964374625551283830714076053210163170898940689727999981027910551433781031486836799281609683494735844778461607674781893205469301448973965315611904391812051989719093208253412334738932260271321733321727925809182069216311536070113319797425464264968784172289912301870343749329157437880300719772452826074936582014591271310128992365575252316925504561291333621443655781235628951562614799742046018235929769433863693590033324414038346979080076153438055665394460466502800366292960511901874881626429859554851864668047772566108400025839522276589012887015260198974742288093223593664671268491408876631172710418433191699708026822707139454095165186316119789686323018159077817955784084190995591537315963171412032832629017926978875756045346987360006657791851483739889570794557234459018442711469078241087080936363228292852884506187703477407849725098635566144335348610861331646974286099597634571062066194784725843936526807685554106129908239973072769878191606929003075052687451532963678505571043942011705143659238464762638705640119248111887138752172655109610832794995878802304166959832248399520135382968511178221892013570240748240348700535011653282629284295906784577700934718089037493963009357405558102601145363267114797253938889661298050884372470251943090383676497095930258528552002170639051903406654882446092130649289364287585805773933976736645587521029132908181730193041301578617289720867619130942626110615008888952131773691435159531796744545321884678417682257846527959900294038787085359504632830174979594128603811724675378314135606133970739502181961965492819791335740062564929836825004795231119302690655134488587199798958071340459414058613770183130806488198866958844236052313709070301433675411607602928272631803513774050557518271848636628805359461935855143583227797067044078830452909814773628354541565740309300075645960596428742644166043229908193192612998063705174628785217204736086468061891295785239011877263881306784870378740296507718446950876412590345155603165774484839835145365478645805318095850595255600616790735309588048413023843084571492405713886327723395805121063695182515856876058968285813332849237073516934955090936039870288114074639365130934533069974938196034957707600062270594872395539148419867074464047565490709013467004694088688749205428303408513367355048825538428459319713079556340823935284966127586349290310887487900352048271301851380623255473662434951437677706439116862257828535169391550030197194890152330577809323830841583415261602121365410511953680368936814906451311857004248894624502952608885586410612258974985199188203305228848817886125345225145587609492778691826545606859979793888479149270966742967914437145480456689544739257731998238359056769497799568014708829809416524222499186638304587884160661818867572546156089393211617189370204451771291001309542384017829210025272499424687282648302203254044077888828410007641793334062638538255078926972095551577322231825409992493738285539234178975948136738050946873337692753217612686766462812059618960532085918030379288470397223765638821938919020940468215225162802251905827513351374382147327104845186209838357736075100005304374537708326532771224651622634040864327458439688441151692557462657450912240242458588944736904362238550284895974675354171760320640687489972300011035483376711141812876196176751271766139571569158047008101549813003707880632457790150180912197049326804668607922333705132044697494796394170301700684084473099651335555237295787254608834784677797934740685219424169595252730745485249491062614877320691347589636878979222077785092207235026829456418128786040002238258369923183766444837236773027526080773634554909166760541056760208014215825467341630709935165542239721022617126560429510926316845735603081997633078338818315059669252904757608874033515130241802189967052650798110999801975640433790552247261132482294499047122093607819114054575118672634590952592393747174220228120579926277718752613194822645201635928153375097903715018093101598027354319889998091662810683470520470541924998689834639953636627168678058994944529701692469057070930242619941630456486040899990508028853513134850823640142593347547104526293502185271291685587113103986116847048238914113041943602367986051168443362011306467706992511149000346824821390476195354688561028166827596371425689756299273565796297564388104378657107670692310150986190012766532159269250545318344444111427418790262432202396374655501398807877013321320291733386416798559195989024046768660938024572710157595612482944155659399993595056431757380697649584952239180985507071168967194385667164138499441220000536477061220207239357871515597787695457408342616639302316263709921938417226926190448520288336872902154244986569082268194595739030567769194483821851038839675661685283990169143761489013395247412875727219174804435880164832931999362128883297578093804343096577801710335138910421261185489393528707455632052045098866745923032639272667075768660965313273810742386405700734094442021213961986046209391496579019325556937210719743911877447468738892011101585821916406690651172316254144122619199508590817084440389841001427317831132886274260307664467492337541727194252748834354645448904452662527953917998779491232463243435452168361645270771322646765701547680541559483267651871411416432448934588648751690967558576617061062211697419108206676510898641141301263085035794036221424189136172739298165353967284772837973164673779077986414670697714488593420354830646443651397796399525403643207859330540021242316998441200639327641676703996905934198586781755265247470665384030185459910062914860133858756226501956206305155478864924728290249671581569164805064486668492955049700843289859997329880352520832782650932900744648057575704256194341876529930622657945662354163618938796581540071306740684045819953830587304918310365003262811751567091108873553514974917057071867091645584446580579527560484000319089870159391507178723437330153912652939002773347556139917078035030429652858397175210356010039034834545173689732946643782896455554945130789128075738773416132808981845131599546767311395116473975651795064258981790433435063554480724385709001378902992517558493216029701626161930929221044712816000830157234935177075283092757507115138296888654886455874210156349660327580923241917233826113143023183400349781633218732897633964680139083475244573123427369989624860167273816643943245290286542644767358976165170334610797647861295201958345039950878154570462578888394574916480849586448414738456875509876787559183744044911316843838564980701722010889376729844674139337140759870979370149297769678254312854797906385540849117911961641281102395448255764003068921575841415386950435803703828079117028530173481363048220830234298116907086623631229860783708160957475714907377976347653566994824504705811896943485401989408282555370822839955061750640089988680801005687028820561758028192089584407335979339694306858717303624232218115129477311543492918487527465330946005913837153620485849121286418360455580237023292079826243620498594837037994051805534116162604840430949889814777907874365752896015065897222025039529596788194600745259027154429712267350271986875824101847972943911740532266562689361177354135637716547169794805757804834288412489393116196258817901139015554820834517237958481429955104803918022048674693033550237216363759837687606886304346855185415276114302141807398068471764509691762688385024682402877921125128433505241400500688109812958251271872054912135213412845388552974070621790935314262291257495478319047826637307757587937425191138091261032337492034484241801746254424237602125801398105880457170652947846364339216676609624770278850801834889848110225287986945026502754724449570296406293085974641397147691882740543834892365999120909432862191801801039200791792476124604505308703181918836663230800081099811365625894773273775109062025599812292280699231872096707703582573061761501165948390895886212461395175808830005574711747383532283338937606417181503141897231226513284840622312417296918372304724937274476536038558121915362744331328899337204469983360662812258832732478067221287895634399764083300587515538202902662136242988115413633410598896570550629564392470038297536715983151774133373244765050298614288551597986561884930421158882695067825460765834811019321358277365373072597215325595243568926914591487125180935233177699938604995494849531302190689930557665033477825944687883640934974470800331549474999986625514148059043905081290803053129815261893542047262931056455588539587540221638716922891833343984757276390112660073921120434201985698590231414816196911024836584058839174635565916275639915714337488487582633125056819995039794807650845581118697622931527014932213384783070787567520058006796753631497472657326255835254081649714894072636283052465598087052026900545597044575987576921794921495748265119899313875496204452843620698971456014239625475216179069137315666588305515258527177151942391504735327294812978352896610768976808903623431478748878379373206076150801214132707762548561313556829502760463034449576416481097213346693729277512785948530135040320948549704841734826648310239346393581406846325376894130837374077747394294538103417615887389584315896618165227670037433041796316074649228823633910800352919907946489708640541145522062608260792310659280926900985267027239070511256897936027245252353483160354968471479274358763255848839247659641778260228112136115685031403583976937424992325372972118260451405458161791456906358085023028175841715193414954297310106852448742011166627714025676892386353588626381678958323935139066362290597678646023199367429433568863004524510073311452340684133257712310089902517882263744405495375268926112673032032549890660693980015630325487237787614998960182096113585659199570620295403122481724615648453229817902091315426621500618162901854268366064448805025928194270989691304432022811960674166196617388344343061350859666922251853737955971727400629057940046440026407228501723560950997210749160568563686375287433411466132192008995751599445530648234955585959833688191947457185091251956605381181175107109118340436301302416968808477190216956470325695925320275916587575560453804256920217047550308685915163767486324827934616107645531941499364555247126817676028518504517960138706338098273926159420548245395072730646358054010620417648341970657935746909174642803974704961375971953613105052751525712167418302681752334791783075421070995290884246451242513050024482688784046299721150115539449316869326430572328918998074919043419130558971267456019925984399573488466242300249854322164534425272283542774537574315784727168078870476646959304081284677429292584574494115479677136571175563744552077939247454988462019170111669687491675115053850778602937541411796849678621314601743601258924559506725228078836908311862076520186649045761830002199595301899348709981423538896179415746631903033866814240579562574969132538214276518371631584842296632630952231598657898774896909353858130094603787434980513227708657155331647937871479391451853021308926632278986392250666883836445707592830371022353965650730807906605492788899059482005876071867395272087803591397921277321125189183662139930995112117206795264456106291227117968066306898754064606032839434952455225843877339852360037025494962725015521502049686667220099821167674794288014007264689227813603112701643513753055015416468085890979806669002308244786472917052799204374726749592807805655951854125858633930378463559966743711672271322902425928253087034183728108663705689850181060118334489685256916147370935795205062452837440263361906513225966879086661446682010401871560985328273146420789036663665860822747597777404941333535135507136976442669307773694604955700109162889668180870171853803674671605553004128898540155166011950861199233664335657071932635061392790682930688551145955761986294747678682076383474310756404667798981695038497483922355168050812323276570919428436272385576367041501742585555060348579733093508904082955203102007301982405655122709880531320919162855661253818239457572019100937185748528858182198046092560536881696794133820966786429948069988939395573766202263850524878345775228011588596402800541601737703675933550081928989752013796846857309873443445055502164655757768973052718500896796910019901741349073061672234147838523744974718285381624937975262768900087147438603008773709267875322287790020722099337075620436351784701726865606718621094697835239671726644637738085606271710151104796702663076815998747207006849071159552819808345174845887390645790435325880832230583134641892779605608339457637676570548922432053322595925293533726858732553795164735430070323291774434031857800957089166667729170770913381242141566708023288440239125456734708975002460686410074356589829648034976203081822213551142284422753136872524754668478901008174864437418710217151697404147475191200100276985810250035966623891129955163243348406509680786381750705120007401418538496694786425067913602554836164406790808093709595342252096292367867126756145904271120654639428533729363236563481652247728900728970196260170792103482509914173216195480341789684604535023130996680328885453582717812864515044282653436928627902352519693722069625044345317155479588431812947723839646674942442349907091545124990100636940109021453690498779519490646162629953180088959859507562982273520809962403311044756250048454911446105645226114510428260194930766310729420262840495891973387914622475176001685994851554264529886947466540566692408095485790154174649107229149353184105732707112844170683487073227844836713534521466841290731286187488910714396031348187144513358467760444781095592323036283284985437924460898253788537644864777588497999128375856373832575134127443620848633409536496642618207102372322057252731278670838827769399931201398446840863438495205059769418761927564182754819514087861395169395260053331907695151152257771794731449061946361425523300189459072193624990576801518623229219990830421426680656985914147079343930221789511221800215035965060148385315804971860203204123665921139404210054134320689991137527145306770951537761781168655202336341792262169007574342461008887278353525794357549198991776156403653829455831312139136877735471475705223434425523819246419439868993135886761390273077265282262481931759487518272881753690530804926319980352432810225360536877472045932197109484878074545602273585006849002974845563515627255849980480157872641068657362589279324967929441120452704796257936083838552093402019582767663929038097633680560494537053782595397083611896587216848742838432650476902645103664545849537298518443293329859059341005128918732477629619029239672455126425442642166125870924982036988291350084673099053722774461336641306115816682526778603880650642883677763381571191307906805856212683352054053139366644090608257074487215992656291561141762919726954878633179216888682208454272596510400215475279633449048620300145515071301945015928455105169670624058882219493405881546687900017637224004030179184781115574120525606462348746160341257447965886824177093109846220575244847785893544388181150354152275016916850027631643720609743752186803909969276090429071533080347550214438612647416573898014344095558121114993493064862253792323416303875140151807838883961361605517030940583425001344092325651557809993583623425305352704595372692128854675091880853283247590937486215824643919202113903820456284431657070153739412979246401246954811611846718653815831294165982806497117718917198018852861308395404835236419392387720527894301534701299476866058080276299853569386138095839858537022994919226375870677439062654767681451088738095889040328531920619869888960375363285630137519203278753434646409765806361242499233643386782151968492092091110549519860976188769960365574111326898537982621593334941077666883743707584757771418590195153987964880492080920605921455845793503144589109879810330696567118392835329868622924018144039367191599458079090092780556130092430745659147623834689931435069663165787411238436312117949812007171356709756898068987924191253152788231451269390713966259963335607798472653977507875027503408965465050827720661741897541160530630657863346961924714981123085438652666896799953261838188117856122776505494226586511757890048396044464126339094125417038856483802558700297883627005965607619164085901790253568626360835593068367598806436185619582244503754953317393730478015408380633996642181535607756452801732447198739045863742241183644637686903720870465456690503926001978406768399100053030055128833452734731091240452785271145574034037868243506021122771014959204738340420654263843289492765422153575104293147935451239977034639318138301578245717725446148258502901080242156115170198332578027415799756990644544192194644082446454037955583252320342166729488380951008935363498510661871997444583758439181775685743075605052091666197000643898921950456981190748082649982800341930414736981308809458886698448048889360668009210635428541334476188792090521126949069249485978495342341950158668190751531301405875445713063230029021597093111985014414395031825672495150611033737256320825792685949972095358711700233943113326287216142468818089711550830845447908515408872409446955065158288058798861454324176835772259540445584482403751534704441438387500892264231614493800120908948203514575563486580241283584392065328627297837350543696613341744402716405255212912780122268350761281173969795212565119237814653948626673765026568486094344837499583856836164298347306003906610518756937889257030362357357804246555286995972328180189514848626940091637816650789206571177316539642029236448192200610341423286527686285533280318070964993587840432589704220546097986725656851054545071847236177679998274472392288945767769215359185090279934005302327958183722469802622859916521434161361936221306332149159356929121935360994350970634045201710221975816397795601000691270319219048487151351269330535882666951884222188561066644361367433793014215161839644003436828026847568945267148241322333704850267602030541046351773686539441649746508865450237803650444797706605611818075784983420862544550454906489378831083134819492478053110436947048923394496341460289107476756237336514839853034814230851545091550883596506602171213536301819374711677031025358485771538868741890044130880272628603473906396659841890495452957238127062471978792611398507583192084251366107928932688369981977178752729981829550262217814000691541125264978520980586261630330264931885396946592962817676479350869877505477889552736686193574220804538986561536835173514555274979433048423676560099450988572425041792891890004797218751686281230071137057983092717298749549879993673853226517139784810420720285149470740058833022428832777401571120686014518741192622701225863256588603276313962180544783467303829784965577793881548534321218319674644989339893826167119365788350177678514964154691928415131359909995146549545870042488814095949520030908494779838327455980779415724478728805547947546668240785412422533361152748410090340129536298320977814459183233164104864548859097688539123003129254853270731354685924135750153923266037650675879752515335063013098729847466459146701146614604206998212921175035220643436789869604945468170904889268151730064829187803154855157563839732201052277529397883795025526662603175514077959885760605340158143498391498155722795449804844887348537623152283727187789230177479393087499017567330529065326372874604963581195543807456308727066548121036486770192251491290743988426048186308420412438025927240667826490349403339719880096503534730562047609077518261244431684791240051909364376826546126880215756370156735380120367636096104334879155804330959834072438718445129314949371555068081601306192071030767256238150444517457751193728639738253281473853434379568315590024424573686247074962239763005716339951541411001326500223417976134817137069096454711692495160181026155434393802980573504934925904243883108828103252319452253965056416072732459050078813589390925136629301195462804171206733787264639663857543319560121614290965896436565203872446215011430532757160853825897953935327482863026997968079386574065054960531600006226918068053112596294465308336836766249995803041044379615053700719103048464606274380142084011164076931486688451682727553382003566697491406769569745244882985716312001332546126002540677810490852781641410778407744427268800427362097477561025031980656124081177717266811237840991875367022887051851982747116855011885436046567557409574472762231704299014913976647369758925259597909318018844920043741135654541893743786522090520203462597624474717745135902205035045797075290604709280112190901349456470767055147822009055555448498936077178887588583391448015972170151365242448411399850553346974991735868417333341760360360897577881169603827142603423306633876088231382062489219930321832689262230870189821551645943368113186393836836880263625721607138637019612974027742677733571207576248917811293992083050372960136175062500458008662358895248215619099862356729072616215973428796281978872605854061410421650930758648287770309172587617029034591783904832884502086450191569889381281137820187347847893918109594248067889398542599030566194685927506659254205325539467232240777775773534824976904691593509782052542849006307564413427568281571139626170426636533545461749630607233121855716787210875071799256217244677779358362810414986830983586575673990026557119202277494619360074841785822722379037971540124429945099591590815408896068563478630410382287149826302701154733181000895203846634624081365189169886482350784030499392566777215179910639695775425808234265155941394015771649926087477734008216849196624337584674041050430157449209468223368293438278645758318541334996060163167243362803311535833169979502691534766216174753738943128055868971108733126373422426214796406386432490657463191645707629077022271066171200673159745777226567658177380459718157020221733709104435944579446875151375126780657091709231564045975524774950167890980144226482924695911875152604153188681806743549614060059636349804387841063987378177786190147995557265401871233569906585694950871252972194398834036632887591893864193913863194109187557732876473536012353958835442233347908856478178417034370525611742283499466638481551472555977093967205643879369099852736758627626242724095143078389986781308851123555534183114936350453312685863279324989007267032879091536311031353202062906664032362093050459822553915641446541417294105258417564124771984783324643038150866346749895865083385774059323440662943340464294222863540207104906992205866764252738659066920330976513492984756571030259212371046286946681705993009302321276906697842361634201629458640866811931325376885720884263811651732654908570862432130420261052951220028772338058028278949287135513053814520579908954963524417280177566105002156854542772689767117083957135362553775105659147068562487259529069759286874129944506754190299180647699088435699994795618794102974193095537845902482031485382376779188020753901711117100419898267922429717475875833325170534544823992864791170193680886522935816629364990662253557412658064802202765666194252708297186688537866998238278525908775998634056581374729756360755309066789478743138113853915903405724368749664269150824257278736428579557102581686347595238816374180329341681836914781957576131945478992499524307906267148704844500902056486915322991829541126084123492404053263012739978017234985324396644430615051874310186836853657447391369057062483219886172355563591924607894054222794606512938273937772382928279573550444486562378019368722180786028766581835333685606000874786545427745541438588786808846125191482719188417058206828305278725164479521996253629866565510888141203330529719320220404426671300575350353113273155177599872849725663144542919638328433730201872979072430275985217817861008307956213016860296919906328888832142703523304940880093034429443049788172846487421460798281215310050636772765881362703389425498615989728691790434191636106940777682682265196232452741051675291502996837022271671878075802190228487764561736072553640384868461119418126279536706789689487144454259816567753074280653034236124087199087141526290919852770459031394600243590099970246470075226520869076169254427701100703717821028385168299073458974194390659218230096877428614090946488307231357979936288211001402355098014346832734517892849230654708448183373922603796886635185084958173479938443753492328669791707067899763565796763823411484683417359874883993677906024564778188686087267896459403302947139826104327527163322893862379247117789480705089379373849822347729401915846472866011628995460423639760231469672135221871754995469780484575680985719487491558254922356068919895101782448576794513781065839647011133956627987191209918514607598740256455467966048944802588917663716724257779207185132127847310301929856697431921831034505894877097791182047088807877111094211449820940671440755213446565745408131108151826314028480528584737618684509405269958051522705944468518122602149893930324765067517771548225580937168828135089514038155093933356797330262922848004202485353221745808668948935092117061526002355652957798901164140693849310770953486477100607818364369049293469254592217305713230358370125615780784086708132803530090034256929710440817854473819458411327388239324889890649738089744789108267909273728162870487053014027459603501839951768985003870786168629248780458786441154149841559476404763594634005951809355165388618935199957831167182623299621080003625578238596999329150911214299296851834861215552008058883936069858772457881763435336170816168057790446979278252715814074430982691711442693512356965304284738288887955588388897323505103756799699509988467850297363434455045358323901477608794594577313633010278964129630055792256035773220578254001045806179201373835024058912995874625852546945143413116879357561895223051402896918849966502355183539125596041035375222778725508096347991324958616555394654128212218514099961717333611504173878290218105750982366119902673041320505624656772966376120872044297051668548445292958974784536875391616353944828095425063027339738332878474391214488694771139327332661177131717678038559754749853814135075687598637871641066954406033358635387860660943721779705780149594719969229581955565280127697267994596502717386537522685221223526460098500101027746012439735215142047831560614555214079169480534101293204822907343439763534417641347423490079892113206955969783681838739544717622298993738749933790962204896996725276166057462261543135102894173574744480092069642519672437685449534914320602819753752924183652505906373877465228422783853256978397582524061325026512501231477824496813002781073792769798143536172717660344023350182827888072632022742921687146641377919253170530374927583656358951128870403892111016415126897922837510073992838448537474632823049045090191110811036723818938433746548361116739998719546716611729816609178712710293148971245209815024703058793483073992038749301289515002499688446673223578793785617742187656694880720840757076601358556491910164885186858085758636547682549462595751487569590637298892134859349603489668789275900388778641506874677174025871056806618225304429401665972271232582390922676021765051878176673387255570441119088649522650795501752853757181343656707259364913657808269829492068817678462195948815103372225531434641050947131081454660683264461140282347429426503465449179800970209497901696096423508601305893401927739090454705972387530281427787334729393876085003842685864940055567648285682661897578932128060557134038965452756280053491999310819034548094332865227117741890269751683770409919548206608530919008535293970845265888474669937594502608025753171149818459564721928290413064497629624767404934241639665575480973425433757957573313301158150045343270749189271026429730842824418067143966647853739960171040825621195537968092902821896127928777594822762317956871662694793201790750347985124270936037051173880648325093415541565879040367360117088323693635014970408583684125193697193882978977946766719888566255208670181274499867678279838781562099740244741400016181566087368288198192358000323117134789905964503473387337208775637595580295343317319088361025886778002495210787884704853159926767656641488980120942147552417490729912022437675934859312319521026583305620537312625275123646059258256660265584645369167890653367565266246323790232536668889063902436249963883550374357586109128457707064657852802002672506952315764408573783433610224128125711091536342304942213926092983188175489287037008289586467471266722206711787459502971626690200021514130252371820236889238033201737343904713125450742160326487105978486035303642787003719267713081401877129113905721890954766410063898167477134807390806752506913993117972240738488393557121219156975516272967804456946637164382356955252756586748874878215777031648306372226641284043662511192416458131763182526826150441322265028614956292690413637648635145067776130171147936346312796875586509745769347697668426662338262005048220137625167473280647608532601292827687674749303070702814034833223924767651016637514475247135120969126679552549713401432469259439384751346546805816704718101331973987025912441087676128621070526460308909571576063313727418297310717041075773009045260645618139566250671034145003384440037566770923905098402717060148341327111596283259138438350002431029460336401417866845303393467728605363246886652421113636101249340011703355224004045532493489076215248626556244563039197846769446775001464540378548211554946643144151641522757802902140534670001852835410331808737886595504195060788395469304152891591056431703289701612444137083751506789906229007722979510012847848845493720700068212323297298313720359368379401521933975763217852920384106964066144822316089423805516313520625877836613974254259813968771243667920944983941572480566447147690207373291514965888496632777668879865332818921788857428046064041404320075670587682408266323233906454598042260367903572718013503816076209051236597308591230267632052308531021807245376541361913444379376688286142004572774695088251898295889345525931189001644142470980988098926260105023275691314549612128661654640937678567389884420238765569176545959313205999184741149369355179454456052715648565792079351264824768055509751362266720797185179967654842610901661541160251900739663155414835975664067319726430708861419671230530988260483387235617827520146103160911806132574378727728015097000294847573201128643309048719251575174570044126796616845079672890584781411874392062878985141315341279173683023559195955998873620465044694678598558453480138707336943499671195115626524495542213146177306565797937816970608644175471772279958311279066420651811460901096328065460755988912484541541637524900524630314189994900301441253753968348300487569758009415802820375413472090652674047347220576502818784045371187901745976450185611815134871296196886082541817175063631425568734619719630070548082970317015883656588769322296694051545614864447039738860133438369818346586422989190690847530397094554264457455443464015615308993226883789079031981692963898832734212113772778628507265504034603429159270205121634143206478840075598455553675705907512698855631486088575090395800174184599778762668242157565979647781926486707125829311943907568310448424718940668901748907762667597233313274235226157701244097316479422647757545191717029819804492699332577592630555498682506972084534864501231439899388171311011469024304543679526399160562888945786981281984320103206174979689653909313529850314382684661671089561455906901495336942777530758255588899660767539214173977343955866993478621551441649879652947327825522125262386456918117885311271611163741687978074654832163996248380056148706894466644369816052707755324455863848574094255407714808045671418246162416305082405319975247195067197863856094958611349926012065530430940837049634623021892102015909801334380920516088141338245908513309629980821307137717796744047503515662453903394264242741937013674138252515520529523461227357429534090129322379878918063916914560262196801945578123384748446037177156351324231801928916899345436355211663073848656108121388482666588041455805989328437295636182743419118606537305821218143595369389344347355588523218219691938872859542447969866361523310186279517703496857219558184399684480258369974385090816839104706100017206126269947467143299303079429776095145155953353661926043967228376577909227983202404721562158164322772973515628887794071030216009323235061554299194674096888045672471431646156913666017524799329688135242255880182981160685340264794069611617859799141951622744577719530499707656810509273456367522044894676528529035349599143261730433601187965732255519974754970766404606597183864605244887127931351410569274157135091496009240913513589033418338595445498634307651594187730251887118550121212063643042863361600206755013965139928559732280429045300832002875666440612661280940838429369524130201818789361374743113178558952799239754904323635559294260087441061607546180754148759615851269159548988114013780487630464792077988744636506941698133194849944507878253265021135989179407764047036069712013962488700920476447062820730621161658654390680554651135410302931696224614808617473418443061693412084030443438696221255771351327175429037753479040124661467914790628724558614346943035788346077061419171003224119188087260347147672339327176079161377465703923397515515986983647885354605709621548178522249146418665213757444278944351047589042254371776023622707111959308400194630676927939284774693507761105008924247587331808348468540961449744375405862748720365711946417581476552401189617898046956850200877689678896358097053771306516367365809128560496357110640792906028519985758689766373904934915580053090493943678183350022547705646839246729656018302088142004196186059910267344423899425545664294440605271759187018980510411723060884825464738703354548311744476356110673185704958807304015190020355081689659080011688093611618021062890204341579436357565850311681240161678104144376540196776227239362177000473854764370274344591011027039686006993730725980591481025832893034248860264242473260124126945586581438048287076967872682163425998341389801421686747461735795664270126109542518776906887396448541308944113329355673532853371721112233127655658419618111638001602823975359160593062700744861822238556566556480125068211664740047984387586031656003577065327017534817677446803240364698501463355806741714023906310389245228008497308528911983725886672270585784255537261455154262925822113627897321305111531915763843001354658047466728968268371338432118250808126878753636902160214362537292921372970057908143753521775314803867589936445355056318298525558184933649284120314120179263232102844876792437192365868723277371153573323967120126135994148317538462417306045933311891058141782817038687746491692783402712723846798367401922816414928025643211989237643789468228099437577783336740190663207863979042336226242501268449004392474266464041041729160394030284912471382174218353230396093967740079732840578737662326492240014652218577445370568185993478772186606985282024175196838617870634634585712817331578618012082044559198639310618533011536564180480893076674400476939080384219394795923294386881463192169928574781440535185147879505943587277231393949416937262747709773711723129601440837155263911408182612807026412056756482791846286190496237995416938481967991461414522101355417036352267004094694577400268453017868624477151885652449992463193103517851285104500810612391412897724938537671641169090742064657735811439718955940136309831909483483469483745326250550475750938253578418677286749056204488963583219807042610918246197881202156424706846186641686473435800007722887898261241182099836319701989807871735894336216397518577983426378836873851270477425795340248244871343368842434630298773732094068224825185556568627840262291383844419215888241256383306100183308671585809313728813035920285511565877314280833976873511127658091887809525496679938589416231552012567200988056903863611731885630883313272552174452105710420757310075344461134101517214058340123420723458223244938670793654707212441208156490936128068669219466815122791375807730581911151126944448137966254762710699805237569412224349031194766339033003642265382033212108132501892312250416836277142788265245285181187636754347613567945676805364234287538677703934360832546571656927939439125128834327530179702966863358230974289306978265431994414859884085863951481651369662678824232397824624784482819840993969734113372988113195173684805585344093653429426288553026625187809144978742674153591571327276411933685164411647112749999870527213427414129826972686299931259921973129949041342958159746265044871859498611969143515457084458951230726978611359819054776485140509595504309638086165709617542357146063181345980416401730039415227614156373240498534995215583845206685892385651283814705173111681620545070004624302283475600853323887888277051690067099307181803877156334539305812549446997595797311518062224770162309858039942630634464357787468448485526389736788419055464254303701452860512534899454969246980922067286383025423720080736098104715273069332589681273274670800057990644502044210472266289364726658067664981707790623191594533806084992990595892541753193619296070306988217296995473521863612195648457260800525778774028433383275156119932758320326035895759426076070974003392047287466720205801366405002057033200476328641767000737353056465891763414057731149424923954463330074489826137720024093892788702042829359980574579968062085394429237286550656741772893316856557735179315518387290180253011936588474116722245732899857526038288669187975884802040090899436692934948986578783997715217413016231349319426353126945259638675904010521846467264224042075820172370941934036391291246651338630324787075670144457052893523176553261809066995039646076169117714823835606580513269234039192617329887673101857280963483675603458192138008889309067101231664451254630687979071503457392335673689227255570174502030027833391863087293939603539576192294001228020715782167147503159395665389358090386419423900382761951412899380859628773051240630603014463880560110220433762771024539815068116033205508720648935072065099715537980072320018452070308725854040966441284705670611674841858766484903757501261052236266840472121438081689917512898599163953112713966889906438991261363719475271784212245350970664046872170792202199971405499431054517858416181184221276808303275827677413973268229494984891049145168745034348534813251067093352880909657790910565079194343346873948043160676792813522340358455126553986340316816319501733251891319883994141642118628610935508751322725640656150263540046645055345710998620712283562760962053581826290410906200181717597478191891612850692013792835730937872261969853301909700971249035933306084671549539810348041925694358579564845225026627776225385328395295665188718015387159635817051077954306653674771481980660697886425871220456953908332615078464900378268801148135775158354306166028924995026697686311645719262362309100355651752625872006270867149022988259805843697532593417880472010960239476484580377726626190740539772200441040506528545843148913920221880175883295768255877011282008825075614405266320480985282170991396718945378504125580429859663287335655976261234080258813934480175628255146141173093650514708294319777681223334165935814302751190788759511495247246023272078909060596407252279129250363640981210443852678976659045061100824558254862702809436059288037657305258535069790407131625609811896542848584700920154431952530624398564339654079039459056733773918764729582933527401788573275037229640757897433277834647759500496294259381706208034974561106927177973481268200443404513483998083245839918347598348881824207430735583600522432146222109893658489123915673579044528630626516804499607844358409081351395174978842615747279375068305562847906259940232005571222509153786043477761264403625136196271626073306848997049813626474626183724605272049308692481318896041026360456096944425194497341197570923186437562742742823489341155996098581052094019430232322120039932383424752948107159108908349278686310405597457295078428458886420825678740023314263198176815690393220140815060367788327486043259592028666500682851530550983831550067311774345788969628882122422533326111143357269832863324782811589055636309463522918096854973425607474713152960226150497301367910084118586918772247742521373372115150324485166742246298729892808539919108467004508855049379025497484755214722949275223850669266871522178239722076217328990099903752368107959997869576981987516803527834975271854609806731060756934997311544460311926103159625269197067276130820849388285838688317443103102941065377178973709172362709571578130085881083651400961787011959851651663160156693102299978988114200218704260836258072575445210140436472236741582987362146106992555019759922015966242054379642810746479547249169946696850251781803736482354167837919862767056178733851071964604599611034750581548407921525231333291874996947682497996893487271736075362244360852815780132832365249308222428326981188582497458587951981630539589092074735104374646266562801475190247674645218799256529021122905708019838717816486548022808015148738210157852918330845690135650023457418368964804518193990828807694878307968486816721344094153222519059351015584636680475868696042889990452313580139952704644269014641182693013694385779915007758293837767828241403646611109122224411979038546674178447970996798470090596565387676899857651425297494538350350973214396051631042081277795688994185334734593712856928981057182039099159001188632828683035451380742706320224606250619281445783912827668239126015689917496837103122021525186525134753821507465436833514388214748899168358831056735253756206306935635530892561674901785642601724796769006595552825428742794537620989880949688101979987023085081997473960354626809604519245215972759414253646013109865205295782187841198544095065789825091598580449604770464908466418206570533363006143427576326433607586926073451613514182131972784906095206990992859523097318237544476831740834103290483825685320258047632268446832873405107272383452371517843289737807009331686118107065228076417099537394478699249779334877157035985335576413855858890875004571345042053530602971608505664724041096145439946616297752017888444998617023571328185805089816686310295099427869150660681857072276618737347747686509826002812435792867438205578364164870771323313495581970148167772664424126648818135524267771117855348078901461198303732191154854046354616415868113277673677966774394840990704077242954591919843528640584106749664769513215099874511281163417800170044072251915831757888932509407499506413027868220869104744372642475247094942220966674088570298176082651927145027520528004870197041543431503495956725196932155284745944415945909538267254054605416121290568345034931999494215143192277209980745466635789528675024199006886679284530439218999030758320708416177284393589550200855321705490177599803559165449809508232592075015923317171500624139720098467282324539893699406641135333201389023589872017979799746232212080608881800517095802784164283826976742853136827901632867330912855995791718674478985265496380924707914876835468251574737748303612359699264693540166128460299537817342170081844682416385736737092952242229002875134826951930720545726221684965909899735269640426666327627531538183301207865879680220253002661141687471075101577283769756271300085827050982036250889315582823977834461189974083519558859493537290715474172711638713141264783655647737946918450509233719680261189498337926317745262695904527220548617747735369844142379571359253283492548165393945247198575858756175250469379769359648068612086973510509221110411351022426248711539904114281711040749671666627006282973915485811860968921773405699091649255313443895682624226689178316044031948365572047044088912387210814633670459178108595983326915021310650056285803222105885956976323639317672100093557996883827848860349360746004646152010922693303988031278267399526440178214754999286009524991516296712718021659321659184555786183312853811953481531849888266539086069505727750359922018752576701231575785378749347159506073584858526595286755716025800843223112391608803145203150070135237465949423001932518038805552514126440239491492937980120310532469404469762173361557701080076721048494532576205639691421593300078406553807086108150569458719101805160684569714658607391885867293838802934274641745640408348288620380314302670919925449979499202992942574032152285035292317456340684108642800906246723309215042242272301571686136663647321400900868570987027247006303389304225275125549731449077071751622510468140695972412864293817212206987208715829807666417762281805239010560506091203596292378905341130993145670990551981580462726388567762225397344331093114435318388933662654079854413180265846571342969703311529860076349220606156987393651457911590034517884720274130995715928269762039224728999968345847635076908532922222970028896647677639692693144485085611744758015530291339285200037821464080617593052380564927112388759752306529119784094489619687356871399737909428413097222229331749648154059009053473405414337025497637056715801078173832267526598639098045209215943575289442381583526155727089292130013676677895239167307043650909377135530174532740817347702403609042690809475572488437575737730115139340009102979109666666171943169722294393155043228284380335629891209302018341276637038790282639954727167112856233361869170491452320656003116118402948586228734835496450535587023365120836255957451478389031477266535623864702348412162626982698955807402099874136484723361054450470842040620313203558504036986972522379494493517664782613426112590306424227657638439857334568239250038416603772284892599858448588117043672880007794297485711620093146002339948795322882947552815554661832294552595356624102578824121047677791457825097012589183194284146542260874357122185758414114868322895403505363007690203543790276575666666999862523567176022713356964891429643573976705914022284539230865956255663031632853775175343925466906710314766502485116112910871304508935229561851839562617164185869124528410901301205050773125023990574459318325615914231477450846167360489143861745338161929967510182890391388215011786862353964903289654326784724684552186194350169913870337449870712062979982740607881963298982074370424373795458615134723071427391460329633834141557404912488996040575728748240792569447886427536810788747806627477869589601250298029855587314053352392816961705317074674266807131347373645652617673631126638681501025186729744264732983124318476015654024982205653355335451096885891476513260502287028604020744627045019045271928758874684443429074145019747304765161470494071442106300311556319089880152355253719746474994899194113820192617635174767269901737243047657394907283074323103646938130196993071985697443015789162944513550904092671795972736681251349032658382416142409062375480659883159499505388914015173426084458725353386308664372229752076164723000741281193227513511368868710537766613278943400166787108107796770103885357495806262765237337719326721277410745455157684654691664222801083533950677834454975816757414864277166516274899915509841102308628129827194918509852887705382089048137863903968010372408975260678653519809717740853343799085394935913481969321054975477827115341095196029760729655858688341729696809722697342722275648366791100020981432189907789177804158793375334420546484264353390208513528013880907241278708969580245529564806335253207889813641853718851363100213579453421500031289267163843550821107942762346461068087713487054767696101276505938349244685661705071638207262975310654839721148955753672823785087533815443254546131203634299198163058423326360404198221417552774528954449993848409711874896538623162952373026684366734530226946495162947975178733450232156687434724215286481419819618920216219536781631595016314412021084908145103630780392899288277893966441590472179246434773137213959870375983163145901217514629355868670525549549964983292400238035460422234335322944898118081051097911820246121275984471558699733949481907200797984256869012671888568831385820326421433874471891631859296647219656858430068063487868059669116202854627037078516038729116193295029932506670106073626650301825342184417430921177678781547637478234671059848318901015440097444271861164129387168556274700514081894443388876506974428264392371262913359812602625430498244853700162740224322839393753654073590397204750464276931141828472835143304636541371124248960414584590411613946114350865000028181492280665624474945543097525124240263938376906393919884291190337183253346888190404230578485405490825161630718469746488730232578913726369050296791433419418221329872095072723966180845204272986515837193162867397990113382568144453605082872114999321299149384465931479894661689596782981757610614068818417016551354008547994380160759423690059284093004944352792080384584084477395183869057108669038689002532246919329944361187627015167388758634834283169936585482554003461976461222055485744576700084755784045663884443672936947332340061008939534799388094632870221178987129832101443897808613700770566060321119607894522366473306126413276888355766483233966537832517768781854831381344088032279585138230614559498225249196294821021217390753454220594792789072114143350510071529403721337480187604324033799030872993974973005065689837842218896635713284928515667273545367850309670397333481903704891838213086231828348896494783903820823664811797654255528149296450540235267432817771575593388864948596575946086256749288451281411761990024570917547020396358980164071254335607986667303480196672266452988714765903728096350837539504238836159101910561242061608243441590894629755118814411868840200604796045479741701345923320262301489353306984862823935040075122670528423574880730180491963749480830509817879766497343601361708632056376776524502177231329680087839076880932884136002027724022992459596337888625351821729387652850570524666806298850281416824952554060683504542152801495538115930551679360032926374881950744853454015757445732829495937547936417409969586489000618726544813309851076537466643891511078512082967495627973613131307004854621850145933610582304500816142449561015649297913909143218101035967430434661614528385271837067431980896890333730525339519234608220882405176004181510633633128493723061841701055015929774279287444094407166087988333173651434059038464970510060977025338937463105982854588693113675444247329462063928096188091317544033987276586197752601330596746273461184713040013084075319983939165363367808714107562214392450535405509511689656576221525044153166629150188942221754151463794212942220026823515871143192556054767947429361969652699523399468352210241296304337534427496575096317019462007713793151648519244528464278907071516666779178170990329357181508944226163386230935002821828530260855817222916345495145577354495760373848713625997480787880450748297389961464483003541201326652411555303514403894473106578607028729936510174072308606432176049512315298144368814741553694784301362522756180746689639380952607762307344590224847710756262234184516618430431469699601871678935469752196377838002279032114039107291963380021609506023265859985197827007179990367182270975058911197569760070031975946422813628415620779898351511736211576387639236414590722652605505093339700957647015297736555445265286679545984075183688917664794390316809052428501508012622238480136518971157958617064788574728662226750123437306662846607787805698677910242508480794738961120792167186777414858720387289311438176114339702443580786536985359719103483958370647955669626785572184273477253824793338347465892662952709564564969312839729235122170336215638971631992562523989102063193720267249675506596252633650398273088266149033108531309068327279856037400736039262740856729825767441105597977056871604514489320045462803227929259485627486063818608516169533413904637720805899321164823496201883480022567878624920354514315605771051464513230772398140319481802809233056047185524062554204596261109912301418745982780237089388785340068729567760510937900690309975560171539551652668986297169515395094898087193332442651049813175353066819048927149383089051232033685700792612294304753043667011444007160126285381295185659707318444958291105839882754373811721986055692369376107054582944432247996109485215391532653370781722523603522697710663820557650768792575667112163657966397573642559294805530373448632206795744113535573328297860570692451890812228917171869851036478859479310639176527535951408089440510110175335959664057932014479791543205468984148908125523263214727812882734349147815831881180194018007676957069732403243873564087148262513367273552624069540065800205345310607999086544708101741932099668687733067540260071687285374669721181901607310072202092676214956221769933454699363857856699079251865048861267140945309752409881359412701525382810519588747953203074320295968401121508583020530347831652205787917553606207354439451292469128725744130736738297549912295757484072562576261770021333931127176197416118851374933200806401096579375039108487844692586623191782609883126184761616269761016564613097943356546399663016964980272365488068421806958198626980360933462029537027256683768973353558298225183704437482197447532678941146219557859889921592835796411321878726534691827037347069770550129047970320981470911467178447526181293478240921922618590804293187934571402641235406962236725702508176791519568054682923875704010068574032552566682986693427705394202986745013550196982868995360721316037137694959477499257724941409648611686319638986959689376639027075004121753987822756972805655673877505214456192701465446624240283500304348714722258444458026827736820750499744553027273819203613770326241222483319508597610214709653267620367280473662914290879969843932892360750202185928755181485660101206577307011755642347648230556589843032236720923714025345323913959949597162779606946655768521076045442556815898268037293770161704507251184605412320017867279497343005759805592837711901512580615406796909410066102463201233792134190209803119803120850798173122688628767976617403328386087349098107218881142766997564741675369452659568484348828618586146395897243816192811301972854614261801895370311631661532568210321928681296181331987628169866650589233600977181635855322674658906181860006987414517210586820565685257731849792146224617605905738115920148026768627420775117305253887607579104767182906564475646941124107182211878438093907555844995838008758953218793283660249688501624066897229886206053381840770681637190010265039336725935560333590163875534274042976280756118492217758145044339656518932491645245815258889404319466590019665152866735801894839052815178119574319439183967933971804521203783326807065412298052523788767732950891344152243590119511299241960982351645085478597131768985949345753229208946385376209259178619293305961572908604241435371619718587755196802924984577903173985034563759496992577284470334162660347017151111903591105444044876309445426537518752992373372568668206233420391129370988853459035517762064010180250234637434419512514134771374246223525762379469179586256042359978187338914965678501713938036181411879809572121276887765814559511256407748380116837111254712324734927964398563998869152270872037272440987652130578386875897177358816468898307009822258917870245347125103724067517080504607250652397277198459794753841434045674859521304625758728518330362197979521283236521268790623686829708487203161788860992641090814143276858233699296189928572736506532671675168353567531438481969072203814448991709007475797462175433013115380398149330614563198534371976980537739503129694580069316583498660589302235015787923133809863524988340588601616149894666046682716386292411759375084694544805240448825004665684757106507549517203616156659515301030354402166683506942973184371699249232778605819833059079915019985429715560065735066820488910977348967195160468824972658396069285776704441143811416856821727105801998308856199087161769612634851455123355034292142517416743150436124407011203488457314513195325421345656504591498896150181141746179263825986691933085854333591616500578277312080977185548329968163610548588334225030392316174597202211715063466044735660400760757230780013744445099209146207513635045163897525444059001953952759156778101978497152685218003079427535810411227301492258456814134264956603937755773369187243439883536241766817653928349415541226942409124722763516697234166249516031195492466380892689629647009001386026238739200942676443499723186453746722582702927898382468092365059171757203103502858900989759929026700306952937376369267868305593071683697888960178056286951796046176468311580677659186177840886788324148313771724867357009383727298809922089542132609987154768075081766523356670745274176498313349103948816704289666380277945573474728258315662155984000966892538086910689859321847982826924127022361734760199675984540169000492930562806067643567981077632356408452984728355230325529519795591259854630748333247966546662511439062723629958874789119497207381250569007859000369874505606608310696560809298946481836287451870195023428090272445446231104393152141108467065991634660314633179006194698519980819485466484238165986616701191914275457016677853772329463921413259012117357696570706057836470998709689332515112502750905879770871770729716853458550864412856760398747838348238832937277805286234412704347639056021712311992003795708603436001992302335138782169606025850909585739178672749434228156444741176469854497292225258545151540391036835083353081523332937113014288129009499819743821456732225155172106269766091774943240424567168080448420277078935191258361283347011074347034510365668020690993938518786202629111739028583729902415846906308934189142956570736355694428121850369747279463781245570303867954795844726808928075223605974271174067126457223129625739275348603496511782087617629562955819804650399031309310424634654957911755135899946150820468975487644177304473078603461864437127435137996038077935159354638826882991047451611204853769099389940269684779221545831036497993493033970640876159124589849103560606599010974076086696500187791038827751610695092355629148281877353215299281416113945648453271513601558051124415964219139267676890699219898583799493866230759831793096859738367382175704127618644051117372835732857558815173682297242994127822102158956432875607787193701859413866209849956581959853739220518517301541976651695564384894569234620094148541388404854980897562006155404272360608407830416168432196598928614106908383747156412316679847630517301516977376458172457738765867133724840606540913404813891085471233694657220273027660221360077358906461165047745677185505166991544869686267649073852273573424025556761383666413320882347425205901932251292278889695717232638575347272709675766568835885594039738344693965851024016290883548528015021197449320800473957420314766471203552939454028935744566989677732236830507677431107044679075105014187424260745260155232447098552751097600363064214834744683618632902602641021021742062798871989798102922275239145654662174395727875679669843290173455780236711427933993958254059555757437007226944032794747832419808795782265281823959186952742761268299778977880423633241791552635494783710974532179458682342889655180659884494317554311642781992758451258578191035972469555663026862673366133939872936405986499189057680383476209813216366573709180524222032229711025112730978742686776403092753785975793677497551784227664895016077427797788985350634744006466319335939733972241229996895401189105147188558748395963164606710345441895183931399121118958187068775874573997797831643982997573433275353796017677129862880381904594325505305640854199246280902035834476403609850659497045160575523608078479274148486146211743366746290134305298627350878828935196466136017748025322013619995214967146809173422453994238910376747974354978941238627246500861830877214268840648857728893418820401858187081074312928182860331780396910621148853804792769948476173335058828144946812559321361881944034636614696547845528798463273862596832284014340329367077246612685310531128665443046615744774728235809974590200964739647447346127835703224747313223720508758696289920266558022808969431454941320772236831043731747927564139336116367247396005792465518564931165046815262668310535378395390861429758532047624384144533965330704754211454328618246381752371588545399496312110421198960851742801027959820198726245686006665622652371576368489114666585226718874077638257009046202351984002635503095525190930284337117565090757171902266868060425405759078798758813112047478300170251121908128922747521832044604705664764117479490738020927423203467936660120179483564997301716879948026808366157596545942930210079581863917057323086881110355451520577004549995797657910080825291428973849755223914228005945475897738079685897267067963755826805291270092496884093487783848665799823229606918460669013532476785662720752725090169957381598380876763293703945434470817853077023275795222595857317725059461346938072450135040840002966137939837642053452963649985629928682178777162553853159547155664325408050912077030133995892085502057206042898185335866498852879570115889049992454742849657800514744374865520972795076576899408546628729929619684887493785775627253247900641060685939974705598891201698790812966031107427165626063852513120757134387859053009281865948279222581926367037384984139910484920352869214530503095457882558458509699809746120545728586611962155671126883940150324192501320980548689260557847309876933816918885299718267339390125412602410769654513229695352382168332300936008842164489151729982774671542897072997890775182905153833662434803837450551967891519040192928694891192799573785532587054288293908995706542955131139782260057434763503530868957929305565000244285399145527119371828264873302774499520363259522206883833706172647223898595331654555808004213919663883664058051708999048654360080472115315125846934213368772565723903538490465665337453082097543194435628264249668854608557846262960768379407788772158162709849855150383838574012983425210129624323210877777534019134647274997512196671558168704569077285173626170039104778828820636492955066169531682261075214379869178287680826273100765820096541850230520834833450457820345176801166966492709898013149850100589857894154534377362968747955897300811870668224095279548719555282818238887716260680842160917019526409415636488611301103199544728076396020873295368895500574443725316609606919587201583437765919118147799842130331389582509372063131283881448463525234734412038537733079822581307346765801298875893233812049241241556633397650754969689655486083719760910302521611640514270742760030643752398824050716545615918951054574446067716429361327582044456105564217444805030911589702818576381940852778457255128401967862505671954004210855375871717208411819472538364714473069136946814634941215174950804898920955078092638235356758206763062850025053884936464456420418433422834492267700672360958402060682819590041482701536260955950512695374443494705035879495158249219173476336844669278613046719882099125147354928314514581804473853030077519531116265467218972372082352031902149624398642485553897780857837494902842606078197597448195949202394793961624034079620325864908233855548692344413579515529458994882259698460875452351772177996735234948486648610233235058560871451743241241329573325224757114499222931576361797501361530006994078199348541130970409137562285438993280965415287495882104780837353794258217755492396860445848446844586351407614280352347476058627958878551950784772429770628985241472787725482618188754965936340911974854706433185619490510011127027612881825165936840668157199854939337759598188695529740619734111116630612836178840568289730690885551929840895408851682952206234670749417883734226718277948690541994852179063154657956244861004713439535536654236476564284327425427780335020310548433022232954087502827853101629322016337117243040038684372905379783931589445686389932808203994678472014357728579095488744377296835405006564364259294942871267585912289569418978300537522539868525766002874945375012343729673907908201854935278154456493805508755062300864647587919252306080429656444287247644612550859448105866056806180525864554867067686333564142019304523954241356430879555785602773063844574002341638054047590462232198532808528456211689848217441382762334817551704400408477375223439636543842633519062900781218796471316175355729996997031301361191347023007806406678236329226043501224587635059691971983639425249705544198040015758368543432742533779842284547388635073519039404990117445593022538036591517020758149125469950837929854923742811308507445766144498814062941491773241047742470060402321755213691598225430357551981576463272549184082098639201739274798585528065510005244891935905474868830635469720748098753484945342792220898481470537405277608779901999242061781534396736725485984582338496012751438790683898752506372624645004343672386649235277607392413395319797594650931249331696908116757314538180260499564326269889888551468112398391540270562840235314116434460767080075105367984081535489446597711404423478082731663172628814371027994975417014948177872974809726727784226495012377385469883408564156800331588102179508990627903006058273188933277483625851103724244934829029774750471714079017585665521585642125827061992964736865126069306777470470261130212235252604298006492068350137652868624281390918883881821484529451092100331201040561796767700483616529905735092545996170809510364075943660289532638862623929965161766301087228662048073579778378161191213916340759128244786691644641479059813766045126516940521479343425756592413321736399801226808106750468664659168073338070728345792864746074328031872542962449788862260094140424718284183633030804553294007001382436516885187499569781014406701341737696387934732107887556793319660665775285759627874773972041002278847561385059259370856148029224543374097935588047765084108385171049960156136719234794043578604695274164287269683198204957039700560258741868436023880097868313173960132826351246621123191362948215711600546984870929211751160707992205269109427371488696092921162909954977196135089724516078173054539271242869159796133892553560907309295644832880245234300331975881787731024855983326928992154741868817772261527224502495825280016826014197578293662821554943920948018804177788681802188569130314734692732497078670958435475095461773074969712719327701328024848223668454436614739073471618558800489349861031394387190906406622965924656241542020957781284657313096073059228225753049383787655250800113581873213456568238604847493124475372547511528296293117324689103370567643867067074928814235288492614806016410288625359788800319433230522913091800954531818912556462450695835280358526971122956807157393882651820644955959185201647863159036264743619280859250325211792553294074441918341344456107146464320635888532650337396187053401354556006455562991834839733796640937630574119927953501376504661736337399683855386098940281826639200446568052296586050464174475116369326321895317110107652466580672458514665183170204669982938131909035753858019754818389771064874288293185383370505951080872682942847660091101946882071674200415301822939709012231990195727275618923715544766885992044649254468444577192377361327575946841108042828738473357592505079149386715510792144160015010150395424092067874720484677893785534888263886045052773835823452796959969681734276495431955450902088590427389922851744048417094185202808942480214978019281960150103478776121442883426508326368009612770035215734819966354446273364240046462986001590959745248141672588549329463982797015250668557229387450747791219454939605543828984745453009499004318880768820088583504396537249203771564614790514898300384584856854772952429798477700013052689954156616292593684221578640565021689106386820571785655844144216385180628866967073086699657246749998439629676063356854433191118431187428589933462697158675118372813724306793844514579788684641895319788450752338493819226910713967638163896490643453183193841410743164611327163445977879547334270438620901320458764134502016019958487586529169459778983868642304431097167339270614795156559782239437863409937674971736097647676259542167197529092725917037850082390642640790064318792870448717338715900637834634248259914245116692228743105461255503106805494820623874949539161897678669180423271929399444324022696038228118680652689669105042364486494327431912277960835162314987584309972954046473643637038450921771915679915026152348587084730454381596845994127906689315105066286259847936936216610837455808453938896401151014242318425776476547449167033002055395493475038961739050646186490242100314791986417467519078078292721655812963430942004024930304875523605282782164860968290643280567964523572242711309464836705139635175449723934066351281269588402085510736261996980729317003778309221895338618681532237401613465174712245811941487124700094052225047129159232314439763452211239933168517820489547813150402673045413072166515752103179794387655343384823583666439172869391311088840359216209335728152227003337487642346922366584630158070535214464817006423933885124583051252011173070065061727171217517483405923609300831214435783105638731622138468951061307269757856067971916009140978653203339670814483659710881966170393675974897953716570564331946168051351318885010162179267869656603972383225986253790088694048843654546527273769191166536333099349419286568762336079107160257626096039013896289107282185860196360270274778792342555014664611610082402034173920275973594343976085598773215193541885823778962369357642986472407334650962867430285133874279300187169991053246767384206437999353767139232991419093895774880859110701272887330768648777680238931849340157377146189297805978473106160012266402602952365721993422721267010364706445596349284801849631346043174719573507658361661777016660324609968655018940813699693355365634846602292166939884574986310418651586994575206354242921942824684904800005931068728630383917191851421214855440843995998375069993034464432524663537299621289330515330590964430524496712006985742501325827922823710211000303248175335032856121996923664804214911779890130554125478999363732927286455132597107730863772056391422819723177599630022846274883413976606233012131138078615789502958388174419623190396454097338582107341201392876716422538691716729576263890588970675282621451128081732544218809023687790384059794517249122913982245335083240751390392530749868580783813631501719146111981868615899110188645505433271366442274393402501512972990801337749922774987205972079341000713216063544331042435034227812537959181129684546234955254133722858843149217971497704750861769916597582376849759011828461671916263375983762808998365707218747092018346203510743017513211622935095529192216258681688015282684004648978074008887465388612041696347159204116124735048339846949818400968841132585676309329422284586413060658838272285619173373657912844383206692616301342566675238736398542680737525000864950076517873692117303096533720231429245578402104336748350245520904826715608868412124483741814162540871809359027404977070134762016226052877383689995347487997247642475336357119450497427821384521221033418053219295664239963021222015897484627049130552229081597288863223024482954386812244119611678178472401804329871223857830736495022504896262415806326564762064639418287874141959832020349337178392233889557665549163385425889159598949390812419165030852973099397306218502932894879013385541684879366034282668750111563102649511496035613154307696496380299359479363434744235262041045321217962611538990544969077796194281850061463215166845189436226664307750077500366654058764731408545612719686369843922090862797817647940028246693915402636512994009074323117228867316586946263637866366394852553872084297973567967898198130835317221132805097749107063096572149000410104254037161563770390652211730784407193456411218833240155447801656598069778153186848980268394419932038779172328913519287193668162161590377189379259780455575739665955034037770394946275376700155811442123638777321424085315703891737974284190385963091423937170334879413208312773773615259039619379382532210753840505524268654209653395250378725730690312724131873498224431252478096365683142229911200705147088413930620694104901939746813474265462975318795663473489892842702207695423641772834136150769309190740650240337796685288006729471331523504646124259649119503316985433163588416348754019382657177682933587612027370125590902359885124845759969273323848074399869458753255377830410704132806474258469659179550364626074777789330887161330169947361245907733481089005245553766338888637590976142026980228256345359190486222984210585133573842691947404929983383479575084098835206575892006981523749615661873491651427938110020964602104839535360503496507682012043453675308500125422415148791136021879038122169204071010109187756000408527215209921821655746840581878790123294806962409533083002204809830597731423272577554249390943558734245991177909152130965945490737393204811191345618535075610552744211516131308212573681144620160525411533663231395767982852101653666522667912041584986539089532940246965373557809783102784872668447013663040700620382692777825690680490395986076944185097934840200413271532624854259124415597537732047211986247986446316891077633599932683569457645174727533797305228717532009200182008649016587197886566715987059871414084656030881419828994764643924633674289358305562718817063941058253700871240866961131556121175629284967361238276428883848487776410826658549665965456655747312090560166544277719765703402046254909177848401518629043578302830004395337939140596600411075032554612032130919183595240771649276492851722915687997322174712489516892746796004244255872580579639987788810047496126194928176448699586170999911099035345386312023305020433102500891274788261126738360294769741830843160839847267026029770800583521226104788846047885055187850111915802352104982704880313531023192773594291466264002029215850319327404712183742963332958358404238032296630107388925542143832972887193926202815216775036811374130286335139619278266076571634363094136288900122222877701081487667313767061677612575332219782784169259294487956094915971750755502808701304989330465632875222286316116355363627028841217649857795493817037369226308005190980585375489762772275067601033345333365051268107821485086682709454318529466882987754265979325866107871813319029963914132673448992323164280098981672401746730986112724627707160477967125482066934334742581558631753873275078549645851909075985184521845732425840548216728977001769910758438844088782374603008864148831072122519686031374343507118564075058693624319683887989771790015755961904860764010603019933740232503817932591232888967030552791615594056090885073059285476023060120024858766919846005556529049313620466125693731347285781522040818624095818909083786534677429080117427265288609925290945924094221833347947034698850126600842415844834228667415544487164946722251130972474786004932668298096898194775503458101779175421808685270616555680905999951267033559558678690652830707203370310459112424922461510050161582572163010425013890822807198470478828893702495372446391547084383893666913359403287117484242617545831083742940868429440560162312780117132250860939935353886349328927616327174448789835235336178612593904006306198354190480322377807755918624060259121446868376595509254344837206543711151149916538621765034667996978641961283738246830962068770774007032562894997317821412323127223201097457979518397929138426687200456857902916251565891627751671678418026814446381450820495016643512118100262245006878050778596351366547784359179651252990165784295716730964931783563021186387733378422151909763757341247166969081502350127438211364381174932644618507543876302230397701058640306051864264453350262315127484300606892411439069192665927728493750843046603936853502605003150768552138902745708988189386079723050106275002741451881892702105208869141230069813842160117921131814104903084879079052605378077446673037166923561171500716220477063503551150908388711096139449234109337260752677124216881027970612194780095225663088390377459814637804774840906360389239827615648854688331524576750571834456894783240621744094809993607334840653057356648670414150329604350670570585571559118921543278256916680408073057713383543628481495256653839922796244553927051117785519045162273391361594922213537344776338977325298612563808335426701241094127704191074700197021059589175190648012695441238540819064542431260058163491262450542124949412911371098916288599393157376336436867023584798104610571682551555521262318358354804759192041472973576366845527573717713206122414705912281838087393493146090653780371678333536111442477502536075731119223727666516184022015243361825512805431559031733867637456157636634710777250832414381671236435512810282661631980329469325534279175389584469926542876235905560326293602293251480557625778898157941329639171007520474057448899666362943098372664901481262175999210784176463376988509509182854011921462023994345185104486132404794145284155149678414872733170310268923322178746314828714439368930877270410640699842694773222521788618329766428655040488860160389754963533708505262825647077205718160029182169504229698491654623992925744288212220453087576374521173967324212227117149698535137376643341169018336089232764001196237009206684392411078023096514695668999818885986272853556175082080639187454890179382084162893062692837193497197844499854598616258189037792234670744033792105170655548698918081023819648336070689903306319428489728870737187922575768532357342480248431975214272554674635850859742509270133675831169310717179588605346581535020159870944526947353585344966251569477649915977013971659395919638080748822639147779854054805680505592854504401232189811499975663763690908089546799610467051468240973330320099299265641100294436300694006663799262166254116732099263073710204572322717035186695663515248646647518891398605237725944153339438677994556307250803319805899149563105543816422102333628472414737728662372010553489955150680404402534654909160311586485207016906669972838638681999871083168606772130769925630887620902859234149932553470431568126932962939742379422943926934796925899292442590699610133289086907650842899134143897620614193202469222226561890903942449916341875876618421318850172488130610844379393958869181106867825772522108691565692366462261067729445807624837002193678058842254611380915344540498612635633363811658492194837485533675221552146814803991716623260401400709600033962886149125976096907149281648363004444189573298840263126640170438854552661980834014352398318439600410018262077143181314499739269191280010966326185583601044270746432009436845963703947862766534089131554286601386182523758947452295375517986433352863343879537966970161484064973169284494761830945008799761759177083318823143755847964842910572095325092780765423962698984687443807558073191216917442311808373759230066850591519883701699302982932512691519878780677741736256555725244328790398534684840001258323683309362537404673901408739916371648100704392146565830111412042961851945841638160637673062864962035987022015346224299719992315728873232894913923858299207622095298529969775353286639636481840407920072459645024717387996962298011477100983049312679999461858581669048422670742586560470080585112606722962288249540321734836381735191648569084300782389660161127607613787655553465439456540572797132591383738993006952759585680041751874657048398025675875363984280903076624802449390540784988542631759035596731955315811470142955989576188615660343983903910729803539567639116777868001451825025399827918244751082711225753212710585585561942452173754975729072230572802343497779971029098643473896668859117274711057881376977663416302176466446017705804246261322991189434792832964175202993345314568383933518387152403102880792765961819365975186393935611571800351462390779739655064249125770791707879583531090955201627993903945733939769498542733370193534306082769521239983767422092616464498948709809604291314177639178836769335438029161696579253463780925626000180849165894361972672118919890685463461265277986735135801222230589811109413348521212981515270401658516365469667051395412061534963741306044098055129692178146455893388610646278396443192335794812672388778793434978013949397605620790179653441848555248003251380124526924310725261540892107293246401929097112523206705031813925295125166833843495693070968094478331991285469705672651771349977637871220632362680717190234247696414163909604987048339221938786927831882145784167881914959432087153783264569243482220161704164683054134048327395064501139342143485600007003045910521927835220930827790159607149340200082928689335311232019792959460420960091439456272327029383290599938853206545242974509162250596290131882906405484392162590087920193128909674662589915772650144641004320306704125215253665182160445752109113882109637798781809237917555615170434857392645267386999166553234618700727934131903104387237178741906675168485116374142917812753628288439539272039106035396263777884741023763718574713964737612420875574491149337531591604640555665157487981425331374313250053393636728265738659481295536987096366098039702373259814297444111930609033277191788363912898816744117116928465984704153369620757425359111018261475884822895902206020207973853714924395425199269766401108443924593228248054689613459102601849221584255687152388839870404830302673289873475306967927066830864894541518788342963162842433349933520004321609271677301634005830943316372270927253224828973530635291535811981019741824082466182042455086024992642104928139649433720764588481135255877905642706949912408012073612293691540820942959582571059261520748108116836493445188049715270573266338964947186031374434140471595469344619351844699713993825110653749492680049986740845993371393369146143011717411910028313132115520051034086468798414533615503625620688421528967560702585784118032837080075091063263058950322587877914519151579276892441884973298723790724408464013203384755979910580945599525854628753922942824693681220311231639383268124349995380936175108600103379371133818426990546796065376925461174999980823374272131367728984359739516356883148152946494999378903306452932025525494300207294983377066817666010695392010784272042039729883291094954795903935786712796106904960521857856547143481218935595621754739970362489345350796669753585832969916337398467566330742077157253075800519324415998356087920863126450081496729312927113899628872366031715375038586109493190950867889534987872768475397603990322850747036551307611942584919192803682598542947309901489551609990522445651979383321820629926576665019070757121397053542044416173945834895068896772364646269103469494620572305158223642669466089161178789248532193157098008667730518348426665709103119196691443857258992985039960863850261058625174314458806755782968350164331814271938717494383466538996067555393610033351016046668502936640775324908883163988125498511952903510500183428068053944823920887616866638078911544399685409535526291972807694142849499844482193365838200779293696511602463417159291881611978955084041622662497323714693808043255540525496052655148335376508090014355861841818587762010416475449713035921380546657069359825737257148396932517125407355242032816367552392927002853694263622661252372282051850317097996606100665999351944017330753593355913771227914110487317516531920207363319345776003460235155233665237806737273731493706390089030877856730921258018822991384824745938280612933162051287841134324955817009398967309926479207197967510440066929734377559827376447044644581721290755580240760265054593074084966720339629996061403277797857753535229194701838882179229266874855419143874329161361865728368160914684637444390854275218256266881209084277437359771984496963202809080478571312949329425436694774586690983040788165024957690374025979942830273831737747295488481389326746383080694793072613713096516540045941045315540410624806284050621869568412034233146054098165150424874353595992046213099350632835175843863668474017352648742039797333824960430203130227363376690980493124442443827647464566904353323503475084967106058393306588853305191984644130893277569280036048696545259044769246381569570418706220096448933383298273638274528069399488263547901717304868733766760632909591595193412676672875643412874017013835117322765673812780380204573270056564122344600314664140320201543687534330372508556621790921029645705827940395193181006144874285417312250176868306331634110528110080412201157532316865175706734437449907234618744214704596398820274395385121068042757161726457164795666914585490892723728926664963069017731152301964750989143913031624606137970930132832729392278697393704218084490990600682963497937523543588508361145791577756129859377920361393705138817085370907403459615825751522070577772302325147792112089956943995092247196474827220169721423723584375124727841509579007273175307324434457718055034451249867748758901894683186927212002246160540227301007476956491123458153732250930329425653130313998196392960383776918333008963162559896627554640042825261341358236684996786518673381944399436618060924071034921844967290924039196626032835813748930645551404907929911172481536537478486482270502941164402284086260191143359497523085979267102357394585550470575899365633506324741616830824142222054903999285204389283424064259107888756064299587062554428113354459598105803872155987737597861968938302844057412676396708522561177864332184073769479749052508557639203033374712637332833269912936107569122661279573585212505146842596895736467185864819535361413734347102539290970340023688154320888619313338963116999698048508632584950352899941845864863132122917779384611052330441744476482628707479941263635308472823743300841651255077224533013208713723662208553193266893217834863860763442600716881018995353433832924833788313614860736416446358705591869223885002237308381489731828769305819363435551885539172760345693976320089630390801967943264101787680571715040551837259203324582750385128356950806907589578540206443626694956739400953442899623646800502409908462893583386737356648847603645092949631691642959176177408374506634664782453475644069164245458371192151463512788868088242983757235438681952019428283876813551593464169916205087534774016254598530719394943744559887481270677017245835137183274613207175069649663596309531412663542897133609643701470874451182013398750128667353312808078245991536239186935079723734451137198225964015875732698454226894605732289531473417647489630178858118608594594075554721193549768759600042259192748073271390155576047606443909830708905521436522872599316610556329125492691255903240484991921517764572262225968868970970126041721983529823874513259233621857059188318548779089376547543813567255470950808684290857115645068296531074929289820001151673610365959588378833209458546100663278879856948808907611043813241019973603987064683076022494524652499300491681508852648330050069557135131206449193029572673324380679931849633994497762030382527932017201890000410761202751808170366472941837385750665966520382555581749443014096242058253271596814341620007626665623917092167677973217900609144155860591427775569762242525630639384130820551894040029218821088409026823675406591514205806443850108299164552267838606757805638356581454863793303885874105654706725504573172508294999550248356363541749372018977404487439537054384039905387238782860727973947940649096300426543690201720313797241358384946914830184254421240687868635538225031514991729805962395406251545801207194949271626916534313885379839810640164164193413133540811075927222074322883698249552160615257451731137696688194826253407461881153850349809809532667506682788711850777451656049475051112535309330895119346636021848952699090754552028362957201193052919278970765063717876597034341551277139930973822514327330965430678147101203265283983485129122783195022753318520560506454424011362115402634725883740927116638107058837396442704845819886169942091991882044352911869809884733921771503546834602808034391427943706407047254146377948146491095911924051603751215971304092110481721381774086629330104944174204299017096285621313601026546140047755007163996788372269253362821409436377001889920548671900946586253275427732459161891775521977803109648434709502166841063427738423995840309826915041077379665149976249430759428973202940545920280658306848090060600891665422978074777634865903366159360880960086237035432787321800229632458657623468537484915372712897808596393729002395438039717518434684359545093477049384929278023484826045680519006536832511638225762425194510601570153243494350578703484944279251843916276058801468879907044764460217613272334466870802253506257994907536486325892375648875831692508587186768671170469577168516568029631962944872345448744429142808557295146299143426599058146055998596632925976020341381621985041719511216375747151633959867175578239005754606081507123396233706809016788260802174063362506681301801208397317840140505373406118166860878415389431241364566289683050251227056815159363942004344589715230691434781374515690599287384463290280464889134368958493086386140116204995601812715257144534023649811411718831665655806911345975853508825113751500399332350718300707152590909112953670726499007284642723598245243254804823570065847283737022868875445464484821410416093032770731972121756480963206828125522619831632598348237266635237808836855633933499426850978830795833311540859193338626624262636042899529797357329691297479963781054843770189684525508039447737353546453680752376261713985764329720360318115019221559341863311685571322054948303739247620386877148984034017365069231932997287407641483646683538099575940322471089065036399760195148045071267052254514804915246496612247227921501760336661216225239472624286264242365370088941518326896366427304356905441458681089738031639023704923815494680211193354256442984010092623680697208981505556329275366011296237181883551936891342775036054557568359142459948176099531288387065516632257522505144335232052600409092954894286613996845649244827704493188529765058291916627804548226575468871579401373290336715957183370600108274629511969024779291968283852257077258325263804748090532590971832697946399062289610717174522157506456717959979599071177102527101313453565969732240452793256531648558177435925061786493602173710763655230406746720197987225831827465839097846050315779158053467512785154410580046521943984548757943540256511693838914589452826756110464964521305998233223841183781454620094693684360392783229227272410315379564562508321341623364015508575862700609415446675589241852060013510804094476945120498759219129990058934659077548663124128819488687367694845976458260088107597325348419247720910053143139505253653550205772894070452891363294760455266660895879229970853371086467374954335418795634712367700859874650574980190373828914719809836610021125062514537863602661283650974211384988124118639988584397997196543247283594488584743686765078754091579541797358283499535097331583967254437765758916681722780257450444207709296485254440431973599681322162953771803613276287486368828602150339453193765631944393606746395431930190383831799514698534452699769673497009654384228669715862463323878462876772138099590595764723810585483891851476623068158877925561084382588024859476790067493624935460140354474678206788690738255707916612019822898863561765427664874912311963508233089684619300117013262064744484001528690984550387763214751414345481107112523583708726815850978891155345711162619195773206945938926827912235675724869669794772924184863618974927007814493277680369071132150751894922275029721725912189324366171511098053327115427166830135215976702509980985101366018395337724845676739387454834829274273953501176886648595560037007846313576128604025783331255162233591219410892005226402843620963630110521695581220506926421719425563228223979761920712027718825840703117213393997798823566170263847332671210935006407729367436241550118973507721786210068344531017110753366231569101948857578800646807247611903177558540737832990941109661744221056430658926115566218563669440071704265251431092849007838430715568946517901720694341048617904048004420925081642228233350321649420183794318594613856517237962062623060665493425359469751983725876213112051168577745113574404968755719021795662221205208817889416459066071836212266991708666056778334485865979139719826420416536106273992182001034148938188117639711130283561099789807300269325359730933581291552880264675414718446919609914098221443968294016552463794758476162691147807812113071268243067897252183603322841836958725782927230939102324430340853222780741555729241786255179378072904094682888569509077630847352019607802881225081895281702779768387076918128582956526332863789024053370460864072961227465061318950409060201678151027581731455635859313595904348920956237769980598712617770340014874753913284632407326470204773073479992714313095064679484014436967918962784076231366952778371222638280488520708715334993304788234261126639186142544263931945498839453806697573511031062479875739627631632261008432819126307113800593128492386236228008816203134201730199768233073794868305770384889356632333607915849334241735957810533222832353631933103234353260601741586179983308532932231957452907416983481845930064279002067657227426145900876968480073445636151697073591460617066265147632223247346682736933184134182687956974696971524919785277944492692097244799598002349662139546235422605447228595688440477303622240634635487901924154800437969919270052866022532196264697747139678297104748217887922542842320141816323700275971309987629946534184349639890426130022994846933707613949724133914615053881487500623962829013214691010124824292588173554577464216305694220445295851982083079893054064754686605289609974579148063732028535600175044405976878775379254087029748162638520167188189928740829648079804674523431914903015108738986376471092078973709962588198230262855071658247675470656979774292623650794499357415468404901363337466678056699351284101520633301212791959598681529572041939763636423337600004749413996192455896071394281293172747132929487369705309630448840606842174533106846893990720595219211390657306325089878664971362471802221676515060619762207483863778719313151130222006842315379212820475504484931352881827528573059311817204002033039390490422033358479685692806442078898207230267843398251517871377145043017328499833206871411242074443027225512453902839582759036524376105181501599728891910136081841010472692698291062255939839912624077250622435097113368916283471023371450917292704194789230125290972020670501610633561575038118118568288737701855332481765361431383826134575852584313145613764963289636491288351685818654790867312049095771020362165171505501423116640385647913858954981971860811018541780620311855082567983523906841329738606034634239696178156911866130844113207985911196164954483353549713679172210840156375669137809827533209277677622163307333256426934625568133396943499344545411360619496134526216069545290651994578634405601796216356583440309048869059823816653665567009493778352703694368123423846548887168084409902606163025832791281484393857290758275833636237093262512909921673627762664346944759868019317193189422458548172738318731498950855520544959943090470621767524364696996619125741107181822619945491098962128761980520137811531229031661446987642966705939296645742952287921691426876255110060013538456993936718370975484510961871242907047512004110706442662438776547136348116457700305820150706255344586989058483649627278892108321345801720284002494636773743034074822603798417064047564264925633911937555616415054332429361347486410028165439651537462575911459057721026799608041928473549721010490689586022382295005007073590756294495781401224684710598938246919245849707582505416174836058730458600248660821031269561047344630362900975142667969316748397434574455671836144152810278237075482199573106282319036330257546769814856231343583419614650092971814736370806884302284470372039004681039784956294518956259713155345932454640841380030537853789035578045436507255408016342593749521884602659968502077919022432222694646518633009164849286268169708365688358854557710409976741282522271916494258506001261712378853814479233952993678543616327280289558413500262317062474375023178746664996824150560890740256880632418650781807950820514645509439793056206719747530384003727215361090344807300835187510492769970687283123223388625872808270902967651251664191031262007505468550564930324610209731763699387916822197872247659169658182534554874679883250880216219586930941923558893660276512560008088187115216701166266377713795017331305941092248445756063524738233435794680841700540970500020534077149105862356776234844371526853287049304393394642815596340733706306439176063718006389762162052931142686740428671239756642998535702288311779187806521037402803069078901220394785962498216125592102831016670546414732552086377851511444919287045549090316145384674175340996632919693402366589407745687223674256171854440642289986493770349111115329161872646028354550430545540227363676280712071119686973621082190319437779370310651251438648324436133590213266107403908751422148676119690560731110553194251320597080833273456725376240257826301808934203698082954389305176873652332963793324223702388663815289130104200800930501629055856696593396428323978267141296902503964954093769213159588515299803099532122914635279405384310610377184745394447056847069524959210019267454862219428336258732570605403723701367156547720616138890613868325810171573180872225942944651655396958718036451930671591335689005142407418584854544054835134198541576651628450632720733860808355438739485050216036959905752655839881619090842340248875000420621553039703210014848917793309882620727988770040828358604547859379669838959148645013836713792455363113671317591862250547810562451258620796122087892220604736851903100224817356096631185250492713731435064408401160444627373383974258838373971987985286015164592579019003567819345043504030879083189228421327986384413575084284514441081620638884472704026959320580961208353510662589744822795776337191843953649449791512748265568387052058496936743587836134404822479089836788303620627531246762763531394889827699791453852490596750096002522526904068956789649185083891499499781070346664389994743827334282808908173321047565000315478939637658172697231403480544464028263290503908199190159317408434639974545524970344062150717492727634560923322655439528907879014982390918113297262376005844667893794131654997828125779121725082750610064979429980135651431221969355616700184611771778534344679169527483235215634062473640532617686041599547340905931891183477652654470402936081833528086087337493317972465007016839098179624570759933609050560654100816566641553679059799097541995978358777034492208683637843300692786696018488064378982265514002965645758744316350297755082064396340421443013205545254180320444284661629914168043297899186958947250762493202214850194039667919160833732339453081831108727396231901399026483159236849720869071300319117330869978844316344248675149183023813502906495254984261243429921234213898334830154321304450606049973859061619651152163545653879181471082096936478504213317934584160078395592328785447604355627677426298491109886596769909629988149952882681184497879708893902266942725834585427492755373266827712653510989665771717969579006427166610325804897170988354907670008619589408827457436204337037999309372558728068280171103248527284509224636452790428541123768686039824572446488559871897631069668507056435208826391952434580368101829725116511570212795454084346285902911183953802915911778457918008812775620827342342492227548728828842284956356341268612119268241686050262311764923302256364361883960711859700709081356085321629854259028056563697213391680717165680208320451150985474422176123991644401202578545939581257847510240973810991987580858531630994958606659862974262411908755940787128044827422102733739009993312997328206265896716368076361431469082425732295570354597091013245648712747936982400557516782478903134734637153877663910824784177554304003845278331643040158012470895802175790914046617891363429444221151061273399169095819432185738621526168923263354471653727001997770874003711553159046591702947170213162908373974308914330920323829389439715168663569049913293838299161719690104934080002828654145452022689473844797756347023673265563293658593857895605874500347145195609828482449986899082455804427229021070938694163921439714850660628977439540214104059635106118220839431880223225475450374540975920963521665194159698740739633976742687813952594974722494881801569561069437537854426955760286917403350899773555581832708271776568482817850561215082914481286259760933890912180912636791263548448448084600710379236939621608131139395575673029034498723436084413838549665778240672379661180004887934165430367468395455634541926779203654762139296862502797882018821343519325353450104976034609423053821655889562701640313135928958828974155803077399963780118908534642625500114855899465612803757509524589424778284798205658369679682673516101812979647674220745625168771336867521558279767285227914440541705358293179796091230724210620444624802304457852259027710279383686065997384397581078903690449697491776085194051456569540827324288895232133386036124601708066606553582009007184854555051884239224147064685711190436380611067782140871868411908305120549644344400741884579008942847190066787195985261442988107855171478570498669400978069930291864473291306445448826137313031691493620693000276865638611720226113457002070177864926603975351189463498452213077943582281980922572547946361745076067859361073667186722792918773166910062136800225160372574043700805997347483786233032886116391360489587007641078938668533309191027972936585366650904046183383255321220552888726550064551926815666411932303196607718553594143017248122759145095049968898934017943582130497098825024531811584598765738579876678495833063628813965450585748293995301990034038844649955811213807459410652669240330782405666073623685763043535362933135236743674554061512785081490896501951381406122617510975640706610227441705925731385527968992584469352489361440029835830055732271098794938084081642641026595987964283213799839435182470247491143143325121887460260161851108042163116440811956576772692644184722682072482105630293738934411023574377968284185415605847042629743571944711539623640260181087042244762113294071175860888745961434977663747057138661613541818202758362482282308681841815398062388014004043453584280215002734391038029961940175603269062439139102152258156898781923256901804142150516810998170343042041448217400003941274340813734438487314724754644263462935831807935604737813309386513254358158746693726167608919851459870502499978227071434150817219185735394910738328477872059986003064868209121086297871591173714075426037117181447624863690378406639493243897903242551676124264321764650619942925745428833357596283386201164237597531009354064293623535622182447852222784751589262608478431940478961134189367073426583260728635751880164868549568603948411609472641355740440920053137249395565106122655826242993511758606656163944948607704339273536494940929318701467558963878468911658425425939598147673745993943669128890539917249234546750193969632311496116235229044268215599143269754014649564125454631985073416047667329948612440930981484581169629312769625841943053419657698281975121448059729297590622190305512725189038897903457928407541330235831354314955794164432941926790770882748494490371004413029696431532526596261540126210562407502881840321169286368565067551133608844615281943557735985883098580846947569603211714164829298623074738057640793910426295332621280823654948006888144854418136929269313457378524346616692100484781301133100463581294391515794774417035884468299970193603572160240885851078518262219092349626019861005946842654774235908614274190371277241068616827205860249384836724033899168159629117563315507856112290956363858954897633524560599456257376313627957565444015411374524330339914137264381649905315324682226516310634327815710836088425592453551197831919661906106329722235907218554818836178614723731586592216109003095934988544256766548670509160299720152496871123523729117330639196107338191525169034852946031400403772183211793970107121908537747377013250966899879300571993898749109251186692934315928777165955561594805088007769658767293671288237747906973440658988988811306912753647412867597938554539449758003650154549564652305188880752953382142787779240322495795866058188032249015273624837190733297784975254995736873994991969417914726583170582047509304539059916001346267004761785558087946946961544073923002376217345129420274725086515860710022272871240950910210264089514759556619798098564937051649731877697188284774773984032666330750558138609771392626851237389495481741925615856815625382129250945727076398664086573790671859414792532187107425890290488373381350186162318076846744070454048198034588423499949979561574783611896479172430231746799392355764905668206005395479404148588034092627432068757371173420330327398658275151890424463019972407284189171031646464183659053840592779076404334243066723798298627913063451401852400913894207077425823330716229555959186806025725646306053854656089466370930402109042307164528337220128460059269765750270305942377604662196669066661692356187373365014302535169672467715376568059237928133722890568797863917685234994349017267814696811786150007892318499465759295909449633403104175802306389165779449929173044859409361911146728436950028328081429401149272359114272269352103176377255390320069051394845906948322579870026920595693351081184843680394924923289811353351806861735495289562451244647402081198049791769107817858369358434148754466483289793315935571305936208327706609934597202651638831312231656903717106925881084637972344838938939408318566795066056508277951614258395966583127644359624087578443659147623767520792273978448914149936469284989254307779353948128040107928417248470911283190248412353922909713024964742903863166416292716918547608911354147243471008299960074843100571348283305754269850897178977412113128982040533468516354794776199292684247125631842403245404779661760438465587847693137452265512525934536203571273681091746175874122706184559260265714312705842761759954417683896990883250029440723531915402168246719487382892877351823873659523890536928883407530046780422975254629281202229308402639982917370814398842142125140895752912828851764528640640114947434857823471794084911646698488996585105629995807374933255813438060843726907411457330092191760304826263020877451504048103479401052126389615434669649344819965255028769172945435336139634076054427746063305467407094766910991697553085085967399486217111306728187451954549940375767711249714094892103158246622795880809263982254256276891059050344047340042799527198085157205395026686419815063456263064265915448627490776186285720662624329088620927228327537310306509814308394901432722668486608046391107280008177431202937056732026206475138749256532998674382244873222090150814582765896462029319697678112301917092234165700132278031481841844439623923240771626362224036138047492148368957673557723120779193127237771341856675156527557267706865504532857086856814306314528490133956523144066845726681255871499241169473353804029891232616346222012383374847477529381980359505724099577991100654522230610038159632673551220025411737350590766046212342002706207058689206967658448460759676484540764446009127520854847335225726330847826516059438507618385835316550187568238673028071684975974084737777948637738865442083210284737003096946925371435353491681111373516442805058943723366348283308260027259197865229590650680674775836032500099499709943994560768391978742449532159647012370488983048414783476534800621643627578512340586927629700719900623603115070673352819347967454333709309212148153383117381217623317251279365067067441589926612698643390784991016330167668192632089851442070340377770771407102145837674307801127270663058916867276929167907687083615163216500108693704899584280292623354339816369021856688137765705127194675375177347686308347137750411444923570639623771413874323921611691866401286750553765611967168158482011446066302123790857000897320692763660158425303376847764131377317406427609323044408714063068617956268483550507275194130286776304626045933163186165792568331407239884914456957382668167195788931856419602045270365863496519176876802609793019823648008940406580889533696212759909666255515309258754633260818716405394089442860298021693678264584557367551439126160460510416920526032748142529113470686159184909216543495723238079632657351254709514265758516543246937988746555467185648715342006508336847189369213772613869723401114375359099624887744985951370270083440546774140014576435226479965859311186174352328919401537072544120083115421451702940689563643088312227155430157734259257201475522596643249559074681497058308546491885520438062520248338849760038714340018259806720020354576686503823879032817564530464059626502603689320804509958764544040641392180113175897826263870572872796943575650669451478942677422413518087512395035937116071615221360326971413392801612314664452025954196745201935161512854528884467682892742668799477927215369814754466845344126275169007638297975586285080432245649414474233394707472260738699506916317348408423307215542152501721831072618474420249132908959818605922614520568229385282516747565164301890914459548391167672085592555777953555280416608415474482226371012710171367731948264386667307760915165802801560248378938838117577372011781201903220622228367376482014656435854446856359655717339151215158895871594037505747176825269052920566046416467426898724331376942869497975857205631011099426858374774364322534656400595633037330370973887662619385578948177536806387092598053315510038103576871149849696147908830331253451470848705665263943125580035606288602920045600868236568838733181325746884687679970476832680911297643784653817946521697076019129092275218311730868099421728350057842200260695726371482771649447824809804170389019076696080552922062409592715116650731678733280732261649485884943417024032525057424607064390229639009031266448885173124740118244732847839157987578539086208001858582551520332953914498275821524798782782304056375603711366341794841652707092679661213700237221570919908362145829990177455438321432663238215659213942923049365192174228065048902246345259622188913290079877222212422083769634537674623301105907759732976346046147668782585131008824544629425642293353886187379541912656833766943324785240599223596039941774147998826168169693209540010482877334195278152390061075916289377678582750497750768449630532066900893439160822917732398569933474121159354326403552613918611721063138114298492520496467224818305208068091696256563449978641134138725134420309562365279794174660997108588010573460717431887303754692264546944391123027300637169780110974822006058668850767526862578856542844396861969508937994454113659873276858504445127846383212602083364134271691875776769474612603035760911755663134226967816888098502897531253819649032045758653747973719003517879817109858938740157391970898541965926604061842647974877483371383011512281606817233418785627464494300259684429863192848823575670993525605403089050904980891135031023934889819655898842854726029500008627970063679446084018957117347199789474898869986116095247052451634200433460666916111726973315752409902025106135357948924924064242689319043349782493013230809764042008495978038670952792012308115075863777528276676361531370484979698823441699755137986849062158221763449158199624378995722982852581236715398053738306886828084056395813148798272149304946576145053226869695576694404291727970828716606851246402229139856993161622853597379397623262410878722909494440427493527841833683993633312004528292851271309212373592359751297571321321205548731364482509761677080369368861488216557161502121753586323813433998493394910279068101161608824887491724818469090144525255292429363792012274555827795454855173725602998076772422885926085172701418576324382560267598662358471851677212823796947370682353329493158768949513452652361227024085432691021556353205025759714561707472452313446994865595852610830422553059494159909048031963223116283143573226032953294075036642003976206121227308780333444862429938816746971387757714674763090382398540029035913993387747054535996961166989136591818368851508580974841401191294279412754637841959350676368642610638936873121697525297474626090700940372371852712146593359556227602315831511873843491977495183773263423771556008981177298663789198013471306731479874791831026159979910684079209844832395865617226664886796938453984570852754437418784924938491329799629652914525269013312668094745083441480689950935423854691156815842108739745464909419884621484721026197242918155168336336715709299319258602057191547341678142720210070678018360637392355638772046190957309486030534087696461909642943612763055818765641738304349391050703554481824090835504600008395480616040838037549844722107941727335453923614193191245521132766045486302940734389886593186487371542032144936557107370104338854991646839691234919144736698885333270261657886327624802230883286882961892188901494012291324680598584278286481908047774013234207158686473409789246685929990662186491321656373191065150769609262071664992451696517810084427567572045939680882636735567890851883414524846315078014602690826085451085222710289585770989719940962095013337252288540489335776294714648311113421950217087405131696480711682270519648305338765773291883209235653978741675934652079947657486908891081839422717733310622127099882963458965516879324058376973950449945945211568289724968160657380889718628906890727594455626445093687873123495072685267133281949232027508577607574793405433091772304238525895910424144476704699479721348809843295862741470619769514965038071527820450228090384632158551824061846741797772618121495214543348316261985892392307810353000354249503855296988038247535883157573146754578037859733712709047445774082897847909334454678138303156375966165804894988836965296611389124304468042089292846980633929055260310984767690261676966350292116575996073721673371739580483704785382649375548475060822678723968563321687837988582907051436675627116994447839338572896542914470101965793996568906234428493642651886969495799782187021381624431523667022748711935838838393377680936649300851735216188384158590736150384866040736550816780122844238692382473277941264751964129992547585048972439384176572808190458241979221494495330212449178919839550323904647155781625956403033004433589352945221424360601304235394975076136086905631318544481424829873664619294140417819365045929515123014733680926711164583771727106851849086279815420065540692520206497618868319485758829002917229571764610244484528207838801884429268280873308816050481234839216886864679091491291231873765887368025181082165865014450712244157452686663134821226864366832920297066992369147002056212141489755930275731931617407603160188158500679221686309445122524930814859594940663672371492578451861647960963402297589256720415681335759813713586645568837484295779536034317400574887417612173845483058584195422322203815758654614984261623280735590503322559841992852430233381287458453936693549768809658158908064244867699119826620039213293346169066025550212332892942027088390133894045186311292634572534449226017909719088964881077612714978337096650077413114583227260340128707084367680825838435908605383611475596663445307098785453769474148954259040467290703864763164220956636418939405937348624209949886694354134620254751250291781611633134531726648764069312862263236686840091339940953941413531777646151644979981279742166440529541965890853733379545164825539207409317573583307528009200469508715947125311472581051505236767970744880851328586570425937939860290136066349260192396067220368814602307381739925999836256060232476333803601806124086082634104090705229540207905233730035231401919346150857201544154722564680445371879339958486353210427319959287483000203093953171641502157291192922999940186782592067882838388501944287663298710088379069517553219068084148174973201501486565861576252972010059854363913227648335952402678113753719954479698890879259663639693396248518315690929831348051918880632487551283923281178587085685079150494362319495548298926704530631698101593062286839607844827774594364381052741247572098408832946940624133281708937610300734312314782777201662951907059081092061739747459964272326338802834705904047052482613561104942784724208298068414256918858750607034192598856933142946305933813134523719130611036283662856119806335728070295741286755259134349291757198882980165709387067301168901997389380679406520673423905733369594620046824607640123402490183115543572671937679257723225801897253500620432439209196570760477800854103529040752094165777855122261717223644972478439570682623054403478561949305183962836338108530301843411830040558605536589936737104644091058112445174583623748219596269643848886655981679711489165808046559787928203911687567599249938688717874571825268793830285113860779407481368088865107316559379730670214398815293665426503084104845113017992323426526681792742490884567396904749734271978923451486609776307382409918144656862437914753807495225271851102248117628576401019051869455493742858280201713628508914608532993004250781138512239250509962364800005124312907629169694543700445795522902881325728037748353070732729734029547699128498060477322413513169174268214247747330065476437031156004940193236102616589749259088955436800929295571559633620901892775532468575365541355251009202230446160346345698239290181183517557024458834448139850649387560405829873096927226741865455832582638549761445867356928659361798000954432719376312674137347995772155964577571901956136962786490109474220650547918641735040624287382556940820374193282273204640819594770349186972043745617554985272900837109749624949129685694307496295822429012274707694487556419939885720994658827231239441016888943286759652728919096570081444375584253208939022329762394658409342961104726301982743390666035427071585761371030822626449447148078620846043919386398409702991574354122908860831203272445277477755931051093615447800617934738992555185695652120293412611441084194223901199828380709207038762144915870026242877767613419789380130171501078009189787660131961629037677072801106679567193446179293454073123973453876799722962689237023378143242576448720264128506914729041568920433533663691526501698116910698439267472213954967664076615779986096421800628982366010124690622768418167968650526711672532841102744010348743688041299953930259285212842330804338343204149104841229543569343536601192718812056016760456534618211412363546096075538337044987588382318767823508268516235320535290172987081859957775674695880539293942847268030400191236033480568086877746148116121495350324075581827540087770182515907392079274955714005422372797451485030582137225325772327317647287534648607771384573702524827865128226372283968942428035350989662861452328793535738105608286533391091506205765396115300188442365878593794818837218586126591738486711514944877860727881013267030586452310432793522823058685945358470491917654596132833335704916545084390162853538234628043015766465086870750002478376976499458183420040890308867139172811514613498607002417962849228819825522089110016209684162198146403406588266043094037104733616949834784909350094352835028824484107026599740296927507335035215730725545837205578512287924258506122596792533152136514842907870934141260495353776574343801312578166595780896288576556574434467675036769804351081162169836233120198706351685375351206121012464540576174690203200301846974157837312302873775595096901125914350573447772533462462430704837674306003513117306792351518576980238160340432059509240259690923275577394250999510194019654109721172688847614368769316081731109596368094097343222089903925128460031904627465706544673104312251109486760454730338918864041893081024656478217727515798457617530603801469005170958181556709161695415637801934709643367158123896898073067224783908282934899655822229765065054348571843275564352818515244404890089881440827153062355615766195335588464542830046736138507800718815009989787262939710380093200922871858599680194555297927759354556834225553872977625167695065625716448599880972698761941371189130885760134948344342925071724201748542062015913710961520041269558249202867897205662130920563684842591663475802523758989294447867849086508712368899819655998781157697387322466259259805240073328026107689587080618403435231352979094836410159878217163911382352247458978872121773729533660375747371854002267961969769299147472308219172554111982782703639394753263641900608159357549900255467441675903400075300021483171226038936886786979653769363639940835981297927103420294681595600920290712168844151424315480015288342574427941103269506007685716140738733792962201284675687895408654560906586216247684551783409668918635208863785860648264847447386895343937669064301738550904366881790853586272479541077917887345140777244094667646990205673547142488390423744174084950616015928686413573098936442442059152873604412613819574907632393989804778909706491414244946272016827579775858524097796144568991233539986333252110654695196721720422734350663894614991071273566952989415135958872204033374745052522240462752755903647666539523685136322201967358851071757618854631193454912526395381507188126745140640110742326052408256864978127733557593467019420620429583781796274358878055626679152975640624541694269151787445011643358681986293847747003517057070502056032678992806839980813632540737864102666003419477992082830239712217071376082462626844584509912386599762265576033573844376539510715546152179635469144223686337056173958498359546139415371585393742541331217247080999116639243432053698993720321139310726420489388131563307099472755903399306865071869269766037840037188655409004320186525931737309776142437444469557767841400373565021632149606917048698904892825428283329976217038404244438353794542461315016966381377708971113417194278936995712905426967841435486540846264778154560277234694549605856579554606246512794512737207209505031731032660151534202512326372649230017615838512391760073873673421546440597939247277826109131733257976449472870429233941146886323737528668531937100009810821455643153039045533517148675345338108667044098890237488435593398341881349467558191035600307825473808533167226476830131450027939532892299030237032004132567585252586797598861704391724799314378301319768035729877335035452448143352817153997442596542557110380672506837893694552557974780654295471225403497941055086296517287582023313101308446317782856977501292654333899540298354189057266484630922181981217692331081917806475519567014409058224984197662895663038674374750992829392218722875420117330038788939059958132747013152825563793916072601667277309652697036483270638507562693364287577957533906647449229861327205223392525695323304872946697345249918428539120047010248400346605036317285567195440424949332365539386719205625691050464877121574751414468243493712694631217336620785733969770016527317195920124349458987610858007651467729347733261835592020324941832667651885363465386859722456208442208489784523419976461325745613400682144941492003731302582326587394534263961589572239960455876306946758512050126063757164225072221578223063576413766136707372248665685997011166212625222813450012982914531511672334649614900241861622492430047582576345380341085473814725366917981940244384573141782955738724068778923315340868286337800825334958650665142936523777748010864382189270680986863109226280047222583915018598619339522682011404971294061966507631397635539239729815325122207602131265484347485402943806277604650451450081577724568703603120178747508023500717950142496847767661419697503255533608625966461290451965995154517388789976704130234734193018218106360248250518861602806330629368693593310822770116082209949850397826577699533788962330121580201000875711902510424540737720795882046712904864759684950937138785369334573179995283011671409154769178746738494559292651349432579299792659668742964983597101667489565135214026292457539883356778549789906367562344227100599246775066368468240914582981312775265533537224725783340247732149407615149860350912662682034452280254842679927963935250936948914533920313368533633605497736916690823020644884565833627987552111782166284516783705353223161671885451136037828005157223568662026707538876307404560789476732032381654747056188172320867447688273864552994386806214455264324841593079922110268811301441727834451129688873409230820241694344574745328201857023724574339629982031692749562078718308447966880257086155419282026077376407954957661494366701045619488631588278912147108683190892602925882956942175824146175729393537746936551486860306351116366472736788914043497753579972271108585305330205096508807159322415077841376217119091472534279898385016158107233740376320980971242800065836092934327504024815236181949943842948994220727776986757531635229574950822663617634659747944279420933175423276714451270707116801057400783444457702481165283794760146924812885366919588487788565905075185681492914366151096538881166344783462954625285936366560535963835234434170475061230811361794361486602243398432073653300661110155577408628403550744709507202927424820904900149059630197002282713663102294178495436249255082066525058707756302096344769165987659458068689065453595181204092162307070746345894085390246152318240207238416924540933306988734630938564110679281847964247230082136771476398819455316019621869501926473687658731621141652061190471252538725295213201187225514425169715845923117154814548926207985120956858164264414474544476847246704231203229221230351045808819831897489639427158978314716173047506813315080983639531068491091772539588625473165254375069972214189467697067214295659694193025242525531320942405749105244617343720248657133424638674361640472794472788011707419972950828888194386717692412930709668920824250850606937359552699199661114122636488347069432345560458966024975135510224546576468702663657976254800866831471596467485870586900959928803067467708652287326465499337635253905947687113239900211246283325009914359793648007318029409919231191134701600279444255161549876879185650478068596735011966034882995564718259563427360171870360005325023100123436202519139378570937090707617492601607200829526681721079580701861371982953952172472155372702447669261119543021368518814065500796801395313793112147354652521602891703111039051994743508299019320191739140891078500977114142948018110198517856858682792294570370194013173010957349780770898404923372634058838568733271623125870952860694170226645500206207452840801963472965433308340581054160608929425578578260340694525141480511003212261435774447702882803420653491676127513629942951021823876707482275267329573556419162431022520629898685712650573083153099625587381791937399716733490426225550035195768996664470561491735183323173249482887387305921856815741578220896751591695583115375731773346364020204002652555324009671825119483023842023858804565437027243554217630641178431896868406904498052092339260260174471126130593427507680369297054570813427806578824914081049015455582678817351910754745587563339476685755603742038778255593353713843450222855373438554288691228991408393200785429740934916014441533878361910327732172726463212658896784774484548384166688197671916572117443383300249578374036694485735249723093369945057430399100769109256550750529657850017634010533234699474572249366175362594515714493841638057953775211259158995884203637829679848943695636168800396006664638026417357586601366827490792249159712015888381193056595593385710753705987987737485717480600445927825032996653804386039997815559008475796815717924538503214853940662249189141473388742545204433302093216672978237924883590428315608467507513035518931871106569134307945480624492339534005038035047941460744329388931461088988373170380096538613700471984293277299090937650487320907802019742440089169730936600531492142939913904459977477482589557279524872185887027348349495048455119908436173319572975883499805166538744256384774503567630001428745460655193901488573771950420909697807041742585180427089221723461974152422657062052548629090888763972204725819408065716174117188377378706998645183429390070819929387519499276621998117123844272009501541020931466859882179370195065317478188260866386671580734640599299894257475003426589480568662046656425962473545289647191821242557259755892182223626361812212538669417034693917142821987754683045160796648009393341100276588610430250585751431650197655546777599482990700743312600414819846692260954250071465932995530298111105809480083810077851397153523005503328749078713969915531172812456119382837857564133841100165092272319076107567073716584566269956319526675478565002213230621193950699092155921428942518421449734764754017769834728244557156455815937364032601610869232463496595153597584476652645448077309050361648219601925142841584914108847488585893720967036288167753074794940684371222167112416382462291039840918990493895495202287398121707582987047571675575155393760300268720776577171864344181730112121112120060543667634919459493472650987550579387738359632959661157832016148988283931059136441534926050011362112709050724592094821468569765753499442251365139536892264629469777531935789653046658056617327480281996810562477913955536359952597836047821841979057142691396401002180651015778596382505987502677122294788510650580837804939983440426445497727249577077182374165659425342961241150911001924716460257864447996019910554575250038709900715127826115733128180584320609072024797709587114435962085374204454779818613220963597954889560131094683453614391736399272210929570488990779972590769970030999044461868722680080230163754770293270463330944991776875741209992835823407188132857885552429918099613640261219801021232918501339744961446765307449823014859196586976984716244772888418877513439151711416912992971792785703854392926689056328676827662004089568258594055859035685670951280498934876978378244632205603868471210827985041464770224443162051741992314029176359825957603884105016833679795386105820820148885186261057602911219768338034256937895752466515957505674800396140786220766011199270260225460566209156642444827488273889994497549729572767874622962139895927170729527610783938447665799327914514106074947776139983860591444497793576544086693861903578489945077314063465578940360531836597228236493042619855697307880251405605905560819958198255692099500066659749458960036005830852126253063012036711923924727653607691187882801834212460292068403323080311799619685662199950296977508350684791942566664073879493071027475578905964215041300064023082243164975145494867542067597659481432440272549145897641940592093372768674055565058060978217611746723431277557148948945569756087826682865031653849405459495223271472871229375808038956367399359985584211429589577592129357577888417934574329351883650669012172486037968001672677803379395575349973512255696344964015278115027942011308171054784894729156610244463717520791823451752076738774528331315640357571503103104954584233667126111784688064527210623035204667269097258498113344945136110439843342042944381424013862173247499590619981466713791134490975477059912045062206450113959079929787855720894763398476982506985246505478464253892454240051814578525508651636956461839474827265936516906785653152883034693623376020645145760803157931304039809077694939576865764835242332177861886262951198441037754513819775014861409408309419102347470757776266433980656122158330065180938653326963349262018210365934158973953420495113606569248277861929544218253668174093343618196909801152197442665618147869715694340595359628932105983205969772894146751756522955009128941385462800026601915126535759298869418858873424031252511245185144777431855146188796618282650679116502225511264931908602742602749326558801869838190561556746707265411837319105797625123462356649010320055116179519148596778704693799881943419315221127414368871624316145792118548310506129939489607367274989153630537772838781815343365146538493219919686555306744816412793151279274192538137790232895607771304626084041452885515955031983483935615796072058608621104790287558475891660008857510216958090229949327247652082707095080766090950715517593601504248000103339190168872532899577190320606579569091395473134452212176930072705420708292683638490765597924714959530953818827124598368218139133570738362411595843736702533254814292388635354181281764231146445533140975512741119315401425587510912765998618589842188717847691480960335872774606665316586532668154855162179571647528391446924151196441088285692320821995557285700398388782998311471140528296238478788674105638884173885753967505694842043846879159080428707619126907350938970732828111999080474862279259410336607997272794003766490102206135449868353911257455530297855069323296397844256287139089445086097950118409256346307416222765013827258641440398359926529986048602566077767990320282036957716257377094314156761309863551584846832762791250182489000391493499038413215915785678605394661643292328360763078216589551130542936179451283900394934483230824787204122024912439203070360170437574067291798372225756583060091197310251896487288400914344187824538004384249650651482332668753885684492705778361068186609594464878484246979702043672152310749809349040569918867365132824739102845583055060956829938693250488679137261929796402725945568893148539339987784286179172231608168144275781196978068815601875578447697154543952580400206172264341404768745341590829036483353252460681712924777972061207194743405279519363803615479601312542011924470060978729535436142445881387789556323465171827056864227994757861649590461888528778717982848287161188102068758304178370695142408009213843072311539069185660191510765888263113832296974289269120781444870623607473626057566719722405807785207957868493552422911733115771282786762422193937158385676633220787042937241074523475423907792386217752571065934750750944925214481464861171607283649977562258133515073062436327800789165658961532721758992859633278427333696249824315465110723767992656893657847255587284781179045317852224594400352414724051363809280011657563581487751209946554566368249361324673233523455595602590056140652615859854454933315056918768486903111210307677707839782850834462306567239456324997088529273925848135265039070302517102392826553860985217872597949394488697115031279220998020244266385835179521764026712350203643784764021803780121925711402293187421736943131135776831286094173128741114396954823248506712391793620078057803710215012868558269211512270894351476714139752720405262979373437315708845529000824420724266776713755069133650045313833296187959392209905876159574112584543322068584375651990032680810129817964311109393258537358725021732992567715734052562457958389507833881403306877297129012523717434337375391661366261944624237417960968767721340788135349966225385761108537831416574055500288641431122346028433429326759209044985880308830098093360087698200239411782465257590123173377116117057140777666149135481691182545120147353595110946125253978086617909446044676427348892448740033299394775850376912405674247601001288203144446206127981749072342019315726254209322748566351594138537491657669182935714534414767011589471123613336038547774191588820415247223492902879965583137541657484924435619322962407476859316238332909656710669753373115114639084585353519414851624734956351170714178943475160438766044496513021427407721427280255396538469042863039669884307581261494513362932143214721004413633808090839059569672411891600827100100198467873464438417274546711709256396427361154647934804686865215259299234578453000140460494441558661038642279255245799626926343158927343624601232753923086706631827961968699673183505132323815504964460407918849665172936066687089212455339188299115343594280385397670264033159373283611250459120713710266879624329547650055384388897254797106206699861978182072579448284916090615660744929424814931175849941725093774180847451554381637337810707545977853213915938738074005073896734497714862699843890550599825024371291795228485817596583633379435698776242718834115965833404673400455511032072013900304348829988318272157317732864722449367639816947392345241069873032935356373423970080742185532421673174932708210809793119220095242678462967278680975701395255183611625509150548635088667003223400294630319583284537102790939120117307318773554461093477943929765448503654127765702574809338566793456478166621353646427448129700602388519206249221333812900523817681695268250540591486585693894835413422392249842706579801521284231301583892314259659213538066494815891394565496655363176070070821530414232447165533988455029840155631102968888494476351049203248085310398049240068051694430704985562090914487468637156267395259679523779877920009344462417680607496473808252174884497364337235765917877263318983990738110795117542010858650480388471577209041351563833095879460104668521917773269873923180220851232454758117184302533687043169049743870881220056697574305256410371096108614795726016908299643974202490782504863963096946127916464690932477598630381633530691368347273557150616258812634149168444214439033115892534722431413772680466014355009498918784556108865272283730050614009330399231476265244375370072287432890923592202270562392820221468954698397742575850961658808248530220466084222659620850867571661506246382085529287698921213736057633518173772263544580054350122633902870414014065905809557161484317891299033554897226553095246345234956558545231468703526628017735407342647859058779581908277180336836147778686239824449518766291009446130422383544144853100662253377505914663053405538871510713407383496866100612871189412031332994222827687290596925476103290480080258424917177162478086385585096876553130972122563399019247517940105191293794983875102955770630640789075568576209101089512017108992177792538401262814349639276388715801709038979480166089462778799325432061068978566140127999704456775273619186051525347284219263211990265408670105843968835831830710800782784523513339892878734300507282655309964350504919565118854703744853095562874130958955063582392706845024436880437033429859548588292598879461505304129217068709446315707115071100165161244764454819205808816065845786584710899017651566159052806841811506469183394171663572110036853511212464189722125781768543120640549101619741632553422095181639831157673345839706445881790761681438383479619039170654881879404670285039469371605695798203803900473559272130278271843743872203161090916106187352441245789361376252873385448330461802404118643375392053685053854736875056630475086078846094525140292146600896682220344266124423641362425795205515083812325350663226665299296230977219917334504937462746220053055444277407763558676573414845118197179631429360634275212462100178187975440574846281022509878493926904214458934236817473860546240794254697813719639203697444028334061300317850357652520075441372870666935310774083029736041112917071417154081322718451912310823208211097618391595174735364809985247364722801576761353281654666877420002276183361018119140656328206334363612791327678789699352870557011027020724486621529941074933015136280723361829610885243370763400320218003006343774748854377939572066195585937132670642500913348815552129744635738566479929582860616986969412788784031839965842659598726535127609507791817590310217525319112410881139789750174332378259159441995604728155838552344657361117057171231717462789958206166244525843752680860863415914547161017908318482814744751085502391450701874993376108322164933148249064872336901409125126754817736323112242386724866004102451584591101526935433594543231951288979876043417181788421550943013605866859381082954914517644013191367144929018683224606191932219639736034856348575150000525808895067836872622641234517645381277237155194459218660303229372172786555236263594091738075445031579640115608377368045666401292753284025732802864481471939101734500002581151958878324555159383356630909850492096748966939770629244672925147916811615406993775788249644494592630778483495335138211658295193296497880329790042670173149516800005843013996357483666808801589993728831482238510590791953165392408047872521861117147526558960888812210287359699490098579951779218846963306292758791642229392481734703888382094830833423522050788035871575460547883943661303808944223034157923811429874665023410524783927434651248168023955455672938220611030130081715438362853345761818641303021240643510249493312493283079254985139517698376638756438196116733218138521400485848608222277696427476707531535641726861701967492395369035005737089136146762456099386750222328210415688850364830158850514251182300572612134113790245342099340689801674554062254879891077400399389032665985228647887999327932730070332412691785471584502063717546148895638240481133784557782078678080823649301502007386547176760335731145017382104833414615672895682968200214556227565569492337436101381022780132984249689399681443090145027516442071090625598428999961978746405756764323799877179491461503920559321188868198148919328807656081193389212486557776495314145585330810520401756746416640501607281843637081676216108423046508037826863144019756037813451846962311737676705122857790169679070905876949092324511649969054463448484824084372539869419044454379503866246693275146700313888281953786371477944531100823620080193454940468655656642685532985582014339443723409275096975124774379985297985994710347234410514040416118156944459285079471967926818840512459244819280014695350710896090280406325483789763890416414563690365665051748861623785042549656008035469277975093178646961684964830764692746375265247301015086882413311325995290587009769643875422338410014712034281935394328194393057805208027462529151137494867762131576302902537364384627095879174413375364078439151103861415311640028591767840680657807782531153247047286337997044589176926035477363616867504078648401655663757654304710793222304679735625488420966892714983015012448803225615079745412508120713006676892512636823031070358325524073206985935932203674884823367151071725076203709498408680508491859922114229345509156384136619749702164039062339955628379130915576693204290275481035374823173648269042216821346670634345036345854915059213333050655939873948613909443705853698657314794242123433493484526508989372955853787006596893794051002557827561177444526343426574906086255023452671808693995342508257303732993354260060908430401539220062290264988475301514418522002309342362122749582115282185824689261660146844347312522509413296024203618479821084473907074084492942956966565929100764355179914925254088173407411364776255826379141818297443595063149064029322683203807221546359483290904817685376166218766406973562114393246286853430946837863619563187614880906217661035718012477118268458652644570721851913645530116326038305289758691264170841753293641006177264503878160465462735111303748034495329219150149949073263734052039292260461733383940324586613002444316033160096035199121995599500402397406404873959631247266621992143346928070973323113735460983177831980353335739246010647561720092329060373695237311839875306238321371368096709966682531166872156122312699346808024650119075622594414653884352106542324492859194163597998955622772666534424894464376109487295832076667894240404403335217162260391218934700946131121636529780435856610414979320399478074943024728241906635997537937052357969619031241443507107722866663661837497324114275676233704507915680596232753336622508103084175799503924295363294515524277369832960554614806891768298733183119342432651980311851665557838953832793130635832190185718225709303955567960556445417551178472773971091884024966477080201922470792316080674300183858024869979817376037965017084354603043664796487032004714632044013525484260663596015242847980996455273086234377302719929157288667682779917445855547915324529239127239675530767235421683663671885353566818027153055990558877695559465541659044151528751415934063941914623444282141664394583925501953264169727508230121187568524056546478376005619776564977490473747157260615276267637258406649540147691059507730427912358627490407648745934718941825642202496714370258019786209949588298580558069399527945494726201823173930160823062269019639682804574290844538262591452335012673018160549908129550067383797592396324814282588416501641100995883438756958675177715539591629172810776293252419338954023420438736978178309787259928698415414791960761836436431186839579057390738798368538767679800736235240941825921063357830804810291647282313717583277409850297448923841256475784370299073199907912883143835496402874608399239714597540505932151059563859127751599881245375365835738026980655143440640884807872362364805731062604312453707927236846109390747863405900713626251128104316330650782637855556632472386207064837060330781551474948174950113487826047683937780276933650607395796521754354373512910483282889862550341459666777191491999063644779188887337875235648609623965238252984827240466861926649797940657157930369389979850140083835154170722447432839518056278722076861114081724012826408695363965259826676516596186749882212232111421959428544030465532796121340717086770931251196688066681205907158201544014392802069896457174441938002745008411770917614367941526373551476679830877038537687603320045676690045702744356374537102592768502786437753731240738156903311829469400565513860976751882408656568763596778594837788500901815731218507382913304949542936448225404478961780676464021595100629793769000768821508297180374059433066517974658170431318406752541487329592310537868179028219759512720653343802832962673083536569991871597291743436527021997636340844114845819811784326436665154434635219787941181302764729174443497223447592249476067002297085191043298104740525073636897911915484598767849270502066383148626519341090460999245258695279384208658618177787940606951152432946591832646931194578471146518516236040384769709917078296664144326670286108520637517940348319300338523325347597272412534399644749645422999816842130208861219789937079103294646809439505966838831698227846334076900789343078156072713567698801402117545349262394816798378373280168345037298382593384987598940605447503149651759134262526064715534053241524686442496249574697777563137063327535081646179575525444090194328469970121693549369644112797612175447869523508470570097899325023399038372470251331215791739038745576974377528668532903335572887303058115226803686341078649883759428040560564209103337587619195678363913450658138019275175251546183864814425309029587218152229653368982296825574337796743426614621506111502665714498071298335187172573249694194286647580198362907946269016696587394907287228409870008253018815908730166805327192553810545240836302134669266912613952696710500944502597801648328353814693115214768860085712955564606956631330151813650857612890637735820798440314281401931963350264725267285731436727692991328391861937707630537978972126833177934631871333151772992498992437956851477246455644235077650882718854572396634472307411210859195030995044166189079383930170251982700307668308229258096818799216512042211746620749956438235383866239319752768038548286175848968961983566718073741174771220922410655598022520613792792863084300359729619374210022068925353114621207708642057744009228292920707117548574243728868689729141415928028363601971986230389188052916206731536911924761868430545676653876372488477858108621016699352734481051600293988156385129212601043145149124106536103966878006309409516473013047258017886501224867881639547105450291454264417257261459842013995724370889814598475183122315417021110275889487126277058868409287277355305491048693701164133345122512101092543499243389480644001425119786253486468370746775950940863039196710171459618860985526252564194808067008235567384498562737259097732639656318075117964370063849184184584707515597374587972912422034338557103586406200442960206310351110824265024925330509325778927829228962561258258425040035286514941878941090049940848100998888566278298907208638370589514427793888499856263012541871282268553998553464283300191198753638580766658177452511192572494541086404497242286646926783908071637919577447516434832348201262233320788103253208345933037222074480865181341076138907433464218780359613959829925800479788260403457528315336232011686693117900729056723661714595794542604721922185972556072785432415695016075327334382783168384893697511793234640279316390177128291314869230429701742314233080951850178833873310553187188094620681388438671027672498128082594695107397792724285949126431401410781299708609758736287421095814496818537999069802388803157732423300268251227932183893064506498451225484593431079211930415429239312863718229265784730010901583090570534486053016586136989900860921758061411779109099047167540512482342482370057428802256363310368637642000800648317050447221050636276217402221017966920077623974614005993207639377700941909988651904297663367805792992620987143916004950830318403896030315679873564687356655539625758442291459224930872085738671038125930630364189247401398025949561586812871343926917207369340440212445483814047757034062791209758008081564586449694056320936793719274246726231874663341651996486888550231120323651231997226152694534794764770743488504410057947620576465532431773240556153119313229468459213251081959201496368858075439282494017015258375906519647749002632833713478724906534141711380272727403300387375252614930387597091123618421788292242299532817426734416271885468628655770463901944968766782575591248649221551837579306463493669872792169863441922664061182463582925956050010759469353793129002008547498412528398925836821843393528390246779227211680119683519528954748612757357316363778619038048581198703895779340199740963742070123159511621105236948785409046060838904358186666603463498221777435414933307591950381111960225054614105180280265747869156047382793100719451174039291361531516861686912373806475847235281967919432703212157770068559069261180053578894938839579958988799513068720636563888639899832690197311022457919585323497443807499971742768767648281596632033575144195421206046138862681772658505983869784382679424732227801448324982696232076286044096577283312126938948168007677713903462558166751110972601536481459549143078366872404168238044222685588833923338665115746957317195073275165505139394661673911879101707914658819782665492859102102906198736964152497783814657764779170991512506061840495608467533357505148083832213234090283674844096664954351669802346816700474219636863758588590897809031716676656348249938350046801760455410720771217586354380711891466531928497177672726668122107260601227180737837069593137500060074006245064036348616951493414718863494912271666301799712577651761071070026582389823679264127736957196814093567267086849820679176252093746376864437841382784316532123853508797476246914871170843776901025556686602696058497189405004029326646118927191355942028335131582492267811267537186728398952888399124238202416627138146737890229277158373114525643314847903923710244130440597093170404574672136594579713763079219917808664386228845288251929354996240060605504434154335101636954276176213460532062916097198371150307332081655109313137904551008909080704012842990574360500787546096510357065024233916743229832451735185077855125183399921856105586825552544771734491935303254256769017951772946844973511272847471439912414543874476784867678745738468502369224940291230847093197476336075431055331915476645679500449305933885603802910578932647491087759162967509987678359907715633089823658431599093561143755207091709895955830505866292945944103927872299837611159735382318573323446493044129793602691606783285469330062358315042730287236884209159856194715436962187074939692477981176174838185594137797047159802643892275920959737474391195119056877004214080286438334012803818332128732832789451790249234222385200806526189533172722913008146280694099112195120047737863498384317877464003130519768934683148174932608747704664250200705967531917055283475937753662825017514314357939808075741598879644688575290629628200474670179477730768487534291695340655007013767108170951279936327216412172795613794378833715778218503242900673232046701020550232902006553588535742116383924386168239825493246565441429462807260534774352891116869465423615810374728786306221035498375631632165740099212992622152860903240067479624966607004347679309518502205516093891063868585704231003093136830853515784149580633083229930265306334534183921975336160965770568395479243149567959775130928305775805818534045313450410478917476353482609833016364972800539609628942231329457042169458122220416415948447804674888278582199131528137137655662425607496876210400496379479807652864278184679342625665997986765621790180564502535012144419988467336408993085961401051491644421014756407863708370945567486302973658130705816472890705706309994554638593097146079019768235456056254753601446225286437775005813520991649736741079390252207403385711580393480879966340835291278036844074611187196073265259699279811996306111990678953926026928400574713389034231716855167451454626554406536802945317792757607632627831106972157095062855948856042230638477387049281285762796499850727295021093720456471633066173908614216836297461010124478542046567114918414627069952874121459002732233265009130438988396043815059835729146844264483560721951398189038067419270748818431058189185484969239100809376008102705250820785566114025528222213618994949347637771523188571651716809705706617404136824814094104213513713424812835588008532038096096611866128803493557499216663322113411786464255859240459333953467585404855053512142601725486556199644389387926541651998897661626543507438682929956349286457914284877758282366322596408092435490279652391962751636338827753652996326271180643168423997529581560592763498675047714676982708026798001626813384372131670164393995301998737810331659371473086125237544004002626609633677494806934482058642537126721255428273831908574970355506547929100246356873474645948973270668480416296211171621360542647156028347848697616848743819079296899048630297279827174940627314684910730588979348077557849330681003595145015527233300404009136104238816923970570607351439512067628094276453833406878329097659652864615544181141425419125481660212413396393564298039746630655102612793870161244573379118334951457052849148427394355765435794770688417953688587698082033982017582163261299012134459681117711166320312996955565765312055605916341174120151766459885104041132734148847605873889753119787194719361564022763364930365065089162520337956198767150065613868708062471082905746590248110112368124729209540670120391474991161007687935965299302740091935560454930881180945511118188823275131250761391324073673772254362662064322703473167731727449180244553284779402530235540332135149962443639479541891897460003804168802134722042749213407270610081059563281800963050681992768694534646995129730631205139696107867447804514712073099181602744138432265839007918279378589775297711420782168944011564978902475833949963124137763681680686006395996634857581432220175782564131783341708352809338589350360730992510847252358491221179537394039326761030591548393265675996656258801850540649036166651412083199379422343904403622212138305068468092013442157590749657441787905681529555402926533283966412269461176077764096149849555055872653291876093517988521563552983214631397475630716680852387515131814872098032723896682982255334573833408670776375139053173444592043495451423456358646507109970063658131858531425808310629244996888190542443742532452626448618663859304504472571878643427721863971218443313104178816190899826593277363684215548588648453823915681173753957258340295800902861574596695102727700199385794653622428257681640217922504097196840891841337876770847078941317742887400076954693016625822031806393902182177354641420036760558726956708239376503285160161758915164564998396245464637744643390561509646322276336036150992068519875555556133433250824396602299099592925831870785159986998864476343703161167220105787993132599238670094859884413864330138023698642579840219435059444911600003575196959413937738115921863225139019391275534606357856295847164614489925075992813749021845909492885618907334499409586017453473944149850444227873503856713301664641206491971171478175867455294906699983321852433631776321291088607682198198229595769620505519185602496007347717337315791612525559336893332136809771330725962586231787842475671270819521592210872069518346009211550901829628538969681067833760871482666001447762093253530916414194512222749863218507666930179909074056584673255248710362836140410815451930282835363826211135217210207877208771270818737593812774337463274092960197093986114303778659029735836330521738725957852791924686208615164189535669134434031506771072898952784879112097286472822057024902918676539510492498764939197221400894182434704075855170541105225193914019757457197344319596216991795234525746235886725803873782602091769328583138886643562526159313076968712960988328063862268519192604300186693970694144477469836155962670231839572256636812488871274542819418391956740055915055223124803360615943923742944137242381551945503224989115631607702164561237375490286208901663516324633755421677509345398037616393405764736628293025455031023781377370948366842014058501143416163470939527672839410428876674483657589241350665850826618321426990702202011175242816987083966185697769135836772005014003511306948608933388278939689820853886625149705008289390232134206679293188550874369247653494701412303234928132679438892728987262991403945980356452007729495614200111111890183784457780473040343638869950242874729513254587270884701170066453341749565836599675854860100791212932519970134306279968774820047776218635644375945843428024347373520427328381439535079171986703149295583306931459402532676306969147096797722549022827077739126630521584819344866524394094135552903353729006406259410555926404961952662021998936403205940570168208467514424609314964753710784167349879899460816073161981260056828445282089446912285927422691847655167628113256532981230502762606467487542359849536745115022742781997238805157081442487712462129851692199975547341408281202454121335800454617594350001783306309259279275864171111364521791140193534500051390417475530374892878520793870818441051063403410920689113944334088239825815511233543968629949282546553732081700537122865073843018317050569052595433555356302294203020306797304995470229121548522545821281050755571762669567992987630068769654048728129235817852449520198735083772706760855442446534870344362237226130183411443703945937447902209986118426934861207539172426832699639307734426509857039512977979297677945024339086611990434684632271086473471056123728678431274032207611304139227427199114218016968487122464235298297812314456130646103595849979290213878663687578361068947498858034885416474027996534856534215593373884803651810280211360456380429345198209174334337138601525093231774915517515552944331062078892403060799115383232197450265005299268053627973683010804818518751888161164988788706098043997466795560383106742381462304288808800622264290763522093588715124818741916121387597208218483976777859585058441508057814330001324672044825996150638932891572635472260467686553721623185077520352991973441512648051509487546342693754521274948239773374741313900787493832744528216966782175122970778583773566007078178949290330038748304754447319004249253496583415802246015500137541122233192896865422567409687658221135123318802644220668535727296073442307861319585440273984495084792151125498446939898572903811420686675050014328941094104315947174791418731828895865481641145007978226529806508652954973919492674731130675334286200628436266310924135213970739301930731983594780124133243903606142168160202072061311279719758997879782296689227644481586651855199970069471762213223578356356249237273725600592133893230639882433410010888966948371520323452758145688909035654908860059107100046550055737599549787605929564527558048542379157867327356947116683210060425040627892584710764511616169338867457738198358541958064215222892269211515216837100080570393614693057577307011974587322410221399080350986623130482151263950795567994023373972281399798597852145075629712120031507577320621231398840864594678505496603869048058625637478335819745897972543398393356252622402788028532254349393751483139684947160376207535022902737231284673677693911541210149696802370418095772660220190563282755578929894565708781382619936371230709292635227519492148855949030055565492852992372282499867466906527672430942724677583539246876689227512084547100756963981064976305129056852345969522969679421223823366691309327261903875268893046231834121353065280692883611462024645340802668085457596290249109862618879434064577661382927718410448780991399988490949276060074651126381938579670018285040230763876643498297486001079900697925887845373776435593246181925929428686536199313722874506992881857565240461316795811644753173124694134437520650214925507886411490276281114126418698836606593452583507170852924620599927835608427060397070350712690649385317535905397616738304504951030127072450618896902032220315833318951082011319491440309550423043359908331071161061524918679749967464849379539635153736852612355704056690762617254864973945050449215442611381123794218057349937875341602357063385611840163664656242266245294574095532785454090876332946931645113892157202234179451622076736965235776701890071230881073210119048489056888018224569114841566601763903107897627621587651418697651475307244719745605494909898561922346547267952677965848160398278397196290314842280647127892260325330835077365892977950811385204402089818478865500909718117821888678026369705139904955605828113109301837161408364197976891343641014739433794800566254826525662184466990666582728407607038972403358426487822795700530669501425207219243590448273491839988433174426888498446717378787578369801611388218773725161795196173771954162919952733464371840683214747130104628499962783239628512854192036227137382739553529110028259841154589317175402991254977464434743719603303362139495227358539945519539770334916626068815115601017969986153327734682025508231646537248023388304727875282665032613474047930420045158608914926023838350720736856515766901366673436547055971588527643257852700579322788146782770407931882841456603408339549228795192405894475658003109742187083800582945084863736899730152094699040814286944395660927980433035888767844413958539187955210721187685234404067679357442198049254258450518947216397432732159120853553669209406491932446504349376325799645298123845323510191384001071997678900422487872511016849913233639849224289667447410080225262136271792361572309538627044154365783155359885776002732997213932414841741411232029697667307905615122685272382594350377525083224801984172418492481757776644027264050170347387674739903220159830883686237328653766778966954575903636806086840182277841795484714790364217893677120912720944325339510199555192810988902303646755217414917649014250519500082513552615445147477013350412962309138261176534858926256558992949528874138664447744535861391912884046252251756157621055567544771357470242015259531411897935983591906908550932788953085647390974585832389348797903855229369415580569205124283669923394964324219458178134875361236204866115898301369602586849919025746176370440611371344464680299066888322463693650104393371027639740879661010986333945617323939308143925266365805507411095446511744723281393735129434131493086384006483722843081898013371307498553733176609928868452687280096457060179214014283258822961695382949074304266286491363510366532556421551676987998969053912486938232430204370228091937396016801594255577617867376663465401734786078413123275434725233740829010603359828643469462476211866763610020203227524797476710665260133163117264667976166656581001598830801485235299769610585178898694220395198269957915985478533315614194239078047984761001770121845149606381679315847070670615548989294849055445696266727590893940656587090373337633790633864078955386932725401221213406747066957095581166340575362618658646134543221564966931901831359669038235665647494706774690742079491283648683711237186543509869769079945196964064450743599849958145080877016914562671164961210932926683375372193646210873879069634703062569934959968476788923401224341812391588874558371122513471655706249172366231652578982146340195521222428559287925653345298583661493679439796861888216260238293262057356793606560392466809035125627946945276267457264326125043324938443685975505233975532747531488278128931044670869881972192004412865913276462351179219809306587260864454944730836153240193649711613027120642261812107404783549875422687362875669909864313030487488215496280575043865299243974743839922010214036258187666177298657220930689689341194257892661015449426029260517400629139487055347000176837322161580521358940556424815232280511432960540315693299219812620308534246512475886347119051993757775859615113599520472249125289652196553823553514785525247919107713730973359939520593806811329950900639752040157024297406278411363834043331233025974039444973274926965735673970417186352873079981944883187799022814403078991341927703880144129889222528176235590864805765892420948169225907317011176032271817681338975891058934902275352784979448666216426939371630095595522612827999357367168845970516702361678029817041528044402888734817136411852548538232993460976706655971160138492591156892705994785118864224311836963881667575385932540067574841357501320317038730995381055731011814953388314198937622978892842367329928896319470280609671511623764559052436891385930873526365462131786754271576166563313373110990478337948392217591874141382083877006891989565848887314933461901534238891268693084537428902288330673789347845955081311512551841433438365546783042329588181277369983946798361912774249639264029909030155663006142262488928825770300910335092070782891179779834502942485631734955845765402617839107489406955542749313614947293578689686483679204553000458078903837813616323047198152338672273528058605951475792777732839849692476074072382900698692837717404480775012905759480666766338727561389733416964125333365328573286497476238777343344216574870510160663303577761502982889923392384335059891626470724813343407697619271703713200596951699295955345031993083372037298583469390119206148415481517433458866547784626314372093907603773531882213293370385868445668127611998087194820234883077855006445887131634012131964655456585688443431566943334523452718170152529840145151295396264635852279951518665353249826738364919958629306136779496376264538414923373515824695050188331834699496691366611529586674375930048727559799876945254784154850488905537437696602790820026022645046013570953186664869047361915517393521387375655875287447673708991027492361707875909442746969351847571376569750786090753817577024506829490738778479240372501636174728525417462015307460158320654279968240822383054164018184791734061153834604484736441470083339001679048156347719978002246439447248530146926334956536463445737002468825995005523524260948484986144233620646530004156457256031087786962727879336398137771581663958226230726416584962065071078759929682728341866912279803847207937828520391139713417305484777350315186719114746447008805402044607148530627965213106412857533493487314490924575703836871436057698535459528704105985722143045351083313511253190072672931228376089120633072979996637784743420963710649385537373034822078068633326790029550780067382931301190018594664079598904884663803055457725485646694476850164334562782305409269436542842065408560318205052495354553595814901690351975904878576071386686260466994080077520334274320338066885451908188362811476099046980885444082495816927704312283898239846068445134453427860745264476196490061186323212379648302516788908427818917297700162022164397509073797789600951055265371586071488896758802788336118195945188971956487187986004248572490452268671535038167369192816792558276441725091099000440000472615223290065089506400437340505822893333405684489396318858417023529078943673562506623968660529396127150695725573502535765682724227095595464645405040218196226846914972831038303688124774195135165987607677603943976666812175890583597190093456113375659628851945507782891340912760128173895840445944301710138698752938675097957553854453274931992042328087102052392481571653866894854692377229435859834358664511126292553388250572587543936853720080159928569098986388830823836903729684187206461680967177032338226700272561464588359301028198192275535677900523167750472866739934465347001543321701838313594407680589374662015602541535926796947080398775395371831819840649624390310904849062673926285897925625057779494796344393051807273867719110014525341757571807227243470504474914507828268502390746032051842969863803284600074512433837914566272787797212237738848803223141863263359603221154084653926318122696334035634205136607403753269205708424898795412073294502981472533523081495195358130882635475453334600777872680164579897703816131162367846027872707840663895502858513559895208422708524364262546020604663698977140952367288067208841892832110349655721239316799415897643722842282426546030477363433513546162771200075530705422694147507793280226853036612518884991533874015216227613023703198908697427534385436870296754036710526364958988917146517630964029760423735326284329821307809076285000651629398119347110195738140251642163759271050173200268489964402339687743116901946351606640722109165189564467388044861120112585722199823247513863094821839728051737378486042417507349391808398221728843266446134202584994020814783357765433863825204296986300257648780682843975445908391104347069455902907931226657368877776313573602482570904436720428688956333307274630070152383747873212560936191336436719604873681728215194435031059578403717311177375864546935383424681126281914433665029283207776378291463776739232401328172435741829186422963986624116249549358524013208382990004325580728884081211286076205346144569737151758240629107627132602715046486980522249303560282385427301384470223639444224648950842284427375739782864245005549736209514264602731037401719683709010684082657507417632477739087889866844592078544540655184648585729770296495620095645757814883610647746292191110756184483744167870024497413565011783497872247526254802996777902081518745791651481632721572453595807475115040011587852219076151642816393819000565058242704392296521443142165149095117134696034231884701024492291037827486908918669751790441111476732817114277203542291309765897310369739332316088960180911123642152453065198777779096243912667886441170409590498414175250274287707735668296124391733318964014849378582879352919351188440883805508409761891278503491638688168351966141481377133831638860557307144682771398214136975119777581670566718226955371955935951076665165590339395318451141989759123513837645017890142381523140030849553320376830387828491907999746507541235162042592612540051504377206240682281907470120944853976780688122130943522941170687998730150258165266832147107348535313532538417420899052304969174191198478310630573125375306369332172263473121054460444826756003108658529180671799399872873984302150941281535867935872909434648691620007702980115865860065787886286091003020948502214605015210859525273916523674016317729249783518407203900878523890976827581760713767360861686332127288583815244488877707919613447908594698666023970643538575445945439429070861548967705697818069391215508192356551227984273921526217805792844825370208554628784958286685569895188686570074820033365534843209961155317896724490943531368235018098182482585820689746727609647386321222953871133181714162472308533958496032762283690449802532215037989212469154056068229206415191887370327076699526009974006820164333778666252833638986246064957534919258079025649369547089377165759945681071241838946319115518754413773022917378881996444351489423158840496607135784827929352737778015300260994947134408176976101132956717885023786623193336239489406756215908845292828843848461551820974988651847555818565259814421209934763376095902094830938669086989572226529521055206556468183220554516923386393231860144816765412712846350303233879284167037200624443293748840135627728141510583273146053691509584319947599896421101319269766985175197957209368603019213540352836663399070783223583366801208119038119195359545515123280812526998710206614955374645971897554164178772335246545721734545507945456994495568268397183646203000399188627188595416003491508512234019917173489674030381130919726541054963173098430635906705452923575020512029740796696171960516080896484482080476684540616607489731309080360592546975630413399904807230233864394790679513032925407010998961521151703561295666474591926069824757548246381696543709531770901212665437944133718306793863632394318711411572399318720183819567100069077811406217180717046936234624597535061283066330076406021579814549628794658015249948239523253652137824974261587251516427971672343541193849405360709723193882463099743734063149240438270379196848220596130342364047152654194193696616880097122150487926725982820525206088713562379958907554831805666959188176474930544019296761678048809517319377379771044483850612313583990820229393133228177925884102530460289433713314611175820220372099877820606756891599281497412942901566132457798216283898598784773081549808882796633787776481185251625272523127445011745679686154760937976433570596330271121077022309186278203709712108702050518498203540289233793414279854064687182082844176886655671525653898131912800218467785853408374719974147949677676663612693466178347641899803313315891300521333967661248750200782146277170629184786352609164923962490286636350174244896577886602958232547565347162328676965509714634444884970264971495120377529942954670485636501535875314459281135685191550784831162948070746991648441034019607827011877704091838669510526062575064353142620743505649757206762729437607496807610554065869968842053604866978099527974431188712523026627538659407878498779908395436306033880022200189134248648374363850854624155635973834928799623373347253917781477492940935359546829048367286866440534376879129774955845078016602076832644023829214737907543665349694909401727488542495297621396913745364814992316013906122435813848984127388754390045436437504546007880419519855104231227690225647927602093960521266720504564164311987172706327882237874773377491059187770091723091058543020015137213683025122479964093916429955830576684651095252015837234816506176490804950454793355821914735092132356084066941723371069471916453453896839215867434014799413347708292890312919050788266945665445867553095358448341281303766338030180825216274620209434702176213844019950029585569466147971173501197905468128514603730472112623673140200910012102885934741686739591402003441081589654954783082777587955783373942227217862753300744237707680186935827011817357538865182694952431512778238818097420646128726259508537914952359726461706747624923448931577326224627602985936146990843076325138522373156242318030849571844402901128339051237288248641924149952334527008466071697581097506262138252223580067092312331650979789136713299567769380370888222745131666922441465869152008639165644583258497646620911939655480865563784010206296691290404429401132092513639336037897711233500618816083737657422862505261306564304619227126529774971959238512204362407530806542890704402492603953496829023392923213511820023574306680833639693957845544645842573025621148341589452383541059352291062798545583034179223971057480614172115675068737959419747552051010398600294574879727979884771537226199115454551201029280672014470187088816374459145389036259579321703327735568822925556280058927757263978876003350120090369001091946230849020307041044250712974748318987499418328602134925810332111020317567112544607753374313017325393291499583857983639853918319096396820193574657597551265125749342575134725350149265733429011505344232704960007634816832814286637108087507017182548984431464400099663474099687022874028502317436393929882651246390532777334278731118489059249154975650047274506717782259007790540346453987104007909198535519823898724551358121107349891776497050546554576618851072170805795777618952614360580362341669474434337136781674918502653766251948537689054133465816826064706680091594829881123033568779227396591456277819793693755613941976617449945870903372887903610102347531487015602632274548820594389668791021213847896005936230570270484574772021738309770787625296366939107655950943848502911380665291664318609170811262800715746255855077565694373095520964178373175840834510786583689497108603980703464309869331246765212851544844985589497517982849227221036115987760770020586851809306146486005774015274270869437375899795690927316870770477567453356951801772890571874041184360809311948291295086631195938480226073570116525609032922725176258755569757626237505924505330438662131581366947315125159598315357469757582057642682043931709045887338040596161885462026766994500406410303274290147804980628498133084606539915081710147580502801919485501918255410962904085045804997352573998847954594518646804311171865346448528798129808982716590297172183455824184710790997032983332416527114447911258465658466711386982452503848949953418994055811359643091890594822938556182877969945232702265141045944455449635604393931071767040400928787417700901820792167717812551281948291608237416676394494536365690659820432890324972079575663507033188995007857448118638215308494392252530167667744964016176846723046012342073217362090262517523786094482801381140796898108823224257209076901720918631125476326257141670551748373985865273776735976725053827856753367324094685890693953441016852936242003719366981630724630678972430751625569935762941055364658012497779031370532779351723224680674853188044870997548924339358640546411121927917573513320353904414834337910657005735471862818965603574979693467706715979824670368487223063400199669222967400051796610489883515527831402798011056213601208508250635264185665586815800621247009701818247986131873955434765668135521664462168847824209429954228187067830099126997087701482059183491888087849473224743390403061123722363364419424820646892158994872081087837409212180657325884362248762406689810462690306227414599890814824048565499249148685742120706269395448087495850093034508370069884182172105103797102209548381004569726242758450460043463029250472626720071149596592125059060551277903420300057168360063096981876752720590445800075315551430574813493599726612881354387341141901727309109660273478619273513853426282966440319634424494619936028476538916883711312164744270712163759094374574886954055131665438388026136715134924662029567581843554382989549328752705767967769266134009408605018305884304140785204905335653851768613239424738705671380468101138658591106604810218969119126945731939612433969561650482505026434205369270334938714566562665858838702602012760999637377164833214803651638085645141427694795889785025325422176593919378402366704828356883095043428936314343530711619688404248239992083858427939740697444218070706311197913635010851561015212320119604197976772912282290957359747590600447678792576274507778027876168373571164017873313526605189643135626751371707065267898571725234851922646646907324357908938977798737517430499099043635170932645850248987688236943495276641644632063818333115786061428546995313958025739212457002691207041247300394586759334244015558801346263703086130036394337107072602080964300874017836321232499153737701737138386476830684695795307202424281236191523559108284098165821095833095147662758177272511973925371459472730678283820180037033807087015799691929701360375150695267625314673571875560812215679908462365044494156280101378090996670045782178117589946235692559148360443718728307868876408337645500308743391732366039493825205598650594163597630447485638192457980001540180324482576919841003442978715225904859088603664578298873410074480554147342302049713745607025377156309257130009265088412990615786669119936638448666524227894424828131752554937899168528530501641714477593993165826409258167327086295677316713833773740950312842327315161104718893886010126792282543037963095417243231557136623642727048421560410905777497273554921740012359282841531630245510224176217128925307594591041257922210068543602551933596216227579070300334006759458402106360748033297345409246876278967273552660106510909036719148308466885070711133408462992834442211599939918980152973807832681273620708527612397589667133420941629310104652482154942254815631190586256191975448667316004622571928697445216590332526731047953100734671450607027462447819166196075927165028408537279375692327471656482434785726072485127404202253868255140928897870411857855042375748281228362832361757436127137408534084670494269350082785428928813457725843403848061556993837277459064625300879421596752223690413385207866228339790222589399520592511690850969686527046960717793207384591299115051532782948923026367185966145218902813836650198838986765709220738216773463113953422920994515407861803875014856210426676278164350821425113594611634314392537947861536489252404477551172804105775723014188996196841079569587785038405990011924855736289191497443014105835478974416659551350727646157012352550870600237504686205609433486487884401738414761871531635597933728798061874975704856433606012722546985689580611707304389116774456015003024293375417829839354360318725227557761450121592294042968219778995306869294783087870648380961887746031867975658872867852259388773193622323930270862550900238554137709848583728079365160727658519163474152816269627665391782142272440774405886538354686035061993696996760375011798305865946873183622340336218411587012257169771268915169936386398201492268101329287384308460488062192607645063964947284761835728530955750174850823187017729521785725981199678212190571167983869843567561668778731562960452437779239455372294602608875070337713811072539292636102111020115441900043551497209311131134889617703650052384973715888312238624486623607034525068871167496895906851034667709730930494397382703407940039435317462272401372316540781582446516285351746737353677917755949663282623318060113300725925646807628472807630478948917241721355265411707357964563457921056371167387416923441939923032582524940329277981032487463822608739328175938278978665560533218381714498965447942499573506477906768968071149550258901170662140486722851614164775049278951177605465257252008707601739505148717531205194303541066591654237235835459157999713063823396956685329713627291959945240953400741461510137528095240119513237870014653700739291211661842134448547976811617238937994208342395375565734898963537390380023353714456858909362428738928951730515366781149373084243922526263209432156864928616192725497557053522096149588073321907834385958620941475318540813099078951449188164841137421103410193890875879647033950618388796400417770888970280395277574616593688164837706226577417951884435624090890436196370148897213442035265626150634095943142960528596093940217477484735973538897489498483674254819778888185874839458875888410449108952489337006773066590237151008307225962141365613354622944538090956130512398666721301779730528667561441556523540683397513214680344291872482721435366468703487792174457762482969283101493055297090512582313951997271285105262087477789393504699886902393330826704074342117558821293887703258044899236728387484073453392215809981240518945722356105424342378940978886309293346228535490372060202179928829659153320453734541873090197865353010792298570382079894375798257128065571288034790282074812703986289458576066123286118765018350921033288593208549170397605946327106155108961149534412753483923185553450751818799760328251114418567224046459788671095644250791945156670886452953448862157466865679799074868548000988099781102569901132764734795783681609962995541699657309016771621394938813295215580132288949801718959872719790005356790912680055089521843999498402269747253473547602674709587234220375486411329600659169737937667664152681039901063701725736018404491931582530150655755946554331992444743368629673468555167827080082202704485224999559357180762592926327563192003234252799642887418368925081881396718876385144368759825856219239805058320466427804809135708776772585638418923947499236094266519565875421034620780575174890276816799544447060776885699995031135786517584678443669807488053282049142739464851364965123363939245941438295405170736870197328427116801963338355350482288840485931751610625360790819444672859696179037351632131878215621224392173202371945738803976278800471429023586023716366002742532521213556947269172361650298419300374517017105564009963346837265026992858043520904036781600526118022745872272043119663304090657114738180151621891084647424417251821522355902661687199507014300361890785480417585997597812885568127942352139788334510376374746618607567711793309040218653078874433100262408677898509708060216918610981734153961475112093529274481975101794954206489474708169825416644143356055179110022379558201600140377398129426664654105643226916820316853419604414236906177248962076534206413164184287951715905151567886842918994766156766202214899987109508590031913289474957044795779270473760865816619560954197646366214980180574744126013414659272603719347386504032718551380488901667524025977889535152543215065041715702353887543071603337891365943791883700443844911669787924613761460395651047869415708696056767056888694362271437391458628356941755773280260185937423359263197245696198389040099362969191836766900756562331240906211291817074334814132981115374291573027936160448250617342671887672004955205160326495128449465179043954137236243391602620087335889329224265512009111479633868948781311501732592236419516684499604178108782320725851031874279060177063902229626038455785761720792931211237293827709826849891947312191651161663273224311897693482706829631116194424218704816560967500932714587540896965785311315396622826949561941200386067382903824056099628461940880490390921234253118857685643775232916315823667861268522674408270055179636156933869351247631323700112547049181667854781833749536020459176806365674882746113688185310690602244161329894467858783001287305915143114235518744197024820900164047966206401122790328557518902199987370583602618750797178517887104033198821478708974774389171957439546674820508021914867826393552970754393044496054466436930184200273223786864100834350351026077547259926900632241490296741418637726640735689848221692987704510837985071260015373515443861260760281655329092751703298467582474400507932834105046961713312891174984369182780163767071698220367692918434529333976279894851886874037499547505229608504910289473962881324573579918572341535865796641791522262916302220398174293950916049411771408835026136856196612602160290092970992710352295123523255149410743910820085313304495023277281000323272341043257403217819931073196814340566547895845850357787292943950227397750693792205456749173565990993885314675156290010573353237090273805958404214652604672173379938151436826179157906628702407168429198735027324297782194422484776246394948757723413587001963163836418779837676679373666152907403013045153571991446660451818210478674415225301826827809422200665754027897631612014629921608030391374076579439181906933872283770136566024928803179684526335005235460056760007009157260780780003656396942645439591079517249289108587498105000161761568299379467268291721608960687307728289539813069829231530368890800072714994672497893759250529635830847568882625521046701420959316307300900141318781005423507340014450209363909613970586531112340355853012115529852689792381710072334002426461802359365069159655096763069307574132329777737541309330796807785525497668585037541246407702977492947974510221174865056693089234617731059708496697165630229722681157748013154949318685160154106105348379512591741728995230116718527829690747691759579029416409212202910724355192323441777907794636869236935692462895740746893254270500433955454390180069910454781098719025118337672636427646687411977312098042468628467005464434515246388336565246613435704213035347169485161529534868796373764897470103969452030324021368610028211187369312859853036200815243032390880997645376188123191052356951971283064085231642860281010103086034523821584620203003857240835234662834557160348487640513189270630047079220047996980129844794850367196405870180194107185819452698738691048434189115135318779895484886079612581143498660136415804712987588507213556791162557147577967472312232525705050269694961862564392888963044550326618270275717149943068932061692063317974753120943483431173913548613860158967175051334838485340997627996108064635408608314490139018756249421133855354838999141917803214250582986155083428142841426361460245971830464083215455434412584639555703898522787317585615214902415034567097655510266490350502941566642486425497123300654607115945403979423060484775005853944870652649195511694381903742638636895159528120700128667304120116259618285356757435671793418185726139271423496086578235504196244099336030650364059618967146496690574988473068834098944941743689161900895157029398921234215569556965662550717332489489961561693291115983295315191203439533358357254697972751501674681647982294320868000797853480247136238591595905340210849837329407375989686315053887960205412689430921577043296428387639771789638602118000716537736424965098444165756988009777663916790451724556455400812393069372866492584354384171741370956997348202179384738322775188263369380550215585540377389648485074946609240862999762718803647169015163678801026924817744006382737836588767491554423900079981385686833443024385927164862964909104812300100096059780417324825346407190380646430310658046597052245476411688137179425926535477588444607589343495577647733896910448436450707754709775262371712893597596137896704949103553588693681800839323773109420668480385723983640655077834084918710760315477447132980275928973833911068480555827305951678695751301453977312087003543268337961911363691560239725763338566880404683865609233997998885958321094766636484575543617669336221532586059670598170845364672036075566878465715290062563911101834450340229605119839252537908138584198886003289658687592638463744782788631169537866084413395177819107655917751249983218390085919665751791129949473007796133635657272115305519481437869337597517099362559549292783410777832046030775335038832689621083513864426847974426811483767916962771385878878133296566497078925288893838757949284707905693274739938724100463620926703227644767462096923036307932156984044256773315190576068263677078336728086586839079467990997544214100146278216121180072952281320228035266651666962141954651983494557978825019451022078021352225263437760218026548395261083845956619357903216803336215526265228200005792821937685911138142145434367606867579681654764185840293541611187530460678435206637911234251934856851841410381512683131494541620825684817334270745143789278509994228412179408306550634378390980172350407800511593576214350482578458363143937733681940582618396361790655991280277639959650756768999044543895174552658185219770111511945290391226790251994691726324437095933129181276835987933663016611761821229011805279803987637355824631296848974104801766360925142102825543402623428196750327247833442287052212208845230368776975909076158896340656143868168576268372618121305608109253713594767649261352565999964436751446179599712113642866556110014682314181398575661614089141916594694247771278266183200961657117687299794384419165232708597789854733650290379837936160890390085744946010351557292284660477435165746140297338037958373247092657739513121012502194485359191704150546649326169854811372464227108486218742908150133670492500204168322791028154460551651511618392669713714289173336436306475953921223804106153718120556848425355853317172157060636099885931123481753672455323171574392190543325351669747101472412979492177078080417414176463031578575638443869283574043687072755078208338918135584011821791345217817174454072060451912214166158641974041926945940570600290808205141670092538524789734898610487245296917291532969004700586069586668983327938232513596573375017444654628064454855996108327997448972714318909726385301214010498973487792600965542406442994160130055149458796222033378039413757089353238656970576834701570372198750802884257333766388055635637218041321361308610375485750014660139592944256240362804729852541485310690746952241262516440837463951792261150150196028789224874953673758376654775069510045562741836546162689065248959157252022061340014173698195132256048432883541493630300774102469943329087001028176847686232310323896053119748518671961241024115064513722260368759871756118934395757182037926511740103211063576172258118506065348374363728117407552585093735317614390108658338602231513331089080538490676698532968030759453158274258446338802562996548370177247258477628597715960130984889458261380407428656144657594233950881005943202549646065354526860298347385160401064776492728091482480018056166036811459238188093443848962833078570602008701370037603486430515345810601895740492059127711195766864347528643914320659427617334099373589523831375111405411615728930607640550684988402004000922864855599489444965021102492782185904314791889061060485363076614489563745758354071463228431854517219673482183679682061078975862487916694236325680863473401059476216396358199106174309050396876238262079292154889683404635558653213524250537823362240533035990471737095886173280048610263900119567925421300126514786073634550047383416176710376707333271961442313416269466096293832103066497238295296389707013610318443860730572444802195971218053285729460870534670061771045283214384254166808681445053418910829215257124595895405132700074190990965475887025978562494784843258754267581922341234991572025972207239619655521683883518282485038904724088191174249488933555136232340222348086521551432006332785677220554650238806450839925435818384985662341802928561923095114308554886791045512336446773323438674334405793708185343214300412373452910827723340146958758357841085409035613110058887291462005913785448125023772910534842622215275950654169029006169222058767173213863007031716169784328762423827901283485498640786054400480765891287603288975446679413996729086258707711825218104751425981811498385648375100545567749745787191968047985887671579650464185005126017378099830542863707306862216790348464147261605236874018162955220195907672805100874394468995965952063629455585221717378580288186605523024556006279256425525311778407410948870264450363835543398867993326240626276760065936519703097996817715607737316952759260890568563827697298188113871488957046741275770143901554806435055960400390111258943379850661904610147632686485336002199291351563115717053792500382535043113490467766348668889013659001568808157325490225794169494085771845329756921476072552761200897609826349484542973659749893451674727320816039655099271971856173463683674265851852633601880511296220849405730538554831506981239491892025917478853530469512387813388678155507981773029278201838360582956864341029757623687837356066901095358774112374151293641863443427344228900638368128277656234026125293313890123819760637124402183947903922061268722375141375527155581659109593731176897867721969250532152443807847743796783506626668604763578651535216697082179122124591897891510401043837692329204708773139601291863914056752743266039206570980230654591608945455952374634948843155031160776164966474574441009296675684171243830953932981681341410014659641134697307949254507650957461705353314753879530094589280921562647222665891994375669503219935737920777574690112469815401332073334458850059053049086616169004637059095309182192105039785216219553818144824176109542272822221432825131137497023360908928574793406819133281224992196375345447494421137323080411561756826449299110125528679975833097816663833793118929555534207747454197158190027116048687098541143903603555431479662079736729142910426948968217767969870319566388897669136373409759519269434790377143574717558918125497643235588428791803338016142163771836403855644364312185346312007112513056099993533660385249721154204255139108666651274751307269436693103887830861925417116949440917551900071626719684442204312204159718719353323916746426711709969664496779837545829068385966949523933875582600256583971971523705984375734774458193621108277588545277344292208478309833297628001673879814506464240207792317400772286072570956654062223780678028065379158256688560492819431903915646528173807777696743875394783967301991798784004576370860294752380587228531416775148456177765902266615679807497671632962784355367919556696503146819554645796780257120721751832659486878853474837635655015878907775929454482915284529360449959480676813915443183210445529531835775147991478931244540363682314216261225382189030257586014538130689338401214086466961162393408323967568962289515592841642836599103646845316636474585082519026942206832898167581323202713721647242508946981210666426235933657416397041245022905257289508098564254443378374997676636090023693644597068809981287746560237032923423865063385435642900284433685253453919697938096259021114915500385558784547416513312679583555787718656670139128566465715974667066723912236740484460920901626291449884106054817219195277496754672033315914261241019994788345390444299898029746946214791444937658468015982171772853430661040701074417401058625478258064914265499770960044635659692912607774770254487869021669996272490030948769954094009630771646203636480468966735600866488965285721108443420157969372376046347807674190431427436144417526433124198587701471955732087732258232225479818722206211257268183574202401018312749807182642774540246392247173481839551647513589172345098020674350622082113425516536941502835935882586952179932327313130518215664423241857564428290534396571728227761882397394723089685467241558986317068193614997523311159765265618618206946484124544818834939921321827191935268814838241720671091292477691846868677027801344925178714814127001981124757333474092231245404082528160811993953887733374997358037404633010200707566323318985642100183984081266982796914061628493936810219049480903374617033340988616291548451784266473838084233023918787092001240158033638956380656192706414922986842711673994948444107341164791127432303427450410942314126032031825189463045511632730060440454392994621037275293130109963837422665772209822381033164657810393391297213652888236255005362589493260165942323106667971222861361737720398322691948616454886182025867746463686470362017028207602581839035471296430110197978834361000759100434992295440228302095127645329757751888699605999568980733090396717339794209241497093242935105404656612005828243553373668082481534024012604971696130210530092328720784622467244627190783816195595905953814119052163300692587958319757459584083132179562139315855540766043021345618744993401378193430444631729761103477798598090892869896429341983461980945796860261635858984563364174670554784907201985582645207321712181723654057778855423080225893645003861702436917805450992332426242530759004445953000790933031551661375216911230990142667405842248072245855242126497495255308318672228325439618040640945971816617304710840466032603397192051712498027001430456613201186642077795860248969332149792478247034058282498170022081578573065727506132951524783306132711229435135760239373132766636506895842852463910520764895389851337781718915605858759498723833201643301154543809569146860581180301599574881878745869489009188064735085043708632720158761785173155355820518507313527532047140794338174149220349027892133989090252177385557595703412328319025804624137275296834918797903177664857769711490690995553993130852149367414095595248060718721229168037386165732568055261497985505610593579460723929630510573089751901547046817631768655591219011884985011884964487411169728362886212064646845899837361960152962442093658104426771449590142081461873323822315642377965064410634623844871152646900889708422372652449738123696061324205198922757404653478453090937327435712728143890936063338216943703605184282960899332911794484453712100430226028710339318018974653591628388431769607284173295909173588474578492835200407792428869729184425402813375181632896312131181979581209730758725638233666508645008025495655665002542297777761547487079046054597515803618264665760039126628119271172686009962884629676215501196588873639784231669334716056664908640959282326439633564489570116936983319044387256408963637579553551335602434742845115310015880796765052333679685816922251572844947490339387363688806291080141385140838300444514880887500346841900011073588685074375364987712554014522956995644605223301453340568179500540804730583666374534668789202422973723978888751973935792101348522342717874331216846668265990858460026753084602499525529163626773512331537028836646792834033250152463067191860603850719276699856899832294354134468729885760955564072652280472889098510256558579265786903261516810771615222167596670800343574860840351607893952099131070707728669060914689149838664976062645887320459243910361301978313325371564000625779685860910734455743509960432693724717811082605487054785761546301881090411615859355255533994579822392245791609176898162508828557781380222034531702098999480531177771866462532814302517724496031937870923981036433511180230899618207665530501839569036311450450472467515190169193180285516516293769325432203048981893621176729176674919781666006518378969511894845680773364763149934739480770767189304217411056159672778673450718847107350009153861072422455955424854415815848967462622121400072531826889458023688218604322276056091525750042975467973874778428012070670846966393276418690900232835000438784207347145411206920818063821175123409938556309230613851747398750866618791533720102829706386194186714600865074190050541721904349624048902890249952458167443752949733396477586201637418347800979128358048734494629778632708900507108721310655326130449391537483136559163522586418263278945908434185027871994863740999742191695594834134895585588718378300921745497619363860779440834651264609447726202986334900620023600374133831068865091794031253130797016379522352531584732010059553518502594517913191824618396193750382267670112081996820452558719765890642680287828640046455066465978022376662088059896442126311697117470036133591593276836305758482186085370204805348272421210543101900118054297875692902061579532572884095058248568758230295178108145738639464481524495936647838418397505877471273349130733156583718918520666474952715026037842863996546917903571046383217096429233866737245779613953799673771101795035004155682476390159441502620385580644042096385442390243601866211355090310731538166615491152590884459330167275664439458966305000642570076714357310545148337002638947198605395467986780638207110697008141581800225713880930153184047245539572694256581278528453523173241023547028015699969935353445256691112781576779808686875807024259550205585010446982589612009279209566612007175647492735168724575896039065917402693443334434806756761304895078835546103438249510227528908198043184384903470438353271836211849977595124348602999763104001854632115544961943389570285751801392407260072493179817191097956122885522559114512635244578580709636060598820719247155128199053270496322324569553204475746008080131521237804120943988738808045188431964878853985481245088596471336660858774415710830023916511544498905946419302782875753335481006102341501221504496734875580016718022926878677483361647970531490435681948075451285856254454826761022745216341193644148429191174007155879363810843221115916185706300673559888094006204041283474036940312569345417345235747286147173201048946537677157773406062578368825858636239691291714640419236564787253072952098830315742984131577394152441595973502301405268901858247747093751929118716589981868385540840948540164099893826089820169677076351705096883058402216678963215444588441190790330663466383585355156832046693530142788167947651178269825671644093709806180805444747392089203813610247049033324954371064352640667156913936774847343426954263968698940832504216250368522346360098712278644816076411350984510081695099557603838914196170235353558369578891640160647159863285567350577604648723439744127356439813075242648390534754523400204166121465762459266867543696833043503983417236150070893787922142234541231043941813293281709367479777452154205498251441860394742372120579816480860793785294877157711560468156213755783224312245197674864581867859355914628452607908432523058353506837222747617158469398433403610929910021438359619905029436040401306845321997506106977182904636154464631596831277610778332296977493835128167060245326715866569736277113146690641555103898172648055646817773538485123917360444954489224864811011569349592228802702283716358646935708797538684891188442885440498984360504800836865902869251095534161092524296140257908941558094889702753138315050271965185656410341463750397034996889288792149661480663589154317875604478039408153940379753460007164844082303386338379823032742369999349223500698043030809547164722076571854860825343987909427052879521338487936174522414516639449071251242350918951455265104065986434668803128426257552039223174989726041527296410547371989114892344162900411882320952350732333079027388595278580601993622812935455168514890417664532589918584144095724699507364113852512580382894878723177635291343066519771400713794096722306611080414587546425626442401723103680890605771868927085508535562571409275694779101764392480314915036330035669866414357023450943363943314866583520468555258894161525122473202717678228934867110090463981465601130848633473036321467025086356755539405617519997818378710680139310577976023823962300583249611440676354304896367719235943107019989913613112768355154881178039353782195785855230108585680556073276345866234721545060480707314733160069005687976670371764832358471443228816617230498129407291014428235028828439825110464106753062239395893754207635110800806633883431500965691783533309611026598126641552953553303792677038679759371794421998008117836965822112055283695228284996770932496316968606569396350882843034761404854498244430246099361874853357914223290979710534375351011083297854983539061619015194071322661157120554312433825755724201472859772155427495325022628087738121148596876410518198952152238829790024758654174923482747659320535397554077920996473954899392046077166169802762005214866907763957877084194365595440030552626694277041745638453311042389938350762906655645583851500860735567148012607211057156745518223561456787065898797471835432805989167959288611354417976216975022213094365425880411532719977757242419370330495219865441498449985660655815864779101195101227192340334392507800184864005028456592145270240707660677711368657287850594740508487615429445173272984097403681110171511045631818079966477920766833164603721418053160436463067606637039165635019588723335187476801553887026308521508044655719276956471446581953360843272788502752368765623246924000098357152403841098946434404952988700810541776667500593067169704086489625588627648455822803472272381999690275252037843846080936410766667656648744435647748945198913684807513299946607927897180305594184220964482627477109914277368361644602775717684662242535082256263290248003579462903303974967397400081942003694236664322508970567655581723901322533848486245388915636950997975125117865301690825035916370064357009592325522494832319188320819093653422923365472840624311027337792603465527338477374127467609668753541332838362609934125957718188598949074541441198731445657147520664588006608499012727999420038896134647463159894109675451259011110771865067784898791637383580676365377332369399702498068184871035092281638622726938793405272916729085142708752805491771536897914474595543337878724349217335342776135539927120641655968450743896644015038270940578646599728440396396002308092805692542469640308475679374395443360558618528936254607093268546916509210021145608590827766977200784324225330411582390027503350958580907793806898178913680330514098066785047025126271480538549948867641253816255362247899968061496065206588580876159810531364839277610649495827915317423770974272644269549690553539206758336900201127761881515006429055888548094064814248244777630659660403273361175092845597095561497320934591933911368581845415600729843799602345957720652354802576286849646000079215078234940932554076225528165749184154878381300988734003915258384052822086263911977024398233309525642952627154910811530544885428226376498424123234229761597046697053915819489015200658537789916235137754334658195468786858275915833668892614840340704658393014212828911938156766718251748963118534892484171085178215431754514365771820104979677258229083174313024122769355774441283250973772412308387937373354639629286428055375782094232438789476924807150452886205726030829409276989158074003021542641008857236569865908360048696264701027843462542343948582193039427715634925753036470475020428563612290501961746766954396667584723928148512413094850787349402934059525642860514484684112579145199928360811531828161161604573088516942040372208328564792344046241892517322709719285275646496150604268289053752225255574483568551555034704781862643423912594246504452834542034501308907196646463005660723810767657917305389153882743920817648630088570589544632853409552919254438355306039554899140961337151108666919667044921853261451076306997053111386305708311691801566027083464564819913048763854068594586708745040659631237091012391954300362628502467272832600996824231318426638929199494152154570777671127297487546220988249451350658512576558908722370756745798648939927205907044350555712268352098303377928625055528923062739432990253054095360441044647512637270648997541982216413324303168112194029170626984930594286341131965546141578813152607887068260890108970178622147848985119293592503506141823679200199028680196931311489056263242339718167345539389465263918948943062988091959477912554635801336022120097596985840984952002391947691485686337342441219969450524294147213617829036865446706411982367969546543791116464088518047729463573485875976835719085866508191559445831407863010988142427146905198555780292622438601798393789886126273869353788326107831172437936796078641437858990565155984420537406752542607253557835723073940037798119309017718889446430317699895832620562362237444313002921791865418132355448549552386229293436994221152477620285126696991691034324117278831865005678543344228433940356603399629830771819115891077338206421076423411148058943443690961958121602076862019224629203777218566744322795039994245851990115607758684496786394318003738084695271826448705952131386588343664906094253489142055580453060721581062619314640088433408181862309714189348423863192726645230272133799683689281350738645246352778359681177167503396719090218668347953177679140403792350303602665532424246812763604884302914038274684788541224414699780765679002355206666554717651982995144915648962901330600225586103597009767569459053131666312876504584746527058996889836027701490809258134704000687295499408220501404487635955666844416866355911252982403264991149005482452692194536093975001560254837807729116883937236411058404772405147394197166565000571920943903808889333024911002693960433747375105271875378664936484623721752211007715816679251643970060274482159527452464546681725204919828516968245862566405330833704400599583676957733773561407294147497202466664801159687523412344544960131917588569163421905979067822809602234234265437676380807652762551383396826034916105579979674129975089617194554146876904266969769626780764689160411809820165175262027057517013528922832390606257761814137654013129600928192975413938411849382537386764293397708546395693967884396212482068046346384158152954508212447086072699581863842400204838962458338666234522367251950387438500507023357772888646733972389667769331053483361991595977528029865060784879997311424853742973260527920379676929096560125836196530928030249757254884749219310444941632872771539737695083773764296931285604426002576062751103121171616414269383940599039547684642100100527207262446301058038945885491308210468034029063412763633659624727053410964259931196948943326353759876598033587584148938987636273719333745224553586445676000841720220088266293725063148860725865114284990452232557811292456170278648413288844225575258739770578186226439419036955453413079904488669649676984630325622061644778432720609284676370653016071981500700598127278436251307856815974793305963689969549924651851535441886563999083500791120135972896509315119359494642095340753063074990609058831505544967186456811318436911409247538714654817346874105135636718991693771170113793663606664768412134649229875372658646159456390053512186262999518647374340492539609750343389291887922394901588434067671786668330163323578004282547814514436268085782882826597087279182881187878518562299560199181465128072652631995579275152216174289674024170697260154087555502098802553929507712366527453443438718442889740322497516299590362053049715898071979090812090223036810772692031476069203080799540249041300748171838889564353976346636535880011858835009953452318926252205569657902843120559291973838666504817975678688501849084449354029824780290415794501948307761452397323456980419311481987175043418256667237256025211824673908325427497159030983262488084727280315545835916154000630973740448568884994519430982934705414227428555896002116131547076465858878640405936137244460341298263550837221642048556489052209350883324989064595693163915769093336519117200253834071149096951696830271220715459346890943777870037943940229697645989167842469877306729495968948485899639524663877393864087694353549667674629936078159053372466322336644460411624383243620309693491457320175886690251354640500898520885197370351870012955391869021555929204929553225176423719371898389182282859053019443081774462401023979247208183552970035145239181150245410648972795436464851320341471102884351308723727562492617251920578513986554021172596240674151093704854584165656289878643872700497190103176345682361442161494886910304697764378751139584366766541093871536248191204242939459392731937991531223986875532064197910439203760073746321894256030952289405569432538064662955131293741955096592139393536103765797584882677343974014081618508212717288141482153032516355143278546699016507889004953857386531729029114650830124802943436895886070647189835187582339880275975937152656981251954192271028476788493668753034224122430343701106733094667660063219722639265947398161916482764314954787706112818483202645742598216133376234751986843131883933948718905636757324155059767210791295496609322316867714668257704108325915217688478413864590512273144075467698848183533988932823842429674579943072879425834943468256090207383258082855466940620009086418930556428385270282549185072367809325156912401376784577804758290692092943038034899848734804527124608137865092868412237154872626535591313368426143688790476864385361554500033397803544113326609906326595352922134214051468843308691741735501641102113186009349359422620484271204840395429836861389825783831825790745515461180291024339382928114235664003632854742448625831200390113453836045035849085238231984635182468703920250273060233033589718026296970111428143885337338576601644655595321265701409430884828958218636027401797067009128525181517709972129799950151030070864956642301595150988971876613584880265258999163412919951301951619006441930919966082845775175451965225091543878007347581865851351949097684821850996526258661447189645073665532503009731365699138832671910642712752387823331884335326096985144612277371508792869130244721891082259470914715566370307389471100129851910303585507779172875945669772572093962968132091969486968378122786896026312399894408010593629086610218920354089719072113797583785055813396423356886488093071811850396965561708233168374951970682218857082783399069022015599824645566691832204307159432845391981116035053632162801116654382297397080664805863243057290750968011755237124094298012368832473453113465315968610336848361526331760538098304861597860267242267124198393706599896602974533272009471051378036568667531308463323725235805909184530652617094248714264517720105718250387297111547470053781223438978095271518384490986450501296428559700030453993857609665705481071845011616206245780093971851978850910223057488540032137797705918501469560757093978711712791354865678963271954278873627245460253946623365000019097507089312485735811991898743419762209500539954656963519870146289728901427805521411558233023456154924848871304026601811916420668513992564348183558466170151060444002640107637692987174188511194830559676645723900628249716374246609957626519696073589112218485843474087435235250763829763541160613381906947020831300543979882931286994769919592368864948412486266662548040736082138291643978637123187572572451973484560153364425320752072200517026224472854558803342507031783146309398932897538399424992562556409189365985344752355372903629766378670504912053021659958932497233667672447442362829547122411314484009086290906433754393009870350923828659422092292117190831762301824159435730779754162530553660488573843920830763832367597719640413959137433614833312868650353654571548339157997137451954124912249492920666690076531943600507394138783685453449788782541872792840852968912131800035972971812956541495393956668881740751677426696434045473465760991528249579609656564877327973765548938425217685158176072968887794149417238900231016595968917712362472564684234977422387466080206193390062298230770116053130303951690973900357307158071482617880495212699578105316527742776179497781983972968228555258203259055630143991899487950053273517784560267805622124933926886692359423198316229135222623042688217230828386529303285535085706903879545604743627897693737315661153356582696018773596165084195412505075496523018654327477700305929432259792643443366413012697015015519874988287525683120433523835643268386157751250027454857614970513134528145608601526944643749005349165497190079928993410813249688241353872307377705002412596198722675553323945508448515989941773201320890221214864390577186559827658287834476066743494172368958329638573524313768887228741551145176124211077245996897519988349372037562546516871734031871262864428381291381810239742840530314931135472529232657980843306732392534348683845132688564914218185059526956782374938093371068783435970709864982051680130077836061821675752527774880935712627311968890306858886530884465550121457384021229263075835522603373797178620854925246660779434947678426200681134276522984143879746153020293266715780597833122280676837512569641784952462435305757010374525782142866178422550549809461245600809034997154710983111428005454142150225342234711038207605578860997089308159327250084132192937101562681667533486232515309113939774398091142296105575669304025012589005872026322376437367563949022549555610991661612783698375563914744414886458935997446590138571770697794482817676075297898460794629126811551876310361682359782686522844637356834399802370512374525465259435154624444271291374307588582074776968940305224413146924657090223631707314833993568237509667046115770767955532336498822780227884725855996665169904617583341408819130254190069792098721418312130037025330984022270207541743432679494598553802899724361493554938633306428848130557619311564586939314878868422724863808869733169871970022876042185218115062262581938311515614675276782913031330108754793822144425995525553381569120674073018066783132772110470796145076810249230097993525439205747776449891235686713549475206353664213357614565994131811258074421404528345269316448862337772369246629476822045573698950329827219245303313090949240976574934755788165851951162278031371867402299684390961506746715436556643200728354146829907520935194927992514443386351911596628315751680336422426700858771188873602163598067988212629828789382766378481622124449037572423224829397126292413574771707374305772922036955462942846920025522985576656125635985079248079707322362836853568694071042668400131904111348659589821760098849643211892600561448299816665907476558946681135824875464307151581542715746634464448167098872830693951508167766188350474909340164004698775849994893379580597012250699882764655680659146633420091778381093263842627975360319723842215893912213912500493011594505022024258630027130999804974770922310426010626517940557307780505101021985890297532384773864799894348090541115008448834536027845268172489414985988201580429605188671959071112366880225542717609658499339062132350039725574388873897801800318294703163850901815284792886671925281990157711072026815745154790902584238939018647166446469880141463381853337202929545278931874136584839921925997805008880360990198096447294543837841902899985356506137358496850719317391078964711380257857482790402670823382156837388359266028988603638220036914900292830366069721314562239363842818817385120941073108822352731987632677979234120567341337577167777119298903437996326423975222796789934800706694422111479049058767919823514843649738701786718339577873408934543044386225082941937842245456908336678565834569374061973045328895351398288218226805302042392591931312710481153766797209000863278777247485155550087059753700487638424225060152109133216002511211107763723084794833644279410697699489888412581663841908545587189531736129875006324080128006227688476003745416572982822104589088954341257072206107152423597078743905298712636995540719744542837925212458166341685721123463655491823230516150320051236645951260646797001717043819245009895746803423468080877674554674589850352191233502475301963558626029928013680835346734434900178849735672176453805599894228645421407761399103114817361830987033794677961837731103912335017429292218650227701081574053245522244072976596700037543147518389162307547706103741874401841608964076503374787370586387790447737822595719113467036608528057582260028406677451064729848177133694805020999254169820962625326347841969609730655531402968057189715982819805238363642991065771437468044610676687317749857524554493508794366890618820736896146218757774824227161208268902113106926368550476848819503393799133799539930706535201240035459049913886505666285835571472967055143677207752762439887464453099414535307583872688042467238872237262449394320050518030256188523597096522191046030922419391936933680400728750701493291696482193923584555261999711212626558547957194913915605855158529790694792711266753504089501509728078206615953427910954209613206133315444313943015453123557284853083598994692448557360055070432164601224588603975337560266990867156294350377087241598008080794831049410090717452765774089613594661793145508561576035273849481065015957383964012620222110516124672399846907246046540855337002046282517427634344605321201555824376245113201335769946225013318071031090288013379650981984243936370623711658638299920532619543890993702217093316257752759492521481306407751650715788594662996494097340889765507317643047965588695814582787465060595612079715198512454296750421040748897180477936686895985779488760252600542965214787673130209962761828140724118793415628768586217044101853852281214792238621510901439845395556584026413093043827225373115437478317592920054853091564834194202066951808323045132494564691323609218527516840526648055964782275114095393272478232553703494754858077742555094935033901844372739941181461924654683491371740701461264028852625189396492931277855257360391555033184480572102574506419170270340436828754142863393262807452702814098686960191872425868494927105672833608310016788581315816144065062425311951682876988238235408942882619757211698611485647928045014596551505028107238461126364777190742741576132596016050179953840008303268613685613591706961931676188031486481903511767797252873897561959124695761266622629286069370302386392526065730226243374079102891188420096908897933901930117270333577434732235570054913968058600500024856443647374960847184942839384528949862076334410947154786295043457429519294919508864357093725433234871206191089230931755910458354159547073317858595347681671599287900084322952427904295517762231516092746629053208691765472283957863603038466566277377661617819840723212102251283315554874268478404673909253424089695643136486415264436149258682209529338072532049612264273069172213937913602139445540621424178414879454753484419454624744291639264440985275901161264994491910135847045412346281559326048226548461472685782181293189660173007779468070241742648818921645789980556306905878892635042647698637574792681952192907684229041958996083293136727239408769815304462323390440080526358295861270286036803028580502244716948958325946798092440788351430978769033942959470884956795322034602554597049402978104247121548518213584122865200190574347768268612542371142658553815368151737420726012138908573686596290884150703665255088944634768019693035147016408657484668074616861022422815026785792567454873362946471894314298801144592636190048714416761511065082699649214791592442760512095018402267764709203370857519353044274685383031212533067469531162376266584237924762187276083144095216365721403917653424028594784561570589340984660916535602905803230521529404055291232126731870800913786876020869187005554158475309084587844198680133137741760277727516224656310634030389852354425385644266199798872354048118180946647315245026987898476399827730476610683212412399803147967212913963048666428778908961106520956140755461405720721132072260508655254830117473958682658874493903436462705405181627230977339827090065833819286131027718059499129479183145031802411096382325292307960229254496030394122559723837298662104581001886014509074041658758553270762898410509748148259691866462840623694697744427442956407331904714920227976123207632275740331737566585441206645201094260742826045586559320840033316573561710464239495995470285101803866628396601597040820278040325902867196069308649274466925014258234781803717773549114777140451943622187783785471212522290779412370696199682674032019224157379797742646345894310608002978733514816274421014276050259576093162876821826662279724593695430959132258246613741229647621605619236564392869289465580384733461378561453132175313239319137132775900044953136835021001742361053366339386172110749681992025010227121265169418102955919120691267554750603902752296102134219314960943468902904973940456004331232945992549067525047211203177261247858286068050415373431521482816374726222138647309540462882119598196725286586736535363879377081957430433477216905262165136978389907485713738733121286484651467725202148559643788576112341599868810736471996688905710946867399719180987033525497928711300210439412091412280721907549594037046826517666785514565725720077226898853127394248848964147976755171700438218651342032384385805607900014804958905424757727710955850043706431289916751374675761834958074295550693341987481266163711233231882686596696282561159944873487085543478473588697757404738731431041746387272952606384154111741506493282777135374215093896090696769267072055920365180628765348607080427687623913914851931925290458024139789701149907446647107366946758341817848441803114503619026749715073027871368728436923179080197005893386719572573939153457147530410323605276119808708562381502955936024764918649364974429061400959999312008363451321050647074517443649283889496216734178895129015063833743796396873772934367135051087457904208255115162629516388536397924366957032444640651243046095290669487832472362485556635626568227995251093649607823823770286175846452065486068024778511056499527270829461556943327436413704237824357946468695053251413117833928717753185773223406222617823295060940860493315228592624673024306239260476854964544008324602445591320920510498758704978314848666883309637562781754436380312743448068276005066878595539740360074918796637120462672601444097490482010413985425563628255514164067445183247020901210556464523394522710838496783100320338136419514168084584736546245485801374789256186543592851541019988141829923352853999707800774890283864346843098322654852351044412871662835073907751637541085949059955419797709010805314461910809174196887873924945963348172269881939065588437334793761409183944490301654091343000258289735177476671323100737642374814981320522467040567089833193408463197934671332631211767424802498002106309239014722843694266350107464143463696103018915322862628389000736193674550428423901681852309387686089670561651512121835444456874969591152123414460482947077509613291968373556593895719062812913335092642642936611638633613871759913863125547218086726935185045396654403709964584039657927484173383249036539468414198603134285572962560644576101754975459010052354379883499296252158047513562536594346057654750310516275274089284823575433686565014859658965615092511300090558137018284810839095047142370932585688803731740963868914857012667236392733871479263567667176110130322900312709271611901160494818003618818658575297159197629167552809077860839632411602260576889793674848536315544717317595489121660015314323433054366253834700906792583009063099124553784165706804241345185090319449230282263267511307788442375180910280634492325963654741090194165059008092905337244163971935056910832503321222749777621213579192881218840440695221642051289284963228992444114788725495982097887673339359151025652861370518733629002795288708152198446101679479823519056171406517579748894116857671122596277671599040733016354018713393756717438298765886729244253763569437272756498683100474974163297633121165330255116004889917947618249317925424230826685636531281734408343214890453743724743822833667633047666706039168830098194150982425705497036655499096186109776764627921035686793478695448437293367469220732588110656705233086108058325653064042822829483913386837320454138804760891611643471122328310389893728053265753207407477563746411623973419907247877989739477328924585435708620139766195896625659287831003746766215859509142980431335490053000303183054160469904777384344000427130293141038897014513698902611089422730151090004866992294420140900157729804486621960270491294985116578764668270987514604614949912367110879824911170902310198654258226008691693698459141033182721762773154286742687477387739406885567898778115562351518915628902428468875308216453502740425442960149422234630274430074201473792086227836760882862092173129443296747551069203949644575476367134177315243029324332295061041056404295915387780498342143999372126453436948928625933176832037823766787513604375199065136391134515099752459308590372058419297904227092058225761420613254380924998191809971353858884333899717080567487869870014213042918512219666886749525153861622902229191860632949110995474709439935952484746516734041397295355612965199132509484345576164858862697950307650000124058668655504332039306472467280794919125912503489425267652181893653892800025183714282733624397827121529879836323589907555283316256001647180944273165847341817122305167250875114680423351049298798195286116175339657869022038923476244674461762196580868048744796738075731445686500159750848178498266996053368960129291236167843875269548941198381545101103264281579794928312498161183898213699919096547063300086684004825759944233363373667317158857759882074040994999440516710496427887783185021366022454776727674683512454673643121649371510714426459900767062463933672346891252977234048734030351893885773251028561535633787857765425786617739514148106536777334072875346010278011707778637412479680397843505553724236916530006326949309825657978828189665437628959094765936891280025619392143392483343702564026979882091327061054278475732879307932878309737746996930587145702099779850566095655755127047909023373904611609552678495884991915410565840761461062326495858389980817822651125388811546892741884001021081476920995466781165380362793969450286432479731405045950838336923741763942616528616558154824785109749053406995866522043275817541423609536219030751073137944071997723994609709317438165299567411482328288287654444257751054698170989031852610293695481064922021028745941182221516280007830647996108747294081716406338824804570722220746434472331959861101706448817470941400011481334453004663886515607773576252119447856335075381498870519873607698719229536867787817766461752539716656338584479756659961082543804835694246229843724268586080335332290152378037998054587134534101380030074196460966670282645571497398951802215180518286467994047815372192784984494783090209153656293374525700636236007578153999913701103318480633073560494731496463700759778467312457936389138295805534173624781994829701520989989055944030029067252624957298920812242593121352007008552743430893627449561297425780198370438568895130813457408588218351257217929986083242524975404632706020997824775216122324939192009899937216527966827539870062215350450143512425921545355427239180138785385000732746909372883541294376275378428934863286539460862437805823511653220629513123798777496611847329856580879487691872951813712907435201331818213089212870071720400179487435258323153544948179605578159098260703620190371280427235011622263815853747789856608989310577581303431539820314138188781050074540816104852779011680747333391927749146310679276102234515163451564732820980692558876080468583459404519106367125789811880551185791036412703467941313883372118004049652849670900396092705141999151620513101961791096726338242994175442944684891310005199872423541422654797593808433580023297025259811313560908537826524098367256408454132526369702383642663173969205673126360424832889911695590921908362943585403699064063612871585572554487743308422342893231669790047617971378758593792400778676195246174580500289147085342035154567267490616326553224980601452286145827495979691675155565052673343474250550560265421008076490198721203788542939838856024994323138921708817070667648272589141572818845517726314314055297247559289575391147752266223173758729910722271368874033526189005538989914100474206767393273765221052473688711593446099377937299487311087830822294566136480876417720228076914081494351316020821607524715987116695045686492470986781956196707260783387449423147621499104085556594536372714168156243225239636522650538592875088829682707189507675851868975498178991180499177757605263532069693237719878490536663768581638825428956285159225167006431698235603860579995400802887713243434241994757390933576361244523636544614287722527239228086348327346941503162274229473711937958459356396010990879058612810856525734256454434719162313085402903553647632971521863732007572765368108533616161211472480806943851988348498114932946409662777766231567684825754062012938335318719016117130724164086471529450441528648867038206771654286859106640118601606735441999407293700506239683873417008200344285634389895569952928262387189686432490052649928688572170113125656824278871911805601403477327769008506059639583246172432107328211145321195698679489975785015530697701142329392200776711248079987671198833786827910857503478819298574146565607102006480894553470537937939244457267979343138279487762994823525480006521095242801072667053294136178339100064509743305433233422957977630541524134111962218210835468433704109998313757739652402237122128959831959794663228451704579450781383206030209620611199467595984036064195954305987153513956367676445068781938351061231991806227799175157170102859200914791816986984142464904868789979259833906934716673156680496070742480986205456830977838474274820727346263743749712216003358675755268644365951555566963251295476273953045580208559185349576343902553755763987711357153696316324685599880434411474371414719923389605463098880786599263105226970237093694091929654849451647393302769441898965071623146131012609270342151351553729688277567345922721154914629868491211479512969797653522778548192218514063056887070420304443171025959340099621942972548976317946381910944984980995178880914677117374190845719043898066491570139148112396166293860257201971483516714744429944918741084374359124794565465984273831423679937342184949374155353409886068094047649253976758732532399084320568014670632688907623584136963503490559487842098723560167857291496966338097023787357472660005687492743468503817859062918695570949033462600794687081834852061730496067119109549668762788810750580454329481672613913431735610905083649178114787546146732827052060023967930048069071054294013402859894532253275488922899906367116965735019133950727997570802322682258841443774962270888113178418164609191884396289149535233404541697153143043657337599340022794808691307898677652283823936557995535682282739417151758058447748923987876143651971386544590748261591257879620283506827255252305927914078562716234782889784498739043975738077825497637317563763581410928095878955345616462058295256304871846615023538994930040932905723744819768115103414052838211629195576381471914531089343939682601335264480142648607428525937331376019653081321278723085850077347853089465176303978002544932426407650181347925349006806638910531080050345357378083389903099977801818980336757290136194772390775502415540544537542467830066634039908347338428355010506852086026986552148301784200394695802837656380358667704023578331953648052027613027736393532268533842900553678030115082019326884099905470211751686876136364870735057288525968623210184663642824031774620451648642506882490670292049754847060303983674367896343138082591167731118128491841014134090063807553850693793963571728044567948376898909373155977458451563112506333412975998481634477962333645276109865150945901431781535435876771356163746578429622758726326679757118636370499420742091659128627115437198899455502181559561098260205286526822646452591252918787123203941042493630699665817256446751988157320422640954307775812777663789243545693804140248589666227173002490956348448993052505036666880554296349673578884298344206967239998792062319119512436387664366520403907160440696044711230583467951438705291501418110501525068126153610952311584594567937932235458414634883074762855663011454190134506842256039793262209284550651148047746813140758140814715771929692640716438878470284900853349394657767092519180180424079988378307512131150376977409763858526364538581060090522073880458228341107351162190325349591142850849163096044298333507733515557455995215834891819789598293107214068895936371496592720528007766449023527949519283742166504233334554655040256775685734246525074499840145472704255832663638546198153552925468829466029847226932481879610845972195078055052148991164218419303650344751981764785838953836572889338153659593036959168085210125403023867054122725706789954643340216081513212552477721291651118181360185899146047877252692850249769585149998022002849274447748282508172043021983426527746486412036944703506312087436238521772164750724463041371046581622947307949740754848252522030964528423908738903692182424871661138363016900306486929189847376358326747077512287428906800702380702289499270554133293569215368226208905706184789094236799600932459969840821351661651827424209761944988344257776119364269612937756308477243768141858241194207527182578481193409870539803177853720319239083150777389256360139250274889952791240650012867952132022288502698839095265430784327527846484696708388649571403018394358277685144564971387892756230107794738429362143282789308351147181453600080511401883312849832362017266672309467563458176741351136501801087845267003327239051973923093309680604261309105886779493178435237399131708726042752498629666027142218367821453253288894461434320282566741011481120091513734838866855492961187907729779489931918147126316567448199667445656849143200158566219000959888516258045507337869159440921131966698877497306244727993434281926535349184987456090922465596774858774242979708161368713472456456901545272214730112776962131059688830340154823038755815699521411201285874713583684615257288981066640405671633614008356030652801950754133013658324818869366736210701703603947615910909009451637817022129629166815089571998696505625695108888220155295787906043379698540749614876937481024815674450729958223651626080426521784672586660017240289954260534881220549177144910166596856702082333543192586312593243700594482604032870077814309174864902931923210657243906923863927900233578878868109109059355565153169527308625293132173200462299988807316779527913658990832070962623746355914600135606291798485938495029981285380798642267812920158421657474513364625873653991414986405698316791176868789584366585102240978544318601299036589368327836553418693612528661312400844767624183621429260856067440367994649755201136726200083326523097703150787215602546171768746712744364225778301379049011080002930525985519503877175097958245103676762542473845406891082657230359608470392845174649510317040650556203997259169002356410982476518604083963556873556489593799854893388290560528536327589354512810828933177608398778445063355459223602026244646459814254825033334389747729640103456282523119585606467768649939336603439896840672631385740672461699560572284289704561082431941969804199360158346409201687015581928922985044319435223043432551413662581874362844849319586028741318674717388822019106019868582972783754077522369734556172167922762004831448256490790776242949843791056182284916686754673708567733723222501669830057087643580296222376859751538987807880203766050451955605983816968993161274999308599774660028290585229337597615906778996698935549419269327943160541493210270614043913119246218006893651744292368025189353741268074062089950614840860004772793659688443280901099145733169289749814817135599421522213111342085021698334692117341057529188511730985055419274740442684953973319497125304348319649005921489808865270749043222484398384697727578477465928810394372779570834494936770459433981436575697846123280332806589828151426571169629503818407685225247066734633440172697506441143865377532200393902238108854372012987081952462015601072904087550484788494349931790826572232801852775162275903021908250960021350035634181967936847444636133294936687557040933226238505175342433631570863609061604403572534297277698371085032997508241029051846043313315866913800701897138926042354673292204192961026743443675386542973271788692178133083029385717680651659599488713310859346863315827506920511333190799223068095175750550900900817556697841399698476821150700276054585418452135381213567056648803179988981831927232625420937955290387849366046769395451709279664111469532669603742307335681307814071740603431091825430061174180548507492155096120875778272916584327881622316104262928400374484709831209137495867582519321137019916732255196738737491858972358995002529508597067854626755311291314512101104501603987465332692280265436802403740321239730312508123773391039751379203863749363934243046040492703438185249778841205067713489966059410971786076428906414055153526166999585248510039423477022328953586200744129637869957823068254638654856120904173131890450205093298187307801369726478574848816168764727927199722343581650619513994030528236613744250305616096529068312955968981743020127577839074795137067040952473792885651538477732745899099322085787488722181835199952256162320825671736039889818645379490883417875993176646181436419862836633751898184335805174690114572084228251800722590996035274504798580552653528543072430191368379902890275313223974800978176127886151920480444775099778056141049321254693002963097768607943307310218368128601081601787806733392483129208236417732770835787034399327893238452605580342919272785790458243284717935046568642865436990053657366811537796456700420452728866265799314763223891285242499914749257802035382623939999045977827730164983520130076524154692254135935584563870804322219905412154439053853760747823094856643923681116910331698245639421488810110092779191348287275710787641557117951458370162450147166398983054615628693932132898375619890652417639308570392306420442146586934786413689625683296285201836344693756859431702737176826942018555194092115860354270771695543916399297515507744094323148218619187334026324605655487906346609070727965933941420521126000635314609225908808746534587915079308617636687647463020394246493818538254191177968125567407626736377261941484161344779763122603312472711378937406604404993514051649480845188404791536413700471730187808770992969610824748896141071882521009989956012995409833476773681697757125628822596335938368350936192014408269348835618749885044483035587014714724981189571743407705318205145299156133022687328625437220531646033168451790376293294155125571935072389157533056004889199560568315760812417958239404213717445247334727117115429681622901594571235903026378268952567343282276968162249628964741410254179568787322876155612305241453890646575441940154631817398141855163933309945469158475881411658130287843825045864783393225200571990184856179838093285460793226346335679438502294966853551115875804308527012532118516769453362261596246426720178298696793860070589789790308751217266487157817347055431252721565670597105562124948250683381375210553548077209398017159765249224740626803534697454962975142646120520814017735116040298612087694821480194589513828155607869076772574659497044997881589180336744798055330611794980998524693660075983614862505664301731346262477247242309009339668223418870436937148710399667191134467230995112472706723011547236772806742681440272840920702541665116872620831839691770517371833628509811569905909210876375761234431618152253910218333659748615541375310136712086073907637821570219799149814512065818848595859613686725610031089539183885408267254514686465247415089018033111889344439493545326256112849536001478786803477281730902142047319540473095598678896023142440971083104865206913489947484410652974985496123689650533948025110395662071848631346866361376243510980151562666863220914889300614135477933797450449470046889927585594574088761825465163481780275367253897573775671092013370661801498311472310162316492012852817789364607686511620421396576830671303733481876896697243991100520462929759744745245050279658130288194706327229106161467049568207149040662283182003987050933304230104542307288995576459341847459396896178098367690329040212882536177642586200375740700553426986969650060425492602076610340037624453108528404008750774494782054478984031085825991670381049939591192372170725792330311635215854498491904806748716753981809037850744142215435975765694953647209684713723087301218825598574476165386808326704910339087500038238396190872004423623086972736669568770679436464457110515748660652749894757424498898710900975091481539954463755286450028410258692930456674687542718388408372882623214706721924950646988581495868822026615747966334969433767009479687163912581071632950250590435678330443619481585231743998952340768272838923015212260989922689163771255239058944318555549858328275107508928405846895660948581146920793637571874270458827262101891307747725387976215868060896408034951902801634642157154909301592305624215855502691422263911454477720218753064504972675781592570186712732754566748522179912360836022220905516284486275695857920523731042704483585204530828857659752377189464249597285481465101120961815673835118049267670141925163047948179358427776692891022834292191721208473799665120704556685041783559598395537063892081549622555729829559267560218744394882764398964719773685276290739757177606423438371646736720256288582234710896462546289171239666289105833758877968857653803260085878146162983332601443940888760137317485207477471111393114369156379307565403561434597862626766544003799616166122351054837791116383957675078358261281941813512822167059911695076027495193453039339329296971721143013755742346851163707334941167949735000896004341831552422234330256179429445282944652418376611101112171616056486017488918707885596390802484664627186265317452081759500051100795366796619291691265090147207937258301625228204327648844252219842735783046229082708890911044963993718816861646224726935899458904750269637249274392921483547217608734469483630161977020818653215928830677680622876778784576740409309221049985989743579823832525977792928072658549318678729847791416071317954552825585821336205379981756322608594359820049932758398344639254237516103496105456933795521232177757747567572596672227144240009421618667807847394781631122319405959682244748914817622134595854717093299094257058919717102731772678758991638067555840500655133530622655790602824542267786709747157439485227646594742827864565983219021973412067675752847305468090564819688322482749050559743138159155797856694923211487285509822258488666258061153577775218296843815794862476999034447853657774437816628103206553093057337919599511310995136222155022547974858515706161059527070816667772537677211615893476634577957666300811592979651858449001092716482061122729132340603798568681076002803709132231884664900211401282850866004888365584177671951776752847604604688979735101409752666241780900756199533311761776516436282519593136103882326478208386304494592424326510841465325494754992528728297968207907347790702956223241708419304088763806523166566294813782707241006104434017500808582569953587151743295313198736335665953678981484854775992080410712348864140045085766358165341904003118823880874272362292539323446042304377573694649758083919706236717910999272881018034426304532631625564781554542689482560041123024689434285145834772519965055757661270413998264568808022460836431920903137268333266775759223385861091850921294554675437615071280075210902257551634433228197708000878839231625009562380000318283401297719381730894845788940247217168065680933399467038202231638682154893595970953315413453374664989443071447166389718625457424559157889833130355188033590231862772864119342697986521618685317980834155286237581101779127168975653611760032339657821686116027579470942679644386860335156870038688140588247917748495055578535406580456840809286465396235737499732093240783706318197678572979270298531801500152100353731953349271979222533604876474706825169916127159475883877374158998577708970389816168575852662579878787561203053471074786102382423292912407020330401349898667495273362061571795194008698785281578073841414927683118034934587096281433155907272940251754223154496616437580188714894825723646867004204652639092149969931177871736114755298844015594207225363331710187867227153225089155815697116877078173665616924059338007419743897417571899912069935986383740536655987333378615391612612459807237801360474982575573186102696553765682110082422641191416126787796288673652870622334029902488024190295393407234815532721254488145763070606173227154010805693778019992881273006583565009878823679701496895706092652663137987433339597989472345760800467620443668519480163457016522463100810230088336928937574622395420108564610606853003849459838447946944131176367092357035011161992833318993735263924007820328062291083822213222558344222074765343885393241445534208835664149118863795456241354218942622315951075440653115107575087722678352784858361213144716918471197708274253256427570348413524240410399298863532458729165309982274336211775665301150306599287119838153447451839169312531541026200075281991942494891391744363620356748915040502464232853892084854868376179804475278372665766824271323932907094574712967152295501541527486676404705400579271539504348573766910310771295263764816957366273262313689371845921589597890400321432495877467684404641078954033287916625426864549864178229421079268830983621746920406599778025167288446819340301164622687060351000812345631298532408893768924973842482595736532398150785138642605251883161356286941900122599251316100969602434141325307954470712640837819830453213604715259785975271293736732057014801350787103138180171749536026585297862381756247033004778090474373120620624538966587525384136298866497417444540296762850162716814770491143203684372873371199303919126661210232124379985060674159157250487942330464288120199947748979744900412574389767035169379085812909147918891575826699953472648857452466361031350434461796931044346724227865207056711361926180718659414229544869682368160144745044375521363674760499251607043000652648592188323752938155571246813557640185831730326773529458501660717420814790144032796115863093669237521095170560876258410391853737977965020972019054600670859054700088197907626230715068762432761028191468757867210584696149153805349953462843861537222030405431109189226684040364340503649401223978771718826508117284156532471978943605687610093454626879382050595964798723738969436597163761907806866374595160244170804756558903921533207214065726301504572899606352367606392174059786871496874963438774321095645512007472464944617900081051676549500140805409837174334146240459452434105259730623630113920868673060500766305607933571067141145799290014158209054729303152139328318155374805024490482293365674485448103430696814612925495470228969462921438275975080849701470810164734411610695745205292943973536506254349565320103971137236232611466674806714503845136830854582641256736281281519820232700507708168210360035058903534925787273394887715348903951985915751142374028840609940555513506301376550971294871808058371325164558783431692150685034703571723690001321074969198832494452800664711663187765924503254992780196185217141983222016346545111087042328362013450130880514700181782959951478520679405697383468437780282229431867833550407199957451732511959689311015852603142433009047559662818759753616439361340880708969083014184745988800697699726280818436631026698738200007496964163114765046115205028789055653519511473964903156482561642964871223258273419047869291323524948719921878144487287604153157117982331672731842042760907154226189246905826137676639145981843289492823428890253806627365106747583207139615983897851102819114770339322487341887337453850377571921084363651369658924303364445876053716059106016385034428680884919726020260878311564833938891453638621237086127556528472330427807083283526616097951633474215851847308206893321792328462385094154737168940624415502725669563862021543019068765341176391075759312206913272387796036402532255378964241673508411156073118033911144819687246278646213587460948746621531735321585318277635918032002059021655977308468533354920623814636112695338862537378452862391894091964264861303316543142101250600214364078098461625733294605248453847710657658539127731979980141502379895907371548172179128555779971231544106294321021987520776508614555712648809549320367569958768165824390909181877846507965271995352540588245021125270576641813401396611542134400844437626125766271354511588406338117889469451049125956452312790435273594663199973082166778998345407952849940829937601630344822595236676437287608539331179382608064414893959076318765176140629930152099282785202715132555386776079242633385700488412626468891221056259735665053532190648583503865062810772321386918997795864526112381127733015803073940145602192129590451012317381385629077441265436990911915300419471954317386330599079987787970079239936019670498099330041497871830699132420483860255853992755795787878681607071215039346070638605720872547062693633954335655796807862712494988067113669391631823584909220160483669133602037548107448083071923204646594327698268749016932648397777077374779188224456913378969178754468224408203302196998569412589639499570164632204779927720847651407238922632010185016778760216822995664362814047223672484493847026761125477278283813216470238573015780323839289274426648924077965941682029633376941781468010207677967529004538292908863030308689842566013303534004118057857173744150922953294499225130599154601019914811328508317233185732967224770250136174099875412102538452040494400888406488630908340487035852072622317589753816040123234947864415556910003232575794755872483413615881232835708075321514996690310630399186805282221257261011393101235731743429767627771699678871327585576684761183593603080023131880376013677589894613276183672307611206372830244887725282315184226252692611909739739789046780753878405706817226619186390621051086262167955625368351692539781954960695077157363595623675584699666153723042069684397259761677831783750785842283137642423190240068414632237282535912178358142416938206183685428632622759749109780039630281612350077529329111400857686069304880541187341748772030513603230992954379925404002615374952769504299061848870577181167662601440307046830821009111154486172716465775020287198335347828593238319185883074111711959989857688268906877574827004020173706104406144125203593594303368866495302194815898941472449991305532374236813433196991070430856346697061033489739208315624168810454514513503850298865036884717609443440182046348975960085885747214918529045719742360645683087283519103078582332736374243982029767506378410881565784637732412958794236667128513159144791819620586559338228486884844972218278700054262175557829427265589646990880709359603524538171328327311216889010806054683054910593350097133411272067035214481084592279052018377343754033256881430192223866177211182838524468218573234728428436265312057066166720976113995128460001420696893090287792620591498548089252888525217116973821056551044029133035670817598800977723985387730897608662204350901427755849412131748085703172931259909742612109163225288458849727553267475787808287466457715366251623707837331604147832995116692252251640699468048118899735236633017700620320333002347711815105755602369132283125793324591511817827278026986994649439392185999926805186326929180316195534932091551254666666669240916884759559145112192017561746966672742224830856760445184244498334792705375301338160099552371069575219561091644185433330885784778208812323170195689076037884931027078024312699969298779461833365991684143658592841708917660584427765949911620827393301871571160707965414412818086467094437021674924535305861991819240808619491494858766200167499666268671515699023306877190822704344480564931104166133946653452287976699297889325220549603348579487189867408527195308848948472400326561990077838283161187715821238451287179114325070433946592996619829643069744344070827609803115185148129464189314073946434185737298854299021832639326886591939666743609440241760033996860108836914062012049089276992868356012914315813294665573903595740761269823201942439533149327860361489287172655640700301670514014697354862341480567916776019574974608269509776740539264299235727441690799348792458424659656541522972106937195858054585536736504359722004024113766698487327681587274222231997246999788380046345912220721533469414613529214556572614171996403000237571085981908477311123412815339752120075213014018223578904703174095117236237452422577166453575654259631651345281670651444300863242520229849904073195621264867785063925940739652079950761486318862876479793170697407552075540033589355488934007415089114518746348532543980250594756078951816705466037641727456737809990838286859930470645132259748086183009018982570481183523646650158440636746361831292642783367046883806620892227090718562467582507035442694362472254238378760183559175745644602249638463844167734623690711023478519397277627346491038599693220697854310815953154794661073411512751317334699489612516354399430213086119554369907020407816804632884037710153389285830978429168875417078472665964021173837078248818914505135068523498342460185258597123444566750691722183720543354894389063687373154923175268862370134055059106277065422148359131783019381300662222982884834975359841957828706587435200323832005689691831279682189372935111170405804005923444636127328194350694975978051852175209842427892340930808801785011432995449136277628953246051773267946592456144792330058834847347132491542500355590064655921685798904154430568582197803055141412317433903325244830263529886794717763208320424235035687783507672862214187499406845057280052286339075615498602402040353445985838314391703423777106287573739061050297722483026423500709760823984912529039423377083057424914849445365941524035587262103555117098144643633173486041887153300693072164496305449801910835899441018917652706373195147632398297119854340187950991720824591242642162682217274251105815722900403143077777376353505234459463246901334971261484907527199202000520941855349249149915906831944973636404466256437883378715002251191256505657448473687680163780911223115725732288866205271514505355647149620467912302580027039026837086456604227363675617391330265995517081564432681621615756565388995850323061640960939889218492106294005986299373308107111556290529484878457431793490180694870579673723813465749789066533387978798400013187329655740372242216707884638333502371073343540254789333291577946011710735650183899453635234361084542152237284681014358070289536485418985395160538982892871145896402342965328863886394174348898168303687380681401512269711269950630399981632583607412410879264555302735409559778157212253156776889814964129704102436405623335678017205666898248006767668077423521242497578790870718335356729538004430203207482817666323383833728786436733356775408527737830719704367277639047385009305115936890178748823610954177861704245088415421221267419393185759890015797903681977642504992951829892684345002848378025357756974563207501202710257062555365196076821614886430024996987119674403717455178123382074450546442822642406429123687081522222255605950769156735839505157623447057827315868537201745568242898508195239722890624572710717735938127218700344077776303344944079634688736519424012714040173410995207746975778564411106120306276366819184094720190087865066916254992588199083269763244225941527843795129998506861369819276721660915391321786454105327282513874556699240811976552423364545990619469715494111359834517285289739146526525858609179509150970673601406714795600449328481127368302797029277763752594519959351112863738419766420891469217997785290214088840924708817018936369648925069316454134964269656357379205330208516053571518899893955870397370064777714389447138454864221433322154511190931719988915628415622607009949531004952000553969549691301407372881539876097323854327597358861259778828438335921964215080369603333460193174964792603370920016078218778041096146492017612300841046555171728796485477146486051764011422576377509883177516139624204699204645382872119350117007487340243457424103980674796824759120756003413694015927662990326500862518838093783115876860239958604677949347465903743567354499726518670094773440963867025355424513212798544591013868902856373924226506105638319814296918962799335752967905809582859234281521350566540650245274620005617782466446755795622343408775468153427597785739321947186705926564148865522278653535810541035380929485129190790277416334915351683253491199750799012258619333927276548146398826797126381529153174754161639301155084727627549319151659762735686653814870407018182056957259444189928085823747312321301051265248839237906157004815856382726329934428125515658248228336984845833255678696928658563723762399725328859925799760839794608783899155443835368012342845487092833528475858822278205720749834971122830285204097848493964740941730545075245434371493014773795467310370677165868593153632639437718320685114763602224591404637082045883266444436698221960190747942395457535703624854568506371083938255085754993231241711640611582431705552638386161753589903864219147799907155061499598521294376497138902416306605252108124583124520610607441402690084607528135535392706464013657678575999423120772986442222107698218957637574112073528208086208883963406110155153606514824946537091192688214596987644278491498330980776424746792432356031387209215266885235109135784740403713907817402853752134932302514563406643503939786429926316588770661651485940968020719598239390503891107712826829310692933607992629979421150125605546700886999761582525247165423170108147888097455928149983218220928011314583134070605458857089337975363442799725177456258284300757923130961252032512918596441930489084346897407753389600286226296395865550082158909016578429484198480519935299760782341928032724332108451551615191188026918556142700013504891295583479845741819633399627679664506476629253845119429629441730922156233241074353470821960673228318085808760853392679438228366600008668986530036905471962056330575220387071735485957763184914033134921121739752788628256374818150911181691920808222989991280520655668498305251665304998263199250978581112083256982162006301645169281564503190967460540343585128183681312792482010253302482097299116524322007719551543301024719852590450064617043475639997345341583394963588180988294739437920789402333868555078627471018202636461151360875953056132676105879124096116129992174562816989047989220188037121086223325061191054929737297492929876904186912317805789853565378851325302191174836424000971278703359285855787702456382494004832534221801287283170845928349678087535306383686866614994009867750624525551940292906018245793470419510392820904442657551260928896743129509793580067354155005184074355967243599802345075110686301075110534053333058815095482812227022022023542783240026576086114370470118477151001222584238994332940543867094312063812302580897867329151212678589522671495448225392934625788563173005175560508017544088673262761084655439885436829948752142701066643526037315371619510831222842624337197883722201961743104476104022974602068453873836039161440146298572593574860100835723383931533919502230797509856233739375882736018280370235042744408975738875743170733393108987393960007241845890512467980800603377036506598761031686748502692755644168776870904565040740737321740540242641963114282788062087727434521789760383932723380890591454405244396062717302851344226525048512380339193401142703843245091640735864351005107179604084531962545009348732776002154209427766871955607761213322585687551326941688319819267835514434906702765401645793055135602856662325098771559174373846404532721599620043096475314474472978966882593203380612732033155826083078959153483655241137227835808176468314273253276049202544166431499403627805311930946353043161496094258089550344608368311679931746665682539495848258871942245806853211249530068202951109849390288720907751929493068467968364022729868092552883152767653439545970269174305758115800687723011831125431415363604247018104353683347793604025375154355165153296649606045303093904742592066697245196348465667797648061335642199489831484720095430166481997950757652455561857156599679213886381217750770601734864665198018895697708493017191567633654274154420729333067445130805020868835288977218313916760060655807623254897092546898728260340030581379344587099512837151408842142563620206722315897438405034056398781865828122654279092754490403402323631654837505697512334334766278080797353745683735861109218819189826136684925058351693142213422929011623291464783168428743042318945770260655648386752892955858308242447078690152722293297252074328560208151832209841181095862248723200127569699895831215152109082136939832280025859662879581065373359260132537690086127317435508862071976487735311924216500174567979409766931077606547094412534639790004638907124696425036724116804186838536609435387465946015244681584539692181768872066031304790682627178696778865024955463010692576299514351088480150864244864946047731693508680468038839332681277111020537318156389826239100508535056306952471940798300412860438428147823593520079418445101855296485821250601239416871842463952688532300246545043638250207032274135778405838161682015859372764976488985502792001211980404520992431707175226109162499912197585143632502549335903059889480186911463837175253713078343115793493808241639272444114625213790455681432628196426371929328691289835383237297840080818556009336532678769603972450618551829823808398339829891478414968419660288998398702428413672985266459910321851566562152303977899500266455650127480174166225593422633550247582532807220005019927216592351394718550104185107103612165282349320401520850549853768428610114975320219077032098558938491700236640197625298678826035676716789971385232299768395188434239762923398950598870334080882435164006943886958075280109837802255419892269400561263366863520608734946214675469254317316832414942365402457282422855902928484731184218591537936995185687926534153218250567195477101532244849743072974677730897455739530754903063520790737620498281295601294138447197327344956508160496851286300550992199022331600894048991312036264557543154213164508125155083267943129686408453656021812551438405265227246609362174681093509907003028368824228809306616866883913973693846945153182175243733581191591199210495142103949957990734593598185184335300305171126523833791096266130288138765828785680958041961075752067752452032804636454376117750038108276981336751810036305941778286695889504018269733916760391685267095988618583107255839163489377494145214320340694171764640634911870160919289718551877608421941182257579510912541260997135385168560449452488414331885785080545709329495560636735072848868215306735077790475659591298831620810999203569950160321843483327516272172062604722737312662691492050416198352268582808103326670998093705165282303811455300996051123898222480109398796036741173807568673411433469183711615747229453959230990715903253056696201990714342992963670271046760916491565873269090148737280350870443777822840245853498490563807421228321167130640516051577149693243078822643661240606795904794380935556273952947077858855604619053637196705910196151448330029474822146936134700454999295232878015041844997175455285244475810455700710019821694447864300036993991985159063900402828023017737983573396381981663486684810725727650781963944295659790386646136962381688575747560459101077306736169352338214274238296055938215900407182286537245914889582556420829658965761526865164141454702089428070741513950689405695705265119168262145479642133303277501793808759091263625321599749747249691321942088924204478542275641097338849403580916540343061787167132292595100269078883942250494636531924399999075183936569119265273731377944417846852258348142970792786735803098070044793210464651561322655195941471570057137005671671672317524764278554735922945503590225372448191304796728938907961969006561189704734639270476300818584559258052238551563008115893265614482450419074300933493733227325848446039874535219590562731284657376155251567669401070326845149973555749154907904205625967682414668673710684737415130026281774439416844793010884043526668547179226789352315088654451903680535581938897195489270445551651209425961671263547264808415390426138747771329138103525161934533109579061762911567462945422094866908021788577324328600161918299708707071375105088084879870002271273430000281396183352475287159455721005687910764069786743394805366900909519038250944941425952078040887042215566592506087764020453090555546595108014481321377083580576090209228695659786925733842007242529302281336875507211884336340587157441663086963455957140716984263478148585270363705655128290174037299641192956970522418845495042900367368250344154138877086644186798280623610556223319270326389213730019779920751916118637435476965016125608484446235364416747676692997115546715411608867508453872694879031426549841587844981482093601177035111624925843732064983162284317918545192157061152015168055735443757742309270945626183488476104371973281869993144196633857302198350594328651045056326302721888918370451557002369251326853399627727415108416975141810779572455178940042684030792734789173187968634581732499080717406400657700796893050215057107931194677437275430334535756979237421129900915066317521579318238013319557680496067077861250856988354346649683478919094451440560565460646342096181956095534797346962783507654447757761738374389579100505197544920661985337800823981651560734238943373274156796901571189935918322583862212822216176222216355362344573500542164296864822621489717111204673962129393114501502515326777763491745110396606588476769861444924790721012508618872848884984305059875681927176623828610683796530230934814593832901779682376521940684365982645864358371846364753417702407197751291993740052739580362864789751782032817443306095682473430234627947869421962321096221012583425284997511238143058957767061359259642450291135398755707909871402368904681560275280816092795240434070799444594552773179136374289802758038184900898622057177747383756216832239856208110782004773067197423392155717054588950695559379087905970619666143727592766565742721644119043930700572480627800911077204607990211917010864216157086306376059554179804251286092850100524653258648575944452967835093558279168777311140928505740542314867996389129665605917772415229032545291427772448527691356596599804587661270582535519986572751513818564495409009615726048913753723615282862375598687416404473814892662468433888042746621112621269742082763897482663493163484302950420360617715060508517705684361291609070358748552617586023856951418345019756330067492206910586805970905068844187775196294653780590688523405572115901018916770093801677769021947094322282211167437132663696616198930377900151435939093880847049483774861870889661410884778056433900699200884460785938875296471285272556988337685334014969042385527600135712938091833246138864458881131234545054489354214048348829491176386156287855034509902533440027067820597053676449659532909273486617798143294682715396227905515958824345388942693036205106198491545424910480045188708187340820802597900603375873871189009964911574391899140467923447999684511219999222422640693540392977633315291784180452063094482743250662610077650553783425457110094157166533721308028016957743527553979032824492438799835769512404549203894178796622969374934239995222572272072983533520785673530903977371710335168205258572426657568054971629722213002635554797808793296462610886656590058604051900894049736693693346876749354402401036909718534986326079446269295066052262494264762359994093401857572200402043204371518319399933671768993470899861482252249972924505707170106514178685533265146996723104890666729030610214321116422696815151875624393228858725541132071587131262153239993158758261319763599861320262138699172520761890383913605188702166178982674332409074939656577573089929114582563460951100715277480683467717196271114407288211811786130757955600111545269286812730927890961595033442533744600207410232451815711220547454761435760412042614018201628054908325000879274497055748083958392534176669869672688675736314814214510580690250471935823298459293700382229062364262027296471678736428061991207280501909125981440940330740801678025476844890374977108165720894860021155610208926259646660900686505528364061161875987782936705118973741111285729260289181369867662083203943041646814825612237666831106115141244805541597681926747746472938825220054811900133993417521353858065506212542434977761925213917376421358216503388179866967094148950784957657182802232466912494473046780090690428281281678142361698512716846341852448507212512831057425845946486418453595997264441024413934712257951740142307749790359224535053348961631087514387748365507154614105474298505626105406198641034408862224536141418335305159861539113770293789133277021157336885181081394068602679959158802447442280496271031909358038451922089741628501649266346599318054244372973101861285065278105910060461648130708510189642028279150223314113936564721306443420930402384979109890709943172669027941797269536155924798060206504460692925471385673381727041003817565102095929410384209076140097562612101866740841139374812102854331323632576561451770401954914966943489523985489278929934744758467537518728877307456150540940138716547772790701360721651236794146916565928559747422047407015209171437437637985026555266251667632313679229158978482235393608648139452707192510170102873823276142344481805868130120489420232487578230912398386525538382028066486906197251499105622470123705396793064515177341487960374105315528322009188311806046226896603058322522111392362848627058595377488388325650152249474355756177287557644723092515409151937167351372430204960345416899181331826366722058891036863937751690383110730626233424141670959394548043960618186509058954914387106529073532707050091791989775559364451268948901302913086244877965975717867623560423836367593564599863571467261309828580118681071802712348731614636509873508157404118371435867438346453919862509558698959991502408052017682256248996901106602671108223162293951165457697446988183412685545813675328209427741152027153001172313815072474105359377741025457345543972903689126547817359862661485479381710422719774635918320690608763049530564747698706028841184633891545121859389803966062124198507819524116663479678085956174386078908779565517732586863167463906099333294604866448542538156163783160832298605273820835052098888514548646336823118600097294286571356272691571121360347092388308361849359540145253772710054937243209793517279218815305596628253395803539671926059914029613441891360879271174028470182673387912666644599797159527461523766866813438458898873307055097121680716702361956079108144715612146551330232441021405200771662259275008534964198306820944663072691959478205628134267021443443729150844472788101157955224448809623161173815076060833159120089870580805079483509690303887229257600740320951837293444954356084188144769216021730742950760115885536886588616587790072317300571667586437372146126728730676243734323323300974712365521786642269010538292939362112328883459318493366217271122534850897809044150843555592955165911653606423719383984188594169603410709567790218301956690449198073960398404067926840582662083506225259844110837033103405976189692614256816625368368432765591205560550948113391766649970112272185134874288137751220113346998640457144184640064471606795707197303549294458194903934589361423678701813099556701309043263445493333923646867941190879149653249825671922279577277420991495164084325708452175768481626767525184725146926110256380707240274811084052725811976680500781938391989866484893990792274560266131407059617054534281576609876007178528144202135817188690012385812586998950372808249924084476573601838123027013212765241079121459118374423006547092723072625722257212795787658227103069216436209027319614728543087553181458705859465752043251000544660045284797645468665998850189889762963446943721936497304452902153216351204043813437410980309930660818917326564586687948656479579840927678303568156377647194812226178047436227817060702814484891062849444073424967054267748033503393930233318632509606688359946853400175602778106315528309093144759647266419704720860743263807946511100439238303103409667057421076578078526648629657600467874685908302478624302971933600386661617387080814655301116053586506222275703705422952102487875487636269583543489699012144604814621173704682964288441159967211135223807200241301195605282898087295817215891250847521487202178914252037696662968752086040246213403667112667973550740214214536217409661061511317452488536828304059338746014856160476746819461079951508827448023893727081678106494433788930742291898727151917646845258277616958898128246081698820407447735636926028146527454337956157178971672663300618133852247115703985726856444923763047463964516023947324480536535940631504494795646308456698437496101131475234489425322981149767780691334613756956725003444416947424396273716861571845920084767921707836811004578372838279438691273364103259914998968146205152215930573623423668712973544885617707508701376636272154640543778264412540598717937080308787713079603894563303039203319726362007156262977756267032192884097217031726166780687196134771932231478869580160640211387000744195590295379180316031590042334755662539317361313674786774704883790338145694855813501836735811190424468164563797091539090330395644758299440742770054987341166056760262249273709648425630620113534843075408336696541950397664200001772200842009328925756501887612912698906706719627989957058366779594289724714313358514788606754174656038562116866604374469075702015241926907349615557349264938764401234999044294378231123230611227081202268023298470749214604879287933805846541820052927027081129992101195500522026436346333010809174557296605180894141588447348116637695491971785061946201344386611077090096434826322609854109651286861002378596322656147821474599530187979090915760533099013717078761908445416584261268900903778938126651925360169156147160571591258962451292267333995673033884744571680609796712161782028245352057183948650314319232466378581455836079665246150180240037984682613968490074953381761165478979318324555434280279178036852537377611914847022161445857647075892193538399415618668859373683446242133062221998882202732389574788833577324877021808532199801565642763325436719618857473977214892027596625770823646041201903738738538136699158821238366677787956425582191353654556251606647128325944949369809072866561481705795722876305051734084915215347493994058858468956614822711145581837615198295950601158459755198682965056009648304548398713277375155325968021262248920106203396137650241823311023209986161112240900015436546930842126025555028204638958220515361632812100400740019259057770460116932549912239716434274018621183425002622093417568621966774543545330413064931886503762754666210060319031313900546290876197894144284055282637791747901592085032902510830942465187189592990521277009409023593217005178924771980568088257450491029406329191373627552632492270781494161150115509943919963971959729841487962551001995131311963453329998020174390252099222000082311960400914299550873100668200321633192348206715366638705510689811627781200661422243203851757735329882376954785136344227015546283178136703670934324805306224879816559512456278063368875215020081422053392475236595195908488615539405153846700406601392326454433013026411215699267567182638247914706554602835194098896300340106630907675506055953447206172172479676663699862905218814859094956205357008482868485786794370694517658336026277284609877756567144262309096678432402329296804078827750960660388835992195153263946106026828560442711743183423064570226320947490024565934869053750966293365991507514242352053536591666311920521136521511794745134316220565940894516421719404619530841954728008229298087771424514530293686049476546736111505860264878886055111654088772597079347840471323236746150105217340161694948800050342427643954883809677202024775589973383602960320040628755232471614628955337955730141757824605456032990799150199995348460725780777508436170676129110109662682816963817602802648529197151211530483829613759802239173361284572551965031896326988544617321978968844105995467410550414324478317813812070159186904213264537363902367262285891978329795967235825491762409311609170517291652563586354328188512207371592304652792762993149054207128356104329267438039869629244377852883767014510496821522221875102612564780306270586709570601809026166665134966918105011352809179138372383250027584361045999792999486417782965402690186754765546545952127098678808749169253432478946400040335307111439985379152017379151529589287152582936146178337297685187737854767328339353857288887698452505163379531410865626464073224575101535772107739826286518582234326408589182691186075630011952302281379029675974096667756297845852961502889243427860306359718323523982323060340807893137363561327320380051787936271472329715442016345410076052339715691807082203007502118028169254527450069696465473068822891755864748310716273211477717285241187641221233661071766420489775085116362176545184677181930751862015739946017496655671329045326493631389055347087946928764969035100493107974418304774719408772760551292161990224914455874523968608853631169359251732935993439577061710422766361534762710144219470935122533503287590177245711298350349903063093608607318774742459241268611144414714209130181861547724279625674111632649882765279655133578807819124185867843471940494502351767814917185062736898625536094365938032994397740658723761310386261185152209875356182909425003376125292789833535296387292448643307092503580906906608658262645699003389616076043351844095690930543471166866819809152640882412555292002769700903977793994389088820720988991808371636956758878320321815511970685466586991153379691265346990242031171663795843535125995974213305011575271871375368109338174812718549850518706967277453803491858589699244952975383805629496160249592512132389388956084147144556529978817574313945379168050213351032550463133446261073294880175486828506118000742890661154930396358952037149854209720743977832328225332949784404924223480809324662329219780149526672615437070187490932965373389633870885985754005545295493081551190376271218787941050316818303021435693998955830672989929051053168889005950588798677901992979431023425755203984240203398883340662285521660380369991088542284490816874124654662965654331051398550261792389527643516844385568247250113020219683953628223642218746382079226181244211903505695366030225845950233178943842610454934549897600552321673511017137828446242294542764880956810840373755673474207470983545998155048834789428071941739757101826488358704701058091395414022367920593160253405250164412727704640260085888827182194700635231845801572597205844912369598685742539092261943180598463988450279075645590313661783890713616671086710052578642679128420459206585138239542101443723868310598771735486099727177876193101656607203142269254303446394253703524378319095137101899780214677274679206468213184637676584520325953664348900843703159407886529500472516418079516395141028539824036656557455705296355879176244843551379631572580958548923875132550358115824409628617802498825169230052982176959925232871347309251779672260252264089606417241167508162318156178803446000362819316633625969908174637927996537349535087955440666884609040945939015086243563771993014924537687008753165913886541243708650463249094771312037946900353443858306464234969532667601893101819736160381093585274557016570649636206353195643412617354182256150546942140172508846710832063658568997268035025530358080631354472254103253448114500253355532307750313197017950264579884231877697542264557004339791604737987496889294318161106703177706431280632853974713560331262970305762234680203081165817769069930641684793209657483396250966173296194026210070980519192126156733343303058566525239751620698531038405158970188564572579502158932233089806587218457025960175282505503930508988161021615969013843857273238183686867976839146808408465186513595069651963786514050178464924469083939374961347167228760424043832234851452854290733980639216579319531691831816385825193104343283177539256460235975167634247592654822824087612390793994173000966038532746671919042105011970130137077381480888473534648190739027099773062349777933882231770836973875209424252333402858339318995716112164213557145945077423589671696518891499292979037737357847575609383188436958518465188258268649513907863863390740670954118592514782165029052532128488578840449768494993843885053604001134232966835762047684598186512337033405494606807669675095094066151499124999653077537045599273861993478947337837356126135346858781093378032975337617182596174873828876432822329244680692064573355970302043331532840966259861541786045454871940615489177156362510551233092931434230489323843778992910992461214417721341592263084568644716388396496300582228709193291269392409414502369542774174328464791393250430133501031875131009138955086518532455961411279588015002409020918237782247239337669588751103739490540263392955971667727276436543836198075430791302547587354990457022444972116688554182458941810444487666930337249429194370531845960481170496600186936947744307945953528106228574939680380493119302689483229214393996751642580353281217476249859385282868525388162183323581897764412953242390670949578299247966938291845946159268910551505046199520777699626223033316637288829665890235681123075974396774398459015992736000520203171377796131386598635728014972194700178599554621496475886093045045191557121633247654623763583089711491602328989959543407964890453862696024344645086218888493703646376862911059568855108787966492771667855364766805186903903534785878537896747674266454030665972640461707534457013754059189237784711492480534519105811959536115941048475565793071370918169266625153070463690333443465601167116452714597896977640325769056591174298960054636324479684986484626603149864496157099243091429154596873217003762775751502902822725482723146726515792514731928390664576260579696353124410680765057507788327684164415914356871333519213450097038380187367299128237084377467170350776673636184697412699734289463135451139136859524643152914553056595650150874414826336914514358807414254091929890653677453249576101607750871338594385703036642151627829940613125124096284765991984181850435176993231797170301797217181998947810264437153184536824396464124383394754723895956683548549837512707333800174035634318866666743306018564588995271701981485164262319241868961685342128748089381017452507658995024644195237692295603997366815218085944897233254666881539213800134935770195248295229065727331139662627528013163712423616013841985079942498735461762322619043719484874159759870810787226633034607077954882217929850954692918025917716852027777802532092965771304906602426044667856713233907689283201294830265095760659012908078813119706869708503545668274717533731881513713841980980858974959725777752903109246421530521413019523261053302357470559362429127847866438918516440644409131475008655013669845977033497881351764363895586573105116188060284431062920774672645879681031387151402610070920480651138559211396607470095925876587966092090111995308714181336904093216823218208300255051409753115804777515439739699228546159732697606278120392246552752141991348278395416623395831239597619793112580055582337391439542844972162761844436242533880443677221574349217099375601555755232779966242727262165555894927230037240311767383770465339816274482394931377785870412208581174922360062579060061819316756292700413606213536237869006519851696553852447526237052600946379148209144601437262902344993285145709763112637039273307979585035891505378155734232072105481120021556603227998108535931127613849576698527889506707138389415480953444513737940869700355406215529221823800484403880476828878451725355859582160250997245556489791048370202832673500085890470535679876455072041165238822502104990280882736344532934305164328523114491628033865358805253260729607405817757575228537085667720221149040202294158117804695062030575544518203301054158617047479195800609638643662695033482889456602719731626468796722523366826601778937687208973526439638711591271490819611993164870783686228368358695869500192090055552069236777494557091000491529047584832870915001417613262155172607879480507627705541769324092574408032935149190600705632670377138707428451040195028084859027273087611973865262823008509767356079303155764342023202309177715182353502876341610401060536074481973381006699931184112922418673409334394507122729741656742484071844335976271482964813665024266942221271699899766983945396922281917292058995044192828480974379036408216210046133574897470641706168311393649169843905590173893028702219003503421082005365858826678520674951103158291967865908600553444979706205024543193976858365876903889746558727781190223725157521793852267063481816022697116404094596216814364685283019889109426915691913131780878614374074135507332588819250076546627398314532213505222736745615202987318478176351842447116854908097593377289443886691409801104996430649802070954399207078290831761772729938461518894372874353999768245512098271052055137281629675692468896448855868093724110747174213820622550797271574005841043012641175953245980095084100404893182389980618639045538635327991312432868561650221631980763332727281538663269968590343671560180173432259395485147489124727051537105649175939804007889466113232233171024004212442681552955283719849843566664604324361965235478372692250983012545333560726328274558393249304400838251646337393301987723248893101494701481868634661827910465171769390815007514988233624092100238627412163073182928669617541736142932077995110807353939250482319293156899404929143087130101202718284973502594361730984550750723588771604065992326167818832547575569559934186874074778227145431526498496478685625976406628767408587491756848697172084253108775072126390781324817005697441029902405874853771865942377197724684809837502385350424917627346180085266312073971044005458885008936227183795148531234164390914603692289152915748561935608164995690643599656821477148700470881852401073456647721694702720185033564659960022715808666513228557975513724207833385814657239618757075683663997814015351920966877832277709397864554688078143857010548823471884176861577137746796104620025879874834987252767155352092194060374127832089541131554727756344650085066520897341528530028312488599461121297439619724916070793649673428201858248857221205228279013407205256803185260551879644083183980240255545874179813751380167884454768783687138711797158170836684853963679178845312044142119404360267936377444101478265681515713939611817542275724103046757349537110767584218767469504147650538026528935886631465246827673330037287666522054749752564820103217251168658618495049711057375222402067559578347311133323857258992833048454493015353375551288208604370355469721006118318098074141379953582791606559495024981248362264185995030275560942042649737279393550132569471838075958847861043634290239355349323967109298591504820124311269889377310512386705915278275670630021819618326264032757940305108076957251723151022229998822570701859939694738738272709462936550696427103736820994753807165857361319783008961411958118440904084948047256981404507422108741612674707354796259003213281611678640441070208385563091757586274742779548306947849961492991997368940876068064061443120452662127297760183778514760455370543103133809534966328596548684567407031341175052646150723529363081557789503466069194006007129989400570117460596371582769301499102703517696846145894058054907686942734203563027311517834924786351077111382744908252256458371993109862297203449476001476592284811121401611715972813442430260168810831702834374079989609711444281137265313310476878744996159521285117166847674018979633605033291265015575188575363009711899171834897730979963891375716449934346742563952699548964367659571913118522894316801387401393290309515873933574663667941350601996650302409892597118507034685373988676130929907800970987919119255752255778534857907792451257715444269078715583896706178306978617442665586544942582152553265794013890157994075841842589248183057030378328589609229515305868074384880246629384701898384600705713966800358086750670202503510606348846226221828897135951890128145956618518792313209438346543453219359842455985157469871303714633926155965787241796137670349677639533786512268325094362804458179952394802668001195940663821155134870700340639847246676766046098103495423773471591169406543954726814505906200817768943765411323859421276881775280823263426714779543427728034331705828674420050199811784320964493759584920832209202263089329787052631125641463879013094051584693387627178707430855793805656607474775566999495900806835454789062974019151490123084908386896365664853509718242835286558313249237954238443766748971775505360530235032711485983933559414304622144030394639490416810800213183104971948109641262582004625876492455024840909890290849875934855033851353562435636449354475868516597180395576695822330102828195441129951460702522116169797336444647907338411274228871202789632675624072731583612342123184522001889417719564881002287112914142379402819516157373813468731860711666169771886684997763973333360728279578211805722651854212427709400519095117633240999006323948188755424399429667616434996020724028320880632563041061646107002544576438682690470483348397437262276190511368399310844928552377310451065526134098284452392740422337072199354831839190200831626136427839895979097770022157034356114080543082650896806213054950209375837970226236968281869067796707048013658098306740889826056471330495380532219496470403393673792904278355982478288453667369954155175189350460585394330433363753875933927408091042694858260035537990383648174370757261973766416801917215562527445449551025643361573416942064497677738510147935678421877249634718653596762846612746300157033719820753162313874727484471170847820283460456680507581446660207987363974153657700584422250294583437980386032055899708318907871748498532675266354330148873090887806515811545337534308710496699355024774632632784089381953996810828344617908988163272336460128725028442984409098711642264627841746186723978534021839590938359990479436567634726333367253492715732950244100166241378249188002479972636524192399490210491311886257450822950152878187359495192687087999172086722714942744293218645716954033454332928206263986531214459239489855540907218182329983269005057184930526869411392722334214861952330900379423608193321615946171724053290894983478024232604261326363275981545697066554351912948329721448163711115583966282918702156179705494187628968074971531152312624392096751185353291900482207522381177111395040709748709063496520924616088625845798615217682424578617839591737990937779612198991718147832021078926955041926707283918422862800210971634735393646785016323466143920117542539251539003168948496583949532522179124257177667302675445564406352409737135840865888681611377057497522548293931150246422984060591478561884149147858855315799891994093426048911727175813538000767874350606683516825310796750377377418581459829706128904007845072433640689278191291822143153145998926957962572683704892242321915603162589124676728118260114751335213846917634879351076595811100423243125577538331104165754125051429850807691771957718465855339691476248676484409842381793887379715945194935034283783721389523497109774962641951114826489134752955869035306314784692099096552574350794186751932525997826218171481146387535998744628290246402542044023401860889971437097064801820271095779641720735115629385998868218802624684448772964273238976433680222567813360475078960135812438241463337248497638632612505115151438354259017152678559484394968810074441484525499456313306610733961147283178068720868737596437761039342758031503569931701599679107574656547971053746371125722603368170759343806827249311938947886402818652720711895967297467525052321433205029846466301824227697689255554158218167604164388450044047825854452268481091753454334898547629125649184887597253414532264184773308483877885080715578848609091373268227750924415500980321556318375896459335433427043001797450422330818329537721686364982232144452913366731151444006638626813660272516044028603104010953683324478692097153724294192570093965059180273727791832773939180176960169051728343515727838288528360631985026964761878104010882310864810987698693062136021706032215004458885096154392840237627629219421487276858249215175890677126597952908900777164487650002698367690823610452952813094732755512676758073980153017338960443242032833929813812799136644954496675019714848600148472256293305565118932061963459150863520762887277929803920086114471446558059323667976548202353578641402507887532229371237813542667190392998406709863000036509971299770443026532972612928467725394446421751501627707196607006543542776718459087570753940948473613246059506937987584437613446078269754459423899328978963045570022350977356315247994650828893504010963773359338344266071877090660864691915951138436009698121047657994332767789303292767981760531491307397653995270073412928978548840205109057356132023556855711502181183882549953480358692236211971907966849464147839324293171596990016030936810404297323755920314959383158130654572882938403956374181664499619033984862014591364908401147522702592204302965347254795437280757502778199065039205662278878755183339460521946284130199785807612960719245287858720574751922881550594538350512955746920391365137843715139345783781899291929856844277456606105093992574684762011069810354306878891541278300165368927599018167232761569947364686937985297636471884306495589676088968917995040565164834104534687019721674219114965896538478149454785321281271583894694629204438966927137349945843752442562277366066995942541908180883544270699590209912753056358263102886015490382368873250840466953460215856561015566524122768226055730194593801463452765494256524276689499970473749845558691314300926273576742189816788993020347502587227151655378963233046506179892406717433290477103283181082443383129058530214351908892396051428150926932330990766603397241023074790764195216161942102257689542498476103277247320303578574611815491490498492027990503293434807138362265983461657425057672354434316697133966763622677326262961502632250783412054530824796656199348550712510445942729270090922689111156008756697202666186516644973636525276879563597478847129513440308006109225772951448892835767738676196982924336743261127750130750565620692505286082027797552182236962076795921167305549432017147981663496944534478783096928622624141842887797451771501764540673495321477684201008527399394795240175049737250822630133114539493767977088903454195127904154568713971341779008603134739216218796019486495002566572797772252835203590481352754920075470427238497657611342481304067992397710160451431045279864096523892945643732703949195490745001460107002297813122385446574716462175520096088298130387884394050684449464680601249208224921834586093019758682957211742544599113025517299971107775793006788031300010322925711354142072320371462290604504682834883753306303666722736136748539379799575100720058000118466669231818288553466878497802024063768775905586867596719782023819946916316299471273212040144914333762320829754704918466910732155351832474759516777887505423077616564872228894956394889584996207441182755121340107966192842199336502707962790519624939851583108315411752840868455755739312504737592562842289926024923040100828734635123848455905976726803061832129022465734483761456816723545705373045614895194552171956694312853718778261326770111422435930530892802851633537157447893388767504394912269294189839010582219916494275925890806573149445741456805090862050371093434537655090423608381909747183293223739546746143524572199890241764813275226092815095607379480132790739987517648855455333055561614892796782046830104557566411208070362934539854777323048723621022355797451831514488062084744480496902652906202846107447747034147838858635072342466793839697866557064706785246876961308639678404795726569363055686133647900075435389674850203114443901783522771507497311499262940425291950201914547916705596044734577563724821718984710820016654738964952285189552037308243624192303827002847134312251028971169071749238479675753557274841121475367599822317082835306939868556768743003757051514831802514302682977022561241667063779608874711434743802602837105524272796876473760460922825395356081211415412286115639812340286609927455712835573938172502021841601891818090039673641599535969863979889530509305615757433428718167511307294309813523330854286283063829547474342991062427850734346600332293955561594591700401530605554054445463317127933081445352763049741277714267005677392437092337725175508309576045716121121775515148363619886980488015819860104118537923279842969092921772168431540463669946209659514603185368378639599042577476603636223559736089589822935748836468886509214360092965645414781992222555268101702121621361927198410573797363326263515374300493286008847207091447636449802340961721490377382270071140945512886940544236652394351262740948759667859547350869523476719261333488246689258949947183721009400674181214510873846024033264722699566227088766671645309757504960961131128007748328537795493782970281991425000568139335717557206291136713783408823244179065086889260719351072549874384953783922554488113970121922102971879511770384898495945941596389654373721406717967168091572348489618449543451136234839278921948551609504667490868844865422260193034799488231709684452647062495196527701153993730578095744751967123628251622829223662029109891501467763047536671188608396004893513152091402561947400039194403766750093643239524345310551284749569072102748812931158903197051212445966224260932276129678877734025803261035323716966173397677992788197322764248497941216909712059426660417125476122809730699327072006390663699536745320993339549022551657324055383296549981246006730385647291669185446824495966641122030931414741102165097873553847146498378684915408042954345964949506781954450876203769935631230712383473514767642726036555948661707516494368337493156762128863321258995319260735349341984236831528142340160424560334275694218940551808373259244351983166231347804407538038803497210251537599919495776811834164894979473990722712671189836495152915545981942809417646658180845839707772009431363936350417696371989425991514219378610221072195249427853090955791644297881262560835371308443394584902903510080495399411510357759326312680987115517181175648927004307471406347817479439573291213411139941149234491830266462279771331674502563943911538102466512793885076015555114470846200643406301593055801998839419195170354946476178840193196585348402112248050211363074355968462051339185651741489120843435236652698894423778128447463748412723820460364952449652335423119683302957098147727498173128976141479724912836631573559380141760657241321904718568223113626528249763335261080767873526973718510743237912131741336148923019762414154047534762368742211837119092353334229756345967035946366612911119541583846096253332614140216360194391269124773890506419524281672353348393552279433484550990794855117838908401470939725244222086737248964917009596730478514373694828684355868826103729609923010091484792111469297536345694331458239023785810875286608606875272061543845826519785798341859835644301045777287214330547272249495296768848661988839383431749852684030944890764954694619445232719451225443345160958697461456170246938425593849773546234125071771819994393060906569212079579718556218545781547988248658797582198880181991441568974525913226622859364826307968610402636985397554440803339353218469269275127740959775795954409204960410081239941997833131267709471806765633232641850091234031969622142300863958939691261359825733737231797625012328005797930620208039979371850399345751934562306298956196192547122632299289561370891281861452420105580149191735057553621749348069887456157712549029175479550635310618400546942020162439483003417080287227643231753020935426064920417371712155797357726122964372761632631942005174812634815951229459526041590481106708610018845041463456399715851656150981770096125736369549116220106891438426333813324541833275187998990355680997513343886245952740766988353572108569635008912875679632989005862097315714778473247434743886310857676102147546836637012921750682987105559146293748514832163128499670011880977252017948133359026664197042701715816008347168996571387049691042830673154996578130071802052683733181088977375451798882956013606766285143901545917001285963233726889578704534054845192485025759973089937090905584385278766155642668804164989285363268169099089746429675266536778779494269616400471595560238486192101177980523837532418614314061571286921852143158232206318377588712736295492125055989768621738350981139710153109204695063516676898273312609688582968702183619839937971600433340587154194365053937164292947249593421175517380303901353719872098641599374547690728848114261656929311411354403311970515532296520701219150969999896231271902170975567134396589741658585434667159703695747761109801158087103537784556073463042120786329394280091454456339546779736856480807330654458349406705792246749923835943725843486095996905172805850826307768330547837045253981627060723425616276758351401158285583515370172276021322750238835055751106095430023858539370423497261059254376624934282617446096567284357944373024060931515415903849712243842922685220356757091352145103561678475036162603440843197860282878406819450976110621249371165015974599238818667781181003937923862333245499981719252861365193098504755144436923734218108373421617165323960285736555559095125362801498696921392665247827704161775572629679627076998107339945001016993733562521946289267145270814579007417363985114666056113998086382194815879073485090064095039205814372055954784758072406288031315221046117187557614632083708111405090031186111273407346570839086099477259846677486196932288738486580337941897202383545443564551740406065802535023057421917725928813627454074119318549422813112773468682229246863837751430568894226367122411105689422395018657778150848665904101715765854646010749401231526625800945065978180834597469328613438634523336178369272097001983916368748108251370231292047734741444420830644981284824791732429051668377908261042526377662155647219436555705012954304280104664939876564394860092622044799683940157530696666945918464980146780777579495508489760703142304409417464140985354390281322871085266308987806022195269046321721148077871538513763400557641474470893474760749664656142094051754700341697951180272710764351302681220784753262472423881658943484979688282939211599666332588024310987265070608640490635914692014445254854169609876262560809777598900332435917870461010545444103262247444123858270661869675509928672161847074638832618597249758489465367914052461268462366795588589622852682522178747466394228193759902983664744571568814336665335437014690642361351177286241412032793627615407911548445330131744189686870613730678381957151721238285721614259368865261427232619389228205371769954317769449162639270828313875529345556900540510269095544318742488389440824932443552286594744184193777252552437794254283162037220522259006917535343476594821602237386612522747020962572613085814042893326041937032986013252811211583907697266024023451247017645490898540162970185995129617061452454588401260952298558876261074246705448768647467846890323887735142826935613957852912575925346420279295027168995092352883292627525004861829847925646375036576079003656275344169008322826832131693961863189007037861363331652403508465131414980442610613518976346812370721776165361788215619176393185467732245317995849945160665971805511520811981631615521163999519889756295780098689058987685778795204918281591941482024063964287169049294403306873315870595528395387510448624812457649392686163599498198673087893322656105321004999362370587260170089158087356856253117240532062698370387900895942170092688614141962785010054959880857442261643791872970155077613842216840197352087064711126220473081399911028143487617968572966118691383661445106655503466316718602475415898544682756332473912144594845232663286438718602087124472497556148300450183271978953180104945604003488523643867453045641273300375262542291045068179349033531542423701093772665800860202261211289397994658899767685242602721428319900531046526105054243037133139444101916868166162524151530665688156203712025768255727867570168070228245583345238747494398723252223523243793714201908183701940533207456041535613511395611077577532162106628439687384485706805632562255404353718241336586999524597167135961458260190904498093265414820278635054558094565181497590579842616869345660725213810607230606054333383540191374713549588293389165606289344681941780187374755431946582828047407243674193502534674393705562663148428723163571417075387858107727990508011585032432705662023870497936179984405428743331917605476995997051327804373370130174018118831029781977670206286757542750195839901708904708252727926521052478859781010360039072835142632008134601926527439296064195469048213898764953825219014873291149461195302408663072294701615287398118471257979568631486275698014139244156360111826011966388971164848358471407496929727949826095819230175174156878513675648444929427278155998147978832804200441837584638700228415006437827399818563659658767961883830635426621478616759425622784296585085049154671120810555796116775649071706937772223626739934966919264782135974134104945367971189829258925421020079026143253841122596424922613768931808465923848765550405823009592028551052071991721962262234208758020572796041579844257891620044601453635308224427527477430205944015800054083250230654732980918289988089130554574069209030105492478770618009224695250145133412293001331337838395273563118883731472741058701094435133351829667514093020191806892031309553427948130303970085463182750807328279569584263717961044234550221740772996090877972362260763561790900151513662978210031339753461412118128308392675315387077052947372820925898535077086017385080647735606292770486841155755766587379540160156549290919006871217622438659376728105988543436374898039170985410642622611170283302389836113590554464005405793608387299930256594027348980280625012592227572039393276767811217501379507970306080008215844276977548808579471985590538031402010024904791959144150696585621314520784847668482244674605254024626809026821626938725860981484111066638625582418792697977201173390063615382900230368991738562095007441321444436400454208821188508205412593586263325610443112897534286542530922281559681476869622233199754888669381019823478712594879880970159569930832962598922442282574114699294114208694761464816311258726369425413236103560995847923754055133133949143359161070595552129469452244760623825064242248487236931925709749401003625775838803432010904613084395942603949546824566580274180624067949168981066549914123191659937106700602418754683298959141535974784423280027152270898715019494429214183064556719203587173412260873488600248243521101018676938927759910266707904397934179385142256950705470013945722291404167894083329069293476835563655345557776074623589327139498987417085179386466475225369565136104076997080380310831124412811238914677685626302164961267596128101239598458125314285104669669047166141768957604172413959381561303886946272194935349792571175674648197940465267882238388877770564993111801376726775072433027094787838543674011968725768845504909435633009594689575297818131155715296649097254896587497091327775063861726493809964683121634290385015041244214486609033753734594580208715510062664427422528759292283073072955660113862242044438623398036296557898239253654766007881280788297578991962070111293235287830650677178782881206902019846098724415047238705713147649650000080664824229386743022229166299932346128965321544201424296794522193975807508456268165962172612618912019273545726029980788350665066980068487264963867768535141901064514171365425961483212519927974390606602675008844361076238593683321366095296919539599429153422575720635802722084258674481108846200798788238482789622679339404814778326748489284037988620964257254848459208210683111217380385421016090392296993224292632274557686504711739218313829662880821513964264673158499964176660955097164113584194095350244628016032872760664397225676298040272819692683431060717239574788382800821824050570271451586579942633211966589696090108257901742111749768912151322115307705193320013461997886026880723131019902757787945040370881521301511951920356081082795562400736377117710686306941326046049455836154156446636452829645729604303446407863126708492127679479190142539174828384071914347551291681699422646454724974430764403616366050631196637448365256226278258769613123495882329524738315573873195265212274920570204169227565182357151680974122038312572745874469935970560708376285045134347973722217528508328418685728598196841083085460042662840073011288306193084925100124581575607664232389969878320578742785175087508185403622792909009724244391348425366781012060185051590499742871594895988947819385831476171210796391910309359955514426224672535086016832359894955870857834816518166527409893061168968442216056047617049630440825994390641690520709707155486670296783700876613643047618817147543576658071641783870624140001308843622739526304987787027754182202705937400381484628894666374413347632682735502742078194076096327078385615570403606794052316473225414677795491158624821972705230734133208896652573901210615165161437517798961064428567763420947781755892892692169013970349145063349523513942531192113389362073429633749084637426492527845092790054489711006716920953579015770066497960804166973782632076072275173956992134368017955485837503684710744814819879095582655281624987046719144686145778822790278151348627684832326526761621957296401365746106735915032628873196498200259656854130249583736227782043780311668519293667246652074388417741583047221417422311129765693232759618724060555042291407905081265619543496314679977740728509466238884920623693964018844940755386133413464601521134144077195660697578669929010592751714661047756500292625561039127547479302978490281204166911164897146401345389318970800141188076914617181060143942582980582044238202438230773460142769786185328374947945989467273919229022697497924161747050066109638160936947689831151977034885844143507776761298437562772389965858705467688106392389008607190759860055423936436661017270470506552449876587374521535167072269775790158121087168143839863763435858915103291812062672834414362774011071668507470475949730263331917585672131119215486074752348848176558524103753103940800881875433285438762561157128640512995323349234491688461685749993743393826217681847761986749617396862975934143671303132970044199532488910863550754833828285641605090861455191041285999757528792816390204703165514837393305801686763873856271980163756878019723013838947408968542814438858032695205060229611830348348511676824509405067570259688311215891494545471511833146297875024144308080889402253748373995666412357883670008928987198420281897802034322856162076852880899903304467554645759846439662194885878717186095761453424464714082156103581078791729286339443516162503534947677964022437777171053407618738875950309054525704407577624631848784884835707741759307996191235827783931186051494992163858732249043806665368000975842558206455390667853408112860799792119139577236043948791370377960101067457819557411024317765829544088012022926752428714655095929342467357387184631753240764912899710453035967033837142109698694812846677194727124168026095489236559329182464125649541660558659141483969362039555974461770948536164891466080061511716804208929799654797872236120032255424457473501698226396910265142983636544078888608450521858913273731661068933086790955919878318387131087955706958745560264007363347959669446003160671393220952976066358209364132975978688472142304999438481900397809607801956186755447307362016839844428737470881503587692513129018051469763800713280481430694504747019935149402738588899800058640758064179014502530048406870182614826720464934238163079311932343420475063434460108418443681410285233093290643833850577792277738499365598382825382066913248277318711441441017005274042498804047422050597233859979614812947287412176443002334554959224108387071587397078643009083815996995663128223913530101064180831755511141464583671727652873577447948404474125986158181724702540373482292303270082383207114227971908808923094892309584116320152332783617793682392665402403351612847197047530407991278323013597200858946204689965547032678424304545815613175726053354189161228529058681432830404264819831098959629955848584689436482388134227219711791119132500987296357313943553054573151751279400993116823403516702833103903977309403923396878415435158267639393568386865272474857952241521798281985966999439102188505914769788670090697484432351944089364692090175060196822850982429378905483540330994373145282068138301990239375711228721868462147399465682854325824734866250098646511182349051867953690585979977210607498289496939599965114857277737817041620574583377533436050833193656468547062228336015431850477798100242433232586462265973330778297509129260013627467421623532263466372006652919296698486721356533194488025616121077955496175450332730216844013492894888879976220685864186242455868667956430650113180041564600303876968736806699670513047491898864613823385539203847250574912789265896456117447107542712222273855263514920588697647147654910976509310346563121622584593851543273156975502625457651573597590606412445049352457383935174881669820851136519392630114187919057583070766372397169117635011022829393699809872560534228166441570342121246423897848544629739210940244409473164640093393759724825223364098087816512531799729747019560138234239412567085558846130458496988140957188111911236277170816735989273670485027348670089889932788039883634084341297483206810363163015671202169232709465335526586761316316913399236026291857683049760937079198280387188273754237620266227199250360454009442140415894773306273920508018845547468165719478823625272163873162323306473495736512003485649324315062071236844105987399925221384827718303104330808468631259247510614935818895748443401938189466512746494906281750894810554126756108843708385023311021302529145606461896223796025966658004300966162576609820135385857898303654533485910015216358663669543339441801616921426771938815332003387904874940493721154946971309881182814499668671618020279618513508082125405237028108124897940220605282186053722311970535145545823136701238645975703733456038885277825614994524165995070068501028196798133044524580301453509771443228381565960898563566880028124166027989733228026164128609876665001109223089484831026983017668144704006428051409909866454883391899770892469854249765451103492523814399295100341634207991478409881000562830885218763464040302763553692928174332074866179381327024055979690105152801826299155755331809967421167636560085130542935139222794041384272188901344353967270236501719754218794032361165098776557951066923673859957875952405473587511665299899386400570381032076741922187192611605202410749140777820525263390395288484123183570005446674441041520523486287419416171457091726182038512038508216913873761956256522497449959386056838372576083718674293429145119057362617980518474909515875992854392653135804614229355754016534235217423431121128307926791051864146006669272559764143934852419292053261452953640904402480690872866298012262605503376630403514175879102767442025813537458564393997396017383488099980524047266026581461331546307511864361107285636709253709220153377288639885583058089966823155473502055610402519536367124243033530419143611089898699025452548861023896362978956576323364787058305181641788640047746326819348175437359383444186549501526717194792622422816212272734478451523882604732656601789963189182136364613552063688107495115882552104369093168228016237631985563232840593813683995175719826063439204801396691418040012923222092903055575576976896657895457478475507197168561839087562485913148920664350319964279405004465267779651650703678556180016979855420860063684182921440724380250252728631980133338038294358408903352300091976490985858786024483475715789876890231094148198993458793956689304564309070573644986900814026305193478660975567378324381053601374811510606752441130858157369093386105509807174586601477772410821091975125559087883819920432522029232352900621467086619630450893503592955759952770027223592057525653383677355099826468512820677009978230448976472650213859741252740109349145313072087952614974611115585412914711471060957957115656166089042564070478730666917679281018531544023942073492292828280203450980918624680984829483947200407687198048187695957264426050918695705844793950109882041217279700435091384467226162620773993165721314804765218650034807782212214493721343262507729406663599049025217957380585415796313657605719201478206043269146704908730386135464169248668474377618112448199845772587004146375159003737588456892428837047352190298126675630214268189197636291257735306965463780503350238996631734468026253190204442255768196152616419698325540891035293972250456583108277213916268247792447161233978090502721128308654395476829032603026097086791328989686908951130608509102077295105312559890512391660388561600341370768947627682617826831554298759776006206336721724693948843509014607508676425236246724921016263077586632633390238526469938966423687028221260132952145859970366031029827996985371777301496684747884360028898970119899218603152139602894774082102285192979407185869650848369745015785525373765191107487969674705697241863684294855458557560522865327453278291645434006387237992809442579244633719662611598489024324680707906986000467991762084201286477098865366525506036265066318238058303267844918019697605415847033128290019209331761547741929264945570735695697428320327724007258397323340385634455158722482697137961417595378844908036266360760715312351796593302493290536884120115607058194805900656101247643652462568671825718865959310634742963990180011264539857769395008877373257522175880653403153202014616145516160795814326310684046624359755400010405570396600924908454080948415718878819736877347088126674931529915101641204201194449934172510840288825879998122767819213487976869360894977259350983732031232269651310713364076316756666558508712912190794793422110689800872445150381661672154840090373995370695665371234632628529881814642580523561671708667854126463360463524807055110085297908537356171189588985492322551480162474261547099484427378482621404938929664883291020509664245490047398320734437220691176070839339279990973848615767876066997186911325306974371209896680002657840732837993607376750216856194987117120168282724658017742790471605925675883557174922663397440591083396801312803582872665534307398726518437574338975908841335301663196546428695708697562432168767057980418454675925943165965090539032482264324576609097867840788711609582182173029581065477189575442367709078431118982969417690038591008624231820376919903049955997184065938810523094451894610310735805963383216495475899218106933616193569239769339416167326795348813174790980197691636941480161408724335709145695103223641539670812887380097201518007799673105123004104286469878399298389915616298156996617318302933920347423223717615310710511712311990089528923527014937631961574768210102996818862522379117347455978857774686020093741529791453466805033777906935090034326900662567457517809528954414161839235425919319175752150432691591918242549168800075611297338154452211393473624594503183526570292065621558935268831879198656799312629929733225594155047000809656193582263010868228318817814954369587653224801898438749305640616962742142136404145023922842608616774539494895404760891126541560997624985017089160809393282480254578701244074272743302328767836473771625315946877522625240507861679431395175736950478263691147713948726928217042239342688709590212036479442581891240506081629018059172374001693025609785129265742632253541076386672667989651768270295586781647698274936677704626036852673370781072233126360258601282057723348035321544639309235392903416219338595759479707501578662426194612832178266063620973253623721028033608292404455837834377501001366953057801596185027501849591709471374043662118444032604355233457167065622669277998438447558842225762048621803281542601753939976191750375421948653812270869389882696291409623540831392197035079874550523477421344595504023529653249929256662798098768175348495694984547336782153272505070344513974934255974868093215742591596224922871973678943311663150788696631389425118392428438088255887986542269720037872237806731900578751775818998785184985564482152964708560940632743912911445166013860015192207471563001340835560256737814739060860595029593253411778320703067538059434563159071306125837804179547206477711385264469220522306686541257045630030600357876955956675934121630719650623605785288554636243568351992785356708046929365504643288659534591340839177198759859936195831460393953951449246861174149615703660113555015101640541982570246248094740149821754839956742840046526590585029193207259581716169769143646720555829465648488247350077108017240802759810568090574136501348893158704724826681217221336183391072343553265292821725417443480888371142191417221047070159709632850565696486910696079692909447294910275474766374731019682235568825690467353923170510042767367855636775316031674076570596394881464031241353700295681976812165244078177535599527555113690049511268629699696196716834796473281869579382899622771187278464237875618260833657204874620055435866044895987333192921695156628129291853954002518257571270659041217389914183600260257098284703253060290548136807739553356533191577490634034450524146798735826503015662572233022063795654818612486486874265471278319481547811091567477146878793913922080033618354233124024326036153247796747769914338645369168336310195616784145044979973179595906931935491316273529424693423381474528938193808401107731131497376373059055543601614955113702149049051848323176304728863422974750304967561049565207271616182210800527542969401154028887891482279645740094055810934589468246412960318809153895426337444379188253794201242802869250511198019689222302993730733048959783734935875743067211446434220110763914707237596182330078704050703185563212966477850969899249474487164131121269320127039590554279337223248133327092896208120041355689834959859584176868069342607507959541510186627214103876183339005582964221866409543076247356849420043755091024852445909729715780167888829507020793219376767664965508059085516404037561538397422972606846645490591940696022403915745488559129057420692157603349783939179251043807949411203955495644220222878188673151257721266982505514227367779144063471093752432913136634090957702052095813737365128942724861266107683420126244543011277599237152212599058829144059516389794472731422521479704468451712717359402320060494867087612686843421270023040972971153098654915365116351416818656771341503700784508272572423099470199960709160541628362617472139036614785093295212539631402766523766700445601707100632117357849326265490534653112047730872257288754888105035137961817312811908704241755325812518334416748022769645782111205099265124553998958844753281844116300940209325730226003102923560116215837780181555421177335394380449691279733588872091373142289629023349075461871596379179912107108877637146471893127978095645993377164338067480523152636264418792436870329333286811375791232250278902017506856288453152683372195710265247499816654105780685102513887366951760573263875446056463578325166035113666143507196617054736657371489962729817267280082458527355960048150606842197305981478872571336666210286517104690557693888521702478698872527570219943814893033338007819674506443126856670878533032523102580599898690928524229448880386217465350417067677169403129157207198263244651102502166196331167295179058350637677600882983986680379346141123228664559028880384659902349133132809929918278092544363225856629909385059042149989612210441095901629670075729248901211278919688903242659998669184475295035865251308672374975776948352891283430806137625976135374746795043870591480235891392656534169739061883074973505352605046911521901031985182099779735972777705084321882228546943936943381027254548575530315084147941740175258675561990797258617517919224208611305288328603189351826068569618738562918250114032895669327658358228978658123261994680294987309207795887431255012087447509080233788388869500313093991985775057114685252002596739240681821809110996728570621946715071899451532754001938956674612386226153663317208049503495123527996286214823263875482244012684808661129423492231594264350941937097511617343493994386056277939824426615749248294508153769494868542998638330377770718604924379639153799238372200773717847740366474937627731632103068549663920972064315427410127209174332472496060330402945398749887818293259327740298706344816760197084919214647087669154220998892062255543483697436199513789997121966713385183382291178930373450721801348920282538035583559000479549076843950698371069127813457427243921513918338984461575483142700397574114052221554920843293727357562084255489726177532847236639910750421860876285845850826272028629093705589460762749694989235240062192729370545836115102593213204179103853471589783621044668764332616055999015775198878752316719568177056934869051149612846370659684737078569562394190558992971972375612174537367210403904746567122555013504022009000435448541634867128254820996667749338025571677912062479223035967660568618583334391687123285962607198308906602315310243483611409812672351569942988861045742245231665984437852559790600308091766991959867737242971498129540844459373219618948002184197160177739767151484799648730420648962964177558798705363031912545488631515891900312199027241053682010009796074110880160578288901885632995259031680582086006696090463347526717812597331050762026182147904220241771909104078142473333219613705339703459211095217904286560638047635484513669845697934367523152428217084244486715126787068627631499749174470359116232220616259868466009270547617404968961564979408352133595425238302386760182358321820909769114235823042215541238427447409134211029113931699903427571561611160725177733437297996199151298925716190369176582882904640994738420328578222583047993403244003543339283756074766072318505792808913723228145106916640561823085673975078571779208398503224408216825621263270820129287004069354920760792840720378170463227790113138759521917257248005916034638047333996027670116022696182762310225946341730888526103029159291198923641213930937157128570536565871799428359046933155338417386214410384726509717995405722186239513478859352849919312312899525705882702066758742395267628412615582602198701094385621126482658359143990547849044813282797958005435994833793870331440957292538131601555088548996908611518183242673001796522697885862715616637586035584076225112265553803577876033749747961023372075502937608640984127783704207615506744137764295842954995953541658075454680991958781505695673883613473222940606749684920558311428222834002480009461309702791408681160205341882531650015948399996621478960904445518472254924073375389547031004641751448639808236902987997533204549126771629234170058225514684353102020339002644161491986204818331559443126864271161861796195640569489728763945716300200262264755442316075070353477155538809580981042701197753471732781545584060365775806582188984507141971440062201969960240574586120791395371914538973392761639068675910059454719230160868571252351504422652081012735448552216740383294804399511518082302516863560084440750738296752650251520434648678982563613788206205357161986346794812700958144046505064265845035631803503967632364163168599861902809587982433025774173275507958057722759220671174831516324989223194410188737061871540717326076405292607554253991138293994809282499234233828385795491638782813662841733650380958554975882445665931272921530049368050898874907076384432267989478178341532632010191204225564965734804022160327348958283449675258681738783095924794600216900383851928655651154902363391371657415790709786212029149271783108993326240876664532592638555170573059555023009682187492257868441381833030501978063589380852845469881493088457284767772216003597252970385914425384249904637144406469844815759570581894489801126978940636550582126435165841064647129063793298761817990739264911040849323273194485984931049745094367352599169755322859717364365478363748246784441195957382458086086985942388568118503420588358680427347370490577821060068875916817769389306294542841262692304853160987877307376889647953316776992268198106865218639344299334305634672887451809617759406422482792190742226564865962114930499856211678794629174965846058648091603855065088354265346359448613693613459971936160616195667474817595542930181697592257061136733432719612222445433066080401282868809164375587620022101583904039251362367747073631339092938472782638107553210949099760540958565751283113357814329765986667197493204339737752457890313949071512662054271350665347381948348573927196360783172992479101218648281013225859787226871879372286366935196364481676727656412374152097439558023584454979010365883414200402738396502847750285119452355067118021656195454951062665267986414387637018385068496700844872447421343352642854986245137576047914764988513994024562231179821977364674619642128897488296890744830097856734845698669243637812014689104834204618170196797722573615137837852253407230582743220492994166624589206721520741686920367545672121353683575585961557883611364260912371031451454372167353392667332062414626100187926405608197377572374019502355512838687963167715553457963154239209565397013835319112994155285830602516506059733092797823505466717913070448435442596495384062283908462616532598203428300042338395119220952162694747645217207894369711475284671872415277432544008382027150887840957144210742866400146033004903988315165587304642721441114815986559003632307954585437439802392527829894815083635031827594715502972426012128001873446183341394089974763539611960564753904701349065317022868758689320618133873669063623045520511208533733229988818898920566651178044424064178427261509920737310655302354079488592136347955925007277605882399990110383426161951386149587033813463453014818054729907638086971041089460669839797396997429259152759969339566810337856511536592859127997103860247075930941276685646230123005550868233612215129086752260271745648628607570088061600948783932461899244514048136328170220804177399482864039651406956921777545372855606421086568973824344053081080618891863432258933059449798224938150123613790378384535781424524727204927014511179637111403895441267355288902091536368434433206366411061934123001246815820670577051155582197849709901740466510549878812479173498112401504551969339371541005579140401572457197371520683055235105664421744665685686617364179923618014907769010606198808137391648505555200078882869959325441036147035430113046902287638635205005226255791723801521190987550725579997937117979060335911099056161356513133615727205914393164937897732707747904118494493959207899253625918572032880447119781740973324650896830313399185947877837570022637146480675161252874578206840880896991837336466395307409149830377213355193796951928084547870264915060077090834529689722651171269573292321596639070051337899803736526213506449466294090638942717254488500462376845693409203952219362483620920616621891987459375477399839431163302219370996603780907369114838441147861260447893960594634792680139208566844378683178358810872676961628968125505652502156488263212119732388054600372204623056160630110255786451398599818025606987162735241403538552160513404382095051756039783446547463976685397458727772254453469751860343386851138204432004439572677309181521786247979167610792213129036633750686068731675058529615417899635605503623531287983980853319173521372065659034796882335502555823242212724870494824338100345510329844318727224526216951928623575937600990230632948605287233499109856965321408112623352961670078891393357827354326192944816360085317253867531711427828526946051806534207414481418188774717553305485882352152730439018923411052335566626828594003477054862881405507907536863544196406241973509093804725955946422258500781987586843233595793947044725390808043235229283356771020993576345545588894317774667826893165291182617651015223884180342436541602608247438401498631227744113748455307247766347910207804343634861621902986492075558723701581071900594230728687982009287871313826675468870702925985126436801891626519357888503002205632471376846525309009064237880174017220713899602559568146912522750224522789586565523079161110162453012662103992190716093285677681039546619666708624651356746787603989149506890511506670463377970666410575821484356192270031132459191515992572957097345330256330791501176012669436116944372330085142975520700808295943626607265408976827103050088825048735936531535369184048588937257993939930696156657141487580597655207660657306312884162002053297641612565573614515207747742658801385765059717814492397855065272243957782694622073571367558041483000463477582815719321833820193385059232344534583805627216634492287395735765169124695588536965339615297726473075330909408397930802191447503871251229933494997213191876699598317713704292943946311651912191595651712121443560427196071708833228498241028498828920338686490253504892855953966388445672317021824055110489893267170746208790406885297560047538458956038778414181922677659527428116300677617248841423246583314324288248109709222590618335487955166532334932443894973677893178066866445841572310637414863089299083651627651148113412742322890435628009711214175236375703354868499288646922562343231998755474683294804290738619334249964757929963197121808581977389388907291128865030307457868757239557043948378379369595781227141172484589462773880716963393243785345369316603790215992433263701536387698180845991142862908080615200471910840669815189532877857586131775713861021522998452473425946219177369855054977856281811791182495849290789112058847636549002657663982312274557439630182952033546456352970428996532822689827045819714949842373860429487202417558969408719446946328451847656134383099323567554886372876621963333832165140502011828646941705571771080228803974776486500656363488407348386692104149277601539913422335603044874584156782743854630265213811223622886538756117381307319951510095852394765005820223428766796845019066330448277570925396296870013464317326298260679300998262347386283107430980274326526900750454742967105313938264890807381553568354037966746723998033402777572231140045032167974247245515172492575354333227087362601673651346703008274999010426880211450485619511146037315011898767790540978907645615232015813515785138709113947827517482931633155916798033540383516683388016138367163811777956990204103197121163256809075903544720933507768508195874277860295915057929211963840496333474182179476644940749239121574468049522845050994483206982799084277159441203054006554991060398498618506668767300326332529966246745226871286275119259518656914325244554765652605774390384411068922987440558456215323366864521526837580113719867245085946031721509940904082523130085638814210852627909008173565257950253233006773862045435808402195449436793247891327650271591034935791674339826409427895021329684301979730291408983273412518475255500242224567818148607385903609306559248873559862782043689786665570680436365590703451265468498775104149613448600299744128676561035457309080966720055260881977054386776180154834673528930171227953070196819670772914714500286656347470586574711519438791889226021730781667662815819665587540529320257414307250569976138943487162221275391827353442710322346352050669336589240590742239320949719251433159134580504421576276455336528189743446726694421779286886974165943411563284670126313917992498002296438753126818928190640768208475560751419153842450112058475906167856046190003893101974948818992000811676175667474230397194278184858961780414319916418265143846542812699982752352865157029224253767651281478391220544089413318731882854962165216592815335138205857225875177783451314266760935537747143818925016979063215297313712898644565698817624669265940053375244840607836312344713249310465873301803179472038039190855363612060185446007795104445225157207439350308997322213720082291720055115773919383274843117075277340342906904815882396384354439903058026514233786216965155339554383048190224508953644788470814460547117139031692512693803887481430841686479383827643449631838492079040204026842068199617474611525679104647351730171923727747416535571048220225810127426642742191720898922622017147664643451660212824411898186351684992762583876132380254159595673752255922686303070790137785331556304386705183598491667104024605127936371618760985146937158806152695294021464226566652157892001586744337789794651675257283520418272456386356469591317508828609132926627584373389650345082235599598921743811254202686675538762289419722972865185605014945920067002178029612145271733161124661829110021784634482280537313352752967037377870832503479759551822253877952807375905917406809214503651509500705601914959510370086466602175349275962011804707220185855608106373596167976308847918927095828332552406207661820229000391491514811768871923250025291617071504921129642567370508084908831518186797597216067067269243973145325149222938581295854581692240216230347142140626612569776914421314819998278354230109385724610339841344310592715664710978593681564862728062183595812683259764230990909146640602183466268205285063378359269357038780100632389600652108499055719087259238400956891978659965874134014071065105991323225269598509301444813160880227030466846611439919076862543527436447025111298566316225571204566665770151313551020020417522010874392364801377237223172324161807193624076703117415455900322117280003084046727160939344295887699779886296083599989336493247526008524729860134896004623195778651508437797766467502842642807794405326817941760360542305398601973307381536435592099022623701391164593782440935034078963693527636567860857881492200095590066399256662000194946974279966484077237619734754004927204477996569377302381069244612107024545356039240865696100291012132927851688113949303870054194140328659978837460493520478624787739032420876991574543556428010614887299582140435433868102363266058229311368339074940733299547943935795864327278989552020856481919002599118969755921092609962032294335539846152287350735155536235933056637828114706304643187262457843135302966530057633377349213317967004382081323380246725470455662498165500687151226492786510876797209326632871772770407252162375098346656717773310293078553236379133081144126904492816717860522538001087819814957141406269580323214954484288083207727519514508978788282434981630630750176469998387219608089302871500046313364043549515845724314275719173925623461153681408493317781998649357633721184215766938960759508839015224715879308411330987033475956941916082029387066798784747987586962273951023663704070957497399859949553099872462918259672335844063320822006670267032901732072580684383751288232879068996717500112641713894670267462177070839489172063727227318085035506822149024612145813469365020540878736628750541559632036828351744145276547253565377985437884979657801381247111163767738964407713066925302228347305931433727302261058837278433015030295149488423786316651931616788147793617279658499281368999607517232069467889138896678804267604967886600879924938444395641260793996752559140753193015695608436602053814414833867005723674424553888293331586238273720590744755555783605480218134998738636162011926628974139287558919120244897011937778376371228016625206667496982446142930032689678063699525910714966458106132715407677089768666434316103001423007117354940205789761441917539037795912923651858442551585371793835012273124513470486547339033879486812356684698654712923829565109121731025452104120378489927783599055507742225627145987009294822658280987905446974344134634137325336224274420430578374507565067040844859591650470454451944848888920394332158296864694908719115287125061411036710143623620046069967410288479676959769765553233829240441452417747687291891272947267438215643245469596384524600811337580759155622134352940681811853924668743980736385887473905041102676258242759851465535000948776484475986197502093919843065949739175003100203733154198337805295025402464291624223348272538073754655271571084688360492431864302776444844230490083893015329034952330024476559468457686281353676453165930088519666719304642090054677299689115569128255753009964718484201834751703026650819372285808149157333351105644325701524096676925957542368614227524269259388278731125450869774438199138338054037101160502691204567800705417782938191817809640474022545058440919208240794577160135745196620565349273434790560697732246241667561866759258760213309031513904223608234198218523795975122166128540004433663441083310601496842287110858386653781428764649068131385533133348932431432247513186104544510251711478119923163612397961607397172918137333751547839523976158478833681870693249115484200368301193383603361679637346238150271746371417024844168587629846671325469296025925169962057713499429365335336848808932354870250533791112199111669629592063974698498207808427616898956896528979154821626882752993352826310165814622898197559586422835361025950042516965099806073619830612093553643997724438785877305225568387365147510393942046834525710177129143598611011368262037462457880940266232759201151015237675385374902502950712270362889965172947018181411435573319213213379298572786631487507712585108388536071031090761560222585078079967019291770645059681981541961575681443942024587684469092698595354928767254919840194215862319826912150718484116292436594944747525644711731778736765583332204551813893737396327150489124708224083196090564112690381889769979913005449958546371044563774634857145762917181039333305598324461658950304550813000881041830097998518815782892803635803952293392507910806048584013489436520129133630494930507732817543725543647193250400688967392583440695979391384877731592788655067049405491229441015122622445200869185479014970471768279246244879489530751538650734780934488772662146177263694921324705688272765871873242552668655870338411496553208133797439665187560639542406071400973500858320700656437678752967272775652849771784233841224024004156622706477406442185830926442383013494355937783953138476394012447659427432481333612466314752246710771932134449912501051941045015378002375852250424357731828584826269132208792962397321553912513124824969449652751127833358083301690222110804011517037406991434235111244487641960054450894953590523609947958861988765846108123808919393128187097510262201832739385600584560672946320040552041041540246698846166894380267974077641407572502083673076388725155835677546469231245163188283087781713476891058182056978678466057379497013582853714939366728130919254089159277070571556332873547955796408805222477281880742997714051112348348537640084931412294848596634521816847883643140773189257453537590964485120930885509338083496549681926433128529816130294198070239703635007603160857726780329703679930655943962234227243350739569697651501919216053291179886254247533118887930463633701617841254299850319114106486826237060902595024170758102910870243709516217718790619681051233086292689910635053452233902700334877101993921613031057151650749471603114905175524627554920431101070219594441400974091210342325260722109777634249311266644807915245096855594080490304350358508534632709579202107244060289885027741316941865278390418816074934091625472378729480191839994668052846274597259940068058858015046392008094868693775078279420520159411590570573105436625311035647932311437484847594707429195878063119862307643670601873347790138268345045637650394296925030047281669185145349499767670600154119324406105837882407752963121760653556407962635863760683836227912834849621876978069047577674489798808582011366993966166323443223946155922158315554428030568471045552701624549840365635871498412666135608461756146025514239803621684722410603631526504203833503199644983423144866982259141161727746615461289915850324869249956199630041490431287935447817897864114097658033128292667179482695755771401985374731728198163106354999616438029599965106481592946352022372799224724519855950113050787411470431350777514840234663195381238538117514300109349959964531179534853270615317618486651374020576138420078272399077166684144862706167559460994416500796355733594677074709705135207827417042081860670988470232250782224691171468825829334923207134060603702384120291786015339540178534524775930390796396617797935643154339151413624026428054132542832191487565818922768967980243417277803315298412930138991251205759301236724023077081116875126581808381039034591868635310791570543429867336205859862727124025907963039701851772422044384744461327811136475801386746363022620889264348677970599166911111472931464460151309946272031671213341623296284670294743918318603895018484563718244568197265529165430735645544780966226434981497437053630879926165221712308384974069047026868312212511199315063746112724118506434010029904760964351832679860340558094624344122989010048110171597285881397135144183425033932442369396596581899683609229641305621139579163374525582134802276208746396296636033557050361107951874352342503011297785410158792672804873202459747274455677082209064403666087500199145702735334151232121895870633028719996001188857958614522962370628130556121416981032429805310581418748312421911256998397768973346875144216616007853231137361454260610265078943252092731501948377507506465438922782452772623804045161991611259106313312604113071995823261309053796106228618041693837212946311298361358601026406680138771319831207209454636829253321108130659204021165191988646375841009968585703154388619323052490989778148808016882709531663644597390222293966853257240971799157117314757790509131598560717178502909138288869506903030338468516983482141333881546815177195088595030557647191336618778797691188970785804511827613314892504794115440962577718740273956920253209019464449863240534000063028857204310201419237692713146987917330251586087920282170321826294480679635253135695967205938493237096817202585274876014697841377396749630477102494147090735134902533078075779783251133160741979107652830648233949622568263747678257549653080120319031690884818416342090539239895523078046658749528079841547278770480417330627036250528872264957786604242872407573367000692937088869766724770465389342712605481216222844156370648721249907662971317431663106814501255140594263477828470995270370474883261835134160372598299537295787864168459923922228746167380125062089280141230435135647833890869044567137969571755520498853334657788869857269488660718937458797112542392430830357709928144604062374840284252562149525054553161686631473675526352080698323358873062054603749957676064811450843321952270643542365663293880950692301956308894111906224649192960551543940669037011622764050207858533080859660733313557858577845458900667180782278778998281563007517382199580751055674742894126126869450960398361082124416823545022223679920886540783766899879580975626649501438596357472008729699511831346250066079094828488301746200214304806309941932861081858303087947678359744662070311984600592854779292519183549204117421267562363993120201309046944669955419475452933823973109566159865479761113379904003055008430895070745399318501480492000145222927481403519305724215159087335341270687277843279211739329740630171888497664571955157816249268273147857308352483181492889857015334993322457494134002080375592275976054460062656410162767974476447024328017964579999332480947107209862572121288029984495165824827272822605580886483610913259585422499676050274397920107152631896822108187853923731839875569305204868442346177333501674159656952939129965847779725001253456444843953947083716736966350522333405004521254497239208076185712830604617388998304403772419142348468844590023421175792863286371632972558935175203153460974039110049473421976039814474190750667904712931829585304140099683634184896685850543656439657210580384840208618432669455062363325959471142144931710699930930970097112767081238418134444444084461174417851454981545779786779913967367205352519793103841017869887203429339644738400338593111204333773724664939622892664960786419302996680172852178861615929958421081458024595345341871482062151306269111732528850981590237278920641447318347837688413556618534209208650233718865903143039749862286447964104763414801954182075895111215808500253009565647704505946263633664810807180274448150532978175624716422603645099095714467970502730108613153125315254901824985699130621721834104246440323150793087314962938416869136778188924457578799230521549380617866062887750532737764464282616542522479870914378958638497442261014508565793609745865501328926719647711857854239933915999935102501184580187159408360572358793883040971813809102246111441381583870781819211838533287356017713373738727833878962168952890914882877318838976230969866800212686012697367552014454034927579123570271618014035599236033054402226284047488144088019007576715860326424241860908962394566983948575015147464730823194471661135379798922465942495004709325467493712123206243916849753955150559252650965950620200269632741085893755417732671832785857520503297008061605706764057339603379736219950170032473990977935079931435706648346987241844228483042383538680622473605353986147097524942329878568189004046567149879553496497761159600347658626619010875471217171427940746973765379122983271570050475769376969612243543161085498018853122736698936945514135609972468539105163805180909115908098897765916714569596079057415596087785965697853786225198240348505372467004596950444305360990916404320411725083243601153295874319155410664596098234267262074128098314477227453891199826747812126926723674075672544323513526407007372889195667312350155399756957597466803200399852276923390054985873723973495747510680268032044429267921614935858278970779136202874718754835961179215511785940943290028549108788964008067261387927073164997239604535406529594778493105280624419824847881066909882505783310732136991726918091566575263045974751861286708142197836178523657156799287335046753414598222260099270944123130274805549272780112149943869857823914884727930681549233084751938555910961756133559983256607036054349992417089008060635667918724524253699249670033554551813468509229851359887303871178671958139269051884256465490008813624079856992086648380704287150057040195729807217131014114236668125622552818581460293367376336884884917576879560077873235498210791043517178427276173733102110194831578661812075413753386333587622867521164643896948470685511929595530491702041877916398552023434281386559800630497804748367103516903387502911319507141302711878356555309727880804211867178434600619671259611471425233395638632492961606557713346083354035180655664522354084121337894906872728897458466592395974930280605805027327317862574796551705243076377401150657193301328602650932972733656775357688673719947526748113510769626783235335866667616430507149125085720007184173597753285930766848794474169613777676919014575569444254098135052892170763189154394247983298766071111809325047681168482759854253164458777076504611562828102235877938146913585009149280761789740826960645917859658093838184341435460031044253563231960553099810677307036055253276661499705188550827756628523379067618546807578724611343030760861118999426648856469283838334869849256711501276902017299329060944567758712517258748575461493711356498236457018099363357904031059282441397726108173176510220953777119630920500199254762643932596592240437913652784766026906881368112635080898995343853346315736868651075475111781402668146468791834492507971975295502816828004199099843888016410688111643451365014703845722632240623316741238819116854481993597312448162641505468013530012654028671255592959908654613152755722859260432000660282064660213204142791651709526787850633788533925384965773297707478026478166681759612763285638627763031376742636097111960360513327505043320707281760886823208874525363078001238711193030950018108869376059462023326964577717168233655715410934466867262533201359528005575313710483701641864447138953612875800026641909490778616390496880717229875549512880617272281047273398581571126411485612340437203235694763191435969741379343379909192506309749967826224815828976556392237401439454863596681374985444657441402772360938919580366641444677605988179185281463542107058128360569474364692422994906189316786154024026238588468875340658836597040548491721263558274885845628346199851412049884095053885022225201358408440913437184739416033271586219165083134001229201402639429766931454426949974946094510984261882901404273956592617398623114813387731718555291210518660121395441889977335461046538068520918595160192285102065621553620315310105694866250367771167517473747099191584474078106739904679116902079515517325921223388097591568082605811540338142971977287796571706583555623564536464983098184354919252227736807545275474007925286862081697537477838359697594498276437573611233492675513024384143363889892341927555074281920176372434756043578607058560262380166645803385820647857022722925599573374436638248778954329958089487883885523180152004158354055063503245981973961217067327423695582439520229393009456651502574788343157736147570566023567709884094074036455267230902255382633980285534220782506114099377506370401410915646967105798388915323205095633491441784849708593435134742654362757667437152301715697091122871099829637258718913592520456539688411705798885239539056413479196792629860602676408658164805283116603829748170316925279452718682668744087054866687181107434230636568431848892570108620528375703071762813398288265578574265138493152007823596763756837278302083830265442625479687267465934742749465859723266797220416785225137650651789957565464807648538181193275122238734732231153372087613706841332219461800560414170419097850537171312955683648883412898897489699491752528834549258377351121718139618789837259580636204785044941209656585270739290581078330237950093904632877121230305401652460255397732512596686291864694406718687651664742566306696183376347695189109585670464833901473534391307108624187902896766189164144223871032068905312997106048170006188349612281064741455118769658602262825545126465578494549702606184495130111309251610550593200148163429092744756068725634708546685473585955883145449807649461837807008092067772568014982006813378606434664858435731010299137217832351502079584419966031866703285088031942639613724272929564661018546901908030217991263125586793863418848266148170131020700528399074310314846058928582777337906703916990374490358410462089536784930236527084680887430040061244643307391415809933041796806280370110937497576992226165765266646856191873781864057222229493786149260048455022318955795272956617836798005117687269319719337703130105397939834115164220841498837308044738162015591259053412423763255872593551445420081963980144421905495359801606977517084487124639618547582745460410885933578354198256841491879161184702027581049330508325856537905573663438364494996336858684954512488767360601423421853756106734041898893937428315549187529371885778206514792981610903183268299570375795275500629140714800255447487322056887766721263195842779843239750935051596374860188623932240084956894916703014944077954816779387233024176577267380654510310905643855536736016605350660996244506686037521849707338909634087763522891033805970370935618093557673159776500932437401270237961400311091830198306484814966702784073658189950117504008733621871389967128371160455688130993089170900261930704574711107973642296609770415358128080573525855768602389630504589319952589806125633701113600867055554937715876753268295863553858844575133258428633030992092511194607043928582425774251445321056450459174283110326427891636005409165896148327029571761391835525752482262019791039008871723084117956329481139807699210091710486130083031038141223725181475670484993832210891139286876509368703621954866893675619445526537036806583989146692205349182328454889089502384633710370661074262121948244485374237517905321098113134118891677643259503339423723960957543955182574778803997618700744476467826760618302479937671673090258126988013135063740826599127656452475256779589931408231003117457936294812103945113208447571135585095328744434432171716283050526230302796828181435797028918614390818613247481078501131790321927412480143107975011427090760383963677537315646194979461746976405372954661821790989243068093555556004410160544296782573532085764411265025263733201064097279285705146879792810264325744972265886293693140375564931640101996489306278126574648260454364946493853685860049235830831286932181232256377622642451699520567985262700636986523472199762975840163052720197669206901387342616874981409320912264817070931436345072296275661342614047781901735591255470060975513459558895814027701504676275178809745519454926023689860821715126715206759553426618007721407298942393545762142591530751177911431169303885560129515412121570299423662184767729126621146625151115122885968345772249948555602324084427785935485924660218706722215672443335246264650000545108541999892901756195043790183946413917285505465500386873081072877900201035504973573105558311236293709838923725860751064662286167891737179037448561914324169898617692238233584498814070642998634245134507467567918362945655428299960387314295074794535920178927915787806006766918345958577124359764390625860742455631762477253125656535372227242641648078676501161690807585569487002195205156196661311593318212060236509274016250997371035620418350320560640934341958293084448865925055314118700355363462193245779191986376445988661519443156446795520331341220446437055137681914435171230435695022490772923636040971715697256183192232360850894229500513149632646173787995000572704543978089988160756808233338986273529536484242850603962057344079644520824606889191675862576973149027708421528327556440615029809765544262070924800378895655968439630077866818685264212835271535774685571358469647105119795231776076577516269796325866342971359594228581530220836291722918996359847793184684288723444149749380426720475334758112411987507466220907687937645035419557389201989866837920647240615619815892077380295470185637255358385012467518323237194636542572688731206339931671434081832514542917785757862109144494299530133036786934991925567909655154006000493070984410019109197413496008861284063831133882601454663382144029286601517158305888313408309921787782680813186156722061920946711847153529415198604191677574467284740936345255694032942307059201835089772334168035798878479810691618586366426462473585582208429017922050468724638036275773826480575716743089953794020004931856315536651583848706836542183606829268835085911587267771280537741314361418194563433317865797427874732947824341450492405473675488323340984602157752173361791328475247572014907547185517395977681135588139105969830282097534999435904901879000842067457066317996366172053255346313957856440872261652628861372630748984175050196161701364486870106288527193587699246422955146519070375728437958874611962182451743961236289546064323624281633200362881075201773907216035146199064369426516078893637671940236936443833245235429650814537260791118376921379952007726313189197339769530610400896141946257691791744368926901253325054950642135637543589998423879465878606013870195067030189041076368441960525943455552647068941419014992428301959414263666652473444427602184689936385377652739908213137502752630930696375284307023286583428965924922064665290667801397179764168105371071586767570840471575262645241199818915811370588499216264330679982747040432902695786119659838816332492184183670399918467123408552309611082509241934767216104814013771545064984804403663445997389661829578105459012367566420775102137107946611622600374356823175235278746004198726308206003844583116206403660731111943424890010578514145797349828904813927316433094694277879574903925826587034583588390329721119502875787259943144529023869820518266386255292901091520411358667784452144553762124037083944340729618874790640522469741269843687697420085114834580085691610709085083366091202582997561750830176669905828400581777851946102071698578820659522890692945047104890216912441137890260264546074695663018976785020200855839645560619521897204205226007467282617560024745630121072950577747509595451099197882068507891827924246174531982231260177660425886354711196127707025556517840489219778011034135278916610269935198711976606358357594257506228826310551887317237135710205214862436333374703292697780891575166293294259552644452568574186180123366996164732732623602803945101260166256598609876950226617988160700448860700646236980755731605583048039936122106845235587533324868795211210987591957194322646148987566346559519790265840277997196140227466888580381793702839860772698391329566945062895395886213528868831317789279011551329240207370999069441598302512470830351493675267822320791891889987678478135516390647987290046993599700327778704703636311450147378877204471098354387090774651420714460033149123069177552423363297801759928014037198092808716450831216579776763784193777978023462106457432194717333624426520046047475344145721331453095772437800294774199059122707577278171768156539683740521960370547953085056857287925433116326802992888559878828457778866310403717399508479485228427404819667974404524657763214716324080051831866751613561201012224966813716719998645079355731676991558094294407783003552541773892856420209857443572998611226419356181737218182801282485278856682769352358020300945633766627481734774439572830372959673461950524184810760727549258065139420823689479398550848489359528211414685648753643970933839567414757288043355645655737171112919206915725701929168841560128580022346918287254564538855633881386989819161960024185211460165456524580575253376750689818619995285071977926895100327407170872659781106211885607130404883897204608186529708518582615735184261599020892599482678772520812369715636745302230847366563569359528891549635331903824316378641468106505247394711193238158072133949796971834836926397242895484177287715722594351913236554724412301243197738442559794434948980998061558526599811161930499173242466886429732875384427815804145526343492302828435798857500035019448186780496942036671565769603736620985346398727042086918944267738385251530412606441166753659207614292928574498092272848672082672387328051037265434836060097239902522100382070849341825627853243648660997262654882584848140391614217833314797756836411669816098021639206951800327153677177869143909012316422176103679930706738203717124620475015816068869501500228187284383229284777832131360169076601382040952263529658676435952796551062113507436941793944643233226331457830619721449771959765867796172457907938490004442664325460741230392520299405777078677373938691824598108321726467118637723725289458629072544200044765471278354460946954985881151589409742392733646698061138966670369070157019425636043025962687800587786099127708063527903859254846875266397505933249035722746179424303092667664119405662756756242219241085938821154423369370498513299190571570587627581858712330963985984158740866331394928069074356871395985683051718480909807940847719342333386107658157081670343869266769240566275592015541213705348751544084335479496529282519591359694350537439240763749088413177660075256542445743692086650591179907336754810635870817591769946111331366538946737564914605150028838055731301709864789043329346813478407322456734771863618740234863916566880249265203172443373924143437035731388338319623120988051017963738129460550220769502925476620481739290510413489384641715943264624497312809179900259112705284396645657936550979222247980793418074281629442203414525266412617365540193170842089214580146502487218746678702750331055657775956496120661449552845097715470948258953646578684013274151017199158750250897871293650876710625225416844234806645915022961585512675202258567033705761249435900061128872567581433628473630853549551607082215068232181067107523662401129067541109496095174930711734126136647404912302844721490814888145129701606179840033300406088896195428881621005959034789042831731348353196290975005758515868535553861460716579446627778784875764195992030296303063220776624539166907663183377598748994293643036336804953391382129787104151487252522198179111835196712085775292628844291117179922699724975864505518942814021293476080588164803973098178379113225800046461094862699933515302652188711397563432918726151560400488113052498306960067879446129550101871127004905766253080308452944019556377921156726164447097083210364919893968880646457494366419898740991607420718242638225283724492345569665814723439136078578455912990611368024698663926459983714040141193936243364190495557943312206899538943186545807711029967605081769362568238497699286787095727765371628807561765057428316140451317379703692732815711143116562507535011927096669692892941824171073361140421270487316478867937952410172580073304357955555391666680683512676210355824784621302154062049904979194499592416956523004977880889421894168389695943382777489235239279404109440748532989927176583077596361432146109117110496975159499161897610706846715350303657178111909761325554857631905653242341476524246676037446492637318841345310240365586033202495477205556470700957906912860901421181548952978501427055587749311814769241427063078989559658549358539473387676117133564829375941805896046424750823437828966369300858556910825947220143265758442207057184686589332775171872845069172229013722388267143006298528597686179823209391361609482175241795098449730299821450752793703711032036141423903855003861851618566685455273793424374619304353266248453928635726628287371222941827830307336708368342519328744642736437661728024850102298077069082489199904531892726493906757766265064223771871163037255959477215492667168006392993735407073444099496547753511444471921728233221100986314966434732116850298682176992937899571341462668306468891479711336996154603041395849504857195548445657174586909692394428126149442173448834486484080310713051023531996389343899700136202586011722382222775638793405272708125350082693345960085491834416046114643062810834360321263561735004128133486164366008836864401852130675877553666756553470489296811702240837162591898458205299266764993185747142456247402695715139116658231807667055144076158000220555280277170202234791887673768734668321107960963402176281679539246941299212840286116296178582267431350615152781069129587958332601611953960482209800744414135844810010191729215645741340409344402312881100145026968512057714242148620958872540142830838713002452763074903757445104395743920470008522592399519624378848041180852226979991100297676133557081332243593210279440473020494909408853378913886383491600283601449717438596707068357113206107598638052220200979835713193741567465418759889730480988094132232604197451504816311081294842553957500334915327617218290599673335349530754246127354947343841274004333184471485583743471701189998237244810081910793527540417355264889355008423945529153539082964580818986355937541354304520211117217491401823609733584199459972767806443171783724655537918629715726902849516227840990434050225303735532949361429432556772485640526281324078493279565611034222575407712912112499762457789214962964325330310333304023550023865781875830264547666310210274442392072316115153170366176935123665372401187635627375930642972312551231727007396098737646913333784453971773363441032092087423337083273472760225428567947780094377059871379662688504811985879665474382976046070979001557801771419812664330705031484319001939889010667030503191226359550488104652967118256199546690447753829756144797537975705238788404969383419728671491054666482652639280133878258992433538535967676201549776439324568336349863551434560334837055728955513785368686798122441823698876046130974685369177966729097952648124773484354649898954173254745986032321973347000719061317024196877403707899656101457295050645390406567359445630831547195130443625769456090481384924132825012193874190493700252655325966543774067697127308932299568170658611623917227849695788652881653388767338280240606055201384811682587900984857001738968577195484155503129135811662563217090390309346549615167629719872820936259007236277429172320845723721676459886558945124337671885264398698083500948672955750119653391516839230769700587365770735201717198255012694311885230532645434867576131213003522111939496425315743123444785917431828780167151697274140247411755967194071381354803567828829754896502155343239342679131279816962678855482191014272945450425915947135434674440655405447733741667388517751805946159881650375980194070881062293073110002141680950258955401008845161991996319578273639283676848421372539301965930928400553107901107058026033958165050008154647551754912174858704792919513911294128422734007675425792892790790750608198089038853241775817719580886425191918814127503982337969135135351696989332213349175519999737526345970372990029337370548697331267979791103504563110149817193322527867166427719870393646187313467553212271571809295100049165071389398687442397707998460667464489963366918603537750445736235518526609228304705704596729128212299202944064485492755035235373078117492071898374118684108352217081649272197420100365823906739062614611102596933911323336220955548048585944891682662193510630242693446077112816181158518089682972529599892896018324764651401339932429311334742111759008848697463397766711433837226798639947722461381539205997917046919349416639569726961144681337220603945004097868672514281053885460930659541542495640997504078104488005012464866339414151456196727600549003404508348234865253277595170422309198395166149121868623241471996352561259387926770573337355981479315983622894251083325223888024239385355796263124242660903000831663430771020186959443847879497281102608695639186348285760762780443432625877265443115857020532513536518942655928497250040702530090204072306742941014707023755233200169716615191192560206209052792197386310340010521265178680584461914367400980080878710359524894937406209197105047390850008116926476970414106577979042994773556969517327736075283491698892238025541658835403327280187245333946171347936235353284196925654048727726264728151070092608280370276286354024554705133628692972391676044342280004438307540730926790396207592098481433849847059289377439118730062221473914301682744438041173344776242833360062987431260584660681739526539047223385742283516192028519569562275230762482839929108893175097051143235949672620135688182356646040833278838776729032475053441095438486970731592935300657271032438096641825050325312446460698352818116372368616992318537776257448552451384697628533905066740232810669288354061550698151399374360824930494346324375538259821935400789332804654740999528033929063751116320988069330828182539491084778407762559655962441699700454463855087568691703023260083776361395740511895627612617659118875780722764853476514501363450488269057744276758524767486871316630094805171273076352815824739335722416968036729465281919137905154365764100667247323359694922953196081672440541438817107035426078281562102187860771577455586807980017892752603066399053839997954626134204852956381517940079658343364165419011445226295413016194454450688116501166101562983725894904364643642648544181196489255384496223609714684687832199245645860689776316238640293805571716710066876231331903425970874723111390968669817601670653953356069188370485342164972077043437731191676614363542493383201721618109649707041922474092604425970264631198493988375295350652463158577965509754016828377709245507961575167778657648641585053027028533571334090812450994751254611297294233135389920642959178000638086860803836432342074913613711148785690231737904737473936454130149890580255944590292650824886914742042396755045610911921419334950983715086099698479473187825595011683497792725653096014077977933441224076767399162540379335619691262466132422334112199459953592325492604435767359286911776135414783408833945366892943571889284511635032358348986802738628456800206535742761785742093467703561500578281157435135160554510085599221876306114991724675383644994203187888590150705081593133486533781732686566952350876101851188446000450560848495035685736565887234585706484287937712182648091190033419761183795268473647408943157852686344622791828593188384940425711773581532035844214052970312275367336696918056602734251785781017955394901012897826471167840273911542088836509846191824459294543251286437131515200404907736728198794148266691381425460580701636450073703185370022835978645238818281100369634561819261241052172837225563387261020779845841960334768136680934275956065525463333991405969153559214549717230799065137170953604323218274571021010101864617603839579331706428219303053802236249019502155117269741431072702616594985957883735545478332885700897830359420366297594277834400704358509321045287091258582655857359761633136437809741354498653335439059174029921954200598085999724639167938123698000726204049543390309983645138080827457435884735155151901746941647545569557442858459375693813713254473803220873247659708763834346355997232387821929811948001670379267245348023756764999005338355776587825032180605908844411916831062827687114821464633958514280326227710220950454813109542070078667430079151713587452279327521420708092990883633547595791318953291993401542224259239147398928075836904316367325907349112704017080724016821126559841519888926740962638806448755449429276914742359872836207227231347492335715774354504239508145618037568325543430961678961125713988856994972478426325257544547730968075090128170644013757363915534537150802821722370088102313537415065547975495288545318869471050096199551549323955071364351098996874249570867395222512873649150683321481044326390411374773164326160063046034414478525210250128791626588017922128051891541359168305583970440209186511538392401409841021872551377154292626909142579470429970088303116422477886385013593647322724710159391058683639851823416130421623517803208486350937919584167506498961220936466357543835478709374249876505898720072403555320361592693029381694038050530653388285237797723995668945731938393409205498743372406824099703816400955628202880557424481050223712079380390752744388357058447735402141656720020543017330574895135404200439310456948978084970639404029507491019330794968372626623373220327178910493357658467744146624334630732672632954699207942324602825834791460657189061205808432484607259755421775125320361580763733346878975965037307299128619058918689309667446752632983283025756608641555129741274693127454908940868273575524507255912314291520024822248800951514693501151298578123161253268918116252080895282790844135380422119406382819695977482624427515994239799354060779113578777550305803269825384653621889406604512005488649739700608279215679194748403680017064509761515565495686342233011085380872417659204692960298700772238034950021567139859618189461035219120370051618301696962441551574899833310585226666270679346070586665234833401468104773789896805820683653302575195759712454815141145149385636945426510285122440451217945518964884908349559477240328142535849351329283954159421283725768895414232051176621400968384298545403004149306980724858924607921998582621674418270271574984234135679934487361488571554889123135114259917189675358961351899768165130855912799692383497635044351642013064213162003574934018617759739173145425170712953696178134164594171685444003790778480482042640341716443333718143769048501363319673768060192264880219933054988175111977029733409016007778540899148640000767623173751076708974576731748618628843292822987474674369001670738359463147724388397866145391057003958560237159158813729283827064622400893496407229414516257394232782961398005915848519719342696756910639869977070069386130335384470923096288470973414055637766296537493542434366876542080810123837233139311435194645766833471548878957271441987076003592956744557530879413805125257568582956057056537888361080063695333529014146757560363563953305123686438924081391094622747370359613592743044283607003667660814908772110821242859339215400676225419228448902682715939693889964309181148019209205833350593487587517843609562192817274228893012448137785282808468048699026223293704857731461603158008344326581125963991617602340030476751959814728175679077458597103913191808546775752402037958550839002003847339302930212684188129635752169894064701271205199900946561168594452514034229513722344561586065461798664466576902974160729822915479708364636486938741857622794333774443298107208592857153263917924684379361076758649157018977105548062463072914084396362909381444284660951833239752556475089685506311991684530918485373504661337159462182675347534908376855383149395606813261172567902663078292750936859735643982811807599967725815247593721164190592969075837035429825589528970564192088582226360264045520662422747127277608530116671586138726210183930296941480239583187859822531465965554203648295017250192064184012846116738179548591542499115282416810198852612744895175261787884022052049385917236975071838179159951911292545215832882316516162597972364123332056980190986294189813202902381887502953821444439273843738211123486676475028464017664172169885778985737294896098468966338333219531110333601932476729643505217117704222012630738873095972466950570491075220491068899405338197771537466509110745800611510817782141146290976986907929767055317906189361313973906585590172970949254928383642963994965397048299906723390918336480749491588187060894512141624541997908396210443643548931330899396433326883949375206151980020975043267092405401564413662754894335884707282794817358308844576794434721358839573926051675260546776197730968362220277360665545483827574965490212839541967916130553003439571538213648076112772851815879587700374169713328883065326308039275054732190618164257837756793975588676441543282319421331425687674235760382273442821986847717066363258282165023261003481348151501473868598115339188994623896261002687686892766214671336935401800565167046987988070576962878135985981756628784779849493173728899776107951496491401489190906314462874690494240419155728141654328308337062722723714311019881621741849863377384565169907177946449358463216493938582528862613858361268450528433513179601783201200660005950133076624351506028668748877471752965581171539893244380316342406309673967492593750483655261139318832650089847009990094908103099158076936045564212108128826571981369617054360036689745358767207066571448956184037829846440364922796974491125174118537875644883075846964048679804562876012793429821572432288109409325309927302712781262354518652428493864450027544363153344690676560875254317377998156324410543870362025599356650611983442985892798859231868287881320526568820621201884703007578945009458444531798768683767727224087526105228649589265512474077036351578564940329501705740909867228764611615197045104443103027819527554536762171388994712253711121753840177147443956893923785138542404305121140280163743288482089250254908153597909282593973316904239268003663178801658472138004149918836167555887827537090872253500465315955284939324811155439959639177636073280093180880356753087839979211955284625279302568565642918586953321365470278171789094669727441224084098978605425630139467444542324428176570316615671740935516684353359709705185115113300622441007701281300673233298375835259859399217374438073450737820632542153198799622774873665004401942390249567194893941061560005190773985308952980993296629997537240763588497488536187481157598858110521145931556608985928643579576366662079660663797271076868644871077283516255647611054124751748069808846381184947724938883549545888402134206510626294351315587511208770621691472154709631997131948606212972188876209717065942198781067437357391922225500446372817195397084189449542171112790366986067260147834640738700831432869557492895710120653751783105583614935464227193250304664249814662848293589444150845226724246928526377443823905380115542724406450001127307835433778744825048493410161371722323227203193405075992225941317160916541796259137601679740170404649902650226201652567203137021889089645433490828234177300886090032050849726820442657424665790601968814621226933604102704898299104171893028643952496439915069689274266288878319195773490343662252397040720878643043390770012219302913502702787827330444418492821043915310917939749832922041880075428540256486654074209614532216126520994444145502477404960805171620669129124203274527360217315771167965778128138147874348684968554926773661445931016784101786221571206304228517008894897887151203276820197779119270996725861453359971299395824703043766179664527138863850792764121906436413747465239823953235000050612397064597732398815323564882697165195613702276314995185467949334604019365028827736509863306260361265346790079140851466604150792450484297905709456531576882263332798651724969761362260669591551180972000703963466419405935121199513851956214423697744435325920056471513440310353213056201031934562185213596050781785616222338921796274363837892212514239646716923061401653519663166346060072070637601892338350728823059492705845071695355717198094671157944201809337126116583717701704640999893410102045101024036027735789846852355468258057987489723323966386267162269069863790067234859125900796254181016198448320856023365659096378457095620345056884265296903604413390584557265529809428984989805395432533015943334968750134092067995252526816607562563008998828553856415676052165584557739123990200553960173016985681470559711147674022023652055308161904251248707563448436239804486925014087821426911330734680077215796682674270943746143188419379445222742457193900462188184926715562018060683259512632917414154321926027070854983218388795125204631272165552467612155796584475433694770217834894702483017238258702718054168486678241096650792367154409028361734593430199343159287971560396013626679517354503953308875413331728285473767039514261477291594354138784199001713667494451218698226695278752971833552014796397880979443659900820649000096950387096423132470456468153498219485210383330515541002095262176164251807344212846799565080466411189404702153106361433186901847507294465985819556337890347416616394130086483202301589681498400558948531478226141278053434079254492759764334080846271415139779355059633730852627634162684466066553587589707807086613820591959589428090196602731255973482143180896546918298937726923374440127938689213290507137447693121896272055379995064855206132339764804004641476539086397279486716099689915119790620961097522506669490197816890610399512733660778894596107006189679494851100090413055038881395130966302361035108949479427047475230736618842383681562502159092470251122528176502038768074993434993965791532255346377885087490294013304453724859633639268987621273562954368126797691958510737403113185772509493931808495463565321565479833141816041057532198839997526968271690560186901981667924999446708600942357400466380704742714694396538119311077460866643354283854943087225228245176592151049918231891557093634172802074576289534076525871712243525297713400150274202729119899562368233749357451750173230109337268395781971507387080480039333877273345971679823758574839324094973141981399475738991634590806186188061708469197231617306073040803469318645599435795549690467761472250035267823286669342959609888339717782525913883730201414854152550889618487766088607620383331978715026797916817926600302551143503608817550038669111232817973739475110913220687941087197902130869822136037966703876327372303063080609707234591180967629802122685312740426235613004699614147297405113156061146873518281212901089581091905498516434227775517509067242669904919760958366711599052529473615776974264990552856597523168257227832479210386506272913952455475253528208996325839043680945342572976218023792487825204662955265155996521746717287449230358688181315726070340465216284913685937120297041858290748991445576193001247126269944841963019379688864732208363320193164536750197459837717991999064036906162882856928056514776510660445258156815797886620584684457759009211501420337527565768194815459792031655398913900196365025846021120639587409647954830390573767405573825003260421347730092429976658712392863612982019910909239992125496478752960131900538575567800592145134819441936069855591953940160052217251044728682796538162221765474001540143481635173540882540940709762423137847982336828569471002941260544658996637234825515395467811718573047946548220577184252941875883634215866689090204316877047033108967298017335657251969722613060568366103880010252237445194746357720404464168555357268006531346386975053110690521299765016062556202251912131829641683038883920868166352047945968296003846048679659310078620584588643506547387481404390093775629736662400898498089359196366872889371103678365579198113376794897593449137132289137117666588457168884340043599624889131277821922256811658111475720687484807823449615458323436828198997254886759203341615463212086095947669574726106428007772922143991854442293994129977348104986475257295163758675710468206193636917995893621962643436713113103445135313127699671199601913465043979699150986233644804667432563826646502817471440588232313449956299916615455363227015638336064905510516443841937588509093399351697003338646272233528563698576819649319258318352739311170374567914646240122549789570306406750489746058635874595454013527592574477377143492127523675869876515760058386951256234359232725151804776494494054852610854369580256838902099336408895032187043319350134128714578021779459101207567267145632513426041751899131956794939529004274080984481274216554351430613940224050391321447390294390233339684390079596040701064416668738338440574949691793219063308479562388730397071795024079421972205566205240696675998769226293146043037161748932302144285296037046408067768705425694017387105254154546923630475759621258963803046082456530210356630289412123682226398293533025055094872973896276945494504958805689340592207769138934330736840293761012962006426990144797151116055643721546956155408548176917695059714331389916150516721181699589851196719396953139694185731883644655491615013444417778013262322862147154269341111529659271833152317437395504942370621663182349525327421379633786457230543306225311044216648965503008811418735346206249107084395689329663851090417548478195225799330262381138614718680405523960822896406021131020146312653406921910142305200130272693263052621607398885158998577844413835480241599322385815519542751233292768052729151002001398678370641497554788918772911770473776000436941172048644490417365073414608355758703985067600811132438502425750254589091785226264634893951086945993065720567596245313051591686672423462117048277288468997458105782298175393618352157689315934488537189025237498848532164316897660437964062905285717600658087883895239890370732968417622123481411616391848178138497614637929033046813466480979271756743426730766630941580181654748200921554762124943107887415080921531608874269932275672722540749822324973950534134695187263737679386030473578244065304849633202496397481487072695259847563389634707067321893525193184861171716204834832667218564203352451207330702933894756237835892566912155815581030970690550460665802624452331351776058522024868759364139466748086650980101809288944079782443295711801262496767029946141670590823328230852230395548541814157330402264181568449095611245920281658792334986976568010462927690833241644832764377661778041225230947179573195251628200676086579426794955360157886553175714693632534408736895736680035119899430277971978615266441828041522152726246941950195038976957293017748136997859916700430459643454044805344834262973809268599014736252668214775057442968488319131422394361737963841208314676434714907406655317343604401118174608288090993536383282794870913974857663666781372724043250518952752165446535367051806158190642268797663230394558023246081134476496551768415228178945005861066655029317523093904943048895141800858479871764117361839026711313481091198874813374926967850620778321521580809124151853019455442400303597606223810446566313496239431973625008177450402429097227870611334950129321937569744183912515664100563620317368864745362566087639330261616716548604584228707657262086873234145776686404766885130473050563463102729370983858290618501582555229133871213020294244348185061275917577831249286043326877763665646547134780788188749633322295959943477418517302163905026661571127164870898829685737132275550480379122463446396880708102490859812719182262488160529183763029262524049987631094587939940465553549278559017627612460599493469677502991775645863195190241004333786001554351731871459230357287676220539823253156703634956972773029890935315091978987387431995836470197090363646314495125034080169970924005390408758341311807944149717174928380754923710180777148387212613297210020778981836197661530906854726726191811020494190020940813302923188495064664822887657098172041092819279130083213126681432225341297572507290180305604454315278145531129083488305936914234421268888884180917967093205783678521820158059485304280358936248087615552977892757094984274914434461701799480264363881395448022934581094120173123046145407397668831200160721954548185212663351768578389543646981479358801503947625299142162786938777140618696565731152524514797462590805327842389119247752158983477243972323300025604184367841963718768889845863214374811303879592208337078323039769757673208754144922515801796533128132803132967234833851554341092107529289559304064261410346103586271732089320787298771662998385273478540132338141025759876816112182386969002384332293667504206252319814041857121186669871835893621095663040950300354821628285085075452453119934570540709979801829525871204254370083840152622712877063794511746006325554892052067766749147214295576430620470617038815131557218499851884972419571541066033478689160425449341095648161034811309643838182915937232847795390304940707749187532592728088138385689037229350645120082696498055944102788129433226608373000345845743954130693339957363012047874135931454930494855812511971822446040297291255538616220050239093456643071786212564595980457435778520500862099194594607077843688448366773602940208340208232878330383588687263993973319750221560059378480178578204033448048727926878945971276329111465286747291058266945947426451076844454191316751168331328767362846045057912278469762444423865237375218376102949775837389470635647202633363544404141527021909852949720075155251630297009253983550570569638711976366309920476609287264182778145590635797459346679922002850614242799596092364957492634362365377344339309440112937128687989423702382426244589367051245478808089821827181307005548294299031074774442204678770764758752806720917923576476309214148852106708647443929863632834337818209632736598576306223716959489198913820460035118251289943504990241591285280786170704691394916412261936708219564143922767234440061438556388232347922903488304507682931079698119543025571228179774777991233083914601837404926686814526384751479638539491414069954500709334993012986260389007839343894524461748894866497580283998020816661138084753784695688849554396608044836341985793153811083091236587522967419889670521585555016113638538386912503317109082998478451997019635913259526586565999965695824770503694088522480373796555363260271179323526437502880792934945190716691393297332622054377476021640061127884578747751872575313435858059190517988496885011117060601930281664387175588572370996868551552545486639421128112032568295112040596788088699996678542294579679828572318791973823950206264110218681928845605111839700121474559975833323879349049919290591100718586871940463552880467359523106468213053637124226303710272932204480677363130266682792738478654478914095136227043278236400360814257058530442301122135015908153262879735448469654950261226530976454346774796519011939219156838967497663746542074851591781869312728998053038329194268692665952956236444646708306899094043169346386181924176644701632151760843511545102877449627143179435962838863673194054028853329691379697057488872201738394365202003679961246853509879361178732659486015047212040026062905351117551906977988435157378620654979374850953771701950094843425484613995911823349743577911601782283159103473631196121064590142326133162622605821597976107150010703859173812550837323010991920740663375325278112628636682621750070566493169154569551536853240359898650450418877707875804280906159886079162824167333474253053629051212007704850270721135080952116896124506746460962776652056445510997456472232970779478746563280360231110772140060342318487032149048570443285977221933547916245731424534780966155206392080447721284525720405585425587346759437812462476774045613035730357286847094492558010638260559368738759137011156504405241015244449498721471386713950696893446986586999688060640668182621511935495973107804095935346877579299626155061234878541761983220989200181875353252665662152980586838465743627729573572660915199832122993899679898273956157788655878617133728747966113842756308669616030730047333936047064851269026437526153917715287938738475607053394568500554171786475159235470553354040265930005131370294885498736941337513606715401330449297107638900081389331987051082972071430330951033941901314165869673528473532367894795733156035580088836039445644238575805398860351861450701311284993157271905101861733878058302583255711401352886522518296513794230259032910969242623565943641178434341906950570377757547016108259130489397271911542207866512735587003195091977663777450827118987870043811803382606237825586999402936397345650406345854208341484560740681434401416300468075572655233516649206617538738111973606249249884377642368733491222739046890227991833539725562436018405262551371843933210431397956214698718303207232230560035240788448981755378588144825341390821232231332788250831391171269924093120137284049458979777606373276860835041391801571810285456507702600606983329517934888877346403913031779706193618524085214138884925767747145033452141231572637305345084832886077603555052277982981824747845359364304444191598878873291044517978234564581074302986509283755295984450861510356652066441827247072431074652762795980136085109875750583429560913216393320519785278075270632959291114875398162047428898457422462599473681604941647904033999707651308297457701526491845570933622153433329751249544844554920116821246624761752194177574220706807161151573273607984619397046709913401220162149338974656063865212130742235613455166944557149377578577799720165072008440272986398879906795989148220817115797872212420407050139530008538442056095185271363319970521231106341356099933761782713157264119515215090597104531105591264911591588932431659518000160668256265101544244276889781483179291294595170290953696906587449734710650992481274394130079549289767209019699841283118906250951998241598168399927368771277069176742683265289795343512861701181104924116379687943965889681964705496819710328623904120314332398080276861859967760586763928590236742231880436264995572912417474760765744284180094461037488962023430712062984873685847552187703686244948037713145313334498060105616052560349890674108426473107992897676538133670416926080638021076933999517428963726281448550125021279800150480790777241204028507456436905182804789002052613236944154094624005424026046543823538686395267335053816188438145216969849801343658267489694554586581968942618095417806889416244762006704978882546395904145214634940868647898367142580772518458279812595588977613923243986529382693487909484539217224710502661251441837893262197846111555783244696382327443472122658760723345391727447753209218977819665909290069769899091122038804273456652589830965763561633218811225993661684257867470347348682492066679278221879291861450947772438745428288169417784591950456187984219442570895528373270486001420199873820151881184568182057290099688817005013570784223450275196018462519019840411168222339424522423687005191915220323528765498732787678001096255168257247524934944799594272703128008319613161316506209153725229006496619922737781916498899425338371698768708127177356478393239202041357378418659351105434248850762904786207500583048283001456010724651616517849203125928727960897092029120206636501993082533303911734286723931147147316099887843682087234394573930517121894685324229093547438234597135729575851611412109022819296582077304869718930113259690021102276137408970396520106281635244264779186933292937872463962321251482664168626782413906729081796066278721655998098935133016783721398258581706191259159424550077193654095367425270180666076245911360297679066991776621485956597015340985569380941788171022394120573888579702600112512240658330297652994096749378228318606855479833167031981596735486954958661735028066622141539005594538110526779354624135777727783295779483961695593571988426975035037150981380037115454274334711428387666133289992536934896465123048801513411817843515953723495486063322670762995150684393233512704260617068774385670263084322732267401068164047381557748021100206881322129321958382805618776801806119168895185457710483985835013028805714417477788333935500550421201086493516012534488706010280594603410288632955361296064042138538347004648447141511154782556226485732319596095489056765989101987843251890421533432346448608780198645161458177612336915178476846542512528402368607987309092051225498832300625416420954789646947358466565316481631926279778285199720132337841028703060885580248204460975633111874675295942057105754128983651210808467248533526862951595588745733405210833417021242279187569363801985900939772711557285008929797752910067057738138349556489353171677713082907315568510919207114934973751297036700801626897165323951333801394773573769194046265468878869785142140321829873436220194444799975396417686968264798894478453580182559967569542891859996746118812650845010876864365781401595574889711056754904288663178569079286233185854361136163989268222034412872248189221417285067291875726043267819309504026992996148505720530609252683982211584283592630214725926530725221678389065585694476911807610073374138936395666097839471648241663247946657633187044677575186163843237017554492638692408835921963831910158069598183995038257381683334912100623927544370856056088315366670319526752862044647393533250433226964166705013184934129071050700903551403432540295989193898896369986444489784054862312050997293673795074294858511280680728713330794819287934759308819061318301906863202225495651917261287641496396457243449192632650007561293429542234515156102048174837463086732969534428423483304655806357500558365680884525848107771030032805450242179369852699209756543259641667225640253794322917931984614603268744133476030820581438896117174496372591899812473374487975804024588653586669123315067219470643869674732222255106865086947890204856376285062747098995141342454956324853262755146272656993794180335184762236946178062985533116076500646775503709379077122088054376111832383322708226782864944179368454657134875114507748597202166907105026325529807365933839536308526039027041716854953610196032041659855789003650756310515140585438899630311703184558404922555945190550085342977984101580534277572607693189280168171989873829962074160664216371015756294660641556179239749382959119650448317197329514671220558656439524189655106286555549322236260901628539877919673583026093758371926882548206297867043561065491515435945503677157390206352554257952326964500212272673578288421959501169937665587193014902181003900282303614797653932316855346204771417275214658340326818980912039659530147747476924981257886285267202204816455958374946774935984461759963752107959168118300158591331011754713448672428451304596237409546258099217377075903997983652456583877639234754623808774843836770213877554446888933217793379555036943025814412457948133495930391664889600686773276738973510808571241056476806781716673166582102089874313817411990433744064242419187573703375263060994554062891213273529890811989108981576531657515882224363631396273651899121231668217814766608380369375818488054260735005449122640973870601039655007353238056355521463048994596629902137672098949450801272783434365827668292401393895537881419799519804553250312160252956485148972957469514555702728685308930100084641086226555623962353891492222291000575380156129463077898579487514268234387479873856105259370419954860765225846068839617888867794368538184591775148823275541299562729522283280086344314038053467154809444157705238209150983765513871150579434479359992393093460307257631139986193810681245679585065366262915491758435742145924836288641758738615100013881104178438419512437379743156277847415536690706373972103280765446372160483841883718751237490338076370493730251108949587073456360390356017986941537768101976540157864154479237981373539816387010890649135656069183759116347370714574449341442699739592903682389360019267126860045303924240540635805572926321908799242140857229199122814569488570392785657655518287066095896418443555917099922204341657861082484062188622007038110940830668178438031002610695211020768921779080482567464658486773649688699605622818827374532618837455217934801632919316066718835268520195337986167449195501691210426508876597748200368799156145035996533746064755069817846689211190534916834187286747338403434121933892095409865723771222742347102576612326356524893341145723545037714599623109801671245910810442477483395342887142588917548149709374846994818025449824238273818032323477932386874532764930201098722669920113133910402844904696743962039388304457778334031433962519292136193185584334036480829550435783908722637346565263249855868141849394492649258800470555569965490448022169761619031488423680053601164543061372609007440458066983525752537379794530846522644736823885355007151377365784726001953999078880063792684085859595443918292730732756510598598238064924997310398775046551740195598496166441666901173130751364464279651580051548791147869331442153233191956243784702511984306438712065654089340136927259647011551202400947097112682293841546146419368269184162300703191550177061946107660069566649070053438312147641473646016818722615680506579747152969703219588683621682217269240302482805178839341211203670455138407904894676731168151233192313594468320101791473355591602882431583955862237861427459825117565378125422064182332620843227047139857462147396601151868769592017644802197104116536292996844039805696266261823372010572195424805224699563659361635309862598970308402577535675779779279192753742389035671438541733578553640358046975868126586217065963635413894594136311299713604152676825671218636235613448828792198487173990279968408683401389828905021482984923876356245999903665128450490985958612137619867420091844674070434638450622336505031402295798523060058706221618006891260716712493907113735182670022932936348377460796343612669388167579998848537706623468181600764672581182298100630080653379978752109228194513177067601624192461576120707700107176889058760333082090529873430696412771464538949460364571780193654737664257628362414441634399586838986516800096795795407562437064026105586077366683992406568341731348721664192152033416504694693981146551928278610045900807580784004945059871287177695125999327205747464795512611883098318068850120042650915812092686253576125161082786314009144002161101919259986239689733220564301485810674152534546180692193851808447056863631325755410744771843244677461503824129940185452194716873848556485773162521790152454458941198375732917161863875779547828162372836112578746129685530488443049887996897545979559257386806806505306497994884934666403116109808132302186637338732360871506787151778296118517766266250583566697874628835503121623345379134292140651485023992370463542965546286250630271535025384901462238747861224231981081395093735319285804119058098167417648186000850554892977701331914434781266648454552300049172099948637947022498260901721270376892175674094357322375980024133652262383347217203200790074521617966249843476458981309092838042476728960185457357267457757382320904788730923957222925205140331768502411512477118910516765908838694335309974299908413934066415611128197614595424962975823203967844867218542995952906180323200895909341193978911550005472233515139524105197263601265446051943317085067932369617904115476753450203584394685489652598693454401453448110287336859820442454667473667551382195861498936385058734576689266888379630122144567219696745473351653057507296357610907105065205931450253888276477531717531779802697090735037675734339287106444385087580237532518479879811219602015043862109505892809329670351688654337574117840543049974985249215028475371290540821395460786798469101358649667909296466946345751776296693761001477470276401129665262302189289492657843652987304474817474145313757124969653526297474225048858189502533002784742387617240821062281642250872909589959861107205545050470609306516183845394330775945421342154499040282541325472513236914303419537809335063180997790175540968138293963644193156978583864527048550630392220014817700606177655406701444106800443386640082595686752612426579660390019790667787251303885370349261070545213367581125423497767927840821341765097182591250793307704494463695977052431118555112370294985435581778204266606785331904595039333331870377733116151566519255053278147286978388204033608376759696415279930534958633853928761007008712769609959902780680220517376433676970875661534899130650612854647901468756775154006758512479697538236188361738707875580106268346576307349005178670264480439112761092171197976947573251125407710669090402105405552430741884706165890877910352948413383537740847356423503228353024742740586129635395188414323924207386159991763360565526050151528501535904191549058710965812779132860070436347611577970573507851999955212223471686447071435717849441845098938252668597569449490995814119675823923267851168418222928435324597320449927961491758498551405435282906350276340486853408043541670814416130087314438291721533359854094304314012343253021228528281142594285965925786262235150575129462261789761730319361110333633142823274786664397684998967644288267173920569421187468457671778641623125591662293584362531993047165839003056265269396832872725694037295151247518360473051245451262569973651898084671225866331309311155626975330746042092098642343945701209572102110941963663028179498581261155372467841919440748710139735560624929224186379673339942359120588094663753944458268721669146888925430890510255919295543516193983893428991179054866988469502808418505902641211223129718031943657548566861005332579267139857596118702048746916878488815226186554749860874891918093197796878744168546465810701611407313386809237572202012674941073508342803026675122971322707554395973159772126044693499710127707013797901206575573706530651518580551426655811334670335783557513131243643256674531531297923147714184011219434279081620206561848383645237691163080998858573070055201185583776684481941023747571266291163277710893009061005435694468944624276738497649208546231188938809200224924746800320396443272507426411963428548018309583394279880378850191791467669426042619807086508975888365279695096044383175894337273531793166175618542396287379504770658619170143898349694158136901755203785969866008116658937668781937016335314655592694249963623876027072551034276242507316141902409901202994580855746988754824476996111951636256725735958830947893148720773139306648057147616387173726006872562890107859066184553522401492557136516921350493100020505984898030100891655914337016360131522327960160644054645306895301083769494861219554898623209421910880007369014001775227696186184056925884302521927359187974860671664932076320136585928238136978676989011715676923781522519955372302964338436504476806475250946113166370868119533405041999302726336058999400486584383169814349829998623454297903654066396273399525070680930688497132947409020782377197706098276934993817074576422173522020598206265412693926054592996311519988402712776923622281219677026703080811716510296544219739834825056296034170248261248570203839715770466470383589622334171972080970232948054175726389405595774778120548860184272196472925747616995758914496640800602400251899204276279966523317482296070009121374205338374103119834096942454218368827163890624562179434491644732815415978641321162428367444565330232690536289260906102366796859539037237687302577398130029525147826114792920319230595881251218930819199742245161906393808143137729351715142453052542453545530912896115984243750964759572237479959919136482985257457979517414227544727574469855091885295405153622802297353309722725893155867608928230521895075959995626888333631038171284752392194578150766514677144057195419019974104645478934639271348320187465231249622985629301056398006737911065656552542356759003733950112527456722156255324015870669374988014314688786370512504406324916960077508414287985598045694670623990517807595200419560886406166062401022933474215117423016710944341975466645113748084413622797217222447860937841235117740894811433701618406656269944142041042775090837659442467555310693989047025848127347995419508358380649183356378671253094154423107757097357321840249706566584822361563366631819929171665139547741125869201012865658334794595449363532880444387401918904507927530862541228759123861123494537189249281797702282654506067785521222457031553983130538572593713944541109589548576093086860505829244468957212585932568303487047998226520449081073029348323339702208430507172924403182760105452346345461518607114743201581590300217127795562476663773282808020403375992022261282356599299017152440713378905282081594820636879652830156858770708954078923491136907792872211554171734297922231945296327882821108858985932620021267911742024019278509397234212108426485045773921593333040674128650066864619153267065393294844690066026616921748284081298811404865057900554466365756669598057208066800996975855715552185554746905360126426755690993529601798997675225026634880022359945906182729599724164863508076621545001735750966059296380769407825267108578191890342674132645297670562698566925483430567692244948563103518005360462793210541407250572264922238673085225679233349487459246662359902336723247437754483841389475321222952526185372257291208770149953322111331059934310654394952868259189110451949797963560411535113919135912621157719274235464832795049112979939869177962744326452077102266841892259992237214323640675529568133341140625074840496286402712001813288957175564426393409555329029343243976117624010327856324087610681396982099054119856472659634667388804455995326763630242782328359532852174178215903700282711160720957880422322341867177529337887247010830150954773677543444110225494210752320380401507299765717933022990583412271895792046029857406196709299965742295624733788154170560852144041417908742199159361923405545040111001231885190195022787247886725808313082205460223022611269363622311747897229004667132073511481228950681352138754483877785976387167521157421005997735413286231259626874375157538231792286676834802423110500513999157323460581242162410856329166179934710702547367817275144434447896390993701170923763982336923142706937768036645246369594503739798480678717144279762354151196182661641221132292509474057722637392250870541465135619747961862731598817010192309276607886489250323494566932397379747370799127483216291453408430236110106056306386617362267767023121726770214327939951166003863730134133643931866657205926017079789654310784084780164493250072737716423693315691833305263109832240725184529534559845783146251076041706302181214732132670354429589350733185733801500307238002945651790631907202022356623605384087432204429674876372894890713531150567929327909912791381227898436992439797760310350435834039133673760201671648418299868113578099472325566609944797142097570838495911270128510312240418563323172779264718431003711275897166894626906493425048461193131096521708301776946100172323312141329044657172890838922090340048516912885199326678386421854887713104878015356879911344597215152718436604634983379774667346147360031008091826197767429351661523992664422797830269787930002100596867493753855267722227302965097675128065802763976250787521281087057215549251243141564221580812974830354624010149796228120725462911715711718020796538665056170328706477848764742848706729993462279124558464502689022212050963669428731236511157441444415440479309378962494960378057896037632873832597773553959682439237678587342974127276838553912610803837051099619288941452856398196784663155752268652443305874030102273465960044504330275001969910433897849478598903016942899834393943320506797389389416560797752553143544619355865853865056889138774859865706948188784764558070243314901165278877651421161028771138932242466093240165899030631261424527723555061320918966962227539545520788603270574943950854432625832819856851152655672145897171570790845449323838435853498246238433482923704877642191816760386956916593272864555757399951237616776632430772016951555719496003022416950826011912534701110594258378761874528376506711943975774286390507647581568448204093347590247101767692645770598257210436647618194720283297559373468316527474100639777952876096293145459584269696474369028394164823944402425197368935648869378716773355420854309443899043965115755063077559778722703098649097219563391881188980185445473384138489219078831366112895197105491434101663934391561784479341728439848488043144171126592167874826503608550160835191946158945703876751158513023677749092081031604148766479815607892065535345657943411905432994163852198163235828495298896789599456790202395825302220468640260635349869795508009129574011251362654025808693388397798994972859920743505106557407485800378509116271931311297379466827373849919669465526852585204150986998368253797303219593321817097819651462507044083719878906331802701533346282044103901090382667199166249919755883096161225600985907495685113285121934653311773051783429918342062545820159034862401371939774231208039248100262049816864803520898110430145534993538694477883099254603976649828265780347924630389910345200505489512665200148714714121403802713845723014675773952301761044316952650221297041590953809688555513765470032958686259640139515376378413736200290982508504116297124931968993763415533143705822221728594570794556242725046443270433980138338662677878388026178491001123955106217016178521749488113812207438853449848789242521444760683156396986399823734628192252525587684547592383889953144013262711367475831588024179813607888270531902772697008110674050161451718331944468277731186009115188017560224797821823923501020464520422468344160890769662294108394965774277671838224791931034126167393142739353470015054668454621187256583140658464180668044813615928021316386582531841099348031392205664341598425749132608757649774470507256654437865864580839388673568599152096319413198006908119521766683815307870835809769060439147885606652114726129704917080100113810367060012233987898193483312144511096605283280286646692482886844277609773630544325791946246436070537948901249013462431632008988326020659145794843151109178687641152643998660528616788104493528077389539104388649299673420603472786511496715654391959979496556089025103852213591810016492725120762822106486948287915537014216335874804557135253820842213462530156509474479187067960548868817834992863591003244703065414629844625609370573190262442648502194431309584920670613504361322234937533793643820408545473890835528015066803587248722723931428792281391219509691979834036026210259704113065612598239614849040439074287145033262999339386026130794074512674363057817079811013136334711715460806349088993907181884207441330557260188038790644751567119280819662097825275860052476497200311962100224455874152348097923221196033177314924555687202115062776278259536042073814842871916021445269717003686023068986831568550362944387034925421941354751119520109841322926681337829340960106343659356915274490840172131987899618269939201084583360032666343914354111802947318013971467240847637604414574251591589769387749898914190230475462876512967288781052271996311725301450892959086002260036748057052591369121419190841992927522002694269982496368563793759583817749757067171206141694088733277209209383536429352214123735954954694907389075990017284262300985989071709389417117593712266999496943782268544414211105760709179518067130100877554089937890214197720738563572602163727747910041989159969444156737502862833968744542720015713226050526871016066505238941657791733883191159076060940044598598436528862142356724790374308518657368094290476327130117177662386153530069485325774201731612332182971222918777003406355007635903498340045121916511522379783044888717607252663320208944655448056250218426823369267638487896777952772054082431424783874680054726451428746690808992752439544381004480975869125148301205839985040721298476534430788271760689926105936490437941828921326837363029453419058746548788962913663398598657243716817416322289513627834793313081573758513245439684550894965040787404311351085020227062532223777682292585913516089375655020426342688337769264805409902037191939553399117003725419036059102479844984983307549310494389095770425216192614179078438988632242510269561209613560803714056347971923610123302474781164668787608124584574857672280817387952002189422178990295444923588372943802261484474120480545794035650105894343342786413984962773361769875715226693515270852645201402849651948630649666393814452436019702582858129378933530075511085476562594655079998989263847083813854641603392190834338603412131276283163627604723754340447623365921568921694979277483129862425155205785053032718711371149799736732661732259379854981530265867064760737951312236494712617316100015889227972968036994524621797334119751357534124239675417564291115738187132488955399312275086694595342166259821362309458697095713395951186110401072482481853784129543428801604429910520474847604650652939279956509874222379630662337232341777676967818120981997904778718710746093365395957271576980170275444510889290851791491539074058429204817195721093221026622043582035374812454561848877944992078646959664765929345385068981935420348727871914060096871257402310696597842667551142075550265839198384834144125467194134343655815118901878844304602427849236530411174752410910556558971696161631254086958388697539765194352401901926300713965566232114620517689297612053742979999001828589978734798464915092147393321904084730560890568016840027699387335486695910022793635781031406443486322490013770933804360173834063350217578221898026694821053667668987760135800928951101513296303832192751601314688966199177460011506789695443454808421986404929938342785852222644574670242880955774881392776122042877735144037366259826300078095131862039855595542791240831292782421946381182582067833294394570141486698483634223296196131228360558064742199959147794789963085201762377370430577084436279951256148960821622486987040587946181891541986060665164914961067018494881766288014913109190021320904473631927172338017839142976848037995941070358200075773002716595025047326662769566847362205393451982776658116878445825854696714126007476043582836877626660748561696889407031816802522819738631640909509764090301139433473826143698206836559125943474878922911433224746076894069407868330260645836762270602336230361012934980938921597545289228251677944834369285582619921738011983427056954032285325006152558375739291854267545042858411711599877834790410916581844420063533334226991677032273158378371335089529889065699667475166590001981025060316959684198889245802017050687503976038561059156235924361610792103857676076763910420114414111233292823345269996509561397905810189483099122293716499270869706435154995636396940403654252666064599179443473238073842246905378909962603202863163558510512881017745300249674193920904781654113435331703143519906900351939817565209485091872743285492797519300920234647869892477897799075421507206640265337491880007642537533197462626861438622582495424479315781134520902784633061289826693110536657574637968698653919690121782125507804621104448656004862291893985416213924717422257466581245380886294215674252875100389921626969553982291277543383593124112169957115980109787175043464283068829039613310834549257269862543020351315782633704108592392119626578264271683055223381575957147966015661504437966543421979817845508946219556898769174044655124940817896226636727023813365004615452762003818163054321995358073057840829544162035577099925312111029553918841863294436434445183635360942527862850804045829185631555491624062219804739994625401257199877298388877314200974511559299256995184482254624165222747185938246277784614326209674299124949974614241774318106522504894975165433599459360524810553471463635701981921668846825876423361771297800644667545431308856053260196869907641344931854252476647557105656458360547969069670293568147872250473348673233399211696544921877552082708538242557614949936230707901545228327085039000992131241571001734395428700342460733414355935241397091969537460794695456631882834030338435658365854928484898605479604037423403546067029817681184988610275306138371797717890104187598553924555135466086889127817542866936389624935191090140215132473464025870733269008769400277739264323322255069880709454706460478074729320502137015341099123835622070223736515770612335421273509827696863120940966658583459937906414423397907171749260777892097406689365605765991868211171805266639438446573974217998667541598120884677362891680959219234487608582235457401523435645901973523807352371546956084840822027131332417157333330383652178586450983717525914272176929517221605099532026496689117156947368759432322892535521820306332217441207752515327390558335071617858165401126647314041527770878188527529940901545733317351584189221669859012592824779344882828645671466384331675379819217101449035353916961769355866341117087855147960027296846521403931258872510308717776339887467951382805706960178527740451832092519531643695767445999794092142338336814894303244746744099456833961814587617157246578640325666847757359765966190221941683369277124383970009130224182840908403623812138369969053425750330586089304536035637465387082566583941165235252855848314659434748687226865882232707551667060815710857968060673380406370190937681684145186469549304113602983116610514118903882684765794619534279281484914901669514016019892092227778085474449232631535401643511556086452688254083094938105052660045466751577838153031054964493108254257322456081086128443341269653729887298647224787080746313319213327704172102478091140300646300335853094320176584149981594888628493614218542245399286552089159383241126609544649948069922374777731259211863770639215151916569388705695422631275393760581665318820905832267509733304601360506401934867022412932356783981347099132335015130702915352662303903454865251205164156266268849933699057263619416256370977506046103661983365997019664985615503454488849495937154294445573190807605874514860728054292929306734006048256679119864780200086476169226115114895447832709035308526968926377178046201924102223862346910867617073239140674828763929328494414222923750132321744516948839108698090376879919362025448634658179764386602872239909511689700004917361429151706213721521119358044045318116388716114347039073299781020952649261686945015741225172019809683220639919739403630327473976864557458523924759892485739514132066704540599985590115205932083149645887890907834829624880470079761830194415947140231127115445146790427800798635725675116308981362799587717553057178438933697842090246105993638157030409566653616679138512497050713211919362743001121791486749996833012284186026627390092443810525620540193266575820583939017932943983474551628089016770733459894825030775035379168509488905322986798629451741605006934940827564245247068108785505334237932734321805970450105834032348695454168495202071443879686078140510306168108732255656081102074097971384394657466716709663705628426388743922954168269025851458794276899716521526996443865550132495240866011459596910759431011331904771575441939235050290741298910190150422698101376834076256700713189047013131976909802079265373552244102039308926835542278591853761888682057279987567640513770449920117951600161020595345454967744035890083063731337738853377283410918046447254972719774113900351390296797168645177073828886290652334092546585798884481187071959145718925380043923258132645036477316367602869056315190774106939034465377286752569141520042604976326509367242938223100514630286064361645264009704275169312420648261938128813203695415826932483465765919502230508029768306180997170176265177489430546485110472204311493216297667837264213004486625483687109026425718777422729389303502226229825091820337329316659105270069418931075631285853429788372976191361494986823382443098292124517038692058069696498068971829746564124613167193255520452624271083721276957350162002922712103250037832915731421593635942862223997742970998145693648113494959738804571889474528916605571378298081151482441146899098784233188519993329442723879682778020924154609694027004550711993294358630337004640114754994701068274537909870504955260835040732431348310560893268016741138503094152415705643672275923733507308628345288940143594231951635853136983524396126789392753658868554674593732574173378994143833714794657667665317481359941915028205150698348406464345237715683368434441370290040324113191371264818161817395333251914337615440458535637373123122099099607558791366727844871914327674142258440218512931954692142259472076430228947354378489862668528402200488028253164286180145180191065390745713827714164012203250033877891037822147152205012912528766417962665953679987436425168863542782377744665240750545573836171404134654691670032737703027734430642686885563784751133856947051090081279014181151636379758068483939489249754257623405096940065474624184086647959924594883077754637316392451110542533557401253791394323425303685347956104392955596654805477417820894243864122390717002841382042600040260193362022528685038863103013513198637623285302101842184251804675343340739104681008138408295028535761879676038352304503885491078918783289053874778645033667068125261462115291762138100947450964381068221889819340078773555389599176489460656174414878847372358177758323764260716033238221022402627033320724249633046173590594107063207386953047353191597671239340394215155825708859468505874410830746844619393111889071151420375252841043928741376929531163442001988578173221976455393729382380549735865618926985559415994877934544069234083822495285539250014980723948212296656589073118462769793573048396155122532492763832354209988049880780125983970460259279011174365005663745392676666981575122966642033925892551105369578527003533371154281011585348557528363774585260452829631574006361681443153161092349688755962219372498705560465975057037141150322012879769001776935451217632936435500772325847636769432258651361822442324382580713221640357880837262763857181001402377911907404101376825272394624577242765717290784575822125748413290182384807685276083834996562520942305321982020584220917732309703800618409100731181348480325453745968722823776540694326439571061418794115141086396073928143744234844711223538738666342421506450369209866498667243732746179144811845741927224483872913540936077446733499580112623036660528131862222944267642668885132746382451132646538444762490214816928720577588420126101239543924783524440097248338656774135666070147426352024451993110840417486427432071123804753453461622505784966052309604364602842256008757256963277532385180301988698162329883660040691636336723740197835779813954527473489060124411484104826915402876039619246240664081412815748753839772930258069483335727793657585404485099421159607351142310488610117792255965239401297515944307418936279604052126007313970749707459097495855070387949480648676696989100567572434479337019244593720496246068880968131322312947047251161289569502580884162563372590528027224884649653001982123062869443439732033883070786956902160965241293431592269663103181354828433786018311014613571269852136225550587771428866281942597134021292465173748959852279490522276809396523903719919383097743963900660177674689777776362483496318656979972289804739332604609955992645688104920854275355862776589596020641371568651378026290276722844651012486658657774715452408226198979460257761014029779244463849959057957500259052794715290303524849068228159562719209938021052571547175954334287225622874390795412632742255875725532020425696911482449539637932911730522652229303252958133302639673246710724617265049619189486310178338562284951938553541339315763043953495671652582211657808515901655356430464502437276098176794496328466002599403899186253229082158834637011064195129609323700830232803263207121802387430534367743556885823641707222727015072065555998088113038019827776122099511013162692654144879806730784283068266708978164174206401522907143102480564918727041634022737515067797846914094098020409582715829669140416403562824646963735166333227666290895925515020710876921490099345630697024376412668426453671844378550220027786693446356173273217341988873066323681898263482554091296713585500855516534034627431372431328360575938858990156553289551165614344880189638103632249496675937643179601527421082981341288790697208098905528466333834707813463577241854628606678570888933358730573860938004513037536084798784560283009059655383125155261964009750919739246499269831590843920480858885405013877361376083434976043487934135313880516539459321789407402002011821685917218746520097864410374468738938660439857679294865337467277711074000266806699625755051934046968820130780081760535924302584995787834550534836511047908259558141226117575135757042925689917435658436909322257309147791779329444546441340793453258468660346714243407897559332098714110707528989403615955837256240033594549042090278423063319773436361953870468707775946140529873782086108725471254217163531394955055726339911638784904906000032497304150611581825811429210491673592955417864573282278312135837703567653133372225717291291450133013414805512025772086660858839681381857976939092252244203475266969000144207719752465730057275583606737007385164492776924971465830447593987223563599670129263729677795720213874819257781810434154081795372863659496631581622899424738702980600740936223953397413210367460933143361566629983716569111138880364427406393070960677069322128208928714669821873374581465160115217297190324040842362895360480772924358177769867445328976085264844471484188581493759734670691253399823564405134447958164044619606919826774698830256133319103758110847202639304788883309097989693922904849985437643840772996285525278220057962683171335678551266795342818902517091997401304503665529151616779741877654535352460320687711018021691609743549436693276737894039611912331283493717417792208637425015645549285470162156015221499835728141505925000139162959535974500717099528147712205384734853840195301336742869149039039287364070438361061165371476410479590110208007229476637303266626952494496791566667714433416502695251635866683964734621706894422204669085878758412278959828135939467530471967527887557688804440171797004566060657846811509498710901696467925563159751774789515449825748008071162007498635631529093591153898166487740737158172290829394234445839160859355123653306217751820784602187383528939550037099665546035541938947534491887642233243125481691471529675494903637272723444806445293480596787269224648372655525516793585242617088629936098446100639748473610611013916423438317035778248746300163920788404068543364071958322453489280327835630334754286140771976949293412634447292405686583357026538987098562507081490123524183924787387097279589667110468969878394464960616354327201392750011885878977940064049517726871296432637660416657165682242691000992294671543107376235874334871683961511339136398071910018255692915854924558418327248910635911733020289916198720722033307480043645034005030054514295091072551293238118707084965771414046797405342838759519508304397268466483043155941343511115396602229593510150638057719552976072247807802180228832943268216831681207901802477621031540871596412948269477971012770330346574308420393455031303356443225395838637966530166676814635751303513181790065335179266466771758908912013249434491636760899460055009173132114305941840204320151272612730463010588277920444684833847450399732574766827565650355477786692783697260033232124619322229660039918400737065012696069365342193148784299401807287944886888488502880393042898033757504263885773556721413296807553726108719775280979807084646840812129315751233027688703356368618493191925683746638303847494846051422681904652995050952959788393908836319917643150196134938577831258905412356994048916514261419665805373187885048762956308659146916815879551091460448904473003595701705907915599765248165043786389602872383844993880322347429637651175033331773017886284062298947751816474084272897828404936311223335416675724805955964432825255471249357803513092166613002639999034267663509590684375447065010011358875284807204932426569451769089803544636709463348393979878630150790308946683679022484367240155065367193015554845320085797489717371417603402724520444644674407433290517167420149455436483489917227817620209668686901978232249813759297425692102606283998466659282387945994833511981335657775565800501800775225189411831363301512363688310085576927120616150716848087756944231507713654331128543735666469441170271284696390359909280068020605180168299812962268983760172985551609824314805577990726973447383777456294049672153527635033240616643255306198281740298418029107049836691977031224941340903612770079758160047480298936294966828281949682090775927830622713123580973158787415997062556852854545298012533291596235313042326405301631938841066222150104003897422228925126082251850510553795842663933839081954942611336317638340468183889070791374343263938558276506813995918375582963563049154668632544607748705435976498317504009402460021076344987774060989839863447769857364043223650572692988344910060189674414512106587542342998270120495891647826685953344251464428437964448949522131990463102504183421575632997054426863564700816146526135802441460226389888012346143645586977102306202805523259031220676504870703484143427894995622504893921718649254321250896583214685440864094263371240338189204751459061575348470215952626955793804637901084146254348488514340468693040099573137253780586795896184764737015870661847825997606046262833709805171699071222429494667870328178175361690856914921382193473034694698398060467596004456744608155783002885520011472061486708870189797355949323832293843487577142399126209964995051355274476652182110037380709381447823186663505842341926777481042372348204129155093941458971841025295487608488996177357816022532712521786688217495718981465348884248467065519415346400371329587262481185941992212420750594214276136565907593968555312007902633631565908722850686587034532954377185776356234356146376216920325156703091778229661865314039758053571677994564201009896183202268353235131931375834570929096514733049422592280704733085202623639932554667540881716114135193169668594225341155489090275826553004552831302012011407057854136967426500589355720791756644757564787746719441990595709640514502654258063082811050828074221677922707155114422384373392416933310268834772137041219269401708442782730206353982542293994334878780199054319620611597233027467403423433041927949418799097990807855679442464228916635257153905621541863842216946061215000142953984070925256543393961093844120116508383566894932743980638545948793888105073534654523745916320809028782668625288514871261756708530816761294269216799711843713493782290601700776646599398432972336591369948054076017837420241544510875440169105771428727542419331599847853182034305393616288986628784671894652838758647402016524354966975504656635446027158538725487252844587392067789518360409961585642549653098372360220539774831494568525682872747690529220512031797501481236292185610728331687032576591775602657408819017453258183540387341505366945871237301378129043414500881615799595992017877231124694360805031396937982117304188368535629447423742936618251984705086194159613269720755020962252220695896369833377885372730016859583305051773275226469164129399912461508018788473785202128936048007008989539912929234879120527854706938288353706524520481494370859351936497343804319970988207892845540515354532077112926431866020688090777401395250505519117377515793210160572497790858078291727456012607371503410575071453574774622531314717403525627761757347789117618702792718878061482210823502796229600908745008828069413577608128037199538646478844242654921872029395102080552388775180918797762174630681669295927371655637131648615214382007791251212207671784422134772738033672108666829217072696085932859905780082309769121528549976006486220378346580322280890612553882906416303456605246272147353150433218660898075099827483321378064743431389009026734241978009558970616089581800387144783611929420212380539371512790720179418171989424036107903814309320987177162133034714868761887032268664294063680872562573990857307094525140760898424919642222437799994621432629305311046541897033539544056967843789336782332120587528742277432375939672846224828270558195385168323671280586433297103667543611931209207308700381571258080982348466575672474655641623448867363788995583719983680697601274312025858667438772206571423374411443101613593587499115013795523452976195729454348296894734961216057443621534870192480211950352159005080229771552062783795251811175517006455358444604313616142978910205425529755880254858244008985515411304338215496378111470423930592937392797582334199937736856034637117183288485217858552225693282416295055250181397173385022391256280454102217865227674727339451750528347974734572533260696380077113194775941531082699912132773231963287357248710005209001990939883664476516629398229388172234662023895603391851343408324847663480605989007381714944892431108894478631762411557704608489226342728733910402827139572378627032437773941290660186494436678794145555079626473571686593804247586381087428686298248658340122942916894681476947237611365331167430489559965547851266538190621437380789207696012877111828904398355096528919861224974326217611530764663414651132261878011058326215359404815393203985751841895841469074691862343521527079953175077779626887324102137392507280192259492894224189348982922880787961359214082408319451460719013946830123257421096663544768575603587765929292047326667793950761760465000051978298508094227182735616027226474430253351583110989647563226351483326303712102951955370300039423284146333486643740636632439746789066753715769768852297929281660937735239138827694610913692380427625784199670353955098574926024488441404620532738524525834072182606293763084303495706274105482914386626298567078552641407743312189662291137928709340614058321502498255863490601990798966823637475240711993271007153046217998136443373516911071545124954583311399364492347074341075342392696341063925225114690916606239692772678572844900847254048278213368742375720860405626219098639253286471746933740907734232921562158699832216180725112146612141405509716562850297537687705478215133542133523028453341491647791727408252094255354723688086758013816284978916116220081923965947196988938835136735497485389032256951565225241733942861245469055496428954464061233084535768491384365277209503640937331783611276025117810439020743073371532893860341905108527825419065969387821405527215090922619612015277689260058958474191371396144941565612665152260851724137313435705801471077382624288236877690016342323951334235389578117147056610680367084474831374294116941149865997478454005366889303208014671693027153719762141908046549101030462617934544453217142748339928881225835193394076264940395751027203431368421767394678242103635831393967909959248258401299564606108144054958493916711890051833083551442173120426988135331415063848535705652349613396224189728625966439962912068931872867623554567215127703796079488972167300022119487731419588513252283983269983673070899704045841826220008485537652084359742562529440801641960729163414559042207152526069033827934993598529749750815193575130316197919827002241182697748529482236425883084473236782729972636726276584602079726607416940285782205843736161886445793449529600988752014082195071087418595332839926679960629663231294677574123899892346247925246596034996817238948764929486972502584636954054583684042657802434986335725373681184285478768713739528486229661229313020551945824285849012384629429870796127222199491880610250955202293411292992006421179066210969260720188027881140469629498381205185496725882210247179472172538327741281239338846592119082969180741092361117044343887918530072243056900327402890242340811706260265522598933669226974642840533107069357792188425361944985415129959130253914230977767479306814034120408712218829872821704238861650289742524828412934857940488395827794576385506025011963101277672484506691357994141063911849901337672787517856096748965037256359492595291153317693025967191996885196127164226864172091572772242089213011963765378060348242693345060796965370844910909985905308504190958032513307202158146138206529681742002920245174414117968187982131345090121345189521742575521175415708274489420234388365930239548034798355569876597988397062558788817964384290083289844845131257211234493349655430333403330433422753376524779543159490364594459578672488771870094217727108709332620225818327003595982053638019891693206393047387824060367785438780359197246178686972712346192651049433793945132921124968757199151350007229356703066241191488031665293526753200894061069545620779598393664363806873756776958702186733708193770421549145410742955666010967756219540045890927274075708917590706550496081256293348327960891592955890423016221908006631244262827920411159905141700049972141510697580168317759603534063537021664711646577876850111098409297636624746689155786120710101160861097361554762170740019426195581814247746130515408526572178924593649313057046457934014660183216889415475018962598456230923330162154875829280635002690571360119399066832530659863069453133670967242623533818321000114057024628436028651856901405422897267642196526747966532418992254199002905558602996132902567985319922061754990534469123808069681956993076326274718753385971198350290895852961868527130652315319997376041832556366218948759117661709594439770342828187935167894662920274938383954585028363861456577449317397583602350921334414968503099998513545220280362376002321712765617596332167240855258222316017959173665350512423748223271333259124966864666463690169254802207607081824648549279955527691960149084706041759877492299739903638220358327505134724391676291996366388978464231200294545188012129465040083773214876400926941789795643384226021754715983433663558476693557207728080366550570339079673498233632989203567283665494386601808045146647439605998797408055691540510053208663614141943052763294071576873309655972071467898716186937795627885129420270280501244291197423117144745949925011036812475467878604899745269199854050025664712712542454140986544133489655379990506998499832491715939988605266755042613645937515866004078884590223021840589095812292758005592484257549540234006360214261938518984952064905065363252480008928191039765640577197753214709069800565648001061345328861692561418260714492836736735136641125250226675381937282160816429371720278868878237523574177172788315596908480280199196672300190422316490343899435798112170191985410659721679367285519814333323983215123645987508523711055123636072459678154816721399104123482244005501760957643475455860118908980534799246993623694135513601624894181703209428135972510132348548084238841564592476191489775454591956128758517140303150367153097936740404069519178443864366400516177200857526446823719068241438565444063399278719716105529984008058764155312279110153175274529281718043246721274318854399121471458783853509427330842668624128508116371313973439097034658848846154666588494535004897599238082731150842492942806840404662350735756426222278222126075301503970613792713724265100917122038984128243362671700191115917439392702531128743347201076741085464058546193982376026615599177526325101926548046462507627302760700685205209261392202731215842709446505796193448315999029215086171868004646363266427517997376965977200877302388320935405978090645475464749319980943617467084561291607581792729470454572436244823785903506636094249504103314824034834094761880447067920928259466980957032164214691848689370241091880487276911713985740927946423320020365894754416198274654915326691478065871082161965119616069642288249672970178783656542851355874493367647422017329434244824025675613275462312194899483326617387693441694204129170430517986623897286442011732009614094417104587285094627779947735143507766682903002186356513327400548237154567791125681330593454563532756909261310027523280937409079776078075904880318288799766029110387508931153305037199664654106579937728738832153684356499574680148809846549480925454361490893333188777911408955944892708287667981248581608065371199652822680050581283909235911334103775160952579722364612239895478822409762320598208827873994350726286959403956678964064598377780515363992971203807144759930921241771068228639079684463050089527987918485321025112882748824865437260928524402145324661043649958065080674018736427693318317899436184353346393915253110245367342380401472185110486621355760935525063041818730423017449920185815890148877457519371632426878470917649936627338488740530187602418443959561484865399833361027483507077879534619558848614169590824640765682913587559779120914365870115505570813750843468407283818510315766517844297300879931698796983848272361123712302930137589439175851791837788298111553637184190384891857243437878767052096744063087112024513115791341422524275841039079110062663842941390568077378904728620968228358202476289427329852026351796669472501379444341619998113510936125630140332270850748946388736673277675544114976098645827985916084039820994070072530274430745180977981435931980451286149111368623950995508642283252932251491007965954191319453046451048250070472359362230876932759249871388852012628976061924329523059844885183610089211452114193236256831393783613806915618406699411453700951899524934149808882088081291509683385558104834414396958363992535950352384983221404669923080478004919561158002516426779629798503811972107244453734723872637046132635866124484714884631160517720276876542064306744489567792187588125514014510973243142703206411935021731896601628992117617757185146617708796322484319318575861684024102392464791818761273331208669761480007167594345623929566739503346950307527939905713695756429335520855743241338191742913098750258750026565537271658181825607517931176132617168334301400436812951817194283254053529836364944980252195452365980779669246410208737627807359035595085963759969560441134017280862256029085327655175882799155407943487891970548472375718633033887630357600426168665870779175046392680039432398627360066505978812832548277001767401796982120425738647905703662498918569956854122835386886248318717686999371846580005955298376332888176879060560894687557530233260080778300422682374234360943712610721053256893693161566188494548257621389246836676909754650159621928738315320331219833394611047626643769875001185012986519014140766493170966304177532640964819171185827274911310251394296898070029824156003812890495296820004870694027793966343850171739337846938152762793470935793800040419938713206307468004586284402483639731360623852489653903551454578321383854254160681640446161259328900447709644788897744719454218610846704942130325598971562433046733183072200723002894917501196515223128116736504333664986294636951401110073976208386920417830661479544622221727783303142820669757797937240523897762489422499472179694559701666371989021636319707319102922054957190619224613998872435936569927437334147972142416673536536816351142177466026953265508230577551071145230200027267789265354838756520223451432045583513074285251151118815621412884440940293377947452742916817151141201569455378343266089769931787413185184948903789790850301297446528104362883873116810745761137566289167358005762992197993017330056519842416449861811787648673758934943653178478956593502502920122487411370454282049567140463189854097931852488388162028529706726338057792797073414843087991489787079801372654516700051560713134105866653129239019400654776753846511430524836636703371377939617854056290418911590431098193568559164364619790240938930919591696735286517696192803949436724742451402945668066496022945390696924869352342468549368230534423645738632386247617061706085584520507969508461943227454573376944786300389534199299663341970695424813379504873309412850380138182995470238099053285617882812077469091755384732139629545587534918964334257947343540676735223892069110447421986352396963899223631700019487627485192769834959703806876543102895009836522337981315622501434809213195182661893216070620318958683773962579043511599056060006497294163284847481232009759748029403890601682317177181325591554535079536736928904936096111425766305336473473538384836501981844530731631369130112521533450587041605371547132539665652266685041722582305313484422166535096286897130520378567669731578986007750230283498625349626565469198645536538033947292175987420846010143506161203553145885304473553552241871570404553791906818046472600053403051202053464043703413682106561526726454712109373258412945043117347194613828062086001579062644983636354326267649206062069054451632842138563563128884448810116093601565668480097468678453159327985262939560319496884870252559365351105001945037363135473019905741055811357187659123120410191972444032747476966116969462458954821688941372549067326495522635576945107650685755698628707243606918843813532771893221788789449915882180486730546307584650110860894055880488200661717165957697744030227671122214968395271139273488006274522323307346132405520071036328840993857207714937729664251834936683521869812479778769589431562464096491638885899274449882727967248930270224220379213542915186008941469115203903712956200151007399543221579986901513826018171771546561080816861865631773275806084749764842961269331036609417647497547729991348285137247660428225845527395191445432885949028994291617297263721223567087330039724179188819656555404870023296677283862709247098104448865900893204247993883226831218840717665119242320696057439713830141246055661140485232179699166171306215358967444771944659067146038014848698400005687257093433414355441440517166527120422206256128844860437463674861852514795573957190059100983969719461649322299235265463056766068459122483715160635639905012995868007050359990104666174087291953588481230537545330808593750231690461123929133127346220393185978575169994486205562310905720337951646786789768949799906019028287860696252107046938414313891365161993541061140563672283940596588953342316921405362161788642243575229961241552270797823056520034841417048820510600421596642947027460713552954714282136291087383981604105016627891974922490573838119184946139725994611439286189412731356879715256653892517844414891254267806783104663690374320247735064468643174413344777179208516561514152997899240371263340326574575346324900577143904999554621931715627552796366582763148951310720025486248793161167083208403117101395446751778164443664189690133358881084710582536625680908781829783918422825704141169697876098924557100956585084471324117271856583901701540495014271640483414471128995669750318633285155003703194510154039930830697459847577121558388225097677731381859257602083582234335285139690076875409179368455799946404840006913150606622754580939130948937203034871281167291699187341382750958366958172779196684345444709294568347703739235157447142647104716238755192544316449838540951519340806673452954074669191732047148365550328336989447987171288977943220066423829306883634521841625028630065945984411536101733305011232894586121749260546239141114524167796422345191617663328444053188059260064442106331598117278137019534845882052853514510890256155852663834125466803291638664656451794651897528272677753369894757109813288551368429438772536536064925690312443494567711855345043427848033966848097009487064145495273745430316121930934048962156201974220975830281895645188734236621786502870966533875648364585640189412069021992866496894095811736654493205955636359653952145667059014273607641432521258459212584000413697206489734075621126279856741263449478127934646126871873027545383965753240573626370636226627645686613926010274087139322575340008718582767011947041731993611028566204886615200330386736161857032378027862141968114900864817003549267543980457869376320888202460505268920151912258427767395553758595204170258828609672598238620838291505308033470363399046603863046837511154777741616185694909580080103996643094686544806550457281594493212360730460017591075041233900745288680837182472534661584210492508340320560040093527748521655969681350464075923666948724080692703782869170329046776855974117787913231048306270872246892609759520397847542911398109129185330883618892898898540050757357369001295017717756545104766517745477386016914487085981740105005190954034208400037574203855335869631127308926298153748213461216780447227389908211699310235845733176844358390456717086910153508025877597926696783823717111727749744997855127738895778529081592495480746214815863143501915476897405222085111060112017699945491316049382650018233636591112731330016027084671851788790203018790626062871710331444188957655412591848218566605820152948158910891219127520443814275658753363352297655713010692328438428186503655772679062812989140093743075736006582883343834724441250965698131052452248138302828305791946012093940523602697713953111213423275968726015970925064910116693950172493798400337426638919432868241222030006312789881102400150714989430953363657462928760483870039856554377354099452041781407439158170201463606806667738463730486403749827806338613721221868147921006284719402120778200007574305896617883475681735728338899405104537774443658350330492980923630507015230225593617997619006422931325571672398446893341355014460749686418423932729941128275879607539248977154236704014738469268972194643708154357114677113564091411124478876886170952994565847957389119913868713831455395700240973433460048894735285119806335369791060844120241293898815111121300038216860274556395044928655396362574004483680512980613039400660407170034409780947334687355928820987682575236374769992482582995283475098708352729925030414565526212057524404985407803896985678861518404982441646334163179727610059135561811195416606849077749226347715215056394128410097055595650825430029720584220984460169944666561340736600472119866068474926868220080530666337587613585202664095117983908482882424191474303777679487579823894373918678311398366780742040153265686739981831181324454886090574220515364842296830554900986034255335061169314854167217011894166407372171838204698493727488289673042766629132631415782009015421940764551048615447781446426230216699662835300092494536455505675877290707705084118876534276696513347126652716854181654610801670673439022889368002116300065475027598948078554883379449628053617048772094612929711743530671526544142061964878511469798992910467149991589284825659131144600959779637689886811951008474881954417907896182343059180930010211729867765692165058148796818817358027305956875515499380493045274950903205469487562260780539026310099003860217232436705449214384790795488780837252613641554380804805945380401365987932211384120652554810947083323048250607697098955141990916477755583170428155826441256264307564151978641338507652585535585946833300152579518873785967970250030287875407505562031053787655655261104645274859695867564321319033826370302131001320300017386870188725191022703033146116156965070038597421985672846277184599511728271360102309464865570357458139936748285016793110576671589589920222360121145210723473628320818119199439918055593368438719411282696612091720149994342166947640470055338484808509453990458227551219580877306995070610824918543083918016384572258468737161409706741355388344372099887827423697454779217470755885765485477353816169443269930312869187805758130800111079849035258072120538553339788548613922293184027202977665553698530248023947385321110363290053221964713858241733854401766414411490783025875831216098680163711829397273281388139487396526380414558594979519892013198795161712681763871113197931204943593107345302924742763273787915753521405207151461653623954576342412804408800159761308665898074965134209399586728484056359060505706194525636181548087184305660923591103063276086733035307354989145141261504914831542044948029903139441148169789874616678245505066028081855287774507738691264714110070441803105858740778165903969285798755427762679319228731500588344742456891929824354191836441851566371984995007486996673162336496967130609481356130144276146669448587814388742774446816745092422395145942827408642321706939917732160090294278601978022475869640795349012177310291649250122335167485209993181530007992966783659159445800046989689590617981073557731432523072826383859625407329376460107191073816035508523587773826409131805989212643226012667048762871512769303799714584700221890598466711249804835712074647944556475507486323764104301534774341477659549208030444005223597760632162455355696480453935238887920382409481805047844046826057219111781255303915106111372862054976456190115491144245324869362205412097398790498134345767401855911246711076653013007284013185615084828542274021833213840426469321520462716806420537765304702368474289758839794326610502399606133519996500952931985713666257738286906712018775227222302096350844144182148333361192383740872570986746288353576935925137045291936635402793081706249398994735372341464430915617904383942964052311506290942872784909145622338325837183561442168994641310335109339080351721359174461195695361815877812234128409938681092196053379557939336601589078796391409592846866759489703590221988277330098091147971375484360205099901235474731331683193869214242168475534762767123927798506383127017288416510312177746006726166940290700925603670781585173051442756210733440928070788036497606335377906050328846720721375224856324450071413982726623129458173264470229879235702755873317771693864263657218199183812882217054926589029619125298243129905540129780338073150728014753454907978070935052746253009475044356786147483722909549288053476911988170981196953090190008171649331140439293446108877551141898290618775518371413298523431107547538112815687684198397663582237091681514615077462972586636972931820337376012153549869150573526976583921353675308735366419257386177618483642036413540351075470241550228251507092288863431487070037213120535753892496430259707449996217692572881913794355460538961937307791074929528003983702487506830829344288216164611733031357316039230393222286336830190952015288139831673304173678897185492977592330304170634402393406522503576082146715533234503307960614129375204599567063840155660205647203463509414355081579143328395739273714848335074612407561221638394849221745083848148671456651534881920335200990281924118456884212953745576291911151379972129245843908396008220678607770457854366558389222681342840522710107747066437159672201511593365258450947844770918511175597145865031469968531802341155284242052491090844965025837723091824283714796663617093406931989324115618093067559046041254944609080365587937482148243489730012166317873045394403700887261187791882932521457783812480984818330652946869202565746687350366417750510045414771927499085602792280396989888127332165329533844750506789782325839082378296702616207244077942111991627631275342642602305866085693586977634666449385026649436803502704143265743984533553161348360397133043031317580468133801588831607376960838287746698013696346660475901081924454410832996997960815851965384452911578378049415018888848483383193072170538321659502692741615981930851048864163237756840776886531725447180612428068658321680909844661112075793215047638333935417275002251769636102736707614906936573931913905725725432183754415621054122517801690098169860409120786373925343614695274399357820669788962586910450909649184815461289825069540716252525522925705937132646768237793458500567528447362350904065451275132703174327217495967664479611422048440446324634021289043176903795019941065976148847463766155266569294983080913709674715922147565822788943618580179391304918169893518294602381801974222234335957098997258084081571018935437899725724722135651177605697025351010092903706409676157774290116153358109185314226788360347970369738145543000228061744533090823576135864724063349814529880470606753926611549544841866648899661385900214556675157120449870465586674561111279195313690798945443749751048401656552799711621655259874875665880228307983677074475786356549127634482389056338583036440069800604956127213762654166311331051073988380033390012349109564509631148514613113209303064252181812150442252427498199465553883740922894764432596172577466784404078547904931876161633023427121118390775438922137299295026917239664885168560519432201319349969179655139167311985306428495085965969172777577312669989627067005927025512567382682983480197334487962622728824250074737009646458185577728028259943564898487016733865947932695134636844602457205521304060610316152568575786232173831487132844990867857011212163752546864283768624767089879076105364818917015276717441044262657867589163047850057329394012475360831716664849825455605673734383273317090541809895918188020252792050402284644752634494127991417172634020403284079019428082519110447279044761929446212382629441208978975147194629746885839491339548605949687476306232863403601957700619601451926374170602461815062677855505305130433385805900432971673208999498936292340299293050582124782174090321070326887796284146266182835038129065997401919037567688451352627008053548893448392961730659053100347822231591640187686471176222083530676602765987291930211744848456983297031372257291783243938562477419286514701219274184490812381092865582642639774715242645591698455839651635876089073897894323522551863733814816140142382929291787273795062270456510502435698332467676120742415996900227361329807252011661391567191633643729187080072987980254583424217783711780231818061769720875725306156387814786263965792358819727784631420960374493267863247327568006726568377037339743252503357478937527234743330270491188039814407384936619568488359976828003354141494162728971428697841832033416550697913806924920428752284731449113967634756383215031391529435328251583045921110773315483049496623709994004385734613018116010650272384156079892686729071441220978204903137002791920688479062694954731476943490566314891020585383274834546879708549561748783099074099515009983069119696734849705725877409992631589091125560785662322889769359579889539996941607549399155806901130426357227615617563126999206346824101630080977706328901801822920026980670267248599690507240622165894815973163753881268691643404997499135981311865320188947291462976067290761084857847716761721814604698806383523388957312327417331953750484637478920317504207940830352065523981738631371851900710197198761128844076197371718233152107231271450101490868908848363880701459793446809265987491202791686764524782567493670843088319204891588941222319057460589385495235924196338195224888875651429029370716838415062515771282196143148077398578573737013324600899344021015499353064702160479031062889759685134367083589987135393424027195740858565929360932500777455479473021763454965279520537499518660737768919932835053108021489256054468053957593110991639901059527160067640692706439309758997327912131577758853566329665069931850821179348562362296181535042034543442470328367122991172851368167922455439532833312051404577507807314264006188178129029947588324158371330971795767384488333125723712364920062907931625434687595836225883387218902985818338856135104741295827001460954856701853733444343331936538246186508093187890604080264813755010276200625300029083712671477304976145215077643548777602510714560167048271039604833779055668481062446917850720524872662094099353710031733798316261956183822324872288193897499307801749519166565444919798305055581515939580154294150323494868566444286572940114097161419180581303888669942686389708443515538630312737269827306204133787689175349788957712551758228629985994184907892404030843926324574887485628824722188313538245825934009044840158316594473744607905259386042740726627129194090347460337083479263794547618693179187800366956318664499053711090186076849381780627413478633263567661332801431627345651811801206600160223391233635930495570478255617748408665355984512413264710835193095915679341340745668514999844725312183190154905689772248069298635687963062846354114793799573761415573923419638004938039642778607947341352999499623694373800754296196764650760902404204852006521176876390693768881329709646626836494857131347236672219167654438382093364370683429156025144069248685484648721206912086175628425906966690798732590443883792480330648084203310187049510879106525409625153385732846295978520005752398177535153314525368340289701880986492089645297038119904567317281546188321511205459773771172045085052406382512453481174426364957314703907461574105432915700745793014923288775559512879472336504129758380173413511371928618301195152798491150897224358625388095859913892831385356370404131429162770653349169639069403107145148024911561910654466356281594704910225336736101722246923590210605641949931953476039800594287738942108727337714501393696839615140720930820381310872851262784887189337542774905095962006814337133546855918062485586393625254668934181184871884067127456798595637982776786382471761163194703905764231201955402484323503985245416926767686862343412422882105487780155084971286405151181002864572901588408800118971640793037054668309964936207173528319231234589714210200508788878223690245355550754261033151141743856561371356182931680467171985508510562314562657286329796985918225644963170889922392055571605394898746000798360588135169353903772411133287655812493551985194446994777104689806122513023334820281358597036623347339467327366882079149442091768801840170841048349052478676708718707337969041239532463252455276487843662714815260446248358068886686847729303186936581297754883588903349429482566211155528780341853261596319767043407525705270552771138954678824291665790853813641411460305941892813910241654435856295520635883482520189035844733682235804568003005201916860823065329682310422025308181496418786208658025486096518858683702837588321172831397477793749823210501313061613293123128545421636590233265647797332104036119204731603907264789329013537701647157843606082559184603427064774089021681810658813937587868066240306137807759211962954309594521908817350850749914301742712223676441941521067649956053518334111152492426867173182045593343277823987373142277242328691689444736498637891255962349596112154051084314310276965906974794117185125331921554199964203769636400277979360021721738083363345623061921309969192254000431634881930517699689955068716517789630461459944333299342757676399809977813778585567946189074065593000458467135107171215091283698123856288062589924314102733589826813518960891976558759280002497693399759159935209101899793104706136607952892994983607479387605500525620265984618147241992667502525007156292135112173244498235354783294664078651851736449923720390947234531325245252332536425977535006405682360326676461963555385916296187358447801138693051848995415785391706944319687033915579136113500078347355925639888425627654051072129337159811120419403395791928605159850147971530738191989196449105708599001336350861511151504930943042503886272176919429745842176223185644105773316839776469029552766676334988867754641970797429910589551535495308653615678435380736932055216357643259333943133777129632827584328761308631194393944259155416099972320977234647197149603958621498025822292662716406761607734654615780098140142403320203293071666814318776153596965330220270135193426397070068295312030184838904090215693744716217697986283592826681765543131301325600161108338661489525071167982661642551915755360000512963885495419979196349429734328573301255746971977889482954988150864865374309400754044198331730789280899507246036640125610386572415813857416385230803260982181084854140650402800505581885685927201728074542657327404836633802978691839953577331108701870488232234184101423283282742461688771444646396628774310008416014753775431452816994240202077945125585053793564099792782916649634949302878691723532599682372195936721812212369275171099037977536413035990633969552668967475473989718653674229827052614317725397772108151028415548746274955274550832739534754187665830849664159786521577811656845439479218976970993828917212253963649900422284596434771104050581412667084186451391838195380972111554768161529864266435643224442465613120140099142969721112412151211275565784880120274611479316808116626014348612250353321682389454393153799671169994946110095194045869059563215329913585553140985403968373827230981081661196151379141001203374536115872646439484334758614532614153381314976753568930871982012489696976077190511956929975958769634722463802748743258171095722873276087168736010421782195685982842366457759782641229639606896776216680640299726428974804927247841097583923915154952469045926902560269667794561144302231190604454597407668814014375246747430585628069157517333431679529822303614633371880497118657879578362523890351619820675702083264225907468746359548570773323112656269896755689018700666437562374042518367862780438387759224277395914036486848360495946924427673478871821866430162379142492209465098716642950596016107393039404825249939797099945104326170514735834934029214836980733307910374605090664494620861286912194460188461124741875024952411174595429285508200317111742530344702898930274140505240008379288444307700003018174421117928516431354773279191956453362955246826272300598143284012357967836249532160262923804678770033832050625936077016943201780891023840765026668098680491804056406364846114731427906188778232822872941796759044537698175497397199057285528750147478081144792980639077405320786359152708563986035456200413816115170946594880314630554944264912556664536322458596103338152681640285307572157871278629677695954504658134762632688600065596272638634942738151291960633798185662889795061519145848960026274988703209880346570933114910767583083381968518861933106649355515018858457575748807867736155429065094610337959502609888698505315567659397491417342049774025799985218887247465572861378456923413726833762274679186123211323462404748768739129492065051682097199413166804780923860156826256981144550512748538091577982120647602746454035099971712437621750168583719157858451547741142235826509939971847821014108427002596879674774188551836778126452833332804239737401353210587000800367105040496093427712094195569315531566548883985557338479237681258406380070772958858966995572987762492577858564350419564119491174663334910505676224849117231725184552966291734831858768314801827448689700266050435906811637075985908862064038205937135973556661083709330140695497215893884166992621684161883305742556831944746389011902857121041295197260454573653259228501957094096452874431947095059844143953132126543800310447541665077464879260493094807539883825276139424596272458206762557497955516374020187195779881783970846831191641522545867404654905081388651151045940806771206382267872711410932892918057782901325017149604817706020181639855637966862737157751115606019619525187553180607926177108012592125425486356889786379398191711675898208304100262084479254803634407919457365110942867069122399775390175068313323561765482286885974591609737258799831789170264988121067416527727900049760719952749508387244958713569945499589440858598820543593454367545414715146865705930144182286215343260025716234146580957924457260734271926046075739250395833037683605366480882396958098530967535710534356580383684557258945685506397222707774589862652000458827479130969731998596800516867319911062525643114069519778689389933603533744349836409913084193793152806965193156954004000217154225640534474889080301323568697048457721121766979359538256746644729860726928694746354691268051908859905434177807867763717939162805797831680094664124855869426755636711449964767417812692580919775038895867591613556953380425293184235808928357300566915018258885074251996307157887736902892126906090769032518298240053512246461280227916704798785692993381191354358713582242082182552262836850193291071930999035673392868201517395976519353546242858546926394323762492830577406816266124016956830631065507975792747492225791000486780555535348811049611921113418676845401116138102516380660918827210800686508252101305928890672436757782050765872039349978342301200014572607657195717457595663788156891537723973208789933806324056387533978001357535477007769063550016169467503061122823266460848287026046668819172433371662216102800421993952386508640340156559806387089012934921657521110904325985362007205658467536817168615604748693838631054398366248636793920783529218929427274791891851985149501053914485468310154533519488467664716257144554434408426511189917879450169080192861454528766341677032142185672775487584136240857388148083021452889049731563895892432291288809889728305426001233276164036187238326875456189493213390878973364524542357190757847105395128364590132033539422477350238585685852848526457560755242543548554501570329007571692605627616510011937079995206669000793353565401772723794893770803092586606406317492250437980867457229021301464868447908743226116128718411813620118955108762950394518573591257105128474069415409995176529483416984988894210423372072269809428630453405698136286945161205822185156205652877034335399960848918841676686724678565811134196056102079485587936561026347567680070607777510772485781430793859712356041285798988506471947473988024271105190971690361610071102338823996359428011755888009716349005073899603403054680325950810798253474016496439310937960076167443512230794950172918766710168931104633830408650107487273682440483186316530759088569346716768350535067605904586635365501110041414143277927593669262994579121871984136008670253915993428405106209326799218207074259785959890478592061493600902915342114193508198746410770499534091000980101645061320647585672622921611059868945575027097847494379699817863723409557480905142391436806542382160327217976357225127650393008336256241983511157314609997682585715928175925300781258732415582068200983228691238345634027096072502363593096984689562781132633819678351248718766204043856809308951047674363730412547167595405984788227525474822587275993861845406496116612529796971090207561676136571065867817142423945191686874486909948329007379402461463927696167670047343353240552724264533644378818504940809666714165050830835454022397603541619527377122188475074939131410949968130772125554966372466925098714417424916233545381922756627879049916544795741403487708992653915393064306664525517142202115540546777374460761280402952660762540349138449042283354650285784967314388150967255787523802044829837453223558622873229429499471552082301365229388133200126231977734963061429945591448054628698852196620891402935986218632669077750693632465531699311009350415943121791037479211744080127501467242693277781931788087272628286530644374280976100058441103266063986042318792271763120342982605050918035167468213380808544191608731444858303216506803937354296691663532245228626224614527234406086120060680823174768603110547032931068039622648032221142015350982428170296981589224048828391813481775325244674508961596322525235048853655928548260468428382810835964228163718020862120114834381024775204051069490724042322247067719380989480488917682008083427087866300544510067491160668947511222583921187252026059928130498762852610974959557358495159859959064141396635054019815921011032635809920818695218731883289716491009433250144689098522885775827078230770174058256718890415108998446218381888980555730236028502578291202471540082140936179351934716635265376960781715963076209885670185855574110918714862789547018305883269138309115803900333086343247288292982381182426618573702507391754461747305571007899705546865749258086929842199621902384611506193605263925485357254874628636366147375336720812621134456090914947163507397111944414489522957510000319225818736819021601826552531728793916964532645869053297709835731855295599844445575780466882936640561666363098800531634521031754114643776296540567121724818022803207543033245824009387269243853727922878413566360348738490708075981840114075419307444732543958668955519874150681120570574555230492742277598048769671560125942491337416568273991544787369996180750468422275203012578836480103856335850345600686562232115107856987543929668495178742856663900967105707367343488065757096222268461459658759532536976540773142148383363557272389961572274669979673378983681410666108380235265880414141153509269497587250539316734004912265939754525320218245652097329182974343721610791869178683719388100945461164037831937861211679150313454172221965457530082290682268719588243722103507257062865858958242092063320167557266744710779830926928715126461881200822160484154492461733807952187256448368227892588768754488937377222279224668782768091760037990553918000185525653778215752508308957150304327304141756987490113965294646190353290099162831719307260195494711451918949476660151773314701980018127464322538491805634258104495251788180187956733843604921298691878040210832291764907276031015523511251912247483366423483259981259004794812733050529472013934749215567631959887954155554816150592856184049565902264985418223819959754673070964806128766491151651132223613308761831100420385591642478353353476205112296439680855101604917044526155150257905329726388211933635863049036879062321001465964484558883067805733865047711513281851369768392542005389854927893969933440320217638709179864318938644008187262927017258785117067264026752914772606702501256542473115567281418247480540682166942126916068943968878223524958625883775095190751977247039464420968867777418739867636180701882187860166441322282953192926977613293303601304150897675292498356978413219966820127430209788853933259908695630356971088374505261415831538004786930344015410148105218089338735639341790042896704394604884602840609983350945457250851403143759125982550631421992857705939580465828744827573476108292872625509188397802337763059508053522317218067240614702648311250622491578952930844397285331335633947465758383043235626360722494279468547708206376224488783752295522981346676050707879508566006198796709341459007732340516569819772876608653602429825052343791125240240758414872670345984497648947848692689188125685941828002907971873675743730007702893296784911222228515590530708096837155064380063104643744365072536405383619757348901513435765567540409301908960430377484506281984111253142571002754505051196276595132123527910756811319536123815612512404374561740721804495167839309951423384034867924321001735794184163884772209746559908158104476967140667676202068866254376332565634696427275091262215254672756729603677185434336737122735445252949628013239554862809961202151753916122769763745421232801781918993006723246960665677721051738935561677255013779497762722276566685422753928987037827711279294870103729838725784558127685560886555737766700165001342029436210461691128374644117783327011840888778348826469399767890297699598806636154170648458522932263839534631056914860098718557323491896183542135438120605569509905152462744200675010107684148126806857347304507909281119053738552574533940233301263192864621974825192979374024475888516532874498966890086745178558261879451690925270812276986091590118663669512050687973179005456887753343410001730155025308339349655612544328866738605707695932475832287005849319257952661375931278255175335425135901196975720016116340297243627030356877239935876664265981660747817096072042413769380134516676987722394416197212365980819623495041223396251422236055830210426442137302489779211247957490078302683491333829679101598961450917850275418238723774054928995542463970159999296805263184974803776840559674180557628571844290744388836219401786271299138683597281804974553596976463514782896331669432895047763172906168938792329754591415921873049796608829469062713905363262984461834323973324037378698139591062071655036762743884919766645960187558120889244989839193859762499865725805177191220681332055128636649120077980560908999200021808773711319556009206262906966591996766874109981055932287537307949159737852263420555744658071476881873648249809910697992752181773393521827662359590548788651965567491411029199062017090236816988456021037482423691445651799839151428696994210483314972046805975909827693438174986873207504221835857762584578527387487009537378767194782965981133716236138104080254137403992687791922560355415570533521403637864975654466708181805562842116837622402762631465859798412286714916881403304122898741298626473097805120064381255286558776223891899413187124669200861422880129815874999117096999040048867895059455009886832305194325419366931290001925540052961331105527316187349135199584431226831974305938752137125901407559306785184442458430630280802719477777871614429109303353970487362754942478392330716773504868222802251443137347997729056710488971796231850617061203103911426510676125676701536979640705650086503684936494603954381422861793962988124839683948114488630602049498064997083317731941123898542201165844260410928860724410690643952600343377313153682763048140247209687719770393413889480298889627935138163961375074736917952765182905204650745582965463364010136773153407376203913581987753974420938494044234720108343207565640421898567310819086223281396004199550138134897859507315728325472219365413127419422623883979807796571613828030347050048092230470956768890750558744225955815867921652006116115569256828200978695250004462232122462120812019344167525333893679328964669900873366103446272468058001985241082520684116892401262488457083139595382950730928519075090110865371695091821790756648782723307300715852433431832847484572305312099756871334614158506961416172750805848449051694442724047592351486455725389211978788618851538941091533619279702824434078081868637541378315029449329667805405640682323405725935443895487521098772942193102111469303483030323006214913776557571357815445332965150914535288931982502549786504996998375905875251401912677660223212568638582749873840765266516172298392155181803996746271775714845052595646785421526254304060542897409126818383897414900844717599150112914739196001880042192608854813482405878479332435272654178866606993837880351885362233918255381467824771236388864548787571977622819474810843819569942146766671896930027697327285814474366397170705576188049330971913960942787258419328241091965809831622615845903666316864870636000510787920774463720087516400935965429369903211912922363407253991323325140459850228307247743528946491521448227060080454474240216612257796737362967378000615285419785632185305166617911129502676817687912177986326483277623150820085990457276701529534337063251753880957763584307080172606284872833263050181485066263099289464858862911469441311964084086415783480046648712380783984383475023161069669135105658581504929674973879805953956468199434479981679152962584500673243765795002459653780626739234129416977305522747073549717143245872152199858378368658291342409631748664816725914848010757898483678785878615864513465091909751639558747346391820636115495927752797691336039101805202914797728236723081357807228331180282313247609834963062571459976819294967851897565159723399493473443901557008694676105111936281261697401740115291837605418218489227140074930763045441397325812976725911761793493163268644184696491132131691166173547041451411458048218674881890726412234514820270934726392115640196962578887739425730652350653067866597026845372669498757191446785942076169911827154083037881263180625049851882917701264196073412070115325407119011218004884162470530002315066818519666670593068051413359673506227888643723775861307608723157838923038033781575214173934420121060553538305600714575147228954053991362893205877679459421078738655585748710811230099500683884804486525456378184524335311318169787441735704739184796357253181899521666740547853741767408382370849902242635257441535126276006141454707722682313744831868935985394364463708724977293806962104447964234679905905367999834098693952277534039604963772075689717495422345857315003311746178331308901308121933331279772822153625466378781843861552478880390785599949898463305473329553670800520318423773203179386126324001065217471571701230189613081942056703207550873776145013733864223671723529158775000953461354209180652128963487116687435559699078491232607530567738028582967527330556316249276287032592934295843717416704700693147564164479237520653511604310214185165366405986734987898319133568091231640931276340774192761572961050759008841802954977768072165919896230429112823578952684538469440403561768447582921757333700723225840420285233776474312131592351039066017986648915870860395712136418170428079268017790793147288326291130409081713285003056318534937235844423155630163398075459727895283890043203629946285282812208584498140542085489198661247114759752881146158538312333833793882147812871113515064699605046210875479611300271675376670803359256132933113305828362410444613357848712393936362077454912368604538253659867643776245787146683061331608231566904325753880409209514137311739669276320635512719424601884064755311920821596595589769360263306675064236846784610062154410154840768827682551756383258954729590727975468829072578234532045588083863998830429303472959843133692975426466627463081146226357547383560576470704628492974297028836610646826129572676071306858291201497063905097052139090754278747819929879787318500718432850650426822357800451492971921170446373596799125955511336013868344236975237227516947520400411347750154334961632552443160936944319933605386420783977288266228836656158705013118961055290379526651797615315447907310887724359456661493696144698037699161752462334192963519466463071035113077636146499563106986126068122098479149332103664497527235104458414676018591242899945293380399483560443028163125717873173214376135201980174414567922209971676555636721628750722971014481786688326751939573623177362424215612256360960207125283637348382138601139832971339822587987155724025327640349886788399913510137240804531147532595884336915863804927234725855915100849592250484022972613165232211628309090819652091447873817946126931733229764528377559970554762729648203924468315105452532000931875982257468244727242997180837739786603120296105321252264782322143440282347885111854065897839208726559700669258749667953277613524495363749970259034181484024993218302708532875319966068352605265915558286016134849539673537214313292112747658549943019186731322842560670986720224567795633516623724804088196842601974317788456837105012408748787329110685188120089396708593611393279051923992079120911735748458276260994725589925669923109491452742847205388018334285165505527138209238619785604173229111468605735526036230861430306657985160758934298429139823846051744257410607843807310668948018750195347502406344112055733450148327281026593449618326259810507732635806566474316539253774272053598577104547832960090891359575187595244851916883562411314061384599744594633196530235581501767338331212305512175668657923412469430700720973038002580079692375214480233250300010413880520076861813434645962949352810122629343076271266958419671111518155577338973843308208060421854450489310902620330508816052784415023039284695401308993163701244818336683535364721364587821865452382508580480972147623057087439279672351354688719547457050577764564315375033723495634537796683527370577713713432675684742749325990986330436655646576074882412897351495421293400137799797336971648578579894282055367264514355436767487441042814053023208562511975529034253670941644474243588795851541640246821336876127871057554614483436659937691697279800958236041193133929657160982374394333026629758713926517826809764749363170281726332007383941571587186636516715382647633457327696612055134163882205595083862517889683613932897429271821356044646334913484790288778056097363657399993118294679480754983065119428320918070371191181999698903075081010588073078917622032573925439943054629721358287808942316119208646715269149623143621258346570744229917629571918583871917878907468119319772692913405326804339301657240722725497987760179527178871881994901382061786401338391593182256577562010415966276154878628236024247865162202865649969999162785835607881879611171852036227161458165939877309812583309396685613287775162330242524509998752575717254879281027559430480719767884241428513935017722650990382439878454541333161133646774969987752250002126208689053264703264698091537170921300371911654819105192070582288058262391794945632849204919125763325273429643708084634878056305082167858835844828039075105993615732636927622903187450865713671710677035531598964023150783561781972109820502045780201230420278332639748983302731153088790648504615448239508379955182688498545872167187418814901806373144870785029608344474305561374747248112615051143213008964512894103788092367253848133324533085840067883750547326566597724713821423411168370736227793733447700598776042892447405315070110789957955326449221265066595939140990398614516965831211444827466117764367020555978858843762999487529778622080435492703440395898281588394754750463533535144511857909514839698873830960801111923711273119797118417005241005491997941415573171894109702918392928873110009341542768590965864703836871695105227217562881214650788581771712268793135153180463375128263270756906007147406508823014480192051718669882948827312553218280543446740594711307008052996239283088087063190948012725526694288142332063919947672293392049933276153547234432835543653222125880741773270665023786769469414605196418344274298755754389958781026073345505470906390275101254235181766033502660025009174599228652308020630039942640246239362748712311496994965894544156674542971202261495965435936892500046492293845992430661532231463268534615801263142622081853099935037498660391353741408768730733489873041596808860488910781779157528346085128967796067410935717935508137299295432115132856771986705185658085728251724590231069295669183354349269352740117560468726512888220914127408233947319918517932207786284295355374859402988360030105197270996333424124664528268183344005009753662088200002024647122337582894964110037879883546315801850758748725448167509407663572027817899707175592585412034424012324284152357057065334106767849171108992632227268789045336738238718836931219370978470504995020235154396106083400481980346369726792297284151632286967310707597300532766617366700681904846526047177594489896692668975043421559030888592319342165487154370592367536400520685283739518790987568993033103530093635635767855240950877554745582836910981208105288386761270264843077498159757494553877647855591814004907433358059855174612004960171104717363765231911085029424490031414267974061712699783370642125141457864302344856784490679276648171627014247911237646365144059954413828836096228466148798372403272543137948848314157068692354801278525065160711772771197011174907896535155144778680902503680073886655836448892541113143695096275392847286137719530832620145504006953769013926275036845101856647974847196216739121326620808320343197620757605066597536298788058084111377692139906596643843096280005257577291616593004805174628115907134649198232977873470292511119364238491212966700669704950286032573048149401021156530289784832796614786970689887455087854559049350543019901523439925339150780448899645019541694790175619783998552823984792239115980484738589026311058816290193086851777223356984097632206729457685623124698273293200692727001208094887948799870639293948302031390006573001767004588950856194427081960486754769771459681031953055008944223225702048313333447094786782573132977876840236516300724104370651324083000410898218133941200427450865000408895831177073914111219883318972714966229172841323131361625101789538931628672335539977296503927727649128099073834303940105966782425927404953068530717415163764742241398904655182429368436799550899409453240279860429771153516695539127472919454872052644296260845142822926518621805584456206846897473370723214706447564789261867291126358016596315621106909195536952025243367121254712666012488048349314550421070363415224328852625783382501192948686337135417741943147696204370002867189075190529728449312169674560525088899864758741214982557579853957329288118111913983507844046626690455150488359478326923471909731988273785096341833558368927196870274969996291747337163591641304297850707328819703274253440917679649129427498448865071100170511290745181000816562685501763938791365275903001567774219743208581347506880573921091655798966092438881286553370749708829171954338209294444260662064626794249804285981117876538166651905513553122797707555531704892786188673647634774882003132776556002564170296659907629527689874195559854263927561725934243420965823948686778839747229138855657940286104021016031988880956961579861929850296368446709948487191254324636106476631752467439403531743949658420907391500432230247313974485803690327956598162022446304359716430426585145788340831178187753666234028975589935637610584746263944415841488638691392039269765090821522235164700768721330858889654101838230271164540337922998718338722792227319981696708087925867243010116044543504992733902968385459102998138020511637833983399073049560169524796355571491669282531951611128568113501478547211041930386121559991444192427847706449345734626995245843766395470489690833368984096583835474518909520089295762547763769382714322828834429220409337224951081546833978149715028765566627275734493225871867184123697367497871558409999282702629485294021904078332670282810890157189586528504106497476389161861078660482259198648777881511948168808299878770280696354739312031008586234931513364515106573703714841090412700658171385432479940579698915858440915240097936197146957696951758501606124674343520773187936729497097142856155117645214001221871647417327880081326596393090671244176072508994322124711990407561893426375708634727663736763515946435975564605411741587555194623450814503877320048040653798798523847756355493822512074993022657904240763283684782478900410855642015658635188589688957144286542578963178791245944646682226615975531173391970810900243935830883903691327552641192163979161751919676022476627080716010963613949160081894261053211268465544277130890426836773639030337166381019546754745549512986157035988316688819249201155702487054123740279879198701211848117495642003737077953295541511835545745172307163467994936445324919192463779886570189789511126072291168032967138197858682698278857930006302102154404966051828030416231445296519534826538022024816916520875477716612353208874450884194521684980289607737291385484120408620724927947358988578549075188756213585862057254515660638021075928941822294975537446716971417184994072437211033768695553998794356944002970226372612916749718468018789083327812099842218502345320770697041625802286136582534294426688254919539400652024215344590274016822480742635521054663798591193360011355865733068229821322307190269983893635139983606405976383396119086003149741789401579059948196546503699278968162333155892471584314953237905192661529526792389524256286793660046505257892376631412439854585528432564189460172080441942441279797249601624542747417454387418257326984586037822887567374521786456103732980113114360238663518781282741289769429938367157482602755819358778482519852198994427774024643405146445699073617892919422033448262041516878434064594793019808079540830917356234868618463815318790039148637351209921112399870806659327123728664561220286467114851090113657838731207967906694723727427167276973463512689953608447510272898369239662094122387021213509552401495998690855144593831525236401956066191106022619813602622533601394194638870219009702845017970242428883601440322914303454713167870657214458711775274465793784422626430451128123918601322907443227736162538149811836998586579215471934950019325423960740560689807488602384545203171378229067443477687308219862911773058656377813860629689352075752819169486778692870093916595240369379350241149524037141143669447475976470245542860956517452707513396046468378793727622893017184200864502544624150368174053599239110777047911056117877262595612612860171761894725918712024049046134059298662956015026598851247541197892492028297664876286613654403260788192351810576220854821474994569696944839442187893166915323747402378603342563738460576558498209221851349679512828102264154288423776529237993512535381270873462883758701687951919335052123536886442704152298700655267385890916469847214954978375176514819081169195917126864313606138720524661193340294841950573072406154550074763413686716250209881042656961554695574263173913594900938109334355199301625950467774470745374247345191031774516929487640596911638044790250798760299422469064141219840500722980046295880313291352542916209809705343896142313632349734784487218649639936022418177854827637332054979750140310281430202419948378323893555416148059459026920615677342666937611985099509433805443016205189491732617847837663307505367867928244735295152100731440877960969580391021898926961893695873867261940132782914692350287438238610696715774765758239162520998786740468054709935304285495602321921460617227174876239601257740730666120035006714318824915689031233994389328111348041234103374045706580993112685980722294445682110937024890775265307935753414172801327475929203820442387421736090900569199143759834289774085392671900729298228891706223548430049013403858629379373896517785668636432582264276646780837851899817596071612313349837346905284177348488204768584304110541303435216875449614590446215887695632793663980006556681327569507830232478687428539942428257242917876188400189630540016659932985672438959131228556148514471485149979128641336533229836509967668874680814254863545671199179827257502812314590542782593668498412769536191704815871820580670296335046978894011542922141584966978041267212693981718391970012445650541008724445581377495762639155900128488977597901740157073971711802927864450784210106272742030674652787389792828481255027248351429951859914452414455122384015013507778343880900089607249225942241683424660751595849748267657333376281146087025067739901593547915970860169497570528600011891624492418392858964922693831659755351407043957432949765474777974892255447980334087029646956710166132766379998080223887608741468994445487621883402949473810149651280293878687532744025488836304171562509434953215179258310833796270843934215685039577034990361980797497325907155582352407108336902544692149033846083732175333622767719469048493082244139601889456883935348233018421322915582712229904747180018924077909015703408368037939938805798381985991870390059618467252947408512220502762529686227970594234010287399244440917334047995706916640854304159094216655274154314349903639082864221683252961388852139261674238720660479022391983837828322612166210814589730542495742614992660781027076007320524302221761754772565107732244508510339032820495540185866629756499324285713283249886076687350185654787249810329342235255194231011167198618299299488623726046133022243836170175933915548288033689989423392324458865927295565399577916366542205412647009971811302564966114797160869566487689048954725020231542385085087834087420476135846042761284105344484077369309699723685445258637374176023520270855452461962728694755904557630064716161509751967009816558510215485518988958063711845760896074433585647771526273523231073177529673534189248111658795843969426033830816208811206990303456536945216770328570435221360577542182978061832322300643726155657606810860486940974077426845981262992579508560296417792182017128409766042027917115472331915847284930633914028075735155183053012457944404198768660070594460761401777227513497953749513584616722631967854946905686667871110109004220361579014418191728852231102821655489535506253210664197459677935091800015340776461130627556833127240012295053527949005348020650072041675242450422987045138683802186647333913340976621652602628096145980000636290427229149446139076168600932277937441536734414614296554899966644618422387159648705356054705941902614041087161107836724218892588518207751842954804141434629216387180766502676680497124381233009855890393619786511851340218753475617782414960779439091830702275843574362908147260085900335820416640765821596038774871116661969064259944178939878812912435839382006262226924285032910849607522689689727084673399305874001919050344286918928593869578363080210749441772569137192500863998327215276705832891862459421253100882804348292329567351466765633225865278311268711121068596056956870019522850418119739843514555843475264136934934906610134192690029046505782193432855342860012043732580284388806947842919025057845983805589015366433507365092608441929884086267339819599856582050860466818099606528453250854644923790639190515981785991530821545039562280128896603466591018883762265013308789922804159397900735913297814458704447782888306029898831533605925625769878263598398264679794787130712115724605986419420901893009758782767010737557593367274781894882292999383657434895440420855623072031368020269784110839792231300591566781199421773726423311210227654687583613641496774358239092046942579226467545155504574596905014134329349110107487961379051363693006262632853676143406312378331770323104389780053411892455763341528051577854782605956727422752727001077278652224955951332562992683949178302534734109286466848634694857415932351531912153261863975741583779384064263391615190058118848679378888458508182636848837277234118374367506321901492259667340446067769120262900538943998640773890128793194357598440204226967514778724960565637665943206604077462407022625458129521368978508518825616240068451204904834073421697977696424541414017916766752519530000408233153802955194201099655481962593464280021192152677333285111576411751490772188108203835565909060426458393209345875769631850275557229872552590422984219572888275451622180538738219101226409031252737187633635559291155915289993886385455274757505242050828370797609495102191478314046054101224242990759576474381590264345129685691816533725329355005358803953273603619162339477178693118257471652304837584456575929399760941901146205496326001686751151968633236459519045495415505367132509057487731169991057019760318688901993209816022604696624446317672986452919478073482706753400732156657554942571580560284882165961616757139139609008886722439030121398563366457426230511207613600508339157080370230637981214872055970821045492871809119128152767137195546599195234903338615274988983259878704200873261179527284162038927349555771714687568340549876451421209700545841952077587431599880352674462548616289888544853221449129564897061662648177708795119935030240136928295942760104949936153480442068471816617311114929595488823981921053358833686055279401451848980323302718654518492936988419707647864990748429721302963815957645620094992631412321387898132998004198605028620566741491213050407439323013744251818092081889756035276549240753858512868024033771273495128476775746756148195954543894051613081114886085612036316265361667136570654345259205206940734009374565453836801515920044004696497485868326584085735856961421221281383720637468302397360171326572243321674820917295621870894759884192854449313253475078940146104770568966872377796772631424506665872759138797693701379412795784237748524471077702537166007842468953586154954748464856021863240176684400059351736236771138133873295551457972176256598700142991402821646306544239830326191464039191343955592453068896193491354950001489926379028914973444900812156449414370469014339590313519969564614046029993461012203265273215312733716960051289790370174129297659473886530272601979106889790544649415394059525946391865353662552091737405563822287880527763420281317193849603016121173151554507517449359006998681193279452423576268429228424903423516226102627809793677185175822222595098881936800715833975486757058554237230512215037770344107761833150984780196852813171590481335402214637705783117913833224049923204680464463305371911520122464413567046052551979696310474897031667171071542367294473583834830698694884789104588546990476382043026129445703344646430725300761007835252582251963904737023057372554345826287790399141105838082047841000012142741902098673928840321049744863544370119561025444920139750913878975603810318574368886027691980471054538735844854304294459601322478544272773736606008960570644393865022038325416172133808752101491617024735670102371711002983077720683819966800981565124308387528253520858757560167577249670415690861216228658504343501208806603165622605914701704790361398033452451270501818642681514184647438411199710557017190589550348834162046207619312303755393270420898585919414095096028556095256102248583823400979138729387627460989108193732757051928494907099543610861607570408657498998278393942687614172309949195923393138297212928709111530999699277299209392068328961583561670944635267561537234543327574950964201920790875953155657537590970302856599106497932437346561717885394412659078281681564752372688158103074688934914819402953864791713595700536547285010039340263186195924229453546995212830527046620923948851870043809792632861690674021050673470148951534712793764081114903951493039334502436588809789309619682088157823010777973881404265563881658857531962074641424181661030079955147240162023257307413471118577857543474969331329352885585620244470644939865800698548062775779702801837198027639149175363992195521625763650307387415980292018502005905885762646152026077157322879273247314310725149322720547130877020104613425912445399953887505218387875932321001339390982852106962322103132007522783141074129269933508496308196076462021858579422183629266924666962217311109786548545043744748685347069223657360152573513122677787931369328644894601266030745066437008468627534792620179133239306059206015977815736730612053119306270475705549067972810742958235831786079808626553834145247860384425747773221780675978356496682866234314862186365131539259339233768748498998299311768056411441054699575828966750781514579383885281235121748429989747242172839340240377927762535419720673408088390286019054759174372445854199843645105386417447861563997995854666197735354754617116401155001490710785906178932901514633525690383598460177239072558733597923454697539785498463720809607305060135430266816257403563929176393815930894609447958845342072879737027945688231498086225068774841606772491867438998029612555094971892697334917518753738330252627021770602134058036479745188275148513056471514259877760919610718971326865866446889460558168538226730073147667289956962306600285708708403182967398769026734369989713354230819336349516024492026505275750877819902546232364948302205286153690475793827381666096681573773039978771646082171333011161941898424511909400650790274455155280417178749120503493325766448077636334969963485083397546392330887221219212122696993154537680623265878460024966862306255315526846806866431041365713218342888966190643475103776345904031896012638889637683640414927774076304614816369666478562767729852541937534797588109614612131460348507562046847441608674562063595076424599053064624409583503128828869981107354133557708483787283730849887218349538396629707525834195188521103259122422635277147355253819187328050875472871442511238225445628599355208773972927862208191166815358164121237950585374433147256079557679922013440232645440583643969658011564737605585268845115781746333873012662850191330415168402332592591223772046335341215210290089206504303756704273859814662850122963136194857339845139302805519539371806911011306328321320328147020601754666771971130633425795215945741395104530920598568574982951072783862197103852822258358723793316467333077697884278207860876346107579195886901487913412699064786664071104318407438052912287108241110508983912518674054191267959857615060050020962406388507276065722863173421503647581410165231262948103450888484656412845853648798371425238692682161627913451761702176160121755478261246953358170276026792075052516208299382548105952297351834864086212470873901461240166908474485076020149348375346406988773336949320645501852459428676584720902381939016324264858674435544887580624892043651690681969263347728069508243496083142267947081798916934828670723703197611337618727044063218148723240808584432633695076254330385602418242329579800858905182367610686702102080280434950252139371689400565535516192743931906675588310298780811737047754966096766622049041484387670698435548475675927742638714457388256208059704998138888670068568197509416449156909532128286629141848144542486215798326177560045887930053547369320198695757355120069677202878379561535073450603582500476367951533054219817227157627672021926340416441793474559145589791633787304872118654355571089430912831835359686847238918609609878013414424769382556956269337537868428071874561767345484300264035085133343510867068247323214604745978186731393623362146779076737510405872134192380605679530908477943876755512325514209785420480673310888734274430144209845157229182444906897495146510515120963640698544429049635779494979494671325264104469777962099757792990719549715229051061307851990031630021968406156240807535307182690480965207411589015506029089755269361087937973907330625499958489077667407377093624799585789477853146246643784794543168714362739722253232185610779068707337402096224206567609305013922673767628633501362334009884103019220369803898579144770474734700188678549572721405151777400143148912407550807867370243038148907500077667218311464397799225508289400658573172970864872292985129821947575400796277254134901110801822933335184665773948485100156185457041954118375017922656142281091265053975064868129423663579283519936307951492680931666655455635048096042972307374339537061312966487149252136557484171716062960695969790825170461331323717366603303062636001426733070023230570957390731265883958305113686119468252249616162879762387685829730431056068242169067926965811845699092854343903620252886297374017350765780950678730463068624527936852085786613441915117402546975168550609252526529099422709060384821747970594728815916388746206662531564481118972795212010093290979020054356986127119641243206868617525524437126259540792435330285979627319877059403310286178895037608007032111067724051443700848998921650487638510858016835485483743427146661766375213096076060245870375670216698818183224216856631940183501822439305337568464274501392048578051112682573240375547825020621290027103971556205115090621060487141644173836326024210605442266024055622218914229891676346231867555780692999672393719247378077436344600028539049572801878184113679164454440324797999233654178655001795621176035126473502995493998901739686421856151372773918508005202430657184576858378178032000916368890182602027976098292130573974956436440836250959617976852775883589178738731437080176167367972285573909131934542145586853314382841491174631143947794058724180620323494308713634486462311789749899293749644120934315092740217347023332575925973028359165578809846653200118340461009203140783790561440136992765568514820386306587905657376528870661476017906180004431587864084230882994271987376807114303833570384216821603063859722355980453535883118252760349817327381067397270640511709990313266256206743919089568764838789518353192632685641798852203127750096992488450979336502059834216444073837413257369910000015632995270989227147333280408040124816214474784681861928479661067166128712238456221175336089870501570733598552682602095135295230704688790254394225323563643959757952418786373041625251605554791681314531596713376198400514139646603818710881187243516727166732495801135481998752560758496892321210982343951779963815065204832168946121263715270590044664851509713036042090017105785405156483051394041247599094267027329322272927531376649468738418270902203445144459694097457515948629549959862972136618947322070727090382505148075895957838525853493748206876834146470004570068438556323769292248679400822858152090118392339010034510427540250806874391065494419592158587446579622234826527252396531118535516658288146953632994977015773298965922557081516399228561184096953826068576238270689099184152183368945236328519685784600315860950428735535866169955273558768883992212457935436531552906659868783893786274409955311348936965328463494858532769542197424943819433982074569704386193691108376852695800558877818138974698190565121691540897722478730764556086469178182020194827877554924066193684724291076249999588776461789302697510190560856755522958793190090986928325711286386795934657824663276013246634561803021037378086174252424834495128100937689180131152477718465098946033355959293886161278289441509378270447307719940911429066579879092071636270699478401242249402209027721197994947498217655441078502747791988888034590530020966606599997866172601938576185968580972481318650394728332115939461073811514885162025689914679855357145423095405716682136011539124377539117410331898714451644078419169298517427587379017858940745450939909418387484789937728354093424321616546410913794434259167788282320809035891085842210355942265131660647075835333634122841189320205511981987286790380307377970220817959173528367193879854550506440001049155758515698033091126793529255313034659258710221983100377486593621560834818089117407312789074040900507909488575886310118940670465864170795167805833472074651115679293983485865400432463426337707818470735330227898143686586733874993111911769074545817550766569298045545238871008201887930157318535431312298564032757477823440901042244036696638859574754838607353528980654245088954361401761110841774109014706130808187270905137579093487179365827006571606015768464863442505450988927221336505998945331581383625035660327024507833374846155739212135188553858382005738950728851863395440143350379613081896212939632652441261819806642576944055400079506094315610318198220707072331167040460496398410941430485796151073101699939296053746832492631579044131010699487404537374261109748961137586613381198999010371202677073052737710192598785196312764938259847683750867485402509904219066436901294575771726986022060598169162735740710509406512276082180353914810370541001407035285594424085631562442015262462849545200527527751323284211974196008667955149725331151647427006992805385016400450371616939601941522086836561669514500166475488591081605720499481332148680984859425981511910771174501223112346359445946596586162890342088425802104450761885026327349580753987150041136277987560163006968475652444828676803611782295231904265973501103308003826852086937401726673867260971324428914382232966508468043944974318915625896935939697658812072877794026123122078507789144091482195293770506946485507790071204868920059842235551243305355335281696400919809891393442576213046588270869932094272969808663659509284953229454520026556050197528415882049742614897224738525753536462528555753285875684366903996488355996010554140143422134472527994587006745485404221930815471117843991726471241853623968205556629301978756081016028690794528286332536949330591044135362681991612821573757976933726233355977505387931332915070873094149783149628742667260911697111640242881889710906576702912811491342578766091273524793934076988570836947789422975949498307345205674124233948310990603044635441781523400676419278356615061838690419911404336723435103721962554698002119231636981576064378770837319733904262050444497003221723141170037300846233051317037767712527379803456994118183973514314234626604753039770780915112601324111418974042210678815817653794283010684545729988561382562084647820287488344142357394330910303592773412556209373012627647075630366711448671663665420240787872880441674532718170046457063146103346431566825583359149970285979607664545856783401160779345542943389134154894099286911498069224311400468385790614793084661320452237869734715507673392829079696945407357303640709604811690705668700361116683021366192534868801270087515202970467442513867230284693804424280259527345330789731260945060591404105433531685854894273365028906700944919312458971186475579391891507362306270467122406526624088423099001562649469773932991996467143636142664596331006120385770464001368515080862382045402647213845124520449637032734255411005007010766264032893089855730205384853914919966432181847028338409236579932575164368479719066439144886356009297554042722337619537148568299414672434588711775021515558786101227765468139138869377180254036321907584959268219027716246755676231158047447404132067180193644557032734575292150857243225218366810049888080862356546626541645168530712278692451656219059880837628788370011673214420503785442113908573193658609468329629661193626185719690126140124526320559538591541559399022535908864898788288510869016382551625282584492631212581334859405711060992932093784323470139202481691594708058537096815832650719142173877305054671828186046966646417263260531940707791370564061527168338348811700054792243577476006622223342697895968076444108056108289348271336939329019255233356217115780072596333218729484902549825482695275049764175175022939540043494342734772093043084297935031014807226913823007260618131338381492895192151671978423164068389249058896690263641084258646382713105374399136633061331606452585064272016776346787959676413460990043769586309551284262326812279954464444059882023297587659576147914221486351237436751210259585128594347760724319682224457852965318684843370537008047108814534013031257876006821699382999706120700082116039253805463481120207611765356382412881581863462518011777534833622767999566191748639078466024312950857385645446597659343610308015554609262885281288556681859908896386983913783408203614049339776680189718167597294684783770171492710998394095917946419518187763109455609100488791486819757167323464126460969427766159863610767159998305343140880117431774803818323796912342254584364117420769920664981782915791585714233878815688926136492744273354617178999773587700323745253177967722108743519779541702387287540646782897231069624131038702708089680228412708452803302478332764702807419487348183160935432462793586278777242252065466201480212499881516354963053825381688357547202674205117996106671297402290515851798286300725338493986118408558348873432022027871913855635438211149941037525375947610894267115003763839108115456666938837586426855668568763026230651390341116396591438974001683523671926596727239609355106157646940094926787576499682258911482644211464673756688068179234669879341275591254014999369797017199071772103239477506397007185558326836738587755499928266678906777293626796118153580378756356162036281298687355287111484725800068435938610706837577016792073505100339397424439660180896743911792398486322221187363344072099584968134705004036370761998144827404812353281955408951228444078498763711420126086142753961060828495630143863477145411430606502854908308996498342343671158022324459972942226759587507845157767587738244309037814231096104636795977884831279799700534599762057776407780829114518600054903549798649519400846586786420198480510242656760599240189896987179329529640655485569734840175348952927105906525470900835684069967138419842904407916708972368276430257082247756462153084255145400504292279375286620755554792460478651789039231504524957406022558207435414148944428471683251113654004898992286271499507421213499262240802345254973340427402679131090801792019203867191116612728000229600727368582258760377570433950357359582933669943675819653143779612561943708419203720864710090009532260659184416803043550690641454688202995126831132791174218845259279639308011258615104347873372059437465379382563953248925416085538111975955711829893747607150721543002587215293119645456101146753736422598075782183598840582569574111645568123433790892229448975133839767824704272590354208465147290638956655162464351471381781492374859265610333420052488568656359352915260796643555102319642635724633703649195867352181706236994700732547091616317744093750517370668425941248531984145218424590153868066924200362036684333044845509604496315619429561722769090525264810959534578070769720149623249136755095769934472451845347123427584118898507680615187210165037800141012290478565534290389120257404724801695120792577019313737385320175355141803916959115680404363613057109227195850823205223200621427207800685286499084803269815638128764691904613616959543735911500585033325634255002589634976337124378902934113935912368116647309017011982700933869363716482449238092567323259441947582243881291534813188357610064067212729469299001870653797372833897992725894702977510737043832328387589950973311179420486352689293229333507318577772701770151690084802048829801507192728149162186056693171504665968778870288821193121311837691818525222876470816602616563716149677506889784505753696061597679724331859381893633869154900260410998795030327725242734904981907529002097074149057506136601228801135731903728788413479714751725685116051583054060478159879995995862553318148887591971423632950843462827211818943183311158358064046537542692404373986752749997295472522769223682558097822599085492633034738946195961166284521535147804857842558097003743917528543634384622037598487527542552975475338143517817578821041520800761513806311022864946208017005883754549894312248007861584610692982793567876392084556383315782692316691029159782719544356758828184936211235015274805947867892365169355793445193439114819587674418797311456216467238374071682840161959928932778495128621867458685565121609609669475333309458800478041654083758685458873905841221754287141812804038536101172558159784839312555879957963538473203735215173671269106684847563094443431848842902297484250308289217798593703489312299013897613865540540820839314086848566414943627787531739277474798042857316149864403291735230362588559534273853642035999977265828441077762514936470354199948839736178658348703545185543345399273843670577060273805614887013251250810673845607768817368751662773356658239684748166035099027358702410696023872450210695046481576334524685298550598126080519533368583069028249348095340538699375608861951595901958237061683391455333749306285162366304355730195267978580347969644251272631695738387802423286159550254599215884705179209096831994737415599857482912961057016616383000167001061972496380750221893861999739509776475179695973592348330707291001679592827542322532572352080828207800755169048161591121332868216247673011305109720528600980033992541324267666248570620803738204915829104365038585701767384216070981334868601531787268473516211076467490454526407686859497000056753377075184075394394613437661701079757031750049178156929481253392844921764820144429616437290238227574291693995543410258122892063504313524799562223991750762099612778171260983589443614859252665525277988595539159652314955091174831144200639232388230007281226912827579970028814497029182165285677709279580712210183647550348832097969409829490235912452587328219009514018328617216144314204848562616914698406331783666262004177662927722161416803349397444623043354190699308372512859127675015384282917396050690268231895758195530323077043027232769826478874004882594170710789082688423434055616065351869933590019230475925006585249851123047656091736798517314131426061496956150401412758270575429926770946735787977022901368997184321128248962920771124118861147951684764906632773051830729269210819496441313348691140595693775373922867109771135792223176789429373434558415738169219711802037874314804722575646301121492535508298861944957831116907003294561703190685208811720924263277498027553531430383723209714785823344353387696744660659488379676605649742436118700763765358745888667943979025925695855649572925505982394721317779622894383677879186121986686257035995412622527554117308031338648103546118383504195482315374206720591710359740452341166678628906775503955319605686782928711533743715863687733427036683936469242830003619060989224081263130174596656536313423184566098535028287684081012377863906053134637293895837233930569881674708481251931344492681066313806061854402639891768711772541025668801365145985976106786247008232629384443008699643050138344668214165837154175724202231413886690828913220184978570110205393292507498477648947693238765629454477974494116177851976260480342898066195566931524404848784147529595413374719267934097632144696557347654235297869985675325281817755933279777539314031952237716660060933543235004513086114837191096398836020763161323015973526489688530250071644636609031333255422806041792384502464398854437430225561358814524923187942436769121398240210905347216416888269023364902986629406258377941308456027103612067024641166697013073533962499287765687911801632758740104118606287292087899426786129213578634362774711566231140819401204963694480184927604092188441884974962929280117616679729279578922596503399814758434885260997614051875787789779907200737119716765747763146115219842438873866915138789046817337903856083560449937796967078259026769039242171254047992484901169472602793308433420961700020447122915821938308401967274990604366922213915605360680815899936985710928548800482549800472204280556958822674183507546183458920957828190427795086952140249531368424161460695631771012725226930078302497333495312669047661270446684738735229787506083480356888662839669556367678646042272068459517019913245989311030514113801109784796984126443121450300297637950415345065959205234987464201013533788614582948177866550817737319455378813499633481912171244646967747946678123917836500255698000745705527384874501186837585685408341896032903837371998319312598982671175940394344244530245688498007596804274440785726596009530885217311818105590268852862351235034395026064505689329101756904606544821853867635477350183966531969062219810234250697345198020831954532896748029107085933044925690842800870959778442959454758711674013636673320602663682365741604891863252520427018384632524945356002664802377136230953732163718659687679599648863001967898530627772697215728158019728106593716825393960724470543930424554937156992784508749774310520998583801142426310552291164172179335113745057363081909815052797769742074792618865096728552495064910889000374220141002761615028384211884163693657239917677604939924027171096633977156824145564939124405921645612630511994892146587323337399246327945233795681673390160562621679416286559499325340249051130910628727913881547588869343737313220188559798617692611798666561973032950840237120068740957577706238550742794676375514457720713011251623437115791714207560712863310235022762969002005038630335345906329384973361833381389370603849729030851077095826783904012596604843263010939663665772870693410443411918424703235560188320557542008330613108804581950320630342100386489903070289463235724333677790353999905673849662715931288974935761440749463958360301266953677703039693256048876327199754087996494373047958899836864204628653014021027947410690243607340484433268208671603556704463279489974056992546548705271359072750568424165392975459848250507146367924192691105438436434644900786294034819639482251177665902937685410857051125117582856757141861374598908282514125222193009057105274393409287396600466277148891472375120335224311232011111369243500436607660936752596038817853775557726653394733866341986172818945947667799045259877179502566276342383589349359796945602062677158659192805574707240796785033079499328264019304268676484134083102047618150232854853209094492806103721288052183283565392402744389451816893491776479793128929287036431745294299613886562056969651906670374568575413877933279607669878742422127238788991349632915952916488492835382865639171130364804584845466618727452703522258274545157733221000724020038474961218171076666380120386158170793831705693232740240242795873637861611587599902215879503647479315210481111343878929929701240795316589354692189241668256517297971593834991325039837851766747219107298157969892078434482015656129054271186011400997656459464949898283610461803924781142628729168402826363717898275579458988434010525240283728184138219549469554389586419807900592228080476417391750422245492463665473660648072393822734990492245432532123973767652583797289741945348026144738305183003542472020046272821911081154134783923713374483684108505076341092750468649326126565953157984918483781488721592909838740817333166062258200508415209323335732439231004434023468087656184045312107742854610758797875134501850060242754439939919913999307770361067834947205501733717270082846908817055543404687288393997903001833238293973969089626747698154425279606486209050437058090299696788645779447194210488567651026598120078730255206825257666392561262720941101005034840514354221547392872956105283191268596372624705593323576796208300545939492941663368613317754190160657566896732699634825491175155469830013048181785588926647051186418178752080807445392634743362743033505208670873016208265345490454467721228043220927844529515514492188524596765784027678718000755239684227569172700223159824437722633679142827481412004664605936089985147136994187456083528402061109457744994526722994490350237009970418635613050707272215282809135425142225227928265897511474401165776661617807869310760420180763062429515980857252277223006042680980286414756222271500804123387967803748621493773281568523428405180756990310903253655372672415811679658300745955816662585334138813813279851642669434565791575262026851675232048911156575436289560003005275634795705806160846168595076714120277136892941399384433435121769827691568629213197275072724270180287564261195738029315769106574685200477360753994502658680431562848975743031967552401259996859542667982606709890699917347854365193235046944929603779821188863347926268685726204580109661666416361324169153343023124634756049679294409135074687004502403739368153850635149278181843497112078901954400010119903040853394374233101363809257593539186373731313782151956390594961344823110609325450448075577947053931091512754319706521718501220733230133785071864260962760528079414821796758391715428297163822465306051977143091259611334826938453145439706540118959707417281739881759818417067742296425290301795458826917179323576214286702441290293479196445873684003327106614954522022607902851183495543478919853413517187801608521494701045389807195786101016844084834122906878905992502588663809209192270565265241491273705808381833442847434822442622454557353556866999050774950366906499658329729513237898366149594180561378719369620428100373385576884594814315989027844739313006300728621410167325674487256219652910875469342799129530256056150188417775129111045227227370331026368290553748028070661095106636360356533958278851825493634195470474350695376129140188753913481726130174923069306289202002250811167898633756444518113301465411632238900096635860991489049858760542351100213379809471459554062437760341530759764614702968248911328444767047027453683335856535793111204366654536018873494866630560194149598171695466776303001032730926070106161112988012325193027519429169658303804452569712415165402445528444808500043319451780878794013489549601455417849752909915157151181723792073747486804189112748295029870408719382282783730144705201311607626270402069392262279564669342468226647193988999018015524045010426596093665326969007756070248418951829757686761966451828395785090483081880178244976470818211831335451794115136256953187051748672823559060477849517453872222319413601867549953956318854299916850938323123382769927221474315247938126573484704271458508628594942407015581172712813990416451825991308757720744946570511112905185369405866244098768971140179612356498950014396432157786194590396616306024722542133510831011723447936705506020541303591544640702822829065340482966433005489170412450461090619307614197858579708657558371192846717612026543646951453365317200682463172850568981542384847552644876691400919817785092583071426165074047048025149399927274669705949555058211927250961619041532190885250681572185758833056583454426464516317815274617863788854063013058962696096590594052860009725411717982747333425294762087289982355387098614642668371031585672380272494970454653472249864441375010454886157365882929188017045243299363878442118996260673818877688640453888983620223873769546871821068319644222355633882399570139250054121943444613374192393732349374478342582413963263928419907715826625941218707286732854983426592596755322744929206738799672318991581649173315868267156581104932532928039272649482435603695028724309720176095240292354999707918446035779043265681748154634447654126661365799741787082312981561599928838416045243131214495873168307828551607566201096707044035439259496677145927565292795116321903031150410171577067619286644815808832401927886384157759740905109854008112692913679664916106196325691779124683933266638976662366427700779747171234821502406228268221186125228946369730706308185153926750178853915614245958885863896447685619108730571409369393772601939561546125069431240111866381048873788608765067953229498439896312630219500136014122256427218625691916799073409104939415092926273857783019133795765787331800669064163616946402365073569071495765367984759004301857025692212430355070697830297650827318641901113398571607038384445422436936624215922372950195229712312781452818056367222985469050396481621590392489975982140362272860589108469357981287670426590966935792391883094619243364885736478001057957420976793191414170497548603379828051970911950661290027420555136331827315116184532456787329628998495310326187214245623733551304603498678114087762956058868742573236242865577461586378539465958964033946538930651781175367754048844393596299439370498222205969834562668263053197772549772288096129629597336171112648975744332390437802308687812353793935018140780579791962835641038525960501913013663268074462826851466952520230826649710752111840030711387349026875951761928393101267066336825424629066718736718048993696085015783891180704982754805081524402179708586166697605669356708075519762220007181759590406099685009858743874254001755308223678979107483325019644067625928058190180760291713490410581907004473147819651074982644151720700694747978440188119591906164078246083766237016921974498728910205362760394619789642927600111006918692489917171628199474986108738457699741766030921793733811450438297137805982992081755904214445694258883029719030474554475390807176946205262412992234972468821131860147706461846527576241147539274581168370209703802734588789947658653427194568576414073410747064069257640554490565823154749913513768215612811416895981707567537105393627706799865538553247798424071425736473073867458152441016666735276271558662273156944510921494827676369262563525436595948345721387290227302342450467992708842515998614619923454982793764499870389586929399049432239406039110258690810283423708281689113739777812068997777033849822321067348333953378960313047378447946354369480393470452648126094305839017179694669993231052303414231434986266074535590997525669930559467387809489393609861793129010181159547485990965954315977066748474565485941309585280889639824082233957804860403046541416785459989939603177458880038176137205126486237456080267221903661976683324789189145911278044212347648864806602844350242657873481878235263300026163511086081622191179448570619333788544556923714021271440994202064330041498113842147351600947289769837636988676812353798814685440105542200286898548336302573652397270556782157240285697454062947716384381267283489230676896385039383836236453258276562395418110686651205274194436110880191096274780144148623033093240849651360022809515516930660928582028124640183825478537443710281520783964114798379192355491850286718766071231603888018677247687969092378535972934987434515879810936685720200485534679187594347945164300583239831519509637687193832441059111458582498070034146553355016231630064266585180983697646867577945342609397568684834486486455053821433966564914460263042341482469535132156144877027324435560469575600518967327281768404542657517854341428525529803894799434425908458209982134809951623759907451200441473113361187089143607879600249286516469430314734676870106423703919339836740722180633547962667623255304570799837809088626467831142306696916771884369863134606739694086300030430129505301267030981632753145665146282206368020941356614348609196308994140872700088441490339594638022798468965243555214052015659015605088164588536122734332891406346233607188107365113372217356084840320815015102640079419627780654970206040642775402460354402504919748224501165475402726060705688052181319982380978254332015354447656215133537298527157002291683423574117318847522232757797106593193575703386313208853377275865288952431290387331778427986387879139500049437351546590017924697507951803233592245429792911836026910933519917189420572129709655725595368356592119036802742025055136143359151723501430888533339627003082989851079759289821297101621784562963645151244059382750831324074759208284969025127057145581752357251345975201535470073035246676906293818967952276067675605846531937347205407195032811500050041389072966887920251483579276975529072299736168468501274751995033616594905115929346276827137329564867388632124133853081512575443277585782429107347439254221823194813862069823871257532854923060058487031793888257562038275279363647199484745636159748304399546713946010795465888156459744194291343836474950779744010659952042267143680268891927658657146223114553492056289694668585701084723116467390885945754305620851401120686393157300348941473082765422156243400198058143461407841029303330337516894865933360847315662419218998636195770355286577324579377371493063222404528394222338227780439132592784097559499702702724399493846519880116829081010041411271278915839403159469831078541802894993625742322183794853431988350693070289165902918706846777113692445068842740228675037179653383383028692278050282188056205936255734348439252958413121912563964600460452169312551843635226171579653533869926585713671513854247023035656866336825323214596089414506085111618281462815790614750222388603730298869410953791035455004641782095385639816213981270785995910131746525383871812689411091272130865657813071429056950880775873880441092839607447394308659475820067323638676230400999231618004232615933653268439852637543968600361208416142814833546193099925174182507801986004397299928826205085652142508478755157559004284537114599836204456377584191215229417285802211990721591196310246510066833909798568590231935432245204335908453202890488152530556597449748542825480425006292805254569095508744859965330207118558401283953166358918900928886988307506645255139069771469028095902863711389476782600717565931494833213762907982126582384119588528576677982227921045763227423062378934495991005720297039093687137442253739121917336443406987351584573696358691838839022687452787398127308826596051706015927682714381240259303054551661718105200324413691433728601784037330844388443976281568239721255562011025971377432115366663335648450699462200664733461817747518156880085568631215138000855802800472310593514338504291681518135153147109346942499952659656399808972734542483442916987392033432861143103856297277411865435225733276056790733604510474061239088895872328859225660049126001215736618962673034529494730073532316466705722921249984959814976017289209987119748903112832539574308794144000008324464056457860911554103274303401727843779698271185922473942586193187118036282218290941029097999489719783851641411307692212513500256724668191006014672773704198977494273102858133677365616490294254067566284830095155320029895574921054379350976027747618935093791539494581251666882456217236292180952148438427293403296421627341361680148977602291972603024705441093054875088364934530679707101110965870902787533035672064913521003592532468478955760318438566078810148157555944713175879875101614211979273733366306320464480810286329923195445534422136399331686378542937107433398089086565333824188508292645374288521332389845231421725294717287921294055094458114464323884535427971346829522987673150317766817017132070813489145941245373142751342388578188975535297124801067893923310954871550440686653167893957192100326984302157085690991744899168897605897127105052349405570173109756064819375602179464003465331071231412843165212303167559787455167109815746324533195113511205451906842570509161417524957290534696330444269076689177648646758004292139222157973582866261147059595789995577544752975344251243007278927543300495793178421386228861474207729526821271081083451787324847608931381133858403161528082385078198772901054010475100068677037508827133695769061936579701558236920627612117170738533141342554536168269571304379619013623382001323416311789790925455851850818070787266283694362498555908483826913607445517768604119765512006712271883755949602865901459956608387271124711471721768639000670200318723140117993599249247741542468249514609205978297076578711820695750907526482249052335043742049290085087159901691029147146281075389512936517758241062815174932973286818364296934199541855177924784007240269695222726603469198816256785669483977689447385926870492030210664921720207172698475431157141342952722937172337581924437688351497689295157203966061047702721376988686573057473962323555233793755575829905099257433657079843114273152207168200270633481685386786048561521672481919310167232620065527934096983024510421603106903891855096498039065439684740709228027129962860228801185490028678037609531896228662802166285575860788871561005738352072199824516989417171112009939465819877964251798815979647750148145864227496417957160326716159402234173930419626070346264700198374297754513706545917462987791375488976988367053058819852693008828975095710778778233203273548949363807004236442208461407449720428635261220658170112852579923134855772908256244072209627319318000137742621376073609730938155880446601381118772400545755611680288661320245565703143739501232985436716091529799264491690980526865372098270603623939086395760206806648927982633295606317667033696450556144256693320869104427976874923579025507235535898162686094478145538273220136377173582351293436376077304203786126530639095859830534170173758020439681495379613734948660957169470758481233506331097693636841194176471657492735171353394756616824520350395660807908155411620044635667402511117977826575286622451624507645365812177730242886904832596136684312447087161808792647733207645027403564764743349098823549793990096235097768731987224865412562071640197439132560123861200315660569136814116446990337704330181234330369412939306804018449277684515998509443184560350765395696062373546109657338974102216154459425852976479600290957976403179869697671697510014981208588435550093566231342816417404607380959005562962128969008595092853012732421242744595141165240358700852628023209201372687107228930475931757254268525981104495728638528887462082629876312375906796946701536183072001332380046130964561869077601334171404175594972200726777884115864203532723232710928041242974430743115495427438171632349971091466853032618955853118121644803074189471800824545549473110612789660132460308565069617834276666925962137511090422949307394940357948349792590707242204941486462147363629969276270654373245077755436978712651293143301685244755981490390203734457990106969845625445432651663330207444243555541891974298449654895083773476390167394703526854620487168778043354531058770309160073116893584907902325055413081440100855598516164051198847540954874081654319232474506183599996977387700862462548245914175608301989383668231595255016387386601920159011356215282421169376343055800090242633727883725320508970294708831632616810689572257982526750445917601143006109364158164252697219479245883575221838801019101576500821866188684123398386765337592385745740984429990887062090301425882550768810327806487314504090661489347927772237631989231718130982313099923634766205087377405684926606911574192615310332423734775864332790674247046282652808620498334107945590401026392562549182620265332768991788229611450094554665305304865346508718678320915847981388807106533761700152550101396892070920711684412916073785226670269770326984082822102446008931500944568342349465474052258373816833788976437201431440696313336873402178262486831694136419815708542462216904701383631497594069371380499590448385313526438687205319317468370919803148556286267615389589033750192809724804901608388074999113731104650999023739844917114499395861879469991175215631989266593036311002597262594116243182951907900209747844162733241771347070349481870258822720385692599929481975072674204774608576030228590086352571005946479561266631878871190688260682411572761745392597031074575325285399475246756420733773257195819863528598023680125813782768387291303684680604329949123635668143905322667907743856053648910611919618032863574922199258904372688243506710709145332713106624149974256638624792841390814757026504336109102841981573024501346144283972652199609301644955873122278593550344672868016661282554105202273819017671031998170560765687955141823986010607173713397368266643371360870062072493575336055065458871229759651767538191525897377271051652313183954381950367940544661724390084330368557104089807068218483195878679370591423102808621857879608227850405365525715630004998492461766805120795700799770967177509911338893339505637468907470253596854257326124253786472886238621829828694018681352889448424905209596710659585698845003977214954164150690265792421364515724546198460391326620494951103318704223623553351276451426597523530675546346899970407919966034916432034098902856579781461355380318676256372258369209078035795069563758485724937759212964012709956014194296499721689286166221415549703710981285486201777879713069374625906393855079723280916440804937769189761942908955343832916024901802524427461396013336225792894688178013536751671875503479631631984660099347888877649835168299650151325990041701221878355616482767494056598501241992628591025457741799727846025671138077905824593725481468928921551651019926600573359327656256316423716004551000105392358013987768295476014114195014431902370210947709471130615723962099067033721313163725366782896449097859072728398626444568689093752875652566774942703330443083964793768961827121835867065684966340755769306021671030245984941550334870514863330592509020152709750711203412268492057889268764193076598976490573638487764417649142055909869491645560373391938676995500127379650873070307505012090772944418061421130773483210854906929209108993013890012824765352851888563320199437010901942821491217631432224332281677114750529321493198256036861358011129606037124105230174353577600883897859368414293306471425593580707504836291520355014939008799804560146545347129909576962259991248584507910075133352530705020445811274452070141680048234217118552497410451523881729917338712076639531242640223954457721401896719193631881721375420955358747468553183016941937326557141603637956231509326934938837238119294174230096658496924706427999709768574479139348818306745016209760581938173617966321631844106057987446871298943638527100685007724873548565477685812147770101940095352867211264281057344984214592245494037912538075932645208358011640106775768210048234703231073360821577917969495975123737781546389715198060833604886438996406876366794079662757461474171396654173787330136493334233869339805291062654924768926540173744552743538513130396467831861909124879936339782195631868657345184717604217526488473741814744207368261391372920656378992921130891874057072715035447814410118017765391255018305136979449120554864882670232061871614487779893781079796124486283450857838065125198864303077366821224576392204710435991152432159185039003957441090493256165461162086877960789293175558266309342556851688697804105954548705851917054421050349529855022143350167190316836995864006190575393842820075867968132072309003695917870895948384567033919269397313369046265054983527188775083635946031443109065122011382563521637095658725781938728834697910822636054355154661415649509111032708439086963767933850621861654182393540413808844710907850242722548233639612146730297703777241691039757421430260849655090171279947967308843412636415426401549541365461309922488450765817898452137160458094909697656690178307088509923035146107823422752690750678415731805921260295909352965637956890974917747228657811963949256127356784647948468031656815929703772171527454064779527919296264718369062111783055670933560849413793947707074497876732841553402063617574180063780680211517037114784421615198540304076314555269290361548389471671976693417994038274884830488543965663224260406983757899031959190145886576535278152335701603677655139353841023335065697184280057710495255929448851307547758534346007025932269396269828099735298990144395250059978812736793244293938443366966545217854893192051749051342207811522892475871633956837604071218665009479732682402534592159162437551209417226124640926151149303175335061357363269035206032039074606912489378316608934498258805736074140648641741238346589219986277451522985100525202243954527020002093779371501475641753032489995752040620703065210933819569014758789698315750667093016836592534311471614209104412363626702411464364548143238713890925345782727364114843333431999537019853546789485179707615597285248179759450683339337633450838430460854514267352780320272378016938477965504252666282932510734993593205349534117059536430806708120355088325892889223632511376635318596772740776072694372264090583906572306546594630280282244634018673987069971609412999183717258060716299233045245500904129905978320893651258191754175457980533548580035296775817577359539445185023866519159669773055611784955013359313857896305696849206170080423929672883514166743403447598401535614904361768454289219841782950166734538247176765869670783173771904684172982795283903764569226156121505249571146741558942579831630525524298172568888260231726610692895759914498726565539263139982447983909119785097975430783310089103201336465529316508741697701445087315915451284516209834489499088931412041696762990600054896253547716331103452077767284134913034167632784153333448926483264178433737313672779686761924732147873514993724950555038171505675198829181444777516429075349881077238848269236812150226328474401505527816402854807808398296523418474683122104532483579004068844508025541577437107992823433862410218786638912237284791931142665380546210695110808689173109463733937379130107563418289505341107629497985001169461900160295158356888865315997709265768709046513324507757442967164680400028269095888554642962771828451416107694556255983454607933327174160021979451094249629319961110160121559024849349066965608462316465176547612432036274985758435009856583331610303401808328361396739276913170808094153498507192105679038917648448596308359887030619839964404636292136315342063372307356888803852698400909898991941311998575602964538037929716645864433900912433400688613000507757959826449651318172595995804048803168913083078585810054496572883557095261373216236015292679148299267157755934773459945420510347953826490274692973011152795550604558005650670661448962566482078089703682398269443740455794519436977193230921943778815771433638017660008917828288443105823020688849759976336675547213871940734804561584783252023911109173849868974496183509679335321673778579144913613899687549865489488855350723918093789018878590791678614710088581706103738049239938193948046763904531492866933392233162085007827756854328133475452688542145060674111799667980179052832476074059915089270317068399247634206447433954495400233974630565371053173488203253572450100527881652762100376640558576831669093933809393226387556534481814787712845962272528530919501933997444143637351070401876441976254487698663959690725909684037230338887796045097380812243022430959139670641919591354874764827543899956918056069013483290894778501809409939757040327859216257942293504689925264762808850918175866426607532472721814788000587328864575834990908403357968864702761299714115701112874896784070971357765534357802636174206688036384310409851275028854321852547199283725724314832359077305240592804452395418675886695431278001208567757358140519020052112860607136976925010278050485658441837404872759352017128003182734030878398470011994092333283925692887821244535310714275135090404474565100772396799421440300686304450126601268599766885703298912247720254035310562392306935247300018970846636584611926038276610392999233336146785431633646109324175206054915293708730577295499013235213853974765757178680687165416859592876124735832426162928412455193980365165054761259730543485511577854319630401237692442660285504215266774568870365668630187343714934660329734229070849205149731785524785501456942958031635347155200469762558121969016606074516085399809842839190746245360845924871625614979210510542113234273591121310112250638181076473187966861875068976462385264306474542816841942762206122821407596238291409795919570498421244591443291403954838939338321269451567774224644947971426138335815162544741315572959986882784973815881651366352644111529120631402713880190047866554777994421340493435960276716993217092622527084717735480504496125281432436917418043894481511564848726623841258841578657198599866929035430767938473450830632119546969701223957935532965271485139983463277565303985792911270082826478206929253042788270686920353367646422080555606743448948940997490286766448095920834251910985565439582220949701876229486031133402993459615415904585540702158715055060308145396777856367078066225667005747218699780407182760795159212130491069864857294472132400836347230514685912248761425682772047655015273305964867402379136348958219056639559215100786823810388215737107913160195067503431810462206715229282742045709311852742872024627053817730474536825798730214202878214114651817340466273152126315340483914375108898674918949319080642201804278952841764183807675550202284592747444239195534305949214170198121803151694140666186331937133016339458936192820813224589974229417118771810839257760326002536327288287968759160395955800669243741908097489342776860900303616701323684115326602950213469766453984724100857775880615028604498627720699611625563413737110855506347893423122087989294310625853265306325543911453002777734067755023544422700839573706825993285247539020192641220165878937717073902806549561369344220293241817799872340442337816920892664844887454030689522909112691322752280078832814733935969379151179245107446605976565215467221736172579929434954650476842793254732512753642221167209542698252337479995855555118764315245637041720435514897939879295491053757650030572986867534001129973812096298704984437526118820730807571755672261307428856974621707142764638089703197186409364946481946779829682396986591733948664998743498425864704375904619250898391217760596290053031524641520910952421784706533887660932435908114083915083010075258042418790372188048914042044286496801232869496850612102453171421202267315449481077768691506039365984408449615606036759790944237168739085176896632679819968622377323283428387538964805199440958934968559131642995840155960836753758052610652930076344258405136207873115300861951791863534507835238712057702209510880298377442816602398963178707759347627496227227015420109076594839986159869989567970759434916470982034242354546299511416848137952364735911330634206000610092608049369385735014553589712090872358236044980145056525311381065097777813583070042545035889071594237625234073485068030224125584008756383305893185975114642828072176859951926219783527121305113724936919771652033182164834642578704657738211064501584569044754248997600432068103005968399396821319835483472487044962452644706889450012999725572794092171146716760192122779954072690233733935501957265841720124655091293075397184876050074757430409547220027670304663819993388068940313656622600242753019759828519298059436896741768723358138821824466722212670488476581621743367947153109656752981986975494929202462760478748718128743263926859316552107337589275135457778460620982433317414798707192343043881079020480068366593584719005406341335398562924066724728304807042235193356269577978518303971814410961576099581603763437838789916468609349006231154944678986061211371476114309897672376534583828706666500587588020546750682890548315433573354696445718106914480736004885728236825584021569864083132420024537511317948951652122419727685588725320297171893717123905816622505481375565188039836320507406476348890406666630557864756025987740580505425922530229044229736020422855507107084886764169557371752978881429855519079202528228808227312167915683462412465048856973452696079001743672169314110069819316305785018849514777148291437554484142826953825570445281825925099273516877540640128235279216739586112645333191889478656556118593646177052793416549567358658566826204275590538608817908926130531377569901209279533021375283760074662392381872326224161837858434383357382519542588139511266447953959838604050878391162447919074599966628814408466175215959132101416005145635080494486094334557004335269054346839281495253200401926775609896433106297236153209462624445543024363413728730039112849348214000012731890887339360108837192034497255935592013008186282631644684518979901122735378847333491936712006356685807879649984221615813541931575523877094929160210316441454142879140199670333047408220357589231219108052514233928044991711025366135170082387092022027027119502345030491748509360271283487385795500930157028761324042319318953363759386224282191191885089856896937379296226148368461948573026307959675238240922218386654740091072582138892526799983480795759014854767722683852395246254949754764252697509866959682799174335190779332779654361641581772851304986004280535330173287953500012975951966606036579645558785202430554340664588398280401238554947209687939374861022465396427325790973430194991582060163340468736560851565636693538605900139595721033809039219021620824840513537090703988120531803889505043901981235390905109846593525331052384143665350105971345320488217144776013551891645612600241871922516412073718686527128175522846997306743242354616081004873950007920766244330314048618665993932072871969827331865504484095275948160041848598485078844034304566276462508518720109704627878084683055298119626380506663946699918922897829725357909174820531580061938044199163120910186725031399623045380456045266485258755751319489777036728388002065672211319241814330287578563090296758554211030560850453791591675022517262622373099625874715059314442275207492231473381388264707842035975828385949333533251211285104135125159685463679532282565049410633450406253251633086732757575928645801404856176520535042563277377385075841685640419404030285378784544640048513097539982246780356441086007554770259876757556980881740895931089645779101814970451303251619330355275796464731248820827451542112294233754404028337916679053938285318751354832285318054566360026912493012837420573419579051791064176433204662289445872003028032987884739242111484991259323427970730068078565790309786853524171675516320613514564651998574423130903711517175594906153504372672948651318963575778885243523588641949675338123649997744959924436392052283961278246498265457399287136388137929961383544214041025864571066654255426165914124512006732421525151428488494837403936254234598237840949208562633420226482202859085994447550957379523745369300340412544342010599401013308462251114050987731567056106288950605526132701260040966158296237397634112879703797665742309768646237007749991360667825525206959725513717537763845003440422245046491894902299371541955093770626458783455099789497652974529136548696113651595601524094896948769570505443043668406866490735367112057616704314619669520980681221023767677698697488446025011766161094592813069555619407262388716234619172037216475093829212864553043700660900592957224991227772937579597439738545702111895363427590881784659804414183697411328357209018329000280276246120239950731667258501869827474548008392878100313108264805912989732976406554967132961100951640007346765825031747615980120718386282849744221924885881837539789073259097146087274837935158270661722144196252578978067466745683445356641276952116613320488969438814212858943022780163396371547780860223122563770799543724022624479536923041746767257948641723357139652344877277712414644337712437416829915012789878791910519858983497534595462172750152946739402354338326861356759277882998071373072493743801893207100421139554506940373408583306025189532127806240065674256963146857821815307974508897943359579972732165072146705027031454854804073879102474186292753310214609774953320071949558835853822816653347638958157701364640211831134075328824681195908162289561633997411860265845722123345753382251412276742633125218095666633471122336718344460934531659670074162378031697925314847032521019019323133920180998779324288479300033882778772365720221721471837409016842337690155322690745810144641146624568763558827525436313827214050741806585503355985413036264908703688718165221415705735859160841834839380833355046263490349142027602422407060468728655450126655774613654416687425416894818342001705278931337471774128241741632498621752436398150830442309266995295393655640645079400748589487711716739908990990589261513538570519055711857798645432899300167633486995445395398862894880694840554240327923114817197272103517449332971246486255546997207043946699239138479137672932790055294260971619789714153591585083148730230034072260775723329583527231019904105959773757103021939885085192258614483993101305090738882559534685937758327154730476922762119480807406042131902766816225400270337131501562237071413929227591471533164796687854403112268731437201608152775413738816872139989413447949488152785629149995787465215679443011488996320655145562070376645415990194608734112505475175979195890736170285055138247391001469495132846750298517560908487717841914954890850401881495956505892386523086482719318230577811419276773606358195050005174599336966776921471865107637826151306373626079932915863882874635097411867531171307997293787147396692501352247685031567084089304213858429797626289429935181047443234178821366464939710653402821847795198633274785931148347043664979379832317712304592172461375034344915102521249260024966909787958425069886657250534403567204128172128241821348217030801677899724207921517156727851909387495597283363430419894452077971809295283899216244974106740208818187499861019018630415506488038912951612244070243742902451694350793129143322894589216095665218084965825789285008902206927077651547681867804673991687574371194756452709045201412709861285177921951198532867491800389775453169493559455609250916533538429325296176471566389291683681567597508139826659982491211277673027054151510614315292368985691662421882350725700021266662200031649879183345524045222703766305524713685694192967149916752348203086300546484790824752274531013186355306248383108213475354928807041793061082054948946103273506016386206140685442232765713926358183457007566733068784294363574476563703887206524593076517413981902268548190555840746988931636340739433846619821764508143358286273838415814838942904292366170574087207802517401270357661929081808031665090887015136943185770158995007895362466968422172507339313937278297490587274986033229665611420605958606128806726003891418871790421881486398398474031407583024551593407955228884450201147936101386270646360861091747646317857092521121104953860773267279575066485118087387861717064793701244548178067403332674212796721651330018123819683957309835781063578818049386864798873185285522411381265857709798895108504319443313408533548965638089256441032859059399487078064953984983195841387777815797140564932656727436829466133642656271979101199817755222162092166516292330578207033049149253307065203086354248058708944961017025441595499077964685829634691752848559375467206114030109858813171646092095556356540101188770311054685025923192582688180802668835154409489327628229948921667023586863252443863396757540959424482928087965251390479876445804832732741779135383401320582550065708487783925123188425612353125656879343458108167800613430178419235628564399143394107790645672773580494091854266211741141558375766450214372066393261669863959617681308857508152115933307584016027064044590082079567910140521449855595729608368053213659515882951630306522612586909739682588077247055111256314494910551721933633849622641386610051272858102085827457594741607013290670731713600330264500700457992699826445930455419258749072331874558783488567003171187475783535650701495757232764739848565005557513420766025770664614169081685462218512419361136188615175816325498919860127112445122052046448385099501306512460473990810181104988946410798454278727400570627798380973631034204853761386274081380448128374643973426722239250166831354094914205168866589983552339666572206249257716912143570120482075361163777703273674921702438127940783284143877134364717487463032188795502216956054399117528465078752265925663471462827866991334228652842532694681505887902724945493692533097863909767954674861182298145894612922287065967268693288657701336566734687508651759343811129664207071551177428914370051297959782841638911296520710409516056873829473658387469612418578023404519225286137315540705199295727508241769171845413235076754913915615520521836375357349416120914032848682607289154596845124205249969310938032251845239424617278763164632521853850246441053742389681111193897059877808596206856108295046083986467113557249493291683537566381566678422868020697532563083244311402057360046018943609246893729155049845761167811316507307438605364099011943678549411001803713379903027897227608245725160876289462505570550983565313420667474366816602897191750338250643910399279381354780673883831580702774158029907162732221719215308581444301983227558405077848627529099531373935583480494254272952667357178811014406398365274710021828737790945886770189307640498049924503191305991625673175382772449372392697595209146263880272807679910634611990631695393547402280059053577112657736920018452278396467831897164934379025860349662625636139680780220237404567968730295867850767500872637882484917667116151444185466163077065938095611673532844270945581549467701019627790457489691196985471401824414949480623149348478724753918273490913466180518617521944681846693738450880240950690062152246939584719052523397448027911583371076437898937973567653103575292502184128803092453874939143893761481518320674033668322213445114722541236543858874054236101863587063487086118120167550015478765172172719459360452990701631801228120432329938692996336717438622023812939998779975270472754001421121852934385231974445162293608046615442336360694107973957939300491468619265820714058289435077040929509045754833598738675184281252026344154360112648054418331636016260850191092934785390937477438789458051371491226162951971990731146647875782939407298843140945906713934919741864977007433550078766320103097536809503267696335857651485104061695834403706228739708158432100404581244692376939164075511898381860760760854685839334357544725683280466228392210656279933853147477234385568508783243875709900340956449882014929201743482167298934237669454266002618969138613095912369442682293540176815447692205465581526457576043852619409201635515005588124359088757456827259372167639682590284175709056682336951836033837080178946275840671508394595332885178596976598558505593240691072156846199131847551612426906089740603946805071469483497698217125251758578752318216561421280399023584069050117974693829862195188108909199704472886605819312030745603735375803100799840843224262954366855269453679095910131848919401880146382252665966219511652336839445719550315773169077484329840384608998354103600758039655945776548636212145314207997567136313133215410247427817587684188700685186492452897058504039030387527901102174677308882359931771952045705679476903514143039733777109187685749572421675233780101482007529683821549212886268408830434069651960213550440572093007781157657830939564961117867454533231518953929411224066629748355132260439507593927186299825384150558439695147336887298949852880344303099004580987396471972016869679457113774954638309514573454270106319130428970790555600310193233167140218595617972999928855433785971163446865729607061713679680279470804671476258213635666881874676417114265076610782117866972436304758272625927809201056595466045980909869425703589204501204530325515686098618464480216389294522548612212062444446338539642252127999101607424037528764270788523716334256917969740741350219518628827059029819677315032158953051015514666599339394420944075483015542108074689218666034602929688111417194490641401684321613646438818297857751806747960440191103293595855823296352391282230462377354326352330417845475307598650394247143571589567170058412944469229471201633011484834464853926636308473593315432786805519043206706052840705930243925911928240085244278616348021637613211178678755912155479958008455594163492434502166571399208148924586428183990460564730057381838633975060418588942729890850985574547511389388432728180344672005516828604581116866353201585728761758208447514802381447499688347699994855794366331437353435337378031309130282562317810290070877834506580835052872306246842863585810931527934929392710974898739458183406829042729969803508132413631090170567291957108628933392707087168671765426122354285908059952683724681752961882704291849244009957543150971033006708216015973093821478028996891561930659657730088130436612866927729707095744927856139394871545238661616339002930967270974526969453143237918398532606444600610473563683521568993044544230910113588188313715686603252623505523327993929051089302538667170848879190452822192547889305894361397347292508110583401597436837407879826763137924623271198996351648665871506272014686321682599244916577360087191848528073624280810443255019948662122677409924940831393967192405047682526202016864367792828506468690121120963730271514287243606179906434917021684199224372552187705568184859832353055387991209624555193669681173759288021401227856716407219925720685101834239878722220848689916661843944332036090696730923650154145416848540833731226022282114514026978092373487987722828288435214706334081768662005353222139121828996358778346443934861423153533620865364607454806183019231338785337528798246405038655223939126267360737654704441090413852964504669147725102721175416887499415476430554570994418769363304830523777216182049995372701148426644836475016297686076017405264880490675006556572077907980722954690114454479855904713854267174005769589587463214665553076570342153953255897502555411168207510273878323475055764902317307353437542831673129668670326460304799733918362903177006607921003807921952471958311787996776464478679108178821739701027850890522308627402127576663560888813747930523427661913553353554118479565597605503216278944666881188583731274531809531297651457551918452332090509129427895444492495951831148836053138583751125253954352226520063394731150314906666652396266861006887040019173833558833297106602857080869723875783989624563349270200892420908215601164320988500138844425690134873947234773858359038268791366996106052342101949067759808631018890555805067281546932209214590146453054325292621293205623186882285793063501186448381442294005734430033202896634597246349158138799945296129664274097617277414120423521451077095379469430427259105518680320890126334623873486750532531674531059219195012970918361798675052034718956034298887803732874107485136300463720830334497821761795214318596837344912427669089949185656453886080078031628005395498436177678791229557051735488278429508630972717918489130060121236649124412977828084691382524673614179548227126909946961866994995857822568092651025791633746236412878070385709654286661790993044536593499590606427801383552080117176895460806211586555561133899780277682679620344374638495113960322467787889110025541914774875205192533029225874374392222604541611545544662178402765259455663025909366726770342057676256076749098037427364625435310210735779972709410869782890875967257259411278608878142136575697597387440085104441793154872959234313130536458110767540378463462887089825412278250445487451308659336099298305433031869185276798025054953513783494121643763683133891254819778772220565335578833730298805872732636515668941899143299776593924951962671077041909330281496646248924926430014298826718761678378861570960454458482906330194592761672901123138439014338575606169753706047786259185879034484145097096708214770133472196156655590634805253523612952511875312692797690685463358907637058599822522956878258214883294499264373682456876093431852820200958551154098708998740671861390085110078557769462721018127512264804418142665967832003377264316801897363435168723585227724165096768973949427311008136643112140103655905391400188187322163655983651905706866969162141281085530910861693896750613103048723396991794408569058040997115503850293689717319579697108507910336057730041391756999373709484179734242509715090730641722342364653159085524823259327576175050136983846695819279334255432159821177109717999135314725509439969417879819321289079732786461757538828889679570544149965181245461496811047875902953539590815607449367063564402356345256975078866298286938740692868532564220616799570949478779953509665813326644991655264839091192600078712144575339553585755960745775102285401246889576262488129301942509207930522911433581333797724619726725829786659189856101012023249280356175426719002813278399438602564129066614193015601029668819631634032130879791055758332418513260338675326004152574542556404978500544018898866138594811477018047738979834806411205666394739768965270242572420530765250781244699289210486521864277521551706395438666156568667440629162328949371378500375442243497977840703624182018130911660994120277412086191350373421771558622457730644331730109826129595568841472420241858406516617260480143106429742827274659749940743085180854936614957402427076032564541323451632115542351122818392597154360662510115463931383826023588616491329096145407110909328872773946379240795525562055946313609928299136166761450040888731197736599614750005856206110937527209939334121572090239814567007896179861021139585952245701865111969349904004055888522924107586147925421224504351421280712517498033258623123986379966330505867536504454437750204975573205791391365524481245971214155855968667430730121178338219211280391304446792549710798315703278710905466021349725430865587899560201959890043431719161548891528611135883110970734131502175270734389704723078825598783785587739542607239031324247417891752583320751617636974297581017084941888377555779120935691116027911736440728892525166516213414199836715052224199664671301882511994537195173150324892272148883509635202718663044869368947393474402443625517531269279475174623449644531394903252563706034159364836708123612164845432018137286120078032600911463271011181169103228451786165701217312785870676283533963170086997316869730681632745503296095600253399115695818294612190238092816264454006215044042517670513471057186503922322062742209945607012212582931902093681419084607603339205611431802432324738313286499635867651802006124496867164084301620765987272644100209708080895480667833800414787447591623514639578987496372672242366610988627933926761883445290385544508766830364454248409991029557631957379727922357741232266149113218114087522355833551681520796069445607267679728641604727033079436844672701334653652697708735565759152086499664652920477877257605837039823852479096209744183426769810534500867955200846260066028171677593624517255772104525724300889473380148497837183599964254250411016961468616705280167229958814893148257279920792979984252962394119701745266680545496540254566208632893052902631143540292789844483475590260406633155423563815826268588358902963135049278150431377748348965901469136235259136909401669676346888451573473745946389575997264059804384188141405794086064833971614093800140601344353852994964516888880614776921900367869788545720545235542686467093217683144414673541457728337471161316630277215835810673531122850306656633276925080071004519232726865210346638350781881048251493592916011883199405365415358742117018767905055510303941365957452954674439834618947296211857373990050026710541482652576267183932352437948771994514658249335102631383255977856238163524743309271790128585702456574878293596263784757855857731710943852063721678582073840697780156611081862696979538153059592986625793515762884507900811523091240429163808283787327947022394482881716103839309027792521220267826377985215538869934939113082060260304023169088545250697292910424448641840758299506938920717626640479358443185621325632222083416460670493303846498350110177421391334457518630872674444130955453777196542215085667511516488184488136008455947244402167621450333327104352652812710443256995506945626825458575995609031136851330791678360695759899786451799601843092753159542991150606614613597641583668390136905286736189820774524883743235155805493151366701079520965580912902682813674714198145171468401054940588175270760747195005599555218505224293266372801475551166788499955470204127337005780983704496032932401291845057248402862322432662805755052453208631589490615012221143966530985201774547586483359981483815763479157767638840337769433186883923776158686853366544758197614701076678408295215192329354181733021361807223067427503214867426441848639563887268342031664426441090820818944815792170240039297137820249160327975883082641642528559308860611020949946690430866166888340162058530600166819322904593291650379081456846110703974519282733705226487835554325436155739446691623366646027894287167020849080071048235657979430002266574321978087752758990810627697183552529588954161141237118054460055258307474021975461850633621617101402862881238246294015305885233680352131134101835426121711502610714125545103952944363546717664048515712262045635731402279854951542027839518689792496088614317889030380608425570835297378684103910072454000833198439531118897952239256952245301687794341298047550074497876755825064375068180164923984728052439767249430257285831720886163806237369095800954343369624763912986456384618829476912934692835127493945891850387596525716447633785000761843429563231554473844975805312485332458359761836771867590503374887328267347965944596603758277878959627780484966446664663422249059039206033823867059250329551211344084294077230628286198761332502285796097487878129753428813112487631211661781867138742081750714935442523376145956003141147168838118459828183748160292792149989962652440325873634023490311674893160226860241330668706954371579527515331734715807956375067391784077780085141662974152721008586259378878679184573868433684843043368391847710863131076893513814811639250541889530991167663574452892927970135465932912821413908197095861508131219449315533660991499434026504049338978982354274188470488575251556028148680080156424958585909363648877295221234640905577575047571132120090624981241878240348694118511138271204657879058976856525104075407987439365911965794390362345544110620412547843584719358464656510908874968825334021759938098417605847009611569616791405186757094389349603511231263916616818663295888429984206234143687652510350842259976407462138597544299972267163020000370667506097487783609861722455382568300173573600070952236545754768326966087594268372601061324461669457021504588637068582141522402043386517489341894076145545661975220023013060915867715831014060452045941326527550927227830671422922014922568713153577999051490619881678989093330947532449599604887828503842712255180873427130922686632601877836305064931902184137242142666849763961044362752698016828191280917281534770618372245346472443784741361630123968164483058321702042326057097062507624764511491593859969097289221577976294369364112318456340709096236682360241795361367713966403350487732137047095056038077820045935675997167202059379810232304411862502779708209436561250704562812253417692458662121076353908343564654617644618463661247495513326026513501101118015173226937212806879376652815247627551689333004395518893249638109589936385925641730749513279637307336477686308699803322082451880761217667134557000708059916920530897485931156296230927070987011061779668899386983874683849166599767402138535288313130160647836189218669128282536922975405060811043605731434229749853702151003967975993284049178862625927316297510192382480984371156887573042576733125213392252685508921886600698885187321213389523801510883496453098510932848958892883634648668222401494207738959194431733416254667207990367237581666402870427725632616764611190535769879698321419397938358314090255259437401168572466198417944190575523397438602448926026223831036035581215804246225603620679719676982694156387590291672908471599066083911641940280788765518582376016508200908892149367675301114678727422672296820447753108987777596939181725887447352661019994172235110026123567079723274426062588417762042315203082242476456733100673874428043777156815488171749566698849107441761353227911990722111746418514284584659735863392631770298116566398111795314267742407075769218975064895991155160637265091719403991036265100256668888149423416273306097566594628980423085500080104877694382607964357894076710768106631101745677014177104730323552745751479703357798870093828336991405146323819709807805810161017485359217686385670302336238591712225621290864811371870838218869455609721444400749400553526268723719928617048858477430445136343535327746280899543754887065523060372911485789693504528511003583152114382356297713068401397741214225421546187018832969771682292280074655263740902725744256201808310099636915513942770252306521941022619223655256584526526308394020958314268305762150449556162477245529526875308377877061238071860962595297091487403465775338408422345461858198846337814185923341817833581147512134284109793633213435552335763039572499915305894317304225899621193105303598582050536463724551700311679737718870266325040678714097203135899733164271470001504667933095989563666071449590505091107948033170232302057707227226355561826532866183914854682210703458331617083541195742460273788481381968620953108972780521624221758075860677037581582097811395598516884722714542132563871725423619781086119432033410689168536240907251581303217385063243498442861061596906710715435982784460542235622598828630350616818520330323561684382277229467194639215625960461942377171918041491508930055057613270469679152865868800628911298663358238916567296890265364018015243134732379215083159956033041099439839320540323957279392023822727255028855712675438373562741507941098325017465803960894841914505948188017850172069297214171249289785254802811733282789195770425917267028354121962995025160592017553776161155535246305722404695845496469716892703095255283682548625568561020693576588448792674338729794283054572959112760957081310934820587604656473369580376302271553148976509400642226819238256089093905817796718442625539780256029377204952354563184791366980794206307975637607999813976482423220643437384668398852644743702732869536255890545076312621005828098176143959795326842014317679676510818945221949483729823184189083645145373004186023076791886167888947803544868864345617866661530162839089514247637861137246050443122518827653842109906822026035530686028478381777172918355577109883477735628444359752587698326688736381248817913635681998802050813259804110613738081280416058410478538690887311030335755468575329337963069333161494432432053241684630498547569465735548405587293066321634615646549858803947438165297278432136005403685754525465924576675267458200464641426031720901505369324570509798763949310068631505904770054431699793736095034998808212114586580930616052293326580486391209718428915806969589534141014165030234005892545349470104404911846319526294562390005989469811004680023344902176631102180564976761976475934302327056524353194328547985730200981711804291305460321923104157692217766432830889061250476683804044279966263244599778060636150870557452399042000605652305409901782014126525101451175921147748508476187059039000297063744722482378740003407334831733761903361251038234765934286016701633556438165295849166682452017047161808743210921693166174258904597753072607589902109069946431032236235421618337175038342554305824817249864112228473910747533603942977941875206671354393127118796267624581960962233535390450327132125193222042499644200922067303729148520621604583505999565942626390664794722005063053924735944339413130597009383462232712376039550365916397356999072194265659642039476452810207895080845153478196690922621975533870080799605770293533089636883444729425136874387895108628340617506188440828798005640676861076619074967611894587543891273168989775873040345560449403209293020115929429894411638017090426771364984369286057412500147623721134106200105319890402103060109177283766677996552773862203098188287328333498100080709232362699493072605583895817176709570057831827796210009559738764744216383258330812079355535248872164742956337489524986616660861790810535447077204756889381245410037301070084221043311162664495682693007982293535386714318403804575140095401149290825130637015926499155672015459234529738058623281337234528777190934418949329958025349924899936719869836989362190235973258629742886023063839920504688295441913773284713852108152971580622715307376141171093249376142315383386451154377115062830088564901949048023155119468446374631231868766367427348668610359206150400092694318836548597902696883863427085735600296044765799871249673797526364581150097240242033495064922030288871854905208487944163944155709804646153223002288818016783192479806108190359818198352831077590004953025734713829548886802108931286719694559537089583907936472833396770490750456955748103002513962099882797327225928483141788825810680218666885194039735067941747565404413662453108920745792888821243223716606694516272086629055133865930545819295968334772645409006082494324743633723699123183927632389330048995792278756239297539793265120337142489364675718219981446083208695509908800873901486795578316547995969272348913447734314987701793857954537812908708557760467919790672943631079934549980457663257007604531134316742102653384008138666718240859994955432751475522234162933894792065968057868138227171998830209536700258547862458557201144860756476117333514414074062065299856219722306362682685188500669020012966865104165362143628130956914264253409565893359808435907786357100071029702556282520428301915432576015126897050662104848251519472709022581485863408475683711221974362081971138315091839888050842859094806448774952036429768572117642135131218927451435419170537752250312088995277673800177691084602685344088822166070067256891995199685970681525947049865756837471844257789720268847861889995448715948993348408413529525024653838426715979843622861377747752570032657128164074161792554211416020122749502336113947970763623466586770821104306057262357535358503323662315670571615533699888386290717983554541549520202631307573816215182765093634308491452468603391253638923636642979905331337095007793282142488136772120077835704710453508987899977098339513707382929262381079168778575851103987288320911718954562723490543623841439005316052661052037968272047211094108400869553485148230778266415573972966539893957595515266129496941521248545367318788984859713118377457013665320441628402339039227696574892730009084237805364672003424989962692664315851729774748055815366422517325949127401483463782727606967563559683433807820168273665433619449537405393881544865943671529603845423510113008384246014946177538900123551287348880803546412676257768967591110108453877560841448254611327958267632471381418255313900094477380815198110282955172195515473069767614622902664153758403308894061090704201638672765871999397030574414191999357587886812429455839313305374125043120018229385790959763355832227219036689792806239306067469945305491077985815483992956881883585988871576744405043893727980530931356763320190424729548679878643950876219057354140279294968114038501900642311196893831817461179419582949598799717240497997444400915656503975093295141185443202795277384031359888793350328969445911025132128626962696040007055322392250909654298264137045117031773970138783487261473210880964192633788790042484450729661491598102660139560908081419832267441730840273202189069925447875147333577995321079276159468438928983961886971098620168813067762105573832407560474504418588579275859809544087845605303311151796131871115296518040938253816600606825933656209456464614813384880336335918195457871078249636815543524072113160267680062157106690135953104650448781792886154183290805168606540562000993510314332480021602865201343274903298209149379621209056077793155912562055030232013646621328023979310437695614963874787851672014776437278077318337671760988011400860547913488332448342134848162806389351500795481115299683545454965206563988652791108177320517442754644741957350254304850084458927936851206848053416074919441821887812944709399059867024672101116970893371764014392610243033370183686326074569486660188900391560050172968274577358918865840753599795821200197552976551615051154985080465052488033349995003372963821572176160107977024625417782462608823608461823330467935158617637967765456766865130996774862932257639226973463594820957434090913576126519067737782009056486103889881014976133651899798043327278182809958319535779450529565824880257958956927846796434591653838532278470789551365675276247353883810130707522250862955180821600198651469826233125191105008445506775034046213204626263939882360539413262573398575885920159630642911484477563068021769284767475090768710914359396321052544628341102055023157762953487056080157233402485625302699047306289313248595819416081729980140160647557272571203153194873841067964461049816536683205360634315141793751511729869554051358169508120483916017542929242192021606184850946939908300910629629770799184530027459336193205586169840045465381285744557837304428321396133986580872833632720472015659074048819161569569732828954725643407264693094872586447940890627295467114631817630770243369113272536690818989802344004884815539384057263867281817739925275835647403924288911244334908465456902947749183816446734240985152270780848545289497332687425035876023893041424643455240320081529855093309722150678987940077210450783965500716066473121259794783976777045193700696851530760681003411809198500421190631658555820090741692687559004246797910023362897832438955008645874095527135267421779078564440837456869653970867435318364110919567150968127944009196693336556938492155335006293603992409056702305048574479913431523262713732533949555794364001821873285877774605897296491399639112879690020671982293101067076611613244191890864047416661905241720690207834727265303609425662692321589160343538202402517585188883862087308091150349421049866280811155277536209459821360014658391619634911728540586997556665070996922826449454736345925921238032570732640893780189323450070548386769616815043484852249105778813693461045806551976042772508430576636895118538949242421107080519381209592196910770960242935420149805267507924302315183206093542711662501398235074662317165302485318671426739110911591654105853777044460160165287126674232028354422647123611563565648868854104072495821131053945379632297424425586349776981229519961678871409103922938041120244451899531963660107976258061971758867525578759119190971543561147056741717913777536110710162023415723334778986166557816564377697759452966377173792417585794810821843426936862237262990417701127306515995662641278641165614190141337917069654508497896706503195777513333087242511159547822695499844719118462211782304472627924089602647828571882909338589388469072871513421636771822496157201946171313960015591366717537705184426083392296172268514557326056132675353240886426259081925380701655608743476934859201582774750829049769459672639299330361037714395891727211425481032549340327321059163348016038420969995099036756016925849746032518025723982460068697109852863865435506646641414880952821641107938466234541015748014785259604614213790329270335263645888520663146301234533390928930934177222623769269134078466386913778376086295970554616156066444833861177607443506233456358592217293801640962714590632583397718172729970819646890838284858614209439438016036969000172477051356333623609555126741522128886750239411945037809078184573364597741407241173537781282473814870290955819428990949571591252717733953615840768910608884511982097977868641383181965606023483016832567207672713767920600137129536010225186896808990891984827481322734389107804189912586744960283986652194188974451130495996651453505761214103332142702079821907836162496816491173782817215856054921627099926560825301653530951557456866728637173702914627105068488845563053102733213069549940411072866881487367597700809206435012731795290286415184701366079521528464716889906576334115928079119031792423532022683561507817041688021550069472157359383166160479610584983905673239451992709960853693359942586954228538606641891860960708489945270825115425766055096860037085282368277131461878717927389956343327699320327295675418033433719033342464996844193931794687496958489589194588407833361154218425826114417616149367436517804440496167532659365879225753928839832458620748747690666045015665767261971038806848294625438924644053328959060202066374632671568675371834128098722182035758350403495331348543295112739841425887521798236657853183748249394467484862140623061411397401771094755770339827320537318163287519352484526699975753067336392764099540457258332912427139248986075869714582352098511239088584267202658724030778428813168424252470644597522686534657775233405943625957517341006799292515239478344265023725496922533160561871336466546793624295330637230670523521545130185769513473692607818181878022487003820266590751849648982009010478079601332316864621064377718927443416935712710317468986225724606142821454432809164000909507844345617216649710063024020345958088732939777397384778223567075621259328959912920803841123722398559547689008682860806911279695703437290722449286384002754055221211773843431721644059274766841056885496748356701178077419860923591085191226254707109358400158517539739686082809680530937934799869065800760381635102874846063296756087432867637732322726451239976703900404062208978269953537854238269305611575323866160529142061548545522289830216629616077316651049963953733068224405873222573164515481251311844468966886354948168286851058512415784450959535351305604163642714752376187691469088478268362298456233537466340706343557333405350450109245123177448865225296008075678364668963869745440510648136469021270636305829722043926107338009727212938129736799780548978006854808504221282038013386994185227326299227621213058722959235411776398883278149882153902157694265929171016116816429890558908278362524890521823098124167907866384862623065904011863427141266410126630414725277670655037217439361127024014034040676256930466839115676654895929595019794622242855235381826317643472749128138636932968837260659213390006909410441092984131935003659213066640616732119478992157067517562296529036191395116353371415044879162265773006591013171323718331704000683960538433793138291817028181015077762428966609080122522794462381555783459687445674250570962967699535352275690152713800198762437499330282570450695040896977117490980549655249902678039032479878703587883226159689113244185621495193664167391630345145489044628394754054115905203342638919597380923975006485069535484073204124850698759277580718936457498660346391546435892362440357881187882459467338309084177826598535729084927610351454517069231342386793924044192744111400278168960428876310111291196291410395091578555718192297524389161686833291227965192302696690972956178415404881807110944047163437477305050252198179789806031939141104806578432786193396152545400148178678272015940128179934239573071290477358944340459789002540273681631028388575879524453014243529993138328602159965356337213758508592247406586877574045847650591897189216688895220329647086323725778488004294490258985515335392635510357111618229766163409277810863384862877361934242869288557637844794448865490705566862001895289523677844950369560745972960462883517851036330415753810447741008337014608610987527123919663945361898275968695234188622347022620933468752467055222725436674210719057334531699146665611159808115737606733730477940235995771098361343797791633187426209126668457110609809300037324225579585646847369726212984071564229904606362297361373052011584110224933492875491924201738852243943923359687198245535195275605854589170597957806008037751574207766700261515676202023779761770153071588301956612928245976513043396101340463833302386370585195090750582511781896686419516966143914603295622115643305341154911992761710155467556135738064071965396998662846646918081473740278435123234085461997909592799708128323508847599220630452055568158410040329980217600020607060333645842501294976528777715798520557269139072666073686390852907512912474069607097966526384106512554241425769780359807345229083557851010037764629798922097872244334254335177944609502213158059619967626718502541586493355082941466582323495442341868716794150826525131716243936031415343341168177099283645978722427392655426830246750512547474520180901683845290083950324754873718581421180186721910242558509783246896024782202322884020585499645823641215448003996533536578167533183014897433268169759686053585569387362801098133614037240539331076365614560873002000414084751914954168598842286384186500766266695598130371138095883814039620580294645121627815421369821995248674565506480095480992365674351155106476214811388039033456600384343795946814840422353419140548984630380911746066493291925678476801479852350991777706088905695463408336051836551821076813995940563431645269939368769661633304503497677977014561116676363238640705255492829932084770188582540734849572422261672405550564068779054589235199610621776596962878900958298318684317421872218653686456363403324572011134699893665118316401341947514092693305953917604293385053082616174006578606502296313198632037242030777055132085623234361164261908577347217017941976640508236492760558078332945892560562471025278923776436093257201485452873520209570151234320367821954944821741679565165510793841508215633203521053529165083014186067141110575837654026063577549776645058048432264936074764441651946919189534542890389184160830584783375045936603272464512133770784394030602984030587757047493058255362137128593926869158833793183190533767969346203044154454804211499125096848547985309859570442612353318746451557562329475472652722671880402585050182590694139856474437658920250880724184779236704091463877988115015629857370438679544166125004805801783547238024073493524668786218687340054741099271878013929606685294577596562503341735414393132589194310445808122497274737167108319019562232382440203224420165946633575452137408916843323570042747516989184478677725490591755566802670021937863683321485885432861980289920353464074036193859898669146390426722910569806309141404150275458399575242597288865797371290151475167190916558154477236098853671439206189154455807084542102356830904101668549995350774528933116250507837986569799042511166102386334061221570239921565757961063573091666767110814041392468221443367408855061572223378860972994473895004396055872712621412925621027046366777528378029482269012655547632837744776704351121016809700424935108806049215222515096130473610644629451214819264769903398522884512980474314147312691011167470154030808409360365079660113336527324643954573072849104769856294757054355013674998685546888609939424399697603976080565701050132591081115858015809186968051084930416777129568601776781568129180591930813640759381975606589469955794465174764104559714441381412495846494699874932188025015047972965979147132939174767843118612720974864041057711926022585371410860583737668374763153565184561360687859543960054636801884947855053115407997837987313391098023096728227515938359826887010257592481026344605600548426766751087273523277727847317481381080652447846133557975327593598793934455243631115718419094636876690643983765524987152104215791360166296981650558150590711070208668189427867499656811786485221344661998224670963965590762293917918964074905775162067143543611092124108953871383743236975645853413094451252914395123880704358067767778623635197841275024695502541078888095641800786313366454997249669657412420412683516949365304133479451609019347758636832439422581403386954910622635936182656992468498343985694648588652575187682032399042521001969741007824927279296147995207651884239242891932787463785269652964471548938060212412706258206455190219577430474102728003416688677535348782956477416066481875249303677678228251724212498626337452317449596646025367056056538316745914889231724022971357651120093351475244203034817774232915385032896873572454342359985518739654358614732300051062249696834927982899665998045998662152883218683600184544002175700858905155860991229225871039777650832568721044054101453647155902156955918847468190021624155538349536968335576171906148329078926371836868121431121575500209952521943852490489281266013297088152137592512689273512367468508808534562238410269340799911099685705868838999117829166982851972927929517455364581643457466633813632729271060508163919654545497228240436324258512935971252046995349694929644284957678196307282182391008360135867697068599560085683721994710142398280023685376995281950687967669351158622247605957774408245461381511162151647789655086632599669393298134203962307830622578690133294577333357471355958838698357224136373302561261134602152262324668228804563633328314803943140333536466069592860156351113473876319275321421800739854463682947580604887957250656540916317819141954194841027163385106137913542299671874156869506518520475009812985697783122743016584134182461565067156626987964052958550874055112989357647122566424966371804316531690939736978113334097075024243463619239608771895461566264747196159579791606202723913392380193478719290415225529650343474340821112008840885546470200117289993226819103800651868440511715865110744823586749314874859418810309635532011312166296937345664188047424240469947295340171436270400601943918038961581404086088575970021299083979528943087736972392718621964118636758536978160951225837860958239044355902675998650233930408633811555540689603701767893473082973231214072882248935336796754843064674624379200595512457680502248966607922111203159035281597084298716020670210857960564039618271620775128921214242910636339339275248020280452131647744871974141116583770901456964360269294755087143652512201059413573797324804507413618906037571595012770885556296041869274445921272234459286383341442627883616094898967197114777845138313654531630693308021748381268980777648452853806753817578427258798905492733791828192743661702285813913617442250288970993196644470886074453251880390753254201706558830205678881724020496909118687646744737657308936999187889518852955066175993965107029908122736325221753956797871307232579355009410470459187740915835906296231967284468570922091419017338964773849493848677057723706387466320666868828949714052577165778273560763089315020798799591243122545517217493279799188899019570093496285265202420706953352826230880278851548017820117324228831535259678825862357959631696030159292872906250228762476836463765502086226978524496705258380570292324115532780957432176984713268306562511825517904528319593848655357424516682467651496822276013314365184971985789647784075784180296126773774601946182259086770427888416544632546263636334042204664500898753554379486337947806859822391178285184670946127578110618714190969266330153414194035385534931343996734486040870590728294710393669423360977158810439455130062894156203462348255388614264058198580300967652783303495814602516338139166558110960343007785404936614132084287303901970007253978815637466329903039397659273396810962517809914858903633798107288544289276516662192888878529039597999933838067618985868198490468025024142213064868078782316111843583632627236081243702233770645592239197762256186301898044939592204493568597981300192027488877889048543970544857264993620248919165452632415934032842462245269582637673173587168569442391930872712781579098726558315739100194781927302081555415240245916455329293611517083387957114898271305436668281516840527444817042481930570563243317241360970338741219180114769917050993180840737375713051318274972000086044315945649502758755882997384326020598440940460346302938378090054813579270038364851896101138068266505176886884278922743493081177398264354694325309293081949068212063566202636107249857843638128501807138339430201694460490242946007304915947247800774629121775648136145705863414662882380538015876447558823658375704830527023916143291718605869893937932031750151255042427427645802782642289087352674410163752942053776691654732234347464589563731939717623131101175688005604187144008233956240791237704061377322007200153262642621355412650977830065467007303992854983450626925896160862763634814274650394429596914902464926586712871673231541987769010538768828312645826568411675232106479229301068462550584678381176133136773661072891047938546747231605310043172065777533466974924133111685283563269652292079232566889424692731487941805187335924201364275909873812623723904749601929625670055506026785576617572564810839024672158880043603580077870666644919169710426872607811485865238199875981924582838310534793054664325298799748292934556044352670235593943998198132409510822149674799738542744719457352509019998430576388354239066434860792635073458028496034568923497280244338542982731329658865412092726238265463778915197020815874896806061533742830586034079228786204027594948707119190959539277893814145010634548241597200169677195851226873067931469186073874443580400878146194377184588112880838574996218434962032673418337563741009910518114722828484861267975061168073112049371485420984337162868587875341324719660101659109624341943666321300039855835613392679180168807141826621084746512213741652884655658934403829057691265046360189346272158012778443660484667489309481069255216538641902733875913470696746248433674693606151894353186263722326126468540506676522602757112699766968542007981406059549337087620936643272283040507099034856335447166907022048156018754968513017625879321978709381885051253424572141473168961357302436114922689007976095534589317784365495418490390001510951861091439541390009043625429606147569802681293476053936705688810344649059281624619774656962301984536481160328761466805413421480197691005224775420917539543618130006149347138659225859672895457672437303258362742740173049935382387102111614460220532031657044972844527410706683522678632119758298637964901861731467955978861989375183209975576674182406566560828125956070815259365873560998402277126350950808768703027949048774513341152352786725168784647676707070584944926738113700261954952431763224497574095178245730896740054321772984506696435121775952664523183887936606502283876876097773709437808049611729639221435596368134345369634706074108551184070929176239909772639830602565258979787246981500504953797206025164850033592550759164212812465401584875510213219696135609573573883329013646822512668050365826670005720314024771818159147010511170795450155283248076542970976785346509651534884812819632515709326996581720753912320633022601642901976817992193402023572565160192808624875138645860330116574778634818970252864227317767432230157968193317033567928499057940357590953948980449677682618862171686528690848694761715177665430487984873637415648568572340934651258900348471121888977420052559437207774486701340380598238775311371906850735866860581610838160220799144053518024013547352794238225125258709158386026476681497183693787408918928796905654848664080282588368034186981904929915771830021310022490704035424556899653978615117377417723985158065693394132420984904295463558629608704040438276322187680464067918572519326085180356799062798324984513363546401893191279456426521779484486819173906223319701112359004982979707757793027029547583758073675894943269165518884947797645209470574842537609289162666295981723375395232600303843913274033393902713834259370228505803225828698337184999088107149462776030177063665666837885428589153712356571788405356940205441362656539470931539082460570876474255644592937083291189318309723958630135345053238145206895456747535951861844947756759500218702757901532720870197225369097359004519346057065873874138908440099541253971326829456695610812086133291434447611607587798127119741973090595051319038785767058727337803525795283832438971764822182373468032697211030447113297664017884279316968092167248954424012329159483566606926415935179955625840901926725632785554860834169675932872552601123445620611881355207412472519087903919530753678540267763945832069411596687959339541442262241928252874630947805194846582625737651274243271717664095208738870641252064547445140613717879427509099491839189603155059912308585190566421525091399427503760648980371049679729282822853946208213430001087933295863671395859288066883841990022190262030510437006116236567468163019895600649344571128604219153354199096741421707995922368926355831872648145706707217801248415777922138120084561630820987377478222635387761970658819111557319088379070055765125722945392729129187220205356411502426483976945309172322899759649918464874236813809920474957786488489337891475601939613566738832599087363458743918997258455680577739043456301747295055453663037487639987500309358576704711085690746953138994241098202688305697131075515428016081346626548939222716638797125009634712767560964145195555197920783630777835711394205518516951822860601563808103559610628791914858730075340543384158371470392720685950255105895680412526328933031535699501992798368982971630210189512273628766002381853118796378674396310800087011413631436513604202094428662082352772922276425182533353364314468083006702169900356738743685230007582943872857186670783445486446351946292219081312391448740454338706825582420230355044660304080935508812473859924013843782787792804518208778218715874180355633988956245024695815958239876162566691635154615533602504421566841233689834971850260254947770206902755894657901153194937033538747922230449907657498854892895588755670807261554452842750561561066556838451563295053480819271917960807753660735803856671504085378622216251791171639488521815962016789209419524670703942896901203589722893580634142351004270143019430556731193693398624558513173628485613752407673790825157074306792571468685858605437128120413541386933073738075594081980913337514193447440036978143263149211664430009278738116335814618085175569278285840444683907544581115611814087225217763653430504457783124335085971752130281172518451938477344821966504498604361987339250517463912126694785788063670132719782430235157930937705935783718363634847800094953247002653771800103445359124298049169808116296149305922343426750331235488680526213399055932794441363785953701067295744418454181525920562594747408843305817646680720986335197763040240435924306887849390918558247394697893057396262137278940686635893438034203990818956266829761596675550494285793816035110470317513031672624309163456849427424263326700048147120103011919663733281675957664739938212528820042286186951018480578555963145822932860589332411750821062735563348084594674976694544152708210164863357626302439005207297757660330373304313744923944996259995310739903001418357112068939449920457908273789750065610480055134120063613743816802703261836750644995456869848543124516478882510003848794950838749754581579936053777108135095076331663434535835024731216601035372075181257022654772263423768285699552072086972739102115738603650901817991586328659194968936913964485997421938410155745427353764991533193682439542164980553030467315295011167548453094524126864998131766927376827305768990595275152225725012152408140969829603653452911330288538520058483424325871156811769678858344725305978627178613900710944190362677986964289467200861733642589010779938516309621474290781447734208485437942312249308457609881293369455044118935894705438654527573510756499993329664087118396525214950189472157135380301112001257089338354229083291143919590833913391368964798900481617905692945634098568418119878647141863308400560651073174639901895877735945093965477167428704993226838469440725693886727448691395385554820698127058576429633447294239360437120282885740640827376900118460702520294661557883137000826038413418176880384593663766387737988164593906178483734112222572490196678083098335749246074303272204373641677641012871741961768711369905056596943170487152294253422725977897726045755582381466069839236836271845577032929514613765225923838248504748097797127440021416801693819773431808605983817990980637845661648099639836969003937798949152242968481173457321326983729068948790018436148656890644841191233827635205675970505293835711809909259681525701146404211487486191942967707406198073183825414084499336514155391783305063569278872074873978087605983308076352603522952215635785936279442887109110566113396330855327545553103384714656611690179574919470243986349752493967703295419322408267719289326675358796462050772198701439797434598061943110228434774704615837301128544434449444936771127673814505564102977915001094520684282348504856682353884482643990703417483099454901986071908267498876054743756228546268583785016477701428446015169259408921084050691250996892768887082084082054508321807319256384484788927273723871578360696554146043263053131443587989787478325652690564052862383004154397063759364533456371901499873619836699750943150807588569780473427458789307948778384143277914044919807807809072581003933988106105631668926938831780225434997182174394277450926257240448538984530108311170379733344393155319872545763682463029883153461261714234689153322830297380722484280990650718578785267002469875796900096798631580470788057227672383810522953950115682107928245870559847948150909203290791179253893010445358792787805484746874651918590567993113472653325425755470135844305197321675866492147010038165612149042517725576628367805662418347375863917690897124676693693326044178352512728532568011221772849962915237393108009998962453913755956418444976498957070140928728418477121915804673280193096153139156905577241088728114102476818536482525892705798135027991640094017092390520471178720194813855635527913802468463930289330316564200686670158362094084670467807288403281537259735250962077121083874650987550853116112938264768254958026272665085498331452974330884523691543306475183501300837504574932821451853200234874907544903929003190722052723984211448696778871989978034520397570661222238561243926157096718950062556502199088068518481775328141861307953272089183508645050106788422033412492552150990707071807520599260870542485838522592898551299627051904046683400897885713965855681584810366109784261169780970635478848836512192219646592847526173724881660477330255237774635516466451145282235086813983131035911472395466168990536565860545839537312695746274519185120207103570900038432871513481392824718725489029554588962095820891662500128709816963235691837971027452130447323089331254554386123592672265590951622877090445493976872671170103975759512539463457439155572324877522096115925020496195933485507917833574025879033940108486275418935223474914686993054971040833037771964362856224241191693405972739619276221089738583604573465529116269065218257703009661018042414387161813310734278832701876115278958474418476081744914503364793614767185843773966688786478500330449016088181266738627365515734688483114695590148166205100811564812324930388737738868762436371820349876483780737931030356135456009572124337039809907852486454840366224384052163639660320775819918846629626248738310157550652872362987447478198628052240894885726337407947100472029051273017666112462146040785286638092128725174391252357238030162556398542565874882310841936309005993460931250124577774537201932775340115333860553766241907708891223216731809484634317369631638367370283363138791977580618945351501023690172120673630740618557433300691871375033916302912336699833069268590488544813163695225273694961165096393118664118318205039003556649223841428450757298319587884453204086533686999114991121738571748659479142050430282208606241278491672387004026571749566487940311024663168305398620777525438269486937269652868244517297742524218416242800164499294974616540059674968575390478587473942252127080101533088502483593477989585154885302524763533008099725007779690629580395531029925438685972014400557788799380438077042113458748115230210697440607410143413523810753387071440647470408893025775242743461638114602313073564708110885285296456117594217793005184394111518521807922003957705731970893898800593430214412297576284455369050933469056549262701201713978487505429067199228635522568359739076513729185451562410750267755636497019892042722142384011727591502780904904446173639217098609261528957445929289016224437702992855024295101790592919659763632201994028987162766557420350911559646077034721246618126451662700806696407685526476948031872376516975480247053048726256672442418096075913380426119007812295574122740163954373648371654103595913423417900870006710041073872653820463828485846083179439712995672602857591057757410145834556466249593702373047871065802630029227847702690744378591532998641994719683110836693769225997618254692742001519854803229351817742320385422738213549307822990919372711403931257467346520703524079378948682484112611272868600709759289560444509569632385761078287835258192575206722117553549170128763179509494779147386996329472096930535613833200750608072072430944146437185436256211572865212478815075408931807538638613610543990731604830292943263361603487171289958511482356850912345069949340672205917681614167051450033295494399042986965934847871256180750857585047838250203291112514717226648115042223323198968682658287266901586446198207733573598988839503825701868026506901924800277408499328685974712672478458965662533753280032618228744706141212453783529817769653235285456435384216080913712711537236867404650546312955261673647914866929762308270600866682092655955177234447315792098228411209244989480128196893832486440656113155759192091252665359967718861396180107437167516661087862068832222011054060030805634783075009356844839175371816477022925238260076410874564046089976240794379065367984982399926519147486824102386824450567063038417637387079356803750797657923482544100690212008983157652594972235945578178678465964362783943415318422790550772270366163348358979980233121021521790030088235031057094867010302953695849518644734166135555818440328022122632743147602354906957884945370051016310017145911665511575567115174178622842452992945233652273617283027420793064458452046076792463274588281995262239353483792770692533695209890111904404596845829273354962422426353992798394898739210259395122288046916955888578772317134126822401475041364862118757795723240159662127080261670518397047435160173886087370843789307573731124514437834783327646839661791903868852423201092013127372054087773855964904438456253339448140885766359214006284324234907862492456283153219805767848081286810606373689785187531001639814751753990663254473911081115430900220622230737615541693166716626008294082701388985934329664388810271104968264954684886660698531517618491326128819989526217612907913749578978523896448111218297534335359006229716598998993975344444630366526557909416067267746822547907015138312293846528788537232626609099227886210174281190841036260626601376997960568515781470633184534715963878589852466110250742773799108723628230798970759136579332743026538223943239888301992636471246937368537838555595573517224048453298392510014736304366656518523715886982467418306481217541796924637871358876998531790650728600760964978923411405321553602834711768029389966160556340133782379930678168741873864245790382866659272945974636572244952823481909538399074549011700598856995935907036857375293295745424195425317467987440594807009746181886335546241100864898419387595284168650495257132253837340796970318482105756870300354503194311008769842885671132007693537195740759019664632147091465944073051248351912013110976976524618431990738456514557436121959146616807490033991503382712910778322197314714540680165296404023406737391202034701928466414396398338474317093114372794709890713387951315525724383221397032083055117233738769164322459055359810526732167116759348294932753132987080589347234495229612301868673508908295091191198138431051607467757446867081421910334780240062500694234487870054318098243966982667882834718522865948906410743170700234961016423586966590360979621537017516429965621340084787140880508953286573472126330835125795542094393038016923049962833486315163963527309798618365512376744100029881193978173201458720169037966414922929460584481376689974433784522884317057348297044741609149877071539133037063203216446808233647554694480146476604578511794538967451262023845243695960330288893069161554772628034886834295846921123429541840038282612674436375230854306928217528406923729507832918720615983711890842212649478654699500618344682783351770567210530949148647336412387726836704832230972200169743525888561374515189085099311194733429400125983128782272130135970442695462838412331266856933623035577983789962521481342409549567236970006040413982593770379479481627389584808704514714942283349785404870255225386561342579449640130559991598603387693763821104238670715234764967397193363880988771930318102965346050498259790965055011107305364897355140806448414997725988780851334278730477577568258040549081547909032491687474072567591017547486234393922340500799717642450230312058362112959308569970674712011662364815247824686054214110473555905768522860692203552615539799701087990125707028052408528439793999053741571804104940727410267459967016190167233483709713843799471973613945776149405743751686036277755722172062644876573467666251639593977611959892754161497940645000293575946216360563998944877589308688343378587289826437240858455927229958334256006813624877391094945603525913637997625236733584494923818499360536707402189625098164076439609847591463603165779509242777832840473933591199496889013112382889150103081693098162531553433232670600046928620366621560791287684668791687093222305129975112107172927338795457583223135932821449002847201147546843031424120716513981645406027153927045448987758092288782839375770286353422129877713486232122035398969872431691839647288189099722285579010328764306650615138289443100297516970104436584260567781339124327458836672870698695985510775436814960558425262040560472443430895137236253986002364936761885641730962471301112148325089294961743746831631099404705897119547932305042362624303752898222053691550686868874004557871669334540972497770759968520367257205845317109352525349718858180831995538889818683427071165364675066047296729659535998953925544292556121815494285782427487197968683555995866665149594632000573618473199020415885685353131045340577029528952540539396328963697605674592891946880091529558320808287493713200222735993735922099613141433236188512790368082192714660135121397523653971500566797180529001444881163004023956071736970829993096115741670569734809840320821250203635319363813316130201286126361957327247385674571823254773565065029253276616764851908894026156175366421829067630740587305325778684876764542662332120876408238122733463863559769525571143743161225548617245510031820462105984004454815066012785356621452291407651202334581022200041147312356425292771125635972114681939328186576084436557904476483608292895175396024155795781029487269347806498517787475222163907121507942826769059133036950154417238590359392671328130881142944947363276009593569906889045422362101444260987467706849023482645216991977892988575302892468533475631304756121124463667555966996315624148920994438703074232163899856598182246892060438545461801711198745425741344711875598778482877333544819558365308454433864624435854923296768962407315383708850777565936485317728801846953084938566479226156507784047896112159954160239507106248504330745952446641967876722979920645295712980834345054675732500188981206338910946523750991557497055144694100613232697511738058145154163363072325716442298453621624370530573675241795541586938069164096719592176222474441257667979708033828345231671367864262599712167293480839268457732329569609775140335295480005739156918129332071955692448841232083200636975380796986986314862493983929204672888673899399542380298657630408487170778486101460463029505261868844901638717152174306370148150205431681840815480777569594701144595775114861959941508624429208213568178882730193438924576404520529712627414948596729632256147320652202708744342497149276624693120738192502061288058530401880346176303128136742721354384098929119313455201219079967241876239804364210930832968785491469423772994256378256180109505030900498969661364619706818688805993923545743024624203631197034528906168774714662638697854394383950746840703361639900371198644790047743086649634017506421074209880687709653783879786613857283302390981657788084874880141756260077046027480433278220100740552149845440759689123670486008461620610167185688915042855786748399665172304018696469975795252954487666472414289989458048805601586592470249955746933146909375317704338673675182245305149898809358863908331704840812284252934604118559989894845846778350199176599917964403033008062905175095072662534659813179658886530386787594223286705355759687366780535886511149573606481896032358946240313327610594034982764659390902600859735194645777949336395536050787197041428311478248230423358207264217470348144767905017025808262655031514407125426828963984158182504901464283498482645435920969191932726033273580247835461015270557813276822977657190204115698754447255078413779336140056735651879118985741778132660308039291383236228677592789546008621935469625790897212176489517172833242266024289110818588170386692535464639469386942487722097863607587769104208396872687052946709529796040750215591060232967748176288868024132455417184911169270595012382381964681077397271936173927391490239176199038747754159400125491044007747363609457606675437110936852717588888399255639627236807046397633426405443411595211552937248623376607825960727121413940297863975455628837206462018528142434727310756590495770031022324967754682125186387994915458997065388344437948667063178264877160870469813217102973970738703836689543564605208565391229511957907086599665740574604915717555912246182537354310852957725134381696448511180965735554202333075468390401551869527105531811303462891554362455851864454999104203995242624067225547641244626505593643491034709753462814483613512147458522686881375024271415674596371214799572790923544229091014826314566975162324602092858814246640972768799098227637465498203711225910795085002233261140573650701519341824555171397626360693537785167197030805734472399561694381310120249133905867423348025888728842414706316905734454619290649171626011728616050562615645172620974183155881929198478193221955386023980427895443619618415744973923631875073016163077435021818084540858699880851885930002012113695345165994976287971256329647338914593870472606232129985681617913305159116641504137267022327794895761846407579760966117359245457670054638915051435752357861167502407665020803625888641855604241284701347809229277694833730434569688134410998016087150092344220824493436015504062250359212042249285441270794835464543957233764568922124066828368049806493466548873329644506057572540489891241116143950005292338669762698542890592059328385961978819277216604059122940101343984732519490413860543643641142228503981365218737512982198428908632416581424077600324520182729638501946337602693577364780351926288813487022030077057877858662044281495291257921037821349537439943648250033016172212979393855623030732249343307319884229354938909587935740422378253074286466299783982731746409445502060947478234582286300811836670697981412961052166835181903258198480412354894421701076653902099133772677250205588526963899471129016765069144568627361209427871763961613933961119166760046751548866305295485918679465703355142754860784819084176394625738424878099110224864538766421605004385436260250712717877430574476111093575090403541880266717619598143818352816860821906342132569689425560071742046567888556632925753117772165308281072580707718938680570023891180321841926029966873838392012898580170980687560855010628720333206092018661594683900228420704775385480696798958164518146484057412376038657302234887210569552092446117771063607493163739849117539206823936914956131814145139027283083319590763072981298137753372337782693408924291202673902035570570765524257383826629987547032909221419853483817324531312928600091212701451839915665713985696686756429711779164238422732890653770414148157918029689926435662880045829549578770802002344493273607022301986517367575940422137289271158661076756841407549553595783943905473116834082137754268062577575746041165888542665531132484291173740309552590815894761662701635019798133298068752020513718778047848587143099151305223456076177733120063901883334613974887998125101789269268224907986851266796427291066658693402397657255163786291497618467005370527958448350629063710460442049956861681481102509086236138312442824700745148243714114442318035938643018570331144790622851234278898737019455804693760650158410573569730141402899445621266170310875382226613498916124117590279192298582393764645860280246540377144017811681768876970412280836464806819689831566530685117029469663611411552010913539061873373925117659492046299748657246691384717376656553771941527736267261700717521799021666581089198987661746692155006728179379373245593641722380140147069406665305085791628303861689225145784216016082393891301484016789611721839073634000083589004515033721202510284968556428468736492315276239984564720848366008445980174165062775948900820782061074472347035469878729721025917858896664555114893176210144473690931192079922887700030331858591653205705317653240971971776373207087254159720116893045727665359791045288309716134945038505280754170649200097160473742586554060990150758797227002761505622724425376871536061143234391078746189875573192006284282120499717952214428804205923932401331922701480242179850788160835499561868952793836049865559881634946704125486345609308091340142598476526445989042741500984118444479270770933014958334172575421831442415210755042071747295320066067331180101289221891615402191990201975497375532123228614428713001784616467968750124251272488359980846901956394547715431063242981852208749191255335518304014340045192827532525529278081901971801702987664871088871375705541236426117031535790551012334313473798731018574009034359542275237370042764709124934605440899489248779896404071035301480679523280967538891292109412412973165457348182124468478673001076033993894580607553745124713776333072001509583005830618126240682943164355954260779380547152590441614063450733120593039775584420282657998085553906984153477529547582745880154979223952761665051446271697137933102961156367673089940828301949155994271085140973534967283877547485885548410975885426294752081625849606399942836116733944040424250557677042712446899057779606164174319223506960667339476654366509096971922766085636706128916689407712686095334730737925538094042802534547680740344741688304779078202176453725394272883855868763596528698042826952184389823039365018921994418858740872377315030722186618567646254702274798066228802824771048233176604975151609755971182418275822487029316891895501133053668894417118344143718325497974090730437685767960680824344639249491362511745240313672123310492451531129363313362307530365340497155170551670263901521698376811946158305864655930699764841698808990725100871985478784849742952148937006478692741770175502584530683083460259091503586658538647302595104411019238692185002859903525374901394171167411924839455212535112365117594490356910320665421526863285201332403629969185699322292794840799409408800471250495393567927696964395414234788356404590760694405252582746041983994717814216955752238367509031807175343027354385992945137467195714116605199538129498666127734920322171056790556190705347770722524357435566485894967724103921747003048084424191486953923436360834447107915984982014327045378989976145810884476339456796302157535082994933071955024222585891229386809874982030622124002087926300888145239030879422798694424716525738691909511852435543234031463833677195795973193648079355647084280127648776149783416194188726631248169184813928138818567760934942711111196366512327830471710886717753928735478148032980390137320150380746626803992004848750666371987002195997573123137285598194263712247193501532530442922939294135473700295155639657720741156175657220361977959359762478401607337179123831835901746430305198083788364679661715552324979690351223137254274930930657765142979720235459017571941882786125015796900714368677024260084360204198044378204850378516321269471557332299812118436098672137028939028808624770369045606163943977247385161760412593561152467848094898397160939745446586760452475643331362160523108925334615217777636815540846538926649276695293581829118629130215246711231772872129452072363932135347014727737905836388628484497423478919205043511683158030872422587566239370101729170186646906225316022827776296314291018170191863808097396425045270112488208129889909866803461892156327551394213823431558400521675844724952329397369370639498916349168897138084166758942230357489725021134827488905077883616555800683420532519079583279972475800263563822659525808298404348746760238990270282596979903040737682100009843650245177409073911355412753605279398231865150602027337301713129934677460500583889226738681697460375137959889078600573534428553127330488117242464312660204513898765958188262871219891107031136785784492979610894467500260969406517227557328549864531318373557981972183807515701409628400516450833209970404559517936966708757298564613661066956054111240617413366145923104746210738154249668632219168624691858222475527298317325606570006007813798178106472039520815998818448527614132800829350283880878777570686761219217358992595255657203911111265108217825507926260470941780662355804662136369005460514338888005663030546509918510914475394017978913909085114846800818332380790369585668831070110151852246506016442507030530704224620269125838035281019014452537103682420303629911753177942737539767198898306656185632019606226952567540726285361215826298114050634583969617977123332555457305759663350409610828570511124103135290605172622364934564942320194286930675870355921194249099409187335582793805660461322875020022798948158845494985923914388514043678744507376696776936723484314211570330972691745822292805090915004766558969669604914233044341328237499650392802069062437129423975072792823910354654064946988889931050520609379758813814007292154747512697431522661737009810985735387195617031212152098783645152226432853654139448004467809831324135317429677206046008914045327131076149614525319186823637717250617749091517572602267419360316451937076307199887438447478874326554682883455856773295232386889440474265331843506670941612203025799042951947880072361444270097935223347606556766924946846257636571158755543483893163382140802891038222309864917377760245529373486864085146659840453460521452377762515657391301622688862168849666556730896116471193989705747351849193427634898499186390109341209346557299526719022100741137387061823682754725829559006300549906179350618583234968427616919181475249282200844455997001850005250808681481356999051583054716823535526488041630570523715657029304078546442376477480552195413462563311291727858266813064704862787502297537353700959344173393309371140864788921932247599698574104488298804995206069909621812874774664846171253813859775805624030628289493792449547317686028046636436867513650068941293695139272779730186974862083985087136118371140399334602177111056591271603523797818159054739254857386529683269210472931483154738472606342647657884320914035021505923678922789737028802707129880528598752787177303516424189447673591332620730960842326249905790319170544542310321393676180794787169075551875818326158028741208555743706136959301557833791484241001389065960534305062653448524004841407666996453135647579990267187731631286149274609643374387860572747344495059939140880418879418241001296326633675700437792703214563287521696913625169956001271243771922274677727599582448959382118452171735946757068868125837365121160652389590651691588133230653461526871245781040533114392713907610827270391895303057868281495562543215241435893410858755708738404094910395821036607728592321689164928492583937865858799294467246164185690900558395345613204968717768119859997175408340173571245050193595429259661018597088989464380187400577789347768663965166016437192604800355503060758591816917488743215604284282889926422501423597808544013433380872424470511252546786256494187813279838130983050776838441827079526359029575484507308446312508262584100136171383511187094774546941345234392686948821089472791763383821933946451608444488624191216690086507942969224322602262881693005370716404610957091585947847166894838151912239011058084775176091659016459140816821903451643783850202282168248829403518319109664171165692392983087649495761802289559207620579057252043169617999251466929973729421741413416830274055194612427303542479935889834064279258259667554881150844080951878102531757487899966440751689193109693321137601457816217902539915216903847235341955378211752746608559191714801605972918087775697126409100589910702957231531521489039556061123212078466337926425810517979309215901849865135985403505131625510744331012651082193728358426297362233991185729526724595026371972148657605690425917360515300434253604355701267554436748653977141246970885230870437099143436040286571700646670014297931599760795096198090231105268865282827628481790826426536024928135045410869709108468966550658527214007977966980025300206533248107394754314627121476928665900767484720811187636739072545603414293960953058698209894515984079942307786813042096358542168229788605915122086300139458084328680250536431284009661788267506496030519718050894809814136896065551102458012231932736252904982169150335828831531608158176682537157922931450270993900725836607047035690846247804800401296213099903324720141342317461434450101733280198803886198492934078476669744382710979790532328060107094929678059436354955630735440207904495873911588231502677776389638957777360330351064669553144740803799525723566640795991809444116514455682089180554109004298685800143641581601058801987492696753105999620129159396968037017302357949279879097772382941538200986775707880079103406986834263892644670364383538257387708771951780842474056568933589835700166303477671314107317424497426415210964840287480585990192418289352636434788605582107345561913900462470800262001727330113843747763348458551726954758062478941396396627569282675959939974777311419920134943035297900085188296535583923511094935228694015919315451709566842425044025975705260041218323071077415485962467509241083348304863198952755840107445956642234908110105107746231845136203084491017906442954641284904006810611070501700314881754766912898031204895644305970462155714459042867390203144338988870581283133634634143089227945168758202884527175267816321059977219790093639119544218765951831038829158270642261278494760833855767515809718800540991402923609335295212668475876210944082455244840104432679097928676915580033816403830818041689981886732800313955151854329781639826441347189323742202256758364931243822974224222241622698200045397409360146317283309292517242452797751797799895435022213457763890014439737371330422916904408132356796584425669081179064282665632862821967315896706580423102111711143975042227032454205569701832885106073665566317634083950977851007377219800127364808025723346970852664985022794265722213931225458157464275736995367313736908565909770844232601859339870768393847347440262430971068090461232915166308101559552886452152649371888688853556311863265951464054201231553320998726136453043007992148495169338168446469905026980239762087765944174730359988854260482381925445054752524591435644019377709866955553034871998918178499740325274676260303212097584214105142650654124568116183025455093972206478363635252966051571905802138051331001453962858851844383049034906020382496637542609758208918948638672253981210909318760904881275774375968106743642723299487183625346955341959696796894927327608493651699407353323625023510916276594570620072028171258386391215962066931239691692515263242479826240726969631502801359448849415570227989738661578025604691677177786321806012724666402602310986916763715845263821796201506683252049767197991997306521579112193866727837097087649876367999150698028674277797010793417191809668740588153833249344077845263945909379953971460748722418184179560454873991676521278971540022596087904421029351111717167981054070391022896395281554932242309993757569391319540981704001226060115378039497274821949920508477684120246670925590511202134986501228634429479741747288930077039165405056946012055161847838961239231243611800437428078587440066292403310290407269178704934721910856800324806725863946949625993413608372664074663946725239172777306650333107481079154391454878710065385465665848694768437242335007299411127923301763293416963804650747320659585902840395243860596671045488266846722070568504274703054420153393237778679058644133943857943741472101897618829636465082288195778078389810458520918682823220126309255232311604277069067364173738104575037421784704725138842672612837699694022254218388579397038682491012569709446767872295009454684727577960688409453745749375903904457266405289828381573864402083464087353515022942916564341147835520630561026938703100513136438296808187928877665412886794658065421577038963777022812664296534940174379110082589209269719014208269246096334543481146528531221497070024489576741696860360036074351443983752007748290669741186789318561506774993917390098545457182514194629813542880850204610389320726957476780323377323269843724296965329979844135270146715008809882407558804221382381016701125959333284602488931777321763227398097470925323637229208020204020285765116556685823099144648601485343842874094060258194711105850411247041440119020884167926668872083058282885676565449788182348766434137834832364428675133722726898947300091656379302853510898248378650965159254423129281845760168542189169607805850165040794517588092889103995830372003758863010568953699513780180045979827181621259718264221569312203500101059662459124137568076959955579008861822406736817112023808020801729929891097615559016780684381382290009809699128685065054026780249841106178759877343792009227553716438972538077323796527456023711729792966858770409390732904954083287296898388583925266996655943865730085492280898163187617526712223566071577639683262033919673886823423524434422048656678201218528003582641936318113823444208566643454687780307724896222509370897854711579432795273845346754915327616914216888195067459413245306172130315749713529977076206138659010834542843500809725700286641449681934369541702284354072134398802691448109189623443293764617090003288414229820305642404297072155126528913186881027040548766450360177715257242717447481002357835502215052299850052786780127029086973743357543396780262769290453684791149338197793510941977204859815298026368860896603166532409771344724252279332473951442070374238964871984663010431749397939300575754301092367111643549655869977965366839864576170587591812951190867023003781783192014455821437923832391244918888921104356174080564617532523592690987801612722512610497582885726587270109018572412373285732227773512701984376581915080673022376194244582174754962676558015710667897718997675235416069165734219566996626895770023434821920226341279917312154996557751355549894822859285068551429577024748040588634646988788421863069434869028968008728365073075819465126530679430605224309641892475479426444255426748066168330359014572052906952058783279411717930543109010995544276873798738089381260671873196585230163817672078141007311908352996261411191161247394936451418702540898454372528683388815324912809858969319893842712270723852133407225941285368623949040087777375237372315562497752210770305650237869865299752201245470640410887375778572776966569793204664183844140738321466379905328983768448410767261133076619646403634666645810128374718986507614301917474835592115187006975131832363574763881980645366742722031174439069094292185996534324707694896768699802632752659309547843186212926196005706466583571235550597563165825691842267262801253824860224403195127789969041131218212905650601448857787275402444192697963537005718289235382432739839000423660410317931390939083369503140418822159292429328095757593878071268072477468864154567822299586669472754517595200981171623202169871320790481958092024521019920753000441057965957848701089372096607320004972973568467390584787893640463477133665542982172987232604709166622366919210955933407353582626410217920534820230098380973365680051777407812324103518347869313805807682343884037690806425983849695184863177641557706330839088406155454474504666325406603878053636080361885056266442286749712516197595234997919156951904178562133882593091665129110030790138425186277462279934247222247936604828725454046652724795637935670092644715921231876729014980016145155573421915831493864453966304265738220032095544872258052968407795619912634735389318440214426056805797236209991860258775308782279339093140132144244312947707666415260568607432905457242875272648165782625524249233967908414864088898608278980344470265958911413269204074528214524311479040990199727010869124925899222350302981807606204145067968483193202156347414585053188983398773725163624796833240513342405744994432832537285684954829300261321197236157284237291251085975689798537892238966586331292533297459163580873692595789217637321569793786835161886007883578993461339892357181450594710755531099555346046256559293565983428723582269256814053843246009370714786499808463215749278878844733526298549290636040468503886873019476730673750616843003663867905524414578516496641757327744784725904865108195144753711749536703853443609452131793647392648351699784937187990314161543506050407641337514754959506910672171661020451827480669751731309534826949895965751950414748019145622491371336429677885825245767808661864868790426676952337550322124523145697240146926169340462461308162849781865744987939186982787883076424135617953642839004790637740975643697942594094428844426330301160221117996777411182790108517166659542183477954952345516611672470210856836580416023147560964241306407173289298159086845324291230841964728673507886810138267870822626027982116690218220146280909714324407203159754278700716549053057551528132087140046248764455852002897487007784981466433681170189967931500732853161205349641169895224165960870396971730732225228450368905530089963089532461774921911505483513751079778808378025650174065010408400927966761954620191576074726015642455319559355989267388064221745833997905676653711954802552748364444086477537521198834873118271566543629047513546826593647774142260697919149455569891436746359255927282174279826329723170955658639159341917203486140156361575116926533320763112584136784176436107512012166844423517470071996633743271947623553174663970900849089379574849997771081302622610181086611948835433398842604800802902160179037250440282469405605853837426265786937713775123186488214231312039326794137930139668318500074592789382379408875684738503691139771620465663274776536063647021670735325667828504056187562025633784242849882022469630745460395221421529720833961497556653799716203383157557779252044851466828464706201853342972869221675512909204182848300828068670905365199025098941243516902349898786759651753118793254832647463269185206473576507523101140655759705917451151628916074391575727602479474812701173722673939313671174163495075780121864277763941532441503669544724941188433987023154414581768621929924695827266833007248047686736689355874850893264385079365597554437861051553930238952881043449105028184734948957459933415735350800424582310710987072755596995564927473656737184069776263220087236524428645897609844664100242812990086309955029428614717160272609666691495250081663730079476142214038954740160090258462265852081489105737903072312905632378646801550636690909330303937229711204147578762104131071872182630906973904990985925467807155925354406198687527074565328175141830806005494830057024404799325565206241969034788390450162223093354174055944342072952047780326657393416075755323250070801377016015685219546292352565245601384542192239431922967521196010278208922036262980745139017844214048233656354979941753571656427435565903623143561151408169046698105206103483097537415696679855592174957782836072299888487115477813649755601658464529241985042227831554438562955762463028955492975596733845228956505140299917094991446766425612305389902148766679055133506862440251175365471212405239534980361549479698972197760330382193616017550902896818072374915310299786924409262850707283561457721943473058662288764026546005966573505894787926956311007311674617047744920557521991772522205766499012680818815416722142334860255066460909508737852147189413711811111127791574323755603714670248570895376537708087440071903464267955904886153770846674643445436236752739686963215968473683289404756582816924981787857514328600047267948471140574301247188182214429919198975664106454252569575229920675693132613779994085388786740098825395976859213217592490856996848065887278519354195892756829628186785582570863376448131403359780227328182118814023714157945396002287772320206451180823940456913186244136932928137500389544023763770113347662964019839558609192540998753884339410991022141456478377520814372967868412222970911881550225314101067529828813433778683656842331431433428262381974465809885582014431578708720034996097760317796507189903755148766330386757408368796462349264357429309885440791770014579526931315936560385478187793601226030162126973263531312511389467902090579977015331551130749145057702108529779085547613796108260735539907013354644287933100135444981269659916400320996605508614695435773356409949878446036747502603272184681307954707409812775719400561926889691113531445220416857711204414085960802776311230070758935317709090454348404864199461287627625971170685531971690474370193321184434135700683414950820073551897383486983549999845421860553245039293227894531001130463908369934043319756307834343357960253436250798356157828571495235091344866692980988965690850094707258325384681554101628092562089606490247839975409036720246041935892212432931662110757498040004798282195778087210547554597448252198472799414276368530395897950614573258042022049882333819515206554800580741664521878887475642089412463033989785220607174061025539496593575125259917100208669921023847741367405672487047217705484693737312723274592260556365536752460575495493063857101267494113374417899628938273560533297951589474883373132260185209108892807753778531878278504560415591107225921986064951133597165569390578251424824401193236718300639694478098379308686715422435909264499154061033473432641686375656226419495152056288600898175031414528499505603856889421131421322808841431108980909524204700950203480777147177483352059899945252908226479080918528273877451318182749615812716988181237590374836293943857029253921453482821313751688273277138048126248405198214590495905656824192425721128557325825596290743700040043167221525089375272058842167222151068860431737719250747624882865150740217158263827874268684761471452244886755098177837305968140632499336005686928239094880731149280169015814237178707304275654034086250115831311329717827118886266383628518090445908066917128297302235336836052105008359557103264053981032569487071814017749594783880831284455013230008802149867182357677334343972481809842908850236873273328613298682516246363181298877411652340201198203917455405724785764770931730248882327502485790805846129999118830596098900338825728939086509977119390772367289065569132568325544383832271881705695675664306311727612547334878403625539432551975324008467863294918378854253632205994041200016155846750982664770239747859242153813752932000774378972663775771938223616378659895340132383286939781016832941430784811373938509269043042326286950070217938019171523507764606619347643224660328254704776185415111540318806659901945967709541542667523626112841509839715000619426027982767095420585701023692894661782506974288484045408433703503363941769205349561270247909703735564491005984699104374886190534111203113452341976246330245212338396615004958826338456686282187569139803638157403178847817229410957104311758308032829458553834892575614485523974718722891858769576572693419064784862800808306486154738109199927110200936152655476238877181295844329632299244833252663152062484942848335646019154630208209158674018426160431687355157597133102607825615326108957680304231425902212170948061786986380763697168411775920814853352192209111550287199476733086093545294386363215508936314386076236340317745362615421904352036628848128617597679241307926164364911781071442883358340784388939764607441397523068243789724035204994506070130013011755945716478517390880178526840767983002141068212870458511940906064352980068661743978117497356536005771501226245053683896533932098760026241461075349869693319474012780195718186252397648141031483672581661934725695197258948985707998069085467109930702754870257274846859368647697924622232781806568785665196854961746209392314160098730822774564564655912505967648815895771673327517027654846744506655200092030847149935896498849507471277503433932126619214642031074636986798373029958430051167185247171711492293450585996326345646429534844750039629350680820840318044512499953016697907547662675271302896393806562374311558390780205828232838738936596265680201359298543029810924480898548120115642848556316833499882846141080800213081823265573290372998692493718660800497938104827902038634665389677753447672058563315313842266023273119850505061201554343609374922771084623026590968859330684392564948083385469822256818764757724519758349783232573625434141386209139922344347130552658756833254272522560652711964676055130183861810965720680594380619355560972020612601236656090014866050647424340912750287764847688883950980408498873627574592810622766634424643448632973007901352258059549456818043194046765128696072390695305268648868127768564261409736124362974360655219519306430687026981619005236830906466832165412937202913920562572206305767519267574662584434788595837458206480492803985158343489980838853620584493124731556522401957689090641918607679871117143440485684079779922156409777578374487605150030440200380854841494666644803684393540795010974897481151006550327900808750974677170903694920205487052758741037251301861530196495006783620014173946175079533704642125570577376138548355930082525831082850814011451565148171447147091931156070492867039227554921761418591265770385276770563685236272905403924809957498752897522724669234608311507667142077402170684280921683778082969537826843541364802667899458288379211640613213587659779932717532755319738869418028646295817727863740121302948317806677292659821355385090037845404104714164595561727609285836019593264143541841273994206056214905352754953512646397657144025714947400122220274040451752352080381138629749380322524278758124707429726733409529836861300248201242126854039926137050634029051302367725643455652345408638154714743723648774989439949174614296860291903439698043406293463756927713661164344164092551495165279665619008388426659988635443024035098873075378073309442416037617448463579600164007052261704800177569506086282397635416919084101248319860730955230677460954688720283827701249239637274185894605587662424306591048404247091127116696266728209254489242597966240810848939387790970572232892174755375222808071532896580486134852359220165550125902103480600130534418421503558400812797516154017095089062662454527637275049071579005136145205920034770039678323459541027590276801013708656703143763590243675591034610963082716375125491156116565741359698293542243702608161529778462766007925729293592946740870742159789314655334717995195874938144018491519180310439790855145553486998438515319486721171405779698291553517286287596194978718544061713499448873766109554535640726646059132523776005630698398935187718921729175419381625242437373129359687480348141954140669978683791755474289075883576902259273363821558263592514490248718571247794890403714638014320067969451060833097424906029960170952935513398454793597820846795477961671089211108980510929141284968165663172213104815941123663842503741076829883588723064574296053645766424408218820851366961485665718491067760130831579007291823796719317516073245788061593572681835605178065582577645160270498948366882347400699085054824057794248917395535992023216817508618159505387137896145622511672469829681468943120126899954232156632448263159411034969657482826498618717379176105009369647613768698990315213472229794141631321303120870650385107077263573963459693844771502686070032036022036565655260206177056172620099226820110709576034668148334700061266105807415265018124201749017424361422808955765448257884454252425948052622884820059620989544476720997279354736967955374017685995523695306252761385480465140333692947187737679482414527888614630487883390673616516079136264940185026522553034660786364063642416806672064902496517560060392360357890327521893292542414656806807886131478581187220474069411563336161576550178441126589537551725332663297202152714500838962384721963570326560320160467478099914642464791334373926014999239175371943851074603403229561869304201099728265713188127070995199797818583128181603712473837886690220775022556246905298479977136210677838780162773298558768383330884061774922077815127113985902812528389893421547145825810082147807356441759608723028972805423832842600280991526550485945461102139782131716560945842623247177391235676037704353499760192099380247149808145847232600473741985565456798793916674342760587205768393898211191675202070357408375858108614976225653244954614558769908834395247254055090602361983583225532921605999563149697146784290415935674067636192125190568380410812429046971785691617516186671150091115124828828432570815128528520236899316810581311579925538050266216299185427103007898442771898863713864365769304984585947297065500869622820736779627654308138961608461311632788116839005227896401798769831592557514875778747368135851400319870916013102683649251986512131762653177570931836253808815161839031337992890367710837552581226879817812779233382620636147511125248195782322771092112126480163783957910252593722375764414231006145658688639711219909474572309448425556435596545292508117386788980064736786091003559814634837249669563229368853192156902508499175537273479758895427181377430932858054550307308412741547651024514998460240300305864654369620353330340478278429344460374874664024908010658652631738310609964154055500685390395682484198666944449243353720860774188168477516882310517513181171702438265498574440871749549753807371052782854446028689152048179045057757052114486117845066179357193041106088073273863306507563681447436470194468958718721856821434943026817152291052997484304827494436529440857983339786243918872345263053349723974511646469437516323060413913453768855983327659837453783400797873113963534810452387461880709425711526070607592666438006797306472187290741634342910685688391491446821674266964950843032102930165178694422962052391325084734149093260427191813463460730287883632585938924869615746097264416864175711366409350090138684092574805517226513380229261474031157895229918260233566288638287215821471142467016275063892963225640803704538557138835897961107512357941956236849938838753767444734096430444348663232828060876106011080363884988703471230190108988569412902446335522429964075523236993790326214618022138241510702435781615156085954671846589278868062929447295359585842144773529334752638537831909568029016713883273781834428843755997577453635782020333427674114943897999980462300769589801535735842990279319974957103066522023184077823414759069656258160794573232125288614194465612873368194599335825626586141107716004166586342724820907382778891793858957666595270819776647723378315536910359494345778853190179341296329482135907321955044242399720701887493536134142887311935663581048335887518709392156044585220643425322406404886241594394342237306794860070019544577891558389614373650094212192690610559909742764519848646224330169100706744223309153119983046224520149598617708008734137641590975464014382253353691140456413544894006501512557806298665689594998229313946044652840960198456794690730538005816749007027771774246587457779424169672198805639982208185413133582562145874489238126542353053484743890557965027541657914663921172826843478729234287033929120209981305958779289035789143996774428820148650266301437350229261358524856388191787489279569546067019644787378368314474511851605525562852160084009970507024611400366575054322715943797156145355163174041504865764779618386310030963153771296361345714772548131231756130578795134935180045516316344505579292520484659889748522476846024440484581787689541676514866510342283390993845549576843369732083225278958687051915114658093446582834813969617932368889965507919893575444671982072962499504453548406030728884424321010168786895289665846133111061995527523223172861503226106951419451571636939337280623948746116855873875889548739899411055410442017570549683656508557044688231778532636253791123720224670955677735587143541534686204943958015983566601264602605579330141592872570674849678128830300239632443272678415864027694490993033531567911543058810306412174065339615423829450493369534693949085768815722181403847108338408792103509373341909355150252238067260739578255946994612121802090245283811114416561357528177253990979391023726401990765298317688095684728989043150453733624665038448320242631089354929031569549268086403756190443684859234171229122297275701726863118462018438880260814426891788695680985630043978112376214126943788241485704509148945914643293709397469149671573234484423018209914197755656728024388278962790553761429750250448262617864910734868632957598252980514107273385176581905709353775898834683783327338176030495102395579154288041465576173918634339106929811875814395265541729147652793941346273324276204221326308143444693917273317969248786107581362856017698029177435461128536100037091791889023308477679200340304770333904384474551484126754918922775973669075966609412254065976756881389532429457669891266904288605852085527364383894642760144782985715663940393406339431396953826749718854156798678404382701968237496925635332823143222123210270394979320508463596089324423898635324607112611007987560174831389831832497435100552983816602256597452910546910240033668479831035498925772100274119475954245873509606602534236320846209617781614475795924994305194195352612548706126318396483080909524359691356679882421992303966353115407393005823732226417128781000321873810524841658729985658456193229993621280609377140071469438434322355741132765139869270189084931581422098964585212304944697669078894587741602930353741007721361555488510638896757277020718192029872773037238254397781670225506249868179143488311956866744941774631891909013594142394837019047699200579789820533792569546471204365289933498962959900034848726897879755483125148540680474670140819310990609072299681170975533930135981065896024861908471315607306936470831516484122974583127038740637559662587743830815957406848320822552625881103482467914194343111953272976612988784189589619264166966105925391991612172585416169447380787819507333291504288714429299963962750825428231492384714893093672236456266125380771566052463527674007292031174272225504862410902446035536404663665727643623937187616538562659324400659764454619913221775774772849648502599302699113037828990903743158832767950214940947019673846571571588998989997443297753063138621617662655269801765774898081984728206224827441809512415617320884425091084595999505749912068132324004476775154724321451492321812263584960703117813569607907683478813772614175729996426288712192481166200810018282954236525923858457244577575594330588384436490093326874620744547437227177593595715199402073246269277637614252716623074960052631100897922484996673797293866850125465215132992439050742695211322151668350979568705025516026983241465842676608220987493896874778747636081285563346426299480620933899810716556763352742671595150193210351311583835909326879715981447612323207057494447999182950837387128916730730676392701498310840870701361509219098147304704321825230667826043937193935225453325520071483857451155381768055945419565837279860173543929919537984308546252975202915620310890395359866413419907086946420725125909682343974168906730522951962229002347583730288573041886553038949517470767003268932177546431969131554090618255173384263491313591658716886277478758159739110795140744241135973414891301362103035503241362698917339463289146152156826794252956679898035394564616642066486650502451146583480098042316441978280137857132826541707672056673757091221161753561237761768275357701351156977000685401108320311234473928752165522315533545659272849621306571980996398415206573426642869037716196647445413070954034885748558430004960461888590961638646810487043265390043277304933298567990549579669365287084221439781987816381724354353840965402625276302653138780147631662999593307728101492624143034183733440077745479757580877150946436772765909901587403131213811517700322068153224762079208543896321485709101455044696969052738961091499899315166039579964714032756821989597379549072882517259357953461722382591920956313039750477328145735226941168657498239907682788127951186411377944507545732723266893615683921170959120930400578146460423508828739876423127159790929089486331671665374969722217611722746043357294287626828580181914439002170121423705131048908761740902781854954359146001205981227444623828497939596859392409728791921762319759929103962306283616057787696716027758283898971499306195183495572144593726326437240475723700672029960131496595058995409314566036385075004830210080712644890473228014372215329974230945656778976752076572094648957897322411893099812079657021619800312286685099002721118876472962315564951201732429206864342846653495099043031457633317364243070474614133653446497073974894446172603421360147011044080160433890424602725817689322358407000598813446503891736215796797726147274671813265634098048999168100407082098778543316947365792836272610916565773903284783379595030999098880036479759673823540337625340140329638282587037471595023752563124523863698985733251379974905465456745582240242086467968042990436776137011098788949855006387198980488051562934121182341718420507826793018622656655757583064418434374788084108367713639413678587857544597552984691712269965486571161887085387579738270176284917982797661917366488188587345670579072448144934021804835745190577674918682227471388003741657587400301520855953734658718755376669119872529550530741260953434052123155344028063473914381183006707556076491498130995099439815103236900120922329791418451859646155596776079468828222047469256148375716878153038244683077908832090190844509914963196501930948294144512313255363827959725271028117061565562307203238488403168195523255718407979063362777979830221115736595335888581426525746077296782474596607707869516331392809224439760355793672875409748367506638134166200013231640561619273706861535380504850630207703779379392160429495293057097054376531960420455404027476308952987455392599405926735140163684929189007361053454628321702957384828625311978841121694975205942590479953558844296734236311401679669788196016687330146257212327913398441557289347646121134247743783851004156506517027868053952022850710631746801514656514506293556530493149613145143686084346278742984044094468229569701337468178071546019431375408790941706071543919919315569199553816081069905508937556139995923642354588169886738732569636403038806594730332512911082161654301158273967823567461090268306956916673391358593235728447359167309555950771281063606808980009232494354270554746921357396056593239102253233441304504618220438163538690132994716058033884665985556429252993076165979920062695644486043550180897656050121911248470489860476279788249491585858271232308179084690413894444144222336122305990128512785335048900823631551240732195539182816556380240902330694637118609095948036732050450513040714792618000315876999113855350282183211523695347445011347093890696401353457853972035345073067999835332337937465444152127008828466005095850495342752508083708482006502599596705250366910194133700813650907926546143278739767552162570313603571197257251116061093069168280511635925287853340652620509810630445585474966095896410791437795906703438262420312709747117307898952888626853951278584218229413438645221640061163081169213993918774316989555021453453808383615616585583419979055985418559407967401383791251415466928409109722699567585783985493809106832895763386223813607909630318534748924596012764056598832959876142641865406303804074749452665020808227735237754427478078099390716640061033466668146281531865955161996153951807620059530966295199489390251790487031730188624946822796131516077550221610870904756948776047761045361984632531302886430469590795362094501868331946798313944727733545507948937099273472649505293965031794994340259812284742833293325421366219814523759026180932869299022819194788240439817437191589310576954747031558862165550916715854185885902298103511697884277163238174756821226750133966633323958836628131533375512050918281308321873062342091750348992781298170709268439871624568735117843958604517699797624260908503186225981785033352911245848148967259249820616122950031235697272818545297241516227551834381859333718825855611105279945217055753696563870077973976593975133659645470993665282124523804219590958899699331987690869162269785076777500129751865562715229202276325729235553703945785589495272523040162726566874186086955652876380949897049490721996756648980360466088691686694027546139965797630930155983577461985434845277423356536297917564958004606786867033337240063409034241257903893214853665168099831633213204998285135504090669881304249989701323225417160020821521693195261484427063712364438334911700597658354448676642567153797987254716382260346197853544516932907549066645839779095236481989730076005600880102411187698558679319380723014971275110193119234770842499023718149257447812976066087835148285261984851402611718973141821402306171244933527453386459474464089782027267157995955134474606659059981249920127811636499979447940093281906347385747504423585115567224654235864396543195790765932873148593758277999642595209157419320882433380407046821339698973076005040389356036519075065385145302769455218513677434723076930586781350447331302692513966849687256105789222761061748573825803535720742295755254528318209764887768560931147658578616725374534276185252918650717649314291123384186130123830800640200209853297463667988446064295649866464984633242572542832427687899118745566393774485847201095833192130263402753105220990887790452768191570333952694058072392328792538458809316051992187698160611465133446256921413765752407544417017433109322598740997774731733824377183838902601860612600036336408052682086627027065249993739721952817649914184690408373261940034492935691505825100872514797823643785782776415784451830618332776998441232200330255354337634950072354000447843476038988283255979839642916379703763325646581814746583925079308572790649112150075898065899740307497572450814667217674146816081733358884889349854871079450122584201371017228133092467497173991988690192711157411906370021391810930253175566366328428376009778422913345177798154830291353623389726588802222180058984710895078337138110775098162130530769750834294799785793474853168223583167650020380910571248224651110311735264796238916119956158153814413574236296644791900789426244055749580430072699405727033444318036154178272297818770285271070446951764666027327246069153820366604177967128765003265257734548338900581239115017844076074283091881692259023116148039731899905383762485887682695803668623554339587516527818604989623010936687427239327747759538652697156328849725857100798836182823355395925406881748835525844841251166341186406647400549076489547887656783235266681031705881583383496607130585045432262185483848538709555550711058714515469986525001566009733201726225853477021987800314994842112013357202452512836458228553744024764896161356527051402803832158194031947555081551373448201659447455977406135014221279059089894616618289870831963808992358883916088352448199799388045151365605856888844897209215631716894662156829505430209693594534041693455364520996491797166979232489345691947996427851006490304882245579065334349789700371447481354188294719998806811314518063277705563876187099789822002987512444308847357122539090610130374120112498537723779047056306750624216750236637862010272892687795776566433091883572970785313002338298315917226264072987324888432215161788065855848305246404663065075892337428728190309727695579803416438235269805666758956220825154437256638312732186606298689801779709918274454024772158429389001095031161500800860010800015161593008474171057688291949278223560249337295814856294673116801163754276389255730870384156373164537185557532624300860404128891712107806363387019604365086659756371645327660791224339598126574564065353030975334212472434689930406450089999675830899302553691809350215023646318268348258154753352221611096056147596649221500017355503067886460448818567094519587574685459304103097102069079972389526311863706542494000161033539294624686950808242016072219614033573764238163765477665470968047416155306643898012596175754078790859413175377814880775671111781108449904276116760182398208663035305329299220238548430790012229274608757422160531867522026025282337621297875902566068963517989029458268330842653626334674515382235480673381126690004291471141081395928101816247172621162555794942858066054046579164817126341167030075868296019847213987459646531151578363928913775191827162608194940411086863100756081547155571161335067986304243210391463959556603758276738924381616820242866296352891500277277007710430397617827922023461116034024247652174477349183828514522674503765247962944046568625813817901473485137437190516599689299086941682725507394468723148659305846705622955409559933849221318238784080933784095861493483448333964174201826200331853147344867178237693340010955859401839286095469756099283216637178026224733633678975484122886165468618759949125627858872172632703136176332631973183957004918806153787535884103504512541440613078769597617403454301284916371999618506988042339910582784437865762267317803086319266391129623281837548300136097772861164786877629512115439215303358139087234710703921134344727991912416733316036363071090052572334533851287834572835412814962343668688252619264670607316993809631878929453220773899604135115530866765346850523261188610135935968568367422434738409745205272156389129663805129462875847179585713141259682433377276131754716648701824422035884856646140397225706653033773574390107891423356837709141223024890607450567450615787026764453682731193226577965755759099671675814012893127494731339418143978340400065929961348407052535924493846722589174358805150529263005381938941717203967375714812731872010924723143982409930111919061023913079643042499641528576085953492490892210810740288102914287832665396584151422391974467908358399023882433195528753828877672030138840328724433405355475303356788235673122969498373333146674753719171238058803895052361362042255444307114513286096688792052626864306723426985094811783605627751041796743189566676385990395176406698107947554511343055133825865004743045964544503489004437067666779343794463813732104031556313688794028983703030216338108866137802463690247324740027647027568648193798215856578877562743607870864711278590507275621597962602141863587045739116288372034087192556121558725470405915695966743114387324627741415016872132433921197996632329523837589065106715582626272169750231869429775070781417078786870241167148948689680722431075636174805272520369535539818333335165643657328276143265859094495714991286368888778293124958094937884443374052331568597740148594197033351236796778364899491118829399641678363395173001702666513330634814937366988816698003347877387462656247010948255308030855476052452964689090257673525522027228496741453558154542517541566262122030201689743428327417126037751273346510535078465936615685759890883916188363830083754141973993982690180610082715535080975989586090757031159646003240655215559597832748424084808113401667986752901841255600307261994688419850923817494359297688220335755067710448430623974070403698577276132454530962554241476964991998304132607677852128980305898517222241397198135521541811502064384834218478077445817018629670977572345367144834959611357391932153390415285479699793459531764447460176383260438260437722463989447392421369656984308488733721374402906890023313375191139559065242811805532868714554773578128212314557130086955939708380299129735440357539133614820208335886173082866061763994938807343350562995678599064769752608305109353474081593233319571718013809579532934981432531207251549545088880842555873835781033218424400035814255531393339017534310563056465085424904194721584440660460659522181783901627456550245178709683314778519040033000578348185908423404254328850326895002625469395164437940610281911298825605593628281761892313970481927099652403839471428580376763299593500501675453662609826829089777441471934610291741121407692764869813979793242963516027630501200160552297833349160215237506539318394778928735983250485790124036950913401851481176031790096933114838782706026192226655931321217970596858155616579911355184211917493977547210629816362078671766610280460478222043104842197022633204840546400307136047685740846131508472213503940003277767924860411066438725448444717594252339698509096714773578534678254595067399156388260366243262267091645792893154241325118907297830469446598940834817425277361417085330005770744006093150268024940412208212251047462130492442740287741747386496948859123219272517076305548171222850434487261203529252120722432516895842823103530440369155849424993849823750169229249217556285548864510250096707219141027785298582634676803652108576130511034617915033653683346537720042216530359947822401485110338818392043898663171398071931320629617344549025258123282243952003051897367104629041862184202939341681571590288261174797398979353077117163934837394608067176711592287349190607048325905587975998357611900454455968246005974527360342898189339665154538607089245456924500053682816250057988066913950555656665801571116949593729670825689677832819116145385900903193034381420350116637553225741882116732449488363539766180012001655719956770735309500631142683235645480822502837270484949501572415740162391727641388477286288497264795815380873987211069271436563745248046895497916536647269451473806555304682571816405803146618085736563148778412215122405348830505362242256520310514936453368951919879846241291717116078907744994825470373069848167659490132187833353439808033357386618980714874928549329818066221346217405660900985926019675136858109955404064080304328733150104771386848683037170345256228578418386932835749791492484729539283785440001905520397093667203521973542538975518586439026980538123116440118633616385117036062324543616572320735410967348040928371798303564468670453821194116197304768771281944215089659897265491753938501707324300441779629346073298677980275442683652352307535780200713876234234763822696999318703886596571140693338482662661781433075435829494416410529308289435290423633263930732370774464714237427424897054070196352492564014601809583465302197887631631446149672534179255878131141474610059342566895593410919308410302251845226079257272126923615208124750039707947357615129181676136374267984629231140241271854216402397275220071694848667584344477322613070564158459006456448656330826974690926559656237586771940486129753097126968450418856773019514798280875769942819745491730576285954467683956342694514162682691817338680289440893690086002952763694730126284185294630107296992351826941122107733937902650455379001497157861809308766539120710308464304936677090851202493821406124809083837755628871065457201131656559060083453673786781582486201860037752005903376769801998713582309840603968104249836185193076427451609484088531573511019779498125311312403557143712926037213276245996422026387840840619035958541621902782836250169900905321710495919562190798833608047426534966376380985603129581154652798787206904148774097670512044512037693841393645625544489915169871634530661267081621104007304188105983106564172369758398400067534865249935779642877895536387992860722106267596862320264404518593318782144047121012769436839591688853952334904760652465137445714187969738930501073829009886885697068307768213103724897812245870526103646449521998195499272453373133028698139222339052541253326273641548083849375949331115431639458060383455499191872274756512323853825851613325809232136772939405790945525928868704024820775158635304214565921512206403306441433637589027640430552838985066359894694141326152612404711787185948475885014428431717257274625492522762558272821677901269950074858794655004323738742837864126115061199042900465471602644852683066145525506999417297248998264421344269607580286364368078171606302688892926038315590765491862426481634052172898765893147249075354406065564569676944512726909841569935842312314214618272391983861878638457530036502141311900799320497818200235251987269030982037287809541720691496504476589055293119369936884465082773181412816481149590502070777855127449455988752602601501871029569395814329962663093972040229466886340180982053176070585662940962319093610745057708300918751213420655142150727555664801735984981137550816860018669316274646738023019046069783996582447394105303596913976075393385845725632742767218759666809059304258572559732365844923089334877762195498071899492598169451135328310359245169789662273664997290355174202646827433329067018197812129792159876436894279974698221101521577877668792322133049320105132767086000563803322435897453416701749457598092521014246862705773629248419677932085938553080402269933130634854439086650152713025759658696599185312121219653793253492227307402840601678669204443958168936173422939090560998448726620184102241208588658202104477548354360404538811765403401709347872195948292738647028388541240489291196140827179167457757543054320040273541186271443780875311081951924893902155907269579687419313088733241142008665295889291108632562643794110333231112028437201463902566984889977076297415968035133230971501416454014469351670754743346388792136865554136947546520193748830679885583550488506011870920153677879514433747676883985014335963143817711536733384387696405482516287290510069664443761671966306926455116369419508752031882141095703889439147198323006501662542474743755489117896399002538100049424138247205661238283615628363626740609344079391345693993597730777084666875208343047123619533788430090249475736257351101993292923347323694678214421860819095808809066560504882511093979948866400314016414858769547157449258703886447464308108533543666402852474319132609681053116876331793651011604691785287736439190508215384036748489692484203389019617306631893994825787756285356007374701175651669386921541157594004256032658975302535028531892603975698237182813969245244515695747526112599670263372176881887521998659793830427823463642025083076500835479353547744152956141409623280368108529210971358307016847651334933097102937212854173390434469306494790727680875664084000362040982075656008868594731805310492266655028527679207615490399925001094576002704798459528378099817879087459681465554089631947353705694213478025682842379306828248974776088992020813752075470688473807379886733113984954778873431908297637411671363743961303507930565205658346167379759816447228631258837352117833770688582958879988185038046395556176285670060004279348416054979570300692095021003529484101591366480094090898588168160288571179514833495137634832070659668692018587535904499306814592154793458961988132293240046418610827614353665059505030051635481662405435490453828149574911399367716271931106520564496198980869256309732783238792974316059889898278096332399066216791122987579277387938331654629051208909420520263649152229262968890911018313622830508935675122285199290374627445330987106952010711947971115514925407792801032097469589923632552286767213083434548773552662531038168968822689032040556877512691414553150760739617201667959093347900802070621585208763731666342456212878814659994724689119132194186304491089400763434998732685046539353738161696678277055381688235193798446834374109275424791024057408417018908511846144752581238282006855547542025147692939578583951120920430169738493737138797864388745711306867506307469951568994897417710751791696159644595001244826408999890063113419088310863891029465802491292964340227993116338515393723318641021852040458874666005812260790198241650370937832008075385523825848411200508091082509555801900343325195548563054639705386454197513448183351502201711621025784143482725705592308658797575408832121638432916662662745820024459844444627065542885457414778407628486260322825823869971727607973799824067481491462213777502117581191079836927587619894479683914213289736457670825868327032891749662513470181938318231593359615185593234154007510188652781641578860705801805264057434146152042809467155453027706406036329758427812115178929234020232238386655735736581403284544541305405421666637332308884269363992205830280546531361427743452181748082491931805020992227715092639713473299499343187241634123524275958028682954504825856848867270429005780069669186963458957023728605901525932622487684578750095271479466586862412077710126486036580506074659441373057221087294306901634135593766981819964990389995681901167645836966327747641541355496481104656934111980185882078077992361746229526849129717970932868290176641979427556947319197639022321876003164471571895721020721916119843068998332431248539681820221044581851242737233864653330678261922507063444508237426906907979036178094878936259168380223159036755648681693916340220735606168818154578217602415010981193368417136950543007600216629922372726485434819581220488744944706060337978533295770271297515290192122572978873630325851988746498517635910216603440603348494224124582801111011997637524230663732143914230340912233416097302704830421397853470990315218704277380915873039826538049945024020345119118592503659306658853675130098884006731663683043402551298795761886952047043790188764951898788807612834391703393695275006730597298602933671328936472057190191058583502473799830847145073853790608765397629512459313907592584980201081170325165416127547388802332993694473331002439716336242490188394496732566885559939474601970643593682938313249950742268196601834712589654102129444941326639484872772340600979143573386008881960464877083895374211183118600894944160885155500774649417936303558614949269325776357033405557302247465598623026734748139477089571105530565882597859251469925089676528717064073648335094780330010714494746661473602476488158594930843350988958740707282550382312811239817829972272472958490262147395435491215196668811817769554283091266280510074694785939874432389654138581134924549565371194148915034263163437257514222226390353085664696081657263689355024690046124918644930101710890915582309446329639850675717086187393595621760254948741435955696214007375468506331066868876011716466864173585178945958673999736914522808935896884610705625438358658254609517919831703699582741595559850580609991371457853052256968567382240952742667349574112576471169691226060754466821705176349804334301423321891511072464625613002795476651350010255846689413405973117222148504847969570837917719890084388220958618567584163546683334922259516368428185192725956077553022098814771190609237286519005037656702710291420369788642956540340771155756621278484002979055998392352825589407460853661437411581733347581207689199041871885529054671922429075990566145809269794803411561118435209539809394626436833241515136024613340240958454586337020686704982311847330201687613666789762709855858538884707938264305138881788564071445845679470591232787287936875560907097866776256372728334176482453659213290999662011481169559294290183303968179151782212680790261092231434939259073573627339955018507486069222240276469031127864316586726707478206972585176007398491616787857284447107958517948863965211490632845787710327906000176763051748098084892946482055028654068058024646423404042206393456537651766849517719533253251162086855347901168544380050170595698357080517685410679797841550927793646808845979559050933852654269719391988515446713376766711374764946995900597124361935016505273975867645917007072892727614421154807370980659232933200402334367558593333592537811016274859248591277147529773399877372059363879451058064752896129230777430282088223589924672693667909038265631882143279521959644110213736265987899929429885252027946065792882413077172631661330424657720745838360539725611296667371339333636792916959896106636696010790968249595346168596633825615920356443747172695950557533426994125256515368122806420626908533451201414129118977103339053274311262254683567322848296056420967470888940877994266662963733701603604484921130756488645619842928385663742568161055648196075442507370962613445693960124784949700824671411456646148057442392917453203369234512235491656494692775163558117677680930157714129726153709067360641258740722446097176127636181797648680475494984757477362565356407847480904219899408760879918301635300562252610312324094351741769703120663485973556463866566191689897627943190704152996201324122061337584811583628178197651817281458917745868732422567935227386465576741534998851887550138451733899552483328607974094855145519975391258581608008253382319954067154407101816841068659456969870222124053327238337128392689397366292010106461079393617122480599341382628615418931433511402511123745277895232338456865924848929653457555361458968772368523028892294204252966039710163564067227641726612673094455551956090255212855147900380822160885191864895277353567368641460067441639029056908081901386895266370345510315316380719350692368025614873478343072744833640960878955607271596756148044765838860371071830182174944612560732904911352302805013054558441803146196316326070563464811416459501287817930812031680800837260788615949306027651460806777633324553490719444064803771718182484364972240520070099079662003238368976576785984076908434989850099246747676875208404763793937612198873710609221340095600348917467187310031655706253026716209986282959467281039723192873806280196297729287105284767873011594057151390845078269501598009419844521801162754514136365735854545883089171070402004027640826643087124183125617693479858170160529955219529114041113361391039165316355909621613795211265905010441064705854381243145791956684646779040083325330938700688232212430044123889715206701976927276700547078450463392888699037456573579366943220313880106630106906208647011612490002353850513150676262551342687974313176953642282027807453615114092962821794751528465091927161569628363652866034993381704520460919116638766555809170281025020906176345604588072026400699763287286769395429456520123987460016329447793056720216257416943797328977992133738484086220936779360041343959749047047110576660569966076115339696658286423514642308987339954282573562311082272439610091784940027834765042876915141009769630237849516440096498421725154506718777364597114022860303923954818141254372565416010501999866650151865868454834995749294360018983760988792470815668929935496929592116728534921174221070164106150178459461492943945691922436238023874700491928628685697326928461090028122364418704080508911159556250598140681228903846375533585374869094114212786737959277196256091404245142299465540856537763492011179626199490711347141110865896297931326197696691984710152363517137252943003435202407087964597266946842979936538899453375613201434963286756623841689483956941703622186207099756892544632773424231828514168795613076288448010601994874327254796874562769290275665965798952808039234756494315807169632201843755781412722644404183284958350091543255559028369436869106084788022578735992398175770206312978531473619677540486046839947822658104548581247887950968053111572048862113579450659062591595197376173150070054568533210122064739795401915724192551768887777805990861106196731442101584234632124582692623423773328567306882276324643032984515578790291537093565283399403371174249200094796009453718434960878090622540064672800170644602350918303669573255624862852449076930457364493665309993223696181242298610658856528483931690626650624852493921806206541641249166327052439724209054667812114523249985394167853273521541743650400084855638062045619099485043088908628249150550469145625059873026406662500398835001497736596641767176836040140466679724222389913607566885975598887891463546508619104094708240383454659003756083223528157621364486077338755479744941557148757669482307507461217739501768787904904061280157222373386246653224727889765124712465405693144508390925940639310831142946834281791383436336363400378682947535923363103773396326052204131445542565318700674759890090647435934750066605032874297677199971293953919105165823928842999616726947608383722675106095303778078537084157739117917772718194863166211282082090233297927654500336041685218952921516806410404102678033785984220329844051831337722083394240871081567667752284939375268318001271362334941611515413695407806070094857288175972313655340036314394603449382941870322242547259597702690589590473940051778134623039536170237356850051316286045485110892019991706104428674077530891015201176814804021962374944455802488801901584325889968500184016172678840169372393810455437463884305175276628298646306198168678060849973651526369450690425431819950036513796711737694557357396192740901330334522627977685176444245461947552211122518889113582850541625407241782447516829361013135163376123619467898660500250041054902093933956277207273517171509523139957463481736610609621671601084426642983636421029647979182948456253850187152579550485468296193791113544259843340282037611694910473537647740240226883714993159696672956046774989329264424530883523245635735553658226525406540283514297892074424088201352188631355355524200241460567509579959531760663228354411482190366525171459651471824659889625549407740309909665472663178259150773376866541548793638382605068400710595555856682534729620743860754243019874201524958744295653344279633926416256143294768133099147268110382255827763015163623052500155822758113561156781531847866687450491277757764012040983794960135630558378347455768176097095464058431273170307900228919587847414018450202955878702550524318783971745423204015709001059293225001688534412284856591664290859399008723441356594300044450334380871144009947641904258898917046543647194945942198501172636005815486030819376213840142624999436795076669366095326868833528692272404103620503623075577979677968598986521719116085729219884941090147400957724258938814189062671619735316559102129233703565350166368598252167147942615734045548401651228626898623761382959845385122763079933313043694218267012974050619791084637538488266163630250709549959158113690221743575286047834062872231277464466600411179901820372403402904183305451520706232061032596493896038571341322718139246237478333467575240110153721528052311226614890741260792397580862280352320516710788541139163124981327129400165494298439025872235548817469376659702153819659170608203026819665314151969537611749997686550894759279856028603265808359289255270637394407253279781781518814754861207906564275856816217336690281766584336426383677962059955798334321479462050163256464010152398347069661396674531567930439269881834655357914729758138976360668631871682314056541594275367081397112333407721106392801204898879215073415144959225939070810441953195725758731216634008596371667841134149966867383395336221899841024150194953742637427960342934130403512803346645255148813156072200332046734248563379779331293486094462018209357977205296073277866823527814727488100568038622455006745425550659605569152176719366031605245592180919747590069524734910929080163214800841135018101785783845824451284943345985895726894455331770938214470159035656797237888153399698403119713887644737279324601361027681147974996172694068529121432927298035563480754408104451309896366551217369727974371462261891056583009294141463742321269583688643922428438314172194986368393013381127462122436628397398942645456544597934590936295930176896646536337660181379283509929535356395997350300506553929102279015774247288241933120117133778115288832455762221017594215315569829497076882781325493910253522431139920397023496893162258758294510814494864733707922116491724046930106881543666368880993626732515744317769773942769218220716787680055584527169848518920808706596909888642735948975732282940022883366945021137364882086152929840968928358990146515396866957920560116468446886811698144612618950387277758493790374971559070988516984809555632438526710526301546031780158613610111805440943491838417326897485440162779821801104382306826253314029351435484466021851667072761154992348120243994833648206074561615588538372962216845324779562207705822855840272603821447013741517064923214878900905446138180502322467531852855952904450091860151890311889802411613155933964708716901616242232396438016618602765986013834063095663685333117613081539625644712825096207172055255450169825792574091175126874404111072108241850724142468793036907475028105571221414969461834819635489851843656059678958990608878646099256743130614124117510384778314422514673362159777410246536097469729593423554828236502489241017161009975917034044344445616265668000370853053823037547737008357768242980650004142338144325807671388276425934832523202929817738399252969570132094627483620160812425358879334895776612499339923635062474522173677726719006663527006699400614590416980180863879577740724696216835277324558489648744846767059575080266214102110423948191307335739817488981120474775326564625000622296037365497689341348946768064826318330420807974858182497849606437521635247614894589983445387265815245692881063484576396780345480355987289663328829194978199235785956136542326224723639683531168749613794791783892590603285976261993226482519996450853258266273900362891358759392575188322706421271759033128298873431559070655161614892069904050105978429943995911978770213817104358416474005604360632193737150752227807658999605439806448370039289038759071652919611433486441415663867647917406368483214895146988777467657581804030421986022513600377501908144125007474078781077189640467235786416844166654377679696994432043275917586070124886466431278458100019392978553372796231917274478321338669856977788460338239784724724776331530547121961861203845668801535537041296097628366448234793090247825261042064885571290043686700578693799659014417752523275464080407639117217648643995672774868971350986939401101706955402617458450302544572851558536847226356106030286058621172559832418576756499200979727574417165539018441803828996434543134633329526903709263712288985737766063757388438884672953849898171644576333723237359569586653883204243178482341740595026169941650072307345819144260871184035691121872630149999210976388845853935246490912986881362936994784765527861853550650443430241268423859246934290959369706085181805163393691353908037313450014928781722466417095404649826613457944551190082562800917515394386895475536896431206022274201484180276881097586686362124627921230573117637518458744338513451304938493999190060249245747315172114198415802346213089737401729083943133220190308780499993701069056360888414435455260439309287231440641694196622727539374970058603607503673672611644307173387449925292852484741964549092404773661411796378066809174012643914995320261303584261573702488619451466509516843063516764486448077405210040097504428969457961458062159784562973778312128728566677627846924667784073187047637076465475626527971662545721919969017122267814238411138018117351572881643321320423967531199764068865123330038148875701739748902306126642371252832052107574057617876345677083521420657004789226801831692274778324870020871694907840041418323453931560940723694405827497638644013051836823224069093045820434265867830902997956761446104519754041606605417810049771664013829232771128226484702514805595350100933676786522516556464376148052460736406799265522760359075561568036887943679470430385621354492531612885298646408340309787985681586431349016220654546939207940877156849183531495578320755679839737966295295361389419146985291345233381010545148682147096957936887115278169189701617697081468282806757227627614912700353336779397479402578342955152916282662055376194277630999957784430081717049977949105856177387710628091654994168450781531874023724119245591786200115614394642340610455833643174896791087234456562367547662915746876386553235526337511699501844470751135567970364819752967972772309236855087824245102328044341579975878112216619797816899559630339754175538981904159440314297765720542672927073201998253985387038493324081707318418852402736510064007691900501136305548684567141038448023436366485151049487872020045327006897952782421003042531257740990224928989200302362964499943463612495277316391728652131741306297607247650020464914675443587767859687035854340666391508019672512726089003929101185500902217673067547088794275524391888330931851416729720193761512337047495784983390568905222110679218184123040003050705987552391819971338905348077895643432362872015145388219248199180914782794903001090805431563383887394232981266755958862542581151584077479427278055478181430555921724049420184000101822786545171522936373952036627079000432914589936886150232572826409002446540718525740001460959084327788024493079109722459680431459891535896729539528819892151499162281555260192844205245925114855139085092989570153651880485554902613606591249906622464172625177198330372727776105652939194512851908742073290183417074928434423953752712365015072707099795937209401196457535778343125035047167942047920375291663111722455362535034059882293040358312029848065083505670531881104170422196152371824858973822012716012004028688615399344867218772356095713383201778590551943011050810554018433123178414699634582853147886020657522430177424281467507092621872475706498414827784082648907190926583159223866376681915755094513512519153166266161779954569563015647021570209892015280079839559752432980464722884595288669850502221678056513886002888145509925249019324160606796963297449344822439006486964963164036859234923428784836512216353068967927569058146460347581362701047454129772161513685266410281995793845619643530964783372183760781957822356781165720691717863164881583130534517515473005250218921257622544920071664561616938614125072676949059565262239851877544191287729302307868068129229962159905332243232391432911210502839056821218924764606433427324851853234085036807703507345741873226436662133447508368739735071930262493653182738651230259597705669892316559393195302912565737281782011420906595675896695099301549439346788523309215834453055580035027431330014748220599993140629773153700390680338270374620041361921765337012196470003175828280172562390475050757454428473006030482554331204769830537557548412253134267237689260452158147330693190267109480432989041574996409943331551718742046885482707279658344390137954463799394688472962987836031290859384674096097961569320968439223664158298905475466814164280995449325535358391222929288506213113924013061831208272946497537857268614996751732099060076444615567919895027575735723048324170125743449297088598408142943470154421376496156751194626757064304582288320668133774509310373205380866488786546535624413005270082401369311138491086749109524071712045375481233085190693457663123291458246165398704191970484675652550136664531743826939220060001595436760816979198381829209954240441640490555158027283987619671646704728929308799312381597924597867039779429877865265522643196085254143739304875265384717219568461113455235737091366684014631471528881118623044326507698112308075278920006811906693072513497630396945023730912148785721804454046247170988750688557264520182971244711324326719575256055692358044844495149298199855067037323141424192961820192557102916042436153986423766816863904989091462437297921123197223732398867045151594563083810462028925222483631120720057323810244478363624699286343406280143658056939204598266264975961530871751577052232912719749231637641545535267338971939971382680698037801523481336536547453703153370295718240133736955479721016428776503978917514371956720434988961569141780862555134271629309577329246327541821662991978203466954885169147884302700331646731349572405950409196938809794219920568220535400328230962014257848696377122520447977762034561982557469359269590952767244434775003099805189062640824483224022719898904133285292955101541401163744993184586453989958698692941221989145108800291766083808785198719133005373277423429869827821003337380522291816800725499955801761410291158862786607310339960764527493450921997335033759445131861149388202437051262683246229901085456488487082709332969888089331905029996155230983300462311113866404704140381171597541672806377909371421821438681880475628299657920291323527255225787613320588197406254503053864703809913928427182412256008505411805145655661742344048551368367542837325577660869703325090413192047535795856937689408689654378973416446713726927311024506386843052197171324253714047052290581894739260131052824700141773904226271580219818255527241857176185908201775979758007833100508985671948850058051123515378961389906417564390645157778047186875547102851855498003193516272900095440833690355437142081388363539542327355644694790437645825257105759751431314153011816045881591586902905155391527257076634537439514041576459556692269249333139496702869877418360739930495117026428562311214763942326766609764681950394360586303349912835722026984658530232581703995889695053724466077679348433607486806464551517115216454132450931199542295476410454892951007172723905301836643684309780038431327195968672076177324746530860633709847963163622149525385174214586329994564809479906497911257142096255471830630199631641615121696488290694176472041034718971647278491360259210463711760501672779286272309399545101437739531184367780922469035654271354869792985675157158746134315847169875504127202539721155769342310814395057799062692676800778780234194790044388039549826544262235057230909776399628693339049075158443354806977822454102730297257352252123027835076424280693012060839293879481879004086518354900789613806653431068086724113645504780550843933824757121686506752346081541945277330750647286670433645445036041530283460263518535600402544505484079464219542362964853890729961947547217802886945624232890406900988610901638119099674702839600173351512393713840831566285930650895395600005107219520081828315827639569676324837616109625620605802081543495834525053806157443476753710986220062006792352583438668988413119243553332038027509987648967099648884697136251526968256865721495455741524048403131511075341308892250630466383258775805295025962474420433666538234724505858947390852599472915794004134356580693797557854757651237085516056431550458337176537957231230216885871257990486901928657268561918045539814928558589878213372744748447231677975046431234226302974855862698987571131819421665810134199153886569955533247566338079817595124340012692033430665237040013395542618984773999235271675816644036183576269058986400012766986921018017902538448156203411065067078793120377708059938581761186154471730830283536640537388699646798497801650177086366481976246614468102298274990672266670829500151471121762494622830064795137734221505600942949096342022935464285715258191592691821025889034562352630467355481372571243747330778250901297897498750877148096682976560852950939968655042956172604168745579614071472806506122918986043147618001671626304996859338211324619845137522309851675131563705563788941753912120239163014911626698149007496066326644145047851379253201316073519436461936324738064005366314039532017617643435264157403897059786847160930130680687323369365633594180443786659592269291305055459874641400642511373356073632740581962718315588527887001975567671496395556825315820510482255257260015122366622260295964366861723702783727630893606177792734529544654921840709572976443444466295643296974338578589478572660890066017788192649551695889336395796309648050821780224431708731771649262485210543604861181169045591987750601948582746329504664871561860979874854478819999405813631665398212622774614754578517407025268359009879545719824160781251918544595349329987824656522984207053508761352919983289732751205286846143694024512777537834570141596620057834527694817268542434778391684692843740528515064808874198079520860819303896520613577973704665446727496068340946012206519654667021649251165109742897630913758761914166183270479711964968514174804736676615099872943684551085567174810509497089533726746937012327124133844956434963771034641680343442334940328603706182043424043769832378212153164801869623728760512806429208160335543665116722590208932773702647694797591802531389640516967477583531749845358356089666540569720795737229485199908889362727620649061096073461698949601415808632911727065286852499947829625031888445332791380711603857736327863038698053482157126606849795828903996421693799021741545652382316296676757309448150770826981105351478589768880212059633700567836712710239292686361293363607397284663513249496332262677288702985600660310703060116307644554839966542101793454353943355688098799798219096613787892699155417805360746347561094872523292495927866526369399683484573978174950009943609814398427333521674639112556537767581573267259233749977552175109759537927380825431316206280388753819850995807628647262307850115025836790708226479552360397659027008187999726773878019382462167121836855515419279763348542493724075530661253798619253100326282766050078132900369368760423710017099879609690170115817069454096639229854085235974766396517285682646702020802567714812725401825067946491206406571286045941063244216924076196105747690755593816370489596655180711035044483468784646077999605502669965014874489091594735354825344467819197075658608559157992976647484952278601161084159982832474253437066906066713420102429809519796210229705391497989695181969631816149704134219600665591843611744416974469388372401575111856339947781329394344357748836808611986068691593432170051690018225281638214139177788645928169551801922270927048181920186186197136915931877683234414782749292413775049852898618722748438537431470186196324284978322623908463683355687287318744633656144217392776396697838479638641568105310281117865878714544813918479614320556893423794310923866051730241895908246252144207188040500278318264889247562748599668157389121697210079059794150278608155123580915329154575837632518108881967836271554571044805365189526711996095677134462389718510679791947051661815143880131440816302382183561215943127896936042855313666127090753800300777169064490082917133161810182967192304153613632117771243626627153687989061273540588568994635785690342946954175925168512170182442791001500858600457707961580742969461515765852298366623202731882049112777614119664796220834221933911409797878802566641976970414488542914969121481233918456671800166925133539385809925632548106631068656960746185103127575394024799702667724385815517480840022084512829792664085894227455217375005329575108940201213886570852261247880714657653475851857769823770271785823748465159944867360450126338135832889244089618494589234015767919652622223545243467887204930010664771043988368360771220929783191914478190302854786389064379401821692024495634269201482297066080421552567686136339123925708847602461819190698289111267572719133350995129488047965309887066592510616769576735985455395003056982921723718279625052295727452725430377980503980135170533911022513983110955923645643705305450407636046396957135094061631647026888799581278538006585513717665598321908722684878644288084136128803026210772514186454561121899582503186168031692177718882258574425068126466346957951579152003313500816275901270494407505195224958079805783940831958186808095601544796522815491745639914087441976992233141906786384759436599157499631639632283191735353804651384700657768913356704823018917928223120116451504918649349084455745429592979551111673522543573168544622500361920202848772713971372296239031597930436428975212209252353653133543497918368406033114676773751390079457318055900129575639156300274928833570795643365971488351741213690421689745162936366568337503290636848951902966283655358306732006923186594726231856224504151354660021188028264957071523175859868443369162586790869349292507609387327698138022066989006840187242382205095731627041525721327546861928920775419418104189078124132176742087844261868387807676586700508370649221859880220082883221594933401748322848553305132015998713240648857519368732308235941696966611810506540379205996802856364678729836886878194394113959275000573993826853205987809077489369064250627500796952940602880759171446061943084835455202265329213924542773399715994414133335481660088250598701118678647501862598303900751817482367265039278518601802125400775074005672362617225085723823550474522421936949857634875992973525271599967969731943033396442245674084821544256582988497681407152002681175038805102374898917730623189600765092059316486203257212523485882165566015260200484208933043528947815249709225552792938345929390841664929551189946453512848944374561979295981699854419084018493601255512408829467193071507995601333027529679774231626623665793090734931561615258332477861081252511315058552270901482201233902452040893307058090115478523530393121690901285988033661903761569872252221150006368457554188797846510518305192397340906855008893723588646885272755240801516806557212194102202645200632621739765565433106821656843589707270976914136489345584526778275959807995586367983817282996193810460777250927588035546018182751995736316592555847039271227309245364666102069845154984016718417846282293933207704178660586455471954374201048167491171519425272896442384925191622993449056349409567827318771331238147700206453313255115618947035687621796649426275792640714644654767836516218223341030155716796270686018383731294091899142598764897924690157397420149307338153342327165249935552320336711374890291106830807004929381042343895823828028219468896271410342607712519585379397011817038315289881932137721155965736849864265085260971711073884831706855176152719054207804890068934172949814485258939072012233736046916206997775781107267285056738469926418231667176649675800471253640512233219979399174635573248704253987422181677322546891630145452211104700382022918117566307576989108544106827202152620406645133373435356134438407531956259953076301513441748578753999532775294482764165972769364782192319877191578843332254207401731423968598529883203335260881326724367634322021814370126944171011372514117698743102682761371340713911222337897696069566872369313349533424684510074643088924904292333023531544984447331689434053061998311071412434833241922147676247229923619854791367674952388013320867588390104368030886390815849341501562415784528437569775594624721651728009917009853145714576566885188982889840973209347233243129074378834082137865276917246955516160049704525679000211206337235152209967270972998405801976650599628059990803146983322984450789893074686113146293083034178268933043511769301453702696569370598199659240290189361410284257648734496336093142144186045984854331805653706644698951900152128600592632047021258734869831289331538651526448290891653492729010075848554176670395301066203345016089215893652105506833366055439306114644415727176849220790892754780961005962055622070204458659731053464223745496378130037028842967149940733758712600821420013059718274095026305955714278724448580214520118128529080297357048171868575145625115010857716330222333836975487541669970737409580402754614868573350942109878283154950588547623628157154573372861981898158948511642981596408485853399258742302004138573896218816841076100327425655577628838168081261521402301126128995914268895689167220008888767394503784602055844555457045626402567629859230878931909644595736945907183222836796157450781963006703863849336854441730097233851885803125549243310296411938656369719943299421546250292470610676053968815453347655961775805485140721697733199953389391912400571196705108134244684079476018212688202311357137723898230363565663351656880767324167356659241028511266050489083059049601548227190982462267058266435271846291555917055099752118779200744932139989728265374605619584460263551499638873188342596764816300963345656439333492640893442612773939196423119231269827396534226396279226476190221957158297440144320866565632041322898786927210678379296019934281086961775738845027362818695613748693283101216035020042316677490051183981272852703650285305662766751609205531762430861569706774372323678874365574798754336657189353277356488777269424615075607252929838265293814094964844461742754775355912348904887437687657097642324193571291303432294509893635795051379851952326100803401135801684976209601820793402372365344145639394760511106925920847103618486444500120076956204126021485418025234837419856213699120553442667861206405856557002764115812878194070796197838152147770187313700577447870948359345044092663234062466258223529372469404366676322492488984558811636845666510915833339221934253865687144967832432883296323931361455619584888316423564979286580861903625409172562141065765457743521093702607851051672996032805218266860313245674455892165792899927050750335273562280935400725504680011011558448031098128488287850990441317435265508157419695244563067212057805994127927824828442015196165346980807331630664121721510660024107372222183151820347833778491063933107277991667160376336108052109007734646043357906272137958522122543010981975816114517314360155774828652725005727821010093003079329212832524993788596404210457042625642012310097618743324218443878417072155809131948187511329920379472986977320403331376073972492185703924108657877743323607683837227524591075259266913696264115615889752899602112201228707008561457859264657249370044467114562108457802110572016430089317770313771362699314606326461214813600654228287063076723823248773521053278993227624724385258021300933190195797522313141706362550397630932947481841125093750647460202938768440654298712087426760771598507336893680125566772123468587560266358565415748931289290836451617255899764111283683276789219354437410028592753273932313509485705350710051110347201682286041640522481975283331030162877368754627023978433170575211180371568928567201300505272234329885907425439047793574811427684639803305379969683793308224612501812039219766162656097913272504497188661168234404142865031906848663034931127873308764064883315726857747625043351759438256808942811310896300320276268051464899883774722087104974856185366267578409628209526237261751790953584868279743271398322511262576454323773727369676110052614920193385321354404199152631646300935340013485739885255568736456964596171475528787262117971463591330819582201007972832113166132969975732928907970096967101424854940964269523484746618281885597501833934420301365978465858612118787305992432100164347794490252278817417216096255502523453378721690347506170253009234818241202810803405905359141110667282991314311544713716644212813900966189634244020111356578999674692125335690068641219593629227272657116117045679365118025036367154617906432770134575858520149227557347978735006496242434087160004932907280823081769971211709687768700893491103428729595881673954733914046238376061759146658977386283185683923771077018400529344147398165492236896382898650590620744926054415198797654463920507470638177311706474347854610064592350659894615405364445756782055825688850217416257141608600115762068079566308680450300638219827003773143934608698937979003744771049477117514544270571798719734960292583267082479584100138550725116541274915131246271492069861158306545234431174725269239379506614975044862723651255479417569934989572396450266034438787968849027347903847022011924136475765164116133390810927980077357567224260088561910280931790554513675711629210112113605969341075659419047995675470921704064665726748361834646496150804800840902763624609286263431103638833834203317775138227992203319259282598756347088094766236286447053829655032313721312592351111433974021112134101382715971210852248406294520478957301312355132992397920796955357634869334979220100808348131472518762437922580179587942243866097971069914598928262289591481328246413499855064905950897183710845390254007640335797445824947560755077711658681370036808859289986919294909590580214208223474705631125119040943400680287379279453185424241040059943302926160203082708291931607010681039116079765026723739218150355644377320255713378946897110385177711612087647799582862247234636205698350442312623864500268381582028313113078955945290012474639703014964891890364504678121825329045401557704053586466548951224458574759398162385932166441713451588613870057840792971859144678030335657440637156176170712462312319126444351750671743394721002380618648800443502804129775805011873576135570883918783728147383461413065019069823911809565954959017704876704328855598028056638436721735273647653610310112464489748725490485394577284707771513671551560436348824448011793715534653041783572718725348849264183233731289433410178114242034707183190308796354471214238669306646634197465344327042750369756237064494635440150580570705231334158997884055477136751676349133764109914045332955518083097432631500630933350837151389407944834385377355342405643748209180049186540059621380562646784959081752535556954380135472969490612265976456548922436929742045532271294153902005185508514438626515265368575968901529363007104465329861247590401083546808312810739564102125570971826791539994149171958872153734073712337467312687485111306720958062106643383321092206156496616172615191027861538984760168698171912386833751762144089545164721463285900261471902047414241756559629465864054862817308139902188922385568424609924776779595163338192891812690314701855341710351314594166681024799095945144609272943949679380657536554836038442320659182275407092626219996239064975750067649149043332692837831160873684436290552601034231368690164802956375024177638796822474859023511558657474133830280952773534207747135096512467685055529045295169310749232226995104606864441111663317634567791649604437983466999365948239747343023269158161164132679525640799948208402715241998976652517378509926182495316309924740859957655987285525617883598370140106932432747378562895569536929262394432548160359192088872024954550289647010269668196430480525124039409419043017414664971035519856550269614976355706641096675781159341362478335030115807714774573048994533688935995615865722018525043752456897678408051473191615992692066945084188401573849468102746872778857730482767080887755992125089272788650783471124025733084497134772582227340464526725843193846171228710628909516807750720251836177335009274591796286621476781796074490221678346923928359170803377280230542227103383175745083003195992798604815873179920964795408251699879085053236501475187165338679459712343922704572233947276290407964715811017904280364815919814658238784127998756335279769373219557783741063952988072334731194724462629778611787807883414918494124494707347148217263024520681642708127089207277614398160594877155306433789897545158247939409117483063692037119397245052184552324255659063467209700786408012405599122280412167467823771723634949865542075199274768906169049088773853773297667292246767564567338255986841867721799842181672996698761425556519247805488143917874776361540856241300351460393413076404049946647739075640505660232185179551916424318079892561477511282179695676072657552579232376090498114334754392275878290874537055165465424919175266959890164416829319796289418530314361633344564748668764069679622076962433526097729946518222055542127185855192317316705782947482245460300793275486588207783845204097203322075462997005217700928482613313644726775321859564838691722565258866501716230185259855442169684320482022735055120429866087732443236683053364685414691387712330123603280308229910811141410164618344817772427178776896397935685426085809271018506102168060561394048760888201217467040725697158736048754144641570637124043253190989238434790176601694792948366638149633942035105021965973298128694417051452358527922605182770470165851059690303125500386341659062632584167771987929191505768350173464438853587103678309645892101464832074381246950501660537979248355500122312269288196482699449573579194525292007909604624718155996542839827579521152663956973988288157639561066448265409813820824041209082225468697266768701319060656074552718312400342213182466816531477423458556545446711664800878825435051161264232960683949835713556551551210665474963334273127177949392927570019995189168140689973936245425155175339959907525235156475352870521669679102903394726192606884620052844319281682929477432713065365030601375191641625171482678505321380079786759332992455975019394352338948819823515992495459722393500050719738666049204556770860249700809318585649882846715315723424914269742764687981247688586559750027625750015857791055378195420691014932915478991012144943868930347975074838911565778371625318482406097911481579307717285961462972460093634644937823835759639535365013110888424200275824675276124178227603970475374003565056861413790968473565175020996740464932794624733231853582894097132272247769152277558421808864424232226847629870356901353160003844902803237850739873043647202329130131960382386703570471372291576875181534815355316442053640037434863036812350364504269044874176047484465542798625696876335238756236801271511633655693650965104196948476569757300297152073048261007198443420695666356853791059389821436143655214140844299554010515504472822772225486400065811324742966657593583679281607732094467971412136005208877490684110909116596401069373903238438075281514380940323676790344737239905374684515661004514477255825631717111361719413697023458731280529128145729966348559889644382710802861224572607866113863843601817089934096681930028053750977231210960100950059256906412367757734951940302160283173261122538035978061369212720411025834375364201390790919903083708527090373442227162619154203154595978973232718905185393737642032403246942532451235643626982176272181831803701816597656720900117146550162905406135502559199268361813880840219599332156575721639642521889585409590873991670937344094434612851690545896407177682431559872057476750659662869066431146073656336352127208677392318754931783251708277420687613787870846366157814509185423670543959389738028969765370710403864264895738363648655235184228565027893563712693663695874193979538941152611857431244067535452794675668818843416691817384375686476082700639549062278671500002655177601725787235208391962753609847450122460527456379209986076232268903518605838243452812302536800007382965095873919218600705591967955416880719649487998226490669843370018100600904678182324883347013883804917842340831337699929738796579431958110124046389865212598077476568684377373831673108799577686884581070561886817005599317776865382051732667109244843532186944708490563430585414087908682140696147638898962582336452185760011703431775126308710897432547787171142529776946217988233933502196471838147634779413434270289503603249748562955220885919114437709092282818964251837183896808439408816509008529103964088112104452009718241272628156501248696548342069578432176257493908471871243999989104724270299650993565583359523179611107658708566175749670776761435091806733642183113099576581002408621947498265378031779994028592046560559365908970351474068036439574481879055094933273757426218006212265270240400007029790728179063231769142410456404211121872798463355109441928934998056785232850028202976216647066576590428957175028815652624778609480979701773988593087478176016596772735739458550390753638589294941213738930469818845583029019279612100303311131707305379554367057180197194049830529111393048309943254179590522174290154285398651256471323599176198016041485820156090399923260938810153725284854301868884580249734377730979463318720040655250816132718776549062931222497825187156422827877672891636110816781454534310767130054609663887354215408893138844674679485264176962548462517737590119179672813559998323469076991401370633826502188300777437895245664309996332561010410966384574173053485779259987886804330459182092550470733975681858297582329198180738862506060651677101503283339934338756530727291912301895351778521568915964476638828284044481689817496622983172923183471844829604239287153146869874569224647515845468883176944437057368427161787656581758295196892635985343710775632536696536539319089346441977771470454554073903714046105337401228359532251642437539901471450571514957687405165644482464608082825007902580986026180193877379756579778401623347295460476408076470925690969327435403864472566902442219768442477650991973664266334325757310242569573375027284023759130859169217025256042573275310182711495548964279037364889600537920668719985600556905170301521868560378183713152376494885825156997095270776658956703747328908259060343040383272908660259966618100454288252507165357888612272853681793599045555542368434491582961209746034274732627028007043287557702829498828834543928826351929147135659787839900126557301182722051433050390813184339221804989191067338474964942090340110064484878978004212198394267743147248322196297003223678689631879737944166161579374632591113582159068265514567392334046108522274411533153475641881312386684843227104383570810495399221694611032466155749050031697540939657067561274299954634853271433518556764999086105202137404468513033236552065800441566440345995082045569425719693228633819296335600887841589701121415326802249237586879712361386109070756769428877237967438135269186244332871344953306254079671033249999669723807645568610466747075595568312351848197982344815556892192424106676702521991271276416699431129775901006226720528758302476859854434812603443350555338105316042175083025524557187799393255964094071694996601579599371362606382338890185382960808881858654290856057157573216756216365751701783874256294910496051455422874775226337140193143203629247768674109925112545672145148172725602673181552669997110784959139509053925853938881636952795982326486544812287243083845286642891542895679578234120865384196685758416614823675910190894338736423171234107838822150224959512846066444966409510055751716889985787427374648453070074139162950374022055782491648233600687272270224173187902207644899940273358673324117473590601118152838999461479268917795265863776216580583460103140918582010727402511861704729628596275538649402858375566482177169034313442195471124718349844943737511963542042583639553692916124787404289934381265303332599977023004199225974908313930090624283166679306454863823833590201977613421242447826530510135098078978228784791962887123462261304291456119316930495508579195143397135474393413632291231149981705670533685815575819964506207209849849531614079487985267559904960714797338084709207500058350272991784885987672192057299884044852924659548903886014829079244135917892666685844420118305772023702071232242751942918937026051182150600114170654200314164841269385941226099065626733940789348609813502316303646719641322482304550673848020846529759540032841273027656705541984659137497753896246089456991177054838624467762131029451473631654129037929149769213263095667537672702223895935310309585692842667399585748306141864368113964962147880302584182116352436994714323529215933601336467279385964800067735082689823477929986243999289287069821205848345418304641766022743759682796166906647103216218178911601734074499840012929752724883664950822698982417026834871772161659891676491752092082931930052752131856280877763800130191448045937608855781639134148865405389371993149015259763128810221436764568321553880348208202333705624229857376544370612902886908892417126514047764817573490319835918389310659976805996011928484152043322483567176161864812366985771779943590257479079818598873772300974537067205639102901206941642918681434333630116271242553902543119677566988963480126372672464693970454432788947440025466071961819474878422077903743176176496467810867269249708514988369935622505879100991809130655256448816762966058386802931680819198376249662464440228900630554437217567118814270875419673383345370326946076438099347330066277027543366775621800279219411043079319406806813270816098076648731884122286383616066383956833556811927609639879258939707531773943814144217697898230821086693655429642043301471818885245345837599877737900020271166892721949751891029963146030516869890918132804599535733259230178336182843313628363796743778690633307040714120343458519570515012119857637388812337355691621566563041211375718315096990831166349657218547913676281931545027380077263219075320371178663157533279024759250575079641557925750640764070537479013463039699966629574052198520910294849329960349187009120961994590961015753038064700947978251134422913868554939029922935954362187023144101640990074071463292837064270295140092439567129113702633462136970297935805915879926568522718874024737534197948701325676861422393622282987889415670179195263405487422295025081968917443979211889728775891969673951579931981286345598791489987635071189974471829972724796695059658161907044091866396001286927854384022972699183859785471563586169815923758297138480401411227391297979780829657464878458411690361847168947017973621934906360005451948335175674058155985203642611038849703654213349327161852250776578283305498062705268421231048926034277983442285001645435990668587994007263020938918058247041024026212685706153433596099799723344149638691376740707946672855955453719857185803790074857176485897020417510717080861138106844522685128936884615474294329898409625800772691990632454536853155721620957244341500736729607043511850413533833654363311896940421927831283218250267776172442182630835812832849748367338512250122647958018385257095166542033638689548456303746567928662183344478997488290172122764988090345018824376614928888311385245863398979242873008304681208227068790292926457552959059900626646362201472156743294505771699179726222392752778846042030094612612641935139300942428493914981943250445890275701376502748143868443301030900203346231278657930844353881121732192810207068244595908335002655145632916291020084109031839594728515923800320025133989054909901822384179961120486974674408114374164380347133760531060903033407311261862876012942533943927847972455924515481034246715104972430417657879878441088029725927614801898533823925935498553989842200942782867382294083543103216012706813924320192543189816425279935898414945584797667288302677890118026921148731064428861889205328310237260758936058338450314948901988095352382885815326829667546748589297146689421266812734360368805394721290019797001826837259302439866870008714547808047549546417904338774423410600692545503777114916089073315192939366960045436791038682485144813793987848417090907687400971188919989432626583075437373289725768237432093707049507262857546882349303807230034247622249919624522232282522705345833366526696821178775138215264074497371035639058795091810713734934316581325815684000226454653195229649279229249692979131800481099188988590726340766777142738201151398251518798557510758960775453222590208872683030897011273750268597310638251985487319663429266906826320218226487531425718076720373782019900144057955766974447779174813593387752100593064742168364486617442148135763336679214026777670077149760615822077947970325626294736745785049309671473313606679659389914582723645984505819542302652407940923186921468475891734458140889348191828877286107177558470745983914500585301513672353544266840867049698008484058291181766497709837558616783965368047189004887301597294291979123367799744639105092515954420802981927058102854704728481854828162587705244135169452611464902538029649029506911011518443046376298434610555486708894501344858918635202898558095428574304424575862771879020382572729173028554229031860077687550801307830680885446333527878643470581615083079714593905881814873936588680818086818791259795858863764391436495287862760625159872670731902796383914264353187860098679683742826599536410995614794356075001135752676863818426393799728258213291429260034365036331086600217736884933720020684838646683183951216423736321189252263757438794220650536285557447765458265852791584218477085891564396392904414514550441560742626937977085223658499898943540722084524503731999153022163456487370393888356659077577634254694258665222424807890699924149920414050285836025189875703463226058538964498824308409162492916959962768935957586232786976883379809090576502125795098111887987184991248438704955698392056628301905320752539783093079925874842590107416712943826654634330755712250295259018042355038245354213748547689474391564265639932257238837508387496861953173927456630406257228615335672228566295797861776956869904505823977858219258761165231590688502188617443452903996369867358274471067649119088301066877601372560023601217412175808330092169347970898692069162981853988557768513794025775138578381302021957042148297815595604203932510429385852414442764638788073601288436279616811628492343140896781475130933455746318816358582357749316654882308146074777418783017654477763005396887358085890807518421030091750270809025833104207675291625467928189786061689527602696034992749427926063960081157211219742442302770673143636284084821712111818148665061591094830278776482633695334951022870220078680859687826664773177437480432097461265414223139729652302190975020666796305261667546816922226259492569023394206149362450136527328274228568595978298538766991562605222403392164623503175562267082933440560168407089892466269225177352854857613783541512898076162078616020521586554067447951068806772575283556507273219448970981256044843685698729390493337322088148907140683690416465369865308858541613845505618881597616634655181609056183919930385266187322380187879374087002465324987953977801024322189360969862093461942969603842049694211726937341789137086409009417424525977641811757019264914914043106121913479512692251829037043742471659813021620368077286140800361005964683291719635482752146780271303494649170173282876495900530250946724249887508809889210101365920646709445362103592440357208688270371379272347334864829873199688761024715126517709654770838578682120164146915449760538463421651692980745692087911139748394882700839948741981434436087653973833027932788300766679886387588527015612823289409644106906149718422412435791552868069776622083248525481654416107586217867295048940055846458667531326132326549286826165833513033688628376994332715486760741369705583366603581019567144584864021425060863981786356456056375485157571682597730699740099600856321769696344604961093163766810839892969962843045629934907029009860068856118933828208804742174539926034295684341910901768179826289181570515336835992395093615125655776065054898320138674902117495896216789262445772062802714406420164428135672938421193896496942963041635823683508767322964275302421630440729026748819187191880890058616727976483592999824638720433689663436351325743891623257185939922713801958218176390808577584209561385661953998679321902403391732591152363051206047469160707222556542276977803553436821199464216687595168033280149446086388380801286310228674223882146789764449936730896324038583097341303587284824893585471854064191692313846637511846589131781005121283205487016425689091080542831618994667404815330046958197365104001175852665551169558173995717272261822592879414735463082435740732053965703602345660987132519085702748860996523923677584663075238254247576150444219067569198608902053313639129590755571779741817815202676557950695000136852864702175670691347898029991798955667818172999332616589585587229261807798651786397316652036130027836832368330632079648823348874317336108844069615994856246584838501515624120163364210506257756889840739657710631512664745116040220445818448957949136946887284945779951586013890835873642341572192953717155325618675895591046781262599974848660787896746340681822880544709882022646084994260750757493243788999477016278986408262213554605370908087995587898781433963480293058400072481455078318630105128658514043475689897502037275420916596463230571576096670473617059036563305058763684179876581224676507730523481989504335595140843494582878862369662815341190519814905130985666847310706674172283204673178331141814545083881180312680954635679763951305680075374475070601646011275490003793468069293379597527645554519831520685308229971101072552924173128790670472544089848844192566712647102352934711516655664661211375024422552054051346446273149496854867565556024482268809764616932942081096440839620175312634289506944560902168726288066147479744492996135100894055637270738177222078466335929874755419805725324712580825183425486060417888445633609473727802365204279257695259817692208508905486546781585629967343278437127644283310969245961032584430660093765864496876009039969944683412293148296452943625393370473743588140113321894719381900478166198343873633525912293061531242552772324433682749923784659616358175858578895558643003682277629820042724212654727835392653750071203141216124456664603398170388835936820982624134967316949667519285322512572061828486989053158250601342458445846181663209132185368151195582925149406088379653471922546885337873646001140289494852294603408611624380085307527916770104976995066778028426239746145610664566111543529972445113024188073694006648561776276543407963404601834726265574522285140470105994320742278673826681376353475801090466326363756275613512088924660990307405604553358897790423820194808809729414158678610626556729898573556267815449636932440154226865636632391250498984725643768932578459891306721239780319857111027931740629215526342527102102836609992944426697941808559864554153266097098944709967762409738557199487195636094378263798730177022186908804418867180340821482387620622575129386507265015489936412736660694247896850082840866770166774280945729359152025032027158404639610196271823038739191277667434509642794811725564178404642988523808854966981531702122027250016054999116405635991853764709372134952223548692665465832437705658532031739133754810642621549062795340189250572560554683717192880394243790018277317150876041649997866212767023995381267565332650725223286583019757157978243006400171489039744545293528292743304359798162521691246716734176841559920219474719730515314883139676566426732028314200728367461080621308911659475340689985466612514017879005158360148090082146326827314712217121877656866600689752869967081480689484625280758817381136526853603285533593806815498616418225408655397304450275071171097594805223051368872646120078162032892720085031004941802897806656286632218634754854439555604849507636216266900070089004200141756163249361813512277938581537192135479880651551217899633346534732191856054735533415294749900939946102434991352050743764079800025962904517479001505528324818694378611618437313286387573922515884396925799145391843795482151713364234125931163368800281259201435153291741716192626862271362011309198007846952799949178538934227774808411184932266555597863285543106775968844091178457827566347020124224364292973567965037022469595584630261131329936923489252453833670726182017674450860410269204988914875195276615353772655684652996369839819350390959513003986168880261712602655887434586083872279861671340109770043989206760792638860794651784991836406607953550960478450160739641500845269904267860302529722171812938643253759095479705432757170287171798464278454141212074083537498328088724557830604362686586566807058333255862644545043535607018435070588041774451863694119253338587461622672269479708361874592188072038832426067573921941431477940656238732481896216635787777674138743311050935339396124363234422274724707119318928084327728031572095918640042284887897692591862439011417817781482813241752905347968017111919822940133240314659153267418156117288074057780711262775260577547191704108746859888052511311987904451503795422770088778667640233656883274177081747841291195630404461760462466966078361570220924933616998811585149855557544267664180092586119699842561029319879160401409183163092212491944051381711992432460766928407386852283259154999799590528185554889769933522398663921243699562527653802614326638541697767058443611274998917778051725760176578390779095364803610139355241275036924249178917970752795703202701441848884436507138892653354382730999009731936710508771458332413471872410412911574549909894695106471630721537495191386727993596993761512585474757747180011417942989990817631788153752090362423136751998580318345117211058165015832022831359207133275640960732366185941665987813208849664884643374492637023863579643017470390036645446376376976543648080446535839076497792711236369723815358426101708656899241120577851940183107835818560993571988985862557724450731496464313451390122728244070286538201755766268513533482575773228506009146589377886732889263762364530105173714513008615554978733521966553418943256665310752400434025571350982855788696784736014883632964907944939306971752398357209506924404085751006981507130933789196637378113470478681841127081817675308774960582908209200879868088884944182723901260567182415387598135180318908055665956499223399484091938934230159072987084659903158178783627649952744994201854911907483040761036504583702958336728308914812933616553869967092578835798520084790536548229269305553374572296040031079387071970918406812122215880138239178272000883365250721870854727412848984723928287044238284322621072887952022361069638160538252425982441819272679636111761666780239821281915105770941904501332999345495570712920440697028690385818355485761308784276103224030356210405191291379954949419923917130059371304376680956277013504426122393886894466715994296353063244597046195779837488074092306216469807983198332241123686562199931599060172748084179001011758554825121498539624522972115793558524976019239746335011917854074687706919541398283022057377019327729762462829232345704329759449465010023115483577012190404265346185161498998702975123103477116293935357701902293770249782681303739602788635630580743998797750760254727510279648219329121673772423306518459316856028408165187205232902676693584362660767419974948544480927291036605676497588731150036288554446778833901417929984287774487535183840084105701546657935670638116229623586044450148325608345163752004041215213881253219018858805559916300474362675169111053940632380584399096192449874126168063639009396297897301553983421381493227387208804370525443692697080205005409936146649857056632295500708021202546863439678940031813016154606525728922498022653953755807118432453933280213137602599059413582680777181005599445369333999468597594679814765467355705180521685947853494589075629722077392589337975201552934971180493944268450269565287726553074071704431567108387858305236307804522516979694187734023759382080550548605995749720974243857975493756158342163110746088652070275302856660205528894625736696142036249480937007900309600699668314906048502182525313631937844388828135776601768681401737918451192918673597035777028889520807765630448763288619322810962787830847269576595998957739565993783694528735487434912268123694973474571028426447507499786049409012798753971277911044528992907205772927554989508638588891942207898192000857004486779003436876982726993427751033717387684514256795384083975397265872313869441231816316103013816494015710542664639221742861887847024385445461691813543931482123147396702500405593374911860594100984007438838278060743694350421964286649824213352645960372261853695481873361121538868011290192882011256988837058704937160251902515447963029330001022003876291133136797407907389685378817235534456473713011155230382596583382176951605867648095706753745250981280019174314248604710148495203960952748317029731949891486878572381031245366470038231889185932946190610531102390227817382080041095922370533967826033845019001553282242863925160699205245838096673232519081577415240164762649327622781248536754678690159535241981748943615537615955676597236366140727182205577371631556535553238794279951062299679292127455636243938647286134277767839706962384103349035663507536261906092139355258493732701299453203242746215792655863120893452783035651040990325157732623920215415937196687668736120333924357032996269472973656807208058774040754564755348158135096489734013791878716341623474518396080263895205153450215012937635920956064154211350409791685286006660344691557604203563214507045519710080984007582845766918611739297765454862240679645308161124577275369953321143703057382229620206686879151969788107598232105330880796839363572117838026736773622434620866880133456176194434071126163295737332846144802200846181346990603459906478569566733438145386705389671947487072276651255326616991922260616487017329872202557990894026068127477351921604350325614866220386458412397364845578142386571651807702504127689451748496679007722861802911300077228062919047922944435946570543781646531982903189266824914043068239525302758968458507872764288446829478968155032274298940534509979448856477009155625328068158267028768635098563499331924155503087195643372455179631641695160712374265819049427648694476667630279253706664749824944264096493064972371847698884554551016221599893057589975887703192936098432194908681466608257539856090910374391260183021150379783038464891826894193896074441694906680146241371845670790551705803309042569279201260378631818913777264960049885552243200934118315076952601209917267067438939828257860094190865997057367485870028527165636590424129622578464932384115101201008988599279904190115363917736667341035377355295030245489905838763038282207924676569377364840213518483462700309789455973830145492216344009314301012463947559766292627331040357261046536775456620622910408446459180147631706541143507749214334294909035010093703625782288117090976214405859407607294419154717415311548859030995978077747765350888589376902959681580870719154012029996096496119099697339227476456106463063582811200695425119532994917067437221993108069552883266272907938742893822073417464257764502173235122945781376480218597945859825805836470952713252173958537535718883858306804445019386407072898259848676124201142174927123191798644017626998665267914928065333197065495658602891434385875166265562239937946732807030355007754515454177906098035371828146949632044219684163459052697075121035723111156428220458304137675072785622146093060850317552661053421548288055273891601781742613527280984381551647144751032162465167898134369861064585863904105753086127290915331232548611713439931516318301543746627942511455585736098346208619635407227563986829608352322258776401829448786863155929898447745342707849102421243925422643246623741023651753433978328780480822155751962317479966286311351444704724906876084292255182439933796005119390422831162752917303873288094280904418057690412903779985907319338688926346019696090149536855592862664478681462196463130797464325091740409197228913388292137653495418065779024234186799338121502683061575084031004361395730824299861486390080998265628979245574443669314605312586072994607301876065539648302943936000143192422892920260351329234556257133524821458655112782049852028636422573683906826046702802279323000127311531474116052104387169127287441104322318487332406201226012674736174906359634124838292695609117571420677349059229900098025374100979730469382691073245796593499555034203371213353704786358595965635147243045067898646313425481398040391243378060852104836012764051801139555351049378669679710176561305756659133415048220398540655765225818650786755819719084576998619244089672721163131142519881130749959344850564702706973671000373175106513578239330577137824795515330759890680057558190889821550484125235908459742141255138852560549288592418622124199601303295491472455183223586850298468992513525340092145031094194650727508206176562165397100093795456140147945090697841074242095471068917257267960304039898466193894116454881130505379272714552939232080925700689726274076823891146343238704500739972113858579075360435778515220531693466165497292596541254695063872670334422018790071875697082108422041509940347760105226419523937689024024825751536708008572836510669956642073296442026815969286088346322440004890818039357961475315517532485566716466284683496326064360928209568529822371131383501564836476214302753216215338845393614916966456665810849545791390304797257123029696405954957322882821166827725445468090297585918403895958941721484970079831185642453200956287861033530232338133508873695235403195053560244939956576169972619227749233877573958604522883070141732936087541608803163742948545538860901438170291236802101911178294357833963000306923116856078973807069967701407780890128507354020099559071194870748108131505308992171044897665914858687913497699759555651564857107248593302167123092365373553596774795259389551322386619592074635324224559265226256212380179234577195054602112505255834511951068962629476769222649125702124506877481128858592049703854829452563033226331359178221803561905159283961082838131115862093416884830727776688272069058020793309457779054606855930332646382058147977357166065024280238414622109418335084852479253645878765012547325770468020769145617255640766761881924930535582898283642301988310490893164355507241603175534297652162122359759063420675518559994778124744353589084120655072070136906893214766275745024804387239357947434250930409142520319212203870443571561816288073104738902125749132023671808330984725834842564604645823867235368231951874686708617322728607938785808267338067734420518179255957703825647483297747371791916118323597816327334303380410827410537379370504983952848786385616003556891237806898415824732114702462554124543654477652660619775186254486379129174280612895238934188337749403614101228629906947102325627802033370661863881953041063579702982293143805901250335178866904756873135812101098844064157667165076371277940085074899354540220477804591166223119087351942922983607270783767869831505842473350288133923724962291168134653517091401078129492058113086899739614135551892995589688288159609699110834430871174638822300428395796557551234876146364787669842631183906876976766562338421549124565530136247462674252362377224330202985888396357582368402255223318954883698267300222175961512536927149812593977164035235147242633932341005755963266447106083914387773850321347180249464888674288846850219197368545422904288791740059835775157247509874659359258523533776358253393574698893894833925683914065552795158300971550790666924736593927107616247385821823619828392791476894727113822580645744303202990531031620601882942666573257797189276483270965764865425745183140432216841002542119978467416036294925521037415180949663559152139631852593806240672567129843279088597166649445615213662969674675048466714510660674157371268804896979904809293080340279281226380848612470164385988471878245853476270162062408218063424830435547665800585465403868261429474025496638956094242345266267248500250012067214146550892151604546652047339675971206771865886956132797142561703887013575170547033998752398294627470884836952739392913679091271953465894512486881199630570728788033971270419109854436515128687079603015347920311623013022289960150423442441174100778964159735810872379492054981897963269177418525007832303159947345328855629341648165937691316969649612278582259874942169812982082172599642079510229079485386240939724147592237059455587481719429658176854425841322648089460552814523469709104978931138696644747559264529662854073166325881764418841114308886962510874750058745909155180443342660504505493554219461429012758536380132227932266504675184325090436763311768398006361027909075858554915536014316830254265530261695909045356616687910017276216530727156062870607730994603364766733159121117231673348147821975591747407798294365312717672945853784986084144705589342215853812081204598228462938074450989220838895927376933822203339437107420402365418975268775898814318069070517737384131160668218684823869877996130638573555058429448947885539379883868978933873432525482276063066090957808117378649317146877150097576043355753821548840033078409105929958316441768242571279190486157732737090672424315637659735812985917806026467466244502025946220174332520526524422084400799204735700547606021127015659523489726169055418149552623123900638884581707103512991688853401888882366687936370965705392500132661663873082822054696493126751082818308289190528859394753804186663633456609994678852680993506515036065801174126795743705741141068966060445445183056218524330041586329808277727416954978481211298478661309505595928518360210299295745229052946481047161574985066809775410590455677269199638923469092616805472040818578869916053736079931187194865622239094595833968930754571476278536642277036479878816775118513563483010623153399230526282314108342393426492761573149437133274913819578408738576328851205720323226161798311180505190848118954693968386315520924431724334244729709766464074018920236585537009882349567066089738875361885179721918533363426050137538065548752458816143129136633491918729140827238212622907363000890973326157334690282553733350419572754477543474620866248389939372224458028396983112106405695946983954819942048123697188262884900010555958700073263754249179633935980932153578062690601075355740455093140758602725241458631709887287701391922001304464541546331031603570213472439934069234251580394171494992827857125798641061533829842876283062589605359028785039372432879329998171566642204537002339480731993521657428747999427184855954239029313571637098190833928436955623896061050683070010992213148754795051638030723362734036421439882583834382198231598708521317653869443613113947143456664365882430469478825581267996623962503165464249173023707495567478657346537603906925249405148559724949080671948587048702780327516400009845039751772227267673916449520917504073542912739338161295034600178127799402313661661864471872455669233484388410662093635428404543242091073620529585882291296233591312895549899728518552978378827512226518965156997632997439663043381966505796981772690031380570028863205492877176249061534230684621194868875915169912668258204538611615923725202639479352122595398727752773123611562804300134633200609644707994091514025095466272480148382927917089975512419991041174018142571552878628226796155749778420143132337657294732278719212095539266466811359445236935576654854842271400641454697958884922748436518513912487797999197829537094802365002399433230407690753181862512266730390652826088529033364381082313209807743073204327054419043838496833033590303956508665318005526873832124616934493879431890191632940496383131791355311642365239588789238930271219664155061633319755562630700924732247214057618220665248532134136089452643572496901072295724633702435410702886829963928297923875075671885820341251137844955537092635354768092215011173261655048196127394837560116621367720363889191834902972333000412215184159746118115942119295700703495121472262642252017820893266773658046638013992467384988711868997881019307605445156822947021793551419478528098389148447459377257715846700845542473870040738671731583944797394802487313575672848287559144768320803102522754626188695160977246058422475465083146212240734194324687329576109977731919114836920828974065507767905861434566348437179777514842224473910387814014487043451090293517826207184437587256632098276063096119424310013263089538590056690799972015569781225429004353639783421812704398842813548507283571260547167360605191652242170177300687015249370018943602074808211710330606976263176056010840106108891779682224646953379689975758622916629911880222072637180717406260703737455424061357484441867721348678823051163151046139233105498562706225398161468018656452037520103882846405320920628548650494145888236829447339963423932510240466830672705019718679228415218128676460106503936770085186980592313887439791803142890406079935019013420465482928629525481376501251479124394694000485446651469043877487481192385677206028718496572551552460131844349855742123153275383348205418932456748359632206526657625145168931523215225972822998392929878915894088528550117482937988845519585993634376501153034340106588196190385964493858842800644986406891698239909999057854079370385219540893278833248793588314379997162038314286401761434510924606902366262569206259817917925270747746571830871383275804236913290456604758136532699840490441299314552136370827198931685648808786239556029759761677778504931251829502237193628565065041011327005599129911211772287453811363806384284900903736904193170767800841534266938670779377599552997435021594183793437773296647597430904098046727023707789535840332459278485882051198131592835213984186461343765356187070381238708678701039398000144320200112785923205139978156220440694452950753917924994539708540991726636089361323057935373312056497663726031079155896651808097699035167931816349684006603536868364052530012013161154000928978415324244120809309128693265341489419345563919725539912283358686020082516540304822434019738449114513986237037734412030426182976496708953650966719158931611495465544880037175785812377466467270788259410054055461467980431077150986743016311544512904745013687041424788987978287357712039320934838561415804881356730331325179099684493081460642726267590813516154913644262645011337457888634042850900954577518184109512224728991477622433945810361837467034351268083285214005014354802716934555309974390151386403941804297844356664151884127644074793636916122833750019322320712710956451523157958604087065831147549939029284531393857420745845728346719518585544865023772064547296142388805901542363047367097459607125381282285122485403600410142395691324650872185797098506255107168529910155387115223949032258505176485141155098374095365858456822844532339845158727828355028554018871559061661132543771377137146359344199614753643781853444628604548664628458784712080110462999245220087454319820330936190544176280522439626620643474096334317368751876480216527180475349694761142493486042123833914442549232659178815633855335395334224090073425736473493687013568033705466787034489069419725043303426415337786106598515530343141064687439790834373535602824508765316160664627519198709667593812922567942814363722533143400127016492254971073607054760150190547928089766404625489228142223669861603715396072927798943023041320408737506996491630011014622212882216103237402642814110625184793021232292861331592243379939668738426810630554061911392947997364460114746282524422393216514645315468540426732973314597416539624941210743221236510404798157704745035504914240888912936677885257908176579990255722820738050748409775919228514679476176755630984730970501286361313047592907634927274424613579084622602907455609468821201940945416198609930882748744917023126572808128881575440870613502933917326355187861943489386728222695697638305714527479464582530723909748170780630575727247054452072398458292867263684187116315585189865226031334701106663593156303994908044202215025320671526638387630533608835007135108100043597820118469082825531890842292077340427438655212242853972851941171520443742981289447178761432970290228860884756730969618198308920717665321075757132662602137268950500066546787119826684124732793771903889833557425615223235394437620383351975163154818162366721333068539995881788760180408013569401021602387107244915974758296205848787163179528873209383172369520701130191076565583721767400264250722240597443857508658855379675636539059748716430622391930020676118888852822281284615204933069228574117891723911595700734747733742293572428697644181667565261740207037820623863572122033997384945343971778294574840311731511516236496477584857810517217042466735033629370904376587182561684169960600502329656260151414077310234886083715090094712866440055853031492418757571773397934915894849550989105498890780363717052595214407948266995510693373985954454454099239693411157759965629408790320926003719613766157448701043063033628954029656510743550650939772176623939230572079165278643031671723399173134049740793085590319362919446108523496397101983791148031738298592820872854040914514112445191233787727960391922909133696166029584043250539142217994478270984947693861628383499893673052936718895636841424954177700948479894083354779935163030716599983331068561891418248357709274531330705893497583834810068981165840130327423040717548887296669414716625164355630775584649495467563145052323778160062270297996841437957687958438197893363127808511797503942984014563257366952710281114255089149093215211660136635876468865909943434299745130367869258313881713664584642157942872247047584473161958268137163672682748610454616130378558813361054631903514854247886850069953482105847444001120785849593959816469983104757816248903466636344761532752543476151082302931092875287478038106603686802270016222092927178240338149882987177408549997668475777463236860288086562945064823086487343717830874415205303892679012297396507730247717432435129541495824850974951969744358049727747950814026212361940359810048684392286403515261916927638740162303937453573746979132175467135745815771098032670541461600634485662639014560750320316981757035419178670158268353863749245104588758301502748804047653983625354752493260793123278888386225278159618942779415406652992206651686074989347331767607736195652940807844449115170312441584101216136911662561805897235134825668772799318423321073648542230270382920836918523793608680198436870089933674698874063352363231074436264721753936852287121240108140035904663893846858057178318386898396768246440929236377298459589780912273880704462455764184370147851478436053182258963040975387407734214238716475760380604817504879462702673954269056211716781149162746558668826804989677254595989336491909017149211624019907352367568648552606631221187045923035464634506619293135009543693162473571662413321411432984670936367824098586961586927685938812917677830038039613590221868123525131762282035390671460964107758573419085279400255549269736551226435366291979182440864860032036807695156792106850077090976276910866637716661682302027258480094203006470001099754659256625132142660370220695394610381937282919314015366550662455403105078973117374118047831338562838996671971249370578651258402605054479346008562012629089983388300193387617859456261856246348266774927609838296055449969717850002876511656530579715973724182619184058754213391819976119680153245497351047416429721862077837581155581706947120149855878957559485617264884852415192288096901529085152169643053188662125263013791143015292678775472221748516198472971074272596165114491985980280656464047455877929324507537381069279412287951050987180745998792609882994321551795167119203103220811544586625222838224087207064983131859672204811304578464596310608091359449154123517021216980640890395728159624035612593505312466691334277114093200461718210059282913679272410997801419448085549374334950902152248156419616075003721783100660573329239881825644268389205903425861771061894488758805622064984063322585932259015013640458129519456274772772379587878288325496098595883393344665140167366558772280646945677229144402109255549355762033023001133930987943098380557625349036773854601232547921501577138641203038675210900069670731079299325166269460777578687038600473353452904871584459112115323028655091280710729932228472177326267248217570470891463462548129637677225054036100700791087326174968639633060346689190722990609293915356972863195712663665251805012642507977450088828336848585606149989566912792740862479044786620213258490010595981063322788988144570626578892948641530039678883851120414349998699886888154081653798638538220673047088408594508201439003776637245079717463560271106204806846768724718838514840137516075213826406093225528041649374706425022578996356716268776114496589404097782558243191984652320651176195241918248943041258388500620813307235369532579463154532942403440006348838021437418512001102003092416793726679391084233434444447848505813157790623629760990984148499581470221766536483498330181328313449761724832843051503312428423682755859054146189850660356996221965843600395663920789217820635139659998575252968617203467203904508039738825231979437747766455701274003758407781866940887821528692877323221651887785575170957635142412845632203640880003775410005214585254799413344035510614869434415683949395926256345576009745553933898313006275594425240194996579365988990734682559316476629329557889348809940444471323281413197806292266865793968685394302645444204353714039855414338220839344068177824205191704640690303671422059426297317094902257340849986862945632031158540118979355412149320807555155217241879379111688577269215732603491349583387736651296834456759909396366220395279399745234222215020078071421016867201997269357087616778553518314567546920776059761787847151886835895652544154242836725592298056563820522313030439705895625624515723288078763669421126010625331128929278794380088103861105797458008726704368453387091085039421777549311127096848171036267639208683550727593775069397705526597480916704710271497720426038823065135772908268982313358585396265866393102690029339500382751230756745889552257152322500324774113921696621945136318284532070745214245643915681303991443919678804830745369848156078634679958094254017159689255981219013401713897394481531165766276517877693657619856754789389427583052364008926778812535696374655692997062248765491562226881585576109195064552312092502565881141419255393653685139435946644686807403959724017300946106908496422054124878037141554229251318191160895525370561673747818883638343103003487723614895655385772028233711268505305746063114268365379824346367977928157605566274173226767775433019484207309902042930145771226179060099986361630828313178148176037982912801697810749152019703719768952030699157221165802845991330989577123257745470455491343941150591038510976800378562416502309970735027039076648832217072493804906960997855527489186562730891015950964786274560397067207636023702458250632317259187448387110154374690547641362148794899916235028218540252622704197487184880344744450466645339413965169417862350816160113631289216709181738342853037773140857526694354165980278151240391446724385156585328959205564476338126437818030159063634263810303894137601252023309855165577671958910904990375244981603839824054385754433551562932899484677933390244448509050938449753702414544629815120700666045015483735033528223103790830802618716170974911380466900536338253191005358438772680514927327543902244234724397354824550102028115476102396142678940925213515671581040036165523652593883718063949727091600582228664809157462455197348958461267099864694723219426469416870303211174904599278853377222788637658066559441616823799516716082941807749678097238247696943789208007473048163911886937341470328494905968942392939297113540675141056374748646062606956287312926981260002250853052957614341685443057251299774075874017876951336363891137411286887997984837464674485795463098093898852708302404551565749261183799477543458487820018087513606252011680755266272717502239018175608695767643044400275354413163640752676335810530313706532491260809859938492092749239914700007486545836385240605302361518493028633961088511529460517913098817644869312200652323798325445276906397504200379680431873573572186339597684024978282109869822113850980892168439890530518171929691156587211328111857508984843224242689396868767935393143693867988427945443025371490754070960642986948351357826051333788296420813318047474539322978595436451478367816760524127101373348905847562089832934050337066984794543656534798651534575451823434752656175862287228702305825489406547557074603924218910602554036061377425404924173508198074861592327368011388404936499817701773123297471640033762677222264674224851442934221451341181102817869614930836091146345508139628443378523637788248932845242186482090256576801052840623976774286311258140394129795002808009912917553367739824023740864574446427564651999995858450264020801205914003283741157078272911971989402890857800406227477067022110589708602898742805919272785171383634861640943529852878482134303993647258793471656491492937339978654434177385145313684827888697631534881256861354398174244809982152255573702100451874212872589780447716360445221939994315389965457040156317042795677302481512631901141982901535979491439055395542929420134371493523300031189556877487129254743819362565987926466346388914970300111584731624569723398163805765324794383315683049016860094983162610166060966789618116382185523602790892894161270992418686985640864176589925543646772493411299254093491076142533925375992218885134591484258579240924760713548956174149802767303489452203534254185191908184830398851407141314116049714334894203436095390216179343754225811233725762977580869720740358168960821767891322916888657226894999201159335810601592216658733895459189332710608929605656016879609357984283195409100462739171149436673731619315734706857203611209668886490544779445735376046288872000616262495962441213172003486117695979899768207017759435852932894847224330044579596854524748404948487462053365041760356981888858111146765719315201100942605881454763196690657131780349510842729569165439823755968647475448334589656786835088747053529699571119068126283401597802949504910536702515955754393415059395051724028872836379008521065188515746351779522753267908984219352787482310501063594464793968555393741942976542968407164083200271881622192390360404019161562434082869771144098487426846877001756313288502694933593179567369744271010901767354962858416114606442250723730980346568744319342657747692203140492727995954615772244176442273774658273868599636086312618420839243108199886326898374061911741989750930943554976867640013918542481320197944183416541087353891193585735851035386687140262359406401075461327716852091381924510645653768781418503277747919380682486247506809687261631694939219720085472667178980965810926043801580069705584807328122225608040537917135312673898155626130401176180142231655345182414079909461912422182623224971721724688845124201519504378642130904774121073783634850097780048835957322075879496278335496380745368830461530988063855866338404288250787148256464106745929213983222353908898187261051622363310083842439585461243256059839326790189577234382275433665951187237175947683437007541747893991351285045109170580059430471807988945081540742121417620261819146490254818152667773300832540253870680163947539140686049828121229727176159840326503273931661278976926821608759370777024278949036495130137297947045563712790113184708591167950404803543176962510029451485225954056551170033508635482572353655224372622113415928617146303403510795548627576705188153756178690746770049864338961529245264312485813680523798019076256017886123419843358928814556014928403455027194639790531832871442068921320811570448044986314217128421879422310547374734997687488011997623688572672388000333436666438021414181479395308470446181218233522079262563201498635211658887405041776969621825045552148385332072608596874342232237622239166545328824074804758449634130235800019961799042633063950017575295940471475167650182667797922199059369938206779486154428684482184047420402743146858314722224459764007450720630023261910691075783156477480857664947085201362176250616485691248374789300641629833671638672472119776645974999084267321490233200613625888793752501159824779486532895934835852896413623147678903794286569369556538675286496435292389445434996377112239641727201593881643087050210526070148148329062959253579048766050380706181035376996990966492991430123148264140940253329698465050632322782612703146780720258759174780520512775079321843476752160036538087400768774745178511171691454629545635336070460570607224161342051150495679781555292468014823012521625920340499082216066853723267425182282221339466938638525780935747316895277298330733704320394092499370843739577863165508024246668591033010471946039026609997929779668815164473813182360359125145458010986099743857938725665123469608323397737388200685930434263698081094022785480313830622400058443074595401402367701739069233202865394971503014344048330235808291618408646060422959369842594241573968843741497216149989668120679332602521577573805967890499601102101009627301149072300382839629754688679168469430046134867450589094780550773802004232214737911770085934415077431998720490911087645607749561984401978388334541502522931218054573050183088965827015472963186828378571659059304297099879612261112194337683660118619177067567897967650158745512760830110456961550329440182321150653787496410306611271444736433699222698097976226811870843306353589324907236327832478554400084503605328953513100848659258840697526196715696252854424505650024505191844555851216584131512437174685992092217618537681983382700563084401949629790824179644983958925431694134489960185946884093961260249337436391282982109274022430595374186548224609860311455442448467085200304830036315884012417025209168077128270442690587121400736282282693576651259254366678207334715788453817266292644328296747362851298129391066602851582895856119487143107060279020323792803939310838255566476781524321070056723439502083851163990537329107324496064645463806163188073373727561727196984567292540463717708113773766460176280317916743248956988271595275574630944813979208699561715098457019510758948088531708016901454742379018086939475833239481305858993311675882985981170856020837920868760056183244705120427977165475470523058864815696377507334505379315895920648061651425774645685400286038518002982948824916027366802746461970933386469852804489440158390194753443375198334249163932110802528884909443267074760789045485896898770516250794766121678251526865586061880127861957287710721911947353446594025298959350271956208242669717719565368190491454402982119071864197640446470588468456904657520911112658179733704561004143745038487487736581622047833240321624923439611101902249426519994239885839803050180869846167366884196334721041428055437421568629423899200623096025636683016138500685427657126332624530018289506611519577612446747368472506224759037871833049741238697261515202021554230969369496203899131125629318005667953297756536928931200805816740809227677929977216730262799134821192335377408126235044895457995399678968762736784105557010451009489736353557011837219215673173514693588116225645870362174250442448103909028417003339826118807085268506983902662377154109439819114609640119144488488205087465715872869892728330048599955135844682807515448866509353130059065676613631339265854855050209398866049985221678184573773796979009449338044256312011076867977693816483702990776740099702685521626082947337560043954601560810782951026225516443054289069480361024512162672653692873091779745423901869358979722180001256384100503726930714127543028097342395866414925079657245204689141508778910276215239389311213037057644116865195135875125570977439777748271599868966390772658355425356283902039850358237431195961330709479853202262540099361720288418187982220340474516831586397478492304166836583870621344297604811424090343575736326001506936543521506463220512537369851619262216889865074466606895792974334531017907576308754770632649632513238731360528346136112711712700387884837632153776326916137113710971732146979872349423168349435387331896939959528268590565751009663796421449968116584105967529458826752797751365159109730198829994015430805448748345380656606520192035322740158790062752548082225039056314367733796837730886688418621012671771515223607375178594625819851630383411657513283287169770835173729625655986889162038556617366555007399854148155607187086819892035952535555208177151187707558740200292271358890724779116931478491972523709205248638798744475619258593681450670762054780035503145556989625414497274792232479790549025243355715767109865089252703740444275054399533575472311770606324842592954839635261547825065455055760031720959931913158907642636824853343694312711173279230692328381080950935076369605766516182267514034615527731688608164719290828806192663834203808745401851005088446924767343258205003129886919375140911167185221707171594867343082470612520063901971038489722044522485049261414343499780786457549676282195598107979097089799280138974918234136455628419641320987208755941018880164225402395743043296368087943214088759593181987363049188597705604359806214077796290119630637093444282802726267130872421346313033195852033882361706141233140737116698266842581141475804888029619236522767983205359236395055402419774003821914126703396325012880851963195323697988899783716016491586886821498730545988958743269601651746347993860623721982155877464504075722106712821258209516616171745843391846613602506161561628055955099082562188936615606497867743770863410190492604870026695726696014594093819780701301577670654327463318063712928133198587055957310925708893341660036567729174668538790167054083189371591503105638351132256124186463758333010707410759705957349143351684687084024224267540399961273598081968140400387193610879437867851403121302910449708253125625071917779862990354398291961036477280880884362526243137817602339652832794503129926006086444330227917882355549910351982013555263268395937847924650119945454425132539245270579114340223621006234103061845671866993552270542938411123013057067993229494329887833141404226463465158632692664819831105302441313239136119380487523014824884464898176144488139861861509042167203478138346324853744480029291927458713230885669106142128129539881523865196073977908023095728964805589251530664136578502738433620787076698070287460179743113802040137999728115004260004981076589780633014173519548047419273590718007576456374657399841916692643716021434066237738572039932246850072259390174901593971310336695925794330541749564191657263937446922649218135723205051269960770182997964082541517853232891275373646618012652158476446627189783046863972134267268700989087361647129888968720875616929422623649162874838089353195919105839166428623974682355035820175910243777661657656003447004350292589467601180513220559065757729198882810053331997056435670307064467752785521010608883011504398761128191602144050655537089918016106602536656712807998740940846306285611622588190698875556745530775192220132186285794108796965599879135136250868063510366666444090953283366137508566206329756997368258097834960459372036489591299779895300246508001032477060603943700901221012854341778353244161461419451649990312316379284835520259492058986713964978049615479875344008066529748453189841036606298881182839077132750727360916727815861894118817519834972939142173630566819742023524329998417269013545385720361504510410623222844431428779684964831544521650603226524281583562570891202949832341263744783894181160208819573361230942436621765852769439935493276532492315979351814968830950068007672306696510764124565335215183046904600185147467593189552176837777196239319151225859647291833589967900203100418382681995490969466432686038412436151116526495317623005047483344625214849803391903974450617959684051393244216183495915860050609324277153722255902325919529399645378338830950098137557220240504055406987628231969963953647416754050253749929440211071189586989743387432290013666224971125856924660971097825680617854790797949367543725296497492622203346384524759117543404112390308356922835321446557845748138665294087565649025612814515759744422488998920402802299137871816887990546505417994238500831988076370559679015866976000365676646220159321344642089285108265250273884127340497798985419998605144208196026573185256165502332341130320933480573614304725161754401655584073077606400578602992843026576704162144403010830118862350763275739352578634180768429254845651656172136254352583634852083265172463829907975596645622263365827953849689911543001499033999348648940041168587506124861033952417891690346242005499880135344918213994878380732894179915787508802902076622642061855873868725028386194879372317156423929694849617267187659920961310133445344508986817991095801424631256097710276778411886460645356874861896855785609635736112542477814426609405486638471876819181597859065332868206858910210129708216041386924087838226995721358642545584594090121511547115095951118585546297254481495284540637607664509147194739518799767680715122837569423072141413828516627731095184166439991719707948014919861807442373519339615790682631926734872905998994278567345492786345824298108771623891330787703831723496133338194508815993617411123622243579617600750640803483598667690374246676826971964736864517031511849504546027783627960602154240107340799577375168806139436424704273347930185265308063286236010021228129196137148580968817758760766631157750590051781747548306255086634383444498746085669829307135871092984896623727667764195379256890605645826147055099937944078045954663499686578633853958175532158372679761859372210996629346513706137361089907327001063879919298774626629870964477713814232602031858127310705251185606192692182604461163513849442244702526962196219677328461382266495226595349479175036773783986903716201870933498040512346617619633748982287126023375782434251248123433329610479806634324300304978050207355147143745425356964760049603875458631082913149725278132015267969712307066907455334883676382147735767766593780729549520321299500615686805228008565898013744789935989193103002295321727097554662476411736306565062685285391327707572213673772199944803132194768021519102555053587965605284198579130098179392449929137777370324479207923888585269852405449785667236280182136867126184182177233714305606105132009623443537915416417050403974829072444634147911539171983641822140971699575725321023234228060654698368134346253055726440831409066631633403667636433936935749442302485374495679633969467219780456637704698828659442389710073763338673966228718791063888542424735263645825277108178828377265309131897688981108855295145882839672548310645779703654563083313892068539647894330503243052692099364931398673303350606263529806398456070555649945870546543457424060233208370054968799463824485340312480993996841193265434944753989176817928540273638949996910869095524231628641294978405430861847209013352925792146635627330941085521140475416261714653745743919800221905367024973026190773163443939629723565677976035590558140269266941446396352675591855507959946329122685021792977477826580811024373620407015569606115721835893923058712040792802375152006783758905031438058465556571608571923488645851985662429026413541857398589575872102607914443900918716880878151204281251398231695660229118218061089711432872963336956936430201101049049754188393076930119445265049808434634187519163020598342318575108521078101446732047944988386785919395934026833111642279287308472570122873995906363276139402339318873488913713773693881414683533295337309320070747819422719351567547528484107010650870963153284594638653450241578841917703747073489420598863082142520812808441185249601446098194240167913689621866086652746970119182382057184617290021116518877176137238490399589464470578218202875620722482146031708191016513276108457601584313373459693560682174876096033094157638942120403987592599926380053847666900821960387526159230366851002783749514872475961746460018225529926944382623978464937611298586275854630395872321647117721806880287658724364035730787742732254006291877755784631062575879877262167024198460667252578665217312334872671455196887394132826777326562958838697966941093773449469315576839468666138476626906882707822348772173673411280691366509079701964161863179469701136901683980573817485866977566665980054474464698148194622083352277929568435815173545025866264276916834733985853401363869047759958067372038307930512174342786480461271657903428572177771128158455689678872976168713525591616059533462207023189344978055716272390098381314112801866136967244038651896125957076365740540365330096024829474103116088096238369447751246842210152526245701199346887861353231050621570078762099526185402565411116542126846810184175012099484220746537939763963268926846028664495505313763444871861102576627978621584394716689351659836146465917692924283548554774974392141787519118900697552180486781240805049796826425224741598526287327743196898566508531220086860761639476195391983060505695029698389914581770745586099697889844365087320863606549587889855253084479226101660149179996420705943885964614355240401110889469660697056437773335973135265014707602503993516868318548118997170110929107442141508155709116848590373404311923512215282803018147590721667570918539109512990408689205358885438327660898928703958806614888807059321157437309421651737327255070429703678390519653368085370212350205284325633723658152598918625455223875486304193305290008327748628662004199550195058740233024163978092948807548901737665874854092455649444995306199698061356503781429848441713790442615891292873334523982905383530284558581073916629500795122169390523018831885830071993009623427643728725187489028827023922478554889855227401805387813243885706515456490889156750509140087679463230197096186955025278927037157548375650605929486245227327094953189497287736997059784410426473086852211127670427288541914972070402445136799627760447370432540003201824745029462943820579706748562279764830539048914141245048479978611145283740899167090394796084136561574308304886853816096071200297560559236823055484493810516166610070099941691435055074702478488763245376247630832029840620242666392373509635015098958125323704080893582972853258147289398358276720020895438781471157470784454696798424707141406210823806640173306453172180158503790549305935994863446633612223007474359222266919373427856653546295344868192007260573668322886942542002480133400837097654915215172577384639644725989097660902689162390121366498024949385477138763135387532238274755891088318411233461849599725543012604277871477561040190853564527961928651910735433412063869314173688899399772047148883913240847502989786039426344664604977438166931623340709734420387656029549274693451253627483515480675696685878843166754339124692833163613061148881967358342186557391905981395674199270502369202307018730245664314420517729918254217335381860874522172388379285661358230637087999256694559185022784220663514530518934033132251294449346367307169428779435121470545880513050288371135771053861735397372819767889121204983043688213889963109658082167924024695440065732086446378946617766160448431769058318085865167509469896065874513712414886471468778203829052716419813315446184347759627461142987754008655094443873383157860611453851414249402407161272182191040436790160180472956137558351149108918280773396482284762804663566114416601873147598479724689949331875315784076212857664310805119310397909700336949472078956107942568184595249726489330086234813401823355408225313142916506100519385729615533408822021931642277844736270782761750216071566412629326606155294325803665655461838208082932617660629926660354025936422643102610787299170276119824063936328105408315163684724045890637450450238257486641426635252468002485465635239389973469770011076818597882396267473527731430961593278660348011294533926065084616011362814875248248185825438643950770210252271539772025133918081813922568787453761473521751546178079272539665725538643813487604101299270519669420596525894130165265011336012384974073331951071047805499389483201822499462279021529601972754286508711818970761165548357567446151145097976696589437164415140546956696238148360917098694011990103726211007363764249136936919664855037324473251523462042865662918607832389874452177726553174995630856810488169913283078073204007047479718802997391911972591934298384034146381180951274805374630003045886295464784702657693080064115574698387610685599934320825388184869742283688151491398199942754441564282698626426156611058205974309198713932524579441163420625567978703285411944243328291880935183641196959572430085428327667855502035331619790002039188985360730644564856182109439156352652432239232116108288331038672371997863738404867222397558267780526018988825038143245641959160615332343255111827731705289680201571478836324304954847213954563370884455225693667735388278488097348944285210535077709369291809356854101528591519788468468513850199614309129499370295739570817716519378589990243776720055726502981197970224953490039555246829498915927868549051430746782165562977704977044860235185238371912141890838807975154972590095969618566544170880868019661100478698126422538042840936606199283061490278604623041756251895671961098118203619981168106419437702066195170805943158931604065305944973629176137620838426593525352087890297109821865457201834200386571889811412030404897437903299278820359834673189114500430477899485586009648538034306247678869634683671270978670322231569106188057836521966347719584662269303851420181799416842967765526925630354897261485324854867597276852971288861253764175498897868902604443549502081677239153363801843490831226688020169983912174885580418273900530240582920642568884356381428437071923686632306381015223900003172471718181559698822995629186188007197508133274422712665709279828532853985552086086527458975028564245645073477708866471070370322472319257639689407042329022956660785768459635522065005143118364982460334537128767428757056497405593486344261646188505830841731299805399412369697016494814966295558720836686360579412707759757991573456516835905983691562391933116966424603274613930091107183068488152937131845062345833963303562506391077628966457856992937052874918658878029067532998494594587008916501529799327670968124144778893170672265232239197816622436581469968167737286788015551749849580759371021070854005381615513421882990895385029768143123739646692279425402161169212162791186070449278482644912715290235635431490533913728799375994715033892944085332696129394461367978463073988879105759043462233850818876472618425113591969341256759315277937624658534881357459697469625337022113731907803786724926861036292560501066181743728558404511459016085962628063708962699295145860751668227401743412283711261592813247975004162714164729193258258772920872173697962102721948002706565101904060853366105043172321388936117522635232607065338392296467210759903514897313688061037292698144758279662039690971571866462539452624919438493355614958058919358442232397318954548930054481797878209369068382178377272237142338927135778805425075960851307736759872065473134609509892289554107349053482727648295434833589215699963719701847011689229742346353016789386311137341644832422035030362826442827342686502977769219663014678906583438250683096340406123848381413621599940122123177712735479142494062237216685828880137474542733001936257254550064598614025413340619490532101859001682819089574576631440996750140147357083635517014952957470948361904683305018848722004630065133675853128854874851836238208910276013771377376555360048834903824881922354646596685224589787974281687566926231237735050041906036963432709504559805573082166016850299066330818064736301298002362537998880473899773425376275690958437550059300613579134770835325121307032307926983507421085523511942909213627078058601105918654338839455409246859711283821452836794729884657261150539664510435591279153721677142872801280303057304009003062195654292282514400581377884944994834742277890084784325354526289432370590183935823639960350832569963515067116648752336751715782565829036262185441515745868523708391640760311110261303622304400695044841065413556200961570182329623724416550994422972940679155157676647059812238558716259066680323363517602877997920048293347019509749736462889893569369255207489339989317350425727878550422974289623832147056041861455141334675251049750835946251892686555776015095167363370818336119988427011916354545636978593721429599164897749845495195196466715566497293510792076239705441125458103961646967365228104098790151047926912908404721504773838337162273312593150047863137939945517999264711244845344128025596273206290106383282096621641667031101565476397577742190145244006662039285489902538145315282234032438902413767038610845568345865625591521466493254313508816223116093947981835850552541416697065673155391275033412619907879728277277861928181064764876570045580084849378412907388903333660909114524114814108386147157971073734666681728716171507749521380913002273989925669293050770235146371277849926845752458611370569546666591240431824617720908500056736789505716444659189482496308716589287577236613102959046317609812256338752741469363515491697368559030733761444065596562495721171834740476970784441323999846991199431542534637156800185777440518218585298714680409806566089503873960924718923981622893188260842819297023189550744444674370606541828939594789672685551344425550249557234767163398127639601419059256690798306207025175189891750370563929338281240298136924255313573834796795387862730207097423460120811798489279288426837863721072587049287569952607429548651708666035704901102229519317458645760056926142291865316847991273754529214631609051284170514864651258472286794377019836528474351058265524518831177908547193733905773453394056971410311317898995856293220929063235499992522916446821773096533039752069280889819825569229101821732629450010747257724606786916974244082158471377711506064507091423877938695375998963692779719671851663302689522437500230431049343682685632466974109759052922096514656550195392336050953690222095124309117093058052703475100084093249540358301859910603968924685782392732837315518771131668712872280961801857364081112447208604957116484092031468015258937084906590752784275704772950292932271930156671602837761130990914601124725749251371196828273257553749082824311013813505229043526332866554304963527943590955698679171129743582434753426479886205660007200161226932762705215434460021102620173960874278317562708452682293692544990243264746570587857841844423109416637208448904032481582420875820197119167139176787937467416595376353330626063989883184148557291345821555886360568243922855622564812160885902198165349170844956739754594217231787760525004371369823149125706104359770284940031844466610368226128821398905718254277558589087652096291371523042089469611381064154981349517159901680324656430907575642424172380907781908160388126884544339721877415807595740015414522430008911664780500723657717583419493608522879614400025053330088453937581037306494168981010109314104344176490118829366283782437926055479865250300894970825904698878617012283110003743825858079658380192564207230654160209842985743204175364153377011258931408210245219268018893474734136079203710445945073919585878099601725556995829293978887667811173282801476058912823049996779234816187557102235326477021280385615197523149550533490374816289639682717938072232552133668412010595063259231433214363352683596706386522002940768239873658908964969805676329070507912777919032052051952251270730740577002676517053645974268286907488436228499743839171490653208788143001589405994595054127069142687728008339541563643956845948014840415122217483340070054787628927476978387044724023658236483957642809487602797751374643051611307689509690159435970771553599584920531765236236325037823115669888744825679286308071473650153814960450428776530099029162145231722647726495787848870999233730925404642874170945402178766187675473082347150884094240171858416617239719795494504635190460293962326489051384316975320922030932108150817232431529692350265491254818435681778710306011129452609120773829519837072103895932093557896101014190740304168936817554821774821057734003651181415397969978353116880769805969556474911825114405311890466221498615846136357147127667177090147589595113992325348399502310974864405319023979701544733271030104763466956539096584879832866380028012033838460859666799118909786999041507011420638650130030491284282392039776541068012806760246151375254825787564299704081978632968283272577586181759004042784151162431151404708319264086612225605034827537710943282136230938901963658290816144953614584538194744543300306729785084644288570949270391939412875801073021054692773059591101631784583891502406277593859277432104051141975114708488116971656611501373906846963950633241070521756972884457556970641590934689060069167925321947119203114327586230942540460285269542645422003854042623314665550784537673488692230389993141784055192251864090797057151010239821020138272889012024981270326576911259888967404237343292228144843741645921286876620643795525073876504916488664725825456534459683563330742467030221287556049556052720502926584705379873518728526912381051912462045418410960008314307633634102011786885778735881516023770920867856362359431429261776095297903973359935991483100052639855265680238051420188215533952408447458816384840805224704275470175128853577913042748108194357089630451521388305576340541224100739458065461241967695303573992098122264122239245184347368773972597746938185442442156317475946306235782914992974760192109201253478016866541167781982261263380617815302542985108157765201497357209523955410538066146286476327171630839167485880298199089364951004554585068532337325070942926264725706360915034997721917949650762059341793075902353306537215366068502893048357776611708066883116483444646601818166102760145694276109456835739081525090715164031488440854910205055630466201858899122888043713676699997716083777247390043237622383514763248036315489632805975830330762860290315650423745385369855596487890244485383016984928909228443174961875048164323148718528334704790913487917259607363922326684398356081269122452850037455303041885199072010681374794802592092539798281891034195651871914997376384569659741522428927177412959080223414124860184845976978107948355308900387968252439397921768453808238303705308045574552716029424304685487463615936272186248870076612091416446453056750606312139462895561104659548853931099911021100814337262919933401373110396010019967370943492110295786543405683758172885195091970592225415088288770918716284941533354755999924275701907154580368358880604000688024215849809923941787526911758813433417064552856902790980874754477195938233914388210184775688064115089322382150458172270327332017394274286824667032452109228401488037431416593938129995132773571254201700430148610473970321171487322508300342096496623442318457497413109207347062297274749623611286487877514746692907075950582150114265053323844988036452380387799585171586632338031451111586129601093744415198691626619958205476815862645104778979193082763295323742189879530697060510858787755977592680437802412544439857885863535072941563143931936475532366027894182978181529835190567867641267408070043397508694508796104739655210306861402579702491038453170556967244356719324330977354643297642052778805107052369253467319099786245348608413984232429488267943762901204352991774017211496178649102141056752841861784252365152865165240393298419035386776421375801615651265181522853338450928706846978250646917908641703739965753609642366249442411764295382638938371832761578615573328958457423124628771955228235743451539136947052436007419715647608845432322321303620327034635877853982965847391777290937281501399683179764433106883907426611881640865725305888633824915643708371024728037442314235945953896497622703625247168851386920266261916829088595503511220971801881871368574429514098972233272953787338897367253110603780461955184942523128916925092890001386154464495093829850371631941684089436707722091130640339424801521458740870884725167695527671354367391003947159032238482326233465385743908723689855810142194040512084077184896540280259432977532185402089559496975987316411748103628593282940440605902712739309880973949046859507375187731484983813581345192613255685690340104247660901256913611078338640641420329938509091797768677748348359521110429681461271212916782378644259823733709314693916175800133368668094456369271520125026069576789696332134889179079850071703664571452810789611713145600130546216257049769003925422150278676501874968912752298279674097471265492428739494593646522773929009523784857122243531430269180269450153886353404961131542179634120556851319568295925264031042564453110941734679792837069523534277356033178835523824759669237801910624933487232957666929191578141554105981998704738638577314699310608853193291263674625853793357577366254734937164323704131718003507371271687195270202005428197658270845138675915638071644627476465920508233946469486479621744284440650207833923286916770738464850819432338292552107305560394395853137796386189481997397644282159175475222947472198365556765691953522587004601127816427501854794643983232664724700624307130575668996407196376091032479658549872261173865476652951454857017695643415436801521011074028293222386536964308056382797364516792567534965685687056734056920261445036741098450131557646024648371503182237903271134488087593911817873615889820031747825726561940267552648029265629315308837983515356779456435129369852583092751318733203010668895104183812706882985818310547527732552961805811866435942421573407602864942426835247547327955529252745187660104559415670813782997528104234586235434659897245841135434536710435201269358503993720319140668906609926569453623668929344625949147255919583555853236975262930419375907200375131345404321592220372023828271792352623349061107982622818130164458337152835087027324903506517379768632780623665010606150928259426833217686697817059958009366937333503337119580751616754710877300400633701671793282581864565098210620282368829896922748967493104300858113827921417404680594094581063531255498642972554241403284086504142875291673628314539452995383068306773403966744380685090074683669628179660676308026441814157839049313996761882655476916995744952647279528750753482290235498881458474545328019388684034462219078348225344212243147801876177137807358391516848871562215791337812901748753131039890075663346960894455949202292314053261439590071157063763502112482253322964160592374291249626148867462699029892358972155163715862480187338468023504260339747445611463711768853199943336410732702512894327381563910181191460715839120042064507467610573512992682080537693810646780158139317542814576864218070417495091550531425223603997582095411068682433559161797742560443766860762901577795703598589617887724137227780786912797778887828153104911927493481298086340952233558248272621906595019832186517051133717807083401750458333035083131144108530020510201548779987416677011839446873357110399643844889052142500909192110627541342944965165166543244946783247111216754550460151114456041671670582745209652259041650683015528907063936008312501468386351139610690121134866819597378365153471942688150832680039723435206535833643512557836063704100479683285928972364674289550045825469833114320066526387528379618244271841873343448920762322162620680059741360245179068634335321332573495788704212316753855376329314155029148496571032328301589799429370218943713732786909413086298234640684469434769299442544221385199696767364588448125350064619698294114034055550158396321923247007089677735222558219093776289140151776434913331915580179129784276366095856811972625018848390903202227494277860533313815648312081596633129742361764149031577192555913296359044615456352724938240113540862603943865559716082734543237649173211246766626725081868217102042687952908558846175610112953795836829326636667360918808977761055033773879870167273539418141717018097203056248328884708435477050054003338170003273139567331558249817480693310878426450541214043755291263811213639404433356329788378369406477391738254759977497132152692712176650895582649136171588577275385691166645727284242801226887678865294510907524755387171054566696875738228965037653822639525101539748391921023215764010279487442922256077691690396627190561630729730925491407066546816520415129742057572832473602338512439081505689928392281542631006917303945065311089635907823898188215656999764741754862910763693859478604093697579751829061439338702935424669663320861334906318166913273684708601304409690209316850428011915082868802086146975284201230224041633189206687372519065819846378951051004380954092861034144014178333476556352426179221041955634162364482369491750252451659191780369410241279466404025157059066948201977403157258278003518188389914803047939283967076417251809843728636439901312421310710664069908221998540449462641818434719185267360513150723952610908489627912321235881828338229822703454002846562702319993159267974167321614773610923301353378019770088414275072629894321952845384903083772070157784131956476893904447836124517821559945297589433979400672850817819998323945998549147825338584646972015666999441445809660015705861626288463342691908916377638446106633766273311965995249593368934334577609113476158439419946660957510056946357236763910218954330805451374488217348399092988246052140712737374889632523850599116363646201365485557620816755868084919065762044891433864508004655981006990964703131153944825232598647722635973150461395589531411835398049566833324892253114458435413424767017442667834538388994449326518068365298166649231683417208419172013116599129448186443489848949571846344145140152145002262646977843371758411867548265087526048418340928864956744647692901015856847568883171817433237243236270281663370001103389093833592691840700260626376378660505581142335277670427916158617458434172396161067112858602620602305211856037973714973629443655511150781635228954730412690111795307129993549225919841593208028177464809392480445269532866241580516065662111992860325356119901102122727997626543976447392861082417021806313310842967519523629782885514499701459282266001100369594593018005937271271203141207885091857853119184592245187456779892529851917505238611704026794737902128735638977830735443266739522939857401158575377693124038133274361478714675226476424626385614195077953055938818720576016478325076999611661161947460826791559556429210491635161838135427929722061934041883628879774941304553652198192118910519147971203775233102787643176470528917627371272312051147427414748877747647177735841997766135911953176761444882875949012979236438907713756536613506840331440528087871348514230850509845046800085737483988758474933471120028803044508138392099884726063224986968890035994192390720675520745331220912789263840650649040965650143087729083984157571101888658336800840611333259060671072223033636382464095515933692033435723062458560533391760538973464321003271704096631088952068612831552167185806235954541569920561438095184156353788387949192844759664425226949439509379236754974836757902622204390128752227050079924169481038591070098678573590136912245375724086342054236867056808358030530468203423783354149561209506942324890821082948001991726125204879128424795662157032712338341222263217721149461886983449558449117425657643169930864819616814823978927120772205862038853186653697216386818902094766745918321412162304225671565858987832521318545500746924327242661097250831136803284828795048199310416418230616391966892359493112249593946532749150732057413585933657865916849390545901132663182142808463962341523077935138251351078452600967946825766794789734721172067295266884546203515117342228523067977682196297473730801234153680532703241734302851696481569152424060750735672147751333904648041228588892127950426340467975447303147497088448909786784010350219752937198266087112437577669415399629032874513860972730756327965033511512282847146845174857485256601796383934505428249661365036730464943110882716120212150499918185115447794081322173682817366196129476371662773041470204458611841601776168034319347004966505080130991635135352571156649025511144501243096428027463939889001845694339835164962938925932767149529472529429828895304007178814607364741554120291670693185937982392991569178732125467560323616798670099889929572623341693031063560837177487925771888028928485433649985876454604606975842635074236146666134239776143577958480008522281151618081235337531348156647295098390780429349629571473396774727804313252735024084047635227209521724205004613040473325607412700715550003683810444842705401381674554337480760900059387412182467191180222463319581187279642311309664544010071201826798587890428703593782514099785636328705346545669772459028865448806513332769512156079461169697354411175221354221109933383726250783608508599329294797158647486977405582053506973733365321271432362811827889282398259631513119988135647271906569243112132881492279491747840696585011906271629494879350461618628076118389070660598870232554020011887229078863459884388047694119553553084335292423886585236897582038601110432734359863241860607743688870546623315675199241214396481657032689638803919593890185205689352449296943830402240834562689180913116245055425631831382541141564889263711841049084800176219753850167013133876222629148733105419562284977694628605057362071631883758594172386382902890497962443424759682923109553438789835714758665692311509497735752242048462651601906630908247015575857468208575902545375444146288326788245055040867601438015698888076269797605235142741025765503645482878912889858149047754706709482600255490327023611099126581106366259720896916433742682803512784396370155671302181804964819228525663709006444045607122622365169696728046187901896623448715911347338767112619814346019531768842512624466504119492118920736992214102850941446003995314869595674013510882601089730662110548624049754595452978333396564142066937198493226184067495795501053864732505303811533505069323845325224663618132967632813891369087703815405119657492937699609574108276411474941749606407483658828824839781283939539200693287022882400077288319439688662058407343469806684733319152214814133185113685568844853876599720601707575488647927481529983840638723010686822803072810686210111873505364124521546851484743473787614816322227101724298763885882555384895606600860062672862956788058758647079373700725190716747718342344347709798941822499151185075678145495573353219752476976869411798550109136130185750843572291846063041443103605325303150893306775759933294936750968725496139738878245312545392221628687359094433696405426982727719873735019424817971998401169712617771700697207523748645894181434982282906465071269196654116544358884395580161409585632328422025178003217138103919721279924309551679787088861772450089038929737764583950318500872578871126811875439178656644195275942122716669644750753560789402679513145691638194526222738553754076220136788258081548325073324243176302001783873522704335208284382561124831177001018413306957006681323014125959526544276888617777553314982899500402652206317998464051024636668463877385774659649589733189995423193963823112907769315718881838269201956041658118190606690660254365111262454707882263212423261629021272561664046975889875409407710549852200443391891395170205299804983065572258075059635798030080196317377925064513235236349700060886397608670796760897828097082865830356716953124343316015786851293906987582360437983939410265810741992004001750247938901669303904840989791765535934858828881158224329273619811802234912094544144573345647194366497932972195582064936400288092552667867728320388569962284334585863133923086702360982039025205270355897210275539570334711030349726683498665016682211508947846938675886131887698808385565254602204307330669423477498135697428911851563021918630062534445758749979973647429007753319928993182556492441919631544947194434258087354582607371611444691782169240625243344515373120723556186211434094768662669626700037229385579272167781553826785241108169186564208322652947675761184511796406800205467116536629651386365306594590362321615191628988820299707342055739430204008467409365406653074543176991305516233146902131946502508323077165366896002844287077667510545647255249144470713303500889870715779180703472063913464712928504763058753384409423933054471530054879963065846470860283481938194124946399380560064653950362973635034864664994675572518562169389958853513350913603481484432204423647517185727285942669931011872908938822638274584643938264370423079864117874917731969994789822894871915528206759918764212509486646341222584867475785203704370973465434237833627659232790268373733703397415544828427417705554126567778378405049804645570796125447409888028786073374682658544192884151360417468758841503753393989067669321671805509324824654295349396421189947685871733975944064636582151634181576532299763752515772104213135539103135540156910726511730312696155444832065166961143232897242998163895606439680066789391074338376213464544578408160392951086109993615536149283069470458488697820051876544281338220578575359508264115076886877400389391631621438585120217410035648704783912742286239668061934803491250627507662115929739408531614846195191914158429282463923752035846409736229288322223354908071089516081864496404831313006816458761365677108447978884821207561564448183855866660458958832670106709873233394718806438859590827749519220655903334101318164107697028588071130416512913622206385803388075114400143685020551612737598982884615672658682846598192567474547759868318168755821990347535561115975054471749178473556294635498041416246235692585199165932224328767003840328666280033888780878859173593812937190214726714297914342133488453173756893433063752274798244691489528557407816660979155604705580759502302165063738130749489071142044287572003443045153763007451979252715381558778742550277133910999886299288068080701481727784014914674561807138316778170794347466096617897696047836083617083422959458741276517530696741580836839340497730569779503315483758592755789377438602456420830843160214666324711061346843553218034510868848417626535336084416431539315381400012462716305509433235295290302234808242309790103497068282708388805241438070085141844704049843347755696680692895138476256789456074929079259560021064656729261028436419329984969281059954299498951764340299430205328122080388225288588709910250391289209051426256633499712470674261521167639667385253806812123449491750200232950334757411569761207631251477108226427445520059256541351017274085959337164694140156463445584791668370383963886472611380812854511745519446345151351733691386245513396186180373050601571085409598119867166052458955887179229388134853998672506600798726460634682966899909557105946446035752356243317724006071631254064628639795626602840101721383080643453788505266253155996924273443957959480955168883047395133399449314298916933013937588236246297965614335218647806093965056466062922068175638266430965840876752320146416477844941129383702709282562024380664086793192830489361709039174822566068091868582626774476189953174098403767328012536534015348917752164673453930955475058668381008316584937651820096685494538052521111791512997007950013226244965504548455865639443038964738716609472212207960403856351991588623549068306364086335356149046131217416590868980020340106427742299017466006418482753653969240759245388181516916447131365013775375553800324410387807869898044126947322232763360223670712086015339762393650514872132280578342015651310830923471679872981096379903140880331951324991293256873210173861301188794724163338140501542578675955784023595784075670872285155759714426966666236256939994663900708782017316833493731786749990148980278889778101559872461113800558423848917260896801365100432873469263382311268986203428746201283657426287205738512918956493543312252091001652307951753875714057985523229557953660622570018127713478559141992996215365280504683303900181649329126201119548685501595203764557201822114683182667370844209741382778108554825931134328771730391376341354689615326517955907966417596712968013183565032301203670102825073261696353717392500993525697285366434339623541457182073803859631288965198037243020504847022211717785765430534303235895040877125335556940810703485686796481356515661486845022366134262340752590868431338990184431394455086650890486911719054017108602512094861484797683921112106575297944056781681489967505143030892205028664124646185701733048844463932228693627719567036953367889978421271424429087505592344094277987748194927596232400951561860821056859022842641195337042711403478568566426135322390628676069988940102872484613993440261883302288417806480788677884314254067790816762781188430990026741306663997837535683612378107208824158966120162007773251507078158556594104141502018424149178142894967367875806436070913695342423728814241383605109493669250450645887319650017427890604284890916485720610821325495279090201881448323455422299102969474706283346393372602179204132639075087220471577808959004849411689819451547666759982395765801140824034770750044130604703529134870736050265159878706721916287070552391007205887314098766406535652131444925346397511687589720912669973945731677965030590126103991448513555887194811954642853617658987422729522091635035561483816601473432314309030496798288845137755278479372541819856814468062107692781961165450044956376150218902619125190870742859344814475315989496664153006690255677156623895092930810869090429765387180465683983069559443570896915249835547555815595639356035662589626136651201146822221579893782997608598340434810298055002893924704756912169778726376213185270834619190301056808337768199622483496138860425431821408497071258198186995685046069955411100917902501182260026065269932690651892328571754438722683147994922581204939534031538533788809832639642256807270428165208957809524123544949497782526519234959856556505073255122771724297121807289978681570523590631610609170619647318060304243494724035471239668890318401117298784739128774786830436953502859432438258616748030060435160344063545966712154209938003432306032959850643876413566552594093888960138557659330777017757287698113554826899071906934409515018484046639100181434896813845461007133112031216553294219075785202306002675206290037002403518525530614449361325437399749930284310091641908941901453911396000691828247002862833022172710731250772224062692824697650724592259313013692245647238657513549716620048218617597219423348467354508238499191173410861431226875909929810559654014223844438324082678267272547555871383413402957728470291603740092265517373053991209061827726022854349167336067030898717161619477790681906689437427573061439251964420071328382836379814791592739106914976268500204486731450612433749544131217357297200412991720927387134662098994794020988054701908388339632947688112135823538431099006417409125106355650041188962147628471453065188617181691092743077181568158162609777096385106306656181839048287024177746064306391996300176414796459293152153590988275238389598881625030520772869199563764431656650831298303513852661707059627576950081754794197202141959782740231938940110074688025400481804214166243103681472890411421549855881444820583703418936298888937878472009363356621406434851902617963740669912325748224490031019833110625777415103864288885795820931433475273057778165966617835503757744124753868939342386523762093063235321910674029144725542657551665252549747816547893989559429033467092552346791552226223147562506910826897621297076381604993906075989694361896277801368321387532404823314900486108956459940396036814811902674595372159058415471472469892077796877080004287825584537423668905284496778438333189600733238443598324743635304394254252074249163559731153842958807015075219523853895108391975761335338484131770657442560369518289371519282282813111066064419270793155953989277064706211284550231519924616562839980267368395139286130381419222829015985040134312388896354044366201575217718784418468331085838573665685138966390384222657093454958805760414696065955724714967399880795614699945659748697936787797193880634591757840063449180183199996949877136996187098367312818404825963416684002896553340229856325860919033766702938179217608312788578995238095030669260174573372602357203817689944898829421908531335552001977775303803097381396572181958888349180385601916669694652822643998334288490263325003454050758614756399665265497131530748090551512327395709905835261173392097231043393447716309388479919270896345438283419565337467601430153395796597335245557301732323273102581996708493150019659991324796514203633303801323014057554097575772447996716942458840119875563701842180066398319818537350835581787349971810364116861768194641367105424436687801477481167388877687063609985896952575544497832179988575866021445480822027682278106197823731225506854727879045934620591513038674280660112449518361501925597949490460562969193471056025602882216667738817052541500838887748340210622417759468949750165599586714188824666677247145358300143914373845657696913767927008313772755321212260490810733301802472607282161967737891287165382832420765014774276566021718359930762001431936870731813433398007504040291090389301105009009304433986283137120555401976385211665333530061247857736404256050637366778410549672713580177467592554388987028665956338530548885768196843077762588414813552340348323131697552058043352037839097273162715790834532920281569168783426822105180888592673519755000069292581899611450556667700157025067478846867627915102763472913207975855369972931386776908080532454636222904412960488351515503530526783923540772089144279782202798809948850493642494745277291032818519740184107332881924075051447992431167368994548747053289775229775382335255147651778343662006230467287548153153477320517209823877487507479830819648798254536368204996839887849875033697074016668118537399566634942591872018774853367485289171471001916044907459383394314301781307899087918140050110507046179551683155139512160206184386696321215474038189073834304626745027476184964338748494989132739192702260646917103921083631260937640473610852916869638533929459928754013697883184702433715529233183373948426647940010907118056576134311683544036541990158153185219199594559375849754949947475141158685808422748926764175145554875021874438881007561845601908532699976144244962082195202019500951384786584563996759364775649870614179635719589761077305716994999779311913631884427221918227188344471760880678670730912843580027845557720768645777580979074057402418535238736756440532446977630975680823106860469482853602238424996488529363734434893515562686695703135809478989245085319570654552680710304057330067282093997233421392983097880089429728250054529951559895405541734663661812406272645236008854329124447573787419664951886821657192083409792370290251327691389356644063810239172283560789382094913105903432355370379965896083300955944607155972450901453023300111018345170516117310973765709898939984757001921980296101779917163084924673231867958518230443995310289992708657977615204996422894525087082124517027187966071000018273699226272061720508974929461971256380414791155629299375940694626304067818437353669305946849815606238935980488694618309370468255761287351659935497191353076043712739794867159532345099850203189332457495611383745567977396556800316213538492522492954832005970493212955211014126005472122804644220488083148207774152773348773252794593717371603708555540203307589536038679166321621032420289085995019193105659517477438815866827421336408634293250896446287988358717307318369058986619738296730092965481394382586937522758801013776450856146849870529723000253304110964932959359662551334451990858768621929333604306931526161960193187136212359916253923798088067019872064542294132810280119205167649969560506465739099055851000620405356502490295818475951353552903393526290629369224068902449667522625627777560090350578011497831162185493889447065079496780180905028177005738874460851713460705498360314636241575843866639323123795881597854866986712939574422192138209182204427076877165245864612530885376529210206241962117203598178562077759263365984866723090688997454987439170541050771669842085969780805242498084183556949403541712844277622687345652853225246839177351522859719452354607557250637695504225757383276012680782312773266644135934258317575059459630770701480560302361431675975606387845444907883309067053183056151253529842820493763430561767620610101903689041072335267906941630776562449888851510657689670001190002669639470073812194858132010643474801605874271647098229815535836123722594280399001548542743621066199581350419726598768841710192154069275453170937221345742863508216790789162606285470567311470079734135337287017652960383315701859861281852874821014238883447746931735324635245487175527425548728046372883561465654074644708977544781709339828425920648238931796731945782090256129524575008723251692500952435810140335262818628496031158683078246298569090153290550597413707246647484578786972520806902574591516294280337747379279526263088531038866678596235126696000022178091257950059145494949605152352060863895570403665141519579456251605686678624926983084369747585358561829570446324671625804948568862621196200091118764277335991481254952532714715338496858313872353410307695355231065434660896177699791079777252766042062531690800583881783768582758366196316997751823741570510288458069529276646768659463723817153097922273140187809245297905105770887866957983299484090756261916990812601813422253418701346367982318694549252999701319645871006226871429492078814864729383004093487259320557750844193893048194329141837592195090947426025843789990002608100800935712988959811336346628877768278710181632822312027932779134731089286956272495009244385991733417598247706646256573462000830982263887458508880802145971735529883222988434760665504987397501681988938676353332306294871332263702837290070213416247891889016707876676602264776475169604582320855757006647061389059280182824853730946063819856035894427166971519483193942460297038752682075313314714510479266890615651542328560645127807358389450915371704815987550952006863506758242367035404671673291720511223482189076615052712143699462446874049650285554745923477279202414443619454617913303423840741900094331531192750935501573301164682555699398780786168735911184189525287880578371870628028540102820289436401042378499232652355750620328758495159220989026735766283750399739450723257949007978886069371576135671561762997474796635003753178339797031610556728233889695884151457980862895302815550618630064706817224130228900248972861717775041826998916565022473769069567510302530431441888818538776017800618111043680157125495711885066225626695783268316246973646636549088919247014263382006755974175352784071538752723761595450667692469309987786106941435696645437649644596749979497702693720806970385018902717530707620229134485844099935326292471978630400108387586008916541020453660654653283759524151291100837144825195815834372440187413537899130032948484514668481735104018523426418166313583803271959355335611797321606727947560350332346564202366889345935807302857511649081478728455979343016846349516034355853562548799450200007784455013010334774941210975095905228021411789630778522014978316768973486349690210428347442598001735544245941322249491990622855254804638712744168524995534893983705086122298258229356742464268242339582913793925170144292867436327766529221081672221067765669843002999581829817951780965477615731790585497496075016328430259017947094910415592410499864798999405826623939223408295080138916445520000539691519982431449415676622335694453170290327387136172802544524019397792324433430953172995290938827155545481188954747815930599271138181378042220861562043535179433442365600672448603298486913035724122940956022598010679844379259298077981971105747267774661236898923850056692759097350135823262241734768691079030204286061326748265959788356229610158444102904609559476663655753548789462367287079796118194032024209777954195084305028381721487477521044647529850710720566116768271658846524823094267332458756833479836433587994506531933911139354314673585080310591958985997842945472049356585443370123874360276874330660771899589670734597792149501536346774366553792877592859413164434946364198387006946275654979619441651476974052934851336309117090595489756651989370928541447367775119334172729684079162087053464489891766360784963978451359085524742222703957691597353366554618122959194319028452672001781923019253666940542330036875505402040125189043323673215739070361428994445520466927791556538767994784020853776400927714267869138412471384864088498529175780097608743593555090122673428129950340054637709371096414559312599434024088673879756528407116207804221024356979067900417510534188402184063561766209684019714165109716345081769460300885537912354828823468921617451158036864700332780748293036817458615760125143780252256243782581749054170966285550213658001601847618231417070108693718194198172827487900564455630028921541722060185379022289517408577554396723606532621146694806028310959917150098801181721774378762777936195785696504435987250314553736011928308845162568090466802767783856586478989475963567127894557585635848930091240839601973283062571242087774822002943423217197016658864365154070641870631236529479599254085455966918207138178792227832287173720441459997066687917510599714655505253851122218761268318880520713681041441087286511960619462742282902625972673392132671938665817146511310626435765942644351366564898523282959623542964992797765575656167751816886477797615180578206201018805226081772786862108475222003757435072695480463570097336123801598515463406351113770234080388390750549180701856537563326267564370765601823629323737947210251445087227819761453833156167699049757391465049247873161063740678836115719914332294583891098829797663164835181357346610179420005141440594864028194005176397199855662370973448621470001225255210615198462780744974436486477648493864888600566006658494537957992065214480342201750101636967071435479698172423849574218826658319691757699202866441944795436047166038071576149546960670249937186904711298325832797647114690658261506121383382049530307006455633720351431583042670448927183536077334320884509317932216948384968041722637409425718872817680713505227135772901669744910791785694049916507389676667596058494395823152383433777559077144620952773395410930902827644378335718326824372672573557255967772611638935800204313745138211087942625448506290897241782307812549967165510301852914421803057034448873417156595387909062955248081386948315767786664250642424028454030463125508640229056758625576197909856229249987070439454159134806831075216674416118618887793561028528337623478661356189625952739476682509120130083877656317745420839874634534312667771188846773790800336782858712718164632674871953544261529984722590532746505441214300636765439579947727137726721784605916314801484911694929239361862571653243750711999271941571159022394771520646941490205324505435654707630647030717796184267192212625022690702548274842596356504326722962107320281792586835802532643312948774127642997630087375019983697994854172134935519173614419139113905693557817913957703619201566368863352202545347189194265153519154749012647245943153330400503614928397890822346983451681456345873887437866494862647122359823808636356677203467047340323975128735813220652691112268468601160643986458424114607628706837113226040750460749352021521170883131909747032254701785715025572693407895005580858516114235778528625926132236994209430286681745363206360684596139557938229255624353626815144278904753690692617068923818488845844778949926098822861045234093845779078822567087260175274286984825910961697731447423229543788269994673101055512016874995165249782545886861552842588616253831573610551942326510613358810061510241451765433255614927900590368102280731383945583557955452687496765020070733924566442840543679197879708586463140801969068764002863227449039841506063296453010653020328773815106798041265976344887329297632501395173496324122566782646890214479259742823066237623068144231581483098831090688763168974553355096125592119061513681630491281906451916902919416958396218256546624996357434737602738400404277354501728916567518134179748962615986720580785962542066317202114052416596625922864164824270874068428526532497500492627369055017728776778953210263922603053286624190050559921461730697451919933663650903254868620094343400900770965412325544058936472023639333168987536549609017307055713723451447179476435505936225626217821574336103533401273560526245500067833729451329328660968929452159185640553889056997016216072683641512122385108520280893761304306486440845637466706841862998388373021402223664375028769715069009661513143989708284800067823485973220420565556281508402417673191705030407035190948013992131038011625634346495692973018056140970468692247451510874037157317275124015010131276113427649308806135090415412476866692958199363813447452541410946513019418949592080521315276981082924245649174216595271532157916220787342555094559579979100817761198578120152061424161864217757477471547121244453684689322315310084831300401042294670262967791059506234204040915681767602490633960496916229990173683048997186259787932091465836075491109632321651237304224159542235849278295848641926527409177278922123137967964663087362646470002840659006809388944820455927259406284465245593792195072623584287813906636678542324977450995618679813551957250775225753864493751400269341413688957889576570009961961715129747694843656593098473377726720040280756026897702548512759747888543588091476464731455978953180666105654456592032510723755823595471725653506627719609504195429661907332341463600685532700234284117898768144348996556263279299100402756696426398700426452928452676856148743659472874023047263272818186196358562169679824889438350845856167968378203972711221950039075143304274755884447343126090822098117896647275863632957382482280530226899121711945155138381990088850853234920007311596220233150529026506364525252907120622640200408173809791536036176609741865137548491659063041933745745454127257808320688247246589020249222445123737210479494460768123551590076735328638505344603224052762214295497151739381890434353985992558502263115064663828528214352334400722067208565184036350149922815816552087309267770049391267557443687827526828171517517241285616044532328293287873326318363392113317678732492963463790551994874845660024225147643321835739237514545431540663894976880125402900853580969890275249992692435163809779797280811551288379883226389339668543166532716433930156507938970685216871674458004919553289945298490618751930674267858094834540603002276661542284247160987109317035825130177216979095459643707068783947575853619386878213721863664852612354526886565835990594483212207091412115758092235268743763235615116729339136331306341220041444493873758188175493472633064650491918772349354422611842575581282946773003118871512728190296126323667017423047047850545598814219509338475308751213449600452821052571847831021344892188943390967129889429728258193933182845429990494510541811416656817765984119384504409162296544505641781052269089514886193082417049804254083213545961557125556071699849437493008728762774351176615007847497104162433635701844113755076900625549571652844290557468838128115827201480109340668672919703185767172756010358531288211356209713968885438764085612563051202621640180463178760986886832830760523731881374997147803436694194919832252339828961880028563313982130634600063326850444230503314388803230536215285478803494156572716099848979398617457493504056235770957909024712819736959106522126176932465874749223515829609106243681411510960731897778787737477362584051541368372090387572928929466093588464744185591384962783181560776515337391130086936967983080487529805864678263098425963846982546123177009790358584298969811234110338301866317533438464094658528496540658861933401523472934357584966230831767387130520218451383148419530813937750520691977646684721483060188610976054372229048109844442328025698906955302489857647378988364233122027131429980453643139117454623719751488257086229005604545887680248383301950519334732547148736910392932893008502285785241409350455410748177759619327305254570758316321278518805590683838168940219169791079956129336213550514270186621125441240014785599809958716075453917250535158220940596468060922851318306812799271495222720713017225069757784946100363058264248485617210532129647782857758588930324460531577803130297040256571567275923656045282776861510551936076172597276798785166010674300512272504654003792791649095459218714044214207749444374508225329484384413970877802243357213425179626668178034770400130581258306390811037383415194230269036106905465697673581059145671561207427962616706872099049732625421577559819841329643790104948119140527023860947118495227497221187292443085677259183474726727899951928161569727379582414824740589536882069780530730086364025288343702441182444622923517522779404684572857954761866581645887247466852201440099191134761947741903511198395715410843506494065797112594252794152486303753062260258806613963462573690198587810500068491269972631426361955029495848159395400548581484392707429993442727189414205780736081778007411336028016068949358584739873758178429443928613433243434280061801308968211327867629070808966374950026135286374931980045418641435924651260313454713462251038273392506627035981370374430993905522694711710589181347587311492164268072081482713751295534407295995684816251822184569704625944734941718992115128675744203087059958988697695775837715540373496900273531389609498342971338782831916160842558077899054195070004832991762439772634065928652770662145430112909776373138260563483054544734893530406904449511095404998311211195556452737794625837054476129176246381085282514815165582228524735111165779727090862724923603709735968435532907294418538792233973721541108502416202390440608404790698696808241255785620748090967163188054025872598003218042034579078497621565634773282356097128780988878113170384233712617912580461779479279511082033923088824683126621487593444886729572510670027175712299750531233426062986641521576518793674086054435267341430500594230692142384445090623313436138548445881095666953527479713386477020994122192714622538393086357014520823936220945411943476212042556505955232682848605281346860751146866496545196854138479882074990804657748798227660313525313863169277844007166647195111344728931026472141873892472538018371118962491557859612988852474408783851601146635809743399985967222458444579473347196752056953758845640731079208337504297269602225050912348545232672317195438732219757265682792848060210023459761367755515064794765967163842327766356968630633758662376411911866948442434992112595951774096613859931903827895187246139352686864207596795719681873913387853306020264757345891173940504639520988988289451722801661005783641686400175513397668260202326544572100803469528037746547953857003895125567343927123339649228197127812744452691353836187996460985822050849092340666730544505305623538703304945870582711136483495166934852939039291293327111321329289783267629056425681464424501444184290668839036912577587472799369785749940729358971349480998244639838934094563601636736451746513726818869549628775260335064388631452410050155048239547835586158330960879452072124885705921643709515479814003023194432233715149868281072303323097652769509261257132537678841463191015860677109143267109233895206463983131405765249494231533999573535682512494410892880552830904018482358431058658424341017453210865833700825795278968660458791156516548376731301005214136784606817864308938386566410600013182907804804743235992516780692846096121598294088794518536937853567136923259049103582370061798205636775614343457970795834110692923729662156807774239420798493310298149323298241126248385578527485494408548627522925496473053384183320040026584831855621299275946279779539963649963020250767454342949014967424531835556684212200452940073670403155587464450126320583190572919227337740241817521449719385920628010823067059986475786876643037378804258696488133393631549205323405704924817137066097892383108279971421757325220590482946001541823716897281480130186037719451712453574143477550424140419845194259072844732675211480325854940686498793733043619883229288753569045706302220334919567602769018114080758264994280087623484058766409801871944488903194796939139454206262598209354451968757118221832065538954371565175786285306736458619373560000852210353826047175955796577200275518504790389864840349501614330671351717990861959030578785095583452085256215051022926457026741531560912233043440332694540882118796834554859886480617894190650864605616120040697482179743791297636143508020865780453060602156981284404913095892228635178317337320771495481339756328251673579099443759959613444071043400802714845664826540388954668909490049163815879927452688207426891894161857027273456698083441319682299636002487313749217067905097099208967354311797430361747757103096430234220948154568059610516287380113180302838255897810740380729549443947859535424785160352487664212567935489632981045776716061145055731070326253575849937406790459161409572571313167042852059736027750075374660391236663896086423549429954184114918742129012452706416758609725014357743695128353839505690922524804792865504009623073456562635208231595141167930443467086433638014916597154558280846065456958629537344845354827342776135149851892450330803524215684021924432110009140639884440254977924193863121115113420728271574420878705328368985785452591718428182971593699478735943873719387280579873383823693107326548760514777783462002667053991558737466332804012399492187810582783650633196001042013793292188048169513882014815335894197546487202502891313015750112972325697432401498840705463735256956508599996533343811415633490316929162568380474732644501322402419072684205158243922682563087909255368928574174332060344628767388362623007651027461167791985941526347276754766342531654084820090487318139468517943324657895986959450201136970502473649078738760243031067614232235831829826492039518526973089763095748989545452718641856039191364358635283590715772008585864171929105635700821540561151399196406683862689405977354871302061791525160873625823637051643179951344383611695541603394347362547332769641221524697083007867815176074439110674088970125266597756895150025208785077611846273362674734304293017336322799434043132292805725693761890097007971383597108271458066661594776485197113619454562679968574973833427154549167445651109568304841759783455503088736647673102077060910657801809196676320756206570276387749667558780218847066046960452842588766426371595477076612444725178569289281370353487093155955407615602716720767674444481475984089847579170209788444706197543324165161550283132304985762577200651885973995348121640909973324685498008668835919767845373350709416534704590555143990675659493526189317541062840875919088178120181797710999446714276053314722588959755935152814597321335375727426870694838342419106068154143649776471544916584882077405663240012233585643921170217390961590548186427697858922627349305958851364166690418104340869078702750354122414282754682569504774185872513287105455720931738975125420574590459652255093791567015434484576696052467624753470552318305938291013809432178772142322397926291585439783218299722101701026486328103885524367560252392787436835314558311171109647832205222848010062207561672084862369113964912941167087309486499302175006007533646554635461742491505674342179055669470078145852043352806521697087301373715697971396518182424590425281877545367025923394346693343202734412123945422648767848243777911858380870789254028258405095250409607077948089755069327180465734702552126102513426865847099461681379262080971129262742191132575094374854994346731304048838077493747933246096084464710646814378865718503307274847639337223045302163977061836930801191122668878079099304386713565605838349880359572461253802019262461003590586685791562391984809471977425465811188310626984484852401026384042031537196200979883842951213284698866251299936278212612768504925406861482131592662310753528275049828225288470220351992888208001286033714634395512968491488131531963675948828959068392222517775583110298425194154897328747687576522010239069847370242545873989434056899521941579248454976732039502829017245265131772660082539828032794933912504595878125459783565578405388049000415274434082346777410999942176506007745545942310918884499217256688768456304333244997647813310587389043330950986512009865283382698768478941068606474411942587405573174984527501344600786782777363521457290308510877836171454505453796637317919501235783415275846917458822538594833670821327075800686498488537961221157700467637810401940056102974358063717417000728997371832708347633106501495585074822626400106624684940471290925313110575188050443248645683808483160619389452217715313000204617718252579743487571654739220318186605588666468331562428967247312250446323218969165081915437277424327435491213652263483123435274903195793228502856596063236876373039513985286652915883892705169273235505344203584531891964830208470496200256856484914298590851456131676621554163088114525846816446933467564435878712008300382156104508320028651791228787965735861568100416343461014109049748456875942237213010632745415194076035520651829899489899333735807427536235553880596384513933776627380554172449667854891586891010737378755522319755935761392739117568715962784907757874201884431581187593380005308337259003358510962337576784379400099469128322613618542868972133957275766024199714215675402935073069003005377989311962922421673519624678338866211205202832080990493343017159292003468551866442645207242322870739830146114840333302738538769125370731546893777085434701806579606825392289263137220442207581131770175509685057487915663903380506840635025744591687330417322029797651247671168293218661520810984585772812268847282819729185591508841669166125692428568447616005498018601171952627583484199211087077687085772494056017240716843443925338172501128843704537218001349687847220305691349334531198469569587934734181051246160913093098604235707465976732791028435590824338239677187609007832888993001224469128691540952030821022591055026252969594763717544554944283315107930099676324827142116490580615249940035496695378429252246607032595561367079536741926343379602297041264056580925550438515648184919933522766982033956212528539363777526992053352772428098188779465354860168012853614142798764399844435560788803981833903675662202011132275100068832940561859111488616585399708898350954223514998510057137398789282171265679735950481036587009864377451980585799825141719192414666696955613565884868176216859505410457855796238448577705464734774240387007839971430348564904321641128245519994784214786921494255365705882192337655198473547916518841482886246926596189627577103699269861389654242896368572989278835190508836508836105604498352104780305509954508246488817137183744956651937418843798139289529986222299117436965258620026111260025178705170886303265051651067308572824134260866734534466671811696096025076311006093820940428693345269398151177293121937572204375221307622600128715818390423259184158697984092429510080685002960620455757431856565664121530129910412456672879861251955244991366092136927652224681612005812117283703721724574277581988145546051331576015710652108473334905840896642998728178017194161290538579653248353634868442797392433215291568691129712831190385900635865587769213955021105188335063358531748456322894915700184457041910135466026446096706077677719279116115490867471290550514185403378272515941433732302316009473419141903707957242399054886863081222064524944817044632734439991619634693681340800683717287809164269205646377521247269380745135396550523338798497578551763846845919501295592091774411433584031319999550857489280764717018891617549609962773914555710855930091811372441412760939532731853196862523119069068470872688590722822414061281844757113657909036416719173119874209339356734498412234093865342670611330243266174782803740784574597583236214716093661879376086197693616543966137616716564117818250814778524695141967463238573578162197356517158770589217989627294592686355148496389719955799025164189487096827323137653679834170926404736510396637749384937697193140257597104189754030824100094423685862379931297481300338991501883647983319568938042617303574595933450695875229937149934290797639543607058319936549894456504126482645002809350035650456624690171053110826350965777521466736362706503856039114738954820751730572235574320864854946275822676344399515152216060018810370724906060241728003728313567832583132999764080519431127761875012802835764845754984184277449838164813180028283992592873823400074411087516270870245424385519631819396115394245306471629597158562704730863512181927814075343634332350981180100176754901933053758793795964771824172597936876632738106453317762190657209432996573851416511148863332684577932833002524841368303009649510265196691196343521366779777774765214167486079237837073281345793555799307831794807159195023518120544811832622337335632456800024926635815762763694682236980278019461068388958192418439106475113794716578528448628724071545396921291489246269868739464856179010651231572280359531632340675763033302919123910472485527734030501772348751213666642225242163820086992841363621492493020652051876136687874036476570004480643230418871565472805722689844547923226165578560662028667834457543524752211085326206369665011760508698411512405107084414571802151216406172289651041559858851385731821135702588183485160153723383898056595476203267269478607177515430417621534689175957371984084550279308619716940346830001148347706324750744479666305253209141750907126241751087905066100090866406726381592429315300652338683509073570373724512963740288175466815600364621446907135545799123294199116094278222252833086376147656705243768225518464994637938079161197866383652587800896664844932007455776937188364776987444038465590470080655969272656252312783775817665531821307245609634962448019109462782469160021645830602768235242396458004483441972589592724931339667847736301422361135345353249711088464257952241300796567199811360960913678553563601168669094642590767939029875854181309342375001456641514786194747657654071135203784750535183988676875312366116633928837620680036231534832247174613542908864357919087886634047798585217096079886815597733521224891907992985260643253798632410016089999925672788568424869482454791822969420563584453594900268720085635260374960858235166230756237621091085107697338438232269597021682603100898262734883647072376031485811701785080678648087362317929121347805645356434922395544599187371328859028445152921984422881555901010471500601860577007322786587368528402794108074707246695487331328893346989197786054182028579253419587962244697830556593335618368778246412425394925701292003243709431025628433645115551251897823542362366197078786544144231564695994793104112584726718934255655229331352368320578075841104703973910590232421550149038949481915592048407894540451448756236606843827764849770286166103165334335672858440117647519752754719593208432771862592085334458083578421814959683156997299772749765178998348572923425286364971158797935582588281073069726404256920129716435040439189620872316029264123577400522733648012405736918642529423228178091609953610387052752688345863662955081762101324200821079418852028496039806258650738276317553420351104889407627399505144878437930181311563706003458314034832717437743448980723781593121896426367171976487224313818754927101385930128618219996596871716024576717180685252019619796826551817130984945817043727369267465534998149669538663563714000653884935443639952884446082737197940340469824997878200152892158839139796491677930792322487912247666707504871157086648515384228409566142257387289150279517883561814538587015140960691259282242085324668473176870891707772648117748433931531152182276558241131159247051469782308513486104438430668863178838008618565025055699190256864548696998555421205716637904305821666472796134548167096218588262385892138369336784203897356382630167127076169971393830616644311335183011425599785485388706231577907328402590333647056532937991015229621493984205011440868456826349555969115182440358674584575828674819430784857533521850935006064266625150305725781949921668617391385418018099699191246179279005576238646296552357044606914051857660137763535967703603155709148525221576033376431232690997226038853729787661191483490419304389495732966114144065686241066386711660662990319340768899010990357459168570253798065959854162063075742245829214549393742914481431069815236476849275209592218405747226142062831805330587106575399901218494298147096481844114166839063333456168687982553475847550539651297267066397254515682676837097594150430954165431719451787830997752761477168735439402905886636011613073769673183061587216223822660320036856569527361253244961007213396009400985554819802322285066921615084845814995933192824351068116938976737423668358429915311302512220887293678392605424954056308679453858143783828138248900504561477821306327396927418392436413253889697166852670343875468161353564857659956913168496181815562593291360215584295433358252895472344193346317766322121013466835255617736899348303082907679660698944115560056698411761785555367120993521808874243252187882602478751430872166677903472819661489878183744368053160526010660691389887221492297992790733554742765213025114148948620087041829704572805210044256131543357787116655454962039751941605905265670640582173656819967650528112347867356859447961762031028084128025610775762769800804333100850238206380023503087913766446779265967796838164629125211461372848451232207203601913289033624143682210854985851717004927323175104542020468973731669639433087348862000985799787116457445868700917482856818528393509580196468717103172098922747011013896552712990051539754618619224592457406923434120725001896317897970612803477034095595701223025767252361761555797129499839335657391110761284282264459511206750637065886561654270253117277611522868160177472863255955870244865469629816617820860794391636348021056404289964109551698906088236108397825529422016496651338071790286190576701579257016300740458069660707540619995685447586761204448163119478491635738738259533158819493000625076525067228076876504736384100684665441795171732890683214572433905574720269814015581123400466404170614440011082554004379108147181778707754125513402647469191955103164848884532143154055420882450937550326787936406272808847388872749763440919327654479107147913783177264273143995053603238098420317625469769166374204903503616421565260809537725628441354624182243953368490623150539779385941652214212032274291940419474605802866694581178938042483511317172543450734885547498177591582332355027771317068141976218869460662311688190795767229238829992840487644261656048286601602231231203807869830940674521427624587321925790891242838083081734381144156349097877594281546626519691809364769640147671331415302040059966218562713509248120983105858502571378378570933503467941362327109549027875892476455882062330467950263207743466414189642340937522855117557033164443287392592980341693672373382884594401615136195140694958286776172716188092696998040612512717404387477287474088644938026060282157423438928572410868851012581293562770647644930769090117273064915148054637360736930124417649202337854995481630345091241382756397754437953259295427288503899387536454285999329901279495913944355569243019990742072200754961003492796859998366379102217181599863936811911287203555861872340465956085415116351315613945663020108873448685241651199708309797783564872106366047818381359808106227403564184761403199399674396245967040770397148541395373616638540763865352938832129557898343320698377700344155493988747020772131686479141146112008279785763267506740308777652365356526628787806017544633543770774875804332747647723129722847379682422483026103887969479347740201677501383360068143324963268910891165085482928191965480252615146477655925111646193877607833307567136285822246309757012815113068817392075607522129872308520809333644185928553878180264270744055125667518157235841113534258772997824123631840654179132140605438449719198440294081465017520797976852413758661927945492445074715778534957591602201712719698372021559737426612657944697100201548396817411562503633610586211508733091891393004419637257530341494506801118488938835120980814940293811489658268544096193114668607785757780697842325493888773431459065819530982961840623348410259109865914413534033714087151833411996837816806195668987858201095429587065099536623949716102489666448976509814454182020310119583500839442370899252727745532790845562920339844954908261125806895100670054830674146437264329739645806487307776367629488552117329995226631405728446716922674102298953302809185429746771559305430192795480812251844987220079479634271327726511435521235539626102831109998074915278525685273910245927822678123757235938156474322604970772833720232368507566484973397069497724411858992790989346132704778950574153297806399227221373491056553449103353144726006620632697131836319469903149741488170412734065044651470154510824188861328766685619805003906767557674767824301833976374748885381581373345949423033838085687614146877497388076388898450829069092460577740272900408315947452823973958381535848451552429784755923733871270563895187767879915418150802312615567574431465036023559650498365066093731193581351835433083102813700572153434136533782868602654372083382414703430238910945619578222058047941173577529786297782586349922004165489840656592480530205592721116691886969301986122340610641056321830399076522478197857667309951742228892882752610602870565938937031478215828522530522520732303538920378835739973294509397153460864232759041426346915144314938671913853046346984288454012098965364602372159829930242095229188551308329415113992739523115939747806540739455010520783616344375596194588226556865253004862068705810518419217297531652067593544440177150470690170202396974845038859431061150178188455389366740033164574891398550967019571291101264646740857074189174022223027765856999293595281031592193801879075783564014519086115044219792188895489862957471943096216877689914287414967824069388806896924893922214963937969563045753255168328342569018148372275049493795303070000484297076209136995498527411354497655501915518586257959848071466232606472968836205999497549413494431090875022222193417448182070934628490036745167645360290851525699973759568789424245300409536161526386346498373060936742670087970536207167042163487881603226524552431507176893880566779326932712012881901772574308707186386401400794263797850552232550739102447324434954084858889310602762275150564710207484726778031734861922314606778979622498456252322806494666223246383269500404772298432207996785452415617932927557755879950521212686590128531168498881483356973392682486153716843412603128496687222887429849625182527484559863701737490407920994899656062247809919983380881766376593758490766419444195619688410732405691071897879358913362075338184823302149169086899056343277845816661208838548770674389943802908682539087592300695417878265029341875523203031615369046839012531398110725149274470662821992557091265866060302183990247118631627060423951095831367633430136147289801463804116645350476041594272345229881813760256880208338931480112262608225282886339493375984879387756453623470865070956263171155505784440520768312028316710566146031503446791612130942096585540339680270844284849105020931697303725133331958594211789303498571014740274906944787447815171051650145597688481436249625771740650254124462764360150587157011469589558107625645197543545797346719707342537071217241171136094647477094009742217948769088436490645370736877346335489342297288937549206336879476008679590486978345828176263613025255120381082415804824202287480525021884363201972816466796685394978886548181483711256305414657187655045354621627389283088200953249496744003288203379833405589754617746415405818816715998742250166866905217036353631455814698908645164490054773532939262285975892498011210819574311945827740017472625910963846566786964270449961697517598739943223463295300219220279737978182159831002564879749780331260209100560875252932725140884501238999959881249257405680665165927594241043222154766895564574786862147226080745023607343747617663635408068788991361971888221882323722726431063627516468913066417926655854008801137892360377980409673786219587152120852417032401757319412803644576446640607937592922679021182193683074514535373089464381499975186685872195409680472218908006224945785049909852452564240819912904100463281096179349152010484533847519301620380682491041125454002339979285836561329315153830507180431713630563792178515083874460592175115032507142382769987477873809857054146474023037805689172573016524987618554488510177434357719805939677969584536647841606312630460366865688666960248894396430121938226079309953524362689986794015702204966336819930874477562613276173858645566668730203376744794509677999379359626961458690663137692839983220334018446109348382811951622070497087400100691590719931887307537465222183366705176841534399085929662604004278841967350858892076906304888362213691135771538319900997690814940397786506149081132450110312308303906654192062614694345158750885222082107518524089598345044322026169439295843046700471025623997870574517914050085021056290092323788644797711830721069644273486644573139159982093343574486744297421184243485851821329799733116540620782150264282277357016236706572977275756020399791867807673077075342760570281277217478603936476487228117982656246361469557378996511314985443253200089063555710602953774243632254846761182291995298716083313885498839668819354507172769488268042697966052960374313283394143511571449647340660610692746481160652820742477167437439411328079642634814988681263885908584595870011975702462556756018140910609832948148162922740126430004110138662201006113851217309058047761881352746406816798864420870758491840434896678419479268003726017060203835239114442893451862850776466046630324214399205687286838921447415070332056981146050028254955540986132791375906071939718897083289263672682823202766267858812823831723740386203249702267240193243162741028533120967578314704810742251940278213509021730066813097034171399430537696766213164700351269222376642973918295759490730942652146653180857111114687520776782637088710929845354384750277253388253605395603738356968926759234217448531107182947852594267697705432113473938023968154782531404935808384873617099169302958616914126908384623275868693686259229521010334300260815784848065787079971916644879075873223435344043414048849594573459468951348704341819332903826208602597126266326385571214839764592376380068368933535184302838317590681519685631986278064924795362300649614031385351871898930520972795068654872136799169458014426877535020119892714557010061973214042866085939830968447775884534890211129845966393870848282944356772565233977873135391619798902043831219858250013018928824908965189402486360794643391921248573779566144167451647147256955708229036796158517277377217183227120610456229644700408651296294138345723269919442157430805624461201778227299717092395215340387124654019904943259534064140903327262394569435044926134849480310309138210725994458802879094764808529453554025090068615151559820458993242183521060312719459817059931655006574839096880290979987265338590843100017017814518707271645184235781965266906727061399559915941912995511820080028903219873231846948259582372360814834088113773218126038100092182863868878832082686327123804194807976336558839503881210976200354060174654225166123851195504721494735082418622052671809665714326890140232654624237382147681054783202272898763292547034528822391488941890093365476125849187523750262490583260970968814146368538468271056073940473850894924135232393062974355907559711907021841145796006916165853932029282835588339876101157930105780723263281850996552352105422021618265534200145675272065750916299645759705264308346025620099111396842083889867367821273776018165849727456764746007394278758421364368445792618422275647351902062154680206222352812768333433895744719458907142828689234960983725007004476303342830057174021723250115600671261954224098097829338349370351131953122972211055142306017278106293334976686555372462894826081704723037424042228574913099087398970794189794994889296578247569026436218784426799016516248172713514287800589873963930859119541685481991861286928535968954757505027739118199182789551700859049906125658259628692757248232751888381577759509526751353043490857881693463986446813511141698331754619442367710062559828526941869003847170033534180370768876833413404086760541627383252802355847813634702542414382101158548259285073581940023903322138886409258140475538285850390979434075900072164314346575618472678930154301108537351927227951984722065865197116128549411714629940641260592748270822624580853594906969704597187176559559921470022075812044645992451744961284173145558972801501903517424180371281959201247915213564277117810848020219038815267139450470313991493203410688367219686731386379873052326105406269633497771320453695421266397241303346404600836963432804408996179291539602428007058463673631795427956132648670896125811065551622161473224450188591938330702438518728125468321215885183999650022892653384013676603491620306625119393716583459055203964316464295349700033506461008688286548050804883067458941878810840667939932267299852704807085623508970805658935525463824837882205480304776905944825764397301652439836284419798636994405901750513421322474974655796891769774196776403618801632893945153260945539929046270875125095252184597218413628859964600086759755626118013601854844325647265687877690923235829006286101724692027734699962196451043724589999032846514784978108577490746562281266505715346784682674900376167871054134089745773219425797337267566339210184662076433598909365539758880453174234238613444056919926828113467979479378332918489862692915443691557339096991436775073142479645483580042913676887265633288206828590985675640971936519349468486536052672820916511349161461715637808872399201908819840227153008214868283098749027887130164733166644238423170175924326153620337019413401621978622104990730062686001419438429448562483749787187887256090880883452974736048787390417456478890724809156086242496486389935438532249100502189886873439978533664119641025762685349027371035154146147557222522012806210787106449218699821140236134224974765095191379058305851687500581453549050929432927926479268667763736838674840277506902569939393731029065897885388481757352815659768344432519326291155189594201737743646766717518436903889341753067585681162313121928526920302661786955019359610977425927628756567632113693205321101977777247111653507980355051337950800249018113036754112975508673431410767453899460402252296620272925658326374879546596260548844408682318397569095353255116031614857890192121465096559906898125615585583914334233768869947423206205119488695512007150983653979402767667235889379117835546060940133788577264606163339914031496933605491718086316433889180655896166841679824101397854771972853729200674253127590359683889423327226062282893977346644911299295263523204482958464734635716189468315309420015815593596623236408556944335948424917301226562357280643366342080991872705676544643885890107647643619064401775210874107372602360095661624681220942250333400654766270999478815724081025834507697506696515641081502329951609340508542173534091289097768929775911795229832925172621275390382649660547206347512473386244015010293257760264736938714471703549535393112813193187202068010906788336340547432072044380714538984624100553179167511554883664849827279980286821226742195443337335688080602292803347114882086779368966034679522340952364250179052638339902269747209375567257495593176821929710985459083192183275793617207538127649866122667705003816714555978368604164584085332216973324075274890170247414814144951116166614714637810829720276467775062248171232852131461048620551925526663276370734698717422549422626526299239579915375401934219186629407008072668566800063117853578936993043878385902270339988380741838142700326360939643802765717560149481907776179139583751225852760352977428854362774954867335812316407856480576014569808149060884617382436129309428534014508625061666271531651607969559694845314892466018324965640081603318213408267218606170405321545871023065235329752735645198292832635842128752736412329478057058618817218987220529109340644593973345979350568825825195941335128031516466644974310003528421480992099310859761393784514929235144542698248009512297198134516323117288540290303824825362791136049866516532038957120648759852098563959942492067485637042976905804955463991106627064029113309644195693815818335078287902491046036798103713131386948074821787898315566212195546830771622838158117444170702129175828698376496066221210227043190377671423713588278391393672907237822675317307577083380499646551924894213555682453715223823584798373875883307395319196088152325724590132662294095249638094603621323122768372859778311837838330986249970478807281166456232915939916177064487165077732714622989220157847786301647478103883036243151629456733958457522779608848351983999975212683391301806268678974210671341613608772906602314561615455463086023920041941403584232938018184868543442905226792770026876783215882100821199021840123008070566683075088824628099984826857984067480607411596922568368690548159420185478845661235345030871617445857748535904503398640013036599289088197657855304859380102542729091072671009598386420630619407154616211763888270164689507249520932727827192667160982607252635770700200647035753129576813185595099347211011732426838609750389782764908191341448692392506199814087262762640365029757486467992863508524874778886622265012488777090749683438412388925869456889210634319448564616013658320319131233974365177542157968087020805186686109305028597489945464182976316550959430549240475163289734614356116376376231244808140451307259420812766867189562964947738277703027897996142472818244638532141964659206506092930157717898218209642736301083382012343717670490706768728433311768684049573028881681897461602370997203031855276929575470275825105911127255257404687441798278360119041283887363739136229962029828415979375786709906532260975555149897685231941046774375189163058832119651201627390440506636151706250784795918778214654027919994982227265977463193348238503020437876358742667036009472590499912699239149281493385364392084199868036193474509186518017926151016452980065542143507349176153591060240771227121821684605262803126401694288731191459512317826177463442034967013123337808765708085484827340236509455612877719585155890089121367252475702073338354325282543829195741973422967301532490141393313975786905257969483067731541137548216738699702345213474423740654630017206110258033597637774100416967036612290714471947537648867742095605344468653404678314324361277811233814145160899341466513139022959531666655597891637063833854012025860501362628717738617780361594149561742616773359035837280037975796320369461947091097851652419369534345471578684870572851690272040541152321895756991091721897339260817668286404668141548221337420512462113525738173217879112838628872816170264721870332707578212864643742971853439073610237036498316071910291966355074589970347830853049682875865719226596702836298868588132030836501854270739763826456493890838844543754761798863002656594974901316513479116733216771977665354895289079820370001193622202505352563721248844747665825010936217048981942911747122108822176472894142572457364000944395938242029236941453800174323042114861710529698339661753722079150007956420037992104430480322558897350379171634941581491908102703540746897087546271078272778758829632496239727436950081948311487710212132838639685429724001163610791104335248591267193474057807105453948163983712695871746897953344395365672984507874752227371518392189238125154492154291872728751084433096263478407583852829121750762235663340690498941918450246410330028906072125774532544810607985593315491892111606128346411148222062313421833757632443294644571427551902330063564478018888488611080492200012028620684359266053832988794593579984551149341019963587225625954690581428924505256828608298485019774740030876556662870126752764932405594435884342439274564020372654179524420943632440327578418931345698347932781713315538555821308087022572079390670393072282862214012622709210152134739571556771877000280097452615406914229724345419822659420743720242152597187480455719152419538993607648941497744029175534445216450736404162148473279449718324656481440688576114281440387589759812472682715541133866609810392684595169183942190830934581457104772703149511761486218705848570443572923648143932344366283334873803873160675536949866863240686358775222677453792020473254011383160623735692041207640922026807758401066020638081267338837201480740141923652722815512199740216897334607704271995910706215947081630193953929987578372072669944677811471393060822993588251418814295849022998711320234199730969553954125442963058268938464258421506785714439772251199294548368909454488261697908419251457124903481922992810078833316620192119422753192545142471257015350616078155756931801505175114261424111831102534753930159341634054528570156206147032476465098208676572272895747974653379642381092529121406776758327425429298466070446289408169484461343351563082048199692602395055020888831794551445508880667607946672210493362341338123738160535495151794202170895948047385619005341656096732852153597427183846853271929054870899780599572536291597301496324111585171162094663379385284591863213269654538532871105411291922868291176689691070592395096092333227913805593829413560526215637516609135698405419770987199891046429384240269283799327027193972492385391879155971314693586744994872720405617681803840247233971553023365742800779710270168850547128115753263872511666809127411121691252381057441610352494200304800091411919800663183020690785308289163875516701352441449795501152138793341186985595465474618548548104076993544711308688078514005152159404198900065826514567517112370297177307341655853926185609901865627522635798202530425138577858407306751697093730969620881831686027599787630462511506359655036955183145139327213247565140307419445507246695306957168822394251711377771151118058093276385291449217005369738015741046439373135947697758611855863664328625995872631949948101569638535576046224848053741846572677831581295046893321883720622982014213779200623210226746802795137990960880459888996568334449908283274697809794858866837182323190008203775855914472593209386060640130162809052986125227208579803634366012901042002869429827746173976821036119189474530630156803955752831127575796252595231939087666501238952618259558323982933407839658007803919433658785294418733408592635903293320163544616685308917159598980112623843883316775178441674941321937739978027282752854107397074077318174398144021791302042519441645535109667738262743378576893729005830752041656184769897371774576555112498196865996454796193858399688692904726625244034960676727377078217024630621054979107929850813018211780421008306534484993929928630281908931656154169107249701207874192927032902679050938235940564771601121038044552800030120519554303483951445198168211630443625375910880236414354736178932736785219552435609017103935257575051207653457330447482123232595180890199509895824543320809964225974687490244455899120783698663939994273039530595948792891014100312557047183667940757668798528490767081909984377018185234083354012667143121410327501915359069750303825834443569524883193245487149261913551124187727554807143682157782646970412667178554316721229208775745212332723299822185729740076395280644155455684383809135360603857082976224165225612001892820718685570417473831100736802002120711497942904148335860489496945572024738227257290910068918269763636653996560311891219417291093586665510139216096493880581751988829021959300923828275524180527371513651254428450308322080920035352814205263067831177753002273651161816070459974225275458615092654461064347603560970741369461930772795784222476542299638821946552171667607469186427623345450270935405228615239942289861939454480542282444361877112912659446106253557408122359403152323279082889480510838985652542839685858505449458646992310171567031480984584207127243876726524958927603269782352780115952932442558108571794226821321971871229895978972762839716859316406297097108869384494706569913514807217795287912542868780979963364397784245968906408513124023473490504903303703366935874796817918551306103943082689767933024727662673597461874949198333787366134689153138064897457785453345433829920257234950514692607972744036506015382584148192395202816587321811163909367468768814606233383291444667728802781684059551359805575571389411073763763011190745060843219372029496817945186837484452915650323270364367182925161794950213393895584977153007711986417404102566778256215384228396503394130554202505245256796652485542465857240738788035645419626634499689040031988215934797969031979041639131803849034049632391127144205554451293027948845747012816152339925168900917959433631331939949927425611811473316686365977507180650759701541469868376045889625662502132731636838162411791375301223495486002135617892507889296174251929940981768289661913789823212142834392957687763552433519589772681887308470071473968611306336578783923821813610050552858983622664590076338434545320493226196344297197197777464498423364574348362396256123020634894669303549121708239210406388472609874796547314158872058557390550477349517365209299153415479165958129798728860730299635894643957087115832294147000286206987318922132581330227049341657367441256068373361378025208664563088630549353771643975948011980166557018758374753912296088423903060015688892861269189083226416451905147259631861509992607704156741229631308064117373524648709413129842334363012786971873273502433903781384072488226548415216115107109572168442325665305237139034845527764931284252835958101322110435813509586021007373521229257851650223164150746300626195687326513807463418335522525294745362599989813038503156830320432544486000272977740386625557176500844931044862633226417692362216157510727742444015500865816169644601207750622318977007029880176535367546236389669574440025017530697916056585306199873552072205831816482053981688618736449189542654631320767117543234131729014936357371552806644513252432419114454502550458353151922689599353023434729245929173406346746958642117789986787503262085513582932430971899384079848763964232859496753395130541987557098800723675783361733440275346744942195326898623903774654861868561818900085931492855920797902590880145004211267351849416114178465033658352769623079639087430581406950061921333576257567333563439958118710292737257736360622783055399633700976236024942722993981848742715470517765958773585203284227455984900772384050438877065449323388694152664660327391169356350469925524781605540713549361424191056689907659458412269047981119914015942662086864094181159375343313711677394080230764382613395032146839646297958773966419339051210973611167195063649991245632850790738777179956323886610856331418926227513155585976297609170527863376415424017912346401670562297136756219011146934032794746323584961671307140573164840895687548296811260177699296276524419192731594434187338751506042925863179747535329158100985279990945411126992221261577523353012374799046748890530495186207689823025478925360713930893388588228485173779253437839331261984583303187461817507012284551932780252063222809449592502243902790123943231753059866240783278213542513260717255366426108930889993478137890404888502052687992130693595086073857922245976176699477520571710935984951421382767980078838942266297903529488637468007775463040714655077915190676798017323268098405517413474487031708108267188883222893498026180791335241347595895940498041744431211251945593489793033653412935620985917761117712688076806732405001552602377994315346662534608550740985917792010548299168060953372409284028551050693530736920408585441613377348043388256598622552403874783208949184939757398883203897619002008567813662665977026012299482959613784939146018239885247197411499441912455257650796513466847192427422764258323225218622322110042222596416648247938405077117134421207699143694702002540351802046685564325119961176841476006935590276973848922557236720763293654595051957065596004089510983622562743599905017463275850445290968061057099906826639236874778222678443297831732458607511310546434119499256641237640715114351195047180117488577914262953240020621849321419889860794986087298261419294196324481727651212013988318573175758917564575486370939319225627575164010389665225750451461978121733498465692322260289641735658527891870959293430785092989510801224706346032003783295677496721860087396269487682110010726150786191499016248338972688663383882185378971354463023423867386265922763358704372758584758858086760726289543482858800432321456575285613604408138621616223836215157571919447508245726230212341743235113479872158173112673640468194418579416701074949304132085782336958906586417371465408462130545654750941853786553489499886886413084668360694751482012497542143528971462527782346428990803739820470790191162237416101066941637089776850694799818253985539010103030952824860020292254285257076540127197876209525649327369519950545306142079842524079210550163971441465185010088070842834954842463123675771317976098213973090043121272857196377702093564269985240210813769310711298044147646537938938824009738631992939094623524384777627723616824402166123257899268923162405117521763623012554713869954300684937960286562742115999900550417802969558391135879856102604781720470204550302473484702705372576982864798234629463355097002092941418489869326867208613882879623992498788595621105381220615880690578345926953031519804825763577692702606507204316573555427021242504824102384511335112441015687537242281237376497250056381749424011319774758506015295410692939760098096237849002938019638767730064181649406365556232523976661535461387460476047729610198637160705757728933318263329625935710896212477936776025324587452652200542744021710871349691973346631642333093368023899330899447965732832594515826911690174750926595364287078764531246568651627518568471343382205361297452315879827458703815890005491567919225409992499893801011976801959904782522855581138991282480998420200540204418852446402235181232892286455850456310500159447688794345802006983003198810701145639997885431164614838646153234155510819952585684418116244697478331839119161076077921978359554363995202949757480613716990224151544480081808670221705203464477875735897053439881342497242125954924033198540184633256113465295254659142023279346233877811132588903113215189105180172394730923093498559135865838587482915330531801876961035592319079093840511866597540368050063076735248934412351788132458293398438784536691822913955735071045856481091307521576095817511042514938544722896944256952104989185747439782101592618860438503178939289478436552201232369878891724082057739398771291210193131610784198538325050017973927682531171978027052181125527707885144513811781924587028569194925315978388587546794167146412437922331937719370392518111004589509697769341778354249269775177846816794378347756362377713262446574498875363054495259135567162999684937719400959110714494863437448078723704190628438225328914611273417262383538403445675229142163828287848574933453491116860163998977470296106531830292800474617973789091567343665749043258103120552359999363330900044173378537063636196235366060026414786415765954166100089713754436920700774090064509975880609955202916575202581434980611050713957867088257693651226722910137997467665781553088040840700833166207141906091972452939910436507429598771853478592494208769513850122277439648613820702204268496920714078549942208564802817254594579008966631422083286202727610517213715168572026075905613586735548826282332330070005085607029997030728028423086765857372701523600611788173624656156776239250422627317227748700223848044412498246507285480878462274597065069461477908275500403369084384197522750612182196332260110055175504980725386841825257393497277901743208841712595204978934312019320943762557826425531023886420809878680137193777105378588042081003005211853073524752996552314203904518030739211468992527081628004601873544509256301425599817530661866898596255774842986912859702372872945357819435159903026167558545028174465308297111171940716094603193119911402190790600619785634197964792185980514568829547388938326263056289152935938517029964016743091949952043301331482496906314782113603346997170764823515307817134215025867975362672924882958911815955000236968290468536660265478307816266015269275996356493855890581453999541692632337355160847066620187644886251408175339597404085632021682855881950036411825073015697483368328103642000038575262466294386462887731745691905276100684703394153837063354061289437144722624342135558723356963237619916243243716299567493932025736705524994625933905215853672381596761542797184644462804937140675816077037897768519728249810167008311450665174773094105279419227269829398110640564226550688167695643502361622784463663238216166006443806321993517012981632420000090729572621158431486013086362682869804944203682876300653787431583561417332406395363457148088727269274661564155299618435420127147446887018674647622665936444203595441609404891923803548612923732363896874189611406735472669600757056717551623715899224414991644671644918456869796871494924504206928439229760422533102805285729769998533517299721961521354614089840856413301929535412899096443113829632625775030787929594825243715285731583561060953528145219475304203762540915556218287148103540661939338562955907417404591482775860299305465608146110268631814814572242764643388235639257173200929663776609632012006596011553177290313797019102891583824268635273860892936594839930499386017655018913744980056626831715897973937127930508116878544470998481690960223588794117979049542370929746048836081536927068401660693054561035299818420678594005716859303577321822842400795505337325979538423370833833452648921941527332210290092270723527302557720806033295711991417966348100439482845516321723400950636065353345910194770238272362649946618920900816183310270810657501560362060673477364516676592405203418151883449885134680642095903318701805026694514421172039754595672554413246228343657964196988921591532312892744726531406378058992498151594006447086914799733572083703924500963391919105870237689833537982124131216314132754815387831959029310581783687271937783413017563487101673699250916955975235601862600423189592144613397694845909921800755437151233291056966111310287135504443564088982785671649583180938881919600938340188450684297500809758795553664171059715128316089450934459562491358230271941518328610224077419314293141708457811527438212096807941752078488550472625664526803882973087269803265403277079237903758780385236761669307429344645376527050258436418817351621142522288990788487215590722442647268938074566507679830955799330938524559384631633385463465220502987789063992622905324548839561995125771934387373325597760736449258744906193680817745260035265476579927783536657444455048602209902885154812489971753267127563323135135922149482893455251363442284421002241851938050616272894065216671892338879879529219973708772828457032303983972471490500746326460403158584234147196457420735361130518090913928951161166551367453393856587138884203755193355803904589047109498193504107225090462389694501471444360259581226060161618357632993431121257081063316963287710232466823822709686789420446820700700641982369124233403163028227046850732632002387301485774205051982681527162163374116073546675493827829119892052400247351665813116341747369670585093442194448114135736569984211692996433715419065774299244399167475757184669106639185533735083288892190715139924963839992067284359304610887266167759408063646696933678991684207012953046911982739957825569474920955953837719746433048205672810364006282743390961976298919273128198046140470810758319699884362627422885309229993864115537164214221585037367434664818527675815718948366128363479651952537775998293225799609145985507016853231354593747501559247563835878766254480282576977101900672420559051046283797895676004426979731171387248358157080447161399935167512986649092371764609859028464544036115702403247348401158873054523635662281481607807168946790501989564479665194383029927905889741077771926024110395851256585755651994808790600855401764665599975897930880400750568126679286022140026161622913180945915178368333014455570638799077194493311162336698507796426727133241849215591179129798429941730552558338354296760121633064611470233985016169828150750959630210982239065492816307181242930083205654262152730522999882573143249007869007036444396235963745735761915808376288489378847915139908116206567297082212316853789363041560535938920704769512995065950439144282678023872758319689095754588031341251367281127395794073670510389989770450608210673402280921503197693002236444796691660854263883787455422200215504700437199394119161489005488191943680279296605607504455120256821740688381961120172061748219021141609981614257655206254715601442277348339189347021523359996983360851315165216984362075621619272972370177107339733688673372592053469714020033216176392470461965990226194516379052337438246288474489493447357066788487951215647556981437046703344433244338486486400781868459761337678877410694298648481414201642568508966305206994637490861918817496340104443367464176681160628654267502444053137701425148901231471751862552645478082214628410852826558140457650433385997310138394421877893658100373608928634254883745951786534847869742569665597677406765513975200082427842272664650211889696859689960718562994723352787461262211276527070120585012564119631633473592973061180658229439248109807460390096815905668183133132145770320700874749504109772623717091976357083969070990468584826183749718619993226349691143039459919088153832415492253226447635316538367702616218937946227970428793566759518687245970597809453472629796650443824399120675249107528994274125501814597591828033580897624135035027508978449298865684154227026416907265255544667772233415055631511834221107178421639618244445361122020644524256545139756868062072466159584056198898839612177222592338336793430629930354249625316216325782750415241626329790734415812950132111276091697205103044649161432402102358595658418869579635337133622246288442639253917838989982114433853216154543126596241186219124953540674998748888578767793111659935123848784827790795926332019544950536616118648686529246608611608254024694715528286402497627408026676380518528908008623203857794559481829196994498952636052476788112913229795070561201887890947551158188301925908196542150469417799553656433318930657389723738432412601138632523128594770452228494496951026077682450010892441132133198898450073037530151879609475095795778687455425875205101905716607750895399782995187273446405029098251073030652798589156934313554529537776147771849576720996052680934598791941867958963768455964633645598721681443634247605119280951737259864797352775620889142230825847474692709523835091209545247189113843448667232951079577836432532329217308619271840023480092986883533692796858747823521018922817586781409688689336174645428226530035235099986284448178414806552462065101789371020228764837086077241502164668645875220277288308943546866507531893939729557528998974799540371772204878910220503124255011622257184487634056914971619133763765133199261870887932303472747663949909425317609683470236684205791060798873176790272278346136868545875755238071769877227665853988784232962315623980743438005214509789989487832486258061333812192496397828494078526620719538430753442908400846067080355909241317503674908611083800429818315929993408708135806270299557595205709481781201066107465321952161928614971410201425991150189232543148462467321429616332490069602474416762797324663908352200456005866872246596536748399062873584407894361292857022074428385106110919296831639160168392451033296600602873750857514556890975862946245616521850330256810823582574066331615701517734861154130340735672260156186613312167632953373044033938478080419278527410091432137655640292337662204559811020085488674253745921521753739243005478470785605138169336419309261555729855562848713807025477707421118714298832033429204358651073643608170762080723919406568904867010636938630068585136762449818315556666012281765553989173021518219947349527985814671160517545266587298242357062385387408848911687775003175440228504028803424728870254135731651980695624241023497618505847198644967659828645941807950567808969492265955469658609978698827833033703839513154946513003665959061685079504206513503668885396913381495533328174826348298521395403584866719273095011291216413296183491361700030557124914099082533133709107496565249831448225273932741674240598990671360341219786890912395032585198218811800180701362867273730403103295076515504048230498371162091550779888523270892936510416229537836194285555566659510901344991818336216385471836367250032213108434495445877309837366433054817278657960954474235522022576809499284398175647151176928441798468607565424279152583769653509569570410238838317260555472044611850744014935511758835976635134257619696401214409696844970952215304610141425315776858375220095510953723165534869723281154990104111841747033446716635203317012079658711400881078537621133457850709488543605160670310988195995367162951540222738100324093815995891726921898050593775608047355088598229985401478544629902716001944702314490609630066699892957692381222422607615348783022725300085393359069021085387802323003668652544230557703042545225930844554720932816900191231203706935055025710836914962651556835680072586311331693166885371816270044690893500930549974085143939793050334150510899256955365863011459643708664826425860722775627139175947092328690765200886920109658761538986296418874955632839162192044183523663349005023122389400629437304205343946145060780839940549379873553986335275531627541206799217876608243612199915841655069328325105586618361939399581528357248954061780669159256721808146400225576256760575007321180800806105342266870484925047500121596427153134421581697941037114024871119716355815370381051899017683350680923970058051971584811400527250691990110119823445505300064814971196373510156147885900530428528055121636470443127600993137059624633716408872938325507894444098880854169861962748358371209627967422684632013158378491373516952949593786599748705641610061012422135023960957098332629293915235794822713032845860777242533839219197078676902011138110080192612733658528780748218657179104984005010327683270666579041148724123927276715522564015313227359409659823703630080135350876548062878164048973192279785729524510589325027990186674757895104961989661568947389582161624420514700008630010572884364804791523963160255156354325680917796172607223681293717585114492807601883241126747280139701918801473352024426945895381025218367537065661656261628139212142918299602348701720757979795073717264875789723628513175292253153754121526243005335712337554099156167783182721533542812218163959634067380799660069338365854860515792355131599870218298380914534812775433786210919940285112521127897218840506424833452877502682569843659806589542455229315871695146655538591179745010256247067536351586402134890232912450013399491741118293048592509353796995568562503627896867526964509762049260331126855268019025675992276165034798904887041919149170313257867112200774820635729662277936423732843948237712076194600839544496270159054229932862143727165970322183613385114050847314926776506040601977144073627064366052872219932047881032649706292696658280124181118496362963214281953316486619519749323005783431749376886669835001053067304453881173569170828016326427905392848048893660481747514636294939571903712471577830903658114385489652765883554322323226358783769563634593528760441215856066231187412650229744197269075032635225424255594412579140943892884755203264115969380308115177895184305217922304726350739526023685798443016722824171194642870816116061206720466398658742999931102167607181297204997273987510197714686217527076680969253103940786168291887314386896586311787536726564249275466340328940152490940070476141094785412273272400015155535931192877737240319811867196405181687437180099907484443835649820652643177927256840198429066690665708529999719025655416248030796824426349548391788878614634631915571642598807082409106511716872866772388597853484970539453417632260561328874879867895323391028392171997965727881533118661163030822633116360864285426375056138916027977374525355258048754729927631976928183802837990838313251837055264071797666554837874688515758133760178771542724028492738997911843069555551798663382716004150912554463848276755328391035042872152451349871989869433902734137446460512456207450694047045173544284131871246338037131370744104190194798283777062880966572997064396762396468702541025548802072357372941476297732987963450799248251765064992380845060012753312892685065987650742901360240472697302083077734917309004972902400425742529626589411041027704412593921408965452016069756129300156895459806797613394850158896016663156679841342323073256613281493082578260867190072389123484406066759651461630776373657901966340098854879455312766246625187441247472719719054195930151731171095890709645224143544313403825220857063705169692789053353225135455161728991122813117991349074552180013146706903939212718506446254467014687293872712339400909990676102151018811257831911224644497239542074611486823944085680124916830135779872150804072476544407778498006247452803346226106546353274039359858506877304640115027906040507180270490786135831614427472539844886594642925374592124671486157277308456579978232189921140792975669871574505606402661361462499345054297731462652213539185926777644164785877562601435617466458456935895781751750736556886722757176873695293505305607025328892236059717577426393233375690551390521877400796691077182393961914223791981086520655893905103118104549464942145743790530119585956452609330552730898844609024771356791574109863912259877828486977107685541327279142141101871560331102588224148180307794188944398260038264710553316820947418395929096702372004722302126821311810941178587777328857243322978463674992517540259869636241241435122974773132768272148079182151716837998565374948991127917863518960890873318146542503374071122416938376810875263491673320193241410407036560703316406451727590170893368867587427079771555444314913737967855891751407126268730263578157478902385964903721973848563436350264626692193090819296732244683127816263979408364882652717368424373822555310980113676003485330485345853183250884915096951346512609692011371195082255630074294605318613972314088864841272578184692739452102868576683775427695775766269188858149720916256162801962179313361357980025739225013317695422764511201338137273951918803375525327859996360412146040999726381481749207520379611713024444839882968487419756690819078590546903670353016215873186383623093121766344184220255361858924562407924417921998618221360453404072348163061628957651751032005572639156748849993008154586075520212971204060495871673635015601933711023355368061757567974646374063863178311102735245639897316880529493241053488427851284083733954947380969555834691206310447102576674933329547078121139898782028586916008516232326279844553588727589382045018288011717190745398704388993899547666398674324626559596450072700532617625148609925417709726701945187862122944271704986029638679604055344596583413407824938473915938821516565807358422730462283559136281772154825102172844133086115821953261993100333298330666433949705649186739348783968246419102544473292950214342643104064581187708896934739617735499736883775037105560928132534889385379504880434394526957611729641731061736265402217805390130795436280422767976878619276651118291680339775803041018278344914354124049419105335115254380920941119294445339090119256728513497953813886068683492401359633245387616179098132620587276036073014290397822455747353603058523179480694590996189756600961166810959819316970484953017005916558435788591352337346279051093926774027500855945383507602451514560024058935884558040356569440994888106587282382657012158114638469396168795874464891090727291212833380125316126720980972980541077019278610513120095496178749044872268194230753339609855920446214886894277172246090192243425470343437563704453897548083880048812989273627534999621224999670265242771620968082817167945487177261811824317268946374981731310386855382423449537594425410706004767679163756580103494786150404388126383595154859006574248396544564687781287534166100227693598422232466293737174782666063746182658900694559899108437985782351430717983443927951354690500279936108248647833725467569905602426802473667047653389621665746298535959962758499534002329510911768314251970127044388282924538281472169611555767435700989235874046890009108606916552602725388277983266795747897418703649479960422045642630211013277046372738462963774951193624759737894069516967837356731482338058131348129936296629776377945701828456315964602555599864091914655939378768237697363736320558797278732398962470148673982653363690956307841560500164040579049907555955761618585611667725384312065441639850110470450314670990222596422718771328409512877705664611284576150411134303014805928854907523336466478980978616535156755302626851653209792288405863034125758656831778978069892864532474474495760782285804553407954869298570751384926170377697042972809523662792689113697159912315285144442774946364511104167367751405607624435401966554014063658566874829552851852826905565739617889068203403225274495273818214353835120297551666006895632653220115260362685431195021995275664716330345667698648521535792243796241409096572736508819683610088700017461593865494600844615270990343178859523677531790894061611038558481950172976618367341673724614908067951128701508668387163441734947902310072239581747796602052127120770114346015719685910227947355319611125042371032208481713258406081219054308780796760710582771288693187378233565494004661494969633097360849745968722028276565415499868049238568870790582989147952780182435925806960700638975781273843809084271842595968880510254811129217622951211987503681589950209633980780300333858610954138736324551896489565890231826366552962983130825795759064409054407131688930091182443748634174056856304381190018218271319704055491811374392023983482489253171174276061243963916849034132843099709417268047868374426135284992624428439244544127552004595102716689311322250532382780369605470547084545062554371871916970590655920702473067749936256264075739621711815360137390596709022856867278572919542574585084138098136058592713937274997447185958880988099945062717540698660863100607268820166912517922556802688867284382924094946901559664003391104041303489337491315146256632573838239948336197339240947989225869294731827273388983340062191622036797036849291328104836349665939725179103102776175078112590840548072430712269977377293521015194646708308830439562691941780864844022432082920704269822384035517877490089650682865339878255716090597100839941705776175508237749156738511334744512285519498758542509122353914486874127975552257213616294381768017249157859883910394166794705707314495933393370212842404011110503862189947838399494568981990622105004149634286398708356168932432933146635327722049126515623190344916715090982861670101795751751531859948210357026467068309710981414660237923362569791840599537703409049894799650822330159898214098720501839636421469335628747360372619969241944470118413181754815872729525605614442607252902595894381772744636551502307522398292333140854456215921770705578850159046845279120631550087209876973645196931588651705566095328344876021621627209465173234558341304767563845829505145864471662120340912649122477676910364801531418855588983134354518471112046187343383008731230305674363915394561135663262433659982431638920090464929396755103954365928775626057762712447381862518058260856983012374380754937922297451928956117990824266440615763355972656992003940974652484028674609786349894586946050174785161765980544869252357606522694294757442309005475097154186373521441527566877795115497286796011718392579401456816585047441956326032907451686545750067586862705920576291721270283771833725569027336090145066743611956449970121804428502514979056362970776909705889173428394113354507722026085463748118951152691939134948092932382866334341058005204747451105520733357309913289614290338627553880638323248533016603558295612512261891048340778333986531474804268256385900105252914757317239484625536318639293491803149673921720605195502973410928282508636047755706302204078481212576771899815189623567996733361894497600766283177519228858264521357348574164105094537923949478979159248213796482707683780709787582026102225710176780722332202018331956292991225367864349618208228199054656334331467875650006513780316090963938201744041450826546293674921030269549547816648845992427104641048381620739593452198621297483248665157491236297516426460699277272885790346339637725623811284795374569820095012167446532043751246734875111262294169251441494056364091658618919613698815478729558103200002046318185821666720113653429902400100471468250225467435092233469952650472384334653380424133837162999005351190767286804460980537992602278760098207705148127343484097064162648044809916623394453284631013203890784587906952332469392788146943310956291465779498753312597943731765441084522485671451993177885996864699576804718947487914007489579206324624125765025908076110763736004528437067562752040124780022783537012901240930714802839153478106103772703297402126215042692781828194532936288556999815691969351456200029568553724912345015465505011933854802897798070618927285192153677064293317751468246224738150775447660094745196317469830852874034385894475271920946535894260496730918775803433188974485690443079692002061695179974336746266735183322830938795437676777979821069504431136112623045651438579588251953047186996649767450426058953115065043015309646360208341863522416604376555973715712074543830284214013657320717500257217795044901777829766732620094094480980998808134755834716749543296594262294887095615724295359796234133911148980833092773913875889401105885750666060583311589315762313396561050721054021888702444750750474720858997296037136698408037805516381689379000675092857939419807232799718762293800527533057641094714554917445238334409272428399988724783111908008766920405742535241452039600682963774814672382122897301806790144722867588659187608426752342440609106049776541655466860357736698399726995762771540475804723394441482720815400003048002371208696613678087929344331435456659359545238057551959360224815280697559814613250471570676512081489570454697585137554254186841619930245328707288312000815685685106029303068680455704674115511975155939098267326737254530176762740599550985376870192075721385217136712551212351377877266568021998741989641146260557342785733790203736178380600966026854577647483957138188655421399257195522412779830563713351410992483600503669026860659823927114778956716613603277915228571182890503731810240595613015599254466263219360560753920642112220859290030791134901368665532713330913296326609637758107026915531429823181477615788012427538746543277310767123551288478208809858511145130804476404609166976530770596336001826874142036071675034286121188404896267970070750714680061586523655243062890462074021505775686690039609764079031916481567977235640236587092933240019174070262992208237529699919278985336418433642736030357225240413401468612810748535174627516949689389416692574533492188874213940326844936646877442448908628958308734206415424802928109570575919606443958993782192872851833425930376868448568875383822144674809897298399512362166046062427900017463174444420809039194192717617426224612984324687714279763601009665625240743921859339630215403360647536608880952228190645886872169153868859562197665941459675311391991221899803275152106412521827170155743006327115746075596485501379101341988817778587501285192959051848482040347691484632918730293544618478949918970698441297029070574253007057567254659986907472842850134942962880632597894565034146972673600507665134188623163381439601426537581989649375000823248729956978129961372999529107025445572440832954582476892113893472006080205247745709390711173173009763123565059889906336051982717761652720573899064255076403016145888553770992077472001952848396021957029581203682951058293697985877652347907759677090998050562857902966265881817821048632824299671552263359946085369773686587510134161032480738272095844373106647544642728579391153856241569415613568202739637737688502825089736623544306884665204303344001648622888170670380426892421096933771360809866427751605955637718923337299677630662029268052922846792095284776537916860069599271159594146847107522102784313908975528070668112796239653797255883938459390002639593815479587982195696838748596040876567105692743766988785030089820154127617706511013639732148955192307303488224841886139173644978693676409949878358296791386577845639753395371166559939176060883966876371801064649772667953970182121641045089847011340972587289813825681488489770700346566202278587051982552687286689371113760885009689311483255096329120878830336789143975495933480980788360377731836238932866360587442176768325165753116768100812813368830527818038905710221798051443965017742141333215630245758363315271086443913457182269815149406340627256658773119464021242224607764629456328287944868888242720382382885140422184793502662058113871510695849411693849382993615298564247649543224610055360252362914182283448825660961245800660878738470252797060851352450037958805799784106758992070662808639601709437156893513463153228851107359318366127998239218635339671084710281302968678451389952593011258895420980867132988391861913007837768666848287862593030073083177484247482876190784889109028321616918709658884637435537230249055283552831883713203172833557422841615364153483738822006667302433575462150161560522684758923215019618172306740921378357867016359135842337603316424715131012631991939079734377409299233918716992951534662963365587078607127676197983086190027331980508481724556025632159143286424233914082791762817765641835614235523700625373141892951536327974243857756204869411636422947556566366298156884347398657720934376567085800737066318232070088631022542055164550973293602797791387441127290543985398862580990026256222540546955227910141767617590123713507878352294690277511141482767658974799918240963856374716790449447728475752947939069963162345962691226752541536871290075853077086444508902674872701326351322834998301112092123925007066663784736353028778849903280643727735136995376728285229432675930412118604251130710662453370768420635673745549495119981173399827224004742153325603552923855881292762557096222808347299087013422061535793260620583086162480366250160380800620610049965910715902352472478778975485543266658460859537404096418504038082713148339436777292768396957337104672406043647719699713121842595144380286741975560232230057282152267076848152028890443328360015763386596298086098865713205158332710300537660867794507742737865925313077660574032152035850598617374543249042371267439039204462191896587182282350298491332521494398004998934334765247808988859705906588525881961610945363767980117505407653955746740925988388849831949812729818025536324222737553633477953635269109307417402680691227418561810985943062599454720285141686829816491779422731882234460193709465359632673749286521391406294861503775174195130431446718343986382383585923710296107276368711668516998105192206347985756418451438001505013231071377706843046226892748128900915703100999065120825089988963108847547313017819587576263144012490127825480208097078879958652482207549289446422396316255084395508028067414494648123038951538347027736629172244156205030280333313591664716590122495219561943062102073191307904235210645297281007823601360369777975783302499687540596144562244389750676997237145095419945523454290854888617151182068800487359782789415685826549047853720204000779093358240076035235781736112572029029314129384480606128010412121988885729665902759697313139339960557462465649753590870941613024796808764846776595537465933590925487012040840260389844887810521993128791234135122808063201570533319615540300631899838339274986328141301665485769431914764532175022625180215310008415575572732448513083618955565400951966210607580525098890454680463694324075398783548084222713316234980406953675069158889102481563491705741340974378630562415831816379341431736935860218548664679014186819722621304089927499431856691100252345936954591109416657134024963839921310681358084078416688383151208845453589980624077548472716277043135414935584758401840302656420739441832561260678849646778563146618437213917551889645426037333293378379480357897304112396877500356302172677937163968388982787374212518965717734051687211711877349890624733379237011738589635355014077833466205890411061274173783977159090847817736961901242625297116868732498597421940758687091453817347349553505210662145758556188656166519501496980469456771555490150964098280194211571060960153705845026255439121155981431153215054940512924369712291211496137730749705106590901684893834687012247832301233840038368592192249014985487830148022065393107226301195495033058042797662457868154888897339765482321907498350947945465664081189854695166633502516417742641790462020254490894843831576928543208448857053051325334418696271389475344996483131086499378669924905813945401677469632484950423942453237853664077971086612837075950710193419551429166851539935209416691695233343383788300590071239494305814080135393542957960948406178835392482687445060634697273945557076640654477575751133601912910092640090536089963176543041618902155146420759788108074647894125513990339034838994199047321612210624227001731142622312431430046839914879956449810086629599022679015707173675546762113582809221953773954544589097639881122405458509152739035164990145147101806160774038573853468511730978179778899855368417911832546666441744328132712414142542230583509659377469422062291274257743739061736904103463350104983740365166788790426413283141728939757071183414012423435948708785297507335817432684246038205165664350199943929733371192256874427039125632514411147182260427806763964934668471184490417590451468399568208072235307429553084271676459950192829469462639768735049375470200933430918866791307844310797579488794345921972588714011821819772016640717815821894185499933598148454224569891253344733012171713826800451577310586875986444530868424946739320385204479578529471548259841984672314819379597468697503747737779955733561436070388396184747824840526754201115800272417195713952418584913557182423096206530064707517960337221242101654450635271699704867774348543657946428055780446951541288365378651826696325591360726312909817688207676247924123336613208505137536637922399947724595025882325325740480483613757137905896144247603189691686798814205372123053654252214248868105576058131471497931416723653671081649696669500845341030240962288512094395671218830907971428868440314946451503250563263692538603525925920787669543080149128361017648055270791473459834637723964754567644327845030896317726174834419287011534467284405126070392092454909648754606430275935101689350153059087156849518104400327345516065413217578257558983577749185078257638967296835936946726722658321823432166503837431691145659270915296265166562789280805768918569132838131451280887131987513066359019671642617834366045153887901774542869400074698421001982927125761998991481175319062571082743060701647709548585787578088077206368133302037790130646188648444416920849629584358442097032250359279831685553214019546768798692885525460815571621715829177157999488090466184524703129085160973217227396314546224000981040561956280775081050391857822129288963281842076444777140821738596692373283973637714498851220673923731241267249213272099946585498159205212295120783368773178167369546128449707240839748843423628004449549691960038698648881713736226667712347176094327316911710479138918631981679412727682154438771684929161689153072265994078320551187783927622234524776967945234986948220869002230213119656672676315282740550342467014218583030620170494121478232991011005134314366837248896363234066280782065669316182308505766528273073650535313981656827998910991080077429318197651149676984861478415446411866208774242326829275632181136017406198926105915048802567380978522388188275903325307844761900819846493768050587646627935130920848494241104827012849969480440817048367024613449984252939544286711906796561595878786121968348691890307008299625836280558210128150204146686614560517043729026159274601916330095851151167644077338992216963157815018174585161250438616524490509362315466374333887371511824650129923299644292105230374960194454641708145268444456125453895465723082355920499207691982870315739448501360806810060850562283247948938949347368279024535608611948144983939370202276557138057452052292967365522974421157106851382820353635011125632007594917649778176679171950262878058339686493963815739650743026638037583889826156958646283805448399161791141868099155438186038731766821564665529279660958505778965410224564545106273527694126916168597488738557790581774697853718870584603263433164889128948090201548550491415998551196067702339540706697546617049450183507805569041280391800272950884967818338413413663518350576050102079500512934269681884445152360178674435345442464276651068415929017950710142275047080791701929717628291907302763467495534247903752092315513588974444890371790145864434089792273775461146239504371476631539312022459709210849774876052566611766596107742519971440419103176440320445220280084389979079921820607097095085859686568494048875132257726051225671263824908212299590744607133903284214670221645694451811902975975034219966400773319193194319935839223973427108239427684808326671534698094148299808225844203812890814048787824895678273551162488268411827215499304994595450623521918712341320017434957211017088882929832134328119999455404401730308037896646740283453025157343894810264104359518293009178671787583454760332762777226972409152041476229343689067358650501681488464690193208254620719499570827159269108994621782450489271428943394093814028367374321395383294812627431006588891385405870069223627839138253587687081761053678533339558407461018117719116197090749220640192161004648283153335718674690191687629771271113731465894727665277297911150012835957599878867027074435788200167058287529223160674035956912819807749600353428907991715133752038989390801490044993001500505250430147318857812851352526676749871507644972691104293714017639625124377943668058344911623433010362481990715763605495528977416473628858727468560322849294837816645824092192851604945889725894811796313652042043921546300775111367129895158531443640314171591655984656508225772477275618243624190157773969164053593718086286118917101779273127296695763154519038208167617268202157071568995092337691248231179002715751784610304273885223510329835456410520582996399512218764220274282473764795880892911849984387428870733374683839886277664600336548625245346970033132592985065447642339252495792455388017606731310443484428683960102266594577171734980881819225166454073399664334119819171367764028599116397989339983756587684776967023866410794841167992655861694859181165283135912867265778426178907161271012053960757796203194980921867204260114462725321056461998362339168283494307077778342705483682469213090543201467842233501310935966054267724717614033295114681869624197503771904743663210218890604505280324970075945582509504425430879863562696715314830860777367401472058970634534921559843573869996927157827129640475246181156869403417448054138655354167510656812089173807224904934283067350641834276939095038216542944857502558298095547512217579986256175246249089062375877770961834008365149953237032874839311725620393440593315038327422002719561911605856786911974085936390725856710256490396584646800219127320094090889920742992368444593654907782977211303949908038044738325216683628946631873701651597419338875546112287828759858918355184788487852181663659488377247395613122326279500929548976937584689689974462133694737705628097934428505366774831305235050022869711646223834002177554608969142893628414698518062254004715222460033335136088375281397530020638442979700193280683759056840341830336411489425386638509958326858196846160375466183820663129262553284472673195149284646876468296318142669955311052186924464378624188646786475120218806234365525556727495571958469688095032036548701876875964901778365304311068500756923589435042745457772366861515804967266925078970362438871868116190608901154949935456078958926058061558412384101330573807885754773776544707508762945163055201448153037315773113440453557354755956902195415322883194296561402194649251757702847964618841817884883189565065835107071214313832552201343088905506342400364731124334969232345380947293466474423202301281069633354440096732815838681242638441143519662427971464998321355288417280774777371516353702372092603510299109842749984125600539343806372341058991236315831283077293067108807149352208949026269399936672005708207624068756197215642449407691375466438555510580305760762428959440811430960843881291403383524638089633888381472059989204014125394351267309320741217898946891234845576519212877658724300487484972465636808540254672759776033365294101321872889425232175947968067495096272461635604068996663465624076970995236974919226122829473507084681660931369829610303773945226910993414185995889607188717923149734896547530402735444972375863308818439552931426227094751004320011047935965425637938234381872175149736371109423606748330702702554516870115276717245074833661363680278548340791200760995837141154953413138052709737453466310656768259352534279441557719376314005081208870917679357410257351658830351868324444340304392624711678282127080298232431484214560464699614897081297532895445990229954628498538676905486601509874189806330637853377289122777023340458013427581811449192476305986516884113412884049008288925401867218866145987038271090721557871518649873707998045804046538081358084283857307462656008136883179323945807118755253140481425073348183433165909343800193201586487849348863421258473904476062061005764342892971631471649194683493073982077208826511924656691693128355911960823044556967390537547889900702467209956268304840222423322408528865122399731525999475357497099992250865221420001869266628253795915582695210683273108341411554263412942852770690135050130405119906116259093664988205444607556641125745621642691157629835426333208396306890766405654176635110165699288363419721770392478965120908486469930817855309546949152303544080585007834104773990938400700569610348054863712997954417458570205292187938722060147338820563420875906910739858511042276832863187453875707601209312109763391208003868387976124049492002718548454020957378706117952421984481202566171711155067983102765199845964459393621547060764342796390073587403044738954803108051879761731792488561318273164687399326173400646981197363776591839671380204862295997328417863667795943987330479575288268192922357137588401381758287517568029465488207893178131414887483498469362164221060583268812088781329294299053930949191612397671878350977011028426393292045969312584643993375892300474722534664705314449818527234334167238281260562890642710132976551358887399645993803660385590908951382098830285056161978322353164583191991274022972059307333581503773030360847845929454758860616348771492269302395251386103721537492724025790092247522163043234253155667274242928470128058290969748116550047327142900033387539230982127896555428910151793429961349619878920288010398030956735153637548382009603432102100831575732327852602718676372124270508679888608284668984608051291459320364405869301835926277864968013394823967476956242661597605317847882996421598281349846764757598370046583658593356538720567790516146025250147486771998560179384578262966858747142812979358446974666573734403708434826433529235320367408456703406782311302835688129741611912065941840175403300942150431508440682639704945505579580829216975809386045227167756391004273090958893574917112520316220738065212493600410607857052282235428553175889851401719156337263539492521399966327103201320960760268490406858548168888784217275027769255572032261173486504900979959310406103219280060804827076804641930670330939372277067773248374225319909694924325377398491983676726223728834152780333741494238851836641217713314021082089877982145075789165922555904078390708068230482343017852637814079558237117203185650652079828076317666185163645569527352130898707426384186874810397710127837797885206518224855697765198012335408862749856444587300677646159530123767154137649961082972539818174263401834582444831304217246913469363003194430954494008716161981979162755166512933225429478800627089733010414894865009544706681870733634900719381702727385117861159111018915586246871675161377091117508563195134137989843404164566606453970007261578395594455840677944528113250798600300776714757550418485981648599314881232262136520167072250607957537549901335298956542591302902039151951125095809060376137046198504888899214734512900572947094182507372712461949507148277990345349772725882271124937711249402034571079846861227142534046111434243684287820022166755321716430111255287609363413353012826533333409063501692150343356875554673644847130262121060473127744406904669006704351429968192329778105880238125896752171887256889490694370490575419844762293680319795277889325199982273288038903073184881074015286065088521888765671183918417760109219126366591636430455815027131874618192444186333046269749016777403925375656285802651111087142331219550475214421030757748057114778427706868827130585660228452075260965002295419470675018210578828431441209573639296700469302908768605177006250901137336119742126589372420390519864769952834241247223776003760760417369360778273373185060916078591902553460530750851334941392526695994322027211647371404946842636427573236161189508158997481822465873397248929064819412034637068493896523160338613124871645455019460259479426678014549762705394539586379230831594518933283470602313360784522664676777618180496446647378566015184369371170586767623958119277971404681688501621595706924708007350283563437307240231688347307493814291041757264593424079495135713448932961861155401786665755404718434081920559020343796656605307878457671471832351085189973916734257157750281336121784745755975527390645652947298693053071081102513608899624360748589804464309835950977985129164870923266994355185512416399903364033648570766578450172057083166748044309743340718013441495442486561053000455295860337648064162145682297460562569682749559171548056199465709987690589040042905420605853570591457682113884483088340835914186462524263361020223480886592170949188781056763263800948612032807948739043509574724611229007298477170959163236095989909450452281137506691678001070092074799314747570017946730245893770594948817001768196931575269468904413089909044454337117093203579790437805059177926039029987983212921929865974326078982212980532221669472662791359861114627283800107381450753850293725855795567709536920861564619907228800859848611262036222233202628372406368175801650590549827744353480662268911603785904873200402489507177979038474563530504584401736521363397532525690581527497038597437042375933111313975383058160734185998926949404821362954848688241859399149229371751624416336272767289351680433194890565252818498470295462353471367986815601431458098070212163754068484823871503407107612111138324865978445384556034550023558613471000330498043161409759847498178631023884965492176949142838046317082047255248638530221193477539826676317570313021772101845539817043076962925081423552661354267296344514348908405154280782629202609577036650089174319638269410440891472134670073323782825419742896253697131736480499459696589006901418965552218196365762023690126717205794235842351009202466450224392480414266298923701925226367263789713327003125134527010790193708219034608446269433660130088826712461357166099191230000102622004777436382851877847334477261126181445804397969787596252024567930318206377465090505024072890976823354361265311115743978896105532342622303793761365133986672767708540592155514080502449388998035618330516929187032448894512469545653673317160009089538672552099968079953679461615769366778092255060911051776362428392785745311617021182626985827985363766822757129856314801276866981902826405361567945854658066747361449883719017508835111972498061130143489278978699075753388930453547178888801381947305571662581585122871440658085203622464476919404227198579705242959100400156747848025599780880179699737553491820305046987838539880873392601533369754794173999912777135412266943940355998379960715648516534197398240031807088518147938457672458560027544219104667073098090592167650548415049041601104116609105252448222879132842644511222457179162801149243170793426137753055112931850758398645899841950091600712115438888415181515987749655788178502403172583884404206198119229903929442598951097086813438332322135142572218036736435716330181318868123704271896801523468503179381524704841232716567727783415169617813746017486812075642087664208715610510586465807275969579207944341172695241383449324718528169976505151781647682540683887005267888126363992562314504191839695707104039861260628918140288118793302185292446282915072892501748080407266830775508392858537506301152064182060384219095184550489454243791387926856743263163603019706373433599711506058071943826204062958692130743883704072458263042771438175430262015391371924729192293425561813366568396324140412271154103046821099617523201685382656332272249156444507331609989559769592363536557001423793017217579517573166654867964653790834519736315303152033559003328139295236745046766343625452012453595987059314692445754324441642065207060953960684413267681726681252164998047108254194973306962683157233745544521095116359816376039745677961195024002323829369457130791076623339782969881109216746419953645578028070829119127843202096127559429760429195720202958571212212330451666867206405103360659037395921030082349463689221509979797105450949150101642690435948239958267136325272251303744047302995173014107515047726959674826036742244683743582242364190217993943991556904514303807819058802098810394821668000419946570543747326435651992610233630808310834233073575849354604724137770546039247259809315563794652106334836469548391343808217739895399896264692328171221338721315937218993315154353129934408273019222192389247304172240634364041987424020223993592464926684407711307360262151824368789084965016111939266259100153063777881364870810032935677979345566981920885447662380450571588852082518041415509638919076178772809711634242188390410461607333356691383811638892347423569401173292454427891016951148443835298421862284043306373369723605789409765161538916562349459834764778988330728525266849290370827089834208352448596321304004389549922425971166989811370843550926827681368471365328695262002250307886845980964181295669771202840433832535686628796483099194753684020086342167661489746677621297571821598619024652067169925344273564951635783429683947241011912920405281670753632916885819111522901582070840738966533125276573316754118789392791649432878387691669960866110162754691735313576160339571145521165979688548802776069490530755656976978372562192300532742588619749114194150413496613093756531489606992531814849394409099470688091381539745103621141240556684593473601290367665211119176864625446616255638238361593462747435486705349134775851745733839705171182091808675114236482120907442260687105572129017320267474096469867697295473463307425931055877735621624300868757920658353478108479414101686775343179183127317228338443091766611516963284002685595355051429683553325025332362394000285137043708804129214855990146880094759243219172690283085021352408243412564703032004199354524821978952176391001656459930408850830484844004013106351605985184778709882568767679803389299591878554565043297163689671988884919529012402368777935248593660689798560925745260376253329842955961727591262202727128482618854051382275008169121788800575179033204691683488479777758393271612721620593835122605704697792406342876437025440760167659706927614417168707322161350857596224727552023591012162097083684190071627539353193063654031437261188269509063767987113222951179380276444302809759325213649261217660412379404684806309005598334763545551400069340308266623583728389118436990390803518446800267911551869301376374100635705309175077198055923367298241158767590667577440610911570824804329657327493216655366064004011142929084898214968184181264204549839709926013619065307585078881171545344189695736252691383714798456425241447184374895993378028977780175693382087217363983302851437854814065137061520193969324347718827658181276376984848942179045504682655456514426604921720303551730038977069566454764134911769431859998601736692214288163681649764476641270580356710610865922135487053597448848644044799053439955538017575750980096120863265310224572720569925434075126203488462847459520898109596391493545514186393778194721564938086826766156568731367803355682542249473078574224567492657315713483195587741729096892720584538623849510358105937515790339381000008252010819599532046835165988554464218267393199876470750153614032257494704305177548973182115276923268151370983981868645562827080845120472446305017715138707147406700997027827340189247069364305039824220889678446100783646586613102762622841101709453497056133610917996017339687678204729138188650223490693917413488459166775164397433177341830027674082203447246141897657422093734527119108026042959514117332017367669553806491701947300201430708056415986451588047245468220997095033957051702813016004466501415278864776133278951251924088257284683884639111100285491903978067137994138454160641431954283548028424263212443915974165194894981637884979092779921262002767335757938642142410583086732496616688567210866841744853419679262530930074516110680210823177032613072928467809105624867740558388014581059923697474326572251482302557789965749230441820489304327535166963367876051239915899366542569129333346025355534907935743030487809481646613407413621404788536832779404884760361640335118760276840217369886550651247733288376616864053118894919946913432450120440338434142122435419255662153660775148222022896600355558463778596888940650865781071314609703501386172952437694476648847248880498277685446546341223192180762754012317759691642379888173975605637720080595570425898067494473231211012380435853404143376400875179010041999112648951051451456062588001168079595655384135293880554095763510506529301569057836380619455082352916540478986010622732703306937433542318986182527545493608955395649613521629496644461115232252919136825179897742179558205732844978622566297311485338357733605845099285127700866717134425709646616107281191577680589303665868491912515071993222997672238144625724180365810483560938575975631037479569521679738408362032085942841839654669889702603219621299907079194712652110855673408464435466072540702986602705321029277078452417092490199966583951486983913800812780481013966835667592733115321434993960259071646594507010003209406987272391454403265819060292914573758456713964703481478295399297813992006253096498924446644389154572546624263189914800049723515685581298924410354021769641102237186194276755785602960423671184535718649351019181279335419453352028522291770606598939936958629975076507551825095705405201861630693541706482661761936330627164415309850975680639928985679078085938912385573445059362528192568491630948533669800984363634845033439103038471919391336571881478815382217378324973029726172853049489701698181767167749162837467717128977465345193244959782624651807477668326328873717674704873272935874899876076657920429090991852550000828657655136248915514908745610747919188074190379884598169014449880689527525603274013573841120963169957408438164189559156870246752872470967014912323966804728636183256464995270116440132468091518856417396391278993572942986233181309581441269812044862291311116216712798591647762671019679587067686962830504537587766849167783261308925313463679297291616252051686649096283818689099889063425888040841452595970962268118164082786165197911826006257265643814318803921846453845601665370063926023701611358349804843475732432430095484059401131843165123535855273130145774304586361311831088233540276469626788112963820283134142330380428420967322563002992303911306526562058487936581614943484970992838859592523666035588937335078715784178924156770196461331082554776171609637441609793152791186541306064986619263183823231130167058784305319541840328309460698034653506437106307870911954689882248061681805279031154611958454873639451011962958746628957729775539091776195998650693268532952222028266071632214016834551771266318036562497039680268359203905321964704781614877761449035608176920348225185269115495419194027601535249521693626425407868930484657886068528806450359467387410983846581859768920652666984861158828470196576724665260172982659871447227638580217538105628862086577084685591791548867346985229207570108657374475100321370540667492717476567975825358329618073409741454771425541803642196760743315216847180803704988985157101892615228742238861876903400624956436423875793052175459302503665336094177928702954638958492588122278714319361861068828376708121074531205307462881348392637889282639898757885857501136955605697112968188302449331272891086906125156196726645998933281499968133887728308367546247982341841902820581250181553260597713797142154004666355197547055195780759920738069889472785454877739138816775993494513934304960372363585260221506294815496846229056901048705236393261056748745913685737864169589636585202538653964221673541206109382358187328423867658267087267498833993575588706203971073689916171763664049494652549262847342653604881109845327754465040200729098138555065656358673505802163470083274380208166685606642000328990933681333766909728321567359202235811233331982098707715840614372104754390064583948931446616041701113103598791007322553754336680059110202311589355460660217205406848852617538192481429987815525487839555496718059611437364525625797026259086584084431971561199954996564908786877480403151992941478771955521033984332770457015194261209287284660519947619123827032328394903246880965885758379113234576292912042774664791102418542734961712419291081993809991032982575889061058756935197531463689944897363479155668509079588589512328363418408542121107679908458790764168087992600428925890001630290178938332430967707518053261648216500715464199414927092826547850497035293396862864853841693953758065901948164918349861037704263603975165310858805604297270812046638829304110920191930754891198101807722615723250662277589376840773739397418813225784661138082064151935026801125002811991895958476059698591418798836306209826225921117653072523487397048466063461631981089972401675599943367578271772739123258795804533164910772863219077141097452884415909610358689311957059245114675382556709776434369455121061105242893700306623751357306141364896587340237227829475957877377057102286555843900965581954864086808881049911967370447614153142467977440630705116957854706214077453350640403672707021962823720218007569510532639500887424351332357492233495514361569252858561679823968609120868938719443473125923299943874242346320426644697354870195283144585963874107178132307003735406659995197585329135576627787922522318638995236296283582343220304196788243346350864140462582134824471122023778562935972836125578139884296247210402536910116766652722942610254765126188103346901742194803216920304153070796709362427741735034551194340157982182682143074568176785769825549466210853271997797393797295911328147086211902093167348625984800453096962914153036808605586447787604153310622138647846980975321558145609797182717692775787256425850325726603839962388211021925412609987450169100204211063505517488375980658530589964201887795192420903366650595646975532518647725674191343846528673179917348510188399233043284550530278527902316939783839408195273017717383389347327441603672798700283110158065949701970294421840059697420027802746466141043723751820614166581036616713808924693906319440906348617355827738308694175763774727227389802684873295931416106567073867669464724404780473817769132644109574326729440684236431917843280053775074382439178724488138380107481724474654397984253695786830382613043214864535545712968965932085457684388063439798854849146010159547553727096100720557416865239143297081679735377076035190239161596523899621388088217133064952827199340826853563522738051602461124820514703158992731501529932374196581564776357481158801384412875437266659121034730959863289065815061457910251689376301657155038138469210831584406922033841949015435941660197364226828134678590892503477755678268657853746100664650523377419028683250951035897785183811421500495051461113652946880893765466755595580223055269545627920134961820251896601357897610840556718823383504881273141034723215778634396079338099771135384276607716102377079443099365212205718157037685326907165939559742002723224422706257626857390828832792881536279927413845879526676820162138178899465121598354339594890482762149613239801324217810763641818710284024437776418221627848923066931133795530421908657080244246087460427110896761463924427480832670886988218687521017751958323702756625461310886980987405546808192377658254508858525259432502388448070398784419172589109934368719260391527923484016125804039916204241055703069919576857971725559582793754524292258441835805723957844860583733109750655249916112237833754839109522650854110173017809990701763333480179882370718464549813510146506073674480397968012743176842867639836367408941923400142861753310014771864420738784037529494213985299902829145290723998826429828068692844009135719166481225975890266596555791344203018167870510780563908536201709499643324600792723837048268542074063410457509940555759273541530660909416431149529502329720746131139702585384595490282906900693668761084343195896323673171190272720847139058981377161176856692700642744775818797719193577029370266267360059399658749655764790583885653013717199997398233457947507054724496327820396489377618408119851371886083973006124476698313346184221929744914616127469643491654119485016712712347897589469859606856916059527540283414017423475350053465122314776626487758742189633431480997641785098684334065074342644337446373580236913299988491340782801983110283207201353868646813091334054300103006240671639178843523621067599349778109391407857116465325699162291454464581449432174559122825970685323528879182106061371741553837495855481840461955358900589264707017393095143192207021300458170870431578067362723865933522820541321689410950833002435024088921918728469537272815605440510319548162278140176411384320247997029940369769325109542522810156785607234959018602243602336711136895889340892619080759999500189360236030407031445002747277792159402364799823906144686873520764030894359458071123063216927021276941451201686574257381990943373939721389299347454585421930731972572679288890202554015538996140982567449831932262619148545509073934357436430449088139441523451095198057169557850046223521017254530509822395765107551009548714059912209218758117978238104535240983810086575971112058930499784032410169825553798209055958320661690101180058285011702324334049591652138475966145977174370163274954106721393777197074190451615081339002420489114034104003844475661566197435686514825322472072361756331390796242013056953798220490038594914875280802477660994946969348005152374126231625100262751685307230341674967077627685165647011114153540910649757576258939735301192494028927568838923535897075839388678758539218792220565607485671319345297063798605678338611234910487407246997812989661826995037197345534543102281956979864955028676313814259573850087007452065853910418898696242106459970856242140607538432249815864693357835945979802310056977707261466252613748602418301576144376451503619992578539623411912288875429600614824525601815316894885626973208351898050281244065575807654837689208875580387553547412204437568271809838678889796821317376249631939231990754996301096300691540041089001907518635751530183329992831245245918746405895487337878791247905116814600941424234052052381453410956582403293182678656548354047396996981760777261787911447480294732483566205949841665023745404813161357488292831453226379733326011027783883916849954647483179947678372703488410215199009148088210275897418374159913337096312573427866541389291203249443434454396875445689661936180059118520697258793760142675248963076923792497359971778637924685672395882313843685831040080957773739214547254552848397188410551736928915037223857086967815161207627819001813139723654943121801978224878310106852993748001876157892663351435840893091466191010815953354637339853479426786296932495964944324932988997413650067249003799945038197134125675879977634425337720412127669636632528063638071864567601860353222437874167049952184542510301401296946749541776526328601418300630553771251020446398244985295086739776686845109546477608468088463105268691664553422819488588958571838439196683092214702536272598639901260282845537436877341622664144540179957947738282317807539143557118565658054098786700766009636967614442748373610239456642352457052292371659082980536256259265008861648081793707305395991109600860895513641478261890412209065305328224625941346775060169770777135442522112343763653082538830752425628780087530828372203465448056247504338493962943130088586543917979341109795235717202574274541914967441876939013608790007996174912281606768313248832356766931844670296819605553261682266829084385964502839008675031723385035461361235402682638311236165752986647716704649645390710302291594585274840353972114191808549104413356642454043611967615344666927034938464542181393979976383850216403975293021761909057174102079282979375710370348634384165423224267214667616550539626037442019060082817788863345370765301454947958431490159412923051654644168260572133780213256696036196207574260515611348928993822682319191041454141819754954482340884530424156402159704388995757301334718811792265935636826659297478298669795408467412269473011259509801975543355277918863889589036778787262406246884277549539172155457364596339210970538841558977884004795961221611754105821445644061401067225897784918728476613173966962533252855737486324164626773739518556431615600105856603903489838384494019080621789375417622862517917950716505130219870290054819613381163093427178619214206235140080646850224931504462272769158935108603074143572953197073428633869407727433307308996674018522818542959985510682023425926751187453908116033419108320446351909904023054084937248864849504609527573469154634198972313260858322561462057193132116383505202181245806596536209083925053107663959201379188955104796736194554848609002624719491260486283862429205621186367929469663331582962520360308870762286618926103690582168358520697791293468876975494579866167027921913427183342530269112738339371955166898191814697822192690773823787264013033343868065792009930455826986476707604003622556773748471963868954676360651189745487942201004492747722494240284158452096797045916395277619817170832169439765313897946053523983637592288078090563679977425661816605068543186889861828593785591355183010321125766616030249452709480510743623808817982187581233505811213394066603260453329476733144982267585782540971918949801849011817990547501676233379884352206654131916172991138411419430184856849013415989831755938106696819776626566421567844869488083450114978744365134663641812080364291257505032013364301821397744732562149597852453133072124382460757985629260075887767300811425833823325364542887822243945016740496623964261113651186464691659366018175465668792983797339415377279865727473956281333554910427445198262196454658817263620199871432824028369180396000406720241618275902847675954246711829581140376999736281830253842945903831788834039810967490181976254981885827865522110178214450546220599945684765295109954429201941698459800085937098088116429166169159885442641176422329140249281486762414596321506060038772291446380332476005077125802812635329360684830807476305256219724681891849370257955655396672007520389216013573248984281702946501649833636153367906687299395672567655097934831752406957524590718762998278228001203272381528736636604772102905866876383420893628809802863511722097356250472564787492770138909293900608508854689891422697017620108952195885390083336420619532935476401009179697579765374902366593318237956103264964465988618301868800087587792081566742393459582254404710436328512042317165621104911280458236259603738752255543001697685555502904451331452821869677319362817971181939367893334210188162505843403765920389968566519304959578437429023045950330662276170601673705357558283385386591884113569557698699494057472130906282995248509668162557252261474252782634033064585621863615766158599558396385015493657555456126087294557659643236276217962750809554010587259360682120505978687510409790174815004466834762449635248271105879028330642568199521137221734142190795571784740874352428290650605723674661863813314381481452840777823351162886687097482507850201657527823414391750602571184584138629171000491229809115671259499985708993496441019988858733460824105127290265597722824225373064534713062830941798586428466027992380329038872308113266799417788626772685761908542074798711189768644576538198162112415914068524071683140341841087605179090085853379829351419154738436357332124148838323939477191557552597900766190667239231638144306160580825687931487144045471064899018897084079802164746358726981978209748195354513034175142618110783683758696243319785047781257115038696703699101550572938644432052058062783634140677380721374643169890875292343602773178050504631040761704403578947040093124440491804586711867062574584495989807715085362787806861052857425706634433149952362259873721651244930595868720683643685785900060207394422588173820759226401414582051700292017559136589867269410186112249592817780043290491264631911975270357130409785959220421331655867669994282890332905768995744296560332387375090200083398887180172861097909629343101039298641071645409171568989895703678336772195883002626001791608999574498623754380685039289179887940296649817830107384882043038873169094691634721606564004904574530309532104998609493440988030929357492681495826113366073130272505453892173452132425676764962826803681395868175647261831791346211936131170730363536003480006332134055274469629644089786812933980038388155897950710619729461820139333735169199669520401268588338062347199939831431996123419955625291793359710704004623534122203652708051437792838667571042425191494813216208860395513057908761796424475014708449808322063149438375517986632670137691704351894242147762755466726447916036947426339065471211612092692505175149823503416118178886491612627557239211156854936347953621965367238909414143511628091902634467475641237825758735581660333261300971681913547316813442554125829593954287884263985742034408096900828070939471890674133274591734459187423089663382317039108817729562190506498007764514256443566344129195208683499697272415392588816233112511714284895460780976842385875934301712932805388987508421174854860542104141197538397087868420087351381837902483242218421115129424865028577265964007121375197484433040093006590100127453473029910220368452347262939480294065200183196468795009074154508090495567806522351998761104219583664200362277509041574892245365217924058207820626961954988556894846716446381337934229507123273651060828298612254671461869990134329530922445182692406788804870295235229187654190187286050419172252145737841198070824002074247009356806648492323428746268660715312333480193347907610501709762779408255774011775003125351291205069628312516144205950610383682317134041235254465909423928212814385675036784391892980566480352430039534180581153107327888373633671385255186405499725519122248739929601763732362425975237183054564550770893615086921214285646434384012777885901109164019413912731239875745913796449373971124617977066040502446633396385444731348365715724918711685733281725330599066081086515525300392591563978787183927653299371515981357726094705316046291156582226648818701091893015947527328773826910040910545263997408358795897088207153025900031846729597276080885163909294413719054104460897702405112703037755118880084908500554110682163269390307026335916991309179425321218569533286099388143434831149502162766201134522793135579988367350585144725616018392768271514090848049382783989386958098779948137734658277538013203128951743638534487994509506891016177632545476439332974799399392946171050029553271590037722297508573729594858827098746787831098802517915508054148565651882338342571623728841061919961347158602776693948160600968826326009122030936357635175021901001035559140001631168795256668283350044101475239019739365262699702179375079451345972967928698890093309534962748020505787436397838918177727621902114145129881163511776496426884833114083782266553078487688355543267830436148155397985087614360034590214341462738599010311384252881378560589245593618428270877435100168294704715246439136424174064370038160294302698126303720517437422251924425614718855401150534233102590254937447768987492650881493982953812062968873201578227502348351436873935006987058378157368358321591275123074197577955193664463143133873166818614408281864160127002364644719456790680111835738023573898868300456248095508335541111639508247008378391814724994230884826786844314958957608665570322003237258580390775976468635613354177037582039896958586552407724391270392306532887877159653996427014474962674717720433073704849085494818754890211544140920208700077423367745071804466433528958894676555183068835059658380076994428442004311333616571966820579661184851315769098535329950790006631890530242871983711420614715408121989323769867796611323828192784375069362024135543808468222052682191934654870496226897416028340852942924756154487387939305393068032130987401513448232906295280309008125317743479112308398660204826489632126257906347677078255913966600004326483730312594236107343713336924983110782444133984461028567784100607572843377410608361614995870528469353450356839748207780925580363033553238956649481144327978462248093298706464584280867976642683780480194715686537444181252969289657758270677696712154319783420233932417161422926315293917625269790944445776298563800259255402499200221378906764999076832122799381995559477812053472209000112903337291633313474945776487991244046129445141717358813900157805408390531379677254831380718518645426726477746975327679018396392672883358074256333225354699469874157473660335921575199198405705028030349672586766833077803188286541665299432128469651679781089240299944968428183307923639185204946203013889315539390010054715454846458486521062738556151949257500474676959239261563111155428604786726407224446772428449107428313810704062628486440260559805799756161164909832427199981829013383259408590008919043623873153689353917124976659939721759030781284315384744064617844147744664077891762305076762474829786318603885961113772778662960213303269292124352382830411931074813692403569150893152320647036260258953545571989778660684172874140745429167827910861375969684076827803450884826451643206593822158204066789488780235055010636297972253257068194521923416057060430854580698161701243673833016598835868016262551825429470000429405464090042605104148038210032920991082283875414458135930785130960383703756195457277695024118680108805396253794323574045370033648550390822912642873298018993331630533201867478672969056824162281405017891906074691856102506731247229312169141721648542074886497344014003215711378674935870358998507842748923929142309319834638980203745567572791567448599756375681402597559496076483826464035625683073682153507336668454981008423492039065453472404051493811443895275419604388345951079564735457298015547631387943176272251920458465108435338988366549095905690751803589553594764238805187901217318886137606019287069846114814139002462038745380259140077262449243072235144259122469362774088485711715463800950762399515596855229744662115923902736980921325826175326384212300722578330732849864041413578012175543089248865012473333244804012554266856684806997428755035708264214192462084561601235934432717453800227479144039799202036742221858457450649357712812752698359875634155912403452574491533690736214813847782001276483585758813730256602592093138404077316421564661154467545090757791718676384783647847528282500537440442882639358727504323986686332212066795491089553449015734176726131242864059558067601370513459583627128482161367014796365014172976496965428271880047565546684100289108942409749139964669326945041234070628321122622229847573835060737265595500344032267041599022590025818100373501954168166386831410764475112013487686278143155116107023990933230499999370205774722335988624820972623040016559250318175983784700721561977456505464492668846409170471773413495779597482903743613332663074062313962362957292066031001708350035220314648306547712424150036984513526436307927391983035115227292237464427478154288374157327400614844232468810126282876422402867834204364674619592382029974689476643028606746419534132254322554559515444647945330438400836752265294937714227907860466478311870110450907286986112170586285789396239130382745447235762885359795091536923803062360785152730044007723871292245003092206057384919245138185531060764288612656130882353966388302865636906857320005449513567748091653887450851870214643773310173659204618679345789800798847964490778447230082020146074944866174085708378431522960442625665241994777465602669383507260292051754957818563065933541200780495951206508391598051764553417641456901955930844122267486951478971167369915699593105300835122179121033650335413783754215563348103602968673485154889993644786236245187530578188531985654542417155975214137443960346025961622475382757043628575969480417390411670175844439270195443742468245178473581064946782596714812580808448501991007975026698073560885968602198062209252557338453161936264369111596131962099475582985819380486082893333926583852399645674780776638634745217155844746325614674224215342765572533611819828395160506534529796019504103971431884815907587685517355060409415457266612737077573332891168688512969168304110224793970771376223664002336246438577595432700375974762497472568431504886906276830221397349008554338990857243038222967761391867800478652849505384118423883868253542963360277627022396161676400054624100808936927793157515443610851848620727654393666444990513881497499456950192472139451371302092777834727471586555144432947279116122623872125485549753360665960627893976431416553415486655613576677038745017559190432632078722053488879764398359075821949106323285951121853157935467968075384864251440049522426795822725871000968851937908672288877002908469179720405309446983563755265918878549678309208374664336586969820818637448213238713276042451393296165556512316621847249758386857134007896462049712114310996458966711214251391793171339704746182676456105516264786120827449199242254470211322585497888641553718415263988735016709738372780038415004866419703010590980437382278198940039414169087569267778962838048504541959285539259953638125779976147902733249391960514153839719757337544773028125470745815519133948803517428918769339778338795173331573571521735793214276422200538742733194275879189664749054090982496272412800770735088822392265411881096479714727014069538103037726134323356529938829202091460722555948337358049531742842736991128154317813343608366807294780433703249897711708694875125015154264630965363053404135233562913075602394927076656558858340282575307064806142042288574431359291989320232621290898793325279367842552297666444225012680127000356412795399176113223278902655654821523318259203150627954862671626844451388344393709140789487425362662525062860386635616201690299711106914928911988673161235012835318193570455221102855416808557400254009606771958316131376209024704712123709262094065769104018481738595898424238593110196431547594043202756625880387690093706276347672333924924252544954858694299604324302112462447466615031119911929549982388104238757338084578829712734941694319871094564126718600127809692789794621563985473034424411316178565226910442545705894063946151027199744120486711193809879390960040652867718793011362069995460698048061274448843711671737551884770871745649414016547978353803579259077898137021141543959178820163427120642561665356852634227460893584212246031928113068115531046765628749960775244790353348238559826438312254196793672329804944114156031227515510641775443502860446314641718161667392240227806117378137006230025689421748660321616033551308832335481972400344074333212725555898179427918015757178740147662647517938940989514886199439070897322619801744306100734212487134920008501861933028829253752848527072536091780482970373158484763918267596281908006886713968677135298204757103434533309183699967454847055356001052171837005414640726874723526612801697563608429173283616495155846208328340553563655139215666176411813912047200031619635872107820506002378760378645378184720335627115310429893020942006609081988892435912644719620168215123035911082717030921309784932032779794745393884505890748309690959736384144302464131916045390250776304679481028292784861159574947081069241044837182841933275936508170337747846783751945835308377088728388884302983754991486350329471087175190830809463978497348158706663884958087209528310214677381012976781405421165931293053093567295874862471080812225439347392948362438150287335769223548219881137842088657137695940120901831050076966689316046974367312255146917357363816282291466500974832248336717326083282613182583618097979993992728740065476044891310850276871014353421417205973080279652531318445117590757346643756842733389921069988467069653857907708393512613632546020128369076280271310721775001820818085960171831548630540477166106279367850641559246532115472952868977570383933688823290468922494999348283518734279923144515600616374191180009005935419279743559093939633525672561884842017267781848269852509146130781512673063255526976185686980976457337542556453658608628688386160919501909720208850700327155681779471842522137734618958953202906121876354470050601748682043382499882093302824217050010470450281142732133027566581336016841916707166455628267605477103050259787701458123746775755850558363840842426311973379707324586443180065707510571896801306463927488896287950565708725139149303431748152416506334708389248472692281539578020604540318714997912002364754488159735387531696404462330749513016145973805416912075301497865341115103570706962309576751600499798782862330286712795504143392613794391812572425516396624767685223160135438156295066150228038241422256991692549151496228652666443036461766548379881495283936838521536183936140907635256844224892673054436523407409615420959450507938412225532426113805747597364668851736631545016046812197237994959016510003200640672298515346192613873466027726240820261548238344675825704806243328893013741213987631105379258151632322951031461187234387349519446032233977032513285961775252104699646893993244654147660630364568912830911213664598447548169754061007968264117199472734625502505047328487286442788414593796311887142629087540064494748667755891422662271102880435109856443537896263317349867026355194035765371804324480727394334286426739939309643076084343990546887498410795220633774883149793608823517960225977047813244111686276802941625513426287874406962506142101539320159490735576217488200866855793462048820567252406924818314120961270239475427716840189173213964215748743907462333301558666757044050842832841550490213099646262754367023148654289176142660577803975019895734161005218338426258945625310514157178313628110594633465909537970867023514973261641298522783386966671734049017255179950365699764536833433659414845812956279605581945038691293260766354180934359725092456465259189342227307256115301009382217541361730407936525646102537399811861309611460124956074888273597028777356109304359408919867167336030732911128625505195095804704767911134721636732885895928874603120074092836064111135518248963011436111937145501914753615529090414232594472336725796744689085626542212934501436685574607905930826162273282924843279619023426373724786478069528908139431681696584009103142587839841587181363017169467796094145565381773037304814698659121242636966445202482861493586229848406959999543368540523872257719524268035611856075273273143499052953165168630863937865840976248286349269271474262822911757666889048549815855459019529361448783653834998396990184575236506432096661212016680734448012445118251795216265357111486530325697829666061380978671772586281296916884602771883951788982630353186006465374785728881490532043975251843785613154984920329563886801609457522529593641541217241013392364819518819414638483467813840716373858735734052309987548882944718997115757397674218278619611700789609168073378922884361084860240994760587687003494848200586543407017774040916249107165849441466690544232935185186362306883577797280877903808884479528542368191917448243303660442869239746294820801834856251638764336141880416039237390081225261759160193326758676671932190819491117307354079666323393944007161664801220261183369942771638103204450431270767044222776773721948036764386631078793950080177130048980954149769089076870940758016172496528306063759465435646714193332764609029688438308007940446516911778856189407802491922245227652577854497459936165768502486372392106122181542800966539254747911581454522965243164785665435476253309459066343721282662618939645346970881551890478410485465951844804720312212168123650355218076183704009923803448061877976159425720942068168232942355739864780277232244607981168652499673613016353264475787869584338624362791782077262312265829771751792744375390707438715294700605943110871718787111775928582415647624789931058274649442171707648135389586221001047420113558254529180090578628806837987570157073928041290535703106218426364079641266419119854110706229671124475752006676207447254248592024364714429466795867035486326959436228725545400716893251879771571485070226639596691887254596912124948133942817626498470286241859876644370239651112038198528402698427137688323844758435797963596018737678676780928434896017750128125585493830178504079603814757639885171717182576274358459254950729578190201383805877776560599671164252357048323328427074288423625475393219621233922073699734022328007421216332443700720204918737029405058073825183649988783507628300250486514885410124224608696371028112700622449494687946517178877505616257441076339391716569110604769345386853318393438868324164605589938420899174707593819870999306173914939830360226086484086877657362399486416411977011061182790588250889854713746087900515147756243924515977471026105151253103870340003005713345309320700617322230002777459960563456560580543061302933130635488653718516505390015304318550546713968624241656192360367334685905833527804465552012900248206762100997599203852355130606753465668273488349892119162750718071111826029503729821290280194825459835290385764976466891563278631112954220452850019983903694741484125982409901266688663846335015004007584580522258400397559854886129784170492796823879392795334063859035916860639230758822083123989023270496424092463464136090729717506150690053792291315064310247430913505399519468084580835480228015736811547868575929128258470995225335244124949361858517555008772494716123061750314292816754817382988005553527670324439915667651531898706953052751831501589134212173086136713189902311943402837552486651879084527296233282325682739857978695676625762103051639439992970379689566960678344099821926059174017880476186636218587638402209431234511735501166898685024458144270216389897095583486393869597420485344843699332805677004367523650369194789371811161095177272393394226981256785233696620108157796396206481853297030618049686729705490082483473055305020566410920503717383388326914677577411656499530179594784807972606905376394819263209376336714422298056095320909039079164230293521701194151939741931013330691315381658165811384482589722729598832883921001648535256615575578364758179165955662457800231066849393916177062297118509503224518553970189259450630778398253777476314252132155920621764974513215870670331871264884329221948661820601721233472159622627477639326294106615327562783515294895795509542051192569536601578876392929993664579930424568065770931857551102801034839422162839471169668066365371863958976619473254401437746174505388227187661686253974236018236101008958995247473102540089577258568229845186289902459235802055246957569211161079008606456418685975432010935141424461743317835491413679337525020585220059278851249083824975895809236616590873225524524201356950558038941645408705832728756225623179028246101217822334437403072774235674196168637328546319706134909751970222714423540970408882681178958064936723624910742133442099738582728076823621224969506534799792862650197784869879790754892158263794251067001726257222869211781883048882663731937509966518661489274740785861626965544703074548189340109679031549767571995263400094073145707713962428619918358287165729262502681197205787903022730459009383082367485460956652994666546544578149100605226963904262367043297872503515948535568096149753756823426203586071994256023786258507495342877011404541696955578765211250515814735066213382365821160261662827966191770465592190325498734736965064804450728929499326316516758054737570293563481570444058006559436436493454339814174013876853735370292411238093867081146233228580541838457534810105344524831674792466112426302051901766207074164505928785214823782279608127700169503430047144057421680735009827056881608677527026733398955269768907190448592539384272501688204564628736246204663061224103536551942955311845535340280271306672848279035852457764538370757620044362292756191789119343803176702934873344575513556830047551552208180864068037866297767739540356085959619025922929131344201664044335282210614685527687907401901841285428833388593092686576448196293100456671640085361046965078717392050789484343015795857807828310826709251967476159322387056655126160020961982400510386933092595243598195936081455502716519220458388873691920004637435219788038518016274351679203574645907320782061585549280636698051981374170028858714061352475084987943402359172070896936247965426172076949394368867215853768656064796591307880985699912056904397745454003190721706181297332588613455592310708674827707440844751615365200920438796826105299779961203755096972186605139060608575084168502095715684867640141855356447468850096281571017044967682951841922065072354711792299084145939080765764982607595892960584440337017041697436689963548144192486130242387184019582726044672329651799812967486123638857350010508281382363623140963907604303128453150546531071712447504980082908070624639585287793183967828653761789273926208269921882034823212024684032355662167288292646622086980345346356441416896519925001694502077988453648724694088919860282820425612019891506592665134987526964059248498937073911294527143247366074852138618308551719439682553478689955216257780395022245764660560109305602532157303218856839685884753026734906162151789624203284631369293373791810547216698422692186983460905848861518454998203035947860615273139318448237053534382624943136306916111601113462912093860658290156895713700868065798068060853005738352284444440635021926756772269462434283924850670347828620402531153399374105095851383715855879927994326438117202932899595288924619683569413665416523844081711805167652080880529970797266942602844058042202310246731636613431225422928927170740942185931381772831287875328499964531255534718183635397657214159190923896364996821637858278751782382415347437425876841967888643441809451823254591098072925050420061413785036146229235936865670487706122149009275039729326555007959335236056590975525890138420830952161830344612141700176099394291602894981016058177858798222401828347689023942222829957958552028461055270033149398781492979821164342379678318310641792400030873356259858346523612754951924997412452566275901072093247276931775319885021636571950991998109160977736318209139346074472305511800173902318179570643644000365581160192304414168565140179971515977220007537905246203436280239046950712933745363924162891938139227292616489888727389399299901462060671802711244603693290048876553741429644385094738050009421925795978897678336428696148109946174354773625987508729362391382824232334545358969243107442615131120877650573734654316852336979997472577735203472346428276443317252179282491006016541775648086209772045653410626242839648708618203696236126484855681908504290041948335905119206822001273678238107930477428428957057168870993469914831087414556637173110341003781207913969588209843575133931076243982102098373952689609415857976025083350520808149910847761028372169305713289691459874414554745525539665502418469477892073932001367877644580087729021206209154141184915179930041969028786367803696317722189044337532423961519968301731228224269674436203569593289709380822638051319439259690527340172039931911438272009095500968411949430773092836101327568818068558625168513970077111650117232921990331546304685234920641798291653695329904827504331917358551846704894397961413816256250512720721152715949263756940374803272072659313327713829165977233783892187810655237164757707383851922999354715910068676581374233965439791010721222990713506957313888503925096703418123827701835789100647187927218421684187007082853383772741142193533506990822234217874488251629930409593840829571102241671695235353600474031532162486078389436245983369740569258218367930996625661915895146705462217870799988396351586857842606792631671726310533893141266601736421660503745212240236123866779851214933651043828807563920856071618451023375617336233215994836043424200011071442191753049473046289693820807842580630199209589736898344734890984324356307896515131650987521770005766270183384044924392155345234038523379915484651552384168502706346807046169554376910743552760070899596964562545291057740697860328016757378924668485964110919605167665763974355658334911596622008545380794420908060069001837377222528516468960718293586970888788743983798537556735930425353690717652888396401936856186175437921879865016105100217944113969142707300973297692805524551674613647012014080781413275921201221324173967474398881864206295898519574898530707858516433655749412757537932102679162975249544065249530225434035149841817818359649837816218631883040571988036178722290888958992627791966628639259749234379147526556233396196713159133912344464532435104750482615318800922496603062683179764160353357354365423202051349901118696552344719139286287826586057161627878803299761548513399304884141193558507537292721724488216821875385366492850407466689496826806796269384811276048024241867833393357536889995754065113883626625540728826196892239671340391979034354267582432274397691115209643390212506036831897818661302835316489113554452178508098603245611665872339978779460416003723839086317238792756102934565956935142393236017563366264799377838132583941442135320686930480236475183778412569337769130154427412676001488951303418931027877536300120149683151239832823176378402049946477108562807835942068539504065241159609416469342850074665683688152316392849426532174737258606320384244996081318241736064859713277117202159925015611095496031512330362353642846540035792386003129199517645261243867175316960641688179481173131313667785212112938762818392935901063226537643455235628485394690977498443672476379776382067312549195987757113193656303017472111690251214175877051777261002412126773452690710654297632702366820613964717811735535445027243932017613240699640245186774762235313643802877273404794390057822608462150545361412593310054752500693253405326148727831794803758552649725074089542113672625555878005897605757773610066636623492067600039710106981832239572049516292255562152631488840635083238637976060139324768213242830557205645888306826463242977517714661247022748268656520321578438895150533861847346882233959982714139650989469908327526862981531047454898003638818421051020657140555355339175542463818374006341437465477205386905599523222221680728563908938385753743778618221057596071914998859179810411229797621376890413003523540904343523803691721783188434563993584846497220714070628713385701882170829281543604025003649349466147548296933743890637526621716054090909171151782620716490451401508050070608636069350211109205735394776906647971813614093023472058412968452759161851530254365151543223408465607795204987707088214856483585886891833106004987889779388421118540013602429181767288086992670519171696227272204026799364690182993263123699587613943721699128137636496842566849697907898142651488427952979218415585903680655480116914467449588093093880520361577244518971319719223309314094015373582376765826582703255758436929759481110968174060693623830978527945295419555167849668899793616120294298006770973267054709870940001215963655828533321598513169489200177604457000112876587924917574231533310890120197626893725536521243357907283929312909061379337214343258021017363401879922870633818906236905640490194632186287280620923002762506299560005820447404654613523812476593558814798035810306828354147198295134476490629867282514380032212148082684551834180458549089805910038165956152131877248411935329405007437733870150928500794167379159677927234989068993248365511021403336061952984241521342155046041208313416212147595154963140734187841321573090142459069230480561738397256970080320037649576501076116621213247618068154897049842551285124578845496109867705352392920709280805037621925115477063255774097270796006975463925049924167504123106484216793773524168612729182321281001800999653939596583554613459724772430865542406028974311141306732546011108111010375151789530560112897698519656498959952519629413180272761495344802342174651898932120437922431130454596453511978883077705037520316953760527074445487253259436306478331889724631664568546238275110762027553911846049257881442812200812933712898791698769997107682865468570677805464241654358480030532815673932173588200732444864929512952705779114143830470366591426174905087493842206734672869933932946112753305609365159407303355022306185710135224531011741839953468472895243681441014903171767770699791326081755017834609931500263268315962207585719301296884974650096426761290463325438945835042806002337230587536942946215147194571583893841360717801817600044976943120808301665785842070346604910550504710702530312666179731672872307396183016006703835318672933372562031779403234187446050396957207153230964247815886921928847358953077049463662657293306151103362905722482427486574155574431627038366921418282411264481288619601711068169405146722225154329617330307255445707387145064125650386478667889802247572150662637216463075910213713080311479310000782517441614081232627444495285861920776471584797561833907573811437156327704200839374656927274597478974768682458246493560021272192838788174555632078790358213163833482867482707460190250575774532276723668254663782371741851089288519836768145239252273957150254747039466871252966857257075654192573701264400734880903848894493087417426111313797561485010774307626005303761701946732410829146004958452792973345737870824828173906782735427237374459629310638178054545752439712352526936369941417138621781482343286273761642596025614439984345298087695134175446723096739446218996824284601522470637902198199832463438480127472829368131931955400722843176853072698137673591028819246726816095169602672495857681864205959476625188910076252747415999515031626289566373741808924045422126512658950294599004578488656982883507193376093848620861353832844053056212720219631161626085522900413507701425760893702929044654044970273835848007454049719487314903522702927426800473455397391072876689562097917885960193733676788226803481224247173629687572856379701609829211422371785642727123116851601191851173116670194082074978562863514417814634327761836799929354629639760334946314541938182240767664675420211406311726210978647847265043748199062009544261181712939939614980425514580970866162766321674996383524871430210495160827250084543892713589086317948153308285113356452123481183782539744247476164630430743038280050016856558267380394005103026924345163380167855684860774876707450975899751547466310461452948396804164268383473106051165188051117332127474346081179583481723392208122064185850322812702501540661064236513686263610546060082891432455483883339060882619924083925700262204242365985692812692503822180341636433859995126328092273273456161229603508084664268548735580710542712046425025859364295064213085656746256812178244770532589580158956820503279541176391575601410992002077514283252652501483983113526767716326688795656892276604587363257254460216947526551508158029450772553947147003085600449301245908812029204993647303454217516998262532995358772473786160710511470148397133178727705779606734970302553685212335806270212128130736167588651224370227953803297889566873944292580793616752832477687295670361306440040256792049130838941388627663138188575809134687615699653642291270530029072686738341895404465437802067774676886911377682875346062972029686296987889505328746784207594303017275449433664310762586550747634534391298004904992114560553609004288945272413896545642369331863102175748595996559982908943650597724020421192981794533990092418845100978489904471925973267016509411297340789647621745014013011512076326075647522219961884780658473268979845871708389951257838907082457900700530413934752455158533828125120313512050188250465419253585237836214311614602372311053287730468971106120843585194863049962850616903610963059271550672281552469575304600190356401231435757428502879700302081094336978824119229752977316562719653043306725901625959040368848072222788175292319974034801692507844745105543875123534418825692219727736995515557067714540796845627157422329876946452284832642317948904177550690166471216307844867159130250030663665774237731768058497763472642782568065931974026941926962057560691482285666871151667437675294084756282231975826351069658281883861733072408070352083546459838988478815058202445472254035961927287258831526363922464183347658472036079536236680366284325317515659917221562018006763930882360274734287006868909061283003688437099144577593264037725093031442195657449439157776239955964775732737051668677050848504078307044498373673142853116680682828273326398908612539117787037730232915774679860782762901667971763709776743215674347930701793449719887197913060118963199629017565512355524940627892088674143120289884007746454799174868683647150018479400221584845071716353415221829260897942732467159073542255108352700437190863855496970744624006961830880427776130403371274827985565638292539536340374679040124157913065056175299295376417114591738183671209353839516547668622678089829869035339089838980403821072448714576191624583782110372899606820053323847325639497568622154770653787272376667733608247967729833947069803177597212169819883306266948945841358879979255345656331495076135037815180154405994054616646685941566541873571014508847278465053038418948497581432424828793796475215589728525260438065454706410766702894604812459309646126915353634685013009809356201084583448895233521523554200860176298373584436246755874592738075462931168346965264980833272678020288578807322440109577386020816399747485235917361411314284063232617147112110071646356669630547172080191639921925934269327118840739210567386500889970028893421808824593823940388807307078194596748874330591648171376119308631146573382071028734590489594794666936164342579319968492927399779092997927385769264633123306192686017122062123970076513812587798313930911469540601456451747032706327610865076985958444085603567628252629070033460288953136747810318676075324506955825148215487424007902614826883049611720017194905742245915226414725857800188659009978788588512970694535842726724190775737782564495803870100193792572491240816945068751352568202890580627472354972229299250616770602351268207455905232435999546206969703266618892207198214899125986591705109132951978933298641961002544558525187688217679749017638925584973767950128823880728581103241315363919896334726949321464130779580092074877632118619979054354973680734772154672486784138933943414438645124430623588440414287573081332648508307399309607957190028975340492873320052665273256983642182765229144071962025975524080643255625781722476887796158314391597316832619132158410874247919500791031704188921328009617767136590085579940338727041683787343098589969142599846282674600423585428142400540250276131334098426511559610950876429274393382416672976549264419505690833661953769207340077080417720956477428664725731917691192369841333454598560447254024014427453849282725082695049876421539898322049756299972479044819167951513610492506671828748102851154332653379260811371962071991422698556700770493527855085555472958276094438669567146417228874801555872077647565347726391231070143656024903279022768946966652992679968655867278447309434202875609345124476539059652882833508505520073571887143026340788201602429185802713517455061217168792098416361937228918476669499718836103335779916144668109609364783253002196269421545912075808691353101942265904166733639739480793607449607806619064641472919766491450217532915357416311413525654902971253394300331624029298098826891251639006484852939743360607454074983697253962856746803543605404516045675069280565084609077347690335721334692917472059152200834582145075043985192783652914452475965072086735455151094627400526650650147392347426452558079251263891653915521817823702297919988131215292790318275564036569053632931555313506998122199173878818926469372181763222048318764137510784050530119292008873011606033088046429989684576420112882670889327072978819953741498499793986871485245857545824866103506379490452054939262596826928319309797582300534949604398936121969628209130847102625646370269308047524049548006618162440258985614753836803781611500563028001023613891740151337257815360272809362746323982476764051960259403212024493693148215009690984230264910977163119591365502674902403398218559517287106686359242121537228188881690989927433878504731693231872447302923380046635929222703599683327486460905714927635386816098118950031314662869499514615878386997870873838981464322165781260971854148921194000711005413231363177675298021162266533021200649168868064378956487361062616442438202487564105911676046345140229194217183406500550200432931289138113021666797059053394813466786837176456023681523286211322996475762701432256324418657579078614905307488105746567614313589819092601688570230889356543050786425504792721201703956395977458895969989615910684807805644177043293763484608835760250094726958764980878558468168072398111353401687844400016370975119034848411939493450533876087497594911923056391709265195835132499831279827715197745159630359241741420644048967580666448588552230156598628169429292736619287375990565420124375861252691733597850041036335897382149228635171229619950219272371882059734265753238129454419334621925352223556105297008857896081559006475616860880987891271094773776989768737336710267685224855658959436011321940356791533716998256716896934675554479906692291738116505406077771257194637725247809496089793114194168831558737365507961951058113462607577558582473249193108839782740628753428997745152308981642336966436333661107486724430570453950693014631386148953153784929378472007456873779456278995932808168829920365780894149971715798495352644645886480998050082787351978133652581082513630338015136021375492940428280639510169826876920914290734105193123040690644874843007123910448982583948783601479140849089015688340613177831544855441264566940476358991887605660269463613145368665812735040279385408517497300686354303338636937851369459422604143856048011239055765352948271319384867933952202339731599615361332840789005544562683748970673873974879167673535208271301230258864899544476791013876046022169014651731200915147861124176067268336489008348868586648726293587963699141441168303458972054327497671236302489874585260037541798211097697391315500911375100044151679344785371232267793292181628300856997076908976279149014378281815348582059524913785255672464698704764825520548546833458078461231299059502394732533437958634371468223207777205036827782120095746166186341947282281462083877004073735307137597270571042677110960939391493170780611331436567049884486067534193520121380745093552421933922870123931380128086257527812360322570948283704331926577274690083349559086313262369120508853540579518107238036673256290339839959717938492576358776371532374124187043310439011864144883640781975679072020469321467680092602538643562114642373218147777578442790529077928062984765129667418999857319848761181702796228673707252707228526608155124813507068887355257667190291530447122714251615108086649803923107116721319153695910925479791406615765176113555179881290460392629142234761378830214329004402577184847792194371376376576898089313699812125216917157076914668709933062766069269418380936427746332526988954801666017312705811146711669378669172611462395342399856497191916043578544855270725782172379741146992672920753296340551247470483962607726648425207067853562585258970360152941646617694465187454648295609470973436338168995726171929649718514671543517393544002198911359483872037489436528075266476180711777795502520886012758469936422428261612232436005822897887460246033052578989768318581919764363003157295394841336678126107492767001193602466448095576197729634074440845320935988700643450686592433173738677310826401505682616812287977740355309811443854285910604717507809480425518047994384956982059673840267374787539585181412707870272926072126327745258682434647928184355994836036569100805696640015347685300927390636385216938621955056781662482100521788007379552500469516279516659494895751658074973121463826936598274397681962500472159435443600693610401015274398563779048323557432849590616573135655462102778394840231362875271157812652007168048665050470345701500141499749049081452333650026428760753484368371710464962450176840038873443975882351412389936244224855648718294876684121605809801241446983378951603425495819837908052214711022334434739382435871231853470072697795601413081895574365903053667078100029755929241594155424616865160884766104677554822393397502714009112527327743922565074516688149152112341487765097999688402834366927960895197425024418021479156498195956728865686268709647649194350648490053305764222760164119589970072972289841896829723906856638286670471844331340832751620989567405590254599633690791107832545905221284352742554370702933371182331797668269927976144965272638847607584142431122033036584855755167784084875293208461857992836359208042697848753646809299778249021026527659579870520535701298991238917681171879458041186573688594853065169429969717485070828806785704353071040987976242194266118682883342577067462706053389494124572188752026059331562623915846628155965287120117142328235165597435298831981027474682601564759401066918915677431531858406861528871338529707565655469622997085584922689883287581581126685961984856143574931774069010413101572086728916010577529483178324222811746275716571031290915121179730985120689927121494972048892981624920864961982255122168280036232744213588195407176601138935425376971579073000421673944315347811547274549277220627018898162648171011102100163640165957563109971578788854498021584710246361563365789914042431559455261635757667545382776310765938630315603608194024631437471633935112282273885213564620597208053324146241662938640873195523077310854396904919262574892173900526541514196495342203684966649019048783878139164224341017772284641155644530157417412502316714317317884078823471786468277123163190374441444277119696793139245023834131996709043573141836736469334457600390479497576786000914389434000904401089211629618673794611393134085945043606214896694141420303267036689974881011146255275769263164395434404092142979365602771277980308139716013999234182584483840114209634549468774681985013650184949655427768651340296183146042117090340904892956796049134135010266122093690286740187151697888311419096602369634572781086417794725610647394700650561523137649234652659007759031401115191254447130241690829153112660538531069975811071411276423992502898369192269916532130724077507334748328678750523707584667439768453982041289911387812840171902599532721272641045874228453509581218204349765219341501516654872042353330038049194369590191272965416558620149248151719644505998193585627222657761547303478247043276353259804546751346723084781484989420814248612007054680476275522889154957061400389287070800250370681993703525731941033489652773459502893023234725306523684680956275405895392313089760031375484331950868374563739445310954663480456484619858759785050061644911245121553286413786051097418929115634295710229553617403746035374268166006829985005070251419444664486221491429195409928768678422605978009064203020361777072393893212342142571510060207627789561108623430670353164586156622966563449194805368414788483651964995728853612333019016143639643099322170430908874186452837722802481317632988846971325747208833155040794071253354839584598997543711453648385185147917517042270043354878506709563465067196270330816778162253421950426084358935066497029723622975596798940045537454447715369924746493117120624781229586479425776961562028522805397441867425668762508908545282874269597657248032686679699739511314899610191942389782101852635874781171189181414036796743575634692608368619273700392727493636925735763158865658613007009308831353103490771380526075895630159856848014100645245432997440343599614377966640504463503720453574049699347120000167498139169485218226735576340140008154484752407902454948346831581984414038588332678580216367930765000615897773349124282271718961272004281530201973013651886328824865680825112068576439752149259304010860309423081283907265440803111346243787406096798592901228992646728634192143102057431855039965251541500066110509775224756794266927595569171124459019510070762691064676620307778472010567681411817302880871285454569500768183108550908284300551039660790118626045185981428249521579157128036597406923997702866628974251329147197495888327796521129757952140201545838347997424067242557504442307884957104880496174905356248374612376443639946859916819438569610325755108280840299468535876548408323875151345578313686931027883304010717934126211736671817608440428028516967317249269743247332972242456781539539004826504594656002726430023755852514662639399692288629973313391441516447449448313278955483894166438721875095009854402637088939156296050952415375360810061769865498393336331601010434423653200385132760713426329523128946421355187685318460080800088573034030860761517694770196404592780940124722360477273706528410018776059849740319688336987805405100303950062036634051883331715709861731803646588929262330975309533977123754310422571037699850378890080596756483696598293588989113020963393360611888361620820550850128040103947712583311292781475764916236570867412348545593048478461451838892777902300770924159477805732177696138229679882071165718365128903719730319016706235298389174334801847593263836864274420538371156498103783234812324018717290105687734486225983425182547909490450381331005716555458445192386930994427464525562972093133602487874214003318882945072708108066093174241279659496621906039198647136393775620832763172127087215444405702224806823067056237780247643186697697934639941534807051650340682241290490512746009395997292135875046974037521628273624253753742200380537454044652640576677696192756013285315426228937326263788404691624009010044358603493922134760593712581655997996834254979658286587877240791141424841149062349164823250035432301623769191599777098646083250833964264357071630195429064863998976738877336812308703249815397354328371067150189947459817118185465235877597002288369391888458399478096559136370695776577123166097360864370388633531813519974775463642351252865074736111116465298962793825521190288561491961019316910673058134245004230487364663789121690473094429764698328458563908613882459531327689069599471671098583481510972857495119324598198800701551381930524344514071647593230702943725948772061439580796815219571125777555165402615278841138930547457215614544168118358526290152460948335673663270790868246201357558358114627062542930149468189716691922248422441353051155466620873999637750864106955599737363317879562228393613126627054322233579107257136832388319707623818176917854901021353512131640367445014874813180504328740668873773326744115592449437163720096061500917597601423162448935401240827748121395064870442088837186039036735332002471132650219027750709197943360632947720269646996874612714864860764622251158805673542157380199061153501614092572479158398417372312799227969069236749653003985471939133149670127268059028871731851362199306626492753332942581838889118092668149862202064723672013505073966297306542238594433089714589695494989329394374146567637724641923065951774983929879034170288515479424562059291213942993796869736220201449692398050972130692939184441011351245460024328979041973172255313797991640720765446351358443031546941552030109237912730720984466283017141853826719873826001940478163172046776045462202131526442414331529885999360240759433934187921462146800143330368324604085286866517012671934875975622839769441623286224133827511186717788798561468830496649733902745780552056666196338264961328677117156535506992663060993047368446392012572488306753350121488209200045817102497582693432781260430622258454585644684469706773124877040172958274115962711638520719631485629269113141846045435468809492722112297453146602334555103570454553132530973606203988742364641174452143521910910532623000247768822254298434943874870020237898870582626494347415568149164424479796420449725913079400530327748419516062448802830592734820396703786661548793678185320168996276612581004012542206080638629753914848607253747091258826412519890016581790947447378889938117622325739443850350890634756917912325137502876143322151878295445867730431774442877385124648567202398863968030411528411415849874263385058298937981515183103173840408419003555250510837329676876801699258091786775462226015871873836699815871199987961426120975956061716637388620601654931362491335337585803054620308464195608463329937776487000385971827486014823863833357363995596913904774830288376070196431558592285868581825566417699021813562445634464198816845687212651953193469904430879179807685532197601033165726861458945311051231317227767873715064203847233790564974807645878913954364243930411352032521838014840338908096920700320516838746560011501991263342478621859525652697400261188983685516302956825036245011067368686114253137511973218635802391459685843015234679018005589966206054911575374288561631039792700668595598392366050886639398203585477709816977400979241285198970410187011144375578677841471093709419974397902785732725752859739282824359647803086701901306723054138307462076216443123859567002914317887769240566759823076381075772016498667519001352791116862233747378958516316290929194099024669268737074606602725207929269932929233254371424735373376075186375651107087013845273131383506429413863699388495311158916457555513162805099948615828579550061431517112898231857915992473336903949421872823114027669132998695048105683243792106634462356641857422615524294259522712663451748296109147568250423759745893945897172381946293188479402772639516953814605494693969070191959735320131298801878055468869271600645895294246972061907817809019307567248232874776033434960987189172904194125516820336924387040977030823282450161740089856507214558754798723602788753825446336169093637827060028865639861837970686710470444023432183757958149212995299101376247485076345016284277814807182083595924786686344539859306838544234283312638349496023550660645135357669505534881941757049445596949686235325528276279944961344881687670868023902807795749940603519043262393831515816643397044579504712186651735019791304148616120408885173101432863936791062189429497921686421809553329303902796435457394255948037722653612586829032297643558688907789788298411459599771573517469373992021511081145321943446586154698535976419547674208774001672046881732440409540254385862793951567799214870940247529173853084133419832278124461634946704166502478371895576338710045354657582604934132050441602544059549462540213375988500977032439079127472909273899039521525788532277794069648345950172357868817794022963636437616414625532271058015352939026008272082163644135792095673213198152184176788855735049229124199426576917357409328464073275394884593710972279278743101742915015138289020722026584676962249049456035316188834242890511055058954357872810567659203746244204841970658010114863072483747416933556909322555278782183514217149761856231514949695813582160839399856205661310442849983897748202779196409185617781670836949555479784776402002316148737933947487724952406289003580866084706091519000780320830090079942370061664564161833044546319474175594878779404588713849511526303211780701401613015343928955861761341765472138367819601965574544254781425791224929974776082121438813130371766382155840815939873471754080994762480781502625010090152015700244640121470449663305291171052066583027132541564566765559190661048716895759817490600999704001065877522355418538407808036618554806039648100633952104152246550100177423020830663711688977982231522100064885524436628820756867780525379312026319995206902583325546767871759269064299493416634654544804216630110943517406898461381047342747904145475586775542878352146789006937228838431001963581264218395625685641448555945982407190840870083067203099342258007628189849459300972948293769335323885138023988698273559887245006271807532429769343421667392767569873233313287039747184963774109480006941898085850252750537593862704340762233226906268043174786919916415119107421683344523724518949257210272247736557214668745805716939398582275234203946483580367018035800553198142579366697456575568213629735989169071990283379605667627162492647876580663637036495847059260355884030536112952360189988420665922975071467249323919775285222363340536702327134282490923560627011963383366131760139732662896348040082692035471265002217016812571380412263108428091251432241182429973247007006147856374534241925987847329439995304681273542137861265055804957737697298369141149709556974272291310891534317711035063870880222333537588674913185165884203508645387568271959023915298878386419855094224509550245162816829414788003803509705752450960353399238399714848744431829237057136495851783609347884706020252464047973266036209451221902236892601318340480643908214258129882468966043045254698416350833935146192311865110368471614750822061140309058646453292882649614590149354879797620825430093764480475221193061883712794585272770030725032655461831629022063803026507283208730542532752114082284438897339897076786948579857865294991981878675016857708329975209057453946828246220328203110694842388166040297728976940451227553299545766576177111027443228658686788357806470864126812408620360512628088936221062445021887193327899114075252120213326147250932647485543963032160947432656616916095784832871171320691936100273221168385863388200122554480641641840667562343863031144577657753988034115995259387707738586159508616148477747721417810496099967140412074359769554274939716220576854858158230914988399843874809717631069383908453439046246209831938409822520008456019760432556134698678627256048601458754452868212211320334302298448681267281728728849968769919707728740485415313840342181514894282767052103580339446537412130202459730184949393595960521247109401719876753644633045315390775112078242667144522302922142745027615680655957541255354617372711235885876494533667547990710973022551300202483334815540520099088043761313105476837545456462848711548838976539441104034576309061449801739806801468621246931425735640107736862149564886311456799501506213261487867017624767302391906449794281228677251872329047402611829285211165352988491845160556744757564488431081629210718395908180070085264403947377468167258295148543911635410572429389263038184075160015215160696741735691701971428428875676326016880565780993304445961446609661663902120505788845066863866118790560526674790018727852070135161751691439912161932114466495286746689457913441026347020250004657048487582808973591064669761878203035290839632185979218950065721612915587785846913997741154454102307406483875631294012725210713685775344421460841266397388011432957242725343602932815582114180387779589673106706880712453746374439409379803006180796009229075803245783456378110090022179769849579158026746257735334433092238526906633613711193375025578435006966649085754368477578036751943776768766031152378052475628257209875500584268647742937886858455521168483241553848198021762480648386873340948937509585936939384230128033356287224186030109200090147397638710897260423469414747085371383047186227879115787356513300862091704215629727822601332660970106044988558583460281229530104904938240864082009585192438802814482550765474534789087680694064231454239819205741094076151820334771022239604219662470008614090416591715894665262325511900273734554144897432205661742164628306389549631761964781817596753494742072540609653869709085534493030046174560410662355157819260681079449691025653368010393147577561876523358133784411094614003970940395874069906470586099193648750291126085218668719728567640799248411563761242024293719247955363479600817929478677234225166884488098481399547576279178349436913476239246395647102675916552472537105684092316750074686470929207241057881501829618803472033180246106748543305756150139951925716492838207498751943540296885032929457030095687264450221585527947203933013315475403036297055369570349632968413360568399060593004993297352300654739163739171643695647150398591211186986414664864772744135421326900855742549160767838989983509191843420127517489868273861605258001766654082858367337268352382242952618406188096057055672589359064671193305706209260658104389638222922009628005810772820808391507650432881268326644174866420079795092313483915024312524899913090388676811801691112625602233897427465234939836311575651793663530805663681475947674028479728058194867517470758883468936181775049055467209882053691203767096433195341650389431458992346761806577074843245726049572344638089106851180822711892467710421581082791401262833786767742010461618812749244127814146471898175144802284228658852297277348937098404097041629977810364694043901713506038155700024860825283647276456211927768697641340390301693961057436266331795556757247531580309589971723405561501174436359709785594987689966333548125167645088817754801136202673244685922376338278329098868966306436044738998880417080734599887265679445737901082136681931761232998415568743898830064300023197026576746531653442660826851899359316451827874980621753402665085720193397611428290423776652891506998019083802024762461959502518862531699635954894674470790798016672622752049027694967878376233734625964574643219136415177078757979879182589098327562854222456344370335163358017016664739179559911324073231199683049512890634560793817698477188403994950925545604195663745139417602929144562945396727871420631065830611656875571951238453083556158271340402706231157120676775205850611552596294502124730201609037259797430034907242447109617087951161825552867823744003334982718312122230186760039633447937594182010852474347737510394084976746269803240970029111808010861683115079745017933837814867146673098790064334300164761671925776494025735391522582594742115536621783637504902736398110328289469287119711891581501956403425493442806868364430454983373195147235518647633824946311905645020822375031948102092009335900383775404001672144467666534375739293281057802252834084735480622030175455105315317369263808444025025968031970050814186652254750364073483721124162144615435162849992129250003565582283943503118966816805553567143762743241750340743750719903425009007803062298145991498813938166008736947865404415565441436993328155907285394188629012164947212625577683718239760510670656826996593584114368339144607772779466910151376213499807293125734843728140953329179514819414488654079807221593882017255295490003826998058736760171726462890242474605838369153984271399904046469643392792487948596349571484867151834297360848964530382608649610165990578190063434867692828178840044267078044310785706532344879599547226130971779300557548818553795795047514000022767926903903409344179595659459970378937076192772579240179269609223624874776167573905827591198022105296026240851545305699801351152976310585218123455491175382087148111077579128952847405503182452362929689691053155185695817791530021682906837959588015666479579874983025300844006534383805958464873038992548387108484258566653624179389530689235292257014235428287016724756907856734470862228752062669668270099497344880261947347851113986378997357155740384034296202054370402307151685011795960360973864268053676943186807477347396394485666833982666995459835453342199947273271400521698059142496797373966134579567888113512909995114934901076956884555128717315689692064258354409289622962980818259518916317041978127972132402199542007262101253316579182942736118402270649634375571981206307058604481303382983100727950595102765927886953609261190896273584505970263141142848233622154230446543362354171151519284749641801464514428700939740130187205854135757655002427076295957336354214811491758285120034091552165538466492433071616449976072594898341718020795671019069011976066014865180113210508591925926407156241292383674531367045026863897156091427382201052128137045198572143733656348560706827262028746693019199373526362471614442097030350384296362380335642570326209053603639162427399422507737187334491089432192841773674489310783930840810370434919248675884845994423703239221758679211128693916150980647663614176227233072079194788293083372871880039246158831917672495474963759897837333668836896864975615274282296445613189393316386187339869913028830493018090884524188344207053018352034054570690937759791138643593709631326423524647937909813497877669556842099876453689895836232938600985598611843243086854078219739370857185503809672291549383033896833661664456144854331371852421650942157560077168140716911233401701696042830964328849875799166726472794932174789633365957225062089567381144044504036071746853781644203787473662459551380007688955082117050010701588428213791688418446339517009516749444831415267951471314881857589216784329455514685252936552154612980255760303569386097621605284051048619289228346061321486591307379021156903359312875586258063729026928405375853592643136496907324104201154949645466309858347389806100768497072067540970083583232747188212786335736919786183356998569670354289176747287173620189159490065871383295440130389695969061327394963512751764813440292327925700024570573169825390175201808013252353604850394839718224168908908953724295371985984416881923935343389301697484351674698717060856438028344652154882578746612424385044337979870590866209034740403044338809956001483301265445646585969630860194844194749879519210354408786290527758706593133118063113226852400478528115216314402408244803356840200335236544873715220790495286030061120184529913230403722880726885550533611840678255817966153967675520238945211272527745655425466012484885637622890321407646134929478892377485702978595973691140413369124838681305483674710833227708486150245668351240970556174957392239334782126710364654524289683936622030866324642297341391867941099911610125071362399856072976525071926556415352519839968480486996141253765742557204470225353841895426403461338954231477584034419060994792182802829136734680600999954453165304619483392687392475643628643407113624981066847826646456212578776734074996046597631515317409937705197907170187973419158891118798987644379562554817452126663913342356323512225458069056212656737429215936931160591042161750079315585631409934461622942173678953155905687011973280931163535674647536027190509582642274905377844960588963635060865434872608963530157984977329211702333347439280635997982821727377819229410950241117135715857644550143936793542885410870875415642756353335698214712387171755667072762509764258922332418180934381894352784991199050603798494020665060434537395045597596550434226003644953983984800676224573871097912930734143887513243606982276061871238957376060688175573584876662699369365819297457185907004905047826148401292233810990577167092190858291313085411299782677604808547370008195885416232230958523404208904770979370291916588214828582181294582972428342435418872831347625832428234729936257655488103238853011730280000328920446604102041027218993952666905340174483345750921594223240528234555902040453251648538956774369122922305827203587309163453601722512512400229198334369544463668256339111852105552598126472751452197139004223195204559686319398606374429947375565626645251991500228521848035349202248803938285554829603575750533264675677805174064998393114532353876233489746584405218635308133749974747770135242167431663963575942832907562678949688738159672349084017381929665412106950641622073677649742080360260670468339319998343165836907901247740884282938371773050617833621861130106346035771452756146053647383846974363885959255672485958243915036070674123298539504312950707871857803074627055066565994101715645405641674534976380982638629959610500324278110445719186830500834759310921225859528016058437272926274893339100881192327303292316283448690235723012154495965618780372643920121441741459078578536288401805517344032749060941090844349612835488576753485555963321384747691862819145772313295552270928302229279126001096386743811404568309758120764153642891689008809628709037731376923250847756401578729690360666993112498645512016910568772872210551554790053148948385150615875513889214706319865675969352095002685714472293160923933431974704730084238366061228491960532117519815504095418197341568376586083634493209366142885322196976318350009136272033484746679890919254483386461123257052596397711267340771042019654248142050568027825683311952612766642721333674384331559858491698687680788872945030174185838577099902969937799785345531864192219446777251344112635001727305609108312652833677760458196517077111352564337096305881578608530899142773287961769602046313894389333437985862767003138902513370177790521720450621046610967167741111335718257314660774118903960701449919561997497229750556574831829811501068785440522934260257461449001968291344040607126549830356324862299874697036636665193601702238016311627098643048264225695380047317880778506091311837599295551005722820758262386330069076659386374868716802701067441076480424542038963923640401430336674728225038626684175107289535664177822924029187535888290090181679026462453734124954462717785522249289228823528747060414320723618147461635274949567246243132536207786069999215385701831686095060413196186780823692816610870543192066787239958204350167871314824143008664629736159138749309859528055186407322736882555308247448557844867306806759314184289926195492498740319719601604038067725467736760531161800264549625861606682257736489199424112708015356370255720271145857021536975600360666052247866761166025743668828086957952523759242109610089833106441439469134833426092577105369416474510530252151974394275670355044404912132337122612878908266649468419631260284044790700487912622136325291998942326904442454132735802734001327720886766599096423456402082596409743777420181204097369346782713308442264651612532829749378052557827765580237333916284969253922721619734097163687005799601516388071089680034516358284637613753045059925464734036337319131809075308791415737463427571617228695489489459407633693023871417233085018050590958657349280265877857785846793481312940899790026009279205915599298437550684173910459081966799588327905560575279470007129434404357518448303866533063285078482792379239260398521574149315723515230277097288919406470502778835053672063190575332296193689801435014487727422444787635693838582920362627465520153778421949565866871498651984566553776805535193751002599367692710520724603428980347895357447646750272758766215645729808479919783675042089188275513172987130946975279436318982677425457424016285637361322134140509298200843965736834822985481110428844773332105810698250479510850883435342871274541609317864522904556999848539221185533997690904326196980072183920721627553084958462405252493238755360249479079144768337897629363494380005808826884071102999195459468329383303239670328922549183741701048716811038783087166817820407082330414722106797400145548565595380741943426452195127532020747527887805645620253344120395122928712804823381892250919479270688180972085754903096867282616026246900653232417383980997498693437302402389818301286783164972888805853581203962225987736566393400969412170199103202853698583308910475332514028840171904140979224315312170676090376038575807637665456106232921691718336780860070590428228005468028205426563672479599030169530212323196994992487116771612365743613499131574151221686227113722737924309762405574197302838130755804549479406446563840875773694931799341412484826132539025157673937811275244173339944332100950234021286040557283119996921977039726076779538202081674584586686611698591485813862227972715669379511379678828706869270699129283026062548878472949906263334986630728425548165536355876219319317510022639963540028764455353890326467390470208744399906027227940887278323352397205436566089226894843695796095795609539207936292306335769779005623744743272975306239637218941112501759782973562027383157117791643651661840439945132011360949028206428744133511221257167876354763863615416481540009867269477615590612214088057915232310857166766835660917417086218806935895771096318815444182209335993553592989862457670873945352177500836812854193518273992333202835297537655926215281061634462330480049055086621771174398016347462212787447210816106311964539567164865709584685529880971509350633019105847992310544610085540300663677292415814900428380899681204374747281536333904947878016002134062258623952205073439496945016351085692146162408501987074108678687898518892994268788803040936636248960716720574698881895229976226501083183038661289352411477015534284167633557844604954873818958180809962710645243327061687834205572492959833531592548821789825923684464311950305227147089185691797912852979634008935698934614827607070610490617568887537082028222344866006391494037528451313245674567053646337760433893181301890799809889076068631035632336218293032098955850617722039886529707769679062340504638034853297097253669692518336765060296938943832817011485279175946650469754328991065617355542300397806946432644631239742035317210016792889639125676062798459457172127491927353814456707261301380872311500186909037952263195277203597254234718354796080605158544001480341685524940950599327338102320922080994719347458392095501822271736962467223863999963164063798537857611898905050932349863812207906517442811621632386981723345053455017688210174308190782977434294471939068677233362631596235563614536334566815700426174957059568394246088630874711514031669521307633832990649017090768768378785711577524755565386479193564950494722615698839050071920245591053984531752456072520019108636059085360778788795777123654981958835477336093836857406584030586595795300561303043507947977109039140642993449612147361965379960399683369921761519057028159668772290448792390169646447557931506265475178355314720053001220109647443756654549184599089734548563415164090405797106861479429803614632383465053956771788052887515826561976112565039319046633038888548173262748049055370718775473773779581984722939025954381595916636960053897924228005633639797193074436685827522248369471387500166675788937231247939065194202889522630440787959669798887966862121374125321985433829161066542819389239438703211061383911339125932813429803954005281224810380876295985484653176140918283205314419216698258445378938624366846135795357076631210281338199493519489302798699860525493702945920351678030552025628201511449550186050710405598272605027727885538502651089151221696612782432198802269450851401018213182677941171957371428144133131094742528126565378641854120390046370373341918575062358612084650595167019295635070287579049593991652175957950707639581170971956145388122451826968742656770843707638786303499182609763562673162177050442313495440352392252447444234512207820386553099089142687362608206647722626822977598487162865844157916624902047000520733750830895107797315618845241669979153989970447507291260729359219657205572202902963240563932245983024521979519059043160987720030921142308366675182567558348710324102659112549056693128453657895983671406994383744481417333858323420086454545430062421290473111830040658666140657086446556568581993896232550963848625513211966424581198372871688022826924035489897720953201567190405695469828601471452405325688908431661839620731499768532016366705706569985769646596187551985632710122052517848261370537237935278124025533281934706536213027703700837599481758305027996923492631152281345370900854747253516219922068547482919127811376391471622154540325734309770093807294911650403726714542284463385525127165169320912384831356346358137747834312179173518644700781238622214675044626927693627762808352087201390301211678304972182769422059372627928642889765944325757353487208840228134850105511466786116955602846984362499197896344311546080221860774833063535479929974362465688172346573829546385608510774338366507881156921632527909790327526848893169038323587367288160090692858680557065892732131848608201223156499092253949227197469080185601060202804740698351155988017309799668185426820532331174151119959577398375274735734872388575635788407765772826024184622497855634358911612704002727006089439445539476485211903950814932522117277793693412116617416902389619777681737322974124508220014712973209014512472438455298413074926817161969304857149367868175984794263335566847240008976116047651087384581812759199314940142494183291000806784982382911372150845208620261385313071142557921533191607803259191439571884512404513642492117001504239619940790616387971137584590414964361339009936682462961097053095036878745267830967712439642531998478540333113319748092364970353442501253018178409965900769328556215874878671430169939732879315864632416397667205799566221114771494487012358173338852006821088859346864907878458067231338563162235982173896527404554545570645981721146416292011685298142606558601733331531632708769811162046174172044733816508885946402966689262083714887019065651821378414802484905890085141816578717074139690861913278999880120216915504001079533784856571589410878681465332373551864185923196481953203110519088259864935908452830976904956164935982831113768138445720497237109828272599783961286563415801482226332554515957198980008052975019335140340763264115230102183693006156371343841922735546920972018122637989001017544709246291681603026910051865733397251092858161945357023273166245510659535637140434129517287982135170792214999567479750045520061448875166359725951089728243169961167873889966758865810960703739743530539528320375202810547669738896967736530577373000258980994637773350706020047916823077681827524720037748625575749579290544331751002977231362331067131154867854674380502359655227648579900277161564781287705470965422340695906284901889713687145427603364856961819307411439065370819163641953742953825439193557752762465683753280321243188628763525015895885634705430617023392737620720996489586002678592358193575964378915226146688628606129209437605117700719854950095832128581488991207538471465242919568799061675070679277125812698283061559254871175870197179778240927222703749126318461983837508178276022506149938519763964848852761128900524565479531461070220220776426250094780973885192299746062944602626508393411156254255129517964433033681980574731240152435240605881133691954823254030557038514827681680616221224881745646961848047345848165505439930196919245231196098374340314596153437587512732641836362139961711656620535045882660607914296667565296486390411459484855222081890869237497844710034487733567638929164107626078524452331337985384912713834679171522694318793786903643681211395148073282343631676713395844121784172932149837229998874537926715204191026425368040401082901402380451623646623732248721233404297330559027497419009645381103179967942447278796142680550644185499919121872223715490838584408215993148979844610779875437486499595919483473356001947140456132474074974997380141485802782920434608629247835129890859444892476514751310717009926302224558255629430580918789858227080971926891814687322145863629280820150245516525848739478275452626407483889393462375031097879757637906570883505605806758474381364115822522518386786576702231116420756869005984638046235249046293333675112426746027182115387356224216054965076891506286643595714634586094860893223748328426004446063320336182437095846224049479127799942545416931585537987762249593154005672778911739228476639934833062440823018831852028877412099910143176659619331404369208159394611814135093373367880258911837204808768026218307868254944459833987639224859620860754957310765106580402168704493014974912500119960720339097505462097274785973235761257529880121566687926972119821278815191444206720424670548910571352975231185824485424941038164822703551171642710929331154444955936214814742107487016154659094871427098520376259094510847074264671839324341839828643487794510873612597559636867097098624333203268287427054224465981251339024360198042461246776409879906382136515089104086897478775644819749480475228218479352375805395492233671868627314245796283185048597545529457924756017701340253606137961228829986268914840474903658607037016063083346843851820546198987968994117487920060808713604615493965781695360691875566646328394326197339550530760086313433258770229248942983318614268175170839790619751631858572855423436076683621925234256262772486711488313006127606782970852173263206423635315523255606802538190575598618237786749025454345053740260931234722174630385717403687558925599721460275459747060611689276525285949139123706443127231554643963880685779739719749694963136507651258598135994624522938119538792439369865440241151994247224254323117755795294100916049307160487675164092974713098585358751131777903446527022797535975449444283213642377858658349756350193009429004875469260180319056342177127095741794000749566166175812517212187642725654855838516678998089420731637746088519478950080491096159768796921139338521809078509947571829544758026694816015998626361584171867186540065563901666779241591391482219919184088358294761915110219431227631406202771063096362025397500901413259912506234485190814896270085865669446528648953551788232355106265806047081370428420112171455004041059186664369324861917556327167459587132226935152003921179464440156958062837633568874208454331218310345747455874850764865611912675956342583145661474033157290079812402483755645918278257857224151795551731261572953206807929410426392018474851358186181331753475293092604325175683627036406933494643112464707219135158627092371595074279372773196490214298810594918325261367217523551901084714421928485169729305066364663933315098463457788315140493025712717668780090921914012212575946421298911631523508322056809329772919144352053588581268569246159034598258214718783489061611502692140479138130416070570552043184006859776265701882523910216252419153433966165496809105122254776622323704096235488959190405346726660559415902412165852403933400963830349153019419590545348636795288057520641844170739410462867778224581896281851569641316896512646553958768077541820593404322398807329827976573022195243773903634648916288802468946805279809713093734837529250318547814161861994843331628608289109618159036276245081737827080096024850543914366706227863331902200867157384779881565725169930225129665807554078764655913509574433850567933883138426931573725486046882385442501105698611057838704518561243277199857572852367746042788032466150691176752147264339650542263203429954304253156904840133310617125623362459120404370850260939443748765671552770924080395096279319155149797584411419353906485941058213138528634084705274174450327835430380775692864352925549710422735367084559080214020400089195557900959234805598316302941955248937597622227933803288204741060365956769552680307071755935603412363896532132013749769621976234024267164195642314030490299777380615449426688280098693673731719380600809800194789565306553064769398338843442800149150591870068066236430093969197097873832423842378595032223289375951267725002167055746984391248300524297545261353002409263623860695768194762053040751057042306978471060747635312088820170577586910248064575004756282856506399887620151321751594612772869134698409927265825496748553371712266529042043826187577286461760104207741530126559666501864079113964601720818982261805965606513090225816950342216789938283479999827238030526420884471519919392036479601462223484413768458042611851185091453024614367086161294211359416097535741193208815370006966192045447447057123554500240255213358986810399198538769708858421247016452317267176493805462706485821160057292889349046043679218614632360723209391542229142109609646106146942357214323432226400753046640271955172008263260310376668179599260364172623827330271537737136354801861924976538212614680331418470886423332878436748979278670626043598240683141434562993400507993183573573782559235626138104882779685534090173378260747382612337539271902672372479841545724550501341968645194156244223473254058212652493125243173430098946051893763890586443957081489928556326626509994492702824946012810826841008123229589606105510286161900443770780485670181341684209822261642557734272989247580152059525394518347572860421679953153507570922624581234404391164166291142419128698370541242183476291993705805590103073997781092673959517397328205363264819233097200445918511635895523419246050493027894696979556921768200340736996491633151524306933588621291398666435258611164297790313195174351094565653862338019322317718607797769726295194042235078410039681425123816602462146827338986886438144716952419237109902864598636781232524477784296888447009429677666286066802730212715459030862308047787043857062656071206657084895482542280445635400852759678257078422666783316036319586767705055092030214376171324033146034350668537782790963857844566780254193385229500963810474159499849982897108558411958712313116131403681729450808959704846192123527064886958920442866324295931855082324390744797446860343191435480004852629949376105836513963948882688771449097411023964330425071907430901964811580774948250174662966037449040048477826336694796320468033678279064857654397754166936072623304747973065232071836618630386566284022014851050436120535799888986608382247529552081337227097232735277931245628849170066127447643044677880896700806147767069925430394854844544922960488449388460028818741535115587945783645847053107684465447366050768514146303762633202543007142321219106873676509578339565316609636878156918983908926194756019894333575088999526475280010556322721651456679488031423336173578419971458142288072906988964895304094313123212887985553307267333367992696217680710165639024758087631543416036139020445919600824819087541307235464412619988847237499655388867481836502160656384300705758453561677983575174309880561816406296269593141463702951930751183668997358091599680548832845904854422052660429133283591479619137420481483959139877656233317728756056520721647758711135510243354666704098564632830647827396409192638372757795521821225220574412654845625963073945637462467154672762521431140842557154044330187002013310444607255074035224050600499666931852344215457590336142865359498901900860011509819576838199461449467389346605714683033034714180353157732099363827225035124308416908541183154316700207594901893864188347055577575616271800542142837116814032541022321340381313772884380108262741782127882334826899896772432819212729623788193736509306680301947279073108853048950439605483186392189955907706118159134885429622139708470521313821623748252590526907412435927183433704132596355994132280562171704168659829906073716730990427125972065505190837717079425022984079819650203018767177177170062512624735065679144577373631661510684201192029468758741533593158755185692693729983167193989839805345237928528548821881802759324275630036748530268770972476099238791042179216016103545615847567531911081665626630980636355811775653597572256710191717666828888637419404670567303299198160748331034196575554666644740161614686676203429170947425672625391447620322542213909530321153627379188525950547963879788764915708168613084610132790187274462553418844495624785945887606300606203035456551646224887605416729757074268209820721167317331449103992384945312714845131374496387668451263156813572784539260626213474133586187803176247024699852855923660034760571354548571335059953703693557012847743640467822574246611727893770478595439660709175664038881530953833211789899930811555114555773862972576724737070539079620467387056646775214874274930262413428481360274598286770889935343755308248790592879230120645730573455212607084904739177282010132075205269795303074814986874419415652717873019142959737462747346246815488178943611143288041034614555398644877990271629143887616729422708155897304755535800172014670001451584525912129763823648328955033959881059046228877534972004150716492163221313629202036269307534042403398785054510773276621393238770860205878456863932637460173301922743113194208146659602701680069630878773777275445137890543017187372832659950327038329868214828248845526793299575818716402248025687020745244389385701675577748090207543020097243230281923438424167362065095480545342678845560876642909118606880344681047882825852762563619624673063842968926490172710165123967096224612718643917596272155795509477552957108202360156720483654702941539207488503655595202258893088536462168773376316692804993173807699145535257685716095209094218192190590573704268912715896200920734819463068561723885404240780609128276152756014242424629766415291439600583648941072708289158332863614499895826601385305232073575250795369703259140768663413904831377506741707475648810990261270717881497101072913873704612254948325117086458519899305521043370597766388361994778187914949567091187471867092904743356633233817195614385270942641934646970390359533740806452184660960886374500593865654314766699809430951389338079363078056817063168638619631182900821681791805127741534740744982947194004363465550640557571296655520389867481361259381663135034555437221024252186704350894218063909393215918034671417850299146601528566386512476258381100746167476431190010727575991202345070788145451887501290813560708042740622230343637492522015242700736946130338548488637268955327812085552307358061199497984582240235106425286327368599423253591992051875980414772663067304362660447395539313570858112368670913203882911011730705075951988323448958397201606071765944611271654444235382164627378268114215714090004258248509667546511478071593819182217774339092332725090626706009427837485629314179335426417504342705456750117487428336956456010577897204470150272424438660223388091337778116855764958155886281564420695747383351544707358473683081377583898928487136164193785790456879907911530541422519967967034626406365933038853984687960822014808412173159789514294555293377885487919160342927092050048634135999109731864277631436605635620446165870377489578512666281280211665059650669342564715641931414810400526558594730819343163286788000459240223771880575917167121360751284974693773459972778360404900677845292027661378085425160793951593774033333837830783399122614675016036453770652614681591698464599809955416611463200668385317517270433311522875516812519140903745019680110115090173765467185680687852414997200366737449723278786400868532286973089504104091063655415551205000475909761539018749067534808959680831609341153677683225724202069571552538263580284218275429762393647528338274416955149228703566103398986523420693646073502575277902407987317789698745102631058876294030469532964911940022817129290871819642683063636501394735602140797910201806391725345084517794306973210035283817293093024341445681647945314359402425636156403544220353709831687822538470733297504220472233304071107806104909556958614352734204465598722537809815576821898823751560558920932153916880738993545389181090432183841429609403446536366969028759718060002444280942966948096787876987462529099446663565987169922804817854120317137793011200023526453749424402143952937029479701610660274956395083805803213061392559143414918663568142939439905173640678380483469114143266318614455502311964927770874096289385372389381279182697055084823729887284368469249653666049668163333654980025423287372638536852346165070044070980579038955906515211435121171692109775712380206131827007426150118184447679889595569404857041881534735750594376904147170222684258488228049681490152339366166770019019691862335722742894925471764432657355003495143152646434259459544378266210969598011901593987822702177036686275271521208677680942260048582500900852043180617368199563184036802651618296267602726764527916605976779952122968541628989402100388937133172770259217173721125169756847306212026514177281842751208306606662758150072054646457524418373408585441697165291366565122736582398567507847207804088377030082034293607351431391269773106332524248389420792635302600753186115094592955704899742779514365603912006294845129061348530534669472400374560711401632108643605577917567573438960585774707430017799957936569159248786228885133566109437155709339673715220930959605649054237862222393577629145880642972011999408513660405443354097450931714573277049420911743515433985007685227567163201004580129152096728325448893085449233797203924574813334257467718321838218139066137662735299165980086201122395458822136673160260967232778567025280438919469997883768592404142077750181026587955682183524730210251413090847824684686502724901148015766118763974739041684362291678072051934966136200403629532077086707666927311363723004623428681012975567873264245949251372487249533887203148370712692810542709384757997470745733775146086939514056925807722027791629255219814746339758172576470717458780624143508723768415815533884471693399214364840245840845778566146184576281112897549710512191082876944994495975434678897088483889610203515331007385789009506848907287981500625412053903950235404305537658490137187767977153770577834563829257762661750606303639560480324370217332848850868174762933350355468938068095296140810687629013409567952574863733930972358094838921076783178471174417165337249783767726231828918426477802380591988877487198603608340460895358278059558761645532292179388732666939655394265666689377765942346957989162952509937504342030750322367357599735078374208805103303050920878292885694891758532067423414951082811867865647276544939875442720881034803882451872215307322046100115768221605966661025980206979176435774743357091742416045762527079487234715704127655566846179543024595030319787654872585833129339373483843801147794415525319379027411400253479906978203684610268657682617697901565836347042362189430610451216362507915693718970033722576689057853082546626033241272036797871718600937122075648887860803138084809626612782268147746294535582738319177320673449166658334454553520067568309024696654012924525859413362005045392925563102716893065526260802999221386168121932194376549653034836449166271666762255325694124775059017723722308235119072168419175482965943036280483990484555947210641008890443380377714136327902055914964805447462749401435110358102790405927827859180382509903316180997541356539415224451821989223458028760902562030194859891920220492149517088871896337218801047935143556597467612262220847338877357074454801404175563974689305216382758351203668481962829719701475037973622552274774551161544291592337534876788096562611811982823402820625246593009872185355812321133365563093407475249447866851984565064759109206438413943800002909321528035826777118235247833340991641434557596358400276446830022006192268097321051746796907986994971035133033839061080626817231778054634314663978369468840423930530546859334095957781355024571678994010528563452979318657637821549149636940331574363933430398637925681354374022889909396181103477415311837619193045669848868762328815164229857936462478616997857228183897309815927544256302751877946078850135277007183447935667604538418120857468288594521560022458323454419029820735308220060277581195066501859114249850306707744289902087681235264414124858381034837674466506451076797772498701403343502998303333500763731340812505318390173836692325998769868585956103343552728834297572092196370994750264148594094277931479447883442776750040696813055950096239116462630791554512775544766030990740847075854728602308944289150744571607600199660319662058566846206817108006433803045566239412348294682257712754027331119536434422385347664820994978553371979131384928096320721927897054549186070591626617001220546863646805708192661192910777163581807782215940682821723604669436486617638977381634977513494108018360971306985670426710250553668695644283823336390050537191434246033130951026130805826862903467462436867639301266413803186041326082454795171103177601534696351430951648289827166517556036278805720403296154768411574408614650699325724186936039996900623876227023898845027199561547733770880050387558014041047991423807629336948731588922888987305210155227198359982399990945180282120686847075705362412434753645230791551336976864267607804498765957271182462551016138292659454789012496126526341440496323789398956287662831335468265948748586106619270656527965235565772950609893222964932736104224859062725865355474535214883559972735647211660159126259870911491860577766436637048366988659182927871569307130152821931443476574002375879311359375872841901617347215923638257219770272723851027138395415480149240541833079605018457577214833004563008095797832175410468377497120488195835511021528578380666765290854328629743502083413832424802131050866411291924111051944124222707025012966736573278105356700188489650975590683162068982489409345961919699547447877198203913110183246466552675056465561588457822801985601597647664280193735109633535724845227933132892839459486595663130008558561669249824093533151702225657541008743224738645254119795801548750927567174493546568398183003912538356613056836208164418558495829479635999185561966440438816590281703245231861768182693312477848242368993309544054933958170259042149895813043379875806702278990551555087131874755367521172836982920171875327690292565527569502224871146419054074221810004191051192686027054884649858848616405168692677185915588648443874084391959628313585683037978070145042487608463249063141090686191733374003041789943644826347690862179844314202320108081534527413059428531391490664039890182306328525625630511468831387633599790746398124598828438427856982737392956999762005052784476613930743297684138830619736408740344362323631129129892263967276576236929692251271812605974263547225651723856128354091456160814942649227353057425854629063684639333635753349456363825045318014228307518896895556664070299076780298775840940960741416877752270352834114812263608124785755101760763794557040869033288911460136382431575038121429452452566423087370254225956832688191138449298809217974028105512194480868813524899091867672383003417619576220556536769669123566157644964522284293323604931947439306588915677937613904597743521984847799412678162531397317255223532748610566336170493808906789787650210274075388931491045896189710547745773821377603013856921800602222784229185447248111595721459853212654041717751993923273942402970989731931643701308357621451487965334071344678390725401201194533984776575500603097017224057552322940792440554855989784567986783888417955293462981899085981674502348346277392017391944854299297341726339792289771398262676049227044533275299720278793039403777882852600619739365850741365546963137685325302099105619303889797871964255084758475945263945583480072672640200674157412660169205422118944455587497391690184955804715502224627666741517315259535796433171579713206783466928406470722062448449115932585709662621868175082051304317555258203945983649184206139328392346970014111391321027684622215194227812231388710989382607878313807033701735186431698297974448428837629031128873197094025771841198703192265397325006036061142318018729402586022396714310449516629090308944723946307400303455878094038338707176275013580755922318200827307519466784354617326642284947139714180270391814884471822877562769309716361122868723563905776466904135755879896107393107543575129664548227513315181453233546172613441787095696664625399639299342812255560195531421024939715161926184600614448973090323398911323934848752642172324371462428717866608662777027710288930777627897457324732679083443791570844541012693059376680754959932260317591847782043930061513857140088349563894894401884075232853135626335710917229122806143773119633821202862798964997363816415888990910372474454036333682871197878916795338676343642009722970905279023901896793495080724089146381407092557286609703507777494825367216670674861446306964265597708027306398267472044252489368204242624684534404539602927983240694840329733294286615667271762170791174809450935177082722013997962734283482566989556153712838199785738425754280197833470788208201086962565923556283615969248549707158169262698920272715953637081677882063784752930980247853418654862503822928967234507487877315826524638452655157216015666157702788755893122796268458778007940154449396945959672312296698290475329109239563172487637448473049546933181394324903339218599547481240639759063396473494260079304569030036188764059193195440243579248309095154815606659398536352636479672249297345733719186762988507004339010911522647298123473204303605922308501010119854770887703456593570159486679587075696438047802004927546390951490305067785300147567258187009873509678484230804393719121339678089740015691113006189439192292941846785783610058230061515573805826987997353443295382612066341937403816776225669295176972543679942758114224083651419666912534407100397267051743642624893943661294271348386506618393961963761136333160540619449254097284811003563877655375122538512948085481532539457605791661122493067792599152494408402989203918384707612510995536348539628157362468864204670719358257240477982325288916898978655163385183753585013029805593052403673691260999471433179375876551376790645963078272924158914718990529400674633621949845725560017100271670673141843556918004049017902149679034245154842702113514140062779855338913320068779079131125902229032796933766680525729715935774812242439388519923915640366319008905083937466798860553878801927157974369994492099337288239696831169453604109366081552253512325909445414481655352060248630432252671376142624486954601417109324581393114132504321652449865669791811036640399951841898949897431712441049935164510225665589077746527571036557348794245664013254367343884500173579680716680264825685272436479996578624670324679090081346947863719726184240954004566704575556918906134827458486612984214275723860871591696732818751870702480407577970459720082383053326565894352208723484061815577139193534962096751592204541482462270046196317849756862797244307770187497334439340505545013955994519731145663236525363634896082522228037216026471688028716493676275224877798119869405321721910355586134095618113715158263684948662605184124228261260564693141427439408438001090154260629615880755166815788279549663927116756024572972500975057548680486844919144276159664719769847516068450441815655582566815566429806057920978323357525152105942642516323346669330509964390520179769913710871575602374286389271625176622167949725643286541008848517290212223786224876132064793602859090082305002319833621171659100223948744489613445297770716313622037728169872839293811867305589077599954315087889258318675784965323526661541911643759837359599504706939805456274047071689643645981582353705136667162911351391072272391426899054154000438600661757436655923992299772538143337548902966484944499122797613822206650139000618595778993458639338496978253598100959535597756255114765916210721095559044506695133248097333403843783629351188206307886875490771947012958218554063725200833028717668260577002165354051830171821036207306897739156441097650077295154295193708557974255959977665524003619449327884899028614891912612124224731442194015248777333529950406271254302256777083831005277218178382776543336187875476314036263241762563741276188874147731664533842248973996038669193235856223070040286596675288106531649084297744437973114975652418809339986190531487042773378686506219626152183694951254019966613350769671640439119450014369123727040520760124715493445641471537980309247363171260676095488664244468874438291650024804256084065093363177819129263610799867463013532358039383232227675169866796137756585851095154375087928073453097484434704197991330144217028145109205461184178907620931916514066298713445019593373814906327505896883396958205987991583179257336807969969619891989593450699974390499320438699526933418917161837376468481274913224954159839440644710765213035953967481993155745688011244323429711289280061212301261242353576928269974323955514376985292194034181894767997938127945644357381356788192444666060013376138712283667960191054136581276801428901568485852608531230091861996753358833299407495335903727434144935733749700123896951515106222208735622556206441188286771866682741964160835219231977024796370108387381568372702062206320785179783018739609315056899183423496482120247893119584959866896965622230888741488896124102838045873921500299674525288296518367374801339562546553838511078155294031030000306411254565734265075638569351533996586014903647767860589111604816841878570334089577602134864461243095996653044908018215116859184620447231600853929207400110815498909536173749732756401783200053889492222478044869349466302997185055603155405060662401268462475860970993933917060300060240504793435694563485654512461433944013619631374213940469382368346497298581329357317605702328655104066461407621051055380692073468518552937403119943110143167701081410252159798597371104007519518446184777175498074305582084712748983820989154919992700180592935810305162879135847694105756552360355200807597747624226036057916806386643717107971913248367359864069898621285997916476296282336480508890571406843034978975893050252430066496815982088630489945640263162782434278034189213792920574162826528764906469234689296651641175028738343217812881471311776358272325856867617548734297602397156527561094019478953106833186851806266033069803328164005211673720877941421299860430705591498390895366977711377572178224092476405209390737664530724218840672376427846061503489722982815608989441969545309053711163935533110485487970810590001928793292815599085411492844768578942977949365160291984128539293252492766996616695865012870569062144665331545428305881927880123950359369192901293792773232309975301547558402098166872422775722067474861147548201887764165302083169078609939500142065215273277367210685091968263025549942605017899219781625797615472987090172577496455375128188627850734681927411593177463139054778439466965309083202270877688345966680793111739331213906981307281378930592589783098794418090107629689378970938782700392221077780874827530521122437327294757156425734086329319336643989171638835091451211295322863972368780744140361726908972819896278851026011122112190947676875579276718750762689858256480212544228524875285961928455369168478538521138290803152355385351331936459892272119268165451840715918130997370677872628290430520376901488688378085223366973768678024818884949556297710259848740395515567397976961861695310521871577603515049646292124275819409954606245626378502609789396977890083660268494110506182829229964607746816335920937077344413624716219438438130538794249784715794176801399738847567633566431973070679358054715665582118471035440661960053290253007629034055135765204634066106583056849061138312344542127463891953677375803586273386900794269764905350424191636879826125952469864061051835659133653217726464965220954494135541680085570393714443359990097080335060045315153646472129433117815474004698916330805638291011199664869910150301732558584575998804795987079739118775265619579409014241090925206853585303962880578953062063469413733443706213746807281662957850351929225017282530330443392982721534295876201405154124174863139449899473672929917005450366310146265491503692316229481603993232243603586728148075475482784277133302131884426773587083445890934445776938905993283650309840907970163848312409321790043129099963469248851779374442788269194927880138543629646868531332680337931610509716044516306554128031500721576414035657163344017540448295084632625475425417788139168252480619888239450052540662047622952231264360050892507247016649970763238548196561980153332504122201028217535885320183739144698950535179549522614503257128112162463232827261585516942443306739164055000631869453596874233352532009403312796179806465889314265906975868748519613518919592971072796994264631801236303871159376707961920466296977908538710536334714441176865589499148967663910970658806498849258107603022715701452824609218555049326123043267393187711945489629173643859630092854281130934102306059820875900841465642044749513760402384788532078733906672775243408560045130130608089939089224982987197642472573627498342624905731248848032869555957518787440847478139266786412749755976675777996075610978789902039772666191655136390491787992176107359375239921641606819475965642145560007593339269064888135998153312295284543873809700879163405829999408453294707885338231730737978018783421826606566410246354249712131377390103082907008368978578558519696928351057741176705340838335298348831858576276887792227792443563894371259714167099570044023216223670469134139571844878673318480920884977963082167738008689028444938264333549008177555720183849078315557375718856912459557654945120898587103225934207662440836451386741542152869616348289570917851246835035443861559585147998793206475001743252255865176545515840245124607896267982742035363515085562619609012723581774518509238296791624702291646337496802649285943972098434888249805147141278329927333661557147049207749622486773209917291545881474772973684246298004385570702038718340879895585672603907237620928968380537694934629961719193075648080781272317529173655330395584415767985871316000448948007854815676871311972928728051747331130609958641822844774141318201944059358974937295599267270233955716050625894642422376815678679425361213450021749696452373656113471386375322761373027300949999827669636726117870776822394394247797053079510217092858768622220839889736734191734626282253562295227989867821618162638230511521690878171756500833129874930083238958622961484029541308685554637595156716086199830289192053278236248148294431323671138032484226115376224995579004257477418917254690474571517690987942423403628974777635536140312472918585286855874192556758222796964889293879859221938065596647725493283026983294030842005303756938183338855884149146198750175741334033500664894121923703071482729237162303471596581671169037173034769633136331319821823290405146321552382850956740381390540345880405110094817189295799141284118621055120541927218725150341651609214737679550469265943520278625346879716273133692034557530929173492149815782107655210221484410704805218874674234838181130084376622721783150463251723263599654750262808861065179865375419699422598124630646680250386307131583638205283157067526391510616560851782086301206181951872978537279625903649956968136326577490876024148226124636845563158641754393055636316310126566226734300921721362583259982739450395825480369817159942079834995175279730160880357548242461411660781362499093778201240224833773386487233883387830593391782470290087221100811740099370748167143119590315439891330496899029485926540462369928709150457648528292502735440265437939758242841382204303394614530408431317089510663818928761953415811463333076586010921053202993114554201566845787541668438764065682976506386949085489907215964447023411039251441102354934933696891162395011243834943065303653846883150994425895763475085155743296852412869577149084493287950600364560685910277382887687740811121659120133555369964331391545897780350291353970991869882847474910400938724154519449611776669002303744448492078156509586535424915421099623665924525911495687814871613125479339939873922222783988643427944170462533117916715707129375169586176122821675453040763308704536352540981508838395879267540600499968510919561749159195696744264910145935378179061341016248251453869749896980764617990108444131703372750036901506880368585766386296895711640064016729610336150057218657005191174785530835827350364340775434529037653670216114840504560506707145585257686860367395331696189515299441164101928988525829783126335353279683594230941566811601064489160495080077177571431139633362182023003802796207757837791097143305916347254844605783044595610455133733906009011936472010348564032930392940197645547712636798180021654442804891025534434552276060749116192550726445780857225606071126575648838512944508802533891105726063884655597617050804757119038678123410380795535931463548092924014084915824356324004147026696394143392429811704795179418434213722579589078261263545093387095776203820791492212785112413289657421065331878703078037243226265925234496278667992411251187745088885332673032840149794336794160443683681445453565973964289019057900748482678206089818456498677550267312490388595120562133996421088591201014389277404250842378181479364524033004004974057840560027555592471199040016127925109965091611421037251460784516825941327558344017041220883517869748649024322683804527911651547756964339490281893984186328939151433741999147700959620436324838566478662596223036401063206012936451293856291047298012045228153253732566833087639942804048748930821634220602947033658081671482848156284667011542420195551074392064125321858152817149808185499335741360633733055406093609934028368063559239662517905829141597978103754734640307324238005807492111597559760258324188559546589200061655031604771996324552312447412904076687033735130155478224167625967157919037872388860342875428834101281270725515450336429078542388911652036489670247879719893328597920421569709851221041348294230719736234588122829993855540987514184563949238819165831448460500058684645445275140429658537405284330817466086405214092903363614222556708141671665854339157314185325194812035841005667674473000808130067190425817112109167465656763762081153489591087098889112945117518446503744547399078513453544605105366611968191294832599064567432012150183835767520174339875227323508611339140194371797160790231223323953969801031359896107213726799320258518282240358034404342462871810285783862146831012610052550365633036583276257639775822847069913898071359478856449901630383228725171969013922702572540111944902532854074198951567149867715133682288939105507916855960258391482353634480885976477039427368969575167817670762942734167141489031478363449773030219820318310426526996911059193552135639096348295238496733875546107064306891836755461848149551599386036902561881100631968991579801520427873510701496280098906747329126486276546182844275478942283262505836209293401845669480418814513454113605111192258641547143755834639360931325724302275352370192802366693296196543829158203798962072538862794561931113827874189202000559190341657611785945488990963120340000238612716981722149603485647275589787315850485122237874143009928986486131168746932567213682637511483917201108855155924879562550114221477458851819136870603843829751221193887527078049543644561777312544588095219829088563589198402880005391877437550148816750621575996800715157257801903536378471901318506578176023975717218967294451272388113016384927202226449174388216142281446387894192564767205051518179310247494184777433949148177207680469390885265333911893433571727343046370293077402892201867714132983331297003684927776512034130497048003698847303232168156787359872341692733473847369756018618054104066093365290703314603831921817975070499905199121959019356193990391752071934419492042020422954350117299623159410122978716266157443547109544545844517698297964515312302450852226615171118864623898442367864896277778354773439295318315588321308827925759641043202336855768102873310225399300790416583208672647328259930713291623589070650658475233508681773392982380483531543632111093766071843949353869302121519074329990500895192012487439328238783395712382239170830674611881975258550056088906202619449253248115493617858693421974241223146064956320666617246685573651878806813220173677955662079463549971672329325558780459192091340789083685679249486520357464571838663643646731653852613458086632813709127037764442455020212099168917671837982563333750304059894746390581778932613832854213544315925340834057132441083535077876418865886110774648910409542398097295287519466295238891443506562704664223841645512518917778075851144117274258983610164682340315621101095573926766443828924700080351146374555071732910193825663604801774091592902824569204494947028642450035257665749420418625610430093863150043731337759712464596931436853910507257098543456305857977124889784455859900406815189184467267237501959113786502316314859089169771940212063795391817374611135515281485754673418967075530232602705162297692243123978713463062146214465628433291214062321275660589273072450271739499458271239676287973229130302395539870905927648125567096572557346756747844743811654885906292669839157294616550973786085132947419576406683602719190707766559117025983617803669294956558137969808414277895557431930431537715592034608333677666747422892720274241862679644546176072320177100445803171864895718434237617093546412990392541733396273258119862906443989235804433621021245744396827757435807524085319443773052696920791879807259807426000500594307395850105719017352953206151662579666379985896845657639326602099967551303663139640930666467918886514100389185189666438280426683195592892016379597248124642553060886420908042080329060855404893489033281894465065115457306403241470430001507384962925908337318652571465585935308901786970437407380240995053086444608795859988282604419850414666362658130138905834062611956716884117869697658312171719845648897334794830116054416678716857587781280431317787470430337560687409851057975188492181175441845841743873421432337324758618235472991837430397788832769712985830262538495406836218673491857793153821505577420147735024308562182329254203240465370194952631665740591977171010365827816879854302799175869942050750372809745555732386317087264814298012988681001713472715655831139410880511455154214542512425117774237460359108035872554387042026226899568424621087986961184117725481388462687632393976147716693728117915465607433552124835869204556616057711768337476532114430630000642410062773631232942646486969037289830382115754379471047529002245740394330828753169535045666971353608326522424198028824892487401946460559495772068125261035496349457713362935720948898158882470531524072197808376698333061319744180878362489302886608730092276467722127324759314111743817872738864259181925271560997148196702946008724384920178181956637847567749647919837756972247802501834020282815107558022795889761724966433318654292750285208055188682273081611060583897739753046656943830707631994059142343794986901602030415448319311683718017460482620943026760192221914314077756625201869576795218269429037979620363182609415728073630293087759401091849770339353768275965295633457163617502948383378782785901330049125446115085812987047509678810129824880557411722419613818952402668937730508193398404428423463290342596269951730380345416979136594639305669041179779440843883101593527740198545485666222011505556874677172542957969560077251146884762064666052865529720794421357277482517789470022493301116108974957911103450794798248868676371285121386879085272528733951874256076901685159086052890413565306552576008870748853485854198930727136337569425635653655435213628730637224260298801723406775283145960436918748587310392077220336917806492341545882145134145543095816323391833441774470902441721776930125866010781781247005373587802796865103456825193516210168060861824821249740078156807286635713215440062380836344556752681320090701720753084793252470605944647233805140771571374224469112206764783797641069637026768440850784756106071227933533501836246365090759503297974297500883448142167452863872829341188704235954830637342560007266903116505178867313434236615259600134489742935863759668750074501286940699393872046742219085531941939925959295669518786762287126798919027060052293878331801858632379764003885091748759158765116841743485779410725198024184142587042468131278960853131291585062531551708763908930468615297486846722181680234780208757302273256914987581762100283174394968156317220250747832924188039321014608490425344970994293260343864898343257921930854941744889611261510376137634119238152803948813124344233394745978191438925389624194970378581427007431296413862256018513498776008910073883266343195865824674281591865703630245761636200628449797178579643926340652329376589014128103610082284166329214172581142059555847582535664867370848404077053415280970179042910915016877672826059653852479647712523039871310965711886876970663622107150658508761919876828638676122563096870680692793851045388826109142986394335437641096950824594143305774096534282796915223178761522981796339909565979167878794236782606125231440352824303010901569795811307327091837268513622508510912364071739168161169519533323463164692411181713311878732716255307290212156608660142544471715149912670527798797272379800636347604026739378630472347891453525869244360553939944817094628721448115706021920432045401038344905258302465290036751359108221959541466384484611429780457715606156641501016737258784376120527036665422094248460014538325634407157522519659723657294342176925202666719063605817354541096784787635332474481035829469194527173487443946534129352276647233671324605384157825508008795616903356108938430482197660237928691772871103647197023717321737523398071743252005040840918220219224199431434259295159808497152792754887724067461108762594300895990589406520101177393486088989968099313677413889982309070898160980137427315752921187060202094423022694753064326082603748687483426883253473158773921278168277080824856740003346715878297718808720246456183260672578330553142345153718063157833285204727412685074389385888722685232774627998637048161810594020879741897296475884956886293674667002828018933948900096474314667099323401236498557881457391105024668322536955746355295874524539540581271292653004236307700167150423269314187717892075002190874456040140267370551880900949209411809352605706017981126484392067281502851627538398103901570298263959805287645185274421594079488949577566244068561200554607182727312209639707102423602079818976822624651282853659732621121677892919409979598185970339803425454658235805085174723249434995771758212391037924148510756655393222957863590801367992425428296018793488816462784961187514211293566539299196872958533221732458827101843646319113010396312360737714682118872024694289350829560783862134690719900661571288312670007522951168856084958073037146032380838127144494369241530752881909101814094061672302731987627755424731618904871896444248187105953124549259589670044277354953538929817612438831880619034210499356484415952908228091939202380007435428972952858754813534155848913307243522843597797829709674638975659983859990456434257586329460898102053945886121358553779002105615601607143258534917345907509075156819187764838475744928533317307103612952291458109833086874862898669030820593283946667735109334390840993687575642502180288707661309523592609741302765953295265250525134250825105807939251525677408465530527359646912709906750437306251675507422742422195215296394442621071576457298446059410172826607789519371931240467544246191933384218295549864978550797772361273724155841290247933723994643960375576153131067152033639721199323854059264491624928076606567211502499896447548230639605935965224899803911449054299964607043454706558737267715387719304861159828015643342481823479403842681620676299632384642352218998316362877053842406720785973564696898688474520527676957580299276376272903128496116660840099208321464705800097124788496095594489808884705624933443022715519868490393532116018518258353487042231053402205649631647400201124015877947779850027313754563545343305746028332396044839701164742321685902098507025204370637226672934441241982503375738743859501764536922873517981054006021512582145758819472554763053034231722725267032038031681927919288265228771138340705547204226710540106205203088235901409188468178116059621901632952041831798310518505568568391267464920116424751068981760982182438057451156841496284833274652989701342254720869751755707358364378791422209385284942855781874242076456415815589423906516337150603587220066820639564331065161958095474802710405731480627052343118263627223421061135253200911477262496599930333100974531779478907225622280065337159923418297174682629568814019433476174633005175126830382194754292110163888909401319862060050417659469447085705328781564717917758662431981656060849753856720393273893602476873014299462238926903636575641098054704755651958403331968070370527984839440681440730618258810475196518728940054496298770198782443561011700886826056782462043096348438249974409617590863011002418745518347117823341662385245555466054245467054868855331687002395975672585034551446239368718971155674849460768784179168927408046776563209227810914280172765941979474161994779234608937946593011195210610947587733319797981983869930524466175198558947833901028022823021732840533856662485780632473941337548178574453732256807704491393200399192102222305945848028319306117662982720652726126297711466056346691317824309286976918450932457363718686058282773327408431642089618699079540712608734920829547140575072340012606223644349028502835292325552200584529505736315544148482866894471811728277012810822587795257343339165940476593677359210249521944381228265595376928305142767379348533461681475823559308587174485753895044451938322762656275111743692070480865648450259414439356729997598414468386047481071938164405485057822958070735734803198778944709243342761708296005872502696938059151378162852874649835016019191725852609160414704348909595615583065281893246284011829326975341968930290237506072820967078102260804927444246354430461991015503589015901929075842554019064881368649902322435035344671074143075396959232453239647992600957050705724171663531372316036024248607409099496033611895949256665902164295291155268551668900757678305233671485864286954461869148975941943052100176875668723281602375604705973761309002455986421183414655843011004991652526201156087174464048555953611916076910682425701631779625635597573618446799699003583182473180088869311505761415235507000963713001430597579089787209306678447492561329860129664785474622278434555582617944008099856968939085015200550699076577803234824488944714542543080195099103553996763439021593197537653954203377887867626052801237320423665761745036022226035565983053646420288133859166752252368434085889191508223758179558026960045709745495026694129733811802911390721867848692706540014848530510687480838726827828727456688768833231746682938793959842117424279304709685164054341584391145698650614787295072541374647504543929644051759077600304856658133418037738770225631783977032881686256180174756601728928867202380674484299789447914523940437365103691638709901478608097476071318096090576017269225410570092851424333885389551932350134849486202011523667704575199803827053021359396026363689012101987864115330320883002213465650386240650149814798318961994876862300098665528037333987129753896217341551509465340629253470082935367168712983156456131186832739573717833912075145809809002631647366441099436226400293284429003451936750297744807154953206274035238283573957605474631586249345301036362254323982430823059469609941837209297340698086548649677862767994188788082018109628412884597357617331024165222799759509748220268922139180428501525319629779574191029366069782327906314936261543842847222354812715929488352415508107254792416851907056299134435256910453963455922759847039098398004546192749686555233763135202018865377371409135463431704275812295636507591405095226154743876655873683222702498681624290849846870789008221109455381878521348658388752191511531346095135958867054481603306055823492193629506737706780999602715082022139585830257107087278974803704171998074436071681235773573248379634441954412758954766045122709807611196681622564547480308086421620154521168257822564066036551756277251046267280224619145215626236638086574196906292225804992731629888431328676082720129193964801627901855321273528053846159871339306859651469937307213234187979364385673827081520321161315933345899870748420996946376957302012820687573558210864953925543763395157085193947831820870285001804087288167282381481709950338482670713320770442473089795535608085954772316155822194009576626124161452529396064058279591314382559524433945835044636688795177631248813066349099995623130675610541323342791751083537022319790294781259011934211124016528738819891344697052412898254343852459819041106684458505580780860243153915374713098559856574400840885528567191755940611438180004223028371503466564323734648812800195281290017276848953050360512200734829604844116531044206766984245421515041887130642237160704488477687843851333286087654490235102284301501330165679261532458757053951472367303696518766967969918551180883261469574284165798196995569820228843032440140471943874613250337326068123066703849971287683790748472144058179429032866785366473621946713767183313401123487685187238039389622422745509047513393928685690296577548984196974589621864882569449510785080905949139409023981091730915328405383271120955216289656964096242869427266787143632358258489764381790200314294954584889331146955932103825991113208164660462544314368829523238552818600415406941971086031549233620015773433646435147419357538186273017995594722165831580073032309827834483694850844376235629944272087534457995479360831032910142476170569808557211085354892728162939890529101137050348440651235520690930606849452131543562360636951487177324990788020805373020857894208783733345467554290737021093792212068791693376603032865462589022098673094137407656779996930925152304580902979673493392437830101644112681030046137265254190281577245229160574367083325346555176864734787194579815581752494974527078489267201083729244558048818686032719188831069551484662458253879753553879577290692873842814986291136495289073351538300244828464536422928983229511348857708967967531115571874548188778368691305273963234349446942065896175849979211923844546822374110095170759094073857928243509641544453066403936905763990437754709381808782992110685047207477853450664264959461022884146857997265712271270059581642343585224353841475996534667484662734629105557290215818818826253248954556224352519927042620498498317172194996768800064597622379255803102647919402685837647710726960272263085367220738040247438343803405184255466388191749658012387633381726340875881920589430497875758046317441798738918256638775948559740681703082546110961048345440316786579971442472131478202993694000442746184905339518769259025014305087957364779899807949147458330181999642309808822030899242872295329945304073436567609335779417915001282046405268445677617101114461007687222793265165949488623235546953744946595414761893278807276824409736987828288109901087319572904754137901008562631353586000556250906339378437264557954580525127248440726767026497235232608928705048111244862481276864663420260498437545822593106081944446963039319145526268436255890057843198885070792606234231775550640413909716133839215625414739532201733726719866042452015499035608252333060379402067365377554651653471531520913909158144744268869638695873113681712190704460911175730462513583628544200391045764724292813230296185307720683865691668488584376099297955434558752336993020484511013871701862896029099452197369788257764436618337104272674848534377408252920415293152655612119842547705697427670305427950338073844440530197409859339017412570268114273693328790686853734124035853939161530960570537743123147366705574182044037530637790850138311259653038394802813740865762930385659898509082044879856351573889719745043808159514324060571872052492615670198243516014755957642258316186742763932104291373980162648088997588831931632873324456698566993186174705409226713285811909362925355737509608876400916442680781685211331693064217902941013053116935890136038904480639385617362600138807692490250378173057369338062391819955740369825376897587628626922495572080062846125607789753182173471115147362530124997199812987964054039673060169268109418135272120455610949906647734959960094655167383979492250407465279525091673463381676269747329025040458631605664668886920850758096201830701095704002467419679748556533595300456951523085431599670607699527707486131179726854396895926314125661812764970969084533954065085316991369975544013517965742461124993741330848321330641345995481939103527442707687965208835606615590772761771184123228120962028627494432838275251563883854192468940636354634101858063733352498024376194362302731843266834327345111405519536222718127747288811846043059527381099943809547049507236791256989494032524523770349883857868320924511925188631581501586552535858285284791508128177188067973838155707175990558310627258383276134688448183330083895866478569952093232460400784937524031319300228013291578501369274591062835621609798041846061109344185834082890871977434388470945406007171946736733856366630309935226002687711444048852892009842987463352636140734743019071114214317036310590416348639456436522106828189405792125624388520982941181193816191069865170132081327032352772715741371077427513440969312867743387532056847560244733548532644108087650379907729505044399698885978677983530143880181989120117424074491113460447732605383213072563427317193512339907201735576740399187758978074970947902329145992454313017157074308110754937294917777248052900932594105476689508693054909183839216243459020069000156870321257254730126081636875101394446351095572931248873873871366637458312647585284364448001999943670382370233439400939232714568486465400819225029009478462937248977719253943649043771825018484567151924899219225918397017102332797861771926284441198173525617880722596440605579709395248840230594128536803890418289821934914467219633648173223768097095326055105031583897885803999908667373106493532577976464154441043635291505786069964160173667152189778118711680156561260743426073579371686690182899921569742316299783670667696791007040846345906360956380174275786077524384359185961423399582007071716818010031514944849180812352459527250878127211537107448211828118969477872054204123816865745375929138157103318636719893360019900865401299453164345282766947941075414234703570360465707537992113593715490744848892531274162940125731313402602798037752104152746255508776538329308764475516146441892096014725678709424306392109652535835704783154333771391880933943955446966966150782205684563482914493724141585597690836785170215858530399372791796632815560231734919663255706191502217791150896843804609397665492018784307100543313228404414073982756419261405452257005015636023849377698937369759813626788167610486117933955359542400327078276080390569783369934633987665182481607350846090415545323232237829018976014898037794896649276250756963245619288926577257786306247882379268952544347164502646677996047649147628230990465295449224895525634543735170402230173768816918430822803181887752904315313176117064920917349567651875421615117774503950572858825169487436595105868781045173381905154536225004061851532851689762764327464466191486289533421448987128300092824453348758397129080451352849875997181931506039451321890762405046265606337991423955600029355617405503049721758028543365070666853607716964511345133280332401789133606071398056175651046748196646684062748604486224947441865277324189574767461046499125598187159712582938965326549976084155657626979366556189219232903317814444004858006516579754598870652322169702089421417187473918756568934412536687919518789710288709616269379498505370387853429897953781464034588112766477271355709092072675638543117694132808169623308911721090678429034807771599529640430645373441080172984466618641753903806210353259275319382813671020415096567740314322116057651525660201166496814330511214578012936436739551312539757588705214732680685607489369176776296140794678341613366454481418414391249459874749714345385586231178686318921979889996206103483493793470479140182296899119926015057587234702826502869285103299841094568575131679083495774189000447919116382611309273816244949735626421641864747227532657872253292512126953487217514124097197220476222653997488838560404768620559657103730700590922985096175697177031620672149350422185687461333130221462441360006373751004645888787497062799980011888963350938576013690719259477095643764001559203616582013504091439560163160971679802048632173918411575213251489469139817649845055073034240877418786510191955456182097786549352087749816171864062095329386201917472813673028137138736929177746435263496414827409537419263154081994792897951651527061215657491215196138246231641950694233922571333055213692826092329062948407381724035590796607720269303399819206381999676967080433420797996735850289494886471601979063341987402316079075975114037224396104480985624316360925923108609642298296794513860824213932840507172720030510027275298449888437987324548215238828484908911502840227916047762439875403560080549808236763231597790452196744609161034088112657602795726579246652153462047911471525983610368329834273303420941583708500635152258813811948481265713129027061289960045489167703616134722572104833657408119351804847165878533834325758819271529447960291323331764320100244457217742783314466083492137113760255697913260189302036175686656337923737684803793462774117492781728708636747636542140694591947414441661805212855787241561268237048096740480165874751164677607548527734607676301769009207676257743332817954046357008083181356632590107403013140184290680419572210513539771547392752980164030065337951439904875918896269428012961884397801358150221952907721884369385905615041844696196474033616246534564182428183324034319577065537528612483537966898567450802072156642257541167588199541975127330467563194218139684023680714672544705260269638025188018409876335607546702568501155287671663604535999218234840027470089818267679991093377304080974457877014597227310059816130101154788022417369093964483119082665090687902610677858300578437589684196020131551424917123059241832266487731181771477988341260536112810872302289105006338788188866843451749028408799121791833817747576835372071563200048211311549811658219227808803894405778120698047797375014933213796383967516121417408659692378215357252067271235805037439997384995578905555065901084555623942570884055114579366415237702472821682659502169521195840896215459693715266292226830360669947075200439170897926077099140516203049680190049252489945472653314082326323951049372399305842927652150918869966992473248460483238857909120391893913171350132716860395948332191225449847975767199543608710377843948248712202832908588756923488865726672592939252250179926315596429329597023920877807381013043536661584925965934452977324111015973910500537505153559067179631537437286076084726912365486051922057551269702198551634827357243599451851687263468624026980853078646711023831320944995907635122153961668326807292884072178041548255815584856405505650830585071202773503623719769826647064733796394977661230644604236628161221648626435768180035077341320743688933739277696261414933980660737208728953033095527192881924261274536600704978393829576238408307693774182245873210711621863595093627520499894404188698932058935553978361956551193879198806205700856214967953505983765798707829658097397514127445501290208021492325972919148492989800534064229259396616663367559387968210609732466055949235185665592055630323805261944715048026855169982491332261482374490733407309684601677370815100029172755728419789995275228965718079927159447093566139103814428929815486031511802663509314004970374741452568566099362770988759604711239801555580862191201540408708844197756533998043132544736891776858884331445589711439497987872465372613866284234636995053945543736584641380096437696127424447065100803317260507284233520383314339160894746297714085690065759757438938213699793729425006027096288926714775016951161486625249716862238189171073748782260558051207140331011783304601699334540574053899672737291429343185072244942693925074110069775208777031603444826195685010044487820785391543452674970205648876504128497441077296406519171111832158600132263501087965654358203578168693105335630331614439826809824304616840467138143756000521607222407929678824661577225591056642134753268883022420225928070922853915044671169557710137626774684781282726957382393511293005039997329114449225779127182741641407597440931591410853727273475353765802370681700906410083351813102055458102937657092712652187724991375936359297810580249462241343197131334475159470950628542068893753764548011256093865354176199698462198187269254774472208463230683525467235152159883036535626456132485633887896188735795259614567839672236207758062311146334062465456868990556554928392695714843376807811499338199580163752266725448631959795376626318267734434670523424267921777984958121417582672067388539103855028680435886377176514611506239980293132293842947120368826417903133983530533369094195349781056425736653141671736736152668643904802912356384121120651040076533595239279281736165337552036244212124190510094066666410468320397151097384436700412564983737764433007873345792430149245247699503901508452585113508701939630054544996651856552999062032141883282911706710677569150449451625441965137489426156069269401653341341952878624208577741958411607252402946767864226007289518406850906543932796780994000180973387800419693766547069799267373869777938819847765216064680841755374645644800152881664834530999935133029611585931733693616314627765688181211054850217014924167879927777273749745254351380298000572782498393927685250031789715234124887209376779649494705153557057760442387643815687373483414548212769934666624963134875401885136429014239831942269467146199125705463077084649003486476490186758774145666661167726393553622303473548758761362456158649800037631947842430323965669783512691963875787992759145065899818018247479114062047525400152139230962579012206151880455030546472500004920872943792324472521427200154963365206043326966997231989751450007256510305563983110265394014936437725054094797030280315244443931146361281587088866508925006329996121649496928228107270234204157840079878709952838784303762325617598635869216594362213334597098305013640373000184382930587283299761474634120745655697679885599982223944383351475303732681390067899047343762577045067154551384088782755728698414078530138819033467963867087212368403522836912897895190699466951870509124519719910577864045295817528892534687644583240253381055511200514200812657322331913681214154022022133843295624247273348162101866645230783908704927403220326051734200822953519984406188736023635697835625142800064902473293886978544842722931192198360942854007570109401732210222615607709346006594785187943778368019342869703085347489909180783144571746094304729320420447656551225923492479060381041045383089683035782562896060837823568822836653956025381267465021657611981140047055112528935737228157043128425548569475220666856964552062423382135546928014296559001685340185050982041988972691693041971298718314280501361323771162281464911580018408935617171163253248498805608572091404532374784365001384250656731869990503578609599387505870813324199847889016011963773291380960665093594731992170039838523449990625436533453506377475615342550880484914093460818215395850877756661915413380413901463264545111658965792537995361243090732651194024596247799770644640520470608850545471067013305352400810309556205746181951679443128894110261037307325376572306759047388757622867351117917365218515821752580349373673730001075611518762995196206100373887326989965335544850827140422371312189198433448571547541815458149619765885346254406941637515365918494770202810840836698529384514600623256097483154629214743593124983462541796563466150761421334822109816859207500961290235176143234769143387601805960185723316685227728091541081758383105318573208774245476948994085410946432359557844143987956970137187580458890894304605279144023067590689744511877314088689557175081350544313919468540805329902125007485074734388664978894615461830452629252445735257442960399063125622031100505950116791800789834476623556215555963083397831734359896844813953698385197307034729193115373609891188787908386653553547125873222732095217902052653673724107662634371743140392475560621037208680617003336641096360362464157380144804979483632539963267908625792843023708648921039168591782983745812067324490396383527451204654969873814641117437519106589017341377046048103285760902351264091756238105256678574194238324190949146664321977977027987948592117169600557386472626642871059529161222177784399827865624599906628702751426324567269078449384376533488445835071972097103443868663322020852721855345338834100019851857697986300409257757436093558804631837046718572493457012976962417326354217825196932107830714151263761056348890380741409349583643467702949761934001843419822215615496476703097196796868302517463381885135659932324937325215775928751035853135098615819299186406202940474258137087251511049671063088328897038712215947987047613371085106659351782194552218578142162368077140753860313729575968767380860468036313741603774431983395020822580095881741394094662189523966381051713308639606750243177352207644714582771838435096107734416316619627043568495756336157053079030877356271316650588231653352567760691792613615602041394930127376907309889324014552577064075053998162376879010153603376325758773811591544077937474074191632700319793290917068738663842167249195569473196700941088799265194556636953859820977828492863298100127323726686583059448000050062844503454326144757439645226800753324017884741244521501961412882501147923924714541375606792918228862994182454661382087969969983187413092849901144528483431699198805093092626084627180920417591901458324103236686378879846169364917079279440380280827130294445254046065131674260961636896293540210989161243225026140943552937462325037023012897093579425456390565695111761502085185123732169260726147921659920827523743426278524197967470963469420055346531431104219478277288554189202739377708921878797119155512414598210318212268693815656041175161644050655934204555186141656575347928131150259130520576969134537168755289736276583780942771441906816035141916606101665045063713638466193984755800064681533134544688300679628693090455159650261447878995708058240593066749881065868442349946592335547903522694504397736513587373646951008113570038559995735290724417842272227210540989955373748361315824128446229099841349475698744645371729823374555398370396779104447071128494116225130614940578406518957182458447512390749381385326579346543656548089290257241235791214113463369119436211094820398162659448166602368955927131006398576463024837794904850705847651400406965520114026527902979276008868794030247986080997815160688361641716617367404280248610760324225012102016224357356136868439751889867171170908428014315456544176588829109199637387983747551994875751833480823915259678512426309359260404589794097802121031925561043617326564999383423685651069686125517172995266222722760094901973275842581831060601036399671475682654104801846862667852643332164085896837605271809734290811688007960446526072022055765688486184244580178436990447270223924169155081450774611816527520763479057315116564424154616972603649736248442535951104774193803365053844087941192248220839048028055135214316161077712317511899571493359328389716755712224049804889859928676989102034920101163771386601013553717162770486865364984494394496462364518929900523326166475567580737408559132519565357547822873754704116234489130869873602000506396310706375016992847157430488418833745985731202576461865809887153273160400463534787863428825272966891119035016082050227534634698653610957818999506234968544857685785203492098932316211707037601774420244824410003609918065195439256774934696338548651717932125272514109931234820356309258250900474844514369385532136435818673321161057515238867637021261725658256950430400371459670317223109188104837983794891178078329897227070080845674145834530524707715334985548010984113975153698236087241031201258766692766658509458107774656999220702733149938628943260076017575786312724083126496220696441623421483959259467249495172094559472518856683738152440498337964404742021924397128843101025346665079850671046724623603659573050470613432391843983133427063506518720493494594747324833701787708391502387259510328184769907613768540011206693398166437158060425785906332032475650856379338324262707148767833993362306776191083699243960667194754359158363463419918376472302843573059685428594749147271609571574518723687807718744226189884907009390002692158223734469855795638836842050270768351581074389488985672655616178317970079036117564133267746024807978250966773534856674643728254203033040066946948956990600707047792336706605200257239271110214643196925218069308438252314805901623161085807422549628000111860443248158335737563564718274511331505863000941228913568548074165778472825963282926542710931653008401544019795085113055796400564118958394614988137495658946653760245594889998400512603115780744530196558583579906287176634654927721258920837487875143796600474875891021447295566715813953357521768795383537361613365983588681460702349794846380871993967799970633101235743160846274988951401982394593616116020075402999845155251210420817018573654047019030947819353913240826929440808110097816427368483898700748835161758687011132687161591125190469071784766489108321617403484373516125846516831654154520458946792532386385030861920956701766836140239519578649959927385108380432055533423620478956333407374952996799276485336069160261343892622714784254796674115539168002141269176084700413029921905441065336085278998981250743376109175745956602049652129041144014658202777633969638221414691057149437763006702717065515223229622091848437018337399376106683359865638347783962971340912805279278562259160016781769222471923030158335657116525251552446471088354792395540305002937399251386797103908563039774546537653729185686892940117127514491914242776337218591890727368257751598475750427645513346191531743173508158550972542719067983787280558478830116411530608102945110528993372440211660053253188490656912159006834201367458654071245164100393313717733306014669469031862902187616640434029508200130527076117653460151147101775148686948618880590954023638427449454587257898793806340078857191248044222570740822411677564357460811835048995185660684542431515060456792671904526562959407816908744586506294653810255699826961342383348544804685854976036592579301801218342904106752358843475946523706751364268839363645576871115155479957738346419305326380866426818773193892851932313531306149612312310637191060069438056441458331281403933711691976269431614321834592821501553754549292428470433860384585062024607751982225986972662234700345049735622925471548278496949071828747619229726096354423384782896183308949632975498461994004618952564125009816219705881805118419516492372626249536618736043714888819152595584155911234782938234267376186471602553095602160146685678023946196689831930166483404675420512469234877657607040543382759072360001403495892392044213380662791165139606217692787499210023133730012879658303911228914230448319388934485432149369573814538942126441959312767131501186859412987946316048461433240768438426176753035849143244375042153093428445188273712502334953422586378792250655902142007790477468070580980766761818739965980543115480963309204326049558769337577095381285000932103916527234206985673482438818532365341406151671320329138696432047241364987024106393238746414544616300084836498672864482286792043405930533651928758801578050926294349998690857261037591988645345056684015841694636722004753319697432330899618000577452988094943117397252799390340629065973333318323097593949521140868734533298407097429654362062719584656689281324046213784812755465745051070222014248822399464368226162395087473571080947432987822724618871253233028392409671732663642719325884420332825245333105556079316924758380166247525072417410222909404247797700853816342437142145463009827032398269362335247052896172998351231724652326465222723131808854481139961103628222859262482354174890869084833276514034043282000970101846407215169968228505087022740778256879763267585898126912704431815456113308894307480395779744128404314286969704431705403919861933632173374437726056912551944399051892283226968898015934004283539662070834341287285342712122111182460583740628244722364642408741956079724893836950523196691637272467309239805314422339338564684140430179002903491307651586210787138187695898589427364997768298972001151817373840542350390776543513329194824911311069354712413827980777052126847020415517079307383313163564644200306916860338977201987947752892768308475852944107423706181994270949678300657501170272584129040355952517796459961636205399960896421132975343757110532658013204378150162532590284761320328333028277128812090614169672810516771540621449481114063044808737350037248967165723557466077898411896498631490479146820079403249682414819599868264243071497653661122038107693424932230194278716361429586222361965790800919701817593144102369041889272181898934750498520615752905329840587955925489189473251544592097114863148993050772998997081685123897931837816722061780813383508656308210441123462202744277299555102024083035715922636219116481010505718108363697465359140901698998525138482476573471962976133935135440149460102908175603342163240324022426078861285403463028380975621888494966944059131447253440897235521689110628542421667040059926243228936288779114902556461844549826570692540340807142041997612188623082968886476540052160399176626322783288213989917591998886271644098078465174431323506505330576137282861962063413912693034470056074234277145333848244384125844396398179364102741696264233938163453810831512307392327256393578003215691921307501031240619603114085394884395911923867010559144912480588444923123673522653167417071947870996002490955661154719804969345198502328412068509469429681141952218608173704057450752252651114443252951176961056388674950425812365956378208327152319919917582934543554604594060238853678142296085575438651748328550491735080327158651693950404350214922587926185331107528154333037360943826590036579009401274806600498744207953446475496671866001617323466275718049740422627981276565494978953912039685090210243826337526115609149614872449549109475222277571046574100558829382094774019110138883382292766639463986707545820461091493267329069522411014887422790383450830135748596422937850888969576819950063644496579969118173479025107385122176367019337687848829155616338395178378447696955330700710472230052236916953024772566446595623607350937548764003383013872756657442828641459613753626011927385457868079591304003893509488141375317511298722608114980095381751944039934468720614227361065177583764001413982544720887820627590871907381072254506642975156799690329162407596913974677492316020820917263533659265720104046961600921014335745087639914487681717810507712595596879809037994563987748754270152468711573764659662816650291406316032298605500262609684049069219770619991908271975375273464365078558288887701398999175062925286217025398181232891609245485733749702516545360696769621570543666695456020226101004424520631769850499974095296531647843620854546057976798280496176062772679243905834696070279801821543558234946714013249118254378320047131718732642381434883177052413501462679215794038532099188721264769152802989904615223611408021185724889254629568956642843018022678869207031251756743089720009228423428861713415977836156452780473750660236573321210006011807162713525649771755358448702919765209527073159164586536091245448046276891788994282319252547877838973702618900461511364627783830155071168091718307004640297036769632708317373611828232084834376130328431195587223950550598542681061828107160257305744642620271630909740748273900264217661660464276130306495366965925036803509571609150804954664724754722327334900385787601906215405851646199001113154235008311932812813970089808814788221043961329356971337843281284487143020249087898140496716661067682872383339252722197776681410567697983976252336227024086855422045082356226890024943452528855453526271874224804386140447942982179476102403507303227672978921832342927338209519399819689691596852330402436823775852843896984326103747279387631785914515937757582532159723549936079919486901853437098096022084579278029173978973014498434197483576027783749957357692343791234752471120081112366464316067101274945830384102061649912039624908673080963147532682018073722058831938973722382273128793904280765764387950300366178079145101786109743238754478376855304968050641283743982809678804885866631647913866712008185286171755910455049308704136225474521907944290150548505704196675024342851980594123972918960158428551367811538720567736173990096278554960184407059446267983662308555825693623239635746850690022047611104063322340946515557702691916870295253017332803438216815708909033369828215554091031183474634082522917411775391150110453098329085207588792656261423418636567610102377017178517204626189161113920957816332789633581572451557106082914558450555498064405834145926431134182230177236110861985992775839303261379116491133623321236552362251362557126069534771388139924082181585235422478517577293948968905110363781639677802298806089479447906759644542133114015550790220057839861407120757062915612945426806215277673379130460095261868921551555927852982282890666675142718270454618264684936690682832529347131235222512621046677638747387247907196992667411655021659002723655617423161927126539756023571023707449553909682322068817986877413561427513640162146834885913795672248746643407571154882126761950914986251844712497196980703948964582622972195342339711254031546520689216947649287578494021171727505599318740890291080206778197792672898146002554616243575208600587639569276495403956237270286243621172560431071182032432046190005122918112416349133099428804682470281477652280043790595160421499826675221820899745046763406702722385249942760540452654540670448253605286286837447982938440535231189803385738621749265347013831656170320944437463853986294111795787103145133230661889004967560913100787425053860939482405780459287731523178927748076695970367186753083901784323372328546758011801619511675865701372254847988969286069347367469023854285013446944762759342694767618851787130406171850896355378042662267956883689421748378358376473620745841689457718165262580310803108635036055641781657010713133893879038770853542795561654883322166250542237553438358757821126302718214847164278400521259539224991508222451970527730558256490796374558569418635424799929594802086905320392969733498111562356535051814966937710028488389579506486931990360368830091741934967175915542818807547797379847382675585016326396807439496015785806844998848815666967882884739534345309164338084128427696352713147093338965252779347427684963230923042903086737495984454641747378740867311423507922540733469225200651926762799880402948934300077274796004566696105018643117573199366897403651168500478603905228017586925061066933223586880383137118602398146753145730937899867477622138140626731580714119011001151707093529864533127116546647848000298551110363425139925770343843917008264047754204570543257029031681777254914485982212749065199481824796808298853215430281768932590280101384192695207179915244117797665384862824310348152757158787743124219616266734866527290381002371444257381808791147607617031880883107067761105378187311715981968767028231979264814234936734088469207484408873701626431549230941256071976621952502310922834882114327906232305788334482835427208187814634561025173632364046807221627845517377761969303615212228208030686122756979330892490453606200449863517369213942530719858028477003946686064567210339867436500392771842589643173372647184211599529139112063649206858768110528109289784688530475015716166792992997330016386987192478104359437770754121963819705669070610892870446334880180720200166733370235709503674450883516170032437642998941838256679910528605567952085162820926598431040282246937967285625188891279998309594777573359624578525561041811969363067232055326814995522208419736594191296716191847654047195108189187477606998336177716638778617807142086183500046255479418566517648224773237364069493709338210308443402488978341428948738855446137690465922849642630789730866804248580912795400420856093354721337618902731782888108643447197662021789517376043391659839089019846782691491256679516121980088973704207702170341742497566283553606483741649448096180778153659893702056669725340316423073268934155887414014835792069930069993174288470975504469500743706638950695277597785011167246868917128700478850824382976940531275680151116877877596122320398506131323106249302608328126720179018080973258866756724466254697161171419185665769359183718748492573585824430641153870213084923382732482290393846929292777931783955964283249906268175416784321887980710661049169174216547776397527895826306194619858171103067644818442530988785612632508443821365537894484518480620539005404105603483438150746084350245296442675411939108985752017943466114066220228277905368263770327255248216928983703639313427048654168219541884061362272371309584218321470420165283914273561711585829068895602488424700030780492418354274121130892043726545949525055453696720104828632844000413764025502677761228938539039131918981534657569513948402873628431956560568682210218025832744480180550701171218284782672214873332448885870706211760964606951096272396689414491775969857041143882231091724243563599165372201332230705242097793457811828259889082254959163496670268533835905950400212000605367777673752716689093428087549226990802994950738062750393213667240345257442100828566749862370666228575762564603311546372644047124605370196646412342796485930565206314777074204460554625916282228738929508800225676439531689224694945472558957479729971705487272107576573747084867753723665021133748954219249349052821660338999216568423319139498033699768047370512419961235535848039210897837910772506715844579759483456372735764262120251157765046711407685146186560272389459589626235624556261867127896524401560549452893595933107515124469868724086917224732082804935784276635033412201277882788683472347945960249211827366868833358301539067670114641037313418952711264373397908200576993087366070797139431869351769176911565364679535954343398963381808540113869353170163700438179257535678085311704511057898465036288480745148366036175469822950058175916849301165442547121791527168160844180058685963064662540059668450611197011679839718838010839270584272123439458165186507813440241886476588083886148042073914482809531754719001368671290763803329343611465843854592746207560560323715675998431613119519975122432840154511184418359685877937695954306873318842614144975033799811824600471115345086620144132100266644471954786902828157295009097423457947070328486550591735768311090867619253414153388808580838106712883639053047528389175464264177924802962335956480336186692289876650912954507248509371866654919597383851493447078198032066324484690933994565272456849010622111721422080722034036091235366484424119315357439404931026937982157998535817233602933728289905695437617607046726531180637911151943046130814888060011166995559122391307296900106530212784348626243548268373413850225695809927714006855235653665300410433242207035514372552943440187386313484985566574379761667357759911453264141813180360499941715791664800964280609591074463525664500392225928891894467080408235073439791197530325501332339601187631542278607817943896081258472870519076795050361575471828882835814758153284609525981324393109343007868783512951966010536468102508864632817465518381185734303239105670578677271825677620069251942505702172723492953662574215828604906287667043643127916171822093935845704266373828335733504405297907114849191907003114358952188673839695935880141456833758393747652568196282033181048937421182302753352428313902141131971510301391664525486373256152824804791044716694761921140929455519591369584326789510148273365262831497706775489575644352711119963522101266251903092748087471510522982233664280121736266619259873095340370642559709459174828661643502418918836268008771822471964421359066470642771847728360265664786710938063409034024039497666363031523797248530046991041869484064930549041724409947631540174665663076341204262608487989680812514538796091592367718164983909591531146693369420869803011922836903630107877482485619967013559462482790112097068902812986094421841631336300845425591894976152530097881206017324317841357126228243720496258913551972068921673750867949307901432176272266052580174817918310454435280261715988220983378120498830303543636462851081351978937698138942498830587678564543812594996906878044160293087483775009305902437510981930686355787734876318331608471297244791528085503309490229065363500650451050737616599628024598629026321379163975570442308952725827848972485419490392375638894365214100443273823157073412427758441531793454472324149704396884142254234109638775389249416512702576280462352110706661791002026880601762649850235542180247461934025760787665150133472716282284871095598090348647467804036769787888884061612423553771875047982775596444220917487094717941032211489834501694976016422127038039891875176188051257515901276032099599575933543508046530329202920070254877052351340992828289740591000477592345284958085847877302623805585267170514062591242397427592063317599051618622487459125162215521157710668339038457752809821557037043398086519190634660967519090218087758402964257831735520944998386696158345156546235190803742928902094149368606900637735144302129459716735148176202760818140081622635343489672333170387449235671194611023304093820526842830714464215808213309895168823708844952141936724576850598703733098300907671397952667820182746813222332579804765606459781123090275138469902700539177758033493027450694927763314000896560265883914139736876234796606349337363990290750065526308946071521182025422211674848614601156384175546470548498763172960123016404399956676631327452303900164268078811579034773730163020344527437716019617877570950511521614615761964544140620399953204987584850651210020230740233508644297938789521980568267631720559589598764478291009217983276597571179137111416735702861065550310525204318726625611990013429270682536059084850565683569908461598271674165802122210086245465158314179369046372610470551151693750061811358984367594895593432970237023556249951840849767570611786055351879647944397762135660103945021974887620836091523568028818797983360841462345279303658730937615997815020452061709708459667326822216540675056063748649545724557690608221281762666690964836445674682206341423777013644945286527781016125175157456712249917441771127480009082960118303092686784566608814428236471275905062417949930157519983308455652281115170731069657491999749455192667939213727837347103314190280993561778289583462712122039235348127047091816615789209754627716644102504924919233170032808667660927266184258184398949398760341713523913620004852922713797557271750801571621547940063834887120341831565990348918990884328463072026765571352529785550901357605307825637570926653641731795356366737739119345229228501640683885854100437032191398457358783000376312823191952791837412586074633975960806788920531646647177095708281143823257735630783929347827714137854401742364100553786462257904209356710253115849847531851450321469693091685298716246782079949566647890942275301279128853826347515941268749934744422350442756684635590927823670880205903369705705404418215730220160416457892261366065181359685364606521264867391890228546024529107879474670372805695043995239826089490662399722843851683091808655980870070675285920360747028465028628245958449560381497355467052603762193191714149456144162761471912573469243247073486498850569350796381765372405794568448681020405839135948859118747656404270139772969405373950998957687337113101590339018430075816790442120958281802677498161003146548339738053626126537578693756233457081271697584747408250273801636700895928909425415710321624643461513164331841822229755060470614219028481125629667553636401706346555648198604217866200211726198732760968806325807589494158716454079415124873062995458158750443015279162018593972662393395993061201051476776591180768270981937198874567906443128707169650509967513794851337246550576058446663732138166619057187407622697813930820007597331753740617439193901491251711275677272906499026505121247453560697069105030911159332609991217129158974920281788967134763138715798530293636256968350604903351902310903442028074571903779433028411312634120811034440150739783771872556851281303228287256460522872811040109912344767541399785279467726383546854142586719056854321677974543239461517630511239993867506663036539902262017892609918380938728993006214376558405756875876389913187793308510509570316411269550336211546186422038206996652936389792688902368386830209291520308409614027598134595890669097645077880302780110052708219751882191655840860308733190570398689152534316499887972079959650734592185991953191411456187002535685799178173100727785276965034396906142272712348020594911536459655845538742362369724528567261695323577872363365863867310634929171465545057591223052467946482978168210061461141497801915141589457148982758341924169974123918303167081897206246156569914160838668496127448876043203077849118112152843820354685787190467909688439396372328106943911142717442174972309732140575878990901219778267369507414893316912633242033550830017446784368472812194103160242372976536794384508658257799568911691314105847821678156957751860940960966801664084153722275204183655957009003334049776201710731128822555899320990410749893096304775989167096422812417192286418767287015107502536704999868178902893492491400439618797234064029055088875421814815264566643732026702630252010190666518061857911271828325027673214498994130700933993669599135215255137990086939099359124530261118310242386888725729586264769352410580959226136482054504487878397501565752524425016574869021899746664274811498509626078469839478562019079518448676935221269678737218888873016507914405044951513925872951891367368209308299729954951090128397498021211266920418270392349661887303646635088014124998692429887952678633746345183303232537094777789753858777491855726311521871674119115449755479230087711453443000167230985158361070000909002418523139985711983888435757446075981898009437872082811359737596664501109060279079191380876671317848905326825337135455730779117288820375913764246989891408513991278338158544329858489394185116486581486490505879467299697812447138031339689925853321623492860855882126369048867097572126487136963072339124873828585633764521949386819305084983092778289716171216386378953100077696634288192386890812081713901253618570054077625401061445622708871472890951224783735123869246411167154459355953688480266787755178812616416464004342645642321009449674195965794483267910239996100868594402487922725733225453454287831271012523183191300304845553041075967981976993038384050463612533118516841384988300985529306829859205613782460329018220123065077385475760699987453907151405661384444493909415854501207469380901807912423506162144777103359254275245417942066222960680932162512386843752962148224698078305839268328509632355634981510461714592236755567994375708374059323681319072333791171297418118685320968918015690224956669608443276007279103063878224719168650551417270945078335937627942313545089572618055199402592956843522216949000718931922871365955451661979881719649413034618096211480396909261501705552158901105347388960047174017248201072768493689628012186457067076950218817885193959530564364526210300847928674305307777153830414108918382471965606700182484756248396769070560086220587414876351828118612335273708587466903820544727240902052323097670214562021712120509138396972517821375930705024779975662423856339169384161739987944620317419771761367016998800813989798393530785588979669231269998470548784031413051012134116856130980528845140707723493256186200892999199030163808112966421283877051590641734437764194458485940045251361709229409734394697350265865379645469960526818071737318571808641351581202450888569165409103558717173081960027272386334036856687175602641408443584803735768136035101776874406837297736288329456863798558168424650696188359510204677132008437787595743445186855582842142689205060550993418649334732794286855878193478692388595101937457988347211340135363685868323826273061026927011735001356094435702260258685553906700688716983787146596065540907051087414335983483312753310306368330771428758630098260468377047013647840028444330959245867603643486519902300791295865623646325143629263892392331499539946701357484347373070412526739761174285005837066857893651717184038626227335608859253928603831058725660590351208036432878226366574116243519959885892351791665637263780942653701737781700811636248594030916198873114020667246635042189008745307895446090511713022350537358003844193544578270444991761400142430464403063772580618660647503472240770900187452731412630661940684431520399787203046492128573904734462222080225809944119945048877460015588760872601916547886143780020053558979916794188675423649217310346117304124315976275373819682988283731522859664769706218415283887565200952963204659877345139984958543202222494529158187255243505198783621171591941266701569920036047481538582896013760622193339818337700745323178813112167036596789678303995504142004685638899082327518717599971659067314535021132740891067304362038531764492298363152454582583166385400673324159391349025828624798889931368743337350748174805503709140564173948606450331597728516533244334188904481076569083968573489909767593065288602046011282827246657298056257142663486501345404740718315373141544532516030663706262480730018731397796214672851145106841663206191531376230868120932004877810321204073648540885489720807760128737897358495431349198232904715026097192482338745378369810204425648144704387615638943072766358134323041134432105982774515355928392312958480869910305058402794608485888395101276062761584240648732358091111695232854733866536046664244395439304175686678975619224876730877050609084794980829798991720235495135783279592385770023895209917013330047580256041560343478460222426122297601025679373716912616570894503321118650617246203660495011237769861450305324601923984624769380568877186559845390203074895146231553542359858598651870197828446953193279751235455631716675806706258477532477310157593630370147203417421039901527356996046402600604345666606148517401608625424545459454475943733814655777819939837008563442253045902262819405920393588023915826729368547904056916986790221097891166093473093631107565413825738242435187591006213480515874910334852026195479298823397785727346424623780623576580664507495026082745757092720562563448621295702329191955621146384438849468815850790310841135975271113787915249126075857134058422095444183754526087935275298970337548366188043132883156065551723997270639000411421434176601979226800801063298305262980929574595753155741395918933719069750410983624855749901550112592872044353829596374841901691280313620302051093186294599971716006941773071609990833327253181417527226644634045679002372757460444958598207913874800254081349485154692826729534028181149421258325596234271933699406030704960934822728853248973718102201366019773127440440700913188433590315559878402456655189591133687821472423639039374606726396633318387063558861991323753342473839705180116216103876421936001005791257759292054110779491433638193295810928940316752388606755308921689120230724900018399366598468107988093053434080127872752880615229014089277957719695280612996201205400764546730038386242983401488354899979281569127803385441191031712024288603707334924240700127965911045796930988341186815818330153508027977597796847550703922175019753607087915343616016759539804601985061570044385136872759636488616057076729680820639160655084086312260680144193321677488808216687682331787993568939327492264160685679978300979013202797229712001055104106369954203058829076658576336804022771610791203239751959403895372232697640171013544807582237005789356233248405276910720812676238999955658463551901305676619797017212956654758405319042754754437540938527254876014615731260079586903134479158542143826661042949055165397502940856398494267098819659573949506694648557131396379929763815010612142838212719949371865155942896036821627528017921763505065966047989133941004652308159412841854156405180370565001853360689589609915590337748346644023826460877023466968488345573185660154307243894398772030024911702684091299762532662525324992413402072097139535316441706317279684415643892340041869499250377633746644752618096550164911186898950212632178685225743761916767063837624144469974130130035285109835964021479148649602173594509398016518184035133983602724493254446867986083834826212193350659226566885676107632941546971734487800419798770263933174246966656767237809587282045116166261044113474925322671091417797845818960030596383608165360451571263490876453866455891287760257443141413810612193099382755416143667991222182124552910332769034649893752850711617409329158314567161541392165686088405345067272632612446595268745709830318180558467597718191920455928003970744137068920859650411226690168236846042253821758104076460818761929663166087260757370638500718118931681444418199594779952397681297504012694267940424067395798598271456987153993804607861081875051120518456357758094418055122848019106564899151166266188606554282625761900764127900792475214154313976092497133400262222383603274650082366242528365631723567691142459702861425395937907700957195739754353742908538628789716872568761804929347729066015574587271504491675610245381107829390340816324148823144432183624170745564399495544331870230066681029676141831892596563092746709813590557810754594987604123357504547216964971277021415051296474636014122888213021713451799626790743318730514872480630267932619965612169654476859695423291676353111815114999914286486278249730840825988830813977528544636515101737531316345030934689538901605248781730309034364165507247753079983662281945274765851216502093338015086199225993099819942615132123840960958797543330840729917882765033291777578377198486517918032250546421507856173139099400238354969391942342546630328668494874057211170917187919674097632938671815574400848282180921817511307294981298816330111080873639198819078084843158552233195232679749024416084767887035720196329117036589971931500235211200618211090825313538690966268492627475098383299324668714610546712403222996727177418502123613149618085229962416560647439477669323578077626685672484202082784130932496882203131376959893723267374900181538631064568222393291783821346203789411773276059081765594395650226611970610154352733571954251810459515754037082937786504276310159050720715798156196557275157052833336462040496807002178369744644986036963866309184100083869213198464462507072380394967551027410384817133301754055170774727821108308406229257608341046172909452194001958302147623993029296261834435920641801627898263023981150471751106337216076858756625259237163989570535815910995080742693990231669337470154301483756850330990067220699131727891717283406403764720362087229002868482782457356827016817307150805660265688796685132237420053812170995878008916064503526546162516112823677944783336690110224666520864789917024568022248766076815113875948762627300829519564932615919553700088948568688114912827638531507681595501826786290343037968222387957248675863682776175532930128678240491395350244205819767515191885782620692946256049093520641126005331293216681979225016390037963140907529037384400475251154124377716474804181846305424763048801045189399891183884211760412552162733665254443748512307299589038937156457182689918555428266187990882726328944457304546489433478626277017632683376160972508420783947239161509187502804872241704119891390128526311378317073623401313902448403768818450329400445385344778284826403828146938376124944140342396117243861775554764223012519706080191059092207199849075689265627279854153424217624712367047981563629719868813928515446001868191321896191397781422186554741697588613655425186632169543564082148177136404012777542415986572603486922667253016587000845302636922224190857828854110054780725894585632600751922164396628483486469140973615460581787192918594810327583630557437011854315477247189144516810828125376162251754118927263651825146036200833275006815508790253768773530094708964882906311859463198386694287910766964805453111642175464525574068315115760928801630799906392241934703149911531485338936874625421344203141906101073785336394597510553621886413281919699815115106362166062195935582777876900479089583353612670755992174437748959307484795012317607819900708436863908126126133723424349263072271557850095231754009835295649041087230030359199618971845602340035579367947306998999380295177635615613252722543539154845816119854995215732515026409078096922626968481683254473947698610904301004535405650900877998463479093426730100660549537482568850547853121840179537759627442608556723335210919154220198405970158481623841094643239793063628881245712496418117751849591084958615814076258075918830686534895339914765340898067408982356584792799921665040066675361146202202940996743383993696207687799959671717420452713007186036610684243387461488483626138802869706984931555518874727677703394067595358207182477330378697957565449547061491606835529878881472826350910956251488139401494242823157085117185501609938738330760537317076829800186071094412579524740447983586209263770981452040235207698969789068085568119818449264699611028879853077257108472902170719724097510159356231312145906631223537166737354191183480603889032338098032149072100482780429911497188733600957345346044842754251287203358118367461290140128138881783557985855103055505348024217432854836776873166101388079802816465650732834789668386109053626587503689809159079137250097012871342537003476401787688633027961724839845922920248577306467875486990283500899753474823626645471044038948859941380584836889738203447413286512976680697188294410150375707833194767755233888091041500385328895173973842335474617451417600413913281205464017471889851312704438865680199734497105096209338642629878366142822726182488461815774228796240177175264639354618077686763609914447937736397051756894445197357831680542748125955751148297905239340749077634131953427936032031013803385718797732783974467885559910235072621498757257380743313073627678793849551700700348655564756137264942744560723615548631981603747057098070302165826791840159432738452121972710220874747565983721924377716983317623858769584801027266298273521282439018821879231347724557197010425510067801776032107485265052018478364065579570041060847033572117468193656081482748066122727103130835653034629160393552483692694907893233503517059511249937610197505108404668654843375796986795458969687838447103148112918844685694622458570452174945643506367881126796121945399947056627214234063949189401616447512997886261256669884879074503974151742852309473565944634333174554816597384550233165397186243875310579728559256980258642032854759664552356078614255015524327907805255389789640760429448575222472824705579535881385211039214489573930933513400334793760091285793278250791596887648387866077720365123616387270129983054662743033284315515951911788723210601937068019244995736793493649458002972889398425930376369820424293137971562599433778387307155642650787512749520766056875771325002748236544959037866855758846217576771519910116197351688835516718294600669278049699984643628979727026839934886844617307395054794464747256697111370872220355056899621327108510611533048304000272693531580440113260663808509211229992830215379957818356535401833008288979696259442748036212507196845829188907777070179934779982439266690729217421203154960423567727334017912460631545840987484385583655180258142137583171879707454203575056477847640134938170005668326202018032470831305259120975257504576575479564870738466578649126333350281905043444616915964089416765182388451194445780020996477482859988107800483214634535476314553136810719752384846957472332261186116502311645411788942094174828526171484528539848928891091686170915628932700631503866731834546619589787227965950080901306794407660755623540353659721910477787102964381639674565058384626215051104713542880161349108244543071866951640681526504872403153299095605488331931292897628695440239197445145947861647748882978153459205391677076883593567515835598211483085274838187057618663918362815897477890664314671975503654794700908031703703130097182171350926808239025192441674953671069886758416696368742758971870182548056869546389467574544911733404489218010217597707926295806685966943803683750766824068492696499846429584789197610025302997610013122995552135837691260186431462394981504499158066891537902732864943465697132536705112137149046014470902524446253570330234614612562290723878065315583340289468921026403455442793615028241922593566185424066293956421892542865432383119979426388803623612999655935569874767232925002185366797382537650668080448702070161436037924750441632556312867562975356984755904426427043114739861135793990644541766298255815363714239021814344116511836457434811958485947101368278107506261057681419768474190766214105005079254074966360463416852260928560709126710410846525512350090356540715390318559860434587582041359044675407207709657532567170483503579700873072823836693551313080513887349437841636920196799674319951137274365126992177206585853385262356270117663695198636511612755862040543068675793823439970309454276510259858484239100638568927556951103636533348548446440004115838325262295823002743627290567733622608337171243072653020959328711759637328707815211943668828776598807529181067884114129864968346703511111169284389060632994539713153161436225739727943265859281739494061631675237317467597163052586105784261541745659808879202402487215269209333439349569522748080864271533867514548185859620783514349188229291989131131628413308637547428461938403336932323108508183079139948587229002175969154632770897337994307113026488660401796919153613600761719564132823956370609773225062117529172649474642753718975743114076075302811054413935239925813293849708218872781046861083259457365439659319349994969896805487968264412343128184252905544183640308971293508445501913604568806606786225908559674887947382221224829209815190526223330264139321329558995616092259603074866227138082954145700037342187270566672641303224612676169701303457909964206170095754554486346886893274446798404882072040756419507429121312659589344422244208372686537862704939019423800426458326810046672308309699809084812332978671279027674408190386276737358896941984469053199463015177455557378837424583530105308509293495979298808827328929725734685135187502522811426549242148483253233089133960801410784515094226280737388902254298484482841558990538623663351116565137190733063776834572570027907779947660709800029749120708267050713135349200828943821736573276428506052482731583753566183983665176313770008470864043813050840025758702871817410650125198982279773441837460994512729467645773952630283051053472558679114532866184645193141259231134901376660154104638403990827865883012799438158631387241804534280377077981368494795139893192919535540938352284675366867567963391050481812198708759165746073242604858778758739205902984753403446991624754222733969782764218163822591989776794269974924716080919203842459728685440021903380510819751362049333445791231042492433408923339010997592884062869359075786914855636543492367148509678934094270635058796300428552346971361415418186435118129439688357863076332427598572377742572363288053021714433539621622194865381917253234634134288044187825473105523224015174333833536868067152619510544649471531955797323730239146312983188495729611586032810226836327205071531391526089290021091144566711076759876953111529606637091073663280409515998733628862459369208193807657535069688033383984966631495691983393904365525229691456378928467409849262505858553716911031851463797553560612877477964834965509904042674795225619868886699893793991343305994093021013691880317794441914042620792999741158178613880778973870628760672323937210141439312700144435669266980847581058534675800149426385889788044348629057797244607040655643289127212968973641294033536873492928207478542175100666451208297117392717375774076266204448848383987347984746582317577207236116657265906605561407972840210187840953970183367956712542523828562728064262625046098781547980549310633221815869162000537710819980666659577946146598703461450106915828888298552434566259415211983580063254695214369727362352611279090131384291195643309544897253106511952680107885856370723663624387233437208533966610417716141345647578230723455293012849582089901826792067350082823076886019643353512820052514252760478965224082121167727769115907039737639904217738254246606700423389951175366376138568824953164590850657738386048929127049706805135585965131783163881083668341614313013894194596597116818927793129176910318330842220757119502110181507739039893630295511037174066608815307723206776583157765012097677744184783046875140165420802505450413000268658975482674895648614501462905258213146555936893903926403451516500279327201775411454080940645440722877169574137653037235200148044281153820028928353035256910866064536631631852264290854645175933026393735738188805165884845184215550055080294962283686696568128717547346625926607114736141074657284568672038466307566669213637035118553334047385970326130860351494349409951106839012370275088702776565561404921920006900004694818074353388184900841114971934319289584573463620816557352613632490821884042522246798541928876300759445416614184191603913880098086422729287124512595460803271036715918491687124277193131344828753549611493386887051686611940781525374642325062168179907636204223834622225515162840047578341436756836866558456278883689091473309822501533650259332915275927416890388015989541332585062660698971239241517802040527167934147162719249338346362045724571960474039401791393866833200225091200777481859592161020885489693453628236847856074419884563306329228822878138863311639203922500582343087588629847248015888224522285753042431968522523080227320235834897733398217645935174610744445523242064397134555437450808355377241023257942570846661731995400020484469825023889191646597906651383335665327950314339788441986204185587470823170799404118125558216264581059785839989262810628224492472915123749164575062437676272709556304945590560205941978497054119340679224958504289498259320508125607142410042285363217448136633748455679395664975685549246030324325677405046764303296104304217993841709235874215846182711378182694050366965656429514056925331538181060087616307465823072764123887148033034174980372704557085958957677463476553351243137591354852168680015713674504003308708779193013514191800946595105807358291680463672703896620486474284680920146241190100712446930774352740680251432767147580554120773178815504466426005708642054589902957786333207742613491425258814238005106682880149275826389268018493112561469549927893093236679706231936012851900347935945816172129598985940132392851990441637433604740504589981331077148126521932076863319041637634119548768840498894599980494953738313945175933567678258789900911303859454379381143362078031237245609850218965105033492735420889475659087944669137277486241874315496252126934316370881277921427207360579586546388575796367745714849985703124049898729060896734424825338215222008371102721270898184848985211465303406356088926264302115377960764244242140111905950892654853742605643545484225611383657934091769130522870521710182392573488420455083071181009415847996084389430500407642458621455031076492590518057514509386994362591281233086007309048019752951765211171343489031198914128500089644869269141009006984053482367349141858256291866673236896706788332019156566625491910818957148158857935890177098319002341349433044931628410430064999184567706433190014806595247921933976172519082807079935464812771045201924815052857060771723303633097408885692585500012866830479067980849887457204549940941651310728020348328448686015908809634323668731075172503711157827378911682535693408046825156931396472948995835859843280684458950843436895334937703978332254935750820836264827413358894285324796612580281576287562708619025475333408640364204929646558501457234792443932901727401769034364957888481483719071047513185033803383968702732871956084733192728473077546502343910359399721443621821519477634290047334820607076619970604914316878842532076569355342321775757279201115388578331251303794633925910329833999907014044423483963968239108986918632806782511375958001502014196615951026735166393920711624698918852477390677057327625468424556043374983925965291613775909540137765886096857703090138795430119594492809625086425591468484264570464797692630176555707414093936131788624325864627272398992328482395402283258052139926395719863061925138032644683397321464353748127226456959958246225301024431802322320456453922618769551329819777407445910257353550290066953469687080132380220319207009200901517060707638822057757923104048638630626835678844980442743250260074188076290212583107319146809176829460941191650504070642232127943932304891969403911614696807885500917675017817776802770602362338122483177440658192384194711215828660405285207840181000325620523984793572178727102309758747290341895335758186192863381018592444385947366048040133473404719414280394272382427292848966929213049115042752126906321022535133965513998381599199229967412933225989353486212456692552912824605501716897092885823304654944128141654213888035109566736384187039941386190105737644741479466747521064841651221572216491536202020856939089031636182169000464453098307919892770097910517940319423859191627345889289347949045650833367105146338951808756381872286680469701920559111242004778798269044043630987371438503363820669319995891405671384517264044450326574012855561084838160305872887924038740299068151318764477887450591498237617662995226741121810102673591081766168310417755642760518199870133522237169653073026872414023875720711792747000555629033314832513125644806391202228169420462188356288034643781837174900327446674257047683535070629013588095229808703167088413622864148181293287335277511829922446988016562880088080928205634749913025061921851602949560042792175598558010913306949741403879300337676794417802024041116492285916184903808275952310436211676909286698284443908309982093967067307066029570221468978923668620485316701952794922164300726464170202064392977874664921864240906331202278376128013517229549430007432312341369662009962856983688604106799925385617160756699499278253903646777693069382990373955210975020658408516056668383793515204033472241377748656461937096739776751988326203076642184125154333906131819291640281741701385856062946841338012329069685862872658747526086440074760950761248378590889282501228890194365871153959750921803013256753925085308816670022789929018825028880779005109373142258975827000438696667570235404134974369335336634335949005441441174576118197449283121210146563647221240556035012860082773500977861537397001609860331448503832452974154806616253147219715278944344738052194095321265251078996259894289131718134237670212647314758793870081777545918796355849746141829332565480446704916081397825631069265054517186077653424348565703556775391087896017438009208627257720233143653290917648872467842437644313151188618550200100614937568180859422802248037068990146384101848247139428447163615449058100840262400905794644436920050193068475019465888233825252573759916132482380730226821479265672258652608681803507367133881936578129689926837755523419891025512535335682562353053989933734956096852488945966351519922660049558749107039949623059076112738589319312191120055965260488864737488743096458535645063000244152105832921491535594564177626626435708101336179919172959503655452211109180528467062651436741050563574572463605229555502566521257531098276855626644223124198203539914566424187229257913046545991307667883217356684850618877581445777426679077855913995124378306480556368323325568390325346848307316448237810885986370535127254486659799912853382276677278246499294272305971932758665311096926478139512657806404931194542954229684795133822728351322403706179894013541885689881322146489345622097671241941159653514250065138541590343271230625306489540604884628303160531204517904386786034617678119194888214582957159844290835462303804529090784903492700386707534964504090377283673242840427081199105150778648578453425801525476106869699724146348339173214884112256840366524552255905250971056665850658339340249616163058840388947002632967509629860599336519577508189402741297203020268440966852606908306664074086198504237121292382671655704470512093325634398154234247759348714285812339654316880565751352636057420719371330982165336891523009207457741800427344177762637814567404727678627170525606329981523702712508709392898952035421509794003513936042443664289589213203206977742189519335625042748933686299042761584531052937129328618225590187535162888231393991350486494544056746798719918802942383982651948801298841248113601527453426377351129976724789662124361101017114901428747282266878297408235368141334302190977278192686453574123215735325752336870283200025233431329945726435549881462874636732085534208324939203317848503259237790200575327530818797146272299539141169946260162748205382959087261354262602994339067628626871831447568925462060034422678170841681775022456952093980675340073380440785693035689397381454741367598926260880218552225192742765660209994423701367143298691967279715786748590851609407412278488070343361615881527273773413087471460868843384752185926676665117127765764371651271678054105583752777321025387693232926506422715454426116541514973956553270574952910176667989546974883192903249508953273799009462286608540794575567268755179538881753803708660378879742002344490466064258615360894526076618339432299235195118925232370600281371985349445284742947847841130632224827028027137305764554762288349834923164626818266949412428590384323737620031374634951183903588888524940236438385940203035816436248639258861279620079897577631075388216107388956205575357590499779700626081011943580332577503795383938936490266910167332902685611303658479277737505274362954521933893722281531336574263316213535075881727210185858128803780523439111543367192914117798631532221148975989908016058112339151195459584765354844975595241537496150617452131106146681055253144867319564064692166995305023744259719584676939518404085485828951764895966539447221281812053271600004863467590484572598042110063958624084530219445220625236589348810875187240023262268520560572401776165321119024487300745938167293946458229298505332475827291004282485784514077420082347907118949517331392204574956752451625879541703776558282698285919489689610176089904440801264881731729121294427692028403005507081581545796865848072394671919340038279883005771815381613586535929847463167125537362998091971106925504153704797534636418295616702354325102820988029373280149770070828845232335611556721835453286158624052075512063054554700187553082175560390636496331358785327120697124226592329598987050412871349928130268663480636710232041429411247380756815078047193099341154082393209687523834046316030839804522212432291241063390102052928256817511609481512796122537671347363877667154702488459137445128772319308212782295652576727734637340982983434602559874006255918297061670809438628460826937931991972213092336378530880693206965564047752328320578071619955567404525597617670185560852070569105280221896999442576905798650805670065735669096414601191129529016858830708638940094018618513953862359192274316337157550595941812448191549902845435211281185985918781535063464348544589896077445528590541582894535688598797885991181711657015831918128502409404006073933765447247948929187152871679175207180891353428056591207391803936161293427958774864692453298316487626881769993630741409618299809515756847752853542142115268397123423737637156684663718990196212171393630027088405884194956846184852479969040469829150983897178146627382499699042149103352794187537147040407312685150537303277212870284242263788070767044437488348055876578393932641984806131345360820704353569504905818469764780028836781494460589684409072174736478661695992017439744067250180540288068565296532910145930018611015540098081612994614392730357609360814572891462883966793306200945232165278621129254963586238581039804461909484123018439712445251402079911363765720278108036252474079052727229917244562925673742098726222674513981775001633476087810598874564585981636572027431314498341024889955641099915937226360714053798023069228278341534899046982288380954348841780384515744602922984657626696066272004331473805908327386862720587957890824501810450707791922851602862025950728462098758428980897656090018238780552169703228470882367193827822438710832824915031915043847708842103247956132467603752000030446238820954107577314557943929883268005968556645672154813481734659247542654955202893169974960629409951222795557701332976220292036358408293909938650521235184011831240641471831017674801874438970704494453051605688853067185631073557441445849339330653171724382039057960706675916261597089040562098592059965184346835546412016897194613738207890147615615281631459227067097563241171032438675354269248709884652218103109492160942358165515132637808153593614203548730547729462027607192318331984328590994185759048448590974447307131533202445568471839988223119416717800904444480702347375286981575908406298765178431434991423045384454909043912446099015526980595549039572168412774337861629046073592657142546271832811257227207518894837505668627009222858368302824689795890349433247844321252946267402228937726809303228774282880582283508240813778996770938127706634908347459810615110505537944994597403690710688692841258068424901203370646112627814828874637517153925337537383913028786422217437862229721051733528925863353341071610486290851776109771246617858411061608460300439269452453959868808118897224639602669101761637946302145478070056869642702306859533542904625908338276915113173395350944063198719974951859326047214753050683586579783174870822800288621136595606115858407724749961599360312487977838237090092951351531356844066390877594207925244501424640633687520471697843588878394691281276344774770036936957627415089722149545087353265228427991655864839046879967854478532349845071767530488215822653282935968860361127407672588905568782670612206309589569611320911797424320195143278144880344952944973242626603271219574991201333449265411725786045609723697471001455765143142675653925079866742404012435687892703036765712070664285044675763441265191129072035913591117255566557330661349906321438811357555289235493453868335662959012222188579114358261624887054460297030043934435223794306324204767367844881390293525462380375722915899747933348289883735427956432690042292304337887889524154313762790936276257407136397348918925399602821010118366641073861166100063321816294027375386278100728026018188730596145546031383402230021993198599666337748007765988229078171521943365925795518958329790348801266840601208251561115228227352668143551808223020034143232395026057336606306304068246683969185752586932893862910530556013820305240619401825752335470154301589553657226166474309541887940576166278496577260838405197983955990557550117014802763940949183616994549531250807088056131776790537936042802720729971325361451366517385593052274994381581625803634763999646231715658242431431926215559766388259550148048388757955233997174916050900665914524258051698869974023946172640404574036438155498186864716335662781916551818259947775577924144325548007160703110251118256276768064067407802076775574060777608523000954862860040185921898998571482399876959959181870469621216224492629065383760345484037700189460594818496315542182128267104372294176576786914401290582061067905805640030129743715222813954711992054135360424799305121454219115851799793991987564761059900543667751833143025654472640202192185844814262392510225042259762070235630328780006320919661652361334681564185795718445569906085883985649334632572894748449326832035743350375501217021237978508394394378733252391187480297994942614942763956281716353769135897342801854480767949925472277090737358238559963865609148203384426532006826071744275249649645603929181529362116305610404368883774766880499351642100691697126166340280036008724712981469904628111091551570105178096129221899623323017785657744194541527894404488607537461872299261381467105998791607149575446369929035809584098678001155190411321600114138743058155810593230031349317267434383717294419074281306091580157214622510016190298950303562901389865517058729552608208223592361131200384025965309810550021760839454166907540788409378499702218970818183741930958917129460525762130530919496112916181846214784794460293424009054137396955614922368040292909022529710901790837125154806492517745329219270868640241602793579294868567341772841396285595733909584871522076389961455960270111541773384300572082859098016566849304918498477668621938513048198385074320830548080940307448782367581564076395919604322419831384481146821747208844325083714237119584612312782182502983274729222854808069345653929397227239686196450601741597211237607105812402083687067301529934349420881013715408362324643322003636389326059702681757103484226928258233368298910114767098035497488554447378307213850472243166182144104643685145837496940412655239145815042878708563981477775455083357313080545536290738909673622672155613983378744932709771382190278769682128960933414676213232001534772853057815933608132882638832693456112062449664799540285475608703147586373585589929462549642985269184694166481106086957338922560464218065335487921859365028769350504717781974382086493545320917525957747928273500879161076964003438202346500720958769986140387040559702906662841804364379934613111599973153034796654353150375367745355723785926063406765853426532511227425213607863248659646955299619257549814894680020664391300644588915670491800264295391068007444813280485313905642265565756399676608469284071908819405751717049234459060735738221649252665291090596252016303508928216492030885449325092818000061808128060741867872211105668671478730015660417808776258306380254715029129247765546935892344056964067401333840065836982887811236371737046395815570173569965187012714420884694933709610900693864230830140749981733924875730133374661036801906540745321477461271543374030101193113840368280580466604635578005532160637386090514424685389536447222380590015985831450707383668645820268186932170331101497526449772314059160624292025482295529062328557302238876413585086494171748856161727864248800227982817935002947044787841518860955235044404403476327115907716522496353016581677270038690821565146705578311042415656768320273054404647775089716844216188345004624720359542521564288529139645572697279377756182881512234146998236660076696791671710251764406999805566070949802734259674387874411583006257776732451251814324628478410614119188175757687506433754935123616985987350274984780628014780976673823352096828842512070524820618464675950399117212103449925195397466049538875864267135830953427295216449664015420130252580605949898799451899045111193767549714468385654958044766573677973341503773808632112857967278421538341598638177468401725063173973617015576647101700290766570178464366009642461646005525190205230969705806130378123192013414607025626472460685833466356084616619273937822997679384049596031731629425172428430779339244412568757030146105423822089207207401270469625063564207461376436564156981024342950572450908178486154235528693235367521737909582348405413452644905464554829859752266356991285274480336140887197701495994256221637809777728007137042564522000275224362639278585809754509329011537129829642574948228166525455093054911345432404985451159948383153463097025111653222312947258814745424942927205268447299827004886542235829365347893228660573868171631615850678434065858026134388920479728525822342682620201705466751697361311326264732424777501977175826240584339065966665695636706821791813934881421668320739851483410016653345874905377928347047018400084153610581030389860851620689617112119067150556802775421904175031194481404346977566495034175436927647342655996626874295639862322026823621015726681739835229679965470048774725606043595294569039497804023739829863220047827217930431967546857192419357663634107015520979064504823986800012301620882542723879970356760685844238727487838278560251692560732808394827697884590623122069975213685654686356254619434452419230006672876524666277931913374553991483872952321057295494052736817141585681459105172300801065277080176226026919865947331692214258813298509099156411145838513385170208000574614254168069094107404312264975828053070825105577754298618326152396932316948129049034005466842293245203875757202085261535602198113341025462600588760398912463108750668254123181207837118198969249055033565724120144647182831195401707816680732507705907001666346820384789653901257910884613529965639546488341990090128284432570885743750518023573328621856399126458402812680206418521057661190733175133782748841370669033213953501339317145140145931419712202612930192213283808235041609939496957349510097337430780067773131575304398203410159804996064617622286267984982315054823090539946741384515275705760015340905174880232043785774728024983864972723857860858959948199126641875064477206821881303128338066928436261345400093135575244313069774880505744061522600732247868183334264963329591062933734838037097291325650358433496649110115280430424936048443331328307892944787788706593995947121835411419122468799621120069384349693217087934808801598490134618324552197838791267348973340080017997676408381531947180353976071105272699175274711159219366486559098178420190112026036363453013128897526022982296832602660725687055354544873198091228294098290241380133360390627514778044942566493880488193563518070584439802835777635980907205675376956100246329851411950613872062682837213448834587689889225512587866509723724446538628244314579876207110829500640377102484913947558803012590736794812362128178971000082767275675312431220965016315618014557413850764794458120022814135930717716398995889200406348693359751220591457655065112922215565425433288742481979727867673426625826666864412500486426837048917531871099793001606755705966437966435285010656971671968259758132054169287250420059766411495214773732578552297781975512789263841615753366804605384827092436085745599031714536865308056337675662602068230928418862281288873484313187940841839446362303553690580686968116538872292593079523988625789211468650033680876708290421101982123043182754954744500882290897363120113688288146408589404682931944943763416017987657731685372444821992685981365997980120550719686484814940057834134629121382042911003205810378438288105816416057519536115112035053450833702810077592959597514182193879577184897653939934893413743661173241067827217604417433213888279412062413704101088915165088913386856007295083069147314100715915561635671486688336905826401250274383931051362370247161278115188651440849854603854323407006753479537861479311126751956659203674727407496512960873368166891216137959795959930429618034926490757815737799951226286793424204342517745593411495841672613539849522497209749493394208037103305391417647178119650920593818609223470074706859000219496910206510337312885293079529103891712790727802691344178817100612065751440092388033011072804828138185232585700296472770993283646083149152912986375927175789670846514713421884446243623114649639011730272198324822553545691148510102244096616635463546711123795040241682129500651235202605189111868984117877339928673742689082176055525677780982352029419954081411374468267157288513613344232166340075351966527136894301619405980193538710522887749522456050261081387361967233438315740435483569885079649488015045069016314391647751864382490739867138492777128625768776363431737169001727739257853897342254774428250691262694993505984785946311688588922763367098043876765604225355841982446196899900546281716891303319931713364083997215579562723523217253755374806051463841971161874442253980360124319698300396369688029404908233395177770496655828353906237630172997335063692099953847689084220860061206786226568411920384463069687752637284420097011082923196708191245625560164403019463343618068164048363341081102689082030691150944396630231938670981519218455060430231479444100631199707188945374777758082583395505883104379159538926858100317665646028819677661841172345763352474577933508995576952637573123576164745463676674282145751428986484236971064596616825289055346599693025487330098299175790109022921915979191333698196986195704677326486788617021592483873142106152838336333924252198693974678256585521466440167127065321034958327237874699676048695379513813912090082952377341003864188755325787098317532060351862678769447360183008474607874625573963424231145529096708321276161786805716021425812153555438528216252029044978189858209438305595826157227425786559919049104478084428307954934772943678182700210578039471930551946320138077463940098131512507071668050696367448958687448287506419049859116393607535501456422195116103403390637017636106992234637796650349526605504596183867751633299131108116979148620517115677833066195901482416478935631151018498206447881389068510701709071761346921347745052699244671288037931869465861221130513753872866783211511278912597605751912948838429004079592409328713642234800967210361356204963945801901381276540958954523495065366189334282949639049154444333036573876825254547464351883468487679007555125010391686819617243602170548679578537356087341452446157902687637700399823888547186246514529133394156407887307007762542802433285421235116582120207629652772667093362827198423105629771323393030418447091392412504992445786505526915186578481424235171105638485903185526457455357270985541333688396099973047019596105404903725960318757059801827290706845158202233322150433705360241499974540443055429779897474255791969087726633113472441182547653043770916068371741828986613266927678321387603690344998052443218226652067024084493498734032086368819263702168208806149078941163160105981998281036658457526142563950800256221205934725058389735525242301171386316476424949061913698028164271008532288930109795084665990419528413633730116701267467771342739855311338988521000327489665452761058494666468546797637493849918073012043429304835756039205565295691409154819602283641865906273169327957265290148881367884035392680559615447742721557400054005864331918053472367992075454245377732936635657171514650280116242651143911749835543757946310487837094884871162658712108046666296055329818658414483009350391933064957158840918855116088458176942283418304451298190946753380739053700822232131353768998007934279363084108859101152945677182374825534314416808504427215180773056634367666777758305436598248991861879883130286970517327554365828088067413883338961526823473473518158354570262027730009208219121616679678532978770588070948821546134090762173956717491670250795752605162219406845854281267435792350844989066170700469394545828514595182451023321261764103675935738454624019496193439502964625874468137224399302285269812412867329180739395780097282152352238050400082820691993533520159777503063804465344246438800091826126950786843884165229751265838508156692176569897832756719079485859774228175732883345671008968766052662239328455956096096040039188002851734479636144300321146394920012105501537773414901660894237277825281620804772604026541607556003614294452685236845068585620615545419510528626747383761840189382614267168028280469799716424825385764516184991401863536083998614389114389599619423169987902634539893670954838088579404688892379853776675986410820152662002879521982606094893808405478463549260474591373817302350998127315814610967053846703107637821298375019397483049840452285318519148622177877225333177587820383065108820039882968743009827769490368123253655955670348417777470708614948342892639449720994335013624296869040266659397346006303959318549515114157476211753964537856922183934845537214874823508116381739882387393014099852903766928563820736609865121661180855670993954425610368896178734172533075517350037900881839985338344455231943877960969292992272245288240193981434735253827195920730725435289395633525233518176071054293311611726975588727242685125482316816427560419080984040562083093431237053884328556271073918698561068315777359387472151188873824206854933970463640027516064116382741697378487492658252082065073075325602456640714919210658825571272930329124389789350999982689115277199796948399900763379848965532204631592021419280798779574234404578997938128424081308666766816068461029082870752130045150242690722632537385240207155454189689424279148763499413555545540849331990253085325020932896657608595569046925602011362177683154501338230553424640265239410948057146096709317906930506676064588723587938717237685656935019281052489728236113840307140984560924289503606627612855776563944731927205112896766494920648583675815755637903880660751456480601004391077244332237790166830082375619661880020032906152787908081701204489436313029634426713092066912425201635291348881385013982503964309947449006631774459647632541242642545435062340148701356356985207330959912626195728742828373696317324227096834878048379231977851019141763981385464384150332002752917263685798381646602217713926210181832867246093904209805579611175995465113438133814118281534450637321476021450654825769742448468098511345465672161325401564630923110909504669161659266529129095907604134975622365910278420575852504875009406871723240137424291791087679342922487242747787524100657066831447487518672158622286510517432040855020507908861472317149212004455902814337514680796247489724660597765656107553468112881575463567958111222404502105202484031507308660173504925670230644454848480177136133409250452598221711170373917326009058301351144091313773226504940169671972830654665172443362129299827534047392503614919009162031574671489186017319336316063774761366009959700343903915081951818694317571038937747371511644650655803713800010977787349999955585357543567175957754386387667673627068432488043400312187176159048814314602887113595571279539230143036219500819338552993449569401236892042128284854089866208421785653426384928505451406056687395960839351717511153996213613177354822200108932660767276662033967338116384983964172329784828826328010146268392319254942300881202589924560251222338544118395503937506343650793942227971742240304096751841902527411015826148460744723185735086087774353819722428861453944883608067249514256670717961351505281006476024230346935240647788894833720148222798493450313598252814057154972555305065632577940449854591709722161232984140107552740982130320485603611854315762250397664792664813949373589542678976346391219767235223999200131271323451806939924305887515768722881583727689603613217239696418906993716041948545226950078945760864076736981257644125148634659425540680650292032519201665120934002894982743195955481495404327111586625324564347262747810604412284670456905983174829174754338734378603844218584158794435779969227927254667039751232629882131658764149365461963876176222281340589797232411941480352807354039946930500806319045058090284489719411688925897412736263386822536623728761845050481287692835069642274591273732169585586656509071062741863565855903638075101786712240813209872740737109775899980380174140571187277796055760573228228003476327682098299658741864324764968381840843937563628800138770402732518987584331467109992255693020674236779152727893128253529508372620239588744759355698011302715890378374796488340670139962643165152669301994878116783797658226087742109125648631990902185625451512039303537253664598625542546775687925999443550139642372788037119363319210311475128821866635837368095784288183232867675285189259512892733542632928217022490277819585109637244129730192470579152526296915815494257655839947196936339793305978154012195130202063910516752115566299828869529977087778467678569801171434820481632697852261944839698642203405877565253857245719981007024002901993943317780134619108338697414876330815096965687149697021393969554085930163827791070612115387069079927859733883850027889034786644731937035583660973371824807815390439819796218510873074418869345224983574029700878344339072347095711305920260848018417689795272445438654702018102611204474019266855149046008763561189332473645084399433226824043721241606183494517874471132486855429070575064047852715728861417615438390935466839167438299380180057352579084319540090055859153079974446494788167493634746908158871369295580212536034478892057205018190782586794657398062710559639018386580861441393223643347625104407959305207472555056004824512121770632972581861470634710287488254967512418783742339703691033655431781538731843688244510257874350457108387888330574768295396856513950237929027324569175299865305590587235180162332048427648921612355087122738420552225232264863450930901747684242166655266285730081593797238123625979201462517859670693275260422692338763105062227918752516011040169109160920600926314756175765690405257172635465289872651583600244494516899882993910385626420887746907861510105015518748593585646836571815639820240785140687572460691476289092908003983846713808393944695140744026923595034765868230715187949006073510157531972682671819889302819754272187065251399911807547258041000043240648449712813760489217202593267659126825367023747890417158691263678289101304172477834467384781617435563558821159203028688488835329829728516044742246534641833424514859889671247327178268070531391615350874392447130009205746468811785351098191053727345297393296805250334133228567289397265635787473642345976893908106162917668993401796949366710528900940733159417618617312700358263715857901017871190072485892669771185545390121828085844579335363320286902343337929864773941843416361167704432991532086308904006851067931217859955386464372756088606862911694762620300719112478900075706689631824490835689090219884983541056118523510330960403163777010314406462117751727071167228258421043750371893892763804813896827807169114175796706684096188101666722051377788412138537811951379239256595873654258982752442754716270867932586680289406552923707163167171284593161144040023019921091937836955859256909814515445605820568867433322507052095260692050951042874195059897369292141159717450530091241917645142164098439397855804751925679619845655907944950990284922796637299452938455552954516077618790198629694029269317803654038992524146360438130360384100611858119504199417065493451219914292298921019706696005163772077180218853258741176564915004288238333213086243006106851174217786094633724730986415837521232146012541315146730647498445464446713572956083817342274585366518596236847390801328327263657501734754279412031415451270676160827453290875618896206398378565203338197664187321164637743596938950096099949353899111969585087230016964894685215412582435254708529798925119567465642597475831931952356850621780382197851088506177994594082082799970751799873377949466249609658754575031602461570535858005341756459645088674874207834116645578234522677555919719379195335342447519179458703287132232735877143790999282416619960625578644585868618028410937226104430729490272955683498920399323241581213408226166188418516736481364523300902767401290332331195329446436277130787994232363269857450165034279633727841802629219704694152979375103109818154852312897882857297181059524337805517830072057545423035687257853226344067003430409394917392134813040466969422326288783329669515397636152791123795959762115349599926404149915461527333460135780615366368919106088959696866660236452203098115468150453737154242885652400442163510690973826087782627590352685988910835167278241448250776077863493543417551849834269396580160912969362087161184679503527807208928680793037027737713335288028326320747200575990013140458323623868485298371488930933703818559046340942205609936779340833479560653548238765720913775700895937523532361789415406177832235990929974665035556161368328183650605339778235271595830159259939168437923899441942631599534583025436541277525204163288435887016841580109392489301633921453702612724088844233141696640789272844697964076743750574346886740507287937498672571566369706070729965156834986929725918097431308036912940701270882187056236033207422176278673640586649946397230406098026550734905491243409855242043823530296977369823351754785687894937640498995974365076057767738661639850564320037562584542265509804978985754683547745572556018903720866268710084145437963099932643864981108029665286796852582393021872560304142302947579420274959019504612236787454744775806952786494400373999181993243981993453690579272475260638547772652407605051326996803692742604067072878676274868504333052360147995307069034058126041207764764718818351248070175978293670133316940454294244780371416031451899918366263005094122455411874600154395553790496283932844002911203587459687243133286228456996711641852679413710104370119151380811525188101207800159193132503528306631474052448598275786294463476155220486488886763561154545624081154834303490742561928392811284785928723862912117986689719822045030664135389660234413062931231820606353872557927256580612838690744287632163569121192421118330501392362665565804095245131703458678481120179334776205157109665064024521262317734895907918710052456618761202540167277211544809683846055051707024814437934674181412298187919790417671790966523645053354580233390569982027745746453292308527351708853352389919481279896295822758955803231354049817389044196701331742294270895295646335643732233554637065878609592309829136805455009469187299251371628255024534076000446090778539698308035762083279579784648986600883927837798761933326559858309213427097949746861689719909839775107744098459029803685981390420715132769761943897357293952459208357727574231512069311459028656868520418963294301198200574221955522999658161034193033187158126427771950792165270633325429621376476522436379010765822911931331881465557258442882541532336506895630988838653342351237953668615528919322322506373662128376793610805180154932494037257916838785842815033447258003186539352434452343704419135114567029602785896354680848215533886129656523939901636014599048409427821209352296920724836396609380613626981553738451289493749100529713651944186589098351228221617233358866319333193586830159543536239595053137527638939723798720629463071100745029173129379556564150303432550802638536412835285150805676273026304275739262474080642738982215299571518743963160217655444353458591848731777837551103144041135365910966900605683883532421618471007061520156057629274125136548036708997227863208529391356624126285628934289429963036119998938652385583267786243186735922634664384284011829415542629293104371614113823206035328172307005281228880411362916404062901232786411030798705877448643700358514637868448617776473173330292702633039299575683626524886931057821502342226355897112910963410125901123037571855768215934864062214986706184778088856515071005520890717507565040209075532989722166942615240411723855672657653918852140658008070138768000983090540325364768946598052006589191931243022668857039136355974917368138621608759508177983683691894233569433590465930808129912058723576764438280000430063290488047496258653466915420443688062730821750270141479757824776253962319708834632272807695117795310689114184979485496896459445905264183287756386117237978613819375647596925639667228663943687524891772231505874289413445597262345525843333315783593625796307081364448924990981410105476621811074129682905345692524874707947231313649441714493328236614850018447153948506195223740822502826019442045889345225706367517740938964732919906682858118024992126381076178585211549877089652675457841427336636905797304706716138678618607703884730462151375527483230855949437197265786848815627905344462544046069633249072471544572465446899259813441117517383639981854789657399220237108703693247903342285747653388311490781398295853272475039092883111210555077998758687933003015322029651242799369208682140953269701284896345542856015316756327230257991718633488594542933819378544525303463705976883255588998092845136736175004482821479412948572372257017519493722930519116219050310794146866892938829750677765498965331594850408088686586855290432807487840219393228438565526580621518236212723597683728823269928900308887393075821392665820388226370891571293001068045875114290009610261881820896450756291335651123747812738054987206415485391859374122716203883074070210912440152590417656680384238878743583201589379246108782801424258920502621799271345684019762177105979485783130674035973454497159158426119413495205072741176220959303673943864494358747676776249698994021104755392898234733335099294396793684199151933944787523695283798584269346165747162279084892229229705065990233091652852295786556479439223786876028638500885490771262371027335419665045639784327742081911625663477555375890432729237754453735716463856636108272404214611637007423286834809867949649457486307240457205089762874280446179101441179990232951936763238636987343741750255007811269704095817294224715271660319608844792459213497938338939793720467520617798810801143344691345295373920205358550037041551904556109790648472890424652581082903594200612020428735086416038763898953155260527184552275322007820745537216329903600248014967271205381854672640081408711661602890899160541666529670806689533611902801087667404002744888804959112658475777200186360454704840466404463206107121631107147513346693763092655010119703292187557715756283415627733958252397835956398633769047427498828432177768411231763633372503251049543575256517881569574162837104202757343365384429855875258488032148613760056743010086445026192880573089621221097449022876063356267020838362327954741080997188361218021491988617870430071456286551772239349898359780020883856432004325572721516746601159645742537765216452664477129400626638691814455626121381719680879004825414902683063698577160405312220572510795774842181723154377795159015228299786413336226906738112806471654402289380436162892570724149994530497871637825554346566239617931637973917300724369572180026723013196537387626621615482849882489294479900355021618508051277873452204814761747820411759500751154280315813533387159198427449251515589348928613200178663068960502815249074242283900518511876033971554595073583727453353695337347769029942825040366985539060582199326131472602680487246416427445922456644461026354375503864936157858896646097960690437372264778034976938774954981596195538945672517689470174832996709008635347191991898122536214232003389601627218308312047571714052140522314358915453017561372593651897512358794278954795656207723017585347196144437330852377946532587098892556306220498649706237786184577085776290785790837304358986523365952257795772479514873586878867685375182388057628290636584288999658481764466125017431899674070534061960117006749102003969957889885553390905338572574337010330481237287472658948589918902530023866958388430983111283074030573710405344642954524681224732483131816717124281813460514240166418092940616709064639297423218399738191856938615051504179622988570115498731035241274044576414507649244699927274497666516541008996946768307376253542091076858713602611046884010201422926976224122621477880714059331489665612688404493907282750187955112339489882210947300691073624701355133960543925275852141319655180235591724762229856103253794284668140470810819899470406276414695897232019282210256678896540656119308597259729443168312627611363276992367243997990525471991317506077936773484151417665263597244722128320602295586371490767990859967799824132982790822023510632325233940716198762308801054681117863165588675994423982489588533338897030746111130574168988222511772323035510513521134199126472341502568866889083351697048802334072143221230889174432867102344751570309241916015632472250259121714601239080662165336079671391886612952329719464892981136650295935425030986418497184334675286262539721999034750431902717606874499758374614637197254970623352870367060227268761503063919991737503875999922762680793750689920234318973941734255596750348125229914271094282055368796038007489960202054599077528673271184000036667958157033802037685745328076829823113203463257397287283452147185450816395567950902859420741738167401963131475327131454799576842633551598561188126440608950624574860759228058656822212175361136994102681270336874327028236672654897870106094090049118782624997856689079607051264605802584567443949094041280698364059058091568004114392178678519748530406128870301290322620468380299223758474220744991718903735348015447432195501277457245597498311888751932231186783845332858732927990285704732437803051268523362856012565313861293261193465284292051245639744462173075062672241338136100182762751772479326643834880492658318071974261757404140667360986110298832093534712687192680912737363529844324066874658638268792935398121338942199278869593699908051822856123035153814768543224103177665004794790767094740221275275503327115693766029698167867642025818441989185017178855509848218785577747391768990001153675031222333897144090157954868194164712108534556775752644537144516722482124452505191332013661377638614008668049526230668433192094237032377321449075115048029087393584259718497124143079872643079127048420748092965846380939282672364883581760194116132816832645690856440375549863313398289023516503501246770759288732815189532474866421969406956773585974072562340175440157727170946535999596027605426998194278894672593073960215015003940300322856852435164460306387151698028625234601456509688877584746388154220266908181189276553672147908838683210144470139431564490875513063486848033352418883424891839812470599298017783288909453285936096742355653006924297678416215431934850530640954011538060435659731102408814091985195484659706995279592711453208707011290497256998005407696798778317211288209984067755314215781013101994046385710079163223032872636166829379063101220041530657827336947340383583371648218379853275325002659784741136204631834486696636010677563226336277222130566831584147600376420406919326915658250289964806918189565740028494472615983691120201296914260528205829928772913124806096217076424706590260852067394853801302413955272524746511099746292629065062683052524300790521665576094329229225504310217294795128710377165973826927123885033992595205386056872581990281960041020777521233538965497079948149659628838321231810296255647404535328893357260649578500431923177284911634148192477195226862760632813415414365439882468178276614168739611999880267267981762508658667232537770507310877117078177381835973665454309737076174950338379229147820328013447605062022258895270312138111841727943714664479448991590024940767396647554909493779784638944367830569141895960100359740138887748227192032313008925401920495206838394789865843272005322633505685220856597999980265352820387246657036021954108349440760626047629425630528216337123120222925462054235765976162307348163215162712208861979570460025842392737987564843231460432442179383758867084832675307460929649363563968911492409452327511581689335920513575164972042290108844036847834338682520077777135427005058654864635465823185718238141565474098804524925793548379848261374507758640949319834074373086922174002512901640909329505596680722923466191975961980612002342140185893229900698001251900910553570753942460382242005615255512860635545112564395633979314207140751946238604950070132667810019048431323796179279258111456989263957959989823623109255889558225634235084314048587290706505056874314755915301544721610354331506012380737665941540986986378223567614176355421476467984573290077532937222519756390112216167708437478590106801777939923231518054307600719187733158267645342790393886211576128600911034865249035920034473316761848941201845921929071856898092597654752677575953514827977073447076304058953387440620098275431905055028512574773148917283586272419879172508570993525608024257291474960109474484098058696991798048426507385733800996309353812087219569844459768384717442493219206053540991037822495296146103174644720976716438415930438965389863436676058816985722358797494317660521110071895776131181710517560851928741002221813506016719778030225880623483023975933532325152716424383185564114198193879629198574258804203837997235023444534887582648796087543959291760238761581119152557043723326916662571210309239999931749648775047187496397292634723885661299441329775226809785755133262106028674195197263481294978843230501435712613079134064217293386274347203388424196965234513587242339299753523973041810142073508846298958413742086944610426643285370579977028895718410779051738035734852141749514600631168878208365178216646986299501751131785159320164246462512326897994737202754707349550860266091368584949981169967532341210586340387735746140166969989134838997121048234165980508854959303054682878538380474268491881342528698982216711781599698358583193348598437295854082293112427172850041994477730750787272639556406755978274272912936209775108687805467737745330184490899230523148596153140486816288740563170036037571214358661358745586685366851142699622353333637704183228855141887081917189701796829902581760848423868408043739698110398884523326238314016980120052957051259705028421298857821108910232981303226034072304729601088217389520416249764771953322991511830528446961449143248704782428360854471141516844901556140759791050205506669446930107143125763655467393210556981465350112128275575139676492740775614330667777991227916958312750603089068306366629079851310393550695494391026278959356236788333457194153685815033165072226574957696737083336550714526197301173540629543777028973039394431936976861448299529254629395444838817760110518936480366169946942490331441823728399042340582631829753250137636308056500981456482511840755063488836540723974460619307164426367550951496368585820642415996386100551421725002168518063200470365849475826210918053787924427294690749651643148596954391218262639120963805777197774143032679737956396229369338079710202902508500949537945883063083796918938040892908432427516888748578388289288129891118745644923158546409976422382152153646580366155240514941166602232593392741861282055075797663580034652414704290571848992419807646582518985223522082154058407625541178993201694564113721144908044707234016352467121602082639214262532108603795905720399546829801620633076460550504363314021623757948588636577531267680910416789029493963991205949120139937825173625030556457075474026566278325629021638251533233827158221824308621163948761585566480282995183944667771087710817102609759584001426442142649382837810307508504761295057259948748095490259020851662394179825099629034091312272971675095505519676716851805437363519435931690750360203448902946723980164968740342311572098092337066611312782154147226363284191661350010747952213286995520579028940726629370968609313918358303684989627654855806409724104540678250885986603435165826470820304060408569334616751265857250471654043071634257539640190617420230904105785890177369107684852806019445475303116875485278168725421652806304943999819705397576371904998051173836190807562482998778547083724336958110208929498447070177952971516119826472577338647586878486681169559308176175757987930510507906511480860259722527973852251064083184255416010985433550993889082294468480413055285317240386947788182263914087134107942407724286838887982253748945285454575587490674741238590641001335201270477274021746776816521079409483670342195524126106650238400724421939478622252339745321643959022916210981320622587901136642005704363333637763510851705418671063403144186341626000796379708408804240806445784626414845755021625550782566674834244735885097166244027849647514050860341956055405867196766263301028521648590259312792797084768983193977962595690898475419113553541823814134926148704649212231610356044191399311875976862625932034131877685852497748425878269508578653265400994252698526068694122252188730674087588365368502156081199258908444384167437461637502440408331780995442743174597746490546265261813665924493140146062206167101839709655141161068680116148728757537182104163553565890814443512632900853166921292027874610014144131755718409085826392588034894905364469750853050389598565434627083078991923547501235541341755568770296680516704295184641662561631138461873863819707936871191614448072350132972534882769578745913376299677066330786075457386792675463026971103396698394648812423259189110348523296410225170721178301872681542549514244193972317225764737648060924737227061881606196936340073296405304936018374049218728106097740754694638826956079860535174418412685325168349721139247285252154899082023145359493919711605136927447487946971004770408538975481067246937478800542244249346312968252658641956927495627864768106015233632053406636766856246230486535262229896990723282306191457478517793974270780152397927493286564615884384670635314137006771959422718496814191072327290764919541794884187914266334066687335446066665891540326339431233828421921239348775921355254992784321681149043212873080162602005142600186559806438839572324950097594984056772473259329203857573569075210855690811986835573423319157193689149396366265667285781548261072330827113316542789567712466468340707812164618435308848156996806160483088234310965544636729089874771972394524897808752809504809055438440981491458612310849662259585651024401862261251699101308093524372041282033302686112535171994910032740813944504998186119331820797565178171165194382219154950123872870076187678942203101894274644605035696994589242655128134297894448077205269199031024975585882128448489693350977161186456010750931549216426504961833266715670965453587366491904660464486613574185844667056530135259973268520358644992648512006217457600529764169770076319235965331493717436548889571774117672430705400819250273285001012338155283496236365557459563563721312840171542852811478465408870265914165011888188457470543266922743671588968275198427916873220581721856702757502107469357259572175611701205385524505178037028224170759068201136695851202243921839967459093849781472338101206484874680429570848904187095558261352079819699652158553158306024629165460122857780799750840216227484411086252457628781680109490000704282307514189574879398609688168312511725129377371275596507556369195337008545321869922960160229654413366424185140874310997979725756344097806676396236575677604842256491414018946874843472641257585381752446516112382659276551301793597519590035582130897392211550082685331024625068699734245298648909915873689330534730019835445306816862343668958983240704186019648413997228056857789058024558749228614720161069419788591848109459771398556131256006220473505340566652871676228266996284483174023564018979660159621469462510959243554890689520337168212358643502782386413779525869072298827729908419148591871619447337216469400305280392186757899971704600706349198593315060626780169840904866647268765144407200552882861126897825936013655604187674281554436245323623785289503778740983428786424058092079392298449962827261804164107458939521680711322579156890220632351096110056431512992891247103834687999950798220739733218491830277782367047148075080186445821979351269113260915237765819816726302884055067852962977047198591532189166121127543112800823106216250708317096898773903462669355432726869095528833821206759742014100892704334919056362560380915809430200423872614157774024563458247360894558147145835735461148572262042029023588476246503321333851949865239638908716591776466380410244676811329032070227124164227504269876208839214912249665768416530355418442914174887811678418839066961225670270584151269313613303505542665945813508163783067490411475839540543409133441064320855360113341352164134122455893028292617636070156172952907409326661235916746362586119179468646250919833478304893335623529972439447963910133324349144319851815404784442075440944683275170505201546769632743450796763770148505330449625701164582411290707693107435295937955499339960110425631253700162241307286738420211536888521082115055114570677003299753994979162053908721903232878525371800944082858189725800645811696197995704115416531297336638062274553613954755958280299737485592701367870069654793741984523143698039237315209140954310965168641256357664452640491837423258823760898204474005352124887097163283488398048627711280907900898283165761512112989980666485324782639230494559781943103298276432651620751178675726147517633331945554109084679321870831351280296597621639396149259402480787156699603214239566385495068978475699258406340677865736111809446572340551203241805055185384262858022080232335759413587056950727932514718975941908136390776845294422105633227816573688109731602164778948374596721353460661391591197905863075258731896434416631755488233170139979010588193588461555631507413139953582904861409537408610149495738055582847374523502221307011532447373545518284141110015545466912667334761898347047253137101866638923269728447454562951780080310071320232755574243281419903584556754506401359196684609277513374832659527688416413771923939793413647164045892110837967479308702653824857775331109372586696318709810053171295810781589988019275442516321708551964774002738937841307836275951527553208118361184546744429275692376633540273080195717588558868845908092746896541594718375811871497765732334997977252569852001504916679631759068304516265370485516737419666144665286504042488683146117856568347501936781555253411697258986733622058511528550616571635515955892815819627009270568744022323589374878875659829207779130751209989776878141603270131270081817131248425631177509953192149869423076892587771111577533144903101295820230912150123983030525961523150201642257187540000127794428342803313505903046519123479416645638108180648121051690969976026130329899996874358077552734174550539563289021572543931552154789837943292128072676494236273277340417486109067837397661931271380330404893853467031587966732766436682414729441587316796465044953236497802553972520862206980929702576605570939178871843088606290164027256301013135221542348943317425908428038441348769301688538650634063612845868231480917278058786333301610843635463807908092035303161207219480100825652940689839574949384333873423661231362193079087026147356623453050297041414313497194808679551230523023868440328400208926639601165318626781626242788863761470079600034452116490950145562212991816096439845233655916192763284181607113589744556930362637191804638853103121596654244926131648434357109979952638692610263822937438236418259729442711425337616669773631504151639343077661572448554059557849164279357211009168715184549541856961834609165577738433081546068148117376256068293666708434023600987409457483197223558515939698018522873841293760588435033449393871262962047617535016239824983967679196780170067601206431671515493464266619083363992006825724972417298785396503400876697270319159582359718359643037899228319898188554188735089139365989220763174102092158051969658772093107000410188641782790752162415907361832709565569966701337372630682316838471466166705826149720969924649955741574400019335981600691940307371427102974258973650869620722016958080016018181806954098223663288473564900478189557711032999131978806250382473932145407755702539445436971033515779051067740531498924048653746606087098498700047644708662612779686206956436597712186992322796651672916431438943332177608886827169946318367475679191286989196385443151821270655788335260687910539566960816479519493748536489293667931711541491272446562534172855785003015972056528864597858124211916237537772583481661305092768807040529164875248784704258267453531364288445761549767283472831864265487716118767254974327660493504435952602568740620970228177289168183995996246250889196934732604990658577193361137920751992863089357093452179792465387037545560742261565090653275129606227539857051410539343354214664094588177235280936508687488965103592919341622508359132801536201473778531613963346711495449703182271430716428811108149417694749506435662025940087309437860149192297290273517585850110805015080918972809944498484234273958705840987034604045489408071090531959204768746728006066116770095387288680191867921407416325816387742224497877758604766156812150537707435965800308215688845662182026915559980105953555724836399774055580652808734778723332634238134924720851104063876083270630288190740043216995885149279784348009722442377982743684855720573276143534175057003826954912628103812607688678163642722431495093117009312094343449188929490926865852232571809738084045405295913425208328863459315649898077060656812373949252061692073098789824083276374223101326229954105419502824071569265777765200801183096070229725299646393537132593219491871440384136085509035458188408727175178812274106634278764488220205062820707221779474376699538547319526342857485314395833865395033408654133108367557251207241580355006283666277831132324161958632714517695018719635295541025627308177010638858292628246076824604507488497567705735300995652226162361667637040750739113255004675038582139206905494434964486015466965092478603371571848673096484769028206356900212382308942239998838811613944310143160684866093395434786739078164643839266340544616470493866859782397039334721052136089359157044223198821958753091086069021018079636183707588744572735835509250618816984551492935445304381876499866488910801733513170768908351029905963764969419318813191722836495143047822259218901732925971980839236929056047084205335990259417223611651858258730936094699776042359394448700783536065635956981697381805187212534496749560231985732256538804402324100414416036943321745398925351046333840552608915022219942412832826443094616876487607387287392725160765574096302928860861673594738470872245955662789737009992967683544947224563590885539341826246433599903019201334972794864210275730782087616141786449430433023469033018737653628696014035888301740107595869455874587427059842770236246671247604313931282800988138782560696666253429845059118591230955306155371802418089774682449852030114345564308861459393087370217560360627274324552682983326456974217552166544756607652437860772175758859997835537637545825061103286497220082873512475200367245802011048476906848763555612936358652428793462260409866141599682836100234009449895056836489282223725674287520710026038068525213744069688638281450921564569907172089407179383190332507615566617105288405161591249088980938564068734173664763294299822001170439204140857643530724065386020805135916889014043555263027944591151784700791583010988472162803681019827779193365333597985984259020008631282098563080223154825434289485675665706361033288955683301540364721078956654369805047714629869508450302975183494840164285456444971732995362102448420112006885189966397931167613386395165675080287017041016968827276183968447890151612580871986402604626572394164176086438474377295376531423383654760365038064864052874468499279977087044669797823534487375561619382623439958183328513384600093367459072559424453058009430910416053302423674548804632184777868372960154461155962447679237022622695525336026524874496313494909271155803094872300646657598903357019213173818716640428721859935637821049722491397524451444704624624621552468955637966166921824176536858349316002000237487201282813218206255718228727319293212356096694126784559212402444716279452333708882221328293856762550157854129345359835048686004262421540778785897921580551592845649233232138794113643340928834856184172352076454533888510658403943385087674788982496465557867358756267542101144321349512854306970744497048976576606353592287156907042799043290769314901756824153137569548573368329634902667271119060021687698387764422913203514080558124044353051842001586423250264683046181868154834245624342280018092254920307442428081727048607778490409028014789358670331326231805735667425603323638834298533675197323214024862385052624334066744552046411867283098156117108110849361670017531566954527870515603594458776110679063364348952160402094001810262597635310860172837434328999693818890281248367429126805618355758203346404921077284489717417079562764114912710902380141171099823849033968041130684871958911223050466173100740061967342404967134236835320719885985729124624602243427993297088237311460954085814537839087738097636830371229066732867496620769884644179913425891559490495215764574305773362795904880824656094529728348040971419169058334896349737655077702313101300077560456500434774012134315945927289905984962417026675978277240765293356712618352429451129790169949265437185559028378713188669271662096009095818778884064707265675249483307479668564206148370508341507253272244201489473220945854969791977152107846287587609029862226833264295289087453160022196010102930589180328978525384510435462162927910716896700515972618677466779134459537297632453265266873221712585703100181616112645776804493634731609160318187987186316810746821349455167483543774809348862890333389216980123705874135114052099694021068416644137749718837364281288872693689101632102568618635052985252742828829068904028173965146175487337837948615049448495435357187520417885820288146878789692045135348658903284599329411699080035681745207553740536042598662368354456729258682654739628418378151395825623198268479455018595348812551574972611424810079881957216938540408725972116300933848653687026953899143296854721539361040219205050450132622670166841440550896352283788925965054993923607178409955756164911833709934467004802275682108684508052220763419531198777442395942625049622602080921871871918692852658891817949190420937941396775385044285294437715444028513026261338286270636519260781103178583212143353881047295442118699559488171087979090634143727954659557264185844089611861749404000373016213904357915564600912198114586079133065968449766833365748399946305665505447441715739239434030992930262217306574271516501718102127418702124627809718084846640051398179249470985264075942623033365641836193082194332783173793048315007910760908372145474602075806356333516966027307336453091257120294544798342185077197884960736235432990665076687112176399265333979694397750348876444075779623091429380217584623566683755150413072104311590860075233792792234454329047046799267311760691311390624531524904892641860912513760909527909343715775796960274488145343240082117057525650924673619329186789980223334062029270777469874334894728231718770770627603909676153271149239647129421124611753374746888489476879261138115469887489960789933468587427916515484846931073971105630645272596953144503206886886891307427798478126607962247816679391994222988739898288083477802714724322183291255212709997156038352431429022271241396527522008491466871260806531098417160771940406559499660508863108984177190204837913956913571518981134496612476849259228725866258413142875028984966540097965643300837304558030472062962844164058542331146632888849909603823911394898348267180905795700107888803664324232351114957593455299034113373791818475985058375550547007137891994956917388162734682987522579136145332762155354570922872789565660458221797862546876231095267389371958799369138300624338432431013939446443657138143277436200706536257830853468122745383984886626297764235686998914376538685616780005791040450928280853328527402331512684221141193918180536641437543772707116776146228694567201657503477116906963291712577326834925325508756112991572901971806087514009519220941156890075990184949910845432941966933479041856425276240876263376008954488929199145484710659001732381646251580675053052365279111495113413841758111022757776404070541419623635733960081435147158444286077430539742932370813364892750038033893468735382264542800937890768364834058134197518694742795181091412974574339262081214244154002780390159574932838740846213840630488455503699990846796196492013190759773009204267791705802591722813426272891597583647692464454059523647049578832188163075888168179032076438927141236222860725978768178190053077835425607127382384184890008855201136674053267453049813891047733805478500122607874251966195221618205462069011994686204839524627754931892043829443013061256934913595535091625900191311977261915993441853184826304275336170439968403924989442023545041232474185332916021479695495631628487998006035755919446714166444844319199850116588764354573410499662728647488750936525414310328985477712055684980299315376938417712224112319957403335392634355346804058442950790761984049139444599233203114820457802376242394832569703975527532611472989274137667604195239320911202424525501794807744971183807194903150365067408103621914210572494290418430780925813320066216039440509581916626822176982767417253550544402026421194439988958138021449094211200981451920470018365116331082978205417221987797322996913964248601740979420361740457344397332991762850307173830292781773256698207895070448091439218422380416592736767468172881394917918896012608325656632217327963272320825729088403904309482682699358102914923924966988036176811513122027804136729824734026536546021863310084348294281198442434267441330962117271099835634278245338434294017425343512560695360095538261999063793391052452728683829956862811753145090078004243109813454979987741265467211486365931553018890326787971808811227715843248485897576283763823341341837545970038707567583985298824053573224827084653084879317076731960538799769585045154912124326763628178886609863096888377010732438770349996920205574402944627443830167165816695824138974381643079927787362078697308195538355643767636307448418398387809130104300692501009577938902178132219728105945974842611656167495455344205395470188355157040023477803843468954411752426680795491426406302977341022936531890450948388041831270810973279807684932992551349564760910581602286888807637953491177759985126774823662062607223296451840769091198269963764552742534699758776644744405569470046162748067016978986151546381500654853675429685378517166533913469800162289230263825155262528579677359888665593765294209943595820379073701376389901620514273450210839913769412145983819444908535460961533793282062082792423149165256059935031135968186702781802590818671146074147324101848841704082725181012426832189260241635914469676309522792665054324648811587331387965267187052585563762194946379661340313941403090141216641162603280632854649945831454072845768767569305257150484349617317176729756152314386938332722446865103238175873843447956617733761424930530078206206124029301179773627035079504743066735771604202678873847074015501985445183234542797557511804553859135385857541245490959805798230557188551454378805452420528966077734193245478120234536474988215388479794494399950099782151883416575563837694829798321776131537810391291118468251559307946445954666593078073093345133179905292327036058689959274311519184736816719866982627094649345944085136518878247514461668966313007559188837623585000969230862085099834247176160372276573666344264910592880158846073676517889203664206332086985311612247279287126998521591726355231029993585005274725101535720700093467110072245567838937731513791152666170326846219054861999848680437189504631488332746974164782593112215439785172683430742044993068326737219201591551424139184207989818629383915041686535670377268512080786045394632915834022315693858400400110479512004280517950452240152048902016685821790238943659990743564981478374002905650392676481107301145276869365095607764630277358217510930841773513174578955102019761604659972176048385050163744137705974009158022558963751071492714648546125169768529057482756862399332606798888131182255614497247431549915777726479317261614343732065201086221879898095492455099319800339208024073989309247222387499461652057459326507736837909061405830952860010736657225751284428860131012815426573682907515474466495903988322161099199574357629101306670592745644544448315111035141324025383192576456590601819122463595734305093794952302007149240652157466648976881625175758924131081912908514104383257670086486742067948581905624922517424567918788937945166734638342237741297806436935777914670628736392388891965178567272367023803921427063687474231016654258810652868813506676498869608956797364026036329598949760172714022188350048715495528044695168932560572138320693214567149231567791786695479649814299284843187537043819915227219290086715376515018141269996224235249598679663404812281079684915136485568764445803950204890639021986036956119344030216337769425014097429228657531731868794182240706146886494451064565426250004897867152701334254855885076523654364961601071169579005449278991934570636946175661251004376966124917226459137734116503981974904738044372600882105160687119622294543275635551807723615707721149326497810395135588646969835431339993694054955785637641272607999754477754117421245075653111714801065795016717014261082264873428736975221286406386937799531989411271109359271792139775222680894595756396460914633089163723773424954922408125077809107484164930130585873674155746053731389202603567253142685061433333109603371751669041590719980461600014632426946734218499227709118344974391612473202075144629048565289506012820986665953626910639336681633077526093651434629798614009327342379837694219362852623087022122019477668548553645415261679783859987928158762548064611378137389151654148056442497315548375630830234035850268010983354136849441775185845307825631798453970690997384482280750643286642551907609454848368617722426191489873641445859681005919808138251517451507036456430298864901937200641414409892995687156265414149604272903009775986514723738115748784782170361632769076148819878944976049421388802897319240816817072600249469808675051551523208943739093179152593439438229983800410101895440833629097341345287678774317200062749001686385503792161997502727373881924308517952834958547891460875317136323025657644497874769239359186740318042252528280336671913604287438707335072529400934664054621075275216559022977228811024400025541807939370653942623915661574930341587745839291463135861878621500853745455995389965661774356894007623661904564281601567692264457748552041207410444153234275852913789124476254767916116549493862248461053396348097601290500035005789032407615024542302634849606098863226637706840286488026523859743060743071376858593284320548954163750639672263579389219872381611092050223942102577857608006429209642719064227542104191499020769821345710286852391446180445548635989513005097795012741811805310400301165322348957408047231188525199633001894040958730443113838502830172083329088133271714564314345355474660452937731026911436349147813958690603788483042300038370748710394348863206180236035194624445478369611509164437937206502808030160673659954524985565599674084658108010193007812436837664163708955197402569266387871743218281924744810557726716397756903304472181184509776226918055713527859007043639746540233342962921770611959970864648433564514099508529092104375217533980194302516137306113008751084192249282695830859839088672762752273407944973630162820937132583934588952212234102868122292580457810300805002764769570854083664311912336317282765281385970277109383746858624235710743930126027529383010688989335296049718591483492075563487191941347098413911006560259015231251312050299077082825402265795231841201756057584562191245129148303661063498465207464945326616894343688768130234356607983385448502714793888328143842603744862728036741768551818330575892586335571854462034761225623382175974596385711794075096241528329542465657754335406731065743860577406660231858542597939514721872172752899795031576092271879320389705808100153684022152753809957048947715821437418444418184740340812497837468199873393149916677416175421151212699344810580682830458508923226940006441864229886831952995190752410302039895252032323465026746364721042892722919479178776101672831146200403385804387792101274547567693574580376142764880363289133573228835804747567105181718675631217538122517210638265002194722580296604731172926880823332803060283792959931143410850103974445271072255603751557803257129145523498998270066764948911261230357664394632067899266200305421790565206970105219244583288851989722812735380380264396311021454036598582496089945452510867780093162166498660802998085553708222210919897553747570693745793666084291169362353862057070107339367449648249678450020308467459246661418983706733066375572731067548807915536338250851574677415870762482929266750153633377396149550107412372982705863908068540987124655466658360117154440970376661809909840014447772944984769276597309028426177889312122478540623766840364445204622115384537927393426050326295513913798092689263812081445202269955858780485111045461299503900395185551965647121319386982440654251267852232402499493095380734315791246771313367041600701344462363219783930927133898664790462945699709528149470338432541322209144011894815571552470558130273493270438831887977437452700848639862379279736311037915496643069729873242804638174135010143712999640128783994219954883706228909872887570574457895052834312757335057591316081538772693891611629607628089440387719707797108894040888648420473549635143052408495805238926149695615786961233670234491797971464872869216467800522372087530744155014866136731691180025714438624079174472199818163671103797259974082145352272462583411056944014641775562759853515329722489278165800819382971740025195099490445021397109755425058353483928420247011682245213516536044957447541185245493457042361283557648580625932266553957568035532672614873924999940570350522528535413760263542593325509158540662350359214768305516003677491404968857619159008173200444628519886511213882415052258707080412374644521469766609669376183606799446203937951922200231738485546971790620348958689656727014470002648728992853064312931529089494131402547108052198897076629351862940678278197485743622209206884380241892683916324834458641612019050049254114328426205232154114509851135484746923245972482695177192624471608200568303127618079064577917909933505535643547935156270817865683340436882426043784986462182807174449349166697468130140062793821356946111834905319406894822650907341902801012641025522682817950606214930471064175933759620054864977761130111649329604645969668264111753973214715798504668499938605810973180457147521093377829207476989934519500620507387234748544374697981864247984431452469015489545899309787893297836566411343484574103556168776268465599287143892716676945056222835373914726792572657314936325797730249963743065743984876683986936487600976459148623452294454393721728519310979316744276263244712767768743273427834726166067797809861669694360252496399708741103678540030099804587486751688117162579246131358435119550211572633764466541001567795402097648930688243009639068864148778961827688566784901945534764242968519787239546926877280978133604215876124007606450196525725621042552722391288962817866128427706683536683031303274520955772944553160870429957672584207384595251933817012956670779313007435848387281841753722166881244280070073872955845817560160654003851355172637378300143343482457329751248439727720117770605061564635224710991921255402899235706540692699784769698313855096828889770582435962254027049266514609483548908161938992961683772839831022310441594890847179802269032426569463649891119276697755952575995744178184204422473543634034690627496048962284191442866591922293404740856940550520119652571817574633983753311250542110943258776160411519524096442749361125536592063454054354121487148359172666743430641895090578323743420015966426972372090629644242608768596343515934044321792837140396950879492154160342448443660436531287823445649219387935652690946264817770011222179317200800118292185480405864440216946483098273471806119194028377238867702200350831304078716448270339185669491861196799175774219480885499357006650971847700231293626745270064675014404913760280796020541745885200061775513249231463858189818329524334796295056220874805199224214084810314768453817161675513249217563638820930958423155039447592275265408232434181284812950888108027967862629771377028606728097990472989338220843270668338006900024751825395125550868519345869198470917071817974063976001338428373898851453425571693169505526379904989423322276717855522895734400925932326860765707792356580043490743629952492058336155347479813655506310317857025578350010030589194275663948794946469483159542508019430242203160878513586428459307655610653949068679288182231926737752763720181292951970400944835929435260706877952028098261527597339453186335645944985457720304492651511356507346527443454319720620099702409860396363204912808284504994639173132822591752960842813498788242223324058636370716562970600977310465894899525394328411184075330339574924501104175154041750555210142290083291952332446805453962003350831909711051300161609383260857919672186524089398986417943964248978050480447140771244082464107020894706297785384592821247555574112518970916607948716235097207027243804694097403659459752411787550246166756350013620231697603975150759737888160070471220513334797548215121834786345070881738336497403440186005680421813681474558237606426332717242751316589468106868348118864633958934583403201205338804280549509201354947447992379335959022048739790686985616673470754122131326870001007754646604696782131122495685663103223931825515371411965386116894833222591968660838614536758388939357346182579858033651426959944044586967100157542418627673176827758649613790454429764434908433101230889099090999720658452529174042810341163878876529544923526460369560340365253928299185200056852060929316944621151678600959673903651981937921660917075876186169610635374499068494140871338731041800232187224225329154916051608544455961743041236586729435628273943378676692745490913366692087592859665054329324955163895929763619263860328746762738257400174762733198009211390169576775697801811685396823588943280354044053231092604046897948726166535137827497847401053144884842243436698305199638461996495363722498055938831125013326660072839675739824611936952163790186312720630961606065836754653546029777581363064286776756680113598336146532246271429196006743484439838075342099252155243280512920212739915089691150786773939733405679755134495426001309713166483240141008392482269859979432257291571157135943220396801548040249737558561541337823922495330358071961600285429952555295598406645352393205008730544112637263381373418723341653293683194661245145798708906115040740256211158610411498282165193082890963048958200217012715496888197310516140401955250986618098341826992764674917710842971620372729867046061400265215240401378819025216697142626958650900552800316730097655737525096826907198307435304450821887531101392479158684134463831957526637530342963615038123653446284584802876039694088510501393618959495520544779511755408284611240290013080878875246599851082781321392885706980764447141617000479989484367410878528815795522778601986490890761075587634919444193253740641481526872368557387171344329457859715461554667181456093096080133699398865011223815509272688402275024450426788310960446201735790293013952512948664351142573529158795336322496840600678409117734954881297299323348042352432453438556964894963140824531512672111169212520428730793878502746827424010745590166774912472023764265923177008807561682895823300478403923787901543803001774240965265172207792955841826189750486044196216636384540544283232304624627498286952237450875028938260451124777691920108888260831072872713333824592502820890458542206564309008972583507312933470872214649426666384399764389480281399781302885410428328692156165010846002219713299744522387714696375359204728655928275934319535683927011840160019004199708800953565814109597590765182975439077138431202118619075770643457975507182863783613761912875987689826275792460527256709452969168032452161396477480616693734545037064933855694785866420023411966166813978492145339423465542416376315952379805274079206234090205513795952433420970228030129922903284545051073341079889825822134167235570825232027217448637813109567954629726493212392243556562875078227204338296062399363819234059765987331496551323200780729408891709915888586836275884899517748146448340984444288721007618474215339206448910616488610484594381005345365935657633324244782918953950250049078300886422557586104839304767735350256083334584741290939843472115032126071607158249281911292850869845910945955681587074343547801416867880096423811891067814202408418940199486963930788312922386934898034602573685607339523864888607447332962237660109057844942875621606499568975071932979799904708718062097009225503689291602045969448170149832164951005152969684060173499093253093931565352532607319910784840331258500540521877141230475895892912446819464030232321784489945030678149876386096018322324044124716742773267315446388707011312493810045739367612085251208951634573008769946253098388420962544436410162342095933771605521912020752142135032054500625651575126854482167335365482675029423434202973437430320232408103487436105979823953185356706945591685341805554194130803908522666816954216049528107522582002471350811236373142988968431668176512743631251182493584000728544899240275126468145110752601360392592256882063825223406897013145613540611680229521130571130032177040684435757925683154007820187911450009210463395855837394482222030844427683445048921516595868907038905273433262833841226130625834895920193363338559056426580817605455868030235039716255019216813149589725119626438272808481372405408253570292974127377788315088133019417666750481667041351388274588999987584434621657647660610174734327030244459223804160585387760758412957624505343547674429496162319543756882680088562633745926514737786455367640552127927378614715224112075567949969040506910309161211183156147071226981464526053546374003026204130419637270227392704675850071260633893135597976859693714749736042237226192224566814342725668779952997358779128981747078366392496372988921606469274376605591666334318857087334358008566894775898636715293181092934274215020148200765017019613452978446197360558420364231187531384909474183399596426890784110783819035018928453045595927402588438475140663259153227774989983167573289655587962317011515562170310017544143828551273858809508637649934385555984672600993165555830504509611049379611680808220608043599641088727063553120647101758808769377786546527609768873980613805066653147639253877009414836099947853818650675605838373962601364836255900066493775605301946195278801499584914870575197410819251968072224117455715215097554731533059774512860674048762392108703845188281288520745853914118550727302913537915133203729823577808834130217327120285897177310619907145675929369366217714740411878014441089828900124321218323918789320295206738095714313650901432677337417610315735977750405197144536863795414144357931740161537547829232988228648929454106161108810898423218807848554100986139208901290429028484764198729055893903909949035971924122349142539884725903978320330915844255860766160980154029251294995553509015208641123794349901065338605421515688377545197345433750726224829834827564539649383839867225093966715520098293516691385906342066458685364607116727370345875622765890732968285578745614339107310087855959200897689367261092273036476794080788805619447264620938807348944484144440731450216631305747948447448759200938117564402303244308800122038388062542680187906061182208566398928361036597109382390674350982420126437057027823315744294857115376143724077748067591288952312699007255665476640049756423263165781361786414030505690165444329446865153845403913235928509799120304574044011250870492084129852315495820269595450457810814811658314644438666378837646354150154327923889505157769401219146878621904516669778672269845888244841605195470880596971933358425530814716727485179461333643455563828238791171078071340779689429672892348140627900996276477113327416370434475435862839915644595460336287616527663818284705637510927548460850961656493928747568364058349192576087492040355437565288867410781369635039149529994897874187052857557666403819007475157290906183253533090688321530601859949259841593465338609408559226712714764515175023503040168846661885016286462384350497439060652801160724244195767698683236171922900700248987100785702491455307856676293203413595651534522061203236579034791182177590075725740413800400252280180560511672242227570549569157010712120666254561999290014689057244095500495373826097283087994704238584195498174589374645812172004768159399795792216803722480826623047989005880346842840875962006029288080321429957503798664756829211219360463624975579771063361476603799804702789888490187190643314484427370527959718101672209601554996110616047220954527467931276828640019525018624872620256854646550128827851942018280243401271939905866598524635815260999215965361305327028033754088318811358289270356155948142277416729997631297965491668070033421889764316767339050114482260690915637678578749534052055784898988761795487178167550415073331286600031282469732274500465573923280764923855696102101640705052092942262037433206404029720590315385131870267596846863997975274056839120244858549802726771373916227221227325919821383803085267373433183629364096018255652783445278904194614843643121814342489889341557013059894719153212202146067520294868266246875899926866988002038049257425199689491632235919066444707057422071790714758866551336069769146723316581908998471971873528980088865493598371367170086184143037301236621662459203643285192200879388601207577757888713728619697776800347914381341963532555391329134116830524216078937078215733742548115501814758951628147955868143793142119728711143174375913576185701827354657419051864386539777454385755730328041134302434520027442744865568062374653628927908471290876574235871306790101528669853771369351796253157503035356890531804764111853013005276663392884266776969175591383981369091208789357518071113884064888886823917338379172527408114182973177550193175434576505729138309734262998723121141404709571466985460113606481146254999737085762571400658883828642034766140932540911046299663220081408074772857373062916793796978476325231530392141904142736612874150812784800336336242831031342975340160722622912638007739109074272270432558467028435831998678777340431743407950551220007331402426714438786844647961131109398589704287778007389096306893127049042048490355596921732011129274259144347813614265986260637087552439219483299966444454113432331874585297529466232872807156975018136705829028759860851093517781169852090743621089358375527007352067396793044553979471189056564256941984411951939468937083250575548026926134873668548806464130001607652911400164765891695489835454899896031545509508085511652523185117747210934682654483441712112415007988780968631185093195559847060919624199322967832562155076802867099599129368970709195271730519755534418388801179732342166416234473751510141569291792285875328396045937826499480322376676664598740718133885797481956004100897953605526947378858084222732588400400170130034671746351574559491568124302741353107230173610941421764555159578783113579776374787412300333709532617338072642601073877690690460226031045466926028984525978954943260453518946422496810266259980587268735474624255882063398761158138450717875896776303383216074389745374469849082695813150108148899030355543435810942335449707803829705670737616486975193348560849359968271446034258334103051896187081562921560164135547846665902290921806791010057866875233445335336202811242314698586278413056709893267377584547061951076253231068253768364288592016000185915297368082167012867732352741585763571615487376595484631426470681493653620403489375414029203728457718372552033377510513972301683951429328875577649729249068004539073985479071939010763160348702582965388509072787273664867254397071672478006673828426179630754392075615818552266293588746282398209453958463631269734630322916002597417977476196213214982550152119782508312851286894071804315078731243886242349505345892091951286208337764187629611082768806956767700334277689062110336992825663761146711694168357534006787894176539243011063445585387789660147644077762746190369692435461024723546488337940451285678145451986273506011960386029877957878798965095815087121183854606001132726553412088472771653770933735243606472730370607541434483393647249457218479089749826879113658752946923945267257952330634009220832146867721673597995505917535495639394258161293771850486320061904121804266552558444226834623895447005670627106970259457552027872272819472886896510613036379494717638260738260250264383021056180632745384557219868415369552491560680575586310986574384330963702670884433143519115739363352102699393342136740753475192762604835199950273682395914872170172578575465469816448243032428597204036111016005798741074814305228441182685253745542737600161658034604957444583183374439327910181724012162445699728104421938325957227415388560303095568177801466637051327769237914815559800810319188254110883616626503064069308566578709929830658881105176942141669444933518886915298111040353584566700330811807897127252623044441047546576791918253422810091322629626842277391840662205295883165354694469358533129548825056983679482430507926218636830952736821221010560453462400448044504106989500322535319979982380153218578059639931261988511012028298085861640902386687698820558128251657679890391221298564790435500055096982218507774736864079029867582378046541555128240408826449911281057742192385317117343260339247576125779697424804340073434490810114672645080570510062849082963568255374540743716113927207484924215438946496705251858594158309549028707451331513010236830473733432945072776764964760890400538736424708446819838464471272134430477634249118359676786207474518648654752636914761421728440985529813377517187270392530778761652397113521947751029860537579195817160247205916273086574686472194572481049700817682983201164432142928643569719223230205496082865701941334553567163470071527830448086406337166803170574564086529299873612284175970231819725153776136798229250080089913798911159866444672497893103661692275070203681034742624437951525738783840026369029828459187176243947628567013147918076591137758444204163663252612891166866703814310727938790011886901601165817280291996333159830903192875122757050415874321883347225867389290816121964029976013096136328949842123378405713939347176108123822507002718976332710713574994883671979706485347742996068912083461539312878568872973601097618270989894386604208993504554381426433257759294370503612654368350677816714740452349230682697023772607514863299438859098373320481968096661791667312212163964014148190124711358890718854144776156228096455024975756609955005477735949468391644433879783281948680251024173510984940298248982076164959645501100823161906071084984055861701215883556603647760718453708106484000175069041778233987743424422327985725487115696153524169958296594706253666377411104708573102174830410104479287465451217133628060254818028411627307610043677065487070313939112493278083896907871470931029984903819023802207890483439977307778103480831894244566616351468457852554254697586901697583398309895753171292205424576127931794344708728794495257009051796853455302406208717467346506170145710233025129714727010451668325196796509946522911977877373583634088227745669005113701612411300811564603900341214950883619074986939982202665592306558512337824182031855040080391229136073002819520540739423313490461863691739936650385955682129667255623017783020588696271425152063849063563745554372882236727841359414179430251306433645415638316096630244000289254942239167461797782778045872977898018899656142518490450133780165295280527968526501631097582206637682313384330397287263576971849271457155478697076053365155243267258148507492873434178924984872961331361457276144561021842028951599636812529910213735113155289753684935805521473348017653746772518529794390886947116231833396136419922560810399814847590922752805052146204231218235726165644042925596825644980620485355404765427050843758609980919469717443507514492024321231172761698080474664498587199662412285975333544518121904369375995797317219880139909466933411989652168589915629540732302572570256132641241982980008003946900980904624545517550145040725384615003671822821959429706416847259154709243765810082436755617051963728886112766126397333915303945580739672563097285826110391866518569249020776685884094224300670778630639164947167530432378874261429246095498599321048485618199421304858377679252893079202908128200312324122191976331358873831503499446853963072077614219506574755171608618126686745985812897169325749178018522988639391649255924802201321667841564032629590104333920075759373929459060520879691103852785287299295703927839329572256522001060197924438622292535064279460458499884676439168148116478664567842517207755904459138039135261875480894550943808875846743980621618951629322848634615141708742627080920046359031200057893887448618356550443133343093686099297208780261039855225800170344828284827020299940247811537494003368955684929791555016578378096290545932729475137411878911396375396530805043039916694857702426333704048166674897574016710163329400871324404872920209783008165253516274900940797225981116025108376527963507268962327414588583945944513175202991756130845191120071439628117141352407921682883461889844418217838717259869876374242871104904531508231716072442444398197904348163340164938065753195279980549340360114285996648558252529122373612822577947883614589526639225542737893613192934057963372607100874085253320227443927522432959315621889477336764314729406871538321299022791379604375910169771786886210342772027006419618487081796309543472682938538838206905726176667153375276073387756911450671419812733867272089755620119379521507796756319348070445438038891732299080266166199278444473165712952674533928284407326664704798306150118233973874943407630817390519965138600064603371895918334978874372760358204933406839124852873807384990497967251013152874599371859329979642421805146774793113250464048348813665402730373571954675119769345479440437347256882385711035015745952825409933321914152020236868319006025476767735789013631537827352415759815864479611891801217524394383799954749695982349450498630922075555012305047337799607311546650558979409479219151040355611922553786088843564389389546815056459386270193242301312747685843858521874980817098780564231835949091363612201169851314300311484977258874002126395719472213507401291084376604099790578108089669723392467983001387237082089632813319024821503419722620429884463357006335080991224224265695745446365851204454975290772336096912635606946002800514056840557001917856041836051018216875957762282281748440652755012477713726064675749284188064896123995145977894404075920758795632143119461290059517545052173125846661542216931283334063577231828522578980731158167394028187111046439863020406722732808625665733556637914723616922990464149690727041515613398151324013637812814687638645404818838018413543912186551754894723355487395810766383336891054228451823654501513963566187736977097359169833150592546926210843368102152443278703477926607644714596382785391991573882356179608083677203832085805920640184132962727833376151726942835497117113123204293680841078471534928285190851006436168975386216582994640433707287398666442511970375140033111188339564718070035199186413209285980300600302418771446574775214378300607618211120421680670248588054169114572060560201896452759923097624808766895661522008086259834746832669474669175181801763030656105035551339888032949940886540586160300559384992861851375206573989107417859255237719120412002424301888303215844557986585058339432778104872696241325132830384389713421950646829059236389220168781381859162315860345326798949357197279747291979327542722010492831144676214751885667949220736666639056098777549884685963231503674103925127609125403637165657146137294588544901101641542848734476966229733838672671087209363647721675538548673446322491939376340556820856650334794006328366302360761954877579769427402064370452096538976395292573472176405129717421797733343242100024631638484910329220241603296350799603151343507250831661997601962053197366367803870481450381022956554059423713171179293951002536434497054276470929933052430521761797487798460738529734545219116879527033190857233527954057236955553245975533195510984714092367629594848431100697405294058073987086560549487221926931636511940063340149040926582750542077918999483743627139862931318733994938371072687137510781588058713372012156378540010568858216001647492379573065413561147313902488475287451518504148922293845630700378020516787446441326967829839302674720865718180689883819036926153906442541622374649422449396965780354199326526787177768309657082125493688663044167251579212767078090296759170285988377444624734424771401536900094362950146226035882264719255767623374102210623959799752115906747705316853279706407412716021150644945197563665923933823066343664716256118785383442405187076350063002533028712377363806602905731129394716792090997877928365417788977325492172126411470890928815912872531742484739002358151585405649265718182616510008962260014542951661267983943463997905468993082536385197959118239198075669847277999033959828567480216254925099202193836836375313326818084346806399649475553371200614083334128668358351265216912964323780294862855815731729842846626566194316790390273265619680666464748690752924880140157128984162944582450871874073640154707239561368057236200055288723047188773154947964840472776047148372320159894488970333339170487352011109161008660918660701717766758641952340681399301923805961409300444876692506391913656307826708390967160845564789336314046550978977500117777876834220944861998551292256595167329890431859266692096671748200337435973461786742225138020386541520178827799603039769663216354907377110338234362950418757374758049900063885498569397290857107920098458220688574727071700869569238772970716122213938142110043279900082774816817399632480738853579850731405219437366051293701062198896514237926638257002468329189026780624318575758341119931369786395784187324308714458698562119331021218336720418195558966607728421839598099220314423219878123810038661469979552075991319646894865086222416377827063126496619996394396043561911809707895023520540143592684257366011712106511621743074683259639261144199272610004350242995681253536049261534220719779834340247685613815053021557281929305569117955049262157019015075948222745823318757959748810801477919727119345782720005651993884394972444179441500570955931853680259877632620066668632859718716414130460681006805023675401993785807532480978637872532544367465300888612285920498259480219323843458748659072470823069844354271323736904806070876738410982304337675236683301954881397060592970849004289223922750471734777815349689362052518710435669134533084069739230676311612204337648166229878903613626540104107313478499538898419346343380308335088420084377940864647088600507321265813479907926187082684824925467284676843983837903465979252666104469404485392385519053004338358594363101105496878176221192567579402420631441872982542158731533649656437400190479798973328601478069967735012651986689534609639708470020285690374053133906679066804215628397804222647740875602806815802111862414756121183021420235048906350996492283905359048129984505411178080490415549904140428197935761016816512121929954565373938435365238941728942830338543614227310802465793719547523312740842753000047764173142439788576390057866745961068445107665774366369804154998978691404387111349308549972890573269368379809237774929901602074711009407154305291196295382207044764964927487954996872723263510428061441526937821483029081942004509210055576818834409419323678613157907635048655078517857746652170680672929601574264511064478314201462907744592618401393620101120332965364359677560956072760440314366346741754668763793164607805968013879031742176764930723707650377621169536141097824803245322557591967644684451691427699260009320305161078143338065992949017052770155754943865911708708432779855426506817893825867776376143059764077317151352907466954700460549201379619023104274456390447676262123674967374592163780087355727624996003941282465890218403973689549288759466316560756037921705192296752641044896878480080586447886014468673504615764906253683808792250318634025230784014836125840906773336664811423344096851987999667727326062519611320636935936696770819352980775499903880720543873174901925686273891552267587575398386186053134888699521053066140207223395342303570419306505511879460805711277287168569359146578196156986401174141228206853571250345330364555839699350916614152608865910490050734091506590591293521598236849826671440966729668657033734245748926205878928024110757813316334284650946659940342599483605830613698452977583107579245112925494050042810003378383414108823869925164466937249514356879425867486781525580475244532324017146442836798088674017696139353903551623904254496157638266764094205402005835343384591026558569197876125618103831562343644398246597865775378919462710114943950544914546760332728815756077821554096101272276679618414410313977660754240311675508604827752828922949326630694507045420179578322299769433216382716741755926390404655523919208524214920435912946327051958065195588205358654744749833507344674784654497055717560936403981471409598239935880099836365247285681061135781170810587214001802564562234540565716965345889811351207450748205315172779826546742602431827101645115304638042287328808689701269998152336212555805523661630271329038616083505200515289568160692566077733386217306561313157352215743549707091310654078173431721310107400649852915765629832967451246783255439186937473572858106811801716197632047755386189487087911182087668781973691425233907059464903264587041140789574875055507553682664423207574322777251198263023239320969373637836703954193064355432130829666414453899443304473888518724373001200836414824191724559204700692382323071023310810087782366531157542824157600108088424051515790460962520550859406359846776995033381916174916158878432229084833737096485334217664115802533318268001772415744081803106194850670509693660312261189903719961258238238667526740045153524356891416706537933100662773563473439035838867522762899760913979738132050614723804755100192540144367008765721658919600241854767085448804943877977688290683457830612013590012622841493021781046525291348832937568434459245191706778358478383892991472797150001017768862398086618160630781913446273805722159439519541107023167937258770820686241168570213548563617643904599596615934995897256773639468899782082353022531789319979311661255049221529112301756790931519051488470215019686378547453736608694753368835243448018258398730353642404643769784239485018134715124700361477836785018041935579840700006635909248847133334665702762772825312920164095864959228522140095699834573753982212804646521987747583484046773766315764456876540119918610586725647671849103545140918437215142406095752064988075345350911158476984482167336673070092902557040198711393543298729642669455850778922490337847757962438829049583313770439120236197515035746161588015173962335336345631328862762703396616540352049013685954129064455863193966992621851484846692267816023451335038143182853525184065747155521016084625896013085761287765050430279911528317877890432654306018896582533969498097228063604943928935735122386186522727327867522449305503317545489075498348136677928615445534771002700028126487590436515608971510025198648015588168030636669025900965704794250587088384859789755550068695447255014824240318479159002918617396302996960049780371856786786549713478159191416520352813543286504801020064371229725126385261432652896539300459238552115840086819804499770479123359304776808084098192339639070549275593477816973106086710662619050705666411487654228131710927500421995978219128811246062136882822745867083713410572493304092545573968850065383565724646337279934381790254532910442181486608470721528171941506078990854041462540146060082089521719042519220805882999125114614899836914150105716522424338907694173699789401429505173678042120104960098391996060363877291174270645710868808669773812666817732331239051882130902136496144992447897740996232116451419685041710126572110591692528063055508330409309023086333365266881147564601218811810822594555180791421361555724239893699299950220909133237406532553736358841602168811965957490102777098686326606284736427046460896418886300050521163037180017083099737105825233454460913221201119002808848579392459878726052017792129352083199559188414227576666029913299565973607344714190133501598135678213279687676302292841479239180894436786391168502058573743163325804276399550729911737838813851903089746684416056348830962469364861550370450691495351110577665248843837305588560822055774659834485021967414704701821629785525343761545760247337436088494811071414844426875229737016511381059805870300459481715569243050339123210967076465674218108802936781719588024306016725909396179846431460376439128147457583055015496953074415094517886113468517316281769850320176143115553035327619141351464344157235357129247201654919462912252570524212693869956965401300771011170498742811112019549051773064591726715616484725368199190081505666186077883839922343456975019965304810578771313809733263455289668222488815816974416111557728197163263124866364281393398052977379564845740414280366193998167635656723824302433954959501195219043180083373980903439303693056551632948274368191141949204798301774713240836611052505369238375244149310495729236848667124601796627154282668554844223166101668523671392055739377797339427137549819768133765991457611659138936195469336429355098526352774763970519680177941331645926086348558228945316183869097100193323673591623178512315669918363185373966625658736339296691257765645696961709770196175769972391329226988914219727124034290529803334162948732542203831929460686769019218883833320580332530191099359639629754680366513738543907907547290128761383984594757179542167946640706708027247292411515780808287134149700300377026970032812891490535904766840999437894367406181548443079025195880851618340447157733607096737457217744999248850667818953367009810390054498195907740260245836402416119882019290454550746780175680881207843767083318889932469182965022870940098223882263891022053939002420182763939839132512012726232377469485719147376236738504412263540761309994457747833263245510201388189050289247460207246556077791492648512787245619560661555190318695884783039242480731804028113016212232442135627212851084989979034909013786325277150864507942543923435536455183037839792182705053011124142862681987104434070985705979650959340903112814034958094908468509769729957476778167692520555850782414937761352905227458564644667575713002499728459546447068046491643054790959000659228908731125461171366363280036729656309169047789551645524756835025588101793503856966898760877505424394792894615718290612889074279364616731663440870712211742234302730015757497342292308504883229541405969647625410801990977384442903416776681486582706808330062525182752510890323334329628477452632336150657751362955509367650759416833232415559136943656208379349229583525860492995548274367292344561416180784848772755170756348065344062323658245375770799730009085256756051695654307692758268122607077664424686284300661504811151731283190191291308419722707436394482880414616601026861233042044727269097150232581137369940201022714986543648888757490788227982052203836396695931364386850170698486969289830033007372284573185498082377948361245812729083051693253687409766611159725018557795410135757951630294335886006987546037146406726896327462283031503610379010778932858272213800667097265299742139072826083833907264414967328496003636704884287628565642146565018615438077396306335829898134410008953164113513356458926361879669556473967328670726445450207013461357457410401969011825393027642708565282518055670740777704254038626004689178464741047499554996618850347286793195717117124923679993483137896822475658636636168331249385144499529119389636803404568897142501953522799593066017845597369951922263470331189826999475734039298494088962251238826417811715426000528934708470835634206223992450952531290545441614952406087715564242488774217345441453020275414524721851507079975655225776220250838014736623343358633768841181702324076940077284324761427661640186808076565198688343795899282309481477134978098335412863971250238659128315905499572787170889874370848539883630587201908079107029129817504688105889991119113224424405435018538004737572264141136222053579823779430676411975801623300352004900011359032456999237494052588954923169980155050399962218979956117750815494806122114423509131247980723911445449308836737288125882668266462443792352786041296069098482093684760620341927647733620276980945280349274503127220106124999553624271890582019012973022129147034248764567143672051812585677035390141005861268529226404683551945518239126040595739333956972245612753991889281992382768100911260613190718345107574557121997658609505860194349004003774688314661253223906096301955028759215817472333005542225198882644416771641895418630012430510481879549605341270106099949236759026851274542280236007151373125175769219921243057598495052693515781238464960000170350422517606761113030332639298878148631805898151850549948784552492552756189586414419728091671246773401190411554326928363558516139980006858416270282138432202789598671356882626840166717139871401588870600306819884061321415224102020706006085154274801270766307935786393435620399411448327157738637491076494324516708738567172421146178201990383777328664403658936520355571421613286676407115401807635558775228227044235530628901675112289827399595912152275329789042625790571132830819144601149199743438295426606664673861152148498229294747655196133240179166184836397980973102924241060925087860124452910491967549873317192291709249430595188253921936185934999860145537593094130191064606167255518365743419908650981711879768718098581331142662656569439584473380632296679218524910594984119770233752077498399249721189386196721306103171666246793928452717354151310577184334118147953036413574298285545626908706406218432827517935821302968660744123997782450680109508858700662658448432431625861648128871264443607842754282092436278202121687168736515490111779733138155426603082581987435162602728129072073665835914296568221049356229337071879380635658678685768806205833846914134362165385390477363324001619914031210772025772750062881014909924624911675060841956837890664030730345304453597530502322120336904127694981387861997503510131840849464689204652597911369470112606331335961709762568251139129464659600442829220898516446572871076536639374292021220405997901033511624533046403361047984399666127686901122972485695988947474844897016017951800801795737881894253730633703879623055626536013244887090937525321473718742578615825119530741494852482903605352932703297283134069125194746119245196717984962758958065072902517047846154376899738174090622524815437409732477271456565694902004744336810780464996584257566861422728679980988656972022462059916182691348541792555615465050667225648816928353139713610794650257275242769605433639776035850670199391588865995797138601494758918887258194106970945694022737321011736881349429624058552852859763944019745781286018374479421011771362964422436914280306542972557539593925321480719111242918150402007960916009211586683691744517685307387873308434444039736784385147855530615534500970773091338526836337295604862215290249659842858729566320092094324173169220061171892530717848677096952319777962912158501536747588252547040157676646375631371743803251137692276463835402152871734341385552759834506700489427966437534234754587409524010459336067461542522458645692422926694279593722802480926305221132803162320160557931530241547348803971096172782873363497474109548634564439339494069872606669677147953010915699515048463604686903727241014076172775905157938309959540945927074660178122414324646994282199136444549967515362165583121537735889263755611605743849004594024794893213141272476191759086919850628223715453874937213134527864174702596580282203779242758693311208848299840061570111968231089304509740864708547352648338704004231614987484288919274388719069557078088847613233214702514048768335834834909546508184732507317695181239659442626557027134612893882519264935639902710466350058696151784425519910939027439212281384220552787640597878835555969064536354801086621688666258348460650765676153104829611253111447902222278170182884147630804432526472978824236261661386428931539196313021020321074325374388035067703574894453413003486383839462065464438460854927507508402296517601600062536194649491607473661209244272639289923283415081261506936373720806692788501968731421210046836191664785636591300219710321180267592050475183921231682292057699064040265996873336826512160938907793873489631005218425974204434042347079134672321009688056300993809797772589381500611781062224351336741454081337293165786179952195135111805898184671227810509081001392840833213140849033079818592964363240127851696062165368370747895696558442250372446792654940993499262731575260438305691544977041965618125467102774371870782438912576456627253235386682175544235365967081943158347781405327942773272307307615526795080256300790444070996533777270551748421398603590987049759556279094403644695294171454178379453196498760411913074735038090213696029047872004837315560178151255539454003559945780978718873497663701732812418691678091767185432237958988063583378686344787909495660320173508315155356812627055829581644272893867244260909860339789886010982674160551951896151587782054355891979975525798539694767084358428177493360910982625276222840549768043456095584624256404941048219006475676318159559157423457097408729704511060505766766920829040478972945459541570580048262845219499688622658101026857159743482293983064164687770732356768641343206645836650212432727840763673978221074441428016787562154253360644264994938551656258454268111163018568004425390838192346408669061844292400944526027040411857799268217664167616010087488536491363824839621715282133897144772018375307086769598307664105471952741136030683239335183707889954539031426287137829381461601813388010334226411126367591001056498790121710639553903081802849812808115316511768044974449684271216730274947659131195021601750602103758492176874500012007813069093104101054559660919615197560709054423332751219306272292458279190281788734811781513309671182454847474417562170369287994101391845951663618582223370498069703538737537133424667988181103501489282205057388904343346443485956231441790258838056037168763763092267125788887726339598578682209773296135642006656600632097119748140679793825200363063962539513903966682790895959631446637595459943359493758429854976608893643132168716241470301039113878456399158282627368586195547010143772602591013457769863387311390884582502234230122944071997602100873155209945530912639853928584059599634392467286539024843921016765218481059961222380408085140543151366180630426915734605807138978567565156982151110605398186115298978720478741097597937126616009138765216097092283502235808680218128620059477127805516180469123308979225141209471457657042522640360578310994091096776354755926546916064935402127790045267404982934490582240200506360251078232891232279213262518228543787251415201059504899079809248601825962185991022622786881201684264577934123472625428297312836256758434315641063180178605253278414372734567038307823012593165603197738089404737284001074032578100514871471890884107982620991581234660823859695917322624747467430190660484579535034601182589978650236208529760323413656688951141193185611446098477314291317757552690936508708201599005076105830033710561055165636419391994556612045232828707785645622073138270685524865682570105860026375995366025315407858307728329746473755605342948000187738786142708641908685239743966193156383351742439772859663698085227793262406761854167508770041735109400793524122265362898583645719902039497922306860965839265992912368649147765171171156437927096342057030080647644690613631379186210385524846047039563721330713135060653090114666472868602378137438564948390216199009023875622080062434126599732226665253132090663108347628602883247746282247183140303218011401691442287675669043465277262237122168112117948616672117686083785959722149855743379070911706893948474813846851630322017798670434914205046821032066328329474165206309868816781894653368548366552537983755567062341403806745660513970147005968347578795905261908537574995038978392121456940683249462522701675062258919343840423788566538858837454089043883383041977318260589764673194502084692342622249700572286964016125789360281303265499648149751391641349319144938165416334172080964940216129010536506729535044538881607350306763046372533541899966987899168150047495317472041465353621738682290739932804592201890501353061773046703292161521206335803881929249647931703954618125998181369143344825835121973995336780722407966510632438894335868634782398791871933036923690146164363460662434982675087405216851667829102470934612409937862479026778604696842889892440967229210996045939081012819630354894872045317685403473414833194440740156509756151499626538503065861239051434829623138974705490044029931060862792600435915014471444610124954135124821312746671804965165419040141423424037983686458998234694119260012703592956864752831095012447494415510599140612594672999420218690883370403527797426904876812359638259234551891479040535980733233353514270558962305569635790724788849383745274327475647972525433666664694450551699381000815349362711962100645543876078640758528615449609733607366062571451439781708928804619607770017288390517295117197239620298713234391853333276849021966346294255930653301655080781955658275806917029677664797066842491184880204486895906002503714114356478484576175196775820874023704857221911498462124358277061318583731135845475321766758105357650457052408215331403020239433648472346948873291910041068562718325781634922983348650639701677026959338199970765352720049247732235726661198751190680761849831805823502081265158810951950532880347738505888691544069019095811284827285387460927207631840066185895703181015345313912438004903342099135570388474999501903415500612493513992990530196602693296833299523385811446576871554149679531035975577391617069724984315624640427718510827292648095123639898802800706728299946413087149438020434347263106561231848458495402576451459953170726233174052605167350766671652947905148592971930062422081741236116787967532373488444552592447749637640244224071907625070972146419203397549812658006037716291107022653275358425132407521470885487006320291673131216504102134606904437816363435118609058508229453733667018384493942870109251890260398766587666558419115524145482291935438396458957124587243272503308625256609256092026562782121869582050558011074795654879569144898675362117100331139877738167523159037883975747737396412220112288875264013797550232092962238552569077039275653130171172345768971785595858389508576320908060221618523253134792971525950930965159082318913335139453166715906217812342138369335158748119130954912198065705090735370554780652330486580936047805371179478571955728291121652599664318938654681258056615571213666362045808966850004543000941921856700603416407438527456492088806403812922513726315656540650657830634032615427002811265538644231794697213140739834804220246833429328679881746810460530908883266238826530497166264062390290734242366428883553055451430000277589973349958614319777047088901169651365105625684693639075479731019682156751202880269285862627561518594516733380952023155471192881956042697118945820237294610532468925900670381036648501339490344700018572834832198061293542734330340564944245310019894132114651339591176064636702415156547753682681676814369467780023300149938953009716896282715530944456371897144493667793164542893530133054563874004131576412089518408890871516947474871414522642858338325517656889646586732377761260928017825917091522590178353109055280039120063053124096325123110992064567124612148025960102072046346338121365837825419376225450147795532449900257724769173136740024679081930215777115418979478588941379306792571422607481368787002550731147887138137162576610651278714192670137984538411636119393097602998305426266262762303740900138874213167297384768217021464875582049539475144972773092857211590484177563379828895600871903710714547892339236293052494602238959380596158082830333181790707873333111678063670578874071839946952713489554447553898401575453387106071678801244120980320117059944477512121528157229050548382515819908236164831732353834722435196597051001321858545769644432747022571568127086670983999728080959594488641563020134420968705161941866657302320639737837199992799041532439723838560704948890216087816318141070714773341302220125089756162303310014731381465766466077913966376794728919845571745061034668332147427787239565681625819786989726163249756651298949408490478467195689700918803828975390922531223292546309077556743401434755413349727974599077697717949957183101069867835835644635664594962017307643366698255337716432063023047585550925825416517261702169194892883513604068588634177767547483678993825208096653380150499269010697419945785052839132889155737724143128591744514329568788687732286087481824896738559150220374604682946826702811602392846841568963058667673944653020089594781381538151685890099360023402564384251479494518708933467396038854077260434979019231807394743243669492364852973669579634325952335479846126024809626206738916054073590364492642247056761438923858603033939215471946726920946107204439721219227261519684901537200699001723519486838977060973488250269690871103360178585311475276052593371327759501090846424628849706872939886985859860957794999220072421785082981892187234767861525427684287807769528179562682940563387723354865180926685584244938855237824543772191158234972556993632991986032710685895943116471968992179332965350925279947410620981209229064209432055295139212629106383237599501454932960243926200584464249859221070553484511742755804061027119839405430571262188202679123638486386751854133012598193754539668507402537983384833835632469579294631095028957181076001655629015498499369819346979418601637767481639879960958519203246554840600656749976620664679552775997757244021918222942400446700566175370293364015026801973706596367618772267677796888728298166574497692198617183383628961235917673222536314908757844137603289895027824181900847165749626829135800402881666886579142980889876346471906097178168730941227203767804374043638527009208636590100599791055562597909132689547383545659423721070308195142620792905581998701491604770839471806767717760153593203189297232342951935306254467451760090130327351070448782530418560969676973303481560761710357458658835642853440666878471931474164876160233558930690715451095779710347725239205345638700938288787340520875098258332798504276643148905887519923873457134686621030495493019208204390396178911937020483183903841178984857961426721248886738984833549164121646434019480456124800374518667713849501223169221030414821937650177097284957500401110664941540941825085317792991765069758752907714048003972861463856901584712976133881239764732737438027354300201715881874197632183004928437853122122754962238555193159385387065835015568482494828442059539532770561629127177826649687281527714951227595037206965503330771228387498376049132345968465430948046876400011041740638035535833836483020998735988709222464554727652793008983918117044849740252350759788308136963207752933714348716130776289564487189536871242248330987487270571408980513971418887711460283553576764201887042254406139995433574649216072741043276890416253893397889496537070614955358691912571811258231156738623457814561714702115307129168755553415087880411727050010020946632846382371762282762597846809633416301681953765609381208873770320228167223293929174778417769325638015586524115657737502981134202992428559208121519341808640079694094318252786110809277918398895597538352561072838426966334261213233696078531882075792895110295311520223150763209406213609757801754736383353181692726120851899082640280999674456236620615924226945204835632133291493018736625454857844546577574662100640936193205115865823234046472322548078030627129638667689187740771326762585654345305876000460445436057225927425311492581591927290046418891013171459044772238630034843215005383962530778687764915910282976666629160264102649044239602227310090573121115533606705354725490449487506053959105917815102475425816356364861596368333359205280533653488736708810103176612524641922252488492336563255531846552739930724821693196703767249611083498466560979916174387749810003338610302977272891275574170556943949118836401501168316957038120499095973100270949032193849938807671181671686011921732600960354132407222602263097371259223214952859275987911702157224937347825787871382617682245455857011324053603820364335337896206675128862563168788439519963001160540057936989977405142977001604877787288742883778519339803717360793999421310628541164561388045183822999855108271306863309185116528519364018639545157460916353513122356378037084130343289727558952971539286151550457171347209533883573473923999741697448453894244405987941189055412896049351781004830628125612780607627746718470941904793527156696941113086205933312302055639698536421294750244365581988252353424880005442555646074585747150365623005281305330575404291686603194608330720887583330241393407314505580759405299237978215833753755080924852504023026982091464853387138067394986906838121117345090563156041356609732424765562326038345961681114108041651046332844369763468828393373011753753821654940128670767155599678197158698870966803653256915757343729060108628589693356180499096547614902238312340787921821233604523805630703492112422055312594454803967162660611234556113991804278914494230869611786155334638014576265882887696178752594446589254643872545525966140228109146334036662625457569733792789280252711432696056120177520038130239520642337244176832026167241116934305213308653568477532533561821035794922785664076592998139210104529944933183553843779992101002020418203858439060839965778546043052738519232985188497161123314484983309045933570249817767391312932224212496518768523215216829287180466248081255173506943961752072274659421373640172875463179533617990154399698856444878804887859285603214712058944521311369293752641887335041123521797608155067727739333642723027150049996596816484173276270305502131869276124697091855872521001006782279619321387518337596695990490777515576121596146041541340946307348656082090082111600878596401902382518247702897987759044337549251015184545515928760248671675232409301008493013916901372648219422658794769790602723463633231551874238485653155893382124286494371052259609744161453395503268795604591025151114150638599760983208379181180189877099636936647653479695837921243890866387491635131370038928399851924278095798061358637853708421801095474543115485558610941698592739178076294278783820162686938801859627234944180506292414123084015200915727643556533292525327937074387975346776412784509749190273381670096772512684667271761657748560688106940745110953781741565959690171299999661173988729652379191885580207499908675459672598757542167981321478020309639696587930946510395178932944338275575384167006442990753329851318458940808426898381983490945370781255801483538321334372026937382970367045506501860961852645625242800435829629212052266914276065705826621870206748847558690250556144132785325729700359971452961576993877048624698938595607297185018313691309953150416409207568681354215772971365226829794334250769484354914424224067775944259769911021685611870249623587551584751455680896948669882011897554543870267661633608678226207776727704807843907276206334131562913469063123190194732700363117707957294651453541155767414976931969313435682396217594495176356600251842784017667879573989613047688815973857093283738655788010500604090709425046247277680859307646082245976796046515188889666781800515817919355794809926628431248886057717596232196314215633990539187082400222289683760571231915028259790886080190335948610840251276321855413274377122985520291030948201537871852855501283262755318596016189458229190184330378265819175181450557694883287253436320741152150542052574416772587669644644261093817880900372831509083008509476062502469575736376835831791250720596193223035446960090148408731753881601142607099610057670090393971161491161404760634881380960419009819982147810599649653466176804874321883193045090062812398407534592242393436896316775702985421201688878621761461230436115627553697978287231567449686585421224693527957985540885563031227019250420055637834358240588450067481325063373055667222346896901367165385570270581876818070783714347728801747370601703754099230579349830627198778252231335036175378296645205333031085202542494181039099023001545787045278433377963545204004341623934874982551308880996090665893516410049880387557218809261983007202216618598740156351248544798860811115579397422637217895704527339468233788855429793951382032222725808129588879589347064959002405265582609795885814461637615944326546662207246457633588868546709454962564686678011741198082010239184195072941783346908857262334892463330016930067150548609356861742259059458190886030456911895803943898622264703118662213181851675635446130008540214299960093968123086307505764233075308730968595710781828687224040748762727860269084349949281629182212378825300528807680178532645043761864049196881890040038524704343801396968355174090092491770787227010714465611436895573730136581790104923287917954858209775158171811453503899166324744132019174835326259968345203615096752000531282855287752039618620907055924227613847742225909248266302814691486966720089981776989378109110906990075706335072141652615114296156072135924448854431196174127803917111283751234507618425397139092891733630414645706330046709319192796328941318026834663371797338254406948747275701574851532210953348572753718133034644715684507107080283136784002064145041945320323909114860230389621838885612725462037491136470750391359479049919310618690321455261690609838724041216002645291651537990708507233877165277545184928797956529265721903090516759008060566935349774564276806231650767029400306856251412799572404335800353169947149919996359094650000393975160733235580298852948769871729398854993437614653871396972083363335435169893975000646667981971506072416954308021468422955345727130099034553993813068060470424302451114564520940171100102700309673147274051346599341666372104269032465635425344857373253403376950999092566497631709840915151025540302798673722828286998583314506621702962502784158261984605157518976973001630470188709385071135696304660201601829919794193376834485656140157373174905260325051543928539058764265681120606001151504655188203899274815616182517945882217132276763268959948105917548897877055418177131483590521529010764038977340299353487485983488201814123764430663930135622741643417838868402941275753378980814639345456701392680797791720480523699566294297002415227638345702653311376552641337865245300113539800902082143385868825592750920473650583141499210601219934212997102136288441936226366797873893946627723325048070623191350477079575213837400597986996238292269403633689987295873175411031825924588851093656201349030860988603288209453677544023518038372818856431553720967467221304327327122086954330238178541290481693760053993031802578256634672654918909797941576172443247503948936923379735854103295980630795189180930170136945617646212172673638246794527601730508983647778097515039680124970424291387789360274467975636618977213702802056812761383095060093766010575279621541060430264332302250330334501659705666788974399870637741456020036772919349643466084003796176416454605321820823379754705489375059545032844373952405778391745354639508867567118764955265521338494554032365906256296517148827979570377022112238959224950621503561426222522350967515065135335788846181926120193718206787106571528638340496000924922731071810182503082453722887691859138557653731470267282783293597370125576751529784835683390696755611188605065841601963391013083863053677879335610386346047227805353404817100368950787154953290736603268996232864157788349493694824051474579235373643864285595417611996419559467692348645334534913677067174643838456003054651366668379320751004032943287212843917171298971610983483049707661631660854934316999133962587068602518451834498946364463534499850882953830178578462053139092555506167731766290975071275967096508845756541680798962671469384350899825106361720066702018196394160114328931636218097687985694988845321330093474179960472444427476659030462741544104263591347160481797398088729224440470193920879761069402426700141601914026738124188277411097595610168191477273198658301359529163437533107701857210491502882573986264051146041805473032872345979351188717417234592473841039529651571746676634799185143637908699499367914188167337558289855370450868447661148684528754974055311543759732090613597729793761044991818070590612758714095062934271361811205851901052051672164222757623942774015019854046597315173791293680752629142985967115106945368352922925848853117147878266238334320790990530211308045479727936550282301032218730867644450386157175647141604221985786632429328800975739614166222440252175370635572687089312623448257899321256832606711404213083598849413273357025952930711411355083813922244470086746961355279087576559304652190687334895276600397030790316756182917976796541096089177189114603208264253651029419220933121067011987091161457531889860706698715317025869187831795963541070226441080958269379431653374549720816992733648233879090725880635275545058279964129498053955692083320916958755367139890063769700266033053796393653256983340652550088219585014405685021056552343173745939187617956004211318537782588322593221530779197457993281486924031999948972685774195597510554292527072663747429195151293471806876145130815503530917184872550702980338609988552915143671573418246353957978277391191172647441779686235625056844252198599145557461692901442108007588863243368913169340162952107887060641166946857858021176653145429114002949094971201562763570330453120857352249318850270842416871337113553640364794538933641292020197492169275269201630823041346180812827044409521618058652928225756904925497550764028710690641949359774323700412679902085409370844082081357832406882195814419998939199520534593594970200429905215563387472030245922544764639845144964933969934085769975345309280621941991739092519752613812280418048254165270421270570887286312387935349169614944186861495279060381170386172519263180163635464194785420252613523195709223753862748444719047636849981699181622770795494628509573816732081580098522470902529717929620707198055811359213873094346193195676503738295132455865813950362013371932331329727107207336315435025695992219126978892879199939971628536642775678752420516740575666265508460015053483798628575650231887608405139606080592194828345713031774897623756270161966099818450401421582479128839940232642329344497566381664489273618166018755529702825787672582016389839610580884278820086238064948047776474108537428801772399064349583019531172695945654986135884580007956505771801966367014154288082009387880938621436448632301487389521274614837639920947282708768686101281146863425542361896022091345999898036247477173599664456141888724064993086890945279388900156045294425378158277378152864437488175469409613825644200133034381327882494921762513979935075990795157162131807852826490446406111620086746476297968484658561834446492830468919283007263407083651493964389377784275521175077507564771631914852680699525161405602942707788085029692540135883231467093984659408106676619498370428835883731739248230093851139427646770020122935864587074912183300923708637031727114365234549568816524113527593258089800952663327806200852858234054414290949027580708005481444782043020058846080899413974522679496453224082866290199694461354146573037234711977787348251572945508204992467156443636393517081886117434218619278891475898891393763948146443662868979954908882009861809219459979312326837448406689541962234662599781887523094872766819062920259035251039986290735267569313007163866987916432798732082767390582426374202089131247517922869812284569100886989771869546126167109871681275506916509967895296344723798606835789571698526064207885612625434593032767589656760468967169181486811592656319008742603325368763403462022268218809252196625092500416294385928007322252628355637992182000344350139374687067775459171570933748082024273582295158368483670317999587507050801001930244911693906613085223121047080033411657470111550248310971198092679924755753823535977171704706449017047275744694100129695975433193660629059210560099898576791851930440417881835058983359169740771769068612117096078357318912324494445320399168008047189982058163317595794186214253336373023268884779232851318296548092632313342820614175526876972302903812416491493348967154334085625343979853109461254341106385713402023806081740860804498845306756854789167839277923309318737720538402807389002746995957693814554686711096774067473604238867124477480486388919131110885330686416349048497209839884289172977311433341596004469518334288656969047912232897282746028481719494950228194269896410070693447264859381967449762356901726470110161735346185995685279960562432105943723479863017629288313539876130456729887226676968665750914101293627041917048293006247416972517760692631157907994066885253014226119123292749072562465556885342293997816309448196205774397327241189411485182006164636274881491366233371837702950958437665721937424153814768572521269868909429754271576041344732991651302785889069181672145765280928478776584316152616198466259723859165324971859756624389683617526946877229527753959717153514541214879232929833098136523711276275669732150096137224768279824113887754760970234686899968313124204231058528590606278791381410946490269543346115617597420686647448406494863440858418666939432583990074743158804973165230702635267689955033630006558092945501994818125720583246307238215585029445397727436516902186263319066396656065906732754906195801129029849614154059530825483911603219308694505829912185252049316891723773250407928952350863605491398259503867473367785799309229040982435960084910656408743192470866434037700087832249448560520451029241232217882696196821199116494710870174136543504079492909499015746169725913949380327055624249118935777712640222573452207230992632574216332526129529232167166060277818734451750108304858731307161669623444329729784402796120632120295110216097326969040783500354715139427674039918754926818672451487292165050366174220982090814472726887365333462085859200550613020247581015218725753632151898476319785805246879742928678524422247457294743955737024826439845538800536295098585749316969655215517564538910175970196120568329228573889856963664374344411664111223008404719060178308937176066471465175064675712347287781450432531159211727640467279698561800252179764404889584909853098727231487763356677446306321367884877414870260195873780498159567192890698858084073007278835306832232027169256576677505005260057621599029691475476649856813199043793744408580567436956499142824460792616107826249402465358720912312679933023363146388616215655027104606030913217595252191703757491182707736198922569660426462374241372187651683756965574071834897667740494156426936262068047848332051361287382961426599090807251217404234195733340971892532395245930795056561681060649137114641257524159466415349494626391792730355866606515922954782641507214565754271373543217875923717943883204969912813267289925772022699366288826817614105682967862376972477752714226873692481655387570118842634128597829016837792761597167973184395876426358679925541475408197543518290085169634736324080649200597109927866395864886649037105849562974993700234641522791988027365040951196243818853754522681065270793071095713662314116719590550494802759101665297511548092695957979413102503095194538483250201103449477634006351864137706282424362668261916401459107644336951536105560678063013177523837432796478855667600009777371894309452366039872964630028372993373934371611085318673826461177525064381229663603779900639099584298446147950738273312191450441106314475149614609805867825352809252528968422914243840480447341804080151652754041352064344010505333316493011087215498402542964320495354746524276417730034908038407106762527022188465104517359669696580595909017141943720889335372839243571966699002804681749998097683710463021545692545719792285077724132827960482338559342371112235674306422347987328610891123774842174485335311557756149069486483705931964212920810426396659246862841339737773038566846995393588516224443492353781081912626495599001544840065835528976846048482533774398092961430581323386865136560083186460470105652893414818624520182127379611182887231708348665268952924169076993503346485447100764987308498105665180263774807743503205479667767938323822133373292661484792832225090447763811902378760700019773377315726807599325066165504281932157718578877304708875589526564764711468300939806965493035695021788211071472189666783639660104012186329567686338728442323021671082131693561982053881998744062053007429461052190249971955871055797031034316403185947837360181699369501796209628118735873704405677950937385474900322549719251700158575056638793957925818398511574235146178888244677812898091913854103771156016748104440852217600525417264522598081461382843777035161801399026884116656668283842632673512043757709507866318849061394411857441599982125922173927684896139876772255509126568525946124074335958730949537048177862997102461808792358006322622606970340300846800936344722827942311119609337682316813153473507264783249769397573895162112753081757552509391091104049299907099685195777436729270344673935051997344292711887960842638444315151861663734912558212826780828795263455352288891527381689000893658730213756330919277738973166261560564484696804051426501536452160501395063463881541076539673374073064700138355666678318348123127556324599234243761636062509306793783467781802934088626145001737656903979606295336224222109280104824246842806294925176773706955750348065248895641792370335609430031110734976337214303768315999924254513744043356627992469915098588932635755623779029589078974493510185270451580325658556214188761644829379321151447703008921209506718901402801017604458837980319622980444861279026797110008873865404025487873879275069180921571409958403891169586519344497582564138654136347951283562097896794221271339149720394895862840033695131134721325889542144182670935289642875617311543790789133205812898905555493817293649322039434178670902593217562666879855757022590708904930733012602555429181057154687697471689335207369993947336349971606081923605809116355585370003497374147523587842583834539339585664234572047603587414358257415732340689121761878114307645636419410289198928382534531428638408917641731654659314896410518922311507020064528236451269329909067317311349081618254033178661460115333478605295317232728836272940706366568594261373154178472798158476551892338450088948567443902029222302369818018451067111189101206777436417947419759464475892344581424163856084536373105985095963078988979668410879774386128704197260361164529748682403451227040451665335531667437357224021104976488927874604773159176782832601212017756330979056776968985957533657691715268877197766412393047946818416489783907710556456411871832127181692592126682758222682351675713303992486517120794534745033657794980248766846071393933770910229124331233207934538275843039374049140023501728104060950943785810483102161199895402269738041173000646286993035327450232834989527353656700110713229757014595548518404532778737411666582851364288506944762255713993719590402059239436498556986422436759161410448092543709004197994924063710948295674320144520306438618221947670498178049219568512324383776792920993593889100869327604827532879691767170220504222577875407985171463162689064070259799798644873282101852050267599782143558169952678381881616109794345369057071841937386698244009901059368433509452419657636119497976736708946647296310961026425170603435314242329425405487179631676920286236635223401795849519225346879038980208312451635270119028013841928152132479562265150829430399089940302723839608468958171176318547743396431244394018364853094973370657892774471957005915942474690850549162524350705197952938301070628962460272382511004288599625353845373710193829598236442465622562555882165560890574385180264324233358061523826949968481688485134070585181242372047330819808459684616064293048079614222523248556843280093077458609821348867150861335013447085545468683604779835944816965618892652839455617718528188059407568406268909632908617508162643403059123393646595380653612200045856087507251587289220377821456335468875435734332272026733923697797474949435945768041148694049906630289884036818816041598752945140829359703557893681057550915822094630772386483061362866110218379172580612457843360603606905943653526871116692005544104981370401177459388297153328558660028795829755696372647739607244161294801944883091794425794218955732330959405560588667303482580074977400425306670401271825112623827710281029525377239025596177712285762898267037511677692285865130387128847672226122555712336072454312652018394048545416194480678308888316546806766594511536700516334977963958984202638861620228696283403417751628498914072922073671050390932792010387713824346965806758126272859915661651228563846178101962574176428293458334675237467866141630267680153464998943634348682791174938642378085694077090248039519110429740760552815967913364630707138658614721682812315962791268994712571432506300290821002240203953511634237996613569760953840049876097522161656624253294658943959336688357155127682370253606941991148265477141489566688055243954114766264994386224051357628983399590710907729306402455754435616717239063978476458545562818216668309120200027508542704647289616574629713636536635794505649504749713048349834310529642832125221445341072629280516001537708790064076303411397881836207377125322832173702705078022527605042692115056992679903278685127753638159959765624219168892188302693249918696129604225378347632788231078578532117789641721311101083866336420042622467338340186113568191606177896401516847190483466351349259924007485589873207665863563498305199409391319855705564761737091215110075247884098748036149705333303454777347466246842719879134098497338151991170314304348807970665875316644888145019511879031707897339635463721805891418279194086784638359858259856823324719288555770326284808309036513537391641549895639284773358474452083298075124044271203183133019522006134933498730088384967300446597570257181283859753266044110660908246980408627926696270215107637394119870971044999885581223365601174894894269843224618660698464345554879164560117840543383034790424424967401123689614697810034947121957268438524496948931684875993735842334268944456407868093579033019324964967647210399971796006699100876930016780080817221002515769463395799176001981441939792117556504712946493711039261121312826422213084947019059938323192994878688880694527754409333467718378596250103624696500257800926837214420254747541926760493063371371373761142036301377199977792546198036715491182698728027389036725708641940904518387313361018529472847996509282076659005988952008969432537599858075075870569959295032537556628233971918445136519968394233107516678377362234034780723728946057703888563258580474048548301562286122581807947668264457611188356739463706625279795277563421413711072936395647740219360320881976418769398696761466211232219155472921412007427342750878058319008089253412771586766187713332705271551439834379918501778993898575751670399435086063367229037122590909692687999756049185468457626985480061380033231591855673342404075333268136134757824061445113261487885039809964918365034454787101781246379477619914983276330319127511708430967194913871870904245071984685300672013193633957394374643359895333187597572782736948262782137985779638159222488137449060803452490711018485970261031792685160013404811470909504966411863633555068409246646541661518861904944238590207111339650350055131435620169529654576541063876801133971737402339485494845211496179163614975315736519065434647951370542099825573839086968240482515745631761688144215535163583466484969874952994723392131684837962631264292638796576441124520629601664453359944673080045813441587325154440785940967124051294956534044262474502835797473700683433715676025153207855711430041781950131363674010275110617493971839486249068737044346837820298866475078333712550255428900318414588828291465389981703537644428888627156117992315479121275330199384481765720950868005598087413954215336900003130150549372475993654928893418772765395252113678831176844489266318297077589738461243383872178548650392594231428280768596392976125190838082025678465075366569069369939090891896665267531953146416051797395237815329784039146510257634587605605355001394441376053501287531757926220727082076009927064268013967924248208337959604288811994658245891269623460894998633584062280617976806991893422865143815684547740314109458299058418305651735245003436534204849727109295970642271041501350395045943241181475915260695924313876134768063367739048309667675573985274845465659635126388322742555275547921591767165986594167240358120907769417032877008131171387559554735989900844687473442587823173420927270661556456143862459058801309553946729656241481400588226172022845835574806568672727243173836847754143683788061573837590211401517538568646474338300353682042612370409997042701070748464623093149643378321983833309247135899853179855655376941178527007669456024124390292521107436216216676204702107905673583964616502901733534464114335852252495163309110672946952223314813154678229633229427023779793613767618254520297538880683566938962563694466366924990874814103311944243799809578303771827790820335089474243213499877631455349657552507807237852942412785925812779235299981011809196741762530007564802499463005505301238370538323485199989808649410643410738080593734455078750878932139816922507056131373950170583689295016828454177720454185353069339331153288100527757336825260087685595095036395572485928009200863571451904005369575483191115366391307912985923241050785205399601960404762964455564368673143127587561305335455587827644037140468388068058923830568756239967437534699419085962633714499504915001509377311750490168716366983345058215254878565634042884725833075323105235935324456957724278716498224946582132858878252921376523512677587109662388404447199238671939539390346515966102588945706439357701913340551423295086052282319921710980336487779705172534428437533498794876691074308104619656776691966427914380898518159155339785791515818336055102779683698510582188081727136066144909444390250249788347877379505807641192035330467164582175389523354768737655940081373035352420312393123521564949466036104397601427941665496057334501991463493542086186881537198447544827076812479168236050982279701852362999666512190510354487432308678504017502533686114809989012393462238102260409464998796641151907707110948868789484407000373987421514502418017873896931221650540395283118109023543571079071247063216593510324216404467318713495566694579088488182567341307975008265607903467639193279928530541527813424398735807121772452616630051411737887412533284262149502127145677161137261350073677682969986376748107475122961532167922455080145856541898853721483157929041355216347078507752499637517186792740667765180332782911196764006893163687990528954142731963266101299308685822331923531981418910304951503701897242911670733211684766452534260965554862252894823021256129178501047692223153058125672061479385157459135866811985297270476715372953015694704445106319560226771880930878540982106202030725451992699876594634398011504139146549351037907107116402947391722840439328275475644050338534039674140287365220950546487687589789567222819093404347572118947129014197434337792158789073773965839333455739313422799080547274587517807664261753322878738333696338722450021877175644162595541280120239077444144910926972451120078086943929406355138945913289747756605763352005837987685797645055482992051385605378290664056904258080632166136128338267144241814041807687910594627967651690629752857600408413196769721282773146129853976429952861654584373331365062499548846151030028922967179253513873916359663662566552973496539038638242525705794528194620806740990894171691666195675263559533009767021264158329760934319319409361037062063154960157560550363726263097151335807210609652499794809284905481664769591046212643179951141217692911768489764757442355324566418280509765492907148790009393157489571711217323942251481209515942128966085709234527118464589979720271739438297898041736231924022049123664803237608401435753858431328869456095171161670839509822647546059851443640561424741932330205890601158853721531478382976022122358980406427787894009738914886409774715920575626818960525326046440414693448619983722227939040919874218252925331213018641475711588391329960845050596151810346368579029173839435381462654479799575490998053307894688087965396898483167942664764691039182462937981984416678543445371713296688907733336323236992759386588547112420794328035281819593156498249692489976026514305567502074899204284097001367224345225667325851860750784334459161178162809136667001330049235849665099764978968100804257967374745058372657590922250122699586260923369744977574332039432502301956699224670474832196518818366092140979147846238985557030812138164039955055844411289326214842269660058681580295971685779571105711902961231270161088513807970971568861926215432098103504060473620223861067330739301731417825068331375149186354626725658275533221214348543208996551893846851483956392002664620969975534725614857934809392850445276183172150758314142730036503047840133447767095273429064091897776225773324657668076967026425765304668453712924328241624329896355622546918044619267030518814199110413690267452949610682369596678106751277016380151314867783489598601107012919521765605681744791011962357841160831533410148124672381419942826914665149905583875750045199956379711509529699868987989434021870242435606157624943569460875080671571455445705158607375685685636784249132182163308680012922181379554404688665095074374924090384759077772660963861572673636363624126734013521276362333601222216023043322083789294633820511067494891082808917622306171166615821193828309434998623736417806076608903533472292055005149058144071961425816499826269382412908842080215280801379115504325988081011338111540481211016892778649912864740570636045204028946637504514068645891444739084962581470149448634999347190902880061003581486472334990313797024042075132991493957952683241846196444593043913533175544747520047592648428276038939362373442684018681864852291578212641842835019431478390768053642858082914306411499455186894608393708214570970655589155433423594546268255602641146515993933828279454256802243688551921148917761069485291217647891486056092525456920182714840295762637274737623726648823627994324646978586674142564216556487931849035190153304861930356521675840243549256116908075303126845638772458175435304736533312731978214763139588140237938682053887179860924952876942801094734017522181029491550570074674255135858106394345762838175761507348921222550369750186573158868476989697643532443176949771686906260627250020820522243697115676828912003340982803815712352195141176936855243052609155198329996100593103762541295135582714748475264450066969147901529455734493908765580715226953214167848213572989923293094417883234758061118041199629818495455370623222700126634955638790009669192078631701116024829666314969167205162078745571422990103269279009031492594261500471325604550953111110353342588868620610958981168914118332581570334666725583185090738704105248785350212293779174779855525304034187962992590429531408813232054654537166838238396229270487167973368914969049525670807967952741284316265084960979402172111002764110545665870851264260189140189033357064404809921057325871544993561537213752346177680604588088987135129376473832498866434818680186445218606947213843983773244071539730556803378400016162786901324543660588899967873436415180187656241782039235821325398966992081144648989203785108659504745423517110680851444220677130556325012059934897914810009801927871718777785008565434939445135106338753156201160842191649716593322335843503736933380840910914868164999855405164415238014858963324567668316535089300972847581537032734667048575385733011588443331421162844545050293078129882306285476787684162740027940014287885819249418911442920881362181219133732537099663028030442879935050521588134148297739329662712581763827263526045001660550132259838606345430198853410947524766575006377795720131668991558546524002384208873887092591200121004161548142968731101334125254854991416185980568773988454384836932503661735005261676804577213488792024575189751372277429770521889201232131565216976881603635940351693490739296878150511868758526996482207893901618173383750922865830205986573592397360640852973003723654570393251036466799923557602787493070493170402063904838097756527107524292921819641919865016157059231918744893024713645375985377823927731920360413233464341430634939082198051546926027333127909392350070596760980750140741845990619509110516415565113362000979954457585938984728066852829839934755725775755453446174048686233514944950257503227986249221462445570686041814420930516426144443697047738718695873614129888387255139653537982303913439886987454139029353295247452550244551203202654418270596573290484004660102759020810153206510523837102368891265565623438712039403740977932055351790838117228306126429875287478895783036129080127412363423833328402901818443845464808005195716310891305596877275235783087093549313651580861781992352009255005782719082499019736676475071525392041322865100171278116331753283406756050562821774121421471935374962651000701171873719080614767327195661644505577878861042417171300507818358687068753977706415003940725043145550660517699807595956895316382327490969508445734633310362929201361085918623289118362956790182768434134485367529953380139825437936474927347471864517789868723913233361169509932926230905741782781383161923115810289080020842806688533080307243802866593986373442746449023216938503268337285446605595969378596275038592251649828591515018529248104007595415202242254899692076901009451794956738261785860320965589290059486767148490530188972760409514214378778673672515086311726338002729601109621267504693461534586631801837500741570336078700115355293310788348130890165224641879796855707562337842209226779071236593316746919238382949232852343477446086517813002568422584881320283569595942642903149351500874711227249474235037834736640789664931550817427167350189622274091814625381715415629955129583508237427081955312623060601205129990308892822798145649256787857504544324743263864732370211526894787255553181429489540620424713989578046435599163167153086528583290789271440295086241009812983047571063263455979942184478093482591799364267962293412828434695625687772051918444711974110319615118793533920140450252858333382156044554263524807485352003542132275055422718567160426427899994972708690133719842750600852042319619001002866622015122147953591906310538625500523057835319628706597420142755688668618330788453568200145177333538451516645914211058155484222979807220494396799448768187175372212034062427519282083650604811421286149293889560086643673429202127379006211307572948776422439043832701033256561148885431166707739185532001180926180083108051435594245538361913820317509190509937480262951947898692531398279976810735518569156202482844145565450621570902807821227207991275149083738081735319466687569028682811237484508605567570571278546309562201171906251230986441420915672701277440377381450477673780691016430864068512770664711756027808316518048183285691167618230149435240930137621566589708557878850303363733101287577849557838918272926649465734313491957554535157388871443280550183759514548585907485462905893177033505471421292014064913042523937186156585440598680447401400094892915240203740254386363666126513693144286127797842058163893940500749940763605087198082535568097695770275525500258573425042646907413251857345837263523958338583535876452712066926822564973084427068167155271848651512145800261299970113672827229743156025761120478585371429855312267948832896860728769626675950196889372394652148792023027470131957982208224966934040739160954575235635338533647804833885031299411203343332851534616780757086952451097335608574325932126372242552422972364363735048785636043853436959443142501126585486724633467738812294369786599512453348803102348528726197159247285018370755408068700952630855759496932211991269992219860669557038045957283368588418686040816654870281380766829838700342205904012379589585402806877104707711963695967294537722067921389462148309821189780067449463230613075595471515583028708664508417540377956813950974652683452447556134666875632109469470200103055427165269022404012472523690512018119806776147303921409158588860298915539075669082309098276224284226093028586916404898949979026315218367166105646558441081284830046013622535972644669560528468810477785062107210822035643634799568099260479586526166580087638988541641045863929263190685142781809249135612918528612606468252606859853959396042748710722171559515705576981677196026738534200673646892512635042831984526242333325567780757556031704064352401261786843210115487980163860997175291652837448134770916292751522117041908242153043682432173215780651088784077738298274923741553996844423944577608101787859812570384229320645978364914579021385092963988453085225600275978266559492535432194641682694899391789297500605905822658236651403946698848085923207705016789663351237479265227101834716191867081983736931816790735612941590823660851347486828949930813848815403191917584084564877733107758431836392762061162972052607187354474808262145479026624211627757037409493607415207844405229402125552897940497023343006937871048521302692186650704450159428125899098138684280201040688689480220534776626320262427698473894069408975551091694603695917532043209597669929805703007846051624520273671618101938554624870406941752403178007179288103886250938128376406141169532797695713504270896141615364963142010242154057223954573427753830805976843212734819267870624015405778020058350561531393395642574133559264533184902436488710136884943742038599314153876386962583289914026373142905294007113491894594619506458472636986289819173260876635583393326127041082433350647465280771672302287410632529816894524968793993728631763871880688314577345292094478819920462280416985008740969764347737434074330505286995220557635606976857258517570584654622704931210489183869175872578008087420878675551034408642642676221374013215888312734151920964481438037315139131640890120912756152855157386434341299940771072488096169898565849347667613057390457960347604200480432108833797804632224890924236332091246455261637928456947291493390320745077883523350331534561471791602901647406381583333971225565046252239368215182398918490651815410127046357077548437040152486907953530661399978573018476781945189188689710231954434845683186082553324626697754389384444739260665768476948439426333785836835690884846338392179596348413573950001210426297865558175201771852762671252712643488509024238111093209620140486820194186353023853442097762344969101331436033467163392299248230101720819408706440866203362228934337687313694147602834480741149729528323827714396726030842029163444745004972231857340756357892986048882894462848572632196573206247610826683154389246860312563314409428083180637900996093780124828311627678219829889115200463739301190433221861315866593321116845589237498840186969330888635455534487645733463657819160531048790769351139999475796715611370050372071808028624800704876761919095359417156848093295263916450558173696634247999218607873622195795970103742705682397227424302525222456400853487023278188323614860345028244906775447474311206951441480735000987913485737432515013979662940523011576311825529970099956660359273031616146555624149070533712660570856230532168802001193621103337475291947692241472445883552519679661415420560130961301233240721613540680055305698751432235350535883819108138991032323234405053647182377260527628983396350283189199499487300329359319877607936265827492072278607195232413203565217750717409025485456140922473379495061791399884615411503735444732404445885621143087975665151935229201572575451676563637765460999288497223242025033775740236201981774473332029480815234402055018184545327944344563745821881983971526604515275412825706643640347655827845917449838647066132883868487277690814006791919658172398269982647470209460164541949812987078541548124840601108408191405449036875242810836059603973848368682720561388557770984843509212613761351939002171105434684287263127378089220521800074308998283678298689802350961394430961027763462820484024770638243539692905856090637413672841032502382039450177581493207227629720433817481075770683194257144758828476329577524482814460155066674813016775176627828689196997913610302033826838893435045257309333369607508334849035674971331614437379636610815328970460358135495622674175593661189917842362826084709671617183457954088104563386561572560995773322472665447077109663980879715609917476844828272584961415925631026221473555381361449534304068437575565842786759608753480907570632468810350396989492924942663370333876742439496297035524047871561087270671245671496873216666844357027228841497200790711439364427398312204785850816859536058998727450062322538017054638973279588009509385750092744908839306660183564358310722121396493934242318232235928536580829196650267896039772731747060286335319927762315507686904377936207743717719351522744808890383805662926505276096737871571112195223623416657162868857463170958032342179110921426772192715517290572730772998758017734156815559619832033217349218659443529118991858884758976024234863114857074621827926514055186081030175933026201820093325138493558003371695785251748684576207400224751713935170775344041215388380431212471820434611529331040298978647127069373285418955815659157771097303278494900391892354406925740372184490254372761722424211549932128274309702014757072611780190184302656441286462282163454047663759002516911828836053265270666665749011947694841676449383881815377730348995139741338694502609857154955765433082386565711473514079706715030331309996014948453536392349971572000406338134349672520067419627499986108117835837039840827703418320861888181224148642773121271102899819661667559928338529226977621121774444954631582312702218309667733502499454254498743900874948829701509298935978712123134404542980946580305832855905024537931361845502852007821156426647793707712861873576715559116096354539906232997453353151913953756687344753013796993960896442183682008364977787157546835584646368933886582043366057504808003410449300461311802686781938896528057139330548660788105890668404866398032826087083891760553070624565959853122456789663103013321452013936315057422258103741997572182057075731583355701692713813100596319467023897087033673666547612146893905325271404954605614506820031013254338564934074849395179279525203682807635224136057529764735465563670076077728144921582245382360166280679307197603363202079747229028505671076899590565101265840040274981023018819241188509316494100430620034137929768257471616974918893075970443826291675215591654201841698815478177008207130599794789403060083667499647209456346815504462735833693300357420560376574726701760130885764412884228265867898026325919338340865477140852208547461563442976810939117554099553733253368490901589016886932049791252635845784115524559064049465858889554823463257890742074249024557950307441263388850333475110552457816118333081696774721950567015009850618876696706928305154761496712894767964402814578017797399532912040225448965245789588572628840158077005642405575402488053988287937695430907974753188869498686925414005715846684249066393116355718393888780208587415653576868788030264787978088160613240821577144442661969488557484175118450109798511889186260165206646341888821054923933863333859137245244101817908373029336247492993690203966769271831822247513117480874047788683208296143343529328675015413903036463606239305738357777402431751991510782432583771524784696397777368495063572878758758686842521540143198067833509957234808292452142127495646570930406376243179067152052525565161594461105169957342191004470451296458685605914171270837953748077311620212081031808550609701751127677198602427180464603126925434391083564413380430655871073997144863518834222196482407377782840415235382876561642809026427091575789704732462283788877748662126741605587306286536991119087509737301788169697593628075747991972521810941096610153711747519138974935139892574333392553020747637527438308002832681579945208201787211665197963545298828713059626611494448680988061615225929820705601526588854639832298926078214861258384566799553704965774761370773291251096055761986950139790899698324323808839500635523051562166400696471578732930840522218016126626301505147471270568832093660697542618946178181725460350277660515007813160884153382318418427595051497288821332411727764930003941271118175558228152071579414231991379248035699983186059725418881151824912502118442696946351656622721392744652347656025035336138487757293065934373420740395546725671865221294497918081695798559313760318642832590969854916604035265881184050159236325787260088502806947648851693762738701535842392851078925292532565519995471767246607731803965437516553625985051290951645848375250009493330085056586046108314140632223254521155582520765344041925099980629840662872203512880939502191574568436266129914166470869628785159589763213618970299963864071009011024151149081954180593127961943961608675365087864771585959915482466020650547802067463603628954900114207091319182747967488141922955821818081136040950029420324960008711509065807342022904059872964523504332140452612981728308589758266647560970070912786911851856115665785893936577913201281409423496386304983186908244135939252650041821025270882435193241127561788435074368919620139819693572570673014253101669819230939254650797564704480130129302884900966550425771447471564298544214884368126866847764043584875200974708936091630321911669863138130560554832686987662333422311270668260487567905393087655830482619532002658427358386304507926840165835506199589217992328858803581649444977549528372071508652255887454344708196374305727011526728992113150447282446706988895977654181126424128376217312723150914826318005122350557640022671475246967798058990845664669741950012059819879222420506026243588376057887627779088900993634666909259088574620305060776251482549875721605319869533408213713668857502093748127310400571939797479487783848582128472248418152806838597407620512139197537432137050626075499182950965009008233618710430319598823716974906381998629779542291352975934185871840650787570658329107157126215320300711401116852750716711930554357268638684458327708520784722779012894554439554898176215548373026199728858054242773205538448205129155602087393872422786480062912428309469731316532873245809931103582621869849883214788682867042780406994244685959964549578041247213128289000306462309254520411278807544334601300430264101639918240861890177055370338022200516201648916765740117776379390995545628715775804676409787831229180424453460135235173923607190953700717130239872298424306329845096313156618912154287616986085596561872968314344075492973475524619052944995226902265739027162817381781643615949476539389115664368756356156873248844493690924708723353359874354134253448408688339599142776789468312215278778634472956507740590874252754288267135706410299182191774168066628945498853918018110125883714688851822424452331627139964702695953192216310901686677627051930708857525126152227255886527949511562377475252921136467293288720464576809362858579777172900851701694123828380663153937626430589150293435773969766112667143716926070425546545409900426267759509958379511497063379330723778405275080560293972567538117225857331028885316860900538221097204890104650179999530786341539598295277876654363023888032784358473307232990523504947795164332733769288205024317929369169606854155227672643525651309720023150181129584241596735833444326906385128668090319025836548612337933214489744852007811726655151963803632262105934197483823427557656711534496256857961444707165993280936922915475586540404122890934390581919425388481870642534554188618257230439938319200557670214656522196191281141274277460173305067617691171960773231682816278823259998599132491146456119341843584406900738944325065982216541926835536987142395295778300680096123891222886200870685078422544259861291086162136577497795407441247122573125072977985496148656594353724642184474554762359065387725987025897530387217692941358975257814874771138634801938367153397331622563303726944094012594550383700662834779445679355329435434553191716408086510519283527888752938587592403245509299441361892826817198129850670687027558789930453946229610995804026843939843179348838955354262766484089944093342636402227359506867838566731425473255091381314451712309625138003775105569532155715927106915705143088968415251059537503416950646635354759240546509429552720565165768303743800630116214760527552325213012587838771319237076232543059976286583085501974737296316888947049687036474636988547499966048313298112423726752185937303079711997790829562455271313963248368851167790587627988239368650090006752630257201353858407877452854426047674357071527960770388262535011276525814004373912632108252462716322510788858599981814490169719009194047280445108185609178101630294160888919950882174080570074539141496395888947235373770509763363010951396712771132273020565391950289494489259702212204437239592147673460302439999461449551431388323855103390933729875276264518883001430486539425650754949211510779511685965870085160364848363930304724256046672488667374141771519401775958508240635583510179235331441125442345809713496539189139222157983106793068209610120270019429185863031794725880624565894474313891485231573197122481922170400389909059438012544126268303219257831257187969845826051743610271433320849889873589943958102922439915884450071695718716450512900529432268966341644321246444997754404861833774487428426755001011993992832174184068538014703854545353341344150330784298450213881606121132736165316268478599585350179432543093514587859683477986661627724456729525547864613001322346273012754419770129251280918501337866322502300149793521092244040035261334064619471612735468103089078322105041861028165521183522432671758150234331262931869907723537414953782429837927562951539008921738648946487554896510115122538141613536346972860487356184274353640409945404796694045451763508228799099420367856222742199369293638190852080865691706446363117400336142652302061807773514768180246475240235552454714354230707696330493381957278555841407916447733980406688251038884620233428228159733540720440595126728543299170783471126509900927872690402464846005682658820133453399230810578000875975479707455605814213098941810694146759540141687623712227369347054953847422216189226215243796749514122359298193267079044690829272036781897973987618105921021526395307318218976867226166608858982147831927394994479872167712922040578329602968651126069599027096163843420530117268506948627804447797275244153183652413987453711342585759601073269748610764716818725660344363802173172650182256111007692265281409131757606054341346302625242934068031606605289918169485044578439456406193145535286429374645328691960845585697487453307687064120340905183405629058751850639038324568468155250068978909702308329107280214003098997722682439128124324418882104760609034332636258829196494661292476728030045324500245247792928704059107814472607714308332294401188363870583767663906962075804574601506271973166734548240424847919302478629209328198604054275245495351933845989746826947653806106975763041706844754023403073183031222389386029201431767551369500994058726946556581468756199943834010491322843321907926917910742497452381376176458165048829176154726255162231538125368429407658499534171816202471130752097423115929640886526951665174466602885573135220580671830836215683446628500399948826099287174429449860788760689580777837791786209703374002609810003664984103678664109185605222408354223251209018132107640481308780233261527478749615551571442121754441690358710047202052198087765290784667182631931454574023427562990496435790187452501930935625978060202579193103874934688274251533487070879454878688086654094563385526638416599597567692737174573485826435463288908605851318446714047587577219366835649321363539721354411492997868140541495887848899073300972424387630548349295318567546084914029557314987324902264218235502890663088923790973561782812741437603320922756771314153657563549183905513643415101075982762229996213338869795013428584604577083999836026284042293064130874643448107204868234442333224840851675003537744139623587648660098284104769553723664038893727150764514863900417825920913432151504861964306997714941071367162460324819689070412651213643559742651629600042268787987274945435911363588576481872348935149053314665326096873677480749775753529478270864298984802740222926465337191615177867752608989934186341398429405398073461530748149762124927827334483831030095485310427637953218644912637073772171803236098835222912878899718705153001070448204455287999553202808750451258440279250651786772311907834187023276934490723751869283259504919646933601838449493471135522919071786891934164900865610456185296744579860939782400455786633404799348656135044439488315586885625328881513937332754338979679242417346938140747355890374597528311927643485239326197791582373421697260574300808286724865260678078762887366982248023118452796853549174959528002710801769952422806176197844295956421528538029970425254069668332421207789107946401765152980069283743589525345084055768792880418187498054837611028906286373202371550635505670561561804318396699028291404081282579721084976573006160815656165220689031731478989636965230829794591419699903327767913453157975181806973081522125231584093087471359964771734171689431280447077261293473344337172218529646744578987182479798616926688456325654894491093712576088332854782817325079943385920005131405853060427804061041424465353313974441939645835365744282090408720680882118035049422076129018707508272819780508412504277953266911173704161889931673240999446360311341526309838117537433371015361272588349012024537772066236566771127911093049224716082316276139222589029515027862515215727617521377854268411310387980912049204679961778019609120525603897666282557036209986465853812148651652776404086846683689718378185021336162613761018372209105425750833848059660005995370467314526905577395918366367605166636551053718538853408349015822288369154855867382988920221862722190191087769311565866703641124047994561508536291977909272523618237855888369790896403926508700450358170983484317956231695224262369680733074857353049779563835537867231462624713353434596942806125440117966537624866034011937246525490264805562488185888613295233758455022039117699964941007745286938723079271516472641498844538921033521794919783368600093365326847152857056064970971401978364055875822886121810388919076251305358517142200573988729479607671719489736975396675523588953862988277842595364954357796159866393313268309972854935082352705866796148306476318523087429703504178625150324576998591896830888665698795420544513744040562913884737086186209133796651352190278471786872943702120918331640097059457070879136699894974470083932144569092468468702684574961439080017385683542053676832543498812109175575774505881139527913843796343766132540034227548251619741381091508963764402187114549668883947865097483735345989918423962556992955448064601105498999431010058858839676632415446949370327204822437726320084303879009815752534509200628561181125368297817358114523459446968527826636844954874496193865927678585023287434521265830509554436822270334978860366657580696177996644118224998187210563188137997564927760284440007162008417658849282106782478765362581074886202313200492260241500528795680246333288463578440307462749443830536194031130626932813565067039162285233166885804809492744109432333179674261695655054076628511688163969349667834528422139945039910074153862063522982362383171716508778253693596691669382109045874122038487067820215419490668740995153619926437998213682085985504506887040081748977608274390096364032664535347562396011648189816573142225417479184152261405231037984016981525202618579940891939005251081494506088314830262043620587617172859107819689259078827413424610531119052397173799554045137035372142357763506106458113485883590851403225293364127169639752331294570598668426637002274866603863664353973670639787147244048380999165149110626498703968363440107753798838327632918660337243793388491621060362790579474037585116071616457720966939633612431485627254687968229495944023463876701970159940864062691355595032223238024643897821179136780278231226662384357630109393807981288459729258042857015441521586154370338321539719932556757491256588389717074912371847995077016057063382100242584820517272559887909869507010574562677648201335323790479538273181889771344498183004621990218915832211486531581846731365256313214106731196208916368653933422920786552560953360072306071931412787421835444504154874083828392296557845826414696719921371604425960875873205209842171905515661488906929373490393553805940463610756554718234819909495549514731566255231455808743859034497404424841766721725232580435781696241902138706403379104229399032460422761119326917705708162945700672637110363453368156091017236347462115143877212624476947464704810344253744504524993922130662479104707819200609387623988292343242548057334019171774265473764445888283147934075252113988642467418806519892709119411558205275672132440755695112635983626274561706485334205171789370364707494241928922249455063925983819659939685187241389451942617442622054788109471559591789007706685721826324143686662102564111290798937889452239083603860800631711575171740377246240073278182449212625691583838056953995370162883877129904727383624630857585871664041795093169373937113597188680303823241053805782718281397469347705166236240645536351383303624943118062881105444059575686564679590095719771481938654306940466569217495610677979626948944097635538822539221128724621693368432543001939150873994709139243469843317385324903119040458491294317980393117895234323474265405048012566098015760652203767747097390609539196453031742995088382072307058931022184180676808603991940645597608121782736003979599777873210606877183995124172267624216924552052710384289094609676672276997229672975339797502616440105841398622860734111026609199756697174328976302755252341414147349240125440979134757068505621895092669707692745723332485793285628173018824677038885723407507900404611842296849635139281254117961375363375264968633811712846147233001187068734813381005539101809178886114346288308651614917609983481683261532906348385806547440974901063466246164908813494918732843946349874149939536025247931055762665147032954327745105526306655270709954388248068320554953999950416460157184978028097510933797742040963658692262702333746653198966319276046149587539922817277420057749818175749081881206990852186828614871662331750019306080962480529390529635112604364129266621853106964941025445820638647355517540052301781925130147814120331904531031473921427333663716943479733826265052129965687999972714045641345840677305554900096445266870550186878118813943406870399752077221769719711940369235983977526905615866413295337854513448034321311815922609000979914123000875897318380167846727210908859797126246743313310083688668185711507137543330239547587993708029506231116628319545180616104688654500096769119757989284782093155459756677609676264004865349788601558727746523334621606464722703410081499908317494438492307610675657901125991058616192280551947334436441432664493423139711251580005980735668435931836643733616856543776914308695817548543730626290966593133803341396207266732793853231485689227149525719867623168414341527087398249666991800223089760818778693030118623252321775680721543276216053031364841860065672161575985144042616327495095120374605710179857762740975257162340207147310198735797564004112349977461710621069653993092255804345440690696467821473570056233601155479266826293492343553982519771232963462009147180236440879360691695294429069439068255054824329532352259289997329016901959720724552923708072520023273564243265544354252849834917323848146173480806571394735619554891608342551156593714162099354377509726263492685039703007833615622468916705031675102191374362759168141539679772330147759126961318229413976259337174187743883242240657531247388328822307928630120939678044153028764495840885259378893767607012424514667962627865705386975504534980176051685588151700675013141015855471570757141844967973708928524199926576271053866002158048063538341507434824868615014659472379428292393025040128823687364041448892489745987425853142658196970265666986868983296462882706983274519479517946029940873544406216049350855887851173153929330261046293593216734825454223288351201932262183918631710191741481672862057552164529620587900860676073397749961923591756919973953513993452019280874617778202520526571314036823499461639946903688939368171438524987795968971488559949699532757644481090986342633662167411700000281480038780829723199866082827023574179567882595958405002523903144982713941550548629871686483220269646132743426822705242574128058047098580121019035337953755118716345175277357365710791898491228976110294005048344717740446999106314997997083529759782287801672783828901838177704363224047863044502692581575668155562584506483550072059905450539412533487243121694051170690610513392710211265045757133187002516144624365629961848562013617468190612642302114158560907723812533133799751559139423015236534939746867427239545274177461423362726587669538257606841438385585973889974742651937982763657509218305165095662814247856826419824673276086828441790258851179555271652730357091235022927102121145956998390957133662085239658013248096502067626591146615511825516916050222465492441480471547326551921739052670313546437320344737836601866709392984405971466115445088953560547880442446137253761847265316102864757975826219422173363155812650205917183415895907272583408428339588875667529480141751006776037190942284324852200427942497010467423011573516876738191484072951897024328282548402711207003465557661540920939292184059088675585133707320098610900316900531799637431537634651492176207464102461686244008390695416289079762888813711684235635520347276510603052148071141290459502094166604501554035059977271419913559130100893363881723296145474432663439014966617773774961620229762862551168749316908273468139345602315197785467650954916008013929993772805674017223957287737922340211001585386332476224307317025779151429690532683963941685263860539141098794407694211358006671755863847339589988983860673231242176917733167526263851914698281333660316816186329741300102297343161724003288988248627543656143514834666733608244724882779982095423641953068867298363429117205293623716290092969001813755875523992708228796707222312617987957119491515573525325876765479020051324437671829138477980274657233098123863001125196915720565881584304160137066471206780875505311698141823225492653486959993980898040958099924362537199883135028282295853734746453772150051869734142572190835568191069976815396087021431924458097499440356235061126475549201654143191934851483763782853156454249584542774792669560594152751397966013921297736217028630658893445682159023966867742375452591572197085019527304007345434971810268527256939326472344858265437586331465425790385532321827644958163415240190985452160417573927115329500774156608287961200410006742659062609600461932250302528891670898225641357521535378816734493506046406610635162186842575304305546899114475449838886152339455470867581709094481554508057424272444532316424888210483186977110088076683854809705680222939238481854105000747702144981406042387494281038143399085238869323528693214447521666748550220337033708891833193977405523104276561548022550550434772099063162549560688253657659178053440696122483490434076422447288593078256586063167375853528163415068885078217854396337622724582537368756517439887318187327664524028546343541577395400930865100332200266194206220756902977818468146391940757716187509386734313567934407531904748854697803988702290610353198428144422774020819681613544583504693789526090442129580922019837256116932211978683175299142592197072221143474625742344513197266495230845103190794845609984131748643461512580674104791644276763610675279379053692168756364379005943214368650179571713642796548621821132023316158783348766591126904865307669222258409853210950459048842564149609369101383603974630550054145698420865646035842502615078387938071727614321558875996669503414338003028978585528223954338400041998486829402918756304892707591498177575135036789953806119421275610240331528148929265080562586509865832230681880661543631434902567397873808346336276663479753801671000485112197495786947630285015394983631674572780320370832918067374779725747890591560522040391506486721392166925677336483120369376919248677450873762646959352866451297883801276978262377341113461739559297058143943622887122484873982727046588498690904083425041847598277247522550999677812075133418121662397100613921822295389075328143956548564981775518882004093848109099615967179760511641701352355479207943803007274040251441497608865477858415663783853447858637699847128344952203458849550107963864777306692423515556207265815313483897207024630969797053831437009982309960289219077021735885029134893024927511121756159549788216296380788595137877945018079160629404297025003208209251078077529865659907076042445282239276362187773593661332119083511474273515351768019108766280861145455108205181278244228308117662741712398561491927020349296949630721802369084446336592490060832553875841931357151692910758092933265000861784754283348553674131137398084663018005046274806987267529320192352732422370447074139516909284092652703506088196675508112503902295197476024416191189811406873070864949735977778418659876363838804340248002614580612139164874242053700988186928961080461166761932095952752113138432854205750994861155631595794381806601376491475795895394677116560432315220219371046000616714369153673207208295312167710061144371683075030508211714033948989442242955295733125485249878342776150019230758366648672395688962502302738632376872381396523974736986887343355751732931231710632314151182747307340309343741954547690419286402651017122882520802771433717244309698206681001805975426905509242743567758704879634051348286607494052728149705928584989513108979543652805441065125116814493405873186478726691805712583245583631269664502531178422518226891897427599309397933155390742604446212112776162933843517439744504937652481395172265905784867566488993047054875055067133494567823055889225999971761641874710537047552796052740654268349883031632470388386428691226071313504412402584015327969872249501259850143982323851869702035557952484199980268811734500482229308204640197217669052446756922543616604376629751623203822893190749891997197324743793743475300865281901328110478187054815959647185282246302421296559177904118458328811850687720128495122110418854941223386579103824253114976851973714309104876427334008266273756846122729961773998475562149458791400563866538581754556078785684449223438500925835985541404967808588109854328830695800829478435324686759656716724726515729726096139937997773288522306539372770486919703904501471564059666435665259481233532695135491322464136252977356308898511934272228897778063524421976353905389774040158512909684355662852665461242274140342663011726567003810961704784671352102324485719294484798654016042617003587645809457752414733944402546161279084392924791399698790125325149207479971478122637721115032223223622967785391094354692336804454096346536566501745920974455163423706906178040756739460160621848063731120047641308217272703126513290037820862226080008604058504843121540962202932692318245828867181503320348475433624276125442479929018782734421023232538180249396049531310573613137993018523830112969437071298033623300814831241892377012571006133163901108757699439899720348766717176404011892799767668130877932781725349426006918513578779181800865865193788407280978116119366555371678833962183683983648649572011616564815168469914972425374232655660273802668080281572180505867967122090471926859503193147382169872199518941193731273110504323670878985161294249057031146431208704597390947117093256891892051275684121542282137274638280442963784745700416040463518269785259902580725895959163999139663691966575450275871934135351657439415117082063991610743609675125427585260427536135054384036532049288339712923278512573090063953812014764565485198805260533228750879292542931513269302577470038708270526663678392847407627960562529989735511529188187815989723663084337547411665737870103772392217767343027881299062259025741178012846214121588502172980413900081336992949593844516656729113736825533808572768254563719901414282611664114926489577711180382751383109791371822722896368274219077061184750362634310326686770884957396301501238493129473567126688371665877191439091513881163763571391481517408388153939688966223784120597357907301318123195450176200272014836422522533363821391469277545846974851860420506596929853561564224716570709324886364052319944556790631894168586739870505522607574333841938218363232454163673337003384330398599719157525224314032739343528014614928950770797174387810728447483781652750327272359804873101124224377956905245714647908207528417753775532113913104400799387072837119328790134856518385078150136738257225559095737580700476000534263448192469378871670744476138972144667377743143958217905741356045666591035332837742868599369908290362372503174957795679073509911035636617135071042863400317983309396934771975849654146605524658272088506720325660384929705051234308716028954957894307056045389704126810703095914767694315479244857319761794147144071911546076857925461100206330883396170394605921696621667169946926901158525257082371943997123239759631534728627014076610668660744790323851187558367241363053716045882778202901732037777110083707012112685184512107640814493479312958790488474640398885973627891919380714102282260021396968756654353930297105002294330364219421906328696297283317065896938842766798429970446368514014250037982880599605735719845217448124108708018691389941854473300413809270697555051785857825833816225278812767530786536301307636606611093487227874960193466201597307873656501856986621077259237237176561995703099902179587786849740359950543026482695941762839777937527204124549839297374489493809103272551291940144546998066797778724617971932158758678233941824290096724925890803242761453336711495411080896914377286958633546730451089278291477089618193254848897746694936932133495002165043982988646757717112869635277862377683136176395856525091595654970040688965403764253205221498802272209184308751385503372443946243429092347803901969654156617571278124973219714144926858933455884297442708201744397281938651618305317786497153635212375005986226956003738468723404593535246583636842118988889068130355048837611376992964073158741732974274751999979356822475987910715819844580701320905014509285254749523202201720624834083928129970657441339030879892508515585194045696188939170881129584923803920627308861940251660600615865919627167447851724529272624940485574671844330301472682688363490753803267249100647072828742179699893056032363205479148531538652818687795968332732557444083429558010207276321238992173175530973527214163626102028299159359780405609807915097193447944769520524266801457140257461117892787562444562364349108813138421327834332072779657790474421911662109407245198096230751942127341653049722566420095224953030278780434527276283938959779805103436517426411341788113584351126775884597227046599946395677735687232643273341513623373816164028888986655043325250160072892295067869031246654654001593678527186360304446747500621746490412117044627963340679187927631063409615456329402890668912530779986183386991817003759023880988963035585946837800327797444187710214628712545768226069118117385320242740163094531203217206163922483225947221458224829151234519784068560551800400590846550495624892003579550211284560280932073895690592253925188612835433062224654677186354859752848866875740727128480919248605920396618437818133063957633532440008836450182145629151616988907011781967337663189142765182470238356652635470009560235910448295379603943979039609316691970694188907840005430150526825785170828458125121470820025894232351753156064212319806157222077864365165371188980940639582317187239198521827620712112797446735675696606853932235546639586763374120559753815681522251283534864886949248209090594072592854188870426731791568680280404443303426078491102667900186380382718267813030286946683952503569501073432887985185801399445141542124987928111404234357358743610148506056032932597150417606695373004538495250589657777917583816052345413824256492954541134729511926096285654449372796050292391602578919894362360352273817830932073637782100988884229967648557080549339280808399310978987115629221905377260244622016804984355228075638798404850787175644842835260404114874317935547827013574576568964690199591092521151011262932480864760326820017870692353310363251464312418966296142926146791613216391733480711108898166226360769606430786450042611906256319127421601785759689341174535160901134736532165326638654942916198683467118787138914637448274245664798098385413621122279153929158199938901870667885105662811745006990860231363269547442942503862050218133294481206056522299847906559371185556242131735468228855746126527968613365794885065356984231313700665467542460380761996124733609245824612075184692056258405872874241372257539035993561806858588402233770638822819226399586784733131549022900508816255253189375177228883979843736912059641663580102956968327370227878898370823746316587677260049839707894354770943827816858210380379664444718953007577844511410374690764079043806539127929671879061674750472524676466515366455069282669511430857035061030661866698615374418473631715569238481742204775547714325194399950097875139840752964612455103112865527827959150961704556652226208362435029691594735462129285661797502595358116831277316714860400237159804629638376205935295938087052249084914409576132316758821397930578614922644113741027476059024676472182763907603567939188715205091001071507998575603429161201868754094560806958094365697852868403063875738117203563089447924208986706283881802910721413971165925883324087137102410805844135463957594165589375254007498920831144252843927600642677442827691839698760080247108557821004509974310139301740660734196849657143244253538135873486656765048047644021174758628942096068123538808896040446187745490215249493651715703967871002847483250598611820088156383830862941928275812148311269904683656866245999085131322112572293367194304885346306581883312794835011027717927836947376727286630711265328912809310083744152475510997961192919099684270183922327475247850346751437615542942458479680092391624331932715362427167149822308838191802940182893732448548959267380244509029072898766755475848562402094473807429437674509129240640277764082078438494733561098162498419427704528259871860615243689163764217381302375108834366925364598449256545946478500048238303300702174805099594372034363411819446241968651457240006937286925082137174516266516559724897320058151009047720314732393682211229633967966946231015258760293628607346080895627499398285832081218244138531819510703601933274314420486234355262979659430307380345583572504122546952242680467735433767547658595057235210261757564463072360515835598630594031421021626912793756383977533668815939288770757005809195568947228789162421506642273182806304233451481677077868094529990799717001828244968085748193024996849492961956041987257287304936125846942779542532491308132659208719264839856472565001422921938411922593993915621071312399386717465853013278258380829581324586294171368684013370486284678508191508931318502837550077467420704282612037092594747571787854106736340500965833719567571465031576400237725131352307612057708043042968196733485905120984465541821841985179561926278155260795582056586379196474316649032683640358611347347331400222840960185736455963286678632093871239483175577750361527443941126421767332674633472601943782702707052088176596885232761722128097524458370105921838655369178817678820316019617507726754341307572884161631932430654621494139743145601175311342053990388213188162845507875707110775006344078937497035294749162449627987512214063205740300117929599618611355617681724035620626429117897970038665710931463044949386648925848401184007353706642957551779392113723157334874681746795224054003991151990441406133979236060351839161681150075023964460920584775792692431754654120134123581054798029952835850163065509016904685211547966971464664483050921431310770898659432292992871539242174108674733694903978145212387660652779490384002629613949065700198170658535689110642911320373205067744914189598301297097759481790214891867829153459624758723880283567439609206325058691471609016251372090118548381800283204548040400546396011406759936931352081129619988199762320352378797048596629755122777201751084108413076565187826119451923255499466960107466687346254474509973798200049819671543643083301384397647096087291414722681977056196101744993679641474414936852517624080056379172404346525558491939095964578287131326830050143244095930434773804917959917704430813340743230621394717590566280937810604657707191301358542568163475759844008301561750726898731165313725865171399588301954914262481779116714220115799951661958992094524831632830963231758188928179430558170179775392074053958052266995504128818989755981390313669514982598398604842418439355119596806942526339600305215774062885425980021981248153089049906435121952632771357669424418287267355488216493456766339929221361416406246070539475958380080897166395142995302803590500143078251445083928228334521216648346491853096592500987625739418125690241842937135590467266842781760730769999256936271773914601270957910082527577733204826168691609501457620600372439568935006723599586431657200372670785356529645357710984416209655155486099301259257195513961352679811439659414254271426298263557694197299547355967937099076179198549157974025220457657748249263062061985791416761447081689005141549080743315718288973862543318016778359298626514743538052721844999187890970858550134129244888561558675024158010973698637386717446087289809722798863702108851363199373566733410606237211262632642376254043212327472905781794945619367076612809077959209927819110986571960031740060489102303323081930136462769330512300095989633041865547811750651286957833064109380356985758814270745844968043516807475324873917620168711949517419793710885397348308811188964416283550914673261811549269017282279152544157784418951693519469005780867310446693426799073185134693450188519354411782035950271049431303635067146893555935870587413881571187276400792029636740072295186860975850029849809226367688189873009894138645994837366546001800427047578118554225006971837395369122354816882836157893450043198616805608112112820909301937357742813199678138227089913547439805600130420678993578173505015982198348710994858293169989751262479370434639614967368630043086785211094513614228586894259014942423221423723587234934678914177644621333160124377291316806288153757880241973437474049175323333988126900394280601650345828416142831465213532226298527946840201746347996540680524911284272981369645735218680835929764923982885367085208392837341035931541425838392502519237666295566656750645716102162633982449299000969819317980119182047887356626100874438838535498724949115765315826117473084694991460323685089111469966642706660716806380784160883221936852680757937772215626437618772530073025404648664510205439510622217415393120423425762711033072205409806444379660071750375491543009677332911357440270372181051279586762466207192354463611463589555540034149940062969216029583543766634504258579869824597658667216185243981236164194264373784989645574376648605569376514928843689765802405247549582746076405195057664494596712737287029480729157348053349972919773548849232044668520535192040241976374234366154947592512620591849802314698818215798815794501742677355740271742686056231613310659072495024952828237913491287943679525061865347792069505714403829150612271894185581619538660183872656202662031334690702959479541320630144727750396051636467104268461018532685813148128443370535697265541815636445776078365196909318611258102720403240555029033302257165762437667050331033193921038545753908177773308968549707207673718027144560981508024543683321608376966668431914253802117629503355502507700027320534948312352463723715279157222464089336628600205670884440758126725881928133306600078265900942606456064366531924967413440455521676878131954172791563556943240001400249125199620194547871559051332312937580508408880861515502290202588823001861859682051196746504706632477194176275862680613457240079565827657165597228016575540477050122456702744539809125511824380721636628051677185626830933034597744147371732531935385809493147214720827420679511952328396451658239881780012992841705585707087448882840862026608930265643390188603211863451911610734316606179747575029732505439172308564373969086203918380839524547583289485170898990777585985468924681274056291127955642342918099107107876723943984543710299476997494228410896955652647596923054952344683960431546433557338839464924891762322706227391290437155932639210513946800373918671513330512944009394002767433198068986147996845005075895639711725225969256683689703052122893216547010227534293090155270724018815817579263812053727791160444561342879572109469869060997724015093103616441267106225925917540243435804345438376168147839078717180517072106970236790598242687070363356539153729333217597691795596855783543827299875198157180216503165715401252714196486836056163908140861825400456953001785534955287175962441629125253151440179190062341055273827150583352351610069027134358303075377421194229976552085760148892954703615244193350041840367993659081147595277277980414724178692359975945203820499148871638176629300901234835303811180803812075113532579899437930568985596588239432068806171666053894815189056537608138176658336348794763387777267746576895472601162185734318552998312624760228724082134821363338549398549250703102196591231810856225742055706273766561603144969021577185729554964075671245012648742430442393909803716517663733573899046069853079173850782775756286570731781311577577219048987945999824318397779419497958432134512534513544277100334247521908792946685744512361937186704377992495213706864574753071275594075727672275456903319071369690093816968678036531030765302955046974823485238307717198091960600529360500283825607148831329137815403577259599888816675764641518876108149086856341391825679991317220069048319358982960247268342784883562346160458183858532339216884638444170013281669979515091175868588623161839672171115062197888906133015410463688278919484251545029815050112546333198068658847117271552455512405071366556066939900216571430415782965853639013507644870815578630467388666732613340446417829277188490268500417457197623510697542971653169884044768968570969481985522128224710333865511856745465037761381379783507049244168551890756161285151318371885783013022773414644036107464510043962105542085045581565013345299041501441967694589721368769900499028869768417889322809503430082763403578118672853313169145744907914913714240145082520101509649086476843529201771433180083731476339848837413934122697854074791017382123212572190974311761642278835052442424160373607855884661234930991804324500858293039489883887290804687379601922476516297632385220429906648339908168368484638401848765614012402082896123653837571558121981799210883937990363211198238563804338352546213716815189438546517032180554200746997756007709466640374176192240130875250698178586190811772275049927360363951367782801690110027162606096722904006630887286583328523817779140254000515125473926749811890082664389867466624746038245338988842555132393828002566685102096836405927555905500765031313361210889778555737503969297793028602346066328959639102101242184870580653273067397768847215056192977202676194073454121839878645927721583247582982623130782113004571477497254685258873926405683517231287030530386494802038332688218137935501730261698795183290461274663275437798290627486962270286329468253552764383678478474691580728701857083677716078886989605342584243163962837066598437598180556074529342924401935605409508881106379771630358236616233099470301350250637937288953985498792836961893853884344589018721874271837070181964719960609580459910244551670439278128020534393458143906314832854340140105550995733791083850766874460995913043489776009406903610348204075727335975600466386137331504194785662990224621452331948802633018392106661106920094170245204194179985503538948229945349326679879106469705639722644935646488728373020196899573244709696219803227086871095380107273649946453803226568014816265797402086680410255974781675213703215575504488180306052032541199117678687272126566110899071921168607759746835317896728993012824888288554128728380081488233336781297649611321951471126182333887671569651825692010651087562308560787132219020991923118248776749140047074621460444435304516517259455338826818891872369025202559307905252427131334487966091706941641735625889618134937657366499299645478660517853989435636583781733365542161506959956028380779080000352005723190863281642029320527357233237969555415326619459808132908009460989832480680876936109198414432978080879643157544569799411288252156014988653912375661255999421151299948504343989144642187047834139103843928496129286679071889846624641306394266823538044596984083395041895295275573622456310339337760093239425720587236989337328073876029461510620481771829092631739445694425195277036980188608676009292059291821405427183725458607249154978185098947032332288001756138764138662371191664568654245626802654493525921201693368788671840439938462577648005463510340127046799663209989514354136005980402756832710214677134389996251055234769796165178829399380890324799433325753814381589313054656527075551403612973822414556917948271097148490684683707369602614209757060013547508211922940824755142492741754328878117816546114124791383316835191127616302106602707338685545725225876340390092247254214760373182371534511568484519650640304151922304518737684627281664208006015635804361307157755342861461312529652820145428939033329416169095434353247161379375705135173561602744116881012127019541022353073099682476581410613332564150702737101688396154645501821569558967830983244290534862188605318037998444365987249129364747624950546782797317145335906907665255840043534132567506960352708142828278025405214686613384261104788357609238222066419126990605364254108579373453486510615205219262038451249082222345044875495279825946724926369778987591868348919394316791971147671698693019283021814215058038442622250739007792755266664551412401097238023301068518748929949713125829538343047934530814169639639100031647701032731473862847237073379977167812737154254079233787793428293602820709629351145582455808985359654716419281663316821343614785578622079435372824672965167363460086659099290650081149214797016037506615802348415605459471845333257614274444803968185220664530444392896405670185563978256437481029156734118295477318685797249543959104396943432950227887831867276294534150006804997870225838544980598940251363086045575810156181815600234352940911175864141724447753260792823558556407867655199085245516787030446330530187789658870680571790666967697540753116857279129389902893338464972492702090290470395021592714414020995843179594532341058064354391794882743264384088348886965990739497370024730595891080714205257118050279280167354453132231310754730730083130215047782431747110562302309830506176150463777406397709639894582759541454175603488714889000628371693148989412896870600295495215084366493604437481307994268367690611879278372025086897419230398236995068427983874566799237244360906060850443340225807702501093666575334026242188816231799638166128810299686050802864021758540470443580446082488184687974308240546360701846708700840436486486059905468024844373737373381224449061338256946898461185327172590358601893344113294277801939108125396589381339654580491578728364662442801540310869475347697337563199714253212105769887938138595217958570207211121687428032745968404612181248039479325986634316890739861916316065304930766762038020632572185444990977715173658520818275730258445163725369819836567546489069225312648906056770312149199513346850406028132550511770842362573803520104381086037660429048376906653906215373740265797159037155915291307651400041595295402029452827896589251088711884020861237009207105931340016927584570895376148114353861640463524276649260199231572418243795178876852299675762727781833392600684089105864376413618866737519275140353037508368320861430749041665651808805435446716263897093884999414550493273697752912180341090897013235239778472131667256914857021087689240676263853092476075766387990574935640510839510563902108389273377516047800689661213253424297016678582852581514519599749382238795404034502681538426419242139157623476724467207773352245770552940239163896974627372211921534794431051671802335072451128912946557498047874945155552092137772905518599643545139051399004404284007011728189421485876043491862111772858213057738136197782541351490302506964711599737459083910508640817279042133607156155077338857687926546020054143329855175626619652330647497657896141355563179127571250410454692788414266110117035404609044861012763080107033112053005112590914364937797986577366092166710300099538517233956164645995114546237964304313388047759238315565582171134967000346045585322045740454311727412947809797433313713493922495006982649425348312156960192494706175918347442972453369582570761145653117021197364512011104138987644673611423783468526606453298643957635162618816158763507372112773380772219606392184315086613168060876181836914162710947329830088392785248836028931552542397957679948265510570305642134533669251126549652532253680990547659932081171050466109794754075978463497470834121553183439165257716166357645847828459907342041958290888522620584350652167625381091202579508930773123223709570429026946950284262766664105119484907113449755189803568907191233503775991864038282349954923187627709254456225115890903862206936961775268811814740266353198991808114936310379878836102441704113516765409591739725520838478191231055874169788236400507844439020116854158804575219923783052608036461160950339271847972802323083863234562180585433795057972113341570004388309673654438891526621130831346822832064777536256356738059460678532330337431933739652684910086025862868888094623760441287269568913527548463546381062456228061682553873783340000423854687978459008485219970409113633983766929178303528102834053976984693280956786843248210119002891772111023863324467115615618482485823681197203896353042709770966854757907441123004166408080128937157851100298384281322967166532216556980045110550102604942136841183181175770443435622910241152036653388985536296434435451977818761754403984708681471541678137794471324257460552654150811655749287207355085445896600698766066237593372341632597606510172673781704037265542522613117416461082655373807263793134995789678782389506947677064725384682568402131621400520944365663887363615887312426843555406125233486151970531835915323574356976192406568763884959832894205154127358898284546528619303749546904268980366445377127846936155993564218553241359749179758181999525064609914694730249001464698533968995925631468932656724460364070269195357318335036710587837403646127240129175670133513805015172602330698990761310496668473755591243289534702556786518611089761205328849442046870209375804062097419066973211796083838978551587305547971828773153860151222928225486309946374557707599491048573418104574554201415860742602829375708318051628219964374206435663233606546717437515238731733970178470126187139338075012467900096904854039767336186316433390584066376962241766771755588975467974020118872950307447469431861554064354428191061231056354506905763730536778159073674697309107736881020558115850843021306164504176660320096516834160332579682542694403221636176656333197282298241227761937787091339341788776981592995284358712399571606237185626799284112346717871352057568490477187461138653777450324204475527585258625591127144669918727086818615368988265354389224178185117982870760017841624832371603742441012179321433035543821343941572781435977114737683222385632374474873090765715437892463791525219926321433198857348230989919654649231719905120790978860399918491840313289779730073003239091102050170395282018225643856155102371695002742008999189680596712384637279458570377799199798679447022885813865066170075397214353314797717865004726604776940084158903034700059308137996463973688931630224607428123251774237982126925425809214709328734188587501624173690020661924568387586675338384351365868421764105802513278889265310305265028578557253328124497922772761936767934732401189968833532428561245231943674808961368260838629411500366195169264074105843928662571044579466864473392144543121793723000343646569965231684671001166208767760887643944709475956318987544023126570298802503490022238371420434151557074566821860305660678860478796925436334856575864198913821778064950410135302544538084073941218199339428303551412720608045637737968631987307515629553039771565138427606883927897996334515737815056704406772032331408683369637400292036596370648424654499769944821530559218321529727651048209026996604751257860530120348315411880735241160407266310513239368421482511416653358130487120043485031457991165097553718638425699400632093292519096397467679610229965806709907993301384504893584264008282801988598658676800674778565026500256885612598034054727592962321075097808192952443384435457221505764021093884685058005014994991146692243276237743109538830955207835297234416374131436592935569723520972466984516562729233529124435329975588367794932803489077715905607997933643405848279546766003410385607580918082054760533953087105313771784059334351987058093523900525592815862104151698209139253107845375240532003719758529555451958240138289803023050417075002812269478694993403945239912668991608957091583060970266079730035434252763741757150132257958462545184096126657293323021244374299837527952031438496140939881576574250729129973706262938211415159191489073000477735227331568044706195162522499681705203620292611037855530664546320793828339628598239749062938753136559550425802210602450654024062385466628770793996241749169481412892984562233912607672987807108213528525174964434176920175695968076116991128287186684088861452442883976074865325931857306388320542752318791217956192455254990245722384769162131959961580340858032603280205847311789151850522901696540607349129036867083174635387989512767105109801030129054705556497582905047277260597554791091638498795257838865643393802800433979361173491986369740834182043925353345380272248823177460631751875211832139287773612139656829681093964462274596223393427692530346167042357177850074914463975964038368574110286337165404991729846552442491790471856616742951393938181137725710530756273086288641150024323204897332170150455833162650920805604011484643108138720314815761949574327040079241700905710146867404539719183952405667219567109826841661097317536656086211422498459600227741790775655431323260128254864164924260389698150176167469607303313965946505994930290027648792708500509582475338892752082953075891539090249815154331490437330380728582298784731202749439263124998820893578226468471665372186319410324612120685728672581974868695813310159471309925197879107565686855015046531553238197798278009300949527249323546945119540347941646893025325391584027044199941036222829741088320032461876114029634387461480615407041658278287058647901796173273231097778262996373110806995977117914528012696102770937358618026191795922200904518802803179497869683316013147197582351255946520129852471323939577087965126668345480148643084157906243665188341207409206788769418524786661860952244221340717144577821423008468460348294236364858034620558176642757329815256388904548022403882361662385544864174716548871836026153355262932020185930988642880809254771272323830001225135747541470551651692638415208478797190971198259303384337476557187494480475252130740717656477273241193480948885737766989506627683615402772765962691632374855590221786108338154536358462520740243546187837690599233053618353109444414812146468292766313165514998738497042800219048045163274129850820626773827355619574137446963620979527138112754731672934867144572923512546837827104457239877768997395452274001751472158652268274783013842412319381891914942559139154992172722564863582994494466605113256382705220136723443361152542144304598876301657873345533767504411538542328276744097847793242672027930901291909185456461159006830621461499137516921742616900676531698538118479187461178210615163069915901050930333616461989559351495374539847851138371310274397269809023287310052514880928892296587635363635016610505225290358079899947138207895002226325297264336672287999825146802601134695439382908322989557107740909077406150180879917127714810988607169880063958046923870234161202941237072013366360660917508553590200695132683099946640448737453267081574799916695361018501551711597422357636587715349375861498775545008989698309271054145851019364854890162203161773597544917971215751812926732843869494642925299354784943392902692713555250315676701182977173031861228259627926527100909582434195181091839119329096078879987970619211434844968304212954842024783643176614502373148697190491455891947223817283160793094438558840146352373929069538689446303399748799286785897106081819723855298027942780100701733104803576918375367028903658420746111620289499288064797089989490854094915801080422282392979173172277360197329805876636232916128649677779472467233309764525529055259872432726685663941553398188096197365868235534643145356284300015403050757250666117021796147271966282445981713233702689754164821635365437973124336406270588814174272898464303218534268835084282268062574230455437679682867707001363426186291065007078289909913367754203847642711739504367240801550117848611959773933392617585286936497108309603426763510033759483811860611019403977807042496187368441201786701119715117428401683861925743363475234778285448916522497357414248770154091951173204329250097718067245413659511173327485532601681933606394260285658818406420908509267452933925270990252279692129536137706398833049888204589736240935396742740772795470935341697363208303974895520521085648159143883400123813136922203300212411558025335732555923667865703208305093180117439740369610310904493701507627212479283230962240957514872910614030548816044503218811372551444253331240060552211669103912677520328930362431096233435155024577723602263993471528593152083981730695477773108311214014129129929631831740081887969584638529139223864974185427428152900523847177175276012501301200861601458330832778565796599785837213363188295277850897909796704800689404289033986906215072527652728013514016658810914148373397947047924177243658460917893321199460400211627619607392077183973559468673170378676198676206388561036355143828668494788597821096420881704677882031786130213626550970665529769947535262583402167687416252667399425418027213433983416098632207220769250878991949994832044454427255930772501365221397424555371056226313255149004551071757444249941744903045084226756108042697092234909698931634066302550585712254138287382375537153969165792088212214803222336103064003549339574290551854759484083595088836476003328642508054920080637590646779348276061908391105523487444276432479944412553495254096951748048081505343524582375570285142232478043211896283862395604092068034762234100368394546640838634918112914415078135259344153516076434513691071007201957581151122837792449831362178322196654654011016970010392337951786965663357405892263827744977077163450381400502535687482045862221838733964129429656691438649440307325665667914860776975116574887914996418519842597030525905554963668583964875368178631350634526873854235985108985727549014248728113623905037411267048956382980336984416836793881957480995740049326057049649937154747548442207296438436466418894540903601906709412930856998779607830755144908319181526111088303738461662421624600478074396292029787025882301377467094284578455573450416398379917463115615211829757930422160320945680346949804352457944462532772424839079499047562397255863506716570811783561815897018230530079448244006605104183903139379209683075236485509511726914499408156058096259942731891084218409152104850904344952214873237361774481795417542490535922909267895121508711148222286952259828229663083097454091714674003359977024597089935996228116069025157425877985430031342063622465613587885418933730192467352765393720287643591420955961147295260624575425340872665530568440874836516400551801039901594490414648256060619468363384773384563502980245634751286993724795476674651159315831824451026329382716337047713459751852574819759965490718137130459694281651196569453923530376870080156360176763659599198816090532956450281242332640323645656379225238795778204488617955956658710622395899599327900707986618479772470250984950035385366330592289204460407071289475257570635852329961743585321173948201700009673321281877825427090058189534113797693513305283214150107944544184242543870766137923338146410761493485088910156337710742861951824363670808409253122230515686241762733475062083030764344913785751044286683564395599740730179092798035061011582114086750275743592858102564584572905670983786723608019992093170353228327354380627652468593589618413986608079987857421609169626060416585007216774460651374966669183796659213236440809275133226825794481404194860529595807734285140817945503702872176007977417514979306633454664129923955518443946853101918902211900174603867039793294054081766218539203697677211409426597518246746685958343644945563898970937562714123579154788608048561915838788469336958252642242836987612352218060797064727882057517369725307327528816967931873001628775247005648947187502735305368570481608589654230904122964955406408208145903524609311820568762834356499426960763457211189169093431168303324664328950381432678250163282828674009409764945759382235650987140026226538732774146260385039278762768091156036345094623030118508292402134873928908599533782331340873249987125126048870616334483961806520542513834639037767469292625218566404778434440378596373700743347096500605038340096525797527808171970703594321127400715658753863266914003001376760303138739285308752974831210547803255963348363855651703949417541080750825632613302929631606744231204772118758577144940641608803268118708900258537115493887669336349933857205642441270220486960155422284957830663174281064089891876878096432133303590808282715275017170256785103209824412069077298755871612644921037011937269057284909263458835460080948393596100754515139977710755802302019939584557641983384007939260572647711427436925904053082591645169426253986372749561301629675141443145751466439191400747697129952349559727832019716544943306567442411028681524810227234615509082893275459801981096811590397046489116219142756169893447781977771109035409621522445407145426097424580017165098138013820213570506516082260023115020641909117303195469739006864853750735518645380698706402715129972628912109830890098188115300671764172277707020775462722282061366123855142518964308699283542807898229595420939406448607750664554807585156071271755101336567974780263690828928829079873990365584915730237015404827721172152153466721929574888982523581388984419289832910258021492283783614107771268161425174775569738119123029652302026513446010642414101241770735855815676433402188629141686461221655630790592534990887445234326135987631133515595554498339749504792731548727570818407900205422472974868836339932178006041463064535980608251392660578714409711754901643912401605920966700730804864051418179727742515364423981814528976151903184507083311370537709839837789069079497907216338577664548728711774497382637390549495019004935218014896896624216750725014748167696192323181385199273063923667154811960692317847956169697882917625775528502863872479020388642139212315775926936667028788793883311097220850386989396390729562654071790268799351875137430101432371445840113986998967827294339271270906098084525286873311630745382135830052772389368282107768362524316974428541505149161290074072291976379928542321143285321848358201290457760910849924424807647284368968775146570830633605704882945264854184228883780081053501955785547234604683209377628953508103773097970439133927889608568554237019525902617488901079481365180396079090864435855625464602219451990731606630071602194945677279326720330518627761044098563893488751023776020704634605833391368177486747403045119569346789222123043291538143640662261927883698792090411162793430641384116312159241715463051201976517491465058992624505562102706280935608970440016671651520918039756720066346107757693357664126140429725719853206087156745221605339516770031501428748556781473949298034025423745776385139828768376058650266847517892783736737547081777800204780949188850437817861099091240128002420317752040375092562392010182453488747127807482352367966630244273728009570354710224332943610208509445386044155507681829867450402653106761578094482811911102873001568409382992434486156325093870568074657008999880667394596528411496126982971118503905566776900747073202759696906034974494738311866323184044686342775875880279593988657669000971606121179286468043948441846326988029252711537380622031987336312771992035559738858374180340581581700720157022362735700805872561672954605739509197606421340685481596032959525655521700773157864791221899746185524788161532382432247409616176118832616945996671383994160309445796110397204774841027763656535468972382843785345373835400411295664452079416062173689094147758833418401695074931229523902731180695238315064915234914911335853126274279258395149483145017926875073994289203962487675011268905116695547614898732501407604316453188566845358207569705233241024327880721205973689182113851484975278590152303272947958658411008714560996939666489882694380866596964226045477069382863130538966126705563192180663915360180458937816570226328824829839811987342654923072818775358632682483493923884093699435209552356662613494803281208046912464300253006192854521404592659621230065060880745528509525335511721830298938915888500579143535408482586715407661036256859925591616503510589366162338991344420161749036604811471598146626722463622515987948340780673793892258780739582150905685703673062908679126495405056427383527675874903488367676109064877671671571663279196333944567186907481690357045243457871365123000909332880317822696227618547354630157088649371466130570805400499949137544651183993486833581407760992885585867541580018189658332996164180846051172229526377576319011837430942220219547361060263104132063623025632605123520991147907877752334097489983939760621101043861052098258994994369784436471562110813870911048854953012725444726905756610659771017122870979717814310661808217569857092603595940135340913148731998530327150513434702103456139123067773553782740821945910136731069606560686270450363023308988116613611400524763665288482037192401869720806383339183936626084437164992844251103098045075366812965586554558179409461292208905412108468542514501755783126901539256470738427581895319946051528588421363390372743848467186462962065816595062885457791569953323219742371465765181961353017492754017152744736401723197481418617047057623546806597103456124080170489697367477022949297855002041637191392419604157427678022095604687962522744474153613659654201653545104779211586454179833535025306431691179368240503658723640197789760067157120344849263164158763490263911908748785465242534012756072025875865298852410081970831372176012711505292353128766597122415250654227998818488962284347596053250258911449696627267948945989252062895008241607317253205969116337295584645716053823497346096936786313161025126602484665109421239644080225369874021773336778065419536669734062243612226684723071649659570224800944804604824769409519062161360048085468238052665460260581433293917611883067179249544791129545612139529886947429589744828374386401973735154862186820718136769168930112498277425503365071357418631661351356798345502833967972103092631485995777034851735465632003014480596252540312754494856346669976777241438891504129301099570842943053706801367989990218141236698495969319627760956357205735123748696112523667116221762149521549078761656943286267101734871321110352336943686258164151012375772699575073672512260527134699810079594077509240311934959319125653757603319935544363956170924892419453246759221477930968006676479421144629868694700909365680316051133692531332723874839138632828891923257137610338158682252482617037960238820857450790803349597969946786856172382160597763227844863991219324683364883809255393946862947124099066043784923941915078764630923423295754541793576735615514085624696470033123812722060673471486698066767753284200232893939076859135934246445965092538985599790549940526106842278152737727195427163173120122704925975596502053626132661863788201654589001168865880025099488337975181679826546330293407632954457940839617760988841941463797934732069607278584123276240782710569302863625243479464324512857016100327650829871660778978878191338631031646066859274085250664204889427964634341403283847530756368703296910724952550409877482526826327517995389930493927304475478648626946179182988482393154725835761998614501637268103800980312207740244303414521315821091793007898453245282516935625654472175191421824662012021525673853101334411566222648586395230935951839354409215695196802749225991403270857135971835635769620931267294562730123363441283414869091373167685093326180147030442458973292564490139144641609274024850132516854957566565687400149164494801494616204022927992044397041434659678209327979224866178522583845880374273871591768731632956484622771328724555432468275977156139416516715088807536671698347762329456828951883735651494608999362364455018484583754849610853719188461445674974354391192041093271176050740374467480634274077873573891309989535255571250696699645796271399855466764174967900421878543193500887372885430256523298802971338570969443047362008764122549938225381331838754239746652604050511290902585247802895179459292943504862725509153103475865062156975911715017293802851939824161085976950626138054322280816889863715172519590340187072492504685208733469192350248103657408643964067222538385234380685034956763170571121772883771128068975309382232235926446310132063079233797829173239070011436437844725317576798990008117304755922400564445140553943791483321741980067324857025305683132203242624880396786176151193308695888914891058109503594496032874280465476971212315186311549673789752570767392850411592346312781317121988997354326060170113072368959083273206798741578911609241994915870460274381441488469480420619669746150742051704736658847045963185716902922464153522814252304976149923721117919926399883303624060246607757073525376520828701488397463073065164215547586851885921583344702324414159255485517832556881714945768284439388098000936155507149698170690009660217548643898271210729840614616016530015324576032827297790155436605598878864054736199754838831380194295209296446415901105323341376746574191108687537594099875930200524353983604742472933142402211114486574277919867085320088450161482993783304222188634572191242464877637195547986514768918006856500048928007147981819719011393395076063603816296943268986967553784446779434333025174322867540048209193696050876787339832053518405540999931011380052613627928481022844972717621959270649115666626173903235654184314294400640556090641626307052875149059531035100201127092152065431083194424076039221958417973639634647500519322091683247980762309441191056696055356514419491268141563738195679929271064345295203475102152106381164149628663312489885413078605681313402945951709082057778544737908769523978511562043998519299340929191511937555181260036178429856063920246151283469044294359436533475850417403811168460894236818607398899516785241771393377108208122505865778602440510921341068991556938433968076757076978245635359904352460733964730753254150012700990771275947593869870536658763782228312444447873118296618494449539470577333193855201226650964694413486429374140776982149856263860481956995875202894447451303996485578492173206163348130228180386021980085867288442906804094914878022387320569339384906113413832668020076935366690656729604947256349903486709982458648569452622992202340064849367224006585920891147542339764468995145127367595848836139689642719136958836909204330378530161472365285634122036835853637205454496339038300887391115391583179747357971445042526978460488479159400793707390195264878556284546276365084387728525512408744186965021958644821451247572328406204001331005665412481040628611932010219373310771787650676267522824187047647254726638737201698901435251890599710602253859937208470908615288577726277629218817762642931806343183123787238127517453952529007379590324818438371800232787105271716747966558309831908985347124621305208780541599291504395102240004685733191220878777416742853128689560023145900055716672469036935776984279780160358723542290769885621405840292728356719914009117054420176346423875127440280195656566510037218323606260974712720539024778420229236584315807164883784803350536289181715470593675617531694256292854011401156849002426732660359076364920502291578944517945175340325103978646378843009235947509776998019669274192084924629199928173193256568566255387903994608110453045083230991111899249046589683057003909736551811959558628317364840481416269002428479426714656026694832596562883430670628416919407538034266729059876664358650973971617668130777957292116832339686371774201728519335737122808975613850701545799675237542865079440940253505867520811256010700472393072283475996829795117211925429429390031609726359875291999168415581817454329870192501756663118836373007948080488624821508554456851215449903402087487214120933823760515648704685888670069896517949657739435597243437288891243532301439796541939527783230093762541256756562621757127137410982033938592951941420980977285098362353333536440955799174689659967123895809627364714116071003358326818776679339448159154509867425963773639854458462930416734416009649619940613063387647194171857272670791326094674665637979576012410879432033658029544308904210011827306139592998421761016889067214781256805513836648192190483341132044526751774679290243283469492035275082828509772458317370232408176351781155626440692836722937680943894604131966791712514085988872789026611410718514451192403674044153100430643149498222432034868350034633921801425385934092859130644071263074700941511342953302743972003100813818772690753722373165962896737980233507178078071593583434168332360415345838810121431462437230599539044465797758423547127590296287301863060333850629971219671741489679859061518157493274578904220972654902200616546767813667310945829839854534677727743533054567498366706524899389545991979444133127042515355926799565410217354130927065633888695267195564556772222024043236676927771091310187016698109250704641351048324372768386794288994528213214138111918983963049642240427216668699878409438159088531174975558049857880633840223584634730772593097043367423814084048011065168570462982405353867616286435849882629901800798636628293802413568453727285402399532156834836431198812833080339057505222625663352911154998083302303145057105254376071622457872761938696207593300474120453521203959233786622583721681140146940684145575753402718150302345211012803081267715083447909578399901474283363626037176127561954284475485226337542125061745893374244754001544855710095120444239648960221506483638540136584712017037475604846749436609853070830445252003137193021964621488545272954469528109423870124529366282071788153385020910085201792638336226090340315497548627871581143174719280151391524121604953351908484252791971852520020777457415379687009742594747487942566241882828439008448629770468172280695796730633882760769062031162691160095023800072989801607064072474514314810478028722175896907463245918343424478581395250910642236127667704869691099804521151933859310571561667034245830154047235079413846283208613183515175161728127355580214447454765797903395503450472169981523437342570252672794139178456496124219499623204507232940662438429147080372065308893622750944884909859271569559916096544904426220120680413956171372470701865328671308969551655552222239227004530799587461986953079063058081401453003560197504165304371360815349315165875066974749671143403956417791296452052394140123989640037647295875275144214445323772639489047383751881089530324149155323994845934395457987133456650864010667385668127227514687964556529933248490886527781321187835268544998689663845336330389135856635594473755356442632979708157522815118566556334651209089399931608374982360340356123139951083106644533293073727759177072182142020735617623887105709235631589170922123504560661560031740966959604901836366061460918188135044041866319663638875616147827879181062767376709096484112902576842702097565589873700664177907368827370390579359897412535996622578603769050679812729474605216741404137670277440188843880167452689855412878360116850374337770903826802130130972084396639825910690020032320569499158375348025468263539084689714489016203085626787604993560257452711177595620463838890591264977628138368495911030738747618294664657184801986467031044042340980201298525750721061609674746188078481483942212531717300486358902273610293275708092067327008551550327286824768511926788324087481904416864331786338969169514466596562384768626877273549387473931815179330917391887007010444400145131093386643360410150558600186532373296334959068769847392639515116079756999639556342500351847369425807511432442746582743922104144671686595356686409574327231482830295285176886050611175042425162267432615299965527952593366362647651104996820378493674833618354696334727923442905836272125949189182975727846315086694990134366512874871201887866833954856811391281242539613839413831900999088785719976533471549082532529475605790813698674141090358438980582279215217267326618564122800355481873542755609142156423393054878640249106213850432005086879747701341618651173700704294650508393655467968063368673532230287073475461806902597655671973640629500423496763534723195555946074621069312559213764103178505290484606805237142156793017578458513718648490705504079067051043476846343201680343614432915056120790511359757219619328067909392254896489439140347909245628105770423112150297201100837691753178387668192759891919297750712624735368472437535470729190217629637490312797249162614276165512373769302529860372030204653215746065969801352852489966440616492487472231687579156830615330382323770395960674590657505345718599015675360187894242595991376763236115422010486094461568611124725401028298539710911007876587356970530188325086161930894068878557501326274351077517403398103967437776910462998811042390961688967862260219422955015730255254136071678867687263579754449070751422689959976507420974970092136125833096588112577344268695465150257441258511705099502674624036825694810930882644901409391980662357068224132398105947287598009292516552278545428648196552425968237376175127648177638061274470523470419736516504288698981875349977059183370526450096995545805565940265650866592823841017861928143835074500319412660820742093080312506706705174690960319631889592339424915505759697415240997565458111492270686420055619681479464767486244159624194569505728517329474907384859011032744475960922604843280811090026946311729077681952889354014256506665548648775190677739193486789032349435220685974597087061311206323479230654578009651918825133653885935761117574456049194262111769496171756083053541354937130095947868759039954113572002152231172051830984049697522462485125275249711404916575658333653944525870827222668297953655695194354043098181451453195356758095143627654142799263894471030815508796379885020988770013077575239462378103169485762156715209284523520750886075524360679392154902771002058821102057040492414217502039138879385711381227920594597787439196910218360904493935151275522247376287457084482661988384932572207948798925221342065710793203784686746230794859114780944095844573043163568499409337231048882316987476951767736712426068199302162796658751211913346543466712081833166184139415155706248613044023372109131385186780363484778049811497642002047637072893958739426731496498161773605389399204230289450102992971048483436345744908035200862486209836536404606407979819953504205135504984645354754115800837459541102803235197064996874484749271418580717265075606145299944196302466388320078146167739323172037479965896465665824324498855981365997621594598358063471007317477007091517812478644587462943923088209688942468700410066909001363583992475052663385310104105361010565834695270470163223110618476097795529872060464712311200954447072766931600415813869876017869738244709306650733602104972710446212875582534038305888579207550989729105684498807268680295053048506125049813614514066864813197135790973610435772248661950161233028325693232864928999673464601179899960877464372774304880208841045376639852234675641857050820332653432093939857188523379580839507683720710748728846471562238996290682636069607201320597490520875461876601003028622955128993705814126008394917499559973666120650427177876499637394306263981987882380152437226318571843598830442942824179670254338143127226568390827840139003971506561309628872577642232446543818398582612631148679187147911919789358958346466133185295837939879319610557180503212782500016117438949354184442153347498497828262742962800463666877933913222396865578639574299140211338006375717377157010875934671426570934028325705163829117809861212395098524371139390845633369389125525477415110015493554481386040020018912953416434887428872420207177215127464052877890924433014278740154339210659858910362376577057996956286716369163789591411887340622399247098817383588306207391029502494919999153937446231195511540959439498631071780863293730764749711138328851549437323788533944190855187933583854127249807518772313628477766653676644647153775585009078850295508179983110245454346214367291000272747421362710641017462104374833113794187871590556616727045139092359008100502174995443677328732566681555653566209207857330126170004451976098958210944525652945893553441152556050969220265530964867245564546999300463500448037374920531089632957270749028460570388480197114628912134787264693084080241970342081805115710455520682629169488522687364580264062472148392005890333132565511576699481710561979183860019896606620376514272252462870054619915932536624543232108594935839559081103348665029753392531145241790435796471970948216020622574169655449684885501986293313142624579970258514246440652760908827692316951470944287671561049966499102675454089471597455361700421105030110260511054651190290759935947766990449751910213803479202104359114298507299864796377708386216973280989007308415933334404366635426261960980847809426938793613871961933398746098786723685234097138797084573153557300011574072910215691016902910205137178961119509895986610708017057877104665397892549422518274820817568666053400442170743213404447656637157959611852815949980820809324587957554498526293537060802902004803865345214712102456584618151383848537962152011437045804633494458438298369673802633537869946371144817191950039566352632517911179453631306777737801480436742793603094943470609916055128865967986809957586292777247929498092167644198386164944006986881865370537767346197278086086220939855348597907611292746290014761611394272485756521007085764313951261049757239387246459989446438364374252461232648766015968381275365154075836680227022302015284156464454803772597683771289503685578863208014199113221566544429704590569411374829422561507726569915610394227313442750308545503790528950118755477661910680468271123402482743193083467724531832640530385844505062046443259664502499376029908052542014229783568034433222857983614640749659437007155493858039163691026353990962047554833582621101197601488403565780909391438774448157811498817763848169523740178789153855498743881250028705142053551005886995605793811804502662422949215525571408134572784088656899528127152848203277937923105137067713341511631365462735792657187193790601032087178342135528269278204424721220640525328322623269532697079442132852695128530105679842526593747044485358086233075608335424533022714150726514714544009602815467648406271690282712823986319296751072646244789740268721964546935348856882976073688030640687609192993220462180259282293547408081484721003183351150234279047557837469513532825574796999469982061879572917098563151972666987447394047349589705038092932512141091431607914358580510856908799449643302125456272082660630015824891200490383788644332157369789986679920404875699352235046207276006379084350868562786228964287445214903957926981933976521338119392150276748721577962817289516050898065552242121277871211753702938004278351961215540419223777330738081150150260552239772864918619649746429137242046328350195466436577904509273030926567612193460442748802688134634913222263933311793427943203732020130946004533080797026686342324332862273845464253778425011159875964135939658624199867129351974804642794876073664989380659878361899429981664474255563045999809263488851360993868393287853644498522037141822138749603559140773217658072366190595502538147369910792754320435139006976702319001813664712498361201853843332744364795971838916261664716981081403573603260089279171250028631676650420269814723810785984350417706052662749500267128898065968544756366596420534286512517375723892561857773400385202306972694650336855095047645981667731166186688628313764834449592459600072385256771463761832653969391116750131012716416906286240957312809118876266371925261204364401162854546192501078803277202618912254174247102672396900119748471000025198997483340114798832006742609181856691252918483822483649445138078422202958773031228886939399718823473801505218619787114381854104329176839397357479358729486489934655685385336428915576045492882108932214245974161485547519319776900464973284489283717703434821643646969974279041188554158603012209752412248054609895915474521874664466340670452332229913777471399212507477430576511909618908095589245520257469840860831963043644267509571852746498065522959155198479422631358513697859999566097213572998946760106302222147524508139045733491241180719692034113078727542675439651980441172877550844074715461142884149733188822267150187797034980260048862127522082015234789872799906880674370879382491648241587057341418971205480574595513138601823289606109457934004530187562965897428471555209661453008107956762410242309167077119451499048081603176895742716575377407168965525761353189632750759643988458453384984412557913726259523259372938949051852322006359460083875380108468934917718853014807304783144695155807845843560277803516049845108095355687792726585193695355039173049644817405579965056602259970193398399819362327500992060214554378669954573972545838117021725723708575046836448514193878656321367324537500277555229861470233394812121454433178419467992910992464503434570356429504583039469950542631630671976095308479501701149336336955557780262811515153473902575282473248439102339887364193175324780060850340824473830585968737453433204519584895690018869930278040842237473360671233784613596851466187595460920659653127488941230644276286800463693603406457287466753453029693385082725149082559080339477255261548270501521222843835268052360489492705060924678307618938161632141927316767737962038156196634727346319892874215755213743142992341248416354553326269403130513760794748247524442397063955536917793824753244489894333822513523910320516006656483217909511161046398906505864355081820454421070029229254057604488197880442411592780674105452492251288692972752942444177177144274277757773073883669470753724208724497640552291634852106653848922369012551634932610025488515916500058063746801312130031228812598488787929628038087401800666906016015469738945076605506964604223068754801135803000517117722541686138947864902995249832603762333703295438258252995437164375439432239187718178913715835778802152062468575239875556392107497420092856646012335708955019616409106951874118807208390167295498799672840036882337770775492689284305534228035950670962542831035456676673201673796851251071470738283576102064944510174095742029038524023932262789353793763184503564658227079963260969321693368334027696556230540737613846269438987598067668837156946033994433412581679970852939388656497164834431007426185652796666270111288379159842191298341998301072032708009402304862727078554705928869900044535877384019554456494284641096748448965077283342130102276295193179465963237241820401080664165723724299658944838250295830595425173967295157803036450675749237053759726137249884817663623636694690010313582886729942262992726275784740802721071214534668101642084366415164458930017661757418807537914442674986506139086229564598382568239019051421837562351461131434372924557746104999329373968496807791554850509352488657794563995028081251085275247144229718495699374435622513217448403443113462154729592707303370277718594416279231705275233614339240880719063190035559475482555645026586159771922850715125351805478499905473471520684912314087423260257107721769606003204372441168761538361458952082312502429703499164531577748535187044175103909248232536247696993435845613034693783301442545381814926080428522952609241237555566253624260788717960370164257266320117008730433241843532466339518076984322195315152020771958696824761869636640352771246957668259121893008998287910475983177750840445935935247199064911936400361357645952009510850048120679946295166859596908901899248862741650299955426740555706746848159878985085565041059875987376222946545720438131010131890858634007816720537679108782284049933910977812435684722747388427592074414664337115153615091429570089186291793413644279417361002761890521419674566998974722189746175394793145628730216818075723708820273333803661631039908157109971473008142826001010110320455295126808156947184437721536264841731563964915945225638983053486033557842192004258676841596250943671643503387063539331730599357708796906974634113268187001900195519257126765018572724763995406277975535833856190587631148715869003523907192384896194471508634711939528505238119101004306707802974394381214411541059648474758868840804891581114445406260543011866062412695210599158454634393264862694714588056564418639920031699036070145211258650575818584439715113946226880782575382584165877498692590634504630132989877139107461742240026292286900877441590685428945516884349979034123241158639665308670386775953875904359841549193055686822424088071947759084197608195711971871968611866152365670797141880209140879208108889116714263332480388134825397365939424609182290219293886532876214339590811142284800330844856199698994776938685178229512154557252583860094044054907199148681457036903070590948684321564305808580278470729061117426045990742022956893539890774426420973772754763742661302776412281785804833290758295107982412629975164055233455886065944528343453384578733907826257882850160892846973899581476018659471216874979559090368778242568973821428752321563329182758363276852196309613417785976812275841565240717033867934602740334938628593434450166333351146481557637183070280916248232173366617907907297975636189842874752705850609496267142317351199739356087866314041711136338425470836135779349427086745300120076675209473912734544911122137115433227709782688938541495060385195442035384043561758435691239214658761784098514596686656784462344336276799867793372225596372264973193859297629462466161670358348164560290088346987034847394234794011603302252120395967770444379130516134321782409906971455095402775529260510893421652075663327774719870232971413797830728354457938240016721672799571966498079063286255943145793874106784717699133298053951591353759230932509752215252012795960001398933417378192172963926618432271798104767689037627978484851972488615333944329140581377791619355185508978999488615731782394710559166226145115852453104012034183377319381276499065960923649215815292687203658195914502154394199009140067045868151894690246120018326752219986713048119604510525768166648757405132200252172309417462722827690278235594802045243514231519797148343764596349258741994712853315367347210796458886121931238380767433678691754781434917374198640740395655420512296415004110136916525777105317988575653507830571468328258681025071747003141422256788190081182941690694919598534242050456407324898449986698453135303628646163522068131734645791444804143216792895408358390654504699251854937294997249363182573746053566646002816003895822326052740574373227054391362417501775699654803757546162887117683537939636599759539508350675154827123148974170248431768887780067286803704889697756686822822848229168003819229253903370649236380802128157280072311528041135909809057295604055069890531874319541875738546331920373279285407525773557002774416971368461811649664318648224046816353931863926561219140258807224636831400848277266489881105634188795490494138660012017883628993556617645815869192564823026087044484384777697625381207239714347382002326070451296353552965265253868053206612653304194787951989630945745570259351623645813223095767215421788143842893114521873494007247259947615816665927849507287977218522823587691251456499872868967431265257432280264412061411214371745863076093886537810647747901017743163485931470497344105071167182445814458707046253076634012092371620012944599711824235570755666522821961798892980218642296268935122857052141414879525712676730170706645538331939509379690141671577465482642118569216188167572088798959241309930341855233432647906523942763287464905259596831748260082019141191296943554128831317932165709412085872115220729927129912708391615954468822964406466564993977396369165130298770656989827441953926194116318191246543826864355987321610419078119324936282299866559374660446444761744235784879621514027915789762239182320236077853024857295464055122196360719616420778284906997529997662554198102373772135066740687606809076011847680191529696821962824447200398308018317964145379448165720050668785250414305539634119288418959036092022515565552433715066994698454494441407423992356964641365886884097689063570668563796566673708463088435761318703941088922882014554193148518662615645384566603481216278966709969729366830561486098054039146231359755834397116177485960848314931432231066926833410425966871550912618358873124248230590881623383954072935505344377728605220417134457539275176318507584206583077692790454304991842489286519138611970142016904728293449400084126639528792353079011816373334583950679019938710892907520285143429100735818044412977056163812825412446000611244331092719842780029309224775266887031680381796808690632483800442226926494006142576223629396036926348032260736288580076714748104380270406789929223064963005895776941344256252555312540482084214737824891359653939118049442415868463765467562428483670998607647650828554172897156662032517159649789989136745848799538222864132588089224303437089221075255925157232976679879181517031624180538162829190333824227062714335033140848638824243113620524361784869258136015543918729448986975524255599569569401240865243373384636296501224193258839409365154209935835001572420188501492953408952895356093825531051851645295019526129656670931715956140384491705318912373476090021603270929032201791089253867381241151488904493474881289369063463673804073091232437536146356030684532322370782016932257781601303129846405949960224672463422409292036467407727222044211829877078901762752154294465215429379730130398764696814588448415321651531497797898912355528542809330319712957936212453314914971204898256753831153887254869424622656457697942704350190508417687253631552586660822196985090322042502998192786421445124242584942448887871198850196885728983900172867719462021364186092303191135815147220196353951615299215913661751332434341965797216997432102484299910025671986446601948336519381037346625944220816802625723228282319253037832288845175719306606255312736025944180824958372564712331821326515450167124144946179446374467718087449407727627366074656599559180381641710889008328996523250125862816389378220786045374525872926677919469573821358984231283349780493883488954474288696193620296200475013421010452182280685150710902326712134897359219435322926974673473029228387052268837872422616335086641769060035185125035439649879207772715844132575067657376302154364057277768624209636787815117682880017046125817150794739425614904011358206331639158973591509051625857442137636725626566570493995317633644788168707111984032883247897277483292816142478433062926998586677926430876975869215036760018707735667867629343748631826336529717455693878987967622047736608642811868501929569963897825807825516944930372717991003956766471518972049749546935632020803884449611508390073812910750595506256202374140258897424815283709426270775765765248968060891472815946225816694944660770739368532557840131748466676751525838520673357769924739472848501335364322998725328642550482251560895757829991434849101055042133105771370428122344592240401652285034517096119416407468990952948766731586099315877562297807016674509345957505269149270931377303316917648113431620558069747725037380446455538257978079077003810551107337187450061491376309525842025426369240937642965602164034174981390734804505894263621983579266622344783607826755763173507612118177366981355378672662840237360698132568933886337311664500468620740058058327344587134382729530077634644044465387562768764644742076203804418186552539994111679676126635286520903442705963253078738991503257214840979278280566022426919883959170448513328274668303383378350452178450895680293826107552207401368502757863209641560089230401135455491009543539293689846903187111170658520865756398340737662042840371961160241159094608449837868401033943409476227317047447483957430093711344219967694922175445734658077771913426075978786025055264090676478002533793728453109524199938743999637088421180315601548281259858527216888158999904773747327641258316411716762323985558297038224206199662519334133048202846791531372276113042207560537874526833423917835492511411895151059510746638226092795717191638684757799277255135978887384351573539807702930337954092847317226045708066462293053335486444881093972842503943383789947066038884269861860562653850608438583129761844199945570980109944340699398409412891593114039251625646891459210474540068295951813901961454612247744394725789530735871959080767682859700323183698060248218173276173319501851771759617331850709610985633490735332693030378108437021845071831176941719044080345289444341047533144598556367750385104412508296265622608352588487879926898834010160632158727487486043490418225350782021874384840802049976711144309398591777065244540095176851442046442801178899081116856481214691851412177594788062652886257205871298165042819700528551367741148145306097990055023814513035346970726818360281633240815673840496796854294950629145090884543061254335942382746493986051224665227134553239857013204302619960007750079341874655049993386477824610840911844004105741579138063300354266515201496733341260709471812115195900194103112740683367350337727628518497222976214297337504509785849766468244457771647149847562120867746725117896923742792241502003132689291288079078084532742933330595008496100641621417469580933945494600513918975856922325737034465739857338448839166813232424159032946717263139422841749678666740432496802032586882744698297962184556368398641252794117591681093928971321088450712512151010649529694527938800714394407641263584009616299691482145353565596497871267599200229789616949808958312277099733551582328642723575119350929478075943859409634358114988632792521505152827941044273738008287333631662250405075882609353198611098326694801850948953003513177982283043330802363680319643584284378461903308760752595027226433675752490521687898001560884921097515096753409180050121714572876311083234400849713695779060853511516528191405945165852170211025098790537259370021147561156602375753836067405709004533869897258873729452984702592684829551636595566529333664014313713229999172629260290764732301507872607067075679708733613728906905491809089673621933210534437800966639355450030368283161570257165303859501632766338636713740621966704671383263676590182937504512078673164661410991654226321796060919577926971827731809012785806919802744610928036630683435627898666038178333430364824113077829190236617771915144567515255684010048995036960468618103450072535799626573681319250585668455610554940000865148796264689519541945268444484211968329932069602100452003309361918968305338455662853991443167627282535756223330257876406956606063121355696845901711709931523378962320859968123491686559051943006354562912202646666663091279488279917652504512364588033743711443469937441991805692253042474996679777763410616100258692978091116429077507248965411448969181564748105738585484479529973803519389379231691414323795317428054733822979151265308524537020813351627861429022177056795782247387598258213924942711236138360167760310352871908231066545718932052404627877567487238505749856522514867818253481795174396194369476147341001919863384388382251220708370900877244762717531513706390324353834105740538876875958239999885146494450964408039630062333581937249769011308031603671400487123610245168934697454394702112745720117583562460519325619017735352494818292744155798884762690519470050863526031972017179051255438644051812538371927107694662906050267534838964351265410313803219426465432607000843308085531108788039138553527783178857321661111524637343166306397994890672913536244847058145614488445090107548929524191861651667600518136984970566069406264834538424293887340868344478725402874667117275161289388452094306514465283992296577866501363422938421330701892081445000453944732336620379932486118698883761759101205659511086761145580201253574487461500688851848734230037381109376075891124435981894934692945045314894673533178968418748780137979445204599508509734905413966374257617638386710284349993008406193289183775274886402129944718770895943452385077892215091312137604234651378821330109197616194603473421652085988390994523490903166710909934715297518190203800599033970884678560986919513410722902413926650283636129419051850219728633633078486091124068604341966432832853767633102429615216857080474002847366493125018533968294693231694628356129808668591413678099346391161976141131782578321142530960438003109391250932878438300746136409563133631225192959386707936365333065251608978957730628241179218762035791074173286359514237241428442422186561536680865181478612922326672173413381479310855874821471272619192700522067392181346218467678564313102794057180409814004144997545070923950850028178971401951506050185295832516389905740126937860572349127021672835493019356242985550652425875133772529567295097271610649382769086187204201368563890568806679920110226063579622467626949085031462418321674072558160962910206771362680510373419326822705229386454366262531532212841934188909127446976694502245106835776822963089850446977796993344557281267565166540757614873020389085401042696486850721441680532284787453109799439715251193434138321457595997912112616852374498576712571746035492124062800693155935679860929164390606310572628279637370497508534220590772402043187328176415578076342990199300175392606990430714676420797346238722187281235768522983786308937997775482086514156953456982879232759429055567738425779412031265296233314388850275821928639065877865620596760747002988289190268087443537162129533598093662659896955973084658921184745801120876174046616452246875963671331136341768780159336164019722586338441880582748120088061849143851499668231349507781179611970696235886490513333206516370044631414007834327437548638857373828194008871194286516838457676581312432893931854591101013951385660312956503977470095506902851252828305346077336732154406061293412543771055909907561703997954428068952045358917311118663923686898108080713749663503633508042397717037592329910960955149435089790959242404796997282247410008311964875580231983201986494310806555595726893858343530616267712768759621151167829261120608129237702523375947687888426271746111803241562715689825370249668569872169356501944460638486094298005729407335573657812055067660689196038724579815834179585113151812169273194610389917776488677098141123867038888030711012902829410332855550495628817448365237101295026703283729659980192610325775310438803545110309836161168291265824711869183413412835066766620621124432076163643088514498511218401916536443970445965373000143557687361848869865885773328070058934642050862439489603684595646023263079350896840015792619103818014188026507567834099817607535818687699315649908296359335240783078694829547157702927368419237623884175193581996636573123825465249428849033081289305381528444070024790199555397589982225298014348708410245546751779139928552757078605387039515001130689877252562297540561105511120858205680975374028544783490996538927658360298141881719014865788115453378344028164438158938877085577890820221738294114420363250506677909966753904944602708470188006202157642385466002566928266960972617811243043110399107893774374853441521170583230652958090676930732566458094229452878755530805661190712151494874169563494309201207328813436329568276714426767649467892356736522579436076546814936332408131775222219146461650914097966671605684803436003447728971914099931483808336820199762812939905592342032275707467347309931743167915061457025950327548279771234709904068404837158744523095528507909186730156974715729432588628042634833726546764325152408423677187396977699164039615285898998572505721124240470901493297653615846442342175735552577735555211745646656733578509367400948555204350702684545224028398222839248916651453991090017669083939840243673522221296906267744559781946161089508924206225000485508175159151042110139593734771689681547722682049681379151345047618936557744601942058475257026002588538911861496223152041711874145205852534321408465452731651038205120821524421026454340510316235524371296782645081917335206439653400169391737642610611990356772665247339548219713313484298805105825717724286846288582747365506273375349546500373500294023588522012647664395382664934308845078006255772468162520188512745275239533321507651304106895209812275119695444790621928742948525564828027487126152317607333632856422673225050973730109523635104772869339831495798495429273270378575008328582445970232962449635487180006289045324478646012748455670526446046260250023869359149342792610430203360533216225528281148784068914343617178353511967693217626804127794818901022376047248723567854016312192532335905988265785014689465649860396779241875787564160686082328160430794735017938897290401472744997986055029409623482704480113336155100413509170328619633375460161790063660677089494563090984020391461310882015674583028457979336833620312339030408473323614107749990786002421945983150409311962165783727420546719066219996922039834967320443946362357557133109070230399848119362948467249971427577713242134752425788365721083569832286294931091207837249056342809992996561727778642899640132572435531807340991291927786247016787390642519602212131111445161247436566021049035056899061441365801764164763521657485261582411052000390420452418607023622266889558326405875607150776685652986801158408339109686463037856894646379158568863562188509604183451815662005448130585689694168613499261831638333584341887989435516668587183246867712666980473473481714065421376996129600453581519493470886639360951020976521876743856357986856404181739842080165536350070255520766476934851581852845305872433596256615276417613948641253844210144654567529601556935707105872848388671021588775656953442456024560877179961825642235909029381569587724975743440649960127707260912006719763670997819251153609690813899706458126559271024379590841720944041008167858056067302548886732591782817217006723990336440191607054477315855831018076674186713254233319022420015220685059571781311930960790853245237115434698830133447431258781709081060207972231722861356694542458715112216099608576881720853412726968290151027664104470003559653568144367296070438263229244901808710682432508996503481340925037639783066460871729019616015894494595808408558339621840764358122141295737474523270389347154546619660557288474464994820858429115430462889815390421597149990800185047907160873502920126142719882232046104142003273363334685015887760739026930373025949156636540590379370703213421396567452906441413668744807153772078794341768239916890974825208091277169760892924234106297482538871770859079558142637571509516881023559332099731090058353525822744073217884312552710091510744418825207606084092857686239776227885322402470244422939791965690786391377051356669758443882850219680399735556731367705679276921094431867990232619308894314218035843245422085386475662878631003638274358094296175014554831034734263842447962290075210383844135909013856896004196456013919614438624127952101312931341463208542530885423251026600554109596117579912274139090702170451481836246798931042446198800501666082252092904821827582504852508150929238470221573813667332479199959445018879598007361351154765845105666898278359771014856458831897323954890287468559120461268768557657404864760594063582899853604814176959332290407054046670850533428316059728311609741051638750377867829110510521120937431788249143144931667752576578887758152745250641763157277202228135993241431540373591200594158689753466011296528334575809856737580965582427487412009068382262580805823692903775719514765649401295319404427860761496124301337754790328134817803098654342413261889784327584315229294513660008810326758474972477615595791618987101868778445241145227796223439939539165455411663772336886505562844453668982541350631846313759987058858805213720149425277416998493286946313059207883217071667906375609376799159265829070042796229683691951886666850484324010696437249440867253369186633539011313328441332277410058772003005685121313785279022943558230481673636997058148062299257679432170567641374942060658335482968427980762986410475636174014231917869969444919033510783480516389477088019632652701116726922789331557392683060741806691075538484312783101883031575828028187012416545628338699442646894205739063927890120666959590070001836431200713359507044819528707974142459031798027266439591339086646827840828909017418432639521837118057132196963346972213227944314099755962308332001542899846827049956712915256248109556245120238415576051522790616071685861134218006582672480948339818892725620929526666876816606648641393035579133275208510550594082368279190653815276331922161307649858505855370428555529110012757105875673052073456349576689772248846820980373163506001150604417672301800880712879453035292572244639038990134277265688400951343102976569431193977963353951267108309131309733865024395914052866975542317737173452741843286216773193842623582857642943635524018857449703379992584414433832796891090483136632562662142154829908046783344841182681539703887299259906861980003507820419267807131497989206501997712433308688590874043288530765832471490784957023035239955753637088313856195361455268892503629180362946562563860790512245585625191148540243382267677535947016136609029091734298284959786864229852747891838565373447593162317051773329513181039554427448185145791724843616758870078303708478912285003989567253820438714987323260393624191608811907704941950793600005572291827499573151564579869793410025446174287113984739876544095656270626336268081497947002596604664630671582901579068037691130606449589068526902168929042324481351100615398670077397382734337762781466588110948448982110817492692009331817748101849633761852212957770736111674148131481503658596440817820285666121652258221201083705557211679123376405392811934571385912501379925709517365069680718879737044095879715900324781660575975435113048846929259211153250633298606249651421012686687361440050188770652829604351409709309355039093394493638107799490477162511910321055250950024296983660208959493687410253120981614191590699235061831512891614984522157245404964140542694256755360236755149012090599750268869126005929038873145805168941418842622516426125431778365784936065104120629329922077802559408370840631631379621268848334325389293842196380806997350352691201898359058472254738361134035312664654540431678952627230634382516862021873270867064397549169553296597211091371848883677033102254795474586733906476144898288430001049477901535755543000381797787498559076392440280047964756451998574546737291580868304684451375755763771816309417572963735256332163473543121225818038511321967662851656661493061335229104624834908079464489163477779865216757993188626641446794653319044100305855345657053367084707624684675606065345656732054976660542599035411519773100711958357069042866092913826412760902376321498631253111779355920068091694931884179162794001006643707571014502587482874400347773363614308357933353765879716465267591054609667524789768765196925832378661011208702166754222268362819219406635543153331558040630194683983884032192753256935806816896068732007235630332879747154623485841447394487164572473113884530961218092674598159443398715919893369720987742176434540639890550596587700867297126448909972952974338520629797563762620339193865239176718397651843818007227017230076727761599436689479812874571281841700054665727218653321721423710073045292222333298852517465955798996750003870210761655791200588793308548580495238012651171615724202204057761161395301165718522997117220395584608198763519185230755217768272433056495278985226048369150008142545288378267829808904415153290311896448245073252964808298108106524835148971552453556629979157170400786152609608571739910146828139828722723343869044585249109060188836837639033843153113769994595256092417201394076528679298303253782435417028990792196693066684005395235735191558164370250337994275012433835811115713792320379249592082060626968085325093282009813707517940465932552276441513778547518325414696028301057584710560585670992898028981495570333855077672009055695248737515944143317351912719297141480386746948164744331220699793054095914870720364898460909410225003845248416235793995855607146181757612137460563527858937826310462205756372971504972109570919660436548172062776109353466564800753151490293288700334610563249611257942673772226403165065474745411053303069799083132744818757696059763314946930585697050718614239279059084166547367262449481564136543423736801956462596387953696409087723357482347648775100395420591645525338362865445482262483360307574233180872031354538791443606692586471853284645652161437825251120515419883899795961440112693272760258985099130890348041244064292139204492183352225549577689809908538277524831245530013090933876188259508004530166526549847877616273479558549771228956818699646978949172996503441955229460743264764381419601054019919082559445341430369093738093587664468777231211491131581823693194353680218125917513389938758683627156162668283458879993233911845319320466695439104596094578675780487946331926986483869190702493689754483849180284448002616866614651113218780353798172255301034097725199462169914079984784730304238137079964338095254089612868568013678447130505300353164068438046472586153598176637094896196509925738950313661413855337469956937304561798039753859396598962333003486265593072257960923798738571205777383811569452413452236747335464635139279934781081598246762479399132355784845231472275906169577715357610350439299184438316185833867616794425211336660992462433711671697487307758710148170010898505131230350226285994483918808652578579529919059921455468411544616137927695197237352117319705342917103497261379520019357143451461529938832291449002318445797654150298676292381394704919342265379096649124263664988205390761130817262082279555361806481223029339904552824205522887501534559100398818654763473260039746839170323572574322440982318841125551175702753688889256906539510366736875931178426487622513334742699648486009382365377811600623166596554175491028786421834788909816961838176344324749549336121997397931059762944268975334179683439727009437537443153856474524589338725194875776457759930653204953650250865901706138047427224035833228334781464198125618080824912792581916269609366808151290766933882223073472127599724561545789363701247301326942181456554887595962211153568651858587662051034585331666706960884641974448316577746342073170892509643977400798099072377908127050315656778095743783236473689125125566995742354927843228307548717359140298611533785359991566758769005233384116174246039513866548991690520718535161950077833213806443114688565651409340544491238924541740974272291372845122528440554250623340023897921299480989603351611021763128634833735800137714751485776872625956241145321233069212007693066737408325357304567411000421305814428536915921055790795767041111166393448294153077429784990339816170254362853931284091680444481004509413457793207219626693961292213773411660955362840983515220859595375069433799792193930618829270834948948829736441883668791824271290104742938447179299894530801461167395148245533570887865333915930480971756938622675304770166820282285485841255144417753368669898667483326735857898995157340996804791532939020267179669584324090136229743605929466363004540704015480886969610402849198189034196850239391028311244351972468864886993093280114350188272802070929073487794215374887928875940747851434998575107903086785977611715527122622083817092459575969226719879232503818060892705276837900078072707867092707059515483108320300882635912001546524818048970375172914754321703001232981962239834189246028171559178119118103987538458482542908806462811969178230434773329873187207500913126767029104281999677760838771152066496493030204662973867362090318849752566078730604203539360357137281505075711565367294251844336867368431062970103950564964341665969344676436843548964121994178424543117014001151956001624908360314138470985133925712750891880773529692706733271559939432983223576911512861601218612642868321148184311088857843009508499129594118916877449812164463100112510119822559613500977228149239262233936030178512832350140487628194903734973931328455683377513073358099100992463239205335644628600384598650457864193180612160291768774511149029484726933381407754506485949816094082912018073634870804158213172198745199008389542739274221115636395487505004755204765850240302132805255409480063130681098316854173468127400505122077681986434595685701169530432468293792962611511600372893011059553553976146552786022115046268695643880037591140425042644442961497132761554207297666337045099131605909741656294316861093475287569643525390781076430173390836363866789323211457320778690566608305073192181855729596980382002596477128512411635885826020118419344995633782816254838731214107238451176968867981038453733665028823088321690932124499976062860948334661130634752050147037617078941819165303927774043649150915133643832380551678158334631743108238351067105403786292648755096327357224196182804895326402747099065406088902960259264364085244264076032362054891015958278107757646400854924117124530536793412610177150290514785182630756339845734237985640123874671469111457160176431250575129883146424943760007518918733832280745445222646788688605844589842779157034066820022379608226049734450940048579024171825007932638362300006269260400239007309452522649506656294084759400929929315842752982204774517253994199343433136689083514092745741605015847469891877192425541110933255156067715565180631180165209274769503770376024025123134256861532772698793178402537735214167556700260735368923264278739579713197894784065299127879921851631607916059168054838662713646602994347945737930646781133896099230487613818851430707793191723009301094807151270901796535664014250038823726904524097927104789822876266445349045125903005144286346575739118532326970663808838597096752244100654194573640729765435598898311901301774058281514644772055184785014786075059554692239033838161239627597464837706528072172895570215556043643784464363914408743309217098131888546151259163661751215123579009288789858709439024919140128818550827200985255588645609238230420380504519657533553566170442310633468864706263937133811482857273267953843448326862534788862999585979734812995204713984146830888182272815327936656506458557331941500718321899897366617405307420669028524504580380921751769830631567003986656648382365550482405682799798031104570115214733498344510173335943553992732126433981800649985826519175440670080707750031834695984882987085190144335250124658532336356922167003276934611623972755253910294007816020677328029947454465428279506280204228277800279272548556053842835908564973304647512587435097774357406181927732661486298089406559895304519917648684308113114580466017495073703912686860051606502936172218153928150727893566298034940269595474015011560995600145111390375741631926008099321922596793653058973884077665934471816243616522423829804888428977581100384317082299530451800586678138308250196113522623896040474214178351053315573366387265097875840336082342164368101851557794223295676349803361385432450630223787747651210629246238320415801459371044359460593798013588673485644281297152887771929374842714889228483039674961867408126016778565507608970055573865884477029510696222601788567481775737543212843527643776492629578808374291626831667948901916772775641603098466957074515590733310997079870328634239186310020223987027800368205465515409087798705974962227075720467885208574546788896297727792719572027761009103387522312363125004907885076850431614201394656184128254775288430159090101607594296112124234973829564689209958385798044671012984631672366192342736497037411524857191272736360934542639235100344569518716582237250728557490040494392972513890596073761528557921010764279222846630849838981544770839291555061380072614985411564881168735366869806488393592840769613088307841974930393028745483496644145073965626463400550409414908089914538499797088071419353983408261086645164912271769422622077808005045509934275526895072778313671142978281060032166062115372063108952730221156209664703501972532553068822321546983716196200162970428774960735452177852780495252747995592597976942897874323767592064870559105124587546968830151450462402876217656123146023513071137227352217895164410167741053139581731999244666085578037870793674102644043430158510209851932482132163225577241395034136007118781362654511631910561501221424013498839335408220414674993975733762311712692308760378221330079383284427760138752055846883168070622554199506319268434035954506184512790141278918365151002261139103919173255438896455394652666424938892511666213955180461455471045572658216033786114144529785284794100672472294109415122430071917863468275686235494210551121607275248354586219179893056026622022416400545124598641595798574251140003209683788487666181459239663701210876426336952138061358551050064712941701327486768764419376532992331653250140909155340508505879599027260836156847931740907630603698539721661960236391724233658870956279128523555273747061738830898423101596864856762837388259926343864168324588467160088507085645706794049837181434936020035369789533543238490047987643873502212761995402778119130421332873526715022263302739278086456579018338196117508460429317967560338294893837530578161343424062116179933320159475320008413643231472871640395774159131101883512357973685978841142127520466540677270853623321112194665914916837093522756930619680058513164635602693150816390631420713363875733938645757087563923642604974219127219426452908840345028703132316702566518149159015294504152852616726823598352723969776603996140865718741611771266145805153316478141360869651498810920952328862471119655006705187335560996498440332442101701541067869145838879569434535196729705903808466867191240028712617558388947759091625164677211289977253860934435043230626585860276072873867361747750792120669266465139174693747633330485744305748918505654068505246248852721181565268804428022125395733018550842583449179422352268265318128551272284513758200086688554284103795293918053620185398149442021979103403803926532173274212528601953218177919658709436916606045743829813065538287107168775828628795000720756370820309670102030265840031468620902961317506187013022698185891346239567974600057556513173463600661683333561684952125514171303959963771476013395295300089723498393472427116608172887597467882065444633153879454069867558446015232011571865351683875773034198462628812845377452892632261878367393038693618659841803990370020780718604446430858604887238814132474770489539163135501523167607350625087377910163909958656345760922898201665517000237773323963397068353788301797864392367819601240213952947502424019620219284012568679071879527103874761652628195838884199622551221114654210217964449553975902374100249246358371856279046067761527328249761498079046201675276626091148160552337708245153218630046808787556911445028647945992242303682323671622419390384005830900518195327988556821229778034916478968057526084611956352058537437726854424597519729560452965737423429047299232282900224006959943990736220244361390877857527941683056690803565399760600832153357581930491835527280054598301167598834210194036404816641831485054570724838946049604343313665973352261209510891449178621616179997279509582000349586055414677026392678262155568691944836521735628907430802459469722334899768583296822953027689830438146577636701330011576728166057045753355502867058766554971535664088008843901693471983871544630536053813923362375757755011604430721888072248003011756303886287776376209640316683629703993325568081779878202120247045488752609342449766040627585078402375260970330609102372076516018153600830062452702631984941386962014149656254880744717393418417445916200676987646891496519017324965737568081840030208443356570787767942204562229120057745875450444217098945141691345163992001117183782275523898799031369918947931531122212710304080205931021274632933882024753259640479172806127720205845163099370927134590245879320645263725974227865095000594680546674436827831749997297178302363331504589185732251746562631189379562373266763039036797746065664452389901734420371696076077744691655328353558884339256729337685814509945282288852283966775364662219426196702825761929348220929784991330036037791242660648858476408954467976689558006237167227640566497171520561971534726968511984642182742198406481028207889236492660863546995431077150526126217111848303315381990562893205095061315847339902972901024618225058249042181012623961702324430099656519786201434618479112444857947249685022055022880419088540452367717696853184932881015745173839419895275807444057898810141769558474803428981576122132434910541999527998913113074565841784495301028945924167287318832240862104344225150105863870571226897212631808584462033280618149197077709144833993349639967487304735856910534337883446882478571423592183599754678513532017119863339954013376799392641729255134728062143591811773966195461655906366063389296050941469736690100208645956482405405183257808079567284137256368168980263346924997758967877057832764318581103079825284663066456318958095697765838307302349559570099751522427868887440159623083398330438769762905777766614092281305166778513881209119204372650489827729415075595224939978773391213526592712558429315054915331559107647712446395764418101732029645183474804822729168362406950158140525494682367828934080688485705059268826160456285734559744008909368690412977550861959779734732808282377438278675366006705158023523942276435544552142973469146499689116555489501098016616750763357321232075237630138117488405480091101803292268661194660811181451301404626622974197215687693926680129962910288034138610970258553438829534667454093424141998488567799409531069834407107774665291739160486554986779044604819273256477448452202598812918165228779642932712760829249444266555786216280797813639955418910735854623591943948528474938289910204402364111937391804143461445536827849841639056649674819664471087726163685136015246118013739639245332886953834818974734234482929725494171982103986188913301074783830447240441265032626024679965866145230694870727100455751830817041715954277708733446122481009159481726237039012107468949202213837255914014418171997096447327963115572695769857338588334270915620598800236618401839612524764828474724261207724898145129012447266156301045065674284594320201195125043972139197810893088503686023971138539723552726171195953267736408247772001246782421336865741292631224622899775234824250071284103485470001998974540669124594522700107180716272128517830011100216398075979513206054906838037128522182659400054869380904117023271716182798242753691145068561299482991905802645757804313445446553280804724613717852284910244356712297505310331830550295370119245675735438367763016338669560841345121048447069231813523542298334856533311211037893372705543748712217116093573713676381680530394293801157719677415446804611772886466047836431863121674117128628596156409783225799623758716853041475281104257519265361657605960352251354420553503118945305289438230522936009175831108382874993736028381772525981081732787659581741437313952575795046096522582189859127549830081288951274580858358764433798149121468538957720451045670820289729411595931733883082235182412652363422332856113360968130050670358176619313899236186888294493047303108964140634178986519668034964337457524098035590186365268931619858031081992046159297970318621057505424930273627389429993715688514818785792122302217503536171823321549335140877061200515549047260193463377947849571047342730405340891480891503025313743098799889019713537539614771002024173146006431449961503906199448440335424868294320016750922986669862388804427068409285775490366348676194037314960072752549173222080852829470277235578343598107853003422698840597381050226096821556293804133227018454384950656159003375070868033121352477972973689661209499554594155637352148549462538542891684964328978467425563699467261226352226083038296898960717027601336918849591570902406606859259607431420249482591689450081414768695928550423902092474913276018091451061658401924160931581869495155008359806118604493296605195645472918524685962067984200716226695028380743039573677463902235340654182693798049759674943440842445403376187608569468459727857239715681035128686266759945094844111769022912863054916692096790999845005704743184975684675655691078200919791907913805284960423073305381846082974246470846424232194467981534896085905171459273699358174732018115408927096609182588933930095297974361314302162219621118110304477403789183078139422847295213007727503755137772367375144719454665094677290786163439765637821498457151956486509878805751970024825189882439734545201756512927815666316528995824886686026023179562918781032861117294488001604695261070640453547787971760587974341056250486643855450804028299200607549905679154625544730082154722020016093206553951620135618789092417444866785412618908083208467661177822369013923263500519785078709191372479711422790812995961657723742077679010340581516536462239043158169135234067665334536727496513449811036895209770641076825904913443775288349216471871999437188865833453896543159900797844731227267136097041560781045882982998724294502046414780170652466959666729778318115185343133312214185744610932627591161462203158028910990125456328348975881647870237004585142344451740747942718951367094827227785348548282370053603643511740642024338726676812220718315434557360061464275842808775678773857949433545571565129233129444712611922564066132400796190292067893865661472976543720994163344779338203936402311326736535909423663303310013190361120210813383169940097921732173657341444543049012237522791987734114376595423020450717023613799409247051229035978246980643495391990758493668617175045440632900335028575978679652590412471342911143365041785950892019181976349441702058879047471870564851781270925819292056751220957937957581996282645641548932536148195202902818180359424787642306514820137152695022954533276288717878772866471888251806891938684868051409068245826012890779548313800967971086461821967077411245774625237396975468141731266749610072497029435987471868928660859417972405530401133138338221947957811050887751121083490819791335644939646856772552752262542238304919477460466695002281337665039635793830732508871726659239772513109732042358508335542933686072201354940471425471266912972572769539463648861467177057982984436977929584410643674784319271265529545602500678684786373696824500797120248956339979701114994450747258270288620629386533659239509776697756624113630855274200983329217478824818881727696516028547196344158128042015901147140428881086881440486187805167890375523253091518822924761053961154267902350687701421226780885458343789077871186389608590008427810304222551268123905394374571057359726669133374852383159412349371390084897048861297085349369911078866624720386676285651349208645225783544479827887367074371439688468372401651301576246911820060319901185925086309675171852790377253866721106388408986751506351798003172914998779850407836552969510841182021546152329510270226177989776532118319915062093130999704034582703441689149268379632883609045029707909251310020797816431062796654003612801554991350816284002775724431352612295198184630949277055617937664885998832716337070037707912114728822570719324257195772980661046189519176887950805728773186615867590855577857314560933758888211284123050713721756180614395666391604818953742103597863966612645146275070073932478323877704051632040120336785405010731698492763044483194536504634347134963970264605743628283230981937549478272682971009897440139853600362833704712196940444831655163043622002096488281567083659896348495302121769304877635561718300882491602000904124669827208791940604775837939800580160006741378222137601508519268453003041083707864041168733222219296427727284470286365412239777250662412805459874543181903047800010154817184179265560156441199788764115942956527939974209394240736569526205984413960649717853015608738371660062599773350035827408120709668669389995872171173046893733741382139531689768171709763379918155324794694894340568736295779258818720366752426944454416686577164409008395592152232347943742069156016599179767611493168161129802846487679092591197035950220808720560706641660674555991896728441097156204428047329646775494179890660760887891402826796970271112167326449998544880196055523545595892087830784275355113465427933248633198156593673576170914849878232193836219524020201504985362451719313477584306825756894498309775506232146393865867812559759723991660429346145997969355613133273094289909506893342732637298737521396167537942022554060338966009657672347266567497048912874564049604646145582636655661394617039124105702586707111245709180658772559180372339842028724269140987359882996382764370137786316480461514335187198688519989790371012246239553161434994879031363338762203357857849444437946693591953368855661268137505904339891803354620299807791049575056107579082690383963292179485277575912107971133878289284396634887795291772845686478361453736043174755856242465264555558837897418792934930949402058418643142710470165068777207535010024670279774199139326751173324767830405187402361174204099316626558971099597584935403052743542402782875844225768651583033763358952875546902603824145454182817467030765550098481820010396336422150971512997133319195563603140888866163757733596010032713963406357561259964712360577922247513091376251693269578338579117475238853100193178307466677810418431962822680018875300825797249455534903769994105512332744871609784284588122109923204069061549395935747445432792051848771502556011142669682870660469667603804826614331689099733350553916922036597031927369033672275985102346658101791563697259406594259096944618969512731710170292002645515217804105513179844893855848655496150008055920384203570114925846825486153232968253722903063009437387688729640094209509205750064361591787108789609238861065214727600320999800003681312309028376673381962220350445982518081469171740258634184261834019675049138601302582455423275242241455643950161958051378155673052243333043267297571488013969201991390823106258036565717844647864708889098448489872608791351744123714967376212407226959679437710430340718231085387767866794898526157620677427226859392703193802642197603074460829262344184800175848716715098422925881273751581848023171611027111788479593337625225084338015625682545944451049241820595608659006611436076461396217933951566549212142445870276102610548301110609707821314389459996383956774177228571007152251675638556446641308998961764152496805258037876425524040802306569165073356299252819366734657708922274521746874518764081037777949960940211306934287629805388851021546937936658002886091067763104100545678073246438446025184582417568313120753948206651109636704918033915391354382108538574180839586391978276801002769080534999198239961796666111484657980725604609162418088027394200175130148355376486865636558515609889868826543295000886961874450965076115768011595651283884820040074966625189751171697120811444584340224176454694703145028580088274331244261005891688813230144303789716480893054594176265121889983184010194488280706042926560103517989073605773945680679128195591911692212001447081847761294233352230217126018131090691360210994933853221998343730487227862441390418622112777818358825485547905843788889715621895550136855023721271493669312918371130541563119894339007695897011187028517441191395087450948814631777939054431411715060973314212100702471459374848343245189196012081852800906474576021088211247225666339936223009801317212715587556470480676322497030895529398714814736057297427415537696784523658391485317801445271829058134367278225495367826218285935809028324333785428664691883409472263361845090918301006841673425410745418018820617948511064999553107332162307842546152182967729327725161805468380340167580223619795088671493782045040193530864146433960426171948047663351387793784015720202746174290375722256185163569778077503128396895961122411457514082331189192765593788483497195935084397133177281533758039435612024483604437672272306047340898197823866059267138647812148089109754871363415760606778773319296024214970122966472808130725980512084893667532189558056121999056478855640557826275876727804695872161495453953205789650664589729421889275583468454199755159590325473509190711928793205826112624904679261339278448877813745868170187418006322893648162460459538373226214076380806465952705277181552652647264052657007494329264446747107074834708184227792864861734861939866624825464520459444400746224309385559639457189858974487608165713805501400142277394636358435859909751459021132493034011489821796228882528650948012858075062431788040023448693122204964947492756614310396926969623341674020553070916375632775986517302013115316454277070704770347028163897074500398780015116841285804183290400700783743421148875361356922650692861645827178653345050852640713910241712426645566244841898390063860416403608706440678116728320808795116684375531005955379649074632286124455200327699348105085044004258469474911839308847515040780113487496419753387845548943972251797802279188124017484814498871626365086210415865836426498986283880943969238912596521710766264244338882585012302648426065413794883520043640459511684513596059440266411676555598953935657081515059009863281757852574550701356015046722501020240118802137911956195674350336869294597571793119958058096631205599002862202760116084962013315817345759511739375196221104346548428954189287534361487926140481842673071336847285205311671737049653177177917150714006839537657693431658270703603603499520815314730482677460389000041532558197149825520048123172694233164934070102571964313380663720771620899182554836778598082615342256625413208235052460058198780823642295272938017628745352791113828041891615037737971756627772806338689620483148075943639219963747545622466649918332841815230313538069792875582112836600946882866397747425505087500194435040505533681577546507188716870722941485810410795576289429773678997877173220056901711982693845503018694622222857669186824790189674126416023266881275526265957304209114852823095719313169542604699624011351914924231265298072781334189672851369614255933017516629757654235722928334084993437771856351891240024113856350294968775435343358058178068599095186837492386999069407632998514388684428189588792918789672063326976623854285817960670800331332678783380822612737505520483824576165143427966616291735390356042989973567409145049016033890621532159878845271258061815096736394466880432320645493934329982055680450825186999159996485866248915774747721484197594020834922226081389307286264411033411938117978785688890896398419539958735711734934914895260019609600816016227738423868336199754850351313356006564805338313654827315311254894713366701292263973587875626305647633654613463198991615667507682994010799070957511339517888989267631717878163644387474079484170661507304131036185576992457195115073782321246036744875660499438017156864687132303125400520530122229955685445684628156824542844691554642710368416755183885781724705601834789041935809265884543369809080019235743169036202714962369930369966768727807710257528297959516062529555053049470539289389857380954594912605735181520226168130363128781708042341674073515516761017014332424864266048846837005998234734211097607777711506334580752994560722740929671757270695187465750061153710791906854758655885410700132656526222256325061545392911715732321450866183814740852166473408384078961303065650658770784216231634353946055120664793421588653786771422325017852459029817328191955351670797852986756195645605285301217687822641518955963691761187815584883162029843661427826694984812759594442725364219663347345085955522223797249213964407164286435957113819076646464967084231041525491216747539867944340890117549861372705701887376552551457345641411358181090269144952244039714187299345927107566556815109126512524321596522825661396711216685238611323397595880863676777212732780402370715849318957806813494610577495375178239155098276739249990945582596076855945159466338119733693310652307557004447702186282554844479495192700666363406698187621386194006811973496628005551233048001916278843971407808788380046378750163878299161972833283883427183267013749238542814229279897233857291031399549734582758554505131132985008279778669893527518306072351347919597399203526697819783019697949256637898896734323399765446981117409149327969387781317160161231988688228261157238060610188205760951076934432262080395816780533035197605833429466624232409891967421997743923818027236147748632597741651467993472977557600538630965340176665082551879258985988594367700432287087695514077793376871114540386108831873052996954716354503869871418729675720966797931235035951608210502898230881122815230103119931127780176435127640822896631868931664410627920129992167374093456019059279068131158612983603226344599917438652154876688067682060634844531647302608996995481163544613506393032094871243994285525331797185937725728679169439844168714483005361194728168733479151132336675575385310516331511606954081811000288310303405403463464544143720479238818855167199224967682210307446437154777032102180513988118775856309292204187634846770520095572402119019206220549652755064432451248676436974650133081482184164072755238245203593774499958702279468174156500279280436022119767860672040173956656630996196233192864257336658956602428844024631341428329011994466074485999614731786281961258067715667101516559398403351416064129871079304143547091903746738597864823255232800514084551638241461619934048994444203237916109859049231987845047401507876476946787567611799944071564656206414482856451204145230483250373651808694123511269292323456380314513331235919991610550929334622913276649811543620073393146987320413659632309868539934657488736800033018304397597066391860559003062659062033857236906474475892780487183337353285943391121374300211801808932148375101663164429248478891017308291222637607780505962694375761912273102432252519605221481393668634347679118700301428744509226552753676343144080578367694824626632878453415457235792352502295431983628917078088288058043753657275528656993202390957708441352641077362061113111119466242216292962205873471705786734099234841186610532647832691597259143870443222693467677044179932417114620834195941981927178455619303520627242572401426571390562637092475910071403331350435120939089554734699601213246697573420242099881237512193040243497198291169936498211581390181770020506683901606298591836286319343275880755013286426131002562672707855800538310334571591200740800814466954285278731173861802017912806093172221090016633201681201191572151774020823735225768358087513054043382432390889576778512096371557547203206364175681651592224437288909179748431144997411337049559947558740622505865026769857970360181435916582812412023627924085171490205313486871713967703110551044753432602235595736459103296393524657436485124301944554829123800793882061692861720611902981607298607292186211216186636307904877073588134538039967978350288852772089403887447362559015847418118667175438997211033011338130419632189648548007240104945822642225831312900295429122047787790689506815165834003127004953348470837714379847929938160269385397576341350338733742058832221257632307882430188376260706197399782268664591621240500758908143135961341014626779824261536363217320216783488100516551995955400216340870313270872226313031925161511758310960252730539984111842805434722823380798545672238333018376755899329826265734230354687080249442318545710598918658569904758943099553277964273568145980334109257356746815997460552771059995573222261717643871425945093957723511108819846065716637258914822744295409057350787839333532918240440203081337873608131710622108132400743159305584271804324484217617196094041920754027688245573962860134072704581829143899842349938367784606992393191502761889464123514696906457217262308807487539795466903600453721201041577002182193994353515102863261230406290087399710463133553044690729582513636255916764394923824762574456476334498290267508973610698639901028056559593789655147177299017292527716162166262284326335579836343727362038599591362991183995731949030452612970863701523326005520832608072827354601188397932653541113265636505061565744382265806620059429297413735683839838304023807935924746496639603948926386746811775463028062045406516755746202538959344811748404677120614365256151986124597634216094189754933823594982287044849012397852233669437242615121492042362663057181502627785891338241394777072504371784090388909763890002382043718615107381671921462508369977031074455223207664330133721694674251773660852652289781063001774314471077029215409929112493997598051478636189502275988044681473335051085772677207752289989285023007246350988171735420019784049086440420603225404155968209862001374148541474400433314966405443849812858241259777746793020040639075115393381837434276691942180695440375978487382907199675626114479994664492248553224470729349627701533654474908990177873769135567890083490068042775634811743103761904657844598519163437753599546053872117240718668944416670541034091294731473507094152908216395860074146878527658324657820937161008727471372884334375371004663616850784907797833906162581025995402381296000325476959244884114934855786357478779767621698552913922432157471478181819438404061762695684157608962228304168360825912970661705220636670474865476525923580088331699923229210890177408224295461818445405658228392782366468130387142687346672665925289131461625814042367659615448825997689695275917016715539090043954048407834343532451726125711743620460018146391694615658463997827247833240658296054657351795790052557030122562758830633872324410277838336927191633995422302453137404061023046239532796818635042125981379374847349872063337882333747965081570137263790980898771332720621771826600710001899144247773199139691774707257632396167301117798101959740946060441266809419940272242969706589597564495514128879242373857191996925102780325280406953533724836947724158012721028056061065493506268396643901919229260440545573900831027736915824865017047051583285678331067324152377701056406334269041499436578993264763853305855598176614665127204174440863998728325291058539173778523464744177312489345454702714903626579522299378817330565193083788698290197704073802489299847728210944551628877969856499700042247145119283530367102088241964989407357959130806626184706530261715910671397181253507403669018155325879634920875100363633780672047343223921838007625702558965851297969153462217005682096344487326708267016561283159474977451831702556721553665431598977183063939347267732850789950510163849305504857758478927604623437300692206214045712637531941569098713712204512985563272445677933099240203014291964369288519468892810387977417734395055789198369671016626615838399479312647411058472716860566275321982583657058221010453314650497872560020567991760236389583523089977420150362949793711905348024163696922374590255788939655610680196598196820887795398752248109770739696853131798404976994533430599184027396896700174541817381953399666912826178659854282489342486262101019802941561398977299789906474548068858784809371136121724026466775173917748918325063621413140964776132128780204179712677009083062655849742186405704397142269494447887648378408405775224873542085425079828759845703263193275797382491562354488404574411260630111743050324474131714460255078479623734570377877329662880820716925714118388247284205253614522204130861667119743600409613489159583993771390780901595867781634602849409410896039862963483089458617581887387113769424253879933331338643768778587011254630468355890588295350256886291630706557068680550296979501021248751295080772823117337257223278427016023383940039120730451958660425599828769852469957719937983318201813391026481271096435230817941293467379424973087002311676516104181873295315520940685008627476274066476952060492132044720036452857956403923647036901500829481931702269018150125018161573226978162330676638917947880661435773396938237986925660854630021679502298977670942229764543768779339846803028294045243735906545977856290791291982955551862324049279079947889462388740480599144374094417227038712443809009733991285188173583415947745524292633130678067348600938025936492056262954271791499212882847564486668428847239953829055242045446583906789909575102488488425932859839689226438688255150545084278748569116614937872460093679230453695852340342373936312588198894546468486207701099894628591637285011667277670647052160679572436456532852925102931913720304090801892089283229631208634428683369496442745574880751993477856898247532146369244612705696849347335078468182621214880140790828904613262622185207702121330638974444459651839544997698824797412311081413881878981602558902614250122050266569063043848129413594216701548704002045730055537290119703587260447385878251083184374619977581043405460353364450195216720880561522219204109623821347582041626130642545158379899301279519913266454875556978723109997383574472661950285618106604537780127152034359026835043185039705068044777881831161043247940864097827455525535403156494274779549487485363066079314086832228643859329395806387243831823935890630375677044112457103521274256507332917087510474991097737271975625360847553198765810133716355671115018117785773640616249549110345768746852811139147087851968977273372450097280408824147792127615693400698966451715088262990711477356192911263497222867115004138984751773634149375110087743467752501577775620096177156651130607461641498448072289514680105483472327933999520345295173206024685328530025432772284884970690923794048980188192645166461567835926558139666657673070581119463917573487491324027603952446902910459743140923228678669071764828411551558922748500152556331347066544915596687310005883894289618676426321976965299445456316664080363184141506282251868572769514573892091893126344086477785051521384955287627049197529761172861063332527831222990929001765313610133483844554728246156283702577472737321099098123487209352146123660667610906103954336431882128116723913374584102144854484235528791486017571061541081574358164047640244652751935689479843558646144604837779587768314338965391468176660862182256390668247896869540439015807465249863207342446997837708683590545866258679532660248922493113796626039014849097167181410342757019630814629414597169671450338261078678713066370576643073006713147482195643613668981932977091423414405705604098427726343037113311254510815393717893612847474624869422180358780857382096529579706727537439968456164656620422645718195641335251790421611541620368880558594723725214842150650843204971818044099691356562644635970124566387476360975031491004949617172929254692654380944676255961643598750909367962835578722620397434568478195891800605695969106562394529174044041568470731327907956163612929939591965646455505325987584688656800170302338052066035789280485533667404079539724575307868975032404888431914988003568854525581865092968019311198394040831252690339398410427838058416688497321857004741814973488611746607934478258598205577256560889699440168610711072218293193591160651988122122767684040527669067701893650417619779475396763107145568385250855092847912079929763355290418527749828136030236741424581979292029848558721854722172197137462458296202674828939396916887459916174111669906624873040264865089450978844321681415590770595253607762671210739592721087799462895055558183186603452104113199317489558195913200719310276004426720861119334087755184408966144625431057420903142129277507105777503032366317850925360923178144239248641744761263365917300730056306413893943566325749607980725082780307502372252038705364954006719848488445474060106803965045638448522313601881380108271351794609287309961884339743016650410760058172455721673906210376301962232616183898824119978902746718876067742896189514599062606699922725628305138350859366737842694400903284960072551401699057469781636094928923670826461405778353356769103890038653891104998505885452282610232517514003237039298953996951957665634381885717653909193339170703067421253294021861220564613353141234910518822168189835094536163377971972261648982491446949740179921890596655358329101053521869619564664569978024767693653591905152811568268481881948114510904497007885650515328559028738531079259328844950411161069538464484206616862408409794488615906779255888715232421843351581049772000613523665756524509332677042613441123045537011340159455793508532073598051178667584831931194712743731833024370796741512164652172478113802428605496258337030450168029199572992051328187981991695572339819041081916757380243630819252463455461601005026432003251731389990809845114020401803516273271445896308417648884672081439828454500767232703251961624146877802492922740718956302337082238494708017328331163985234867792795746615237636930697014911965031866603217847014354672341351662032595858710433189546307825502380137881019586981530715015935270920832719570227441235288822903026205883430326150333084742327322420267539785962937760698159088429748842947098306032850168955430717313045543261396761782770440173104335586189760099032378215040240088069631534474389600047907539521587658348464530543802630634564820089120236937376637087253676546866436847462659028848662611628314553989843929895892633689203621467804750981608500270793500841835592701335007234321780681410657910934381702617788830298635559083975044959739679884536667706424911831961630366593402211548604217324372151580440081051100989894826544428297597391757733965446804944326864899345163954171384233121038175406625391699176068513893912431770157723394247289291980224688930902426947219196720324974308483382664497963164115538957951797751908126163960737242584884734774126877027512247846860269569522054340977866879861038587149799323119919277330620722083567917032318859183773413423703333546464065039745086829299609928333698543626752257913016522608276070563390831684330851935766388497350617709316917364024797832571939921988173421811679954567571475240732198563737658266236294456885408784624187806156427092262557107959488025616593787434514786977939918462944754504416358768923587815640078994749120824275101511985241627045704746916305721227979935833870657505634645862533739689226812898768898952963336400664233213491899478491996946673536341449361390763311854389222073566778990645720248908897184536658766926268549885460821560916927286178265095124653177788500454932949935462369909882487129645400744438495921691334730582240491962919145007047991629056582703765182883133199752336818874511938995765293395128131557107574389549899730772800040689900575472860728450768681852876428309233936149644468488701025066321364018376758484984335897187120490744966551475162956458628343076408633276546129162484622702950642993142095582984083794564101237353086744459213748322563619007301778509413162320872333800102832354768992174826170065809610601901833489768700182518114947258422210895504792059444669483665178463063365996901519239552942548086800887157243712193494096409340941321524545963449474257767832875057141990848947421612133116228907744857746811744814095877020807355606729890833935094869884560258016763333782076342219874860211068449855159292395123881721277440603095335011935189865509701444756769124576865509950941326071923156592271863013745115397526535667277802065172565839158279960235727213918224988971092522157709344384530250069613960657060524962570457047896063652686202861344067095379586433912720775031430837047471332452225262500749585625510918207156312979398717586316029716966986661066483596916011732332205854530850697096566728059324154854539467053012738777389151387290650491773164059049931100909461147006963855296358324132057991072631219388408981662766732768820016070916718647144883202764465804339597310055692345476586074502835872036640676452523089713187582591283963598536276840738203397688849459653018738326719087569549774206495742851685266688919465613104240303242295649498560531090536277474801110518095949164479574672153917282737819442805520846190307736450223812564394673323398988387021803626233696075442658046323157618856716415584129507414207875218749968048408603884589478043762816460630098548226261505432574182813601640029244277827751984109274040344646530987261476917763610989327171050378031956713945751699667443835038677376176231200926319075905721415759682255242886401347477780751245533829424460204692120879529449171640858007520040841010825265186449750520700015826427542274600873527286731170647352173874709728074193260158373039569431430576947243790730336908223811465503566954142095452342579522512878795375284805613267025052982749939793918117547812608157707560003614929310745720921793555273168327787798760657080405327615371961388094559699798137912744436343574662491476241194622282350657731470023282721650671184385906753454821631311537594341428536253663335567148724605429236024296917944798888213509023179353451792404776925771284704458013247764608710052667500656306817574927500227529216158985600275667027235970463053352023479466343768955498164570688914039510040530208060816697122079742991713555861395104731093427625797116393493433209227811793013587550273630856905401263598414308506572072680973998302045973089455725907755971528564642731338385419914482084839108726109975103456778125566540977223086855525519054758090595070488005111065523767207093810552535104639489532847373883347738269719964038888961178758444992055602757951393999036101179927565193668961143046786393264027726882779805882760335558259305790344319842332047189596094916523654367586407547341494424376472765253015290391827966348985353739325266551552371576866588142529422979032947613976057631906808755648294194228790496103382867729809346511402803775195233446312551716813816590614436286046493294896095853669391044484611512975232633365110541221973999510689580507326958748056362254143073280910770929435612249046883561417137888845292590625845799843439919705482265762919099022213526327281723870047536618240920897630723255477947797107365589159996458231284293996738062169508120000875827363426542286091459186392214796689885142869522048189321938918102343731201591310057719780284039645245333517633327049101582351753450804205804767388674311450067839967998415320969267493837608729931548731809603698536353475398484131049008915204250697349749104724183336482496817112082772716421341232735255137155456651566211412269270424673668045122068325937195486707297481190983222092822687890482768509509283500207805330029167784096900865644791332768094303935449308129344648421466477341991502812949734162906533043329122039902760053668342547852534921541303064866222679650407873041500995210273821978819392412500674622980103181105589144323852293531501385464090281140551472740684713984160684461181766362257452139060956324334562128242618495517463995967865277023835535218352999918346235678045844561491615816447493680739969552865191387249285413974202415134510734415450444083701403693857133503943299609026229375022867128158648349618413455835172445570590917524741794973048037098156481042871359493116224645709919660390257870922625007734810706883552791804548927020271505845247568617816540643246117774567038014933646950436183655533087215187707015617088121309371393288416593475988433831317270513466604261842859123011279768087133742391448662920126819023412623366904426288555490171032622064878990165732566650430526672049772420601429069779764442588232665018707438376689142427077511006649984674051484599904602282821756769223614782287881733968747501194145138068423297302760448616212017600100952283344913171179868112289573179164802593006285262943665626055357995707672589083197772671749309222345634334482241622170791543477883383816184415840030444951048806546913592362356546812590127363603162530885345715705243646539717551907081264599076434457530223822914679822048686084529121212534212950738376159790117086492769440164540221361359079373731923553362408065009208772689688924623870152253056391386416073848352706113216091322229793329107137070367585129697613252037830431079124603788408487836660590321660734291418676313928943733594265922539645378986556715149091983473065470491791754226398130025924716682846972071492034201612934516078062879812856860252953010150953750154763061419822929603781967181178117364592340336830670826931440566106478678683770735114977899842574909999639547636951822686603165966693172821430485499859468034262251606763890998965394749611546604586564293711570160085488318782927007812667090872638588485910388507637846707913193231002523947888138891294993444438302374095287018401192552021388562576842969778463019819794454772375344417454347329419294212356574777879617918924479337108342882472565428213151572334623903842583823219741988226993730138183713353941032266802438949936038416506308632999807464136576861103580940897504855686676817529405908226474443922607715420419119506587537320945160824980894582756501633053980824791155109982532712885924195303823787871435030983211310596779898299424760308112210795500209719557798871302909443741136131685815616306251151055502154970671780036709999856863394721825075859763612106095573992789865398279087623970190239900582370243838033996313151660518826804603947931234583252325703470694295856330404489301118542497067712997515053093286136935679098275981506676177714019423144592769971035951721049338562879242547316709951443819589759648402491326271168221659104866736064184844040666007173172768761867631196875428659189644637381972445626933694387509118418396766442852559873690982068502416600390792494361611597498599161884077017096168314792315463916561709131044765058185413019515377704794247010013180954834460893768413612812924095585685091871954189855859931502421942433534910691974546471968773934660237936414637992225199420783968636574044101236743828480795052047165230773862886216233410795517920366771207324855137230387349241736151737033416838743917128670041754899320095887795670592616055085226792230780477567356704535227637417103913541131274878556568286161942616296986511367948919629887358071572511328263420650384254806172722859388199611682556602359030594342132031424859906197694182818818213781227929086356780757621094847035048563301237908111737056999125349191802457152996215301145423284163787820918232626387183310102544499884778662744498160955116931738217979922107346559122259780454927641687104839728529090448851087514099642627317027433541040432486697608809062206429347627755276684542489665498928023724628861421197258293999821331809345698703636610593875497919718290740117116590247767317570178417285263611441565408305498425812242563507450232601122366964209179593097528173505197578617821084457026790099101283771961466279187450209766083461191275641724554882188268617936031242668616760833938833928176499535172328357139414244407659134686376323154817983631677921709274844000870905126523519407663489490100885703186491338017144865640705432522404030543328413415395579745575930592907545889325023356447166423197036772167224145659751396486274639119735916971865982801556932935852608159599739933016043412974373234173032164921582362332115867893409349849152762913900297561823180895310985863604783427655623648769756715524799330145453464720227676296920732526466358353046824429577184151657283585741105589450749747574127547313395463771051721971787579100654556943000413678102644476295183628176347813908141433817445642630048972409961755355426130173576248463446670325646792972500863318301935971238757483859503773524390599684301271045034710922204193337642389012587565320544251775458620299660110891654441865179275729825565186165135471552019963779891079699393711635647407809079350676314032534660470894479318543840147108976229009024202048218672375397647511677273687975505950499176240401558468835861449330472355139366275675934740205195575597993103790618777570009526171520252223398556451833973507447431680439492589248006763728423288575123388909777819100989256906345622061207655747792337761560391240818405994604739103617261635877656052345850313531767112797067156099858437820054487067329584529887362884530722395599913988497756006100778120810634781911458336260673605437470867683499268319435144993072867247884420906217966232512680624066482045510478652153361462528695845831826035631714837037531370325281173824927789535008737733267673005505058032943872885123691053258177714848843245196031878563735736331934498944778240643138908167101728827847780280302337868564409651737351704925602069049327809006317742820370263259711147855926247059481869243621327446875303927823910674549558329366917277044881773341809184233737719140242436731323958528616878105950898717100586020401721821407866949750492073738004230472202345560151432176729226460788360476588808209041702426018236165421737203964876814009523717204445231060763140077053615736257926053479533640946773994722793668419704284956838772605510042286510351034739199923542149847910108728874909390042730664100626272881096795333515089633354591389882960994133751214295615824312105211852742008620888713251294371684446258256061696311395048609149805049769096326272796422043297073684609705802232450428659239647807584315063516434999369821508710996285064320797912334984022505416625096001443736878869845238509869392939031180413253383992373729954297524438702248585659253751256565326559520815683222215974379656348364438797753845300774290999314796611598734657085688348015396095760162044370249349589193686283109843545665950626293963401917011420019689231912229068604083236778630492879576382189485734286513564951200176259062385218962081584827264006822779035837265280491674593693648368349754126234662226544740870760913273844083901279014223297727459005086138389641188540153764030704831034008039826631890143023729248180527772465083195711462596820711472849452869780363540512627972439285873976636308865673798643630515663178040545408022633018992186538456270475715229480987977625879809549085373322528864785523522492808414306668177707716162099686895197305722534561005738844030949621521013882670295303739298044633525427347548878165137839490193210996106515004886335793504920884644072647926811388737153418196830927297674338351697995407887536534307992111370830268578719149056781576063689904731064081431541043385028660470716290985147409072915484733616070865320638472988756525539005968848327305169618987289273291769655509236518210006164448058913854514929938806797133665744505944975647416000591520830914195842728688148327444436524825151199754961234368608723419177697724973281904854569235762154931520486968317820330414395407201868269483425641645305162030789257814433521202776835607562287738789547700060456602072014659385946323557211465234845040855645414477214409377303951333814691383389851653986008675359183301090923836774214409591410219807425323509398732266280978882739670695860225092019012672164834089404675858107848786804565264153298206552234337956126143352325064368500799040116497044984518551446203075170726894507749756179354421429783491548877495746306099962457473738591004078844353801128069299895339299483830365660701101615433460907546047515670256611702674219671975687756511079335346307970091858343232961174510280460547779143501473175572222070531184695554050001822983888435800914555800037627072362551436896821339119292692588119819521196407701007457776829099986725686983536638456877960329996021752467205297932561775939791219726903366308035947147669998385168875109100843697153421421038431167978533482472228384251187885666765265063765514131280645313761310939250457169930148036549372891741634741216515770455683994109332017937855782035230525719183714554634600947448403728766939453222361682079904631028582764280111630458684306112894663942802011937639028163166123110249881269840000424386470516300978329771283207418053130565229268821646310162931025331581346494584805578482185875604089297188369737099305566439496585369830942202334356141146067877184145198724779305411588493650460341390981957392316237497803232221907692647069638508771978026577892494332946775060303192730790560082125454621181843042427798736927684097043554423595574353746024049511113744313997512881240119514609997789358151612669904088389304713296998245620802762938249347931264127715577634427877628114229779660290643136365472403759631492893876252159308801608182561857667762480725713959338537352719386411069921102867079145163119934625328612954410240831268633062734929927909499907049447676024726644009350638889392081225396977564973660270579559372606409652430255382145871158909830477905097743610667520775540086543649401314543603750707876329787366924223069878447022588934536046088333993896240385992886645690935119631301025302711756119098319245891286670629937659036522100038057315213611069999488288288287763332765865072667888836742980160585908590207900523717471972680909973099169938294489644773800624697556338495966819848803919559770114228634517594980385261995853630321317883887277141603268499809119280364755958827314448379746233665998839277667200983823331340641549924439939439043193293832983649978025501437833121482261372076325156003915626902405211320305014282608619152858122760890916796541358946354553579632872157399151395749691642128888539808308307484078936564471349010870214896522792273630918147614975550779831519224244742550354591118048452885265250794952418348815840509080179457441883824682325024300170496638326120055336592251666975148019152793254908172980452575897275285972484163337979081706160022598487258241277086109492585846712960856126769243935412733530140305470871046228260330042455648471164834008564878639232760547546679778178733428302371407639307572302494264379633484214756268230373222209222119872581825133856522347174579428127913654016651461424148043942329949158597698608982904371949624176676088245451832392689557161382953516062049487926279835245150877136701315944609564782031069137309408893809249035582230585593143620914583541583745051476650111602242920675561931056894232229142447507104170530061336249763760496505863509805396380725299008298604851958190121241594273998418708595741853652358851466080063425189633076982838833044250225814634814865343862386127184671533641677609393240632469771311167399433135980244494635154751508633165563871193323143786711074803283556320131215667764156616712945623535003609495304882534984159587769924214303773497584773598156576357499821381687384013595123315085354904659789898645701707672724645550173217539464343043287810812195883845470618637793138759785265199685133625716789126857894374716300113579894422115488745678088312453334607623634369321038733290659640681669234364561025170789426994558149907975688137951849544159776688716035876301233956327257279737788789172506586360034988832893080280422787516728443480216660122563100224668035347138288842823230517285079673380132704163054420875039775794954430982841264274575445963194813460445930175036110263650422494257279110818549209580856592322817097142324059029074848350845456186836576414889891689432049925882875061313854408314365570281570641901300343154212920415394482994826265095104983982850805065181880275468331996106600649277202565445848662935286791226079486842480743041915656285246824776656996023792046877382776167583672419363933444490012820586853451867719912195434622400987539742314545697342975902788250083295994885045797354900909636143261059768582520350031835630234963035347289033253675404206109642533893353356779306095718169642445412716830006097518648137907079628964806640374520686081813535551268524561147611758762388464992805409197804947657158288335893110739163156252528885237298254350349551705473270428869227836388283407916635344759678668753988124343987464907592847785566318375179802245045705470262618915615997216162821506302434312690163143350062857803090661838975701512001228666079951738745997051607871541914089525972292074029218014362624813874415274033410336671209963940560232680482093079669762114289908320557707668859250384480984151043106493950987259093027588734607688686304219442612657461204148154532441415074985956923087449907890235397100997611579971626357207383599375051638715074938855250161803882952303312300712055817662934114127349733817656074575771132573056914626606895292322433328645660851330540588529222794459198808678159886805176618800195651809368575132308621112909185645222907295146012300625238812752848083499558801269800045972258842476006741073392108669397140540440901700303618537782095791285994015549737132622934256097032149610590581065618025142201049958252009993651741886110327924051798586713407519174869762780851824672470602509108871943176258409167957169744401457374230684037911389770719688542129974487407075866120058195965148351029647128000321682641527647302317407263688512596483365176127816829482093090228696781131672715671579826470988881621580715069954171849855087717522510603904649941703004607658526706019733775613640909590867226924726484091917958638042823133288893477184709857174637267535459507585926343355412217482119557186590957132811300858811283903478564282376109369730295844388844981285188180881123836733049463144674143963009662108298639593993997110471343573026525426610772417739410488971384396009700496940557540373634996625403009272687770985765398231468497144983338739103224026989843500800714722630952011919443659903991242092269672143341779483942113133755156378405409887978961261548937851584048803512224083309183121555083689478242079885461044951619679550508247317311494271241665596058360236841934239346516999364976073166469744626091062789566848094173906105477579247119914508828839818104272268588364308609660238821735968428032382253326856558751049458960922114109055332951135232101296899814522317364804068285520370816367684198366497323145094814109016723044998994488907041724780509319094297493985026152014866142445726102801640545197728033767264438980575071738124109649631360710590671164233106668711928360078742007191759824470249720539935893610781433398788195088302417345068982323649831786706765431180805041080541476991874583902280701178398327217355772547258743935164223743254608572579930885387096748676460874604233673821344443424374871443636938655889625137862845097706604399756275844093122932445134308081186884961275037723492097804636216103119602886661877784932945430327905100679421569181734629526589526167851837502798720156914412376102014181403328814317135937460269408720285328255113731459029629746325597761148757562941129446252978888818004465743584459715265004071597380938878732057074515282959451603312801924916687449796816471893936186371182493607843062899890116178477538767543235962508666807451790917121848171244204084825420594979999261741132235576646349673054861204415094670239348931769183013601911256997092925715142927426398153067178007056088165007772751308209168814121640187662077862085011216954850823994885514743857542206427871656293874736119813705851119555069808909688674600102831436826114568148969870967754344091482958647263285072562132590283127465384433477863432378480577474084796705711537873420317245256209907609214429281149671451742640668624909792247363905841616916704920890225191330015145321807778061708179545949861678392614448874160859414168193631590009543262480386695410946636838636502875119389708271871197253491360281458819599011442248886375011020665447902895374749518646532816427392074328483631943630860421759509448950653873170860935450916012225315552581375893832388150721384557631727659836467815814947978920495100721352784607667284227281002173348380915609192072321008872704251415364210766340660018917316957536433184660240355859964292231874383008416518331226507569864569102635980426837226556355650410045914077268118724482321860219939310605698655927356731230221032156265889431799306906205289106305192466635432305910108959814079580365463155001550666688387030474080818834022641966647188951578536610461134839958288391617670978778828771655185850530339489590062666094467022425150311919879273284489789065183700154562047511018477028643351238316573486571420430789901601388357162560909162841831355960830815308876672365644039931773752802918725858923552286033505745913956007977553992020964895515436631850050194160398115337627504876341528881304640578415139777693593220485802434960391527722076043094651424259316477190331926493413180370709292963925693712520637882942644491090899749134608558240079440473638190295782677899021782267289449622365921754320778634602552468801377458245920481290742627540941266059096213765929960311115830621713341501774621839353941689246026125649112244966586658736940417935989049655793185797723359680357712501461681973182206098915282408276408975993421482564154218494567028810514041439661645224533204411899636378187771771254739138669383949257548014969550003291632172933182418698443404458203847755306305146189559760756282671726792253343536009427667576329951176185424104715146323170846194704611892500940326254436679622260460280801410153936289983370235952343767888925234691952806845447735078155537937870054747267898311953648388415532350189697646556155125159863287842669311780392310610995897280340183751553698581159789573664893986653266814111944648060606932536203519288454950593216791957634612814674308265097573285344979737467248121692897690061217182335059875644331575469526745151637266027364280709224901199015292399647001526144011418696848949743614998465824973397289837116351104786626154428535737604787535042240229708968811240474393654917709977453910644911541435809790841526244398587610679752049320028978512442200172046623056477133468603267884090028976773004653579919666221381433101606744040735871156914001173491348795146101166444031762823307549425037890103703490248462773803581443483761904944852979628824741023469420347244871532768465443501342637942892146794081283782636008142905048816408002001182893600503379393469128904131139101642398199291059230558641950565402769159560501188486095077986757061450702493883190611941126291241233616131549187444589046268089754864240750054223985990867290443911417136645230438971262019174498885311759460185906087158068648461694271976305940474348227189549446907873234653664543243660682846465749119523408138636214034299081910673139649722554236565271298344372087022606894286749181412931964543943182847276707782069765321723008884193686952502940464117303032691092423896651992342491985400986099374048497728877341901352467307459078694030783534157068619359326928536284706494513989140826380379881653690341858073694223717785970452127939428531089613441885879262802885378880750045538208609939572323927857709796039139225679344307353965894652779361610691247024479403321416478502202279287222847294366328709746996453802469481157537547966178745185369585654340772284006893506672448826802846705300710634599366600689235385020672503697628513599648572142821271852001833345830286399739697653925779643861606608841482700279230313325117268616711781880081020108564295727744138639647331451718865914538911628506188829906327693430724416045526729013279738957124594268221716078612924695755737006846598704394010944281639320359731742963634626954342135543980251159859782799105906158166730480106111640739054720474407284128608298657911722287610720681527006398835936547788137961992889496734819913483025714555008215068737860243181807705022425536375248124419212496756902184422549538556202681900266372036726689840209426185386868659823035047187966996215909319360210316611074507853231200642076640137643497137776468178339015934704831580538735591877763843224789956980470422297299822992650873261465015560829926914952073897626761578002085192414337679097097571512378475596094218674521034008374838863328513287482752710998959260154604835851294817889236671681167421633400235282206451672016408960007723336645251724146051105547832514116209076078472009243180981266326618218052328743519307094045128966413906968725767699547210613417506220960474484902562539811666999941446678943217881478449758702619992206020118706393773475407271052578779144196923789373825546939270117385114035285296054586611206740613462485973221630150322677098774520607958275741786018297639973318386038617562010264690936870427490129565712001308600532615586732924135874422801814597861657386622921719891170266357172669980941276190763580824720527254894067310933323155091477991188548097605833909584778225512046517299128395586508873078797680187504777593789069712947333125282849833118995443235848266382827627276858350115934835965785588845013329353646501526175450454184038723942772432081451358541011614666341027258099855119925811390231585672276671548353305158106176848848098737686725420024245528345310543418381389871113597613701327910588420435903877004704677629609300190651218544670473176547503839063500064498304493154796074315240894316075537547934939558109007419721847461781684949989294633566361133040427839466271788710981254915635511017545331243096433619144693439971382749414830264113180708933994648352617985495347261269129768527801769452246708673071045037846982960802869031905677648316128902450980714580673046254847984080822597890246370792236726965384436569732157308721915499411356996967556407767543414221908955779004003193869998245757504101887653537149506524548763437453968818758333727145361719032263601118199157861859681508104545084891659976541955979949220907080808183373401161662840676919747387582180599754043074636740473874761349828541341425539227897844486223487952044196061808752218944225170767941063687571981094701563739132782690699883781403914101001411681926786978917302852073605034358099322521412234530142486595388170441957652624508687479173680415359311958518719844984368530150185676089366878258683188172289621675570698989472245666277133828631533534544510418805229934438202031616822990789443647257076283407337916842629053743467645185065380715796952004452298230101962833315122361156650415233585680437166619298694804024757490108593359095980680004654555944871597739497539703000762655498299132259530992043503692918487285058648923640528938158609964951500384325686219433733224744102974691530886591097925499780833624384614980549620992989118780885041875467843772469454438026598923736274706255051446519396191107856032725998498182396733592700016905472886307642298230171723079423723135603028755778747479523483095392984171880101611851589778641774448598155313233255156840337499519707889477213780134299867654055487750173779791663894034429907588489280384896629690990640529141188823674074260490678097858401603190120478733104688874858258385939069658339348782080504388934401160505011184574425263760343246686781908557980832522547659710808415845748650040782021995858461477028027884359192778859308751518034714155452205795632296221993015987841690280230260173427655623160711295300922213043183338463999301126859106020731465557110743475029520918896929299792203179671839047650248090835673923109927474569159674836364552871917535650349019014047745956160287242294466192799989879887424776174668224890610670980296338584653999577430595051952290773658579335702709331491465711630152574138442322080835395015930814782081501745263229590429015273993385375518576168633700129176692695778706448141766489926747584877361712061076245901361368537775147120829463293830331544542092286727650906862403335242562622592615772755244360765825857402855505485521129648707061738393119619161333787096071775541123536714726330392726972335526506129069438818764339478685972819140888198381649165646847141701493234452848275315522535139657605916029959277466934994363276397049783398220827852570225225535368050443312506357725759661961545717404845657871949654610725748731216677245050239841255701849798797546917608855246937202486753190380439841235302237377544432303594198872821839213369955474944306461288813639965103918902474320343913522915069976045522932460727802940278741862101509793195572121733263882272520046260211603373383091554173632521777689145938817977219508474304742086696714919745242507951670921882887806508499601213680369722020297273681924399900079671911567836492082971341462596125557932828936327153646941722656950058848459705244313743806906117273415798005382210841137227607113533154361622853102903406240923224616191535626320093559998832688945773186191088856596874842365773036068597200010109004329429592465130958791077891541821559367310905519666354511875782855773714314961362301520186735585826656771846144811667376657677610556030766237194848468277326841769022543147552183865258390563877228680587481468611507890870650697685617227668811962151711257876107524416251254693070799001615242378574839825129379242289295893673427824873603889869344353175390195876913659261961555630425505336900732669529414818370047055381053362906197228886308711319958279599453273173558553404372961674000916171181589327193611018345167833482431762268800100689839282557932713368028786492655085748806899431666505582580564799244201249618648892514394224507893012919441101063909694930471822866734640502213340337243959385048010307479469596297498713301655697150783490085029991352555826026080107195907596869871472956115569975560875231403907451470064958339461025546028382037398713534663883764751318597151752151016777377784277462225413515561867834000338606539438066462271255873728657728805592077232537984071307191228441290513506927366391935823713983902347352265436760131966552025249818508039450257578540722339882290521895844449611128545633531049652689888229107042269319535733104550983556233413054645486911080635842378926942927965239308335930754612129229106121647421110477502467721130459577350844963016028527237582245062803853298459075186001178470434071345271921652808114675570859869565042919322554022005732811298126255991645824951245192197896351755051197118275912660378897105168864689206757626672088790633881213455328432090326317743248691962262767368702848197399714932339944320049774072906086214057073477431039202722906895048113720316993285346220381494814303766122188967505914727872650721945745884251305548826913087354266647004970931713613708647811295698509657515023212780838554991250574732882854173717963603150559069110140468316883434083105496565139838788324092125785855734185043099925679725037051988342253758973396778103853873420122757531615327070051580801101231672496168310403397063300363582818837619625474893729267371084066648388505925298363638208205268607279255180359722924151279972748972238860397331887348474668677108249837660803097392555779698919250401428991688942175841789568987424974709000013506664358158710036346847464828853374579408316934133238828508560483180803291009879882313916395234480264810749137498005098012743222817766723888599615145929617324307525931517111768388314704493659047700129945022432093104065461473119890375779755604182242938325109534959233692491190576451588656039292485260490735954328804499655338569545505055526005421155506968661445542005893160353133097487311715053317067169388204759706303023728103038270044494255162126343562743546948576516275644507427026282045160398407903676900053195692100149856935114002190846421216188788030334312854550005359119543010208087434974728165854047717196655546278939296736228513752655458927940005404164897610566182069111771795665934454644604246858856244738190022648327674968990778353227247572383867449238770043332299638541900494914226719116951119425415019533471414046494708415225897418657660592216330255214686915156457404244950180062970928024053710765218651183578658746755967368259844400928780530851974462304575769330812454680218563377664308316505580414549787207177534649212020203397946083280099169090391896411183170255969725124117044355229805880410718135005082788887292595782493918567001710684814329160990356095557014948141305723003557767324350889743273654031920330760285932366407093636294522478732444949901083388766899691173081900885290829789906474937370205298212758311049329915942780858275204928752908265871106191429117824396528889722742802208011687662242680218183061393930471490559584223029588399432159934012749425895407377705966402973755207850305846473356429491066599974722135602571831557900860633487061539824108360063314026740828998106185338770351163528420948919497804703630679141032922601831888989675994483242384265202583705562635029403280965747143678206228720768935423366424375686727720609054685328979711946719424081478345937337431630152434729371840513802683621715669474135407945526541936258729538648657880755526957547753951234751881596502530457498401108023638309868074993001224042052013313865533945195072086572439293203987416168790966844836619210971227546456276506187961251573160829268451116056436803562260693737977187101293308243210049095375250273173589005221937240200415610361196235268356281747420693427660364520413417983797663653618533601390403241757806274640600869167226750289801383192936478372210217666337955438594146072494483148879749043646763313750118768549637343581773596050275533782651114926966041995978108993535749807711185132127802032071118919228743502701591963656996043273751230470133615865511470002101186614732791817908502332096491887653558027506381889517326540514123800278109991287703498480611869269281183860460126729258348100223427483370522800147743227573051749366902236456812732785110145074677614934670573013510562266184072028595248834504578859572486715850592602562116354526789020827340813985244903021820402842986118086794307449697663525679357673758393012260660344297678444016626824582454803315015415654079493333937635072255283862917454826082698513130843371451508502656381772579403294284493276255683802454583394898275210615353847656997009088849187346973354389401656983000481158384797305095814286943013907991990010766900586285862050996209717954963809323175634566622952002826982960820716454866370119861382348238570264783186361613055826753159087683995496622942845654145745256757200948455216073958645750746337775559251975615162458614164933971076676774543356475568747357611564307987028489513146194960526540598680014278642339441305637109551893467853193971637762665351896284488924244985867888836758814805484660108171889319627850237915760787675157408113066760878650882437111379337916672265049316754316517094627287736165088044324878771912982103188710186892621675246304299977950989022087497439660548679731503630243719010168805801046752411247359640884883884579480884281833228409897345787170979570732710786211548095735177056561414068179739139125706965139534217835296880566712216278750463441862142951224996632639650322731354457822894059944010863288421133809424462755547607064435485840658405487912040842124966553270503547538673470773735359562086857532176243890416435273538392947786966383895784748022297668912785079892733548473023080942215983168279343783356251136799493672690217562608043469293848602969660188374269347536284511622901260949102618134856193228054408260512755252741670096108975944178645728678515818640602388057521025918644614834762660488501390694967949272041455363947015141839243118546922915155067300500834149376732064326295105771420510508726357179702145644284102643015448858483423871742628786858756447436254439843821928595374361725932127669437703945337858112415233859623121719271646282063292835697508728024879751296428371071531793798751602228062107960217440197589325301432796304828812036291438845159532077837877160618773342248652287876955368211796577376378421728067407112309956560846651337945050482505633278019583033844003573382214854563134180626534351774696030745450894581546084983858198417803613167150313082910405084469095790881318884771342014633534510162889056440161777196785645066123161699995158062937385190451653852131531695181797916454895363295253583655414503637827554258306818190007857216214670896008691241472236974609931390832099768607865026775122437500653931839462944768557941638651745972773311413528100252543880915364540490097238762887969545100005015456308039191529348270678422466293083498659252082954043848046974956726882806446238375377687776920468594023781683532031339971813553417818776938974362308541224348063857219748311072190158464620144648502575048299645072943618608966867423590479393858441726150076833811804461660938789852575806920927068872374266189632065248121626946304381965067123160563469235572191810872079879556559851346814082895653713288551200470429844302665130067664649414771166698838695802273286206097131378599977367227459831380160202332234931816623218839678669201143384707394431640535686503455574074801641474179368743560075821869193027452108867081015535910525573200490894930697594511651114992354908990205036937703479096786434586294768535694532127992222744065920430899561535320742146137616305397611288630213439678226949128176164738370832233623871633016866298040190976369388610382339140519920890767397392577908033547821737508431529891076160008856615565859309354770763061067495270881362694625418556498583808468453533322611946966850847836093613129429470330374238124605505507513933203354630777169483748606337996252292021465082266833607290792610585959496934193973123791906556678956229131165252003346544761568513427578505357989508726794487581547049111746146364304051477014580978494300336729546076020904099710095903373486466372065539173031878297127783323006913383827057694434196258914952840918208580786882764337423225331994809825745616241503322626041800177329570860919445508328081270552510735971572608026286069218397547695493823916209845711231575980832165114276783317994371852112842697839006448369538530140469678754549093325235598959146484400918040182771566554625184103934196017609590136390153861742873024914216906775409296529705864967726901862687325538869554392388877537088473286753654371976750367008991743996185959181608762436883736267414991137681203845286737111730766058817233934254985604143277206457415536483926780093081587969927152715609208300017764524299478009220759418917909338616506388034434511673049821652631584206740176349525973771918118989593440253892285325775909191862756505618719711141669516882194815897827638980215108894614948143905177750292604319403370675946488730291501374248760434191522068485609499368043360452110122869244915470744488188092000664818001530400667192876811502966281067432158635268045401687683999049837914736609229768352943638726379472545801429504980808137258023965407792703350149244640837849726843052408324731000712580084979377354730034969895803640930787563113211522565281715570066998430547739324179287897172655307199584753676274216626837541355184806978283679043697629290216990136933582010085998209916377590700608081598594916274289281446739318791514708973261710729594592850015531878956661307718275481120231439725043144562988849215570235856762979601596927920907022877673264064108961729966771132095200469989122644022159875352152415046340095158365403763204913661272135609546192562109155670335861862756729676640297116839380760005658826969818872194454698895065793476298649162303099447659805390354885725587924129920375326270727302969680094164829717964564118441195374152530094599112663981257184834308241348345519038058727077235561263700870629418266451946896787052243184188267112195257827187710432781368398618743419601766894052102811055652510938030783181803864798706051224916859339571679877883962300314680456453323674960257266166159580004192835827376363627260522337153865656736802928970900898255212101839700025799262285602011341468575544108445132571389482227990342854391199321745099980425533725320657079840842230904244348156847473970803316368539040008489186394048598159469546084447267323821938493874689716126155353500529353550183862194913230430108668312364826779480952132145134958893109168824813554259840579525629933219344076969423130093500971756553277266896913536924005761348406941545746479432911542885812392384351368118126016407306891939795468576745707484395309158896124630574536508200506452684916821615716366930050736841874847915708232362664746137640610237010859495990391416434759429798292876988577838994791697990854061055442461863984855151975890487756073326562413531373039915336104006783544487763384974717873731262271043490163423071288425725214778348714265254401320867445896713095546591686575055444217387804049565767832058979938187843507115014388266375299814444602029655428940390253286698895102801735325951656274907173900796143721821858509184389007060828912868662552525223460045841772328806491348790310335722417560666128372025997850050341344548100180114371054434727926964301469017629664696171001573280100927275955125064694111722454210084328217081602525608981252050473244296481912888968431072003269379228680602477093235064893084648179887884363486795720328150816228758699575407491141113486430662481220135562797724029144568758968661058077652588982690591121599095735863020771093933527589815032933684025843705552626128250001400950461034767407708922686647701666597928227892910765026648208671844021151474665841063332129836131741126013169203839472608453137050406409920941862627402061979583516690793814586451464033565855105987005967292947027146796105179678812400135996581243712281878144397758389326398274696236051366379724107016290107969029854222684126766287339998081503365373552333395879855004470482887716780525849766211600590552177834222706888031529803593239302855619379520159997312825580743892781134836599196196880211724602514179576295753612708779298855759543908578135050537212421226721865061227124871190735428394695679369229479677354382025562685651422191224533893076769428756534349680935965475384717341167118132661242695547798082120217070774471025945418833881508480666394336756460151563666848201371200282488648247981843760215360343233875655190105560186958049150623461509089073207627860415034133590892183121260435579794536331587200003221987164515581058367712508815399675111352587968364259807100312151234207079235851849628996996163459213049164113364151090460268487691134305011438820288820703738549889793005187293357698700055661049221564118825266973137623804746255525319025048111720074636752965811754826801599236746327789969864520020769205275218348438071762177006297052502188584342231263693948240379640103789132655369574821023554214871965069065206192949769316023816393813384969406676422910205957483821081762645881818292588398051280539066561642144177627532568437825828706725374973376045448412803748305169036213318694539274444672591454958427307975812436256562538138077778381257507890821341960981256352848223613132106614859838134229205955406150479613092663875147871793628345328351086349603302760423175626418779243921559389121789158615126133983983331242208380319778809750615238748744642254548713583306886347813888214860130540029112211682991986031455752144295446129316813511920989173885229317391143845934488867604629535709537986236219279569089835701734238235831410792692548589418116516075030646871268021544726829263395768980226065974494370451113869487605130504266735006371948038651402820191644879511694343664885085009361428481773158901503008521742541240521902274048150140721302007012883499306942989144807297162629306533184002617223226611401701847371929769486390448307165473517443959374977875025397655385266023007622044025776993942906823849233602193900135849724595213692296293998113606572556148317464177833457123256336809992163229741790931645381957345099887497745131897174062186552941139113303940015081270409827540381539271727296413941354296348646459200097971510942624661926642538325577636128965135563330337771503242980664176147638776459659010060420616274561274921865830959783685673440129611553167689375812376039651670017759284949387520995094864597020310107235180274498490137911035136498331142332257864753531740117209429886649459543866208475235475701957504639721814919123860298696383506954179812735793860491712529889268696589787545154508150274009343137929758977897137092684133241241129793276792320001520784037270244174235449793638588791773212831608949257207662751233601951410043079606732693589574051998774352322188201228988135476879492985420392001248077356587196475118073015154468368352121672320590444972284243192863096325186915966636722654432466308192083688924728843699801792080540837799626664847410877916115258523231669923624688895437263381048021908607428077444657292950846193501087152024656485612735791440048939077539257065075673554888864504695495496640404924072413728738470976901792269129566737346782097114819969123427932124069571800555352060849476206034299858518676343640750102439698113336129830623814609484826673814348924527814643104330646042334645870179553948270890500905813661397487226997081970615852242955350301536990340224976785744516437694396040680567201283071318907257625465071506888250027107043898828829762114580495673459229841842746932643265444701720815168299154364343293205135160355783545804848852893174826529346096382770621531425376518269751343570867699707145350748038583930958512340565926668554623640406555681459407259888485293982340059988135362222611498996909521470514223202687052713787309523197588013588814950875006624789399824728291737495281639195390149912687288706223660478917097504549633567042559053614878511472066252380827955826783312835459358332319985829109126604637967973943171815035211340078562730147859162649756805078446351779173475148912952627480764992959309380646510511996844074800365885484662821706169137093915767529835836816732539798535812623642068451487149267632565581272148699085790404134010036043054248121254737226921606864638954499256894006390357127459845549840873127483951854590374293233732812729161521479558111300064671278016037761984053265826461546980036934968357169164939207506852046092392572022879445114351433051611877116534409889445581361097853454182627856961508656733414304691043131778583602429715373274211301401493783540553450004739954308381992014770379444375595208156225762821938446496856540824362459617316709001168667047255652568235198801682664447100784107615121046232875614269165479053778027163290756395157740385906476249431291053563074658757785270071620865320000778988080532205706157069596485183428150985250105196777393427488147679554911569657591746268822949427113378440379784329356475179556750136378954965813612629952022104282702638183601145085623433373300161398205081045297115221278915302841757312438324708345736208679798816239955739477448980505574893434688040442681398877852663977936120247386205338517533420719940983405337686897211695717561373300164626644822336490835024602685200147173750489819526096125153089353076900938057130334914472184827470620235783275927670035047435331393456988979259247903682685785654794683264376129796862775669412856764572017994863467719229599255562503960141837550263486957455724593267464284600635488295979686101459848737061940107113257531559694641710017462509235117190403053834116630663192670320034280020068432448274198741816402240644041147588841334379465969060674264128233732640245167535926571210238151225498244032963506360507177784685258054343095551726991641531987322343566738124590174759693973026365725693866284280693053301279976132219397893858092851015249511801050623927856443256503673167721437886439877162948549994098329971230237886373692480113020424025446169287783997806174984139476514062883125781595724427244544838302270544182506369782117702289899795193669885889478558662933680250859265871045480557337231143018429812298014901835135117055565335633581078002000597357935940410975025526642318702819420763679468039021639269179542652111111619062889402560544696271973943431944918032279332726534754855377228096657732780264583711886771433113315898790185428074979144811388679273115750760531823461348093981095015995667828185367717179047318529134336645878957562838743404795262542754036685932890051377948213813372987345704712825027558538734725596556930006169392925272921323882378283488980355600362466932958782041803315829534185104875109118898321873014302113581641902118204936072622802696541058007132127379755227560509829042021185816630807790913683480850863972301138918478977942957693522413056216727127399725118393745824925990769349537654522301148872864298675415883383013506031491794831482113286699060834048095217451624837354060626426294408536349278233195690820780128584550792569078382656313054154970846575255670748692377471403211795922848772859193849893207121083689639811722897290144003515269097134063634793933173993527586796427741914603067176023492232667255380583965178686774426028777580623383697365269541160049022460071638795976862368471643061884491406304454686999781589794139565720427477423847961603960944985409747333750054257132483725258210348672219533723682175275214075562729432521096122587366857783602660133965356782874418687271457976510720171239453231245868814647364407849445726099556631430383717024187886108841511772776726882341795218309104850446780107704861318285749725730991258987285624433155388369966144817654762018180192912411593301720147253919185162765263312640305086907918455251386822620813057708602781472206473566697676115140911935651734339806746089932553798877746043348113622076632177877298315610515828081442660346520633957793334860909159415688599274297288899266025224455539610636151955777462508860664471119065769277344827640964345991399734920063833864951649192638188771191859823810699790897092590901049365176670124630970149638278990924406984683798685562499710647461762800615421097399786271786294025324993405377230159617058126768307225852102919910514172143986657347781982187141073185966597342855947967725275118719152816961231829582965488404057611233762391260942639346770013408721647209446810664733214500938556577607744017964632774081929490074444169180129177928516578371277206941384899858335252048659080285819554673563690242675302675823942276704983366629453199166632504382106260711471758598704676996994140602271291017180525927126949816960770818798209165449892776874828562873998629022428415098077459504241831958593364033747415844732110652783542327575001066879529823659343615540236835090766413721712680296216880941439986960446653065289100460539738750682095768286022997582847323995715274020269170183243025932410470818469090110433754591669746008731465045291998205251357792562551186891731063229037293154223759529692156618804190494111694535276602054810916778942483906957382689735408623592501736891494664865891560357439421657584088085860883406200456398532160673456093638151018493196690427985600208216059497456250746396241503836084128988472208728734601160460233059516365682515088530668607789399402588611408719698136954778766111115297608066814393711219609559251326321974942067894394249348343359349612107166709956159494772322208232348759739783461934929714546262321043747116117138102653853832903401514935757640509881890876184497676417092328505689426703201760386616689723346444272767468959221734305712786210922991208394340579756306588226227356365818782674375019506224830959894279602988479734950033031749645944898553145708613634284650212348292268556617777081085885033290940201405577871991372267047952857718242162015534623697349365985366901797153717868570811892668511787874996686216985590365239063343261775992725709735475703865464628981909283700365750114585652418018371098514220504314830158958012748336118346886558503106089127186311731948225461876334923370816425437866271717616588986194548303010332825919992477891136606065883852813414409023145025669814699500995092082538233184588916680596961926868828758118540561574337650425985342817429149588493987843473884170745944404543890587942413235115340630198649790945398281441764053592560479685405116213361664718241021017300672551346809976428341282106396352611516947608396497354787496213359186939859359951838707272794418755650112934567414470174871045942410534226725666974470196176676784016042153269809540480167745138559978193778788789240890385169529210896831804198911392497185483296762512168925393204733617135860157792918901365972339221586438603850180098229803027492486779487231840542464038139739896234076341811445551854768356046846266614317251023133629488167277272280403116006260208335513465594634095518080677025983604212690153339093086523961397411411216392213592689543115303524710582842373706419900352952380553084521168380151301274449613037825418256111631914832334147850203682008377683001655688104571979626317222584552488508930870490643507305461955267210574151489425795170212922730179814008411599490836134002755699485002035946180102555825027787149872876379397264669806598993674489765888347087925434786578762895982614252618272994202609155549860049097690577234373278349437363496705757813781761036395605414078114161970574758435480555338739590650730937314826798400883445815611520674101912080511051414673248299507523824057534719867817983453511378927994241646490680151463870411937398501827389649425761842289102538792745500425184463540094674702102659325187207396115474811073831685333001778101682405541600334211648055876774088828090129761353282119637296466041299071062468164881031931625582688027935045001715288721203780164858511086915999696597005718508367217165418579811448853309440493316815073707287014531677957214220051888466641422072892081879170894167888545619472149807154558260325455308882166484972304047548830980761298689224613278462095802457764694227382885268097902470818852948382419746553389576301014476629046963215003281832817219279305717129295784047650962538166603388185694553633624186584714935365729010374133037107337110041239603086595211275858252453735185576685739232195585132095835137259801535685183056762664652542340033701236224897755949131147140087935691702951347775592228275206461467667745233162580325910891194089171177124349418089212952608370480646922646440635321308174551403510093492403700984137753438088284939481223040651457377192253513568742091255777037443773654350682581064615131782255478339502951243254261566117603696617066860207154770643193391970505960861598716260424033329370164847037478245630172731181261972092797690306965209308093664343729230444945254140875618939835941531672650963105184915732470908404502275955291126563991991153736333653794306195014631213445391075323867272277523598546240696573545519156055937672017664231315660959816544044110213895317931873204185556648140510992360237824898418084888449644299006898927931925299426247813424652119223724550283765126092817428965595820408320988877317224660133590141539609698723661495669502609288960726007288934374267453951624770221563642487764458846361725337412708443953016553215226630547547066131417883446463962559502768391077181111585232185515378188014995299091952186695972636132049684501907892290227879404306618682398184430784338558742377886547309326508720612105212463608210774715191053025053143553619824253111519478375517873136059941802852644701175526202364932798525052195945554829446947857444191210996831482900492429656516396302765565800291185803719932877581011754987526231648502078509823788168953708242369427728457311775124202740998355518280170934773322878525571539778875078661419379134843454537127895745624074603499507020380754654116159728109533657251251057314321496690837884003981049334102659966847909219310560404444952803509514726725823531025874771794203685391509219605294406231033446000571097169106682292798653623232757317571173154127633279680289073993561048887921567191853290077267812990635561795976410601564782027142774973064972636450439300771835931675106599440859641508330373864565985449833451530683903636243790183841262828356108241076898249185359193019930245288653652462968032891294942855568200661111263975890298033634811746812038257436952566963717706396282776166390996850900179733360167030447115001839227024445636374850596237059794324535764217668835885196638217353913167792050356472320033020083164799006681084325319595474859073999960159160966584736742156405644607495215167680049554563161375728560547181838517903526637642553269644232129190108343145183281617127470958381588279628972934476484514627077734689035792048161812365900712210010804613767499591891087469879452060815767434226430473494111579659034653146545402110747919496732071308662570697881439581615478706252397924963290789317531051025330172514411830386689882147870190153941601537815947348607252843331597232534754186916469693723720223917059644347785728423895928731394191952533837062411459492587326307647310269233464189725084854178704696668951566630636203520480148435498938417819744592301475739460130958726717607763033996970896058306928648059654869475421686038694734090258893374266086272516259094874054802363378678476808543473613172369740917873061505429730952021031574955265437798254273986752558793187913445323878460095612397612802512178111495159995155309315526903742704344963934547035044536870024144585692928753502270446729932322802517466974599476125623066380510290975773558352687506311898914600502915331136090979168256912212091797438085563780169488375225603864284559357084838218409317097822660253496097724430733901596831496411299302519652261139424229436605502866528762415301354322526168977340526284447735958063077414830993950495527768918886689738026348512347333614616334269241837997048306001206190998606968200963319032776189247434880325826984966725710397595812744750147539290012691404208093709270199110135940770573012962554710679054661048539228263334302365749084716547165608472935969142707259937992043216983986823818761022172209759554600924325922253814037760314118169999088814713420109127145083103088719022999493471131774943886425736128275602606320843033483703949115987254224292731037684379172802742367980669147435866535781175847355262775995318853944333722528607587975162352776100606596223041356353013661142892625420165570767227676720294268962533544564058743349227754531303506148111030541234712399606643855780622936751880697337290742323952749059002883831084921774066630112544436550424550973029499623824850859159453780606212921130344430137118792121139971637177745899219814450824992758988788191919196731492324950231393595968546913263745781714511575407956100398523062170669784495842891684817027422672040813449050195707131354202166174607843045600238441118347313963162311293063597628025651692264961403330979372517563741057555077555835186256040527146208968671181779659844437784345813571285849456472434927559536817935266991433188744462529070655921039354285346326521869552561349916248468355422519906129987004164486983416077840780154271627267642046664441127194172683621800903875371722037841296348746229225201832992727662802543710923321196738573083329166123187006691959504816874222249045472026597604569026553035642162468771240843036813100782490295044455781023061866407973624819744930757849260518043481916240847739263766662078031701216623844493812173515723149393318848615180401248209452195893817596397249136182607462496364079886271191374458640183603581474796501366332209097199040268412325002806153241182059686236186992248269385872650365042502838065622528615234386834213496690478686948358537125647717913036269642804185340576015428994903375506077579095864647871957807032272447367658014951049422946456695682850201542007134030055687873650603524784646163428881211906596929001295174488078071401303570022140305565246127038200078182299721944854728563077602251652712236529341170262884881925362619072346614206552247458931810165969016306467605918388742455546113754066916887422292702734038513696134096136662676181621150751166303154204112008103685708771372720647382588511776579072973467609890997672280450437582352877391374293262838221181269305419964944263365560286628218830214853405538101014640293098963045189648909460764632705054552792700818726085566230529243794521872995985481238911988972208242099884451757651644807569221238447013970578885709957781206747344071060086054578515051995293183821496297538097995696842332539936448681571055951614537278927775071707093953586177259834638582023564317864791648031008717475121789089125370687660294698992086343811157396601117784721560866436354502708644157564725218081830439045662902392952723711547893917694769937344026720317189161340322619047066848555654510772839732119424220795203618616171627955512534823070849503790469825132616941568822769518024987718595074080003752074673456918294129107347987701295185820825738618688176552581318756737547426755509190953646544452260762561050005082430995463565676561752230105615515891652198895005953422023736029693638076818647195993972994209764291930188557840439719878998329363907645956760382273824361425459516498235334670681299715713145769441418698985628114763488104563035795260143299761111599904060839743238428564401019684016582811653894710421319079242813834927358197899354827864401014472388017291373218507372504718268781560518722961070708467895429538909565611930293157356270543552335833699967910841679909352046921858773900096743529946234374654412804443569636690771848979313704322814048446227716016966400519086816190087126452794602461323104303144706081421797230807543826272330346463820971135229657721939097578714084137919470108086653017609491349202165807967917976264137786265830920464998851394415690799679648256424173280611016612044825499038189510044133698884970367096905245547673046826573603688674008229024697562819911590478533007914042915255062135618790012861272649587666905476831177466110213755393178043657180926329433247822079360020262071763846969491356232918630490918176598719351133557296201387462256884060467672261552936348096314534592727829596643811145884791885885828499412474964880721283408088357319927249704869606481800296096787357092584183866841962457085496029308783147836368296194522764503817661913205254928375236570844023747863799712206097018658475193471219637891834134712160133136910226846470897672743278538900782987795362948178403403757201817181519349270187604197502258246204202548190979092152310731964823682861829176060211386184483589312357161322151247219625778945519901318290210904943984495370120668838639127460498509428885270942336987416319206287582870763055984766548626318412796357616666899118421628187088708493016819956540486711784293975807495724818302238691699745229492060308271057869456391806156938906661304921362022674175570351903111576813130538073726966522316081300942989752646814801942956318198829818701266460619026356351284642045102878384441275033655974969386738676102350918799155754467454424960089744803088177463826815137763736992242534945471530992740216072801087143826009324961398120755386382782382471987918669833800525021368961422234461139935472911443949442502133825043637546937780980447870253649214961032212387840267185017988389686387966678276234086203722191414356876290509642907543400136637560779284721708292814877681210994967142011290060845579260060855213625385608210232079545319480325331108638571551262036972754924323466571203009878936771375541369422097101801768198132003169780706072067440774217418947721101516284106154643956282267024041693729759117419346783528342839899852814933470402534241848357051308444277786688484717027103568952150557568777882550136215625073304056110559907328699747935573366559581147827848046642159140795197084490959455271372658085690044458905055665442771163544068566733358459725868546627881178353652641514941383406953399622076893647787205297482695844544374481641843923065242017464509450335074457203670781598578129672128353483815352994680396805204100120604383417690722870314211580242837764756648530997985809259181927344959422437798532207713183558741261544180280356125534368385000381048039520373936398238660528604952872174421334365905084096151766899295778105657613617109620801116155865101448463546285990856981473021076627248985535509956602476475705858646164637225165341563862984735175415763380137777139336034514357174477580883758876036807839478106440290377501989790735043721467191533885137521942646268726892980353090895231297287355275591214875140976905475987852045753235075941862139133629963052235291155374586469264602790077919984894153648254126558329089357265880724954803843669103622680645107905491468033710559056770746727742954251326938021702725838538327302391734136769009334300187213963047939802359942491372086966774050297835516980684765297474316628701873510907894923940895953342388226018383516901946341254128805925506140593083117483834607339902523863078699882786631434644080993598298873577067162375457764174677649902590994758447603179743021154382963005419752391726645498075355264520475362741029887838269038154494808958500478317535711314635346859245359743076544251977436112483878477455128374635802359549326166242356076140499940725823945229332345671592588086590862875990300891312399157694255474903769005892128462743590248347799974962281438833155046989729639680962674295675422808546533381997559577087041584658661364418185690353777488847145454603810613802377861046760223543067687507375636320891651542060984715441649014916449888058393011974863635397894758151234291999763000092712559558045278208489060233542359366568209115860490389523357135397865667070815341471765234888373206936767195217897695968766633443871150100395580052609684192796483731540324288005695039739338164610049436204902097109096662246686234798512897477770380588418930674811147005691875041378001810372097983846280623215146347502217734141327142007914621447786849113190992119646928011654733623264976385951094772283950179520865722861795111542829576079481913808990109542104400755551409429926235628880190099343463678988342065319626160441780364669827072055586218604824472178395264036325662260164770508481001062261877289361526603997719224281202421975467086736826300294924747633250730139690275106035728214773904801842830454721962849687766268146695637278943043455193070160050334819161767509304928126460752009090973650220453970985812823985826831960375520986015096196250669714109370120638083471736337374117362842208326125424215992826437272952477667753730165295371525232395545231960332662419409162238286946770502495522736233610375987459956323163181100868887851454545546412375669503958084575098895670013668964036361481514439676904809174657315435857929638363580752354623819122690707824573358812844040269295812210320524824845740454717180581834095989618372909637248237328778263610833573351991946667732490823971399314631013310587493396756074235131657463404725222297913349668422886649883540563412596078099958932230869693199807108210679016407822856092618212699533424597103437112915606488008466587518825912111775277969242884496098074731392751563696857845705176573536668666607708770440895110089235405902336058793739711039665674072757318487194773539733180228361442472431352630201934751053434444062133350372037785903718191844239466141205627619100780379126546886640763057534364582517267291179045898660874188641864800004538120406990868332009783777839524094702005547077570859109471982720913605949700345547024748848603798735878479658081677442261584355540069173110876164472745096400536299086892450658101515324242435490435965455559843716312093691739343523377578316097062638963240677268926774716817507726085605849089330401827216341594026020183611106964541679507178350877858216554417684703682155217403570362620534166813120433987817151095947135978821060183463648099477211256092105659423731369273619923459537918404758596569851866025922965870921428956497863774001463736765746368000920607543583817562606039047865669975899579429606462677573298247911685629784260420051375719952561744894564163834786027973553059759058760937067756072212978287156569425762057140563338290345853704685814788722343700745974133879681143115545471140278208142040254028680261405022438181785612469076415238821975505357038522327058504040832787050569251449767694944613783113987620755875338426378781697488931951694980612686867312773896270018116650169922809810313241014717097166424123442627422280659756211272148834744670989749185663183057505410622079885122620191952604434910256901973803835711116052677847498782209551502465172629737412903897891667816779894851853845601768310236709387979677486176851223707454961954927807257214885859632510966877415381992367592454775245701286957159440119233469290812431199939655068184973460870236527666115270689790370460930818843972422825385521805848270211867087504137307208894902695309694108766789943571583394038665020766084971393116982278625604031203726861387348958259987939587295126534251273528356425318211829302417572445051382487385328444618677158585492334162881898806259520527012668228856040089529023364797004723512848379200085433682448454672732966510672712210941719697409811683836693948652711379222563522518639381618533725172450319353935748398054733340134945390362345773925149528981987470308129635297352192516602003177892765264824015553336009025144781689260332830033466265179719848260543436981826542403061901363551264857908501684039957397121991462010438575538771626867804073555576884252248542068071465451765784852495908276489671915053382173974058572939711939296904296936085698174868704759074525911801526406972778629421470144058481679400001685255152486445780814208404245467513038272881342738306507903684742453690923021958686777351903287388604144901662880502581707732058378749250882127331350475686418223142224200881816694788783726234545464627483589768848583373884981059977341225361815957078946642567233736251345011784982892009860704602051258993472964876754886272456874313162324722432415365669429175616136390523992773267949461170338006691925354508901878385797012232473938839016775102838748971047363560738149945366379354317938750581024464698825196063684873238831530585741799594148871309714807859724182354007784382960177604318675243271882025257011077493525470183051007693970652558904296022251866022851993403094977248772921806651298196325672217416251613250612288311588107544151937674985139181450601694104075626042990199250543059488082271139432750186165573687518770943140644164027147654034399779861604579890759430860662823444418065632928912874692897090671205726039279230161339712633997208402404609160670126603017786671121398581747174620729903207709054010223074554374515234187509062012104922897212213380481545164491521115221529531989327992635555385616150502645608781568985859817848317679061002436067829797121534993113282754679993005982916704137120651154039822010621235416670488242155282415760037688567138137446158190756387073967696724268913942727246208543412179515616876384764874142416228769007653227418667826871071370741729545858953263229475406004376981971058267348233771116596512095653618801637035361811083104241962935767698439725971434412459963832537164987025971088475449445396135815835773054162121430614343295567677154441813737100833614484900443478896930754004487079177661957586117849125997173380521018891738837224465767935843391964428379313236269858620052459952086320396367014636985752082209847507414517358569010342564553539646498297059397485679501744067531788139155741259500676615101069492799022959460934998903573537955320869741755936553514303058810743599435828089948518272895437559281645316431068016863212990905876934017889198808810682719441960049434156344567860334522984633126419764686054695846207540386970621138167977021090421154184883506378236973885668137311430569433799773538949298214148167815929013222229531968115465311510946520934777974028411099112349226593881611022987377838120536632400155445455579732414624441264121162628538608220402367989835016474463197350123714470042028682345716889881478537037167296917840605251307999467635740951406463539390762098995396502351664850446616551606425804568304264232202166847334661797322504991011073879968867814371395511342725787918691296397981883778610118928211622145008997389991343596840896502003864561458099361363299702120955940181914771686542103400979342937733628858817507606895696115536813640437747095463619973591325112182928936808367674245449324836285613870230368439302153549550938232812091722486968889339892163693052806415530856350259058355916676981276781343838070937965096519313808480002189018996995827501662251879248602847264099132882425751302970439344420244511682943561417144364120581782091241601359913250683293686019725840804983168880435871674753987201968359025326871853856789697508340278315083411367219211428881894079369452555301576563240023054614482513445505342868101674549446738659866699115787814134387550957200844694313064511574599187888556390800880135247500948649520513759063628957659622837528478340227433510440977732009008484628632221279134089248893180789061142612108245402169667882176852512168178454497317760510120295293353133255762065246209071591719283628229996772674898485154948260399325825575014148003249286969862584247188711872562118743166034953673433005408054235521655610296680736643794962338470312881110770484018932551121062086994237514296093219505762460748699743145219354674395265204439466176377478469876228183436686273756179323546318488931849977868121956172130932236625235785604757779582289568189518973908395735901881152003546927018940132323465034448731743352526954322584743750602834901377976100181700325551312238100985176517978033965040812501535521831642784084266907066168219287076729126197913008405135094765083556273605573592560760460950971872236204145506343361118684291212687430139034110792142734789465391971138993289850184478225518940383432154034764002925465570680253274629368443828927079518395460441712416228942233355403627717141691495433537044919033953086627086468566014577923077893594994627456377160142973839399439622093992387735316369404274526113946117286336776687096198524127348731405432471071124423703775742579206259670817925099353868672020057529940645840903188974870819969852564897764031514627086857579415589167338618783933887613323414494264603924102326232886654591118690194706855735448879822738984559002492305578059920559674704797003593275327662568563260105197554460671436130514155534819676328807550611597674004208987899403344448095375301564314274614174099627335694366455609018523106570999950461410407147145307005927810970488275850102863648097629030397268982296158724094399305115678031656146769898325950223422921239024773881653768743657608852485156095498774217089397021149585702502108770243955617860794197416730831551897528778504686771632131488968126977101982341692530940682859685496453231519725110893692700815930266277418043308280651588288352057629496447636621357194214365881480839407111371074099677171168075331750409414791187026319940318266113600104601118786774777279624642842617560539235584225696426375476678633687186168261518839510094100756014420399751054996752696370582266178569242765347970473645886347040426463092891416701577739033432358851576479941341157195312643835674859013825053794434958740725135259352298630386801444150730210539857558922966412911079971918353237471211138624558889103652368625083991448659836489462951106772507894579604158094654943614374574123253210225967997433814199832624080852802097709789675668716884769693298736143421199920748969564950638865398328256117732104392874827676102320736046420719843883720002818525379294067105018176073771827151214918444889638325912689064556761020197778403528928487885133558209547514833785882179140682890968165706376826371439168979290325467856823323168251854115084582299320366822906608224613351985254160994124286847580242520564200263268715920025857566021598463347706930051968662910196052550817060996405634083394011372478761012735803068663151944046981759367265109795459432530308022596439846676782140774452650310339327517782226876408951197262732750919299856986072304433846587298390530979707594093972240539876045143476874691313015054477112173444822123589640807387741154514130310406426656841588769091085764373801726748537396511053573428216567415370459714518445303721122685774991421495145736654097231579967777328963530346384153871914353544709824807625967323523061888559006608030940060331603103821080538733196490928804050945599732859777618068839842935530990629745474584148984979533340778917264048716978961282448642786824007545391794525331209985548024698095595736466080871997659648131731653303198290835190701963026600807921635849146165652012874057392906476509188627368832950531714835613706417308404783216651863035069052767016070989011248171413730173516001106275872882743506427097435952828909047707905008383620855153405390112639388675392629897690917204813188037316806515502271587697955283767028311453810791257026556172792698384118772275671115865052796536105912513971380924299340710599031681525977855341968649377435288696630452199445490477579574121026815381435971434704301353525312959846586391872071715141181472510919050414495819088363242365134941075669325462399883069734750510035840727934571244096849558663020046405886548051096950733305461136357491847033710170384036658801137001991980771196383236868807817887199937045764843461772692920105229831308306904852003446718074410932059322013890575718298808240011673365705177079846217477747883368085046951254354943011579444475169518772604108878752878810693580461535024302408102931640561850671291305951532089845758181485102785544122273392874343962231956039845577855818091552067404664205888958176031959763079664321914813214173184377169323491978339356781878045913966255205364361629542377968426426826566485605210759665564889156658591623561868327279617373825723635344213695946622759788803571348275626763060441632732508040158334543006413502436126311769984677153109526580612394466184121623652323206798128785637185321718422927702464958219743391691146614293746910528509580763133520487064724103419579362922786456950473562264022236416421944367568869577576920335358660067328240409516259158694479822725495971311604084994495462130742723641516553816161612915905899848928758732404681538217830022883285785047793617923402603904713998416838459515945158653256944472860932281943928238897930265818151838797501412670566005489912749280776912689713496303768729581785513253735138747724672127371544839274542622929332090842345737898775595566409310809103418177473717137146730061155778891505741774754726944370583052180956835683296641577597869702213715215388367216607818778666295693141073900210276609905350435155226201402156049546005741517255672516075096168573475652311579592915446548229912300361302983165883327153795795938396504994737267507752436374351430876796673027136787816882971303468048124028052617770600439010312660891478253273644991531819038683539195201255319394600904187000469678126502619324284550871320496956257215698183241859654611831800932534006314568380146326088530741444553699924597357514633254367992018748739107535899653886108127264800305125242586518886232803542488814700200660708891983166483829069427410353337151184306899332583554289826279186588087363262595607017732381870815624245968319820802368375266580501414578066147604072210539039977411806299497840620946791886671676495931942740130785624767859050385357137672303339097291276822826560974257714933851454155824874219789783777949041234871004145330453421758932511883805648646500777400406312538239174874963967622079493428827138241620368369434468009304368666912239506784619285917777322942012783474491934907677700424788103655507943231694455116575968942085694359984265939965807591868276691731894893487615270181722993658929546621157150849741120763268782051507161094669919620687162758978569480639651228982251588804006067945946810423174026445065897030739514155359577893613044599290943704391269592824506368978401387976548795043656539939045196677376996700618374620196744804449645385066249638695630680599252304055165884663466414894712398003745220109647261068000161295016525281371097938000699645191758169508909670710978541050292075259192139128630219153906799897633161483124549014141806475989894643184264936389610155067927122867590322299481989640956548461439141293709257625069816592315779812235495266856738754755870674012394900870413202680669392060509569805148663006525016510696895151536114364666089407249116895390135586691837948764804689972220751540175332265847055014562736530036463951225813333142345331318744908897249886178619263341074906956034403541345450074733816416703235767547596092709658967233250052106995287957407621443817883232505763639897337619618598193885974769090493048949011288167307149562812338932739450017857955097955581605152219484300453786951129984538028271952217462974916426955427336927619420746400351049588151754076447067882295645072846559781930806338882980285339277450907491836328948442610027100008094189055082985553895715942761196620234927421275770154792599321086121254103464113427912050487529769582303855947980515551928746039902198637328509530154413664706467621017449840487581439277284613996199759128914068493031834137323397796235502397531214599894604620550848823969519045774416017221430181356987779211020503684937709985817923142533451839606142754343804597100281191300941676149317445363320460050090680905183318689692858532541789999870874829918372783522574802474786484176316577187855586262985043226541619104435575021010315303685588885212433968025237190207747507095601399922325683173964578714627801988510562364796664134518175909718695578789820284117800292573404065665222970014942814400462885865346293591715847446333575312922153930969665940769349368506598015912585328489819891262387185925139776119048466157098736700919526703580498108553547426507478249254544450849645510078080128789015302666176721849210232813794182984924779225181257478774471568112555735258527954187707423742753860935824513530408442357533571006446181922750214492495201905703690413132707993269145344938923328396385266268324566126937518507899866476844438388570815165708786260584490645827918878993653185979165608776117152800299258117643140764335086375424445696036164780981431458375722597885332982507267151183499410297336569449598457781358811736236797599102119863360337035470565090700745110474695206252285566488144854923894520895863338009855024177434851782626134514286745732044801157378653107135153822389986246289063260457136190316795420030625153112569675002267775746807098972581101929407985470605309637640765395630507382509915068342439815136092880282476494658571460320729380476556326045750420433331489042619630112418879842374816447393717474072240165542677815564060705418133129571091041467949144218451057609954568356046730049249439429122428898444197891690977841185357519659298486700576904230971903787388524311402423157439558545187261319206890950337704323657316788520451661137150287744434719891713427730735483056134313755241158193082935927758922246499624978173149575738406217579152376167239642777006548435026450689857203075134638161542772839136265515518000721154984714665914707135603846354491696495847616429730491170527646684236597824226293311024840034233454002401415986256921692139070523958296325645380881370580911685441546548351670324555003193190693921536725392395763864388337452769807219095716858477514339669325320197862985827866132221567803529858863862618024043760775061773134971360646967191683679083230879343694611343614645644529091334505307034548201355718195336040009274654339412096487752261151938937842048663439955517614609247235621292279791033793826893749001760703035599549204969205731458212399922334253073945779396084268787017490997555799550073644337646573540618953115290592142670885034764741262254971153885963520614472633360663463948658973922986843352704874755205775643184876110024432986024704803934916814068206724902764243362965161453124420048623496520798660914697329171839759598352428405610234728086758042452875392746178430378343033644244753182320774594470352289860018673617178418567487055916706260912813949079371230729708659054266200400739498078982329398002305783173158962825318980495890014916056864381254888321769425683440833854428801522148605235844165175585197489292091714746726927154968376637436948363935850947048093138509545040453585413336066850310515068531417340557300421939139203774515204164851775628298598825125803815680216820016116337846691916870389166384455733225151308128264943903405604660037664131423502831695954419789944442592396819251739894664240226084447490093606761803797319298572893012247751483593797376187183498298140133339580337872627751314160711638872405694390991254959384700928027296957500464314832309863883531030493340964871479775828834772909101515393758953181847087253673430568816133406403575033199001954386092346492094167916261643093181707501216933027925068574511668289675171911495879532207936580672960371804404434963089658580254877165810058952766347842982064403144231797562126403172716407503444057428858438110231365130352698505035918946579119587358815076879929304601599110108889058782292582413482053914858942772885584480714275978244778718211756374495443966265950724120029631188279065343676065064198497346667894501191413932650993669439309417343294990306737408412735806558407874858352039487575256265449316463343545256566505447302430916293969932460462657531657210605211336395191744661283553765888244540249047389596904379696687341865488894268731814173995166970605798470817240663889154183395740743326762783202740563959375543775554094431839532519880792830333699011117887813406634401928276343625686562080068456533273408741620899737747796242066457127920160461901013272680442900812755684142403952810966794819223196504625773699957500318208376068108640085997738449000977759302393691399170964043659407422285500750572808072988170033428472884534244769464877455796265339723282157835509524116193168739911982737739426384881817520854671607450854519335668741206986177249422125425208905072192333612874114622376058535315954993736884366468159679812872802999882106709384699277921707898206891233342910749781099552358048881807910066927959461148395733538341315197618889650983841260717619372611934125249578880051283101103713882022263672428989648861639117858366521934354509052740124376705851238918825983299784956940189508537544639086866778512794261468999995479546244156415023717356441048687062111452456878182972543325055908021965441415277335503396143915509079440248833144310678823509429392023057425000333346607744674023623622884789257324057112528972289268190511099790292878644420479992481623866185298483669304935608339326271975894031248493227215632557452366806120215357640425849231504986477714873768403696281780354651827641556886726679255659353866363279343720705691008839568513015659379769994818072028484080316179389797404249440794705570446120022001350744925293168631760871661539993616250938943872830732109927384045371428106000099712725274571841407357973696101918030144734179666836294253580627918015105271699325491866897997434846624883739460736569683301844004101267209761608783313863359467940263400193333256072529528559305873278061979719677001560423626444135937071374561705594748593800696325167308578268080138121245787947940953372937712106346671125330532077017730210269145857751818534790899450113039875121279020611590356648298368961737686529886316233216106674733298134856414345094707236091553345606041876696087668010409970397590006833065201233086680957963575716910528177593577447012328527061387983437582418315847730654228348794185509288752973442404044761424120529951484234294458175897385540874234425457180660101108866962187756875174776918242573881552081440634577522757724325846601844758686914699152951505431435955125872343955221680367011733734154215464899514384946397560360735782780419092892216981301899289199997575062656942951561328258069911865515632445918805507650233569986039553221292970096011909117750594148099936190306560384702450377013108686769719957497899736789908229141618972971096051070427645539012791149374605418986544809401878021936089298125219000997799362438365695159264400237674270229637892582996425820358686988015143140285988368801666273333921827199382415255161861859863720014775079095489665639749181750711534886927780378171549410714110134279831296490209324366471017397827310950727930278644556209609668858857317580888361913647319765320056188165637788761902371019897725131143899518530997756010342775558742740959712807167069086774398898633088950783698624976543160869304874939515585797744917645841680082867313893382263874785572503394626612478555194669186159308115807215396137145178109481072269327290017387365356617181835025654921656636848530934507942686564094624794590922440419398102934596024559858138589925072719193678855624437182310458396839827585608980677319600307609977541918591330674219995974389378564100445018713014137827661981400659060175501220339915728485867409736853822491187595195082477063793688067991359106033228676626941300757342512120714782104264832978597216340483934147073536512096372073277930879061537695559899031646595216127399866605445303329833970231007099483665259945833803113104808590901275475160894498890246310211296426255430322476525636559956519313033028436893660637450731417773106200370480949296887200426512994890879710262191036757603796962683055194850481223661664727152928035934767597282512901437735867688933944884512633646376122437525621842524246139253924228179798957542739586353555119731337395650260854176769624764835181533142200367590652031652405684648412999040015753932792201212968388715136067195561729382643833212411329820561979076887496419902716218263819629066458157981602741455427048163919078032180503943045768494222793914842329260026315404237626305946551484925026214873466989431042715136537605569198551947419496959056352430944828793306933413094623498993057486824738916359389798262334268656427979588674601694613167782959185755562047904281908988337938606477177576785306149097792298027176222850295056414199799180867359200320993978363150396812649322374659744645964731348646187643051711044929561342478441704481615157037347572041216933347994810844982463020657000914512328188452144366092245445400277966581127089465633885055631541347108320094907997223043306667183220021364110879380500075973668445849860692420711982010977155055283810452329933884011620408073038434175987690158767890077656468303189704106408340913126330921181155591510671922547205132013439547079940110446331211474789611982089832953467252557003714597306259328977241382469001327940687087979109470124779440929422927531952701213291458220448900210410042787526803244600326616664080328411324456408624631273541529295753889673438647189377887650017174462921485550002772297046925401012369261001805961486551611051769067166295219337190800162029892070628143957494658301581395339148506103639462752109453362298487402392913571593947483067349816786533198574143416594636662727000836671003960970175100694131330535403965878785413531957373966313060982146579369049278347552105617469759837217581335145771720253545451651441988697257522849309179211042196272386734949108144626741209291970158528965858682057311006557196295097551865763784209713187281341702091330953393597237007783501232132578366940904644621206900564331060791313931120462604370525380191170505590767082403168000834442951522108301105828576399302033498078393441667299455468309141857586007343227386507728344918249907232302966232185469659371017601025881544218148625353854680837890683812642279351085142488995900345644311977793475593697347925335774532439825575913698888343862689978821883155308523065438857241121408411651476047589598208830933144489413144919672194120784278077410777085356460545836640521103180367196898394780109220200378086685553005351366784127189761359872659370140791706143974835930796301189636514394633961285067611090058417351149935761920199754160694662670886642347592616102223638417224775649653636154008116232896162776788615164949732590431856341989973393789629600213643116521006800327674760839115517454257552692316158205759398054345778965302580370942690535375035400774059107741346787266288504439360648688942305334685602583238433472624068548241850239461960025290877387271740584324864904658298572839951228811238900351837099695646264683443455757988562320639253353052021998097629494313445232924815281959211582865757984984790186297290004097384306072399888691745006859118177467382158214520499449579177937146600154212589969438006295460769105630781616366757913757387139022767784547773448450777914758960264879419305035975163202854449957169703747645933187727323225308608173970749918609511407931255524107203668148674646675232375740023896156242260160283389793738340031798858650094023527395436797081779584920882018547625170591913636475136793930250025801077916580008832286443851097086728474057368439164861041038993371996648858021861382432671473706945273126335069271957329890347834181585475055187110705630042823039569183548445927228729859748053219287882417100621654338394570649207259166164100495652770678552876725199928286527191010761528596619291555135567302595748507934383705081028232142773855279043920055704114466610140761882411145684180513988412429749590823839945580895762922172275636516578084130716488321298392619351734177956700448288073942438179726821664715131438612351253676714525558580321919383234719137134779987078007270128593754867557478070308832173028895561027132296090945337169031131159998640110833489581495352251115162477475600703119249599299346677762995160103342151578814023565238693040206254921490691926223381398643347221474795571653569535773415149282466270594786868499707360150779901793291220948431206433596285506523042382656893055151028702622923693942503127022458060304020618745440758577939501943531339344725744958734808353795981307273135669626451474970491520299724727998917072827542583597839910867683758262315733576421530479716587284512905444507844719267613594996400646301964200066865963526657600111734977706121171422070676204904027386093388173092137040971510968061079334766308074373341179488202201834802722249191631872539809955836661863131234786321419904687428970715719938214467697903896668792846267245703636425819116780522213036087531815827151140653355617019272607618747033868354131005111890017617383317483430557797385963396717844244933954511842805632322240329359355614361246609382770065915641793988961583093863069486267421695344473297006456770705504042590861144403738157525821301519472635358311003151583117329604360499536897875669464527049581049279386048281409806279555949768423544804827874366076871887794934120671663392693739565945305739146825542768891233373716986033031866482950787721103648605954194679751194682686142349049006404207766866713826532865473316109407200067247273619467875390840033447089308145399956320992835295375637091382908565374907843551209404176898482195829178250142686439220218725979915143982080684036973901157621426938662593467398999772243202352799629434687791855839460162889951169565146119638230745364185792969376813500231403284102282902866748565008718588275480288134463922374551875600684099672995550676854462217090547919354137927649651070047049999462227486233319336485512060395064159104770860111372487499246421589610532061115623585362977782966799615255485605822299286482909124782065303153810637682672509687908759692113710586608754831098638676202384649019697328059070968995390442480074689500272347250842723257127549143483802565328945607624047757870261458420136743852127205235409734907596068711677300638028003187780384406431729423127529916819811672255106544322929353979935249832685551417263742739002336066989229482917700056915482889656522650637437095776663714328597529342845980744565616380180576673412210062447960082412979838547403210215108274826045354304646840273907180754667056283559889250418259704125041526208758244585094823421607175748730094825928462331639987375366408500543033156540113192774671428519529869395051130685511472858079500261478898447767105397589285981735952065605059074769693964760442529017017347054602836643948392967520855803201902402664734511313446081143773522363877832248010949999928234967664183703214872213790851812671658633275862796411018247333771858017776528510489501419209924513959565652036553222588341441903359433697501265790468883972841398018756544766234852803380465834049531191458011890380248467152065292492853042315196238245582955138521271173791580272063456317596929858273999677950155576744995311881588877639161356514813147626360848473139332965658462678747206364854395436188821130533017908884548213844204091782708277202796414146098518163414118153226897909129569775861430146292968612899001254418183336044622693594953446924429078457813566189327789392942420423154274084911001352761326257426841899794567456098594479728430568501975097828892741800068103975180766312193075464410202960758960653798861008320988208114355473933587072334404561966907796356078739652281192515123827034767086382024449443738706996363206212499424785413304683005225228638173994254456907390618129808235857641054946001759515721679727154574728799125643228473871502046476945382275306152530229519699036934192886454777100477855959354952808946441861478462537589757848784044896281051397029577506996039768415723585577867938314326151748345078930004516919657676863425682346706586350905806881552595577120247816885359729522679143727395540073818459387317674648298463784046884811769041214365688212600920067554621557803480723316526598656575955586247025540983371018011202723736069019159156991808746015670362453067810511514945004248628782314468136789439471976366768726923114612025005441913900080150694664159294278250549701259270476797337236883635067787171620860409933698978242170194452767969195076491337211102417616115997537351856268227551600647038385256933158291469520170066703856623205865748047366019194781008822384056068956697572530139380834831198128501801768089056639913345430518724507393753643546897880498214900682119476981380393747657513187836452935405099833871939708622248719303580380672483226939121836715377811043837501437003340070076571407964756564152200140490946298011061967164164182129823345385516301882187829873597583410803205581123430098161364817379300252825359664943383218948603031153497667750501385192873936235129684700476445489193771124880341008094490189608468176834318071396296039316257104699424011596968225787453053294455549912687729959418246670725425359752861285911090283938505397995505644789917165549555745034056784411693144541001292331038355057455384297435362552867319730844669502613291254976566094299155516861960422209961173239227049312908573741441040005715658043591838431623721625803500773885840091670570167185377904909959933480499565443149464056136895970751348522103099848972071706798120361500825203023249075784298861505846948984149892157876657556213387404105370954744983150641621361719882826526690883995034860755395181946788419427808865904487893759449239717462290312490218580166689500399665513068703750285519519425798368790683477035180530351667939605282234779627828912734541065190996985649225291914003717485236213299712640183277329866045253360971596911691451550912048438141691982315351177254740385037609233726005003179344376341092788351549626218405699535043839044487034958419947380983392279870370712657358628595812761886497251581544588131631754487095273072507225209568652685000870262865945687097602666008706745786756334737563720402606668948022094362832598304241659981140966637522832312000656831507560763878287476137229249795278081729514623684805446243223296587559855258680730225983623397127298104901131932732813309686251747862882129291554941360526404114915367420849157020465709532294746458999552628128155774292028059253369596075743298544157925251785100793030389517095285850463553934449464512473545809004161688451538825865000064993087465301398647373013326633729190371713352237883460887141523614499543575608484162361206185479496076759210779357315722044113488174963866022449741355640169058399505600388558031667158342931975717309621917918718272748040861045883220702759911281841664099763252602526002463363979641373876163372784261183660851000629380327635896273859715813638950819265816083172833319844525875168431370462563505503693755607309978125196725607425635163375943569738072630417735078992599531380984965587941153904298760465371754293726947807020863595046581338696754470766645796718880273191346305587091494223791666925736042456291064566417145543031930817753361681624970277320215260451125782481327399516295783338235410832801662440783603813861468479160294703892024043814206264899833062383947993534199641199599614779350622673526799886522714844185515167684955670022340479515850905170952739528572946801046392926031347790977353916174085936994549816013540344606355274955984178229459662327825084625248293277644158392969949685054629930303437300631332320032091697007824053033967169625836823758254833358709428339897346189767292710535891455002926085232662251332467215340462847916088978463282668667817978991880349779741457417715769137649585204027893895970024708933003837048567297160987078303941001706657001385763195902275621960858934577985777371808360583733435600631079867829118205792169982264409567442847375839815605550232708458043258875327083141613217586187993825655938767490020966055489500433700597833621847474804842245737896526619175545100604160138623069860481488975957589159776979273901686194441239692168893768306463425654395549875736182376852854960094651578164813181884650162163837351457127662335621041856404353652344101269227731245901763524207800806449824351120002695033274471230976197273913043360121512936284992695966617487377886697313162989969623508093586053465211028331568922045363435524022916822157831059921120561956487303918399600329676324362055347248719878797717029340590408641978604542057236822956393332327968861107752535110566995329007314767205813876919865741260046460742653541995892745177832679800647655372802877340698054870560100447604683333045365256477226177339957810708963305518229120903510336221198124143933337668706952274162794277680299988424143232950851937717220981032199070267963701293962295595342380215038187932526205517999161273199925851582092823577129255948979373908963309097517877563825721066620820670576801711726111237699378526200540160918476736047134277703691189850411016616318508765675536547487032354304003209161845855296091888467838285020495140412632281365618246899284467834447877035045540811727383395526120675528518064696636310153358555806676208538084272819661361720593640265707359560217717132556551672383892710171247416962347412210496937143526575416115895525021066088139681921658619505615328391938642143971938559799017944706921120512162851966874641821379031804257263402901703409245759731099363035402368232207131657603637176442166540719380731385197730060913615837461116542859548172448741798312488274865016636458227093512550848688554898749292999344600939295995825808729561035031817968750470716361933922488397187793828450699847154121235438157855559833372784245145922059339757202157160601841643859740691148217761887231214079756118576556806567080041260443722051645662415166064288955171468585902627997758584565120258846305521830481705168089642621675878752632063641847003576283172545301285240978615263228404133879501777735109113624927772420452574802982876314091269673296862980690224628614178543472540859482149713061913762876236448389406758562965368895817338975869654469651575525884150289791650538182018315895125983521410584690292049644093358926736153898035826534067426252670747165690859449959307169253187518661756304372903798300539802119195678356482309290431573280571675108237087275481665064866339504801356658493452102767490098945799830889697645075536493288122344964508890166765173125621433863905419353161411183687378481489062886010283560351636815274952900830695214624910460171419971833083054989305825424860313969559136991337950239707764144651593076234024449760119422758890244945762987132629312782867387044882024128194871515218067405139711680677122289382137160649292434544830671048040074953420565529435517594576929951429528468566741889303334099529486464294067955411193557378259054549815773651357834725013944199538470240402979229277142010965431370249524848855918679335411392080079694342678455542315163058688246776318773733801461153272033258957964640838249867785287367909240800530025963295906940595306140242604718479896406275107230718495324405246461608857651496637151761336117288744506165590371851676920200018293575801196442920923830162821512163403065024592638783283645330640105593527499636134934108254103937400839482860540097365458084653137580890474356074840474874887146135986451490614295931054479470573924773445286820485811376200506161692181785517300515607871874293820243144552111601880570040159852763019102815083314879001663533785799941356937986630441190183967490933186586206183204317147373887617989917123182706254172748405691060637488069237891983942020617378397824448364920863647256954755157808708828210098256325883868114988681815661278054323470815798992687549677092882866850878816175079661021786531457350537303640855508109996861904016253624748898878323847707433948292912432980140904279377377615186511011378199776830470101005941469952223491474689740737118657095049987819700015771937380194632058729478455653218764983929890878619663479654574361666004625135469058218959914411476471247985810735092918711847592113353992376613360262527589008282547021942981598939102040173377565133341744961026216683644931747818408549291970364204624373179074872051590754076501864000907538853538208302708739280286978974563488569781940075504498510704483616396226116017681679311000601760459450973690394688656529112127626278747757684631302820796751793556602611131688260191855757924947509402024920539083912536241802342132161451492031099148526818264807931983178055009100808856415819699113872045691162748230420430934410717903708010877651292730189377976545069101554624121126284874261270288613663198747588401172226264693977317969421255833996457717210446505014964653391345024136762261237762592873551903186182650269575284894335599177691348726606559191698006331268459204037184922417010696313405532290038297449121078586270809370193646937341666709888524584444663746096978117627268191690376823722666636183279452217917151857133790194605483182291705296674612351936334572517541730764993599590144987008787527626052692569901071715898929637562498520424786231734161506589608767092071616467549980847721987668528274220361824573809522366824640824785732791660201329722944172114246973588844913978124340641055001911572807454040237486178041004233795923591522416373197630756002454270688126434709046112220218628612627010335719641918263560606257585414320917094940814792548488249176318641986004187170704725196568701001822184362741955775558184512969112358389799617467171523596925573405405445214670894240365748364718495691788750500735578883041962490197880463482865353888312143900946647581842202655289774769361405988977225342806026796439642490359068073045645340365257741461676958040387135894139936595971725362884269775700306241132357527464782409077624113837190452343890514318537470872818657575824545001116393066066918200737190694618903580548325721655071952794608514630894263922366687667391579072648111852500230686116423250793804915991990087339664415434828846796623627101802919417569904212810044989315285322567860688026475299317148026966860068178391242083658537886629627873684169468460908939173531934736921481168086527898785783178783077041355787334949831288039688685869243313876206682349543021186594990221884485501915901526212891140524099923362823497689331978635843258635862762047348532149742777671147855653426716925358915721440806214005478624822771292187905597741206324990849055290631974389577496287617118514018202865101012476878063727678620274970151621297632319521380968904067522755769392478192305967836217206915469561237938615042600648190270985010056846022363677032566213441816767213165457611125647536823873711209956902123775620306645891048265629904135519642816037724101538505828515505372662820687007886706751766589221354165182091474779591280110055503747569699005976539726229550880080935737934368051844814257275196085836951770593141968584313290799177124773679677393590864656788454249591792992319755143866937342755987871683771029982988679677091145149257484669218366992724630947361228556864298733599523280038074156539997193089642166278805688985565075944434018839469296381036708159192428321863509404823033759776651428088090419877572732015036671382702001916014928809781455217994103023849458213368265111781383568319186451362247684040018457695671125065931428265616023053189877519501678582535862921135578304013606337587225513567215888841638366646535197670032597692517954041131398274777745394286711221948712544160430362087952961441075927580169356303586416097351938659267655864055682212150737478467393592903567687712155934709158328534066346377271817967565492110326404610883887666752028619982002963563540205773287359058729466366157563172704251765919275568507806243030829802548741588854831963213167152140479019255825895611683356329127324404972089259819232140563206774189877113039011594693732408291297670678823294863844128972011625000050478495380376280490267004729757000601124623137824334577599983821118727873039871904585429084081918955992716892111124607470398402187928566037389636331440528850560282182551739061580473483489585496740770779857747573013814580699973644834648262429667149119840451682105571954930648973616489982216578032796227786197377609817312175470365044499938398556642190088467547987383937098191265065807250366575865461749555702527277560115585330972862679657117890309782920441817368192950950710379286236223869728343836768322608355054074830883605235184028648649097250763375397327618832574711887502511161186887045676484041267041998568711329631436609256567763777780910022517262361928770889475811834850237160146188357249127000793096669496200121798237241458287326436921300390687676519597007967175012019769942089970185237430784755636137165810516609193083811272423020647672348431376389043987573394519661486422810596190216044937986908646881140886257951517700866493202369477788938767178484810904877633555737215994050513231408450976378818874219344546407684203763797903404292373768671041796146778661738045282027318999579483876043131797548800728673533315715186711938256791954876703416261101749129447968771559643924226840449067366566139048222028459571566709844764754325643873363066862941269499001827322256154292566212219313716889819104114553278562732065594083899872241485421734317770035797373567755597816940481955744034664528928784796934086386200251299783553505344790597714519251615763109862702629662487758159014724109189968031991542070663473188828913836121693224176427242903632864715813084665441732409286443235262731651157825080179463629066047653881051329636658641975342966033675527726125768969134770363705292784652783449684641241182817883703904394088835379921819081546059730153078759574772591753282391658512166225827926936356125188383785554413001390831648017269004746155450409611605695385056909899524009144297913261660933420509426276837489686333356918837750052918453336437178738271266260386369421612568711468510776378945089490142181310968276700852482407704184106733562678797650153938885260285609682684382081350249840918035604358414112857325092465856141585430153089770984251596475757753237010993523395742110638783467209494267514274675333285481454650123184512277742102652071673795298503711252142115373603328600275951831318355761529800703667171272872135992282874697899653102520967909955150403375006831481900219652559429146730569154929688520216298036314231262733213816703654219083793953674245933239482251462760948605202869537139738561109085222701664519916201418478267536549264855204245551066191570512377259979797090167102114566755167120915491678437666243865058713973436457386072335630368392128838798566502269451459014589617039481733638785989754207405735053126745617821218958764496048642679706103157841168689379863341673587441380060541734802270268745400242608568679653146935304939403590502992729140081919098827433690742010909024888388742799040252644149243543109655915800618894040886429198449306609583905568827066105366796120086018716570152953063926150763470899446286934083962406602919367118326085098424553893088920874531043920965553855886735660327640105580094337339493426544038544275523405270842014660328348632428590877414039967191444158541212130666112483027043990851441987736438661855439722220655498048822283355210738884785168980097131870331288661770631015696168585578534266085670271919656548633947293444261947982801092619814338990871658266712748611535471834691971789272382755861922646200462058916926401419274749770729789747755527177688572380083407885227562779950530917398673205627233161137810633918534601452880526372782621130807779558989544707207344981247169273171969638613290081201523391748260533673682184398722931189370292881100684681577521320572676710283595819931636373252931773450052468294079078323222825327288570748300103617340749573185187895665185880295019186374354896468844818228671807769785433236158250486343871953943324787757273650174916544494408996127220773567173115186918824483498498919575878572539677416512201578664780453755943636655354415376407462894940134466131339000671307952228887671926735215252476235512061124035932293023806223707405227565906790047880370450536024869074135682306661651103395834339668796972194579068519484282153477762773772720984483616377917351508368980722470496705571886427489611689591625101429898411987189170142522776695313209718362826822641612699708767950810849274038478691441770905173279335572976087708863478611814794008745359826641338710276088921992141066493068196630956478189421188100608381874498583047000307980633302470113465254032108615660103868055728550801798793165005201958817640934404777032411907723292019512493299109192928481456717816583320217885135859927892016083887132649899002157568487604373574539986677434190284021075040175290909823912974978879707903433625103872129343088290642130763324508571522279959944401848761278164795517525394743794044717197549263130074806310646393903586395893024720099160307744166758706487983701393827832839251663005406686854859227057283344400237675576547678353755865411428645925879935618251563975918920455323161250468212522174340345954720024786965390460864763695388411233657638331676297314274213600992407962396591868657967176180827510715624278499689628819455659596022084458221043443868846467079022993403220979982842833871124551866750501806908327053160148878412852986944731706984671058202371197269958054830407299464187339555691525154123264874604371698696274745299983421486973492295270191525522066172730599009672353270816005951971232869881192519802325623487779886408076494575853355594995113037914886741734374189158154067489355479438384493467298469698934151202832635032561263970834343212391987512466300436584461066586399934789431012959699243996770108367576481828600664952051810273437290671807290356786424712702110426507286753042737251706749507718273688678000051065899013801352249866488968371944946258038278951813901966821408713868778248236388563713356387444343415222531893751337637576160798789597643828133491580918033637014944092951152000520825586634555442708134154308359468817176457328721279418435993814482568651493064835384871654762689064072038514376651097818559813328960244905511052407118318145398717710532025512823303277009570849269793944353413038210172645807665150620256569656578170568680911926062270103230113753508587255800409449724244413909298929498574402177489300354960486113685706485365592409906747856599536003561503298330281743683225564986237860033188480677903198809096454851979860982391270646365466688166385375074489165077476179057988407538461329852681794284718356359822546051619877754826346079699149473451532550140935584249140714296417614725776787325389169386547644512180367302128271918552269102356510110928550713909102953781078068101185321743730387587644133981148616698271360813618697703251513904759115885180014308021485084134231227472249039607761804391282100256699559753883011225673467233582562188657086808661756406056080466768824482690538495820460460159459177496349126407532432591478856316658606961835993803390491626236251242187562962745189952378877924239125776726206319136788514935702927893255701240662741906983847838424204973459090671904004702967034820266499309622663429290192277469413506698257805310338801251521884152685285898990694058340530493882605429815860114798528814416612949289107906902533078323625383307728565829305223496519617626901562489685351797468246801172287504116640813873054498504709362968098322479889006232874890047722765906067850049147954128803823996064358723860799703667290809456213885233090180464959024585220754086132442905978061915665592730317920787658421717952696836637581352640199407366782216028758537543953983838083075010414698313508215880048513360466902688765031835854621906004091656682025545399650161409735639457364240340056778853091420624836619048668955068495501313146121938120051433649207221150371690355798294778224964585139881401756336501519915167285401531734139390237419163340150383076209641542371752543148183557180856941879386948564930426043422266317779767274606839988078714315490165887166049383892643652546600011272662522297386782543401960927307828660409753588632690607138359876350448177147141502834873766334580981055799666257858034924535029084925722811052679363948629237034257621263662957135218423359720839114955271813432606660434056629662639819451696854546901764306434749698772858411236525724452421822055729791418084916740882966020658745791785783117214471373524317884810140323451354411553607339722822336858831005184611521458078135148725272606892415923110565201103737272811926128936552409298068606738295870168079360513146614675476023694017191015379378850305455847652814934824917438174319851436176357634585528295629368443847284654774601669006080492846609281464658371637940466605034479528209737344163617307154031122713669030693738747167694235542323556905726848664248629927694780643450956678748387708372920789129769672601025588037288134359871270707862719688176466577284887142772508968977573542578241998119635048962696341786596196660655809363328654568973756626407116436937872728066612485552229044692186693445677609547662035049282327893849298192676148150098594242543654046329352950890922379596121315930885425023892247005446900206477293628403990115147654294822472521385236614091399526941070301860009010980380853319825430947395446374362150084232377856029256454416138074831917299739779009139959244574036899680666486784811820413472505941946184014431357243464844552962426360527837838089506015652311876362121642920700055371486045839339478327242618965483756143070989703004219572253331722957216818256734565849116054286488412261739542539162292019399656870025456441152496659525290490700985636645211660133394711457806509478115503821407771314789343317351611456326137212203598928237823583965089399940111890751686132928954145406130309486715081497477361603954094256910601906173158364179273874339534217559529685675294926285535959774490509543970611279531149548410982038758171966969422386940467090380920645517823032889455750591997209435179068914433768929032173131127216639767598654155065994166619026451752818220086334939750835975551752297376058457220475057770466545628273420247037941499417717830920781547553303495685900850162143098603674468728493741697445096818639413083541393479912698856978942590805686357132552392349794405785879618702170440432096433477551768268495155794219576736106265696079714548841062800150066993986902468075584623208405358668085381806903406036526457878613005226977710173743225268007537604014504153189378572907037787354042550529687405336333486719646936453852896656093902046670882438994252916039878380270074621437579463198030237088393403763505584785268871121004230180091704886616075821743500120721252104223965879146166220813919502145037953990860832458163532325629982868583638965861118343976612558458073706494844107413403739191307442649121027823535068683773400158445853474855761453870224835207673919237242151389303443543564196446263598642617309650265459421194154193660732747510874684718703302975313812758975260611611852200219578996941097329721728375744098563917965168603217651740097632956312022340287534961827659868241632558790481971915726535786697356458251594891375454160217183093209928428384674711885197925959526654526264569948501473561531769960817446473941725612205749160891264436524637301897459011806350119497593122439848952137344019011180314796838093214044259135968651550567182946797280556655870882290030953143557876318703262938789468957128890571451448187389326766149473022297225151136501317223569131075087279207203510393508708442259843631752605394417262890443237061469577872890605625126802295797207780853346369851522909630363240895669915756436456385137218474894883076689016017780920925889107918499610272308171699248999090175770998130659481294103611783395944823098357036609182813104209709349051632087624154434164617957763929270092838551547560618304500472837118364903894748097630720107457764199754714593525833947320994548848454905842594583473685715818599968651044659167151458148714826080322464189579642352725506766313085858977941177487486280384316997685289894715026310950285401873187008281026816194020714813818255595111474333085020922982660537537382430566564379334553986816297521647759001253539304270121734417838669375358699226827659395939265615830907838864776074900512154403752737133101589171473945305279119678616164041966341297537327745405724121473848662873040730022829674498349318937430603202230949281721108073587624113591891156627606531137758563197639663188756597902235530869306205198563843095426138943918092973100869704817482677645046881865355071785606862798459724789522552206946081888423052013336242899568252389616696549872738500463512267542727030281996749585537442948603913789345918071454151397020506550249382069982602514568199544300101822295954136504027898815634008107236939805301734374968415088304769874637517700414926292182343160294391031218840662144971596886399890035319395694126500873168425300007490185149745726665204758878232462486370053171745699148168546274038772527711609959382462649370945027711974303866442307125049753443195573485552077880339054943438166871610326775647288612748176311386565425966473608452887559107991594298115018079095863801661105722202975518691324994264321121373083285788938873417885587947957554425799594617444865614456287413837625601308182614233089621995335133010383807328482022149090802584532059252554816175941636417973138917720726865942822953154856715117676434416127842234963602065384233802087762576743143056696384108688424651546951833634325303545732746330847288562089175471446088382361733646297710323194249467364571124382773973389505272398449896993646547441284870393598617511570080352828578201758396750959154228742417995684855581863256970264774841870118050597523691311919602848719076826325910852952428964975226524957973605377243219898299137964481544473854129034279813622847914246950906328881462556385483324927311928031639520192473777030523817757899989346731330891787769500741084450461272084150617969558793248860317975060163752195995128608093577321434697132093663144898251783834274870223881085401492750198783748494034019921429974563381168883609567725654109778481890876736956036445418123348122540924672965616207932995112365710217488579396393978092577857176626256546820134530353469738710494885364090118861604218328815301998879275631374466734770427894553191561324072575941896091212402674184446651397327934045709741449997431698336679603798084911738643360043868082060876885878377593714978232471483402731981742557217443503008751329325821772857412634252828770291617604626546049759776474212878290883263266959783846836180333973155100291144531810049642501205926705850333183120037030929369818858344267651471671125911992668422151181364271612316424843519147406624993215438408154502445565359218219055871681096904014775207535805606001818870024627599879366749740248236735306863386020417326200553889043146293823914164007984751935873006397920404229507076841849587710498871619936227708279893158606553999458763753982062270784621180851312907357950041909336524005175164864422299013701185421423928683426378221385418142143174646641278720920737393654300559424491132725953007947849829280003362578021955576655883464669583303610754364875332233989302960602535358188235560063284204409834469228977324100025847772906523590655268313887122729012248502316840399160777988914396573841639662024449337635321485217756696051122400795632384345615270081573589397368858924407688141651179869557052941927841573238630936132757000900246400034284656739371895410804874815405691961273324210458590200842837775641319356657835650668998063868141567115688946436209939851372572525492627986603139472438427168963683483708509789448392647894320294603067017174051626723108448935038019323847086571739291160398323213980975505706114703997879562556512805803085932819449908717138531251923180101150215191188885033138882921470690330323550632003456950053135176749417797742888115949996111142443000253065778515481767685001146358700003271201780812636336647366224261702325323515748264910592198006126502373154827341088820988705947249487365688369939310215798433342766564831698304345042062226446292491871706408111805562170222591527899426973086824167895634199829976632814121446574905084068036457771646709388757272661058289788697078414024127838111297980953588052918996242525733027857322803500619723223900638398262861299952379930682332227446662477796492816435204290007806355570863573815747570306937060513173187076193280996080740841131545516412500243581147807683446026670898926895169629786939165981056306919054840767310401388257120021958604476984773255766346843444405563453031785998618080387390909312478141186103028292287580161440634854567108227908478229080381575328152324160742030161390288679163202738385878699933723210007557506953549699393671341300064642489574448771258697726304729486640800319206341651423551696496036327858857791677757336135193573362878456434605423018997221663926901649948336690500310541450869212495229481590140816958124032863745478090664772889797894316362015659440673845763910731041749504369509177424117460907896263316236252356432758117105902626306151768582926721298686534166840867453919468393497240262638727278707705330882159061426292142863538275738133107244123465519033644855213953997554065072412134624331749511473724611253782638169994837311205792083975817215428118264253970724366109137278161067923395155030231880837384166454495799357895614704379754614543295541954019134628675904754154767942070583652862723979581999818656519191759161939401704733167419953960596800048052456018112664894757805239352253122344306970574450629792351431215460701727159229173636801792004320396617468792492091897752458016180236378776170201208017728149499372316398859226166147336894514131989320161818076055100297729145235862622634049309593681135239248810952183430669970278498885022252096399582037169145701241439403913648710088194197448603034305721085065899892520346121164328904493924271647687940609207099207487905847797787764307908813253635938673500985297215756165319763251421107762294461973132739390515915957750773577070337458400540060289274331044471414109946882479465879317464356267409425270645131415990014420135726368108154856971475158179111369630476910703733779624304404929649836999519490251658987311504416743338550445710203866946228167427783297610656193517355303244462934310134452372269593378271950700940546921743405339040360367988028396000091862098291411081335933506645040585821231863102091598789641802265406502501935200013260443932142971831168601143358135005611125847557520233873840251224891417119297342272609025688584963462846875192234807195830482058976378435675255085511117496691192922375921894189647430898158666541761394919912728803929096400773120478381242169521773652208792714745519104247732580331820285467422790035892904262164558650426165336813766838680666247452897771607908590544716902178667617500733174866715965176376731502712084915096496024936321900781697757647659322489706305343894601863749026941686150643950037647175819980440412880120020701144737164087627635562342824519202246919839514303409364112732733434461170152497133365637895451564110631731275460023901133219585080594615497189482412169714863966208721868763222870591501238527495983684661705176986167833263844032022326462727073999069584309782498969381954541693468754773764169903349407433803580231924202048826552374139516251875138456510530148539240595085916469192979177844611998178943707818410678571834772570754520650892617863885438022475763897555970456874948113912702521150895157395375761110124076324981448836899339632287924560998498251024327696234211572586145684630204485419138402213917279166916774654234832614516854946572202655321176013341295280104506809572475745166863678951421791903395787412499974748759068151917178674985199337755210125373886131643756976355550635607902113540359769975448063624376142580049899772168422896744524281218780919928390649305579850446451462148705157250989849377485414722561018452371662456143604680268181690713812306500436693925425297276135218091519696662986870145664018434589020993330135951681795723278464315312496293518748253871228400871829291411405444315545584024722327161146109249859579054002294237232629457799500292184804178048705362065270046384753393405129903684486732964392060086027047061939585031349792795487066506276065657489745401094550921012227825650169725163260295004538425183653320312602338831805257008907715914945022519126223652043831379303281515478512965104929180385282129941591675943619891112386665697198947960644356349283005027299259179898367031618297720745209416753600432223803521558164380330309593398088766384092029831581441200232462342746797499369157462613621579452938491712718649434163527787882927900093458109235667374299951143671883523759629760542384592256964942163993714002530679009008611570940058212524699781808422818469386528352163533392271975676888805086397210417012219695807725741351731135460505132878004610099029886317237190900190667250135794526969050359458794403261489255375695659408522564311192578689243631704404703340583259967698571697652436700952285081346088585112617151359679197452845959345784688287370637343499530460792980437939414117341721514855657755627685735149027471881652339342660605276200037405619555594445013023161823711693290364464156126563900080183535068855731022436963080632913507707211972149835834040808187426195157049161540930551262235786582011869100442030599354335837997890190103296077341080287470509185775640619850761669715008746348152829485483063016552172928771444634150833401315629346358654303488440306302326239722986966698084769186751341399612138121343014937827832191937353583791226622649096366731258145685630390841851235753377751008707459802869536033370673891191061183916672512321842977820873099601751589776290264924717468391731635831085194882800580022928421718095500379504486211533105563465160525345679087874953240980746346023559154105546438920404795506894313208890936873642915025531524394648800711256036734428761146308581863173434544847287336342305552434149032642896800674068565186046922101473639701703859574128874074432317124419625960760125729219923129862651219430927123886236129142938040316447961600953882982403812225980965614321781843730180030214521997461561132175957390614968127323398495248351874880644805684979732285668626583672297096567433393589530956912544590873220980536295401445664592029718943443238713310363559436865888419031411416596188575989623653834631888657223796895338009447930934325516955729583694092757085289653063916776449004048612746865376984031576169430261388945646190968023624182850413165757448728946459881563833228768483227095683349744196528113524143699476087792593327015729427174334735795279932581344834328973996213623347686965893319261147606772133557705005623046279582896886978474806533253589441562153898333747394808218109657926301479266011338981711642146939180284885678940420154293456086681365016774304671885504252735431614463104605354004927823020583656675158595662661924184047970154726844692984340024498688925625529460435014613653975650893942594519673816426583000827091306090732423247438748301410996260119147329567295285423085017306835991107682344130131493125505176485367125174831293829528487917106976260871020796478892531557394767650090663905276836200716521894057303691009129849638937844576750652414038055216451529473052281223661333188668254137337927266949224081758441782812109856792086047981615297907029125851709533005655573554129930905635656966521391116878410845890075274214235241233720381591670345886462181103609951106089079899577520739277502286690330791961488208589894773901488822473160940248520917140568681783831429504979970635708312745919890946105946418897213280867569340032637378939995283373726475850382169143950175256409116302937483784015595396527917154576878534740698126991716653173266420727576457593372478376187071583604320190679912920235814529427916101888014640699490464885315537044606508080431296677654518023272266394476817186642852300919669051501366747709544263337963364769526383694168602717394286440363494992444874461737592252849416164401883788883338881350060547248395747391415915539898833950878951122924736589120451281566549428704749549894334616304648631600258112281921355773194000992556050081120199373172029129276790003455611793965191735630360159938498522485920484952660931205639541666397827531892638207451254420833777016114014407864164935248695752134376223801827034905837737644969620917696430423299498093358181273987525948503619939506819004961249503417877643210264218988047701916580860318208552080924145278852103661761564842315419406945661267000507141240681554383385366852661505221228296636741930399038010637252357928388691307049655394261309462637870499175549450461214749338864552034507983341185722097043314004014994768089009676100040107915173970405786758504751099305562017812131473591533447132309173017665507958201264588430130379549637371460480115136535625990506485973134320655522789336880045800078802793594138125439068070856328316831462504071040416804302163111835433242186240794428641099516522803088620662291152004905413460922560425778739576846131387286684820076173550055772608066459302909113274571254203810694561627373141737356031664570183471340870692616005116128647455690296407194450965236736384378939716957877178954535415927074436798312942951068704817617989339448826225945264527589230684056063512482722355964103579549435890326057720807316331493467723343007721239535486427559056199554207677938656780297523030288429598409881580988677277184779630650627283577252517797370854036728106046162238335240651324862598797363288647366548705519882305868893875530046767348086132472877495122124415506015842928455012426274081580044074195501571468491454213107346109953254261020462635049839574955075473705916144039105737442123278024495961051584814630902343716012908666626249376230770196309051283371875306176372335167517755752103019836231339951888610197004440646683104844698175290134183007206360768533252340995921079121952371994668060810625050919152939439089536786180334026971742261825661929646671499900554110183856746864916545771167006548877382569556912573009648835264394045900142311581967657068608687237358244160488581452736595802009297669571868577775854621156672976299924530000109604370064352609920714293669122011203478539682026276646253020845315948972633061067513989183635929075455864988152085260839783779332722459182844999457173929169468867102420635591114428981649344623280395555598364738842942000131719891558771623363977077217887631843894069132631092627625235321360954588121717332028868446838859598146367985651086619192441524460449436918239435063256508525455537390480191431055884500393631687636699292390146333021014222921955851448572145694764690784630647167167113333948565203428069912403144445222155966277892683115675768337353623000848095416604737810277816369866489445048117671533017293489216779778908062354113225422713318379272924339335550043929618846772677989319062878206480871946464718781814780697311478160872499523611920803927438178586299430730821749770340888282187708912965738020021743245367291975391194257018703049961344259477363793567543774422775715253726618441108570766035390143936412156687510240955361663272891665642268241494898309850250107275790424300860550270712908553276740676707723263537710333817087844055040989768212553934778865152921948341262966236686629538089633269206800794376479956217189458220194422856393003132354125717802814903869747837669779593230380527493476263695998523335848853064487221989392441598442945993002796863263390746632161238136271548202914439889555013646718961677374275921979125791729428734127586947361943457011132332037729071277691630730339301834099206177757752667784854847096390869099969612529878233132246180098256719780668137380936214225434077756969956529114240868514234803237591121848634409613822939078418542042556494547826429479606144734864135274604928408314914156096623321245681567883406272449917659462265764191405702088159344508654278802894330863430370391045127892257156106226213620894439051203448775240587105350012098129680459739597867677817246277528804247738484233323468249180936019865357499115676456460141617252987453541589545997701088775175940433079031552836216525475649410998446570508578430734983739700812706043630757633893714120706137978525931324849820601985384951935614818975100611442745805596661449094064880907685282208433968051268431636196399189885332888367689006521549653461424554825130270005480728165036772972439034659791120462364545015188440073195584013056139620096895804564026252701090335089790940630091080276470168862610868513528976254273526707798576995554581769085974323250806871530422024580485711470839372008890111566620170535127260591626207654141731379924663142538932136562638785040652395830949907156889117107940770040035171212345026526920063912862377381184897658659032616705618430631255018017263556367254120195936224157423303865748128921345497800495016230403570884138003461020451016744738342930991810153109290534503193884963998966836940573941741018476782723374330137414346842653961706848020011560434883378533786500420544371210505926642871653664435036251834594377822424750014796734244297244299375923388123422289800177533340418018049089674656265962623977068307889645891280005344178808198285871156706573047132426107879243787079992150389549436029784414045871771637859785168796238729667395305735169235475987243155031998672909648763392650612645165499832481386756617063866279917516741360127163340642944038031215623892158037371682893976053309921245526370334432982694530777284870682459724974308958858359380685534264842975170529981901134718798391668870978379156828557930974956361160939062263948393283227825851357892398401739846214329318697558959046573526194409721104407458954153848407584485544933089346229507185959354717026333018772635919708666009796728609540306109394242901444227416917594262347156652443847090825000373965441262096750947045586851718797905054874549381661440173772561817950176982100983371374342524127354687629495447982016008005101873571922348493093498373358500886851682823030009153623254511560966916328015534142857169350895178721505335941541991169571147582272457056487440265665243666642838906275436216479906374691647214275283844496906310902266377986059858466333471560826410725895467647138928124160759413251747302426626811407112836658113753617157662657402514734447193614081292233948785343197570131406350253355416883041317485697332001611937518368375827177562030521944049562009057354458822466059712612617452881886235048309424542270828997179364831029596959766748298394327768955130251001021066675413400581485975570112072645481857614892692232031408756109704390642485273147128767683078094745672915558141826204141311825367752859438473281177964551601279123427018341766588892353616585428055009761453755813064944334321666267632842986769547405612273811379618739536927200446359626281238406084611778879710485781572240372368249026322395140055435912654628159849894529947471752740899896261427216311003029841260108789630365058050078441663865885888114145914932499715446354824410736228051690599268121434481777553972305966827186093363557538953311356224413773018947362270862396972718313933925944552373575555252086324035952509330354290495838243117432551400153895286160747509873543338838263475463810298490776762251873388078427301772446037578154625915741033185072037116046986847727348574349178219806260800719896681927753295808272563277651372952047353490631343890621548852445071804000016632811227356443139983678720980949687212396347239542375296417966320583876971988121365941656863800345658045749146252039038412326372030870151717079480362385176018226671109887455083838498404484743506293910151606828352290121996599917375689295813476779084222990269811646165977626726784372507808147446826591438555961140723291328025449304865421560573426686383939494730805221353243386320526364130335519484118556768534582769799601066417248045242174804836061081116085979205683048061962501946545024374938375307872275537133451839521600009476686138346742796826172640413452529020027172736908564308216697636012158129360571355248545455075230766182853922115601684212249960792627081731244672708193676361663459573908611578671311099289262457079158613038498030240065370196598234116823836265254336267717940922991700791327959366699346541713092743328628284726778331531167881950748290284272413282256906650944703276419610406552358215450802464784074890437536904792464662689831206125638687216688746761481524034416250100088176492781330880812754675304245513966556197222041707433212982267612916381369712171255239909082610296330218112294162951633890523207898208157272349457569158636006790835318078863709679171440964095910373447517552586901710481765083442031166706743542080512109166432137385223443276254523252583566162306722796076325780309083324727062795418766856500682968387570401321657823940446248727654655305520070482343196194768180218900660542192358923670716095199479802752232531331343564271225872290232002525892996530860846639097101129368634267991105335765309654621089231060483992247086893557632876706553931949867944124099560994309880266562156115317158660220548180120579690492525420678633697761050833463080834353224804244518603752957974251222817946039978689215762870660222641819972251673283791923222492208419259679496745626442465677332640918626796075559933161852018897976203936205611139849062594804228100202464279838237398422651373987505181550200038125328502183577494155129488861756401303028477977325960532655926647837780900567156035672823058883377259831056150935533188962693204472705009814916218973258063876406905729070185065635443651092680845707035761498325430060529212479591275557028808062102828586140118636680699309045672797125389420714744006140749819037951598703944492215919541928306222218224062809542448321506460680609006984163501178112937086847140983389556493231683403811522313576610007558284840583803974892060076338302230308540995451304993138701632770498184543276793510499667497190999391679003965828800127886878795749960079911418982975511496752422704303927240330347125970101887935511716563481124239852622207097005060102980591913688974744328539430650677892114582264397309424062727848420244342952134690052773493598407658738033751860432610200203293724747580395201469330038575970501596518682457185502797989220913894884916183828579109954076110551118027220507958416780379454921894252741273550150218008419182980766519534712801416642055914799707884979244867990415117577678988572655282151878987607429004609123671997250930904549442976609689884221178328919678038858234738091524179717419483800603332400494938769750316647057502198145991377023814942209623531940275605890769033215613463112986445734545519631276134131987853776154546640441704368354768531788502495771232301454133179788430963438986123388561826983070051400257804298060277669398852648194671101173608968436192063931305759212896149874588505392483260353078603030326905619023671676088727470860890619063612934509291500863305155172623241544974445428581975372292786907591331615624685719570375931359563975285749996416461449001084832842191860819220795177044083928093767013596743990281572502847668943804103024417561113277970253419570281261377837404823607681018393418544988213491458741975384568211737821590020868473416294133462536886551383704245752499526438255190798186171123922414341285615254593894522976398704742859907050302677218940687051351023323325093738115995305446042057648859321812514624194003627100341248519395895763447866570000873897210816570220859570165844518249940870900690010439233523855209139850445373840029333618778616501125381041109308870330258111339863271883980281088028078675377422829849441608122847939648884180220580737605196629630699699372495739357712678904686224246666141653376206626551457541438767890823929262621120471769230357904363887679713123315888302123098308377792996671411399220012263502154574278995277439309143394820426828580374606255452311973319889745061997188212500655046762262498568929255541890093249791440322648932249418520754823486448879104212001304459884896729891779221886478303928598558137920837315806154182802152759323886531446113038650127202520033169432591734663942880216393299027235016863007418753013232299269296358174434033996111733571389206517441541176693298964412492480427549824153796252696411297876128252424752478096772942906132830239896936842197599977797404991994282033370926313903879524405272417330662013108624335578728492290933336166826295146998332781536952093574846882456183491228250874623010489940519914576195836839456462463906800169378728297864424358040635180593788039225536363701397263798782531058748263314006850580003878422286058667588330776478872133126465326819742843066739954727732754961663031307909431391581008732308384716768528489307331862093736250033114483844148058540350170109672881772587561299702670425905626644646542834446765466845754506422236997608434831222309940168957378606571269587320067589753905887712947090473062421101450051215675228587985215421113213780750222427373040291041927888183641199284434752369625376257323443077384789985190669926837786340402355737096234207499688659800329235635518825768076439337669335535833813853917813160665934877872890621281074769282138400108508255011161084718825131567318333154391155045779644484403506740266249928442940605578010990333178684918935773584066655926770503594218428259586135675373077520465286194554442754577697470235689594415610003976655147055933420426847885741073834914642214270906603225699215151234762535547561883588231268133442849445564357414473456843507818173992958241378354060998792904101229686346801462111833858737066514405910298267485835253196099405057350204898927084189426246266017940190568465094152606445622778693943450732865450413219435074385025926139858448215218320493565840433269484550403159415144433336802831062425683118491179503296977889435235049218344793437132758100415763156489121017628956775338348556581668550543397932157989392128976840943927964323407264747570514864546259311828120162086039409846802706438633830183540531802670182626553919354941406715089808849170198583891433415402205926359577948586043821793871583580804901579074995828046498649848223250867382869207683569362390153781658683907349722553728339895140268959717114755839093972825633566620703742355394575152105227116377486592077629894127130395029811746233973035743200859185476046292476050477143533458861141807313859093268672747771423957921098833226680994441450103775051286510798493378777182555833422214146575616678864244253881021659536821484732585839972406827478957484124200074304912722550948465222085262847302809797951786691374160125950578667837494167892470844049073641531714649207499277658816259376306367613013377150750959878266671821512739570558190542294652715291205200767131024461811336412287854914405780600697864640746284919666364903658762486661947049886216372084683394340244734837685219282398584090387971239039198120499431245955026289535742885048495698795286273988873028042770502222374439654189728253370372898956862145724911650135178145994734477247641147246469168198552308900744269640652591933593909847251021672946744977049820446947880656236823889018162391030104943843867585166858443663708149382235424789780384119514895451888050204388260006342844482827364939206369801192585688536837899733700174067902783781391767251058492187938417853594192387296617806408855680277681682881454136389061044396223170106414398015101478519005029677842271260099241174889512673262201197538905547873883989075858656197535715812211055872894415976211492068748268325259789891159122642659633921923411007850669700271125247484584426576846490916466527418740567052996807667808601968771728425121960984986061618857440051212606127439909272986065356714678154504050275453645302879855346589467225520154765556460653522714986788115915406524830198778458172898034037942474539627796902484172642668266172618159820017768729623672474660036181927518553460276917908076956199210475707726027059925186140195311992954841348538232691619698917297310552681865777007358036878829953386535135459316972068336572992685845320407715464470665965709096486712876760177292370222089460083945951744593964551865786259079761252398917587104990252823098505546626285381645676703279241677746907274310966372948321530672051822140662325630905382137456913828336554956311231051694717820610383587216232403077117646785959853024735089245845037019241072220210792673658091810333489503567651806868120121573783341081045660375528249812631936327782675076300806678054844102017304312441778302846639044167824765152149087119875632387618890421085281931237768852430582852673200454886785887670266061825180006531044168161588751084305084726451265104144257646004921833430190765669570125771371102149267879579677220238715448799705246065026777471675425722632590419873371474008643394570009308582372200622365438360563349835085122753414082848094077085996304010802851427981685821910971958658096176061639790005338424150059383218901971914621558587961306969090848290805823112354342692859511892785595028540808114830967179263306999519744871275573511043378306755349805844786889674891488441289834859696256492433408315351929205602515596641259874404579602658841474289786484112063783947327128416224139511577373464880767403136682186152513877343731725664239715453564505545262394735612294244762916387791218434417447937026632173784561370472520247651773585285275440134109764183771960476414571079808066193778909134636708567064790338056106502940588456365676702548625415166496403146429058711877420645319440218891253607766039616658566675246433302114864238974218137766980567175616776236777265975699708348920810905025438354625398652107073903769735078631190407617101039563860668371869380576357642926224525823470201917224670952679804958678109668795045209333387258207824742197045813917565740514903770250275960756051405410420974610031016961618668461679188029193289729781386517481213852232835529284886584104184166685706964566660892213996377915769773031340346954195921096163914177153934478756607566567422254153647767038892315454597493742325268530565099706890180503827921106597816153247963710263733065587113787435789411335111550223324129042163337389601585009913696139408028231998543450740551951190761991627005243503955118324579784185091654556170030368559340880893410590452731604815607608353996468306612087391000324878484697238815299632725365785938089454715240687649038397374452052808929036620269784403414967294981201453196883328626813601597073322773188642276139624429065298691774123822707665506219907248485544085821717367757900968647746110298624410794075108529559346438588038201403666503441476764253051006385232333790778670741906112387222144818402947913854914795873641036341509065243649031576222699094956052670369118178123585383989759226853047156562592250023967384899073802731434576723807690902665924255299598907750980631796015054443120776105825103911649972030030127427408660745548686851062125836888760435920803923188727085830534877410797984302442893220227175153777000321624510507963776398263587091103974152974118308736480874746811671647932239513952059542575321356703645642865841618833524795845611119302106254073470038425606566701870657595561306151371792756794582115734762577177781367559125262118509578974198772178123987646313385536765086294382255325073537428681813244993407575579370580057254585567357440287495136514860614380793479517515187534350958250544912195234480502628907456165417724953282685739996380756801823916098937027175017167442005961224026892422669217113225024355569071060683628743361161941003196169746123190594866906601030379849743305926718501307573798037381581716797473218012577413922078693882767988543240952869703953571175463562152876665237333032681840323472814713460609679696254924578296496197881829085379544294858366397501190047711193149876623192125584551164112104428094431832125321859743049707021047469479628019404623934173322904390742596546157666281563650828760897122552046432943637016506953301977829063821933989090865275971056170250229688873501761929773051016624720956482127545198436763325268152550636346525381245525370439857543013559077159352287917696281195278451279694918419575759163116981979018016135007664507056685970462960541442106043097719805387519120979636672107314560320319934520459667604266654354651848381800181398759147731718141321000155945886597319322585626288530160224848599414256874681379933264252743263337523823520996933373519855160118670259944420831082260908125258209973940665792288480838138944691502867636106628820494530043609517838941967025696574126398904351938319541564516185594372566678065930846722843421440166472924014522357624039455091111339022279020312072022569167169298270811476548752593053070356441573546043166976585432581067190916820965115131193075064181095562612792118451297245162702163242772949485205296424282956117308398139258244663615372626204133307249483266901985616578444964878824992641106799869029551324007118094418801360758427483881737165602698293975418328566574636013884310230772028563187631623286238382495717955238356995413541398048043385952431179588097446815092874471984651151623241781969309722460654316059284639884715304326343799558388236941373282634391156967673740778281752712100745845270366226708414566409416184225473061371926022284914353470141596043903611636465369770792657179916201318184565586416143545998163628779399784593613894609645064416906162155310681182493913202794785486206523964613058921713301090584225735507046854619662707089087392006172676608589552851790526670198059208457416930697096942053564188908568474258098973440865521531241133388216726352951846349393210289601618980274431426949251634753395958688524337525010760364578370490963313035008737238028453705533644191707023041745537625285946963634488501091844466618140473308405815152784223821940061838895646328859986845063735157761419316398874352271136525103500169431566196366439668041834556259620878256824618924515398942401917498741706453955431259631849856365825031744399864202422492862749541906946047819453286953490734005220940637586934161152821835264830221281953563163793764742597285168425739493195488929357135922969526611464400980560987397784412846508468199294655089205719548658516218019118440440765009583230717721586590121880268532361117178713882047482020503173631836287527704795620676792438109690278249004822868591615543221349998454878907757092130303115496571325494038284009251899735585895028028650745512184717584929972562477985525241972947532055391425783023750177468218828158294152204151131939981756260818806678799569328350454425258702660570758051086352393149910462218638300316027770649396088407671555686599518187875475154567019500748993614641058840834631365525599268106046110502078355201745297653269398426511593842333443476071993374756683954782242665204880999154354360770877697823315051634199881916417127350936140271198417877734029412176300556589300714528714284677590040757689073341600190271459157806990901870174714008676673454112441415566167794936256850149981617650090560821312928125933722781833512945441099019905699531497837112305796314761472866660145923961767047439298560772456840297638296935283024101249842935106258715881388470573435619465311345225906178383945284854720590654308229865078801995656707724448414125148662369970100473691022553406484680361015904732557568790086513051058034239133618575972991682036499193557399560347230427691900901571087991593018994471897707655152439248234464591898409166809297381148926752582114236437089699603335083985320489182601804459711854503818673646217241621240245171634792836285069470921043228975522909274372202816077853300843431220833661964080952518197441192205502735193691425834592862018037354942759435043631210908924445809634740098310163779087379394039495053452727153082001168955550467564525397674449988921683089977430543791784123528380682029004419544000132371487457995261282484917447433712007505646013151921098407087828028849434710573114626746587934975011321164783291726728366657210554244871674021468280627327793217213710201147903618736566212800670613032502801190044724991303633215198996848830793563858094108949075522757648372845899514450378495222142338435798107769621467246417802972596442248437537489758827039378249470726589115325535667932862499523793731854383781768877302372594832573031656313798400230910770255364310552343708499230588912746815328223195733824929820783950744332675503987617500591140861795753544375924662282230865229854567760223817973896759924369716957131511635335890392903307400300585842080900858174202047127563752975038376693941567232499894340494441579660573058877621461957577945964664948088473877054665545718102182016364730928083556570234564090054896036621646290044683579378090962200338067269070841479765772818064654319225937996493974552974662242383105296004469446189001131738415336371000269676163960656860492128656612970201334260063543478030618070666461245545330889153028561392665769193282177161226987322428694851198518635851432717167131189161069997631806863573415224884020143995435661530449978307861927890991115706931063354500193968285685578597792622317597868203710665715791517658616850284291715448987086821141452571200758236164139510615861233602785501994700204430010590096447024468599848180675654557038705932096713040137157103834904380992398952636863732912776087383385923706465080169847445529912190547207971765554978025054985682494680486872031941955191125069721470343057363918082002646491051326498038531897924376249435108352845659843808255814689958866389155224177086993105800954511761352927025376897026522508016142298449367980639969546442838493973301262290674786807772031834112589898899351379218438814835961979354506448735458960282388364153235397537252913692661116837124573242595369938392708787403141965197104969024161578547839250307050574192686439252237633232692707205421952274755761123131140998332093492322698566038398160714451087079882942393920266168214577581735892306547353028208397385418633763365890294491530438672796757001006831510332687528484616605400329214391490887982368642252446329243632250030351797208057643897677483330718724699965274488871606848504155710083148682280764934306598550501903950088717232716821906901934649998325091219665253014845476553642310120933452366033891259392085018605678646161520867041738479634661479771675667920719452410332401822164900407036267162664840104957253569522548603719814499947629174259945207365248274590254652818248793263480495637950172397283669792098520393374769397785423951207076423574233830460341348330265071632241031409277885941915588894016011922448193459422268897183576896561112711363919969954585389964957627613487823954420222188343204897526012939826864088022045022438213204486350351300724020188397532809576875536249121663633225499799255112039760238084507953125459392237507723878050996331384069795842586550485847774405485995255678484546406838492346514039587359294989241947826617351368488779767614869447281297835951722277287649842901235407220855351668851759329780753362586268777274307473273325847506009992084127313550209370875290868730783698848119915696170982386447830177474384164789551269856412656141331681939615676673302304790710434344958704376221445702670191103844642214157208722195730005218736190096164424253596544605861924689873924827290427716919693395390254653687576291408838661333897651556448397079069760056120803317390691087706380771017492148778441157967158109147870469791079950869392681047603817900302569946665466734240561345568436699648778672208359192831135770162861812550341206312112304065803907240052580505853626977574033562002135966621125758068811863579781733458653177132421074240172077621418082062224809383190167327193725755626729905786839507136747437480128546159559126675585537066092985724288016315317292087048783013714471794194947698070911766208905767896551026873828560155030223460750676703287188812879814682066976029433224784227402941903963888653810940084851502265391639228492661645893783842436880266089256827557314489354214011619244868679091564125050925372303204311189035147703941721062112247097509079535411337202582183529604450905610213820968758709351035122094723422914098886326742168777277328420630729367584411164656955589722874227076271720130540531535705464510650965794086386830368948287549874835157391252881457019608116443604348547904306824170176107872133793675752154586676112195214029974764302445348798057198947804184178970232918220800621209711883783634702119050309944971138576581713184585469966099799796699683756957050314436068276780474264579964161851886936651932470857190283831435394667885709340077028189481526875996257362001513239868268973150303399922908513898693661449404955268181149502695460269749080908359220980998770293526665521091414061296343289148652791874462645525693173278337645174549335244360917276349422852569431322074959132283210594992096743926345975055519877555699840190646376283808762050195781369737425991650176747171467814549832969260476587959782246632883333475735100324529797187832331141278543957222466664269469761362227996655570209146024503834398092069764144213026596057863604185254410038026569213960825298116000998450648911797131220999936367703512145649090426019098482116055020487395242792284776213332677773685570008022959119394143495805697213455803285006673830825379124169822853759350313813034185809655133109455434533519652296573421166956329770850005967375388757944933522702602235261026493157082078349658409033439009970680653563748254165478256272679707949708039825365473929399682895740813562690138866861240108224287399516787624508569576568420839816300259370012248477812208720142610892231645040281502468725033864728765792853327199885095444610777648213074062737034517471922130594058123363912727713650408303761984332725772383589815959370996466014192679259937072874988191387483052098771292751721420700705629218486336345141376784797757704156358930405947753095056468769249104952141755158979855890365538696011941764402974357651447593234936891666690120630879875693465176849127906868910220673195646471130236071048745463952848043662493404139974922289056427564295006674763128122107893291993244066419142378863447581834003655304196582494805096480841750952418389920812636364874903188202114634289956347360236061696951362876190528892223171507828169565254922652482227746475942036645267787189176680401728956729449166681224054071338673759830605364603440679130895472095843995995268616372117757065401011507581614662997328653980914405980223367065760643784237928084104510099362151774040890806632457418096889513830663073717537192213569384030434828206219901048235704690777899893402094991505126712370779922641010515226620520702532465559040929093905306924039009617631347401710214169675864258988913977087323247533876325681751436401199001911624272697653812032010162146826048297606469924897547613887108789156458798456242067003490347075014375336165612320099521610449164300772631202273980513411007225508420978977471061803918773567965588688876323590874892570105477527906132465989919362427098371997028889298765276538637638248374501712240734782857336906474207667022476334458148984791829886769048802178052732793806396224678314853045813548134134521427595784211405480705333563434301245828653941894235435356084929676390594151193655370352309354874301334529442696056202819789847640393325528040702609718148528720427219857589654297464559822621194125864217552637086560831202990719967335659977856688644406953203410896674563118465211896876025932401281506119313686119822529109768309640965300010625994951834321804500497952688175051870357924368273345796505074073655052278506853219689039579483512196572895614758194544551506904722708665745387393919537380930072823971441003640196473357111572224474892530179849786922252456555852176281710146157319652263864363318730470079184931413462117212193303316026110559075230911763373673391436811758277329228903792444049718320471989186468154502056009499803268110311478024596397417770609895695505727573674431143026925420098607374651149776282637332402936093828662655344208785893287955965754076363448994056014794111645315996641159882345225572299304942750071965026468312529160984171873091277618701203830184900877074206098787183477114083488081222097470687056282815170885002302801988352595350753416239488974111316075072406672616326196048849700875085310551283308085992199887541308063075725884889574616310965242557904922679122824844749517968047201277619883436005254571015382624952088362932462253419088571213171991311667959083611139717790932799176467076739090148458179696944785642024790376893777327877083827024937635732145171394101384286960907207879371467506631834739046909225664064204272609017705311243660999619619399298293627454330591263153950262327183253560839344332720999942059498165570885197508308713906525071213880741314531832660019562226055872763692349049441961350144776835343543979965943241996234445778948168560146569628922616580035337804183414400892098178680389749704330646832261517562492063650466420163890715388946099677414856144784153266581236341539260691712208288579625393388773425429124334922427728208480296339134799706935137694596044659353197250548438784141731543583890303236838972154351065697418254018716725755358917645103444631044248118950795847417422953438779109078821550659549460506461648981765354500493691656202261700870721579345813578503269874066530279797909917812344281166242075994586826891838381396571224284827323191114655975721781399510167066143320750871932073786999621603260248275833296206268380858368003939593687181599100183170726562632580592638884982450106552551748918320668355887603009416457273455783000485366493567170553063399520463798197107792609598609623206485123047235646593488826721567245855378359513756442851808951390007798800837409002587680714317299413485672503933645914632905013147684301135165882629111602311200443409691325375548485970665540504164594712289275998764887758482266054369581860229090129942985786728730713485665721929810857077180947369933080800511571181264076756564610686787725145808297106454170854789389275305442307252920357006508066733124346987035959250531024874750237943447108156902391263076554256908985868388303470495000473204167329091779275122341864299708063045830090233436774892767702701728772140894409705124158103841185360215841431113250899119255919186379528676250027022270120313376763511814375111943084439553924676909049751521716903587205411855695865875191122108631265284261432994165397523998159823324288502674383145635462886011906362899303213344497929310337516948371005901539315899470014952391725113814882795215273255513774588630502889739640868548797097621675148189334870777593415570839085575043171494852477019464618470715651616425846482001305006037086215053827155069648103636516080286823231645881631186348618472198126189059017707986530716982618844131385173375036303354751404890680430667766232305971949576409006100964407371102049208877289455016646670197812180398686457980030951381600709561212280654168329089138296182912002142470808159270410927070651697482555912825128667029439390491682476439547994801294730177470028514582725843626381287409974100779848928414553287852562445494495173750585053123433193446938281099203938803752590529789232152111612340286371060650997432220413596586063513509024762636224731519369754516038323030998485682998728534159664405649798027616030355167917458379395538483036422781638213522575043811883855939909183488158405691933136622000517516148346206699282550252282822234021731980670899899995395884431097964400470584789082566756671149443024639853004508144563398996153086790248097184676384624688566172280174418689937536167254564456835145343523925955055824419163846209501170289339177820438203352307160492462528548207846831082321225079593898499987724147946423693901577911787107613076100023681409102174739829719557706777802011779537316843234301210915748356770688941200643350236443456138583545137871919199873886255826294837409649279136609771492926255079048761605801310078086105255867645544894264599893373472462347509856010558456811119225222975165458424588415447493555254352031759128521224575585795089626317203905415121481685658846623418402875128551300380137545204904135349973221049827636777269382866963610061242406723220936776297555633303239110888441092469502366738657148443944182003857309127478496918923385968343077074341849039601013884536479683434681056277178524133061872250587622814794668555864330626878416481558934381478545005010115077332392923696716173942166561967436814537324398232666907959518679904656823404645028586847789468174851939702126746635114492622276279365636575204073230860261481960625528589661748351821717144781172070028864055763345364192616812345052099796128213748095426649050208776282390844683888212273612573327553635963897297417026153795678689952811820724757452645751927557098787954947055979694868973949568601387659040387384689528331133028917025186283775448425830698591975548910837735193614038032977254734609608191873369891761524982038609260293931501572958202063945850302512900596248850776727763527599712954844516139838186180168007730607227596998730278849225228116519135961501111634951090649796724797800528540623600743205632815018946145920939769198659144644737397164748544639883097158002091396316039334623355835596956451213476251351843895479894756863106441261392440616775549758844762571960628810084089984821205898209078411557384099624028948443932614196142160478227075078865415301526562811578574336335344920407460292634934786284863013599481756147336439987458472899895998495764019048315651900383215520263583382047285254148126198780099982757666410060138254674775836743038083066861911722974658070856580171902563533092787866162129919744348828508743536556482925615080959583403964926992043190146955228028027089868688159976502938332402930091382563147358240308153200720874305009137616186342904991771354493722779577798078196594523277155420189793255963885269227709942520539610950278638557212438952465819353049844484115842587692220407606328572426907866792132438294502028362163592823690199529778920508443215562128855298454720270613545759040357759913573046274301776761464630848279539414323646116371647174879057284174112549559120630940964746164012231910463843610587886068653367025074794263399264973712905321943656330589241155378180951979000406562515631688460566918377695524635449545667256673383030567853301149961663562720509785091531740432615945842320517848522626827174426496315779908981874420971521373890054868571181907360645325886215318745387239547994103016223067151089569040187420225863430179469080345319433668598648944703716786103278730577418955532269176531671988094842904279130232831680883757007265036295888778217103481253340022089979436232136414957615341225073878943908608368526295467040278212965666482189706804901662621438241782377421436098908996562871109565396603880850161866746442747305201106849467324732691556278296356278448076003550527077124711503486076270051146126168932456552991470682898402764348460704812462184758563626211933323325622013171577936332576319307915263799396780305706745276500563032333913028094092547357390449771973713891975316261631698927066050517245102497213993663085716478539430850923475577253979603178858368536049304625754480999845701397850741520911182741785590711916455288198216619760813484494533641085307346987892131375354864261488857918030771632467528794218450629469977219465550580918470171774150412677063330577569509613582528001886266543072180473905980964585143019195012532149204593415694804339002913240642575764050089724532895989736161268044118005614027129279329526647483309171927511244485466535050102499379172933846007033240363119813782030846006702399204707337757744135265987699313245208916623998780159125061121719646790657413684231071813470409012844280530294603105460330278592076450571519976511693485618043984184636813032979160926929132558645650439939968472768728021839451299636921643869133815986600419868739475337908224069344887873176660691214401677363803466785572158181527575342344008793731756439166770455740465343331181218446305770885205972134779200922766045301115835215843078838554106744686018696367340326010381534194739519080909869087970481691391279385398763702789724269505564007090919262892807032054633077114834273124127153275373777290878351914971445334346268416987415573352379917751228881431181509621371760117888484499263963247480251167294883805783271263248026227286624150605170580426147609940172129072882165758495128532059321307533162179828007556579762534861939624666137868888388428618948263009690621994420534987217985215073528975183143375025434151317390459872603139898519856290878078319917275202970976326147133534567742740028350695922533396723654398683510346048921098475139638432713740511027253811268338284766748498834899485702422304772287630301483015706455114180007208235344185179583053594844647178050877556752150242142028915910360989934237312919712770736444628834811886936618995114231868455865347740110806109134351336819771675376342216450105806923221815299687639259447011524781018251468799625598925583762815187418071468374979942878220220690012369124538302826290829563907010961733832534806945482623806009299018745283610611707653279108433213838195909497891886177025390971600852088153761665470388128526666508304683350792418424779897898038513431252834686092510274686823975807585050361393627025452562010459487438952412702789974363127554798686547772026091627081807295228231879814069968853634897987620677907935673949943559930409723872762650714601420123828064093533190108475980002381239382171806926406053917243994294874664459738975741621443519979997775043902788266989228442358426815499173652848384592538346882821986971623323730468509051862834911125262092256546004574609770580478650794619120681575214457413320177590252763949588149367216387494707610441242290260929798832784894541763217775945296804311482371156422899762517946975552125944064164741824218958401796011060041379605106982081825981368672592007330775802111193505853818381398005020550778037804926570777689701019852074841563123532182800959117571164328863350549050341092308107363844237210466473286137957387721938791697401856168348199853882798671795155370072726943943805186939245916153331834223467243994220496145343694619774435710512772294704314099443220161131006880349700323979332207385643833581503372688488001693745501605026041565085048203936065087894947250996150593369331686929275814195024995571918868953897107155991718589460741748030642436185056410351157716622551041449503647637027957253663497575875587694587753977800066290043845497284579416567507962279192117800463547362125967486047856154592452526794661720097929947215486927780056416498405661561102132983519805749875344976042913478610556036554873566935775467438772704764073713736480025348426067851498807245749165245157052814118368919579365675399438032401795107234442854661697977161598037442579745323230321240295571537829260724220770508405268783150247484456232235246971957757118062722084432890609051623449405789792857112177470878587025511301628514361524181225941989500333871744584172457510524836835595442405099450842925477816755246101878255686834618532524496438394413080937923576012827384287966705264995027956704080210675020426900230163222869595246693992395676437884206290433398598707805180657379891409112058682119916979807097939322359996462317268241499888064136166434444438408759452939580111968905424620315320573415727288500534798937143587710230989485231109399695908716403984762159309110462569437755822171700166373385430468969626199057443766119718762009160141582754434993092352412063945675613251699641269197233047731465083388563615217074036393526745374906036516714900262060707212458093452680934548913280428250160804727684574107410150603994575531518894864354984894501010016610520802431642993484318160914561929293792562466512668951492020004492290867975469685070365853489742418847129065767315848121533900802308483190620753193141143051965411962857682727848918819562336920443349096778976653025179931949240910344008257490261074061394937026039191925788373874685069961916631662215933697242535994707100638054545056658268670804692004769917240651151393341419999791826337263703733645073399639963740842501831533659344427711350937422932137946444920452993758523208183969709791929982041381189395803962474940553728834348511566452581897183076694300847870786573116067957834826223605193353771404618113859886486075752702151395543585185074816605917542788846963616995350717013107323460756686131596712179111819907819807838773692915490611821547838536716030186729947437469388647773832471254261619496261852074918668940817164354218259075934711785940777609269279619801546619888149516729574837377711186532291356226184049266206960432579023712129314229112123761431415792602646274645960933779245559455874891518834488377872380719142884352733189685562100001011960158079312579578601438414865475373214224293118710048035603570826373381516082706511595334031635555262936792036461430545223385193537430774745502158032908684921765242784431904628074939692247824502241614727181184522579089406414619431507742564929141354804320166414620233841198551678242713894346933266107971794578248450443037811913105461652333039852927165303462386052129065139765531817751279167579130741501181254998882334924187947993654188936802300504628460476454912296614218710002956860772993080718846977042773506932250930951324845865939676433564098492254682870999423673332525795439087015010016911049342142213485491482291392699457177190200998370211096128472092560246734818169546091679613311684407993206686072921747408067833510502491736335753802997255556350714614562258360587730761810814480752613243236350661393029551749172547732835615153210037124517986326920244239113031224993879985308313607029006252732048843826118947670752518030737484914753599160435965970210617591952938707880550797983782983312792706468650136192758443930821213689949198490189658173779446281626519116358292166583339366808667743969982877499892266726720591685459584441837300330614519652645157993697930907417700649187416951861293396214235920428337278126540229782076834411401778986842440100062924486986545908555356070507705523145066589662237504934066386459720692978750601206831646210343229521891101817957241041298565503412133330219705377972152918309717828876342696792775005098435146481483066411190760667355517418949531516418985107606825467655773703561111256059640890455106675793560845074901324054509035180988423634966815627089942686704734064728657107287108170291761357109936052080667501459011297263812114824531304761033474005231233964992747744851444998033614926409600981887401373631135817661954308666771362023713545781057819115923340073138357419133990752839985010360074369715559644466689517854239165952000264318298549454637707372640108616894757399471699702789974395850436227333786226646402769437938124326709740482764273995527921124840278885011247373348809585116368560971337918259511008810995411731632100757154819743228371139786736518880188798201713164000123083404460041148124838470515112196534404035292010815531128749339086282348952605411543524731404867620955650626473157193790424482302539381448564641339136166798915611113024879699365925443303250307404701633312732458605934441917552556836816598742112512079314315171301844353901063192381004809136328707527885366387276841342837161226680984146348823031426470080937077404007330296725486540009712453140918031097571530916443047616716024120761351425798122501665887052844097055683236762349346080587974471457042789443904137322622285054991762667821838151576544634665501859934964807848347104382346432561740277008327769660772135132154895128868645852455894399771868415705634459942023581376858720677125632991178164014780629371735797916070558892133952220992933311500095108841697687879952503820225792568329113913942790954733142136470494987148993356687906530314122148740605228386966828669379642302353967126734179508857519858788887539165906121954682155691188674658791593961876579814339312805308926995196525329127041053290194555233682100596442707737123399161553382244556299659466289741643848190465337467373646773344173867298331984031444621951334857935249300977950871204974829466013150020107620012947965741376518085389911029474233562066947358105533755461355661145253040803536877855755208912568891561166212109710648887851474387390564918500259809928480102525967881138384805676828414623523270494986311549431327795014290324163273141453940890136014523544068487840727470898015112992035059261071349322858396418213309202928456750412244065734688135325671586629068157995259321677654120681905955968106732017321139243909956855880437481264941214828419199041044447048404200368690451150119506288637584818369160189928836598017592697340427780634848068485870037236093817984387313158210924326934136737867169737500666139527479322166560371752888054986752340038970754618745968925025660081880048280678859624754751563876696632495136894116168383257577404601294516944329687922319707425292336731868349216684959913747782862408684716124416792578115894610709726805481396794950021961162133312373821001470418230295504436567533786155695272898739415186454525188171232728879252933043304316695359594922608125398210100112586448764891894001160652765483505154150879540242192863562538881542795011759707371544856450384898697148362950205238509454896495933337368943658935455359071741033356395982648926734078000912206126034963042049488937463352540677815090485496316771228212494582259031153295755996267300749425836605223140956747268067280739383317328758214163806854703789398889508107471918199024727813115200220976772034574022156185346556411014531858114958271287330725331490792598130634727071384276146544011993452379573868056424331527293839074437434211734878653688462319215164896065082141752019053896077223037276908308139675604859895422334680118107453534026798084368405097401927330638764551779635082838173513915458018472232233278012454618304851873877511692327443638956903739547602757040158535857920207880537406560630892292059586814615953781353907882384920998269606546290212068621355483735682145191212529030642558367158707431298618734895668222419116656987333564954393149173324189315381571591114923565006496520176512712835507067691704889550131103248767120932200756544107158443921121517131318356934417822069087506369142186294182428705360449178452355560810340492495153992094393370425457225114917426145561421369387797319458166629846121957123181426223755849152500959670175776658433798621931207874656835808965468751106960722153540324445441427334553589029200033264848764027819714562252524217908751954221969124582197936059608691495847738644164537766004924860020993444671453214237036427344849395492201972058664631366670764394612473721155901652366727705726004010581508547943154400923206342734840386086580341893668868128815305414485516175930195986358807012143913428551859030031424797628982114355591565941254462213674371828955148705883986837766960108783019555694679089514681286999792807276669253274338616783580930509234809599229670399526569663844984644760606767668606353987167781029329375097387487912843728220786304241287481577689618581699919341524403636834000190162672846598362168581909405702068753519055189377020352383918289586928036634498531704323468385985988094605474654809258392976542482552355536787728087701019884385974597446277150869527432230547713325511851974004272098821377090620040518694614408272427347371015466468399725633115677867850098246682381449162840098200475196090253820526656894371347529843647011806989914872337950811456046535960319749296285330134985663091716955989196177877897622573393738550059859912158121071084285664605256449445400947967455120875444012321166623541855464000609505558386920857823042665346072711136513633562029436676104858416069318574377885587958744355386963799382336141711068663652473249083063970324542154858370841634253548164037417750496917028414960879877626737483653680249448600784812104998212313207049712499634164827366145104304921928918816341089012207909144192360664141090091364172468990033745985649795390422322144579763637717227934578893948417811463019605474848996529423632648665449891378377964771814667169199501547100255498207551122397125460914997929065082155236389088992400943704441537439756258280162541094460602314029187348212873623407746469194949711691604817693325732911431503203432439638442462696975478523492331007514142007263990344136746856862560453914951101589883766746258294342975321960258341281854345155873456344299113871592021319476876183961335806147351926042482039881779520751172743435699909441194825120639558079688355952882572920669385837571361370031497306249161493893259156749664171557921747593166403477557731594475080003515140199101998523192648372629811135309753603325264987165337549204180778789827052804550143924061620693662087745511562636605394519850408985361712639007629749618305852668848749383627747593174990934640885865827401551106418260123022490963797465858920441926192655044760444535076113806942587045629132412809455807842903080584748644976657217144164108248163610976391905292244817508249187041208066097044477360710653598205287170101473504580227249640385622172601523951549844362361547273020388344781051738823128742301436214844437267452754364569632381278538775354105308644418815911022967805695437331559549292079590775213602614065788238186039280423001493058328079482480976421068125517007455495153002232314193953768424634567495981401145434689919560593540220746654742874217753504511433162584541284671627982766740190163275954869601053926232503513798480023836500020083010377469501847956333450948796230233894314299874788556002736149396381433052687807163583192566646382112954510421188833831528499659394358063444943682003112550514087110742635069925741690884454687390694557826946085819342513094917833529658478320242845520754849133387671501709742665465178456117936969148942121241050288132967928727126889274053046102131013660319586901030660925389382762535052700376664384952412387007030566697544037842318318884449259044705803146099145317904806269049876930023762775410633347824145721561363655296674362219047112600229402364709574517182480461207628110713888908169234276256669825639688542010404144114918221228070026441951637741772916569528117784838522361299056135590998837368868494964036003544740681709799162623404262099980024833185190458041740466080175855063158186146886599254137811224391513459523735538686008020979320626393732411833922018811140342053998179623758486014389667942001128917654845612732003158239148488748961262248633811242077957447478850411291164799150474633657334994033341869780622623498544219226122044269891736333992182731126551442359637452763006248132790454091866488139707365015546792976649293149429397574339790983690495284854581738682884102441189481739557478847766821830699848634333058288177467983276635987533534581011070211862866988030258270216203357275294086425555376567275305106727979949648871480103180798759082004907621957605589673257987047354226459885078536450227716879428314343380649347659812895890425348085048841608653210298888278931894819039778269568567149730192514324547280041300835960921544123366318393532790703859610693675741281134380288735421690238828917216295510848466306095172803085802972784584412609366331927328360860384491803179339223169372381551528795368102611294304394665669330663859037398933569672354234800897911884901958744718261245519734169499355691597375510682721523702361389257748139655467981952481140575985826429032972591526546772352661680190317593066587292098236034872533524627508186354170247016735710236627555757838933181802470381626646795716998709931158294781832551916248095245066358576924018674258839546147572349970782979983630276295554748345146703348086474532258768948156076419603983166114676143437384577481919640850970603252822960802818170577194341984690286820677007660197766109605923265276494049197020066135777440365286162583626040700259477646850704174652533545173601494744805825471183529463929285384136682853734328209322183019549661392570938583455022415616074856432581322890785631736646547255633668483380474704071813889262177840600629697551107569992952417853729635103453573289928986574378423356435274556280912197677227571763454867642922308302716584607004140267729405640409453432782959858623105256795941234285319236795108762131811394123712927684595839406795194260498345308672986532008535660224391597559884777992748907937447344514281102443603308874359031629636653790825357114060281392767722614696102923279258686136856470211018851251558121478288163048280850817641313154125827091559387523686502425642675256634744791082030600503166322559824315035753663268613302764268257147126612597254732611234402453417657895438060060421214213620267085453982414130458154602809162474659723758837686612231065942163022383229000697104832147253729682372808805472425316263836628838716193028391739663507546335546780959304789731676753251272086416584473146537383335153504911774767999165878014280756582447390835617329613948976660869392278192939198953020681028803724876000134297889635841743277823144490238790258501643530616719726662567553781239176603369580930277963645823848430400018417791723397129094347805293413804579647678109950208508649341468918437196386291408536761934905640822909505776980512217210104284760949616693812035854717885987718149655814709851858319482359312445238747456825022880128743497520612887619803756054861141968204047162394368620120181209743709379046904285172959461492860666436281821531985001408781388977605168775395956157195001462593500775921137613430560447061518162367096133152002637673315244511329550674821276223424495427211844109988617140290801119535076022697833594262579082852007462479951364718909074003031870707989714822907805380326688742334718758740935086591081342609124545186281543379491017644481013682897062095141012843664151443581304461981474321578641322483911823450310542271300242375096674458124713449156032738629252491828862813780670749630474208565530816108347030153638812352240930362936440691237120769099638455046527343300376905709539845807061173555317094615920169862409944966968135333755331414037505136062743220187123737268667893037169013480267355463690250753201408409545193040245220042468389036863588182357419012201111743058445187560359780800248331934505807529013981402145576893327919529162298060105318534515601363429579965416806252224421853984772329471414116753471481428539378238043353012566264239175941879941494982445979795903168145892652309740392308768326341611438969038846160698922472552377291257234019271507791379936041846890888942649047780095811052690148377019890713884931734760844794353550981524068351034247923249873056063960109518325639282744897863232979861335405204848886794072212585009423879465891894255725423117027375279789411586505787141251757419310019242824005199699158431541529264320319474467127862454329421080649333332275168602922669503311002499970264970796040106227721970002010054345339004248624671830128789602013861093386810392820334927720654453637155223453480428325008676238477716256970700943761957673511075886795865698175962560660587256938135306667560520622275512089102538733190641579158365727837664135590816503170048991812072581931471995345407024689464302101621377944780607535384204380840006565738025497452428715143301449213841548201750496264701819984122978449118099920275028696045122463710395341492319086600886724500804032483517341168950344689471430515450760229283491903282972208289099349631908683037860548241562616700879440177505556623120800562399007250776155285509662074668859810068683877653987807205683841883227386628794990052407061186375263213020716055777006288009177272540778857811804099566006159609382812444339159286829688621190613301039221762262758460084886498877293031972013028222158948180551802537879817200399678082305103653818481304728237010248495175419372858807012967176656841784152355504763339841434246447361644522263231683691082815753227713316953855909164140361967942725021950555274111026629645766926225369206028990010636797943852672382783390254322419854066382168819355586396748378331547698027982348721713799758039780994114183744832506780716628579550972693040251309992284039601480086457518773848717267933400955217506894166477902559979010735806655653838678791963765971059565200259648389800326766052028722684355797356726276681201250175436734898236426510456145483850960983799105425362792500278850648186701648368894975994920699187812781943413582397070029563099122370788581006521774025908609843260188520823347756811606891027595771539035458318141841278027161822131033274292931165397151060644232371747273715100179327562467498472324654026243454389686897698675259950268607456871859958480660234074132330028540230828283710829064734404530334399729385448711945498202243079265504150607556447216043646434994921244704325316102579182431731443064464337226553876179937775488448194572323328959632677142865399436708711143304775227673318954244205639945980004459697900256446833956753838899405635812612648180559314437459430426744757567594813424607178514559463560038706135322392342956829051484586474598115942231474831042729111269817320922187164169222342353479131682970332615243032063930293091786214694886149430241917148814960183943966371681451280726285591085213669510561827609794705670918220640681862489478426504540571300694346340194319028991397408950912300699970133598894161365950371797126670311163461357539402332264286376760558290097835274272231257439434782175419481637556219634086539694089763897405735852765072500247987790919311592954923761902231577807045084731037119215870586906010267983889079049935648046034759824598150163973549317745120903461264666718424672622564347953014126058379557200308415206623555624473697349514747390294908746449355791686780243041280974486360848517895303003426448189490955003436636595401140704188279394169888567526092935572282349031263231439411045270187790817291195588380762902573256431279750040831795440911583481939429759395486703775706157438501633216474124466425178554242243593330621996425579589935541513398166326526195368855484244971015063975212318570040353979108770873940312563302236524118758650339655188591373705338434018080739517133825914156269627812401296495035078706726360090278097357035695799368972395906938745823412607939273660394299838629928180793973448009600039741257783894971709320558895192198719949046978338489696526461364090526518794403414842303749172901798227973530040802002031451160245065075970389736954575023848597385062032072836004086437046359412956715884569886185137623687757246032025532973116650933756972974335216269446270360885909814658258570672625595441536967022963770387793810094817555444761886335994521915510827832160562760085404866281080297310708124800641954820243100055551988858380788614966060615931582442976762316271917460042810390680885312069472102691698802002010064436178613744160957026598024878524309898753375684592551927102169291671836208771493874398087177022544878408397968068835001432493844747873061055106724810814093149055466873463931519905870318227947705418170082992314466192910971629980078977989001108121417038999799868656517631930317015039922312982130947505831370668320122261127108302755809517010047528880286265102312814670049709529431672901091625020247660374595672082901041630449395008479074582672630535420910937482405192169856260523140875954023081931590038994331711394150006745888914748229678871345164680589238752582438709378271483995829522542630321120725985679891260992401567886423196048181374964180261378574207362104202808940703271782253427231949287784821460929467129674335748230592202654551594789087015201711476889792606126075652979039444406876489982294275685732824821255564972596818793575490389287298016651364515370411962822648380670044677686137588702523827615687195549892395553112991223003763988209078458802573835490558981245803291245417189946430187526745114080478934257454860334864528416472733363836658810716898734334505506704436476729233741094002724377153954772693241261541101767701121079018448126703057061088342704181236381867455724389910812860481754046309056214968505016086331517078329582891882990912631340460817596902878394731171472683250874719008928424037427854278562714542952134588780410754537083605133441331830766133870392454779678934735354802157683906023614226073368601223765702205713207846508993360994169746348082019749962844254934512046532054658510121033336904495995077789920520021609229559444566643840256341708502801822819592877612173415897238006557895736518407612904762478538436621458450970063989207880650661498783202773319097824449231885953075266603518878880140933989564494966857805467283524387815218568268011256714934226417270806574448639605630800028490615944733197967815997000772993228444999526605994058948696634883140896181566866661944460031354922851864509886383873850544571604777102192568254933346037175887843127653481811957452346484461320970636694206932222929308286849710724735297629141867288169997884989047475359458900300383924221018105125786978535335169009435544271780609603445495284689132088282609448657691072630874038248179283704781953170528051581009123159542312268421718275239900236839001849047677621257478178082041370368876941115362076616196943336310337994220135913311655317282045826584050440351504924724852659203558506835188230808589373163454113421789530199759997442518303809579429864989692104306098286968450877215388222650716000938758160575661576220755539177023480064592101140512154729714233297004802118504484050141929733526482855676015270472956601319206065195896441649764266605201120540639086748712626005281768957934116162620772542134500078702356556706387584608434806829632603515868931134420781271128560991864239237761539966547868664439248241646497406447423251235960621861874713643157408562465114031145749962261737853480944845478455345547714403459750684213623179662138981323545108429048404872900647331021595733917726558573454898650632774645261728544452179277172628617139932892160835526476353319556899087767129680833692914738837414447641072507017374055270982529332917803614500095360350249449829005268979241367490008702106740949828886804385441260378677984308294549147080029031217230899308020878191398938422500416262276487661607451792319087445391605134160672479434198151514024462549171622966838355278044699614487541110160379314657357711692930558568211158342535434742423482641494903127482277742184046331174052569077708769636957733982243690215331857272852995064011430724198779927013145903809350259173391776597240409163498103602285834244213293633584961691028154399000104504863613609041974941474183125936032957066903064890478281885284937971812703595794340875015031990466371586382456880941573756499121491787907342137507037400311258115089570628170041098488544469551594855503628613019588635581677669226736525577241042543943054804625786050236963887727719473838427633286120781620362346975125166318905863612118467829579496913105715783121983189714927447048349659931999368501359372441549149035794215089482983914131978151984183389210277649134475181414396487716831565750299366845044090552005676998184503535141914967336850542079156170622213138788207815379573255604067732806682834702579920883966757430148990805421502884834596724923686659663475204927858032339750992867686385645881749344732313722642006578573817836613240960218248195487031284460322722735247445323046199583550977257800977586692033957598406748554324470743639737126777780616271560553092800610480734945976581635891944517349804504312336162092559177177740550804785470511335542137440078171761490638565704283165283692905141802654495245917635822348007228137565323368600623559048655617941795915394399986611249998035139635738250823952122835305669203444966055776714567336279456192096388696404614673341675477542877768924017817932381182313480963595737636136047429511208794129058185466325791205020013866455731072115643408990928448941157622247194419471677096396790190760926565656238327091769303692865670613582845762376054991803450593556290310583860575149286912137555164224154847872111792903220698385438688868049859690393935523392864332061911972663495023097296380708064808574840345751071083154267790515747524147985986363721059765427512456739309675727096868143365811346511277685551635611426340092824723968322248017292044327629312213614289826110000872234236453593146167934275383884583951645028981400843490503001875968074706974080550634743592682970857010874793044728097766115866888684570330669451592590352734114361774000613815380265553806647999832945793115404934551164493280637737072028188601082559701614812866977522873809520914684762502524986863012152593104280757306377020984974631450655325246880915772191569353687525733840067636498625925799111772998601606912940298898184350383764884280768804733831207804327832990039521121578905530876121153690490367777227774003048972231882616612839523877188016641940870586295846634963262273544045713429911784589654885809852621282967865391451966099232874359850686372161903760093157212451889954295149447532956652346070320918588416936327493559004003908082534531655593215144725105392662049932467032935848083479036512518813674953235722441437489181149513350687087288916502975995730745794521556243093449961246158415413837896038048829785588253425727611531124854124917532270409732283618667126033315968962697439556095290150078028587143828739522065830644521819428063646559742380063640272543095443226977630057879714280684628797187902242492484004418803968376886678314131900198002149730220312218387559773279168660692245478965862891607663303975319975182950075278752014087656240100815126335086206991156340083867978009134209952946982463984382578776842127680182807892845940273804675545461888502029473602195198380631315547818496449167122542455084592930306476915527808914248997230816319361514039223938743134649441957410860374907670421215293073404772400121147078351468303206924495615601891907478417643325792572995384085458087989523791246815132085856949468219503221278654430919683444717378174630763614578082718257376587040563940013575629189265686180836266577597385456293877887825503737101029197212066735824534238873614162777134947286403176848311546851035769335014907201853590829039348816088411635174846438503735801439904801104247035330098903987421874862466030521476663373400735435595880801550287179630132745070784465183716575448577956604735014872491571175228416826531263009554194317354267978838469363535566824724219789132476231272382188938644953501340439639672979805273763924174703992496648452975532935663381797869949049862464597928223815128430745437874498312508814679150862738848822769838698209079201287501650859017268057887166856725062995718114620165875491944461856684795944462217832638835731095955839622540711458065611534600071632010083567224070755658715366342750528476047503542484206634461092908089790245081538803508759557062079994225312342050249920366437598137856702997642197374450246719680052575109531048723523688546873339242446517886777005229940194030612318871193017858225728503119066541932878404867076937676512438220486397061039693817679636546774839483963561328252442835565171757601630760449284235315663269826117742541960526096813760666527354177434992346310526198056349770178470361431668511738425967529812887098344982556721206414083906904744824561064342204973901044258275978064643485769659409438948867428937206490681731158739151500525568947549116511195594741249093356150724288557649101441517834883052595209601055362422837858069904437805850869315809200566638134658255186214637286631497318102946110722442034746347309633672016941456657344557673442380919712654832790913712468285013371742623003418631673281963494161917266177988033598317517038481440642479107520536725945634486667391849464353110213143890469601012849796507596316659084743372111378485881549882340933133247450218174348154841054818059791820848384863703965431242607464824909111087909738157051276996959957859433621345703304559193807185308373394566392727705216432522538361043259228564981073174362808308252939852218303980823987620839232595856455380609915745640886377165268231632446001205529307334266262821824642815769947881443977397833208933001678595365854036635853367920367359955609985818835218643965738495215573252022782900674216765795953716355571281891751789570699855589504336304341652336665329877116031118420260247724143141907338358188179821606752149735535979496893128511389073212621891830851738603955620437158682692696968654041691101110587461553441240843172650019961830249863226995811062174398900287964415762771596937330586263560790305148541998293266420577261498370283338795507817969087572368074298728794105470232743294342837948755702620423950143133888104159732525043547951467111924830318829055847728135088087923648410044512541624177564255320083991460861460610515052135367565736651733840946245168742053632138875534663993831742433010541078383201908406003288975499531542813959118395113016599668993634999535732327591530366745509729897964558808232927010086936393193296172189982403080109943172199118035633412547194369809752037830168092007230096436541087411102898773442921097659724908677263953120646275915583766288352948108331934489515678035126137231742330946867161305859365781524540943065647499490146314846520248928396530095075413861114189987017391016169278634342377148283572961694634776523875430652455920941914689924090239483423243786363069399156193169989462899189967227578717486516735070827739307571100378522876446515231697422473969245491465277336391559597298407713826881527010205741388183040282191220864705812237300526959368491566876702286308673536881802539590593980072167515744167046300147226255506918510453774348806309811672077645276658980144148960116835702642006236988572359507194238389069194893881007986129044648722713151336638108381668888395879592149065093733130213495102839711363615688613349413721276083837662947482965416590350841694916085803475894844450052410646740199264262765204798282722465106180185178074739661422779691397072053828615190556252642502571114459065258852855141476703194990935290913726896208091514317049369854273525436077708683489622265078395122161944762579187193674363963896733638350609188274612883559397558847728850823567998419918962732670030896297684924645173933054872654004448600803963673062851694119081413636913150311619977252606257548387344097943743834215978339389646931354454839508945647025063468225289563041975057622777572748858652993672485411144612339319925801965761122126179198196867075252808888991680987068802245331954656178910918496297062126867534666581137254025992876881684636275962739303029940235908981170030333365189962595455713591225202160038638499089269458583623031153243102198024213600092545766678052859347504994960612967013855226968005979895382303666403112653952941913737031848649730079407171404539985832202811953692182927801524645554205293803286800414028126568467352903684235811096348670098050377413540991085879564628697549022822273652372622041775164826637327692190214655353018801360459884908801290449423218796855687744934290811044848574622022170061107723750669245210746529881055200665233573150874154581754043910789005001652751896165349216369720922052686083197633671295329475216184846867865380425270248393059426892106261854993905877989562685593232350316043313560410255322146551125597238114405346024238523752355039528149795808982672770476765772528075045563905815407485148044631105059024815343006361002002222608047074559471938751053363394454356718678160064759822117918397493656834726884966204046105915816844556591848132527966867607869955356301897231615122945189122980946327084967366302211432935751845537748491652958608630669003210894168400494909999361230638903320518235600901630394408629692980284028027875883959101148569174947825186098346742419924791610022337712608268731031605658777385273336880871077902182025967981164157163713786870210119625863270781210204209745743984450005040517632512512784676170459770373931741444118310004623182328776441388003265593886063227931562123757331031356881111392936714841092081432320271569726519038681989124635820024257097719094460844827637427294595963701914892312890525393205203778940132288355372964538632891168822433402139776426219458236885113801203760334330612764419680591174884256094131885370920923952364478317183753496291890927645956720892851782971490788804375012319278831922617315192680305777249382823916305461582671458693551499885155136252139312889788677620414792326318423471228855603412715003833041370156582272458927828622623991377681581811361683501751184491856293028214574185297751634802542203324956408287568421022758033805765939514199154147076883870455349963708095828433147950247607887321567343235030167119532149971473397137206707922010104634477565088447478110189120862976405494867161886578601914851428648856687478643746488142287473357496923149523064938538115391153886494821830246792234090905603388717475893000010561304928805250271680454082747888788450202601166948364287692108663681424973174427797783679565080350373663947013370955034592687013370987882137651995706065341679006571787367944959701480737522219258024633019888315519626742495460441785722736438399484054794666589716861706266536448817526135654744102673619960353857900862776391917602337007853783277313988783392676296019761342403011215341509919186597267868988932984658421785458886976069205364805521357695248502849323728055420408951613487527752162205793491857595368627457348260380437736454573741250095064146389405025335306423132132350574122914553715853234010268755479064458971445720419000427103960029044917225116015216330947909187561203242319225925203331869207393856642640112595164258214879917725651988524178505699987761847602987623081327214579630870193661412557883298784655742397455783155338865356993565698373785502330422170997229987774024136149875762710616877409962525511462188636831841717903972557923042332825472928098112846093644011177308144137202951426177363596774569036156904123839979572668481931287643675321160045317767568860265379824349351446334599599824750197942318199277134582937808107015220287359542524227519812978210815495813351729074186513528456121195900455037292041771353578882800373010391635654845645940444205753777055116731348122760708730168253641467658668327709994054095190212397555633778862435289815808443355872841219164200853775164601046318425098312093032913439328459059707348968941352505702469543854357828164381122034805925158923633377986401257969233478339067430090996360389281010678717543171515203321368033338248502335707766569773740639632338678599923716235748317569749842714507020956559456865719854631872376078282288437037554156832811979220516701338923506271282097893007085596776963111422804376414855611510106137346923305522647457629169695099706905562511044325419000160612730717078336965742577687320356344654073147611733352062062428216906552254212430184579240544004301317315040953796560150804512774540739071215991251376942092708962484089463758661077700408456720581526620564317958730100910298970976831373820800228728561823330724452466271861979046436545749027400486577762067931548094177812784648420843842446423741579227108712123958915844477616871111813881784652413022193670860907949254732033348092293105781968382359948054135790278422928950757332778385148565622853442119354823197743350810159224217272188423230894918453537068935438401197606777860790827172046127497662965440470713990721306218241080610418492583514994114579298796983785230874787843220007208468680337715764712218922532143185156167726596275039690434504542103495515443749870354229562928338971707754572376859748560918900611502027790116664603224342999379296423036663415272836129088355027128376481356927896120791484872931345788754029465906503094464459741352657195172817951932889917943731552799453367151018887045397401993181951300759509685694869653521743083693253241277215450637083887217412543044876465380724324668548908582473895532886527437819352862043851015755359319805966542467792431829405027406461017652736597361356585692553920867299615007513104615465514500726214215059093288827034838350923539239245648941819506163835396570016076450945845424606477896424079043877951783617745292700086405703709399550864956912239310618289182582734924605287932231635419693073437120017836057265142513665210226607378133943846775649129221397803765266606473025076061444786779302746066330304780427021304893013139852502404761311383936728792254289704765336613312702871393198808246415568671254980494300030299423270702683809135247819201118164030119705734845318087388148644151826419033770899853957400242704364730418400023440372465478207851623118152536534489337306150312850568664720055173900500159294563125842164591304834832317636101246814653215252814682254890674151399632610695128727960586453639972516907793221046334466651029883309115540814176671730584410913057991271616315422252025967050636466825939514546030069214855898083099670005465987441616262913317954087263562075456136237110723936316299266470355880658736747928955657008561317411858994414941915649540753620485630545353584446754077411562526837916181416500406693728069498356658642308343861448429685077480494454458431801292044086266962422250404424540673462283876285205395288777923097568052827555023701670891676350911968618013270988770653649708121933709379320565322093059243678979650325275732279309192913216706289148164613947287711245375888470570761434533365485287759730497525710630751314421511829478938877818107839595480590169552647548592320093460234819117017530449066546705702584029956970704329654105125615092010447886020177602069012924384284695251522549304465858744734651074033045967330610111817364717189039291019308977681597002069257357707971787345901830124807471888835327518030301767932580840346977794472518108634130214045174001672952557287145367401872960429540141900780907979796090466523120526474171262763454755603588596804803901229421978918546799039054491431013193255126638403685167830475988511741202357497267265964418695429302965194699208371821870168663813038075727140449662116140974274978036095465830470373427455625470628131511139103701306440347640763265763740231331355431342672324020826147238534155093828461565171012491289620218161658580190732344814716229207857724170924293987337827734914810036586977513086018273941273659703812347972801224670171682586691341705034567331800556417855184547713812181686359947204345903241997578539304605275206688032676505268119712388380702425213629660709083543042550586397493126312666722110650699172608391075112752510875191415979458060706263556995700583677791944128882561491477662665344502186647688460299717410539914851849237238945335982198797454956414896359963267922685327307895033387469953575319159828481968240485287762174328177202729554500654899027423751000899414219918567691485643852060604561604652333033365112794494224210420948436798384047145838387333354315392857065721375029746186585839763396783923066399614740101810164109941860216818758621243436467082663520722262737864428659092208657166662086759833682413617150527437438867275472322429937237908760862193015133454006635900251577436809087871094335989931606012575913733310369572776937512925671531398311945328194638745868140587484413401751343352298053736312615252154945912671097931222336563176709595036303772655517139050467114391960516803190746944999763553496501436716370190010819125574766253675343960747630974195659940417250824217313156825953946726955686517524581883063396716161879371629495500356932948321673706670097638534429705851974646688622593363077660702973429129527407873729136473003166945882813148363494913430087095023312641586823122322518865175718832354281932920423998013786992444309573816189946710489105024155401044226726580005318181408835275774097425594491914637185269181977029547734053987734209662583303107384070731204878218950088058253334096756706917738730164201841945280156061618103461476749551663223623043110895903560374884694496381773145610607954854041782778839601741460907524406758769127555297569045435171147446291196307485693966004669776772300678581080006069996767861156815935215310878096919565970208926151302304932860077321600305692522787452238006302190366268079543070824130951054979249031071856653863499475653123522772329706404291936631233630296869275786310529053415806517044292019299902858638147516672809693661848110617536112164063914307516528792266561745441252591645159240595245047961255247900879839036758941755642054096787272479072061167256064567512764828950458323246923506243796361228652302830096330357529896869096052385690134543034748217691197421387187836263630226460909141504559891453000351103029535214471679389868565003212986625873834725809009301588065858896305127251200604407943047032811442319883798491525555340904756556163438046390996665276988085447804280763310264944152356796755556096075766249543312119131703411519472400497707539812348235281576996185647766900677671133913703242468883752912634134411093243430895049978467656843661884624164052011183691859162392619584976738717816340947345766975840381078659561692269059420071590572378057213001309773847309490896073570232746396350502732648225540754744668110431377036219026187164554906096489231208897170560989074644073491225366725502798909408612269015003300680315648083298404122243901036293345628495120214862030441461972190205109227997145306127164257512121993411860596942068432604848631613229468150793254877311146830291968130288611465217012229803946682530355723847924046990464537153234800264751719831958431984356186146101221935288918716620218886483545383141592410691953831489387519771543922837353245812927279412664838360530504878952374426703209590845485618546409839810856251903994886045844746447446845364892312211575916275128163161811643282890821847310873835684304223481497403973163764270266225330652474590103726515243990770005092759108885627800323362101546691283215445810561747466382641956608947700768753698741394594526889084125565287872117133557520828758542163867985021763912806441541539031769070084135892144648559859150572898382680659204516123631405247617440839016742453637462753988740787687040052892192740602841284610772132486439215707287974419279397403631143256929284530141358725148455066591590167640281075626460509537706301071896890533484805375074606695628387340781986873311905144488646636780386772677632707012008066126541114715635063469369636443329580041187988072985318998688533369612079741196973482760026014657377508288693761806860331792729935736672588668750646551954429438454770739814289556593907897624570567592380387174926737929708219437230048872326224496827883217760544241563601610232483077961314856198259540942745729176541158369726056723646264090443495000768846073047623349003994753431294449124882844381452232907623527134277328288046999617080037229684124634990869723948476298989729548085159080635603649460703004130699688127477645885766069291377200288466086661921040323556610166932301471371199498744395381532889195948977644734580906195023665388586040741988076262949600966015060269153044526496777312919173994028165859102149546684964259862362331675379945701591541912333032935276567896113536526783600421571579189872135225394444225366182332912598675679540133766133298872466997866790237898184570726884768407059983360319521717946444753739338329410799280092722033160324221149644019681772357501332351729583275091357274411950066374578699251507392034403976537473982650188722699887179330676759525680421602209062363783514394105382673129830530882023140568882368334296687408199856424676754924598821864057343082396871726806965167882061386437075443851275593010959378078946420045429446057914313069513453271844229552667528707379810266557972876265752499533640559952534817570331713624645637776718085306605696943623061586911127358988923509126234728763504209759208672865323721367756053264826110720351302735565014888998052339806135857671873153224057361954763999514721161783345675086804694539043796263229281210094447137600707593607633337351313021113883822205547852128047429696874577371143869038853603905845249326093959027201464977399368658955934999137657932232203431196379685094105098673800366455823070387849954984272079813801046120941543714768403550715086315617139932381917416092103967953414195624700971996386193002440890893759772894392282737880330350858567659874261880076715349263270627468338649414866984142104165625262639382072399238592855108388264653892998085895680517946973741595667939674407338982807762094884215643680894108803237482669504515278288547739016720626216899864307127818400275543393879876384236815269244013208494259016724164661294981847280551905144295218792273428083367328623195229234866104714283571498725631052137185434711398367837499651484678425283901063232442042721714617542399956989281652053403234825262670184198925325482377789502524198841777596595735518653327075224351154592985950081044452614188231911294030410302159909550117425775527615354961362662681317439634841539128467091026525938289175122563787321765310073867787384663581162622880093306587923617763817476085623308368746977076145193935674229353613001686639313018919252100537636426000521583952130357989075114392631534020592135016492891347788867640508610897524720247586468638910776944527639394702676427756174250888225939771738856472143868473211748685399357963912190261841274176933200478629486086049093066426371825588110488849054457123629386759427032387518088544759167434303699441218115465826019176640266787535045080263663249844047528294287413453222894591013668185873951051651706973154864156073590471459734547243686441837713870098598661444338743142115070735988251944367912022680773570309675411443404727836648263609058393216430781289799196086368062576930373255350761668468504120464793297341264565944378838381576781947120679093766149214269290981722363661480161875068457439456530568411351651272022542773399241160346633406004626599701655243312207030874164450719233996596931205662255810674963534710332684964348017996976800656938474778318968702126857124399782592148157442651839564431957801281329058960300649107708586331361175104288879544964557889807604038937233114799989284219056137314631688128047810442956265350815437359473825052354712840398524128792907025008567131857901717421839019214683212998414903619173056631988665248985608525488991996974177977456760262476347697674336756654898263820232656787185789806852303590553337991996147872975889347744398861470149959658244094118061080974790735563596828930208051193061170494580419163354941878697026732966783380712655983374801094886826398602422170164052695804692530092742123490960115206888485085450505435807157237788602034530006096467439168647048412940957930161724996734063275929869638302039602822022424455857550737306261046257608685645548686166670520015482822647741828827152746678310946593153271691720350141078463163689208060314476917122902609189628528462080062936686287517750737641055299833718738491012694999215182497184836220464059941196725243907050315255900223526845076384001705045152557606508350400596222564005477769901511507984415564070540338906707078869566521095594320770708587771224934314243222119640930973008222631259031262961336038014991018467795571600785672199172814137187623445606017776403842527620910441970432454213390603640155872661484569833259183318910493945153239786017122849174026039100079687195890334121090205291725394825435165626317284096441254195733832807824605333194494788719612780468866657777203054303337302856275183494789707085207930853350396353643038292294458140011283215678582433937842506739965405640033203835184466265788044781107509286528688077106018834814281660853889176483339309861429313990929971986032342842666805767851466733940301401447771759918122265616239014707986662816526344100564257680730764068779390562291169801786701971773614508885917126038089845126182924612966930944828027083847140376646238802895989093183784109550957420408424385017759888164164531809071074611640248337718581799881779017711744635600590015299643113095782822113871671798049348959948821081699366551445533641422705773129329067219481078560620282900697953501181676293301750981938406419613066723517024200146959975151591215966440848898147388601534633801253064567538313334222022128383921637514043471492250411983302484615733091981594609498642326780919820279145896098624461935850901098340203424535622519615139075285244203208442855131483163300346606486962097820728220837433228218286852049935310895032966612843110765709027952109717751822461922912067773997070182220921792574970051116414071637242846163408269084024575079138457586472558954905063505568478304825828949231869656646751158115035433119205611718300773100526210063086249937804950871472723396755901850159884503818594219403363868122348930307694436617071234286126463795868378362732866072480802338367142983289529174910817930291437442498529917380752043827217949016391064751106053066944091700879025509924468429853209282110345749875030900789564097043250246094592716109022690806385463186511859364182695871506662327754147635249696916872345244019909105131158281883274671030774423143683396538047305036597510726565487504169189903887817479090584725845323874402344913383773144252257098465592121193062515877738069035237310663212131697998053706747160053883861028195809327868286872478009689082240839550300763698871631351043820079807370067529167948727631303377879617402332860581966752890626187945634884850112118175155959594343503807326287017561203332216845570035748305890996483277772825284043765861045918812149358221911228816902745985223935978007764965132155513616359994230888824290486778952485578298327238309506127001053883557507966774667416412327000853457338006244804735736236592432922564502040112456439141162846500414591915278332095695430043426692389036365037022700196799824434037528813358587876870316360478536178720401351859415694040790590680936050323938158242335115490445767215180674428546502537123072233096288603657434058413366119167503443806693689380496362685215570058097730694956858752511426347014486180669459230915358229649461263603156928928296390953017101759245727904378669625293771508806484635478508740029345497360121559366994727215249550486773921927826908716369072979803360405806010811966434163905686045989608510325902769401395538193654193524051359142090177725781568745799989860602669634003439121049407873879542512137463434675781382408940986720417964698285772280677989230673502564529484542879657506457121859162372342730812623963886543754847174519534362714029095401946677464217161294171181047123594030829678003649181041901949649792716847532608675800151285236522220172287903900054501668727306879987897841884202014420830295499367551133951005188128469145127144334830654831980274558266796462900648787784340607636651451814118695764390284422557140626754148957304029046889622326851106163994599917030758481098454473183250042437815956535180968923199866474504886694649205933400236649947697232277725057331499956941418534528358466073084845245738388532271904983923258024226438345920024584927665627377169313630203944094671748896365381401033521380836700248796109889390886960772983635926349725699488910973294209253052288999028320563277738511609919101375761119707349262211401143500691419765783474465465041773596046740455788387179884185438021921975946765589653436815208962704696833294986749754987473602746401579390449128455338953669412009222375693207266531535652663502388611222243355958533880801282531679423434375854926017895767012119966188954354377103680500002967505960230559158019217141564117399313804718437774930829368446924855337340157962815514844027549032776929965139471920334287750681874484983709814779155924068791367589540088902755120424296498450497677594317743787646686687383450564378861729406651396641273278003409187055769397819386076600197122748617708741901884842964077217506723959518806351822024322907694485227353210878897343755562804081670496755560868176012162615431466856278921691377506085674452007772485572746469295850267527046080956629350604052369601225039722510027636046369174521713889446272090094748643834139873279630592714057325273510709071871465131930397719046168650293018605993092811815758191748409081230922135449581208870363066145088352019106082814595966561913160138404878346764821334931740711823738606799602324141771842697599524475142227342511638349443370065229527582579936490866249152828053258680071016335781065546181701324909009609970360875678043321198595373515008608431198992507393725183386208303801097473916569236348504206784247826078334236983411605555361650195639404187666707867723717211386348469071438594076200270678688247757136908116908907897695642445637568604236252399589352859919670607018762971756630562285174646004481392886227717669328220051765096177470728574195776593529875901335927645976582820103296895736241333378072517557281661597131066887583681579009696666840744880929858573287384235646462866950028155199071910540442276352792412577830708253344508930298031938084349993486632679557105376354445397787982339628832112974572522561198342305392438291440748158763447144058392969405657246168704610034222371042290056273105590565000673149756528509062406584697704505535168847801937481977205632583300270373849613385370367773078490027870632652226420583731380661814240038849860208343685112808845604330735417524472975651921368738580399704573455883347239084040038056676083267548963727145903165418670306353341674195810484743827943798800202211592503078246553156237581813097484554900011966489874095216111754919784554942387586214175925489420761926391039714602300486808467534547471413513570441098014804380271172818617582055325403608996620065087462687274191591943958223397679337447265684962713548798684096263407078621970301288510018406192620718483187751310196881229986586902096465181149045646214727669379294369119890411459358128459771013059707967600536028224552762591194037869672567877799985768299840938448114146241117884404164211670592166031266973132288553401258642597833198043759509460519081611557518087856511869483749260893211189036001044441782540549288581329579864213734280786495481826868369119461017360181740935769668723905877725235942005650524394499484453841369302602660580574568567278249378863772156480091546476498696591470731173202190228798281597814177452344600723371221658391067324718297817515602318291888508931823104964752997682221603002364506141352730996246847973141645918435548094746056392478985131350009840104023865531635030770334105081088261161930562525096994633523324871241599847852553295310656041990163620572377875256127530625217335871548675242091185326081537096115448759320807738147706146441256388342056716538709175053311524210353342430006855161662486256269692936178539692361940411467090745218925104289698826331449225885295888980587695357899568647087125834712444135882423951589709008281996166929934997046456420909054233108031372533412858922059010485241511213486212845595984387516488527150230357143210607409950824630462064555265334467799905650744958182909003688502532371066525779549002525158355493335998614226878418507453633015447921657058903065130366514862591899067945625843693035037911754746973798888841104506790936240688584422690008998668478342905935153046945262841344817395431050624796325321679354038071995124757821877896989597101210629703231848552859165645885614910469050412757024815235101788853995008561023456832812146145769911592547793338161657320582335558341258938345948853987482928223039792574146068683653093238736320299609385081359604720053004214096713884574573550561272133814724547459568522692475304708396038197799384558120881382972961986367664934466243609695660784696094859083421029742144621296291731840680209842384607248466887986559737695709124284450288625578798323499894853053625285458571059798986837637319089831465934368939781594268362307580947492263103357663535995351150499456208011345896167344337946083462817193436255150791864626289846042676750555283862523488418709807372287899442075836886359773082175232192803900687387356209207541405431098901168592805296593379393709467520495908157093505058068758060766402304813795059874480206161682841041465567172733708633883207176514564806580236165125767549810118628743586030679405120975131573816612579472334386021455063862154906107026262579994280594284838978626755110126034676888657269833376859187167633291385943209745628623110321726542431960790013266566806505117817412407482736570256084933312001869835729616690265264183488586157083648144948605912275042432320540727336404634872954721585650102240378547013003385887851015474142830597640001771915889944826746769389097826993263431911557467914240934812839763442677854216558829781200297250160781258954548588637905224923408066398577684233429604042443069959079016608372341676059393781100035018638800821577290513656564864769689733868517932738769755760574450329295953178075199014861769373433756904335800373346469415123020096060184791293778589366098168168805265977606617765866250904571023440904760769038045926775224332309747122301557376120538994314408240133147299352130789187738365616414516577647793783477635430665438637314260295440585806995261993482578726736886785247842233850790483763634277308237156854240913538268829335853305892076384842764538443851343808032947124662494054539017883918521252307566695526695269118255738993256266571097337956841624512810627427921740705040118993542156129370786051743789942158618659747881269013585300069119435612411001100325225045387645836190226512369439841414383118520552972591497625637418473083058941199409714316594415677546582621983691154399981074513282765534632654531932107314933862947395805551385701756606876952460149277310044994246722178340455747173744623384674129872498106907673992038382558140163205326048233860904409845466872255079724396580268156409912261539574212883432207282841392735519989409977238963656769352607030673167996173317483931504329610924859886156026714634655374133308211741403924654739159694453980638393492921469170771102128111611484794093473361463015189148862842572757144546220004157933796802885229215353966290384055159416942147250108689945232538167603422482869346233110236670773939037145836508553989133680664336589439796753323552431850946939622505404211907831917153250426205046660958810460445669752695419248396170574532915736525176341213761830199646565784114347866661756758710063505502800456501037549451245935052443757744514237531341333489228678374935263501266084007431500569215790807493475402479614926891905660665558484214604819887942150811907115009141253432519785823255550574382205008179700311591460538474246565321914070663783708741721790042901563768338605272150270559726016833340431411484218842089493581665180124066041801869868452914660682479372182791715727100405311526016627596737192130370594308983268609810932006168801147042178075918980436620026439024174137172926037587862464269729522009809451880609438677790433674325674128422654282611148816316607978875915684777088869587554475563897804018886261838068267127192559950764485953656017447499364447171863747502485793013047762019866410947345319451658710680838927096947466393030629090342086248923500847270653254951304961301915606220192988032650873800522091937019701111592752363799219364627109511452826272270021754704533308201210624917648411061980969428994823989895113696686306791717711003475949225066024204694736921770127007567395740466754763084935125938008223163893148088008741110571800757003975676956707176451763320474591642758781103393131577577829840799999719171064597670804146658713643846595696730396320246751459723852266567573076253374500410083930700262360862520398620111045523238301521988253346928310346178929630753341770568622513133211419325096229652159167371136521571558044021011346770003950036671015772433236540127654937248635568286310857759235811083267615137899998856208070473733685043926444560729012780526136791003602959009123501131093351117994788666028151014325923143345793629649367986429651302577977882831214944826028838240428484907851746696571484142539110525384605675758427858145054934596697087870476791760810739209432639866692126263143765497163132211285825788788771682287145895367434101093254982333743251401630459418754173363752653774798907231004139673756456151626790213653389667729636797895792929170863717766668273725453475908862471447073202966742384589286094662612501532850838080653092623825319287677985825426780164441143648341348074127320097104952160043845822119314765471592929695251392639574157610160732271529256447385842946643116094489965618506977243470269902919766008056458207868255614162833898233827524869895238603701305074918408837837825923278268867068085926730870889033780061706309412063154746151112201295520338151093073601868577120242158591809088590964946825741027292362200834358565203658355354003119880442397679203125877750315836321726889823390108088680531544318541964212594938310375157247676254144719171930219280221243702258162877447471861786231972073234314710352944822428420789404588758877129998538647136645537875213016122367974199126163707733337550098831289703073316109575734420267364059223406822492739907126778044673826944618333072330802594034930923666612421887796266408030194471510519683007672480768417422959514772471058678962101383439259309542361555939053831498896403106333457417942236728205393443278208598509638647535604412408915277059636303579916869299514601995340331706459997555658769568546595709542267742544579704075034250889883186368155266998510768528180004194074472364976926496264750630072301377159573791651162621654234860334491345515468984951686612085347893959547238476145083054977721387942572531195945634874856764181045356559093024318624743398847229382526066045236644575866972108870437447755159351921924460854711333139250287060668621632903621646674219856683350531020558349694683214380880169379699733679054095037580638765785264328109371222173451612372683044909273464735297373997188011458087117415363129074880668980345338251107453454755046209868336103569114454628109089588498225558572451759114115851337158524626123578558091488613995492993613911020181932145035402402912749209604407270346848907531081745778943109032752694607835454111979867282217213498691785362071007689820942293753391021721319956821635858898047692279362489480367862441723316741934736495922325447886718465486337810536732646843781847313909631437600339447089032545559330701910309630283651398681699866831577889747686348498847028609965036194239735851226205073975546186992432134561205800989090337228872696465169293083155370905226732706299681823372912207934172282884724816952360191705670917746710697487858814614438755457642447122799558465961618463854050011961703746981156340030467074921190462358625985248394211072336291804984274199948424757537689377577941984804062251758493702766723594607113367570119581260970134740893030347427821326135196357086037548619880671839122666792026958826273812047248312500102496303375714274426271326547367824914713556113781100726949709152478505700747148753697367285624753848586290598939556007850506028371787247576470861313751064202110705783807198435302530786013913093588492904686373012906527922821279597066904766081876040617049318553580980418808738139108976583466905621103745255958014158449604714047025167692792146494401402509265153518931117959109349799191621388262534407139729830393673800004831598125999442671390680909816543427191526071379537507244138616839808472448845651941229024993852197444585273721346336518072537775428304075665905049996194054398332369477259264096337115622058087960453880843515865209182647176516440176431822349329773887557764392731150328609398807014813602861875887317911059143591825046598040991031281256105592208356251423005149180530721190380683748322579237972672019910467215749660541523321992336479580653299188279936557089225686772713159294498158543174010010996294032319528371915301165944890576264825551813667428943926770410651161136901405468599805529384956759876633132585035325550356568759014657697782196643883337115800453374454735022059996577631727605206219394156774597037192447857634243562500036009942208160187270080625020084816836077093598979309399152962458169544790767092600811760395744391178616153329308841055694552052241892633069619146290352099526445114296321838439114121502272959607800374096833549657746886177263025697004625468332640037172177949289532753754078649896539734940537664694219692427252171943609000958096563643300668597681658086014051346252977921439739137017811546382684268423226750658617943190340357631044154260939930184731986170559574463305709684922304525496761647914590290493294859797249465917760464734196396714111134466519429502970550350296601891355284204530551481697075984539061345630188095525300317947225798983991476863501097950240194965132731755762822245148095598338084851707762387965668903373835321954372963462118844973585964670130328799563626734474315174965490040070873531242918578828524297855530608048743003180541396237173376268046873865893682515609353141837265209963091931271235164793923573346284871386762651721316861220764757238805937906482305192878114290318283416785613983238459833530844564647595956649759854915398591178911675134837774335870620309886907349910615365921282991277140950698692328352003716893308499086977466648269312817016327499733083160144242800689560655680593986212324050385655068237847453340454281827979752142920406803909873878834706000677512921597122178839424287649027538083182710745789514636313139495359473471069041486897287093751219187983220780770861194726616318040544829572592867740173985903593192881374358142093372463272883137364655653785818061314503614405110433110216566227600750870994981130408873947579148189923970726766419107116484758073760330334980983355921963581178395487408710413546503403190753151388137072684117436120230384181063624999451355574083625602604423236468242994287762616417410018096029417495393423455527687084503010999995559762416707143965795669557230361953423162471971844634311066325938293310661368676372851362478166472954002457743226548688970220911428759411757260695536261720423054716005439371581258779583509260343891731914995910220328294306707793821885032745265879868876240073441687042021500136389396428283058351522146595771270197104170268641250396039932940677403406173942545619354321345618255679778800193944957589969995334299232081787485556462465629795809208120501897861213800256847716210640259096521411095106575647805345864287829183631700882384007468002409286390220389735885597212066524801937436642539362027254296015198492343843661424782088593507022191190955764901765685401188956357829486962460837203469089198256723609462470278767692515498030746800832107195249319570701151428178059474105770830687839970584167485989955073621002857060448037528484783303748626949872269831637084005935859242954368559517643866897826482646531080635408460259561536600138483129379221143180254226201853155423947065240023690112094910620552234348739673527953137930738517184929573521360760893268521454614106476662937605317339538921889578410572695221297430315844791239102226209788222677321401471830675105924004537961700514119785797720267173584996561868915475026737342318546080150889895269704977997474879119998489126836430485957672211276417522560493838205820012699764275295662523271302226162475135604722667862848356602695425895754022014322084210037884893105174241011823453269659142706341826722992808471090853106011332965019752958024240215213033946581661397786802340582794684123904797190208386412832286498324345979017816302910306892844001759290586187111140761696689628625223963389090105346083433651823429699338378404846167768150567678670900117187126885437099681194285525773157525565185936307570540491765167666667845412204412883264276873711956998529524372031822227992262798408439891416728558119699749294627048257791466935575843603197479306418093054677590706658319005806578958656616111083243857751779731859336434857315575796794817015070442385172205586038988639228746608862566870688293269404467957442268204143028478194995824878463696557510675724570301772879052185793418824196830867601757040085587987439804317243552941273065370803830587272867524409643758375228218294459929507962793343934914107655426186867892398599065325582075280718675604874822380093318987122371830476108951608914308230485355822762557841172350684739316763528685110056296509779263826807876477581303310261126786881400657733835778697005224007438604064558180042968018028321736960593595806474392378718571517957397928049202109098472498501627908661764235538874426838175808761406803517639386976878817928558196416314165848150379831293387938082744114549565929750313699351385240127544832077381600734810213408721770705378069507127092734925085778951291992226358894721312825980815449236351619199317762168279993533665498317064525417906389827865009954895803965232647411000057516601126913213612921337324353323899352067239976632519521833368703235711676184553550573209751933231551741347793907765626021486266280651680191089603875605868156259049855081282170506692605406024356073114160743711723486632220422058844346038555475915653183889635071001278732850728553223752015111207280155298317707910348778186108300240288330707225273107591128279693569366887933617508548813800159841190832959969890527002343159205504562666718073318168291623281775070475852965710788585286374015519919552576962417136121521465783710675817195159451027222698195495332441584895740884420564783047256254227229091417262121406493991728288010061517920424527079269154092655187279045952789757760917814730465254796971157399441476918081682084113767253365077150998553180111928606091197810769743244341191374776715630055233758554004758748163550291963745618984497224923794014615252857760951846490942380997603222481049805443458682247134300547133446805168255850948600522256585338015283109778264820842315781352712247701988922786426076197966928803214490172755942528364510128999727615574852565351142190230014520394636521747617798531547102348700876956190724432405610751529520674515742709471015288250303855699764719063366929529546644144898682672348867065323494692914099800728398014110890973825830281457445355107886223327507516151168646247217833484435422004369914714732696879720725219020417387128403175219125109693099604738269033442047621472018222986970237870898647866113099111959209261309062841306140955649148444856010139000622486168125831146726366427860236010898363592412046159684131409037383563841407601212744073928261838379335737633285276535601262364351230655677791933593933401339775018576339855017889911234330843882536338653594345992180758461772841933564113757156810098066721653455194401085607175364321442504815100476113771026821250714614246405839995228037234211966233208064901205171150250704831652491932611112625083218347171455780272862622294941631878659153225243697553029708380207265013174703128957445141361917032799032547989527972065232472813788559695228356174427705078491131842730194211213253382691987122898516244740679489024924030954701084291072913260859543135039028140698390700019715721976541320663916514093467625594388895331015260211275381193886164301085327044707358870010946664087138745440455651582663618697256216505627877754506798118051828853802238349274046448813334059990450512376183006506404252746272331275488694561027925407188091029123872260412604461442860030305232275899451823117959542527960619406529431031905241798030064468862071114536503251311071460946429162808971275059979262836233453174261376328717969444376179424772162673725990926807211733027975224908257148840426746325709179982402314887454160701863259574773470244208026601688175124502075704394907431817817612066483449023985733620149079496821339506323127034135752502011581434947623364449184319153828446616597129641079400349917328836102502671226247013518555654333079079237359816900263000370786866386485725616711601034730760033178648034783922156356019567824058753601564505139432496839577617278238236639159480344741190948905427425213171503350962587485065703452879658657512802380252598123477375193279199524569014554198684183243631512965726414597713780898574821439113969490301605500079791299824028327493637475718850063306204612371857766278245279122671914993656403869109432984014103686011908927967290389637155662118792768056449643246184266095554161821926467029848189985117188562304814375552459785438490873936814305745372335985291811471238154572763671009325031185431318714030226209274361307268394070490589094679294654830100368953765157528493565490871385767184474011933163236297428021411741833836356930553482840820040718442051493994205192495024236338410139715906024062057924006267441790473993497417870372241137431690875536110405479751498861600249080965583434836207334557189331252268253022008556827477547277243340074841537217856438969523758700086693247832791266441122604314759926889675482681655431789858499207842417625125687173385208953537071982778819818644912745076463871867794088732724632121534757527017271882654322566370037282524199844710324940495540652876112198326918554859646921984231940966157851232761105319322296976156056681916013946443265159100129913396302162492489766423747584374144886222730903374320018913959498685501581344810176143676259487480400659884414018957041375023270838614836601893578397167651540972149934869942797922150205041519004911559002095675332055886388619254758165060731005891857441940593192838555088097427375603509594920171700944842094182650531371776460019778307341141012924857809026010095430866474316828703351530298611785463706057273045359019696213623863611599673115228021075766476397641495406031959778969970765926059991505520739146496387525936407216122877228772243650712272574814270636653423686515082152845142361557078141426043228074431990744331539387797184968473725962095362439690183522966868009503960399504606963319482232880347796190575629932775989867671614591634073365726996117463045563029591403028776090949101891229914333547321054491544437307436018090446538894863217356356821503717463889519862889366209099221224184444934237845859299000993077365934020051037311690647293854962042467541930404531929355880511452933831697906993155292467328573193569558348027979439001574715028352060767787551035507499657940790783333638239545464515166700917395383000253446510503050581986972670475266895684069209073937738827030173544353927436540534577102180896361366818366699600706292056235232422469999446789314005632523564961792304276567152321150160841310442465811005587564643417731807594819557903072849898802514040854848456256422295322997047572692067943370163137936268420395485271921215450793686676531631318335092562431945347500378134235263252829081764971352382007253991140833879508900154344674165563680180847660280068980308346419601576439578532315913889206891509278679180804516982595460031046534247112698507099598792266870001264939308066376677784530255885410295957976711272367293772560268933780855691398822884850032397599337382757026969478283613711362612009311465300097382463502912138814351815836260582819790260820892704773578351689966601195642734818792149365584392958495228869251321492908614018403115660722010112783054902885416170705943808394242854656431464840491920385128986822529309883846212880590495016896211468597669014729352300806703617622435442832617605363363161725093662665990677656967679663889125012284449650125698898717128051229554392299034132271722575709296263334206448652804530505275297656216813669203287141042157519616097952007716879328610249853672360758022519251535903642431925826610239469512879460117763776106271055408005908552371006497138986160508374318315359676015686402343050279012487174544550474067359471020170981145243324415821553664891084029926802385837718358727464957473634538482415195604593003866006725768186628910574058454886155186154171722233134502201684822866382345855669612996616331553576901218412908956662075429094364315323968625882896007257670249810295769524251844265281788118800938188215601256529347757936303302430432585097267281379553692192736657836484595117022078312328179305169302569926602047516408676728464736233025066399609048721243858473645321453296382132607484194507467410397044945656465359575212050891627929231384375251557671120639212407093052127632634375046180821534569724277989646721876804087744471133123896780591068881061851217424964899714737849421493812163983777570641680447691304893067165066668435050457716061502040173613680568813364509478567094055028735463451470156022473592333924144327723932074399254064556358376696179707988615229569948594362748807449525645158951808431912654423968560440245617400926147839342767246302801027874057389353134011334950938547963338502256625887353380292338310564851854444590846546198884583738610404419706385173910909739632410340695694123183805748105506462037505376934992122779984587623526336848775506754202270520606121326763396082901415914239253825530454773047078336903940003311541692737641498298132183418733306503712713834168844469111753426854249948255927754192572578848255947613416705952545392327857345946178081922636942229069222229643138535698372429326896372213075714959089332368714041155259372080831720288169033565324363749681502097340960658337116168354432325967525130732039978798159724597822720217925067616927690904145989045593490945293280560930829445791786316254471537620804855826370599028100819273888698487844168330927864700074074911324182845648368105726521832823314698513351909716731611023187993163488118405335926095623892538174267706450343986737223977370253593962724317239736220425772671460895851495472650956442081293883669224045541938629203899120813976893318015561018831505120661210854929755974718276961342616907285344933872094282761224966670185081419510551402847889213331272449584353733571451918886283598496173848405950284723359260507154239530084584549999516586193179155224569370048957907064825754171572133048737191057928840904253299612422583577913322411192705008596192916219063632310241721936155674940239767020369415974649412738434539363894332455899862346095464364292493317154861465769389034490805332061421745521033417826657433150001669904420424195274416627968693596499988038800244065566619101136142611424126874452256882131941592710191456180627212141204614123321426842737377207881235431887802132327919779317616433569941140872467403165804660871010444450039885434738273437065293381689690739510804816619222471291484157841859732340984897470175406822832297529777236010250379731038542084493334505877879651011263238964743341389143787654192058715940089654910852663929197040675446924337541770069516047729857138818852397920287911310424537226203705605752748834987108315298391796782444431324605087228086193682533163337509637463122857202821013110286073560427598727368257902548856464744896273274739523973057143900520599305919454684250425246721831619021358025376230967520791618466827800690428528491667993074524930311354689130068457176072209484267953356810226894343769330614757222494625343228591336771459879864741624090122919806131972116911442177603923038305203654512820137734898578038790011003238288734735404367908286155422330282728360531809310545355931973998434987648181979094402502443782006941875804735697404313167916829947853636959157692513186727567152052523734320889129879799851537578031533691384666802517266925976310610494489647511571164509109854181244803851064688088960918449282950116085309696498396353921241400063356348302226562485876846588781677112670449712143329615956487603548146694953666767344968050557238620369463743120201843642960119147192464572836354847019394926721356496030954866434709515962546216844504446126241245761897478152840469943119134969646813039920257918735240047903234155514295883894385863153980767047903748584738418619515636051341993047580570048166428286128154083891967125988024063529489181803519536666924107399011042986761307747432947596202479650798522598133708942556499183934845784624595174489528417346784398435143625232985963685035820190958866178528996953896716893668667790702117886133320327359127162014260243627415452461277039212014822851761785476376165936460038630921195103558401141276965193612112604284783423328943986359915033724149311476676125047073432047910683674967354698190180607491311221149053034048803931196170138283310220086976260206731553731724688350447197639959209471860379667717222635559243466107774296806889753366972068664678517929337175091759380876828766962947449202158362359925392849511622967409803895529620139976563078309360210648235438008164171706768679651738717851493490675344000645607617181548847776698696595510806935700653110936880180473000400299149423883586988917257791453487402766411672951398144371822573500781711252236482992545492526491843799841757882471417665907576428815796606527384115836837047155969071720896414302811275537981186274757024560478614253877207544002128796548431689499512951059109985030262540686358254430220886099175508416237504649860085281564098299960736831355690594964480100387425570036622668331249311326601558226170961958414195810630936393057657127266702707531943127841215912773284339506522809388946097365846943379790863618094465281602078591623891428253646312500359288685927505355641394202166702697429440339671828927956625479974529541110036190610620803059002239355881436996346640140689328151491925456313757002907664726428658484323586552343297143138051020258880341317597434775650789058876221711892292351215556981610835304523473725710169326265965781458759705699632464118344474451381544612936599434101819156118963518017716777107210797148705489050627057143090704014784398116013660951771478864793367870099688733458288965783589921384471279007978149785329291348070673239831918819681023075738590326996967481366048914981986185432244032336937272612732826352646436394586846953504678094257258908224532880718669002154768449818165398078523664697911562975647927308690572594852163315520440531549591497514139727470802335507346094606735484943668756590860282385226120292663342830468268845800240415229037446224438332835271564535741377071344439362129260937738367577287709775085479794489537909139170266121739131352153211978715360410545633948919871284541442544559366171527390957316112596270967186207466763981645608774529446872401039587736464617076716819400885053247087690641250918641339679738996780147675627067298165741784887324000669518069427224710641502009686703978701484445468488832406886328515747003837878427694388024894439097915679703087174216991686061531881565937682212582506676698673636457925236308092407453431410072283920816305083759066961577784158060903222568268403359057730418776785989968197654084720542439460026284651563216491193882332233550953111317090414198366583213668722070257168464472314526932221892339190983618490628210165587654206145957066310143998556625376038256701640576405392416889078330221683712167026179555299383480939827851723024615571464759399331853312476318990622742321498658139982680054304251346489578966926913286080076988922312272039112603682064125456091979540012472326676477495472929131526626418512750158563513496082655198291653668304671920690965468157919697738598781210239951306004200229485049945477467471940045000995004052998591305289297523995303377444251971753532788726102587914536651607517093769211063657447204658525695434941209595525611523408966477533682281741467666293504303795540343400641452018622406712979414785849146927276691517162096530244989609168486881504321236974991209207237269048077076461484417114207944721311955692215030538113437082627142638550873323434469425273331544444039372169193224470449808464150029096023387728022854067596961292054895202892932439219747407364577418998546332537786296741617189130495186734863041115138946005523019533049358677899327809574079202610310934601798921652997088312048460942837367884889844858224328764899139960673280580253886469770534597736242671543027375027616253424325519567748533491428996064774475316565276229621965716316463929458997330456927715090678610727805740208700441482130564060508866052359053819394533935269179887717400961107152441350016523606379827864775850504292473795942799738970777720872449372778068151868781367427077861420006800431387487537290318696564847216317376060894332205758539079906868892087883286493884064401311443223289932285059056564274285286003708509647381082477541979427129508149606603239622064167430441380421962276636596068352719736695039018319245296131025520134571299141333834080283106662864178855856412122343415587514915697136245629666100549623485936867436073244073555207748723264109217855941195994647964811446716133084155485691565677884992781665611587668055938092016483523473891272810857494300595574431336706518696182884280076426348630745839116379021307543067323050537357358769131896224125857259532827857156741870959135203399183058215899121409387472941623799555367971007265643273230084718200230541949875125867749130976481818328582529502630978287084440272910419104309373615718618653189585824234926872901119492080587043028993493434806550623121952150219289400187187402455096537468961702395782805382297816514637994653740741065043184567359813526886155253603610461846375416621412156984028033307599866293403458715247092164812051089144418330468427262902402131582021672819602920149568496693310900064315716225895150822105774308528894148691275679156849722346483573496213314649454282383927735786047911408332583983974495652383614290328671808153527604997175081460610133232401560283822034092259376748061475069568597086756410774543876176031247341811584839337353541577490662103114927832283066511788050497034087582660439890323360761443398261746962766024035235035002514067683367486962007282561938336857697594230439260267339178444415225533976780543470967828534173812796867833267758644049512396580257875536043563674129188167557865320966779332397450289725875805916078540929156622436376263146818626069898067873550407239759442696966971948355236059206154102859973995604493207282348690396600577382098069077701990071514609980950392544533016847544168463687114964917039350673108499037471348326317614480464625815948776300393360131258998963430903475621611356667694708555589724557646408750509764003466223482819696321813391620426379976857818774242498529193692464141121967853000523828269223368875976357081653746758201990722328469776995554732479278117006281602667049790726611414137137705281732309999876250528066838426942129206743488663601423658268596844661062604661570424659939074140095521226371688863971671207241747462194757759210163205984301800859046121913367442986026978302281496311068094545206287494354991222352747955374435265029377893450952595545767144823135166437323206555013875546915081004300903779594600978703924332281458213083756713005399827220417889274770687699512033351744163181743916596552208257565813569665120011811934253034570735693233341942830119900742629423653898520152419665052012420858900326778137052479456573512516940008400975835715315225134119546342740136139757238580622531251229586622840938533902839090185759743696594879874468332612117725735659122344361034486337881140018543912979673038150920689278067755923268957031544066146182629384794159668425640927308417648178642954057535233561391437492079393839022351757974913390281195314482167817663935248017434324260301875323759312313344095345817956803062095892831129781861345637518868545560653846596782433409284874297215950489944336661508877851683150433627351666380148019508493309439178897188766076225284177815266948161462018883432152008094670976361120380977851945511748472874837992710423090300297874188344843206735265317232043493662285842092222836403015438275882036814474529137836946501091241844931262981143245040586363264814731312087402745463761220367043253293013185970141297165878535909646983367325710902547586250187482700489488613599306915429500215295902685496010425757710979395792122573424714503575555434344243382724078671318748876814485093886500110451824972186851080468548379280125452704926500847681020023329806332035515935850739011281692086037517159856781847852430287956826025498248692135711135560604146804736903960684400378667522998745872693657007492735986268042230414539740629464643919313690851429777688256247920644898168657405846235957464893387078710236408624299009753158036879626076071060432952430752004011542659924531355142973192047749480223424999729987226723185024524601932991958372197817212878949033684499603689815172027799144313356568019428145961982445238171612943355074685616939153840704710723371934138651373504477662062009271751401434213121823080608550679205580557000514907773539939891519280825725271871015353440316297781113357953113689620032092895866195050944828331334243746883301960704963215284808834794746140009174647437394898000727192713326456076117476067537428282219190223635848624737543579128540528603266888155188577768609327139579322064784731095367598201550679251393036869991442699983754930861076027682133778850425589849564346412354278274686180075062777850972122021311862841691360792724650270601548819387001238001198291554293432108037968586951112054742286877197376295444472065836503699214490786698969261849178979683639933197268685292149106331369817104956110438529483607660915052167052678093334544313845001894544441262403241491289866245936926931542368492838882403025248963834382680844640788148173065968943140126640465287311976747859260933098229811336993208831551395134577702014380065388799340233227876802021496396928029147342542664739006633941073730698186499394290766931954662577098304765944886712771590293688181956585213225541252515777040254868421894216099303432598567866321308684241683038486957910120638954339670343593820159847668703921626381667291335766445513321020985130712078246520564940799934273185987892412964112571939464656729034058466122686868848291559133826957503975094311630832863300017548380511162974823952743668750860018259064677880351471976510541941941038275107198786801664063909519769978113693503917789723454165042933281237158558446840598366719686528992102764650543798158601493953119714144445120510831859339202793152186096852357340910212580119843667024436537588474830639445993400016603093541885194344577022415537571998937607351407725841050886385950757695713004169659166045559924732190239645012922928507284108158528137145315434711966410953297947524189748713208568683787726638438796627275179073084338423805095728184707983274392276128081217312355940150414028151572194720179853850992862811621884852406284125372515884368618300008513613699487429573375885902716436242852110843602915283901584186087404834479996335865869284911531099174703013753673772683381486069212574194602699396715533666881594125313637965450749008536834697353665731539355301237926552548029708806192032638345091805800769810646369128965991934807350925135611887115160555265739631142637699918686936382852121500924350369617112983591304513041775789438298623953072969415761391301922240139056495216692966106982785217288346625479363144685063742983187337152455136207101934247621065778052457366796504334422376097635814805350663151557586842659612466734471519084801753604671763898278513156824084935048715434708667871876207243112538827966876310073035959685780617964460033318873443792223267257061734679879021289216423128679529792161176761598211747966146946638200781599256783453791031994981390942450766373818500344315407818545947903746485142303041073099748790586441166644408275266708003302328608766580065291081450736215924346341468736870635209395094916863641524512898983524961679484473792853986407366296412521266429713638692136271685119332985669902491929406251773003368034525021136106815860025171565748786869600747185337798507595943661253407413746940760250244437649699904462898028126198125902116766784493748611792079496298864212909476169307034564930564437240752688221689941787642279723032907465753540805397329758012494972352502250112440081629714962559874886079176817716290733841454225506584844402185133303070948023373732733525321581499313788677647215347465825296011380910180177114423012443605328179791191852647984602498621297830492631015674641737996132690988969975403640800293405870177402942911419435209186650893016334449237880292465045699046045891971805532492900595988148825248171979213799092579626846366547164777337662671668645877127934307996019467286600335149326043874997444768477477049001273605559437195283184662613649221164571569706003631807902320649402128459225363146577622030795795948465676420678230989402826163306738366608207263582600372619096904019890265097203208049195533771013536540868973781474021371566106700118905503289880338751986197719226262831132707512241949353208163401147882654011804021800412275792405583578944280971846809469023819724781387847218989707004556439308510730612656925690484982359118928154375881369932175127661257211654845233896503390119028935357593081956460770691678708774671950094964237980292657603686186613558533779038551543906037430293461441746080931131126642412338183720945504331603180193459262772206488607760254892357753344366750551316732541524040406611392061782101736644420475897435661866508724691320703113264480944093191898538253554772093369470117599145143464116117666587875971766004241659823510089556536900714168358836203919312623261847530745464148808172886582442610984162289203642302451632208632050711640815644528490404614939146192417766330483487176791566271283548081489144205126723245852265820480180376280484445835593077924835571329494871450954685480036705026944588961895142622275703232031722645021180823939054090634157666698120752775225154213174182701643515100641749309830462291852546360159134957737820235771897272742824754750560031562780643970709491869954848871196651988343659071543840703784808498296748087572958364006187028030270678906090412362654160133707767958694963345766560086071639904568568086723597284523565842513508277946864156063958260702500331214046408191914679473338058961162767300149326915391740521569439026794467769816186977626893197851132772855224307845999147267106477981253984569988659343754850421281873884469885786895880390088916365347790963930798373190129710734806300865564344773347473244212925525984152127942899986575914726306779837911985582394154593724458157357959984011529980001125748201976508507926763933366082887268779689770741947381772017390857569293383181733564144170562100485876951588730004583272356509586385654284755673599069849065622475025411136233267091397045328273969530157344726906729693172526555347488441525783655532194024138271316023260236854576611809831877925565243471337199104816953304233842147950792913768674804720383251459942627337270266391264996250704087453163517026165191136968094250541162109654674282342768132651463907175885438188719623090126497079384574736345789046774220478317254891801014838280925421329047677830990249394135276891075330281771370060688482119714346691166413120507893414211018932713521520372667042239694433457088569498111526594178590772894819762311733716868768617644970029331909237707377449533757538602081179082848818009852793625956282678492366039159049769433946562605710938187451275969005038783289210462208031234145972514419418273903371293721572778688557792315495511601727921902088269116110626148628891333535317165393197524358763056105199864746956249307306548576522572672146550419439396814937444731786332155401528268028321389258898033049040175139564306987354919273236599605064321512487917460279355506870387079180576434916782729495061812730537667066743607758377208441834110366204688528400690687458259426849189803784823254069569179530706521599953779892027135841413408069201629331491278138519358769401750668335067803869947249572370642857571533155600589296351017666367706475184472457429793599832648175560005829901251805982717608782739038004201160086804264890166246009385510314523258374563138206433468505092184499305482696768494464751480074064382336073464576267798231701842256012042713938212774809140321639474712616798670112293224444619206981514953996959319641225187427782019514685673874372292065532755764647654246884582737872351612845860090023017879513278293578263139540602857262536050563601769269625969843183445677976659073939748817826022500748327191063761669640818892137513932441606655808866955519032670676784876818065449144118435063506053025685048100852614602363100573526131706501217174865363963560238068496012382392390380216831333391263895719392882518188601466848946772385282383818954611769221066457423240092793992962415696163545172252887181242662690936257720153559719934392467193910015748529553298015434753846357544507295779015445644770064030846701140846346494790872560756210888734371994379694841819126255055944153244488750396789067357244130558028282030141800718160370799189064006804960685060032306410379225279325476210384716335073929274507287680186154282686490234937054644786467910570421068028558172143904482572565868819282960810308464019150181838239438538323728960419452265005135615657815992380084950366312949900495228898327427428027242406915422465004734139691913855345332452135654010912631537354039722994203318637558072474247351483929631387078343930400630268508670132722367326359730127576714695762878250743040107932762220028514810705378620600209768262267929527632734689511892688060612319522969002258477145784809564968430675280288829195483549001913171181270654957714146506767216823501119927379418819805618814497477997721317276716091578070121267359868585585770466334281315731119817895240570772968739503904176222955492729504961672292770878490466323120311329630421908031339866521987498830590973231532685004167048095584204977858712922931364286827167364270401998598510066230155166146533975211948302505314067196718639479407366502699697763621872285191175312811737444508783057042968884082245241345505526419603559405390286769594413010833436735185831491594706958044360555513496188825493935002167510122803267158706131541377303074933078812015248903907030856646302631577547908525161508588888420240738375115836556719383151866658455738684735624416291009767370076053452174888586563798268811212209232173845003195142679089832200045722079304641667784066980681799362387132378787277351936297602151016469735749419604077720376898187252611627159327616354271707710140956101023415827117148345630077173157677072319958073197572522434119307674252596957670350148376160207745952081584388682895812429877263750165151221207777333512214192219983408921035739038975809580581213834249415170138464313386464474596586908470796253512883942349294260451780512269443414692622527666319956901367521937553630587445542840673881255792527629280287911895339223553480577218484583746423724335018036507367488688831962732312639759200058751534940805847123194605743517188998248440777644697065747099306446359340368202977568720023999187833619109628488526136240768838723229760383230137216348050131460422282342325414647483817517445122348329045040666832026064192031484809010955147126027771790605594035065360230114746006143936814766052389129809264478423438672174926919550250176585955740561510927382156868753930670132995991751295002431699971230948699701683422329757647907173520055893057488663789221317083824337443034098698858973459465612875714609606568369367399746948641879325954450479839348531982139876303833778399275383297720223750869218993064373073134283897986319247769188006983479314563495076307466962087559823657556503152033676416541459750446426162981291048675391459728762109588915787651395383144913586810387718473966093876097547615341192331928435740955604446543128297912428630081860841783443865004608040090155960575763685333725303786796310016282494071573706086054435751150704885647706801241172216559037855487919644497330079853877357475252156683813319898332158191925577739415216563930682796238292406270525521046073592026998661902519087007409671713651284487106466295770564791777810182845634947390879746026706356156412224850994852454766498146796629186635771096514795189788347799900143961408405833250396951245251251893587581262350866377929943501924113735101742647558970941368123319096210457622422293160257109502579026973400734900672344009867519377884430118533732630802473575193796057670393510607325793116431400691292582435621685550908067686006902885902899059801672808396762044281470140772848129589457741145405155781380095175645541995155539712253138750680716142640387085096255326069839960581738308636836023468962212053225848475050953641504720579262340416538317484876367114541262288922143719364787885680567513982632233727868715749568485164838277586397921550787362925706913150805719245222991776242699880431101681378118137523155478127428327225523383619156001447621793115489986617632199656572565271555512770736651095249211308239924269861801864025707403880758684408032288234229357381287462662875801938431207267383708716656242180919816238701797833196902026233470635571786269768514789054158642054991094131335797195674179785317505067264599539403387467136177465198115964159326190940915925570330625163925520848198588717925593384857155142921041799326171292258036638702610207506275510973675590822250732352284660026123412011415906978329156796274937707333641992041919611296714078679644135807328700906372253991789725405184866212319752416079286758837588963599688933876280434782801576034781933656347266471679751196435689172379293055886278383332008163625968898330357447744820453153685831347557430556875610676049586958905821271698273776000953361010373850140116407912595976870054127609040306452094944661007122620437502543950265089264865335924724406473488940310457365804897472249421260404042255258119108572285562175864748973411384754082501623468745005445330563892999857183210151791449123530821328926788784751625660629229041296051332154090465671137513580465194273521784461854200564623664055139398899370291049052711906867491389342180545367891986825150073410496111811576262389215523215975842235652737119687453453328705648694166886392470880098376530966757589795238293911905431364243040820885584762070548428075276393671665516750765405262135555305847053500050982349375042734615930358532311085059619369891856979327816230935513097232219214675801243971612684342366397259108274960850631438559252540928022284297016970034763402361002461734391535312008501304483254563032582013289181235929557269188245468022620893329447277948366179267452833932715653741591682697184906943282781236418578301540623682740815583954233416240711780044781250948545863952610516080861230817354465289878257935875959096913622418855227310438034101098471511096992364125641122759521367949875083237312603208403949768537981277789262149146204137744580285960740238219928108465119633416639898287200537539463291074972792187054290324772719125483528727740878681401324004676426106333159922814904227907833289288421439394199017264173913757642926422236406946689595737932755328735619419532058596061236126006922194462367191889947555446636863872210864253564259075116664797972297346055175170902969141345236073639405418602020387491375000741630301940507237475819968843554439673248873813317235568054373364755790546892450078308291319654674942655722288594128752207017537372479406300690815310172976085319938372725984258873700059192104802850560766845589702110572115252876744666871024699351779427525614248281833493312406963706259168902390748272195821542388304612283827377994326524161189086207878807284853958883924647741658484963400187021185920731170616919168544800753205221838262186026215508052410792654913161123432228421047814940580500327966028444201955584082714105717512082617874199128778070766617613679256908327119067647766799132529810535586564907525860447252380277945569181756629642004128911078209244012040025072010271131495580508289644444850447013212491652902009680979963701203709852083704644497727559923185259721753085133613031445142209302498608649265090227487501422094809276818209044823867504415087063483614512931315581530568599829322921179892446948143247145981465577711510959213709580849456121457329754470652238609925607032684952681136216124413671515190147967081648565533191336983929657277462018174446649605699721265747557944267533701948439916581028987394071676014520606300011035992968389588859265660030603830669629115559578098637964172825834161272899564622365306999699140792487859682728744821252988777978481814397831159887991181796099595536489334836678858763839773084214209933738468806124106976392025044005307610999963731515958277790613249280599961619999066322322597491760627914865545842291243917747279082946780528732965196299836240918392353398284953519867958416394164945992257188304837611321126762856572965800059505240362450507343316236985440709813929607442621995994665707556655813541023909087110438455335984594438697216281912040235676084879674664885017940402324706898485276602765522840246528594163472319456551418013873243941819414529027880017404519883450380384475431272593873276049387368449348160108602078849599972710178820724605216960512422193348214414966486563235254381818893314289372556401056724815951400486939657308911295009632085957047172357666306370631794380696109046087797304739010855480060900538340171627803005572051350694679421200524518792157139107792724590295427755408084533802671819048603300888833328955580877311124313367303161081297589018359506055223216204662188415415201903412967546145948937630375841013383731085931462013811160399573373059951246925835624851113707680859738947226332918861133484253425088911846542747128822324021951588262493471239414224738799138128316510733993845534941919891803745317526296362163837234841225855214249015377380530046741985313440532282783982884070384202278179020653264597042576870780703562858679452775886460077423475085174954783338522430813452286092825537166406205467951598218412586712109009792568114215140381274557481503624116247817376294549878623543542009864862898307482683990852175614648379734987880130982179050445740442780595600994721658071015102439663960522039831756728884262124162666780048289228585705087112498966740257420977759346091598243298907303417887821699254981146088737097528234686222948739672422134128510330666432472652348459162810917945320555265375194002852238228164055817066814565130353682739015035708663461064313918609337159701426792636938175150766224658091445716836554696360759851048783536876664820535940332641837768795620258866496046628531913286786803131633913641846922349573659088530133965386676430202927799927199488414531941036183801963200325264464310252658391939243902737725136965919139107903907769089706464712730521734788870421119588975083200621823791303635272675567105993389814384960056629423332128586584315356642056204615750793391771164427523621609294738992531647714784492001831845666438019326969600290944409294537132001321106807849480330736652188221802804858851753571417470930140050463826124326222098665214562211709162433411245912407295181090898097933313668125542592975031222030760283359160399315345137615465741473988243839479131295832668207376890653609238824472663869849284846407838488296297180641940341091561108715991493452648147356270222314729772276144641583004400434512858633263632568727853730839557161559706794407054717744402880788260488179168565410524332355850475991502162862691749666691763289543234705762175487402499543417521464248947604841303749628246548022684517563508590053245377812894380081923541894607669618473270301283633734498374726895811836731879643719487514208033375162529405676366146853696082735211262305023393518836223708364698145821993817818592012321913894897220440249171778157425642196834381209469789373085491638787726320194467563327509504875080203702039306881057113609134730743200853436767593647368095198781905442519224521949629938758295311736325617821192047947458451893776611142820396787872441780713033679597820560357829136720200024949918058656378520438790465980333024015967860480708362812021763045420995558485311577705975432789417602026322356137612435390821601866612270027746395298054770146249275508937792474092814503667190705192566089624865976739957508515418431248552837281126657842329433731873678973886221429113811407190757264337995618082531393418371125712702341537649920117381360340857846230220850093569192733312432958668419613800189586817122920433216435036268989505219846036881641519086962164466290888203373133399128187966618470852711493233026243530886680660716162241768354448454292913573725058945133737072233938648470695075300873029944144534848889932924714260726846020358523574703783355410603123586936228637678559379689714199061279089547642794836821425183036546707775562310826277020183227785641983395075257041279726759651998543536361917975112946722818687734713174114953462916899346134861369664753543295871426940186610810527407789029214404666518056508678525216228016206356021743577485889904620859409912218186945904709720821830346788680440303956260326667766591516963909807454480590770537132480879354188258999871197652017521106702233732471122276623365715185638515700755762359799223134886425517473370365971559422529086043443079167793359788880010991011658469659468181996350007743285899884612980552591094297977282809781653503371276853511900733579224102418010960582467463339852681390079635428051582387784102280234777131943537044072570165066849812826650569736334566982390458645406037444738494952930451921663874697147727830966767546659867359717350079020074728629141723958785636805617568446046183506239625249548420515356140144495236295036069550310854538250146494744790234732503894561522251159299590255366239685040644702183058241470962817362594963429889714839849004800357631219117804982832753306299896347428512803594894165301348753188973595449409429951844230896139071571633060888488608421877065236427277230631504082571482195691298530168023534097059685521422631454249210384995202029478648130211826873867848317279612438786833598921630371721453475061407409506453008383971010600659441040863258582941143482436527828283670206565451386481489785497879474570098543368765671860499254408086923609720089517648867648733751157449267582587769378948551088478145664811842602448239397610809823945255387172049790389279930480924061012718219392714571055102829695253635590981966835804144305321128272045606868414153650041144545174862417661811727600582057010020477349204378319911792407789700403870183763455079082211855482838386348723521709175786265832394284618680699218275915968450884019009678180183449823779119017231717672896758136026267781641986672886123901654241290974739521646095308025840201383883497878964771499164935930910756741475126442272991322568418570781993590255380114184695126790417079669362078019854382240108853429771903518915108724866713779587443270170004364788606127543720096642504429092813584207436952822381397182958211921852611778249241666484532978595084501339258998120597968354991112605251014721251828334776886790721099109967443870727674070681012587362482582858043119978755480079096282947357102625734012350309049782080460090502586827324728592758588634080153427010372098276749131832862188451528408483615934687186985902622023026683840600913140877467952260793793175760140069047509782266864659184586748713318830496429224525155388634277114243707589283949572921157213345369162872691636743704879917796891265243567071841016590882627440912613697921858358936292711191902184097669188786700896835709928763440804975117503147998543269098155079837912702566613881243304321201296896450520596311509074340076318233427260457639222254084650008853887345054214147480476416516390355374944147253810002821422750772350134975906224700143903053074974204829096478969773442321499157295649922835811303120995007375219386028935887000417501464630110893355178116766877793790843925867864268977002529400815843567454364371371896215459385195660977219502810790183236345327273327962600462973165578477880447000855649358484314293174259898574477184188016404371822709138916840410868751375684955374383709199477538823108360567115914854679009543982892997420290014430564910666434453314303009804801482688827596228814818270038950503563689130873455469775356831272269490104784137434080468281480869136823921651054093184863522478780654909140432231448329637983163873285254227689451187322712471380964039028193076217174764116572325742122650034727272969066203101687995743549983034360240084264028937255930160196069981358003700387178051870568719119414427303074044119495291481637052941219026535378756547318779063387023740454028764483729619361752834472370166522967981802814477093020072739277571109190123791473528003002613650072606580369426815117970086452212948842921053562925733096714034976353288622140107569445801349962971430190968510305018678424470103193767552783693639325773679124196084348294829193072054749125021940394757787328691025992568750258110360885684507504007581048618250239165081152405304357806247868021782366126689513274455987997928836610024895541842427466771953404511744659595819589098422973541424138049987979510101369047440919374135810776923031587709694082909276115384608886137603857530623118930616173961086266588887674183468631192472129655193965654543519146307306637195433984059973266367659286738558343330875699865285153055213316277184062470697238222740386367275079698452917193746083860395127782800810569282767450525259376535635667792132782913999564874694310789098836184822234443230840326639052504486742488391786704564419680436226605164209476585876912991607594722447773875987272000716973330544538168727778999842594009940456107291070413291965088062583050101575574413214712050254633739819025414482320998971478750324958399586430176752262346853947351050777986754424956166466256698984616311373506215994948430486301182649286345581976161210662273605387405446661800667120544973458365811207284072532901569134104969946812417683726150990664094087580539681501374739182970171752707745149157447158227014003034402922542469080271403452958855648934880379748030573051888256647957113233713262621283352009290577989297553177857453048919300964768164590244928965192883323174795723874477992808863048252805993633314805948227014654957592094113835416098487719569293044486777274470426553216870789004710588786511004476497287990533147874147987695736544965713880676819785458497196957914906679632133315845494290851185100580058875588410175347072176246192927455422032764445467506559995776213184950232806503573678579254057551343092839248737100034290920313486955067698869492863232867578838686873809132439719743497830524011216951351546937715062529233103242092295803773531558962627328813003023153787021463802998964561619423971659023759231727923210551593028504810616144778784082218141998128691715370862837760366388835312896900759047144157770244162384655410538144954267806110599060922221369146485064479498081180698762905389692527658730356752111977741531942209378188104843005424600237986418601543974793457924608803769994675404636370004385445873377468147322607173196883715362783857693944061271254030180596364227930264059113195143679535919717910872934507122577447227867797936072032391147969659933586849019071948979793916694312119612775209877658118795480211478641229872402714909852452985128195314513025185555291889948370644956473276442350789380111262505363476785656717830232744583970871781620072732076018999337212415745280073304569789646414214608598122493085763192672609748185051282292696755708417994456714296868650839917144609177483318439434898163933247535478933817013834764377629716623471755186242158295323845346541116834322306358279192308308770236874624943465150995821095772057240657484468465327677580724125170783169815851865219770563876153857022903121626633962746269209725163308396001768124575532056591799502934812402057710239864842269204819972445827536417906634928971917414087512265503801116739730786105126873918652011755567954201635593418419899158663296899822097782018037547986389669909806023178130950117113542638239619440280602096213229002381620424515572891171710397484734118913853004102583514430544525187649523928784358910951025710319616625651708686509239363903770865701856105527909167442714370391161437822283739115294288422973159725052934599345526629181777237555656034000486667124309292801761367548230031289992781107448347343960289906392991572176760456102349006169305512809272677745006174888061433732264124675084705428350500868036491565644681569765740599700865052944239946140536670832694884803216720535852874272961498458983669084215696591392889334592670748656336732463290602423060084113659854399730980031407763970146682793135455937329966335031208208588128885405546165968671666235662419166083355867534535426671746424546291294222828744467111475440687499122362816122456050366436274224526726423389532770298444670712232894090822034378072008052339882700682711267012876947147842458646137960221765363540727314124975083396658226697645393197114160322311560931010640697871920841095648990116302362017946155524942086212854632151822815513129956850606654791462472593302332928858549525084695303901071131660691362845675691473047907136119202884981408411826540965038145598623446580140001847684182027036248259651233076582179614334196607141284337351475773393955805711004624998489028733508495987194113119233132355192364263007122325251945296379895416316546004103048780498175029478257851323717811820187432176667675196883636902357470253306288679088712427474032571166191644908352219057093710550502771330130595166033538190834963942509437406943713290025110003090602601464912639721714720580672997125300890349708994853155272094098447640277438969559232665284164150181611200857020618828411941751184938061578232730534362703356809013007088593274336663439089100876999852880122454182270911873698296612708644362353385514490931215825352249471399212154880556317086719005587679009903245317535702505911023541652778027982491032020232098919120193773796779384692229789752189411325308329180193497794871042077139042797443750918649819521828725091779692133904733503126255760109441942902825156330421986004650136381606295486771958255671002234872667595238777097785761239617012623411112009412002463884160387507260997732928531934485028050074828803004463244911720981424216086342172245376281779192817810956530919816398424009142221185693541364185835526916160478304198568096764891475480950381710527041041290527765607037161046544253802299270382688329043874886981075689631340819039393661853592161918213966635912955585649894934613182945968230933897871318560379584552137617785885014447681240318849147011781769441737032276143557798539633861614200310044815574196768554056353308404621356314699159307384014757508847138315585390678154813072738882915679967666020842057190022409718818168890891328473967471192794903030423621814906442465001887783806900699932853190257100419563978603252397845425492387291063355110311187500799901672143816815933925769055788312084483705628063818574701071920327598921794332125892874728457318775515759194575673676113301883939655063678914068110425783063666100850837699875763121072031706264234839796355745918009248278161395043994845885029620109325335424579430138736502295940485618670973384076782532184001224864435915215527090680235189904097712280227928745392742066983670581463827703724206143505754456281423254725901666856244330432636943748727373528594070087617274873817034006231134389638879087741219688373791915610810021034287595026497800840446778425853303420721975030900904826855376640739191143789084347555684101185366867731658061858143837000405461111319277469483027341055977130312046528161488823240783848395486884494534351332666881829007767000649229141269508628868482689986439485399708933232576868147023949212786550459239471433078930455432185108814237606791812436270005967146250022756408270714604825932352813245782981833264951770344149467486221059588565488300601219202701987646475020539170190073826626446195807070107314909637422204258455448381968540077312461011214304357205701740697481142224104375058557174353134409045657270893576842718018853664284024988467586089186569369829957749255922088744294070734647719972662845440444941167301677616828951782171761802768239248631253852601592152611245601475120530444771380267597024962468170409319073906576091852310051441196221386538890963715950024071375036232152358866899032770730935039691505778522952456954160096443116660077385446376129211977139504825607467521304725518599783200198122747514383704632398005029870968374238686743663933623137952867718511085784400254106076705062694026806672814307657676358667508656812167571316490791478027934486015434877051021633404139338273393657538084762972056201354781857843514203567283768033277705815402962374492350601643203234587089682955347639200537394679275423967152418043781981603491776104507587133623670146803819924396646520770470693268976827228281613199590221405251988739027702650001152710263380663345601189544166103934621230633585028675712882918830301498473490277227335629117968267718748897728433777333556477052587672839117692585289420712004796778180661498505359058463808667545295980995467463472496709243789489723655776856512700567935236026067303406508191578842712636020657805784466990600776026601395920365779611996079227418365605142186350288356121778784362143111535745421287281159251092559720923483661673255842195923638618809758824119235802789132243554134237494508135145742307352854406853163406808742074045881669885319585925846162566048452440855819049549281530658183309908736477507981365952958428199217935013630492224636616521312047865668884001738372008651660826158301357573572073767498232519468253697430836054039850211260343760708126971656125192170312259096341505374681274427231859302804758545349369934205893808234549794277224458446277730091577441868502592509204045912147456994349636436870780793257265747410827809888094344954471084050884489606584784960330631778238219356855711210000511852656065248634831201242309395856097025307273705910248883241571064582157361448278633107171763535507979061678778199435270462211215655781348021210036412040329206935144069625061589144902562211377830646209912177845540759255590618322464127005085526888719176972385500663360581600637694201087386124008602361002545544576472342839934422153837667062176849732988922676434640671703248805477611829212397397673174243987995440275885145985031663426067105428425877996044470509045970542612015231560700505442158875694935955418492386848168113827938719816810029886116994669117431764932301573056571279112692063235920609394373510972830798790908296044812008736375635886755798527827965361647888047704077491858001690983044696820180772178877898163953074508570740538998078988601918491097288755732736841779320448086554002776764733677027303595741873783421775740946272309926196426746679241377379437776831024426984660167969582238210232330106547021131816650786314562780369675630533954341773751130604240201373826212457622529661313918360750076764970013373110938545536650632135909811527590414338778816702978038108250442758667024149492806717477899191117435356744891731495521299683699157254237912209386625399760762031881787872724921344586131768200633147054686297431161751397903722401849757019951321834107416467464953209979834101421291708649331374514749576021044468264922866153588319361693358508294282384057938586405352720707510387757855571590485365698235637332937023720058860325726720493187407285654025091811640906079741676499009563894538867089427453048222036187065320622378213951604470883079251743519353889588572792478177966529456563526977484178513398950582264708308734229664235326672589541970034702184671393328562024177748537102263422118716758667490998792167343552904797918862251801064282165822406885133345175203652228270217576147012627441941982066752762324825060225403251232917175730345735663042552867008020657510776882736491820728294010250603068195180425663201266397622219316410402141422975077551305101778288149965971176650374422613106777083794251558882696959801859074557352692282937762697100628358336627223855422172588441122262435326342596613293191342386951932538589595733344749612967380587560515887097023237497113373715145168762189163052034177748916852254883750501327553646813870203819070741797437207718152127428751558637775757015890870836777979518209622773817388626430180872953755460345655422995690437042867024131630710244336950825586825176114810287634645248811627005386784027522043494437670599179658226179024781023171401839461356693831467433827438821108656658111255959764759042583384648728643913227817645180678266375152230252621576410513303582738601155852472559584858429413809462526886269421874257981833694774770840216967686145382087954056933574817140533083246874497962538333362123378144310018977812178806368607639601050236834261674480346012688724968802474372992868671820144758335028262103045998345250646232364895628384803806424225109154514070076512185512605945094912908294908040220936147487354524373198099921826543232078552976641976824605406026111998604586832399208172826664623721891119855267610109647828870429055277026248041768899158301955818148304633717893324719350849997311884144486268852693883183458790251229521525529058646305749780593960566813314923428711853582560699234926968426169801190847767188296018186453848375544329966936861982763677998421319350792426523605505858618735220680168884875487819583960134773893339602250740222495210129116505539253049353133752481939048486089868793023721786602886423662067004436492726973427749126021452688586899041671036052087155363963775022710874124105259196202476812140910631038352759841529114418461869716868020560719397643764115441098330936674410030258477383866210607531552913825812057485214218709313433319443538447221949571544067630404030145851554281768809801430286391376207730859691400208217894995474774429508917768443283222611335513809894986425118374672385766339955404520894050266958069211808477202291722849737361567544241541962000313925157983986087704323125839665856319961765677580633099690156518376721285721537278202149745066068646941433454839738338901623987296815429970974689262595301675326888620579002612189825440734770653494074854873889112833194868324130278685576956904195917584982110628228769975656017452746269580464945308377921719920098016321254261198008739800621720439799789353219680331779109020779567431013779395003681710231079004883687324653015616783194913770765172064816924022690939893843972444972799331545293477104120855442779810779375511992211440140582671394736624496128041242135942655463064703139046904949293337372326197705967083775521570616838920716222639393930958114960401619091013267977573643960650571320374606777323906723289978126783922889145759406452805524772633475520322674258103506280044828416724395806573591855024315282383406916720683050092387598979981808250512659868164419768147931199435488794878806796008582414600736446979237055713090417600230015287161607453727455096854514211465353369307553537999375395661654941090735024136785905466212127558205213089161803783949966038646302619168302735602558580571373839503553650962818973313893873126240074729593535958479162402684036226329199645916939031617300987524597161897958238619856371361717514513115013254546840290209940373138823992295818055907841155234562055320301922810735755794193285400978196563409441332206214637015931329744544556854245683605354995723826237593831228828310546590330779062837254422894748189130134186487173093937145510736104762712970726350475447341690458818776227310724339170761594277501799677784611650883818399430638294905336680380283347896297208907280160465635762759608161197593080808809121574086603106664518913879815504916312949264455882174562157902940276990125692090397156649372963142601545886282838352408526784384272011821646054341332283323628598572291586646518559998053741791513755797061895559361820034824628412156572166432872881477364010026788151356474728483959348411331840081664954656962931456557172946815184657665505347725009616869512154236968003482178992400291831499531047923103924216779636439748391782435992876298023347266029733491752330985725864362177841622955402554728588267575210314111201201908424646183354465510371494076897368154154797177552190950197053443395672574292095779774461901592392407048695834502551397072262869762434709004080674388070393960164013537203722163708002987266454855312812331555453806950504789872385144834455397731079759660848090065447321673304593684634653556461597393095451357044414807464751326674462508690000162128699195000636416782939537482284094325167318667345383472439256582795691606456372069931098315830389926005249680215881038064620784336934908328706541841692208942364771225079597606844310940280594654042889672253387368999580827474793245208726651437537160629078997929545348513710160110247482638037672037393157931210929109319531147667522462279640347888638783449324809813953647360200594234555246903468910379648287245822242314724444917585000616504499608801497061322366513745931658013694598430224871015580717113400477994932718003535955505369936132615032275333750151838754401533035799798102440593971961885052766073923550132402840336818503121592618486985976114651754266923802281083635531270819753447041608637649271545357983351803034844848983090449391992803716052861510891188441703720621237084347722054165025695208411766285496818217941066699467367305884769391934593876914010831846710341327580130472973728383512285285504850838035485758614376898746479024430482068931035490871865086238874667178786551580260086715294107490784818149094511867862960895609906551624951021478395959156723279907416857219824936413397725777162475694308908465282709893407102503255811089219992967604533054688172445990493492604586289325922073150517917778924240261262536842889470166648758153791625306278062031896159962542319427387425277758079981352609209079655418593600805032428983241380516927618866549305694449488687092532840738280050898248662428200506939039241975966362759772255621749523192509421109708359677282408120940224266966209317005993357237726134350504744366788210406691824610204165205751985149624340344365991336739409295748510669204996360207263098660618037421995322581235225551034854504021562453378802239253083106970829784091548855860228086266747815814280718417388110187630379729871035973260940726922963009660379977005968259055627854928995825433063059256277194837605617842242392666191414001357560720504387883519863075565779839598762926830297488101103366728292616421034179486816672377195240944932534677146058827353541183036416079252436931419518689075465617608889852202370217948172004832028990657262733858512662207942360519563724087161974709203439950353513707085599861434238208362435910742759274200965437562497821989066454381455986089988387255538195148760578918498044083848690458820214281392259646643457130281023777770971518234352615086093185074807037594090028575421980468482034506877134100740453272436404899412664830179778683475020981805357162896661722489250946207831631332910182988259913895331909858076515037322766988275379824378143451781817431726943981072692967786789523054121778726533583642113631343161048992279711218857757536412070212522928113737415014818351187508765224152019647132467699815538198286406132439805298957731638254035909014909014143811773037695564196304969873392888492893902966361631866773220303146875763396201858306851324462828167949898574815222010573962434983785203775547199537663859914294096802414212957103010525056069429258998509074214431331956357442677519217405264464500794867091634022419406060522533059790050355699474056956015075263711361295484686807859276129590667797901880665088897700158511994259845986211302783163045282703269216376393243251423414906442020094322883295879169638818768180612822776088695493120901087895030864646420850858597117534760443021199455253678832179129327709976102769047343645990665186770847978328325759321917790517725018376551390704684500895441904218309073025999568770278495002482473449257409339068681446539103728836884794718081978488869857976206221397724105204450820677842137158389405977983903399392724177890826468586822734592274910840209657874718534343398191952865220479526477217497756921191545801725837736638822049202068427828201224465659422383493229093907682228301683994062319843960024014426796389453484121231577112522870333468317374269472436294253605488698815414321972767776874656378506868808415806503280381432797072996233872028490893771928129739615891596689017839532265486375482725161966570999297896582257990084473129167088178229907514166100618449739422030185059964851080386695839770648498168918999162448107692826325641963494814611403580149967891219479556386658357061045701510527697836615895156125732421247309209135787956283015352020467299815998691153784987873305013681764079931532717502193416985066834865388087182813455004323181489961081803667670881485587578412125119218332878222966828205022351570173769052570333783181794513894875883637095221836295044584329171417993047756023633469022291057171086008874783266151428814685661380761796495959039236512547742267695690883015959146064654537733868460971939895555117043853758707393248694251154215483676715097816063467917670605980871303737606320834173195679610847297056329653651871192057021933687048017000243631513403722156113889419782627951338533075251090411608226187730501072758766604549605595979786914235684202547633433908804229557936767827497230584352301047635847272125367143481745761982271474437933558906263908430968786873048848168314808453714973398626626572158048867676350287056619385921148661145692077849229968312889134297325083115174368720657376647419694291360197656088384340943471910680929297213862338045536663703767545837969192629944693795903118059527403940002364550405020246597486084825775472384923467262635689182477545720379265630387512362686720029337485602426627358033693224377717494992978184317372063132747123590847583157559441730237143976768051205476053446068807362257490857010084403288230157373951906891185108985182973158154072769873823797584177540201411533471854961173207361381795962066764890047750533702995565651803706470428319838907340501579217154972918532827382432487610375032737205808826695601692744842910445322883649468647338117600494156406315820217667751743143885902041935577579492222003000101161610206651279693144392820239576843955796531582114276035613701765805416887462239220397295564996609111531471022843714670550479685105179077647361284698691962940891078562733514119072123067200616899648930012892091298024942487430803682350594194968674639309351864150204923122264577292840764690659858055739188563781850879726161194400175266597275211513557265187714562155363512981225880167904747769592117667236239339336605336260959063659235934687609639718373947860450989947337439492024690956700348116563131855579982176837980033458957189012546303756511452824376247027252568131188460376753531295503974105067529696294194487727820477674127658117218037299197827579231330663894046092288171875096745840093149890726158794766420863421872397359983493370317576316815812355710014501367230217083327411111550239096438572072652312812510050915639634346146407729345689433099730176064859551985834814632091992157552306712243042002016612977360081909852210732933100627377666545184158340931913505768964222974414360059450432330187030725754141111386415240698599750645122852516197319641975713871027552945207758771085495677753959707571394161976274340888573842948134853425057466959201360034455722866204245568446024150802620168192886689787560884750277398450485779417061598000553895743634750832641231926440997760235727331968463473318436744463894547709974685023221999055806157184004909368885517694002049931961475061607502232891867271522564973881290704138319813345776363061623176849755463184629937144701773199514813854035360249082589171705096456149421576648565365384557361001666960792952690983072181296425308050201515219478121315826424432693839033411534013538935108971868318117395306352868864518532770439017588180439524468286163563749272661915938698903994572211419837373544850577369879790029462851895175580853144860590432186484548937722059002187761297426684352158665198822759330770090222865399693655179753889816999423875179403595128061477177467555571617192260615081054220336721255008246901240829981295514512775979566995420882829956306658884335848207455459202555146542379869230297212220156450484895151645178351797180038710594909910076001058202557753935101636869025092695266099836582052318443905938366217500604755233518659399976581395809587678174313355827066112266248084555531413546838907962227599781229822519965503614287839395334605383982190930413412533465567654237372953893234248073826004467435998572172895713863721271871549234674923391950470978601538799416262374031610804041319589637772708858614920365238248613750407423300274527045557929686766033948439646072537112554569625518380428637902577142720037443180441858712571261716646030256930983387629815469852558967223167129332605304208882266815548227966432702064834950842955509125635232474413210462186245574928106627642188792924177938332807030417433064991446778205801538813706737143483766096521213306999967726615118995800082244505995173034762055120412141259591768531312379968950667856408130683938784228010113534602476527718384243704383433524973202345476022660998287973235485828059015434017115280497603030069769921171328700458620721632395337027914158437365209899330916401141038621265782393299713158733776642216702477261822743710982634952722911638661738835610007754469493022263248726205325145936820584774722564252257183231360057450467045837683060801581204179075236463743782825831268311335901707803076395020641879031720369069103826015215593335795906898972194528543455434082190411340891873151475198630760302282596318891649693370146588083636986170522518371695638938730829203265990531326946192846834094672734144210723738655538939844147509023855013678085161279572617506638281653079386190969784789452198975745518060138099191254143633594906557816766247874898617581018296106544806016167654802136885174926156266618656553768545299868653215021046061818705373571473780843875617264531767889955575376506891344422521988373232991817277302355299384086960512399488061186982629329216427639429553959660364245945278453991208207553732790133401226521165304347935959377585648771904799112026378225022714717392938742604797823287271427676698657683138467827887386604210912117957730383782671502465358627622987922987818638735017386649482333783615756939313000534119950865818618921467040056898751409081797962760918070739196528632256015619021263751529739835186818075332748261095937073641150210274074324566660437298981119916959904496122427285775817098962404488536720365471172208650497316959344922919807712763190857567920960304536140303264266508470347677213136142888148270554383134418264595388873213077069003478837831350527914238428504909097877337662386547271916937457781870424590988380846675308024595570404840467154162827741669455267800997216162074084687015738931752501869506307380188439821857930614307829026161345522592375415512935451282767655247994089723939778533106381812433911512674808287979671699289306992367744154244675761061295367359644157717956788733797991822416287719730818564467891803088979680664860669010901552068305269789222990444048762199087883878806726363946916223252307542199257085540936439494975065773208078639740044102963771615724952033398089959071399965955335541848775258236517498852292125743685535962370786677468865215595377611668084013157040574869880702432618114637171311526233473150211370660918059341609582648854777015988723799270806311143248591436885686117717913474812034044554733432773326761685904946406768783028345302035363422771679751861209793240543606800878486475017348992081766343937738721133785058592153168277078212474690343715987819690802362757936413054069166718155067196404947215544556976964214326985922658200736360798358326405707043115676513862109099253925918580044076761712302221285591692227238001956917107554363433779663713304493868371282852575284234818371281103077332902930853483136815769551000566733755399468170941678481130244319343722682449915131889186188714326087924063781822244765651001345025994022616545898911965201816572804674231016674994978134823273844138840353415514185577515035174213087445153248061450201327268254079328321174648438120770583372372151672254029445069541694359702121407183868052092649206583349882839798923896595029635989745828005440402026904594234724200616842024276975386136273085092939764654658819099962155065493202315500254154408512862020892645386581312356819072884073461575044928974689803204009600134922672900716448989168856448999817585369070481116523834193841990997293841218167692038508047056338193849486786880633757985363885720328881814255679750089286630095171425025396177023124838820143816064816056779399362785573192674273927909500034001226306547647841613718368055157583518248759475541592614464431959796131258828953207613140486798492694308281130333575836893335511790319610485662452761601301246035072473825340500526315614586645380242454680785887435326259845973389935329903964214683999268785854659572326526663510120500734546772158368613206886177266570197209846192941126181362187370158261178585504867887803186715054531399187105251317229633982074633142861886896304045562006400556515051896504801088311543946846037140565322659441593420268134520682487659865452565408802285553964107222701996711565881900456255955033439927042204909310588956123900410064145835713456651300038199088708972507843709309297080124788554515589596679818195467814478234888253623040047076512498922475431103651634388113717040104134901897702884205167594990755073838890904451160249232904609200728014859418050279053940176827553806842027970957054649551364409488168196258609015122777855408345248971835335917433682879742854308279771597736782781110802934358809416096692984582505909266647611270409973015764194096214135217780320815793074496044559991002003322534212233379090837980248663898527513505400032065808846786939867203806735593946029226573629199070795176827622906068947735846061053441066131699544684694499194848318597420450481597757883567748678369170439566431269742726393354456349752466611105856091323511957926096890506370442190989138739767992405677692695830082315410516827382940485895813497321142464548842822357009901001780077727459902735322247438555733683526474457116358956919050990146348729830672641918355501254410348503436650492215171622520112862227909626327540382996659497546131772287291097047451280912857238022751711267523666192335720046291533310203065979249458614751321842880608739166264301083330258416800824804718700195932005562301909620823258334060757855958811174191428585479064743755994677293441844068356208959035024398057384047602053950720497329835031541180349787685568341441068778408614581361833097474845073275798027379814258057864318806241143675786726394085460725662284608280871110177732286003242293213079160101542386667894498915840370404889994752613252849337038181799375538965879478593980565857254211673929076302408814076575790313558386479682823194289644929322202399031973021337178833354074833541775950442736331502432765313416979143821288184258895828132342906035787878754896326223071571904203457037944868126931215194295995305526934758558790640153690710127426164656436076664042174196238873550240989975389015080488249367261790662686458384453412566385611229326376496589513972384544887665093956955609864394238193820982654136234052028067286660000762243025705802276139631977059515097143817296253873899738938798974342661255464046585663048882316855918249422837448343447856426613490243120257041930171689878456089195079109583886831698389221042597444595899605585606762873274572090524780548727805222153212096120055723778880857885462630153471282393129865168438146480805501529529046465788335697571610133291834311967590338415972190973673426961636673542937391085665826673543093774971294536411765929776218049619238334117439116194670745109041114707103948951213196476066938408359012680801161535832022641515490163555524586534851178509499213021561747345160779628315474491126061817855904643480701461909023985360346497494207383369555669557066747771895071782017491063570420814407127529664405019938802396919366026497015920571357588508268533168145928410849866346086042746350357629904032565389774580632633102554770851616915692425811972131404566238995826772734387040809926633830055651156230824797346577588997473865613095921173801221213586931435070327783403443700073516996211433918968560072818942128902948966624294668278609587506991611930506692200632835373735905098850659520703737818441175770403574156665047623789059129881962101851804118166997230959201054155165705830565878192463289002575208913888679754980447455334440043933572195684962076043678647248932920200445368298114339482721852074627700560196799226775029943456979261072179729707821017153132586458833821537497494469286926525742576938189340858544974646675549182500650651150458011827465126790097209790975868741660881526410167072630311263513648291668016985030387798245490047854186451576411370649697978376767521772855883946015786702267444291840067986857412415611191836987870974237215279541209563015317749234118372899956275013653627983292696104786965994834560570555523290365876763241467606803923436807025898699970787841035553366119285471514857790220548341384773858782527860512689124111069739976068262707195295373704123409992385733639123812127191134539090788051468124701178146511883362795259438984201147767569402719333998569892429206910624773798276504880165683106380693590621731936550035026318167869814207193922454085709838065646366422950802082709276008858355000951784092137416710127145618016532252745991500163190560700871845785491924046116823630822632581494019074292200113365991844432141234545958905905245571034984994246055612161451440521699467124557320612182154216577022181298461240183358160610568955587994165677355095085221530472608203619683376098586837466770174059476430566935696820088229390105478094699816153178188235828533940316032735218964697610856726129012738974740787888612314257224492779845597207529957045108228783848360895906461986494216657993306155663825621781281331204461196795024077543730082801210170965808875800441369529650483049226282867127466405009818215738833157028022019372471789418653403924171802714492014581087130750278473426901332944477664131344808969177447101810828695471141990558244351047204677964554026173434839271097147253681987165086877477152404209835321409337233623498212850907817022795313727290198984208425993908997179171713588199012984331480244116271311514772589222620319402269245856014630348728236804327117201446059760344218324126541339623183707205749939538261938909161560717568280395299536401503921931036223532516289914600535589677496740506918486122641343856677968384328784588181508115621850483395013219745048565488935479563889810245979214879565346652252778279623732540286666278424350961688273588103982214059784534938129944826866276977242337392627234199385883582242119758416905834497610002222755041669280339173463658101401185466220343614353445222880161551727770494011771402774387648677423200439695709455847691784534064154335651141315535446343812133226074385136387030962207755751024060413796700646635710576199595920594221888229963433374469417388137304857056724865813071576651382150057592077579058349291193176593182402098006951843461752089016435907368782420366875698635430436427271578545915211393635929052058657681682425646251127472476320805667972109352676685649597435173330883372229936326226083103564257105048064191772386343526612910241873033951051718388994497338057814418261535860662256191508617761752285448981387027422902524607471791038472544696689464544430281697263175317609036710369512051324907964924941284652010530880707992273657585509295351842042723634299994674595462976417947198488880682530202667703516276751292540985018911818469105351104874966035306643792530608674079307092603646735653341892959943787191420006008903435144502473726040369858775789414101705632831196615610905212936745941885058090482088981124087802080127218239125902584150058922442158226405415281572947392397008876584482707967838437681964197948991459522247141610617504074050419144354142254553674331900371529027567659078131921108379513768486559069323809992187276680503793191335336409215065094681636847665648373919112463345443794043406184342634228563344691200070848778849123637274642728331804501608698258573954670051712337596035292737418740503048537729516048216896830066650693064640971668442022630093816173845294977373171946765836762089322659817711839061493131624265982440272981977032483226985986690201792478610444337890067961546339763625557960126065665264357482286960302264321509104853813183811275231364838847725411395400192937105496737333708226135779514494089250472933662260100747195670780399662317314225867224236250529020410609778899119595930251022969016828388160854814206773523871818179031183421084763949001504209656145396826280496182226750745283607493816806387661350730743918043879694727675392280047500401801772751326692847706009948741075077593174789459033879000293897202536298052824158707079831743909183829729451311724982967029209877553529128143539112915485319895617472875125956975532617600930564129168735322771674382071026122298125920732126584756051619693070482409034655040762791409174375537143200268970559200609609281184391288901790206650364169665256130525654018714124285208385044598265737602049755619746631779763136985985004476219986153890817576347424989368430506228623974816068935453106938185548441120195531025959264697724861162748580633044974956047664908139598414283195960011886486387486029162656527645064931640116631391975466150808985485003666636478528127802640043186093920762437860240033382027504804425293912767817513030475298147802347639165444004143691369464517128889278047945091662872164307970920146000344815243247879355991886688056947107072523670486417601549377876807712504587611491875224905903844511800727739350258815469882319463353825102818724050544996306464637785971313114670783158278560407151556775619945763757160159573525619936742412908858716001320983282329681567675334799629765506307653630752667243280727703610008520868013938477100292194772678149128757670707654444427962002760165583598944150974706987422189698089064474056459166673075704582651851186500474067974456161139676950765675173046681870817101279807313556871411450069927708395886522105908148390755749215785789054198027293728716482226962718948466997287101938609063127827299899670913005681806971326744357630704014498563606543738986282550242700973882007395343933171461586961282168048485927761450408259594601983802220320118345772072844070249324463961679250026758929904157183980577141763514401805609630604368576781985888945132598192053618290694502628718075079603889660279495351268061537475323984574653048690142446650648564506392682494772097805669447152849806781119856241158384163228594374359594817539464875833254433084192263335166701478255817652099707364149653039685063199354894052945792784871054025869149907373192345954651976636823972902443976749594434933061002264944806661481151121411474860073679958698440422394900683791654205070319822357671243477038997149782308899727555665559396016594544377572858791671988129926306547867182521899063397091549249887060512707357642144336697288531904846808252876547842779645357921450611470936125960156746048585997372666520219735473715242373795776732495755022124203858911013036421659627577790902250044115185831569980131700386869712894817199683923472167731177632333173808571917477059028681646110902708683791425888616476661612787067633529485959426700073707479111798794438867128383436973050438292656424172112998107424123754838581943261785854353004675504917956022079241696154983165308480337046589641260904356387782964323119298936765685915351957010279489446339838608245625953896826790464759477112694809895542916603990545145263459378266609794583663408287895873179319964884063166134546992838328304748361063735563981595143397019254006193982934551675392168892525879667007733396791653061915934995662355213426768180511525546339902704893401534595151269487807458920320382570313645904600253448895802442979622271501523847210168792914872339090657920682648317254792186867741238603478047575407973362566238008523913181741893243225010404477752762424478660530847424360228010885047861586517841193771350589229878726518052028848009928352046043570719328960240967745186180347540959184833824407313255494324979319266591283792953008804671664379464934617087786542565893791462441721100647823493339059946012624735281637773613339512673619708949701304221915962564770226862736330235641143179297275643635242580039409880458754023143498459997871336631663821365733121262184269774830067411902661297824672233647592834150321973015466048796532499245239230170296774154686418922332678348248050539972703860426069177521644335417973893188723490387068726837261423177898706249516305250262458032710556260086058825466157643734617990181762400762043776578774565432811324067943151018586957073018575147185603028388202191005689543239245023856840330771948232198568191524165755182930709984119788008570134463097701713909902302727147163857835501654944185405106401950318969946631549003676626039445033908325119290619914050155645752779082549175608927584124236465663328866965418895459679344349310752147239414560603134816105742802895766801570903613895148818052505203056033392340734588778668388172442859100017985619513895864617652813101903085495245994425468750735119506480698153174726328420805917577463695223018940674044162509601282949850167043035909401493690305776206339343230011778411054058670979615862122225530567108418816544050111242557788317816469158054621680564811887046693787327532100342339029664593095528108466945837278935118390748263544474355530315083335880511452252747188278721397379827453707092539057636312835295167161233034536751874848973594493076043444961521587941059075933097291850531077168838108790456791227293799085613392982150496701867103337959130429295468340867995577913152756147555622105565270264249895798663030075740195677466266604676656306580721212967651710802231723525257926443482873587495756191607984330858859516102848939079116458865298966114928351216043726483746797902791492373312512277905506274183300637554505314543553686868382614739297058587890587172744098638306407942721044291234532659843275005374914888434680130324245213429968403148875281014116362844944407670120410887514830463923489625142918105623116083123095217526798097177823326395739450093715455796607208999930852453099478021134458337487306591762777717825786420078666306234152389198144611437835762337206692889201370511661411602759966666849388912012559235587813722350149484811909951521732661597964334431967683906239085831608325916354562693206110177514733120398193901287612186093340065738692459955028855243453113648493698324411177065986673158822639226128827463906396538058039770710101321058565576650570757374962631831430241824776307904352698341674502958587398268488933769043220827554255928352982686867098719726912214594894145436023439121422414741635393207858171866088501124928867080967931562496348030947677957141260586593510554923079351559637772672213833106121645072467646345436811085572700975235402346660141685457896462218496066411160842154313048430885302670591355661752402275907144921801399157767377232423297001454417055207282192711321042767362352490644807224013117355817910349424473412809207882956724303849705986799042285819459655280945879482893379144567267153078330465899883716764753242753587428449561345266703481554695154836639474600456870578473097806922813380894522572975209093660289513130593195575362782021736639031841153630234195755533290883258116661256469012141348450631152028361653851508117318440728021259848012142154658556746781853468541679840475821597332147369401105680677040168070148595222845813656536979535559916078287598272741323805331177776589410821874283358853786178113091134165686905873763252820845511412559341953690966855175686647948031816702211555984448708698009020867176217643291458624377710767233538865188167077792304079269462401429053877392466311912206834186985388911496649969810451719573458209499041035465539877044597960657860842033119763661738928084380984722219660521655720219437007678332233606407885905116804362224701892638690199773336773968946912864096781470452572641671652294709340983190511391114530292645809524447034902776374125445028245115696284310373996417688056548010744573483014506556596183625050176582357497189026467872944024255231882639011588196113332510987217185731814731358776267085749742966690363608611387865203498750666102240094676054810102358603619101623947319766294688661348879507784990210509834008760646499913328186988033968240120822014506551953687729160011681707450417313108163023768116960921282631912576814061065075176588058738888301269817400358591708614652854380228926654726847285290732429615756082321399129611531618186759690683302074511061510982919718300039731983903220875549072882745038715475858945544143222596357799993597926007604059649300000488079858076708608941758689742485405759468265916972814821305086491198035097890884453122444788037587542015541757779503819128840110428642513481262929011709373361572820578001080331826882562743552130802802099588188204458586043639693017398052618930328935484789179319029499682230157512222570994407633737369582792615473431673949301364682389896571773574992051220737313024876076539792337371875818170706459555971971374517132793480269033443737943770418922575702458274950673515815601854064852900710142166093419593428138585791354979774394137213622708705883091591804141460418474214736198570634769673418868185550617222676603324217808669939533527123186000055778241615358244310865393451676917425329400716009671335328217792652555428297017681600511126249295927014199741588483842633369074997815690220949907450016887983089981145880282065326686182034365748101145603490142404191434631657414519333574740464885431967160063870564902886278460814951102605758075627324729886858553460549616150669945476633516004012180172218914282500491939146916284897469885689885470419855886493818392503847155642512286295996374600260184804540669967511856031125005293363532978766507463706373122597887995391828600604487937469622303316447371343264978079729687109075931591505100266716743732744948513959315687341648619568473218666317123326593312670809229952010666062315800176603313789948171528838830756457528378140764988931003195185286675170821408826215800237098166406639313284373257438929633127839865777904008705283372192719595413055243444357374645779501126612085352810767313279465612069187543213807219330485445006439383396391570765349141521367637361230586638799299455456430688316949143190050771614544250667377237043255209105575598984428194359101310504655241290192947375655953420660547288271993986576574549560461358366310768743449017282199886739832707686275336715118867664708868126964379353111239469737497152723263062166398299018740641162980846338102626927166333239669949463608577680400081569300076073799214328895439059511658409714755363500149704117259687952701556500101560162994002266047976959217782151264835888096467344058066560211418226431665856605710638918860440289787350119627512422900674272122024430997272855930193111095414370858970327175750127765151507666436597995782349542842203183853591290561021817356586408700164183264324301689165483009685344520381241148982798510988986032366021547320327503787636136414501456461164620176238905814591162034316410035842682021861204306537160692374189213383032810578785933275161362100370813861835946586537883771699174000623642324943420356868390499177269575124007310584972119173182171030083599268900487048146643603153669536524656559620304576934309568045444572526558367320268265596967995124773594218585006332015574997065934923841106121118026776888968032676305072860076748998070542306208729956769053268883350476394484168142931210009456407314239696033841389300432275581262186935353157641240302135872428051295424501636051810261325434456811535889113568625834958426570949054868632660825336915906661081773707956965994120410265402471211436234127018976727983081116662458562373443247737508047344591281606040646116611600782185108727823363720029741641976207636937258390991113717179848564846024828643162258957377263155838963103132693497037158735286820048238193412959175840702417081315083094364973940005719795775279694029145699812099292103116221923346483156168207391139370409238024344063257879892373735294758527005357508895567096510979565579849431290434042536062529097664343638617076415835533717093399973225202379395483713332530747744473860098580534541026213195075760392561981137012338625001500885110237785117071717531938843719741160033259887839120354109016924167193254032198784699579970227873925424223451077921300797653722373139988867789319178023809444385783150191700716657522694602122861846591338490129040893507682833837747481656511639255682763260482790043762340305756870027372253764349896486494256521432398717862499058399174162963237543949875494771110877895686328599287321275025408786889737501594711318896121661872968481436254489021831983283806139495870001239721409945894228238073917332124065856264231993496413600270244917814562910268869170288214304601951258429230849767558568739151039098279435905755803657680820460572069997642840422965656240142593423808661542126257423021613327020805592827586236103331939509901319048361668295491691064719967240820467103024301055590441565056975494067436505348015347697058159339700152635467899943961042097479495333104969735849350172847882846242315057141747172988020012810932959266306836804036242929770065964852179975111335207495552195508971713988662465704863751663511392715685555324780879558539248756471213877058649330869633308788037206317230264903918465028216732106771204508342635886757618028842819599682709459533341120458530108010763127959184390940308244209131916327675867925687588998762675990634155164436840123287234145731781067440328162037337251032108323277213640048214938493311066414763393800690923745906449543439113746676760137715146508434853133449777094391503192086820445133913847312832953397136014543617833941523318561731983357658628776712332649732308040727924821663031617608595678426033845770506618569327941558978941889201013594932020132098080851467954680334448546925448276036884280685713365164149022355229221316893844863753298659938948124140678223111078138709921211359842617193794431579321645092380837549964878716070614291466998059417268370157720170784252745148955056778625877179406927561484975273984546816968132154777228629632164202992888734554429453226569966114536144444345753576204608764572868833454756684643072117638586952912325843848337444558248335156916070004810952992867622407376199654543116096867509641241519855608780280581365257020855662540015065973658024394371017406117256745188340693902390237117638932723789295589236544321952058145818973523116485235278533520065070736151221842775289605107109727028356166766087329544479568300252787250887748334088359507313718481916734140332462835232852495429451516069725076774395124491074481876333175433353303982447415703013597907538163023329274379530070712544194931773010329371336812730613241907089034201338718507006109912124890592947340520310093725548398781951763748550791114953042005772686860006655104953903834387102345883853633071523692820465921710842927931543421768855125447636122492062741898071223709661758075413016531881213128159415859527450564389567502330641446932427936199054847010168547834369991561699668261092576320378379147460063259728064803563101416909071417259419038168560206363360745993382797463072851881591808391089374022134604980589046603713085243974646895722418766024892859737718885282842441894619991870615569931692621995667794130636117411737440349271239950448745683059803292874671756897183891501786001280040836947792044002165403248340616631195473767854004631864288783870065691188682674307490996855627900577028925583186538202170317922660435256014714598908868273426699539968823634574609356264310747988958628876713113530186871029418014183921158057164916573585235131979923742779105254138345411243688876113381242947388471744027545239371342780326190159221853153346595591153699293581196515540159451325620520424008370453526873954077611382524253902510476666639560078486978557487070635392898893019640084457323646524623410646447379143814100473044846931559181887267421366116302506887300067618458285920729138486412849168247018825775694251982578435108322216180699046412612967063407681555039272952305156914567330845967060491477360122435034425074487811554035238615261563919808673018093867760890382444846943982001378125896902991135960956363592459854858308399841959522359263203781922147720410101779065445895581661080540902487975779557681873082038889877443585571214478033282145764275969901951354602234038204867308880673680890167939282618194294155790877709126452449339679787448214812214591289866767179740282940676476604943042445672407752066808781193567981403708254622465877359493350645938996359636248738558021225443298196374376768980854865049385057148279197858009902387898759368543551119977286893350598173777241379839291467439458600843521710032771522090340148737070992189491378279053752921844064524631182268200009851254297842532994921940571484887727690811880761338484588841448724002161509338192543420370979224242732739591846921367769519625501915551515410950029118556156880090052184116963209216190582254573736677680037653812280599813315932929936437823888694172551322852723898059161028675129430681013178554341590479898349068149141773628272630917480775232699283553031195527467735385993159324952182797778471728378701520483263524788354349601657289638268494980615797550941446019953279150343477748531103680212876099769658351582035779168770318597504269832520588457918837857279040518156712720586803362301438577174018892544657796226493827607357809663865615371508536443182092889711930917556225989341908853948656811266811480031085180503627018927074980932931543974944063736028980074410081636832389815354859102413786288542185791741823226766184366494969187781844159824329507242517846328638309434092288855120708307413601614152579896069726976999924590654867967486748971273168650528205902387409353764703125085665921543333706971362322468061150869768891599447858405430945333860806125308415160459204718706171447139316218091871974988901812216527323377109017286619165139553452193873823336135038893767596995853625286285913500173668997850635233713863651777193174794281408066022336413219383311655532339134549649788956630806786092930033228602541018718146039050829101602569237499022883482330344112357335424123077943441718164788608916964913824046069656206172717621498548555663827804566753212614593297002624572892264051947099453689212348947898840693420291701862856341976199960301947298606826047532649277342245534419987254796355633846975962002254464523595122364272650548024578997836715962082527679629935088064667088806436094837083525388409294980342890949178804233673160119466796131610167006568218552458049615558170403492947562312810237055340657030908478397669032460204633566828753437160998017310473468987486875787054179678619766931245647821034627487399685831085132931173586826766777677595975976198072149897636174473177915195402690573538407616869713512153970970933730081189215059720852257913205281941254221750007095064034653319453083562650320753726444235190687248879939617795991167495814103145537720514776118370172198671850501591973197538778523467768693160803438111206861356249660827935925524217509263603473210048229769591088307627606519497387422867946097846495184952856740115228042929589908591963901758654923205234406575408833842740358108010342954539847442927254506747943686702578457949350912814883763019101956610676183654905786978494165330460811497943524982166114824513163862802488981237565773070277332374354697324561424215530978684911759749369121733969825777301831051511340931944002443959369382520938772823856284613717871957696389837619417037578416506625949095633036998727977274202225443204547475054855444918494715905510777109837527822565078959437386904762221155988466532717098949614040507203547906312329798327994689513343019635583936650221130431593522265749330028722759226260116111394476973112369137872410829453480732245221693376520389500674999930867832316337259701770028472548539247106049809433770085213786412202228133234408950044243046634643100540878127466686532305372585754829578732812155820337847851497286597451016847362534606568563817024366448219274070323035279982670515888928813288752431738035112033127069874901635101265298922868033888090572640418000418830595756927908712598462884468772605929820012427471114358335328736161243564464915163889264085085337247435387939646117101734276088357997791563322020351167927400533000165008469569912424080322956820753985647792731031901665734601691061363722445063825478357718153963866355342520416342599331191470725607811306861535822854853078064605898183495967823053573523007301394451434826243272813139801735705932057055811852099014642907577469162505015572610698090225735262899150526626953189036045113673993820973247817014821049563360346122910669865398603357122590245593719931224699972808295063282722789986251883080436230438558904258032538136530224822968971540778416800804048343439085725343819295639480370132820828342082728906524109916476724508964019527564239546853944760257133682118862214070684013702877843458910493282340465592537669217326344752717329948245224336918963897376744141549508334809760445073372020301266537162388832385222251696744278707078642627531434641622153469976183990498163957021159717495131506799755240702822329585362856556756352758109552143057017837590631617220766664479939684590598958164426534748740274026487792436753394509562426477261529138617823872435997355207422757900192574263406497027950045841150683190941994751009167970446661064465447774736611917783609901937855562082798331243009427461887042021838618289454894598824097045058100696131984182865264489380236451342567491625708033336316191879966762197788078012274690398097865583582909833771512360124258990276901952640721606855444294071214484954262831510166812863129224892650493574409661472793220330632134902284370043179203223560395131034629826082674864469863278703637953317752167633957970036224138603076221160924381747546125954828035473576367534301335828925199869195872009005803468234474281772858547067394659699831980708064105494609539186217303509957612351769271283378487478330131053245302348287102623634460717327085311772181294585764374252850916697997945981329241708093669622542381550045315914120495453729071568507295731481998472490055399576479582821409887188931348657062498200618382971119825607463076705749503676787295954230483418985496449191192034811423222566921582502182017610584744030713097681591739175307212760149179742155776989298569466711670920252761269382946618449193673062728917393570972645948094146502370840432935550119009118458420201178394985654931675371125611671884598797133396831026288465260976820137006657144497688833220127090095691342568999241851946190169827366251739190353073077232917308572681399193973376863354217234901357247833113413047822256782873031232914514173364111044337748329366803863399678456287030919258438270349033163684233865934354073886672924154600388908370426304125147843510590411897114742970268614744946207610107636036176788790544022220526459562879052786325665186851293070955531038306161404538189292524977039449548516910441075128569919586432674757148362065794956787592983478986326406209846549508062728721511170389297171032195551384547695357907680847733834093467143115039004458589895024082622577088507483417962773753275134245311890790004242637220241024876837784037851630556369716521128087788815355525363573620175792850951405273862767701107906183435270943996139140469471782770302453618482341621752911015309859103267041551423692662839344817094954067137714058584758328480080143243547926159516517327389674723762699892488376362371373645787716321960982762465631449066310605402366715781056747130890609582367573901514567635977618252945257999280844248846568578436808856410762086369812860836056490329390440031421412055716260189542371582047494807042763583000806019781542344771224615079788844259353134357947570956257055689546265953748061441315935497602902596201533158406893255195228488899627960699036199398398512929833394349334082561560604270972589600008260851829769174687491156734471186404653382003809965708844342620535321102774265547280652130768198813106194457918023998494239418447807343846213619797696987625190419040124781036014644252713094780104639714987099543573978629503514150040460384767305267664436238595189033079559452393478260787558164526202151099601379452358414898667702583197763524610010596877346867579647513785344249387287951564241476208676730438542326485494357146881880805513847267282139494134485423420457381326777129330564376615252534496073522551768385759339634463343855867851792391009087243678499454558589163825379984403303542900313368080968049871311346638707654415029676364948345708806963762821256888857278033700187020683601980687396885795934368010763569395266445732707639272774067507309181650305255919480631745390549632091051612523035639364664957880813349276314701020375275056307439376209807448943857894633019033053218590758895518419210523829109872984798081533222082315774720173463675060888254063680626931278618545938135693682055865703727288903666743470819213574547582597511887547383893278023307827221648796543196454765403772859493325770192797786529712600095168603081195796253664585643693682630934888121279909829226207974187550842666694491081929553540510936822151580064450405113929780238470434797735463540946487927056911360298025116381439048436831662780333052675830020462372578249539306207201917225790298725259844908473408379981586780362697045066947747486858035996447673016586551778787275419641050411330249205266255796900023593211299006292296930048776709416510222712655699543768105691074154906674321543317899509257894176264350069712244690375357549238671750024031798843914385723265772237100977370175964199203104955479221811539508453519815025289553789820431599481100274900309995689941313311074307791948437464551516487483683654224930491817809488858313288371940078404405426846206263253140131471587570489411556145550063726807096319724091296078280081039853843697997517621947878830718655546626860161866415338020069581017093580745750491708344083214221796029975071921527468074714343579758662535211715281564728503702809287220175899325157309249317022428678933875280360147829238902729068472378466494377662376917505678311147027670126528310132741518805192538691214532135109572696932098931237238141985108251591778673165914743132653378967703191675306030922723013742045601062185491265978596336246889698012696635050312663964977097254729983199500228323086158902608990750435789836451644432645259411755295671865396076164883882471038954509528224333031528059668573105132333424686255987499637201261118862365998295737244079372277845537308906598559582244753869424683821524924467820905945681722761195705966794940766004190266997314151853815677626795617899445034983346184108659453709123090091762820243593428212227853154968514733280197918818141309957059011933216264834187975337870824322580793704007631836037520328612665869643456937522857977249562751683624015536813192695847038775864031694157979956476510364238448365259754705527268809910995424523690132711240387875120902292963275250065013499368024520830777577029100634634430576086496997958687487789251732504905577751983818721503027243490207743279289926835344265674959712073610569288726864349180586052052123595443267268169233444040084442404621210471326430768120296726262275165124041411865668481580427677512625954077962668448815196038632752393182132036944576625521367798954688353859676679861062059007671586154139567674576764278456245934100625823944805519775832137818487026700720841870473055677458982783452514826295824215728430207171156375456498350157809543658592586977837766240111852965579554035722451782563798472787171909149559523551473571852778142742630400079078080560483802952979927345611330620463159413630245869471975425812733729207250499775914750746118771032357333485011963296563528114550482913493760456881211571262939586813346305829413340798255443586201867698294091590171642941574517208896369467868641907436370327595669980084395320207140866591850875110954712486313333712245939699532665789376569381179376288073142706602010727323460578160503684147326182643900717451926698855102895516969926384818595180286291445674170397477687091610885572721944872400612679379635755151896595572550936829944137890410720564364722613963354896798649738163815230934347100551776551810874327065599915536436321814245157498960945049003942741486606051113455401844953972074706299206185268169937650446758388732619165871869261028591171170591293161981575814060426200997952861402025139134912231548628918868544704601115886279637307910145153449247179439064684417598115942112711675089581365201249896614999616131957783858072510074537939058983013182060286376339700812822661779490704077349437297625785805671994875585914921074144333780444977401420694191415109494482997114746627646605538607754656857725638230436238938568674084026647139552020722815004549583595520419787544796771460050516834051636863595961017148530568176154621315305411670471798447829491078104293004846965621059324504072930978802762444684266824430356054390293136922279083570163676765595070809087468297690889843215530360636170033077394334789555115243113149912743149344167089262112974569718583538360385184524523831718469374005962557757508120423256916066232604164652804943889830841480268503895127391564892013620743979866352179615196038940040649192568554450302804064761661706720970959183708411017575829811676325864469408186837336769433253066534790029246385514164318416897128740757404396269323544048549904983771538423661117302010345200346581380704423974315182983904628967032664759041660734307202453005883439034317272348219865114209654736115681853426761589010220504033127026587134416563636498597570201889071026869861726514243889092422701847394585978838625207899744724590702440839114820232096536350644623455631493762183872402557085639158243478769585871605286958547616802455280289519343708774642399517710069738242104829745282446665319051729595979867629005801396250220588851261351526802401207672290099448311990427533972527383884914922017802889483484146046362850156704371651650114136874783213179060056749446218582587826022668841231822160945992857872254844089762807783417731329448046146528154983472279216681894082308757289422017339759946840792827584044844034275856036265596869598619904139392341705329228553045178004828342357295276875257015379337376183455775692217953227066161904352405473725622715783208272566471271491714179231726768257618803284653766529159008382170386924264087752317221370666986416088189145697681750791060132941643707720903216093612132954330576504695860137241663906574278575553319562078798925271723285034085778324983409651429643619168048269379120481893538368874714068355818319276108472414303666021884171770498035860563380469252471168178596656834296008613776960269120671634818944288470777904612661738245960597579396653141260139302577322852458954305885513113277740677053195436349683022062904159930801634559688601543437019625570900678501111449093791895415583547385826476714933508234808320376218407826463788313219713690275071573123350630127977986557977657226259080207815761396683345047380113891541716165416556655601383175118569734534081051979564167083733501712751074830104553896672282309177625704392962462249083796150979621381982062368365645865501165424191711240905425073905408687373733368714700157052327293002271618331338239898721557205823503298628750661062771407389185348886550855296168504740350550809123623445185466628371194021300574104986516228720184917864986150793295487422002602839045125334052296535635856475243682621378184071997958358228404569120966625831803530948867584662229828865153686639111886396417074927169690298155334266161648569737263835244103498681589003695084280525817976407558749858862183046212882796543666073360319307612412067957187559477705901086663905669315318462266471006222494354089043548790829133512627269389244779136552446434966074171690779532198986523219081533898608186305361758862686423758028923926495499078459610054218296175995340804847881539585056116742331941172160711289879298045812193270562251487590148626831664303306440947513117264906608569635047409476608216849250278246047980827115029939159546029188409845576490702825747438254804785249538308735210991321813393524516493223173311758773826638563918520570114101880634448849818466459562198475011684349703784034204035735928710525164174234360427945849849295055678983829387106575207987755590072182816857568282206505267995838392868543843860530267160347796656144043259200073103864252706524539129510041292908679862493740717114720322456657379473468902628557264492865486638273817516329145163209958423619696253705891748535823315966327904462502147191371486010216756666806040292225967059638431001402651351554106488438942121314046390341242383926486011874936541138554696117639694192713755183655265580549499193710734361632459806690198841112462268766336613043722000250029404016097406834596950202799565883716673072552806060444090318211489980514108384565865117783448634713544573653499460319502267627908245105510067207103096263489970673496582220868928719547408754666485286173094737250010374813248939768490928784698989865800570331142346204861799374969544983696775863391231325219858635342959091826797665912826641488062901231833196100914909436730032992796280435969088859704415307973104043467932776872276801430671187671672708473095872021624691097699997334835526014297197095100915857893607219902342036610732790041117362398424610063979293400819645516646570147081602006802278304095617576261388898321301176322640118320126645283419150745824987598938911291966061288472713702448258560087507798684856914229929310042205470778816564869308114722799750447481257493168076449615311173441454840047181633039753968653967670664090956006935332030597841787717218499357882408247698324664974585785020529599733842030713626116087407785419695622695818393981258733928221691113614945167371882608957632911074818405749605683088282606880418074873767482959700680213517964036406112428263980852027564295517002484344008891133430803205261535699712878001370857416151319774549447014147873073470573090301245051634404021517971698679602952154280168578839507987912912807345555983281654901669667650508001949300681048631142578216348856882813021317198407866017443742323605607867809255573106745483671288436371253440120787912351486252796587131314146408608630819640943495693789797231556552286387477151105088914992583304357650801518708052537018677640898028496461287282443305193792107912208605466265175305794679679512944252712456001048762337522581250979801920447341252075879652830836961099790101172343386552623248920544510387460371924378559929809601975217757451741030106154901645503825021688615185453996296400483738106185292046956446594969052079003425410230506590929279192019573914259627895969671369375425122676495679541507150292619822032745348346147942207206942592481455653161976718444710476150436617558874660296652903734296960958639955144396588941860082748678709870742258349131719235473971604318286679572221322174288185135073871378253370336789940739470824894403607034785298663563214190467976461465601891410073514745334324339495447250773544910106802207478751516688712755918478802988020861821801193829679654462068640874845726466645947758623858184328152719339345451851753189907564141141944549135318447470024066765687846161407799554923859737596562932626836443980139671871032479145667161003035048927051728606655164940188786897783278130293698726233174060932039692997371888962366416927374149592046514509692914003758310661757604348523142487748913829299745236332618535860601025490828040001486298596840999931480079366823724556373680022993818766159855547757994510265518382645452669507894848494411450884887332791015532741367771885319875931266760097065665274913630110686361173398997362912495712234650598930287107384042647692133304786241038656030499340659401197241278566966845201773165506150618418006059468527928875283303906590053387733389311321725428024027913226311490582426135959755180913833407857837209901667173329667703669897164513902240394043058169985765769993178528289500180323161903519629626454955131651135214429415176552274837860221592632004992953737540156394841411421664885722648577657788916064056801614882372107734424966440655814494552315396077012555274024761393227357571451938868126526928446995407370474740224560590630748193734321788782363514382316377167221823955021986566444363726767247711716335400439633230088094080286110771538679937529816612420696385560645779369254827700709900396403207289111504456734645621973559676946893383006329952116409749712104326005551635165318660079869499116522808399603498117733820873539321048159988238169091318664524566348900257543675729510081978011634919277307738331227521513778897417215259268495260541443528117184001994970023402357326337881447198175791395568822921860324498868767834555169662873608298510063962043989540642142602191046904079581759820665371071515808158367852838889882132300141839771808493601442137773137013970858443868486009525992859044923610138812808465118017504172904941859098594332860208629453789461751152161541030534611627493093051012524232623806287843237041937045328459538533008604451137578276873510766675177438501220667812286372043260845878012928481080760888910391293212010137632145783505690040038767085670983516627679681090440771032503435641270889004531525268657047187849192581457528708103740473695411864742883986174330888601270617343527144114826805437760561307440950866944165583333262593287761948946950467724977582358091496413637545985987037624389913325664920919288109336946500689355229504169619480145234248582825717932831932058169360803498133286706005624786787679060375071672755240111933385799831212704771960173234025536650918498913757248347495925319755411712113792848025713480637424891980144612729615677893152802717780972027328507513713560117688578308741857893010344362279202511507120157972712520822369669865306428919432878142451987396346360433708951675112928387569306201183749899478374742430932480251218493735656476640142552813252940916835057185556035178040733226527749058126917683166060258557779367038781141001408116839498761754861138998203200748142990623747033846094691067451654426738166217169078408334521648978021804875703609308238826435055978682230635476665177087181266730114992310939306570965057850964335820864980676544238787591583859553559484470318774738860297413261840657819199421315544678644029308024858224487645338243962568663004308871104645568433140419325082944612640204102109545487371991292038154778699362776587490091227296801378330426493034985629364427811331347628577088804244306211464652272187555449489063321831718141480683523099449575532322681783014752503600152537799933424394602520483606135412222706801310479754834290974800013029047721046093705299027371957794203016405823164485552425547507009813836002986002119197169420691327030282349494166951641044454213948717392651589069284358432891741361673992399304843769419060874103770579228709873778471938575684381415834239037950370569507710215136256211463395295577929119841255647084799119372390973768176356018432721689845372833783458216189653810140547412757519472475895549273935931150818682085505225084625766080964999196401970868728020953173991751236679366632374743510748361158178804018466389084336759522651917080140403239048883613621996068633672407188431780437637979700574684334056442721763730464256106002885750833623687726515799602935175065030931022407431139477172389808740227340944960301876153318290705511091831701927825774472056985024680425842919637525640531122057573213912715444842230310890784573322450654836211853226022745491018076968216540005201768321830126696594465648368677676664856912974609743529304668184934058143758584246342390921889165698562615939138102336653924199449419552880908637194553304110009620105725367058909928323902352255211015707390047593598126601076985835239483423156385120950128092525906823642823144962855428749937816041700387529211147419859139781645918352923739504845078768865873545236116009896242962571168107574057060774624896057908731909548749070415205667823165470305749519897929398168382132935872053198609305457774416694928742163757017701194526237074811522949123979214181700616944578348498284189336697714189520314135932485280339591091969711380691622859754403595289779689260998070093377397520821776563411036045627138252927790411719329716122968959097736657184329476185546816021655553167046758041952222450611123084031341577696235263169388753518418154380508743661870094698390027164417001286704218528337850615774726529555484793697902900623668066546997881245500098376427665446310726058119332566769964811074974198628818350268983128305941385954514859307132964424269507433092978395067617005617902140966135980385692559720673517018078786742644992326789244442109254036309479701041724209570343814898528108518054059118132614992845050001084174842917953428070348727518599570886715770077849609627067487075324303913711418798434493461794261958199234870979786149377308237251230622024787821728996169459954641628001709960102927495426068728593904486693917698183884034775322584848494115075349745750562924871474989315720298541968928843147457448561297939378632238139356966732305303287271083066038742272545395283395251764566842907845208343823686920674971501035165356289239896985076079647483661692869494632216392659989762602556017774283574346015050768235038241239873696603376615071171908631655213149771939735369508737326219658830234204194363281380664026519295501920749981996337731440163866697835113732631401977736389178898624699227220252932992889866319648776322824750235081120060785473317108247695344677221180656310106339437123507306443345841858650490016078464645603426617990469393894199477163017481863924410175697639044452955619739035452171408561648005251470442273856569592922655454800524574820563461663439586706921277894693277110196246303632815111626837967949049825789450395718097032592181790391699170352120034742899343740516158343793605205871196924000261955276194797609852653436174579769922577978601485795906281648990818179969180097209415393443460375625895534949567909402016843289567654021364845987318775386975972199162691956449143917337855149632039700561078199332249327440457579753062935611375407932028083344468212268428180483176500153013945515393857784047415423538283484465955630926044555550424107953363060915919939231606848827012416054949692963378426244058816935866188823648086398427700641226644930260584154267783743135265742111574076530316163999880087379097435268192998735652551259044752856273371514087311000782798438859710699590997697647961218346889786077937359823232676345814635552843078784966100928914845413730555144790975780492414290815725841029250532084289599038940344745689064526851041161504009457227873589030258804683379766561962316533959582899362197558435080814629907464445406705106700674764004366779157520804808666554353620816198753841567926183474557246705568957770969440530864760665621582814429181110047573245413527214036742018211486246249050583483903632461644092533107518071637719185682712833527111887467576413161161927888617336851753810810340947477869127396147079268045941106757596944533029201369589644572897656425885110083665489670753508503499918541808471013708063738647191945797672338874750106512567488358224679085433457710632380084747721854114992017224611938323588914211749788667541927695180150896563630403301393239669667568541946553612175056990814928289149982349178906480079636504019644345892482377147873055969704412046798009760882113230206008606471297648323923812940544699546873665549928489196981595343426287824141948184882032606326099165559901895028519439147867357445908023755629472984998131169492118320010346141787690127587404291410467119536574298672795705378164321065206243551257778480421462069185069381182934789612428584837482035415500092554330447108931799531531786137625840219794668964932448448083493553814004961482276429434934044105716466959776132015218353596627572588960907148464751371612141119417455798159382926034712099738881633655906449202317678491568963791399746664089600391075339305865176361156927268458409352380857522546234688950020163278005432820496371744819646067505048457593381968336227429529339033356337065460112608377826713893125567920200315598552023124482825387657759983350310844537199792926206078487718625613590577449711544175604182413740142695118034453159098332195862846943934025289980513375458723115539559982631763194111122211601630035904032961821792281118178679917496303462922158569301396467859524068118057921870553138693718072651084146093921726779212655529368275733242003464956206506068377384026628202575768509536912655498316932191704932299229404038393734204653144179372833772925462863808600769322354087404607171920034711531891661539948994123386794593537880550624689181247636271715274502559188290808915398431604299879390430461946756414058192286549390718687804735696755623456321461178306713471466864368204650504788220682694753946779349213201729596082191760230298882660349485997814524669378257685170128640677881292340604403209769651999050086598092712685107371600651746213188577165435933036861430121101730349907055392976278099798158052534597883072855573931896546473633893295409294501413657022851327341974598144698446153239287899520510325676644464760832637107334809326534272591717893899750992883876248255657130298429534387925461344081146033785161692878425007079161429277856381684647463536790793661211120309730262653236862249262942194523933991570411316706887677574111153844366750851975656985670378733290457219652618062935075063928597368114030514151182359021447227367702842731332610171496661984682735461736304300206509396401933139749407494852651830294637912902068823697333999571837745183224459048172470937525540078895858579743303392749909202835298265597293308160204113557937062913527784301023543657550959374082145493721869687386478727413592403734767448381515806197448269899891928736130177276225231554042048313293881223636358079419252964297309388600034448214806889749591574318618998890656939666398905079949404768310255491038400515850979590061582081177419619051644330802769229225449987153479922948164383829830908907107039543818797943496486447886611287249388275135209163041829476413562028906043948614359561493988787605863572661311249519910693339207329376288444918881646718650806256130966985801815110201736583107930890830905223295554394920853996505623275864366168173282129168504402214432993086022856769962423630599813835509555686820851409402430171500011251359641572679140576516871119614244418384683935103278990246853019642362368344964835168646508046898931479187006374426601170986773956890320795751499494544272657740356543154658376344963495946961529268334286412957051222287239110614169149043203874421448676270996036589220418093270628629241548008028916225049720647115155298326475075467886947130326843748655924823932056581379154578777898844613789041709391446604409536225931663494565247460622447220640821227181615381625568479996666377064821198693711972447703996982338974727375843558163003262796305009425729561531357301051891078273138570172440952643348157535947419693505501752336546042845631254830148821622724705279839988519211379791286038546932895917854492449176549389534184508928582405278730058172494466190794214276092537876318478449376491281423806110183341029504630464527258069128324258633350964335444725377535335102559026666390397463892306188349304944641559913356598183916527560019489901240657395899183155545487549885452826159795117484615893418125403322987543039256399963762958198915787516549452144760176926731268101904094643743759489222315735144977031370630845915547812912855377499596413971679910470849416272096208090469233668829825482548711292194057995038466376670559935335665068280574457611445988903777257545141412086672592695690642372382259759239745499697604699019932267681737500368621909212110448553682503395536132603885145649675487360074593677863716746093737829663266545182015696244969079773840866393242508923465687789861303750508162534828657099508467063127113991733322957361404036773673457986686404925655044714057045381169813957231056686725569223542013163187811893504137699482558614794363006213918874684201269265917263596087453925628750926945278758972977795569529648716659028592726587741944448775943281125604134295910244698242254214705844218639409101511998696184482975762831236278923950593512834028537746493382979123154846207228117927201394578020002636053851684410223783247924527368960935624413670874716033035907609868404479572610996266617889309234474480589232384130314353147625826610760723088238813555105672663031701572281334511185337417527899320573134488783476914115863893768126081341733496324572215341816044793960568960143286597601407859905311406611888907977991849932383609993103238026962854590856514577753450462329105683691143076212598700244936149092897147836858639256085752220230698450259989191240194099004307048071258300187206259370014144369210219838915932528134898810192643321616016998946625926863318874778966825670061924105537990473712474335609177611522839748477620001850826906784309022274238738070246680652096518885738491228481902821887716847270575740094167860918084326861814146494183954426435424266952792260918720880729754558493718686630165536228084491439711234884732391953834469920935844554710407247954539753447252816347614979837371977580847555283514144797281403279795066880398732058895924410287566160847642603193004937026244128138615496400419241605270992831209659298445686775702423306940815859419746163907815513052210781199238503816027971138114219480260687431596995261830770599449541834828817840506033031993883667440873745509068002558711152095174039481657345441856339048783726968781050044485207757342975353261724706899163715352363134784199907164759541993794441514452756859332731809702808983926283720659625653068364266958722637764404480914933501614030882292559442697707638719860541530197201091920473230160267786065788330299644214124625711604604587849113384347660270670952068290091290784873119950650198023116846222306334265372880721099122221956435822210109073491179399927277029900022871722198428218147439318529196742169362757064327682081952188809493766824164227899374653102759149250206495989726757712222421821645650521312504558359062842551693859188483164363081591699667791869121628053654192955698415648775089139233115029418341622384869302237653946368738940922465601140463253972672467206990341554087943748570371691624300778202503821686169135163692559218366391123608928759869306252182630609028745322718216472687980521141079062866202170335106555029799790403401409372191732781579583731370728676742129368393306491127128548517716325522233837726033927820178694720738427931793732771273053759632823860637763640382992120884999274681792925156789219196835834023722088017337335506017467863842384895099097474453309910269025364552970775424640429704085320414736693382348172743725741289340339908624569050492309760642970420324864801193919940155645332557257142586742453778067453733152177581658676224098691977249511290730050975702206706724965130555015390932397938185319130709361814127498870279663747408587500132017195693656802423948721104313101503738547049039076957984596664856196065549170838501032233193124808643671883896000111052491596636944819880130904802216054643181538283936443664408912691992019710192591065162727228559654713464105641359528543465964298910833980747654369691859208824018676617861141730599899913948427989590187897755090167705218945541332331190068467764337432776623266530345282034202555338807858556500149611633492536524120474505414110170612956518849104028361630803571086923116220761709198484151532968122586691750371968916716565555543695615580727202472702339445541816044096922276368915671218645554754853201439088429216807678364561206737137822520269406685676578759190689387835889104085260727877297138238855672851572210584042759741600724463652394156697040520076139924510844590356843612719053131442997239673198604318542726273034893482694772475165017862432689879583373509304011525677576401333022808079695706967927180505531777717302379269792082218259400519034062255493180279476186742191702351135769364666662040393211893887529578597162403695657989568315146835295760806823083890096150337911714427150111840220874411906926846922415168853864625805209423577562980388048233831888599064770281449957237339698241412731967670961170823933460178999736352150956943421461819248786957985971134959764876246344153990900712546444323965317547102371895733397741345922479125851988750642773630962890876985144481074109234755095573117732761157344326909666053788014455418942755953979092495881059316193316682708928822638462290534095246565531484480624413721798676493391004251614102140342413058463026419436995832315656544726682831401255861349544150750975369468360265103990886207610955787127552935028419237870233665482796433976297298333587561909930526230442902255730536466396672951971063134449147435233420157333530113514783600321578547461214233577034232599151748373969786310691747995313693296848249583718579408785931210160260752366912423585852585261659825317122724444389494795520509774987042149740113733395412035153096817775150542014770488514469457437658964525663324986866679633269531917745655063923336949898571412402862842508132219085255894154259007394611660205954481756180700119540446284708280472504091002600505325095469330851928701730525959651299779532929729809827389984616894523849022589844386719916476186485879175938927161938300025280577473231662651565668400933579798193525490385030787358096417001377922232778413811136696423485137117634139606511903274751305558771030190581597402609101542439837473207729705319893063543196326161881349704853241493955003206991022033794533361671159664109214080324316748189397534233493783382226081093361246794859534385106743525376558895637402638450734365026691513090311103749032963029238559908705467942402216024767492233565771932097604637434781675824806696965524137379266090481865599856805579124359399292856102352622743821426055575789718468947220067250482532802289880273649292975307800794361733718863773118531849906148690268915375339126501939322892907370059828298817525817272968585089980993130838632520601152210215871447898698727024433731655330786747855509622083548839101141185406100906925882174425973543621914914370480646361899498207745315509295540644997786563067991038422981685910165658958447336149442612811479088033226148812950832450453388562463245080339322695273081199683138959445510495107270726931238815866639922816611099445645936873660322622874461905519019280687164694748357506056860270108280954560364101276180154011233310559243359986313766355281688921643263010701221740967378294831734749156308689807476108194906679792701738851794361957694128699610380388668973720479955758394484068230379630030769030434816410343027129172190394725709245748036146686730161990613616283549346740604644429628389517043633670154719821626156225985783787963609742605629338011882693558069134595428112271428087727316814851689716451988767061204084289749040405588765447117214179775933545579045186065811236711629423440149256016306784329184393946654473247142440925311051340820462405934580854335291372449107184395473076003030494769516515315239445185783163127201232155029471500115624802564928687908335128327587051349000972559943211647611442560758088674631132023071639358657130056400609089420724070224056645338637438767060673047817420090125998389612934536827843011398632718096332830243612175198164364840156390240607402093948983294657658155980948085782891300473397152832532045102436580828596574672182512944452539727586774753344897887129664916293835871614089951657069736389466407546460141917669868284084061194512426146082305879634646916743162508961744499935889905618084199503826352840698557487411524864923729699111248047261852735757217168598995824145266465928181901242963687904816918893717174888249936448478964814356552980096854235503911003323277451830715953015711607592435201946019521787755747095352851044290440267910440958672289636738444560761758252768725007364748849046535538260737397646929249319700759979045238347858717086053898768782428571916265502950168074286333333400306838174844349318080493382641212066521918657258318163086933593126880266793896188466798891292161920376402229706724417802952562079008400965660310284337216229243544521678183826644643450672835141340551708602241322171250639253433120271528305551467085208072038088947542941753418996140669590207439268056160951411161792718435718152779437672283822063116636828453427881688642406107326622762044316714055250006167184556912183788507067835481177770440272071911905084129183627993528438997325912847695597311898915332061043878706673871238784077362179953531741897707202737566917949726139044483280990640919368904193266249672332395656540950344279311384814801875449975305713005284199541923865721307628631525858942484472003815195790656294723988740268937927696184865045940755892442641880525693416825148541599401692438627298313245247652486549708601624259779048470526336265201473767975293422695352884685828464120291499307903453285361444355821146301365286097823480797442825534670791238740297455713675806922133496161483320200238783396556385941892531121662548681352152396004728230568139306305512683258968614270570936110328332957276196018220757754258292307685909146681594037244658290274837690762233886903548258378891554760652713730297841685057418889751316324504827356542768547302340342556697471700112776073442620948592025168841068680106918512057345667585776668017562731001818412833530730420378296966735523601643434280354005204652234479091296311000159311231093607539294298342146933007213219287959294225817496879718528265703680819207943936806743064929558169627504104960580070237746002634726828837157022673315583946982307931344192082257966935144226386890944963421401895537685432611581650831699545591591250233236152898622930478099515736014357668241554450651044327375985938492888907167323105580731052313181214224460743707144885164017548975058489120203725571643982343933464652467674202721949653852311427016238309945499861423146416347277747882477415155346390972634914297885500326359735506164139119442209117918429030634844315539061661859576350782073239422891425242791010763609927783640003606381202573378125047532426191527600072595445719188655970868941199745582665391489568879270926212775325874309298239507219099630193704541826459274508324511356605513149533281312039712269917222662843233162088708075357400890112777504663679893226890350390832631831855319196716833449116093470343423174756162002655675664600835003341440143734449388361428015453583672715978496267172314847056898156093974151442525828441666569684485556095317574815803259069129152149387289238849975306456578831355633578681811900953086273590117283216828387714426692414659512424608500008918612203323043517179460613655829895333574744175330294442645063282317333472056449442313921431160574829498354214024201683795665143218836673071356978988984498606832421993923650414381020827117990098759424926615259506704726724879535979241776525556637579628652443080556697110351938674409603103770807507232046009316732656296605749911078424842191850402846199184578052456278812941266993442550458332202468200858881162621003034189489717988952545686560663359209739069389811454675868234074136290656642449122518036368920866552050340604833013323162978195667839166716897493055230226193882192854726155535773382846043359189360158893948204533093576986745290081000367063023258007670980140819120130052355687691398509818725657097306367000408505573402760270532157364733791852912509626733364994546973266432569650897218104822128765536533761600836885834805567406599061231624479896293333708273576334520278911256126528151013096286986951809773507536952709022854843639364998216961379890730645291429514119473127062359282232705608534007305685072294532710904211723349453544460662073806029964502292174783642905798089958200588568831102820762939337935029612872496768546278929839637861855183125346953371167210641726207580659490659118780840577925929786857156960670192012242974429302242091484712486425878348719596863366820119596924050049060525879521127393433364691377652033948966424904840131641367754344791272601040047939808933068735450623187419997386040272411551489562401225682108080396056810509503310690261868361803886727762375211139523253785502027080112193311131896711469684480285552354993769865584488006651348174154239785216762260225686840007710409784784790877720262630952373092538096277097500969638988884202048489286393762499825044435858323147770671189393157022809766290833784160382305557474823074639221050273513120176224075282369232839424293134836635498098732514288167525189692062839479228581698978635702201876373153811655015692694513090196848733371259352654105049726133798130138744167098439749642242445792186766120307503346243321842306525315618710797537986465435925216390474484915652016970289144599033607598429295614828948010174078173670270668294150055643083902918494128579339842702843730463561170661608072574085360831814175387910375767878419424253367919413386635303378575766520476378669388134433080711821050894861661899954754826630311744607318213558109371114907399916364471649807425323841691844002260457960771949915948092632813743687600594253772644270756398513531382274766459518367207525379691250644649112005606317008043910645852263449608367224762889628592215392704198408313024022816503217403245360941525632718902836996887020155560577235811225799836894175986395251410934953890158112917900468336671269145069985658078219563245721541628806504884736769810784848542447939716177589031594465349537191774630253950589622643260037848381940640544413178578253872949671257601927078174512041025078690649878312575272746327942905814575641142577175520801533268398796514388534872863659366287550438455993059724244015908430614262075486188806204678294983371730854471085604255967019194353854794819690539041244975246614831683953921543112119795827637275920051018747924865489877148135479721797568511949361792865798344646761422681972869941428931065140500516521617221222592043373092110008976774132370671325247437655105002207347918507539300244072479186691113268796334045361181317162236336471100967213125749220679007866454440738377256071951052062716570295738889827503156308676165761236128557812723811216022369494250993667517710489157707827935404586972364594689912943059486194831400352615899177796838018048905942649840976183364735043638832069915465165429768833819328180624197964134382154551628793943671145285758421913126157234104027369663722484025553000897693158845721641789295279634306340283342851887020974935959352329850271838557397009049729500456352655102960092610927327354446650918614336740381317128407622989147234382489769241897494365724011003144457706552840800206751341405834778934340961705904390821262892023770240252622369144332244128196467183075447462251723956094872987694254259525357703034134725192609549316484687351975832582314471548024940799381740533629799233544172146263845619975646896258686884235898149121720184736327156381998336504635886503646932217925143985209424085975523086626535850170784142143492451719652115714582873781764953746769159860892317093280205053518097992095809849234747569618390967941769960651624266375311513956042316711622074653469491959939428115192669127805441738733297571508645939496821425141106166740634384547010437359562769655707007805624631796401823449745926801530781167953856752994317879577290531729458895835085011089478430423959910599447147195761513462681992150541947494259735359764674599445950351978361319480552928909489483702261987898777758108897203631563152564352165719234057601133088190510394664883215867241650735642613992241149980208600256345155238767113059894547992671209953745711961426030209960099160887765779190839701155917653233188081757979061982420531191508953783575734882942065733370732737646730131125399980367105875890503703761032277165624505107005576500482790297561196152803148903904465077443620177793543399862864304918332401828220182955173274394777806038219461907087808709508108192262001905706787589521199551883998687266742524221645627845764568436945184549459590651482442674628065869170567380259502536907683470579528695597960751041184322599922778580044597600968159515814937061810618744684400425128513285930314985370853731832190695229061554518101653071165105450667160022186099033780190429760497962828544943972658753486028823031941620293771308846985773368229185754859529271356855896314985580107901127374326378921082965688592261421693136156210565016498585537201064136369949293073149716141175105461407957551992016215946408355483153860990919202594348377911872725491393192359571488274629284495301331467539898307750985745995456214401687633782806966771916831769652810694836710571886841835282030385133704051907431334544941702811298740880598797929273215953815211723155110574348040247459364570618500447087199144607375902459855214573862498786859849264149305001551513013862041982382978712671132162092375428477703840464039563025667984369464528818317892012270905446371428007085221139364053554985923417441563133586079487653900462421871061000501497463880234848669217300789496179781979726694653968619093570516252646950483426001383961813721946269708705972796137852236347058620554538471510463479075463908021857673116988687842437644063490596705425952592670744598228168503515235617435191991135661837552992045250627981292312665740359786204543839346057150065814592844820129443014341568817026957663171176520166690870219549544104175181526491547328650532748198291653849875814611513337407508613579847533490425299678309222499927205227267948804123985560245093243163283720282129647827178432847784557097245201899299511523786084675216721152187901010733804683746814691788726880270332479839161596351288087453052501203590209845786621691146824851851563582559349745936924763172630720084322969304516433507867154917520785358706380018404162909176085207539257648138829111388681691756914643648912910612909947491963525391181917944006424037751751896600695343957098137876983694021040080796310847129854769340727228272783134199224485909364060800457303781049287748121849115946827980732769426073100245536896610127153860662584329659559979118771489370997466654203932230206226344364232231341626711875249208536820218115917130848625833781046472697868638240400767191266745286646984940115889255446866921454693346108157010068363149947510784651063722577870577077511201783979849959532655152884040555733692775385680947501538551066437944546778197457476965643418294677322885166756018951818655105012373408150268781550588913827309147797376837261736298858633179661081733620698909845202186781444447669733137181787527581116474523023480426847305678288505217722717117488860730664474348416971517113600559369514041062566974782918877918297335216418762600755407806962184714282849632941355708995928242975791473826763508575990538684634795578882556914695934881776705383143986937284986158137914153955125456635068514305022266386995009295188169022426024143476929110937987149582946819340873729778049407647344030721003272830207096114410591438758312199819815876521466129064466656822323469762001345885518411572664568100911396796254580090083426660814525702788190626526169383505274912666004764162839318971384363088758841312887606543644505164528205648395314867593618286232757196136234692162109114856090443575275030511927334297282733911703427395127130602316127273267314295729612293061084730050376161490114756825271934493794311041049609692822688402671740035211854642706612082283773110663179261380934727841376227659814334537580703788150051588024190011697306251586473612186890652821521355955954902113198872671849313418900698484501092023927504680690682388728484672404239159959743476326890497513268327314742186890619633502355555005112571557110177465550374006045978427526579325191910888776161804059703711945183978576431678240320256331201742038471003139723625772676775786233650955056827631469999084385838024448565473557745939725180411555342151979666485587484818171969832597223307981275073819485425496114519461585953152108844623991030986331615710588667226466858890208482853941501364720334147940532328286897902528954861729610783500573520989219833078399911743887629064464805258895691982911958459108331236469490759829820551914367450033686151038399968550507917763229808657251188017352043477454734177509112389952181258023060297478142777275729424090224467809273977786723883947991004669184213394621429050018614366960290756871649616767735534406004397695921754366374367443116931041900128133285479770621275145198509721433578480450706838744425039972152085364817466465133559474509064785683808526784715178018982181674184017525280760180675308065626983316270734237607103759834573813993084111884694346057964662092357489259525765631664876236362599419417662350677200060856929278013940443763750887745052883191745971161870271653367944947107287023159268890582607975660150274853396859943246030142104428146426006644605080640089008523373994312489973057570680674601302395322534672210796186785078351828998520912934269589317481698218021609399847840319347224306404880776214329809406065180618569334449888114408522382317147549593312973290454511362829274814984204297656657327399442964929459322390146450499310739448203240145235148285274012819250624592723071118910663847098171611215438550635514273227319719419086824665602928922091166626493296138205085297667813134366128086054802852627178612193193764796747356712945223354715378937196205056316625552484817281036993805189616041999307878830061535065485914861118671814190264541715028126875686468866686122677474748959701662612952740920084963266377723923975913539433549625149455650670007752806621983950695631748484943280887128541074786375501655116734183076435519187187500163532276383912286123318113121592398310170522661108514490684911843466860884491275915871456813895557540239255120019647018755422442470191359432940374435257991537142003145496539726462689566077194242534542848036165635608908240276498385050596196574718956908704876095083070340010925918235922929079594580399654482942084563859654715277198307627798605741214051258588930708728628785917166494619218655870248210191377497805985233923433156969074353785451919839397325441315446310398494203130923085070664042070679641485648887917473029122775019963937342216328727780708256526162469952213501872365001394724443441303923259774526108893255593957072894657889864429255354563765484750622494075992217914976225639213153410467479782056013511580810039794476748625647685242457287777384390356631504837518783714211649486947410880243968704690158594716861223485060296969255129964387706380226983348974238163565954497610308847226678202318873164620538920489544085349118490166661314503911343651857086597582430087394114114092316250022174230900861064602891735548471228690280562675720701485109244125999356661821181035133342377901098911443758428405397818131702753784976675889413102145841716345981677618620704583768676547215196728131906766444800978278639682507818510825437971508232645405367258846202649449873208259989632001272675743773097010933828745922842732004739030198586029353994691353844195487757413493768767439254625893733158619859089022825559746495413100773622878984893033483966282652999527497951485199752548753248775981518080404749397679053552870732717619967583074963992577797977285966493992389609350631935536079786340015724722649954728359992254437508177980991748598656708371350747849992522557468835535130412833193023441682690899389459119848150418406687719632422709124577973603548779138882860861443421008892081244919904384619516780953664115317895712600889832437022421563896722090412796102968492632856905531178740060611339229834082939158243160620319536834854656158267497854329289153146638531838329899999840867701956985837235967929251926933530997972478843520030153419713619327849460244164165901304928925441489576671511510402758241629805542011453876788112849495214460171708354804835614736301816644274588264458993765276807310348171673244621605742231939742331334619786976418009491167950934561064323309631226273546619716939943469609094056998756925240668289114079754335465242633950574484744915760015106404465429286495820841581580099010519684295630817496499122738355886130900371111252912493433261769013662263755660375566474392534044269391690366447498247965742104817070143885260371761213845861649236119213731577170182960673270727766823940562475802066389062416017385052765872599266004705641319671233780182095175942488881575132002253511248823187947983806815432186611557907321398872944687024521909812270897731537198680365729038328226175457318058482251762620626032391312318930305359107974813943681152315551180325001497903693475235964495727762640039842210111259227783753540013870082415364743804176097866805319118206454245843991308338078125943491903961621219995520908180105038857053697264383509282788706204990677622198444963867775316644425644561959547986285796450636797563870881772538680390823956211769756749632206579860636909497467383304028775700753368742705573578913722003721285785059310692018043429888615517883082283855885463427957861320149256703099888582430804989452206309875813785403137371583234801809325674313841877479319638249558642096703504915301613339531165692185049645857200889143166214694758443043279217765383425560044466783279933243964262157508119392332659192268528348209384449860047520459605501075845228184772186511372107464561913097179399445203352861260131982831189392969951615819266247816038546288544146281687849612018518084419612799035342201188206371875840285595160251124098810626054821912082087532226754951661726135061361536876925425270472129509236562901536398858928189974620190933583787078406475272017067300146746296714498788040387498969346235756216653416338717989287230722300660611755987334790662044195326555588974144561280431796719879560242960872447477009840710201180844836762975261059050482122371420988254659434062577754567969470682790402995366721399783013303100004086354699111902297270963561777981193053333546946416672901203922136948455219414754505810976260616585940312411650764627228124784125349869548819661995593872806069581862156190118526775245710952211033643037960393398833394172054482309310520889572956094022156232157471193056723805040392164071818745799907322849321357409702490936725878582224996907534136864922816539793605403343065486704124991688639049279691889322303698810068102682447534627020946312335828444183498611591540638554967067056194561756696300199103200969329237392138811790444057002589993461148344878044167966654492975315646693016475246599983160321241642392587598572694004237893193069241903240729087388738575937714514329805232874061231380004379758962144023054400971641157725426429054714414364948115408138324916769245372054198558976693651291581813282552816866439144836603791605289427308592020283798129439574222900574076341818928475853401788120835073108784408400727249075876157231548167804631316475293137812143639706973989244479670385025402826498960008391819085356006278770384452715464453434903078508823161161798851058159715623540084021773261000718774083389972012634238708051303824660981296771121293874798992612846402556616615160193083191936778576280970215073470601111292565926183552810700477450312028220064777279906559793772814806359344879020682584867343661234641846092050647578778735014260119502209932217262677272200634653238500225523317724227468780083759978655362190991259719910103532705348587876260607069460145987332620245896416178458085390698754705756184621345405946499169224573466495930877695289327555298792198019668637095988304129889984923747713451714369440753764710184404301931851458631139736251685180270101371893261295514445011940661241671199025880578684755017572564728800725892592003846417887861447350447807033193051590415863124671007905312551897596650510353124823662737405136280881854222270123377253585778470044596435339022707041927964233087566914139695720897649840718491563394679506214028374406603755821510879307139590772810807078697395411359239355315967653421878793351973986112412818884929872318385134851029430777081356782608877407607883686695587807537045068670294720345328451999183581932477783578533469339792964453586133671486633763331882656612268761266603747871616303541668585370510933009178181900138210021994401329509474725980425397412860250819739565905465980493592045025482203597396748209092848542689100898642804376157806483043790052618467846906713217878015837687280134573953922612843278245360064248990099928048742684440156429274534192043232061323994154675602796767954044862495907938671850681354517827767769964984266536175423569387534688362034031405170190345239156025148778318472627106629546463574539754182550578738719950002008119700591475881978227409384027103009181346432880178156470286386192173436606076525457968883701974304122264058169577588379527866095741012736879611124689511012853538309296095543847745745631242248757276377515812020756991986438605261515584341541850732991197858283298737446516552558316071731810092709763210252969844105946282944671595932119875525017836298706242874025793244761467671040574912751967378640347085415405632984741431544340381701414956132753983405234922711634170255633907711597051571117215624155458120334786025899195737175178728232732511528688063021956484711302377213394405522193012074863913437443274826130409701423171616084823661441345543517948209895111003986532966313195520848518773469122245344798173605023936226412725185809405760060449645037872863605947603323780111185682248140636175035803048915917378160086168960165997352774472118891971417597847432069175924541658427215117662245491069129245326695383390896403482335430946151283016115955746514569615968863175766588567091702333795094810741614607059106631408520652630797168125437894193983440933078104020503229038253152999204258280109107681674878695028403825781819396461644307814401305220965053216295102662261049916089544276940072716966013484868322470025242724085824978528376180756060015114406302292030280369837023475526835133050984178061019312815362698372192167943368491597186929258748103773509874211833801197368564185631503846434653155286044939504879454647561920825919446114991762160427037597968854595536426688204401642388306334570071665311397667557333647092922119076677186228681695314961736858964065762746062219076873421945927916509462075024221652599978399861722972415728494955447933815030630563138282787774371495463067132927404574701899709024839532553669584201131102502745570608686615034303447673719365817456015967960868360758656543218101178967543884390632250473424170627308209667764857885192221696131038074101292243068459964211803507587807203055220249920872255060287127229116768419308096957657171020800730503655847694122163876980325003234377308905886132661557274320138666684309970942134468156523207255415943682293762709915024355800070447751879307787880093742219263835948479833626265557294834160684962446909142646396588033548060287227462839204669705361688984133652988434481918354502958190444226949317769187159794227650581548889615493501145458804960467190095735929880096899381884713953143154619381594636171047109611897486063698501877650292246018415740244635024912433672362309095829162206145245713640793316364741453929212377155558317243043522818141362547382849862502958698877059495614314615743822368487350083818982206679517809806255670848719550839630756950716457044737056981591537366347162023600186147306305878390349718485810088845880027337678911562468613092734582573752710965307915530946601843537111868307839945260390575505672864240211122169898899336490336723645017520730296409614875006367195467762850214540882500350122954052019690655008973734419557700581247942650481201386979142801448172487593353379559573073005306113055859783712736522483292768819170626812969815281537407903273032898238323748616950140300990471916304917952237097876839357296397997482475621927701137391796969130492534632693189170407818588893942950780752902840464488669640785481025983548186483001642478505378595370273855473551551531594276108618841092225648275498365362825140296189979697608942959310671582040079445174134871740771867707357171742295837054422532981170101505954528745957406873359640262901079721250663581549154291959940295304874041966156050846115248421393192529618854290659085522759285077216512940493830683870573413377632781406234340317900607235694047873172836743090439807260028194523374991272337767962062784138645344252306651040830335162021452375617574306925051918937561771061920179386770525208182549252846646777999214870281302229248860320177968338969969710812944750774277982668596022175509632131411159726331477900938313364360352499897596998958961693971221450559675869721255913461278661022870811182227995092412999858124194920939662785257703092663846748205633362979353227936443966382339916289193252701806959959942035186152048398014431280637449831062415297585113288888430331620745874090078108900720492025762731058178266741400394725076223297592326221929422741505918195933000609543008433042446911469536805763693347751954315216643377161358759581702274633642221086753080340678037935741884243718161273189025712451665763966740548005585063473089058210583439338386011749134360417361832605689153540018701000267036638670580768470255814689389622446392178563312096817664038760422853779805624847208240144055726338800290726384353542348474469789945045845669294893274052417124510096661937262471305289076596378864012698836031656598382281714053777567808849192065502629627460085588697756232014923473528885712706026663380344936011707101153814730347040045328186375640869190095557622762420901458538371582603233846269000771764029145556472739182475724237681250438524077325011695711624406844416566196071199327912511471827583798237427569941325478805255128004824326725425603186276526957291359641984637146094940277425346331699345043324327432406511046589766691256498371805245969955108445626238054864424923016169352573725871037947535799321611781437547105338998056469246859370301928490764234824251740354806472125194000116047935533167316108091816991605419061162684867168563548205673413199012500444641869626565661271474782895960154513705321532515615852501443168783465861861829366059968043727775607185385454400249446378837117437848158022880923292565678336412110080827452601807302364814990718076595502248715864653296513831775753860309516504606307665325710913723421917756137930615102430252755444761693682809301272178927441461615214244485588879111803525887192148148610924766620256249447036473952663641754341806851949175414848761244782595566756033135515902234172181762693435560198754526329141473331350624007194158024303770852135599878870710593583910007335541786254614111571211911612711827688495890615956162200162705649101198456681109951523332238946234445248297050189330565718345581392899707189873244379241902174010984299074472752957210546087285363850189147350540361834775101859233217280467023993051097701330080683344358159249015503656658074234570712601227096532353244187414723184069483393225181098727280663612114448863185907671576894662565255744220101036487076583349873348013633236062171027786516138159196642839545844919684492859775924675872442744472931553606709171210629991076856936985671652228969671338827685044731976946119252500995455405812235963664358147598632722869079921280041004614407850782206929303352488814366166608279854389782943069790438271344694306711197097552117611615971526632813015172337308941000185096195443040808150801207768545176619682336837788477209223804991072488645391594085809566527979716446717152902684915691913131797837887193297001006237567685394501873977935562120751167776298373438994516488302412034164675878554033457639955120389223876810356101947727891426851520481225043208583664163097491242558892699227143975395688399550544821129141877253625358098630730582702434326043735122903023325726284626376248223804139274418625020407271853358578994189168739238436484687097922791726489131814328763711756291311976789227441505591608932407366563011475301487126841520031016537581710465582896794754824986448578047834830885045443485382120450132036738845833036002304637976376921371405190862994176511842398377510036841258601162090099554414767645847459816251531305046617723282996633439812849115859631059667922944405566118641144568962723224475219435386522666947641785748852363949328559666472259538558363956508051820473335999562019085056151970112269446168505563296978515259347906148176262595779718104734821417965201217521528930823504144456105135054386639913522150968160718387443430225827393994544357102696749290092636174853739579916203522647013330757131588475111467589674977035253129886921147136549406691005184992153089412064407482109422788276176611018678380435693117304076760329387449431017367300610600226793580419239318721371686153264712130241812597998426875178171137098543915040351815228102108986351759620905299401297513904408630786105338308823977424770512686091784077747786776477882099086028646726518029112065845822879043033275070501509616307331272727077425414028772784780716497033445539369396970665696448704500042630345471784323684008220967626601991271488172528701305799171363519160824942352692379059135897548255490528639160129901274465762631018821253964089957546697285467825328069248893157214491259880936555148071731522175294274009975371629624365939488812712822126515864393682731661634222895962292792385600960264615634271413778034880545135977285015481859914309497666493975226882609885058906674623325729345209219721116041417118982602859463152069597693316360446373997623406808065123023446578630333572898089517251453668295470283980825913926789035595570473302282976995145540376678695167635691021446572673270357443712337120000068690038387104324295072278786123314381525300249028335392318216507857842382003405999939043987139981080735859430885250951489477010707264664366522363246812428014312100974967488839462254376129821456986670758643526245393462544744592119473659773780100217721137368936500792555519474632229870807858509752288102658318728480247566984113916942115989525106847065729512658838920844053614003139910674247465736681205922208529383236149408569160669677258495723276332138644524891064967046165042164957831717816580611889159973651744460650493547383136543553980311689330486220652643283522005739549758570139171943437986555993112350055945339806684522963941644101534614451182022172990063920808613429479422462405205271394520618278542070348426138140275293645441944056064549149625526932271263137076815947982313617227186673389803970853461564856630153802732671610147048187807462906050965731294548787507611345155787046136840757176505258978572450677613804693671875294777039177804524031910992594273569857055714564093744675991988435866098486126381519438433622154759803938433089649798175015891224950517715879316771366883798115678439561874758289683600608112916718150758648506058695099864502690041453166887736802987815835184931269136603197438999639352105161533776455329516959915730969951094434625219717894963837277919764977105413451802560878415160662268846631143873516097938663235932908131236008016781383202754818888040245053948621492062063542109026643143618351727052918690133587721282983512552517588052206686459712645331471094034537426510073278517701940465880138025784258881360959805004131587608139630672033456525227847681872016388114698144636463160224246151139546417069742595105606450390290769267193997810172318670413544014152483657500313198848488205354872727177263601703322175193557879313625056516945604772754346145172710277559301406670867153211573102080866679266580792916196956020659132894871232662527750866725272961873630245342213691437495825410811069677255506701814808284078606732221425658537054789080175830991322731074114702240928372743764683766029896410564815221492710777496300848567955220184090849050534551817687697310651290428324854855768337277258814595518688988056516361735212034196126581074244719473431076264227135349105381955105554420337501683334572853044027627072904431848111667797678348380414116390428929309522233776258948758507510270261821199503194365413516800643693900758643809795067046881005451722379763522563122863923259712797105259130073251272153172546909164734491559305021589315382713487243268936323018083306785372145213642503695671346909828508080391850756459466444145662215030394235049461288193193661013233168545919230006025113904890212320335832144598500441296308951256869795937003249855619426826008300512056885679158700473129317502460508273441575021966329905363691223120134947517488603298367372573035187414930374101835071235956324346970121468132177798231287058459552358773337148182504897660006046037523505874922489519022023173932625486607708786872876662391204199111928140023484906056986565940409642195322776074532697735011399760044586601303985098771769452576983599662304956030245709761649399870723235747337094851230423596240199946300208401816617430823283155546322680063863770892146756109636830700474533831660502575678123144552753082710551883251209362719430864376839064411632109803535337957987986002113506460421535295528265124127764034126446371452890907220400645372906325703114696416340269879526484138344475832565964088503617503409191041888320185766084338675712875030301629108014320617436142733721394614372267910043915229459211279887685890377975077980154919719890325385232247342463247852265046067886836474241063833374954932949401749003785416411864080459882329261592725098419341687421292394229508089853333691452705388267908325053681333628022039243563388915928653414493621854653931428458960464094737520162298262234627439783491834212879559817142884971185013840801824494420779713539324211718504700629782858759568097013088406754955281571896301760665006395702353012425063909954629150249150990758190682843993041828032199856324271998172878319030229758970676448519388924009882804426801602156302485523422616761357546071014078846610450504323167638262233276925942661784769072504081774892419069635538363167272270772085353216657495299906422168489326060678745988653376389377998162423573605652774279453515241780379401089794523238153417721210504742118082784874637552456546833614833537537247770614775923441806396579202345212988024958503044228165317335061778840644420275551662255054653611027376309503432412557153726639015860008094520769912566994396439367469515575943673090136467390454558606371856496817775472467848917356602256226292365669012988727688165472646530384868518593866526212662088615244055922181027858158171002775804480514179769928498687057384477510914611917264988357317648417702132537275083382719449066257798610670591492878936539715517753352859846321623297956344934318373223486935812498405004554297989783808357148970841654319785839966928269203550882917779303074537865389429629187270991492669798254631642390319243287559038871440860166824388704740448572051711151174406769476582594714795719207817416355848519419814531558849057138737259853841023115784382267806497446006750716619971998880285222287877996574993500688161861480508806886939966040918177084586111555363747316091004899198492914154521378014989749158503800590351924648695823165257162671525721354193739712337581007650698119351452783192113886314840975371538135574700236006760988763963164420751078120358072389003455742946904359290609217557827218166843273792526792939613812234568327122409419575864413802991390172779361274862032919816242726341810824079350502558204270353331406467296207121725029283225903706478632188798567519291043735030283541894145172263453796866059074724999834477955244712701714735923260610912685207909032189159674917312792594297732791034167504952941475364913002023044997014066022995504689070868042881877975258994942094710728994356839258225182844979353461876612059887812489124547164031625156047377751505930646982244300274312819026212902804894331866154697843626975225318479075795692280856569907345281216421603883871934343983622284420881761088997642420593037036265000444848123547104952875504960298959134321176326909802028974308994060139319514810152269042216212883484425668693217952387684636652814700501099126279429363060665799599022405805951925654594870830896451368911583516088875283216670324173515206476090179132111452416271879794672298847281004834136321828070485363755627593199866598943876609097489003098778395106577232112503553944083226426782261497054012342907116769071372621039811431722206020136775753394340484528795273357214642703523539969732767960677715674161232545434785686653080235589750216898939785242429365908654223334861597997587956091436611445824719120840577770463952064955960428732359870830497280653631109723783876075228904684519628093198099410755529911774947553416592298453574089946532001841750999178634759939318369098931780573314829480882896554266553608526511629633554442062515900450600540251601168209374850419326733556374296097017280338753779060019027266548386989987941932663545678483111042347322870081152021151674060016017026876982783873281806362120581411605623708761028288126733769343076621483909855165136707431600504822638358440293351183981307930568779171768051630824591739249176944900709904166614183851394347833369848887974276290872584125680612186821478561380474821195481642873231917517067460326089894450033699032837540528698831842391452820402494344179681373454247128126531572825917735699584956157022405253505358453120421063990378619235060674941178210664384095147476408040395095553084369500068870917088291703771773483284706745724622981563191385877984125405149449607453191833085219434211684541609907082804173605850523812506650335195915096428476879633092551298795450959070180336531244286662166574795784708379340855080427097300407849106554865609446335268929309124880870935348525844719985969226052102355818435360534405412878287263176598870808071931511829551254477112072656850323874675067998218511300486941426557198655511634785968420853392219738870467959468393635612814169293772992322619557162244472541858654246855615272172467488585209070653809359612266381435883447567417459372688039992270057785947358165678896255433799028795959378920332296623355803655197689981110230989882498026787618844081305545392586499031699390499572120852585616602627700009272149034135220850157851550189063024305281872583626054315880971691604481529147142705417747613178404743142215320987169951857230826027965498272238465475156768947968816044673692298733771120387729325126885168542587317496373372159745441792269384086333174491557160037385844100954783525815301102802904246856718971747779863403972883369931463395260395412587146471666791613699282942648877319210345499157728603094214437021704826266945397477858314543645624409317347213292073019262972674085609591125850766718523768801759340652825815557270690823972864124722075661420078067269428346398283904695105833758568436179953303176416328412282195223457639494184888119199997143107398947744309115297093709399186444927089253063530689607585132207138160627614745340400514952758279358020578521634273568663699581601807712598137147032894153599338874287456894214504258367800920879349722909936916166225187953133947992673541764852833773320627593203409386156265716516871183749090173250581422858408691869054563120489605315253808763764984094779495516422806264019621529810521060384937906004541499732089192935452467496432245088200422326834157688041438769786326814449766078149432059128680330984165124232651684179863098602013275835423156101094164974248774109945788553963597218567618284418257796502244015381083676534849341806347020002899522591979262889859280603511477311416978758467389216709570350860311543460947466598201557660392048568821780289531272670508428882827160301744524214154456766729954773642511725654292038334687399504514741892367808176344574859352873340845919356851576616031056088916339338218286104369919550721492748582074346605426455296940131960996367550908968370538415204273020567122186997935818204807115438095429809001897775514216373894766387983952407659099837582919414888764979965734905858839338336751493298144244668069041044212352955766959156394019547718262328404224092993162086892476881716131356052246208185775528870825553228497296449834832182464847536575902594312122686501706803274544065765121694516592581380227481148637597825930450896750594717646045646039199773961333505891693384879578531495068439593674528124419845721189435708148314540831546472894074383776666614302666240421797164803256568427824140192870292546423951620271739436102805572416589261296408774704703265398592519703633633734665137522967962380330129947731480846503953102489653148938397851247460758122177165023927290892437731990055062627374646925654887005562370674370269899485722721012714891719430876247521722102464176184582905240588496676123425476397728185122090376240902192559249803239327208379643794483108853575684523262965030838429076743484045517973915443608791698965139211159415413427297583184544475906842603327304412795740916991864169131741360741585805067998999185712561607430712388584442577721807762403605879541739763779454381542526986587159736466134355995891077945867623418471380108783154612977895552052119029685503457987730933588732889195849515257402755901715810398459563104036978498708774464081266976961587502696347827099125531938594020787985870198566581110076553171656738019547017765963765578730740167255733590029530790230822665259542450610802506850977834925782922827353919374611020706862617756687773522114325367414662432240860132018903596503363790800181277044418614438739943552039779095660030485177939099654677715750837245967296399589718756265215269694326836189029155265259444562174095789444190475067995458990856982058251656535259197241271895590854903041651625302158238407260204639033417323531776886503885269650345145413561847755949056762025440494319896389322829183716843320602926098823002380422304052221405657800788906133259868320291707722334050512984893038821754517955766239407308768237844634379710008345883230573626067419972250309047857641012147172794890128713773994057363768376728413623457752954489643174862078138055143932822870593325361541508691609874927481710826325175184277797478646070393894225788657684289706786528510382519394783115163728892808381225669087275183302518905187878334246434558426341020411882199815184042405117084257681530504194828967347347485142233761389586552559390423213304153009645173366177298553484134573982387773209419828621178404888405246896040469794243533953344839403746436490564048644323205388144965335059858287271815756817656235062441793242109986792837668352672679590261557002010510721205692282684240823821434028880011277040710067108697504914043084150228325122870383755638236243258282379350110356842789451013356333573704118599608274234620298134067702026904382232497077989101085836936137705682206272010661702789182593572485595468955710494269513443981829780266227594469374452229736429008991226526603978658195868643591375245327528472385034298582493756484742407163821479314440725970301792158182819603696857529612772679126699524691165766593981193050808898430830496380075374951793027777069697505861969346683705391070114268021875717173496134110853041922367106647075371718558236223131398565650947217175872253681824338289207154719982062620485659739971764117783380124841323324078800646810507851624924052373363918630274310058056770224453875429355943219879309961200262726522669931191255476896995905862376566092539802222167793438853072990677663527035207800984790237635346350051417389826021928961327046294453203434721570382583692610124144034863116258571075321302652233079534383332335484603810583475699668473692951856650329285788094360990508735182526942718289052313632364032477319134414070883518478820647485185418407167444289917307533852508261284297202594058980841219820288853917984056782832514739851821941131581564483471873352866456151729716831134822598178317044591673133144458063088229477643245333037007489419516510523819765460251835785235697953519105922793274399309083931842612528586816008797306493619235170135944842844815305287603087523633159710947926817996429451617281309585615665595657931501691246218089662502671454459431221198766404681720013710626356098822345342093562292153116842666352483715472433808452974019367226023858295646955399460676871727263657123842708360857751735982323111746503459209864992544673743370717266991162720565008064453539340765965943244228809742849080520174300088377711026527652734590626017127484103060398396378367955525502297054278086178168589544914503851954203586518707584750178778972757862250873804619228418867797156963247691425575294073501635581075029028311046721407737570238547035920739747226969699481521297408345586898598933045197546606655697344867442062491044344931764647485600280478476882940604159062514022779094082638308066849799925361252796046737687786710854897720314397217505068658304618201171015890538907619922124940053555885325726615478405953945040152930353169608521787725932036776816946453399147267535269634263192297544442464447330999537381864010121668620914483710243266189741906442477467364349731483075810739656402037945009257432634922954266091089438064216046631003521405423805108817140052782479493030938449244938850579163671284388480866091196949103077637109806179424661441548712699884530661668064712244841667296083415725961462537435690189002586072184262746606738594836299938200122795634407431227284485413117631935796940989245649922023477107239276890722565621991152810260442310593870994248043661268086818429634893348064524468019132451963128025283199114603947402788648209468540750500646223889910810242110246321150408289432304981357250820521546854466636289727296766312201165067269883586508056021002753888798758500852716448745300863388682588315698915088047470167086191921576896948801968377903530603206604332568013460794172443078388905699812209618886032036920462081659892360279559245052593366098054162674310839275596251925367729533701485277203585436413037034236920416427109598235417738007513062118732854517810457378025446598841786245153980860061262016773817759349321111868207072507634057529096842012250196801412819719922708076131156367256341997219233352454546119254428668856118453555021476464767625671205134006849682095564743198614268746752091472991970874016362957520509664778530009672136138359576047728972747388402053647886228859893854005305872893883602140442484661588086719869970759512635076250114537364561985383236855141996149169977498600871302179747906552241192124547387931062900972385791016861250882488668492946735090347308106086714910330186290971390079825518426212117675909396080544333688683536419527691185098604309503265738313901644589157038556874801235782730043132218239851118280739556437162994433677156125503978187442461268272353947609694546638529283782561803809566055272163843427976217987044988210172308609152044217145933297195233206503194863853449233520300926748330710896605845518222123214875791894333019922542503184881600162465939052688934142147807570743884786651755460800771594497103296211630210599565517442720681902251759698087813338707559009017288705617026814343899671075851471098199525531236423252682518895842091601013941815009526381743078530512660044308669806663483247538307969382096684374503016376569913156628366239422644192729112597941044923849986135714735816652162515810511944379202850091572096016308507835680128607826954627816464147085815762901691092191229326092268669940992890284786755395423711413508879676646808842540788236420756539703118596361690519370930569429918295872298312595561017126574424310088482920375663573310695663434802874563581695011019045559945174044466721903632503450170252316914853326404253054727037900092960491107688489926286327743002793856155959780885049212481560986633948109906939579302800594963220394161059078172795386329525836598092255496263877797467514233059583923062995758544658019679102460430333995348139367891683712521198589626211081296604179116729177219557390752143608680748226056202915121452745779787436885908598708318149163067000521574067443172341793688592664012276947988690732606137535042239237985334076347682226432139876564276930554491400445374531647552369563856086031045961735053010927177364569612954826817980885132335221624245705345487570451914637643455299874636469142241124451722585980768575912954868200085749061173585687370822346212386337125311714454255841148545157460613188619408579443530603501889679349658079996317404242566967067627096735096144791133669405954078704030383457625837796613201275257341906198947898180019631052572852032960083658803081682799328352105984505929289881172293104002665142924013439695135622625959209193471174044139855338267236811458402045338140518911172402994063813429038784916953080867997748587519956102028467210855300491561003901182387370792087962165603750220709975587360974040391490211604574568868391389852936549568607116984087580488361725339492550677753424948520732239814490015320471622139404831946365652551949027841772819383309438215369618696290029531182848221227727100166677020354653466179376126924016775177123043021912347883148533606380628419241258975362087924201871897399345209234449795354729676136754517884302436977536469031072118880112002423845244874932883126903176530221752618006673771391332565330690320527260619746441984902627893250110484957315569139466472784945254155445069165062872879865828173466854533434017637848862320355743670888019238830865150742539107340491196627847266287251962090992659030191793748871781698586830460561023118744454926536874147427593747916383150215724798062566696292578280632746024148011352500482853995566509791554116538179787185576737663657966045680211958247311184305108121137848504243100832626711320927912385131399996747183498029102179209974761578701292180498229034815797069189150710048939880275103996533119808139985415994233577224686419218188887789458154729253616659607127842972443543768406396379140266530723794790018326961256008668951788157672827535506586908539781011333033970353661801510724242028052997087992841035296303403514395395007408139330406237239324641821213987904518393636593842853046355117339530186922353462402626279299267683988838114382942154021966221341773898787534038674301566561889452380623547720664665299429554038653150558779987336060501091352700335137350547408472163614435277261172420584029751440724962569754433232408647759820738609440150389746770670864343249428936087665831440619553830460467968428682330004666621092496477469264795973208878442075318462426115865077087131663100292656400417547037759804794385953408555864787025280776206365478015038246918290571141283605045409220565499371601540462761826540379461381515597477647717759518470222691438205745366996950317077317981302110447825269729244348973760432722770946490033117847901674711621771804373996008243092215423109602768926883462891940494879615476839872049895399682031201977908463935056928713656321745138589806652345382098495966831027931891461393437832890446490116255103747644577477327046381834920521630247045774765295741914250560007223339130310449314169634382987799629237842166104882936568258281510691756748086391899166960826627387025096953970991018437447098427952576788703736979609576511948026365206437914877323063891399868388971206925335259468095905174483759607110652244914420729809050351714529904623905197463452064331403310530967952561673780204928287152912844537026078885130691092864341574206343180324550120539191313710899117301624533434271587881849038641097075688456576218042175648743442347910364811553276489100140558167067534622564469200621553822240903373787657479190733880202566495896111860991886564036645263758787362353631551779279213090326228946632519181497851965237172925207540374749275855528575474388629117415151115333315418168787518193292653298823556908269540815266557052396604776848677424759611870072702106391956323193775205432792552779320860955070418681410982932440531783417269336762769512708242663040880379281416132604782461738521178965572447476893936871480177603917898229148337780152294890449759262142031520978158370683282344161285777151180981315438386799738787421453009157186020189567886877387652064909296721525580593350042714533593986802477212966490607350650269030035441408419094186816286874670088531567168532574584790399813750396732117910696607347478223743333606436421519767508883015394907096693739263244633291050034002455398508758605894120326332251405539828197020624853333212136863733860399328846605411914461723054677370608973632336899430385797754659988419716185526932503011138364688597415650794486786376624797927360421173910032067015784002071981160982007753960874518974188046834893055345317859555818873451015542172852493149869695768611425351626200181266703938842110022466432996024730581414646917408946741472585421620003031683162661891726831761986815557162789764927547311902364094817750852910067286578085575456689304188607057050202774688483865490597846331857055417279556988625124088306626549430844589517321985158336552456506463209983032440536414462453969386768846577123626743213112074255061580510824403394350123725961786677836421932311761595970482357602497410421282568992290119390898659724928467079842179207845733471368299890779916361581076058280330486884497655192943599092039156414344952395014907781941079743298073650380067689790960392964704999006581078054142469834146154741127677150031364373054917326016754412959033712714873028381207307363482922125016817071564670981243677748059577621611301271892960848393643278286195328321644639016170974859363024948037186350788240666026110528178366931429071676017785538351180097063199469804490283532337902229260983166061820155216617677227161315824250216569663753536399310810690780357902132688250814366891238195639971017538888154163452381088246789263809011344591946266400982950914172915223953531845034431610740845821587991374811693577059781472326191123311297617002864277155138529189554578873862202833318949111196718085250287571839272642038372904957115244415668769409135988310159574576668608422070465579723371137794250496317202675213142025615585516286498642911526264290083241775094961852926278578483055605503572180199911857682125528897948112674036324506220154596974978189026372438810084260200012841197942432472234438271379714786679014390270500256177589514819038299566426639318990059477714425851301415211769900648820487151633374000143258934566154128782894143535154139330260202801769535222179069688736628611223412546415083509115218326341050826045346622596265601087699523567012374431196686691710856436502832241948238330607067801257911933467109250363120571759077722964281506060165758706573297269339729258321092007335145554508159867403144534391744826364651340908426342621519902772175615162114313955080687767275796564290526914055128282952802496940422050723823363117712573875711667373436007665699411784724961638129331345326659467308103454517584764987576531002546769134176689121459664307252818953103324961964514633930355563941572508866587643280563982326187811330851038875912029288936997866122296576368291659856557303764038165423186186446502232752573386410820783655364317864282686154042079731742236891615231101391743757281961092531358066279820936663806491071306171721195139235369189424076705654444590294627473968060733214226758635698369261926571507749625023240671545396269388250903358336423332507057880145208741625887942623091533438229873383791784008847923715170878793280214771680553812505193584394959839746010090543903290522259412054659343705235121117580543619364407954115778769905664806255412201508982157941525652748870571266717542319375071735095713180330939192457447161924893962406732794974520431650556503216603887617592773534053235603712769844732347394652935612047251476593073084490850782694385464425598308313632743955285105274176946895526966974857520650520482892752343709844464073894218146436771616819485948116380655212777418184775227807630024907634082167874590427547597302406274587999036685685348097488523827184326547016434784435385878344844378776408067612108453207454442827305099401015813301939963294933366869479782141228929948697907282883648362109386353228438632567725793349875407285204065430590248581409549457675959842635286847153681388072961420196171205738599472240697719609011646718844241365145251309945150836756876578757700397359436358555106542733780533045235556973646322290194076524407935433435754126647509084127178352145429404816471481123870918570092086878969774643187258291688529887565223892814333960529643426772698505512182617993925232714346111487267895120585066124463486543573959915557337049451378429005331721506893744450352401482573977283875127025616889983100086368669960346430486711696898852074088678129794247896537240367945415381491731005202938155712476547139833497176433269574857398321620607294176545230402008712615133007232621614676647356159343855471097299410229347681397031350743927582145153672066279025102087293863721404269953911793806581331815801524142162034947456013365721670098674735835489192665654410301292821092330813929224421315781675572940948874597584266923919736689714617001805284659333089600055896321934332799206796782284776749838857763256776897593306303463303698149704210519945554016336992457855179525866727878503729962882474097589832537235880754068656965597734582751589842262340994249808055688042291418950406706717286692707199968354055121736533349464200214730377249692536463441426283131218099766430474347063319963199533985288483888573242375943423841269673307085429415631905774053596792334774629141169689480462870488886381456846517299380783322241031189334715084799999612799855314330940107207178699742077927470045052128275041704643236770502278752651077665307259924732168830530463973216934234291992427459211057241411777147598679914988449645341085919027405827099223002107529635263890170434963174448396657338701234776136710800303477327209594242757298299258510607759927077419052964826196437374349165698541652367273543534321390135213961524475397465972268623890165549026434865280515725041307870687521657786887417560866408419507411532805765463027306725703223344996298647042450837909838322270563806955802517425645020581855521805171644968665604078779077926739807447253596148127424578666081828895786008665061919716441206876756580973863159663003989111637955339127731461191023861735009885186164485128814776373331422013835096132004282449029026851127137786804266273723009183264867237939274390230645749815194260653690404124274691243313816905902896397179648196632542947583324492674593266642276472159932182163286707521570579251804334112760184726319990102979069278657115889042224844615739638720854719499393722056305107498177906870016705079872711074737302667892898652511295250685638158274729063679895485607665409221392593838271604028452474385324545576169639940153965781783517081119840387086067949161111988844274079260862679512186155212696711317083884460074171340366209904086835905970774432329012215974163655914339782449436541083315640710239635007815167100702633119439710546468028978727418878894165325366728130474449715971610517124219288292329789455592973813932065721352914039067142015407097934814756729699707335048378546634358098632149178852129327350758685184194068959303043440217001434732778803725662962064855327318488267964073206517857855836296166961739232956222250554448710726939821447428115848875659609166224064791591882232340680815049936194673962577159547733924135842843066720618797416877603868994123760091029122356862045447504584420002673113667802180963473173273904675306300811523749880216407741048945641645894313218969289511340356750447445607530195085436970827729312100426665885809656555544946726148119238596299154574522391260740702327800486901926345967689920971613345432468773073573057009395068760340120255303569340914483628916314761581817246195645506145770339887747363149040526178143420200197980834996401115042376807671078333356822293055077378058324125414573350502773192422084333928867840233186855715418432207113435512235846839550666270572286594809798892825474673666122054957741729418137762914751035405221764921887200455781438157693714263237788689638072059790343018074824374575301095243558585856103415155523961152801513644385561147935725731722680937556099100708665266737828847101788055414575183896925836073782567579075965604705112830639909242566982864733611133196119964477587763902302795233783811194267982131943649378658427833030126038649124191645860956870005427857308186327393355539384408566455743503098779288044184609431574975225289967198033290466603615002316137477721573093328249671986870249134648901849692590686085607670120352521850625896372560092221080226697180039610614514279202730408331620527827843396693802998224584654312327613540673478902458825400567561060767637344647506701580734455317915962309597586718704954481960315243311677522318671340981885654659440968611203948215921414836467938540123727813478489807118950929851147215399479560538208817806368243613882024144084267721521740708439569892519497794570021707385219080965840958936889364835809579206007707661494813173021625236721502310170917750147212197802039997464905647767425976001732950060985285056532740358191209203594949600606130400011403457094821423485010565420978309304717748189375625871598736161951966582758697243516878598128298915407802274702016792700974843955297893025048765560513960938146532001692914780357376357124141376004452093861283106839105570739752070896231323607334485850896996588989936194825702113554416041251461070353705450770048031860900596300746208355722603582078896621051411309492344186216962062868937768546896124934552231382598601445492141073334969270986275135710894853743946486858823277210701231321199788457848438672641623414170493187840439878750584196297605344807524383928943258571433664610750082707442958420904031046402510937812937183144134869102396495409705221056890964395680281602584796428368123004981458159886095287226114715557910695688018880420413137134149580076238713588879471887241725274148974222308417514681292805874576786831371819527910598195454214624596796109223228008218473255896072127021648154628419524130079325249403318887466506607831322513052752499511979054175031447376126667168171270419485754089728429754160022670283356576230759848650242465610117916426042932890198838801529973251370047020834200646051385662829038978893287362047834866813272718724041687122117292940301476051159388672284357376639474490693837313552352134853798662623514504333991033122262754131009458388220640366870402470640105125849035069031413048024502060817939516680042815417509041947953571285441935846935252851254519774606559620633012839972849664934716668188756500541299951768470452323565086413030873484032537116376189799861433436369309682232781724285960573130444088624767788270256755947288086591494466623558699380714727759415119603229303654667305025183367667600659660468706931064798732559871097856283117878045976886742227483891041603382367013923218958063287521805950053855366673445418940607584447494955435720460005517758441099411951142240730892537379331163023067326846497035144983745803112815926712756424140948654797108618086556649162833857508058307464653584918010171407469103523334847925545522715214900557242042539987860887018628555336218426337481363712724372575294667188025503704406434162224462090637183466261106978676544386699325097294265152718015496063754798927480458440142592385213560049484471118422904817709281677635522946159402784419573921062724298182606608960183590857059741713142711026281377670551879146618415205910508939146750541253932674684573918335475621980191403010560094236076884545030417259586447972676652857532850540142546479388808744588507547632499372192399827761178135511226178774697130784796694264872616957640200505278810132661234746927395129190816106166006419079476613755677175742659147972595569763258080533335566559530676081020265247209804414754630739001240821081270716192417138539293678286625041510650716043190372572484418683937606741067236800982608465615628075348956762973297668326086881528840557915401016911991430190104650891973803490248283223240737438495513370698793311871730038080962121409707675084220163991680911810386100471743827731939122267492778138085090576262961511891926878517519624053336159591740887751222384116439166602653804693988255657319619403251052282738561058953420515235904067232383253491715330221360607393143686310452611700771298140452399444492952599076014770381366215621705765606029099408927132634975198417103917745252488665626139111673721948248500513170676235276818912486890223354671976724706068772088920472703877856843780542054253057487829528010788876650517249385557998864621250791605360350219852686814589435682623712068641854583448062582685666259556884605532208261439063399030090546330939351286998108267590683900796918005877270990233336010506461478817084004429339137632930219032671110376672902020506310617884087769494798495841454036135894933660426183638876694320497533194876595521681475371081433405307033041955358800138047422843988623505204362934931145176931232255547863500017664615369129437455320748760644952721656308337578809906214383974381068498010470982720436780789818144683633683550627471851469206930941168191837694058995026159337931411508410802308242217821348221273392424481878100896828953663940542049056313131953867563534032183003127399936651741867566157824421173321636972349427610268922741784897038015904554786059158839399021400905646317676358838171130983045211257685811916100919262402490611188661586210134975487195678476078826805100404570658573516386818803159634083568235809758632138190163315839687724247397908084860711207600093789695075364591583427160807250561248846086955867621367164509383718197672512334285344121031870774485127883650374072436660683549056711931101844686826093921312352420701184405034443733606621500282786849156094422557680744213682858561423542228332736022848486547965120019878011141876376827570268817564145475651207964383577780302442551907676296440962462715497210375428549854500414576015486535133772308013366092450686794935124328008257118319129722152953558647886181378552877516106438153046007228867558250473209567173787760790743669405330181124944656460343298349202064952026636652923474158187755850976333137241723179317586245432296403671916587503621365824589457670311153711939877836018783021462412484977860137385067732075452778542392436301018000342347131376684209505033757412233698644589847317857274840235648993659058520302998902023474587446666737933651929936480278317240984736256044057936676804298297315759621169528256533235468251113725703329600449266809663769295945358377059362020697120352099688244859816309986139677094354075415936695788196632466383795656138705729298675339333252460361417345657036052433475647553580590705764646396788525381973890576493017852825631369620516650087189199123953688399592564397879279935472661055329823185101812382836267417281122004368146466837277029795504887191582990825560117121906348730375916635353667981894784358407956404047077759744697531053703232262661488824602872529618855189386451984518205899091682879376368341377941141273167513942169355105692934517141850409130521802492623905423706309742321576407403747671725627692860354666134898125307341087709269764027778397042644047282079221250534671953497135294198663136352525501393382968566663612971828483546108984208767666977873314930067719537056369512690915790951056639939213941231595087335851538272851893030574096114564801087901247214062280923735594269777760819742145827688475056790750836096901023500168686318111870940155789667080949182823576471287670464259253203111797216383857426493507928535086037225599644672700976516505480878982308454672904745829677030573986312820858648597270215079571987324901940601781368260805638489872550794293270721684042204358919940321950426584343174657747367708463148234470496892583560897523136941595492212346730873533539478368364599442272739569777461322946009745649049306611644806688419654802004942922172034719394533500161394383128281638014152099354332059424993771686242648492705764370488221816979213441775055379228002599816200564782497851165575721626982692310030692900147217567167337915575558181849099244205544397519809277013681578278694684816765044041081025073060087264979050604100676473857288443750362342394120272589393857374674284707379131569399973873459761138868506713299244484813510474036439554586134713573665730458320500790371321998152191683831274430561711262465850985644631855218392734304044649820898285069425655658817100708432865137840486927515590362174371836664212512931167842171154220497920312299169016124091840233181347638866317641393655221336716648356440782342330579176557596796782358018669143299248649981224815890058175451771963310381861428326122920369660153080823757785405566957662444455934953792772711917261244024269024788946255796066616933642685154545190514216712379785430386628558673445817913352015423617551913791432233915680805525274262601079401871253541564319071239497485058870736118621927935636951202950948514660057759337474066516978181674861139843147435461237593429587041154860422923044692787109123030040741258528347694044727945348840314219836914281270929274940896311915773780067105417267656819015781939381774550615112037794030756518116548157910051247719497873298640144036184428374971562970904278964021408312096488667766026338020640264888870295928674135040386579796479940944560290669836389090184298596535934519471570541265576300164558034759123503525043488768813353665809550633324794990361482663781822241842419682200589079466079096024720289212416183557618294703287431555089737289378684633182173523839469669170992607694685042743766369858234947701785685134625282759780930112454270477273221845976652414144968040723130132357345825438062673840473018132047512594997530995757601738657451646172947603546775552903130640547045988870556859748303720731076297621718512665324242913985033895519098337074848706986945697917744076984252405561151742631857743010398246858637589991298406541882326476983749786285561707397101634112127251850273663859900943015264243513310291176865201789296189697426397263120285382612456667424813601651344861903954384848282426010493010998327420433680016746779108477255630726011535127179235701867232564192863075668228898875688870374225765101308017750101462312425801709436015192693830583028566629889382322176755778442587893254631188317911425603983257249079254060770799005035807137158003189084071385464997578334850882638418393855043300145270101219949996354534860577734773620631291340094798614224625866097133111654027094280483326460169819955618631852390112261693590002776708774469886257468356484130979956883134510505327878580818214398318402018858630644251894934982790052376441605354686179464179330685637758399566399021017416851762096895681717160898737667712616767074331820909435535615652662521683490933573962444366546059758591412378930864343471569774102260450258952346090168235635549501122344817060143150484146242347280047895710399608638126974205703476815592580509909079788825596948926419536342919274421888922506517669227170316811216614352912319441602539778865829030482198097164336431130566148531508582601071881622019206190127440808499958799688410982893560200111288345899673156135183746659772053764100483063058382566748842408577684297434388997550538246114807439224295755858084302825050100238449188759124353093410092468182645197522554155752374657724613832131130667487651396495807393861904991659684153267349145417923792581369853987344278448526525976328416017925051957471136326864563880511568974473159807403168933332867405195495819569481920711575345504214761379227153125888080353988695862811855322297779124852114433066536988925530676532379729387853292814418588077061766220493982764137016465108423916452905532106475800740323982038561996711713529426770354926991421574382176317866670923091710395073462080437249364181696790900034443496267628539028111848228973778872085367248420308945571080782043854206866809812897742107028320884102384885833484958237282389960177310298015423456454842329261680398201658123047292813595147814704267496051849550097359212078274194731224397259872985314906803594649152026744710301822894502698529892359152976083041311772724841562994663549561751855183136621978063369143463669725463299827939599548276773919396302676663842719172242749121110892922057606230333210821836103801529071387717015328674222955403118368166975958843226331118832705561402410084019420289454717574882841806370075361081221886427768113479957694616754820089395470952873377887300918942538821453719908232931390655994690376162401799256743801586262440377273759211609733722833225428909003192902127376060539833731080705980451623247659041188658628441632927721040298875977667723010454767200590298553328806483801262179987137655474032596725708716926323505814825398249756936740370601342762686266381152410284673870788854348116684669961403069562778621688719250696201478790784822090798192509041991156950221488125043220052075709485199933298833041298852969887968921260149151361525808234660574038359474621064462217423586151805792501777503368298128672380167926758661092683819043663351794940849649899510138962428411467520560772652797032111102770986814722826636713091060900761091338711350145936703681110411191189670341291112324656782902414651578987924627904154737638014961835202873229925361351168875571869950791303456050696688305604791386079728445335978438437073512415213388516885280856137127323133137181870049634429807610139810401913046457744140251770185064883119007839165153672045412158006415113249699432414651802560112113800747387262991402907694259308503652970806933564474723793076304683673114060273670300971288122447178135494046092807452521758515862769320286871028744751859575241768176159178416800512414796894849442695552540737480472104391595403199656802181493779264358845174656160795170011179852333250401235892092064681361065663014522623099910715228284169768830006863475011880633846617986705542408395589718700942718908303373621131939711439317259708523442794169380506542511676065178672361140042546663981059214920642471533267671471358272434405581148136430076194709110218064831787344023181994918140050612448346000471578231775507703314488337346819025611112484809863432038187676255140502368858714754338416483507644975761492510821830681869809475797737099476452117862248051841192272522119606528330131199414674358782062533568631155380321288314169547472244354608196499476698185610809271878704570160742169308418769624126260229665899613140259714655329756097285235494048751751666306457195125675621143719282176904478349847236397429235002564079430726238425892526725275555337563340146942143097005235920669547614277720655444419574597580883305922457842739094968721749017097130044658696733736367846989988725118315523141927714914549977189974899422759059533579205719568774193667968263178260416255520748805872660667426812433760536663375947815264318920481922962726472032195331672546787119386622369715077576064290090940030111595146240914210345516899173182203785599251241978842540999152874002841399900306437198167868270925754390940162612696518344120758161028708399959544376875244006992913392242311527556412611221598653400052320352809108762502225496411143942548998175844881417185251254387841923036408585537811761467626990764156932980547500635726697285494952434764218232560875991860564567947660497583313182828081085728816805122551410205018450632279639987719291375959539105993757436793584676927113761121199851694866825160076282116572306526175840928239888852824131560803580822677622531276592536853172903743206855991219355273667364031884055455870087503631898184285512905576417708364334754522871934439505051975505385529267178361382106938021941519872401639280600420073585489318521668490799301815836314071016459050572042368621025019735076158254863035100018771208950961248013769216907078455320683262002607586596413537674618392685825306858891299953576198960382334535916935746490745112683908156169387808770961698091890002413259911185173574863282867346458794028568396046949462778438625952251755678209448516492935292738408373329310785054620474237830565462640387543931848375319248615678910604340583104558755412513056799514987640817823074601163995413179019705983424197886890726865389862981446186132181829019878432049197225080418332485717898153295018201364346961391735346544633915407112726927430588693102446829804136980739275832921903801218458955765817766831965759727225777981179222517226083047529592877443721822677336818114996502805140310568019078982587019193130065135973959451790754929969852575643254546271360838109448035523196520606038597394924914467308562071085343105405130440781478000877693168128259824415190364365961910458812641478516483497116061375900805784588195624433847407555881673875575204279650788220338149112658816152465757213922053783795311263275054293539776771995681013447110909806698693514445292979258884161233506131926825115730728000837825277181173846791542469888033937122313251126415669898938709801579218082689927422993089217607166995595662465205928114016604266879856815379703316318103635109930478761969602429907743067517140333689764736510255554438716486940370284043533930112748225960904435578069280186764894365553069027574604903016736959995078519963636327514312148281370327214937494331068704091057087918630375664048250576335346782478371549254967471657570016564229050338640633269820035452692535094277769468227575090446767014617035329365428795146119432295052623569888105805222618685052220886954530500503342271582485095761524441260970591100208837529532080943497899517726566032927843052137332841283753408577388825576422448474810451008945502102335229373862968895638803031354282940338453208411431435804400021518115789667977628763766318300453801900535911085468186755892769684204642155323782135864548358028069636664876029595605616631715947192583793058745859578091001279522841836362750518919244252159421696309767604466037017273504886098754851744653217433105112689975165414996076345044373803543493037446676677482047879124075290778638491945129962083078122060388335234721678592109906880904278469481760247152583583756657145882576965364092299388605259069756030167318810552680134266847680846625644397309047542612053624848517801658780528020534210845977588997149301068753938429358395407828380896293742774853095319064249291994798666678261894100496380556490778137909519663006422961216182658036572726598690266555237712908802153579214502677585295949885285736009655690553552637274157282140737545852464336354619505719634446835273865529404973755851923656174341332567510162471510617569607333579826610670961362075781796244403803055324928735286496969229445216586363308766297434098184755984330736850026617837385478731870793628042122750778410188570888131356956911472038280733463253852555477445002054075158932509334312408229227937951475548445707877597164034919894402995824096157555205435666608681960239071049736822697999914013662285719781635908116677967139312226825256463078124956074103306063466177899775121125744903460640797026772387496470784870811156135126887155888671728059797870269500636993311318091800180464345575126107609085238674914027230390707692174096002836080797467963588431249202483344867619460672842733381320413412768447926733215868638994875106595300349714999613776934021511367417566336412141705050974747666159874789610651940033705570094874577711402036613436750222227476421199219671035291146900601721506711057991002256522806490676596483794802672424947498740996181923000300062997654044548725538580389787971770336263476046045192741508362235969574241105037639739354871712726834070099714449134504197113827211509236827906486757988654558189933671008408254358578672443320502889733901257519601221514031925230897117052724395854413671512447683877657378463288788978299411870232515902762545107833629828689405588336176937447369235051948694019778701223001860353674815554537509883792831106486832723988947880999951794336932484167204209820616155222894558830943519329496609056010306631319361548445003853819039388373645350330529854226061592794045293131515649125831220883557962974684262258302311726584428191237655088785403475355111583225945380080448751110186091572027338150808199785803458709618424916386970781827769834837877027161959524370378292210398900862621028165659359832589521181134137020287154189484644569202322174024593331526757240536236321915175969363074140450429252731434698317812890832332874303726178069040599887228880091898469750226564245305027673396187122898745488308023830540771812951609478270261115477339774630135183291565163608824634471798309703961201130370845306586703571758110436042595474963466543450012974025381452545766946795561596448295104147369701838177537092489670907202359471831963343294498744425679394271555875906417317045877535731294662974364647982819669966806437033410575763510550442120310070097503140650458668283395815908599277725753426706628401318180244133380869420755010696526706793158002692706546452922075724352953063794990833378763021482154905549083584063963596382730231094429825398595095531613727138870321594155913180614487404258392316269776844994109673204210483304400542497216092897851113192025154347227991986302999714988954157613016206693086744849468662557629051685314673340948227515098046740077788977438513805453124631968014709244952352539065327319480640962147996527665152460108131748439786094399028335669152988952178346116487792332267657833212960868630453290761687154878023049373735731364482357770350909368877700637769590386963092738300848730521090622363603904933046338202079228849697778077925750153900903840587197561648978007301146670632552566487575213740378116485903661861442225064186860358396627716635606751800516267871089506390342185035229702844091865460342090847720630884399082516525601287657952789593386776364934604692884582800832712904136430796664866448474764706709933076424297429642629687833778420186775539971387119822365952382749917436732905961118600686767007243684358729615509373488500471281675606473903237500828716314261133135224707237065644226341611935867435201975100284298211488583340385849853215099782801209299952574665027268911065494080121559600169532505022009525509208497545126993411360855830810912378157507754008657579946273945586180577474363662031524625082898942323358157800155608996946250886843573111534616776610651029215332845183159382955981662064149123229621601350919421777454270828127920988856524664029724939042648141157169026499835503843701399308997038969902806563713494826097957710873293588628588225032427027515287004529599654371428514155527955808366317702712749840663702640484484450646968090074163949853948940701921977611235886176579091402360777901640985590648577321502640224143925620940572449611152437212865482847441520555552281060626146843115262796478202569601821044986207808321371356600300221412745324095063072766393496132929170259525603876133582168151279243246758206237263419781465122035060506309539560791409441775397593593023338225359028640591644227340936968648272152164596297719714840100990844861605366802450017176490143183004355493589224184291606304390795909883446147439484172810011704955406515580927037873602126004724978048657473232738225211474787280753376595947994631426217308610425053490441389929134168504616960413245710471355557402137596839494289477607474750254908396092315127931787406149770752947273282409692705773289164818544103524015556540162633494529638626499772884905114593837877324784803529988951546602755811855019578146046918837950914830607646480914135448882927355933668575517765556979025863856528772339506613861641725859252147340269007418765961289822129808482195744339692136301832774854452600258086542789556898552666195459777552021403751755537808692676118236050611341884994816197055506617813964936611386380014533893822064592110958535804475692196666284246918941746233774903053380949679483952048144152292996483456809496502596190484928210124131373255936528654397317951461203509486390332206391302867310292872349479562421956518895406409362037503652156660097733040414556324719247786268520561416861714574832271913183604947398671433939954755092305377277179361763678393621086802147240558720756800851665288107387248847689639529748669496703339536646632893678013631126823675488858822856094497607773439201819697746299204759992347146771464316123723085561668814375285651866683278905539558157058452621025358638418409696412146990990807123804191813388110033118633080492225166071291288575214715371927515208323161361679519546025609842186946805285194768572817393693923688116524497006617311343488076324781800471266035802931622653707313719838809215519610379773967369608551742704483049996633999588405141759064770182857259027723515628733329750042818776355597320924563826066074376725559320267570988358743942364224878473561843424112856229377105070348871435484618436776281888534187754392070517417188265414693657660556704519474036734869073713545335955513077767153362982746042425703962224876352370714124977278964038501091340895152382818268962834903749786648506709465586511348523281311811195255526606020395562711478004214306307701316333893808543731774267228962466219940800840247716932573729998862078437635711585218345666490426245063415576999711883205206992105409559661500964533245504328549096455583121228115065589057112446080063059314629229116577102551549619289084476483755788019815663992114482327737807951212016423013188683848304580584515546550753912289362669316351226720052977265396793866166173051568741944792750397815755221470488598463225609187941453235362258817053740093252805421075061965379260306942004844253955312015902833017692097838373107427173362514756726518180496858520569202532661277995943207477888466656917318726887122452466233550804536745467812024793209251457760944993759247928314256173862534135848002613837659184685478124320309227973639141442803470038024458550565504696195210832209741942070485932430754572623829747616817588761996925395213349927521371415341160121985259465573018788378110107064653482815345845135215682843604200464545417116959652991403707795895500734026876359314469822248287191220473490280609623014255426347071185560094252171534935336983360693993222410600414832326414318270108365137814794926893558672074411140903063733399996232825915536218344867536963216934973381025999814343351005268191650334333969072470061884534286834422986719073861622333729712556825328952173597345439684240372452143295651210041849482958660749007781707900668776733323054540319060835817639176144855429752892409788255467699167938974196659179800683009059000977846955203948115303401881737409379853236388062225080172144765982900600535953403769874290566060116381637936733056513384315992507071143969983457720660148641713394171700324767077996215538567252355530019712430175086094617128036880246628246307320119698419601049286059914079467719562044833951687787389893947843855115657651168796379598832443238473307557711145332224121196173806946613018967624242577386824093011168529876971893603426804652049597602615312015707952801512553418285782382316410466850080318993951013230831496443158621041437417913618568645477422884033854621462332935954063179494953696411016374118016898723632585625575010108572239486038977677801937646305660396991639406818875108169744588344584523752809547019461430654100512914539616084299062698762310615830911250245153965421377025404767933450057416384667017066378519153405004236146806253537874986447347432456212045690827352713701456161340244047591380025749224812822191354762946925760541555071038863028699156840891794624648525903682465801641996625273453638354111109816245573733959160622967617536618824554383720186279358988214144498310842681132697570822693437658888796723277257823703616990911032152426856308203250670459067546044563991960080625941647332613872307450769105623997336051800023726701248058957707029127083561699039855853492150515171078158198552497647555545988852559928421551832953738613312392433974463056258018857387845048443821346586167260533880756912213882889155451535237626548118895570365934283532958797267393469488809212884237937976530749771262955715161797369255346641581831346772522492228829427568745380094704670294435612181770629609178648285589584067581276232662744824675916570074736252528871885356172515222042558950113831915891038304982500540790531908263655146086644211144581583299393804779868523136897216177959531755349848964735607911859869719404856082281166134081372102683256359965227194478496752172810162101116427343845559159837706873173465116836191838179754222883024450030747196372386550129709388721162112848140841408973956516859294025013628913482606902248128675646873991342951999235507525618893553256327401229640969238131672636257680729822853111690611677471018329928391052751251077934643218648854931132782089619988624428966540069074651909173143457806012285362412716813689041379136644732776529886251135909031313975761836419169825436442298897577211602430437507517391099195699033013599484470371125209357897141883560700526378343611448098988034866470558558696403483013587579311706971264258090578850850482460004703343700423592751815220866997466409961080323991939484276431303130745335804977151792201186212190557614230429609535675866794561992892622898710604867372607268395893583847354541411054154832682707225469341599898549772785426657391710313509427077562007987964496206666832481211101947394393435908010959512355505278150035378377475461054418981234515558906304714403479377030161743988863080482846405869301311367367987525742997181962685441487163470032223748261074464320707308938508693096354028047208319060643659468374175457145610898511539964923599796724380718085676282316410828746865308981240447246329171147600197739708151199042642430461769421636912610060500428505294009781261827197216592489246061186526082978870713706657537984339996188056844488525354329990214747975209229877498124281864881165965103907572337055289235197743090626773275492986365854648486575646388893158337630718544369841387488009259184700769864573500150027380416352422244116484721688158773523323312301544496040818593565183526841243778091492550421992867832390595525336552957390947334872738514856070107804418269340545242660669616452523389453803761650314089406346738399212938727044561041287207533502071468337784617483226710277888053099257483296183008846935713997747515333137452338781743236793700646081998999155099428931524411965636703614681800748857020305510062281416779104544570916683300376845502372488526450329797842947673924561880171268838692881431378329887723838706828920448485417699450939826798850802905242741966329130785374451297622615131825856680304437135806173509487898680707397368885357455302131391511925166308784352597567621154617308539511778482697317378206789689351544516627406101109862586283066541149040637386190017264163071710032283630542446311477016964850349792350537641623985512406883454572410448308533092909945328804467346461316108958862675954874827026179904430389194919219487659404919697316742677396429690634351117563398362618960840075111064933464602333830057499774689693543519328608309041193778975885022495038554511829397531402897653183042717255593887144046571608465388598854273438130748574185761908499959617249502726008505171675706963794538936741614542605881265520987823561470277001845168098231777320376376343962574336550889774119655835357246742430731803232336659203773122017094278831982160468708014755785308513135188868627277630765470317270089737350094639910723139295115953265708358138829418052493911606460109205287475613443961374181501399863894297137751174269843444535073709667979878192089383220238085266170300172459715083100204437527620030204425680706711977076842362612692502220586258482696106960206167836726956450049007391450261530930198938627657900950856988878742397884943533992202268163755955089704142133354047725538465490562032935988902207804641117485636765362544416662414014269458834453977423149244433054582087565853350110100173998358994846134779823059269256267397994147238714489831795281353672909544154913674624095864546903612792525706210319305142462244998800890504700544522285604384720902377834271354454574225933570650985704885534657886995975898111683389878844183040394263137543285465880527365107387089414788614259786689220481031793658746809385497627716716351091688410415342155002624545067994459995273197502443369312953244549469095520513249462072870178562508478493657677352412167445170128120999715503342896059228254760452134944859546026744872969545540415830803517227253455354642714977569715370956833913592302665505164226094060618253332807444415485507313294567765009848558215788275066872550625778452900719632487168687446639696618072194356640414002531197397981825057462905617649726609202717349686537856805722419432432938227343882811148962191100322005518966701126949690295809022022097609187769423305661605200487567293629515944277223507984853828565455341844304956198386678911719511550680937174722443787360878492445218355041979458214445016534206221722214182687171883394759857733041058372417726503727523471804438015372437717484232248313558657677293305009940636424355318648101998318346079805125738343033394535253902944722725886474760143867114625718457079779216771170318623155306810385648678143677101081717709792839843525878320967769877774579664141918946827199438272396976837383741237122224297335377812059487036604588212818327759151799526519419153795060839693640806454638930279540920425480589995653723470847661931782967048848813198685344550914014659682709598930830358481946403221382318826614090594941139929897795795870169293620245634890150870458751055664190146917368841685749709904608129381295679360968686674926930049846646598157527717045494986796905271173147956176960253143445308782663040055387388196295831509570195131969473395873762513209443103578394360975202479686924036219708962986494164875400356784629657736381063375574479196169112861239310689936170287544227071848789335070174267227580353572913823404817909743081511938347131085363498933515917926170624211485526584608086049919632614884097186485110542796752024467636837639896398812819697369129223935691721626666816517585183538140358430578473598694681746918224634233452451870345961245806974371129033626064195037531105042403326095374793593833093083074919439737936966766702160465097672986670556570015303970228437374707466016020979913551062704865008906736496475799237013426649279770829618488007678594023734906097527142816772722452329474573934058505134232447394684387473421077449934761658369052198143771009764778932283122486059164696398505684795763289212189007908004126509017489882116199228553124143547386052112857043501015332345183986486177357561377659521300521151794086469906693902554565389063444574070380365485889275708672637163189178855837853106961492840321215722597232998793725105982086316185109198722801648065381946921252955450146450581350447856245425249975747292094619058781090621609866454783479651342687981999575620429164852833815608985015053646259089109009014682214870864029361301135780539423814363613587408927887180880102408937709135582594129182166871815495693043865101426629596076924227042752578900020279649645431493873131547180855312603999680672536399741781236379251554639360664145115463992921949787424689557113371413167900478745045273070362187232748598218557564079388323598707280704615349606153932897416215373465994158894289628754085558778471839740938222586137798501705713078337801569201534511013566682073233196098161385675784809756048388246329591155381469992785728294057313381530545839450750637844532381895632021063643807174459231091985210820381388967492109896133790746942034775246019129545828139700827308386754677286230476522824228510174542050672068603872516486652064686011326224213294001198076646198812673486907271105208502700647914285626472945173265870195583350985830892852947827251489710930745485939382120768353500220826234188964206187903854952737671606465827120469236132463916933658620047837933249494754687057682513775237936275544809478041515621353158752754249768005637558551399940926841072848080312805334448446152202237437558285561937411565717366327119129332816624706944511452054730768825176052650894173352086859494077127741601290644062486595976089338689669377420231914151769834388749971336570262806089407482112659055680860457336977251658985357922241647604019034650196951177635936493982705603184999608329996118658676784458989744739038988094164159275340108701264237581192381901580579636433713732025211493733832073736596817124492889617015312817286333380737660282987606005492020656489307645646651819706269515891423825192540701436988235520383912387909360469614473343892833078063324384448329229194046413694649232074914395700006951247932036803143273393342742004397173288979668124814403218466576546172297624077843217704021967651428047288974807862552560422755494819159895093591103671510268526024181059753004910322203124188201251889684996157706022954997495164939553729015186015677222568366169195509435178494779927466817178896920306847064015170442437703798154457129777204922769782578811468156271314175831522752181815277658277640626321782023530651852216649873089083790954382349418018022251639281569275451303274897271386333407840218588104438211612235918448797671210083516817373554342522831195309930760202059428666796687702567619329049931081716912461505381635883849136115549725919748088982155194828527978264366148003722714681189581351272726378619362764004481597989930989168319347799470626922083773703055707197895567092130245556310357834911208782789655355427373120096484648956098420148616364583616687530018147186445785033988708655275004615674580688239744921652871297240076464258087285648290743410956636855990957589100661497331247197120437006854113334963445225022920963405620641186052709391107338897052083581315661445953113078778531680906009060169930176084333482486014920010780959135517610095240716235591981146768477865012635344613565672563938619673917779957985185230131620087072286993203035829649022680570558522184521705470132833867851124515663329550676582265203484270270889967445831158374620296356330849907541079965161569236062350140164458697050321933395465178434746509358600036243540435322640025544891746352624293288587378202677375256587015988881474444257944857047109094601170808036146747432925943504677384797169403789065687619923707392183294212621687022889691126332352780392385306234598252915586401649130467202469927371156353152736221640338034020699086469805181288183348730251750775647768618516398907048053962742684222177726557856033503733426121562025224957936726886890578559987937288658021689682302639631428220105368412404455703483277554531328752512902182838177431642342123393888506623135611547276137604044429655584139133037355100737365354827625082683975354463746015520911390351064051409562731361046403846112880516756436627280500014557897398517759010096710499626190126452054297898683065305287702333698017591707141860364566616116477027606501029578518620505870394426709109459874872445405782177346908144261267583648040981825284641799069804080900137674456481573400916631056730105391426920457833995795683472886652876380502509569695950691793285164474688074845904168066339516985599799547308637515433448904634764515755571198831023489456426827622542321277520700319374332937814868732366552944552002424702186110059320604264217336418277512768464038980682657290775827457643008668174763053544357853985574253206178814980198716950857046622836373808800646898295579419855927584786850516610132534332249158553603684944982282416022244045072593686999019654824146260252808174364449768472849471264547361761676371875534133508395851364798278063215682899172398925290130829948178364122897637273037129695934362478700706852970119627545686916412177305939786194983255975791833063878694811736742611396613130062189813879948079776733270577522658372882481429162475445079595943180228210515333763704512474159196196714316829285268844710442262644944437973185501060495539981379903097337927109019715682023441410905501397360170315809617384658215452837510412843440012371996572910960884604259245100785861003514285234611635324148982094859902587474715093360261042978119802306038271894987820317420083816732390695364896033531132032837480477322712383772901881299842783209841949361705188200947656857696473996151144201283370045226591558086216125635653587620649219302564596505101049975101113693411958768843674067789464566274985709487441334119413289143622652928919741533996128462338896409519710542832526603939331835720504538830297942284844885645798731791641895591353310145459845171480868688733315267883995531824088308881846662576789695766198617888072380278408643082647035190003752054733120836363801156651425557473381477971175893156175434481504040737789030358002273275122015419636218817950441842362114235797992652775911674829619935621394245082623723287503322846752280568965137828012580305288796174802309650430573382756904401394282572493007915514059606017534881074474975706710790614847465517384249186041844370307774277280288610786197280930359881021076342414411234538679258794832809461251596236126486476106894525966178784177136688159813928729509463669261468269735321995439684269674287295314638624565182478130791605759066816737394672214593142106586121178012705959686379348449602001874920918119804781262700030421990636426301738617837112764301641024016635292918133548281041309868290673775528214795021908385303923248448976037881443557994528944931851202353975288148774977894600533296410558130294848674837086707970646359614973849237658400792929461619199999182727329029340254316641794984449862343067736416758589696827578184048062899963949756214597054975321063779419274023211691893388805164277147567927876099403285267251026489757899905844867968183332344522424778227758993726665151709386574174273995138327548871541832664583515338773023209125943273888939209722564482237683010738859946944295983819104184142166072905927846052802355670993933137891719587885647690978959713056543864374318611428075511508321701779267177117715372950538777323458560450027693250916401290180888400518049492571073354387137263552349008585862048596401983606047915637736607932253485052694105183312742329118361271746290511080967409634131698331805070900144377355651215359636197760774460738129975368317247332657007123939191254255213594533805787894545979070579267585829705983358188397829108538150922137457969634899232014478806612313594159176232815924615819952778353847671532368021061535476453054284961130818903807172127457912961909039110148584087840649976131823295110436138561310144511876691916875836252938594212967619107213058331172398138963705357007497012402095235071957605982824851297475736369473278850111194914227483848568256525095785534881075556301744706980944074930057542812358317496856539689746957279189982577181661857203865425221599132280019752568736431665853021759411682984780754398542415273485485765389829263980217906174556033227107894246848670951687559788510046082995742533533045725188841036844586275149077628703200805160370349528581409782391824906618132951899761951127795172029864613818252090965331164635696774709219891546705349989211242587643086695264872802794021910841880324751595011312833284240604202038735208261992836577475021048984407345025889380204834990087780747451204171713009195976162938678933170226349258538429038786055062094595819037317050586790074612121936550084298503983065515186409072595334584765615839682167820400840691031713602342183663493323174322737330879359782420695108175660151988059722719872055259060831378670543731225840907287421990984370249484190916035594160111606085550254619673007197550636468743519366185116994334651212052901829553246502388466320971212002450451764644796028749543275251747370640904310014961176811564832412858418863857566654185327210058677209830929114200426900006965169190003321254605280086918547002126390568378810387267388656568428077391388629085103753010771587373548909471233514671590149493356619603731342689858298133476508959892908125417400351165136646960955822567902219108728458023011287711151557555812631667896266804090590635563560945256578861143167075431935334379658573342753718137794703321470051482764422296919354765612100171528646984339849071146742658470935500229123081092458135376653305632839481830818533576868157414974552955499069475666822670554316255718791820576081343873338911312566071016384467768518781399302026237150499470262770130698260252099048333157379630163546975773318203672538070918838874388421568773440938968398812399836427433846935500824845910388660273727567729603269294322652227067808297938281008722246375812585664787152049262298463239754325673428596651389296782172611767264241847522839907187017883247417741210465428476574496718826381845445095621391897930584414877576527362604312285859836744547329131784487468947786204775487506032746125471315977081918312240908502847115761528323322348484316358700070108280401919332836368711074367275198485733340648345614708422482930923666284016155772384151575774225113004833639152002561453959664690135943737826312655910310098196962757664812614256574977583443723235424684124660324630372053263767981290437416617592185939330972936011620808932715887877132402080114489517700355617798767599805038656226075032500937330249109547861690210764420308870874116059780793526766224335866469467654511112103331844515761721025833713350212369611614787140084968981992763964743409110930620383808917709667215469168862044670231644427905047222412615906177611353009106135892829277490292646825185251112598778270151147009280058616268560527420817892006700386684151947394214760933725373362048397259252115712603803776722283926746946636544265065501456242259639606563170878416573297595436912367464542281118353281906490081625652345844857957933219856410029616880204865382507668335768410576999318534335287661113177364809264970349128223237331584299304719699032893611996620547313703290357314368201175401887467997703649639152533923524194192833537566469249917506935910147819678911936705698881850274811037574990693007938385409218061366162242345850573160867985986359379859249658172706586169967632373611081558009273668156752532233220316677132234182401552054472949110069646001354564351614910498066870190858054167153825263414907117754407472899525926213136677769122268255781200830014493944276420958586223842980619066786456572349129487834501189337741056200050939113882087249725819950592611093975702020102958554768013247596113108576993509296855252124765399331942935502365705464820625944026514017882231685841719764963490067349700758740326225526364143802401592132764406059897098356694604814739447922802187733755188906296348637787823753771873422010919442114497766404364971129240235731931150059997715010062415988029143297531657521621620937847885706668886896054988475667662453459757243883275164127394621142000237085177813873510858741324808283493992529273896170178952431773097759327359717915866255316132993845950953531888642522529071141253801492934016594409343979864836100809202623931677400681301208931212592041258809773477158585668538621845145036980892370798233591968784113826354846112166983166728357487038956399225449701721177288367138910498142435009500527081649553557515842938186365963127302542998390095328600212093143093160105693067681429465919098088909263387315885279223649584525006819718841288491516551687545263871196701760958698581479803378171231893961504664138778500110688099686583675448679859848168622235132385025495857757293074683596899242486244295946177996324551758268178063906091392696165276413248252044120115168465004704537336831306639587848349995630579717598476044591801922359662876644543864044874018914012131535411636810912728985383056454294710300793069579995324707805203795414882947508431208887168639976636274570369853107466850974626981199621837082667578104748230331719042203639331920059188254819011074714479163598815825918239967008277152800211472928002910578445702388971714884704765509909897275472066549851969757583316316894908419479047170537272366809663932419097547984767113808912103403071658475219813078298320240854139992769222564540859250349239962921397490098033500734149183304073641750317925029800523065248628340078107744932654165000879482962686645386457056147126503981674714782580881238035640247434190272431532834951776774491204096206532747521958942545531616503215647581832810953310466996606687750053218222008123967712709069783409769136407084464646755172181745567392243780105016766873585304701621391245447724968845997028866701237130768295008036061733582346571813374882322853272604847613286955310843971444399017656943883987707096984750910424496685235379787314612964378794876091714593394264730879852533194699330881222784594432717224826585788830753732688385085915485968498398639942182585961554935396554221518100375662940254075842802797947850160248427167764151148661363043276627176434851958064525036691234015664712225233598488393222052190684582991056767082365475760451362465429074254556865909992448116225602502310253144184871034387293099465647961285489141599445584637175033338986821891309965563085249797525005109381884869294357021476617971419276322906133190044375109090792771262838031308471196042864670156644022176653578049556522304639340765828529189752293159146875817954228484863373367061478389227957231888962611660468943284350182081126173109036796910767256908173886296813198501249442502160192278732450722664416269635392393501126613383177568383589565876752932499721059834243409594460413737568562312199678445946305286178161569309499794323244154129113908556719888594686454399750763165324016041579223139405209541218407625165130480369546918662814358717030946526958324630014187171174849992220596568808302380568001252692736951575111582449134277083774685351830360170685348914717843387393652442445691864930229182411406749352038728036199592146007153881464402409875318117950458274982607128798150486775283790347157701573362150319999763758220442417493702900441406112395777068204959526908882150652999432585205679487764730037280374377967338435497171354972268183776077604891248240873203544625565106008566178446623271960133954429787243050716039511891945021886395995312672594257346610909344858310624392134313988680732075705996186851222208661927825652588054425977467052209699243217660562286829798122786768665769764265209462894943320725808337706293283645702804674851164942226998344661436165114938452965959557940847210653988983027641794514690492825998098156724492273088046653402418295134194146847751401233284307152116352710921781295110901825303351427178981472143455476410757840083241684897732163672876393291927641772861852543651368464145545838050485203312544025628093609439929544848500165465995273949307844608098752951618100577721343888826775892027934576397388988405857258783938848136213018435517881762456684790700904203322394025330129016346871777962574000741858432467841397136650673130503563670005682318432677851900244404823821231014809229661722136705088947941266811663337718541161664426136696470039334417265564347301029273956775897358432502065411967387249499872775619185435558282122737260172684203813434447781592440558634662471425232379661390184610197853120946979526398195742252699949189004150242119581347651541798987087086235162496058675734580523202792435693353876320319112812883981598693949420413520954485423524192379082426175954135287220645383451528912069919633318952365905134547275534868817128475367309179124140850799858583206670632900958545243430174607690452871459271034989934320408967721548605089207954400167370399962793165335938749556173214896351988395246053162166370320681953682214861865704783121226665220617731316579277218468532128970863528192576548415594577361407453345965486693267382783119434613566542780320256247596778577302631415519688586470203459216884867720526895340578418945448118687695694095789811026520036676639986832824114623144678602665355766899386662590653153401836453522355738137200657490093915509005270906981282199141323312164471706451086939243556189525096349362475439228393909537065408986261845328531135093608113092159828709025745414799438090731698470699117153421354885159479418848698369959159156463554184736217245704960600782616179049908854523788154872586252473207581470844237705400461823090797804636298558532160760039758282376835159119558665818222810628383784227761916292221123912036132967400138110463466437194093633616320147513230064606411558064012270932325338703671865919373331321186660580239241382918590711252682961530260675740505048057153400244950074139767764631078355506773384616422009800960254672600043954070255571959060984269800542026932296033585266438636803962896841572550882748916484770853293358746090055718820408485999336108142686324366881895386073526598934648508068839838496528347009178556568156858772417406592402187466288509569074845194567458917176646098525633387026574776143405929272906225074858216976222797392705380538687154089153043519662661513013241371623471187719897811909249037877514884996752472203573757472895393398063266848973261485632059409478810415652876151148263754517044682417908598261465838173666833324387345147888554208497301877506776810469105966175792346017285147654946143839121470280347317556469267564596938685751751786924389935320261970108375586104139615168123990726093848182998184957805680288555074884295941357226434136982268313121926488571986390351110287121675189512307303708954175130407092668408479826637337177493722171957899325134732677133866762874920860105907355841006691763999456585168847983315941040978735890240376212005810328580166345224948299574746600736313470681104701071366831125314547737857993623441692425453819364142411635372616047834060633579380714662369498678025299311857098371856357962573156224477147400747914968658287683126126231026829365397755110549316220127491895794710260059032467963009754495679454908902062991761267141996078645193005847066454040835728227040116971777064726690689216912082184747229314447402998761478004327630131153212350827053506627732028953148214010868173437863954699473078716599052093030038050186057997814668602452587212818926469862520200502450753692402070205287443694323493024032328341775495470407575427182605306561058409473385538873586917962796670896232158722457894481944949525729903430210044777864190825700030429958525072197879478004881933351510636611211967020763556952951699646459279720492489593744094092108626247262290593171589476004407989547343692927168554294060341700752175404827441343270002801255593171219656705974098799120314283961333586543511077441489067167672779683858726491533222101829048870339198781342675550863893230024884449056577065248620226309014345757824574743641795662906564468114843945149204788894014095856337396005666952919040847972154075751722687725672462672580550810248276543700606633380954465212274945913569341593095191584863946570689726916392046111011918030004897224424457534922919593971005841542121388834247803570917815169353249028092312598032303255079748600040153344292834797340394321651488390063204420835903229150133232364659634691904162498128798215409534010233295659585494069442090985444201475727717267213707273155629096586360844980938767260756289350879456799474916473215120650758427057996670938816239519739190031442148065766272924961440566040642657639376457804280514695982820958069536608227034175067973153712639652525219908474460579973941962453666646869582031690688419856812834287992021908234150938831248349015080202854128571258666261301461818390823681384953318914303813032114678506670213159653206714828670311298380534598928413805457049348613826956464640666415704362084546107372093194324187093885852353805927207508793422382163912671692139938172248864708218084506819140266985868676070362920612629335295603461893888824077276155997466004019011802187998102808514762309481742562402188990825892200962210500757346346301032500018726227302221349821605332287662415486763791671477112372366080291608177843763470783631653822256726535746818192630919143353422279118398383119999754553551932260949611201137396234163053840512484224096169105417505510202100639472800699082077381601395745478356668477157508060446071124805800469129289780735708555339506220423659643096297831991197288168240766317265523390728399089456993874337366216275924567019912733693168104529408518939376476549317031088721486499288853179979101763969015680511805170318715679473362898216529495633903845776155022762373757155471017561056657001957259847510550187927942682737166805018406959032740788637904378244323233051502085323272987869841014051834597987178440330660589305963812675778713890775126287912994951775988735693744299459236083213698421312836662401524574222449588606061399683689095908618364398731526191095979863484820077496986217524495053987500086031039621723815211077672203766229663401152016055259456456380058728311855473726776129404582881194607889806951494340323126810756852400286161530223576941620244898861952668134338555757994622407219451552516071962723428192400586446195305604176418104886921293462742203272807847825535666718803508183996840306383798486792183310866545544461054305334259192800894976199545176877574525322644191862302714987585931011925675446787774063400355207044445913343217829000388056539503111949613174080092922689307619850606005290042805927358582912215939709546628383048327402402610128033970792796519070563928135288177370331917106086744329852893068345712683589618794741263510609694043416619419276201239356167750993856270463697310834089153651383542445957362535778192698827850203437049369684633255574604209008719535827381555751592538100192971115404877985748438444412965839919805259198970297292329082832383687974443637065886938443834441623438159554733652995460985763214284564928235100803516308351180213762273688808090624434080517478951531228295223795922193634316507622645391556930449712528563954712092846871948006810915263084014559727322363581354015363311907008436078755320488130843722856875637356581974908074094674651662005354938261485074083626559766662517265523472916265586839170578335716261702717756631657713421161441393636580463874645457903989240402364270921675016008798519781230873957802875707253490821565444404793348978346851823339951244339788359169660665650634377711718912808853222068110300071166325153921678798478400363594364970799440857293337966195029029032710496245692182486583758800603317564052372519105947720668434717790829695677259473322568151599851647381144679531759615851404948090135584100270042700013353548717348313051798535895273180118254448722419688872111309071886331564384110110161861820531683538090365799280166291383195963081846424533831628937926485836184921491427634868689477389973956400142218669251696348935140857765287383597339230295437139892108991939897050299362514246092023540518301043389744228692732790353717238915342919072815583514980027172169260057731409625712060363333392349541013024773325598099005216433443665336715900171092860462915951997610317158660616878431434422381164506292211819045423780566868980601338344909225586797259658718433903163086697703484832059787993290792301173414568507397837642147242538722163293365816415424655104165927627587661133235472096701910351040540428029956541733961714278907802938994613177136570635724147129183301895875055594490324053581586802734464363981490047102633515194009568535167198796769758425493744868352056905388925230589765040660940758037070231142029518602014018743022428409833352141158056166659132311160981299281126198258447754049672998336413023741171228743069848117961300439031530313462937219543214812508901482153064600364971097585133539112672573779989108859510804342652978043399507454608609936770962033466127607305839066968083438644289403744166795583636448054538774873919986462222401118810310010326700263447232760131519097082184686538195778869046042628366292090524653287444549985757435276462635440880743126765540236307200694947742085203885048719119241166896852425090237547734024716395752513889261972264079188393698529124829000339399927682992650009998929834300315195394448359835668809666175343920735323242112579154958953063939042715244243697662389355408909310541765045973647332253007999597899292668731908288629015532517687159437232335664172602253741001582302525931865259685332368187752329495071318101469154342738980479317907618689697544083692675929458199088216529575527033414960809539474275681403265049743686046280967755339903054154381936877106020687846984880746756497504920107194443144539438287348495275039239526245957444952697500057558253018315188163918506170007791712600236993787310919851102609651694876915291555276005080524223074826585829710350218600988849963905214839692875351271404953387185624966764794724780794144780545523359597389463343601502283919877503346135421551629955768389672638213260721698424292209115240065948970847041570101098921910914721400636853212461992992859604294438095557807675290672849633624394200549286943782216961207600156842116954824255485653186961810411121500053595588647576883823296138961101332970137410191524572734788006093375877880709550133699317397199259844721658674968392102861476029906160430301237107386400464814187334436875999526906831848096707080629565696036025863668943275809477726770836420209570351596291006821757011833739214669420302264868693936098922056550331527027916561004876117182431606161487841724122918369177616511684328418449514464367663140951453762259515857252498373762115814716905292873445783988003318111231240219031246006300693161806297385522930713679930186954435025554423526476429558057094720983473333573188090884924838544384437094995328118619526891668996188880418004006650158716358165825280918791863556586329626936786183283913576454018444043935249784723970529489238513620067398203935657144148401055530497714269285831286573272252809344327144122775380465856019173910889293506815772104324241531617061929837823265732703150039518343008088409991443356832913448892461686895830863378608365055616477578627599462352762674205698025425140842560873461272798378491119021074912460197830475632775115344357600344401573744788892813120152547147498808173388826998040704713836606651748669718201079780746905951624346414478801572762603361856322806818190790042301030635987468422881699801783114215044958997823158923755628557024114174548809919712299278621231912705172579119884184124229613961639561845220130058660049272321867690390494593530499602060171906986579671239573993598145989925214103346124118861101638862174784878105379013582591414418981742461809804252484932074252231247073711147993214349182540549819730072573786118104971405220238898380219263125368336763460647251676681086150434943827642683713294852230415551060042161301957272653092941867512559952589088460811085870867127094119497089517533730942033541640163679156596749871295338728040280751202883513206027763268984345979990143662929364282502126346611692659972078299173588415314103571362233521159367301727300887197601057319920301545430424241730472718295649023798673151939195829134487697382071304561105609251507580325571905029089344718563694619134945673755915154502395847534186699238495469503834409709225541670462463677484549035061761559086564435893933838896517527236100783093816041810906337478278515888680104338411691597536459641914925698977080820373596248655452680253200345269985623556207938706564638740550172341124959681907719849953602709255244148637972489375832351822695418506979364226017765228065239494774444914928573702618061131057733018486089678447598050585304450816310494837766371565647725265393426567801986185441356083483146608571446381798212596345014825150201966346434101337586978371163332847195887390284409594385635865009368294663912069634147967659919715131759601281324677824077403377745111886030840708999614584154226780943674049311445454820577873461458514742194731720722761574000340080437707779542153068298027963071801450777140074191841869019329059421417619536436206301798917314021187485211435649761587162283158558365288854555591829164155012926003137391108112263058743446255383819912118917055586128951945154709388204539056478859514026007556710830962109716662676807080265332845710387615393511866851149470223763702363353979629030961808759828284566090687308528591290775690258821301166232629748429655362127113719362267344454384288646887643821829798832790779095258447656379014336371234131643036078813936697952812304707263747697861956505386243599102552563251908639455400796827826553319396958314894685239775410296350000432950064432067472175556829177157050271739581054832051936284713755517289651482571075042010251463898082649789580157524447498464070345292890617924031370958734202236737108177925487050389418712493226252541335501101551377334898529503765565554505027996508744071809513814403009895909430501606538621887314023033960338554937955689419449413259043766917405759588463933201548226482802479728265303127510735387256101508886954373897073669023346897515205087351178830924247609892774472549930483919392780720865422039283088935019594852009900715035123562048567433183560342443748003991103176177438286767890298467063032512219411106085910328206819978152147689712120137522386122458581241725180809585935432235767702820379300333355128928167047511558515613246807305236443056067938543931652156109026743764781149199969048841165610363640259898100687576375670247507512877017739357824910486062956239809475091730354892662664101866087313241247294193042944969888178194713395556537779936010417708254208491532947301563947234673533614300260840427062972112415189393261346356303933603114808684971039709197832370768583817166682046423072895571666435638556674687584651201313758115606072742362218038541253356665592054967217311365960258369887761235203217316710968334096166845637796643281199773873024548422404394496682850220389158462576597305063721376079708453627086399969711575356160544971773258816862279278750654075611808049630945767395158166303152965859990695955728363721855960960665040329410276251288610421724934472302523330588514562360859689476689994013504326040264540863709511245768784686198792167060066364424325094782381124206060710063131878998837300222044353621509021212904449714150434808719865964500781088471602473700322692640268898133246323864674317193186685680097544157554092047054144271745260698722110678849017517932882991509607033805640263838686049616201273730937871108602134035347405281233965683439915527190948188245424706236656777737786701838717617570801226145162414620032299340382171379260478944849786663920580574500448979967838657976923405075393758656607239312691564047220629958365193770753484690152476623570359677030066595326668612634009217688194128995067319479329176615811047297847397839483458012138143823633290262262078194380708724093544368877206800742199938058345594644941305373746356138998403102462677852569285135559625541474947505558132034109624373957486950808955968385945186495283770814758465524580493254052236127430340608803639278839856900694715646213951370610572641475279956557312791878838248820520746171234661577875894713399057553618252593859745105477670974336899447454914430328534429772959284232436820194243892990491120885336048921226582548197985104527588489607661217106522002220592417596797387644203699833378337630217581094599440831748723763628740188099408352382682737652817693831524495984261439891490315056695613199498452693421525103782022359814599821542610003472117334255618405769498252660736906294116652194704843133921096570278129760190895251856562181648419979844806802681638368108540968117051037293686511692041034274901547617823863283723731387308655181525830449198500226380796359524435067998579828386775723262635238310905561673760641121459736724745572469735813715533829074379973726089236801931831833392509560725581741343100088243294196655277582466532869801412876176537514139569427592437268198618828742726247809194097054652303612996039332270414945199424369152850197628204996374619911543418548964434035588705611382319745946995833110132071337840300874736082673325305992062251426099081632683598118993907363845411543273111956736515712070347097346008850821259286771144302158495961173612182821509599815762998780745890801129551012485858141364071513629941397978986213275049980586438744590645913908113024373744543786728838732230503075701784467606926003559668264938095916485791064342074342469025329499379975931613020657831373052214115118044107493974318599433192265143480892271825716436065834064155053744214262908436527015350370502187452703445261299693286141650522821323772608978526064229558829501938372584520349214749237082209412380918523056437078699837941841731820527437055889080445992089999694713230466341894892791421987357002896233491624557776826617850814331569665813143744121684386506495166062054289347483121286697204621105313905067891500942782784595472428409423844521053748603248988648598060170051746976545525638701076935331215691029652154196375413277859972709740017226851766401127675091701967482311215501854032050170591109831096324352251321269904801270968927428163053013965980764411734849542299042758061115904670564214565275577497048031874173758023631060246114162231265825060933328002104118264218514327398093187484433785140928323786147536590662533004395440952941592334947078078060214760376299855568284624234122622059056096375291848814664348536067780087455062614436735794760143623114258120199780293510394146301844842800424461074244341104901829093199804139453570258946377709660015746504217417715489711240910499250715508519770672493578581537499430840788796888208583273874411942347360600149827853043222693724528145995515406160906014408253667578766789970292812599454301750842319670262534487543777498825266276183869020948152837945532247514843945955446821439835298777270010191518856946708379647848985025168327591851208850219470779049934923251464022373747846274526982977773960992060610774825282543186296104643616894501695730680267513923826667264576731407991427097277034258816880159233934173178402121138707224770814513255076879300320369648895395855994536542720926072437593186834600469646386035428005460142214928031989446211564487413267525010500761038662717274063982522650091859691296904569143651212169311451221162608657009154923723344408940738553492963451047841379983524611237842136342123067930406992058269838233160585638511647977502123802472676916169364075225438243264064157911006204110843524673120146409170002531005436261651029013211370938203313655697821615899023056953936546714444636032280793619757156667496344945941308945136240149185813515306518931943563514478212337993956843927700552499216406057108403509517647128863999122073376099422382695284686319290415824735977037167808878232803071458806816217456131057887620835528587356912651688706026729772769646952884879840094038059217718028123988381791584803480887703858211116854777477114246755512049617006522899255122133340306595632737495745571526816756770777270657929986081598092118068943779304478953132826598036049666533778956160636002624790724338357437781229868198398400792765316437260406816285145650277790703538415482140250681845011151610003788401532793241370876027758739219504238262645938325776299033356697359421722340787887850742628480766396848122845082086114859165933215269712436129286097792730582868675351932673746742393277737104533540032945407088722504134158065941653817798668312151107487325419629742803267808279616839578859489571424444250345570664017619117390184150094498135640043572651305198861541869542014488725905881576121456990192439573312139293271446413153667407188303733265381634647080246752762564974172602900718902970211582939607118472488925028100348016606670829960460377339320246592412116222509669930831728678547446427607632024751262862525263828240955231576981349519846810617300305359486588234790115442842297234040791187642572679241096560934130361945236005105591589152756180540114623785706163469850113601798568359858852562213400040449798569166915855973225423108000376387796490378784555225178856264833230836943216416773828947235605202573810385349538859119934323075556301454827197586472603037983338511642967066441194652790015225076089070943688794975951181474435459341014384472550964078770959253786765404916167282002703377787421272034380888356573229220473759463559207147872679360750456006525687593410253671175624258848728849693846241644227407866799411325160206866733321558135273724473932954727357178230043822565427216469877022238773271735661574096636572666454977399306252302902783013186937976220629751856721593772851334829385446921910095699707878772371541912771174693238120208331626022726635775817965157599754152167360520441102998772587076212044731468807593290643985942652340164296880634331373085288625908325321110363465889964491055665048653194339931851896797802337689595474460755162196195396225783279492479756213536206369068187241870905932461577399124223100761156449751787095306628767327237744419170197348160938834445227842279297486135027996315638744704313788786871130779438215429937284542186836606111554026412990042614991291787559707234568857832405971477236354751539732319525019953473963143798076115524132254869208950202188152764773533444057777781709060365255731125990105237062536708349699105380226793434183038480884933532723660239560590596686042864989504355020275422676843389475470564943102997070022457199077374888005792412416563525410722841568486330836278044725043019612942656156957194257347486049266513666091281731395481260935280546803447545900844055353791984196806960189089620973030093523838718184316371023018887878911046221692562844017967261115081280984831484193071174782616818661488618770910335964777111363072761560658648404355766970846490382097279265972132796838877195964388872422705932221441650020521401485700365482371083631455830775193414695940357066474702457970833324671125319815210748463612374052660063277662075195463234927795545506896350710780599262306839015143938119759013053897590746183870828888083291294894411844725472652413766273651757468971848581395154610777811644068268017160177925409108251861282143849245959810307797963386765946319895595928667546907761223556803390174898869206691651104623264527792810952161679077140878069401067329418314826195603273999431385371407042696715501182468321792354806766355861226920132857896319112604941442092589598668838437525715725221242548862412626788017829372311840568409119123120993894117602747864338120912476612471687444870331273508891648461542613706430899742938931160286695488989295655311752028716060367009485844771699098420603465655205214505342148856150539690373337228976723799876360222011715051843654081452077839958550740163548779730286687352538543606860654648618817599604731073041617815565264972820419822966761315026406161839787490722609044794512485292179430872439747220997876676352075577441535108712725902739375737256728533505356487224648522380478879438510144030252276924393557838253013619168350492921650841967208938313052831752888317760091773810579437880756637148947819609899407121376672626335545296978789372918111701871541914048400866322422324074154456865051786781705589572484929057175735058632388922514997757062700114240039096780788587337770898969518288216185447638151625840887821543567391022236768234533205885582530036031152360444641692986995288923347993276246283517395804040439689012865810647691930290461596839030644239890708056483504555344361598087944837654958972697902735784680918522541729021815365078400928045132207044357329694379758301738472355627641310662739095277002272380618525787125260352437543175423008737313228825830852077031567565834766962014643063020898533226693167950431384897831969136940114860121436474082830800840852953577359628087648811542480716378332440825068479602945457317708098723640242628736734198015055315313508287177811304200564632297476142994773573863795422471591427299555081620321385716693538643260378817977000371328008473707411595285621162298387240708895754397349755015630441665307273168595588420919094139715329852638485318910623522298750549965353266836604986147360397493863332461935133173510279713721734127040251221158909625423235602866233111361127666306340717000485241048740553804854390345398432506794074105627407774573710851322027117614724802549321855976221337294618217536744563064009095709217074295684684351510096223983029814087758472559549992904961057751796599952049426736374645104370528601626799801501257788262427533954428732329564503395485645808166944320048428680946342206861983612510660930132271819471696872915989079720919914549662790460110421989069574793307934661911655557323190768122081903358187812830816942135625613169945599048617302348429212427532783879153297684449605630622115522802273502337226357438873109676703975455187090275427053117510627374891650370703709642815001566920872592596089356389444862304665862827977849133066524227202887874815469867477291107247478835038156930496223268568831813416297301083923447561970953733635778127449724462067622130037596316590802321752868826339265105223266110580055372558573055563666670531726680349677779051180093108599866791317416865317262643672622862248202783920180997937905119660570885561083468644993119583826468421747942079333534823493275922375124932809703440086589482108831504502265243522107001759177339269635550114233882173804198079492589070741775615124572577766335641800168352595190649777659549634488419635476787915384388616489837137487136645508731939994640974207528240583609185920939230749524066684982998013833550731894718330802073934954985925152342279301151174378504388852018270863934644500978269090802850568495185080824933609437802386079660340515972835361329109652839280973541553237999144464272871912615492858375629504623352856167062692642593822919807658886366618339957887376652918696350622784127166499233944479197914099425798533982252830585637318214605069695530026208355520069287030005029994674560468376418169230328305339877438579155029615358340358481075725849257655811686376783122526458656441690910018645713495032148986179115288789328632335800900753306699085903169981681822597558505956264822137327337034365358273392539894111581782187473719191861206689723465877059473314710985150472998914429834798111570245969298666461452602040478909407630414432073815032344521708320478936374245299675217368670643147038221490441332454971765083606576653256213007043055696965943474241607097869394005074029154796739892977281509262444858086700260175122807020618245345053921813805266960022293952105718241380809524496072706575437101078250865236026753622175530813744972388825758916856948898854587794848585751606352057858681057069637526191022071237697046088351878858221231103645120085495930872710766368060382486848347654663660440916193430759513009590903646329315494755291037269271598330632530729582827159392548763620888602926380125342086743878741261857176949252123228618643475049438991609850802011499603863350684945914882578372041093771671417504047884541944184033952560559834818433400820239281304039418309767418218534916258238470784152765232806094383728651281732115749613172398424230405412504823664707252276787322079491911779075789015783186782017514616019603187680846283703798874172989423601818960282544798046682745789601775801173191703411642051289382143338374354015733782365005113943292649530807608351704999743602122448822122934436838637926865675788722742217868848108340927063974904325974263415601277849328752545452152875563136859488533970560447266409013427677890589907957237403869075661182711356770363301291918660108530697053482964554764280664791145584991713265068832280732503832628226764587608722165340689381391680013985416448761648579612469957922121308136282315333977993257275385311130603328909939151913652012112535546369739085480200677945561758912565321458478835937313327912091012573790437405285919455239695213547468188675804728975638745271715961925641356954279773709095686941305457153651565158051167147488760633608239901799205580463407033550180979043548530707790210000201071270017791527117078487225746036802245792502292146354650480766055785764870581816105066437751423340310001189390407631645716380021623809858535296949002614425016302593639336241821494706725559199490312669803113996445946477570489389721377576961461522748336779009715644684888115527707088774694369578236944414794076993646128269265480577782420254476133019891774278163778567727822442571659758495994151120345607764492734796473777441887975356187013992792404395034504425863627794842913068973925510470910358405258535822610774964778706942115687605776796569845216874651772038938959935938165605225978257118707902793239449181318013567282889878889671608804102145756826507098168143020269253231533522930822903275510849890190223955832240649409448369960485246125670221387724250991164487302556232655753738271607292142199282019427333339741240581294415796696515094905168772828189784925145436922163909257649003773848479946695186079341473022675284130060303704164132765672739813009732826963559235761472926372827951379464262977960911906337346645592546855317288318403503194296114602767566196032701896690253481590030580820753995175651315504175183258619660367740576966546420269016573553960774891173985678961690341312130577437281100046417814660724398911118806126000473427093496875857302645766118615078975669936957475724155796233553198134680685677443096383472144987622953845959979984186836976422198897451329293618329736412669103032501230331052228767927969712073824645679729068695632013511422298423306154235493349137618563983291497544075179186480435003359114837581112983043180620921600616308611365948403843607893485090592440765139982436645740248795115460069173062298063745805270555166630227293866376017177348752498808824970608317794312483600655901160778075136446110843213037029985738855745177309219017535442345318047139264857768159887040393374585837522146130246383663232521129800482039767877646826784602383823948061529718449803163955255842310283522997115965829425706966295018356232123753722363344389542987401067305901112965553397650783254001125342811539133499749784606714112577297347543968488126328981674885420005060561914518760458731766640812377360409277606022178395275155088983658107808557429353016478460632570911500855884878693147320014564295350318751786027208509474841613623362411701126905148256797308923216021888830089109874316156111617770947545724549871407440426838072191793743502127791825507648859874313622009934336184237668868158162245449371208872435330122203245447739983864925012775039047465576019935422215755099552544370881255140169587532048734335512370230122394139171480224895224851213675264784968613282562227246801106568322290895709544687714240850933404281917606073369513067301596591991622979768408119522898356923898562654602372792158325094365540717761840741609820001534864809064850836345235326693780375259050740984514989426581415359544124534165109065602295994562750320429076042417999396694337336429780086226004269798866600706416407306559408739744874144871024662434236540325939807021139273191592694692143454373983168553617211238371648257862859327911194330809324974111096555512595144052825255263232759329200860763291369646230866978328098662681967240968691683436071147986662312988747634954006958585297611653724832885606049479573066659530227199289915675878694104459153097310997218003653591808311755358991586800280254770109805121476676186673352238554635577697482232575644046110374037114094639741951344444987113507641108381007897805247387116982267816823523475705490704751029049790702865252271449035283656635434309828185021101980956862307809305413157901759659784830611192849039259752884721037422499297536489835160002197856477056719795708998427060611013445290288657906292702283699901973592127872074382099626611057101752610481781660175735861640781523176306208312312137547744665524060541566560989372026229904538280569548439040359899671718301488425216593024014419073135013033144786986851452466305965635003148639254384828025971625284554478700989652222156323275636711898996655398714850089329505845240500067274918771289574502199660227174253634654631599447376570026338018700122424660773119938289115414245570678441618891295893783685400201754459207658217897477486219244654884587174482908994906756207675402770964352996102587472178579781721904237825217531863584250969557346721958825341083653021685837054383500048407244238016102228882495902228525856751049083296933950768400353246658594472672383071508630700852846586505119547289051752025312787397009804211122796628040930592928414997739360067602046544488583141490298886248096099622392416613503521397540044072617121623322311958584464248147584078202626707968324687957625838314148780724532163253448172306002404268348140357873768420795031490596170873540618644051071211840880552384620681480717704583176383514550843163639114972927729050349247286795384155078729702404867422320379956090126501515739322743550975406643950037302159419282665751659086921553881062869421776699939703564164573310485454804972729692550866111187507197899799306428356482912284562268187687644007760972886297868777495862596350392904254559217486128522602624490112999970679858636018716551132451141649429237114596758764793748427767949458811144119528602225848703646054220926197119466804564168393754802885721078394649433285675250279753624518366557175560431420105800707248558322740961591568954857949399006309528932932415217831079681512558656700626979328829533336757105793093826374906071331102934157552842319814006354299411376940317369965407079578938030202081712035480753237980661503780807881512898657213078588414260612560791830127255156004706498145050423760244004647247217616293379784437963055528946756964372569141171631493053015264709809741485929986301717277063808745164678684109170382685975924316548177668653916665910592514239442782669593157815555096285152746128503134258559394646746886630756584790793919764889208382114375040495560570136532298500386025657612531429827984368573965211110622375793414725480516099467361289683811356673423564071645559988489982250723741280481561174535984028556742975758409065643142022010986380069293386878107165604537664022665538350504091425076226381518091889007126470827207757554480544244718060197567317405653134457618803736407809451681454398046183245575554802537598623725490672333816992647899320540776676919369666359902432280597756288688151867241344141421215871667948508830577856777908091637565272853979813921355760621666002187290283980286070859831057001578075329276803740382154437817398561794490312230184669682889978903791551135390909482549008495195700052633120007342846906435712550019184231254286949111519911244721379549491969606118578452862618307587142349892608507364472232031644586526835819870230133957491809420956539943731911767265334253318770590536964133036250495835757789555500137414793651972901320885568317703139295669043224282373585903646943957547762809544384204257853778311969148290900981475908729327564185195748302215605226754750832499855955856853474196426488633196263856280241435647429657173874838672116635666901492929199547586037667337566313399477970048501631609401523099919672944304945542721178293803953468842260167887948834308127368263373385475050803722711640789621845134559525967895174600608808808464150601070211466028297759066947611891587481893815063916556359093938932066741115854484202852894985006605246055442642029619891055638562937154655879299213214243747510884888863930574334317238520374581779643178066545229143282380951085066657077389859244907479386868690822567875746841219144788716766037848696566372710845867897389631897192106754636815229851869511574412448542562432277041022825881202106076484839217998767609805012482191013734711728592107263752705428183716257066690758698913204956660186642750694123749767779258828196299385918456098875453790840014582857816237084455247744781521925734273462185372651595488404699137554107809099776971026387484539078946676432917775141184746115171391135762784461829282332335473653072041049291220684398443210838681432406539647867297218641963574633639933774588069727204556953486389952010338647182604833395915453802750875325021191917380602264590578145484927374276331107461071315168778970198256259720799235136712482976930313109986811744334220006342733578363473779062838619225985484474637594041197551508966205573481322182043227428368341098272593746159008298908902299028490267413170396226507236451417961507334860459344323584072023983225824408964226599173821256612567183785184113850759993342978377316800786324358643979830718853499020421522856094787686216424169973754818778476087227386406380761744723268765061626032320524708484621069798166992218697958222440118873293716213303261389663215438891692303764771125066477870057706959034477839793356096030054655851673297928218455309430973223444485553529665269928603138759595555720888752848920662007947256406839866597302277573926110696789431923344965296573970213374517046352147451248518660275212269609766370039289275489993136088493705798664577703489591607356058552912282948853394731628972512477801144107345714071492357854409955844936012990192292589997434636503849337691276002977824144788971628129682295611273443698406443154625543296349762703513174580692317103248487082479263064113808845403991322906925893097734398657002315501613659074803689246108075206234531481043494089628475237281675369136614022644280587926069212192723049378677071979934147290267838776992360858780058998994754882397414770340791323832066336761671581652137368615699232361443272444645939915479759040097225819884706144544902620980607198389108344458322661428928904630836720879580978048183350517181772627944585051579671625357842250707970688483032788380525121882308092769493467868915258398525895788992760524415349616860604807999253629879679741841432218107817807349710819400953864463620272194674262257562599091889972163219259696549030689266566666392977803847435397699695038327791212228930982695628240489000102301444500529735825790941996271047228780380669690535876766278559604275970044750309571674194805102094055513456670740411490655628532981130337833198236074426631150764196799627095780265335665701455659124421272142644167257161459911829120694828633751716427231861718294107024415955049382116860207351048404869097173148712756201858771961077290059036877619264704947148195833753686022102997315182471918872940656063190885935278457917674209091830356788804494416908331793735555864042293795443047301558043839148115632101600375305863618638749653949820799175848825981382981551481840800852299393462198276291080489741411383964025382806203170403687178350579158431525973647630093929676322376419639932729196044226361743335102655031648063788419839499948365820054991055970243379888859843269242294849213755938212625882452560146892313132327216235572824438560630323736760228452167858999916569500720574980269094335510718091513417051195940425156569526284999133513379680669076022725376802108572901240640844929146515331892478800290042770849712019568485309397742657461259626430517987596413409850521712755752148572506338644441302654966798955411771609813923147835063680300185338864257699329905564427793644936996129763302262659167008613601138856009668318658504885046867454152646266228390231283839171603157401208246576671481160026070751232461129859667471654708773640630251637053953456073514403421365167900970431829253835679482478309769769101356015848085099654241485141551728568125081517188043264976117263417166193537257415196393542665860691232554220106802358067574277123795663573438681184049933156858603239116020092171405734034268055594553414639132196990124065375216166394005016485512748829085245759546212516695104969237344398582288366433846156760437440184760102870181262485776744228181132442586763462415347829371127079235900704349775330572750607411420893953512506087691229566937267106191966142124374089213052688752736398963608722052952736263441956883613747625138009961518196821024582420668524381270474109038845975998485663821312824948608076054526330416373968287970969135745577388777901419909102009418677294936198912509287719926092097248974034902184307529050641643018193199684460251277181380595348687330135914133178333958704279271299470923255529882267186772287802965171185249938590950453423310980365475034009271724719200011321263222070172400561718033513727192867071838509837207776876740238021160456759141244079820509367305740131723761050872175740113037800728991357906383929613667893182884297894739435321769034108718511507988985905813704428262418673569421611250223710375678679555297630881015966783004424917827652699658632186270414877785024697262913418275685974179462890702308336741891129249227315002850448205146021390834910008063744812395647076538138458152156722084389301570245839583464274054756848818759574909893279601697828959670323235785336744990208677903962586085128743499462533814621799936169042352008883813659420826728161355413805968883622287306143239856935290220012657400638396998435629161952398453836912425376963053604907726541818620361117286177363110342402934501973858103502691588065262781155513420144169034635884378005597118215825619358247784985812264295780020161181888223473238073878869675382436118454542599677486879431938785016799043044276734178652481566644856099611300353693154699669503685344539546033280146040461413771096716510618662129492128720491129424667824625564027276989692666660166021135010524662897851667868284511562322790386440260738930768874911476769407970107942195680453954634881351547148420633778052974286979458359149653254330671665205502906190360640268360994897704322996446152312274100059273373010343450296416358921334465613115909576858524659384713839565995662575436816927991315940076769964364068487575661134930365912667373393936391247096315314887836254548332057465515940779297033658641432804692843323305481884327306545878176052976259231659246409542087953672301524534706181231746949480065193825448417102165318665565260233749468724866635863360330485173184129965060957052515672633208287239662222531401350443184024102584035924460843946488671219922181541516815916223922181201440037485871534998884425755858769213357076215120200952368615430432252918118739803504924185954462388394012680488250566318264917735497466949699002508204434540718127123271837898425282706159969785172773411678604602537819518024758476103876061069176533583927235769286264193282567345430195292639763796166098706419641892943566812708691860452532179777308481927988174000174462335962291528407487335530483611466120806513675344946372702320085622598793614680999194223328359464869966185376653829671096331500081203339206097211926543638359019331486806766386748358727928681616398577605878855907819200431495990494701202979703825425538285442094987396326365973233242356897853063404721337774032533154713327972245544615784718497512349494149660214945286822951155886887505685808224824858716873099885768403126190578296271110276171358280214753883334150549259058185826410457027721489474846962792092658446464035805031433843936079788493832777941580016785330573720364524050998033102348173965998328784618763718346336606800364891458214890745949370686737917431074577705626794046191236537631341310201080791721913354878356726783427767701732336778905807825491813621200186076267417473876644418292230565672362970341927160489562324511742483096311338082213945605838424779481350760283524805818327447124641678269352813914201576973544655679294211017727008657355198245175075425634734974807710435023168120013245904515486109044675982920695063180940885571277314791029597413829572033885663113683359245869744227886955153403035058854529075354201042689104229855218355154633099555569460130233565501467840289964906429459955609554549956620674770401710217943604581200940307021462688896270960679136822619413370262997173390392832819720989807121170478681742484302593765910831670533688825848421228224397598346509912936603059222758576544505571712481983553227083578886136285476686894227032939766688962746777585938521420778609567871085283136831112534776980628016831698471302658258003961683005350855069717655927085848942775021963300384375908224227292778832789952065910342505388105480445637330324433099856384248907091974191639920287442938400633012831885691387541025735737616827094480427637947295952246011169019619018790282659491405394493086020742341063655567309057200515126658151404153175473421055372928466786365590320154476353049229161743398052305576846718269579026158993645236969672363926180099877256765964633909334717178956406743741895732014642685056245385746926643387988675992240009021750739408406501561732423343424158519843543562237246574654363253797804168362182322109350770092244058534316733341004594101726046302685268072115751345553893302515492369473173984593330087225522593248954134557582970270363091654912044392784548673586273939334201974780860424731592769454050257339469215004528414953027494237030769822562914973612922828491926491948854109575920083373522674850128596935219462601710443993118003779555863523898528167905327799203673511450904608535784542048028337784016000452235648557385508455022361273632905417635428593506167060220179682425861711847273564207015835022975162385048457200695132830663564277543263555876662361355231512960864956671529294705878211781693496205367520097988762649922483615775999878582647736453837507529753858863214402924050357348297472181384332897443798736089958619150983100941524820594354927343488561023221430005721601225385451387238903143868242869616761618134424500512948634490384529106298229601442691141507965351640682926485650003671593127458961708896652582252543983774141149721116341505448775827019377163113534459345872472326034055255528939081206681224978353987797972475498488884646369482073571507611947719686050710914488318983755415534612581238777865647310703994092453893552252648941442880650300037931947183435109436598553754768056449297011618595057248489308386212648421361567778359484610191677446608587874818234917215025722151916959306682058073091988976436807499975900692483119956526016653079456895759535799724769228124332275613423697660765635984002172181402580979641163170472048414902150692954221467862591043245713000536918480539692981269276159905736928728832501311542071049782282311813944021002305276207483559640705313468415794030548509491641069906013120179503215745404526318096411572776841515086058532994801097390154416515667958385105261770615085820040079562304170972385069628402686904297483283097519551006105829385149444982859918993222583926890651365439603498001677601834505358535927044580458851004584086460012281501426588984531398899513749097629376168169747451538500465001828233614401476040884779085832742402333246973052793620564018667421421724288233807292851331202883394443699894569408772025555343487144108728870606552297974125091480322856673259484012895118540617124792143143089461708120896931865568460820620379817835713540051127124760508173855883761748787766887542984706785760285075252738562919972685159008325958281562206834384975177051076539656126207243076458583428271458497913952875382959329011578538357888573312288980958362387954709374379603713620468653556671549802689565101290900850785393702318326984173901305798151839038799540031160970701076958703634187787625415770875801788582419271509539892865568165793070292149746981266754954461203669201760923315280182175104661415983315973208072342006736755044957985743450247059456850341288210372259525515699630145664378356201139701296210120293877408593307982726080666700078764133611304232090829142536961832935521839118586487055077786541787914476672157503130017438450665722794155718819893688569991998378230461214178008463852701372279637283890928965891212370517483130733317433021126711396127598900063099185009835713526354742125966970184809658082836263553430920486104005735630746531002941460772607602380783633288319905801226939986502129416926671335569673822277742733145117446068872485591400270318377635610559390238953931842080881644532430564845270736228781645313065957881912995761612214372977947106586941810407594982781300631564377630162506668343912843035645339659160166436812119787023859658948945564540986937487286272049527330069008877182828319342009650024983025797523051822212393646076391910232739994759661112763954388291830287455511145718051854088818704266998432547821503844124704113119134803727414582548333079817848826665697677414124068551966669754939260943631435248768525152963842032471211121878474175876736403038082870242355868753569277753882026350842715668373456963250114116143320343882231035606142920030650008396209661417088521128976086655802298295926145725884226278410222726505565955630986276216543086251069907461670164410524789778684884699058781491543988769116113860856575080296609154489983579226060094347281284943610393286565203533721886428043858519189277732450497119565467574915967939392675960416865434560162210251524991804704879648429798953218442860509728055210029636394222599626822819904490818800785306341837843601365724597898726259561543307645023778711887459146168042156242923613128357886973318332845140449769704646634717172859467539572952034588842816790190459945017385808820674107013859577113819511020035005326750529656107489860419498626743608991583272191049145258667651906064864789981392661148944863014985871068110261638965820433397164140586699265827052783585343304835346658182362236111123507822713667193245577745741330283630418206404302799766971239718927294131774230240427768165708073819141311894027202667932278981952301575870448264465237371768147391392023828477019863841604654264302636851265097891556041518143724440955246878183185693306473592785648996646979092931751333128253089763899302184858648282967908032928245999573120685817387938630640966554309271054306823123973960392112371578420838545988921970213432273522328950075290249557977232145870450964094710215101177155386389183599709514511861984305588874219179688341491659220355644051350345929736672805462854828988764406882493823332969035831946883597021514679110880826577324849044109927404759548918763532956838075880552506916984227285892554562141690556289991995116106866940445553717197343087271215310710064612838991818622297390254900260886724276515652742359494967395282053483198952002749138835182844199300272365017705862164354665290481080130795691308292425890076195637707334600390320336266847012187592246799153496436828414204086545378065507195725797608513322752301151235909313037051703111209954551313000301534669241057668528301139231060159495568924241202585528154725514165321247827532279566298784877176943556899284202263204710263411473466971100698440926592674942025530648431820539033291547626891483552053484977578459314381072369716208830557405879447135511678495967408629268615252594629666433414973329802959169780185119979003049184145593367268516784543723795316767617559025155491615837771237220047574139772770817602660630748852173322800652120428026537063453405405221783755878095623112505446575447720530550837373120791338749904962443718875216863339784550300977690715564952625874315188867708441491405798267717731718306777937776123412144273248675241935658445419358616358250089961336777550338308374566005796089814978505007689807589783126016310653632101462714801417257560688001426363994338651780868783995755296384147376191699264113317731058550554498629697226824551705785429748587999312382063356794079910500804036474417523805706387811551695626762349000765139258819026850824793374321719442025834719372867744060669368661457740092429952469762330613142453028256723117200202390128619015708327953129208219142197717759857920433163980802766786906190855009925673368188118631365898315634539217707632400928769993809432114919966214710642084017712407726145562372527811223505665480511439430326674530734369148671232964745196197651625025512525137076607609113247547969364702380994408987253291085432329338833448610606445103771346439433859121365922770847083734553679760596002675778905813840012932332143776521122244778434712329696005849305364031952891910998207969002589457115014551072821089249750149914173693994922009775915727378430072857945678083270662520871151308715283132349883979990547570925640885976014603216772785677031546268656879339489856758239400884344775076645116193454492163203315105584792585125608568328634690213500007364631579332693492506118577737779659606448922924324291493416542684430235669603867865182615169472795576473635380602669391952367975517726895127306739748643959717550076112849805731096574139849104912264650030311217092809487537221097685172166543312596659797140899274718087711912732196859528091878919223258833472127145851330484759259606950585255483917742368043478328875730222107811066110330826424280688776450172376910230728336928580031282453821058889846222292796204605291662694628765829186913950371162181446519045801084686002694266502786325524649397115372371823301351245315086417624869962012402519445192095115698442207214064034244301749176058715027587000324297000174431508687903963299866546485158806548592692315616270038654474601772724951017625881501692791872272587888516059490434885433327493616910953478937392248618451771228699693365018344672915390327622312106257851988372744897563589412012273728635006217605380967905904290648303992840462173588160824227872848038952863915276850457565025926969557787438032953634269983710008033398247421199004279156032094415733450166190583350313370551025760743359134739086418402571197425051414756958564406807900376327508821087283607283830845275193379230449046977210060015066945489052328439108477694269584010603499808777278131474003534027137074634882925257482816465103682324188404499473211801193921705265000814793027322906199923599411260526169630271202836954197054911464249400739477136645651872445009700864261585934009458072453390329469240223514495017554645670909253485199808293718885521253275958305150013822490013958995560311831725849720914305250090436984929648703744208759854942622340434896750069729861894719474088166194314681892555723426550349013095608345595253897354133872097072120231702568826965669543676056220835542993087790635627882484642702392062704398210417606139369618023838564966768834769381069879654749699808423437384668066134193515748972922527622448457305223306700060269343097241941051631524352253975731929392448456479084031768106873820210208771859718737289616402875931323394429146549583714366262443319244126265263348442393920842089658393829038902104186459154561914233515311428825233211412487765046298464472472527517285219391259140904110113259111180330720778941666359969571385852613937833490212125991589591762514782991227499506754618498873674139800576558303287857058089229958833499733715433297334976847331106088624934556269325447659901123077193130918788190414813857880003909067935225436080760993425290327826545600633382077606401783541666944183913182008589356125560715436192914195822854963578433700730477107157394982352139642970534251644980998441475311351620286557018006396367323062758678344586438858601593861384529562684686517727150515980786317278586276621227360207320872297748673179538050325691375558574088965132808129362442447473753006683061624448635877923287558462807225436032707388274821424901804508482510168933737832479237805414605703851451336535881327570014403088864145348247743781137334114722323525530928497227341853281742220254442239289092167361785162066582948397240040472492166185168903812170191943405166418779110237696994427338448991968904261659554376458526957026447782581014865099134309736347972836989599130986533529267194777014417826035260832099963501372315914394747748917764839296920620671850429504824301663904720197058996672553941549624202343338332129699575042959668289208189968516577199406643591976601133218877648115330404242265763183642499128826063846234758267841314150327978769432210525124233989702043736336022168176821498066230680368978280594886508786423122371952425894880319178326157843898522114668757367364707380921966360801316629290014162003547388148112169679071125622715474210092591683493377676243851075787140255486089751617102397818708347801079662715530259723697377761582883818314593973261331093247999716663510191637455490468831868534806506198001345121285070346878197022633538818592237596902741110244452759410774224908821357089432941732117037268838543657748949718448003147588015034280366470520462019720867863905024976841039284869520589539866922376258518314524883102297082949463720383734870345652310268092614775924667337653295349531852902712662898632810724514061835340072237165959492436346264063242781487050908082570328417664338195646945625314956315142121929161015063658565839232713673328927544143823920374844272443827848208950424685919768270174133121081944034561751240171720286530894026974416600771899465987444398536858620038963146768368659673214002222430854958133700230824388539071314865056880862177618069272605243444405447788327984745600887649691958148911248621018462124904738287380612746862668543128774817178612799061552892147378600077291466073489581779954669061089815929707138223035615472156804712241874605860563240315319935726787529324965508612352217938391177006517541835250366108860461556644071951587283953689591095989623121001424763297298683340340180071194546992598841829150914293596081793340518293082213724375400716172871252787990173039323827932197781481041362426064490970310110660032803272798430823670479003985535851376735207555635337682706870810879417518219337371337781043601017295569735834610371793495877548392038503475103268821672228760794297846889763231622589425057027306118773047426439190739337077297166258056623180310081193988338977611597172086450018135145332182934719236399027472112787278848942428243668695516084546120758150143262631927936113869292802415926780477929420522179045521008199465251807911599667496409119886682494958656344774361784526381138123956409541868991993031808198035328143700238469393470462579345232564062842638340428402218101739784592840910281196456722724689143232080630548198350894077124756781730480325795184396945507943583127157479408002018332299367656915502436193878515515215867291097208384389083757600538269079810882780356440457258500592230024032107035907524477007397040906179349942453744691418418164381245968746987298285626003969367052781633365060588922600080830731992349500137423338253020201404620259486526864008834236886463589765525722477055389729366984745335875981648637052412099062661825144945023246429289312600920747037807769168379180116721274230926900428000083799205383843739641834192854312951561447573237659870220881692226101321866144449311378521561499985148840339766696187837584824196203537109580150223374599058348112271094679117488608940975547022573713240369682296203617291631861759884788423849412521541197376507545032753386528626599873389750034657130427665864007036447697017756940304434671093529343150206053015727321466484507574350641631398021176097407039550712853528214752123959744026755262794652742923292189198277091207671785782596257894848627458542827818068991643879664119694307953899354364840199310525117948130710716405281802678466962333056448828553421834005592579423425718770254570928538422998193502615578045169850479597052329929847877334829314643123897161740776004382777111276428166983046231979897055888052405632629198643381670946952960954133340521759389448191004386066214883489633006131419778189847636662605323313136747917805518340574671671751276657341734094413902521525484882833822638210359724024929960452539458020881902512967338801512370809461054386363377526149643086630189547562147754461205979501239681257769347974587167812767847984858170499947239961953379704742300189440139090629514618061857747416310281597762920270402551559059460177912365326045730168399290608577906477464051182196349259691923002199863245414887607717474682605243551034309697465336615805997574380431323564051389025186371107307400052550081474328411137411669750099242742190737090391943203033920583998301979402498338170219199951298399353577772237616811861588447334284080547084891839579964119882481790736049796105411590291765241989972685890218817636299742339454448438050994055633923336624496740450767505545812670594092818950521258672684779772803152218644990890774303073778641212994343066770301018652265580174491159449760963702886577672240013663078205696804323758732678431311591995951039424381214198613590915378263184848349323797342255859221263470306493853102644052365360386673370644944995472678019043205112935527657618452616999872799682569219588529596450459684344186362255799274756399304417369694234154757872940668428165812931625164042708394807895574641092735404633912671228595674904952937172207841592657369146332238035315983233526369835122960422545910456613428069854266309975215544329501086313018628816498145690517807728196224289208208337173147556356992194980873476247922584207732475971441326780230795610623317921485152697760036954868914191821394842283711634824625357232868471102802382299356684593815196513523606561314847832976174058725219497692086976251094619747696189143042321822819114440882966575219053056434783346738932662647938372681411884975396089982655926370828374345334801986089534241451535044220607113102284532116989838642570054521685256011456489167960043399440332021510117282386016754731195248279204487814489994586051486466710845259652170775723314245962846936061372021658802833648193507469244164136083942732752949742479863747307238296731306992048267720795019595187045542843226715354955734073055051883777223569634805640971484939752676161382764497299904631780794362677911524749737511050701050572321028248792717515793973473022143346062238567034202128005575676067495191519687376478173753195836497247239731912087821176713134318648218754389493310029281014201248173287572234602385291426569353381405572830159713977718149734878566874304225465336790881856705887699176686021776582187626932510934707402324135821295241230518847636012318899749032141055836447977621922764204805240004103688844938919668961797373122392388976565109345416094983240534150767426274572529130275499442557634890957335684118246772923987611571079611875800260249981664275812724102144939942857977454127327091937045640657836879781314353072201438537394152775043053181322229870385851563019552426298103504422890468822902191487808164857588252762483497939876819752553326576895153362490038637286788543806826687058730453608032888487531872168417821307367535777729937086132141858917812473988871930870367820677594430435322432358791620982964325370332861801946463854509803015269306481487919055397214506363841302871886902086050180525854762344922009410597570341703887900857306536337391941754803810907677974276009615618896679697450493889174097017588721435623622323707273568470753283431274582832703136251345086587048441210537277146457424399185264701876829805019583671700289952585849541941906529072256903186442048352593811461666076755485142865054809614089257466277775656511385436229363925195172167623862935139283913447628079823847314806250100986449172218891426378602722094785802923425137267769662405949309134469229515992601661224342444488453246137859541995711443229024273696201677098851536633358903107161666577511221058531161475530685302859393153606888219443299101885628606980468381899431187468400876054366575161885673776017074539680928435973232828355068264321361366380613863904777094751668379447802940000823980915930896756401349284965170831988020182679834453902277834018286584932985969296025617157696650634813108534865206751951665765886647057308458633198058240419633287490195752876771325670322437627057171977953000241614650496885521715063862322359809214672728713767789914510313327475393622136704962643575045538845784140052202928289198404549539328932598692956108600709603566852962104066082135413819077234851497542425179988001577598538287298638400362653956941003860731934462172837552396851076553239042098463684652293229872892332794416912865119254417283580815249628964997813734149934935756456146191728526585621304342017952373095654598699153248282956805063779934991054423904346060350204999891072119805125824691748309013957783469916984315654570300563409401846353511388764810404950163477613751775497908511023529972478196986904422951961640421864638394644275299672750288431660473306310448720671590410809419454495981581813925376738476298916389312824652625951846631120575056019242827525579418948702501839685045437814785195364375975732660494476803480826688258873799775593076627054384235478936344434243688335774485088348692305323096785740934748759063269280535654020286295996902926408804371862355216839620101448849667250355185366370850964679030178755143348896362396588969588079684333282436940438416442519082684938961395954176102775509044790347692815805968267486688331845466427102961219575315551184956980001520032108265786871917602947102697380527991166410579487181971416130151998122699955961269563858170301446860560875137313310803048759312251550023777010248695025049887712770697894236232672725650464752057515215083876207901394866441614451582482710070843193728514159381341268684008476209002780500268117604234964188096406012570517106679289637214651500459098295710427187003400755190103927991988014580856781740891500092734285182246742913008724674692562334679743367182816589357867998508570063055738253992914273170337081162071246816280833168421916534775321763095171699119086981832118287313920440452721279294958825408412224314796116374961458266519135423249689304190127727775774233947432415861975432092625273087309601382026159448373952120279766799856008635463896608192294166115120758189178658992520046593604890731205567827876209254570115229033400824976365502930478784851289450049184099383060106224936138546410701269810194718155705196563913253596185146831717430062219127049397028132006856221100843477265763721550547458416926513331918773192554388779670433308229168548210648272144382147523852906262187740581840213075731728150929788704531749160656397682641820376436014496551210150079549961023550895349719204929368222847662840180951402400722242795836130153546440200784804095891579543799573546951238139747546196890917899950896717187975003006230725475794641771965933044154583688687710777111039128266390984312887261375029997408292813346499027063694237287736143601707638346115712242061640217650722644899652733508007827707203196041096063782392581458526277451027065756419153111786552688397906890216414451967179023280596269951698800823018776362094292404962495985519633283867231840760958694404312221286280839287633490839325484450914448579027149492548709472699507206040973291126288870922950441128422262808696522084156609454575709826723506235586881747436348833483083276914940676079792600367222592199500015148145031900408118502869164503793789056034970174657919772998134684370499827870857007090522172444738742664210177793045995904430892066713034763752339101115143903081134076428856443688087540165875993894932972540280573978827860998800885425941581641232045121115596373188239664688331771825295657633323183390102266098096799912594956061598997380668916793339174365643167973127870206812836949866459670908273485769247329399068095606711562582478809880819454932742661093742680597695039107991748572158149646892673033018425909408254656032577291953691995131400734693147333945751393166028632629854705698620170262888262536114708784448572794724565047797753283645055807066463180958583185783642137790363879627700785934072672394970098357338880858517217685694448448903961965653749277570615371109796036792462637732467385257040523349526210755423943702022678461680179059435154716207481979593558684839794918870960758034715379760233931865549867757493524732912752360004952390102872461978217520310404610261434690460889843112896344442193568282121591833556815920694210437913766545365079694058856905592881663829212080738301660280751182977123969217688371195433930200079125393277445819085046159537248363080557483987969938205837142479014782206167657783219637727900474084651199478584670620683879792211041421813192890031502219844989096779237255248892998600216021151011489304589506960320992211321590286751199276188828742070974067885143720224115325542671705734791250023970888451247856931164346311202608119576370831696281306215398596922874489198214120380813645106194309376947857056523105049581415179974123712568407936560743220238635640650532177145553619950597637087381864471187834603791102021515588966206389060481107666921169472102057625744592989364939506709119014855696928222610210362005684469123319347090681155140045285007375960004286441964272259483688651629495468544641533813034287901711709100510860928340648199946272134036920498636004072105545712492893050879795877870205972565127695935758480163047454297855576250865789414161220029007238069232608268268509657501072792737758537554423423806405078037795146212175276690514687879473433840825012795469564917025171501686704764749653986519746456105674713803744513471780686644322276306825429919385127321530959587756263017479015099484993045295792100769810994874367318407195771303475767379315236531820859137378985708668452457023433819882207899214956972823610746441405265296171837403008593349931549505490788419674777671070365099430148987335706669260032363770077666631516354667989534516986847784075283190244608499928247576141108739879497337341584204957494153653753591006392097470633855068764956369344245788453564325801487935194912110130679317511483492517255784522718554568989944726320649324045021874841024587024390088948390448851285806955612440885931801491102620344258173381635481766870475695653591835923296718885418300263122313665182404735912243643113420750310215896687271060341045793808233769450986237693329261411199370430332405833430327844068535102300459804023674684457974769828650195210765390362945000777798995078528574173549690204229564750420831512169069340053319643937142735971513640061039561842803937455201539191010573396867137823330887152875543359350477403734067964546983408016006427822945778302372621191077192571821896151783597245044174411056884114609373555595460553500591842400690187143349320718304372920100175058919887436942115076924100897492993754057345985469618643161761584788858737452666742764412283772199732346950642810227924871189816973189726912346481403594629231607319818860041309789304087206626014697112297558990774309350477272317819631492936457485454510936717782466454951707487506293580072858324370882812326295382559684506379399805421921791599182639263017047806982950512615435339444166846948230054050821434870882115590714702209518586558576278587184744303495449157760398473958050041133027700674519398867579304234323348736698923355590442545968186326597529922620465216323610487757024229234556933294962474545639252760331592550409992009768580098049071505479425843497420080714809862426843596650035946508190529038406172935181033991606604939953770302001952150965974275303218856387632202974800005689321525617558593863045052997829598044545486555566284439878521613135059992632061702481805227839604267353596981601645910743529230572304143973064300746576978701513967895489138373395317159352773150114857077885129312586551825017040672724128512394148188858934151771360710709517744842072859798546841108569674726073083421645454281913047160807030349987611235104638846801818381773369360861952195091255853796404071557419233126407639116761971629393294822453226749628635073419293163485602549882062849814269773852188244969007625840894431591307534229135280287517350243077759517636315578871447743655821769520295553180664630646349551027358139126388026467569403643349989092312889687389948463109181970230784277174624615024358293947650022226523544642683551626030985514243993114852838269798869017288518861846342598512507532928452056840171478592597835061536322831221388716825058688685934944195989296430291139054740779329283504569346172164778662726925647495821876242562390107129708867830536501400426073551157919531678378350181284233083328560572314215665706288685142951393733385378450125705806761027807527215063959150922076617777537951271976351258867915146446853489251555410966402765726357655698088011545511981753448374671337450962514521504705382875573912428711374072439004813234531438586884491799692936399942011792793931108089825656135817117975361355921167558005134121572102134718726109586807769369598353547010944033896528427995330607749775627781570078374617852511382715000634848591341714177703011976934948281812171504444134801942170408486803999470078054846347184166271040176927145726095015189470235642198480652777125202444536813066055972096944044517530809290246495711950679723475285471631431371470833314964513075861804533539146829139964937721457907774305589504785699778756762900475969246916579163808710939691222652696608790406391809026864795344031361178571135173908542945733590209248997041625743558118095799213876477900671357594694586555849044150897738207104948552673156162318444772279384416168272853751923067869718893094687620916264912263913524521824711711454901180655158456891786999660355484816351511791465998616822315510203026667372387711009554621847269783182816803723804437483105639249569967749768159105124544020302457531082047508337027977364391333681095645351655259905996426595931790576560549723341189069621192795930070505833794326001556203066870496812662686125213281369946673644361409833749887402383124608775817429357765696002142990027647989004117300883930192148759222734417484102472668433707822082977649174216918237520348159553151483114695014562754230359726020999955202826092126812645355234111895269813963952883177373955793181561882307863342931629208161143233877792560156598368430666252136244845283984254616161333856365318879350734903252919469911241620413927732041945456687387496695145599877027205188275002755118357699925208616322018184432777013391007430917691978688718398882526626778285429838848353770906844983720664018568830095396855556661194757134749872945095066622161700657416700209364346982276557325853895200569839251647369289323408578757525350080305686896684050427425858071835703401445550607934015324578549297704751951073620321152273623932097651093088316523258699495227797092663565648511591079588780205902025932071366786673939585049741417906879068121650943280311856679379473949462319764620957429573961477669239974771787225591389192288546734394217026555106169932027696225960481959377435333423355818727083581402632981805945577935519108217501380023623746428533633775297261199903458252544619493957142149370569858704450520452310222463520728150170797924067081638106996401312074176823566282374958533621902014375729611338199749612503812791532448645783420345534764909697843129080776042064570255494647848781636715413109314568578578558578755814706293770267120078671034112440405297512553072012988996135422376850231005200663885016973844938395889108862446093695413926999790030914610201900620426620029301181175482035191037939118422379668129453218734017848854757706906818814331064946495914308451565040283260701958467667397875193387841395183671653609252780208110557831491614913719196568857899082438462522314350731881946597182003527953918016457843538097471716493529934136845265472892110649128498767109359387791389215769122620735245392768490230034587068937939357586935051212928139705085564292312683706139809301877156403332456315585232766043555732277186269213785116432961288608012041531675292594923767990570844073530906624060993973306914426143617736555375062450990455365437683997421283860157177622634866764977892909078572281945955492023484595370320713737862435074881525836977567372245867888245595992149347120464251855561309317478585816677121579233042684686438994231403492821028894793384077053791150840987077596761531210637206418537432438201286688694887384629870453020423742183826167448613411504361578676093458131701024770790863737715458436755690507284693718236906749034274921772605683453868838241830342987851687839721223460611411131735235357139480574756137700544006236348948652933316361700087550068263026022021103095064013774135438990777878098990816494234168670399885644332277766087680312126360955174195280473790175326442807915905982923804728010151729030286261221056742234350023599811560958869662578505725186165747038183970418602486146282397242595463166995557824160888228516861543893840459572670321423519846355709167915420539951437182550666366421777430156892709004125045474849435310081409813903460511306169570653505442334658001487294928347911753250282770945830752257411750684675642968817848122443332937920135218902998041609430763216129692342055799614677909821879062772512292094346077205922469400882622025942341104514336106827903125472061341886103793975015355261824686729283100602873104666647196385129596831747994486253890025584360887498430274658296034609247333642009061406537247851463497820824274949378937057486002108337753630438774140071923046562309777073874416873053475577827815417163217431877017835907912130330472677515902757914813360790289246235748311814654889711420286647263550177036173145741878691418031671550975670869831421898166483010969533136335892807996597578718854034713765295167106798030816345758961598001782789906884438751365700827835016605369530960129535981735340851210959231144195178605410242338003557413954917705138830267896085099305567674896927444093170541956772204492462429716964781576285200365703438919531395522889954199689403729833368017485071209102610852964775108817306569741044338510849085122110220954110148960765563742271050119868948933536930301818453919602793961645250262483870055132238189917678503161869497429333970449618708883426939826174594087701973455643565212943685562363004861428172589285340631272679380664086138670905277675733586077761769902034723518461439975391208985653139384719900835973071426936782271009845242433557145089702702617645775335635385680839201935061134828321938578866088629572722276893105335963543947327743339308233429882381428313407389279031691908986126815966936445783558031957995430023332602685714846005920283189990919401992209643376179719042960289227099256693350119991886144128566284635637904423340438239291750752560542910349816807982429534111393421312833017355156211591658071922426631655284471711299461089069618323478056865941075448694392800664129477390880889164107706613336181937656933318329109654779011752413176817476536720293795290728718490309812194352200820812684490133293444471692773909193882404033830345295502379607836463812010181099853523330582562116031764463074188932030904959635668330449650306696050203330854066513825502243764436900720471419515988252619353497007203280617933008214427496159009450084766274734528841715538586188812346643474186239708288592302248390495686684373886054599448024684652187595554639263736284556067637176804480407727137635626836814143005286896796163718827274211285115008926870898427688855102141497424692480752793150135238277420074463366777572094722089092993595914324026838149590628004398840863475695902933791811553351070976719472436548756331285413781505556457813040702629559289874804660221991238225115314771443530150476046839320984606692315911230991802666604098957817806302428239966024871497179409754414716478280178160120976324190700893569478262285486669287308734473410338498540616448483034135143258919310327896312891379979188515505852743628617139134641825305851422814848600239843426018574319772392001922647546194738044505712773745583768034860484242825770345598726659781736663191390427321741419546610609435649062369059681853786085594248051798758713703139578890039537275854916206449857888122587698141218849961803741539929414501247113331523683163481792989527909522491865473640882427442840043068906903265503266492926807251214082628041980868608894326644442483401642407944211093475692169840725532908634153328937687610246639436346271919410894070625914288350876824803199316922117510860767082713310171200684016632518936940261170258350205738077036869814640094439519407266807565969749959102342434064404428283059276804984681842427110356017537143135009216924103628799051514703708974801697420419706711738384852246216828423236830882426308969504528768460590485007885748275111077824664535128096491019053610081892380047580632214165827421630197085445262227688639405113487598455556430167781833970178556531993283820334082366440841259644895125786478161746089918672962597110124515883616273654823657765223695472657147859875048225517126196777409581197312939264043398375481862146680266537072856771170230470342598208714624208874665019826687862411341354365979962330504326031835695278782961627795629224720618745303970984907189438048369500997370659944233417728923602392752992301561595366615562098691145035673439731627768501843403497229569609327548602390229016714385282384756216446265733671296585440927222718857480048769066038243850609622434227544480365415403154371369389824217024959543277329531446692978573514283323570309601769919766602923223365516568488093107987021560874343002935960331308886450148651942597582544262061704651652393227663693761071229133066083986227779765070317202971500169297882515813469762680343768231581493410529029596561235854915048504539978851820538978005262521733645611493213196380232684588972074342681722059823459028181380889642297175372938335909764421535807523869924569756368723561709443567070401547682025082470622695986749251199207178957446972121526848798534188082005487116483234144409722235224508850190094064833180813807653431869288606346942655420755828687748290286232410687355609694772874382681099232380877743866144521212334933245184349050176081852596896552647235307292707537312791534704143672820935673514397204715451810415803799510738243036626650091328155380440732687119485045521489896542753931565918964681021559930778608340069133963439966062375593619825319603650829050829844325948156183879093627800137154566711024155231307677920843976608586618732988308703679350924389309094425409604706147155274794503969750148099900124547324295485708441203718693352894948274443879980038226305324221070771089023772480652778763974402632556734052341832574599225407410357165454310997759163522917395243956059435455295574975189031988682558393642516651912246260905696642896767589352774797776875314944106221441846053596108632979465941548519678408327273930663202306149880621128298591016792709356082567968997856865793358497457749256987715880919726262688256055681206598450705744791544506405029856841146705110757642624849615959526265099205493608617979720880771839222516483123067078113870869395618060081861875074365511824144014046855950114385929700210255022148944193468055310169876824388716485920869949563752707741648001194233039315951365641271279692295380903637876492299378993402995745948186267895419270444254351038793264466502046726865436282139089956080921833795884485568462446133832694331308680083463251538460020997215156590273264762789145450407215909518692546548173741329277519963756036307147687917856293086725068138151034986812979188884528981359049564294728313539094712908405702121857955575896152136205263120790861055589275653981937901271821610772023061688728140244625613318762752382029838465145042687306193988618252181113222032077421028092783823331486160869698363178826329420830356041937247422068754190544565622395790533758369580853296567387680775532763719902324870321913666180241858192747322684210134914782421031582851680303580920943112418484533204572975054512309617545998125833155211916598605296595342637320204806996851274679684344435310123864103499490707981196259639805879337803844376509411297688519263176463623120121080986099188532386371465519506804539759878340484826074631901741836392418039607160444727107696689774491114615574054204942586274550955489986323503783514678286507239375450126834656886226233132326855687375586338852187812950254882062657494102290862465131155280001469820625531985670089338031477029494641745825049682621012852565894905171718218955261441476299263234442964068837254235259613087755905168037984226525426171777513333687473719393236474475063032376326059818906681046728043735562929292672879557768461192255989465411403731436746655145897359574890403942845797755276408157256594398215495554387441641168923317109547110375880632848962468928301074946682686815584870576576760606541719030057603397168669320297178258876603647629426674586199959456927651009836216625967630847362102952599040028271015921371524568823412371178360075445590318725007797924729894525430272676621811560310546779063279600785398388043110048958925799937950678915664062535788540594699186259660493768724748338754440897768486050418360269701222895067147767795233398805245284364911876762685856172009024859469233541316458324029328748344402984689066884298508326479133144259614232935758311229609178230471967755272586049207910640290146970359238050686434072531532248500523472192081713067856786059432660937104022310493402002822028726874678394371832630026915978050474940481909339895957593340732691559061356580967808640141083175563254192556016545959749965093855685804548107226332497907153375101667580616283924729623257069044438450814062655572003975173720342779741078156851960170915695343428427753000616427426415795319003157240866380770086999922282703200138422547036565719649178170561268105075220143345575972140545813875496189637748298129581123557157501757256367327031140881603356818303555196895301948188111229273339832402038974598011394851843852605543305861828867358294049906515180958809093293738849611944301618208250551677588939117975118392183128240051105385236362055965003590542852918587744431640065645328606992552678018827136215870413707998688556880234992376357702496530520778753043091460026588413548854155836564152973043453610518843556271776576262946189649261181168796506264324394809626360940794111706061531427293047741957984047102947613612720779953251418309288461131595253329938877749228046709698699591392924783494759215040876197129804406856486596980992197739322509002965481915100803383898309329353259763197213481971235914982672107982303462311555579213505873177099513534375426152202215068883975028306111513280367591024331511527166739903960205299348156410088898561581168604460192937454888870382043733959922716517145255450489817756632468781459429767358746604466149730935072956169702708126662639106252540020883366128975618040850047301432208593842851158217658486973991208946766693940160806105518345924186528702854875969126126789919141993476812676541469666389724138559816975756025551084351458150677980042624411953432586116405468579442041095468380607994589846224686528340671789240741373904774717935241312527169144811020638386672964848115638409668522445031705751147167982319063183919209852638459335996639261267562805937601935307316094831616578732344386133231938198378083999867008068539430556866614243363424004752132161548533133942762209012502716865007983219662312548505999010236607045164860818654545749774094799908688302729156212767429911048263518020857979460127904758074942060244238515545693949675081135699276816214068906240495654725813516745852496672317484222001546656982892118142065789252504006382012272528897811842397189932630560398258856091319260147206198522391278829884137618172497576845567073531081707004873382107954852317842222243560057786880688474300948847394108694621528446702182159297424060030425357247634863845239858676535828147892191431696392128900959845238809377862791477663354894701944970139829645913264759724698094425791611670350589520991776297811382618513855123957583263936614135548273984401136861300207568277097883724803476290818605406974153058393419316895751471515558851596487907882467565069623192904030294408892646233954492254686080617309727251662359502846702629050518095832572795271115059609131830312127757611376797218350137982282839061100108737849125862915164063283695503775196069639279490836329175091462718982616586907846100337516123233811218379378189534371127677685417373687228628430361570400701155326702820984704303938982825309374525991840248668773183904398322847669087773734771352439687466154012632966907066614266952096655093962448519049091065192762008657018847192116088188577353139130030832231669692383789702202915925188600210716842096150965209382866338232656837930684793683440931505429608974146929770835232389481163315815504350850448764475973098004489579107916648883091598875842610145591899170506830505439043103806174751492367974187180121984260639929527139664045642458679654255290247427699659061802119220673232468297581068399330915463264064404766746275160824714511808930456474593847854366515124607867862161867965237619786991278162235481000239494217684565046329206485488590270338102986311100392522202399354001629206381276159368604032291135470372521716665359653106911102689857875048075588439878355101663998310135517532461912859065227426499566170828283572516722520943855854125361637877364575252689880042816025630082730775749840479424992733820168874082046211499615720675926622172859225766185835760086655200792861675283250644833757620901865881680015039611693382378461235266818254416426553058375962157053662013670827280869021469078470149669396621029466305637812771593951924109685490833370977271938044994720632134001537499296481535907917690528530461587898661230259857616904752786922154905364622307444031293529606768333573102588637985728185228079990370499739830199273897894665584838602114517223382832942829744012060078258584091668613506893873847680203615711856621474221208096211688672572454696838560528820664345821490359815388076623819627247822963577944953549740379226336061397992602739127864559456871854589098375354886771617694886181638361547959086330580498314301383025240249093620876490516759487678378812899324429611607022623759685824941500772127181524465544609996790661821992725933862813738551797516195081361283291658244034956800019135911127046822456394359997146137063459085633627972087170256935919291193985365789770983764184757614676900535772437217450706507143207265273138320581790498321055437095950887718967327936403219674348181720486608703917591725750219181890089341144076276492647577734994703557534828294592501363753611244357853450108211083285862487748017351269726936342473403621978497887064114249385349025862486230039740693540775128201893565005387787727979617817326247982345078817038036345913121187350632549334816118475695643581676310008171537378078447781576782350509298285450665172520687501895925493998324486696179590126577126525028509748071461043528284319115072841329076848709803121278758359518392499662328637522677564607934424828759838134379586868667918631310129736365600417443984915677613127418311455595024615862023387454441889651117503794451108587115260772656262443111317127035640644270922070890389150686461651101955977771280339158057632943131251164035606438724481301978883439853012219177804026705222725221020908036245457903347651079313125577193425625566881024424836918704480751606953439963099303287899455185671125726882475510013166790060532281576717171061113652258239472869989367759090350591128401231892855881159974150209193963174459715450493520151760582461636297419641305245739120629798965341624251485877713367165656619504804594228360566784501069430734279812365121738811191033703232961801722580850889158810516526135317548346084520701155545437002900351733996552747780871102928535196084629781985222518330259431208514784422971121975610657455944269067772635123740897730334496523671750916433119302813314908053110622142976509215633733211650792201931222719928582842496198470925776676518331640567471860407901761239875339898906966351610578835857048940531365398204500919726823096189737454934059436318027060432132521266505899827395560158269168411600619285489881607023210427427093849887792346340518758847233377078274664579247607539886105760429443904130254492078407880190221877863534427246724984774140486160969571563006869534722330482474483954594647048704432743062881759178654817835659667593068846275734132368142085290261247905746689895636386908033363766185248132342030555527083052622359016435556115072227265460251344049016786654237269078214740355945450822562733428526200174118654665158170833732495983029319967518877049601648282706904709155752964615710329664850532013032762215952018575562542537453159751457846493886463681175690776114046481751594530282357602512844353701822945740283068208858665359531751571975119240445408937790718039519852960435936447803607815381264794051909414537305034976184926392458758110786339369199699329880743574842789110870235365916712116076626428166880615703655674029379387885583955924355066551873432515930574409926126066970061275768463897742350087662032800220218407945145764736041145574826067663780641405592866639429787115414538425907178610598854310161978300653196108046203378703923255877158468474896101739376795923737719900985213587990141675003719026216598307567810674764668458171387564025460463607892433757325120869351732707635255813020424101887781986196240129767047904295261738420285519741450452431138989422361987403960588807953976415688736402849970507219295418654261450974026627370603806410483672421493584378643014076073688364731598115674167001297810389329834134064571614534313117300858210625778561801003927723749915848605369141093083428814398253426495714720062018291622091729587999694542297252508983512071041064066250585625857081778036130390397456253623613593375825711913142840730151553558553455782360183123947462273774999912008367496236903256480507314155412530699516908501502534997769153717040528537357921277232406068906331215013654815392830637470783279483781374555973258472848474457286106227665963838103240505655764919270059729306452841491898459579455102997290518383285792629056739497742051575068345984779698331459871279695797625798312951493991401491960860016753443197042234331473562612917787326013828186563906779912439740270314889975369304185787107172006140421980322552162673793716192328801513551538103626120859428879644401433170449881477929766537971596477027175893491406081978479922663823332787653494039857344625703977468522826755801525955874427303598502799195705446858045045009455074875660347593972429077222072340236284459448032006262243724205295874518912596873398222036601765992546139697246741934634626927525130950898112525224925138919319874691594846664217842944604612158813441662564067572306912325075910840273580555405802452872479137533781487755369431120868268567990539223715388830969420625483483823594377163167643427064964597358536393218308470605592205063722639343379769388325006228185960199549536761226699511471261192787129197368192655045229727676257053357038890768290689857133727312700715361530181874629522042783219604361755752863277508932461821933948527503510944620777548648341636828266483848927579335016631807564723730783589232904103148986415191106253845247636930886245690836091665298396911429201073076667282557164155373003897920342968193844873722409024491755934003235716081186494097700248866278187430473551761009580145659454504886393374966349023903877668487272938602207583338524887625726724070754174884920241607825350503294087551347661095470266084178355506711352446542160357080453895432859181042797821446555275570713354567566499188373028513140644381690498606118567499329863372798326606080771220555320248986368887082436213587112442065130859355547095739201810965961508895957461960601120039906492553298987918120987958978701193146526261489424838374722036211842430750517371155088634633745373328792323047177097513030347035134245956215065575928950912553592191853220624067269864239802131211123306831075834893605902702789912130642079076013306816357371500433319849563630836363562837113502545300233268306848131171927512448705820672903618925466013746747418264610292874782334468903633318352497370237852686558173730163715033434867648723574914475776433580161006041497673607723414684548840015389299523443122529594213143322981975937305693270991741830458197602178350377594548588177416008823170058413028079636514863469444386245046733255846392472974505662459402758698188438320765677915812540894818059185180660738462612356245836824034584523575175779616199059810803926875078921902667208461646516064311055150792972105717382412315293858928551564138723356216666404855710579004509062397559473677933161925321612491686256261417894339050936819222637182048410080980549175845196895393437813309955395270418864564888439412899687777738898454916790143037887975143826039447450874561166512376594169920048131945090384692624015211851136240862306628693375041358986987464387749589191820391105676838524274293683908427362745413310673509493083409689432605615040111583324047640921862403465546304805858135733247358549564480580898340644004543980137114695217508906389120317919721381352173085674425055536788640884105927699876414610966749080756309476305897158535872678892846672992085465519499629112718352332058167853649280915864092004469310506284062720804741216626497498078286648241972034868508726636424939909228074289505706589120260050349349411113226604778902248322748246840361573666908841882367928161288720282459964187856251866116073563551822559213774243031642957853120846715910056516774008901361335768794129980153038558941424047061730834221060661342442888410211363127816741536159618487686083089637230451752175701730381323763072251330001922106536518902676835318919860001743805925329256288478215561173158376516613231835816496881421939444225060109312408638152876950158866401864888689170460239175027124111832546997150936164210616538881942587650625603508406286239705133986617602550943452020743476399104855957799522614399435063562491577758579337422640163302916325145305376737516613373918644609742938128149088474113164082158828962547727267359243788634157589104987873453807956477918719944041320952412774348458003084787702050593498639178426647118017428071898345920587336491949383292535507026763125555679629757991446896639840589348216887777360713579196769826737920942939616134291009004275551277334043710882090569719106481988747980544888772246151144968214382541623718709860094201187829740894566973456460083327979912869587860035942533939326772723283767972075794975216030946355812536318571443904665605077080247171100316557860436476903149763118108241213028248890917694212236023986613175312082300398806007016691940632939877383293382481210044603983706781885349442368837103796188869748653368942998154853568095124252230671683801442443027531021352417484539638736491485362733274993510226754988965331561328105280343740039240770748653840024457592699142472172462069800563290166360852858158606097761254807725907094636096075533944914393787579827243595881153821400835329876633971882184480861077360478397598239668866794826351428923012594552741759869130547890859081384322942468149358342784237980362116808427459669883814236022515644673635641686409741688724692159034595187921959330964245823333868705105641612526430607542769813459978893036072051546921324184581941341430966049813062565568769319677528219173839928481716213626517892857759109048274004355527084690542193808049401827629251066874841312841119066450396287787849177571879018352925776367952282174100136542899165435979376067682745567539189438960474847374032778665039565327368970662016452553129257430414006696327289568579226358338203418563160964909402596751496162872476624951896241751684239771415423726535480104854166295783369929061325708847840574867925358226971829689812162972738399946663182886124317393464315317622133418069203876563503394223684650142187176936366901454566655100071480711126346682247418607020823689733585565886402902488801133390847922125813675820725167269382890519363107255170228281956009644806570516414104591439998282023243523530440482715625941698011085812338782374055712093239736769634814143372015717038300181663172886397955905632412129301978833185463003928278750465592933588234433922825223880203106111203717590764006383527103414573525989470490368820585606361515024453643052303577617536322276039576568913282641565594819075849765247182163287394305208109099253398868340210305758137931923091641824729865366563058425160109335114401235904537943227072755259865807839668917145261474660190210602954611785322052756350552124126843233273256275003798631741457540280280647374200390106775713072695859619073572746372009980259049405936250591681649254109924428513334394319199794898421514912584393590655436275235270164429992978212012774212397900001368584749925221854818494615065946861711253205653799506898603262467499864171058395144560677709316091478165933621226608095852548462378004576205976462348316634206142816911245066053373951952853800994080112312590297325423549169711256812709233440559373359219467015682826290264204746811412327130389460959785062177817144027828673082261336094529027550608072982741851745311576010302253021459226130777092483085681125238065419383489442492009790501968547181379348916138068436553259240761456992504194407155915320912734274860898447193739466004446469317219200964664898818616233725875336673973961841259369231143902317397315562479367241611389156223861134829128753161853357347998546000802841463924230698606310345829027144459110115059308871254433879964117289126114009211472847885981579125038384297384126486284719260080028521717270585941767708965095579752107123722712209637630998880741052104682314324458776775581917346530460105817027549375706417650948879403798689589753925046450001451138369393625136807037203496363942798917676058216889215850575547746816839495450747535391344557665111975069400508249077686573335854854922560628715224903044295747635801198537385600887773726265554979028163057903500855748167093929739688340881815453669619827285188217412844680406487404977893892554734675694363565057451097232742712277815688860545647205461505995981757647154858076028303748488177168883125759781340600168339802134375168193602838225664540101072709759838496800350247780660294488046391375078911584004755377563123669130039984664422301890852686177178017391831282982499347190490599293930771654899930155497843647718253865027756250044972217003417158351620264271352567024508605602694033973926044288049912509539732364330285563757008166146531548874052231527344532155708536029695981958825060370243230961414005238541110823973953454896716816272980050719026331417410730227144589127641874178527222941597328416755345140253956380278363725015317616874162114122283619954725034889681371160372572006211013374571355462406132448211821506453976664085515937741417198434538415876303222296779881522647317237699918253523161551290566679309057916469089449156194442349396134690358222186967706314392155363635801807042866450063910408399930830532458436889949153915842100956701820009331224699587519952682829438612015848947016040778791595495555588286854540963871930069577515708968001391326765058704865578255837873249695519260275804212392354150464093787052734295042489201428940851637910221248107775173891781118508980013627160138355530619108514288413398676904644272176022089543390167073900697258278159304977481526761815202970272479030451072314490209500917436885275794792473377147203610045785659653345521079422773940863501386863090295509780003141240783166266827413062820270812055737574897534853614538869447182817403435529342237678495287114961319600919467894728776450353548132097664701366947870857174671667683525828832531036434437698487192140244594452860475161991126037175425706117693646682491617447328966499943974010003421752914135537287935696906753879792959058760648206053963374472878585334628895870638407263680336799841674917102915756976839949634466301820795068087054883379095791234205143061755539557695304520202150987808710935065708597520516840552711811605379080193298987069423115349136307762921250743837857942675614233312086795887590764370993401558916529717275740816256825401362400386963141588196961448048925747231987379199255849430647352307059597237764809977886152822945482741104281590146213200161048335756985160779865648096744879734975940270413016904938257688676273595083143172538643121430780929936931135936077460761111022772603747737634045803691284816792017253415062918294866419468091044047789343091507327680627834888058470799666452067373706893312149342589438409085689083896353403739953114127563384012344178939290028421858308920944186000430835418501302768601779572168055784987179191067882935647973289139781429705451682388294822482447244095972766125697797696103460753820156967101133975992342297607403305713347170996729090843152974284129679274671654627836762464853682668064049797463755797762895487161895064130955733708131021083588380790818629461113403702748284019527290121672373578157821871683896708850869130362022562056754963701583029161496237473794124920025231115885193468100616952511185155555985662434099438260833397423782814554702883122136359300383567480119927130883607351235932200758625660012286377222357237869962615195352887624019246992004192348589027680288217621550493251296510482733461085594260820925106771026721230048934906886449804634327817934555488359777186036518515809107006462009136043373278557170927074148094623832177359623889487818681387078415328003601882393945521037303225524147154470967731347414655943499941828346410455738277650425845890876435436198394802635883820210560711355132768407611814673995419622044788926103130925512260845977473226311852016487797237919659411477308205189162906641236813561712030339028935926991893521075943379133234562588714843907536852801517456175606467228622908451605517783108188473944450829262821777448073598452117625727748219281268692194148734257594457427474666277832446275061952499237574855749649363093589184153174554172039514459184226414725595089948004413264539820883820487346067099070934503626651983840833987657965093332490862456022203468613070064163146725563897244487549290573591537854105334832797250226951970509984468320554096634478740326355099697454381600718013597689486683523134033119680573831387780088358288159947921666768427614288860245886931514820778938458040949001115942069333681082976794164130916406903692588942939584657393998875146505799701444589916130189937640063967237920818001444819884192594048453977381217494023668061778300384775692347991694779325270897099446022037445317873425677554928122424136374675499213327906073067871256849728581529495919695251654047664527216211766199805968405341598489347780562762237535275410002645723122379102315585429130633593031493296006246636079578220958528193243667836265831514191420979112058971651720205098807316887530315408777785991701432330631867804972232734833614990114821869039405508030928102649333355912009880233176173893091829157164873795577571687425917826711710574412997389531946265643331260281325348344538777858819408886046904327187146236643492910713316534881234474749451945182403098764254465788902723041826490672976963012737105700545023064340439187745744867719304775019481555850197642429192532343712294842035228464269579043054090503564112488655591233986322154636056686831585296660942786033101326559887976267387772139160057716928006997581924014501675478746248145915735693598400598882014784803333015289224288111580178235489888355941520982934461489320404021349393936743222843419751827154422243091165699304090983366828004693199722134756474564639590039429235551413444236882792177016442894869409725035001256713693759029284733087049089089446597767090685224507254723909931081040713554318155174604165142802378754160882420408142037698680281944189069777209475097273215289789728428585597682456092040242353371920892181998494976222642348818192408768465346975540587340581770582894653169408101714857890971965370765697073043725056528829970980915165477391699778604537286591102408805732710820105325709887661468280774184735155783856525373618030174158555267215855530930717073266174464081907456089404035157927313017694278243704705307337909706337443069413576607294377184042228749695891187771513502977875197656686887540633865659191224505136750293769077891917773595527858295802014987358336676997335274435115971309265916894054000782996469971832249004877300516744398284131423502922943497763787015095066605935168174762010075236437161291506926931215817025058998697830242903748451540670090662570105408603164731695129225179383546591309590511173330900628643241395013261718126094843994102415684569990369806002197340726711609286023469978367569868377683133815081945317987421343333462677854418438431941952593218764003161953213091492106860906651038666261880402116418739341502121959084608299090846717680490758539027593083098820829352312461529160071415456997690387506876538366598120479892526200580945062329596088439850686745157998019634020551709451774281504361714475324532942716995802508786339690397365499420620418284254111709316708527955385389674890549434100176854927792249429157901170893379752504558665228042094031014253358217408348082888660823359292182788814575778987745160509233781999522249117956700668526682011639517923500356163003626808797563223780988927017648396742095631767705475036393533835619809047610050450164172370681188536969327829398933244926997875150738223592588211484964887948386624198085891796665149045521779703431073990118532131209081708921499505218936119366336388794600089243652601008203833526010973937459783059568566819332589740126111090036668854503677178185238370611167492085596158837239518233395339499902143214535927960219181692676388820846522606785806118657088878569871961120563402913866704870255896738605514261497095437883884912363173448891591003132989379916780738654445325704180758766994886997714348991933636860200847866774230123298311344319934616271911771418219973914022955902826912922670841419948060317400866186180200108994033996740683361532635715660871755509427639204795861330930753549289130119230499328835871712845560628153527381579825892145995457761820052516596655032092794923772521258314138562620640224119016482420600816095503365254209827321426304502886466578003965662009723298174733584728077420816225926198826500390883574474948272470317648455337789244467944939834398620847969359456089837370791309259672801259529585732103642066482806709873750978831163582821763193027435180172660054499628453650133442490825789754400588770902544858112964993399451596017537081712909855875508588970766223398936612157019609716371077773469725126817421505351171435568097897716404734184502648272564449073881948138720359578250952078014399399217164827921667358011520787425403781592581430702380082927003762890298910423109941422579424656382357801669705034786645799670825567540843642197025670409905233162171084857081479370046564752142744903079706925581332332010103511307433494112773923789140991657367378688073540797422679773859286646718429534849381627860984350815598180155837797156171637641637878722208099656091200156357166553256459914977034439809046956069813153764433839486173429709707193597338291819239524730435613110938263565978717041203320427959491712841242991741271706250446681359404710209367293661288908346161949251436643834581159836330072949438062127423554621722725777274352501705056423758082937445606409603316004540383960933714342664353220003894159622875818063832931258425535785923808761454705725138567776972014590196612521026786187305259447960904231845361898373112715201207216782456223276809340754503180864530339217526832628474328981142637984163385655309103615715673934399399076813199003379078959516672836029066998919048312389027016704537649752289838301214313779799767628160433893107569432678248452749337438469263284999680908772822907132804814715076298716652146396575418984882962551330221841672854920966554284715878345187030289914253493450592579122806579617356903345437756444189321878506812175697824212669772473063685248967497735593370858048913154687520143564025241804818177247973138106505772817104285152516674933400686743458736006977839365324195057842855909124193660172379001541355475890137747451824049545317655287917572876310949405613331119847556173775684237897140284834591742434581230669249897741664018700531909082496326071481756887877765186308055369325552278309625703216600070903801501148765440908540468201192652060649993166195353553276488002238193367700530383343721259716346588080471007135544525323374920242792786332998088752911527927470631819495137924238913153862142920409417330831015394698626930059225429626584133932427939118830145023501014418729707895428152177018075067164074237858766145329912928308518033408674698155290791237282619987586824660548275423296278634423851703208860564859707040116909413097252693591576498924957880437268998475968006953665793307798388950193398470270366170241149521026841451047357362162679533891854983061826590238387784681691984974824472530575275828949331277469157460567407272081099639800403330985070517610112330970487688113585793420423766968904457615871231319384088391211790377803331708011653099683133323103164954032389303292853404581390141009228005536973795408009680627329571101726124043194903409455843061008064864319112730417789970041202358703491072686362825736786761300852960532747158253051891947071089395313742341016802101609379802667477295433179165896647495248227203520212201841245842549634433494775614861364895966300743996025154023217585877715112739498985441919778603733445547428205688402496919020350029327600938913410886626201976019770068184556495296090966572400442717865938851547019658556491777043151008231104487892090891730566394902887168347924699579685874271070621290696216370048466176699586275899534118370389622776084667930310668216722322569879655842087195392580581855172083796837008499669778261755595783620322200383983696801002257882985274941950987302659101947119142800502266178616727847037212190631904186638058576183511270504706851495389730902658899202462006716675530030850295309794329435625630357677969183995543524575500981722508325442485975693467936144433619287198730089691329692379793106544212860537457654721085623171848019360851960055719795992696322368727809031980576766579116212978901115828723335966499881793464123141526502001856050684219831425320846655114392662991998762420617863050745760215467715323654279437840500742953002574545346098575829548550742083470409115460966829945099377273323867902944282634947133742976732000208524552345374435141103319729748138110214957881683980532162957033993122462142699401813312028689315191936210427648736733542638666345597134520465270765685580755776505460093647284212488841518472770775825360861539481990972585738374316562461741199116191072411621161401474853806265241148771084085054234181858458469017918487714538327725001100113488248103607727379182475525374629901259307941876248219085524976870028923463150541802902622836292323505364224662496770251649572848097680209600049128478317638135563702500150872110904205778852517657341830681838882779399242306324045077787523405727887768811225494316143080221402337160411886139225733029089860085413060916736640665654032570583935470048921681855238330632877484645407234458045755876111533019301743129546690505940797259651153144815007629795422706482508907824836552247703006399112878219591774538324577475353792858000487860623910655062760017818975855862698336846843509974235314172661102400010105072841202046296362202591379119092282370825725894559443255531270855129575811512704492831934676957378755583691502959369297694721176041822941212871749813093152899547901650539945863982174092627397880017479968160417142024905349622393245608979788597989801869790811527095165166045513869712216719228236425836842602070634840076060648903021308589698153139976035054382713641652677634203020378641809185019017856420401578652259338899653398440625306136670310281389189797137689365504637920929471116934925491755623310236558407884449901258309973801975843954840713489309950168391096284438414163563050973918033022929216424937415616312262996830044232444799472748548769205464972470546992908679169400909572146605842820240136189777400631352153780527337848963580975966792152268652278178596312776289773208045675898070501061573192076267770058398883150268246175590952300657602343608147478586429887501845563053066065471406017432537553561705271799061899563062958436229677971880352498332679622301626214943129475281377464437283279855733519581594943118813751505748363453760344645232661947905827335408287587723625908266196389672086190160018617469378224399489815970646191227266398303708499469357583500246355241314533723436496611858531022072014788997660114340556576881194449138494020071449894967561013091501186081730528867165788319432978499782248219609228020856278465383547355785469956904471127614609687458790892021712790838622751017651321703621066007643183133278833378037150490927288722653033272622506014764853511801734646199085165617520264092990025681858869362797186605442466061148964180007159036686270772875100632425188942207783502375969440111642551390327293634434392890577197150508938222931664366452960100432099645702158280863790322335323285267176075624779225940719948004671776156848434130450167908570805376152653568523167738924658004880592769700400091404974115752761803631277365778171304712734213346817685245650430104368218160943546372667434390866995335506670715147960413066385071272674977488104212529338848070004075699951741159646852017879649145949613642231375209652461356495656818766640333925734228326420149033874623155678183553545318994521542228946650379451709504131467317788261343666796042769663035669323306810869807599079356058896651791247357549360288730263724074859341129229795308737150870881752168014544390838367970958716250741089131502640805713420988643481809703318306758641750262404605719514271001043528054429632138610075672206227921318290865677386457477516901116829867248285280124509300601591851901375312916261530546007121312894043665123671907196106791704745064765496496686007122180221342530871176371623407523465886952954037441667141190268963673266821933352668509913231927699713431038232324775908372457486139458653810195195436824544526295314354373304515909004353062111926413218345644195956872074806089214073879856456485291880884563653694373619891260282254701542514741633231474884496126915117770893218156406753834489174824550854689148227960510734936849974180478218160656351917900600555336837645612045407826052045130223733614478716481294505143705364188422370881208586413405860706387506324374072716847807824432106165971549057543286441347483388471852101998426784443150066201624141706539019291391371923559590471201080265240776354207989191835345797661605565234554293825826184870536411230536737609054636413755249463308869829683604009093709742184665022872315017234230362487195389767999754679461852059072449926660470079425682699147717234970951113167103095480331244753113762721212893966468447540564714814020711293871780514985997806547703641628479649884290619101104292739749492200752214712571351747483333269630821840198888142784793404304544843579640900105160179955357668955884589295378293903545941760231050837440738944044072680998950345172394995077257175078903865928257382462250286015134547154913006304412966708194721526862068218256173452571868004810238955444245636199730752044463840783096949319875201821426576165263510237756276085579224210590556313713224176566973092478505150037494120043384142075310264054052838490754098551535881974462264885107796984934380004496936098595140226611519318059947155207012384243270843753048158155280794994718696725884619807187022570148155232368914443794165068669241197848655055630711873101076847867913536941048107286786830049243013269820578290419189875765608456401458092774364820313626392075949969662477557018956750910658237345539026315770621629824567956126819317813864093026263211637925164892495749413695439988180608792125179391136949825613488553150604879131377439636142867311007197312425843793668555104489022650692259554676283821629513569810032110222029541333949891183818162544159862928261624417021949672639552333945132449951984422157611251016737855936934250401944785817031282244476159815525136206642694211413336815745942357993812531455584982693559350053432608288984916301510905556534295723578554740517506047820365598633722916709961846387203815753896492815643697550248457523028885674581401003357057597894278824293495845649791179851358489339989464354623236172925248184833771730032314402924654753599325692795157680640417457737841470668102012628980558796533278236779964169848191637609789475829412707245330643015496086866572030810486684713962042959238919025557551651562446325539952202809369932419610017925745470016170632314578823201752573268459531037122734726290822891020878000038706041286539077490125642199506427729632087926854109117444261333476517024122115199898856712450570487013253438651359597766974448102737043985941701093050665363100022167450288852737378276329376999192795503287863179672806915721838952055979852558836702742258699302385117664780963663953041193064781431975681238743864521896192300774884797681030689678591595341586400584992839243619069541415264210862034232691754622175620700421040154974140768146291605771303226181320562065165534019568976897113681937272746863084333979218570276554064205140784618684941176636551749194296321827471888302036460353574441330451820966922360409166946124201677068630803204802332984461876144879531379112891779427959076433573419195117971502104889618974029526723678417061715914716033008676012035525340486716871928912673574857319680718270285120936031659410767345926241842714209606555021684198030921005856759831156707854790640949095462869579787192895438175604208801568871726699693669686989885832786408063926399354267241861118065419912341530541172722698415226052069760271570076178940962155401144179661992708141958573845556347341088007148213477989839293309854156375725979091476146064667504841723264583250440023997475312614663773380473602227890089165238640034190422128385652439468457321234702618424515807028371589043652131452949500552772779012879315623252536279211470053681250627152890111313239612624841630208717352427340216579190466226768015626925076925940777887424945638547767536324891747551084860681706673476357524595149651497839797625031113387765969574555519894450358100289843025426693945615437008950492299349432690218503135660904916800409010502131651239773960631182931688891732457925991757110707611065528542107102748478492634763395340443860890020722391674128898382526085792738238944943669394995622737537008581619890817735027308417219499645332781826878993339621272954583703650245866214007621234941045977040771811188780569863145541046995889312686019393965146730887635256527970459065606675591364304948616073205407897008393471959197701895350996838421038388903614481482048427496042141582102976143255062929379504016873438695333336772867440805660744010737957949850099794380563191287329274983548012569798500685895775873801701608011626340683617619828164327636446954799748086165189975792470506585713650177859388129134233544092568252383992626249279876712620827532925099153447346614707984120700590741453401121484173175344592823967122447662341263528434743355742320185077804843931044008091925265338172892946831510891128002754830799017270608438958213521152240656759261487433875993127172280289105614630252081818525630402412005654031033715112744466454757166692518019112763310549755616097667421873444755563782747811995394952421103312462498550410871287491427611219209535352340746266447701172044861614532629040554563126235082779115189225456986437896378251244366680238856521716674169812867731579748604180578758004469724155802452793760364170641846065337307750971556076515173489210576959513669855068902539291194136193634551077429300897440163748274286443416320825489344814089194373522338915323172890347393636768718611622465101331304608269420377804669065782568178054507223086461715303927034799458230253927805313806208864255366715970021898257474267780074069518985140520718189803816149690422465056478669851697102526667382911093338446445036565951538707975254359359342237307257229722138514260380206075586030036197561008349895731326974253416564380301231478634228590072685608971380403660978149051191718538921937920541148096632696905234426809828843749733340818563530532886286463527344260061243572607192432603826383146798856500312950472989149487530092977494099028294999537363305837501319788394270836564282211713559904301381533596778407853243222933441547813354609970483053030724856877230317855609910904562935396592388384958409413468959131681802835407504615922449862718455851698127471320546920515180942679788876164318359230784787203623733855368111642542185847899873737106873221006288604932650710346961289521654531055678873773316275578213422567688376362769723752266151559279764785970592492497529386601896620755595848428962735409956880925154751306950540411753838254150842763290569536133202482787868114703178111994025951828789837432906754486428631296884710157797301819868901331754899315551638190000392307993484732169273746309598701799602711689757265279477933399133906695847285462928041729362982819603857855185011875827936638679422903089811961136274316020302193426870607093717322648716742633677577721964429270354962282073609360706279082890294043509057972720929111341233278655414972943051509117981962263932591538017897064952254666644018020377708464375535383966549660175771526531798935418940952303039532902952616536331312201439597080828702365871959265616518290949527285761990567889155792284835340352177327826642393179001493385611859289915687408464685366552599813346092622056601383596522979994244941595503257162363073932793919690024202626002466013500291096108533148657203211705200714199254083107278263680028092039120994999177585782404745761627833344605931973356948696770689751719581589328181911224796330288148237992813564032843413779993885851673786569716667765059515292314300813894096151166670401088144542559354925641019383798259631869789063617590270191806683863660453967689193621589366711447194915464320547518043303439672017781614721553083046421650207941686420467012515688851806495167938223284952243750793955657886973449264923664261798313706363901528251123088454264348766767784773529993640088628885996306318431464205562145782596925089421232905090077199080043591776036592880393520900844032208813482655996136354931717518817253774949275780186512693404851881983096069553129929412884767258728838697699285123391463207944562009827728235048704854864207599704677634892389009531392711405551502598537023447186697569495044538596504345867183257588883073464062912701067147382316268049981347075171510915071164996053499497496831518517412688893551300161019249377686394083837226640806739805102781694971148088241579580789166860264417781163268898437391414533266345852661642096410289460218528601417053718928958343084477173741387172381340378100961137063102651036091549570268229817725961005892355200632868424778413738237435942564343434721752657154110721131587084672372994252216372791464926965956753172022143275183454814980934346083820732143850697310354043566834634597578479792124080664068061929457043057255741043142105944801035924216822463805652123478862390239509624215528506338357144567474324941235564107733983374156305233281649298617073846037323909352075174067599138590488946234643553247114964551695569663271751744301668104743760792420828851126006154202087996081404754142862030453762635667318937062130406530097723604693598709956661692298844357118920957181150698280003011216713972682822311785096444726659460843372049216777237984425328649627638079163689096527978494291945733999033209891283651804105645286044411299553688057434614067649060049892033688750857158294836295763483105412802467000214465630000738681253645640551228189129646407061241872692803801232529175435893653336232523367835238758842466455907213777310613830392948387244779449108200438436766703351679828865929970739969313607922597696360424329622256698595484532406578591027488604411327752699683455948658428632844891743393663871052764829497504015473436679249897849923499432531593601971446272805309761284883599440351760579792368469770520922371678169255940684037126842559287844078346019104970649165730410443427424852209512325858656623521244552748689546559231321249005888447539795092802419531575221881302108228371432779693229280791693228439341805236615351366418548210480206009016958910950770571896778437629134095113323772688861331242890646774156633791952199948934464707724395779854813380511594050394847805960261849741632048862234929349097315496479691502491333670147946270817620907444896812438953724883262005268074667681898400728187242058158616708504488725124190997684036560422208773288720217460990284330579892261609320324160108387491588456115651363558212308698555145287598556147605401106361146540927132999356354962503630322313070001462458187893566500507897430896719118705766295118115634494632681118403917529720557401314644497250471780044039227689358868699200740870712072236007985678042859987738612586115867896641798939487498690457981122482574388843191723688982883829850254446442249263543698332588572789845088246820361525666284864971032131329715586073013800178152831932206365288992753710855863149415408012874590156864142673950871487314006452322505720322799668054641444821970864125816559945466109540221746704614627778498467247892239021450707707325239428288576009180365215715943964767271001478351302813156744165179807755295150479037970851796002371365095508693509092010034266249375927444462883252907644572777089488219126361795707477361959828529047726595877747553354483771667693228823479603590875508372933222227784942280246545883166589668033160897276250399026757619486840957862557472060909695348717127936644617448866657872938896894770647631737619354821645761091847349960073561716922956402364383314781362070900570022012118517418647202714616733022079841648363444869403817411030665828858855237981879940955942855627020779547586048969234737927713928524827419824094476865433654493799713316991185756242782250639096867240376734500887752447894782302314616364995036460432838854244167093918445782359670472757457226887781393743704390635391176245524963614516589043869259321357646563130856612574781295142924769975689893925488574080374031962246272002123140325604396555189559752223553487447563804334651103005106164841001452015630241382715942830649563386062153522510472254140516450740903963420947527754941644015504775936117168256200756252913677774982785099248620918873798486679252885075267584253564655353365974100114339826157857109089148114775579146022111093594192135778564298806095028996555419898944180653879738986774531341888772933860525614739049621301579746669548331787338351355965354584001376457996651714752217029275453769698913942287567479265413969772887939518186171397017638864830529483576059922300990659617070276770694387597227987996509642873781839408475342651950997320010650649903818300695808453684754901218902791147552312052305880670686522053642519328427535733749713186601094565979844413660242787647064148802877605693672599916169660037907982224622835799061206183664397667353937865843059054428802931218778831227454075956298433294558402066230123623216801339924454513254044716757686676001301232422743818625658701353842817897756655512709332216841927347389987599529927735797645271142608356459542023719181163217066792143722987279399122566524081961622200944534125909301589176958768015316012470784107649164141792628292259413466779507035537589659406693737509190291997299257728850571693800596631525371207612342681722634920011716642457953647007990060965144442390416576304286871870547851210316913185899691962395066984614493628926199428772228925778888158393025058048229748629313581624515638228581085655508423836848871839963100238172058897643018856788020371287561743039231770034970236978617219051314651577642831882958930876722601647287368841689872294955214362904827430699564691045653806903702412801217057966799294800823338377458107639718618091820107733259786008146563737324319453498994582488388753204779958743317460220896169107808998332312453996025672874479837567963313769781666577946523183723147497811674411859913502432802297202142191067487051293267406157106413252576316152411701532691062501748512951138206143292664407641681346006964767098431128137146330103275752222209924513957114943931432480056787810750856404773872109944062420281194497724807739899189298030233843618817324192542667813932587232366201668269190286960020763142185755423092050298610794399957002662081816359619143128847690830089362146467083879968478447014402302924047883345432655409548189464815384399630626515747169784425361069355356197010609807572602614355909403537212662680692967152822755258839276601460308169277119042165801035631913102950795074222022821599437730022275052192945626426284350056867164574989261906268255119135928657765507569063701455479306240187380942088121759065822628132845151951435688527460137324219078968221586427567581911473664481696154849141096479622102078404378517390950370024674959175297107156598044474236395634644917000935345896788988491352742462216924289750704799974270834057076728959383856425571223391563792531035023066436192404081303734861617219377629754154932882745766308436725742658290343640258965828805316032640963468905946472443348243662377526639056572617555465842744075267552964591469656817371386071092758075969895422743239991122935962088675391595124612807311606151322452043123438531698345106641681446496440333532198799876797156844847932109983349900146962600317518234355796600132976675603556292266136831917627204633204813643340077131910029669885815064737966236090529021616252304170004188419770229862343370777105374404809480514132824260598237071384427055544402482091006951103399114522441322543531124758237647075940781694013312834422104337024320015549986962737411189841026017633722988370711563565016890440104560495979316138488413166189882475894539086277918811006788039498102763316796552885537676041040387912041049459445132100001442028865408258186929690729026395019834320048000471308100870744796623165071669606172918877414894577473760157528483136838671473533422916012356020020676804174374249096997449196381576845431513782267492179625370167751344707329649057243961175826472169343781713241063147270714418039283460106163345595932553124185924526999140300681180219091463611515421891544926698736281683654145469513270610310304098673740295745817927171914967502027411816944480381076087385305354830061391557092254749022194220500918053675782570904551249169910031868486517000337205530535809873712052494533211102956620883957871576216194653928042190379379220203215323528457017827798936902225343462681798427599432372568225263728978668556888248482213490786399374157649887012642920220411419485384579583695103806739822891071073050514997445728654550930051451272439122077699536894203310479406810520574959904273434844574295574178172552201755507358922793354789399130848441781007581753653743778931957691217753792359682914363046350988696614690949620291393728367765580732288715833905178607232800483808027864819780010229768240720817090973837541952295409584835803530398892561132229400582417721444667345496267778325199912442820701057601767621478426450893879375850997220290613130412530713070174264585378774177777194244179687675226020070518988788772571949022196691319876020417641893741956380067388192922695407665061297668053821922265494729748021848700409139008994340533356168737341345880768604753813233613752422018371386947463984172047957933483056321612152336648592187969952093097858222079354586640502272607190112144192899763725186437963349780165266950635881056071475215806526488701028186327324657314950660055901800225668361486076938082444753097142038733127386393663741399290805595715495960518461174215194348027909015339659465892029694824624826821064092669993650832027115967216721637250118166985779657183922518694858361827229089123626210041794705513262015086449929791846650210396253092304709167012514165266113887956325847956978760412925692772545707814757132182164956652362724878177357909520549213328723805875593232265675461306958812122930884796616334892931011248145895894377356543258264607406463553679361186462318825651080902472037657559042894716017489300737313751214119042552586093889756447905899339457896248923055492924930385120437089852278818037408896172129954637722007667902408196939843137562537537633132503108807805547737620378815690837782378140717380238835803837823740484676347685197262064207997845306986894382660554336107160349941326086218190323253087832147308299357010172448148408681380489114791379875878303588372140636952522626589131100427883190134943225324640567347461494737835827049558236494372918261955742334407196878192942790689856272335325443726102663746266360234953864361808800951563708299016283002076037757284073729269362690158190374207389640173578690845125078337417353104573630373700594303600757427426089325662084322731509399480070112566184715390210779373308591836230179621448993917826811072384276615427672817206916591550606090080306124054986203679806428145651492915108143945552294359918153673681907067137949674299680132706402761004796655902927191055457668594463706770954951478674789143427366460594153296208481108369164426830870892335122578344600386676857108951556567755040563197294799651067280886704639038586248047561525003137433029272094469950645693833182082280038246735132656953983739733487630135368114696699379192925855212991487726564243994367386839918347860873644474102089540407017930269594563784066873110171427333332166834540572207433316350031374777518165391009597451819792002815702036288298655093764297149592492322960535956619549241437331665066571434837233880764980119735232988444828933654099498484373463718169395711194985806876560386315762753697225189807507776534107684147412282932148167636030191342604719651683147306271049487066150345842589167634384783407299553286353882187659327753037015281279619161698878311091648296231553224060716870041591664462193350553927147635713122377188203173932706666279363220441194420521257493048277842117026283693846900879337771244146846571602574677912443567859728169981941287373831904005397210578347873138107742394249578974521446304561426577083092478834728195889942679168030171515775340737927467680742188868242473674066929633978757831624388201971102914169275883450436462844254019477200916079241930021493743149836494636596743146454869913266339703781971803150362386748068100937440081819591843935858927727532801561587949036465602814747903684240796482350466327634439879517144328127271351640768842924589622051433087776767764326530381360045013651884080209444064503368564125913695086095648214956282567614540739584296461440585389484705814320749111581788254342640592013536926119487223002285983733649658878698977423144063628144669964586031239818904138286783906496062038041458369538141700193175547920118995828898437681354327202634944465766377256519898181089218841917844093234172800432525493265854169504571040286574694837908108945751701594500239458833040398983631864820544975973814219685270540882247741654803835251756897931291315713788215330416100064736017451432624244183291503756630562585247878000975310125558929508938249573914269021640350876049542839009222694724958158606482426944042365704500779023600947457403602985033347516966197184414327108414136186764728974448926042530218951288217802638580186821076690139698226424948352047934083968253234054302051997067254748798298931914226301731153785711549181343019828460024732040912355216610549838038546031827999594799761465368658670212645885617754183104572554479297842647539151524639548719676892424628884519534748602398391997949494548750567707183766250767613256459745666024006372348093219976739944987389816801613008202978937809091504340922723304518551227646308260729635833679278513526836322265881369321729612589977719729310691598891661372185778091870701053758132678015074108152112643288535819903488466761679927609171079023032808310176228977479124269639833847746988779171149752320867237315070455116542562469600733335150182366148113195900407680294581444446808421566748627165258707259283692994532505324947217630961962301843541950535958870920129623857769400997296458001332890714519151917838982805791471092516223247843463795821238324656747343709671449841338990001599065750103230766631268936041529014476378192758637508321698901236761381590572449269791139295408189190317546194485549634316294680975035226023271048440578664035772465251831588485936202758743904874013046362561033165941499460845731233171898196569659329398445125761802088055506543313170418174114160177258205845177996700925720437162975121191807880732922323546475779826513992407905753533905600485345634946901515979124059598649046627213288479386277186996694604062125799595142421501791551149517530619821531814972189925921454781669332754690121222446359864690442810787417912783072731702226686418923917398997804677860678826599752216342865200076898804413535067748836917144107495926194248701092523973879441506236147720042487667611134040130500467265317773124446228590184179469137108909748995317371453525156074389169256511884997814585777703292612472085457528708738510206764289883249814434490979612325218331307479259609457000252086946956039309961920071552880177966179025826853374952211735451198140854863925956725240972811222543597871925077176284805511957750598935029787911809107806884251726807380523915373659938127250110761973878562551087420993740249533737457882888574285132114516354232887744448905244662460728112150389241158173604015647189647292157253780258686132265117753582857099499491355654369359994561043024916789332617842573513647854969749740731319626417600384997374395131625335937236645200605140681943177842520279307911403226689322116947205805665312734865335446524486711050853421406380969793626661847813258842479713528923124880388971870463720649361109619061895201761364112536914426070362637063204474267962560815393157737502490802794391571074615771016731948226438603509570302384276765470732442922129772794809881691265748544258240262367202411824447671271222591819676023125169000750855869771274760420153718249455460872479709044262064205174243748341431478206732053255408061658851557798669039161168009500499868356121739277716716809371897899577797306319736360611362195674154222803456507625283117608001407580476053878978893488231356676240438631801275624798032233328516881635909341044942095873328846199545980210297206978922634917642105500956946928826584945235978019415478756337194526174984222191414662257501975631002593692778776401287863316775502872112032637245567018582341261674127116969023665268762690067242245178542971352413403686778730021616944853017919768245023480980166660712234029898206843021949348942454413915332233573688197523267857049005262779622287287145315931639909105997736913740951930256117665522460710126767216106654273506118283836368407015266453787719539281096169091897910404210772757292292495821527375046878508687565581899123671197264740947209886722198894909630331071711773841134410137754359024648338230235992886592459494807513930688399080420173053245711084669888564983023573926680095761268737401249077285652857250415821577438200792991128141622898001800644323391782920051396836029307064389116522935705832103158106601709772835558755451549440854808545480453781172883321711233749894128067239270247236248174667716267195801437203872844876244309968179883218380235156330745720544254133049098394859168686441842766251031682336031191839922296152997302158917995082590412272778924814750049991425271234151323020311704737020039271205992405339300986575665698281537423408917215002537933505478500222067319395631658151976424978799763104744404456496202911148055381301264635061795155464814152335821121955418550495612299502194777352580159024075817118973580478647111705442737689320107942209778550906441743961437026005511137614603512159516886882958710755464279785116042767400340951840718513899161032734371241186872639618319184499423363896217352177380777967495631354998693513145752974956127322785893861653850706796801240899948086914365755942388946776699418814842990952531321168606380254181875597810872830273216940814195797552237079017179266184876367784097454783339161758516200329787798654241488280244842221547686059691948499923659542000434252944203680665078460745275923915896512775637811115657669166086347631811796988610585166142164562963315524268871502995677862461178818418926963444658474213693729779752835374146659921575763418267428223737673585037313267944446751051786757410706547694983716431777699344382121382574779051959431471786917841649584449575430487200028969271409631472440977001982493634870522942079056242944551013916957254876414357489047842332042697946803260450239643985989824108780987078656363803682712089900698837404228188434151991562302707421652031799812940735482254911174341890149480956798382030787306310423732127691476238940220826727283200802371787838819517700914812871589843643216269683730928609088452933731132511503238539041846766702584722174245334185027824868982906809454014921892185323269639015363108957222539188378934324377012496146438211356836090283915069249462589221505466853982389902020096925893804572860809566293950040998911461918987390726751893608934925213630988855983344330313885794914383159729283230603690085193779173234253257614753868079022375080045873331779478380125550511989555601232633032895886419963911024790078911020153084921330017580343955892289780617938664854265643632315264452103252253574621448165405811336396281943731517583261716234698882714770900308467283719860646978308279110369132084873095981533191074855200302894347386561224915939273767471663638562941486851588809585005766842375636504171164684375191462862426687994617381170372109043987268330242718064821641927117974257180175469256047778780890770418020518005249644891900636673804836331188819000779611898659040340741780909698883299969566444450056856282407133608576158198758958545105404453742903397500172953223291144119541889656812290905820898641813139236931069813177916611759572239716559413328457652064304893953107123364446832819170537445390461083437266496070658161044986657453725769859360483703047106792281632524193666901238928069771781884767301331594348015568299106907770358181828783972189989195689069098190053045528129929434198676175740456637374591697140473797713841422362714398522396848363944548001818890253971004834737817353042876336520794676923535869465558016421701374987907701137103570810879134764465674136127960083001350638207925565128277003758065571864677899115358244434219225285378569158403730727450250380359225428399987777797271202375310290556588771198845986410300236240155094733234210467933039547286708201930221636295131959952537595992777108729025270936689812774660404455939198308684282988039605619259222625156041661766952324938622218571810874240915835913069105391302989275417540980257147369162741336842769596156709353263829740895201747278645511014310339413390003417506056291576524365521943455639260890755453373124337326807391748435631659440679341614768906146162102238190797776222264791688716697253699103627860132399035010210128812311988851191603892113142745591191305656786331565203463619447781707516592485189712856082171538541984739935763171538775499915964343735644110774716378979878899040587731159010611549994147485919404218254964725922163637420482150992023004446412304819169575665144525227650767525474940158556390364561589881888971651071977800169525922099680350276359639585808392508197107953194902967397291989993342206200216414503614208765969725465461766582434294789861197583863226367029118007013240582231537424681991303848825892883508312088868088809158552611066327564126034693674655474609676011450329061402923345602304435964842580439692827204411710148258669640547173589850173007200624640239829371760752193178784448343533829982976341772630864408953263115006147215354811425879800009447749495974608905049701902211356135503782629074018992529018003741156371130161820307061857085488118400074185316965265570877229583076310871553345498348012912730246513029380804454852932134229757605081836635651992768819297939587356188035811601443326732646830174057858251250845151376129258060305367485747887843042443364597863958052974996809696351925185205772476955038207664433675742894314654719908784533150201602919766983127052813867899567502874900978937061666450750425612684638788911631629567452751797872080432223230753935707485701156240419389346340209249445312932444508965808976656852619571503098064137111046041582951875148842267335257640063236101131782421024613223838099771221636683942348980974965653594287403644319329734678578857924234857842874813437917370257031382842358646383680195954460168639404481749928470538090257414261420000208456996731671623951312600930806006183174859154008244819441122452239964877919177152685538299670910096328927992112529625204140267332114679287051883711477313853547531865993362366216357359734656494751815247486292261641744411866822335309040017608548436905603489653039600700304002957692605464931060185968250654487710640288837261642274286655254543724547960614093456709292388260263692063054219152097305585954122516353340522081481038299693498261138493165630791370507277593940863512928509262669414964777846202993543622211200371384259168460065997403883170218061836440413943164787778205093067075390076632169354457180814001695769982959159532331666232805136358760039091045021506948071318856810624585791991655166222734212976066996927858813023356610142385385067892016523105984879156488084547768819733435675847212919984337497062351158546722003156443232589588709818717033136605332175288806107321600516256004581451166936920523119935871782224039253430856968259508662941026011698717699664082275394668365073435847909843688565014983812481945184789465494992496640352402957142804125563268156634617454011872858076085751858375279453360376107954130510023618663484224418547470354260848369268868650217697330060403060008576257079281912964070335647044568490888386893694460750929221016853968981415086453594347818549675972862463657559728071645612602554164113143248922162543818531231402947581286762835900650389559609887997562398899826816026286735332922703295168877282868405405406206024447198842447658127366227979474797428032496292869501259883661814649427099755356737391057713834936459046618680251354982685509499505706451799185892693758729321372675979665582887015142384342512100424590202646091143377540044359824376806311890442820078261290824385685076615463267462605033057812871565467491895991885061583081196684017668937666874338343344670007841482531388738177883939663185385948099142690157652825126614189948047598483171000319877084541688699435594066351084447027602950588081327408453895047814148967377124133039290135036803985656361693247776763285810148266844997590774907164836064489201339507473746328036419924177636157550719086021484101517247693898962702712662323136845276950701171791652029877421277230963548988009351121321042954748703492616469798104051924794106553244720921931026319109389416159014447575672004708338869532938002088334281536065872076920679904386236390835991164329560778081311772467776922197021955712187363772407191858479398698499316748840459544583428674970118548107615498003224877937692124557731333170787505937166629979864246317289175885844976011331222101222923738372667988077096047293563459229414231972969134058399725232387518073059371870561653744375965874431671822257162367645822277312624870597235972186270921557636653453680129445148481429579171033180767526677940399761543288757461000051720178483806600656945233291996507245992562010930058331525733955225064774997455623355016673922855658096841648189493734583558524708214540467162085130977473483459482430569843925181518303130978036322641003384545864399195617718243799649971595537265260382963661975922099892160942303447958698917476784026334364862696986206770805144172259876042036543899129067524144470786158323909720107197811473818403522984520374147802286908960431312088136028271656076665008794632659723040661758946409243281323687251487909485505464001983085528018231972239081572872622832483445321853384174258391184815918714226929458474303186094151917720736421571564555762332597218814255641015675764184084697957591150608022617360514764580172149638694706287419269595533618218395743405055035784499927053114211810477348841910471664151460943385332459492006142656503510830644909467645543025028132816153612146919835894539283023686443952211309063483642023701913443118456197971052678780100299781551269342434873715806792419095696943953299040595460768600147810945116653121871930108987106832101611142167708619602866145753319489507864247558888626412002044162920092964737828020751631294820084282221216786846874675998936394042328942040648945675507520043212334020798288624368493103756720390474850253577870610479040746028486105942464722841984429089890602960630106367680656961449354485560338287664722394151056251357051573696359983771533270969803659581242692505060157771599264785343338807618270873940309806257070523023752185211338021099115240815927650204022034115210433827506332775984209112591920208116669015275012916651707178230895332550994296243582949470847266633560920169480148904118792933650560225825575736313212426963786812794698272056476215667919081634324695673419875743782827742270589441763493751249300290335755208828258036376967022782903895257834653645846294681590595281647850186121008897683954025495289301722897865468976652448321679885610957878259136026634122625176938301484478764209105505019604345956001814454248880128676559985797001540842882136196142919839335615327017842526329448559817513445701075388638528680721648834690116462265154581790200264026786154311767286562449487570265139549852869341086914176540672311799202109154710751787210971016989465269979448290815026569544607219682261146440163833758407560161963636262613402254647335156939488987659266372129758372961608950470451278094865037950906045463707075111958592814341067325278613190021988794673779221461312580327399457266144416152230028707179703222424758971371251526131699920923562717352128805983123779932357261545621364620398939662012692638439343848113570103632648497232861451493031906278913723096490930231516433077422325830736318870448809973998193469814191524045394885065793648344472105234612147250943433776381179441159752978607512682054792969517325694448624884390309318417042214123056817881713607671895055090508998063872348472085090831047531292405904926741363983139188426698671409626404256030703265789538406784446140236448275576033422241938290728159641835231709345639360624647301445944554339399264263255348666540796859411963811420458610523048875205719722971701806085628480674960148320198354927217934700535414125452574113657098949244026961452810045737645912907255457059142799605246142977488090799652264426142325850407371196150680059014404552761463048376861977346358461305422023261677817968244725999568705416327511100930130947859078544775341582101479221933165243334896131459055666645989897115275958226261708274502970888945834810437595571884900737552687510396389946353190461864279592438230552952411727727436859734967367522078358346075830602658699248299113295807176307803677272869290795870492745102853642245616358345236095832770153256080817454042743159083905692853766088119777952613366285341636135146592707014757020120770902056133353285060186910915543958598555643121594468059406751269731759177966269364570211808399271332099752420810052911141528733455996190895910003201283746568012204840334108201703087910327715032685978311638747224932472747332387896302213361060933024355613448122609438371007165609281411087897965694376007059533997819671339872897369789482640643072917205311744017672044593578347106052392344226770408538970460902866533344652318603611285242334469710275218295342842192260622899609578440542753084051870363240385266420070079737636047400556026254896457394872318566757461603916133682769542174865829333412514126658863616046787438091912460608772547389958559758042749911781384263739637220043316937321836088109359002158069729095999793405766060738286890697738764388390679432222071676081172367360995304186083049789647261637437926364817961057159975483423546368251267392665941503849360784528008793660625946805078217229148738131358679406879044539396791967369146287777610015251257513737753464403555045369963655443220426337569821538256933290473813171347462343972352759571532108240663433504154862601732646829094566950896029933532322648671083865933122843386967509521670268244588959198487193802456458965406896252569875162452892284445052445538976227051459933258032507525317567725377321711422784748352026346228427776348100986703150139984429950606166637093444556346211827565314687866809381070335463420931556641007920514718120664637718371152292460967626862357759018221122193896640494292720158803169327021965128678320774479216042170077081254941890398217426891783856778559691197409919133516921054895160063863299444449875664538408448596973519567940491057971560706394194569658665155986057658963153871059997260346620399388121692120073093912220447850585559955094820927221213563468533189643602968213143243100648954039171457890497946621469473351645681843584589148620776556159104888605396439828737473565131889529932924448704728857356792099604928096347488648412440657170533112651088645995135378628203070413322362783773974974907903013429602582875157552796786055907072912597502180317394496231720959732365057536430136998919405779350713579713443814592361295417209000740158821960129428414040695834106749113665397302260924554136195917777526559343578953323164687590366147032748626161832949399191301830249266758387735524429864988816308573791135615123562195144893787369242249070009054446849291851202810969791867491918015191934276939381138312298308081451216558663432732999134934465137088151266175332745224389949098339057716063651254681408400589537557754891170846760717380327022279698501646971163599145353856016310087993654856740598562936194325752283805854413874749128972833934320944770755323665180474581886676828681601331736985804466536338629940465499366210470793317707980339998953008137365417799305035297162549532167935173361091196398762583058731187272449146917797681221181243486864819974971042164993965045280632947242797491888334654628201676850381693314180067172058415321768576238494008505488810832974612414272015214761630577728145913284039053557549509238750599849252389671215879661203093600227527905593537258827904794495784750894149178950615447980676901830490952735373791464251480807428815641583969760197687610892752623300210687004612351465737310880008593950158655917702286509598574172255645469222586368689067346291673949663315731611815440084337961370779933288725121423444748772341148869952570711137845937154670412534654538875266207149857448322045478942052137013953321664065175530745648574981223290476917117063273111457641582091906367049960325699616777644331356699374742551253608181881515957883023305526506806352212741354629993387365187034114100013631414366804428930395332119371732660654915094906169488301021299371566846345348502512871423328035436140281548525337637008413230267734214861082825300480095452844157146916397685921054794748189261063081379908505596254983693655163052295420018292568199705791247440720886864078741190018052928937448015706422227653582682599028258161054762812678780398357644638805586221553719450342342921817713807717486176058387677865225062137832605246247749925281499654072582849946523744281460153644437010732210757534396174885258395063634291263387137357339558273818062493075683144080628766547701649739294200525541334258270809310271902733950897957267309880298870817890864595388602894814350764091994801443515777551532322241264970801012266301979318727845369017031776007719927184263302594369809779848248954690133735646433643945196737636222280316832831548633292201009374553542112918241797841331880419153925885812564850656717346113617995309776281144147947375558934971450607194594106646144776575091046348460719579025605568668829428885663324357113968165934002258461208665427683329588280678037429781708517036224471857707076606050486499863277635359390042885803774827682993969847041543746373322775362837863454849065599973507721022142813557230788128091214394381505296642362859527851192581019318778180958108592284417390002781510898274740323202564699036155779809617118987694663472611341819736803623002614892312618835580354156172726216559239303659535752201078347619619709786518304626439967254711119137413628732605743065223543184350782505488117156953343333189549144159502480658878031534527099062615698915603604298109728845869429847682364161040061726213182851993400069550073727750914710145503055582975995033735924779476542524151623343084001569200866630978769118420156842766318302023055612097286151700368950688274080342003305607771525630052894780380761831919112482794654584952777076443695052474435090982182455515664881529825267007750474389742099262235163868948562289213928136122087274867060568530933350617249885791691589289852248929224343853125512778273253189177248776600490431275713494870033856340243346086699854793826865654705010494154422329853269867389124904621613546259277213248852842471177714736072349925401820440828669071049135241801329857930660630845271783969797813701183461318142425111207671220323013577384703756013823473232426702612316025805559438019297532792939556284807165744531299972443089111986971665548032880597554286985503893025279559484908609632207126961402404922688011461489039256451865472815969666899219687546458148632366733661028336765704830897265788446457135738363321470549737465634122102046529411184798343303553138861978315638107053728147646354100944179233631449061726900278383033234931893360490453890294571018331388301791332824105656907401906544389937881880747921740091086441585304670114808509160797567580092353600626525956232399958506877853254926602805744203632518364309405984923972173728833958131150316765191985465527885065184379401042925690579248877599265473359648952475280727711571326720489100387291518295566335031976616583492469763389088341313625984885687343025393813903059762045663408671226418854018715770905609558052510033778180263459291194370283351977769762449058487006123948388722904303515603852603332518265523735853214715129030515260228592835893159368140130119364631830906627370507861153865670630346040668412870844706501354747642337991355616699141883683385987471466740684751035252306562741731220807221387770128928005478528803822387759616330038605929485222370791420899202336171706761148370868801033845801896294900271324634586953910628907856159403548501670289126879512367939593315275340223084037247269389589729371879946267410665487366817666123326478455429735084736213459586672738983180443171444384570942610656000862137660929405156960267612336569632783379490720752900191067340175592213180217312395251967132805751559388055896969941554626552166683023856686297474313962775334870318986786125307429528162407981138345876725728346923184370715473565595083749877906491926342404239442919419649776885447690912290149426762219382522136720215668064465580642559585614490737620297494351909606050494765466147970500852905471317275856451732627380656492478957746986534877954694183477350585001820209166273724939563896393321321607577231395778346836686578122539625166093367734524279793173844128526716647805963730356034703328709289055192072553402004374374987231334431327710275500412691078651645012608841046782350385685765763460046742232029954358236686407479568029142851033369501694540614460737010012484237440251973060104160876495337921908140025176813372560608992837894742955772690826478016701486069613140413367355335673916201733442563330156483460412830438167136809617053189757181472929428296538046353510337894530892279459773116406741757469046373552577653750593931976154649042820748622286828396886704289794287373201377431621757776950787091976620489678097917426339066523926960891365608230837849398424891539695683569278673276599385220496119041729371957783084219970376123643487308357177778648538356381465044004731600595208851949080470007523480192362568215962254429078911582911996707732867222178138474997438615959167030163785345487085878854751041226742133202066828422918782922340416720646841302353075633323467242094820864105655187547079546148256597835039920270391136190525370674515034921805453629003083179765137937182236564859577761109203026326697732873360419069620662758799114423337459372557527362993326577395020865605730164384041249854241278747009161642889642503997973099397675677522649050369008547678707663294870180182917840446577314228901403992336702597977984423349983702049433148358884416370638262409819479356928540717011837164177004268857860778654398749587523757363081666726705740295845642996252750928529791390073502716028003504238819503586859550956530537450677099198250039886184538589855751675214110395699663883434164971643636926428957269285499417868430429120478124990800077504204753639678350634895277648465680962965726402333751542013822046654726033592291609003106875230755285775251742621012942610952583187342146811575724136622743302877920510146524323100454971590466987451284266488545123615584430787059119525474742727064371487104996453421072247506700046512335507829622596088392224027164091608407883687923627380346151425838060303760283206341498006576084301737214036934465877182515030989720576283410128871558910994494149145286093135030368851078675595556500040400208234784982732863693762337512992200417249132264860490607000370085011631854631782061611160656495020560584427486243040312825638011819147705180185908871962139722972525717177233815053107450033866789310722096717597644698284288515350608881371629023607861742438681184150994425201373081251262792734925082652558598474399456341030803481404069465679568969680136351112099121749465753408249302418865294876885883503160937042049629835260164384781538713747005470876233280522501487893336765424697332430428904250378301539907088605091500450171586166364806551969326427436560673289818982650740788334630982462317533541721746704970155527259209909605330121452817255644779200020340531590761916490612573870568660208875970613965953533407980165296226970804290977969822731296809633154936669721720960687997506938432299315614169454473274180919717061859526569653216964741423748401973798288003564872961820795791661731744122510441882611203440276417544940301638945590597018310233938553651344163447910978442329235197490604353670987840033989343735653745720825985675581453822572022256593763355376869767558843716799638199134203668534986187560376728694018937179736790487399303131916596172606167535788040211048141767523714139093738109458783839219490664337238417654106940574070230307680284297282002513446484126658550753017417795650080459505943908441676547743440895737587189746587731583109269697078432009059594477074818443773500430707161876169404202476991238260285303362734858595085423153392950434356567524289346941637059616571571535692265210803020907043711933979928481601351662791960930402712102743093134892135945206320088853368643880035007897662502407496048325794308489395497288731324507205181447969021821442141071840853038897093529059234329070319959988744010886936555735969325718774665057464078793307881679905824466366879343199151768588215891924819720993220243986419389948879640719705299694563356719845343811591991765994861047810121824631083958123547942599604757592988623072761623314969707110914685191951617781151499772123693674371883200185887269269103412895701842863610250540026789426422911389359937940199343840328539875724935036292818229396155657870435216109197105239842578198805380313838389160272320917756514381668916187533930564031094768858747518881244207954812709242713434358265869836436782473021395510473628433381451332778703972265304512096882334433031327603141673788090990002439250669621132129443525061350130179050982462061155449576542596716371882039476340195677748935390781615190889987531484765550750976418266780386380329065547010259401480606900866622447579990027374046769780893770004120768513848808643010992016727600781245205147955988883383697966486421249112292561427404709830168418611442722887477991490560015013042415878042609985013601175194873546267653910073316669119029819582749038095890342133437309602751622566512566970859507687477842477813856997820053130359475922552896637640043069161991039931997532834181940479614484168488429731404122135280718496275448551860436488652996063599421586545725337314359822188921573943081091134420602454990542796254144171439278011660154681298183720135111931268776174721380687303226497550694794504044234482196232500726155195576817460679494334730557431570889172222553858863712006309266664263180756680433731250610436529925568938554758685729840564041747776569875620284919285686603190649588272468614339597249632076159783387540079196734634841871997050790396736188843529512398063930262009298204319663344232127505953114151877849923837729731677683031730598078228887536781845481090147714765523327919342618080242985919351898049538856945135391361670838347443384440352792926161150132047845117854533379132647369594604210516549227538599708359965246207244094387161067670486827963490875794116975058470345702227437002466895089391711628682788431572270451129364142411990209526521975763643081468233506213672217653696142334939665559390440768565450590780051812113345185281850651642900528971834350089007290419446327571789413286781681043310294641747131763693751845281695771623520431618873039214785914338284533478994575654848526110535456138382983552818448000475124694007671519797438987573330465100122305644164487963238034975633365103525255996347404276571692560922309640929407929618848884695856566509544211153310052728026593745110056409549052430293818738990237257061577500277959263796474932144005655731842635965947326533568000571053912850414932291465440352385111496193495880328361642918779004486005324821956831232000189115256625048449968808381966713101712983542493745117886712988697116681720876964405415653072789767894462330500134768533576162053746332663810077184200037227945456803653249496443690012724276031025998535534799326472333597789866672627934038453918944322048984578047545985824179009615818548505897006341245905150793810058018886445206041609744792206705034256545929684949603980446741345179450129491830892218437458120035878911480170352128359086929019389927909383502602604993430349594997519703466935646105400191761388088542228103273532403124005061678461886729416635863904829644763000109148933367701626585734294516071840005780329064386005335037623342488512112462921170619632058029805843551498575280377282120879371950085418556100662441609316117135838594906760791417672496987700442431822289656960732122592137830766560718873199033261903219331899048586821652478728509760816506560898600106345181655132683145939193759585082761045587079952322210045067645479079758685870218257294514050436808603369883508407483109763223294326905517311107427006313806254641676510507612748498403480417270382635314425276800594272530092316240814862606460617998666751984434679997319867860089884813928707160306339810410206273604315975964550144004348035458046009162081022703675542593241217483388165106677755583836897262724686648298374515760418914741780205801207237106429059292891647021948714711562777113714785375179785837577751981430904478297538314665412527329423673055987263583980452425247991148003164966834373238001257435280562408078664953946584729201422484959587145987684923187273969556613220211356666375506947800164075273350584561457528688425662769656845955294977487132843249266894877587671456969152775534988460418465279196239693989012608602969173186694121381494031152172799744184378893699696494643125309057249638714299874242277397496080682813951186210329006078139769243440147126090180784216608598397568356359040289218754964333148507701900726489913111246156580836955870076538298818268880359205340237873401630443972901513961031624344483825200140177740622989327436719221339082436777977564312858213836859362321288141177744129698557245671038319423983020469536956726783650359503398316055098179028781525898394166651199982593441293349017690448517357290201706812343136511061003367036765841024349203423135757311788760469971715020983602915383167814729130801263114039295909622975127144672842635460413221749693883962682888159509095071591178585548202720621709299059082251014363879704633149540391908711799234808768348735749800895687183387228570687216736141312287457340606358534077241906325857915324433005185499733062911451786328698703705283094319315696695255726720167469489942730417552288703663620071287741349979829740212356877601267598547312772800827845007679570481911332083248990367397047791095845394868181673722816030053064402941174489863784797734617376720774712936287102534688821987283166463918909658357924209024504732183051063900621172966317374813905928958963015377603991091612310559620737498685639243594520418117184242805965986112382731030388537302229947407757323665283257575726066256842383698238001370816108264210631088848231529365605125714017096323258417711941225234744646817263521447371758537568813497400270680913753631596057333667545052123514820300828944241075619589622419118861143030806243680081897316816773169254380948708352151167634461964953556618651180078648150602785468388067352299276478402977667618250827123068950508351512595661652664516182664315634540118480380038132458532455298323527493056692992514043698604909246117212207301292883462495105496369280817965610745374021357348346123270650798778659629264079657319975201269467135097280750653251644959209519048215001322920481473839520301387042294971144276527566734495659607962494148257330405741561467353366504421391525874995407248322401171457200392467208463888909504810650206480077415013565317846592584996165511722314288525044946327343942625916382502185215708047972367730546043550579574994262613352395012103132745058520810095772757993572616974993564388216150773576406523894293345161100364406009564171517992246004575804362886131583684366013693650890042698011519878882498800579976211386675876469785131150770777070750627437261600330552815988341995383807889946632072840296736793933926182152752935932519781872250967856924910664137824784589588454479578164933102080679484373272740771453283783886156552467280953424383998671337467088552294121373321311835910393918072386719813151909209577718460609117664892052081715367740713934037676155106231506639004856462520030882116922175549476201786860081802401560293754844248017180489005371560605267782153755325157954840533815228101568572628435837667960558951632000378833113633183614871234516934698661331377408843361434272796282850004991310000776352347643897690920296402672771889479315507598162162555184332011559416556607617826401051689116696541781161788846338061650963623880880323397904901714992435719671366224812582485654184511933345401506257089894296837738482637788594891871733129064525890043617668870176137926916224709461419118793137048038939338960017109732472096881951201517653162829934025515391408436330171481988767100243594047869300509168265697018931446367470807094266967696732253164551119543101081356503335977279994744425167565181869023541665490374942945215629088657907543795148491439255563334929979508645509129432039096046896816193434893118587188662403303059474781533783967303315255846172062031005723380823312590228464329868655595521557125283395327958198814969330031251519248420911212460452356660336158129941314980244863553253988364241460392990076968149409289917693638896497205248187839482262279798068054713908721101987254429445413154523542788111598770813534846961008549007538220570607315725711000450552845041334740662684164378729165207213386583378355417919978155874225100747601020094490404332560463606142959828847957553394919655137356471280096816598130083822931335427782089507733769317542052799786885052461173565720366240739855861307435782785592312242142811578496344117466973055158838742194265408325695989752809589179395287791658835806155747376542946680570288510721116816158900648089223922067677453158823934373016083202400565552886602241405081214766113131504879600537676000733635133977002760199467778540070438320332433498354208640244954513096031962231192564565025493504893585100224898027193281528984988058277991842452375713645043204146997506811657266815808550478255554928456241975990071015335083428628809447491018282952404023692028130835496316591909253852319886762365788035949791526318295312533667347358499972829112934424900309303636559176334433372708351203031758290154621743434923756144376941932178928408854599293403467768321312166095966182352688576768279735028385106980454476846253134224695959961786514398907348114318746328677924108911718180110534541280575388618599904194960378017488781077719157593226670342627133744835806239877486901627143256050494962407051078183490577757163095463714508709038985633205997277995775135392677160588693546350668404537189091004753969108968974095920582139820714591001657661369237253912745500546576721188763504872609265550564213460532767514984559630404274150651182885611526212877863238267088677436820246964136405277439609138292898831381438806329035803246437676086921261021002593202496516641486609561703607970084954666224287732937727413304879706652116646418048300002727282641865930047328287357077219635391263081926568820822329183879048347883323325709636671360730138057655872047355703120391523902828193880270797816078582371327319429586046051921755799263060954984186461973765300464585271290003374989975513655108338453460860389630213932734479240877150081421378124406038819307971360266465539837082070620042476214895332623267314936078909579780863572319204497158952180374562872476803625838431372463031377029742716634663298225053289615251620475818526855070027878203651766106139374520600487662938823591062435169783133368471555301602345174109514965934526152442798337128677442454184046226393719090247621192746180999001522747554540016820023909793328845068338757463441081616991286977097168379084853333412710243893550651818425915430146025784220683879739976217436771469884475539974580159615442247916725239944701653469649016102414462846612459502752179164269267916061691765916268794130846399624931876471700340722756441958272040703218288878179134327533161807635633107252517330760006690076522259943555643891734616856791567515702439089685565392834713226748392937532660757803210785719887481201284400124449420201959139103538202814875949730049106098067587187422996267148393788048927984327741388419080924890354040824664197036731856979160410470040426807036982345565707227935831794551319807185757820619396766397442706642147731521620082996352644827932397399308281745070176884575705889601047616688336596338543294514370049535214344619430209915173928957692497934640665218739811564866549509716126304653129709405081095352215093292589447364136950462692729217801713525568139683926299513300562475012664336252990945951173054466653923748466865457115044256887160546871067937865931802942540787309512127302559373271188535882313587116014283495913622788411211530217328303591840188047924588346823909114192559056093272705651807864504744988435068622679392111329889765277445123727985463764931007405020054813341825400901174661131718621840092221294636183767075349822934778776627475346527774519975253386658101326301830291111784067690982334432061723077396020083750043265640682311100462962353019933293950317205923060168704850804644572181978000504857872572892618363966177876927854173429262548986684335314370849318785289133421100706388354438414901342893183776878977944982694593446471165069428517239929687078255524556268378014765557300038966309626240769521298393920139073268054394548188196418244572487022136005830155317680054293284736684189907407146734158253996682374755989397921240466220176151830800121163530693868152512910181388106573311489871453337515355182844464779764649892251694385099342625833789891681497071728358976167663657332734344289529698374930335247046264283732935328034241402919754195536521116750734532183907585907134884968661041296999136351890303082663268387034117258554876044724458166775913466562069003280378893855076166688246095085079969395011517565181021807789032873040606115484986358866788262986492624837939283771236745908098616404860325571385067313496792428376583836673805639042333987908221981867620274508818824626679220570169978708650866549925551147214759207233602425803400162321664493470678855537506606305333490790944293009240364187624739861040207389058649553738424954659418962111102331797203866940320502769890045231642241657868291195139822144045499058903463686315129362201801591864748255901693611609753828546051099502396764481800041638137875531063218648552118000176639941976524076724217858933656494932606674460141275615698674357967457266806410717014604348523170052320692959572810090336447073183622542794871512626394405209083461812461281229244282018592039833106212472571065855142463013541164450791308094331092274874009304762782687795769757484042826626478335785428949209845714760837704939330441222049050620519152094609612155979249340589891895549137621265346435962287129137403214266717041199381680493900258057885295462115752810792263534607380706383221212553171545865984916018030817858358295037287167314316083417031474115509865342997066031986729619862430854396852209709240537396042290875307473131207892136958111083263706733141598435152852942317264958691555741346900277749620376280248720554610158847215186943906792577599786607080119012506673555883613274137264278872733793849240830588470515591888513937167422653290227506080607430577596185250859137508267399201382072395877057474906200264487620379339833353985436187091325599684928296053166576140576928671572949845740281555869028187328395510795902587128093984578058411343701790109383776210949346562728133771708356363315087767123151724120167941582117910510572007858906198831795234127327727759436860993825940818966790756108168739416520563796914201254620118113919392952364633848234237662905934992675976907933486968559743673594980118259219605696842030912677172566879792021538065977318042876312473685576668598230506477299281445647292193528057452039957540591731363280634557498874103593783073817929016030653169372740342732409424668702624981563896609942708514489767420732294832110355990077697465842871535579616434779944412771643116867850323463968658165723572629596935553305237452600096871313788829246508889497871399072959205655000841128167269779621549479791068918816789410730509408020480269990321965748442742232056191905600522620781251656168677129988932540573566825302940038683477709050034557300349103616332291845641330878156376799471125580833513106036461183668857006583537613888165608887228813656396784655143407522715722865030233491246153129105139286429140473603225933815717936329015056236240860393926758859113263453400502074248968265776352723131031798295932118189654269753934980022480504473458112942658102734326268980009857959066761047482292365833878635577990768573198988484333142252174042540114841435730198912939275553459453561749065818466051399309648388858897096413516465875999596526985477077608028132145044248742198550550023101078308356990822011153151155034816647309571940940527623749015399135703097612797036390132376084270764744294104974357586238453525013500267149800591919394482410925114418019897771623137903035119835199042487364209168612711552705453759604487086305400496385216801276791255371764407999568668319152640003867687315767982248157647138999782482685136190970203281758787351831918821898111861690635322472742893976614357727486122586370606253179229342603026018622450772477542097629916978139578549666216843072645132075476527768018665188920734447536786597827761046773003476153685098143892787199139905859863982183735048258515683690088891853365246368140009207669059734100963753844108193924821877780689257015312356462586644261664756122601111765844731255082155645014838919513169732161441042038506467333537639211795554089692979665700672518923471966448154709008517004380070232599953199552138673822090430369441547308935091287448033392575857660732677979776324570301083372668105319556002755395892248122885764686398242454056800016787818751265731522817421735366066045761223649751242523523227304479317720302937723307774433091762929862039229296081881082172970154738835452811544535539521520115962472865752912013323337481757037767287384613188225349761124760175405930298165067856957401077941702422767802878124654325267193809709834150671471447056482291944203004615194728782512664943140024202215486108818824208017611359669285370885860708693036632958886808534063679760015429648598448677185716224170743263837438385526983151118166182206421448674694630987998501462132588341602331640562995245186031943062358253457754623133351486483928009396121409342610410403236699240342653096355398207739208083924084215469036424725481681357054120622054157114329267325289664304295699559639587899891018287267774191069771010776451634886991545054492973335603675874733262854898367510527355423616655717645886956581277130827798483038262787559556144884698273138085549266688296048649452991850047534514322576422230588935055327897198815315857049828186732794311940931257604839434323505627059758316103135617537000400085974857396851603189197199936060472970833824824185900833929988122585506551807444847838979105657818808617019613716528462182160060298945831678076426168769388780035902757287254531466550668077301825314337911505024361801350130572087049043636431981297796492317635230835427215258034842388199256817002821926244023831429488234559459100763365903731395875127134379819009875867089633783233809422873350741845037665404011601206777529022307007764852131254511755389041331796215203614643644044122912861093882437981478246702806910366081515087029731550559124683261154331315091971566618467521139315237815089876175779903337568134169809607201684975347717876568468533814346190357439566303549659061822621922892458491102268603808345874602326492286546493293162706619711606690441470513415820793205287911231254947472864803091882538710156476423685611717530455694295071696867775725032829340902486298657070408726578546860800842976960489715178441503841132476710743449418768799592980579012601736762071772075940055706662926175031770432267816689360655468274908218054841951930097886431068651310741633816214889067188799137320774951328711333994088022894163442893045893037385181847817125187949256053348262998677639817725813043110227700395282233183987595240917515250728010600553288339138055286699676122367963092811576278086734254713561883368493391755214784118422141839041291446650406379837121885687776653648335077395714817057476291007936254364792563174241872087402316274234300366275160784024370291496667853794622836415291072768973078130011080454908836840028031954085907496794843851497650532878109303350951234478349460865888163545600764576160472979882734753817331890196969146973425275589223615247687862114564226192800252635065692649097066671254420060186731608751275456852986871647161965235908056387995767728475005852544111319612109934151693546586502405122255207656494604269618767664716361822909104523250180073574897820525290554873758022481706595475962893388773864227727350908405950331447221473421531304813971838415246679150054238179788810390575404651355488680812933583199366798276978806177749897031427708565066296221585392526248821678180502345928908815448644457531358830095118087879781935709294076238605064322831372013079716973004819988478728201754975618692250125206560069380321554928443306873598271528359722773357012815803867520308052580225239922437886481872434052331915485610139565426906266176575267494171062241665371293660492509676600780973767394709149456918861530235594749893744582834435501605983046941845188566974379612645015937155822140144676659019661048836265312415140331014091190415414714532860337185586234279392428164879974072184416131706912214166175793863120411970128901008085655242117630540299566914890752136146900860304548257372485411756417974009000427634591028299182189050250880375228872582920438181822537326516915578957568892166222255635247630116563629384731492356658782368306258955912517521258758685968806975476488657324907467710255149364346611270272334315957632348802933195076797587989040685401473730906838412508232768704038384791635165480081755185419578336114880602051205813522519627917546728975800190348954338623042334880263818580590073392965624838177756185721130078266182771914028533732366841653697861654082810519825932292268419486838699304308664481673812366395651052251315264818918084768083675151580010323920686532098321784227081360974822729414971647958788722644781829153952284759771345970526472610276098739306725159680666974214945541297571203825336868737659381215915293668613105416861482182281105633760363637927835604028570742521517657542006905752687929133184237313532240760801050493521139837526017759756597397868158141392977850938149614537844994976755210332617547842570216173013828807432895155788176588647140520341488248421764152397748485451063151321508977058854523346642773841759729342562039039298598510860805077069763960648749120172619496235792466906699550371790711108599227034037606656063876043512170296324732659224670551060131638609938230577526013218831580284968982452740250836078540974455685940760468597392033670545414055092905892767845511717206577030099572392895118579909184746606844946596165164575921002986754522492762428436736309319023981634073320682016863463448705668365362893850517213958559055965240917320757083381665148567523041864414358864343246679203968922483353383488497953201850401565793723723901611643672348945640842244381766166780228583588456480402793998069230999424247092196979795626169924362691553804162772403653186278974688329690809163159974339955083238638333586243814167628135593266256951381307400593055686682118420486136168012773447594207086776310131471072070623730774111836366814792507143421778365488626048006895709307132914035976753361034329952636400573256963426426334498883478698429156771276182278265859833245480514947900360604303604936934620277683605456244947052257836128432493203951017980551152578870853740905600002764615396860693175386140490976323177637317667840343124060998383280005128858470170459269109846623564877098872344220477325203587168815671539945586088506357942736662383598462810439348180187784792010758386769875880809844819062792571152853141101113128646665679029761492812448528437383312850577700503020485949968967523880938371941192450426940982244399273046442079855044148512596235669470942329584338594090361860806305149247183264689429035051692575026710676630235442574833138800552582368884062115360572923412389432628210188304003183886500372854863591996875291566849219688143210857736808215176450861393233566101999277096916018539879649157170095276345105873670267163012260732433304656473203300278715127037933564868351445315988455548771898876883305045414852768368041502407518065499787774160391368687960856454568014381179070848304744576150422887488498636187771871921065005487877519378486439130201244008462020774446795729521299169907886988533396383162258360662847842880592841370328847656194600473396300458775639533336682182297681094476167505504509019031538984826382436259751657514455903131256310359503750321373369463644105305624055177934196278551417618214785717237494709665504331796706554167552444850098048775256876881677192910903582648371368616937378801259480353141738801470999258763898070092553374877612956651293229345415300516866626323118814500341874497158589228061329657542789647604205269776805235385462125771963507278641977772939509416741826983104841242976771005752865615656726736992141604587699392532519660584638417167370807227638124013099998295569354970425511646394751000693612815652591797903693793283652978975607146748802668968852282450355136363771463165460952528934230883011719309009133668733576936080854232208829038491543197727973227007660783356890381265142139704361227983031746795619914657528470371874043656117073982987879273010982342144574430409055716163280186807594122892283228176825426996925484460487311888162997576444142822743100700705462268573999501662553500241031126494177544902012959090173911999201041647792299430459265780585144769167266927493161471183763257059538140211160357713072375414186623966844027531213417819810230790423961568929179520818231078358929505411767498106551260410885012454467458133498594080583950274957161134483975423538772308718634374570137334401910749429235491139453131363545489583192875214749694594667058975795495078345708999005082385840139422438772948132269295955623652915448800950123724066403804632612520591162818113372937335030611280359707570296334917342622702593037013144478331986990809195761834662925432712364916546942543478973757722436350167831729235593207353279696391302661803342599849002181380456770830253704145470104053394957136501914954483950265128648075256016019843201560396426285665254220058037877755152265685359273339361827806458526563922845374726332180407131225495695027762077151625210117946839258070692944635602493577871357172313000634335649782724472504748105401360337957547891173335913239367605985843238733906174310230628775779602970267415055629304295350577165736179731391041555066602725888290011027891462460515298459972493188851182224423767996870104426167808359511223772373746089860982648314758589059293163463778693689622488681038446362404954889618657288263426365437886313729381165667877731161295641648366588435222214407004901033244877024146081932370718881615785823451530443600154995471165281402767444845484027886028859004968690133990185618757804300183883091293677017016483298678508131585431653334962649814313028871269496776436705463227315851027446687127791725939743578762282287504461121926421462313437788391718064556868682431809457794521944503453170214523628503859412360935892092799264062203289109523098125554540954392466650315309818693987981199198287657591898822822153139514861582628551424823810966827996067553911658679915778972559143837157165530317564659961403338507959669575369921363300705197472569626100714001942675628421376351907637279566521945801534368571187571883462045783550354271155235265983688054815041483593994873446617083112139743753660273721649468482369535952234981085198372426602388991660349471776311847415139801257978304675244036021792783841764084526829959189744078613177077855336947198074438601171888907617670484794561753456219401418120959249368383629645884915808719549225442542272737000282951966406453032694494313976640643400927802466257758224482919185149756743938395170872476646798911497163694248235287618953847007395501768157208352503689926324494576361387313685065985347624900358716499933937412573704755677033368829299250156215175714324781952533914345968204508736774494332726006307570588367849247045098815431629460444692693418676773987662909656360089160329359583336447590479073691136299998189852310528220884394523804309755659618452389909996513706974371781466524752223550265589121936944085853718148917605008689165586423445652905875274809024693709666161992993199599957269427123200028989112306255659846685054428083630237700825223635171308541911896095048918069918336034753466918020120773434953205412080810346751723831229074511624931038905493319180930578366175545443496559832865500462598123693982631971906838178681485974385355781703696928704716252480957665277789217420735397964792751329550344019789785508889320491368284950780828063912657806499047062961171205032680891295401709515743957450597279024482211587051615440907351928251400700785895446252432601266927778628370617530554542682760121150388788044014839090169605871089323572732379048526385115117935019014547599688942267902394472485466251735358966396584378281688876564430663033269507580175770888869578373914699201997047720963335732570829090168179316767648306288691830639789409521343212445028829363515711933841394298367508652401859968268783163902285745987070235533120468517902470961714091314206680979304056397514284131213902299530441270046825180639089441694210023036730151759370915982207877972340424172661785781618138682579768233682890755334266652169895931992391997853144414582852867131073280599330424299509811782820139861074622104142284785887211382452634622257226540035619734381122557676242949557395413174219728497093097459519007419308346211189815927658786523382515825816939651324588453875884623652683453444877966539246780763148161125728800721803788443026603683869750164766469632811560458555722685197163737164051749980932358718255336900986322726426374919236795171359395338432031232301082762361163265278905649878860762654222999247438391756574359846894868062565133275533046227384832404499914824820514023047533125793221530751570770461669625827807629049115161354693787781353885700203707207344265512114287874516320906934808207894877821781332999592205294849884511914016717857491985509461960737804261389417307029006544215705402940676588325417429995224578113420383103277797400882321850131100676231019510626133348069257798169124003919419301274668825407269561700874617581200284262627848248546883823765611342983138137868187883063822590695928808084125469520101156948547114436272277296395531947510065808083969418590305245821002298189905344299389232137374087956326308898986137078809397668293772087900265090405110433542436313762442198618861969836332893980420489219716494236543787766657512689722163071403450606795649912935897826802594245566439596912293117700958028931259518806614058878902905594323505771838399365020289364003009062568075409326058562985586104110442924947100598786592800271374912894109084251882056967280965726532996000803022726966105550049510227810028797413660858996325471791253707581430180814165982090906593261843355429665548232732917037577140884356384965832222719342146794151012066579169002455524785229592358360464410915358648332091202928170475741705904473996248189717389264651094306309622130952764718149882250479724736501656961918260220068266881601026551418154563827488386312507091466172458857263580424710716457105460495422181789452834608870386437308121635884579104477728195299176693517906668202489547558207105772513531153129244883554602642146316663900789515723353680037174121256878659902582138165767698304808470058002545726903554202819604369154822799940802809593015766717955579413442397550178985556979796292254778450219188931456777249079010132812170074507521365653835837490509648605186507593368267429409007369494998086130723806704789491266433372565600606937794746296953124739310126562759626764606301068065688669113213317901798498076657141510659421703346883084456123222438229729286375662169636793722804085526562558166771687180470593699368771136938771360790118655293755590333121520105799758008952897072086819155780411084635270125022946123549321684381910041417154927389134621713180351075463167379865463687730838801828576173823425580950414310695904795315020620644348037817625889752267130083947626126553612391897280329031175954854092933455842791515053055885869535526859168555722716918711435555194644075655019913777450236588408327469113178251463579880598944305756234832508957080477769364067431798303331557641422715645038068410527760997721279242032602261882871718597548981279618330737142323340909773474625439306536151686049810408120147171211376537954713762587635253105621873501040732742233454573668944733802609307008017244680141459520419998100773021452947973496996216515631851125148419500720265582768830317670494763500120247277155543906963072500614977305636820628821380339699103176873604480807648696894476769748512627668184813168299133070174896021117049477142512106666475180249557711182699946560342159135879295432711791120055642674182212576815037175542270345771292711802116865617036912566670233142431159123562121102782726331331303539058710404424829199064538434908966599211574565915165006689089128219203479585627110343851021339796126966293498748098309990624612857198506425089371842780935562780403783947551478634838241009529892403904542635465793062972453331866604355254207792633020378908097938341025244823289565807709600568597761919347959674116738757623649227415824410378236021710374542840742951120519561594720956487701281989021447529970052326066918750599857413541487865152448495301906103816038722524082041648639589856938624713288063053469246351857227472301593175304308358844624566550120091475546267824918254688360147471989721908256890776157074183251299336788979999314045292369966106517416514400631829242141780295894613634579728851477882974624787404345899938399770061296269841391155022886993598717592639169480233925072357023477412758115705334221848760674015640397213933935978206421511934242566998337978447983846780596790502171018240433056152948676047648785846917446805153748986234270882636904128310925246065369172769212506895277594412346245634413252913758556828921582431583869792796598921514358874264444724998237461781679202945056153113774320224315671736038182545588432591415873880689245328989084973030108165306580157314582844551858051382043442276410076589971489013653565347523861310468971484594700609530246752342341858484352728820862979399449899078598972456940669205032247770998766580164933148090067105074560773526721575047242211085376313956702701030522902280158321771041386827311318062146882316093284748369968581144008371152970254083823446111032528685760696343514597463369946684426168185355983133868321579949148632001516137898384130436653638371501583430159679122065542980244900710577214391797612868960568025125337660389009882708230715885613775667990107058169341536466571598502343366972734302891708041317189906771175801862049990959347118860412972706106326477360024207354333335940017581787989351804153444354327297540234312376742983962705942166534342535978002667569353681273414376029380054235760002515265805733682260211155542971621195655246072912695184725917239014516685501533462724745506314604996314020858275472117342784097165074586093434792508428888554451301181714827948735402966926072069044966374416811968908094191766857189315097137361889633904463356721730119051926980188731906586257487596942224702068820667023155040019347827017502264848872345798987920265552542474383420934094276364915252489940451025047017151881390407608755991964375935101582118647085737997464257233948799861462598101399723132258853828310317611246435580376924134873460067523272189564827204641027320075074110944125937202352823450914371736027954034663570630106725663132518211243936144828734606953243183990945337808349555803186312033789679752846372703983955573483235258011409132468837048374361726234506733226952124292509493195301402011666526166000401881176454371407420093846580754429626509071863173362273899864163732750184046119631177096259368393378078148580885328007779525269790277764559091400526486993853951709823417562476075629771259140342402981162034792386983400895820968364721720809462475230267883960297520884205829758906449725187866418540000621020806712242069866593732965556964367113064461940503883202868263702442964753781309573617515548907437683606427074165934827717534537965463516676873867276324760572337390061096569083257743576484424622077863589606697807491264929125769811745459488040843728535065378615010680577934749901812657016506216895183503803656959338481358233611536590490191259787727682548110096540111244667096402369772818656775994395097959026922295232182405294268544816168848334450625927648064016234718105951836672771635771453297221890093658957477960336415422649845436270414850567176349657113373144226305604431701369399413713262157712265392992793654789477219837629718863007300129427891679978824471304343131552921577751773086275162166742735708108669541504386683086010876534454648013396861813044492710150028573103860571169502278235530144893930139058127457841490902401130067292374996249068401782819714856681105352506231209690424155238313353756237172349709342784987053957844755075006904082535349236161821764205483595103789343525737720647412092019979554546626628601232081105808002246923247550593463155303894728577795882512766830335217625638305994417899909789213321596599417096878164271481401855641427844243006928771557478901132290319830469010574809321872327369733747346497660311322640786054825941002912574650280727287317177401572398451468446085692225126201815648941641096368461040796341003128133200677114775104473905646909141448078040528342651194680050463876730047230388243150659644978232666830250605998122584124510734543404245259589907784136025359709436382981248139812044204561512920106890156356865193243672319960878314292160526716089092980195757427073304113906570955325943107030472955534845431580416740297746525213918062174481500014527767872836799672073751098729534789336401469204221035978338181762875600098027975876255601665705927898280900918071351433838289357207690741241176421421574511964378547748893199780922707298807059286006528319935097112500542112147883425464564628479272970837054507059711273982462442234908253001041721628744574144594389192281573980272358842418597077469568504182046428794150086048301634337000005515859181755285923645800687287614523091241061756109369420479340037713038870237931245009043229895831086781566032766881168043140941114652771616343442844329760739708203067776525992196712994865838836982017753370495240768045750816805347504319513894512151230361551681967073799241062141216580191023649214780282556771655431739322756299175007501086699231825605637358672022068502046591046117579868337467043802334711605485374569100276632216122844332190710544452304773016514558366090315227689097190091747955424914532045983996904843420426861299053921846600047805992884339007506785876220908143396464741062305516732729201312537739692369960386951918457791931544368447896499568063725791523245887478154366009152096857413416810224371404215760253576276727310135626468752540202341323981017561310183749614726878154006174782856067184034061674173040148181181390603827205886993574904414744739051680998569602786231879732400393384950482911089338791198559636559908426988038174240132400482908033662556359154501903683743504003579218603417613239265274833557297782045833481862192816383217744239665665251243471225535750431017282056421319957455808252856010289031363367011357293716552661070053019019803407298541127937758436338452042040571691913136839307418640924060647353397234065358545236499640288750579766503983514876549126335954429898845545765632319908298090589105926892789740523799351965194063184761102385263986404266739733549014026847775709147551746660947523089178663001377835761215278519259459372715581290097421272195721154607131141516132767809147227104733562143765004684821774443205305560366398023041081909076399218486806069972745728774971597487836927517522483464382118372401399056568335146855160658335497142886366815645788855650736720670769522245159819776346173716114338663174761858872925482251680870078243150255576792253486802260034478836529380450902196439937284012256067115411297363549325586908244711710694486897845244690063621774002938157944209838606629513460318142790975563412995502909240347513352469492317229906648864073626377440635613189505588032365143651980556174197489133908612242023680117077604081533695902003145333463582420947176683908279223902358140451026799486795762741756484816540274602535537064873519164657781153876883529142364140748539604791049264628829008724270191387163147567855634424333602432910243873610840823018655357983988933353601475948496385879890267949214332058055007052577165225249664446393509376344822322583526237349057689740285438983957108504548991099440357148860595810646668101404448913710660521069958279778535455302399014777895087773589218911344971236564801309462936108889415947599749314870187295803986181030708015396507982302722618988086187895515151504432387012126958926455638619839269339184087330498763690734585017960594989905193408694863514290552570973427917206210388350013842062791809260663790364652438822604110833552190611355710171431796858959614976797596937002241634706068174401821532522509419320614153438855198091153305202659272555576094641343567572143430336046186761848081096785306439450598749003486985686061853670352602537540226175164917192072670123505307611320192398542693637432226660746553094731792347657304007540862687940159447226770368432257255956030806641230496487101718991647925341303402449613941521961212338326128820852451104410103008482041400521429314584656044234245531775464727853373534665329762751980204491138498505230145158822822094942459210594777575975021788514012834792395952588442555010129162824298652528287941302948444474615696920493324528747865105674136452177498452381944655754457220123463812729599692308362022926159987451158762768916243578960665831393973232983423653391719611397565724262009544076885184223513136809869921287831217228567363567880770049619496043495981560731053944370643562771370224894874959073438789950780918035005775648799651792909766741612378643054750211433103774049005584149718752451445402637485208661639148963682118350603576647572416173147682202544044662057695468394578322529099343248896259117930475911091937234945923654674899137655523291660117633516117281233135066177913584236523527328742650872541743914761310926486501685051962423108549879228228057748843676110944487499880055223706305731274967802443232376639937634703866941091838825110299371355578825587149093354650032605706422536139999721547070683356720274438426399783225684808120517397019168521903073807170578063443619472878351353975486843015777103143124428058485496114208436104485705130110932182157381528905772818568262704237998363291011219831329038215932503542052148187834406604127970130014226122358532377661961291388456292648507879323122172511564927329426855684142875874605285033777458686032756111126960335788238616069690966590147887152376583030323528289681616235876759168033779806223975019357354419436525882642330355873343346126984092643956234534073670870060781074970420908191319420492193796140711648191538826775644083869294552269372550431679249025278395040114113872375358319769573563669438426150960828741198442199847451476033849768870293984197798142794634644356967467574307157602970406573935705911570752266046157595390963014673878324391633597201023031931745651480635141071002924777705102705848290260704958145133146082636467258867032797869738294537107318809342830778328476298935846006012353341316882916097789303033377453683921271985670734021082801941934558050552408680795754788425663777034481009231409012847335200787929066057892135873372888832193473170219273597370298267065487194944724089149489425640034616594421506127411003975032920351042093635205185126637358341268513713150094827944382566351223953983560507572740574428697261957579078125977824859253478103061197424420341859535520824138980668023190168034172887666531821441650599053573650231339642708246424377821847331190835269844499560435611272536509428652695183137459056977088681579386934337747808629055168179914277543234069546664584895922991971433236797571614688497293519519819830922689454237287144845179835056005234667094435671601673859776061422222652621636738486891573874581731982801430660622107002145555615191364853479244902853596542401920164709000358383275643621223781634380681462224074474051556730222376769531808099271526542323820068526226059643084187440772814598276738604051997819768522785478803747234363304691680845386970845922490526273483154237961429000156857597843830155520499644706303422739587297734109998848160648089656459324445959072268128515665479168235762428799588664567127924832630428507895282884260278358737993188270492555130387682240052770571655631018720474646001236646543431196704145455851672189481141212033800137572101714967219074542891015129712059885000967816849487212914788742216309845050042289845796974087321626805958297538557817886488417292492352301601617182929183555431704622555145445825750741091689159725510330523514409643236589518621342122312040250446870539696030152536447005539461947096230313340622902847138911185954664338885633675145082314242435130828957763055587744142019746968239602005632610843011128902169093060932191859071067023890035526334493461586916548517308613261116127100156766758512497182241812858062482891548077372577364605098969459647293139292081509027555253199864462907400135838642813374751559366106633363929834993677202273445862828094512691176113821367021146694000015262154181982493421941051124874120748406598743371703475414252180302515554992085393663422624715915496829080061842179994724098088999472539286949143437859625968843236408750664457705141116248381237740804943368073883511424659884430434352223209752487382681091276431305587403142675593846851308533191366968480772305106484293799523449171668988388538336110518279336411073873544012389663188125945092718849394434393149817483451878131146875949395449379135243473335473039150367020007209499866890063785699242496113952217886151685803221349419550224287284578433387103249819485762352929089057262240751109754829572967811418768952972653187654273552933525722931228907526748561937267629540727438908195422795352942908460777975377051885745548676299144605110213634090079034246337060238534795531337263388084606637205928235946281212448789909776898304339355399674989142192932447408179070781535036912973921405186423882537824926060762730733678503172346663183576128590953546839478579448419086385643523565602501562974510313042831584978798234398730428099947487264965656881917944592849590682289765080662470651530813799128728587755179637505006779972752989985377107441820144126566706765525087307007173514017492779044485630893422605580647958681687608491440170714608937879068168563578327681021421358645919437697311296978527962389735448270089789970527539744034260002680439618047559181488064339656817982692423144061993376313861237449782809796088781067285007048585755175068702063389863342056401698320908978614328447613810275434503938196941478734086521992381126683295532666529608818004219081703338041390919091159440842801570843473484684612127592476020538915213135441840688054216233250926484967212148353149423142443393618821639010734754805245522595478324876966930799030498097308607419093460714009809175124177459470307054659991887470299424086580328732644112228048918545490351521420984240693892654962142154813276158473540934693669362997978906288155405042594107497985372122454575537088980301321677826748481052059198730793738029904642690113097021789266291957470942657517311525721230888368667689401170935112328215441145265342492651382747513206572535770554014640202402122846032970249944324924441925120788775896733138966722203597730140150412969156879567957254704370460408442341421484705595968398241644013167793927668300474391403631393055609900800329640744847764166325941184018833233045632740877147255563823853286651672150755669063969085525046380265067741604947500813112343154798730167105353801075701604605603512105132172271414668347753902882230029863762806621468067422766075899626137983552021431127457097172552286854361857281220352990599623745087294193581847844274986259386850486096429890057330378350192508787000792495554137344149931427820529802402790749238979229906597303850463991220174435014154777424975296451308270026910788483389892750441654029011590436391866789522023271815950729088635659513540804347101667037957478921866874914902749000165192897226567738531180369448907465286974753414190250712882285081653643954083257252756663599266416103874330470777356074380544117081672962203797928977706616727389061079553974093423037594282703286421204152863049707277469712727621641216107776371492596784422851339713855837026820035714649710008376525627232391274703061249329630503707047791251957826283208783916323761612588595611465238815611071913827223024189950437764643046496716528578150496993672277084786615993468266704041962451469828277371485725345720532698841878436044728282910661085379693846244753998512339767436098016241036371939625555480298782457145654299733038116332634874430230190357454648056423976598658036829086431057648398160233657524020498237521839926307680642563811918645187284250831457912842642594452062012087379610128492420797896357842267578134953502788647140071276761697759424784670057412813984105949333874611391579573540400152753188674749651298408870083929713585162604588219204819976917194341889275814637440519179367888978292083411183879449512456678852797311360857065548344170300905214982855071093743390952814188564161567869941121088445359577556784490957402740543885219465422033132122112710060684447818927945613681193488635768895474647841567939724248511016902127638990712591669709877342610438819096814650773325944507273085276682141310535070831886750681290609285298581297764648607171328839289683540719693193261154317875976599640515713150233147418992495953498902800317504831304412297163064450732826981710742689096203446040851922844459268224887160955043299103067336751224235490513449819988000134033053291577345273252502516305632463806439747367524971844704258465554681376740847910765460369708844702524537838289574069059395053419672871837788656572717425531625680329251228951818275124398837424265864178359914759359506335594463828395456501730812145189837225420959387138915847227583405472275720314518168712958104743610868871714773401200869921489692184407955013208966095443139320643373369719679883456545925178477166479414827979663748602672044669791773047111202159192134687579475548807847817748096579195008989546380587070522887229103429686843726024173712439333218564804785916417506094320662665217033152753221048295500402984255081998222404831107584577644221777400301700645215037690337623366306518239511654133039636089633656747740377186017013966543602328758472993761636344978512758362548877365423881779596407742787295570811088566270648722753673376260188595282668082875989696705093039215435922691899584567947907042988907649607764586393348940677515507876830656761722715831179942671235319920689408571525431332975406739005989255881921497665961932695341806252804165411752467893177249149354828818067031680343239591398167160014751882707791253016244354384998263688047919055908270929538936623626518195995427122600897377872321961363267270592232668527978088811504520474133879004476690417820063401386672075300828041243671468142295611043307114827295584307368634658858335197100637336250043898190982404296218487244843462250924690385180679323907807626633332074941282105434084710532087031114270168153926807714838328232840023530695660288572710688882225816295568420332953784669809621753817662887635686178049620586886701770565279156052361459781219378887023852258077450789581244456277454962554505724494701322368682737831755127352449820354571043586732852528953758087722193766338833995628532586669726738907504267755750065784177854618715250367252375446175138625594792384380860180225436696026222517016139162843085258501228351424275599451088579183767649025401314022432902169376999192869743031894053515447219201103998964447039024330108369772957182934858340303926949559962323715369793695392971925935195775310844477855917322668293319279974065171197834064543591784245329690915811002107259064021605043700460205542192335815297694871316696944172214280547675733773128619417953562800192151405966408475938635697289382253415749063658268566696373138418929575328617474561021679689028392685167267737965730158911502553274269313773162430687194019107138979681561565211310409413774340559611394864813994018311531572308261225695298996097920137967835799545923183602421876774462619064712299597697415101204212352495762064228527863119740224919151896060109422064602813592189131338627888037862358056568710699434229782547416479808053490078548845454117539840434937146458728865648507524759265388138358401348949261968797552579379898235234941459593336571946480438375649265937148140559489684055304512719241943684567355943959821140628694300341105970783306071988434170372746911606609541396383126476103174573498104558220117573766982877831396314513008582528642651325810583662035983073783670703348280869619114467186460418211202211909453236364757858123096235669698020354649307869617234829093665553586875098632345697805475371574907018807504534795905406305351165476288912702885861541663924963090695907397830154741558642587858017743327726701282226797829421537668673858841835620223705875229447667773347623572825952781751797667455123292625331726825622679977597132761227874320803193926004245417636394209214130970783380129465871434266726388606378776211974022661108562754907276021789797255821721116490532140725790729255436244147787524347488159729172736778422334205460310562468810539671015768379470098309916569249713089767098244956670422421440392288271848966186670351624474455599904514811851953033017846717256421564230042737745582130274045122038417276539062668991915978611883762139534800486032741541489324616860936558467497921562177714540073410597532087856892927822558724375229150934510957832690491025977664175111831553072726478022115883979488929867700389129576312648313831711566554018944059820268896981374102845111917447937459105231481812074558932310529132522452009060194955931713256925272591192048665555515331116366064311958626164495434268856787892449792135318166045718219198883836814818923889212159695160078068019854062997130828005661602354260221923001725191474140132148805967826795198498341000266613540012139892872543620124424722691721075385372413574865648604902744968478040154171243343367778139852417906922409173387720393550659462771670331177906507903747618866704975670185821900204508781677043463401304292897233768704221369149906680459526515589936169065601848846418925151793495423408872644128938429619477970898233563092348151478053150115839177914931664874402186633838671068049945717020412223853493106756073894283250239034580464135840304058753533781277304590855859472064432110409409638836786743479457325053357757946381445965111684666040233566536151566246771457847002520955280495704918507225122477782621923088519994159757360557094346203202675222663724943860269228967024642470254818586698777419877589757623331679664702542170005623490223776726217804049953101646726385385728326228904338642777427990367569941530483720024396391685243642725619994468914327767066265488091929296816899015855489613263777071561606877980052436492298916337728178510121075703651340147976095769036181997695018208940085658507030308783204849568276250763204868302416171415693342527980313858253089700640053835767025357185964133829237511162884638217999393698076983182461378589528136381934153848692171505431949268406337845492406702043448554477055871025165579373449102408376723551046672201041564244452001163407208746502962876724520354562615261033698901049395696104100310211918562206199144490930721443515693476951142900257961627286475782550825593779060915667548794573516473204278955474203275639683216476736853966709325120790343062305205840446127527863715130923580914907617562114979297380748005425229094731067079106209544151031829655532816407920710942600009622823560593382863200619247647913194897737208916015089525703013075411375087700771439010566266721290391139422187775565274847686653621262389552180268023159703865796012770041633292501567063730044018837881005365635127840096461429374293122667654953836866126203143353358752916536298357372557965025143434325924028564971792137723059075869539504453487012391089421856095323026894468700642419822338104162684712220473225995960632173538009044037532304472174567168758494640445406422705805187222839368589532449867891358525044931564547056593275136643894579824170969397533331742391577783195332419692564839390109287502829295033855735357704264851560821999381693273007133164133898228047169517218985070688609586356538319959553977714854807503253056461368049106955193784235836213579027116308061205107389439466027979276453049885679393339951092807901489270187342180908363145718173539624973711272684353281512396883811609895896179729839061496825732793214396266002049411543169072151217889144536376129087662902456233898986422577408974506313751333046418175744990563726552885183302822822506380428290702869263957738868588027779880502299478211328519263848128655991916632405089595506589203595189689453616832360071845214501403229020082518038670632557569045933817139789488988313248938924250182451567504770597252408129273295213946804350573345658233577897965224569766928058044465102114333712892940669665333009173327223011277558391304801662450002159825573614330201066886709912497130357073098599351961831131960046627025463679282357850717330229963340608141888307809344804641457546090294857920134186090586206436013939804366088811039261423791015936588653398423568469295997595079552685303084493024408693337667976954263266784400846961814272980131558569206131168110960675882347527395357250518760439135788722595010835677656044121277646034823717228839129389201294638177950529410678625018198027213608443115468842862920936944751438618429553068820390322427197411392769436592030174951807032410818844023294273489524665802642488890395239742288528143610740128685338873157977841159361789946512630332210436385987872362643443911628509118300796678154152051666972222304945184047088395838618366963678513510993765001843927678319341933989193370311969621855302172961718792334847566191993352170525435840194365858980743890122125330216984456922946722013820244645845831864704217238035711807179402711595138812002208746031445007735393221917716586109821903105193499314680204374031835908575323949020895497918872083419421315686459755717834512892172206963774530718183549493257178297124804080507527185344432355178860056935106772405132477264480966353506652132447807871220224798312447196313522508376498216049450589523708590670962253404018662584500363809154569210823170947150469412125013578864772687284549781866163369222594240114964330106835175324774499916971678586641087035092364037044570737405457059017464148004235332164841641830297855761061247911864324384393666799232722075399801477527099999486988143832358383364927857738042629199772391648941155794704620075275519753474820686393620944452250866524280173275303795602377124485480361787255089349069908400387935437315561695470878495929566632431109610626137752588949001669135941138462402621523831084020403083889166921206047754727572485611552128713993591898054546502480923145079725951260213523710378377857778884272433024595730720167069515240629919464166640721188170645465785112799601513768393517620882592801828111270027334223880446694791228843753022962644280317788228193005773703910485001079355756535629310266681873388786199182495773472051505725268077871444504012083028757980494425463344237760780245457568293480197678717382265402996666340213473841600313242401937949926177303066258820210715146720616698272132157025185305160022585522245022203050565717042368753282460310581654493431410657133413783499683455269711710217006517489537447104801036820392079122845684746803835942256647419455319175369540490768266965182822783207718204929529911525586755862691472698395658242138306402378975501128429285660786996146816643156617920959165810106753048267221692718541391909520171450087474174028824033945111211883224124559556908111359701571157030008449347264425035130466525809582860602275352151929486250584620413558823266004842357062302452889660410781227046644222852195588219884811050376100148947569369962576349707961511160921301402942082939565172938275936541870888262310641430697140032772607221604919500299928160679218157326568551501633220007568485242730216123333361807546219982569560148427954412376997831065832198188685030793201104607008938334475261066911170076439068270134854471464377283708162347740360959754399206265857435245670738265389284846929639879695554480325891923048788100786455386668504754065048405915920268855572806620206708208647711059084588772866574684394875086362213574529282511867871427680172187858108711061730073085870326905985780924633452363217137667897297165738206490846769120626356207259736418852738259024837046905605035987436696365098650763138435046206066500378913446019974647045695007973127711408053004346677356631592416769105631361299748650150580544422764041367274223264757220218422717552536599398905117280455818495987411264927889834250384879337982691534080234118588636373933590252060552332177678570592505817887260191804433800808633921349053532321007726736113374136627944328972795718093648533501966323533463180093942716741508774545896599000630033004396757117799253075086599808800789864655938104098354096094772032717255165625513416100540464050097960064979328132992808117245056342849964238828295227968691094145226160496356617497635763247526460762606421356546884296236609762647667743577403036459901175927362667348040297125017078170637614980302665782066850727739572505990211651293649137389550981956389397804548340102618983315775244174587238382142139176778094313322930439766316839002427541074256962425473361631667072315704520548978336794438437202029920453698535653741400904943940132136688722499345539834622937137869133423629294150997697958920354488612508375684012002760889742677826541944995054743247205688771592487974692155294031191819730532611817387820387025386547826598068664516916754944004694097378923126653191970166699476986337292768882996001177329448100363782833425982972038252033095503351885594075167708616765281432066607020342328610859831768708904439928542292472238613893656669425483232204444851806831270658945298082622189287006364153906334969064042115433193712429203544913334724897220953021221860138395263861798582223055574469008735325090468875741674272172048408001891352140341929129189534883229936614417901327665363455436545811875317425809898060995910182658006203568213634699110578108528569667159113946844039723125509572164133310771861932175946200615510162251888091812406234751508104308587658374487321017276895293654650430354699136500770286511143713879929298199028758776348718088911844168082368655368858773385845009975145031667877949071303061053926702100501697848034142480809451616630109686142402103575505132901747164724726934772716860756898386875198860008790578474232397674344584137022119169914371050983043458757781014321215334580864085666110431863201607348537151484587951620169796845511778774430853274965581812764793879469270040177120169330680835412651296588449706895975583563899185242881657846933458542112497692688410007875366986736783616677166666719879717459145742026634771158593475458720798404509010561316205543880377043268625563774934927126866447395335690453950599999974807441326721106382038144945986748122049043657387721673900482693967921669016662669987225216539015068217913130021714221939046463409141136680081258991466644167386742639892974303342161228844545226809288436465243723619579882501888863743362680598316435705340542357586336882007307945659004429277630834633427845527790822973266147295519137700567432147805511369810232120213090847204832412384120443567357367440065645844885186063278438139321638064990574662205023697980757197739053282561089278636660702053748794818752957982508405884408132654013560048847469979488574429148212565730586099198700835789853330089786480876021985304462108597317485408837957827500714108702871074915316795920445207597382655386828172372452395080611028478277006027173358540779251629864902171382965478614547744509829270158301514573772453647063233534794183894301559982838861917952781953953319054484161151119068719489116726941614406777922758612764727767554476480173155082800484723775769501475929369458244812633888320301049659699635734471968611099579100172509838155185250680982472689217685754417754334629210543803386931232922059466616221182771279221500056896589029664891165602721241676592474630301347708435084772758938742397050032406434747709063171390310014924897795687421333937865781659007395541273561056819120051999054620943413299060613572005407267175450593133267273412450843467196634832332267745869982821104138795063744266107099361272363838110198641255112909492007142233914484749719403039756565870252896321949125767072313979606723897690446771585328183575151434504443928033609890915386396994824282094199552391585486637765355113310492946032484735253847642951444558498688494096753769555752234313164730878380178347068840409131019242000896006596117184585597243751597002127630193479954185628367889027313667043609147344054976239331681960356452610652779085263054926916799934312163772253217017099464462899867555880706530696847021762686409130312432750955367824122015407651492576946825866840194929233163825844494507652363824148891819489950354701549148007930653927462112845477158448330280315808643936599732404770289539346861184671273550456745366581254027269211246542912527214574468568735726999074645204740684113103835750687776060107861822448213284412850229961553680895877816801294591045063045792988888247436325338699641876670564168415785801319169160456754214674327133641171953055522611778052645613305465750383327734814984852885318444717692570242223502127571492993104307590207103674822589121043527473393839416158287822482974324395257103291483408959537019172513411040626855116350218268958187107106370728397941090290841301904845353882493452163156176418847701326779128070626715940795122718694464886941706887961720105369533867805900959158827042738462790643314049715898916714747296315682090396186007054460625655256072967552425663301609862498649261643764657829277180457004890121884630598257066603538978381045928905180703439711753925233329073862471806246069720077714884371615048149790178358978239592988491473552140139562861347805898640831507968003694069120141763316476926141840825917919246561891939007744111199831570093120406646754098430204951269937667044638454969162761503070026834886158288776542155140690920701184242390164218248185007152760517426973865508117013206193841555680369659593307647901238705436506825231788596222181599366513459388280115478602638636481156637869340466064382668963835789855647118408073994859627717320550445854980282256891993216159412106308535027185112798565580413364961015967750280245990572338965161237305348171326199110418298643378829339579207337854360381415582733494393446865672138367774652006938835081814617908655392835245822938658963824588307706651719115717193588886662831813751716877745244338775096356510954070700028295310847082231382927755193384395763535516253314954606051552514166583070874626637736652531233188357176639971025266924592582735963475239360699315541594311635477397391404974763193087047112344544655542595471641485129557318604183358393669653850967579098025950312377940709754260818005478574158946190869139726595246554180030716434244016170010529312551050456739889333275242620465736350822085943931600010895199752872999114034597961213845754522671651275639323233333867999991213767917431936284806031581372499284412646981530350984423993295377343014067250574971900326930332670089913168641277666589205203718106100259121661056612746312410814617792119899847302299984975996421905149315144142244920233929112766128046643739429676949369688747698583099385646529401586513570824809611362595909947206239594944313362608294180391733237393274883115263616150706249612386166516302253426360404127870227297151678225697495190015426657295598146222159312772875567878337837745251779729041868381217474028057210306021957670769601362480124370194001210532316115590587732922880758339159591877675345060406727476913348147004591196380318387475169472413257375311924257734101581288398138355485067393184362852996488055194422629452840601485033498418064101143976175893499023823559148988612501477503824394949704208872887542354566893577535126045997744264215457880447171021727239664945132762504651968020118245427897650409844275010199182280753584557436686388601932432495261953592528069639655357347463204841926316131026181725395052120551295201933130204047771945727914347617326592362112210970271523281445077630507477928579824514273220007624533248192020249567877083041220165812421454925716412602356696854754007353508181908135601403255400610727392517064687058887580443932595463513476643783597795245426377639422733952378918269274668236006086791262746422792880177849899464869419729215044752091019974092764249968548881856401253113931609257656508009780643996013601310632876669699977720992767337172218565954374752379438045979623328291210961970320649904126585887777561232036636921685189130864978165470524471061516962131843717092520396631030816960523505634610454518188083277893215794799731777044800907353106151376240274326873775806590367432902038097781286536493627983621820088678072773820697015890061577587462419613200653955921261514406573745566159403804896589459655606313572951119678944746845502299395721949456592609866898535766552225186547563502499669657278645078495863473814693062646324657626356652819311772839985736351380120379171831837017118848167982456417581412855512059527805456705765940824434471461383116400262336363307647314396733643405115816864216516984790714217119460013961074699213251846472188071119944606672969701072064865532417818514845066616980332741940997860383531195656082509723526832226455837140104794741134023535330318926889971340050405846402640637245710219117920864336707860229997050964562602091324404559629078921211852310562822608328790088687305281936865084376634417905775065220502856672729784179559673477419701475012548490616067813585940271906291486985734132517764621789143198994700045180314921016771758903672087567471482137371352922128486089924221315034328061757470295536967881308349281686400816089448512460122229673756537615594787694348192765108597869498361125702547767737891024578377059997841482704047353890824254808093856254195155011385729620906442316371224614239854246931229505104766437821793788605994577538250658753491108630505344156246072789700817520912396141497353670763229666859294271454081716973081331388053321358432185757521720206292757056595548520884862802857809888958637744019503198841746485966783333075222832594762333499889796163470914379370433992423058884311800537420078946458881928507577698162505829951023069252128542756479579115581009292448127099268872187025357575297917870752104485391105350886376274936901905667097044859991224205689414911138489181163340199580649419521678765636423291183254791850629684607734925555304385105973322009294673367374277169965981096862926524247330106784212462035387845344095936110067521215912425951842215644246696784961778375936843588264897801104708815208286149013782356664100460083143923266450268992625575009430423390725291506645500225394961201579700974537491564893302294052310745170859038398670522252219637992813119837324170161910176647394303226634165866940500432192576605859259424880265378866025053646956282312640555065095294963745193836104953967430605176281709573698830261493264722501283236687983855454484846567284022375178010365386369214762980287152808631175779713487444951760839076840391923220073115304349178740893792124254363235369160554116668905796210654614852023420960070506094921565153332536543794877127447418743837160192825209728660176455804916445448998049646720922592872321879125676289087396876897434172787110351814780746978095151562561223989979357348136920730646230142977510183631757989021882076195948388150789672247791238562715743635690625348196541358804670842065104781732783763513357559415223173683215383830097901822652209273766036642350666024095855806910654738029312113768516862871892765026038900128940160021560562001466871201172248432604788302627729220386715458854091811002024629404342324936462833616395581499195643846189174186567328078843808292283937598851266112895005451515838887534533649603191690506773313589246011052175791498924836744464185446924799007543176629614273252873213304887288570438928618120529737911625205884940176104946316419928184152590044509688899644136044129444502758613070422722068212218750614903327350912499959685839212173457047244769368699206655355924277126623488340581765505472827235626992482629081183319313617562742318778896286598398738106157025089604935375605620987764218972794536451404036067023738704331773768559217996190266074785659017363763950149210306990416157447443879815820535558835248971452153873667656467589264624127852755015458000795174130546301046359923983046317571968906466600750970443796063599083429173059136381986002245074545094302410553870468569886523507050173433847429440975818604705196213480201898786464477985955991955121439848526538153333817149574156313117504328059877823139827171065103537307097200112975660177654516235276278899320134719776283160354376871904319079038695470986808402894228938919033339281494494214478147460135202885590105332525790538771228105160565993121851312201972723335309974349604270410226118213775011799761803418239096044473709664059424039365514281601233063844673104343311322748906750242455073612565963541948582658786709289433303896650223886100242226850932778701804068326628996406270528421642523742549725369186127757049022025913795032272964559071590614711332793125059425187655061897265170043862501967025783027113745959239133688857669487944021236048040522110251649092377535313320593204451294469236037165498220001081054026054023471379625445374533627146421700768743495575959470024718965237254172908305286112400424226135843595426475586418082610423326802762632422999783722622134619264765565700664873817150807674483680370010969267770729434517141257051875625893301080802801019864373245353960371046310254722417757377548890228672490333689600508777702518154686421395841754854030865897951853254279299510638964480192120953448872502364948817571877620349418553934691442776171131991841734096436732684783603951620096519990723478634147637224637236272805715338546475898080099605637516683126534763415394756027754544687380220370102163939177053542852435201947482082784087967332098667139795376188999269444715043480308237149058966954866482101310209134612968360498879750229625314902666609382519671075094306134368354162280429729383569265972638412340821164952169797562499969309966200769080867647237573590471512732982600446776587690431107186913428382838110948162669173456135218266428076337027672778974058270419022954852428460958674292335335499424274535371370487989380907671568188914631146623358881991097926582471117883575552755749771204437375920470719820514562407365193783290325828496315183334794998716016819189691418988096518350119506492554872400711994217449354286915249266929992373596747954054086826298612041029840678011007811643426730077523201274892144071928366953359822568878029426216306863349295483656498567666413780253390911723871732273665758944369042442651527137380788962898665605128234051197589250414917519011339316054700574010978918169075589731334205153234232316593514801242036203359875612284863820905374087006779972123439585381999121800998322998973963924106501465689838023139847138145071690054048298806227605192260431931641619171607983631732149008290126727075042183389998054415477286157611134607212072715836695966392449601090523122555525396774865158945162561779569017430012744387341456401587633875088200096504657398515922075066505859419099041376870865511671836347279723361802253452284710351793991018736692967732255816367752579704216370935310762530723157647455412188648282384043067898237030814219640903756294638316593502637194492656960391368722719830099013083639573280777091724013422461778450512088425527762973469296193783179876652815411601950228331653424700755089235735612934289230001254970255320058518444901030334513948239049513661364750451108469425112539755636212035421444272598389122829435435507171309686349995861661952892904487521342403630890694480908811087128269159365820364315433314226351546965370210872007528972999012243638043200478772537248832065927050941079187192225043708066297685292250841722657442825177067580229493465930318910070091136680236634540171499843433940416046322623150398257794394326693271635697170934547774225327984734880792327446732601553865866062410166644739367453272327330812198186918231931910411772909923108456182056875264594404972970204411122241808742211777222152216918754343886273874069942586595436050888556185233462720976779982958269660265893505592432750425185702797853147786677497952678361472043337488686360251102582882371329836659442665995313351915011393153066549054230687904579426305520369194561601203460562091515963423376985617667656697007111264653349119117308728992463434410453384663496304712437761919250630628368172075922691522335758291251131337434512120832252380972945958587874711663179058058868747310572744692202250279595792522095064137696551152090782101353484245684154437302857752824911470600452474913902475371339956360350575649979028540127752823386646446336556674752881666849946339840115451254424463353119773921177050455979301310124774463338692584792209705374866036474891401702791499373815090649280235762206246157756628772801290963920755055820781701186533687408081611376087460106253732034511366237786581114988273056704583397885111430799281897381735834828289457294270502975234154832717903304471763879672531227480375741442120837246123270113724408151927968347367998596626274439688002188301756862288022453271120219035802034193164467646927025471035645822623053766376889320782256067650062105985385025524918698081979596822234754040612202210599095780867348783443907556290809271495473324142776032958347088757794307692864678534842845499373756564299180043155817188564690058467094870058500327499927042778529127146032596696795485769654331060185170013503062520301120590821974219882025064509391601925040436336782181468994813761980387567789012307392131319838363935999673409311527043168170956744953875396535830127177880949033510289745013459948260454784429572615394314199114327904004127579159527164997805986750486667737120068956884094191270587364289261592196893164313313448397114213387818073697986133277559254326379914156955784581619910626972185371991048011047413461575985884691761729152519873467614205353532241160376969838511559449402911059886789228458556233330472623719932325323963821152181236626394326883390933894968686763548982406550838758632124605235206180282601487906884287548335409024475109293134161690846622051262251942473976596572948810610645315906740353498382187073053580594644849739138642377097605822119591055692423005171464244873384105609932258234543533581323574341136991607981697773252764487073667709889483261121499272407499167544270437816545539541643177149628271463857868415013624031999023806250108105309320799126276881678940785783524456816128409127106918586588946686193922979226928547029401910142905476565273700085351598283147556019631955279641002667053032657446171263737803622963005920040672993105296139688601771496481238583667122257074787605369059809848450674794350691601287147616389650085334054320536570238068588935121626056137254618738348891925359620163531088522114032177193527410279198603643126862060743176427002498480755090904113693635073483569551081943146450857645462178507428098941502128028585067235482282201871579685120593674808208807592517639108953703273175888556840321230427766511060209598645166923080612791378293023674300435809941721297100154225980899260544370141187127430032528720793159577200124257797861633919384007020643672320411887637804522439916377120852366384252070099367831968744629691953051109254749430729219099530663296267786536496341690747399106375602724954741288005545144436432904183496795423039043339237866509600747728457273726007479002513085144906378455794664779413761822616937131428112916963706790650888372403307942291072794136192591167901589523260299887014780828033821391147682052639195025702449227252147309546418049704813784167286432119255249283568996183572610996993580155009105072907035817035485151650887471608856873456026711574993684506135248360725763821765986897697494206116951132850394913142778071138764454345330860305348867636336130623819771606502726847600725767470129738123084823399098532826847660174704339206253654244644767188358761086638294937029095018705945470751657037036567211921289332936096764090817823328643630339409836072204293357834530669505672571841413163408306284986913172952467867867789372569342102509936772468833236584754112240482587302021521565875289756143886634700508133333214572441713460003753735220268908442490583704376932110597266722850723168882378883027712530959237116332203524461834290253654005903095459733769784596828268102161012723495876999606512167319281797063384055627765714458533931396182191318349753941720308564762612250502695860556698658572852214454395814587025124435119000023151686455908824313814463629967036947166199875277001470750057436394419786475497386911545851225348279407609782466933064658066628456097447367798017583967343009170966219195668864762793096409190449341521984484045901658207049979471059668439644534589737482717624382587282615982171941311416644795872506291835351378294487306461311673008656255577057563995076308396633974467037935882818964185647564550340609123871172751283327680954377441506561902564843498368946248490573838472316139140394069495168841721649433100468148654787473518165706420848317458465549887573833965338065366400707874213495396668306055356185692781920538777954365024948586145087105412015932595865696241154185055174216947116768489123831959523949922810327065678750255080204135722230368599258034949664084651736561023521938117048494875080351280178107482220532140074636388595417084918985112273955908169451455351991455954809176742484084341917240133487644880862231176980095878068984762797541575574894837574029009924925496953291174507765182815902219920770761483392732349420028418236697992089995061690412862656332346326808439104150212225719861655098490956977972467808108148848459844038996337677454175154746578010519399662574038285139937514499773777881280748366983488997257922797888521322603442245711675369762345410696821619212168633057782073094156188232782437292106803043706604243579216890250796251917125951593585212337346415704514464052276421194156953096943788674203159785538198837025962307898214610935948223430003568410112321597113138191805984019806212310831755851153899449116162536136238731287836777298769959834315893330557554712311330462627012196735864615237729068631969580204886568833953194485889609125231538772604301373558312728017383198488242755347076105990415247208484978603115357438329727109900521599281679999609698801733403780594399525621274625645760929952426336832580258890836506589728862150790531506345068973584961051218444803505059285802661644579194213917946829079059464206328156307581192250443023720831006949705314798154377837928331999672282884558679724705991791665285773322832042142443338124249999323529122399593832385541558869763562719295933937700678757147148625881711378092064705087758400316912367635823539245923432900480462720120888033994495232048458565539622641538626955865993141895631376821753909978348713397582633443977131558066513537429722757783666644286093696671905731487878176592353777225145265676004650915749348869665426648131816155251364022267379970193347803989413662996027345092689148010676582115858919907789493004625712343749984730847849426464699159992267373554431904731600434012720810792409714332486691776632267006689325568419918437792282923984008471743859761629855779764833300993479719358062366125524909839468245920542952053139918731969838537559319538002445559633992622950297475287794012356230830621000739419056604415541777809818155188676288422133078829545793897170147188471739801416051127301466848409720967404871879160514168643488363223176917688634728237913454408347248183843401283978172698234962914477078370557054293922473301510837272801718300745754706451243393077849391652733606699313350252548974920429693661271670020199224471164363800351677437885796483574992297260688331597644213927697399288869630042328642450339602654316017579655427343662111699010451054074264491772888718204236248318693285321119407225410437149526848487891717832978259564062581697844009033482474781109053135223124135080105067748930297359855655263029698352666481080750230583559405069487325469554868016835577181476178930676943407910755256999263416298702477625446074229542805006920579636480044274755144966029059849979922018051007925469512830294059598618315965150099682339069719330284524520333417943500774732779769721937697813595394502525776899387721261186018956292792054792835990854241731854298639563633672377206018412691136495707314470753939299744605691962757556455413426756170531982724205743135757435190003020303403963320309280826183786688000184618837335763977307322631444886359086581043475010372921326375743670907829889019864213722912735916369917083414542234077103378129986378430197936217355019871856175926493980329023515586773478807223318273821650595581234821577939750132485704215782479584767368036573602072167426693889870429373965673599432666784224664603750265204409978581497766028972078031051512024256230972396188398610683770081250188832791810247228269581753843347663907319758419809346060598028701159856296021304458062086479265742824046930227067867382227662821351278709635173548422888044685420233251737632042891807765045169969491092024224038597220520365332876827140846191207870176510513671484591987214353374206756359290494289050490895057160037993730653623815827290132543628887986086768148363670443717020722638230392004171697172984334657163526724288884121531801112424232703982225987741296155866960609263801340559966575779474235672377661011764410518021633044577275762658790676185974045416660186905591214522843577009206515882880697426473358153787420497781694344758003285954981267744280167477712662105815915143730118449833203513936808926058610873504756243606080312512864980955172037155191381220169515958954012318260106671606823467271050076305045235488946792114588995985600633270272573531571586231427286583019063885177891007298061838996554604422746648274872918064672252149940885733651280397726972401968989318608161570520223750245510808874011580010328490905439293925982764446120541697419191215730400102802601084705966697139571473070310519500921566153566825669593767014656045574111379416044805601257894069667771416398454605679265859514315598213327731145665153761639560727098370291389582577613106988234272688160274399514667886168355456516444208875939261282260933098051044791335449161013655404275969882018602901033581180708899884041272187258005770692545999835291654149795525378099186935032255352429931615944287012525031144044833410842387917306534999491531564366815808921129153533395854225647429184084561587645483554075417187275043223840192148293244028138300789048699826864711296340180871260015460787952791940316753532001240785020265624137609506369134003577254616716219796758158420657136149690558072722931216630656180031947094331115182891798950655972162325805220630033243286592651495597186594157967839418071217903763184371603860249383598569625792466475519352977586683472373939297879828063828675741099213282661418680287624866003998459208073526575425947608265301921262054121176092266838624121672758918589833994971391683145507525118748679101260700935209362030942645343511119625482869223753766177390761059002310366672672672511672096137664800103168896917985087486710490209309498996903598085454796661556641720375888775398552017502809823002090635301296664161179435469775767690558821539197739968552999610477085784261944410572481002971648651739466004729944308683250695337484437656614120182411626883182021458636024716401961161221501229234515992822904043076996718408116985324881763755651308133631955861867134167823155243897989672247179027273088983530196340014463085801301018447029899893212796658202159939940924855923853602914214998039280159866582729585818013939397469816032566552099339234609997408463415990635866181429174902265642544441577621123265792301083097153717030618757817455506319491519844357419037715218824856000272721413667125006649789835478868188902568668585523272305914872621344202894490919822061128470232687322106611327178644193700793548499593337767281624766843851538643331403732432527638219635921865718651060954532062784623373470453925940318335649724913234868443447033820439723219814638118482415539837225510246078995661001000145736882110979022309095355563748839779226587731212661504759198275574456156894114780609563306197335047449170121928690044628418337302810406215827570330461437554742612877579524340274981071664002497864156941667283213849716021750582643734114707460283675763289982736524129535797117649459117013908083703920330975973521670357395133236433784860194247515149961648252509897404531940284876072656999022281915445599389329017727724089649179618425354882224994579097286833600127040466398258566813286220859786457513588386824446196851103214272020248445975112406446078813796755350325913306878451769710589476101681292482150471271505480230270068327983385981627877061287980125587149811953455370192286941675188265985796324121512956102742688319946969092621253272190186178665394093322642959423746522784025288376527677716817943158659436613152405095164835838301170041008918869683524995047054718207974461684213179868011718698705182941239581597592982979344890234596663000559749114395514440642367853280980740729773044921894128062454496651692194700244181262075139110322910691114558260911062799763615206483109022919090516382129589618681798363823719234763247553716917092509425239074105976080060627025386463903793986948802748724967397573879787437130160939537902019541086404456906159234488502105355968995340548000639892647941541027149980968275183435151308011292343945955365725737850439976416711080145253852240572709398520180342690106281596319951216846174517092627926125178111494241942711806400298852079759581647638471484803725816068345683200300606138772734307097677586415600315058970765342961752301602325629401035385990187548837381243020707819442960494807163187629564925387404228262040539755294634955017782133206557143406269996328216398982121880852263091763450126115009507393350175184298140673038415090487289882224925908074348812172189498570953275019105905215311929020643684018233445262660647878320365089600311525219639987005636818946487499747445699159592851154572328298281469632725147856900828333336881588335430124142321423085575832718981939382034590936080272729891696343947424374134958701520310400479957430431342216790058262020712122620074625834037308356812429864345802274580535112326016993139679647368482802381961165867973407881892440874309858415330730231122070417611952502847310331496393591574255264002786547599399053087247705304898717060020515466259973209042238567853688122845193982306084435072180554023913194948476680558747585383639420903228583402497417875098098195535318141234760278080053811184727879743169203277496275747547592371710484012318731017161088506035471880871381455031884123733504071349782060579136813112572310440767861611107610384368065235303223930371024076007176322544511604236059027128436802266338031107396433132252169506222387075120787689971872027125535709983377728236897198479342706538641959529382587965804795755555291283519057330411451824439841010065409485242721558453660600573344881437425630999400682105328140220828857008820690259223048595592574268643211555225834312657775488807141185976043010790178420251255684129083346969937089524916618620786995923951032839981812070811644360689123645920095411637095936290155700630779525082950903119850613207596385556201716585491486310957030943799660771924749038705372950919869521876787158198667972501675209249220072353014557727913144984095615858649076612458886081552904743678739163139674129599107589035553822863946144171553147081577079165452989643252031509943417681590885428036493074718293514486021575633384206521181631117600308937883059397222271122540104882877458651937789543670225866330941281758769677885677234117003894289784890022811490877225254514920601671582744170543549556471961778335124300678033537865418785328808586322726356829089476703282295999368156254398814933878326633679202403611530652434795026913792725000687688433769148368492666887489787313686256051400289793873145864282889498480442576809775753441494521374153920662316769945368254131223186372200323911833464792711681427114629553867509883630337170237888727845396045237465372809504715957913438113491469146354051825052789997245836012255252037340627413467222249896890428010593692590177220699487471044592742122144665135869081878998413929469082470073170182238729462251384420593856804633838991666112734379773942184958667240651328612924785506643775175464717573903893512814055239248118144662830214058465563933577332622386037296424769311400886835180590830022666801864869397604400693177811436554639892633483873421685839256453961674075368658505587247718761786403409380880578584398131665867845990307753224850435804304217294757961746839367158350074246384356010927384367900766312551887610754181692548569631837600842792654588729428985507748111048213657792050072739977661004849370370474557401708063071756724980157248278298258897462516813876448164149219035329458798759611999533102271002499409962527323492087492423622382527756774040536537204112808397696870815099079638954636433978864927888451831590032607776883283919526229041845963011812901539286341665227300949243442452675817576887809292325848175917948816527367191401064558021801957207162346597586978420222018968597521626367758229701110515761753738529655996974280229980116175197684685539692213630990033218533292052730567037283263866653255387022970438082916332777767026599893204080424867501572415187802693388998322683006956634625999108308971636373142941243517380432054911072381421482878439789785013451540564947580300658148118740134545357070047131015024516783861932109891745781799147223636041343402312331272575327038921977939467945223950872091845964255671989574157843288639367083272035694203001708187094255092688732252959372329402051291766516558014917956310570769103454157832373483943391322698878332421626039762737710476504303535410895865602423662877660882435002499140987838366493107805349239524301147177268440096933043488938893543804824427010583327186500374210369373245021987854878592567080889705003406347576680363326865287398726831055569022409628267073852408363445222103101673988837488794240210235259446533928035715121194250244826453314002356640452706997829547380137610908358675892310559305600923306845014100169223095889655888091897650746114200033923833728136446161021646635713983042472958512310203369461073940199535900123115501570878881199807713685081848135146353634364936449790181051789313398603131747623064310488486889732356704128083715309868421937417375932135133822259603759658500228674928900097545312860248081427275235772221089538267105872464198088058672276403482131882528984726385048559547667373037024771261859741694991373322058653549436676336513140061784377873311171548879982903767086021373437794843129649217950859467465166028181022450171653765046322889559848389991374575758782382946628566562903009250854934921987112495812076808091695423266739542569133866169636697960668904188790319732570876601168969839227711980667223569436834504251870131181989000100355118685762337372960408428827071376118415577995544918336400432991248717930651602867625314276066277080890439403349141573438460089990197811380218222394963227259154941625784103547627853385714985117503833657284017751683385987642966433471383983325286708457038180497522129768968825153606314399885706368218716889210238154605628486225201887125218418534858372062770909096002726250533584697730189567768133236328504744250678296943090277353983633054441633675088061919109245216883158085773904617447129820077643968709418181989657228851655496291182198338548983814756892663426301916674373163901641828831176889008729948997613181108228119310009471081193033021094406422114917562826094200129666417148384226680905198358048984567845988633863283210940524756616871035918401498508096466455957231590281156640853842713232494197745116088853754410319160668526581515431146234261664902297130856185280357426725119581095625284245344122104557016398812900346556557769935771080758972235600974916595684743380761357395846094537874927711953268554038415444456542009218799936417992284657621153188405999460815972220099820803054441342060558495423423329317384609097757494537161835146491268909710213468253999491199267258133286017389333102571629762685674960809269102670742082053149655088788228489145709054956615022663779460145770042767856060881657322140705809518458154109539983992592537859218752197314217202349069269725402615744552543916910207503724670682717651945352253816709410859560642550041246919405710196027510906413787192605733229872472056042921980053196578032604619146268114560940540101440718193344728982868616126669783942425881633985941130509349305070070404870855923830247125652795713686052848353004479636097781643312182671739607236894697681263103144359471664003936040143653905080350470686318229153002821184144357807413665753717800811654251081111234389240201789731455210354733667236356249383113097735665077650718470339505701969403138350573514597536300549533935871389649559617774870971377020250313286180012477631428990375082777602195776977738280912267449250823299265296229198759551240476869425221462732644577182227697425251805838439257049150377806683072338789447565288106755409848764281054832851724055637863717239728633027559160210726476215637180348169913664215055356136251406294035662538684916768565109639120664557952949420255391754632758010068849784848407887106856824056901465942570297832568477560026116496932794312395137404311276125946273873480090737958742012935778936692902306385155371938768677613530840962135984456617785871623680216804635120010804982390945060641764424333283119700055852641772547688566904464499010724543439201008246989671761456317471932766167394719534816171212436151360119825648450300523086738756505333711726063911892403818404728759808310398165580917460303528215567903032738115209761599769621751558966718447451962908128105716036482654179383298553282148231613697033679250441165803563534907670938963329361239967505691987211563852090043419079440363693062991170885240984854500031091478708743689624387546437328888220542843829673917389195542556866021956002269045501561696606008207973506606599638000696105726745192990593414754936767005533518593609720757907202720028899047965545057530473244841761110798043106571769148722762652661485469878457518093214029609292531739126622205073638783502614949741778055699812883793487604707093491556757595196761061628797230009703062559852874161308538194108889120763704965007386018332705230478250496351804205739389469278840253938494809688714908546538958857298496694646429518991925880976552580438080030992822554061941107969511109202777511149274056584530033014425530161878660983835162246306853488622613723733702305141187042773712878178997326914210428537668925717151334626967036203768517317989604375570107688466586911918772017014105167439068628063110757673220572651446483956410567647531844206162878336067114340377310872712042957712531040053098920145567625603847159180739229373378102035778269200813682228117591285551861109999814418145014139202723044679144831659575783848480602413052881400040188498174862882753246390988291973505540409173003570707518406131242694736256223420997225905753632169656659266489504981200001258932934980400455251488631411293401443900683288594065268712609651806721159330289923255589300741608430887626950235418998530938482474522457477215943305793091522059604392656110644282267466803820680192370015860682340508813946158991062849435920213853836363885124156314200861085373637843441406642567217240931590080783282318540531485751403411591516011642237467863738381606687457516780548969855500315239305777582088323041181268851437426667175110263705298504410752683517637722940037086841396017948555748191004891290572786332533739635469894797608763666635755710165869778947637228168536530877718287338974210149075368039284207866138929501446405552714776394569257342443909532066120087758721559999076996286820678665761715404601733871797150090218931123523425090355256704179579029672588245696961757094873037202209344180593597402303242105998826809922574350818477548840351940228502348052270479113093688352576256465880617543682685039857611484344954461943583418304462123697552998125342951198027937771564918407801688734626241666866318441614811083541748339874642454748080841354040886018261523401373606666465275289940315481070631448136886064092474589050093165787100951921812837745452850053221474926204281309494730866477352065222300207300118203041773454488065107504254471564545543058236647796667815168725953029681831943701915792036569503852818186414664218585396473885525864255939944474291447566513501154984974856631116072354133911335302212439021919792184136952587603392021643564338930561298370455260646901224178140896874397386425368581492673593460640422433036354307321618217783337908032076567872382706522698498496344946089120076328509249071982923105869339252596905488628803772912551093248982988861957985887645678216291858618456374791074658211427965113888923531877442976421455027522990919158056704547422983470277969681646313315503056779245201831322803928045552325366271992823267638781692784834841911126126872813422410671580273844538286706278693957915323316167650191074140823837056960935083445848945815613346509528487915529407107915462194352281509147774315891495536269948599591273437682400439689508251862620412220390023799641104505659586368904760616075173220668639565317805151372434987191140146823655879316057161174688714859097813764389040747471603016395362209021571422582390487496980064182067418838835103036672189593629677468877627167684061358563617581049920338007410538800371359787578478310764671236551904230447662894929788465436223866206501286681019657495144669763403344443929315225748649258130112796080239350450235790996713936960927544705629892650530721843016319740375148625940539045769431135093444353641262684347528376402912073009004265459349823632839508963290730430147647952823240117635243428607106491879491201618910343852231871173196091372176011355715325690297872966236524364399454221860018368969094054442309154497245733702497952666616504854948033417965101839505950465392769732315040553811645466962429812841488250444222677741038408538605903581325014612812792109563603451325375118156120828117545529902445504918799550354535961410985681592795558807815896475324422838568362585281391307608873873064578809799991712419994433828687973473222303777257567407453968414079514617014166972985011408763659686040045897273227213502341534244968082186033521880953079335299569040156667914260337363819359809572238054415099482384528195547495564227929282713729994650094065488694626647038801746995612842138447098882457853565164808903727716267425155117908872196536307449548013909149036469221283478778961506591563337004095881737290576485743376164795168790280327641810325392799927745762667467733930930210783614345373394115982362377236620940736945136139100406540795229826711639011877456683266415106298270528601965266646852336892196910770195856787221264071214585800627540613879035304095012526737160474930702567892828727277935238647094850613223485199402744654531425843867098606890182184191520473657094541922333830427020273391081906103374331001383033265640209783223825642748989697292940165613228837418127283200899856672513424073337691785069732189944295821215469587817732082293037922946884949075096664786497673368763921396157689377469747354775144059302322867273788621520175710672005754671387917071413114724006670529509968770492024473804847564705503019253659466110166855440249100138862650425017113443339522932529235811274641597061607776489935367802704948535466011412398717980463459750060680825098453331517271765510704904227868003455240836968579115151410758466233550757546620090559741090880168757675799945249982980422316157436025134665489052161930319061642954197369526062648758695999322246798869830577547216829255749110772299403577700171870582624696269260333606261558213787537089300758415831046436743884189512825194257948733823330595611333148428098470107239608354481574035446672549246181877535878617031633120681897995132809147840939310643522458282372889054250529992462809493615916877041064120437957089492210961096452786082218486602781177675268233116050225142725750877947963769606862938120873458217526007700749570829628454492456939787948705430731357761439786901200193160343792990395733476545936788169035685624961356173521858250687866240609961368520985047245809669850186151359287371426434655435446878104700389609820321027979117542335322011998628012482545576044249498921329059731444126117275220253481462144859109488732814039304006783952543678665443401996538653666222220522881374169386317166372292798087474314374602261212854663068544137533610962521103840031230245809280356683457068202276178238013051591356721843636661023345534252668754315496940135133266743415435524575667939910054845156256087221503853376592523314944457524780678123306027512618217529860612686917931316702955963861931065616616334663498501655564228503342257675826134253925351368885974851785278526290328628157776777059028727351765277341398063750684916881146360233302498296404616499550373404972783905457262433397288387476100438028302376884244800742723270737973375179986005614701937524052172456457203676696566417878002307769639772681091716067899706934499462171319838773540174630495743157655603131154853078374390742829066599799803187504309053949190201967916610182445689244891586968402579751852145005742130236896249922734599620350790889027277031555301729028337013923631636334023747685221920054004424604552573832214988366362665519787624080648006998303649219426375616851265060791075641042277462980577944185435023550253027236757564084951892692208057724354747684991833360593985913100013081152925940370647008403855741339490413172037874541823938421693902418320562596255141738384895687167775751538476030847718107416953503259472994970713847759580746526437373857661388927743478149037773260319557812222873237350348730304265872446104296742586499253008894254491874044506663407731128772494695214301097869366341670012812051284107349863407796477424601321565739688452089485039040211566665039303811581514071656083421638127007986767466682694728813507652128628841875296835350231981398599038802689688403473162500830597660143422892279955928320308120810338184988606237070940175012777110766566938016248896586634723573986633593298009060026527802520538135735895450285950569113387438449622505983864485046805622694802226293537427780561754191388428558053429397997483273416146051656975763100324926883364827975600057283580536920439058436192805469920762194658861106561711252651809456614491286190199418293947863244153129586267920965781299335215491791880154529753615802027854507728572387153708013314825055887388545558228242299408303009949535268292216093980925184071683229542182312508874366348621767000506862889121226077996844686018860115546774228953651751753865159755576030329570957855375136157249905710316720337996895823749041421130828745451882424037303204559284635207273641847386953814515712974458391294757392362335721122569954872237612867573703343799085546191188046765010906009247987671991044400482912732015044369960562023956632598521730273278809581194571592084175362744700536846054031252448788899534200690793604763929373317559353151728047280451039202920118415964530190436566467166741489542353384631314697508297484656616163807018332609716262306192282575456898076443368166210569037320766657175742751939042140516495545426472005158757410836752337604518337589400730564649870584649286239922984592202496280232756392287417506553502990084272028839906670009213522096529000510391913221130629904097616257749928303357083168585866299970604622503796780381936892326763828367638578357896322934760756176771609553454319169078302229941582282308518895075378773917921217719522953864908873242788389130456620557982047122826934766083947031693534545622033889500622145823007703174296972304482400643467516102484646771837486026393715171770603057372113955130449558901968250360745612001314872282869738753989285205961016778081051776043666116703365475812823783621765928743130331744953593202163266600663958701491749265390605514156922413067627907545238031119538359657275751174627707548633181362893778397340018626303659205360907416073453286205010971953273981826207589469616855567539615500415473299214486738367129409770649426580654836967279293638625932231160017834203543240029707015990580898610750262500794781655842829136484830107497801658358506187896043884315787479492116461965492090882912206180368395031872186045559647717354843033894437606547116001826818128782291838264393382255730201599013941215299317516942297834857356245960321483074166788993295680885446762197089074012700102251831058503291625110652144905345724000455726586862854667125358487290011602580346240765859954503695851661472083539658076841334129589995644249789208311846815963861418394251173769176555751310654941628627855988839520255944964103039587495629875313573034205568262996622337431307695442415618477973774604579343959642277139892441175509543587238833801365886033182938458818726267760218273844726467994345605739794335714472183318654694294629828652453069138529504771588203694641802014560756138689405681560223654237368344954139261428463175320670130171045626762352417839362265579845596642401612661363657355657220615319336813438944336068096096829728136454727988240878610196834690958879130639889545932825316890237243431509916259274461614298202243770866889994896384403195958889104620993859830154185182728579867633861439617489140839301692270778483681920269600148189536656777776588377116381910061653830432169424663308389713602771587579550281312926357856851761142996294671267850612845439531927431998245245859816685126138138703069971869292712904955036522745646099842367584831507544793710952743007692961232316534143599433218625984548788989153839585399966432834121119076798025673415350121320926296845872837861566076310316497779895549721176545510701410624522251944811226081084109365470949734986201606191513825083836044775604040460705570945413821164576627549956952247476743537019032489929687200902013569976427548752088894565810810253058123810786090091983075588305365713239613223867816941015903396457310096071980745250561107572103921521607211663299104766783982159539504496502950436361538953041561241720445247956516147009343886373418130413409002075454709519144310270946191049143630999109264357244845872763249549667310906849601102286137454318248353449434066654626665949743342466036207765858633438798888589018618896550439235478606655674434961933197307463363025963935095463311775650974728745563921263087713452596343708213105081914949166948295189594753788720847259775839909666235032939342907583622218217955177576828532961068421343144479619759105724506744296461679079644478938521002798220239743568283052374137077273274537168210558697292464717334873208466022384147451297640276899093659462496805384778153893516250222470958814245221919621412980373569405903545924542958092807634711900530796313915283458028636654508816955740373268227581490085755247615333499389877442486993755015265519157127202036663623939605820957546629391540342732836205675617521455830379786225064386911970052751380399873247193233252978308084833586099403833843322973524899124282790939076527642630791942386561632069502180524159534712234928795764687570021251938797672661053794407556838212794323569472887144454883621010851151055403312055650849437942388625599079560699598167638731604719390504025834216555571188066703350309314770251267422187362531763688464684094056113007551425723243624236885678244392603743844349286777334743054400277367286838431435429319108169818047568707307769677102160638569768568505186151378430098267859646736201942709278881462496549878408765920415119533680041901765209499662968360623169216882472683602601356482813952609857618590072237568051858512447809086071545535598723935782984226491288980984566107142513782372496151076794455434635931003184057874220124820493697795771529907149592476816762281834209179852452013969916034268886555326342895606983228413465453483324164320715293055480320236545172040183692102708216087198200207472329657935916693596851043597067348871979587244931273768739722706105885647241636102140322314469918708177256431053815154767596966242604778211187202535839607449254716815817287172010385439006332340849660790887409808178936383425576912441661726020939335870968924411198105702714449192482206716406591090917745899048371309964064250046891915696889080708688527641591876348819322345581860607134061961952210910310013672867728946134028235539676805999257674780910574888748235866888714916427891137657362660198941317937581332104344510107502300329941211441646003270935911261893483492301021185943816420719774411098170530408316704946856171811932066449470315944206590395479783693703012406562375608737446549106396414565682760729773703325621622956803406324112645890859720029656271056057369110276654816260318340981869639166190303131855257319763422433730794349743836365259316112427502591151462936693743329292259965782058267320558556580296619545278754643691579688118057852928481752951237235496236930096639377841634864645252975368431949515515714146581608425380528230840162547822673225716548036168402208643170929579384628601553273823129152534328896216629520887695771960050313210025943012485088135482995612491081873437597011417352081911949910593555742058539702148864060287437358910731405025130843647983242476826754920355401678532364593900694997256471150713380735449468858364088615483843251710369792201820594301328323855419733301205393797458546715903433891373960867985428148598431339091957286298428291303149461756421548030580088753806488023274756671717611434366355967865396315584364093523140864418776270129326884345568734167268406069310952044278024396552572649066795393646818270083670057131650505298161074778513801156406505472437152763615878765127354657841161309300954187553765282414909197376062137599092373003386246743637289397074425873619334278749663366150303831077275238609404671357931579634279781419054230642055374189009321246169274709615282651751089010080025494476035863917265804609871909505598214425888011455602370406258771286671670673750521151787966429870885250873718712031346832239136644580027742039006119254151141945214930885112181128771786694260340624741697944320171606000514964190908953470755537244648761304575088583172012914874969126947168543958537379333459502104450152941970565892969970343929941786616044959570484983744973077252120795640595212228476473717726033120335909861760224477616636839890513681018297780510592994220028578856257156592091770258810351574541237129566023512586239016393059626264275181949644965458055256131234964873570417319462625973235815487432258801850218276964685043647032104135432070549915820664407380794096581297835367760619577286865339548088890871937002692108733363927619400760366451956739781924562316253146558337181101150456178472954965079657254262270245302272220463625961793658100540230357486415444891720034491785842069104797492589764576318353477466933084539104673196100514456136305429013152233840991107657121646600477987164606247246819788312855142949020732743790544008469725210270232372050919776231261900661814713798559205991074107911550895470907421623300211003708086442378306040393229603101522213317876693773013858553896639735434210578331789793590907784907450982826287400265856972922110111912041919508906552464720534849034248450502547194476526862456587944348304253187286824564626172350645619449796678353987881505202620846056558315707619842973356408910452341838305252436333041527963480896176175684278244270695349071503653655708515507903562754960768086781001757777925991918458345969306616144707424959104567675382233824731293960262287658209992233023853715425396215416916522802329638285972099170692849208012234821062923372577340643491241409647699668855240945749195469089729580560407740169230806415675686233316705224374065395014617733089201004389270646965342369612684046156240452824414757884095432443813957696931055427731796642567137372298652876433856522389990411662159997778121446553172425686497322883939340672063364082197390500588671644540728083855192959497285161122955814814604666621501413099935217861893427056555489670726486608570900062560992333522428349552159735915925180528655499640630406231189634078561190705785019707529611620239739238384947903673827707923116567515227054325962219460271705151214129295316115694170319450399683875553954911318292933603679500401883791187006607355842503701542991363871715318536946616003901527930085758850063491485014549227145288747539766230575423366110946256035847572777820136678284361363232421051810092197420066298723298833502361136917942238097248987266578502025222802351523454349499529580385402837435628199031840995422314961314333358433590567814911941770435238854167349697698302978203053923131568006390405495287978092023605345108713611690790377052122431527934131284241820726150299081995069592149039618959412160740634452583523525834253372734183716839747429452758974088269313704836657488986853051438327029178560925636443361742903824350604726035252113023320864257242006161207453949402382156713545691054878515354349984019940054637324749206455704867883157510033194361715307877166496923974814990440953422176288495109517007409776950307733457185209172266534568198802697425967795898160647418333503399990627259267487168319619672693140191053520227767760059048710606136602412894126138529955126835770949213563339640973392348763482721669289026477066934887080556337489423307880984956060130904062811565942635175132557686859599149786970309406707403102710639757118909970986267409744962794056688994266323373755196483022991521469888291193348582203233978720862054215414284637926349699978079643492966187081971225721708435209751850235661980309784256446954124260037054743565307682470365611912454288028426799774053902111940627050589299267934967172937246630258496192447669894237170984821737021342929770798870305293677732067377623777052381216381758173261602588735057983616065713934582392521015385725443587145327979978120076157262987142231183936834764626018741968448501377598037977551634948658343922986858880747451698182503502869931815726335336990290793471200805194480839676314267015190074466072456600985594939209593023507175348545156984664408858767031335289161212298127018363984407122017373542009044665506491271326004766591635426750993166665996631627122027072982646039007157121599573533070104403630862361020570139396487679442671051309591181672206673785366697012933230735619157597869296536975030343371307395372655689816330068717445115230226472076843152407838239515148918438676679503298561121990421767443863842041743845004117987137692139412325661875543023290341000291455113900824008283111935669576502687038046192576475947774255134756754216040739771785730212383218763260485363668459020196416554733147837159670490568994630007056580321336807314358015468545810362221259266709779843228652277193610687692082856709011525960998425737514619010448002504173250811811338416376979152516471141972712023815822627616271498661322403379751255030725575831002451003975014440856952959000770295433859307457673459353801313890133256680909165597396159549911238778562757877435373465860648648138108667849936639300293019103500423178258519795520927370375775320554963754543882709456023784234277253392512508281656357933086033507686437474591933004919140474045228907171323879053002956365042463240209171824706470951304721485751100778958120644386961799970826507215810613394420643867670805874251296115926649014563912005910753166703839706117465566178881818340100287016040125191645153715679119392671612560953568627586410203128314068102096969037551686074656319285723800945757196726303638402140397900664969211221369033514650487849674037462993403724761343347817141847097762331287765318431266769738168739266810998749387698441987185378778857783163605470538787503057078204407566721765952250129640059562483281572020241888496737645833421660447372624687381224884816988574292270466187120745629520501923286993250930057562555743426797720552343147803939664121176700405837953738852614018822103094154736601590720946582171959882451031823910476485230381226983761059284844811708557501520760536840920225938804616308601077518858332970091727969402044735567561865134448947965111786146074805691909301417436081184810717780068791832267822368957147650242986252277499900982838928642429343780749316705878122340636668307708006773179814996578705925747093063503470085177892248779788289415362727362997652188340181489287422341458732296907293777887271084518654330660979331055741420944154763770420613480344370925771210099414970607497534670251659600244342149808993826683792185912571715040696060932704933491162664296910893648283673332564101820948808921542714740532902414786454853385653568467006802591208006678889053756687009116297581112903231480730300298423708238523665817578173211682662564608300440860106196115993095232193760121206808854025977405135300239189422701171847823805723678052581322951948820278798194817951687297864710273370194494023593694005488621353323240656759513617822714133029514063834350357950133490901361318663463724634470425974847131619951055750202883829547214236189252478038327301350861830682752536226074857054998742051493490904745273839089200642255443890128236210561732563822231428092759583210415291251649677747332416313161791519194553354431297084887687195538437398513823313380386876051926280252324100818255772120829576875344094580011069812954598213712045555287850211900289824193259349111986594795812522966383806840995877900723766038958628011998449013981402449011057263527590322962696643845430440661881288588056114499367690469767512585677367458367752800007311847411061785324035682510293649924328950056504555866953625619633371751840573955013749445271943144119081865928001883444836397663465658561932418026320850530612214204972176939262142936167413100683999879294995928122744774361936850791659002500305592932795672098055472183910685346024388121668162863646370843599658228931892810178959364143748969534733161913125169711451328620961052951856145779085666187779949055165129376716147567209831272849672013768335587382895721374860625633150402052817861949512561490138151830778322049529150733432125036260217992894924868882075848659339688262760869963867448185399203437590952972976762794025892419214384300031092213974130829514585136633341194261729198348557370618396563953325213476051038797903624715431226567612851449122814650667386790750332582008382341904579136692589736400836771500351535015952620269664177454313040522026980930612786638259572412446325558499509700073896328312783871834149930590433638329629029869162894787934995085424176229312791532259379438375974386927130348121654239349779441538312210239165095510250288039666804068982695523548685657588915832826977961296436467566394792064702623173197337781171953669819289748191477326647754121948091774110125062615995786500947479973873439270059115847909307558720325522921350336088886715732110583153144567505533911292712692838515410208873187417699620829313525016355758775550154900938251980289388584024892538712318844514500791380987460806140436057080555008471046373594020222165943187265555882648851169929779844056074147466003767143558452748866797698457578208556872930304926895043043163817847092910030569834014454856840788443172198677479662169293448873027092350083727590995447092345537772121012687089447745421850594774651882391461557202337723196727506280831959199412814406165521166295992870973240109574337327689181761596882096658736457633783386346099790847458451045575276715414992894305069064819538058168968934193837284941454651512192097694357267466035396251265229110056903701713133981316147136212496906030513973517694911680851333948137764709801863969799913960614640510758500319929678702233711211648298339782358881416230033334978649630721498573178838531514946845140813821948936413145372992079772332227522029753666432236859875754844398545857327772482428167733107165999901471503727129858554091746127290862507319261700386737485521801357149788682480896305553473580083231310187171573155243655837768458657430727776692751867040493023610040892505454182457392946088124778282617792650172641496242500754848729724344927648164412870822800470652832983617015655723141695027840980951817558630322602461884854491698830865682720114935584293088703571866199070822358553971261674945036192062334091295089439262431465774619524749268786116323734517191592957000857786467310599066850757182370611795426920261828256401289668342156813008858284668119331903633979877531376329206135793560213331015759241866444000730958936883233423600199393152474495374055177650918697099127510918633339527736555552078741941166944233349629010267396248261653325646835458575524325585774476069353267667953810703500186996760631042579502511118364778303211912864142498377794216456700744304120887640129992669302567153974525767115391789695996836491246139852654004674369826986533888370501362629597554608715090978506675258732230376093690858842177463492630723295379562703471591077864966777724326720245386669671294789074223616762532679468602192164708491832007805659132871533480374796768008998683205857266542995541303110279400401073862152438618452718209616717918625581143957387542810390615718826652900396120524012169581738871167362231444112189750071195568049610680950747676479428911776464648442298154295266152557562606263459654139539701005004218736863676326837853905523398955927142817075405938821514145342350283441335885109016179799037087607308084555883017151170662597241230673114572163130869177272941919670873899891839352369392114367486919785629342294686934968356348437420123006022879856744968150325533654114675294714011004956502541264084662281387455848612966172754353294155913685206210753150046007879098405003357415480996985653925510742929567017268720801947268603443750401812874616488191023744764791168384141993966392622619251567467791716663210815119581907851987713438997111312018872233371824153950042040349785816277940975231142556330734328277778231511602912050949836971757137062694432870704301268566681197984981447386886529139370816673255000464275468511077698710942000722103589566721319446555388701159625088999844591858159179111507140311054062432347779016140567424686060438432961995985547507842961640134318054720677061980102774604853293911255742608458498082784220527721102855266924922547151283143662730365178176880797031262006484635809038728907764549462049904762214072305626858683308255369095121549308575480428761198176539467588482064042382969973360334367161690097629270940343822036244307773043517385972160408841394950405516548782271956135270043926706280030498264792946993356028136520731635499044157500651517466251923553687148077539890757667072676531524543632531233552914140963063710747077235271813445607212760950952043893330885196768782176247575838885385930151087377979276175343315455216168025453464531834143822381633393885468119792553319183172048938648805171451725667142263141066241410108748150984991516019184715266258911965394077741948922610694579631725463883668822951484108994533595890102510324764255167975017234965265817995813017404437458548319198352810972570928140795690700993804286600309939136054898919483044110329939702130806467554156315436116186607290256469705294031015845023123581468448612589832804770321932388456351284669577712982467734223376055013439070426839045644497242794456345653528314592632933010352369406742720539708121780931781175314607361679588196418970861902393795984019827186837719224156949645036721843215652357545932868721708692989301499372449480360153477082976391321663243378376715465866373990514955802492291581583516382293085793263968007891275700432274677166102147645843684520283101434874932938662321316704419225515944829619877624146868055630292556279760124210205504284614399800103667719507410454072541349870096843848668221630636813141376164938600526137704665784307345273666411534475150499063018805462011442452399122911502168874304458064344241672027715643987826497223724241754449307340854825263080992015784053107068255810681011702548947852556599502315341806935024786887353525031710238721804192270162381507964310279256186242986197762959989375337515757180355217819500591877686979731367297557023371320375251809074649264877670784116943526581206486839897887203019283189567704983449072872644919569360936894361807783961204366020066377828673111720879052705079056590541359943877010520202324330616806347965256106946989519079543342347727474793093406868855005577987564535554064134412344492625558714755681010514943785142846072083263884460169264216090648425077255580553982295706290431938031784733946688729745031160024267496311786599530277618681083297035981300618076993094942295241508860317626168879232670361569458730419771025338362748402181203878801247153726185873314988870950909526742992996861220421061219078978355227889155761664526274890645597398816412862912887631067108333591250535936660656554043753259693976692721721937334141023354629073692746594422577696259410473413279770503937078555736626169362735442729911028576374381835974358998900127038105727347858622019898759052125744222274176631167249635022537758166386088000751919759286856700150162585534230873678876456040732085263655168883706234172424258799348379274896031240448914698712071651603371611962529515201657277399339567470369045500140931587622444114781719591567320735975944206841379789634006076846390647070973017295110300535659313899742189257443521716115337399475384244534609623244474950633581101516284818974078748230634133216162508239985879217654112942431954129531426870415553716933772114421875531293568540230876793046406787008610571461613762879194424119192014161831641720895080362805278817549475523177328531170189420653345614669004847473709948624166858343695972752898850227651864092246094137717315092128295963029655606894301979544600566675880842839909418283160809252205097573976563331913027010176258916415785433855184150694766310037811153312851944523200146619068514529062636771872266557684007916461428692210676016867514329328761468490184625168681265705494434191137799384929672534065814999314452346626304045435945363239089605509461399047822521413764848462051758197168648008293939491382017634400513663584362846925922229463770095865661275853946123579427770253277063310480360688775155424261040419426561762676064770693392093881614227206262924591298129015712519134504190547793539378268141647341247499500054774646487025885862825120959273449494454313999107270438299140364659004149620075781574743824261560719960207295469742672025827795495796496767618611301656447544202533092563903784567391713213767219908959281197973946153384695485135807823398091216408658380191096783630742012282674345616516886432104309955849978198778569453147585252844016516318840239248486938492762989776386653805086513361280408128198846624052721186815964528265131794485799832996823716069175865876017972933443395126503405014179059477165611008571748889106746092902527901570146571476858240324756827998819292554273014411297128189112164655797609761903286150276437856334418540380345022488400707544784994692590800992151608472889325837294622454325763289340265644394119538361006953956144789037476449987892331411384728327662699271377244433730920213618613135630033563866085386821042268434865173246042775328627865450466219724940780926854952819244216591468801198865771001873473652051197043517133591189516795141909516857228243083516070978595492364061763856364593473380007373709945703940917605429079360606044665554465756614985696137402259346338894287171959908029052715092733729738456388770994271988256583361700928726200057252004207695842419661052172952547283654139742252510506626279919006775340356782138116999883473954202153441802476840046294170284212786916668863264074904318132908933328943033949034460067680227621989718128206869327227501928104534806414327618503349453187610263080703581966458501798357726384686922074881132832206864590653450948044995505646940372633016914425679998684691145718784137430189995751184127820886218249909110716974416308950235752435666445439481260231512432699147677879270725817574534746540252367613586585681798620604981741509825116082905611073845816848155207389605272747313156982772825274208278704382398013694022391659367876482506135536513433647368428065139791577850248563235011307927101864169092849137719345114374089411519573478556000276652163529574742656600025911660742875233784286206756997341746413743665961605455849125557042621943241364943329899748256263662330675147356125562706180972740545354569148210588485819244563768286950182362990654446070447551471364185351329089049481234242219683215573950483840421655538619921243804007393061656241437529505893940180852223235142189991564715901638056243220111678903706387965526567502893043696870531451979371185322460736316893702325206370097092196932883822228500589868732214215693461259551397144653459250758011967067035307538454893779862953117719245874817537114960217434355715394776887624625310016762273303462966332299201356103040367444706274872378526270411749837229650941577618060715629998688670581144134793249189453155032454185011487693287718290968694935543785586222010232336314444319354382163361966670359389118648636988425009440268296455871376168786185369655780552474064727470899538140646170164595581029222329649717414224501522536747368982685140617105788738752288245415215636174206207078598349529513916981451151382740069579953490957174346838440294029516124320530548257549869112236083540438398847982303124348856637515037217493832115451436226865924620388788007918268988266073230142710704409617321533395801762858529878995063412502255912469240326820371993671294467907819501034196065506669365966194864548838086963296033473941277562005498110157389098390231011080602730115776810723289265255678843662985055343454637121941741809903328321325192657861716348317500203792201384389958759438988424987145886622525456901508254779296674022543609225531501475318213677442066758476966241935463856181014307842448557864487627610181525291048598805900081936333610871297252550114747053745543119397781864697947429083702491499604537367654512403098387505491267734365244404102141644694108177006519764706249871614956042828834047390412792126293017219091743748527381701613540088389131683764813611036900712042093453391251416867828302422416760839734749799793899815343916529427468171252634822780474183712325612844011233347540510143509894449062110509169566592715752288978273703155255330235912749585224116934355972310416889614391924421294086877873666284378399421695023798047396961981061720735155033760613786537858931649407254405520676770009207884604565115629162855407703012194652597229971781472975585124858518963526616064441263448100431258754178303516947807784911500706502096555654069482519475199547827443694912285394983304974955724715135679728704132962433514882100771217436276080879718248492272514274562999606666887178939073204169370577410303387043052750917346466759134699455990953611684541981336205149512395910531445501939612131360596387794208956237441312699800932744795916974729426704173457851731200087835861254624699572857401518310870630087502981760732191088586167680971241069870742052611122461857808092610912192829538085201657435365810858513154623953072252013884183883329283529747845757206172588803446491844755203962663695251939393290766251455245434475426033734220518920633503244121093325374868437989278043837095244505826506055398330665544188962145348168491946557413296188562392419025779500221775207795404328321485076243781114856687113638654394879740317131901835539370199112249180148816623544613930278987648693209238452154476721037183638079430124743690242987959626556132302740965696692610530557571183067819629896150784432219573899804844298309982290629619373995536972808631959073024720618711303342545405583053720456467890353084125709023192232126988224088484294106686506871859505983952406357225995567682006533977313147488730774877992061761995608777813708069540461896382149897137027434932156322957793851010255507001752065566163600913688624237552639855975256844936870794023423630315670998292932116691992190228082837804238524179005366457041515203926123388895342277190097343308626080084628301836275691546339154668574403211157170812827172538129035965038645177837138570169397896100789573104662335085844218677925195106041431384344972399218498119675149031980848389578883422087566365265386905832126564609876543794883213859057139674564189631761038912760675083226323446591300375021646668174240257060036427011266243434457694205805199347027895277051922245130379839646465922297537861320980144737576974727111731808615459752200752073265001906034326062776480101489324327602401470181805134265966443514044747992872402842752521707070803437703837991054185803980584646150437301657589146831024806355457820983543398592831967619592621844500787564162693547053968775279389985198862190290286410851397605419523476352748191528056828655075213118043910580098763589474273125749768555970859418327277653746573224891766933091818668827367417769769495820494200413892364431131159336645450543161833559363581839548101355636148047910271181686892177140088667114547767509258246161039968533973026623815340081735697734562315086798425177330950195291944448728698152017084459565587940306663867622269130233183800795645266638904278095112625213878985691923432067855113977434204947928284923469846717973253484354722433898698274072592766991568565343836243941059786601345061855223555703259777989826708986281014166189401939040578029964546529845717288207787833697595108265663712328940140769155898776064602676495846492827544062874586240973643441759556469902215979559250634657946392646759866031598348255732225685366271337201063005778364609768257396301173417008433974582977192613791703258233709613305653908389850999162728313650694662768110652807437739466112472883261836154326199052944348654689500070985683321647957000637940581330054227678691673247165199351750255074478463110758758456354715732109416838744621205567321975805308012978601010606406447915064961031354749600489205476380255211222829675076770011597999433445230762741370668319397250139797190787325434516455231137245195385519007569968650628273585869787149383908919764093713967113899581818193924850808037574351465317264496237505567181641133335338513687942964257951169162006329448624069649260465360655596112628728315776296257305222845518454688635019699009449313260191024068059353543649122198239314491266163867050102852899485064572271224964916934770087237801259337484218297903843962165654780667319727093348977870180592451618788219644838453965601653169906911583484566726843854335198085074240419893902895163443418246392044213800752594713131548448629246797197026610800595337989288246656736110233404107967366598697327147393732188676058950848840857213550539457037851748528203943511124467887738398497841744369160251976291659865277692083057690323941449424365184816702798933253300003048488867862460328933344420696579140380035484891183572764160173172388125444637953542183356073728505293745756886975688081666570004306674896414183357298808154267504047651294410963556951658475856543295235438898192590256928261492890996797275264370521915518042226244833125012859630095634567482286799907665630416379821752173430252146157388407827159732777508475721880951225436142671517197098434324224394456459917817835740963847883076859039449458548661014719250008603970582492686938757268834380546901175346690247096133402265731795925823632312740281448692146918637550951830822791253384453881145878151195228779225801624343995440759486825411152943616904395040694310262382400863401949649117595820847252021670446499438666923826641043934214724929402838852385566599438213798788006846240560163984065435456220800125508705259473150879456966890687014344774007682831494454042612882401247403887858820285986617224019523769734791296509812038537569980264903948337370961099648966877735920979410482537075371491897636817660281257589968839179678121867292942157091264801027496857455784723138452739370623616966750244289866908306068317317767493445627249770616901054521830269866532826970128587365357987025517486105243433421358717244856573366528475313638928187598647484568833257286090565755486208929615400637490324446949292337058439305654121523936359988660956246519408391883964615201080936070853143212994295083065056916555049803903538956387330892595855850001978244290428843125849297043730553860870333000084994993816730735891853699004607723764779220186467153649887224900145848651399336308960878311459019330345116498749542377984138165409434492507341561290580621407058695455330251125980117114362168969221446315953519218217603447145753492637190882711652600288681552573812324153215703427867709785209860355052643376712169757107487129553001513112216801879278671128196141144848897192670829443156960740896044259972718346935303596329766881264949303170125454581560178851950607799537084990945744336005908013229646590674730258716658236875239898709704650988396712224096415983443129376116870638303910837102275995376006998672160388542178412723243311824823224725081242523015491966867332664554680096786254389759779146359958887655404470036730337835311711329293304961555605655280974278377758342174985121828683176609035519243857060446807176865093182340031000813158789988274260921335925753816123032998382829278745911753373766263164275320877185667850638283264475329324082574646809925386175271431050092409985099827816284376357729410226034383717888569091332186538714686613195656142266051959897150908770570193844795573410803911899979840008475854791333577322340365517253316993406745308388565240505330402741633256803236234243674257775519459933921048485419584961412280828271414015531788845697842753553316529812996000990606150087362619123894574451980149058417241124292486528074393177117728421629367834532212588745270997813976967471332592408241276746733153458901878404602352962298515005015550591301400220999223749280311948477777913391504364879913609420386383537204991140754923032110393298833556525056567587038549115507736164224220078417577573465356132292512715861861601540153131865158622114974161091563722978871889648273739708813026611860336981655182501061422395131722555972764647375353022222036666575788721814306790243084363714298702835165698253589679475060042799030502138922926959758304813807247857353451380455373673351561513284007672964953402168102824547939311797175385156310320763968907775435612647556514775692589212067093162844599224464532746294175108289178889235012840909952263670084938377638874656778647466043013627252375734549472888564467911616227548182307017760842270675228131610495617337436527749812882049807013328876872980066322225165081250581751157538371749559514941729454333715467651878131016120638644609345778940327829978193910043532214729560886349559256582621415649324358820320285087428411395929481081582230710984852084015668486760540765524555100593842892203352741931938849962382718672520765327118025645254462953101388388651384413843140530827465628206667182262313535583635804498776519948192682274476546312529884833846281124457200002303990116670039995347100978723299182580709197946607307756551074209887469364582795877555523260167369293475225897761057727658869383968312198792449575506188378786841943638195971424708954268167384380316622933999542857876899276387142071757188047384044471451821480630364189755340476831164692949885991847688084595890385208244635451892029665611691022507880951674835707306229195035328997831222004859769912495044545682086452464644546339328904181819433366146655814857378553242568915431714845671183083647130454369098609220536417810219601753992046801138586642473700136739933767244356319018522074852125244063388744518970615748608453058734106147442263671364714902172579743260213711201813209909489699653698468711912912333151187825608387281279797972998932212920145557573606952117486074631844740864431780005096639130287307421150384351892207512680670687952162939943598284304024222266985782373470182957107155987170631368302894335474932887611474857023768491270940983767591134565912732535794669320099240832666024167140659771857026011623304976293262270987812585413906872789260515825269230068117314490564030347397807253822047896924850139136102609523365000222039258077605491042630881354744670558563733225403577597939894282374520466403923576234622730331533321371579879400953571496750030632214588807903250088186970570817660526987811494811868897407097526684995305355052586192377520161798498561001387954768928160332428541787670957478154045926001797285110372204615146964980433490056796565126255448886308842830569167872421762466942872187830331039238028748387811521332800834077593799946629374554813749712714412715394295962516149553415358216923902875078818867328130300965004196787963758977891404227831887957620535569232637349369603606932963980363696674670735917984218601548211276950733633090853784437896604484291771339934545461001512398857798103123660222317169937095930197713299409269732864685820844687885796085750296812841422470485766733064888216462568061950268377890144483065144265105919690014746906681012425246903427227423546695321184695129332800453886088635564188224793186711680681878959324666358741868469923821338237134889314229979237510313132275370767895102598853434475113429294978368891171602454300012447063883619812013530690494929479797042040056854853834966830592672636617875122843498239721510524182820649881210698006173506537980201743470350762906927463178076553258130399386762064473988477101298286088008019447670149059176987988058072110074562551392297772720710207852555200309436983719163463061130840942451148416883055136065849310062423343494386743691767178845021399246339066917054791835379698051449500674846794470644288412142266705709045255119771838790080197990194630450563597470139115965982330491640100222904924029569177729838471847815051104963600301779245901381248503075472196928337260672868956442668218013026083976487305952873497315791672351986599392118361317709914052840114306980356925010274425105704433652365766331974541642915848728279740551436533045491307036176096690400984504666720149383789430646286177685449166954580933867204200964675756306628784575411708073684091798205080176547914668417163569024038640934181615000850200094911843402478683744272699233759511449842724895678772141554827091257013899608130672558044994371768008214646026448309404052195557821472323594170410727963850222020421524952571519015294720323473981505504595676436065247225079665995510621955108486937333577463042225513122436812965771897557900488387648258473310717496328824120371944084743689470265316669474442657013621943715403513041891097380094663950713263037013627190200403276576890818893371394095049703946901002842635295657574201657257564848179929377825571630305828336039695891979756840350214561050303184054651972857115799309621350674832066052520003875099797326915714084929466395561000938315584744203270192102442241743137270644650275072454800054349383286720623306172076039678775049696788775330146823179463053491108121287765829391968707764473830388576192682587372625807544365124199533134341848124215668150672682984387819190801332442921080662569617692612488706173803664063444371015818248977875108660672526959695810599607334502558966800360178576341578568722692635121267665578729652619745221326315716823272013281675824549551091310374770113274168430960403430274826957945288841265081591642885917857360844962873077697288936459849307716033427188373534645839931661142960379210171629824587388418625187452873825074938370796089306888718793081271675995168400729947565271191238183441318228442093904961173120845793190136025912948465487607398967004548546066869522668326921995356229248387454322333543418944061462312969087147506220603121005884259811461817291015121789234113896724087220215561512755719277313816634153034428137034659464949031556823675486357847392675932823604592036630651399579582388695032915620941053906438911801859073113054670824341413593611662355128187561125884932596603891677674595763801570163376142933375282267382897466094410353898316516827108661112775466406509906362024881253280832035551371016905344707278369038699360071922795704317461736205998649161765045258096375632619071454554532042638431839289343054474508549542147883208951723079508238710167286414007314061066261931393323549953321177310017202190942151115211302351524957162110613828097799967695719948251201727735325643503369062667620408620190956392838487424995674446982875135282710244765913700326526642958797070581668052564852582432762538101410169551764835587830582954830518356083174667537537284085420208389674591843437836653904135521112970612293120074508637139273826855416870548952297775626831142314032335901403930633486999452139424739036043848224488955571827114009425795788636732635438155837943614359546284288341198043699546966484195593249570214758975988402199790797950138335591288524304997795041273551242874159225354851505910084571876932378807028889699269060499835400559233908466783287519564001598150327411089844677070101629338690204736251191011531103904339118090856742126553896635175920377226892179880925880579182136984263807387158956427425512439368419050099343260922461148641466853449710765870636720461316263146462166561414924132206466929923864950467515476468723155242371804719167316751309696445118139964649107417756257110878276715473349143940056389320319959954780218180896919421260690257382033878414668170658189488568037353561431616720015966085156761186514824381681616963856919984104791992422719668087189631833288728198286717871280895389944650059128082656242371447299621512690349497926653443423211508734234672345350522340173948208455669538639073286149449807221794228881667787114543572517842632912041802740578537896419857254952702282792283309581348505198878452486317979923260688988622121471710939404848013711769616742507321716657495126096325026815031333225546513656386685910734586449591540477959418727468118867915181413160494047708142472851351328743127816666129617658934496918663275592113995184790732246133790292295559725419604401453914704602094625544724983801376299058002571333091758274353497585276267835408886515065233523291040936979960906570569689199714714970541744535184527592800004320426138123052193561696766750590580508462882375896239952567694043670155197543694905083659127135526598040122870714140220893936376736673210876917472379540850250446740671940600565604013199484687596686321740968364491264191981654602679623777890500274151160744262912099905459459139172350882268257186167639977261231470767693727054325593500300889904480819457189791137479755631859528493047858665418182009036132145781172340706383301951683553798282597343977326686761020656991982550082132038963262829668153430208270917878197100961450608882727087822900365851036905449111874973836067373193380216368135765434373502328779511216508751008639869311132904876796225458436486689285701193031003421852057690641156868933592973059083802621394339102420491701227268420575577424293721084933693815650683374644674080598503803369424557462338573650446680119016962080650422103729165601566987436130242762533961762859576377837217744042730416484201383277646400395586012703750429438079947644604476504813121266778506831352634465845553344890014636739736557237449752573188054990618059637963646857212770873440607286151775271079596630119321942314219724069325429679595736327226945224250143672475490039524532720039891785390779599135646274096939501534911902713613587267685078183130301405291783065708249637949290288410906830800437424650259875097180588516788075962829255379309782478763077395448064076863705051087877784098814608956079613845357936782386245464460387483778560739382505079445403324707559670926056021193227355110280860503441364317378039494565676949440555109105089069516985830250237137099228063802427336439198441226519814681580692703372189272277689241020589521642157010418155980223824577849535581907227669177649483013543658654437143868819034411438727896814703299587362164774313052747684044357868215575866919637844982653118313407151616586021389529898739022716138659006281177100622740470591372824590501094709990790095092247388891301718087363547685311645358861980407687668629380086962670889622680420206287817478366324583503627957526286436287639024224045900605437352442144806098822349233058324422414214356781923921097581655457477997734349086671464480440915735535731924635335467534731574589146913626958475772340299205477482113912449170724189672019909066039882341531509261321952501586097809658236569431025289634152730520639687874451274483410594575794722312830494896842413524488809849986373237135817569687933715632189547926495301964909172416734821139361228045308557354181355640535479639357935707997250301565477658210602475882540340092925768668691966013568933301797142062753792986886398582751696107050737185504935305150515643980596530036767954809571373795567916948035452204081338747882176052299930687859037966188147019858267152668779786956672433352674172279637308422754664379856323642975511212638168112758122293297216131851950936907717154878419530296144221936004033131961085534600515128653012208610541745213933580378322431250482770370159983866590865017373730922637428962019460889276073423915420968203474252709813931177324771684111581693576569994827103324779258355175808727921630749275787621170321205184793434085205930454573221602165199309633140996858699440840871549840016794877426008807316076511235604620696458213358745523393311661154899799609608979955602335057022525316722368611960348735058684046930280176587938255380484481113854023333648451205460289551018274752259068851442541448072772560419709819766573465780854684906134074332389115229563441716039190286142113477292703723350009424153187739677890161974664832729322914767591952782683038755533083624683471844532659380869124644824121909742697707282823534902100288993000658463652268889190363888194391671693133447178677519876032816759215546363364800110694262513916271824313060529156630505788881053407392679135727991263167042067956675336790619752977897644846734235716048320840754034207120437266343640738239531773373737806324104352938525491182036165153554364123883075364284032397992650421476576770399264557721956758419321953840204336923784445031790278619757742607564932012242733869155720885778065760490196473805998285205218499122762533623097172634779637249669819170851268727078928439807330685257042776121622008900514591036744962689966651726543117346289662628672909830920346463383958797401309135316156230741999799141575538541695359212726485286232298775842684570682861621535625327708651603905566318601026455202542788342606020320893784288395089674380141726150271856553005891029427484391803243383842445580728916630241333907002946581595583626443330351269745374636738710662297096111521262425807506233185396281202956456743530378194423305930855692545505816478446120914447223788303258779616050152242571850368395111737130925987895253982129232537542308061805021876205580885070199258513745683172813190145733011079968427913760335415606570531408191536773298500825607272835610987564622214122302326543351851152253896391109405712731844192944287904593089093833444775014236181212422231880907657402203865144341938339917402382976221601127702948228763855257700777584922134144496981179541536303926989777985489518552530613952206735078865060706342175916820100805012316830555938920205554895881894053191325672574769271792212652939747739354164041824397489273919070397121873402740222840413330192881042134454183054878074652420656644870470689180568059659489271622118059824178371085045570495802238563533816224228484136904903633926430420524966887940160122079135463242531402618239652262680769748193502569776125349738586492635833307742149150117588091042162531731220670769400738248514511374993924924244048451082533896545228338785549838950547956448679499136369458188309612772174921400250172099981528265922185585014054089328717301947707987853232046498973937320148726034042421248899827997980143655845266147823348952105584970519291740186557878672732093849720429981458893226501855511845915031648776524780989522465223965694966529517081856827229441286277843651831221568681647651344546803330887344605560571319270819914787172713216274800272031198648264125743460081013623595313346154921027975622855689668917343650162485684594815304133587824717608572721708258085714513899911170070619339642993930784579080474352404778775531115047091284778073605129736558261933886185282764025544523120006090613820018847523638661910670219649350020736487880595281404450927577196451183162774155237731617394326929892014157469636317891277082967800997534780708468824088592553559202307073338895121402854819361068755014640587703424362543300524447010555874654630531492798943194527649866895052534219483424025321813524518599864874066033877260358159425013462216978376096782968742461468667903185637135937005098544537664382552244672718331621721287960133180454723246269476093690779358786109796457098332651537447983864012002739452474037642697451007505828402486333088646777758104184522597859347622261027923039969135898607411193515694006011773682286873636704713793747034153181622718668454593980973334522342769332007753710044500440086892070879924999599766546096853677619813651652673482802684231742145867617525420490092789199849736947658536158476867456017764777142499049148132365738259616476777123707730953296050030611773683799949149223133565335006413454567454586465163854492243430619132144144256768493059734138842529820601646567237873886445311623391722684911207487320655878296546023393001350478002608426669192722092626475352053809531368542866382959467997232736612386990145549513135874304359703236753580968299912042392805217755912175289818506998944556568646414941943550482404142885414882244807520615008687423057121317880804016956507999531665129809431910533545717316039568037905370993346989627792327154850040531569278548208805951798866734755922431546747769851434146083466641335341270777618026354889378170174017498938770609547084368305616793307466344873459656444043788079763185681439136440886154063946734539859094785354816047378997979681159732458310422235409397066449678729719530900794804299992146013908769260156198203586305483984498538342077853335071922478140054475017218175311050787229120340811285027636489212539451956218486062670982393569090843369893208657238358311436697654089911115864204490809926556940548557542108571438610920037908668244850870008724497997592153214213494435074643177522532513846610891646521360437591327405718439564088413394655572136326430402355946686111058103975086106641309660433941853896323084361358277350699702050414719187767987230740425317844356084495668872529635819173277063955772692065041464725109828696174614267005684736336926045268500555475518502385655892612152067703888791362866925739002130502197800561146291626716672121601123699745069464355693988114168350583746069337549226252141530772885068048583022554577895059082508022182720875990517490996288290367294551186102248517838914005303795795529231274399028988513622905461650752390345452679267467062380984805310693832929577201792271015626422739906268699855486760164109020175888751995492362305867992025539821080845855744021221133119752518280880728603631309576702458693630117556755353580779060327279722154335798957129756737029140639312051613798063448066535513681880467721330191315275654889495838413123613478404327142173398595223032911667685476493598771727448416503666292316244377749040564145631454695017530897311205226196438699312616952720865586632885769805647087190389929587499445517890516557595890864512382418981192694961753591106663627162128861111255250689399353031395360299844448879722424144297364540800116856134399313818578898167956504653745398859643220691857987716367330777633634838288437112959186179709584273685454072540365422071044902046938859362677155260013427406299972351464767449155001559265375076859756444713084233137980386051767167024702937940401709631458468531866473899904112044432432688107663894259909564097329774034450636477243704353328560206635787060591724666364403960935256660566934663941658638524523748270371294090253666077640372561623362957103306377893048154957068716425558401446397676855755207562961210897364269942966066083504704616716649346300722009885540160879918989290707029668416317460199468203860260173058092530641240414603712176722185085813606316021537392705980950588037380074102402809367376335692301906720618246234663938170879165889431993611295104391287950687627134018484922120666032634765730967223631733397900602598817839576021439092513257952317164733979074222883643446134216959664650369305592580864753854338349430095913266653679756519899742938714724217310772157060976309112756543313462926071583297021952831543234484838240601556887203315972176793748380793823441789023751988436245893892088713109817483754897928719009175687824696256579580762868137227368179504768630769249902055208645743676023503189164469364123715209203296179943691212680849060405346040198613200815408147461181959465530942045065820543860301941626550508808726508768094707782759212073786200681909710228529331011098246780261675925708194273626897145070078152523368574576449600876711076917322626377321864604214279430812129423430598268565831756626694324031719284348348705953250860643092714025006183898967021163237610113525535039971581225100152978323379049074885699340998499789824709549118937374096433721790104070264390659989475475312638198890348439625363317613825825935060816896438995128486759533231162711756748920146009393510335981841121864974124720553651385836130881313688986286614422186784358216249221207869704681041171993328702021740117392185181147322431065575512858550475830318755739678694084146402321407092395611530538436085758233060713917151722566540650174683663270607765805662120094524724205847234745322343542413341923726935218633368098668249079616078721732674223641266944935396455849714132454995414700335859974027499947175139859181673964969073923051527727473692798315330075765210579733646934078835762399076622454266480779084108980380122567819397280095160856069302919435382281271550250304598578131681178139065163131465163340791885448328615982761976590309696912609115017378173941038444342875639972586040540004701229305142869910060330749188126243952739962775035026863726696700065944294137940221849240313343083901363077620027827236840436211985916217277261166472321936914938519117564568840064948805024353417336167712951122764879466390967769810991762360499944912492372263509802447134444786210913403900064362443451772627238852233046290945980633044145254163244896407090767709123012762496019737746789249814326748969355094438978852364964624511079326770219820173758341534932654134599994732169131485293611979258932566257798643138098086667855362379661959125757345541464881275813620225756060585468709819330611955141396457926672932731614019979305800158246208613791077744343892665620871926651862388703515138677636127006349417654317126073366250499572190786393749434697008849374465846718219398328018913975565279323943744720841783596553616279968685450598965616226912206378347196027144375581535635908526874424356153948090752964495766388099172327232833877153487921247520337707214811828007402213791348687710044981183495147101811056573754349967201455801680510160425981825224319439506439351896352018310400442382049879714519995253595023771761356369184512659911152591876236471097854136180652944424546506650125532373732237131161916571868464111390280753776120983930798549268038424342134385853609819744228087689773249509700818605356639941440077314723325869024496543718327163941440082997808430310125164991985715568274770733947913771081147025127390271810539583069485961357874716045634193287573058259937869697621703171342277787765161439407518635289012995739170110430332523466737857902346566416358183470307867107416723323005513487809342179042883262884951665384701431092032882231906250627031284906656121325755068380924473766901515908225838958133881291278405520635238236558065574831269026501980399121979771150377528839470074871486087190997366210785062946450259598738536484331352806007331722263564663282976508497395295854486548064345925579503420449541651036544675982453595178021650965559863521111696298496649989419631846644096645585275491692629310436269679019753646038255112048382920385570794513513689237197675484103145874965156061440327312361554660093345972909759708067156293895964498348824366429107076247724649653541501358562308656005957251361884684786289239099496450567252492099435179853219707949220209185231192715588207788638639528037897453171066720708075346779900012456408274540736501636660449515060123629528649459739078746387122028689135292049612714186752131357464544762729415456583376214828195987544589178773821959365767435814239702306383960640949527500825559829968182148100112799122302342920449771114218986059941911457577131568457253750498741368078764335821467785324022775867923483318720667168672527743368085855824990049729419622983634923015757712932190707730388182626826881688796803773599450689542811556822710995210630259660783278409205977827615599043702632286909842530389827985644262973173588371776936837409088429625600198384041205822638856584369426612705357507214730326339266126418223544085425523295273221417305248472027275818415722655103543336474014070380939726837144122016087070918498245618270669764467519321491585145135900616926224498340948177124187006098120274164485131757664448279331173314246043322127448816994750812429148442074825070100957947485194449523747619003918227825636267358260567298794302364288277014434054816168557021569650036568647295297756727927325577304923628945704892805128639516318705288377189592963637836680505678279683898092191343487834103982581532615192379830658783923593667295066493753841643367364088268892054022650685220784116576394148253175631898872823930083537186357437965906347082972206240910919831097401571055828296645067554515102376127571928087829566297010280139735035784728680052704199584086458211426954688379995346350141894947474733008905686321810690314973960363372904419565160126230621095907757172553621880154553730452538206316425272001337592749538152966146893658049324604039158974877248647892731887012219338680476271805899182939811832387271494860024060015336953030256655129717935693612994009707482618353074522408864974428919679094736770822130818347117448128132132429285147229324449046174077801395344833722855797078365730132424409614032883780182556236606538122540208942231170343260320057401459481660918338276744923133015461577379418717043810681778828180654705946531863672212059730318945105606054604287982030133140485660696035642975257542935026307553682031837926072096173341279509212339872025435805590544662054439031646059155080721571410191619096233120793741355857794963509523081095934824980740207973431828454984585015087589837018564344620020600328690773419826747945983359235665138034826125141645615962696272542742882771336101357064085888830587064379515167855496498359900222456025696490684006126491919429258878939467599806222011884692264177374885236115955242572011178042250729537455463036306682008448688995354350790467966260003843965113074119255077169742218291974837619516896399653053841329541941905722195182970230860872110001758332686354858271277924877518611701413873991883800538555690982487797473566878653651416241264404112205461213776284254351565409494448079129940371223258685725609371781817985575763482681264292579955470825832309611243557698219294748025570688858375259486340089748767441039282696171435835527149025216691733367990053597642721141907675715039608665288320241730727053343356983961983696482285395085033425339160225527772895011715360516519397930785724574090066880886673502754179012290219788022356508542816159120271876990942992978165291377060975187482934031828058075593277212048973010792088217295218949970962839253433513926674305739238413594657983132604576652248813359509506410656446775573015002073903456610388262178125767812485980976233259747706129540396013669660593864047757408503403241795218955544484947251936461610313367871483465347389999891435633678643407570536197747042213117991977829615257463564913006721517013888676773752187163522811606190255064767712840028234100041960287862174058934087776189513303649693752263473090046199249863486637971467325812052506963092006536670163232071052876342553098080552774826034495253690562551909802865996760417027402284969712684918646305848405501403757944204452128951467757522685940885243953833444998001048343970169082905463143279380495743275763726263361473139329465163200686969792622719512366221581547488953613685481399224447583327108802670931265844096464058681532046180397850141047903377966168204945914913537305355902544843182692337076183294502008422604016465467729611892161602567805135944413094532882690363699704411676290689221936120128615295840228698495568312323859238295214542989916978193129766716830009786937507456614287300926896624634043445582579868433322759066840126249839933711539683634807759703957982644337895011082514339907671603705342464027116365205194566214337072389942318473595403314795632739821218005097297221018739442696926229853388466099583055802332421383828342396132356445623849941402191159847522260932571204603126077466321251731626759474388208374501289918492724702697168488799477471377598954030638582589691150434360293006710192429905435437301224017781935241257549030883493449056664136883440765491541425407338916916686072060372595835793125172821587121735569879933322522570518161800051720648410676495627402409366425063206355330230724328148751958081803356969348743480247987921870002872472277117273727571557021465026780400761898041657670208227251358208062093438581480472766981932930331346794623330375253192981575477127797570150356516364101775726199299952095497991148588861764587664003332255625132119859894397026624156670468517230474706882484160998034226631333703747521218949664550935344303728535058508545798042278929770149089664733313843376306959615922854301730665485787785493190708774460905171562740010504289574427898793287260940568181013390172578256534752299279652380655591764004902008302053310356285965746288138557763283003308348716259585217822031448846493408535901224489010150804249923418133706595473686807127484619089544726688794199890498717451793282088529644847730700381254266737529626873551438847734679007273445122282710041161684734432651522189550070483201175481278448931521690832221486990345507849478763420192134588941912153549615977919355893999088413796880226264724806531220239961251260307125948085159611645820025753321357489200417348295891763077375414099801517954192449673507456863739251702007198892378986563703320634658357476140225692498816918993425293279532183491501195708417987855821847505064240826432445444926342669503614198012423062882335289365364380784194638413817536389973129097657537010205018020292477891121163985768078638432224782197363436193354667144521256466816490135509177126940453527721720582014443870022160601003862458931152304636056891838253352335011346398738105739247167207736001568079291862346427071267075699024323549662134959368318444676089999928647151230691792274696571600976894001588739453787799675145757939168380651212717174852742430855910021617157541007844070193415379187793493049383787757044717307808274055918092108942395536060205773946847482858387436023869336387436840077284776372967376239160825440603872146956857537042084762770554171360935429373604305555080499642672477077471423110287186526145951218291106993461785262100195266271244962896849315462761205469132531520715647553686517242719514401676126026291077330865891896704786409043832574061198250016906164590311084037085622141080383540709737602545955676993326333910274819189643334578046709672000905281882665511088432100481202491133782980024226397856425649965061329651915367470825639753037506391617102578014089293737152003383469366288282494609653660944268849435013794983018251737050148498904536892640295905974022794053165261928944202990601262848479086869964365851820860362113084267457100923772996921768821217156496009752492055775566592367704495870470253481551209487992841166051184647540275012419758587088852780058745390993369170061959774256042749991477850787528253430238061636915415874067063118341401642695071894585526961219592766967040248112052619408670659168619305722917121807234695591074588457366631532389335206319299935752071948324719709092281428974720857798221310624035396431634921958006705479795064138311598034433253511461824703071763491792782034670860723394272498128604767933119249799399712390294645231594028936663908100193576251371213847208012367719141722244222766694766258568210778476742929525945903150418675182556087994302260255781244430573904712569724564003407208750948217353227981191526603445016394676069085954675165842344911672072437364103500748949922271482608871369614074606719584324455977659197550624432849528109765821013586000472330125800565923766600044741648989542753148286000694344984913629602524694220290823202520699549445162815025272474112050241567580906694515544736527095094442533675408126433801621139971126897694144870304859582112175954138077911854169820503400284515754623584080181476426838672278192247012472858067576178316019622989648816238842978356784399472497143520542698094830397084828266818080175445391063594589532368441721838857667158591979945924908737197108219475547202154442475913942699709384228774742471023664981016635428058794737361023249957456017970735935169311448557105983482844347734237858882028203828482572732240028376589569561522123323548360941306271940256279338318611888626377948610304958777843737641886887114810580599410490159182184773637160775855286596471176000261202441410439568373118905234212866117128611165451207318538345493877830129091828249544965895555435585212936796795099758711414707626172561424734854036998254360195846171858264688797857933011554706611665645435996708259614361160471932832613616117112572453521389491573001490576326780543956958247247140544823718492315043680963873214530125051362397177661914324678026531102615316051741202165872780836266362415556309884616295970166582468434153109656548840005907497778345617828676296841652896588598869857955169773683699059040214786218783978994987153719535606896432259073176855472662809894446081276996157099327793932810793293931469703629392035317734016196573723777387462735952293556307153129143430795058190648906659818148227773351209144664518249610323169220018394368508519064853926205976618385177016450170492292921236945427569922518561002970587739104860800846079536984674839637850231317616293224714948194115090876683431324841477927681831083153072674542963550615965661600928676517565906769315149139195973907381273790304300017457413133973872740727189542286611126493040584103899570810569470439234260720396025932911347181103028928958354186931256666188108851686695832852299078418526846279019841865297080867402828489793713767271977839398545434155908700791743035835847307573066289446705580586850779643562251239194656744571338291558436410294525377858974916137615794376767963086462738036092762087793096711636988703791279663736880602271547730851552461237610016702405600603180421849352389359723194597322089279629291131139111876067632881971173301614596779046982291679334951071090079898047489070883806266889527520751214158886573382576357974244013162469956408648927740068924144707806551425410643008525393506157216796648621927162334634862120906939986099278553670992710253271987349000094965092958405104743283834688802612008846932821015529334854168882313444837328239616095707950180942847566717866052576777841666923313115862350302443116407355135682404078243556273127093803438143843742479825271118460682421408781943561079783187391842555420177702614421555196439109818979848525208947169959102396069561759301012284140724601053974670069376283075265723526307169455762720340310950546634629388398726173343036098389885939425980124913883780535474581802733095990445657305276334119402254863384488973219521180695284866414263119873646691808263467507144505331437876102536003038607153090473533644791835879549230812576580597138734903398594987761023871262376886419888907405826901569171235434981761475934333625003398343247009787379876890771350786330387756104084685126011726891335185359903545222554290479006396338390394226607948730813824158096712975878498630547033804793402161104986015391932751904760099444137004653572162320997674287165763100855782227130179346848949437258408464246173802441237966178106109339417276861116787254074834332946381835971829072367188153210269022930049169383710012528401087391339318868867310390403564563738290561628249504554343993514843389085856696087261719116661401333556556459239778518478365186645533093073771656866143593450637692791905585644724370082746594451626898944289109730324504349612526111036831235331801870972856041308882573876188266913960431999037043617507227136473270902236638850365974618650856890456074675100020443194932885496668837945052656188643941944355005797327904380036936544544698572281000049207388190872026675175475742803109270967009266689146661096275772287544552870051020289344924531113087063228655693775966487613690525700628462082752923671764861968746403112102733063703848031136389596247154430744748385466403173055760994106584641519041437205325784170682179246225020901578430127078063517751751300931622417151117709898288331419018645306889843810082551234223140269434354586203489083061005225791893052018107795665722874802643089164823052587656837407058187138427720895001200937084183241470305874362678788944805669086037580907684843336260521212322535050243211076840431128353322524487058279079851725785733256289490367221679125679897669251530832599030051019957418538465559207188741724831563942389960563480195842634068665993863772367553144933069092491057439234571127245746822690908068178846138093383506010660978741333116992613956966616460838313289155765209336352536940930054903788584464913088872157853716855192381248810707987691737919620854532347909070344331274431266036692941615013565727553898924193688514751843713144613895789174348549158387582086999253989553757045636147541067374869256083305295288735944296585859630734549294286589623305904334287839309208058043918523619924968336433965954837823428540841293732199644655606372792254604937966693027839931058132142131803112680679020278516766493197651748125940664291837126737287687302545235313752374056378863412128567009493004162846541330563558279434625860274693093554340925128724405526133872848301906740873218272017254887149658410822140716979904906697813825022264693718009923931315584363821595424354089550091804384686831066082362283851992445360134893510429279138319532735820704048032022460466181964871161619621374494043690551349722476128408408356448637987142254608941009198772426569638076893071316364460777507995723047346701726705826427149571924245699591833050655410231480221246528058387928826969509990902500140233983811495727981238494836823144915181495647149463459341391159087641757861934926754521337115970115530562923937476540964099519753341960287854797085495956543847770618266511093245111782647708026772117214364168335106949542061862157040607478231987353353618272532846474782496995018169661258467448251704261645115975978630426825690506242809183353641437520768297730729315149378380225687042537344697276215439886517775217441728670442687914156111315325537067291661693890191267783942904147730982189878757427855729723315050686401840597577431767828330034642182143843334109440811191901748928641606537454120802442830348545931774135441450479812382680532452082903063299949195287842000735059384565698818155221179761690963152623981138419472963445860188558905568354760007428856707200311378262905773502572666818202406356139779482687060978645300779820162157930573632331278046092142551434857205566944511534868695220206937888093477851679001510966296780858185088572193260002284058164568739245124321579983077100005052470673017301844826759100331425699459588005800855425819275623093482289534407461145666643075643451775323265005357455806410419460598255476317770197805594942311341726211260944613174814004653556794665046573346218590270918887637558299121355185155648883598899425089854864065922528081430467473085210012073977023357153468365399416156447425366860851068717855723167347578649010367097854824641310731697806720787849125275331432461850488324735774106453253126416459430058893854933552941777253861831047924342622443319101371969304267047711880687868941131506224903933720300873484136439972040934602300945096777090076921800963967639752352621307522235347159609959738784466103890147395672261227500532513064465139256080854682705682756927233840860817284621702389028928892068678272222344781127485406401862344325586352697115411349019219264784644688953665349209397819647579622192886811553465526398213444299447047089830091728841049968049660228815423280719084441521846548245038575104251008905191496540817449974372345278422891299635011694808512462963983157209144700185294394107161581103635095890170345381345341583516803911339529254838840737212459370622616007010930198376648046323730335331234437822763136376800150921826297878297941896415907591222787528552533434739469694927382687020549451867194909797630390489366515022148481492471057419814468154250082151842759035397845557156203494564095344196979916745719142268689788034827800460571578872395407830019834794867762429558600761253176399684547572828733637636039894961651808241030267960753602036603701911232983058400835506747975843190344935088916843782445778067133773377845441954358048251901574861512352839351045378296743091038026838888371559486951580801535378517004508521263686402656370530056855563793982888147208568917750176391409487305459871147612095347839964398246262000755088578114713938335854722156589642978025330206562552643927052051778931745796140100214053357235774133590407241311400668675416842666738151705923572252759866877557315884872222942236838658563913449611552781906495471249958995815404090093133465549557558233984626735338785979977977285471588505935791834895679396251193267623685960677775717425126879691948014902946186687392214145801996817653033383895698417379934098171676885293907261576707454170442325916779624423084174006456282822914564293076158779791034341557340717156459648232617032807869562263493147448928895361756895580734001992782977278332614952325681857560493934223554488822220384777661867941806517878180096334424223810478852165866886611615852633307425220224079173840047721293373783875979153683171601623566771523697333367677362815086353242592303051092263482795614393340828392611233972185988609662922567665268185221660986310654937917277753909863297160503762913577827638974205123375790684589771302488023402631963996156355353459048649688907589302565448030688087101038946706771148945123207040055140569357737371187372227694732168768844085454658975914429568337728745297100672541847208904555908046543000500600563180818961255050230191516864002635638303331685229071776990183439801096879099802985149581360254023129969609969298825530225231562679294798348288230834807864626128073860381237609812565093228999598219990229618133467938925230506580000740252868393113140769493234758277256565174311990732832065428271649883457215146650354884886597789897876699450942891474108911367849622094517622405548075036917244602853820308497298508334450174430007104617801793325803038804111887680559619790877907187615580278995651531823515015678530375682637472903960284465662562434263619543748052283374210616686665799684823767345349294199465166175957304961585173376410503325810263325531794396998959404322424450185403797231461026908955524769225492299143344322714342804343817494894548569341916206037436586089350382342647652747425797330943157181393325132276794112288443610588120685338913531823827529094818648180669306812289097783303839841066863541975404465169812062521692514598098283775599866005052436023415359958108474148750318999783265523351907816692131366775125999931768033291082104274646296676056411975694225377542651370976877579030668035774093824812718227288160365715428048088984806414985364817324062982941199441554674208356350804145304808971494796544293207768733521686581507086279707915871003435206433682432361047832154252269883091197749487578032107226676341103778224245391560038692959873003099921481954520298102868367903253846697984199540134951650595277438951081119949649637145186324422906956615178421424864564961758897378088095659091658267366407034095550174813838765803207557220466039188981159954882270099666951752793580881666634234719803074676588758618956445314939018179112448187789687284009450089856718167536351625837495756537050401194130867011792414182923294660819620741305466488410388630352693996924868472461978294615134019159503590804213856489854945945658326015805749932022548117986546674227526769457523258548739441370030666236962656620212143301735464167235646684555885855690637308177287030660613971791976995209879431815435980951902798699112840324100629078052298631366934279052620008156778763227219278742311210659607868982274277989543701775100872590835393239509190158825348462053996348580658227646160792074352077931306609610360513012471088845543522244991849394861904252424695605853671922615260083449313447249695054202494646939686215396088720376104764546154244525116643947536222637145760450895020847490027918407993414074825982388219320892059892822433612392703998934578860082451474488869502574290940034852694621714482314085959847257899968843263660102918411779566163768630314643276858487338675899184940899945300932093048351907035250876980916746575109636819871927044935312211276961094768060713450717383636705009679614966220734159011159384142901303175145476307321366482271715757464142197260624073484480434164726452999523386497171499098968713183039285544452966508063064640720006174445342103790610858085434536584296094922937640814829489730674341917069232013716305855190836929797741489071128170133222422057102990607189788817438819584944961529144518623025592583977894024749735059742958082832395667991921909556232309926065977916151416879164161015015424322305721086021213102354277933792140305813001619032533463998730489095106739646154236213876981166174969433638093184110272966365289610724302977220438841006592943097139117077544592972320073125476566679193999768138508873344959581887326167070445805018670066630658891480183281293594059036282110934317533873161229064813359024522480838561270934047107211163362878033024897239940503986050213979233690197406271534582679357118396250983454148356702814400012812923628795557725140643217470088517833870236525439624067192347836761628477736675382694794274189017870077737904001031796174023940299536222777556682977243120217572219386020604990201293050151534527986431941401285479746260740037558131363382846206774997745151045263327384620486647895677947682118161968317864995951219022674809863086500525284852571457526890256556088488790899972528910089166668289725229615910704025729473349517516771846613029108706102987237033185140715205332329930600654176085704988682994407781994789712944351729598280120328222556670994239950608244227717427937324919721530707553956464248251767312754027085326417114504386216139840106846152573273929280478243870445479197571725508360502036479183353886155298642893598169450260605046852387808413545360743423956137626502150661033672623450111205154345759752113600073946390416923101808682553328866223235767489525391224138614006523701708465381211951184160837548757044711514879111697078994142237459627786541996734742070503660407495450550175277474352898234425602674468310485437384690986172514827564172330053782400165256403244360778510812586539627405790698530461415237926253699500509083744030864301214788748770693969644711211303615248225973930446302135604726637387500651028780687610679319932966971700204157098025369411557573513514469843901489958510244187143541686888666823714886802425629011778733562562015469433646519602362952462858073371281592661355375509982076813078615579156468301820407686281651226646364495627225184387306078947997253772096971978812343623547396410944181575892872454794993770020254930794652798514286212879996974223295536935820944041654728087064429800764331580362246783416212048901615078555728154189667265991728511117884728905287632722750335064176796574612455912722905098078239286951289218037051513323382884641971967076770083691653241751711695711965006933964416831687115121804682302113743791622675072500692585616348899234568092836792392157725708149978507836197473783846832661697502154687555616219223911799833348803685103110553680705551188437798587353026322422568815142915029092525017132092672983017919730648860903719481369722544361459693236680647782961553783282453428148112626018294757245463285884752613319010296029422499988929498537158964099604244128550158607278204265820402588773593300358699992011942366821240916493229445081110399942451064202683145797436804679639250787524354087207561568912797002321527477792682843253401052374623804075922266381769662165496652065399763449781184435474936672219523493157319076971842100149468832477509104049089459918048704693315217964643933780162919728170627962001388708780576345283476492423849054328395921181387202044729003681724848010727674510980643479405239264237266677944195337849103682858096317416229935956637928411165885400775977129516274081258153915606226988587633749736192276175854446796193934049356149843292241124881951412744087761169680547598910874912518405425436131753951155852018128290334416493999264282153085287881195468575278932547276627777338140813476487979772076221203353069424485187025518120433048001886158369510206185787529665747554308469080538476965278744222710244167235634663640212837608708741433918205279528052642345867423772174239892117221491127456505872721831051788461378194317891569191585246658152591337248400577006239578087672645729575475192582682130897197962661830634126017621185836480694613451806054452409811314484453445927016602169371579366137372822121063657583386443832038001829392280812566126980739137424136288113854817248834822021297188012517085616947052619881562051759613775825756948693862497971531266578748697495413017816872303787496426882882455376363418094408975822073793032533203443193253317362540849914908641458885225339444381396267845972376215929800246948818028707445017251521156093450642818594366834998723109443983354370227692922956957085536095739393614277831995412191643865950631142058677767642061466453272598061646550792618259718903499481124710914797022537191628683046621563085397646187809452531313807296885367402232741661774097324998363187383244949814413164026525039966157897781439343784085882512292272114943698092643656791177279952955676777061700696878170834706282937519308765913590285855029798520371065946492223548677803183561082648082072486626629763809816173301954711671204479135328753038950791820627860873792187784339563474474651125626839943536625681413623593960863194854675729773682466352665542672598589166412377637241552205179188624931915968809120681152625471240238777797075877196803893769005374881781628949045564981161500991413244687710729688564624555352215008228218484474886497888047028556505392285141573099974969585545458451718958892943437292045391793789116959310721248718958733970821415648539475008366472902725132575500025832478701543877682780566277012190313215512575580114516396964868831731072102153232774508784870465074790445484536509629143006265514388366111046149258956562749635685387249402073513507648137353710195493407705934372669179998625486436599068663339869946113371844416981461425939174830154113961204686270362032083326269426825253032637030945984779057067621342368432070414198286998422562792407292473523645312056434640497288682517228954292710932962925498407708514187923920741608493871292612264720906445921691108176404167769681797901162377442181306013965424551928985070734119317102591766420068108262947196128875185090836420116806486242622833800300257590947307020530161517084757286359216629051737435495225637403527715585727259982012252812279852370449200545443117104969927747572718368272866687330474282901861476451355328627077713994911476684273524183403928122261264436690885469280352804965146288057100160171504646142108222159421453842310726850846022926278975893019335935881734278179088837417029097949846793331035319173789944485586831552666580250958304632222791748884410957244817202886501685007681873719537165242207342330465680033918782510217687576740555014373826710369486619466983461347821946782989443043259853775965131821815450104805517754930815075814120407199617191833417888850785582186639231691155162501609936063918315665914005444234581646017343206037096826456358589091247686507362107659935333584193371442401962579204643549711493475570006737484716556044135856344726063402495581920077002813214115404831783442341380123649361709958645215484099149796888037734758042187646859783066643964649782669769787820823378242321643392896210274000837991634513151333441911909999975866595590064535770287402661021588356745004629438240478558819037690788609627004573689109633120275797201551645293353871213376210594784383630291940386380980320171197555551350841851833438333085771498339929328940058801834937699511822037592355965003144445637723874177630454835897803916502551067461837512990974733017105570975397459879995597708064004723980410640546957337927680041906457975023934059606352352838684391418507159881013604275439630003891888011878913276244367959413967923560187139575577222924118618677375267032116575042295246299677140052807828768238548160306722216128369596515374631218764003120993562051311386832450798606417106603994617754822362796058216355321040006223810153455686724528375298838728166377321351512292975800374006268543129818249211806702810291922498392549499854468574584956857011065324307422044024079463768751919679650926693529882816699923589761014721601820812352767883248930960871840532410820549787239648000666052578469463605183855112091522164197619848525133185344724353587917353055060978872847815845440379361641269452363905704576505207314400484701523806397238146190894645431259399118849011233588056051782418850696751039341128241752153911949103499186689542984274830224038177225260945906487358214606036476674607709146089505737820512738229546322130778851898752176895028192345110922811826754700285820244423000785522724117706018738967701765384768619925870077883659627781441003011554481225160499469968991915018756418869287866878205412138236094873594620146347481203274729094288308428798006069160797107007406604061332006748092715565996369702836368218014582872802276579387823127640847994567606985074900123514535155768102532896869639683195125038314657191710296547790827856736858821814097285164528719962965382697019534782415870506485810810368134158730503972439802577376096351190812073553245832511423429867267064214218088738381393508703397240215949891213184490198403924903542619423240560528477562573721184974706527987142007828327415118655490391748005051285743457864216375671464551596837218225929212563980446092325610646701788378205209256002157168839218941642076899659654402342078101674530991931666996232836475708270972904538774866548554041452160174840960141374101914483405862938343038273392329292518227101608200359791691666801582933947734722770532599935507850343872581494821448453001285843087827840581211379783541530840083866158418758119041624834087828719151827446758473927274337359089703484227293765693118862096273495646439121054611707554221803108348772831206028589310088369348246318565943293174670062296465778023484771019499986273361986683348459041867502097981298729726950360348192722350456007337863424600030698114909785188780700166970449445117107175998088959539889904004216430728223484554776769007589914114358912500053490977535578172724124900047285009477609075006646230349323401982684831072579631084880862611197807409227196501064084194663410363379353856177874093688077317698022283943700145653242413022128583962676442690147625910736976067391439717871442641848706427495457062668418790108613764323452578659561919600242828281475265021255917805701828448060401503652237928288229497453246330960771725741788992821427875402825196402801215852991515232918736829976164236437631414974425876585166158516790454613206232622376013225276164263241816159695834215584496055054745961080910461084015923187266765460203045343192463197827226997901046822520202069529320056780628385095783158884481790657784650744625515335133963980437104566454192919190179565792672268946294447941596687973225613450492172149078899687140760232223427910308850231114865595523990082355291868275322928634382217069085786244841299596656411119379042122417730784995824019152491969543374315330513547292370310003212588909764873353753811801496249111565617232489207598296567145523929271410701601835283457490442272022570811732163988283608841363409577094490565968793876390181716804441471575372978591199962907145338382678534155154446988469696785561332204189881329353998883287135614280209707989057330278745067203446362762220501347680262474066790622848134613654214100489082363096213530808835608364630452345319333199548183397019632566419212098315496513886799018560939420150658989241965647019038057658125062217288351129771533998610297771647203794516677171056601498342346422960052128558011080212539459974475163760956268076543502940511363297307819028311918477362506356011583346545901218765671973855658985551593092046726311330528859820834259883221788731145975934953871371406041776991567131682840287982959266942133715854370546638622317847345411759329762072232313598496284339311966725724338991660353789823285627033451672531300774054978985407552104099957528290714696258173725490723521390096961972601117225163274988328721491989189217804854318646333266784495477153067872491201701893316877079106006581832555705176904965065887285349080263681176438121162024289473162174545611992226069813055743392060299984673925219513575423890482293560270501034232455643799629655808684313079527506717396181603749581932621675457731370397465000384339945785980167856394349535664053544276750974786575820097322291895284730453657527681216351949594933442395820925334816043933523480724302115161682131776926019667020471867214741944837528633505199969948686930871714413967366919559600758339465374629177485089487545697439948992883916427922065503940924376107626684240100792691744024284962163022220923242461504176811911146278509624822653037597450624699628622526011122376949813857012729856771965866435744624797917879429785404435001861334164836876192995384251083278955650889095279449764367174819799214492833304898953229653695728155826815780969504885952276911030964809356072735226022876406568187982409300354833238866064736077706853679830943288714669580594770409601866858113004904740582938747043135820876886813440636291506125415048226268877557001478228329270808455992026703869762539766557740720446307891194928561035709796931090179739781930690921187621892344777024608861818196101181739600378854472765511362498900245475668710746135875175639471827576684334931703021794916686019067851751597468552785389231383128000715425180184930778557588216234559972755807508153600324347431723779150904184855676987249526304438873516140596396560616993705510918114331055873785644104607013737825894983848139772698846580138644201510305748239131659179750842020143310107946572039077005673048989823770414370889592537310796218653303203196343827920044161871529036012862884873250289879360797074702400180230821566846477745037431068492099093660752684885420176360010772284133498562643768264006980216212974155686264686735703509835277630787227488446184109082891070662906982010170452848336829467749160859988273580321798939792575410523976826303208832131747500151178742912419151366431959121869508615644128141536976723736110344655026660267476160896994046440551099674215851476959700852778757571667727541589538117213916289665453073316786658688972199676673803676396902377221576104860274348072646739898012053855634822810988700110644591074698759333762328511624113841655579823769098482572677856990894795774946590261226575942498367794017340933772364798798400814129775766236459474457657980178673148413068899395528816951139878328048910331957543098224707725234282528875633096029753683596033735475138166951315880923911366759680667162508209521988854305098615113871661421103955616566388007312331313586206892784636130085616543007882360973586031688404387574717762607513186035534243573082792346269332375408319918117174143794893921426873337142190267927495499708198127666018045296186847221487716482829406939970336664107183214145712098070436722753359765109062490250441847566351878919624682614171910020636599415211304237923348328595715568114034079174156099937677450728255428981673915506266483398036350049862802589857117301185069416643047939092351681816577628938658609295646978645864039048596898268317974049979426013090282744968709822162592513728178114761465566896082359374787158175752092861841655576470134315224295221452026226809710725699962337917492143670027487678653813831792065753800944882069564296510390187914865950167764631886933113111815724477739738934939472869346370466311780635778248954420889071463744200482755443676930829395867621294267724139936327469081642911685668377233696949176591973091359271157553473182882213356748308818238443439367880674576281191398262744993818355739012957410853776552814859658666083389411019182751037661319689273233401645384000107231422234428480769065728079208530169904265707819384952210210083269900753010531426024862264659184120098914925033281093667810632593957542786723750808282176431940275199842285170736066253545966666784673602018337298837318850613454034534767472718472963961066082330358738619922519106983458197784331940868403321909100430679626311090808475211050495154833834708549983658904179555424437274232837330971964287461157723854961522521234758889055477848016087592460763538755992502499548541062269404853453924354649388173619461435218421174832266985324591096855549164325131912885017547888229178634355734833300797857916428993217992344933076783095166854085839869368641437631975367665350372001076110318723331857158398817074196541065994155289753710169440285957732496367648669707843841408898593321668307229809834589230257355504229391881635443106953054024969198319874716264726000765033320796131217256034512977378591550697863267219027686115010825917426805335630443462706192916981836345861291869427306500841724581002247074781758662174049845226152513067137672548267830187284639769373300233081011873088692956428193007989050003755353841265695395542582481953808474252262694681259907574740902145425800175833036042748856993982069575418938279512592751567653140650757634004290566617553587040290595384143911160206590320919409518582487686788114196263378011250592485698536992337146390306616716217119089622120098042179556733452431600354405996604048443282810555061601624646448039653106698587901079015744932863566365893549069688228745736011975690479844311814211783446776964214494950573707056145229153756078896566909277485408844452094616566290816407503813518617316406547366246009386315756438267754924868576258262010319735843568872187743899309384748074134851487179429829191161322605761268684445524591060660708439594850472909897117824034197547153845915906274657740757377597927649612126860861009556131135121515373998832508069520951817943421848697470454914835248029230176281571657804706537686319207294289868921213313379430585727477002074092827922104860182834294184692688690469544775107643106508067743173165583918341201111662091167095333799398379352672786668682479967001061158669064713302865300291210342516620292804842826995718903931138647439270185313301148637862533015582563536829453139823923900857581898684666653115793074674415158458115189888409372615025284040667623576076996566799477567488514268531959298649610634917388594393746694356153279784952577572138985878588976400584938197884941010737011708109152606373735798135000163573943629520951452562854203900070223062509988276738688871337650391041494936744445001544074880033845089239548165224311951999332987479280889375054214254909633040520974357733171692650099163938536798526931484842931033263001204982281277489734263662054990714270155698008770082821492001254289474455435560964945639678523583004782806388161521803305853900095610757483391840482571418391560592360730767375080984580374910957138054333006589390799894603822584816002378304451664926921683273736677065274554293570832940040752866989368690019675874842064553102906150754057498524597543970365700591744401589791885871063044564166989410665891106799033688950383381562171941540738782803666055855402828811184579786012522385798913198427485736060147266571788758460365165577757600603134534613195327923208274103450694771973843227879896972240768137146420028822559777873573793213569266066901767407237147070078092209417312834615682691880817510088827698709064904062399668320482814326912508944245717542964390779776221065189060594244573353599625496599948570755044157136900325137699213348813319303365972835740072494263588775043726971673417877337160359341230254526886961155967194493142870707830051889554500874440203671821491980212691137924875837968313158912667422687815377949748344467989972611771173572375317148414685585611280323091471030051165526823280650523616862557078506944451407351312859400700443375995552011590878821070870174338778804540525536007935884260702759887377139661103622606689352918444088852980572031779025634627469044971853834975047909645504688624652937454895851542904725368165017161240518740108074630612132930423932806497860351406430804923727849735210475283883070281079501291682683642742994848307145944272983601231824272756798327824387900754514228164435731615610622184430822147780354792376608702700688817330898903304449081134442046343319748575550567645008685499656914272760399267603941328259142042103228463774459797089583817966890559266374976134298572707372636928330972278304731051946244181058823806841969603584189270564472341796896973329572496432413281347265697100638806723066571019183424631250759412363244279223411405397652371249560546518769983818866992325548144125097335873799599061125504319218094270062103146693322814345264126335229330400082113356548752340113967800337844349285135346289515909885119029038251327073885518284188939507187694387805398098349534088873954346754611869341166605111580034711614870075433488609123079075652438775898575718814025718506887967855175593612299450560056369467888892270129078676352394874009735877612638057201119211168591791639742388879631883313041798203448281613069151985183119076108396464483304370118255952401600740719276817277263698921800216749004547880646293475589084648304851301526438428663558005216805890883395601705129541073829509256557638194213937275720542339420803272737757626368746753704761926039644873607152986375878506252173307282152391998299020239727982877426820379188861563888687576477711192630579904274788920668591510382698501907270075897487239273956360676437132463693738301575306735827371697505291268003099261387742965550628011069982398437912356939944579095949576811995879703548607525546615713307471339126212928504490159325732715662779602877606340160077358915594044796715042092724025868363446313826839446835431873232910101406771802671637046321394993427553162108531412592383837958111792451163709140138319697931160646943303024099513838196452784956273057935343597590500711503159784317383134268749519509106591073241556459301562236360760036551698453896055881204825235811008884077784274029071160067943983723287834106220236346206751455241434079565028556423591574082117621522094013320547463955514705120252340927464385173004354456368539972415729109804849638623751915197034610007148327137700421188655812573623392566703392362738308999523971923693024139298633508491443468818223202732441717984990120121130036195059351731584444554319918087546243936363598280377460077884168461504856608020114029922242476051466559758177793120950637391128513728691875687686776526641903708289656306383431241188868830410993425828002787545102542815320241586096172421458201920981853974717616209753938968731142386259102293951684521107008040729234313086362464848921413258947011903995640630891045066959682678318741635584904668508431513381690134172092506183733292783306905258558335016182363268213202371789178333393074652221667745788996700275626174664921055479940987833652281277895695940811677713058433368673539279163153645110007138328729811610966130742363790562333281120000395440376829543373190507707768169733808790247811824082773528726757759697254755025733468803748444068864639035691736660382017701348376579635137393313180107922843154580015545191658377120649548779997924205633988600223341074211234058734570212676405346349700034424347221215372937286855040427588502340225174955538079856869121586517742652285056178559519154525717624829944995287577842346596068936345855491890193331506570340772257237148820605432291136411353129814080873842526089118652437767730901619162492807198441382419117390815468003177764166230488727485127620251619443205161600121172571599116114514918423860575876299344621457570825474699450020518261043386067656193702048537180542626427666159747069715444457124503126200747751852707185301747584171522688284115943502814560556467863277836488365723615992382833827682733787661001758659721552597537976260739867435457186643072399469624437224476339154493813195326022966907878920462908251907530720377738913220085280196353374777574368903066119667688282754222502541281167156922146404231737737597884383859728562948858476406747327699816861950715218159367925777028453924139734840261040010926717793289740911331183590866645917256741079519436471969251675669162374706992343859329320014019229264256036764804789100397957726878762817686326770216099187823215117432135259118475704947914026958721246444049783954119764066202082451897211184143113440308416711369196254010980552086014359805598491565994536358313597911739751742522160015924153223232816591810332597630911820142524600219319727348950489773800592619897881999214001161914525043632459554424926300280088458951449282279319147890467500648009660112346302861528779085355005705512357020023077531527697913013315594662611350877114254725932159098517304790206963348402284072247473870417922843605779001983302708386011093722672487477223400396999728482364894099753452220639042997234688966423904731238262514234084951904462134217494914767731323101566051242278130695600800668001590547254229412406391036492010316741533693219279788172011293365819826944088294143193279955111697976280503567825658077227433734804793494268604764558209422589845584742662655564760836459795939785444660972571603652783358127229110475663516097772805116221152738801705237414528536059342172249625593265167063373936793286363121631162631619695528409849872765527101457635420666279061185360903559699313895586590856307346592019570578917922602428649314215540209688718314101134065823141006668110546794985357552840209521105917291102685432855334417830113429558346039598548593110426226945784608872613287660970153771415078114117708785851470383930211328897331403709241548901895158448484555997484707964436421636834367630347667822774615066540700300846533242816557008907443709492432680753294958587903560774767400200714421119567646273528230847671400323221044329338077266856570299301756801785919813683876433550085237278419902991271500191923391970143254626585900203919446968216965171466472153648532260220540862666894340096215581108601609707144744624056669503761408734907342151820005737912568252910815472483018804623047828416401874434778799691820963879810784882700753708197397277034982299479522593040059839912162731382053154935551213077983360382704877545716614865845139649299804549595133005334117915215551843386851216821799406406346288548637408888823858464704986247140072612952592813986677522195259566168628082319330922384599486332361592458662689240529782885311659779578445895198434380889312894022565539940848051111898377735437021779196834976116996347632543327138687273515727449768554082274712600691283104912354480219318422894836928019714810583827778072338596674987191169466770206140780104317671373473900677867186859296492685342007452400863748588567572060776360017229416215912002562498556444915295287041064260106832081282213359148302715104557169317063156605514058040302440744815302728054918023372233664723557793169919353527771699321533231750296706914900958347346313574444679368195102479112854336050830110571019653207835017381918989915948245022865916841015999516926823206370385528757783349451274103646687914344114540917485757240546286728950494399382964880950996134549205940803897461964765586610479471427911272312335558078802299015861101417727176347371094006467326906235084169947910228296964724717940249453183660707135810787629085065970848959870288764224334238645620525321618890952619124330465088436652420790348271713810935344144255275835086599550279175298074560620671296442372890859001078707874559690413062132149386966044630763760100055585727882342203184806882637775199480275313880574195586957761668805713704433230442742126243235718517492324681724025468544902029634121025342401496338854263010227456268776306724070444743191819903392425186924353697010666443232524301463852301035846946514230172673261944091953827776847750245398303387060366975701698662752605317948431284190465840298089226326297864037697635563020875063801707668298628123011283938851891033368829999275718636315918189155726513053634869619852408441127293391235795370512370864417523385087952617312786090372972563557239098878833816966356513768295884509174250169551573681540730217925280457673262106139970118563696091211553094262584442000892818833790797095578119722146353081445841968085059270183315898328088858705470175792679796557467609422562604244661850128180992942854857237781399157324403580378618916897203994040898888401341760122154721315363430663988802042444689371359299038143239640014156187151757793342258427768839666306014136217609999829788749831597651386849411343987484543811023733126708221799321491069110554522947594484376384289132065294371451439931205704768247353546137333702062406775380405619139085647106381932222653062394293610489296481755634337997353288364194691435675591869384669091003212925562556991129520311249108603268482006916864329511266969134873882843934268351077020487649352143869541724073356143375597879862424315962593210233966368198278612199072152647717165748171188757537420624864975754480721381567179534638143060615140294896391782487559425879853443937287746360692878762356124769676565620551529190695222193020898986705424645273951818994515288990022912845287171772373061575420492855146365538663080765102388212118923306897206971252865817672606903671530522755143209124831027515466203867310634171970188531114976339757437651891093137014825266529823387738729195503494327963185880509099473090087660136010332114305690566558337885760100942539706065978901880283945392102817352450343088836673100731726117228369326957320094055420331869557158823956093107787202756263560330148642155936424910044321331365360639274276040006094625976726168843544982818017086071392021486705423375404338256311337613613986601332803313788236928341278457728784130774495351399353288994938585583619546039984067063634034624708359994953838786737831383587988919928913592299459304510829677686086313814710781942127084407088268789630937348372670118585425833879096982286678492281876718926215601272192635395167659544752311273676561458007031679794371702161900721508404368818585566205455989925732315966706297009623440926758700884266596108167828015925073169515820535512307744750775821501978041522163965713021932022964200806904792844168448544304879882464205242861249562325924441977779071706451166643822180972633632730272115799451867855641942406660260116330718066936896907202175479428831292375631275105146938848829290252440208548759319056479132864663794992184641316344290006166647964741838596300558373570414140148396916006072438796247421363469798487477770152013847548280312672705227947938887289688410321464845734471812302559686534994576907893539107788155518386839397797745483086397664863547648015256553283658909642760945658159586361344676972779891884198058522058288966884639537368202535191236459290865302665194187110562104136125380919272323290019703054426040704808691021342391077074770994444223144540928019390254918596705669849349326805865964780486029998154221753141037780851280974990445825818924510584104342514709037334392761095312716639721764936597278632474309085903707247116984391991608971665495042586822353653089759969014492142525561388654296404213732798515763561624496771311645534117849973713453175587409713901576707415359217913752658991710578356689682740886148349801878584340283752998212962533968898607092938310560431733487764722229071075831619683382464400006607495632254668589418417316392564972391600988820248899061101878616579770636326891215880082415174915326462109890050267594013648996061172203317672014502029483382149412440942333286912641540322342946641266798591349615210543777509982757170549602953114120444818227269677701305290313218799783054663509433501933628969106361851928228498811729230101876540226750691530842385406411088724145846137890204311903523868763751479350344427898225210997449487657752576985283397386087775313020302655944575375985726610541234800637870041700717885653730489137725052111458731216912064681264259036350738658322327427076781597176639252457259516966714987285759811974789562490144646643689549402617109895922211910771381381394279797323892192038017460233415279122879435432050604476835250502556949305639141954378380812177769424983651724266579445944083986142549736429337197049492377432295143847926384494960029280018642819489156042615105955688742069174707970019616020398834510258384321748464663240484653003028438747644780308926966414802808470235244697221828753740815540211526398862950568606897685597669651907795990770013252688008108621612857253748812622971859052714965640520253830835756368279657292118597966583493407125531321987743801220651306134495848155004530394226576079481967524904107483097145532405867519489098647423850608214753263722581650596974982721929883738616646151837163502250484932065363491597099020281616585688186556108232430568272476570330409631603027168684034859122660750141899223597598623884319879373503713313720592555845080523632215286966940503574636886850068386831669593740772475454687390415947595548119978670741262099750521060514614050538075624458758411296854954877792705956452371800686103641151024061240628732153841285734317413380355315703453710918749212131315972706055656842818125680133892948913978562266963623488630593198651528583167926615544516757805968289758640614654143613564560469472483522714634053936773369691947706339105333721938144065040983579362706663281428287462558684377082047211148767331543249673083671925396432129979479586984530883529551000136075011835069812413502648395941246457462668342978110075743624237296486520597228386965739140491366372761878392472232294162154348472333569899042794818031399209453029443241674281919081986202461827515713716182386571010726323850521440220049846137068568361346568427043987898369769468921955528424539241110803763695936181230323024643453229141090938729699453878202716365915645780766968053539786333698559164148434303993850100124749013883956816878374345397549908970481968402169672024384066233399423361044915341029873781328109865224272733074129199080994230828912127948332146534867824179960029203705012683921952572948312443162177182196763524966962630962812953474568641864532388871194597908157200097765616709702209463639280909705183919036261549237160959473670073638775169511793975624596920941692378501034129730098352873321922072494912363764798601040069428762705839283490675932275681489072074001705815044064650261999495535362994037253002145815608950423079672075231071976124909784643018732551622720159933641410912025380145228132635216710857639083766868814479153185287269156407149483554605112930485186050383866668420576279991138357952050082006143001215105546118332944925223228652550328756533813180873988619501912980204047739644816561874753884686029391816042045022160756263116599701280562890878031321037464777822498436471911344514492763683200823335844172126081302445277591417124160784771663113389147208056068159547525297334938796923616444971850145810465275549484826120407951343722577857666541754121057726926713294292904419962375141586629095485940623343914271302946080574457378138520029144226007509169455860499068102851648229710886128952501798792923502517639836742706758198295155172701181173888384716347818276411254860739531000020839570264254025175407402996239992941342124798013478001199852166684546644285704785906774305532347020889289131926810809719358170021604287700098798989425285056149260227265905547090211654420136561869774388652588378739463490297907328011065866134930481072135741457482440359429812300442214431736085518151003957903068875948652602404178507832338786487159357382946592341292647670514637551467953348119565428568055926902197896764586299767420360431820883484033569475892895259656648036073055542790816605811450743567481272000820001639319303461959415498529323228450961758624621983373594078082920020392879540582291205162837221842105831502444670679880772056929284995577083406052499653163912723258104536963702971111924475553781802849134212252682158726419412076032011719645242211150211464138469418467362399749810772245427636959827902222145842401311953781586463831769471999101760103719787402723197463545904768091017863174252193173649261696364028198949165702876614336274906374505709008934311124806432532960817407672563344909677393236784160994829817627858990951324896049244479066700861009701615574600293810373545225132741375579471902155613557004040380646839824082384906980785308227800142209675162004103415213886172980886329896715734386173234236893366792021141968407375078987486608459106906844771403467307548077423326384607943211631689468733777273981464035660913034975513103996584190780745638651665365816294524391320075036620713004577602641466417423425698401758266715723997455786941028318358094881013666022662347411408686540462512696402288322680830993435361424050588000106998123412596510953780851656370764542159217926996994026513801583482236038506140171831601221124092116518533243554370750626323735356491454314842530390196967846197668077415017406743994504218329692292664447911203354192052027008156876037359800492617988920907152695518377237158683185373307735764258008886850922704412750595628102415618380594096964145066049469688494582733016499382752201846963011177884623981316327018020616085002228470538872669084982094641778589076850876179934686672809589795853732456129625598307949082570190876534577940405901366277240940784812089155566984226712861750218900102698862761106280161077075837083472872128489054032756792134252717389178454578569195995345121249532020057785018060709985853403045528165242727864842427888081795629852842804361892219359699942803388177182369940134176587347873214412447664827966281349960089402194061199499208225531733915837903513402982002979370828456796782755345502767981181888329261605593724613141015878150696278741188133757757448646407023404091852926450264617635447265651451666526938153118531292352603320193248625031209252418467881203639861166297880492165607381809529018371119422333669390508555437767252702091522778917219835581032000764275180134369046117575445369539164913747530843131594406279817367466523598608036679657842473485537363147786554963073435479498356264128667764394685581047554919626084631676360595086883688350044003537678900460186454276678180643419454985264688026419020510183447458007539177423250052808899206704678706089059386408634005048984010385829089529035096313142422391084962583496705781101603804452934384632209511683727214233318303597118608837674257926259464007775213424222435722339085444586722164564687851426089678686097912590608741179181319078233335267090168953844774999991558256667694430024161094528429728546398145753805757961223244768114029378017561474051560334937431027643297594301639637818087490026559285170515124066051885675161145895296946510952647190796289218237678761414333459235688502387335354834497875129159625008176101591678216273587460103425722054825075431237106098140268991094036188349697961770868054179296758378703779665261069307747200295057304850420274193705662052055073004366246247737408451384686570175549230112295575968790112168602479794801546627359920983560969318649872532758085351284999802047189103836842206941161583061547586980024998955031807042814768312898663997233329993434454129050184976107739867653486540836797322238317313033450786883959677136821798387599198544146157781097642862664572054114328293927899247440791691144102209099668832984523802228891293975903046824241372287531756210134013701209573060810287526617443715926783494031527160295910926820715827925892030327414340379229472016477430328023973469169443076370998160927393685042978301910220952885893070838026480507260114045001406878714340493664170875730698362231909522855560162300014696121848261054377719528850569020754301471116317991380610065991472786728368045654525770758519952134001840280502174607420270259092441303661443272536490105899901851939719905737670149756990050898130260480999056993524728079222508251441256429772506090700209058301685238303053302081409227557441358181411607615120365375484288612633503506860703446011667189068586422386800178517271062484579657018074456291911232837923674113449473128428141711945742383580642973659421286993048153395358043404385073335231540288912015017759146678558991888108295372873124857031989669577585663685275991051219099886026397864193055904982979833277114883035647069452277528486217558745531668835309450762084553509611219753098380687949485311890783242769679038150442961006895015568920674251842488376659173611027102731776742630078728074649642181633391272631602116387632010111316997173976143333800732542061980558612513986098690966917608151449679375690523394216374282276375361743204943967346864397376094157378224210294490200443243273764026454074980492201556033387046877988517683561045428532641019394159045610940592075810847697280588956330316927414307025276193616146940151393812363403072416827989856235921957289965722852729190882654016165658104639302641710850912757171879447360942209597897460034856089569214747344298208001942043622590078153097823697402244248823397801780518238973367272853737544220495593251100625775711608619274809229793202668867197267417934743798883620503590326406128848455088912258437196353192898481539947447492336486720007192156553615369738148193751991543641571386488540589486253351255727823281678630281278937180279337651238836497137840307286317889265688356200633795188140177267544671683200384053651205892049623927967336683653515547995153454156992793510890793752449500860170430426409774567026744624937089120139762590219016690528099330196123073390014684679751764270789387369758763321648343348090171185988391508331962297097149271139899304814828357183693417440003765828045845755142863798211353761199216183530592932062842182556836291724147445758841425835299277566612616491073697410495259966315470832399544439586869344390589574492520457187630812231222131311880207490912184982827765124827990836741098736364173882457601197641202989941449427169846776735635648177505124965861887093183394833815071315390516481281695842357941259818170550717291934475312702392991769791962450343741534424326996781192717838979910637343040765111484287554171093512021319536913933710456955672304736512426970729758561713854892252523726538887616138587981615024571993868845733107779328950620261104691704039107666499502816884633793163801173368863997887062395621180732996927552856149397050047180670073493325241940576120536957978009802882335764324455295766816331099039586142756070150877900752760570663588233452734602786135507719000792937088062710898209488599819685921346598515214444410834335216910704546031881717769790977582739811538119208500743734280149613608509021618870899631979991778014480323809944623353507603840145240392759896286989409451953527211620594159471677052233919294050824208671082210580523752915984375549130460762005255162295593302606430575405675260477899682960525157841386051956512981486246363427833590710341786868964981012882829939698271636525585231085484013407578591488341427135471747165275886338709373230531632918668546659162734192804594740073858631664985783721014831649466035521640482155138353300907983219740546242618182046060694415024720162330839586058583850143949687569716037482571698333625089855374209115810633048398092196608816056995478329158870911462550148984105218291204677722586404014538779537026826058016950013937709422693209649765403254480551725829827836247161317792812699601599043134317799874605748696110120401262348552354500028446809833075197385262115665709086504932893206090617693030448577697039160824207645510620183012336153634471567291887157723936702125782896338155938611355645574893436152907647412097119600791806510478935315886068013992929856235635657951548761782856473445767678658527130107571152602483149599394236738584225242960428065739903774595262452711119265658179187588488524222349693360982354279148664819435310772957404402523269143197013945204800831448054092465670119617701280521195637293152459263582443800792083430496947827857969927311143830652477698457780656825747728380371943694247191627912531527841674566175376903320829859426784468665110462067603017278210410174656595946967609517615042552638224896092764251837599875171108753601995736343157154890391464819674135799918534416119955858449985400318614177032667651050562507556393698748210899410354039022204124215073022312009946370041332154439123575850631058061596772373751179856635936600914463409252572537773088528009361994415908207314878949167604176908822090167081951756927178018354567971078338170289656767877867782944769335867639119578818097849461643465040102398934720593130768025192699786053110826297465224667488235394803728005560289951745634963754168992503926723944489846286113244817080322191575907585106120054422111975428902681503107272636954837935261736029500625677723936929266591291724156401325825299066298048032955725460211399477155687616072887008046272475146988937937735917026713177494960061571587003817311915667928717319282023228974103379655343275656169042881520032006051015671924474278790445896896690501150650395902630614908057400454354049414908626398605792055664291591015689644557396428584672426931977749163159599523342611245794025516054375480789028527300945584640478238270304217630080136979829211560271198708192671888408914139540038167939940452872962211390445407515683462325279959419446396441535596187561799494458489260169665400258480227848160223017725097089103530440992951263938107965429383639077549708713019819520639086987339361621628215091299696538606090668441348730933996762004200690844127043714095764032912803593945301870929262442753893076883113754974744940707188546109049513455031973440745728319030221737761363791372938889086950097408245740422196359608639096545450368443091315611217548543226056132382651961007755322669638023192925456705737179430552896424168966697237430857794812956281086143142485292773837633720934891053241166667737782158772158459808860873332815025579194290167683471627357845463058192395541464822763143563734995425653105104282135470640626863746316570424006062005315666664161482227146005626133896586407515126023635728175385146449079798947305599140384017206743785231001572925024618204881557282231980032213255964549880796871669308365605505036003176744309715308594587148091137519711762047159113362147311228753238660703297336921181022702778249628066651904910518149451350469022118331696774531758557915489737638626953031589246530148875996902874678524368438191671526095016217877149932558398347762719720701097655723677590888425589308084686310927977859477583052639329177969274701308126954351085619111598848938609021498784291588688712372016295250778014076077634438785802473483775185591941681464898439084322048066128896253100045014374892287940899449694622611288803337964618360430199062834421342429221284240960607139553150570124639241101317056558805146044154406871355013459453080272976718458329101766808218052765084195227830717784176473133651208149262356770061110188212149197968302669109512398936701839170054771459009228296494283298287635107300957841605676724673961568668928814156614261540389893676165551941815937288964239938811330090165820293168755122101298543196249738696823285646089449018307948356015069162080045862815058368311094402651285363960456432307245493008137497869652500739713598142488212027080018236543734898963544259665764104622369566515996812987825754210673482981873671332387121731367267188576873674938121153972549167051919469303725911598504970522049645301071951018502617036871939889882916775552871715479537643290885984543075060290881515038571049178974754468585712184159405293815160930276946522131043606836112009053705142881016659818676064162923545374987073143649750402442385790139852906070418185669818459676469628095596079182945390687087112172608174794136782711573202545393051501610689829894615160729668044416721680180450048511019857455775257507611558938972075829511672576229717246692673251380964648018294605737662347810380789280794149381418991218014137113284888491815784058010199242723360535123449798791976585490339003105919646423667619686260135383013719214439531959564456862420043738461534993935185077761361616020097664530960482946018360230063880595138403412788741785932845662556884915285706292605777851738929633041913695263717702803806128484769086314779134340710221479402846458323094357600827420713644820119354367089419430373614498727101715025100797574915094323165745046658298961334999675749650997073584525829177154218409249272047847413257388006799180605622617889527381604844878314970317090889058471394854250067923036621116239302925201729195854140757290400803583340159750989083081028026330754119429115759451871135527105553268013178835955684412084101826068568318508176593331440921620119573479204832056627369812873726162146078037249328330077892371963827116389363816125798885801583859399661943197950317186845462607734327880097065968321250980895487505422398291366212585876516317466925402289389079796435813806487130022878271757403899334381741180181884658765541250724137461102269493218755092618050554877570364266475019360946443522333456205388311971350276645417259357982127294659493734357769039744762279478237356786513426762684626215344009567310554930178528642896592318789255448745356186568821771460373780841149335564435987896198953562585380611831858044911618814767311373802928625959579547743662081081025105478279641575541750180448244406610100312700562802865079535225662614929949284223536086724214962890508002439012191037478968905366107757736499080739158406379608192383288805323724629334613880274645275761652373924286041341631063555878469423236111570747658333681762213637613381379381523124506855068809606294987313377217370236424109860340068677579459224506834466876181214289721428085089602112617214337209743579419037470154264668964514140025151333574544605598203816420893824377028344116224668196253856137348465222372305773566373884864769351606018855583574238046470588779346143682822515120522679111376509829336929614664370779980481835501748686781667041977788505607667182877147996259605830207198566301168760798409433663543363192816759598433610072977012363051397297892529296058589978611261217071208940058814356049450896654659329709614231777632185964669008740427309425139547354582383493400499494918072952583377644443942110649167583813895914178875720299896454084401212436990195037724367919610055899706483402382932370210072247771521460421437012586397987533060706049303834624427867764744082919734810832465983344807550155938650543266017533310166820555169740150300776991640796880033227225070360390322258479857759864981047977091281540139421713685713452001888625339511292116227214161896446894531739188945473870599672644383195199160544261839888065199781421063789010501569291416945667787422080568450576121893144749847122138085683517199915935109477799328022931951797431746559384410961232131422917932802003167485571725775623779716919321280690292804211202291861955105196817618816866727315235871964610616119888392478387562343884131577050632645628264934452380170237486948956242383390069915617376385250616701964062108446935522194501035025306203177175255764412916097969870767490434734570429851916512859810822957988881682485024000256022275627349131991628474294347634552156245080679769616734309915570090668827207900317373884654696567989222234840217435237927049666473910495503061668478329358980886860265012439516492728089900179382739880511039024959421008358335492616866620308486099456303980954189388493935190341440646349246247991278387694223830652223994939846566609063346144585794793671166002160084885856870431329711590881722173181940288053775427916120480582141999377044237093446270475456343898397242432630761375248153350436510886899162325582705345550381272936755004530317189640187537957883596872829801619879980362104273742078750988223712463849319306894507488980383910878953426085754035381563785708250080074206612656598372635147138463913154274596835111636298763604184422719459055436571882822223382770368333270648966257661514978784221051188331374853623861532304260652373798534200317992907088614397345559381244436071953729918747695628924725754028359365526431824214891273658508135636464195979713538865369147902111929765984068330450039149973671052803795558135639567757097991213282954488561044933354904184372494138219931609622596001632217524054039532955966149950750456513821099626178535699363944062697766893799194050359744585073937302131931820493001644481642563466762686996921925705453176592260989509099552729037578676569080345174115444652273472055529975820274816115755552068573081804022681095226177736534472350032600175173339629905908316377681876075625240303020885991686617297687623799213860716688852686660028609942241426793087028619997675299144758862503319691255566483264629742007900735476639119283549729586303227305273027757761351084571261573239729483436947569852210759110045485265807616361996338593809310440456427660664951785523145858546728388382030753403755794162095841053980108910078820784065491277591266935341626566416047835723897874885143827522185224357922298664664065151011280865869969475535818410602209514807507462574896755693178076853707257972201060145280447736643785687051520570372288072661321176689685976329150750361468818009334250978543955091469385163349457819674196528344856201860123348047035479513514052726316329787289654120778099367727403946083968647569689449452418379928244843014189339769764829239268462721196569870570490963446805679528701969104708496674280778228580778059260467038470476651176020162017870618777553535296150073975546610413396693927952564920703656929664262083552823781099949703587633718191047410089242199525275998867076633779922403239265872108347153627783653310122153093522129312942388820294944884295622885503366970671695578533351326200422734911854508493075831380998662224702443347140328283010656981957484457168015645463855219687924620028302009273335971479725265317378415864948589150268654677088052223870835213546260077410703317435793411761936969968233574242469017663139111418964430087788110217138235264834378883448705664351429956869096515656823203706604858513771441730730642531541356536767308491730307268058066399642720930703619150976284466004356199840170546076598821114191615664646302003571943488876892637767676113344712376200384052054070310917123617848738099075929966611411414949319120334629946281371467051366026640644479824808199985347778770329526888619575974883300804724645893229524194940622036605146372078426842109534770663296381279935551480218751149141181367538454533174661381495792809194740557049374562699265587371003241088959724507037959234821273559769651935627480520354854132813559528291572918605627745315701588594852092358114105588326616386333633250324450992203259705805440306498820220982616898650269424523543901486258086915754882793803034075561367277405167082642343595110477872006990044788759852640944862798038251352588783725245633890253953083214782686777159305394230039793405585361769847106183910950898683764728901327014882978951281344846967011933873857017336007580517516757738014201314311784875661166232779182468136437332173207610657186426707848225300129012125981120651656695673224343004243927169532549064167204104920471856781285716801393771153067828383462539888051561586401149770248998949222277479230834845561132056586704013246374542757432193953498328260128345569818412420816102615726133358430580444499815887986374175176265150526024207905721465521169937178196710514725029340327431813694849266756005334375901128257914001437781117804790884527229590830357463382754370602982926327791900001699215444155726612726595544476250780885967281294244011631398160683470798901588691722824589142034793936177726970631392281941911158399925381857168572817118237140948830610842908614974830561387165541125475819299731725550917471966894219631029997537187320695074711937352982755125747466960602567105936817699299632549747199176356057379218997257787246482159521467004129521765828824147397296396213922074276129895257085966397536812289470294343006143799911358912749863960658954948672449008100425639256976093553616923374293179038898154602137040220558939017938894855116683736922353901343850939071629102879431807520789756736022796192191205195003907895857520282954731678827926454643750931813900466184563864163753708056113289632189184604292644814399259165857990528295939825737008820541120311306796474269725869586727044785633645379840991976262411495272827494857951160138853826181643087682223888550975391092821704403641134624140746194058035146089498587828050164911139259209361730223185612284077466528328484365203230456776957736505845801081049775083690541117015419585244402613510304370890119179545199407091371972127579546343289521492207995869557486558430628512776279058743135207698721449687384425429375820223806974304175098680573610734589228801433205096389914441850860543381608281284575730204668381421640970220181755072435909441980594759489893566734575642099341857324627527277656478987921826088946177522727116951208328090194484711713059614390586359423139279487466723452768707884671750939234611667982300687581336930131097791071172097455660309888630142369771030176332548563015089752470168754851017884738893220285748934208307904063409726948930325610704206863161549073502352853374854655922865585639260166258081529761851622715043447115219167199139551110503245780921806290753174087701174314534544497817652292537037628490431845075857247776683238814622811476839863593883367245115349095168807920501515226571652980894663707674861026452413501162747746038536662874573612703627142330475687882180110237553467908635600548897264538208174208279353349530160132956837430245271125585404708996485314587620591880283515923750535266561695749353080162785396232059381059075457212499600682500720807997728658701131538497634433735166583346014748942508189258792757489340542712685216538740402773297702205814508846736254988591358672400410599421843899280263338503241596178024096352046570430824440441708112826164802344048131578331800029359543498101499423651640656061486679376955389821555337612287417018182227745561479643140360004304964102727034994272867631339550689005890831033241648507501428656643089215334912043932087397613535031349775518604618766906107230779151143892972230532548216384204176930162064244997276014820382661460169926389243624815819451299091591836623408368559142767116918406605388702958567955278667209036535038546713242455938828433497781706190358827405999300059010966120690388818771193625196611531818330212887961786576693118916910690806298056938217294703071523880521984236233194520679833343606931123203442914567694918665083531063595659256818993433324574289370281540339661125555124962378451799701772351405785648903226571314381566879389578609976020518717439185998304564648858822318960034415724104832946463789828195687234279543012404814817133527620681977345829463221334440300885844639066214694613879632097585179573379273348890936921498000736243669823556794601070078765430152408474070929913453185518635676215766516159547201031550561140880296192602134575161401639022578114370942572580823853670033040594254588905287071082986545227022501736867833571785984715755833370108170273046681352967918128784878224320259242425255184668156234286183011201451728810206298784808616635546647385012291387979656520855009652800704195309727782297138700677754388654970896588031084617720752254625728486168117823524757845487507098760648731648758940397681193025236450925518486230092932314897002697643689389672506953853668877551535889252855512221159903492534832594047616799293115863872168607326950865057051150096118301881657653989243568216420424518591848602261470759126203371176071774154264527734570105532406689881730320595903253286343823809959719796402200712088591141014313322312744009297116256019289190434858118449489990923108319060836341210239534350482506739067520556125742756651682121513925870406561836949285997900843812684447834157103063896009919170040824394167567301158721012700263251122750586093057394541073988882742641416264379416343910316035000080763101607164836998027892327950694376829480073604672638225410032060320180731317418802080226453444847227764174034883341678017210032416036741166856127616732333404072389724258995580023568424539414368859661509268790338808279687931233773844181015409964501298548577798459538002227618264849220511067784804059110485164937499417129228932412862191591165823309946399222462188487151221966584067341661389842481441127395671826897504644132051919170713436286378337825982773174780186856617773419289419259271015968858349292221416857669074095871380405127919108725381182184005051626669477199720282411736380487048496965356980955250919213204936292589978298868305373926804239420401532911108784616869592199503854593598311819602190369915651452525224978540769147728933646388748991899108998248500671225456407378788074275372752588857305074058763057975011748031278452314994307991533415988040133220223304317354840399331462854165539006145169784751300188782710436827756912244263783729820226581564819172015781178689381583609443833902621855697626234242230098966587632029916727506942007429646038468336106008216313246323990147947166455938497769768766061920297953335776332467819219388433650918863144558578213553549497426278809474571201858015732470375188860783009617854984250380600037159671206590844780989062801361706432862731745391592197206337906702426051024509740101385188681060609228857578582703044727946409281358381438917073698366273147285470047645349550444602629967471032057028327671945245058408125791413726531324021604029162833981296736281049784946937401011107145927266691944790263289550349282252112480955799661699278350427298620608864023141456074398111432501020427675636990675285848294088596714378190601175337858867139992589830248718059356972256894918952469112413186564906128411330827264172596112429304732654266227168353161165606405497965238931545867679848261121691871422889557854215709042655040436477589361706299582697994333357230312270091016668759226680886432307255454706189681899285568951929247073461870455623772485208157415941924165862480619044898143918817874996839435738356313831720579063332132892936830257665985777551773022588051619238477825428705071549029917910472617198442756724921263882459967910355513066327382756348050865534483073078968716822844481918269879730643688727766918186037009937824903591649754694124797068753722967344935364013792305803732672577738597616556455466887084255950623474990952590290598043346055626198238900892510923060636600606404011957451271068026282141315047429737269577301196964927088527948605884852632787795192633472204477169986782486867453081449296186782851242739579821878603348102632942036200743303076207136320743340128193020213946242476663728873924402105255213968284005661944845875430878192413673591549702169424488889475664431257858951901733105334797758532370087734102621088144431671348396414775535556268451694491223737294097082429530480712784021594572193256809862173564822786543337170232855753527703692171434726827490934220565154722147261649751150091320313318311093968999937322611847377514528190995925154215416181977388129380777219153219634847935565240652776084552229386266614486098355968132559566071003851127147338319109495871528313820032912429852569532144184823353247859702161438568340632650159534138784280918187406972307034192996556034978817293202620506879257707368607013195381437175399040626883270434275708910766255247010625259050766781328352366721163367142580935540952070252986880432924471456366890652139262015840821789665203169180169929731101526663840175539851341463166877428455394180685383448784063966040181492073943005130644783269356725470443964753827640303995425091829507222084482311872217161787952345417231494484110651443179348045984324046651936580692568015886232232405067779069588737993732292015369263895587129794241192967185780644281895214768852555822487194810911491809803871715594211189209781807422644804735232152458151909135051473529334588512581374048289270797223905522241163074900761813064263621550133208375703024477527360047086551147983162588888108447528854451349229409894339881098134689775525275132412800746259373442158446437633047061048392742433163377403358904331611818377246454967252739512486781556038484270260267420538177749257156559489335791879772979260047273117822586475461056605682404924372211391370585190442602183270742054926008688691311437778776770980820649823082305218991585682357796269261284150222318540424796251614851452633120669565886774494004077044996492304509394200740043041217488460812716415891859980579812434658927128737027869810262239427113476128548005550136516059093501136714683399462622803219648173622713081438029969466386343549039480572831435464854127622705203204290478275790179584955419545119936405933333554300165351373547819446574593572644800515839043919139769039196828921243863667810224993081978991137750938366377924013268550383862304838506245775243520445477143985142288295761970596362090232821999268931694691095590266013603494170239490481572229332637942780735561827862348926935381433885663238682583909008705866466791320094601453749093019333025860226873780811443809074593558863076173684318178158516817025642598070218196112372236664138239814655846573222222348517068512562105784911253090381081425063358330790517009189395625903889417668374723181861500639900957093155280852041643121045100804578494439482448749252444920849569542471329434747350366731709633882357784232761447643653528501233440748204520599212808128691135247040255944487408299969663171875626400766260968743482756082788532677507501110612049595551955652874788033075464533275061882657799272303395799594567110805896624062368331199872739454717265040042014856156098662639910633702259178405797196262072872799089463121153516155701810337894525015071145514918536345936642768016814104353875092348307478143619631875813509690383888915886792903561371529621495905928928912815201982436053368337688590428781381847486585299918049158532510470923740260874651800607150032558812257538394287071424414083824483467907156928463711774656425740333511493456542642854414626291563380911226152050782849849882891218596808470177303273365571162237980356053140497787551743461795566756401812065649423719677498439251017826130152848450201684864202670056658016250974406016678070996576725301553649249348751789884531409936706799615656843323437371940892654194319302877276846456240823688605068801426276382935990425415507778710306137721409410801072333623535229139266042135233004701513477512201083427427529167949738579384708805189309178572965535068241101400236271476392788511786796117318534807998500237663338762524943167536468284342025902846878677327015527938416867400037420023063137362333602812997146170048040217096326180327322335783820326313705322070221571018486283012125276518591440445510428442819878757667245042383191047819202871799041691256412857030889986356300321893997636186695601777435996023429123756394792183825149662476096701654301833331502368158392512178025091995811678892593696852472423270764235434245752170065617803701610599719841095222895470855822735429840327031836790641630889538000029475189935043837726048291667658743215671810667327176505867518553030990756548689191082047149665188762381263179174589144717768887313722608556331245796049803292119045354248816772284686436833462065442636078836061573579323441279273811109754581466890842784261319340638910967266324508474381710575297955714541084635604920979520479065685785968003920423403595244760090952058472933413297019776555959739586460409931575088826461714246590401047313859035188704944218051447992028553231325585457222727823329121675916426176581746887595623693631307699605062855169356021446146534124739276468177187685435055974989512240798785067647194067125987644162874022418361377083478089297967318402194270009404111653495764836577096740160937155112459514295364024942879559071241435158289311022965522557771655403399512173707186407036002799039290212121928506347277863101695341301834629229962478001099787657040220489874531575101791139824810022234498980728031548465411742311423776862632167795698578264033702685835793987995030533607319015522498762219047644505578629747093225604457317240964371353971862488840901179946071895436274473612356293052067272340340734300815912233668859750903183246655917941851182091436454407472555883955425918355262781355116390612357407209203798530095166737375355360316757308253685719088220605193979529801587830915435028008227028026791537747457153903190591573677672480743535516785250336782226360165598584620416803809903729120677875256579642779166092024593634557791571117106637128757723882559191862877037329104355599030552620721118249400977787047510755384468854628197502680265792365971145882317317422449544718037215152388724392437503974536671665052873035778117993441607697984247576817183665623538923238506175102905948127668430546354527713375620633298902352353901133531128853940834540462912193058563183668547639256190969924140188735764014467512585121508182129496433267044192162737327738058079803169549735654409377048846284467614633359518386301459238493317091714756499027221825533691117803703854005995845039076669539086261628080734350837603538952761651156424229526437650803749530845873953773545807921687588221598945183310471940777039389213582349668761536128143848493433270903453756470304626030979953494099628031469803726830107145134524538519971664576876685267295817090695303113018094409871513557482424523411297445404327629902953153984551965905324680530101721117560061547950030529716878469645691610966173368366238570141843524979524612987276805013150821689933914477273656713357133327451347911105090392353872751405075990662587612080267907525751458780824347008091791677289100432936601440752018360305801082569604108230127285656428769495029853060488533732311759464932937416982450402315090883598057464915072987223520021438256767769652389078686581634443711119421074712171804743972400889859771750501743476428216593327139730195740204306296007665777958803006861018102396956261712926119294746482845498163793815863098797834220461653438422810921491931414123376269567854192683239922381815879048636744559012276867778263627939593566337526006195975264418195801778687667797478333987915919822528477371405772127818508426146066617598219599322889925804085242676591051155497750827222102282671051661547990507379564502680556191604291382662879305319102931875323634013965587945429608180050692344485815853697317793436153959252538413436905817105498138406767166279630193605846855216066388374624068202259456296363816322336961572286547755269108599943251779017104717717368439591001532825885032738785090447972832487869014565283049356252318420525067400642206541240379975668354256327962134991277131957571048592741368767195026092955779902493738272871719797153715387742579274699477722109263760463407028266671054469611910286577613771804372825414222862672615285007636146887832672178068813730665134250233359264698893348356033108232652093412874484992144420516131985515974756531443816466706790508300582978863321362983156004936820723942926510695050430087900267862734511102772125077279077562743474497460038900030487528092573317345249478037999591356006523241925080929051398292014685210028425331167697344583772102744148019846509592303476005303592359274985059516675211368948617174413469646848241156093751862852885299717636687537978001421548338704148231772163711575644188242310126225541985514862725139601404699541166691085001918730836404305838757178320037685202616632008893519364924266552950497757599855431017583117244403430243215269345720944268926674282686014754471231434727241846400613655200926949848510835315090595758782130456314095733064133549994190859844688659968746231670833483649618676140822487293421652232933261988422283839056503842943284985861083660946132149307811543058259241434177929488751949735147022283892758600114446944845098969663221136499384763241418444753406327750460354269126063894467426884392453472942706612026093281170760369318230795870700703478678798707146400556063031051104947847730200125392401854743389681540739548724789658154888457578880453185288021750308502788182841260464782193080445792741071914494884671635449242470083792906260091683618920232489897800779495808120515738549316756126798637186928791110538741603195126003716844874839991313563959705661779825878519225851866464884521274429407339531169766730462726515629908471307755924737216727539439864301275869907201300689321767181050759302653121973190653865490965502135023119586202586803198846291546568171062652966965232892169598040294729043545456364003330907332820541321997104770242967823957645956529781889121153065969562551116279492373219577520779012014040819672002414362270443008550119454346527538753048702853554638740941698122953846626485296872866245491474100585107218319835887131410734598421861463292442209189560915683427239494239616727134419831371278346416264358541451783596013819538929250869738871921497049333970778951268668680418925488358669985220773753311924041014336346524974683617261027149595363190055405827363349232710550709011149178929557836081024886627946364621679289039173996507774451497828071244805207134286275512206309445562603360751109921916434480805449206896103209028062940637497077774902621731135562809882662361476696720121348852490239779149105835592500613418923106052333672610783774556475262140098236028239776559079036363922370530122205943878773085085596906959763546971935332605867936325709552470051596682095000335516939750534418411855849525854558788137149024195009659747981787059451520793080324300657164337629611166257688293335216538487062339882758314821545366451025922637649524266026843861057417711418629677484349246747774156762221476840373884309001857406744630987982645171852121148797426205558704598428433506994895453890113609213640511515297479411197624427941619570841643741908063823989580893377255877974794540059441827400244191430166139428950520950655414677229224524940083568835098161054889232392554545873342116774755083614644406444673419950107219928426470015841731992207855632767105168408409798341220043221613748577602646486876756264573315305709412203610959838749433261375241433187759147918834320888213144306472837003194332191486799412131042148114082674022971468933310704576807055746424285532666620416581100611237900453070128551825424300054272476477994848839715177353003644391520949978749417832957720907699838132785968049542261857457121922222886463291996251405572421598667553099617016024286154674876834518999134055111965097211677894812511494933760367744412065875282147318687890602207571674524161427923548640099234838982211218084194060415843872104272067765991877479341322230383405214019938460963320332552896146247075553331832921836483489310301739249791160467714298469583645666544241177002807455144910336169805725100093825451277781742872628100207030885584695838033063998121894665019911379009338515970006212115861655763702628293120229086764314838963915982152117968695951260449459596110283965771069642400162072588492790798182928546723512944005189061500247222525082096522125255782307723525721656546038471319748850982106746107145928426538468963184188903148799828754536616793288867179214632986818207296068300992551298731960412974090775008653206280939380010931074722234389754766897161547435706544340861270929314029978399278086860259335032936536234719403675303104769063305957212001110178920071667811235089596900983938096171971205587489575650107241217278458716271093572182868493041786350949646508807087877602734951822395848883594539125944692451997976530011090580968066224332680181673350630055270463007472154489230552527454728860775227862802856599209603387871410427042563661369482591367060092173961559988362137925113721238570181245393417646972078220808608254355339441226728818701788254430826898833625128012303450133063463387174764979657198527786952510507569523553638170666179808554171723383997032866241670581304963483439566735823590974901116854022745987218749869058839595873290779707951583426033887420670103210647994282629926082009883790544517505428974279102932828030144446916667706400593816264363216439973449665046203579197743406324321385097518658345907478275463535043002971398065976812426584176797294013474248485425386950471777132914506667345961639498631627663672704947457130499610236892512962743677635461457625211684130694481029687460667564861296097056657021398091316633196821792665075917802928133035742882405920845696666262921107676355089415507631457415835784561549363426681920958814721560678389146066081002487598376901858834774902176772690086637548825746889175500650780783095690673300087257462731839212243268077849171405660322754513179054701500611382764375304464366295256960705390567307374603712601778720148505797490054974197841886167570761910817132326851678050454785318071257133462688902470177144760264960017551433378674682569419225657723361634799836301138802529279395536850156575589500256438861868465726436053372744178098127098867732656227148883202809336065064094183041131890421638414212349781602689926320683846593459623066931107200721389730856738549577331174873347697499370258100539651306483197126589617268624233408120369869883138021227447421606396846172668715325454352495307160597830803743670937867516520057720455779207882720349439870631169675209311965220273785770946072289294691549635037657647717358170367370031177258453641521492753295681374632764687807498334442262351316915073504098371586069866571443999161514868656200476646783114625538951258337516941586623929299615754198311271693334216989182324087705341527274246519551758330913883829084746664592694392197318820591452410155409925102449165830123227390119072737412635024017391327089678393363309931255345415663640910913312690929377749734335289420978213098847769393366779578633263195715308688441991572508861114974525383797348005897452952858556285019798212012395668591821228000245285261226480667482308655896395927560132262543271482020995394223374479460186393905092466443158324712093091519605343176652313847256156509022045689862528995933502710657054273204953750656106825665344063699854569011663386738424273461969290639102099271627508183876688601080845453392194635580083499064963890354637614074176049193479295422570884004103901173637433280634688650885691097599480148096905810237316175337126457674057392405578888241578389486761559843524340679396124379942176538102131269378340146307373407388342263886653788650371621797395323773853015853870395605564706576573701213399636614909471131687331100539388595779598340743861409510146541581516900571463397889720476261293185517623312540769879716031152702236705123653470284111353580879219657675399475135030049961826185200842203741708711764626810268266685482704819936942347268322407664627259823591294207415625632696713951554749764929968906764938765545563700379596877484430516661155529668000289393494256492874627497371555787561708229501599780303212770584281328786725960063870369078635069763273179158491087940698626339609735637960563191006154172889983200300431972550734206237107811021519825919737181064911494039178394962454416883299291991495366139890030578976633053162329596920918782228725171174759233447313433217757376395705391062224010007164769817286888094532653709665749517725090734829471979306082783844601126884405081215494340194111912125843149408884900439139456172856922005956581598799439381606472820486811655663775633335504985215480371996977475309172560246852558278396372507580346811621831065471359261740919579844510175485754212779558106523930451882647965223326857533516948387565894819396051548028947538960194584389481615784618306723709240426109235398740095686353976843634721145907720819237493054319703008218729442237500091200277753394092142705133089941368295735891394056840852695752929532137908784485211886953707251613194232760668041007798890266746108622920175190721824144341789851438351162420330086939657419471110995284862393668574995088541017179867513025505164285687567425119873180597835968031741208852170402088111489521010980068250634043579784496245038671603121925191005960489973964017040944754290540738998623559358589201670194565521260806649405476269536511555144015984891676625763834224426138340515045501020051631954914102542114101508273250940056676939586746721377116497990192985012692965390066166055222538709732384711631434292276888887325798448523334574774307514147288788759934563675646089838277863053688702902519988739568973675690310577572913186320538320590571927111852577777077758844661264617933843938315499765612218717731511028379514309925296754978213482331469998690830818417748447656385635016626057692135303901961644124758802454248462739637522582606321827183525755514489262979904691304502334733093692963516290488091574211114495923390308785937343427695816486727302314854689349156048018409842388544490933678821748725321585020339250240093998216059418893946680802501936632305439991085965121260902416304672509966789512684979277005786173242090352897263255754208383967884344809453317243003389356823229740017499697512479038154097886035845345421367204950925320036179002058059841527657866336180565783128011892428711026951160158665765714115408613290817325315011527997405694182335669311367759162454062236707212146148262646140714318083635012790851887213432627867926432749507748160606343671327113302479081645155443484758389708376456902005635601341374892797367174414581228358848947314596554601618922349231781034923147886298632603085016583446916736472997778114452002913767116664633218765324734558235276347012509852820653521570750000640936102666317812175104787963416379358224852536991853321415460954022082579353124474530685009683806854306798046125859541362563719547105943187385045454166269626160626945564173166572936985237062686984562838486886368038290885003563187730724778014622500366672979006465886131667249020039478448788033939081459652042949457348185322900020133921619857925631096263021755869952779116304982463097598051591046105090022246018399070520617917494065190898651573807525712809473409705218723779194983598522919750696451567803223338377345930325704980390587941715755347701196338803027708408033619817940879791601782320690309295444556928693219723476741725951877601152816611739228171561339709757434121294983918521512630646569370531190342262413688518758259064266396742571640039523671033860153726542041981951897096637848320340144055624109051755077836978799909448165350905093409588435140209620372520464845054998136119669412735568723758591028327597130228493834284731917769736220750648224996446018423155179933874416097939038636352933023507675241888690050055523507456695182851695952617851924038873197976984093851568933565305434693368501916428244831941911836932317866318159084375307121277641245381167331678382182479827784824088495575685926503997705427331064522913957842653801588333329564452995326923815062494105342562236832372950635507706623720659111677585414484818665046968818740771441565796685173137924141409992683911699530206562790710216259794208935819622310142976248070955751018990186221446424875180085088952593307726940798229795333860811478113350922930411101838559954268461945822135192349308428368445171649589227159154771730412440859119863304074049936541556867082638546839989957136100863265496940086650954417858741757927392587161245780756535217799401381349730240948567148677611493750223757466699372392563347793052586013805165242101783468783806617598051561213256857529844395635131551001392075466227321958717475824076914550168549015084624040569686094911050701298959064457501095582728935860049013138035588407749179672145877322117030375874835357406381443277999164123297951485543457141519520611582602153275798828598737812599671394169023211798151920502660333039986247516814481074807156683137924026146657712730411426865146401685648855371966606232558636130530549094381515524536200687331515001121448136585977409232616288214862365028721041211466492915639793787906250216632220030294208343253189016974526197331197744944749421994342376094434398113099281441400946111444165785871150266808017206581180063620514644511244281474241253367645503500452365300659955015303473664885350822976356319235785571014029934434502253031320287469394241209519589879317513504943960989468423931711800085393595929774929247758788727463611596229069446673139069347586902025545531792440038564548674541732080010622566922926199652162405445487634990080341026054540903647701809926594521066608060757562655293647629502842215013943632436683389712242558846940242989555272300565513864958022123924363217681057453763453091080289041230160303628456687139784806713236796523993829833264719955506998099362946949359452401004895078232802020954895635046007557767633669499843558736702769356692233089763111543841439342543802232877916104749582026303518255401639734001895136605017901893249218801601105079612651326757775892545727934963928843912216979541189423640787296423046846913526132359522506559629826164302249772089646219218170353981436922488700418008194227636776632549279524824572477643454628352070940686387867039833735795132118054628496753472969972328672365527074456915256388410501047791619676378423010059128117981239742907206312302465314994384106119076693828848357875930553857105191628939968206243157572564620220242886626431941699657241432265935656437744463824226365679309142948524566083430200661063367920203592139675576427196007652235321707071986795702814166470583124440961614824263118118809253843314879698180716414950273052722590085699947966730934297252756792829306763500667512282492711014914825729977280641024287100659688026458508267760250168605387113526679872279607058001672623916234793671823269817872229683013579175799093581425695503911166819082007371042730648574378637577841455449984240557572434910865850011052938498079968300006768414604769020288121663745013710342368842659789759554194319445475029332674866022290977107036642865004047667646043903871097310862451868776460206570375614330012316722694994492798214323401590815424750014828526042259726626756533595509652190017404458428911151173244025985959678378819727128553594250521057350573603829092708544937706045278644856285424488181271674941782065292938122491503167030033033845641603843333294928816977573280936016546574707652819209186547786146351914867587483912832055551870478004958825670020270871052487941327307976652648816251164834869395095642808606800434352858605160399304498289293940071778134075373643716545734837927585565075296261156462251314688817635764099466915884546311431607947661354440394117037524943212697168003224976031518189948191845412654299091108123392185238225662660198528411172960317286564435385313045648055079036600185508411854482856264903828622087741178930673968571380999811921608659328036564238329492202747373258769955823748697962779554621094318998123141431113551946511966674502019460971355756117178870184327196374980019083089996379507246373657476193669649515069363850657803781933108733645208668867345759819867731959563579095251832290413066770279929550748590872114274550843366920548505491865833856918447224390768060180485471097805163528982696334495598446530630452838989506886354022498502108698758150168707969859491355165360943435108569991201472103010822277561118314578014358915093824932455741482480160252511883468155350709957930105289403763503587555228097470564475159725687060073079133750360125457020652280527687085597488063725870522544461925320591846997748891690300822672737948326899818449872477196262661695582242377479266699300107811777878653902627287795964655842324921209474797929966969378881965484212609181589739401845196021403471011152274238008516502125871587896034293652089142311438517356449412592131257838985711352399398832482718022554239083303856135029424454587770401116090810447010377376442332712664727692242151756539482585846600174810602112253515931505849026380267830371072317722132355551991780772366982538128493167981218711670514400855242031052380994952420475726792360964720309834641349119158136690521193802083356906730978580306341979724499909483969559634295894662998196022759707714794529473001698924862922989291257195619157879539643290261962475504413075376605027325965519193637972604785518357400168033776764705521553697095533905823150760330316413756524393303539529360792492317024359313495630817212715329254095624730108144431596278707620988809066349688338871826409767525166843125576630220563033048068281354071511341120483716771231966134307970517501914105783140073063700751725351961537190812538675825759766877547421064088179409351191267731726774377967383364986490445114743644935506539341850940120138329540615600013827267873893121028848473659757968820898325263573762334863598362230142926520049775452409237078155516191031797632581079934792438949330513048172572132867707134345448915707290750114360490341598780031824145932004832337261169997416130734739739892730900837666084289745034449654788888356572332644053028612137617463305534893355262687216621022937636784274657768445701417385503836927362994696400087453596914765007134842993480398691402839128790486491873858766254853496607463759349600045658092382491029947852270697268582415776602436463309746767748004306096384687187994404585916827747746047346078711606353515897640514644628261545582305683346294460907467525700823556198213070635265732917830635807660534792904584895276241042685666874042551904595813488195127549250061229634919736863633452562809210582468455595344662372722998709800316636024284330170196765454864148047028653265408624477345173366166235718431057810995846289394178555959579215292825968564643956105860034754240181283792232471203175794055684343002548547587521953795846177389755077245080556704628644755214825802348794901405359739724999638807644943562686745897075859358284558512035611764392850507497903005267935271231229769382511402302800423107999159899324867550742207080663307281389836169804853865845789542060879974998447459021293510508176356598865363911762253550126871833176242017270646812691389993495499969783709165973927451025412711881905318595113918859627860146127253519820799918397677854365790492390497352570377244523984774841294749146759736186469958258790263821857200201347275150188918712411767810063423462425406732886698003957640656469352046419926387491646010171316204212393916967414724014818314860426316452631236676603991466036794514818061776034610506463969446354839517225297304995980228595523827927471928852992262460438021155805723392595537266186905600227438328794796993491155940967080646006841011391787363750184088281300145950262847943834982706266935666783560082715252833165395555711300665233054791017408919923566621464074743751640404211828228814735204635622930157381201370923495367610817160435989627861798275866176626565007709106073908520326519127053177650449459049105887199969640961900895009360125047682703015459783176845179073199873096136627212654326544720465920126461365122507558840270158691777536039618931580644618467249724138752975363899575013002006712088223188634674009250356196786590865869039849270633591467787113869859473302249480824464563191144006248585855960802622638274830072268843167544566517707149293983229524271733181615331748117563326006519700210255754923174344010383168271787755043877583540470933139536557086380726636348762375433868272165960913978073378169353969202645150860839612987291378267351329195177813174907954367973187955713774829926737940061242137267420858058592272426507329106038472901568580338615113092230851790905967962035850959615015617818363678786928575336666093607308731480422545001968925024748038137679705651599827686708446654107013856400764877041601999698096835513104830783040018218719446347096387611346393886307676789584653000209670512293669246529554505469827643785359180762432265236497167037049165199592896859831714003882337060812404125616585446365929104136057833403237969164556553074592253032152620365660613051965055398618702033153797603331695628160795752405857789798473492414314368064760498891930291012686825723518288108059427090055915799351704411433257335119554601896952179463483640919594825104881717895834892801915550082189672055284030686523146635362408947668763072776391078136603258513688021392994112001810981153993672142059833543775775864838723904216462784588411461383788471466489080223044935778114160798963706598487431088442746086518159544404586884409117852198999380089776435042515699171529394221562746771231572780109239535331431435365319193728890181802100443438513199182242838366203629890943394901095520210573846706280126292802359936644803136586812372331759770734270863444804588431793521877314606426672761905203685502995615790722958479980395091237245611211952205387055297581463685716754390262669235275355195910924441317162785465936641136419071022923591111770718102244437485316526477411592454752495560290418309030024454865183803227281505804300719998340946637120571729908521089885413286810363177731725173082036628185770772940997531127936886385508156456835234306936748954852633740891420501173691520806655301507300311119845049533518526302940639997581594881066344681381288922248714862061665380990223540830528820508176761819624047430783699711812752942595680550631026248797101714028079123904244515493694323773607423435258950241928613502812992704300413169569922974963492811589174358046042002545515585906771322417180830360621569070986750146004983173056910750528383908568628652987647016577327055367312080894473469636149395157157344224813295753101594249192550878751545696724229544205354424741013587916910505956780203989298252572990649679718468123888501968754908331840151375897215057723106418927061291324932148031800181811420625719878813031517730339118945235967676748981273305770164189036801100823136677910191389100435442129806568347258755969514618628825660131259565351872925120440244487505096612682695412157616908659646308291630545579335780837760007325061867701895947906652750020162655474659049177145899399384988072750560862234053184390800466535643200840951241441877260883155648019947405605440326991010710096733722237997925368993636715384187223992860247083286587087801643851948805450682078667376843202297545228767523101371947930587438307160585642588287007285106683440562475795100666528067845220115024841469860647705227269067807503000161455420348646843984182405472368481320075406390072918849082050823138108010725638428466403982517951183811440213936276827370654221573348360201528352913681700868334135751147180471951833753789391792036251491976394015392042423148045291899723793720500799343793402225333006677990409656605564231599066319831091864320402265448893231488796553534198581063461110753262757097442979056509280749163032435885086545591625496171379332929965141722621705143035443611093513471134787073221457574053684188295518322504941488496343946192157471501568149197300622280474007861169852275568850178116951313649925587073202871376815875501743732697809528165110681350917764743534754802524947648796126094623042437797401000206241118945130768923050163730036139956734830704855499884724874934432424614584474806380391694353789736071279636635437460940868778995747373221204645978660146822356400559129619203508933177674780625624264042296724372839732568781866537707273454198642665337640074796659695523464153852467761464897938126772592121152446369021495375873169920424850202443263804018269845305531989154586683350831125032921617643156129557446100177443466577404470204856662926017358155910326839630509633448865545465362770557062106615227404581784297520067573864966565949446522424210579941693665919844902284914991404611166719551968869693326566047473265059171518792282254827510367957166607754743677225748217887839065463508994556190790910083120562530109708423291463349707220980495326881645804247755774163583705350270322559645397799375207760609537909398764768891713812106510449194366784779181011632431333261514962854975319018577669311601659025693929326518623876782446054645281395262299091411727738340997873524286005933088599287454887842150094239457201070297807980724748188918291356293939945002007964781354434736614593519058927696252940809321829676767974731585544927214650537935133621812254481015465081242825378322044627889756933908653613406274825435822703927691663342902485605764746917854154274360279103040928386989727486182740543638709577455232293597653971864241939926385746911007877065167148003083983158730988255241016707034908987405599396597120982471607963205364648298568464102598663543366665548813275713704509722047721908690036765176774251073659368395894696883505648548150598953754101229864365438304142242463143176107244261098567497972313260965590701074088134368202145637901165826063436091421369177710956762646943492858805533933132545917039259956871517856566766298027648624355956501651535492432943798454561859804725577177238227372805190836868613005394529098706639786056386113562484302205672617243639927791434552400101833381470413348852586383090203651291299838415208146752064098154158348698091222539321043607553678572607981756576773897551216772303092196519217589534965728599726584042029460044703887305778274676313405765637470097501331585419339704955251276987399506128395672848887127255399218280530112680134308040778757096332263051503457434160801496785174509638352358673826303500278934506508542013235010665753760805033364477706126802666470019237648090391484439508037647604768932415111142752750548035046020945085775508618991690226005723592102785934242703082162974198243006885839500055408792730853817148972753497428111331274140231781962751730762873558197695583320312380932824606438187726257067245829488628206626461600750816013001315448933795093513177507491379824534220072586330536783570790458542413724557434103643617124046993473470710074047976801560408343718502327464550186037747117603997750968345199025015831871306429303927177502505892535299620243561457298252236747768058718137434308332552695214954348004340829772737575171765912070753022406149694914692393471134594462336230271697165413415581320626559841212334579656929758613615927576041991351352531097600089983559960750762694595541359084398688427737462584021214401435393408266946201201159397523858387341292595273374291091859290725103863038944217432842623615908508370005386819251195932194330734562735286631262399462585899553523363406681693774482902300835361757232930671488529274782043454953446285417664375328164087460504794719265595266892291096191530342422449173259277963641195602427997003764641100601977940531267122656429901441455303245354915596188731038552182682937856836963689093210071814675807719488136695352731827379904241893659276488777760222323517684274254828121346739202965076688274543792118525055133215781969811287821849934116467844801346976698459205693735030277974095146913542707095640121093509115828063447408679115130300016580908094995388175223467046684066769250436596910070118672123502500432506924567061983777922751264852053614308754288907891682534229255597056994240230242942583983602849883223032313297854925758300769088360489475108766945536411688374759666077843204605460802060806089847583675400607521369029616848680075542594131750582661257360728095040988645518477503730369091750888556345371828247710671586481577768207870959453161583457685839010132991571993619780976784901637977462450455750925684376049616255044257596615511775912842051026830113097445181201448890765844508979392847744425687956943421179512516686597123145471622930404908639488354056501019718544459722837104326636112852958854036295068956419286891666958929590820076527053461718999401886416817018637240648671324458073425351032362723885587509732187657557396254574045731070408868990915616495088294243659704127577959481069893515633772052180780333601183035849418310352835926587320399872180134730143650931169192605412222847315814514169110952209271199777969736965868994838776388127478083202831240449140251800187252067114788836611530554571426213837301222408388702286290854764677287794870521682771415441797321010882476380437153048271695827065446364018416857149811947417627564804303193307262689462783199745423080995191781379069065841768285396742747196427396113510940052750411329980928811207869388935674263008088122318241227725829459955790434767970399852646878096028147512772589118031345895740189395557338551661054818667599013629744388744544597805913405718180416123294002377489974925117584789344507773926468652508744866718226686988284199508283323759057475116792369274882640368899381002736211244200151088181591407628902200339715402515641000971184952187568791611651655311104961186668466693560251854151809876001334095855218985804280824444497289467858600320316823006640875739986112187958494885742219138103063386975816684887221975373905059821434090515523443855260788370521836872949883267304240938412026729719813790695510178227346239653083794113511316347658556329116314476030758635786505064339971740608369403012034652765726907854258373922672414925461112066985042400039556639736822055481548008050174723592903760686580942223587349409582504607683665105881396565609348674466356780230173549112716781177942994022331784631890290156864825215601830364527395192867220187114499396300763852096545760091288152161211523993198233016211007618117668935829213265842510155929406838991545517737147308919089565391379008005552172070698786477246709897873293561975072514264226563693814203292517347032209891379061074821131376800675938530168632922860571678668962492895972250481405449924131055667610666226352815114268501517116065882814297555412371213313413347791015011252595449462505299255590562852341976955952017198377984273953070609475187222985616511328541425043698899305580176795362716213360728174733856880988891009023902514182808565014441856264743888239973901868014652705352417904649484099666332409795945459896410449242862541340825826093797521737810969752689666718482335094524304724491043636183625632638042064413436917198078491624271651827376657666429855493645832349178079738485397605562929150125559270787419763057031777248774447958359714229155859540289705529268020003418472158105943092901944286671669242599740642822110424840129165842108720277830480545324198966405172729366821573483373501236158986136171535127142734925805045179361323617624946167516166411173410145393030870660579689752630271202581320197929817448149904878178946439297407906468138548421609056574485826539878615613641032526809280112550645313265857156724353651648566487614962691190759682732405917418292379410177866545500235819914213771835466148044572569197134023589801251714977439087732249230986550642161724920543412366803463498314142831911485438020499059888973126466878871975618423408644366909735305823384652020058401506803052981099616086100504299184417303166273291027179041582727408716759188433000804289138183454587032040592809797571727735421165235561204540471221269026384836285088398436043500996955720845671757756355938655511780068102156735420053132120512862912349860851377461413327224025539167458852163451722657148139916764980408432779461960081423338260554513998274829623559363184484555562737575104342429559402408066321462390563202618352471959945856615041712599354990029955498461692683615476884390270109224754034017435947281919612728173607564390715333506849463975485364255264567417419202112785933987713626028110925768990220025752413245437951763681094444021746969321407421130389660670272721224534107472439973032201428876584323384287691614615144542455871242704540630999192763946872273239170851149357768253156772297444474890194470516336969420500092915980570809188521657995132003803265077370864678299432366138874391433348058610775206404911293529790909601245907732962540024031603495406081457406925495615263261512634844189299323763057384466734251826884295387440803432103522110098644888326132878026382273895111836862734108609447627454129058176123674304257883501422356195239280885342711515763629235012585129605669992033532316081350745181457156096890645234053116130605437239906387923609480810354471077748588910822231472294838706611791848434434778078431742059157016482637478580812524959424362837053815678301100409131029136398813266403192855079548123426344470811570948628466964875106205795763480049799833516526264852296977632293459794484468057228360054648168095078997717978007681203790196557454386403804247565899062511560745124539105786398976615150507123638563623514196113743899133213236977986298571930943733474551554155682537310509928267830581017450428548371688319992893999689963066524898602321272678142466744063652293157305354964189660251277565806121501903072786067574356601995220198157268119570030963294528821324716403453678126054626373745622728303751667923067216181207451423488036958785141843567210539947520643550790895597520698402987911790170521809560191306081566810895676286681704710827093495974938866844265316697634952380979300475619147412578281442662095018668095877354414078387784060673651772650832802021360714725295232484472493625557689903612621627613624847455244987133875015476929969660952469085656322514857148988106072876824586461994307403120211062655253842061685593534708337007502635990852469125956279286575748745098562962393244798901369658991748554359277505104356334779688518981882950709213798806437806085877235615326512670034336522955578066338372767023982489421626530655918381773860984254501892640200383226805130724227719157605908498969204325789030439452661935364650504943095149139099232816472443410174825592337499069916754222887386521104902452599005334717165289954499928616433442575166606928355875418557728657908810756604750593421652185092034910341292279976094854676695996016071174386465101182168863321402155435723987420823806677425230855190421058715640191498138796065433220262145351669185275366924488808299020800035315391127569195716720342542228731184019053790971090407250518068503015601627789237353535890589159212643191334413991080626890551084384901664784335559346571435350533160977265200594577110526232275695188974039039666170625303477067541586006287636767485071294739076089534475278512335493181634429932598647861079941748402638565151723199657263628505356787674622211421174601445015640376463123772601561425846503661313617591308309217148820233213385042063467813632302836261062868457347628660309373771826587447463774113677315288151081150687666372953095423845923024221288748735161807384563979176957465047655757532712716231918681202176336492663439967494758111447363661634629987371397346070368947016189908627359957041823670981490410576647389224615872075514186956263499596173789310408284141088795645124854559156943995942165719177080716927669891349551903433181746988560535365210239029486718115067900903617073635121294298135111354081686645255531570961841548512928394561021134344376878762244689883344317647289795188285377076662209059874893948597777610760265839573512547696842001627111666263923431414819394581830668848885785237194352083910468176761617539515275446929395114473197388358945327831878299873046036007919957857474214089818624500225971353602334138454733903529918904957439487095649054235260478720235200324990990007945343086799836743324272652998289620765080846119393696334222663899889928470587449019526281154508779909644134769879994448522829520171877793762098206003683293388221180616029928219628155968577023689958158437415388881746722771540913268873909866696642439836843261828862017288656289505679410750239610932777799270910465256658836026872396063823928485787283759419485416972716418483453473437190066602576521810314778648777464182419675673762857010383990960920929463763516238782501946087518903587113413158421443148397805393951336803943917887740990833708411247943608244570098106709419012494140581615655757144725193396883612611831913542193726124834392373482315616313539902104112324822664194031311827818807232239847238695986188073939811942841288337670347561236854942364332152592181002920837630199791435821758604232165923879651606353800818041270698584905141903095904921304396508275803671656638604569752446706934601888728203832810489192290771459003162611999506805047410024504876398812401686303550802689378275750409545591087691399286944254506651990543878597181818315031498365697696180713322197276999877997454934615635632672113992205873129936249870033215518221510745825179675582104779429031174315274785697258736305576400362317897994097577569137662475211164528365966913871686259631823371168048903238871832214837997349541904312311461140089477468737683501226777258981968466166369274380370826676819629948839134787875014993151475359770455105930556153292026088013566832880543054419867609843084962126121013337930989929691349547166461952539479314406922145827686593627294759679430259688503664314111382880729979961563024849704561573639419009440749459552319402620628292781312198931877760200765888632441765571199264260825086870943120631910223317798388290478123130852636087956304289069303471109377836685576573833621787547485885920436386376787788424958160283806597781132686967967826900965904800001769376580687089714830084477666845382520804054451928207946584610605948720523095977761066242918788308532530653578538302423111136732211934776525164507371761918624123053623657278242298441757224397282112378049971337557345861646647322521360931107073322213774032027367743622178756942307101595937985397436889094180640613506548859280054870164383015937327524419921974985042896267293586142357670529813335624843036843599261523542433609881453026196097241812928889100485542278806639918936072950047666770853088515008716811795829359437933997483327675000942512468602727167764592467406526317062570708851403274131463321352951803094241596390648843120143041047827738188132862128630746642133372137569139168260729766118294926029413966332612110353526217900522131916538803452268374754364778678507109718842981398123735277331992443679619627515869820774807383792325007880043938952233591034803082059045441789764221211421648408597759196389834105488760033348208735871265917406293324608862270225228944241428246278115302770001625739741998606109343115797429981307573770417355413246033850251742496162041998548601496677429015630500887888224053372276683748685187109583377780252485151867540468069910930762678183887641792833691419689096444191236199944321323638144068054828907904444874292767356089279443587944704372959132460466994179271284272852562544963254890274070646640830224521270560761300988271828805202798604041625721210005785573698720626133169669784831421943664662587523722273153772667820246416820115089440427936038484798302468148840561738475097431974510750050612934424443476676768131326670647777627513174273382180462411433610343492294553517312864276698138987059472231553543210562993501232466395736160378678702578517060668358086643852331442235859051234742417991823627052799871575355309151783350947562264176753929850367342695904592816068289075815764708198121356656460767393062712234928550720243806619178622813117557984599889851652832254956772783857140542877702144171187511098874196681579169155386766100840889324630543247790154626333786281604437271304824370667777744989359279355978841546029090723864770044080471157980352560536249958894909832475378662641863827394366187746265646868316098818624383921672406843892706045215223559419517529785052158168272106622520379606016562970433926069422992489313483648922238497328423030130042635415373011373234699162764090011834412101199604206888367453478602231451094590706546093182004163874526767754766092283873004034082413043364101668538002186463727235542943141487716555751776950156270892130104841361125286056721350061472695376373649139952932004271534624166363263859549851755793774800767609206623437844005505431321142458590034550846466167516942333922676732684423058298848250884500295954225419287134366775370748944011697252162415312197202879009143554926136804089799827282643211110393945678651086665288391867812952824030632759517272636101725186756655359876966196229273710653337764003415598253953955486987062910106410717849864673880333939877402815033040511714482122805840964340011882033124133977072441786180685471977269634504696435074444002235092293660129307276680802442947355173645962116092866131384425774037827647401139383728718124074941591695995705806554997789037856494723483386016288614797600602392141455579294036743756136459248302257006976088314415350120130626158705684985230230061606335079014142862185557398799796078097364590089811482837225460611716920733423893388845330528184691408068571158411738831145225728817342364498796871630377559388669096746862561492557907709555893115370158805487674780980111561698640611889099207169716128970290307470938656366060042258529967424370544050582471092351297074908274514083261109235741268601804753623184379733057111982336692898178569416270959075995064241069820905953959822275378454455338950365725717299364137103287800921635945079675037235447902010713086575953340444882108109652270653784719510261808873011163450174690919862512605112719711422128616624488994095464183031020557772171175586042823024490130080166461576508463824101427306347436495809442776411868299921801637639628330798703780423183122123801662763349912483968324586693697836480520528809747900460148707792660346912588065319699286678613178633216679319569147033062370148910401277495060316388037297443002309647528376111379792109794343248480544834804216788068022005694108322472870046036141337021145548359439556285219715791177984513366357684938150545701731180736567500214278279690935144710414870758140068189244135341440579263677187898270624429093105543105162871939174121974499409672165190371181803687161902749791550621245023866181168781925963293486066827750669150082327873190620393258435387534977260123727769454193228293245122824863008066799924122444040621558834711035484488424774614384837101145554026387627235533504786852696457952051835116202524863408168543166083470364177290452240927879378990819535130897423635392928190528048560920961547072118669188187484013772272417919886205163866708743823818877463727915267816749804674125854066167195874509172435209080537089641236871376304218507308747841630816526123638434021397107504027283387616267972123196960701004349393254698252608103572856131867379594672458213769168746517646300576061083844223210003819989323015620727486835933032813602732328889069227137888532565301620934197171728235294739166264980762493661902788428213667903769228319036614472595728969485140593368078320775694247732566924481688873409298061008176616048896896919511952152444289058420510680982293304749718132553857908955413273079721114357962356010514329893311723893455970259794471107156777457773219901953388775506335037804469943162806236908618070919043135135167437855204150035036997174107291904112546111967030042551355034662482361972558423575650037066704260505011790894111803263651380945600397587922404312129922413320177354749363890608440307369480228600753030003314324189381822029581467801869102915489593545802559524709403363632074121596772184620585192696421783832457655875920680081152496011729638470163489248029613017033444137357457622097440941689139933092569616340884559358726494025894359895148364538977904723813423718572089756777833058922430625425882546405817005007018036962979942554418036562835659338071763075357924391785533379378876757528421834628046838238585092607944233933259742940002128125563926919194595802172729128708529812464983090675991884586848334596360580601302836329255617971177502288060869276081892674228968574283996595876829785487609946140025093294368442650583725671060508765526280298614166201523332112437492006685973418162510980782353473609136305618269570215983449527057521045071861522223480616940831391608634837113277072459387325864175365054175911921504201372541914126513865325465083123414843001657525275954027223016289366513190120089031561125014605879547540553110764692137609987507815489246622554587851786921181734646214890238401108512297418767646944960000878634664316561499592649058198878007376465055870534785232538289640294704554797137872139541600293385015138138580266538300800410581900105743133521737975908326385719685365262210404989108865370198646846161353951455911114402119559727990174250446639169808721238249022483400729550899059013893984302729800800570765222875277081449387665284058446147609171815417289863063854526969437321979927564505982612942848469089859255901257347512200780649353807664808952113685239361164765833396089959969635072553173815016609080615609761889838605469077379517464009076038649024602594397716833195700567149604918024819375599340962598444146512260192835303424481226820599925664054295653035275006295322018940174060348779272114683543963759705656263381388930669132047900958577255637340557508555653379406191132278883175167382202024763890755870380881757354122867358634852758869378785620666997772706002048478054607657777148327112191543582138287734908203975366834554111910393660570301316211441105935203412796686671864829275156236021132210141018357086113426340373767051445893747779258315414742368637383006734116336552194660100295494636804630411637755575080144892939480516201465445694372905522112416739640344780906219845012787063802488698982005293833931845450238936081325330102112579899142088024263487153206254221485907614863482942052327133410804826406006979123109892371426326642969953239428567982598024749377113134796720504236296569773046906959897735577435294743011684220077215310167082468995288177164959945513428413757375148236152321041880345315944669469158120682778864978227518874879198268204761464564887140553237318063982267414058258283439976031457512537892275773304966731891530379978292001263606725826564139396117181326860290654032904392749553984338307519362466513109789902979609451758636490080326469070249201467448525077257772260205531953359273947665346774616118023067711441203495764561123414867399312223959831806462355077046158607084701394573341557745134705965420107629138968611736248436901406502235096074760255472515528330249186235653861966722433822694025886636840801157909454790485893043770149081432210781026980425191269480683289786626975660640615085292175992128107943978668056453577858054013389419299623619804760676697145914464312998461676138134034881639020054783157211054864732782037748165559358254704252082891842446375402559226143320856532243099578271829219969730110633352644233661316577193926282327269461450921876583985322206062800864899388816117136935865119875907771536085292513079484741739804452374815839699177656850024516105891475522143308450107166326020706674132070523986678437956112644828449752491570897690480510323169119720457245054749633425451098903345585068399745450603730341504395113818061159720012876104227839979759763849895640963020201446783716354096701656296057877341421923956627767796977898063476952321940703861912491296119871570510657533973546056625726335239991026209027548166699815426453814127348474428895981672462888351420771304519468567727375821006522938890448935952293819017283976402812249993354616997920485480373009842385398958085158901878806337710518277842252511846329341347532613918238901292864731694990452633572403789478845928606483665227082170095393484035899069812659835226872805617813599015920072245446895289297969389715849971294826268839631847473997229097461586246004224200552541264315915152580696700348628155764728792921925080093066606391705284152180535612795000125477892471041145964628630602312626467341159178719456475832040536559895929011734063991149294882804412034834272035927802991679486559846003896574510300532318877720992852906794897935134412960163893047092310073170700659683371039997227094847666102715568205414972650836508050422834920965017090296849147652364641079366328563928937744709271079200498711540699021659018064964586136008666864843933824719192709680111629288332391680419598181168004727787637149824422091044212310211131181745509151843262555155085697333205548527793846760024702429267922203630753398341991446917051245779054789777314946117631300034662888098115215465910583113061068619780226221907771155694355393957052111163761898197515222878206204451938455351464990116440635584285757449210449787455017564841890951351723830562172215012822660946523569949441065774781365145928572832058737901630917669105888561759763637398534900660372513596134877444215961401377778152704524895575920770709204337057856575927545196248102742029203547425266313174076676577234761811096787820351718789661924128087216025472462403495493900603729310303845592607238877829152441842931625755773031965216647664995704013984242820143108318193822668811514895512536871449387895222876250822155401026902136848361916951180411208025579908462533580253642044337764946948065786286380316519101043745711386948173793431261106325926153296465515004860428801223886872226577416198267704095531096574479428491212293346140862738045827885648153457402034226172543819227910387970363504580242068164002218854749944616612380262343181503847885807423888927299465410871925697820900407575974948074891025439616565100192847565130685188120759223601106380445240648542286115876192865794079128488591402210807705385365508220496298893736014067554594118606226376963660984672294114471102387092770657943710126694225169716270399509870892671768572403413976650465480197330329048156681315061131457513548816056519228125217404641201038498764321389731657423476688248496161725735022835582463418450421958023403676813509649348162266731663988251566119852407863571553726752497222994180695800067495536654208157034296660436034475171435269670987366746265544512994988337344768342337916040811987235898189253695104080814157371227318865636217230668233217320720631748005966497494323863124666080066704319022067749907301340072388791985436385841527958060169360482116333580840155250141889612512346289024344482208204864540677177416541894868673206528398059627571302421655058800132277555358487698387455066169813391213270445538186730693289249309125369466069849588567913252877026612779573939091550482464104556686191090007697393893768102984995089695215391396238972818043283577129776813036502323781643447457950400948105214263652072022425732709443748225436143182736916309097394889259610879946989031903357866104639907120176142033402133139738958861057839455063389070496899669371305255522117931616897106799102836565604612097932696922308499847189190818300046421635549781108519782934241215655929830800953958886761822904094761775261007354436816373909704160054263754279330192587103436105563616936804975547039252637263021680997813523050469936697840511355425297106195076570499813570586666705585503427202990673565331448611423558519854489310324999457001921100414369043058996367924842685361787764685487798791014273706347577117494061380963689297935473558365139686683794916366422033942480961988207496206961743226292698061078462376636147683427203679733232227284455995881901248022308759086188914594257555864969387405100710346942959885681781179811007919560843437154808784034865549911831096517427136230927481349716911971157019866418609973729615433452522560665475205899541653213828911008406282657047057705166021714632167148479024526129407521816911919233109992487609045483772860131563758663398701063420214592739311483423293646109421349374486122639606431387081477795337636150558007538814722733369972313291937467223333007123966292610573262750929931024563857632509665575533607293853853641213191400568398947370225750205887266508322441398434934246590895629972031340733731215001767116422307350545869629377733590222431727566826456127804430447995631290854352478771241087574058373954103545199946274469255503100888275142160417039848116963992496424814688402609340392689593026736658584940835056613570374350587867152913671657892293291456998760936305333851747862481082938156509049086745116103708886949750413415140595962343111374149352469520459534320133877710240180425404563414022733995718904839331133093794113336305747279527689615298280778454507450064220612767417031303133307425543466650672076974946120522191818473808648527998282254708769251546931743454665396677841614764202419555732959618617736884966304731716319310161911742754061885835478764743850529769274168539683973536658457075267708584755872888328907430861770047203049593172835076464220943884114010100800344825596237021344207463345237344985381943273655824096217086457325945581256501720000513303027510530236910488656817319141123141773633184714322905936413285370995693799073243881444439935711941994641005776216723340439534816594267753713648655282505503219836794908302606307755470271202925073575658344729909754685794602828272055103332327343381868374559169362959759015167837976094904006097375530557511983895679562750001440601752239839176183979974859932478714980998981656557338882126370913481247428015953496771896937212648489716363458902685178465746151982233372735471634160807611561140522880127552074181688868742752219009277357674466319822762846387417204560154876484350549480825299684131853103626036835503590640541786553743290735487405040930260464921434823232239140506157658484704538003137543377463604101227360799926141616859032384871901873468957780849994034775252401903103514463698277934422949734115929404176287133909496611614140672077217744663364149728149520522918251575840740517031733677863539692932150684072257100472369153820430757852127389802525461123833488465853996638477299106432993428370258632254784023624392612380489107260276801198335070425936624349756374877609877215347453227545568132568932490774778213317433932928361640187944973402929064748384024014623527206826469430466769122263837594601130717964503767246320129278750261649470173878684278804527388451542817960580773166482351702306459900989040456667604036173652757979988992988973807316311509852291018813046337868922562499545759852541988280257120881662816425466840773882876026552835585660497538455565897797492715157901365737476206935461577510137974396661727275741773450849675292189845532409586830935742992757421799009917674225279046686238009433549870744127575764034532736923317928783879347195251439542943355153475554361883090362883789231056657398819342971044232275035105453946816316618279999817826196243886514445510405010994434867580779724997597684830663780287917037966054281084404363263624228831583535863733370338695765178022332784207993108749502824752435632146055644722732587384584915856519334065832140834561711266943882926496235423292282867724593089742592902511708758717976077160174481926439340642667696957433464106302550446138324655284454804724996731854687784074556177697518232826266016040541886734172332094206163154163599626390894290090803713870552394894684974874616989264189044092388113645363308855766942501688907217435975262870199122072863243299388198409085709298955780793163645505660278614962710895286883610508710784575325270394960499602627450265829167053528895919783741564749651200965809975970397129041213040271777389646890217874184854181642334917508385985513345557249304806375768467254806255986894274285752950005743292062410626585580118949929614394538467504814682910561020860357650811153735208164576772901374214440903254200356943807797882846397045849620644322835100362988317355497319020571603738645426556511463235233736036809611524648306933233135693340941349726470334017530575374495480005487562380405868532514160319546834918268308331982727177489838120293353362530522774891925595582483747640008111828710470448163985838966353130811947633680781159381413959672969404781754830419856433674770571065408477375109476067109559073842453464866364854961331250914419306249507907920055382088487789090539887613691994923222295148332113596758169744313179920084709817244019692386812611997783666242852575308975938402658437473100013404026754576898520147780364820406947852916082025235760852001841642152719040332750707978344899402481371811022828408476761460502663777713469379664100695457326415054817310240861936813068461747122242084093760096621815732534323888544231893664156986454319983423314282659743855714620587199420240715160687687895488879086463202215153576179655045075805535973605890012293972940676034316140916051734222072570489269466604007756125977402697109732891696920492051008286522971210304648631394510934338820988244641932996954111523773949664869342672027011507557144195170763173536825543247773061184559604935036278475295405039990185747125984666032681815981111637950707954210199811780464426446472213661767532746390726557968141378256267780684694061284584825655671429759955593909568661257726226953179840667344212006564771514433447131040327076431751722286412988311638165334936153027637380675192201529880677045287072061086565884809431997848654598963243575566857592195163737272749498747857316646940989150203112826507738313499641333381526422311422924399006584027827554224631493808482732657453823854447681014919213046241010495931755969929039845389123213614922694278690010095224633459565614218551630833766083802861254948667054236292822604423099933254364228859664070383637847601257598707638362279446346214356800721731761470946585664638670696248561820428466105956194767947504364438297508529305442706301774987785535301124538685993435378839786995236380148043477741051383450531582373985633131194596587011187057131351558174835597242005697574960734132323293263357664330532706291732042783639367835806459499296580844219411065561488051476382503743977386043284217405233423168542171937923352680349989080395697838884415608160990614522648688831640801139476491907884905337084182133325522894429411222805732482052717465887435576629149225306324455291860531110906623382478507908329422738002789834379331932072055929306425932875732054006763505647026006936799375226151285705296005369622887354269646029645881910868353437273444577223671735880423610113324451557830055904334139486775140955509402680691592385988212978814497260004055872891691625025344783618202553668167723041506392719318994054652310942343161068118531305438181454512453273073147727579775154758575931141021522812696105240727292645768708075960137018163079325578036806297890903005474752295563099444932975595933563691039920844047623172852859529020024958536307356940121775194572527272721124163277567166116267404167524002640939418736742938640587482716244654185802682244348154809948131482918709446063596405261635799892378743216254599289578110426399484694457900136932284066455878908655968447787166950509312436559483707445315784374404957194399393708170914284305265481807337480660711858773716255411323413752690090692676715447599517491621199466077242395265093783399351822943188045876818221761456119896687823397407629077193306587413809363902735816904905838183152377231555505837875925704990306337484317745903852489729860774862791141147797526784630868691082550013318648985284506613922514858957374469296576988202450545871002210109570516683347978229424752229090160764128381392813200314322849763755003874668024621818593150774126045389725552517988617601221640672462645220042734162946435620191215122282587109909247693380832406126170834279368189703173818002801651112974875112385631091596820783122679240223796779983384804034090438824959710562365061430560854190041166759698445796757865148381930238686330267691753472669709913848369276726948749760269140074592097379451713735869395620260241595985486547130595699113125055235386634698353739547292596470954358666489651151785812690741923468471667655374925819761007120641954604118122091828966212938829148455222123982646273035366352348417843324858522258569226636970929942117697710624605121997598532005547305475222287790708513213188718112204299847586861474323037883344099896626290451055221902843882888691432629371324772912889511042139770823775158971812231473613282668345962190468074386017648147069419485077107555439286141322388685750867281682388402760007425709427968232944966536873486598206220442251088888758702287431047978122101650319861202584507003502122153805008486147411713526520826935079378381251469059527578190164661376647259317025509500792566994125685901790730823700827242670681501842484440287404954447786123133625072874300995809366662347457710879196016386513641874525077243760425757825893702150992381397402988152432672323460021819793510405215456298869811347178122877858685460604123354457868621262768128429054217698614598840987383224375593548223358370577290691571036791536725581763864400400865646009885281810202785999766545608916203515780597909372634371993021210226918055227632237731663763205353273197197222198347426156285390606742036381781195537696636583551464384119985574429683926024919181214361893897599479633238310488433014665605189223285623908063515949597902321028344163497736750474694700839973397017502834356667248983916920579412840745539280222296845028689552388283283833038343860925637560654994221405033275957566126047809363948637501975391259379550855598875004530608062154515348672842430627309290322150173893141749000737487933235236644992599378085265472483318374515842090575737336709512156166968529807093445839281999706115892680938659082228942080315814870272444478724546074633922492942604655650291398500768436695093823930806534520307334032291383531119701314432624694373610893986698179607049922712194152484463371498693735150338087807029907713581032572787953688375072029528465354890465844901242877247796670234565623149595029692760961596430004553878241377786954135437810542610627515709100012222389181103228025291422553738157984295159185741294817989419670016102261863924404169339425274439644245394231305461195074116859190815594127684414516171191815957335399719743063909622978221262052568990535559978150273709814244670257145372440356167904356872915172997371421320039949179047183418970090526764602409190207509442075149247405537127833065109037504704336731016279754419935802526560642248458795435715901905266295116461859213033694094505965095295862197630709523653651243869331552386323629337588027708252435203783316054082971382316929959381631390767828174030292092470134478412597843422059533122038595143564176509527611714718625605485700876812529067951969026797556238837388449594500093135214531853087413464619042420798582776174788955087539171261030687072406097300493445015997584377536529839254562531554735892875796891700169076796803323449882901537498682391939399244012134991806396386970383077329440694915979140435520595748412059649032228497252855580588363283786128063281054163931818745098648918533577529225785541662111197367539496433402048905334455841345688738644169817410192659639186763641955414348805755052980367425537347118082335872965155700689500765924758837279843943726232297050192249745339834260944959644541475840929090860152744903987806538625949888600071614445518937313522984500656525325986995609646840648089273696101276609528780555661755265556886908097329710787518031845880220153178158637330463319524457030622621579319043324579160936899551575560987622643382714128075732801166987039906910859090191343091529611030945534282352414697375299730429776543070764777332093336632716858767253836868872088976032325449867631092721892178622286999437068888703126090234622747826468462987181934273573962111993762557390070764147500204544566923038343337132778371741452407809135914704237152071538235986596366531690972733248999413756596627512787364286521600120437300497301380173368565094173957544766467905155220625362855001679100650089083728861919355465545491901894871083539762694023018235541174371601597645408682375307574051191093440583474633870659441309851087091252789820254738852710603439864423111400924483709606497643442758005992981477577778417911412335260724268274922726256347510303747096723101432016895004715482301446288500822734064312341294507676696959991955937236178470965597035589919057208235113626550909163932114587170735782080476695910905832492329226430228596381126553026609078679977236934385855674313626156210082250701434687644587831873963259930157156566939593499205620017505500919086830911321651768113517930183334624723659134443461436855521084645186374617638036474423693139690275283657538249202206900602888712606501962042243635468159098652825420835394021790409580640070784480848693176349417052520776019411082543395544798861346030274598911858451842803881536744663141077668875759285844243621690902879461642597858392516248119067935579583443274149847028879469973637843778576508297893744657618692853628547748947294845443185179698807118327504781576362789041047861202945292400026339825664501701873628077126255358959440984392349850572287061184970735011228898107436938696154575017930967980249924020001274494778642494910239149763311370123508876567148485036853822048100046281257244628124517317666241577230998117596477381314392799635885324010183104860111335186922578893495319486706481438024865426458149748906489616194197650477863754500513619947814938549297538150857754219172237116422215171334656222163795841251486738290121926110009461505510960228686682613799409145154684861363969679516415441408804715094837454297889540719946977169023553120971874068150502550543898462398207542862182873647608290625276115222018230463210916946562856371689006485159352482107892071933543023622285970286088243878993816286356560373088717948599761719446314505045988530664705763404180005747637529053306857199094391438811329236043089099436686906299455138128078794466679785901598629890917785078474276249853080132865291876583564674020095895754503521393714288004770425712840284893973723782225281717539561530349741159169527498447310266967237952159099948314332247574569655112814854539179476939005426892165390933310179777212240332931696233753811923327009073417149550194921844058045870584984496067450196338099336846385026925548271661431928018669392958118219873550586013529788557902131156960208522297980025850091722866092438139941103348587488038424540523226289662247488202412608609840523807236866393717033091918258777177209908772354191221031680838084532134951589378681245803473461414282731691827356250259961281210310325538211055483824375769330884141571250983288020248354294011441371901485507014246961385838827575562502178987032630182308679638654533362906759826475998243450966888033154879668732291249118501894126688962409102106377859313173875413311153156968257781841790845495945157580021034991202993594206808189417235552965846855421306677875533182913253644000351236937403621476153704322948901142115696019772636243831524572757466725370239734787499123507732279705880438956164240900271542526680155180391220756581879397682182026126211214024266589423074171389448985398497635912823997452976158731145212347943337637763638329290809495085480822995019181070613170303602258820100589301672610937396155424297877214329071308172509645708038647717577428945820965046761726635113945344043501792196354663059143638072384219514938646034582030170887327612883579182447934488060364562861970596755595718873305024163521930105647882945221280974922604042671852799596333677662197506224168850764354037665710458863588567371013708813001750956345214438292312521220985947091691208813084825188766191792917538336141206625486130804971654734342848916298278276403694073985306438399164794028791984843755159223249098261136998794210608337901056370023762607146552101555455730692016952259391370044835359567750166259856414598203078713524465518032858167885448887486538569104484644393534366272042166008990138936701086713026841906587412898945331411068755250495274469879508008742180363229516596692402703167124087444505916628964068328394113480670927974944484550320216703848961260115906045278016937470163124164160960579337839122554843036417993367797571201826984064960322655272085860801627843281377475939660524002351128003817548893438550275467627182971290697244799724170435324130751698289887132029723030816667423867448757807074821125958075827185727967794737469193060974057564851738267505196888606725533584098849838896920904946540774912060793018458280277327935196977361438470162193839588781136369048449915911403845037277014866950934092510966607971202613424690650651510553903414791848731788799279462888195631052161262065091028070285949548755039262650813386013949369724777638715767244276686385247541923841864509220487802410284018816330523994441271635884883354140021482964295085353846318870589864267417927919907980433362747802320438613248758476916341763004039161661224150098534892209440440436219741602053151591946041524348093614365709463157850664194974646829018524762130135125696868878428296415925766158079742707198201393159181571482491878298104740590711785094286473461267391738946791953448495986571507011410600367402683864819594941889220638959736114845275072116025690014250133236657259991405803007336707052320894272237570313430733235238470623209285234493291748715902845234975461073304825063007930223591098833194462046142712851188371212182533413100370806935454557241902902982852031538768427583908069463645442269672257911757488250142250361635210325046195328589506412164704178864508108843328647051400394420614134546108277070391038195300499894237003922992507654152781874479751416490144201542319639367071265115654778189332958418446970141278511585147888294732601131192570547383135790264315600944563314034784419334829374843703191231438844056148996092962321481532577348260054519734134638523838986893181498315282273400623399843583269798402691038982317791319683599667145177378736380444744130174689044225174088984863202525679831856817205117218141212835808003148045192161336225125908421583483069367007449375151417902041068856315127044893749669945755684762501304455240766001803076983782037882407172224668553208178687697962465566662182592408037857039620805834201192022701227389585766660634863592497036127017593511724495435406333133774541420422960762742478163128255697023807767413648951776431604366365611534660966126586186990037610110679516566358534971351062055241446824114699315590431149177992869294108697301362286516307205604641552320315227145515120801571701395536434064818948371488107707769399061144098054699257450596613480893525716164029149524699116402734552646708778759488057253788253507217861312356645114622567774507207330369793795976695382213548278693781847139361080768696701130146403036552794025905871161857247690890764218728714416219338409232771665206246426130965229170702446769844981853464984550804463508280253990770862745234396267783054448193183494719082778046680140456285749154686242256689671697705459587619204572727236416473911887133435099739010803544220648972180211208202008273910689520205183307267891908275420485942014011222859024927695348958766680581891618087631270058634480888671357274641069400007052041344517802428705858364833734876639593721852582201891916270375082644073805486122164106232136553667883328832363009474731218041987312616134633314827989489514202241977135745768774539021342735000771655940239698421363007504516136889624344684400281629772482040790255115601786271872547094348883514228895238630735798142544983429170078199365749745689607614530444016664951588985363435606179658220285959167085839993269165274925442888982450942873199009430865729862083558917107001145596277324369132169052926908556931231180044943939071617309706061595102709908475737910227987938983551618792497458297572887462600531037245201489709500600417932534597678372809506567912358384557046274393290691607765246626554133030994052214137165349644144800441680205525319643315465927296700273022615398773853626206331025216961835466958603065232021872662051288206234217170642048186944697964033131332646757039587178985976595685770898374297149772510633074808682770016134389753867570459274620803097841769459942063851648017895991523012636938899734759725561241365937765280572247031527808709231075113276139481595236443324550231419743416838148546005877618107653325070681506290560411107949497888908242171592503255423914348998131947473988860917610378372740844045444249094455786975965985652209870957594965370468934532571948731741293884804227611795857829284228231854606403370260343127603461950387477491274256053876076440464773947819748430142977749290868416649298550916961025756954006079723956116170189010851149891010692141394026553471972433315808175065228078957981288374392167325123778151360069607753297932855440123716431983506609511792728505456243619130425799302293154588499252067810156039901904111113554874749387093770727496018818368456966353036180539192824549164941971138169915833581093833613784945614977251438087007134249542247196788874440280608369709998757466074780695267719410835578370769303977722896043396310179529841777746527961082550279207174523670570666082097788696126709829719485688767519368737860180082967847941630948029585290455916203081236891777824787747464461490113156504543889265956486640125647500667260002233089263349199180165389981191123634209818866110296489530906916926362231723972541231813105137497303538933698542270658018616960470517283792747817617725549867679584072814519372967577187132418609930714711447073807856724891579009733346322393005341280385968576242735944543562994572726878289967935111385682956703395896766943639579823365861952643928311809983859947280657246029845964158011338638446695506721683700633946317142740103628553410941231404825937017497654374624677698215898984307779752071567196679871596923174876026412193179969792887405994694622194187742450835965701461451559885744834323089659742072364806703306427439927403458509486863278330318777488748216977339434858206462019473090885533150208499249899109894369848524701210744365263457279709875113881590839284783152303970577470401833053040349415116009984082378316156543683762286115405331708126813353078323485031034650468119965301730596402226185358455873663060089104124398556897599212439966493362099222050294324314793036292792912728646489961822291205969322627439217466839867546277633964705435118883431245672025302581271398727637814793228660899756116266015892488367406731557942362920390740325723096610228297024315939598016301963064456599791996256315200593028319694210811042365592293837961946201975183329248408658975132883697394787047998116155371892152320226711122784778945254432852887379628832005222961411431361255492776335150633392013472024599934478540217208485553115706506600251786774414386143376345366490235147868757088345765988920027242802175481198924465806769958036457360098705019952532728306860784580398718736904093599278452065041927523875551134678566559459952247670542750619305247666217765325337226380839052301432561929335726247301703542354673476557362780969727730108737310264038808767598621359372604353029621529936803313701433828435609444038969261879535421202053227473089954965727903838723232361060400820623931462849414912748828496082506900664639086860059445580612812429582325006756545132521971110937014418402652239307047646833985429814192460173216053825696019901397489022659038508583767912207131272688057493190074198356722458552747702192190392065978009776015772384317345263206209021898153127179604875689803141161861771032383740775238251957173141835053059866346467602375122410277755477838048066387495859790441216418500042243209513109848242376451006501077768432760325000510112677437444149554530677055094955416597447894739657610022132085888553758746535230323225555199212088375983393666035185462782637626371688219767911162038123128245539406159298546719998660560886689704963090332901414232809778456317697796043777765377738318498208235644594211766881931921349758442882429399264814729048068457656551458107018726961522308552713637471881779833285929547920437493765289349773063851850262237271204853211608001292913103783465459515354698946389338851626601852698564000008552459844324941181063803883365253051648949145909568109723773443949365518256157282410661976092053567378445032167506385512005440156725308190028718129653174855965811526582836256607763658776352780453133885867091404714142709658768167471491422315328093108472912210324665354619240450773925502049942529514739327314131131128323499144667140594539814162087473610320588936883694062720293359617135678711424749947380558328937191352908272523262367822808925727411683509797895745482557289573736358303902064263143254998819506989365583660596214805244185502560276589532318820283831456357195577752867250417149131713700607536194409727179129620773066400789105210383613014976174259329318818299452426831748787766310092161889966298105704705674208552261340558245901452470946294549744265334950552280337375929473814590258030907782821569226269660262451202785852096474446934074968332515150572554291922263665007653260410949159014276596826408947409178334561776458778946250545998440308312785416058222317248142891394133443740887542159734826540835997337111162313952583009613791225179621854411154748658358034849169404110333255164564458560465712559759191599217034560839778237134386137187126527446131267879024341274936115861045561217823466843434172841996982224512820414111225534476132814348719191540874607685658218988676049652232600980881115627611753229469756514962598320213271728685513021475031068772477440101644091918276742644635749783372343514867985129546888172363049848703812830287967224820429976674740827950946665306402006981597446840805453899417842949477547192376056498198921513958567395270303949807335504969025869049469581449205856920056655195837888015903412556236525053067818553025253009032577017077995193110791479846008501141056039443534111546515147263189157012037104112730797377241887042048631582884393170256677463442769570532389340439455404905531754628893165580555459933508988336927071279354416202129932576789913721847341961989204109330405682518530067606893460216125923052434037655133580786252537698058293379700234894272722381231475195196672463749670865783543132509058976344796911475485869743825592720550638147285520011391545378369990626346528120346667939588214255730246939190490132686256854200661192364630215753893505579784209014218255949274600843061307450005281955607237287987600488315061105335547185423525569256008506100353377429051718458530570492144756137459652999922400772465839894145145027228046729533144610901895973038223678905365721165869533891324178702280585627349648912475513016054543036033706673489225196105176169966922854169163137656552200587321792120538774983747247766087535945684918842364231230934031841780850604456685262798431421630408830375525010712868917249117876964423108183680788765519564724794282195804361067281051014078112242522453755051067462242552563711544689785058207138219812864498337378608315645222594802175615564687792423512449123240473757091057708425948251234020445788812447943440885495469489873614065554860563152821528366304255388656854839334364533320769602107928277693413613635753784915943490340713495907977501217461393685897936754361871262432842911224467141496562163038948637309580641099433401315391909480130783733798255712642793502851255851857505543407804904249206106981592763911569135784485323399027492165102315556458005679385651930682002954219222381363428109258015108112916055093313791972310044807517724475275559698094066814684705858074550089943472324387680197140206649384478786375708368266564410284748041224593168021677676443075823245783545723888659028174500354501929177023469382099239170484536666986929176815591435170245508310034261098525337607196155047086837322278520747343132884060227180688568874524494683638538859059807048331565414388144700241829839981865096683820349967962489006485433009905694294992367065905824252068190117895787314366587440722919987404869126420548540292195376858122772181114215748508888241634068290729672850412908435998363137119886856685616385859170629509301257529993572658012443680032285323660457217727173351009490052110305969262717206304613504540503823744769297327688155202757881470273926932506801182942304096284901385601340657667348788588106031895672404713073439878628271414621643157389611700692289755438232087290476320471265001481373595062533942164323646033682291456076453109122856062621019711526712114045326826418885303208717332505643182692851246937983479572746709335129770707312159975550547462239324365898675611409510391063290868812932475947228147962346221350094769815103849612810218283470165604079972860253601077952700193435421852994771090997163451599074496155747941851519567202501768580563396716510227296736112418815117789012799570787412181837012078536482433024790686722500403868144384091063978455359839755573128258143388955853575647719909037230679453092809053089312664582447636841882866138784848439566385351433998291020585953667008334858415335132304368967392779768733484140745364158086037648497674882830976965020741139230797783068184197858045716405458257674975443289342358053181317493182922828106999678355960385694090512355156625519809272003374301572787411233821991159591821275290557029704769937908494200374211238936695798406495758210840521480944367739991209123540458705061208794634522807096198181588432672361848213524049379862982324493291502420047128242764037368863294701594682817464482614392133904223693341952375063188499968544953035027495878301207099691960664419572826859188066186213205397167594346236837493528424149925930816872690443906714607757001080171021605494226849310328714161913867663547297794815726274464031013034316892219959423347465246870604476163626485504562037130460561310037295663227078611481295451876198132366331953144009450893801637298534839309773540563453130578192528355260154045799021641063910043033298924490554858410923811547205696118358459890188277481099581000235443203481316853942222293053404778476120515880414699960071936939857186952392227873869359363901397810788394880041416363274593369857963110821176824628626273743268345790373099461637222397272005568286672258841756573884739592287041218013758509508023416240997301119331714912937762885150710678385099075089605388858371437482341927795873833974192858598403317226732786629407878729751953769249286014858734443524213225234649272805845028282329052018255602111539370853040803529072133644457798116439858091212673730352159618876217272731932459900034284897823652510923838096234894790388165911124002978077532266089815607987738872823029181510238839938784954451363319458136327268067761105171790734496081761219044676088754320658736844945596331721507784886757261471152477373791142575158864746004196126607091164894896492910531950703860280171034374333505616916193376589947039120067892638347690581476922342112830157549046050370566905644547962352928858574140150962323310245132719589588269718618262207852257537911446007002017481888233347805090404705266893167865372497669609983715268086467697197106881479530394880021216311469224160559066071061341485149554499507733449609921072991836572470038413028207027008785071783080130240388717267059114007998978575796834368843310943340874734694677614058073247940885151687343530807958771666787094318879335824800278454966787211130115201394774300803871798597496878299738802512751456866844334759007877144148017981523987637491405688977133867961159987906901980626769157494236162833132995491018112946813225848362570009970834466443678618354872027455825924031056120667486945430655603787784268888376357181703787320082821499398172179228078676866159829573419802098501551335534384342237142075707305006375315538494409461638192520624031293845811936199080543315542113524484870613622083815867810270265163779417743429701881597068301293976568652592941716889641107803110720282064468997298981569437910824147404937802945115075399713600324767963238208438488950299686325583787141245667987976867584722625278020766393550720153422656419518379515976518494777219295898500500489537930166617510794083727924140363401946265238062334506348832205209566906810578149837948188477701609194138582166690362829914082693599874389453587695349377258671514377397175646961061807703747018979122954771922841188129991847700053975787746824830515848417917154915139308808203430187655392719002263644877336186985662223657123726218287423153694521019519514471647126666825420962566998408291499738123566827521873578124589317752115746327259855580141873057567843446871968430741357547361123398030090153226929974933711288989982727147401222397496997793064975042105621473692116850654310779407988977900809891143198572386292494588280492881157981214349564355224698878615197157597272255352997813167438017250652190162581226621765583519493062053930716544693503293002744620591442497840290678865671825046796092486768999068565806917062163890503016376958362090314316890020855889657586745430881104091982807566288108900122269862076742832317649391459920717778037052026041714644582938849980529706244740952256789575923513435237762264354189014226144088451636584863798462679388574229569583851325830749844492570367737565722232096124751684905818459137227117683468113468398042544619131861096779049915042855860792362620722135653776164105082422531323483632676459698453577277802209598986104258706229513363647661382933904809075811484974099695962312949636774786605566247282364456964374412057216100176046558287591639812520188071635594872370835649951368537317568910523891692357716031399226890945950663132659261827967417944004879934325939305877786981740274781705832414990251186036765128044482588637168837888414502597130672487039806192815499029855465616099868409014048962596339991633118773675652616258462418387896206629644636561552726806085815565677487386438608746556444749655134784028039054245137727616221706467766586754112974430619258444805113918739103714929009023022785053917293684417600225658808705574223671205315286381333711454536847409489601093267817497949698564278936541203903296811048609876032914378797863225485520823188883020363923933078650502731625774650684212128069776444015740266881148415671294724566253527940514802187185237854920792336521588942901172958071438445325031874807058913590060241373321916939201452234637674885161388364268438987313818567568647551926593099794657195587923731241608702785693490853086606370299095109137843740440244198516551234262505313615835933987256804160736169530038673951373392663871924538617667719321287624845030694973193534490222620803338368777771864773594331593125611267959253822771246413099863789248669680546066638400698561267126732182763972147039518235158697429484624807142244523958634838163664893975678059623624914609871285870183858655611668122661587152109960469416242437052039521825325229781731463761003490801456891489145979844123859007846036646009848798120732808216324640022303579880430200881503073066003431567461464651031961110730298470516841522085544708441821688799997330318985605310542447162685610018386019781115923273442241610810932572835439184264303663785692249950514782257176505120028282800722087116067988766381329740409262809902233936965908699023468553351506592907646208974263119018587650737450455546418437596874512055244645624373351050715778456616308771448380312949104275377062310962904672732350605653068614672428331278439935759298507577160048111381487796684507997028325051869697375529069531887817586219316910234816278807533748802334855445348956718096548934354722682253592159901451323431534726824426553893892875265782649139661696706120151980157658838433286693989204120863579257241561700036224731396834513087275472119508584134016363509277682217693566768276048662233442335936543248346734482566027157762876888478722124711547355298641778523543634381711349398389909876094263394295440938668445593537946273348787336351498451082489716747007883815770328812084254133027676240619693382563822739370257874963799559064168441194063499964966916863848117189260950719841481140235680896965250901794706586150739579624509885155867082450967040694377002289749618660803545581696404333459378504328652248383898625420396426464150928437128150973879035234738538964724052150413003462589304023297690678442528214710932932681599296325890358114997009358418787156329077773917643705849410951334895566566007708958573127900892310210457917952123361482728964856519390316292836101393840777829851927483037890324864934915669433360248495994447303645214625325921519651227112655323611958573630373146595609267202179352339491225510575239873967871649463487305270144815121787815234162699870916814199695161535043194571353150963609495316998897344450614915973714486695980964390295201120829371508995465074120068427170919435169813602771606726362244948758878264428818139481350382844179276493244938713969153965931546146375822825361838563219045177349719255482787747844135238112829871248896050257050222591418098972445856245417227920573600880523016698422402402909533384657233239823795122117044978471278979930010251814350815578526971813173415218087177499647729694894500740416505481489596742976422130869324140015879259330365236317859797508453489351300719905195988977745624164022769358079131073445883529965141075893289713495970258088095592926816988585334122869101608964951874074840190456048856508931163153285919522668956207219831612224450371964980837832870969239095027385355696489513446244693364961677893419034205565474809254440604688570312832493035021131044172359874393334450037141362802156169665192272628395328752254791905058086224712856920507964929819852450770383051446747627754516120647622626304953134418613825416846635567180699412706191397030765856975923201562709220260884542289499079075442242454346052646495399606458540043880477212425037910219259585215637161932611422252868063269500311912753729263116160181470762955411821766766753195346641225023081035256084474336906064620689608204623155503057319724307319462436418890339241293566491787556935999901579528961496919265588872742290550634767357561201780522168282339229211003005285336165846155443087097170653370534978955257870860886343826656402277617486690309850194094951184498587930221170212411594851876214453127000878076720509866687488277051296696880553326386458580980010251337330669715607182057503087220301121877124037582123131919886146000125195382246358314778443441335977477182842144741523065887009920482952868336292779820936767418441110930186664319514575291041421872976583929667823928825805743876030963016651797232889463959695113972813159066808975445306603922470455814850220155801822767180001382138544428040014394355524116949572800642414844501340110858353489355637041093836805171359296922311966092889637444941042485994262513304413948910324012558165028652297613063092603072467279329829816013943036011271128119664062157692787215477629217831910980431679618755617326336616586782748040429695914904272523564996347684969596505285572541564603866838662559675612114001085035024981582489405933767836324479350552000837534277511046743287733091687260506402458205318826626780221370555739570026918769871672721839410122430334985299382151361672871453460160713654553668775189257236597303856662651351989325848698543476292594777066186301762566103540101629849682043900959872447934970473359855685448219388719796556888599950484293876112961235586286125429112305746756198498928058255886681142045274517915972560326150181598982868152508630166275189992334355310267580014212848233004234548205089093013457835204134599570323189946467737414692114804819300033486674099005082144016768475423599291431160499883744391868645645108452592272071679150946726486125334991989415120660275257311145094104074290527656234881110402528105518294363884237534437645701016413107236799444724229806750693909514986792760472343207648774352384225098300405113678430288635596521414877290065095288966861128264406410124671633680945811996482145832850193339771051032168155166050184084780982709762868464253561709407921926485288371428434996540191333945409788549718415252681297228878565720912861966747447368349742268392088834047871303749643231212626087856929889587443207481960598646759051797647080227315108017352409445289179658472526661979021742871881221939572988829536616810338616688636679289770064891725311145593670638565852689374009473215076233705374123390725660699415090821567257395363754494081226290488040797795927114912404380809838895852684820277422596743408130619438349463233140292114204740283539921566238112094077679457630418712508992937062842592832837965837118524681385653557162903827501049671879103671655846365197549012076081454744200246922708687827709770190924585342523747602465271086176578185673436702266124166200787336772533867020340291041074916292073678933483808990823797388277279144201923752499680292002343218408229217059146107188652899929135776504235083947773641393228818847259106544260464939413099969304748883793174936757449308309069613811917916970511537600981532683777756133558964896446203101667909787089827263757341981800655704306535851854223026753627563117659744973677629500111402241861010819738096206146011289692782753911192721184509737870810872929263582310395637437001755912327241297754100566124230554547130729682875573322477128426228266510642490211128654149602589828796684140534339667233556094026440450668660723068823925943801358758463097748456888910007202126104621612607668995907813579625353661569886089113136453227167393159940977274954320843899934358687283297285697178470753733902636456083631471775911223457057279051248732540633296594716758661791388317645190128922303344703608791136162378827898116297218823094314592761303988270238762472065793868292088286740413734263630752604454001287550576309382851595603273084562398417906480860664116440668676381978038089457782066051952682158166340969936479305330704333428562688134076517724784418247149612222923363154191055956444695346079579620923607993799740263296920451088864892991408645375804689126548153358987254514990200521592821354240101791842973909846222948127668956326870460822010267645412177067433658468134697160641720218419177597627361891570482714536717424076329654497568805937077438103178093480056591606427832868063722402601244374188214820938619796110339730059441704211119751257778137207883958971563434205071404571819183735157898480614497307891351100409600502833821451762800100731776498830626915628060223925921143746665476090455919245649550637913309129399765236355445550940904758303885230067006556666816734087831576892178508979454947135819006297689411554397493303798221159201983843156060077889841093989589869882342155153816892060187501479179285374295953578031588047082268121042788565891046915199204031181582043907396335722550684852757809166678943684659142644922125669061380503587921681198843576174788189813305591924775502962229532030366357484982645214049514510666333311633535618496580745050205905678987531243432082105957202970934645293821498689260165666692653988291287793786812555924792199031707299326816417913778158266495761467014416633887009991779588591910471798426642686517234683929029654261776716249013362086584021905821489652024314690467194162762425884397172391515061691066006735850272135851638298828328260458859141451919221354149411038051648542373460645574438971714594883744420743330064782766192689132242880920790495026290725166566010283237091148167373789969125192608454365404577634148012655548728858913958640912293927875626465813618137559163922454345406413869284809336990788827522009215965032098125882541353136873241451520756472222345973260573542463546208769383443614899861604435878407171531239713112768371364945612301903557980258006980814949319387673240516628056666463629157114525059712373773495637567146142471352229336800909163995721710898311302508002364996667889837846270239617367300128086961101660507396156463344354172703412177789307764920749852316382953299384656904431488949962773039642195759464048654951769879254387384116106746317643999891883778564421585894184607694558092605489387021501049089947557621781564049480134388498868443884374154192353054176535859344720120522191714961592440424748989954995110592592069723980395491040869926300454512245386568997627843307497820120986402361711227341758786099739226962870853440075929955368129891931825462693311112527040314037035628317944666769174974423651650419579917194967075967924317419994445175875811601341591125318311600465860577531450555934239485343075489922418480123518087321464034920094158267187285057698355254393972962931459825933640258465349542373084211892616921735046275874556024533466323471230889897091937041785355427724850397164174661395026561129349235319092934894140730612211096474573285341444868734697643186384863948850255038747715949821563206090844945198697938459869044705898738449106353409481517549745411653251516036167293424617148672420041829180979726876125833136209694754117126134199376556575820135824338202864980137919411697756540334779883562369027356355158360232163886670096402271465541785073670842662128501329470356923025089695198233524831815404336182017221925755933149394727075131481034868639967610780971602591044163822805200288841113630620783268383220776882836315896528870672743209677880188263055485368761784082287576306908238204437080823883433162180853990327063381738984676947385566696818242548132207121205384160208971972939077571757234093432752438425764322383149224599513337180275834211205442641495108050692988070840913077394827442103055341609019440158006599356610062824169559113154617433707146524089053486909761321620566972657999785569186314349691307492619765435739564916154313384164855054852343255792451513686677641584109759874634571111788619302408019774599227561867704794570627813764569932599771906642283796700110829259851419280343400430990565365095663933588669148518067997006845737131898656648414358714000361837691261350739330994897653346375460548493541016434631114107490760897258607766974699810349952055841174483718287904122261885638513610303402975097044643870359609206394615416467204116076939927401997127212822645091926730071096815567314017857584965382672560448725614954819490885043356178835531547229665303964456266637573807646787454988387374882207996185417851223710739077771498459045312319775357839817567968145088764138581526591743809812165953238409286132092320128811485343359850479890462981963531459370438737027710156815809938062873005306306112655887713231659716450714755122605030326582245347043438943668247361904986814506943558076394370685368340479340491673947527921700275784784389936078452918369027785467449951112773187972757256396578328590354776292957933980644465867462802300820182981435124361413734049131969001748660122343881999407031446491706836059140283197205212943586887098813675723003168386920054625034098842829863442627368381750209924902034138104117071258849744240895795037202052106775435123448744978861037261533929035439283206617680198906760502748462394242128836253097745242134919758618858253316416360387925105313007271532843667371540722429593351930300152939504631960920127618554510256890744882785896830706189054069355273836852429019373019193211222732440428634263062593727412641447882310973690671747198253728805451250328886810500125879236644826966331750455182595460989472498076719909619098647864224315028978906000290985377697929437118254330510586494981131263864877212602184672889612870685541045556319576751717108830486502404883969363470258377957703729686813636614832901463079066386067755076181599763402124606534227664894112405918954635511783249333509542855424559043276566666590479986508983546086016180117757644196420997912889926344930577752481980892171494898089206070594115873484160999472087250658397806405243256813624079182936141235608157545244527063339810005756396851545122624914210558866100295479832684620465371099660836855890311419256102218766903689781711493956216007312770279076240745459725265881347474101429682598667733143001723263179201299165265843372582414332182721056924916138391606555261276584427349429598811848920293973014302420715323033612690502087318556997647627490317451153554078197789197256648900212512043255771139606751210620095273553418983662008616119459792829519424895271630462724347803792109652440765201709810572378450741370882336652962931338001883264198318697602461806646672158755244711181624568637340000789733726126779391871679563423623230904790072238164187771167165292489256417391105048418385091958339841472486778453886687093173355185597803903350182829278561089869227415889340538416809467067339208822811394181996288295539946436996017680249825161177167906172259045841259156934239922934276828369225680916971922466640942949342823679068455444501644502144588203767924382637176355892963455625764970638789238243088336327125225957280422598973736328169928616280382385927609022154954231109731804442014391117583924557265701517016199621753868282406096120443453439912585390964474160449663457436048231141768662746494197792201391442477787314115837574648990014406678231735950101198912475135599543983733600232510702708183352725992559075471240434058566867797437392669249268520927087431199264042600982199489323484699589398315162142283807301864113091185099448769896492847296098627976693969572952104980200129446658778830040393310375262571405215810024238909115888188369881631141530177123099089175790379333519970309342374581232484504854094089614400328288425277237350853832891270985068118784073774728174150018515976016170099666692509684037143021814425625991442614266553258184950774663144692946488096318727647001120710864734306085246020377195898951592270404341002708142102345724582548647681897695387723703151652828388846067642648974277814456688205330357853560400790136644948717767803607245361137295431146313627333984325802955147309139557476654252889362117783844363552918049884980012036962818294463708892548619512812039029945253349205338701970101001791641522470208481943418073771631030787009667951116747003321611422948987575874716591682221740915069558139037093803026245699156251030037479176552062648167978679551676456097971517729561045206034500896891652145428284149587631766988186676417246412338250382104439653588559718397554675862493287745687974642603546306976227996924051695582070974195894410988288899038018034581495943691865038957595358716100440638888528028094966699755809021717020303050803850303855278605590713703754323141805773464321497568148023803676761323932030664309804424967200375516589831680738611485022851945264284088924390291054658573799462317578087397458372469737779336214156002417408463680689147245171740021757878521297065044500148560130178776421223836077227427867589651171310223691517419032559693179779620223488889862476225461053492974491653129280454970345432437011521310630842570430909065946692734264801241640715710679925150978795606649946002949883647487669819961607480927836771300199574582495650997422693046162244300723281193357389412992936477866175616916540197590844545462504848434939220943455171158319434777350266150951423130098655134803511636175250078872786508209911735449625905910351042777796885915964800587095883016831643110259403683117484859215255870395963604320483714955216060740316349800911694883301533636159661277498162270715957804272101347954607634312312490875303342559269599321164556882217670842014628387965798670169850535189152451652164010507606486906911221159624053952090408936659588822034939134711627162001036515670021898233282861605709336618437117526231886109729641592592505559361287130586988259392745602145365526646196106410328127297945208649729825635000605190838633931312382305627567230937031099293248142840260184050201677035211491576802596096720701660845818056489310937133177062834729865154568087354351867923070541581085456426286981673200133069656873139424435366708965879368033834208993973762826513314557962219461262566930901779912529224287107262944802513020103750695617528175746201030132074539645247785802359861915034830640052688499454055669764592369162819996084868241799524692208472017161801869320256440927173206620005780642611817224503853027120677204816034350051424030422937825202150104650978875477921882242868380570293315351584182909943398285974615535481317515640525701627343161833957983663221381772629396253563095007001638373797378529517460840246548854049690228218955448137888025277871061080327997020737543778087015223927530656211900998231965819045829335357678589656902842091485489072674173156473152511948481556891458683252166098812325388044249421383475054123216584770737990468833664904330571596793305061271201272071118092444042926122682051783147700987540693084122225428544400393169923476501224178998211330394840740857827281657952472998332119100893340629416513498813331494459642889084751458217537317473133052043023079152867474593395880939722640755543443091762404630584045358265758553713764157314968007118878961487921825115892601362111926795551616294792278021481693371032731047211421922567606657286803939498840550280054459816861788889046930036456101078814233789641443607514849921709858966042072642911051869757691909790979766824543263422940321587067485389999080107484986554733751087556136773153502078427532314688813857826719702116003632655090455973559057013220176781129394194910613981579985904474632576270197002850034563444812949913774794079318563240947947692338438161677008902053610230392930429844307753885190700867064639241708961129149787968711459454115573394025418700958437615997195998844350025330751962663924758571363975729383086145925765074674406880506093150233547922372876625539946752911804811319263551243767069270010349286515477452631730323069149467003555837988160041610670638918290333814717946708109417558370322665759977707246589063316089445482517220819806685242191029093100476427712037003628303162217286997534964965139236132277131459364011300363808432977281860382390441400671472077279015983876618706538983118853547964334932752308075229841879047480370162686176120855541598586698247222763566512869053860090799666337227480124228023912394627548884086984941537350938639346294706529074292122359584358859778523700875550240646433828806672368819163525526334151217113424750754108484740508745702809706413002493039737916881135601306051416804862080745645283501606545123103522547900541056681647863423760397422272031247768946271451342104034695915086696304511786858972865869462181283364511510069379332233795079314765267017181635695160030457732101310484446057435520551794930135964836180321242923728197177490236231510144716659463548021443180132460281688668207764031512025006219449811828853107347306724949205137912798971651543905043909839804740615302178529988644479052085439674628794813915109299838591604728213112755338289416321136104240292963907026404371739220531212697010361335966933020811159533514358691886360273069747644395572606058113240764836442511549798406903962597489545401248691613488923612229432674830139956560593270654092486072208263149063854133195372135668337399266427902018512887544588795258575574596964929416499687658207568848381244126593347458468922726485290339146262925755218205561183948569152740806698429910718896595132501361264648991441789812476784422038708748456360381247049735323602481710463929629733509989467275095265964229596377749803820067368322377166741358295151101037361044083549334826526272497652444445328239689963103985177849583620229347544651425922283179351993043464277860705829677945467006233027258212378606043107372850081236470468538570263010614472325631141710504939732729634740389143127369068330083707295479760883338182590899232802898377083126174973966152113320046083104546153131539411260681153473809320900421628637266781142104761223418606181393994119854782888395674844017438453901926507997666217030846697853613045148077687894709401227740632759444583466352575704688187386881027422419035592272970828630618369326757796483938597120900221614770897367848326585455944765630779076596132699596790699884173431378798472616598779561688742568819673464311074751524422440771969689515551923397860423473812989201354472280424935722690281493926526362858959810345599304379489469917402427347522920918457411973185552956814156006353623901182040448695418335505201409267840993819950459024752938424716473429544769766024514360117808479434263709926423163521823483787665635616629754335579084065030728169386963774784571528233824444057006499589812705341118142893615306739869265885827868874777674615904203846951533485570813274671520585942015279479578812484515130758391273831686684512944161014191532725137050432892457194551632497436614957521570738657322373446972154489699114259012767310872956587810394044971766030403024169064802413493342307811263864848427322203390645625614769786792656512441892196200346328536197989435252464947134937027266233036218695966850435380765958251604772294068928698932505087758679574196940772522091337850144205924723605009939145732108665523406590195277824796546453383737687618521640227032086217618602368556036533587853054851279272980968459919542528634262276120100835872734317718478944963874190434218988292991918687350364550405430527037804128011838940775061023926917094595127095118223013296774441754317120460588279910376708870014814861696127869958114663313570613011841777547598000888675200389098111623381796390968157717955168852501887060990831563757746070031837022268034794660067380449575015823305932100990171414556260502522300115342950429961352646700039987798578420242435878730132889100857749471270524221758777282280916933298284794623636444134736087024522635785135577613655125079303689559880413866866587517847997412947287160150412195348152435861526636205931742561421449392981317610893880930090297939074710521952862118768248943585869101369130429831625286275531525297053376042899880231890989920293764230864232739692754335449515206837528360725999777433449631226328416289437821185016355018935063089193664027804927292219518819512488662882813870660096644777499063374360563222386675191348351569608229871930226144087224926737261929900997931787701488138158816924740648286632164993797366451555633350470966842126157841188423506357601879300647671551641959123645384174604325344648426051559373900755960834689058123085636330731913983881236394569664381192050541993415501336022263855271952263013299578396069407475341743527096542089799075464507519051857838427951059194624288374625722380116732717566682559281599339486419263818936036698641900106680394468491777900706104561358011093982548035801387296129370553726808738080952210487469074012968804858451095597141411906818052573629518728862085212199480099380023210641642839883507148004569972772443140865877836106803376209208271120614060357769987732121206944533705403006109906241811888931652586664549450713775206482171506045812563126650935757852189919641056461734596166213516066167983667718576804091321902518590272194426551435657846420322427707983566906327005866555205815186962823847826503221508338191548035332620501477737934340776056359986705011904199659141814876812410866273864212880753371264975675613759937615504378156054007439945463513405788994412870748944135327543817454329432247844854146519948123164517672873909996057747670579598639932178932544448848942329814558907369793938135297494475676950185863842513576170251596466761129011800723886017522198396696088579891274267977287528245732141723644363070468465741483461004372499898950382945896078435942796127439716540188109135174186540959405001161140747924648941238086725393530121337948448715587304322644469444537685701606764130749521627226165717915047897775266364923819622404568163057139302777786319985076412270761844967072355321602323175263957570223134084804735288896456435805397879615557496464755272112497333905774811909573424043186034844981896133710956366076025737908503387711061314414822559350428206310436769382391069333457692194383192312010807418080279899190291480385823876097946564014308627482252211238713146957708335915931395476975344843386681747290119713025995917430480271007083573496570233569880399186581067071872789298286116771627853393528125973554746953712870422072348597567378298158611385100996501860439963052777801427084464627801508732749320788552366957444388956941591455177832553228850106496943170297377201025011846165521765336949650345218644860578473745223005448802213376372340295155373068626118043734978501902395210567455052062674896678331596643015508384443722818022232485732580927295793130604882450028483078568109445503942064005094373532512796874889108090231768301895319169144954111451818739928252112722708494161735592540130239249547954530494723261395934619176656569133830100275221213801882103372518379747793126988872967572769030306241133790903925581810684203921939920823531720229436470830719792012150545908003085318511948697982460656278614683122438353211406450287621703503759666648991118806692694387536484086837817357186933056240296878128519425060757197448944413218525853840858579942181249203801622978322722250022357855472776159842875122391746755245407131645140660457024926727495210743079713192832380822371112079161349778668154388931533757804648115980398545082091783751646948493025825174018824066526912754610520049295593940575456370642738291868449285428671423511421187586655478516095446350978265894809603528592146833836804516610732152151520937122674942888804551325544604055562611714773024748029185362413088270804338248311092171463887549956255660890576252048147978238635193743248142540111497363334175604397166360309741009442330603908398370553671644248722532047209315181211722862310597042888564005853505152083861236664849221227405085682485076932104818507333428944611721665375127167622225158111568732286780695442637931366923864144818228497399601539868319696697411937370005672472789188824547208982468898205257998409789946666947819917401994138247596071277570262915161606137674692985289004526223988203738754747683172366322864351658147645784404195438713266521055121392501403167173184711656466813201798335914175411530378554140442660031639614541982345315311541706742761973081977072009975136773796712958729815614670036213603090158232698321972033445486033168892645311308548821183843235781959171075539444108982841408249386530114105517639390825409177980632458647342732887443535727855361653991859500366362037817454819434310982192856428322863142129561109992010972676085982867187680575941540426340364328074700383034547808512034524704258546302278546419867643828725382424752597169203068806367548091874029159492164204519043939445547133351651953064349488947901038460707958617355511483499961244093457782376589723415713110323608756477572678270955209514203884131208937245141209759746685353724413429553859229139621366008301932858122836085998661886310998161994003872952808878908043722920715826614433915904900999700582505160665710535216514687188483955379611059763991777190281591663195791704966896324736295680496665805364968832826145496930316297130847600541469851177161939178782099285443413639532976951255899161909444045117082478957251871154601864243587786439184406111203330708206248293862933126247666406907885965374037198637956942308117690439781593571600076720081642413799237153209562283934695421356256660330619538646152100271926758237427380631917989772700690465199853393582855199328941867296667452195098775254415754480953395464622924112904475185331941261024126126065006824972085307335753532063151351739833233821951317398061377168052021230396784407748017981412921801488353093959958454006633183516787913146918630754769688516029836361559533191056527845387676136243513352738753964039279184639934208490193118919964839915165682480482009586827470126998290927715197880027919060210940202067721950393653207372017328304052099701292500805369040368592897801958874515808293562288609204558311116569667415583379906041230304359231051652563363319839520121088063686238392082804718692196757760565909997488022722247298468109576985824298406051194076988095295209400500555350585698116187760175589463631028716879223575098981747814109885646011302631710671490783899286942917977189097623250677952903448451259901989094190915843660193663228127078119721060172377130101283355789881810674036596184853684265505409922409864635345601234099900751282301901670392771464720183123963411108612334984377455527764404605070931363833701039987976310466636032324577287736387619738899379203248610915350539039888994754241585545329276350575218854434669973588708674036987969387970280489351640248286995220386813755508599063694732246184771137917924534686512879358328057513835444776282841976653739808956182348111383844074574316417561995382103813456269962485704597885913876880557915370590957321653786569493675107712991809709897328237731455270910382408468260725880878465903066486353713356516123681796427807426512925757654233116578871661597375682026709750515769529701007136474037299834889622534017225399538757280182581417190097003375212898753778281567156881347981904414196233594310091014870646348027583207690253340250892063395439690574617582894314649950907036306447144216492297991075623106996995955087896752168044794828043812353268675478055047014151544478347839340976036476521384694905255059263407189196643943206342989589159691117211607792346135821554506072736573947730850244055656709813136229270151468920462065027411982930054495958333519272916496809048133582040550178789474304383590654586712504283230827285643034411960347479434578815362401744739229482824712490216684098521040210637969753538838837026332501785279599781793205854758843710847596954920187318180776734787696795691862435177522175380171989246936146946315018104285448653752890572471502375949172319040103795481409321194658016919846690861062752453820992470660983004995717048689815856883051374834867054481984058824291365262342051665409086814631954223081120136171169796673718280627266442494117834225726024569778459725423140392545213749359158669813309567157983604019519766574388446489930061184107383332287802185655150906524148862683836490702708268137063510093535493135166425828922414257597972414778287641383761237003689196039424462265899993875047222271589975430729468729462522200843952973551350205604789500958577651889099150447356347237401864222223634013473298948081075331811369097726066682044300913326630288232063855151239979124330363257237030039478052185753559059884130961589960701457011292200437578272551485852973158325201557735624978445322584896925411389733506437656190130708687706595377388721050906572335819360379295204588622252903342895185443378363474251422963908927769818883501775551582822954488063028850828796649304552538217773743771552446012775604223567776300332325503454502126162019566026704265655668804133117879409460722675374448696896055983555254692596091659288466473589288926672245500220408429560451453401265001368874994977733429315781083269922389570510633064868839823716114646577636551560876790612730581365653358131127871694360198203480435870573876422965851968116796680854836732000523681133661884170747148503097027330561166594468304328897557236759117432905000295963160850609333684198995362409154803797715117287475213557176405049581474152735217227486959961710503327382120357695876599476790931253517579512224144812014962480425873140791182148452026598880272292778091567341257248460099228787366386058613813320305306861382056824612000704982190000061542936508951471561817378737014947969642153363263191113066617359397295499610570085016197382826155961820462408036059355649112634056219423774304373782567294137269655017243190637560156509090840355935295125997460138619802910220881280775368793261115137830376324856864262072458525293718898435622635494549748148963027938732379610493416067163459243760106654896898885141403110710756122279528311715895427392557079281067491553305290548219412784183171492728956329941926633386070994302740040001356896969687446347687882945188626977090702813773716969026153709903186471041491305165006928056784760448992214275670385724821625066262119351257758580159543265554278529212201823682495060857251829578725439046472322646099139960452374409433887676836142590797777384732497111894038842126262155665436433554113936145196246264903616365865090355613886787618826157522235244245094639799012518601867597652579420508311561965721282255215444472450866590724003847447993615891205074005141521574364116295723095679394009921825977476010063111774443418294958110408750467299063862293353791138051686449057426351153749824458468414733419484593419090639419575951810530504070961600328395234945625186463889464383587859906419215623737201920228788559380389845339565099940377215348294297996666256662975094899376665247863760370634644152073899614179570214132425055508108609224005695841807752053233893891508776645250196276414171369221499618367738063139290166841830096657261071884567898787539846049660078691707067346119822276311364660288673118314636655434257663328372199271086754877257587641981150598644155910941416238121136972136798318664960219441709224173701617038828014297725370021797928562489404294476480665060707847473175608451277846835340375985614991633188146229355802119510951083212002585620562911618630601898249376974856876702961022267068363819418333887147399110544152959741908237152759385491388655599204978458324673866513688338131322608905147351356891963168380694941864970092897126659918385438668953199109863984624082047657730553230124090729503025773812847635917172056067526967538264704022766456633993858612885967330521578139890786565485475842132150471623058332271335874034716771414045993336318305602080593246665587099376827117967311251177585795280846324940471911631893647334800529380605519572505816309428419316059581474465267042657827071667192204227505560088836134029509520533063452830508482177103270867061035320940014142015554670364661028343570640455527375701195208180129780212711449774782855371018863516187561323032537717967065492579863314583031239570398906752057218097696125174830794540122087457068322192053139722823320412210258815337565317765416022026719433043719862537267674735915599331889442775492296076248622447097615256822278941262139698933952253556904623649441830801790466364893406337436108692922543390762644715579403029588456676774861193803092723972090947429303932061578801653138401929649309943407690098596068316267863146880620784293443282339086310891197067264096875088081386499063793508443491762644257501154874913706629665263154307470101385806849144360961942335270730129016972677960316759627855102301124147919645099032695489055714907644855295317466141106290531595450769301883737872330882108669584688986966956054135264197871306323672942291546117455546614578020286301450856002834309289944885403719183317905369763271021964450099669328852169690209766973248992370077283503984008833863797236971549049111607920421651588597359470806403983207299333614642945718700779785287987607813182885327470080967679071397281486857525672647834836758622844622997519506985832343201763164624575633202679416646032109374834482943668338337839443531343124378177190443667833640595716469231526757177795085832655337869894053429914745240967954050577356176607131907466022051598001065563746046155274006596044576650108450892246093490989409130057735259715189409854286176945563797580263830213832478634286541641254967309513264214863328251910063609915025773661750474139490911283569290704959597494531821150291783109438727003011810848298606696826757785380288753880086366577025917056848132944267869649425792843837384468902506961529475378759632466661012374269737493854341243851631827317422869884367045697809222785307611126753377412743329684991279162797722647554734611817864787573394597031133366504866929004442652143632717068865570035174018641967550167910933318082277553392902575990161845428872538606972484503545864447595384786955324257326402042830876209462229878675036095688559531053365992434701375923457362927118880449163473349229457911935362053033159401668452784682430135145860207537465673455156267455021940777090217179350332143699295187000310392190882980190513117823725731284329435220685974792701759996176766634070192166826952802892360114898034423395858297229093874979481363734420777861480977546123212235339769328916258012682202950028204153012406729111179762317474639690028964788132513164850898912370494266223098920400835905685673359921752965723546827554166881105549169813929847480406216756366263275964303865994636596922065707089426925006463623423688552363885839727367710617380710050242606825563704600841099598501074656827051580196179717066793335198904722576199107674387162012644300116632628767615559020328879464057858204966190252960437129389907022053476680864208179434051287465121149349486973212673338855089620145085542890989974266652018734255322690430329941705102113312053315575473683259322622526091092519304046485215740053279102485036848191113911306642783285692963300001243582469188566411774764963982605801967351694721194685322636027185911468989371284181705774294546616254432518228785902727101569180441464339123339162245654302892449563203110943472272438743704076173487010266891869868087291271423201527557297509194548603357090505693887507579905032747017314417190476493298998473641438013174422985436119600441143667039933413192877301100224445989273538106955250535444084435755283141198443778501892709538882264811864857662639961269936485756373283111656814733483290993233052569369077482449913108827950313178349263237001397043760826895418622008596489994313660866665273802839488584986517125458752201634771640869111525900097588991798599447136679409400198434754179913251511214703814459858399957248254386770686483404139615623982595435148406841944879879837043178762272699521536609936082370430033498797485449801706011625003783592211575127894633127953282905010648383940020970824420122516065881541002678576290778852864205567422178165821150680923650969506900245193678469086750559959770082658662725788840807047608995643833895819272308697623137551074045650461307489966841169928263533984843397837053020605199255895628614919153889032780840165696323455165867304003378159084095650250725881511529683323859661883376171807572420417884762912823708465558426736683664811772426588500298856550944659831373335264881909623186511521968635288233573362241334320650910404440592225988423257105866255854016653395161750337866219823293934716057555978159881007410269841070007519807830674469868806333557747297352193402541523511595812423176176607021471245586694019323281071287808684367656451514753148222516342535551256209767368836400862964753923302262254401620964451954434249170952996220594965532906075824052925370034504811840324604797773843365723678934690995668295112389906953895919923464036365308867651094710869056038023892260020546741758568991849625677560457271213734178788508860442221744892009239534253759766973445137260818563918564892609535890857974982623907841311433527682324945353795034265337489176337902081043192271530967648691659351437311511191183029728909749690388079601939852215084457169737474022694963420389178312345746053414831438727871258515354284726902682690520808720419983325670799027102957522895858849565745294792116793035195517849761360437835682567168355048304451835192061121956419849941315065698947294021718599397215906883438440062639535607034823340747270153893957768532127290609237148855680266890289394397633422011970725856030087573817784595863515354919659010353523032527370927256348183170542343600335185366340865456902264416740184219990769568864642876676275463066596953263037540878875168974864559101045436549045217820675263197363348266124189936779615792207974231798285713011843739622256813339272409126801724601749551766583284136988034601304873651330196856812135298468020414115450957377670244845254140561976784492078212151193602248850981147544697711485382198136055597110216589916661514788354289446955350784445401248178442976789208246340875592938902428236333960476811517738963813274392087469083824874732659609555730671820170841214638890888240335925256644432229042999981444398458703606833048697055720653252934142792915590499890213701248062148259764646525586915477551571238966253519951913476842201324726995020515264242519197284987039131414882980959376301385420569874344760495945127832195065158606712908860521968051707953739285514705535999276392129850983594414485417040361610339868230155304755398452179056469505900124038028500679256396416700766825059269589761566798193068605466771333156172372828519156095970563390392559580196194371779131232994486668003763072794260227145540056966839664943770659087301418414010452307872485153962530865306662263224050890209356447420785450771370001309354169660145330761188542990842872048160105027811862301722713569015717044163202004257575254419559496230525900729273223630401840184723362253482413173298793942095683083066141041844314376724918737270572088292629441880044693970126173242451286515989750885609532506036977577690293537549148939797700713112862922982465084792134708080770966382601139795273988342559376318591120552590400149060694474880359606435032059740500071442243395711788452645831677432342501856611549742549935623101835448353480513570362194571430806048622151827990221504652766678173262200168289335970033100275514758455324291033708739995426780532933884997757236087756223658662660562853428685451555255579907535918216228355299777831841205812409762136683708685932784144459479706763163821237797416333883945234344819481055922387204328556185435963092497651918825294587597150350135909394809156662798288303434133182985080660740367873636268165679089139239548387632260456516289588332508877975204651932247702716519298884195803453450639809100996792450025299666312348651838193750615101265216096647129342175936458032922240472536705658224238468589985369623501047802692012724414164293126402489184339949394805566654624401813396373998283330959938118576677187058976842650446662460089769958625032317617707634478640256758696429405593147499658376606028943385458584229326356305002306264005964375583728482333715981870196715929971898240299003042246167008111437555977591755366902270366392344255391308259435631966411063704312200071076039892763768790683466223490373552842290343048630220633688376994799795070688821336014435453257526370301098805695196768690997359141138349649251797230068216752794941931143617743753113868992011204784687897771127850792599544216172153901153836527391052088969046079501341783745287981617255049137214616895382311283069459723446356671629955078730853034985893189312483285727183955861144628456008085944313280156034824005226897591288916659836902183440073177969855485706978290636450712426912294080890408836470117916673037540569431847831382519100343184798979590937876795826867563725161733911376413451409254155613010414076194964337444569209743824295898814245076106257249998474041484007509057029045007201908464888938400354199423548442025029242590114034985305174872739626235133550011469918949025051096160749488501101405696817721338145209938834875537402892492169504592687721343769669791289600554360316900218468473271098526518932377881256707949307377741777989258848920672042773518911366823522354520419344173357784235048860299782316076079494012752555325929045338476733965586622258783915158387206813348061961617826649807448139247605905108245898054202917676400358480482551758688017867759798968252644084681168552024973462366293020210322480191454301251468198125516635611900095680217328385846362858425299390464669736454030711795389019693747305424784982801941781428233316003421485673607677450989882532081066762859623812305592151251620783079025763316841599612978074774166441317379913593859287243428058099342959742686502267285876555490404457496145411356525957119843609936535986085359062641691247077247973330666604137681070364742497646481252608325276333231010180915937123725009722529359848849145637908654037898331661299120067826215742135937632114129814218305284692188428998637867642155010181021948361540766214404944015501079697257335481858133173465875568353876873958533929150064156740985096183776553914775244888192129828757791243201987653412293126029831861401183692791889277807071184794293932180411718550315845339577889312483323402273966693878455041254260659570204098915978663336536870019870663955176481846279082410235792783308262499334123236416016630814866734363996009827735395118065342899488649064880899448132293294868914470048349488183995291947316314458803659708019969343333711196556255864939555296354561428193444319734650271440826517820759578746086163688761936156300601544743250160899466400106762143529499502078374316718542557854137766726642117666986515439382138546335703252411617899756401185689564505787689291597059692098838134584452087823870058231982127049823422471067937469230302405004772129536602705043259937943440109800412722603745620913360802862058717223391268600287825358493231250966410429176227654755032446082505365522687740078096401425209102832437172981933693669059512025457977809530061878796273519655867420862333497947600792901548058774672093570242141709327018600195354524535152468524750679380086845818317233187292808079830331048880563560389816024116843234620971952724709209279836905388062816304713685468246264681445242754908316733386240272390573170915308825041232617535811457047606261401472706018856563944324587985277936003058021593198089814435510185640469655323827698616126800605039385818938950758180722400967145300137208829363244210545842366573261544032958229413375323237153831246136210801538902412959491828972600107114876043174832563928186093980339228779246653926867363830097471123626300246249479303388667439142302658412750416749939622839701654607953253113848271450788841751421417154358623843352878167491808113991083853742038672986503934292256883762809764648361232987663020193277411799402127548239873285782907713177684877239638600426195221569046376050892617981168539267241915740581049783749260279997402208663159601004661501290445504541907712735859357699895127826717131846455904074267522182417401826453016395486952698350856500064572248426413109523560590699260094133061741431807312039872742103469041554891138939669710091227836983972596103714432950865824137230532910238033709036979361923819743152990578517170063504570667928162163713736958654289763379641865232134489459776112992783541163433585296918922037416644636297297841702383197715382378587991751759235240498280015099063739588324254182895354303044365115524870230935791122754312546093676135511397653868037136503869192718529788021726948935970470788992421650616150879590184262723773672483246617556975065333470432312170094175870296900920414996618042763070941058376581096653384970339929641105739252385709209860325598692040485772315029089393458148524222780443940883656999035341914551750246234530750365037204528196049855706237879076811646891042095368773019279462529818595516673594453035407929467181213813112178823646721713221109003519273553574610968423661741162400633771874009163673852270771632582287757362115087857277736704794097172531175971672250287755516344685238165143214899874493225803161648036230535895460867888625034576158979263873761347929496332209172801580015572381345761597932552808570016702726467707392978758563406030296656182865989413112948957417616719057778941608322776047899013422440386831050950878633147191477662246890618411091874816633076211282028749556065256423410626173021623118946815159828456963195276958598625408833017761855479780539546485710654556563446939292958994071866306522664321414890703344926865793751250004507853257083289133692430077312272023124088552496942578366687089133627672770683995336641341659457845982245206972941079110008985247958572187122919353963404696250595570286086226518115379391968325957052957050558769770088175027044109472795204541979818217469866076653619734567868703375293289519143476424129428933459553429738282977245050206080864482254865824788684147580731474431089240354649374519538328214593540388266457133819816762627051160021795695328381729533024810208037682606902357390805165596044942602051478932241642005115131634172929075556985314743256643150816194173499716603854217750359225178737436556898024685412453529951776501833936109665326660090818589314154940254259464504519429823757618707007097506444871280402900097025113781884328969877084322082740279792353971454440067904048691335885680373739780525595512561521061902893629904634013145121166151926097919492311206631145742101147038800002227797375561223913719907117951163011219615105151907188075369366814585490810265789610470883590000580001761305627794221250328413193551378934873059573484416109855465748853902512834598341783694835475815285803580211762629189738084583935280166377352509029280953886259335284729412416047955121114177545318547396280811527447763972856340595864283482338916472334862885932209436057882228552776943136722602851003112967070803806528555944194987814397528697736200824575726206896161357630484349121851274104006686875450175630706087675861947367506207484504828759568027172397124249150993713828149705869482053794498596237224444036205932094400536378768176413233793910735395790084023719704215720226599634912176143684960212381595000445465383578479243341885999773075735344986152786581716505766952381867614554759741259237124664658502953212372455310764504688836644778930913067444040268567771010376039815990866762636680247582447048469284442469742509686130070032400734874695715913047804235681224593976695983081254843086951889356569808734759216314340519560491884953285122138459691069527418003979191544451398938252573023934735612740521326925809146962730284753051596560761339273937429490544830094695258576509576355753641567561090302790340843947566224636956432692675786751494255459320986215925520002170168510440677410946445017078501371874248139938839468986808860871668046997921377367864903353964989517727962669645229893120351628776415646055865614649861220309811238102202688223181701793230210486752075163147563017652224348543731809996628538379111913472436268802603965631787712906112161377808277574913640695394201673345570024901949186941674263499241838233688521406304565311744890660489011187628293020242552744938476378335653984272102107404957342269377870215281496181766168856653941638822713092252437963774011955695039167027831700376070535628968746985057546586515450743308788940310233649169851484948394190354886109938465645640555193003126273511210407429125714316886967607239433862463769030744842197189008114656714758123588061672008049222351315457957962363323080883692478718147287026695811775302609350070968135248765653119895291117717081019267445455992598884144184902702780891168912078314706751144960954556715017504157037579101217290836985406729479759522424196074394960722776805442001972868512961873992914934054727679216461832558470544122116171869328965808259037555025000407706021823983335478261255479944417401657929695340769604259706254339571890289882125569003363884106401860165047766236431916353971137668030147420543958607888307217283158860641854328794883973127018365480328701527626020452755117224122731504208148315779519356728320424920574469591097306597930954349701248859320330642955370769775054031591486283689363572126274852923515630540662249676781083172145768593939803850438743672463556348912052583251524911965230873485981935801391703239397008727088835705927750024098581986327681287458650238501864390761148550898386548424337863750124703682246099391060843625996660938698187970872747722651845396701271254180141155788812830751826103328845269810890626864086907564629449492860532805569138710765420971692501224932402008269150764642149239221505182380858880382869920302192526684547380146370789641029252306085839771736800841613308646599533914308407704554622751324370410386968272299252855296290517526063323421785135083422550275155183076125682423850544595536160615899793723973434827327484635533321769334333784317004058405512831735966847007738178458593088522052010123915816179317406405892744744925622509303130611142416901386376419690352635653850336367993250632803270341391802352482335122925573587132685885810392518034482422614580624554931784559694578315787488612182881372992166651121447271292078645478766135996647998421256225348546568062203639301782775228306727678232092928820101750764745053995201830317685178731848522019410261435954594244233905044287562382098747244190083518851389423553318403235804078900334882954979468696897091077353493766643288555684001873180321323154289286156568999202447821509621745476859431432547863937522756422647719289176072862416031975605507469540099578190212425831104714905281059443762888210773877987169534318853048335603430840050297330908871685221646731777137369532449659831898474938629052759902173306096635541165238563851788041270623432060807877212590563834665176291060904167657569178110789875781600608835894563270426485103140687091419297519135357031410789584057270496941090492366832185122668486894888428190685897760751331166361769110772639218762531584335880289598329280146965186359939606517123873631653327573109252933943145045094640973961613211197711145191905266585390570517468529017494240160267265319374164843073826817553187458552737513972767800374751834536705026919401383636486791887772746529490403699723775920608567174030274761497062663343915909270334158087995915795931855783872863703010322460764452468728676942284417784101682717025156067262550345184729467873994414946433719607822030327133976427468265577017032924266527018240805993631221189136805723457453011407817501839725332774882624179336507921147685777516620171569178812383512058965133202557842303085571221634013317893104784273512817637284486768661327873630712853122960178874187348793162205938921299679626191488205123697950795018403857645122826841099845692323259563472307332822029580772511997591260067105910926045151865828921486072256769274006997810352728077573990834276955052054497456610226660749910343607351779331467031107592130326579553511108409091398644776410642644315666608408189759474671362334198216478648123121739788624638809584848072290788882968206983200219031782769913913533562036957861315555278417395917217832486711172613307356475423581200773131228486894735702612498691758818077249174623642785077158005107483213865586595218537315617145559155978211508541264213269603297905125695429135599731119175654048846036008782408077048629670078101884775664421131254432496630336090831187153794969740095539785600511193033646467728605300203146267736851742481742642242495880339666549063836098636169222715468489185469046720380697407821144142742208060488913934390433506007407920940795582023472490258682477631670269773318516605815730069103935765660689265901314478784820254537550796703372478065282451099962044713809607470273458107861100762940917378765890915145490943841235719340485389319485910331419542277560717675697827312052013047164177385276137933847998707247452629517230877640003754518840696298921609351474260439834628972858965798290311037668819501606432929899303655747051769084533035204346382346581185158161127001445622960297816170880975163012186045175037421798870229309388155575739774821695366715520033761397505532826096626547970079001265788919388931806191577523944806792311935343801507060751792896804423357062888328843107634716807936255578190545687374680945352951027161476442566594138648730212230728948542422397637493645340214332509863817674246930092243076155457957598253086504874293750729117625176235507099383398097810868022881249226804632360646277792053365953557226097249359913601820287322590854784446214719721971348809759514324332701680422070028881320924737556523242461042382977779660683727688019880330336835750918149963232290010791426085242251820550289577543459479460489918922504103462991130901318047178331228281120557160056956503507930748679922578240106171910562026065313940281195099032163522161194415345866054334090653939984743351286410997384984902901122722441814092577486323475768883861952349533706427978844716844002842351320341975798029247032640111985382067565814104338887513887524057411956859723063937289241084648475551080135950280263266696025716770273043492044882671570654802877353270819247634753219341039077773666922970775792357444262297403222907726893816106552432696618667411109783456364012342304477611319243717487576371140942169976658553163878739849181261273006292297573133133047303160255229528068933970709463188449482643811466998197453580510890532986047333492459738464664269154646184052669151805955864821496413608154668871265088524944203855542212305992647550922976682920435478277333415354475577065298340092425041659586929592797949596120446166026666805887975758520350290988850970884282573735186339296708469344766522444308808459885284509125833501026697804144612772555281478707843965603944270881645034209403968486103525366284392226498191119285439120756078466469345409698323641654729190314190494767006236881776145627762948984446399873608854116591849165054540543160069186997475371061264739671060997933456181236302911483064996462920253099341756172798804951505065713684948266718234826660956325910069058649181426558433290067042655701338959496207305910551691216551785225302340979425781894685224071904366904184229613746789558283671988052447350799463430859583847774745685853334874198015721670962117956220366128395623156990725644921119512910914243308914587183260833447501135414348001001119527118108435292569393570183720911969653333802384986809035906559181039637733208942764303919291606145571222715106059036758240233329677604597282734486775951056919802987234905550737089363535061489190073536829083494528939947161730244516868876995164310164678410248883400015401363562305031519834193880163435289154272261863978568815332155190823262100487979459960441011275989440808203534761806600003717009009829252371804820651858870769499872875582760681252816395414580075551200242417405843813372470581581628896187309202429816000024399131465316900582009390883936234293863581853357517008472102713863839670579928967727860048136937503553829483446041896343650385866732401805578159290272162658605934034692947750617196496319315894026812176162792127139108444368466092725728168060552505528034289007756030119534966004330656569478533498366730325980143689202143150636115518149203747359267338102418820515909357684905743482398467968815451002179469898498309553840301218494207746068808669627209490897358086310455916325575079122328295613424588297394117330749305114286898184240679785732019961576661941964510460404052365596639366685547125840584385167860121436314176195250065102779913014968142290135072563608607090617480101226863540340675004759141981311596724762346630490975536328347326009418343311955665940945285383130478408946353862378253892071195379087979507921543862141786301616076606135052774210638029525910765307079648846030883512586600994198339608682155643017109048875925095605411490951073705042332271996971714186422953247364876013342086286741984525966338795990972047700102218887726091899105150463847078679413801509993170276543557231558991045155904502989848299966276340855038638980625540654500554304267175484983946568612057814055827348580074861777732386988536898711807700428753974586112937357700044840360464909377767812467914902724683519124641877991311393192483714746720434796622752641686401797751454838738293819094926194671513574360019245410411202741801721460019307539052721408810669220631237022859929428264274169995321234135273474964567520312948760265745793309647565343009845734909431884693841033706325173693343548403131386173562114513410384590569347759232015993745170802324523427539455745645157505953204145878363430659683708638727452412767918428974951520735590564561258286768141539476717170617210131750943535155549365243951848253709919917124765477385111727737145382497489140506020683412270777381290775845940525689829685434572831340978891147240101450106199465576047213345239740140954200949759057778607289542328224441341325918454978201361000726373575435405968962360864800520845805857911998637746938393310136795529836946529348733134835909585221527217365279072113149203351257691428994787736127916186068186567919471424626636707928156180579037449314498023529565349063297676744662890467228044864675408231928198071791735051849132648810890253563250591882433636794911607785542910931440589287660620117799493048160764159287763029269520968218190502717730767733171534408962230009877753246631075939613352872408373581851661301605512435948361123214177638232274178634542123586206935259398103408463746067975786149881216333355270328233350332804671527010907754760674395537573169012439878937329892534833731115472339377263909164977692269976718717344886704190031500327359488352961498368943566532801458370828633043367980574053909772579325405828215377504873465149873849538379956929517933177539273065937046125512381755675805569395208937810225164237065089188466943958583618833453551657972804108475609897016816366964720166593581410667349338508447955524589100622860496304569348060813318931952575310076592166071720394452275803552667120888399008351103831344530277654999517577084072518526451280848290000409501088101666873609286558093849716249916139615379881939909820331689545818571417624850590355355042244121630980278228318390439564442256363492359391236684804103123396545210354944657717978208603812617486827631658130150727054749863899004625604086372961714780530751762173934441388092953038647179527813634866494370921276068392296186504357465203289825166868956429760097104032923506576917226816951847100813395698359300248698053422966137786045988123357057415323958802979342946362139782013925420594254349985911159326491706758933087966253050464177429176952351364481781935829163456172004197558699410247640035176272089781602920243706479735817354667202771197672433569499877610628194489309148843065882071472666911668606207971651317803223800161196099556237682136883175946426286978309145555964619244052382347173257034755684803080675236402585955047100695093983072171509485045015459420553123958445441781582947588119770430471905640731352230294220303251037703535487714518836199521093278244922915653309361520450001453877032089390338977212493175738421128185407904558751510504246833520136631925589230550748834165917160162805145687529612714491418663923498870088261333365370101880396814988003997760023567794910629112922673028029762855769613461548502711773699773801657576586537012149626916842836209593771727245629739549995392583114784986909811191450216463285082228010040735795087709524586243406778243387615078898159750996684518093937519851342324141778454051141887589166288042871252567918257290590703386516823762315676994641327542053600197675441631558070057921854858330105716810505199439311093425860539116212620270532475417008640346373410604345908156496590548652003769879568863261949835062579366663050671429891325814243164449803023406447980778422461929567053870625615759366148975388157485721450835095175499305590594603136470211739113685029853279048188846938927323343322861582833043305180617392342731933715676238041759814472527220973480248020400523255187200071917117349429735173977508897329753711936813245384451619445810895268236085702938152416345355240163167465487035885534632979054308459972097429485915910392794763645953472265282839677070050679253211762729913245636883676833381765356669154888938233491311899473774399857700655886048097628229141100310928497187273958348373892649971874178400674099665284598834534315021766488756112869302827829118925055127550959480580559601056732021216617542627695561918029234776636512465991870476623589684869298576213118338451175064413894860602471223940143699961364799086896785481192031571391009855893009190208778360515313243955777118526200728790876538893695208184164421191406984123152027351579922856951842182716494304631227237053465235766815604830886348095337096646683376507443122159228835620948298980363447945831964300071247795405142063049429509316330780896920898620740111363491672839256145053223973842253255739137798766315642628600448843434030896501139748679041291695902513134695218377137506527924280708400338578078966891484181709692258810256946769670194684893566299344785378970226363327382550785464074895315965058271117975286031075264314191310038727584072367335457483996889434254633026101063436096625740368882971575417198183851723295966036410060180979464834812429941071188934994877373099065175771659884116487082218792377989517448557210638300105833334263221996839338817374539305625909489503435138022818290541486626276269746545372388394281299080502708373492576918663111296758379142061994237220932955509789713837965180356570802610367825274754387873598489569772204639329598195498127661970347222082086908013772868024959506940667989341316165018664953573817618485095775846607117872005626997352002660372661527022951936123329636697121643653596217906757261107615723560021850187645929330922110758215074512105624710197444212817528132721294703595848984653473032532355877205291908316218770113520959708990522054063660045766082509032595840507182111882468053020178957979127998405727259903962612743448929797862470234851006547612302581919064685735446403259167109931223511159672946448436642836734624660124770335577401101323646985571558783169824966961389404579153917022910299781925093108790552789938077560388906936799831695303719733651338775020499406490616996858593902741968074181001276035562101994007405519583488361363251440061696091769320247514863403551765092820529229554364511410438571782663847781879361851766338126033592785132945022975503876900315583812192906023488961646516377850020840811362704975885163448099070095187823075896848707217869808681833566079844699592511204301091845880458249506976372846133454492575415129233249078530757062180797138558247989811880256040474822729994538706986145732005405882367442699728567599060114291922489046012468574803845486334079095517014163153503128955188674907237755609881913660573975290004019766984419960178353265150154435365932933464274254458123584689469213876094107827181173233918706502016473006366316264442362595997584036558770827039417300883340545545393832506081269547842573175477967055667505668978826582951875353296908359914101774976234340415655341526841360176060001086796028554857656238180875321323264966630686854103762091645850675456758161875585738896165762359178555713068344157127365107243090553307890557512370843811663150194004796838073374054717584464692022604330053440279952368076537830794113408693861918377374835093065409336766159373337813566540344842201472372422741955525045390449608671809023234059957025846213279012100920361111958116126069167642326570071987454797303150286728409516095513984197368780828937382975247402958611549522303379510348711945820923180694966486050841704375959122442806118250420535103045705679126130665096783963425063436965574073528671459007046284022323781892133546085806206296315365443505089379532138232599655110862220035394992823347747428830697581396322934604970423952080739930537396095979215376817292855875747700186927149808340599671990898035763900515858356605626875552650417123726694848356568410370504131335752315395703494093885935124726186009641779856983120291082647992763733576455116918197974048111921094258175428604150082935241367886711609885411582843212573190665145322309666508912740882245599680202387895400464965407107289678916365811044353749504748946532298345029943319220335425636572132429144474091862712749840187905460631650768333139758761120523156423006101510258981887618217289431442128850259074181719996166309519443658087645873721596811336497510625797610971482540140454128662394880258476608296117515691533399917462896177232081714910791204263399642452236289737232459601128544481010540866317289320058299733657961780238359629695504829583816348504630369777680402058130567508253387727647769918638152842918547532351514640981742224567990919988342809611581885663683892903761267320206033471560512029335804826068177991978635222478086843374357153479656769372717369808177051345119089255029118051842180138148564716038256025440552308494159342133634974051751543946755439300524455147236844796608052378599473022582085013972048538297043934160705767836245440963947935898809551287683706945077760071482416220721073735798347086962022132748567745256545262812595046965888232910389240950507772808448536255981118675139302051436562300032992032071365057899872013426400779303794880797362332356119247045285325773382504600687790041314250094990427418181808137623347469354707638238410372493165091069353019022652335184607010181266315205248466094673424838295010365276147788701822927964421437196921364181216396525930277086696902129895414796767923903407751409708388956585077293536448735144030004902616896964710557376282717299634817906313494332468677395599388751739110330361225379215496458394483474651650666424177643153240972579456397779926920742887437978961424462643677260493339512639256934157575524567047924151454530427031478586789719642768239376329926609616651645924057822576880415245999774018482232806181847975784892050582499603313137406677486786217852513707086932559719880484212588017326136148197606660626032259189012241543357773903726618524238686281665263808319411242892878462162884752905556967588398958579727442853588929333789840601481418887655836545547524020691484655119119229538125111374729638151969537053565471962705569165559699049905883543199037659349449818176293457018205471795783807571153012508899508511966026231473904644901919839325077130612643345065405597115248858935044796402095951986236101693836440703960585057646656345321937549193033741824115007914621297886350103114699387483702679261438647221365626310105754057214820128151057906121309365015763772654873679870553546900750333703388171611711258295558451664040005550025518238985658197082434233622141092629740233043720954802252036053116916147894964257436769492255633194653179829309958138449105570693663296605714696992809530479546984178460772276512507819784430770235130453112040096147397711822701174513631652885003739651029184123515676316228303281513848400877803710902278940701754818358045903698892067161029681730365671869471024522879806210644664994925081954966737192722912966829936856894500279311786232282635290443115281497683074457165865566744540057680117548850770531748357180631815810827518477198643909602833005537769302329066970432607999934807065076939787825137226639950633826653567749239070326907374733110246001368650212754010557586450532052236690851987477110281565781983912812358277212206237023991640146107102140003360206375997790883191038870343477396657957271696725020106696722630770906460087288638926121535151078195016121738448214630708657668767220791594587651950556090886575671336285734302045892899800509819654283277543973040962563792695068851788601540303043176423923318943310547584670381769398433269204219027923471271298050458787321488768328056641900714041083151484658327716524460176612078602768008626613531030579070615570967355510788331254777105406348717859521290598226361519367483814083376916503856802881104055798991799976879111250562081411847339179785077643313861644833961393656417792855911178399165758629863372605450707762398952820602085094077626251921896099609078474365193998610192692439329527237593488982974414383704825465318198369850050317079017975632643477996280882921026185121555731749610769376951269476488997943504997795768975333332999337804167338588554803011471737724870236373953098505596712855229249778994531774921863408357464314410967277037087675033296658784873488384210109481012255318729975579564741812240925845190003326166578664924335128070145932362511067357985911543054183187920270154332239551592391082223281137442546278454729696136130117329145760375467080490620232999027141355695497222214288547923535156795816389004460437012817533124704609137326668408789041206590949157268108231663353431078423363898182181692397151666472854058743867837297967770911165962447665066526940581767059791047131761049461042134096460171020183277722615657462076960605345304370176559348048685252497236827253262808242748064390409202654922588139163365194337782988414215048258289496824237835013329373050922021464184857004167566130160951197485557767041776825775169415258033856832204199569171897717319254419493497758502040210568161622271982454912538576103101472727665938961052442160610898861082609718628697673390630888931054045695160413224219266910700164729761652540689293843541565271571424136225769079328094323951565015209492263636431010833031425072935078240828873298414089439758587294493463442427794966563767193960533196375880184367844498961204224115468554158458466216674821150782130762587973107648049870934742360279302999424677312192407604839227074299828385295631891590874037113822421359585350502524179508763364868484984821285486871877099779357461894753002928494381676938258546861689965276285775154034762948171942513467329742875082314813466986461595632810712988767750078949453503658738296300765851671885230541081912982608984515319893428286160083736177171527949995330250016153839995045886441225687198065458479635290239440934634540583999131703171566643683253930195530275286344048913661935180806904547007777553810898747525290357249372706294255923533359743537723381196725139934419119672885175433804534537567608104935926689681388562185704322591099068113008599478793435868696138996390342225115899814032934884535979079215368941597944245251104803467246435227938687743592626422830382851328198718484590776677051474271667686045274480411020651656337508207244622699238682710533698205587545479582595331136086239049728976908382736313614969560797426094319890467214623380970162933715250692375471041967208418268555809234882059170514082859228594940966089043919323271954810848617965043562809230903749722973783542972771303105309746998189783994370917331722787690341629960513484419474702039542379111980577085401096438369617080927363501746868887574396535009012275022574242271052826953062820956015379999082607305887344526489930911219622711259291846673333572501554017725803027958216906265890821895567320012909644692930148740056647087486059384760921713712195619279035395510373560619194134958545129450794395601576095898163301705767406563580735041300443484526954449019574537599303873037035068778545918165581014629702335411425215558197378457568928068416688237823570552571257282461227730057004176291707936384845711205622723000395220263221010151442577542278476785180126093099065532149637596118670330043690662173538658918613016547800836923970781957800532237148900827981851170166829858433454306475221067157333507548673800304069682271608978487030666039436637766968335871395106529471497525388736525178975875758783424738813132412034041076727551568188042737113157563506446094864384208740433428604389918093306468883205898703725022723619310437600900381775892653272165268267725781974724573190611004864941748343359258662173540789201399474283187520045227701389281511343549457338058926685763696000955330991732599461678921275130441094661598684530407036502128339531144096697079231819182707276918356728580471861404678396749787331339057022376792345303345925329351042749646438930580226172165413250599718502592001891450469949983800324311793602551510869082151452149977176765502823178540754620914960471681359219433316428220269362469364931928674914310048743345335951924743868996162716053685688139395877367629226498055691684815823679218847549406347024326145436125330429555252234940154654399141044529106430246468355920825021262332799511830138107182291771848470498633639990953541949201400790002831355408067207096447636137645495933301448905454542857615966005629768356475634806690718674759350618751865123568567694867912650082680861420333604079558771657372667650580850973736073572397832439260986386023256390646695103296556289750751642555342477994492990690972267323234879372554142354186969406056965384378134298576208326011236758096612239478418286074074391405493490108330468007166964355482058251846160492624258057926874092985834897903955074540750691662899338577053649924774815666882911357953269481547057210973361700233843320290139207831066540221537706909015668174784245154750252111258371834205716443073418831953890094428114950779075426838292307104592467341224914589801308332294173339822771587552665910779966506372579684881960254851231623267270874805894414503767498536455743069648769874314622122620840448471440830259535485263891314038429205219131533775691482553329371858351665579617739486307713451907105223076704922777285780608874474619202186987958331195349041675726240810317750292829691845328524260658887424983694031639601784966861539050746340735126852547355170546200231664291698379039393869948773815732343725200610796714079599240972608628720744068145507425115902407771184879555802612207016596445391929833025832753135450316802226142913665699904181160374715058641803219320843889296665239858578305797896462163798051992115572801308187824579219595996516996124894839010751150975250294597617998754615075051041771392157695490489052780510673039664357764351989333024684114459541525471202628187980136293329638651461430474904461189774775024656124617209368800737904954127434010822749836207612686939426058449351961234717295631287072727205455034621064786618965106420787121683761131762335423314269442470577025939739312516231492107931778332948787082787313053222397740747342090408200988892765779768403056222019116357066534432614940228741069130069487427248036641032368449026477160452276566389152884872260989473015481313846295120395530743561845132612960938047817782441329152941899166359013786972584354822171750069470777354446582347650316819837508642949410518700950761565281190249294254889556037627814165304119157779640596544123695189703291829283357623665115167208056646697398749215928957056055829329270471463347748528181070216425735645475888490807985875617891796442837248251754919031363732013786087507849663184598852271713928573568598121219830509277699690285618062988080817917302522749956558024326621760654116710969140769466338796775138851654310329742647659436801590872305473804467719512708545822459793297469844216458175351742759704436198067470167560770334302959341315163830779282709213130572613028028797589603388826104132963763526701066890327466944847802248224284437747900386321774439145238022510443413980828067739429701457978563172146110696152363306014202860333975036204098205299754712062524898269571720679160504476719602507628336272176628716051967546868916680344795924597051629926920481089392984560993767250599648058576370034246387657563486468732233880234149883715354042883058937961196802709863773307051457402808106246036489902244823102030594719374924476359386407369180403370666095629833994277516881845319315963857918815220099788380628671884922628135158382881863878688074138452452384411101444820048587229355852164476862934010229037343518972727927638580708980176669357711457907607060887088524182262789715310169712328473741490372731894198112839825361912286108845503210735812678704803886455020115680345942359196841396145138639687211817768475982201665119917554355425993892727676699760382380189744413280305328175703706907338668084382553198883333927546939674729537492961902412360544442454278651485938133169382440874324676936278909877461879855009113548132341768332273472238436559557257163141909904419532544904899950638346267130942970963311160910244716604222552764113545371414141189512321791832999855738112386940856414548162574027151311285532517531300055458408226556846594831644306361999457184205465780285474171447400153303996671312698697440471301911569907608634503297590181282604170147888570371179504379057687534859677876527931570948757911212571274473229118556365191127661812969281431868388840541956606709839596248707588173684199916621065400468054983843649902627171891535037268703079740298419852898928834309338232101746954318026338795907447836287674716844795573276718985027255243613333287362378740146138776951616439524678457903736306027992897809763481173190223411368752187311618249945348224884394111864080284469730465638232192793342671849919401968882013247034457944643980708604082713971254775511273349524476969410087033672782140903162129508558230723592338827912601908059997732887317503642326228101259693424947740120997912720340245399676370544737294791931858811698052932246290794959614004933841470177921834042974703018316489979521026517878595040675647282915616199092565419662745550666066937156403423028323085577398623946579166078236704297988280943858042580968773248786532444132707034445031046559162721794004566517519906586053630456697836149764321328748641769159813077848629287942715847374040204478714452480396420832521743036484081407039757982874363502972704548188841545015353343642349383690992065935350740623432538191929375529860906320430125383189224868082981132183778124342075081980978212783271049099939510935448876494345834257195714302013205394084408579880564661458309719220008673775127150395392865582301191988131739161174134977128425219468307024386338864545725973101214831703063927234270071482910666636412328845111390806603006641490895740121621938709553535919786494249814565590330258014572601794322031453495976714051508118395750839466560360484915483069944985548453158593352199663952747299437648378924575893685730491709707761897692610271437176043074889998486449338752800494759410709863851092987867114342820125598081718599819459060257410456772730217708731887161903686225363836999606695712386282313640001038395211180049001915272020935474568219798892486638855111664851818759088993351765716487512485901422807616539573995116182737407532241917544437204509337513785840848762015784420441000465341879424979391323339315138798661734257337359398043760485106996589360093379111128628743443167620665456682349002874225029052440950410477003963167653324296096847779568293779812480834985220882734564784045331705247479969823430115125119142912467114279988522575950784613274473184945262352811729963220119259760075039314898909738812549636330695060513882549274426347849679440220772369670601938783225541067940582238770173515307393067927640596978008404262826702860299201324310650282336364843533409436403702276998209744122234694341725821789515787378062382995849302820558717652830866617639208639676980378611129876367934342757158219475008992322143644691297683561794127771095003848691977706419174231653407193912529932355561769097381307414302275155925379021835800045897388701186410091723843122265126278245578224864757118081028642187928383900391007542523102322427152680787640360395244977425549021275299460124862761810531594513167324497744951946771203163216925160914183290333683737005876637430934279659637664391037746986178880730277049038620724571712762656330002043429897046310135626618839622728090291649921090511619934695529953707604208416297224074082003919424141944518767990892471589593273812516313751272102986614510877588492112575047286574676488119623080638982583037827253420896652166710463071042115406199852427793576643177208647905003355475878518081633499783374132143922476283858375510976446255812878632712748711257556683108348756648288924442599835140898833449787994568830129482189314008915176080608428694358349963946900804015802228918249826886946383773131704598589626108532842331049848815209982907297030027666808138831413558071747567962854947915917078361740538710686459268507082286428714415095590110420354599013713911238985280926813526905787238743294114940321553128675035337381337948001019945422540939701296708154330223203600987245810801355046738101591292458976082258189081708559249269474235500302939388348889743279917980105986135848232383828840133022340520067370524185929045259705594359523050486021055073201158386188200483787072246383613942714410429825736723837957467377905448178065877337593164326706372398347715020737152372998723563562935460943293325046875875584684116883703258289158251121515901415031898245198828144656476509608861619023070708576071897903981948751401505225627412011524474054524704786714619268783589972704229316787409533544927686832657993286523058310480596098139470146268570608250082743351612272098062763148574410251555129299868119106618884533285634334737628244489850478770685286422223643392965308356449534929488827890896286412013931205539920855436931601667399750032931166764175377324328960334200624858523074573395002380830800879424453279228290468411001371187566277491389491579560100026508562796819676228836079065078346062081189357281900108264918539400291083782737843648460264260830173734810415254819406241626652443688490150339895459469557753648281384113878102548906870751371153997408601161456739436010199659036892670947500718768813246512319606968198424787572335204948756136505563220671540457474407437485737590608503874725174538013935471880350708444005365492897049381631010498488830377986225068101336850737294810515051009389390376191845809366646531214972082138028833533320809417267559830423676154958096794290892589034275522019187561022199138522130253191855833953683982022009510555256695758958623170610663778267871326753181375840345582240124695284243879494016637897232999221372613037931665201562090825146940843190152014348128842801711953902631437578130780666012370702518428563516905741939546190744880580121291093021169031739889609492895664137263122084864718710952892854759512686536559361356505483298779043908051514843027972447571562254329557987488266307790225542520239280955806620934277128426519326617382775964359907242732930401827085541900895447172577805973003134754219825091443076444344123320282810722583804043764361677462073367358546768771013496521904985702056210113376252768577206857637449625265149546301181514900840911157098327184017910161151697813236866700982443928357042633105169454923304160319214188771136726758896305692835028885170457436328502470285896564377316510189773804793033248142897503087354101954029411975012088316185753381225222304619229541551434982472546691133557084833331831468321626915897191668002929519875135497727113259629417741466154324691934838258057293550863049215868744792342868180975266072372553890100926837202442255705836317145090771872744422568887747519987749357723287922480529525169198302102563109200861265087906214042063363320724593385870998716948930926267976735960506256545157565855524119676314892351026901141893150877027071444442940861527285690854256272801120175608995917000854693248299047138345920509956750957283358741813387126591294139372983812824457512687427274521395936467083344719378787726025096493859709063280146788429202983526670463394773988497718814710778747250597236450166935137172552824354189431914676636542901735702658484320903445428227638428528330156711409388056214296174081142201844456793682727308697424394390816543644543359557355674973922339987114239365389179271823861348423281945868938911450766756712574274002930816487083673591234343854236654807866000402620975894615339092408959969176741608946112163774807328008698092572449652841955007765048516479035747781072958761404927629875612230787124369418147836879637290420441500093953870062079242721723061955193225851045740367059421794753663512719678817568656564674256154392942903659799396486200880486536929634459778139495369522347200937154063791732807993541691395855186958336998400828288174220480862111526773322256766901585337248707750460871105476934939663153707354257673894591125908322036145933117865943286613028388800928298091185213620473669462462473213818710023334602242736155290560916179134159244629637415728368791388934655661713901067540127293135043001719150966851209310926320820420486106569557364152186865411347114102516071260142715497797056887813270270425266096198681049566750950430315183845322598316784504939686678388944818310931619410137841307064954723522459197711772455625023916778062926827102044955022406375915571606611514796548539615992604247483305200671087284174937199314956588087208226126482150704894546631339365200405463084424258786645125444782119267916667284404260148144753266424382062491255969411219716298674331734012253032567045463980792340488975277664103758528748230802939883169722236509147659321488638898293838885638774443398892488801312214619625220332925130526525983264055757991853746113576242179439102067596944715976642638362486515700998432140387528513693056022539592594665313901256862533178619985779669803726772703920657758505253000915925979802280343103321006683544766710019699312515733011358615437992285064158092335266269705424981737262589524520484175862730330670742886191699849288128938840976232980346376207080536666666628669946400452042825120601442835248022576769936244820090382501831841275993535012984494735985330047726410107145659320055576722992521308367105090114900385147226769290927803080757447952097733244831182970022644690389818459792980345753419225880724282586784090394620349686480976822049976045067031267468817588997672982290371892433070399038512791391848601013432129894954994291383265090593659052523448721990881687691474191002399683506098434163999723010047033648815781117831805007158752980346750673506287803646704974271677688278656503943618114865438912503377505912701130970310744923704448702125572870472492666642456249313891478568142402198968531353876973120453581660998428034550303915435879054251945396933667003144081250447014581559945369067175638239858614938674270506796206404752269207930955703832629331682284193274610181531528282835323604938686226759736018859199741021723685039818195120594428816064965025014085546855701254999403968282753386743221554338531523043934936904825566191879497750636362299075501595771375896214965948295894712190282027840956024567608168701555906821702889398954309605271023499773954188090464074301361653378094790763308403357324185021198218158026511832282671741611995065967162669189663814323930032284188502595261126994142656744525083488799150468986197440283721527510896151598346211819381256782068191997141532142419523879811333085096969680066177115523015592677984590164315678287676724875463998127997726335105592624884258360694844391710564837236362493563950947165181024604696063180675783200745115707147350709387604004826374665437076888639178034344824768422387829629512140034330334376734733924742268560234954515080018522311794805641939356056053757529502572267984289330907736179032845233993373580519254025140292194702291429382409746540901151113269454788154308115501711379077889437604547174065716965624500687517887377875694061169045935055724743809680615712398476179556851924616065212539334820221378282374722212381918750806098090035170896081439778279316359315049575141315665621159829879071710306708191391952748427343269693182135397619755655936888206417343995963839942577928664924417746909142753318726143355598192255840333723787677682708505977237817855848625935064314408710014236700115902916607953932784191873865156062951767814449706869595373372205738998910547182530932343815046432936484823957297296849735649291645838556466543371065483412096114795244982544070435486112464443254521526166166775712344509622312084968787193352562356940150587329076462017356347586943788038497793080399512737561548330724824296124085339033976886064744674349100382550484696514740523979553844349400391899350294677939841842090111302505847023136528009820576650121115622029892108709667451839135558455939906644387801066351321777719323808734452851496904011103785682869464075396253646848338478592177962484977949214885239386426805883243255846489749875445349688102729353530084492618963994809091057372849355194769226570943711033642708561426385917534089927883884507896806125975835728792994278687743502298572774432783339351159528974186965878261242691686601208324547999685598890431964881369522597975057026588980794577225335706909821371458498050554507591744345278317695339853816646432237451282538752337668013576848582127918448648452308215722733354921331556854551270902743322385644115485946015220698812505295930179565834316772007876693696817281531020364882001675971750247334917254816429302604590471946876863093739525216394168291883315431004958101472413563206732595814802159409778640973520655681956338737724560717606886567331621459553009893671672439622443460134225734596168396503055413052153647022161578071360674162459300111113339726836201188136298873417131423137245552319821678527543583203680514473189997392689183800758958981527238574268548466927084569144282427371713205969985277111309739697271381177089899559816744610616902280239493022424175322276903826173098717066305337182545149406933150547322242201417234175462117624009695061267531573894550817361252863191834223116808976919186128333845108039232736497030234507913035475363441787281916182581812622560417579295992436545585854494941990733861898361288007974260621753599852688223338236440312363410131257485798876879034374255417226084758565736142926189485228987771586564669023370652825233435312130979215464096368081343660195614236765553943259268796474018307813779646694520060032681800187650013219532745035735728548701145539614520801708749021564500510668216336352486071458113719239650094594271320722298654430390776130234738847023220731566847737831042909753262831389308282704608721092090741913977381966079378888091913914551022359445345708043094776775196520929872884137282717177902428151842670248473145056617032182361593874619696766521047340274200964964989264480068105358965410656062520551188246831933388094264898201647887718306147608107316291899900682532607914686002589551394513421669912790073413422560650580924246296503993325265008404436680602231619376608766525077534298379878137341375304273326533262101082427242708961503881418743786361535116791934104308105151952321453473328903086216901597236624812833766682390099519769343846271118740948146484605210847861384443277023040037472346041899412229342407877829176900263451832547216355780348042729308844825124835945658861772654271322879245723942446768918257321446792925125263940091875736408495059098414186060435771335471364244812274933511741455769148906472984713239849482051069282236213600090964393792321511652782250114520931434496365223395890866924904030289652401908234721429189213350511754632110190239668996570676879678785857037433175268531844332549612090758820859972437803577907339734964479462792521445032488473682182178637357156750807489698028516695270908481745012913256377522330313837842396932303470401160500236429581164352953692394697882081323355937435165045699005080980951202793054289685181294881421928011435597883840328772603228262363772701783473715942669833335758550741962434916561479213036034596703143269583780921567937031747734844874994208509120375742226702761307952836567021946996312316786605413519673128745570440945072550305076560004425496185018972088061856435742687025886444754474609006492671306899053283042760252387181644791558371766300552065654043557395683183044973958900722993528247029413914390858665444463949166795835017173464282905765707753429140388414329206661933176304882621719555742187762874290658954122514127179454956568819069824224712103504375353718488873876457798740313266580051191160690183057273527491542856089023067854777482848615964561316963771026263778356096990177462285937219997759063348621879805171881929779739832126561438575580278678653668738576525903437874190033911764981078909240928777986261998749515947528069615875141879347321822391716521099588147808527166171552315498574558327358204856519273728653639884486149957874421416946220411509040089133868878929357721221623542210570683792060684143157100356166503522040166309992924172878369984167817726474484457441634743684384799292257142596060512891218023628645544647546814626173727644550322868389607842437251439724155690196417887658252864560034533295741193758774318366266569795681150206537633232994351169301638162445833237628271511581953479981671471267071589304839515834108371564258657659105020889998037199029490038470889637735525743437436166818879177968626340003852151331532774660282118435897901450096423961178672651289692883868854333164286201963774786677266014528928221949383484698377713480830572652038286457684037649314580762754221966252534412909274806209331437100760204742612401508356078911678394823639310303864075805915811817198575613799407745937385465897993004401904035718811111066703687282433864633943063747864835547259973661151087357499953803589966951006326145626743198240125097420021160221332056576600792730047054553388531718741325903730213706145031233145197437560028217078809534777033194646932615708486083980391789517549646847300138925278510319464669150612984278234908694850606030732379297004153321814350163422362097044839641233270701974087714028753402532595252691434624740783694910755347659581690972288407245741486296715190201842709096415128342853799707027667551979136506026396246220557275897996322470563061933645786355130399825400776049672576064734065260151443942070371763271437257105342657791222660997372198178950268452843300432893380280987544093753166369815201362113232618728178197209880503452852047692675806901275834899710171960071152220611605784127886893281650794948911027167959059031298240360924368461035558565299429728880229194821762392978201898493465173572044153863925358697751518638804451852259522735757164616574828616142393366624669090548686737806193191516481301763285460015191351489106183438404736197520739757549506258689011118673826059659564090925747810795597713641145289378011866341882270419750358574646792340586511029971735336052819541395665598491883902149647408246278647246623552843838107486385542361753452015464569026498207362731576123721263434879562984734843341715213509107056864826326962890762815583045249021420349224614889856545013953768448860220741305312395572219790886568564183137535891574646479383548931765596578981479604851534282599207313572067930355290217058954054989745283854846687120378671638023487737689899368798636502646231598831907055049000684548028796082535623189748029944891972558361536506312668180078546560703118665707049309884978107198631044936533412870194376443350415253477816786731140262957211613287017533845010863152532809302977764168854785239709695124476048970913497551171803344582294842034158224928540951590670549950492208820043924424011223408342303217464457346602243685030773802501018642884301997531826682911061163050303336008562532399157024475802339036298410818918535246203145640203352941041597049066629725827971838306729385648495706994061076661126274544086444554403714913146572536323613482985797063749861345361260508073172211248404324518468056228956542918595482036446542265359076659437043556168466052351572098414329045550826937733362823417842176208098286384486664292852348335329280670003428239008043238899055600789921154132215075131847960991499108557823494852089417117740792999104717821160435116993351754691660426380778269543744508426053038038106354027555376921587929925193256832822241113486801084231787619760766606434029178489969897800671416841055890990910310065255562878177986761846292686933816878377837848873380844195141063715243384189017118525040906200847541092900860084794688721121748307715316635207951363055678512657520512898658130001706128219453598184135575010577766184206226224542020977055095282083622579188615193285536294480351136705190692800090492884524240028412058325334007454956473519963341596626574886321677968339216837274025339690439133305840130147334724727817689326273920039916271363918013806408315810521882558927677982592061805203418998685599353793760509151903649650402918282417421958789709147323599130425724607187652195445428253277116965447039663640949637331142590150752860414630643784073032721137317966749697818305191597360955916034430727892443476109537790923762136226022665185602380097801900204852869804050202386356295908429006491377321683844926387487453342726689714273196441736333306628130268936697188208535903214558619211714401493809468569483848282795947910304080106830951238077787372033864508277789453980650278115848333901367386949491094263868578985050671936974738284966364220636197180244169101835487167330522484699886049985632591309452686571217699196405739994950013876996400559092981068314087367598875973799848459416944512108520862124068038064288989851972295794842721982058582033498433984616948418097238987066959914569566256517056405048633989108192387580126143333125460134859489098293765522654737760538485815781773144889948516372415507824294900599567010784043580482752870283969128306742715470721050075086986272811451650529047450404435817241639023582277435225813530986582304623812559707371778825435971014469517291668234451605557293139634198785539484377393865661696967140591049138411867878496447688487867025354274227700059227208835152189067952241143189163860678279905386402915238427507999477026594649548275087972349752560885157986548050755981920543141205234210641319600212396508742906518964481445616732685073886821076989889538467584310878582306843357346166593093914156919033171763501946331051561266919288584960386364297385265656592298131315470096335655558481303446323495085776642602588959711676642723197015166945678317642829249200444264063397734948392401812626321398643235415166453578921678458710048833617195991595313904592520614314370205869779530307249425541318133649857396459032973439587914456266911810550234300072975617493121123589267703639943655869149497895405352338004584648534351644772307143497952154214164141968912952412942772452608104246555281544627487635700631543993908274623624022022548043039127118748395905303101717674887611061137346345114026983895539583740165768870469382780923691489293702638170588046867664659170447436379466350462895774024773197964923788563533538034319398686863406201915423285920888300133795761176575385240192612565401057132734462229630067152461067814137942117308386786175211954447851814072750142603883215929474008195211278003442504275861135036776356031075257942672306188027705893930788240208089552374783972456858328303902090482910418430952685922419177882643279746357936935815894450702268396653386395915588210659493744601162055247698405633115795162760005568977120915553402210556552396880570712666439849816741469207559124270883094507570057913962567539974079440668441712910024595359695867707155671431129960874814246210270694459590358960095207729722042871382784787647438505961189042191821352254419516802087179042548742735877606144954936293218340568007644215595864336857120868838446520022391708943983442374174488266731030265856213673732421015884519557264909161741359415189693038928972954195616032391771275842627897895592946017243749288966980000075283294184738618456631394765153421260795440306803611019504462090216904790078798850946076590524502399819495954703322063718565731449229621445295070244899490349934212601497739298699596056531742032467966743777381550635817948667890228950774807967432333260336360423879074647842602824730681414154029390593194664745926513553734186165855951744754163520724077803560250775596116655699877220605339374751073395579339144490053357346477248681472489982851864797822686907142432740740156096228203194733909737064879630129597400644133991100023529375490803319606223719935204862604355080220823924236937327157656200425878178901574623547486593939782155537330450213256763051900590335907367201129549970382418638293382026797826209861435349408458269422373902663398570677299271384327893822487575569902538882586454682377697956082252365490219666008813140091920065992831625024703489773135019456470907435019966330350331074814144206437380613884730012757891198592760998665642685379526547069590880706631671885535166274188176754832163712742810937548060099098795174759098178243957216593171458766490484681874577731713800743757055705397233785543198249405711332639674782595566928774175797810491996878025270808468374442022262988238664476694302826966119611690465993741315070878467205544148383136294259974560907469929454948398758140200989080091710541102221717225927196327268592455796579444215484420875177021752693611240309223881370586682281125263869321211230045517974469487689767471296824793849046295162413043214101555708293319104397266749828483926249470214943279099254049567206373529622031397951452300327616294098329870274466906653941821002296514903319635770899425838134754352997122135656495894630457412608116741088493024750934906454970164403300058731598265325621840387924449928450196357288964055499677773004379831318845329618592007973202126128528042418497560435146937820742692836414330330520191391481103821928553339811205417633118091875880128244471740047962035901761472729982137105928479203539464094931958066096380977011793826662397999949371556109482167716617572177155684597921331781079937720166312878830254860432532257791535829016804283646196607138657595580336452054009158086226140128403362315586386791409096539624443107390289067441423043656686190843560571904269043505687953257279527795606332697824275917645638377196075556577168360480587768224456750435973185741631665214366754179738013092671402137568110654048241507748298821292384391777125628076812593097299751369851303123227839739895855438330225826685962582355190922232436118849862121790055874922874225726393233635387372297272053434662101793401296689854360549932420988055697124547896744731896159776182852601873746039079118946429590851565118646061078422661308645650152455011130428423513423011648349731068419187157105085185904218701013518944735961467993868738741152864409433470956758218057428617534337305551316904754991460272027937382242635582301948486424769168499436977075573048858998480347977168349457620503111148691536127663052210691021242786471120093997475215513089404557564715733279312365889975109388789432453222196590399363785341284114270891274924265485810678472706928903497494400138898003822875252772141838413138404133402769795649638591426502017058556244171023281830518584498301927354787429681216637927989040738798557917912626089487226867613276835322511876257097677830264191406962584212653001476766896291363263033147876313973676153956366140487496925158242242084934192443256401686695070844298137426245508276090259361250844406150934329515004183182694333027223826522153767863619325231833227364742545996863287933705303156683699253561001101023872726603839133478353217241352276373832615513471421219464988169929727178630539228437262574990930325958369430264270803156548344208025031935695680755388243065037471772795628439218450568366181768042970317726649968728862238206592638991034569590942376663651840552804100256551255986065876310630530112621876517687014571150202324376115261582721966722868558614639963507411864621409213331133179814034985107948323101264082119529635782253893883272634868309485986889213624630413900694577919583944861479576887835774495490074176590468539084254251173844231028062938170545642723082988825049967394835438671040853322499079712028395878657585739561605389183906290550034909434310683994096764396105552331222609508788658845800426360400228136240805632599812003422859240962886266447296960299784242084336229956108826350306430849326196993758485124176676818115296296757849599801183411173033747088341725426030995336907403777668242238942361155689776076583450344848380612012595130987696369505508526213553907701052626270345442006259671419193249228596818250713145611500753458025439611076515096164960971684803892559920221039371153214023180766799700503482792446953068093880257658386587288585215730711735529495904797581393508975674873779116760863416892471161348695149188456429218907487855293946659058505290025360970001262627862014013899877250702860202184192537611521123654497258129336983968858274584619167086810475430578899084587319335210781754801010787708267319573875129228765829340339614615381380821577577030583964039874930869261920759592260728250034400661185038445388217476894410368726546611571130196423508385990262609965976612315649286165843298108124182861355915512781623408512463454129478540842277703904483104738830004505891633775065002345605883351112619880731094630838384322348669629160001906371117454484046688540046805166835434722739549055073312610439335475275206128353931038842567405950014117250279383271603651107254602156148263738268572442861636178990674393577348913375678846634010597231290290324601588482377764634436372364309455119755944502094616820797097358615276895812817691996516184807799330738250806234197127716216728516713792200433186470299773962434371304755499491614868620576122670200640949308737243637897626703230132579112823630481863054582334635657863589221338454152162483463651601501094621252000423397199246251811749418262551743242289651963661839792759310474802371366982334114612755149523514472117932692564045565994240512992769050250910871680672564693579086953449650142490159758150613576958415398979522668424984575454643835849793423614509662484450913528530525228495564286286007114687784003989154483392481223376400034616141416334405708166676079762874634558003415006954650128417415122598206103339827992755540118053190415809054284273243640850146015114365426368102223521157968657753182406318201443613457865468149758669387934847438810849451139851290257894044169842574817609482381107738138514316839129930931601377582329729618943470857127602480136937203586921491425138961020559782282473371149076585741771913915350706812943495641703270590907447568243158591368404262717259205018515204157963030821453679508380145650273158467753322985973139362707618887365679142783575169140414114766271536459105803040592963979058249105928114972711801254292795412329391444005930151822512796177604932464275301608624694221386418062995799655642041875401704817460986832127479437869481194352004804208856048669179866935150323982840121712575422108734293430609610986182058686201757422842285357501139286598139766763894725364554393096462083539107869833530871505320913529777264153249704406068022333590699664814288635285950710351505495239663395128554813980448707522494262415749949510320513393255975296412394440500326288699554933206128940415122756267347083889566773506961903584766253672918154840850832026884867944514260960832454939837370437670236276389917470899672465325716585247586663386600276416365384776387298906151618170262214252201434672427139233695100348185074582490641275137668415780910364730940641533707826800644252058769034387090920459751818132604904572710541085866459583617981703893615200903343986769598786615516364405671759784444112627251565418881908886133278818318973047639438187204264554539922145454605543452927105992266780153205723510160740839066034916203121248973277806394934852675588713144455831782777520325855778879933941871579995333903305868874427596804119116001986092808095839084195427991491756586129984818327600279552303388745303563678466909210682079187727366022569193682796315793581066085152053150184682457848346229384379987648166840914598588405598070488421907381386621662202539536016295927497840260282630655782640714184101012030262337149356924449359191802909447772592265227505422579835200281544951975828678212787070906078169361855368277279434848692787027796655723058730987120917124956305940687074926391544650948272678702227869442490172784162920583733127114225870188951817106556992159724888895019414386303569426032464076559601784818991317110869877253957233691225346711249690091860763445269653912400561146050930644786360832542791122375457354825559817848153587481461326655239683976519038478509633833777056048633601998004935643343215039169631500780067197710884345112940577314603291335480282534483098076433844012658831143840745936406630290866724056350215560624222502251164334805612623974195824130221083503806054800122567111030166011767234775980621840288819587633421016428659203218691038817093875502873459563521309448026887005831897074943508551909910468500101921058060308822477256661064340354673512087273669383964867238243717007562954167537863573922728791000834516868261653065293004990131889389319299728715223287508607171875646576199851379591641320583291413499784587317820995865520028023561344298656106739093405913888459406988784806127098600986131066796293989762171327173023265611190578200497146063471105839520834992426995668824419986387935886384539716008097401570466230826583439792943355224050395764708151150973027906117980332319166008320628321054747229012933478832021624127989076415436530776584706485739368358403781681342073402027302369570081599222386743223676352271908875632447316220227358233862156151005835983737056669925515546102646324671602695965581538221755515091093129268152176790623613510442591939658424400590294429441266607312872758236903539733093053971722753224808002104409806226993337243717802436353875692435675463028490299190178392034254588583422899282980846901291686764901353135464758366371959253343904504755468821533014629854802267161606264258827318103322476041076682198958126831336114121432856603023406190699189055472529249028506971192113917038805633928329512420604651342268374555055604256938710414540717192611606438037439910875840151504374100866374530603989792232535966881924229266564817916718608767141303573127190453665884842427056252927560380435733038871551830241651144325618956946597570420038715038206014759421577305702109534354551872845945955759967417607157396424721461435362080142636083067369294180491719855457261873419264949415278645510760662168434890084295270922180576968465312463446547028719115780288763702852275836056207190784934571085895251748434003570198553525937165563581423944695223804569314149252885297249710253819968198998349252263813719899667968504205322618368093929068953425819176154560300228815088171202021090425627083812925166331097655070638273209623789522705528007801223033778976158804948777142872353166728419109545749220997571842701902789882428762771687035599449972023488152324288343600432763750663083303410353958938362551394156965417226168395997657713849448419095546044062574872931089201624662827307192667601057701201797079999459250403556518330666814814437568769757353523450134320147602035907941825647205703264319207397344208882834507343636533522692936775980426844469073690052462262970328632066708818843022757393835059870082640977224590988400587733237862050610636459320306910696358489038147989155170561234320598804394079354216786609135283118729654070556584463721985393633944216351650243644139215088074512611157085187917447754408291467721647732372212106285417697373225401586909615872654854213838038629199085859967144719687304239419572284191421234271012303616097669228107020291580357830632720371380097948844474672841477561541640491074909899676172836946931151043372120923495008366931407604224520935174087622829969586945504128729638552574435563010964536821559150141362792366832315534617014659740534374448837662176784539124340180060561225464306649554236483567423902319189742196283786759790793672144313068870567658906683301412539523451826904088631360112158115931795958876300733814539282994832786444931252459221769213928211839842287632575619602361182621766699913243036788484433003563665983418200333092365881069323944188296964830005258948481783399401963029346978038210041344661850129064404640138965012921214973343794145280705856014841473343788861799279457664629036954189709043089652338671817217631517391407423643951318166580156954615376437130820085732033673167820000042901547647985470982305903957548373433638739087065890603720418688747948349888521775261019759758805326709692417940963825109352117269064732430370184824667060353540285874667297815844702399987659488396666060264064872206028148436374445237564153580830730149946595803897876108278849545936644166997385514526200529415240825600373178006414180781676975304322776349729661502862704749243846248486168398909390224046454312792339085287474646063173241391574065105806815308996826653449283336090058642319852020445137015784116641899909377768661810440485541567230585594569173779050358695693143033814909887771894898908420060041812372079122428071819043750906253080756744103708840344877072745598815627012332660989361467619600859586386394134390190851004992790271915133558520337563886970210688830838510626744104100520127880054184170558841394140835744815317322402553727556951439354561169108157749070429249135490657397659918657914606244379553594736196826959493650237834040692321674178905081254028909594140973292877913858631200278974247835632949684193287101724229724919549626308375595643467692338072477850777228016692976576819397986070687220936076864427945340738146903423234973775446285379541419530435048171624831175521790415620131591506828326678533100220958980242381409935232329709047176952803495226763236916427118014006819728410028756855208366175126658280995618526149285776067434463159170635099233759350884486248405496997095484042541281658803852750506854792906372073946598459504188826934463624077594037962129534131360001234863504555794863723096475674802164219957229326533711738594247215401200015353397803598427948116980823231117494191501058109552662047968395664604730670560227338317764228989537005673900510433552762662091441461691461927322989377944621584545703034817417847197560878760423301396112747914483726621825106493625030198038231698067583830902827988684425525688162814697630706115238061115197081764570158825463975940326402534593442976455755036669904383400234699981167360236324783389832964746226019151094770669561049571521005235320749421664306961729103286878529612732089710751883095664365458262599387416842099781112422047918216488701711794294052159710622631106103440843146242740989070356637777777907998698168173412342269378132585861486059581022693408897412384191049112599417571897664890118350784073627810404545869323114980601436613660252603027509029768698565368752837700693190332880941513790731654668334712150619363097274221750948533891985541956676768575232470333045179947714876037489189452553259753214371098779504263481413784722077854754718093546553891534458800297074202046414694389136478470427387538394553638398162999127810411739250267828238521193240064790147841670296698438352234526942490019048313701492723608263674890676755480143784985507399794033793112219079858089129694751183743234702634962789043304640717447337416104081179700288287760599782660465094843732109488523679123655433292963111627397251217015672540333315766928517552919016998930498372950794113587048341332046279967546025987805338072267339740824981355680640990302711628985542018193219965256539680587220517342069333538467998261037386670941204839163722825654787877454899737633699565785668054096197233727436535441211127977096108583437442688629965058103263136288136899749515936094754708652896567654866396147885880907686398931055499311536207737754476375380727087533973582259121615972607569395382809919046004785714675055500589534299892264151360393893302427999979362953279204849062652498538506031154077388580252495132533421422871569472549570812412274003059397387032007915434035532964437230487682922226374446467388101337911432511622183796014914357939939932734616636827570050585976293582800791775165816056243474513907285477914363769983427720850232248820128421187643003386641048127219227445655328606416884591449461112231009920203240702653399807695596347632059099648085440512876794054441848407977663810108825117560271851555581347381212162058129585653707620123845810328760050678149246886478482349914023732918571208268828448281373139849284401868133046097581646013009267956961920233688189467416300892187910786353364889094425892880977181356394123252255599376305115556511198655009273142492356866040612504434313438532755546544769983890737285093164850632404192007751291837906692145701362887529608064936221246327977455726832451122172164899649104786441721060084402721979326609070181756336012509281797148040636846000464537998178615395367834064273563361644741828629678251807158139628342465073105092635935922721030971977040626877670485210102507704520613037755846925628743211882638090561744468325873665217801702172341370493206913590135813272574767922684489310894446288612547757853346076318744660138711107873277359114941499817705131856354912054526380551911587169590629471673903812946501460052841850786857101647899917293481551371640423208849771360911179930204580550091656993897381382672400604327345459515908581980555349930918060591891765071001139074580707946462074309456664159496807467262842009365136881979125901035889589150633208188271360977871138406726682935406086986673095199978659147780567938472882913007399506799823039215046424941148237796900241482262768283964974845247084512474742716761839172021367581084391827286026822314090014715819639292102213859519560704481226015827178482973044148031317803550000534150685703871562942707600318561416305531122420365918118417851002964042855056290171115209511745417560350583211829935493534315174564908049860005601252010113206545227718891098010535177531942169694554229546597079929607708313593108278596422603128881809445633684511664858448824839728474904590184512663814466285525928793814109405265313447276114143607902514795173845976197828662255736537800026885805323873869575531141082209436822427786153965520862298413127806116775205065606982028456903458864831547147258953155359745008646490126365089391070249036077455729229021362750921347891828664630527376151548101435349057395656867138940237158337201045341288046186769598640242401389946058176389096005898106776572136714414483126946513239113310930018169992890355128201595460219714442950877253868127302037924415568334362508891896180174447628302439054251436183589628049581614973545041799359676003897098878445183367493323571402261319892720138762475181019935027742463746261133961840874657301043203387109987722729466142836846044189662090432664929550426799849836353327115126479073895333484442485849880969281260369703646247218874160121762624597974692567628471005039290676929037112902204039557170104922376073984019495847198946326248847716664412166300034470695909429447133378952539444349270802253296990039656492213727078004489739374678567688351857043375284896981416670034736532450276579915682123651878262982499723191901215528926295451222764619935096518606628225695102484002270466379643297713816355450173606075172762489417568245880464595324768548789096607129189939052371049541757330725422709182768397439549473954182825743610128067752536124269407325546073682083412173998067214438594499780575726491493439319155663470089095022902109746703961951217703838453156896541559205314235641584387044017240499212339751360320586982211721529050344679090330086073923252257930654188096477071525605646345595014214511310816951117011835867258010008098731235271713265998934070047918147845384689604329892302281391052211497008310448136332723591089164714029164263104768859485031604254437479143705050386436993551679903199334346938892631990905418726876878722575133687536451825393277545871055895191363510570385916272274847916022137851987696692295582280391192611385046971499942976275328423549617704622171130050684355263373968236877992695546434405049865096200891613397134654671749852947794859416313646519871454445321887544253559346047140559307017916485955580525091003437390646549074396285284019840707398014270687244064956232755511102241936269991289264609650609376834432345475955554317875179280140421579048599642742131564541417608091828590987145067664839352941471367061999897831545320338811613388479638244301730746045737483057727979903325134501606206512861663833446913207750347299821011039113785410768172381077773903379280531925015220356796866959732750094619881967873196780561249189800439311345886420224258732430012684081594472690320562428626159101126320091095709133891131346854641999516587635567667966090820432723468965308086802089723958041698575920319091472540307951326352884200357173465479868099841035213790468026820448013537902613792717277885279894081752147492245711477608390292359526777142479235093345786596111901943267682257641616972404089395685691291306813314572023165242985393610236263652395147689845672412028500366669809116920015681906114597789550156413025390694782404528117656928055727147766846258467116286527431086730460677177276427060291777041940967915187726632732088279592915888378243942518583740664936706047517409871671769246525566290098354826622426050842702150597399929410169677637735858314768705572981379160632095468677259988514318612987701845449928858819117706621816902354764204401663696003974567665530829322279801755471279787314283431032711388986076412216145229782349196632694560499932004152663411172245794518226229841877631059106281925839564375619722501439461022880317109733473077173652922605434642539063634130711635246138778118207583872479896442989375074158785108151219670040519367534155385082460488770728355695116427919604823079237598842788214064106621952289555533383614625201673049799316968230875475694886080663232238509859700886464273728760034073297333706121674230702990350488168208209865070228875893461674219185739180310852228784495875099965506604293665831602633003236074954698850382582310697250069162115323620838958961171916600836669173483480882875666677812645813758610900015789248347174471096259738239171484936656728478326506224537310866824094758011826271745926789100766824795277431378152317285039877832032799824531000953362301957344890046798554657330052294751274173255094875729436012567590143581745455040574907695315390065654846912608347266339155570082931414117872178561535609622729694497145607417713356388526442495695304090577040199243711359735806789495189540885499219580323606802237063017296765631741078824641644026426857349081654795596138133751163881640773074082004130976808981218653251863719732474143996069282649327969024945685696927500250127810269017292854460584338761819368566175683135013048778574010745673937176350098775533453731175182659203724391205854549076482204015132694722220697294433181469619520819541487104840566436460088862431468375813049652596102166275403238679878521756650548234573537542695873883627777656484014474372737805848460397225281216420983677514867073098091623044291811340682136985693322189836457272980865276972264477146375799302465313922178381753120862380970494060437733957969654298695405117032473874117890395406315375659595927954261818767432664035123401741773939194551580135954563388511671100361624032175428273539956548813882014886434759987547281440383652670968547551875818691750056955893772776475551727183353645359125180169397244829307574532429012981741145691497149289421565046213394677066345955816469211550881064020649589625512673206920456361444732175088744933696959266446227434544667081207881079494592660851486179043368917167160613496538356868372784268264876161421520366077720918203911835537656027617607475469525242143595220197183008976639439197424968682637703944230970874569317508952266339242101878675957276141912949127022427499352622303387970382575463261320761336469448126950536213109338577270371200497026399184897894283160104309387610924419913358854684213799993444384623684057998226863631187801989364347214212231299421721733568902984337141782865679322133811166502357099394591356345491607806462628306271143653136201047334097584212971368759491419177179485326370076371759589343712691083596297916681449046201816056066696783722793625721772772471789002728299062667746983137008055500762979048129908178968349799828648011389687392225582684658906018895137226630936108314270100221493910065873444458366007179834296335170721958423762198613751912832317099635504760068122680273264959941086372498167803882125858832554591556321434831797980263212440817121094119975729676074876398472568237075751109381161857407895267380680860525553542587470444225843246960483468468980175025041652254439339313854243091013096339525251364270041884566166447581822022812910924586521353325834005765624277363337747532853737690486392919562205994639530730497538410005695503823099404818076553847792120275117273596527523115424121706982574739947691361653833591911870809571062116608255065978692538203468307689689983561625084073944348131260576241439038669085921368294402116070460286168096483021471747901007744162967493663208902727313256801856662869819880298099776040628935357850189806670740536220988410313338385974804150850840902097519573758023517792665198372058814054203698480085169429079316537938721861004149773942177155388628653994980024365939091737573737337545662185418280138167757687076383945676251363424507267703609457516153899068904826402793672620150782610487591916356876323824448456874230304903997688710122914392493551874798303760610804500379086539370735297081896630143883334013386384175341338121409027010546479888548432771321134296399707481256802081772098782295861164092624506009090498691002418258352326527807679281248517044659145217296036687072655705417793312225510403645775473925867166251654410701540624846911602204493558236473643206108539183342873991146152159639046974351009558380731085199772476509086291477540332720037643469290417136699319036561904551167899818686684060447899592874776692926635369453752859543363085312054797437883911944975973068984240503661585494363480761423216701357361491546432281783178560117891102536509312046436917704170909437884419312275273445169886872055812936821965475547313534337419270068866763351989198785092107398449828430962015788205371423472344517250194820268215760177956878814681244581061620789810441420370773338210852569198711830014598203272792272643046281735679448331750319420940501643143124763582680125026100900601046592096607482969481768358949553145048444300466239262698467926374144705789862406170674543957466522285369602281245091961650366601525506294486753204267677298966219844798152684306637682572545322857573883283764194286406561213181972791357756083753932909114796747502005096613845395772936293637752168979296557311196048646038516439236740952866830800772538897819173716474530296442872833941546379995322325111147201852287136643834325081983840817445735530544645030199229009261103079241808325921572506109982863429808178625956799575844918677841436136409048052577297700509718766110768087924420825770714743991316705221580522212977021889486983701307119295097698424327935877801477870464961233064514335677507868139130410606043161431004593027019628236604856276654873907017518798343080878621952021794248427955899036151770407396913559905554840898575498894776516087844133240960487393915916660026925119933110682621779120570073722262046464297085863520068208384638905850662973915392744570454630642548431469679840955442400251207654993215485922543267138952414835448007112662810800394045325629730625706614505160311509081626439593444509483366125307868306068810642322892025992318668664756490476727521959847666139010279819345522979145880735396376032074619482618000702376690470083460109967278988825896040381539050946339784161001513943609419260502593302521030781203860545304742905650238890466540896039813603462315372939129897927203069945189487751612557712171236015701265210341300819792756774714660004015886638617799990459875624117175593217673411305510868784023872381241663368967975075901994086101895475643641412948213052763568790208924846416134744984220773272237162492240764980898987772587970145536975741425118576665426583754481457467714289093473519862772820325264058784513209353316951982505694432412939231384614833680165728608385770928731537451814501169962311357860951886120949569817699643475448874457226800288049450317725134762394280238813010327084846193987049893141781704767369023246665778456086586997957066285299626516262444058929472790521969777944777952354456715855222701169703991884002476944297741453500061715103457303891939116888921536091816404915294396553344972401868832195535299074741720339113806154260407259363978416060793552143198174624835197344091575843855644696693811431467857040269667295695290599630191845305068716656037303866955504589731505580668994754448561522514458370078027832961016801992778977701757654776915649466114508317163201758860047920449006129731725153423546102848858050307255640412214101646411878270405922017600696129979932061378884694426773325522297078231170715643900061366970133716067468102865325906272691611864149361195997681372138625476878550340893309498321154310484569955552870754702668620161868930007634691843452026227091104277393390554671535308759472152903314847463925973024026693479640756931569218859155735374937526783658558723265724818910238871701790811530790911626530454579224795222882392221749127211472983659797159210776685488120274535457409823731851104713801107770769287753401737253252017238918493561593009195849531857499344675044832221656587480609902274794868394726405823987877227524983982269261085822424561299813273048194346673725365345341283862691325009022410317839078022515547897408624198868734318724444106909904414668621283643271879877671782294445842361491704342369687209489295303267872760992432141216539120895078261297632092818776433117625620373124120718738840528439483547096134456171384599034616981265709029755210217684804175783593005844216741559830650444726181133758964702690364673899272112833352697978127228813381056377437601137799102468862269190262702739240684523634919545748582467810981241297557085523251337675281133257464953787524975762212271243127390966799100572884508776907064616610338647505963863632265661296919204681065528811241282226013409082506898920094973717570894509823912779127418712491486703249295082803357418205391577127747423411616078360488786274522801550015105132075468910551753121864150453971240456617877229956884229778455665656307718004054721578166868597807565469578857546384716994125809727259084307597373476747021260345980749513035886622738796434248400554681327726209923717962609956394672357734467947003640805306790059295590770774813498507570385137995507109534060510800782609974854650951832414084540499922043016091529056976447670863589080822414548558057495589089704480525789942555087310702206269263647117184124102275079742553079550800121166032517571927639315848582449250289423427927693896859527176855452566571082260412385114095790335125033955854510515411671166744506692778062626134736045616867255283862941407086133516455544646446174695771643284065268997249368394634305599172569873723945123518164874513708701078158945036840365299024085005030935004664614835520537610735838232961811865510528594670751509079108020084921016685032748203424206828976800393556077258196286464384915670624889216287177139309969231914920095130260270023080477119715859647143019839807306361866005098284138037685558075797311688391820613906077642637340258870784823851525537693066849422324250190485299073093316506291552385789451334091116631220417664090304899601153771538684849292895093710735910373755468246452618493717679587714139485912565048615193901656510571175419488016528492157200622466264547071918752920671271489622440698222869883255605495167130286744534791285614354145086586269264588435946388964694163335663709663522600695816382641229302059133670724134182153280143556222095899081125051535457171924048163711294885309089869467677961674338866496655009420076344044903824840875931554664157678294309123229175928634546025449378069685346271110488225196798569149908247977750147655022289884414415886453535249587432817585132311443885541583155884065099653228835015651026448448314188410657677970992370883195784595905744970699910406882113011441872847131204642703537335696968018178051627319310588018308354549100187015956044151129417821274990876165142641876562114927614078871253049170150876171886360934280820828012223048806779293045569060227846012099162521842577817905640362404512259212300663947988673675132253372426459466767784141315727854924363178988384798939179858359810154064635976716137262864403490726969153069812133815336646169647037501048036890717322742039138742697584460531307902741859608820822307468631622167347696925830093498703483154750249653298135788822188206107845106869151732606025238240593487007593748648826664322167285445250014416120483034708111279556562136069251723038214741656459430937966752217945566469447040516344808075443873652877153515212886300927713337420615065709057904937518615042494966987691773821176995014951920212737725927982129533449760000850035201513903299144345347975618815406210054148253498738440203802550694129432828605227366096760502611801526898461874715509278721916371514620678142772585047205723340570070763094946449726988855751150113833967533971880133547169174963524645926828472847966229955198503012760732851260023455462593094336665717904613056004493234708034862437916106573425115314128615071662251140648793404858645331179620222375507872243886507586778295109879899382398203498055412350858690840202900506650200859733289387569117971494928349413824818016586659812425574770288559433683716513322018625227139170175689925516902161846161543876897885500712568163070217844724153314674786592494156821367256450491960293545010562183023250143880520773649068563228995747073497699136395991854748730921239552440882399802235762274582488863955264351215331043135151404810681293417514862982291813906830110512193657814521269769446691927264984697173235417185444742651941500682775206288265691746326849936812779334595524807143379987449848653187395217853731569731099136709758476137771909569974396167978344035057281682061485656545505641398640278020842350027785700015227018382887909273164819613795060147921107883004117390283722264251906788265079536711326042590812494873020651711779326012097046880676107101421452398764771671081095390623025808206126291125531411619262602642113075591515406503184028405630314628534551859103365568741743640005917642097390365489253387429162680482469168332509448911392256418152963286560574023785677722995195154595380429188096629566026387356846993518272652081523688744690431331392337773415752135440141879855628772169819990639278862253681036403517594576076354650773504542391224598776315486516403760840018962353276646359915934737253752029462326480056344072504078788651845675776913037567801505590754744730130489893685549954478256400603093372614349085278468469643177863684488315060049218290470884737579758443179906247559405398393949518579931656683133215535514342966298702380142335683763432312931993546046758778165572955913070723311580339145328013571335544314032089776866876290245283481669270436970085463072797568359590186310722109891832486903440498322115283291512293665156915642268708679982041751999133162535401829542449554608761948554192963280896926231083821141382577299500592534719091514329375565029046237711346620200464955109836563981917707108555463626271753086310072149078318771970744065451125821443420767690873104173763143857568732789699490368883970269390107916295691915885484637722155816104686873725264494992846388075457296064379143446850087056804144937947362687152158786344564947446971236620081065283066668932614058096322698836184181056948618730210931894356747251652799068311348776513335435520602752665512943375943354638920801439764474997714844145626477563101560268491902491699462005184428317558930653244751918717375824347137773106894814950476294252968388905827051593001815035599555744785037608670975739258726222153438982800875125635013194444223911539039590444425640492946958571480165235428137301671721092632369659399212259888242586569053358364161516174620561138903310198686461773447665024318385266876896377306444580851764337194735917869843394633830487411898909359022835711870192404750980898880158248481987258336257453657325462155688232064662449683391501290800105959311989480327552761935934146854733349407997560422397610643918279098312152626517534046295542507526670202638095884343277217779332372228660496483445015373990959923359931325141879617104719470489674397533064161035476488314468197421088431714763392895355493838606802410789910061816086321900368808595463812813930519638123555316169783449236972090752751234277786207521250093914454397215958753755345856293077341747675541993984658826439688645930358496311997299807830141116617256303786859681991082531527349302268052787913988291882515422416042722323400331598549589471642420258381644596905308324389800059154698104440964926471714639571075561625246719281539592361375465078045808157377339866656707717173246504005473485533458290196565285379496017146621629761005230997063132784738153824646864525726014778337222913728507438588836721537792488140533565504772845737094348370426252490159842989502223972318428194029183340603235649369762037587794023004782729936567907432243097615459736868178776307137937176489360848306843616772498611146896243817949332841025137925742606032361268925350359647148157504776451928723233491502099253576510107240065618477272231377717275931368761568223248741207155191732740063504550187433358432352129986377521690326532949552127115645378978094076501810469432161057285652300429379075799616928214201435570497389563119766527465909053970772873339352929891549295287170965495314953736849512412159793810121763612055350494941762799521461458138027360434725745596151401520924230593127479531234303391976126953442619866676706941356307344126133361405969375280756819234874137088985447574379933804536662177236345759819336818451953585285164769445436680456122824740192708306230312821559625228930717833003365188159175676417082034720235192825064892462733083865818757685982091419760338200020251622572078577899980863864323248141334696401349884958706605544412034734796140303967436264009290660847857055198226372662110487249728113962182295214096575462751132693012605043967246337506985021454612633409970369014228701510947962061739444978663591060381095237575558512930427730378951605332498459036470115987215167059308244406949115385289409996405538993433309696030038562111515750188443062642662309434261868399032810362926518870577186207366498069333567647100246665693194422540137347794182236659408090560999554497665871947450623318684496905595396691856164538235884080679428536919192706543503700757313962659960511991613478928986552399460193051866371503721793437094288649141712609547971483962980539659526889380756503762933176790134651754663228448594044164999537423020358214453367945237003580459058562246304830183647126354051530959673682251869708365078766846787135762359012467590988377963607653578650079554818837691714245246062701603926564766282066771216954610221319958248458069807305138358255237026283493873203809935263093810462918746310378774141326557803488427287494491839042860092696941851010028731011102249276319596377636272745572907318156119297199421409912913532049314663806815839633222349158927041385229111902719602336443273712159106671243567866889549651053086274494939731248136541010980657267727744292489157337749525330489322844397970484129352223831564838255468980047190337929905177669961287184213693390067584196375227667954622997652102102248309067776237530764960885981148699718563529792101684390540178354557206128990591685464335002517875191110147191461017119211301793025045658457335547538707664247301891156583019536979300631206799580850907934791637976175646851898006353534243708137837260463983920898660882498060485974671611395741063925837362043839403773810202250188034756151723992542869499335231480650997641879608230876652646125095906031577477712319528124094690885109136366418003608686399603761804375609845446182524717628690782340062660562739358679349683858851443697383251668142151579012618464369826198806174303787948314855405855076684474144413074071558583282093444234626337956027012556776076385999330566863075507031269242238138979536430354518689357680317354318904465138468036351941295767490763377858263972921558512844011582763905608095541870282161802019442479351022097251546536551125589198622314189891087043199918732137936441704805486842687312194671444175523132269056396445063254817141190813810278336775248482527206290840073622282152495942370774445469826170365147084828302083463031018518284835475640081855652712030242858004990255401164276231651441295251726240764883624692961028810377312502789687975829296786867081085532450046798851909762612254622729874193010766353953351292654928627388214508659603823528078967313263953626261379017964021557290769713083060951327101157853820076113439184769093564175809223774720549802856418035683001057113420863084296494308554788282395397815126624714832985409395834030658965454207824296161186174374886367296709376152767825684633069793028559303895563507696041840046617871638580665456488337332083040037906217337398738943742548669990903829885224126254494153851049734999058839069842808947431946856060923654443461224705951567929470634838262842556699200677987065913772366299889544211102596602945063461636205089844477730988856026845100693597219694129866756816482684828353667636273294719726046265683789180519031082963312100672427687529951806953105450520816067078453654645563363617993481078191413874823074387157077078171432164274788079322944645887531935740474467958397016343314242512026870040486663835010833954681432184038223043278700842646132164734838479180354540778418999225043399289640070752666645914272127632551092815518832955775628649355575537471262589309390614437091073209662183012984361650753517610527740669210400504184236215000130460592078608584171269147997914009356006606313646903880285891218521350434982453715470295288590234755105901013002618057371776415513547816996243628275690410643399441056523774711913971903409401785531811429860416435287823038162073870126626911779483550421060815368804943406078165698439877675739534201263975127098966137586354410192105699750899537845340238212277872610679140685085197771395241471608649468974644559826544346659262762681281982063283795373437081112353916913506153969515469047002944661494851610708834825121476199777538951623873491053064643995087496415889324870325221248100127821209217659588679173562744978762330532506621866402395642416332510714794038182361850790850556053652931903600909058382381455861732661894773591076356218128396121797058841025042331716732391821351767293262979176895314302686795829793949892014005748669261686213969663036609463010196263685834904896993225489406418493233050830932072296836349612548940860151999673625228078313393357613106271881994823741441287372077150528818704244259644438748295351156377451567938462381303740075988836983671436115612538361913406460832058508908474326641995405039633510871797916385680638640684042346266099072241882423986686388853773468870516059948409269661407421558739723916861077167702288038733765314341821823385407048931564419087068981177945923002730097274237791596063669769832780790521562267272588679789698256914887128208944184801441229948002638560187456394023980942186264317229208242419109043227096568690116391405981927425675796897510630655383267554376139828986380072540547038559461646331363257999082884856753324504053717894219154163570649852060607713276059846725449057626649562820931250678322008062587838924800597360010083811886242617331603946373040813551775911043406469488541317919814007111145680017341011204296130977481788660716981600359093841216673063789924436115495996500303181272131828453633805604067845678454441706090891315353542583507279311631751707704239944451710244434039030558563143578903654583553623899397982281168121624940881137284845661640190237566869104373204683709149460372979416424402434380405068865170697007585095855476842795407767752051960736138189866091855272330828264785300686472735905447387426450729333211114168610454078831696435293078541479032783033427158466552325337175154169798553407905101120944874195108972603842429867622443180996385499118837902247132643076843479610320379660765361570744178810949722179491476610744458955597310695210526843727811035880285695006496321938062703514138377355812915543633953083650617210409504104463655291965882702424519382676134198628496315282924945427057437854662476497791593343364348651332058973167014098241479684415567494310457452767104757313311223311027103801394255484068339929650196238283433404931331065621976935887062814158875391656300719897601492683484377790578017588613693626690762980149838932638837614452007465928710016707343833560994936755813688219538110119201707928280693123763569376106554707420044938314858956285737699385094440912794498039399887743420707189229845665879802014322894857028180109781933393611279110127738524813229058839212962562599948541964043588835924207202629786348067240053709997412371352926208867707066570728456976219044179912668715575749545115152189799180455650384772119049533098581627867315328459469324658421961584640549304911698890769878646840014282202770796852605800630430641207498303360569325733101280710197779925495358990682149403177110979707532032020932343639830789885238817620114411145857631168720513126200699255945097918359076663523643123852469858611278246977356016814404455189745087402740051919841024816075136995465385634653812637224431050543062871319649965544973387285783128646872840261522973470028000859207353267708568492719737790544644666971397630752674093975260891159054306881379041174435697664327136810409517852065121290065052237062360072614707406361909727228926919112212706528807042111887791813307308492349423625437621191931993238315229158665523362741110214923218741035502310686973523326071267830700490755632340756020760626110265247035459723132048266578879905472754091891405472889028661230527561804350668684240014973590591254996266420714129310297250868942929604066066915208570081382554056278140226703641224414287538614170708921339972218613946964748203454030341988165570065685910273189218455570632623224523928824948479185474810665676712967089908512781549832557777962606668532580962143090500082688382619181795102373128239330377490221022892767719380330295175355851525854427410062350963847216507339841813311822650866311936750444919935653800899864761887214965185719258816916611115773964308831826547923518007948470437690927892928926059427981103373940744025146045113185794085995827474046778052162096850270405183230463855162061644747842968080591828424123016853685897782457707804376701385959145945165545049769188241303236674915735847186669860441122270529070945529691644950559796189412082419262745530850881251512549368297365608378213294025021559702995447918653982854824100118206485625304334934538326105548394453933303097494085130979081804480027945186432503850413758864291648289417093685714284021602010042270294308399250955441346586781335361912995203072696727006788607910841520822698269434542825122352750030122116649543330127448825958315076319951291348716960301131981581440315969527924911113280239539774227255081344196262499105099025721371589586867482628185290337694688171086130260521727411830099667941957314324308573884926970116564770324971814116320503198582843237285632328862915773994998707185435916265330542696696439822790054852063399061242109168005556086814668589092329563538754162669792948368222626068442236825066436822711437915252377724632441907483757601188116846440519881970714340989613663744240461383129104026989711130154108206495526255621514117348140087267356349846910597656604083390767364068360835977726938967889622235824149084605073423677983200561414760809636422603682846475300828050294845472424078517594442474870172586890577989804410974040397366264331840540961426886720660279539750309887565068988669958449248511563587581681729065164574032240671936276522629423714676732716424702913840199216771660188997038196838769295237084267994346642718996890896193237619135792456125325854161258619480421975759053028530813847205640043515625456573900239422010891084149055264362171660821938248090146368212737897118487683273168345690548324067166570946693301170291918934527575874398570441216056745990814187980263476519181675361135106368309490273385685613910709533740004564238365009668142305109771068158402859482753104612410683749850171015503607021974357393370317729044963401656755486388425242274284638723234859130682410008024660011182068037559165268543627340117667896261195513126945670912051090519348064136010701866223587474009623096918956831053451385455422200882810111763062392804624787539793587315283177857570111691012062298558980198576672073212119161484545054012546131497485926910799662225376773347538670888186932131551005736249302264499777977585457246603545478761601916539034275140225191405411142688392785776696488320395300556588980955402533551914423828693745680924845588711206788399231318911905392164234857026034761219446802276141060922632323272329099210388034455377038889144857644043080827190674259723721493092187113362220663260120603371933121300471958017956330387769589272984683860979851755938906019894168578327952530237100537806577521104400837256226177013873101031172201305228328829937356261383867342264043668419679656492625942481302930195004330875899538590222062566519683391010094460261851971596850276059268921719648788141442804687630182334473760269886460761826821961794666181117998432625847491156589700578656063407521517638194460982536624517175875403302589890260980960214113747864919851460274223592750831826280914595307467146138211258460685203889276139259997948362643088402667702418450045106756752869916947923859969744907043158457684215331752636398119149462736543043003355146560000340287264437200808593286136126643252581908914017864847797229506538375131587837442997161090775483497647604369099634269355269428366505558224016278659243330058897164734517993903433075661369748656807208062749250560895926602088777115348106687169829398217031741268231597187697234565348105681070787281969797393811555358786388979180045972999857027031154071758432487814262394732114378944427406407901164633122290167788504868675301472145432313747675720949813045312594808916138691008567282745630098418711492785259440144180453795546546076073470915589443328681930018844588541806273708204437455151311535844168703981325725913449372090602133771722394163777525133215263236269923995061964044466968796513114010891168854768801283791510642226827751191007005520082832580292042378735703258825645105561423947005736521826909262395039633323042797649863614701241821579365903502257686150742231171036006068495857125775537559126458190675953301199107010435608099704936957468791036466549477918918592157340404774085357858195200071054625444756467920125036264530700330444822541933096482889194746036716862445169049523399571710325518544870360145433357002621460892945271657129201691056396197143593962122857396608402716062387929289658515098980325931299806084022215153996658895967811760764482877142015926205368937803173380854939428339854143237732194773292162864451679866001855601271395568603627531103002181640624859703061279597129096981575715415156445475744748937117297928067634281037699950766239293971390037570288384454798478836409351108083182329388646518989423070203477823006118395131802435643470081957284778800613833360211936776307020803108859934932201660059133704386370068945113844031668194612540497040289986358685713610893203248356555534926452302668770018902527196996166749243577121278792403145813169277397667380262880574567483456132485179995438844664756492424025513290889790288058562740412615222524526375473846634245695311088147559278430196715712375604148402671328467873451433534193374199136785518774846208028559012400003845633601607709050460097097839711810791964516681444944566334453559727895827785524537467386414285893086502958295024821262523286932741991844419422026969978025658342075074735265979827541757034649418547821652110527732682313809652266314994955411700282503570287720277602921922597192013190418166160228977808911136169628278236642139998841966604635279224767731235583181639095136217346968449337228162088840000269990251977019319402545092106585835768183209942073119479813378205565000829085491761688985424757404179213751255221414253842220574674646674093284267103180930505431179444673291488017005922513366797248347525636962108311720395428963628856136723797819918597256209853759262235398663160155091942724598733380468738684621266609705813755031518991917667931990354884273458196632768976634980558714119997910097379676432578628370443834947877793643813573840740658000210166451509779620529770035668070960126702479546923661299889048634337944916939130448650541938845688152154481081171768138305400314794384015117726010598934119403540327202323862720654977942188608373847130122249896165710708309080691886544976809417018646937297586378272921247991151391485232364568624235754750689837138684223502433018493293951790235410793562645083591145888390432300360186987426537946363215100532032582673284555110212875959808171387837828434669977594342478626103346117767804032596190465691084344330745009257612717020074559774644350519073065447013594986037566560169741677132116146356377430168565941594244386555814482397409013331302076504821592015156207046348403206754426788029639350327479951360344920045453711485441101085429943115775448237296339390970907845967721515953073404207589299688542927264776789054574769654640863385768720816398727370534937562274097115847686996208435347087542950223294891399810239215002824611976252789711497315632017574979273846517321716763416090901298077690129742152384426974964195849946328773968720256786281026459833132096969791053935135913973913197499310927773763755681496688407768735558265189248789308688711549469959065264329489537780501129040981506112560189090301318090579661517449862056429942684742872850117382234387403633224490920834088167538876142951682157935146991489022655906774806865060833189143511379681092608172735534321042159482990092018847244872592249747289633119193168039517772566448449082163966309938272666390956607125032045288399479149527036641324210799870154065831039069646275250734567552479842660254195462161930542042084664790380415573828504391692196483823643100625472502963352063770377596184254121523729735580095216692972953054041779294415242060472723951319797294437438586424187497246699092350709294171440100286610575934612401210503600248108830408205801793796629363839388789411358030045701327830202475470645113495202336083832014718598284489220490791773799383188116763069959267105854631183895950016759770391581179472604851651856015762144006228024163084528751758439268227984901469981609573916305579960869491389190355811780943842621685366750480979328326241364207933470827479236603498128428340974993927710334984515138494661568093039950070572718140846288678168222984185026143982937358612697756142235407296948299368184207317447764158157874287226713813708685407873352038121016635718312100600021594764741855042955175711138514227256224574461248737287359312990549233809711164343946231274047617226401415966291432545517061893585717450681702439205528820523735014671217514685157036063439761706248096420474911901817888804756600301525832856379527434698276530850743999228532839945231677701468527529915316132499388603249015425795150170480323181628872785967694675367426707651029452652737788493773729735380562324910333606881360542379421010251692633547381648986272280326496028874209566627598723900883954575738306868760451972782240901631244505198401167167687769118928077324984694581050932922621411252581992922654460897739613103372525650308657889891855251293239330798929861625678191810128859316412253438569385752314517371766740058025621145999865057306544525856743868927115634950618431759443513653187106660113827148648176143105034915170109810327515487843702615546460756105359396105893227568574221837871694708943439192176554120717473862853603031335610104592757353990990047684911899338818762608896404908671387267196437521869483051809187477371005907678506349367287009504038476182690285872286963523762839565615505676891024355645364613741281468419370896010767841642501665164141668665071898407577001395479598176432954372470819741307440879350500160754034711847094614468126806510666819785547151326345657503228998945167131702772372126455271181534385471264634205694514682458664958200800637413167339047308512969960515399948593148221673240254753429796188751284028225636054778901043099621660263206539794877193280473777645159365619929120000500209133877759672477761549899191078975890364876397628818213717270236274794584320805383608023646641423823722618637592228002980633789926020533995358398488472499805782256731860668255025131130654986191320624804978422803839570645328238374438171493732218617502971688186250430008805035660941603891550270041295445474202303378860261040493093289758725933319579420812395820921084060672834732905458264007500484372506968900196381994902219613655101796924836063268049564547751937847085180599788726546459604306061468328527682082016490970802695431389485161300350812823005113421771525574227763559890031278239988342475846085233914603357882729099846670275652217362425730945211599922427829000104949136472074419418444898307082403915441432523090409539955226335436256033349700729828435317370902014268383039018598479883879631888538453087649224054846269277636737824598357636865463439359844446047694098868611959304871658246794326476742056191145940431547609241420790803240618829670921574525192582657513728238017258608770777085830697761835975009485497379703571856396123197514983623537856651755929484187687920603120226306566793237266920488457407292038095835049861609710289684259861787019422547133532891738730183547229645673340544863202381915836271663217223572573219450868168975566262319974920117641779869814773931456721799339462338058297592883631824736292221537065630670708123806474587006180996314779743353388351244069854942625997810108519109281769102643898371142050093572220584948111426130637872600104235924953931543587271465613594025145123489222394295143490221151010179330912432694615725759325205772451878277289422163729076537897527177023039016125125183331458490631552413210782865488179474309411202486908457926364429613691576453436904603030904987457458320045498795524540933259026288797663118855548708049572115483101451830802986981208912120799780647430916120197788170678704985868397463077584151534883070132996213322029611851542426484640353424971209846423367120116797317244938044626356633095855756613947139380796511829614773062504444647459151015921879312106280493119630100065139514139670299946450933978942419544371330469963918887163717240292857808670318865988136925470407037338941000819557411182058799962508319960932286943668704426881871478862331799460889340152992991352996986312734213657388909962203589620267864910131245864751861268466504761838039381196015932135167068778745696217902292458476180777602195528080130255816652823258189555321447029155836893184411524228410420573191971635507309881610196843268216172698370296916660070167917601044152343405925035662496887754253890479313727112231755138248221394770216791767235365099623885163172652466420525722367202186074476573022625787923556545348441130133241972457575220314184113245238448523924543160547221714696830072174899563790086652573309222341817652657600917112447684280213657405545073180206658770158584106567959931167165536318545905695641045424772801482924414260279433115541470289594055685913352823036707572291646481467371058665780569250662717999119732873598157730701272756675603645785801610107996225155980099745991425864841761108783252986870048647568509747364574041404905654259450516223201239337997330817113603977315877892357483630485976201406551284068487584398375285452516251429383458790282897629518304755052437356501740822118497562314771350098937692577602453916320071215839777703815834940442483803619542175746968910539418577549979404460847347951672846653690728538744914284059427399555284823674643264587629479432813871313473127939837471150251569729914363679610703819202529145947063983676641830841302487114765758755294493147546830517296519220016668006314734267573940288445723561639627006021165974874351050905971894585619058772894938069327308594888745579037081062725884071322275327415141675316917475002047976435727233605473229428395609231054219079666587587212774544599026849986014511365481160629329614122464191255488583367167374994943766044589193556316569464060205769728784230611942317882989727421630112703790691907349043989614635562722554909683164883151547232677890166135105476299823038648438259997996221611181500641187326718258226636279865495088305746318419536696735630064631690482817295370559948415165901753286839521446625438255556250385364970525462220824641102262419314646345500554137108605834947563327279039271264046747456686153779875145709820841158508769678922687409161230951237162317288045514274254298194454883802863914182797293872343368778774318036794158296377170260924972618544629783723972964949253579415322559948029037388319944951244339909060179280524658720601098644295645164706561639732021850837127847620559951141916345488763893138535036333368926798242803597665089370259458982065567519976370480884014570370452886041753075359927869769672486531942039115087174518268381198334780107757305969267029972807538436701370342721834542027949576217823350893722809439521886784595345673770428445177315180918793559066050453775129658154633020467671268259883479880881498459528086687297702513693160401823506580872365862148532320077831558780875006260610124466933830241836968769281110705235323040080987126940530086417427557673845067611789508665278548953585957009679501268512244689299124656416968804915383526602095133706236086402078786012242951319453691534904039296890721814166594844133906123100218450688498773304373609003608778400567336654134499359252324378068678910461987032258042373506647748447245798261775471084352854995018988871538540288562040506906476762281383487789301495421716914812589829593637591788053234500925664751504104986515493122105113875565527480810443011410835481841508860258538878699965169088898986519283649455408396139643349517079397001450149157092633575243202719077483192760129870973757585824466113617240002118436091368686850033042579148071741831050976344281378136314075087059717751007962907249417278001956065807108892293412150604318619038065261348236647759229695962847727107674053391762633416575446645631801586881095951067413233070232235477713697088174448254114955875310986103933861289077415576424516028232975874574159910132987373319001781393445389080048622298617596531839281837493218501414040053798415812655894578121302569414660509050788349265432503248580222524069011663677333942881895468557320288186172164383065712059386729042378467936204916245327944014661478125263042437175812603273381469546358430756543528936848367078825424693063732271719023023135658301172385772650300189910135240517089662835874758436922046606576608913629829954135676823720197275664968788071716533110461248591148645106988991552703211913965266977777899203296922850351833208516607679168147447526595066554794434729187670983459121387138754606590176574952203849982344198778079598888074338255763857694770551869627787166851193266031724640382585981870427024835363494961691769250030870814951460268184567625949979567357497752743243267583495857101223764532889783409479780666074389416207994436397707053588355970385502860178537307618560473533623468637552592682893319228121996508167802068974214157477859222377600786371397711107676641341027000698774087734148085193552772834564167541774041149078813099580388117713387620857514688802568493205278755272829522255937279561375878894733510362324773033580016322588148678714374815344857197154135796207720324526194082283338077660128963762079346470306748258491877578605083127478751572562979505789771779158475227607271941033676879765550331938750203495536526742730524620148164438670590037189863934940146684967499184226567490432135476396301638818763189320860098549444863461477468339116675579790331816582977788361964088460645414877418872455170593241929394707654103971514253783952029243783823167169156424201251008873147553038107163355256600355285830497166856829064608373049703176169522426822027114198080639032240283101677536132847820986456084829679708443660138579493559586379884886658179376193911690103303007067822012668167000895868527620292557657697325367261877172364062087347255507337170624050266804200994741868570563078129897414902912505010823592527131776911450433593443349126189563864665125974878455905177911731439159707746088239748123702827309926476677172832444016047498547536975332931185605008043469059721810687793519770275491574341665105485383409170878973403473921250164177058089303398629123721903643571686894414223887559444190593687421920359937679856477258070865405492196947386426473730783407837306679852376464231896721513631367163853873900557253450438693194224455657181392797337136289929513308008469727191756963670120545544295088483294694173506456249275835215081336493514956966319821710094450276830356687113875525712104507840467802947805639029997158703040011387250405616190716896600051539318708875216512312169708548981885012538083938414099040397265672231837116632438084907763645239712634077751775561863695521257497726730615690010666928782902324614319103531406817773726437139379712338672433114072057748284634858233073102941480183154283896566155938725833291976427532750670032170492996517061527528961743555783987734832624384586104888829773222375697842190224075345945860393202904655597088269678330755540865154025414256263270985754236454728329975732963683533937416234202070662070502687521118632964350054379616532841376042689609072458010173954312915946031375476102032756128981362863492197006234915491662173187205930835523052409733403637701362245972724989828563765196148194672438229203903387364506029251043285845532468167218234780271201848531674155118032609298981707631322097666444649094975013635219910121716131108536128931489181688188283487398498672401531251724103318491719128612009285743642189200962888498933743698501230136596415725054438263831798531348161566432317379402845054433406696937844055260360436008534199310658502613519469609421729349058047217432601455869638426792533926546792868117176047845954030873106357231058492884091965405427873115944465940809431962196582665759980653806889481971146626420586656560579818398045097512874496908175725406941113318248238022698381522762669768334161219264583994985861495680506568994105562481478621194310674517775543573705757675093866278369077599682915628352877623738952417583970811846087846003101925908235081312751756805572593658696140050604283717793174695305331180818032226017761196231912223374446621207353375586827788241727573036932567838549170201588062057396170598477019644660178555014224552310470083821263164146825808908908709727597085353026580807721821875478080416314260619007757436638247208350957873512331262045406458878800985018388124469924181480631671767553780008664505859492373414795045719000420516965438478751859940853841121615060748311388917997307573824667281867505768142423886367614443571888404534074212308195266268780772706018801922982560509035384723650124459824663474450832295244416770140492540759375981936675814545361985815501528440787438232076067518537866754120435737832869039386318977512228559480499745950569969759246241144117273629816601761407007817644822673583101001803734052452300189978864369412538804600896972564248046065610690368572038265606380518538507013535909381852662765783785447102025211480122128248888258482432689053616213567489830622150006766091017901082741262037910362233813377213899314658603780981732609966920274739745180564389928504264138893613554109776909240865904752442712044428778754035061998352686961198302817253142969638474895643660987859779596545003598570124926968615674593779709381842238258994538047377644947921862657346679372383555471008719449284522446785718223539014467578721391199156449345897244968993959493966685258334436776241013644769703205466631811442802682649168262213749037798206636218988835726182829942540550565241881389554809894774923886594852452942834201540952924355779770862650060178464405185917648430726969095125541144802381127151673114499611540007517935963504021236416544750779852211553144593024244012957901393446024514866635713033608728589334184645214544822893403393389966993067490198362246462975752278911997532401886592542440905914240543733287035342772057787934861146879592967805461827017264176169770682838231863800830435549502888083008551981272151286600200372539932344233108110157428197571315356394571156799886151145210847075678516011729609534484162937885532987836978628688257728840570675125306603380776173394324469254486477546038627446206671361071463190511008465523929287153515384786478359581808183368481775289209060774848514608793707805461314024738749390161919008732958084973997507946577456973232367712345135596787545724494713987085229186780840142304196702921441831959304365079024769079340106807965941039330656032241583007670497076210806370701501164597022425834647682030565282831237538135376826623156344248353550959921735145508274227108673696691033972564596404407272705907941948940297643666122615883008960875092178362825294238357841773155049168133088059127312051992886629149596560472846155155542193266507006425220910253685755423807746467847897264880656080147082127390383444686173509925400275466078350062614882419953602006702273014699877808415180654571731005943611154367068398283505462148465999510954559955523938014548407523687888947082494622492329933123931896917319019706560604737872900746944417882984589882329025480788768613210042066975211295196449090935527763808538970588053962562581111182211585252341428603225320469150352349292353365369796104223838731424970081817841666185936783558957184162293818723283905057979811712929172822296936813644514809965171156878067064022112993600677442324027383068070220610338343933178566132552314003892281560682294830867939541105248940394082541446832220544515877278513299886150040836584810617798945527836918338013322686276985091149133467492809819292401305569292135428182675484637728244302714823699200239841762857700687040819738657282046520158047736725781821213062866229118312178556184384266268365346801350905623437012850991014857051027177952487831290030100510345483700856847882522843579727642907447017005424806911709010949790858129178684089642492341985761933633254730645203270803806559711825825677987188120755930973062667427923405207434581561950663847264606658528134830626203480584942322224632709181014205643886736732667159042534524134440370703374396080963062387957739524709951657416237118973366533214285730424832638603400088420357763656340011745172290624942334319575443952080187153882660307697174124667389171335354691825913290155526150997756343153091408375609707320257956458744503936711380089689627146139343179699746667269253566239196785530763965617747907246996441342158165767577428278629015282475165472745458119018787899473865173668157694875625519848923368817957886909620442026161779752982610126930740332616859806380078231987572734691082459271265361083553011034345610740381537815720212401721978446766964561202363025515657391330201108511133829735747986712859751536237591815293818358877917721924101600944775712080174078988915730280557896866261867014575128502962080016360081340399118557020128634792092822834423924957149944301973512858931908614447805800887136982191879802922019274575346098949257000109760249394044734437579947430255179045941678300856969626101320405438092460758285261884237190796070493509549987841332812899376553953165577088527776918300068003435705736288925607861952835716798828553566639704517695798850690819858914312703866401704427762046816753271201483223877241351861865229468516664994864876787355233727613221669254919487385651906591308093426883823798350322255909571074249509637186187286655505356035799228807898167767641511189416996516017448089475776586192312042891459272959053149571429485044856350469127576216426492169604038266275754801025490174404513069809610657677438040126350098387634396335729458275941012456298721047188184847640058563263024386749189674621954513933984992151115665462218168210641907749630907499172916814065084466135961369900765246636630086859926553003928969971188373776815732590329215894632506893486262823271981777099590387870346270410346181997784051756992552754492782264882198265292875669293722119784621826826113919730831468764168583239780395386591104516284417431041291717758475131387014731571081803526536880039505285384327095638713818226087413371906604257394159413770942123436471205559608734073756731794611741052862283953988863982663648821989095185179682625897108027830331823469964721724601887129735698917148661109913242232735094688972281865314341093949707476753201789985135801268001052977659501936707118817557738532885454913729822705568641208091017808560438511180238534102847144040546472090760445529576968397214407199102822017424720895841175283114074756628167827196938347917720508470043181764450977365788134739531825335151492303989922705107396062622705866443579557064206902784334347055858352962204805331110405720375812971762790223915081853611180732972275048249172303010767980266042771269193425142716091159625484624309646622103715726824280590785298244644218318967775378639775957062589274712927671721118240908263650609862677507788292868121998333699717040624426028537551698552579332974428223094460493816922017550095878718117111729411444310935001516180621601626807831503888491609365764900655432160040412252158451794505777730154080561003456223947256756299525534186123566521065554888466396571468949015409953767993863553450078140278309594738781022702145327878256120170285677382764582556115572766812385312258627539449396597715770771851918838806848445213989330163003709214521472523343504727598266966070067127802263585496587904973672974513107704387964881965087281804841695469726738014272897471435567988466007694603691067544660730523840356449178648045841698140426588161987088600748597604871998272969998588598077776903502252209038865019926819793991687860504187385552082435875949436764259659340377939160150737336045824785057521731777932650168303080534845726427432751934665683326628442452597543406747975665348018402409898608781344384421253117285853585227764900689317099676300112851159951448310035982280626944542016372039115970835659459191826498974290530690827572282966252217980190984528169316667884891044608655777639757659033211290728006779829097358119586055700340561493845071598910091420791448787822655097306888666284621511803667910840472151601329445941737481132550186786183493920286820929073313999545919822352230483554838224191084953273989230690605733672550368882433003516560295067104148984458671651811724620026727507834778493997036743585686259238303717219375363475804293773542763162726931987932062872511941180053975040768017090389323942469477297814443781307190180659378890365348871210971225318824154115322717132065263165842450008113885878788343294470205987767813252173277476764781516756824261302721224454047992444523200545310549753131819251076953371126556578272643805039831258309493636525750663550054409687039693855299862240682378426905503702841114948220287632126013019309941754150110544475466686419185462186641740962122792535852917105571473101541671995991048084900772142755948937021002917228413530241894894940790710750702710054973512195641613105387677556420245930015438166135057564406785209990461083935660105142748372296577109388608290625894549598943325674140129297753784065353242278437048353641031907431064834915144124311973193098673692477201623392707902040377438583196395430733261259064578999230500511844913234090379925522591083870021145305972614029468405070740713623877082496718905540791815844250581147674537870130337864025970925200892514514917659465893228475734906411356482640996109204235174660036586628610152389915656734708832788962601511964490842076292672938660099903681931870892968238838237723981432218126770115157271821062419768195358081317107821687046694426223139363247135249723358343293958463532038039618435225994539897877237906324814774088452199616331249127764842272472345603409906500897672928389515174682360397961719826971571883304948891794210269031260061225858299809614520030815279319445902946851120635641513209884208023934492687413903106937052918635928356413318117313633996421058951166895341705325196392581400906668346865570167635634031875191181277695182369475782800431297246253390904740679272046271845297637326250139183694553683481288298810776773857710603936403226400235393691889012995406513014573398738085501645806621175345767189050459549463383483540972659141983642720765101413142294045592690113995034398552177738960064686312438059509090284518703640607902177132297345505405746374475072051790426042139868879310558076428127385820105681944095828963307677206816375222474702120682889116074451423791030441047133579283910959578977574183954993275276957355664619933846564047951048381801039713286162938979702017665262410928431832205483807823744019244102657251875923340177225203359785613064075617730094220749470354934244727092518647954420362843607887077400194332331710448144463047607692575571208294200934754539574701856079441926117896830892527553614026644000747532789660497537084771172917195058512256105596188242811835174944018347052808977137943377392681715193666044708359049822397592479288357888373892473650726647642359221792464690400620473905533980705931413323766304506789282379584286078623622870914119554647432004713130138142017170740594172786632093809950479598322319614546167468020809117805982577424290892922480789783061825038988376256059666272016660539814227828951033747884883260231060772263935065211003418620162797898817012845200714019882338365011654192503156946279997389718202345614169869132075882618663317555690635535422074174801723834980476838908270120541216371871459578889205604380619440882522033613030567685031263308312871489084718898616810160311225087572870898814748990862858902460732648258447958952028068529997289057469136252310085145402963373701247931975664006879457985280540480779930786352491213646163341637560834099106593921145988584535192665569647623380091686282076507320143265635787497593248094372783203491960623834650143971515109887060415372472292631480306345330083446929998724317585104934822649566228730349628863663150416632799406779856838244613465361573183525271947933133406229234774977661043344475257839933781131380165967500137817629235842465951222944106973590551259337994890691525855294900472039343145517335446721719003228493198265993682420006228666399189249442469987347022627739215332513703270915420943170493543930431833664271516912233694545837511768932513895214415212050368496850161396372882568986239644383262667166050011227080178380981296547472001549784937516896509770910578279114181196797557692221489744823120327708341406437584190726006856198000365929729316485034070433188445281432425302498236565175004811138635309385184363703802752937885998969390406373974205866717980177879271837001883664805140211212242283997611697338589275033654406343962467472582579891955352163424201478836378015225724161792945744623681737189386678988090048630847227761876264277827972169477904654889686656392043990426959875573567526664230103696790826705298428967809732268121496219943316709767835465954693041847645166485300810492975165896275364608887854882157982857325255905975252567157802417584726387390353411884935779884796188650083586797664838278124307977713971236455719382602616537702700128009585564141635489528878726888735075290654551367732293465356137356079955529761214339167335165609437794077193802356335274275471185060629238605052372853143169233430918129367771646392193830862301769943390521892356662726945048930190924534541118005395756907108214322931709906685692081795999363405050385291025510316978522696706015268957172787010352603679129479167134799842627602032230496979336651705072468286216583250170676660896448795129865738391435031588316876960631526758003621291295039218440306997630166067272882723731897376152945770181102555409270063576090377889809505497847460835798696742558711489199679214232498841584694739939059006026315909721861864060662150823411316246821372642399727941373230178454212681480722425660203962501693213338591190382969993997446588849954560269090984939024165371419656104260679547995804638550073062719464151520987240630296668567106170331904656248471030152284530662162767279650161218770437601479784949527250166507020342988889778487626080665034616889570150868356706189912922744355340639228423178455257653177494379386453317474335619417496210767525537231214373614581707097300221856703949342982733611904567316247432503789304552611794735425876127480773987421000433756018553383678311360661554234532078711190777133013859242528301505358898356158649707614316714114976128497719525312489482772687349820159822981388142725511103973417024065532013143513405178752919744344802455978408879886865589805895396857186668180470648705751374529356149172108960530148950479403459707324079908165044819757937009466622191076813826584536294013192869375296150076197193319368837256921012490986229713211936794640784145361624138046624802423426422028891759522046857350383008990766105560059904248522290854645391200652557139912324662549412804512061657478810355415949986908536517302257055455653528415355819230247375132921994733099667817259755919552401643523687785492306197655180701785786089285758542925867332326506669448441996298704609976804777097928176211059314448637122336677650167190278528721278118889205735189822845873793372280280581681126103686466998958693347359571773540953658752708347153333203913295630917821159885810392176178639400377807646670610784194458481629373577476961693173205544033346750564275482162221272890451424770527254832440504980889472459971250518118170466244570532481472249359535672853337421509740867992291182832817247367704467490777399859148876999115542634394900646705008633096573990738991278042634561209345848179490085544666764009647160417986702934303465368884902381318063875018002367393607003093135046943467686928254556186167885363701906724406483043648019387954888406677535694262294885656527530397843177816558801909006980268944724743326233921489181448631982083673043010571206478686542783740986190371554201305163417810670607010517258527577638491254227512044967653000361529953443453005015589672881828385971635990266275249819280055508860943544242899565911874129880822065694013287438523423564254206764319814838288217632791111803990271333841062273423184039174540972074896445394321801979134306884077878431491836644122402591582363980689275463195686765435346898353266170700355011107081230057954256328609502012349550425600323836976161403229454000304774239579404724644256170678200691271418787601932648354573169733090726469386086445653803209730640188531461695349746998006111855781958416144330735522197086218210233822931041900406516752640610429303108096647305726903121741060916869130532278389712398100926363523916229816610183725130415204419345396146962579731007263201608252559839937498957479128626606618782405023063771893990990370145906704655542883323263316854163737313118567218298134662929520255567753011412203597272783141558986802593868560103353565849979370612225395021523166099049658203622875808833408513241524961559345983575962379024694652948562772502582944892401151031384268890591416469203132775680074546094451342569478050913805363774454681341026637423353247794219564165527343778346984475875518986398926577128182609910941157056129744893476254605946947557300956743752198848383734709678066654928029350343640777574326895014673864648155962053514889959476904410316196661136921403367159632206998199963739557632084635252732673041930800595596038066492979002261322928856156330548173504325662590179599418573029239993266047472842636825608730243524784597263929704687763251170503151103970334759923696405567728190983958091195927169783804046141298770554860957697806233955295831055630818874945005532587336270400706261044393685891859702890082614308707969826246671065237117731551283202984399225708724628612544383350860903458125655360224594945408599415057948197903560623732416677351379720990205886784614421405453431940629302793518576525695497181428795844492346234414186388517997202144541891755407926134259276401605088800917228617792972551009247711081775907276060464061183753738510249075859989209249829253885846409362396683778392841251743716422860216114198437878342992537631007226402875983046954455540522726125502604880253567422600403919526199367532122203579206022036653106669760445893221762721719789841808870165813351693504370256028341458388783129425975648018003333883027619646497458610538901419972488153781657099340189830927712917423212586992041920646664244636879058810029514043805579476915461072351153368205943657329381576299193997928707539645776947839239575752212326999634741321007818368562777827443354114779530654385979731316756609793991320243109188619559492164747063373211822910833306441669953462327866022498163488769211921355478712478709664532298830240360018452652119774447412309065345939546130306874940725647157949670658941702770531171105601799049146727723086834270186818776393739161627603436428844649395138125368448380532471561974429581648900219628916017451560971081678752682826089995073817462214603242284515482339761158709374752852466693556421808099225557922725632764076812259697261423617007415538457957490410475633488517205357638122555169120540592403781383765712254419511184259309151820228470511861993085518021352078884237014273170710945869039592012296689200661837337609890016565809869798360429500241796346234449703427888093695740521047536312579700068747780405507253069182950017116260535933199513783019815349936331339310310897762365192314270431114796132512750870538454403602340945805629808474572609152153473949324992835769950300346220672027452685773926440279672990618913732494118750482867391590276753119770486820201470514254401066229119153421435398094002533191149866471712267976348323381755241974602090604750792693487653790741785815103556143557173732161965363126948658023136727926284932692394940968398029053464618723026352876874655170152457058294272307948087487124515183780562290587114653793242682762018711641399163796440262381917647043997553404599483223438053131219333947114958938007227256713793888709775106036012990452520917328873384474273950832075615177798071693921270274644922984405733906443540115203085072546548477752340151845731445461124397304787055784229264625292039822727461848594894333519412947017689095438582183012761228269709951754395841612137760498763111770897979311638439252638546096103577885980748116478852546155485438925161453638143766034494634785627095154477965432892223411875796052503539367559067030584567760461466013563779714769607400085339943764132029566834343824599678157220100815606324968587722079069883656187082537545671141569301997894754699122034847066379202306292964559909876932972278880924918666232274452266651382987656979093535728095261347628592804034177448598851786006679100746200482788623506253447279815567120981995584391264040925320246493402701684920816273233829055497057582713612036888689168422311205132386717941415395762204798160671458639234590569257319682134590044336576460235772863324612823865656799334844451091330483471956492828089240301525622255581053501952315305302192367308983906081781788561684100717252789606037125622512387847940248492462205682412035357679089446978262783686364441678312452997259958412350718953950106511737757609528643493238101939450633007814335147914144893869063036355831727881658753307472341323581176615692169757375205474412496095572273144891859092125434411240908956246542607498182446430395753285934869529424542352655777215755407152633927289344163803263183312501472485654168704531558383450120071612809715707766304920144058902155039030242923258197136481938707673072346883775288265154010993680775830984041198587504801901630866618082428667812525154788190853604240845054059925109924084545324792066624574953559865885615211557010453441950738480064039642797269505771296549748187272263798550835931251181800288429630662108542062911542307558243014742859305232410676835915276858418366610949932065441094975986534075472906826455449152476992736698214435721453518760035774990200851426567690319166996225126781651511167974127556771982368051913082898983534717886856472225947422426936412032562989555930594691908175268071127810746824656537058878148338556442545325602797069198692886302503891349467941550707210568025416546759353685583547779534873977409550967825615041474912571051061450853921332348270279680790875449402410036276466523528285673331722112592827236911101945196139308352237247568102134581789183009838198720344263646211073870713707043148078656606559537166857949030514710849886751629889239224139371589860947364491325905277813087357003814367421229797270977542881452922668235820849726003898525770708280915512398742820919475717592372984669532312767550660185505853133814990755959927437827842243161939672723502131942321994511250824564483916039887051533817874701835924893712005941462874639469918238248582573820894117234516894972022447514526319246902089220090407191065622472902493340720847915055329136422573965829447233158914970058168574679926192877135142139300785266588170303872838555794220178028287862160646057558529874355555929499822810652771875581203008103133615899469480538795892562562328714764524555375374614006481064788584037010959287153088582399976409694338270929920777203749460957861294041394199650078514070060946606569156522612260307139698952787726238343442015476142797662108308183574169322028365547680137237813592047806338759297665417681084370568362082998481465803564529788674507648147346990624279914219403845802900260863667762528285098221363943372605936247837905926909955026916624559185666071846837445015722140825350943289907202131375172327413551948211915495814428832453476383378364792693179810075373593625167215393704998174741700619313046343828396234375824585053007980633393402662156369434105977468006610627354474911975821387456288033055329931585884909067011207068755728763242889994955595717686734437228787415078688033876778444984964026140960092352478397425340850307190230742647340341202891313864064700526843007720578190081749313635991252894063295185700556876952535200651973151225840374636709410687774583655713988773180598842872560461274495166981055864076813808607294545013882297820613466860563244137312744332794175724426775560317288554630208213017024039858421695667144101512488101039836583733907227991878544374257184188623340660010621851899663148450552384111678965451817351037191406453723591687999451926957392307919879716464787435723501708283133068958775845948421049413921158935326064116047768001561175038996235315976946175219839322813416917491022216657592030772631501001909624860660967603898901452528183800363141452355418561632742438199667614691662153087474853075904684918261014638303319753590598043286193920695760421521915749171124885368883454739917059358066681737090486856983977641729505828896660329573764323270752858003941351920555487620194525000612232510376214037408676265803676083440778403695668849419421514638135806067403338807644020934097345519639624316954583152112444105831008406601337522179891514733538089583487805890480460673170509232705723982057254076967917799203257504365590928512443915436933828454701060281558022744995231861241906051587274588929758535204246074894429998793529594948115646146714181995933630574886953497437825155746442196212652728045559252000974412461312331047612140011533218580260839916058825574116264237483890534045656222072465644452524833592166754709821304695600022471810514287902542700284529591026600438339648713759688311001818658055353224395216820818769916439505778726154325579888205980667408039790298610167314566064705644139693743972021071144935715482419324866839506750367638719056503129791887284065673281101564265135058572630766497073841405214880215319588444096843108524935139971617405476485799746255874671929311227771825892955629525554631450750542278018857393843928504555788205822772264182358934701466707800995932527066579073644457408451667997649233928578761967436531469971102117753748435656970655910738363932558760251106536891959287270460205913670561141636065222347099694809743072184438694432865557348836272451961568509686016451671893767277277281896334204973258973457668232119808068654790863595967786000876019436316619019800351297617654750542470389351006991351120049199108518890669989463421432410862769742195896608864219896435817220424500057231928942490454057263898506260192474148494014088373412905120115829428611959315383349510248096122391174615171038841323120606485942735833602077634051028056611371626420542344232401225483166095796532369954492363505327923808746780777713456150803393626300206426621146876506239833344816900531943017720122789564733132964348177549098616179654079828188483444158403005954886119681109281905403524786410001317736994456126558968164111571354345163247781927528978033971039843287553967239184651097533495807689138366839801161794749534577809710906544131140722321103927861403646234963091033482288503834072042743957357229666829406610493804925679136868747311255813653492066575166700681063845126662754692226329720747471644410872241611380919219140733935848935525381381220556752021078490705367905256198070523228995168845816550219672015740938101474305533823617927972016111414301486775779611050474635071430345564894741402879338408080038672039844654180584004932053718061538127252306343181254810325552000099684598567358516323361658048382098270205578429040825414256225609104721147553057046452475755754643209240929287447026856320731715526938378394530000025568600267935102254750919913091638130110851521757261132788932899489537818173198557520239083515505637689282162699684972207925567980102918368154354456633173301747337366243391837289081999083481540586705242572128857998272862232299266511152639745147014739158952522385118689796249233317895911859153598372640431073319929779860009353719021374246401231449099086585909577867772842070726821356991818087840503145516774712021975389480043812948380627952999439223722117364059794124782788375704467825507779806324038471526332815581769174656637899555809082324336034908680934302125398162862559221786457640489816916831902148147903242998704561586247372453951959919962806039159485943168514060943070613059767101544038797747682863537422732919233785878532463988472061263749167856703185058197149396461068683795943482730150600966800853731261934679611265809336091965203914763736143629797183504491287570762528280736009122631088586368924673331109952261027478468036632170628401866544733665031804602217209786958457780150343132182756578417395306461694163106686243139501650558993521294254376294647124306153090031545041338067172069662925513395869462008846834351392204431814338438408787470000405428169406997379801809406912122745342226910376198872250003849683017061150994223118017913291997660757598787066447389869944409906735650191705257884453003983922674196883457803315808039914714931603527390869841493970017210157751985606384283828579344016575582266866716686832797056027270416238273976810736772656013256240682741951561054897015431434096450646172040557715925969941953813370230454963836371409553959334243654646543455817716833329747196894328394716813974187679981206864728144730879205183674405765838631089377743157549614135167367902693309070210863921748451965817658770190699252443339625214308432703540464553468133972434322767524748740056546375496973317225518461640528085024973955567268653996808731046735022871387467641671585316055338380580036828536316930438604309779595614487562948509348845113589509453004798286250598259092423464121548103583437085320042471838679429385687261666619580030337839920179497566271529514885000732529898213875769080699075194262787127569496455291261596076385278072908643024505899926634164010970245554436855069449571185267582568391077068210941365320583483110783564987666551086364366198051254612544570269563882087314402802782309202376794940156403617846144937006807132941939166242722983973407225949998991001997096000749978849333167982162598826238271282680551642055231339919930192723278455911495974816062557474239098244562378604743272920562222703983319018193624800811470023735735480195954570976984927812348643644260599574789492450219921258402489543723598147185118534478946257764040339580291929390011160540196231483690693454908707676443110441632178532464181953005074857737368120941701569490125748783803998551752294610619700970016970289404820285070762874874311981832890776860642793929436060391019066668300516351937378459058092593763696134045961865252743015858931785307447442263315882037384659133108397643202284855100929117636011288506694419700399909303264611270475249285378080746392361275985397901326505587723274232044944918949207819041902423220690351507431180171818874790291992212772188279774070955288573989697050036732113907393452127096562311043082398342268397748436864090717627303828921258506112889718874074334925486391592017344264818183125497953631945595038009365643620644930154401200033964508077925187638590329446399798778955244589986743660431281328676193854882422525812545176554276408818199093095309962251867176060202411634108558116135698677232153596147650290959437993224048682532313389062084453258333673547639334502185189396732577726758257768099987319746840512312088590028406518479317306870572991382439723610028525504375484824905206196684414246690358337764843102821980592024124878117292735999881626162072210720753438997747421935978918121179209179179576854426775852803385109262398326707687762875220986088163641077159509625795881056655019338747773439017096469093090355632706855757396217199000540542732759758228779325924097904530535173830284133452776682350741119377030420595060727374322756514487695429588852242890526683845245252166750856771559149911115154099403423076165325486028026731906373310368436436964640632417733748002870205220208724712911968562975978323667107911634519745449514639958564945302535443053335703223594565424860338448541055042691945159746472505296895687755960268075728631930709314006311318415561718137347745757082333584791470114887397032017969251697255882355298315204721836314374933584171184168383363926448259472031334050000179791944334482677530862146894463371267943763000267818741547794266755390916819240982944861950238036690567393381880210545223769122528057216131465519007887540350657561681094544087617170494550222110276297616638515632094703861518463882061287726354307297743991956942111350669900829636069116914430079435434987761575403015814442586401318324774692736788060705023308989214327066645844454562058230637655464151076027662121557001770782066780946878284188622835856112570249856719659963052485097207135773896410096854102694782356677731946229801481138917940022335206724767225464990878507991953900817424135498972183102981075722806914415362941541752299257698446865586072780106983274309830372837975862021262740663703253199066795032229503103296743908390650889832356960583447716953870822015217600237107593018879069591933641844180669349676899851346967529976679316503223674228894814183669353846237710058197404022905559720110828282343848410281246103885754603082352761529751143850136848991830296188573003121570169190083799081912364465999868885037103270058189143843484641562659944004631595880802428713641956824299319438660365369648340962804949880079309168104018351814738344457533854122603131449717605329404093642507285637155144827150745086856502338493354744919174829866950047079288140398693580652515663071385682492233094240984552969873979531920391454094477168412399317773819621297546272191033831861596472198752149515763957764838467505475026273518383747956926671805514591334186352257534414002235153772956913212281775535903876625650484182611016369300748449325743932598531668384844806788818784215297796232924051939751462508188657834970935193754092955765385981035345966332058999812845503316270785465880213112848715381095483989279054050795799957313533888400837382032134920159830572578228285034816985478003459302531626327669063111948998853237821932070279560242066517199976108664591588161869093342338790084794204512389447805547079043133545778459612781163693936055422541319372287810585759372799443811415413951496901211188883840044450414916045903844592269536470474924661249319026523871972857568618406785909796629304320353434913237191063196943251565429552063037505531887029813918149711741108036402774542132992950815959017570635195474800638092972607077053957362786697905663571774485857827626266459347993389089530279835566355647782594000183655506265642005876143004222820902701098716985603750763636182057125322662026718976750168778563062349445077637329571680737248598645592288059517214332476987074267804092377797584166658887000644697978793084214369654296914489343563245506982803620230723132498959467021385104341268130694823444812975512311565163988309255589603771734983214216885255579521617075975201491230883635817229994593223306650646131450207034130313135259270183474240627605643617810382183614105244152284894770722414923536882902887824465956176309809215426252098935670832683886252907549231199158089653765488407380366056439017199599852999053525865611761750258438505032955656620417247540419346324220383099051180487857853648022618661582969838559993541925765796160771336254733861057453932100279494784661826489383349718687174325579742771661072044313217930755695159569913389240052669401020811319866068274259996870754954664200457615709167300729440620185738971107264168330754702211242996337056609036902489987088619302363022745182124280054800573351611435192225444965457160001596398091319194342972985710279625420155868854156331661304982594943301542408390490987370435292191141904634204781137150524202278855954125215296091072363382113052992644366677062075564796622730879207162326840032619704237038086881031298812709987891479986691143120398952415151940947111890918689484099085068442890779940692127454645331902521712823721707074743810243023511897460968761907496902517409506805503869299231088404128241404677832375201630503084022747110058685013750211433361490391053349426799725697745855263608863482686157186014793493385768950840933299760209723136000946784617738193130006744144403375831559123737552129591087905406911087900883510960635317240173249530421881549625745458578448574672448657665656128370345173286384811222691460840401897601521712847854421103118112685437883444507506689632971519424581981203221540201098712563525193082859094225806906851476311976096723525746916699207451439469479299401997468201826942253017871664834455426989591136863499469258609862593497146261615470669938741559466271281410787821823185329124955731269521595218093111485169565161445896384347326393128546321282208492640946296267687745490532930779188028854405010024256087710382745488001494047643380968389320109658232242016971099906477581553934994975810541881118447191444246094947418019933621324751817716748810890900502042326867560863581742625494195491279430392123865687070502738218704276379149857368721933987318160120740761986441956252594626357041428283452605598216940567545309282953740658966641071035199894597286345257847837537016005201524748797823560099501767312652860783367083799862311183821589744863310205285662776383736540301289346985657960428338460725110401736026751388988187663923962872970829577819440777984781909188602504158336647620970245653840637955577303088981387564373441828192834145263029648733080675767043962352521766074459404257393448835983034847925622242885918838431033564693489692824926635914166931244130192254063680598014715673577086767914696309824890496200091742627848405177507827023061991682775856154127892886043601970746329468503754336772621612617803811146949510801428123920206156970688627781348320811876618904380722633217451311240893834324021824316012140925457559984233886121526922361977829655459372738568118784320868685419432015882132461972061441637458237190142687972137690240584215162166953572638776187463945851947249233236161264116501535720997388969719604399688540205623358114968095662982334906777402319741090606652721278153183542451404911267133485286953612709192587592380056979780622242056048068486427842463094937562850835281084295993264170849318173818248036912752864621549273114499532282887378712326602019287654795911239095093120307382141845327623134651740887322859854607733224850632836078127677061272889321563207530183052984293517936234830921231944752213559914410763338390644991450186006680516672522319567539359953813520784987541981990919425237513088430244150263823387284074795535816401643491222100637708631054706648467829362237752720811685399796179175548506865113455394395477169236098608769643342942997189955529512889974305110858098572539835331797623705467011055319279883731052117849919519713869652842741812532323851821259398896580143272164011961578728435924796205361838786276763516262579171168994571744773906868428704758964020070364197256960561957784348891191510987582874606554082010879182659035824260336040113258363617365725197976167191423338408903690470021491509848255508063257115088002314804276248815409687093822236917311078521291898473032341672270419016084412418267299701124359014688317750029211022800783297817876941246761323202105230651790665021274204816702072045826940180128508144624712000114159288328405911272754326892540167124106379006362750890212583888586999800143829248790793183016089994536976059603550378708034117776205579668202339607688214314743217245514480665985763390571632524386049477320658202365410870199404984913603397645785471463437021946056510838109475240783962207224637069004469454719676435178918135550928864794700194210855817829541130438014386733050177945698774791979134575609365674367230464731260394357146978507420478443812076116710210015814972632455020294056881327282337372233084785589153704564761941004336085792695432268233526984617023010621594433333412593844721691950664615202126493811490651805712830002580252867784701121414742398387765207953020408024026951493883192124485906403534979172197240834145613516436902518916290484107786342468520588074032826664988414496345548847775016069639000266499805096654488846108938666152469729780461161217502158375295972174552526657750296828141753346092376960447705448601357771864800561021026825688296831964125094586005829224546179550530674420293150298548227561855233799706173710973716926991804285581722070633839280997268789726690193213877040536213343351782250149017137753880319948434361869469108334019326320670278842721959268048832380822706799793065548874050728222449878396651293757956082771056971256889272927135394550189078016310656468611895153832138656520701006948931156343138536300418007739090818061417392978434693319588837280971918128756240682844810795634479307985162463670199990405057224429429581302392039418443391597960590594400899042267955041019747553574856394698053562893831051935539302935080142631814201210998814595656199824360937034374993915666967373548109246537325107613554599751880019503602307612300121021222178421698835350279020965650906639827155694188832806912210783128115681513845945739524576905286390711428122252059570343199315644699220846872264853496460438842797733676752949215014569031109201156368864660688579295813954082106678227752295906620622620940628840051435229917999476536961697194827448477920690042307391841904267097134751698908939416740530944528573043637610131960739638630082882101427367439912732850582488248296199385212949738287294712676457060827136845852110787384705337996454264720236193114158166899678798268891271894487711992213017105706167796755288633830727291940564569516239381024521842932786180822557596689207032990864034569544117253097923949701265590374674116801979830631746650135122572851793554092911998034156968237056569165163699420858190450429553013418932693665696592732783195417298209025094999881065304933506772621439689668937496718223461730064619612307426722955803818412888613779017643474018310710483719057617049315730544760527162177897920540110595472065359233045516962258843217900345872330427298163003886548717075031828779415880971729058838851067672737519893439792019022784560600032478034936609647207464542898346324104153370852384299605993934397697465663581260296203063109549055509308684126147801364363179760017130114219650127833453359353342859800847776572764154032555911638767480784705748006547711789182090781807190954568281590624786444656446403414929948445352441456603264659251227754107801926746699925769117880208485776133583670901009350680414604317516298018925646002890835452308974691178870308488992527949920096288998779666447652183412821228073009444321879936795642145356293269475300707911788266810247830617901044106623472448492157279540834988287273880419573556242554499674107686396602134586361276451124587272244073728300068742719042973101255435621095423329653564393910689297062497731629872095235030439850966758735765232772571704881678337428670454916369423045145744017689995914350690070128037471695659253077540622343579970227110563617344794347663800936187178249175331733369964510571792115150156713765935294950416697892141788185817700226513700527759218455515132327015205907383743303406019070412063164168771171739529078963156775044380593006627936693056022225106842296526708258962504654866318344211496982611708033929899340150477393901745035218250077551110053354432027188530908911336835341969981875472259813239088444845185194186279204041769141832186943113225435607910211852040695102554167740720869936184874289367562032411022879564462305652514417794277555080213370763279751394750441291150624607402895527464853966852580601190236389791278095880066300140846560182453339004578288714211557190957110889554512682511178009375108760140772776567208151060872204410641764309801009499247744142305314614563204306847500338793130389711854412794420993558570349938526525785264440343377024135045347895154474992123931757668580122041387950141072663517598314528621223306416718515538042655860803721882003600870004569315479144746588772012840458638132343162100540621426679628199118400125640581520901610249473922703009639376233043850079378620845697166722535263092344083215750742157377756653791146218973934173409313698813909948779805276718696438950435799820645991994580365985952731709853948670394573353490367714310829999776890097339541172000703631848229994039616626138753935397120239160242353346126176131235360215484625097343083892623730457285633030735336533929723734360492325110717770121380023753300989883004593296957432762974470554838165121603471336472560573834243819386886646363201275605737888486728616737503710110722998069424136863891161667721132591163720604160178204945803521206981989642214929842056367830670794517200781867864620213490421052485530544063939346206025006138538303115959632783807022184069580934086456120888770016860215590524930543056504074091897867922282855773182084608571534043142540898056717737998344900114532197794897928924132893442384421616696832146075586473063616043752129910202579735256625078554281844239610262156682302585588310826832267736381929801286335388682211236489178907575399697164599222773339099072862390719072656872034708806256966256997993157767357348346613478507582773796746131355257037863465330052133072208534825634172152824317416990666837433852137949703528758533780129435532951873691349380766148648456996015882553875207426068297671554117675969099667427934688912382677834315458198788112586923301254619105424275440290590796899447274666004555628052035787573722766147357439372237387693330355306585205798582794651729140372372152794239441552702672349988994693450778425512441822252788114649691537934931719206067797818573837703685110840563186480785489326422742689503010090745420690388117395918792329008701995219104315414377380224235987535914309051750909458718573148091029867346109176867866557911571203555627841205930319729556249395428531470844690433346672701044353064746450180350140406611474767303700014421864103073173829231499477258282175303799566610036058116879589847954052473037326201096091333760446866650055358433144804327538584031607001041119941022438901092565790323882024210629047541740788855862310109457544769134491078527923665042541831050119150464931256398712472324627377111918233820008559049267593810226776934469599619086422075795334413231976945288047329422996872049417909966035676657649250381636794182712089793761951762544078781610011615510782190057003122909927100738430888831332065413751449596268875053134991626453868515024361968469674297187458267667561262150692785869949881943036652737964658568850456511328210435769422409143774126219812781061902558172972804585021687589872550626664592480539752781201877539646695349502461491352873646795578342357752383607027121084140319028975994076549235683568341735063572180414118085695897540678090630096819735699654344216880784296392024608593928811072523446751015770381825283238987624007775325800232530121530365864429275943321875916967571543002401504991832651549309888987892251101950589749260241452194092243343105454651053734505067342319728756698199521093695384216991961346877332848248765513258571620886571625572712452135666140718953116399112461181691979256153092834031180023953398836461395871401131074793282149099370613052446800116860405159299004536238122422766719434488540797092498338890301486863782767903654126600108607331882556258471610988150328655827173459977558319745634811666130960393833414149985944842155697263376926629857358506215019034142491578029444693413137953712366139046783471861310239087409984479868666187591148197730364348295673761623295413694136743090348935286487363076566390734961061368330922212844999473788294240894203589209072022823133852175041087432240819578672273599590647848497707887927563559327924942446888968818503355235062363896979048393325899332255077661625917970836779406667089432049545589157507644364741118430054989400075793558819111235204668183368502547658984775158187681666833951672583869847491136164729247329992842688522891291546698126244170543047510864386434372458210318468107828908549637674227127456031377195272838682153168017090206797762427420082325721229136032546574856329997039532665384167931593843055802045874661048139459002869906496635893868248930723536162160739017396154444624394274101738686008805213628395905210735854519290676291193163753965204868075892628316313388541245953976987738122891235141411109185712225718224595988234428102660332223802296988771929149419393642995468689619295790887824529455406746899026850852602367040352028235654093679148983088801633928175162470592107735788046045918735943835257700559772980640863065869493427339083608115024665125640674929262570017430187098097447719312731078283779909472328883020017015491055125628469237962874753908096356253454212825256409524865107143987448748891093127192893934823835188112272645386751772117683448498183594069086286756619882063699880437468834114226948454355787053749617105382350566363602560185266179541256930399106808243661974165018729069906015039907154128417160655796142066973957312355290115520880489079286893297290508582067071681851957864507217169766237460868696053983344150516752562152531202065339791179773657492041881688987056685189027935412029581095964617469197394936388708020641633238381056755390914635608103247043989372865916222547043368901274574770392171722533280068632675910680213659846105569443022792022454628289665241310288251596139190055973982946298981814273192575194238247299621367889056161098568786643036939911297775389861237692278722416977960876350746269073038065679655441844629485118390479613893072118013814048203459017093378462704750286465800130087601552251534673817143226034630516167907788847015335673924812824423639672604828728681063948046941528057331647386294462213682554684507551985353742027445684290488738299705319093682404821111370908552699865249754740717118195077236919436227628676370495820231065571458523549137687405468878968099128208868045731351519621188113724692026687506322715115277666650774365473731988930889485309891682079837018599015415232639015731893694472515330416308290952584186030969096178882245189195737098366956660718812032716561945106242764019579347631179333908449655275188696983508494953254859349707106668550896731849483533492260233775525602356534935516394767882549439389500617022770172602935049574986260843744938668281638681515015445089571407117542974898610934353983119295482637811627311158910700514816405621761024666253471619460290882518306635400915846054469774862796570510807047337691174670033697038674651664919129648580971394725481416334303597855387502879432019784280434339084604964467145426973180410576819312425476351341757144793765012146919257534345142064619044016836079720875442683594782009070929299847164362693060587783351056291469594588585637045821243348146153302652759369034385919755094081603575827074807590673085294936471163564125600074372372674777704994550686138150502293689102460576944394752114801971681904646135250488063195624099884869170620296143086628996348346888924978639908088619924203663192174836244993713027834717933007090308276641294511801171990021375549638163895380685546717703228990078956297163498287671974496983018122904486005463746076972449953018177329427604798105741069241517878172597264937165611155259492532978267421765950345495816961991090618819257560770062761584639865057019034297391359487649574718647999373508871062004123810226321725059918053808966593834125534932347802472330356049594555464428284277674233273484795411858229739999445863346362981235519694183850277369966146726868841626693647824146459062556668555139762780332973282518335314141582306870180431026204944650167813209934201726020565816755931850151776520501827021302034359722855706341037568781516021482236112073773469336065198965194056530085850204890645320011928821597163104814323798532219733962994609960701457274770820012554473672750560387661149443660295045855566896375483671449069265325572258180025698866307373175282773305911522505901355486449446209956285675974779493533121720685650625000777904427823207506852817080055325548310940087461968027522342341765695892167585742467459034345895169972166525519312253068099882573321299195202745037753815759101850996984961183688410232153494273286771327674111370783972040111050491956635524820608537817541831908027468695924394397304593634469018338251870724786395453569262650937184910431903456252065615644669463435872504691650456445918966344882169156124558764887186673215079703361255576019069824583640920664275087214474624126071120354451864917849977790615167577409188792162907717874039200193116073583586321895479099608720878140444327986771625436219496958510258040459585747503913313335807507783054837814263017330140687661286542080276886212832920563721985427305550870808953772538898321931404569828969710527910502370990353605938549121710287974993765148732388243506086041003792996705447295411059527006572601247659585147651290441436230260388793129557920231420890181918758082512337081440987298986903909191504907840076151607170555274797008048359455823961857506404678898360692101824405397385673218643701458911022421146942332870911926425197401771819403750161599178441077814967213887200991450551840799150327795131898191753843764042960847045384197658221160334070624337380267978273845513397973311478715694420098306271047431482486440427603396837435760170883375561448274164724484898653586300274733036350491690248225426262076207875428559901052796755999355716641270885111566946169681626535845883651357641795315707880678069268410753025323297761261214472883676544323625247212042182608233455284783247731413138064003597442664784173858341599123472898635694945511872770856580832822943875410025041133349626644756893397482681500294140056389225883393356787236757648465647509356413663614160557429314458388463216465399159080644455408928925556738232063947868583916124523336752626501122356915140368734540179449550309116287488609508011494276154335517731534214227147521680733940820520029365399184888942457629328648633316196408920700983535459924911648540795054298356730778496310635195633091805786462266861319850709687744730294345380821129201115622712365355587931598712505699454098316470126521153726522817206942192232867599517930557492749765756305956868493633860453777318204073428503657032040970733550736304097657062331104143681507773830360764456527760226729995904279621046618672907475030004807111565510669218863156200540846060629527316284151181855084263263049398502346018366634923459115050910604614447502596287607306532977269195016102320868369420837834860395593605213178490263573762986431831375298331773685107700992876193533625985361634929100962282316570606687472421305434183797905307318562777546270724760534106669015612655822566418007524698268137263550763133068316678420450852237201010464821648026182961289390651021102757289007870087202039380555679865952770427156466746043323175230675339293082058657005270390940841193313416799760652853245264726152668585911244898281834729129214819046744909488113933121240441396434294697369750471999445163008849082383508838584306870696356463925085596840561470888297604694747980007187658262059247785706183027658554288317800072640620441373966915123572410004495351797386485557500941606079812484407902996795969879099763534042463691593552603597726019255779048198405388172923167853420338656820440532122823332775939376368875843743912039821196426509574179727828520890045273039565582051868213152019302823856108083084476246651422357925914190673203968207895364167617301906144682849900404804484086915286488600123328642442733762264789651197331757376298773859031500748121474841717384352536247306749899458835023043910528745539274399820467066001849305732902299253103276216816025167708895318793967615632235305731146448155566137029483703705619522098703168876478645227112985313152929801230595302436609148669260589003360250112816022942869834746966319766098706093684067110771869914822520803091814892608261804509399517316612242046137717045067919270108649102757790577010301355568723647830166952553817261511563492754497818832270203852279643892485524318815385072161339462331908825686160917972006395131561417312656930451100695696338853426610199223242771439568691024187363458771306926728782436973938233553175278657958264310460467164206727193634353677911434797151631287481280813364192415698906347703308557225446452086800102989665661131488496825973445504778284009511457569592671568157111594955772490473166055735774816673299324977583765786890625884886289248245505051353541124982074677117394351789847901195066008765677316755725137485894479314031593321438155679420905480080827582414520457984375401398949671072978022495346985293442557660193635250064520985217129143226074455844660516795727032898936015562230310587256399983720364706659525276446891394933656010499292614498924652290751987989823339316425963130643934432124997449027782761947531456156049266239308278433889397157368694010731967855977007657847546921101050053597259866052164695014182819180914613683979290968962236534586383560792582845969528970621637072077559392918328639392707837764081859610841078790348539017269002179756858931723561126190831607908056248483052004579949006225182337143932344361218059047024755455158246249689201475086502859900626632517728610018175835234471998968288971659073543757443183413364592081968390232468208085096223482845645649980295370287728795346938067744023946028165826777329202446722144164803529987678643578609335766106654238540110550264964575763829678798275033064171657361335039718743103279550185546487499377195157299302129298860231429124122759526867105601138556281946247025036556539294990230133764638506648799486623579737892758552178230965824901519558919255568263592350061348428340933088906940110073583868432715818061448416333891989483187981959974483629585547131408951544955805060588397169711581348131775448011227215260766125332045331926573831247412251719229279706110882139301389710847150221157208540273244754643089430170460556455704517639665350639206446674064370712890191196502970805332807926628182694721525224402520841443736650820389398900448702055216464252571170246379721137657582110783152727763005342620455577657329374852869365339536947613565636297789009037207377375435285695644941722520496583823629629555449924668842378763208945045472281436242302015012421309480622717414571651428485394731126930575824897170261750485572700072239355001099207107030262978066822501929079938696389137972632787875340098760999154404651541423080780571703902706917664525294498861304236889974333896072288568250902332802778181260007615424948247729034079253007980057911007466696465607797686434938295904195069569888137026878260258708179794277126025790441791882176785323355352531177540751551176929057253225865954504360457942886410760430618511637622959190352518750473316929901890065061999389835074011375706202244511117748454125763902697552519478182248586008510233961474888513752472620146349892159567176797303674514593501226907726189756904007486619041413957856513776390126187056025888226857325903810725365207056711078125259991901059457181417690031699513260029748476432731725359467972363599605578254108853957597021405669402382166328958123981802546258521960539085736531522587358199595396535892003534938536879976487550599826979954678453981569795216871792195533196340253125733346071052566459631487967212978707225229513329783332903609482075804871561969116068512841889290530028548513729721209815871097139091339430952540299836345426683725600395041108471861585927256426790631578884502053192929594119631845818779949548780331819472551762486913377315071243789688540853564568053253549094419921473102672643688861678550288810783913928839715108600026695579169355774087944820546762354404559491271193391428660391575382544992342138285939415055246651728192223608110899975352059916960202294849234334325402508960771580861397128306824315029952150642330681380126966994935635222663434187364570700310839854690052107827359355113691195555004874633548332349255058834621751951101268939845153659594084634251019043643271270285428193944081906365958580650829095682681643471139799769219870919084669480595768002244123979038748207039588755749401999845630164828393641108688547945515085482735593738383720387533467008397575612337319058114152321891561216886721456926919797499473694117299734277524389087935607395796031950895110460186258982386192308277485558357465874228318327168745827128710382013327154232197977001303243606395627944470652528945154321003677554817462233895073909292841053169000441610062051104977648986509448974701616797810283973841666073738592895030556939520757555428453978235893771788636193568320336401224600203591673736474932424022062177890704680020295109810836559501013433429193568387290158878728398330139770339534208445184711653475764757548489453561990930059406850340335157224854860939046641731759403950591524734170565010056504997133837198331554055732382992053047725408447194777631585192587896757816556320922823054308738805527877621192355463590349166487621128202668898839972061907402387548589411917206102989766347229609098204326661533078779136998943660812850220880301739902610638937067196376565695850631883729094833602781836908755600712589867094436027516426092239500279907539156413774052405905890570166408463113871312454674011234607478043027482953744390855691470211783826106269703954517940782968824253817218260241426781278052939110656371968261244108549638326719593215879670793047011406885266590590243276896223780248858727396680049572217181057749709540935647094123814092325767179435622453167208014461434176732240633161360520343762658333722474284793464241940054985078597078681006769195280935423455780299349276811605567600716322523489863868257794132031530746136383876708626991987336890174977395579046812138431716626914274473923652581561897296667986509562860882609274977974708453215288042647607793647524331358351588728287225046679875671159139142948035175491846135994835923957569918817435295066138060909766508461552189565228844238803642132667262750301164752164185439378889014505608560705273250866772691393146831962246034550080424807580807085217896536292397929298733652188491213997472136162085442966867547590080984757269735889860142169636255649674021670929549777300227272653272204905039606756656543025664464951412832107020494894689701498542005333347119792770564931360649569685072321480499650612035846635866405079871902010070676431792572935429496553029663015985987664566853150680515055010330641219472470245994028397459799837504322259855392367958305221791905264357207783212658823800250305745934881975871366248004600155989768581361671875894154930993099277049129027856618072319960238354916040597133791800738020083787630447580551723463649777658484330353345693959555665670416010099904738447150135105693080286150666383650047915930372941714881805373136873389566894509484060854633762279085439966062283021911629834147527429400717799873575882141879627260899560599031166746616136798136879460295560297674568807419456234363168450077220289432902476137120687926466924943326724467287476618710042607175454167781376544756255269908435874272538073557682185955494356686493426633473478371713725477634288317662895048727409677764283346362387417794241298341777264826354314903892527784943147210073221803618139147807187062682756953993121118192202390575504832315641108130599954495584072065779422130274053509945943244565086828563661967180019352752138684359722657970687826387056642566182958807213770203357333726453275855668464339429399774908349577384101495164405605708476054959350375352738196593839072556023937486735306875542892536541228663295452756023410970893987612094633025644724762786069450897607843811466952170895756699803372840237118232019983352352216762912615150384683904188411840866490047039626432121854365648973116057103326580706387640937192385330903007668202904775863597007175791608768264333101381105933676685154476509932687268517989842094671729512981172109787293337892080778636645626453412944195559372178069361381349239217406693300414786643015801113697536144908474240677994062985322242660943169797236465912581748783731510223860866431992459753822334593232050386446686474441048419201729032517156953858487004289385849211582134954148741850495958521957062810517831994196739648892807328296000396885808092976473489871776872018991911668498721331993618432399455904799953968945875576474472560705775758711795793028639211042306488856341864908668912437420897296606568806137607793827053101840691931860932002030665242636732631828710233735340906102143235219574412291873030709460497330331026671518824386867429847440177198598097401528155718528149535772056604180595202229291453261805280527603167374806060246574928225799059302724686816916988750631800356113039985511815264620816935505348403584975805823117788514794550003932295655458091855872239079665636219767482281363727830413322822689848551753594143916163607877301513818360153191808982480378418260039151209414006892835749177862924692053202314260053092401763227588146618528170769718550615793737860008997686230314249927820293931040323045095172950441955852957347490880666197667572721561799241909537762430431112145271603865111730190293933670853716810545641487711700670407997674908225532649478678453826772253070060309281199363150312007042024424351662236472935637634078872149469994052421058948353448973884433874401511767447663410838209399688802674749650643528918043275010857139836183586539118934788205721545091886559120067250149353960842015103220025057256078866419742421374447642321180050756284507559374548637230499047275896517509035487830024638259812231594880389543476725444823895832091701745089197443212266958052369522231468783271483917346600573120479781923104047131821998937300275572861553624901074184688379970828208717050509527305692984488741978075415156297650963257067999638384429468474294470578416541661814196607393718605761658273686517796072955873258437684885168559286768298815674170404486079731391892034177256046280121434079311796231772848321738828340610625358517037204570772733687070234789667289295926901611235673008839277681008029577772193569947259568628554020177409774926972017453515090864368772026589070202350391958830529876417907045862684050553437090887993288956450682865376170395977049992691927225115780873490112250594975483879204548211556008986727842943224501455451997330884464170287394316637747674585852057406602140036366185540373818278359721309313824347285914933240908933526702133797683345777093443762296491910684933735752374256879151956432173720695686858652780726841563609312025181609541807864711621120812156922394987171505448660252547461390506705068225396260403805022111766562990309400067094934150465778680403119837953086220654567086939933303541018280570079828139928044403239785530714319539549582465369805346973676071575496577501605356341542574947099082892649128297383461304388444953337453526000836166891346426963888516635618305674482484020004698533369574409359185507079213283090855946971300220271821056691954035634844178371389279522871787311380292520423870500672266331023912329521842475321778805982335644706480676467543882149437394567717099045909806428191365424566491724191688643473357306967376179568724918346947546025365878163923767132245526794475157320968209164974590709479559529075129873949982213231066923584586861277628390456371124696302633272657592385901601304423827692043178728732174607136388590172161093224590435594607976104434674707798468186696655254641617186400304977494311048145182605531132139999248819275958385810226763445276993006903021516535132551735549128423510379769552893610946667368607968425335238343757759478919674055142246213094683845916951506507061810461681748971270136448185582272276450985349075815299400239358547353364704907984328256885582226143230525556618079325184149742928007474897167275501507430886985405837427829685038257649844628335916688838559311933346665747871994048178193391106493079328918294231663004525282127589864802232658598248790646114336280032319751110001379640246198121859411186503054150199647271537778160528104606309848962621802226026310018660404066498780482407960374395420523355566437895556433340272209453950787373301424235458147116454549055141357829850204512622638654830947100958382157856180962448353138226663166914849195589887551634561523239737020692347957586704517706699288694005007144883668338145723863097500636286550331985502966728618070705526466389892698411732267942103777703242829687798460951883138792906214727448330637967909977119672631512631411722333316574783604798877468541568589118326506063354457066403184086707692162913450287453972805910175855822798979575356294671341712006625803406679202819420720089876798562916360961204574866432364841127597836562288940948045518426731792147818743675557069600030657283616813391306099129587321301243369549981107462565366297397682994004619900582188464150619356763632129950560794700661847957988484022519071416139231907357601764679851522748645433370089508962185832751189414499237180030740404575989598692427597866659425735804381806914594961523779073452900611835956825491359439143943442196025712482841075793497111661016927659904380880949660737982112552323165084459131983991617505871237518785278014448170505417117768179076376302947778279190743401482687871239660918610671545236469855007362178443066337177905010140621338674782963040601506070641813397070316504252310815938980523315008433751151834477373103212633402467533015621200286464060172656221657682309622858657708263964595791974726297505625266942901925422657190264507297441999368916550380871383416729046121498812495476279746039154623907549112510042904584783363508717190128122496214068218535621123612763858167292114264049344065111990132955621116766442307967162339550363960194452280853228738281354512048314173954018547016292307526444557853206724090466591770502905645793765229387461118233154659335255088889272882993976273702640905505629471057281081988633514219733719021102153204415324010815374752798632582975591091392363715305614858672595836430697648699237234988699340717213321936312421698033885277255040252345802442860047212922595276682709183141508804294224992546190671378728760321324896511795295261049151224201335131409569407562200248085156596926492812149375339502615313737755104670766487453712639993770281705405088055503289384871677742485702168764418525750498578799885963535685349054525131316671025348109976495996790637591432571320754508788962516484128384487075672614237134396346338198586366512371068498745340053264861243640394210474643467246547545578265350327234415690929938344413183121944856430287914587379594201353489644074556079634790767712099775055053784143923810073616296446268299358963404462449096072521325509255848681233831776808890874275271177718858426492624845839517491966319571755529491786095310528913929806156325645252409941658452635719832955542243617198946558633491633722561646530259299006645227022167900632098261863226455772206175859363162168576778387240820639495795070513129558261203951661690681189514822508131224386036113850860918867712108624328386388216114065916831265013409734784734044974426760211143131368182006990463731908642914285409861180473742648569772767606286344576400748643664795745628664580952380498165365949371269144156613172440643495470595326857594755941035186847691355536299340968767731504173804446698937133503301444640009734844219893506997866537146460680087016531027727898562408337298794723848420408549100023992051857307914039871498218702006032124180996773522581379357224202168443979669239690629672845331435792398603517569756005408021448399104363625190701859608931803596856198157600469284826580922736072485793318201047661924921243496023113732317898613647089450235465231234362105644753608680953504689462480315937477700843371614009962553084455066029049966619535651311341226013358497967151421785458423307456652351663365783538042808274816567936028962799621768218661517000005026639719823132127671228163285855042018067272339317294662522053171406561588238117197354373171816279127528938508721583347154401315009051753838889367025802028973921115127144026810218723948216631308926699831329411917367467240651669489756111808710767769501661539834072016964529116703152587467782324968511265909881973499903534670517347487443758376320853783906397583052616595034522954576645134325163309350167328400923580660699259997060986871201134557767508489327972083089793013353119082917074712287522422302449671885720159802227992330536332282207409513394931894193224320586268454895565041732960456539744783238897229217023733159443100130471214330047760766374891122097930937018035510178805135852269329228728824229086844608675672195013576266820082983093179991369767415984034981963437632345887461297097355676519054383289619009029395917367540525054996969208582043982488904135668562558085499275019017945148277761557852976740473397204448380976770314667471197183122768234114421377754023162743186438187905994036518101603674383293794488193669198712549579856850094173134593758867909434781291126304562831959331549718064099447798938262135177725435008802101888909208785141164913848825568323310287938309147558995924158206070465810165622514626856240403851310194308443711937542211861103426714333769356515827930529098983312582560953867034121479716445072762112029462308303343282347198226294599673542599186245334194395223664612705045116613952098748912846905456462350921321266632698019682924692099697078295397055438187981832309933178685950826098816738248864860797720602147562194247537887517410892170591651536131044571294665816581090684065202774258435813181423245221844441954315934211303087821281939169574254581719367158401612379511101533923059901916527974572117159320907417160309091996731992858450539596623291399556099901420245096447925823700158986290157712091960368772586420846963904509671373751251746015122519373228912294452967286633327063043466069955691136716242376596557842855943733767629176834756259269424937462312151904450760427418298946722280478619431245627195088307589546894020983024857510515656992231455946873424805977458492335371726278301840672376977032950473575119796327440807292872767712802740819375926949657090341835917321209138088648365135016758110139827977441096936347537603011124070641200931668518696371794912390950801838260452603485961917876682992483716002734158594311743086227614982096899118745027230884159360928468844292337000479830279424511545667862714703937394418645354055394856791442951979466133924343167737241170792816952793384619591788352592598612935445623769854208570764004705401284585547625146370308489285993026585444097019823864072107707037856615597543691532848980557318875839686571580123407746401244068032307971744428995309667814969228225415756909207728654370321120110801141474160591290175190119573186104190507391397078255790417583880491697276386231940825545065222299440008228408611738957397658280354119158141518619435930264450167066685571825792949746678824614987029138521589526611835159216116661814145189337240121350683567985983105041778877010595316942466756719398909360907644494001584766588634006941741008166689656888511825343654417563682603840525068794287493770399316438292064354427593429449389833979705602970279393480368504398208529077019730279693699897833469474105520684991721017412064252439281580861532278504340486068809362939751009198053776081087704895665806071612619764083147271559435569845897865997527614135931384909117847153214308806905284273507241912431847401269834244368079757174547857095746414380459255330936382176414946885053396423462135883867189967883749665555668998294541271197542120006912427999269592408073104512239054596595065205637118681877021466604710959488228045547618571014799762322914656740464469653545024423752528156484814620620151563150950908278594439892348248407002920096523019789953402425600676677920853661502674780094515996250138177878362997015643807975581738985909130793699473987480136885066325531619846937765161863014160923706947597771501414860822601028189701296153796808243238956322428196847238698253235432789418343775007288476011299678572065273705133709285348792463683642447061076230276569845695265026868258931309634484228486412621460370442931938164292632521464662133412068931117342874442973854848428358281076936618593815803588634465611947308945877302905000163895225224920591413370382798910281248365580499009464309715456472954498184570390444873650283455687285527036055617816913529193887200942988462865922440368256433701657047566942389390393304548980542721714433066909637654462169227622074021227794065314776181427411820841857780450827773743777318709075714096445583588054583222517195519641980659306653823163039552815335986883598746242455349794707759899526170942210162747522651626493532389338157893987498950498884304282930547325603471223850981065080454062617043410645473856486790859225997938384181611938877946211621149023850419386691553908393695446866270132859793971631251744143659343107220986683581828795214923661179144017316866441772880587125283280082404638672802412561258678546102014429705068057622984045489653965195599697736711025587730720300841675749271247751623438897003292481724291371293221199395850763519864957482961359696154166527514767420495999653680809091319965188040814713491329080873637909420889894883872785370247628571942964227407748393590657582516253932432124680868936112606143205225922761453397855243851913374813313537950992423271206011124877843310706572721356096344136327011484377325548920744868442254087018466674638775789432579623874422888321701433634480002879205445851655759677922632180864504701168860391390295031426213631033373258246171240879006045880830646763064863762938025252652251744560205674533970862563650699314940742327798606910347530970594597560055746307006644701068789178322218296207819748594625009793935493234856588615220220549022242055455359787456592212859693516700851761918717860304337271410791684985228898238271856259443811762439079630292657743897472608724475471570369742868755578681587240939170927793749241985474391464483714702977630318717017546018660266116961480542767520485505107581996265049931562105201998648156560858709789809337820099076590853006295711177622764462482564688236009246504560987170156630764262732054802718907725983361342123371492841084674419452852551239640555456193474968640755181330430328517309963898163646460718098518524366801300660082337399324126455627503499323592232986534290583086392766983160502419215304300035887951930360205580841931089050476934494437201706530085447589476323626954694914410627101383054815362869493888183010235920088842848246006828473685449763413048821922179474878543237224665409795313238676142087406082240382633591373914208214585182928840552846613749375014468155686688886534227758218760656814963473212440551018663232941459462179289661377187138022028619063903267529601266140000317828243664247240567589231907557907391223068396426003643265752594746241552657112699202064200606143644145779997448833433457602965528595121681822780331267710855182070193761725107007001941026846120571371961576796102455429230830823545408224774346333543206390206262493643772897652341502185516181540895898097088041791296241445470049274763937724376160642292599691716174471115829001077841381593110921566227827196439795944913171858748999732602972823185359275952888504942971298466346481841586343183737161097003723650728187108789679336181350639119724668963581150685166062558550273429188947121949062279562476031583634852576527971924800182612099316756301926198426227400448351903665766942775930858361960582229697486042448921752939668678325984156755943451357628614457546334466175219516405856526366053185126488685709648165533823847306446579846827370764501431570512934245212110946707257377677303530357146210608815182797064524667959793348709951728467732252015724068792176578171645943574239919589786749445731230211751662832174891746219515862932808680579793502805732959686947583761466041893098115298677655888005466276171470704463362601941965935427385116589365640815600972229639696331477377752098576862849833734706150341327987177649222537514407212171408775655024130263157894967615746372972005360058221577967557964936121935323195770519558236001540678450422583340270025635205610525758600334390618320610302567128401957224378028791290189137969163140162118099177693254467837707314162708260905040267101075598947498250260838206684032412436211198876007518750464440176989007404036465337166305756207939419760872601654669778796548591500872659341549779374985201538078053421171202124573120607761404025366616581845927873199162755300209408895099939936655708537677028190021647223946339703097762298737815011505091133747480681057539423830373680537167955125182931743048913791390893517075073001094565593416684101004247091424799135781791653698690930992562987460402077520774181194713988390562871530676271298671127246258845014656163810047997287722962158002619598786047912050432110708796310862628872264806594617656650885538802627109165684921442724300738851795630700057339637879919146905236543463733462168878465187087399158891922592526005214585196523112094042272329124480720918435964472090581128032482379395768406990377107569529974249659616578184756425173105949974543558624769240849923191163703256258872980471437616453797195326443868934697350924013712295621510768342099473061220397757623205306204579663517275405469509083222758038491490271718361933067574381546220042597616160009823447134876701150574590091321213765028852474680610988355179996831310103245976911589549579510431092976615482682221930700880309369168910206438193374263564864371606155674451346673656675630134579178407412064039439258392347297615165965067149242747935655436270991384278721868498565568182230725089708911817788937198335869236601630179893154598481069708165993260307233622388950887701593539971955511196535302772332009009944656872111649913504280321753965841098654577693527228759351962865585877368384793358965313271092141020330123503829940600745833317019238656721503042480412459353685521075720650105061841322721811681560683545619399857950135854117139630852586313295366305803039321666132555898208157755595253551604841123673294374352730744374770537863653441716238010980394810297876824376757159506261685746862446252750022280803251907542810216515822714036998460448564770344557584867097636097495866859933490863319438909335476804391307195208941366958184114038764516131746416643357699359988728901980247015538153308337458197859456904106847975832808206865909176439914034871213679013295558905855317521182218218548832569072193101470820166494122435861921444922157632546833025692214240895595597626985422914448598176313461393080959962983459052840931159919959980303297074465235326093237688065191151198126772853357071200430216909958515772378720940647357839710910360854043831824108433534931661612773146402796637962878811934947284457553405811707784072948852479869913983523636695227990966963526314499866254692492451501794914327169947314157086271297744898510469642206251867048817275861451416633963134891310878137088734709843791506961289659680207509966943779360137837947633499186088519449578216604725734184472198100436312536901807236930999152151468666149598190981191191123748285507467710322669891654592261119956641796582966074018394048944338824481352283491444081566251884113814733808428716525716218556113713587003519216767072843154604067078732292732368886472496388841612022862634108462575273590825216955286784149467383918065572107817968567915192721956211964424022746489927296943996745108178357129925231235913998387821326868085437692534905985762858246290584295709717592298818822800823376787171802341467979276880648613745265066150676348069155480402633208369477286161318347037666984709054558624022311709349638641177164599876979811212338961810639484428358317951516522370691492509297993197167641620995087603556126373260608815122002737675669415649739511591879732221384151600995168719614508059075730511198525945773771959061131661613801637605671942632267968973246216319313634223121357666286652823790977188021219246575422479278118375400359902212922014121164566097475985416527791750935806556951023090213669861469706902171475390164744519439372075258184913393464393330670555445853387501127005106419477664889997068566945502139866649332146189552764492979708343865118414536665184952052389242325549256137689111239869602848507442090896464501096310220720742062267101110085935132314197162315579804182294128185823140277496715875333666121269296658999800473962964828727205962852337323666680481425314387215964496029470682409455456244800147394208611490774227300426762189737632464541435479152232633065196124402540025168120927455397814473566980900595927526776474422690779733226740787681136211850952590504955185659896125724377372682082956240810212174201776578453560261294634911836008899329209244002231978210463384086272366687021136679115256230825675726598508362903104412697114678293371307927540534425467996903472353201526890933176480937101116416624457966933750553570935079640587004609151963849404216319824741680403418986398262752337729142595463460759715406210181316279289096081968955204903702696846955309691146895488887823622641483077483591469147086150963633029707855479453905727644545768068881568107593105875076954402192703448443639076633677268184661955494404422399070631223691086332846674857357825062232397373706236707051401425680914153399664320036121100325449548564902304516026627183819896227843583911341518018702238577964242054241760951873596833542740185972417332244250881242653031154580544043621875587390987077494738299832307318338719469198150072658560060038105901664864549833782970158333918336321122970841736058571332980198328087132882953907223597702656748388408869073362726153834654699968406642584183476396699600392833218533300303891397953750038253102941499853625804866080045866100142202217581722738751710063984613756023566846422742275559118067894034244271439752978529059121681558262455382788009538647704455327502329783974620356221997752055376992918601805316843377379482201278869175663004149997491142826698535239510961529313482354159050445953650227825395138912447851882255710121537080442566790799521521894997031368386839294806174615677801471799250360180858907803958458403482142471767727468621974227658967365895013900754534607360095721131435741971120706352014083316277438651816121197300409971040267802446734318471813447770394695948622916275137429443600010310483475655255152148464940561838220948548146225887972923099764176393983286785393374972637221034200686997763770880246870407582558843520467726633039115518226220226655988576595865871707769908122550067428025766078081526378727391765550372810077543629609020601652054829788130489040626852474442018377456606311780819402634498958713613741108890662194717739637799660229854779369355130130708314125703412252351058357120925682546067390442118992344513690486587051794993448113959039593487259636889834564076748594200172507573152364886704395693190097948493237166754065919595030550462483203625345747152957349202810440137572305037652282119904767713847943642467670267191333606012227568327368459375757953253875273199823798005422075542029761026126617114976400532323593889596672247472546458840907565490238160415060180249597389731787052181334544908008423210036035781769691710471437114278559015848394722116850383885498374272909429797617715182826673429021989160045162917175091414852555384320096514209557689602792292666789708962971156008842280020495960818150665552700498059673444535460541229614753193705994602651248084176577158180958000714381609666059798492553585587439841313252161111996762738723723156019784901575728996268315850623844598677371539997576849407792235106945636587079206763176715070412176434598368424493601844831616409401250853805354937918768276526045847949964261648946346210836463962537655486923829744889339520589732610937924749608714127168531914081617382956352901211599987467988505999036090553492541612732634030668935493763652741841137394303382534421810181543192972826105571113512903694737645057526560093025402908113493980896595859605438522783321575719836128135874435020202448893305247488446840552120464866898806813159159415391311530621844150984566619251442258982968090852985846906460517842437084638146894312820838514868607457622670544835899434298564642864446946827401207109992587750771556060805808274284965294282955067570214335990942773160351725111480216777384960546468767135102857076292269614832484768902365738913989412322124923431738408191884092490090220255915309033771648134211009417799507876357679865934401044312559821867955909786813738352781933282237089696525498541021441955715645280323081455906234572729152272202620822648639454051366615707251383152600134488348471003610142532888321032205940084738008350364500259216044309034897688227327015521973462443866594778214600051807552209634659331389702689704243818094400520361323219259237986775473736092712160192357954519326977927443992455563816318768687710581060519010677532015787624228384118553266904585879088452663247683093053268884998455346147544791868061978031248763021611131884775883227279719120213941586319391249411504497744303757652989278399900018444093939600638316816606940196134015540774005504208105812007867825287179489342113595250385789616140603574697366675496226477886988020669908923543678618659118417231921164334110719168840587083446791549125122993029074273028943620018299775213469206014800193238432067229691540509732966820107812182425943851825743643771057335602945787936479791278320477182833618742954897800907913076367020534597369046132811207078943964434433370442267049318278510423046130841060501018237189720248613630831036609156343247496082373665537277529233208236830173341513075516251273249264019781619143966115518797542738045749287598309593135033872698760621616090437285382225433017913793444188235702009107288953033171028513196425347474013355092395813652672098708764168250725038881850487760958106706129574293255026530333729596105138810296559482576208334428839335025395223715433906788467956022074092452277811380528675151590651077015053402557758783050248269841225076530357963702341281275999562613541301091814467282678159237768673975004451341013996993215026666890151978332475567552419323259135434016598743944935899227979911215226183841111234972833064355615453372532485581629858642455598290066060469875513676653734375534702856460351334804050154062342019790769262116197893039419057232387737484455397891294366949268179884207761361936367082016396786390392935290666426558347071539494181694252879301666034758635206980034675052796499489458228637726509927344136458312853270548551429506837402845030301205274923549960907412420830280277696093779403624574387499268868567626373951225627882619268983569529121405747719738665339921329487276018002791793537091890928121038686719261100449252223423043226765800307048384323652514506091427485219337249518106491128677882036951243009588292636300560685146997736623728857216891123838343957175224763936500063721011495360775538425872124878188077255817474760560309838946628929305925253067229567571396957369739454709868790142398052341013182069519218939349775650612532283750930114746866150152250885682694285829688350046057567924534475962909931201078155976441039311467853183218008882709801104910357920759917100958555597590877923258681573849260422117245067037294696245603459885878859165127245225421204145939157915630136583012735846018920127034339072266646422001637774332005471231229133275659497194714914121187224178530418579201221320057108092137414628232364848365453968152212852285702911175049798443398606921126243821363400907032129330460438350642224374679619882639008650123545084275282001176983399192662102050714547267835328299450821189627761090011882288079657075938015862702930320621422302608788824266627552950716233976114744432288108368525370048694105609724766798186218350494742337490098328744536982423375229221988974505922370385017625297282493357788310250338540094728993502471474482083234300666114715638389684621574479310589836456776004881335008759010439168864442937297224372395941403399952870639551206000918495751243040108385914901909087393614935602885669166152189335053669429761767888892279843058770134936068439830652854733050106567367937500906286815135172509692292332272070885782162275190103872211860431342671591272250287769742937897340873540746256412143263728981860478464197540925285347358175286954661327294707487574409722805887440144249590006249111727352625823091433144010552346634998718671772680936583270000872370850972636734210076605146906203952188963346334081444526672072334198675866986767242230117073980517195246261765857597587846267996979233686583081938150251911324807119367472674604842571051887521020360891280828993819162496521984177404383787485761819426872639228801475880900929305298938210978887759114415259373283320907580303404946169704254307446170785951219880114395707131026904710555677452505084857169415265963210765075202056897900725440191907262070776785543870008987865116766272774528909848101544626245159917503362645798131583428145279928987058641571686621603387522060762246623629789206621163948879857501728164984411627145305721353605967785461268182429970826570650226631346693600011405366208470247423737298501049643957518184598162622768876409956416915639425981817293119071280638280153543025565826819467246498612081911650996193653289677511984461916886075585292259703761831262274728516794584264887002260991445446280002061651324142088212504657598007298864483625977218511180208045242193852974229359934805240842285789662790908120244129388456296337408219581886429705913832991992789706357937248257364109225737899244037919683379842190104343509034406884176131825593979808436367115835876082099559817374807262176578699402391332454597736199294412137255219932575333645544629454479799733216341533039863939289437790338154095524878110229372543304733809258293706038218381014006990712367688710171060517070298443347339319758959141923104407958453457075916399763122519303466254831511066199485921605628251588149056988937060301948040401986429638921624947122299125190589763659385593461441626431850942660375311717607266797135195641949422218696334193613407893640768611431089735487984589647714175884816222108091748774091692054486783869331501898587945735767223764619835283522908521969861541452042782169891009602953837742496354112250861742206564858859249709952260546779170591349718988209956912853461296289400670620739504869358741403021536583756499708920362026249037549533494675251048257364388182431979858243433935829701755718586463387429188891344327709128968289846712175778018089407715333865871747556526428754953800301957868027683093881972243154455440986846220576322495363617738765794214706150526293859062974124376321616540978175828764174974872878512550083607657205373366043335293191332215808474052977931458434921325213235879188672551299265610748214647172010590761853494132726513662284674535099167727763741620047230851112165738565828689289395208702043068238320412232749040849007671183317685623144166572752998168676095225209033797684253184864696040734280589323005489493362622254298472726383392113903803687532871642000688786348137551418316959207735486130536394049969935848868272778439861947845147438463819230272630576589432339560246979651569472382951031119505338386499963025454600817734221620128963300138277127430689863156654319781670188342438207794109381979842690043947076770409868597090484443716690814457868128534830454238443644871996656448380149574722413843683147039465972888043710421720763231795465015231429096429265584647290369937860823872967210318431170760561588289357486747525224534823743001154065553074502842912050242975425862721943165834572796679746760027998833330329624931803778818067696435132849432534691117256200408051772151219734463392281594157051895458932158293504202949386051207027977121477415566556751145631194944327490767705044425546052554656178459633867846441568326310493177585785294822661469099795305286410497800495782979663968602698801978858802546442693715839487411253676569611209396884659416805427826023388581224287949005969020237187382901999825322020672081226422403251092384235483004570496978222086216602563176862643528123775813199944095561063197045271732207722361674391366940929893697790526049707235712810906498674475570756469467642881480681283297728069358105801302730605257067266042132481120367811371607600884752058551245570553890710130057691246181408595132441619283350027004542446690713169242783042841431414640566505550074072298629736199840822191628888968693662081009411143158859287069929957795273306807322253596181643975928643517888295609527544107184979796932114497513045561648395815644082513428543702760042808402049825672317420723860727888359297273431693436720949132943024293313395836061476581752865240322238142615578024529132880471344884116258179863598458997748801707537615929802017391973700269129528088684484073547916691887772140790994539882314789431642527397242677107146725437580742233821917880411038603249475587126924234895570933778772951587645687134474865287598982533887061547421682485204529203909436571788337291321223500391800739806252823861149132502495387709658506832064534632359151439145546355501266313687648379828789244245597984864422635103388199455265797164371872945945765689805490426050237559334948707229580166851616763410187614928823221696819722586672752554853774331017520126846481835226048885727118048103802440092058922621547895006135427088513728868950523080451361568530126923090207756557565768840643866970243097714983121844111464183304337592682037301744686433188547027021046184672268775270549112777721243902748211973919925258037296035550291441063627844770466286599334847472807194834757637471008196274546584502389339935380885601695894461359332520488359357678790931680390928121247420308204471975614587029006829113946635296381023435906592459909607166144582789797016041453013671315963608939814686880259361534204996097127742247285012577894660525781540325571676460036342275410660135365408067027664269826298787729977506541982639163309935801534453807942297976923785487032759579510779296200921117246773243680738833015152362229229398711348174630413532111547406267102236539181006655818616793254237688673966951932216227200306934377712268246493456447858106221066163947197420230112390573729760087379713768372899778125334031051848627594660485484508484533290173389915798084180006102594661946608709047262699696747930419312614236759847486232518213821017217856178685407222729101233685514738439673355321358767589378476389480514854264846342095702590504018072992568242787211717600987127678432784807986586423785747897270878285273701844143521795945803930690801553127070911408733943591502613999265026572600592687076336949691947849687660755757821009629902334594047739129492624590530674041865527873387700749819990880248210082606955263486102187551289926068806021882759009838784488324762873254851221578620711437310792693067503209485778252471565206704516826402991792332075289681229148783088834430674546909869649578350593771971513442683549222291999238017188859309293493945052000693776937043095686382123942568799316401235407362779632244806140759207197568258794262679463267500458520509804185510319028050839888124186302185976348027677763624160350726236350290504425560023918486377934157458592521690246055854695584049508323400640701319254169567304411054077703218384536397075960522976494958476904657416810938166991567600785559173407895103127321223991965692141541165007127625717150611949276601886137460654879699309155699982259320730080200807039852201967563334410413712116992684687312195964769917585804320402556500592402227468594427392348426462811806627781933130882291734735502053090716630817821090807522815644648204901811208433677347556352536481388683698216636643517021971494318686317675592373029200002120507754540425460518670305458384655525233123036988694710435894453698515738095635513789470600608690351177968595748198589741023810606410183304100549028970210153602274206610212203390844320925709667802821113443823324200775206625095509575422397609830699709205567776186793629650543778080041152770457032363237771208676055478506593795313871217770889634068914081172461279775649311284138748926093452032211829090558572325855859636007065474531883204381948004200437495990125927296497989656801384890900310831709151401055129681314315773734316574187291836960201280337473750082314164358314278804732846994229305500598128063077331281684307762700293700733066602427790160298070760382403555335282859892810436150243757979285402281063851388441719213729518091101505598378314172859349367204219525673465416979935019185742656840344165168560360088915492393380886011207765489189485331488648949132095551636724433577445017489634181968436842570786542376485207730840087551590992129342955885777527125498932425787575989400219407500513911310794211105442471305620037362349710554373759797637655285127726102041505497402362281096195405752123057773664068459218304985233327685551267629730176622378831874354631173102033342425306080244540324858965120829334456733534573403007589063248173456997984588289609661034129594835180912819167327243244098572339803346445512077221883049088022551005799167363587912659063855234334018935313254687380997033017680472684829843748309779375300592230219444656270275632942345496179069361102201678632367242578401979903567965420822805447488247041005729238723149376922250454514095173327491174102686891759436965823769344144669789706407848751643005363886613637740074643265746952091668765566304849873905465483328985287625227510764594899454174908357499776047795441565842895367879874901817471231221150221210254244412782975735036340893074068981247327599668883895896818475472350732693145135930894940114144546140941568520670634911673014531423127432678743236599819476582885924366648710426914976576778324000298896629942915477493669976931196262158596276015642551869998317513841029784852679426807856693992386678508120731534386164192317523676465037167727493557291124539881045551301243992045404343556416109912284308613957368570068115695495352398902384063132342799963397181516647375508688524494083479391505692802956417341003253875545768888556292454195408996562820226919687319621152668587378144017859588304718794381293374983986029366367245218285337307069060310332532539479032178547413204693026834599091675680397793904326150370328264244111035391888321325839501429037260092400415474163231352789525555901080674291479772247606910744542584194691792179613006124385015247094851182499872705834115635484986033664378114044520493887989075050988583828738943368787187417334183563945387186107532010523302429853602391666226282189985544840989066739092410446983242750151279077231665050221943190349829447992971524387084932589272727027472275771571846649253818051553697531645419992042692005359378700476472371379787691590896662645230704603381682158391907995072684108196750941115646840554148275785170850161603832422199707806583975097053042775428341175677258519074671238949028452217702846064257789599272401889243737590744041437236313917769968616775512433012800767760942899985653776432690590206550834672841437537694655341770987575284519573799707925089234748128336268564795222518855768999128911559183942785371919532202651507894508284008645484569189677735978936348661137688088394940300720842356129178833205527491657522307647482577877261813258365802841566828841745332400414155232272406522976740885028205545718101177038255550641413712647929118730451517870315993348476120986956920272712673711391158919017384391265517602527265142004383560479740017081806655011502687086377259287286598747557339650917375430081833751881325386887124497146532763462538354200543799418318720608197609173114342938039160939186671735442088775754792238809644924951176853294534664483724449717772445180187285274348443772687246490281007545748107551752141102858984141704195090505556944331232550143962907169056655256291758485034212985079591374833200831766458995383011895998714870602517048657716440705777460832001240043820234431976470073049132525855911098811326479517626929352136025064593894186365551655205123014867358683815785015768111072385749542483340347486297325530450349444222716034987113391978929119058337483426324799481282644952209727301489682218353276150144079738832024437139383593117542296951611033898493445402456218901933368248812516321694126105043499219154195535552122398258600945565802809229373735781493499722334148092959729654440831439830860143570731316064822937285670096335883028663048138436749135194903911059313347045454371835009725405475173744511195177679523689991431307867945826580384644244659778813869304373349450064625818939851285461150526722797462528200341296960659691993658375443913358378785311793589894003427908308333845125755289969670000290281741289549363668665169831977329133564304126178186824141061483210970196125943612246915979389543083697770216299638719791250669143632094387716494167594612567677240466274251526241714272100628195820770212984861526767375921239807824309735383301047340391537252588757173580287206087250455025422476938929716821945139822317072596440342054429430246942228375013712604121221162709329760776204137051389408973570232957351740356583809638748489974083718910828521634792640564398640566367928785932226764646518311819634899796399136979975432231600258961365925167927592218536199577811422926082718448583362470766080117469685512671505405139414374196368936869141504702934815540324815860745601838554976052308481168257670694217997337674797872919861496316570577684753103187805671681739409254923224621384158503864306001507279691246156899299318635793261035875858299103112812952321453430106254250410432755225309272441150843585727183878959840899511975025820210612683381579015708584030862241929980265274353748108709974407789736220090299993234352461399737295956074267000956017816072140022445131532370521616344355697822595093902098954245791901038116695512591167125418230452158327447267036824118998758404149265001804409380395424850044164869781040356322074610614108015133764624744603868667912766350964617591156732089625948205891569004565542738925321555912436349470987991589938372100029160812012862901177938707519403342777221150361874981946032803768232652688266779484836111739052862505158421219074164653062919483243215650766461817090489504091734396553405611766263752616467395004540764369629170187299205798622170694758790055926357475804825677500558023766683063536051390914396868752667107019075947986494723487520477869551182521882983745384874935494560143880952193323038509959365481640827610161375577471425705137801248809774728403218693683662630209098190546925239923884786872320450064315799478063360494871338620788079271364924009126927946302602998888924050245741650070415242364564305257817343822371717342237769907202786614922685781843897218043656148585874689293983326227407777740586511819197275062254196706479099067357569783883953677544396135859566235250381307438083200660379414038993627610366399291545626074671064988695381063348562141759057760213604208967884765772623290192029332180312740042896513564072577703026919374239185909270750813600691554080082897142283794419843073592365178137812783529650882844139928721558208102441624158605777488659269438744183274795865630803445027960230085505249122465400164450518805877612168756588485598900953915189671942023184782533053384586950739615683902229121915695860258596775707113139828793289238313474757325490686843135987177555998794659657318972049486770338273117913157506562113322164436546116981847149912674957210626900369935148408265506942709427719322257456340803485403273935718869618564979070780085738471127898484485062074825898640059855563215477130901434288622503142764493588808498015352152398957381075594674465262571560601160554807303265440652765087224284138617887732094016044962923006590898236017736219799372026800436695580708791430099673858944697426957117338016957980849991951540012154584932540651602437183784894709974988174940488551589020163334797068321253491420790040652687693939185670763761219394011465654249583796077973213396148691726048943875138522982288197637239456907082570703013624430335098554714175593619452251092535207565248681437890514345727728464868501320187231174216092077028138293513088751449199013875966572488894832336302627049736232756369542929895578145270980834442119501248199647647269498285602877385083116785350568907168700414831165865989175919915027121938319571957337139530362587346638252097602194910137740610750778632237744671033816828177373537435792117762727176622735789537456368940299261822772223332989818094622562398181286982461873070845261386938906103311315018861224402153204949572501152443507044315438970551045488344030040099545505840185440649160522366840923889847897932506955182737194018210645728968365198912245882221217856510474069436585124261150985945513107045975557290133396401772003558984111840581740630511710218676614028497573814641845614504506782890331847288244087131248556753881615392873368017681710124959322147818505868406398659653267371023700518141574433834948453681432573746389496575842089603169198245644161443315531952522654335569439268107090881965704803517178411832856271568873323234703191633291429735780759860631097187472384531849098484163587591025489894754659832123811384742099641022033031521029478170007519785264257875829739902023366490678557745124519158955472525170845278836984481504490050752632259830184138764075265618931186647447096887106982262147588939030149687769036247081787752013485644637696709777199017850432600814150396901112749263939009801441587440665447399192642794741464182835911107256403562902258164977832937982282772265342082836810124193975706236019304288346059093155234094519456411517861864482573754647830859075230731763605325581311734023086239160754961413333105632244034424737862808106066706893702031901039955027883380776014975089127249958259519969774575411054329701044906929458613006899666884852490326963335855159886648519529383751719979169802670412723783821658315897877594605418242576694567724755887046225172520199107958713994068029364811788026054428211469844334444649125572533673322846212694692533471218274328351872261358896224549475064490781979322636842040701508846975274082130915242533586758356324437543759492987419112793273246385338243153883870047289090244711188374740300964105178956969298052873298121344525813395634109528315319127438032432876444506058440670095532925622031242129278851613779151788122275831792458190599943872728805262684682129330617339274303282072462317260959658565674238789566206101478775798982432108749718062595855496636663869426087294826791310553069934933922771077139139674894443218444374725785643559786510678303771807227187783842468210558037479749635522576620082019355553734421116837412589595851143808793927592736870462382598947918442152592629467644971224631193513201077768432253317178877178016261453513788033823686591322156149014358180692558600552754629601409963579611945391066369207715836509641195907682233205935042016214218081531187783999366373834921700560217675209928860852968742261593176968078382521581374798693616986292777432343017594985631247181948249738119573241702129977382064419175919402123131516494570149037667748648071780902494651548349839452065198503029384733771704002374643372374531156674188208909635459135779829073504657861080705491989190027819531825850167695392476717336852093635586770593942462073361867723366875756290460435460449078198708157135843013543848817621436004757389784251391982148544092117856313497101594844728961442761488870529186785362476439531544805169368363481419322144851994242865084436273353434606649244541658050911683538382443991214170718274018189993601533214159309402662811419325547721628751703754252634613602587009195474409743963357421384877456228687914694904991102460126961569382357815661595257404894541077743945202801860043565640418022588250242322344551667724195359517173616350521493943342095987156854692208664895454252318687096911110742380957292039593698630357781693337151219040179801709972661723816699778566568318885213702198169908882317548419813450324211667251269434361225837729430774189598120862414776907232488118021211633980003407773914799467695070158717578699292423820815253709655123822945144155855375970760582301163243569977855304575731934468821621237938441685949451325701378247509128091682535621175052122137861040987094794787097153781186265646691762423260713993836546015992911901483282213776814252520368723912288233554750411968437436048880615802409546347205037351094450456770389755047738138500491324202187912209868178621078376823393469794590830925312639315305341714745456590814516829090659484151062594234964601747618486855718916350719527127658700090056965117240299092620144764136487048096422331373808335132091435735953184373889033713285834889030760180042327675787841833458016117240408537932733664724701434561104659845168749475686881883806011061760733362197090717251132896311867348572587773588310083180967061251097735882934997291306992510778554525538722497712635650184667226007514708579439321869989414492727591943788223022294884921403314089333224794034544771175170837321978123090330316075091358374819715360318573552797279879448012758328359347092746500014412848691014929844949753010906393913300870854471850056114453810037707921717213347703190611198135803302192955925665614446528249008118383507203032493827988916241866523316569011742923518285362065982444301131508234574508014477179642596704728458282968415055370792879195825964638228818186394126033415215464349859232241517145245490370390798498234343180919792666560327306472939242805573733656673615198964150873843339661176213894835002229662163883647656260952002877680268867864720774791781159800839977964111179283389071369034763345284152709111301082066558495540845908990220691001203343554661960814038746095311467457164671469892978162259133998403918497087081195858108174005395589106111703233982954320315253799711765982908341261970488516259029957123421209861758783599325497244955786742899099696709193609188917934539906316404868975600988266658916581022870236123812864988180245838065524720324395030931685433049086263831862218689160576173797532964502396887804433209788512419947395847694630764500850199721426908689727660548907349584547501915631066913562173313800912848870060906874316200794708156352950383034119042726997994746930383095100607868305962207194866390760066069534959767157584810721049246265707938958304164513156153792463062539683830166778752298942825325498006530119969222762455661940593855098042062358440787694110297847250492597887680800709043730244935814843110765628464102264786510127093609044646288019829080321959920948746000718126524973652957130214431252420479417930690165866245208954330894212704504926737135361170762329758128521160464477017877252884488110346121411049403454172219197099484107355626118678090846936299970715014680379550601887833619696296731014728509520241450988644946147857695003017209510901180226674572990767398081535065585964553062242323394598727545760320180201256788221259780264310677307681611531162811947242239751892554000163082587757920758910376256461397283036351354491427503824835801743202162674437423243961904549473500079781995438750675026662980455591698426736443194964357146969673564351219015979821587168170077324264824511924990606033964224593644540951077102341634047743897722466392422939844962478149735390714892868740110872304815144097248735297445415419119082043792906360700687876515025406657769373663055217934352634424306026377335820349765496753201415650489782351083914652076905353581104103197209211303921016509155683274968354459991208109534944578147640943433147766106852947850273766566187449431794349998912491705653132683554146980750680635577450695890074880548935245186296561427371885136792893199491763217408162559924091658278179527877425830621970482808339857022341699684554130350541680088071917811233800225775050360922964506102482374685566989776022124565145121555555822620604153194577717263144193757130330769141673653206165753791391570355742262761010335763816777318355150931785242901699143846452009194228551781101939667392012456881383462505551218604584695167558088148716306511895071773532617161249290747835856287431645718636076140964520824264385906275445533468259765523415587068491652586189199184385955950438242381042459278523616076664316788036754632875852190448573238270027419278875509225221520709036671212392531081933840802236154680435464114778427930498935156336512159228365962644270530464764933364753563381467035459554984092519386051925384606124556131620568651814269414624957138082267183360665458843760731896030816640071728770771704675695894853454996643372147005075602039596983648015814829383233819991445182549068492758464179063922904790326221598178967759366627331738726923250829977760917721697609024566707566561107086905643569955336771855576689302120169239828620331594806766458300574131305000872681079149069733234941964342989694228496524283611962420200181130780467938570528193304303477174125741816783769835319719785218194572272513080305810972689371492802497353476496079662301009945831929551743042902688192507777046830676235949931335068082191180283669971121579933356168405805159775222213678979208644233002987169599858965726916543571221477743926817330347228376184475041831939047443508544511604969394773261656226174469014982133821533716979837524867064190457792263934226093299829019806879247221589541716119276619946293325309465908492359386866867374774380177241804110285410014970252259144525151199894286196646362273237113273440226847926162416455738372118167292605063668436360905334303561965424341766760325195050973274801863829039069556067317764947803672894906964996884091143582978997315679538942889308837283363727500149583367195499616264623503469840929616956363280229796337575206020713883802713515448712548712990138840299542937040897529726403836031271412176128816586132634395119054049010200638747410305742536335009542034465796884829708173773689976625209377249560687833595993294535378282571300793553218016715531131853150892739565637203561945722331380765139864782861148983168038404265571592530867441443865286591298327580162409901598747294874413870913839972084086547523040287560080244898131031919319633422500751434721298486963485144005832978771408620597127049681854614625558893344686325236910566635968875306928767181834147052172274361624376696962161476233227094975813057157864389405350162750042186807936513311422243063896374556412919019575704291115426176135533972792470667786173981224850797999888220464977174715278494532240180049467307895898318748631930029850343887590971903335482660680302393730898534988494487672178165116825738438603877473404561716352330769085267449746671667208440098673135384671952993550412757317768136169881476772047733593999996171693307802129656282411082849644345147642415787822816304810524846648413433532088712835983840941388206720486755066337734406713342767054878952530643104655272294150102100746649882078746066269976566506148502689959303190401483520256686156868833610569862585479285589494339286550600480438829033183809602680931239004462217087528038643116128829158544659629496467942979429551694522148028100831774699756957948107445689992784698196670311322269156347938715343083280619259005998087754361647256845476639953715980012658124598156361916819798108730458820374229641156452084419799627037763251243563698938371872391412768638753240072602808491096337705483908476060056637585806361162329082024256289148184128095887568419562690437561134274327289459499730677111038120121310801378322891747710483758026074818657430267025025492536329357854790054610733344216842216861548112842494544453091635988569455366020392287270723040607832529318472074770123844189653137642375778787316149629853917912267243520870335509957094414504688952659637566739545803486223908781375464933198561093932354233359231709133613854775501207024835089602955202373018121428254563427304084573019660879179462010187760651648306677011858105413525612758989828385960948724628404860903433679847257627787650959270598550825538890538905751819065936905880374415786651700611958038975594402073833132488004540494911618750065898831553059644709532296728383200275326982476333466347311535002071699593761654683908032320106325716330831802882400204332549016836527362393040387597531649422227113603672266712374243608491597439351630071299249942650475923085732328207769625243367571350737645104803181263546966162113659411573372751995514315660227541189722559429599282322766140081924401324283947102729462660727135114331432075108655926837171596139357515377917651810830084094726368540565908830324012290471371208197501013910411861388675136174492634191731973543022675573667944235180657636343350416932196740493279242541689256598800492160248332175367062680372070601611977410558911593672932385437861661881777430072164250737678533588311467168529263367217338897805931771725184873868228425125957397687670413768319269898962274517544975828546695343149859531110126112035572274521223374356892937623529554026854089883949585584926256583786414041885236039599575039512858622387742138641213935818793396735976182326961631442246967863295682878409120638117084317226307607098543236347552231153812216959731536232258288955772669139588692446984096446855797651025441259529626918387630629525274610251903957294231478288657841876690938404051114267437717063775946356528441497896807637004232411273180413394043937136352559077920788751112759420805661502336795354283345874729796887525291593482951248495510203284941110334590665986913916453214431801492259108764131579740328719807361899650639125923243861793994391226011615861350138003340792213433449832598727993585053402474494315069803805921899840676033220257509979773476760088492612980780395998598103288292159595324440198260946239993811492111350160050893107760055164322969615339997242932724938901213983385567474958205108170898405648128254704086653230891131670122428060380316336543030072542768984635566236514033050029803667415932181568590525608380997872915320351047629124178723368096555128793015616086781281814699306544750491226405235005274445135249087970545164371775932859568131392048752684425224058445044410231533325830829551442837714232273012815276178493248916372781880243540105666727935302810667103190962408047934599857237272769582952227319898067586273624849462116859643959680253967888050181699062245320244434474567009038198079561447895929213558729282726592373787327803165316756094207930848584593909750430924877946646555559525640806159062452198986533766978445843627725967338023196570856735534236098350947469390271282795373634927115226469347109313471099727362523077916982235777800252819155044330282727750490789349378423126127085975840002157569225078490334184244820081188440877992997148108609242761058714583519202363028235929484023015604215838924872253352524378422334164415333875838223752402948635353776014167737032666056700252210903058105356234970122892331871002770185909061446740444004451187514980855226720272775310299718929434223617097633691402281071556549776213578343737703609397335499700957290818709959365323823428550901644312059843670836869938423116765709009116014296567848973331945872411258247209761896777435136514202881772924539251430658688988228888737633956827016136003070959513216552680637570601637855172775352022220763578582519953151750056187910533308395519510771540086127272039972475310776055682016666469985891748547622676039641887948001990029082341878177653809209654903136692283205746053352316853521096286666217810329747456495076043278762766502053435451873808832723917183526444015294444332512600631645353001659118757999939929159754022717376427834319054150519217210135546879288033648573914124803403425933261588442368543440273300373559103498768238463680099488065607467918786909282720286282917226145336108568526631074696173648900421981874089717623939216053119547594022905122250061946063249288483763112621401134437786219674587470359286033223178170382113588477489643055827659606099589743817122385770983689033387328281051177729849447359393564945367043456636571169318702864518706426040688616634910611794206249471262241267109916430926227126147320429220207594704287725666608833158699491715591377722941063131437284967012388947385790720230198760131819448589612913612953120422372798942095744727737637371547144316977258610508154628629192108164203084038456486146943478754683876823030313208783407909455781269984657718755136514763822084276510329102795108766111307764169335825079825429860148438592999213593129745431100243265280320334945645998816014839449045376288016641290049766745953874789006382605279012230918332322619227767197639237631703413633102034293234963485741360173155080320348534536617131949803831909716303618305954699982817517264574833826106198687811356595083368319677304975232054233475426750484647946139829974187075581593833221424074524631242719113022886961654279883570161106226537431951421828596780316897363690335896766797628011752837182264240662169582714926595511692781744988048869085866997828033282132670503909714671263591065777415978274480719565518738329232209119693200457102908464867733562842572703218587280893234319645408640874877399331989088520883050114256136554372520112824161138972817822022221798365012394251242795313359468924596253423733132238563880580582465706213575425150861083516094201456226342339452897330088172482443146278211422677347516720280201226093335209530634575819147908071530506314249927617689490275908349594507402064407006266167003526834424373607704399105476737661002032832172263589389601011193498728291987368731334537926768656988667265694562072505699970094562014234280352796313874421862977415647189688884014041170370717363490065522743703114670289058871931921755173402247151070470854103637123750004384693200835058967395430812321894427820394360177900841939164821174682964182288869135450602289076263938663039918473837559919954620697456075885399443779105170326987944093051040307697785310962053957374094261724503146615886766470373622873753873303142379380742429817824929080135050478036219536342095063837762678665355384454088037647089775885636879596246260355051177392558422973693513271364464458872467014136530912148836904147646598168892154712543782368998776021339213744221834490242860192246615507107176059637355188241814629912932691134622108284439918134458852559649885445766513782554255265061573920246290720621982703782438991307967665343574431026387614920162663386136990234526341434218761176354471699504259864026779142238696949951667894337884016180575955215278570560731974406880799527560220867144342626986115852797175327992998407951278500822147138677703239628956654755911851985381834165020232400269427311871133119472708629938888576074444118736915594487574841932651854413823700630382078825011070444811419657999093773285469120480275437842593179868372327995955026428978475579636134734619031720306720741203796195712213163176014731148346618875887501415479935510145136019904020419623274856673981727751024287381007860294202092197491464074758337740906409237457208418353393778920519073151041968733146853063053139736787974271139807397663252196362747267138794135467984581694039657274638673231385693248458743588791611337676866750753233885454837882300571494342491956032515737543319331621690896500391104684345824961774835120265438674045652451434824801724699216817482546459441095829866615530379903232292799666023929125414690283897288819848816332591167357274845868842620373533278609906688263746703694312269794317966660851208830306901756488788126909323050663481269961760744587778879244008724764075753505714338783190993999241316781558627155496248692606199553240747540063908359557602135498520451681460285185358422644522891683550884641674528689184610048608051566071122238970613765663894966576979870780261285350889041886092288471575375974062970289788823178594267490759342761403189570567039848936504220217301843892613929082728585811288791298879202687034642004578996773044397849617002514862618095297564124883122492740734433530411377503945021910064719166210295376497123576993879921825123993663018928573057062150002933072949566395551601636951152189697467015105836127565279754394797994137063217033518228513637717246127112773540457085462850529493027592353104274094854246242219248651411972485669466656771526527804500628774451434197306137349103236524446335040150393796460650449558214424100299685504772823720499815294180507700483268789491297841724725450027692515951980207256588466938194091617177090647005517018582510985643217930765032533405893408043266788333059066851481663317479926323396282060239997797528721851597151959036564691072767535063988344156073102012100365786809495758130791449789733184462370183292878250377849921388950665010759778400689677481576361764126060243280738860616771433198416834546112520762676437182263660001798644031666425479905314708729567533122911599901456914508329184254532966027111350967821172626985502906208742594819485353585699728865162137036271397174711718310353518556652379939888725220182650831925207249991110387890913487457780836414382967570945182009461861202643544122563382002731029662130615890236455861062704188985491553054385961106463005440773450284077350265864377184800509151862693216328811502100032659780782430180151172451186172016521586416023993208668197664639659955192425245616716246992360403821083434785364539083787828081598505782398996719637471136663833390200321406741044165059047068972849320785162906483022035480025726817698763359499639457767559635289536954136978342408049004479301928719682742659083170315204893790498367488920801268481525635743876862997977046147652827877528078559141340186548157005268451836568285814771811088253988479264706613161693640277623379659185651334017603580299845207901772637858636366586626976581804427820834512242653092552085952261563940330599393860735870797823296443192191463682757155048909402839031677746663950929237055940225393362204980946081145460490542004615827702875320240635404582281101891470083194261410267110697273524402055018605434906604576412847274874175386756603967270495878229686114996089085179015865233726380383643404561746911260876932648390467855051531205076128453402779359827191350571397613272911639241117104402794158526824232308227258901293506565886205741591237713496259007522867219995293951869877364528176652847453663796550695554941568707431254057589733641291645748511506331539598968633127145435223166026136939062682570038421007064605626385255872406990711833314185705824495030341742258775647503654422075682624765885171399006762820477720443033924866866981537895453335322743640562531400447500546287834114548678724223769254804087780345992191853001822176872869725465229849576604007183951013561419540049339894408036617070744484964294653636435946528923217515141672778310814923815518771595310476094244859125057334206386086023773794323461942914851093151310458597252400938105570502022033723547482701069396936758247529048356001576558557790623920513076410343558127415405337717505982983700285211101806770628508758260737899343504053087925673910530664196714845339877464023722064116634885514100043771059155434887828804261223258591226864435456731477536425551195438603866397081199638655316187097844338843230712777277426379866012690091898022038219825964925129020980688052346404389015572523289118942584396798247076535716863620875589344433500569840643420120176050329646399081856442660794588210572299563614759069341564241695953354631679242867065112058012771647017471383426910715738691645842028964786174958117403029704152054551826575153036084001562299020445691797130938478215892588595979865031323492317771369089588789788178976990673574614569818903275144851153627336451512662046372076256933874921429574855961428247860408904434774159384508194536997565193315800594161202686971846007892288565812799035466725537172618505489791659985790840094304572781773145071402903678709079957842243939871259655592439830537575902807478828899103277399620705966949467880349404198652338738428671453364941911503178110375565728819208663389573276384680032920780798140213215054873893441336749871379919879012227557476472157359278357555486733454233732138716519703047493721433061730141780411708974190985827373694364010227335595324946887604048013866556731335649172294347565458891198185336667726033198741290472053325798880466290725232701954106132754522429947753968062477775702412687017432817574299922745526787404270112314820205853292048445658520027293954492925632981408634748796787622546201033596715674967944346230582218624914263063938749612102288867636874541830564316111026932372453462917613428752408350932196797858950178189383970967047495331355501982302449545139294129732756562411742295006562234077555787497513517812642426828914621672093221734547502269948094018840975731058727969159202127729129554979893862409515587393829395761227869090264905088992992816808392050405983802758573954850578031000247830924493090653182852754185751688640341286727042738812303335162911530767046358490732096212854886818780318489523330993753465609821543173087758146985836472757092010848469149152485122123921196248923135313416082960998694581868058035202774675874158893371459580755530766378219249554822568682294197599314738330614283293588381791117792077295471929107499721538708090888133081831770395327815227418511618904936777042730612005331751023106298259420402488321924701829950962149856383973844825862411746001792770078337891864009193852874868111833579644849285316448348789376384594129059144480609343777401373315998552712540241017178079465836430808741057007745197623799293147291347980650313538998024276167717115023750368950383478935759533167456268100227685681037220610310458706177729299858631933234927971133927852345343774807696145386516073565006850095983643030848330026485123632004139283993045506142197498380675422691275809156636616518917492163047524687406114318543273067376181102496549220107176461803382618757963907639637819696880442098743537400126426795128454452351493110143297651610179162396968481940677666202539559070864798015317030197066000279370762520539486292126484882099153151318331075080477554102654382870641351588664255944006367389999491542945145015740355230590771742257736705563017102847563868641409773475882192416922829475108607697456189042169015035077340820964577540873756732815145072258054710965394561990202684513554544867111095460114816076603718941326963480203915896919807396491590592819246431699324321749160789554934404244718903913700568897215261882159800518154155901667181435681426744776660938679440512139339194046254255154578814785470121722481260109287828133593940441683762046439235276483887913074786033846175338148131898033878421786967094934389663973910497565484166885604047251615141230966467654122380358841073689931525368134812238144622813964656462650781047576677692210167935513975600238050315082147730524889388290159290866985496077387035923182709878201639129982073609164579533754001495241914402819571587651877812373085096605075059551760919063189332926490288620226691945444607410633976507297653340652373437028606574941747676304115320377870371022798480669610841919567220948484378600890205098497987973661326172792004802372540205613333898887549190052315722978218926098132630771103968793380718087950794772007753797143305903876373127174841808799348543278548235939227405134459109883282116783190277821886794287989358323697081389592661175936628213955461644751208975543021253269396804652397410213324673246449665748580909013648732841085365216047814590148742283331989995081611456087523137371167360692267758340807910540888820483485563771158060144654056220220640387789676149487665585176710047317005573042498451948074518394844859872345516560935788987271220065280383130440009844968942069650233283061358742129910000140399527837896234527082820267678218682498841621674672459599371375828407698736715002081786483348083559610998736799352439742381875845096664770617591071201850211243054343482078324469763739313303595698845207660478921925161446207764237638176513622212201815077343283027730526453934499931128487633962368393109523019773678975741212421840609690134264730973808468320046654329684521533073479345769369833115571879230729289424103175312976416865810272553415402414655605809276534822735979783983816620270936861782359461339170484252151086445957414685911954233897540922817492483295191986142179532631413278739843778919490686768513080771510678339072201493583448398255014493767241947393783595702514138576793638727763900734548044244823475272785644656752732997401616128556342751337262519331289735962685864245096925630173136026335081352365728521152118908488119612136084264787509856681096751295476583884263986038248512476585163939812918245514797303633498496260704380280199615828711562729828602195516583479255358903931693915927309149255376217226263596664067800547359950002371304051785257481640481225422891371815056700742572467708642587803042566200625332283557347153514606875932574527047685198945127433390316209474649205352462997764767398342660183366997403647709918437201806714904523643209417668786172316317421604229383312333314780552419613641195595755760346194229293273779938426917372277478408954433424759291576738199519894778301421005641055886828012863619053909235463777601062639505037202904998019433640220037622463030352359924808487599005035311055923813613368414725745390140809814678374881900300011013074031716975029729831053848731754040823691663012082527991644415278340437178733571199065080582392094019338020510688396105364608227930614772602237361155823205435657090425968723096507416158367337419060955021993539888443088984147649120376736770323026009919798958211747757701039050647530806838077485611197908569379128551311787287130707490701077703092091341464423595115434304195070334851707735074878677720103033392958487501124482864751571357863217464917493926632184517269576530681531095793616574400714505713297589611395533874051870208105236864835500532225236853868550183202852920537215341293768671112129470965620686637149064639149219529124629732942060488968044261936298709688264328842642824072770239666454360884198106493365726588920053009222089445526458676975051551748753993472894039122486775132254078522576644756668710804358798015136550114282462508576984207868621909937051372605396664729477090140595950524766445003196630034250509023524254154684035971237605883617638711406887413082442903864669056035019426669510398667982073099202226474859048701281958117548194208482777475255647602140707099753248244373530612534717506317074817793692670787727740989060952368683708451772608267455318500897687678352817603798206142839954077708864131555266388014954459670846507376191275150837600792311798730350334534677315992109994286384448219258907243583832861296640678450394723203486726880472628300764039865394559680575117233743130541691537441910691559881344329865154925193426197602916103158066835239712423726338003365018648837775479045542071699584706703521932396748862049407649228209413052584426694311244825999209929996184613947433274887482517201484940178521761717000252010694591291282119810888324110938290376830580114926539064581457778623202615214497610010282846549556959811368673951485067981255924683030881422138542068135885408894701387776581719258113578184025570546648298503585119918261876361378895633580579659576769049613261029187673914774651792428928066698753741569975988179332977956584263069775578713694530367679054502946076608343631155531705192707813527193237634845922349054572395022710709308141924700637260625337545636708681186295065398778899561942231373735899493544020420629941107896274145115347826586294120088427707683321098565920621820103745919100569331592305121019088899989089205759397565311637178923244155565536631661142632619752986717246255246445777736272705761421062779132169953804681718900783736580553721676685236099736272904771578223877698988732170442076305107442528971940097504577714018466153028137200761516365721519656046081296923550290011720075289835942425909955868641229319910180391742152586437405514648885063627857448440225750881388594714044993944390565467372893264570226647197741569957634451014900354922084855845332051092462777050767511786202340125097007183745150950063768310179378857701852388535265805103207727411213686564280116364316080749655054803825887611653085043279443051897236979592270715288864814246686179168790641250130555789104576406630601405675086864785900582716829333538395227931475400611944719911540871489908519214763617300045136007292800542043864817750202465580710541387956035167084235028614137421198630453998955735494494445360831938117129131762121245964290311158664358993588296170371576065016861969376337607911108454419838665898170434507301875560691741932767397048041931191856766179868964476573748163899742427091829452962850468977772275644398203742020372406213364623321064870909430425247007410913987190440552198110168378560009882608527198379922221366337662593332650585488607984938014490174886754423779139863744227294762608226367120427548413187370800132213898270252253277351455858571082290022389120538433431404024215371754097761345946314868483210183808277927712766808965907673220442056645043791693652624758785785064463328372240236058389178875672904748666192508530392124249758933288452486976878210040095481916540357401936898215766049275609351721177175553612562298015279219526044833039987943605492882518205385438364665412200745233593447559046612142545155015601878499493898630317657498689039206952386620146115252751630123084559294058812687544683577428773947731175872366551833372848623967913461400664188261931651544948636126477522534395511577875731404537350451039537166572720138878138362951969403947655518515065777104744606468455874602079848022310773633918952498669129047545548770007424929502747071729099333477830021739915295482764479388944080192940571013583767180010739524858579599237406220785398348061333158926831463359064134390282253035320155885374022450097491349131146227581103056542631960047392974801948042800218007089148430013182659516138007160636207804764296977980273269821597396391126445508301315543862340788360856790363925742601719215842097935083938556497011242728063915015582290566047688900838713444466948785539553121668763323673767914069567044121427251422490461376659805435769447136660092128183701893783967620943487034491865547564526105231135499401727713350599776124554146532496444864191518462147563133254198569572060026382806973297142400870895676735022371974076139960483318219845426312942367069592291752993059513237341884269365079400857180981292231851624609417439190700639161891159802554409296899898494225141618558933144684634190688660966265834149381941893056877389748403811516499008416593882989868038095783887230470220482884006337950706093911120368153857508816044719304395215636887271153245240634714390475280737375437293353537065650799573336818678505355363387759623104197730099474163927485416275001926582359517159023388976320591157426788319633086992204421625467599780147717919288112774013190393592553587130186845396377251578496146729420761419398102574011870270414208751427642031678145122569485664071843305594673957013280648871133789565615218656501707833976989136173765470002878114979340595320232801698293644064667652090154331566674267655447557019850569883132957651753399975101247796765022498495241137495218781585080160360470527479240565857791523403197265881882843610257045418166368535974602489401446502778965077548937032929344727490310435804379099666368631461942439321281260314284955809857315358174218681358285246844883805445284053500101129781465656709689917162314291832745897502829931265281546116743055821904355697030975051265676993342285505986916951335261450932891655960809567996680308990161627821025491559878076387725926612587180359249390563820104321243537666541717605784176508464401569942138972465967585639100562110420717188406941760965725908065717436406996453928225382172957776515535252293299534746280091356631781935841018489307634978421405461138939765532895005767671458072651152239782301246727289791526232128982318699723854168974720796841789069206288854730337146140603516456785285988865913867679185735997610706795423868705451925899157603281100202784176164367621594183557580305867488410573069333702761877873230972534323690619905257125150060330424462516892466158755725214039720640625347385969561181389854455057320848972676235677036317644123661373035077989190913232749555074619036608157057072425884854232605513776122424388407242353646538433347511693338895141646771054982108144790758855151089655751131222954826970083778803817677515991256077301988399158608436441343820615381663258377268078774538356083291509568885048146099054817822223905418196917551395284861483178487849970615774630926520392783914983419078622474474526005389193304490362987064731191481727463764477473344736473403945793334828709620206810056292934345016857420218988090752517938522237214432252027852802594940777623754232847253679696550853921138450595442087713336513159671632733717142976434093259595557707297986852165142528699031800530471785766109344041989010362830979885287937599808636546816657419591708591742238109125751584897498733881484470274208267518055413059373947489987572126086240223508529950380563592260991199501639061184747361008221804303339757661168108287314495485879635225246872326430522415285949357610820464505149614351474647885087196848160751310573772390086277904693010868358302807402150140333682518055788872920526716603380794642169347945640325471631364157040556504289156048763435582308675583253219676141329387392997766488956513512739103795739449859676661259347813230199363235925743508075873174794504544549769996560647090219619811284047437056774418561096348370823845071127981143826030997194977289226845589625008344253765329343997782847656058878482172488906412165731485234834818531404587934593207053868809591822851814319447458825756127204862143371700348723318259237465560547504121973902529841972666659949108077360811340908755469535365702557267462685126197994153652423662535821060793017116110665621607062845291674652336956691778567414783624546587423683894295607179418065086991851665824009816240462338800589297439337021187122707989972114318774845735786306728553259051671543049418812361253144022664704261580426058204918253081669009620203513040611174283223448112891739655615301408664254011011856224384217201074114478995232195649054311642706449707398283845068458066421291969309881567633220753362278275920175041965925186190347613872572077553213937501683640493010200789068023518240795833751822203180818918042431187556332037336764394543995266368034710731669390254676152195758438739101076696862722910166356144065904657725802353399640484743831421796855991424013034717239764329743915145904268539478030749333388867266640798090501827455546269203669943188904765634891906177887551277147482484751398139260537705934693080353297693622052945500009505996740265433700896743103707108402435314858746800656830438600133446572748081559677601633962255576748963040405623517033667160527972445199824095879795132021880266137325999003982636115027831081574638651425835430284210638795667208512814679470987589649719967022327922703478049302650791664560879999061488587562209751799038321938983783674649927791435964075981008440150649716696071429588144761480897032106670560809029296087830731278359285366903918724815127832892730400151536460652473224330910796567144406460338088637334302820086155984945854756629824438714036558577099998346595302273825930926512452957648828004812303168458589032332748609109121705670215813135749625909756468852172613914938940458282468994333053366474376713380544531547864435272491598362897514611880467100641476133746751380409942891378237347984421479329189764474294090413396026793885516121097218075353879521162104576390646212796300465197123046471548972264922464056730814050818337388754086966763168345356552278204666509512683136796376690338415181869154463674978636939334277594514417515337878335644354285962909585206979986669709961919095851853022980436597902876916036716699045779256355060432919086496192912620199308130126752714783482497576524672987709405980770752091413849093168181895270740551349329830865893252009896868765980904301261433947989081265934251704182557077265335521311989772354295845364079620499764012732095903276453151252305665911594448530104978220641030006178539552759926080980092076084786181043713023172258005019520900733951439770848340826420291291399619549694992162073416053775089871911935622288345506476637719765723960024239998974162676583532644221792932312564307925844535034864264274353259536109138623866881639361037721009613995568024197484921797932746614188983636960568127460864413000225894429953180744563895537370112638734567559876771392491244694648026667242092112867709324403437669502799390447067096679254029252536927787545066195783310041366050751258530578313523612619854671631715232838519157357182632382035633388512111325247771706022025074029263024157141531161356977220831674401836785092902874274482828286978895417905030591735646037175532797578467782280353505678459198168262354700500044395179666982187306743183523584179271806013823119929911206400656614806586507984282297736147388540660047957048657693188225390605054461001828419038522020244742725528613601592374874232351523169365260147556720953261946272550772397800705442073103069224681430811720125721863863946835598077274023190750019732627472217026315125807935199670219223383283081043005784661218706120654848070562625813471181490650959411981760782289741494735617724274130637615601285267851839214534108412029588721990603099101032608510161902515425147721503296679393097625439583086868804903733310013621975463384119148416906775726207089320889248123018846849571675037728712087542861404381181094263299319813876640878829013585185671942171821969438816175825643015531118754977762936245894476735032493679879230074663079789609248324131654687539259422462589840329994315804193997772072975395511421846727168824379205126354951615726269533262615118758652695356439314878732325341738135391037583802064197396229143410908681981645067070840202030081629570313796938408354537596854471195239898483500539420511260086331421799808503441063849454284129815391193819651944262876327446952989403954163276852224895742879781527808027048741902429679624514961616956841173813412210408855271601643008691419999323236703860963532014848287513262532451426528743753359001773760605894900818526377271363774967071564577467081173245404530354787066912183277746253460986039770123496230775690620091796906822509258048729135051585169297361744288664532929995874230658988303695898714441245795087791225418041743242319608799553463148821173798005734929641708464039564082558356756652390724370656200165366778154966098082078696074829642765817665658681972039477665768471651896478029843984847731641294887496495703961687250673231068470002225284622064564272753284203941796908669873915318889321202788085764836405352692389660041541171555441082716560124552590217248140438984411044775821513096330675667379833219491610947739710532394588188894356401482511827335168968061648854282760222889507140114008501853450173868894372052527974537400413331576612650675200060140086932281499272166438306315669185924827311943320339598199398677301122014787533174117731130588078052508148540099221752093095442081528748532261399175202304854166629778383884448231671348780585829787519515836699027737414220705304553154278115889901803068613739725621704905951081260677626250172161236985803783143589961196667624931326032819553092790350289061391997337633065409858160415640112852975563681336682813341904753609582427266387023831306506289118705389319206493172941539745771710099862450879375363454262213073620356788344519455114330628759348843045497032320112957557737673356298773737306527033394867478435363280562683345715571086514090073214588773697268143300383577425096220643182513886855559415747837543091766721190337113104056956760756657111051265144416528957929144854673145697465351464432511098603778371368135445145835025179654973365723816554593906045158123552661097439788331184561513896915790886072522267834817146201060462318809088898939928086099220636816313582608693570505552693647279626875549132074283397864148438094403486772149904140849492443705450714805296247552559257887883873456550867776309529714870143130995989401163182971874913700938363301736711214760166866705267317539779154937820119105194630122054137626782848762411914054077793165777628713218602118582834798353423500109787371116395650287769397926704823813166975568527665181234037556415148008193083139186603305032844606837941436312807887068577079741945677477408501388349851192664904816526411739460760067106067990565460004306480710177021750025656367572866014840571262669814789047115329356778171825649644609786647197118995324151066027645541716930162087154284732371108284573456609926273835308140934865285384193369897554188085360876089158732955720499034065042126270159179009265002222665764212428153078371018335657452642112178173480456508572020885114826041545211321320412509649060613768585574544898545209639033103046337571272158397239376790261761947630160783931487306533647361714196861025972537414208515613912579622457981218600819833521420064776295464607800717616961030761650324406728317899121070000979369207827672936756620957153886060198795973511260415538484349585194288036876520222078360415035137917512552760315192606844598089802385922317616350248866849497658050491742429379626887444392767169747663403323461452613515529823446536774898473719517752134723600973695781915373703210427364781085676778029537218937716012658693026992789446097644236413094875310677568621569669859952002615807761340979764024854496945570288410881103399054845769372115945926306104663295113802962915010366821036777348040452004381859692189100241458488296257099663075086191748066248569852164213812157633687404767576810549160568917289920463627948066126272322847296447353520612714743765746700246895510851493227167890144499362355769029518738006498473112870666307371713364323679656898462561192407378991527749431571263964450336946866040474496542602898751019009252290954084103960514550371347654448227850387289199217226932040738358890236926146004475183615667825776344375027562562286229780398585249066719571927759770639800633587818700981506580746424859072832943238100272530055406532924187762888684848829651961343118886951602367992828011520869200844070922116987121870921997194817990420706244282406732034427041104055748246907619926805171395859859843520968255868197355829572752851501159611959774053103962522634487211451777629993394043102861250256848165462972906943805098458804732331072184727775716676274902844700052242985778563514517491533194545015139740461531732130856497854594835542737178817167303264134463200899804462985513298703392657447709708846014414966933557503459196313963287498036084173243366274112644017255905955089272477588991865735424625673905460147955381843813294959648624035456190247306445178037675407603958076263374825825034591318567861026242720574966128233114069813600243140206580126551407323904218172816410216959059099015512159568755455007049023090830564755048873694485826375436647407584774591901392133297041433426311569809207737900941534101784938235410360320041422830525755195570978977541618081769748229576212621122298082005387303062727798408974262764106154223554517629032135345434131493658643663236625629071800801043225295709621934529387122883610230183522919713495784162050785972438461362582982895453091233216482696355290032599735854139634481588690123114490882445518741695057683929768791870726500277253058289473987033101389705993807810922439043170202921684096830296532930171119910866263219599488606679623127101391673793181290485779547091415471590222064716601373365389223199246079994366525122621923119467073996787580377906869438161149307681827275246159077024047155079691570854060072881735826788325642023280465824330532489008030393061214277626009327317567914348564643813923369663750933783730768652473907768856276399890723354414258265309715224376058216751419364416669594119282479903301332766998372305922942654882882656714291532936335940638747616094603097256949191622876054789147652832716912337075986496095206339806069855267261846402464885423219687568750486637721511007185298039710837959678879926999592214747766793059517463992618439959985016404870454321011833772284865633338242760293396944906179465610666599461981969971388501944985105399803517032588200931784460216096744134808670737247760876893146900333696476642386947242899606927017212058826292070483912699559906358716733962546182436354347082330667012334739790394038220827357886138462222736373114714492070478963794144531532719319854978156523960902432339411450537595306859012163351664250832648581859337766072691138900545865049537892253345877176614949113225931142424168151377668674619905737890241040437350150293644714414256461545165434414986870762032768553179289462871860588724664988060624400107618042442140387891776543877946244474186466516227032542954519066233313897526838525983631343377645307793580734686630854100217324831813145033734284500249055036144113636886624825924217941723592498004289491268526413766757594135085579236060397944514453698067068437029830570249933833541790414175249234325756838486134988302498977599517359420688020477305925201266895148887358750891892420488135325412418049904348047098808813501610552467904627163265781138194690689284142715139046253770604519353478434921274645411186729569013902973439611489635788773394161629293817706926109142599904557887315301423022855364394078144931022056661715134374509953283165911706647908512412525240866939404947496089217644496306249747703071156638255043522811208612387667059879618830002355381867590948281817688043495475075092575024969297655602905393052716766332163514072143527670299604710142701553292265682227476211750734344107301198031646938066217137124446481856568182221997984257723968581393144811584957022067855647700854773754509082549655674965021987448400018630011083342889466108977879969082821284994941910509444362855749723471625951923084823015194756218619224365535903484297653713166058638252984749119207833327538745033421521297388270230006138942822801237820900287259141778742658075461734377749178760024678476494886332075662397588374874554307970406440368089608315356854424432738717652180603878727009493735298880089086198522550859673958934011904803373606886487862843590734540635815097047207792354215379903209230933663551167894956508054234375168399164208992615487250275594888973861975646461128042170763983110265352492900686325995084014492567270572027997641058853183984754781726188349400327810349301965906492256361492908636665054273207032135045642127934776966783826371378871312680153541802506740720455682029142090457566380481202490203071227761947452460344348064284883641615075699774708647531032620638987215972091329214870240167897826003552012142605561664325013269693179837001418826368592886857995266106963311827302070201609665029158648864752857815665896248917767321765809347419650655603147148880340796787874282705764222301107537185916293709429362242544375048546324036047513827508523894697917334627830653647065798399973662284742711020052100176926303772320909451436603577722598470740186213294955588090046321395309526024028651864206277758684986422460516519376204434381948445916785936546195308639479475365518302929024107977208060564253559687540268796548863612362854420618329992405832575692702406146002419329374825412558432631463856389753835587224073108907669453802246474211579960038622662983190081402503513903202126662245013697786205064457259435607238067880560246366082864530442461608636854495980834595079362400912453529143391817216923893811509115016095010787041558889687158755566136008927692366306231223148366152910857589682735646332393917245449130273225840394215822979898609777125633649311216919713481657991149005984499999369169546670412453146667453790987362595391487433844743385107954366342108805404515436516794838487976221026324977159740809107015562678077147453181635136140320550604020369894897398522093405045582903769294901264654504657177705541501631505275204817904397564362505942807118550049074575202327048713258502915352325365518568755934977359899455278126782356209621029833301346017320005557530106663100003334096305848457300697274021078623274400873475697218535742619380877198573629670046611575699317517349328651937379525770805108337448707260715308278462610878385291688453800212994363616249957884531269679417983196182290957704616768297174567199002550737398857445386910165254950670944335877120844508027694691946663069359967928223565583006414314418053504963142662466440379293525920901840521969267879615029890452177878186321360409562363255473258245050568646012190779223757193241432802042189305832935281733615998888633135931188702721125756507399574512794632925914581018918905188475186595409922983005332980549867925638757151577001538696053902983428342340106717132691430576204700478374703631442424914170872979261060562321016910055864622815795631359526823321319824982355970706894673162396675352902235622231616863502671440181196306354792464187085906001128478343192425463626936341375249574692126940606036438465739274073044699627345636710046261839908275655613335649435271994407754947056979120979991488755907541315770854835252944594516257513545394473085754308915060926821670429159436757914786794009642591196005832019985492072810186145781097739833483191913307849638605024133982357968101409829804159417968805618409338497128445302831726322765868791332907506396269233871825548989752993502313713761148260089450592141888365994910109254474098512443447164886904272918740302618266937169206065682312098483880225218310783037282239405496945737166231780696492820651725229570401695647874548213097391349741399266975781613274359839161620311029886702400553543990698951829432914508917964495627309678997293408893595903235293677755110881852978111970901304268703417297246046292698282149746613692251863919864606001043399348282049357288893615666121667001812015118273862341562364440313061170312930333511185272921980908876728871724704697354986597661232316219237210827908775357769506878497045086314118141900022896470207177185773487427857613534451632741721954398904009325440581268119612986100398051262624040884879849354775989458958627146953131117212586645114724975572890044700341084126111316470982509022665320590956670531497093742038054622407692166253207049232425318645929948880190068947111593165568547255245832379850501378851305158851600609709070458401786944876337317297302341839750971795766232674959891962305924311214214110540029488347990987945572883735398327737402375404792497545320318386573822487571435076799881789276676258057001377201882430521649041476108945745153499114188260077010541319606652360331891419259338365844645075511750736021475736622286970171745914003485505481429448885309351577484284937860886929553725886492044996945309071940751057574222535310106892245248172382929577789345226873832068368560855061835474067026170605228489727662221812210218511422718776909711298600140402455013804118400834092153791371655391224555103465880534686400064611045675580664197297611878051966060456010067983554730183414967595178197049329398389287717729756142825188133372763146455972627202977324955105110409458466856734074164143890143605319655039165747368272286691224996609841217653436681878474517470154911365429360855724027855131697960585795271172904231829516677646295403969431195488392593988291470605502385800171370302589205438354371833454414942289931179805280307040672475286710990870185561841794186499448796794569063314214115386235362404691701914414927101472728082336394591555838913019358473732343869572856828023098313481673509353921400624281789078508020004698206906170087753077383198214652380009736624394197609149464337602387784169727347427943243492466276688589352260652713732918801207490785131729709315467649841571689613117417813742707990322810618631305113623998323034047234179873768355411270700458383852913444804750493828583660916544492320562686139445739445621710953300435379689096622486422801869888481533632402358064248319366080696074432410972564346918885619799180835438465946047249768046354082536775132324786024475827790220551913629131000439702779071813207042086274486406750121832635855507585628331556622555870754804280565010774780474033490292802646663309159178248086533108547736004990365266874590863821857420878822824486520988861803423925686158960633666385420621727922680953034386366145559526867097281772271447372596179100243278116790811854257423265534379615828836190039994440817595765575389503912565917976238212023703896990303285929048997687538678933851339211319379999087843558325381494806939736303576023283443572137623173259378927608025326430464657662300336947421966278528669271206814909051022335467371723819612011368897640426161339289794664470403266800063012571712402643519518565309623493731816674954692249939265848879113215170942943288091973303566362125310218511969616502904799572731736473103093385394776015611870954108481770851051271550334930061095612376597228378434008979342671315641324974542644168619309693495776012702921521841318695775538753286116567971515822076475059061298938649641103056404347045338083873052728757795183781078187007599385987959773475007441211473615195638628583644539959636634587943745991742571371653450635596378342455022232402884013470401668184832393799831281105718273431853740291084013061070939830200392560463333501384656779074134002884648466013449709949930278925691686400373319178157445620807402249560439809378477005926917259649450418426320869742728045750419118330407382719991043612439273343866317312879546463174907630431036096376321948359451428153597500940389830661096367874194855564315349196069085746696564682287954416751928196540274344217248367128385253656723433936749350776537210231181900983891838729967277548828766781858919101844853158611649905045337410891493254062638138596077851190821974276619231787240340935745690219257752876416767311047055278551228466101963911700770006859206717496466572494242474404055226673774805891764881104670152294453799186207761913735278583738234634093014531216666090250099624175566263977160668790406393170957603743255654823366975693040787016777334735526054608181801679654840669830885994454639202951337152684642156256562683246399372121848281716346375399056894958024144868284883240636643491523078612675318541660817995876760853401821698885330281665201459044870775849281370671235539211163189784972829948134180620415949826216538522470224127384548647606950234650769306597969012433106228140328841013550444316903475412781498813866723742561248575105034921401423110523125992675240549236324969611854170236448629695838192579555905543132756148128590355807855798899409962414089956993365660496674889612678746366251907205092682344748042897065664954288146544363600233596017363685469798817634160192328964732394670723048876533775412124743930024909554835071437256368140250214004550852475887261296267517688787437912778316594522345838632486340146214170647219667242330221114262275559049951926828985608281393998937575972325941717493069534864776368376502195992376680746333196142991440705040616506122261648250327115081008296054972128287755776625062207907091439852377335032804692617649677380475684444940152525098528168900738743126980736824445310638247021980936726308516564252289336296131968545357904434484379850703735132400819704133890355439607345128590615059063934605736606631184214927864270067834393503483354093157472305547182888792946312082863711954490963090433750356480942243845649203430420442206587006151339852597549483976586750185135527328617610147027673488551110484144654192761261572184098528802478270783756321366514545899987509619938004989764658257903486859227792302446078544338581107409210784089531929925075040575707942803626374246951887927655324379636408717088679628164289071464437457677122500888232607258637047848294030836828915865068504904044960262259495975241943721849308378117641779783782427794644895847562795216933065952348445900543206263411588541495475354472116918430031032694246982489800215101094934276117507864776800018814550411646498321961539540173998584964534469023332547829233020610743167797866682969070040407286156978164267912271076915274501802298049313910496028140166902617908605767070285400864841328157100540210684859597177039395374200517953889574531603373957180608770481896165582375220746455600273696007861483941085082862250721607748051663341068881957552002773132943112946262109783255642464379518764417933216917398689560628738392148843415352189290473980390192655103056904764002313965054733943181239977854697104128247205436590774020777937305458191960603011163897419563776384314318264398230790453700289007935594142050990382053553585449987283042089310783412568720586406512728623373183528024493961680872785378914532249524663790700967957465460866136371762577205071053473185812448746521270221392681284203861895708946016341282166363793237012156477758308374242435637332645552497808371564291387600875542595498732064832900436608705823411181626043769487757965185065532131637029164218051545237907626788522060026007559685044148175527428292955003746518517725311753718470987508884330000717217642706368266683175465807047275892051899264428364145432599896127612113235727033439893498767819566475415089219549756565825750868117255525277916500801090136763542712318792937773115548157307296418547631906779682618557945277250517030769458862003019938458276034632777849412443467600081460647674679234174216181194240446367867813070112241879769057987599073308737788568160640314683615263147496535251248660917471054205271342557909839511482720316114797042460387185490831887108474329879099641324722539042111672400952711505663267849037741515498709477974336377789704980396038862385944633244488899437614261377689753700136191706704376192259898617377545587850695533123424347082831801184336827985205466601522638533421219565539962243693536773541369781697064351555534603640592906710272674049522357023977394025139565084199585236612894904153126401082667901456796655559202396040748103705603691829585276652871926332463244144974850618973992258522898288220839136572229983852735928072260819587615144509499699056512698892496883512486026477338872145958931071103344473418915462134337092736528817359794676956940081731190848569679814481256374864450799906402602724458680958094765685683613459138815229274630606283032688505322330377736887783673727570139592494877906611657313766154832020910576623303695171523700763269881201180520158847281559362836533516283589543610549422795885775062402053836709662252106336861988302840449948127452281647632566363372474267250825644948495681735766795113929300600184378034857119182629469952392224162250677693479724502124759435967534897625977620497990084858719457355179489649748291987724820701626028250519398241273908207304798267165953963168727073122630591278428923472866290250173660191484370787930580897157832004028238868232443542019153965194842068711047947742635217676117634464092284134530802832257840912918099690139445344055341984557099581929167209282165483799614789011111391471639136818841059182538854085902813167226117679547881531209105285214941500952582694815452617211496333893350609108154995732271333281254664923503506981974853539529396418713655653590207498134124949773649495176930524221288827778719877647608071844960194367948075327744575725381672858861137961938432882658176188719663976752085656142904708742968173875234343381506695753657011029309765692352214934921969295097187509464332306273620134771863350803790667683561008458704775177991900389731478437355184748392389730009648760085810679590302710007573299190228092135857614752211958377799272568785107172830582074095006604040997678686722885975246192880956190983410910356086681594539777255043055791567074050284358750134844346272040766590256160835711376971235559261585267745535675509551056317472115008127653314557574787478464391408843305651262088983241401277852997083194506238958717279721095668405034339820749323008893963846153971484006557032673817333024527479607175081503979497180375692835379907335363988356363514047731766991588123156138053713301995336859472559471696787881650545549664810586008553940961173143567773952067234449225008138683211267528636427346503221743969432307637898987157874323986382749753733244073282263848020274533352252334877013709342884963159549067015535598691699851977622565097674363097218870406118961013865932447169541516575765181005187243190330478509213521777833982396521378424624493322190411940221536390850303971408525406802352079658485588843509315927842837360713930262039956003386987952822264054224460040054891143043734735503631657940615113332943523718013971435818783319606933684637482925660609928860315095179171983043656669523333151725364756664517865740059867305300691603854040679016148222432162256600628123823942242079585137635693142635259818587781173997198829757587121964511496804669020205674387084406196598427744589227863382121489596131858826342939935328939433530552796629588779181279173639046967869839802632090011632031282576296780152704559786305467821514366068754422561236429057846498682916606989938273425961921411858301871599718730164449734697836203556781437083016104445290715644819787372959687101157178645959986090845285096861053730467201017883525209975959747803259123962612926236655692795300579639439004021885959512934515472120408662067324117975238629702485094488394173893458300307006673363912226372858341444868937378604941168243033207954940869089509056570881867802020666314259593611574703798306279335182580747027489659599430324636414570031067102533229171539033640725666963224625104523426869965985180428885011492895629847858747381923587008121645349602319547127886362349063823521785608718964313687158583586215792656180547387290866323207867106303944799198395131078112772081423937745049337931934231614817398029643969812779362241634638803382125706128401574697354637869255538680950821985411917628524868394850373785913855629183847963285892834421245589181933000245269092649032362070392591615368175500417005721323370939154470638875964913903456183122610252880141747947273879093481416744919851942628585252117588762123031669174979989534985954108802818651923610155517767440318025354438831807006037743285272184423368438086045583146763207478079264157373869733067845254728515481114868196414849509621477422501146807452265113047885984427742578051922271929785755229809365004541854109303343822979793784586381858685778724146396734421656233136978051331799746567470192532837723607611663047466699464576009052860269849347822496601728847815348750030992861215730886382967162115150561017224288923763450554823647478163549705467490202555853635714130083958270801378277910389231785458449431732881041515971144531913398715283351933195204797606497487001807330594476351532594626628899771308754251837769143275098564154302824160022550150594144181923742933753056501273941875343036580043239930605497524562009001887694992238577707579837757228164151287561471072894721722649047412022106962528476311127770752335259374964622125952172814720422253297589009675935602497679974107810300506798337594730697110765620872993076321701647350844541602639484770914987717304508602843287002133325101482013674019937955227607192985562346419599118643535526359496915868463951631157111623034411523787836947463698528686723166908328779424787754521045584524534233760407533528617643427747105423677305713990992377144310606161711950725107485171325465342387616894822107156584293609052568368232665411084156940799351259630889416747322793341617070669043106819432508856870578030570894348126355537475220237509300599372118359036582138316412199805878609513979485324187749343207444015391012013417590955594907324895447664684895547916603289890776308843734083578027489373371218284390944316613710906502418935442658466383438005926103638241377636271353314398848064741884043019529103477735649138833091460767692523102464601773052316531162430634730925588661945215747384850558436056895926378225418485515376799208896056959235869712458273884154798015940918471834190246409665608768307920824072176995348094088558403651450522535661647546871479644076704149807163589456325706733746129362241389651134311757327678290748984765960880719048230862371259959910797713994477356746190443307812610057287036477393468520685590836846011021482472607837363400899757923282106704542593948263686754823083250945633287393252051774762485428924757744525965676924265148068757462564364928646397806918543756482682372332002330354472433507155087451994864890707095974629196872276155277255996941360797131568085011994509491980705741852927777433619583846537469224494305521932069226434053934894792536204775741331741769110254328638186716056122422773509703048597643098966940213629710926323870940103151792036804406990401056163486938227128187449842506794940725322423711681157448554489158796631763797663157042467347116587956305736092078794702204704156991377040927262282351000228309424893577291112896747749184922808487574711284807371373965896553555071175262947846545669589314491882117977957360825259237509585851245959999602477898420384842669421785118679322355107833428002195850503017883041927008193710821139316580715561535516080902338470002777843396175832733503102503598234808677456228136217904440217819172911089976939893493706976805778052804171867042210406467056396655610262590867406523982237842945529524283984426914164769257478843520793289785610296296394651313623815537413631490496390804779887863957900664588542215979387015516546268201804636304651510722789836875095664014215703257539511973956002213074625763378024388697336524889116356882224999302341248738640641042478567666293867215132820734213758605195279485320163297627433174312230415943894077257503714776029480191743725115814003335984769463610979413168023042214271779323064732722065810154733609433100129973491401113967187906349403973190511847139825175579504224713069140701627644175367535046156336087728840033681563893512322554111951074017770734582484276331627047099155039444805979353381434701811888952633529921225608708469294296031287551420177234111955448028874994561457160939768168505485121648849037460169971897216022816123050264778916845991711378485523378010816780496612703000119206789547181356596804933533548188073907595282329378115457594824360070431591215848738566021814061130798523854551454013042540239032226671331921977218110209356136971291347526969401716846023628469207408248222200999922929412545089298239094615010063786566914526337617138824899734176337077693853146777030120316600007594885244909191127204311524924088304635387404105724116609993786061547889847214832742087597933636391396613935446321394120729448121122809609417790283972044777069606828650754682803844734388251304157076438642965126677927134631423229628417857266144225035722939887773849683473323666984022392450674374157291847924617096939852226115664667857235498267786350204567968139644921394277937801917018205820615913276660240998263045210992045101334550952891790506516890019930323568654608761807935085526964503316464015797647451828925129847413905823878203397421426738464871212460044975292933569482737392313144655281943024713862732765941404127249481026173848043031908061067904666075216398854715757907015019542751720081497788833962701509567160225083367279520169412120809715818268014576363578756442949759227924116779495016720284177079704778696283552993440454714124598829180965895286888069174978997363742350657870753201965927271180991668734701180176638780034859119767103831418273757195682887905035017827055014716923250848210351906403079757373314710325122742904031750603866858603579898687355991475693720602294669948243133283728875175329458501683176993403010406233703512780363474532583695377101594811102874651880884421861548434679173498442146170782214749234525334691415305196983113704148549256258719106897606190395211191753404684781812675896065243590173570345207456612779657171101345369958341835392730780589196099350377516186135142772803100884374312384562965383047412538375766142094641772543380055921155756202535429189230704442032728204220131429109624202380433614319183231185431425639409959553857396677954881877614053396824945294265378837518407071724060866752752430145387582670090654405834721400801223543038729428227013663388471663496429380884033181275630663056732546240307630126145157340393281803184900336602196689028969916222867048072835978404523003380845563020531299021415288998223488635777693864078633746043740965465782236838163647249754102636544464425171873179176207984513884704807901456064539504515323525023465677618984728137070144813811066247577921131246710568771425969056861607258582678417455393361351821780851293562407683385993125536999154666110491727651755004316215133203562010849451490284907033469969446680744114677495213570936504838623394873903254627366405042880553035965653238065258992214838505888710738963352176151227018483804163121490307142313482988544836063156498587864139029536959109511021509972359754287288894031391012159875838312055055018635887122286613697177511559671036841020130802421793207301333644294508031313952562311691859546002095816093598307114654909585067717606560479491539836766016419396310101748094479189634721868021599387238444508865310724877257614357823784102282735767396535913645430259157225253788344961845572250604491417761947861509323017160558970891263530279009782194341182817249266931897979139403024669233785344604385886268092022639084703580813251628719238925549685308658717183199700039208535887266693598072723351632742482189028375833739217316623330653946187995082568388528219394775914393736280001400565630047887711866889873128138888331767674958649529651664475820186624384913585092087881693826344228971503024245515143951331985061498536021092660196026871892408544433142942973117137467179957981477388641247954336675575110889098619884030450100929774295661455795569935856828651142419063998563506360769674509313258283824699656202577953857389926374216983825315043149901986637975114394480616382737016080290699808672682939173070116656379478335628245941976472325464050910585986201861225355986673561152338776528128072670315179912235553688168216078275514313756206944385480942151372832575196594219778490469715403343425807816393730936983992268903780308831220449971674525350824634735111341106277927234413568465470709690530430924971642552913401206317812625713250226522311067271455001318371300313944621684035978902013476267090541047352762984939879020479423089349688376302163087745924302877080862113032965183234857970813766193893230318748970874633024121574841183859193952422539358668911702319701548602398347812753468112774908356883391456150003695946901341648220104218862472107801127717861042629452677697828801366606853064004141883640243860320467309983816296517075710035879384039869232012020614812550338931516834170441553883826500064536239459245031730740513864536379194269946503511938709934928111003131120662458662445659417061140280063178633855538419410752136311958578531943090523706921343031305169185122066531369406836713726910804733995031553002201451538553345856529970882332895703300598305718796443848772992290854731800510415513034452979234231030738111901165166932547017153397275643921436404830070512526921965318753850812519387156860558569410913503640291361742058400983463344900389258446716988062072409388617268380192603296814270678717529468679372011927547453124941709447232778475181929259988224517790250309471354776958669391787361777990056020059808604386839611847923249600963621034109865116616358718669361846814901547996618624949153439460496835894292142732604033928195147232134967657966858326523762721716560606924733152242304818526933427163698086341341996418475978728219691777973925179172778518109411836671668533758432380312488326497254707512511323685161370104802443617468356779174769517585801924399864565214020020318710851301107173342114171823394915682710099102018933063054510261145940123347620979776758530834436715711273646637546649685359260781893730952816974217973616860521252840492240695458296080917720783721040176116287766266823183217193561855669883388720238800953894855837496889325899906203593653128001039905397535995367099674130684051896676682052545135576437548111099766953133874141669903593922956562342293460863201067904431098082777226556120130078675706658125533975108136432283013135227620681876573830151830583768726575599379671897215410661179491186354004355408147642764533937119825784694133750353425372942282097788420783305415517744502274673318953312194737870343489666894503332621087831330118623284231897387734456828774748576444125330849036273055033457089476632565718575599358891250978754783105398424725178459161001356364211247467206568360730696659914753834661599122524472748897111058324016394863684670329805169858408532795697943377879068547407885458549643579121065023760324269282837948879911779310372748892903930097040779393014299273459698057756992574596767923832465343684223051689733608506979872650073784113634965122880438686630910670307936483873179107836930632138256337696058901008372579480192965274147221772441021215767594559754990919561082524392295561021423162147208887348802813353090660639933273263688182996453615991023389450559271108974923579205637186724999260483966199799546707363720449075338265451359644002445254621268472046846328479959541458070029240335329651661105137845319725165013307751318727686755366804135515067963782082855154035407249604813978249860191856886032304039170081851778676859853203690400697031573438942391382343405476301744469838361723234712519681792182404240750147930590133837367406291228492793075508921242877777141382245412080634244335567494349997496092426252900958434838328634408530421463667345523399826804963567141609971951178467710531377522073505223664645146987712870077281096717742986859272358477820155305525063432802372398259544202985603606482916294375658320435101814759150529767183160499044279519908431736391818478013043207013748720200680864393912673190602436758369564230148618829742996811905428192819490937247081950236170312485576218925530471269838109940965746042907439386159654767986588916362404853444965125746704424753512577507748978624194542382253244581021765182721303062633388081380299821983763968372330732747247139446546666427497862688151069210085938160496477085249122706722204363151678977316752359334253200010963744107063778021801863864020201591456950526949609445547592187582893033533227431866917410848157781370348249320301050307557912622576961414351205922841019672129729401555722565348287054684138822696672283639320067042523622189886441182275238916323009756237314191024231192036103636358371350750628225561885070130160944858453427529396579421996838256934442183385807679578669626914856431662142648258772847075898106937499761542281749586210787451266796710274799218144085108130794644226399207163031784092269429148515393202464910696876698100905201919616260336641433321435657510567068131898044673227500063917105432313549557297509879424881380038067362862529362143968394561743668776154722850637422677576873301992541153926238638099054242450793627032222671675412814478296129114328493723227963881535164821452264410384666363188297587735940038839799305246740622017093570464155425919862289820641921607859906000126465754732169495064515357054481620514565530283516567187984891528015719235057122990824044897131782817155852524741608071076950935258225308390631134218846291268796026146007724051469563836684824780053535438243003562803173997566854077209640368607423962527219860588840053452618320046927875951954517095557475436899139946619735512662512988598613673967690875664760838870521124968008583798038573673706896443313396316971067119310070164023309271183134829747138948076167864034173632941609795322140984404661224859119779975919006441210777078724426702733248162239033046351600831211187778293937726360948862935130315139153413117658605757366256347614066040279486648259482003773199421857944677916186537686353974458403926448657037861621398361448010608350861845172909629378328114724012631696966951561839680113585682479007662002019469038109374920560120707740407533809175962627863884476744682134911834024719710791193327772338564487338602614951890862353046307891643880633636215711599539917991186111463358521803752558750705024757783186832290445647717772319807755403303732673092221770552363556204977328457376363230283242026466706177300054762313734486133196788526349961285320638705877641059178082805105265271856433320459900446768535584292552096807241602736210097370510611901840131233001393585969309850050520953387834874332298919430648373917599499422235351094665506281641844382024985637391019397817534311863040743635030426579754466480030273332472801883599042554350307843593255908926571626345861727226811875673360863056102909351798974998574326725884143429106950368135884736232241282815788617649957423996424500554531415836029955437088880756201829089877990704952272587226028304557299258803753284011008478018778405966240024157874159949582609068251793694438322121752531752771682803367080177142662092770019505415654715027763466557894883706969232139002705146842672476156091831306811779278893951058083290595873850401188091840869098767486007418979171990691429092928547192050476334296293578694127163095193201084289350885412784278543073316578885634990443693237358576264065740818373131298685007293668697486471587113394838636261707048699375806169620073991607423930781009047142385046208343500397274055337410087022137531390291187372456696811990674831840778845980534158977404440973164178846310528206706588953437193962752146587025483368803880979749789837382431343479325455214342879131390218029234916833567843398607114257934484151676641688208037826486777764456936805718815528997248183135964960913963925688557701049278093058993461087442086483416994335936299683358086947174507694103969303230656817555012392917454585739298038902863777546269335014251091375504072288926888764428864933955078088690702994573289251303980746723947389237603179946485286190051040129829735798751026711105533283665480241936516122399974892699668909281714717621026969344226702599394055935195249435202827190617654743427715108810815299371350686714137003894362449143337209715424524275271736778302802986941084191614587294774982370614047229478164987099681706455779811998187636298992522219580946651338159037249491732778362776661135537190023903106143969378305358388530408899617483597843503794129990083891947036748347396414013414670550960094639228200082753855417564275060290378461764621627390078914104383766450252593855391646615882277341743876606648458558140105443350562454282846763076804776230922674997783606606624197894144530022621309263942838145483856188990884115202332854677727031706732562829674143571452632590390744393347833248917717401960796060896846741636175890896123011935574115169043837676586917979078706110489770848508356897464957961988684714240943132663179233500306142196796254100149364708979722899789009305669442916200930159816542707964665443917872219656864163911117676634161471464216463299210625574710900982712547652195358360015118621466721890414660135853690591981199499917972140289279340902556032806069877070096886538409961911290864625906013223959777641086369039242575345587223849743746050929406343323320758838402832427171888014009758510218826823918450018586657793358084712932208205830863968073822947175900345294043260248425587178789479388176869378761497508936083438190831648725372942796617170015366248171744226415719335100914679526209763456797502462905995449802121328296584767970310730561517208365942238190377865586679738858590047601985261221069123301046299110347866576684374268986004088738145837449295849225250550667604104372422053401797990574154182655077054553204547329143632866650953959455188853196582557320358514527042967477996550318752364004206636077025107063683860340876011846945078361330920304756397851631998252544212684460177699257456239860204578682569824642463740919560281145729363919593875636982441663732322479253669295655377522508466430567778695458498480163585677153793106489345508558591749075572302643810554884612094751642188826907968176281465172917877255555101134184167590633408366266175725586917136999678965609517608190703698554053323794356294988666548536940856987971922617009298527588388193160594365445133286223785344735504058809296003532340670104871461866564937136260809222434094210779319175324208761530000662691967062253178370840641870089845037481561451556881285084511150688734738677391074602664033858148060416311063229982649205284142477542756738447979208619634973041064453531678445290088798423116657513569311467620774266139884235154041395005575453454941912852284391945673659955404767805153630897596225908296628555931375855962475895183736606004197677475469410989198231658304246816477545034081380312539599057125331347468650099083700799990012086276288056608220113709870099058631755457271690805912541759127228164720720350345503404851537891501618664799141660331816935270742924656185811586574624785053426444440911210083273428275542559016823239129478061676635401944325977219414075500878233358892374071738808447543036515420822967463383446314653452418000908206960414307818148934174969594677184829257717533011251705341323124206370397618253436360482944456539963779803337916318155358149265182334745549806954100951302631809694354901914317176698153630702381517330980002016274181377691837704889209830702216123197962413814758087276195995618652992161758507505044226951833303273806741381929013516437035470858504072192945996195003366351519611354321372517296613403783580858111305025162813096140113157884926514090242168791083009749949191252705658066711672336950550099746880316142800060421038915586886792356512236945539899186045031893674598299361077645010032852257967072929203103969799322225316100720441941535737797906461579587003170536763518700269304207314360466357757095211606395993468957937716073684151146616845325675049024085271784665343017480705157318825376577257904033190113053266195186320809664714011166884521960594388791521486838090786694674211545607844408669459924378328057662651615159826212513235500276383962894639597834338752655998989117037331055718812911209489475038658580954043006874746235109189732616870003662152597606122742248884543597187394425488477652089162428211532827715874999083640157782970867663538277249023360549423439807425897085723495300917652541572646572169266210622512289468204209203660029477355559832100632896491768784897693870580584982439142216155914392648095572258960653171216782438101021877175720181295160428980039602359131366829840891517522459987977008751974742941997551434867921715689243506067121963828673140709025203537629617088222614292914777756045678895574782644326172489221971887934898452953535266618466105212201785244344340426068794173726889224537690711980952319469988239440338992656756382056226635966415804683167511861143632843353698081399565567603898980394265213537649163835208584697218371605136633946517469065368501128171285745118343032632391461364122004516079485437940801187416418402091618861998673228269951911877752872531468361149672468605523553450501441211147807464269172684483590367692841661702863927708099726707528329938443413991095927611199002388195417279893293212077599995686932564653309142986114856280913268284270763348528664712039937109748164757217123162020137776025190417124344806203863797140535979483262812553801505787742453379666426179897680552569430899251899846922360809909764306182426680577089588880605387953501117373744521895120478930788947354537748762799364129934978131657141854546303388950503731251748801323358771473628410954308977556940132587898121119736768657628101105094711370043495014864441821141058292742918448108866081357220907137027750159150420095607015307960697923819881950816113351312291490585076833274126696978060100315977543203459904907389425130321412920824581014895148229128433346308754973657065188652676720310161185014696626931271730083560529988310738412684701311733670046537435879420538197337444374915911330899590483233933434629863075063797950477867077203344722514267341938553607246095911966443075648716319736036027162241018416320799504496287113381507830865946198340920037884796692105204532421359271290541815655819376561143396748155723077433251879846354791556662858369091530211732973632891566941628423547545150964776638754413502439563663369638036332440637635109288927646192129396648669568723737680715340015498423826519924678744651657989226187241445393109815182818629430571862110782986990183693616836474913419562727473745139561711369408793458821308754863619011130518360571365326214313110482155575785739091682104439535019438482341445836129986333383409054348869138386474367459828799010864912214861989782394596440163684597813020793505346156869447192010014495315738586587083089779079642817993282740667661015369093158150865532910442094970135804281878187040559135863953080999035085004453709942941677585400332290912928801197335746346563258324016998119213995150126201584820521413609123564105823942629950974393692429549431268222178680941376363379807699027974573342925338457699689051560146578692074012188092319532684536152681099248639906839213579679746082711837766732382512148462879657871342928521329069956011895620291328970557697980647676776455630498470619367100073235101039535175698735019833653763447382576642623301558403488391464228875097407735813850574252132582978726363624589846269671951875571556426845007042229386717747916571698828035077466344489511945728927405471998111509116478108912095781491778585876073294265190722470710971288877838678371584001693570314160658644902921971607352785242096795793466061646297123378905494144790450852776390414465515962756178354313124782459754362840714681795537332298708283221246293456223418372881671497977230717739428311322475369921175179618820009783137682385726525078842203139937723391039060817533711002188828338220956631163717317313759115464940287543111103820335205511543806257883091645894221559358551793125426522984176106155006695124704823161009398540253077391107980570203269710554078879354565294516376162425108229201362982326738105461478792908399881329927850767069775716709090828686109821788472279940226160044114573383032912908688693943295007007533584490809729475510002959794165834007389497206310611452851066578492437385001087040739269438957545168099822804626824283383947509463125055657384170107805011200813097224045708654544725846963839307477406336416862272784179560174724168212510556773133757507594384974546127685643801200621145492036588536097294277562457381672286298145859161927953981848520105699474255053356065438333564446770575567639213545950492554407309486656955857111766293922031137099128698002127145988795230540458355825235012146568825656141067171986648286722003093699481306382037967484862979568575070080855155513490749620093237919943791078875979129855708889536030603618562587065467485836419568663125067451272146884305318785254784240697956315185510916154481540004406453057924266361751510313466053338131867281232481042166810533936528718353914434555553365721245988902111611788292951636922795761575743564491725627493904837962597256259512380247152700255795559986030979916625500890219310032347595577070307925532854026598321399700998447708274337783740516678146377272754643336508842167945156785317188674015259663653429660772748173370449706956356396146755830791786205246309732912795028664764647770127725748520724905399093850407815679185865647475777352770898666015326824218704064626581471173874436326071272175581680435342959259091079576218929001649294151625709910908486298312486174501117541258203938983988897790664021297485237986002719479704676360055884608426838822221559032010987171932150467532779931762174891935400888148186910416801184189842276121550619658624918015459366798888425557500923655556179082580265223184810264671159927548431700309185021436082832673365165122991580167657025193369565601249619262181051717360180285668231792630616304378038610355152829418030419387756198443516666512815574288672710651795789399361927722961634935304153506460215243687277602123135676278895547053456346249770325080307363701230554194421754953171170071894295174986931237553466631352057530096522184713207597370319110963497269910630595821350964810435477163418693710040672333750014477115691841737150787362013528518940972284570302483960495402707492648776169380638476299269003027858338707988936051107445304256225588534053346944332389125721991201889703801081970174824689389331480023117922569265155009007054124306539539382498451061052257046743824189462080031373027831379805170082638223168650993313595573542481913998595969489515022660220069360281007115177444465713143471111763407338661985579951232463482345610804571252069894298103838532746891005307703440382038248506414658563665151910409412691436028324836571774774463610026641431953387632567893878130091051595156448794906561900927640592115669599527501328463706923102989604589518604055420870572856664774151930402235530972317399475336546490984157284449208228286168766879509546166110053773429429673376849986429725500694095221972091414614569437894199875338801659935260764630523121798760756231458568281964138945300299447071957016624213060935319536743278725456683141085455661210062808834609317253319215163292115836197710400583250841417830268190403862610810216838437199709355639212882778728505527116817597316037239020119690502048502576860211054174923052077937648387264868239269386876775643076821784805105114822044409888759691458411669893981169759152464989994653815539406766295788765398443694309788078011145529466975696010846836391366654156889825743701842548283767163630653721040834404897187839487774465286483950875087848480977433269752056216380324640577607362732192698795523704574445064146521672135410464721305884413078700864755823438705084905112167348367718006411517245236734050511408273334087839790485942463322843957429402412110851533406371545973342113008815513211158408244250845342108416195778992298417451563569585162653741348446503396621723309212123084821788811752210253428631938479566049449975823974442693318798361768601224848209705792180810962553704036285685393944776910695887466045816241200929652784287575680281214697294169108485670875728035992074134463513567100764561346459481916587035214785453125750498089706760272349596925562859513651560847088931454893689136553434482179392684988342011151506184253634736052342772312025057827488450659645648826946283187094676102977104691443410946017241650606236037973608318401997209972392731334141334731336448013036730875976904939324344075070992810496284316352581226118898030835346484786602971400968992062270311287104496996568519454421498784371475370023672845619187307614688093551659592926332888664474864839462850146559472537164629140915596743810942505874269960798392906398056709975826627434773854155794187524866317123952330965510162497403417030251699336728592807719510213953734442533127704646695003387467082946186738389140216031751486248580684452033981666062315864260675219699127124989919954717023072015154732502074519567112822384726604687093286737683189650477285096844287867081931615719822808977279705509641198194634716611109027921207820425431913753611764929768657780889400967807143351784206961481360283628934856354529405164996912489159165067821380037945443600954625156271925220916276608051298987356510330431390218913981990484317696271271656241320193576810137566905651381637907469851273570316053380416496234013440956839297515467121932985004802000052521076571201230838172832046448238416986510795650087993406326854863421570296655169472670277725263948701545524830125923164236458399403762511176727921347815059245050988935363346367678659401554919330545914437216251310345941954309280060080220357097809520146732438515879564859216174532047092355772449989828439988630005103737862279456439757161657513190552319208500698629356857637677100195982510047415941438508457209466322670716022005394902886448261099666607959887754811255953262969025394720836075598081839219123122483826142134857592927106350680325770836998997141367334794626324740741228824635287422090343120613837082092762738019722143105111573184263206885862347837386324857626782358192505700603335895192537011913529583119320095149879567279949634083417620126397151611677353560729186667584216163937050200095615536532968430691752612946489871102818264599732790388469479528753225905275700039984634119897726939177578656442296876087355474524662468533661241894173825086383179368598053868945041554611677690827060621650960762275555583974699317255552822622058344348063887129536037576801846884833604270544913768827790101151097708117203119521850532544887841405833827789063258793204954249359229700887224467818337194156629656119186364881021521430583542246625894862310279555002575612882378868634901129604826027937830267207399496993031951950859216038575915973309474591909074679383344514278528719982724243745319762281497965618342409712833656323073787756701446844910308651038185010778394794660713734115140562398695056010680515064179445761866247193308602369102068437347387940199966782811593888941311142309502459774327079528911250913827796135066018552535075655592848964940389733761868293671274130910956267215765560764157465185939063061443026576475195855901079104951206664595920469925131200628046885195132474024523549300207694994863969275392574829456432611575782333638286591145864354028057811385759437345611216538006402107184785640048636622343507399058531646964888601570373426606708608636539094778819053416431339302261084735247597115731503477619128360015968413613614763623525479406202740622458902580506178025139765836797497374519150699697002660343219251826567133431941813782266519347376773264988189722947953245261435990986254358150532257269199188088426047008133350387936731778609942152875104535160949312848173362357467592569102243666464946318138047703834551167235787546523367010991297811820524623292588798961746692199187722361047146237697440329116248438470646026146161935124153731044401538770862728645478455926677625934359315391779258301820159478815058931517966593355387746279918867398353952187185622684935636033128475769378361276272739202313387439332495492005502582717458971121662286814550697925852689046774180105325724455175620504320553284549198440403653278262630023492544458953195443728600662087920368106755990054907264522501770342019139850449628404506313342026218795981461083329604169963142921250666434742947750937033886672320496929992743804447544920338249342783035519041285570287634828098175018084353195476506765792386138602696385721779372539108655904008885643471731738284767713208464623528169659055902864539284113212410389575456028002203441944166823016089128679809425783045729779962525447156528165402406498248125020683807362367044112465267593042083734520597501898834450305820509582110416815867088811319512930021185373335083421082562178820996957621698024331168280149060354856523025268168398889574080084536414679464648235965190041862666110692089871979161494703821001861453491580186742466290886850701418351818101132335450361243866733923737773570782224806005071336193607766002191746979055633525223491381631345840747091940272177962875196950510509753022801095383471920497416066213150635206319581348838598266752693250918645838436109155050026693900230582401552005643409815161469505938953945676680025988931223566443184157864558534637032198997343934645486760737667618318436961152332261302876569648871754584611831476298878402950874985467564030284298215800303529703796201006428065511411121715807543006419121329610558439059240222359896980753220366397427752945616219414201760348578539914251974754105506265615182841580937582879357529176634901884487808312622363350534640864731117195260550845432748247277865905791305325504202465227722034977009802268707518932030470499174264252271792129374336013340188243519227027239920906795829488002740998884730627509017020512862376396895706059162562072780538696067466107061122773571856989104355606481051211260332352371691459757031786442628377023558588178479508995078054352490814450054497933348097119238061920555367907252631875455085054431403561714658951302032165971552632748019145696564295704590101892311126945366527099693189888490433190355099224349627053014142738844854435269196097435609095893552452765345439801340654800922589448235832530716910740957131465080013378243652015988200233571270666777973168303606436636251989839773360240074981850338782831020542159341988940865269264236308083954156937002171120290319850373792197365103283768425842707827065115038153641521361870791840225354815930844725290872817232877526644863846238103132671287143684363334950943588366675613618294503064819098670398109528209873011810968998577333463458329093327391076286137453859877624799198993483693237332228527858058806861496420141402007600345275176988597762403578615685427456316552456371149661085016566628288480878772366133878322830239655263070997290201822955895184453610528696444061858079432806718882005997352589458732454759168346916252073615205344045416580783271709513743258074601446529044950660698414706281799557087901538202621894938495077863665838131309014052584709522557876307572302420566646486298515260360397625715285339730068889886629963080846461363902632807364796659623705401704738297196492192284604105637404860678144041822596206926078371347037932666722698778755220975404340214518509204854019229460601556772698988995782476115299623533729628386586763301899363125896398441582815552162957733069914069221955826319402386732578995031511093729942381769682943217247655997252002734527128783451142883897865290110266056879510827797895728854440499349904015927680226894875446054541675648340814154888307541830840528160933436098332574947708226918396643863630164748000243887665340463223185960357110586895995969092003799553714803118345296043469981640199576364812870921273938021769773046513371174257251131831181603145660722845824746755106221728908747215770404615674493900312153094549134544861258280671240056667069305593360012434510332717885059350239070378001697471044803742800977310281843945449495551186029880836130492172661207282053695747890985027530266407000471387456831409055558889777106689232874773204682572669794258125571916575874784682757569741462962155081798656639718877419982966781716117115782046742418718875528981825166308230941243351750265200755767286339218921660648705501272285869609033358138253279110714393623751050637643590457752441905190686867989258993054132314970609170444168118162478551081674472066646143413420161451770859898479299727156558320086566823242084429436111096463499862222111742801529189944994694668300520485245253611662250120380366473231260612443678518074978375293832383220172473767732403273418191875872913328959046622076208827626532811707130458778946977172398228603662145352456617230438762549803075633808687290181615833171511362565441166942850427653969087371350164660739275208362410408191698134842716149599538900361082295800127655145635886152432788257365925812746374796276723052970168167435066689900830904383584720355868890205343202306772556840777574742469679028613243467289717124674048682328889050523586567502147468970795028239864600561264618465795719450258490590516420482716256842867083633417794169045111808841192068961170141967362329854521202392184627301513254291479209418241670988480880767282768290636439831888015355911682903885479220828710351003389352849330755853315298966042530893661936101736937363319729537020316663563426964538336353414606801231366391541510404612359337105099811596809872294077529561907721419901129583663039858112664795756427465237231125357785692807476111500816405270340824201060574215174861377710012868397553004845815067221530137188212791754420967418868980127017364431579759577445702876011455110895461303009418070429758090249515747553703113012179180980023743625648904703804648649019082829767789729265804096288705807798632169415989240573691101228034864369470151776636546601879927357776294861977786852535071594976515474780390117217727531242708331781925824878227713446972047142215346001174688298555351873576191835630372309693786062268526087439017741347239991409003405201629523279861118228087128475620904803977979310915073652749635763041047938898320181686402366083266380921673667710537285322916153858210068015120286500792363166871122492114673541946108205238463016497461816147451768657469446109563912652026685168785073082275364423651535094020541026636668251950898054792773718111433920741871957315319919763720638177866653906027700560243605450010307955941578909657821908748756867720471347688906363146355127662015908312775792829165064674984994141570247944647016686313761682602474109723585109126177453824896888319257291537064674813368766790771255871735122922343693074493886194965325560943161529934925474485852237039545467365250917690080640555174481557883376335452623292817111857058757809668732888620255305531783293512425010865469027059327135446336373769306085318472721376184408715859673520204105262497453502461359069465844001098670259660701154701198157250538601858619194612063323192007337796478892814276766819528008157280450885799687190238101475318827521376702521998521251903220331675357576489898092692073827482578401097066768555438124868703247255084901694516402955087220551520869811535819041656129154044519880215074948544345348510354586698014023016617421948355986169677570216468531030283121116420474942862191497940463813004772539621803801990356517786971031463289094116794897218995234462386965657724272585152335609545733593458127451334865957663273161915164411323622257299558916741389533961415575064394977786051977109106979899823305651326790162929560265218405184080663012644736824307733629270936090608305981422320006966671902254909749081933811899345303784771668007147621646651279218587045511024857217186199970640117762860745718690240733248359012039401843242422058517361395394803276353707434055194625102295877644341593175886717998200716707698789221405105592964135797607879568489490319966676347817236704107687390403907295909547765585731061612060483594646112120468021163751488658434919622104321559177780265105830903219523014701957343542639928132551489497295836114921774011150337036126357953372165345578644282427754849084347022907695181125182580437991908518270206143121929292940159247516706821088729054310712659296819891132724175978459456726269975301274309531822964686704808178207840753140486414139585845704269145821336342273409221624739435163255995991698925053322154308353024858766507399594604040092107960126172455028490842040217270657594428068292275773985072907084779848858684370275904907922684388944965704864907017501870267368007548013516627690206753079706895214980861165271500544580252355906543217490795423266505038937941311635122245637198675062910887046194913880420257547713496284116788532323616532391729071384633636022476351552477124539910970206398260993797975765662120681647692815266222860268630263775978155139725387183018746437179554272617493975764348304439678452289764116319844779164487531737239436296731104704017227039967136099916273204678433192781623334176638316535836587755756937002691826456293199261944435805568610453002617931895039529038271675838924397566905020505748132039031383821602466959900257113877740823026438778011798694360472071652173688418548797906329763882299041581905393778354928522616849727665459704020837824462157260699628619881867887845639701018180812937418229891024636297975186228220298110341580213913002198804884669903051219228304015665072757151233269454489389425753789537463269061112243197844962663140768625238401625737304897889594515778213550965839462017730538333610527994388946529935245755937667526275205597105940733868067130058762877739880040529556216203091368718094377626217631184580800542838223711283573892330486161375848844434327847896590304371147723589283877777362326717244867607825777166570282727892261725349532712811642737806470070173869226255621942915021504355383540086547774113973178886066122595735808008923209473989669718637941158299667359111033353917861058048295824849410106246670682063772766031465494646412080605168761088359151004238736802291349470588668998910126568443135999174099403748086688434466010845862087274191371869242851250709427483594726441529660969640442787488706724359656793806256251384639983011062444010584272804493229168005371354221836042067341197186805795273272086387946211386763732998030463811456406351741887090777403634477006427616966797933252791296368267335408363288707533769085522336751554254643704715186915103324925647294663883954767670821433408661050929419274480200573039812502031052145678299381404407460295342265206665622728494682543171376720677701939219989187612501411840662153150796525131684162835745227148477261330097490572787911061953703117832524681236730070551267121600622218360781266595039755669177254175347594449464094078289961455903024336088804837780201203879277165964762520340055806836608040852464970281075721153349424734868247684972006224943423311096590995347406385875264083989051713795675513352758289144933161873543975838523635376859101597321120661198500541458943555559120897361841012484853024868229897942149959557350718528570430637792939340096309735590109179890721491827320495547844811522461770000906227361638166030874810277797381141289279717330530570487864295926584547329484978639315381464220001624134460075722583149590753631209158403076822530298914028453740001588962577239360202675295315321439549431865404630083756913379385176694523476226559034849996334684300610219952243581975728586828446497397488647628121374279637101889962619476089370697774878562568207144434506342302042941039290796114953335219770669294029433318060745130145539255622245386086266801116643286816500746122939131932398843651430295661624276489293886038621022651547733571357759015302367784357735877315129845602307882686664959050822492472482511908354365289348566114539885319510301838851458129580469322232797407076628601676328499417210654830705204224182754727384932334475925847804875411792856963482853873849803351412627989336212998507763258677916829542487744841260056667265974922056767534406988990082109227942204320563901980004438238831230922211283096347848557441866060235263544890207355177214248741214925013467563976683767389047576465295985322439052859486327831081863675072856797409506928473743244077260424456319147005692224075959947920446044322526587765807046255493764194912429833578906164230265524789565681173891738419916764367163658067832872748535347058722744259937447013097185084724300679315176962170716684292237409680081532425265751417242669837052248082649903044180849061936638445630101422495291540418261478015363071617808076220526948447356147643102334896932716151311920134240419173420199634228123903234177577175592582648330443260504339362165164716686867754052922342180223317329118091117274400020007581176994042497588134038734814869597327400653301272235875393830480774773839103610268889606161173478285939859765124153431739155651306653656017603209022222079595119798143709101320061119528290594896457879403329441382918665558363213126821268385906541307262135746733955931961987194326289575235512590334638615536078909620027941935796647988448804702927713704577071719122421249015287730805560813218081319290887832516017013458274379964657078507603411481759978558700407146150821917745644913245504167593555583602077048168982120533743287284534381431540206429448854855486878785316672596655068402590243898319756008687297153309888606103473186421342079508380116250285772115789630934112940638059305050417764660692077416125172473374650764060774727528545610364805884447831257762311238816848623385466469096417108084451428757900038786690733141354268379775166152345875974101255644160760909411567765429725800822767976198528507656895562260829898086342684380903325457802626128376964462667747018594660375344090450924354087686678307253019970800213465199450893892212891613539608835230327383652452277642865530946858284706053287835074059239736304709060909632634337220075625751282988201436209283117281122151079369211482680812545816604366068411953776934483358008377689203357217170476882224677360975303156708127199108602820488697304167737269973503311765990484327923237717995234750314947948376139742029170359988819954835132935203636643548607571562415360200104373506526225739321435668059438360792724769264818615129646695511333170066845070245718244297198333158637392957650913054816994369855899313634794557617185554532515441799116853310839495594234385393472742658527948379469580892135147059175353355028723192242136060810421919982827791262057369173941717885658253695628492537613778192836163013547697190599685441518620097397920757747181399929766753030678636790775343169616046361067653404097599332445154925406528567022353900428026304114241615943032658218064061895544849112912888619224398965635028083840955338166192132745643040454152079239608930883340758369518390414153369005777542285946827345200635812482994295088571682264815772598812847158346248964390612764990488843013683315231979191587212810977681134116874851878161606279990992214964519385159026097764108060702224000913170966430517595334802206788790392774640281625326551187881322113750646314365171447987683904737079364586813869177870327331756195466885067610864394946918007257452880610826593548461908602648574568332426119470359809360318072981083145900068791702033739208414641704494922241723817978946446403160903938094249518944639405329786485107898240650029590511274894584170123367275474424494480154057342281146480329784244612851470922866728702872689386659442668862359713240489027542232140708659881464324101273393147056224422474054339283110299882227512183809538926664499078198643284816725077683928296070440657584601868858328468278102996325952952234619844675971237829352461922219903350123874420426967983421471917605741993715603688553680161439907160297653665123143163625402251960956356148881143546842232730580818776500451512894488107981691855812325388431030727165348736830063510401233525229441059552487906109459182122364870231404907086536327309865113039216361534224881350867102411742084426059954616709787970198535642977618006066267050611203731446620440968702796723476432979159585913320407166632849690003018961432024137251118564111500659382283389821402302250597005013250250331095028575231297297319972538740650247569286670323220854389529837839256934579665758781944299580044115502657922829685008888947162005244660858895940857625312411550309828326479128796182182993637064498540706250247598321115916139823543040544844818386149065892699137440228137613020004148509823739824003160609092634860730334019528479693633099667103734977726054515993845604301052565646730850867929266097790920793672950454424062269468636518107859405547594703249814685898684584796837660275123006507164296839136770301303534795946995340919912445678437434310861804037269410222334816143584102156240236972964251706947952440370065058151529622967208987798961418600535742837110733246845851556545690092599604679295334595222245059742333183358171689430894280827204420644498551190265081000028174087319254812502140736412992709831892989393435505721334916257408808644512675157696892278051702297048443945476499199110381757825911581092090414897292019550820730498246781786530665724453839290931234503533490768531676248367612220203217334852043532805249498945410233490758316196941997743955445928894651700943682090811747795312518070317304135034658247603081624613258234628504094169708087911402756119074913326398887876095875169762625268782112681729667131638279592087052692064016423579548570769828687917786309661570000424269269679315500341696518825054612305080950859581707100720696543995227264087532358386912270869012891606614005670324612782699636604909529866959137237962203564152477842139974760654522916708661479476150462229229701083621377662033794795744254519342250551825845152601235224622125114879336687277119932079088987697604715957687272546697567692767771176486575166009202457911360611483543778598004674128747803354622222167654900995235604819131875803020519525938202762769046893201053871101261591584078570625498052266449195684108062497521453547882737051386362719984389170298184490836274256525686193846820935082059921406848801493805416377108126512797420962658528510844674538203439178995609421800837253967660325532984767222804281570217762192034639617044976753325925500336787832717036638729839324357669065878877335197554243421477697239705031562228227189934839581780143901090038276617617974357156090613884659686546875628955055320375445158921304531607574556361245887685019527591204916896052584417036918936299759311617344806488712865113084120645648484695354037869477993318480942552866701510981050337920931063402019268384371244788061317105264839900471317711237690155442116476970134271769795042465587571429991312664736317845550008775338804639702815799736915538118478876314736642037837523372793996160566797597381878247594089043318216193383215421741867388353389603732050600486891461865256246055131216238378927503749157637308366121499246732061181557101463611973574399541874562213668445036759429981337176710107721285372533140983942102780447261398967026757964068891077470590076139226941649626341770974236685876955172591108429917582276808035428163525132463870497724319197794352776581911363941024379466036164640053320016069074331017202724647252287338877178772734553197151472597736167208550481456886774941680614405848956065749713982613289276940256230183044789297598728655474671519476481141391051928357035881382286461873261545260099486820772399693548466304147475104868034242473380823874031856189315673748591550847465750340085356944984542622365012341370837452338315977427661286575610353604413903732141322231882761618591061510208529842364119059481673989075214348973383068669433029437946726155190317079209189431436252747753177955528233185206182406789707280947667724224491899030383853688109109718809911227242826323164133793948463908693290854465960976161064553700543089317504343686990317857203589072884083614735214075359336040941774000948509812431655019719478522512134298468443447531436877765894334183206000177790860143177902154986756653642270348948382195070284187034002617300041184684228207126839472108834710259429519952083704964058623785716043268872608246433255110371084888630924308398676825791589396051128577631795017752320521850674645786312230683725292600123079919026270386047978244949633753499334433263558151503637411861556582215149651444588278436765260932463880597462248619214142946301005658391224048385462319443956222545201070984704918847272404687419941984344693032421922961956154989548756166295945961782196596183303765827340662703383845383935974009729571073768707456321033068903649158483485921585591258818188394724471615924829588408527119442918738845561189281196106912400752163383101965996259300538043681785556931180100653789583798846580040909693873875247520298621367568592865578434497360092159742149404407853163917865266852960115650958413150729039628817809224585769673236494305575743709862498194448443597329204264577471551038216015910234750127055927528559038139893324087113131723246850432067165970686697707661153269757822929229786965432289994151343723469929109847211317705359685453547064437592851051095763521445791437527655594333018392007924578198264981134974005760347202774020804558181135024899837586067069734701338552876723147023884900957982388355153786561564504681167456932665499361962844199935255961864976465039943351692690141148221168994289418041276537851066289776874650589438052126437155068707594607164374622510334579343875726194400839258296698629192016449171224326882463689646558012429880952047063523777794244852876442020484464120364470071508344661412800330046616756547540398679158496129630110511989766997558908433102311417522567793187874281292102406018787559557270226381975409342986579017418528209487960802729201294034397529205258726118953663125428584201886973393169409327637921401526182046764183195702958253596539336619521011625830901892696776866508151750084132922607886407399859759176070101669526148920390845137935590136972616507824172365367438343287104567217426997990908129039048012812251964906972266173112538299236397433645646604499397683793590968162156917748939960064325671919020760635814745073285575551969560091535747762616295904436615595043653377007725374242136982654200011449783703754918063662903944119649534174066495010344203173803674562114677025200425136948751308379252862988604082702249354626554411284009678271991832430216403263840350734025006794298468680379381291418023066759054123801844867778016271550963685962530008491259929937200716049211366323285327670151045859861640252618100138189271197365791056390495023714595981536979578468211374999038134388071301875221548064358804550911020975860890297830584644940911773059237146548824483802210286482764991628434702727240948945550985011638678090685083780948744485845259767928242496641292265257395303346321495996361177199786423371775252798568767942373090655091710735451262766395723825049770804539661091254910030830557894498767523941499686212903061134207332878834994685029839171125130385740115862924199416162463347115776046959993123956798376208109082121195763936215797069547659617323106065291301701586719216177791325983355975998941922729583091171859453885232577293397293629932829998195536551190854677725366049366331480288282824223504407901851061389940739738518867310456975284236238006789777014188290856594770636553535716815231987963697944892483619819955730046143751993591437887212984700069867366396202411063100474880417518581546901173261136246725244298531688998183469646873514359297309774663093762611381598734606100125123306023187711550499068592792010539218532632691684219405900807096531799440866715682341005340928555266384684875770766063728248011376162284867066413867598825963145591190851573952797835936529827285700915588849627300054570163145935135580233598904897307771950665676411963821129010161870917271637432006156939281471656303786424232401135307703019581078457035253416696877062660684792559697354126458037481438584141850628710091182166023457047124514657424340917974693165375345078235408943715840732740905651409586901627211337346732005186139874145696554440565639236017354156326226436307333172779393706896729934221339248132525803656051968898812824785153801371631252750503968562938633566982289876153806010862240088951281705634832484601168370420457051826215879701330945937535848324087359784001516119832642865119644862651949777687336820964345382672316297716532193959573062017959176762345286537513496392191419485940134546254468379152069992869715367293096614638664227555453422686224439684975041622146911347701107179686358666766682003212324448742494212386716336886736141549435863431154278769580574170450685886581045516803318334964900816172461378976910710864469925583527294175388668116892998544492729763818169594893770973930323575246189520994624257469420087874343638642319067926753471912474926227730282860099302807294017064495201146403399035273211276172588568285507350867449024976312021191648978237778288373024596124428301964179291063382361976356549525737254521762681494915826821324047514156297873146724683995314456302495258397944646054221662014502124680640990477778871778296193870956665856363487444218672104631094749771783258788433049701704121583613083708761694807474299433598870708099401692379224579832904831012453048459306894694465338402830245813459417624543645392398482996241638898561006362698008416383103015640035643131049968924726780839898446980645264917037708243987518525441710688322245434301147511824139870288941771296105014283442973093373086943085765994140256230796038198026754174363082129185274737035241481693965263998163259271604080558234625616346984591079514482713888289071394539727703618953642950031647810432442606181770077227984189415759898525701719715504424980668631219633983668988192907429000650694902797089487823771085195694857990357222809273559745935250104155092112911815244934027557824063192436479857718827401036255066363539526332461185343521435983804194926454414036800282667279724900846906637678407258002617821559931589744275528513694870958406475893924909490755524009460549425758973426872097532089359777791568594447205650273343376368051715398798107702366318595648310507709901577610706287379552723413171386400269963064757630201838982137781914626054692507149480154145903371258379113779936648643485190581569381907972874947075951171069317769379747005656618456137967872339942736109801375293965431010748644964753062769042054789167195236090503489084304360859029509419084556510811225225116356382117987594348150449984722322759092683474902725563460190867154613604052850088331607302781083045015800892970022184597919556852818797289777997333350967789454277125668563732337270635982805286381073214976226015096369049087675694144307685628787121609884928144050134627810772198828555419522027750869929836465346681243412652621410800901703267177371237541921648756203279089609204032970106175071256142625055516824259456110968603265033099806360162661695073541031267407425122545731359137770852821673912018519574813292065061154650666346780467985176497093744905656683405661919081301400643104862423638192811574404093270923614901133781684628542043571895437213569309714321286737822858381218636961621707152988144889558891601798949120825483822598671687423494258061849437262867640089419704168129226879615856090239583329036341988438671393891609282317219699199389499149172523011900490048425952679903275879141857688795112967639402429275343736775646125144283734543902450473825674304910648931467389553340463984483915469979736462544788210267341468308727829251482307471543101341128988856924572573454209090397342701439627329914036090688650888594729984654656992514976924451562959110298070266143011056224286640336876432324959567697016905796460083320541253213009273348203180643922408966375562094548451698489148649000855716272251915523933743818360994529936599187870196571301866980893801963936753765391237434674573272068102784887489590624282258239231909548123803367988704070270499130257261775015559130238031643091465436323774951369994381049885640817188280712835239040558186344276754187433522901145473394929246515885256545704212219279152220859703037805578648508671618869684222732440770760178192881651658718577300850273255936229786639426307615567361301502807622960902850329997792745441129199124008616891567429631858492008327822114432835248013464334779681926556563102345774547128155946650303824171616494933987056795894263222659959286364649939552941387076079310877567914218774253421712756988741895366314293813616485054282932234433418177711148233334832864976931745135339144862988818553584266496012323243196094672738591862043571108628361051126249582606556811573046515660523258047605611556941851459710600345014989065701495336080098198744699428033288343149058328445241517830883596398453447079513738254020727420430488266214920534801514266315295782264275433817099831738927711665962092714310275595602612733352357096791369673092965618422979132377408709436771183288189825654149357627950803399130353350722224083305778990605176269998773758272233169086106764354871353137413907630106740442872682423418532882127879654510022386052285074394863857660903900544296488499784930383200275218703123875054471158290861070996855291864661614781345074065613771926250029451717850129894697082825828488880079805181621391702190749618158108912639552372191702901994683546278012351039651074245012305736146451919665983793868405770053269670363156209480012183448506154689251406403886890317776838302950177286565187332344486924018101593530912384876210414461885255456170618939450242767416234820159895513516053767377273208388520494335117686857754309729872172103488644409922308668273838640259096756918114761758033330614020719975665590786964897387178516021978113080492765416254635089322295505201879402843819942353703840509374887820612488111603012868687053936060936782910126366859552661628198128606034982045958208852439692569889025453720439593526825551832295830721965173322797197301244878466849814134507911999837092457007971352787114408951179621130971367342808526893483951443497735135988039340521385682529526469953799270496430317858983991563900828438274751705929637698542278860145791095775900899114337052983810176977586895964911130926354541671802960185133626146987567257072687563002329561702949938146763417832477668284657323998276797565361361867231737530550926120350013430103959369274872037558884475972457317567370365787557263726349136568147770347255185976235349777766168176213228678051919724288259443311803449295051037954699241860409795536703419078593533718728210078835530144607957127502054328058218572816661514908646567534046940442438874479423778909778607990617820750761765471193764747472946682103105025040063242785897898741957796396431467360965615376236600367587145438164575734514914622479728067901792776881912762627522809764691047483263982324177299994532282649294580936965867257637524083153326605070137268248929281223005024599012836736359168045543184943714851855233332650338601814754549098469515616051649159364690788270413159303885910526161937789165522974538168962212831366035023805009437956207886071855800777171262076952226488135039329603059515835986181423837411212329493236154533240601845826450357155249307771369015435679187223893051755409232405352505137265784144048837891802589266980287046965765780389980257193392518383243030891784018528112741558942659996651867592815744007013626626763541355924205938706449450344972989348577880895400079081766251701314074945308220676989786695464501157285751879369789890306129251161674838609829223016493371641497868921585046697735147562725346586295453991074085798878999042840521594426786072732392030602762199477684757316727991931711422156101190663968121921027612900976672715092271536716518493198026594426183801877593011877996816980293068788104849134585297231412099101659746309108295060513336112795219825945712034826844479171043447900371451399891928383358429952881466929492659761112505026030451531452624219656869144135914488271773719995671843056941796265230826404823029165740427761224904618893198355240530936333899441915909947668954858287362378401239257463725783253489965361931108679256630455002813525641878302894469048842915775003671573372615513833720649620633063239967771825582658800095726468041467237508584906490165243774466659815583693788968179954736479184111614564763723572611546853827707575504354017508831627137645576298545702201367921825475574136826127874210389789552640432548991835937681401440377657495520400388429479558496518454735048400375400703429759208900672516005558524004428321573522584827957742237637436171873594643588709748566807600838502819923100011947809674624229382144655790183283306640043623399768717725940259299899927476083216195399983803091869707089281163359900518334466085587594027897040359558785658386222086198609172332168156268436989006015868709293169049404527829097969951837972058694589260291463365030228398265531036017508114676168164031824350080159871758291951930123807491529470683344266458084875156853461230755543687798734107739900064881872726669207469852528101556025661619972356056459383417183562552070495444364878453946515663896051657734056812790682090047103350700275243966826293151825261592959933088725915811216776416664418572679790143452030948194099813421309588368827882649248482952631156054288066029005272866945565640466450672447756242906570026000380380758043003493587667361999643035059900336618313968383387405145176766879265689307126111382635191270205283795571886387807001040062834024278563634448562430728801635722282229684435371496108339682909143838118340704253069199905233633972215619454929572421154291840556547501216181104117395496866181403661622842493410353122967399469861257368867927687344336479290041139630590012478419207815600058007915126612998326771580164021430226488074463601531104043070596885510418670211112591090283191725231489613557599135864177921741151098181923363155140705804430242294295752435994108680527060845014764649931869588068309146696890288769935422068426277313782943263483545924398487908026808066168948969244375376244744611494616439710108317523560052124230785614457485721094162733595482022570892021794989269906248870095908807407245819415753852894942169629037666121198487229050253951077184153529943754360019823588853398276998404845251469156002346654593146418664365797900383311845976985312281761419960260682355448019037032643241366179402207644323683192955434541118951273975865923395917917972834208007921970117339968504107405596304291924599010752393145438298270336303284560392025849473636441951427937836812247762175034623858775947033983440935776126857995897179996628934704448748045181043486114674405024249046324996034784643870187109080065701437532093913156181997169657851064742863113514033405884888124709315759501443591766761603473047306948766417660266729791049155350019795625691506240046887940151959346724949919220281392235864099830530137014717044171338208457551932368451727973111152625850738254872973357966987317904922243457793529301022227062757856541087899428130159904150410938680229207503539499609027862815135403424171770804980318085001349614747406090582275809656995099173579492070771291597643813264186773422584713266437465519408805414864753416135904843159409531081889647286821903965139041536358371268542671028008161564200680759828089991224778682179723848987123786599605728407954955247991239334174004712656363578134359782488087878493523590150451017004161007542838341309602499932017176060090789387395532519154659630227250518832897354424953423650565991928739338390385516632716519181031602366420322892651992710419305613784715545777464993639122542422405286783980487383595867327636473525024306729535215980803793958691426536342118665149825544466830367811283264004815109382440145825554626612770427666317810201831707016029861487855182032534679505673938722392164423394108134363943668341339283037455306266603798184939044882037543112403244068989648530576142718012807720147198627819291449196110408065425349546109074913758445262975183069700116175157191798192155640939802451461872774669603764511154777016940431826394815114406098864090169418857971334689721041598521975390618446845291349710289673372209297009899920934045371429423642938915477366835455948740311559516412842377727965924284082620722482667761361197985284617687533227205022965515276855447567547197847130908272414444260330141406417447129252730231972551006107297442201218893270511563036994237277958012855639099501624716649262478172293654923808184363442011620490611519198855916597708720750795876500678015902515018350340524398816722960912680781637643563655742682397788371485665872306345233108253872440372838652095561526447900683481531971931766037984006555819976286529420851199601174925465317334355814270085208814659113965135095445610324492808241974653096065566708602556926714317824168821921427387663978328811428284471164680049567965582680198888533890149104460798073492913901270025942309504294958514746482093594305761003278889647264099975424643056853513063010054687303918762288595072187328920282342233023119657678803780762622157915809733756345998825225508493583652077880352852325105161294661346227270095218076437525802048370859870078945850706314435355052357870933481993618769265808125538754638167818640512979876520306433415954801270620253059238361248422105844761021374121903956549426962104723690097358730794638663161652531942614641996497163271764501662446865853687758743501570523555943633011035231538385218287819776675287407799897893012979034766665563330603297795322306530207340165208634513961095227330018568527234896049086043932946026587496350374364827806571698503928373201762477379518870804853991243410173533859539716145020329947189628248907465422102542291544622324482938200312882662538226061009660148821821986439887508897485265263104647422310916586426036435701330471600486196907224688267100415091588975575595437665551080273517715901043467132171961239890887851800021859105951996728427381549891103053480527373212233074099141866504968597579521715974014423833523406209976084265966272442650965870704716314802477663180328309138024806752607236520292814997999714386303040620402124757976013138535803728783696332022348385247665206306248006052081295690485325222292228617691203052604900371210696904744672680898666525277967285384587657628332775014251160199405038506424939867810421058961850569982580505709940499299453336972891319263432490209642751964349154513691300175682227622291598617542172664260241083368360351369486981704825862940576171432882132224261242319475730940176113773614546863954725786818205074661005137065543955305879567515270330081864198961995051513713692747283935354999925324752884151932560382189844958986319479902811146498006670063489811137351862646292195854663158259535563574341275944954639947401926898099366423205839371074957141340085231184929558266372063226957027544331363863626679132584393224344118259229166790564902380172671463595979825325559440554233148011499385684178273359360950055755704072985142932194656426519491992307938142362661754672665383854146316555798770583928331221241598673919422365199658916600821070367990082138402171791171754994418151487796371211088276231629855652814699286712345394242780831806981169378237093497102921350217434528804090770744584648361717414450983705450674418904676724694931905939499282334114578967494742981141357790207493938695523711264603248076931438703963109908687140312232088927328993704292032245465935312684409665898717333146381416820982358848483735802623475321462657796643464651118653331264741224908015597300546542940118830595649857043746673206831366930403726906115653723304710066861416185720231181811040238095755495477997666968336667428669379022566263710039105753508765333525290728564118056013201028622920700163373900094724418741653985803543269012763328831159517283598136208305606044310023872183390864520014274646331141001713628177794365357194997473857638933913706750225013530359635976526095171163521452351444752925970837675778720591088000533369794194077570218594903347583035204423720098602013179105800104470467788601253203425723891039845104796504039592637303148676265449797186472657375966401596508913092290932986547049521064799105979610263167372702884392837687277156253978360487364386640842976763274636960267807216155475143348911315966381496594293761042516035606148266203897207217719863866103557655887659307049652580679786998490643377956358323842273991616358075159581162100427720384597732574139017211047822719615779351510753149366211071901729639222210722713877158704944870394528977492473431900901187840241360164382021324875444909558063278995274452844066785887052218225486350057501992943269851179768228418483816820441995250803619593610704552324716534158785785436738986942863911392622219375325624676444019501426948611623574322358992462516534324386732076140363734816663643574526115055890499577648285818388042473826244374621101751174635090642204529013285875964802458096101602204086371769932001649834626093927783741565938536463830554088836008311844499404635923083118997979874843192187604638200221920144408329652848055868286634905460837131860127360101938431254309104118511228485459381166344794976567190572667108446048449891052034379757174030733562159399444396572249359682892028374304044957659235255536595730474664964776876221975892928855863474353171276528396742800695060332663905307743665850577461342730602527088875404565046960220514446505020202338217261063240493467633586899317674644455965082759429972769657105450096377228278799720544570037207145882107160683673944262295587931932963076576169623566415341312599565067749263497457757409962977106689611466850375950290917142798713938505772129189651929244283444897995280863014190291109707953438141960332707459639119690702137140824308965206298255194423773863306593734102219755650000507877431622794345404264153094163334474983307653682045430434127921330447213489746574418939918845633537093088458320131213929310920350756461493359680937992413939730648168312024834742381318522271029856831917820332517438170384500377066249778117420935230790611557290242599279084498544641347781735347422221410862541772724811131737453283258541022354314849127447485064572603023896230621429399208400524969764553180738337461766468189091675836405929886130220911575380746206321591284584524697009719834327078663392390007954271341160453328898722857899885108337330034913614144352575179372361652901781165259637253140700237666091039161690594538479091398355606992847778910403850386868282898904822242787504116848255626494377769272261812199099785249519477244587119217094349075804122026567003557003064351491524088941446320916342153553020434266206759457025833821799877412604345738304250069048299258812202648218451546255001688967150605926015950433336562778651620847172796573588307692144485489166378288299797406083350694649024899706494505256252439609073858106897174821166712390341604395967811482973612303105205933630382926108353592974454980045927808967880081444448848213698139649277714072199981517131960989081389948754823137626968245319195543507664096508278643144128802256525844280777341324026819347747228447789277213752993167441969654012125277202440832745456205297857250904882616898420427258458263353223854627149283479570206222253157359455676618371310616277766949988771259515030291823524229785998566253606692472809582469459917646456750657620890180163568372417707719981911309821473469824969361397149575397824440826234550929943571409024737483555962309214269890608445884886823069667119791366124794550892187506882996778461992020974568957900680491375358525771247152827235465587986047828741590732071942696202915984183164721489603390689489016307974172603468715778197622232041797367347217222672031023922855685714715580282956170390302742263270430271868595901787629870202457440392244678055864647740177598623696764868549446009856993217210944390578400099834347652940116158615228960189768206543139783035027529758883646740297082778294661550307301115699702594573021117281127191023651840924403537955490460616890262670098622207507467337926945703765577866457796852660279166337518276464574416366645994537194965979523394522895891858024562181492351471805225741581451034879994006148142780250972281905296860587376398294191001362029171058091149974468752032610918305078867260877803976130950821376285884984232956443480728486070411621119936400182589176250268922678656015569184839861870264568035235084340994122618715316846494598855736353450924715304411673918663371496762746046997268505086324473312738458355560770807783106292354403769907155471894144543215203938638142354590402467258714390468224108809906949673101756722676419869992091225941915948801386356692032664522083177077222992226866632607801116748031802621273670979586739699121440170941853296959385498321353103338189011827551292039607756511646912740611752715170260353838490093061779732627141796948602049529350484800208446548163619394669262591094572176595117378654116706051660301499996935895084151198490817946763154312549765539330275333878211436598624095937817508699133632030737811940116956785138539172870869144496551410384599599442959494480570741826589708198894983227831891585829058546349754017941720433029255702368938809697406599148309048982734536922204898718131238202137167889697308349195606633600923592382710611780261045270392573024907987275764463750277107082239219098200057076869791119729400564870456308934746450011939997996113697463297714443400979721116160149827797331622130687335427147470490533985563991380958679899076260644855699649612934886797180437194690599562562914024203765136973504208559594889961878178530309186574464379702464578971202920391166824157055650465962854727879621839142784326379832952831382455357996573163649578980350914987105639198719096766945343684987252007774751751426800298464109725665636785964161261897860901018706128719345462033430016822897598223482827292152568038134119937686389686260898529283751052666803267094384746795945038478239976335670550770842145479830900391000326648382536001634030610882148496311858319998608889574384235767968421311245929759536003154283069999405644957705254650253976344825315793156574508783327227017577210839797043706467613377728353893591747639978036616234436515772924027499560052141047829559685067823589077095706146775153701691256402780798816056207021715268279638743905201850442442353079170922262429146893694392995478624312348838210520433023097858090515481095177177666058080327349505448535205655462314675080500851497991106322484463696791934525565740966323982155725900722360177852405978376160032171881617850880434433988027154101845283168304403352327413570247911518522746233512226909826131562335154804631251532524523710976736454765771818171206819969259531408583787852911498844942592804444552242664916698443408570537013645406347108782306559859019830449754630798399941576627177648997332649861985727546071819291716351280013140444759270306994707659053812077625553677989940477681889403083372029827171771765993920317118268306042606497559219533415299286990788761405861355998334292470612391186422301423490676334051112330553256098159740409642108250065104782525177608222078526968182984927359149066767192444553088646368695707043133599499902414273344471227452564203685224927970818408733384420872383455365194774570545535803944412326672885843186287088681785282442748792688331227770665544237251780103028470639737659272087013588360198014566468636439309805082375897379727917608894403575765142518156626890478409048161986636243280042689613721339013407331869424660144917543923726765437610646322370899159087287356580648803516187534150110768061545803177325698579750060046520372848107078672913022520204539054729314611929876961133879067556125723114798026017418873931699766757602770306836026664675596244742140324410871569094667573787477109928383478886605929626453310597857757042212498356913135650104894156046987668557488205740813102122192745276475266033541974720318479216803297184039839627919724314138904433192933296922222136431823181672249279209692108550337049479402356552546892980243061926943335684902595130446940511217219978000453060100499251509633003313170843955457300534980482256531819483205152003327361873726412994852500481946556257792469818529193640708364518682069253835330057422938947149829085508632186470286573816761928639218133975966908001477932200343586207168385337066270278577857781797688137456606687184663943918591935077500357271420563992620697703339981599148010798545438062381373246569404837194715484046808981581715051780441717685931503538552744441890093157328870289014053628147237540110655971211086063733563549983472390196417189231201112916601659251944942676912301060171176310817824901354842831494349244808087727258629407367838743330786262049659167870478043097315536958335308666519741258921656733055253659271852959976173963710605268903715292859590315504700570963789691169640823625131426674443408005975587969087334444432979395981948126780739096546378687497192378322856783436690759783442391057235658216928072001391565418260618424224240872724964966693039846843525765192073783680041681089891603850982407695609168430961479517298831659969621964335363621202428982865434336562211088626109930239800993355629872908452901972699941168636975519042506302131624299454930328037741396430573983922383397951303654245258111260625472381511200070803374659722025357977239265198410628949803805979533203262456550652163749459102013308828535538320243637434875112950356430501603743892070946611584911035470589631864313177611250332660174439291948362731025236137637544705082963135238443093171132406972299056345315847032383680008995946242920489078437202602767048130787347991613879982466937253070976368492340988301955500819897784987304075668367216735620151857419151999019260381875145252616302956266419055846453810437160934867605949408389622649046752415796411947499828877987362850648655711085496351835709775716431726663867394349696524789656561694943637389911274725980843502579547352543116019399908931029849851625337838198177373032300918954881887813453093439332902975302640815536937870294048990994971958521979928468233743365743929793392696986356725996834233805446676335608512338145103986993919109194571835374663871657146099420402022412974390342179761182977294210613886714558901107426104478002936575304133030514986005265969020298515556265243107048521246909608703446206868375969337919272632432835043718873355323379338848460319317705304604489345085416391319208636380130042826955444285130621799761589812755663416589669553109173726097687819957178989727943514130595709424816893874777943360976526000044109021328135628051322507163214001797856757834510713557479403974446607096146318533778356406100887722156181034148739559040734747996470181745630232122876955654264033411895955819619752220165690923403513818316581362895564002296129441150192399331557154705881623243206278549940138255813088972710900463212534544724029747479348103293779933270187518357953541291367711616699603968086762390332360645996608050410309294747010875983505195815125999250132443123632531749458647998635273887249368914381969037061134032475270272643396767295971349277660031695202723522177272737292586495106868260690435208570740149454912596635422221013764739269313427593044443024999458245665795719023965475631576677344680532733323925448677437096588125832231019155490656170310197031362978269403922814543920579817335997140225385269412872926066113023875972777537642200518371434415994643026891634236630570920868889287190272985050671099760522113279241462762583627869393739095368924458320663091003862473432223393924891354403870393988809841944760208402609393040933958938909982686251060819752748238980030709398032796915460305214998871628143743561593549407634372772765643492322608018259544387643756382003797107159447728104454061007542555052759908864742093653049641414213686014961398978849946203941955770940738446226264791703217078882368142737886302165256409120488210725755342150344297893235585923964620670476300206847234265006514454069270111716733843674442292351919564639388023515581655633714348644225030265804219188443798635484779230505923234317295078969544555394528459403527754340367929462465025927432714067019462011504210904396933120226887472319851681545069449721153971076424345500316220520579520145649860107569853180076551150672387012173442543024682724490563282483648558694100830448924434811268103168773446006560471292450630769675332988252363245215441319118670073226891256721538843541229728254866408467817755103788579840629592008101474673385914599107856718503389484376083408446433129663222176535839258417670655192416723343714518775628132088001997355683727308719291918927300195843554187166913902987775057546955461665945216349658727036003377091737832146648539719013483359072726888512078674605021418223986067328744049853983935773678993085998510724825712583772561856138832228269845170781993952854018669957035624974960367714702756906433562134427090995298862311852207835827049369758496835739016445877030403066441930809382310225206776758493824163849209873016068983652873067482600502580600695438860698592489275181561046389865490497714097545690128716231079357420554231160942830251341077529685751168347276917782563512076707836443742936551825167599982323742452604463170105869319035221134250288628909674451112874291618200643851381303331221085374984394276009396236434439258206682789957423199079410718660711049462878242219402277856424847014014706238547993955503089226292188399632730625656015283451618516407498864817314941470844407267188077707691326129783848987245502477469949337187848278916207477450484083067865025246112546086430813412922037440842289384312534494181128038493890883133789083293392703588545179740347899987186198666855153713914499647476354863832583360606590404546984801871231699346014943145852038784912648296570912744971445290457624439502414125477278898499298925106630538001777328462819422548420774369360130553472974974388376973306146924825814239014843644864571859391473158281648621731928102258510911724795217854850464739148125088085397320164965580623386295518113408607850092561985899215738971625038617831048231901938649259891933742085992302607373382087957736480760664199320664404308925686405795846165876728469488966352845193287670769016377886821777950853206881363195258988352108179846111898763723047800817021795459984773854208550808281753487789260565880375805490336253426615996115372338751098804256813004464034832487079563834249103056478239116797920741511609631766437734288351949084447007219711538426539751169812929146147926157092112198834874208080319737076055939305862624634794935191547512920754570998238697314794065138301341007379410073943185517426974512411250477942748897941987659702597733345320638103342918693642988645973718604954065672300203835595834720047662921261198713044050624684275371667028338234405942460473608803642440520921352265365099386630107717326092252793011559046780590580171675188613975935667888630999462505605001803158006601092696346398263303576371191067907114340138338598684268546341108666845788485647453767763250849784078714137023316754047879175372414830157781962663106022789768545850790405455876777323956086465402636672808440852633886702271023658419021447844958700134705756536221832555232856834549753942888153298167913185972527807058923344635457571924907782842752067500267162066043287334823456440646345117519151979309325513710729323690660640221900320037203248081636385691394819671693188855207576086764960466622606699892590253786540857670854162415469180255233035377312064792391020740379322453331788349219487506017356947433796894997624606375952497500150659331818546364675743765493216973002643536819863013930860980373508401026875345354576450381631698262321194367664358001799715568941875832367801264415647049055389480474036515196665265103509702793707853936789204627998557858757050274389915174462781338871975547905478978186992914471789025922820581083103973834546953387258737671000775113115481436750663033422826257007532104335728750209419330979195382015671332761369502232857788710390031836378098931346887305668194947517272107970288815106050168068585330649556573676597112697600066321948698751520731871355180538874190362519569018953182453437411624605369750278939852009385758681640482278481493331874471446570086093924788818283102767253506641985806493170767407187558744388259845113567060371762041696658329670077799381151004498825205589965207003302164855212671242777657878507787514238544139473455894542067031466628940123766109365363009219457085192691178133932007971393253616593371855031540583871153265619881683534698477762533512137463344757988796436542793932559957706342440939500207684007516759938979167279815023359757206501494791389074744431252552583571631297687577456180147848688796157216161938651343286031580116071590393210213465023632029031006378986068085515661443647690978667162595090886749697380174456971363466355688573089308220594750242147816413854562979738137685287666192403128656009845870449803552114801298620879489518679487190625343236518505637401399969935235571063393962022681957243746838024030603289926606754864308284062259617140301442402062037173688308833245064980104982925272109166371529802968062981028862301809876127572816541553771825857731807215428009848895263123417446057010400601014358690472514170260096520948563230498307405869854120481142908261689262788776868464216239936159228150046114217687629522639081641711502217966591979399355106471313316218413413480618617583743848432534815940235517750628069642369125175056373269065456162363819958448880153963587608356440068306975695270703981879832280676121089029211711841167515401900757049093636368527810901581337657254281888368548608367924322424406237516335142723021760664319972545503821086478272038656665138450138241578740374439652019489511341376168051148873872710277516848228475694079150147728764493132270752739201043351630332617919600719557626675762012565348014467806179954925947000828599099122911720677160604255403945087782719842202491590838954108461660752894962337308852032272953571019210261619700454498980997234348539879691469792260004724201586984464515704242184944224102234108903143070056999309572395505483822475133245817514514229262863257798618231825543639788731549450992164444704694430773999888499038257979498030003951193034771490115139921906450923195749702252714061216064447874741332769548159878194221653356076226697594894822013260677988526768394924978520428620693548525760369925884589256497533639312995854893278932955684712725455979934809603981017277529700478042909418192954783035279078936370568258236291676953349287249702218924595945611923084329519066158151166576096199890645203531195540652640175949400711139278737053509859547972651209260417317811108103335640907168911040521975076728993336217120417465652898438017731064235555512963763530682805744191831272335406609457636656079714213056458713975051651114947297653342823162887196989898965485386467002488545018524919352205043489168662555959563812302338617697097970055940646615674294601755928027631138923503159245001324701463915690652335482232069519374450068385241169661599241848922730409624938241572312311260669558851452930868956042549642421867221500942279338560526590026866339396246192470234474437635525576877913479026399862814482091015178954195097609099216159715933017637284569059145784610370121806622278943964674922092731045026715880034810990475525212434345903696919727242133697315116619880295847542475216543284205862575012514625087881519424734659503253332096695953175034799012319261635682325688112913803441865405060400550477487805050212072521987939437988194836470322605534939070196644111173605600686284452334037103506787974127078715407303223493015000472171139344757000044159199817047516397662466570969613597239726752472391358429446988432734766269843715843979290636841290179792431112017867577251871261788445838627703065036512401119092104953184855949881329576546066905719669677355798529549649567117626860494077190278674159958987496723572149089361192319070514018980179303707464064165778940877440162001148368969103331527332801078711568150380836895586066417970874469097753506016931179047091916285101576685799602418516580112269555440987058386040593621889856268931959897273613876935661175606381563860428401409879901799480335484669386681388969196087608169952900124349462479853964021765810831629725745065778815927195445278666421169775164907429055503515193061110642927898593281172355214038137293574912675838647336318354503047853350828433914899146051066227209686593501640792124398267603772801591096925963182874718411643809945400284343086940100316174680282986529199730138506849639715159663923594030301619863283448626615977967214463485865992432629922350294051653694118622592603221216169218359649267814453781976232886808556633000842956099208597719412822656428683291377816357866052742768430827165240761306848906565982297681427406531597992836690944406254184158647867819093935979659218628184205123010031957366059787862004959175379564167202234279510199703323038596183269924874008915590281637639474754272709324717771504366661614818582228289491120912890089010708787340390980537976389999179111151744708630012027268324716581554828986024612320960897826714377823542677214140177588525487632373824566790271674030031165435245124179426982156840421728276107368738165394904197101296883875360681457599847537797868787829477955578501080534403831708192614092397136598169716197618983754540732382664649590298277045943298248231802643702171815183565542430178772480154272338527455226254269227283576295673922934393950283749066310195222214880355517362166432636944716780566846415049203791914192148029292526549780696350511578202359660204020788630218975335226657418494648684056589955146827545206616256335868264537804687573009572854597994063121149817808750765469613651512883675023935466217190452656028122484045092224934927637265679753611411618482114575126354854777937360974560513252517256937420257734712479961877434073313221743313665529271660286203973868499267931720699275950344335315854520484821315461196238817170190792407350713645293820565907746573155847220066878592117987530572516786593653535185413871248090470112159679726580310579760852787361270511312129440363111755945111506636732327054366675191844288907909417392382695700270663836160754294375450205907965305665213666990131292081107101577752137096022191235999394721947537672555723683583322079450317155362851602225791279337889081259518473509175697800776502452632916511878788197899277228912660878240380017069599958139857286783138893827375594286334814542291716737402723332433580056753944067863809719581863825423900492053473357078357867948031061739987660427688741870157022800571569887988153904600193292191413608675361849471331194496669801894133674928746277712991370277519165011428356478832950824437500501853229835913711783597013583754822195916765022988105223715545700971201127152477884407109462756407631576862020268982466467564952013353261480826379112867980961754543162835447061842240380392712498969466017998778390741391022311370553630087908851592168543449692370641260929737050109638584558428299904439194919646354384190666763665540417072597425958925300873390859209690807682013651134597743451166570922688314392783493405154967677250238404519245583237030306823749834257430995186912846150404882685038511484062795425847817762437971767055441474377057738055002530871846529225802839091498543022661667744344876658903685932298308633014210001899374048222201889869649754456265193956029301769734094603516044621997346643981821289030794910672582608742951378596869499958811239903330090766431286059666561246117230035860858597361280594824910054078749739786599069384608172205145449890032378446957793295082454775185271161620713746672447041079803351398875831679774587244573296929784629227728110546877447786818652364007544115602946641702084966115783210186438849736004100287578341066723348455487684809002245908097926546658913602332848047078200204058334944281282054411425044287429238963170685997951629066459496858109741050734773000467603844330234677116983027195666357627921502899095690511657691529130808378089412546543380154569784873750200655857474604392539950547512092702320343863643148492372818535082086832731737021239658238842245371695413407663725138808386322432057193401878813236180627381135175148629440211875648302511945808228138275565740622772633054886423419955842233249007897621942791466278451609046477618989599794906020421494030825052736981492091809152303923304831786397716856190102656578652610328175590288237458817341695575289433017137782395172459117319236000356548100565734187670908231285623581802716813910498295761185728683503248590461904669886751691780512174817019742058132470026587137894866498439352084280717819425182132706175407126219213431147854111375213016054015745208883077424451028945922118034087514180108040178671136598179393322950258721601103210914336248012005396909433904603018018180552588607345463794611100235712751478000989390994318468404549475269095577244654672485415729465982557356046942080572296637299212159619915699991524980461045136864062290508269269516114273005082839272639773881142608205131767762484872459500262900349538518183257978246389898234223342483288883159917364331735496734804597764980101338919968024124071607903280438538809441669192049443994710640058247527329215174211765569520808234471103132671213527882450431149329034965501707697848520470185701999030765827979072840286424955563777448455645398903694023502377812134309898714808868789434139443892491767642054414515246062294511564366086174722166497246128109876489802961085569908893788887397089432506103270964740823884019152565185672424681596538743202290667636036395738236765809294981492921200825662411686029467397586532872707084677954486106504557994840999501643597997579795962954215201977343254805425100912993787588375930634027023869412688066084525529441661390393595720437366468637919054074324724883594143960628298739071760099970404210471383059732195054243223205671731092601372571901406180074735523320170569547122652431149175820886913093458947476389027624362094405405096589453966256970956178335882744527908030029937568864461047943003206362636624907720678393278043601048545524701604498737608521927231230694962020444160985798562274719804706771444098046012933618611172673181633028264689608506502273997735896119318218576622246730639914499646754189355226668613282235182222930349632221745482582557110782320661223855131573352659597436793237097681353891199269921008624230647058080106531807125673989832325178811448686500151849045403733760347530202800476518035314992015134527280847632425686056224272739359111418376854779401306006100395650073856169455617708840983620347518815539295839195755639966750771459623818220464095523937175159813526472014304565993307423680514747605103699220197343736177464363488124689435236266901326317012340348895763322616100238424010207656235185169713355138852197689768402484881001312006600868213399072112896605223300023268664864395633335168453412901093445920916796126092961558998287096492797676881592426801917850845729537031062159258970180487592689733884699019553837875602506293800276140221907781544059519659313873857103010587718810886635959168279655158524774218258410128736038134058418288174425073454495540544569845294872845127624758373845429899102104151159317801280786454823755311954385258694630865178887957951989651434102271227595149098504028963682497682238664261844654487884512768700981144635573643592045886466995758576573361744666439821194475768118027186944275086618212431185522026354252683387835220864459866953755760467413153547142018521800688888802709121665937124311394406965133849972101871332057280687652013179919165535907155197766456803453530458890133789503007045835011795300760997182504627195629403508637953392410221357656326344066596483399972610539632883704005271240038226450908212078765959964228893783452681862173201656606075883454398706949228637774822569050305606534078358898269022451643102517108827166346926424438820156969957105073586592265183498246508386120591210826330083388820574610922113418229923440247979738098772404358137738204623003395678439915146623896635425470884289086969493923370048483516991098370493923254995207747634815980343978117001552623675194629205724537550510975209453670235781153490638632731589037510603812143582144773059598704645555217599853592741324005769701112732366972003892223803752519027120659709031378923572833359122349343294650949720241777571850518145741816008357029605677087397134620239542599296158238417323275401793852418237826016373693734184316278730751269092934106518433705632244408651684732691334165003218031694395075102008402826967076459915166374422600916617253195128662604394068206191262975593489138593271488012159690049866335275415451433415249406438085238079106402878685249493726102413621091565048650301555888837700919823263122395613865585673026104817428026050225936984063220186608681914274493583686379482840451488979070875176376285387472209237968684249019320707768789744416730719405004421546293421357074271040807194180119043095639075521184481175110779237212716083273343180225709583049045766105125908080776605709010227531528615871223696041503566771135499020447039508348527787738649078695013367075332616044562950734942604274244981156993561828308626876989826913043823697773406892239009190195412516411785950530006747336986075046776361656656812500113197805017551015294657475236936260373631784453769054916250396648563803821073943929618106417380728421799313589160225593349458950092888088605480119260803120229933057233938271992043400410485462340713079406755973937143494229287344086219585368451014652413428796461698152471679382162437684289273738028495661212876271610486961592332233758155446587826505273136677293034172819204421735470542159275714634004231137423529520196897789854300985729402977062827008761528476729104506322619404699422931232280401515802322223223656491795500415660295572393844711153263689013298168808518513334116016683757776296329737226482982080864127832605012973788053759952558792180472593060592944248335494776398329643041055768868980155387799694251264709710197773777701937822398175723657489786057479738146564556322259389175892167461881366719997841972418307156154057975348572914490637452790744610611139064965533715363368636128286659436117198364029134399335526238871979912312596362709929083922166908754808667552627833777782843216446217794407081837424589707626279913756286013314182832165172309422008295353153765483434408375356445339966205529736689420010965614301119701986698022499972205538254435214108059190274447700257128849708264439497436733363903658143917380136083280339402443854175671375457777248419535834570741518470483084490107648749985827650351426128858695208658795412538905708910154927366331477761630243267658924236797182727618497965770675859470921288747287834088726721447967778054280446323381413735935205852437519057122615730587508546876283176483479725582835357109229753845179239500008466944695119886233134467148195122911224921628784872756897243851491111416541768467353887155109010381227724556649899832337250468557906954215768208679845990491036086131275142989510738190270413806095992706374914203154035992699245693614812635690861447805037663592063949506784593896330015979706944861942324434930971634930845942120668561471808048486263833120376900627699953428142724112190648375293574795350063409484869476508555128591821452393147444614966659417019723240169147944359155157831725748452481761154068346914624252871380305495979069522014016880107650428238887527709370596574045242508203880150705120003230786299970496825021697124315280445214083628759044208556829569203550333422754269170545551154352023382396072777525292827481231995227967569942544086328748848921120590996048985312358399327231382833744194421551170303892014862054989249260181014778487760095894355533016630017855838705016601425265731408795943254696679258669459308530602997565031225885160226345562453465474598520203234594317854928347034471776177857755838640554662282017210134772479180418242678980125073627318230054988410563139951208682235389796464544567489342751753159620843288641775544681262967232031996594704838330222454393111783769697669001121325688864684043061412176000049210719402711625684872563356543286924638693075301128943900702487090817637958303939754724884057678984791962223833822132106903003175938579733165858737793961438775290685629631057386197599435706621296996645097080747222991628289007080944352186185039417929948271688590894544095860922405167382309538063592458365446437414266520699478219870468674113436955504960557479979872357584321635551588177503402866820540234277226400440448707552545387892193707846421542814586699754900148874655518253857422712249067980219248650141973095803176506804520212729490313343013620368700578504219803131612817248755950685592934808522839022526730676125782699932054549708844254315624010822961694652735154794466155149527545103384082136367863586562424097548835914139280422629551176243822981139894976399822862521172903780701064552485382988457694113023508683957838161955761791090629207925477913892310752063504501451884157681924879708657546265641061027361039555447543643861568050697523418123293930139719455375070769208416853767974753907882767340120745320518505828782928899757837559149307106423268343240861524590524395167784864367997171835768385335589857118924473717778162347471171958720211724009641189952647572270280765572901316582810825382451270370237465945785546963740528618047221441998867257674586904369642111323502592580780008940323862633780457988381953696889821037920096007836295290224683940087457588081061042522662610617531429503123487700020515512355698100810226376914756635572849389233542395225442528780904935848407824958026565858336147184096965240893177743039206503700510400970842682637962155047996109003906580758133758986508767308904930078952246029572564166152994838704469864005663020264789366089135493696433272304360970148526196225092229128020625812439895060332048015765798620374569418351162122536092615921130554534537698493690957501772027971583052619052329503459938202149890450325955555263214845219745572804315906898665063392603905246030636717872136238709239987006080663444667202021196779567934734235518509678844482917486019065580227095518971973422248752156966874437347053534821926643755630148025517850917946291124534247214983697287911952370585255782156993093242483239878469303620875176220797004976536373060885076924857806267966475704845225988132682597528861516811386683012497455902073723163867190927926781980335037222130860495621864788223364805444734354972326443830306028152282902249335290837717481586108785682398703762290115599965277117228834008223790720298666949030286062896765769219253557874333039054000872930781423058907221212784916846973381246147012515372993362537393006369504170446031458493506658095968389848676162748541513300263309587551163490443837543732074461105452967675867844314757015077923344768509726993141898679468696177964038996617957268262529345946481233028310966859845228788847835128145118164952178481082569847592909237127307068181494938558453270252963862413407588714933309361512179186092997168560410768131290796402375349512124732782889297765446525528494211091238312570614504220377226410971644389710538901307143521344224658154893944092530491399284886333563054353273879682595176567244812456862081723616772076413148867491768847992318066937362653927692393415169418869199018525385335409273602779421874507446014471314336858615736391599494205773543062919835061396215151703674866342936236002067538685351576822456980674748771502292328072202545089289215776727949163102557007231330517250514083368880346661528146298348164680599266371772953534935494825406102548710500284322263381683709737063433125138922257326090986003761183930030957664422693034167966832898293408021724981443154799063070754105325790444199075347966377059589101454563252103717968168873027096274891132598087752461118969834871868114835851638809584347235534835500264279739137744723038154446346947559289248731956832896925144555090069984540477736289954824483290528349730280232577416482929309401442642027429140628503001901415265147673540241124013554878547785500238517961126347406734063115162463468565600387797775734250351966996779669553745071991849869154306974561435909897072490260114330298728130438698673651651463772538567781248566851487143277545967483141986633483705362467504407763355865520363331128344577153059379935284402215984343382031117258603962887794732485184468741209459261562231485746391298328905774240186387936717717815785753411562713644769935720552601462214694357778106038476776830059988702498328627367429797509759466555626745196445341573967379356282601623081679689934300779471974285840323634727167292321543670175767186236651517194528395160874277222069090284932174127531376169065930198910028550372302071853725837555997732730305306919238305487682831878831790026799798595137095109422311804727596612578942060322607132711730778620693209938755808615967155172036220479937666075582923870930768941349266510886283878028742225239520619469041535562630364402950701005630539251588019296380915266021806103224739980363672100047141091231773410411072532625985270929734918739381013657404736461647747300842675655482540533355459115527912943277953087411449751101015451543494065696035033562407261180091859204597163911668550156167517636000146603277344214123301948972518915353003617142132154121713070204864042771209852082642575261943335568240081300761762654176466606489482760363129404776030221552108681841511728158098480298685726066474199770597094739284301582034994209579240486260011672840349460845191916384389535174777631825576581227759990036793291959697522827715599231880341197021237389449182179903030678371102202220689366298062411972924879343583885648081859770712908190653628953118095108159330203804910290724768859745433498996339583600133649827260883395445132992400585375868086857989271866775348095349708203416137965257868022741596880814103777936275830939636844355013178456011498950673822322297502517217395063983014788252430406740813912345041832995315815763428418180788325781751324611860677198759551803900174167399114826945181297433171400027560427230346262008406495357157070133682059500367056235054600378447851634272773959886794921731442456741655737787484824458911059278836174215651411797503654420024119998438056704532984880689305275168183721031896175238564439245363894575058184725762991980284773771607751384754612462294763611928027870069058067927366548501012184198883768507308282048669252529498423135521001266436269473066841806321050000665298113517735624148676692645992032725429552658170049150316929287618662276493375057428486524904986589948708973090775165207945288393673412453353703783886000439461030649191465349147212925201945417584321603002268768982521536089064435657870245272508144738542405359773945149644065855810273519389278523323261863195372587726186744709079724814854970426405244366488882870836592014312455230678997061343631749456295881476422937529071953442719630856224813426741714113490012835366909298067594575079692483892719997605529230276536865555570523279317123180337791976452963060513884556584888846068070580963797262657523740550468818057023639961299640171663690207260866541513076728225789960624595968503717536952727983479886336017375194294229582021347494731820776657556939375774131792198143377315028494524236058312225324388523687241068473687578674145787170565620614762990155494917882675086608538847296168495535031425888461355625933781913545840326474779073523902657784822155370913389867130101529556909133595228917423641579732305032317921295962767926384322326711650879689123695225268895990053397626047530690520962042989733248497630766637112639712925405556873875017158973505289573828116388077138041476276057944226909531437904566695237506877618685496961928412625423791766866587469208403877759030838169384016797289414732373570829253803799684257457181834044145134736473012141973770562221822425635084879525773459261908137019266342440516888377831997077098317630644431547030848017043897388989426949883742819763510041617749184279601344347941218657989435381756697036377561962439864062861010973384580920823385089579389695344304276417499407150465744761998271433356488452719636672134718143083474376072368994092437237288306149560683581158959526179974917155449576049013160853295098464780067592095164347596390919541515523584361330455656037753722164969748277509615436398170087098865565061090660510462642007355574851163914775241839864604200079936548275647850003099133994893020305057319045758626186658295587722543876391889863131870444287101182908809681084644362314522285669177877358265754014792516644395989470368569890110789928957179910467784349445085285066569722285310155234025660179917901046051038793987898361481050408224425938994594146367951683976220970929158942347032737627924976694498792845217399752864862409672584433463152971218842476748380981191822005841912705482497554732868555233696219490332037394176032129113223945652882761392468570260689954917303620969825465163513572552634458164068051479880337546971669218975123106154484416281658262045810174049171386011229863637358230993626046204537127395492506400066095407572627340594987795175543289328441084910164717843662454098313015711758937573255932005282377435569161340169929751470541683340813749884053380948502650286250559533605977050044245197629975913511580884998914910659727558205343702926258571278873489398030664752368812243268110998976739362205252911455738545929116603926642505969588898916070672737735554208290349094815385589519588705013881756314256164097590943431515163645462531514439463532630602256355012499510552933509210805653043865794736226472981341459773066378207813723600502652515618662227717151158469199485471384016912916835337433703402264729150792014161770168460857204830636026468465329410599581578885638339864828962757459231488976201870775685748635853735231950535216641851997617364119925921901740497808827136707768729672873298736928600143525025588792428321764321561994358096114290612866022771368119620640341770982996626551175615916346896448463287074153470780446744461071930623880433326305602821307870692943219251195987129805213443425901703299397177513824573684868410357889102136069719769079023960218470918683027152883836178714660192343332859744322113306698697497505614564305961455442584864891075463200474434564058849305656248621824897089253399022340559463260853943801185268940847493042573963961398367917936785638426329851385444166626604200465527701792546656532683801469420055434433295850672893141374230255178395505661347234496921851436626230120477995592526915382070806446240244220338081764977345360190122562667427385099959026551430012070114219797186533267673441499973352131264957598249682733583553548576696357418465828311502761082886054708495849175075107685807621727518284814208971544668127615957989836356998365526267686237769121126324883095873796555283632961540251661300536880077917099269990792734036399985050529131289997612753218306824426452316253376898355786975505976492395195742249822085007600391765035547983249976252039501985386636503378921908485081660378610940040279421686077203831347634737149603325935367418060528225910817794903488882432246515938510750562737738577123496916056247391540937327733396560248819852242763351962877662325875977712169053145377000254667636250618611826311152814372612239940192597413492554600108600817822925249814292571072624629163330401850243229890051829344057038138147608390719555269843492152133745849086106009287775017944764595501671925882118197740790091248497754362458737243293604272518478230779120447341130485855563234334798103450603043274480500863300349221042137734044635660880045170191714140940946183426057847197923204389171463410898176391481296642935452308626025946994138027999830749295022751955700263273602674557323846396432294756010568841430301690609745653942771690689439216061165047532525463682964395135176052577352828697619394429018336903463215831846439021015118930898124094320419870942898118899588510528470510245413664324871951342047477116774249231597970719623842278654916042223361030942264178367484199711077063974391146681624442619503224453892693874799374517581217253533486380442915581582214380642151756484023964207310047424769272522657578417656058097414292683899124410076870705338435041526238789068364163488890361041973962744655051635042652061308982067388885923924261889279022574325313241406388620005445538546963936994394500600822470586175264491163070235853745182061148580910303092598900744064359606556616514444564914857004520817706745826893986236762928917580053334204943321891102198698611238620174786581552814734791595999689692405572439331984658495334976689036394761913085593972854682448230409459674761745705711560903299213549868486376402677671479716056506380254482368567889894034642924641427368042906274984093291605290924912933426141468041565162162838036638126587859196633331844968905887259599239097872099242511381994433159800289117933769531444897141222710782824325716739138155600880860444957905799814697289554825323840375642818006379622355707594194775927406108347995403816096152663702872697046485252371012277908541810936114569513280725623369039537105938766179606592146961770742711845724203181920859257967026561615011640448743247185112764998538270838866306134161729801710767519754635274384440371204755281881542801059579756576976133821733702408875784694635210840759998400504536684354901682410560860379947879743651541121319479690855945215175193140581684232959047274439575485369740452003976608613294459207229719501615723105760860009493190112562903628167487198021241618918412443779443029596097394362415827315772680555521851026852168317142437503226032248669284107249694557152655540433289014036634584011135024234771306272998568686173087346712239308397877105211324071993932583813797453210823224768541886282357415147866946179057244297722056823918788599480407381665268835357620522674662241831602783156889695080037464912081893794616666986780649690851300098561132938677483734319181304670694863975508604571897219598561855948765757804754889367586655229659255809110373451341311351005913862598523826729153632325885897728344275031773914118478676635704794076249087119025229568366757841220343347420612081767347643804951326251876308069499441460270912512077627173212094754484751340117838646185828633568464697978515379033427600745335398664091920832306517027191222097691332914316619402980884755220789234069863854739740448631474825750831366286132200341231137709098135888627803089783377913458803468427738271959354109243116257654536197728361300695441966826915052973865468307862565923358067526024723884274614532153601564577959183366598588938966682647632670137727782316503543460932365865389507168348798557754930588855493740134908936100540373231949958167972485205872833821680773879811086534721900529778947306832428179150282691674558530293482285999498786142627721700280238085296931067065620764371418050325951344070288701083207100249184760728419029839264081179671551820843825895519115154992187618305499788273058204402392363187010297290091863784201383243002050491208458817390155294985089317862925186891816249157085264053631164225716434995663445230722003238484818023177244159589589254257272035223210866727795681236532074199492485698492421065990632794937299761440509607129566261171349575843021704543670580060423108148155181899241022419512670701603736410625919101449836118652773333937224763296149632597684277312310236857098031832603247021625005184612518295851079407598798880465699491425185722818481480252974853513721561938819433037459914982554408427354975133540814231292807923783196265293662234554156297824720252663820597173167026290450742644628071486303093909908025048761366432789114064544314288270692549260982436517911609250066581856877689879907826122828686986914596900388338649681851034734700377141524472649437569409657687292022153067520947655125317566199744127309368745352001140236175723835388752948501312161392508789038296801707313988823689042301291708354051947882636177554393065412515927674522263272075693912053086277376564503393046575647788485481594254207926045906625796179213389781619582994638306953949742352219489265478150942503074854571043065719524780398984495471812122612429335153870394680507803671312745073051582358355589205923881623522285086539089561408668752785859304647495995398925151531361576352108323418021275195173497669455892371478826141604660533379196243162871068266982662649281645056447897913720830558969233321975998518748298837902120545663774702849713901960889834423716493669582767299600177376310910210092440214867948721808771458902693933081611549556545823578536629296638310327676938828337468192508353260008746945133897956277832726967961226502367795980209339083425425699344696943949468745915682532599918065690166907167848893387385913268828517662547250283186369289397211391644399234897101876257318846442922740665651494062882587089215421850737093200359092382188221201803630856761129420773939074925549438145270210090806790446154595168664288387221498593412747405731406597152310111892379679809108107242505247267582645172592112525130085751339706053947817712525807225189543254691761349837295608896744497910624044049566042885002737732353869133312847264850732872562545738540850328921200160234764261843723871173992505640512741643685577047675762223637707327828611337271151677520143267162630434643362809052379974638649951723788047065323815574787950154973470672132555277694636647328299615885882929741929616269662211593489445644677555676220234276799964230461559395857615915638617215092007783573067482891217840987431326142080966947566872052424770728714042419033636005340440427329288551284722062447614951019212434988131811278393941240596035169631488834204597737418112455919749140039862549390873458745478992499743915401301559202031453746880878867639183778840199617033890719896025517320374350676300739344071208968562256104319421030467731126327611123557868533813734198255563709150814762992164902273854184596886236838421260763743163024534864546576618057208043120461805030005738047323290416194104324477787539193342779816223952524000172346631920332207715744264588635788044866175923321651900247605204493800643196333206573815776676957977267904228961116655755024642190410536239515878099258685437225715642967818202101523721760711252941054413631318714593238230807137346128993893577839249682503922334380258908140219607408267255383870684108197042718591254999526488219400397428652363902991013135985293913307092755211441243248309000144216293489483119340940818372279982982461197827607498444990303730312515435880270689633758728201584577388203414261452105353516882627102080645743145058837111947585682519425359825328718404791592653877227194680580722604453424070691471542309895487713775553682209282500631181040692868011215198960686373840020126383575118032069166561648957890439321433051113152827527662780525810201482883796154806212961828315806227427322522423351074475081061554317453634468517705243261703760147600485198188561098965614839950281681560042762658604242194659265960567873030937974933991883889076688488035860882538352941377709275357008712437347453711610989460779481821553143870082507934073062476185544863892085044664836579299634965902774815473079143795962591303815911500171472722662426612417975378707042033531343267452532453643475558168650065230492668391772989674793939711421163389306968271819112194472245965367163852100831489617707938910802954666924514909977508686871231174980352735813511871524200537308948015144433062298416538950741658467376099554614033476287717254781950610515026393397355277027259347692521699591277374700540578009847700950141036252431269388782745776750473289900547823870930718100871492887896504510234535595556522358596446111685305393846813472359298777651983658476352930846714840353109278725680700547206284016716493592500263605534944309138366632340187171891913721631186415885845836089706665336544456305704910619027885778578055796619517855205002641173646264901186898708039232386818621374499265617912165742455261791073121119355853636929117385084782596077243278413477579527946684078378731880737372357529038379429192397727323317001633403635714890730448795815624081112495407674755856637100407877931641518649311216439001560276212956993836776834963587770359927893214696404048415491713966977784368731154845127358504184348501549262579455675016557839536400160043707785327801621434407724283028529842369077576185503514264678481638846167255826033732997100916729892744645175999846668900133720737916230302660940689018609045573591691572543126324846908931878868330917348157925083469398730478023120332507044016953325251221419006349397112839498171513982796417194481371989230069924256570598693255156959039716211168992900380117400514429421504480989106127853878332284969448236456009848726304892688516021979950536144157879196335531978912150106758145807309058406787287011852179511932823956048645635315222015038982825414168211375502644320672902897271758250385550432269565831821167393973200638217866065187956167413445077218591201234791100793939443747517164787225288266881974785249961348337682086453692512185991610022300808181513246518779703650739993170097042517817273593307616964681111313861824032274153849798370274058950399143504808795262020888516020105087178977340260154780652674695948616397311359479897320081361211352318798833856680609824765502236485202708766259950583232441703417337483509798645962208518974961927021434373362153533335207416008804136829257510707513715523063911214433375173992544897891605860726485511106143225925464744169401162764339942784320944800950567013266599275850712272336650469594169156090527607466905969786272469846548483803903849347580004634053883071788957408617109963404737549594801837693878832537692109675131466157333675467268464353379609114133300649441591579235778732742250186677566071690470194026985103836420391325204929213746339677585671892399918179045878461668793444106349062423759865539543789692290541919442961882112365449118376823374887672382519068724899260081732837271250104987674078845437860649283432256015578961672626763091616410706794561478296910792699592330102632034013203488579327582051055900945366463730247766294042045258815853361506098408823002586933880239695155910220005972681766443093384889179418945395901210329226950349077365342102252236353880374860668894697322450176849854002785755493015493571284969856352928449136119323740921416914593166899194002967706020706416032242501288988865354190400958825371217082208541833038695296363929754833384785078945669798079208307174646901630320783232362223605997640239354947937042262997876875826940017285947806276559221526066244830583255475433643913778423905164823340074191554392958260147934559580612380144441966872925955310020931980489464016512757207928295770775610664930207794124067933465467045865268993139034511484732577998524492307155531378472966739413891974145764639486295383197601439786813536911332179238519594658144446449609910822804830777205986507562786091201824367003777364601460302851515237041640963026021711656823285674698373261054536435293399263622903541763274175931613590300703973120346584851229634066621727277610174544298170142454621080104702613256714630986261097536808523854495881860145438306714618962479081146631691550416290119069349922463373554438923446633330228028677443114465398571361640620839531550495568385562734440601505173436475396942456384626632867214853890650833230830138531106847510364742502576247927645147822863902964431620075934551341776989142921786121256281412276384125997549865908780847835310367107907340269815013312581735752272271992147627505062683783098011632444354471990528166647207086902316464318091569855484828600496843698264052749831970202545426089504717146903219731962398172564954581105745832386103812247583941952847286567679956805803218684848591772427392295010638136336792124786410754546897878623178545263661372209581367475859513493019338013871107060307547519897988695901349824077610376311222821361685501143523917017537452061596748447663157956388827805457286393254846538343756240185028731407579669776659094606980072788295742112960469467682760925700130573650505463826407808202069981778542186002270707745475605957666115961776868513777144562901264037351569370674056010916734617991909876750060374533232403753943474320353133498515615058063757521405873934718648728388815899914796906393328814505232812920323108508879644086589730683255832760581527620407518617322070476577050367678294546338206573210660049467266733414253079491944474186732442914103948547893934902923368592649676368014426921369722423032810431163327037920897706887636183082039593924052252309219132425454398854188540169024040977104367146293733961890784029007621657021254327366758927917914403022745185029171657895799595425798512209111691663978925859155099429469884782966837320091238203585500724115574387622347101326413812330362767779357241492527558469502804013142752709174481940303198857362904350218848708170512521693142191421209200592931752401794801089791635168189502144334744088535221908872461738669078133361491087847148302959266614643257613270292082387796005699758686357885408619214520843326574051062158681476991603286074998433800914205374901378899287512082757393235551294470215074446260500250247821579676638615819566548803163471115948030516821463604461023279643868868541588657766281943029301144891221374464552411978947828760956977670976941566778800856956089972248252039221290251562560083160761915898915008602721138263020245360285402960184199195171160556736152621555221874401935808264325952910995568497723257973042115123850931595751203035272966656472453135030831158119024579514003993070642202704337730417011620877136461586743105782195139526599982025051164881579239174660078261960731471949132140552684199839574594292861929320039486616323836866051009928559305980780376007488020710419592148007907054425155180901891217154508930683173276885648162642911537548145719942286801439729531175388491763778485373836880064999521113723735161434755447087734974187367732241058349948977036006462373571644903841273856202679093656211304112759982432291876044101871916919406928429709090901784827365338432757931118110660031206878497497395869075327783857331171498172221371118626226683448550428883287498872985854446324095888594187107947082491620100084628883650544338576777501499367580096312847648975872277633347222114122503875690938113728789860197412298574292818651414048879922705194153003655432462523632985388121714670043771587831794448817975690557780257612392980297230805664847296288795423966770922519222569138956983292685654280449367820255696508754869820021181289736888498433664677694257547712805492978139014538640630842820679938709072543787722518826705525137646990196828457340101403374503129761901047822195393445750228029181717010708364582275564357726313870819230665922212097400852384357879635580771515134075384717097808506796606546232591381052802281328527837431399869113009287638498354130235561902820408053425233736303697968465900655616447971319971765912856953632029937196886078196491691967159936574064042742512013218283249807505251875867953519365633084592901427946429955595550125794619251379496303358992648624013603975297594427235926364210736632118203993519699612387641065307948477374351100275852594793028495540669197094335999519204791447862554078912705126015360563643248095886987346677633290169704642396927348085222473820776196957183050580384235522143950188541144034922733720248127121983057352329587375073006858107702362636045052083672317465539827184161074668097105036676004714055014227674990807115244472259499992428191985375872060447647491785099948779504358407495174988461214718463922862310790559397320361881765764129083162102919445597511813009170987536841238088007965542823300239129385753336451769364387139496940075725679291150029058019582719984511841922265187945773485572660031238683112034660773984677611990391383353303764973649716186850145198434423329251512433815383178238727108269385583887226689150391380382140588837820584220594397696958979757838116439750772902189305488524407485705549974426784539120921642814829445930847246601040147772382164193652354877307821074016944387268519224570613047635886327027757485386768630412279792668484476540343021602921285152643246849972305160152458679811647753935751485363380881092852060787933658769696448690550503755726537382761542223485820625586472782125722914912367488698739311151314086034601719510915407804845890611461219048005018151859326725237847036664607186423923460659259026048020509840429265273133885585593125875377847163802837043455225285885754980183069992437125895760928938066874564996277617029592220331723526969381411351001703369941201545420768890228287576745877020675391005415857613591980336477029913822149636426578957955930603031287104666028262586255422623063232924750242826218703308206601738685169655184968182796898308960971767681090194913503538220476758393994474376088874724051123678703945120419210297361566010208135417612887341981986839670816949344566337991901318168946884553228888101025644925796080654449211166706425296465766336103384992139010678861591009777841499243358813100427196424484749933513909132460098954349263607012277692258422445507676365749014868061159269395448855878602868270211952853232850812836501601558878833328574497099310291299894816010843964018983225450512779080959873128475906777113617387243645277077267716502664975845900462117455604218136074357871681588808840273756312643360823555454232719428439003139968874758787510563410017211860125637586545550808480651463911379716072023293408366533730741595725120811288048495162920262387421597355544853844290031860920187252441186435083725050979138683652924850031080982300285789505187006592418439319080219040605166342970486649399701628771231679533806470208375427187100246316788758659968327929309305339020145717070442288543596726783508372393230010147403208226710235893630785437563259868057553689520971416212360197611558271548314651934212907131746010854300560375077015744324274485811909325111393488173122794134451016733023799610524695124742841701987000895335374418361481833088996673336593187231864542828768592353463590256075534322529594695696621184137908429459940274193601152520447076818570986390946453119639171813907546104783244961121390366707749692044838028544211849292440676905165936846271967172787194308711992213421563601698470106869132986014598801355040533227612290719325887753320831588897103179663546668072167881889771063597167555024357749147760774204042213868863207764941914111341539065580446451540022948798962820840054146578325456947819225835495003822630493403483980763447935853726070695635083371701093736826503087662950071722967336991868893589552022414836681421851822437926342586962843807387076178276097390792477291336504496281543571447716968112698575173084218786659032606183313709445724823704749602459098984823605923268251706402097466732647225111651110308331315359823658558530172007961200198646924385836975785533661955135776838966449884741290173515195772661990730046781566830743851564279853830940478667185855061810288473000592860498752330871735581501084678829682299535673038055257468714138129220806311642051709443883647065347290066212932686437414486067469163936611760176389735423272141006157365969013324751295222831838504217325459141443332665854395099008252967452092225451685225914201406442940762547941815339582085959488555175693302393516766925590226351919649756075642330785233421732580226495405129235238665674504668675735716330251552717053743432869288861100573785421587505494088019869880291169482857910539158408394694212851324488947843053001162167797003789729941896501482251441061946669800759024235678146289044309892682387640650757130535581524363732346543591678661251724750006591734618684043862468581310856374720190685932474718679179608999890027988614663054328026138806139660639236143688183969982550985708885095809062592633902919708076076550530699555237882457606432473438120175238140270429003020960596398862498697794575229585539444417205051233343109516487814231694460725922827373604779029977385837566323691654081498381705162270628483610084936130199062042366910883722926896061456922937067536746650037129536199445552777832741644355723371483380554199464514097036495622216716413705158581651499087866513585302313689098740221864011839089153827239176322091080132317343257967606419313815880774965279082400405254128131357332984526134182276581606389713950496368447704527748021778714081105239123285510892307859494946428291552984162225218416694363450043616868144185798250149512926250288261491806164861096571689617641067990441897490719124396103682252147118860524774744124512629460895439043917670536372541476257197863280867062676938005620051917671868390280892850208775307111794034855329187095900247000475940871577356759940493924129129388052280110170491425313815350964035413061166061014543715966389260139722441091978258622438602235492160600392287813156249343657512910635614268918346038943693361210044287569657800984926448699827110184540443280264271149606053912130728737664658405054806544727409700530744725125307908930946895703934413353978479617748629457286662250678554996600411449498800011991711468954382842286713271400594932402431087537020293874920545216272113950956901424398501153023673655416423408961811271630056312831430962430822647046230959829495868193200337852327305809426474222131215552246326283669397985987383469768148487965824678545990331876228735136360684747315458349131719853121899850011225421479283557268558839950947206215437381993152491205398786576478251600195711071364183162483610189275821458638758105070620773896445606843340844380723658993721361155525837615383554108624789497244509377926180004281834744291771308437576893082626108298338109524053589023383937256284816948265983935865605112607192600173855312529703871272930795801911910184283417118190258184660971973397901835565711056973867728858525576703204144973834220397990991252541308980111932498274997195553875487043000785399791339695857176858662658281201624492278530097301551998719473239752197658217666843367871389312975251577615601056569670176560816009922136240492173286889813588045003592947308506154529723365528084311113196506068488663445777995756605829138588746993606148530507765477829157278602773561152600008249497640312657014050485987475342184016671543594109573848383865672771204645490165921609126288364988656822702600627890635701440765084778547626058721408273188241407907572025450956651060229375128299081320679245920722374709015543923289549177344186086646858782639998946899056638560906505367343729486780334081084497479497879089308570304576171300416392253806614966742304958047762429296941130006023450060236390452078196331053847350084922554464540709502629887549255715812592921536950890649467445177989410389681065770340843689083073920133838438854872491017232557351634194539016783105190639567764859204870026491470907198069995032874328668979397636780281412936428240542257004835068138584364866687762618139982105292901730376456119094416470266118136689241403988711133574575993196237487432390239902468251242151657831967085181755020257210576182841025406572841439128628633507922575039277889233275043028594627185358128056540089663941517704347794786834592805371607694278261325899170560727453257503501886618681108886212961565009504593252253746689126301258687010137999892504237182517220070491155586262898149187037701224135368709311301622039884945604985582234227744836869400343710404795372545008953607309486544876819070078284786638223075429235411231838436394007021450690813479194164302880834529460057025973524730203796323738408437474349207248433640615805343284119901405005363678428561919306484354668178605305765925767016176483964003221266902947007808985495007980974659314775326824735508049395590031391262564031713011476497147048237442946750447785053278289205794630462108565051301584110553681869812390627923094964717008442643287125229326997460356550743973892349896450856433869671124710820022510632170318138986432711419110757808571670305571251848638842782949424500832113939951046406961303251625899732005537697017068913365611552038478563013987575617940895140283653249247614368893156014149814897738114663570626951263286053544153757070801498955359961942737824327462779442220642254174963385393134110291190334823569352905778666530472280859029424381634908636816085866061174850661553920753581828502617165554685437638268418128483516655440397447952411290106441342607710744345546321940600125316042648428109824439978834383246370496269177300339413404732200844552237755142088687432746747125943158419227385267308799670410906543385381093164993679639082258129918501343469767333036256523447789314292930770413532332598789947812524967835110617884210398717812281001626538942959818976592282093216309853883371589352115998522865540988778607914439605037580884386700457430657981582616670172818561908504333518296040176778373066027920033795057939111442273449553268328723483714383465364292376729576173528516372161636442235172499121854136246363402958696384338178812496901851486928339363761499450642878029099344493038831841063588254020380884400248207370653761514338533037772861280640581923967662345717216290069732321980764888499497501289978777645133444095841446195419171257649416535603339162460575487457580874829847031444998110799521024801584663352904076777469673909647696846175812380431060978354704186493116614230964204081873743143324433286415537226332297298520640965023506194214447549825187403647239347813426881224339928072345142727165519416334887699396158463308051718559630094861081833272976501630355866343776894125183152832002655312008257530298688649696986696494806079431102555219205052702109927722444502987248147569955215458096848568614481086024319473704366284429752359800989626936070323127844659522856527193275810068957857555048734193396067863411724271922895373470887653008145993022184816098708687428261438085536936808870318513653915018440995982582139789571478695097801342810324438742904681774998116348103810343883695972475019189264786890835851099558186911314115134322974821559940905900197131531201065167676872633334215397766549828300748611998708148303734523918684256097149326828815486257873470331261665065077664354208665877802831498266977164403172912650300057033645521956289249026799175745396270665836739533551929244601155740945485564493860799164119245617692691381617737183956938178911420608319456641719979980411265072778170382524140844076929428626323685716583308297713870792605553267502432392637150881540182287666657844282072255733026354477238345015521921322477647288904653698336376880258887076822705711336118744329809949386289219803967559411373782386843897249431734175132521843339460135467022594580303747274343389755274477660184947221677670704072163857208771137156101882957968677707791298199818376535730665792488182569338376051500618020361586961224373750565945564707749771640400508684347305446434361083303846945592262181026546727305652815314872563475019739229304184552196827800196091683558181564557584875061846857936850870698054039239910489472364343243509899127086652646140397421815399929618058761493514946679285938931155227698346010869558785826137499016570946114377452086134249869436048339439094536552086727484581778047300119140767434281801232098921888418976136125051172753835218277794681700726431267980601406760732205280453380959075359982945989959608582222766425125709958222600123578069428870659164259884545887517873603113597446465506217674733637042357883212440162606780975889135914309449420156193495335292458145034675528699640895572369865097417531013682312784706553176903351494756004384467898289913379640755078015392569377420737493998921554835356116450287423441935158622676992114197739331993929300751410694920836519187754181868629771293463095198472799723531429187974587345974436441731643054835558848997933265541391673571791483317272017406390016123627591425488252496233298981106728019513378089667083687266236402951468784953564129484963099559892529405249772180682196529576622139826688545938683489354217840337775967098535746425762078695309307631760053511904019519299627700519492590535039255688533390197530059965641501526940368264229339447933232280642770040915500613599323036495308057804228170238687288730790684516246889830517314861920113274937775907411676611255860357382982164325903905103036332700482539133399635714346722321460089090618951127724074723959265192682904676125626545724744511667465798095408823990064388975534056467561906824604376213547744956809104956915068788736160321444611061424378338715566409950575436361548055281095884455277264497731068142916621749485255851876939626845742992566142192863382158083960068141922597510916291316797424852652151823097298938321444494720858243512988956393528800120541734768946870787879315966048992867977648140991620331260369177316272589335497486797438600462065585583462236718458498224989331634664669694075842412068230378865454276537416725730353489978262638514268378946125764424000334077689870798056610484111900791775381321988097649214377290395308851990694192065609705394571169231098847331319090330786272846218996725609966474045923953690299671811108350251903817604086357697748177941755494613042375705861271972257001878919335184403558488689806692385853850355083687592963614726493027227418953848251931542487868199816851742891257870860316669271395678775512349611776111094041104809016945175614573656602429823730206467281533331172176950814429543036639262793695647222115072803454727597474113361826531546990315563518303082451587769736991899414523839001197115569599159484752919557382953698070777335529810069783360470915422564105002124414158770582578534605669333312468353854977158891556999425392420549979350424066002118136433885278389486023115984276866281047865255627245502598003995669664304349999971447563831062716359717749382934206924725847615714440229203078044537035024158485974826230694008162564715628230773689539163124821678674728694430131015034143136672574524745717466333426103072687951034049498208283216235148477444547321177747376407086822548091433594566009528481035795215413727858852449231398129716296150606850656950459703725217717043222023722970325819842895859129328598565856991730897476523424093796499523452682251489759258872521887085953575330365621336753300485189799004006484023120679863091248584099104688212264519293613487449952842671707564428176886683246591926834086812475163230813445436978761020459545879191491452017516606650616033520398176830379187534929167518803642030137938551810127780778689954274826994330370043634152619960921195388004273446314239424540328100498791116712706078813381246772414582638132264976219879911721717341396782952773298701435370826822727194123864975669757673887476507029833118011967933617540466818978421013933795731718438960787506606500730270950720120079841367629960839125839420075186604720014311477768917780238419901485686814580420928168205016438373596853721886730208438199359728672179590822611354157290043949389657803514055847568674212679360903553973753255698236333391223696529777346326908480267639924220744710564497921902728838922950900548128808860579126664731696070715529848039989342856140385949461515622066187634298188358545788284216485930182177965448040087282257197489401463113675062807290795624767216620260122744651829983009078702659352941547708470833264073603452480324049795325708049577176756930866019599547337013338806220941690699556252532191423603652862175646533026007567551034447075258457715536755367702192966645120826781222812026799935900989596005482487615736988806860298164631643122544498570497187572792325140994199058095414551177848681107561759225999179597010830021772640570551975288794291297749694704280192243648778505575287016069361617600100938295409933589038781624752824646836401425936357619410209781968156117449010833438049292044098612419210920851174336529619579796984496178277858489892323802230603840249827244744456662756387497841806910195445761197539336695620672266737989811361527157668878820519206790503181090781907095140140935786923753849102193004073165083149240699055886426664723924870723887633096787380308762837072641822677554565442783146308300194213720600600677487993256172602055938817258395162633782037410990397495385915062337993056478089916424627631664055776405472167798470555340003668745427327750356249726649004650772845283887413582307090074512192476443997303373987305178057859661815922479996536506434494271607537621017497172318007655680797961715799780572644727312662450300548117696443472419061308984807250943731921656985264104810697688384397466880582750027007463318181816137114239271132253988936844865707630315197971964314946027095733847064865643942337618092089314542288475532263994940179578462647989038991168005375467030725181307065771655220661639931970618297378437151873503632950267097133527424909059608787730412295921870409386902971132430340242718943753864878420092692525156740926346184303792938563339995834848428755175978541145521326973277844637379282889551211988650698730019797043413952735490774486307733778906372831857357607607306888402013948861470222506907308764128857951699351345317668656188470209968650851667981829041515510195884355493176998488477187131433755532759791998413200816653100638959955918117678193838220061810213924480739381027142440798686737475278563014167253770902567959777035268945998093587982185796914670176137668456458262883957937166552903242485942578583708252172243143586034994367801592636414896391356348358054707926264575381904789134213782738922703800811388147597736312476921120502788783492617514657031344872667626358864019457064670772555771035613460019373185628519089405608351412018061126322616397201003753937147466681179737998054042941788954635577324127351978159129317569743464332079287735650454963084232702392596717218745724059429769478335408573332313217236545329212726025308162624950769049326668762617410907222594955506184247112037252753665552560090768309427599376159088714844561321569920038274284016418994727501777935214290124773098323532278603666935338911174512799522041074484711932846713719827202841249669759668680561089040570404720407126144709777445071204340705895586562421399229003221742137648371144735368717914025757137795649956708233855569150866541521968306515173529065700648478882113549228316672254192826408014864164027435333920621058027878052893707225264152982074408112642454282276780045997766142497068928189327878582120596866892233265860841829379184616484257260209534799572702991398674180354051568358520157276040748202101259505364872014075773000056427136262311113827394929902156775005928495395318651516415331762212449643084890753648923681916877634271578123049195264927220071807787467235319169412924076016377273746969336098069664735776059055235586858665405698022690225131761278958686465488131899370913122323192806731911709993601295031686399094477019235458810179155323111485954143651330375865602649886229375343810856061822007783495138273845161750610708533619055109392670253399273721479224597374565063372641071935140879847605320621700231607189774330136579916888451449529941451349576417145802776811570906742913254482657202298819290527231589368103326771945171567236365712788356656789993639700045502512010061680013067128765500404520299631990564759649893333686806021775268330379692074722017607429164894335177465152604969576172431931377341974891851672050221458087651423624496717205079311644501395898784668626938573167310392763160287787602304977083111961659430498782694700896634612347107546625911478681215710756203474048049790962317641423227778178364038958323492060029946403561837405122971055100349883765793087047837935221129799773257685752977445427051958842390405792876888360514188597643463137976714540993918066586025321825604358338440959564123015670085481911107771208386069351975443538638323039566917690759069084237583468910908957589164874884593535300487077156299108817590581061097375614552524020317245398712226109522317759767941056336468353792640504079317518324628611470126391216872038478711017570298211862931465383581698968961138737154376726525887239122538801270776233964832029579916871080462539714655292427687381894613271426264066766133319952782741111043942766213774112534386725988922892090007855191578788651209597747057517193271876739068133572173612123626216802968935147477566228418253341025520280814152513812360387438705877126474291220679143328136940430676444210372951663516754503899891020157077037389069175522906316038502174131472470216034465198429425316055735410257998054821342029222885305071131629642393243463454127168559377367450951598840314276111776665176884536201510884190727624536966989831911394658766609536625046901409344479238911941844408808881122059445250116960187157939212332359552564242672688573729505625250123589928159354902521457844471153482172997982732975367683465022186281597029606682951400062397837730485131029884839183355775140603595439500482799522097467180433401955920190533858901645409691739251634507206289691946621815778725924973919282125257434651205901332854728982932969380633244310323644537707382919624153032136779516525153965433928996445814380045032836169299594208287282023357532476522863309942661140046832323742159808393145197512827313491725860818986762724641108340879104232878215885634888117092651221921729427644204837807302567169475562763282843113702269535577219080518408344226056592127970541645887858296530484036834975730799530149407053297113561520544610286184101996751341467485166335301648971623078894643541730724128789017481158216707031515920224793718086741618352470361733482585408182042717020387589128272413865558481902313845963940356366597721890197963669203986478351009164459834396501532716301589119608358893059685769411876209950409907630896086346877330055602482120328602014535267229205228839553576820535703143823451586492288694221080418977340530651044439551914715863493578086600570591205032377046362021921646685230258187046239521476272152428509957614802749254839308080648284181150733675223422633141754237838657404836112298487542120749605783339067387462991810720032059069832112331135034510585194276997394422399903946628094710151040863780588833159223753471736314619411249568310042762354263577697439318676410339859188227670278921005546797432381783977508156174990825360470271184224529511097455332554447033623703526440402767892059314532896131109836293053708611575461942155344497859289369805274048094889001146782195016444693423173704032908939186018703725114279901002480088561590681962477468912680762138480086591379666310382428485711321004628680342394155100057835092221513138870026521302104406413615327276489768057478537378356381561234658426026576692304722767511779603945771182583982674587808105949093562124556835863498685684393878381882782684915158934385422958567941497926393762839975842133696986430519839700515350736785387869214414691168366988188803071681969770587915891537185399306266285277374832535210774278556935215153738244145184746423280373828599810138816738505938422881208817151268848299695669359825690979717007825769097402812012247368245625921507000922219978575007205233204017814674596314814807011676023403319717532969031947974871093798940742767688565820330432495325653264753400124279946402651894104490285737781585119609319304811473545614737830101421344904502776319519843610527939734486605052690267282580008304888317379094997409105868170905574572920126594584390049035688042896647284885879368445288542088858168858054165796505953022052902871657034591181420323794737356770315232743882986409349088088183682210642795894612033427368042267622832969091265211813500698945867347341646751452512619947628542423604693639970601300865189598169473131564817204705731800790287837683714515184030055560666352902310707624370649492350973968611269365136233195231087855476501221555905418409804860003318996761237463017192643698971934619077359424621991685452157337363425639880564388020231321112879093728087264551996638013171855833044789957296652346009750243728121506722866753548523135426895770944423261362630647855338794798289759300203840553475552409107473027883834657978973168333399031802878213460967551616555397807279813644000220748783298793053093539388724960683400565819215837173042223811414595639245914362210497440964606520901575771922907569269188108413521866205939056146252229834788254395271077474407670690227042665684358555323826577029505688862113447573520291639913916657730359424503109345311175074088653528120930234088212067935806285082307575572648833749724715715247681419675033722804083677098708508449655149505350577239844233946615254237313919625443085940170414977686045272920113693670416399707747689020560470971849596452403600917736646905735360448762191775272640865520905329889074523371038710050722217203426964984447578327376211029705030648895587694716992487393241468818985629182956028833875075730028815739787882057059252164568093556923420105724101154202522498159084018835306301395371926683856288315395752508274669869886478330635643919145788329962491143112492625314881248616525337284883091936404765314677961539624444240013940843595887091758576887553526862328407729320799441159697979366472533807288925261860641199057245593594423738019526184824992292631532568762625647653812429595184648134150770890747469218546218205140072900076482440837839814571870326057347391143911889734045844112342322527761670709687677213485880744631427672588338838419025656538304123643575208286466075743713354660426270728543500061376355937861443577362508970443183361909683269485376460608094470778883738775180512676626151412623059292624694186376933700119427883972536877253985563432435273150464836492664432121050006992866507831199960170671222383334700005856061722198663171726006480451198741934473160218873384601301568424597719343668968615144584242341279760973696771672607179001364611971538538564381224509607851962983046964437727357348939737771330031602020671404530436629680623321639024944048289209582390304221647179710757418582627555356966034003527521735481062291931315960976206223889486047066142745023045923240810208056419395226290106426962397503179249392064081590799222637878331089350780930002871634557818812792881239430609726065914045334665710182079473395978081070220302020048308868348274476661359074275046745827899427414368080050316749149336976274478768356712043601370795238690288463731690200082825847086700769982517817048583668334613564291698417871882358850249889959653590293885268260544935287038287451457360933576333202731609387540853372786812827924857146177414697300520596428458935466778838015640583736847154015709374043673211673664479515070049742041695548998131269150903291374677468986018536825304534456951037465615344577405006959113045458722931048970075103719656920180329832349471945292240914309630054956385945210112833387864872709445389060589297614368084092095251828552421896302725505406545013803449819226496769909025850358409409167759628883477767618597570937478074024849027828230967120951993825491874030567953298627980440180041067719510962516039004613204764239458440425503331200142637833783118435464664050197484212517952575303419902498740916547276511739560711194519625917284349829624165181700663046511716783217145994911904345452096475958611010296643304939719420829534586993205309383533001614345813666924109518465375984619495790298668912720171201426579066626977086390724834921593744895823561773975806828920704752896115455852859438229467688306842705276657428947761618887474526648859965582378091493209641130201603728750114969305144178682996965147184267619508238417335814995380084483522535041150612478444906186724715278608813057928403300283643575888073371327486225269543083650985329203048766237767627414413390725605133461273947708467188286165451376387015851511332114377764534982676577248931584712998711620388299079018984763785855794039705297747659124208936091011068546667744151649364078435872657767353312164707819572315770795793997682183190846451686647612918871300144930177849377822115709883763921036038472759777455737884356425221506450466396946362192544540315126670189005517062751146673488230388305058815960454549232762030425187904105213063816903358670544964695776663331770384932034820786256316026501063925682331443076173706962479483039022967722512019288019776860139764641648419931649682422601474648325076071512256659308716469624128848002820874042025768478024676456604240430618449095965391265776549457397086502475382709664737392490771936112190111955930486151764268492622870437095808678908475329016096486618870316392115346854668217981282068785998496481765756802713095423776041500918673951052150944346510616808519773438622219270497622022715118624478010199102923993772110494027456918134085634002564443828540725445427625884534754982990397337653183328810656359674754010260302150646029562877066069322932814514924086656500797370727538498776879689320796736130920092523626970871721616421811522208985306162525105364274123739522999206482979272536030708801282065453447478478089728610813401910120941628749284598777740329821422176390333919123960401784941343111872721402862022975871152733184555660825823406112163832149398320162851841638417027546162784435158014295411229348879846036883950284144534773135751081129052375394606619529488243490745099273004601952304110930037709262896605797110723376211035868479103128268862738535078204690529272008109425808079899404751881713382618961239718031778187922704811924119533915904502539998714329851150904522987461256331903276453234474819494489567389922450365138832538729660622628135417428280310049965424828464968237462435496744621034191241211551271356357449764707151598427344144064814370962513096058014480880352002257776375538651701147665293010346335518362948974302995768925727848256365817301435211819684325205395442346993180520828892760456671839727328416200568081020621896785010189724183225561608813408896262326607686297429626951505717118117089873212230062451406943871356031264304416808747659116343740488466012567103764283702177004406234162314910418775447749757009621306248810720299952341363037118930031110384040019709392953003290184161105212326699373339050306753024087278001328740875334518208573010361469413010897415689562330881864238577581717976237860060958523007237456702226052367532779937689075637109489378406251097344665249622339558698390261831956885719112338549413315020018429737523166462134911428981844389293746821153725544830540228748668335350176428926997648294638147672142026110170673480939770362359800777318914734711926821013861339908286173769706031320100073089644876280259654965219247963550225159074384399472856740684910705120586969751974962093871099702639223441283502011689825552619468243478465979719202765852365649379605352833086798896076541184317505999032826032615615073073191948259628383960636861363214333749192737843171167041035671153444175909519568315085617007354123315126203546435101219921308861499441345129638139832791295411299375840772467987181805494134925253865645684818282496353131893528188502951846129642273251840799788011086557019057271194084087183129322430669384940525549351132917248814063644316845255299764010594535617200454721491445699216013243540450212784980260539631400186147084465835112065536153817720543025576476247329410545094378856987369414304418601428501686624327629528433196795100484013969938223020569569659428671677947748054708741794783880557200969279420176953933121535702668429218761022705708405920931316247023410974109460316928534091533579103223604804455841100743029434959609669662601198194425736911621776170914021671186128999667371249190751911457707786938117588464994156429851711887758631695928119876678197440979157766187836709629966897801300479391736871810658160730227816197670655566348863578634201185086068111682873988237748070109079072878660655705892577978792070788781728908258525133921510434286957430524032580553022724762754724894316429449399941269755090401573770007103894536191231606437214314937147708189262638022910378347658164191431087576791980172740645764496355308446981704861013020732465958332782252982916056572555914140411254458060254879440469477113782309720160906006630080958942933890480993518572370627962324828202358574433281644214157383144502871528561657056832478846868238502384477066794362706455790479400069499569263242077190577118223950749006954708779875463043269450723765674266539761435002352335981058168771375108254144372402559135428218657970098977221092635942389471255299197486717700771397864119944246552707581589369452217081141462503914672410027276164520122224920976888220991942183115669137168752694105331094134895868646454435162218575353644847054063263585386386545460768209397754767911446320428838556967520284201840359685098985043760532610342456977291240811981377806413737226700376383075347745306813773465638454726709487817159416626887181358413854211430240363367077100679222295393185701743377403848446388321319845264720112254195817846125205132965988525081238495488332175763395383965285684859211371044875972561882086446892848036536242308058479752205530672016739961764296722218296953911888769455202829616466004254376681964309009299449860397703519452223379742421621037933664481200085536490400151025949517007623552536768269316319622135323057257785388567265201677857082665170323816846478879874792238996822357872466853346630690284710505949543406246685407585112692809398423148257910318306692578530099993571075907374860638893363907389381829173786904482776008442066677187669514972610155124127942234193481245353513561667646298353966045460244844826963636956859506299092659767562526100526962658864126185302469885046888385403476908945171197864003953684711485345644052320526293501119126143733764749486869069889876487415554910193626342388564996438527151822094185846888295655281587050421838707601244430258730949341750869327179735911804564736550996501169486791625461898046567095992505264043741199442526456056100355498645848609035422515543527115069614280532080360049166220700819149039167296036371779986075721756560216086278020416541315848823206621786154337909339932611599941380420533207282351381341732797155884517041993218928598421274864369843034511529058137806850221013543304754221823421800319050310389524364351697919342499982747314863232497389684135471669965455612958449815301580458794311343381897870776956161341546883616556365258963708522530502854390006255564685634440255874402189444997066990584269054101587726929581066854139754756267259965977934130574926828931605771065179004848691657379757143133105519134574655880758552165575197982173609395380261187603109707256850437850441140222798866991586954204526383601174591614424733449787074045757007516182327526948922188800539142268944703443208577228860129597086010467820050582421649299484718164942639366447285413663695862353374353473608350259040656713305100425732030051290166603287587791530832348655413440725969128154811386192564745918414872776226656791067165990454857206721070085756939066574606787802669516268056356087455245548576681394118877090584687061005294115537221978397969944712898231113774826179341946504528338517990485226955418876299768011923034182670994007409450765958925970269559080530930847334272655288722661353526862659382065231429768242806275532265440867667383800191060298444762371693501524219827196894969662469023825846847209949575603174341459285885250132201172316117984373848844340600313367206587449980935626288286496448102569166765044203732047524258313073896500624404650116943833663873346382520448754920769685287011088695870351687110354070599616330555262023885810692382102058321306773575689553239855925900833135016794844063408060133829577259844158578523107951424587998988341009392113215043788986705135906062637689397420834667193075935656268419909743517301420326696056324758452314938033967730011049660902091281030506528333655569520572373794581078827013728543949611950045128272951660535314468258458860298055519586953683509647395594934832867472488353588892746983059834656739147794140726072979936775305815407006002241935621822898467949511219672699513999147188166195435881583517234537994927092813596461962350587717118743288862272985528054791879333918349577973814516582314922453155950857757116635828311089875914978317665913440070780024950552010663376247846602547401441208053013856084926548033367575696872733236223440901128246216311558661434732455512107861604825210726258078443692038331011547103889963777122388776597245059914059961620543443541480952756682929357078040226184070599133138052612889977006822226327733198697250062782061319248587129885170021064343160072558941522936796786330750961950708163150269802717048519998539486536019308969369526910002064124441839115273660242700971720831476723023027047210483050430672902155482829093116284247711836238635312135819299598882459605570661815200070377339332996005436539238954989633616738600059630563149289400218982303334668793069455363490689175874280526593330482020513641684965888528672605179573580451579864482497416158460244925279179618230136164586651112062068328082702649066250130520412245933443173272870208262333369394237889356915076904535801914811648134821535963121166753652609390351992377534289880310364574240801488568907158135252433309940324494366684304379919438668342127979198063798277531983023161674695056256059874518067545231454583704820929262686581214189721118143474963370555021446442382766727597400077711011243167201698722645769669653185612921260412517374369784825291386788450535033917571885461653335423958207477334979055389758750693207448582839418150734199779905087438366335119928484116435992017312623835928232514768049056165750301964402413597781845389697582349731600595546855173596850789802690444402156556272806834135133859366509813056119658253044515509358537704168570066007004020231535823596350506075657085942098464842159105333090216672010216159149133667612933367994025925171529562554162659145797280448816826950481076813457627290052597853671676655223243220501070814750277860816771044268865293395400946712477885093910806165318859175353687612521495468951799393807205025444305757419166290594550213625746725126276415631053163842710740410669522402928965975567893324868604412919464841912510385101474272441332342284469305141982168869397289208649840277534032824475849635902170723488197176037375010336212140734614419828311814269324307525588519155203605793457963752357790461769232916146432016488856237829608994565229743895326511422296924427432902243596764648656437746860407083798988035963090004453988863548224879640856470995232627484156119489613616552188263785512741352811558070048866719566409434638600488194603366501926780650044614658548995128716029810256522526828436197233060984684034467987619277688621649125945672572759759760952170884654984495682017074101470972999285505962343309640122332824973434842595317313712940910424030515978041629946330832684328523277119472196149945503472539179309839386654039497751040787916206474102199922516224542106382034227808425219386384095852552856792570530523718453097474586656141581157707424352454191515260136106307370912542667847650609837949489246322426109096713975543926691776328447125376879230258247352984946086492057858253242048791271856005966868353173699067384340815102054982855102084113164710445714839389662620601840234101995372119373469985291383791562822198709363680358077284398102008214547132217757509110445544670812993084504489671406717346572623018792037594327469232126478846713242738420215492565720108018897713515028133451102144245573318845434025204523594169544990918902031249112245884112528097174597255218367994138340787824893939189058270115157597954316005504923244200034217929707062069124202183131843963441301566619319268297847924785852401824048504778317476570628270587041294221134062008281027971420758675494791338196800804533060190689257065136979813030527699661123566836917224885183891400537584644473672527677401109698278700138737859757040430825834419708529648186647875897690151121717409475561772756554744172740828461579525808938244587580028812306801799348853072607340045777165986171785045340269270847093685948173083446138277406097670377133136302320764498955690002617272901261060195214828260643202433846456134584669812016083101489280304141740142262792259427687243987352188941841795914972937475583699477837648467234961073404708509055488920019503165534085508326839348338397785132772496531951244853504155203634172188268852336523986943134199198091429265514856697282657475909413864678406856379230533819238684508667041252623904363340537320097937355230457798550443054771848732231959119711185450978135423528722472263013451260449195064926638396437156284965680171693263294420403683101635406525279493093814265481478841351944957114193081878085049105714357296851592332908227461791397208613877303246069710887992891401325367795966892274505258886150524018587378734134759355083067599902546005180906352770472781131428922599424132912299905922440996594607639180202457456914573171743883990415964121205959091370081024945247549530567118377431799698323303840447018305907590473945744089420832690834036449647995119083142413021155953972733491997220471618136731195736726627250343844378289441309765691549745281739811070655235338115424296232503467139118113830097549533909406063861068101977752906547780998240456407379025265182016816167273611888652272291596706984136100065468780940947531505609285582293976928891597877144209592630425560740933388300693924520800643655615424432271234462560352928198849281348012893357514437620375346537061071631185669088727049339798532313195880050485567787012820317558759103726078569532769320167075115145725436509450234067301633887566087709175969807654870866559954955549007167785858516287631466439921585834583702280625927169517597038804045587420016410064689803718010325216151566183032899979788370132802455087350728960600266072190717508148107734577228273896644953618525803069683696103355304706663614050629661538850506321996136857385644257635087364600946192978485045133107104008309520094488789781078475399644639481995639040661652339068837975968963558689659351724895919119282611277154801023152750883889144422063300691871006259662828807248017442489113825257073549961361062328378393600261904734099072346140184475922867859923603881275298346279582487430858568996415035858836278114465302401101596834319776643138914352511761691336935646197315208786958875953134240019079995399756137078537612527883931707661981306579917480485890855390192801668256245939042887801596642935490424205105304116037291538749787098923511050101635386867961957192722830027066540588986449304819555315235534506143138980213254676243645294041972570570662533401273046403261831149424971922629200143057474504133610564707280385576872995252509202273106513626011774290403551801296899298349675494982538999529876679889567042958876614278567392302137422719444641101348893187715520753269164188378421448397001972044232185344200340207748632850930383628131108045092511669932154935321494395002123681673097021131528603149647921430214045015523944826403822608126172517058851533428174334455187737398685368935868620988268323359373776452641056345709041847472773695467656084995439753090231032048975034899015337283191208006009137063682015405856808545330478321735751192470618668229024747709166236274344874027324195598870092097446545203016299585462184954979235452947530439511473173653743225967239169582682107383712813499963305121695106328461886567548066216007805418784592943930351655650881654158080836613748391829484564828724302816898843368594195208297531792994531601908732597578286723523912121701597916203829384211293789092437745549378017860988543598507070893143095739301702812114161141907013825276681460417030782917689877992807231554980649609639951758707935260653036537099200213539678938863684295516273766118226829847469580085704427452109350106315702707861599913041565976503271040947526648594929298904501315792629259777596066021185816187361922874493377979063147000262363600677152776912491020659834033512437323816097557684160886543748133564240166661626930574363001642488281944628822096216513489852814893768088098339298653557915427848982963374418394694234870478282011137614659797284777880692064076054441660344355481204745661821944208720531103001245482186099887331942374409350213328689764184220864867995195525262202506412707901704223135722111622864250795934914704092465147631193273877571282882022562985471577842921916045574391391883596168535857364869565328187770019008900518352290219121481734363393647774601042258221646880705868973925981069270698351347309082391566338934011782867433932834130195698979009163049014120563646317805750458743531618392384379628974633238371885434757800684495169121687071108837409463477397502797296618093223639976393901066619974573982873484122978736114836743851714165962933421456183330874561516599010132290556947226287293100476637514659971025153047231049881653667139395335358674660099953479321259186391747617475592298732311447416240539550928700422837545799587301011360121386173181712708863700727584714900324064050871841024907457788440868481803762364193899161705651852278197744142925393084590062326034251068361298903453622187105929327299360250034155572988243790548547669941423665577381631152470426849294010286375790631098220816659134266671067511279934285031947253104492724726240463680898291531494410047825644114007779641954398989255022710057068593608063161872817970434026854134988542049249621214734303369410033717250257492829759504725048284401658094731074858385951711694576317992344766889823846404034236980718328208283893085259044769931277411027648187278823316905732563282919220427031836803005802575743912271066450405504898455591134630681531460466192194429996615460088720412349738182575306269758713639022358569233593084863947854299504109642121339922160980647674974895328125152069327285236260516434117982154788351394472624549956592769708640817448760869194363593034622520732962799828647580026085706742994535596356177846234651173366342613565409773425940590101260607887649037169348545940957005073998264829108635715315649216682680579742147347367412947594054256325800473725358976236330233763431963652581152617814302543906008203786131665533248918069033150572669015129374230931637768190199279125213703787645410963376711509271075665274725556498605521902249299230115514748264365911803055694161732123957565119334560749498729177471711303284449348131625519463234093428532952924296639362324069099378992536229251345934609847193328252985201473840596615412192820993555535533435764202883391164586131346383880390608956257341370600390179878631632348474454117647102752107424005250534367422237828942840118897453797227275433566883345989545776600367421063558651888558433986096769877930187239110502016075980605499821123962772463947571937585407702667671998017949672003058524751723449213484316685707104906931529814640399039670113593310457175447725965196011949350031098973008488416071819262942843579843327721921834145302226478923433110889080062178891239306405477835368085470200137206660338608112590627309439768651926050971442628776361064966541698331466035697340186742919383554866567606353673172963092603976039815390033191553775828731285910253340477651562293636962220721775959814615135329550702392246339790700369972811446799458419909995033078752967792680844280287803796448369228547967023011487869943209026464552109690646372381259394975103932507760137758802916161567085740119845011026304540161973388028836198865098104957569171146882582959478456971405364329520608200901295420902134903749986951738219579431335963463025444979724820617156863288398011139719352403503821673688615581776815174672216478611666896473800835362035014317900892746550507861728454842073288834230841186850271409304864124852638653008318390915575186995413033950614503416500896753638995595981670724999752102106981732483945349386437429218446080047154948794881024142673228948111664631919542878351526684672629397422955821225723752328666723025374634475350745628169530761344892265028638209530797867174006406299848762316008445507130964042169065857590675211754397980642109088981119825206534174814139316046133892098140727288486186882251151560452599736850349130999013126072650633217061456948229792247933652038818927478968449652947156802606026375389968025533621384400938554903902580484323702699975588709665315794443054644350898823611193280580649347708186913994514358120007209524000253894125662210023590411592230309009070617726530455598415333007226442545055306518809430374055791388620922661949803274326591568744052090853673573299176075077771535762887184611161140346594063072173250634145101854138972217966125198429822910702068095630127985209166963670846137689740910527789806727328593343714280888114052568053841051026935416917725245872043697332228950555543763231457996938808557360421903777589467546814059739487145053547711367232041080398676542450247600281647345647948944133013626690575773479712918765920598609380382867621308286504058951417119744679839100353307107685724985619031652288441582836394333455814048226752476410360040571756862112706924458570259275062470642881963461095024191232143138653846152213507769577240439353968468666201319993976404465290462469217985374376765624749938991976820649192763668323331329130700998728338345841309519266626632611812509075465220590862556437543110781052688304433176624217776392819699216481302148083786779201936116268533070573108769153189965745302705490465744343409995603978617183745048578533573772093772925409203523257008182421884060022877072064128657420676811836051483403542193177756101103506971398893103028512230138781069719844865600703230847234726509342945003634415634271369403357305872011538465010391125222282011847837153662444522322451095317907153708416714829181329240966406125709613307232811534754941952979437335648507767045103497667532436541677918958987546234168232854467141848752320736335723778796455911679153758275944690803303047896445841193027440279146582520006302193809675758551644353404338957397727207110749717973323280064808485028271615313198983043321015948314374334804384899026222449089891496644135562661571087051214748270726800444333971024707408558275407450862709404208703092044153253184809989657646722074365602099815424964158775309807383343851062149460311303045981064257378214062795533052415591608259192300058502011942581100543061955920340096505400953006004632261530324352394437736723019546968923004662639411941749979282067282226488369503694152909215196987006773303424969225565697188657053221988089730788099510163130387026421675890437658203744340933649349497564221902327855487465433749926629357457523370113587370354334849174963428312702569803581949032088274203412087368144707532855743033784030185939400024266860074144851395859583966630322122462561233449989990179661294967507026306149410415833164279518102107523000502289287809174272929494322014170676913210981214388747014031362050353386612610128102115928181478970099686265361094791963049471074982422847835176913711740575667533299247072843558034066034962193704420513132695961226503699467908225810081053371184454636073832525367727854463545627924271167132161171148609517967917684059148910648108543208339745978205682977194213404809399685779647254136106081324470186125739641791819613026187924482991692417707174768240418656734659179177672974053741218284545043460647438591893509164088590750310876109416458923490282551657816402676421199136085096546589260781501097611716429617452547105467263266235058687590572516426022725238793813253227526511751418394860331539575837894261266136513384406222127263213280271199636039881004361328764325995764539300141021689814151317505963380799866765959152949385333034212553411672987762330575409669279724819266964781616296581567857327273810337024729798693053264727501732260878865246880144402360236905116005861808775640334702642740597667282424842918556152217993481714478972300762712992736806701799618918444989952417373377527569602361265424449164878255023962136426943813288295793110386894224947308987386466560557079796149306327019625549612639324463063495496625734661671774379651925043519359248327368688538499059834980975488908368609855652545527522186583858433988659506252193297505760249388053868456514067255645633752873252278627618570104261979221652439524958050093180830250055520292025546696149780991925489468391630565971610010532204269541414096025754868626344597389392314712339160846927688377942368622277938788322728965134168462006672728144030247716639691553601704583646447530543789143417570466241018520612272324623850162539466788916420160451193241442314781128386118297830318155826460535559086813149447639567171855389664506718888854324500194868361716369522531678942924007234326737698713177712929952044930286566891489644132724396398617364468079574390159526690274762682164058769284966883421860725044833470381396235049351418973042597668530373809309330068468967446614026519139908530604610481485078055556501427687384915307462935405184777482165563725291708462376084370000621246191588559030584528513527626713807987406887001688224614408692369235921703602907916582314453113702451725512297433230574000536286826463471012082562963833605613960719131313129197230330040762379547362615448756003595726836791960181196590510843971438629165979723167177807477480991756005892979891076736115407642359948701317496650196121177147299510115271941802491644944771422068192545134644431364295771471499437559285773178406843825841998179986734681117678921226524305255565982883196932333672274133948661946000631930274979428874824226609508384364560874681635000107482872142707437237747595444194134125000606185804043727979197631548508666219632996759405737867005190393788884579208052794245978525298475182422520631276106511019808278033894370297085569205559651041757043299844724756361986684257723492708586998907957408021894312979603039053392357957750692925230371060104910685104045793707362833544361921275067859880017194468920481968680599444073233600733450696429551215855617874229708303691532738530754147668896632221924494352446149970255169652550706900049892320874692727194533468083335888159974786886037890579814874222977233982372575140587969228181727669350196802716571372923907383598105077756181781670323550013703017025266013684692727101975983948923426829118716672674833703846924873242747231040934511500936571055147686580475355302605950050950754192758046367043300719984605050046138259880830592185989094799037865036310141997292254670570222963831313403073210047650566364582140012266189555290323888916895030068726924118031604985374122705625657936879121134898763665569645656939761516142937938910750521813764044685596871903412156417015775144699841990203889356526102633515035599764455391016713217645530618456042113977689667913496546923407456410391081124356236147301941375293748886696410323115722391636407886433197886922107334998747655151962116793641991462601313684492751939219415378160459879382814494440724184324794975456126344392916514191966099224571998213260427224962042391640232394163262582761657674215225806614758146397431878374516847087640708884056112237766556051905992946567756885271666353435573831787316077869314082889515642077391030801989345593181256358409839324476372876840506647112832446626755024189522985451900643611222712654084129656921917802289480521949796230301435521425173336198411864831890405768951372223195111431842149628641759439367768556992198089408661449654675228855709580012316111942059344238016191297648053812630325508011206762120249323328021493992131575163961135305423105892657874915382882975852619045700297701077279587079434494923834062495668245977173803223351822612625754729334814296693588065865218666562098311410774353724351403069473234855702073817631403400348276428917622038151863925370856808880920076275504786146708840726520553351989551417970896799312625553959646116387027457340285553057343488463114463268437243703375436924726411177307310153751076378642974486438103631557041333625361475744672313129785017292131730410557793965285592146346719408237205580121739364859734720729441067449098611563469239694035378727992344877916829198352398353031820002943356426581408018122986998331152020283323983717295638350535472346406646821302985556290949941213208593773579405022416935312844429228895403076028475663604593833786484788707446053551241085502241211376492405392143152730753932357858316706931818344187845867581808465204780872231510672553915329994415905286127567797740394008391155935330351063599583131976123866318317050103017001960162247491997786527698911048591906128155391812546149351814035094441625291194536179789952934251944008709680458765923236104088654154835662837661806143780021326077133621999300569894010209216171928080686711466768305794830444570496704480062665464023945687857912202926060558357601429100093877221654212725522822622959881385341784440270120816918428282372825939098709810833254235156421277439706866690115725749859522275740099011477747542712781627110941600337601067162100274669430414314339422517455629052857177055817730272695580273784690909246561688196440806316966494740676983204121957739491698162091193448200376843971753183122753726218462742193511271686370340544973047361898130488537836293024281027242784022255296653104891793220336834895355107349595130877984691380582555886867226185042990110861268030025652947309542831434416994504167605807365093310901525047959438625699216972539234332063408620599703306775005321458447013361358657700400273500413512680563187598604668829092179581011325848443013326806422069790580079473004691100425224871697294832717641841022197356873836369816313499473208289852974708131006883669083257067695437220915047232942183295623059813803581659466184810743282222243304028338769600827605148659146945601941420899336071254961855205177514597209527358340148869539057165981854401295551692663438611088431509021580582072300531610841655937339671920435504751979189610847964661002436739235904855624329018089574717688824788264702739954335734236089608730043944115847665973015932101546506446412180975924631261167027924129295572900266167968926671813673621114306417860965583661042839068363894085100267165393914359041560431043121991407093579269614151931939949889493609650385391005395681529553197719604829806874797283268697496119731156722175861060776486479106714396139918282208528302762582496882374340511388836337143423517110911959646728137713705079564724476918754328325933459720898028785424041557415385879689962588791401700437460877984901227961340132599465925925495075531264636515024495642355126953400541451395214281272235786900097303235397348974680212069772930278676421212869778241482479335365061028267782654208040534484585662803754923470796131482478726021566215329166455094275296460319022735685348190650046073663220018806104277121118571427072429606035763698110914963587195391424950662391218601827754176527234188342723596877803545923359498512952587458977114847967745458211280511051957530313333808418417479613407864263809184565855342887829197007253382913301269426717763592017674683517511175640239101597111594372164911076747524442424902911208957406093717015365112530076137957747067334406063002553073938238814182707640798644205158998917945698523291895235744773493726204748500360086206965897043795665663956556666665853376337340635762615580721111889478120939542002148362572273914713973222548114356981851773923856864318133465458181051282741013454864627465267206036588502491664769402485814949925305313944534328403506897888531176939972395239402902636357805547529098384933332380527785424535153883693129545504776485570471611653253048733584526184310304030890889847148585557866427660439080798358315615372065810922091013236746062484606284352792233201215314507588309394215481478643495258026932639537313282287199042570252345771260253476286972817766859006269989733866380121230492936766286098396626872377837160682012428955249433480077835925166069686123446143089083058409071604426298809507456913661628068576224965028753327273452068004150573708402739856998502402377149805550097085395861612919351609285876860624611282165978844115330312895321305774907389366800525596309389039640514413384747197569402887733477497147241711448537887998488307043750674396807621253447054572392943749865343587614682962925323118226849465365822672787179971431387486120480236226376777496882126633507490493365782235294586075881383936776108375384706052920682168065380214668656370288468555874764755374666381964887241503992263907556630308722161604181834837263864632861659311394404868402969664029701767540711117396035663371526783827009546907683115691816951877899298538221805740878303160471757174862321951911235255273249314024261135126533007655828769060715250835057244777949190825524415280782000174966036718579682618995691370391096292632886748640358338863059582885431115270147169062041841337488064052731595980232159445814417131489057898492048445214792884208366059952215629213721185464545414657598040033596201237653952243452716376155497756843626767442009019463045103926135038099390635476158358046655774969652878505092564609219405996309295945026364695476391940875803696820524699505514811377147301151536860377562199254870135609007212421666830766646281364503120522933540354964006328752798163203815454910660381238439095811413400709319367767143550826047202289629571161310792544103862854574672249817007965084803587124301159498100055216398166084009608813563592058362165658391348012480565114307042495326310448524634761998949854980821094418349990627544300095446146101117956058772596248560977045120328712695710435479888475681647206340126341293716106578967191399300752322398226783709910685758076990299229592073924726397673698454437393895881194259267920974272752796936570044406210630017542029265465161706603580754536617792790048139826516171457169581812939591168105363328480815603833555121073018203041249766279694939291692406870648611097406346180327897323268230411110488925296626837919592006895575350813851518711571807468882460422770475426125314362458214934666429104436296444929435746920722623962475986675943953524312112962546874162821352010836358173117729020372515707949933653152277890943193514549832110476207218185342644592786371203670363822499792883105128272090830630051359937054661295922850713757658531114991811284367661791042110412989344065489395258336071868662701252235656819652704050624663945009051951981981865027009043964300516256989490498985824206283642193055131897480530624065777385557089311080384060747529499622957590704718727260136768526826686033656004774428387475719956061886100238672051668616759835711006730605136272577223276795979589027481159642362244064942363206995855724208780610696396306536968199559527529302096390835644443130804634338652328138454777403400746430073676827257523554004511239986964716137341675227806175961531064789635538146698477009550860559890190919495559055301283863951697547081678580343931249241067649583148403967187401072085233055833030004663668590509731765183685060719391434968273293802370452186490605115996302695852961184906520997008213198797181194762672539997226240712147952008202560764029895837989923792433137797344176524979302387790765564058189160989354264941478952933668989950488920118396349672455917660576552598734153715013118575305426188249631252187404691345914585605393235511789846016684931221174078460048116761708873027394543598820842927501663347194199049603250058339195400580617660197154962019497935436801000225720890516071813394716456696941249459141299122087354103779555974221912429197226517026455174167185511823755102573461513069990987975666699306251754546688606546958585621052692123155772492698556197407640354787550093437069435086849909784650393338971654115512640290268695071261285118884132080056095895980759811142346466638566018814243342734907723353778837088090996822552046294337515085145979003966203159463020609417777000276550211126137996427978106239460570387115290437072566098047077723500343586909344234611415185172279546603060521611668440572566864411880900644873827336903678594417864155505309291271283769299313660044817671171085549786583574844118145668600635346659626667294856703301264282856717230954165789520644526597154151741719864787327032191397282430641718148457902273972723801839665212539505223218116254702696914018869018582454645164186106004278135191489487528853812002693569286216651501167467458888898736441080809746266174200069508274973740310063671702572035684561804572528238010565669093956121976237957160570265763953895117919211381364837843685098350930087750920256374540460539941386708007751317027713279305009124911695424421530621478684663108748429899625616603447881699639442057670568697429724123856238430303750300728451059841529127013833224984201108665439866464033863238218634385798595875137439894152754596833614641518652627077715176449636454605622309543520934484061165248163256954050501181542982509145444167294769432449657130373328368678139316550977228380966136621044881164509782967607668588369935987641971721393527690907807733583043828921445044606817573391824699565114273245728114605508407686450370870039823225672639649511978968653554869262753909012981797076971704752869409566335539037796194005861098490150745627557254578797802683986094660754237565817408244603517051534023482131905764180805500605004135372153892245684388563678509400222337245356041261365953673620694719465436074682716649847453461407326091920764775663591039869446153795698841788790893030896229346459695368491803697707666600063826106509081460341920083800984817903237417980351164334530265595437857064077608185315062508561975603214453948206456178581889720488862422811842141782430129266094838068694181526938030887997704590866804512178213020870060606389433873310082562555750620638184675239704950327164008493434162937005067229479367827473053213895724361075363040803119713279047331262139029795181160200476430126433086103986530202872789952894712458828384507365941016439257150303152816943976528080245775940620185055338310274093761199866484240581986848601587218546748043850858303093004616442350298109289538420786235106424830367756875700622165437549491422384275926630380738349484663583455054139109243497632591573173597745631154742967067093028957064445409129588109886419852714669630198935226601519494802012911127437537214887756815648094341781675638238526394338293780622857309915528534751401789065303392763946589786074547055169146657493239034448641917018589865051306266221864884404912390936196230386382533865327736955706639050718498081054758007367544356245507540078287676433592729685664626616879860228176655767144255622119447222274447866073203870755446605691928214602941139366493220121945144298244291365087660680673303060923527266264593809623507246406569927462027600491472078869812477587892083336477803389608042429638585877811754199186403302779095418147701453761931240595871154432145652912250046833753580961212457729510626529978883433314477747549150237165815199844759462240818504859977439509419740628838321605335455104881835039294347005853066544583987915953766520174209932139773747864519745744915452513985598129523380301038447186538861552205753684144851934880650140767143873130788993278799498661907898755373839586985547154267250406975574701872617861628018135221389808405194039185171766831254962381510385159154647250344606793370510331252365367833940568209323624512439839404816352813976186949503605630113801207492564240247529067992984343443350011684482936921346479116388842922096888857860926471998297545018380939016820040810502388228429191884150236247408881585309044128806266023141146323544625853424868233455212926967599597241709613395261861011920124561726317983860534285511870701197682239635645727001786960212544391490709833362372375201892538319215251980323482335486238094824911318029566207414436562073244854541591522228861603024307885607079779692372271834531985792141832572644806274370719423142072046514873719946166880196129233328920122293841770101623127643527063520553181505574215908595634847651430928945152438878135333503190667466729235313503958804442908841742238622075416607508292022925107939891755215855641278444126747846563505386081642563583033605866614938213390454378423334840237545373307002211031615638398965952647238051854164935807430247754394423021802321991059510809246521408268918044526224495757583929956612132208360259460564032600728947136219797051240366661612485877626747526481602713799470464223637976767804640952795993240006626740118259742694677521635145511077346887116728801479786503882630228723064420952231437612848323240309173725145863605825469830940668315591288514374813024930537917906498192586211702070574870205455043005656855517631920758519127679837400755325247861304999926657693214162998421327893260803484308442308217343456554697997885538619432622861570939280618443322572974387112209478987245513963758171611505590573519049479694810046377400445839641126378409680352565868882237094538002799150251114041865041840072097146502468200526319216636483181717087333712516880308381971759689231622529492466980763442989436606746429612028461242690881850088891516712236778853981809572304225138882659478545517006242405013079758870276360187376157993640119722401418597916376589588004183925818203186549613408142265600038466711851508933786601065078753067697622459015988385371732799382272308095825495181161706062377217115022983250377736151562971341473774516851247397524631594421002273054386428826189161636964122144920474773142570025856583929612463713581391452831275677788430486319441901392431839758978889296654466004418882386613134198613136226520229547401011449390604942805886453354659968137712739492334843054449333425255973461459765764097595208335076340455663371582886365809988231050784618087707349385203559697524965235349465607680080818625368290959640337694984303240718618817455749995900994307650556973093014192716060008071954318207454775906141342315121546515776715790683598727573087758658845201032783464671732615686395550826922528254339794263907218903603772541623542147849473753751791817262359317404056087601622494158821070234049619222594418392649546922453295560144779858400790373278783817414040698167265998077558385415157237208160685354661372147947912448598825403265834606338649073040148734058241286252402380009262221687568978027280406499032990299529186558130758529417741750767520069332121631781266934473842720979578199322389099283205123047066896947689551468626841123372279995509121156049623212524252479158993337269594585120216302429975095776480240624285675689644991599439232286860017126218186012218226685890718855542889452006996734991642429833688927644746641010351428931654838737071930956250334859018391325284309157677869294155897585753821203608596287375179978615792611956615927874977611268119271794528825678513334362274735691140193815325711775392141176754187097517775476173069171833351307841673877475791025595759886066921385481435700842502386601902682052722463784727292475825586675544843966856130114332097016709214251948319564993965546061450366551931063772112857669937985572177858256875381888491847214739654687802944345146955892275787447172787526248827498270230746105402879795337116477979780877494459887700942529727188044437091683966843448118131322104186659649732739189922747312294492964316581026104438170239791470534346066017220327107766890859318830343775417725883559592592637080149292508715906620041160393709726706968439457122602732232374128465921305654383946411960246417591154398193262596996669231656534445511506010527152907496259902217875273334336314394837644909958302354575080824099194930431621080305166520453938196057819497153141593495416014475300325676116910203397515651779059376151906194662385329653358027148645644065013043463862206697172502072927557936380817176303595734036669912932195072561146049451376421275487007009184823462553493768348237480767042015855738238378219979592970053910147282614994373254713202060526629871793522109882220852512988970190082738554006754279207669876545052802010242972421633732918039467506840644015885346723458683002142747256199332868574915825808160432633610024732395342929944890948827946114088478100832670817968282311898159535538716003276295705308180455190588178811355581624623642705080796984520118597187570503148741069181828878839815502140230854639418437235090062155653495606663045315286543755181962711452890928805730340780761433076502205287999560515380839424915569523051153342803942341385867127582841161177506205351981772876591624021737327689354683557488905009525612302856035700585381548306444899699436131440706479593148404529822934647227113066403456475952093928894392963922130071873753916780644225391199765291470026378387004016897709996213945225078933286586890454840809486038583669544545595907146236787208537280710653067826738911590018702809761975009975612795094137786200678561321412758893111160993748832988912789762568584076304936271089366545185023414207677520533482104766152053118461110053568434743054121226367413433128722607146423356143108611326707471245170737606488763318118198476102028582657359605571663211267201879079458681319459629200094933962479504546667058923793516272496808491409229380666431718522597520530689797249277282637600158197760074001122059109796872189620107449274885823090467149807419099253172757082117980792328421409256012131704567301586332781482741282020090222971076392048083869529867962105432655176702534260459829838383751650869092888242885527687400331164969665670865051328588567676548981263735057653835743398380769608133670869764193848538986944407003803853578298362838125948609216151242149358361764435592244247362240220846068143228057503412610351082498853943010736667499460680345435080493205315864550660070817754190797581341587595793504740767913074580575967266475035516514985449354062643980809358910581726802010452348318268699556408084862278991458214296259336752055934049779362597475808369308551416785131054288840640160504325541712990035097915320060754065381537792230052549461004877339284107788271139842956059901478491607067921760298201025404689154342116413675765418299493589065395562888240636927391194679825814657178447764239094074292865332792870615890770838063584282905547778182068349485142568852884445085816735950527204318719424912107917829791130152319996172597580190099217354247859682214540097607646817193355196656572870118127027890384563089832943333701207672941549836548786390658690593674864676835838522242113102693963819983802544392369260322945023249662562987033247418260730535751570597364625136023968597174510548301459232110220345471414559400235119455230171939998349630845294518539826224256049789879307824815853740206399024908002497987306153463852039099896194457382314830369152006336853937515682786418350667459239857527522674215888568633441446552184383160487488186259941301450269796283525367999462674436712442182333198306402391537652665630703704849738451702224003526379742194342798348651341845835895015250541213372696110951411254290186519370287745601958915387613462422460962957430203079296180061378623174990411026862809741000016535121173745168449239493307302153959398726148707321749572400988029404645906395311546773206598388520325027557705514876723857740435347993594804057101425470329152867903900992697311997967883162377118107318837669776780869061008787314711328871886180121089020630059158224807007862747586322396602081321406759938348973151318000710216506615669491511671903008090179771643642480528643688012415740906154580147537601742705819430123505728314197877773362672339408083984109664702610469087025195827882717093665550106706688740962041466832583557419061373454113334273654673462970888298801051440411749309306797461933628447464233410935215336971129295537638907949109374742310606617865886717086340238785325652354946538743820314359014892396163550979184644982011261883405053072905928500742941581127772568068109849861797911323442544962203755662569724719635314072023523762434390668847947854106492456847109511959983750792223195593030023750220185279335927155389667645851164856740968096481378322212299686672182164875312314058639367700540193702550233426883436394556522064520228789023494343770271990738370185142677030153500408364585116493433364077658482386206705631681215871846603902402674774593983550947132959092592873665926206238976737008020475915450423672037637914106849835887057950382356151015844816735888597370815555613121411217743878583168049816920350521983262615956644869952013285986418657179864018156398022837154397500973104232558051269802928073686199865041722479837366735192375908576420520473301310966496453747452140109364622401879886671296728056439829440298221879227129535020100403238361361644573516599926049705378597758555861339148449503757603909356478377826864248599097709603427860463034783472572283836585826510876605031298858936108472274143097883848341810210334565434954685999572059692206997314770316861397509728719542910546851381372468853467566553658842859833878315556578662192682311747730160862222891878156303694508723084878441914934750988202517508315707563604355128554905870195204955219928805444998359685372916629813233321581936358879356502211029738436572315651604759992794999893798618134001715005289442518512325099185471392538370320564662698541636756386309551148252348821750126123273011654211307177243056734183795745687557659904748320555326722619111503268072002166700018450003548540781223764343529840569703498397133896731819165450643302407270786905662347707554478568519587340446668880760646956443053767844471599105438305089002414836632836213475635384643240469368036174352476751479988241517924545669832656203682450114237208286162326791701764689573558309909620960071681172805045461814985997836494389352563208624728845348434628389591696951049890122547077474254173933784271458747250008713853238622827927928551405561995024244140100900501473051607274486564650966898386313478594848822754685263578719808558603965190341664684921889736609080935752987781708571289980616185380692277656083825320249744033883599575857973929215522050503536698126718813731624098072292146007608380150294117578824945758259433467411842210400655802556434271760562285979134517395653980824087183829575856176446276684323326239955530338962322265387770359679388332655852813078616006708637687662495624098247137497888623717221417725532453928827589044252064244813991899528404353866293417704780573585459550073770936498119050378817200807720687987475022226945270121807643343200052403066913994894933332084026344031261489718303452770041844074112945169318923887524364260373032614981394293231959528487653445384404460606256147522489586655649170624864239361362740012083771702054373353424758067604830379984105399236355436929560568737728147235037448112451434283201615091537820826364134928223004690463991230182085506044341154313505049069124029563783036333768852886257446685492698661391070485673775967420515164648723290146912834013290996505748826068814613349918795950764986907681462376777584641945771910049915037050531787864123679801304524651923332964086445494542898103026153448083605704346430812567986213050939546003864410709471870466337595704268776361380058461707089881472343838730098042981709239803279596796745578568142539366978703451360337537354952471398638425191110453240819880711055483120194241308246299451304320418938438284284242860252083125208495507484659487858318509793836014043640966102066293528730602966639524374554593130128243636125425209229181758190089311497477426241048404182220924552002691334406238444650458144440878833732331593154044517819888596267183842931120642989769752774573288609857464004108662148556108152465750051711514500496372210451441485758084197839878201759989678195036518882538048727567177439095919976092847244232343226844144224928487757382649482987638501477945273945412468760322835070597342340106235306383025749837960466091291748351364397755800840923954218697649226677107948600052646563207103889500873415097599912175859570359604919232825564711682517007328024223882052913426794595658857040990538749748622657842515406200072863128613850915341841476126028619896378183183867932884337817175786460427793791913609581887032238037527035587550863807768937018313010555853030827995893819391544349549185148292044600279243512407846150238897873700674449220344665493574376192955881616484853974411236115070621687756138644046106754885024138587317072585965460105315472396453701761677923293277531996851755844847086015161352667191378856656109668066898182277586041132960444430056484550032629800383132811738662486423079185205266027417736931718852807647767373427049442379509257621554333793295837441518107559607178940483362732832726130395134475152365742192220011248934445006461309396419042642250850841796593326867546917066131333500038521608634047329113258092976626611276644842544131706888848224199586074284483061039369889292344552055354250360953402161104906853698644263204946621441168269619635795495200497463231184997319908964219824095742803764556732570247737226521197221494501111620337436433212093854395830603724213823407348980591976148411928834973326304324843409352981385616584730794625865640026252888513697087521747411350168780377811580410511448708813032267432141040737178091366428701145914705339140176250460486414202427162635788137219019603248242152740641177089627025246346938481275735064719000632932267302138779033341261323799571595936505097398152303247690939687745408735583877235840447158943250984638522230994894460073396178975281124946096572367655622833053798071968645380496978728337140424670168720146229412120857479617044084967264203338422845795791782476016712202020576964988886179456996505466756355563872481704436685362394088915687001018129588804565046923605989955844695686815020561361744876309784617045859346115011882569722399568591969736026181362453227037285455330403635260493859265864873415901778429335012796081727771452235191252224087014393655884783762670245516486910121112980760780147240208113892788281807816409715027776676555520052820674060746734473407249615549296918974876596897392738005774413277008047798693877314935318940064654376834183034477553826070055707700319186751358366430630315700323705924034382558317998810227862564633084017242860031045930646121271110104727746940400507905329011692691966564074141459019243256115835464830633997539272014711972787055215507554473406038162632218899455212023683487703013610133721975404398994777356357047157453900947311763634191269443360350035619398868538549989669352147523059947085544929365971022571322347192174982035590761781298575365004152070032077331374233402458816639286645361844007056390876112017403624752646343680426716122395556247007473610962757354844807649471080045488015474232088845167647393771361746965156941385507706136146847410491841879804107690880130881992129099253982802872122918706300129056675233860786325309109255894937346589401718759288696346556068439933267794479249379321334268724179222572735366223336238914515917361095725402372680109732079450681386983446210635771845268899089944353376252869466389455421860824874504859927860694196094640829477321077466078832060485767301598790019560803182540862446867185117027458459962961353857051544173066811360137309263402824652989800502216746265418332729800688802361625693710993346478318864158958923941057407962119092644908135153001826473890129320368480702813002141423792630489177564107426641265284962876767655025255713460773275154218347403743817344277858446596347570499129628368271523679509419896864149696028894223947976632439851471975171890323033911648519455181741957516826780017212360979500149801988572138040284201779546159897110931880246008443584516418427397829897316723571006235796615424986355117295381402061799316185352127207641773903397654869744547694843777285403934591143526261926696158139460036658505008426516837474377770310342454808435105899863160138470378371344515623325660517142036143760621753280506200881347162863437342811241093025101945718235037364291089412413069253473082506055565687993603986846047173722140673527818023577742372827506683840432369664334794736060637710595205730156777381950385088539505398435478644640310899088895842942426457408502962855726747059910882577279201885128237720152857254054253298223393394783165161807236581556120593991649159516518052647516926475234629633695941922244296930059182390420456198981168290791558773980595486822048899064761229032016583367534108565172795520059151812014937046728414647699905784673159233180554845463696859575649946755176677877781023360534504316596982352593832651859890263931405328224192085154232825005957079420978377669446853777724963852017094727160229578876379351963975739176753738920581168197576040495582030155355832607857832863482913485916353115176669634829263613432541921382193351675734706670268137934003409650826763252776225538733787561825078895054291090951220772100912479170497041673711645792401563271368756323209347323787560980346733089648681260101350739460077926183159647153090224447079820456046870798096849565300846385731734178428852637003304435425826203267255085545541970131137205052799332109335145917781854662814073403342271293570694663928513586021616549115978730194582638431308518723518871914183304800316339638398419748008063787649096276110590387116215549185768357842661107978096509380086198200247291420606778249058965974484764087175412224901102532608266120505918655704996802789525449140087068079243971825104554471721954775561041649628623916480998072215865387916821580387965206590851080473016520255397932983255915054158316396845979750941270827979044807513356158506548406762638808790315296625787180208596196931171826172203039940374756342441656181475192895696350200045874997182785336687406618423766031634743500066821237994595642374512559173964664196002604668185333248681289645049948294840871922481247049231246687938765185771042245980016948525121916168407832365164861477814397789963264248506002885551156201363533239584541283519637532091568386203788517094613252550830940869454226204197219987348723398211006956705383624650767664354458048324961968395007489778337329933760009563497286469579113172724240614857005503911695170424176063899354542331915112333166908445998945708323508172092496459100097310271575925217149413642759512219498011057658210061437497276277810600401270807685838795655482052714510218106131369228979060586130733763783101588677631049547465954790066225627914549616829035538276391175267769362848734225397487076902632482716580731008634639345063643186981839612557955307654905565128192425123161343517763693423154881320318633943718393476603134723651680840834608439855616588332969022622093502093358486280276059203550029451634625306572697823657464359063372928904683268520383147736647983368290714920545736848377589856556495285142887485947119633751690187131084519614004834197763496607554301502107185798681423518717682728593061057045224949677020047684505287521960325680272829420404564931382507350136129729126163904725576214343537834727027749421257381238755748918852916460293312062756140175797280893806807918188557000841071477377448231289677338789251576159217552022263138379656931767939267379691221211982713379950613872223688168716692196575655349485736971963219246444262076464354138129010432375475265700859582232629976046042763121755448729686710283965981290861184373968715520851423827489955974380450263150723972120254614981974092171755185459255895946748229599546101581549931454279964655721759246030244615900437176753472059146358478971633496676524488260812529968430223208655363838777851577102385271678847569351396896096813516098886594990356060957798066265335321858986403565087720261029793841196686893586807917165999410652303490242548544540804238124232099320929767574865421040753161140709468602448219994848170677913448094592328292268776108226438362733900850955817748365549249158002774887677835742067880396574679943009240863208854645951726733363798793769937485087976344328301913384980348005240324352806604466739538006059939612218436028663961841245115052353167367734360045314148214311274843616206365105043810175524316358064602803435082920557195703378690881359889344782274225837076129663730624943934981442160197104265616389735562987299786248372913181100433940020176051270592030439805429281535613451102621555124262060244491983703127088757051199487624599223240507815426300235197351256340801618138079289467811329314497321537093096955311223740455804820976681935686457656045804666086443424445402808399401825919769335387440359116666721127044453779820493287302537545470881029902811498679134734676652989204315511005862671828376451188977584329117270116298923817852808911577558252292491569997110073005163904358597513481233997375263437784977309586073390086916034820544679673940697149622980943113249613615438123708767429561149774269715502786956536809169303271881596354659303595201614106995069398279315049458214313556418063699307950026255649298434789983775921747149257716201517955490438267424315596384249351565430248940809411053713271105887989736185429627046599423735549746254585177238053706146925758715205917756906823484816092815580081185920492046951295408667156396250998183970442167752411289781197740465795376520010115376912435836891013133778053735478200821771873729256656169428204733139239294917662871710075303683332830106967735051968498884400601545053924085210263184773956746528542827828098554309470937382124928692347888674059189431953206880122784841227458673277755454362880773149460010009934321349748256855970471960798508566487445868055692714631644766264686484980371940226730202172938607116744020308631077503079454228005139578896867332839733690389893180870087331935657784863944829971721419563999733451338739788723208104448399631044388948623633473391273914406179538438793446712097273391874337791259565388083459932813193852341923621853156417779617426455064164679135777980973396313084342245079686745903608780915101633612462500050251062442474150117326991299994164957702520116332106849985752835634794271175562044245487904334929869921790485142369793397380353672776339257215401288272931317563082976482656981635907633048441993586587971160925557438161826319752049028649848954718554803495941816177517253510469844673777921802855704726557590215972281126535050140767721435804475720922970997875978675607673154916519997289442954028923258058710421230166112113206476926435744994450192130309624000251345212137780784163393780660695379224585065560670533620949751577391354405692489869704982688016476410594741918383755017422188053368856286764744381569520782840716984665459597275892805467711830994711818881667381051751301455599536571506881792230877693086856147132793573291465340378221908940644296970814776773095361497283383417655957131540719921214680090568698492038328930684569389493252455641105489820252204941164368659999644478671233190233470346801489825888832555527921628989365054209662359447497525851529453311379407985996634653701275330166290898647842970481079545921404060173677442756984473341138763926740398816996296485954752795795444048904023638070122064902351936717229520592633987988996144093515926977539714710658526166711438950019189999424585424385987061678277118979358027375503922905023641980022187258822336778331578868988527590478327219886290368848319979172845392654960265513664159697946871263717345009243299666629922788905133959267323287952222391776426272712705821589678917542401052879451902577444530707087698882206902910035505023222468060369154260818621259480463299301780247643598379762243833456605985843534801820186830606592348815122427359330817190873333247946351990232712457553116013334830570492022327934473454743923006466201283808611376200379251824333173268840165732981776922494981759408213181515441793953750950113472140128706138052920119045708097860218227434264496407036647970445360298543932685892522196820332997243259247576187002939773408731604102887207707617040095885244142773835477853914607161735374317502640810280874384916378240926237166770821579941071168450216607283056043938936159333619266522849035930880400785311999373503261727851724334097895975577316497772764111037451073929960628829549420723931012194112878634953645879031384004385269292544036180220946733322719789586517480244033935345787868865677254778128151131211482108941197557419423977019310717980248423258965292929109381266327750628028123067603769283230223566277312165955788229722162405033478670902758675783861399594021443348520412266800826241150923936995547371850797757332613212608483824932271351437416557200898154477671096682186503773214316402799022350349235693332794598383453375699622734912192371836093002323317142772394658976586649911828171854293589414144799765390784425461424228456242226812921433855048536777354443519870330125106914420881088648033260668522089818168285185727312260862366199140087822316089642198701765691751062683393554772389118139896076234300533742961971233815092485821410957004038972981312761574253623051793566703023453726949422241278824849935761135520501962064061474570037773689769365977211343993270402105573802581411295472316347227271872567533451388785935489441033583233902077309868829673360160957795720401316277388397893696697792349202412022734345846135243811115291142631695390851459635776609459396687321067481656526165059092425122928337644516519774315338849129574955563168706554691563033028473866090916518229345892454185195792791880053272090479850705643327645620267703963219944463176631119411655450338032585739808850413968924337736066104515343667708846801477399500511145820441709848149040449944829323862036716862463493832471865047433612785758943154268889325811698576427567602579308131276169857498103431857514441912834567474052303750216312068425956008144133689206195322628069619801506730631043194297609548030548748844592241164277844430190392884145844495755475028165634233656963798124334174742700406602220772626431662551080372207770350822635045733863834596087464596838910449788836842217821322021301763543123671563991081240038888709898106549594739749811529206226521709952147555796502734355221058266028100779401556382949510452558226861103244153781019645721269500375909155505330538691422180383819453439153934956946369639347485746202665877608041027950895465187353303542072984913307694570654954070561700756327087121800716944386683699625500407082896966174778073332571558580477294345848872971170237169784356639300827583801932922304326739128073473838605804654719281180088442612451812428783992560386613881515794476879133070734533159952293165483183899619229173207984381002250512370947150905775570953173702835483466010859406185974355876388955095210036907080737428120071183220846378232101819890436631628375418696368718413405479546192344008074584582697423838727695987824002746839946160666137015408050982202495293421536057549496106721747725685578292048824449616951530153085246344844775570498611326963626352245318142523994472330729795062334723928536909668499600692202589691710084880318512456667536191160274767268071431607015297598426183791886052553113603395931030116107104325550007035445735121839057708650482649573174196663565365633517746236908830112310246805525839937774680896328420168008381581389541154608867882916849946888454832923500483675172821124715098931563692397629674421115322202976712103178690872648482443082450586734090788576832466938329721886575928497010667754917705258865849559931376214687770024951051505555727878678716375947641877737057773871285596195231477018478001033374142358682155552921945266585465144926747939110134228409494630140784886575604458777100843799421190753927206091319801764201969043362112471431342170678453828393223877112103418960006672139384364893242271373433871160425473728303919586887868307645491959242847406830608704671946241196188339899271296298560321353900518599065268780738446955599713226325169655021877572544123700913306767256234658644656078260282194048805315743055926455965123070411595910276519649367849153379434368615827343486627827739681554832450615312242016995352862216277858935696617058998004148701088451341169824676809333196272627073028233665556610768907587373565203955608635531835168616033910729742063349704082362330947248952733234556933361545073999501618070315166432769096049793085475041241181004406651698180266860993614229948944678601068491361937041474231768368331021476256255458052553861320040445754152776556337182178709361222839519413987288381084119790851863297150661655745282920949169951004065388114177556485581105362172396837064726924032731314778769482466055048278788167122785674245291676163945877273396790698959316886806781025283600707597305453887996277024472144849754841332979370677556775517340422243425958552633806291909310192788439387316691121307569924628681943454384510563366191963875873028745056355826548732501260181679249246292735341030202613326333071034706357451758588974068999307803637777738921179280381878338711808586726899743965468205705780532126169544457432984638756063071115354801286359760313183429725771404091132931838170049160239091519031481534571721061910324791176867270070236485120587470479768869357168945420022857317011383933093177015232174318146730950346064011269461140983881480682507677235221968240998321605880848666403402549920913494986695076322560237263580380105503015961036008757231289159179912149277660155610771716641165401857826379892660978318904760541165052598804473519486380002650137687429583512983493275568209918974825683185744115595056710089523692173069192105864298959603769434623763681245984231534447443486710456018514442418373634280201550417364810846715954344257635116787029601035749385136437937034950551768188408403934564989326899669253347848964560010146491041946532517530732643186021284646526145940674402630880088842692378643053962161357764685487489296756888060764919464363074715398678823618777777247510915754880021712416037032032676237930394300042601148169181758149514773483577452827055970906150568596487816302073650692304335852160828415562463730024709308109344036078653009874489601018143429250582040914829588355123020459673801729122361850589967517346037448250462064477679830271817553803505797547120593877076302359631240725057375085911526877353623360703182853314428034240935086200313283016308546988457285863996571667990606016335713149140881502853947202978718744003155377304922492409475481483555114714665160007339670070305033917188418421845528317928399800302887144770668888519516279505422578750475950052802518240069095687943474431303104679936442555341147926598277508115164665594068722639400340422583985986128861623270020207239650651535741955443164349991738742319031135391971910542075103526901672133717487635617710427284197941958354953460494675139928329591726700494014642465306319823485941410426153075015981052596789349809149362578840272032653924813838627603424407067656774623025719522586941144438594995010921118556973881712408389359721293134025470760660159424418411811566762739943401694028575044663160084419844676448070786861907089486409352044582503902338450206039522430059085407199936050100310710250057710978424961011012086244475303484778855743609315011626354643696391905707527169647934401090202846123338335121659137444369371676955376606596554674971818741582403537064497388830416025399386727236633368871244679872582949420665881333687975884765372545709395819063636956615304509614568631230641739588472264955183324272667022127846686989431781141641490140108888646490499379145648714993376550169110823570014114907255967599609678347986939274232579504711567128721166821663618010989091877367162699790916350631925980669626769318624244728326914782138207754191557521195036775707380709555219674254005585112288344371260225060245575259067540974476403223951550814204460596811721069488666444722928018395457423311480117326895012575417556872075791184160731652393011342936822936033103958779672799568166871464244512747024013907850820472462839347076094694968634222082071825713426991914380180450567508045879220349290001450857894298762682081238909564230896805595190431940961041412975741485921779954022242238372888033274863950425219252908876711339839894965858572813874475511238047774860375250323028815870001316448116070103605358674679449727411919139711816153579997894367135149926165754412923179525057711089115725352550219711383482178378514522371288919754309181379548891706112272435179347214032899349710338209933196186348665494858370942453730087446365958593195165992845004060503540088124682145594206904484361702845010857967340008389370950948513512081488837757418786656218969432788521103282011582049758133498345664384492441449578593893727949798347379059654022835634706565455740323839008671339844173882887754593394168617613752026498522155931430009968312859372701968971472849160560475638141897984437092852173051605738781485299698316977869593150435873562412011717364503785427310727191338898845852586526044042600826096186301053218457022597362281772732770083960007671018083893854630064622051879092915548758924074885933042119496273722132054394881095017751731974326886252233270213867258223792373155139824723502301721418219894444107682370460154704500880449718872796519371934526110899410808235126469077323190784445086013624731995764383860588449126722210785070676359219417270490408666751138416296163803920544292522825057415850981934217166604791492516148851674517378634815855748232811316123470030543171790829745987852753330521350959486559640017637621747873143830018620773064971990950795602175906540018616563016039958119681034966996781620330058538851451106671393841701361917472259210156204039336453328700822915895909235346204015674492228742689753467255619714169361935806734497770445051554880250114229806986251459480857882165638784330726536620631807641710085167699519118065416041041875317454722182203414747074538532356517831546089374622932146276367036809725739389128767950130586469149347320602601434538720313030769403460632670439477493017323573281350843725101476337649451084166039017703857041666521659784993456802377556119375225752026801416889154279697953909476004184624754884607330884810392428378901076004525929640582792215527723301599906246682186244200718901965648631384429368426375247133418043256422283699216477661886352969232724575481776414738804084740319664757924989253495482485104607023064428797021987276657966177827064907545721561003523196389623924476827095706065697785469896789525774022935577453634275840681805856534970906826439482667066260529335621760796396233065285129125010974978738316004396954965661718619005981118499357203453376334000204125733485236287259703259567755939014984200433643504388498307959431992177669415707223548484231979155808079311889200779251231947975285464967547559205600677507400478319902803455386370247917967457399390408634700271466493354004213293357609418107460228233833082681319836121280022244092156824632779827533119017817726209746197161026503845640241517215383369017710637695810106936600544154049120482913509066054185878540708601223289427821894878841789085367730574343126639022261263406782285475884491032680921885912339341129802604837549869386126662508922218122189752618869324690894514043737487557341675853787185670184427247660211996696249104004177646604194290150447617555099156230184926679293235696181421090077753752101848111883340283322107029214815855804373158162284573912793142071927307211185858522326699281256555003875876726115403947670307599380541113810446428376044142608127690173839878964072212614569823128784222799903921900992586363447892776018602080408804327027078007701944008893379223568494694058643381994276385005075457151349581202687490806144754685297644479913051126886515052954291554388528853688722482769036738216871649608634209503962307993848286609156484251698720824231997790142742425067567311888593681104652064731965354616926879721511517454139276034219876906165690455250496736201190099813938257290203056094187440286959339490501588566876172589664029890045163280212861967251169463693493755121817785186767494840432851004591237236507921389905049202325545367768902147732220475762799330446017210188448437013051284477508570890530073686908702884028553545009557558568227774379392715094579833635609106414524108442014191923956656368672258095962435894686981644585801236276413092988056796756497768080925215399839742823073906444568693028342608143028794787724885966546207711003699149186876836577438510365253904960047016200498447175093881884393231541142797837136342882904031057887986503150991815774746171113014397540805223477067668525280508010167725314959317283674989391942052654106077786911268475420818683410191685525880621306664969808159501513574014981805256822741463946352666257137656032448379670975329988416327368797562190332692338516819765851081983116506651578003849126815019376289989585621623615599575224463456462180484067382695759340172227474791613851649259413394717838352363532354118247418198702463572004000404878904454762579971043039731207208357088294285503254462400706130658535984333147224134126613413785531346031945860556029522704057784939634931849718420697473851051014697720440834365522859265773041862459583457374924169417569449855916700397237081841580443097156064929202035348899910055539672686112276237664662324588657314089933086929398426715060351645532829554522373895793849984381428337272265788420835215696670973939759418702595007994471308070472287012755945837066898301204637891173787284924238982913402002281066592913868435346493789797770220964266078906213672478131275357193363205516692989881731916857968366102816101116940521829072272874332409948600858961715743410975469953292373646598815198058866643847891887809446008931337483810040333095790590745325919460825568373215490267660883389840220272029115145672654418441272189532669207445787382177246291128304406310807773357300485502560444520099367260159816688049600856685336656996298958736827914150568731775898651256030340623875184394085009632146717184746804101444871106514083403553998720421104717571721754289433723097822555678166554407987323845835873616156795079066316426362821069120721334456125017903972801587820958653269459036692454838477469657104367480934953053034335527171142065218476793496019190590247703325412439699203168208381049848216929286726193267108807989152661741499800661367852703853384650832006559861386344752557515154516192543696116816980750789789639596071875301573294216251147718458779848597448521079041317515911688698320966108463202460772680764870140562414067912237850300072661348697600875497091019777345656129701225930229037965375301465384135403960892982322396729876396864717019585299477124045355567364008933942604770776241022786302158339621077541554663353062201309266448814532775850903852862948438949551096173370101932205277959142500585742525432184990530766802685117917988125822019997137259536850693636916311271525907104457092551324192525899595196372225272821710712993711172336231808356499006558816413129458310283373195161175018540943397868268343398797807133417110437274839893909841715094036211858617601613720990796061807339806773643280245331887399557527693419183264129920738497524106025719931436186891022682874435586747031946866827840120636244458202274695286126926185538831564669123229557433359938166172523728497476571890583619226684875965594102549020640932357216360655493413077345692807180758166295126038623726386991620487585852680968387131209724428341103680713215248472960041467248552251378427716479550565595152375666306895665398169098445497829798729230029931591683066390849803003723568390787248139475931198810578506071133287726917308329474265785966324882543132882614603794624502913672279587098615602574451619699187489935136437004793776345532524969792211961243746468080607382203346183548302246034868586113985631708777901845786630690331913027297657495145090183083333864945406691873446705064189178242265522771860199391954937810226326827568968228705059455461984634027627899596019677591069543295952200331081891397410494295139314547040127167287993325856045819680890303942058410673840955654308080187646266420385539766154861960003851934464914583192921261069338590679033751673109558995284686300887502334286344490101256595515642825716886156754581553107364598577298817828093004642415463820398836155949117573897297101119296250154123177665350873622881226312172357647955809728991080810232913843827140879335454190485787567497101991004427713461343613672071873640868905186985491874905532726079308684375977305395680942522772614882479167535503646157287829996409951856495023608768385311139956121339745064784244172003064644721902602332937560124119970254008459924745774450196147845191125332332240869118009605532159221822504227470318771386868146346524682427430605720101141998730119065882277962818262030599041283541421543153352348929446379071094551380090847647207677912640480974007502209368292977461121737980659491227669123517504536999004297859032746438413241378467177662641641893874411635292507229305986168087120513989001696407790688826249536015969776476578541263642753030856435655599961164057496261835756513006204453724710739952176336782773780578950140406650119090007477327009053050734543624920709078706591891121395128679395993832768142335806370070815561253530810483367032394583592574762965569612077036173671701125187083179605266663646363718734516274290658298196228862617266279563824230706239585257129784116963169857706005846307149698338630837739674307922015659216659843116832037126676931551881115414735832104241948675074957315486156512870013725644687895899596016910010879335229789789757916038520725131075117216647108170324276892373533122022189523364383864737642663331086506774907027538732210947022731288225931481405042084175720634913298254760633186007473250491079998807350071022215390454405323280868428384552071841885731676802473631333549702067533237345905352735679312599151195623547858608895306323259462431314228602727091244787407451030449542735663470329378353830670132037631418179397378441921195113263099580359614201036942907498712656739405373563092770827406444619154901721078433879602767076987566518556829622398598666776834740428203779715055454297880075142291996471157015405334003989949651742377676713644299176208736583315042903919259935242107019985907053929375331071589632724134268163775902665069312223670602645129070606546910831719352636300313190094755615813378218279866160682478560086543324595946617188218413315475716923723478242199224738239186183477896348622586347264345028779514732422751750603434328283237481465084005309372005104787922324565923566793697749589396770907405030702254738718649132127642900010460781195065324902018715049590314200046040248447145495548542637277613053141258000764795369566052638205901668558893989012837322120453389279895478127007107194282297468946665949052345150393224383199581679390967586805638286531471644418953157501393421487946323060806267111332564804130696666170842404295641854556831952856822207179634297039091476044337258226072191494198852690823724752990465282832934708583077351985209262198618010158483859562977096500078640400890277497457188131628076955208778270551108427947845811587967240343889585283386675195612570482924002205853898537298987748346996920066914851755401513449144474076324072038898902136608666506603691166770196386993813791546911332240220671166683490508098377181950195973905971905263437856103064452782096507469080165436746606446510790862753602559593922936332037620033690713865358183276394174374449139741921756745421794724541644514389605316673901697080059933926890802167739262878555710240120378512148150483757542142878226854955815631252177585003759142645365030089915787673820843967268866295158164204621492176562111333011141960300849741501336899595125998126450250572170009857018126509829441916846394212299183231301899507202102876741217503894082470540524705189042278971064445517712442412038664301286595153081778443264350342570402720074286563350563181699954766356933394382259135206140020950625981059912826733769190969447013565664662238507858751712000074007534013960626669027222094917894478743584629351818453228559305730425220243995403425694056245964446070287326522437591626427727386400124900373723912617046099749580352297277461631937699546832920522978014015324111920664190006312199407094229266964891019909440018597958620543040585679412665372593403777808342175301953265665992362146849574006396745050427363118131219686015360454593401262978749347313918924526166378080205645422486535591922756696298379802487306648072637020810857956580870607471293473728751042746360416572612539048681898016296681750042597153851727455899860886218465552413289820622777541690053711555577630176938616251887834211768452416218448674700404936147721932744422025980700428938098200143539495021654241920269486189019505505532631460738987516569366718827626238364285138673505275243504029495726870910082146157435936085197595472414310488687567145142113919846385502296904230328626292784679223949699735383333754870341941526497844004701492892395490053144598681866319083129683867012585233195937877056598124137768372918828805445567108173504363384545296285061339127040127592353784288619731727786508434293214812565875726376490672153551855937383771903543819296861580854565747457601432717377244155370051415625643197809876080591951570781092091866237621072870870054947753717976531095804618715419618209446643540281532957241292844792147207465403265152616152305150850996143049656774034872531477534427667130515359583364590888776681299002054044210591081600922052155612751996455874696420779174651226423606092926984651979234353875501419677384475893184576968093546888419239284995127894897434633493361856853855889076544630435053054290712112366963402253189368210810279193910609766113841272536133766828849046430270505110911479313439289878849460504607313107932251876520017980413810585272563565275142188783731176048158174551133314568231039502841326920371941746709417726635748956486313167581221541180613554125876501775233419688205012946467082052042824078484479067176279319253352972953233060289714283833091445473484209749307762761140087557335234921797444453984261029889596199287150076603449346593595083420669557748523996013572370491704068251651681206494798588014191050061741875974736612288866621734221710544858587227734995146469688903555193222557578469816281545507344634293644319408720159730515966317642445386237683254286769951196903891333899823222460952946670218433265276622247288357809139909650938944024988341866821827930189376914983685230537183309974088352640246237384976440742556101283475660415350448462961145078823482120972723040156223151441623998594845163887832221800493198690026330636090323752751661308532568122377480724668391564726903645954382877559898657239751578784649928946822329498829804111040905004462331181015700186248961385664526983968522695879641289381474990862004743888379918896217389672444747420689611235666652619730435989383896631658746974884976935684669350528694308959981207737892219756430639792880958478583562992206316190939415922787331488187973416456059524319655772752262289679682945111842703688792925861997406869832675699988963409069582024279673093932159644550115963274138048629215254236294046968032303633590123998019175161205618424997122770238484114512569413021390459763949809947480211566140148641602534292605980108989439961634134212673622346851427653610676309026558987673964736257018636443446295925734813611312393453686065203839083050814708735357263074144071811795504996529276014474966817803774788469366945568077477850170380276358892463324266837944245900662187489361558922221371487142623958579824735531939994990417830559436885482173955941514175303360748497774921177134619749597083613735616250566466998530643628485202489212447659250573189940398581653263657354390729735897102673332132256351473066650436845834820275206936560715499662376952029609523820857462189509069392853007164767492866712808103563257907117707502376477455545272524435814324007391563850262451071876494873677219423269010681537084996941428411953008553615778915088851703362718465387224672615174425272221338954416275147671578878747969571324167058823237766449088259916305575182678440145154142801385135501793549232734723140190674968988692079869481907664273332404217321285399869632756106272686632385947558874188684337776870634407120121413141179027860639584261717251532885989806363975957893340975281651979322769376569140798084954773309367539567555060366236790383167896700017708554691788394609154308819857441075650029640321752463506081046030189541536767334712105978458044750049064374876878795687222687173422029997027182193604110173294285486749750487523350485620145059451321875820042428062070544691324590012678993275320630290509688675181140623559248603885270999823118360012470913096675517154127226634104259083467128518421795135558433372738074761160973115786393645329692819760063594755174330321142594801963537653151104412116012754625445942507609171690778069893501380032971070563368490990492780170451097549320524435811563494356354785334119794976613153751313638615725453271358901689283136195980611988189541432590330774869555222138810384459387982729722345863154547645072044246371628061591377504134875668683281350037104686328391116098101416411946501780699963051751154091870212256822559494468837394589380828191743514165725916361124008316214946902478699686586723220605825185103551802624691657335701455364325026248651273796109071913581747746607632060344682229487821890700779734033852733543612861390402719378856534127317828266052035624262011816652886586013185762083920579648418893590766573762235795131580885244045051441726172594793343070791672832043963962605164668428849974063030367112639064415849630626187238041999493239854761409942345018223846397737375154171267560203455444804286120304850429379452188695135915928860823707274870668912795961489060266025636256279478088933621374946623934301353289852062507875717450609900648809326510452003079422799661799875157763355234442667665161094173234983910822075554162452001360980948703497448355984402498985632092777130873593332074705914783056102526977656526705204184759566389071739312047561199647790669533474555330022523585586400993393289908434618034606281777375217805596348456547268584492662767028715116476959959162731844130844845504174058145359889777918647356068577432299479390513451323772256228489444042914547712273436171757362879524532746062885321232755984994753716461189982303640913722823050835889926106401826974667150841849312998305851029354339408791822201322084813301882863424161928341484869017292490899588689969317307558098508391939377639508632095018518826285844565423483151541958208925240114843784418276073390252307796511137236921309369417945307440216513083530743560142929073830429147036815940013753664088095321992504878128859171249186961776775758241214230568371312657950281842275921895454753605350000297831732852490379378221108229555387603382432949773956099484228860571323683507537130722643592243005937686144364801432437603775479280925531764654242261371097210531227211379647884971522187811365022331582233650145802026407276595851820334207308692797458061170431400860804186545752855265180479936853799320457111068496090345452588028964249514412265124571830534396664987494398486687992766076938895849403285336154017101602624985147469727418847913228619470135315295829940716517981849880913716642683780430742718698737067508565630255743569087580530393510286339841772033979120294580978233981773196426207777025520803044134314701718514100829347296109523008394814317551045168111367231665337457904621783256205214986165245677560935856271685735101322870644189815142528909155577565830185778046630542809351025698819277470348832357980754103005806774527949812098282997449922726347822675574917825005491177398757992443312214255107064630902203795572746034855284750292695387838552929461424359849189589288816614702882647645768941056359663929335470253836398441697631796788494748046512260394679548616678892259941073869312800194722991872080366314957812698726223857292463951165926627160395339821062489351918633019842199422177929129305180424098411885149891824951737014886118687031217805433600131775041125171331311071185657091670699971176953612245799229342130902356829116296581226675599541759148073767385636813061561934836467322392477480013647065476621420082481029973418927179485738676888421080787112423479692942383569124401607198549673376706886414077249289475515171957534437616337721748545921871751963822828301573817367421884135970696152758410406895954758481448698894306594133933685364104267974383114957112782409240224360289206988206197429748452360001294058171340175591149918478052167096033300942600896163551160615965385183044237731248306891055145106020100327208861190636422027899413572447504915164038430045412657647402219568533784503100231840543361337241056342300016859034341268464475488325266290524006318756242736274180787192427300867509810591199258465690120287139478508354769622711060893482170984268520016475063548836760600625408658779821999788209159514564571143552122378931755583799772472919661349164541815406081246582164535924771442222175674566110284354726219321926972101602766783993241653789794576581330656504628999279254695189364598719726720805824577293606168535003962794707902248384892027256826509735434313745444830418844094454196445415346176018982177752872569143215729933798405492064573209469292489001968913742948901343353672600602746012017203223544769584256238554828447752776345140635734436636506849759171190654498628281636854170194042649771897560138733768643939146257572748004304850420269061067644257189322251922433767021162509687226515330901294128545194680926941930050867372784791814966816753925668602078027020477691069245087218256770757329048071340551791588600521890509649096466261300377841626173725856748336841366387398090673487479401613841174203032574193612495598119251231477295905256922254806383016072142261906826127077545398128111607772713220655791161083768690481660575694182748468766654812570154454013434093295855284795991412879116823043930336554565104298027897378772544552593225442626063714008936173845198397691852181469688229084097676653596972363291378552485947421239497732497120162156297076986750032670908231979580350108854917930413555215422159632469535649057553008866275628978770478105770497663048275511025741240965996267443779660547923222443299526288048511990582816477774048419216667317049831906105240588514840790412673867052098594526147546683402326755281167566638284011064288633561662948478527086594209054507642111258867277838630559789496992550244305731915959525006989546869679827491876387301896483100296090453705691855693430863627517174262715522814274221908508824351864902042453295043202260901175369423292317598141692019053356457728812834272860885713007657969214227993223855138916758576237916097930736953099092666636512509135065692056139560049162426883855748238478666689264689342418965690067649078439439794745618966219964796737930124369141140809710306235422762709314640144948965776099907068625734947936588910702044260941923151319231392124767160599675933986911163955532127130661408577538330183150940043529856427868660197193861906382725881296617612691752990187161716736466877341082491466687457908631566760635513862926505116593310133556283795783067133950205552376578679649245228077699569716554394322123827256911764396260280652362022509853503655520067796807326574464113012197626231046472438643631283601819457057098804534746436816001369627835488813097479677904493723315410298404706765647097028286397925589304219830912188762049512110705713768771384407294699993747730878797618994447353279682664427037280917991477479596194319633944671935673071435771992136032005683984804801649725059810747425778326937190580552064272369042498666546319796707712819169064598930667307594253823462953519967111570857089478573256142966786993427933868947673352428980573417129237596591192547792570032953283724110946921593950283801980192772423952931886130155808691835279171781202744844488822769838073128534401992237752462472398073213079440282559958438268506000727875070649155556643542366214855775206746045665877070986574539815443060203707246523238880374882740664012792437727373400818959751608417943629548443451559546954738332200051021595907196538937693182992235327342222863131770527361652484446715500632544126186735279266399009772394620970176115525218650598695203737612730406680835234883973761108533076507152156839358617982593997068290928860319881357461001683113444213726599617591198197575470938181319338586577429123457769726684075735384154987636589321290770445621688492577489588839472710648150375161872052397729630494553104776296045200946935677285180916259462425201025349184175100228313094814836522562264960748373647393701043706670879570526036472843553938479741975405821375879145080924796191177733024850220468918159796661798321402340133188168343239596409387664827530097896904062009497311503770804546811438099285160660502574311841413815692640572627189135127343332708143114675662754454319489883976428773013539002435256983802624254546588918551893133174747021396834072748330051947036673004609646352785424486576983006898048342255490381787295986786053496845217996865005671829618470166180720909800892336557772349289153292666946581185484787478945572968034534201039615282771568097591146416241780461076327946423706797670954245780300553429789399641919556508664501248185140038776022373133643657870284100471515709457534317891310188887156732552207315694000497766471213166965343030152341328752800650563399547476698657606082450654162808594670943562130750258134937927475519399769946964143390949360331075528267230157475146560824901903040150953617049991427619134182312994930953665136815422494868893167577310590128661974550998101201563109845941021930382115078829020859704372725221804631856144324230319921754363920828341300115366658968966085288810473520063992819683386010072495111724993237577081514431463756005233279729195733484175291931075655748043565142487636206093535610560813140639841595115442534097837845181689048112261328462074080598182890668554852679864710472799819448997384585469585312951937948551879320156772469423379787728030382290959570462726312684123288225856367811132677253963773863840757259546703610922450245127978959200698256694061936974473455733517982928570882144743083778116994530834187467583183665567362296014780447357607330220766531449752402598407772087721656222647099459116683767659489597298410644857708449324184856014139400674828144344156815344016868695779297749501426124266556000820121033374490814819993168052753899288455133815255206794911516233982641433632998931868492063973631110255432519847846113534777032791501899783837253471444750889439225487168254122290095729499165834165747579335560009403483079923429434893738448018986710059937179683980054139820268029241251584611533913753740394666790628946971676068604111065686694141210685590084414400405039465934191161716500821050941830615234316069698957205741850994371038588539274784395905273592666468796767531882825177387647928960118313039833681355136369489588682518548602056190180006985648081483374738162966844677316485782230918533649722656384690198322765657905965771810937990548881700329060005389355239937130640807319509091631300829183984907938301296231474956056521603213292003511762102497051308760769158249560401231793488772098098125195793973447343947908322929679759233988694808212679985494229665720671054855391350119252980507859091328867677759514067347565833918529731662619989473501484640575105181107873936574325552750046740847816595513124810557870261967243416512763937003072292594924376815745851351563673545248017578458855335895364409021310548011121154257728345987086176759122227357919411752901729012665447469979640322473247355335928597159225528258446148310614320257030903578709691954626852958487978591396594495910495953562531510347946573568825214298848383757735506500007291819519140344237790981390392936453298209037478041223552538243246129577985014558646442187636694270445615034082408092440643108672451092584713022336868668196089384872613351297588011504296649136754150429522376633481828968623296315355535849093548237547903736948397304649187784441322732585915485813351309617875826469781175295301853670429408038227892804164417602007561250156357450482396315543483546021497617583320042027602658844472622090653110287269923072009780291902700935489992882488336277117431466489216637241769996036662764339649603283718107134843025610328820401949370854568727757858754136999216597309229442840178231512702241856772547729558312077034246412271409859686030068067105010633806331039969372177078477783018127979456780875205090592116311366189082558534522498007710021540327001371918745612784535794289264994038947123309695736166113533114661578387513132280890991743510335540726811628627285770735697353576689528663524321111038838523767241899929263125591418394184990095573607287737173051123882405791655989469176452280949434499999897923950614543813482674650923734611907753008437175319376898068683925401617047064389136301184293354993298920271382643919373177116368844575121240640628396523780967609060517797389540320371272243251288683435203943616029331777278283529718455056151245618560531620318731480279607100903175558338775609167724477881163094834760293511733448076365605487209957430831093316652668965780930937402572683995110454067361719998983539710864392711938798844803465886710620981508783643892771562050201332663072380677233443245538810178268826551645959505997479191876759174457857974520891799551034535042154608970225638975435313255549534070541952745445802376362406057063255071272703907076283611315464940160364301253851168099444264383083345763352322069117299450569849384296086443381601939487850146596493101983222238266430503395979105745905283497521982112494526831264615254955886762528791546595739675050199450610498794138373082886449104450837940404731420347898267274708055827185035097733923450815948716544146971477439623377095063708396687261601049744252621447675846749593738044481642265865714877162069555185593119859365630788751097071938147612494093162454502199755631457681649873627357836570913590656674647440472155230282320906610958368446518292504564385010335857337039609783740415133236400514158715730510234087292148846328694453812189053369198489150879514890244336195214923099298742585235569879250497109939434463337043002554359826128751566373155368145096718810472829898015335963735214000113643060729834552890420115240050894403560791132971250950993490884801931215016573982682462358896735630700393671346678179344459402615785517165828856422119387508342637192675575438605172080323445379030298547491263601611069868883575080820603463835993506683656416688594562374854083694184472631455546495386618260601006374771370802505138780164474574707354554247460423032055492411181434009091440319924150888337022548189964234991045014473848883908464345342683150976086833331274328907090393075318869085279792976348891145870981052816497171487253531104422824841519704955168127327245560382091464327190045843149530916342483955718061753998919663279380982557363153108622510671285738271899197424648945500115348351848084396262021886212179586683559628411844347372458366179444666570353552708372540070523559086683183545041502952574764510736937175610038190078580718603794711606108589977054105309917540534445233646839686010550318356646856606939714553222460509212089882962021773841531803915076154277020686037371684592748589990593775708802200482821982563923862617623279568484643089173484633485090512192535872858490920711554460512309160681318250694626727794135552164124636547710050289576592994493772442448849476577536855823630315423516550967969043352793263335995388470303654533749826565927124061500745418059064238563490762436263813970940259914814420005516356326362988829944254874920040481973576342835986055076874809001053973860448376572968899908829435885498915441405687366788672133850080948064499135940347810908889353980938109003364333511992288221364512951934504844846652780390472353984628696060845688518759927726418172489275684402300947517629566509363086372522643768086048822202656231243744262221795044709043556542919827625690358039114497801526258637229680828650145025938941104672323336386884990820608896262102689417655215164559117379690725418841709550204760189393927249664443665953384483970641524300594587163698942127317425966886068847096453578228993873452388628346074314611362268531427668226372987461395245505789959449343117874943297872226314493981892772628429151465217638362821032558028204452914611779090972241084883621624845051872502639710346982671590700965604687829140559266628814341479995499447964426783858457537895804107248969206758830769074834973475436559062467865723372188926461862584173561835912220319096341094982641796186476527513419629496315527921731745094436857709062181093958107570128493433850558040907742701439788757515511731139282462219241010966017722328973837713284020647537046825297114365930339136069903957823181620302457591922606010769195387751269051097268026625764077246119186443432413641710948288476590180053645772916712230151760327926876915597095286709928577148436755841996541411434619792810528657838571143827464061020614938456548385259946132174664485474371824336094465632144747535529717763249262886850111752009050222591584681409909293899698524379418310466433060564381206187604318838461079667431264911068627155820843383809879832503295334789510934981193957896496862419534264111438704618217876828209837629106034173614191534241295630060613934020261384241302484412736842857370468052907284159483341732317640106972563421214456327425750642870981518263324651070018763957612855414390171849078896268127205007495536553963447641202774879026137202324610404298923195279552636694610205104266111401501193055119808835060926676179490113888775002858431583768363998152698566861505883567976464952066171434928035736461879057804941461566910767477867381112459434411095767431344576852402117461970867682671890216244363097454468802018146633657019742701483747028011624358805173891568601919991709048473387733431029925674946255269712877457711660366754929956321842962317225566058416172814870577322664782630290166224973724813676025021452066983651295592690518724044438016076395769559521248208466850045317925569618433307174624276308126626621453103041916563496671141198824980440682596703105787283917949599930268302163778187111904951827823653636971860396931454457297507120413064990513698250919519123879862773191074965465167630870979175143908108909211188993550980898179331235803613145435306973635066917105209004671521432956683747012044907257798354702265973325257693396155573746247218618532421237998995715150063546115717088110721676035032776732622768999523095468312526685218755797597000816984013996797587675332869827314687192965588494120985404661108736902243140287167019757346585285852881790086178418886032801422979120575024624121289141667374620840927050766799007962750789988652847942094933846509579106432969408737830012961107635280279439029209154506761498482395822532277766114597968683243374927291324404882124826529886922160552698288393304139880176289467841476763945308911515390064202057871294593085726557688943705094545191718628995857028658363005627870175734465286149010332984978466606119569699401051107806760289731443406779588061303466392413420229103122146512161028836717246854066683186102499103561022237555441942019342057101736578080076885442720544739144725270692716279262234588651417330795241894341347236727553725593552611083270221555548544054071555892771339553205577973507453837080399795999546945170515255678561340453381061720927831393628211635068443505845418428172537044781166010649898986402531730034488865307933440132847243670151330172630499820295963840335582844547632630749156804094729757797221727417552746878575242853565836069082727099919199407877682784869266512103021757829493507459250790657000321289796108831093378749219745564989610089879562962966849763415657112570316910689799080536646476144708305637129279047372911622331935546685539966835379407278612219712694163419481602807514197010506419014997995340939514903941854798587989064684170791530093002165443970268322630072460294452650559615898813348824836378866586254224884257886761179924886431216915429746089796963545586543340715490028930155023886855661395585774502014771238902140013694924113238818063712144529080951719901947329242904526269822128277062352087798671491774156963537792106857682536519460203163044142332265724028965918488705736742558196847078937201874159351011100622059898226295703988902330049403434264932809613948359321552062876986688810759594202041990771671433185336886632613098661507917074931172099455512476667533069919352942894899568543120080539975057737150070238833577535830965881857019567902733317142094450802441423715190711510558490731493203194090789123415614498840713677344324592230919459014906077760256157127096958617767348025110891019231545333194512866855757239508358390417606102192812114430850379992974195543352249547663846390504399640170370893603067107831305064279630850795219494015792425350437708996262717561051251986705207100978684314419601990518496154456849363126336185342906969870287853092460140700667128780551937857542834946493383283955612011643133337596045396510846235717996883555882091822649874460843981135754786264216099642431066233849331716058469268420702072787370769740129731056302764961015443232646961473188404638647072084025319061422694255110918588108886274023165451441774743225729823523942593145553479474809149693834204196188685740769838385569087440746191599146090710303646408929285692004651040195656049649252281943574902302272102606117685462114488314702659744162505544876692091330889506294611486394026988573731360225234196991507138845511166699869514844073479047913646562929927623548608764464162491660919270263621807010157437255881605368109081333375795394903678401180589604399206630973867028361411903297309823321689617950333655467956884645316634672141992112337309684469452889368903124302770421466795220475430222235909846488794339596206181708197737995947664906361581772019660854649962444397932420062914106282717425100500335732182322759296251741562403462830453975371398421947400069044243654767077402201818084087908411284765014914318127812401213378500341042038504039288915949058084124914631109448112029092353581283250552791064200456972903342968434076077671279158450503715670790402063108517858923311314232712754881493865825981682934869628168366348613307873912569738735184633333677935153334040302921441593836932567698318017301419680662305179382579277607063092516970752501879051923969430008920396512596134604537130635124608133876754488524925998563189088236147608092888155774817009536446322984661786188422432839963753821291139223869995737407810311588816342991271609028203467036823890280885155235397136113071526243995977464925593617240634519532542505279184117434589034942451474762804615591701200579460723384982326469130978154196531474581736181347164919812711901688123151395255152070078826256525741137372358969990147765488272471349878813321308470911416557779239305102003412926462989212583770740597426789139226177713492251287288729813093610111288068396648745695744096914667524521294214829842075473221291123571642263295438577785029481344874302889417501798927501378422194420444845875891369155600688711611277632144392290139325958813091792230449662634491941678267242501010541940574612431617454735072916366431059576832828955885523419911148534527605083666762985025870882996429635568547939859793762939251787590007429366648169430009436512270323809845674834859395500790737199461971734366803332703317532513672284610744519061094931296713814537478749115311017268617947708950612536448584355358681152165676594356204232150772074276561258487366680801054474056769850279411573706011626431560900779462474513162659056852135042233596586075033250029711014471736829301552482978376976641621002314025264904143630173197825474860050326612809223107450088947239021038528402731399296311294808169170945414346127072385719726460255599986544581045110804807479320539122128685870753169318350070222927487942975016528645566268945676586251663835178877648064631755004640486015863399143352642559803332175134112181367596737840788221305956521945587031749116697025109603488823213985473326959402571958642078789712420700418670296361178708087208573618920244807045119960603976715144855770153013061713084049147182290750043551875294425258446865684944570125837136355925211526776745252015599669060373939430213632797978114324573851724295542004599259431063410499461647670145850529021941058554801851324866354308057147287173336578972390030879128517460816439043534052683587843695988623505946818496871767521694184769481987676237929445339270498991360058500578388348835223187524779462049613595543916107174487358810500563579829616153181132601422565470883471738582252595587008466004562113841504005393695482918859817849111658032581159314796731613017068082171565580350488247744131015997922708578973074470705648295032590770602918584673683788239250770827717259621078059337582914764732658649374406482436380848895236279713546862878643617948645958087248490545231904844582402650173074242906839212780259173789773673414542095722400927517677267296714113182465741637536753545845491842083022485170516136263869457176294650622774691337648106489402432244812479988233005883179357007898175542485876343385748749288862995217037286059195074130070570828008252970003218093867111595470010835573525013806804123164532017435065354554077636015293175816856666012372216349832623520437863038174197834627057798029893650855128334758612369477114570757540578853648475098702605646158224890146556868928549883609967181080325509245264509592547778068630854131849239791721150682309840246248802047119753727228775816299207377394749774813875792017482610902727578859887395153921464832446279104984173521829233902538860522707428591620807457963634258168436261118868672244239714925085081586894875652277979923328295706583041849799859706232336810046963193869530391503402022223212794205126932430574350801254061429933559781664471786699697530581604425579311576198721657130379977307518126846626674532895526611034347147167241526841069042575362449960944330472606711141271221885530064357642169022607671214881165070740972806638689076656489107074248222723246109601332161894300745600757825373872190070712998652719354883001993779966515908723787335942227158214908021831262205977939466196207399191628811934106327670537735204633772466334203268545595005642587097836197712903786948902379818077559168067887520901765179399870813104475213476264607340179120964589963441924584786358418078191953826587785838339757668952430710168866435538681727322237709805362321723899131596398737202336196350223729812057658260091316255507972114383990409110427890733771091076713207445648746198458715016518217991497331731813588000839985305915574401455197309863261233693061477786396268402345211396054305474865628773428871731327365801590231165561725825380356305979225599715565112141693945076980270523263849329241766860780322432887842339065499954145097843043885797784473907736145413258468160305321107870122656990125797914849205504842919071839890697777416038051548776184817975857489372289571112198293893062993981696610334589214130366022430332951293404320785948415413162080326624148399713786503858229788728993338615675443168041916910956797300345692535279171357531824313957166701013121526772278599162872898593976891515454796348508617279532806682956168791061410910798084284329637867758841520944566018258785093254907383920654598015549459688987646391814563008630390226927142537657686657469010362579747056314027917334569988298367834958384466734764379377242432579557020960790317044267103030205572276536061664161822930260294990508926674169846803843516573659990462614923542843665381639965600763924047166592090468373443297114440967082591266455069706388636118816865442400940026174312578328720865074960209431347004815008386955465437851065502741704245583893916485858520515840167373573620073399056896382259508377948222588705460444597396111888233613208746569050777540395818238616616214588315535025268588205498125261818451260873029479525523817252302331166382391489971002721167120806920039633306514087077853980024407693367771586351009667561156698577304459382241531044148334386213620057376938045916869890153011087027834559995248822465829256554052397571160333717505870150711431922909813151196108166306160462394049083098507043074830234370347579974074628186429329857109804427390126170506229151880443650854965658144975040091422261644450618856148796127008833311736044057827153352733507491889232027062122518130953776982381812639259061674474474000278692778672015762912526034160121658680840674838455789875696341165800722038260775614633188447568720698350137510560465005150413186003992685784553662743298386467972041634707813878528902040717354480387774833481289843465667129887416619456766748992363567338418252063552846158774201330604222366502244788177369084265705546447929536117007967949421555493784555799385282264993632319427424946230488315678903797844918119588320167110568042151749986759817294571448190007175339908795522075597991216615099646789597479596313300987276991813151487399324091505719214958810354049799854139678040896413556017141645367621311991530370586375353525310485457731508104129291699213509396605508147586943193326187194555559619089107886544645444452184218457441723805450292470680660398919387355145810734192122841337439366929924975279413403162820218587851426533255597102440498226173014642654310051671235647005847627103185269865722392635358729308031249078561093630319291175158315204258222924134536037891052763936800508979054237291278623082776734766673319892947870300167510342345050279790419144520913120064655437332474273766718489665746291529723642310325445380485059728956967124562930808392098721572213709101599893436521810998105418933894952489381544874342941402691603838970059334959585142509770047002542715778833607100606721898822137209857496721318590040044207709781119955873960209326342037684383205674598605377192368768092774380653697545109628199576636274142708782235600271013205651542099452960064602888583992619503396333969271889879085785241272045806398137063179535486977950033055540733243239988024759239674394187142494763996374138814109690705680029764837251978425696723307469068480536247761659631598302549751069033248074897549526388481244792590562471861582004349553221950549957379735373762075053322842578536659335537029601296331628174023460784733145258527314752074112327143299300936299313695466492647488506987911418024948995421094267251932295433275209568959325201732865656509243744982776967196144153685233032363884893081792273076216332752198574019536349466479324064524596464785247458002410882170406780737040541426777771101169133164576949612389567191663363041313377664241186002890363704783700337072773484585374251387029508568228392357132976074612441594384317164239714431706368471186627720291833192622616527775514292687214963532913183444296163814183613080173278152059695105220305348421185366727229483538023656733626591525480118983626917047347024346561726361108823284988510914984951529829114097531767693020013210973757447327011970176563865297088290247254312358758483596946176156301237208810892926239567716268952576477377439463647538291025948202257697365627300957161435847209483140714017933280220043316930561507215058008791197515074463194587137781980184583896051263455355204386579155263082728661210855931755879061218730456702643689339921976635280303586181113616332453444197303786209993023149461162528747970866748369818975323403901681041794023102160897750150212220218342930346150701953605036506915913099850572358726967712999346365229519291373094847036429332240348084575920873758112636647233010468161766300395079205058628883661609685401212229462346335300502054905178398910438032106759650526907203372661679621516165199512955199994493986103681859179453493912317550039960470375240837764534907511632311857475777100451724077285832496364869570172283056190356480764801594691864503421126201807621448671554179016930400442334761206529197887306854001158235463575240480476640326021312786053991226391033332395579058444929726799294873715955306203230725157006025744455963472130074282486423294469256023716581986824183233930561094870311650893442264416192106146645767975178577344346664453198876253701713868339111433073947294785965425264368203032069394507662474152329976183379182839519310005436838425380470734715011622672455364097687568265717206900531528151553255521497394431022755464900012620384295274712398150598133977178757654553108222007923898165603391176971393942009861455374230974235776998135045626640762892417905909065613455174810479243480820082486681602854378778902315990558488352456446358993954148829832779937517752555503294368233926986999605423662320696967803651744153446810923679952735052143713540008031024906486665223817951654595036395388212283250678101527240050653433946400859727692094004924986746189242734860081887497293405987434945906242805432866232389249369395251724326639960947654585983343228465275607042581088231860289912649006320293424001939101198975632447773560886967147545924382853478827924958714691474434231348690127254064115127118761317982163472757356038402559654783367070966446773784888891944758125660629550143698481230973818205305682517625097750568873531313616350342329925632218235225897149973314459742045825422792757734354878358745728468117484464590768590744577494817472280997635270015802248028955654687540644131237968965921737480025708736764597800297733590590853891172030079881759568122630477622964516593506250138603033651083694997033785239119673945813374343860817537324503985238905717025700142398915049904123728974963954031749201640207913307586993148645804012028562537430653068417636636996038537108917895473426281668648356353001476457322487315247362106180825410649616502431408450317317082371725493375720435755398546929248449385210274091515466270514998394665335908312572324337932210054404024969397187456988053580078981052771858016520073548811426995667308875322093204297711273701512846941742674724614849065167068073142641152653266653175768256857301495508227775567618384005480759410812584408299817239360504087348723268729097822248397084977266666786723470317308615822140289771847996808496277674557413690314261806517008633503423639040731314832036464947649103024327811038731376869672010960046256870770438402720573398244875332384142535587352225396292498865359899861419099734020360699858415602513257234714805336085193261548313066369725861441962610879899597380419928115446172714783101702554229318599604583351158807116850621347267187764430098217036591701436975220789494544814994795477107261382795446085681833147042997165604836178889277776059719532641727621867243047367343163995631192238254087468397643740489748524081983797555464982842764349662720528795719570390763795757972985009390950795173781080298261709463058199950928753038767718261008648957677245845314263769092003372135819761457951889590904866410821903752555333757018587333016413957327034928171974443584119336498397147033286646036495525579203079507670431237839018777878074865301295308719598094320088360382072196832572432511296334669519428709826334992943482845180438380559532145261042882576162198880294344804342151896996178414595660903247977819216699729258322106627606257221777916061419311806779633752381894621738617139889871603475463405939324956541732219188054279760869509496547742005228150440704837035583893057807119388620398221979672249317186004664423595566928192402192050730934847082692059040460585195234493865629640265843175859433465960002885888162241306311829289614397759317848255978688656448067007764487714511710524426096574131500698096547195363949079497753011567471458236001786052600809493113560311403940786579231583057628102105491718086225380401692230870610597529073127429621097765808727806187808312653693897691496658637893574293556660510527685277399976201584517667189729465067089025921351860793007973179606345821331898397232326646155382709458195492758741157591806323758813224077581588508110299731668046517698562378121123547139223783412891531991195581625506831362720656937272071689766699675508847785545938379456987243119136672768430099037446625884259552360529743624880260659785541955735255944610372504004626465151834830134472440072897079614820856670860577025981445318676393887467201971065239161891698430329180088015861874786158626341005216581739328557435389692427452138783117403295280112270641066107714332500110404694684439843118023668130645693807720460928175105946415481093346557171474748366802988277781662953785526065420306127329688220428947678066894923740309646055842967634078942252955455689486410394240970868047371683946579746130191565993365060841744217091217485375817708564311855833406026812068760218038742773766567311719937325335029472979971672486218593538974377068128711647404407418886794601996604901992882285304853086666948250652031126985563521399287785405592039490286459267754394678821883461288159347786237685114394788113048537551469081843529602693885630662676760357617943141208767254677874822838308326086130363753553740652774413868713480959248942542857989007005495557876945007500201888170157029990725738086476006447895439138391777505234241695843267026926264303656792945549213572345191485742545135001614410444061912877235705191079368771527987238862924108527217376169208534176842581034532907592150257298880154569031937588892223896982742193999258744444067429874647874215534243870283727687728032051963466108843724093654816402311328988895646602698828036991271439719694331800768279388265361741787626500100102543661757962202293225521456305695156522209513638762398183080059853942559292477776937859614704277281088656264367167587304615585480552595740426182595703545357299652408210480228244223152294852031572415305993161485036080969695691149956575721769218478273437156218549404375044450303730292809020709024342133010819442287658032865056754890297264576124616998771255545112948692558135523461484659866531836630043216972084940252251372923063589141243530839687160473173165279738488172041480323639742653016670051706505473306478906352309315525201488300206170600185302778712782035633849314517332444428855964457549843553904445725343427172033852806168234969836305648447491852558761042814384481918743730725939316415619913529546137060787434694520737130414308387984627663338921949906976834383912503658447285203961289528730992057746444766048769513730501040281459815852800593423076656176389016288454582646931418691330862291050313088905765399970032816950413459885897667569694107585907674760437558718803128346610260451973968248762810637299740263780878760602956969653827255927145477062198161982405864263299155214662215250910564038019346157853779781483272912754174709132823754397727159361488217528206026073661852947686062505784443622243793325384781603059251362203943416435876926950546514671818355584072492342100243730635713793063442603748902847428635309393720390229046086764910097336594413857860388747113272811901717704532551388585850105223849933935751436394829474829818349256495705607960278070512720864619642534480103376508013679353163043822550668043080414285089704441683689896143748938944598594878395284400772017868691973657597773386405100832109818386028724113525952724089923220462157921841461358082107231442194258769043272807452973778614926152030592225341384415281942558854227554408100673187511892295589489595367933149007351249818686764139753889655663432262292450804587314262823379123649451629605563953779094920713313359563527308771844464702149695110059692600968006908466610775552452206410455937615821009847677113079669325997867030879877260362578206904030996797290460765541936554650125425440192824273746584916833414726823263049100558430178864480645817521530484047683444283876953343011406026497095648742261601127053566959776067937647369923952293609340304776371519585379525540536173328459359461994446541619461776274852089575808199404659639726496625739784123481496356325776167944807515525984003449051111163485164930542191904321990865454182085548241545764976866584760638334517155441688393399940101179344666568658752713965695627012214454060172960549578255709859367260865058599911552639874189698123218385704971093257545461339328705192672416398710600290798361347253856507946568161234980136613690797554394933145037493608762882315874665009721773927344835518011631527219507518013232976090198982654020585804923682037395668568005948854056612473799048033863073748369112971213848680842284388054420507797708563863573324562568638167719337781765551912329120055098890093446589230718736141245288259347675800178268077394783240019729347289729594959457660302361026211284791581402781410904830571355715549977435710265973121181445197489219711160023208401257776134728972945378954128709394157481870060546299111042328265728264208205585959988573089265244243118485118584846577025677171459504790909154434247686219802240344373682219592004010918130466300099211864347368069325650545366121867336473255111443137981184016169578711222059902386242463331468314819448947116202308051801920990787886120653117327920280621404904159339771652712382290725762834635727806392214575979118088473397424585317308563724207921220319620392762970432093619157629500217628917727523577690442160584931179749743849426000295792419527501732368979053970439896587135227774577227412260726903264901214778909000709916243829502695798778186289995347427128309188969893928406679853132383907123249746180406225953721948296625987327167467613726534386565521242597576893630945587050239496418873626053402137644089491956148748719541386442773788374512828275512024718830554899887875244105053939723523410108429531077398739737582473057594982018539627629894937378380040097287835285737872054461621880386164712029839786831406787007755583641283056219105912688961415391051235737123463171611524161267204027503104033369545045024203140098867752677992606237177507365504368323589609310860128111358381483260886475354683390202121087630247352968260840002223369404563770145643617559209440017678024115074314054974377322400520223301567454478518036384187363566164732046223344503368768653711305216868989411455599594429393715826807730878725610848133249301425977919682824603554483289208174205134113209015767310933231368393484009738623932500525814061941855962874272821930283113649787239564989379552991601085745916396573598753562575603372749541765779137942073039471459198758208633572485914024758120211510620609246386745468401880994004256806433589809081633928523390035351268449005997438793331333856627891123871007503091864061006879427607481329123602289344132493399681422647792177550055234334492701141904287462158212446113510326644794574806874544127403668405859481398324819636772394563208919873963310364640416853020502104426935362379935394512663861819729290149630900383575428190438664903146687491933404825105470094263552839281928585536165072701862262245316599806095890577850700576010644364005682172161619386065598361094479767078685727807443421193530005248429372679038445001006215149713914590967155581959551495985412903032583605558049249307700942885585447606339748928892122362918551345145365986880994006173545583005017938684116067214136815989517732230386077333973393264728839815812649589056404046224602585529093502176640375612409388917268333952361401125686841885113201927051443614833902516314047447714351245064865262798218509975969035853979483351166379825399473095864635759110671992894562857051786508781069082239629865736939595867247292565563693299362318194110576303712449555582469453130803795946317450840734978077085804685176508472987617927289219376232410713130294714431180553389517954059125578749540584518876970331257404802206344404229097315371334711235547243672603262248032318055261821424926644283795658401224248461527968349537711941431775903320029188223716004729191810872370567298776590844485636995610083748576234378745492966362316253747357528559767983145740613500530755063607404605151274917537879472927526316893929121202264721195731089418026428405482554678036008223034048171072323657110354167180805953794643009175132856436400976141925196796567204787479178942781698453172707835760851480803224745311759290691036909895429375854512641595117072238956032610002192318269810703203773571016021404618485720464175905850551507390154278371677383559870365164370281698134950799170399704640670084522313867673636897664797233514860048338067634155909038329272566165356419819677951855083942746183111750176124102856072388100529538940047203191170972820366655904838661587068985320560945963825096911559823298265423484345394023711988947832414483746417343241041216144247536018876477843502648123026979046264475505518977778594264782570810142958622063208032165282960394899903953696866626223318424995574490111373866726504706522751134450324365069323108123089115884730811455125289452891388128228470151330399528766879972252048784758911873718789432827810871036428539870140319781094008111373375699301094564126121038787446442399182505554826835179533815812096608901354024111337301503454779959570441920047301873490776995809517438586889204624111743564146869121689070572072092616614779914531118836514273680228501242638839441386497000428845533665794140327119285617456473016210449498241160324549835102276266709728124880977926430240684882124009662353744194228387281566544999213823119503991405552262440187436585410768003460059531663111632944445412177399682631237639155555896257567706621009188305279858462328532296524050392733861029494598953940932175470557444034534666312347079904531018739104508384386933690595773113184852212181760957073817229161802899556035810796869792318330419048496185730408794621677706960043540473589487493191652909355436125303065380438241258349116456223195119636823096796617110235543481523831786558275634679235297863448412591040783799516928639077948953053658679077104998333239599199674675898328972484137346411028239661444706931647818402898831840170149056327999599576217115411434896936707711075975464271642905622790011620582349261377129200353866179027068634950510344458250768343517311281828528342267352298878277920410670869263400670350192956342495167490623349420446821188240411526116080761458933515272270027848141491911627113924968147909986204355026408252768629370678975301084071585186691879127222759033232621693190955769399581862254657603722241227469247512519121614754803851584562040674615549377002005546787867468974413230762656206492617378501614548643353676918899246785263726046874530682913964145441458737450526985916668423908007978001812359282427756428910574476112845731456884355052427665095446751012657314858153463460930661564907287599533326137006604897966898402768507516622503776834536968505270559261766860488206633200845946991632914419110172022839093262575120941544818674131459787559967225774819498395494526311686408581459620872041930896420753906708845428313932602249877064698122236904817806862637159143574503649731592893096382724719765172128634411106282648335666741726569229946297194320282861933079307071424568037100769223225531149014758032043599496157298430591582306964432464633267922780567159683017369586457705325721589180092056300380721477952137803963160292690497891224347759192035092119957116319446037878263587747665711492988743789182025438520018849124651032219063138633741710434292328582679862155738347304103097125728021355368082198726074535058139055778089564983411838583721462491190483618007517487731482286691304527254878424245756589321500701290211989783014907434688708096812294974177067965785569318890946953845213718548811232304068492035161185481217849811519142067567151251153268256082369788137742008775463389319435378244925442514383370305960662684502086455763975651674236375650303169578491814960646028544520063385442418542110902983764337143120949813968312746093871425333622525766506157117612277854543828287386502737995520101629278351527983066679656478398433075780571254918652504034396549214007694856552643616195583432628832377932041213114946061538565790778719553356239542073229813697505028439782850618310360845843556619818831417594995316731529972158040771347205056462598650603860013167127433530910842578079259410609601731623862137378287003509511870361606368340042165406669879343445408226820546928136279636276914453380585090714262577232621553895114114989188509454505278074959588742069311433475090679591063530386533631250565272844779390331464940018738034431907894780479622610949181729538668210007987273107574286163169367749524480978159020647428347537967607304081208366052082894911727795045732635735120283525013379652015747558857812005081185391259647341828036142415011666908753230959299981334140930507018968613839663678175183955522492263628297357717879878797031459310675965691299813660666683661856924231701753852704281717815147360003686275288580897655070933553951059042180811843788025657056200774296672750069371395526492768766249682178062217288469183037331075985686499002186736796706100354785030772506160530913624939155022308556138304619503982106496499360653430801085807032347887885513366986491418681359578200568469041746225709985828730151704009298873539293967730716198156114430157557620801364865381280753337477343976688297924602968816943287110285611521187041689946336569517876976709014556965775241483987448863523720270727685206871070624078064837355127199687391515685596165585121579009889036497768429978628533509139092195364160410502516267846253457288046664745084035278526409723810806321024394156633295781856396628193217149225809732837459901906379589682711420511454442390753398774351350619741480150735294615010611667726345942899027334366326995494456494344270010937657451861309233425306277228823924930489012195367426483768610123728440304712370444902141285085711693567663406655088277880669498878198724470832889588002926529948368160124660605928909749259033593725343839153911412019430112726504645985965685771661450903063396637336812780279496643853011940498583303649305306291830541541054492430316291799757844730867469977383892129649483440919598597434774817209121607828097340671814293149557093737417974291371101813532290845811338621718248306679502590461079878386216634354034477232519292920706073911928224944140729158039492307375642687776938997694801389802513104676882710209605323870956813736929213306666068227508869826570051503093468632979820594940706536784672002945278148221541413922272927195752551567474958114534082768136159949226911174516893671156479205023819957191500561246897684654831343529730992819010971730528704729662228625976606330793320274885452134018902806863997815584088105538820663161316592444653150829546449535030799295688338345808498890608429177099865105462831783610099202706759300213154254798772485741298134123428811083237572390483043545288648080116641410272953444726776274637069878840400196200706637875892263495125859782298616067648995170658942884120274915340027514448965165695665651554436789138613308511862727503291842047272339939762053637244224613731774156202034582974438648890001054306033154027922401211339651749183328123008420476214270242269804321972449248937657582793666409487634993089704132449762894473635152101716081629702255225438755247083601721253704100229025233281133750738181957919815606203796911543803899932732680829188419217306740178899829606881252445435365132465928343232704513040312059857826900284479096716766373167401893309149690519008395696501929255994899244725403086761547218768536410332771150511353172187180332365889180548521949999644641901786132797071888758557950284763335413208508451409338556859899860694103631744410172476621786301073783383107389314150037608334769593037951406167832335861199581427269414493401766094275810896333028979401360566247508585735674015802386136362445494162703395208234743389239160331126029286833733024664767957276065302141878930100122548825166227714763408101404683647232972675041298351720594664529329018960270178510600458324144384004627703730822268715608569352274392204308913161680465568934967923884950880517671847710924088403218815545227622042817027806519745488893047046888726221409703097828650170961669787627809408721652383196952336798241325624600384923567131991486236044916968843762270579177163345021647357038293813649911513788415291555808217564327930632629869236313297734619836611862581528545633259869088102003486107422148751538020412358343956852800887049002864734346318215845263051318677337559248822326797305804750966046987468289171381405185435248947376716005804868418110455991019474847290806524981702479956545027863840799431333384796428857276631145031790717808193186000195535686698990707104495865603274848388499770000308311403593289173886769020610041526182910849987199039572162246337859586398876807712256733363112487455424683390375325207053717176248857845192866962138113609463969617189143621865150492605988109623013892041761607193373388260781753577256206568510879843001831288913744823480446436669322862439119545869346955488604115249071911787837043029317310821835821470255987206304483582632650372566306404785166390753566673860184495609496780821099061090632376864677673811170406107921839536358426695045920853665849604279783698874547222406116972994578325457528017891056800760085714133501784211241509167712642628076901811312875929403939879275565048589028299437955813594181345533246119382813036742816240225764459726278315186026106865959395536668772542421550365540331427892080653387385013906034880899195314717792288097046025857369334204402040346649349719883464983427372632688251064664635667359095791238204825128144444831552868776486350552873225262845838564371145750339196120438452273174963682014174405700805633862404061104793645057933992350439589601541002151726244080039053814202696649598550130737041085289951592409508496121208871880356413825765196823055490029820513399263119081090167960215523061650585953518601007162674467843362300299427470717441348264167566923549418746749986724089050388657646863058060922474448374583354572641144909087252866577426865457791152880246457176472900535534404457435769223785404904782141736671506110008555642099769764048876694099543299264104871949242636469391705525194601268158868017967912369841908280476279235640573042700076278202562420418478791430681815791234794885427383149598474473514229276882226878085734851659265755316550480079460786915793475212366312432552557625425960145745156444591705783483716270278648413055248538430582454970552906020480386630543213604651488061681961450413378527921158140991490625862162918870883444817793084018476610753295798335628254574212519840294391898073646184377862682020321144743511407229649790077623289294098600551591212443692174006915918032982421854782772232044484487235491825322461369712057083768225736340672271064607196788829584587520262004302635839516400911116581928190687302687810030154221792825890881735265686598926876970347810913616045724232381850688720623125847639508625722247783281730942312901753272691470573132724040194199172070139105629514400122663561968471350250381675343120637312815967089952680996648455633746852349747385651672550790538506792686514959826819177969607776388082058089785705104268929822638816178548729100568397973865439074429136466207905717361298098516954145122098559624266009758861636116139300553499515702547013514831626437322663793857208442546141239720373986198496162667698284791817643508549392566744022820919740094206677941500812529800860543211061688735059680998819254395480997561309633831068956448996251169173994311255744271631739897252695968562062501527839580277383770229781813149337343848440156459524072115299367256891988930769494150522181024738627750018743017393069001916442644676076564483287804053793970284997228835273254235513163225892990141462148545125786794597032588318625922499389998810589127685471397321237024443228929996451102788705132054218438551939197723612015858108694762937175074993374683455857736118632838882000826674582976256301142479519393065841296759603246095626198563812055490624467128134226443035493111072640331493921217637265676681938807495186666652665851808311508112991891371633757246210665137257941332778387165589166768647713767049616184978850878293004688877533215800394629050823661341907408805407367760800159655190829289144767370230149784042843681747514852092965542900736335472016617270499360395526187940798417367356697096628352247647768322301407306178819943647117039184825429211158751867901252825602888569567811047013124570748108863966125129844258514170960592505685364782751822101537225427510806187168342798055522594940741674849666385992159294631481093265136179202077952751057640209973982410566342332240127178291773335543088020435740697610764696674661665181361546395070104516574120652970526705766627752451370731430538848420510252882156578774375868243368637587336764540839215472573058904537182519910049644320583405569865809080286224723814773410726398945842028943959879100641118058248205204264790897511650576019787145617254298423195332113736279319692189956075968301661022461256412694728329768499569476838193622556342196524829411051664330383163180616385888517825604526599037140864680431029891711717404144831294888714998256839393285841219342654355006828392194472203850732260915656479102315164731822856265760299111642001689520375788502080112252325633299721955326358504732066414574739164392846881916265604222963015425894429842090612157562320834856705309924732291292751130058022993475581486298876234972263809701984895754952776196739244512318461044204166710812064964226120105018632411145705781954506229604216393717868988295840888981715738341823015193043811434456157361839734117068220063227688682278314361869617586085383063653694192732050541741713515465489438724008697763698545257291015242648766737639019457106720264717625505504872163978609661748176980443258916058824067328213902319393129512100435347904154163941331192981928636422898984434262769317927647592538709523816955076705739910451132385922517779648988401695171240927101848409332072327517725826706214717571073149753083553359703312900707776477813070878997904014363536721965379446128017869042780910062493488780839975560252084805389481527297745042586301283394526304846877860510886413370006157207695606594707762041956952861185951822187446946334820433849244827569995546703267671545099201674234076949854455593318662748901609236933324697188279934576406317964572124625546586046199076686946751325342318107456490796854743378882484280109729345750668923630958351216384194039653081951001574678232535017929283686250676866972716682362833924500852375626182661512496213187376088306950715639835281186714528463900508983360036578318231958264680477328431507338756891740630971156020409541712490022463193068089654655787993426121858699787598850963910367588187852434146553800612206854070646738983397700182265095501872311031028283802450915333597302444075200906485659712279565314218393250565820590012189267433184885260408436114006129558916308984281423752815249331729691825173338544521517359986818085478799994140594716636833087416929351382404410129748764539222807822202610164832656777550654316367419590053813174862549967388917347733452425981981086950450596269616076224467042276921527039610854812064751815209190886297189801879492916051737212566608463403618159993467465160801186750592082346179847362304082466551896328535194371947502844283913754026347179157673934769336458509551579374360181286372648611899396247444991882903647400872351510937396482938092814429078665314183529844226127683893624253338553567380952805281747083136170547085985335764550668631864847968756551762772985936085108864188167792560044403948069427672448074115594909940345126633745313267083025765394520889360137387595972841988586471559358493977329702363194696914234344357197723803677494163936165931444621463229802750705005784859123755710621769273529166310468811170890168819695206501568967060382316825669965220934451238388335107182723725046336248592501298045861733276341952554485938727671423038195422537343382960537848053372020661403886433273402673412477603110589803934228946668550510951669103224946363125840304866514824260209051086539164395474980423420696418470509415180463393651671180679937086513409418843355620602811947850370554986140380707412950331229039140875529750849793828588923818928350137248209003342237815987399326907613522718719297245745125160479351561329799879496065599659661490159153727561858177598571241968469658529429625430981945336414646519859332127471289652917365761785673100835140875093420708023527759657077959878392311647272354226448239407129758974785192286969467308773092030863392455542522258507515864531375300001213494774641123279011645552008143336657773052700713384424644806029636025163972196431418180781983733138746041311849477189809099860831987873550646468367767325548634316758446083862869274662741431325261668930972799439355102663031358462993490266031246981631571712162372741517907637382558268530866439138921376340463782320030251452502948240358138077845273072633507547468487374046073544473252326542491843524034250038630152617540014872782920224212992888073287263229623831989124688920409974152217689759696327813696819007162504177074608875167482285438415894902503008113611006716664253427801456355435343295170753200934109956677387497944690618245745388236150860234841539582066359773939925516261416471646107703002479334450204971974698766725131671650095737393604788941852881089322645908088057670036324252837423372374209116498514707552704389394389990576909538469489592705627468058357769986343621449138012949759521360370948476209884877779922559568848783762151696280768767159207614723967375397835544849681178086364437596190875421662458484682064750964264932145675517943541407629530042761460777161827199676696990417409799486869402152129788203598003772178445198071184615659295755275872887352289766005790144116336055397082345440923408581720261938422552415747907464054975138185291912599595938638120616355608846432638574982027473936368261216940196532053879157025175121984031310139628875582021971843752666081795287714335587698975980795654839067593211821336450728458566552833850415122778824854202477888752530502142590103300521802110471244499418493802709006261581426935373819330006813400849864259594991656902433647731774504799470379733981352240495526744789675199609724512190412276374771861509338588538249945589061141869979018615075618130464454857773183186977595771094567958515490830318524308476972212863598727836858054413525329450066473563149829676595636242233515061219445166570556052900975757751694131187876238926989500445483056646247765135798917269245468410094644898611467117493005711569797053796201371464602125158685684938018920894338421053684888872836161554027646635411498566444719071664294080045577687514762768869921487239045453852984477250923848012964201197937606286718393402950013096351244209503600887391825850860852233227645952915057261948250964724201845884011696434676248495975893862631331308792878883393162026861918784176574777795686526908199581337194172497319540394719582659022462586070580134159787938165873142297201340356190470808583752851715149843995928654259484133923508824585679204475357919185026369390059176603791326141526380477883127287160297509809336636017298545359236046943575829425620297804763936728581889487664992125319884996597054687744157529799617021732855850552768602097145069588529975854659159799433476626506125908571383997207682175395960230585000673253798158639407218911001523980157818921689610383209690226859801572835945804672648812919695155584633810998379261309029858521675360389854062490780160774037201438273747807071681861961670250383696288985274283035000574591449307864607184346893900218353309365535691906233424602393659682518920821543189257601553143907821359435983739816480212921002186117990258841633465854692598560779902063454072767066301585500644085281423544149213116328807049808501438158434412022527204217531721408698971561406983613738669012631665486984039580510042081294451381069465449286185478297824749067329174194466972016285908413735639441840316594455999534793745425323714370198392538352881003351916322666830816818713541608357546649465167952388683259687717887855806482147775464429445281492838549263255769621013132214358625847227626608927326728565227959146748005068491144430526775056049777049119891943315936092622231511066922293805893727266991683825437635099621895291560310175257421367333095037778089859986500195726001617496237729907547243479632694547346887087109778028508406821941575002969064846468381774855223918204312565108640264968526389584748329728856385507069752106917535194322934709127998077665963836920612336639815243024753533821427782623262577839834794037354942849281370370904983771908623506957613154960133519716251163335140002239496837325680556236170409878597804479456179364759388356201508597578468868816825065742545916645752329726354588071955456133953000300443229430391481221432285406442191741828030126032987754217769952580271901861810141161403790471654471993699390929479190352635679102395446451047445379226478615568261664545412024534791023058746693317348586200124587486683594321357094485627629473506792087622525038938292975608811075910989700836380592259946060182717605533340317238183184876892325897420584741515601823092871235225317801351711118680146063890526496089212381513684681338319042744807663162572383724292334074903320727458989582820885674916500979966835902751238362899604672382753103441590409126951038479545663782774993502048046194886749352037444642832689740028583027264872101122750714467087847035666378562961986079907222225779635443131405856380753683264812185376976957270622014822355316168890200048943812972943324228301695221910315242324837570188972242194613811593455791757841648398205217860860751816450143455100029102599036348411883195752101304286780687319375492874490236094830367771726325528926499189141095923145319762769462579990468472153484005137332442845718829832593899800961590243152554460735438941679239184597693346401890619569683217886618235805551153729943660677752845097908154301225608441876771887794544456301184381560386688861228124961826855960260462205108398201867705215300416333051074015932019901002398950799142720165509530525691420678696215617461535385427978822402213636087603920309862010870370633527132391408307464808277414496139208402382030990336098203074436190338224399923535549300577541362221003821192094375039869359310889671869775402066539816160424354719787446677204314403272619272624752443230898229424406514404395682443932075419914168191949029039080709514459698761823407745538190203663323963107772404841843394284015778200008745923035399952786433507282447640871662686978282914375688888645462668176395595515195695994015462785016339326490139820622969482163006087543115759401441147517606870802371641205801419581722434025643394215433940839709694026540993328977422960915921609950797249731282664707374652510197682767568315184990545175276150977353365354831321094855081933938161594340133446976991281935474170027936775802209202945572184822510431750138033803227516583438325577808090608526709841819484993077708402194830178182323469465595345889138842361832286473168665696995635843681847997628655375461124742805397501600215551530592366857932164059472961044456821871825934503092485723267266066953961133262752103792241976905704610436959018987391998602624574094376376314529713918255193363355406772771257997308561649724641738349028792641923719878419595079528173821323389282937359781418377007241455839784966788920020478146266903822111723682474597440053741542662947129748188507681663099232217673802946480213281031217518574576612399739408389684555546424005257794451508472722635436509862259095402352573579908761305031430947265143029957256792750023183032459430189220226826605458990211161267428034417792655316446101571776464349411048725437943762833801386975573367039555441848950926939018466986925173748621202719939464542349420700571164581657837327097518632334039042628972282520029241314991623856356454453773155356490454618444542983994671923877799873037812422704311774273045162675590801814421059287049447226413263194368624760875226839930187311649948839562788065220231086727512861890381574144135188660780054654682996858187696032475717758431435713816611837199150093061127837607016760088604994647888111116613100859828737687669106548677201040751927051702496558874780230238116715721444128425438663202962164886284608042168749026991173623174629829619837002350697022034794914313189360434555117182592156785951812713735463638430183634355642149485047997117685717566490233244623398661459420978755513769121583186805632908416243107446924559375899254741105574325320799163749219332645014453112593047036107541250936902234601528710727454251282013162508150285059039370069656354946567393904709116288212616259972058403264534392920035453049644624043749542360428949118678461848565176101332472506190351898147267590899747497744714741819203732258025475530920833026967779114009421807219831789059297835426775281212906943382905362225035939470944738850970852543823840902075305825230240046754853956990334038844646241979657553633840044884848839808992840065066622512715862462665360266421231660631143214119928821510096334416935892340154206401997895238060675051608617409985267486468014447870172056269307731029915934424396882151806583981389010994216346945362972505659773606025096402229379110448744143269931282352105962025105573022553434086748148222127895106115104586576100172965929023338339578045498021197735155433521851296898094342421389404590778038972226754788335667855202007092726620362107864488722427833364948873164156659170524134503925346579782016068946248420778821167554242177592689318862329754735575579009093848561746463550776119061456424154729162218987293821034724636810009194797611792111231300391341934567722205967336957749212809521444871051867249646316490550476187813889033246290074194805107467350093493590136611777936808752394294222198380533788916110268745444252722214817583706559856827730761814453646417794138849147496860710260128000783140522284042046308821978059472262583907456666375683640838213416986442236989189557836266277772129907831897395632981188579486066372856186178229969009609996779750992986302788920846350168941258447287546146174216869210634730376443937528908352993564563905502835411879671273863324930310006537697779110324263478836242762780297165153020453615127870253221394246516935062947285684010105756524133346428881321458115774657367056702781735460363296223809766876619805340274354137696032581926908391464888607074655070943101094843934342270669491344358511954261546084862577403639247175037874520229403225816100481846806619062606048031703844343482446325666566868206945339312638040317514613413203411811104320737696603594308914202355214347141558374663012519605080901190745946779813711411951087420950355573222509404328412515390747706082611880243557445687457656259520962973260605947476562158125787359557504413646519030816300620677306187595244201927207327275990795746600739521940414116528032421849909815390898942355350234917520196160001945140363002250542045638391273062422890662569522950410408998589732378686141264630293076254743941119600056460181468739090946043922333182831589295254889249426263631478925324767256252934219527383175726657632319802081123938854860821751013370083443927421622823387341283345282798072181860685577854796793208857585043622252291040027993836073520799996336628433075037415978376729986758961274645715183866668436501161927964051965250333084543394842306017140469156446584816434718153528057131556637670205164112957214148543613637010118609897592442856611685371268063666935416616583932908844711918406913586739929671156097931687997946197351901211431908741032913845281341690851661328156259764301894476111657335910387897575368294640626997276236478415200859266915540801585415665254979418332521646640466550162398792917629198918994052701562203970487153743631719826842403871925322899325600723472230949157811560854962062019174644888247663383077535971465247574079677578615854916729943861434293401854072589277790473025378627861292899586897154632142496528590246475207662754976591085203236098513545027843333019779727081619205414471585142674811125192811639167686435573801061040045699099934008575446044456984187834580326377969045361984381103626881144794985101181804692849861702202488431740063858362108526238264659437773319167207735852288658530300765193516658968879577488350395043317180986074262153580115142677369340521874191717627935233090275761765633786335162143678670020752184572726356455755513667787292495547570069625822564119958974461451003535333520145070850913162625459566326373864318558251546409538767399554523602165826059287254751158612798460181069701242045269068608527445057287917902595962168565347281352025443616485183229531352214830110353568850159200388391427932204641638052669151294769767957215315049943617059843365590444317825467753792880845350595302929351078247049180529501772964896036288210137677954229521687560650207222368496527181147036384712669360679139066438853751217868987985223833112906246290807117126886366477462824403508833705692164416542897729935642759840291614579371549024368573591962878695091446029530576886401603455494149490510757347615953138415752232121663801558343022184815880880581927285727323090950884952033215449910659884002495676457449969382965525700854671074370622085891425230274793955919346507507414684809989924999645526504701208526487429784703963065275119638494978074301232097926343190566053918655679526221315944156166927882801282784127337412549223426466770558534608790654774206380471137968808841948534288224019215463740987161458229341504893841134818857076614571654367296218488236126063667218509550054255309911210189457801804897043195457071816581100842799406293120192701071679630877573777345900124872436789074566924832420927727725341704108318865721873450052798386661152898485996464293115250157764094028701630498890442836135572343486672665264332277186874347568709218618736000587749273042485242046729109558818537885861040932480478776469049957583241928483910502050958365543864379216497104598982816092395967824926224943554142976117504141847859914445906423974605065088497100181522142791567259454321251061550699622918118086645069027208906486088753114105681800787989826599508692286033345952086412026013822385043094801611486345062883451551850454349980334869322605838115393748462911220235357273587909848493171715197592141990586345660829881866718408537616656957449012971637653033334288533232147091725110363668602738458874772540034585694449728245745265436254946830015469796177775255922225302703365766927128952322354902120645687342021304535763990136024703364002193542977952256513122088852358163633558799411116623311769745106278515746631795208690436747877615923981390207590610861486879624198240460257964092948625046153309986856827923119631155519152314745648030205862592105100997605840946115411626066197535231552835610222907788278529989603573983579154886486440622337360609310079721723042621768385700723130941679092129276535939964124987108014760306730264095907901554651364742417059938095549471430293778257668700135087720503850702662621797322139790506654494935216705326383177633075864710637665988944116536608274992365584077612553067731544243226120466062429949305740752726550596328783907171762963653876245988717774259358181364165938124773962542872773385912848345939866467972089446622658812502212878378624453811310007209591003001324352918876330865409165980531037699466771970103765003769495588833999332912484964913884364057743629304637215402905170851570662277529509353751811841297812463940982899828403253040338070702345478739784456413386392678501709141744965214163204161871597791005539879327434791609684405233401860670601021442595605173645659369809790102016878179614496146080832298172352672343999862608369934908078360967122671862591570707798876059376765660046116255391015116571707505608649139618651090310243774830249479541916545021223507360196716883806297561266538794453733643237147611776889598906212572106639390448570751397989698169518390362405016790582080918254901025377627039615619765059683274340268481936149723704512677475914966228422320721315957116385764548436872618051986844761415156316693057008861220086953696360010823681452983187369846060628271587194821344140036951172835425100097110258777497488495499011038352906218589767326288892003678498223014745621858717349581778308750191102376847887347324005819761341845929047843433040665280582457953476595599030595729061578299842917539185514715107783121647892368934301167042731272029153925149525709285837828224553821710146886020821331383528657119283551276854967345690597598397038367262215870226971046845692411630501491989093349823886581936283467725212514106600818815388028516206696084168234311816335517993085446498141326699951397101560172417316422577593142830323652357067215574433043426663158322565314141779404212566773103762860634396905992373525842113343490184013048590484961930603462887119039349733380085839855554106767006306978243398757966555807526964494460375206253781704912756342307072905904574952507934433496689836075357165675332768759075053347652894334736289306366791691616658917801848976027378611547851854462389683952963892196116284815205112991744709626271220652395150570062244626604339861907647814796632632323100789829297966368922230074048766464809901011114702430316464903976700134428329570710882641343791850355780127693106408686509611876510279655993676953497453048520656567927126053999228575487532301635832292268140875778497398013623967825358840804186821052963463934238928454258845991176230961839269759071929682437884363554839084708298366301106127181618348622334615824698694070529554682750155527064899607353999547354079682165297796895723850673966683115564817155224143736612816123176962532767762286675336344888664993892448542033711301416374114134372695926104780964391858216660905720325225110062804899217806670890743065054811478705822924822937181750891895167292382480577196207144174514039778864227298908638381810223332159169957692545645592795903025010921973895865142701902872625480681602076523523947237678574890423173256136522834961316907711604232970685941793744574247213945224320880417082884953778901545828334395081017671618432198098751036818578440366566229510708588856453620684255649008864842905367742141331879778479998792391289432671898637573627199436918574454226521535016712693302788314380718459120374636780428085670139466047438931300283474972107571977316831145421154555425467873578297732819083167136066058288029460539419593767590260615240795352161535460801117723802221818368205355594265731258728791222254131411384790231803529336923603777238296049440818415700388589027054060548301980169349292572840066211032641885263773802206576999417241498991675478804420709488134899885159684267860807546689776778594348010671207498693555917198491874234755870055115132201757837499477447503815959293539283084518048835660458457051085668684971644451347357912501026592136021600327781755975340166929148097746168624897043675015726677165758233223187399353608126837739758412877747673966309388968104125120281148716866315630369751708796256118629774926755121323234119149218710725040820272639276721233308534347166524808120073897871473152193088154567881902580468360935522274768333868909316599482497725819274677324652920660422128708943890661527241082441290935851872743017953845760744071975913896152622041506165493736433413517611959394218347328326214090621475464766920170254787416607808066522353349774426007911072613976576799043626621577865003999560406378543117787058634756739802324663967723390241578531438642676156373224976766796343726493898707086625792319394133689583639911779526214975809575693613374141534514263607056873730654175612148092597420807981055073887750558995831590703619010351878580937180394317122715195886995562531928196679090717698969950293663902807977591217564968327051853517637576085492431563328945958623752661777889125982369917002120848569969962974335048615832624698374847903856520367109520401306917446466485685430751782827749214899726147627133556755426070290214007136524380278154904884391924761842266469528042330939327186293522368047778708902411978450072954366916843956264575092838291488363383491023862830310918609492309222001195166048376210044995254277767483459139032052350528232440889843887537819681309434445473597179803643130509636985535171396182216113476218051220078210805119095897028594873818319952118232797128806756528869892438175160498757358402856267090666940817307499669718350385553847239972627135930271809067712899952631363248125203664991862700640942541173785510944690445224295472613119080333496854380508919506637594680002411221812109887639163469497201516712250127058277199901352069679563824454724129703407455179212237292042372096123560469431823741414113411821373120405441879647928775971589794357121412350902377140670361535307109264005335633403883520129466530227006495307171015391757917283848463749686999152311491740464784289867857838963591340103169002673040452478619639690841120924482999476932419562423618498505851706083462458524459370051318218479390140719928205077687290251485408066579790744037745307202649625042185349705965834560620277491936845265195269115251885159653253112901473083866796704035799657866255688840441794611029776626744901710288013593309263868131392337277784835972684426641540731312235673127344295265419306767944327450620396225624465246354424824972527476928120316223586269071285149945467595261115398571453603212105242158734262961534581346761726044042419194591370409083083816283687022908857671244962068942756823166358427342246812879293590602924494589933223574762608374758521312492412319117698009490063031790537517737449673614522003544783364375124626299499421714687458807920666273700942346599549846470349237032761070659297616336513284438332879598150926612762828136789180143589475809924073976676316254470022550007760219866139611398967204086559322072436744097173943504947940261503965940104591482446300327856356293491126276155479607154916319956049408352207627623716068546647335365183974277853468480355233486195193671807748044036514690193884507573689888591512766138604628558851426043122179305983457575206057703056019220242989065202131486765037207030308976672506847612135660841851557893759428353776105879859705406351999792724145393076097260990221438219684030252632769487771636103705991200167762012401218953973553026795622717503460912393867598812992337451153638078039904727054106468385424194121986306881265436378855419588493353228007393809541464265241237163731733240576390156136177775105247657176487237537983418691925259253290142775368125290775261318274618974460556909087933024524615294631494815293923351599851009541291838994867533521219450281362105970465769761774558524600124213534513162497101627212628314332238533219962295151220784244680740823902402003087287688154143430656799677313875585170995190331887241301354450915779051207302192683872786130915743164054028105531937506768958123822653502453508420299460969422860155834608682720745997231183669018947399429561129658341386979276092922576215121183154677426535716976465473622732906721348021587961726212869574867910448187543303631268295849872345849711623939719770792263680948927317906722517703926612316457906216811152258689036401423756316900646928859910333039590473150077182202235746822579337221092007801241066336289129841021971178869525130630609149499313715834089210803282848610014555185082240280803977545485677063127750253079254087389088814577192956433229434093757825523920680915244589506037289696726195197392969173800334898645945057396463400365943198119245969053550365402665107375542675098411727199884620264859640142909530258903639507736864636027944280328107479610972587907583950377099845343454109108872690475462330400985299654320604764595663649982227842032843450998288645319468261164073317229581958496658243513280930003748579833789204081560892431980504689632554707820300843862357107557637543101184271393577910426016482321123171368456513136759457245173101830875061775957217875395323384133766407776667584741845036147628096343134692087363211611943921662373812412775630531968309147996426193822410680074970932734105589888706727256008124644141948761111558811660615500780009248533480332559845350820541968727603012939331895337468615757429518023720653940642058758806511310206585792127943489378754142906118174773742115839812726208625790452516200987079770194897392790098236214094663576523845406502061472439008112513125548201939669514961619510400892133834449183386257378420726389135591037476922110907586094755609072797751672512985132801241193312078410925105780937695312679572764695468501899337626338692324249575325612847567487737485091213076953034369577899916754386463641919483294689616116692966649608145524463851330319462922048677557474104185508800634622757074993129221243603648907047014213783937227220951537371757621432414384540758322300645825114816877930223477416293146561330726863943164384376727952166971475610616748255114306983959040880385771993138967593341638174242080303887113187643036045877833402739149380493672277305711653111937745661643136865756939208389559118073711587881590105259843959400742048110248394333774167483904656980025637952988484948260235190520927242775440768462780553887743889070401833490885933296231226439090435200496142664371488351708758963464112245169872904010971385224249734980655850075739112345733416762945987026409439514794267609648523034672723795190301101289899080645098340925535491881265432186682338761382529218759102490725543051615839474441060296981221146226016473399359647103105968443491364876531386788622462893970175850148121773526617143065136333571199317374744920288229568025079257106997250733258971104700153729918982698571763947757800650416555568935204134990502221429145746788621905504194515969049758061204260947499081817743551567238690507470509603481292206390272231519589584586138308246171118584579419926735391277305179983104302869625398089424275856674073327724439917533498353796951708445090656623119397911889868253371301454794674557556275445032458002235025076772954961819995696694441258190946063442517682500153509802496727795739745995503829109526757678133725130989038178045346982780335507544282612011092004188423414525806022058446184801951994399496976447829361479527756082324518491056163481994236306693429112014549846532861586921508493627124072412281665110718275310039135673480094922067317093825439058015347990386258537231668872946477209020798052388595654202729037614637863833420239141058621034237891412199258196598449106921383817558217510131489572266295821544314566199657466814335558907327273410774359360147458170955736271433728503924197308241185143528163304617844355821339409978743880584684791500164894992713664142436087202906052737524630957175022191877245324507976330114715448930294475996606184620143393309831450366445445597586702511672898824830814488418817679329660779448950572504517686084110970364519907303712795928761432588247339246094889310973448296243867056400669744797678348595530384856939815549397336019579520894769207474294805116315060979116146956008880401479571446448290197343164408527967229418201913892530741786358390220182518395663525097853632208528333292110168599433739475327103189383326308897548622066734473038281938486947498788069554317388704259590667486475595686991258791012549389683846961879601135316021600015819676165329005417375067090040676132246677128483950653915571019841480696915569694142041345039083382329371636913416044881981904461484227043625912735322362336501995060528430025193210165787566247963790746122823498956782528772209172060151438315034152030337993709682980539240635323832233851630700328765162383540104278628136172857504198059812933044169908651083712124927356910816872450863647237807445520750661662203835729533536246347709564530818028501993474617279793881133110688898713057445107241255759548577473894883607418258632770268462583063366541773428357724998486749808521020855721188815988165310155748613088782780980932745044029016214514582078969349617540270011987540999913232355103872533944546775542666933156370123201384840149737157725190048020694736749070474839169885905659881859792548066521684717417469910122873047909815587343091147364931864414778405335756342050457536675177856361004833172290657806361600052522382469243657577322917979621461184292033468342944393058001908782918962436501436417788832813612998829508127472715905563862085099847232575032369780973010935522721583137329770197558924964996346713081325566511512516181505259078265793885680986578040304413157153833272331697729029973228740691546549179576384730298743858366063047973060175824802208380115178126459169839288457123711405975164357194345077181782598736398249665593849631786524058116199759723346914314291018645728786514893923156264722104312053028741986176083052693185390817097194173100041205588332143576777064357541357890992736805943356266483044537637297550331737934509563842114194134180188986586426577223938601917988967071268046111859622435127492195185674132505055100891680699449716286601803720394186656005721825000233316765676987274105834651565677719337179833336911028851638030676803651564014726146433887620196518098350005839510886895187827907808924445968297901348486408561690138757611989748379581991267569121401042717422623731118795728545477802640353598322819496721677538879175700449931545180110244011832180989901828739419223570880227079355803163424433657820334198646071721321379783596406872053951568168937199803418958806501123143137608239345231666646256400770656245511648267120825338703384577023916281060205183711235645309324396597431671103816150389702632713274219422209324002000443302751685544787828161512838838037100225277448034196522208858366832491395242779022253648633967414778771051171075808324869020987868377584345994224911005509131094968091543394088540375090221833732197076938872069119853635545971951923364207722521115269234458072686789290737199214224314172671895813737970649239502075859589896833352564734025229818863167587374190773261531941554873513224031057025090646130762622527891061235468313747212349640399288229632095091084098089056750499375432556003589650119730469276074224132396997805172045841366413094330977704898370464132596192889798889323551682556769888660786879020139383239052926686744778954595020153244930060470582333818843451633145493431515324576442889526557150289439092157757660529911086206082556782350339832473302101275655295800512437928675663110333428357639858372223961144301729352695766338409002455927549643157116302181056858959787201720830812947521579926667596111456373586540763422383675787470139244643455706355471793505308068204851279737938497267532009767118247049713737478662209470866495562367087289954022559318151876546745488012822097428557292754240957249005678143337370120032211368790420051116606215273348271063026863839759369194131798707433410173116194063034062579108786303914885627177970858637512296385805428832115486196136227140408448982033028931075654778392804404521201861889811145370675377380753214615937267626897490994400006809224006292435472144288963368989434982756123515121060901827938336508213720161122705258304299082573661675491440303032591867150556949585385284215182440095311602086581942004006494578782502358329748183227078334555344015894876968158516878263939565909032974002180501616339526858800273661596129646954483038527202888454004389478112245759270198404963522018618145777952861430420253567304088559927207559702847232788150144116421110039058357072205186208742402635903697978454322662187881807137248763194470550081484291652197815915091283960122323662562656720519894135165903736664291789183613744497448350300128846932051867019031600218460473127274425261918986583767460063932336316536657974370832359980207291213967248244621939597846576092969882527658528614331599476980744166144338560671838995275681583906131803258132289011511116395675071747889237114877179484631483537696702982592681852085542731685396952590982483568253535897379312186177088808062317932158630880367288781929629963459702383152041496502464855558988563989963687465102831147203063840517949180707737011030078829136069689298201328917984718936455544071939567107022588320000598650444185727853623656458465694862141353348658882450626151264717498881116051376511912840933021749504564889618683161495026017091771524762449485919561976650294148499962817470618984621594846857749598058087201729491190159356591085119585187216561628249201499327818432528868612638413099581465055128153078916563331808968206548404113321763328510921829656214980666922004513869327286660191488377644915504339350381829152403446437023177054923350025464359338509260059495590186140912122905189347289874797647887436696507187033344123007640449238004389036373240483371844344583134646904464029020479651700097674463148153994790693953244601989432607264896351408909179007484254871360223352265804873012124160277036158145407389245150136978760540096414819841198178509908773452433679115635168581851622818967290545056328362937478258298362156065050401030128682022993940307322945811679123302294423152624690470519251168751833480050211927239092794012405414301341861385112886364884041897759068911790799740648378214382868303110008095286038117825090721376610850460821403958873617158552631016842343922031649904700809098124605266315660589597729091518851648001323329445671496800564461801890083321769464951717570007678273091571225482529462825367363616248525507652415902059945373254018866390288856058318197582626076200842214986799775270274197794055462761366723656145743119509399219971272992047957618045547610288010884000911427324241973136697004023462009923114133911507177329493192037950099572943015998592446225516545305277764865183943945906354753748393111889410345365414325549736576777926088897813593654926226974620192912106410542366718060846422241634911614203206163258449302305367346912267086195135530463893108899535319684464502693453144008147456707663098858625972539395241389812244413736412323682068380403629872016809409247206586347695729012876954537150439999362900843000080570249188767133969517264232730053842012183065641758270909560284091766533472473590388197841194855747328738190385294909606252530538198096987909134363020702204596983687686870227188638502013380771314474630180469328084280551961330223250968075948501462710490304460852305265713403790234939153667957697525509891068693669917550211329020738758637188396164008447970614799255986863383449889527276756993511378231692750760081800402680534320471987869465922840145787967461224170316604524154396007231729591719227823717337871658382211959540494425221033444946999092023733810776936680720322122323451115134211362328227121192019678798164733229356699387257950332021394962089625676635671069886530540072002579037703229045635915708513601256025219757372287132741538825886784162881221117196378718661807381742090995147320792118111409889074623375577363977199024087189827000994578726418905811428744597033982242584929160232435845506332928827700531023034333210506742802181397767507316676105285378056853357599811878754809889822941201068259497968095050017771802465443879920528406998212097162594516059368513639339372610880364685086957518832497186055671295009884726568320230655263358227511910598133419089452049165502337041007379996265223809104325603850966541403372781168202663010485988685238163225102737594672802487539594166491317290516375013360015828419459914048401698039528963710580657143988725331795411163375463951258380000992559154298058207297367247919520167954672222614601356266243423953146330787898201905033645373651040591171810572172880971482708145362508920907760622101803030581870805471628132127717775502019503233406027283310238154950230260970552429989709749663103967471463379202114139566117640487352433184352360507548389999831816962322701567645777874195226497446966440607067009091097933535628089521361146877802982948519354519834218470063575628343142098928799594783700662437293950626901304444365458829802439026508598338498624770137457942275467027222799553403096799090482910813795740782437702193141991495471843851471427826517726626799297627537902770720280506725389684720079410948544379236172507608670919894260003675793069323591537730545805206589333893640632302671685257203206171847919443673652729746918057201632756198231439558724341881981545492296754938198110804142982409235644155310242570463567686744464901542716066168736637841802145942064439246062385062997498320421284044306511959249704349937024627000216583299571887354354056267140102465572040142548881749761690903626145390213714470630371719623555031150783662725029236999479696043134872481908870591363932429024254543363671900420875619197378804364547304483285199930895935951627462714721466873377143610008685289761721426281838451300669900718333151594620406882635362705374542151020242513197447348170490618729435869940705551589749828794286118594569592338790077817041008366508932396167432419422064672967632257248382590710662518163884040498832393215534078898042515880754303802698185077356038446002143166267929449243161969101564438338857542120488783820825428695632245745941899340766774650579707867747345989395319281404589725351350174160674750726991455733668897603414537612316437752864013520182075903795288377057460451695899234309645953243821550072368435292838088034578372937121382626853580239986569312655291633680355806440701719812494984864337796951784438724669879229629235085354110418858692526864664091146746440516071678651535706895581513689294993618484173572584521963196418365577316558906614708427173321017417532567786247199633703274711577451179045759497519277406275072013233605095330744441631900462325826286047465737933679155810369469266537195024491373286413794263846731153812112842452961721552638070256770413982655602592813550745280073771807092837894221200556454423983748283469006774655753736792775996937890656821328614221211883406564878457939481596361168235449777490907787782068326636921094253025741853759102455891112953618998106960733852408083596496035524242474413215135122332934912117056228451378589527187604462091529832006629776243656741893740802172831484824221742199837631688953245294198572792547683268405681019114772591577706245986243780121835368764331858266091005671619215619463317991297785663659494642222429736929468348523725684567215564934208087032890693185370073182018399979520551916443139540897307129571893033865970212025231619933884512162186609496607474837634613175516213113144337498417906138279969429856539445445696987111128537886919383367575700807034886921312737699083191724357424829385021181525863100444843469081260231425986461269619670943525491201529972509371039735862992506879677620528727381574016900235072136938649895073815261375518869626617626582554165749830030503756658854925417365695961797748165019805186595392736517953865182751940761339095847833933444988982132295117415676182074425159174913401181852071170313815764337629192093399057937181254041392458327084018752491089611874485961644274312677358029903008317332647611782989752351208085790835320739555608557188677713165981757943894487112994762003255423845740441909598821568099997321275065242001083335053702663767604574544221247909827606826461523425449697523788137676665226841768676833662079938569068261530877018481032247479323845991340309578540076148713563172679320917325301980298492545008250181268229204306125665936677705224385270224278396123880537905367077539398839275274888912526446946767579976711098808520754121184493359398133171597299291572138867456713596674422114914939924549449661858432275491187424069670231174195785674342667382356346476544565567133207576947750509149236542441735989641745433848342159931008242275543661591428516045196771590143032887176306101955419766606014506650533926954971483734483956655943961849914776876533015595375124563003623872468423540394560387361121941144804183371823017141339775488818228551556413375356751945353651228941422538603248467047077971810567833833536716322255988719292785481318658051555368296672213119985566768926114382319219961954856755707881331910701642257084534352519413615237515864766315637934726819524624280233445938534610195166696020516531556289714798318043924161623408672988294454318003314492052102185992862879909376405809761259564819331266725198009166694971311740638291849056673217152213145513798371787484481182987133378487015866043952458114255934999452606535634747451148267815427935956019908385157446519104816730478494198667112430239541218152553174679955899772407300323369457905287896202382324267272041564822629320934771841751305991334563884882479455303573557746314414403675742444886339585364612591742703306509792265958674952170970329276439557756710888525085649797812233015413338524426395971545249753933825415297243682184741317098939270299885938536485407370119045270975939313069949872788157364729540845447361257272704425628345262091451885264539932027673284301041277621044715563189851484966637573009400241218110533846528059365769772486625193677098455532397008619366119063689289943776402759314596371584522450451113701690107322084778697996003780996415822317403060124722658150083665294290887947771201241617817012899989890607854276005050977560939727913387158431665398558499004304105178897325254307087996159911237125623906336610180822058960165215671558311261639210999332732717212799161279785460100738691632986567325208855067714576097308324957212627574830922824868434745429964353683192228072168514673402500509271068154036362023192956390238813258292100988259591094492034415681286996158391874330053908092442565072810257321450038917419923069150000742530561408650406431106743261448966397143058177071574894645281479119929462284979087516820519635896816076977724609634555519386242362210820366112366710320339140910540148553814363380218701298442866848451066878755585986737075664538102021174029393625651803245814036911543101801134922545781880476639410999709881457123132813964798447076227542566211547365536627338128130235249075630805721886832028586167394335497544460832080761193714939806011151581681147694760579559149367875064938464744643111265470859069049605661769553126261755563630048309464105163999850104631773911314477294878841232762898159617543512664682514318892957898281392203125260867196454847035954171352141158501795719777227979644029423924136416329935136484611388897871708052869334022737848053049837875601194722767662066626167380653957193869512232965856878876060598668027032532918179648211271016639567016763387326756587153384329267796048939872672892651412229547329584372398031944445894658284522029004411873170635343270709669318851605620645939537533623712149708677920925470724855614549557582357061771750066163810262898199455512788896926937115672107030809681599754695573014967239536735597893890476207348817466091252324198148132749887181209071924987469107589041200937026298394944761690264512646977890736471446059760073022778634171156635955113351174785374831947325802470103176119186090714063317485982471950118887932706228971837409519667770387288034134970369334282719983284632796100330879331826014860372916248761178642439559953438003633213245677372527532471549032591734991078531090770783137196870077138203196786470204774892412000484276319271495281582005242714221749726765617603715151462360235158081835686472396653006932977310705408169124974292481644842421302671986531666455781873979567142323599781655218131823679912154154764327003099710687282860913502811968422143888008104723701082140021726682834658918369343772076659953316564675039325635237913412998869763292744723338774239856636075658740788179946362367026017173089268261033018293145563659938027674870372740574941631185936330807217411790729314214080934262340558422175111025383351221488571014872278389899696622549468302280114076404706154257685127700810871787084431086806777945586565712054805341831940011459632389687389596177820873031366378835675619049478761531549969971790720959133486864661463264090901125000447204940243245096522344348323235460217220688901210935734752489072716582729140660924954526989464687136726432487196457953067700519069339130804851246912218703135987254437596617069546564069013711961220123265382799620951253883918606901531181248382643627295551895712991787903846242816708786407138931016415893368133458622395373849976443992436156080085895197010994304711786594820828264655747569557210459120038280472428349780519664119525400341250093912833629341519440632555787192000713564252094049540003536554855077070979202286362632357281126476860325017679586249026690137453831689177380280464858409836705815648520146406049743755429630376662717615562431350065222428730905309686505788777398371785638554952237578817764008626983497537581474155227993495567946902280800514062285753294701571127291374474782002147696784958263364576032019948454674168096177905014031080535353497148528548391507509302885625522043810447096133250721284665966450655880316819597712990792414511078886183637176867649075030270375188555587427636295720342850847183791843374528893956530861048261506245949663541363221162904047882492457755821992303055346487745231512458508121695755173451844090779038367400970664854586080647213475069427701562807011562641104921496531445131982487107268830771028328658806286797740739212344357859293074833753706552480604663682521736119191798360891114416507676604854790274303728244875133763094567984852210776794269844743483388822603546946385843935870500248285747595770605170833567507114183639623604160396749789480095011284260334244786527934653658275303078521466992769416642676351433546494365474751067879043015895299421697396877876019236327354989890474715863564042285719206913046842858896431195479353348436795773413846243346464070327789792423043421422169605264371059587785930803057762618174848621744794611354347630460199243989126492223030799004233201252633297628122383573122820770623003435599310814224935815303265439797874268775120711955574756705394885552711564797575370195254220586255800666277286506476283157908443982052909675029050850330710356419940490222446295941695742814180542385017936108377654110025209091450740995971155721979043760809521005283908363918603218481199621720665333530744378486089680017425998038807681564087297737052664312709089381156194028664166587254377655744570994881843751740255996413943486819069982047443026887400819254520405699592280348396781815518797456118592684511806536863989627157708362832092951863930176219061355128987387802918783728212085376566227354448290105941927075493874790607513389470279138973138114133273903499346078334088462584594493281015783467759853820368123539894755335652691942484253910344176611248133843881205131834930405404619528860176640623014398385962097971427128567488636919180250340897548058548125995518195513208252412856918199920051133034155841667361157871017288533896502677345357551260064985446269908285799761532553211414545958369491293949847290237192409435487702000932973375004416676315660763992792706508487358420919717828149067366884686804109514458333958321666434251560092702646403627433979388622254548468014872637964059331650529442946765727813147760657901911569462283948594779868371051686038750748441498526296982689961311090330512530584592568179018062344155366010269534411606742604907141601996478309591518525300599168187135812221989044823612744289354731734383155784510526350061162233261701353946136815286924403342831358113868462206900887702219112562750340583343841994984539993265361498911518450049182246545165949783575832168933735565963086665777802861369195870021533557332577021346095186269318578890098194456789897756102870285198421203775531857351049930605278047213349328438879223542547213677822444909120437308851691208325649052117336926806825741654886677946773050003464380007662409864184612402565228963577530871523641991787670462137959195304381233469139515928333994954328237098145072419740278023000275294384417976892347820709392244441112888903583396897789325797804756244359996867239374265431724404727427611010611529509266524539241026210790025652884738100359771426217516314753932119981188342066064063772836644471736406942171714974589256176002117849013918269928281891309140386113340483756394661493450228556621926685014376232064842348583246354822257725899847542156528517287815448665502477912017501453756724098760123031204005831077667216392332933939447658734224673221040069312203602078276174306070976175793616902421265244825902015086783023356617954812793166610952070951201743139956734753901922497650847037924523846182063979314507744274983114362756563693562659388337205515622602673543242281528389449050897728133310172818503184306810921470410388013115429555583506370854710326026982858545339553031473013965957130759355407642856738383937776210721719620155834652146664153137485014267198878244610707730185125743507261851499827403480906754756280971099079746976529388856364418352426989012537740855625507047173516764792812260699204216557667225632795000218722200632801671469681233996125222163359868329386366146745350306043153311051746707782758080625842613110334683957681169791076634825764471688098027978219120640963686623727061272247648312950004949285005627942682912699744083238496962933714748295721164230708443081348222304410359518544325738411626590426832861364061542578130227251627898997437572003632709702221162289785255418780621787741188084451413381085384182238732736249116547475735270961883067739378332945252462967335488179446814534305694566484748320324543053329720726531937189656493960586693417758843086832486952285256718839432329329477982025284343104887073515077033662057706595115803677628559445996185311663379582806231043073750242042173424093803813307155968036646557746386080050732298765120974568578054803933646770377981548005556701136877155180007342476019069159632713806691045176069013726289191865042895432685056353516745814626385868949096077496810241726328112577587729396580100709436203445513155980499433107522457260773894974101427280680356387605975415221109068694490993435492202656824797152534251570172900360940806341076166769941013988519027174053938344893655961083310127632500418930954180383438871786847839926230202757033858745329868296087997025063171971507181367768627141197481014281118662505187889364807740554287267070718518400435033894859394806017776853701220255651993117841343390286869951708342121206764996578086243202064468780953866068548947251226016070651293019152418614120753658322561073073468162337693321539660518566986718641083056423186475286935305235437442090546567650418495969529990374977716420277427955928125915062629165569405291557193925316195395548963918068037709860447793620097091758138817862057533372207159715998096746308850130033590142669933729193906271551453166488772274228672763912562490633848378856320622565829773131407742261446800109024035564459690784947484763868251840585753163918001029336771345518986534789835006684320721765452795694757566393774523725426204439113166324631137036759489102780120371348379198083111619402177098553728201107841067494276684842821281255882411119916235942035228702072821669814780038915175219126988718615386745556701978053085297224614641870058706165388188934246707847140011681035598453492743764557276771023386794570128058067700494127136540730928996719984523853701705059422084941447968293308515588074060500088692975894278758285840779525392842834511131816651597847353196921676125722606232201318684866173779474679948849132214760055632050768641651060360774082393230262423032548565320491208057039054995064120683194162523177643708310587630490392018397251913494979257829061666263450156973458234056240421965055801934018352423046612538934826551259035191799238199179632345874545436869171859271397157278436864103063688589215800212785719437768575147184143564014233660552486551194455279402069038435266295575935752504828415626097584719196745252369183975280435551531441832682046479302680852385450356891748757488815566277868237759835809609074879714914691669412225229217536722761412756648207706378320906587048816864577815116312553628306400586980032124603336681824266243517367780425232873385425690450355807663407941094673183177487138892627343454839342124537670130327597509879050106440752173375079525272275064058045979480859001319029504590769251988969069086521750248366991560292259982517347485548072554046716743003070403289818488902275423641496920710961370312207344338256321548570530209870357790346176927704736167631936334876056978191565265536197564671700935781701760982266922675119776414518790466555231560591154682590430780498355557154561445663947645714576742913484610793024799276880958575560661765177338865387116634153949564143397542010944989173472659425537132397304770222025052128340689749588783899220736536719105446167867566639680348394391008775306702280438124642919223390443444662397529912025333416303296038009379983966421720918466744388362776077390329068391065196292597092223096829747074838767937364199298072274808271453985501086383069751955680958348359211183102344074188881781871079240026100097721583128623800901570975466934979752503934788503831034614021333263642520884378226861622413842534043443998949203122095061198725902386526269981841781399299715718124123664522300146170311886858398174469185351857872708702086037378552273113331387629883918432014250746532082155222513475089522446122846722646831956730380516666877861036816206417712902619189976491470753953966931396302026390431508404669068922685694791834382392800335773985471067826001114846838905195930787410119423079079573763517031273953115058581507767667562818598609664990186233681199944437081115419715378979446379109063951592106526503216230009668514928024186768796529843873935905741790212102813287548772595650705496764681305749593475097621374536702806160709302504439417665034101684101410790475776616105040323838355796547949976195082140616888351985351264644080771813749766328220077676210303555919198071460344688771928068066967966022685885409356138849789973720187959078532866481232754683524576121978520299318070844067981086189747798651487722126764559635787999675992898951691854597020701588391414509741043402716931024437006409723871488599952433228854325135763441774947647012295912748525288691625323101210921587924942431960739222631927654972382249849698062983386381282697854328329110027774209116308159898519110308217314769536224913746118644397878628115952691955289582254563323602176828772608724049949807394046708657966205812622095255188965829954437389936304272266551476949951237307417899866386288162643874022769881175420366613829733659314094850618848256552236560524578807413014367596607220920282822718391200998614701693011704440038031263948476560928846455408179851147987098674642128087019623523859252298870464859319104609669078276627234497538832337984683072251539132312992215112193421876052717624976142403103767530766762763569877991186337525517631192178765441920351628407144459540079318601104926324869304014748883297302813140528603482063892387720043598131492342564906961328546240966036139386656611646757413693080667026795102928031353769391804319415109329117340564843890710848107052656519102330669522914138248004805932528957007637430672865802564869816321804277277975228265327904352211523355742261284270216873214400152433924800989446461450872267220091566197084800731036548966931753432798280290337991538473385291394487929466915363897168323259726748197704537698642595106283855657138353768265258516383284960273954367564796751777599242045958085193619475199049933957904051740343397356400481035188214671401318034242837443740917643667262722191075989307557527058584068453903179738032509900288275097221067409639574366767569437147270918301361560693746999430909362267837884185373579339365835045011271640819362536045084896097171487974264787191578499685621217768789103596086501717439037752580754183555758034868184252004608347504624977998240389170743602775120541463387605498092899675816650590383566734813127813063209265747090850519709255463444328557229288135499253464014173860931901253972396403440657121418651018093156396872607678640280560879727179985712718853661655102867822586871952151331032764543474001459032886594484050308513188724520275797463802435901936571718829962023013161815387706792839591037995403787012470692418332084544023963355623270726446499765109843561215935668308778988467074030619040010729708644537301083811187801914382921531185131983276280830711426938083951631275788360912148978031800753374203826473602397267343573715216198721458750168583026491382764482442688906367302101733848171273595550844450601657355053012794379452729608572411233380339331149155667880412471304035172560599615056134155868279645320305210670546641527588359561054090606714281928887086162824211206698396282555632205534484102274166579737565366170524289050334415164169731559448855329015844310324376451705068342365897965154079616968365425857994624003019620077283557858938455532287598121596703818535943128230105855751809514677971209482827625828763364628631463040792029092752060812884714648930042675180848961171468382467611271683573799144612352387198756015800247909700361991981244548160001269876046294512499651361988276876084028474821842842940779597751993328685123307096472799026336717812362507932955846879314733506436448445995281389155091509152762020755835956792887465949613308188180422222373193341795510493408270029110184006720158783911573604770871125049570111465569070311160472328903891146949409468076620551223920151257821919096661344157653557598175633960600732516427846349622380018888191778680227364724863337881629483492509795750219392905485079489981837809952416709143312118550320077455474520612282640993351901541376206542923369681413051031387110871723730250504683019048354451078574999075516658969185963034813644585710179802365789754750422725400017671497683215542535955298580254845399575921658114879275964564748245817025170673976036417016999772154879885413146952145704310245169162746352509325454553253874206179937959235550321218207272771919412330713256683240683731389382710462473372585745502432415303546009141668017368682888248145643813423136185534662693943675840782395121004443974333056411460877617695314043338940504969770975291638508196392689218284528799486916830224462544901737581197363612177995443074076849098933243105443225475008009814327420644081357925757252784131507763795701269561222510511790953670363151818499485766685519730255122678841733739110741274577272939727207248764364555914224045063055204322452094143295613969441636539346829940994149508588165939693143821674692173285905960526388906154089440217218217546290915164722021370575838652876866438327812456125851975505890151273051500591317240045110652909905943169929665422590386905285308757826956342179772969799569433086303362971622035449619632480762046849117728508120561077538816275431271763302350946065159385990597505145952653490670602157173181049398904887401933649458392310751669971973997052949388514224258546582068159620469458180966184940866260519015033655349460930280894772946859203945634042827826906017035556093694784470960119593683548742187192301081526737861473871606920019375193285313054042344417755867840840039715818232159372247092018700404729904415194771695905359224759644369553157491200712327334037428811778354927859175125392360143452674493918662066281702392941919015045318074499915937899470627594393299051644163461310058542824341683427101412834818703018094654257476827420892281569922680581780046884351819095624306598657621300562189800628386217038073736701644043779954301594958048900725926956171434085332373776000266816482702103604514928258514700504985728747225184998303109088131707402739817295654011896760350586385360587200661119265714176026341258164375563679469215927233180045944634594371899972605722723843122725986404314223555949000228336513909179646380665057645716000505708052285160938208809540527862817120890265547645374971843737470022018660492611639459399153306730717310834168020057003716170065303462902249678757987666522206118263504559646044350913119095689767734028430287162391328799533648114212574297711412993485829887054169107190598856710162432642587152595173176532842266161535989090742320559347153834041065542799937562865043967951904897242849395198446149610695399935806207508760203053210107586523159520214842648343507647118059419518971177473784987549015669767324719502889489659521526400321789745115825210829676068232052091106532304874452374660705960858123128348622778200323631167922240242561584524410615254823679052286668452794966981019081962133013789641510718663190455890798581137190481166162149931569421959361656851803558561374968001650197764702166018832978809331771194181575125684030975903134421163530273835056741266227785659044716968040193428918403066224388662176856815969373544295279574753047209367108799178370149903959539682385440518366901867393644474696976356760750531152176969344157215148449390158481187000679729632326245941514710916410133483199629941884973615822646584159717033333642883076800898740160061555544413748137491415253269914065147899887864924167059577651757752058768864295791594289035365118916465049753967492617083627692362670741916401716925771447286964106659722400912786839652217033590227076408698669120507147919905159654202948501151826287907249596262090261286775405711619002584552397483530329572227960250712351743216359254373671402030168299024794329114190851166354421335635963041540614195865177634824740005462856416773289814968416152865929416127306975281213728843413881452324725941579770824173178061740901266888872252282126749169088865440990041713453608984656395967748483098257457267791056170449202675035714869887184746956407135933729709759405937051847391558182781218182390300760558413333143429248717063052569487285687047862093396175136830593015227161976762744126077331216202662898759214907497931123367025449102713149243498023639025174994116139250062117651072801892702206532125087087518894460511546693603119021492198796007563597847770982499029378469505822519392065895133664143603577675983426555697220169201640042044185259408899496488262586227034928785101605304549899434568431642355737473053203337698435351188915120606636796335946923805786092354371383754604869817452197679243905288142640774226628916260452245838059508927359610361144004291797851337856212400094814514914155265570925026758323871076334240751481351721073474845785688905965159013506440743510001541187344598131462375501755603307331441463308898054080799369635061832175670916242857470345923227408741463367461926820443886232800197489201360649366298845812860839213805182911371460407700986879468831786915188935551008058419266286904502560709488358714334221209044478441534769482714441970027832289362582844271518621126070624724974188597074769184991972017733151370254462699358070810440835812822151652526551571315879626110511473254790321516167593554151775470248821606680012732759467487428091101398619324964897619715138390192826739727975484994529475711669415539369966244865820293891572244884613478196611684837185827983796089588761167112768598260683220511000151451034857982185031228424433110223601374627815122614350692236753066071899092168543844925740188027316604853527174863652685634576436634725976236432661341328508343764294184436595510687370648444090745162524463908175586834690789106181680897777328629145038704071419468307370741040258021499212630346712561674375662301844403642756530222928065922230801192959426326306102863494582236444358274092972268174323939347350968612370604398101845931746713342318553936181157132635418884185636491057869605426651483286280147295490320222083945648726830975790562692932088544306772648013111226575814103448842309454856897834591438443769355514289541335916678965469671338378439238844664197606582991518505373150827476039269261429125375876050149829923660496250932052932400011302885156009697166804860508459470221310166236817409746120316650654713967161474727036834386936212991911578746594244194473701800326012365369541417578676114681629383357237813220392685872262533073879396787917163288020981823807351907056175588206015875070025685271272239665430305139339489860394689777578669163425404100432509742047753764720242745065487076314228323879158828888921952862047341695483086595180327805417710471188758813639439946612374749180089193404709394813047437507674852166770821182369533114638985884325463097256319805176764330274226953893794760269996323231551936067971992720269634106927803348294255545340724802292236614160266074570236781760222889414538198171057297293884416429726620448950738158631985327212935667250150750407295699652237734177427257902084839837170312498264460451352053796639135111357760441224103349745146309791836079958740869856044199262686106799394039357712427298500366892662735589021459079099917469763261330296958939164197059579322382886867450728025964266247801859078880181778374393384022976302835031095169067663784577097264204563930938905906492655442548044771917076894480210128992199243713097532116277168128480725788749086350534066787745047076919296048378463017680807958975070012261624469464752961802582353067983175688272879156694618693538250424810555082570816366037572182675808193650425723360854567592911011653499216858988348431440021544576091322405547889881120321704241383497730062820194030748124572743911466684663613317314485918030874847183492652696124945893441652751205918480199382807864086136542382634654323305441779744633026935610007100738924699781010708577670183214422188323785891007322532937973409316145908285991918741661899833302488278743406328222937206581619676074772261937720760256587975078989732540600982658278340350264704429404006093097117817283854940575717297089551323845727311015675885045078313795869836158694914602911418338356648531270619651265149672825075132749514129335919620653872926282546826664019462331851116671703193598585904129663137461927383665272257533728125442898088858976881806759193539737002349987209572922954080682069196723550032384164491860897069819652956643510570161253614219649199582712934133103834084335863201523159005322086598499936322092088459262111046800658582483155266473008789400866577892301091872399412876099319382907080680508151188112443638727213783144982749911646712066348796015297165696735306503852647916880391484353343304513951832301585970902175768126741882785063315689350019560478416835265640403493228586763787227720381003091387737171209214641757179489823136282826529434240517762500803865513040689164456016970877516964822267372112591077358399884117955314851859839359191296323493991409481146428435759614412077282182513862061136707847169159322031250635791294527808453611968514276625334615018608687456833643286499408045084422995646784605638661557473134412716694181532712368808841411369918358469592123903497711778424199259525532541657427152468267305231531901131636345032536405139347654882319384864194197401472695036550001159069632610724716591830472789892216544601832693222645846874876074752404348724372782352954959638061763722828446031109209244364215954347853870465108700033963269978299639815271495915434160083971479778739324060576397771633580921289705676623593865802047607098245058129193465295984986841202938502650377063922194373719979803523486504135958573680474316696851355131816723316165081979486359038385605876629852769302474324070289465280846679668327655242288771461989560639697585748678989165464323328007520588030989335051697205423043731461151960623419902721655698485476413404219053987785903586658804425450535681164515189334302074600811163181712622211877555032017540482613396471926230040889954388366036050722596486894276669711634779776826222658158465171174151287093215663947460067084835286269278843228587479441409042895776699407999242534015247735307756419937465223972401246547316366735954741462617192561810048561736961154807957992713993097017411165195710492276477016070620405821411840337082825326521731013269489523269355467554635108480315856898319846501547496208517772144201602755321799750333444677908819794640289917618446027916699170978888362384243345488956414023125390377329228844336871416543420724553143144245433398474577794813870605354344101390581725081538036092493959838389778994044273431833349993627132269156091331573544543832432833178962449512098071427427655913233119882254932786666716703268080160885904016613712383798319276857896050383412025303184250444634545717580412210402319948368755554045786709552405642452672570452632173805805859112945867213830169440000869124694087288928597142031859502195113106580008966450151975230169531550037262584465735594663769508711038254745017076590345447287589209013192779742167464817342050014370627701778125744335513074113525247170774477060050384297665595062494231275399026168049615525046380690304318182224107189544342384653383318796523436950396342043442960460132687364857121290640682938109269698376224059359292552315961596634239137835271538226711841784074957925849116250519823669428964394984583155699051656981257921751438579529316842357379353793337117727432493905707080018676423352778477414916634045850137856292371467180983083555439228801347740604467444006564415648493819917152707399031952068002869835130892854051189406868619348193804707429140275080464050260268552168495291582069130471226667558253169892180735226963174259583052924356430229368570828796756223517368893279858578023566956837311998573920887899586062657114322499754646177219367815233979741277478868761156060499122724343953582334683519046509008941077870715912747003375019891253563461210832506341771063764008878990430849489846954648890585809928322954783692080386367548363955783033970048675694386202921537207496444382264799307912895136526133876653188123951682271967232308242358091745234178754543815968372925462806490741983164975332465129445053130644073298752527408431135314192227156170771680422320658729305102277762990403056936847299255525629211658199139940120291047523882799011655333598053076852162405694577008854791439039028968298916523061978804388762950588997721502977354494189894946519795447873315631995769283921409158765133322258137763981981287543160154106120790250223086117929503614695548564024895908222862225409279543842755661115003611734887669992696246825906829270157609830270645247658746799916765441824725965867638139435921090861809375635334884853905685636078540758411922076456721327600965445567728894124081819516805229902830127835165887026850846925144839054746941993954621873243788625545413020890560098488324955691623368758604127555678389620740241038555900220650097477002413017956466308752646680091124980855286446108233167373202125447850067656809098464526176650193847576279288293637549130433404104970358079988990135907224512643118204092534088982071441535038172045631865902057668751690384076583099805631533496784492685692445040843838953431933072063445738436323985087812794587022606045103111411251113368542281646370229922710190585494366334235214996400583438551662588245384996074326646069991271568287167393795591126151051434761009202088026840462730530653869118259316932814439625631273302618752327655604525722264873170487426775123119149498160018959907507058192786829757492829158152491733310280595017702858638772795774026470505239623206258969776525191167139968113046960685458310880323561369831365362785532871537589498941701855836611289960906085986168211691273023931443877335937646239418391124154740165509457979633139389716958447446556900659715382772052648743253150011194247548163912239336628242356424595210112661829028155473070296408606058130063129574933904694597281158993231037656910328769403653941880840951666474275599585473233539054050806234591292407096065791876137759516254100282991080656090048250984284608119385039097565393638797876062909229492887934815556515916569298442159346530783135193010805591637434953127562808352091438341925832051898346793248672838838387875313421642358950657030723071617880205085194661535632674841052589405309257292210431320282850802127348752452527813725195634963907174040767230737218205916234367439320401209060526630306419018523305754873631823954871758054438595504747630640981184646560316655875312385547511348968564864313718717528591657013356522005792646920576592958417249547757328216690961547772152301833267942186526995557415895005261874553777252324943216290946020354856844067334159561377642331913034683651770299008944570406767696276706123983976379418443475011508807274400704406205090391199044695409030350988624857721714876648518111418901476923696188969713967960916453165066627268119044723105783291710900817862357459942301728680151730827931598844416310790604925779727109342378975222816002403232049489790321043922376377068593957436706667804563682726225944059863985823980136574560143647616153978467470690907792173304507767856020294413884175687370803827278174792075516370738446631389647721709781890128943801125312963411608661035731916543188013620164531676062912627059325536725029870589739707341925370504813313404032082537538124826996360568839598003184406034246691040059860382166606570445256350769458001537431040413042358734996322223381245862665205617747159026081210552425110381413408851705779437481033234525754494774921172457045016338434336123868861054855929430795591565670873691194683053085860984217921653475775984750724852361027668641326651793717762429323803087349820319792763890824496940954141866105324513767528606358876479832067837436171229478397815011587997995897004514850021832551447934121529623156259244831349977213082323124089545526946284986786781015890844750419589180067492321757644456833369735278249047438131358095173788861805086370906207836732309033045891447158674047264714469858979483945074302483980522938969141255000335244329693528585838371151837532240161225328442729453380792326916233059267338253094253140234758154083916312721884198417896519380143347096588156088808406532828992173641526537721126591839031961934681720905434671129081361262550833324962013450197504424290466904094591026988492755129149441491521510265294722150916225999361649463787466171430122799914168707913736888937761185980626985056718400551740289358673877684368321647809639281914670028046666873793137754501966068758757782978906696764158860151052906769421388645635064830510014320096150057600781273948158633842997777842257809138022401810435446125759450073137458174601092202690397674165222658432463394787205510914319210863352322210503940219870837943607955106081805650170950947451846587881704305843680207881214001943739209424349826114277668806852166792054769784343653721773186200401185658383001540867711793338700325118905395173597912981588736797636505728006468795554413223868797406113426306044933907476286513125425181565877050971359611842364546535485293050278260639020775842827151256199900033963705483156029651838880979305786544570492107710087590260367190485656301789470841643637036032778015446354302036646368556697017689629197674458203029807714167106443284417401560058410122375613888831818662678287988260326653368463981263257786731820330435550265100519177935238571165354027765780445418280436684193754521496887132875023472349964619865817543894392528656215594946611007996466232321175207538177256783668972665662470694706423026211188935269296443731784832553598327301102680601833115327580951646883803283985158223821347928735714855318112978128398364658737669317418632128310090431217411354211663803995092934988910736619764919860825462035174034940614831060727821901552343010230841492069877653491243942199986739770496264261630653874263758426631844818045397101782240161548581065575504216749099029757633179624911965763636335962514542916765235388442749328007734210744710716264503785653825509284401469957213697243656906122965429894965246521023386813209607779616877213621605102787661308925919592880552325547423682537366924254089468133276840819962213453298366172853220286891639733616792721257523806692108596817580619224181284171053759758362259056759798933932053825212775172802188340656097273818959002926947951176684788346502287371995037111127324849242913948389406844635749382171101936434408845475330619928478195671921265530479333100819073395552059288125283040786619666165451905481952935551303683727311700459380380500262023106662103665199667587461561019919049547829337383958096861753667547359795318886608866581862959715612064406162726523074726609930465385307419385021012958990853585528022620951129797931229417261803312323682883063650014681633613411187669999413206222839094298286292795439348261734395738961356402415638990908702235584904050308671546097656965636985729176704346461434523886199013514969845802108811788477538867492912553063947235020936310938219987424953940633709119674605943971311978523424209267729564273859408005750321950715204766950329181432203900754030267570461433241446752998552852600218884199977337970270424340813996983983017983965097684591079977378833781534672499595282563915237691509251099488964213030080557417621534321229827522396139655300210570834704987500675998823344341106523322601628323243747889429866088379906271565443115531775366335555011427460529985771968833777661765272370231594326174868035980239223173833226790568498421146329817558561635775593445621428524085165910153497305663643886311141144286107488840322255329720639926970640918819483970473721514689402666904804226267685466573876726528737451142528954320793633173230832753840946676601301080943148189041555158375134597700104836396704150118767088619392678324828993661901946675980256804957521305369866683891523372231513668349928876384058948947389861589260668316579034747069929267059599582288832673573225760081692441061680908612864149157403651056999743262815905087340164467197444463488564675576178777467820887352765958010358012335369373563192142176162311465882377857844238234900001162777037341090204094385528104665904270093740848042069223852129941689696014689038451577252023158334281610878242824362718345948093969405343322266012327210946988158056358572751075131385719522273394802553371829394469453835308635244988316512308700612151091212295748060020008391343709497391462844418240165127793637665008142715007014929569981917310518592536234765199652292038802020150244144782802046436856075967344321882348062693810332127902251177984735907039498620982684335802907783133939536559425561297671084373683262764950000679679916656324992602522050791114039593188767898548588325036160382274471892452657266986582062778228147726167713869377557557824519776562619753509658572148737828734647274982236799567435569475307275050489570328262687146021834332245380970859394108957254324130435162345410240484890608211306344612989782351126554949963738189688302265478818028885164412629947466757015478551772930964377090523429729042115113167608742576654655677322046287745509941893900442041696421494139937681872227421403799954292071232218620016228260632425799792883445062547817826312982735695319007682385173371965355003461139957822791922187489556655764830846590812126521867599185087444077111368318306582465882808768552646788090911280646087903110107097828167809326100305578563799285743716060506127839667423454629863903266804159566017674831541033852353623096268543821933155785846279791842498646436472266494865867970785288877470709494713909493923325427142136903952611755882329257950713093272502912447499838385251466499394456514339272414469285315309990007541412377690116669055836588342560088935760241907581716084491820441820354928263886417709805542726144013443066209654569827952068449564076615168036721665885262738738094529170707408041700851740601939104752665549789476164812263897760199688257394461876829577867854375561496057134273312344820174390860620332320860563435919361575856287728213239078311163407856701354119479904356518723861769325888202813885336747024805920004146358549003345745303104033741255632785726502353106890681620628032430569582965828810679601234931440096432233960497281797187365376379170305527322774997153753085830601787376971404046391834403711898488696991439361538722052226534823461309644458786424468638113617086560217349943583949415194864574523948772540169251262279341013435020662178536925529705342366745467751998298974142806212015895923684083714586886698187337069853683416279827391071907061324767390242633033821845923653843145215250050688502624717481156699269006682720930868357596062554364717478655109784627346883188326648265461409791910802223386820173304097652943226089476232752287212230961155903495621585933104028120887868652709434296362840082146630684384133389052789416289761987014168499181618064462271047080820683202930798193483035802885818970821179120589473810096816269704551451398349632056136887363237190764940003684219835814109951592240050288138154016153141601889067468005633550364917225852179704802347620394754189876085105104754569727712539433596956472662333815279118263075624070755347505009367236290096155047501919746600199767517481457999445575714629656479960718174730014136086940975441588925143169340376844325409583801685203964795630549656580543445605078434880306377742647578619170105071523198268498016886997518537395586378962400831855007914883576211954639698506131812371218110433775571871672083815785005300652837810494203803304502068576283258246880445598713203136652287180668053763189184106077990223356126397742993313286363142572103987751922961814965220275310419371497382714903321958448058063887328130382029544717678138363142520103270619551203228335975099275421838405789250518115053916586100856819236738865991886409582528823006007947273949545040692562937641702364157465981923902468681886967532098287241576202250491567398328803619677527039771188536064399403557411193685473493073911132900369131516891971824666997958792956158146942188847304016372178983636456201882861013481875869974553300033601567128106290028279886879999347947902478064009192060063184002572200711677141197157764599647781661742563786274791763647042821940779969117631190480181879834195254716068070746427123623216006848325073830259336186691505965435646989065110295665191242613715234975033882486776832540273939753926498172245813311014793635597676459294608193289649374800230170533022766347255525899094215144008190700614656787922351949493000657604958971440496427727555573862003497451142991149032127011758829037754098483692520831639803802602209221028280508913895617889101475742590600346765026165060415923881650439558913513434329871255766908810418589365671812168957884026334457475736763696749027782482183133103164350163284775596315012408037310353709512832361745004878575358534566060295543329149513589703601980074742369521236127550644756103976775621193125137654311492665119229231311875773718049018908780912243544114852380035696089577291924564069108472619266067669806338947163627532601550572082859747558339825452211811002606033718497417118573178287235203910859650677296884153320044667339800432498610473235409411803065719467623628663281074077636301648454136020531924126492845668115703981290344217791850857679298055411125920875484020751767692374084935990834324134604779312396514152404255170875692746792456281742957785827991979565150743256777641978371687299178696652687507834135578751068433942548000148428118973715743870876676104490314541034813416010448381495502903064098505736318619997205178780918668523851781691986791773839768449884606558213968206334787691895957553104106714066523395114579831681837452222043263786630606820162574863488837219506292505292818702519084124008782290201590997372770211749731563497238510904728260521704073783965391893227543268566179129943558495745439084474963592759012879109147260034464565462312106551260719769659886764803331142757374175509754910420432149934122465541783394838780498840156396725891312670610498083304726496961488099550253598535685258158271576512864912557563291281505721516588075096194760090004695341958584310917246926325927804170441144608823265607556209423804943097332372992779346997706962897877904653892227365298074551250379543209018098301996878150029649266157225329631352835145752657900798848168347016049585475202742549527302673714513718995917886787608713776440644040906113134227781275380191371712696008806829116825131854181238653879466509532566435319771087898135488248097483953083899125891532630103651295106550213440378968445701867941120568017135331315847699616968004073294209212125840444404366685296757712652521401082181182037091288539074168800764462077560673331412481964089764899454498920547364649661435649199860675577695262006604116840512908375557474923666679487366344106769684990382064212728834199930206874394956103515161952827060616719167689505654780700680397001590522173804028060611617283564749572291866588039563391347881485919625956225414821439227481721649287843806218714874161640962252881617629444396755179981129272649637050360610432504252087316257161012561839524631278229996667655760800760779212507922990723247866425748059371012938347335158451526849642768550855381347840814447020143183576185219989687671050765564973095432621572232236309890301147310702661425078616045158102236243232595082538105381931152672737506431876339663128203603821422474821934000779770648947938204477267363333392898494146189423276890529945373335570631680809735561695634492922599138777088086781712285012146769146283759733023568225764120855813644599388157462038600917919882318307456088051281002996047053830333850694068448004210207390578232951867574886072395048506515892095070902674038672881764134759092815622499808971128193208443634248743496216238114462007816169412111460124839761889893578634343934299879759292247551269169159998583032704334190863537993600378247498199876301461031589435078216605174149484115219105075749857730536468685960468727319815898273654161579890597216559387429693922425314894771422338173440707579004932163687814364927543462358353609662899913389671916696225319533413225672297747397692638567122795875389876777010466316969455403261294031523413551706041618579612996649190624278384657520648250443108491001511750784933484123062506486237267086781123887772641939800911166669583463442443356653036876198562677928791181748330312071038031620644129835389098193275733865053633848396503741990434502032076068993040172959196510085025635439711510627657883145600628711872478853916443595196759023460624629197801363730638337716449925555074113085303462640761651057272412002740818346820380666408397639967962058710050975066529302528534309242610465064141587127681481213411845685385561580194573226405577214426656164961154959770217162747284445577470640779108386924750468221687187678195168365160880070015605507443832384061407452889402065580282997886626664465244618817396264250241128376953975794148319198119967517737249762787349998307775886885277467109328487877495707842019827854263407348667998654450305926259249158109483262267437281577261707656582792936395795255801676598663341759262817389475591982448000650581050547699444167170952087469462673654413459894926256899656777751787547530922265697594209151711279846561285447463905112399688001794055344612845453547049291234080934631506594101208941847945113863134158082298160374691824360639786165766741043575508646560318005672151000580696877039615486221866647591530680275002859027538440006944757402475696926330296126230197023599856903976788329322535530323566361843484210062021586770269941586339025735730616071201159960992661543071832175972354889539001189167444982598922480841113557879378525120615742830557453654856043851769205605913176110322994681698281184834162770816762421215520766338385417810403260208540084054141500547351424226082357248585800594408189571689400985472348066975406609794863754743295257360989462433946460242437962921868034240171439661179773319386715058692889217989404291879935551643398789957494622655868789503361552788137891923011977912803522877695230331671232677929311749682695320884199083856049103643212862634759814123840875161786771982568672895602301445917165258078169771005321217483793744805213645102636433972298942775488680419124127716137278362772371960754091787342778653614673721790092106769976868572334603902493048702668164639448277615351193345436150075360622066266557943804031789147907276162445758237279144533524468198591972196295662670663501882804165343861684843307502809049805928045599340025294777997127118816739620247367678528091940361627466759317917862243942130611320937809367482082226710549629604214035343100467750979792656517216985665424365111157952225575443860739392756022360314871369421529715020551593735330515816097884421474914639868747853239966304804399120080280384461012852332595807672472874417372327341099894002405175072311181143839055498472830496304675168062583010476442551510677834479983165199003340585867177375512628100091718846424613480907234184599422488228371084865756444558404157215374385329557730316844819730435620279001902558539126205118698781339601752374570114769403988116326616788057361300743815998074845374373489208797902761238270061027944150623974313246639191428724973713752960462355089059447301847260623500590436093826954952461571465527158748044305021485360390009824639558673661975378951667877062125314016025412545129721210525745489800398595686055869482152209667030747641682809437767024468086465821272007192138658071605117186574907194571289932740298132238968324844281275339872202483043746525520177694296329367702835999496713033938486892940161195166862879959041886994387908652669993955534559359489443285938529764476137525885720519643796143788535533397242367065827993477513913667118594059601123753563456212249855258519545229125847657793334725142649184287611098684439578811243386703750049833391311342538828477061964564933074600130497222448183323795703612565347927009610462720288067558598563153950042991264657887435057432597512242828298176820239559700924314406932713136786336011349365629457133074267627632354514932071447826218339540550565533496825883087923402152104282875060699647066322134016654137461397224532541282977205996512225714662112056506602258859344560233583228284476367818094419040927053395200392968326850496369408432032321594262671814448144746387553085257511562315521515499385472439905348607805470463482634702104658211318378650396068784247254255528986545713836478065156237538590392439519793524467834760911403839392107843987392607795882453388527482538755446418273001761200005419052521178185720957886721614828443703265311570508675906961110716156611106476784751234567389648017770702949275210080636867670821217475343491331901792940658516957136954015690052632434030843883123490788482010913548626811793880950338335451644052823671124335656881659601974840412237102000671999262228778915316499102602052140336956630957396881359195429754423980807420125271943601810236082373278667262228930516127213304953310700777322762775703882259288788450540500362150437295585842805883496426108449670708194635779593137715460000001166821261861294447354965831968995846473522392479582998429247317850339819557384996364193494925064499389731132205798296973204900288629082049160757055696776682188169614881437652202150457393448765211702336713569986326944042127265188183691909242954244477004302928124459774235233665435063410904567823588625589830299042590730457061931763986529505000587672090506572859259840579970419069417481803881625100490595378234068700983567889808882945885830117475818905542690396905846346101343408834078225144157659305405259711354967203892403438930321243388569502642426409633192838950259969189778044145411547674757483479661350115766472957440261199745542374708812993094477150461763494970754559652229290162280639884905030972269911254816845382266218321444692346380032413772554493814126065305079695558370367820329386723926120154109533109785171620631127902636261410080682505963986933923355777725601663174354104775391368631391201879657499094059823973268130134444764405845157645771434067229558469302609580677297307198667529749120693646625728454160966753312052405313882472277645711962690112216822687839034425541413130828549036026490143792914038205760454751898639947269173108502748478769555388208680690680114221065264398412918137253031508374868860650835510851619954981207149467404764001839064745990099893851656655841619817937177347747127814153737500909261180495167543027836405166324940089443922477479690592942061678464583272103173657618117238340245988164140770426560059558184641106980782240037885471374564847466516735529562828734784746435143233875827393107729777205435183488995440380684392473253824147445231275259291690112849823151436671324892309576873740313690090841059598546909182606713617119528648704198393708099060854889122623905971407586825056859512190172712994863052287140895553369042181516978605882829835660562352080245112876442366640790751199833376525295639495316570669578439505226042528615933986124087994519629012448990546539580117744088104413068042273973917579501947616828801986307813825958990515180307824285208830191832219488632316847671812458367322500577726434971767431206258521672036955171915870726202036421898108888774330490875069215319560029930562189607204733080406347582091503054274326919400127863484394700755606877330163589187517592336269395945616707626109274687560187885983962032769853482655801413413704980311204421695066120158851004491183746204339358677792491836412692165928253465800393295068614914250898049324966864611978772545874913642503368038755789219434749782896393236403817966017883187946995583616146792405999663541845096906236411289665280630393702933359230359126440305491308791971950160168335761993675670160453137451013691520240471558321921624100977323396292754592086951837993225525110208002930098517726389464206876220447028005162248373456855988731840412969583248105546482532949206910153282633241155044418432125342821848960235576897349811441001837527384940269648564425104329529251768685732090547887188550407173516034171891328919525854332121805662245968400984769324895641372114255392587609971341281233906225447871383943648211288306960391112823407706657955485057377802771822857605576415903751196697073538105373821788061881532397005689656761973034009386274112295886856016006842706113355516750831030609182682463993134686661085976905419414629330834014966668015922053207447834807892179926727985282516482589650956637344137195733037540764434744898361219959154001331222022116021679247812916781558675535066136663937892606498419467486539191509864850649763513758214233535011412830807847623376498020086970319915394576374659530945012456374452492814624942901925468845714938928854684177037303918864418820666484890393032448541056690575386090169374305680664597885521541697000681445842584887600753551235275615428035702280766836378443548978224597066097986974440128113152387028562656923985691963536503934054157960630756755129115967351235753597118741485467264731315212189725318639108059615501005870000470833743547685222035123575202441673243464654683241271563620420813475766486956490867605176059835070273859995242233721189172936619142619820195018283760867774304720803653522357621438877519669789853758732727708811943304311143455789041600881158387289867737290013842890707246986026113865681087275002303494630779437077692003752572790804070161825950186923189277717517919866962800623578131085806965732297231361479960921108011340633380381527356995649386746509632647544840833797001133697857935821862360890058704199880665782695244940736177979943322372911071485117254436679291440667530297861059638463850524890855823118835825240140018658764148573431075342636414269925537519759176671138590813185489061975760516871726196731902995944266248890403617442706433919534168065959662828453124284340238412450567306627446638756196356498544356602594390043218758958824011594780002974606523081109489034309494786792238617605431412640309130857440246457503012962793199717317355728089869098937189929214753845438931107458796345560234726234664940109475623707555924151422864001782463893058961594754802746808835168036765713738199723813175794515994904289109049511425504607442408495828185851094585957388041596580692016087210549559486956706688091828927256570440991243202778649750263853124184609531880937123298354760188589954278638640427832338278886238931598025880599138309115173518480922174933216927428876673084739282109802985720312904605126375002410999249300764858856926851054733806435563984886786926126885911236476453888110000143729828890155708540748271683868977126097065788261162274200900105743209295875099945292710557912826096494902097490214394678398669680485018696368188118331056634906282355590575850785841889817531466308934852742926213129119620391232243929511227462321869784814799442499450850874480798608642276162383357295054951554956477060321517256182124549889914637995219849827496203508597817369254040288503198541467481315029470692490652526134539456405938326891326645022167558893532599829176535606481536371215623923072767068882434568084105760402566545867455883392140149559024929982464051672792835313878983445645304999425387351355937744844356552803209214977876184721915497420494688006894962469720197608201898576849149537656087597011106619741822074616140196721595299598109574023385822673937315687631445642093462423034045159621409713147920560762267096074156973321758885571481039761172542029525772281365734788443552076662687766640592334144919661568665037417937250756762393719218301255146002966249413960864220404658612372159604365070426006517084984540637968389017111450282901995153252707826464525783364354460904250197504860230013520624541861954745621154884854684317260763864860697225241839498760108878473072739439928405744707046891010164144474273215417339691525005964696367467235198986710923772630230482886831483706070018424146423723371424711762828835054377457344418318741788213962551369934430674868087661243224290639977840654453516404235219391020454401327040958936411022255083606690459445351095842589713498137761023253156570829263212862257505569330642691373721997274808000935914120477798085308220081566889399322958156236259958732912550116258161425139983225252512864866851723245370251477161769515940155862014675521379167486652277561749338468785090601486415783185713048765292289296626081744387427472050575382074298191822679671393826274007928118259635897163997337691972398249519925576157117831932400562005494280730533818568233392510113593192434782725551284594899212385100807404507131907961027579694167454911552525900143964343342983167144595087996714309455202010689255885852291770917864991292695241243229023074307218932792473935741390578567261240727975329233382271463749219592406730500888400409218887579583490368705556523687341473630593587318147999256322464015784938690037819289156650723013374974071099318254349449071586786549834820722067661296398892382074950217811225326416462284174574433424831995332267100944184831959259587531695214300531788194341018046429160427672567846609716312739002360104445343492730935083581219041067595572807182677862457649050146854528987484754345677334681404225316382952011073584846038739234583055516476904255204734746367522252475269257653398898152706544638372989156169720813585652098635201459936025808482211772289394549326982831436630139374867949977198418059802620937727631981757863298734948224678298422999341995738906635910153911160627758199207074555280170359642257514380118524860672911260157320410819467753544577136646893629653447636655119283852004897522303786212195182421264789879717236136711354184923083914083637789379765472934227396713281988598380255082779367484269501106199739504319938649848019370576388467032991818051283619563710057562412329491543119976997844455542242885317861234299961801461125785878742412447911223625451643512549751484273237285614260161511465913450895502012711791506128973066449471192835621251679466908553852403521823939873078344858213949746648434791027841827141675000273810193356469312267183434149945015067040739769124555212243628258485770031909193214298552990573095125097385805826756013409744842159004609854972134929162023614064996831125102408414676777330422064505673488916919811303029871819290595681129791802716260831590683437890467754990601948531266597033631782620552433235927634369814437420223896063769914031916143955251950685939402791622886096821337293382566632504616487761651032587674630725702550671916766668209129343454537518620385789633000762507368382144673884160778655653213404415775556365946696847375634693037636131537905843495640934554209731215198452314728867008772786583827234176303583898912269493411332218744934249042588221230981722028780714841748982874538301422947522079057957894241795130258616298899907531921515704788213963282677277561098095816898116672749570928080335585606820699702316252298957317215512896640538330740640006692098835008840155092066399580719260236476747756988548330939840067877314302904612019184007515772149619298077067789003598685277155612802243181513973668964806985078403094609272666633626458602253821983999503063029208690422004111238667171440817269043494218828074109535284171086380815797969952387935556168923864121924115798523492785997848397473943648110209887205480018826348435567067527268203505014846287629326249639375632835123739573605775109131066571321570398267212986758943848897560440489389357771110735474847050688017447901328204047286554288083867723505725429169524337497599330062493957573503535413959598590131057992617995943042876624361995205505042271391825637149050666398103478540918655874410814727675275420047244181852816706003957104006378001671469465784723093663376907862958885596040959097022281848362418741513492882180059631320895109903255314451288921989144368320203332489439391677707269666666273613266595444150626998439484431144721488731609697101587890295171831642885640588237036687480897354881014085915203526344809121615361075814549070100022609212134614163851804602391433383804144529919960854710361283970622756372066232458979781543793793070456752436856258751312511569880244272270932352682426286468861135653344369634812316438181818153947938215753684462700430569656625071224487968733477119187416546810136778377869245630890580192799574510149244201891261232461147452299480617332340355079656152125188602151503461639567053240725303584546009456520817588546273824900653134386250789519696953966498420627454534376137263553132388417135499582002272334727679544797871995623305865398631770447676946840355431410708980893841612844653896199471053099567773380714267443533240339368964168149653718671355333789095009046579052528911877223833388504174315795534915575295843144439867722811331254444325892904492724988549272972142730653964596298284306554271644795283162043810876231041650044255703695267227480499530217663003031149649751078049297200647593144100943778206177073479734816758509192310913262384301050225842786768457936383342851293734200012060282092402167284893427934003486343573848970505630958607576976394089094135235110617392555449790970724458783048566682696545792154894916636957355613492618426742292012908734184622454681878560489627387648455334198181331598301931863041141265025359380250127333718774831799380769379118355550958095429429368269476513099339106875163966759152772965092888409758956456162230436007879269768418565491807394840700338236144900870507571290606815517958285715635439983029052268083476605621342744509724374684225991600274631981513297746211604191852151543126808400440383557053605200044561025792215063102483802493868917360820756743290072169331318185990750830391304453977177742202561159483521150378398553990442108155798796204746356445366841076284015541796410895691403252265466860333506935883307643470369072911003602599759938210650039265284598867472096905820222423114346494110562092674252869892890319668095217789855532927816697303791607474148502081732610422532385333017661687666261989893528275363988380524217578525759207576265555229781222961511928455882287349254839862750778158778952242308126534723282987123410742297844822781978732624059423530062710857198938892710504931442250380141876225613733959919280167606041310043728848733233413285288809881238463271497690676260510724463679394571580045078828038063278947389020022313633710908860512801729279327883234834965583419468184841680865518517343382233237136617786367206227879736897010789327709957145866087751187948526289584935517455780820775851232612664165702873956229110838427773866141362913064047929552849173235992124636192471786709028523662278721020805469606276533844845890728549382013380676527262904543871276731088635923113637470268383206505818291859475321329342226914993782070908732371398292053570310100082350333379387477504676373008927561389809078084053355727357230404515190675150118431349790522928498580087683632492075776219614393899259233931134774998188776339776595563632579422101283507647610239483498292792485926952693104333248086382707256163255421721687421082058629018206916258680621599872240111477504195991656289153980502849695200515672757802409825878872371664069135348522147348214296928903098140909364370933184818371023273206437833801730139469916978625399108773781103118305672841470320450442776582345034315928580634260789764217154380415684277203876158299601811483029524368023175988507867287937150118836278199965967170112470621576950971914407311229884042902971629700473232623765976983448770310673306033704163380738901042027373921327765063540326038939755139973999544657532399351228272231674488997802827898472598232643439833760380350180675219664976603218120879586808279737526154166395991907469701975546713760582889171621177256479258440194026607985856872850516201038898790493886652650067324446920410795207014920557166258566818171408819112461585211863788884297888518787161033455812847943521236664737796190461158188157209734603411846754802556636258670875778682714255053859974636310798281250009245465139739412010744111539728180926035385238281111403665316716380072504259741414871397588019712130930242710735769582644204767764670402831858990943987074268274807932504967999354200880476394395851157211901906412847640924546009469230032156591209996617049856997370184857536365722528215854830864540211696454076862058396691783152241627295763422681413026982532548866659363840081727410102183588815344889071982364712012778341663385141490578599890964229644071663669982576366532874198169242263609713000647528688545341787577997734109315337520028696994948461813320187277661762743372008434985566589434837203387577062720702704376386489542848991004513103444296985789231881016410827556558139006973703916227568616704441831230319564295951953607983267239229200689724660426279372357433194719208519883370405668474836991071046921716126693239345534324101655056733111073633463817664222755444107152690347742206017321123914269174347541789992288434695805159631226713220171086724433334120043447807988775485297930276707911481813591623213432635901921469436323266120709939056887386981880994572754541106972579535777075109661988562086674778521507882557259516628272876868423940603390838236605407391918559239189229867190949059073110270887964980636515665345218582805247089670361356438584164104116492455117995959578562431108325832021245043377624938913436574356384977841563847139821463921720524149394385134052877267676307211642904016647643481726552887559025306701245659421457624202874510662183296501585114749381424434924462826642418258189836049739866922498923369411405698767243973474435699969087185039119299461210373435289062902180786223727088302204439904834398290283570712669002963098465240747924098181168932903846492193367781417474904594261446367564855856757631270951136154271893561862163915715425704968677649806173142863138380825630792061874258190347828055580767045876148894155212066914338901652229182176063467244980406502813579038184869377356784464869133811611522701572996088603240509498811735478415403297100508850969096685728507328565794254315632184337300574078187980385799923450670156669534567560254646037376528395240882644995415700678726883802311724907474255145962837635326877329613227177268099574574170328935359104958195352338450068898026573089074242248033755630149186124367391157349411922638457466639937609136342434659202191804699358720987096936084736922275438012992808036368036767577543273632051224441710695425848230292577430293392937817599349581608959102868201112928495262794378608421106871628820392237178968895416462746578633112372673101363141850351131484574739442881940985265252969437826284904772356572914693405343951388539945925066671661173313045350561513193930915722940550553371309374315550199172811800434067446656275959131409487599432196071774106000588596648883084550053212504705531865996377864137497847345416314515058644593258979720394839967183315795272197187648817832034514217765122240357255238882365261376880868829064649614215316154409454581830690544837113943937314410862131683018823882587524427496668325555637204727627241755609142470572132576539167510779640167449910935619579324307145421412879352585378775037786046399331634648069838246587823868025192394823452652304216945732205489834036168257171040334531060556145669977618795500923731169377290729324496815406527398603247754001585158267446765633273288500964885651496833791554065835897934610029775704442610623984731065154470294173224311490284197375083527105011225373922104832490549017687494826904983552377063952532318912062810856421623874212724439942662520592395145579410551426091706737771997670726829101136002164275737871735350106464992644616210148769292801793755031428319234852632414351217767685871142620320940412411211334490064143284212498992670926687873652904141525377969574140884847585960311144516489250020380380404941872828637811160862848781425063019757888102333267456216492149701974923314871651018794970724632294159796844650856643608772200626764070587108523824771780230013360802933166708648981544871693457862443732482536824324347421014613212953176534789474413112768426534953411499286660140089083583861281748913455684037157694702040762319074603762451170938803223326228190650880585449956675337980642389107921901609954822445464824732038668349869628149408376661605284176535429634832276735786011045560542237768415693625241294084488762001812501415357425088999637999142616443305902329613657385135475887049422877745133239765037897081689667427563451675310469610868394521651210425863533542351233418368503087251009391771645384776553614633067410910073236397438133052054642200061454877326219389013152088418130093263770442731730151723668768043406049605585357915485695079869910697548856185191593203454068359374276302974153934214506737059906148589705618697334044415973185485270611582717849713991193593848217478134646672795112979568133727712770017439421257818954578719028721244080990310098401961917955458098791096171973838387372737604611920652375763974443699597276728336911605469851410822387667910588897384576876412913537588956622541535589074728762429852822271675085451874930852726505431606348719945288148573679109567619176794618074790372349716385002591099157292713569636900054387343991108527471193605246414823571447388787300149080864998089554325425768813338861528490726889941722655069748791954188753759765892335824382711662459440920256761068037855118748830980284360301219314591249004033213762981300978844267038092743308269873485390859640949325716157192774946287075957090455895494755662167141975938532749969293493293545128886095642960188488249181028932021759661086752642427101693625138611358891749712073283484258760139831374638720379408551188272412904822479509441592746898943659803900251220761804339396995375148992613763320452787459567426809567600814172303483859846549033001527107617852700601420762641371932023417814493378327003950001387411866825137117765463457248127857235303896744052828796839372964543513328994504859394884372814481854188103515689783393182621002175470866896818661473789049866401367186835987030515681990811076418618551074338387508752082430031655964538183954057981196753373430809938467998309101265500506115300360268349812833741058328097099369961122444648280798333451817623516755988259982881379641866706399481648456461879906766884890073078560849908576030368544659646295977102201431429994946797997812405073951581871344065643685563486807349595730811715795580845352153156393321227135725347217649005867309515906468762588302190297398791414265100376026354468850585073729704495340110688621476729020529899970220597094547832617978094489794438608941427311719549894913891938030061031027383816433196940949414266596129259898278102518457052135940182327996833190764658664257279017060574133845464166680802016449540684026355892470857961085771583487149345908052167531919618234431414848654807668417847816453210180437653652680228632904343114374333025403848027022209091676351133332731974127917527542645583814273332090897328367217520907690828698296699125450385157322947688440059007256499174356252399021008818685241878336904241356442367770170721018994319065211499396222935267047141822770410252877533501588555106449128892453637917355273176855009337559449054694578058297332941105683929831888683696715623175087213166055700439718163370314502178380909853987574131654179928725770223719165842371746087153414894448990882030545396471736148578565066795282913057122323430209037821547077344150018680153530789639691644822846305327808083539574454614888313548997737417956819299242015193575368180030684515798886739447273325545573608859501425934224836858555588772687100235870095333561384431371275429750927452182153829355963879871320771400276417671306647513999550234807173196625042041916772032530350469051767192185078174240848698237102258603882364707898242745355698398442634824385791545405013225189310260844222560540173944776620790978263138651487462968961074830749590005339718565007220648370296891679009845764168838403205483348861670440540811928803388622310072928584441983637145891856868355369322509105069459702023835558010264859855440428603862971849336231323874879046807343191074929889175330455178610254510048937562688628941255155830918016173327487461886298920425450388225563179556916299223375600423410946818683390509623695998539830039776252064986755062936481377430335577874920910535341382137522548925031564816615906374952921127932058974533738451426776209785469803550204323028530303020877091126811623304310936471364489282344605452934921303656329941458173061308314068681887708852395529309347669238584507808915929056484017829233427778973251302563838571677711054634862585238848034891369947322819308690302579036022633094139318579154949658538844595489281692225591564746973277645958800893761749276175164999655283880072000781613911155530225484858851048029305040741052748329948596702904405606477092686379134802562930557640948226247927525699581239211573408143394709107883032521733439591832845011327244120019165106233440832644207794823137764323207998917325791695507149617632017146926862311954387071759722026716669533944300139363386313794333753984683004675652603483666185251438270877097027763210074392955837749542252533328389759096360931920635061837343276544497454365589755531202892953799788058368924103709143287461480107416004907456117089558808108902936299215892874814928242021737663308257425699623768806321530662844990250016326783935486133005237690423505246399036598139329896917266878024047724158525829497006762120820707889089067462682125320083664724242267090047062483042642009583140803928591951912485362676785722263240636904973358720183398404162062412141455117493249305722755570414057556952804374208334488887636356235723114302632272717416043538389040497525784669559293658841733842009744541060429551369835386043801922048911431957480745888309287344373966472073793461800488317567367010100307585901784818047631500387725791947282224093057462266148480465006885360715850216344552147761248373126596814678397131509071543635990070599767697522522359493350623154351533436631816218764714663343455023578035031017359635768396524818102430477640850686865006625027425182911143375628377812434079095313817017393447643430417950852530860024117293371477918663563032264838760164904578615065820151846807378459500959305527649906773654164325485714984948488488287841639997953185336875608412015653318084955955660758220837385085638370369230878035895486191285077638812075035508533527213454905627529616986471531512310891505082786258546536521329171273567937147818386610161250262730199617615108597572424939546835839393379831236632347981433448305513359270388953621999604025593056962293375026381540900599977091959111820202605208793529772652660156230661887273422622909798657181732205246164895738370277390065228037551638299090262533721909185539354435469098909557481499131143293198357700998860765181903884095635158714150072981034959330601684286352104300547496035581518161720676450647418219496838858146889711838513973095388957419597666003508358939461914472289641129022654606753161859810465754726821402965999860755688530427281591495979814347664307621452435916701613119226033723145447026389712141273342664863069078430775586937609026398016493176576978082284737865437686323274998604205091378940584725514758229405976368326244597288096454254823918226635901793439805009063964152197361786854631317717659351583923680912759939019550078612096416021029411209902369346553643757019326077994227976398457039167198182821052953969070639562526699975086280125054321731219011530395023998172385467840783566482619056760993274042368996570759135270699005102126691457809144959249832595955247830165744519334899926744462666557757573032103996368076300278373654409440101567389210598957640689033923873751313768087232991339449818668265797398623548821559401271392688554409950035895276341628721341116939010275038693239829857457936624829437713386148593232761157373393460002685026151319432135172084806965200481170907841335704782442856241938452306978596428309783229313003928163882690655358598861885915531779446139986524946067295306456721604347253502020644929995063820291749425116816139773921595717321358033639390856631123015277478137522435280440807774073568071936251839405604047347394714632500447393937745792483224416878789617713128750820144100955949315451426010458021465927852580299175424968118684733995052545115646265420173239315538281263547886503371538478938789583309124353296477397515823208254291934638361232691572780252885121148968234900684789753071727105174825640637585084941914913467022089617307122671304307245979372262237278912954654033054841045564913991692104076060973602243788718184591215509631096939283071943867098786165784888271075306914282149855137763558621772027788319075053191338846941481757717052512475793843692829751088325812802240893539439986661516127272264674832574001027229006242578279984837206256412425544850612911603555410157859407165702300898373974396190004732097824619977486518767632436556578997278096405539988239748981418840961730415991198437320632595421427112967518036551718028248599874353776273626529574482740854870001691881518760904096643049417487386603444938106224847035960792207962841808131614836105139827776010030115324190856333588328373846927825889450984190893975820640720883050973872575575756181411613559655912657681619297141449085460092501106978461451107376174883500225474970484512350926084858096342278953515585244003174394461341402661161764021720312397825813893651841482560212773384802783175378858069673417907704114708280080667608271450989614968144903936896928399904303575236540219423302217697730425163726987036083099713094567908107040286075868614735149614056120369120550893664068786023705579828387479644614394047643784655521552132248221468933778538285321719786531773744867735914679076994597830298912822746428271567217565866769106436031063646073837427762467384105199011893545600773573941284925101436010031460690356474830319492980338662209657667018748445785256040953998630293746228365606895924631539685688525298690213932597390594183966628136042786329083711293744960600833850610155604497085318905788334018233323929115023473530571072695919804614761872257393673932498628482116064705296142569788796186440637523925226729519785020806735759065598320306485179310314699481627687411016630851915147646139011045169982108318873815437376125279554807610220555940578961218003766562918197048469468828365003067980151985391506813811610685519806269059170380228636346332679774576051396381032823445741324162705591395211106416661711614912530161081861191502720714008134411264802993184852805100840285736412630857897711783141669675977175650412656750672675710291376619590478141063381545264157085113005126053143905379215566236707396937990361681428656678389024265247213555954024241759902083229123453325083724992038491847133769005792410284753795530581263073310506899277878388536344380527249120603801770560939782991293244477142151212048925013984490581975219115655464884075870216849363676522423280913088371046396366217887268151127398557700330507682174624563110434697125271492518612751749218355959497953930380184869387735569415535211008284405797302468917502539691474336230180636710811231262439521359805437342280628077634776630878009389224250847494419136167678114949051583129734966503532243974083030366373556080745411133755805602303593882916698175154183236933986640228368430730089613368939216961682548535154103782803739532238364836760722639890330689462539964601376243627684117691912176291273967838560250710854626697041224778162539961900183190572241402766291153751292573905091974301833873941809935356696096295632121451336634795756352196129784244962616616032329995371166974711531904706846808668770384479015917427850419304691145937263598649251378804594084886400765106492242699775551442475979575742449982372382263357487628848793573393076041541607112825389770045224802168099903398146197137852753293493999549343064542148410994307848629323923019138077850091298412498555948129774589770720539605395775263194353116820752239496042678268803726486630606688034582879371996078947487972096232757866739225892885362476628520985000267218005080007669720202573076446447679506346408789016054082413842265656703407679372181881938134595918544129054386333218949963501227456687475518001059867914786359576923431493923441049577342068080581174994619324230454649702054365929529342678950024620203740388619268644807787106001263244205220346898057973115209287471718422114408300202712827044009962564704417872202944395626526088745483757937072804648618494372565359533870982934403436430320644335664335241887575943268000134818818528800331637863176035674770980166672977922457181484011797320310695881591567183848438131162696207776396182875800747794896416118627947279186612427829733458533708223327299596159865959398170956247877262844417020522279233730283273541846379026548372411339700935757403314425012427244940535237366645282973504912536340039031207872838830738404379592620092981927441368637634720079978118087154457316697815498925090055917131698720027032722171099982080296163663893334787925839919355564121668630970791890259630064589205627215075858600812261037350006846703300557530461608857394625473114191889620668730706822536334656568309797527979549038114738920121683024588457738684390841188324716664270474309557011657527526474822636664211807839844791168191626016926149621891617659763145338575452695599315165515841639783422036455412186249580610405220167381126739742561126073815431097064085119210301923892779742464334770448812262414407397612678310820139194582809053932863705595186934875870097132244043280602228986138793896254081924555583032292583247931143856358968989783427231119078927657302529806627127648292996987453603253420783126548120958554328511800368160132539636028127730536009178792554415243527036183221229128311690699480021454326533250859387813834806225032984704114217325623068850739529767800224697270173145232678029862651474926172120622603047159829081025471422702066076342671971124212355710555639233093182804482435662952367634638983415107317314958960161364209101383174767668003389855251698473746555619367924099115084666734588899265505523717081434165910144333857475613125843729679186368060519531273166759118237375992888051161089344278295617415937545604989770513950099763394683893431693184457593651510223125802381478628952548468132719798974903393766010660305489072581556292376026385898911473216059728336675134142324800116099280005588911094330297461148417030812280743300693398656496607206752058657772966062075013444216947108050238272904470611048178306613269921125102543810417773509464136104271891000754427563831986299854828375123649852331617983907738329037896418175143661152292547147065221323604138876122377332666362069574584602201415093171718335396975002503823892557809809454596085526448015332114376865702760301263975076040625684234720893618248651265760050803071702264866921600045603655006712429507136875020495224753164550665603299729370243427428874742435843967607299433055513572369437009068692603872674711166619233907773437477474486677084575896218903531092080901699993883337545911382879497944421068138342061821243578070649469578945612456732407104020807351704249701228566668902423577475005583071996799593278472900236160936441210740866708096717299357434923034604366262628078475835336409259530855654756149617386956259402427901497889070268374286048756989165500999658023005686482501265918128433951777555635846465911635693689453298128057357658141471529788755598722018197424976815020276337717442516325436380265104761406462142115268408666843797519462216865565138630806475984962549762492772196216917303777556476678429147998849317195591586516958769523955970028378309484470016117781119947761872987120419657744975888027838814964250086135228234193983940200627944130322268737321275514600141299308161967108661031963583207195118672276550583563537385998222887467679175611394871869576342292539642579018413714843997880060009101017725430607004906279465439048179078111775468998946799091785052977553440421865894759674888488273603745365651745149147837447323250171044760109876145546304825893751844665893600128877525896085430197763444421093170905259083944871651214768642796286126842294064818516700372899779442053509425873999219410366872137782057417310968739121205416236712948362738007765941346488603037337207991915115888627949880259503066100220367741686744666095536917375389081531184182619188579894458878385748464842212016232372078563743496227069388566416710293944291702740560736902612420309095881602289195797041867036813084271387756421679107346643868878458778978495633498168873990591339695132308570493340688997521136359722877784969292259866603388472917872788317662085643062942525663980244453744157726225496669566338693816772500938686652602712446347141300425691451337087019985723171047567882011583100431508549898917106338235417613138105593854588964702000548558758296778932166740634116016383626048145552094474311252464692610490444097623293857948553835509737658679340370150906284498818786453074885204600163959881160245210630929612976987028069064958667346312386935532053787491791417550004514931121538734191366118102807406593212726627754599152238680589562450839424773218202847039690215668479255621490990175044664991029643700851046012787779163003677400218352314477021797980240733159639090427679324334561135648956904698780592851950255030173723763097925814683282553058766892109022736275834041325656603272429901135715917384003832399625435918581425391318210605237498362559905697011987998685724454065536960902446379138460771306401789081040469384836749776560420275429806278808115170409885266354704270131614818516366424470338906399595836831794237041887012743532277308839684048630022320327106398286037739342363716710999492860122025292607031464486940330730502135860560213182392179496274506688204035413135432144746721963981974983910745584126272717547344170644809470352043082601107372397844746972298791538191783289232078649355061668816807217256431622578895602751951030584277283000958274242246114322218934784996264018708499021782182239966021115507709307032417011819088154485589396357393812273628251317016424374296841642278668236787817263056397677565556190840603435740099304755725561658900236701177168658873806190494905281582698200783108152081822554125990355309213756332883633839170410162890990678745878126293404410462909510170506718166718198830382920708076246236170609965931554568890233268604235279850749558656590118769902030835695423818917089910889946887700455416133728361474670203828142832011275264027451495146970808901705545150671606898897844101790593584138697749523326159541452560104114935791644316066202891744787613123697860192994910489673909455964705037006129767039686271289811997499652235079539331871892681744561500036530212554103324378410769762900110419292040250030617708291617936755137547134724053378373646579138871200712450108976565521183343912963936909526351657317407652257505001089231059673885647508371427653860872011380330593823839383985974259461413792888765097382980044266076863238728277814002360321442387362391166544735247336837439325677357735812226164089557226254547728525976818285563592457899169956996323336942091121504342525426068706356794109064239816231103046026121821690285105904634152362309271122499978579668455942780995710384164698697909633673422564788242260480686559358102365816179443613044717970752658444049553552625967247682045662607668649094201712905667490519125380569819288284764206433230710208594034116151610081712168323560600891761805520808265821373999161723410096719345406079369226639285690004268923947196702016991428356177430163639102694733493169673853897619416639619269090380357991853342394958528094988731658404502778914385606448139964216570748516880882300962902818370202334230804506797796086680904985265134106408937818906361644370016431290294921157513242028128857149231337922663944934111431311187395972814666464567681113117673825249571017834927879517299951043270582263992533141505006069134099081853667237096215291895186595801590086292233467218601311403304689135105379502805976747380168075520302140750510961263123708515656598002117096846578334666502059814585116118357281058791117769391455179089168323527076140058717829674942920008270995382002955221316951786280555318104322767553112009411224467564035040508161939901442368715405339791930132741293192886791732390464808349191568555714939158550814202099010159048895936620291106288016504484547924935377470152033322141163940981391133987788752628010394194936501574422359466816787604226298833378105530777872286676505629738828191353807900268930604316159082659481369595495848861465055626654831917523327222130473685774969351074663918851035349655742482126669085336246620383266649249997710972132962581641840114547555357246333346712057748959429764201450833094806400535592115826842052152436723689536596425237376160321715279985255118614637674952762549962448233684419260891188393107277967806186511986055430794390510211229337821110274331345920186673154676723141279298643525057874379342897006779563797425830001802164963761091279601287981467978606103963319668492457787326183131355401101644499746910783053414505445876675410760004938029079326058116524675665334503038316286869295617885515510516499498639025519285095209891047982848916103132866815344325130211166168436484946976995873317394449494829574074439064012091523546304870799637555859887577692530203676314457247014643363883782510810734975401418672687866673139492852364159003606540089016061733833824225891202574400624644412109787290662390752879526928642745023556085809226054810104738088708901464483634483933124101974946038360357741038296309843094196275139846922694084904913336490975899592364836576653915480240237081718314849790154494980352127898689075890310408829119650351407888105601430299232934207787730141255585327461926848801814569318024137219331704041537509277094725183630192422119936529672942675584324077293645236444127979349443074754968570829345395283761326699528092504521213750811071969960858849831946731329861443784948558140836520997143777696319122030193770005558552041136691696681617641945163571956256223608555106944384507815548537469411077579329712721444665507802390473230603979348674418515350210760821627835322048624433281073255227216553591546964088475176797656012873629593643954976498540465434701179831478191188439838744844955005433189022338661233094039679650482074292153066371942454409094250052004560823548267412323585473001616461442870994987502101031676851485832121093762995904819927120290099312117003221145204896895990703396841728454388408931245795228139194511163610569771054479482906932570559684709402950457547506306545287071672317103098120841125937507563203225927752759317332408208955206524969028749913153909411930912535744022042411110467130058272823758382920866402443987007345677877058542331564078517513376841465563768601798428111044180306547605485879671384625422497447723886845873794731068909821071282099134563140662801811734335408800506967005793024896986823286679550393920890447467638858202863712072928107864124776590854122477513996766434059598702117301998849706799097816219917753065520948811521068144244166728243493414838754237445407448825716096689088075225277947627603721343360818698691977635739474063812509119258094723472484808999283561381715025547393585685157491867934048023785845803159340186875791716531058552693026812552930037918027043702626696569883423574480627475750098037413806864602521811326010001392216020457648775244004721681273273839391207601595355927283337344935014264578295210023594460000625494078321866127083099835179342138547461390358038929711219088408217005838833177226729940491893698137705046495887154624497683851373879148059134266237616887240908113115687206833723460265451686238332437845948313962074049675509932937163489823394102092373553882271969920754637648297848805755001476867711363569856199350725532551377123860234591066180611102455409442854807058633553827662289966845663918852289625504579800212622990845581420283571002897848659188282323449108354237648951712936636803183005091996968170031381530030312009163767648831809846919055024348964818655552596775260205979820408093592070956645916490534238537289156997542431512244428482091310488854544917967656732921382703334515366618136297888761420604260140310806348354363073662624987894103228397999696391760421703817126734638280762976413955633030961679647471754662740429681717441873210331095301030638719297510916528080026688596521942336442009504795076566965177560287103585576173697311433611531302318484029660629118729834531943483992755828361642301584833250685900422688945265066438535505673413191664093065242817361143887419667551449532373972360761978419394336867018654056987678786788060259304418601709412426948971797991973575945076445634196406207725092322864646608218703401023134536069205357319945989010924898695060967196390985018340715576996429997013882883417168648636426210412216919830811262298389364753188516667410356593324820236204490169051457423218402994377733333445985653651447314931484309893766062522656927788040355826006318062641848215682892428999417345011455103023164667653050129035951025684489783781540663326191723619422486424192604264816234512698717849925037342255505266059440289842328023164649317178353350179045408015696195032929838652028862854791117474400259044502235773495927001480992747209789506095864781982283045806946512720212183086576641624925106510383631640848856102508086345184869140502400540767002125367194288980005783146551638135421725562076077269070238000444288735357645786212518895762006049014755983698549452227355419076156552335801212404780515531953101032830235246474046149034871203471672871860343397100581743538413318541126203993426911134903245072283426059145825310021493775323350404440347257893477630897151123438584172939011376355938611839345223150846655929670227442386573081771300930076699540283787929014399627624559936201589333959147747616684832357152977102625795746994894688164425345496386279983072869647566591954562682964161159501105770427067807409723438328820355793054296103430974776293474592307771384787639367017303147390906520005911857146068091495288039686012988117786441000508537934076744402010222801525626067095408672982146068816097981038687395312255942547315582623397309509232567973506929435013307722805239357771555693820064203219487779228285769400072260503387814863854206644792077675436877209486824416021758043755593578705714869251129935760114571020403842826676081185864840776234930962677657274687532078864360945750802909440531655289853364962545404470029365180260126355985799877258732402895287822527578491304470312073361783338309944353404705856603705985607061211170065071283824791845221121073686854129445904896478203939597593911578910262392052192959969753283530344763445996015405625403214021792320612108017308869601078410632552723106667448161706919206113849641049650449650910834232446967866474940128222659870510936167388068888327229734728790618015692000268027928799261415192093235031952907272092819389969297389922768978928880343597044427496332271625248105073751584320337433634345223474638076611253971531832018527426899410649797174641398156318958520472041266590869722158037755558489462756708250174270043868568139157265044257877020103764060629357092620796047760650724822586242896548494115287252888306651995550547545842188787641201944185066208327063674918634191822617851861616385857840871069433767051136172986551381641804454659124501824566086985324235200159162163161778275374124344679603631160992230408977931779806254828766808528055543856399597629328921385099172946613506336696291898809760975135695460035520434643905563542157176247287189988659320735541762124895013975370271928793898704687764648990778959024389149697207612175917845631425879838033065752324674943900773552449283389739086437750655951071650534846498399753900217165215938875283156569346973539792370489254671111428839401121259201738900792456624462702352632395397373689099266081130074705558810787141113304786115110306923736364306914169734645712954561152044813527441907977106161573394339358891958184652290926697060905746713309506708074497632856121434433398448019134373559718551906423435700275675394222124715845127403293094798741563097338510565841406890744019957779557687915446991397260518637971630375156345623477224189321387575827825979658626533467966443103315849074512660090392688902736316555324227492489111814044745923259365260063246505272446687440953316748593173847085710949235688528002118452259559294504874576467902176395615729844321670315299764490030767672793416682901303996663720929210333955750164060332683298761085592532205628003198169520443380030565016909005863745046971386338052657939122754464138244856224522720907737590444174310512296476356823612770154460846016894811763776148701505744262873402191599405773841459841281481544555377117675514687260787688327858603255143184348419023876045345797741235238109567477112107913392259510309222248246727535777267713970655853121559183192354550728696768826490357192686418531769313410998951209021429218751376608123869739528899120017324488964188173222093868857706628498825376398270944282108548441979499612872030289675320498453727073239774378583988739636264216695435126160088957511278137355072513715474972526318572942090328259549985890168784682219501903462404788237292446659364789164019105613068766477000274786511298951750828249682523103245525812697379412332160183303930800424346213242861595867526458086404047053709972420656078527073048135713926188162103428767728258549903099392793104585452092145650180468726592582904120176532790954500760681874088648184523674596958492912409097453828705167706911472419441033529706489434638717448541417210471571624128505327661209827714381554675705520010468074806959061873912696402562704003962005521012385465925197574726773056664356669689788642504211118884174057617568775372741098614688357864941203295897526014118639020278382932506451094015619958970612684260557213714907957993605235992423703608947871763508025923799162436551851737768029407766170085287530838259306372732327083592740040598622616769317772967167631186989339159215941445390318137668716435149930658284797620500346287652030663445910745424590582417195222114019069471903036963261855987479592720336064737609319451097164759298701775218096880363113956367573189306509300039451283634213114077530049960875404766268381980027974014648188414238239532158386328651380953655452677322277805130612856964515522626688939046957641068197955453263934197607036178546223394889058226625838540347619812146033890856412351060712207139964051851861538899228576771381489186224792610842019869849745314602575839327002469994162041119478789789783105474294564201162545141704007408699189365205323111224807159008429182716112020728560541206169094953785843400731367302522297964529852168854673921148264898479247691847541864823529210248596728177695456298497911377516498328263574772325965382218132038956575882593897083634270070555329005036679399564461464684112662388592034891773114963885112181277034642497470558017144530266027976176253993089398565917186546490470408846349710519208179386462150022796627300543519762908761290202706913998720208833484393376963563305534489362837481289021275889240813082397610286127114418993969956559174475384091691259879622345563027483519918145468789138469050481321504483845535139228522948538275123148983981568512080099638388645309880209782017623464236850539678406766579384848461609334312904669754765230422571891322064947402392934271905199482228269181018891612581393191250120488112978809364956441485819860338913258834214685871264779757898902671622178598723513409913604856456300099305291212194716306668429764176506407137478185927042623751554385981305502122543118690790140541442860874893859483325097828939856048886524033514416934097428304207165657171933789840062836570520756708318016214231190965346745760116702774737935723102043711654110929298257753660287087797453044525639182467026263695760725137020019931358126092649958856481828029744855171084115544673224881285602353895785013635598516854117656162070469230157845830136495970375861139871418321019092082810812499469699834125949091656151130941967511992848421270521996189174811616885094139124165889936722565015226112808388014966498752849950087652809747279493368550272279088161985672495268449623432264197000448430815538905998759178257770506689707208652073073740407891343123255702487060639790270322377507869681362318602785854437645211891844857327301881582141552718327990648973028784310386362252187658505531020904040263598522617580221673490786957439801002526452893747250273160754417216580797806745949070455251195016002502092032026691334528145451273954457721667058226588270974428365816021065586937757245835646924628132836737794779661197243988425811566849903222882559349220851487337153362193754937946809843928843216198990049267258799329622784418022295314919018798194983676750845647378225796855214638255626492990571838421533339061314235773937707456809999827504586746766127320179570883689010520818377299157872253545195926659695187254748969473463727710748097255317787557250225940543183100034662917083573894386904773743529213483874417862712534885965008656868216743427237025751879544842856493645192077342474558023531844368142021151686322487445748525147207130761076173032121993440220728473392730117873708120622892730569459504189166195890643962487848733297652011588765687806789408204753243279503898900448043069383610300238849295102065347633193248367058271257782816595143209192289455641652897350019932204809187925193396064290177614361575152436385805597388336514527282425107896541109687710085921684682520414125734122947285945906875961774311448551918591486130334460370588421616598166306774860625536821653452718297432666086699624392874162779730737178724603222311191630923274801429330928100878523784964827510836921154343965421853121695190580454232927991938867538623298555705596918681829861743082045248407055147662908076837691320104235420017861465340677882775589031072244848265960959793439511713513145688316051949665359708638745343384950201057746155681272931118680399923863400395864372122679221538251933640227293234983113366816630045984688683186725630440239576682709609374959114892356741670970964214289686018503019679861808306541064041416437274913326453899828457258318534795268984007255135834305764200584962304259847417472531421421511871138572933087561803236400413319568183641240012495898990218592831192421859101669748182437733150582743287747780066923229578482416696329770639218625540370411283336835561561434168189904302882817756359065046657264359830815191306845424875914530544010741282519706994945273965383851189209707354579951374611154059894286075359126735391635916157963152028077614209254161752190370788303131738776230806801019491124324837204510785519325425376527370205339921352788744829722694022314868582124669051285633272368338516085143398401562194599421840974628302675060913014822066310699541820317722977474732492102212017182564558947710982833987596295140788981997512738345471691679269242776763834486512169457416705055252831835190478507845390733061068912678427816845684727183587471060771093677716201646693088617898044695306198597579865394281484321349392237884784028002734349697909529316267757772813412767413151523107573528815563080157542913216702961970483256118982899421217118482822238022462119277997016953665539364165512376973264236721072408165310574726863395371856700677270998626359314147368074356385537868003160966928924276155165818424211077407231823696278802966315434768170665326155424164587241391221824094314755607146491941138765870861065546093214417158327781096332138306228807163812399308668288141592433084729056826012941394132723661148090215839019206240469981988789170463186988626114352209694445712984906610732858754315185277984666302896026048045476775893074969802359702819067819277943902219862493725729056648884571687441064186246574056564310718071726383988074308024465579167288710696543098256323762626812761054509521782813182003154065838334059760936697672555993844107506219434203343051342578316095795063128696275957280212880682374175948473582029000245497585585878772035967232098801258528623913863697416593885429746751597103813944228038623644925498821961477296127164725035282686742952266968957015090230357962056160531567668926699049483163703373568079704010603386089767259179517971154835267741457099873287278803930432009094719989099037354433115064502886548194424796947612299426149956485572034860073874318606965489283606938644395683559632286542769768321533738045068446915825487445476148348184880183944931483664124628196770975430278268055211937195966506507649267162946101603585888258910884361539528223379237580338411874198961055071695305332882264867976591102812397631598108927002107730384425674038607544140944728481943521037560062599112243438379438268056821098685721041225642332244977505513651607197650422487801672145853903300688432699673722019927975027238992785753234336878377816593993839174097997759278693758574802231417243215383113384090306538497108004207288287822834244749074927966562545831449271063144229917246431933072053362263043242512147444975373658612362715174315625813798532830213439073274488165948753839341266035416873517370435436399894404342782882782650225319649696432241217714135572952933141251741624655340251687797562928993663693728234925627134915641243313832003144680940364929095552596209958873988876421324186710434558563772843131465806058822307072577157977734936053739608721088981674431158932887482741422704089852904285270660761729303757020179093439929940486379096680009845655288840126614331309248576671593294231275496270022276741863852690827135094732169363729689827565415581415829376045179696289733804458120538140587448782206335212988534650130827910332360295817770365148766234184111762393265453524809953749323374350804547158555316501306710620199865331834868639841153256393181908503083497434748657791373603195794232845909823677265251400360212838316389989958725305012305448395077914742951882491188428297541472316226900732775170878251143673583123367093292534827851636306222729234060750784817735192398925653730069453904882271014865433790881545554679294886482788227115503514163751402175169753807204608751577144484125905698238687751522683713193626652139837678966393173676746310786801574339239325925934075649023871250596652725264445454891873773949865481404619947135153399618189873579290332118378894039809648371669919325782436431312935931555041284211666724619514751769208848756882960502212798405813261186277258059365999696653110095897298388410704580276929319242535910393205851484671066152819473756624491161350853179921081712830314719242620761106361673762019910346167377005272789922721232337837918026838259421527242181726346105263711546708620965061549120497624836315168276188346258776459124076482117771421238854404094459669999611287800247099474624902640639931119063052878302567637131469010673631566018253423770957151022485205703162114415614031374337310026775032796151605157085449509954357609010576294470040708406313415227549989298092905438400482818116663580059059374622686740716601193552689028165610376198797286990056181019089380993770165430942253289563743794272447523210415543721218575405686284745455751306303225683324897630619567690188975269766235594806889051127521073752878774641563323651576306773588439055863792885904940905715355876752696567559181367968831979218023838477391666098865867034748002266691572383429815819889718885833617136071254408601943742512101295969529887436163770713223612027013759467726459875145802216825369661231128053326482061220912670837438349254543808109832130363168204517098611137808984353202403211681658203737732634895427535374691890951844951385567195628757190630046594926532294595927444962748084139814706084910402129465925726533949618810447730525282777885984637428371831945933222002195253430001918571928935637905676288209074013560749089663191675578020019479502824477621138037660024657644836389506081202067571466898274006377679658603264989109000151190415782055239333999039355727286137300132231937430252813351102088463492270196784488132377986001750916870481618199382906622634423912890723753181462862512486187839862127938706021896744661471604041503945713800134704014803809326189129243676548955954784970816919668756028913118625661822138274557880779257309904340024358086803786098658652320324601775550494387532727071851338808163693845336479138005424328507004267858992483680256329321662154593267905033937724531526822899915724895583380130404148178876541875492457476496709869218904717287743695163805874683769921005364906017154618387891387533531874398327836424918692071370379613770393166587379554496499234707487789951293127336945245235896244448240644990778968960176155393941982292510637595703255486744579944042517348117000265042197093934573151459675869957448368026990450729039326261951287927044780835129451464507700439893020925834319191670866916650012295129603248562308768527238321584154287843911583339528543502476782738436959427590316227797992009857544179371827692275049738231354809481046552934371508131528748553267923494695734432182492161593241686194367030661458369221278811553895738157047020900039994526975481169237836501022489087257198517990931682201725776330313452994952874205114663825452729236743888195049639978153043160458089241894836612684987250554315769268000614530897002568597532644316634460003985399254479145442639784138383687068663320402603634831442263593783897466654339151981783238730328061684813363093413946123029379830721778502496051580460831585784365297097690172848381212182073405869145950160609555036839954931103847632248848746247126635085430548141231266383239750975995168156890976400372852846645235489284588487537327575251838292760503422967709568926682456791093479297815899754897347655412886871816629618031092689217426146399264140656134321804883204097178592858646341542497890766833674429829377838350052603430069151281676654784706991480666080842250825346461949466155295730118514364037237711261191935052356804201617177786622669389925715446497717550908209494530990779290471495109589139483651643246856657651997344151062625260161833712359184429311355665393185463207392974226459700041536431742578187954708162335520142138710689096781890998587756662305176268935078108713741723559497240372141262534014856354399998113039133261232865387815076930125577603540590200404872847493091095086740388136837250853857620454613054605773036512519746362761472189045593838824101729019631660056187791520873680947943755122441018630181137425416627881187322394735353569164594269487525972142859777080339930026676203891155590433042149721068376561897855802736868632580688947778793239731550363170874919908825338209229656939574710644284755223917227942542616373290051764278735933593369568921359269108352040271589927340678629342981423471538673146050241391990119908528765896531281135989619872709692608034294514731774548489592511617853200082989239803926050211426571869921060715944234102220635152492339049076555686280380785470673680189912563818986606443980739462377901001166879019508682029428027502385141611733768339193793005205688278262950105102620614055479630905612838396980586811753565846195090436431631492210888262005978170580294035320654866175221350515548241925945816786393968322790583079472990954649500574010099211241101753319863483945307539161773573158818986197333929769646421053033321026734802905694156797376992147407104825488426133498811092775439068097409284130283479647054685205864666849946736612044611493347712792487914323262564155521857659855607736328069477324018085224914385796369980839262112492375205121393447821884570067592356623942238988026894312539555759810634476801693123309643898941718632681471683272830472590807583716902769767515403629104890323386504770279299687298519896956284919294916968072204324493031578481817039335492660665113980398818940393477083025994160089564459029836958566967703610421883698172925256044864233510036984546616389158297649350788484249265025529010510553326729424868351623732571371408819334984985951531898681498739634197655211156183417391333965964271482712068450729568634818562081372587419337679479861518237077316408028696093629109394323143014115754659700297477194049097118222325621679009765707768184974463254206297724820879598907207715524781269098685458142169257739478090031045103813465734285033990234823209949830488827785470660018630982116003000279568354500817870343262504960834734007609337793329414941098759695114103418967539529869605361574580327462790392285602798012968981956214672947827950436491395763297948874527814661082076231906513152530025000084170454914853448878791014150314755210605135116351365481161563611143733893067766443104934399058277053750636062783082194277846985044112356895540981098345516666143608204272395195497793867477235407358465129343935193367346897362432137413157689637033777662297029754273786729521355480294971096967302380829437486196677751486191163034400938837786470837287416660961360299517688482241267172698381822354279373240391989081660753203533962611197004368982139945964830828543811751528537304993151599549524501808062608336964791755581635290728332520293999497139703207294166965967583795042820818042498563548527035612024111243735862536197213269513068776957084095695141633653541659668147228020038135491443116866498899462837024657918629972295156551321924411689402194439472051290465045670003956496343720346229492292071866859832176421862920089823752866703898724798839124417637739166262074870412526576552822204493316805337720653559185722130871454298056535111713702634966480740209572191074600968285357772822328943951915760285888084073750375623387401568980766199994570053113706498042241886214700794427279619886731829962834179984920977896754634187157544913040651043331238555124179792772932070331206156519265233804390330709185796452560629770866438304867725650298790250930520159219692546552156016401350861930885125607275844507726716796617668171468309576955180987146292571038357709454798211975214733576182014574750465754128125257634374962923424424297045312624774823693098788799752109473462818018424385968798175902023054610182472187770168458859439734501626718306464501085546055572355639326605752925341316056855652523460357309001346389919862900606500153446501337665396815322358972242851066446295505960499198243734491402513028305983553836777703805417136187898070732886684208099787793449484722349178141514125956954166788113579829408018486306940670487251027623272400013539053158784514516867003517137069524731442528354029353836795550009186095541200716734693909916480428944211312763982626434082124699675532067687679961533643414175297543178200068404744975164332423421727334377841041206618542287927275208489029842061494163283659604296834525985270753949956609780621683237284037971438105013572538781093892063960396551082994620910911497826178575514793207350086144104133818318315610625024858164305534149814728753248120451478281693344191522625846025322497577482994970707963215585436322203318193154772549658427638441425057923637242858647974980490645901858610465856714996965372242829921681324192146923862383192443360970620056621356520328995488510504452263076095926489026426761787951049868929757072157213964937363723750873459508774557229832784270069910211664055517002565499214639502691810298853630162211444765400909318048428178359212976436918472511462251077609023411781083679178218099944917448543669095355219965254784642892706616699434865302347362884920683751182292102665429192409679910114580246853562106568912400028947832608160137935265109951172855273722904380092970823721780026009232682990205623037913379292082409403927745807700781924740272268045412311124150274423476337563861040431156926625813870178460030834109791454326854199484899166925917324263069231907700906009965708934804495042995796244031541852750451571360152321189098305030680198211711263400143698139204920573893216769894934186691956405530602745884565126742140097598171402262956657088292788677119702554817899444490738105157315017019457209544736608953327847501698821912604829370316812388463260691094346400931540789701936542243627930739120692345858648955799910032642955458197058860676678868808142486752386717645464015879582464961454921272540541555166636435253011672378035659151165707701453362872481634289315075233143238840540282307823575918315325922499561380766126215350937128028499066653179890083470806171214704495562267144024958890515402036057115733614532675339765093607877338013887453222954263786271787534790706973486347199181469977214910114614823761553247206612317786520578714326477205766728769176208359518937802688981255770422159524825246350469571202958787462686444768772342589452911033487158351140932260147840080719957176110612808784483711545529750435059305480325864235391384752137058478454526604202172700256453840733293248160832374668718541204556070937895481041246507025359708599503413871098797030350839846943411390270419665031280811268850541633461884804206776830507970445843592293865066766610522588090164478110950698487925551405831442901101300787315578966508169587028527754145216905803623570195487976017524634602434657964105943316620415947208582554303820219645087423543309415975803500396233594226604919168177089084353025859705386212922130226878615876268112412991092540011033933018357520693417642924112430063586492439188195118971393395984222001601283758947021376903428318099745442220873879219097065573466520570089024697664373456843509371072008848438501495510150071313529218700112982779444601705773764836184266617177316855020577575157464541141546789826188987977291010677409398361648175964537818848579566677801617114596320056079652300052375766532688391634691106017822685681123887913162310734743358527532373405461762983012716882584270269301708245106015859369768798757741635510632164065512072579886906204318296247000497501549278365464553950473838756311504526716356361842922708633791307423790078063498338095702032966582233401077785351305481567815621996261978015258155918526945394745901122417128923896730814901568544795045076887360783544492347637713574877289826227217710952776351614571810485920133262572938234789067030395446692775559159299849143261785495572664711090107145161283889514772032373389239187364387127430072083508388715339071920349403410229375131810511987384389395993422403178637372051712852286178746805141017677781621559106823788270838164092795833120781904249971393852992620492534141055672491249739209036299908332716020015259182993485917427061251815046513208886640984434987651706719907462786181390304215367655576002867314919269211600792441651906315697313402825714376690430868653019146004159595895205362585674193433039825511413957885216696024344496567956348950569323175964936612308475734852190063360019397962301985597304827964909540511923502895479577987972288772710866534561278109371615604771412028786634997517553474689958738761721068213624609877681896309881239960748048269981152541028435638117347409621064640549617108725305820951805345213566460588285026943736103023132999052543374094006075500673869581435868844719291660112832384248152758841562776200563918705727943752174712195003129557470867006179108544307013910386382199749573826409737402934033739163658865161467361319711700937337902001715735561347217212397340157757383140915821284694219632372188755843459414780644484906555559408389057635752937619795873675150640023936874220987592730044923035149147410287222456868327376717415503670598661230542989491424839090345661850019846057451566823564105758494309389708859823388058942094619026197760885363947262064229856469926379537399683978818622509612869713077419842593475717875415971910388698500202680884709720196312211383467415986247253562617913953473742749431162020447692409532395459781583467710656169610481628958522493196106914951786007168386764721649577744819963522933476708576475661795265507583662298095779874915403909244874486861225914740970416035627237185447635833805672786402045242494764895860851426427391174828162367143324243377208049194757420450646057920182998141510436040787618040009597330936625069989426533291266974487058100045597685357448610570726314893203557900786053737848488314867719943081599658212259166083859531687083375916317249124701915884346754313896510113888827861795790121810247807447008402190181970219210345249560052317441377282024837153031922770269157080216551688993139855425262775024725948818106824044198623250444299918616431997190087276685323893288795772018829532259526036371583668543458422211676608752125775461505291952513822715718367487160112693038354931059765489523820110910462768624442736009988039752811292735589630377164721286044038638172741026942602373094350583980755334772999263182371244802325828808807185580148237633833014705117613181553480187694857372991102856423646459177772689132071387889156353306251124055232249937973375600134652827415482655292701039678269772570042075604687306604315464751120612297610326088390104153305226055630991203148607384447617736346386288067161550727999625939636842360150245955983062110228826281290680022706328208315100427014971778376792010830855424260161813107047960043709533144547337211185589777169959943627630336617065925928594974550184808193633977835032902925750822684424622391483075244709005169570510529887453854649175191833397257816893497281308735160986801334186618283794746008398299326213614316860669200594205310712540312746369610791587468693776384256295165380771864716745551195714411946942314382780899313240288685077990396544932167207409214365060705671952283948385463572212382487062902539491100334966086647448549336416055680397364463248217087520526295343592684179972394822917783397328152813674076128823103003787652504735807162958699024940577123965135201546083369359769821900741163910284809181235660571591297246937441809942738448007841798060269902612330412125690536599959186272370078566532240296030329944364734110139787497234814394866721346906377569289191635866904215608591732213362717371522518643702413871830534029818701249800906796621928486523229275731426551865388414382792055859841160776883228841871917863444403451765504938853496958922483132759393461917583143622726317609089954783194057368041756550210927978222698703662534623282660534430863101501755127013715476049508306296751477916088932545608390372111505577790791493524219815697710185339333869430957434625323067653172146567679237922049019323656238404662184990383108638926017287625045772930852610366145135973249198796020323058362199230919040924183475574635170606381783114625663383015454991046426678025119891345942415738430684418710533487256559242700176743100706057627546448896731176932067757518613376560396691304648323538584628068629319606821838372321030131898684301475403260910362809902712701262669463841616264570080018002862653826873700513817024599341645428315414914296957440679653166656293984843063915934139096160783560196072166744890967575077672475926558289946232686250758993673385938422607171662092113791678855845555314851773065555235533526685616452643161956840911988061197379332740748318080949649280712011325527189154429153301668577276595007475091804351123631074304225107127908928594810855736322732030600388805616524342051865427769125649272014719705143385172470283463844182816211104902175172011961921716321461521718607820993136884812404923688641204797262477871965093763630224527845083448538608265693312586964568191853265320166776342597528143694429242232933675828104897003383784985624541029562348727042600188932072468462837212530560403305377711107075655704275036874684680518913928912786295220880583527163358405270289534656415053386879341177784934386123588341652624851768535677487900629150096223455901064859261409462533199743452348112869302086069717536519284911099306710972927755631669288090063229475685622784269209224654932267900641292685089805236772550756888537307507103073173938863595258972976457063313610141580040779546878001881367343183772953750461133718470024921638244687970367731876296134106412254698114539132742071595928254412532921925478003438182053053863856622674503989288937357239728710411020220095186054251013278383401066871563768091741657310221725676403470894720261773973358674856322960979849225841373913535686444556333280057260974653183421277909065762049056836182358362151771404219804516134933175132378969506885251250389112888449925229136647641361740920027495175986843734642451650954155042897306002294123989974598699441365942735329503364363844482381388201924023418985956692038719570028661162358133330801730684756404234167945585797045327317002792455185015496703221096012686312350330479979257869845247348358194839229061129705817451665809403319810657731392475515182554068237632393235462797222728964007367790175025602864138086507945363109525077986899472056854318610939049107552803218739949760977763263215026492099821112452044284713742612069434152435860076284821695340515551765703713858806894115149466766124284042759428560264428746052984580663558363932033654037414252686868629287698773328630484454154549766567835055769837705082606478757416295998717274959270446072411071549624946058015639377896538477540752663143516423998193068749705889676644434313492760873593907983224417146657971831864284622019868491941469200243594966092476220906358012684492871761984988395103481792062457805494391461237278333971714628252207554159306481660757392834056465455117875516081097020354230124543407508720230343873442631797771259546811038812653128781320051776659351626134355512264364047643215145557803660112070923846380202798901591246674225370780538635036968648796404866737109383392969557956475509860686687744341504778743748487907374099561970728763929688028922580529511585342535048850007128058129822546457578452441407904281940383820713141191352872959689039414759149941764156764161926957190702793619471430159062205963078033886940425384013100293108206722088110776172852274065588347323153466180351117825333645101907707796362554833924479635624727884065083932459311831993341375832820583432654153958115147699019170309228205882375828634451139125254538547240223103623997519574545091026635104387972611335423367719676935852205036276979174862102073576692940651043790775815808489900019713986888083051420526636356046157959327953488106679357374131734198980536879853592273493840151565318175914417129108125069147352176189808711313825499503528107690459376803321449001572933459768325308311756434140205858555470397895801744945041172704719603863226722601335671045048804189194323373287980624268967854250317248237425798231747450439995414847199616609601860271350609866734225174036107791663773476847470115100477819898362083529965059530746933986430776246193465072765339994239906115734345397259532273163250008819653281310031029493246285514944108814978971519836721325703278981398633650275032398342267167548671743371835955754374329676669121841815773298697079674914704375518403397119413168972245054108843719642279690817793034466078908772910928213211902814599934574043116673827570999092687497962318706847018891336247573448761693912137419102046041388560222568774950176268059682386982615190965753845587453894762504463304750262356082372854060141914323224284318002390884335841488275067854213210307840701980670219186539521551189048207704989230981213480668508177695836945983542406917620033708542334453548004187617104557955353975179739006645971250838563599517357074773977950031933834206346128267874422388646921820368692132540652505956177327867934830937397727731160494643670870373669577825637121351522865787176604664778407738765680105557988032266037235154650251594674118476468022342968578717985536179173511853352488736292722244693811080184892007818969838596239223324499627754244501922093765828017952407580665996682265507904993215049799643533056171350514937267880803258429290860176062351104296692875728400482533117434001185108094400182169124556398737085540908849924550939100432859947150026732277392400461576473281722628155753397139505879117076238989866428672618768234337510527735335850489932981712026971695419853339459100117362814971735227420235761793502267332044938512613055445484138150116033517356060240458240889938248885482373751617965203875520705714409564550434658722257736772170736649664696393058749002734828713204275445663131358298639326926641016457886877319352030264212209899283421854418090923614913694319224860380522155891130042591122142500146486153829995093973724146632216090001541420801957451849432003405742092039579188286507417893788660100658345925042102959818931778021074434645322613933048332218666256310145770676164021899747300627870578536305934434975475143001950920632840074051619056742109517924932899619535660397224655379411493414069432252573194003127531464050348074515758834973279541601102590005532956540615945983919402859696586440232850024719516098708450369303195308773659811200998276438224202921218048942003696300064525761655151451792888552111948289394670826027454686689762999308115440680069089759502652458130940166144554662408838502235234638375273516819610202369015738346158938043572258578939080485070150647632998352443829047019232138683792489376621962613552965053279589533852186876887285104706278191417464064913757107755763129872062395487377928767793880334333513670074052327356559540311908998466749307273408556464291716214006332652063157461142266983532701273108402653357590803590579592852216124877150895030980572239094256197514761105914752736663901661901621144735357596479008512045994142885054320197506546451297479640253010986736941628881018781372885719889003220762247654182552119680545717735372925337775350482973053012918735609106561919286213637881883041133452568425791372011245668360317396880155272129810288428558718104054533139309892896952986861993219412212225995573223039173020041629662299711970754981102601303365935375236351171701347627833185885987717331421608856914185956455264420816761801366451510513084539932893904048900592655037255626856606927228401845369090994419366319326560272180113003725334680515724156906878366986072869964361729406676031548804238980502359923818926399994334673885358207981660789487150633087649188711448334598200265222979758841009170971370154442987722261765111396719982908822553558085261014141759828032128782334492277258506275792325755761937472537985321841392744610547734731528353149466556158232858417692532925594867748347897159332645683641816166411317397570304844779533976623889531100323876095615780071669629444546645075073104661856311946576657843268342820442746710122691034919663033756094247291050189321760917636369471487819607006318374019357002508072801106977481543751992980131715686043097708196860541902359940456533632617214498186703532957923424718871361398568631793648815894158689157976658819658626176543407465156104570411137103231730441189789406096133027778098766290878648208333580400001742952348735282752910762266523034311685903792936809409218737619768188738488241532535001434313461936451570135768368501748256697877037084155767537790966720559855394630786204540198518518866509488543939397892148134412688107409154681537248782770533342906749830645563807423925087223381995753352024070066281742623270830467569285114496245193795721216885431406139030882128221847940994116114026691085814952338845236150389628376615915520007020787389006669604853779707031352653686621440837714608497727420466758218462771926110680553244121655406600361878042363908863556061120271284805523216186925274292172733404083725959129754811737931937814593442273387106161208952374924212492916779698435112512946722694821991462180409829566103416485186678777860406521067020813291161910612063810399306592323852071106794220921642027540978416074963442277618142792198940259019856547228725240842104401424703898157502133607011422798005065075011653466872510757510660565512394519084904480040798580441141936197321873902794370797816777684004783275121513322860067993429891567185069771481928859253399913711792658126311507854875354940733679505056174114997158654929936542374050632362136351760048480878206945612466686729617559565472945981932807033333247324863452546905569351736934130924696496185588566952812434323378742255319187275807829570132137672986756599725553512886466880956066589365628649916755226769616544845119417321449010277428337812157391255027121105877761579020811835441158209288585339271316383482293546725668840445906733181511898604753902315175168526032193707107667034806992501105360306730898995695989835141096696548527857173458710759440794257616852166802030284150003432707450514151669362595076149875695686554306302402900303130502823558558360002347472414582236672042387638013288558796128095058502671504593575228797283347717491893284541147994251650505030442964262425386640153815309572477108051074796521239039246874740921711472632051667540652131622413603978194292704002835543939918945373421484952345763570265367248231051877313254560164896792280028323980222831855599959963078997419890412292478781791893648086965224570048176234881971396018829794849032926430568618404886085003779462761762636810753066554549444587929141294391147707876949350928404570871975867310812324154519146620163352112977602589437259967809923965522593479915158658753908239562033984749540914248738586986043458942369681077049303248620857360983427437017774194077527130130399501680116775965884419463223405555847363007469644073575513571369724567097236189067504042171015488108049180830883857448132781980424848161554264854791358664162845558080910038619273932742529229385714221500208362527478163731841376861081809258141978421302114328112417866417160579922482460388251816564466545639890316030628839090731458705257134656424877374945445207629818254870765825820883216722839620535393600283446364169288644571585605561573574309939484926030548177386577133797979575616230893092398169329999024964094673792385918724746708649865902333619621362608616088531462918877838703824944250785351236108822971045106122208877167621863958641471628371692871506122438644596452894212084855439823255345095238768741403075780337117901086711096932606911313595468445485974695220011162814036720933801829272188916536824358042911516385587051249925756054273688033509739182228838996740527632974162464101787900498366914925041112329654307479096198603903356117724152049865851412459856698467793866993654782836289479641912530753049390359603842734489087591749549458016273964591587486287747920579550570969356174427077916695650292466646472875997582405249456200300690755936981785035691846009587426971409322321052882591262753765149822347235932281357571680094449261926885113796332105052728526061109526177048760779522602759983936346126308830178985749916672665358739402587558537547877984194294569792401489242833281656025036644807703072500262223243287765188550629003295367987631222428331950349443082624282487460697047138962181170288562233578466540768446863628404706876207532110573956278228369584710588550869359106125465093082262032273025489500297810821373096886674291082911349961242679513050531658156180633809986001088687240185179686571023895873918572092844940632791532686111344452435571234279815141223759374526459313559072336808644584501940692017513339534351519864357950037793585278116362817516473175959954158934928030293315273559323768249382140796979260974239126601424126038651781242699227529168600855667364748256117126718297641151956514503187196420978745538859645477941412925128785072020320250781038639326711940875401490837154862145813247985365065293018939286433879028287952561802442364934669474091822553533664229071557426729734923425118396944557205674682388267239976155471536871994376993942822720510938653103272273502424157049508934986906702387424684168443405347357663517643813158295635047423957951149113748115427327246158880885233154872968805808206234867405047813595618744082325720693011757740285181060125232173111298586653851005675751452104948035607685708046539225333547383253841542616001690274241782651730220986546093157404093301073397488544980333999506190321351516520121570769459422458580466103089495462121045349740477852667912704969650163577743909074431916369190915275694642182190269946093270761355306932022239592659473309816283811990689297613733499209716507385369313753997018503869058342994916009969367209338304687108761050413611622690780470323675120926684328379090597788243686400570308944595275122819866392602068312861092223314925392072882501093064739797503981821202809709632553552142556987636516211480070885457836895589978423043169355481589612133506288803834117993395540779768355306348758981746870843335271105988717857291553563333008877147406335399621297106839900569413093291376077650393389524967007643030718481543758099364130671343682956225664025529149881844195377404508319737111393270723034243259943112097395059723123040058079417557401206231928511380819511764283971085545087615403162311995991407667632456623271144011006694202893928791591028094902192805936572154497749059159023788328611682929791942906236412927372824178742791932058534884024155682338464893903787611145511508588275567576488238896355084030933911614716078085156435198593916686555650366082619342068125458167219695144627368632940824006512885607986308700602366421910755368699760894913723215676118105817990863713041088465749142457548089254193508504979069376047761114920428357072313543399074418524678975573825878760633254692777334553993288771601068468183096135827896847025947875459974448204472027620985753969942222549228039505914198319893945025583101859426582760349073122004210364648815356222466550727143371605146725973117229042394619081438987542664136702323869815189326106407987477778184469553907919872979226821868043206520611014152717706411560104567760773476128924829581550955534745763486039622831595904966169909974386545647224847717529813203466614917283393101746477220955938727492428262109309644987404012324524472592629170877973329171991458640907091145813605469030329835507904178698784249671289406542590425151561637637402720846396250817671322018553224590100072728824649010756235701142047736378330604954579795437478633299977132889861517147435667373181860979074923112662931784974039478973410435902699566081338154725156976106158972026025607776066280422833364180703189638075206968105289366478464721469261685000855461172250235692694393468278707719264280236376771896214135418415506115149784384772980211297851789581860568985946088748347290942716373621431277919428087587177306964209418327885672822845544263550345478606108587014596160770041060775341763684166149635500250246316009367793236622316920004978892738677403615997941790051889746830282292374934874078368303575599103718826557492657293213153512444816167096919140386326734854037993366501149037588210920181793396674380645013430504058082939079207105656870941130901044487790803255528349554787297386067887065688801962187209066852420771593574008552121260210539454604010625397261721515852585638008916324263264237439739391709279657688423368698832873317748119546987941570062925500685398235295522423472020360438707975338902301151955175211500390412037451369277093518072551375477263150566126622918656883991370714707071156358330210997835379706192010487059873125404852474649669562525214610691985119654450035558055239473817534294423641337785178476065469615238942751029931368171345212085601499847475329739615775291808752384407254613968947364100111074879609408483824072082839984744180684858902529619823785069837701231449370226336315230516833828638665487218453911167485872098300426872374435423558055173566059019481293431782687758384656218543423153867848898262098505340173458770930151305651773984716142129439665555876071474216808586208699658004812998019761519374397015398204046757162158475074899777774023012753808464990128068280991478779155119490077554266074466450394916235194704961522890871774436212649126452717795123309072956078234970544508444323764240940138596121150531527895432442346308666635168811923518925848807288509566492624885850638258555275885426915380397443840214533968694405916747942339000130130632804173934970227257605278065196094613458213522009702548518451892353848932564168484008118914330252520843714265574959138994046810664190823189723261901215281534998711852241504664982083153028126996944162593819613663844136799881026865570547972112649869604769639399863421764492788548888175022191393210363832617984979527394708276815558936014735052697161058330800186583629783370181285436712732358183479876645260022838744130998179005003451580031790563543860048363340144529725732503373966765596970542565619136183581135290401551429372058911436205960184088801521203741404898792677230138400727393170593136952564664570234738929000477937930036145817389322172389954391141975669805976384266896196737920524185717571427468086622280831816241961230589329445252528813774514963956561270422192062511735840412302363666982219297623614232149139361470241705941118220926018926317965965508561028032470150320044384542916792370196625484080955295367829576001977481649123758871603790248385476927908987035243334470787943802858199977382659035781460639609367228168465452739624946189861153603104998434247764965280184117240016152077993393414964956153297309832545474843607705154580617281692534936551240955174791503071472505282418896676769013255658082379895338473537392483248685855821478963111843474881900451533974688664346386827708139892280639659589819390241178765370782636342010586017823546274227371386078353500221675873166883062277436717320596918919233797721728397795276980388559015680051202144003535475234560972169599518848790263559326273547127798808318534967164773790786584670129588822342045076823572268590901750164362082339162730954038848952816823880565206907383388356782880439021908356449304932038251114494481435026242226919730645236809393335677019172300515735789660578481068577770115160503535250457455763963710188914340435240740637880325750697288683918593356436305038260910060716710161940840306239650774042594299203036737430389679716478164825572838217792021151306669021208342270256685684575569304577575322642769146420784913463258107268352935507063686083396534012903442828794786541668252907819844391847260899635980623689881528640161041703167189681589430032217757849713223084158428868768102233607282967413354239801367171012886169918138869778480840340284701193533787988946482771740852086567835446561711726900839486791578825499039492278706309677418024950869497526369838401359234744093506729757295997049949686185572806749837343719425807130978917505026855294379191526023983147400730457513144066725998144347462045582493214589111696730298999303340581334609394190473340456627631546839829358742949242878810536404332428479855158480152735711141296935737828654931186245290491835647835705544911587777903951405279098328415342140032916531582642061163202079964648851398855041163586282612526959838540807814239031181328956186907000096051343517609989964893355500028633035184979492915817398257543017311436744213012014341269086772708578076476517810093857140246324774220578061457251304374549707844551128684584606830242860852689093812757015706937194558478550387528348803775116292931518653355350395103134564348564322313087230811816389860382226392091424069131045550772420511176836693876813758256028036504449894177014859810337504924926505908390716403231484698703138543968336865886934501480110296903982254094156369684235453032575415817981477335365450025079870209189012741402124212779229816217069925931189882779597302020020684850096331855909879080489095855465864371681547687986332226086120965161174183597895602160599956678845952323731523206256619198174773238491412678067501723006063127987715449367748285835112876089518441862299599382263188033917093994549606170517158979121559218119969014214779970144950222085755148407965774781329247597330809820542246011815293510532950402918068166872477479867297397318527258108953023211480341984326015782174677688734355182349552893701547515801463382991937455434248469623171796096348698430659115064722094226829518289170068831514703247202368013353736165571974391802211296311848275964628839614141921017017741123690276884989820896857099789155344793915826830763302875222938445776168781560032505402527293031650697138006992496873418954780549084390076592982642141044713211122689431460021924246609367207793100304645890013829255393366324233733833194815879464245151810562972907829610013729946113766219349065053734256649832966998241608460652334558361457067855290557982057152512574988798782061181207065457397770003398782020769119007665501700274181033136665621613118688049639852048774413632181536587435527920281571056833347663715644832092449306267294045047066257898621763946982631812209737957667728578035890641007381622994414553740685291517890860978434193183286955092437872370049780893803169726053126062610940129660045594595152820132142466334506851081445665297268945107927559820494773021417059090928634509520919076428930615830222509310210747328768009541676852081733057255565971296955617860046006938077458376351399322210584077258377671297062742216807233805170780912597318711021595978435606776415524497521738214315718519385543607289810958897426622438418642251995235721547531979774910529876477077695861635963037193936600030767386514289585598161618677126173817604673065470082117283758834519350851465337062253606423897258620080253794046560342147345606377980932214522700202730224606125490171448200175994291137511983502693237033002355382725921336505469500719776612600070805701795114090052308337357694451428841603599755930707197956123606641134147977540675380070594328597506284644270860572958396300346060207530812411853216295735638777855373944996191557205633723690807379919252252415159202164121074010878812390649371755433961431694300027444324243413074722140350338507994691044400217117743662366322433792440672202469574818468272026814898260433088855051086432965762319774079038098942090575960797886547911424837226720785333972162617766409682021803600240142792727428214994982482677128955759837296649504402489072871392667564977911941566830399066393398451792275127833625627284529615225705525897006759887498826548983169725173342565848150725270142431501940470535616748726285676572457425640404606860051933452369670751007962679729978694816101557202567219350908153612044094376437073470424788381849941071062011420631298726086198831309046453251119162015281994393630928705270578944615232893043670223795001266692227496425571000587224667887885491899100677157829075557403056010230338011097734475592154939440367579881235987620459745975848156155610489160973096766776153581281448372001932424790085410052190573057178956655707185840552384317696234314811075024461974530255170376581692454364588076428587255821151383714240328422653774650759005982589059597650660696271999490611816643426495560654206742129099896142513528220987583537647872131358856006007734132831929956140834669561548460089017476298333435084697206225184898050760529851108364321145629271368199661272866707694252194234753422719939936348287595218606907920852419847035162089564971309365824843411493559993964688002978791591471308264565153119003540689651767776353072494420897073477071429257388849114115404375375049062457628662541979667008372244777065328979447846188097085487947045567405983415404220010369997334486997555634362174031301303933182909133782884183105419751279416508406759375643172269319486228183428716601974932526379674546634426798344131298162005630563001780385673647471229534582835071787807021491547246237222006064195704860513017806282333534210267396712274615680516945573119041330223210713887135579724095291580416416082012725662578934747929448466850192021210270601701985780080163316389773416546910457250291968098441337911262782126009758195243834894403422323398351166366169634932790463912544628050656731060706618213011830093340600210160879724127896392585938857017750703242974827173333123656486868062726949565907247153134901514487580299847132658145958851176989174921875586880589285510545219278551199320559981205026522299289443477064111124661696926879963464032848706692706164685890927256372058288124666407113355221064343750859635619747001727041434775540655699822863534028847569715770311764472377140966377564304726525765944406981762706545879364775769668589739607346636769465034587745725082385631854135035348158617521391525503817210013096967964267016945643603043569216361875568336401701495164259944069373203659225027743918538572288710016081869217025022252616954449850273629308763369091883498276119444988352401424184154608123958943726105792024656781764480119948404358953099828841243681555197776178225517714722677194697392391718323375784481290050488070184310172903653407699977444889457551252274287668291837431855875463696685631858279857461837555038184788897327368443740206909621043026459430234027114643603717695843879085377363731644533881444385816598627797744499857193650329300022307571299685164686332659822307914338591440991013094383185870056770886032313331083742059259421437899274335180714962582589826238687706860358874581404533260900166369668687416447663528778258704485036377646320706204340621940722108926733597916131312236699020316090737851742185317735048387694402303467287072151581804484848459335226565373206983035087454454196272086949750176360581643233619539319552439804578002052455437021793846368031050889069029023928999646917118824759756933179565869658484412426948329340082775115449287190684529501007649137243837964918347788282254413523031213147520550888758827646128769275691971337475584564464691220812238615865654637732127916487476004827975714227027434686553797758991468414057692830047136500145599972728434881049391593587839346704957655161708361270299336860777355363993215839630227408039339986583372968111755234381630216182069980742152629127277044738036614034648370339914260600730075000586721286131044891576984054077215273851690188845031156589495037203484171714176432450914558767384658548460984803073056504666613873350294416855008607961139129476199788077446405356111656908423352322618123084367616315678640301549028906906916499794454541996711026624120528160761975657652328545621485070017213379297669356099358272273562307866193188613737381307172086427211821389740953170258473606549488280075359742907090891004294758944142799589852395208023672596233638199356449651763400464074611208503799819705983978498323234400230667679515713723424807273634944752676309203366276721278953883728591906659229451620357860092851665707731035538339722263642838025342040110318036411117890970817741979074821433775260035335583715986372083006057447167732741393509762289893121828635373562101430443243996036693588604727773630220617819491343015174612515055954452545744247468036638709645547500945074943885840801285290224964164537155919177295272548859590296323418690563345664684467272908554847611107310588399465514750084120147968240925614465894369904051291454693685716788543124917862034703719026506646534901775243924797426283872226400834622127759546955205734448769927203491137330988910546513243078969521521627958335926060468080074685063419059450794950615191921281304492128606881787430566060899975688052635397335504978424225148066558217006692659077439872172830236303220127390000771124566825986564654457788763306916684015603446674183782976506124677999244628987818350049734298000723536098794157914308477808895954118300723736246596086137011879422471160722872181652771655142216782481535119799916790199631729157451361329806148872230640500465144696671609248414841213216866862591519967642657246999371142985198013655733561692130357295534267660959761290975660112389008184768837693507569827339321236178573036556859475948574198768796658626379870781136973660519770665323921893008903049716226619123588111682395512468735889206840802352744060880926863359314354999849792232413353511450357023039681792361189617530869554542950487338269124696029868174641661340920434902623739729670025918309689166284044884503912493167025218655182397627776496893226337279402789326157293331273846079859773486791625386651026364340390834239077150512592347330385667236318593437440224933322748607665356898943045667256941593689500310085961107371318723441430825850309166735458451410029995591273943841166348705733351698109981090487587880359517594036973503905619421305094381584964207907488745657952720434696078089709969742467545193832621303471629599808341923240357612392091899390463761416965058608524350116826348270949622593004452775100888213936024158242420732167500756035953847051335155773508452546028103328481669569336681752497397185555859050229828321801602055985455629992199128823991013675425357533150061685892759387184064111812361587027874968860851361117161957124149936747594825200880600861643118017622170057036595030885919704682107235715533947805302007426846452236729363887537336946741250378350429317893798158376760939466905210942616975616695255378445618423546969195620725418222123743226148854178365247387259962830249317296808608865463810213542955987025862162653371208699455021468249811364535549712517600512054093645278072225461475367343120038192958919278084486009567792732318051585505390251236362431550194271471201544436820758433735782568157833636703125440964318815216272229362453877572511197775083526683794704094027545873190507903179063423973162161270280261126387879790784874922313347836104698826914415946342241382925018858246256592891581761874306223425620627058733078952632778315033898336058942508520138103217600445155175388953788493368885006493277291211081851895002290630989070535079763813035233178479921106890689702670920888225412498095272242623350889179438304327964807054701687236713206901608822026203900335651949312749056755927218632770048085242718242693875028946027231420259036843250119390050232921910053880613307588070160283300992866991760235407462923921229690612249517482660688470765624174342101232130485885032274094173427209105549134740259389894793482582011479616880779158460635598915705913839108976531632088131741972691329539258278119193105413658328876898373220222382481185527977534684167773356488515167537989077988808545611821644351692368768017906195291315737589755963233233212820798969696105698798766061697152328559512841316729649736869096671262966107564276361797666186191401912464047196490751680848818979259289392890655477601913737200283332857964594391524999577934677915272828845431379198912072869771084254160551323338914871482914912470870184434474495784133579068131491320995703103395262157354818289238214034222683191967430448479374789067468176333597087827873182663241598511256862202962186181531032839771017168297935410982045895696877056044731089413610799595820547011507462100658781645527658910300784774253585072419188925086082426268086374930938755551621796649673114806206504125703775431687966174025809864303552429029233078416397159059057176065822226500771148731556268096106930477376779529039818135822927707147862142423904618184136544945379418508212558627299449485235643832219508037980066572600999811377885931317849995573326812585097281168659240063873382723485158355584302984031873610412854213474393962832339587009929470523330828944663682444998539397178936051344269834037646938773486065388762117653455288720751928185977375008680327525552966565956100635670184026178474858724257924768950701262177329366671396031515571824280837919398467743125778463282270739414810196198229791533339101681926668677018082979114001551096134638592651401056364658660259768729244890869121048354285626138175790683457080514069556404140777162065335876694946492257116823651191952177995721854003408082855508439916505219135463736278103301298393697592863341137925335970031009824217317599052119190152353419890691618340735479474466265272217886013716994953512605036099538703388777413930762882621889532107119493204971536892098476739161443973103089157384710907444465406545073548604843317300178956556103767247567644681171271624254772458866678619710058978577910602998590419820057028910630869375737378014478878549536339812271944114293453044174680389287987893255730508533916590374629124192512356156692273041191443698254104358023976569927827166220493843265865832693778324622503269494394764365155176717331556945123997841672477648956526846894290103148758655566451151264881843673846764793880463276356848162191548671995763352407863048912847054738092146906365253475054999977228460813627753965007368953203944456257817103636830470168289181958391410143256512255851609770957437511878134427579911444110179371475486102369139186282512060009788546327605294824094454114888637308292773479463271603798157311417385107141893301221504294474935404499153228588125570779505752394763623662176146581388482695739397416775148375107861716126780176476251729445429231401516799008248571526385128382254061217276209414907760482931983291225112238867609354207227345725897285896755753956742307327736723677959341497361017504898287971060329606022145384097808104101593592333705464201531770179644889372793336506608231211846206155921039078593794502937618793240525630854790450279633374253242527189094222738729784864688011296628754122275880160095803034757017032235085103083749544991502952170221579941716583793015716620578814836528171689238626366407098015939744939315875663496748535993479737984528258149358426004795337642447625835425817694027822786420339116176215965321679872870308170791757115066860073090452555777194277104729149224299112292151222964802219853069519719086384898826640463778932815895275830699235350081291839520191317220575464976010977373148341741234231674525352314290312574487036546293174092582234574077866337098078648426335027933424751376125528537597477270959915346960241154590492339457520415653672028750229536178529098972895914181112478774564626240194839328191143391044634744299314333857801949404668875517088561497630651991362122763613420763545949079863808805133127609007908632735588467843274036293176049321193865733398703837457161257764941875583870812200624740750044293793685494069849394458446431644154788286790756984927826370208626681318738130319332055734870558500888204081987466201660843372402684512937317028438936840596019583852558424492900961694918670892463831797070720509089539930340752689021561368323110060787940529239699415780004216150659044035723103726209616873407458531831455137230247685934382089633206481561969712674815263971587812418115292173555957214766432530702474087988921601043369015165488308566986424310029615887713445876091288583459794228858126145086387951038919607882163746307420067097524447280032309306401286399459387729104492173386664211659694089911244785102405396408997424292548114797995734705883942108281947771524173361139607078501992634991004283095216304105937060510353731580942163478231626299705788174375066656347299650712981232422483025808862265435569579965974245440565873195834802279497636350921517770112239639945542425147398359990291877530438005635886353957006302726096843006235641884329713166761313102413120295118025772171888484761715716438705041133036044968917339738049156823903848582234916485570344891220571174561304079477071201896672871563913534336783080320303914595418798213326225852311061383776543742477311459353053870078346466854031479641429767886054984441742529355797819601868612164743318709930797233863534420393364313469428859378612359981310136887843043923543282768659464393597231497559014165782556669063356535015936087279133120600301421793505177913123524749867850470678630933515518693490808625883243461095776952072234511834369905903318697670748517377637954140234138664392808325721618291520062436072439764397288349185273989922607656483245966908198918876474759667776610257881431831514027330165232237846472047735449894250673161339237251907300424656937538601559647497275008201098433673407717215166387497859666526329095936985283697298442416059926937015085728720380812320590644800894673710885161088758688736243265434937149241089195681068256528926221806331725465434985827437371545824972483967535336526780764044636408722964751790889605521686522890503212391311622786607247516206188677654843730089443498844755293385195401750501758821641969634360019870535609875378569733802567993544254844609000939345743696195761811596524761343587719231085380561744065936542757751273370391305552326785489444495351963841012799502673408113799503193797164158434444009217275275279725967808150543013681849376276183758301979807012935767991455427481050277221778848738865840165204647169538306530174291127568899269279369960450890249771998902019281143633134432836391025255778885082322864940022436746550577386580234590239210283985313882625548222791962316738549733176543213951148379611173811422237497615989868974803864112562095451737881311353922261745707321139646340579854868426567408908416414537638862730876196605007397852480347758593110127590832761559107446440918543653773804086988727509008756955778815471364968631191778617246200874490222636081213112344501382876046940938118616252929221598443458032083447842783342119719800737242350614785731528201279959943982113941003838663365366663838936397614079488817098268228152060830478186560484457841224273468319045419335431640053823063827308575653796056382338867742697629328139811292986414995995840459059461841254663196880950787876320475468699568458602105695921558706989093427770655934080851752218261453200442447370667331588782980705769507810435993154041450314608212403758290386682013299904242521793372059130323730370638197013048307217143614741046521399582223840914501011630053292629575154899103625997829979245796229365647152092779211300840732791704323687809045987863786238090023086816441456291667350989000761276011631543679441904142889905772110838439347198238867591821073512865337276067354025116385840728332997708996794545806298541948196051915923291645999303353824220678711815552507898870009804547589951267231928292681045449863141626668830598300417127713490477377624217176559415951174215797155071114819655668416071998085565187129246034519415293607107907884508990872395099458093992147863029217161256880375721608084632620609151836860944874105207217829343236895113654584785001141835753922419139778594357378927741548102762879061173664466589451276530583647043170184481560516937621419168942922327654455997640175842138226413474062331315225193658855800247131912102215932331124246502425262719115432362960879592756857924248917123688774647260040587607184297748654855551670719356639714963232140439129601346793932501559818342242885215497210816804888871173065050128871270633821580237305457391548216425225589814751982626277086296303923335969331072334042592338358138959932085474449193973023527151088167888970018098265540575482922132436626885854681273874477930864870934735615026795732332242828823701643288797263232596993939989535401777099740100552186533586610903184427080103995270145460115948421218399643891987804649747968265636788356724263371640532972115147832437023617501325316438659168634390540048828585226710686357956611139333995148358151955061641155002939737263094393577099287125255048656942599023376950894113472456660964860522478048088718923420331837922835122243088698324722394812369845187287559505937702344071338489192841389940384374590185415666566268433475373466940578095841492591770280701543584527181013603674627235939139002716085379144481296009212541311515671846674173592606991398403997140720100134215070956689717410017484112514178174504521895689129505051158828721289354683953370150577227135906670954660392466198003172866180699710823724688070244821493377917314127704493326736088634330851644288381932356754948322104276834630090711368938532142435761450533197251539511157556888339819552281128003042617653635712378579865762308130908381542684054090484112130061981738298655629792141919282817298542209683543933572710136138193318165950621986437359411028197030813332755402936214233494711734271876047699843926543119860027059465134618897536359367567270106777100587220112536748549235831040191202973584924873091795215073038782160039812177304905370524089263189073926498007239208904434023759803293717851741717075210763056691609827299197570915152743264509639588371671648656127989706541864466644709256682865915751304988363150241587865640152550188438477763401422008933629743992742374375067234098110155170809013898143251765610084985487361713999758919535718326537566044464842200047236717018008838463727013127814495242717525307453387676914838547213213871942519422794658135745367776367006110645668912081615845550143625617505282426268627696429186585380712233195163922001744730134088745928928513032607056134807623735363982394687124104128164531805162043890684337176572862484696009355296827958049175369591695920527719394096045312446595832016911369953656817384689371253010749224904206127240867833732135754354324361891615858839990256564023228203512669297465663891009634606529044998035083838671369720481380324060243526386742361065948286683390505510526487670977729542108377751753530064576398805431682887191156658718861959786096945148650166830577234793305147345298391687833430201626709994083333662789865563642881378605147036334915606374388622141628896674151201617254991242729142476531817812009517415191871497681892256357970085793654583918838924141121724238878769484624287092615373268200985907910823316591848457561878956309644966367031955726145555811498156967943738039625571408490870687021608306121537832435952944858971696038005896377815459087138899303052505405928394168444479810368227052079289381789709006268158015406376526106208019900954003480392746975674993785606935092349384737679151542503379936344195790226760415127174757268925748905034899248939532413173731296651740791255882529786389222854122925596275564574657744305811558312207618941266169765699036154168090669948590794766758801813230267753040395675113978459136911930803329353868983486908666743723412878098012119571034120703206386644252408842428303055000205268577684969800226405407130407540273932357715036713136098186381278735003202479314127716564376160064500858179325020636469861591555476503855019587235693374446722454429415216356980865118005704978527887148651823608828822377254958115836391558719312627738110582184741392983598353635983157405755785617073279781445899879917672104371174779038928098712922297009400239834494204433874899124203651200719177321249018108624759681049134128137795557691352954697497153341164454144487560138158747087754299474353076090535533767154710250234615758320686440894420673476328820385836365866087847554931055830930400281036927408496767268821569087545202929519926754517455324078106320776753720082530193672813314367227434647069662510990510385056849546867674368739929791836945605500989220718744512144312437644220515484532720905492041138773095243345428296199617231141214811072467411000615728129898350817875596461953041790732232139956645827002628664238709040508517560615497414942671653460757901199855830234726561415223273508176875985671465603606651685859285968566040142758383709313450343487691969032622176447875699997392796802449486960095973851143216474929229096157991014772370934628361049820192054700834523231141700973572044354042151659775449296204814916193098504520083116265188453555561132460641796074361173126645912240513701841609122301891857126833879795130585777216934616312176442011181122898926652646938013859996795301481811753748205429747561372666459000589979668617395735528540063161110470152671009970141434344033108230674274749529304581688063235349051623304179048661046271388428697879747164735908416736301804214270536149094372672491353558747966813841493251756656645417137108123605062566653577201064064166494330102910653303880820412220069181529545278260726876357098279812333685487995460942021594599266697229073151601475764704957184896689464680447593289789632494279447245622855160849591186421486973126834324859691049250196578543158692215626874786167369158636550459849354703997587580996860094379994446659533211678254010807997831153636746911449529082372457640033668579027108878955973438089144354589870455686929494142377741574631525339036340524510821306966292144366913619621712403999065225414146101630527169408604574357590861407331110197402595760057704122820780012167958325689773212001016565008710540940986057142964649551054104405125435895846678194371567002478974504889151859609198292975045177422815053721984739620194166487935411683666101806757863200815770695108898002039634658085460589836132682534718880375451578277839653401055986965830214360813931550152587160055904692392751390005887689741297347387302994951247265813559581233421470242260362152180995241605523297237140777826767189785000479434279356294987123398010996291619490518623251557881641626899784992970816910398621731797658053643236148663544761799366287708356654852169706269882591643491373287243995288739361898411086793544117448933988059076310885631477892944025066683254785140444064226263313868224367177403900872587870322894463344226783681902812808018101607968351557205402237239499960698876232642614114682813923433818581428513624515908815113902375309018677009691832926033133753244704933614516275949427682394734803755475197246506086485014006013232073943016246725303055750995070102909941275887009539703956075274398337904751115196479952001850478681654768478517477512988561647302709940621356602180092030472990619592001198103818908210463257089783105844940995154136101507484673145153253995936505377244071192902779381785779979583481953385454116156586373538860325658119331832727710176280604065362583863235824250439901624859753701221547596254100271712228295755614324633138835119465576126289101381206841658587408822951998710906508595627852816469480920510294973759949469594524134322270679413089435438222746037510972182481944197524544818143066180698907897634104461844672706712896791927195618815377179269326445493072283120745608008878767996792504178574735884632045255941669289887760350051697817038526169878091172389928989250042261538970418406230367282044391907210010200289863391386283847987848447248881235992523522115529969672545924843298288014146277110606840343921200481942151389882954422314682155816566890620122018808690416753957898733481240219052550763525106837069017374474260761888995533639226276560249496568423874296209611574690637158866023515993858618950525200684700020615299136791873462403817848734763653081163493507649607617880010218883043681945294884301633636851902871558997309286016397658042166810932004156496447734604666029803591140258922899116364783760301137349762448340871832385452303851873840314149709436609049804825323080021038622660654394058835620846338438997316847058455248300754943971774628265656531241903435487924600236715562789972555018808976616928708964879466519286216629568674206351180779747288777635193920259859520717531152879389310197764800434754253125340645817184724706847342437072813680087717224202658614259537076037845723465810673810939823095288414084330001271392746296854748626171890302552414500966148441647636311220287400042193699770828540741804034223058432864139796508309902514341799541722069467341722589843359339304108389133501196787711665235692113825337012774923015865169526527545749117396347349062769751087556591488836042223770733077418820571761786079494718132584123663580175440083729230402420161400512481138983238473791812331315665236467022032418063615867702617986520598198029963732972592742994391148016914174767730199660195513237127432507881993201100793090929170707570685585204427397573829678130783933970086865743913177438152890296224068460443812599893008482622409369525622673721929860071108232690826262022071869410035047280224402049784203240986538168599339028690055846771513874055463607023243809934693367384260229430231611917404078091640029572993531245427212952571611635549530364577906759719139041929585358516221318575302291117782160369909056103768890442310992068278814000270459976799039239560307759473605957734081074417388100967128144325144123943669286786556714059324510715164276151341631601139911567779195703783968318143910555116231546206359309811195197329096461100303135442794691333466800737942824224452486231014987065545367428238700253275948232608861864486520058673517506354404606588199265130104596240286969482075188030733215230015136608162409110731768332694905176000089713082523849380204095198695989270441768235872882279973344399700194517746008874253691640474848303756350612363000014085502493424117022932419638722622983507038964953991233180859977228141842816031047790332371986242033783879919438715688420987445135339672574591527996870860304527445239902107178561236287221136226958536669524924770516160339516638778365651414205129999146942943115549457863749426715266092976507836303911297082601742725462744996169580883425842942968254806660341240365161442625826354180244874956602400431410432422995970560424126967811062685119079757691818182240770549970014406503923388724858072347748039566101756629125319990343975477863200297078994583738166298097471730091718376194438038377680932127255837618770019582532342336505107578319248914735088982014387719634176751127648262015327879293741305947914484738571523283422422584824620293520982959592188000044926634142827581500844242942374047188629096890084113293632863385622005764006899726860586213487820676840313911747398963481248970950692906782539035383814279090452004276640627337812921528252161815821615826493483951393549300701010007951724422399214740643382397196083062758349462713664057690987993069861077325156902762254680368388859756570535125423995127364157401015394332902776284418490606523950269439611716562153552860944924447137291540096754784027092458585842455923279570421959376339150804574249937681940552988927034471608413264845619990333102702683562706728753926102682125804727396900828211910251463265807148879215502365084613252098645659609110291776054503499404858966147172958240417760982473814611390728813853319417850914163682919753965115702821504272631034758972677350051133272757692897950704888648786455781626260849174053222034221871332539580016230658786045425120923071447219811790390233837387738480906628251641943347082690368798136744277153574907089926301457701243647847859300363346022378209937431866641189442234734344472977135368262011688445098892208149753290758213778281184817090496185574561627698517111273956166875162775147305284995170841116061284605273600780020848219855627480707908063237604352393985915189089584144719485407518213780673310665945849755572491366445831253867779213456024088658935667072255457592737717615813113113782744695386823108593009194811117713839500908648826491274837066022199488341262728082294448790156258912692869703978459420509886998719928874711788542087569178084258939634848625727565187312441184786514885753794303757960271609180042609223855631752870894277937333923092076827678317127692346678698135540809367238031317412139420901767519332703348023708483419341005452639586293451318705289584450473586390607278846849062350494215087291259204924499932990420320086922198270103066091788450531255108157921564362441433913109782244676263918358715290555438293536136650556302124417889295309755462393186320048881402155027924065195018931557890316928669722013757659026722459972094370035183040891672349952836454869824421392265374323056143685260597074858917438107046006218434269453558907032160613254153758676553683529547867721297810814563576937556669008040672872181532865657777762517154996068164297966908986079118238570575017443359707100633728724175785958583290479132488023941841356853556115038629479066963303579675242471636636382616903870588033417011774464264008177360515992378814733769619354200342679149576256394657561839090475313249645454396801824301872726861412038067086961210915003901457273458423690580197355888551444663787375590468715690982134227429632861935601241725618405808724608475556676158727040275831968350477457413782409532109539739911868104740119774416722464924175618045570814660656860864614244253786727694872309976002072182067483378907743542671634218679526942399032597388270617825576897024084482179829228519826807917378367281062144206659959832491210662062407738095205825636714141568053110222648610784401242119709608813064164947446576474563887351333393434423457646679593908310443786790419982009000643118496344378293039310478538604333977490510611816832744533783096707273647801721542730794993593116448401444268402038937080889123990961728455838331558675982510322308935656834176869089918028868434115339443162994073146065382719169250060423264774774845047821206140271001928039250063239654189167430074173954140862769689191460130187280828694112317774831600001160643727268820307064649565847068703517389474431877963426963774840522208338174545901569837724407681228848657589643304942869946575984610523982441762552796351289558792457797788520085545002398821913687670850533171653163862728896056968835470759400679266063914229248144073542402036610936632437311054454698755391781450678427271074189017308260590273783268204134018532017129794843486258059492458498416835591246522171947076490422299838909928125567658691947151083726556719421158536840298448105768218809450232481354056081501489260153777204324302379526411096909852755484159766632633258064165435233810939231919349241663552713989640784774364308264327524126288698496371551899359479083329572912591247436724609771107720095074485585918954149567746648616698512213396413705136245406783597244258107852827913806431412660375256800462914327544087025617155086036709843070623299209256044800958366722670351441227566033901585904101283051927240022725464343024245843326917341765243201141480723689005486405495957060424197672936669547175471077052090064233412591704288987657802492598708181115487063855824640816459225014390277984177172945323062964074357926676264645567720890110786935661715292071815663447024729050396069023020325448544221697119544979273707564039401735921703937312336668955962650740548287025004547117874073870047573600284501937377916025506684224991361563615945854832616067474591705015587376583972289311650617146736002677269318859295905827604750715831243840676466107151256884003111881011717947039623885364944877982129937397405570528110170349973776814195782259952913102144566411750131296181032813536534430298183500463166775143964326682131860231423633134645401206538519842035368523814863102426810688388586806180341892882919156425202792731840005806373602583278194591960600211851069817797318479685949010570150022033130491138168616510618869118340953872066992731558686063950023057485721927153784103181750697962110039926525347223215748031644063496234600073955356021264352327197498998961708357332945032090226245289693076040820404590775223992163237096907251924143043082907025961067431925953280827707039834686452842197971740242460164092761687512572612112745501940730990619056221326128997727515867974563883322281141697633946211835978877899265161422102347941358127750157330251936839605014582572306322328171293427958169704975784235392367984881708530141480896555866659292986476371645993424659991022657365674217621297615286639033153619985852015317967076433207397191194523780434256547655353590098943531603557532059846232865767205056566440367347869664826830417464343643465341256548272283074222942447758932256613792920164531857419664352234792506862530619630423371739603047305004296121878021328964696434232947697972094437231488028344573452997963940466206820538615054474615853570712390546236278877916586906343649500973715779116808926535195378431763004125658288139265215040041702830195429511248102403845989093816486748690262444073195415179807893636670519030114325176741101933614913129806883551703355796417530441505669817188818435282363113208213361328421355148602658709289488710701667404306426440344198720940301350198158313944578148618014864928075694091767539225415431622918606569842795344371767018559352634460351133667368506632557330071203845927330706681666943014584167072604996760207465909847812539732512682315397965114476485908814800400453833165552761449319313139681930797172122310626519973972758140783167519186735270489604920749347765819097256579524986832885555467296786776182979975249511343303636427817483025252260185585811902984642110240442256098855593819609948080979968808852944919906669963515859842610267932637712800167457981343264921719228769225837358070474855800249266075631128120589975609142207694568841541715838126702725372336523991911066648377363854334523428997542545261424850136668751171811133227134038412345041392547851104006110575115422194809021579199886620306204864396228939489893523120741371893655619511888174299364347825229105829926122347282361570514038950558629845962196503389601631500319006603333835696513537410566551731070907613376062681417128924722316868712486977081050452978586193983448541693436614443354208635868080070276026559259800304988678604779094954309421195947156497885455164643334486674490720330336767953582600752493073862968681907180094192741340236693490071373404254524076425082374327216518385012623334565561158195865063730331798613424062667034002375619623017823174327006510366861722495114876278500676166733859585160470411260208944328966847491720278885376173099901795886596171454918942386598457642866096338861268436420500632436261753291192981766179842309394806275410645351262661543404537735237667962817345550748272728049744097672991139096932251843275207845499714535992257448445820343841456779047345874317385655849971611338293776785135615842495701966547635281269380640638739758817478876064573802684363244383624915739084145522672625450847502812530210654123285198040965181800165773589477233231478375261644533250462496045671891052537069019965742082007786206229463912611992867963073244346632754219112943773011646079462186208150230714850428176294161978360847325247134364798106005415668343993356960990339854884559601448878606489783174485942786301081002846193817793684639222182011331112058642551580718387188544010573910538435420040757670778565656507827198392392574387849966384122225432028734197639175499495632261553986393310788228943784186425849723177993284297042844104776659075189752676483278986339177045389662460274276498059054588469419480416372561984803440483253950001262064096031879257919937222240258666489297807436069474166691115575204695844017572994985994536147836825249125088249901232765727123866557003811782031775758377883804601263791683290104495640441845358518063281293364349549050132166639846698963047067779041692114759747847458473427882553295901308138835138004540567221055581384056576519652179152937347037544107183554161669547331834550351313675074149586616717470837937189081387858304275096881221525692070701446264576430382051804561014645923636726675266603630740555188576462212627812715107198366203275433066844314031301044770162476468265341677440163399367799737554802086643914039810848617162148659829181613273917570835297313707077419543953085889908517693767344964034457965866881250836876491855428846329500291759496610926329744804270770477599276949997626517878939646338388375504754308978482451330329308504707988649245252687536413709746952612812245482979508850499914969807600272211452622068283085105278899829589245839327184730193740474933190683365520649931622025942244130023426624601072460070002969176802144478314845009983608138419629700767439517890412613567262960630086780169427023954153578284073038091501572528642147882500151313308491869636409108124874048820691907985702920556066517599811350280730171456262516144824955420538192506446695253824610362289113284755563724097957252325050403243166495978474688413760499557300449046955767231415744921912900119007217039343571957027127374983607674858427233852972872498872358935603941061293846068150162107072996981221542207153543106991954891521492107640682332699491507485452899832313415434485093802884483906641497548828020614595618509273323630702939156900359412775489727633752878949901961944016660163458021533570821147472747056762133972375899460979417977032766996847816993963627114463808888052710942747009133676651788306927982613371371246735909090387196157339115591956005950155096405436209913551147556398044228291547669448506276185987959648607949949867959123704870478694111060331203652294024390188447463530066559550816138254733273668182184203123613599861837475736307793964516419764839990859672489045613784471386929041003817642209406509521752308190778438401981188548345747287760776817343733550466257822394113235661653990586404938486429633966655548778476723771330746284698469554364586012149027951762361361992205208190948277515734956942504357975150069164830405502420779380119097642240625613878732843234776464462936166566610019508435993966364048629596697842414883106182194755480519022735812096895791904203742148983248530285961653161148271706136381884971584246896275734912540871042449997237692265445749520695254783127318121256729339438369087525461483754347627884056871129457094754815522447611693630179109139704033001542799365768302725782108201675835210279704864222054117237646014595633229061758089770130963213147930185435994026325876280102474731540051629369480236929104428728506164298484805953395133270339767169967936298823911248148435546581936658210556508750508066856180076928234330811800878486135427562207974409742527154458321014618132607453717292586528802205314825988768170373113093863265202594454268341163689705628281356788803886995496230250841301022961170646837624616132802771444024435935160290697620724701133277332516430214634489480587372381678362353165536196584550053757935202176822559013162658648601702667614991301317053655364796796655336070879437019658609297061346892255323608044729092965484415359346277391372693226971577441399831618126151524365961798655357946500731088001722075771839912696255966102575792764022521356020837201946323512828599350663442605870606546140766532309695066137566181532481880942132283920747617308152657088346826175763558932166166763991831800850469550585840362579840050099895745095244631584936192125860460308063912174978870172717595138545767872001508397708578199056711961474552622383776657277090170713865921134007697909897659731020126846920821913366247329973033272916339925682490154364240324788777566690003928322168433043905684075686389957180201940538833724176872186014102218762687987747163535592349276354406597519561460541694035720875472047029050517803325015910932656416087810481685144781012789380624161464587967534067235700726400369012165102896034160134771461874827342529125440816545128948297181375539543122561659187016428186229209733176060991449280303030492932325958429896362985691992966718123181824373051772277397787052961452034436403611054807944964096621270978756156871143132771042035104465951593605027875586501758621246207900179262567452431117648181118639255622415627325163915927323293144024251195204594971070495545493773737205778938096718812228723516328894945553334890924757158434270753951088516562645058928305428044122963399716195793526711706277316604022538894520697872376296458330757615726798376773419307848165541352193066374075131469211962206461294817957752932201516278397034040130230261588590090639632492205493887197542260738259503328738481676039738306679229903135844999140953228664725427923055405584575767412863866776517952300641960270223436010473364064777717947865008554348132150793641390507570708041305378098167286823924860086758266703457409310028566850024118789045526411774990055721590255961287326063416977400651489900118123819601665921135724826139071617366415551493014501636990497926313471746322074881822139630220700368321561917814306071986624226119379481549237912072682307944807552022552837084388457009100896391127366867465530175140862208214634859284040203173282871887824292427157842566757989466858011965507078015806387515670370961969418908682601739045017427079428743609463937913838766009850790531451288479133882200303884943088435275370306053826402116427469733148016577328338632817451360937635539582758933378046410832755492039742938461776641286530645703410959277816487614532305461003129437421847642200827963928807685965770902687903365415004459765750342770635240782720844903515560427304593200756612377076951594286181092041204838786422546521215557823444025711505136942157580491826580870318670776237292152719072106930874287103338982597244870899137150294535843592887614884603041449603783997273804044712473677094002588617783983011638524294457534948593232485041859574964572648819079697490468672923558941321041917041899894856488462945794194436205439495633996610647378735447450667766354260494359556097229071591053032262302199402772263746383666119275165130656002042583228240620014714477867997600614315737352726591431862677298234637671302342892190204665633384501664157488881651648890200206910927936982977550850860242868988038548267437240431730219744394301743977043202651696880217479825898000379235385974633059773811662530613568181914258914773482108683125776250089453275448636066447777659800826749148625030558231564031918817947258903650365771060107156327768406764881254205643167322365519977340139097215756021356504528508363562129680700078398944004873394079969856183210280990552861724538770801011849410704846190113622508257088211246967019926246132471396887486491216413343390379941716148229426348012223764609834173534300176544555253854692684203121370452056576670905408355216518269520026643635108946562705343723415394162021052316558142578253242619637749870128926149589732375044685298292434834746934443471224126602127562954771575201598228992563586326078436589049133144309463102646326320376691317735884142244941898795141408513708193824099315846942899677202837622949405348416263177957994347546173649332121926760802912784219959836068853721658539167614567298697794771219012448190253947270035044112880412852762878328306088386152097194503769615913436551256058502745458403261436529213760962970887343616963734227032583760278889055191623747965224053486433456309263675178216379217689729385793079982089960531199787733170907659037923870511236285244104584039486974552760576396513604387746364619153588521778041177210046835667206719248405714631114943146007249273579199534317809739967712375012687736587172995759478740986993684089704389419222414769867586141494760670879568123893582276354047173587126323938784256798096957418771840445894460075725186353902184362426599994050459589840409243981249483750200073609544789906261007314529818178315869546719822828215538606385271106112272739258381480673524456785405714007453536828828398576551788661379867763550626329686270869548210274645409250237179592051995911811150399494738037947647159728337459750358709280818633809944467714780487306962883810416546902076681276071608194882726593687230476659703572386397159729361529511968586225215793153387973436184642012969977143546864055834286076498262400911789184521512971148914706849068444324789060139906608013133606367119162306617021137573576870175414907605146357415990705380130116479421092713355504800455562597422469228179415943875828319898290074823912887870457321973873565403882817754746203849021388520949443221309779464230153360506574162977002992302378886139748747683147430826892745812606020420892095899675618932835240294240289866441003900147319318203187682162990379329791526901113347359472816658470010603171707465373185035819267159879293927032090787025219238533499645834333277262528660461958999143695356031758796354825380666490266076728108041221315730265700655568014204343456228665176666870932708309979199379053212533296359145730525946604858972004605082282220978955428750429621473654960139069916846164278203929442286867995736611565946211260581608653072967119731936175364080478554414353313369822629614393184723806107082878878614642508872911158794910646520475819488773706008925753680911281621844701171379482702385107720766395537496494998536957051460787516395954369699133825362138604954442915508005703830028119091729545074000537237362780789251781874410607112315523118283467263765777747739587606229685847509440364066971044420343471970699424608266525166062839573018326450017791063461379279099138537820895311976097832582757394972712179960489208853175178974038487357314007825718267221123911773527892397847476437425681652137730460168330961728461840798546460068029840239316230606974135601364970342567082742124081990890799224209318044119393303476670460618461774158661376313931029730012928745207195766642904437281312483313758682606300771613102061774684203676932462840816001046233143333869306146116332162234156950235270305723594066789557914971460917187313911113602084181047562530046278558624487399275357837433827202439573186548542848672833842254994974421569643965124182453141821088425991089966067806050812879754133291266649277561750608973262367902805383885242554027460607422510272888425883246201337720410730941872280912825288329195381204031242459118301671467892405351262339753794383057023993248806519257602067261444704684947632487185093506705319536777776847250014592446344367097168102938813777051255323713013625119544806700379696455614295863139413088133901232209568343897312195226237485972887249758608826893614682121097229837364163303860617954188260369470887317578769371196181635485484906577066972848021732994959187613701035701201993423112899519223900169074109075348042491890656132744818778461685454141467961050489490670227615543702765904877105674833251283397630307555556816492748986349595408269253034558025316879156951282126440339216491061888402595567693232106769707128732875683317399971494182317479214708017593853523193536249493909278335101538090198430381044924469464443488666054642669205378580273925174419193603460590756156147020183325065666278784466527617519425277742684864546697775844755365072965115481051417155186421121297421767069712631102929779130134666176219258620322159786946171091477410433999360134116739087252443572607233864747078024103579460050570424210124841974072732027962260403270156316740585166527689721106156315945219817109639347144408606180849749168961896912416389794308574686889706073802847469275146672067608857755695485476751139317323728742164992707910904583709416355673941482108981492531444116422081120845081487083305643591280064576467211700625498399840604006761668448959034819563963444541518389269342853431821217622180711553725371815880396310441643261612819033424510817871437810139306529260668619993036857145404975392828256973221408137577342540368495852831761088404459185573196031085414748431575693524416849476290937680952885217883062027388854334780093056665028812277947030154759679983469701918143054531192881645446901043564191576980314250030838146725165941898830828366809413163946526622783709781253632274106232935193868059545951707167478103182956358998519644062711314969548214202663964841553505398478782480155214848645757402248934345604961695267531039579613593759643359737573114952007991952086107308644884361036185980864840637009955056705811202251663128648882968192098829220897834134776876986595702652840392267676662224139821483731213166843610055491781458990561713999402444481591495268664960571763091599839959316651145597696007390739849463477838639406551037013467274317149949841498136289822471533845617194248849199602184690917072562763770659971936498158860074217414578211825036907101833304218479961446720427501074291445479128964805118697534680749183514572187510105399820511985242421243130277163397428192578034407809154125840613698149004370024463670276938338529512692969344658519614116586808048436005716714153051368783643693442393316217319283971927936886811902021951652727729189081915689430726944350826114995060868584714730537426181651075298698417070669354392023822751261947355812917267627596576102899442948977993084336659157325770535931339148341918705450296900769395829526099952833826272715337408855728408281783792125509096349932259242598689263583807552603833618303533036405423904861445001119670032113246053736382033608920193494127285718792459006504372206186640018050970731761620926728500509264453494011312913714549409053431096971413886663383756190867296271798199130216483091609875852252245001999700359390027932043579341709247002842043946051863688215408398124858049578878387796113629050006613923523644217835444226497441692705686241722814015159125757688969006307055329471289768714183054057418408200472949640452982284814936220194239128282184997906666558255589955936005555878691373095004020130290683573270594744846257478071217238460444048388689214089989524282367721628143949390355405675155146633163856644815376984570254118230020840352249302576839334359689400914556174748226743960521003349646255673181600103960801104340918053636351516167762311884542696116398410661169195845744037905039461738198264681369366646168696054970782913880817193484938749986639375856079425114543139262389387090927366041520205785030290501914847058082007203191738023404036541200042554995382638685204219717750696073007478073816194677656760508359708110908908395177056852848208579965706050129993630283294474829637610895964467734490374169453776064294611009420256739317597524479422834446316210962235537188051028230884235560856233356549331812545740309967794421877282839775114234079838770367952012447029965223677510083442587903365772048568646587787311975559058306682505845415036391236692539291713243392490481088768539691367635361305629253340089133035450458820584931209974311370430577737460679904595694824024852217942757259419209471826944518893388297750378448498336214970030242279736604318968577902718420039523823971399981145349536771389000193057937000867057359348524459378963007902158596106361777930346839750194075425486336692074714174689917248000853789557955134126291921913684107234675625044308655328196953952779443575718591550845506379602487794816964291495616283916135695703579073790118024436153609345718286974190760824568079251827972548443092224114116078739098123472844815844873126536009607631788776180925329453264368660672003964843221405179064251528925808318409791608678637001436671196189058906501783610351995721035106124471390302542739809232746783573205076900179386416875873624270819260527997975785869886735929745145326980879171018694849457794512162837225941830651135319955372642896646590682130199044817712050751782940162592046595232261121428339150625959272175209115796555025917856578231972338150096260569314317727742436844057975295722510511551159054059004829828194098584532745484404761145813911255609077396264454363930380648212098535474549699075568141377564450583446395389248963141696234349268350658942603803819468938022696310114369985672341791477117714675447198903613279877319891114842476562085032700162244921591986526397309039058901911946534549096470536693313366335267079101921272465409353802697003811189277066912119443275881825109456072908968027397273446021151883208162362606790838195365681905984986622296714712899205583793237551451212994290453756167517563749201975218853350169815073169347675343538798817633188604119368796708131770671482152204288867623131097743147207456189209744852210648783917968170261066194176791791789481248411781993635463341570920484987347928482804343416144325401209019060036718813636672813565735325418589544141847686153612291488359648210432482368846349023719865833974836219950122961217045079854042766193893181555539207874260732035001886233815494701156418613805134660017837766810944511751455428792648837726736692183259037648649040320389194285334153652151663530929143412094752261413618703867614979845794289518928135917372998723660849231740072311605242498012913913786428389059201120939722781471420278797901789786339028944361641352777425654991438584069464232656404510972757104260645552788544500944714018857380304135621196784930259933249686976862237542656999112915820190787554372076626881922788047249857426081095202589729122803774775600126941486243067719253615142021676958495923164716072332152436931487496489344736001665886275660619316320236514788213920807600054749124873693908937076222418352375705347411589851055528082627377613986583583345583263515033790585665228253448734268924352140569664358727105239114107563268198615987302958646077150222044052073123558721472455102042286676233816988622305279563712915482760030474404708775618459796718914542952414452100008803010930567751944364037851372173913609373994752422782404710981151280189376530891179340180292309919602794346345841419617315417137713460795727923738956143631884001976179491328560085185914863758617406939385108970204492757216999926158116229635480258921244485274525399135051367314543419177497498499195089100752949280490082120368047397523681574221763589082542850268479924175733977689406715846645892300509665249679310554077922015284540733196018055076245027641459600781432008326053618416796197726369382878277442681261113111671295616598788827640499022443288917969013464334210136146302279122543738400990818997969327582932511495723632651543218780567298400045901910587903836107097644421722242634551023247108735304710047664931022942927966077687344721755799142234532663884735165671340950332438811227929170406825678580382725656324832303057561660403100715014004439887443494267598780790971954302680984105346133160719015616106722850205766382996389833799053687210602756723031096772232758585964804605120030686696137658495656326667338823622577514468899799272046631319365398830378819848056113855996334626532577985821844657590997184292874545716507845085410790306588098890552548192207483761092468085162364604059106676064191499693361904619143217972022235884039327276055852537773991528863669156478098702363209963152794117270530064393819889989625022947032786664087349249516157903111784459565267150553891433810856559275471887490815176047937014290570800622416660805124773087997170122683197850310746407387234470530582519701664147015917457443168046565393458490921516803962317702186026406466184284163141471885959978806864679348561435635739515847018708561530193155448088051909382338778906742564901264852960543740039462507704502001766768410595201848584819246799994014117712510679876533012828278435900474756313882435692030539046211301514001376664315831753661159799606875705430441068549570713134156840606786010909393165946245280861687751333589299872963676603170804632664560055336659275939226169218288810800639125208578946239049930423971644435926085393035598879448337514288514976197613369478443695816154888196074456309809233431179553469005292830002269839314964383797912291101049167758823515058100354024121963504527206226395029548034806956087441457960348225414541868910430543154559386069126586287354587767245505759739181222291699326681354237328933900321625727096819989347475816325472514905689150213570305302636484749761891822960709716615339550140311314751485383596682826400744823969810293116216631041939649527773534414812943484281912422026694811446502859925732393031008647859947950085898692822270651433445110215490857447018172222091288522234111853284466139417331873364147565811102504213920445882779757519549037353240711405474404549371774329197704482713136493918890482404679917619263017984970153721448082241829483375976919363623082546308030620570042912063371175213825800769741082110097972881253211547779424688680053838037911182684941017986752804483032090357790245840137771740036964091663457576970346426157281316841690814032007738667971205197513926451806943440998139656184546459867426730586304806956141478276795398761971503985419688671719839089745106403472063258194140002844022428194164232546813061525025023786956107524409743899599139714705025390300255239954151840170617694454129507055555335177131900526333424300021762259532988763035786636605739184387414158561561216147837373551944939461289838463935233325809829896360874547151637899384060398038259650005924374358269302486179916119759222238255004251602818986414038862469317384307026564733599924180587641779403054362109566603885829606357333173495049438834454407709209875030631428795329597354101175815509912366335909692004057878917804894130805098865996484515631466009328026149282172213222208538144161954869697873094125997274543713256301776128671504178964261630726695039695787404325433084227768559642303217007244161115823621872747060320257979968150857484985919697869883799865816745628739543128046059835531544221585850045372040781042302140914462278308397573823448194969051066341360333476037802453453514729575238970794105096035830478325205295549736976190270365450493637221517127295816245863816635814670651125290690183827546647711192666551476721051370149818778742790402487602200159021301187533738809293553719267384398847957389791165823691445104584323779101213320527721925482254436447736981563463853585533468039873899714437348369560033374148349397223489298019146963646345498502082978398327325985109276342401746034276658165812189779959841436052372017819849301251568740720569328118811932048345275687664092221104816695165537757146849741057163095155607230945114846834468279865493285444095989582927083235330264765393390484873760993891505047478321853510456994704014308434333442996125100815722834238726485871355865359195156918910516974084954923631604034737721791430701454440621966680799462259330338827871829819722122594867074000941394290090547554546187933772574316178801088837831482412159145134727588106763949317741739732552908730523317740847927226884727086266524263603118277076140978283110783110003656754936880221197561280096763535023098364085220956867629793959524052950119386764533106954421251530916650357482548557665138016431551425365558194105513481425598559368820607847804335584209440748497136623887317448442101727849755265816889062158737519433620018973685363899752412968491404436226805521638275694611044599634325472446847971061223568891549136044980390821840361081075159783285276711052333070737595976475913332585229570724368811567566473759874036241653900140009111115069158824637895062316032459355584916026055831941002041733294562708884856082500459490596372550058796422013470436525847554870048807848542124934117213029273831346892862553817462426680343829169799652676514210103280623599500902170199951088655425017480008152380112413825498478870801471120934288026547982993576871550258090996724492722948644852888374272859673380793593232976510540459948950490097127167846875742807086362436474938354319092375475805592170998782136386482332918319899929548063305882408475485227551145728122406442624595424733502365867639176888060325632583381879636481826609493690214531869098902169025737834037547366556823675676755924624882509073398153898710920132053183096310650195257274786641441049409499565759649447604371853169253081791404023369272280271629348742275661944147731412142930184869959394185586534938495561649385971131242481545783079774083429630544639365060910922387702962264908411669896187780068626072551666675161433763601768490421550243160057140801892776149531415736257938823691214552955269335256652990247597179752187016708513641655560983847915318107048113577962685819819425065049324617074705470433854712829805861265694476007494261572706477048422724739793931069100862197997420463121951531104547318740362260034752191218685827753600021599178055017105114571089228634217800960467472792348677258839090210469397804478677746987058858492493883594701476623448792691596688834592990354136435484107652075275149433061128191194652426786818781812482342431242902630727694995779227138515966436560549078421084433346883211121276502123604097115383022638421537449341372480647618537813871774848072835243095139948728406919279134424192036935092288284826655749197143922924458596491831102293938865960769628577123714187942347612526957694230707487921174830432913706873352024359081953974122850752134592195693822557544098451479843466578186215669082682989443368960481822218311816976918688225240086561304863963516675857945656508918174879838091288710400165799653574245607268589450961402944787907163747075667749787581618417385139853154241769789784562501321366303491750659142007594528472923618364757839875848630869809599193406002355092749251871064618628200108316703662164412443935298625151015735094844468478193571200056598637826938194059886824928140715571231015805401672663044310427422612944943266274108541349687617181023828725827157094322461591311853606247924775247233395779968991718170770976334463713229230161266487813433920327103890510622292471194756758643536113725732169701751570152102920879876951082507504088025686944923215790322481366748306548543433005063987480454159014669259453743087321507769471950129263769306889667554115150573223538982040012267927746329568355094913292489436728183788174078319402929533024280029684850866667169200819014670459043671991675788294704645219809060024224763977600779881425950514442425865003162045629917384587052376110621123980198471889130719649272441415275707634202545348257841176818755596483236297588548922042481978727283018373905194169834912178766102004606376354909209972625109421470275567441775629139493380502680556461673213785802719286108011506925664514361365564689485148401863821647643212595772687941469205224360684852535337776539597168021223212865663890869908123831368649557280684112920334824610335907694693112982709024584231816120335016511214967534459106428948718062886462586831357903339806322788135383638181229040164490521332083979570382804111617151728410143164907515839724670163583765083873946790031564273308749887449038453216704161797097500538838606112220095883759514898002036316709900347385748653521395410341216012342790042381620146758520183104145518508619587183390576145465756399444565691495169293738506157169818081579688865560246303493110905516450794214773401212334365936165750901611326534186066954152144173883233156209273139703204802323869415274198951455736745665116642871997972980613213435920427157955647500269729340168317810973868165122775566375072234729392240142659421423130334507111222783378043657928911127715958220090994868997051210618170784906624289099067854122712212823537310625168318019538941648487173837387856632674863051601558813886359130800719236938241183301852417675013220811951696604854512756435361370464580369215283573099318134528579738237828905333857364066973784177922836944544824362328689721992959216347261480490058358029590224584177332556070282320996551868696203218857327633543168966304449582614191730736343197123510659399197072185868805618480768859766514316699930369922116646993380496843492601808803457983262118462324636906912702237216386284786163123546128493071363189358179307039755924550777006013049143737557415747462127618010911007332959816186174404643807606866192945323070068374260263894664025776742830613301035133125151806779541843327547875203589629162251231257109493778016803394663362150368323130211693553911006954506200325466809898017883900355464261685031886717214530731807964490327874467016545887065021521082166011628996713590166961223482289428620858683748956346428484668187973005223759543396701140741355312755983976165588510165653199803090292005476551390451632942966697423005107004087453204496942631489400186735994241196301401415852730550036913915606806761983949370572053439797030965062129509448126369996277867326695706834676587829946078550384306105207699741185017398588717525275044571134527113637945173004423919156550243277180216269103853752765468427652461007932654323994422744955919290789255665035023464219698945953312991099877300523603359817427016524189404514493257572599382431641083423611496199301815820068912385730869845501082037920262078513120609160268415599766071771447583885301637424638322212777403530905770788411000786241711387120277813162874045233071887416659899502970028566356829455729061298769403336893262476070754975711389119751070669620007019024129517737302669138443749300500245429124933110165055992030580285166877524479791947649590338313231303376710160362032973245133318553358513469740238712241083450058369689588196692535710702203326103057444387893314538445931043985778463515617398331798180866464859027834472438301476200734492988552481519502478179034414717200247515749100125909512331787742161534119668943908423813746566671589031711669302620866363861134336631154319384264868026108734446391053891420736564610665975790748357406233625098611401314434026674709286372508301686844410143440796373254815659815492771989625339080732953550505790768927585462950457329147056857496633643248739206956675520565940493911032946108428057676290521928307434279459093127376622660300247239649098353124868546512650410044886281941307764508225243102229604263876138612757650427143663039201112279658269971491487855762655014121829360554335489938713418319009058874179064798431374831628341748897089218738829495598740675915612955676939124889127923070999884330952699922283804315755990188118828846342403430124151344674061482701605836989784341022049234627288254585087926453512213063761234632178265686016170733832388334186794880946490719242736736433196896918463598763289944006129530919338217881859374786019365807692873752994286943834783799845658551105961131508711217760916014702511396048262328304624585433271961279428461969681050690346320217306803321421516027538529364750129462939080904778313501850910627616895111757659205149302677924919221119318508857033720473229525178449147581717245179590905558933284356502964923590838352040293778399883876061409113772207638869643991074837337856904452294681635490389884070279843179109751834941228903927396239804608391673249217015647899963392767710623978275247299941382822844813730107866007807587939081039429807206073231951015086323289716948205792798829883803875434299254679083440874227593881095297026302324848817467352594698233812675208866598202829662012339402983998769706174493370293771542104804765622278429651111704343690711031707923997968113777386754284496877111554846051435446657992144581396592993550095972524005228493552505208121792707102120094197281400994258078269001723848862196952181941962724050779163911674220853720550075966830662674558382418053781698394573471181410083211587102248198770238986819543962204307547288354759914955113167080009471047414613567230666308913818686436294093559708080166374036463495923682733059385259073319223790788580521607129438644254049291184778294792887387898582608326373062080134134821638422631642340346918298837031453524202565960808920019021075723172930540946277072211300372476121587554501056229923048835361762309760919844639431560644484808476643253587801989242387015151990428822296415707937019691336066512923545683648719734127574022047974566181766788833167174055310018853003420208943215465598188674288381587136759825370833581847225568974549463240199413173711316793456377024024758749765030250403938935942261385508819273839092524030831879359079603501588808603681028315616742567894116541207050451243339244782450115631748360111867727323805116137032458413677178195988568311980947887441738625385433587758184702893660928694010279375902845949268241629585043383274081722110359530364803538226942241176705594740558358766542060529140462101475960417807103870746875506308086476768101396094715824428612650728494838584317087301960517979614488513130378112776597565976775038806756775214223849067339176894771469051307716562348843124252585502794769525556158599677689007122891822174262609166184625534440505774558746502969467197411835318150587834523492728707018537215084961864647325927957967678909856855097731671158378180381570512960232664389089886555137651530322285521090778059014884747193869731633768255807564750891294706650549021744799953040646301978179915557241959748522845641944777803393085629375385585003326541953867617079794916534055591314686125425568131493710156893569840916147103278785615198135195733568968283481606856514222356984316447313230381658748899582144574268832195642137444748309120089751149735250919292142931505554513352262446241815045091708948725147997853821352450769283392301248732297852966114301425642353635250953824525067647221178420840955639081562065482472475104291373177496374270795006510007885362233429099912004275535684969049405224742061478831982987000383931731432500947789334668240308437461891789809717489472870032236790713464316065774792941765928693329671713291327229009829005568718617248606465701414056108477150903248463617236530303208624169421663083043703518492799294118407317887941688242798445599470223046482981848166301345631070402454091133591972582163076231716846616587302279676943646317543056084721345501350476672918599041160603050241601604345285027036962971905029681478630038297492512794048409187059319150390110870790787190658129504854203849600737717260593144513737202389032889181438477677735477130697748933141561241186219373233114787393131712519960548853707978901641761743024094102093038004194587794311019692298340205646474736968881998799914111231138612356940975973265001676552930043441378660703303612918208113365389949120408103973606095517957043595977298172172946385142650549264773304990488330374311146846419221605133268587978140675573326129380010753640304484997599865551293334636416672389049888469901195880315554262520099291796224305680262511102626616207097909463599984360065752889814078905570730717124467587156417228031662098166574934838643499293905050733334894649190525783449491719228075331588071645460132759702291001630345992474841124168017384679001776667516469280749817057064488735046323171124874841301748843608834530295990006708751726192364974833706732392378226782240261384068090231800782863610083219024144262338942267732211499027535432226600992870902982248022759718079466143285241061825901236503391576201342652991071564572490622354157851550214410398266011460269915177202112347403323362565140355667839972017300785187866721688282068724889310113826334214553214634231070547376074477486671924607894437444415803294882034051267536610926314723283060086978125772725211592006250795537733186312914706585149134325123478640359286142975593965657995845851749674092787500795232515567481285529740493202743207806708827609791078220273693348948642383471435938495930875438040168844597878689250097985662665094416596521870264706525421569367474925393577453472560561283592594477567478642902121130676941518417067132163850572086976569478774876795255148138903473657761738061786843436191737865904732989171329081801970847928822672858978218998979121346834754189729307842354897602213303893310403198414172692897451362956302025799662647586274536583413075759115714308023463122906485795122465196553617140498481598352062006908435170168648164038566803158036842476007666714830608765237293239958959895801969472312557283378076277059913516482762547485146903775279799374446495610095175429585152942057732572572575741963843562928541894570555862977314354032857647460479428152987517531310060846928730324628613319568400118802503399198855620014642330679959524616641264621669744033106673339678482109164711236721577117091384438780460192027869068984799264758922894279530540220435815868140502817306467505693566921113953483520449988191431350312600080195128635462901611840374604279468596625937807377568376296804872484626461237414045958747463761933090951879214295115993171245536156766771698692624764048734731801197516539490228511490665474661068521301385870894169993286111015945510122020915366276255969118553944988999597178968558307588133513596171015678513323000200665278792893260645488296780862028347007650201829877634231080628403025931006154544286579733968391171473852752925317376345134002385267894064499561751514860591219982748506092015995321793602048094790699190576525510719984293920113219354363137679320138983071986707994008772718651563236333375126821154053582958708369180473422088808446282790624454589957894798254160736482085445334688940007183843056130809482228223214815650398672893999306738080420703754896181409076740734003298083738081520246078025856423126989194150966566547636418806435963423620979743263317950885258289821595463785084351553594440685460501435039480307148358572119435108811371053269381605579786877365373170722048115566640020249071212999161639921626278882001170546165690141741264220117929228947211099158051190656718168471949316477915993142279491446937640648997205853393967026368363235697357665880797429122422088710052351570113678619812567693691625432046509439920663125734195652446102425158417982182865536637319853514888188763512133957553280005529699040013331204602000093200650940425975150781640571207345698845077274720865307092221048719496337978772037241890556027674998485855872426300965916609318264493659747543813386541074654840978272955485641520760366511171354573120607088124013931480474847141819155187895461836984571034889204154015561241611448519912322651792451093412089644553613395103668838194206029743661181240719436570218552977599704239250586583230818245866697172886160213541146262269844585529438539922590446318142428572661410205176779205326784336424095135226281068754186406590907643967944024631907240460127931449494803738861923795553633405559341365478263111728930837670293125591843561720997005315166729607445698370868691573142790508622142492317763112742531192778571399751974052746664287113851937821598620030373833947334740715241314326032955665245998457096699326021327943586708602400740799631976250437092698657887905234401411954787849782730336962208060797868831242116356994705160024412316423081797423342270361539240941725542016305371344452999850148453444542575862970747668972502284818375897417093788752136160730672659446906591670947282239412369834468077801083976555586232644267182740113571981223844099991799382515500538267452510976152746271232382436477067907333210827433903425660516099535704319016828103972931216654493962830523521555160610628523353443536832796611995109681508809706839764875423793960036635093914950681421137021878349811798627569446516643302183425587825020705916948483694773794849651339988003673411988187005427905823451686624436938692403757664514368070850735015534522359826196023030569396905811247098788785104697206410598671148936279164546500738687727271844416684915242272698617210209595530459544813719931680912591514131241099408987284059104117847069081191834471817525342030127785464776819989470642243913619532673715724963202955387785089395831607998833404777606421807784809854035208075567044356266897999844838936153129776959899178793847505734934536597118116262083293475458800598966739346181646899496159492160886955422580026730347063968874891060847038288776020208934052923993921050368886435988569940061237404036423980650348265723453191108679001955399089133966523613112375448585348354959159747498621735304858039472631346194688291990558726871240754315748442707650490661108287275303657581512286795571698336976731849748717076248881430739696446786764201421214603618715995121075918126697193800843910943245819581594011252359370898780354925624034716260152050629000013460721449832059089603410047842219031127906414496129802327734099636169001074510448841362441280834448176217706520068182450137359853511217107637461711536948382974785692199199494516087137240298099729158142552156687247610065939257220654149422164538353661297827818135223742662703135587601019075417617689437646940159741527913154507966326765459134984504386814761785499192172670399929729989166383860607318352928156564593448544459454327501198821082997797094613807914036201121201757771768077880104763892271232695635751056613620273444864598429641578626792231676036223113417470342574914231501423328191035454437581768047927354239118994199451182563354488264410017117436891450660146699434450230782394808539703115969565150720102900095486873934330342378839412425585530415472681272501742357036755914605878062232312740327303670679561055108829424681036167940578292122839666511639757638696725778052903316523366736896735121654091250352018959347379699440979160338170922655189986217154943753144572289104362163173517439997267612523800325823870157465448513662919827067472404339810222424646129327945741154490944974792512062868429969425368970730855862981011043684325002964613018649714876944741584087918946465837246109982683616398336453317499744952890496385906737505014276855474635140043659833292270571996988281334843168981315241983406498417509920691367291235342698057851088467439131390815053004744008472819709233474272214147914068006857278280530709669537533420517771644123621088576083111596864447663593977968945297304046327249477362042955393003137585423052673860099548794978711422620949399908875278597461120842054255854241314560442476606868233749939768301490054787528759236772967645225813314664219345895298441824890024078725197349441121468504973409759757288175191996659800417382747566291692962044476707087340230843621857959918762765135181509643047652280271757107747305865647152328144357505065245279790465223259271835783210179882219056138011243863481240993857057589395531068055135141087560969881009404380196231831778380367645149779169108944578405624433725262766579158807933326746144974772520210606516694532031458594585460138752874481187601935398203197316085624692623128448234015611884279296160122476165122777291059644269361706524177015525588475343074788355395737726927304128331427602617331465795756931140754707326621956453713712919841617607577316961390448503486897765995920580860994097076267359151327348669522296262031361086906942911818213814790978515498131043872490508781425431241454766918073984896380246413372279245376123122921896195547518067796374943657953609615819470265522603944452923655273494654451787115811134773861503320501098207207303604876261112707868958387360184709479003466979878916838684136411923397033111250271651588459105932348939509374498753822477331170946979049597415681906357041848047179969268926556053798869633761445268495110365061801257990014568075885347258334791224924819414795437537982302601383893350192350942635947007012922946658992867072441731339664951020895212141380434494247272562857209386661474734518275756670239939638218825839106545016755673835309229114669803847152159234834226156055475689706233704358371337471684717505731960013496539914716200074933351839563024195578711400856631659728528292627344547182557060049494050229182902660595914387803198669847173414089477320292551891043484752797661602846234709403541161268512210987118776930473435269068493429268272059482067969854524636705099221381565819814506069819181921520637547170503935212596557196644642067104925841573656915795359939856120487707384961789219262162627706817366505813858557527518020158160167684463643507421757538787934528655193995037588906516928956762960734412890107376063730377413910835700258437162312909701980457690734560623769556046849149301645800287293974704345846286269311733912835152920457297297641884155369552997701946270232226298698479846231078952310826924837096667188637981430100265160740631328195551599331267150470361852057723819504963255638312318230636267171556071391870077250064644820425624105861213129188129862700539299024622157217882017690799496957047799328205766980944283886957758237422463896187250287093716324696634978438860767774925102336869885817516104504382589025666643212199223933042876107961518705825424835140073570119816118068507566269914742814156214922727101298001947029119241647990940167758510051359882524089003865621352541242523116736411947177651603369233506699294394235117848885339645897916772397432871041204018040444266770755848589867322629517356425680400997790094036998151672486478539405446982242638765782082309711719402241951811697984079413202152716458436971611571832867959479834640504428653922121476442986951110340796658282466557643217022046134047925804437560203985016812979657268376782479294034965244839353311425689151079269626352347320685992396885485166485871618775876820744323231810430276849998354370072389105669219267651995046086740448851547431106632974897738413821610731258798939168209644396168608970995541627591734006166360712009536938473174351804026519988537044888617043909828753631317130923959987948420867457765065929638687112247722014813610366949676904526037309488722587073292917484426463405286415201878185806426763508207361659085441538177692545823717365284807333430893377534592400637891885547493738867011097043968798185367084485735959843524739372288017444660910520092141183275542626116746362425359720172118331062467135463702676438055580776834409891370459828610141874096199265878182227341867977876040544943861299911789275872609326405338627112693192330781850502782366278823296608014113850575021066250994195672432595217416881419022226758340742542666762899888872209837173976422624695360313725638273757818009949557485201747638929012882007926457549371060736294247584601468863783055564673670887155202651201901635417880381328903192582784960517961883803862893901142231971548304805322408944699579797577842128799398383866083653877470138150662338094633315613118894187071334841186753332601354499957218788677583158834185035457602270874409813085009958514816901774375817416623335430475484362257296184982199594152359366169746608135715806580080400706599145766846696417365518723779976943386669707742467746645041784348528827119585895288789588496632880044788892783599679306133202436923735756999487064135791760440999951727173185131742460244590184309062883241035055197498973506491855412075436074528875724845742461511784720776291332443785483298811409689819985905053574667273054436813113214499856784321530571148330793779510511987763571563584555877365800496513352934619818754258711383402925496245882698407620811220104453075958404569424339877718290614406241869519503658567960953679475687637616870984013232062395956004494869674592291631708516117773272847483788107873826876194844729361000724665438546714261127083766947223958599856500434800097560239073650046370329671056737025627891654818429802954326925885874384466706070433323928709665456481491383646350737754142376990388327167399541688119671166561396104014863921225604389264419246410637495888223998950469308859376752901629955485651551294266608412537830500824055871734678350053020020637095690545707795801603903445080357597681280621698518101439041732257599986353816492348744633294301341507364691126207047697843328980354392987106868882034421029881348184107850914668999993924251785467387346003446515121503059776223800554279346591250801295312343000978709783130375057163740491380311584003741480943221367313987257933047837792142144333753003314462200793748199473118293433985697861993446873529455539523290943275719943206378231003116491856606784002778875215394596924515789174439566495266325915868125104501408216993575647382098882067242905722888097492491819202951612489564137971227889574739047587266910278692125900572992878745080448230058588858321542559266210769703413369045765850129645904178061076446984520855585884939989819426059954765186209249386179754902283777441499161962242710369470501228516166958239175051538523491731574454531126694594978691650244958357526475223457438403911050702171994569732272110233916661703831697223636829362564260941090064588973416459274311199750437015964258385559389951128155769436319967448437770613850218705216022849004987806399279249737266140403586550772443896034994789407842958487139233559912867335657651289865645843170447858965058565383051299767639026519380895394387407875049567294294682329926688300927890517783776775602313053138922859970400778504442945654462332970700123204738946007674300056559360231468463787727715519695633180261939476291296654613237422268779180481770156159760061067124788330064545420169874241603869063521670126314280075798439668430542837974195280854020113077871034234257529503686545018335936582975964117755022353334157148724834375930770504176585520138665729482244910042525603317016430774560347298320463475835931107478792235499570158284042089658975876551671460214963656771458317062644347313291807889480833531904027137998652455925794280282606014133043459077098856103025730207654820105725654490250617874371186814072334959766145565470935557104250604907453763751896748258553347458956578659077460783092274769723473498182958016006951415032860875798352431261059204803088875090722787376957832960379708416608335306129244691511172797616622349061344052633623742291839151927706301627431231008864245957324313162449543317602473263391557866282879835230892014553821402846203688145268453143702005427515479007609763987018617746337909285117683675081859967817261961888487887197818071533742505916528864702208994246222193056908394144201562656613793679677266059237757407141440916321981080957214632884088836843334476623081435131007072918112742487180148334659668674084827996395299414257453318373702799932773836540733476199178676989159778948334825987244919399149342465691006537656473859360906271624790337580454080764051573271208919528167781025819489410810574883011862750842385096228534493623187852578300414365192652871683205272978567847030052207509785910122181049048979515022869725538634623217424032063511157817863348891896846496870513494215696547066661981764626206828310744528615354383147160589321348560472817160674119159307439826530574252305789074506268728242752651256657858194451468793200028448222542859732193727489327241389752394859296705551641963237790239882784132846358244488087627610415888327145244729107561790397097586818422125421947522235448273501565318422306070099629018009387674947606322159229981498429191118758918478913988884281288374133833612408725017776130758135138375910936230387504470100897891082577398713637143657157438276978757271089526619585174589763026623486027000007585872608575729101653643566085060059921565332056056446202308395673299116155582801029913717693523326651482624111995430944206323846517275927119963487482787523908887410984945627931885379557555724670433383901301242362833025005239389218991346648216432892267188966161857892338529315242873457306249661672416192923848138793258758267625441363669688060901132008508452674160713728230200660201782337589788455162980228582693685094544371732684446544278478377409886241881244015648900842836774551662898503570186595460951021291024373652871554057442366258968764580725636546776334289389734374939283930952617443777307138245692091151219988682483419472521429179455223075985146987627176628932439590320620233745277473720307676636686308083659453273448829806435248742034001789976107778847574884554252473360125279676264455668843260270274407649376155308562799897438402267848660145893288707708336370990764483448798597888154877151505584098083160092333103656450554174200683896005165458846033130066244589671642916983122677163337789560718181048222648263763232746878684893411407634677734760995546277925905769025946667096655951422599966331157153506590521307615853975137720681851211754190044534344469586310317256954392237116886850259400899523448891183574112396562416195963628664714729748722867114014193453609410683036497846337305945843225388522773622239037124668009551014929481047818000431904754166085869545001463136491767611896420017117484693113935301577729330792629424772113078993071085775519231539417909619812603588761116218621126187018539669192592952265438144827139516276781421172145951554210741570704030130826445011752186866373567141046258669555880783763620913828432602858623574319105847906344551579661633848269771735815956777460397247484027636508229180198480364548590009937851717523201428877792853223706544479934401113737484571909200886201638226751695512185835768847421993649457434082105145208722203052022656340553773126890655537177660761064365494318656016888970999148389426971112142510700147148035367969207300870100163472366781368156093535243854472868779821522845672770126206251899079259172795906253241083348972493732350210829125087640213500436706350021761888316335512169644226564873928638578259170561052763244487246169066449990488556231009775809525747374711442586850579378393541868770761841295469177295874764642394092694145360243464969711701643538319316178060761971835128613450682273638749983637776403044568689266665657021873455406663164868514339903450393273533490833200878641274795359790269690146254090920810460951519006023017260209299574980166352090585993795760950881273835963177394704127916844388090641238500944458835522770413782386869397065133444446256958555730510103561453727800497537697269728751778766708125411740538704029239287106792887763113803245929418909832068700465656132771832288800768600207693884986867879266233889298606690099928559140305464684748005521287495706476322939098183460514083024232168897090336141384677992860439470037218897203966479109190472399384274974789018818210882964596903280871436486570880474684384640288267062499835408261799749228296202530935785163996968573225942037592665304912646806863319921300091613330819575075809312001391071216604617778543819657080880964210555346858526624041312109825295614542959524360843586829525310583359649565217413291778241803592710121762474455546271419480841096739661733541071963390225760195832494089752577658299935616628947395664976169445124483201229310834522468858617160859441154864634793909084356073506385108471249000543788711606971229803620566300638241566591823656909509527037977895711322836443451957352585436972449992758766858063894473020519467231913647646270073106843601106694916074197570322022313379671984344332880540155435623502170252633976781843186038324964455910046353149942490463713171005092847177817875138668238767061781804996691795867874515889118265953678750890975026397015735000915734810520559105805620657180269611954375146077902857820693176815247630434559832782834120785611645604916117157365215734474552889659685059150104298549707160842766813849629621521815651332140765748121331201137460644663050695046200025277831485816218140498096643087354020212399633452866456534748949243369136340021588207443902138787204029776671491246195585991759388847143542029618748027147847682196044201850630476218426638620007803115000371387321888813280962917199058869326686905259404366870419854844213655870441880930124858508471656371450406267311172069601129289836422293335642045464600391958304230685789575060288624344066141869591090644685745275314696678178309470594975166200155218939679666182620844929343116621284797187467448967600170216873984640481725459285667007975660897353152500566399190004158036982217847709403399369097813193114040754427791585890978555215701830660079850049787371465948872860510719716277155708451848971934538665809776265582100080039547168154875613624429795523162688416326685436896815181148223330261352918465802334015707830779021545564826901402863309093998024192670395141462503310731003839798111520547946889860579267113195803617590425113419170575513441574927404736214601950347629957939943804661361575105064200256606591894520938196599563494972489931194819053318352074680063946594611558361383055931665955556117398341730749111677034880257565089875909837545736324636979780990257661699397851946143143045844245009335454704525684690102189471097741602257563944736417508691684522671705884402660730353272401311951201551309667474037120254879379293888677737067094656011876613967928816739657306722197076830964056194235708986995039824749017325385300145294455434486271354932443226103247918836420535010474008731375945264011442370768200438473178424228267258821225422192236973923829802879002051725714376565052579723719841125385330581807109221848183706650122757463086360789303132592444615977285644061539466134455066019707968742137323180271945115821920730790892664789916322616365687565706188679926206091830779576291442028062881200515153654972283062368679362129574317903719058533081702605029191200895712513936276982411354114577979398996836570493641840259286944315456820171740334918135510623972929432621621291747936585143028781767741295160865642316030596417314355261710802928741875601672939567805827853312483805937600558412402820028225375279563676084569810359345633279306431826905702537974282554637584830922665065882386914778131778281759615915793140282338091532142288900630284594880070717079736741529492361873640691073580035865114737000633443358079214427580088264479199867144633264129317383403927962768724890644337183515424228589339220749859799887322621416488208986250367741010561559125478973782870664343022968293421302943970256076790325263381913533719554725009208011459511235662837334367116283023135479939980707644015962883183450729260423749986405595964131047252969129359340687196227581083695558533303914160563687717284073473272099804135513189307244642858446282302681929082685549186104266081853466022761774090970284764173970959193139059407141365781044391898487746020735904763180408032407972082431381807228137099717086097369701486924346235364167490388317598814433384915285327634731614110536639836012385913186173648595793512646637399946108884893399978297611994702548792840525011211822608771794234565423474240139651899273458457397938931095255571530676231095052755169628697477385454162976838658105661297614290108912306022363456728968681784398638034374079188320555599629976865108898570046875364884570917304608601652639077389026826255624314034125005377276982440391759947802479130372280117391687935503738656185614109227357238278438831312871157529689916740565837201908095288691343975130323515292640341922100171755378705080536492730488756367682424310088151986978217834021118311667357229248986134453242845243530970475695929186030854429426854192108818670711295410856703138683640919548124193093279253663187108042420074745458544829644062218156148650840453482113652457818936953995842956666785481201806349291253254684791272049434190211663230235477173810095769775876821883440851187697785537517439479495500327906514063039793585834110662841063958515340487577264462410167732890711564112424818181684853508570937950450485413784140481972113013535599554893289297381009775597879938276207893265252617531938893340496950722926817076067032741251920366616539249819817319700457776594491899701811089434998576916405853748126406871167032645648092113091946594563063250926357041279589093439777562013176716762949898918885365342721242567283219466774052762217942328346284078471294726385179671384571957485675087696710997449695328893746679615756338950959832103788961620767622457418110657892935570999342956015834469845865597935717108999314258882408453234458846389320943286176699105674899457723553866686204651958552020235459020696028806165500865799146501551763453703360298057222543554140654248100252521163381228155857251086512450153924319246678800131306570387016272467546548346759793299468493693969198256502601717593392811524498773907755835699653541217324786652505083491534399068720683922752283240061822577171303387323786214583264222202189118510534072642057897766169847056134478660256660452892717248094873973829288798158299644331292520969854563441221144437674105955628842525120358173613143760795193846524139969049716828467920804371494870034493663572787106048406813136968036267318201297682507894726739383727533947000946919774860427978599478533373919780931086376849270310947118010483573472241661250789470654747191980074328189554092932724657181879529077251758715989148598673747029499658885908351067685426172487442889087756823751941848893785268768012504693798153317610021538499274129783735967965061403228466488045430445231846242908639202473176597189845858978798358883475982790990134174826566398674031886723163617404365804075640630326037210757553970139826166151596017724392777329071344000595739578670835744406088252136935751493423066289255962477001788260689988198992531718734629573824086443574704429828949387995815460290694054300095957170476597735276784936857423727534014667978410414873449843391401939632145950100114987207100032797027542770937615331165589243586242384557740842697003277700293264690522907565915993772812476914486747100483067074667159931465518762213954754314448826074483224734876558607781176805098490330908744311236868683265280247150433326154856764400676507732459133280717060690193949926745383530275230895361200596031235679241301799644512366185527424481640898954150620062433818041070530607372832276636731950677395201517409825605026435702661139037600799940958136642275797237585452112503626393077782823416215011986658312536293078271622256291365744756657170751132294131070655707979294332787234735599029058412260766600499086495666377590311489726144903153394177713894847027374305804675024359825880960558572718065813931294304219239008223371193830554932468848851530669873414738419719832412608222904039577058275198560698670609375738611601333410324156809567613373688501216966009406892698338438292189616523043286727750383803597817654304683229343802460187100278509257387594977064343333506109647367764608107363538742461556545078515779611409343478630235747511297522000452441663213189106188108900492294580182953762764925572192434446152502652606999288953339831530091377501603592580477796146455193407304724073505173584806908943646593121766720141115254317953780854776751550032891971601796996210449619749129623541333350693766706984095128907444836395863490020457099490970082416309157058488156217728875173099743983432268595308954984812935374114925104570106704102536788924339055549888998092108938355308121330406456569874376844636531236345811035569337149151787217965315370422563489163604569788839827568510135265881745656730068666171717351667417161995783316422729058943253180008861046124531552381754885350770571111571079182297880196187449070102059018226907046080133604900914382292945260133124191355226463583945189763247296078457906243170823093551957821502596086977202736514581139363156552106480091747100265020368110824788904364345965644262468496073012994751003963012627748732646507647191687875922273037652941981177011631000995851710875966633238246141790013332899150583454161482118209451661224150514937958504715088448575986273056161697533773703101306956454603421650339598616357324935667128517403271736984909485994321950964237834453912091910038961503996502166113116697999580788551128429283191052891077923940270632378984996773685654368617993869987918848648830879084452945224673310661519346760316632400974786799250975238112476076857966058616876075931933923769392580822536043831559510360508436238003890443343657291967751956868591848843573565217753355568347066338585924366824025124458124650950232607123188884227353326033514717855574958967863017807948238025415894416442820696853143579559423234811018749973446749567409515339768905715414397022534213832509055254091228643781614911232599400042439284996052383177556015200237316434379422101435591876580125000647116110819473338231066191513159294415127936298741506412486133464110341679687260474019951645839599051753399078670736861078291608161652381422960595216181598216497785930825515688799140637145267980991135710958450118354072636719104933358421703626462703040051690890768790380767490654127865580961711435755259972941302906970263425280611011873782110172188710342173071199552242472842908531175901926699787945022910100948326580847703071025662762084386588552381460079542652481244695102315462266019914160680909832126207617187761101436215322005578471475617993743875749707926031096791845443707955502886999739423472502807564945412785799387139352970345510183180910139110328101032237290624418068129102766146574174518417155156820720527818361445531977303749276821749494599356668437308083422992172958841697529410719895240047849698024969414495596551589154316433129925658341101363585071394468808766538237325335161344768823430948032326803338688105678912909401652390201023570097394004775272634940090322884026558548628850567348196349839999998045467721963063548075718961018622409259837790202817959100408181363137134061500274587945751582970038304649912499772871782158611142955687692193121680573914575451783371704106826977816042991325877765693183810145548541725231867967589921214420847729062701215972338398297250553652897664411188984563843742113524858113406699522096902688593521613135938612592534252586555778509121023181511346821812997153509129707805239453623260346258641885361174647159299017175684912255656874395128528993250736534333768959735888517010406618933021667275922378565223553301778282306898593241258413026573384355995795891612200321464547219430622126486915243712915077364691934767961730040177333545379138067585124180574006965576570998655360078623868631511657771606143038364134839242544141763576631467211509122852173721507661218132085023243545174863395253023319189988905919128204667305407590504650331465346551452923721146676223127424568728711041546551808573040475989342447447555535590076961373918669767078462206591463689429807075736384080090100939065989684446490376113765732003445909765183362966368110264262291869524810388875420663891313532311656075545211192550442537971851707855892163748939709850385287866120441356073379311992989431390633087421445226846834500623833771834084299100469634990944154729678948880127497677738546922246436391478260521139361072389736261662649132256617091997305832535047628897368200225160569640872917966079783543282034771294767031027833056278851329298045194924166435046497031475670965576937357911186365986008502127207638137765064554495646833925787431116443406245516712385920713396170072021449637714723866855485716343570673224169644847051948716635509425744571692191133042321031995984782006313277057084301935272093391650415097020286543123994829165980869906256489127656814087182236765462346356376755070857123280141571547814254713425483238226853740021117175938646903278570803192694897885527710102877532186158338012246470549289743194038328949926893042747369399161131814078623872678690141165101221493699101316232983547789207507054613496849231424456187097545936366934982089117507744927893755328988235254183172736838651302910695735898071967116421502616327313682736443034555142188195698085948240737948499885233012793292811119581765163964350397949859631600199925285433562908428229814965698468289099118510571043724969162080964137338818547647982484519240578884989789897946883186853384396556432192385685453457785027020353459351166150541987028265691307532864634079844404304138300722259743614667558745754286561451712424507676170470690078996729597014802075487057518334198826657204069591125352663867119368300421597380584152597199836842237220065144110895607468067485211244970969304663791072511385247515028385257537501268495176506663275979157946945352415373952554118422177897915395370941350733067841530591821527426196435279426318066575206103429213430751401216291562378137175858486573438275121700024145706524888874303374783901058548080865059155529758019887453561884094775776271788086273599845133224630998274859273022304965924778828671044602218371466373091817865030227151751140109369940728246076501789846211152033325369268901277430836939020493170348717326144301374486090197525449456319857767590273253764559376440929023848326825452656655165986944776690111212276646833617004445767758492195742484436837844157527141672452211094033276135620284696219077576298749530164605572855681394335836051738622682951128415990834995160318501994500409870506375746083045980784944890776818694559552912290139235432913981460041133011383847360370829389401720605108293072680192849666718114572175865145571958538983798597392498922755081423803121555587047076871125664441447536964973991259089099992401729221925806493351639373402108454983044395236336764169244667365140503038713783165240254760829464956340383578412828823394522013396468851628557351597574021677588311946545828156920259129418488660663415967520080913471905897548200989305786997023814073828988195785081470398705004833189791904681953694653319424657715000969871729594364858619697631906087859174999740284726908090539748279597672652382301813490371581865265291374561680630188514957075910271593703002685519933467030074290787440119301971981270734550390420545675021839674804584642523260282653880608418097903609283327040526234871410538010055403528319947145441011124683973436569967889762469129122974450693017385956022005858050523356479234978791746166041647088278108873640299130384802210579995199412315398906341841115600980693471017066062572243345923410632001116139234666669627166618122892251884363455208922849315727400552548538293474069276610811239459337657170079656277481054459172657535099050656335916390592517578443084141993022070113821324733996820661607982229981010956151778243730683802480235741565103055458661327298399561353176440773899628488845979891073486716597548659067978314266008150457928144492103697796290324105455999904295096964624932612738601651512222490151672828726231424996475209077158635496739387212822337330426683157877088009281637662420734687081222743949914994627535881873380256876611292407160613216088354090834054896154293981257372231362369549756481799278849722578442690756411777479491172681539817844129871369893852021900463895161339235565725051119407684750381314472374932293590935544941476091776118187710324316249182428042246698959686178570218349181264152152622779389799373646426666019712016191008877054711885336642959152413650712713492624894435295014521586962055356398312109902182670191058433062224708480951813494276091614383529661471787987030417540171381300639313470674394432766603765546148327669344086570479436114164226747586903127567100207324103818519974786794801741601524027234463347146466899164527081580534314598088158164687455595625437885582895826298960137826490817217263171010960752104738665184822440283731930597632786300013729871512169194207204836738538837151027036866962410571599899700888308719533523105839832604373634716584054808733905152432403179621400186590415812626274790412853839346500410022929279162188093146002406127652540685805259043720031462169518519834263691830939276949743801181615351327076086545408759571812572209187164404189412046713167050355294287198840962860164634162671193061956100134840295886744794300009738023686772310746064677130130551391108619014526772820536260230471210982789330738810333232059568673717121523300584891169505811890800911304283130915927532437421480823317970466879465988824153033829510194028712201431921530254849057847792872386753647436185055232505165122622844701614646792170635614085655211807699921543577854726118313306965471085019846420140904233436124737723354611828631608965060071068198228274379343504247023792296161070467369425412671278730543411397905624907530839374200941720097336321999827457170298711663344672374094248202439454961437174930904738217670325026232840500850731342140875783487383465135449048289616090810458694317521060585126983640713595766522697746909479835138550103830486242788985126459099733458859405990380276209713511158751426229593269588695873302841393279084604480547954790152492820452431253947426231432833867945128366839751851183349881106290133603381866032681730091360627391676689431766431395988350106636210574713524139795402471494534620717327799224862193664392940228014633385394814652110551686377563765904817750632050951575593247391344698685927228869895526880119381306958794070913524150510206474450500255951902459905980368959803932546761533463309250235165609087505494827411629041142788579476540703886532965016069485769340141242211440750419435493890419541415444248054963064607380361320989732421756813554274783730307467314511843253931272853203429486155586678773472702599744278108453015616146694603900655082220682578526943321276009910767810858211898813825900900769982036860480241096488761837352439685186117241881010915103416669547938267207101264655760401860605454903407961343803400484915453859759489305970221599817662266481274409324389964293346357560096201584134827427330420725869183341337728322423043764960808973825667118614312027697636678756150526039274953595237632025247221503975606645590359184094582744275733860919412748594816621962711734158925802389236267898077468133778528025305981234394028872456546270654647814856609490976806512253213183096876934850926959949380907899018275333415192916333270248003794376615620727625784712876475065627472624992478367296750170606373380599154698016371167861903254776155867053015532359414443029174808349052418039731697777007342793207134186856574455635412037014921583214876851644718769049599622884553122804339595001234492840691493666583206099708755456672222354278457716801696875051754979316048358036594547783592550311928159982340200472581422375250105363771904565357112379837996648759520694117888992339202723454844170546631656184147009484229158406248624430531548075033890042882415917503876626537086552799223150619010706582919244006777208997432783198231022169354064970722542809215597312538926476117878204315818022250442172284561717397351483602830470356891164970799222328116914035934881778686941076975145128110394065960908450747568414010973426307285467021333091238215059843226873758048146530947808050287532698562575925676075850396629802208761817545114370923494780254672105035767441486243052763308265650536624312280605641072245334122361814785704381257879088205239513783482186738534791890558424469866062345651222997673988320303884281170893550195659427504909793729509165510278119091719878111163941157579514089378108974248362191370053989609475608711532278707015444961714119167438354154102620968540083795360145309477245803161445276079886108585437081744093827725194182632740750401662651091623045591634595033296607456105756702691143271111577293880051216060093452752727526794373740802191209096087189499499948883415327279292116837737266757878133389303378192147706088703606909303287926927085765676995420953853059681040548853501874886793051307517682858808456565559052664663265761699825207507933167102986437184062757414156335273289598647627712309392538273096556594833546719174010525742230817152745774733335761971978734706861043039330523428855019614982575296210498728580179705853962830357628784692662029804481747824250788817097276345843269138458327660425447535081429377687786436005735754015735509480927601569421006925730320310634152246315126193391085957454078510085028728691584974311468444390978721085589999727802050834500859741489321275735943341392926063289416596902656495531701899567178556057373923021305386506882176970330883932400564346468508854705431777720023955061483118561268596703095190847013664772642387114833296365807487858974042161794344121507030193052143938724396176900537623083209102816381739575889703689610080395028809287840730937867393361359869787648825673714693408051671108372418184482680891196720215510191968871315557980213010118387304403047346333260952443553786297892002710349814886438098797503658057676064792330129027558935845924922400615598040212975544136931605961704525842664419309602227654256416623415346957590600645937790481202973236476355787396558656923236101461959134270535831290398345834955736298448009034245282581907224044724523237612689432607659894978424488765086474975253192546554223453269357418743257635240493174493695709957012156914375044154180749813157545188067239850051792872090927323064177682926473469544879034486557389060319573235434359400866077011916375862964952282715348357267775771609471815170218926738842328171969387254085823171095891193184158366803126094685762648026802781835385576396132783228301395668464008954377216044370247840455354007020626881901613293350408208811410790530964682837989549926997537147740684018211297600274323953954188273248170317114140760606383576231529247364999321962480593527895166808561559445335558500284104474851642307902496046531969703547795749880856242182650290042161227242592449060211441004328789942812434225232980422078254485790249100504630951230616019421597748111050655711358146849919685431136536589128591273641942105779197769156892787713203994528902934163742469711658739710799491390294979136091556548166736612029113423294272264845562195446973284887989963634813046606498086942121194011221859861729464453305599106134366073029187787171514155699138429041656639925160194862567665670616913530047030989831872705430981520677402920052275592376379424441015352664299452511438874198410041006236693563909289404424226454103888156815702946964989966655937828890919207372220681396328211757093921387027868559654843707015316559782001683389956347224795210142304817625178885398931114039496994625161014136192477435034169236034231612016987387210261034462746017835297723891326231895218444156040348451446144393318292087868727284400406714031664946082815474287082119632150698466103879862003537969034022626598545625953097921345772713042541955919213830991701896336649013452007418720478248494244505986408378739879697403636370316476469298960689496868288812281130431759837562891375489118639380438149602452589154302644014082923519629269835472188050354785639818624506842188926252470934409221775228374542730435602962696145705703205806281608817887080659031456863170395125016544770035957296630600443147588189759494736573606284627561511703598449787868615724212174858999866936294477686239310591376133054851314094022902227896772932889099206401077151956223511267946969906913540602608540871408402400455517853276936530405303130994910149532452263671036318229513938092884285893950629154634938647533994698429394095589318646139886010844245776042813102399057534028147502932188182966021508830325248161762331396704181577793250119756133558861253110144415937010456874042398504450374315893340716541801420663770204758842139576395885375620417631252085811215443702214288104608158057971216822765041367383483650007839365122893409305040563860340429484628913975221612572643156142040121642657059596932695419288820066831784801023997712065474854358114521709806183717666502157050130365736335944852088915478361454806158483230961613518798360386193264968844731874036823597903017282678937217630187358458196718298651893355293720307628899942260137964737911990336224169122939564147100230945338211934717748650058580018584664172202395489590805600160485408978127504392576300229687696931078997248537221553456025303931650081546734549943050437410369008220663890808639476784219001583142510104046550460393138850671254004641313465910112754238490866084264090079315823097762696399948485290655584983594243048433492289589037682981912737478025884500507720557006720316969281753338325061421096139466573765049835179363889368608286714023456120031131413857799873783380983634681195941145636702015328216203803002697110574277388061354454871843009360435211049731924882304846385613780861280650880295961977580513415816322726613259586778477562013825947437322557193016505577147823906961077019932405059413492072500588853075117656723852460600039234123315916649048529314103648666132808297555537054433062269288289489934195547149348515357265197527762802627404720188994923812509284820540439473035884958412377983037501627245112245267280471239316579242126990910759613065036188558471811605046019328232066122509394021848271068246873158638219461957051291410383068023039572487571204798737953837293202900618469825136307949095178277044498465023084134033311799877940589137108180976153982385008714640488419371479894599474731120843771202095752199704789541573295359563774049753949276567800056742362615477443825908231482750886592808426735334339255767491952527477760330734922405164717521995890801752011600951161351926421223208829450386186288510160612729121845576746652647508090664010615745063613167371397407342152956272645610258650666413519020955899532884550843715623654085966638039611302126115015902843918772268141767125281719264779632342156313316719910704243648329622726351982820446191993684686030520723532564015278808815264532131413067662217273521629522651451471538149191013608013687494177406318532794629972947621462009981212696009900450927770657957219546472977025793933356613607570085359013271605955182492557558821493984907443279834548801396650176827077068980075712050962233907599922259759667057963173080264662660417889611211669800611326925812145761901664252446490219168558587192921305362950484683335107138858598227009460883454670936106112497292469926103784292101815348576338076025466637967035490899646558332150385460558209346314829498921141512503549683889328528078632845832583363536574939057333045356779750449746664381127667075523524247822514362194310377597739605601939797981737751959747662480962395870474904373501590051025791912354775086684790946137066979891172250031439870141405845004642013891608728342312647947220548163390995319800062583959866651641210035905970289878080046809524345401409760286420211133311648249052926580997654814282772534064011120508903424616686284467450446908849898260271522035017195070852640090558820550934735256374463812732439232458263318777611247172990589785601799677001237650915838694747067592777242378171168533306509753449791733594564032329337803907434900895204678732181917727214328357751308313287522428946163519718277074700355303133660240220321825886150535455183003443150996748479627823145805537950697292595397511691243981236834522671139609325542699512593202360104070794559400297953313389016478430997334550176832376611007035717288456862833329226094354351639777092411327426575574625560405124875074608439521848054961929306215452101391436938042759892594748972219245839561042822600237476265594903621538635935520311752816152004067941273856775110519339626719307894477991917049326660778464746739209901425659350785315329908199641279726493623492550628869240305174796196626914241481418455786957163998373418180753134085903905041522741743873803299842779196965806106407475203558818633755514216435746812159426941296820812186346111375726955297368274530968363580901755482499060466328319732840815249799525748484238185300219988464414579185915132476442167946746802268506813373337110984206653410018258771057568163686296336577928117841869968490587004575938390348078692347298102796849875804620008719507912858672713077939985123440201265426269141010362907486155078890880506966169925635029633145963782299379148562971590309826045725611598024233653434291528866366290288240776919058674646213344478757851566843977717713365970265537174351863706115978257204470277617333238119506144196601394845000811301056454890084888347225130883141636174769648923986893472203627908647363245246908661441040844907124848494357711382494531116235697170663430794996178520222042009355755806644597566232033063490279645480061048219899619940561422647803044097006637862082250438743737513784501527122018526061300646750598839302301321293673649211003311621830266058825513399053997316617871522338566448164280362950993722378550730166960078577794874715368093616411515772592577289329028485284382943728476368534989054300938829697915295280573258011587040344811100349031138526332360687720002249826326372207991215999844233716698431696960123461674863452220994738588751326303164879272857652980951975731724058120610676076312499384808597952579668582393496189021895395677013481866290287748932357947908504502427546933676377736161759237818148688987728048119435787141128885254384186005631236869789682941239153284543704611243644883288147627261392599583855771317317890865953089285787629036169946550116202977522620058121472193999488962902128515992766012348031481498402194514869040080005277770217042534495083178000866342839560657140196338890920734142725420980898124117081320599130302556066188126665863689593634556294130198566372479304945470866620874594185624184320968296113431307092364411900197908634788276144454759765765454781990282389797433645304327785736767915924879864725906859314243207846184425022895473087924735111639131475560088545378226368919791260056436154776033387465034841201088381370699574218913014160168733477840420026816840092047341371361193695056585700889594819444203207378374645937256599798355429321840919728209793950380253370456910951378785320920572787993369843695915823433215867127230724947836561225541857382735857094257291228987369980238668675112023342888647589648213684377281212266100765826609457317843514181672636336571092545491366389073210410706495213914334427946724020837109965729645006884574748275104164115585877274099553261317182185317617170725239449600203379637657810187055155973780948599680525813709585232114911046246280295713210907216557533788203782871719036030210074966919002253189086536249702500585386922913558165810664960343199026346955613742626907135659436215505515780339520433388322925894598385109325810206408929638734475377350629928443157359783144575207902763872412494668429794855693891011098827304122083148638536183729922596581831554388658327062438060452636106155416518642575971702682428610094897092844150340904435737557437334979036090804650789481409703450115019305048364886673039463559523407342565176003492786968724623104098226948633787452655038708166333128322372595062018351688803012197167470417095321374757406600286495583466493507095513068735867412519537416957355518707875428670916790777565352572439954582047266638549496673337928533852469856839457850751319439504886822007660133285922547057860493205114371725081127009282230847089259513026413789811727041709069110601012441841514581088945300709145626496404577016683164741675427772215346121848173401640112488598206282637640760077433277241445003076945428173426334671010734772382842615649712795372355103109523984999273001097990084016790842373785487330849889083275068338014277448174947188567581021367452779751990955135044617101379404642528759731106186020733321408833545756433165606078238511994382923288086370605165354761825161707442126496967288671328627496453785108166538442391000572271965736971665888508305835442475108717056530420991039635957278699850697898970045008615437302969552293036342697609167539315958111468509131035081475312038860717160051379452553036618556872182294437531926826108761743030411810847898168360480711556091465476790479698374120331079679078281963451412177093708198601901036145235209719325623187419930092163333049781571352313109098014227398775619455917313027187293055148256207624601522011829131843572348996139496159573509064725791134401026406036627302704398704422946506598364856586247554285348433103292863093795850931710838515367411815343710074560741684233238308696826549965585374465490839765136020774624429526711380360618312430918782701584059973327692824241571054558021008253403279464689763001610652555620979429168837212877522863217932413951437188443008225267945082610046389171298562877182763214292036796544012231970640015016611206507016043166807055372165204232104438918507224721224581757603764958459669000833676703098157677557656380555887907360198479147835361614831018440225902016382543349191776759451160467828628749122497133053090116182287418070979280916572482689248062241862880779169076691774764257344106803088150401105108674000431161079113648438006294912838249835441724836901310730533534295140641504488970029953186988929594459348671845071982665385865407750123372504715587622769313849372628847328126520359964545882154065422093632999344445547152840687297541367683944817167296860555435937769881977416105992365053602609806260960981187241026387648705794581481892799136086428004012498491425335972026461815923269081227355775348658697495485421015224007964140412499088569076871611052850279198149543285741947585072619345826214642318171692295873443575931046588456051503680580872822175067956382802593891297973076350088333800977493282438193537875224910839194223232398650508466446143879068296032660319767942257201570392798359470698195372445156163542929931495991686854677897070902135842422362579719598691946503697247290370583154067001959388163572245654161196249379808903029678673463119222295203029690903258149053483660437221730164937891289704192871569070287027562291029581161723891492781250781738053295084772143602791414746390866135920330749105970863096601136019944479105179107155056362932648678818539620570717337363823241940219660658098542994443114507993997272118360040224388537468164584500161488271161596352786114759076015894037729954511096648086468497908728967058738552351603256357453743703520911900431209882993001239855560755319843299259282528475720585590891923368471200053183191893656757224575266770008773648651407667020250880379945918589873543503783320530775245849562119225253657198898300187239920540102821159020831427035144548691409906897481634825792899213437332305722231157882283656176284400385102710694876471494532619112440448224584275036443362849780305684671413422761104790341755429597429836840857293595674292419212428591895109010259042484006717141961346501008431322583400751974758705891617373342906962648657372847592851456549425794389089702561062313384225186736993100711837168760548826927903704534200649756351909760912608019555115283550457324643834291864080537865844915749941662648817736634406257281001412786321264003816994063533418013118920434344284001438237990573937777898585407518782321795785439936071786395303235316702477189446764468998811419174292414718311030292755619847648362687062887328525100038304461900219600740847660409202280698751631874411491752180483767639450831115412407282476740231840122468624018051586100807448100917790578420834711557827755546491558639777313208902189530277273440157001896617613782132164650475615856764754124789923986816219193169776212221423039451958172807521755113570149264130176683838871786436798055043232706748588433707820635677329231926239367580258365136266751336783967900894291066354007995964862382254301327556414749909470001245949431189186155162518074881673950784486705861336817182383267126258059278773680506450242786927534308772007867217436119898795437752882611613677167844603449916197817371947433665081846353382275412804582191043019376001610900497438865374833931197508197101453034873135446009153335904874705483458757498493660444372518320021153218523485550742432604767958616859456290294116318173408593956826049455329075992120221160642374306625621043183942442668691790860340619464150957535278450266869788066626033784452945045626189411460140793861224770722433259941706053333748443209897342281593670722314550050190998936708238224163551569041624755863402117433427479543812072078351767729541328254209511718543921415452053446109994088018959406209492987870867925954918237091637271330571828992028062014016542295704872473188726018668325583206942436965395420320797871715598106864768211679251700432252767492585314746568706236961589392916768366861497963484598513663142365380082839920125116704738642712624374730851242645288445284326570681879383574368114642740335427431297471061482402317433767468674209580384024321125681496557394221987098643626334825780015990715899334932150415626339584350095340083334585595303211154601807485193423419988049434568236676967030318187405014214318322838259225958098928923841883250394338742741060586176533938210325900158903839874647966308730754904634902796154719820958086602597764550128333865621451413089720546874638734657570599312946721798573777029787399906152917015646483947500724971507939305401048980723495304481483799539188252506144174893394595815492471130700254090862979369161071688967340016540828149458619934271558281212598179865895053514227388525154312958570098319051510051713516697099862603504060918235436603821061570061079346355665499022118231099578344654110197944120951323916640491323117568259209280477751639590303770959899006667095494867228829168819473050962915967887131625774613603967603327991848854117182192552626671314001744985921605083371706059416976758717059606268121089809331966246074530777295247470525243004441384290855466862656291553905983121319367611050511277535584097782375508718423779736829949156234028678954847529102819205452369630884225781557470277412190943408481984755173503008311106982623500414100639777317896985165341713455693752636269746911733195102940733656557166462562446507822876535716727790791064229321643646245218382148334621337159405260831709023969661255063113199103228091490686687122103550467731743408799427497828179714759090573211628549748899595235221386948760732890318514062729932662627830854276459953410223086380339316306687195812277805711114461402699668630331183477864816387481710466956596874530301076483031360599403539854265759374101487550974445019376501318104457909414888109094195873635866364504613360699754771511443617738653485902854854613115722197498814793467349369163904033178878568429754269285908030653374618559393651043697536344737722540112862713290097635985155178687806894044981346824829540617103154575224533657295624848756017259556158202592705471533856164274003580553182735244924784497917606387768020892634514832589244366426043581862608732634820982358204906238611823745085790845164183678116963040423853679846571983206850922267006445337554843959053128269695878024236171888315997459895578049299608531763347914001291948291779148073766186934766886499511753007271273351738281305904934495424478015288564806690292415064288708405224052405016820829954197166255568278562891239852893216817870814057588543859148883632458422916148233480129836946802043926349803913792708444530514025038009154707186095463276374110910257018210175840451033630333188949423574724941777378398642486924288587157744480809230015176150912506812549583242901233286713002227067293946910120199306879530156153649374072853836248153703964154065260513274951188216657417094010532400189755270099886715844086286503542674236199278266520387595808973989934316725301320836003705785429762948624847564945017063450341787339020634517357382517971563801743755764381851596313553850657279509308775482551983990068781146891721790388034033169205002124657912058396473270758286118994887087026971359119217821548276617447861021258745364911665338047058883683422223184826488489759192562887913345258891086005061512789724737185999588179424029750792982742157174638172777569455390161987299114944660384407373488079585849162950929766409655201091594332069249580289013933435895605449464055715811270363167527311550472505024488150704760719531281013483656923263158409243301267327319239954260593424262042559310638147781143732783388551738650927414012802182255729065777998355068661446529756388350207604310865504280801623117130383494326603595292593860313081174242343025861166747429537690511856028836913178883670438781700722442332388569608532550061386523513380865163943159025748639428699402403316051479361703040067800906665144134731305212653356828227213592782546995056761450055533887540271506366282272493766221137098786265243834035784197654940847324519853556956799209150057996080050051733497847998285008525768302308533958492610443564782624140754325382884229161323581363600928992432644621283188671351403112057524081221945139605518685633597208580298292143614631567766667329101185030871813074837530179123576228672144622814307152044275405999832198300178569980163417095340010635683305071702818292230711323261809663202713474907370468371728865750243388504821411565681360112617167506077021870329601199652864889387565511624657853886653477473114122553152994404552392613100737640564369935359196425769438447189195978509113245458687247672840972451075350955537346991402085679510505110003681084781697677689336091494713155157665604732164739525930935219396706736195717639006251094162287521755546175048602556751340502791079562805157201934984172682839621533115580366962580428708650741575540135408634002315863249910853871296734781663740989661131191510108606532193653735776221322828174621906809090766539785371457482206203090678760106127867616737671504849651573847975624403490299280535219509646380510547937764261650021637297726764954149221358749910581399976643234481024893121070460031400621333435206615560744482460522176107500265046941034834315860831363846477745368768796307678819448180200609852195383203768162694579825984571782168236879333288942018194634042965060859040287140533502454904220170868851700719277573776024900718070167358369378192090669849347109896608575486890344477553899476574676050194944838517616191786303894264030793630046750543938572856623533614872283381074810072753153316722128275108736627156840420340081014837481426764258949020691088279042542364942327339822601149537227036630701039433871303876791036279373434012498749484222388535771737721907575959765148489069162503318842557316358548312963970207964811385158047177371823047869172871449715345228311333433777163022875796448524062650031797023876214564827496430174364384527931195606095002480955528522654576067882687639879212666161226576991190546727892799883470486750776520152257825622810879784022286919850019018772400775569800168844599525220857474291827479180399453196524955576843260782286761022888178471384580021163847240587602967526847537940642780346300514323928618846506420510547500789291888200261611322206467483892179132184048498669156432994287715010171000621925674879959869581757715486806314574439528161200746581209920100078676802631665305730031621697394527716693277123960758024860367485969291636257016178362839564810279079737266007734581601192976145471161339468893078845729260941420782513635282947680357951877787634373926064384145069319274421745626674424676283112961547123880723142610002176031840060845243761316784300862652707782323721486440540773625455748930886396293651135882082015386754835593710457399275699375592421181670061707828019075008548174980611960527241971554905539625212108933704266027612984734008675771902295924512838291331680151276669808071956374756954650282732484940848763937145213143759170291064562649978448014738577554592514175039265675459590354212780274189747431332469146471024417937559705874201956521829139671366690514855526824024550095708325144933847982303579349988724551476694707181056393602159529042185314750646366414299538954785148877168075526769276514605857471664661606003392807474526622540058287216561401699845077649945030822595247354153003199755643066429240220913085152129328823255508019340188008299841272337946314896849906810794439858611651589657089324066988376493664984436616122006677090344429342823938248553342381358926285902810370551346632206646617086022928877051237013945317035038502742876544898343908216220910164153533118305625325017229180820612149665132238194011908643305386918497722911744111284139153718567064797643630453584974517477681025085007018370974826352363779480302064778755152575034617790629768489829255882122291771695295988892297502740236943366517943651563130226285272801686836844060795436106460535860939589766923935350073693623405888219246792997929410683448950486199463322391114536647053368503921912599452661729068994631178357832234167138860365561546263497364910803205492729915897342297697053818196395786041938462360566788801488265968396586177653238428810861995871630832473032427761988988307634254801119653206166911624446279081182404921571880370729009104457738908989574414659116921299076376488282753566016387344819693867017333557469898146050834457351387989342277676582092550867493469819913467898634958720482697971244179861610409173029332047904933417023613685435798107824828033882584617511306752204285407130665956342618688960704349014282446215309177761534166723635916019051934204570380958414540261593080981172784588411318537148558413024079886562337639841274083690174351069839285221000535957697751912244673376628381652878916792122472850595879522709285253981780603351233863983837120744696414793281724774692501428781350615136182393483483697622747222954998432469719949140272817187118230708242354681442168677692265377675159980975257011452848575271741540885603400403791663272127319757987376532913647593131572632890940179103076544443178574369794969658597773901990834286408779204287981615892961299900813522524502777896814543876610596193135048543208181229186621231232180788840491149751510567611307202693927033369879926251911010884562239357827253360548823810425124687758787353650549788287719911538737291894043645535183310852430214712129008278239221815881049968272706917109727560761683775782682601333476741140711214986646960851097188433198737330002505239253819868624943294011278305981596719438488013737652711373713783075965162551579271719263225092997755074445128855809799692617856784796404742643290371132996021440514661172321809191167208245780593704530571052459382071684260889829017908425725545269982509086430587084850388742916841551919868431736185610246027820418237823596246415713424361021554963070285291317560475323267949019231280429982439738630047717711849560693274297996514367409786375708666773592729590075164313156294986897882547791051208659871205993919785751884249329604572798223689239174854768091367608970845604092129438979930156404572096533729455819112464154255542708653735207707618570654991208157534917914283725766323262231586208001803204953581427968670126780303608083672135367507765148220083806834996312129515983733830596269011670645379032871913994933227221239004349764480880025237696082465444240823621558430347557835653684206523158742409984927761034487607646352653438278188828589778261683478788995628372846694717148220657929627130625098749233524373879510346115764050371984590074404878059691566057275960844507873813572193876519375462783553567720782508854273486499038148907968305214487685299560539263976291303555449662170791465025641882215743967412265444864763142706432165317079441874350318942763173429548084747268247768036320588918096980403172095180002119308199852113367238938033676144236994792799309501384330016670546654539565482189465839626529045250072808096512454398657123304712438814742831969107365415848019842804347115299268824027051240295994462527819104892436219645661328560142341531878962894599352902662502356263417499096298949356355443857188985214481375238474319774825673775908790041516275155004875152702190216379252607915114930785598724444611010554106622720869906703598612130561282664167116107133399910341038708211547619055527414244943854759793510979908178509719932543422756207714428683933185000675570342471786167723027119143498454486110524522260925698099366848527826775925854790152600451500389273072848500627653248959689707700300270614218096353707105802758713953905823237831591409831783701684856851812870223443536452056301215508522458710735915166624161239246489212449279021692613533629993108309117818819861396762048735691369378389225167488949547676760674619590587462406912344417121970048228180938268941884433624098970789753948620993039535124704781743954273050987006597575145074575135799522356510023729237210894317607167415082846465698794399357382145833910885394908031273411914199980659772745427372667596406666582894063068382262350766875376529723916457366104129390209111527937717557408594239212585299048255132747195558504634276633020605826555230664918449591844366407774837348581332602296532831554294893049048663332897907629929305744563425799058166179803177036744599220673031430561579852129695764421193087860908006980514777185663728806239621438790518555056808856484133402906071474281042942463046217322262634317368811199752521137012006485327483741637127054301831253335409430178663751997054206961237555160256865506176197861697355515256430781340256462525892620241553559773059012586004089175397703451595046181096288274947702324353240931291592153941616922778590748370825206369558910433440585164975431396775997874690953888981797276470642474454400117317326082893662030246945599629703841597868574768611407448520893307786219547276911606256834138863743689358003926260043700590045437339869376982542494527603833977839672173859362589546890368525183330191934025818106419133186790242838254625477044412605132660716830888387182114963750845334167350324292835633973487989793647777434857357645782203861334358414186946430040865442296136724179106199201207893153698023383084845206361038288748698817019774907915762492217997735339184799790064647588359103050193833881235922787759930829048820985019194336099912442065492059168242849523390308027974250472234369098951871842616073961908858121783951367447802324358009289128862151146978264380466024602428762737945776870797423512809372706763129859092912409814018477562728155162024449503557889587088325461537969656960375389392224559416975208506803915884366164314060255352584753054032531701306461052531159836292252878947501839416962786782924865186271156915584882052453087579018854644294633046679076013837601465191705863762087207939815605226766824324109319203298424899426938414552272859973730596943830072580900012453094498814936071383710874633019028714070923154963027413727866452859227468765500368736642139936613303198865546711438021926172707268433663143197878652449410032245878323392146600062412256153350282479394328866664671790809418119189933406375751033275188532464335617695951683161809530393070244354338048247907773741655862087928475016470135808676204299878241996541860662093970194672789464167839113235033611397985328118608629406520431928726074318560330221271482101668607999791736657667533391496376223944536191312698969644891057429346465377684128715232572434277858170040872656435935123014700786828985352392989762857342148798203565486412458557904852281032897275887799651769490394451290610023716489786466069548492505373033388002624445357526120283726780189483796206465623477006246592099955628641008770219333651193673300823114567560736242256407621127183454064693941681057110081825836714914663668147396715169263538650099802408281488748287905231777001532259723055880218806131713374840473555840487302825072385278294431561268126550885290879662427573704620961695791193589054276379217139816102700449769824628512855212526460381557835142403494636924167206000364008332089562471179072842223714787130865466396597481087543691984181194524181835881447659201987379249005141689464854196548723633739405702581045083835999910111156155422605119158445836077089160744775907487881951157668625161468810890199062718743895140831850000979668357096459538627014294839551811806277112732293136819555193714642745968013731234527349402496549878916931250186413177475353950648389051910125048838689254566585243834452534471360554309129335073833421356003342097008513675533310432463613551331702668753367123876833491225666899248970008411266765808207103412990045244266061602139471534215394784112899817911511066753049183850206362224018929103297420833583340749806179432732105576205387879405019045981478468761080701129487375908418436350124664273468804639390666967355769115366034478714919855471121021796451573031780437110231469451109513799957259825808149208386596080277518162409776864487658912681786236278533130847017652169576723682485588231640728285184127473172445709807940321941069409771161529528042167498473603810102851497921124719727260527786514255549866715935839328649134783614957062459072760125804059979022148151197813972186571353825931169112246079886315702076147299730242909803991962742563702068600201555621392679502370124641057037388581132848159778993267427229754026831662884660909710826055607167817922645902376646112902386782744053960783116447360869876119409911672359698025869221630389949135383429855308948518433168175809012033206966794773418832944844846928164218193874637942573643573487126194505942874766386543927212360297483441064022518913231125122663122875755831795812251454565820193114595829841947011825284279377346883035613643427135102678012071508330727105410117247268514474517155288965654176784797716087491147762441771787274422184532202923643937744888791182789972003883276269474573271967797858425214946086355144663991841941265330666212697407620426389280456230354267670586664078151909505814916609401057620222568718753049946247523697510586566030726394971773344794010533353334622257780413709238271047489246987200497600164892588779753917495858831627459366734092277020763798425717148917580928690468535724282215048282307696425507422440917761271792354806235350867743530446797847059763596821858141200138172667954404517135813687374342054110554159629931029709673536689089235566272768212957828198636472917820541336068654309522112321027083933509050824524059855648472898344062112613383864361772346516573406287989261845521302024813072737049558226268498472577187165194768702403522320717530152631583503789628164173465767204859491060155003687489340877439753671180209596664782877440727835189019135635234848824673306663627745781731999111638828282265158420005451625886002593418505413902763158985029553138739894680458937785419110234912204261762796313225277957158999256203461727043787886787950720863171168881666963128575365425169970119666961750651076035038016089658075068018783377983013691831020806770780292420186379159147004907621956820510753435065566461502969224768179370878385097234396822747538978144513581708772486074012940952935342685596895499110870451670491946462895103399534478440547161443883390295849383882890849173792269474646970327695267427988773766299539341633660796296152987868504818197705970764202188430057188390677307880950649434002262984306604979811129794051810199704122849614315723228573677867057785626068413940666393763979745254416476999251747662565483045947112159429541021665671822595118486169297417431981376731491863520767110175224245148828449431141051377418897209273846312760414579625994738200863198511373920455713987473349497463168258833388790014832700585773473844362536126707468443214282563821579572392531403782885489089496184313669468005373208860277619290211226013903973609661092204779813138087479665551646139979536531145272093949579507610395029986009841844972541789185512064992006233094568971369781488718467600639689942274142895524823752898692663838039605557801780571526921007792030012396078126956698048130861088263816818863829201070835594179096961963012868416189990212870827527819057906001323563525200349964700490142105041031390037784287252427979813772176204216689788133520035884848427644869987730343756871190920285526181865296099075590485264370702013283213641831457214985187827663757148179603983645859335813880251381800788424968693109470272264134147969477836992235624925856255759889901187257147334539114935154284833951561097561377065458596911642997280052057631379593692020364184572624701691185157415229812920244262234412235110954742298805840207508309687760948516291998583147499774550891679924126797131939757804281155318432215488022962445275442452816963166673575550375345366472959620443394129776067706806811702852830310495063417891913938341952185109002925656110522024369448124234606627402731586868927276370024411918294158320085893570000566157487557986490829201949638027959393679571508888254233441523253712041086160341102000742497997544118525720266136567658781683288032220584712274546389774929666515073856155722581418804488852698735212110241958223568070776913978159001887635508093775603072135941631342866826228930580277069915850221882284914387300467632442541493172944237883111394273856713957791509171977827226909136230225813962453182505177593329995051506207251914772004318936492883957642639176519420961379244092921605352644958902657140552804572880047737453087045103855852890531963880755191453048850122346693049259679623398924190532244840908181592751242881518756736383833543975713237885777350841729018326234046052896336351001061089510728904476331671988984149879287700182930416448437321298738233913810407018548470275690052445504787443321715665870486845933762759113999081694542971910742768946176810348236603746397050327091041597103979019373189514040259768840289175712765391694944153254907961882708394432964878971661746405768230142901382908549867232048510872912925479358014996945882710529501982447984041721490794105195511121059284692265101985829032212132130336867791842969970524859930691807977360422321898297566330188096658838429031386180084688058579807207317035116993954717932500340946657293999685576596665447939494415533426501090618299982235849240380323895033710546398242564167351748345892793491128279979015556626021386092859518777765448083403856053572064358668145266406574070929675666827725484004367154586652587911370098252966215666620631164952428523702753377686509946351954733304390295208864162267301630672148528592888490239539301807828008479561061226620768187133807774561232972686944763278101757750363810870708331214234199851762140824611394755531867742609326593119088194526742736017262833913190516216486024956187352357483472740696510076854210449682488563674225389067590852154879147978116913209752465914128472290269663022851130661239991069760482031444002374599982255229365785620069812004936088542153469033087742949386793947960236497039088727731302052975137623247130152008279693887791271373687767119866839636631797136538228115641207715550372418023679606166025383695598330944413268641045613375645448114637690731322190967817729250993319847637198649309020770275259600780933014924790030149338132711634307892056487913856435708174838061200996656649461418167731309977850630565808578181180428977417821488543134109641371618395279402274098407826756051306483725831279509377105608310678243366541081754173310882797720013299280436256378634434422276475161458861527282332132661833160695305515448530492242878818538277881412630954698511761987559737223221643633521423106012952051983180011532992659525451502057671050311099247871858771366782889424991812818568973088463326319590917023742156295920720007596563018274161952804198879665672271086293722781203304146109043620746607726398619307668072808706631661006643600382194537268532550751449879311964210646121874508255382783792593552260444373823809862844425624427877507512980590371008844943299141353735077265591391671467029180201223467983484641917564940675493431398664258500013240791262299808573311016724219611593085664824707861244592572603617981997949752837551867012270581055070438367022360105002485282541468800282466983447470229423385095886507323869692191635775452864331918656721955069251005572881425525379370981132847842645118387152925061901461352399881029775797284265352264929419034148308265868266706465420161475998183111494144485493840234546704688553807104664248904011993158143655484388167959518210533541826081662953173699286529058133858052469052765177576673479450899069173103285980223003846212121318605910385604333921657986042130536655149884433572848478097105152459304661968285644526954621415885194458270248074737109244442232157475992821107265191020990237621591860352982670790700884100099215142387718760071663454166653927642794529760785877989205568819499483759962979240841455642755267475589499527449928707910619580782175382171973239810024754809469674047231105202637488524796149888487028247451896846533753524912863810927090274570137910216023724368339878071447701191399132663343815577231039792418891011892063710517037201186379321866589890560647158130128788188209485816511988293525491122514451023065252604516928567163977360541423609529332875618682443084196363388573306498112317049160602100025953548255893285812295327843102241541064982498013196353608582082252648666692838161590505319914016933853819027632102649781561040374047596941675877694351340641090009164134265753643789528577278249748931300721031272810178624902493711785004708343084483787896841668536503371321422751444381468370535151361786848867014322479042475447808560010208577975206239647566678473660951066806972823865268646277638328237519547139398121957744226024787434154834369432209613826996019246960477548216690996485159488601851436989502576473530269540175227252319874951303781902821361717299909780074525010078638948031917485650781202312098075043096776119552112554403119129545671198953259622336928220361261823398911311137964406190554409216054736446674411136355911166036655996709485987052973283646644142896686065986633682744699584810906398963614847244184575285288290248050792692422835069890933135043739871573923956838129940462949896444385031195675335443697419476963986193470895040991386339929175737319338620774244776165902866431201313642821692243551235581714776052136376977295022265479940770137534204895484683455784215116707959780034344909565613640167451055761954005288158780019158238514785742991236978906973073257248392967439300897754311312962958776834519261689176419577476538528215482568937612033799776926539381747578842222152517613019661578175657252079538781180861067917538110000507225007783778513914093121442004832103814485398863551010705810614150666357292982992813516722073981681868327833150738763930986526091388757187081347795877207008175052869377481951052484362824621025404379136721572433877537393635727447706897979439336008781032901607355056651354868524462162857575968145351619284466744669203106435488286397951617051038542532032213413418767580024237025619223388873798296401679187061134387235402424729240152098837342006419707634357568861701191572973036797059501856645159656978654127877460898846524944717782981886152816608000688398212640275481775027215637442556365920867696106492824945927834972601279232978603653703747637299639875814361945889920008778343842633663475800368523793753209676504804531677255136424234958216074847144036227754088542432929354356145322808406319660946946913269309855020814407624952691866289920548438223172156532928224003066905114122596702570996272644561358261047511283806882185403503110284058923097940574750726143935852309349669151165697319231130944603088657844781668153310395162262804462463024930276096718137615404848252092307789881586703821300639980813798755948374654293280886531450152558415694584068504492561420315861785289618882841726340724780365666251690820006580224886241246500162201329659180232375566351677217614801196391133038061554537867827553890537960825399098120954016698283633533642910367970006490442853661485724823066061999476470258623578673542752530517646518885789954652832326624892870941238024752546162183837098747135453804145430095703985697504315716236298762769907532762656854693310870175102818094814620444735255460286199187167839507610014554625836067798543628310175484380958796374925243229559771736449106997109123075280264076144970316743402831168564182611130562707164854731746454406302189565386878072465994069451869406694753686717982065971255221679003602296508727865977091322046044734904937986910868651601461452354155959165960040671514309539468939797015540095244320153549858257799832009344125604268135990462865425973410379801449947082209867826142254927344686371832217986668832068654673588093767947207105830470698841617573955203457311450076135361516443554730151747733106643558456180376491052231334452666072342012805325695793174434549190104515971986686101774658097970744598817277313273354451512097871664206791607268528493993402962121604230567915023102665369232707721039967532057828929278024371408655949023456584870846261705722167687939122540518502342234665278351845852863483180016756480055047220560804091647107884126897032319687033076787825591179555838642103457369511723224178487619696042646158771441222409966055438152895962479203565159801678459955975476182273217852090657414427755323251101534024153345806563439848337000486100430106688421492057809527830341310500444478355460585184315429405246644974160281269844053808564294015832410619576442764297828248852416703681916445364600965111454959742889193031592794300030978538535846223281215054945285926643792454329207993940373122844963464454512892203544814653120465783836720463925709890388198136208149080676494007040594541372073407049960702773982940014876653888567206535881399515671926561985621070187957503796548278621197328883813435148511641995292505482623284270606471576290934530219036607696486819399428476122334113949459365963424537577197095474813386848339647297673283951068872215619270418129275888072933573926032989567601100218976076353253221654433236315259363286843012292502234378096346919642983125387112765695619825980237616704296429746835565385317577183306786045814798353429056753753425467364556695956106902146228903641419713911514014365759784091196158472802071131438005136841414051982325032211688784980464462282314999954529618407004505020039717861803347829678716827084851693282415021396234251354461145647465547746645859666917568089916183491870019783917114822395313208406901232772111248736361826433180593342758800530808842526176368519746141531598244165281300056941057472066734196816820582689509919391735894099522341594555073687233773254196828524419963311389020049302657257221220030840227046139139642948129502219125896496301728496653919544534993565799439737631482072741451204318012344689312981925384180521488476570812882303753677030159724326717088015758394661450788192814193233326993238799886817716349755932037201648686915608756128197456368649191927917058172790055737116000413936457766288160434480279290014642664813190181029154241059403308350753240889424988784241294442545801991045709966498607845244862347274133954868817461946155106987571578216309439342089127396186080365508918484581896218471451145414539900115247338675132399439023568728285756115316409096209484124032486145586923230560259163671107618444790079093371539636721522006653336939975877952622050906420079778243492000027677244876434998250985061427662993535056937197703621525706307600926383118077692837258515187542033008091996062948762643564301855684008777952653259328637793098078990683827949973007266874140540261956955620689636926223284345502211679850064191875751607961291803788688893480439418327751650077385007618347035384134200274568160148982491357529631438680627146658370333981727171513213923866206819188383067992074650602945932915202534369191129482066684939707125924082472358295882569735822425656773169311315180799781635312609886102586326433836233377760623418933522418446606241988634664949197601997778012517744700814794388665740297733034271748741300366059168845137698933537422328859483326560999400704485223447133178466104856996894679809361559277503925465928164913160597045309794373145641064673582616586919886040817525117094809172522849393430908914969014249720373500634952733360482342583560936734927584269264367298423914013893062642757934107836203818944824574111454902745235460602735438523755836803763897652186224415314975133996406650192159237833952643122926030209727123100948789157474266157233131077331547645897710163838057613108299515757358916731717725869292199186613526180368916486918999656189371326767382930043872374180128413470140406989603652069754027227811453184372585231606777923556122040295865773052800249075907943284207146842165637847263871515771003557868260868123936143128375187367119615112352048581405281434796396170210327901632141530600834985111840295822609024010972261076801456400322314347411966530795370667062907895448737866870480210181996133700359602153561065349512680087804695249970155509854936194433119833435798643509897642003689302186869744668946358104822957363947019192021730799406052009173094988376221636025340472792926592428019508860927984295019154833445474366868893177153959494223439411144919559687603409512539099829734887328054522331641605451269302590488663274986473929025404651816626545069590468668144504519728244109703480116678884504654420899236499649578719105838235883004978926894572305558374233798596932237638613226235706943590671135884278813556845380835711222019973388709451020340475930642604366052774937251276587073273244889710945985896875349972432341803383405592444586647182399402162777182603010381114168491245093142728404261210190879114429535438623147610520650481977807567548051818387326632545226515119374948898353459467521951551658914662032687026017335671817396114045449449512677355264220301604132062879635724228081113013833868643340531260476650775233398041883958908363855190159913852724201627958635180510418231279233228553416129936204719878712685433568208867469489526399410011099351521889955411540828589436268616855155835272044394074896715800074698447702822336089772816792880556084575196813290542712685502245431943340150722106065861724316266950924193528783973548200156792968577936413125544768270262161394419386881685640606461727619636162454544180519318305023136337737741292250408775578696498087614594929702197787430887702320084578564429790392536988521039268147399865889916648811773395818120647780334241208911065365267740233513053207508957275840841250096645186170898030972974480615288768604419621758782305072780540956964488323674553240552749896809263580394035173497198346385087247287601836578415684805673522345262131033704830142107785241432673178808827064661391331867453700698304982247067246565048444644766089720545090193107171556858955523356424592933916902009073468749535426386303300493955343382607900712234961812576407414245738687280088206043344999266700592714146919879457981081657584743953924750579431174623233995399080618808729252723135521044581455551830574468849309709180983697980171321253535125996021399263873030982219636493723776020804936207760107199441700725418914643391175837067794803195545609503755902793790599906422329557632771072052558762081319267053464956330519577182616007897109060879723205987097689775577467890704780834686524348652489276827255149532758331204477701425156105562683329785154088776585478776727590090858588059567652571394574436924207108060239308005517717220894541356990666452453133860912954924148411819286877324393782303170792488536084553515621031212960954165776570997529383071760127154308332849023120220368792527778101123810376412336742023588971127399464184894305121237690860667258897894809139859145256934425439478437664230521108407178596120507221265563872801994848994471314799658134778472348258407385048354314949072187976201193978935542449706806612744556871861881745941936510248475909949635373806208049211402283866355969167460629387511601385122973879864123131282999622807931169117134656388410729788268065764622675119647247682207205374662635621297484058522003636748089531993117603100630292264126575713383114608409385455598874481855058613385241554853098387007718452216806722041139713873897037623585373604838645927335303248976579636580001094486215534348327976240552377440531085489607142702283701574384971380956089358346284161314038288796185091063366678349985040005452378126268113638604670668805635026131344594644933653867102965079543073056509795687996224138058762761960504833719359309870529725967090984453320590955717369204634406247590633575118699727868079238472744438045077487043005890618987023911615518343768508244095920376448782948290727456036850186262436166305813206940582874899322268697968787230197175255754154851618173910802061489085260657741646063278451080146678665913662596994956471552050233139866127316116703793484415920225367994879015794228884881482678577892740383714078117927081637970473208094176922391401056072840328807811269897722660924402856683861576963953826861550938116332114424245859619897638988341996331255924083631749334495227217668460897452403097063288583738778738650029745898454579846515327134666067120364097591901098297106575416074930761044982659378615772948357483838713370135657494162191930284054084753287932362695252791031908229854185260517810607414307008912207345171040932445128099045469893947260375490490800240354341118716102409311047518464560149263858452615077242016591117205979612776751256375402296387753655672999211029706152381572076643538847831158842639435255140533708252314337924660368106171657664910041283229421395843470291157058829670319587850909409798089967141936329965257681391594365855689961705047100884168627511520081508173322843893019587330162113614227234516103686990434082703767878045721027751089916178371727154760095458895094406843935134589985611433035213349379170680245487050352261966836519791416406858927558648484445780389007068571509899783035500231196010875722619416143662593098014888375932546777486458162496361980066082789191147371609326668064419364261226474803527327246485742253130339893707793458754167741032917102616821468357642008832054514641544858723851424526749306336115690736980113016455292742014892593515110079140459755780434111288027933027332390371211473698518584765721092478664090474072600718221455027941239096377827852590269660311438287366153931486707951875875125562604974740275958709753587427138742396138953795537059293307283638970498550077564594423073695406265918463264320323628519793600766378271348938292532359151946399175386487206694437757573769232141914704663564971764925764980368477941374754796228422671257770393370794351901081598071428451589285473775381511067537873729347673283044904860027796265298202526600630994511167883980769118650599588369887173970673840700344228277007871530733490787572200811378772916836024708153327177381014829564951552623716351634696879783665560289445417394998344410445687875635018575607129445749300716058109444259451502685775820622555917827380523886136203165943395884714038576571218333537498250392778648776693967822673656967366639781075345130673132163498475472484468494946661066838852411128957620441034880246463138737518831059593847199207176567495693876761486066249625996800170687686014059375260300834959940799838389749595896358488087735918915494015738978685165721515157938205256523083678571894773160559686142123345159440186255336884308358762747950677594995797072853500216696728190333651179808872055720723787293672430495746567613080455916222185123613175614102615493103938378708058623489598519959831655176877601959828618697458568511762826795764949711136463856709204204059676940436532390982548719478594281138757352821420416833495815966626851185784365110050581896290942719422255657190961172014903554317684005825789894684171178094511838122396201849346958151593839326400227989362056915010260400285320346203349686481111003486076052787344470591824632229189321497342477821773319785758310512239471393899478355408464649080850220331710769333272180880991526572999450341030459999065831083068846201788247887744871462287107312194328985994231457147664619814535692082446275894339622230004734406061644893972392821277729240685945678698956782109175826309614201772029221093266788719506181237465012461789624425469564769285123272747991593110569913897547498824795332339607634646424267145833389944238631637581583884396845180152085806019500199661783171655670827554807505783576986378162333048781278578284419673458427124146660867704841587086251080380591380666316600556410399808012165821488755247390969306401612353928539270312038004194260557560506716146443525524162173857006377377194723333045943326443891212870719667856822462288833065801403612451952143527602393560126549964388255094030789592051325935680330028786677827728171461554709857112400136880111880198769529938036095533188517166891638408220836320021542947037656038462054194612696442201401646563365294087629282262834298745007154286909062207924562645462737352870943801286371042291481309984320066682045629246107026028631318707293373200943419265608872276124122274797096303597350194559488193031226647210712348296921018659245631431644749377080674891378110217296223337352623636680658547375122283751394308123286214382498733178612368760280491555342238361339395468871123853633706460158655341557442848763907044495242034201617610661291746079145838433138501331457530900316802868358555964840387976755174613067728900178106076046682912063246995260899609880203638070258751719860301387073303013972259160715425344695329380117464939755141726778441597713423932603085442666035099700456879765885055855204176103453743647739055911540959312983816080777538338575917398190926617964453998494555898272384254606871283786572669071672603235772619966258949227636479934899878938151598376984668362918562252263272104492554430715899133914784407852509929465725004211543094293429974929838921945160754397968640007676567958633432242271789592962158676303217621187952372187304653358747516086909288605999489859433313921613935341309977893820642682675845049677494954536141494233158317108748961225703172428067918412863738473651970956319284125422332529654102049207467978807192089698745554221673117452275945089721052928259562939748814543774497927011604757325112750791868942406340295760636893129211995041272037645256853733770385333612993636621788383958145340559420245713452699964941594902945841854884895936223644290940145969977384831760590480984707351619275348304538824086198469455227755650591680683272294482052209792172918788659074488042857441020149478535702833772581854029836688127504816834863511177725930141179147539159491399371348779564494683958531890321698126150212573126730423953034635627053714523418537461142756613728184414850113983186214048472580514116978822360818624175947975684736294569356164720267471349883351290101886336856868338957707889868229511345551481980330073475849511947624283107764062712140049226283496873982858548998156295281795224906051882902626816094982258501024239906517324159474842230409001601028044139734556851413718530726046569613122077648626518818276064251227649126523418735969407378360593207136554294209308593563036450519974833825409912652666682994975171960598257572624148351419186811670585175248964727753651754072430827778114849526785434278494989968393375784747767590479848097908050804241868536319255095679372104380607036189683369320282827335669462770095642659600384607071559380988534700943320731763972215353142675109245213932206221963363613035256218028880776490819974517250833932726507226278085783300370054923049293152036730748765443755936038741416745002938406652946699307469466322495661156008652655789766518601595694842297948488493644687785281639829147870211868935974173694912562164371301852920679429538112976833770311690717818284920358383613687398272189582195722271369330757006715697994100408329760633030439648389518794146816475060155332167381733760797053704404024278112891998883952627391770675620942902732308713198971496038398963015896064930642769594814062237069233245068286082112953590848504720630946527241078885337681412378848082828492413989430393360771588655863005687886155084666324789144395792990216582740560657883563319772352071233756200819081687251774431759928435018172501908985251151146043508577139983359286149667494613077065042805040879961817043726439297966152676414308710493721614385366637837669943573614897747946171228156120035250909049737323314387391859340893132571301683150107882192246190320501789788789601205811229167175656983662447781878232384296191487580707217273810580142711953903345646565512477071740588646280748220752043570497236948501655500100494024181627536333226362918878149647831520064055708392843001923666722051241039693769330864701283625771618497102832462537402576265929439524876783388391085879887852180884680734369046978488387565793897421893856382107532582773427644356434699607754210101655103742737784563865265436537198294675841127974103025235839331347819228543137174570374713272407893364546761071479814985308868989018593620327885124225773758607041532603563934392727308595954158217207674864177637243253284462427186487264849162405605980810719323739727954276174185709039151193409920544226749013451672024118997028121083317676469430618293641012175508589023509896144833394955524097339529303538684074598049879572440841216495849559201237301565116714919576634499698676912114640203461742226186390522625538578106337044769599392582117710062272709382626677102485039078064704437727740224656172757817880954443160600379030694271638904947664042805472213047672688246356301150029207701212405196254364162489260540968830094460216422328364418222045569713235135810718168259782519990350947940039345626856496978290230262593246923034259941854846215695071545390837586673105532649306171291095269840458694069749914610675778700843025979481730284058613091354600476727509472551638086595800985395674345974545724007922427272582439147433221968011674270611106229088225241420141994986813885893778437213083726070150531450753503482738152581625391866310177029291666205687615398706711618551920733844033871734434412403956018839270004795824770593630683390653635875873794352709869105648508637465211212456203639583952947349884141229630891095307938110054528949486770734007673063443029588189120995813180505137027364383373127117366558446771080469733619438443757212168460007396861662043254323785109571666465657179395250430307023449909982788121210106104230660073241283145143065095342729069691371792984328919941001070426459556756060369271117472172333368986544960186527351847537671952947299226197156614734324027808203540501665738668777965562400044829233146055127433588727698886065511412546007296970692617006503483883387523642456895798035458079389990624942451972402292309163970916346978831998926153075764255773174360535101696121009907233374046662051114089824257792908018797962999838891429384810254610717199103294711799182101905829696467897965324605702842714137461012432365765510904012931058355665399482688994544537011665291559590790076881271417957874067133584223624810086895829499563998833896142207216342747552978442955863148991207268382510073938797750821408903292891467682717461410470365654632435039889876230898241819394752442756390534872022019310401581206751501466224429881664543791028268521594075976460659060472201920837036937758056254988914778276077985333376241324456091203584382417879732655100662710330761032030591564003815870213462452363262319437552954209519866174927891532656858103146495893351639668208334038545199880818994505668200165847154450737811726964199389260151423902969128648846031874828437208414881596097623681661535339954067647597244551566633737188641032255560791560519124365897329025361364951997455931527671429391834476701548442047811951098863968850800770912804927830737254916414775450603814011328182632633650422680990782243778104307548677018486720420610405370083373656349284884062626408644477892099784057569393006340642724093640253890757306717969999216484442501208319875125036385457053548882081609905163596185293932921299942269412752253167894362673881155453157365055886351487656974279740467625981309240300621512770773394223726699505097271556950827423386687035157758341962453402808046673110857010920299381768297349409144263957580766182191783803875725595557943281439501673620725136997700938395279771372840081973692764253136899348318996689095323983111044082515436347819152870445355909781234857836200816573883909922713892142952669304375041867975492558427704750571359894358092008186701885984224258461425438603899716776127009614690211488505931946027046290073482851558629109754199428714703851807430307069581265115530516238079412888756216530945846430862603841563756540355617634880542470047032934043681908961703039612194811620850891518330035150364625173209682171849080249683334767579435482486715211372669377984439790880579933097198089823706905769616417737720001044589007177274239780409166032031678284366973851104332635574142698004279021381397944697041249294026601663298348170688762647882576631048694420594861992933961246984278069103691608068942134063420170007151676557694550842287657981950719078041736603265743215346006565937271775036760817309553720103333484415574290749716737943687175683488793955073708688001327251847046871261829716361164804600834223406768271447860250403146801138995463361429738129373068638378560846341600481213879646594947714807959145190248193359325014092002827448977208854735409609115063657338211155512272780293018391020343585163876347620391128039953607895391514365428546595731132878929413257663492991484481411799032986978780106058117507780948157044725527663788704362234530701867695812990360184818409309056330036126006397646906037291306709586081297476541102224196143592990435430849880076338147388635433843761391621402635009920500530260145662199366790725608125731636739311746211922677145741608839002030561992289475677541111763278327521521540527714809623938784462198313217196051128792382076875670669834528941572797821189571113613966384363432866324479221648749675417448976703613289926839826916895361343712033700211527488968763609999490965295344265475246882209090970163522507583069056896192330487594677726630759150905973256180171517022636417253685301686582085706772055652223300064659807024460900334118829325436306323583951175510054316229633548188556447071237568439631800846506776938001805844227214324678745136175918688611368412377092612389704318040842429923366843240667734673196224265717040206796652840566111511894078475746420545813362079458850893775224078538574467870247105087028591459157086333130077673317121251202010386440438363940407694216308406446319247867703236388124930172325935740192246988105656646443600617369153273522578382110467880034978421446548710135399901153029819132292651138099986252996814271193480408076070699377044399907488769335419662044727176679968764100479354377098653641444082707867740753437234823610260552548416612716699308856077759681095759096935795100234397845201468939502960550897686282877207793875407855337884530207660454840396625601850329072801406013025755529681572520984703735664905302181556615623294712142493748393602669449150832641467087568768892151373392580119578407941231759129528966865888430563938959976714957851375400493370238750489731929465548387209318680629850049984046591074583964493093660526779191117177192141409402435625787222271123461581748428619407263897704671411740678241907245302173711640757936323181480351561094151714122102828884504426899609555967320738497750821795173922598980217246344912298129330180201831692597773365890758208069698161161696923637406953830047679801032570354668415165247310168552289155744446655664601230250841874574336613417907223849407555803338870724152890957021230575656736167539858982509039579721506589442794150821171486792650180611099687968076260800751437081297266142085809891371240192525793103975608030160746919123304730789023554847325609548277274094873105182891747676868887870172283816070678933424591643917236706894708926046991223092366688204175765589072528358245894528410998869057357391513317026668590453727010763929564351157249115256427070147680977754145033112534559895445405117286489677484737612106128150477344407888318857689886703403332834583215551150281469938853178115729076998287229443971114090159611398364779989908607184534146949006746675329940463199808053177708998340942856237057375001348546307593455354856864432717601058083847357089777163058077822295075822831191465688290377425263763699853769846885633713004974392519801274164449058425291157139767148908625711134533776106335796037879118106824190836433989261554254572352905452206851512785713810219789731970728767648729239566334694155855207545040626328234777805430056153683314570071979894169004541610572706455830287989353266476485489365675716692949545734864672829150705308047554633836185570998650416531898463923158987154519550777998617647954564402977150952516452670200177013258628149492384483453157964316222947049748238951433613927661721832708028886393642469818036091616235051629074027632883155652303640745572031549996656317764406708092571818330383597896739306499998029604130034862224248108335404725542768510372550023286902097112668024681796237992633164916842029462844476567842415288674824566478028938928685278996423099025780081028410544155431746049142077913563469788064281874389632101361078187898900105404887606181215381554700620512575586175144893022693732403023382569399039299839089472529904720403400077631080132998204951884713789757918141934628856210369915975561303246811438617814042955532206782959884727420299439921176887690106626400608559705142672971912531376371498836459480696543333201427044438770932371668087107803603150422314345661835762486147929387728691636860987525919735930081161572407894431696432574918435371697165975489460307031498366349664039579581671670191669151182933237591464031986005031598159941122933432864104672614394505758856160152113434077485308941756912853819629429604106550171366556648551873882141331502285380588103201264174511339590448155491136275347638194342665620763207174448419708988045528528890906948314811354311692765004937831137735729229783770656495087268197843500538801113618567344955744045492802309517943652440426789077856931509163256224912416177082106069075760763901482528907526742885994631544717673708850578182894336958167318887696878595348706244282295600477985377728024801806235349784858755563021656036234750803432919230377410540715209048331471350113018981705617520995539411567920528742250481574653636378433315973804510673927664438792799860219051590869907941369624829991593896094811402702814079378161636066633933161831776972740158822691554144681876694880561502888746834819536156821325025433304113095358969383442245177843988584289019126958160928456474651118579599209984330073110018567839559601666770428670309591701930570879403506059340265989472080842153791605135640856006073916927109588814839009027643958059249035910782810218037259523421553442267786842438199734880594622469636358924805516965658213700754183419565714747861349577883954371874484732648347652433708340584625600408653801629816753628749927257667267337316720601138298376908064247839115750485785165293964825285326784420571240807236880761855601966398879998016607353494933403550167108543725257286972479239108049989753722355359990076136685690007959541341885220531679249466557255249452061635219769374690769214588228547688079739355665116979860633064158693859265109561182885125019953100114321460513516099516138810342878129943797820841652298299410146034270941365028321555374013310933909327964340790300065935112089780316811318738611036490077479880375215004727410460586051372540904008886947844206085516366138553021344428388497812511842635429150598822355522063394842416999704055558724552454319841760872380925175158852217638309712280862910299824842658780002748919867785381611502110192865735721266376483731107142972332957905004953495454641306536412114873721973920514561007261397047094168741556078026597199730885513421348725224224582230317929793026911788410460247764696601596829895053858786481664529942104555768179985029264939319405067013810556204930590978864890116900246294725958647789694437244263331267002343788002613591410918198642926263837722392537037989328736699417240631890283847084601878974227039774154979203911590318989076844290135936920128170817009756518812347015334751866458059659039568758179704945118558037210477958930430546938931379502008349571102500354466985822652341489970526222065877845048816692324285388178576847744092620691190255616522206648142975898448774285478212832200879304802587488612753577600195271351393589991034299635191384976255337509662435309743867014694158405691343252922933624936070623988055059199501857869769973287716573073519250367020654440425901423439869560041042323220578029932876799704158065130888614790253342639639235973020192940010884914663652884183705257185012898731131037921537897764648123236196305881524805556003833122574629151388694122159188086862713946020235968530954653976778734383791551802034901945021985215452232152040859307541654188150469018237858380038729667218572624079789562983762570044760611287293612762235605875940228568455089406164955935074350635473447987210882951762193913103955149096769452841805546453036136071676786364361012539585497715496916178189554051200827722804435577627506898597222303595279973292672344414559998207315466547919503473766421018927471997621719928869623750752240975801502610058112331199611113760870638391378748522949585432713885330644630160335170377031382551415381005869012042925130657302787861017377047048220031156668855498933378379681775353471117648791813210962839164588652418455292383729278404858340663526236207159739330434063516893200642915674040198702195408207338668426640210436878732985219297357475590426977690886728695621089378691671010526625885506266029671726841469250550420840036305985273354407311567283845109849049387440097398435973662973233039351636884757430122723165965632654343897453006356671386587495573878797533202027188015737693465957806905396478715191025350165231462690101718983369767994002162432958584134327367926340039929483717910025035531483388523543808709522559279575480327347784537118176517639562208852041067544511848546323646362971667318822703453693251472344884775984214899048038624524506978306185691923237368472621864732103583836184567188720127716073635451476927694085805118520122763985798731261365528480387507160016312554951928886251599534134155407829996850286806214799287294448651721660917579260639098710680889168786844612134752066553737032726785096968493883204834677570195289238338341690600153837444726474403828372072962639591877410468415215774668863102696343309433031391762840466002987673135328111778934048147645415652480125324301339433949931309244249969978952982708695470154186934831884682127452331127697301990135588061773602745877551865582388175648876770392416875546703303932096362389423022276340329708888080938973971370955642515331624942899877174177034911587488965305849559140143465325040529214853723716626950063895795981953025736586408982383053666341200667638348742908529946910961758324150840698269376993597168836572335832590364501935117152287908168846492631774267761215645200423901770313604603862714953002019173603263555907278907377040208007114284622889302696377217084347519065369471115749363041051251383455078420090098579215509495221684351828698635315477621952837084586832831714259300808732662772000826794765323227566189994469023154030865857232935369683190098830975697143955259735029053266821106219797452013388929707358782500492515629223577476101680748442198493072267500168770336808685312040198760432773483292955166313377698478770829164676882792646739671451912385157043352946304796187880087099267082269373612115061173006660264215360052428115433742996197887900603561027299389174970285546432872549341040973908764995606378809177185403336759437093170020633665988117556027030851741623561111880093405901055708359435371219404219506681296626788015774467425015441170867839449804249669300652823334574244103127088109236766630461798724174069488213649569137169933607287384993105724567391628964720822750860764796494886494980582278297466971487631170865488860989383413483035115447567998602805841676143808576509530214080961805796415346297947618515856017467803445379663840714098306207333625538122298762292535909559446986049181926555117851488656684278406315893280674818086187057195862910259280122128752523284264582902533127090232120327292693607755930299007041949599899234243869250052187704882334967052744693065853458750304992250255362824554632644434706242924153691918995612912947654603935150647997265812532739886589158367667641386628694311231131123556006886400367097555071249925618842903778641743754131420244320314252163573654946169788164393383524587064110740478663509308342729197234046403457257603977389431528349761500735114571652986673258797003874612579725896548766312604764145279777379343392270457440688845629769494584969969580220620551315722902598744193870287530269674360379347395007855348304467235841149120415719866735585969326292634267331197962177603449239507256810281518395540269824451363562089624817668742671741384670431834850868905817500547299780709866887682271632156564868604740893323620065328619517719724457818709015625492830428539365373841894818425656993984793027010630881307389728560968624700058379512972414337742768441281151131414237144411621341287815886820392305189484199875871484025255834664142032808764997504644292568069812429485473484694704266897195508578302398097927407369521569467464440641985075674992857617052991962154192802764381265655334723308047098949228813406716830268466181148369599606541012555762260988650874476085791925662880755071360031449412170579509414185770830072158213349926940075058293570430116513765027069878313680380707642642213170913705106901229496476381998957779474203828185378333954747769065836585347462563524146295058767149486795386782059926609605229799106663677528825947693191743020755154992656679134710018955879309257696056248555996544168671959390410352609032608562548169310067757147311932426164214533775946179880017009809705147516119109229212345992163936095144050981296018845997168589966518771362218558751205452853666376444313202389242948815937922074862053629736080191676066395274301451315353196439016515244044022481704730749361526457909977585284616652575603159678393386294484324745795926336323335658215204699311586670966220344960386675487793249204674486513813272876469669649403039174014719690527355957767122848014589308888994867204099389163767464813738302996976408881600284527065631100079745442641880770161790825033498743297694843991878243932994155207624459765556134355351137519613515858539825109709154409239829943812229450048922724087077466459649174353280240125996410198832288773523340274538711914019235107141679642870662293190086447293593337390572389730126891344456085625848562852437276157440312823633924383386230189610202790896747403107719249404188839904878284707020212041624391171237113384273174867639256319572158319143523066281693952546062674247521274863855935803659962128444972677173166743430002556497571160238465154222471127406393643983693918909505277233581536022412559780411802734512046856887355423500766096082676673395756937621425269508842023888364356434960072855730652173158440093490675169588188628473728283276064203212236901275001889583782324669719755905690799681532382105337924855581286298642985054606092875595971740540581145996386746469002688884816784457995464459800284431193981501896199937310019679309297533398141993943643695227221242732905732162922826727349330010254699278011642651625362711163192727785260205233133154890921853046141037970796770333158791498047500559630310164943781713300805511290304889930322644090751879849001074208630221621057694610571365798060396956043459019952973933773728284594277074406180642402716545098322168052636761842580008798176381225784262908779711418145361568604731648005263302672398107027687471449708590424407324362884348151194895066110616304461488339014910617808820598468375815816217366552058688441362058212073063185956742854290756749418661376039548616881496995004187914348002505317374833638967019882075643542442076530850595449830731220043690776102438437287906065284252888264898818330372316611780450588197608154691212642307771027852047568228504726621656130534823139923174515336864624383925744829886453023302713333778569577497882520114172769017778889554523116659854010269361589764317800336855143765024926888024574706395779741744522324853796694952119634427445780383951911716232975402639122551151808617223649767527748812772208776880565269772903199273592861671868649615655534303912703057242607622904660740793171181903683130335852169358449521170326725921679056571505636855378448428403176477112982152530221545640415474762424781107946798433613639400497868291249342571255107361544905716859459742340870038246302707131259646241839528115459945471646748180475083483404425387716253680808793705413134952131868731938985224795893953824427438437294458301237867016506794042186586458490826370887688981987722689796242182051645853998035394825511501605823298487058301580836171124299260145225242876226553707939535383949420583318177362756041146571406586922441385979630118077375177228852662949749369765288351222053781825094294831568706177851635120418327166856346337265066023943409183114124677106704402206646727524816039268269068274963656310705472319716180863080672978290602180159043970072496590661237182873177483270269757544412357721703968488694484463885950933735159968431164669980422924687326515146869291381581155610294794827858477322937819643829714007689586766266700786992680064672999528035843553348427144175519291591929049826715939607908427597836712452892090597479033433364328589069900536033703760063074578153658231633119117504814060578199986157152523061310096513870190250773010989796850173499468954883505610443529262578264298160176786153408259208926055080887066080697740657743666691807261264004562694735789317467267437692780833372015929317597960588109852418652179800082006761972656916458060808587987686631877653380378973985258702777924235840138252188853241549667065143205017671458360966280414063171342331053925836783850518494399228244278782653189138870548299042233331933314812230231859752851613008326669329531418843207777083875558692822128257977381174367269611825535245548316787840779674486612163509855530204823612689002845726753507155224231672606917272859013547501662141268137914686614512796918509453180595678659955497153408369880599581463400492784041905280140449537471572849324758053398938816154063238662550999298172323958747018134915887523043402357337290764994904354567251857908943058263417056675204501470021420441406804867393593896975460721941918050157039196756026666082574188847612142971173536943219885881235145632553753102084864460846848228635571840076969991997591610097826796115109386328281048035690575120657559822841564374523789526359981649327408226155262504967343444330878078012705017968305600354962644783897760459877678294156271788041859329193869699791971841958101660130477265881239867881365976083510132191525991165411308640645462705789691128160772694650708623056646426516331895028951684708101247942217803216451096187966113837626939914767682774697685257393648742868014129101396218060881164944177826012717556976075888047148789153524078015661104506510831154479084983363157241432324477724315958134749086130446888008561169334347771670345993922827008100116049728185463916503948541158135741857940911645751366635911211416175300832491715068430720307489245384137499257094039079505895762924244127106155856797361756699807867345818133661330784995385049365258273256151766906916584346006402205303979279880503020152973868110532793942368560892889786498313792838360139730865004054602237723803878266505999521775712630788664419532411391357589955600747217191149044761186412641208667161388742113220051639241322903792018223942942152948555743943126698959986605991272224577879668084440513245594949160854468798036579152284496420533622881836501460142824363766743068995183166570197654489534895382142717469464838769473641943297627177170554498046028462004749689858639314792513537708192470486727754452523558242865537073609047614736440298107801614846606228642568197888690577470607674902412515438226095780816672430434637495860646637712839259626886349990313210076958957979423127654530014864398817984219718357397940554561880903222538014666553901288141540084825232911543232161579076697152969778370381664308017011066708754625813342801128725446570980381629823690847928222958961513962663209110728288088243314799791115184237805283990161373975455226884577771100022757668532240153537644460217144788115676188591394318495533335009621264100792961333177048916308921656633156280758303346251519494337389663579158268319787926489418724180563265985916967925080667256294174304285978569460099041849270345062867891189489205111288450542553744333855659939517759970504382197005264185928279108163471611891356195877400605495976377277246810359458529195083157434123749230631317024720603936445456818841589084201502775584036231539924281709749565308918865931823730921653123984003577444359058413379350477082718304214928206552348164854215573959765154575686351801432787340658366675452016212054941197157686517799535325236606214163305886379378088542320595465557335615757493758856314311395823784586699436861253973536944680516416339903589849522615069469694419071885663419651239512914488698380299515278018069590619706557049928228642593148333168184576721342546443026459912937837194914395096382894922643944776932096564295106724234520324052412139377550259901672058130246759368750548823896943492647734933979966460179228429956250324267158245579991715974795646491639936069813957529476383172492747287577316542404797377960172200866086311365824857430188852071773108009827061955978744495184396446787247463849396635530789069402173492859178576029234945402921574304121734904043844502546535249034268119651603524766779599880139627539277145930054260485718673291741055995085747924189155528130166671146079938569023718712547181510055981123448623473780082629383575913063865923782375416331453867396328365309583268134385946956657995489704130189753447480388571758886934618574002656263871477537648304486483563136801943092804207847473503650230061086794643335004091555180229998550916879828209170397304300558396072244788100616720557799808799556313401272833865526187285961267372210594237956354778890134468763739730655132710888640308840353894353995546741699956089403238378731195130395311935202136157028914584088339604352716452319860909872625118149590556430004693819044031732491002451543224398391062232644243434405386021899731107657353747736080886965046685496046326446330697908973548855652357872817370459583272152328396853653806754470152257731589999587957168676994164194324908596510180432695551934473544677023617183710610119247304068948118609815856474815776111242116170849408429440239837758761626757123076937185812440681479484430907184662552155356674727343787974370039286339347197038711215701854426468909293787142168631163857914255808049183410914910159352498494966727260830889518001897316251553420295932827852064345015773476356249134478510278388428717539435990814818478236882528944529234985247560094169341760593244793875211734153049599214461110590878150494933596709329473891091658288475621048020443653444619440622013566718870780609995459816700334527377482227453841154444300725577557441057497741246846129515802321178212843571347703705187314787408857011918509939039423154574225330671846003049237292434280475174591928182965454863799634437741943229223549985450404774176462515453572693381798375510772735187757292272217427523621793823301156341899198276901743185661908722079283444213190537171510319351987688538559223185677432480548117528011085525765969987280025656310942258475044159433733136427373549823853579020132295823206694613504157341647744334046396490423457781728926008987674983815347986678692983590554947469475510735556782982765948141358542674869457586852840703500631946310590632346868572456341915631654410352065225671903923033817062121964716805919727754075655723522979093542284408651505101100920370044888270995162184313795638222647045284952640533014805869851072816706541087423823149137487007015695857210059196267980094509473310191373799308378683391806230032613826739955133354309107091335365548015859855104363476558216072156771298087805711813110296044692265329323887319111263213555017993436233887270306984690982034960399995400020582700888957980612337951021955351565852323587140371444045530377349943875594378148356349964201412892331287268948928904851071640508871148131979360421074197494875741371612413982605336954377405805034561603653536487997980851468984256196916715790627821789525397242600797853641668612521715221766398784078753320324391237354338611130254687304115428429101055406541217467606681822151661078036830930026555345413394274730532607251256593861089093022114954415158802385735430974630776678885709088377602676858516228005823637406312390999390498873188850317305120801014489378049116062660706702108870064855913184211068828028460073852414482429342245757576321231373869591153012223380929359006432555267944039663377933664379835768723625135063577564667600312753976995722226727469953098933897774490063210962296084389189329200656373991335466485479605772993162600746154888682141614235978099285479804317039357279409520968422868575610808092403580913486559914705494499293291687932806495744541502964509837008175096519736816079437198226927752823256619788781177006811763396599418111153676948345909676395039864933768474983260210552776919190143772925283044707709677208278434257544214444237184167480933977631605077721761165707866747633428167643364821620593558983860899817884931135038267313044973306854005940143360282576902735327166253305886935933652493927627981629862438626871718205176618236369648525316764532221665369060168903582769685860258783347938700365066019493842064730756873808505450107396054669560755021161445785330854275083068688980853537481637229065215364966995052212499333862292729221328854584710655032505433130893419848511462805582792114412964422145845462964466663354621134605222950709490433557283056744054978533979740592613247202459409046752967867015008899973392101038979013264465393070515976038117405594733362691367783243644867979471713824233898913581615259454818506571343180863280884995433636861162834451499372713908320856594863070012787296521926586193197300845095887118108702397252658419902881561258711917836132870731188129927806228862484097042528107014194139653347766976827711880416854327828247483956555681699077999200540733758218368965154147186310193724607821740781091465791265083052709868322566950236100333418147615065307652290375476761824314799200740023208274538485392954769044427003721899488130818376939783459171764971709589772322600381419692517066942039913561820084828861422978850402217197455836782534050714556393397150017832119314167016020643647370099347585780678563637706360445417278098970162296134704829621267595512436498396549360604688535141434892987459091459792642973456645169385685201781615307617773018607015514042707174428144049013295456298746284195048484657919020658818527420505064260607593289956681025472968538383583166476639982105386400556669998911454108662255737985115966998450408937189433148235639363142990948201550828260638438194679872429715715018642524444015503658962131518931268884360594091383800304561449580251377962088079155526428186155813003946483933048599765970652535618761642885199696736599838037743747860707233836242358883259709814146259715426643505572065878085207185416990839324439260362734574482432302846818344999627563042483518675795178725614674796953440536490273423752195608444045355516535818541455396467353844453649827206832336684404634873909100775653346244649003991378887820268317469890429403525145866451495658529979959968852904083203915655181186899805842731276518069481733072331170911715640448136559130044208508935086647216567220776998512153525430454519820430460067741979090981007694811685819723177321275540609577629720405043611611284869814505731353959971278459004204037339734220951468119216755549067964303436038559081423129606780600049298771680618127101653370370717361897879513968915034538966089757073737902387607802381914876275667597913232299492410207578371753983253482166981831290407449543888352254861369283153385457709543111798479359440989309023349451182418414386584382642490246459953523841963345102986273718036091675762102741989328231440199661540794465969146913534454087799402158516998089172731684053427583687046380837570273148051506553319238600511855354408055968717953584545271440634109706034785385370247767592292413561234520964250133910522501042461408598787451930889430948105756567305198352491512273550341730148445135050820106888599100009763530509994719506575135567570895434696717706813221934402443352122344920184478750245097015024629858624876827334104698799428407685077139524175205070777794499782190045295107273398295179642055918774127419940094952854075770965422119112246473785593680852058610550722434002851344735719980549867748229758334741348827445526210748660679815123237289369845990527703192704277297056903943972323555283395509934540845741821571220927573731549367312117172066053856130786245515316993785960740125379498933058064071261287168189439123667839319800185349247072367330802087594579643416113879170411872480785194065753658943319121620117488956811798289770445816009215284280735442926434106142418546432309450986855431235485664562352715920182386326123488203874365945094396071152750408284454199538770257381627676375017096605185791182814162799459157023510845114996075212490147082706229770511309882245810239470577251678212039350965985308177678035265070575687621580173048116245967738889557308803592267366580236623229006569441357067465489421903491654200767542613148953507895066099509963315524197099429397831317296020856131822164314517096848539312917412532374958569104145113836596164609036255347292310340716746223687898220847324785701055953193538671258029767879971778525140101437477074020619381928804710561581949278758886663951452512360634554378046517456561435353153028784198468462770104067672390532846727751126873159327702977633282398059255352598615435627503553067226736317139990874034873917367581175974476971192304785203674947401087023132443483794482724847802423874102195960322191532377745228097248396905950289734600640304124225696711954414679743616497536923885634842967306218652068038837416339995134580319964761695954087026245635867206046474527662427331182207878979748152744892300976541487262882819799701519734913291914250853307681262587726656755503927468366885059971824330927661342140692532071506993471947657248090263808229447540486307816104086438314689222715515187143676884335165972019897394847445886627881480725723392375459482008207752758134445490135534930631144552528327354188956614325496855456011932675810190616848109516418945992566896935734675714134635243301886767182363785847029036111854236261167880574219000747901989033141309331895579153111334605220555613996114640352032473407225041336836479639513819766338157561159323873982431098984825495560489427445897808429849127556539295080394236589348972587193627397602808723438980111157681670569462126605046292166430937723867043729411023683408237085141186859584249474387187945612203883754245404193054343875166361773275650075561591618088265980223434965057060748950802105578093106284261177115017735589262895578869495783941216017583905257804672523022882587902352503889850936183069902730833687045947501899536028738194041334213272995244757613695948185094763275083936969600117648783625684018954779855689910271783406427261540923008468199670800493082636573303420833380495663210510827688643537735601432534089655180835858133473782564340276202314243637325952699344716098324654000563664985027863784730790696626716034847694781631464827093968815801501595438353385126056441975722854114972540521088131221402253144106387613116502199050732749127753955131915041055898694133293118843216134600278002035169675256106369749714370319787141915050958723540582558429071519935855574487168431273632394975343169053037993441798853012411985557402891659374524217597401467360977393008259024074890200049958289121832481007465591923171057421738491236721616213619060875546720112840564339627857052629754711426079515425879923303025243888460641979863711543587292425764759126328056943982685551851175081627438139760973068401579508208758328049690893646810248375891603799883115866463114328413265342538996292291022507173407046919417140766115164561777080645479721159763969109922802465635354713000934572685520505101332138238038878730062928032695496895647375257753813632971494797368678904084049145894592135525727024431413823160184109392171312854938330015970254852398244218505232702164960329212129822781452541434819630311010807146816233708979535921077015995644254797093104441873556813526171268603232109995411210551180509016695714113466534567402659540088026613274277063356472084296945682771182499738864798998076585371741578859013068682830408079226161487502044957290613245842303097834153365130592740607900341765519193872159164199808243340039189496865312286048869041204458210273005138350740457965797865162779435769721308384103362172753773203116486238536183119578889275465960672775988967480991941671860339561234656019038300463883661437496139053692946663296623710863459732506404184040607399680518959731472267226724528022296674980405424449177785954769934758643703214641959116709411376006517580375804577945862046645250649617086691490153765946521806653525585688883413266631373326720256348475677759346984808204674636938817575723406782926816145551705380095594918475737688661039817988032157523033737563828197652820557248597389050599397789607474054835546951800752151663633190838175556110649407075679708166543089496301835649389376642024967914099353546098625070871107924206273659015251783629524467916877246344900956063939098119266739382694932134160292513735336414227341752526432602870684253848128245438926150152404800374903069449221116319749373940845820341320849007650114292760408317247651423319861281241720309201583687233634262888337405026648065690640211817068663951070448721915579268663202645205799484307147948576342691897559293060030792237155050189665952202474173662809206917334740383576658641312942337247244286347523811700837931826182458192551497087065554487705064580588602726743419979061507384049643299885552828903095902728250712095597685354536211658271105832528231854291037264491214095699964679857045206790952600289671813019495748555206750355524138631436135499294073492451564564297521472056097803203222406192148319065057832850450158844278451137475690619503858888323205296703016643620429996131893189926454713174742398514581363746154677502188288811062905674744875303455304371192166743091858426194581889541099148708125354707483493735405613571415663121074258369638074387683003589912391247666628309089362423425225964807105051511091193101282232571989833740070671868530350022820094728746957245363031309324241806819406315594239943361144774169473024181539121147378763458050749163592581611948579595875375138160529436939027543565350289696303589302696498190856706915225805083203130172549946753724536928082274287426976818732325170442210388965685300192832453391401063400502583553859441756876407815598370517148321031079365322112887445509828184444051682528183550712077020338824377156104534056122970220604240279270788336899044639130599791833198604108511925494206178381690114820767247461266424500040907926091855405443769179142325665473184775706109176803281843219101082224026086721433589336727495398423158712254873762380148464479126601984959708665224766974699552093804225606190140577076350319470569357561876231732274322552024428736291383099287595971883529400964215677231548638579091685900914134481895218566709761580121587842423967208835245027362411357137031885708197259202607432249829951077036435380404820202196726693285684092957130765292618413503983867424729735960178006001495233126607008118443635724519823877002404484975040011531013309963050704545548806071872078097654553682132879955504472091623558677254958227350003101906677776646788207963281883272517512110804911541860356053569463924997400010802335836831949534307324057123893955363269300430659844995518949129980548451751179223807706699323842003428776941760104869562634349580857188060225885683092452006177147693941672278412957265068089751898106744005523528393979001511826254598081233910830815640825886558365799259003336674066125017849646885822185500928622961540885184143299186317336024795607137323138994661373777018074983304833518595658594744912620151062031039903238533033904868868126646849542439183140528994990238868166833940254257547872066946866150221412897354737686264762950433624624455866552649569557809451340888346711634326305495716514902617061714105439527956904433855362447388934477809064198918012054835421174835097527114484084388218640592000253582835362816549370206195652656832346704512435167679894424386274888367800992712067629378505510282351954789658112761905271473286702659762101103146486566096980769262254597583758747033300211386495703423890726355514170200424822063706254699119227014878523858912897736995269468780533691870845882295753008338781356624694274065552987035323015356644891795451176923448341564273566742949696583674219188791077089711404215092473156653584395133676423062455358884927650306608941656416144131901461767754012912176014811920935294705090168966001484151209390384084280143872937116635017314204530946041559534120528188601594413337729758484291100199926355947747952280948243042849572848629645493977745022570712369693949873056757777910962096327944274824940094954433561690837377678436819595021517880550928575550034875374598487477036897006155410697530034013542094263265009685611595458108113428184212648484044825785845498355368049825421522694624087769053023757029189754554393118970744775903087784561991503184320137278523048711678276812408033718407123969668143991848777927063248683311927577109653605364347045707636931280194649673834644706975142027873189435455373918784590498464036143271366417137483595479275492005276509966626682242936561385196599057521998618443884993250164586739998449990170611611697738511641229527201997418567503368034590153845073715757501055016597734637360263259133528494879247553700682857184728232168929537932515621049291690183591069257641625964250674327360251710031237924493701808475107227464280747687940577782533661038510550963567162847200711924954973715507272332252953370514340175288453964643753537453876952952802119532656235685550548138464986197867640505726229162322032179402675580126116197873873639690353593565923641880383713175397556816866437174356102877157184503615188992306875867615916726792275708877888169950741402422356137276777778103318658754511535595492249898454286723808305445470346011827782571696717946675001994542583424690127275365866472697655612056558191334616181265934169017304311625386525086385418844234437510656044878540923503567416730524230620436730572086125019208445939050979036843473385136824891037092765722494819296944162958647108433332127426963679654793707480357139915326192346585605984806293272821981569626060910482463768561192932576031037449695628672416475355250745835071179281687015870097642894695544553202940907150299718497934001567259142662283630289389248315465476753775194810243163243214708340843450342583941813202269745497652097343914628087410563438476785193194924362138580194315207198211310523590877057352550479772549377227280111029612783492742865003402107866940230421168749875893904752569112900435704878078998156052718419712926076581405093997180163374202748839870961336453650535692322738541317211288039979253126228441632544649505663108227011028776327927011632300363420803691420842894816789583276321651622928035059160762887910826664672835132003318724944851987598070330673020605704137991314982940225587661507192565805316366389734947996408376525395226662452531038055291840355927016982319915072060598400290394000573614925216293272581992990145362229065892858598459813886127586493677416531807260673969221372976922319389910428354933703065281666149180211733570567865696994786134208758936922290741588377631657054642074257069971608651998312212468860171878784923806332756238730445258146270272889158482338565309741440319167128086294704650083491955269854525651248588663755460116264693886644844061980805159830559159097577385408914519613140167235855921457067970072489122975783985610773029973695395301310366284624695718815667692076392279609786542968057637663848228045851355932663212196322867841736258046598868863336145796836976145309883256746947072741856764948764580338115114696889356891292048900164902311392335372468257582389194045292362598295174994436164529882598730937676998433547111870426330624092927993980368594223853016455295101735373593181256772368194591523348469926908907212459557248225610404593421973581755254256545330377088217635832289850517401017719183727943511041723696291896432218186853754472830423349052678668672784111869775031453339730371384579909731965093930210270734096348963846969470718319737341547672741325880634921848223062036563399557346415375996998731934439184470600125104961014721460129598614188880899218261278882055542234425925945903992106661087677492516196220123231776410148739133294979603539368418640769104903133642921305984462445658902308546399831300969639665437806768009075420979684466951431191597853486072510643377907716218972533681142836776459202676392176244412933144826511144569517120850746716209380708847497507403063376130964536209740240280023897577052703179289839769240399055369296865955067332509228914678073612170972694688281358380799048818468368982676675772760440717289392382253071147872781617898384225160517504341641547341651281507678783197231529930078793356259046946245297151406778170792076286359373017089820020599821087264515031907284612307640724260799979501428794277036885667439343563366641960981961176141398536276562431705821079590233552517120998461284590870875551256085767957198429896903237677172582175767166058997602712436083906762150680142866829341213141009206325349296188569625669552716286137094619690076097121967612166073772609956607442187852401693613358058237289472647887975143881444945599620912149517543090771987350087412879624779866231276120984437617311268474134971492859665816918178317536731896278021406035010315627558385892563698775530013387335813340788968354824900005840521918829308956508079079498133972820887915153351633686560449198410015641644802729899845844658883190750381590291931022335413430795567318919495236978013698450141569807760832736883186883535416468145895850458028518175580719439250332392711622016901402892136402824753259126081135710521456279874069212486445132210085374418267197774138739754300515407688494436082494853642026081442879645718715162044279336714380745190926316650983279116570203077976799597597054727173295025012185454832913865230177150200281571748084831046481425233199056664880556176128308885151552282176312857057997837572215512632301254111512931287554505687286501870792110598903341683519028447951789984289546625657570898938705875093556579991131258412104604079368101573801903944212590485075375292451429610038922559992934212581996042246393647698921061586923298521395695572169805866228205239859377979944463223925512701437319376815302143569903922194178331217534051232412242549695067786635939417527925324774702823812008079700482806820179722171343889587997757147774025960466695759236448098815936540742894211265761943568750716893279868749471895077590213928369163973294687204380275721852185776066657629966098327556224595143424062478481479004042279602884043177403556791468122407301319309333819476863485159993110738480990106737593832577881374570330051524224478479508499554304106109928353521305325041663917312016242154236768075945492729925896687640320521368846123503148847389592150712105868383705996931641888504743560770029766242244791525806113622168314547952323717246334295795093044640556069381865624462209657816991795351492388064025362178884693203696897102911518812780069937670853877906519454542528375813894308923074932886854795189932086445514337932369493446569531923979969335200763196541320555087771179908677394050271027944572622570390794439993372527216342457329038743928444637642147636224935284137469368242142492103990462411515704112832829214857926814900170270900313657370736242002403847490095168714944054434683289846201016051193788975795570431795063898054459580504165836010480173171720433189593435025156372140784869570057291851756048408493040129040793157140442212636485488115414896641464586581985875413068784146854131399236412554426854647978494230283178441020182451906911858013468855438213754270221449338338609937752675638506058234155255469635487179391981576644457529626049481756491274514191227463157981024079630491392583334123831726473312809129216140851736195277733815456933698157866417912709820367545315699010749883121943465784345690961841371014399201567798126740638749858561202341058487034534263918938864299423661329876797736785580899649067610502692863655584580278404023843924508421896026419576095384699706469822108102753155543268493145822418300583087262048338536817483126417004394405898218276830208350834289818105529756924786869698295026925225197298793005279838026973257990218104084821337097472803949820941110025077564144662098307441360395680423066316040365425747992568620343200763847896974185635082798750571070750752583574088318401575604370542402691032748293529594286447746442368685527526156339961163825362959464507842700771985106076786375233175373965341853369220840664880855338766618745741353660632553483917149645321415206989551179917246445565458182803391278515959655803479964482316486129664099199932153649228183077067634721396723984079248541678755716738147805335095041205136041282182199999140210291730347693073667318319773822484282849290205729668804017976538504254343709088966779357692615279819917005827631041082715169806040431331604452635666187139434477059468199783987801703507656134709967068469265273376435905885416819397885792048457769182857969454290690709995316152930430707523298602123580264668413559327238135030039014361683200295730915405608537886568231682125375638399054747285032714972667753368673139616063262666193498266471850674754371532971213077391778306594390286629011222092775909777947704749685540555766408855094639812111401271150158043898741050197603276889523194671563325207336892424999991538011842515040014096506661364168616937766261854971925014177056568628945497133133508747884130867611068942086882072773901070763805974477900707966183131179872565729264403680638458577672715696022007413216790127672290330471777231542629145327373274079794986156160899549825545568279184110974082555913988746882316547636882417177728087823989505081500125563011494101958266641651452875151391320825615132822251407744112174183389299446071341302876426995081393300547242206308428187464691750406034707290953196980569865033474049063798408394837878333496319975901943216477813675607806609864323007854855520962596214326447376053266888333977449580577939344834308249024013782892332962881232517048301105744746213461447659602074168314810715570563872081809161128324916847579629818725517648747026748501205249320047874738698189629764517801989968924830408970668615081377843156768823254627697942984514042169418541873779914273944363130806347505973673971114239562142274693862255605824194880873025270385626946308447678523944563596804684254484630954014615962752636272172357203422824777121340112026240361788463518421548023042649360051067874598358189363350683743838195828163002463329726596828602494540485425678103682756017448380424886517648752691148959358654841821180009669956546723382937322590222307464731578003177761633949499187093811140822219895335779580420309991266954877221124498351969771339762292076415692212799712474207497005550305383478669745369520899950459937390425959470488166879664966777545230602154971729969468418449541235525318856006400096230854756377563572776244292432663166619598895670278821354207372467933993188363199586611365230700991747412105144968265188399066051120786891120591294098307946127092833630958460749281420837960118235673921555572870409887590232570901491770950704658965367510045085133429643899338591947373767186548778951864676089120560048919715512689827469656780492929738224682640964688384820838906887506091953664170034667113558510857438723030226053386648206818938898596451539697464148430322463918693372100970254329366670737809276040363078363576210340784224285813258682586046617967261430551936797638012296363885703124246395860591497478194583571799070730156366741765742654549291122958126723463632566806276188801046226253475925783516023099821361446866230011143312813397046728776845453933878898104170324196159399707698741225977443757125921723251115931138677127832843466651824455540207448471398790004473611126882559947982999023225642221848266780087980450197764940397289618327313357115024018580101073664644492484406333036145340528471089876611883397289528858054557551297331026940698934091331219475251437062961283792251646011168261820035265845820937092112218419271777249305940666454259845489349962587720796364451530730166846378746435056422529074812437908415920379473417315256528413174107334228489698139781990491135537348611527990103151795584793039192572914857829080681910134950898945330711711907612430974401779902780531473103350486593273256213603545125296634629543988104741723377260275574364845565845547515971304464511330560459205681836170393166786733599408242698753852927992912853507477665336423562829472669003983046145009666595936151785822931506226381317937081011712951005413651355009845581198584552207897612258132474234519094918187061100587408321626303740667957951216719667517659113865448907817096010331538544789765350361183201959204917587358690888530862119731688883676680746953802124506240907756781890211651964550531725221735998670652773043359021068217171334089556472816707336737835553537659942542025116385547189531239804475394775413194121262654090079406326881557403023794406016378094129453642861640930971112890175065883139940497349096652531112711083997768149631637289928950628718686412942193232945145560110556309430370513142847626824417826430063612958637487603615840745887634665190299241407142409888249121802460079730467213173614862938491121546194610129451412417115451261057730415930751591675186443559154228902618688124377078417964920788260196692020716401669849281781603793377714554427099755200937578253330468352997760572329011180337516536036736118432434583791898851955658474672080051492880180050770696728696355998815013527587235957914477858095597763577239000513280271323594652257790733667519742480315411275977239794366439319628757933632025211545346092475188630048436340881462348342816509331971684649460824629449151028726136247702617501276811398726503055945780375117457742432115230701763908713739035501950755915866583178863109823587856564408588811508580678846928761138219883249393094598481517269533768689577317709410380752357955580183120479394641417288489582746691636970730124080658593849125688934417264642320399768229282943123431821337998852072204754934980955002344744207368458968305448395142420242825231862291594727327305930650195997315420837553519369111431420020325227151019923891937570675025001070236033313366838367249874018598188954105722077906458478082035427814680469237099685628274378130081604924504307154074620994302272646966149757825152609534385384291320997324154428880757607628177742270577470974059670716898436315172095856049935709953285970975075437024249027041382709066132532125767000459835574511989248003313458494567863893716301097372885363712381210691071624356064053803766951468430099851456155383596363839554331364549790315906190681178003740446715490719444149840129148367295751718566074500610591975914043544326799986637220361610393674161052872898504222305337137085653816077391844132296844289746365950330455322611036269896670461695411231694139705530441845507992341532981353245639392057045055813834682075896449833183143962133235943546688301662058986390405642341104904942475219137241128737416658296628528504769609773756372916384596681955403761344345888717650254111690589366078081158035179385515431719103393550970538856087951358267218470782457094372170643713635888511165642527960134078019739852698430732935975419296666703698663882794965355667337372981644547568699576939814316496013877152521932800376797900352734359188110242975014531005251211558080460909600494395896347231594911197469599039505171941004701635570337719299072471260164266237590612205939290654485320956229803690022360330889589543590296289152916455781742636985184713012102384267221493681737381409126724652426449785407832186181302061417160221136824324820783511078769559508113793253811702403322022390646445709756797602671959090148425270629816841378202873585981129217686521325515222292217973742354722402597322477184201560534411652989623735431572033189859933365385042257694976114095242308855677128821346213790359526690911919451676743350725460261647528047396760757289506158505341831813517148814975336657945345269801918971937294003482619207785123728527834442840990336272032389005993077359682962299038401048730629628285488595486047691361194649789549753687658074192244112690649166364041499231426370152214237280391974068496177401726461130477327675789946472148013099939479311347554584793200033662432681431658653937411267829392121211476772848644939370418772765397401700620553999431206766637121246175017429720501991065374281036348071677612864939592601077385253082463316619242706353553265998001668038793772816394817947786037129484674509957966618950447823108718921076567095255526099715534972571568409754904191480656174185871101111069644510900186850055165542614664099176063532372889050196014067150440516390352410034754078719353406483277338106293804040009813460881002052258254723170873199239310077136603474863034157490494579902684154661063365044530033561880434840261874253813275311625376112678535728748527350396161584070840238895773548411246794277211555562818674760183331885045261315009254841496333712651116790977045769076675972061389075261601767729520258723948504305055449645699568705602297777043363684840944320783203009340750841699965383142530528683120849142256576834759041300379088786368995987090114171272182758955031817208467231865409808290981283017437759078319967110101346750624235208921201854978371205407796425911559192532165513033418521441336575530955187534910244227803397415977863859653556924836752481268805631642033350314752929282721697127614352390674382336202187207560851241363875403060636602755796273805407994202990311903895660496954987295328723044629118243620421723261607632916011187530985398525285124406761848110720271302242768454968658453395701507880595994545674591322410801978240732678259173493952849149064692653816695494955606572901046730933394420376361805233587508797506895750449708003247535167729954328999240835231076098623498353580822287998058604193284915122826485298694179994696595721770471955440970613971878429948161301309261301759881967859389864690308047785243941393573196287170660279233078714161115024313849129366909914049006449238759466983075031231353882597279508748097866933332014691721612719553689155690850051016459963873312702261618610198440893930207516377240339823531676001578639169836925340952907673854308222180459208438323240502037496501401444867413240212730995596510237836470421299983506631799893301850103836468476105186141446186496534956192919185787203871540528834229511775732488758404617124283597615695175707791597677775278446461043564607203179223036118867674342941913726551445438888606473236469636926757617201177987702390153508916204040348674301114632762326374670172534220221317557056877258176143030633687894086555985783062368293540252934993532540059688480304444972554204981317370286749993356427950088376539076079878538942742616630966632869735656898077675528348341154752412700625292774413747750490846613981586677233471012961492838698008741138912139312971307853056468841947581420509849550239677157431274783817708508275651446827603067538971191842573217643167936446229860398134956135203963701473693662211024165532407791215865036936510719277267028942312761467502685858390035271991761489374006727308352148166964987328342726342468976922516605260085924197433068041678382578251440021950791776299337973641230243034272758611883443007951934910832760023808046825885772999612682351167480380102835587392297464291703728218208182799120271300823684303067470007267978283377128808799687155315588603924605792634970876592180990688243722034329897412496025117456562851141810413306858538414750776776912439051761055118126536425190674637796337771505592312734388558529226322999290322970376139174288746437431779425499443971510446641375502045458018534572108250884084286226497774857195683326698291412217546202461711521172633554755923770408792763716743790466641174327456815632687828234287848216855993944427055232997458143204218988783496084492859479706175060725553929934360297562956079147541252591218701814147586077499635310798738154035634402425298812720171499489126259979700574051408568603366819837873636244017886436145429674115856064076932194016824148874795766543837803514802828392934873733450841777630369233786426883637373953517630899874324941583643880088755562547342829916184440276527730523027375827129618123612312279860458450100993655001974469381692321053277576762147423485585574718990614099353799987925057137929928298009095822706684233400151498157556718531077171172895774173594645968688538995220324924191381504560770520689370378103463683492392104540948761691829906593215013688847275892493883397456303170842018208867051797218798267473935548168036261220916747742631127134953888387119848586546975049293930601524569986355738088860372539644386789016562583537102261496322764659706161095025315323645426012972962957048968017896815208394054870432540670135870559608044387551209400551421078989079942448595441424613932373326015641884368851196613840783982427545969992759326303855571575218899389725831817979674284303055856841113775329631378629750244102575619571403841598747666155275491122098087852886351292964334526450158178029823041738363121551427840674655232016528190697360832268745433559209872929514185591047390287944723847435800502974998085449220210968267917636775547007434900829790760625789968095907812344473046360525020080068045856267596470772308967036772783460103245949305863421554581511468186916285200011642208769772067222254926533976618269946002495170405568644466215855832844961223398808325449657802346881689525210824434372779323240793292561693114259279650098049641286895226282418466768519164923801225540397941565287154965870629295222417912456387864140004906015186472481318449209842501130491888518788007990528156910449594440408156847379635580996051055961092405299801578679599598341448898983827657444699706964145550158168382011998864579435187157297242355394911023769730447245961227447203939229375580664135596806439435730312966758930992178854702812534928512051279899213151723146727657273522205653084425872012859822584991272218974462966117057752273621521863857574879705186537107723929532803404279334169525740074568431097384878500082539490941763329487406318540685985018907462674577948609766010272304211547504441871175543828323693145043872092299064164462698561128491335423886467487750445199026951149049347572816346804149360478544957159463456701160498830087847973401721105149917535232891137311924080856138179256006660504030348165602748345842501553707896744123976560710093669356937001158141690205795465213630296627582710476342095127927971645868491690507479203378915304166831041367702404143188218516149277991488629080025069249762440603098555840085578721886395595669758707378003828197330634736455786296190638928035108408065350084367576864921643195386529573042043086350396081102645045536261470755861614470119438747287057382965895405923902600009412252707728258237723490760793324460426953264079393953927756768058172552123227431987812040164369602216111864980382497869599918689597327263061877024962561986134812670537789918808922482073133755258254568954604201389009109944010318165374548553619020087494645242772614723563228470610153754340870268348715920593323840884828800829455155134349046967513931164363298470055881261429123473756245976980531494543430660679164318514499218700964940840920917547061776391769166002695994769672416910128361269864195172519412525364864265116900538694303998549814934308747967375986814124070888567806576537004031715531633294067391585266246814424808654124419001791646992148691151103276636639765220523292034341560423232861995362559472672691211524975397264829034320587566653095248994906300324231787665838488783243242173874585590911174881949853091051824271171896243906125149677198258171215320546889965609715465519794290295806758748815500702479180019745937429595515472157899185644446199916236328298154473376897677437342106123560109408248973245564583461682799062935409049665520635741085474167828223973845609442794925055906759879143546367646792730727549562902593252557545365076027875816299557934915684571970285898641606152152257122976655386630463964981479597150895775281148106685267356642766267144335942943090012848506402144373440666775238702857760782852090589179988808154068817504186812000065314625067694868555012988365771216894516025061169428873797541986194119097003099505339813829696038252486094108022596841577277139572496918488608065576844466492687454025023299808251226002404166312600597101897687626940441121388408350646523150811224442026547316525353275976158604251286095993774451544755685776257961357562343633431329398943277664191742527335679407620759511111403944264464401788448607131232338628044508241422680404811994766550028604044813651021424502978156478325367898883584664712103784492766708826742902530754980217356331023630720890812048795251933849214225719513927783437379148979255564271895056763105250227039830232577810540462045717388024101093277306754238822588914802612689671356266587358517332808313455750310767118043203153057319516195693421380605988658568822298189779445889189032843284482471538111825638288308814857393940591423072960682509033526877327912538859475947476042947275052106018074661549391281115182675048211831001630359076766578686650295478229286874580837782888642567964208466958978822592410775943475388346509113747643138086406988686347452602212226247234096354953355073767161515974334534170501394536047506756221612317860181946331096463479498048853810415307737383172038536546598600073455658349536479167748871922416701282611095799840518303032967692471043838257153797726045185965976226925850447678550228151470359926642227040487646224126620089711298838008595539231647593062434387135775407001712964519892062302324954253973526559278133795885286780145021191279706814446427634466576449714679342703189704751072800521660007406820160918533679006082763885728464123096991373562164429675606640739240858322236058192202768066855391636289649797069873990102713210234136987367853902824869172422098954865269089145461842006122951499152023305305808523255086422234222636220298874396567147800987141411766690968668262129249940216494785508077405082114225156613193843693242970724085814621378912191306508909794504354172589143562782470944755804593189219626694074917407961683921129342462286887543323329187579189666512207623901923011264148271665998189061071936672942470989645147602379361579812191789386101669830481016842430713844011113897047424753586307114205823236090056142971775735515248296572856281398349330430186575424996081834044287695380983888033394408837338884007991601993702456082175807252646155166959410750275411683482392238538279806004516844294213122557028945285102295285101506562697364110646398148102533203189177671364039474372867598827181659344282268859003078879994361354856515618484055799137238797613120421947316294820978423263926655453246393593167588179375831621432468795824417380955045432687544224322805530393188839146347132949390131671331438102758272066026904353008407705412715232460842812206021351896996539469725494933915201281323729342742586895490157293630576557298845159558639469439620251231485373372973035192574154321119166935713798542375336166098665951151482213009913285835617018037984881042797134158102545664014001861376209741738993574615160306663116822512289102851269095591235155161435782475371377633237377370013189055170526585623434915307331786820026745158777326218253522533030383169993636524575181374312867170811295576252816029575377571641649470784412227861370436497568142036672963494098513917247998668873458760762454934596493750492089978158893199188263333978993462935905183719015541701366246848037359378315366817603504540619716663259406830620464413292616807136141303192116814714176105923539497887979429650471876466602779262863670920797812398179115969521927794726526521158365029152459143730391412155832338893289613955466703835553095490194574189856555907758170435150575484839549681562980148918888033709640787350226209798744478797785796394947201096502244648564395859839817934289261424248454175152886385643476484590442127720870692596820351898006016961082277698689085842434701382258050743319666369464953763735642495650129377724989888823321741373806317317282941515446751300807289226157577885453127367209887652829938758491386698839289583800048720691767179458529310307693268239836109106213936086315600692082168141897626795388608611259038135239942866731914618680156931259621152972504274627907189110115990942965770568856534146680882065052927119056946585985493009882170596558405283648811428353048403158347494587056908723759037441736617498352264705111723574447410056876504337650437554606263688051428636409047585254349825606687898004452468710989476140146830697095090831145433955028060873495795928966861331364794490171818518136216503481668893902255350685737702418562688352231369876430479289203585094969531134827649215961315400462661288529203739787858338612476453624334089908010423339343831259608920123995085225511199832383773300534026473355631833058565804163138324903839004576038378343395489543280833329929033848909053420923254225705254576198015478577173111482688178870437777305902017771108853390727048031440702566026325613264793616363560240895485185180614624763374829839454692266505116951708678267714769481803375966638397666929729622346567536466903396799019042752954656544158612643343906880881599655613945074615857583424930505859247445736744136335086967990331176160535965261949514942278949615563244925152096522966919262785570782565683007176977046270701101302347556595725627771615633219887549496152301644582113489506007057449431236926302479247295875950337638281127806621229604316088453601839385388257981103443487373148354595300166338455033536060931158009955642251969860608229838657624252693861818599958782345430904019312821457794217532527116070697729038070566653403292929369108340739372166861518279060976622770111323119453957510601380180417256429061804233559177468049794465616735115473755870947843567451447631621249911977216432536996301679123436196914625565965113802319006756288591083632220222897883959531957841156406778780224806318102872615180831441386001929288528132147054691180060801959405978868658694788517039580151644716003408036619854117131313553508360347325902416042962402047927997808839353174835100548808724569336362395625631202107089507799803968149009605352893266279402232109122724217099107876538429797427696014376951595746300858879543489565414601421664413750606707827537923432774359418303269224970726103129004878436335077013529202418834216913905329275018076684780218008231150061470003325024784431712914620720716641200908979984580551723548940743907105909669606159926204530070229760665110410068047211027352768519008391441228493199448170065774481427730662898850317923007110497242812916044661217263170828623005198815796687324677963704843414173607387710185501462039678583812362617529094184510006742636090421442770849220091310536840686951836822917825925487092821139408687769415354746920848072069224524210587684860420640577761189845505298775945844982760698936318319719814629530691869607573168937122151415671897949973030909880718420818334643698475232449234172594033825344143816415695683337447931824322637867806062379569795405789255607696830727873224423724494688353869608128355468999062586614286146510239950362845855715125986188751299591121179019584862709048604296348974101608329920357680196392487187282693373243387680618936691037617703100257830628390445226840387096923343939631284631512673429512002197467121071941909885133150616289400817955252642136552465987043360064703065718583302441971891040077654913586071688963397071690328041835929490101475179596269732902209246261783012254619394208263398762503259758686488503567838764350602772437328393305373958856892935025668352252956381473735978120001785043279186738818621042402123725759514365326567499985542292856937256541552992712677627223955191389678317931708802401720252175831633780037111551161350591021924790609905833398633817465312634252803379919508086676959811868112260782865873872795255366985031157827095972015180586799691128828225750677632230530626295060004354298339564294910740207963425693017677572768208318289730327819603358810532086119906421770370627042235537007457465183342309063776009237446188493420071346463708476015227780387835776638168680417606084450442081403697446890847261238280008542259225994778735775380291250813142582446238867612102007654222975835360808431801226226544194133628854467743446968745340181422445732790712059926409869358629610195709435618167223666607376210259248664810318351651378358771641563196173828182109333488760701625405042196296137726118315302576100995604496873329538499499048229722890900153224192354790104156212325238383301320271786369704497203632683568031112832189516104372532464652399502539182041550851594602134931209675016085637536006463539206189057167647186664232451978572165103021603757085936349453583408626325132215248556495208237755801432544879386602864159236222288255050583715423083879446250021807323675551189989870732547124604114856667362269498239938675659893674064060942147307745882797075499272223990712151497550417350626470920818117272600784010230290808863601624655254035640392563461017263329560329469569347235894949875236334492391502127845657126349489745767944966643626396363300016562240568419023714296401563296913385841192039751525047856984722506212118147580856703944646258642307406908483792565963939445130414197913242439406352099384668060699300537286938915710199793027436629760436783812014441444305098390471748119023901704474331623532916175179894319504614577509251382681919335352010999478367258141795806742930498026036994414033503955092063158656038978093057306477114768507233519259284263373677897804924753785808705239186007130078609683813049646003842587309918138856050126230105137277311486083257227374868751035412058254038044933185033868897760022033078813113879335704632498618426477510772464006419193999697405641511721241514461585214793196341006790223982796531635635563345125963040633528737118285482440217930046320628110558519320269676428955546070043193831718931140966305865334412597283320349266130248154661198842065407512696809491899598969010354706161672591768122444404050194178969383024332912420520380363433295983819933041128738874788412135983035721048693506028113488209800042617062384430188074557948354513588028534920577641625131343558887975262366677628011430319726008846038702119642832200101126447601060460930707585610839498527408907975417942787897866020934867127312828216088385083190440758273201916553270870125860571290619319054726161821309611017184817652638640550001274017229731751554304873802702208080091768058871305595156804601609511258650865295115426332846730765913749645913812248289408325469937713376849388160834463163958097322243153588283835220409436470229291002214855820812089595320060091144426666329081940518525800795685260428040611052568192964647333065397288494101752882360082071248803170945401953270855479308403088632129567950625769030938237307048503622525950987082062039384087675623856434036849443875934476594239478210186087564524996834735703859945901304154076925971532865029517221629012287899741618131782296727749599110330418889630612356147230804194289752999972152359966854325820403935414798993981363468876186979697006266726743446327670341180583734775135121714897970552415763526565777283920147567149370688502204657085430081154304628088750350560994421311573314022769098103450742233029197332203696818070626076841955944905506104218707003535804957995187996237809673976787311639424871420817861895687667275379837678344875476355455300949337564146944961205366185000536576667920587484801600823688606776388496783886044297747629747838724971731595281581328275535792075084633764370265462565505800762327869463360135544060986748595192179869778533271131100480708947551170290014556867731599990151703083873440231527643242770324604831751404848114488351005950049568974115442334985712115265290258228801619217947528013846034060164206097231793969629596727891481005318665595650432862840095543083294551668104421392542640281655782099608295520688187427190212085491229025392070273633281167400747352442578011696472189648797446885347998773167970152258911574585969178548376488834577476607089989285238878749414426636497480780589904413303348132221368884939404095812387852497082160612841905893351334348421598584578886011511150971382367983051896334608263887937562025687623086498485701837371288862665259684597036435978516553639671944345269497536122251337035044746662009763375090783170602989942853086207004228526971923736600390071242999422500697765974801183958649187944174399806747226349590544926906192986915979485330879309332504749958583671091991089068673354182628008672426232374258683629645986240538376782345233864207138547851611056167138663919362001545987994811027370937866365367915489258487465088426301554464756758178384985556762680778429770413762586439261329996229111462541867252047265176246653681554056708102013027622124056634758328409209230863944271603754923011437970651800945156853414719059507683554306758668831369989601285938599788224767377827261594010067922176310741349999877661537864267161358960671829942557400994313940927807863989322622381108473758099135321268070492274321736710444933821523414666474645337287299646380587678256341621266482958222743191026502625982594590116341812456057530241884617999892589648744926308456474576879001317848690446316567550822856842058001088470568906903843642710705905594552522972577419380361397002758484872961951297643541213311952452859413644035644733222970333414919144102780284920475200396207345850348292334149364730039866069650189416191750167172632483889894855216355680073854587723268416904869572125073246304819316468198557108941564695406481244377113664129092925496639774585368470909780834283397757866995467248176184602334142263617759223566647062613791321612932135233433684145938910956819082671466960139330291960953411694600858396499170368008319514632939479648014083696504471647697259343846426551658033916223242006982264612168549735904775752403561479001221516438034115460626916707162253288416967200359188566263427417526216537469490449657820140073633972229827949554411102933225395508687503590596113382738157704093397712208607496315425764176593097082950609481896903056422444347531388282544295342731885737137578094138722120385580849651182043473359724409135419517892484779304998373880977973007147819177113153667052174361459037938499219943650067993969191875411182038851799452699345209076685618111721142685322433142427518060340178255068274730164324889817743677648430642510055470045433237271645764160803157121285053745744938525187739683971490246821655788092529804733302714395473101219668862038507004341428038916093639918885377252051825146536360182861849075940099683954265761755658415731934344954101630413427354925181044272683378365887435416680502597037081955571835834238127266784585304619641227201754324437405725298495761829809453482561947147027263438253161345462407002449680122001506732994628504819439626973188578682177107190746001495975873666143727192416649804804690935521128780343355582525680658673810497559082556079654024614014909532164075562971096889162858206506414896074946481559256091043464439732977877313455246267738853626855717657205350911198284643009435525005555532146841711191046108371973075814824728344683722652488607837290082511755759668242932550014824846503026829138959470237055501688402664549725734300825169134924642991648010627872131195177777847016461632144863772809656795391288422588546198686618215739614834839772805737200811583083722085922548972319190210579785421419473611842026288452425543054439142614382787675899436713544594748799904908601422353885020548139982027381933182373333285089570258869183396690249381550083467423777971387250268677321454128099142819421911711363001471829970969117397360409176764908910044903373696325916538194380082328138118517440987131332830139583981313618361681602377540641223193902903916315797513287644270569341404670217212024537948623092983804351603658848242064218038146660060465757594527127211147858961363358744633319273395041918426705130379031917060342195880933311267151214742622272665600978621789035589264434828050367100884791416145802665100650529497670948401345516147457340913872737352331550407257304861692952793373394911256639413890650667986144089249580321502962559443043734662314531826183888711280397229633872291850869556494378686797403537048737959629430745427836849087627906872508774012635113109223799101506939647882281195312630338579131892435677241082047505200792737488410859209344732960912103545176106114871569737782488112093306952539962106675489627812541671205306862649119040729867248898871600811533398759743725031407151540696147628607699997676829818359888516370610643370211337282409275560042948147985793134101148180028461495428656745571016597747408775784356368942337003599813553780280632914221921502953306790635061776985622338451850543072879945557854797735523542973388178086029323262777377814414884942591367694189733310275520249541426570531936362230725224792203209734792190903330111592257194813370759055050741976884784212136542053451290378864987249208853874273452124441575650705791965324671537771573354538988990611389010387589629987671809084449391012526434704025830377721945104855032461630368167177528571923638135207982185784611796204793596978863963709152749278367829753276637975930290032939384874604965605921903650838355326232807712099071700940314178867646110940887933751733585472802647235555282387412744457764666783410028146508595685871465015378762722727789237170780019239848715340312984402619784562911536785049368806532918005400499312325727017670334245029640267049848123492674190383046373890407591947129711617108018167737702387813584143229857050717209804849075984224442446478605376972382437967560716371959566845462428017414584475432651357131017504821435334620746077630096980228104441784362946690997970007996828214227588381826804105765643353892585978207131751391001406456138294488172969274047093006472293847847926754914171856557795755547957747513880120851108953079116616953616066603918970740933475565668959075343619080963442337318457663358042791598128134026890331478979585713326714888316721192976348992220419121363756047206454520491050834287935403804386574968119115831398305298541525270096693452898069066893123623560331746843351026427608363051379701677971351827788063076973412452470966732909396472224502309647408761391603152031480326881890979493307363446428221994846139492511332088828193580944276709499055629388526995448829707341606844663575264926950522674335361421095099256840238702789291435883960164586953779548882187318637040192533858517369009755109736125517274355309133682441228574180117837564467232695293764788388405128304847443470714279241512956417089663920239372379499773238933246551254141729826235855140302737181001966365850306319869990821146716923652205264069333351608274826768734284362577048435653253949569583448936676608043130806575190228552624549988895858350989990831176184320724040560867407350187621574515220832127672277639220950270471624323157574686464659311523025431129860936933842716897588468289938015574502032923699645861008503471703417196621404810713782274745045072711214494074594171501023925981267534068276688597975564791850436216137654814067294708500188744454748263043744101298102383217292123751390898092454967657644449269169237798513586608258492062013825759456050964787306427106011223312879245160197553154313867882033486953705120814110257715776070845389644016471063695122699514781567320777432393879214155377321344691401965740890990607743092910595171562690308701386851473077533264804675760078488058326416780625196079377631700363499048329785832280274044634443728988989717610961336640566587680593446684412459844671523155416992898720161988648757743099592520751224381991120410654831053337728233599483316599598130572765243970890297609224524990209046482955656552161620086653099420240811708587285941531536123159602985634164135092731413429815620627241431445929216935429900707624067627212178873221070957285589719581801407534949685319670457493535397203183822543862421717313387551788138403327755747593622860529524505592881802248256789476101614533076790631438110180722005466136132352208093226806782621298984135117754969965590545403184556222031124413145110766184554543477438999572832271524588029163497455018775203663941221160050541249958166163037106462643423911413718750574330397682304581406138696380825220860611029866469950555782457094659193208459039313883928228753175145571222327396970963995115092458456029994111349614923308288026491437407704436531582783923238060694584513327982950388127385472548054900793891703960774770636057990830579543015788526035758728039508171636350668216458578908722190456112097861426290281653746446725599827904313196830170301518607184843333635551311591706583770164171859716616359228285600118441313890331321877565898390946441781879841239041054421352533519792521155696009717132707669059680434760238203014858628448653270345468672538856676113955304217181779102486164861491833845045516315928220524987551161202727046438807999557197616218164712720985605553538313055767345081418601991978913183850320097332377147713563389006774001908816045553407316870448948857053479765476454938276371957297872233972358659123413556225728113022389121009154303174316486248521706925385949060109656973622468550415386011292033926038364582510099725650817999067887925193592358823341893331625911416312221382507343000626941391786806444840186889556113303413583890447633884547190470074826656590753471493978957635015498430676763904923367303764423399788401387050851667798044254891901797176808149479830108031815493113770498516116601003133451266128784567408037137700243668872472119405961122907186463305173376790838002534329446816110825175716625099167816432077953212446168292056259291685329301797085615801262444513940832566076220796022864802947011817717268651362942793642541184728473306888755867192207413854068088132035316048534544282138252650735668115106882129477352487629051925125558806741368435945765280278354718895171134516190806504072564585502358537085252146392925887738706023120148802470373778541074804912186806199092489953673350087848584014573081720896828067998827657019339564468798012912519176229494542463460053946508562838870199029067656646773600343429749338340366050690302918628509362911358607273110635458847451028841332917752590150817344390909343807310694158341138517705466339779693911172493663043776636175115850506944459656119740442826008782184795689338103472288406810483097955951687815302866199565193729898240054982983153028787867380592225655823503925748368434173072569032457622112431465173624497124930879044719213844039766032019552610958875059463014107412168386162063807460644765860798085917108153622406760029164543406905001460017489637416212598227720242866773341357506585736384132984546586564132416765948711047013439319894539338004755142856439984457421352399389684459203771637763643162806257293572385878332049991357664737648427132841548990250820160414486728848116687766992735751679749985623942542317885620439974696464440428691748145156945631740510452698364010128623306638267723840926113915053458598360819638208343403236593761697643852760862794773180121790118153614962095339360841427364283884174060046670845204912289558636183458051164668727705747654076342597998010793866199847069296790098571712826861736828503878350280760878950268973015241442492329215626041213495546580427612616112231217823020446136416994203337415245549553061783616003026373974136226769362540732837164952551244691605213168631549723237680370903180599905223498976349687632109889050792202831149893751409648559658570941979723595707416716079104070809872169191322112007206081828973115334112777036226464156707223572050924006137286760956684534637325910108456878194449853058845681021771970420338028429374087545973040523415726468458756902228235235512626218558903069322947904617567232744906337134153191186548405092812795461927894568950361287847952570362972375040256134884582461805880669289544417482142146155976168139132041718498134947017000122461663300934064141177405447738405108761927589044984347521382841763878317640395096444844290419705148622295004862793556791352466183377356227428362389852341849414506649831345626045881763532267892690640073501570179664693044677280335024982669166093486135686644335199211393965515730781225067983448211655260620795594277371232340131714982502647335444250120417832102881450856210939826732230808845790235617058892889360791107657352027269591974547438404738342844025862011620859841570730028369643197161652342871848064923114665371359434238985660462139953963309727802769910664015337366875150579299180574324233666192348361111792451924135992176173979564947300487711340230703820846369019895662419721872460510896207202327463239124771117927774271264599805370241608509522419119988900886305259581497011635414957447192082717196723700468162768002892166353011556895003643476187447059510972261006437272741732622536903152387957732903187956370261438564874839434863801242154018640633271142226154887579195519135540942197083099412971515451675826168725782204116034345840324044648717687677207911488400769658197678973169133401091156500601387774343304328871090417082720984471000332626232685702550437767405498328894031829351111568675149500450404702386830507417814977073386308106082829232884945158036225896480486755615545300660575946389729888917050822007253322746745380968463438600324957651736151471724915830113035003075073415556082520710873077713196153193098302386662463120657150692733640848128298261902174699878258166002284100262264796574131894488644925876522419952060906609461859726618758936472384161574114552531369570228039364792457045425442333267916596518770335455578214336264201375004044517119103265073126370091677755881140653584453446517688668583383782266028676786726291737292587501627429825668513224210960610715748124971719701861037619129641154884602139916165041247004807732496064783607998134465835791815653159246499055484729734080802470290033060200151835467238127189586368477311396647258519737140385118002725106241517004474095107764545193808824963403794251510551690133817210750491270515339297033368128822490849909758958217657068017382989784993066768279732867648772462521640518449852112542682821915429617935472787764366286257560331769382143253743119683597761837055277103192390820802698687563017655544863187851853405834724828605306073140970658068709946787336057564619749097759491382443605513278734906856224464139725469516109116990567748412626635097848864791163661627498857107054963707157377871309322042694147789281892108696025333019870891484425756306250121114515067422354562076322259737983812935385217863873925232905064740652364819133851949357596653454104305183448982415721234904150939138542488422184213275020714391987527353268697734140215381479697217398840618802166448826161706222095599277446866924551531898519753483601088200478213986579665245338780227131058740093235806949100490086948369840683593701825234874456607115443818202050914431178987291242800875549422380415182824290131648224221407363582458144816962640341740703469899855314034157935348675167694651466645664013219380292860974661205235926263508460393880153402583241454406628873510841257352701792465175138750911869764090605659331709811075247811224331628585852460349473067125335216156750384200467301074224210564146112436368740343367510869224234982334742128031159860412655735033109592502488609300094735663914062319411946077619912991699163668903602748756144767303320975136799695393853573247024995418403920794562285335427639804230860026120879753295925528933580007327514722154143516868554103119138107973862558358941243906259396564109131805913173025862601611421259768020597415158034413624983272506299026182805989798959988463465136248931794430773107452907549170725698292210771771568444100760607946434114415358589850738753957752783647922772607785154494734036032199782554292990145886074322118368283398272562544351706534313813466176408809943143759050281793205146151378476493164482522488298058215267398757594957717210723575754654009059809961916069552038365854877679210368003626368402738358827759542850902901416442208961473224809619790218704069877865673298005663177304949467565406948366059007526703736644037694509739006678190590634219790523445969254939247989021801407152865973411316078309220171350854860993485243653264572505766856490359692548210212212412188546536692625997345802675680391395478082991167660326613695849910661962559376950932567115940397093399038172771148811278631965188822038085919601533647062926188577108885506494495286009547450692158035020769387474789831003921444907078226816696317028229750674744930431731664030897464921735793589916908074492312995609968467650440870469831612481273732862598445493499378096496556498877728111114730499872185432061577002757992693434612612018576591408250769159827808118623849518359804051167320183850113333261090222969989617879608934546711111938617998274248161415754962394040252545346880079758352744062455086331580894238339502786945739670262822649237352404105380559144304761368415609382083588777019699792662340401794834728241547223344324557316645426240472729361795787890081899871633241179607451795604203183030022451594780928784036773381898450830147978291339751492786622675273965583027096793303997856681178507818552769432479014181400867176897388416159924812188010081454762555730450987778239352256700101219587191008020584228707901538607687033835841396848856748506649419063964162273115846432439005788003741854132797479822927248966266971517229651392275962723398696635808949721415840197760207988704047969360898581952168434025465831041690827446402863330293346022179998613579685842224060743065421329200832083234094048732475189101432069951902558435676445527840415970168237138437687674724620727412599247758138777751779317285025736337081723850343974794788736643075912058162530577253689778994126734721002424651406689207472685450399794687088558859744960465601984391257571032134192908248127504718288144278644358196029716820756562380171663850361691129960364857570957932264148761490555382100071424976225288219986544163839569601780144732141619246716368216110444952424360453448201595604481668666375034127162434493256517219210202838243757791745596397523026550771863254864843371686969867310523167624468287472915600097269902327378552657272968452151314709198890127978466366191621781906168523835319066508419208021036241918143079390152929365775037767304746604343878472579120778645684159162228342088396349221203660009858544688761883462435478033083293509088783033610311394229507322872910136998376174540732775276500616263107581221579448907400283984172076156603053785644035699449178384057708166895526633792001947192066152556377001990538329375483484767325109205559783402624694700575952247194427277684569324190144422677483037756884367722593423816595502073412807537526373512099434216266751609410069454907957906884065985840047419975349663610683716661009572981162639025559610777759009949652072365279471202399819111361606852956553006152064239657107493810107429039164345566763096026354552351481127911708427323742525207706559967873625274769388707717096816481246493308380160416195849441362732759056289049064403427927201761836931120922185203105500854328643966681444005545999833584934512076310709000052192749910818295622099029898093723319070149161035744146628172360194273799300055875258382293664149856872147751845962765523154318926190200181559464034363451795183482259699593401518619658935093278634922130193781143959295242731337642829857862463694488332302170169709288066032529521738693473280641717200136516412920090467773561159973606375625123190337403558118975993744800906591422662531457854885985746451255511215505099460690459565844581879066972324469503548084545965728733299279013744933106731365444256574477162335401386282995012101216723956953328255866425395453166637553604529680275448125161341722417075633314222707092729831366360693938281903775386315051085814538453589330128648013609494830491048014976191313027604937740871318167440887480089756533355210984435199469301647110209769014197055775788835735187515040397538124429207741703581447729901360546944478304195042784563542582365064102520904829954386462701912565612090497094459487659624459941927243316159438090453298708339192527749061034132905996545555595230769949820581844465142051368500584124504456819480527999022135233497050325298656204281580974599595797993505079692653579520650317448004325887691284508051557776360041216290690693510879603124670857743280331838997536359679385047218121548236929994527736762424395547215398061181405904858563121580488713043537185116151050084241101518617944991462776727842181148175230954457150059630906404548211184189951076905652513815231488783774837213975000706741358018018873767111824569837864556315982159689761875807375655034703159887200275800017432871847440374538485328060655726190173169081822948757721039874833194374799392115856744753884208461107524930469968520246294817157238789693566575641291515329198771866531356005995491426829217006920690573124071358557276554115846204446337496348404182095811063255341818149426775844701425807088420771518209468732106190157246657371629544487168685264678587124805126366649484813232827980711362019498994418566450305136650762607586231455255197153827377523121759508242697035957876909813175869455712576045125075109372910605317006277047282241607109472762110720496629624536303531722536050405847262423759929316183617181204609963509478152005108668049480110065617592135722419930534620238733975059135346361956588071380331924233820917869798784042022691136401139216367587376140346833424223471673728035983263122646327425087744394055853487502455566370069271049446475105733972885827610595008066406616086607809098798109257442517768932555898774476064567590980604428057052219249974488346376408331326137290087706587821653953524883276064871660763966041986362564753643552413067168023818023592195514132891302101726761498099181069720823456719747346349023719940653829425715229066266133640825722913791468884286748428230224915287736709146003806553068770643955511527903112993585462740498852611403549162648703072535695609811100619435257178868098465971385455424547073456100768528734814341649354317077212412425466945479493228567005228389956737748031724727117357758721922082849517746562358273879463342218927391675880910613561695874722725681616885198669885076293638901898624264936529973599743340216586906959548098183048774906890545778378158807845404893363178102722399174933898382321266726754700840994987803482200539852008954618536426698115869035636941191272947863107321574123358158569910970649300999797302791113758808887869793040028566347162003378152506097921222152119563669831022710177961007082871459062500491138792931309053247976153152359142307500166397532232002879976138764572185480961036682198808929587267916594188409064192148971939329838807752226652823332566678148018716178219501598079234997953657318447168057027498117276926001308982937296187649505463223039519361839563086486053404344988589059485314936353933315612461260194211910131145948263176720448044203278425440046328876205400372180876768481351881499596158259452454536343976079986481428013970096683121127347973587630583506849413101338311608275620427231304261803890675366579383225081154712492489915717680199701043170457706993318165731209365856199600392719029978529938234385952062914573896011967602046707332496235581474174359410474761378845219363096682704126124984100963493148999639157203163437285498352152880288728553570679543768267603469707290328823352136216088220539908595723044258200871721928651936399958615806627439905711863317900178047668449912658929217584889242723260882019757502007410259510081233947099514862227816763726727343529777669958087800333336166469991797131583971062252261157189483339316808257869093588128608068879858814499234397717184325998967118902194225240142103259813735829838135606505111673692053449951446494832057236232942169890827817849854495451547274808307354321724111422433726036562908536661777272749440644506233317308465650892893779080150458596737828163556969204075722536091361314618526274800196322208409201106812730700532149256059669134966863671308215439738822177174861611854586058269519977543539460338719765277227603401587670540750255598624337842532630578496281918198075041719277156491728180417539527306438209225766904661019974458582811160921640127655236727830022558333535907717467172336844865183230544877134476883126217625411528382657222390378424198678867250948741485452678345892916626152856844364494507448239506418279958209832827319551132502230932953870519056823200189480236201707703370828201018072317614647485433326216152528477161176961671254081399997077320866487685494585983012050072275926732263429808252924529257421410940130839377034895582741490785548480578254565720678413963178636925013615846845426826573539375358718556463127127058418027626128423818728983605879152604648242046458357676958161714399637722010245569255512412703281570015179174973045082914022312360811108129853102212055878792415524896896803709425774040617161227073748373873976648687301010171177094807075197240893921635621068197931210331097929346548838863603727350119868622951396352119260047826398642071640361425879605064667976541768471287738366548960455443589322447682218814645569155411587999387694249818023380774610907847330931713208454988248200029074232823470172836481162809873098909141726848074496619497264698647642039292850523139649245885383343316950771924207334593521773924443822235880600175187156416063445490542832980494942080590439885862908453741774018711273507984367749826092295900269530560392357713186521561728714253958302338486643336593821812464433918642648668424565840212105379371511406584754746763566972095511605009185719892969121741158695213350976997547454598838060593035532857097421106936724588460034638139316870535035479976969865132190506306763153698766191206150075939246792064693651550741140478979441177325535859543784026058327060550159575554512513423178188524778334719636262008706395273817064470570107002577150280381637648038046079959159784696727384857882744577704729149000760848025244776224422266979203806779748577998019513207206811926776914013551474886862856634558095587699495455819281727283212811400284790313539723217101005404099088385229756400056529144017099076447938082974606065507506830445477068532573217012581663877306954178431776707910045156377709642325596386211000687579254686891631021899354557101762839237972867143940510056458680199578917118068512008185836066937179669512238532827705265671606686187300778390297261749083760119881374924698680585292082551658652614254001177037581747690670223461593934012834634127684884390440107026414292419988213898969670411230340806428516169258155615048380540397648147460061125064031105637169563424668506058402993666455979348957573040576641712647126064528010350362893077878264567234861994466787659152633566248934411198149223967517357310218349234380423143562091833616814229431904356033359634518968118218434323028720255914391910781270484835734984684301775796756623917227626188903447090602917676368493468645571322894421724993001160858143264310801062192535152450543111461024020787824452840504222961690064733158541955474757695905857814065583706936788517398882984707353322809151381620420110126992573645349977603469174724889913769241359459167057830233785600262683184502191420220145578276311181726481292378924136717281077444238033862253949661762247209091952567148136813456769808922089747111070920619374469255377688177030598656915158395897657480546796856306438803183242849766470606436860701508889930819659612974185479963769197713725982247322426187129936392834699798083673935791178767261539287863930875551424129822742030728898494939398419686380975746923679298909978756682305440033463445510602470068157097068052535133110063081899262365201171743363164265477345641666081290829386314522468350783623860483885604579109594734870429995902736604618530666111062499937080572071530838998492448921435669697098095362276581845635510875243087136214421740992914900931971170616840460320052638033460350609404205212077729953269378622469531518842317993339428454984535515642791617963077212999154093709998546435177881563389615116504909856993200964463720558386663946176103290484441217069635159848397876294844272801100143008141530403686958767316802829403541699580219225365167378562912048750628290358126211963816092815820727694502228146840723902304051035773702340525451697645640531658580314074263039790184160666547139300380121970370920709482980232009619693182100291836328910030608491136614637453082429693651108667860740351423895878441535501515426691948892799904676980407522547719044570320889047155474870630791325969494136284165373614208779867460283023267420688694948381470202451216027919460147952433116107188148357465358105033144912164593455567861061285500200895425848733544805921210123998203992969543559289872515313238005687049748570238823516747340825236879961396714291195728771927480656323685203403456163749124682210876037465795393854560088486274236643878644720045178011946074910718145888570775903742181611476918343380128865573505680829170625075906463373799983324167134609085291866214240263306122559052701957690272891660148042581696971152722738028834866950822913174664058060457025751026463392658789629287519837600428541218219138614964926733679412936889823609289527517423724189028179948538414588702345062442711038716442801046472216420507946027821172253885725961118918881895145600632707396062948474242835704107271014670589120397261338389577642743483638458674577192297671106388857307277683973864381313465042121108100865104566896782154316442023570448027421114770424713443812414908628641102229489184322559957677869269438982494950576090790634058588629515804743034034265510839793128845657185518082156025467856446883973385893437379695592773716484893129990735375681282540719820544013938611950671151565942747041139722463165833024312970211609772319727657251493070290048671631505085814301486457814046625052784222798463063359433385566421061834735681390096610793179043260881407465631146611598079385836913030727766153658022271691773555236520398011395072011769813088396350661921221451863850840397949919146646589712337258365337864820984426403982218190448442641126073640686004820480425695001668716289130109093040419584950993373761181143295540049342763290221344652783640685671714382153915173528542557200003530385382110507677891118750125912311375024561675349408741535962302422747678385468583276016621577247166462866221865361906371499751050642107802984267823800508976458993348931290620621484367222480209081527880449077637463472073069986737981943952470667995063776876749196549360395815908626588044986857244133216671806097751824080206888265501818622033097822815232104034250429191583492312245170004615233924705027351943537841473631262583589508801846972769906020414518171699606261105907465663076854780233066610884212012087081306602000860431223275478953250704458587941057797799381766801183342637804537134239910423651462530954263703066796037112572269454374845586337091709566557392623127155873762692817577745570623663128285250352276865397172093976447272881177925392001559370499351959079615373560478928209325486349062744386587010427836250804499251430530166037177365597535398313472728820913375561793900514856283268582256006573949827918658435756787411918858039191453727561752457140497761932347220513167573368573335386031530791733877696932053942097613363314453462311866520283333794172711626355258511443594906610750848328487643017935614210898754162294752041202224147837619891029968456604474908819195399528033865583709674228324498466159963895064758881855231053455227742414930603733645640369970288739621643300783830549505712602509449716251548183454589071239448290686026070590605008342986006227790967291353531877212728732223477314533894760714011831908649748070410486814692364867892420213901682151476138921594830897234651070651558957103472156793502740711409776067910910820221735313936438233290033340560079663188717954756938985154469423906423820175872085630216836504436975331982553630599689970655285605671199886068391386267444968912332296181929460641349916680284858363814569193895555803484768126762164700222256782622582231996551309405951759282695362450663287774816398059729994080451337265306389210373103910615147858805070378216436937430614233020615779300187596648041024620863717796536238496604012627194609141183717107144405663373442757916959886200942094681463873035199845763030460439046484731431652913836024047125681999797176906166324672460965108749527575552332261608202739197081130827134376447121606498972053307826997100939857553851737826665332125619632055348727337663655012496570840562652510260687379586428381968472619981704763577714371591295376214858711843015028438551703095911572101879644144135577936769170660945723031269677944172393840150533708183454668510324074523495806966135762511750241983547210337156202831225455102457346964225819111754762252855445655269018289279819520055297538657747244168085944725943507432976024141615119435233450781868168763504739019368908811974520385254961536523743641657203350889794979449759227173717336867483969960040567051086287529394138054651958486851237921917793862608938686459946996660689080757033892292862964562870893556908547789456501748168929931594215206655125936119852130381159267073159946431902836383082592781918147567382330983460302574216339557722718904527369375851799250223699024286114352473848259615331091106194665487049327247111646020591211948820021486952459675736534043468977492354493528366328324304448684746470269172415072125567379250867027375435501884626072917503464437475066374875447623295170396905152144123676505069274505553862141321735055761259044004304587904152345606151366567063117082747973985637146653837396835056122278878404220728603840225988461601056135161422312999267681666819601152882527310841128762039263032771888525274563024197487367353333806472627688578160038254396290322926804857194012338244039689579091816966347005575523115139847681520241245298987047097153130973409117992658201940750636708693378294034033065818326204913798633043844024083430597166932513465713952581784203728949777889417916627993947090771548663028274608411350546769927389371644885922530968110723574240197217653591054897506082923399387354772059102361580686224926940275615929065821530300777549599891182494756379086313751288132346154950761367280729851004074218531045896056117829210212065553234813377970895297681727178298984203778943908681498698963537918354427943400557754876433263253711475653824800230362385587127599162454249639952606859874293696109696333700801511766191360694594860192870088458128416904473420879452645619561128493710419613754673332304729827930720424823007572916850140591625819393840440893675665625667993050711511627917454549200881034992149431451945000852691357486288312994973722240427315007175589622370315475278798720745559776702142762343250460273533637699087094504107315591296482212037723391199041842072212043651201943182338593484335674333694609517451293950025901970319664050849191877116811193147858236740213321827760146438079399963747991173006885783919524614458348119282658261878501390255840747734719345219818993911357654125897957027557240461264003313992515976839161103473906674119621215582011458479828540537613160603564045873285103946988294620441449737203661971718603727841937817025685367326555188559825225200094237927167572541127135188781271241979678864772650487328261461872680825608018847949838366915078937893813455632411113265536078536971981300182710072753396559654998690363156884267070782679578704544055012176688955916032485214142825508194274362577926419462458416309436936713492660852947841198708322952797602439957537095125787389388908364153426810377935951929078700787202175229253924680332607568494843326361138391812576466667458718093875182749999365496511797738359500495870359328579944393819481774453972045966103805389882003516684367191720642418131948202963862615214308093124202727605162581830925613711492482557321887389878322388667035325637884515650684862562378246073835761494415948557397400496913004799768245960571605993121375916371687974197512377445033886285145283882159370452911718656658911548918712002774411049121533736416073481322175110828669641255897849524630547675854718614644418314414461484215482128533564600491425554550977411735348875196427463519860831415386041603925810591190352244954572705452534490227198983102409807955666615926332138619774050211587174645985613346423307456652900727969988694671529514335761344882580078397003943763581567442227796535779483402279706725138974242390841991750109089142493866845355556030270542637516318635932444737033434292746746435081725989272493769379372919658786265710467636616634571753026245558081754800771079927547321545549448743656504985307244170409476994656534801937379299400316520500887190225420530013496362539413458488373680842800551835183613183342261196165964667033624156603787362692771366999512812968255487441162918137595966439276720120830648640640252422885207901246516394624504439241369233651879677385350987887173500437069067213677143092251932787924262642926207421705604427143424663860305247136091412362334363681193067192367678083378051165123307560700704146755717951379997435731180785029023006074418959514982381139269811827299816688183803611075069244584807372273631274583988043492665886533735897295049441479929819086255147531825104801218397629444778949578599095277294449251695873237848422200873899611258237351546388707892508134473102392981625550242179120148179694257185442155140433868670072133076811143783535174051897372598115398938063899379237482563002392241614756487419627410630035104933608761869874999040116099809970672661226886956662628302503664543891389488403057676547328767872755918372070477737229356621048591345319353308785994621705084861368197678739528683880344446193564340749389925277625463326213014637756335079921774737458557243452061617168763278674305549077525203412878456394155537220046313745134084118376965349268517325711710288677403620778429332188846081586716201317394138136288724979618807335649239681263308825967860704382927855057815989727839051895387091885612055543638185858900420696049520873080587415667441579075981475089943472235135303068654670895704450196189829838295607433215906133512804701571669788419099728735501368605486636293908660135711294924038548360505352521770879854748606629341300130957217574584619891735023419864401821742386444128070585712822539522274247373226750529802264211157339915682596175636009100099735423050403984356051742624655110390806375775939099185995896486346295547527182946344700080597794020863842646266111453260718058220752017327708187158349578721604061770244811490135135122365260053910842731760455671710606998950877907710413085894833327407394157597998289219622578453029924769791612992754417918495799461027063687417516613826767396224191362869561769032208664502918495184532970562220834631908900337387148384624881550620687929211822802346747554168647257173845268909827355814153147169560892704654047104661367144450554024771781540842031717281922391181870095149401315762530917805041982972531208712183595628387693847583113027663196438265754997550254659472519089735021325877302291502386507799501624669358452353840841949583101540378891287062833843542808698230543025496946036970850086679143670041742940261022323714205118370130110465598937511263232052651006939331890200862411578563825655632270496062293822886422240210240376636457762847175881973611990198347915116663834786133052720841926711959747184919510440038384659697293971080923172409207584789220009065808706572443508485396544128215329793920069216975620039338867694977864714602392790095543562889936785464980546334381608974668388491159880868461482607910865993530283960598513682127883897865478046991175528592556452943430837540208256575568940427667099645999694456630606257558749319987161941224613600186198911913056139948382498409214900352406570400908524043275028952581504967718944093397951996171630580654534831876393337630911493007440464721363704404924078897747858344383113830993707527526922903304109112880998609284881715038917113831729154947307176390444199244921129359596392528090933658854317551041972974005746361448747998287244978877519731527070853703491383937578678312075209155341982177914569538512443054242128454180452419295235736907261735624190422663565881096259477475458656603191691804599855701134528468323248002088153752610900806609975683488034892598180930540603528873531380817472407180929153301150145724270916739070138877262467176372158454310111662736116393238397669502558908767637988926875756381194692649835686740671962216258656091995316033689489916073496230750690045947271960907577553809200281612417153483647390317243349616930669602919505125152080192467097308949804213024827608262273501019523479823626612429739767040291663406339687455470187158841245436548108898408428256178147055059678699512569279899152257537376918494820857592322081407592942585596072007841140775547568788690617379960310662509644610747499168902716915470391959345282701756486577702323216175049766376693994568772894162598433162285238017164788293804077417806282577332255023826373283765851702817856586555158739067373276990567464867896815386716068141671322548930319494473209764273880956718559566878637898127256468103372642022474822335757205089311922435823754001210585648524458778097766346177296060797567764802707743051584967920288582249628126143242990619826197732806260581133911994856393787675827310837317064654713498025779842753789749875450426231930740030080809685699133664530833104151230422436136790607587580567563382304480983911580156923186794798855036979821503164452957004023152640597791496280805287712031631875835592962399419624307975020279250261074596778706266070801568419584092653089377808932033915072006470875590192105086748799020772074258040253068795734004318386346569766905344851437876148709427296182154513932203856963908398119584360363342371954880849522814262801365610161320596615851989293553167558633170558245861254197707076233551714000800464407143434702627167237149944980595760065912990556684682669488389316167442167883959047626647371268996687206958198302561716586520217076288446743181358537864541890341202093687968919227830334789873022798956684000462072917303504810107442932770089576551465825886584917812400327372174913567313213587105145457595784337836586292097837249681540683049321285175810907499375811073554435584228244390755391793754283729819827981882772077926086097107376953722839904759550942703627775796377777256272977801301233323324441637144278707227511332901182656435497058650682638212179259784778158189547617426809802224271549056352956712223695001140582714245872638144314872562263770932630466817982580256704802938701148195106623404102011782295806782658362927559531732047451795397927399048262750048824910278561446186071845394180110892896470118171459764602446429760571516560769245796280236816733044165141064876285207756366043453356042905233179569898250544802273343813473204088237005322157126852539555482973385560349528658585605315275964721739500210610160741600433315372598372014999357088090304099817920439446234686913474040166346942293325516119282111726412151424932095573582099879589322083828308741906540421867388888516272246103077727517379061316952241777404705377139309053068672352570455053382914664828762884662227324766939064364510172687457947545587319259444504824440298876247932793926118366471754673631679937341580783002017093852708857611048406661331888230156141087703880697810640790680605033987373314409430003809833666759646004231863439561496881796533756555483225105162528222538449559926152698541303476592277879756052830894237987800274190826617988069478501712457745851294295170966930325125752268416068825249075402892082891766725906001611095144766130494974890947318005286832223787912417202524203729564130716853723987160089651713241938426717918912560922668674982323964881037246806412474370323491292377908034248853706037886600936936231675875972710518275127432433494324220712391289222946484820903044955632556523377403254531939206550298336907048899782010795814574463318397570257166129714994630993374041747263749818004295365614046671099117948767434212201162163399132063020681373853113660117219701324930243372072765235397650705971346839829612434639101496416720503161270116714576036873208390323417687903364305473173420567471337051443699944173564291592369059487510186211804055130713448635293624675238399646759234337304256199965943251156910258432318712186937695788862406775749075307195624172576579212273509185851917790039964951624713094208661894032821566050134871817803386096775527504605732922128912203025711864885312497844162115348088325259644247915669274308286263418054951507396666100876943264074678204665115596754449595129977027440146141992431242087712280871623871202110542246537830692297882317259068830581978530298097005240547341150191037238239640459360974852431737953570135378266450498521361601322130855122645782404203765579840043865539088793704196729492282119634175364239186936609143213000554378731514035541054917665485861470664836368158890798273576205490068721088169087639348518282277119502118948718618407364673333654029466087243551052677919700478131141500147995840691656734692780549717504383484889698763712045546962095444416310197337327645738319573687153218821981536363134287791033470750404330172471879155556717821776904671713882028825081786927949885769069554675524241501683367752429863640488045214503513876299006467649329851095900172395897035961485579207498212102330009909338620282499835785011891095751840504381962151252040576440138242493466711866431522663963181845689025117974270742183086842484436526403830228432744040307873309377250914564894106241951916845830142732032449665581745202781916084888367471659280676465740853993125668194612831133955339576215896342297953597811318312736445625835246230722150017612682229910484525895720331835714654958113728544291524113479174102511899152894499102450372265554695311997034975687903221904092191113442008937328830306054154413140108640484637464692434484805990382991394803403943698554569986490774910388790906161631685098755495149619211076601687258537206202889353309801597811857942504644153002633548382048923658700393668319641019472670507975713990568011790112288434982487910282057679870205607671646638236119390678342542841821687442044754987558076544401436800896687418260092224918348846319791195785883305117479547188189444459848041951102794685965157726752279309312955296351069337355094847458781860526786369409011582706409425120252892521136202789170065297541236141964494469521305473677909665046679934510869129916160691619054745464794808626160875435571155904950074013392168143431647320419609071097499119608508018442321240049458216337316477938770580604376357053822541687182173975549370228611024233037268988552783642418313663604115557413582962300992126400697812630844699614102180661843503306226575029570796865262675707270444039112996267937222426707672955760306199162849306831484537193221163624490565601488949731597730774699624889263335452223756802212268015218653157524604049048221782885415323834990708527914720686545715689289788541541723296081044317971907278707594560282459401377046252872632518672678540616375970188715389373908163232266594069330476495148552269214521974471562183193963420171574504460115088012869301251645538357556403140679350417982336077758655016776463245643703389027670599135826546154329407406277600330254234261545343768288782939630101213958161089888893328761576830492117290158320722572136787605556166916794152783425956451046853995568996574525591303865798016692415452261410314259690192822064577063392213581200218977129603698593102306474109522323958552166133382128780515570648071781321054571575238184319670997567260141573228761297040439965083750552426436686534917246885234188554537752244827740764626434146885796932120477586153138113211422403385990937221642977786238435723817318236887029418603579512324471788743225256898930959811776679799081712708578955870245200767845354617902427877939097084628975902114077705694703424974178184450086979425349235725796781369269936673493051255203128049202853954325644623814505054369156087214359681895985575918134949577665985439146847971793058940978509561020150901693402908304676908415433687958399456166283646902626992618138397544205380503432778002855346584991759438994624747850006659256308048527308605896728917379082729581926824247400872782617472796982188515237979936538218947268312239571987391472131561768114236997398747474894899070732927617521770438509189378362807270510953555391931990075900080224816394944789358200850163597409489767854938752047836450426725183213297196322864366185353136438718234597451932592967478920964200798270459007132786454987904116390525328701535959996325583819625163550343037926795798860996424487041225309152008544202563527070164252737221087290166464767243236862377499331402264515251737045688423635271205400191383090132527282878109079287564290728025193957228424009540319283709732176643524071702129986910686293781090230480954000541143482812218972659896390229783895732068631168834788961359889895067429909941276911956962848635041203135561168409502238873192804299426074439552777542830807045328156326666517076395894910892311599605134247212552406466328834505686128952229907894660322814487374738917245470791860741506928924003121284727048665281554088133005288336552868271225961784088626846092208763795723464423901004623647292139736635699644469772183902874399786761088842370920460260556443543890129790774030142464931723558198621887688713722421836370485983932215052493935564529602098453108713682091847657411277424702108482019022360687645597131220122855405137158848714626828479100491805348750356052373565721046551450625798231219342054550600406554525329644303506073734967098784194302486414098572620540217246167988191866917088516902524626814108571093002464386462721213671719915093368393133006172451309099144325404288526289959294501449327280831004538395395311500759141040549918015471967391698131482315337672345490230953676862295808832062082615887507908779375516895723765818158520421930129454916521311341346821257623634013351741844882010286564365529989020009727903046989914941200961714709747925218337939897132203018795959100977881730513100328639196476065938912140597297072123755576834936857548687686700635002369459851559306974236419571076637664327867881667504916735485342479652154806370804631805268514541694802012628509531376214723522859214000194788216091909304244618475021513652012542581123359336827894999310933442438319521624586728130377987430828096524766147786362789183436468639725422701953976560065258726119542066694387341656330266700351748720744598897702988977031160522033173275982030029950981233947647167768824585866971299676691803806764293226612856215018270591789371062206059064056364409325321543234819332522574837193277728979666410765636937169849937569501877451469034157159874625228555299353963475600840901301451833093662095532870398892318129678856798792298382763359383244307126084517566330390089235726331500363362234813007282264750529736278607139144971672112587480002705712300710722275014051270617769988118035239779593378993787334004182591377503724366775765318291696121638299311299429166669386280801860270812824091776260073172307246376236066377613261456066771036337842733438777698367818379111985250064001352009615703691870719296443255089877392933610459690217151500932413121346323683995787071663278920352842664595335548527589820229680207561793072742569438917109079613524104564421806230995240588245943736097165185391218904301527183935023115742541239339550455513667740296048301582198964225428263995989615804623815451938401102330845670917225502690475190564208694708664819689179543788640201344737599505563168117018181339243398540271962854743063365197483577206440561866362742414998837575311272489604056962113655075452120564946649532783385003405017777464859209843903136993072826157809968700918663032857474815949389411565805840833746776865636312847180678590391967434572261632695046728723170385240072180206128097733582212499202070962416964200267953091260154263099585135429971036637397897711859542878404815756076796481413312472879096599348597595121147465295500363302265763374678574927471601549884810376930777096922010303920466607728482301705476786570445475651540195654492884510620736400254003033252952042907277012768869936697971563487557677427356527801554872134665845603990574478280877653058182643287492573079804607624419931248927252542775877215846665080875729936204830754387331047842381805569857578638932808948609250033420537188923214087677288914113567172379859045186543538582514902352376134332902989554885546404240594672239762369411988647031911436640461655256817337162518282358020756821338996221938573505498835345787300043008820435998483926961097432738232414848946089919069777242653709486996338126149163614179767088146137393456072187254246395990742914214147041392381975093638376330904913213618671090442128771387098067813361418359005235378066828398937659627893848914105232211871417956359347791794906182141203905902936547513202947073638198463382890550215853352892360732690012193666353127536746253610009678549571197463630175184538826780372728203714073894920692746860626763320745003079406051281329502560303631122072818343311436844768386166139827098908108654337705469143765021070506320484999052003649098670431320911580038437216696189937744845200846825850192698575165785916917632850014608118293141932024254693893803140346012929019269369509185047566548564556496108761963491722594868361493161782513369726100719185990159146496155203136981355466943807217660905101533837963064430670590325549987375171606362936418717942609549690118333734435374800314932105367442026594410858822596171834999129123798691738515287243388370806041056840222062202787513326795296762863649495262872662881026008897256868470674585665409446470900399794511491309349973229353559615604328733208841627926769287152175503576043346040038755554617834213131129562344540064999625894425082129127766216725117044443531533494550784146648482355091771572934634453404312541940021783176878809117886448691510899464395907598316098894202852625968504838759848676370512641140589771379040697775378622834880443496734947834826251492967639131840050310401218688381568038921415443773395931953368290849346116180495842145629962120750484313519391404843331358840222981962509018813055638211261604715144797050319551238795885048264939387204297385710740940611263921912778563320371013140851558962140115232953387598518147854252754155691679784066172073976518885709651410905035464579979068947107032134652919691372951373980204651557913256577932370212917016403841412638373631524496375957543265780623340043110618954872594261521048759972590316650519510625344754245249207412931349476532581532541926866923588956315478341042283319442862804060499102227444359615378603967994277842333140237531537726022426004988995938526978122841560582068326485203958889257542184771314778419072723878905260735962305661556392729154543167462899081908907900202205060848642566838279495064112929426049120343418143903899826420793275808134903024942743923094218897349234829082518826806903545074768091128929688114001748256342241562423420357478149531468284271865951597275497543192389552158840865824748295037492883600916151490151383103570931798822003464222724059563170596770705494729118434378354440471241018449181643191166378366287993841175023350352037847379735408183366988377875139042430439893326171126627305181743516808084014353804797816432969079686623098248462232181878194264631606371818262383475694417505679900177440940546974632344776699200905782425236850031141840398462937933085938483055090945463592341804920509324533372756591872732724866676111978534063399212731982230028072210540698591815563044535633990504303570942379012474615531400778847078923602699243945734732449863426784046509952117500147531195796265510748454544109899783998231363027783787365381949235625681630013502934782702030736432027626987757385463865471684284011129260089291747358229361934378066688662227173549120442197926185231700688003548602327225936551675657002967484815072812152748506248958679963067501626353903260240573165702142663622803500179627626143011612171592588880513816566126167122529142325123780605318306503926014458799314480283355251918116822541536498882401730099711904892463064255279838532659695848485180460164920836726734072602165639328193668152254017492351489280926640445541411240038505548139755204433419491568793298178485855246617332543298952412756420571505139671750117757002731743794960338820507971917277289289030927083244022111843362648845053619689945709934914461808170494559548457437203052952622506628029721787045424251492992000473889203212725427016694734147197419047910645468098496792727794284579409260881551236954410523968595791347760034326140487025020620240347429764846215602179058983282638521831346347487729946069296791210320711103240215407727725837509471664896703931800680450559652129633073234404906007409371520286460042317843795699081602703220547049097851284123684354597512296299898154225755828979068323738610743712190701979180570315690123414226889416287583005735609978628539142786807597863917621546764018478930284836859105203725897142260244634631083007510540292656111644794590018046179323660444412350370364316444683178172407806528695431860214960610775370201057859841746970058774124404963792426986072482468403587093761598684365319775444094688852603559714011415857695148914814300298742141444384719268986993556342236562447949615227866903131161657185146461632305360111705909433068997448410902678485456194172595493350989968440993663399098724692688658637020464345970633000538245932715378673391224397886786266288404287443275749243873529243199850605463614702518385156435490090860771894982142240602428331352183304090104819941505545836542977945061980564045143940838659062684270244130139312212171203286854207095725827392533522040318907736718672414646252357005389764115633376673389851759909496674208326241861539601848137479850190708614320303717645336604170446649716664302233238689584526409697198336596416373691217074834807883615059647729812574998553163466320274048538992652576841298999567767824242689491447855371702955009327548695971020319498989224226697216446300110652949130839876443507288815890492744517950843031971739398146485864366609165862850662813599224875911698245991403142559109133138447228462159009292888408789270784429630318547936470756788700607994470568440736194007190369124598504382129769442585670319027388238340994436299793435763420652659088761163463737807640146291718158462335178691037995968091973013319517186175513069230797534303847893935719110817277521555753956213849899207163480153492306808937096531710908404776124432154677566463506433354230200122127857278706590033249559404991245646106642864725141469661230540357027049885354540202587108293691082561909656517402481362724990817382330757122576402583316865200807865248499362243270811884810027952398607074746566137885809457904584601773209789610525101603248912364985012750101865945702470612545101113906054552881289158290276580303654885420022350257216860955910973679486548905760512317142333312770075937222613999787317083167041167592571705423520138944755074301884187480851648014833631983276210334708411652858512263179488308201862070876560831720516373309771520747999869040839978192788705651340201280499237087392430654360473590732967194171096810045197021902433876399353109623092073887592580305374170589465093236828489083715401659698355721703563148086196236817274904697318869415289727639326537459138012346067224674531930274834235337589507358988342235539320539073769205191880053501920021499964162000069495960348655880135801192669156979542004382136868784822199005801879997529442136965971648875146633884720252641109818434553817944124307480806619150009885643999265031521654684848128322186987252476642309936590619188375368256159798868048260345472504993435053427320856170332443403146786304607148271811219416845102228267770555783377732513133144427432408395360335334484333463115896766677849992630612229488608676532569534166925066939355501750215024359074565539455877959207868147576603258545181944624742416699727382119740674878001046931824450420733222105195367376781605857246365218416433833000985495192671826691384636257200591070926296864355825991429156510853982794020286275763219889458810454670283929606506647449106036742100993623052760613303245433868132750355019297855111757707667880334709850047946592089038452050183603102602016543554003235810272755099986887493226562476582613949848114754826256131906382986414966970770729873039715996925534969967281976778044974062848669968192666363819100271855343989296268386456978968160186564459565076714549040741639657960783605067152965148699029619061791004608736528308539111178434944775752567869574424752052433898847901068130656178655294449736193487149061642535024982849476534367976741393495553316261928653115408078960266625539671852883900839624734098804215489320443689245589461022033052965376412754089222300670445638636269575965977052759843263657196318366839250542013528637291852087701126374444366780354624466583111706966115149997830584584128120045995306710001389241228475771383129638249915283165052294655623905865253325948765008616574114355053539792458207574933446300359851367629977782611948926444014178395035942347373207226031437321205710575887601714764559097349100065169016383063104761509162609950204804813584350017701119357597920342201602445857569758449377416290810661970581067589388686499597839477407244572716531937890703745546928369207458645086631263022056695162603632963352535652010918364571128558717063403989790822210688855655754524611520362227090085069444582555942255026299888933682932464515588491837348967387512747321074902662656788222396077724734331770187812873268397549259131647834851154781153180050282465812000755965193249404867983135722278813295867031238527686631902237592306712968059097514393848916885209398570974244898161965150570803365142937621778047964938783131440858382510882327273982351636149595259544739799580648890084332191939486126439952286974698037162182349369857128771749028613844250370514425726656959253129366123274054402206490894947924489930492248877211695325168566814164258897484867571599916168570426456559415261392623329210779515932324082294172493561346003923987378377762806234207410133332771388614469599092295605528093882653167665183797034907524286577517958334352998780475387179807782171267604818245612917485222198331376321329685873776531775232272870912803970720385524506651723887274994626838600709107310001170173971454275879281667509726116301496949652812628463131393929984141909433158043573784569459711450464644220012950350319750933404875177508269806259051787195214644048147776956790964294936972351634968849789407242406576859059314377768242018931736571435451718775070213764411946551129429841448096490447868040705584877800865293795262448053678523142076415860816391272089965239798763905450469274098983527513209660402896391393606530254301075310092082700631106961554428289215953880456698138562128302592654925413311142729886165454699543746739548961949821130307329428183552575329994678934897445704388706465090097841726796594535144236178063004099606217389822408451881746015980657165893561602233051050618460893659561752917638417171551370949976302974670814946689552619278735267989913100476721954200344165083146871325597264867268605058372329026072500874082167526428263165493414148913870675840233541805368341408107714367589364392563914889014911518455554824032585207420504737261296646768375310244000268265230670264626284696207392715038758360314498634276952714195408483109834393084075784037877783787940788184467533771129777303176031760849718253003187912024771554682204191842433426708964153951309746379658785380908396387680484344626961716178929775823312761697385161084431718669074007235135910711376071921358532420385259941262401015007488626671296649970241806282640295346506868140544887818292529077445600028713926579326423971899471847095802610062961248516599149181665596363408070360489811849610308212728236954864757355289425046098990846152065557848126302543172376134775745647268101795265944549043784673292294756329462281244273724445051033992562796398064964118626641631860521455937277465949517556358648335788949608269796796614136963492579611997688113995619889008351558764327102641705627844856759409520905962762576296433860470216791505085027464902056312780956778246022563568809189037248296079279240276116589692911036141381997627972881243426861240893833678690868672695281674531544759990189320425753497016548587676728608576700287454412226397786954554295070944267477602116045553178496523561101746261388775779076998694849053061481827083859267889883802507738185522231735939447640072300941640319632365809106366129481528403135029809864929564273282386522557343329913578755062407104983075941427670346590967340189229602905457890174135009795782191842628954484989131401505248930501811364265986290144186453269941212457052030344396186594480830991488591914258679115756848412754497010438291832038532222664554321167566117648091664691923376067332622090081199171649249066820205953310715825567916841005060811451476672066794924404376152349910864900696472906069775460341477425332660939200252132471139113144852940764857335815269225776481499362228683387291393020844662930136684688535239111912410795927771149676036727322406073703894590877808369063944161086197418425647332832597730777696851121519647356798543729333290869517701217894895665199235884639399950943475437197213184300163574961567557285580381480842069531681757604542094922820816799529891498064551862814392114839947479658461778245285801631937037295606064181013877097135165703344544317297441719477785467345521996174141812287978742381478243338322775736163907092591768813920693920293012354880706207185402210463814908771763920204854789974680679160237688368404779920841863720802882789863319804420739346130493819522665813349844795094766763287589926333413936071522301952624399905617882677508945278739224742439099313359970321380106883573137616469255502692018070212451830482938189787367985349569074688429921325776025512191252017103628374452920454933363370158152300039791298865027685265819081627012213812282284236877947463263674670904298061575100761666347681443688235585711914865911008723198116893074369625766339191905223532234755967985042462323441909599297022479664868674349795369513780014312770999098867802373832148899266634313367411413076511897027780259676992694996600132632647250248618498639185516407575032293034471976900635362898212501833861727235489572297760979625579582870532265091624963446583956816448498818360117701735353418197631570785037624569728487456685359439195266940230034629069223665760453829908033517970873049906890858439062273207832390811081471440630621233865812302028361469006350399252404551919538440110033751668935151367213747253989892546048107974592502318465505843643735995486939679212922821712430957938033922958967091998618606591644043560788501535565520132951303843878447692967772372024292305232815649863012100215678945761763437697932009646824031061275419287539272110390426800981205799204862877649765802143318967798258052629250554920327364530295823072074885183898956513329221115972889655347767061953488250095453225695106118371500012123047960168120853590046141289779401978598299064137178465650665896912934117750438722055083199046884035082831099799469187986318336638573859982685183256688670073322743505519104604521123964683015563699009864403035249268037398905675908506243378802748641149482856832894501079545320418899562882918486561633349669851851228680284775560975880688588681562243951881076310777826949489477928988945170517071039111607772265292581786912160732487130159385324889220334333190147864916275190002817196038876814801084748469708856147275111496464755339164389283262934826840963461030975925562664194175412644955540797303460407961386574420035807085113129027869348081674648728139005242836864929899185266232966158445005833266368059921811797506841951100486457302509639931310311739532601446088763037467013091007494043344310093961865134394701740202516071266151998363384363410018233721551334750313412581926560312443182693597634036770117805408793318199112189187563710305281342637221429452200315237273298714396595295316496884976795358421940766261432539930965391987475500562348397778785441261806862892697249867247209175283444661048609376468745337435138715057830015839849525711564807257948961706952634598678861162446613973865837990077472789386756706130154246253363023963635338075459124101851868090473085915359070051578362962437583210555359585727838034251164481801417267778879259658609113280988285733205924405356813445207734925861792619852586523311262382504801872217830808844660929041240624843980600858787486677774123259938692977417100622829135360473691725885374190996183818665717927506261835482958959180675225541690596701671763925531120123362621386755635219924105558944474828400360658751548692722898540982001683043999318591181493472845455253576861197184220224376704660501397038249903280256324975675890471077857112967033400849934374742540345734965734699791085286373865623785776633302833742628770025767223129336114436496325632813048434350253977681210057574962431450735107116677724898145280399653584136411976064043762759250071928070403249105522441132940222751944653867512811318727853147693106973812395266920279314388222630533222354293195135779799665807338836285885527724267299900486791287969650211408929037051573402941376432773902197787634150237720253094938937421315714431489693168339776581139024895876199704089571270381344942236165648304114197854492795163647926562180630549630548841449603133180049629240864439982274812493518525020511313139675909848980546874192535199917682353371322040966986146763685353704878865889190047078402596083377676836862568483590216632242348764013980614673522181293569859143428215395834009438052664114232568342843650217871908044101048149846088824502781747774027919378931265740272624226115075050850750557988211075328834559394479758158956389545763058269254148028433957568485136733121414059436228855139693746239906028303339212426085136597814927503882174227232367594942304480879850603375354728873080442987172320452755518422611062786001506258957610138836746063144901422897925117412549390009344580178914165888255283445469430863165804156730797035757262744059483047415615345977187976035120972399638897793506285053303087466663481546169038039748548441424342861416588140546473149553382689375421631482354293133712313430294351144371255445336591219042412678728567269629233722922033314544950452316225273473102479481124250157793752294407393769748405618031694187785879582500244457515413497456543606009769428326121489099464027567864035477822209213079595180464044631235133522870325048196522442680621450789405952602021473795297981497407610789913493496137159402969273194031673549879011662349566146612939516528554558661143525092708078113328902712723142756057115493366451953614875271318247667782288208864221620144163080750346484980837857235315931904774722766881416912368947185367441796192117751168203780726142451217963730583996703719096924474422960688792938789780932055266007362735713446728267146488931879245222069463899610440288903541027749766311560641815940807229737654863713018871852674549676335400730513849501263047945306586186755632850567109444208385484263913576172488119270935553379226621251684726335746509913580669747184515856716592049673258040027858048022792663887138763387316233527782086171810589130230185639824509107864833527111658551697940476703708492192368234333942178018566216127847727462742494253953392873399043933644533598310086768230139674961822749561016884395195951865472634217015240629834746584140577121918233988944748743987372834968643288260066038631477385599002380341332448416017509756849972485406121056280669534825564687071227531676766146450733502245036279531320331326881025429680125477885482904677898175338363970960029048303080747298132657320867769540126715134180102391096957524684993616106394388390665089985501139718756559256365168662718194152743488345520849550669470962367339987062095724717341837393023416840437309227191117916241053256129205981566887680450783287667201907368183566659967827567750342322230306175175813273180562003249245422663902585953099405570601643128642776702912687143532548109011893021214691290739406065350976846562478355831748984959053908416104549022400803451702405405664029096997064804878157873384534992453560825633592489107426776865607364277173930689043371217201292677989920285954850921661723660276413247564618945428106011189359593110163995807338728111978183002853381833361768152451495864162646223700374483614821718585555403326850174697866804500405773344137203708464876564723876977818293389453945017200982561215172799086838734659750459402368390559414729049524188785770041074850219013530200401094903365312715930385465284404159278633256836863021770923518748707976123658179359191576335782897809852664257297525737150876342317264413796642013175414871717946508176916810288875727826776344566010238346796161524439975214692242181738981483965151032413784913845263672585954662860553140563247124783727687110461532135789005507000483538067785056248198827498872199761659558909945987904894675626977203691822018883485803021694782114917960181399904931497695872812087020301908029064430809852698305654128661492022615932611800703729678434508607930545894702997618961412439925230057544258885521736989078937478645458742925691554369094150667722050665551360678868804898796283189154516486048383142009065704213208446168315899898884218923070096699074511314697168876855725519060247072591451709513763126534914744625893847638940680069376874821825715425341454145823329727542169129703396700008459596481526506757282999450041791376179030833500624724925312715622771413868402300881161746043376879382293495785788898435073221967645146832005459982606788555709614709852577058539725616604851794030512461847965937339175558953629879313160132572991518823200907332390509231001340206511355666587735800215761774316964859992142188563352304892302439873574487440472474591820915926784709129654627482485292350305183985223090621239704896210902105225720372355467940085410357451077585622479751621160483627749017986055225495228279792383729586965634454356356079816609646059530600529346652469177744806893222954292609778505784897865122615874261744614266520561181559696052595840041594718853618442731212688728123871515552318117729776697225950610702534704116714959408559813474638905941335065030358786011008523197996158313235557408315917552905801260747130322214195759243128590555885613671455152670629406354962370536258227824632041836117016492696019260289224862276724626389157350216633517403835897875221114695576722365435607619137409564875106185352514303836375548029788087195462110771188792336204351003778653919656708012853839327154442194791194767046079034455344070661299476629133913177861970554463327061069434662568937588942361100325370343649059614312133043689023047494363397201806463053860372473100666309787115810208512283253264400171355793583865006991819571678678656225249451127490929046367269609580864081067180321279991535340540703040275611192724920778617442508826782483742335525878981640983215662872404954364372292738135245453293311641307659102549913307795193093793005503428344311077809321868830920481396040796493106802688638054118903388092641790707177341757897817641143798411255542384422559460197193781971901012187290163223412272647917804131908145442575971235878709293225416071380943356495347800442794152358262736757147220780033405469152654087662959357080850915914759187108875989807767083049455067131413818860314930482335855768210205134474999379655384191313867803808417136861336821558426304187224658422627723359883919447280555797223071396539544317521104712766331913177640452007852117785839275963074022789077202650469253239533462523405123297717059113943622307916662667241115157580811715917907023229344479689068521801026327435034385588245139494301646591330880219175069527272687335360321795638229836629933382218148097813765402430415182699186281303588035539243649241650880963478562944336515542184069694791201073353620717509712478919266088594414911840015014753447990185403908161654436185582862355203643716776847113500504676133868276051759670121016068301879860739050922232109555896644072515968848929923017550623995654041661985710853436663672837936220751330626483444446565255108527883754386423303272098698749349276043100533676558100305306279559550549309009766598591252131958872641270664977300311937758272898497998141640584485037051296086580427075808642826201266451402348365582743496986662404886426064017545427275027342956766129900489748341841906695103526521794167240295637412143879237326310677693955737907684619470055251336026983874410884409949231848247592385647582863867759966799467831741321719634160476779343719351081164092019910862706213234174783264500177838526831881988304210767525760302352158537664254595077667961753711459056548958807918395368385359315708048192781444997512404858654421665300856233972717836105721930399842060630826115573106906614916929646339609538927206494025249202957845199100776333664631889817317378192756778781393944874155036799809893961627276011779556312283881079072379840997378166445488943094208802734928770151123238051189746847889941199965344166382581535046363657740178196878704251239436007023939573839276037249324255621031768581843038679192161571099675338868831530710668973732547024417811344920001034853266452252081588367527792822567332039597093251117210579263108250034679368840685314724702723914302825358913185390437892702181383978527395941950058248006177931269119148848774253410509038471888962516400822350098444422349121644293575399730826868659032963039455780796207188733807590024782397536992975432478437527558986447589365745549409897582706624846543897955478784209365807334237771878785037589588464711017110000710833887910784382970550353807487989680615382150407654161148658159802601024844428258999496667542814889511118897145827644215136893540740336556449101344471191749171516137870684413432141583256028386611328782064688110207641238336682814197427390124454309660842563551009487322436377423697102838057593787533558066323672362778228381393939434874248371397179280007128320253369209427384805317370395536966780722108477386906724905211579249505959250144380347008032672793019438520103787911444734315025400124009172836614188915015274732959613833161848292265333662751818291491144501552184698515799575693899157979937874839811848012277368010006752264004138402032667403132050367159449488664077914066261493397031887572938870978383173725013175771009383959591126584544277802977367391759574685736253713179673099583290100614561062767897767155752794469104944761362323579676164187876181768544048002674673174738176091409065609570539131083497628194292263970681651852943699508765873568777801743689253226773895823707017846652891538685018868849974977978186072171056208226071497333582983684808248987499560139950528648949674628250443751775307369008525435291172888416560324253264345610947078036316303705405572372700246203467839560759320802645655485084292701001232729734671796984002907960437009909454634003659640861524047249297457744268818552043279652698017969738230015966588134134350754213246807593670473678896985136064909714449086659915509679433371796498576343797219961756269376514524982540060996812419692296888558208554906067686818209543154949689653839016826624453084625528870610427512825439782363176368017390983214245275029615066292472859112992137947349144636825663136704446315728732756369151209777424540334117154003720215246777493695474538941358136378980974483170271216611944187273658472771347458636919355220465201927179063125609004184846014379599250663413712328666188113508760236208018557527178420353267909663310624085769921873811174319276192052444958877787515386619440291229306925001499710390556776726119499897324581743890703245539532995209223869000185724628148907563364909807082684704061767418291684569392036052491036342823865159235354795082669909776800936479368958322605227935568046691858140796479135506504004896083663077134405489199758413392794434240362042230598263918012535297313336173135190076324436448504560361042150369430017507956611943853527244167890290126677883776239236340446077877731350720948718092560047201513896826184630866126214209969125338712831310253303654487827527799523753625831432346367577930337498339759135105625406510148752109649984838757217381563238464566534331495987385800862992775993863319511269086271821173840736230389803219430435741429906158203613527766607301184217357744130042775847833880653504038545718164990189746847142171130803430297678852096376579060231876715456232158475929978381454030790892713565728738098849927657041686960822187254308187244103402822085729476110371652597212578945107087420441029466184999581058727281265544599779844084628172256706360963993240441010371058786215900470733828425966567833534217952525829914656166883351936005595606220836803058239387956090219493311969205129305246901275701140317963068750490669507140098883720435549779264545451370998979023749244231612487797551839153442806219701332577394674627979695977816804047428208319481549106978239070958723641807991423071574081571761025970291051501453387182971741867346170663213507789404912775686752533071375334895384823999149319459368547126805569446540540067876954087079292334789741319752136160807927572482066817383927322964644966221159901179296901332926844622322625698680109280776763831397618446762159952579143405024347284358066317789685765163175708127226281158082473461964641454403921477289200495156066197968135442298703282865380031242864493140888574735086947000077357763056356974763512672960298388510601599941954246193489443137659626794719945968063482264234942925692346367980424195151392366485449616051753068533628674313264339496159265271489932226805837028647842702219985670107987216898410566284908632298838930380672612228086762615622635209068367213859538492144303339559332266607850436097701841355465939952782149381882351407121824293794339316476126898396441151807792470801634243223472202142947802911223724205694672987589504646851595587053215885745570539623034301399640467688052657710120810598789142379738992143388411001933699909747406598803882114476672071837333075523462667095261797840706154524462064581574805084560592442446920129646135674610636342063705969318525655415039873978701393263152926511379339664731427106634957562699018650032313755868180942370623264837681523380629970757017366301393058500553409094522127344744327548864895088199309755227324850238770842344103355091923739766765923710058440998471024399853199884436514131789611691097113508525495617747508812205298951566724823264002618029622446755513763876248489943072527451599463587815333785049575175673488779159402464945766531785887561967108468867692279547508518135534501095547845181604633314836696130348796506363463882085470530715035410641605234171610315252029994840500114313480624956181671496420087489683831214981485054701803615484516187455928433060340143866773599484500057789299319191999244549088303269432789043853948509027212407158570972698251796257169344044075369573431193166422907002372415052939865212058637161392425673952364528001626668381708998906783420235385918418483049847718230396965794272050791921894243922773745270166300225493083804318894095266874115721898234211393352890530204589183017844488257776722578449532938512460448098873502456936937920069224418681005831680152765733440292315248015228952047331498126738448588785225804541729998506800470637449355152410037110975992392251522841037780945249227914080007502129545851240861831805232948431831833324646880005822028969812387794623387718355975161265281749325527061885541849330650562048033490901935445392053403002122404117229509285693836059039940485104535360975797695093235729188625855772749680986053195344707268731986036334328432856670853615755630242628051343806896394529352811880499559539413020012493727292443709429611736122504718198320008265305467475533235952053196898170163457891142098746361914856500325972469375584123825117691458098441338150824380833305404542970753089395588936143430572335832556142043499678195378975345797806084105027600026099992263331096124022221010649663442026825282858023126789722390862929212732235060561375075207061658067179343218568171490716097280277417241410485672706646247407994857714453137979973451918641897145981290770190694894405441126106075919897130544608636010230749001616545842657012654444562668595586225209133412087449252885050804942209252310863704351586969432833682930030342441908252101698722511020700192895277628562876888205801945237580663687438171187969987067032876106670409853952216014279585100426769672402150850291531338369437282186921625932368773432670809781645546833403888122899298615310708892040492147810027743166207392435120815827277534260166598424444245233844011739778284993919471899072218530069069430266676382308005940925879900833015542027500620813970222705146209238232700874866443541362516865816369366494949471253264200174351743296335281563839212235732816428714913019999716914687711807554017834116751747274263682266248760608361358460878593899162394268801795576925000363773067781411823348702133656659954573350480502666782164206611438479082206101263645970553259386942383122940710608464068989012470682334992745649339958727612015360443904141247114880989598287864760337822572836630655377878525798526136516340342701743477062033950219882879875529054642924091260221049502921379705244215179216934511704620027864503055581440993657588366249502559948736729656396642473366524685588884335738427385468396183178848231068750674092500172723678603503824759849371100082468477970062445727190396075420858219942199585333117295371251372758317827413653559226169254615062051252033089314231590467386771146388805108014019250104840198770833361617124901794288591574324424483725595648402877974420093425368938585774143469329523363151678580226918806044609159394350852664165096803064680585882781684222986704683649661197922987375867290336660033709916300246610034201621730688652752078483653842864971730604922972022327753063513557817055503457377617672916232165131604171655510898899086119622371876663395890710151252423033894156126520910259538082753927471475232131787164422561081169732419359376942932989585427044203746255745223827124502608035860729348414705114973522473429345406337633152171621602512013498612940375115886739161992888091035996830132827608939182671950918584827548208759140781064345339754695831900703504818196778481028716719670812286203220286508715027997032457029776110969660407956051661250692183033078155515932070942583551754108659839960447809498974111976238731405057542368466904710336526305151864715121338488188926810885975274680145118572037531419651491605716152477510493382260968227881389647990664060582986214958517858717634934914481097909068771134043569724955825123805788708309054243103641427143315719613057943399376082309918831387045845648623369789839439103298068132347481210402638960536344614072522924569994744886504926334637876885833529223382392931633398829897747056720134096362342433732303460180379391134847442059688348399410269381004795502665147054464766909673259226202247253327379358346029747153649674426461563627687552163906080243803572478251736070524502364312794689919059335132310581303448402458365927003587281544444313189113631692091044390695094930386996319848862977598558627262262051755154654243659345187423965643694273205614904200547438209711943407271515289766102193082963349419958569635080860378353683295286917461231910224164876591880816015470082417167214131259228533920483927827814509216649166034173747886615210482483370367221492709550519848427633515810512027664502094971532703606669733463279764500794650493336667654723017718711268532440756722532914527461823659307687102165982821180896846663355699321835147831918663667726514787076108241770974352949338899857578254596023707813407125836820691816568805903531730247561614056737881306207080649989355743423051693698437395757710946200279765152385931157509908438817607006552403006662672904143970465629088201154030255720154765677399885682656948241491281007830882616812421026131480233670859123228003149487606475028511519550944708830056197795365249383876547092267683866008032762442611532350526006379388836773059083286863986922731517720835364272178946187236978329903251519871770185949589299799655698121139380549440713029356684021154272775991322576743907975235463293462835520725782209383661531990491948210109173200071801004095946349540457297165246254623027560301508411543082207931224406878191144553945135723968924757469485450687023356255471073406637975074507180191013554156993168426980635237560318410193497201772070906328490004757887147898723662381663359106557084677169573157100958150443805893846263940765068673329119608690485086215489795163519518282956545727121308826757512769393876041138057728094886674116683925006277883992560010067120846517226722335172747606079124898139552605591628920810448652199396724920422531082116905720645636903253950307335775845048314430976618487660896680158744639439310735443140207080330436022199372011289300766509190586701541319984624002586376479152850287395859626494565348979385792629685287771891067678092466041165547376893762581435493552948405853624457848062936899896847450857899585270896100178187733170225562644812856873601408768233688027712021141815593155162045560567117088829348942214966983564571852575641304813456112920454852860930736685742755624997397802452436122583662586169396297033946199789312639380296688647262987802249523707117144067088147798701871884674540948185279666964626728879366571108840052554700810405458833351836270162767732114938639722015736125252984721511700983862786165467343107832427780309053977797687325095570922804088360412456854338123347579481120302824165249284109565485391864325762229316474652988075442167549912220980199474900253728667889436586425376160569110483764982648406461660762533442232165455268338850020410247908344565726019623101076084015296329291645510917108912812542577187550370314170479754325637899346617197398650295025146854786696504001790639704817225718975788021905417064748094533803844423386195656953676719905572848670767363590054427237739387459728522223895842742464085192033561791299147981346132526617425167313609549737485868311876755442833396186896030991591482737384699685193784137736627704057278438350159102512317926306269925365531803977537452725626169356361789581254200991004431670974617785670272365618923879805466859561468562446600689303954180115542477018944606928108595394945145080122427159241458045697001684548295678948332842461088843521418976749605315246550995821977471050570425554473853860566624419000228525732960286819230966823351222463145057978562077239654508016435510194237831681716296491746737960025763654622033241790966812382931096968162232184477390886350185998823332293202033910465046065055675455793120066749086004043920591849819668620263357348914201073993810913409261530359254916382817553667293420532914418095451620500381490870231868612649936081105026518571070975900618732834186192990124159175908839083033457739787625852863027928744686535630029360094257481965400025395597781620854180032655899367177594946080957952983498597598572340516553347231611239246356857720238898317987935481955626926386504316690219941768592071653763960522261422595016514717780279661550666916813579274936572315836595575935305387033881259789341900074902191548475353813513635369452204947100143743130753947491843529318636405355990247544856931089187833286535617873348286476376627650272148702017588791580554067282308176327920687628155999993171070747979370936045114691335219873506055359924755253297546265851939740465907868026952528970031959301365032155721660288312738102089035249221644381431806890561733506525303752305870012260265405824951778533014836347788409293584782097409416654214412041556740291458394532005455719868028632404835998917122408857362842877543062775198200203400866312746484609645758175329519845638175296734119532460647291576075599141502139791959040142553700244659022382811872395145251736276032159760935802855382383201272666305247466746492887893575443598747078666074949862484364552722236442860316852086909634455184088770991308846422038668453325020107428162924689145153992462930575608835539860673300308672919079149290185937726894282164869748645442336856473958340277900114732708326497879179724540320143428312220578700516417880848573389855842811355450991004031391087312682826530231950436515828444331371472566043535390009627308003740856635543896736010570167215780810168270861658518877068766232086417715899062621107628012142707895551259599945314797083771609974342091787038691976042545901051199206019681148822972278161203391047236705377088762555001988665851233420408440438596207695407796281423517393899910871365514969509454429772891250679129663507120797102935989460391609605606871581976464350204466012779283321668306876807020733842592484449435043262502454422247947383981417519363841631327160092911370776709153224830747342720854134931293745048130345783298999351284653610785046602120395569477101518656565520797253909606950239138416913827153314957671709623102085707311779820312941623846820060894287041370957970449238842158352879354215949938562649834612296240004286405723906929801233288744068057319540766661143906432826506066215396450832468563630789311226687238345746324721825538852762012199962395607358624894446402571374646873491237136849475900109095757540682904939825323374183001934015844881222826373642182934085522019481477267079033323957553035356708406235179460169880429376880374844687838168715502545143775276241849554586506803591690634982231747171871451061153428014103881614806469136868646583202446387724198857180885553830037270885510274351688168137447789934343847048491134999189891501933021315371172714167014698633708539945251005785008139044533884071872013557659917065000298953603002728121565587805365417951217431494446049599450815587333389336006864566812588692919062206621045156105188399125561044188796500705182306848114798322959471868764142744613048074486915188796110268253358364843189364409898787819749029150813463575491238551721637342397240704595886466567130123419318972910470184010382763785107621530699109882771163955507479150196528372782790994096921619217819614786846573637874901947064674037924689434420481948135828815200224847425811685567287440339805163065703280966057009686350240356428590947123846663631971632590855667824972304803327250598480731870736440710147632287098954813777703257631168716887431686567463458176110060761768683994275047323292413834846643835342165580355085139982883178020777926358546938996455399458512008522977546173014236053856568853478141514633970019129206884711669104077728831366618351910386338593889867308795218606963748655534045729515180231753127988144120567992104142184489219714618397083247136277386949898578256258726496077297905315843838766363876608923878194548316270753902127848068983318354518815153410811939168857543474356770642272592677100911869536736030451963871926307527708210238880948597657009586497111190830261802197198662726493937498075940617149675787545602436688706379636146254533368892871176615545409416406693315390002244560943664011448298716373387142121201919074465278648843137611761333753463160067828171723642065134615136623140714542039461153120654927204090977268385108215647215878662867925180392383618692131695998066362728249659547198066578126680662971172990324109401936519997045445596356662071022319697694004907891592881661177331736320189585395583797774472993216791099816954948283784828590292504208407064371087893255355033078483876768085439939386568586971635764015379546396042595517880450800812666310940405985554055255628524325277942176533225279825687172959085923612121555539429854800506872806563314639659118998986065809010054236056311116796947703043235868318607729413822063474772948665502059159385747138494192604941242774805876789026374666336957931182323523898572227546079701039267042066816159272400404410466372366981839563173401663094708534857304822619214374513238705915151378503878664649350141814294078419022116007568946606625883171016064609681273563294198169514512609636458459459591284207521693312812277200712019526112649722248946354693817097933383854160994083086006078443152269321367704237777577707447259366729471905801421496268083393241269804233090053480425461607052489112326311525640670724931115539669646166246448669094900221905175434569293811843459770259257192912730182265766910673527876337243270103928444558431217496631706181022699703526471130547866989678726735874211685038086863168268141068373406530655915479788732498185458171901371781501252408380550592103744800624833905428078765111231667406603870927373625080392899557833280315727113135528148202180400828417125792560168386700745840756134507696749106182822581183186089290642128990880311484128541918197296463730442963673050643199882146840790699482838637661956071901851387071425954636054511137043823218275372028987099215243004944362317341943613198952781753254663265929779399641977667200931885074692560019283825232769874192501154512848208977839840824190427461373426411287222130198873125479943553483815945985596637376436479912338136281537204268402519507690789757955448900646887160841838020949545327602927297310730178275684140623066619293694792625058356631702588013030794840245948016883125871148821161392321460771233574129297432366549537519459540863004304631335862461573688793534973438488495715506159922450610383804492619821149289631029836206404537604879811322195108183357579672258514344393804698097055524735608953611033836543253156825706899326153776158030548201823341603792313494815575141031966904294238301415614132843263867707406156819444282328423865140317122635715080878756224105083877425176103058913898825538953106221552602413233202533478923856290707804998635212803946284809058125408168289884977314987728447907802952280139416899002456094284481492516537336996866345391256639955360637625609825842669721428004918102305396237005146736625448429345447894380335292127245521117290981587022082306711462857226955107304319795625526322645291517484464167963799362626559331708203068564155146315902170017621736640710922304853348505714573830734446266302119738512688658481802786216416489374179376974445664742666547433076775511553959408523934122392339838100180386386646118196258098370900707875906542715396824051753127275662700399844236232489320446629970492271786547198812161521815953436480329525313482642065117195062977768858183514846647876124303769462519864968684802389385088576706207129955555255714567276545021973961002274832115575734272046598305670191210458200450536729510127954050687671184536112409132160517792823555366411392680778176788808456560379884601231903505570233532994677592025234854473712588464960800181460460151641633136613895215859186376049740250694941208520906885889324698537048842503688931585961886306740835876667832118712773131138059334787545733669955085874771408294023567145546280816734103138576108023675525099085671736637106761001940151029426967348081706675967255053668786024426246280832481979488126094023606835993014169077047722385003450972199932373174247204488623312568529520832807395815655356367558660890839858902825591177090931277619887851401069934932637958664753367596270646706412759793879808124274434281347391896679631035230816531033598718288988161351708841023231925404799770241181315543524655701677413832225072795502986873613090867751045822519738373007286771247519661108600330225566976549359345841292094159983052434066088761849418927059367418558714496393160215740066182921116443654487971375035374587065225567149336421659821301276742427211640868992487363393974802147736723535962669617453247741751862677014458345679588964963341935740526214278619617239430528887341227552843038806990659760115864645419165753790736875721776427659220708106063499380878945320089526268758916359507285821093525681762645120735262874097156422347450784046498782664080996581418636710283214258254467951074567614163069050008967200992046733887975114975586445384662781030073309471097731931572202469356962137803547512033332697165551232070077762647620056644122393817561694683740115379500520006420184623803525823433826075312847657689217785679247661318114153742607674849377103568167822878720714591076602910499544870531335655275279692850288265423123045633645962611487032130573044168896649840933674384866849032540763051682453528777287276190751983144806453488388163009099616815930724195380468474757496963193363632544448273233359803328688527593566130206206888499692396662940871001776786928320843682635275213280855395453716784752993645437075243863072823858145943739293527597743599679922434984603089917220894159848229093967406099740998571997928956748408728378842787421933064060631571211039096543422288059280148579359399737979475339887917066876884513190655751491755200984505616976040952056861767195235988114452342669127457544898343977653938396615494648825786911411859295903545216995573989179736407651825995604122712468939382507376680385486771914055749612702896713713142777945496254991818081117139424336394165526929255628685593809983141965583493479365795681062268135953716413878314474783067957661494794276804543629140014964736987620981550818426595646941921967899492950462967280115320709617400464721580937802908885474563464969636509191279376055197265158895680838146528837371241838334575469279025452538018141975371349800717864851856594882468316978003723106881802273633880701361864992532663510387067992418677394001679301719178017074045530155352188848162874330298432051639442187596684595732427455231858529955430999436310615498912476753795537016214498862176781093888690157530464655773788203161367159835482983467023338089495657935057238424107973848523209845020373833042537209323685173469186332306736020992455368094321742213994660266160549707873514288189815595725683147179252349881737839438678532406874581565731870212253455287158420564625643137009294926060674992608907527864429581833317300983470590894165590773721637150383191499064004908814276288784409850880429347199171413361373038615436103212582718722226508813139554096158025418417482589264311972606468149185925235474290382251799824026649554101210609293168640602673974994698617707434746795995911667341736184088866221277136699430429457966690504337847955397769190854372448464328468159009118329196045801016458921617861771411407454921579031640773671527137354124358526508209362292095026412348524507475646688495001578235043865718268888222336792697860661860816068668199749172802404161921270571922286274124779156928544918660278003180737265965630204288510982202273199948344016813254107126195273117361992583479326114750490612014373184793963765462537632526101010091989994183532850311868108313762405011732075898733928023620444733761432442654628024402355989976833410430303455028407308927980238257933732681346747121064316944363353944613859956801327865075333889104144895212247564907394181142051250231344446504714849912155777733927462319402422424673448003937837944511201944685905831160051320682707517065360306809873294385432761514052143109689664103506706379409065380979148539014223970067246333970259944304273229989316240739146053010089062934469316651476555353574930440786304424262468902206147790737082698838356342907023003285057659326922456321554873958333331080841203417208238514112185405045038551908057146690402580185685117580393125116743367913966165915940282158391267110903549164004281842791398571808977541613365491957644421455167991299485073055989897308920851880449843498894414959989980807959799288507983844703843631323400842044839948993839449374940121996743143556731407467428057271953136587300311740701196610544088017924542786820974439461662843231076087651145501203194149967080796593816675711267988037358727190640552325311374346375800037461235670062279865899689055955844122189818513598848422546970917063588294284710815745496539004193443017411863675979855780109208227089542329363847903246863111802271940794058810561237097550488428053065733336336950539999443157599614424618088856077314706993162326025736244733817619630278936727714362229446149188987637991667852920838740421113150492014152061205565728671875044250195605867604261764965774192267635377134485693756840719829856910924986994175024565908542945354514858014022025846941971678008088944291763482710094369715634693587445238862367725887959691837880162966031031804989565984508175371752096768177861245826191196019814684595536511199622546337473505789123438883269422310593228814692907024995138980397967575465983419674155851071665688329763070877228108874696965372897594441125392929494173133932262993999298728950031876205862094144655674184822516932260266526922826765622390498794570012946059492541852436074986202481259070642561448298530491987323193034491511986989792460214561926698733899093565435374550558612634783740720197776860201156440534906530029510218088071712017957980923586758050352722452833655657697222134294394716351419773495595668914526543174422025369560133879398241770983975288312935343436837234541032552954791030097068177663812010140064013341179064388811230850171174866159487479002993253692880012754218188143154118436732165377453942212705468717775868355108571345485745929119460185056178798061841080840111352835949036967666557802525064470768079818998934759795653038672427584398867042429124479970571076530671336673934813186755377728097261069952468373539162124105657845810118604436016864487385831644080296642409546178039385376991726948977745490663175335315485015604970657777614349857763006280837994641514153578167658679140502477788647356112719942801026714528926072987522824687798146332716050245314104514453968330950912448928782501190317198175039241611290460190416014683670781153580541328157483764714741546256081189705901040194938021780273335969710008296272853203005169090214138472847429997451734928279022731142163620264029697356539089296582556209795692257122430157410095517723100948613496661534605841895807188741476790314580786027685847281458238185188062160542219139522113375213256924007643131763929176068853648773290222435028531087756702697392991159795782653852001680872192295482194360387163483193570142343566128737061627032956742231590054280519094267898507953597873745746130859718975061938422850181331314867728797420365749620114562864621961578449898654412354162014455797751717727176689366054190931568016381467678101598663828113933711455080051413852335698025816848514452563525733826124259399069913743796540958243060091691489538821318700401593040007730433763473668045723688521987666959919471181981817972483342439009548388358255104342911305874687332984680659241613277000882411739793694587877836881211157740429005364029858550951232160255317617601982408155743332148721766155951740184602380809263806698294638509607935332694950343883196409445808360881905705547915737798294641886980553773953137500592462674417123921374213684814779675659196383345881628177742046154022173155433312944904880490536343835797217475682606615033709037571111306919678176125475401441323037241788091132629767239508301673639810587680624345386896244752395685946619737696794444686456978976779863177581979551300123263925638666835481489872484024767177348901852697959312118054832079355693828050383666328103845318655608835778965588822727767560297179716977484368844597871743595272991034907386704001145177577446356005293811398783031646230646316609973459692689061313652017255772592372486627526353468352736527337418373479544421607765668310105962514498682904685025798454658386092218367015341862751806218250184524024463237566575390077871154435932627268703475724554109212837446497878663872110720384371316426777452442175737550345037098573397838682069781826006263027905354436585509366304965579377993400657823742964749026320497054552837419380611315090873899972009333153130376001295583356293244590542879590312684835222885813208565924775597170958482906181858460551833014067800766855057662939646552748648990385398900262977315947968236597067983163692729740994056138092153006938340194683503437403675112999832497449113769385140139841163083122798753037335777121942361681573583156039560777852055641607299297003839943838446072393229159391165214485811818815807254246493705253547350529490169290548201873318658009630707496997435104121268682921005352266509886385937436892697064770895449046806027232990570442399757828400491360206047280805300657621349429363651169948831848243302303034325697495376665554680285458199881420577237176965994559505702850274825020545722515738302357095987892986055950814996969791668565558477706122396990830276181462252803273603156778535347171508872987560566725833808779399331645634261066618907530403089582569095882753820825940972218072390271268380328279620817573350768107609630246108820375709882721440777479373712287779435906937903220176051153113746172690060351565729620366818656128241803325067741871747457503076947365249666526719456579615862129412663727191524524953589602103434768214213502778662019391349615763478040625898892852924063354355942991313912915286325101669396439255910773504915587701821212841362058066573901462163434715074607657800311601393235817175599754445289931324305520987133734645629883093064585667001038243289565386743161832246874151712485588048873947610738990724558931090385301131085032944477989929424295146456100057393644686207109798073378109039931579890557564181760903467074311649947082046421593251781608795639924565301588669902226584049823330039231069980345889236039512138303680818942646833703182794030418754886079255137962489694289254709651729124238952710989102912611500104633199273474679345688521804367301204382141419356200995473913412190535576280505486624451126780857500763012819564226638919793852817757827368866717960709038723389302062067061749375685480379672734400915181235959343705454288870679590858312798766648988906340221128251007958892860303858706198335077329043508878900434039788807022704089660195471779226019871340849245740925122134103145527075303943747414882910790785042485720872269794630509209177777470272875203930214616683860333789251256345461456083280420213235789857758528049367021442936538247785628197769202743869530653150521804900813361642068213062776795384465111736952784412375634107901320040987357601701414248998882788838318496131620087317356008866645440850602237959825789446546404884586484358604693401434648076099969560513930958132974825964698074161841547100277271670789720552227313523672207309743931966304034055055397449236323182093445271100432281895206935598140370587308777061122676975987399873685066537961975740663648682831315802412245827890079130416357955948622521016423006513923264827279132032093443607886432508407515294420028183375944157615312491677273605240697525953878230658798103899268903347968631169303895977072348434794626931946050913235419168365982362267180903022101050997802868606326092305425504775590167790948921430163069702314737232738740934672771588563321113521647545435542907828192022322255701634998128811566992593618007302264831032750282248720698385312757157561292169451099715791925957425050065906605404591614598874085966152538570684399174994786713794791369728591610124944025607873349400196535461488690497850806671042766024003603462394909884628815101231926648152483050684928786764608470437886651961885516430707180974294585972442438918693773554985756272113045408429690880218230340164901922155206740196831053927797917092621486121495544133455097857115251115583020281113119757962628315746888155686018926893579636517019905445742158506671018523390628859702388163295398672986331692176075184571301268123479394263672614631781949592221486769821783967518375532193751744011548337792030621124739831938722304317135376084587526334934335245614246149660202898278996302276688916395192448340739501648473746944188402285167198008071864942761447850476908248176619708263985077531355535114143708057223180377571765130128178074452494860648417981927276424153618105735618188547198233103563558006197263857560266560813586968209086588016447720822639937877426906532918794566680578124339081783762354604115013027636866873391529699361419156812881141973839055502511864434797962797099723905632138537988082117134925266381520940346003512080056470944829555865628904324527411644267446826177000243668201061016958821869118934124718765928161341035827672705816856073105632661341772887094808300182535136015572338609072945684800351737264920472315614671962371967832149738047633575443725178866723576171170579323892207499608237717259850664426734109144599696553903285762884649239018172540262249933545150013965824768094736991533656580784751551168546821363844588047677760114775995022270859108025071601992966370908343619547709881328315292652833992689275725074693184128587463378004862915446051488866041541036444744781263280994271709340051690432107884748160678009135989286910996951549109014757716413664782942394891338965588339822696713883784025398427937633339427837211449522206515383816153574244922226724027068210809405344823788257897591292502979632961248597066577983919572568794137092050997410867375063849366531476524145808992784161334644122831973860085905655260597130987007819727684646456631777315318907056654853300198861548634568889823906109959473488158097499384011506875213770753719912010961056821648359286933491357792365432047171043702477792598175184700709718422408713093319166049609687558654279636746309398886633815828726858218642848864969322258304036828337376368088565482822871581318287756844186814527862903424329060970412713048633536015320380431894796424852946788821189094976809689204406255206171373612452230863070098783449957282142239226420379111500656752425244366064274970523862740050146012308228575570445206827256911998657926386670552557777010960275376362201712111814767818262556100450876122125642493702381994334163143196846560301085538675235683980187860311598915351342711814455482306729698482324985994161205876200704938367018523413530151767382118366626609384802476198891361996977034804364206991330045394104634285641274659158111765473790356468556597290831720750761194274934149293344583175381606756030512167859598623820000267974008450913408544930361992194177069360377247824075481284932499793540242462041652916808361668561394295649719175756984719061037100051445806464751712065004190775254188807050599245581595875166998350862500010183376983419225246441278135807712799225776969043310358265046897586106574450711952048990037086974593782503206242361654488732607246307484484690660187678559450094218006279209195410556998304220294438580658915569177697867680991342038819243606025650725714851248044632384185556855297943017321219465261003271901874606081644880696702783225624994419646185267149505102519823368963554833262587242248749830327395619710810686418972408806470642393313421826307747578797391343292811812372931741497547041758526212725677858134882055721578568479883394820151325520451380282754254788203417340713785820264903283861295384036890723679711706530923269872735548839093831419915362260169272749313010153568151469572699840151968483749352401900824016892619558347809848283735810448201305749732430252084705034954469636756525924931464136964829113586911360877126428305048028415582682501196852450376710203937152881630415223185964816650845123313828498332843278219890596640284708150877716213324752541834490445940344202324152579910911459076713841776208280049556931042080571077956174970304736374419970719024534054397896823703666693127874212177579720129464998100090478899266046546348961657511688342536505840800111537864690706568506186849094171330057853535280011283537124216296391700331675160661577571708299469773479628774441616983838484874612052314687243359529319381306799058263494121168432834110228160434493478285656674151836423093530182801116875965795847677394433007116428855041690427664870666496515168586656309752590720707879962873201928876097023812157779104697176419606680189071948962599067512577164030750515852200723912025221855471815375526554624694352988626037110689078514021829231554021730420017422208752675667508076540091760114597016859180209632362768316119748413976199560847308400102718614777042618684542800277277446931922851111774786991002961786909769333817047438333172425836038200848728476846670772469156915814567869353299107276152174511811891536342358553544859196977537652511302598417175389974555213561572167439093402941995160571794554703913569940346117069741383701894423565442987697956987398104332917098364778937182922879657561569471137948462151065092055848083443080536147337746677928662352530992693589251836036317680748322836449752505499476981922322263078255635737474201781092039668985550528517051374584248935094912391886854913089170712969377227447749302025363706271473194820814523195817445597131751711259162313857571843928130473370693095707861732109025825863110687608519540624637555646515360901458833708971588931970221248901040152412194751142597554934568657212367014769469137121381176828092040085956682909233798437259678879600223475811156228897189536065314308616530213508601759884970060767425575046124820645966991122079022677837906765202519842643999591929209706990017451772557460013841590385494157324227020408903394435840347812858611047849537985512682269280550596330282037929809434305476716177039646856069135202689318908378403136887340355008820056842994700523145912909983133860383595055056002840765806717319250401165482733367398000911491210607053650146373800139926726745023723126879408485837476761300518499199219352995470910246739205724447238595427787151693817364402342457198756740939796666194922757271885860740153200677677469963758331436547434628538729825702764362373829625659000509094268360396101565692014528313987856006227419610252745315313555087284145697017701779672594727373553487099597503401176738382828561591511015126097355038173192679058409721966217441336188202104777934073485658428367045578658911786212290089944086641268084230169542219259892835897265478333472564914511392863378321108254808008016895755850495242871305540836511568249118624968151369181078941120832913126241071603923126953023037115102181404893484391346555815185857569070474464193091386992907747417206976003915994462781062212113572329368106284932405051513209351815946197283823948348955213987186247512722653937028424872825602957751800282534631118531202318293053242760523277132956449414642235578644257667092095109189402872586394222553581610792109227440173366217708785468839295415403482316885847866799442418539316118108047587363715274638154872745039980491030552977986412531420308162181429545166617375803286542037830184282013343349352748639632889611058107170501400341932265632459832432831693750039417334943496102591497984612542558075633984145676614081231741964238798117428527426360364632186722864632290362672432375230943368925667149614617464563614062231549668302871821814151999805964803845176665057515344098284078548231916774139142298056357032966688378877803026440132088477917372135529601134162162630058546459608720122531733212617032881141257956622250243051708110376279835805617336450269121845553149596956378344062411753875030548311504871204515323143801198617868030642744857927829013729231086522027088240139448129081370222680737454656408976681640902408906455079591884522997877723546185997228310697184797129666214622681693340410821770360234217105528153985938104767398452894128203877695107770983459587499112333088431477601259728986703080676077800665103572094761415234150315738031781862197777244043807835702438970684438718112589877794144048260220162882285839323358701284811939629647946660747494126303553357374706656677791399986008848412451891021316679803357560925346391784667546585816339185239308594763109766663033092411362831792391830978244212874842731438146754156687558628509486793836543162827143173327324036497028917831313810622464990365611003691963497211178332885101029705001143201848583226830064775905288487771105964584767011704293590830257311172402489869150059432542585158074430199809430280041058603814562303990044258031523588161222963648590751566996815644619426531498011819186129648874678073646624624899338243955484214702988758697894053512074776974986142286476005049814914548830925589308333601418652031259618779898249391270358041415959265812733980811612197837576583822606150739154180503337699763552563102931440589782271263669309446090535933116185850762060700734131505221275616243335877371858095082323182269453344866465622428947543589002631207915841765579324347002732986030352707587039585438699738620228381997404591564082602775801142344437547795564558311657618105482862908004313271010372100769425204960090184430333761142603102258958339018462166495120961421150653038139209633731665405784976487120637639253837244206901144901247421737832683701895226090452507330934291747429207890847879826164776064858298427674570445143089887629696503781512686664998522814266620733657981087310176194320594790550738393305058444719000743705510328550858103825265045243294754279617899850664741949172890629439693511838319416633281151081895138376380386795577007559048902714387756313914576891654922502453929078766845154656478729091429782807203415234904256540480755275790857818764439438739000335081080402079287203817512100506992270352615376830307190971811707732608706460309057450112754154746178423537955455913593226365545123456797834306233113156190947612783775705205438997599594148428957641185345826836702225305402103333841000811903703548384230949726736819840527094894501622474024820640480396177566751344624341524326313866695590220332286038084734143966829408233658810390660317942752349096903138094403445308269091043270648347321705492777366018594373864300767849046511135047236959531426570508607476744692184346390914580890995261653627204992275268263075614711490370811033008072684044849884927302543454603252827580385293040342895803576848438278753128191874561641270839263497023028210569588103780293059865255361845035517516865027435074064206603260520494399329852902615209781115292864562225680150110475558363215734228961887031965029635946454387117233521232676340329978043825748810805271682969242246626764652800840051955040455689435817680713362849261887203785525539885773329057570800943408032621637532194923748066264355986786771290337943044040255147216368704087089693025961638698294596691865261567355742067523868491162152878810030267361124401118122778829325940831046722532094611347174061270477181369787637845193041687872101042530886602656896742179418727136917684515327927647234478642083582246702341015862229381841166737691373383205230419638876163246819374613109946971122232344060107950588688071623799459346859396875260462209893568682108518962015249596286603502837527077050459903835434987991640081124719371798942035044689219531101406000342058532655217383793845072250448315719802842522117936576161242874489911663467490671926369622551681638547985450420214077577404460150976131519025325552123608338113624131605589422945272547368989493756846701957024542152583108951207724650025051051124261534297482877537840982084355601789191261852352501126355827293791948629588389374942216039001181836869693153286721734728241189053321011781881916698873842472896583344744428047175889188972462840154774265266704958313568966513730611743050474019149382909850945522761009570759633189564260129982272080750811643386456036291722684312971245517617635081317172006911515833070656734502806604132530122876117808434964419066636060845807081167551105634776313961555340361422250923543539514642668502116783738120953617602767067484898445874644194734343108479717288810161519787785262338010002656892472525948813868706066514885189371827844309898376924023519926070848086681005739854928674380571182123218863406371136292964878618720295565661593057955535545163036790690504847929777892896127985714280311317448741631599274135012285698177876125397709110371442946482858472602768078601740906132610540356988248919882852604151808151467182172714205781033047016095254926035894995435649391387708041939547174576976514373335397202976718867747109871140992818619971563926795985744587951920557004950291208266966221698602026464907227047870208416130468078852562349247601947766619686003653648214218308670764363666742777764594759514882685161354712238042837746405126027720356348018975630555067782555354227037829339409096172747096065206671222624333206249217117497599919561153748265067454137074506992242457672020158188724201806907021376593233326249361193477604647692014186498252244410323871154989941558416264901068703406803833355043618829377147858741460984087127273678011178815213175454909629008130017518305363681027993805474129137204741533177590635642220597882843771040057778252502915132865995646341605403408884821810614596145509836013804467850598739011484983153575664062890802282909448201300391069258959993079756961233241153928093083085570176145096698145997522412648237842021400680572025844636430906262355170632001830582547321954422268750221375625666861084135763617509321780825904506308184866260935950245717577739016629768277868928764824498908357021949986743569207713351319765785675612371636642013790569141289693055924526918834312883962181509436072325694498935709396315111630491216713600516373299602221135554653580420298558404701433906495765839323602351117118970152363674010937730093057744576938212055234127001911965522500298188359941189640586263838736657876752474038847402645930997066601548794875181361288389025906998907693163879047283021158124030398458558244529592175528646599607549855914935334771398129311789185720695414190448044225856810794004243492514356081526214792068744659529564832030851975384633214612200821823399525430647151802750723303979531971865705940711512572600728420267651711953440568679703824878691984665851708402366868807549459872956835937865185753754203976571492246997695237987354761110685053608102476366088926657473842237395381868762610247027144224170048893446369736975596789863763060590366917653277000813369137441179038580519599057601912410885297662162563989895426522432851140562122362108004275849262485251399633811191640463927515282565075773696811242469622079548874019383174900065429755434409234664442180445338130782695097743267800572101706918853872138822588765804498579098962060246550607268088708175434402426302898155438927341304943993187048512282600431419293119857974924253610996002649444075523194635037473959716398305570899807653218049767525101114842922344328851489702252749073671448807084997967589141511416421288945121507025475565336653420521675515451331136833689818259523149915462727290459216658550189539397086691321546583455249143009912243550835758724316536822230925321831729345371788972557777942589979570809206655933158973587283551030974586281824333300508902985871113883850665222850997797754616982100981444790106484278194793283072294550446224982416740698870240496939616202322036935211056107198109464033444758298409426198631516390615525590449403238195559519078799084035505317595051340165080091342260643178320957539219640796493662034413846986248097191251754621459803611980711692377669299172538666262418084742507511311612751747078329523349915704154413484173439863875277681554471900702632628192650328336271423161480576621026317381311955301733448703811120797800784002373151420489889186457229682702103935132734287360535474169928905069407199661212282148159117288976899645270796435217326147246919041329351828221764667781112347885237097909573621689240084515951961908905334928108383221109804478735281458549593134303300180776662257582077533826640896725190196448628423261523771699972769717468741879568959959895634178322187758957538639020971485675615557868415366780033395678993689047753718795066932755481431957478808305176298944714935151540733252999538830673730841101101520470496425055556411820346364475788581710497431299818326635949082947607455162594404893695445732694713254538878219281855007138299163669998976420096183311888369288698433118289466562804848710358606564041976972826322638329050765664336732207269068255615190175383478879700346013239933606302088005910127036259058703284156892236645576700826784642957939407927349094258591177554046470101773483794630030159561554261289879385886302291438371620127111271921581187419285242601848174997929357637915015378424178736420856452102550782534407186372478368787832359424835451056044018295419438558200342083944112698300446182935685970608730393209314945656625798673613395894325094497439598365629239760888640556110048456013588289545872388289055739832231561342798802919723465409167603789856177940236775524083941217339980266315315807439036969462940079249231159942590368664757638796479515891990174343033959649365090213796543946812131347344091887092552435343719768290343772350404588924649850131854225320502942004972338657754043295148901572240699128923692629948989095172058542468538070600925392168924048562844380661186680140274980331013544751410865260091419457963469185160354852607637170037691086166084395181943403076766562657886032289027734750841721071608800357057955692340957462207420435208199766533671655434739608088106679892182253789937964216213774581860103280813419953214537124441313015570625239268601547223661888691205079195284408539307183202038065038544865606171917986976824906342716165209208156969528859905521787116981165436740449841667282695661088968907309382657874233362892088369455862658468525538450431025466901268879499979831815380726376040813145778372983553025602641947227177683912556613869649767472734231364271938395051662336812989648403420112380822112951094891467358171230398804198977042196754694407888269765045774876853148056453841189509243011552185224563783776088453147361910568753587988703734082692556364078216340947388683581657372241539497796870256410731058295672461550052794896070825678011279436505059184552278787623363840823180610487757149207125859404636124321268003277394009382429940156032346888658310201580054660009220432417323283524677262679475185240458730963415407511390748199680811690123180258579054369747642543335709797743039885405080096954527798869666886270087054255193223099549941768144630211566995048602224243639373137542725656748532842884633588619292817900929879094624759491813911679609759694044293130606136715440849613187776285637255249311699094210497071665964369266627597162884342499587522919139954581241459565842868011300879659199996914572366068141964445343252863069894712893257772715948464450018166438514933995825575474343747175946460884305962097866594057426454246538200494154609158337425344424593398907094952691894741135012063310951772744603474660898925996797312683181419724963169000819285379202491517221442769286350957169164448956601282051581156750872572184423391812305627272246166963346423884411411070065514243175074312244710390114873101800134210619247898257425484049494681241953843497317251054982398439968692553041081906354078989244268457474307208673682021996053700118897524842137453594542019034921213000919462014810040537018602897320004732620243798926336058307181598201204027466600764671977598363910563843618964390915181484753979188342517287044197898872238426926257615741165697619332350081986877458663411766551489659079115086431806699477286174895789435558300862687004351718280610085558173911028012358142347735383102493016727740064100951123066974593284971424568030961085629886343773499620355789107275318468053544420439768884318747135211374435462636888552145656028790601146208567358511291417566006746186063202390249869343876621867618566736448912087526243170822661417836233827350905044446222665370472604573835194390478766831216495320383532831181559072230883562859821705281188286328925967732951180738844721292857986087952378245197647048130955438073806745087427147841994774110593873708637519161359882277168440822173207719451200487216220828973895150394457691376196682037831504378936018671817322050171989826740581719741642887603961646980638098179991954384896602589867828299571664042168470084334329550866359147099273830832981144213408449624474025991402081085577356652414319785774509618467842706994848119735087764222891090863674426013269607004308997220930808295982679045222654067424476417446267442491108741282088964696309995561404625984877774890757649319030166671880252601453022091324881714302385977994607983504818840104086204999441024266951512801891250002284975570394715491118305945182914861051837914579119517926648332696855607353955224179319050881239307841811388180834120710654063842436917994289288233238054727052390455860918835305313920799179923299039706209414086440001694085959814767366442781262554050452693289098363761287729636250500899712017779535744065458656171226703571451062165512208156493625825260068851065497065117164348206847436925423084866618642762480316967199172246004648117749268001795334630002549801745611454502295923085191340032762754521106149423311419171021715657989705419224616352138796346461275663710949541192033459991059302689263046345049641928691102991208446313359537372752083651032384482456343599761369012276922739594756785715825968586786496177161889118227303285070913700350700442110017827820337035719971735599145915974508580685283197007976229943950645007267816133999053844190496185224400832796847670413278909261772921160024604966156176166430655424466894512513360171652481050352212116757901055281555738869201447737796180990849906018633361028114015927337481455369730199713775963121685520117637495847210845058883368829708825844626337553995692052990492647411881823698665224062660108261372331825621232277808688128797350670866241229111209079178679923315335443263976701269393746303859540984909518604287996078742972744545867771527512898738252380040021346957664117925972277536287212598173741935165068961804882824304226601966215599349066152678791209350934355834377305968825783219171725169320507373038153317563124589043854038679371844928804884709065938909015805199714832262992959513265544781391760549409355276452913631700885114638914857491978313769396199243825447379839346276302334036707613354948576035677535756704548964626523425918922602817445639964704644890155774103696380559595836788292661020282120129304597720056549706722846920528551142607038496298657890048336609484001773061126079972811573323304014161341299158327746793546406231241943877283482361213256865972425374459277855170630411630930629616275597519937284399435011865465827857388200925382648844251752303127368462993868929914631544091121434944578372715418947074570215131161118126342880322022796842657611751226637232386167482692236968752971096168121209485717442963772432031952974260816817352857541848556308505348927362255823926904527593186742561659355858363755474273414318558629723810869975864422461853549127723457675479654133205706541700302614795147860177953196316964102785829564877086082333977709661477520021964846439616355102417938222308166924184544847929528267955901116983693862161240200292230170823443109925839555440524855432267582157598255670064795742405960599344414944618610465623854999236337504286335285952351982626827397155635185760148861507044439400791564424212999367309962815164185740319064905285640329404608866616072536635736387332816377303624516073247695055311460759247772840925866884080302659385667522108382264944852598689530203048062767996248112347859614584139878868702262448574147532301886369630942285789285179096331261373826716119733140173033134989631850030266223691333172109695454321857157718063953414040575899538556387188926870023030522526524071274120255107993219849028647328158199073481466096866508880123506533891262210284849518142665913803033482683386071387698010122554401223397876558679488539325256252467333069539390449009524028327340089915237667492837232006973012147012361849727447663418095989661996196791351776242364818950883128745992833788757065866135070866718610665070518237117037824212170058445494285735731684252345129527878926562421000972000139679736081281235322231749831037377765346618008254896778709570227544764929712426516996577217964946290612841624303318306428868308182453469956202367984105598175101090703269469348884592822460315864709816362156999592587019070482987141728171655695315986509630835913382971790018594503356467434826836597685796161999863730655342288469388889728036363518628397015954411495096037085089855322544686259540103568993321539205420420871222844697500681785022294295935111470951390342253699539316321985385740904741667124898317467909963678189910190010398918463441674333802121815139997702776367979958956560647379195852939012914171625587268903416576866763211943431703191670316397793125838813903176947572472538510209694046033565429633731877345708708569574591459845177330956054430973723804035972090295321767710882411506885154226485407382198932564269089597185929668097179830095568612328937780744778402742800852246353892874368389836080481513923047303560475926619040405341392510381300683621603939507613409638671618604085474953726111580850156854797652412991218241730880944013110955958059713574155174704297652869913915079511004373801716274925547959818663433483262461185747885941701590476760721410326167903409129923541375317252689154945143794888715592194202547179028108644828442767878945701054111346562505439307568261740437940434424460056036522147613730704178269279783939004287440484444050938766750823802857239005538262977818343126120181719978365084294216651960011183845630780136548133561242056022834218975831606833001141600054217054044099648787165883092918123518063783234224126444516418513166332567940814608753593153152013968296241515778749800847928395599085616690929243908397899206204496131791159899779457815567340584622553013489415159704484338893971688739772455802580804474110152838218874554242399462135590700544101098854417578668215664882875040957483734174549934951293127155553274359395373646714268320699177775102395737796221260111909881463694600637701873217398320038692398655253980731934015062373398031122153094482272473574511685303893294464321750836608036992455625431684792235626618249124493449970091001378974490502657285615549943433638678933813122947280866634919758485631236762065014563197071512241377869010962843312300392956281588380243476341425950714899227288351133975761554073019097052030833376754629204010512965377686189023403369366713175327775934557525255538421037342736007767496359521816977534718061678579123830230168686677620302898589548703599813178172970678068728346017447792950688641478248057599694304928736483888912872109198351246762280676400594835567057455379453660788786634616558405572374529957175295469462597280396879323017154332798590351025440324194340372408142466437503368387869913829086873242804272463052734477752025505658317385540173137877890545119899346673914295007819651155627351207806338717247381018072234771862475081412673638077709062128609352766305266995831119589138410390473685300161938225846206519522774569698898640436150914067253617385327152950373865650985961518873554442874151741284792047400172488435838260476988886528419014432555615844141550338693646292633572100619464992674533105051426220978601334686469550601741627959748112770981941949501964109469477634259923416244343045492015612770634392010626466760483139747412590861452396978089495698889279114399204450874310807183734181035659716361785230950872592112042254208207551586354222295858088816860807842459758036699425814336434813597503341667734550959775998675659960900927131571807735650109543969815035638838700628975381086039725171513668791529487234005829398956080219297696070806455540759058933949143880418736915836605864833082854720530367331079153536301067453776693686367169858000338798812971120415518062112842262067645386707631586789060303705659790264407188836617074408828620894383557058565445125520255835636432337308417556719195153152081085715823630787745055411356838731618603883025979269967490551469675638767677953222321608749104591243357205947533605969911434697391773101162844537217181030813926354144539022099712517554165432830133872450688306560434733233557040836052883085773242510591992550158542153562494213367978182815204981539216422085755571030153195065501888644953050200061143796682923806929463326289966130864209207395468040621081599912718030930753512775089003436501441188679381189908215720848092955755022684699071039748683892805977443503506555999200798482116102445018316114405958919289327626557593505966763515411820207895906824640133524994661102629348756388388761822105580816449112229778435727730000730957070850457328856391104215705281356386594348988528608114082624670111523688922741431442003715815916899539607366950441218487885094797026258921067274899350408217236567092995088305644505060581997241824256704097107538743809202218947217020604862238827618784898156072349007001755822496677857683913636636566194332426354380134050077538257217509781907604567520407958100334422533492608211125602239931237764855505127224617280042419603193887915076834095595780819847240042377993610315390509203456714417421313315079347747469313540125239336845155030031828930779269670476917997729863220346245341516500837497030845600541387960734859202330678003900081498909544539207765765975822145829575808521583618998284135633414947584430146018343604432969570177243837170362120416923442166553462530860037200334669885779925474418034943559753346976720157863212161307539012072926857884379414871865128436060147349968602246998673473774056049900246883741991257412559948562072148329352870596296430244812585628514184039997381031793582333563947242273703622436030364343155924326058723960334644293404344020647870116816977361310970965329586329443422631621072740165534984423483758910072473389511548191656914872530033661907711658964854049463536324438123828631333542301586566617532633301468986455525913208259427883151572769842122968390435617815198120778691982240658416319592798655044454279766744698675807759387474835190259387666984139971719421474962125033866495419631081993846147764159817977526392579852714453334665804661939493470460287174365916689360812360762361018298675270778904495864678887671725729454515620163171840532439383937398329462225438497366532541676007645234403994186336052136259654882945077644353032919422693427961329027264368913949811359986292358360885062390189694195300393632641344199103891530231169669882403056546411581220815652654113233065928870359822320277629363402067079407815192275764861477871039641124175244798284299700681529153944550552223890647497234186090317501801841900486918857826929276384537297095099701269649709559591715004415593396279665369740693846467209082454033995220459600756683124694600762500650431536522755631835343962523937996199684939750535022070985852799821007237889890537089244682217973550956725559715433979413237019731181894938931512823496536778259992466896446073177682565567121307339819180556788283303984194389176794913029317725672053406789567183588104117518455175317436783099683437844428781950290635252156845923694802873829330747285121699729802169162740662879538157581357556649305832279525925101384227409718493910599957534290770051007438701183837251717204264865325387891623280001490545711099248695360639069212469215028646305765135598440113680276766892256934638384732022615245840989670459073578641563254772920924939706803012565116461169693511310435472075325730209543297080646830445764358404989716392768672063561535275937508494144887265381322497864657236315865048670969640109379702475408200743592755552320226762586467317192898797711447495851764757669713837344973487716631106500298274287035734442196447024870273056307534742351971569726907372142393286124986161935639248695959072420649401441157769855781647061096220300006042038789754322812627950331444366697107415700260805978937259871229900702624981257509381690495872569101838574110383548058835908198170348889563846198250170626776760169452392644493710311098017586857240339087927355374850399782844141941743022540603652153233913793049877358437844452064865230304385306428435873089169490583561182603039863674373401832732914829527039675284470192768153401702535660161303944846819768513601961025354271202309632654234483637732796529693209684261934894343793469710356913817170385936442744486725884332511399316482512653001972369710879909234010847105858555892799526274527412339302432783016265924504348587587407563684647160903701377174196279736507175915974249856309086845105759652207784554479755762670354611195479829574882399288679527196956956968118187998835318857853164728892362929535219730014380695963976735199102843290642057578126343034105087725242526354403721147009969637513287196117025599550764713673734024379774007632373815437044164934514127759206723858754371918387891601745531103109120488179525733404676562403968455494604019439597755338993092627195628506225796301637347830896946035764569613537478290936627639034841534062216463351607862901054384488542186231388938173754734047310023675015554197234848852977796740186797952400752306298104537572375105578642803909320135995169030847951398677688155931983261603138334509444699508534894179943152031271057911061036573070457506201334838251126644151761712185403434632254248566712485837315810452459778235178346529802032386920111735391143402712755085502950422924472366523405203411578215288886765547052693131297677312822195535784659202997399856455270032478937158957035155650085346159028822717291306113096897717949597238867766368077046820508811285124587351935282096156735409701398772944671519512083368807569027620300400578951667503530007170018056983576177712649564003266821559490384466140511002888431610099587235062265106189959511473903364446552320247513327137999886655674204225544336712505499575171062078101562129897072807656187391157901123196359203787401087561349742157415360478857009614911704971898276231481715912676570699523246702035051200814395592841598705894092578517552378027328348959545692876720400016157447907930658531414204436185948918585084320016426112470541817194092811694013283718033105138934821315648019690320235752288364411562445398704776479250339825239474402651878856770024640466230281857240690854332870550926916314760686485388128337200421732196522777866728276786240393656348203557569158052722946465087631377327841936907911318921575883888772911593573646157102717037273791130836988587649814033181864369283980277761669967812863454189374592951746317309337162581179653467687955230752911383679547298513634081701428967175901343158116210814664809135678031223209232288931384508909146628606711561543253915887938126282549191478515116938651843137085150925211469617247429169763691997952374883169892595137805425819541086885849838459510827373512222303910357939246125143791178701598581178088430161930862393699330847535645356235649512714059868368399667035766653013927350831829514917115328150991487137536427372880874287206587272861978574256622665642456778468458412877463902012259052320865311886826538543888633386578111588693372116092091034209796434957534068374354309551033535962786836117102443094873162184327704478472980466390047933829787752248274448523238769072516913636213005354531955065009355658730324593115759771349708498167016935797515845106471685221400905200362292390743851935972005100640669856911033026982489631406487185104531108319943597589687139431388534397209940518245956136545190162232210717973853145434366128990031398253187791191735793958223439504755089623521489083200846097212799033614137513658973825647220326015913863710148988665403848766564546191526988508615782975471712273745898316100153505170745237513808925252685501535231006292315480301390951960529367732086465611981789311044438871499925893199248654316833177793114717410378698721641436658026526159495680044854328042074650625792429473783629493839704795209659922333409090898741203695415690501596824802922882059533852228378081371938382024077059657300693466338836028574576056783466347162753975860177310808040285296751791381835915062957658151746605919213044601340979265347861815673326288714159251169990858690032473066123045317055824608538972155213772626038932898457802259753287617737257193581224381237940326361392349235462205750868979613161214540557197886395849905819825500848754744098035949420714834705277661258687844145382544668363817837133238263202889895688557328556009632616893386489711530838986624891428785127838080527412964511134278832686906919453058197068397629651824669146265904807547693434928825199206623789564001580393690424651322708671660911434409263192269952037737127881013577954648027003982153935980089754289998243215658865012170307102664513983185038508798509732399384695857253073027247641414896666463344620061473371084596467466492041896531209382327024519646320206351252544267793662672899826066405552917608182833086101786878193245648167400039830044644800807774499624611974193009818030129951113983865905784154826567009266232065865497643707790857574443913459776622950382214479104713362758275843869186026254553835761514283989761388873068685203559317663161389338526707744937328743888067130845764891666366367920967198308184874868602875751765059364030847108752177854306366323695768002606653359284189015755179027088424553820987887302236129497591063424831017513671483296052575132157407501595470772893627212955404407116709484327358991966486042503644443403626394276268589600027899738949811015885856319039831748043746219892698544223730443424408987137217649619683790658459115704953978765176846341969834845341378404026865739249244940926958289879548523092679813926306765482554769944498259835239112530065628754585076176098054802509987979544875942200391205200132054616701503447507829879331416623871059192023259759856202408334779617952059951042956002253537977040580475345655801224887487976533032898710046209560321768176248247444072993762144665920672569707721936121383444490098797462893493242675950432790842569084045640654537757026692750394860539231968465476536911321607424264645730002914622679991253551662567461523341392218395806428401322067854518465876833135745741827974527883675346675557116933452062709795991866765358181253306674852501912278140208425143166399543824614229341383045266001694468663784448279403438926077023985470758638778300524786454118391245612009852436339171384424120430573815397165194269670769580837669853555345371676257010978455104252491620255729110577069402272942001804240797164115382859980733381756478613473395895036662161404638827670179324523247321408608195727196532617206987817122895463459557014658735763321703991818959649577527435863741304826793976387193354361894422920025407028858127017053629240300371903152429927545810503735638009074725075909128574462322758566471463535897355899799868736657092320082845077277311364857542451819215841723436822129626456328180954110037537339229615980262304870974253045673731271902300673485551405897802768231830189246277763607528645391198652135594755653965744637940325539199736871169167382609029592215740484356938132201966143022214132325152719421964501998085367671119762891075607991239064300101709092719532562228220436120505576911835429663764248841009439535713512493006646858572206472721513087533369558819008933606252768542566960278214353383393637903043435710806913988077093657579469365970584453812477903563312729315097744010480002854662249372168014853955630460310394062255885865485593370695920339153978659326782109632423405317207756785269658989424214969465251004341936041471144890130018276760139555740498405773166591654546881078629927209437154833576320872142784402862595650931910191988094587927885887309389328102134234932709575847200163545642715112381952278850969877126970223478542592979702887780840724028255011889983843684964918165654372496075350344895237552956908324455611446346317713987492221542707995342157887465666531180932470016776224066272047524422667932290460654419181476365806775847640233671400738556624214229801441924690287504824732472077643168953094526621861507609184869284431684466815191296500898911221297827143483316129065839471615786260338096768003209256964017568160895324547232295154306692272378632996578627193097270507370947772627758788903256148537679840684941885987780513809445166157916657052634021041932558224523200137264010162647341706794730194031181191697750334685314805946141539395737852603747755431823333989293378654144549374859986059741229265997107079631888321773813689086930085275672253236080647413905816681335596735817205001933072272735765112660145387894279688294368432263909425588061328577266913196549210570548204874730770335453443847569317794369766607784151204105215255533604331528476455088009514692743747416991066046752563351665378294385469849042857541004388790146270854519214453149104288077388564215186826366121336433637713136337541696982207146358640171297903309565058232252335029107648258933030159321434200577017201819399310115797425707078289562861629913207873450220951422782397611469115657602544540538500646827325153528014411957541522722810864086862628631471095801571601575325456306971029493140340795569088625361792295890768757809029828305194446912889316732141419990561720434622244610434293418711763625935350947611811897612212455286067680374813871496929150754545946891412554937157157862093435996146476244783811561212929809056307492031984465314365952810391580607889316492105413961363403173722312280575477735009027032747513695315852305346850386742389298361312773874623553594718565588746288894226063076009463529013100734492798789184515483472261665016426084086570057024189393129663716211064169058377428884973441430218650080802073852993781740965275052540811502038406452650462965635358736886162794315066471528503054429462647075991651981705583681159981755202650145449182631399722688066836009987803433164535682021411481958761744813004292771868349680662277120358292520796119692884739420325370963537561603045627039706211654778880402966532859720128759942445367855081558679339185111166423279791099252066668501137311376511938990943432706399514294020519414515332609004668297171357483133994676632624191426469461959802911590592774399013704772266418330426787011198349862468422728384886830085784541970361478617095623596704450911953947360736665250304397952486210734331758192795176345349847406522521368539301991218919832493224991095110767875908257264935942119933787578979861544346650958286136570572234471536040789621068755401380340213615325240049372927931192295016766793763555587308569092857229891824533779653591443148129986754576795837750829711898662474635211161011793631066981766878861337199359319017110738338000508425395727932045247783549068294322264674777262196488836225800875038077343657240844689752887561637570888941187567217401447866629792333548456967011471745404852577412224125356543647327837452626731433571043480504037559622448381814772829868023622372309298641964056596873410796330139053238819051523670288486683923251006997187898740286325345131534382376389893706475144054442392788183070883216055697574550121578881594043870609298817024141135175212328965740643267512422394105961533153403633953850282096686002392356287215486058966716242562605843253442560671503753593340429112346344571645967663291725542889785543119679932653584979700902321842987122178591803145851313744986489246099999796193993179185200880308118102623009395708150030870577152452187232905994241617018067671579605257909093703095758078049488830526257080630082282256594786897844102210820614351922656082541732355082379781155119870796591068127436165249873004034289079015596362620503058736297979667256795816986888244763339770030276685380378208122567464506579109108572186932088042907861151089599975426363787809747762629583389445100659534089272069084109648092288973155537141372069634077883713017379833205277628770437816851046151330064470930675058631149477567798819288010101539618589804190007726612871065414564253432552318324181571281608358011342093817478013737028210844548570292708384463205196844022984817399505609178394165136508983184264791160497041097767226453727033405523238257134532278821875462286061399011259992548485103588366383979638217184510338101356934694283827530006661791914046981426563803082075656027154068527155863912342955679984831599368177355138794751190529218696069642998646603960235609275479633072116360108707507258030097650605187329548120240921581974251784501323042786773447319254990443524093174814286249385852308652838552335498006788474994454066926670465163868209882254796803675058419743627636190157417102706511429145969277731417963237852093278181311131152305815648335678113486484079982878573519044713132973843039702659033602628310392250084884486010983743501088503912746155203320856151549195579723621853268406792285339816834811096497780380805329599738346888189765195662614463489059804000327116162547371848748839591111322538858863178545814459868572634355480140599104048885541036580469300924109575358874082216546864418036743180077360841627290698358139284935970208293442382884190966971391960100271831993089531755348313161670958726629704225263710868129286602261127961458550413847906616580449880409848278830611909738875183683866104121226749169171825722772512556166653337277340481115772885862731489726426771793230239779735128518888369797378224330729740119926712618924642125012150835278017394147515890860249801131308055915169095215943876402106880071832227619546029179818974750052898262660182464193345479201728749005220382368485734074602647476407931064437149291581145541257550435470385254488032686204469789352162326348491040872869760409963990462010789156167458963625632693558138305301156871800702861021017545017626740778500571323902334646593705745874456911690287741231788878641308951530025287885877128673486372437356846308341273552799914372250483703922871133353112533179250859281243933072614628457327771333038978078035097365994056519631572251669650755093663273159659430528976491615326276916364478667838067359348461736088867213573228211856081800455753862311624391323657030406917375180712694861053702939440092883779550819133863360421972690163839884626221558009135123263258491496161255598278267199464876193449710521712070470064427303945001248032029376473057227777386125245860581370847263141622820997570787947559048057699291817367411586719872609884733542335111165214507625579339388322465504116207053551307909799849850801689573500931721266977330935212617709424733276666595373226300356758933028571205402634520612009885297954986385541297498506671974657365115478755309167927925082436988633519054141044958136766123125267004020446893429491174584669944080505761404169843156365271233636663772975999865435533631329061282437314506781693049347393294418060658418874221812457460314223383394901026670235660192392290371672531479047974597296652914198701519152458422449142426610606580951312795771988023640237928204211382150500351489970825781819964812888942258921549669244138715779998629327715261718996459848168879196176527490989203075186626126708898444705846437843832198885437051848532561729546009955257925879012295752431654346880812992128762768466913143833950503449729828757897438698605641035670104290067222331997154211491952122297794210254719066300444576666717286189710665670148479253413634122710912735934515487189082772227109898743998352533890874976326015856645509687588319591385481873947836882597357834073866686237379244918139095044334951748326245709412831146329923038005187815549426206151628374906388857207716644288553426094381418546839472387992547614510756436282998036133008180887476503888481700933126429985147369558463730970135597318076363039967748643452811783307880237212867222790256097234254887375760710307945545171237842330607223891293594245641897554871763081087093165175013209451119188069957604515912563635702091867101451437521964196323888848833662997365578617337250332570465933815730287105702150715497870422785995146210926114037208871397529996800043215023649237930191426541125738281832354098148452892983553521220469321142449030528798441851087880307180200262297058355983993906076913702149909821296910517763953192888819509718590973302039902376768573114829480770241702869836761057500098761566807380225075190065805078545673359908990578636622208782266321813754220917228806604005450020796431532547659482312087417606072413626303486334963716382167475118644937856094798061934634275692144526411262659053419879528034623119872420970004845146373896701148265791626568377055200210228008131857868055952142768486165626101778462766090068050959691142063483243917671347928369379330578058012499457539632508272853625741611358088242695737173213465424423922645246388289472925527072246597558605905032752327237001340728234977041673448990682268336941024716571913973006268819583031067503278174196232146072993938849446908982901067070376726893134847760783041123728859409846061776740312962374832876772537066213747141823968095945930274581853273345449265970848976160125399208194813234701647882220094837947949285529258744830126541840397451772931361417525678365508314578573121786468655503254143165550665415349417985591321980327262835532593357953468833696526188865219915817657302443188807889283511238269147527619641040389767616682713283645606925792447279816150240949855662834140023733918202202691299152970248154231687705979819307755434780858982860824347040013333063217046639072330898578009446546332366692521666112276694966640707347657368954811680106162894259007464400744618523429333100819873832969201108629897252695534178621352410808697891293527194498249263919627288523776019913180686585392829623556265094557056444537060933594235938550555434533143485645880245657436290825551524568842429511813220173003417615404309204112086444734838298894895533063608456136531091337789901502711465548565637046413444120090577185418868400218731501736829309969355596770770162531965584145574830520196171475295501132529843959841779257857975859821534512858521006365662362984782926864270835103612560553698853385444215829032195628471995235928669504189642069205665523026217706513887318603938219390046339731889880450841565553785562443749574472814017089378595553868611783702473035465949700395836127593387306825132861875669851456220336850726610447541259860019412269664540731489878324354582203186848814041337730388368470733109852670015970152326316640856841688885385554619493985268812270953898233013136400420870617001145969769656265126773471386375253842877153520944143841140345246212191443891476268550600141230862869569860168881731355089521327075025731896023128202522618658144750976135471815299808668694228382495351776209935590478381031651155424254395803341624327789630402120889499465012190149929982695673993310269838010874987721852841402272742097662946894183185742018760238145114444823671753078364674921655215595265836782965114940387921078592447049948336291858637568316368330161913951242687233703066010907599692082335559242330016739954536751844811727437446810802577401115775047001129241374786819290433316870133284255272090908993402611868386572078725163398782264920598573146899520046684106033595203439884348687608965342448869052717377895633804024789133222417314647389882108756731263211018618022787584505149017410204041777347728375485923057526212653414928319373900921843925286225110344347736562246489014007945569225582934726270819687619944059470580338437079599120055028639168289305565632690350418465691169161887153622609505038162605544743000687477697718330113087827296801605276091530241432773497890287213475186991960915067660859179178043834923332993227620127345667441070800459800220898990361923220766538384378240467949233870903412467473773967064954811816657811316200764795486184766150850202629622271324969722855605011073559749892114795831697294332018609973917175488177447992036653305180040246882919499966599440454403740974969215101345060145663253173191902757675267901017574888103809978603961535188504512804645073700379044215398473191787614797550077610268612627474117908763339565664040928475790690369986998871492390071115502843074102702157779981421540280374953538069813106244081654286260783737977168508742485347265764482071164415473206937536264547553756778008666389997786959545702037264769150721106585156009804642431354456567926792764226355608143702811731650305429730037354982696949237461114309775279908343581438086169201866121011553232059319373841256035689922305654968131334474599640151166547019168832401087863745357018259739737635307563763169563430701504987947193447309955424700038304048378543692445068345025346474463707155339688248497073971100680915194650018874938194355595956551931904163956391783206971383729595503187390021316301326731979456776279678890247904416542655311999259548670346071986672539703570923885256313497826706850453683534152481900141218961761112851862848706964164557190903505642785235538182067487478906347909640429155931148257459429018611200910575106798886458477593805575651506331692216396372077517551553148333673314305242746907969829285249945957456940475648087178118587071584949591845502209527341339178201058216541720275617060786479728168341466767035552707614038819375411680182498020469000702225080343770932714919067462836410109212068306447015796518516245380450170786483402407652075667327281922407817612849835314830082277893246220075313975533165702762006893593670276894956175869619349121165925828351281867753942115215433973605893002340407950775544700881680630520372882744509143972206033852553643124981758443176715890135888622776240945542353789221653726480241499590628511821605068332918197000389874847647679697724613323245385273684605946742629644397384801358082279028525170725842399574735177219825538543206923709704414180586303273507629853763758567447310076387199620608046787624022816393961409184204872841431006655374179567458144092736054676591697899354787565374729451474108626818811800926887164664828972287239464868803548589021116125451794536293867747368551290334940770018160609898775131140172052196890805811546003800964458681713941368731444666563686190019680377489550601682799304672565405148648439804904426777986422921800632884200819934050657703709452714302819880189013590121314943694476313487838270332682664402707644700470968259190631926147424779577075772281007178108998587740210185493507195769988294119714272975504469608930903265246953811960140202448094438664687216679749277355576121636431029972401935975578168360608738470135169882471680121949825607025940046340573143909670124333248896033701594396193594365037971555597832417130325401264111885073531339524816843595878002566375313164363370816285232054114205911707858321343616141256871425324642116891695551264678037893160307309427882910082038845966738287287971757437849310402742313196446339537882760352950692283359924915203489552793431766604428280039895436574997779642536694954362239783774523655898001957666235349753695577787574043043225623651641042415495355870604539791676451132157163484971235875547242730918002364119350458880672024836746177695561068222638451839431772382001546542505873024391222887116104440827498224405804467467227685075586728415638784145063705200798904707693811453544928768173948278475235644309004336370465932516963094532737088286356808707792601923176268252347889182656957193121544694522088830049739911500333862872934402253625410821693655402774976696953144304556832633293082354585356510572323894857397207964577511345705732715509973493066995974135139636487470374575422008786354797549292301779308821065314341717801167499098796985548619977060216818358350516919696824662643456984330658798333315229495721384485448391805495684358756770745530847342824459091046424960268312879831767282007326829920228511276765072862375032217447816334506665564882772055031061277689235387995895552143101689882851621917413705449560999522533788745727902046000712517002873777065143072255097501400192335046843291602248319194055024678542415728828220360151576790744746762493463648668889079092005968980938352024611452283931427403764880282759135073123505857274023037626500470685513830045334632362725296594414317625894222846123965323879603428583460563250662337769923755167964240712949797505929672211677228624263767394942460030814483113938920871377461037995737748091662899097060711109759763798151606079573788197847822384430029473795418288436321566792746947730731070207486872432291634521294139582203241691578434305952995059220200413912139700750002892041736644066422112830320047053133378781745664411659775635185434646731008421878100085803282209419343158941721074997313446188992791349050415869621182832070370617001958162615248970360614807476175242826893439935445269353753089992120299399283016962690738405782088069864717025481370633826019161366414750813218942707589184906828455072020715603832287961406366826909975317362054939910755229123350926853272072910136657639098400301421364236442714854558206874298347331215910216707552780922391861797192284928514587854000555940491525293950669315044910116753498142524358572557854113733490184655050043396817429076713191474178441341731932655533217679259314559041606655637211485894442911190271983830400901016678390931299220971076297207015330321278708424789246152349309767600886197375862158624020604237921242339486508269593127676736760112318685145318845055312667321323783491836230581847564897112265747727735136842648596023021929285090977018389343375237123507503314282726066525068942515893951437203219968469356887345211151584369204859116219522581079344493926811859803030012558590303875219044110325086353364001258253012279344179470377100055351441866713914382014266799173579486915779949985780301455689802509998424979792414856569447730186253271380949890084365985350414755658297457051547630572367347287062753232572359396442562670532423615582710463657299934622937262130366737258236866556133816040281965328107179077745114550127419600255783859742652797526138545921350870143833896495305790020371132286534727760318047490744634444525453976709323084162662865678921244883140589346119881205733288930975677919683085476090660064314672976551224570875880546279383163341972300550874781963595004944243284114895727575690627209808340083052362055468098077626374118978122262536215189849911228450194221155845016427568527102113810617978803197520622445549923328698152880392429177749893327396329296769180521776303696985942430567171230319956372529583967054802934481456723974375092498647989161669074585422577471833197551054972374773598081264019655952960131716293209039912742214643409226332154711809830054849829869195336052306622334082660846959253743878008839818433800818183314601006517613398909998484516987634268486832747431119904282398201993102874463589669152693859549711449811213169587789199270409874692693240945264558510967625716841358001112435856315813983002075692006825327467414051420332947052155725852037114095470846301697871291539465565763395200958130952888824097992739214404705489512870452860833133005701554816671965691630082583541265547504938243044013133932118669376145069783232587331767388488899307647764288862801931908456676063841357522179501663743879215585687976831547837462867069991673208049228132462097487222840388939914623982120999062534881398742752213056835800437307772751304710809342213661334080537648546497980544925238237031130425166870694075969792095817643235144158364181604085923516989897786655772541759751217153995011213510307037934604997826832917677305520227672889939220324603822870760235067357956511574313105098279009166748279900268553362648944917878644540107916960308909151214958905061799361548139111808117640596000588981948678134860721069327768028630008652337942593355449634618163673941043661435182063564266643575343139634396989075919828078368476175193299510131665794719044832806234394929557074863497367241354540935157307444654876841046448577640080932697315728940431755097790185335920806387866432749110464368860234817288286126821811123976803309502325212560327978552307904302237345740654986431913410416343600307326750576396373781754025344013574050826035180230443958423872959889734671561971009347556692505078332482651429767525139911558675839931074241195518162132831064934347774753399457942141582399661826456280429383629776906932254117572790901892269632510642279874258269032205181463621891036406073968145335695069584645172359582597956986649282847922464751087999987046846167175838900856348084798123845732249799655899400553001685641416031546207586540928144187881217568171228518711454945118312969535905049429561842550745965916833469147605316281017958844430477756962690391487161353105098499771899224262181657677542987282551564921116883832209593566189680689943736469062799418805336066001159783845468338360099756073755767178070254689464823685517282893371799424288815085856442783341283326284487546985195596367477267897253217014810396166771155516015930038315009303018805534067376902001309314035367939266445787340320005195038722484952977776643484131635690177916488693020992180317842357127362376375392115574291053862784458871992537177285730720166293666773312528697973422546146370638105133282505152068879971805177368291242759465712322532732768626205216893643202949048401808143423901797278682534565332428358763991613329236399235409607939046104982966703174733808711729880052213767060119158708156730926537916843083011475677033175309347181465542799057958330869914994603197315476387555676665223128952927950292265447373622585041111282557725806464596698164454610046353455556079108518261865234895684351482526513651823749743914531395342759744159315723620389285016510367384476901473598867831515183121035764490498218158207066318708280841325607372227469097393499851974169573462041264498461302166238948563009774409583771229077107071443942512164683173333696846445970222005320074807412143984765926403349284856940293361659356741666693792363323923891883973289704607791265006393299881869882921096022926671629854371084493888449323829164811891546546759995011685460002877237874974351506523005276007018903438947154934129655817197820645029889318757532639037498127384915085509950030903157529529328339606778344597473256840314390726521167805970720945065124796647951972935542214312579601852513409570123148974032089032668247898896722734269475823283727652398190481325983795452299883970095336665466494288038434000690199260824988242144239998270204829162411814751885955087546516394945275386231119545277690407800376841300087881509753455133854622617307793397315312941158242864012251065762547267547549819423056026888819728243337612360244369881438769217750418179894633018561326369304497784940725590809820236653644261650332891854006565442933168536010693110214302418510586075047486460454997525844045275873544519833501876929872011332645949954016394436624186889522946442082789086231201256525623755423812101485225897426234835557752657485930557754135482343389206484408323208928040994468321536038790949072370724347681949885576551207363908181004464294216886232329673498135135800905482826240663286261409185794483327164437517067221591455513907806627853045540135407277221481945093091630674519625081789001489163754984735566557862224967077267534784008340112476916012077889337330597200772996042191999580194699218225501617559124026132582158832241054695644310590233675991779401374864207982940895026095304552166786829576405392896150787810075149058825374697227979374536188817760469718104169767415219786579525863863685725614347631319230671383672402214267567629293198962651578397003974393822753374496030477611777172545429696114160359478310969805029816554123713985368688634637486021938462328874930123955329056319088881432429256371215382091952828840502540420427013830195123150039848119488068065244439798666838030703376247773603904189951907789295614431856151739269668115179094342788854708411346841980916638416402057792016157155870740525449867016859816673936141624609128132293540007246940742788299052278630189833763872321502667413414712857206504439298638667673518233292760705186749175336835387867951509501154945435605690731468729927084713375780413847164606932672885882066386097460080064354057872306501940419004454839139323494040214013778584793724181087206088324547576930207415913393984150720912280494643000108625945990862951063977449075852076797318896502226827827694267372195426607453451181346470606590107240154804184002813001803761124041751434445656705729961974630796934829105034403748526578413264396171665029448708569727998306456792031998372884991605854147426970463530761560239681034503678998726974568586927740411246617509739289475179798536273833592448903508057458848292109384588376878485219498397185111777417752075191458857260307621975488699982672378574837740124537954783500512464829803261464711444014321816110528322154621669431759502896781697600446698809725732292475532993023481083637761357047124063087756970932479605890406618161262109960252049736848524391119139236853805959523172741408580678572198878863712287773380104138443214018516510159351821111714825711837766402349026593057944943587083195093111889312019691180131339887943860303952368734683400210494951975489761310342672857091887595798809569004587453541488242505221272667900499040452229941461115470082681612479780130386086792106877091952308169021877232054790176341558417475398533954578194232981154749518768115854068055072082322201430356666038949197407316778631664364858316565582379538682342360272044596904966285029277205926447381482528993788155916315353274747586163861246746769187064769959003852664574053318057183429684205816867898381853428122970321092338732418526865470709833275824082971840029273284446666654066823889674989984116605609243381490869830961198916363310702022582492118822300200040013144520974353970944420872421141414958186222981561214606645346580001799987320012919487680461776004197872749322097307992725303374652553041994571838917866965193655944748679053067355261780305895901913124667098627863098484489532434198550582675593327836216501578833514771181069508775896878048242472052847187075420834782969494011946278736218869015252910235956606268984902094626333590837060576580739603752517242750926858801357202164445267693256491107192046287742711278691941955551574496418629044527120707744567071105275217854769789322524209844834956000116664326586764905997789046225437325568496132121447224291155649891280699190129985956724252534190386537611872532520826469817994345920321021300109485828439489391550683961647610355542118032473114198745717887586289909140205523359068984714934752831794270865090561494956613961206997037419919054876507565281327575846368385424586507047795478642221923547167403107270005245900930048700511992175595049218312532405253095232622565957038357464640733111455159322448679266745863775141149888087346291712106639133333825036019265990922209444373548297689283211488723238912442130811481397332627479003229176139303771442607020718447431157572145105370373319140679747400299780689903243443675948974597580986452701217551426264416989276636702350189005973210441630505161977567998424338439772256733451522919793992402744618901357288263667621578286544307050423830839264700222418913972142151659836244603761209232930740117951977732608755834688730192545998474068189671855699967679872715743384910085686847015960940040815279211323097101862654195481151680741708154195499291555649367661412756939312246621350987843013361458219981640127435599237254261861293216344453126740256357110038326661503463222619997840539493520657491322689419579787467522067151152056716644358338366861938750949207873383566873573407755922651183025842035781271474841782973279507096740838903122902778715309843231298940425884271629091310500729134840104020017279517794466959276498120083710088845627553029803213025924426820537015590727378781968919099707229076794060581749429407470280231346597583124429505039573455677006384057629511165486109920922600684662079931698144112569129589779722882468607874677120609088935296056406357056106149738027989353317169502917786150410268952310562321742514502959036337455549658554167249315173816129595157506086807825155343879002824171264580534401762345811690563263974101163369464043066694038836430877469093450673168944422464904002363881032998815115337757074271653547042050913121783735701447734962902867626374329717925266827374916072557360280113766531365922706682012828779832810534225541488055490781823786600481356819394289564007290068721249872198547266723942139211175314391193497566499893717256984949411564242052902288418466944070650584575460620291229685299432404106804638672781009140379273938710274997253736762272639189810582657002968131659954959012276261485269953781785206478174323473670338638961901486945558891000029084576574008211424421978139286957437415580467591823582026005881365011616683244603384991005979209188529785321718291470058213856270090743258889960241980204063914900203412879181054065370090628538242921337268665165840654287936228068281971230078109393749169005236849821511319883926841323055534906417289716625573363807608167634814876276987172785433248387188214018217043325681994650412642389458298601951299866469480163235020879698977844089312238257211216198133252368725107350451786677768495608080952857047643926259144920836899135218712589131411168544662042095635427667705528410043573319060758768066914771350312500611331424694824438846633633243267497008393370070114716489644380026961266557237114442016577053154085918061037672978208420545104622338848861069044989158856323703878366548008210828429981954253440343723976667605054662815726424981580186364204688269043682974374664648104336060713812308352399068497819502376829355476943689480892859874633401121365247467706772692802753747488287115775700667608002743381173203089838163716523935768425146791850011107198483538011358576731769055290981990275977916071553853471157505958935731966904408293747381214561099848822529582635832057559927690947453706650006449210625815076065339166466597147600528787761312144508293749212393872962709290809679825217783100248281230403577767301264102118595633130109177026878206622774694037391910989786025115184025417975679638017538111053374770989225326549418101163549334164004918291583061007975279139930533809624289676898974391778886210683347728974112218269875480972818437095692822207846580418598108239607581553134758224563098140283651625798310057389720279622769972328041523493176324099415444577455835587485282521256066827868108678043937788918433792662283187711375031967347828333836837120040377166719435353710629875557976882602726736041447436328836880438148060613981833406220985031431955653930170449847179579830069727607832289309929239660555933959425930756608840592960003024180375054782024785656386948283279211874559624103098458449578462712163560940414395060211989699877689989436419429584259713435993727678272976568181854121998093773258370157882856364805048829976547585255651403320013842933149237723852157185080336271047464542041252272578213472722744075218636965806570462372181851251536305534204757426516741742506561328997597153467543691311015111330364211043851820517084729170199675876952265037433422252566955908409370169725930198520847919480031635408665738538779394096717508749611841151961470981822720377336565703767167929488634418372066816750080762410410564115880507771099131595528354067512967159163628196530527143728095639916730725984743242240880409239657246442717340286169222198874843379825216135578459810061378821587986955921550705950194612529253059221150621864042522221230932164942395305962938183597150429745177258596835800928093335615808149346027440811483403907051447714351317529915743632641110337461599210237381981855566286008643077258144685664156959296576962096319945374563220911781595334072009194382552928355425773256180256147764040522580541594404566048207575899580939770984563174546233579470130696320538452611003302829332441042330576880933526323097606597029634953067707974401952271309527148168056417590195280769188271835674910947088674134863675437474168381523577070567669152247425998650010485707703007802888079095956721232429678125021021329140672371143095887704352283800372021710149472594236686901857391822473680935777379014127988584653314393906749265408049740041907446970893005904879024454964271285911034150152182020499727692060245195209028205900855952639843723240021162474767213050699176162892602760341665068406086415820480545282227046969436351531370360020931896278988531657648489131753095705387886761655629956926007183405160553302680900427205034640888187655314474156764105606601541545251735123919151224339774143104744292066176698608677139861321247853194545855025689834525175994904847303356354480945199500536315406110396004665245363642409645186827030014704219468878623203424575834927035775467339728130108801705484461074900379079240167970441575601343518693535976529504481201857331927601599354654103863815387291615039513898804189750854831638347847292821304819857140462743881018141486370817439160330990431867675563405055697294508711619073155891045243459366341775649752428090802969690792642510899324568976074588063658419328518276325250641382816225074428124607841299661836327633908185030826358809589883976600871329427782059254521063704233021839776759973635834127702757274601819639352239423641663400261044796180509265893488449541823690969445139754256369241609601537481604151279283876851802283422601458902307484060601511306475823864541491837644362097745799484502517570352970134442175352451616326315904139901922972859544669158419641336508421128218722645253316065292467231193426708879257237327863051015169859854137108915963985953782315975628666879996151184560720208730789407705241513023451771154322958617068710790933480139579620110804244763721381343781728574278214331683622489259837815691368882962522756854937388994252212232237526883280621953500426769771074672946432258190037993493264438868089756347377014594639445827204561545234346601270926199755885173562815580188642250483408938151469915733204747027123798872898589574030287141271222858040388726431817522106244646870281735136521290600984531992127417814083323262781711201654088274679967306126157797819872521286145424500944646244232938926702248736718430080355975665932323472431576130703098875681064015556250067808528401174521589759563173367829871425532427201401913020039422528709429534323736270988113599784192695990938971489712423458739855107273453475479107532927103558485032871733052143366676666655760564705719029762368783333039572360364826499213597008509251018995066160846422963117458618139388764430527825003521631086745003838857447732242212639105395932837100508135383621985363927962317581883991482918477582077032192599733276514745130954357803616093559987077760238498598393136885778144047413002799784488645913631704542785074516036909547198030996436072822715025680789568898376193033978853555824976609840173269854235503538783008274414439035836057677930865074757491721522719655586004021309187898942803307863092189291267058568961494061686339539740168781323901914354288190269649769732780589918959956018676098148391041126288524271122674836793802323207904886698435383366830574276145923149347872889007726761988432565245074583747368036409590276334160096951370329350514362097740333950448768851610975035651317448991759209129731543904607188183582213341412782360364247413207521694681510364407418376256853973135774358122990025860507225949373203680915477030956665840386750921229902708796076874393184463558492966989092245487508106770905031916084398684815626386267831971272247271044021000674847933114144982302202220328247503211276274278625330187857343485576120230556080272285654944445634697606936886034485884091563842217003467483223285366338912176753530693989921290080273305308665538347429773875080187091509526564707122629111946997548216027995092801649964127897713905246630934551332252618514360093954906166433427430699614984881220402858587881935493636115567128748985308953944208962394120860473183340910463376898618546019586065009226581728570501975390065427086602200044924965463886857059474681008405881735587113188106977918571187189065986888122959768936027975755436225012187540584168137809323992926337470809949621668425238649248112766411475993328386713863563938862627745353463730910538044833513790576393326688771205337136809895620112403787244113933955342404924823968007692521127109114025534714662313269865850993895540861393593691410647882855960639925339124372656037980605739873379651501893357950339471007497286268820589534954225078916956643169120862744231273871074381570719192795544967448750388450774714215828370296551294260856206148226983892076919640603029336155480477529913080086972177550024221440170966472821992419247527071869081168799382909910478043055377347146434050827416311827835858067076047157931433656248737967843720692094942248737383717183381478339021456643210973352288268930619837879178945016117820593291502320947470177352326216854660344500197592263816779935436437105823808903687575467083090947990735791042460479904356989135027638484950936782542848232575838946358450695129931592067824318159061664554897086250114145810708144894204263587591956256760334616923234538640851260881130892565297848327533287512515558425649746422983711732994374641103938635193801868068840921691876812400758208523255077799824510354762004354556954204261903094617770969814265645479510523576805444151840897252374612849740598470678523816123119503727565175025617827912651293774203627308231236139121094621095017163718073499509525256111654995989804916554750467285013262328488406850695382232156595140091399379151041379398563289500717591442469968058227662199361812406170099906239664422764107648986308574290705629197527153176600613671894291926259112331882444232819811986229871304591158370170554537065425921892817146936428889665220527633196409421987068876419548626159405682747405216899423949877119401979131147437225152822090326739384825618878382005688601875453786461588102307939653780850466887504811423463929409813637535965659354907101783302785726706393232339311378448376969365589809854439691860971787675232447847643669345025061720102969605886397597069559591768644976923217881427253589130601088815297056994183414864741595702685286218683046442482930242655172552520845903242555133742418279761986628258562991387231724381616692417368834646100984597538812764722449356345184433178881530686448225777412133110512820161839589187048820533110477010065213031591464044475225607559188450962564626718907336906312880274026156403360077485767960732210347824531502356580846539090463530889129347601762988604294436486200594698477106604742684945945668815542549767310570207257207962581002731320311764451312204539819205312812709832030527611883512230186032337856981282445987402166938578177639998103369927646153228555478824791473694436856055258740913675668672952222337529697041106383329540329334248003855284009970883335610996930571693458042937791052651999980171063679423982263279100244710049284669404569016196445384483786948847619195957297550593288489445062053289528667503645778839889004979793771161788992798008856118348135710469804010682825488843758860897447457021370817022412754071350627617601448587365633012286510099187244096721544009934708897032859018755321121682283137915903280825500235226971768212653716924413700590202375327703837477577180215670613675333599704548006739017259821287666793625284372283665703912675239615919032518710180259196420250306533646454423199953827151294363974782912610799059309173015943198157779143391338460473623379203209724638748907894213853494813733579232906738509113143567634692391294792831299677904783411019497150670335353251500877183555728152581853779389367362762057069270012323962374596558857869660034867492426156118541850737696069659758652645752748221329855092266888824063028815732409872765324984566798174852132264233606178993686950009991025371040822743647738922357772964927062408737842218761180961752873304809508681682199139255920524573356097286090035073961030578385048236192376647363108953837605211237893714914601729385093567646549767676512252283254806313935089451018535857559938209552982685767020207703752999959565284538006145785414247113097453165031310833336004716129131373659836685129192484617439140647247519424408737397235616302081569969661874739263970449433060254555574504862724109941138742755582505965019997580968334630359118006647771949216125474188148114318583645643661347640275536859464551429465292003270078220399182024532183059990044386150259189745151379055315810872566065670483089580690991700215378729976501637045128331741542848265131981759635039898775443773174380284097695101478735275685045287317846240194531771951198526471452724715888913750739663907054104518930776107427651353817413790314605694912021714133274060625719058152472833820285553272284350990644357232795583017597863763822936688525515051216731390231467939440354628477188667071353988428824959284944366718773790516266175242529182621622684771360444177638291475304185246244031842507733833564715655902502976659632727806390811292513522664623090178694105742614535540656811762468008407649132636213811633266136131300186858371304448182504045850980476555931304271799615283725685960799274824626149612794314205185149930078841181685303842081506320348059886701989350159844913570667631887926656799719964376123812848804024954437500081624022069631440565890027630979709903732302358534128768720140161501522427570861922352693210381735104469629182895002581786454210395371431424317408122024902318764424303368223631901220545865165109116367287401141792780730390285109262110938448590504542729758935791791426883773872430538219714216459841764691593992580394496700809629833190752203693773202191207898207308071668301573425222432161895147024668455505252389701702388494288744877062935307494312858860403222068574826450765822866760757817874886713936117818524813638903485140752009288268296813285142526928885613464174743345185766569985038223917441878985559992765869146776536139343850130574903115377208433501580545959487015734009949561928126789320954519180004618356769475791567352383046478625268438440624671338804015965877001875864605316183069312595997884260439762407612891831799065935066542392224973998990190004104542307893470581765828646023284181292772756138827321674400418840321492380635338345100105650693689714033844379360425143064809239953683070010244304529328107621507155422731684759883271632872801585787924033340514480422522979906510248830764564273778889136293221087362427437595766187389005351191193537256257567910377402815175179018907882892053583720034385162142218565455549608674616371529880852533270129392908200418725526076219917040957886630854459941891320628409470655635863519103725859296138656236558174012912184895348199629007874022328949571176314804723204514565270019628856406001908584323953399462626599217131177565995618440197750080552666009480515356579345872089426120028961749557651641140859533005890036722996535714389997197242439337011949689533736419614794567647797016780575849330184393569370762686456510650217434918561315500333821513141578709394309864485995430031693324509436904471402391967396973965730673956366354008506396791514168838152276329818629374819062788885326933811891335728878748292023361671311070029200486182037527486537120069889731390815089752368189262608032230328026185127391522983065162102896093076014247445653915368794960032132048068967336805176187198520371363748841893057090690793603982141996414006179509767905617101573391107830401732651664009130520319275016185883405560346331169491183781719191627727494443219383968148851685991274871390835553473522201558923691142923335165560615116284639154139726130771190688742567422269316782298180950828665342396339796221961212499917748609657592467967122510990289901188477275082059712775565586656016661138169053189908053831661966137269501425884939898844397849740243997536169802907978863728449580475713061833249312447714250276311433847599755176020553947230642249713893353032446777384275042832523964959781002962669039931866159095380607979647021237649393730999556093579565659856074838166877590983535870690633557801498141869736220079439293047024147412128826063824727245075353694976127243349205242500850120806319460248089740187192641327895382266758628984114738195743164033270428876244395167817011741424778138600845266204755659073893982312826862160096237882168706576650378874555172247610949963718588843560012093237285515315014694366033217094735229209968154765427818226679631678709467350905199688407061313544845592083107390184308362796686172835647768249171528127691172877929559688548139103586303175085596656789116268867515265209128567203991090656818004694300665698199323573093099035494318409743134284242734184820005897106166649652891252162360104868793870989400085307540868612632347032875653543651361631648654981132601989327879335810165007585553216901026582671428923006069918353337462474337047862644411010748264877813106827558250743389967682499167153616231459313130348366226723100889158714723774518431666925582145503389327799747518140469575855934018152873184372317222289851297500321096869344888462280781390268318657776693428566159788149451646291056283969578824904355290509879621221402399669790587959752063781658325139515925538025258182899232103621647467980784784320873288355648112456975790117862744812171821574817945437737709125584585793729534801051170809290222600464720321155996037816838545618400508843122459668356180705431403011533469934676845019383684032833461430959812154250037760534942811966450843824041783415249443783962758670947523724281133280239837688792809951674725244623629293914910881846777633978810642811308358620533973375094454465109420646970082779750560989730378492568390914197947085362213176362973566134443950058292408209493338285809608228540957654320996286416960343268990572839246824196201036497710656397127233460199750870950135731852734121730548827317509469791237934391005004732009111440099541716695772593521870605597966359588891619677615074034583735335700483749365614954045755284283718500152646198530798617425282174796237561561518479067732849026957996747617692450186620270748702580259416253312966793322202214926803006739540861983845656710998960012926176216728292270564932110330652844292311473299199698858251560689259749349057794587272725718854816301681457690972189310921398003382731971444701668852679212024034768093117006867459840795684274203338551177296875610667913391049886112855447430289166622536374847918290240210961395664721401992331428095995084668636169723193923375234404202703832952427397524687505926982703760252489548647908438166455267168891148465319654473664162756060056930438545821945458318318571514970729270536747535016533401764602757771338464595906390571559890830141326867558965812184678279912084199887993500867379639701599777437884401153368271285650382821017506156836651340338604330984664065993139332636497445628637638865650824807562081204749166380864516447813841048195061575980419014248524353680300490324356436974414146603056260091659474804988494555807389150552826012031498047964616887134126168563611320760667601937464385504115805746683479087177523167945202616398204287216507799157139536582762160471576352990439760482794159052936745439508849069703210220134814707609851162129693517659547620089891436810247371987003532596894043955110234799704199356764353306834732598009759302845819252248664114479728975753123106828919294090396985881347914183101984409607591212050619853390523881242194306603473323666823950015647169862892833935412274799541255139422927121109965394547628702878820085343723679786062339971947269000169581232134844633589130076431548883844515738629894649666021284609469508885309590235574648529222487599711023902085888732552061127652950042740144766685264044877470793139660799908154222362534210345268207883783884279718984023530556052387765456132865988539002826882306037400427304685237224858160525536909765733366467877977321450737539181860877753776784302201344187270562649089670793758193684263590380027091376152388854040844891820136881839152361440117792744070790652216351167805012902388795794710060479743834919115697020052312213696722287326982753853481426880342959044365836889889513036618143644726812218173791049886606449318369499203934587913421549878626827165599006263864374550940226461075276616437508131249984643903805706226908284541753112326770339128331255979728058757440993504712123943888064834386326444057357395708694352783628367272328678827400891394528115644831256708848971849175904107742512525983154102147714712494714059294020187309610486850665736687014640655879994787879953063475608964427277906143803163159182069259862350198349393904379797008280086237707682491299583503855251630985733426691301052106686862594440724823745733437830411532839306990172786006728983125560749183848799593582181698506409292488834754181358448167613876185565801581226559637270762375293397786637574168658269155539417948753184385930523496020176756201708409789560852629894978484377437009910954338754029429939033562800006512228331768132489530550676824179555762863634545477151183256767963684149171326255997797613183749842400226603907012276446342243411188075557763343136098365439819637684590399234066453093950338852092293727240518253608655589867329546163144435601119388185322251490790880737024320120000778278104369473151271939513015970292573265309806941254924012858708186793411224205303411978249912793808531125831068629689313300462700391025225769989719902531068392860510356332115968571446694889773970818708980142938403436412153880538952494897058412118572932930052238580406243072721737606422584899299135045634363088665864791334670712856281882607795497564982620337390237886944745992545857607520793581902640589940861032315595725278822229936927208760199201771997742611047031172196782582071839825685018974788888724550829213466691240980411323358149606246829732058024797980632514455057947981699138292726073801892566207667786229074590042497673635040635969099271320229400544493506512690805925161468394301839456613140501383168516719161636297349433172503314012757473515267264679739756402016973845225930557019684898446002065140385595638301446222626256781545818711005984442471182292754421567790077800303547252925152844118516402917411541187601766870568969417847157278079911203521506329273929053096549840502891136288180924854974702482867678604243510172503508964546028319349419700637805285888095465128526885405901371405945448289347607656567534329292091469897561838754462603356416255492105424670920256553635478676695949487662179166107168357754325236535823836168279627541113685439451140253075915578383194008174961090449481369533130423576918665289523030402009812910913628559651187284984897590668064341586309613835377379238815917379468934326438354962043608691217751240172488687175617143248159756970350072857110739098053494468335427036355246082021034421044242422316343905637525054289677758610816546528163986636289276347755139466240896129383083607573408312381562055163972344550995775202954702636686675684475788222916606109335613887781158898275611853576160527687183150457217851040336267029284571308442797112487527456597136893576519991132849183574898077859743000784706588946472898381598087601889646491400920859253091291386894232855851918266111982299059701287806628195495789466322828889588154013300942511570656168902571913686043185708474762362960699295362117979483589769582034618629512682958096102985684083381621004265591611349243703717202693778686010305762379156785792430194912107548285983895638806036344861649187475219578860963670638029958832132408289653227291801580340460813881147922804573156751319526162606947756085617472581377311031646693841324044828542212711724099120290745902728909065640179880908053954412174520567501760142535146994693782768796940088694822507684665021533055447500053016736474687749635225619509107498929494273804004675880263689557279264403316063599010474919306620387112904498310561291952127487783161092926269877834647040169763938040215833882574741083116644845113810491511144087525772144034740571410915134813966466473108639466091774294765939727565265807134420924446054805230720468213215216355302865728010874677649001470047126972504187540550659159910220099961197915356373403184629404517983939140046486401178148175356684761033808741346251503803697877820799013285720846502367645303860644245405057902989702860269787336703339888933497067137659151971896698658816237648141300552527920437501181690099484785315673321347665121725612358049110082629731110078900355281112820083426168292111302465758218382560006006726203354574961458486710342267321996927812799469107180534830579820634366506927260038388183015119746632855539171944971859711316888248194232247848343598566403940046799016905893256240640033131202330438525680405843739931723478879974796701600757433038919767121701965326625634390668567249713509031554060156001818974976859652291524274641295101299578330281522700305353321736914194097418340290369188409358503754561294085368534567349023011251120728540471939088776924364152753971225074408401770090413237715168788453984163955353207014533581576805142985872118129678294122142548982683405206026478825710042707497961291584590206518897918385776765842571924513831524130118114873642840716485241536756493855205449137387409241453471459501269775726338731269883650652338312669231116597607000141008132182278697160759683914160818867980866736034793143202103793599867981392127980270941816767223829571749943598159078049867181854055287509143364056768107139919045605864685050635580568501265940553530634241198837367695163510734112752651942634155520231685337401510951066470891225492243807756019210054502413372669952517193574148178900082938956407141684999470459671836458820889201124276913700839615000099855190561116794511385686024660239320021618994329855305685228644668050102685803087544576209561861504861635579766208396636266433927636074829869679334247383071747767244273054357709925414746544403364631839436826036280797897284268622581133156148383355238548763602088047360506910462782248271206335257741066876573854629142740767573460842959484985353506922479617480187886981407644242312394270503897924770754646751620158573711264679036033753455787066500684977532231353345905671115185748436400396151467981625199852670649892221782521194245312214315167504211409142310941777892977354527822766040521282139294959365209824855413112844108269941980303285607205758500897692546887927855370551894087633323621809872460381108023575310183618492315566017110634351884630809770499718182671926197770736175493411682222426214466227866276628485639836909721196142557713683982913977224610287843358572020918814911764687833860125870699256134217519578978502807204035421849829890760208339686675259489155023779728820273449447607288822453231218549873652753282183517866965113744393871020175746624912881457513040165896119468317292779916847688950559189951758422478412122339096693364921355625888759594902646519555204831325805244594093090120655016195362698414200755651700476501166971190904217400993600311824929621408249063670497671857697227646535914191079500927373293738928236400785337646195267958429508405375938350581906936568513130706638123295674053523219698480592310787553611328080907947902516355365925992568523256591729883248873991881554474287010520148890085681766982273687193235693132744363811297452756061914722364783826917315119543558102475598838188911795736440879286386087520758115706139105003897072609197863500659561274992293288449231759686767370260856310499304895502296755261209944726315828960289160417416067565011872832378899574758803278527873656442478432746890266593431242353749703630932958674868196920482928581964381376649034794000171563028804957633335211034987393728884817762879657987790317948105069052616789019543333530211823127499233322055910173721503099589633171998184528461475551759153074652366496960512623344533249894003283622521423808228093817529283553867468583736602410924227309599551979585243127162677241100114283555011500845069510663647507079166691697904278720851366446700394038447699491734619368462783917745947526234988095550566508172309964236689840779652965955838730410166882628145668839933476372152183443212183563354510047904287059102285838562071357721245877086684224239672228847449236056926770912223057674842308991845923057372222940059810717806659489113513234368958115176260819670607512402885051509236599767495898442278285527037647119139002981166267951819628363646114403499910948867676816812878591048044354802053349880628045244866415965553779200725184058242873737578891724558336942172624795737275662711496601988697483331840322654518652398250422338287611446863269009982156853642486547242861746323693146698638052250403712870047529899656912807968489188271634657761424408878286779432754894991262972291329901079242497080123158497640911381479407719025922419471706333685697340882296861294968876544888744112099886359686195139969986406455782023115928986739529853713654805286428552565128428211844137341243252200883584817657290762276744949994293844144836712707770420850826461839660033517836494576713030604993598905666849340079715824002655119030758135682302971628320733625834687985867943407072436909816235682245053245054488774935926933938575973251974428038829471912459232974815546526453273407179276599743448438445961457878101707569645434289196096044376614205678804383819138287841501579876042135269619989737627595318978780873852603152783706790129802818023818976516619266501267765307287446489629365037731818245729346665037066621813594374551438642638930783831762542251559266190154579930936471228133825753143151442965357698393390913073911513163873745039174703638699299705993538946096178647966032376229111459327612469167146590108073873369951729315758242749156239426312328885474801553890905875494128088805724683308660677728124078854951617762230944805883572061717858308889165976228339570056232950971292259397697569096696879283338248340154161270291824246643200619200845565654741412251191298889179324349060372155522150536931258455653706752256128748655178544396061116633645929020987477338682690690501938029689778944277743852171709462845096149345849734867525042349910145394842224640848925412740042850330783871610116001539154258211016934606993029729709489967570716792411672172138603235819202017425389592466932276099524675976781689414291818001143019215412128237978930324242102459644849499147248769728570481353311179390364432260544313234545678309106747012166060860115690016490477231492871490491967863611581485594292523140560316304462672977338311152702937985585432848099330401941129987985192549881822594174488987965582301516442713882769872288215449964950393375262263025965696130814676330137762226851667377402772639601102155010453823706368070129103165163466139939399461253724617601056402698063318626632973422355389918682674707713277456900645920043847858711847485503750057438033791760986704757050463147072243490842920386617660654151556184890603865648026322363756603615733136385116680082117287494432945998829097617490286317066283965505776352304373501995225968403856575980099078268790912228291680674177981646134104783838583236998224999282538787893129998969581985234962125021254702133975064081691198517752212836765257676470513064828727971522863118056428271398643581091597239107562902285580300453659038930747194779207667924708281717257462575085389276200852632943278505452372425809958720372068428570234484597103760379361015367601154229173609355856700205639865622542310470277368675556905573428192923410253889702852651418715777199653804397884002900272334511200180488084662864761743244098687305427492459428418344872337045001200975242990786407776445940018860843088478073580829539376337834569343039538777575306554529116588337379196456193447754098440144278162245216422074578144959706368906751192266051471101539332873737183130631778814275586752781248172604001786789163827459458972258615402598299807255952355205668332716616992181605578774186294925929159260951872692730193694579286332508910162062811742442129472468160413480379689602200458828955147033181350678787165249146458138643759872797369776361084207738872044591947298487478993849017322443850442393024873889404704604482423852128763037971122037557287524915067674744794084343718646574782658201847653798485625825205968190307342292125419105375480601015356615900208341693719160160300590167932824778755059945447886318830779277599055995247402656958611441574710167862046293420704299849160583199779514806835320641359703131653862026869370206868962053196108290775480173145778295255227242828864866544368849589250510664286282607473072789676028401687068034098604808791478920756987334616936019960851421969123988560697342052072288726566119247116668302569588029311617970494734218929012310238864740451435478726799918530090849190704800496424753891381261815812056506894992974280962404438311284622942628991335417213687532190055637688804329934340227754255362146786175112346593651303245188418836740974220507608440415948487434594252145053034436161773268341211338355768947110100093793384808511040701968459395797345041863622928742166969804806250359900707427039438715592080364999285052900448018793648454198037016982000430259623720862492686496950951803313413281658934996436042727397652044827119288555423638347950160217793589804715208090991344184424838694267189902244176730772813714893445406054256000677807001480244544557986210952905708988358476472142448571723036213602163478742941333632015565117344737917485962210333231666035524943939693047620188316226311310323771192020207668634405442122324567625038458476574880190692791266102276686741197743696046265196183671164482132848000031994466657281666946075027683560012356276800938605105288524595825925477337539258967560980498034547100713472654679346747982477898741557692365148122663978919072051101638860862022297557818408865522321896694822983093836674158954212591882810910241538986917845849580560209212615238710748469392352307698631582787975408046816750106836672943136050912568081056944944293374927108215835613260228430306625793347077496002968033778269269595379310331520896944945824082126487547815539407632246756649070141147812924771611007622130522640646028795246851705449158131245235029306961830830180832481834367186235124546033742069094298574265170584276509132705954389866884300562855287941866468159925584189122460328984884223435554622579205314571535747893355728837797240851027247917210122090287123341793638769844733554941237267675549364233046539038258165579691369150589969864877783679861818159677010192474920591450370976076616355695307000219381443616289369198116585176393952839673521631054025887884458521194818153012289451230619629146076223913002471027113624883017270608933294592497777292248541701125801354575414145726424532250602434527676268410310952828512856430334121896597623752716139530662072761383592846546283661455858047958772212513773441075830175665298510661174689924941542087559969624731732182474574102738781108491124877888062973791705785975703601416509394646041515322330367267572943083881383262425407040448927912529279258522498430248119379084714122338251023324629130674212009344875581361179069591485802498136496990914138675971831946059242802041317004627107333467232904406132093012317876258993730932738308132877804558832013164895429872232468008582308945992897134612114214550062361948917564271065978813661294904703834321885297316927102866295231253715408186614993902113808046180833719395200437831257283904923230437490899941774309607112009626232203396709973898613006003088725066327704408677904040498033197427560499136805645704969960436724363407291244056810913075474802160375370014696846451821992623731568786021677641272639591350187314202691038071284602387549844071030234757824182997757014824124110649074195194019101427403112626543021808516712599803956610034575237877477993441865385123206203965417479866563972665998416260047944119160362164117395280684306322845906163324385498591847463458158867456251075386701020529967170022911654268981162787032488212796475006363175901971528742446420184400725496314620390019675457290335635839699752981784789975395059973929711096936643201756591070131420813380141988801718630455008373683502865849773483425509601827698371389199619881888256579915030392799899218414627667898866466625970066594014770830396760029683318757665869296643903005209458383988597033606503463195429575934552491196199477010968164917122814372242704479060718112990244032554097252697544584889100469561408075468293044391474977009892363043688618520437225329893487942996652863202888662997737989489961422162489678114630501709004664158807320931666520092482717486133799948106838245849983990244522208469597026746869631696806926718149922515705646426295008405201897014788714025480855377229202813627180074089654624988332422007006620828323731538251870281827790038900198838199894296098894767511458922752292999670352434960735176708800369240129891369918309486558036004280522900229301471147711380320631337254830109560868981520603624199752153741335137839342388922651294414365569088133532456479080397930350785014462476313094772235178747167543008832979333404553764866787354968722007436050632108407899426297403101043789972863520945611407645185824162343325723663766878698037764503395070238855631453188372246348696169829921085777176411764372885595633921508276446939996280394424193145353891088014518908074252558786837285104571309058081010920375208981081709892581475629540174239315810520177932644797857802650383440925306337614551891198939668939538259726604334934882622275093026263992605918832202756879916065290674217237234011078115102061339385878950559198147830640425049390210197775815111140212641628252175582213182325293797243309185237784649179530353092048568769123076476223531257247283728640844401733804867055479941590030171383786534609332402885142742443847469750537968305739942143154202247349963738840808754103251199456332762458494769472733724483125180492690444457014290018160317631062475389259679791908984927480074187005399285973533765664874971822195504688535164781091305708886136658531152127216445128312303302900909396300877345269793175672758360534503438545200672476954456495984546770081547577879095239850072554305936918897942767948662757940286227682596101488067054855967378551017338318748636515043033644033532580405001339159953943149504193298940706881103719466984498449351890727149893015103636031298930133346055517023583132603934448290927473622432944114298915117192924198034605796529480385473515495251758650605621799412048126759036395417910542494780333285093135060453771188643042091928909881141717403039406716651594059815096618883504904079335916444834763233234361659940294769633149684115237541734142060050848828660310334905394927605151031010034100696984749329321556055181526153933956833623255265838343964529939904497320412113592233798820611589565300788898835233287005891256841365044457272237173062133270129472256587167975195626948803272788760589193224787004622545392661689785904986655939486973093662152627947015737767922792241660187348980410333793092740025287815046319606209311694994192516099629776618906035765430388341921025462712333723299680837914425477603152085155317726507808032782627438719843229227430383838056925918703004560453378831491904371672798148722351604065152783052758514958694444041490681275970296322415665969276422780918371592237057276590476713548877944124370053873220793823854369113619152496589801338076316580980137665236616531269994995950676900182780519927752535820881786065262010690997282841128324618490579620060242751754845179981267852730997276312599702145723314213928071802570299965628526260597563423153263997288238855075595458392640024272676449749860739073662487140530805186861883550371273685364124407598252805940256572822564222425940235502120476344315609140317275717233263088163790054363194841396102144614593572135871898180131132230233139761694649189416871038153387754459633321371649742072706935977958606436837264379819728722472727727374247084093366266358504379200709526442394997989247927956076757774299592774811146764769106969948782382434072058662961612240634301533850883187841345728723581101878889994357035532405724169792687553948645029265280429234830772251231719993688348044482471875550654393013341856053382136551957806955377814829385373960240830768189705984138946113538539901418632141427878766719028718933566152761946450806479227287187576049964803636392553117598552835992266194035657144158865349454309301335141091944068789899875290846974832274278979896155668269487302355097710900438868894704163929946164810994725678215917691006684026013344928714637960746478782335447789637403922590542763704823023158331383536763241308348887081964398608834786137166443947117852549117031911221066293664477174432924621813396996061077247042156978985817879732903094707629196304147352294356953132207008376534899052516978898182649529789019133847189342286903960287268991931472385387636857950813876425296495588499059762074272269180798905211496106583504753219423457924925067195509810720638895507006050675807024844196997309775671077054928205024261739430979034987587933508713267817544444989499778531494453349568540519974806268460451750982663154291521515644778690867000020740620319481335470503455776516693200767052667819256151000798883130951902257033125722194034699550878455907671520601863097385161044387019666069953834297418024861597757407979381079023073666497909938633924371293516239287888927293181720607785289265208529793536515853729329986084947501043460775573346244808595405540703173011018976093736296080111744394607372249169494350904263263247246145648655520284696563788281563702631472714326029843213418702214413836202497540677405009358029537276411099170349607277039444485557052800226782559920593443691901805668318529806296098447789417006098483767526776619890505250980722326924638927667630267132201410445935623964666035924220464756846449348126785213234448718637648678977815394476495792573753395449841172538817241700031252533023117700017925304373426375739884756310900597568003223315969740524162182848400571206883815278364122548436751877619655608989373201859339836426498424877392483746660068092149193223551087292829803270211936040233231552861618681340964726866991978911547750316448762147225489795812892673247631622204259818471932788505712200379618661153642793978968924005115108629637583826180717956212893210108356971718678255147354372756992027978539442272663535872879912842848647964934506247656282485311373851770479226300721219432915054222716933395969757912264352723905336687840963953129052981006682503283251882620696508015153992446924661134983901454002804662025444644209482555334115936542961425325650699915308042194356539362497831004498655930134301701429436926356508121032192253480559355765968768000668340609555841794419499093834282169838176989255081967011975403302854136134927156681382758383697374093348172042537460119500406767842497350158641445751682242023053029803306307179927646665194854066679565232523727979908880620134398878191012306619890178984514679266122421597924083498652382429895670654772946088769016357462486757577394750323450878451054601534209937625384244016803599508180408436097127809741772342401256079357477576166386902323729661643127567775923520870106142039050514949848498484922260670583575202456489599857728310048980200001909468802967343499857356098592916766923533122061381574453057820920068289436289336262766580516305185264895144153212628954926515952507771689791529205540939594853013436524211818354287771903752022370845685965884101859481326192843863410888201271566856436415570501243406172585735032982238082980163585797817598233160589177147979905689350039032195764860250964558459734785152018804827115024664845097702827097550040001835769170627442738664037668720426125970659332353717358930523438548531976637479348594725362718574717136235469157673610940281020752688399062593857188578526709276083695232006734503483695769046854033203806253456880072341216810633544386982301612391152014396688284902792381918200227579117310995670627530863042870076149894136406479552452144311660075173617903721333780846057124616987339243158929826234390956133578054971751974373558208734566494442096040172308185574923340183059529953263539046221190486039987687857415856689414404714981026402882058104779588193991212303178485650717299179309054775683535397730206464434769213467876937748092947798169897505361035984649845805466010710535178936695121008825472014775655396506351150502296393678800976951279004327508857190674403386834214067390633265317517509123863887310065181954307827035842297938848321401149784681370154601707037540998100552228446167961930298963772954996045113546972252336884654611424643837465775167987509635719957744282319643010884192860736695949501136094963152721215457696923145232982857190197586031576299474037190776199956086749489675936766549851134088238516992925847316363273073862749793561008765541889037630391295541482314817467698673651246317245628004635374764799585456470075292372327971498087226362800560941891194821270074609615504696997201843612180137938283338429176547358351687673776725242955163380091530763115263413439154940918136240984144065229447018414931459269768973291717089778296809159608194695103696936109864113025570430706253881265437949271421980961839365637715528800927348323485331086142200748585824152333561320823365698994081923635333233870811324530378615695963270170379877144783521240017513841121156197201895556421522451568741435060747397435474980430991414854490481856210745069265742075746342977984743946555130759498492813257074114164550581426506224972609316941338908037759880255866414586292295743189211898079000827703860200696885407023476692047185483582597709633639569801387585276031461454621386721585219315267430219814638494019923371978897966993471964159279963931042698172867001263256083091044141601414963857623364876678277039075782367242558845638693400603484111335198519679339479459744144340927326603852092280910891384242159428648148851425450300837133543177542201070842051248598575229212140224791352092645735552004461239557578400029018673329682264857822305263608954777861118258626572489670237777081694931765540838360581604127368913248551512170716217574742125612430352403561641095439082658823338796868922480321206778693564284976511091988684739947296382800806150409985658740310345282279924166857596623208310206016091873906965647988832888904577817151530765512851364178197673647842517606978508939767657737755642030739704974367725687584348063222992089557027716260438032636375063712674982141685374911419860184071698735573627472515025064423063330764068558952622840570547784961099753658116818710568797645991679472733823682699154918077540450877052557994883071034417869253635441850031170083848975536009405017484864934803563007994927443559393887315712044592165565319122287771900954507272484066612516921036264659698117568239429459195939106955203381645951789117905554489153608366822499886317237448683508845161607058159847013797992952534938946448994346070650847578909617962916052777786344216814480547974258570770840935367993986809120308870228691099464518020414620010873741607209738282530930058316304154411546264214864619433150232277361896877234479444617978066656793636011030951225945234441725549791484851116042235364114385848987524689076760985012960149992540877670604110038792804094818918213904788432989560943422909144283991410873935733348837579512881728460048871869644967506465195883393406554457431579142103533604581781166994292641993444057354132025583508651575391248739173506484697158496115070010332225252550683287650803424741056791512097181013283612408535198404558561103734687776232636199738575842345552609661809090231147006963748412052356397197246130271823205893071041240422723374739793298217822719368522136381155037198081028303080195243002398266441654896050743008050288264626815989703725918748037616994838620323875229687302551854976012600084271390358636055673744238011414724316053077805201574578468437695429845210174435988012871735669968955736832707434902976866758307682341863023928036294168408751009108190860749923789273327703182040674522505358465865512012629212211799735939850865968494340092279712818347914255014478441298585858651710358399211429302962838624771722895220026787034960171355987689586438334735603094064039915809649555557932752966436408317524007930400962082596893732590390689988145467935245722932669843471141131324773206345827299668185963714835262378132759593742134661806707685436948360562867023139978946004031695004662341486255467710425124969275314938632618444448871547198365530746021223185106181296543487094757095163074456220051022757327956118783253893088683900495488418886664561151859006292840949128498073395826234512112510526739484810071331496786990584051415188306097190760361260294896985091394741040957347796576939980529905267994437405312555169605107634659860743659027194165623869244481915541731793099779172317637052632707521120593762235089242507077726567565049032174624022137604589575797240195133058966343316181095472118410435704632661871576121087655010611955482366267247260142905549784487448605846936417405403441146554361283907715463908080309220116584125072038560993263528186284475838557837622190287145709964617880658287128629494307265571882615891288746121697381200065934658795622697740717923719876250885781520433550349939116891483589481202420414328259619268695092826893255305895291299320179992817933106715444150867641796848845667410706893885294567701142956272097830787068615810540833955804929115067327666010825909035799055750393102621847926569208675432878095476268320166177873555981979907464503549305868318663704964896126843445164339549465035538640904462347504799209331011702307744594333261500838589153235827986272822867871800690246881406669644173459770562529630545815258374412112927114024070997846160153139820100351929305312384340245417615504381634733820389203367408768991337495000522777929602640524918130302201753399215236433545623735037084107438481570647905657453161937263973313214473587933818146075794006522338916835388592326505993464598413382126992964966546020715909828834585922520244617463572182442003030751817458391887867426570728509926189567382663649534905670682980675461447822935340916728479853902854675687715580582423254761242707433006318617229986218207809160655536948704144011773664817634687398533521988704357227958498325767373016488881366861704671434431813625642363082803895993665851310916105401996402108786768105518755151983600745473477059505439159264247324266002170791272152042067884893301997695883811818890994844030157504342455535722170203643892221357567772345382870045222205586179679474323227925157465563054987623219865392444701938837342245584219164087055427626368257803038140224271217085141672543708586953852140586997182019398683833773201199868463721535830309750174230556024919704208466753787404260314643112659075959601061186891762815850223118659044017587068869918761441371341302250785909836414303984148208922260464853213325676306625321357556209339520226203244432675655502813310036439488542314709194396865279629167024118331070818406406612553971662921862314061407168994524810666028464225956933432139141474929288602582051831556218309441506005701174743778693692061259378541906285565444027402721715743832334645012886769490353398576686596533999077708082352087961028629203998700222297901159545743923540808255617084757881098028515800137096639074114933233229736328866706981626836268504294597318600730623316892892604656957922138950937878077506616661448286646175823859259927895721761586603346669443953975171251389916836008079148572531216438922820259013560903074968324190156214010542246377009476939739570848018400817204487426517584922961503302661469550633019202388282718415476397121671906399902326601256076812471528908787404993922905049719705332739883058146895740158921872935922814611415927906918893147743059213948625453705233215732312459342119652320179829549476542312873423055407330891148325723362745965273669215921754600822955684660592787405051196838453467994799492222535213039798830797687785444368003941079807865382119404416592558117358722275451714194727696768971543588102584039350926307070744024959256055744281982613558993010831597586374546026535407374844134810323912969162465218323956163390036333788704767361652062614183358375918702085163980824455790587906990105870179705690720152008625826246667450576524233390900464281924711808427617673057458866483919579588723906477630842451822669402123057954452474571547154092916131586849036834437707682952329956089221732075979211367799046249924106087596969108271452365344125570053624242774802889416593584870095762661442193542713902338974849268055290687500649043593071699393326404127528883070733568375404806793986890462967784170541655522786536705068595717119347358992134359168888161139394222622081671198130190178581642869114947962690902240861567000646520387142538521744520771024900420861110460981561580486133571810337914192768958311087533503891953910656245721402706183181677687863560175123123978391203133387524512834483636131035553088733381713196109066796875307554719292470990410217934266631107749999604747245627215162676545181151563169376800463219311036255563710613386028767523561905739528226979149779023728366813857908851554212331785167940276608815394420396292716112455619795149491099632822171303929913309736726493567689021992444389214153563892901213813693581600087697942654818478126900720890205581403998003557168168334925870303725720576812471728641416502124074573348139528865558886875921876202615174463944118011283241283464262978366190806184546261276584112740808395552870450669947859361237573638105600358645222685537827342440045451361813717194914577039157856990361141659372199425649817291438465972929912782512064106847601271354926632411196736614104051161859587277580622793998783069277595936711886113377674236321941455975241790006716364513333107861499809892753907676721683888271273228862047999062785183663701369209366279291993461825227358959081311720513525096719455692309799138890232785057627029435899650078191181925141114608040040427705352876432720777959870570396696718716810491779919893709429930576529460787811021076424513358046189616378162520017176888601113380305253838872521408250980093810488160873434908985392063437920572645074789005173535525838854306101421923867169897240234985351793465716810133028244472169283097872931182183897690939467261152622028423633425768583623782980294846770189786626292942261462714542822275183133202002921643187110850341295609640969984090461779643847780059060537698506045980278854151292639168382295450722115350321581946691881671689903336360342760662661316837130303150369186342830144917954746450423936300021183137164257590412367314710184073743327979002020137969699652324367492986754434125889645220739226137983654535160470548670820977494036116427266070934773637460619509625356652093746762124208000098631846264554711862006008890864652735633336964322330010533285299824691515546471813449089618341280024568563645109114272119741419664745710041707067234060206945840850582229433760925411820671119078143020148135161134483296551450940857701168675370843087014708826335624308656831543770622728425349110712799099515841826200012253905254806633536169059404504039031260428408033051950500204220918879778883473979805837396993555982677722720534393543394118324806526242490864075744674479514714898497014100727088663193388591140019766561161760151288791836126129773790146518744685080835426865750621278341662116861688821839474740629278340160784910245925065186391236687352656729111632254122506411745792932111273546604813426723633325912785847532467436755602203196690633492793814915058360830213254728240154644279410033194663670858753732969278170677193508045049406203965241087084652365047402804652933946907946232300055823606130661450086850474073997489477899191102073598294307290708186619416560478790450382312268471760864772625889261834510491459147226194852155663092600267524463655070437295129350009067804301964906846701513729297743952497232204509596622462457101927105007550321290260497079263847629931798435837998681453675245265893944912559444466621130321054835055650856535734273366252251583821020113192069640863258775076648074470922254405796480714751590131605675870625673903127058918927914723802580323761811755632135154799767226802411811629639914016386659205720944636565823910913417812702701564925940870808234528324457622859241605386128530566162507023185908264569712584790143090316647051176599324547896185967640785907829010623605191303935495338594486098972578166712335378570187301060454637027202036161751909955711490509188673775573050646617262738248300180641642468769987019831495587167617965006283794034271683315144008403692610131104296478044262796178030753885936151229553013205909939848153737941884698210681134583219064854605302654658753449706629954726180123589698640371120171208395635152100228814287085479520874092688367438463410305618546764650922261766929587621235081787681206242777027805765460862221898191744961577180660955222914978274754431488628329754255318071792885102303982937529366507626142534504428033041439905474024892603256957812548039426281904842627777592254834498592822981507316007794319943000154080669460414941467243134882135946231792486522834003856367726854289277643365473883684050079593384924750421289448772326016445683418165061774153471027314166538299214671232985695377542283585091910244434650786259270732421906943682274314550125048771803219524196857205806280736219303810435721391011418908447046652185190273810454128432063317609870350877025283388573685766097812961771327583411280668937013156392342251264476683249001461374083920360646202365688935082890494932502653621237420873410705365475602225963403159047140078336849201737879753171084227583574959910440617781591089300454744259796856410822610893703038015796843138314078880340714032884912235417829194116599091718666901301680860338253225840243651291615104039060097353472111063716396773676551369317609453637498561442489704059477237282068602148745932695697403634140306040509524583063148266161848936339906389596910729548601726782282584375818750976080323909061019892900878377495159083552270071453161007378985429089989748491513568712317669463568089916404552287863623149742206580112882420372473788590826740269124089085714512271332717613972241401004954532615554297893205096741856768279718860480434411324123136107941273994988511018712148771905273422493881342398497632485994601679462686373198357342880528819931438577547045990926705070454209515590392464786177853456112811610272578207633759013522129468249712992482798673277401844607673211455348239362102823683407824784547326265980995303901896892152302192910017152956785088457638843286766241942065057732337574909992859892019644399718832607577084349815418042614885631839288457392601009080067621721502819823415743174665702938786131693814446850134925582582119233366863073810843439485976135357683034405911392254445317171578865906496459189987498502030261126845172120157027441589155261306374811136863238332804449137632336702526111984979447686150279187486567131972608385110884969301770462211646713417102645991302086464652395942051842917788515298043105066899885727319954041289621225848583575365789666420063430281449523993409644457790104799543693805077954698401030700887787077163846447013359041063727017896529902218965198121596600671768625354663536864568303641746810634423556099502002712745798627972398687347900998362370846674956907616105579934619390522097508801986730183505460245239610060525945723612007306478599629997571462968855593064581994444147452868788332274305765540467499795525229298115866031494348539486092276139517093197553915078500348976035711925837878763743023805247201540744619044516683053832117590381276029764595980423953149885599098307351263533287564177676710079369890742924305138315689005398655167334128312173353308248460923679367943894106618101406982877367140793324480671118503846871600709798379796563749674908426013646046808346929021944402856588988815218542532970909625358755852897337518814678030065516802091962835096064987191604111134518820873703700044896024991059585813323988147344260488426425657358142389320445033265873027144598175143874218532756181456819959737517355753039374670597035698848836211220402611944165368619957277764991317406016116665612767069873218285254664962762441094738879159969494294640663785970574885994044714528432826093189062511093605616488400823975698718160534983890829565971704115944745939842398847355130232960318596995222685901783623381161482572649215669888901432154503551187557614721599166301294632417731509251136885592822330539982400970895775996354039464836571939494852249655313852104931021064023623402413608813325300004683408088705396503076090072637697773197108600672896303755086976473219601014439431370044268896570741992101739403809637906624733419846583498577438761382193294741534449949594649680969073414160455097185194973110359083088596737216064757280912989191379610851277143238555374051692475085328392178475952037652285443693299988225545687564895771915493336991082006018861914973922233426523307298960686905916837549356710877589850143624353284321381748104224657124460778240672896144301076053509567278777363507732545250394299428272673230471115102544033575968720412315799499383851817579111007374825066816027998966549930999365404036103774860684634221854770574405398886368338978860370049674343920500826231947801698075106044256878598632843943857253716930929264959300657975243565613057368450528645672063234970455413320266244941633716660953344990224380528506245018632942935977699345700323287230132098113850250359325646433027749826994430049652240453395819591320245077155027663279585657057262043920156686722399510616648822254265379779904195532066544050275731339627353848750659714945359056330131859175462795164310934446529914255087382940403029076393322203540017981671909806217666409004232024942424167593435553288550404716552346367055813073855412889447013383635357902886551331537495829053802078701851321265035183136022197940189682160600938786850274553155837089509712587620043785617221936698510951990798874545688015755443135443930188734458483433094246635814468693196536638196383918649586706142559011779353949300781287317191871127309207339323030653476925014331824668501111704551198647197980929925300518005030369857152263905111967683183079229602219175200781042727527240015536961064457472085961910664155662020773786815300591871954829442049585587457024473299445402770172733631618141329258795007050207449649262093416347291877860377828271613111457812307843476498859972669164891434505519113838303485817241058277907390775010721568142899953139852352476886004659625535836605748763321018479676857658161375916897241872177691638175983540631746625384836516058000196790596210806212127302974412366942451549146215660900798224569199609720577619587265139674643304240964774650241859339891765810676988640169986252053743745098295995501731165445806732356593590899437261596654612595406472785043265698732936684312729080696505188768883452088611447223968411948903821297476710062878391113554478212837840527425671885453663654956405741181222922210277516086133173106411823110075020980985530958820035963938949735872058697296318848586895596129655725689581955397774145825429141534061891627172542191778956615808227880339759787509715140212403764378340634002546833243905976620596282125231483055410352379362446878682685813908244169174194064326813378586566090023246176698665962537329862140067479978395282514338683362957271094733382825312241927571478206660876685216358004790447237376528305605798313578891744255684041778356055445140100889027245981960615390060071334320977930521980824634840252544827988433486797296250627146962694906536294936292300517931916782313152297645201908218578399067602155617138505240700826493008749105246234263383375537284549683304168470025165369020450056180692527503559913955198380351056166493363558442918602824724145174496141002412721919565375481631533855395754996777115623810098856862911561946648760574114012558854671024064190401222386925954660442953625906685919224872413452264074870089091711347387683246709785967877522571173524757355014046686667863535406816330162133900549287985259890150111031619244834233909216422941220334421474970421283450824518245567259044596131341582607982867614207400933637551966466944575197490669006996331699768793020299722971589293040529912850195228154380203403716923579374168580876517566071475103598705808046415348629594120625823798566988057866463485318523147124921106371859564370194945197378329018755215135123858614966557568477047008696676699774741178349112380938231488111744499681536425268839128046392342467630293475220616996041797290152956293703365700610148918327585382106873087614472821273495106626459099233949064762064853474704294133743732873948170048700268108006606259588902852684115419282009543134557129817015181644464357690420007681498836846134895300275116965479021960819106175557925771159115573357600356329871718790686578913403647627356490933098144881019613522047153434098574387599086072330599859222630339979375662433888539015269035850422599020173488444598711766369177714187012523804726550889018256439136527388271080303838006753963948173466845540348964271920410617594377877324531608750418557685115458799854150900314685867917680098352803234839321398188978409874483182782821542995695716283994864355911097329295046568890393795952894665911846691978880607813753057695694654284640801040139266883137090507494517729033019272395338617383210845287931382634612565763912915929556733022283029114425899102654481847205930221727687689923063902210979869467717080981369147856740055115015183681535908671605486056656564896892854535692646827107547974286897273783406853641447965756544179652063454363457878235147115644923467477237189428300002125807224765533949417066379050542414467281404712017880703791365763694404409765257473674654570965922864671342729375183847542371061650934814090556147650544154759770396934976150703596184116416511144228525222119212587140059982435053662843757715231628558180288196241275531202596916822944333450049836148305826680145696619587391231024647304306917662578125534327008903397282756280335356594104309655319705459155847144821083450685079862323189819949673377783535945239382764821308449871882469914065894091119673525031394467796494990593886518273516451709822826215685973799975211757199673431185361332754546421432577921749478056426638863911757443860560578028200715130877817739071730203314273840879924133310882200405458105594855215132505907704721890460684187749278979455396091604014237933155830069597133924235802325267592314555074731949210447258358310932894360651801385754439272734654412970757150845287114259771923955198909071564445588940894939023430270297313572822120497250791365538420631228607237165547805740390005688834097178351698974553469746346507280777370026762531772472903285894352718448585117784321588221535068496807638328193610873344935073857662039345986455521586623129617324636521339269487899774678205553700509220102409254672524317871338749818643850920104527907660392541901089431092123548359970450143480284278674651926768050336720709990522011650354002064876012688253707461938954594924896135557756849058906680385930699439048079199746982393998467187271667219457708479412645266642284543305786301555276410920296312700503780958867144708010265394150997868351647168037224735328674902852855542242532907946693455721147242696557838424026460575009123653947880299684189127336095928311230086301313066367192140653538678869393316873739105142086091083755792191993671197243736510083180380055306145262987272817154587208828168214495882041374277108679195430351005272536533132203550254279461925676511471277265738698023750957233619003904561650744263797494524753268537979328925641073470575142391371946897964945911581952982411044101531267170206194604988324297865791529858341334101292194085219604410187183204897569989997380489863176087113643503281024157520775929109199302133787100088648765841633762436036264597876055918909027099260654271022461041499676170768784466094165827466578108038323194091988192093307193958990951516545994433344781156535464606822040231951125696239029459962390543888503767988469149979399521211819270320300180006634067091940477690271549222640857931780938462298367577762595020690422084858017525490187324502859883636082180189908089530648888808027141183900370964207321242432113881500962095505380730250911546092296431081670542337934891741541435864773476690534423074329171680012948752861422665890448542371788051820384649043533739996688028838162995405762581122182958065045100541692644636802620939119207042018583437006212307478460063153285811850143985740550014328749008478117604683304852577459858301965429667278113138652624459892510337537058095730135922188720853480553737304260885123281097398585512441904468149811579299939031192709002331383184771257988055947199260497501651470878891515201147909570787184474936415002132169989253550193553906394534813585835932523661182444893361354765202834783256404758586745617712432498538199179282021037379617753255035771824467907221022834720812766649148917309868348338594650980785604315096880210925119985773591502155248305678177703479140018862581268824953186694493046708362173115733662224664095710461797743498410521772974062671788421688310643606092799047031508181661211583089131840355120265084390468772092592562308150313826502182611707343980339980161351832901648441218226819144449672118774793564219072027160690499254030076636886509592731900715453029262817041173567696436115534401673938985277533262916511078064264914891152939592501998761446460547567884263856474749300423852492081841292089794083274573208405452421657728244664584385072450268142289727423521298952478806953245616196102172593438202153900356408845071477566500769575078961797417820431564928195121533711789299219269621185851845415825836605367639082194432020550228379561096993937191028210704533846040000896444297881733692685710823819703610765972483501556979912360590044241570310541200314371859031699183789486796817315387426559805301654729276825654060136905286475056789823822497336855394036405801934096088999155178255887023239626838538425623994658678401657435676325178325960487290964741651389097221444336819332305245872426542536452280312391259091459458177026927806206376760044543882109079388776558252802162840581059672164157255165038818172907759852988981856304554237837489681628496309748633097145844827232649191836615047481650188041495519595744028112579296724620350150409353834698425327822295092763944343745362144159733906593580063126876292115355621393557645078869449249374250964441117196582848569143643741587348847771830291900558456172399245618874004258295687156432860898143530680620935880488293882671929651909539943990184042536640251288235542438598686190655686431658442313792572811488758048849654711448919257959022897347776944138825465829131092356733723336828798489372549324058460826701880642490580802166786005695379540836622529189512091971557633575279719731484921541140787397944397616988502332726052879622726185098613809279982873428300360852858799800031492717218873148115326924379927165470086874191934901893233026610235663399904579576295272291466622565414394811342831175462360387729171821079765453788555980446596980694119338668709241765192302684635361452308582922876155460010130398414878833693059944151933652775923559385132761105401909076002208344546619301439339436498169513841542321720493307061953043092135095213568375243352700304529183251484816303418765401128132626194108026358229880264470081654026692694791426749988150620748537159739585876592703054549170367508621130784750261721606393111729175548315581284474400066119397241820783288765166963179012767044358574387531168873825790437120176981213621008116927228274231796565132197895386570761799352942118288127514599446722058457303851137374090283662964804882690770065416246725179398373531209056055575224546234501273379755242384321410368972331718368040180814944828238521730344356074122462139931081562205792917151290543322815754257357930687831494450478477664672340437274504938110791752551587604002475219648517228004555601410546259517938200328870926026142596565989221597262408115909034103390981293828139597841952299592774904757436308716714740348278882377476873671057746168341153073519053238003766564265138017538431415767496667776296554437354004387007417577780326813119764924157107072264777177704837489511620651630430795159638925158410615325700303692920496651237108871681394843799682224335091898560406567669594563127107306345941209154576050784598251958077696554048088848439307289542762191509191993206143173251123654039844760052511357824375792312146651332409275467156908358141348584817342524311663790267908100410448195917310994906836053704210666997676625801145751059484436265611115901088343573514627846948794206512218553868806051601266400669064783006495842627489476931680479092713505714457784312125070058862900903144581282837964136854112368113989252267907587015826955258371347374704268735323978041785384779131506089347512703284680680714926772382864774834022033310770605533177404240783690263016432052804621839191748560766396874575376472852228068786456820168643216883674338065089276212579205522813480151861871965003151976520278140169916884540924512219157468983762419336170595756559916579135789329288668503540955695681344328458925797576093372497796167274216439032486297689478728098309120098075306951052130323782329384765783703238530147647295536654216353277711872747543881270326480692341195851782818268764204392532867100496407079207364714934612540678547649580810603698809834291802617656630595260614974148863422436563860965311894091957685457967699878160966006304291806045615718176041906447082083443099316538381314054942896383665720428732063436590652740985805710580381393449865197281457689287048249171067854050959477276033619582940663727091701750136165270662771018486048286330070850606964371442346481215862204073826063958241053628288839971563582360048564514103722492893822069968961837242625180973111746200329968973490131202281191674389437070093707093225697670357164790506306462493545166293923751035049821063425457774652161101721875185429065290703305496436839323552246237245770029864045689269055450138756402869195840747120442552728257788437090688660142499477664596248290981215514387226150216688079975661963207994219736848991101378560985248578601316978639410366904485037177380460465325973697101041470287386792062791042366736254971403192659184668082986927875510160744622284944681423539488492756481837622839089350636843912674354068977213060489276635602226474770780349776367523208632997934681274036324049585029284916203829142593415767141832933972525310448449895536815850817496229711731728681935279313977936485543784967023824623192454458190378057830966694985813294541571717450368527558285418967156457774244288432628097604329193759570277332133482105174154209363971561225199011010869387786965151802451156802522153111209033509484125501513056607211409887006828854044752615102322665752021990902967164603600734739121100707625756928682090272012201005031014460668257295074045238155839811626717087547893017070800091146252993969828704234885939852037540148914471068599809588304171831702288282714751736067333922430796878146504445437346692792914431968746510352435270625413294768399500487148208267837463721109209721521041368422927365550710930173364632126789686160095562669123572386271922101630691080550198055441345840602710117924403951321897042952011352047051454733019169425372447597679983180977217758348868999126165155514774417087126982663008719551379956831343786396376423785440893385577551350691659444455057286892613518215280174883887612002984046418668193022369920281175079350239597089422173794553191453255232092555641996581956549032337658422758914162699143730002069681130599845559342205644900988427757029542446238606346339319877150985377200268679364651566829077682071063843111137003166418942937416378739442622068650467875401935456025114851318294551404663109290373285112690419024773336947214192870922981747835245104804409613787998925695332052984507951390214869227435796833962380250962497771069409548973817383430481625944271430306072084482239314744701454530672305554015004338116150287769322058899078407148789928800167829980818253462420762792224173311821443437112183097750167272930673284233085471425503182467456653681490017893706608515827953977009347736804819160039015894287512962599086659185777132960913846705542454706049411636992832045288257593950984294850442036119368585412373879971403682350565088718085394851968213899907785606010589417253237043437163160645592979172584175256446794087005804503182527741102874084154233492103316863494682850028631091735354181344289686001478752998837813494736079530956932164473992570432733021250080931557132725819015390969478913221486827119959936228722714279041076973907761802379010816685251036426185920671508108794216519796786872581436614979519609579866278268378222300283091321820699044973360696543830732122466713130780628890446837718742969339799535099496623192041689498266239500112487460449981108737535866643197887769782152597690396786666517309089436412211959744680933119433296520346256534753314990666243053489512611892157133405868718082237239365726910679458978595470305046307335828647759925242086479047890576440763027421715111543871248858884927407241483423282223474079454805656099180180371502695809728921904265088476399529207148998623544934752043928377413841256703257719874826353217817442068003416726722312672699631513894463432182746696271800195061160863297858871394239621773793374926527940023243904756918664036579579011276117461935162974950833442818108873720154460522169832566226847705331304561196377626370095168274190845786638725313500969805323330324493964352914926378741684173857217905941562521344784431127753701059723471156567624222519043772535053513882646358371760332371015759561406004988834665761856983057221609862925522862689039944707846031051337797738593383729159115464274326567251955813283496000325163316499384144280770279385972589412371288938080487511684203081225002588706079537150695374793615209663488282927103694015265599877762486864785588040455158162248582290116051665856315664335436668848840925426646569807569973679527134369399685201406745770759778224837670997018809289591704069105853736677318589716696577981879722573100205003265327205853074506340433658475080768565053540334702759080141776211308226148108567523779002940630264822796960134957351520267259640733940983155770245682934950662081916456237553333449390280647170331854063010099384266243013017023125758784550613149525185717602161315592649291362626430367222651560259129708021614397689599372111674268678619036179328947301711950141943835201627759190638568002977787650981232345746257796179295683985891152226831182419550307302705485743368636822042325945101629740979177132579375370883514834699118669463315405800520850027612884721399593905215376943468783692355930127035182894574094022436826145470616800636940449777504624500172909100195326735479229062461204852393859400069730689708480586319404782193234735533243835838902709015709686169601230446941640042857318491973073517876976467521661985390489332299788335312805274874739635163304158856688609076471243682569508163676716574762686598796363458184543235277538426519665885627367220772139147775270510769891671133868400280209354832989402874205239801035537676003347726889661304702743932311495526894135877863667153199019463064127972360016196961317770472529606717236504237822889570264346568694061433900394519206005522418842678294586952323396366651664689771798529992981128692314891542824892350192728864146771983284998964145303720038147972009750534638355661503647406819308019173319640540639749097374685586159614300868347608942166289440934728025075517591000814255231919299161075597887189127047781287604482663647989313236708062290190263894827388380401918807501793588801402967547492793154457421870284331914294444425474255526844667279100315431024249742676799783728614490040868575532339389986045832638165597404554495707766647783241154913509865329842133216147033851381631382556010842909223485534598258579091058194379804820069927700800067244268730485664465622145007167229122200561808650673469184946647869673552379580319050688468572690393097722273530448776431276379685287020474986328487113780316617344286626891586416606124569644730025299683087696425772092853762536691771304794956290171965922902414421475356753828582236857422860557253911596286275468197446388739336952139690324937255273315827325434100723599992176393689596707420606031536802791372681258422673242491702830433113381648640043423926496269654099710906515719615264724320864696063602528444080799908568202024683170432783641016685161088622501511890404039037502891067852490824399006773107011369304184816871175019501261412969515853511072355259676389341140156307692910361197790556604082396492984943979787365484886754088943439117439245395754167770278589101056066638979138958410154067026779689277000943196532114518191034592236440795414662279950642954968395818048686483550425002567746206706161502826638905946301489932227124811600238317038982392930366006068625758885585043982472947245565842806191589791742334763348712570551816309048034357214833910087161554693565874937979930797716516525585224273563526719267943055738278442302896920817227206716106480605158066843390866630483578716747334397998707223973664049461349667335434377686774524506652977904274672451316817624043789372757092992991636175808542422834781088944285035373815276198486028897300561217224072874529611415721454667085218787266494543196350235754965429755569789775925192854810062192216001593018208912716991879835189798611162162878651821541116997094949300255909722249466785784384362907443702852473905065059040294492599692678339730330164839226528208992897834238638198821192938503721533976932542227960500334957609953543852990150912041914713172869209720887905993313657908204944452981819788598194078040541665231231708827779534035705296067135186083315385042059871775154707983869440230236991735583021727237279144897372296074687482856310234163574400778355496187087890547555313193160349606135527097983363587751647811337094000324899170836370953877309074408526906030101525585488199232067877927179411386707876179460445012250044530266066260034096750319796824192513601776105414132925236519806771838671741640052855872182881720819477315913805063905202040645494877438952941711755007135493665929114514148985593723722133775593797363497128772939270162974052054717848386529788978561661636327753559058461952116044218337460467397821918582211260267844875730714985203631293509985093814212737972557395502506982241683491987387265315477352152888824403789802210163971003894266053673565416537778847043817551316974809610470939150375300172891056944902116958581674066154588225611691441657651227624214935657065310014994872164893621060737029311252509966310830095704545250219549627844699451303328575532005279370361447642804773443295210969859908981605172630452855131125816333330944599912779917397656122355679939874826466787188513708096556686620979564649578783546641006644321673745648824684044082908612530562707068059253021546084903971941126888457536771972856441333725105393764173572853356694950087750984537922431296948576827718993535614466954166697877231615776056431229386159009036254811375882872441027497175105271709923979773952469916788926035604934716106577078445372735357408777611783764438836622205405528197150150823276554494370034680989500605404367327003477617654335891471567256074483223981508970599317283785564600105027303534770445962601336672496116237749557268238955446878301620627645508074499571743780350301143209732738860742527327097068284863158492312318577915584877587130368798190649111586493930613951319848851861649810286257128116467676408961987913721101200913322220926140238773827045270438027317353836005280579184973696923782541219944534890531489949172053107529468411752138385368814055301043846491683074525133314447472854421734570318042759893415780307605580429188134733471632948694686828181458189705939189962127761234826894535187652205129575726973976166140351352629532955838148141207973098405988971809218405471788539328836273174806180879252698423260876422703403399790057926835820509039612533847921754593609286375359406612893779446156292382066560937795757813416668128404557359671620527883839906665177972122855791315495335940621366545495813653089053888335175232466056513756616000229209940624811371460945575832041718918510442812945131944269777240161936073211396939178898243900488479382189522309766290923692883274139517726782989207597103609246131839813682618688566151982780141826300176753156047350627924971408563455046159723126510694772363052429571195653798383127643730957948437622717937448943929710646329438593841740639601444690717213373528133524158831017433646368682698348488348760164183318298062018182062622066368389092545739455778579118985971034777539770012681253582967171777678058081018484043572680564958816918164289238862101397440238881475457285978078926252248425882349048361002777650987629776352657713153322781605196528768367526377127673171595300006882355770046820547253521615727977160026570641493607312596287302052730219438256087472401388452078297268768544732501988783438409889337209216501427229529510338094816464922800992119794260132854254529088676055495459209892368967663016129990172722975722140007859410130333866632138140468011699340324983260223851722826647890424615773934729364648446699875510172403997156252855792270870756019273476354800568456016591235351672250132314559134797951711167908491267171713778690040309655116750503316688276531721050042523319382211477705715553419166945477560520976572073404378205251100328096121769095263869826504547706245682517754662252354637789212493999700907723302720844366683977819742483563770870994718981057059986600320553425637193544317666139482974006135171192279396153835045033916251578060348540268988945757629404099322367340931377126519247467845801947814808217935159686552444268532124516239442524759199965224998889090798454790134439209712693101764821109807078652483633207690398053560822369098331501365602534564205517895343003819085609399221497882997438938506268774784859755781078072340896674581311798384687831979196745256125344806233761617491405907141906729938596314287844353992850638349907621054503492184970672576424484779707439739220062901979647180172355516413978939347761672409687103784728963498102556859738391623557737168474555544329741792652843676397096881951823461291862117918205552153037994423082688717372542874986738752437487869282388463338838649488030826379536944417525990288939552295612021089950347014472008841458397159581491956075645734905759013421616478937306088731044384474204960905466616112078719203526551440617379390887461825952844438075166330189746320444367447829339267967579170067663411125958049535746837163992654666365087787538881926553393217063689219278520459364414170587447642513668281097346530613723061598448067255732838243437334479797265577532023392452302237887774316558766087982340770909166164163041385168359824934142936987376724450857436322538015785598388652508734899846520035484916148423686897548511197942230194094145069287637494915209481218239047019603396592656134322074015705624919831090094254831242781476165197808348968072162639102599718262756713023973172345681742173415887746913132666669266897802042440006572277171134301054146803248590146836537798397395064597541102443543101232915324163942340023871420650145451862537976843868483419232875114752505650069270544810520508294085376623723540545526301825887259669757927303076771407856710961646534024161462440605572140004531158163410688553349170864626232660176664151210245327148512640048891044650877549403714401975110760581109872161870811174222135529836900512826741791112179258631637637504240228938472922292868569642497729060509224807471862428649002208780640267990542205141842934605747449411225842523679150588189160825310210633168599759991382790548265138045178787901537005765160786695039957138523798972429124106384963277799781485146311717780220077793530766807717501968882748459608863176359276649761126467726713159416424636458781472118602886366751852856827449646975909720204218605901004208086728805873658741576765866807261270810942240361153429327654665589432440747704340174836320487039861838542822464422825205924984507398879589314197082869251037599933502746478128083521950683009599258542469499151524737501992193150062056254932518033828977301679383798883167484964392553522816736965392233003244277851378091333421909233258371082047135555302710523757688711721324309336184387988414510592063764598362015368710113683574964734079684601472551332616040347989767428363335543185694199452323572937968901089082719353492456243844233466133731924515111964107370311536361018666408415054439818218702958038601388393414589151083006158131444216947450542221523920695479335444290919544754392598493855969513128818059981195587788966747726958095161366232577000645865461662631957541658857966124099902155025561475628415934809392558990056026099133736287067873080483418032358355695378002493424045340617382006556520866394710804959060387101618685875027105943815954128979313187406000523426461737887948909455841329171272720530647236009011787847355342812920023034153471556264875117941524705541378572856811846766015902700069002228375386786398803195939169029866397649885118929664545469433952554667628852325024187711633930750302685272516302623128899235339419415175600310811886466346605612989220833414459939976487753313649475996157899272416242601854191481679692118097168746009877198611515955923903494633275969999708191021216022666574767825513194541050677320724091789044045676134818143921231236003531746057246117918787708433100625815647079475111412804142743853841846446967493920975261701688307620967728445546368088582596367692755442725979171946224953261075017329676852444910915549525860190823445984544706424595865389703215982811937052496287559402541892754667856788374650141819972353665791996981334644500143291790676121035788292803349336717625973865397088712496464440794327887018355481759801144948818210240942947776393905152627575077925130912909846242466239758966498981512098653179140381345696950004080263990419108018954730132637786751425016244193478090353195883459432583929212218773214468415049366242049630658192559359949838055579698850051669574920031293547931625919565258179714693313109731027484079778122220628496742418615564011502879866298035835799690327205467614801801260752151976890931947999393312378115944237114365186759841184397609035992088770914859696936943270697373446072411038609607441349749979210445897597362894402342063854229784977445222944848944394974628534365511023736073496476630737332764197152471050406199628825625737538681545181517136975382079361826235489555443424395957582320949481988378643487004970601507153473782058195440448058282017138226069075687042374125411986553110247331437061204715755330907631156424403975468205132852756855972778931566635374625210538698041728169169912555349396563843100981182103515352464935778322052287670318373135090772202393592373476678400083726390852213055462358348922946753104476410040880798762991940862184571315309836118966893585204099677686997355398271013219954739392289839752333802465824303799676030588101373270227562733647677773815333756100103859430864904098474332236209485560297388872998018660674751030145522282028270089945656633162883333736582926696156613814035506626120299693432291530366281984407778364650396233686200210822753085805422015172736009656788757422384355074910539934677792748920199168241229353398882781415612946746641166757680842870588057819214030448826768570530473383763278932459214117214970337388714434079604096817659867947029943406265284511445108943523295513589715221816855895596034712549188788144170397411807092951389557650011559108164758924296668909202196524792673390751694086652569243285877534372700478746605686017649826108271950230429408954254190435710957463451167426233961118351020888712010233937873924120133985231331555067257978865407508542553612012269290139076324875334344663770185757407275199488928426003132899046098072130610807207642035577083164104578340883531835975682077081932235015468872173773459053401020582394464993839220353513461929442714693535607760667223367046517552548610150529998123330059924285823283063315989997694745486864043483017485526559777297228011868452704190745626915419040212430252774641052678020859751468547727323308587050404577993587292752692461452608462695267867047074199805894220447291765471725938453478935845003848529461778352496457615416986052262165591288250393651274229297936132172021888624376008431766013050633307728754246706091591051949074049812718200520827071141882169637014201327943280214792597560395254975521575364279723929409045051641035667785969492857710715780703208384849603763194359246355998346545121887339634856411548700049124205784141233120413368456189683100277536643721043186723937691863067655319264509874053203757406226080247346566221572228521306904991020173829664694702349931758459625501917266119367321728849093849584998421762227833706238291355064337488598202176290415906459053850926801007701114445552524160945082333098570145477701663399781189959824520343070652120943439036169650734842441865146229074204414447394906295402401129070775057344129647275109892536634391432220269839014740187280456690926966976168202342836082893858794884760175570397074544963465566034772645291829274665076702282122537454137325103550109244107312742026065837026270165691856278775720569507595971375446542769867342028894764428302657260450015109822790858673468156367220099861112444886346223680985024770090496000334313773494215897179878760427181454591700168200413651299541018671977098189667453663850754130683141251301965655172511240572461829214928262373974292963660478261839705087543895964990005960288198433343607829070827737309911068003821544415869959284785908185404190241208694602059173149923449538348170279486648898851129883842709809112197983921936554359860949732547553640256584208982311680658146909716417552062325367737679247776430364959813527118259449030567722811035516399012446234157065826591535357850875746322203125466112978297894300714411607725854226664958572199940232444210551746336102576706599418426619819833093548722134984878867288143724617156900599405163739161809012531884072775407497015980739388717858579362046474641252237349851389761924115560170867880869891441948995928269147912043086770832550991411259682158713284828730440113554881833769931466132836950898975546220920814066708464046875632883001378373622016572034551089085795740020752254110426945757294506623671832282477833537061928521837639811912775994031106101534468403770250524331832662125370925547432805943082387237704245036399854216641438202037161887966364229694613432779547135184434823204425196760431405047421434241361203460708970558269711148723572806725549769464378418611679938350912167685331867957806859600020836924835364844817738343918082152345158088496567749446496960278478837518661350041219901018414169788454308480576433825268708131495989002330987729171260694663548362542354129707615863072986336197427706238544076658738018624762683597518917037198089298315467985772335142417120562378448927631150632736887525682630655445582953870001115610479820374257311903359295848110274433887867134955094167813998804796144053980857108224976252396947084977238101410892635971659336856894658196873363003013876693057258371957285399329292355976431966435076650519279961781721404672893032559554906728815010232599523205369818166532813588898865838084872720864049733269872314529490951548740907465635570737582666845887513295454790338184388225035140251898924925553460307564804588114704292511152335738784618305926408783283619533164025977064282101056329223150124197274255036566697574389957072800324359150989184939583852544709763273709416943619233676627523353409062249930047401997082432937217573453136136654294561691767366168144363371545817360254413337536198116859065782448762568723538832213428850709039416724918655183624155849984938648327024826808081115186974016588259024313718363382563712172699459258764770101492467365791682060818358321796151094936003103069838258704671533300348713078489084122344824304084478223890113653245564527732113070379833491950442419955827841271698769553863108591074026828310888578230393386155862892190013674476766851212598930712684236744290195188737550181067149431339306908633162464501621791375648700594656370398884536231444155868297152989178958879394800003363591912150662831461528593750154781512758047678222501659418427125683943169908513255257000925706541732380295189342114626503285958521710792402233008686817037780412544515680428226572019575262499798394257719560742681789339346487315214816714776880401730976310260884721836558806592698306217506548072394288987968277777768980472215953532196954306642591038523055228064763334559245118476502620601143267770709507447466960673794069010191261844582828852255905346640714481428479741446629692656973959722618504822925444950872631616878370779241036181655597915558403249874142470411499838086415478873698303991310588712173560313862906719098434676153411770658286962214708717603820952895839790863518504986744528201534355589628441860042355371644977058572754235674421004653566793658365651707181794128685710996328371187669279450206537473458453307287785304940338402210069179631572314633876382841699009155086937444295486630251457530893075621524478286736381165778930523145622997040318731607824744084626674498857069923817834649353457074658331904848559031817051540258509810732892771748726562037181145393767179223349608537542427542029187144247581464570262445310276649678170501924209383471992923387641507330736706083629879704580763879412546190438638918892575448437444799460460897600469702416417646462702527562937518110284607072314187111533708864329422270123989944758326469030992858416523704129114196393179656091224943049785568398948253443876162319884974685929430096441781908551542604096291305670645501809127754172482059500941261355836961894409785243325808353138023062205608257268488148570507029851454175205310303176781177594586881470186910862129172188970313338220851964975650173013910078386589865541623599657922553321893842723146275090615254742736814964629164729835475128852700492326648814220043187104854499409818198484556360773879109027063986427848946824738864906745449316117342699425520596499813677662729911933259515150630204343570977054159279135026344444698150707775142962670827972255804596443704118496130299095696057224536314855898162932425460519944658349341450268213706330712654196525051342164123479149529005553571244713169029611630141196479030465946481465428644923351448151314536367773295325678309328147000451578951670776823557838825350557032346887487129126317761195200133167528689959344872863120111675826570784877698060827628831744144451135373960075656753315005408455684417812894673364167490544466539548051732728448052841915812944217019186464299644027507684458050551161145933379505779531815397816027839521356919986711529066473094092959282478120616603252237098171943664564079393562947483283017369411750457628663286322199317662592060546485545870744392994800324232144653262102680692135185537829444606031174092601719153569597675635711319244217978981012055360312589460898262878778265367383792445857024257998069312348949072835437016141082410060119954791111869675817931848601775828806734388182859005156905930396626246066539408224266566622348009866042667902309841844326564640806048593593320427271927664720194036917385619034049940972515850274664490466536721753113155367888661973909444449785853778720115131206354162751904564875649249880931436786736707466647527645514131368739582330286181769120996287317012526805316563515759940695007652094318026651607621696226140834680258305302061933193936629343268605694096330716191302240827365841829528142034440030871135766459738788393145826601345629784938772124927522731851382216784476074979868002676637736303583386476442554149691972710784537615006287371598845673954177387782418042035426954853898068796173767911929492368340235145248117075295367318278807786149256660766349657700737253349461658133507776119272216228188126730464141076466842357235043264497853796342669310278078014431233745778214360570250526650927860234438832524749687857420809891281201671407182338421026712890875528220179294958865396822802691748261396223198821084603245478833162789276145462915384512849592017827916310602399639885907834644550805153972347027740419206329649125754087650328260069844878843244706081397540417684496203854409068068328091249684565597087919578987825526546580398004085148172573242668463723776458059290775800275616391823676442070330420578611536321137499928609155744850671711293538340529905363731965795206636319423134493029274420218403804975972863739964324804777309818129842183045831839927159191400110560071396615119685356198173334184772447430565879997581211082638356192961914297922720745378221833606444076086311699880208836016655682056056251610123752690545127234749999042757013909490563306442023845390381948250470809300860623211220330467368825762347616262534868183259951497424827595141119538531370903867958017410111177180637132645128445924235735439492664844728912451504950129415877587409077812413983998178009916377607817131960544960933217659855420425654647677350403624085249869241536261574942801565950176509033847125908480392074804725612339913958159271554375701603321361868548363643900089152302351871633057790407208353816417630658553850904943841354889905727160429509323993863883994907344517932799419028128503842793679692917589421323609948407528587308182329952316029527650954842683754826961168415308898147654268094841692135390644774663384314363724311124216206467978566020173639702805635123227117320880001932377913392198326163981791916372717496006925538495877755159362446587198647173892450852649480222043622670674763100302016007806770005605533961748621192431409421840850946581381160420344591296229684645406511199530778277980044812422367813234218936257316151229994033392292864034312339967878719256876526906351162461707539509051484088077601092581960348858457857669525155279496644573784058767442522450160684376002594283243174053419257470774905676855528777381326243930502015161313538928656260107171660596415059501175141060844659955805518510606697940904825521461813258280049445161447546279604552020552264611897928241518680514658872246345761387447924543667716812523204978256188341233770799961666068768092392416463673468423262032978471826313575842536098979727754967132168735983671504543606069302086798848978356951973950728393125891932059292167616882157823251987745812319373905865823539581591985244670951055603006240972630189881566920619907985076959148697518286492560984648487406340672034599230496288001085596496441730619645914534286691951353156082544304056857354782984222016812767961749677972764628080869717953101858068805087212361199308729970872498981730935813387073505215736807729858529502855258062636669130486849028885332864977982893772397050935713380120310166546187758890729953700972639037080783999804499659965229527621224442589394194133624091117661262568397529369839236408862251962630651068520296480564413838915626083109838368349466425969658376860896980612992541253352693824797152834682344007043215905573689009071171433544873676356415925387142952567372876905721163940121223592663158080473577683468206021355409266475553496744050391069437545450523279900089921633602864066864327136321739405321681463141269363733361209744154705665510648502220506173044148689914038835402630514255104927879506344833730249300368860307858513454996945328454861609737240605162419338585384872451437142468299677747577133311064283018502672190587848878993558469616528362000560783379475841167554443713664173471180414525897017686427241129345841021362842576702041203113215550844400800011884352086289894538583329032787590795388211870117131747485398468886937613961756683706157798142097960549270459816589989401814928915681680586567419313325310952666568227855631848736430559446040024611100673346993109633147813884451783977168368894021806276179406647312540286522103726072491344683840026785808635713408525766872401371648351202657369066778007550145632134334677261092048705756616801459016016016573643534018291981976011647985306518174043630084882092110347589122368929461439360111628323983324444293806381743500672209936505136280841784310573237664426062385658611832447019097577675590610433175287900697139216902017532196075966208526968630640636384934220781005172321502649948983396892215351025066812258297347283498061239198463528470329273411653975462242874922642772452371809903250719406017057681608553843934019756498156805488834785211700753266106191203543238776872740521831951199784405702480758903513021600860626304690597209212051647626759125453971618587619445152390608166222887816026881632823081823666505300028951490350568276872341058457186349543917611176336998972642549757264934040814637154360610378045846048296791649215083261690329989678907239051254587690537132969788717843194043344512876884562440331775514337096080371938012637509264341745462732633092627888689552840410340602893978767255660355555379457352121610669664116365535842879801378540916435022543155647190833771051447611124908599568507327632595943960214903085252662545948378259163810202125019426645999373025698486236416420963138226326004065393423718750516403589658195000182322050579706694825808928681937544169249876661087443625929902862967442119283266636166204168458168749270689982054315306465007349610744756116181397017262512306844624133516891367635446140722142042888629459624723883534752053605851884815460959124154395110648489160288124339920466314378172839340556790984833714893673813664621294542096231124188698874068469461946682672691321119501425320367952956582249991218327330312120136593574937457676212705393995183868305536307626520558394142044189046227471214641587992686538625575579668857780916354897756200446880378711880738228516729299008746202830170745949920350834233412400480363116511212813031820897090428293309675636215944054519310571149580144657037024959402315363932708172789443271137340860942224040564509536490439644345206714977686899845155731920371433171949308603178674373377403281410310800709060926971159513375082752669135930222612737531813379652685229204574559703876134822921079754316799684134558406403579221206879699861451652074693903559625559864521749132361983207068099166086986976526823998582612455318599239456357329699784907709740194811892884881016267960377444995416155370404130372376533205495332622595602381559365830577886446490381335445091489322242218265228825121882438210374314360131679886848463381411366472630004127395189377514501623653716430666470680657458285919375459102747325252239658427570967635046378915362909199308439085631157693926888352070580581985250733059233281288713889504866554583676144483128867922271178032436960088190707789632169950023868095930475999793102514693259871132320359818937136974188532676999033840975992864625529325745814587019144796773836104457242672361600596088703575439372029907350647115427142891100895190759532878123036998748660127701164045897463705690320768505182392636121613692816239463736623887688601777550575076517544781169365782439543110458348440174349674132994036318897654156426015712433362711895356991391068931388402101185612267468438510162507071188483220922633731877659558269933456353181273927017889701475433667174770762557594875175428300213446498444455845591103122131843859504154496925682221707770996001887619160843518106418084079325113679879017689093039453389436060866892468592165984229696095304336978082405959703877994450787239088543371181369757979629867854607439844247793328881852442034200770765962041207399874592008955171099979665973379606834154405978642908512218960131347717824444120974163585232290128945782151871308501163888805911616289105583495709417840596683435560069462796120260899011512722004303593171763360924539228556386538257683341179371112734719785857301022740094515913924114290116880825982046058258121023129192629592520284769632968971846238351924868092917969918207709893180329331104005631589719476898515227690261412051876574680697240738779320540638955619784179061079104708168222896064930666346631409867480355901245439152624982501574891336414249698519628205294261319828335521267382890472896609970710062543220573917600505521962982150129786442887052944921948959159299338975186493738404529721403529772339019152185266749915980967194331704073023677706210992119818323649397572753548447773823636508132337304910943482069747643901778095471235949794551696014869308734906883729670503927130888492444108091162987457263124237379320242136336016706398887806465546008281194735233148622085775504227745584732688691852738657646710718635161680175522441793252523386058199791938368907886134847108781240971301595075364195788678038165344951608841812891497104904182055748377431255222885375218101512140278081460380686681412967661324009712484641375533093555736802483216627184020408996611461567130383621686844715347566901995062255489033056531310892849896540621018532059939240952492678845523539633430543549849003805684390788006454384646268128636585931621571032142738891108828244863286746123723481321572361431670768121372259150142483231247122554171279696170297807488036075454129997697053805204850745300471541499267701336237644270106014608986677286447856487043850999650908830039864231706408853381676701490176136488880733960073418205813959229483761871881167357408866355205054425615818442193996056752772387334469827563024658472889683009683545918073221189485529865278670160842275798882802215962090377115707054007142790452502276805831961754457340308264905447675508445352635628316764479338195487657747101347616045968860332378432072945864019074853130007508685483641057444108317256934610313679118196473866829362051124968860448479916522886312782162637676597853529621962921208495938529788166094951808182383964920761210481370553429786610827718329598637308287776705016907210345316916311942645873446168871349623042517815619217510880319432534502182111869092958083137265985155038141458495979693236339630969779798125829804226816965251889975540263513223624481653705502388596934825441370324220988639403203679569082229381890194275856029830640766595916574560696299198850628850163640291044206200791365626019528827410664593398899065253202848660330121082943243101295391378763439163640424525305548741959807800869279462657197622245101011091989431101758838598006069098853392527077398501876141619390062790156931546442155764776325644430483920174336851036770100690946350726857169244312126536527709558720399596788401821962031768095567208724237266020887820695631029416935609067415950367621406950297502838325830103732985391764597256968238264751049215723327628489445029212087765838865762580835648634294536696105448718774173250838440074792505691442411147577022250250320876301995883255532674012948381761628861541985829427912413196417652701456419801086879272071258558294979458099526653977372313902539595449289356859316273257873620385290738800679577261307169802384630824546920579717952488072694044432531810957434301658490811592472773824737150108771828697218916688316914558559934160302116951746459161269612829602344742382634425628772351340988627986104990833453219416279722454932209726080736279935343137131026559658928768774041025004329537956729725091698923554040256951337635095495651270054692797301317236681876176368630681420913309585480742883847558976715525976064084410870716911600728308894170889680421783941737450084022573899623204588379757465341033708787473882378013419397095394932041208025494139252875950451172359372759846272586282717244484600843143426416943972211680398827887823559178676337620349031274784297035668876616331588162002918540531954981503783863925640021602180784706861817046201446938721524575656533979433164813522343536068628032220528878752375230153247052492562472811621681115523732068738637089435650023091137574237024026360486183138516301942292569013453336609978452590350052303285478010236705117994995357604621841741376677403245993781239206936969372935453027972501396250346112183350082451475134798977516602511937735088480945013030423000003561838635228517441535387455148119316379181478009228914615679937227563019886029157765464748113153886399092516216259103091620285011345777589601099370881812064265453129214888929949502776825537093940739735653994332236426881640837642372967183121964752436965013268250259763698596079504987162126957627136338862603381446178664343582693478666392401010631347009324079132427197951392609390418806610671421012971290589243095495179276140940106959635149094086763638655947027165228526874190234175838573750435400225287808343634669836923989965096537753181775473664762758580796125902249901290031162027331021810023809298681580194191235288863299623336884618045196337818110880443040160122622797593507218527622277131982170093397619823618641402664126876491471257492041726296082425257993000027874783532522843208082159931119595079287745908008330830752072944437653722339508587144808657448181410719371776294556964490121332927836518817548675808935169328160662665960050840753559726263839201199831239198744693865800836629359516359966946902307116070049694395169276581183015382956011726268041728930885129552220957137994695102449218472508855610527308251078661506013974687143710715041472849204739850503946654806363614530125186982310810027560107192731642394094894619602868556863489818370873336460330729307854581980859942018685459456260422430954206992694143111898826287959890805302295819681016253404850690444248536754766318475457706507182647576735114048041618760894861310658416036739529226815904637927417625476070485665096540538252844895722425700980570600425206611653492830781022914717972087736302587443028607483554831561933004714175285588088826616017331383623427142426203146360807225256745032371668583654975225775332007658660662472563047616273004611504106672715043347194085478296476559528320901072617741677161714448539898496252281857720066879857641033462234799439480524551865166544554591319632257461163847897206641415398010637486522353201068944032693937898611947722944769460684404631391989312405758645972796060635139474037041775547744671262459330526078112631176177207532259369216377838683737917084542436446656855220501222539097146988241834302419258039895735632559416492497342986418151909812546818699105210156825206676051830542640752891641143162999610770083712450389791382614775400767795638595040400001027373168079115052237366535448419974339678607393557013046063509990832600337745599475848567970078092151240802185119512071115672056328550095906607925370005016903042214892701962695147143073739951691918321398417453332914885325565388077081393706491615255576548893162824296705797119053455632925212486129047595289884621882748199684974706564076259792174218070141471060873465241651182149326421327823419681037185821531002201028853006586867188533691712933315790467946848978651697718503443613895176918252752637177450129875787176550001578454881806222157462591198117135644431136062186710010321261080959751071805255566395492069227735367245176297320752415959756702753730537541369431069816014220201433652911899267492287979957709674654097889516832248555342144239005451297606869828464341306657255076004196551963089937596284722763985872162235926964055279777508046482974981502603832237267232088876658781593349306209983698865441166892316029496631257915175573560689733944232398385226450886158320397653873786514913115487001923628408272792004237026459628218812843173417165358144259438894262818418610684513241213402584854079494181323816351144323784358150937686243350278297236421168031128048804849219165281884881724356189610242693561716907438906620160599450495402970355289739691181747140859688528337212694168006257153701132084722418857495094929961858469594018118291452640817136590471146002360322969345809371413344424164669880672767815646936976430541597195236181091375362540519202043197070649869993337518358144928872938806653816408996847663951233678799256600499842188237997033282839230515979268276416089649433755056240082827586917826204341820177958989562761891728725699308066178025909890302666554786578794757190686554304025781383980726976088698198255029573652229372208591204453015425786124446030326219656715547442567867548217290246696011792005906987690158199996657709480375820444433862139222997391004075777575694281086860446997671819638584831515139286580451311962001087065892507933749569539915305301287055357556812972935679881103960130441259748512804990104163142597065936248860780941095338377743839236527263476450785145109995833783556358330324844432916855729952806559890982203958686364862224232447278433563534202429020736657055688017206467281673959023403398144364209697011974013143167358141666687683926599524849904343459263718248273688225231178636720122899501326991428434591158222519446430889111248185608249386566712168202872038783699252070806581007496284818302627194673299768933853042408595709270253102317642504329712832366631943868949963516950405593853242982490029866609098861347007814656895993214446033518810179020327545589791953039944605766612267945814447139671830798770678239270640592758844405508431582147480860270602028693594827593907084372778988383857969101581076189695959638514596811430623618479480536409438479708996779451781781939011235960292845574094200019882140070843794332089987285646136243931998236601694133192974077080171756919140895779768617953567697223587859582915780864521093977717657537925148880985807427458649937784257421211221352477239823493661139475954622477671904531205595686425366357101316833106577481647248373410703339924856460409685737977127104339894793029742455956675621531683336687213052489898086679905556731560942873165269219747852239688683995966459245023767113923726045552404316070625608133786407575313241520853048634351041166853648871563143284697451921823795649159006537209112055693296123023425215741467067657250532063881226816640839086929838698538189808607959933066297087352933593887150345424338899490158486815450150452877941495772131797070744942327986960280508704117100370576545804063720142872497423088818028738799873200321150328958348769973845345510812165348222002514845218218234388476812651198397998641249184294310242789174263043637340340885487720143768786068705796421518237448472636540318300923572931204905497056722304174288395647694596148734982847879325765479739144104992890936190607834200170934623166955219528237865859088444588250149294977837915530123689605762049746986347289631785421215726107072567581011956587802452097403976006282711557522525625987780569166433389927656729584421293456916027369338341164790358691906825744677030679018671872020345392133265941936529879344154203220374178944619507962361144088353974743644668285353772135566388347343708026531691603115059938520395123069850468673075334584858050663362066501598357805488715249154484081776590332203859708748922392449407505037644151129461246696127646853497015772480654749348232139319061200121857414358331764735662408689358288896577963764388796787972984158171660629979549082576200516424758543543962653555007518791946501610680338665381549035563484494311947979285034007600304863346419640750763167620758608807395477494292251524441347936669955330573975638288993345266589268872046222590454356145826323039689999341647054412275873548348279129551011611724687527153167044225180931008136118636843550156851039583058411068893673872017840451211940812801622233086129793719406366597776462798838929967501201290072391695979961237075826419348359770926254861750430495121037568681273123117642735248991731704309577524667199073251442878395850102953440159423207884213311895986998801666160411749490521048209073928700659125707565492857568274842149060696094305668843260310871857352283353200745752875099161436601806623497688037062798578246526132133670796282508754732936914739074298696094902566864796326841073770882692469427680619216444918763278058994083373175067756207401312014976240917394168995804870043860348663550882967915147713273567792528293056766161897122900503801828042999724628202610539425244435058291785097740408529888352609880456880930928164409938411449300176907036667796084406456872149288732644051875065589471812236443820183600222615360002802664651974110595460490167628553224539433699847462112190889258952130663976907162269211239987337142078075090275926444587509819169650933946876484195995288976001163893376524629317646457360690007495052648608194974716648879035076398487894180650263513833532425955165873868973105986094660828787588853943624839378143916410982265459897288790470020696174721150264488043310802918838118199805758915025874612494093747176887887294465385843418588325684472472811267505277610516234424247469077124334176903586596086216113722919105845446688891563327672682675455548857860864110697421995466520308775649916329408942266929582953568688281053574281599132009963919355190608486457872703089874608939234679592710413512034718060048938630430681576606632150113455373037241085186836718059699511690535235936032623527429714555138961062311197793572125459653287404879945325652041106218631304378149856993413027825973153013644707690209425067547205918496569712742723516489006983666264583731836330257354707568703364360073683173968426162638219492558024965935867418691593949217690062602392599711214232236520851525647958831906515469061411940629169805455351681095271379300033996567146658373051710029675021717260621100147332902017139848732242550824382586511824284276625814126063826011087898303405170826335541860797339632635588931808943657623702489970920214285575771965482967975115542783590517105883686405536496897450174005143120222219632278285607959727429795810994506810504844229936172058251931192792758677291446122896909949540128221785121985295079953034858425547938991638383403987231402627464816470283554852829137173329795975246156967097896872054515269946411364659497666650182546706528230100600713593238661400677815588367466880341364841471179835660157330974347548107907315647586644006146116818073532513325360946244003421112962856874604426303907682092458837222492289791932635964718541536568505248845124519562643197149667962839901347142110884050811743718954172504691662056799911548779801974714978026106771346703398764742373634267611183911133403784239154593236787675256180377142474347809137008235779058770972092047148769699284796335438441426681591722626137335757269381116838264271845884834748376912828029756589340036856302121196496564828958377546542342922635678249683910384748960921000274339722602597600576059013157545366484891843386164210034153882275070336088888871695754406452397543147709231677885677224137541728844180738704323158695297966308807459020233172093069724473628885839703846058949078662160258318059129795105678706594692743724018768150739922210469722763613726168373689431402159689005341883706729864637537029223613048061845387976059950489140362817451701584417467484143648282846378422152535796603175761674581532487829175387707917960435073707728836450788394678234904594638157787958210927076187019735285240277867212447847363222998873536799786773970391686279787125820598165225473216919040007718466208171473045653819703318083153459592477476458086116938796203928569994767907463563678651419107290992991400118437959186202681721323441317970387156497861632282452333993662860505739418036408043705298963730116637447622468497801932672797890168194547313924167007940882992166339492660305009181634242499706259443564088313379922164572020714925064354783058625320659036729250385483794499176298206174328322578463189536678188346151769896038921077891233717516767069909303502943642740683437415348786738555675724692474087368208384540831650337758702001793829381143611592645177817531728954556424115946199047141082083436496145559446679950476016868784235151805943008777298467332096522796409466470707307354681563313503157446079123048218907124700150141449387646084850138146624184598827344089469265089333731997942631554822502340814565376233411452720896231249593638770020203258448970091277434141755342131206832355294771593803826988082118432558948416393091580180200055487235653505505097417447921777227672355610881294044009539408877736758596568811384568642528868331600426327336160237706775492224239905188736123047088814693888326828567343164224441767896011787937094973319284206029954526972907440960154280664097660504439166208002396074330345288141819722002286311006314149386577308601057040916104478866277132732871478599447865899288415424179354558452797454068265967429991823939952695831745531094117617264955831717972266109835637953082620685747184835614290919842449133948149633227031749490576479933686428223125616501567064875354344914306317033910109635000535311239972087090612960155069515645477357465037188567165090126219458946219257102366980218236932037341811634246708716251671102534054942951072105704430202671665272606772094742463954890498730647775578767300008390874407877234994620258038339855294633420351654518042915043825375995204804475834008395584850672945394109134398177772219181605230572054862685092687398794296951956792615803485190180134910334181400999289684420388183456487541276063221170373982959718389024242648215339186880670250765312410784111983298324840780253285476461542629819058149094534662191795162079573107183478214317659740039135719605173683151522474087338339892788803898663755779541407670949468774679025500942515870458954634781826042762512969341603662563026829745576041706896209774815752826463961213091374780738873989245794170491041254779122822674220091642173180055345484926981210304918318604370898628690413874021022347805091493491348913213051796453956544004682748330443203151674569899077542426812165411049082669006709730478679439799467677835543912197878673770837313760882110215829477871844271262021886829815277383139225345877926839207593854890921286099227053540664435398701574016915366104938608042925606247254392118027879171638698653333283479735586121260548323142677435022663733643813221947905314022370567002063383585383917849024412419059610075231638037421519825032129007526811752684717431012600818737359460265565653198427226989488574788627753615178165099095592238961563857998388022852899906502383103948310038228081428677698404366819414672284835049198183565814139809271238723160990901418097996900737690244038246129925334954500373688180842397692780410032835330092014662155356870352757298278651212298640327309050529435412262917461363473230712569201912205171746431171241293675477435424669134447436743509112059938341043553288600844773165462438981713266116225138646349827605301485552795012612455019992894677956294362833226482664297453995706949132318349686764748530110111668071907398822381903255602433624187091321419636691120293461183696922640686562926926044815860551751192353136849372292347595023776353815015555166042256507575533804069081774162333920830140083867575604178547059048259036578794821974125391515427877511060302993942006095206950947652298022541371107306321997968272875366578926297456177484990278446266173820196077810188913182884021344888412050385536897969429353644596107543035054344660520817551408869956586428252993380193250689265147376418788135947335328426576694049094432446264918995699597215799528651230435893797829474070535059661098585168558173112740768767604245929428643725445628644706119660031901769364314859755169089232542948408602940704949587419772890708614186914870516820868424682107487878317188178904269810060531349321056424766361716498695224157239687744355640440435474748133242798768425488560863484378587583383386718581921344637195770438225063165030885459616223308548926068615961783831384787107271319196821500288613142077600377091094401937658381831220259224360391319607313310988243148564747473278363932141148147114786045168551537948693394086894710188695008299243522996547224383674579757694796688187717959661814219428227452396861943930933754607614135095557095720710058743295725728358789646853990520972614979924114612558956658790165052286884329292290637810687996755676690990464562333677304328618973053192420183836264660396689218144206673711920329321557145036141485107940347547725523299580305224446033772807469278801375384510909137544648762950776360078649473038792535598340514630216769049570651165125401861065220792672534435318273597575856190087529534358045573609029123181635713472783231127973019858449961694013099616647988821372182336779828219828833359246833509769916114854088374769411285232627931740237816596001689862061548419856623125138103385537684909145491931277465026503651091174473033810860453832440138131643684795323576884586864720132759877029548613622091603663278597396671109297271129674158892803539797457217622339931665639503707811974379563242457333800614950748142053236107967531093528668337113160303800149016151018006235166919202906216317796216994852847820139231576844761229859971367929983014188978392439977879596449770249939082287823531270025506513181978055103268728877690514802779202230907084179296692688236716985205033630924399446558998972411504352491287527703695626400762902773947367110535799541855908193755881005797338045117699660240943917653032652279659772091147992971099991435613469334724483240418722396176382366614724488689585453726535486713109548358158823416087346307068933645702831268465276219908494600129458451925160882203866354318500391389170704887094416018438528411855918973237157498410736210159888941198914128000929995834308883992224711442068852729362076656064957154862734323794011052925790220053832857007370261088229673950729019969753645619312195716393019816049273744913850559688046577146754669209177463944672449242914598336334245228189670252342326451419663798591547008589108054691226089196412123303995748635862600290725198952481831006858023153923766722758443465398768473634777371568438749605431596309957308479051963367862258143235458599233067950719487308564033969200944981384080736410373775149535609224420850911569718184161809055624093177614328582544926164117604553775628218034682902911737052347046497555388880052097987914978864849579059308242236292668114759726462671883879073538322065961956111650006229088433990053225849816475960829752968055753602961074837473810385418950556708051900716636208973553670542356435139775504255211496261917853228835261037558929720363991835224727760017160649395394932718438852599589985593016478202610586668566046514464746468070183867127190706760925531663065704158007074513123632525150908530043453689279120686624539261664875520149272097127257341379512829358266149218042457541429319712178159390667463709461643249860136675099902067591120614923682813870544071851479153450979428327964930505441185437381623394624390739702355345397599747585758120313214472473857998375238283537879350823881959696244997417137573126080576128951791204375461116262803456020626125802563793576972969316271722509570445348101834478316060212632643210576011297639736201902532881016715897981538079117673034063733277067211977652998836450134069260432918504781586144771674383377201552018059843220634848959307350298214928974524641814139396594337949149700099228308444027233319704408511407744080763804423932786255046736646499920237690740837195568564537498815113787059673883962910378020161511963783170866041987038767258059936539796776555082163787141322055509058789992469650100277059441080583814872294329875480419072266748760569124811924488432025719711458194002416568166209193275501646928251216782047582531839568670819428936033010039175250923952353963580518304282894512522884983258742374487832437858234500124544964991713372703834540470616603061540478796259480055204913343097926606863344398650499678664119070379254093776164737140655701965028161954994202770205275577500225253722596160450713905180114284591674587010795680697756880002694456599117377168561353444378353612384699042969604392389751202882846327868030436470453603960131260741727218318886953419592727870938510411894092346433580264097933584478811886677858978051743630120976513438605799070208018126588101248973617218532996054231966322888531528032692399083884308787554560515469650354444903890447116841675625032111064783962824987379251781363961031118997080218608284499182909497512245083463425665529733114448201171577110096211145357758743806203550902773547548884819788832613380920249708373408238392900992063275950326167314141197341203970276061298985215866916446569846952328191941867560857626652125741889490061404985808455543656060326516987395306736830286171904626244378626774843687223939947885187612750975635376330276545200263733979375621351323291061497596944108893885326819861929685618890316318711104831035743530486351560767520871917774886542757038578230247557327798093459602664344471592546174839043803077234966499718209613449931810460185923779498672955911196934349575531739592177293565131916724500525058968605190289810988378845251927158566310334562236454192444059204126229279555255766614747422417952623303280330862068544777498899159315772671448695939898830647891559373017286563866577334432585249757689289406943095288485317050324298594661831736368186967378337332638620378777354915704339901565193899482518703315307050354431339173876744323634005852876280150363107745122389404942444875655259006469370394196794138829528464126926060769584607460354648728536578529535310046618948665074101059253203347937187272194210508673179026765213996815741718515760859160398976287470025829565180095829886556468333122038558325877841924532803041800033795587619298538721588760582302088172907885054188553611086590528427887436658203947494470116479728758879493898647627288580368815095456291568385634182267323120353344341300383473163882805551506103137565174852093999263420384852395283545915646601148667542931501650722029788797042686814665152622667709716765416783645192097314439947568688402595598300809491687980819572707425721765235836015196007058295198265081454638185731349765687840173280815031024273026725208505640963344519849876847341391272864954761081312158173077993827228750961071758601977962353878681174152090512956213334881661270538487428125524330838562848766093060787746669220134469005670966513664010738696799157829334522489214643878083002744372073678358194988387435562252063711173792122915069641865371818740604997294965972914656639168179058640316959746222317876678461743744965637991770390433392107445719535447038805864863005483289437066467351568582180004761681741713064954300814825174358353056602035434642233844113724042556584893451481816772059630435959387827506808939729784080743756957917157783607171071233994504092393831287013070316288322678482112674745552819709517821152020661966930082879442875835020111581691540902535745269817698105164114450868803576370680962633978864823179059587108318984505171154588630367719814853063429375925228589140917759478476396362824420073433544695767169899879010262275571774529365196341083976003411874619280573925180992667404741853231345174664646501592552983122949530033525287625195603198972767304775525381332101704602305931332295128217748423871631993685942290123814609841009483383604880760096622783082070402536789907279302814131298163856836412374389563962595267275218578013853385405330720508976835500039938781178984718508121598136037180558757461557241874425747863294089150175616462294669869487350910647948118867883436638037674113242776423619629464366289248649747575865094416128533279660876756625675022668145713694585919986654360666131763042237433108135560951560033398422901084570855828488512368008784837911850079178333379435431647890642196624442206992206841455713875727303335133643241108571577612110139670773044801388096155319203050036170567816127086352217500551131263839964731724900506786160713413205944091795760057253542546353572674344434418309418507787448212957648868091663755399266022426729914215594865317451740508802563502669240681952086949291097234057521059005951409857882175610937853795536111263375398442262505559388387798697524821630394182622598894478970383683956484049356152293059644855135943017003267850089846444919261769503952021637582474911791260133461389487694014680668255952583596566662035816901866935870130754613193884262690192931598997163548551702194649300202672196338283749223411053907213707320666113625370071147900832526628411662443783512849993858775479707340269569351143920382126026288585135467390768893141210664959890956388217322771101941765035874559283548750537498620191113593023898818988026207999711485719798810826549466511796215426416221587135701186908750558103746276125872771677787097235944557776705304818639342519478176587409404594547064592764911675864417478318524842362606158318046019089053360398588869894324001732472941781487236162393035984393370750657104432380506168130178074803476081549448941265349252084054007714594495020394592236513422002303053740618654054198686585119411852035143024688657312791647110172277048667732308609910566242071777787419805159427990817623447043327185661297113547454611536520259146833606158936003428505386438484494743720283258273603122382165952343729171489856145196732368692740901326027805573426269332166435110725736564665162859993553346471317820719820168255610482196557995110108015239971375046268911063935990459873881586410427942321700525204332804734922040792257038456439227505383923557602928898488598589337755005285666771754251584000880549275641751256290872293713248799861856870731943300867473864294761515843501096654769441263701875363143165364588743759253675324680213893536647596289830744991257213997345297325295610585364227849587160700578153446357510288403985568011176086393797923408091944715951170253302043458025796792654022973396260401867185592263802427207798312184104667702599074207879623274796811166668490845901773437303646419552952473915653992546125562104557329611425969471048090790825228944827883017399671856884205175049459774521237137430345521296517458848304530143102335107553938166747697579316316745608820555219570182786770148232403872146717702944121353803375405289227006230795663429600531549193166089817084302406122344034803586873186761808267652665715088736111664970694503438233870839658960414776390429667016703955661468341883840873266135609760753533100553221196280432910417133602583022921982875380225603487082249421920443600554895369510971518260031247119032600501258127777279941192067279732410513508893378772876972132635483785156080771411655554511100914401600871564318361703615539315249449244016988474231298869471457087721870217215907045525603369352980328579619492241078168532867916390435027280881499617533407121474773418917067666647735158223314694736815773113727671768916468774397080775141101935421446399064192625058486668392243704766267047068949287533647181843212044987766598407178995660023927239245414007874489779959434752706722093675368159564266781000508123787362204047586460467953903038072614989496751001137193973957736217475377435409788122357039751024382055056977739040690426795013504996270203834824285627014299016171929672759406606810345254170410349607940496789118532410476520032440254258679434701357467283928034909944039478103435551239557266080565701518867789692307893809129738035755418982078000613752472931802262916748634721075090652493832820093617468567518766543971700162530445507018223252274055290115885767042743104329025209245793159516672362729393485176438245918220923264254914808631834918475738351985373403652273484165363622701419244851463167184540563347375084153796011266707251158085996146111532481741483779559636422630761996946318687749522978429106352788245399674881187956432711475952752561751629940908083280530086924110035828144989010715001096263019937271923271578130821769823196434605912321273607924647394986033356596014854493225210165320030217827172484630582918555454517371707416287922588584053089031346820158469727443293665135068769034012419291994191709120136392738156569754978928168023578377454012610693516885175222105914905104471354433174966028159906811733765962148308515113717937867481279862637697463061845587620053579178267334197522699652975275611411150424799328007189258186986154579001424282093493713820943930204481794484567298697574366534639488705829768454450311861375430702839574399931923367755536102270212933316791136015288525719412645392992855440919464101104389474076003422008738482469057488799658826468062319989745927223092302081062361720362122219570740999269404854068128806896723955624647747413889468305093890265321948716796957205969429834951248865779719819168916128758436505098788639592058322420908787421865640760203185491795667343993306214473551204317482657828382818874064953533310467998448923070680689529859009203984974684735736985971952921196915163119747622866207656913665823395367516101381519097896210310467562498240444229123210494927895151774078612740498390500009248722067657337800279070598458118381970585155519502154527810416694469158562155071326268074255439769630055783381205163980007431372875295893215141555998347708041401405521558865550802929774245985867113285931801176691468881622490955283337304235636242593399893124255366265718959812317571443173247071789402464331214657528096174548948138422699535274965139069994593793708312820922892941585533450643845643670977558983819905429063254444431294982916171656031413914930903253950184541643486204400539116566745739723352257264001680606249930717261433358549186644507167093532505598523183174675068042327279925493736268970951693789898458235003626045345185734818013936008382935911882724300750265002146351174015851367522805263128362219672097980455309542253034479533872381084862202542621567034183086023069109100767580792681067693758936999802108308681569270759857320815101621505953269480055069588925077193518775851079022594092032913520105049054139690915997480397414361832617451991756201153263504987497369468469804196350666513631839170411854313428332132505199164279128904959724318224926895962646002788210672587303330666891983953550975764585223138926754505024308022638797944517807766935082445008360797611233695108184421695132985877621094055740512184453035793676705817404592543138905659745172242101470113738062327784894547448818060925090339496199870839989531569535870222938071611614840127734072621959998610283191566090258638683276103414530154017636957579700944491583626066340429868184003475410039655991362118768210767130292935231844555964307833898410309279424282239616756881260866313449952069003442816994382822452819277487939526077454316665466120259698843468365872500782075779142914792139614211174677340479536215234923038197334452396815373933909023737312454419420970611247582276286447216650363588195517471020450629529288258118901589465937346529356998272342087161782990148586827682637263094109222973044750713378534372467193053384892706395748732153303929725425520574788305271738500090511019053547592715239115252997797050414320437970031261548117211680530357986225362490549813338711050030417098971758829215227086330520058872839848969074225705760686602468443831869617055555313520266642380402271127039371907477181236077336001623869844263280955849215134535220485992390011941926681527722376522833029021213238668271566428267951613322327590425141900310665459445284381847702148957974086968812049554980880897379833638485343528565457071443248928395311709863076173675339710431987179266455965547346370823742629895485492015370989337688724263768466688589372209258483306324880695813330208970021570923546777115092366660951741438325602335043885127905276085337467144155938786978306971808785401792012351275362624664292669296085880091456083955461878969494653197613395603505620977153986805637444440767435990177549105437672193843576423089384675485132472723927305347974815731926851521458465226764239282429059067089633720016657419925280033931941460062036701792410524401716320742966944816779114643164287576058466153756369924519831914648807437987050774550210340729442288195075122878894082836973025427763278269972176147020434481471725867679456047420937905323536145839103922837011599480613128677716943303846087640458199852323903174782229142169921303177886271519890708640295933918205732181047854250892932005201650678159112024978679485429715596226429780160610393588188014619669764404749021746858039717184989239255309389395479222018227118380755487737530632256899230161335683120333663346033575495089377146901505777477782616162940948691458536510501160898342152534891256379187064938705039674737722126886015756543843883409867002322026666165826441592751808127544296794971295843213763093513783780408624782187416905177363844313974929707433619345356573740667535364466730653292448732207276449619533032348279355643149133616034380570342526963074839720075607396876702448223326251690514837058124369774876164803856087988151614391973409285285761324215484918344696755480140213619638440267199960837033000928138403743081452052038460641658578688000689496340639688930999626939305155975158116484912850278198366724614507153420117169568622125399614177498731257737372450637735514898136092190403825290812328072953774142464943557602293478739733398656030294997536620821577140244749919464814703534094517590839725552827091161487699067201766225971228582276018408323661557106816257237738825421800216635507433977417234801913250420025416204468027526916392470575598769224528046272174488849877852374289712332383106528097967324954361949097951169093981671267298042531876240904699588963473851548937055076367041813357159920656133563805011427691987336528191247689152232126911973089659948059922426531631260862818208084817827767333698312529959610996506064990944591250084454244084715446926077461195762186562980227026387594969730026696138963667500038730057944473575132890558528192829073352890467476606879326026917908024665057325291911569349865272485247024529659975393214426317780924970822914211640322822983308295557735900211353637141093531416454219851187395332411138608668550585238697874385619163698931239592947868772557646304836207100276546563882767315916703489744577692263919609435689852667196291073977336717710136719075576285887632868274472218299720190755568736001388927105919129079729052169682430677867167736339273490275094218130399922693999028393795919207318106478939238397418025429065938016791931149638179315125885843767563009172827597914532911636948235373651225732098797677031051318563046581595412024152864901145425785767687978764577386307679316281495081049634914481400943615088929782300294273814543563004546213379307192531859269981605189435498876070288122579250236172111246555413807663701707830134053608888007368516268839546503406772447579668349905661567006671281221848721139457301371783055645290332051369349447294018548069378891185647325926703975188534753924505773382350932489570783884464595655103966534476299685958767630588646880891455493346600496186611981593913728696318548170163544307641605028831131034402587632244291130938643311878881589248369143081320081771120969445716401206199172105427469188421417047549173119995089902247713224862898495439388317841610958518026764877757067899469599089429102014556020203029239529816081144362985882513123244812261144114858463846652749548459314992192187615966116705795226872813784520557470629922629720038730999615349489803672726208278168852406950525062282368769648700495678978872485863788618553485799919602665422084161779651391242394077010652108131019913524453603522478161516220533082313266236675016842533108152208509791550556394570942452130301274307264067086963302263407896205310265736232359177965481815250977796688064199619550470258891398356547301753071763256851785898233783436152907896474262840373922530553044241002508867045072380339843786649160079047307402268979117098204096617754095421236690300661852011622120817089727958352372690746972124597230517265006804428574801740026980800916285930434993358060113679597388605741478193480865062357779954042123866840333068812981357380424556033234373141400494758319581323413657701095540448385066399822746411461504280083296996583170293192464116343672607033035253983547789147547298146646835792281387766445819928695115015873276126944397435498621127529701798597344193889457245920203590228064529278077000535381410107428415055418191063553766067293998503784857897746721917662134776709970706451165063245157562221730389070671237133544017547583989280574267612619014608553735208045446459159029253933496860764977047055611820517078518606793092757256191512687362955806090169920693539551720201288421989809431040581668201302686885092100725726379526912779728563978752867363453554992821354204521722168295087454014571355849627727426533128770277826536528955776660369033614756581068676538511522787552957006689953782596509899260256457680083657263384524172482756743447005346485975478445401881527356383827847082207571231784367092750564903462974253011008707220590338393899446741329735450913902406178291247164203490755955286535499451328152950403912334261556258478326807167387889620725945799610324720447419234755080336702332454116171397740969951199311905998661198511910039589241131126156873779306487000179324260281878085117581176242978250250307452091293074497737817330983727181810802390884665691191098944597349419246737732462231371133395546009826258124349183108653054743025579923022482532770544182239240938170605253730657685689396152795616088691251380338063753483726355383232518401337859341143810286478946866403252740422197442532276965400442724048339426218441649878003055768547065953264816708258066152424334195677316062448508746839593257948487149925612520532686683407887105286630602244991698666147676096146292325305883505574043195531695423432122797410764301441705450199560488238643762141527497861671402334701039147004467469222987964620640492079636630750443356210185690053617635765834760351694048233948281197941389084518076626725510763985947551773465440618708986293692934697375728412849622554151819884764128946740523107878794970870140139929504730507407575855334103776734519534364067562861150542269177851287790509221229166940343401459044882486573997167650825473327424375654331434299940870204354006819881524421377195599222438315358442994162777786198642725845727840878392222935824013551081408608906440654749606424277497642274041428062469670789136545049414819342930187753037782240904117672427811737458910604304155863237734934182875879554683920783635182337873671102694919311888757773848963385620572176129972971151962493045097287895148412630556720247641366981094810703055511190721024729947758683837618289488352389747823483207172985946252480098192081502684091990628907356795702864055706447087728298096806053033375945601215549363956590743879421108410402467877948565823036256858541393338936481455977095893869743709795145162784515970878395512143705211606649256991754289510456236422654523734542312038341765715244253882353043626624941321166291893413085860742853887997329565609447332290638601944313141719734322116683373216612632548057751602859426306208844751708909351609231604827217586165459474669717962987672633592373845870852924107412868890499739440212553810111301103166407635566669033066745752099146259858813391836954957916434314255538821528016188811688202777840656164085367992307279226585435330559806906968972476019008302789111222800019374131747972728814544669858643914235388325877064361488168250609140128748750063947860363982105604569038896467862510067838150346676332639702292230299809936893606725517092864024874277322921360525324065898222697351175337500487058555327778799505200647606130114263494904672341850477141301316698294573209381941377396400650938344854984515852517616581239238736097668368808519356714731072112747704654973480476017326144276329362010586724437022576138034534168930311414136271338308339252956983497520626535464285789518383950937917153291336917979091590089884779719002254615174034250752068351758614761222558582471006133022786646469160530688393536711200967909076918934546147927253456235562819354101203626003505335344275998784064217732501308493248769279903957379356319087804628503162947987121225632147858625121584165321524461814082054043381422351546600733745602555966980510090836038400012080037126549879183410445269831320581289897145733112489919197063776984405782043872157692775014730869980831982674504130992576338911897951393568282073128660677730378513604801971267841319715791014877950873284996719521547481285389685369218118920257334714774831814960031556375605034479846442588714231425954550501198856511082668160277803174787928246979689798319756767604999348376439760345999992969219179369086923106555415126728676311184944532117238449188781629389758309328787098489854939473958469663020558309230890921005110039764396914791131637978588981449123807065864404896982999134859253417803713183281615026989306409810311881673575165556374944120341191941225066583640540003476044445918798763996944707204736059042049024099716866545994300160003254936457503905978629402952847413013689944457763078532483322898660059332491937793057334396386143930900803271876863512188349899755057334287230452585812916432094921876267227528266490861738995326380163111403507911661462191177596369383683795290308123516513359575602458012544630668537069269666573560891162535601709547446810265900395478586606489569528307161485022532095478983737069705260779744331875935618267020412462032048959059244560311902879569271072838868028272781805798668813119016620102069605069651657896240920439173937394940496206084855830794051499744214044075182154452552760362395442587188757118986851936033873738716455994529133227144188015829352855451926032199301833152584119287652930654824726971022574907160538320360276899304215381642569423667554507085950319073189161728661422651124259402377853528427167309911079395426328594823672406434556813929496678990992294812169813780405241287008130886810892453431871847406891702314209696874514361223988989856729054488478058718944256430136827589428733326205520068247328823328619471569791671007600723292727238947773716894381586491095093158187718221515812352201488464655712737023198079093337669247039173113236601185369362372483083534929127897445863909236980633901618601921972273361617144801084588383668704742330594328268977878792424933815185707181600432305911167050061198785633039738467034277947694791490667911929372496963500730218089542529375249057092620709177429107763057247686458255818634677526012862196025802995193860216025250524718969093713749368108981208702389109314973720148862504065317741108495349739439830756149987476047911986154953788561538405354710323541746033021873170292530941530225523471936442562189029123690852840020818195536520598918782099700066670885931761541633670213311786520054409227067273399108507139044372464052738085230392291057428537862761451860978967781882877215752198379645597600956602640535004951763971609108797764994107863033107879799366274279678644398638736028467927461946993433603366429549436125132837334566841516993151781500324890353640274092848790993016659186486906476869618489558447423733753612444757910428978899368643081322993953460172226762694291483277757821254309882401495001900162966625398461218786471009730343107657630460998785144549569477252181204885184782741006842932756765726414046583726031858337867332327901516106750765250784293967872619528356103466323778865481827349482782242464583850498639204752922566254866747292463094099023506433664224969481389993373418223978888557201751056706061993440565780023007958952290783790389764213362812708836525252027668172514284827175188830354579384903264263890250376764842455038519361129449839966757826640735382121513475574376450168900432344681596806877171701733863768611049628925122976076878683953753005917988807577870218439552421284167597710452938669988828456468781972585734601798466029633688311219697333519694753838935852714932695614833796763818419413486228774284164726604879584678279508013194960533442589163406423654564892300387642103937293716185735207319752097040619116007408329187769896050616984674476737713890106280749182498403473516077981921714718735139361289809447491238979653755763626956335416503430934481857721692474780338068435578488328013893289596818591116344149029045831465556913738027288248612018038215927545243633372200488258166288973733864688592020125265735400275351601751040850649045519491948876920577975237395706789023841589597458274259432953738003026590739871716029419932945306386526251279242236262026608855592479917573080736583320985863223100952930698203079580961458020599315043950542325944922573537291225996357463867430907937046370198914122917383540671767146229437491964414678671893599391963890860020939068723488797462395936431544843623105199628488282354691018251408467900663516090843798480211556620219035142117412205885406587632572317371501319682726888887050458351027013614759324168623407605559472277347833304861467385454643845474828471133614572770685126996685708170813112287506418844976246727381544685126372137984196615323866688970158352008796449044278914414597846498338060584418181948690773191186749638909289253843341363461319920043141484564645134528115503693055237257273504279346999648359629667718924349198256701957693932069162214076683056517170218130983041711757643650276595306753340059179223081434066050366068135954287938548991508671725967679899721639185234054895900696909502216772523877811720631769817087463646041846066004007314659484255167526436941373443705728842514903293479377715280697120344196952847204878399912570092577602427325517598319218863885476096584384216832193699473724310791139565369663291188733720108254897624522907869720565623442574428572351598459537859807512312416261832357605901136397216521664874250511372131295529549605241774901375330864200694324587266862757574089135023336584996975807482188683324367262396606229260591338885305594602840342390334694220850902827484758270766385152307792784152849642562262333640365332660032170492227570877441998269529872867787997505820855225250468438911584786223233192608740587496684916892911868499862361274881035319505859877970249070248477139123003122178651819281053055348230854466518237846732116983237022018858720174477599541146261148502205397866577406513374839733275295967739097701774815115047662006153778943482666525725801960919297515131882380066673480128388676310138440378205145532559167939515916954268236305864020198359723990783763169519397266035710546964599163684928668910751450277432782403830467107568290296136675370534473152018068185444382647161742022525045425500866965505745117405474308887589991864254746654178947931147687710718709630408518522810392068862855435734037183065766046872907398527714507831172436627564797230915617860856429366952770294360875925286848729505968391447919117151143878034395921996276611538081207862734112504644163619175748859421393974130974576284193565340054647466923180149313652455605988268964357201487561348902370926971611853946584711415510182277748528906380364934665069576155043204307720079512679251796474659121890466747364608012206843461794251299675161501878878609604459688932259175264613830435111540652913138435284014025274821741091748872872010196639204322614810172490719034590989741925606190645770867293293327685629221303972385617620889433581350642134158112540824600395661721979029422903805268510489683194242232666550077073134192527093128214727750485198179142335612927726756222139010926012036496343317041652060710653143250314355304079342006488030678462474283994997639114342694667444278166715871246564724254755954742800504458012825098600024433464945895922748599279393392983361282776965754242036254563293485720566419490523699692517234524805445226805147361270665259951641736419165158292798830437377824959671842250250142891069869406488438938876191999089261168915296566897762255908959138959235613861793841473715348656292158229980074388710764888907703516504668190808979703850655971579732928601463193764980007642802181781463315466283464299747087509224829325807496626056761638402260201605116189758624239090745761053707848116309710007372810684323753292803874656687820329125274740022177114213273915412219873957837792112232222084345535679378622911336588655634722306446431921480778584266094405471935587695389419440820615487552594388942827911101360748626111762234235327152081141927875947493046829667458041086190582677904256759135618686503690574838948831357217860843409592337013232581153575787140121272363357326408117937210470839426005874282630095910601088703076215601291507657261186703314624062289898816614442432463232151418150466901587265171085728360654138734029793049375457560914839974849718835498120737572651242551701267158995496113949548695769524677843959644420039954527502576279838171771943361172333838462627054897055462537252707525670527114504773772445853835869365421345475538330745147048662095485173806622223256962814232581889337652988492165235583610981022791988548768064766274234773024580211234622931260801316290606465827389804579389799022096216524126931435653193605561364181773095999084243290123773618520909997354271451735473895619629755558240486628037178045249925572963927983955501470097682132112322760059183222093409140694995226831436144203237634440103568453684523423667886689330640581221714620061283419799054042568451803189742427815216546972314329005141556006548070127349244392094298226431853775131774049406794941607472413854176506032893802032887696520795589189543963787445384207216202508935063651439979207692459100706482386069734834025930328642965471810115437850244278776066082695846580713851317705064312163696142065053148758605216746866573078317269453828497410462809565328192709021724105908809781758086745034512473898568118692013504886410769781297181678549344017291735266238143179580889814641308518654846676889179422745312274150851892551385293479945593949336982955217905377822090847723374721277836604420008924383555820273777552177388538774672241306944556076759598959489066700599059050815275032646717521106584688254291993110184254078280988321021025716376284782360520199981235916937171197803279120489585392335459231736373301034781690925574858196677140048391587436508053710497210000806551950739456181683199582473631359192484531721764383539410311321533908653696030080237808550709803244803024356020125367082742101974456209262962070961502269673554204650309294712727259265462654123378982281862406068433263956650913789962580068913120401758821663635809357397805722428108525214943041386351156924891726757187549232387614283951408409152411776920582507814922699386135727635123481381593808924023312947386499839579130518265853793997794708307212188288489070370353601825595467018054428504932511985182371418858990845349616459170191504141483492480549413106110194510174586684107215002840778412422504906266080776584578174936386133272984903922347578343824929186352423237152813126105946986073662023634040490538937929193016475177155527013758182188442049870536167639267659102962766119753419246167815224825088075225855484924703467538430225524532044463158792057953391513511880585189372072515287905064137574349126640787949850181335983499966789901231872651719264658960240527191838384700582391179601069264469192234686361322946852184386309166348301752871089258660615996352853804915247736741332436529256118684668164065143230885745138690381117593932834133095624972907025488111270934244032722765199427281909505246854287161099799542764913876010314454648910658788272371706823350466821191083617089921369956652052602855151289291517341513238189596494601390330880801611483314579405081873877289405192509652951392200026144803180243165978469311585604412212755505292405301375072261891997249826630792348808919440629780920805063540233729908940016495590629989801358157651450266506847700812808937176335749440718314291410919471045752788271430093571992944293304907280884639160252607786805960253451214716172168506968611858485807759261441753909660347153026460584585880247107842428643235220278873453090881011574385545665551839619038403745954073040842214743038524946354642872108980746648698018572422527676635515141455243880692907370516379692036576305634596284887648538310999185698332026602195841040917841414461479250944667523844376653227360310501951969519656833402345865069745167039341474995927208763131698472711143586192098971285203000189512004143766632015099596676832058485281030850424636207582943786408893953944042087277427306631429340229667530635178509838551839858431434407699831647651911535900927927133982508759226544102739615163489446031111388213354525615368145618206857921595443225686384263612931919586249900863404246598469797009825200882007162103709419804711843522429612991199292277480879045909762160020227442161678162144128405338562153836190126774151793215445277374237995660811957038038376488327015282099435492976149375571169790356428852243072808375034264579025939327821824079004796091267575538614513611871878051000639029499088363132545752367879147786690338571811825893722901752630259035822748591504510340124909285140705759967887387491446590651868413285495916367238155220532000831843447411090575903606502060309431246321793417923126188920223195571877030290875245761212184705183144723479871167586511461990298655252012049798790745662467272679350842280330692966983431628484838902057477834561704640717593598173327163449689058664014313463269542234904343274764023760366934749566424304078270800676931705418316704337152884740535959920199762012081176173212364034096095608027215164219123545533492826525616805261175561270992747945045809330983923326201945279160511950710627682153853385217647852461105214976066442160646551019111022222352999633035991588625916639225527523475632772619752335372323110671836529513948264105842936835334041317987074241252529651797357509093957606274152108226240459934596625675575254656324403272914768513714693935406342561164149658253584038338137920392742652306903796015562191546753194360463442672065529030510969707958956748963041449016687368447965077087141524188712642385317171746048874420435777973377378735499329570890278831271165067559369715752015997951906359768692943203387234698258802994457491852442190019612807464103903384708283999212893899620816452557089438517710285933011972279555990379358960726193356025897913772730378215279230361642476919319285707021946268057392281835014406616732168942965774567907675656373137332142011279422073149870379844744367341659572776934221974941614145097706452579505271601871339922813667608498034430035034069619552048175644340125560665207138620792373742577052153096852418631413056085273517565972724059213111107860911525634227845608763634913345795571652592673947506116434008855036271161931594309851781940928217261575111897925498458972572275199903296346486738997280073646644769096841278803763732881109053385379251350500023489335784827934910995352110738979079594455352075612352369523196552504802048658042181123124072585439031157875370354207654132661433782427980364442571279749333910700716838532279664111768347474238209188579335923431993563858337425683207119682045435279112737923137143217150673838530822482334639575760141261214218740090288901104530440960164070739156122014597141565409264234930724375539140868453777207598657560453148191981076393846608904804455746186699165472838185028892406725687608032641642707212196249184398514594809182786948588936542466398176779805311710257865166653866278791350713231157496938545788345470123712147956117927964371879552804138811600581995735580774830638624894028853253847821019195386079855962544066115889060522582127917061872419817877562826235764105039509152596880463158973254863853169501867406256299240661387286679772164331205153466976784991648703791256135802207590625916452974988142261795311374196911082452066935711490487520436908133111287774872045941769269305868519837242016222558174411560929464011328462152120832449118326042254931221963612243087084822826267903144541418897883308256095228973100950276056398265974107417469811263583858680689988608161872164449152309412898479116635903922788737272794693003466765601293266293648488416115872920503085441785763189579543664143251360331375068365410803653475488749858400205333327023534866215564479792111136813744614331801579480855415450407139445142598772850890787100795587288160843574136613635837541499715959141149519830335760177423398039432643885762976848112608139956947230147410415098763969994136888332374756167795907272483930402097233660184211135279098859344274114057990813679297127121785794391439976733126108153556114245069926009247488375077529312936722543922580120933617609732326302928411423029575111152508706942120854213779418744817791906159790343021488380527728540481930198699485934059091288809262655290458499879589805230647389477508299307177530478971599822964430023605268653796801127553038629749138189995880161930300540480997090310455462649789455173030398408498866376872327227604865621598590940033401753082289176235877986003366367256348193973301006438401869068663386826842942504911834520357851586930769001987475041125692485479253518667727629242287114465558642856252825822983319389892192500902524359254584454541571059760788406495109108176998235577911441428241855087211577462066277823963890011703205040741618456466698660478343446460557614519479702116153170665791659127167065048921260585863182728860267841734119995035409609150443897444462825121576559491524904773888240932163918022109069757005078902123889888299944075271274896975936232481032396546134430003564726051339123518343431349616628972980648891358975039155242077154218221374697440786783407631976391198078014933368297690827399351916705309611958601635472658346927838004698340375781180093107066633191107397062669762710585624521640047192869985877955872846988272844189896372484549496028800962540980478478844754102594754382175105040689578089355660280330905949738051473040141808599851341222589303159023334248369357935395120033858771510868829504418370931332343019106244603675903427403875454095859146974465162690456800655291199751073769255749425087689020081004246079726335794475766297373712548225738253178382559760434118631974434392560205769140581386832403941094688429391992288500722491445540660205212881405341737262738628494383666763488402902484511718171403344664692780629536620602268640683248404673825413652213633942963529818143231230282851920585466862280537134505172743571925320255230033449146058025223623287008806686275481843955520881989660584052749031885814942420806979764102289803454804932588216191666771567226870403791036130551250761197211223875723376130042282354298630181691754638700291963283405911888766441315555102063929561247930695373910768165184443614716982581619766401879861044709681618407037073908875100434240549177465049023561519109570238424566164577844564877776821235958187220195780159196649744207074559951988232588998171981290063247417350930580475790892653428873605621219662321959115889151827460728168963739433250738862896881136116507334913953577511187481284054237881388491023379505248023157876750891741394272451124955233093752121170023686652210263456675627611438728038291151809299235806001689933359033777308952021132183180739744906262328348763008685842891900135300078258705493232860903019264726204560926457613836860658311492578560991612486785038907994927034304506100229544563970443334365758537276674223950051046682009110739251550369137045036512718550933032150854090260337231849639102449282279955888727074054362028465574457816059582933776632787765487398294892207923790697924746396067855628149443447867433688686676076605667781766405545608921882556935893705806656173491697299341438035582917373621095616474576200235014438836607671680727743694716162729484391044162601350270416823685342213526284565802947693242239641743734684563947178401983869836695487008401386527878183393802475497845587063054693414532800253098778954334622020597723495393966083916612419862989530983476073231868105695200975269389267319159053932250893945502229370427257299575869212696269264392037983381639110713395416047177845678837445706249297688820841305802954979191091534628489082068745373617615713771168816575542765112749986901999337207134989993086307541410158389424144197973913435124940854490971205466482824382879045469991870614695572130647597545855846482943542971041089805057249384502531631779264156763070180979977173353490360617640694381940851253849031824626439247506991838515779980761910951395109530708377489459679094352914020023523977849458005207322696842226565281171582886840469568693828792546392414711736452259989426881823428332883629292405280120419625464196882897391539837628323251811796818193099519201413122144271768808091638566477738795458801754869300034379727267347284339200726874251449949307319568579536343143443728230099445036154103725213439385903140493454666982299994965177847492811544461230670662048278111830479057966024841914479492164493228863284724088012792704678163940539651263827951393881714269654244634819642009520271344910925090712115097923268250176603994358615318001885200463235131298686876017670883935216636127654240087376509553336537475206820065729055632543223954233403807175994794618764723465827251692689031875049035639144569690905015666882343102092941268760422680658265016416860946576553152796779813810965368471930961289934019522621060790027390805572146327986064304540694244044226578887011591075177716561862920818093309122039616563049144884234650739071804456140531547435231234426890482001559987116941360542611783643037623795119686850380961718220835422408323148635213660588868381186245126866984474162498350922616838842886507048503750809692375647883612011010442556467420695800358985613215967541311387808659570539932335135749591211005682776083071730407248232290657277816516504267730579118666184182831831272115373068199661693240206962667693369814918035286177760588670334695461057969094358293117175364730333122307445183014076649912931073336027183611195404752704380144087545049589480666980925509428114088200977836838121307425105421117520855859744904935731530380841992551888847320902362689556330233510202777615466353137963503391985866675974679523568978272616175700321777391397577233984409890739664349749488916330051748857172831750754403814786136653503824748797490142492076134047392339886622131229090912183295079797633587341341792539366442324170417287019662994819376940417177719149772184974857594451696748602807851736131375230668228678207257072138863695454734733150433845804285101838526584117242802127699264509229713036858701888849092398426169049647359463075728443610105193528232610849162789545578682896435084916135731736060305234530290300432625045554840382364096087693469663419619429432794874537869125901099998543851339564276856123948830795579573544290543934395142402081850409349906193657026497009328867985373406835941252443569030776951810093706583300554973736229905954057749921393728751186459169047464021289947573803222211407516142681845049192867952043644905856767328221451575694820843514246189078597318558506774981453888944955894920281020294348040662565900376350728966315449257722680466897060719789750184102471868458003313366192862111312779992669972854196292956350451446039617589381535019265122503597075282340790844663500410436458542764600226384843597698152280152588548437783413911451407800989881039101958998639907629303480102089228418317571205405942459747360957987034843490226362365495800851255217984064075653865194879664111191194486654303713045296907925131935621903617225934400174988591807736563502802088116351410227545386061599188388921166132811930042018168243376821440650648274209190290067243731308912929470934823238840750460860875638703978515239432163103185892046938954331100647232796741657772777560509274262226800985737638543959232223204007990317505013965763345272303783695786669474642677999197248894501819024296126580500541974125513205356305687193512981682390916357155536088692431910232021104545896109934533010907530475000280844587051811140956860863563092969135744479841853146792910999743585985732608388503372153914989879666347817702542763018318946290819252078544373677304147995091653365214218510744667946392014161206943903658810897984040060947824730611918227088127259565098191293825132015031885199335683995533543507613757912002036480129398436876377295037821398962004152935043827526488170589813242318894897317075690437102804118980502972551982160577529771620733359010277160986964781810420110059633106905114550610290116588124082817120577364175246732484502483479562851902540676696066211957922133938710095649455712158414854077700195483108930355385283184562067983966161956106945852435013475886713050066198147102210518498237640682529521551192072030392182931454673261048530209020519112254653228364540418473653966798918058420517138176784637194635965291209072680336104289270613737587455947824826281060274013633505985892199126536384889623350556999481429653041358921442027691086116679098423160123892559584530498793620752533588446047175232228630393990719960993564812939097619352885923837480828046223573699173579092616638832579544343573013173326346881131432212165219212885184333427809735524308223822393376104762568292797690597639698137001247194555640073648219886202171422528658388654394272957847050196377464027117915250860622077900616591657318873991817691084403609018237290181693034276194231723462341558971382546166968259494031366338100210037430673115516806136217576659125084456324721925405429834083863271164941201271604915206228377557998444632973661306535708744611383847079665056480797183692932400144342075042897980242331556207432252066394374728560683219984838609838284439833715197779725204232097444386454846436308430765591262172671010120235142229313116877889154530051197261234729143449971039524983311717046451029412266021536298509757102502607391681987931945511020777270962442760341738174085557462992639904802949294168806176893366731780685420044480695592544577517457648317739257277727645304437434061550955711551091420757277282557897228078208339268899661310378531203675366028369966079894989343911738179006700868233379949688448904661263691247052581433752374936767702472571576441110474258212578499213236490462258998459483150465862114522835996667257519148795220524559724731110194747215668028445774468923883631695601345063060907565330680135872136038768133860031840724671754142505700502311154350713446759753713382427189811635520642136031248954958574425313422626788197158193758928978797886922154267391486008248330117622858829320087366928288332145154634803778422076943515055376086210862971022450221698090983833676165504700641765058694905200177263392382374049770938048724148190461612467752247689517346077349782624142599629151274977372519829221852631245326954117204007238181628743955158463982417704207075223832979583232016326860168849292345701327361791875525831668649498706220630557339060886146531114354956299341345525731376538129292291641823162392221504584396619256205583542079559818859961268026649583099002287040124042322933092153708977619811191507731503365396033596490946493205752880670646173922833497280332865711636604985293620650089491171962558141659451832314809794731777882514814475894859791155491245285987541557224384726568577604019351084808507996919186575190876895308875565676896013664736181143393844982386097541939771399568732831296640797268118687158132638501657755008323365123089872493471746707691565291343443090626210630715751296864496045084938887916159833822020292322439599404905398500561605863899910596423322453434289808270665253462525297075311647037186951539878893839743942215777282514093513563117948169782982941679584691755689041194739549299668073877784637121019254368067812357852312158226426333227360287793092775800697325308753904132994823943399067149676658758284672221981012974065824385767483108373402976358814754017296431574127502998725703698237232649915973000459500042994798466068596200084397643662350426535498323138955459455078529075178314629996475760923106077822296935955912416480959750505344348592532065849255661856161419249634029176591141757940668796985904398830878933667768234389532330264934206732179941431776448780713590358244653819951251424439822310631728311574021079226353569100647955797650117101911692539158078908092627866518117228793174281077986675339998101557027693959377956177722234470573498498701786869609792381208174603389717596112224184682193769228910681634867711035427333603244347227052593667899697871351988045775865282782293044272203220317526499426761056419737796294510855652853202459141964183961497428919819596753135406823305211476991384393923148509855032458282229075694157356823042959041215930998493948775113687689037254855007791000908729488443634541339470936548792340594974867333535167319054811847142415594071937734201261644611135111608028536557677087379570545957934198580292483487547130250263510038292932316819267077841602844284858863765536902744578101551545005128119173917052604388349883802497950300823542666295247616251897800043905937557570449603735228163073108757826177111824882707795328092678108186684712720783147044123460495558919341146495684869082271068607984604639869171333658337654638455495519744035103758000001477021534975700724955844861044337773400029428099750233845018636293785553315452267533459245680232711679746944548597819411804407015928740275203955609881873468355397871228305237544045115032945941667216898525547442735518967705458868229349270325173978338338778265811386903573301347662918265008339066938427724358868906956255761739685620396215441690946271445965097567429912818151818236236470215505770025614822427390055746985190703373358266475737113155285279250247215120694495346432016247361488707416383413176720135052317577008089701550909891925781448588228949801794899731033787144900796150537729976220721927265391400669313233449811783788217419437357330699101306361526490402859621578606252193987662898060856089206410800886097238192449420254953647545495048429116853932637592832692367895023598726330790641808548861534128581814026709987216876260088238707220619373106353407729468127278174570446609491529132291431268931340654627878606722426890426012548056793205685240646501651132641586259290970561081213070062699074240925087453760788765521618020024842923330278326202616430471329005948521728847493278340509199542225947697845969070875443676330187450150867114806890540363257328203512087461907088090429085973194461498559453026392493942350922085798353743408046423703111608968974480539827500260618609784880959517881394100859969689398264952971509164305558229508108551966330183202710049682865751478709199981995112959606122665317952776369538854859157336842977933514438148201283952180101763580391463573989169130407806798475807742893955080507423678869309003623110745950897329905157355473245160280314885407010149147520898249471769535037667064040266003675897702238870910903358711137588893148530445401636106757885889750051698400524341483091389097990512329109218049063511311593018038893288928386395109941516049609938023328471911787980433046517166908167904517765287819084565790431901320404011804367931094910421415345786438105020883176132688888705406434777487918881206197697483694367068396770409483442807049756525733647646009395926047303614670073539280682841547421836601072336995733570043980741495722878359357085909492075928240074887015514908737220824729494638167539322458787225499274550146945849404091549907082782064317719510367611801904430363249527430129495591742169516317820405462945726024385901884683162319290908120282442010366040053161712458434913876499982993360938268456079454191338385751342823652138114163877190454720584948479482429476458028961727010540567283349270673367557915728655567554570747148269518825625369292617658088992703446218991121859877424373839579356997283909294565121383839810330456979687316053817332855139241202581213348751225578059942088547722755489416877283038756070383145026847999609441532315845346915116220738198891821413003730214066718014651115579861415584658550801466403127193784644785170917287908422240452500130526490865835966454628304377179371215805490075958734174571482284939606824890501769609267843418218929723588941188715577159579990462191274131483922569423764930903920251784658362656945522670383721123975356088520037572845195079888163935816525981778151177527792067623594976465325368045682349564770298885189886306708337006071224849395779833905777182064521856398233191771551283916421567713992228676270162200867025820650701545821785003155188286538578617728226982867527801036367746713008667787456433403827386143178869772880722605002181291458303145040283214410786541042928923640651363800554016427670109980126407039130047646123175375412994497117781371192790563291186817609698506040002176671192239180790154344781174313054241245743748457646400211903360198531167442913470724083009906001414158927060835463975334831834130605539784576047695547112054793507862096254175366211803666867587417893557132041785893856583931449602912645316872355902116979096762717535727783774829975872170744689883742959899033628945162792194108300186410555031713396973643301719495099349371150980556540911619008026335449704294626409037551016514428192503097835010829142802100467155841065729386037129666117057441235389025168037875329665113813434438276593490800545648544700837650998680849607954424963880877935830385033123775716396996164696553651699749832371792269342111835702864825312276771278070317311022704096865913772031692997252724756276582177662388888560858489973214762817529093328483157816338554525459976150487373036854772335323756135403722027510693334440812036623531433307025281427768342383499597761503341811207527455335769949282668559269295123209797274120901911150240932470938235202000390334848122492219301895817182925874319610026099875871579291477916112837984873161259283407034415695198565877227408711579325069883335360601617644800421988108828176827193671169453129127725029522928528781170048097257486721716695729459630384597790999418926203356629488294605655174356783723214507035428765222909090073918438042305089711132176086503759204815027916815462097154952900702529027175511858102154760936423052817688290605181888874428372362612698247983546571378727645627268536612705451965953970683647256387786659635855308575288232090769014294744905987751013721880207131980821445478987802290600169189263810520716911572300646830688209572460526228240895849349601210695118467220784906939705981549311700768696365775706830082339295165288211051596023755636253869978401948389678312118029252299451247067410771880598113333444360272882205820014382990268732205241853653324275661863394243445397550047037872205067610584092138678674936722043542310188584835641176915668352259083784896148328873576628114297648176281238048652227092911367024533616597610596932875981069049010599571361098089493240727970058257713314668956849583894469757364496605251035684002525761934636790836654261613943365754933217354763964203411636277469493244247715642045723673722027345580441110331241973281365994361130164687171094246466020265520488010514008918519349470467299156465673882119858297467391270255129137680410757159879670682769960925993883267656675974809235518201401887007888765677436858323905168830423439961545285362469586953257465599244333996028753960322220422768449140957546940977106997745440631311784276475267374937324160415018831780911610846466560686839119593349584480473196687823016605706348889409642371968268074798429847924614688404504943846890336877705192385918609633266123111775814063736464759961146732308944494694006990363941109487937580321086689651776770836222093241440588080791617065846995115108533207521264301555647852813592206582958457232229333199870744966183033460607835398003107986595000465532340556184039482188754165314279844488056179290901375588632172658346242899404267793222687932569273027914258434273274796873397031762752232563873497174603867733150457625017352957514427579274014734305461596461486507737498945845995279782209702263137513657065856013235464718960929855067032186583589918791498908109544039905125272567915915850395154706979730035198422206335277352293598958795160831528050164342310094820695582561029130325349929738427420575450190118114433361327933105940862890924298065550625464383016797678071721900909983514958156777486165733015365035589124966389054123460872779851191876903394236270049266731647895562802668874254775741475249970950884593800340304144515030897293449575535258832498568470646213084802213743812508179988065290269513540596831462971370170638009742092648390876590778207978800878868417796072857496034606863073500210621696905182110559128561546315414715825844001671246817480048923821194864537687268550006684430968876601096840621830030761171789043290598403140947972422260416725993829025371310773327614340490973470057192451571839089787591900587156505775457783952632805002399370566126718659635312655247631809461252559214523584221024294349900424493523613934771533413231794583095645465321092733663167367775413096463520100311902542544289982511275794061832363230612327301295960069404084290553225234940302016822086872820508658735659150185181224880573983964674730542733783122559529183543699986411996005612901453993917993551746513818026597638408693357602348147906608875197953978945906174261633489292335297151212632599964948222019587922966019522360577694731500599057503544941615088282736088445857823045815902778141277357398808480148364231721313906105878076771423930552865540534305749348021376076900514243438231389963224773732944804186171598455515709832405192965056056294607820081980655910884024155572671635319442710323184842655783235353915123469672160053599690992499760584389239978806655982838448930732000865291648073180767157058751641945597627587256853353708703961146415283468453673059109104626165767194793573002342860345437380288687788982950578456016047720942393565933464783498474921200151728132546425682878062579449008951728971325887038592522244597023869448259207557595544131932480457564277615815007965684628367114502141170212062070119448051786801764627085116277041347462207559721768420955877972927947578503923614227301449226212867023422864423482610390623779266810927104813333914000364084506125467226691773841656932099699081735686699394411915901058193829044929964940644076997282117975483728261594518968779663491502813854620725787334935430303471023324124438549532917028846164553736894401977185610319026763800055615601708377741700437063654211056226814661640586635316309782830612278359390568890141749462732053350262646110974738680439169878733859849269565415195828501044388037146581670844921325789562955951050469377730182618181536952046338858306931674480624508597128388395801615924408372841973376976457059765116249869745901789595425495106978161809888542884181450213303940218610116771077365302964370548180660909498814888562281020407094662217178710072090159247810198084404753853697457910938052533070752982386014073080019617647580291381602135978369779638767233420033371411540938694425411392467436577023127048161358229479297883777421399208005458976304877078468698134282696096051925045122902436104828956706911391614054820840999706433275554956895222558130185615770583490400301090000530442949788878583686784872509571695950042061429998602493533393688865706800469524227387694701112876009522521648213279884612611993771260970677611392290726473679873480788212858125380045799795760234212553824170365481733016539950153108144198463404581026051385973199606541729989139244418339742076261494275985886493263629077711196324496325800677046825155222582527196463063732221487696564659207209137942655535458150258090872685036156044433896124513303534996356573673902927507313176162782035892529112408401037461632514137687966648632645804058708090662531688860293572401695905761091664809152544322571642945463541559137509943765352992410218422301305503778099407384381660302178089125449833575059663549331059995463727989110885287199197648103757446866924007222706307073657694687536279398050811274616972886849549033656880534830675751886989158180486833820076016853622475537655703731792903225080678564579253654093558772687507342640904327146641761001165510202028011959230478658600804728866181903026598404565047326394032780753408516388827264052584804422061482167262404941852833077559213931080193334673220494821706979729830385355355582737585609685727036634631668568049262505495755709476732233401568708832783864032996299738575464410882928110689809723094328041655168041056407754493780514271724974726653402105157180900189491798183299816537540241705636920606313690439800830053467461906402200522850944567770013467481841853765482570198124737235286694319066831037925404440735817083411607395135024402581536415820356330668620926703868799313810546691296478630485382757711555550000175027555812730451646895165725588738981364148212333680291371362493465358808072353706117029367660304044112656310178326108066153112432731100029225855712661999217672094303613539934903833669391729084334872140056567682023790556509963535125630264180822410568179415666916068203930065775059891544896369956159822192582143880273902515800604779471284979852750202275654362875387696166084181241369726993585410467338335987196814538393801784747706239374139864994088099219159365457571599647366046284147403684123889947032763731639208241876525218202757239993405632751050126170184345277017791664355371089788320872110707958540088065005954894213298081058560761856743052247208099962481178684007081880217178274342130322254832770040964457776503632994629567309211692662174172396365303928653605407366882566214945122735098786217228073734850358256775241268557755483401142094795516248512241479004785549043559513427633329819173480412579212232122204267354670689413125770668954550511955819771473330667717591389605837689337614078341907297925138747658017332865264565054189011526367719486869314381808385972117465213877394195216926646131290065402846687988901689910015917081918869918954589203378979188702566586160273148659478373562950316428572424356877279322739256076768810126081169637592912346481048423636920931892965473887612428372927041671923366258863856038242843438934266354228282597832806962365213905153075562294193952597502916760572962523428015732416813100493952125823524224660825889462992061925320423523859178687521663659973988651472527311755632909575859754644285788952020471150306343855015927361597874859532958513798652282258796055068354471287891403960373765315580334517372861382083436384978737068049166225271725836727845888046650360580090920564130533870862287911141994126295244399821534287669292509331711089927471844371413828200878607018608254350229805808010959945721135207607085792495302785711881913921136004116935378747979165643373905897566286280529586481527367445638226103036749155035978788674086372601226712114513509322678049462747790735463753532566134759367398521813027889996908725381603742660098269922385615607967490978686920785443265866806749841272245075333238951492767853037188542984010339425783401379344702141873499582383698664623194974274552510185037935341084147043538342224641326941638873723593224544872176121712048024289780433743302800078534597875453058085840869343796394140226173980731496859882571682963817717562228493320968230180293483262106431338928669181361710802762303708756078033136858364277138010258911884880962174128509746594207689843551991727329418785864386059459771126930853504660776993366062847917030450230023994532337865966873097099426177172705667324800271602332650220806076897918040317526089854607657377848652746537002256880596901608202272400098609082702395153928223489794693133412101259117579756140714644523911863967780263139631722687315782768499472018843888852648181222474901072884347828399678794802886964878561463391278968740328904614264094158507703809119561731367537015697559342321075815020850179477836264192346058383577357611276537532847419651113078516736566291891780550766764495036521531203427400781931632443083684299814275639187924474758959924572251755743515176282816851940949606698468242704590450793474073216408885759258537213226927443785916368059889885418667325344361180827483512478039961558795490088729157058189666183987278888670499370989257505638177516021409534349521424478854552695218169818910326503483636594263536581945648022446812596760074176340157328134699433579999061264232843549488134473425563239639003708466578241911625132571941891389182428540091663263285723115877327364047923063329397350255174547638209604689670800411233543518217925716431124786666586181508192341034617739440615810771339226135749967057372712371627299152377682899344362300935981061924765800313737782064151772354385463739335116125193844292113421117353827848474729867003113894407826016416320046400483605224632430021140708962915528972776741938684578387767764547654871096773879341764106088911491889395563197131511115142861338647812583659358493387056442796526440465900016129720851685249527475791811287277783436370286610271290962625004734635793832551389982949621301832409807608801789175503625842833722995898722719496894030304630278830994708596488153794053483687655907760663312680162729160722297924917129820422434113928398719300729367484556663101431306529372806027409128010212639006585937433140461790066215520122409973000485832899259041627525711298529045945932620703963296248471676030880153454632219178999924217066822547261213288825270333890625492327384420797928754798570994566211515093752114311645348492455390040076473014893686990587117857435659937226227274174025336849359925873369089690766477842310959823638215934337425532630132983533854336065976026190275272057162131927209175766081603883024571002908845587166022951768759828274337923484857437601462269366121629744022880801908050195306451152352940778806263028910719443276620545936986568174605327241013087409977562604042526836269596650364131273976153828537917067950611566439145859689136374396767886779464049558274602927494422513316329459586517771128065719619240202398871578254828177823076149516947576526805197810308039542375234605974891757110624922416634959414714821100774450941078136353143028215016290555235592661595350836239561113849953135051005087595931545711341130452572034954861294180493119867357938052174772019887535406562183840253158465349392242161884987326219156838050946517962157293860299549613654743452596801206808273355234417201386531743477600825561949614545728749667461164990132321469758731736124271594739489500855391966574123953516413928245196461121610145139636632568478104892491468377686649883972727570368110396755135831710210199409221087846693991294400401530452215251455711593952899342434002525154070232227387818332731986013596620258397166866517928975640497541418790739481783046936789943636552869414700972279815533241415207596952701205705397506556436250661450802464257994938563878763804532665835345453731796024889801072512631194382437338840437108361790053193823141978834359650984224250250818919314767114328571790713321395189845893875443311391658830309308045877846812647239711271450813508722524845930655900232964292694093652841593975333861362459166402686333184032475356067782284777352136313540714209731304247913946246284037535980976000598022562238977130134225867514349821773062921969246075144064725780880576520662213954643417450427008266996829259978117345117949934552998416840023093374739235931481714128622009914191158932628546564445562315751592668743540999494493666798504464667819602223047272585534764573203416866976818561510899147166361213594156245231681581618569222972101313544795299589714830901919527020999623713949505844181050906508625803411778502457978549280720996765745424436238474757198180630908673035410656153770710032195222366599593641731733657381363487126376454141623393536378722657378708872349822410609801661969971705688512659275342564421265898280113959186697416891711778943313181064409091213223123611260833990205456269472052725396493184484136907423462578536881176721071638260360266309001721808257856801492854386498886313682444279921378766498091087949274265410461559226311724074618325088945384661411509966274514386692647222950456946675427785358724280946358626227665354619709584155039595815219949343326919349699088917945981682119582868054644343285886485935430156022426540569756708246645498121031093937469808221229522032953801617478725471932228662362383006567814477281577996895133991416052155146829272342319732500956722398509080619323380503323030133028673981771814797858969530406531951235115693683738433557037444733653364409579483399328733098550719003232994427647438715739320505025752594775273591735202766150867754406276233043708134598127403040089544533566292541437011076792864297650018366135468386024141075215229719485851155487028400666029857582019344317589937532479394012957248996470682553046389939214681534002555662287301901511733122448903035490481166027361871800142877027417806641870055677919027045028266870277814778075420324671153438414762999215207619527616014960767717468366137845702284748029099097486535429324276525041314376446677160920878408039589462164978458517016771681323489431941397258310120329159865259781630951177948191386307812744989300068060834207978734400990943357352081577880993818629820080353877783598784023583575650390434145900994652353427737207143265502558204786263295614357686254589273053224213288260862431881441725539025062366177353222046478450611316541600707952585010562813425833248040137653087307764137648557494719660952245596333205423102061710201186989156019476995924387559669260717200067160047112619857455649747337326279321433651120239496315174249285485806229742685229927044498796169269168554094697886995626244250168951934309708916356021612159015048665684194948480434405374534513307465625686336491296014169690822368790985209868109110568552188724870899999756205886186107257158633623056067731074133304434733431421054238925958768543470709624418550586865840969261239060119031962689886777564375335342335312732999917400646503071444891675612366990470845187047619221156836024171240892674721822971465668816160178181605267362009867286244181653807267810280210451002263903360430561066601324758695829177535323579748253330228074210138483192575843919570791091418909971280395430711321046916527242726973573526145170752475172792175818617750319380843205371706108824821992640878394006951182213039264413645265968322872369736736185167478278371391236196638960395417839980946057201064723620112216992966117697882410445614588137148840620829082552551895536134969938473366112744262869283559544055994939855061450485820810410059927261047595666572802426116897660102215443887148541996613508141274571478546074923333720832684916100847841712782022252375293947266826467522881890835478436107487153832266490979383188737854935157851334442820942512564956046222632980951518841131352485489326092079903501463428417902412175974939604222649164032074415773071942837333627637363271318591987191931810476884819190505525845925736848453595723722995513693736897261753486268923116091989549111703271569835283680226837276280545381378982466471606921433743482247623542608653131218022778275498717703073410022320284072008997417027016784254499780109583385914953063781567060571616873192102216665244950592184039987040837255051136113447767256818522246756108132377978189631426492620892435388520205989459671072725286565386541453545359742093116517016827122197464152457947696597208788786140516873099903816931478330475568982804265897376970763923034740142067772241338722195491293921198213443271622274881651120499607089290248930927006418929846509266684357795078766317047756053534090675953088690476583915075920066810886458661130619951804789483077830652895221001296111932087383328979213620208287334879517227317409194679150213836997357011819918719901578879833725198223382909199245487787986776839018840248538998475411849922655884178548224149551802908481569822544954368884590116575526246701992620465869200565336502667792106061674326444740086273543706927179045807660929411024895188254044496505822539603366457860346495521199108834984700820969676557231815608404151921384326966636605506189036177796785549925472166933000179228751117153103150829402429418961939081313508302838923301099884027565392194705755540074481278462699786403859788382771420060347868739622051546312195026315970459317074392393250222899613977901877877957551126346884953984588935961657888916876508741760261534975059340678668728200730432861195647479492720734095005670515439545706958591536140440863239662202467719711726314275190252457880943641916704751336274133173276903664499691547183097872059978748060636044893995334182029915187649620920981049098959436348801155617334901502837362254692746042556146575654066438505503813404537332276790111909984396169569886520271817007813295365984228262794076492130828329502896699128306086564309583698340876787663737518503174638512725629007633570402318890694614618395606616599408416673810964083339470510974918711962492223489229212729006229134223835139883528699239066988089124152107236548823794963281933500622334242362797491548400787741968534761781563930726446017140555312253479577462091512096666057021778535745564910714233160343425225293424021798979756623044292211970201982155213021506426116916273476448442028733648670864381257693266331699425191040352340586005367641439741865153401362439016956115399020928383824898223984335676292976032942268973112309058973356955568179168825409020370715026629477368354631968302366635372609216034970006295644798539079118004137978217177440733295319478988079998762633330754573462341665996055768471886325375471734650462210077526993240302195423343040849952662790622865903711462388270622980962022294886023343068036141575663164505770041241033435434003540360691821512149220906707996854578602929091546429559912259194152247880264997200352657439203583058288531418178635858035765914711856548744985897623485059622261252241020253278612890980073864273141509102157655785189399894448823583477384051534276480615334347247774992743328256085400887585248809111090578709121853163298171930845469524132084797265564070381341033563891179444662017872561762424441699504234621508304091683664558873447616269392050398097259248433959871275547307464108232376565352024373260452277258577370996630630699848647320847194948393098357458473805607534920258985770603005758391829424063405235811561427817759767170403680265887230018707917975447326265828509033723827786060702530004456941911857119039688881722587264401739896356209948583550333626412802805700572172650577023627558514887549522499843479728547542012700204816190404074263491998984722998588097656399158305179917308074080743188112272699105133124287259860967741350327441411915673293794566596073812215381015614600381135434400612879048897628136082981888172595467677528477740554384056011203145737806234938373895962428263549107377838183089718272674926130935429831539134642405814759360936441339818800390349731150017696538406706200759949160469506858423279269492287768757086226535576890581668033888825969456455171464522771081184128423242346251941473578875167856903344471355723733366738974553076412512444614784655457889606555748389240119637357096941027485393843769174505823915906758829950770362701067317769465686552871299818425291768119339154200049596651392998387695826820296816779416677845256703712647664254833638040063608749122529503987543644198629643323495778317802261260923303622038159423739608082296640465897351387655989260595967063600410379318082574063434456318528183622525882157066142434179744647422180263249981279758251926987300865178968677812426568397174641254217583668967899839688055195155451181700487676480483394770773656500911028301317924683591487988260963978029925460041457912903935387715323035287834109674791823651884273162719788794945859241259848931733802445275372655797730088970617899283497044474232594287779663678120058302744453656195880802447848439483206394982511660494690610859776012983125667183352605190601229395196237741794764269020677478143884094434674390364846000274963611206933981175132618769559395322006520680642616794307294812395736848758753081967499013469910638824251543256968360378244306010650284890929016872788126430688078725131550730178555920413252583356293828736902752775088195813383406295892620800718046259547639521693075137808442141934822612450393837423840634440791310096407502073050842409019366589526335737423495415948544055626818998490129973424161165747957289135063153714295008283924928779139180753150006523309028738785448983101822318902060458725282802456004986951709637185322885037851664569546467597375592607880683929147026734905134500659873630819407749583971901677667413638444719873640684984237924559129719735493250919964812614653534196327311271034045476188761125862331392190115454333187085938472805385229261755986876322732053195244661379554017287074741211941713308427869201324031665237473108732357676773205479800764656878869060295967644800113311769351934349865689174285526136858273672599804266465692575049572729539657067980253471012239627874071710775366363184484410826136290986574050875501720279566929181400883283914180109034709125954876221079532120447069760236751821837248981627528192887228879783424120120839688410371537276497120012563000496997023259093879371811954041665213509744665175987271086402913287824638900249629872937955680917217276959238677781181504196871836406102728229497196060884689866491001630535246172914354281258165576574723506364626625210831485997932439444417068724837282698829576636997070322503208905520516373657282537130763049540963718030079697655558224977012752596840512873616751465964210649700942199275632803890224935565854894560391243864004206277434491664063420428635740223759371433014060410541688564879362661284732425000298294520329809874311040316039685101568028650575754448277174728103415229319820013657458414082119743814178875784809737079353324918504777563649839471186776632689943864848073239603588734967711228557065089084376204985726039439746436347991450574768675795587639020643571429302411461130359210432856071367315494145190123358704666169819255290779890377508010170336974154171674988670752095465752802712383815873315005341553339877302277454189655508313679084503554559786946638781714940546432940700929046008688841420465460260331048596545046799553320670796395639547849728504594753920756325503237472824207153511156083311700227817609801752873199453994321882547667159196350375754330562968013696039700448953829310257257068798833719589196177954905455031873348290611190562398263978509864160482821624736896632997610659402420155227623754690160457600778674792092017674512742776291944117855677654268833832614309859863843878672882103798046210088601265420256380171359356541074279787632664388713965210282145837208224440525985044967248571531395771705914056994674190858064339915366559482629225908511786843437861236345877134510642343853199230667926030208777311216274434887781894980214295239025191771989533789750582954418645867942202597449170087114156038977878242806068071299802885526381178102763578576349111234804155291762403491414072262787983553842551926581021938189150652268978977783044699968463507112219384943443366285141595954131025004848033181680904762055745362478196164107567509097957643314197811378820884021918683240447073965366789459529975690966154296129249440660369727329305974319629954729333346720169374948589982490231970721343729880904155379171503656146923261477773162706271775354212772033087323690512177412203099317304761728590239567051605795314617433439228776699824382429270141142872952370469428499014486337382050258114822315298321410823876791126086538644790820347094252740263588424394436369985555877888637831015262515030463504490860497071712111498973998835852076449142793586056673786310760264947166380457332818468092232868234439484038118960530621185949686336622148952018044944571734431388668439416437671782680120334683458916867629716988529193300989050830008870643512131748942369665837858174402104398242750403651131730697388963729567527069309625693033290702252858865605091945793299881848211210944408179981311134600688480105562607937288411999148759373914042198295752908544610262284775293632975946703180324333396379262719680764482713236069636966519055218687163675837724304504623506507121265885526104017713157775261566546563709192197701716325018223553373323343983751421366186998294832170375081847017921520466371770205960358116558432106298178674087136005875231597713441754549402558034683006138091155829694389893842869522754018282708784797506945414911284601228456064078713342449008345536632422223612655589887440719112460007301523532412433298000850329036042261070434428058704461440137674140871418730231519426340752277075390405366654981939638403666776806618094299426644513894716728972756218282653497967815083126053279688156614162897452127659384294773482233351636151564166288181395929141921099544261976402269671510628739790567080492319572898180110178135450100658335852527580795535417801754729638048122359827645665731040886223089175855301938473457425612087709114039132070962973552468179742538191331853481303666382192307000561588932971581863076369776120473495968247088852943584967062761180903594659603663790518269246439778508891791909879575501645576187397939737797479890488775218270319851130143020613050291353647604822544370130003021554689035979494883208207600696893371416254892519210056854876924974404096344385729595163507289607233984816140047046186156129529845043909267518052286612766509275550568662336386192248170735170066739645210199788385973214959682012179667516342484908562556904181335511583500816111928330052556503900658115912145752096446406535205774480213985825839102505510241670136188984413430561170996276785464935044608329697501385447870057093244163358025362648473632955253126014039418601701043714728019879478893221476383925375268637309414032705565000428097186565152408331500497269116721289971264719755210677217751723848531653210644107508398046484161314700228101441437071145474729871073113489223539803252328454452431291706242940338433513877068809428029608766937964814980298134960553872015244776123672951975380606932882143212882599696831730818543201028770110337967499191138455489466794999784325045525437427720781097795966334523470614311808123597111970349945718053195366913972646598318277521041443335739460248710538381772983823672547326086813899594316815342268877464803351424190318718750535389785428186975287221784961363341347824256373126648238417160173249582226268432385541540610739507970133750369929025020425792063501108758287556360645411953638052931418372187547520137797378568067212204008614781264160415251391264865817318101070285209085287099601129334660137719661330815747393641582950508545704650310652423015032408712463017516750828554471878574862354785179583722914274796958381203739696598616952583659999779632517080625583496154869808763960745692076978419689536862239195500779864836815339871737087941536573402982932956424960147620285170014194373504046553915961416177608585120751795915581386704844806484968995201280323439062581766682079098189365644340337153908919736417417159886578570030390577843849130563328012642520544252419801764172325327974551733795173986016172748999429134636902657323963685092381346385279305213544289557046907643633458819032911928866924629741311537673868055007296387918643517290204671142715077464545487066147771749631247750452910407464709088038472621517113990007370376828681353189276198143710487437633636507093886765739687834123898812678356685472752233731986308946994649448301045362928808422839724416961875220404024342039868012848105975544695187286793803529231702362717871338103901590084372182585373354404428191052784313367702422460891574614540296354989939996831288801969403717949480724502541683201705495783689644059304681192172182899760919425516703198522870000280377144949924270110072413148853958658281727792872979644285244839352786019230365728219708808740621446702648965413830863970679441629013038935025001890342418179667418313023748651271697937008364051085653447379258082703325643332433537350422624903425507865836885281988902155726587590407707684055068215162149783055943538755678739682688246411854736396725831321532026537964265422460102837073407162818772648206740241137544664338091515458324180387032836880960471352166310560167472310962091463246089425338251404924883342460714645438632284125984305990047433047652260777653345906247880160779355463424827982962703708009864516717983098280100854204569935665931044830964107281269861184482608421394261021720325750982400403177871766586080835834902011655091946152191066626541909607271923796515853244690621048198641324891293199511225220459462740395471559059992126350352853062861450159532227325826635420031428484959173815005671647942834612962382026913539275595107095019191674550729033010704083163424684838234139343796286854132095948673429218322408293181805338189541809659040621028032473503198638228200049927162635198976756183180425219526995194247420690374137220941933722992817031582356637882430594181467787177497730999897767471585611437531257597960876139791361135019212368434846642352937491738157742349552220384299186551628053223995570245509382126168138558083971970662148981793191837054908898600649064637460506265482292491145128585455606141518241879926308835734023857829007902609817257281858756151282277225294290863475002325323624256865418487540914884603837063660906524298362281171413861433807048135762841649713527025985558355715649578415487010938351460326318539682720425837790982053251476517262982041386371051079467143903389496182847622204752300103601227361819660177020907606580214966570135916648682972679457216315965231740071783638229389887123557661363634253620376141930902469186873410465558037673561262004937856879717924778422543814281722518166611965166398940814258028826026130301545252218805864219002303388721900203588510805008894177645456718216775932032660475923420781366092079000704784640030149275571959275704164305971862300524182377769231930726905249516969604921668138368416454250058233489964162772908284173049737555770598585195825047029319121802321008475085653587053926655489586615393170699227682170054568541311514495913708934249026840122449733470187344034767104831353892051348352752947825467601142955124448303373121426321241467873397463922886182761078936248509127271780620275472518949236480094266655809926191808313032565195179694360136190554201288257602516992351379684412280182989948629290503454463899786173261053880140726725945242030076970622130693568087943200284480917913520172468783691587269597770698117269171741072682135287914338518106674609833320566256562749177547509742892630676553383349929723883498713651172880149001638893308168409751235593568490640823029833323538640053237701848793982357865582737659405601685067591120542134540264822902198132027997045464012272606644748771309605434524817431907926046135270758062237201387510122610446797792454086487270974662104315191548521049986353184676195004447273007481155487652846974189744981076476398205092170520029877309648592279710837251494453631476498843458511320863562605923658882631787915504588507373263268294000934544081300335841026226619099171716636502208571640721326127515194745101367669850912137752179710648096596845053782933746176003103777195079650909341319086084873909853420475063476224590063917199988169578095784116119038278352284239678164801412709745364227934549456080906503858014731799985027287481203775877848753656696903205284403558048430160083133386336706406453857317487139744534918403265383990344637735974017117136190099920466941833180939528900108909317286076211892609993376172464481786120422798231558786093683082763529203320373215128917167273174508366826552438576102447340177447917108348130730732693260247553173821211308081709858950471549399605556094758554402055178732737313612495441646445139130140037066592361355656071087533034323172863051735833738629559693476401351346379743214634866739144927506188186484017182518251362835845620058564535975811088096986909647127558160970692981616308491997459375814499459068831137218616482019608537796293422899327914238844269036771629400634991485220852648913843065892204869874742477189334689757881885976331450516060709897768222312382890251428749160377822480737759925123129650848522613012549076135502914359447372065402868133345332898124093823782699742959467637752903923695689137225670672393987039110488797164847812492034845609028410565341065040004983197033217807339678488695753108079925237905673050003471331878420772380470136252743849951454226308868215837556981650423887495548341809471209661257762169292822653456564598758070740806301182201070516092985275305638845587467338205435122555215508089538221235072546600676647795519224267811200748647886081598279765625918243908580611984989035123064846255907591564567678753769807606580498506833635093070242767161081891346449983609804102201041030195488124005862142358295363517555621763734126677244632807448652426397014695981876661783614420762051820600455246378357705309770465124296470848837178582650370506209442869161858621228006717375115657064435533914159998202338946431465083484054142346535959103199369092433178062200842823241090130238895161584674196319712555412335072577726996922723284540893345855031155254899093220772240335482038065019725221822838845477725363785630333936409978496706749765064582697874889683074153615033587490812486768676515723118207088974497717536189220901575787602619047531890892304931977661597041192939000263596626372320792627012576037503276182407986452452988864466282567729881522202414604066390842095688627313496881050587930494001917064974424599019112275429250083925143993034602222717688803592164812272296434468115382988075964460391935150739776059941592620681422176424651050941668785694469828112888081433869892125553630076786639743969599655494706919278426743982018326439890266214514112962754880104149057830226999616570827274964101072157473238776777745376251083162275675028976945035979651477854192847919319408532042131790871429632290450974868269857332529686994160561055582226140024690881994535517055983632661896148000598650275986343088738373972234585070608674428861456106138353125426826300505595704379646007424424705987118946095066712678795552396913182262829784841414122966214997691760036995118133768417223815723320393927882184355306607406040002274406288585003235338451790208463955116560416844532047150533750225600489653780163170640690456452169573360313905802810484487589683233198772151098860388520054119988435031815721101643915419944923089432032052723927590879337472619583271109460932257457388304619719156417533120991598704861287007227506230187102089974954642711499656455549885244648885762966423887658377361964080180038205873947536720956342108941761646203341492470508987971000680256359199716447054499829612715926382835519951980040200642334991617772843690331606481465679098539744359142027020204153319028170407593359214238499408114646837833795793777761247279189640955519098857066337076666421884059423117629125874801240560670407830795676889427473574829278110273845661483295966124079781770250763632154907481296301084382290315823587001014558473078650664162033420808838603522461743326212696186099068174652782963812872025706558299009278571063262469868242812618037939639710578864186058920830837309227207762346808416983629143811222003132539411390707782319687656236592535490398049290788248748430095385414837950212868615282148861786579715640359410572499081547698773192888380414937729948724833046141074741128691673421513964540343851766872168432914466839945942402814015759719257345422711814316076836070252348309886169840769454963819509333230294551766497499291379443497046979647006098151131028505139131560181252685614473122189796148939108191573793215032068536909071273464567689193116657886726781064338124629580951820669298324548576801765395931834582473047898054336067834458785341427421536655726297747218242864715111249849518795168100874547901249810608462260906424479575299883702359081388741162873006571582252150502333085288655578765570744444892867442499866983736402194994566738342641322191570188467998798199447995518554687695491248896086969977418775023825703422393771096509071074772814438669518029813703759125186285612546040305778919842564606222782603675807712937612639557335404345292273106440724271437179605963929410405323878905437012092227147204465346324383895654271074300787182231962540063372226322037053595709040795014832445272980576894249380872323930815582754482160556578598879275963238668473958168923205727763250775957868651209221383175654695914566348841028602938922184113643846192510539557669427649435239406457178129082017754839841173128961087339623387608576427884344415060105531349914101866238510039458090649209700409586721115000643988128381505374878942663382806539326466514306781318852961707526068993860134167808308037087727876140149676827735329259594602731248154341103987232558924352705369120654637949035677092239736240389038198815616674910449304449162551549457779038144039053789359334602062292746893403058345248893368382979886533320541663083609240238849314264628020339310011406230242778117268466763621113555129251228301548090119150948802290303974327644198479696224030263276555750478941194080911952602237102552626398268384583133639886722108605712114170073342296283773579582251564532203787584099501763826792513235370224198213143898519544428425713878077254815851751174896469748749829855861590528038475848542815858651806252888205117442175385997248165181007091340296741674614583281093252024780112132405517533456758979410888203596088461500527348703528541649020739847682501554543403278476153454702063982788989606277854817073124206832823966879340314326817372672879492851160778568220962043781841851134676475587372132325728529701222785721333218330499584749828452454668149205893032477168775469416289319845141965179057816740970510294675649439813468573163830728217575989175763584246665497571072418058926558181702713345227841076246713660623783614930450865310271640547042188559965880215587418774924086585767732925642150575056558560005277818217876960849464840559120757169769006668523137858810472976159690707477737322982193600079988423070699974593760489814213535414927135953565859834913007785923201280552149073400488616657699931786551621506485982800961364037599454538944187506208793465167150828258054106169614815119581952986598776634905168955404578196230578045034993059686164001400092795999730866565400764299965922801222576969853054052020734229733299529825255634529018629943489756267556515881880424772014747022451342810919746667914319906429523053680711829458331716760991706989063038711969598487332807719657049559782898701777374019967222658412230401531598753647754813437720924296446536303920174034660786698822323219239730537036091532962153338449851420161535797111106109315832680999572015956981312243174333317396291874162090848537612259416124230512081554135819360790642533017456965533367845292892407708101250002581528430889829451103336495116959182655424532819173467745628228463279069141956674472156699764256710765746395350166811630275812202703888484125646324090148432193259433380668230054956293604134655690545116402968197464645457506876500253411976821030073933895142338109184977111848299159262873410943348781268870264624393465245691790301248684705219482500222914287671210779035667099558039650817686118584062925787265493689134033793677508252027621695525827583836932879570358980747096514250648949617452543335709586061368168378410477996620906466688353622471280479369774601281176186909977030881421938376925125652145912786617541663031409684338929215703970952321201099093434250353828891980475097650001589975055995186954614872425928472445836118385200703861021105321689908930883003421533231652339851417075841612187204604559060191029253910522337584078261548035460380239340857668909948790440562501831678305058007824172249024536467392016846015812730327204102217579794044890012577619749185837824289674720908068196101152576703131258073290352083145376546673454942481505034783265980696332195011314578889700928647316527669821073159354094770008280783066421567537152304790110375279830349115986223163539353175911039049254877195814925384998602636679195433532284987981755898880893678676662353675007129361942003208059797477215703190261661189847072645733166888625722908538596468140796203232670391359163997338961576739067238164610299167496892796811330674961394247798138572975611453209625825634717699971778628337591233650515118163042552028273045362345443635553642406449488923404391980585907971322728596667172225037202117876496878211560157834422066469359159462792631760938645638358977049225993696969361904794254693152403791649267720759486597257918204098879901735290259584114350049231339442661785674468392124201095625394969918953590342145303449977977364895847213184987125992036765603332822712145043175290545559564812081705254274275635022144081610402274676366303375075480960740329201667543416579487188591407812926940534115497999676887256597261823221490343980316090809216215230303432089467415545777219381248426087354223787618665969436844011894760508886835335100335421941670672116417354208564486172383423750995101674213316755091052764461668455913606879098403242999817222852297972245723642996254659145056498813961745157247162067895586639049857384511136787492817417069220099012640153896618727312698307036381150606925472110286568441438969904803839536694685406323488006378398737416532583968240956649672862197486798233690378290517459067628928541226641504583930617521692054686245153029101282861899161537618172648057363914790942308806342710434250484986719250488980121421857820432144079723262114916602642469292375556490593826299432878764404075589527756846584371062157482812152790477267286602353131002019892320998637933677551719207996090562556612299614858988125050239720904565106444503095134780904298099174574980325370835492429009167320540726180874187585113902034024022201293535474620156456251578687851230104217710488671709728289222320981815575468289655132057183939923572728488919726177879781300851885376619389570348284089495031688996566237575219908883767561857840629087541654127177735742927452835957521195102080075170048311466709739184950960711706632925709550155730162426779518980666700591686652483603439939315776644591084243710159684237422295154323268943507679668417134225847682604323221979159199869594968417932406010115745486519573231583373861730940401663652379750502214218546985132993912654919284294607380356773383060819845677540844339387181520861492391623282038532892461991080017661160732946216312273709297356064328682381580533755763486869341386990237094171399013325817185588716152838712156213858963577342281194178864371605367837940548445892761650848870689518491707024455234033423296231472058812667161973554538936579438424346059353930868154598029674155938171659627109225801382730496626706668130753265727951656835345661366110091150034408157996155011155275156212548192002287641527454815892607326476032620396264054781420880221170027488476142009381995408383140245254195725742263600517807772642045437893236049971206264356565071635914804608802005654231237009631229716182781781965979903807784287125464019887800135961440898715688053906808723114280745868566315276199921828909712810205623923195067628274550162204787272299087457961830237700834573166857567048952675177142133834125058582864067215003643062710207863411336169271967363172912832345591719489449286926510403524724933098273588357291581450824200393495646051287997391512854888828328706790723050234741029957371424341389500374881852620197643120694047349937117889572254220160690492064297996745323045932546933203733825141755264755555184291966362130236949879201090593557171636020085740710376457317780336603208200162411415053142182196253835066345350479602187724426697319151066119087598610830279030017868306868567980614838802376660310705387518162711534778139759371421075424174289617148787821718265099010275810249229456402824639164508594710052018015016059035473008037184564816893736750766203188654834510789424265856290037889671594357417102130529154933532382523327216420195639926001446860973894175350676564736479261629815772191651745976705220367146712504754630943975508688371189210611972458009106726959484923121325696199132940845434070275544781006723037389497545985350626232723201783009548833662078084494301751981589025636521866412715969719705604274542964069345943423197832908764492209673444949873231494921842128485933896830061087503765321683173685167146066019275979990380828636666451873314916815135214926259883818023191458188002908825975515169267496183730673037910506570358814709411514677271228015815516534773636365632068218811792266175469768956725635942986448669698737778697199167380113485165164309283587693776936187317426998561193506085282374372037874323989376443051797290327145722620994429517597596019586407638814768245601298886398126427781747684511102780259581010982275550923689232842340377569263390277410821980968336698056682211052189787936253012007403729602057262520606001051824696949205493771225148937300672543107145328249796258011008610112476246044203270971475292255234175898252041100016388115360211316087246656096801177613516002565240454451580733182373596151076459302041874319295928725486902781260463368208531812831693603106368233920514615796644920554425418009175388324413599253194387127539663359144041155464600652079428901380621460208793368909493311272929501006054371734745941712912549759080319297644496525656589306682038516050505347135533977086304763743718808119024827267273154853116721703706947366861450940614527620913312023104959830522557413033474678144898010048543885617969741228457134843074824453361341123216978841513122781369359164851854791445118577726606408136969634395082464570908372605976973806695908843897025048701262850809577512250299432165677335021891071037834844246318894585989394117968879961342212173554398435060202361800376828633773371393580243308220484053693839429246494184330089309255932632323333896439843596291383235657965760772382191919037572940495351799650386891297952917078417076926698125768370983248641708276808335343486484865274900812099934356455083725034472534894397044212620212750029821555708036029051173059033411413292968317350710502470205505688514037123331850664299956529679371354364311800772203941822721387699986889285164385524479482564910568236409517660542169913710813963426404469930943920132459612703558911980199613600981616693938684274915261888639723594434377866500867133990074837154977241632373978660039989694017387937364099656950024664522977958081993303981033231124215401015539471753275242987282983103876457880708477552868832905788029072944143976883398403747931309658528218644513970949908492365699030936108653714002873550069637979036282589925902529869461163132972814837905543658426948955868915436361824307983330778380798395023970350113257653669470984977619673039326184121813235904563247921863734272281083594604643891500631162575040247613621302958073533901355796844177631975423540807257164363948706466923390952759789326504388963278872054955300119462469865852067528908232325539328766831019464144407307947441703119066746312205654341033997711130289476905109092761429495321052750953200425838679628781381022134459932348799007107790401274186755144657150657145804317073367006123325138865029903411744321448041768399854710774430686659085999854138012629026524698801820461869000657856256588276120756227568050979120583726076251146168003309833213940367905292895612375620178329912256102789012957164704213832446367140026463326050056143014183279667778800412149123099662385720574344745999836235055635404084415478698724682376458134997718296176748736476612989407522162623773301990127472065421692685832913092578283698555372041394196211801904890691766879382373677263500363275514610837830499728061187816496634662218943060950550704869526846249438492377150313511894576663722570222451328895154361780124794539662525450098846166478042140717663768000289645828389330893106482875195206001073476291858356844722407510202740417802343997361667884215646356374696923282988801807028581730292963236204329523838110294006731311012624375146691403066749901852631725959379273983248550218686308567238983257527690072997291817742612189046209143454833893601801427273280132980534542370224572440758006194477673051506891027868036485157694304979401390238723481572303864459189471280553138707905159606791137553379360159594274392904749633701408127340758476614827502791442051690869708498021091783607412106904893580179317167493624984295228297827190279221668413140863056193800486645943066924471218144048264710770046920562724936274717667126810057510958063413683854339666289116486856322086797659168358428147832925626505291646650856089279324276526723609386932949062651974881530201217915024947360846168894082413571856001816658197959628116588389845992652371956385002630782007344367854361861377254860275139172966571127391383897404962866597140770914800025610019677404608062111827444771835208599131107725511451936774019800920936011139335245464250206843777817063013676226197324725626446773204445829052925660769617252802387982484438857842680200299534695838504502757894583541847499425798734165570627839729956764619881622442629644362756557227511193642221375537945170498154800939008059045795395459335484497998963621310660403869235301968813094250285984439701166970139938748273455363573333718878821203560616067275953327934202306015435308429534867576480299702216045953401672076980236793996120136833909390518761269360351124458294768228630476938192838359496488941339747165507372103877428326411835957171528081361807992463806320229334144453089685363649298675665910119181649248534831937608935134302782077924905846117764442227074315655158511896500968352766757936073818155383329452237414598698316588906480459371593116946620138199296596715926822686601563094301873164363284163920772143243225035311271030005544789672343060835594537726377475522921526753743289867930639909843227283147800553612075252354666720960630700030175307210176899303959777788349757874250611365677384534793184203523937671767450790472975265295327049797825466588290893958234826262451671273608196851015802102998680367830419045888797756912969220465162595615734484049870845381797588484590659814522636616843289209457477776951850220892652246611191694903040471815270587582192012527748052422105082801835828913400173308886160163686318781228190297370028824977411440128680379146138678012841358624771378724639120288244043213910855668781179407888397329030783190701766011152769316893336294895739866630255411907447605989565450107742231824953838313321180200221880397291055873213420683010594011380872861274799919698658857928308844808277394979407402025357562045227135921375401316904135735490432400689465043527336126829676980451607544284444306288258079648013355989811806873211023887978805337645135239910965516504408735476659342342877105077636930700854843616597994591947870644290936154959072715886158684728231528484303947930066286862681631331929906116023235285300173410947502049186184656749415922416326824899677215313742535657665122093375958545508175750154601538370899486851487585665234964230549595576669926979802441658042726768998767478429529869799199127726046983634605937521427829531582785118404052417999171790636546024822334458606166620574363675691651358926707713620285765717892081450215030606191252170495869527436977237348948274176470604667421668541545774043571896039904200959268217447437613460280776299611229786650763210775220909117776525425386918544028778127353185061242116700445382820497745892348861228170120921066918368412463584275969653001385918577927324435349500015935774804963087362124193131854880685593123824107008640842047497819459998644281242456583018686537302614956748454398556348265492347227895289665899823176111872148624762709906290979258655008360810631235072767423630313768953798295858547249931164997336838214498775658223495799767576247938009362898949321705334212754890087655362517847702982948519723423732410601909300382122242833954042225199249119434285395757215695187466614161213277103086583900881408269233788270956398515564143272920596886572287784532914240057452883872719410877294066600265481610365034515042388771450685840039498441980080643204019242072795397865083854079648126707197958888641172345739929047630563049199294785053481883328349156012170579301261757089728382191868459821959918777246286292712564883101459133613169428082439918351588278417693950390949521782752149355118362429938563975761459001057126590358332563111909237985001656708246750187052444253225938144980030950020629439389168243097801721343932261311636879144870061939818109834213749013343588865115679561432863851615696615393940131920193831399942307556453427836369714241637712526244047845530292757007828684809937585098488890482673950720343917609777675687178492911444895747594467903285700956502590613085379491615429571672592818748168462926313057866641044196218835949431688286588933698118358443990771434846660112868798768769154951746067987382553055886899696398522007446487501364218470829115001505636672629857146270738867213761311197466271463550593898586998744370047486978908590861941278977697037762717815562944500478996631805861718133429653285347660774474653883793699585580443105893263174851383952389703044106081084408685779940503707055541327654071559116669950962841557033503530673824114795715652779317061615761535023709942931908551173729343496666707057996084671338814313528121563720380586319731695220625958554554381739655097049324803886597238072931407854898671789960491422553688126427495480057738560178406437144428279653406595382738338736198270567760415673063858122044441265247408848431974778332248981168529769709114402517152887948931249099556675961086485830472020175517161143669064243807932638377469753154892549442953310580243333849868060376382212049802801000539617542246709470886037355788789234702172578990301731172012520480168180831132329504212219623577799563609507977590099184825678312234281802539082061081516885056095531008844441786759342665381419196555692913198311341573639055911770488165258252726419575616733937129145722168127483216387874365603547034497864326584113396283003742594617270552838264217468860290024998992235433516845473297980091643257102298126009629315325347161059552329142443363326467247565136155239791448578546549949730180994265767410880014301887655886997712521144995082287858344792283606727595980982283029928987948857317060898338800333608042116861602531777374912484363230250613477416629808216243995048355332123926203700123703056380122686668722709937567621242578789740531695985425029146081871384693317286728252265608359014420584441745517989004305398973961994859909649576039612638513878228682948817212233239088573321452310904873998245397623800104136713258274823036626207440238299143688863090158856927056034681906942364394708477243037986473812627248557658453285439940370585921839330108986694105921267787737329042255843955611600687463373206075773267572366853342969079282611690036231978585311181400278525725782101352493187824564360886526767447180123089626585024516588327644881282576480520839972442589193738858565809156321647615966609276861543691083757894131119833292933176020387955081825806682422039116860060375649414462485179142462333379202273351631358620666604967658929516711565157484919489993437828285882457688196421772051124111457709783311132539601345027637652218033416202041113367875234909798914766810154471941921993865120509697561764691617738227375383693833386326748333670570474645669201551565469745979831701125977373208202219283599517945546148159229187141144542140596020620474386275105457400145567745608902161076925728899663045119564202925577988122450736011965843252787021698343216246435261189591318198143883074774052128267357530054324186778678463569518515376090439924162353647443093752669418970877231843258324024173404343440409145525620559771164096456568469409856703660744095050910835064348174591595124153851449674237930490133033767422391753392805557870114318737431413137644428194549675989253809310937689754854925812084146602291232692860063175635537572833822725290275159268537104910832622621011754173567383869170605170070909282057933081060191760932917760713049193875215642449235734168424657643417861640725243090232418949939343987342754194576540744080612046141085953242864005670858576947159210524778070956335157442702455492310859208713996981339738612295647009117520728363815084627398933890751658916704292353645357865721614961170952070297708363796281439666524390139855115779887691035775677920743792249466180107979076526102784279991009575481727327922820682125198870758402628902732651788666599103560469241763405035139464062129930845384448550679094079336792943709961967297937835586606138988264766656960240171985058140075451549944355241107521998925565509367551741890806429640607162981659127242822809046423361451563636057246063946230381874221274064206975850138862638815760343755397358165741726596936900497438580739631620546032857931230030331804717498930863197304721576244204296695794983135567674408541422466168809938310728305698444687585441020634194664735056620648447723541332272469885307252441900234413078562542858768005294281763644010299602323582241820124625869500024579461378000557149453187366720821541677574400538653873094314764579751758490651073187907283675240051167682117784860982364139890619042768359598792796979380997945469844372722807127814346958756248348140625846635960797537346351433581782069216975971768657485885693488713768735796108309529633311865501795413648463968696933019745261767234900738338165619231584255108320828942280486585924041201194747951434988250552384960438277993428786193535055320069357709598819791800430012987399191077938486809247110339453311866813248730069363794638261471053783945060893595683061489952247524943765958736819273597280253904950882421295224339922458792820421105660060285389661380758355043236771754760977137983411896351793241688481669960802286788802633933990497701230206233678196866419988981957103374011669129286280977861101208504441451659071595233726797374608166272643430978594422846178082488202268177711842270209854145303255687680028906773218973247571393748014746083369962908318936030749125389034013219193190970569079176040283776674821669860103940985242785642846075618304291536884307224189038568833091531703447225940752739573739505886854486665009127229890627514698871483565304700123864090624672965296713849449363075103153026831148822886943033708603208363501656933604102371980364780007472196102906899313469669994516640808474924271591886586148540110652799292541721810349861182388457598420820494498148619368616463331626186596748309093912352329917029259993831174593529537219061365246390144711115489061061395500629946892299136414851440466777794304155221269213644685035545455160744882905653285445504645526025511795188443623076475069895934043323885073244301287576094442803247462045133577426433520195926520689016759185975077549143504869311131518818945874955248028252602566886545978745711188817907585733607543008538765334765831241243617577933440377900162130523573471903992279793411334354913472672119223475181305124211341226811602550455410972745707861419005527556641905888558505467437523916151436589832551777328604864686858067647943481047999939824645162189515701229786917411946933552432740360328797857921719338034272717806983289915363433245360900036941956537445293362843203239919449362169090246460843142974890232354811002103656978688024858670844973130885509634575869878407634663689593861389540239031088559162769519571279424550943945923875993816458331067239882634721524533011844306158761553902523920225975464389972342316528489225861407134794900143091759720403347571538049123943012374582619298986135935410310237904563487581542779295430944454037881836418201359541069090904630576825758895489330487598747043034977997220128936959743690807922472851063511324249345017617339783705586110241756402429731464516902440133979236489071844920532359829183967070347014024278562692552523490482998379982826353021593562971601085817667408878718589484596212048926359158443782890329255592328981577829329060459268075013289265672206228766919145110149040211034674764100299796627782185128881157366160080328133431119306363711598095842913787514566500895039408446162946705400187632909134684334007650145228544590441495315961752996456391506956135027221876238775957324310251745246108476356487296823366807258542648737247236234302566097143122602362061264321364566803355956612932949114586125240678345172655879419363000190570578350522828211466956564820219913976759958285964208265091066058929031030745685062314986356994117542541503127956229321516564619705831377484998926358586095204177166027450687583125522709598775914777366796591762839802101353295048471864305679121527275453015524997447715498724253645256401744736061657440397292213030273113461527980431214291715615349896331716366772047212121720067578092894402383711634842589698656176217980239565822477912680034251251813003445470723684175998293547318459460623074903467041050524867830088698090112352423258260369505821354157403735504443462792801143027808706518500475068432928962628842851915343499391209415963680835058218576162370538783691710009808811885957260795762800739389449115518571598071014185761209894824864656259215979986264371298221137906323507058248094063997749965644999999153431240364557894747282904549659014520117132456467200790091538110220417437232844595413333888951191428240440380659300098240474153070895509923575708930928754407647897681909267429422169518591330724425099577130992627218196414773200387403784844715575566860022647220920527947361414574255896281760058044184189475559093097783032182835006692737722243517933027319514396284543381349456003624244687992189033192396626727983216117848029188978868324032530019382039728534244029953146868593935474603088573940397877381111883435431936604709725781757944702541003504829781417355974809824018551549519319199320559587024902429818603782840903749908987955590949212211798536136729197199282508337874258067166034767884094842166120097719751821490975281780829088626402816918377020286319150447610209150172777706336486309014094115753105358660725850867501201559376710143908104730095232978041485684039748106923952681530551713262601976409181017685715112963685924699864704213166768690175112906577014986917052533200753562471003127143820119326198536364025653956005321365987421463026456565049869267460091258680805134793840874793071314636907691339851429600915962614085903828844104613956345687949822913199406928978327244026120133091314968480065460376612821352422637972761164893077064833586234606151885248755999794017472184974605487893912430669992100146569827631594322168977859143388272049887739609454050717703883021196940797754626982164430417929004438407664658079855659249431487111037880069875701193466164602411101979504455027187321465067303823933532565716920480737013120078016369516687671606120982678500575858655689825787210329035543911263649515757044969634630235241431876801210356178544849075043302771497158630175100162805507551312697104906976451760937761001488730483524358003466372291322241867324721285830661100041865028884207743089161154973925914373390997595699284554715377290406882079498010087597630029825567952726832402806973020610234704975826356207441319360721678703891352295799530660823979163140436365548205888777181619797922800739185163087423764047527747833664226094187729418940527845568038001690700472631053490962101174255994472390858711501942684799878983068702449549957848903658155912402186347988862508968422940278001303058872695236079140959674702889263967093998549389070149482594579527262274089043303776205629844811790896426478657164181416313549174817861924385281393201219177325877045683365265751154113846608003106867656410539065107334380843709684056354111873682538273512899944836622440929245503607013427375685828874930596987693788722283792228367477561586201407645179692973040203981906442147661730190854479939145334733189937686226308250684337998302439421643393831399306450872588824768549151736029802517927753129256252022743974030458845308666897568318080611292239392299654844692138075318898212661166163689568432217383346347398362682400417894383162299871529352858046808167232333687773078726941213078554099932320189473232180563836295832742892402961841230908261433730403459306520316075640212079717370746099745798945382858715879917144471942277952148653036633787928340640880980566031398783797452612123461751185004090263365416384576431276321683208057695833928798258073296432802651291376570217984227614025467679795325301560914632759648736236245832917773627178626676384711072791823177201119295388491062139982463030660377661417215033376312034554575244727209428716652272619813140359494894880768431123352191162453954355148776562107630456954682498921420755193647473135717266821853095319396797499171661013394015689893119365094629775640950390332609587962159559329589342360352381154024453743213356899791732101941196088120818672595802011476871641877310089209927616159875426724819865839728407090962931643486449982829407547060624693084298908677753580536058036988786686027479597965404961511631716434811458236060857898316370438089583016539675107651507963226323000736610560402056156655036802018450800809261165298970312421380186163864362361483183799803767994213297931599139466002838483838125233035401214870127784436550511907831611949205589875273501369922023401304618979958268551423992848853913766042320637141481137051587249679838496729175277302523570209267287661363252219408355138233541859613288563181366679325566194704660314758223912138639436860962262152708029679328348845350143949348878479335166562036462107787364260511750772777500403207476511869305382440829605694518885771271696724443880065367216157956817451553754057318263207420681180533291977667976036490049351502493434652082727847896077315588240627559302819348632462546270513977035063244033086672234259576980319496916592984580946158064863965590606024703445941778687961952519813726701829312057794563043899010876246913801860882547960036340804715211819795704452765127344181367206347734381559734557232364610277502719813402347290721390577823551380529500444137576343655751381994401085545334209496377714753061621897248300042651201385073855516446738810875922310472714860022903615806157874398145917707566229215668397889253365657441319740675642219860148515852188416967426627199819928239132883660618159318771355209908156702647685573674965736858112805186063189162488598792156843644279431038000388230720316257315409956095841794832645324574960244841470348379772078670554378506677310528906692850379187549262456058038918540527987316227566903086029028814591764886363977056976985183658841844274683745708551137122058960528526357386709500859267379536714933576871841348760000850362407999793671580258351856953144689922017947613374542433681609149670750758015530635031436212368921498483657759123144951815410597377974985913236909365135069030212965123034397681548195160601419299137716322412504987711693161947919329562695076607117649441886645646087951146490074992177152637888761670148238065561280566464020183932632595533752088413766493564575327511537971601085191608671691106774046934240799687922414982721365212746305476662958990218051861883356594836293462969705859293501855135539537709841695561118889279903511953789310741490376158590525658371347747388885653992637963408929331449143378021636765151168019465790256258439301090276672988602384799816595184417099086716937836373252159182474342753459932064637623300152460203375433638177504887037722453613936197908900650378513623389154672168986371771700857238046858609035774191822512507115912064753210420488415761481516907546584986790708887346417849323604989895045171887600213784131157754064624511321020890287369503430769951638102155424887122050041702694910809275412248807868491005258280534484972144846477158483935076547578495084949098858886787084885280769770939018216556898670665667972809635548794557058668102746860008357105213958999578419296580857300547346327170618253916515565489648738238291181824194075639793792469804009699947848675039035589859668580244299471485323314711297403465252386496101158260019435049460515511744324792469225517932229837740560939661022874701147196250553713786753233197427077106913248949920355209208381937467067139572822600659661524631529382247757494107499516129196373634684817605904330022357292324420283869434648292528686802693792453068048697805811661824760689796774069428635326788315772513422033159754666295887857849733689702828898636644606052135078521951732448896903563209854760272605466790553675105942689947719979751348386770122062275316885967346339352674427445283380756916141471492800411477138008971945603288660313489346532591094012349556230276023272035699896224287618294921935286278660987248595951881428763877796853651861819514111545279135553345479094787691941377581519986386065085307688397967410699150103829618934713876867711416669757698384478091627368110072542261471486059424600110997037158229512806756018004753702551615985219938057463703388945427466909330263561522425070574557613877699229824063102818594403157917622653628969358124621234299348192621650217604816559305405797518447371244779701285198324222801688167217857769867916452284247642422768812635955606322501777974338518932390281215160106220919171154593730485384624172453142211216745311827964742204630340809277646537838818006742802801601606593321157352623186457917104215159323402573736089362526137385589698040363394962425973247138627363995653835126839761636134905398283860439067113678176539073466131291126726536597314106973930654662568738450550172078517401603845568019785227923875633095258484593245756244815258554149308188345797136754701009797028268786590716827570919495662485222355309033215741461540310552015699763165948305458553516331008361786963756941800832177106250868066873077232184307647289905278735969688339542455864695671298267538400211266579323295031274371118711158837608441708856486832572879256310227696786346115917745731093594964543288880606850456922161573967258612347489414392833994829033965010922366977157740417406057214719998803704891413854679451932920314509159808600193448770089429463076953734251229434325620422549833146659775125032032927829628906938783035100515690392704021288893937188681850790302932515158318933260751003964101366993241068121768581459520097023739701232960422194100346966982185197923529677458854396064385088267073801993035664216806891806391183312559253792318515487804577328395783123076707089060761055747789783972688635595273902617344537860956623314575960041956349499131951853641208227155743956481937553051227607320713169133111434364085872249423691024973477554279890402720618586683655726385456266063158437401083876268389095937435014488437586387928656852799798371392237487059490799518795583418869651970728418235853181312120714080569014068024458668290715303550960698341647178529856779105084687954735089682971606427750893702291031348943310481823810272567649903120100291454268914646303145622098978206506594046944653173449177259934472782595459752671190787930196634528025912603191198341139573253220353352656822478370559106856661675804855797023604395786578308956796151300487835038294092683248800808294160158770332529382131815125552750932317145257973568986168484194254087701127070142484238957659362467446138658810291851000278537743063339782652901814991409410722318597130958772276887160509534986315375338849405946182280751613530025085797533733165614207844794895777814578499894461865719835244569998517747273848616246255711672105323432918338148789067997755928386012440070870656783116276249449830149129195677433984861523497570170704388219415918616564007483326101448577293388599674409901880950811771917002357413173114686302790035456379357139951670361929032504205794338777908331445091593595246986718912018783386662309998950236848764604422710481934628078921878390576545006153341434733072469952335893943996836419583161415653428332163369558984324799406071485440050029405664407604609870799476408537935996621511244184073111895361266739139702479573336537542061385937840832998207075341851498285513796482639296073497230403936035693580029257393185146773928985610000828214256234708256359122861486959198146080582295995409211258853587767526269036058898972627724939978334325733147357493993493481413483464057203455912385958104227728417143122563071834838039420615624594934264249689950383007931407445187733559987513171185314777232500570892118858520273295874816193787171551988904616743903112456155197107801535398175908110111314201509093367258714484659068477321803599245761871943976532599027428921362678795480496085299070518884533064030730786368874700924823326463219219384673407742126574546330459602388564026778829839331493613232455114030251510272556566980653025429851357944638641488171306880566922192739367603353223908404068944642141527209698223662028051256966050529075607667451910313073227413570938867827848408776960274482941837632595020355359159998583703458925035370609894716913288503562800825871296361612501524539030908531561349618856759645207927610125840910610933944775520099981147186898492949969956524366919342217195671534427649068802445856180605759966290063060030199452864420571300526771234594447444991260962377311063389446463465256468343354036406020900614051802693178844000969521041785609430963115097731493863510120427351272898996124318871127003809212355600871011915174391385114247997617037389646614035070805315164192562237925829526229716071571026752717892030702176798183315154153265951082224678782551060154061453567928784886016514633930828042951280623323470565590757192240794756839609567205832720818543943550934683983870372175664081633197079758219240970143576775380433576008009658384114907675218515534212276232326559444026274789083832438871784494817527011480893613990298960873726707528599832127935202746068591216221276269675705018740433363070770495122407134217555477005542732379860133877019591929921386797233750363247854729469511231524593810180089508124862206788378011066814469539884847765723305368292503718251663880374038223552672790649698293056739049294708476489211101867325730515406930878970948778330193673020706390366083648187464216963051402787011874865885288792267866177266049585844906676147246689229625477519785017778208348263276347496486122370258426609538110934349845377698943387986202328148526879603507328621379327655252896303909923916129428124555181961738523730087687794032935874988762961958246340529849097492292267934485405156449941803631098699690147786591113079165104636457329071860958564721668059168112628562438289965895275659029458250027952037383928678809812681467297262055947540929285195602007690371410086301624850202890761800598196396422750174755645381613850329409316226859143488330576301250567974484074259402791162064231483469035814747031342654096554620015061098436677404719009018440650144359200044212147313437654303062407714777416033904399309912924202041041303986122493231433676213279007801690770378157032240339451109558313626363974046417496047744343665451302840310530540634055999899762769847136537113003867720322178496094437873495793190475942351054921219538765925309005965403750271971569460019365460099273989072729327893362781499269128562462574356570406793149084217022838522001921321744381180745111939159644630562993116053083688486144537578106444696273862007356040813498957783345216558974638556251213236142846216543864574004759620689022977420432112133949630955562439366432125110407027401791367217253602289422822005252619411490046943501176904018215218978686742915604154091162288290205745612182620339903203269202395880758678679478165292006195596618245799091873671369461274496087901319869430274926528158751158934072026815584141531120099734072626358357158945510161927848284117853439898571688979594678308790387572614315260721065334419039577770174581499406032660380134572032499638869912484779200113678807995267500834707789602663509397706401520613732252567994526903340446597164713399243138263066620787707925586770054911722955278250184733317506072782337423300095468850900568938268611082191904332184947277316947301839539127892174442774909322985647141997618946618963991444545470698891952540144665323992397780327473258539221635920355889990584096226251552670256989965724442447024389291649006337625856009724733368379739678123968154622115078784630550451401919507782937506688832816721362275546214825240464045859052265784008147003466899583049525507803718188544658525838660117541069052057922418828777829384235715539232503780277278336698104647989430692654913341451276539819321755640049336359852831017948244653432975125285358818948166534542153986896726316860681869679580244951586452499385110418914431495442838201790989265512108894523525353562169914282259539899404500690784969617274922749711804764774775496365053035599024395671273862473805958852806850214954866940652348277939641686951537486148402285362905867967273640773350597844894623626866757971596223629757746957842485129882295445301671348140583423073100250687475716110399253262686185944763422914485462724675371996643808422542600414413307674377956418038752709646882378938940236547274611831336302159714888625020828367736786162685764544998659736724510014594105974127825392651673252065942803009546380915839623346615342071408132155612490280152324779662732593037908993074752549938304682200683331561226723385577313668470589869292407831043956347189589061208169080011644527871387818840064389862557569976201835127093734562489311563576557520980192352565881703236079919802909691033518968318684873436072519188478205155142674534830215716308351499380245575782297219654874044182705326262002949554726545462255074332213464518816706138725103885700377881510298578707163623239670978357924907158197144892767769538079544471967363802904586183313279924557367517066787534719919562360775399859969988392026804531314811899474555142543944663847795753141318794522818034105297458208846240386765835905229054940985772025207454625060922999972296240954727012041721096480105244194362698750649265287519798435794345013505225623646718036884037232050055808137828567840180123060319694499424832875013058964970567729027597621324586780252257552690820908781613922726779938261708559334648338891240650835556731185919788160475469253701199490115553394209055006916819527798570220549412026605116740791420948943949069463660935035073788867154511132098554577761694086609902909454908796166835984578069437008328043931060706222763302464030570551134494246305879774246281265984811506709993135003701056048090642888975827006247209941379345420320382786971326988243751980515635767902161919425962702421425813943633612942604952692275791948873300603645895450612982403684818328564523244124210129780446016719731443685461415680712530438540756162733058406614491414752124039644042698097614486270286356244959034548485290488546380833232222056749345798360909034579964240632870069820193145909693708617597892850025268367715246532001229263069902149529169306924920864726647363191660676201442695132872724512134283883511595228338869908480281473503047028224719064358196995949933104138297194674949075046543300503154766464420657773213625989987463072333933575857614029594109245392168687330261624563028510416647791460337009700852666579296003669016951757295193501457463629578206666790072985075699062867213332701240331651900413478459656617639573437361977917432285921335842383269030016065357028992866657875453772983146035135583533559890120220421835209593427126924229484834050499373866993873810662797688852942567177830549706642723579383259525997847866930802368159520075810063531961691783969080564573750111360125177419363333025805350884503088270521168719927737890434188392447605579351527075808003472658410789734016394229615102706754051234065873367612351307170779830450956180817171928935447313138763775678012386956158143089114022232841131032223576113457946671612610053543680299034895181218364734660096845248162806205097660615311017553023158740750530926218545677510109976687292936721681803501193965062924554787010894580533878297142082157905387610689936063177941988972578739784677285218399942445443500461403641199630149800186928593951520908297130839176536945629038530153510187984972061885507881954079802255241867518172742611415663849183940358490842003071534138876395633817653186584933489122247523532850432242649112800823325247740879472825654063191322284804214274223674054580967955112983617722987535204463045758042623628226844065581084784928199552807512290282255267074336080406927218287306970215064109747396497302045859365161340059769624330714425213414249063571335606190670702562013048507699160788388084707963802597078646616161207318602483385042081553339644389571576633143159326731277133534247375871995000788657619576133041438357210289617019749941496190073443934200280843579295256173281335863391968981670373487673512580015288028517908547063630772887331385406828567659733160693638866064367109316870476813393942388061838152172768946307265260518926665589739521811209761131075589358600923218880032763089224612570983945727117635325325485573870106164037200445549652520868030652398330650744680936952992730690643308766429277091195814083744849518970088135498493694901848016834671599960699976991896870033196707634764294873362444683420893287549081275925615432938037386778573722377840946298968832418926421822787532798198626918543775641975464461437249329423517585148654275247485171770564524447366045570976949408106462696716528009821522021579385232078815794422427201097696219907611972393444103520067481205999934306567148064816098777101542320390061844673174632390004744215623893279485044394452354553562755197122773561993098901666931582909738700711000198113705341630302216960004562730598532506007463226227729823954035594545943479776762661841639316488768803978063066936385364525197002397523792430868862316250587802208341007513796338073516043104257909655358459012780328038702256152472087635606922915841427030363849045512399305038183703007287748023219121199607367102796228418615502456000677504221072628404428607186003285804812964433526101692109733337480771799216866627002400575896460917675277477871280456744308172318662047379294692420757215199308856212820208509696935276815663087176542770306115699562706753055861526317754319420481988712270125592700615255949071470564324867661329375598975802310855507099762112329879359927822106130276208892969028079986403708662268185867126414831227997556546536823880068990553618719065302772688953183813829946354640032666367789313166307213133888897372811887328471610381186187001724491934802788358158498273988005012958926303818618503881028992437440371895525960578300779365152606170063892203595291730759088492176403685212913481635860722283672299586033513546338823260886854517605707926827203111372143768490398017015265793184158616820354081557441321442286400038188089009223397506098892012933646278571112655017812522986870972439405127151633697053527959932952374992271085122038079494292024140795907269516869935007970425580974092048675995785734295931129550782104300212872481748559266046200247489906287097848839498934907807037124143259318176414925776899046822957793189052206851283720309813126557054171124835012357688935740735254249282107175068514762636752570852968248374047683782412895196466747883554883816517753461998253393043147313993196712690100394593866785953963130508310650382266040960503756989195000022157833768175706807075390559446276130881019897387409430960639382667397808527870059220511924171328527614011264424783265488637185780499838972489399583442530090174507817880466223807235450414159955502825325587706960902192701367427926824095829179245701736005978994680244974511608648166421414880057127831584652554484013802835707504133362488806351014462674573066107946145245976706266890526296137609554478146383462618254899530592548968092540875661938645930384765206386077287421658542836274422014454152386724343957226629274674461538300961079672025697288249573843862647212851035481580345676436032345792029646720115627817202089454091280988488427549356040817874088336277308808330832221249614316803976161685604764789366080996865833016671222815467225798271492791908269586758705012836553661652614153381671857762403132901884136072895839763719943807415921073862525594488269012042915064374120842708768401836299765863785823025115963163228314889536363080219666934165127112841069300576712750820267235048061304971624173923894667996263673625736478420041082723077996018774916589154325473920846103726382936496674788732786054311405151941150095928645921214649334511116139220922074757034966004241486732415436444352765893828674099844413474125306067388559571153254046228425719477532187527061532704874054859353072925857328494301402698961322828115061948162995032785766585916573308235576273285815921437068828348920427201152692753473928412608226393839781002399414016178668445480449035272090460153044558033369440893324518904881044993212060307136205208444385535170627164577251105056276371746645662505424754262671757314380424125247659994128755188406581547456529194128808924767407082271435852699241608976826090277799880484486288677543801953450444908469959237655021387203404653970695232356818872802558775911184094570880121703041039995455047811509851726147259374174307592360565429758830448478589265293155712721338645758147397166662728022221500897294990900651061013307872216013934443098394429083633677586860248896277827286950886696972949498356885430048797460025527182267636143541641975059794043216456905313229776389131924708562501263462445489050546322440090700569734873471462906246584855793083597224024935590230456095710669842190831727829757074834626753770800575410645320509866248745423449843718735597467815366519748902388468707614604586830432864908949229193061985708523755620276969200383483508676083751888260185283467756866198190378760852565118510523042208047867525605032767870455487842344131683685581770619376612790659557221087205074159796398540283645742058390997612285747204321499908464775976242267162783435139236917586160871795802144035411070469525937185675029218546966039604999643204769467811957769732374148728764238986284460418494861416693878859608274476907444479230387321009428649030748966714970334220638720235131795712357527961370329525005179998528442951931025818576170816065113511487162458710514336640364844544251576612599415995884407394362719877703687814884361208816254651076944372974818589742391293955345724303905559006313190358688200547758506627878237526114015826602889537400066942939062292610087283021374785046046789015870188482303190710678948404666352807854960029414933027419508974201713148219418073742404660654626849851415814818606275531838154982990327891238274566366689754070795829933944312494796791049634166264092378267530306429512159262012243900237227018823485064490506729035516541563992641241393570056966304104465699581155728164421757390808991750088530777819677709484731380228235182806054827944409671818515150783098171010719792656415365011982405575123202858429700557139845092241801131469321615996687200692348644782385425078300594318266613143809866305970992726666721670796041147596791403822581801540249510308838538684829986398592202037731844912212105622477547670954055110602770183934668369951268773009342227170473835654698827288230734688557001242995593871177363819553119352124091114257250352072045397709641728020179225072046074246705639989116261528284317496198738395332241461068635416547624716038503108640447300922963203177505994705852763660796732689108946717528805920078999407894602843801601248422866808367096616310889867995915944831374752293829228925036213238458122686373825326773329500726851122902511574164256916812278458084625998328431350362376353517778115639163912958566679194256636287197185066417382885825801286251742612989367781271010331162121184079820864041838211325268092715155882063144828783111366816694567568036554608662204587607416414740012078101040007853821436910347486939149738500783109519507507858274541278594204369527685072080370708037614755121642834816282019791802222546531594961518913893621792394847487556054438745392806752557090262851009211503382396291167811869055460762255354869707785327494421937090871746314740303539757431120370340802643133000043595250294999156645253612726917217664534565212794500225671155398383778923446605594112042456134695390589032868933560475978625810812812252018282401287890131255916051906626275247594239382503723970351080407472064559638335740054049926228375256928483945665643540494722896998014777560146762144118863273242997091084456323095385413895963482673267747687586740671475514994540062298700603126642443812090979987641173797260613110217423904659994300614440315766811667958891062542088043307140358509427684647274183045302336996862548648772761484731561742039838360144444422481830902252591302706002463817505644023165291132060938675250619812636062687127863224613758820917367675609710992684801635439478210797845487750791616093123866539594785312868190496115847130902338229799671636297327507759560429179562284629490041301916884946698619946434165155686236168236550168249924727824631319042356955426280537215421047317763771140035836327529788230731976867954068654229276998760900257306500352160664878101476619577677427595461199198329059690593822641175353442725776054757471592594896475038127514818372814410118315263010349047867270789167041589489922163471020657373468152107022727272136823389888558686381622895217422258320403011847311053212667205603119977390909003492956220977772337322143119908197698141423274294784868176717882277467930200433435448639067412053828518349590671218939919681508733346892424635308165022275946833863400231287038026691575626952443237729129855694686260207554360366195656384016996065913872155021196132046970461133018089430807800328181735326707664127040681020516377123351455694983792267074823602128306686361898155653366367475787371771347631515130194322074521427218604667280720318202720732222776735193847513330495062065297579922145213800562441295860608204861635177753447508156035955159219810934225330785081950859161154633356734867846588300467890453431603608421971364175092774983491144761993146783991457910998497151755509959883148214067311728273348322859571780298091074247834361991793005093163425069257781472515138784223625604750695138943393904804652554981786246007969705537080955898966971766017792502771216128629043405094518533306982829324898932348376217350239354906899410829090560775303879326918229375866231274871351182563012324470887597055771642257578702862587559075224949035629815689938681162308888711003462865308986312751308577577571875535215411472459247789624838042166831454385040063160575127606923758320704829101347939707735343816811960625965003129877856435553174606053491620487749242626994426765633834969159899024414379440649466962249555087876830199200416491723962112910644276143709797908706625903371873962422714087663262699372121863839746924297144832900750857709402731781135915702492380451200012518658652934901451939592556120947121372878536713806721420461920099176231367437930947229987282422338179945033149236272712726994753731468933463621100911849650486909311737084251229856912567922539880108429627875773777165032530473371459088090469953652288690330655870473072379142200615027120396369556673610895223901947587482327891622919125124966826551849676109102311662081244522275992938372878682672551799000479584757766369562460907288992731345163228489478608912793266936436995294083813554121079959562024239312418644101583030704908909228138403836654203445565536442805623310309874037172861173629043655074024375146194203451911076446449200110729471242392538107284610306106908807143131131612540062659838711453355236104493475050489430105155619730997630240239474764415731504141372352606540209681505799560851490276940649869440180912336771556759964603693493433198423181890920918220852730922080453008491832590786923381864634364354886229193494828687933901405977040828708799604681480165100653538104438890392787795441770390956922445898472964335855792433749233241821797901748625838876690494359205904715407767777742180985572294123149875498972794385738440280182883011824480498375716775775029311837258709301473727449582327744460349003376019928893471630631787366326978930451311469094675606393881113987914141561262939502656475608578902567639442433128261015963054926289769713188687449627632367752472345979936900402266053578294821571658667277327818885357689723841417373462542184974378973663331130308748955722331463834372391327219932956843432944573318523766672804790990940080004984030960432654748716921570565671475502898612965492030269657349001356338847032293365536136645511637456617318098007104669598357905175706205014132943465009030297393780966503060619853282094171574003650191647597782977424449445835004615319642332734600986032831175010533092611756465026657689786066285339822740471495275443179087793685927784342253748351868074418282768175990396908017165234013155140217647510294410040838913108699834666181195479237714693574714742310019303031566346060170932369005525933473464084928034714762515878095990621673244109619945368698615235360541004566050719483203123234103230738081559877592435150439154731177368414022776301321216676358059561559875316760732664732770180393381784232469233078855176186485952573174182550146609748307813047548094037674860064904014049994780262279971970555535757108677495102507179655979473109468643785629264040598478758705646994098590702618438242551426692425087042923937224205459909731933977041117140666811327999337579348254027744192629457852201201843259209743444662692813611973217146071322458556544421834309295966780888731641144208305554846123286157447077303510228337575612527463060689729013360879198440441397953869237015802372986352940193569949651843188736958083399845900116211540760529338855588744837035102556790654175667143904921763464933176148553092924041919162343559853701084736005582091678520652359879309166175214376375162246473660126690760141378917294334387784809840395190847894508698536937359969882227036437183479233599940870085262300238485990990820667239116675777665302131431481085162687666992255266609832906789721909643404940821458453958527981581488611256421745217617464967772193467078063239095251007479564580258395594803713460356651594320560580979933188029580459909001262627228207070119967472689321613591229177757672100936942264209953554268971878682469349381685356650295473851151763808852372893877466144685574392888456396504881072040204566046569617682387648155069165311408949414503731434139353052184592737718088672539142976470887766300606435497500476171043016706627482060846896658904872730108375002078509892627132832493221475670088925419940015657195042354495644336179629352361878600103530898965508567387541471106328557412443353620391217575468035801140518046352342839226339979589833456621487597188584537265495916548138271000291819696875552754653555340398745067530365359115294747418975055371627651419899345227277943554622072331467442148822503798682945898014102882918472472588014754753959055002120749345355421596464789037294993106477775953946226967794433982195628787776672221741964244122986056638825590196332931409659081762271243853073647109290865046038913587825762158188250722718523853577931455025603677631507850837279300896628052402230415358006516113670442300754045575363661068557185046034866690790388821378820210420414683217758008825127225323787499996470212987550267522116716072183325601526729633354240216391558291533956542117215970975981642829781684556943428795198355966232625843368167245028963606133904667877424227591829219543315061368936925878674884016729789299197350453057914884928028587878777590551935877566055471289201354362109328228287105611965840385909051952755503579536235419170051131140919856547268459901406249626289385208394540667500702757592544134790201535617827515464094167860242123433204386307316041891555640714549462444429163893713081754305012018748984578636678643698313824415168483183420953281582684538247785380053131140274213979875644138890942401881736140593249994201657890641523687033364954867552926501462275412244302381014761969702477442710579284344444447680963501595855486747051287009396248436369270165418383830319104597393831070256296909428910093793843289223612068108521171088243547550958130382576608915988773430938136795507691148017320862659550255822837703728311113546783603980142145224509809873223159813497922224387976101364203075658650687939068196753292341920592559615160359267433200310704715176410679040296243487202885727847151911129581543531805009923962687488117715971189024429745258339313034388025386806370319349499963169972163806775429834076263411566995098460824989878894585593143615855223405269258016107973992794591968211821720978016385083370342687392229365735067442193714586633755765149747965965926418843185277045735113689459642382744568220959270260451334077155961666662984487337568392492894277685877136039131283698414130436152887049493880379356532814769531307174252841813365178713740792365191407682139429387465204952655544747424275496278798348398298910095514762179552708095575802588115719561487573715552609641596156567864581567213100681902671348506877224199296759750442616319872066192579802868349017274249635370905329394911204037963199437040831862570473023809579007702150240932337332994535971160336278666710337677967974505294837811260724907981075648883614406451336476363434472422729665202701536700127924991359905894035281746182179768071117542008437761820133672887003286471032293319022535822476002538737529438812436678222315125945326376107400441903876128604540181443433388053264155734584910889742175020078260649364868286168496333817491110788654302603013161349017317722929755620372743359805550359455985039432808413836172215530934218237997134296925236128460706543013884575826530615096835986640806589407510374037355066530555845238719254864885790519108643086403304762925703619457313557244421335346793665334106973190649678820806693568845449614614957423153883364848799422680128952689314798540349509373459316169890709935996386751909478947235862219492829060591312220714561709885168402510077973821766252838981521813426073564856079106410897815208650339898903416990636900570657473387633512297824038091882754298837202153866124071065146222368579335799966007418278608892107130305456715063220605351225567076319944976492144569426648324844035366063928474942228847320546054288418591995882603904252971943139634685882430399901313571401698330996422188825791679043052905445221898524797046843921456634115890355039416897584302660723877835952373097340945946344426273219746593469788959294275050820606107754036261767740062992407999043784745978670257202541531175617344868959647754056720369975087580785147435368899317859059102133671462180729678113621490076369727839536330344103059186820521139289707572634128537430865474390321161973686456828293819527937597960207251741546978497530532204406759530294808787691216151506984508819101001289692441440213870744276244463215639363152828083489225996868820524330797545842710147250256144169211582418697174071265788225466365076237398490686829248706756246506236492223375401141711468249224195218255274601825620038256014289206708948024574546563229453352547120907808271580387963037519121235243517017315970354963138221048858611828654635240143938750521539371682007685721411281793059411889428637722349392441274713364712170176113331277377443886456444844899941568463182464508530007261526406827129769315915839776748280661321245880379563172239278833191374182909060281493594834428839259118582809800936566558612990521183863693139002290143402458556622784974693720709112592877047092779326607814762053744762349251011735335638495164199496841958357228133443263521840155686852541190619550724028248344635014034555657494452604299384810143081020313674149361307412405748507260616571131993185704547762303373177947913546078577406914984976837082075689218858035574653542204036613682926004944751063277873874542853660170771470795548418232167099601787512436921764408324575612961731414627055729016398315022228752037230667796234941547384589378147572596519640224097852917802948119157434489826143230307232057652524968589094827169796184683805535495187508705656949996282062151547248987873367574300940530521383098514572112084165553161938178286099823019520489446449495024084591202587604473768032787296472518722130507027050818439882115591897918828265863690700615232829255113636855943721546640513677855760055660224430544780584453656953797546153829679042051992087925168846607275416874230813903601943013047232574924058833370118437608629116724226820644024519954955792572890559546611533340310350823348317425998387961428138026820765254011896715957564943389541874688344899510352609627881181569789253656857993086743358003437539094284035593378665635259231419391535777985398667424718829261083284784403843995054718289840437798486801905323981805557353395660591557700726708245463916490783473456484298958499770958509366600560502739224084992918280977595273497896201290184473070347623687523428759968170324419505295751034605058035323658469614383535804247772850710695350706123417462499797931263926017582273150700445323373749954958234431361138886943985636542347967403517370555350251879468553633490498795300555335864923326751479552018479497083675401836470024730788807921976329972641366494577982469442969760914818812193894829139226394460233886448801639088361520285449661912581733031317482953058187826016571311624024417959194077978086626315553048015868466287452994974391798059165146934787012133746537794932267346696900951186831887550225447775451336604556817330908067041142720391736585476652260772721350873548489363723012105801773221206627681148910865290300718352911694039329900085889698675007528062808016984384888703868952695286670437981846623017020087459703809884865181781676148552627720451352398145177046858691420804938013911654237474527599871319197738314033631307568854074440667455808485501242225806234398885065315557908210335108175492535087100330659486071969341312074212824599530014243277798333264025707885374322904704960769302991644509458122567877351049679584316927343194351771740234336135982080199822760411162912049994072308087131666004836426936332433135205022687537770722217169008594641848292669673109790776207586965337884440221145529647205144873625282668803168665480524430375096717023047865015891441423571743443893567476543413309754719022859590510804157610887837205578274025780697614383902804212003295906948299301990183511694396737079955112636422286240694346354722616780757719392315340851286501473783694631668075865803031348801524589204217784360177107165232360920641081060125760971063122502730657394548871141373677342853149453212355839286430871113544979700624149952146253041518844694591396487295732207264259598359878592205376453445829706090869100321537601696277371329404151813410615062964424923545245876594885004715581813468362238333757141757306376405079170028822470739818529236507513460835116917589618521649021792142242787644521933036988525012407805809094814822772751709950904027086276806572695230550410188403755200318188922455997270469976563394805238383075058720611963403751621924537447097827925574485453447288064792646554013512814455062421762314878967560850909680833840929790615145123840644532789399651810495309131447369639959514656372471177303129483045799496384568647584536387102183731979201945889866618276021444727358499434774623565498769463608303481398042344595700129593925057439851937859237654355475461412000936107173273493452459196973474271532895424532314990500634678894841945840817203437797978936032619898207083169361151851726670382416566919550798871314272285394267975132196607067181052821950020359724257104953157821643640380912452989086975562635436558345118829886732202104465295121921033877713474713689167271738607898798169310190712120175831540340491377900495949795667771971608917330710675209554704545279894062981287849550867937497053198773764987316260611399128848810999172058172727205745017840657185560253364150737705627643171103086790553889805936157361675708735416514788729688714966547370436645566212926716490184036336571345117588511627005690894827286264956975034131652381415911462172954600220501357620224950425274506282766811114263506937717044115675906466719600475743399829177271936600289622469952758535220249914342404128851243232554966523502242939537771245892533721202257577203399356332534014722696703477958119414721583425577415621678149523002995272844262722321469554755123389795342114131534927361759733948195681627125427230511119799778118872488025706048455403340953436943065421215745350840849788418417417448614376080972966166851994322657525274850489987751698507174038922684111131371432060188625030908152948156848908070122471435741120005172618643813941125373178580526414333323482741466622723701907540773526267786864156266621637696565899447881609344989077488057476233017087467859559108676969642491878886156528939886454400169059202127578030935806936732060903413545445014615982884712357154600039755447749428865011935454406456176657682177381198651961063794731644875703596874123252310554177585320138732466517598232042090679969615567676026173109096486789873557034078998722466268885873527045561476864618666688595030594453451555160542503969117015976885799259211255276097929275216359022882961760174905877709827661092279396360981313711765856099212528286574831215925694441156525934055362011956804434135973939999286130734925466335595020220277988484449827240993270560174925977382062552248426961555036484667102356552072090479212869730249880101583453160674003143817295574339761618231914749486062859876404646615853375243483343145837521526212031574715104611959686661403768042907597323530524193888973372135968265585338432894679504453052191610660752201669713673504616426619305194076269890860993632765346871524857238163904752856894098192225516998620154575164136185258515359754173724920888202811644234624072751471489954283665463066124941442523303055039383029621808175683940467763767852776037098694845987219478966585366640114656949428385367983036493892117243695113546407751600980822803423728548173639135565147421209216848761954679680298359120945195097952436319724482291550096176990522496232106698014524077476796243450426755859487051529343548128531224153186715584153801970941670981026252445896195694958833841236805185624726421188227725340213486439614610134908174799917244172249925707289027389588983737554634629551232676774188042133395996407185649953374507715419459343030428940696973742237910731363663928697711689060369361006048560206975119472481922000041108000141325709213492139720621484007206252329417335903879620861497736687656696714111643106799609672694452504200595687332324513732145652683922704322660873284837148257671209107834943538811831037504951676236024461687627614227846901442745921058979128026318066037410765223728658202738521672021417940513782592501008577546766314342411689134507954952633945148152488560299691281011149425986197855205660100973790888881491580752657384561744376913081347371241963249729733909714909020915676803007152214263494588354169591093175216371217766389822864800394937979509558211157337552832216186141962654035477755203612865911849653570743379761805474228415254131031103507972243891434513557155563964883477468367061376966818369241568738237450358327730713529650825159348078248837842289468398368739655504227768476997482274755635349810321447974682254995743178696369377006438589252118370116933732195424384769553294588333030024833371051044050649132731358094315222514089479885058585360667711221806581096560495738455126152349938854550352919762692798761735252932142374388829340595466196628304773337747849411166458916540923886818723172938877107003731093083713268143541117621814232857794041838694775656924382925937647023701122446043549876862969812985740499159993345592164023161937744341169059131754295847080765514925477607577771747702777710188393512791157336933978016736262545483434702734111615688176128018271390922958242832254169963292382810199218141607118620190315801340437112073936694984184102091385199873836069610904447304712765480449377945776775640631929942309834242427559823364606098380617778128260872192096056595862197176725831371541336267446635739670397411210127317772701885446645511444744125185385536123296646951303347365947375206152850609585475000589258299047582279375212823153739598668899516432334671475146688352081096240840008237584967864013853618325533461477941009972729458582445313421970441823314289870694747718130957201184647660061236682010227014628951587441583843281081630055731231171636017256588751230394675959711412536861821874150948749598731562478280971859150153490329787158541404958112429951741669488656686085978491203402857704823220358766914365179235125327604261316799572143222209734660999187797686169381658944912798341333455380697603062191644413031296393751251708034921065376864597581884594733901855705461718525624441907649367630833101554727112340645376032085244682040912804239239336673538617401694580831088122685545121184112415316280283978654342413472719023280234547315524995854982137517390366589241943854041374887855396642618463044120289442409188656419025453919847415114332227372197966886557296162554235083317199504153438512294197941469784431115594750829171336483962752035689890342723700012340141920152783151872099609610615127962135410591553842010657823872536466739918718312058888906181967398589098149747967370568119212350976614477773379287416083069106194461555256644450383178309508311849343706292777315592689257676026285408207775777005930780652070970721468855510331843877449588906706154083802065742127601231251458303463045602214419800474914794451629248507464504553605934148185838341413605011057723841098671618841608172105129961085945168028550379689467629351252122976720062670621801685870368902338535824419813965936308466162010711640608120771406293775499281201090375068526390889859892526820384297911986365973654326590350129488450547943301800962199900092229449894616601380027586562715481148106944397979176692399250126444800909306304347197013895624583166903659590786234408383451291476231084317285344016863335076561010184705194783357532829344565348816758993586556163173407588445220494415929062199190615780622339561346728893397436836773960967046702076123966410935179576815356203601605410713372953897383653356504193218152011757937290860859507026884885926683796974832964224804867034537204014276215210100724718203785951550020151427791241162769242164465635319077802373825183934362118937333939812476533469846588603664764765833323185876970096276219918486481381071699366668246916714079495133488935515267573917074907382536963985875695378058363224262418627875817561223752896304252132109624711772332555468331484749114719784894367662467795293308639448746924688920632696098001061124944801419188309102311157950609469409409769750269338194761734127057193669336080825719595821808911341954762682673745515820514575604599158973642112300734744958802595889118444703261029965853912548316080746893800898363246218786922954251018980203200212335781398547251843195020092958194409888533276690567952718067137147598966589642389750892561709286964316226770553743075161895354264885778997367736232642651316212980962273305968507796954188081443860071203613004623863612364309585131606264022553149293954252857528079589380479489462172900294013588272269290814528433324905972988613371916287372789869233781221155244396225751797606078035853950253234084141488278700261795640255244511782587699827584862703084145969586539580668023030723490655315624822900390444054462413193834991816652046774293276126590514319100058076620935237276328243032891575373826633111453602554771238977106949392390308778673021187000681507763757717501137403216049410963457727063058997495475391570686900754133802853407368062379819953697192719900535617123691280968816438549542902167755754431217465509724328558245448761079571056009141936754166977181702702195686323483211635794356504942493280122098719055448080886371073922242908282425789473506817283627782445610136679070832848238177691449543808278966616766779451096080955154817195574403839350948643747588927090180026985756810307677486754400158524019775032262170887424518731894958943308477448263068673558449162977236118687150144681936597042412040935226741486814379995020533621959217274272601727915737748076855462616178070697067733617012970835710936919650794330442648705518723740177924865337624412362349063359684298745834036637408597808853434920135234306337349201583963120760899529900950202339900494278324660509473437698090549791523795918746025541343391209407325909515234962804085452110419015343735785050374124813982450136025493897156772541435085359424838518914291184545449230662041950284488426390872881949566813071818392665194665213720888559555295370512833452333097320738948744355549901579894998327314418361567156559596211158932529743351988975051535549721913087980813989487128571010181396442261180728122378908158806180998063823412430656831777649132936167474095896482333403941893353418615656528381529844161611328139909682618154603777655773910756569386039478487423137505234317302191368185201849557542631786302937190830312614004614081010549223694437129922854013332713472092153780565971028289702091049600484743099097138347772464460144271589902924651849442818683442568842759948224563150230572019988615999555177144721278255193782731836749676754317707589028686956779637818766922349029522959071922418761699328737729499465087485672943460556194035883782794551334652504838027261766583772468090250444981757227592581115938557794499492059000593421352773295162892017330504350537336304962127746521293965197055130261437494251963922409877920646175827788220113130081946237115683348532735887205998919483807221672323672964513319315534486400460824527974818617140989699408896803626279668459736182713764620051340046068102395301474016243288700067633075075316204592466808781656775219631500129613040285100650017321339874643652399722452976760956489150700714223066969443808182460806975412580061979493790596896154544498523981967104992463649142749290668331717431565801865300924797365078768430656181939166207720921869982028074869832259991164030751872782797001486625089760845088436703619973522292198743250576591356446100724673158985860853162692520467812184521541584617913702455659715061060272356737024209676997153341931940923749568150959998981172718063656863523074089202271374333381302720221586579554670205210777681464727229891007139854798784900820047575259728497803228186728765612966527289667972380164581940146290374912479145170933229195486695032288112893902162352345219786418336110322590166533185039351799182794441769139954336896606881859248108111433772718138568246609626841401907184274368236137106280380887735815819347360298341737884697660786641687255677686689093905701382123312725732875501577230632865684733903281767930584363301672228743513488674294561511806023586180237158118760096817101757817222727250377693718727185844080285846317217870969273956010857111838774879729430139624596965073736151543464785222692953700910400117722921776125659403437875459817671687039733621490855450017614025873000537636114291105591376574868690828945067343893978046375509882467235358698279739604066283328601682180332321403599772185233793492809445890033929564995227850842334480167747907382009971146084644164431654977851832739095677242727967087954786067810339968154649826358154972498378074025288461013899459737809605014710040785482239268231217948955385189274995440441169036845899956582825854435696369281081621056133361814066652863695408018660188188211803784464862666266032608511526941343096913864266596927670637383268123627144391135576794310309451779004571479492880206588530589630959837562129218075893250557792283706518356388492026473543303446930506161617276986301062162062559991689045709495133277779983170936601829235526699382064283922809168698224930980009872001861873461437577362792058411682906615825362400093518377221812796516580656782294701792340905250719528906185274455069873231471995940913386229172441560248695519906598266841965730448154049114714910591490536355132865028735848820262395930000828177785655077781772718379788061193672324855538163564862606410310093812633850820693711000323627950475815233269553932682476819118185268426652267693415374319563375650602402663853653789201195721495509264223574867996834571091443424114216082336464738394764006478585204738955619005745432093503684287186498827654620629946829038674439188239015123482103159803095136597249322602846950287438314961947351325677751624878882685178688018167809988861720897884304856447549432342751957944648671620661835388427343694620390779136922267241793291519335700982948166369350995443525640647711247359768466430904578800697452974668106619618515499603284063015343608348535722920624748700389409270484028555717760786418989005379374892433979300546523225968123284789424587192306927239883687526244334362422512160477885136407427943861639937767779468345253523536686120223773481336320909598655037515757239419220888169023838060460314572330148423701263243876054158557789119237916696843110668811470348807085124624304130310200059837990467212455774443798710822229751091785466049623871283710366006671836348475738503221443363652949308659673958177168599796054879184563539357719264694737553760499120719851662183963604646379469498740868041158658021336967461551737426314792377603133192619438297538518342969122916123241716521864605032885740279217553987265230681282846017347399699196932770861177311930004633896452334804890849935292379923631035624085582468438089323313241264415279179131775491137390364478577295786649273943582247901442124139508133738208107303259502992271870688393049876859893909660291933275864870005212922386102635595553073506150063240109745480586993918453019688887099426015417167452191544569082002024821016433697957001103490274176184973245984889110542861057551450885944164007475479611055510523093875397322227667193459712733609368480201795651761804479359120057612005166647058344303285249543435926192231777255802549284731986010372455682899827771795152419136076696462247841022089837152174073473788665523989964995434504419277320850438184684520360516580385119303313463563693637194355769830246772238717834800529976108427080886717826460318117584590948885002990297998299454275456024814821818756012065296246725799863447285421643248948633080516861080955133681677293419739354735865333848999817655830640524530955614943947392837633219553925503327452560414491435774612616333619766131411587700563610869943893533526772481834360021751539033049548566316676063105366910601092423961498011498728787255798021364563456971986671639093147785363225686512304844434181459595647522644906740336959453502409021029770887854350538499947032881815914234537427966406546954201536384985496343698763668334603504907756504956046900741931106171868780713127976688365058996541216636072647224563212811176942505260584963680166023393590645468357707988432614102674017134933362217228678076478794825881093402659566728504452046511893499590901191365899608773994434039825159386913571077264213728579013190695678192933098415158940017266610301451958243174530277823819756667988847289407216516831284764787395915474965567853051692446091473943835907324949066342117096152831863429991304580380776521444098760690239555903524345778143870843476686415274400106835550400324607406553458946501363724836519899668648325258245380967280291254768511448652831105418112681003334555672037253205482215364693250725057266235227236939421276219655374597329079320374305165405597747407076468878144359881770671758916850067003786890942147594819132903463843250044915429111058392199737283750991165173590827088114467258619503305205312260290647559081221167116171405200710445628929024331847536255292222428440506953792390788808457057558141627613810941392345014242864223678051894742480494941091103746906742939619695967411678967233900284038004711716096988685313317959789080423040161492467183966343958486537478599548833037877303200368340877361898535062963176270415601164395287955429699076981924176814593628658357712226160438143632506378337241699550849410292939453571928563511354111560962525778439299236361726542673647486095157517339453526712984010851325203487580742279869516505429172125416135728697371038021861518844122413320392208264158138832678088414304676739508053332371327253760898768439079886246161232748219799560066367321623668693813927305988108627253253464503903143454995297814481210215524493737707453861021076124453262656072739945930351625721483780952840273575026064480539336195503105907002963005970126058351973324822551892505750503105739769255213733724025944032760170997089528443821020219069229012460355974903884420047802092647012843984775500142831419614653440528081340560305866244865175820430258343591132283471182417066671359869082568736920790953547725502824242149171813427609686079591988842343246707978329086787620796744396045851214290086213650920743666403701909478252160566356336650684394150745503534173813328350234657222576561921932654006003107579822438445672137302666701584112772892234167203084403314524539872951829093132017399409409334825554469302060574892820914091475926796177444774363741504318526898697791722039128177357860929094216976248812914579245851798152623599000045179424241036856061158751982095858306379788396229088227629677441834009485378709579222969455159764017248059176994361731591734520402135320017897303950653902309829997031689967531104731676835724316236941926986107460079188154839785875668980644241500840803099940019339560046636722599364210257534087113386008677056812637109025524942853783168987787805767974420202743299980058573334447058191731783293371018316491682945183048289269653599951608668060377909530907470730146244723510360803832564672960781946038454721790919089680459279546463257649155107594044248040472330203448224502673329840696965823496507637910087849317725691102212031143626096129474988993514069601316570741920919149374337108785778475540528829027214573392486863586979900103544661080867297558809085567163867463966240153515870780445267547699109153656535439979341193254179730801454207401964757020665882773747336960305127709570414407610234384297713587216697676057830466164781451065092082670078427852257708581740546441623160940136185672620224150964015364850981740372699973611002457286276146788694143568835258916522211430242624169086273979361092783232273228959839783991880766324150165977152551864525856831974201463854239082096037107383221969426781619761112043582596739388596984272771789588197499571271131265033400920452743684500918070264670465415962872531711685504595676603232857780205830918984671029988875436754439928793021023657236457790568086583647208097447091409747642798093093473765055456800177307173736421143698261304350679835252694863398897026632326235151893367494786333455700188120897956065981963229798187183751627969229114325420627455014828622348073499327296172493995275991193820201512220056283007549332103395944959674326760312884954586194201140625530901693605012127689006472421025350030354794653733003010929326541764361616126169037185362843423925255504103935424459079633429752388107278696194184103650044125321041005888079247531445792198880047893666025686954171943116936841171241925692536157667865204479013060201744314392692402391055749171886372908852519295891576700951289172211371869825859592703829929899874378663522288061403356732114391737880869756798116953157189724164687391532868192852108358937577533993011243242598141321701310204697351366186053583552787094930000679634235525351076634615769301075954860752478798629599530203463469304089347484748480386933954569408195520993469246261349687417610361176987884999960795099204623950106291523233674496901515485729055688851448207937705170367882099376379214660039405911620147346488657843599567449837592561931892586282866079322607097129546931775850194269271841201400463275482335274588251795201699614278522954530203949556070708175617794676751900046515100193379004470579961308763471418068813448380042941586088939967105307314692615454189069179193902386616881152727409387118309697678859998310498628386478271506746633255953046541864153395244374409328186100314257507468074107141040951353482308011194291117584745390661873102674171781012990583514873465954403285040562389263444394928207091467689644693103018803210571084938486618331291512241062219444269202073675152991499218694622332962169939784883111337947053922006320288451079517475548472854927825141811684342701389163981319896522396027089586941400689792754783810734801558143385364830168316182088909411724064420084161850843642738419727386086517422555375252602609355108454202350998116887249768512913436270167668092535558644879627879996526488911568555862582219288164522769761048111632568277948714501350804067236528247888957660810127484491820090543034593827167615967494416003063657916140569619868496214530755656688795828814075478286181980818575090050734763198302366616383858547403861799595020388724027043400913522828900053394282336336190357916036316948679324977968122881243966866136709554761971090196573851656402084693238596072655409790527318877726898779262731937682507945483593482681391263742092681747693305483254885500412272742921025130837831621064797774808544514562406786145676638807622767585776805437053858995587888451174587483696545943700725067621290736936248456261236713333685235934858610105916548937628890534219655913696146827971317146988520633240100109344234034233237823509853869369748028246560495948842613040418740470873373342155483359336365512043081016873277958136014066927459600860083413738921478042026892219881266752985667738233171908715563355920973667366319192354937639806783661102928936885910397421900614881019104241497439318426137323203738225545053041505122391467126404344633127736089708959187430114131697462865158798985546249281812804766352574596557072340895338373452059631852767118118893471922635988441084841686837287142353807636053504855298841716359658520755058810759169870783026220604168227195510549710180416107465010162769914404060243646485209815336360063285910669847707955610098396520204142901291775824521230627994789539606452301669362983565148928500705597826407950814342717308215234081253169840830026841453170207324606772764832706590442418249549116835028902512328115290580473392884132555611541367113132092325778266732254566437038147768062300532792964985822349189867754214963460512240416315134026769634715837030106812871160440440828207459641385881960214172657722560705454334974158162313628354164365413876189279674665209818488852148579314511157236648969779446170477168587261105427097578830246950649339213066257660994474683893147500729506620763206027642944438877191576849594517467958193627534388589725176412400527696178260012443096497182107395245363917756638988771866290902314219685535832031214275189113596628925646424812645689793729111402363898304514948507325214551705958375696135169416955649801923192967691330295370423310388935095376175225311471562890984509963752058675481614122542750865779227892430384850384708199860906630635437195031032281924267358644082671946250065688530719218487529055981267802781095068683962594596437775712871267969580788819214508714491069616128895736937297517601974118189907611840681011457706057352668500711160354099613112175757680006340687211489996439884164053017631647396375686343588530107231899719006488001333025456216488706869283893971599263264653072356914133978203754540047316640832039490912615654309871881227817725922545757982687417943608313382809250869466877754915542180793933942941256057680801174345167998108097712678640578187773727727619875887676046373388723136197441216133073390757304568877340560203659591321169437356440316192379406447560340138201389505258839723328983524057409523458946386828537722982882514361550180211947876360005063142337887665043916800739593838188059518054572158049169037253926253644285242123303266407559674151713952396329060856364052655747345479019547764771024305808877129236374654533775959119472967471961575216953254555637522397934137879866516556943496709717455398105300789659721195230326950273830853685388419463960870732711091546166164677395114702682654037054028069198839824175209191800376701972033670398398976017869103413660738302927641743397680090049204862867140358756985881765143922446677073988356284845338941166848112304129101725075731114548717399117410595671613879256772849469082511369231363833624512184754205737008758492828613110331738735270828375201150520044994144248937790784931149004173175132937301512347100245573922147220687082049514628948460006771472897190868645137722210511217658476906844278770864861162348235904705023412584036218455496567635365686015936012670161640882923850070549195480462430724491231181284939864621128199175055917536954804126371338872597806626196837786377328225709101716840972714217490981282970262345543248437666386063893237208464321195058606917370497727963316802432296081846246218872355173418690844010721878423018683096723573615615892347756266628027440462531010802343059788845626453185706660461950260201508968392848229999250643874485019793467454250656318469583272130269497868890098098023226872321693064165065908608982236092439944433292532021852474791249044493579039563099355969826168680577272847829511288949118619768143400794240514127688572234439918518531105719713049524949227143342980264613894580498236031357096204115327470771463509132231322128430501282764140505357276161249178154552331509557675502207494682753026269604971009709066934628060154662271711967344065756420873652440503788768474259471169336705639686377502380376882131546800075045320553395797864902267071645772213601141014697205297392163603378241243036445463919998500283751431949644451143002835047046048519811754606535375168314250035979850726065403583693496353085388545375570229666341246628059628533354739409305116633464864864572022293924746143818620600086059814606013041229428923659456546433835554319107913293274164721694353414798271216364385533590576462695425221643168636385120986705896567495971885124247120730736968884263698543276967533165652689151426652652013328086626552543286004924802872084723765678757922125950655360692265168835295782512628802904635536821348972452812313682462484730815230100782821807554911555000202476201864311149399707277481660658402763173168114102190958419556243607946423409636693664605012473910101014992260804274583651276967205805443339944648308666560819029661763521479652618219165108406416327079433192955257669664714741626808049419253170018449071234444885146712743039680061135073979829084909255926876140677417201238627659582345770864635244194734901140377700092765244188411639480874285803272068663897393647539502661628566136563866591533055548210278390142816504905485395413399300030695108086066353709419871436252370389187439244461735830114625892257608066665447306824047793525840990171316933726307239789277205360819980990450723283200461043837932986808386232955499219982755824463829796485604813431194946169124240966900096721949019505867572437057931886305171740814897527446023474997679265788304867848099418663630176984294524880371453142837445576175358311614109910467117531638639159325349939790297835000334567614668928224739084706105159959163333318670677341493499163246144880030173789944987566739457446230337671779582801893189706298935243980578663055607158441740195100602275736203321242833037397591777028085567961758048889125666209175236380668043996148910701948231786367377726194388120253386231298527242047777995998816915007485364859177033029163059105422656292881283854457295630328727054234627794459334623550161467991196326661553833461715223642467424608498382266171495672220904829011628064311874125276730824934376928123218750973244548517965384451807054212050566527451005021675244909304842188865013015659604795288367436020333945847143600431692232946723921522995150702623623485522653599019304802199086016679057051938807914205273079296194432671760439741722345614956775578578354557289689346898001424134083856900160384806677447944435429425379481031172718341432496072626662239980789781313473741101645625227106930927646969601904660674774534613651080389590142758319660058759004892053899919380503756483409403367296608613903321412601746184899961108284829534913232994461142885113247767245725792934494101652241801730224457647384063697818879068774291477846623997773485137192979507452496433079080756003589317567057266209665306454965743196835134985748323880784390998284824672562477997484388108762646688010210901833483783227005243525497208242589664803331565694754740452423633501322600956142161838485490892141956293899336722278471399721288149109424595522598253102401407739158115139435052541746899765593219762279888457965553320564685519589902889057783474668342542584529798241916659005454355425573293488233457862011941196873126915877478317453866391506429833023057837288407665922577447357278100674418883613594336444935010807609518360674204852882412788242174503123416395371185450795441253781894406268093109406232678962515422667166333585655111007743768494041216302138008278479131065926202007545163484256251944520879604903712714952919233246893199166018745000885237633780339960816183564864294300537632748509574650855517731657979041464122153206717517931243597457265761258071156150331742889203983455279800932822450899446314751917299179373874322564884761144748256092446722874453970630413898741944937915589204782973842116996522976076702660599442634193111874115976388551502916353197844407720841257946580372511617755595208985397419026728663745756696486174116988802178064158144945621297762877399292705277684179751099577350756607633250034934470004130563549652703252050509890550242985455413848818852276689281191664846598177892813072482101032402936675175845815855308189057900889001199785236250105136990679248162690119468750785032352761021567104489975626526334695116563063517604792578470703223151838281902200092439347413386750581439479040577725432205433530236928748245506190350643760186557316085425948718763816860258183865209531422869555489779318839855597167568288754210659540223238087517545934896545845563581825609003765022313053163777391453492771612718136671237898985934478680330088185436690703962225699660368274005878639120135162685052154374262403923523656482990618432481472400917013243950231026798895830088708767549009217261485054451979662925200099292436796789534617608550494740629670078569542630046745480334196384403477422494788060823177097131806134468067002946783098475064403422740620158307071512999197323482816660149615706591783707491051499234464636188691683037226396594973648918325988696276902836484596936116421820175586114248981608152823894708863887504431138457341188945745846922353526414676245211496345224437347224799880523629438134046272946342214187125428475135480653257304883000449294179478581884576744548882458344728875811541952637355199656043553842719400966535292023118282207927343744275489897412864179979028944469909932415742242955661138324523852505923657606694243612993881575709689692333607434130408242057539917282564091832473063067494900679682867633370266894866791795348610439353416533236538782793884626769310106325256633262407357148281482417259572955523595998671989190730765456586964554412118346647908957680834095355856501029963912025942764099679351385134336820764713152635888261772877549373161849241567278184260970877539264647808484897132220926464955671747599899407334047884946299076268482817682502195510145619109625328654302369524240435931493626690096091908119733767748928132641521826988498652495800908634471526710701247995759939895669401576871099335537951352490163132827648862084355145637666896459582568844586934889628204677156552125874588642884302122024543990174861572404715074054221435451515972903492173694297973314051222693797614963066805866731197294464229076187276683373100948931399263919462420385955770308817222668815350661869966628493327135860133501424733783640984071700583321563270857250362595425505204866574432478226814097312666423242580981769811669849710330643281225968372092150953658535619253639514297273493917229576818788077415778966230446075264101584611383783110591402143820561920467011287237631882118381666525621806352388418123630723917105290895626585609821476631607404258024933801664730899719984265657917888141225582820287244777737301968792659249967127606785301519085664844951230515465450723082414325566987316232912411273118764440941442657080579524365257791132525125462431885844852275915424180476696476283144222778500573721252492258513608784894895517308862775959367847670434748399521338399940634945912473402014869851932129401679189618397030713278697310128141811999400781196273616712413986650486435140097535576283114494458615941013794568877304946605550604003627519876131469843472781927558034742439401905301929507919146061385986217771527232386474790986969218434423107719426100380965491815572750051463197699390387713642761492644661144751925168985746325147633169281796981618500813815403040123322244542933567198012977302868228647194066627757193935818467650453636482098553773161743839967243564830478388400934069088205759363742594694032987236431721696171142366881177924134951640827114850593857122165848176733236667146444837125878531831243786856384889832062496490000836518715312025119662421445144211132872498004698300337334845110033604919367096362551953255447929263492523004137208279199152165081957230075370982128137430294639433861913363153554530599738920574828525028643506618462509568474903178163959136890775616981853640128454376325751159239759391776544221387389003791141925311157434223937629327297164159637672668262786686254840995277821754580569334815548659420209363598857021937545134610908446758822313062221012814424778180010973196166036018460963716406638993092881279459909545523888826463686947132482954756234960946076557922860004824755851931771283677514753559737522800060559842380281539751462189335517211108767837070999444434930163478649111356114149721846955777658708361082329462533539169086722074572809739449846793685760835767953212832553062583752832982555643484645618978195489171611619451317016073353007512474298356430118677571469061723898318448642574940472130957962552207957676769921489550702690513486477465298937616499536133025811902019235852360988190753348636994252583367509605311793972374312302343042257046840261716627672780269528053678749382869485676795675236012241955611871027191916961303843305907521975979672827167943810809510962334189101928126673638742992116194044963316227396153676866378606361812381645767732122949260143827440019859772633690036439968009217920507921441972785330345667075751876466813563628411785547474949422570570833546437862568956819924306841063701329939851651018110416658413504887078270542096875947518972948547486505062601563736848105364684265194443749588761743973570290618737957829610620712396296132427209678156391206597232568953756629916135798047248014749106108070031382153570512167498954617810154865259019808056199276038307876355972371242222057107957602487197347688434194965830099472011392252124442127576933788455291578109427363078774077546464021974228159076635197372026930544274592343154285080063144946022249133609456686149548509492417312666209292318851812228015289296591847948964227370820652995094663604992088981552020741951250751097067758895093299249289060738082567980524998211202218099623595090132404711565290152546199889762580259870842147790364430073302131412841306939489940865930530735488488388797489840130077354109720721386260023444568053864181540175778253796128010712647541689068653939098758112525815247364650711537292266996541031604026751352097838191234965793685681546747801418716045308791877044615402878402867959576089565129830021701853670287201494576931568158635570948169235969042296567805973730068099980821479062418743663331544519232650944500438354913345118068142178122763791716815649828311211142596301725612026481008231797359130635019457087962914299636149722141768024227303760226780872476907753863260113620384835575494566527050543647471059812101916063916762206678417692561202952342374052947436723335686434737708597550150391077029003535987013757522992077110148066201165634577192434215056303368362579764413496273190372711635518960460765189262430645512601624198013486176871386886406845603153753334747891789368605166455271570752026801295081986178128463095143940158699393312176189970800226077916045150947250135635958950171056614647798053365965691837558889008155306540209422281155329377379143625908377895212053226341033756938751826027859118321705880519231270327399767374312563867072818993338407920604480105379145139444884118446667377376958866488278840237408429742831084013810927569746434667627994990199247617610300674069734856426679842586596126676584499892180440893101603913890103186758116258126833405531166137374029233106558572535851351190201323083094711011724907411636634034745126149905597075528405066275813778524048478834680986686418887174530662056254115803266182493192805966419968038612142654558414939210538026662219550613702904747190772719865256862270214338227750254683333792730491460691378198888096559095681515543083700448559690912605793964549666017913896399589216961165450117204611965055935034024669709726460852676424743246590613753200146301132215785550863553351971225375592681857607993762057243353426346075171832510699743347658567306892093548361330028553868643807514316163442047537593402042602555367270446341152001654032175087248704676126173813499684731509446132147435098628747948294245642376761958957018545215084371453387237747499265675317422254157241699753191562688409107342390824169356207794704043300811102763852081515449783505747622957992124331735244689299081238694902948401312049249377449895714443919512087477653650308902404598167580535582162991030625596673753077595669015603136356258707465612601564640143631542722789118382271595475251105944951006669900095144175142771066078359654635549096045061565927270271837184890644303203566904434803120655851888108650630789736450968524576419304289674837889083360525246412835084307974891765744497958371927771898787947976629488950522913067737347013619324984750202547653793673829332014718425314005027038826317161088716021355906621489260693297729541533040244162337522231846801905026482101705385219488766131040382075259370587558540455204510071061082470609424594835796165934673135194050104727492869684298522544700377002803756273785628316601488414528978086535375689661848429654865556915411787601207979686950370885631005563474793102890213785602455432046248324410564400622773900216906778700605450490327867171170766647914450491760500808439707137200945375296138308621638315831408817291225277555527042802508035203099871578534686238455966360788668147080782905621854978295010831867645860509413972847426676641305533321903161786622203189646731915932624845191207656065862848616854368671985152935156981077794556156638383300555466567011721901112021679045695401819514337322135837931826489488026742060465747441536751619261416159837734704049849231434215560428445478972671251903541339166247958573069712872492158580952314787060878862169389213961191834407769344171997616441434517039064473495709262333749135265573847502355238380426294436053430381549141188811277868689367098136620695504968799978254837133698747860594747508825591281549240273601719361566789867052964570453635029372133943634071480463399134210928190108258518675277081960391482739248238710740415256895029506269026170364239723546156904304338374495701354384358769694295896722831715845166614067540017898322597124366739742244966044423869699231250869526607626740658439102835080456801241586091366589715437221702898599620254388452642036432412295150160896219452869672735074753765208273946253142982205459183162930340254220791255431184849998696136186015754033977453153988800157775169537276929959561451089443745573627674011184596691248739130649601582375175614212543906974103249662095189267875413759541447114711380744440358951953507998515782059031933839766631376696870083033749453744898837694658175990283248498570496647781163084807011302573978081853852347288196723633722855057890431745615798101087017340586843656486991120934666224371836661499396132442865975164501001338227896620760047704720525391069695742022912534921977551285168555255389208576236264908920834383631451609434738748026433203453787232192034505847230934933051844869285389610632666165332710680464581894184018332370472759746329340415916433793517397386242132015014192145402078972726855828545026729665678267113477747450639210261651547720563291536084114945642598177651895604491407152866834118740939119678612408050201180028274517157241105540670338914852507804507480863832312867606970149212188553433566308724061092272884163543447797838440199263979713722885053876950424336916218960632885937490080773346570448496784489523434209405557712631718626316403155812950401562098300148348080289833102249713106979723477253116695833865349729682002061738514836813568701231008571087622719481531917953331046860791994691989167014853041653408690193862802868285092118784346235692649725735253378993994220308089671860650631678857281176337206183250547117980822610195968848890760320038042375937190850216937933473071240344549010298131570252854091545827906025520666235859497443847115654572848852073392208757063578354098202193551942411463376847778216333822711699749278862609671627706313332708840792960349339544678972408722688427256139523368651415610589189509751840561217355360690801442280435579175808890344942619808326349918899626121733879853189546295587626892705845278290898101875690467265873101528971903873642888538276227866904279955026914987870818687953025672688331202193039176606940950388566054628036229337623327688856785788145098786919100758960449852215688308648930530339833623036448867413898314801102771561759697779931951129783219272902417979969744500729593366339962296712978915229889906352933112883823654728225347610295847860537322459203992129687867786991589284891155589983852936069819026884322721883119281296905187807517118353091168926369371002024501834016637715048548465751916271834425870100621401428285172250029478895848718476534065733123951175526955567968342865284584720543070481473057334073879668393992170513614351591821073893401251365318204793041999168524922943392807636826128646079513355894212940510036112587713014474384420101192456061011260462845932914085090991500081144621925752464682989490567860455915820487822854602705637718709151676608650687323130525571346519896185391282271683455037135897189216458720243124492550083615738489688297699559415688213417617095557980783097152732521329480764443814329019437676386861289337857607219592787780933222543193243231636048670097199035942646508672469711070355215864222924405478328014789733991474437060512224267332471928427888650757292144449900955668832249237881038482558604992630317603313458176549289229055696451273826197111140542052868913260852060294865617970306041747650623042567047694437981784354165954057514481776681444925729378768269453860002313794631509190055845716026777425655588291159067471966881504432039162448197225978865830315017772538140083642525065452753680776449571875468753153763586880512347655720515873895234804223363261133662627595131399254354997328255794704910952472019831010552866924209084617333428795895830579962934587071812484244315797742089241465313178508229507333847066175712096079338005612855742766956779187665767133324238571956088604439857170519302282581443545624024891938302251542325196898844038267142061383246051189620004970719415133888644589636805184992064418558105684458017152790448192869390097896762328686641094648323774413175788542521020771582800278222270079757001070267496544840032044248558822094081291697990954103520908865483533781014315801530269770496374483119289242947313388861941696080041062646443842413236191288742670716401093925347756308169567467099857478738155101807800412401208044489670631388278636488260315177939943236908326338413823713838733841357255358678622568804175216567626497005900237428542417162094166237139303355247483593684590332886651179268359435232717619048163002171723840428898347118352568722867563752653091231887090042091311419387205845412377150497946491981829455190001373317759225361140092375736712798796014749893815500670141750394582229537925899281584885460593155617529728726160769921736082811966669400938477706236236105587377058212228184197981413208929031639793663235025234174881517778459441808051618229565000618805671124913624034876374370766787587203864894814519380927795648498550043551767602882604613342136987705991259504430433836699031228132156785263932165516732033013495468656261292597050908403061787563958298804417422439100402558684089884016245197744880344518344703957788799895116222371659443479759493910332079486808843913762583707001441386582506580415557533979426863237192693829386376707356091181172780206578722814647300064222635644020810460487324857966122472044692533784201838286221287171809156903959876525518901418102474156979732892388571008400330142044871351160901264347301211016264961351585382335023862108951278115131488886464375867850995649775267775704010485025943156616380319959947419049247262638484103173038307041605720714172738349669007469542470900801863875309251490388714081044690725531165007365433570327049132755677068943627358728740503182903376077504911844898065295400427569667583478481722352854148120870681808826983867420626956537920872224675992669779275223352490827495424728048463199469120240167272040076057594582722961618965164119527549712574185059788623584592952224384528191893585934536477390379417972602747675706566548007870842327487039361304240074863230057867112983532595904232233333957761615431524211349531690891041974312721665366129509749752752840884139246272844019689527649915122122347227231321033857297695557414944278399532946897311068310893404216263380132085869083887912539548498242181873664485954564260370783560570024171895791464808701528955067111421419963728874550731296788613088016987711769232440809484186702673369952677585081045081078280909231961345414997517956701693985614009892870932241570105499644794759502932954124556792329338823009719105359836958352440272094594406092224294574347522621307262627329929639537842135936603425060136139629189039283202937657617396263602188461395582238329174830914272506011132519471854997523509098826555975425140394830460121598347831228590905023528690465651308392212778500707027417420060600881376278163187833087839872429044872238002347688453958906625308139537952708943679160903368720074520509045695006244210895003087974253731334722099261846500754543679789587578544947339556780153329510025529601701915246450778940713123687143488077947381469922405942644141132394942473753014475814025808400898463082572048029814900243466240742291009495157388504653317400129793652052915355436258725230180265900124901390004004189574782284445053272809847164959531380006587116154428550988055472288259125400773739723557883172656723538054652651524076762408551234275340489778371499416132310518331614620510399163687923009691186496861094825020446110470892625178658028700456927120296184540139432616315598526141928750651617379310903742362393607891046842606995496298575985005295578440186805539369710101131405703251019343843808499187607592054113245256277721297914961597926097406907874114391362316384079756325380705245428774764648364310912491756529396716019434955450517657580057629115368293718112179806512421397315503506372079593699992354209193369590226677516546553936807219699085102324992932152817800073591735612519874365901975416777370794294996878310890469044443058823447235323114024797640510936033560178724375260187335209628720766873153719595477014716317084277314129633967071092963201753997817828522525239574603813070225538328838239044752864573029465524098095606742782564923105521346599155640579785045934182597014258508371187349989909962701914671429434555098643320868134131875561250972824154283434626964168703340949284698967858814583331554895403493695314729247437169773046525107113434935484978174403174974459208729463285056758854681631452644965424570854500143542344925090685185510950235468911309482371485843428248975143291937700843119686475175278953204851260175379276581929823076197441981789382270945656513392574805232915330105842681584454146512082630510568583002612096402923988613678869901287725979030805230773221575495863729031034403087486101165963740038915366738889250010491869380016433231668531291165539730184839780235928296765224525853890146930147931077321074543639459374609985142031966953427732430584376542847293853002750386076350684252046349776016438833916940955650155459979987525922459213076923011336704121504314074670422447612667019942070441012785305847368966608037881846081116599543785775417298251552631896399460407334879432597358852729303912326887032440856074639503124884703757815291453798033533118187562966166591838652372066614514762182182339224152893537381203749464552586169108351093555822696862810975809231532686225166495915157181627430721679336719842448127107995989065432923523693301818687640730392908596282529136238296078228515299927645894576827054225508981202052482845430017182601622317076005323060343598473109473962821142074071573104471378335897366278369762121873866691108229111509940354418540704705764422749828255848737184000389627401191174524188671622632066657533898867989763842423419799394386246261326290359136605420143255524235711831439537729825193716650025367120042098213340461642299655935682656764977153349030732633509711642262220164913543514885892983279844733946656673367483736972545553576856822803495114451957453306570406877184330047141639656005595419325881076089637795784184503220160979751592613819976453939909837938127069095936764674749258370396939110575233689122142737069325666777551614483321030412110811862064858143342186363591741361693201439682985828553175430936072538880902195095921509415670113853158973876565747580605889589109178433599455590908848226565568206712030637191703355476476476370207983532842623834289068407660192556577851627840444598746680224025276975476387326046844033995003970901394646893079591183947771302929611930568545183792997621183323734943090629282721216980223007234976116217114934005555616448422515103668567535234881239941821000098181972272979488189531423299582526255501178705870376705786086898007790741383935730638396273474947477212625591177114752393792912797984014763789619133023813193490737941946377138031818679868921251064271925185854805525300857793419661674385588069143530487105101110141918567602223295392146741253197632629104717786240703693814909563087552582443616151333894155324388727933872389803059415804385005316640694746170117034697763529580287722481202885344526768401338631984829642984550047831355582488096846351233985663338664042100483444042721408428331674830386024849594829114691479339502578841815531988147013201874729525972834585277452369501454643705527964903289475076559064920156841653071304128594326639048183387601063216706717668685492552273364620186070844805788707965214164700322854885465784711841258935112417895070134578655041512679072512862132047101560623559878182618695047101341985028220342494507912946235631556619500909925557754403032555937773906290684564789371508040356363587145838808111261717442365899864802341381746393567155488416392331046294005327593689647526090312173881461001141230197172014619315095606030018994453767987177157062447258421113790962183194531059161657816665221529873931464558066417499625049174306292964272606963976808681808168799786716931443892650206632390894783161694414549942186242711049957997285610330946870987307838656844388996151333579761949661207001162234151354853565824788400352366438145541708660370196154148902826858107844883313895753470743774712653458537852420871462085978849728144781208026107235702282146464625645092237614821990728489931963333549651639834023810273565187103029691824380187893641817565313847808784788252931862342039522518292277488327329636584590858873606136083944283196646240754262372126586002779706498468777619571617075721397600739317456850768029489091791379816130474232714528908678677614528260709284032720849224686419987034381902152461055393680984750704381472963680837980228979938196621776325249900158642017162162703811829839559950068446537563424982071710237294556013118105483608488754821856287531861232103614710428103259161071152158039987810943921409825024993596367431035195464961481834683326485531956226926858449414234497649658554383003271199907036371775656500517250825591136129349703281634440213033952793218813706244988846410139934640329710651614146313082934918893911534000892302351814698642372958087605492220557770972313332654831100639330423032860709725988046959158930685729360366660088393780508415158420386042202622185339849133477122279230633842628106197740589994196347965454295583928928704420864224069207383134102568180081731179019908842759518935510288510102628841123198335290702840028630524407242485046685320676670185992667473660871386621451642544681379977424844515821691041661146740636975942208286701799716235225969241534189868104944719728956753977731420131041160076154550516359516067972293638299813536767651195441930066663002549966883469691062237196982243332578455634949337413141664090219443990025122696999581711676172943636267435816426322360099961103266891317764046600794004176718063213627293625059537710642830434443543523256922647145280434196229279735003388991600751152042289846977281848881278431672387614380059419661763427484882703799188170658193447516285752921171761421616349669763845547974710954216151153695703537207709495369808102575272606380595672939676280399272539280066059784339419519185974055222714419904854618931819806735405494804958812163788409954687559907584856516860718123446029984321530155624447383036085833431224979197741241761581191941257184174373667099721687420015305276991468212032909994629319891368967923204903084221262391420063384718860789397940392612607285125616882525709146055272176517570542334641175243118551761217885668303455375102577823183805844577940557688974790691471660429063532907284878331059581344568838245901823991239620086916907540319687926900904419264836630037061585237888738556868326556397361623636654518492715333584545622915103073208150912361092503808236193607957968540156704893660906917900258176580226090477563978853178672349983396332574221201539704411700437581771174496007581737318728631714362851988370658636927054326399058615166339512129087779703786799829638395708290831943895775083637627643923952114292209911699271971390736078208877776322148930248102179423344086713102982500254635336655458930004906412493175641636953586909722906887420381993023443337868617552406885773060009892575709230290390721733599944629492886964027549627752624105491880044059420751773023935353218550106604525331859299417254784193674779430665421694172312550951613042679090312957306143303134806740277127895229737512192073029497849039531942592977568767083852395633043798016095670186607179420416517844260392625953972264794220859623999337956013661100639874732091303762043076908362521426667922537931849420992593315346709356636082528346297875863788138012492262352150923212577945492760854150122826011439001222380218730640967530073486174738602674373901412572681027809400086218994409736550418659749151288710379090419472271445159861791580808938371352644582935409611251549278066571104035010170093794829807829367507674191204446903768489658234155756637708698404377676260807522168265122548655104803472874650108531210131190030785635171192137799148213467725288945934109814459924975872188457628675539565375273922602187484263177134599670342809629642805634091661438273852800444197752952156166980020333896476554547744481237225987810521701480599318536050315021492371976960565155700721805587393733517481674896084199223272553468938537140223598452873492555971419470886692586181050882274440711939405674978052189783244014664788364569644968971563737524805351859933317954657035469372142622160251937290579173802241447916909936950207755707532755271791325147659177365882223355187601652317047651778033654876979906605694504971256224360397990419578822554072369668942324026635392060821840965739770947643721365251393369053880864369206254755803193162139878913744426521560411034908784885104170435898719283712190932420445011725975883588447918794943909029725431245267145673336522796358338615766360718760862437263889696500651235874309451439156869019442446003651609003719390947814008187492292808349010223334588580583446830475435820273238488911653167443743126706194668315818086509676673416504099784468308444782026242974264539285595181164580374546716978847436401270653788453624497640030577087183092606577135329399037563287771737542359665592800450778833806224374410807762867442225641851238989638701738739277365621241394084098466702631455170891608332861705900889857336706586807529056089190271899916963430641042010632073333220125456307818300696433172580260097405532422887993499694718910240773263990806473966412074830819815215653144228091305927808475262080556524978625638030387403487866936942235079906915453897627460525802272136275542358468545824009707640771609167463451250266782075488458947732077920811386589009374097731122917843982976053485311551987207983463675355628736406028572433069816724075854894208700805611321755026689951745063548487266309913447292053786449334334461898214448077507623594804911890337085184704697939685284089043737702437706719568698307100913563082562053483418836652356791548426421635912573486404490870347738999722905886792885775821003678180353667826901545300995603397593812115196047998959524535078741123796462986567416204423611921024459345738724642104897654291251435759488658667922340072810933591145684699410137126469586075951822178595221184028386128999462121761666682458562309555700629128710254052216950890579988242124039128800399246659417732453460009037187099471058511871949583355637580526172952539244916160272998948910338381735130776519311022361589080857987112213096260128887167922280256546173021917654159440588787163341720833796161831961100841456224531358989515429840123057814294690798809084507629201422207094801444943983557047716856697203672207299637062035798414550609388061415186874554898100107907518895495548767551896012625369736299685897497173207472803584428876257404712738640551502883124788653474353622869359837593599031393102698707651632727034261045347692492445145336872283028883147081863758320312732538972230043897920915216277745086048004243473160943913303184838848304838113944307707603700100811577753436077522192337334370034896988671265681607761482260985440002430606139947935143687096096306970304335526375763055200589134601116224005442763171690678687539908461313817264665926290720179462481762368661817858521740174101218731368125591946063310798332052462884222716562176982542317831570281110465852097333243658733810680938575610946505696855980026884723919200291754859295380776661299739463281741194687601228558435660897676638388621955473058814907967325698684148866687488788538680092455557882662639913994572433222353577370840830703774562589094866165935857003119180174226607223390225382792566083660464830357188956386441407217470494380082022534389482568384227042943124683944973076786247288308372174338601201897688429603699116398319008310139776911002933320675784911185059927819688171308819945606262422299633988302824979559202745778077417158821649228642974259634860238785207391034391613421119486453773473459477944176511357846952003251426000502533182860238251286604474680260285271005656950368818210955795915333784340626667051729315239311320682604193384938000051842133359543245327477380058455588417721803108449344587272220170988116003144887296616546660899206091476600466183439217569429088595327299070673825565137010217617042957777825981309112275312201225900782632322279538757010308501617811466666917392466025309274705116503322312330696867077775181667669253962477265205065753687988395865025122015463890866752641451046517810525647799544532754709016709853806114658736999116885446657235559322501865600298618022132143108716677360378055189156678913490416857576997417200498292111142346079358350471032572758485517929305705278856460061691900440218601576599269190270890016735802754909102275218078347981868904241557553198387268148649942154283709838613764872096245585550570607664771713526105290492714938212983296428943725931419840835432670219817421899535958296574229270729398247434177492697185176983352974104067855692794503778047209691263218840853978675387005054477928453329833339620078380017952719869210046964036606228532703208818094841468648818377192563051665121081859764517158974043231390329031355373796863522628861014082901827176148414351442336446240754268659283753082086151551084201263857253112543960994987954600890715297283814279538747406836795882877323037597637021563282030336461511956727344721779577822277390429768115061364640564361998492412196643857939545332219017691508078837754774707816680557312000394602377678989038361413828406717329596699122970991090676698543876855917661444373795607157724078908523588415564193750106644047726383892260341440598252249746352078193845336055057017078454680664970850201668648997236054521920358237691411418210079624277502614596701272040094316528729523016821024810663095695815929732250184890558980856089445362301021595841432157102347583958543012717883970561835415465786349184077758488043681694454198734061321016309364771741103626372454391455048900923490784004030241426464890478809934651341488741336628413938294708093879600724091948629368833360570878415038800806714228249043760182875599762121683930938153353438559770181331108751337710756186945498512571649840344258728933748591493963594713147011122848680302626353044518286187302185481409376128729003262866143075217179703908153918192662888758391766690124444556597012604962497114878993496255237369042188495207923714921803081090255197528532665745874789006637722374039909127161427099642976105215612942185246411861252222770238798507910096670057240205100612692394138875360319157665986755230750713687205810247075783042178736377297686050434145969788720420568914937553578371132220986758486181520088169254851099913091080299859854465596058580278326127775890347959440516593789561899972648623134053175858077973720707469497529184976989282458276054217285797616898998868080722784806013004288277544803361186741879544787393838012981637184654328459192287056273714922658880475115963371378652615524546512416275498324773555738752370724984835354397085768675273618733066611084368863449882786231027625643878898214933870425062284819668177174934953435944223148647947371443685095602653687991664695210352364190662606372945760910453125485863086731222112026891080284008809655018561292564131706938688756746652108730827355800953597007285881586221225731506372498561101947283535755124123077199424498530366199042504517079051878513592697125587707342341908662979953710028928255713687925802395527578585793773602919871997695936274261450232228327064420263927557915593794885388851107634274943011592981101338820002867216481194058023271380864727774606995715180525731731269868870438382125225181063906629078149039203669598613998785387688903390628745155817629048568040203477891698174218120120937843045663232462151848026650365207412727201433271270376098767059365011814543617200644638453559748362585615213361207438967370590245030512759869901279302159764298516978085224181980273094617570583816872636844238811500507205386864509463255432378274503869808669389010655314514334571510927742823753798349844870458890672921464596629848784439322707345244208301634965342178124286730414966309219813296804591289645230263614012093792418530215598812869219255714567992344699139248527047695232327697220631933144373350174491239425945615652146993512763512394877740388642914122688155256010760432404213520003129340242637951053809711751848444827365413930926480739652937325119633317634868675524006999645865925636427394335100278651009394193094264016961534125578652100067684928682761451364935441703498594329981540375719533305495283413789957521379588542236086009569646770802157033448939270829356193866110338381969135200476435952619251562731117021843002753894095846555525798550564791863447094755289417433631581016952896405196305477130045507150279015691924662327044547951423007075149924735934588122760455577557810693353566531883295109070887252246282436685488791277710468457436901275578037375051434643953078605380071580238358250514709424132183023287986659302967508557072032566456771642636618965032966285876755479678859930150655858115023857557900259052582881310365669975565566484724158573616971411558414907667280925418794215378805129639303831877138905521397861176484584891283016643310921369023483170180622749509596702437403390343063064778929943944013201540704646167731200332477398895507581632010210808759147488511959830227085953366044247110715641239152693387463470847773710179340197177151612352923037796697744591242504001270935998919213463004896288339423365482823645893622678867657794109504426913101439767364063003798687775326710420911897691696056657236296999304522624768466716513066693990755917932145189310964386134461583042313365495246706957904991676358738766554335652799995497001496943769428994328722973300886532375485623584672243048606064664358000359646778271427107374923883313826029681761608993155382883739135870006931294090611011111256183580365529812644978028244538947979249165386469312386917734887327946642556267383692105024212727766092536056440587844821978435436640151668397437528723976538394464306065823051198112228728793460135323916272609752736022643881086683847461305789607690821750323257761916218309115372015367386477868297540727094346295399080383178680206199155703570553272236370623910232033767318839699201415522301956688705761089952016821589277666803991500686811466768677216116688216941348292962974176574407889896737155589519922902286703556424562988739906750224001633775609281691974839571106847070658467218805062481356052592785358251275289268705148734472562248815708638275260702388734647822755314003848446909107989585373583259593916252329610420990863777226725124658158145663308105116250332999358780193711285546425844331381139014521420610218754722465557324993344344946216414458398448332999861613623185049548610066130919532390203067497795084626382943648146412822029542445064099819833098065768064895346400956007430571410046073052001985779432273674492641776246050119487836114303938059036762886201127331754516095591602949446753211600310186223031920646398279049421320622543776062309152366083419790903917657551992667480532284588070345919942538836881131122912759540575297930883943431725687948772725879013353788084501525690712914828511694344666665090160339964681337650688260053328346652041964207608948246792644756353290758900484090960491911000785264008912115006499021077247387972552712616873201070144761927049502745820125370366192032650218887733196592652813657404626615516725926371171063384609161895552657904387469984175386876722793833623800716575912249991320996719975009622558959846749713913624598251685905615886298591051909842094177582280904012995770551744848837608684377488623287959056859096430435445649992018693141942757372736735143478132417012559572408770511074642152842420503617556182036174149517948980280004648022666702765371223170900383997129475652673126311875389025405586503189492785658980537599877911773621468513519393596584676060152054178681197851928448647399007925080140244310262851147314421826371487628515725138039804240209757295865962195192655441559646186392919738374723418698913426078922621433350994772902928486789614370083127071758120890696246789238579486358033954810481714263901529149418794464935244740416493369716590712888149068755025693385469850897054165112898895950249578964653657176804766539009232569222685007873327333214750509409999868682526511182679675531156789309153651592979850787854541836838166350255323738125711791526326898582256894710044389144310672176631255774864816181913458203351279601276780910515064440857821569517978877150389175081504885795903938865122341510678120269582705027709249216767898074314523178272433791349171872382687590589262945052927245724094197922563135217295936627529172520849145379265915699522471077082249167679578018948280433733579056116043887146831826421401170971045313574417013769820137249874974389994822016171767339345322486561790278097462242016025565202248867874350769380996109100913423139300621716300844099621865671635660904580821608875816211133895152344125300347995411529300828267940154904984968064239406267357867871871311895448475047065393877825087219589804681808901538882321104854634465192662854188535980849525348347626762358359826557446733919023277225215561252263300140639067250335513159994003968011276689793853696882134904170719754004868837004340972687072787769584231984624087642489467950384391732249244079587274882882563683839949016579903099435150878331702527865943273169723572524151693392287044970094831517186032133200341682657285013584762477642723349187038556646514058131383075319412708069862201503656955701715305114832657049278922250040160505588525919284825582198801263466806488332117786716066806108074366806064909853821169715598550136714650470985727160840771922912409592225902331125796781614493082031504888985645620019296872490254826837911562378022341361678551370394018036802644793933930485644882532507451897735147265591156462721468450544429715357616507686774730515447481806471416838136542443375885957596475982600687639949697840576600654537653678333210211523941353330484007899279148529998804150424719533362451919967645249351692499469656791842830143976128633191161484454950369260509693861938650124982204521074147991766083607714512182747069372894120486610836120521575034154362669149429161385455441082514764660888888541359417859011235189653592542304885367489641894335747116364702876494402875922097423491588911032370572869137442073017750962917564209031858430235849685570931135226068754669594482936564240449982684547551584150329232793367955276148207958889824943442553515958710328858126524206526455787198903950382476527667938985857020258539201572201086789723993645063638798985520826461381385059739600303497265062595875068906799802270330443866105249536385883200962033812499447280775389333519850504867096718484002761117280815948530378996887808353151477999595357235196303367289576617982554229210423529768814075650435359915770367039814485152692881677029871035377084013399175214222885921344614007553454331619236168554962091320851891635008997994016374434363466600062038205358713687855162616918017748616197652455147665286545235605109058048370499591055053864425905374271649160449837623962289704061396283829326127284341843605765014946378888826018829789126191850103370842208807546843310566216173714857003945032312710402827683741901313565151271754351675870501159692967657925397558475585371796438501295331954234636608965209748146175359582079266585879401022563248536527527821478097685503828405344622606328738561737861279266490635042541452228799423599737393888801019105617117145784933279990918005053330022915318402398593095627326439427276142841563173684847307494998681495373924696211440477605156159304939320674589426436506676886665828432910721147791984034020564855957071137850598490694280907564510518292331252818874147366313890322456400891978808120543946536928997257864715779536104839625970931643548160654904121740159739516852901364575104975584517531672905052728526122134322995055089149723871219301211046078576560100685753962695831971715846728264300620688388727654058853801383479074850624384132728414060317128753531844790517864245509372414806730688986466073510214726991512335325219207971530818625653351005489164746454954992909388045483210525889371642285428104004170393447699829462158298344929847225103147450178461601231991630402621827722876701180050223384546628504699313841076688204740351795146000098914381045100801949508343569120667388680765802695336373827428579446627243429015373083686410263635955243212212346400038543629110711575254643363620417455657289943259441999715387961095159300398075578610107344395468908672710122539813633805939731707169802186255225038672850514791955129952097197478055077811244438078419806399766704886918773582775025682168181906868339986341358664688811480635780363294967736923453673108552966556166733330754545920351744733148919268266431069049483538159417774538838677319917238481224538225707298947554850425094206448696330124164206392806204959260844568782733065277956848254906368408441928224541450362817451017656160109217443690817811906027832575079885731492447284001419544139724933872853700699175631854078289806113534367591010667818927141475306636894775656966502085150561605777524952861697246836876288208186190168386392294169615948717830960828461914875975667507316929138077969682058770011244554617385455111173112220399700558063693427944539331382534300476221499527027061193591060574209968311601389466258386487796042926018850828181766992080020240879751487355335560945329481628008843192749839135825814042508775764674448328074214832944448322295994159884609145887963108958038192041682962027443529662982050315235354280739082765087315487523343102051238675347835341417095498106058017842209629305993445931379260389254550931976855561432169500466102233133614395972706857255622010406791920425968973764585614500847616418531513878527127435657680996118224588362717971546279873034482904938882539245859294131970612345667078978399287042073544225958440566115912201231731410366426333950849961282472782872544078296882614209964040515486856815705507034236116552266140257953170180654146667996284751550597745253840064804231000763101116215572623426705327967204542258304195430596085541940293908487325906866938760669357259608347731804263945703776445245429625159771353196051383536618838165332527932335610497200537376981369844000100004234429028895868755176046286170137222989358723033226145044195120755704467433865166630580700343162617943577945627736396537628761927858753779300150212743304302360771657908831287717312691112541820973180253836304089813101635623495662143187025272939889154604660339632886646708387106633656314515465390152984426218297831496322612848660886133010677525474359435192401472131023052890244776020330953049745157636824030327695879820171649851032954928529356100381034848353832441458156869714421057528610420782234062821373540633314585658587448083292894028943888438649829480831160203956807885565366968981822867157232731935753598729925179069924687190320464521999958339026602534595206634131431094112480824371988966232726246307011171127474793314874303077436135884046129011827025170279065704201611029286922005789300334285569457149823020759051246352142769168757905858468238907411336941443490280651497934090903836430558959503674533447615858623253706619990016370388614177744728637321339470988053943232343252529380394134742427257423399123173013826163996355219681425742822122215655541617869464639478984016260224387252079076106027632903115945187465417435458234433938530803658609418208612581940762373016461499896969111804068601018261629434809720441831712893159622544273351747949473285102064298580383915012416442457871496444092832714567584798237159875412324441299729541686544838713269183042832083593424290388231289274181209383237388776646408667659223801993857869688035931786676858473114087813088509343056711962684890105155327031760202614109259943376766993159072627451286592418753373629102613954279661637795680275027905456023060078435065198374017949072787818554714081987419180074530828664206799295104919703775290487687573679637184404060669672293280484725181266005337564062907484726635841244253319657092054149225081598951305601734832036345345339307445606921810642688935963442899048758112011618703078643857312644984768514757587861533675010871796108474976657631741470118445087564051798627961793076477283645355452155430546602124014930707128302791403510266736574264376998721456717580243126453660947943516316142354275054574225374886628607688847545750755176095451688083545453140848440008817801285722674875447324297252344362179441227738059485424972763892993830827063662080281639773448668191452828946616684704881138647016023904156153843859840682229265680236937976008825780316558756961579604305748804031253059686095987417244613492544302548069015771637975160623001428570733201507178841348123116307960199678363509739610527334910602976447361533870868079589940092233165438440886623840536771426292718223773467555294969047326734934260975970399760309026207193767921050053620058559985260410767266489109322239827633175130720501320929092389133445480785712258382051571005471580408721439686040667296131105422244477807490897416379678716309719799105466399022985436208797277767357700944328340311755305084978831695516359936771470569230935072619308527911072072133660841477317542725818104125061696559808896770740925837844965741174522468468571684487393458343869119338054076056982178886964044106241670096429797340970089066749538425810639021120607870806568737026475531158226715587562399236444117894431258405418762015494913683817364166338117384342851070208655786875951497556594447723658350591302279842519879175956191136321936631725765999660187530864113210368068326587700807029897940826384907205954093209250545635837211540091292346803034656440448784234474683962286195802135118743220422753942291447959239244897521952253423723092191457588556991058898576321454763303158702108279588900952015399106262743840743969917174201598092290098741979360524003700701488131842095936200154737017640526497850582312960112183646243728280149954029821804883267227477649142001594810854760178001507776334490233298962319798361652013446060949891609387580115898086604505069996587731794675677831414493021986025395511552795199098319448540671858950005991247674901584172856269334322055422715517360571665327773722291255077640978171437467872429917245392161947425177367379947132310970583720768291727827142065638951764912692042042350338217305611863920862465820803416215512707580787254251251725443197509137913417602410098474281630855292231418136687010396692303745727713620741145887712868398102849669370071584820696752374318012161997539825783723191424082035382025500463568057183359084188316251791094729853050254393598339834777141796073008757446190770577270888759297527402223319343106115650509270598338729439925562982968481675424954684273614561718386029283432662809122603220040383099873591428825744879024348086108944350078462055115520825139596334986909825868228685671331956094397394224345248747608404007308538687266747867082121219030239835028935755071064252831282635846173207767252451497069746636361297193157745417584622225456486872768767267491916427929190016718275527907926843694670826726373655220836644897432104204092562234806920139791794338268681107018871862368831013358285691010993714521238055225534710889313883431876052605728563310735594428425441236085277628066802820615686074809929482671684816693867220078889668250115186033303010018945964614957209558285873473727025682962439816402160945934403664879940471812006917902385949142888638260348341016969930071262226401319802646047214241034229027002944160742729380401952327232835816507503986389576511535359451607601625700051795460667981722941596462917798488339184889202995562157367181508110949760829686778619042003195034793504381791855507473452836388102558027303557482476671484497315808846025644307655228282023727807372268495467720193885025941233460334360789534160287735898056649983760435101921683011965062943664070382927328906371723975996476895542947740167313907201508071802965969387376500899479222374085045543841404847192906624159434237851024825943562549017887493540443862743766464835485314558298962998799360465544600993700002820041982534888707950082922233933198932265726234302481804779285502595383923787361472889236884316259467711037664577299874705731410523819398641324400294859831552561131799382076905065903474979429792758709618126423535349108105620564382835131006168779756625912097097791753666431272055367427348089324661164103525149574211467546829934122885707026592992255605416952387584306245580635723462964740195682482920535010214641100818913326374519184500344103945180496201183537478692377694754919302252914379797235117577649277690353038677750443874364073976602218247862083553498375900048682575267106670999887861479047041155145442946271894278366048468284362415321153402301444484377837869580243269510345911972102038045604675481826197464416910129864223859787413062886910169136999619952082625302639903677790182652475872246930731066062106413797519944552068658651930296916453711050846372991170301454464586629564381795354132283526592253342983167977057792689570825600124128154246026155317139979405784950628426293172041054199608566963544652999891584875262686850021787658774775969235015246871273714783086733887739830706593917055169670642920564334804380476969810265308713346596374598482159829790317300129174197117596007342125981811765202002812639498799980533170383032900229612865118201839634613985703144896871430091859943626021006990913665368192305146343631021157720196787653982868055420516014896946026226348001456396227652724670409042355411349518624380093628666563995706830673836031918182594127322248841406168014511806564352117970599272907964898372793383219705406243592415446958923767236486295636490632863358541480845992830829999923575293383807084140254742009043987316272432649154080242461631426916288118162611739331882316051771972225960196994396403155933690105831487066635551220996854363584131473018117206981150121563527586478265773834954774080213567416740437224953919814240904115826804553281617183031929728196838444416348583275062517805171574964951257647539104355561140485737590083203532806133852972602056472788116117254228491922483714075124735927195014883903082787797527407784639932777842521061755434167572805785410723589804749502759627664436680907205886820498387791428105993139843009145584074631224421569577324423813064572326189662419823297859137897713109389770144662210774623121751998393674607669728304408864242429349732523184044171945006376638930311199578472242988049156701174781906382915974884900088541408845221791962516246205719543726367705740009152625202166838341715767719458668884404436532902669982410835879727986649482445188722859252324055147014090666083832732166594558543806958388181522447375489833922914798885360847581934119953117186365061071838458120853092440902596088021352361573689346064310986318126010115474423512472410275903600480392438720360925134899994853804333327899877313152176230488995970834933643615634889742476635364821057751932887129937368792856311814359145853475157996803061857909445860531208584565956974661553473986393258126124076851759902045320918643508471251136763415266325517810970735055047558421997981261191625336231795373024478598031161745557385693535220611805569689685007346944241185163488202460347637812199900806926136975176351786906065269726054525540428350250158186638438680559751060258965094400975854794426141776987276377076767632864457504667429543867132146590571815303878452509376121724064284115974403100847254649763850766350667742852613469142539472040753828317775527526861036141570101120584968065557627644036173170731778833364991628525515417182752489160308645619066442390780282584927845946956144020705427769745959113411701579409021481754693966605556084962190479351522954704976868507045650692138526417510049270687758475024955803716603393064171575615805316365669276417019727666490059956162125767441520026929297602288697290498663860221110816903289080863895663826123246770518958791876389631586066019050039433382211133502577158866537687606558579060827632099086428639064197286344832747671172951942485878499722321062887890090491177341704681303892263564797466493944180419018988057060019340880493099032840163880878289413592529175289754809435815717647960151947092601617936628722009994265225639367064359671530194409671580266238813602575451796960019094513275366538045242970037704086308966934265518542557436306243558882274214058540531436039087589301988970357883642760112016896623128527885999533720371957439227463855087553270418400980765090171159855402094996667852233219153510469649724801880112725726749515481668240478665240146523282923396553101617035839553571272740901530939592451876327258917428030079184832924504407694582380418823752217863208975847398593336396707943237032188682931318765397193389565156732067580657449118592993217224450230735134909953052828092233028212201610119755967238411219064974509517825038650244810450598418594506053052336365025956865754349004049353183087946569766618747140575967536169509112459305262823066121592292175818331354481915690498199556715265517590840477405506963827302141749462457390093641102553242733622728824424244159810837422671326987726639925167755534662936785717668992847048449043253039794497419629262407584666883453292258536463041979830440172825164856366980516880025816756988073839052996210428549492163536639435506215037086478114815067777920423935853385489294398919539998837220612056594925342886389542672319527993469470374823126235391411232304481317567753518824946495988855149502974269891593101091269220755702283285164534362706677631114888216034320137840739639085918769998787682513737047938956056354422350731469194073541955901799927989549413613369821704703690561893342337275686794870827727816349296454574054058629610321748807583160799663950915986216891109412934165151918158543109984711196287395899746706514540218990017856719549434555413319177948010913313623127567737607993748271157522354176681793024397464842679380265560199462703334092670977594648927992035631280239563473459541163591924853101051065732053720047104262627074369541132425040446576234151966001544337139330898152869348685709071857813870504250965008695035781331663850857767411181903797777497364937847134334439172215403892247818385657741790933011401151881383960343533309821043275336508686025924622440197005027426733119139915400220830037987977207242826198032599155323850816859572850397561426470538524434375212846650712350658955059243647937125011169833419756521099478989239147789301151699989715023169914340614561613303350587529278070968660440691710519451073174683546175228398545738535143560289755280298265081984970180100170436391176453816999227002923134989906178001670756160871127821175598087342669927469625582668401554800438492246329296237524175141344328056767531451964137549441230699917651233949450153696204447631085543446657195083344861218564393688634999446357707228495078641367433857431172946228060143432939523026078558644454973312775676353937316133427708102032099036806141274153945273653448922255253807895116187316794189114500342231038035433239744520430052786731728474368036048626318420448872990264926103363925957811729913843139380625904773693497751297133620540369805549717765482164338462349729925853787893812941460172383062198302971585854407000310363307392080136704571320314734213283369967694455068471633221101523556139675087679776076600857898271158743260775519484168369881460549807768035528576025410084089421725916161858507260713148208373463198762438233837879221323333407747085980575209152990904914003704906057926065168552203533253447547522152117079564562769254857902504264013561165580957992943803888077252671156950027880751752510960462039748561054857607932119832482724666767067900829704966028443183570035324704734072208065322435863920656919180212896585227440552643325176053844164313680032440760520496095800734820696070080969778032923069369458673633534781850763384447539076672681902716913764426979465306361121304383743885945726534654895382459613713509351335789046420934561822464797441020644032441397861605840662756763312215474806818557620208348362599924658342734601765490921580214252915555313252849763621196939353201077957153434340466805226681061145658720260171471439266326657136969103351006033730996801057209111733600319667061871884455049130143017119441123945934897536355555305174749226905799112510560319229984496856565996941560267842205680492571135179367407733426077124267231630022353133348765437670316380105461447095714132773243088335960397732893127681153539777160290857949816930521535298731617361033398057288395941775993728112888643264658894812965970820848410898225522108097847350448655108392076423451458942727644809337423532229529834038935692601533176189612559082098009003379948950414883112016779686437620941767309010559998615231292799436278124189283669014405273199976172530678252865985892287916837146520073248210441341263533538899830256781838896120085175247686102898003893934438826747757642913485425241047101612483238392451431633895098357708637173024080912054015535799229029536245563681996106536389841487945993560893302981640319156177991280066778357475864729997260186491004261961725862479260043174045898563386967387524683820228689181862176253200782574496152727960147038408293059801280019417821664238786273396944089764650965902734031055269918135556433592040933500461111846762202257609344573385406633788334672636646721499008401798439308419802649892656548118251900183446164330819266749946633850646912107299573370149100875972428310085170242096168602680370258201193711983391353946842996024604126770630003332924514472093290047196425459742995748558164978830000974563119165106978007351273313784548446261021783920837274354162169818179463225257957856336852685822049927313870096330310664761444373645777490682986089217999617865994359549296719354414491765942732087735307389884188177689285294706671109796793270027257137841515936265028949492636560564598790969474170431217166415809687784184572049143059507121702823253191741030380339850539222124293955352758309873054871645924540249648315231682627794893359783857231996423077790451530070812459538327193510749136897633903122847365276743865758383816184604579968150147712959895976996387548217553251633951401342921061231677719565758299151409337524330649388420350549880114349165937631758110657139391796656553196504723349933290323979367424462112657169624630264249745598849907646333563183156017032376470513772580524102382171566219903831400649330255382291974618735830540101285928153129298579596525485309723052121508588382432348151060946027110345236663654560154825059301934795956713683670878727457045620341927099523853698934365062717649963397634338992687277520307167533652205615206312849021100904231237243566631190329264557569891874408786735527961442074746979082007247507401408919465646814101697846848145723177949649943957325352573046853035791127536278199094967627014928649813197956069422506074298723984497293246919463133213745851508589356284045869195121855922591245854809955032740761378319414229519372178927917976097509098631649910435633123119727955275694995181773662910324953008850408209070237663867014913849128163133283805856073433468345913372991851177262738000296498458986298302296511078645380266006413283927276683701520751592938738659372311115627138936428677452583781552389635792707668603334279396268640735673000198419940075030904701588732012315094920059411041693242993831218446043387541226864165894222984754692609246972099102605417029484933334825119605667762127243977433846913038869613415575217592380420652814180915335182161028824677264227287171351924006385940363829989999789911482352439780571271962822521129563571913055703634460095134251131313651219711505066602393595900095309468782145643013871584336030402856861971602804971034071274138515521716717834054122386511849108913276257454505798726334824917889797459881959939521826318141149561594504161690189037503489022685536826340171159589560641927707674272263847330174536150669795426538696021332929754800853982837410182267985807499970959895340807312696538875653096613548137451146920092506799266440406259940670982379378199419172143479227393706908359460036257681335167221220054205930643851010013976833812497215105130070351220781503636710578994719628032985705138541950561164044765855655845036411028949182462053795527949587087772422079025662860541495436141394439005093631733858617259909606402002638175898418598851202144141756753061645729215028361162040657143683520069151856197094161625774455641200504330553111564312111256409721057269914958769156899786099087793749310337928451315435739469995934858386781277568359339640766770448141150840564990425172803692217639888896057087159941071780140521615711479283026566658056887682285011083608221901665492570060274807602636832107835571196132298839896035367904155820528212811850222662055065405459061082030680583709651846395817594082538323421209465048232278497319415055978260150988814428085061119706102577362266476086077755440288872761810407112750339167387806452312443953637882032638558660047166203577529408279797720176657586329505626353896767365294423064594298909474626967480767360896072185046400572430502121547970424448358795478736954051106793576413626180777476352695865452946907118402141511570603629611153121447022870892798057405711945665022969497026667644161684723938415060474915581464934379624319277236394636683425549961449502616409086846315279028856664919751142128072342910092678294921686109851251759307027439957912073595388050822876005632487095034539654582475181928868114813560472246614474380165336651337779757899180997333703908926534136648737630273677276668904676660186671670756181719575047649494842897295864900060602560153178420716932238126510684213889795111385684022456287499891157925022849247360116388175891146363096043914411254865639156047209354066437923189106370074591996786880051914114430602356068246509997931889921839409769361121108256059433747294988370041789086788270058317333820678913315203089004571257078092310197361402090283919781809761339855856140246619820775701543458222330237652779385738258521272176968150819960872744101982887408991630467232917745445298900358590509632864742414136510633011744312898147388994043938796438494320329689558209188577691727661899529480107233896613563129562043331746130985600913277721899190542154955200132305012971090264839044455380644020380865378086416283274817097669367289873485950707622308603075590851888117267124253833917000789127881992269202070561265168469568112002943079175559787852424886600804594647404600370892710263484542566077585214557933613195238044326806963840658273423833677322990373511614228967345139451710013272525711676717126426220485704770821494688264611147683960741912527331348119830039871589104888530514684718794738195153261498753810025432000659666083997269487391059710947061437468596914233655353946089545050520289755575519989454135327075938886638402315832573639491391372172406731234843879650027243447456773032027998635159679896363018941396206873843842873170807975417520674453720010416488997078909235011296108935171519317957467510399937255226541569873448024365824308660395239840267732369424285613670255444313054738865797412279972204046608981344157949319651325074137319394491114751520894810623965980335141411198323104481610303025487649281816321455547173259046965403923762459792317579722013427274311097672984461430355289127880250365061690743969121166066137815813315234043514161571246611238674549248587667586881839082236256300880932459000406760084474977534009888538259782728333197261556226415913150461792764719154241566455710191367573908466804813876329042791541037239059000024869320546737389895398175996603540780387014547516586250225870592715616822307150441140372344234670944786609238521014454356648759118376869432718988737574143439502987715001700513628970384014491856096977170758214624711073671886590836507110286145561479068356557624619660783823969663708352128523886879632347686720700966779035225229029734520524687773085451694591289895074693279069885521752766217867769209022980369848455303301159103187876166548070885382776892025957955541829926671083896969119792492370440729246326219884584710424352200683437606872425005008787602070873816512471536811395670930755289480419375446587256568105239803656004629239955938933605636086958832752682431797784492944753320267402971629840108065910560488637338013404974957539708563223294163259416160629089695556508034651769767781241944607053794750940408825870419061971417706007364794565445769960468873159126189412412040281359757833217385774336319451759179069948823379459208794022472404916883406034456898951297993288891409570299623909289397446285090797104183686017067700442578459650834961143654368611270939516115492174225924874176218378760475865916437624091743514482626780128542702970303473873188701368216657224718455709673274055873325415584831836199552079680599743650512389983398895111765376715537170977364344590610968839286211900266221307606261752257344200806917281030163755572740152913482465830696972317327091783129810700855083418802528996405376839552283106733626066206912745025920978512250892613808970889998021032435996649895072082103219439542876381720532835544059414070806985235248612268468131254511842902374501127489707783784082786930459845946423300998534660669795875772902335076756793557705167021103237173691229639770605850775831668347541028086438747719659665561768613496088135369827439997293559417067465565146295948973411206569711164856731653098703346357639552965379909825508052681880283959956547032771600121290616164983934548988909050235929529469590302234158189834577116405664515894484672167483300903104793428775389894543050483483403705244331875276057180239181696405340644372924705140958028290342539777467501845707591651011564805662513929334409161127745687109517173699295167255742796663358681352976119815763121791403272382209149451613941509983776817694079476678316964083056380233707959460840311951492462967983554465560105325130869908911361478011335055148839672397405125129754128215099914009822795324239329060734755738968073732255259181257505114000377924403592248132041810949700695801875503267383921786567197995400712926689560171894107741722476780968594304607468846784057528953351481529845900848598974274151041487618630610877979343017743821748341342201917292758534032899466784114086804742076044447152942362186473567397657355571154167802514417109302180404695652624514847472663716700035344708394062130563746812220541822377636763595055922296141419498293819187058951864043449250192421524857742727115094417798258749579789347264818844207297323137337611882172157166396239832174841930479895389067896206314433782073850461129506727792435497534906634810533782757051465260407800644658731196813916841211913801347936210160228079544432096281050305253304226981838222271420130583567107506803529725643528983605828607476054708050794836636266742421284752754158643329401251513645387434811033641050441615398847992408356926276479587073909089736207599722997477829177382650452038162723582163806673180061769579996606836363974059223063853672727367943817607002865137341286460075166228682090694908090804590357852763975510715724210665258534977555601113847154496714293758810731671404346535370340992978036470693256017269579956348146249458581957231721705177972775672633952898280185600385621568172516030664728879375479244401131891642348669509714208740326306064041097219044889033334233420990741885454221969179423381467866847267481818818613294045785596101439483992389814536060987898373338021710862738199425497093747791138275535479872725375032305895124763021239240836761637491621683243898196352554174635523012899194506448992002702273387147943887781727642506479530769314625235459929085835720566503919354571548796839153620725831199766793692807559152940929172028976260908901646577977047358200124907221444908936482479933868562544192804330418353905125858680884492693245788588939599637760563394481432813872054734060085489242114265046775040662307149767416886143219056276273209701498387553526513082077465505331297689748709287113040756242576621509992048513915908522017420983015923353732810007402914137877780516538555990235193340016167143312665761062447743863416594817224889287402680001289551905165304367645615102567248266640187700740957107401839695433721979161964186896559283203959241813274822374787774244677303132035304662658024697069098447870145327295533365105403707223547796373323320407632656901139560646121666539863805432045323582865622131961280044739394911003758017890998089340825599668177062527753373389593366315828572735898789236696029992146558755563957337825297258992538896044261293609013986052162771687694709649850686786155243849787477808100932059792784199745752513194997780916234574720849683055893296580291703924197216598886212477624042455388103959113342832695641223849174617918885351282846946848370085362827306620539885665521105618049020493007142367478547590004677191105895259626570129900717097148145645339471020848815603827699832167294460000093004120541349792448649068033074880801509121380562389573256087452265097842025232437874618654299417015768982917750996191446421626931188744386595137340021717821588340483108332397402171232706568776187838088266579235632081415177213241088537509101152712584988230694843228561600545080656199559532663158005502554607276593097491666196340863456710606757453046220294729799753923771575626346300385266802278444762234585525545742891159790283822270964519906900986736530409072170990870850280543873646700418573333328631581133979791103527214388569957478197899630876905815713356933618727662067886083080985708360373167529827070398999845244240134191530462728066985370379747903226219410043595023449677597494737890172571290757636439357240906217377802716435187952796164381402414462113567490072543842062785327540860953810717584457470634940215220359912012919915289974169272485944071930171342761060526661818513888012641327650675276955342393480561801612101242633477428222416532235490335648879202667073827938889909295734663984237644421124243569921901357700802760840374320932279961613970925137452020290061751056039600269912927683184873504210005168633256796228173997649956336527849595964848934228403088029526786243268194806590021809689575810897099686272016602759599994364529213370628357791852187352682464891392571598553920374793853032593404934743296865135468571938213158277299065183825194923226342447850669512375452384916510419407508097587628567570342958097012364806815754689645514286350662382015958317597090248276427168236305472088354494840390815299919219446460567111917780622962519192954288259800159770601922551802058326989769283722035211310005890736017916066981612114661374649177638855794919525661936629296193566617817289560861293483842173648290369543622656247813074139678714947654578471377491633151541948576921317403923597150275469176405846641868346549823431275463560736759646016202800626675980085340116263288988025415054525788236890226417699112294688324436817162519304577376019712610015151051086697869831625858224317298087865891784387032801303912072923386027795127794840711263409452867872912329028819764969164454855820716505756488302497119248386666321615894027688715792700661741722062375899962340771553148474449360290778083003374994271277681629392846022098400011548939924930432394898321645090601167003072509936015857270112373498271238046782901799252857603542255092498443147599473949172766864024410617166180528525280283281596886431998026074107574681398128192246589365797019876372950513248133713782741537679221621617586392205900950831775540759379173928779942862815611066337017225742032381346670648301503198130199671947282935850430218825665660700536180376118128355532425801553179290069148601892269918623747799215316831151017093449344531032388869675176394874673968315875388467591278745337648275767672316014610458799625321672058874161225427302355338951550055156647657921677363851646124859245791296186407448349728170375973593287952617111736454830416796940670822674200657852483985394646503133650343739702334288838303805017618338040150947627387929430130050663865203035329430433407484126193456811066256513895048301401426348731393584082708806631728712732950912206999227857668741085543250124738738852846894311708635317368397103312269331689714128123753591734180056557117197012272162535727352119217946232823065616003055243426684595630268229054984722663483121160373948025114952845050401209318434650136394331183575309701498491001661212925818071627606113297568980112587699686880412500822948728741538857054878286160502343397727721519309184065107452823777572265199361535912184697735121130922462240807624554255283008971327120716463178653576880807806244808486687055133260346533784150187099984288047596116526305553350729453478579506939589312645184907798619415463387447276348011630676933548214053583344062394284563326228883677916833387210835848663496348609007648793923528879251843646358060710235674662412250392628998478907699775078226456251119235617569646584588261953881969625001533069578274700619819903425968227765262726637884489101067832562251882003281901872530533642112428258156773078206390546367919856130730922122192680673737785031334123004353925042532241970464685211161327658254930566547299092993019020103480706496469494484299411295486240118845162637111026137674804556452808229850789406521918856817347365490197337104104631050082681464956199266768146547006308482715991945140433337659458087951456794914375334062097530554323777473724190985621639610416866183278749767160903943412711200511624100582190181612474462289255294086587100056872307016144408821142900420214843572134718492767757836593982438729406377945802570448008845262606448425001636448961778479313331730233685884205172561781899178314793528668845015768859962171995161319715710198840194484627611402317171569858364448819031801484741891007996083593855878393465002662644245760731899559564361137915025572771772999087118397569630954004084193900906049598438266283179458520751663288243654232679285665952397316991358136563321229945555830199141005540406604363278643735586957693872635279259178062611327132118245571437813819230977875753879022395981713619999219075194941434758279149473429336444787019833034003477201820410946844009338520713244450202899359545659381281096368761060447809920483043385258691627118930304775781774304779172689578896433987192201451995206939198787651173824449701230187947934577220823479839615741506889053614752759000681535553380492524798581342153971894138735830306564303319275358312699827724740632645248675362047992530183702612227097391703605606462213930890562471655717401713569550368320240679258061404599719639801126136080134402540147523456931115347819740850442147943738468995082670730405370607312916399533303658151410383172292426384678199149254558539192777707314658846983368006955842507619244937556160041048491333363855919069404996158287341386912024159923079235731967678570967287229513707812094955719346105764095958619454768516120354760645892654676274102269270211772632438676141184897004234909686155377500578653752264080316370303308008333324976431083532610687344782620214485580752532736398789015804171846913392375968991098575553222494258708830517872569690426017404488073941060806611225528844546724999657029364893722321996161198300095272483233833797751103471036067646666039258520421047715749501505401052386975210270435185448451882341658386008354294053186817324293997146844115280805591464983287405868397955251642761383151563730750150606377289096654740472391661795231054904732245538071587686793142724743780942231417398935289289107968818245310443948625031782883228377073222453140649188068705657659934887233563005070243052632893609289168895065368597374107341570140091839451324576313985665764710337923039853322255146270197144867310670677212948377982340095890793126341878352514226424914839384645040183146429819275361355119554259827614810808071299671469968763487527925715560728602036426661303169471105579661656326428217901754901742459311533054767727158389756825827545279890990763011086399086822978501430322654436437241829609502315704036765367380052328057874684755392833693617715261283603862141169902399300883809608206725192091427166754145153048141987373113588625946847065967789725600098110734131271212797677183579672489393954624724852198255604169166826634090881623118509404500338824243605842824579114298690478969592052004285603547786222738755151065654772484435645796320780717241907932028185823609645447449511679266278967304450852523718290402771396143458489016841165670548714513652533568813754009523135438101345648292928410208331449637235713775975663339068550424870256418019887268645122038134480372150542681177584707916295613625807692240868648024489728962594252968729240043466769004955915142209577477988515676739870262532309190957999858442339012506534869722964626912919534931584703935859406116031949315590795782391240145544103456036998162654331346725912422878684532723258795635271860718166041235336229490374010603871920655018990261044395356294470978830456997829437316484150186744151832105485204093506724150641369933115293018248971379091930170216855176746320052528165043674570913346536671635232382096885410351504924066534709878469726928935363352435341323051197425574692902185196217536076171282216881669229858749561218724073746402681238997153678404092086010260848565545918387638893260276199986147988155574150336252713060575233278075788821429208198275358380789663508253191113290335745735565818272482699606749594853359883083311907032255468463912401735122971801469943062070911266624185687497042905296313463553207572811121772705079900276572864858443084403927603340177353154781572796050997767820220487169440976833319566176794043644984379212761273816150632900669159669545817660733453576843870416679852511419460393027184818605375195808940586363410238129402598479075995666789492043964152819089978969764469055154664118884206443450667306264104704052702862555879024523378488268003960379458182405405585664701393916837669562525902605636273063402770152030179644440598042304465839356393828830139739880725914920284910937701823586142623342735618350045356943180919028760075626912116754020942195553268835221165746105572741718403137113441114995606065822044660241879331326569077252674860951946968427441609416975244576522097433068949750579847360017265656384035095398911046232021146692825680579035667051510182365750308605908895269612749753878403542910463136786497528214476903211688071896229539983476710705989446342726491536504473345658548833598953712246440367783538709530647596549375450265917585932154938758303540633942590359210398460894135627776349197695989689928536485713142555971127098832744493855674530388528004296132851779120338475407140852562312074699467699993435435690782200647462630573907469284669999691103762481944608533684865782411506034407098566180036668692945171800010288867378562530026774578638498488996041871514260613388712052720827926528616473492422285494524536250265877418615549926356244904395084727751867772048404600742785214001521336009706928895311307519094214750203319854080073675802740274156639342777297477703306059501977272754975036604437414719655396195072172628601265800380558162619084828869368562138458022262060339971764289661222414365810137384880585246196938748499287077432509507356992479088559241369827087023468749636106955214959719729815972155700420082707923331535584471963507699725143015215108324446061993027535739000253205566337685697826365613150021656112866633406178093162244543335040553466739498118456939409725512213180090224724790481415055157183881785121633060728967374721381458339382923774283963775077417183645828990489047187517563259028379770158956571320291952795462234454789665518425712541101951088846602221719439272541146394319681753832211748582544699227559760180689685606550288292731816955000197537778534132313719954146582607829618025378357796943878686419885940128944903953687169163222460952684666752128648454877216441349948511466727807413416356135925524213104611435283941758748439860949191113124779627184607839606825357238638051467411997602171361774699792611011004279681314647852404179786514418707684251824077237902271417264104864024594924458045927780172509584041045761597701116791336094409256567145925975217960274793450097668808360547487060121120518914744621958413078329732915627972683497066156649963467734955989693391193501791218900141683214664756924063439268684136438419000807141403629256440327084967231448559805955254426213832159573630967910701491187321331027042880407936240951725087578508507911702320403677516516307924622608522295257013611933303152903289262543819620029042658428230956518326610834537038116070320081887048245068505355132838349148811399734660330894021446556954103846689214365625676132674278341888962544824801508622175498076596747793938972079465488573482481875879261476244242868590695187912337897246138678436511806004028500538726793528932351483705586301960464032935211426279009494578622212317899071608400343068233638617725611239368694069646685433852441639129894251387743801588051399952181650895839945368130930271941733858296823289200349599650931641399761032889963722611622310087566914307887584257492126602049031676298861295819845285410599956124292193785493708385481355889577001572495799308967463522460687166782996004346104726907245946208094655940390662815384039210434569331508632796018085387219235317867218968170249057133824662496996179790494417384008874253660997752288979245748015498312810524757213374668468389202354150123579947177994113601968666674511744384542492220317658868023609170460435148021033288827496970381486366913019170703003762306387592695762764006523397697774719692588190812834234823833791947388401962770630601529351395378811918201905861069789943985301777463016213809280405969550330494113906322459184311193386164626695461534029056008556562824621296119553502184402831343189977362005793168118160943635577140242015308831141259542947816945536227269791277680382303072441208536304037851543412460250902132677386538241562737160676845305083905852644677653579878879594286302907747378873928907419719860583825762565069094999708729320791321126872062867341765527975868241495673557700848556965350508410875962932831042178184901624942671999152193717804167534567383669968935889088546041538305753469137854869734203132852290225207054124096266227469881628626552099453023871669766475040881074760513367735343278896395999510041949451768703753692537994936013837466091328294399197730887762984440272885326633228321642678311277528900751552041950257964922951821244087254445179511002300111033016309400698127334996051167608405033452741447554698347029396119452501204985064807494571676117383976486680239361419308635809503487631557723577311531508739624979414612918053687128382246557636069997856693769298287407101118608711738302467581416228352115919387846825663996868966180937975877718069811306366740270492988960635793952089020963996568169735616744940286435157663310683493185727598432523520031451558630676911096369018863250821674042403008404280138406244686946669552116851509770198858888748760464981360819991947602468223410712349148938033066947880368122850679282188794725360503779641790324619204177075465998082120337913540249494157999301785356611786281401412885327949701561427542207833565795592585737585668360486287971287686644625867329146444178880559027577498174315860843245697560645850267725065902345184227394794762064553657392725262013553946889049271513710956174933620745477649006074150099254483731224130029418479085226757485756333291306377893320655749835953089181535842355936193450098612068737753089205763419513565119619050531395431768343694992160405319951896371307386922642976683543153534897622883160447666387290382801146709587823699903700073928587634063138957301773399973588305677421037509202347597151295468876160473794844598725972768832293360431862542301556234254637668576033219785816945529753482316385219274243279074689625514298652266524789799106021905001979894313824485160738939953850569344724261747200033436431382626804135845270012275283789744614514497496837972293059700284483912830333365011054171526563192163946195065208451935013417977816428796138301444891032199762155467687442080561806491276750836458204790411406688637563056453279097865650865905139821546202963456361576630939256035770647488586834682352689160752533243418552486350888424298118148678290718163880460672431252915602436586785413245141045546479037315810781741912161362879699319781209999377875603724766929258743674568274380408375098394809429578397313862610516719576320675521030716322632384641024193182075197789068057267712492374097669218901552533237915064991817199403015324736741972439628947626169762529431539664992468129144140603734945710347685349119996888461651093225686178764999078229870297869233224555795730789328288793528914305871582922456031547128577853634673995738850713959645486290435301721763900493111745235613977067435610689312933948578211568009250092082075549994442778468401425403342716341897826957064452758745245387482069978808280466503827236667525667576002671199387787795604732143486045184698344572153898322832469155984043716015457094951625133423578836111855915625713550780993290348719608193462714360518806741188022234822888266094972918142865539939975223250857597648660935393170852492721520922942049494762552192371449734921540355277027753772750660248803244028937696445267101712552322988047883198598723273939814367155812423484195805585207756569994839090658308234311692172419551607504136452013781374768574355545059344590956705784291354453630415301569780143660389381248848203676283812117677365887320524347778311101585668941387576845104886042999895120717590082986638966802428525295222979627479073222195106857859182379306385704561355779936771699711200742898022322625796167704947423717057100419381064963745336231394638354943677701129803459527891213132452174269828569293119320860084142572868596307890758994285323385018774417507224537682439312027208260711732696314387568036615810493145319215511172132907126974895068474193145140447203536713644210949954331902709685543757091577114598538922383764454888534833385153137752299599956220450470914405719934673572552379158494881915407382164673153971125377305521088385681570120320995878433086580590275276843790518874838462428995448540828413158284279600565843672193663798316853737424665962831237448538420663768434047087245451132036648592237873860710108418424764267581630691782607471779482851337056122176114918526552527012474789114502368915505368767742988729216928844987470712948886632708416668452399173359503233692230628033123980605061709894590615975727982698605547821380514282976038782228128472877252496659648894589690934392584420688134845646415627034608278978348453640567535820316624352956111535814518465231870804883816333874239136825141108528057843525582719401608169774904823651000780399470021521773766192397624516720206666274676281535997164926072966719318183072102452284746144478211332663164604606521369555246247059982289765123096323251103675220099765952548567628634889037589936263280241775724451834242633814697768930844913527488564966500255109022930784663597832839958056945957198535168403106498726920873898388407631078642751665881417384792541272225266775094280712233894043875067452663850491308873115363163137901583966658507585302411318236551471393411454006479846035921016850250321496289478474073403575239897372944887175960281249513886524182040585441599782025324697523487173908213662227511588566498378551286890524259829741820866187480166112050087575287618153170984101582422944883521563058290065482335449032195440835512578201423588825504401406758611244171584060677744009806680955693246216080233158759258572047160552311614790989242072144461491028864588923115680412108986610414425309218931402182265637871760599166761444265645713690117401093370206159664387300944959982190393960506018559032460537327511777345446670447599213366587478046648226464056536029461705072638887471755722443446557829204658436356314227818486799835317305923764826740398540730581458543865795039278495755316938915444910979331176938266561053031525452759136530103862047355465005298145346472564954151029280086008772275014894914363985242161362823467250303218130386050391888281142549384291893596029189015055446198585507402430188605885483487313177898468528881148452171579048630688770969313259415665928444029444966614194113506687447739491674249564614289423483646805370724275207094420738427202784781610318427370703008360249206982274457834590346482919534421106179108194868815213220756798857854125393814053914972207404835154786292302024799057043476529259999059722797565671954251529448018833285399435051339324377349450770240160429929656017094771856174923801681145524643810291307155637210831756450236537197933610601126003858646461031714286280310285740418329406808363790167627869652420032583367901266291883644230530154317311979602520207178972045333525936181348571719307428775959973855902250268618248580191357152726170591084190609693289341236794906851916862287487502194433371506398487326771483132225822205947946045536691591345642337004394749611559627837859937377024401166919854947089489204417795809153548940195291336385775644023992669389373963157440345796982879747425034780810709565618080290832560428374729338492999983000017428131927172336585165214107196555886455203405095059197644766994908035816331346728385916804283741915925023244541069618573377711638543822217335834946933701713010827912673013486119740664218551089774414600091038017457216277379653631089737031574620678012975943436732961321815291356799563967042786719457144588981515429956499507341435136634431246578534307261828129710871471522722794329491571637697945673812138986536285545279257944772429204604189678829260297660371507534058642561586035532054489916176217347118056469705804855809982384133271199712068508504422422610310206168338109075463660060257310729850714545044110455714944552300536215394894284960822424919534420850499170745876745987374345698580625595615631319093845705306723979711569592909753653163106417518817296494418158971027636788529444884003617170800354525585866926605207936044746671669056220286163729989667910740792034426114576152127663096525221214335353275384560561436074520375334029096801188112614490366893312162362973410095334318205270402228868268614579428035649865505839213888925081191358331710194372773587008473785697176350121111551581834859641020799449981004733028410614212401830909211487304469457917665728242017853434257744794986895807393473759611033339355945200031783939334332860988523442151123514596194301432063480261251047020463265870487201635839223574898895123755115165163149036571969691317982312795214182356742120031730312621416184236479674805888022266079554565386818519372508265259293560600435374077800999386680387180463814215727293897579687534045547736071816556434739985693934228841280051909072290180431897626393817865436306228765795921011117972663061515654784692692698248489690341903519970358147271397687609611421513519796289277951671424012154368325909213230628940054584302053909967760130221893050431448669929053635846714660334300985535813270661060485996101106810971047624750966242719236763479516199089673015524782206065675128536879257444485541608320428144527365714675477534942135186990853283745662493364866267944209574429140518160089818925103438500919544955992529737949029674438055660624538439068378818527436309572257303322545804828928734451803386892339739498773415619487910494445346453276673065022826853126008442024353245368579480733938258051422544255895717868126220829477067360581425062862502749168491031603512617080084748513956379802062845213469854433949970191913821295796418324818399456323586076202668040101012483532606492418226567337047495398153183439257231144711198836364767025207684299713239651814618085135055911728083775066311205598854861059648900462962003789204656816084928032282288448825614679128591811526976667781975416850548497557953213799438983903451644964800860547727097064537260583764977425906906297459811093106158770369786098124422440555848428768611335357596602944719977529927721094599885971870192132046974565196442976209956862611732940288875287136842966623849793194003456653277704982639139400856284801760937405202306724116455323957114459905045129498114412789454163755753580934696588030449506107395022590460493126863193137222802140228357500379882216473701228931321739198808456335501004228024377244356185801732845932263407471824315083997012656649291654999422455939243264845748822197287867180201104500422242395521502504671682644514011951763108970310091772248768451877220416352042654069754081153882932697776990504460901870736110744710541043391665577222261210862744147340538751021914387324036848442589408491623939013800997837578385100531388598453170881639805521705246811907421318320807946682419491073965588400942501091532355216423839956871812411512240180077777719347230386436126270997212010189651706961936725102172794789840515713956503062273761020130166459578646666013926193674936135644101252108096696358114382258188622469231731089716880916161692965452645555498258781417148633000618252075845895412172534141352840032581555829396304489846671074377610475644062913540048674135199057954127648043018679245323884769844484143546452912468041784353160635571832238644534206622921626611329735795745299990678069725009073233776111937209469865214566600476064954892499181094174678134864860888584096543854802454772484618337500918773887630943411233671986662323208152672281220868130429264817996666858019497854699584380152357851046043570655087552856986966211429622007362438272001783030453809217996986120074419873018730407058436493501159635504368268512643734636096310882817221561064208565525907747073545858280843034142523239186258115241218538090833852837546525439466255169726040989812371516185753778649253719579648155022067116366532395584765635696802096187657968710740445166849169227402960011779241075505115033605605117424826967077522332454114449145862615717879673971584452771217375957713874842208060181720975041441010999877270473114439933927788065162522085495230207243957285586580841349136125266602497082757025877408188248025210678521128148735709276259036724345770097942700805254627979361920371575055480694228306124986613994264140406301596415386599149798808132052167131779405989442424037222087166654094657254048626824612252721561461343773037491764337571200621472837493323022779968615025782137404036083441031632162692349632596815336463107857900582523342143373618796591646514568224140748043101969711389529156863125641063394555902696621946904807250041259537749418375234450170221084412629095493918636387286416674778892169966719293170892405784037108509988868681324860980837698877420930858894498329257133286880874593570985820492351969397242102295470172967066331573427957214048896033340700686800639640186606829572702747262365841660905998388978500323800888390249668480277005600690326475995828559538678863697758633973855450483918475387229918505653366352455733080389383314724871084435638592010522522666290749775372200461697417712578897781440159016962250872737091700898813864579467907551037148121971979115064606011848169208805054541850638947933402922660939386640665952647080327465461704477870689228318261398687475633910598871666655686399988048174142621155640300103545864701088480450375480983363487503721661340809153142830100168004260350276347938351172601091336436905795491942560918249610206298593859643002864607393077271287413456214717116894268191234244462894118893450865277287694233352802184181693890812224455038223005421592843870274917393195595893643935208316715289529935973532319431563859758119240830201749723762263685721374488771669767331105208692650512457077499236263702345741268642327151565934063107967695237955715848084379399055367478496097924084942362196783584370792607017855660241668270962618023058006492009812013972899162771360759017140834012539087591128587798185729524815374615593117382141565751373742143919912028161284314214511224557165675361248860634322497448456844664403591389806998839514185900827279269739349621047869367855929251810412375606253833056902457033059251017765689714334357555964002012258285420252697271608042729073030254432617335919059603015406483469291294996863313549705431459170663283223407775958144298055740344041481696761238457244996279031866443018785697110625100960413299662432218384257625899844683530576006438698172399445841381899902372977572371326167685929638968442537504258283131018134648126746702310321146253134287473390291843624286457609417438171628691841710214186055199387779240342112252764640471807971689330684886659054889613732802933956607332449366791573555499790717853311371392663287563465216059402780044268447360385779215365086411973953451162041514663673771768766360626906221594923476029189262318775215788024309702381015050648853472335776817072245544668391879563933273505478934236124277061266448634520285914722073354124312157657797959388713344377930619137933626828483690527612655676384856362897977779148609223587604160326106430851883203823724511103773357433088287790060926946570798470274349040173634089992279613422636225703704881514856937770582374488485286917893110387583667531436386744199956095102987492702158320385779251233777963577559542043997152710309115492073721693128633489228606774095134478362920238033020465948619312605924360437640998566387593008975058691652438623815007176509934078727359924635094228089477302116069141982929428765389220559271078490099078073480916904531301457025458520579784097661894782763758260093836776108509459611497888532395850822831656504926762921172745971951194980242169533034653294553650563757987646383800087430653742970589065960509006254423665484159738696549349012365941107862933028180874549082701818587048065378940395704905694324105154441804579482608100606866026939223785318341612550566589845089697380470250760656879293023770755925088839476922832761406781211689000614205642580383251335870176436270062864340467341150428679024905563511121052827339635706538977708103400534667522147676769569930529263872396962245218742011382807136514801614421668763971552235677604767119425328066455886538408756102070774641553798968833673348627136580267647071152219841678793659685054585978107801789674241569401531395496959867490782301433335169622079672289376429230952012228729626905383494116348448067081301296910327868497157350002170527608212388725942789972977463665690132500297150698001016120940817617838998232229732269426074945186087504995535901355181638431802063000166713555688070922252389344820697441089319857615559641402369851598838754708390882938285264244861502377803799170869172904272183763023257747345280178052581297549687013672984193875681011662212652908084932047055379257664943915741145975846755211150831387470571609616553988330833310151535435790794030287010575984735669252613195959385826818085776894661352121316654060226427740775561314374797978716972923978627688395378524783181699381172597970498238691264218104855898956661755261128661601099222426209038789875677812414482064849880339058205804888961854889055612550188257860978507207104916180606503555349853487044659313978629430743445792102705187974111296589346559126305996907717782987095583328530518105470241838311359472612384046397438436835055876427066018500718894948481317361033207363010066575280796036972728901031646583641030156695637513571314945541162032674569436558897291678851295300879490202038488059967918476055228278796668800025419211438017438366028340424106334713046589303256434417997794680454211780522382474856510628276783260814487721006986499072717439778926548680150162491879229298416994496728470985998189322183752793587296106197173698631330611839870245231443559941204738265983634757444811343242673319880370772397305743792150050927110586288110465576889818350698157052928822423254805884811938377560266848480101968959330506115148690651114288400349496687703304602230320445577533322432315588344422147826216441877929329399008383533741699904430567808509408214516966969400428219423880522386965242373672891387859143616916470353776061759056265914545880507521203087716082635231212083788553580750993420203316284580606729905841836899193284638536935543114123389943340027407089686597096896587948116465173889216282809363633950473390195391532640027146691503325002089554341537367537294389636178615227032180471754139517691923128628051859777385222160617184960885508169034882309928562018854136573826751670280503203084332479605474441329215497450774599271126626380532049860318788310886003724974690560211945028496989927209502981982046688724934315609922625952694521060975266311927159128730460478158529059267214258702213018202554397073998139350958909419138196185616727132246875095078330911031621693449058179597635469954710068432770366211125930100796493746571288255932921429497796709776959553767678055403491437071526755435470980900145897808014573806819293610284205031077240444379157664442724488972691848168510710072692574038823752967428286863377815047454818845106304748544212563015473666196283115115429173360389686748666612266127914293884501201358784834021758804208028241187563095300173620998763182295133339618454198690954049575695601738111019218599457517382672407004408956310408419900530581913776764451345484269603736385407840984377951429738110402033154324928684390956812499456762389388018259475056356435012414841622864116802369705072837727586502566441659005199981895665599353837577021661393549475707474923755440257954340668474752383162399263620342639549121815048124835622744634504169725344102263934258622893728955465310085826166995229409538687904689413582092459880088588989544968074915835016071592141375148546792740615279558766946019230907845011098995344982257795778279017263619929049896997825658101531645112983033783542629376099895713610418462778189083188900984461891488165908742586097461737823744371141904598778162238215278980110392032544676250586378286340082805209753138771440459429827627861703616301856441866031968987747340130735284465848694076546324888978323624676495465380914842366599465745001586911953777181047292943985275273075905767697816652050237885076858999882618606804548557799201452193845143005767097977281702926131906201244931384163577491711446124856830926666277336850035581691356589748385158788354074765789674098787150348199574317439453727250180071030311847160807215827070673771386908177438320667638353981837915680222429788361346737790547390754262287921612273243112990259468795364687669710095888702116035239815048290146568535868033805758268389278986759016897047483016699424979953651979455160160527570486533750158420452782846986622921894204011424638026339285909965233162551458451903076898595408861103685116557997284014793037853682981286370076287702003227815160399258028850592693008224670316476884421404320692662082078063071140868255145336826071365402999174609765134742961662582678171877186154970966813332253572770871914086706834459462822292923338532348887760791470109769107160140477592429849036682633150546930673934335261036140058220833806130657500939087656557689891061787126462144288200386504057711013132684859219780737842077365732738653514005330600121640527477386464718422210877068842518710935178256713007374936394706334397042627166703900236731894429875168060699785968240610926705423372225556192783469382104425569631212730461029770496190499884998689989717585473493201086134824301045051243539422922595182047326904604961195288301569652652411905627333531735983698394468604681868804760899154972969370083206160332301063984084154361252404577796023444221777863633762804707874253107654163980245014156598384885718546894805147266524968780249506369396722198987571840418576103890353165000996054219294735770163546972342893649165561431306470539004626887557513138371375378902099551887489587219622825750871522513524500522946717132119711984885671519203874568327291742223679784809151981275062128793091407152101236690578626536751025761272491125741818331100204759182397580099462635715009628124501676774638124406683209440832039724884980675257962128612399682248370747797983556506637328804599268696031247915038555815964387775963863488445027192926865237798530829028541267252247538425855886636103367251579767167474172783720737877135533775937742156749215290954892562858424037032544492045598388370828674289814543653046521529801191647606082990453321579940578419311158084385153959961530736255829089934589032122743223931682837306939306840241813853397185819590177487450491824725425723755236339054882995669245636592760900817418499170344804224244975263174961804060443872536883550646516144562189044485339935929591833662195060963860873627218862759303093568255445119489324720196184132203136883816165512717347113760168255012558088974613719953232100203988938128936535421637350526619224855428842036231402412872251373842540549199603030379696283530957297677596316005454526927791767198927419535796032638643187720243436843473707518479773032256104052401707604975515196179602516923187899457160259531853996304196899690906195666065126482105259608784307051161219190972551004059482185978054881745972198660544051931554511776733458283434398424176134861322124761085284028892590369920408877497633881088592947053221167279391983357401508170095184840696042184829959918456221232454739849134530142806098347867249905203388651841837511379764010703877300739385414301039553650979688743774403736081543970275072032925475121274024141908094059924275890832701961304604548444973791016899280969045928559777401881803954202562394087545042870775746735016186267557736281361682022253656876951064243272797228521769531119049350333970899346360797150742030697747743270677217100714102375117183303562301495612600129856028641773795547754656978410724452664063714998272472845211715683573653648025904172848678685228825500613787023525873976688019877980656078181383671333232876948653769239782087069375379930031206149713898187525601663576326719291559386871299879814857344191384402972801274356193789390981008078181428514015984382949022915399762635696706314606037869269302731490412322386890940812269841899974174253868371829458572470603247985322762714440551080017572366474771431365629551818483967192362885315015927392099501444948446316478359931372946721232901135879245349272969330452335484812862445702615087324465816400572905084786304625208120059581612794112375504561091185640800958016622906548830333538210055354925442982267063979658736954514477168025942220521867002600146502330517212424862832270781650838336541523818655309545136243989146465254782330750105300351333298935962567742031753141561567207279934810782985321439572182388269849170331101129369176035178619289256069123844181366580391115571960514899440865644920678523349364046975757894517248201196846651942300567713060771154081047169404634026004762485411997989154931156623462239151108542625845892802255577580040430294136317491704768693841609912981987637431614821568211129664621624791593850210336632864833104485910116756671208268938601269754636528585779031360033865969879026152195738922186336621862455480841557007986280263338224468231061863108618015592239511391404605559966820128754900631296412426218362671156747635104080777655340452142115774370400274671709096147776904870664590561894090953195491716457328763346681818220407644998308106171049591874164002104089959656715102625963061841490622907137200527836348474448115144497793480190159420668000561838930458799145702785418834829755945385503678297128276350937755948146912514064557942878975900322556299564947326931603981106836131901627646995007622990104339543588894715147771418562449195751485763533676235338942150067449274430537834514511458410549103383665146816259037161574991707780599539601607555304836361304529991854647679226426626667857068554397764568232920902565329288201117949910570356903219094736357468826239828188814272352468113843918642631338565275924463026497951454734072986553276685485678960399257825268073791814124022794898482130244005051236443190745317101189893452426386105296235171397059120477998802030121673915330416356732551363491931365336844461435638230703209384746097599549299627349905820869960053132758945124627793085534503655642384087012077570166806454688104708122100533050319452574619580778224797660186287533790056099993770414017407504814807955755349282454291588717154344214608140118293419298098676045765040369995135112859132562150879862111607159350170840631385933413121359307135265836724978040002546853823110035877736298829113723685426556466525165242547579616511318738949751702565344681619591189924941510794941299456981060819895648687123259869629359425658046344481541410754254697583070973332758605768781963733932430934924423125315011592016965963074102300658259553433789965185798210796246759990654204096776480686415906571786113511270262036251870449999910075282332882265587187214282857862302346114260142692402829824306903720761462140955107947175702671262854479248751560145102002042097063960015460924206648174060683426641289152565851280935025569996268857686737842780576388936492128663277964591870441158055237495716401716475937913068038880488709842951018961551361182169773478505406639445187003137309566716149195740943604341702624412052546814224919582185706535669543397165193183074402290812473795869419884795478161904623921247962682640417777330804579690829421371645038967050976580921506877447628689461443234900663069398177371274204969065435745553246761648449379326574175877233008214264731001063163713178112855348553250809144171443175688719793949272931065775203483551577395402234900326978756432071361849960206702279010633983910123043661732932010375081779243571411102786288862897733513126852418132115176414993903534548439176441080215631882462475688680542799545939176343808960650732242268703587259885278173338319462687629898581460287478550460166273027814626476195993165215443231934518137958560639529462147078450113836717141022741593798719157399327655720532069320881899539970822646000944410594166441944382856612873371884277548731132055045767154789584164657093391626744436910930315309808948780692275787924530951195036328452588471829278274529531443811695185319830044304512293295444257161248203177303979391076652808495104328678566532327464335623478790096034369968470119225261040461931256729191912550106259125865918856005859651178301220472213491966596563780812634661219525046596124842891470648219537683081952989793757295067586554639918219699022917920848868016176736615629828613606648835139728335159136938258597594972238658080432542670748637282427875118883178315388233529428160424993388836871922288239314322730312517373482552503700941977290087725013455774243691887345177846612418565236272467011885192226469422425651768137948260889259963082590116031559837069733326667367326157808540503869485263819507480518934130975008990118782462129806416322697494219567913903062807082332542002498618575748992553728541145162605853113502799128006595916151234855844077918282929229202904880558405526362520850362160703295343299598446799889812866030154537695642391034179272645716035552503252363936425711284165236895735680431537756670825378589975747245147317071095185875939572028656118975038485036512202604014871337323732130709179119718762355337978535407712503269270200702539352422681839460662974671580792961852336239919410764173193906928532808961850982757907014126381531252983259081554219650404906979592418987236802923939378581973089402072611967430132473160447662152465035691228514758226490396988952847409162148707949943740745324778489900537414838328878361106598458823853740499654934378441899153152118802065627544324260778767755454312884542716282326947671242852915092092054610028902497982041502510004046158136261914544350193174544232189259889334925491768250448151522884473367159235573487470463878046760189573021672859508110258818541215346032319147827612730503547512987646163413125912455048709270495523777405131879362813164639808884044050321990284197255561359992790050968713826230619488532341732076233823796762280988456095822428332570246129674067746309191187568676417888647910932861506304224290752487859662716214670971936344814118675229038476883986855601382514922481129218555385863739890031836597482862714992952511325779793715794449649055505239100871502701373067882176816369190570130839816468256610389561490858631922186233226257599001267784348737870405907470018214041643093831585189181729689003411817083742298105080549276136134867077117261560588050360270642224263883420908310900022731943527154979062502211118970466040889892055256650883552941264651290930342258134432204181447008696365152138490134414404265644946416455103596463751977971032241486813761994584996379448365864424883993467067373027044401311531705663889160039987719162482628736271764497422228985049544814801534449353130528371042679422142623451864281634504541259204162553709772807832766594734393680461138381172090823878149971968711232508781657612685997059990535990579347893574476917633957983993540714669144283737307079398333625515143300536788961757006275869053568111376604236308303380300943288442143565681439364166587212756283933085318531392833028405802089786345032377329512252550403394670819867240415990422901088059052268964523555956960141807569903436969992899997872319676674393075988197934956455409906022205330618986382384818012229877112004146891169105891953412037921521744272201551687711069208553903328909779774225804260152137032886832389564619418676790770484005572762747447808323366922368258541718798876634305828443641177116573661492951434042469122854050989011772718058469103254072155366452182114268355253099414913935914979507145664803472359579411701730446527751251265630038220757649798513901216316615631979983136404395306611452033149478441793229142104286807707378674164471957446875360198159821930821901818358344968272961048740876453599311056369606228175469564204974895995430857941586741307734991225723508647812372205589198015253918366286173807011503428287691282067659791055966107610246463057391753040498174761360439841775618363079606055627409520176785035723281410983477167331539592185698773860004759531713513121295358807061237059959355646871435937874694553292272078539504913728335437848473890445565974282912332089651196926101682516211693628374672881610945919391083361271065469628876099567110602149991803755783242105741854207704844345924286932360154717907329623405617806219868098249133184238113657627067311850768691588079901017002417231430797073120712606639820285069111226116019725071264857643531220700317233156565831209901999235545139491579199532908964117897388011248763832816640995545679276817876609042952786187055459978785970832394554841291749351560101949904229067671544008451478715531307444690333720962668418655114215478886776652604091112417391460354370011247551297193858146510193477139689130049740100258406400064916591183773266451955240539163244732374638923516461167345773694443865126182406710031228700337763774281414067817005862791581879932011570062349498307312847866726972729087783884600965589221046683389499318421434294990256554167656041442040356245721016079790774968458178274126316107363115192282419332570950222927891755173440793188124105990325295375601303601416052488597010582287771663691113209658507870587537494043842037452164188871386163154241469282526289901242360395128894595446300995757778585884723455832118265379120187294440804816674285153460229708325614751750329742701057739787878171178852554483900991828453901561484771432805605812751945460130803494826639654148023151555330663738997553545843175723116952878004701796417701424839001066168552640290966603239181890614229257157027393425805354331907672480730645118435012831141394609826610246902656643015881499372767805367132468550925444102304028730960080047678354742044038657158619761566046106813769643674049834150194283808598959601643435409554978305645421848451110310533774727302400138877852235372535686374912449679327904978058627252144326694155405182836224073836652916189776217282894819715586134355063759987715705892207269798037786222129070490293589015475068330999706418333621035843969328374759944301869541253942699057404301234585749220323095313828612472134684229925030723558174252538160185718400704251029231426173643184788908366220361382067032685222512890054282246592582974255433375377692394787312343100222032815540394503022959175458669819105439466972942447216105017123243661292680982285321910924458791923044811406165388562027272010285922642118805519759291153431426021690981373129533681372330077227154327992191276823663801831789277366594727486271628865899983041335398438617447897953429386166852205959173670986015484682805051094398170230852596544792124624503639089624388533895877911292421453095675198702002252970356246101656430713097743408560926904814323005012996377422654870181948724431132328091327235981154534712146452118876475343953902732923829745344481241600048100056660427332685648376110257792106718759431793679987607341069348753506148467465762968876072139168384746863458810022105776770681166356735452756592578612465150013355585119360990855937797017967137982135030943318738857715260045090587210612586323479920412994497184617496303220846493228761828831906242973823694577218860642780129081444424407942440269404545978377942956516923435515704973717844033822396204572682769057708366107907296483609675999260178809189852116443520866019962853304505021760298341960284486583030287326779839106806992937770186760759683502159135513421015537606377527905794912194188976986117642972539906417702675900006653780384393726467894871151464097630432985685981220682946337472790950342704280767892354192339862444674001088391572240567877644620793177600204172182488296217200191328842273116684334461112174487525883231923609642627328069983897636497564954619117976620424129226361675291354166878042375015010424562310845662108937901777923010067419577059431378256744393166562446520132919751842186261203611842366039048077375530608091760359719222692808799043339950394988053965519350498792025679091780677661009140472066633932808505695169612562065223474320254397027040325079437866594010277164873720656717572908134140080353673336928116132054878141616918338386920569213148040374203406024757236277337946158035513780521034574205677925103206359486943671699399429938280832891310981397841231041860949115402069849720226039236495070192492914447530723952893327683009373952166663177667188907002788152935628302997121745115113859443483467488915708225556478885059792120716342258941526904284234231076393600326080894214814043702304326600858344203964642081674649985337039365984678852006342665280968504232936197118809616460317913527570234575113445226770129505288297833033964211459239294546386472205087513732780265660518314243948283030770641456254418440500129539281033274013813240218110772952313939545862117717449010448410402739207721827706771237952932907329719357184918914243950740274367688652622146635823529741023772991309185382641071426029758375654509725840857744220293075560084261505153893592019471396584389165699605416440329833263955663917366111088130658535333766919523715867383449259283642334648594238240174019263075681271507258078771434615967340344358180216872265672659364074766742339668390011958870196225617205130877256220619352702270274500862282882980758856731197446929166691871688129106044966109410199047423749001057800652633852781114750785100873779141427847811421348110382871711335188172096967339795487851876941228183128399747743623400945232018458899333257014948899219682943692814412926542913954945598571383672420893400604919340680547458786245681983285333232832610529417780600913208170652629034996498233422294171328977985152033952253718679282311437489214404410060249351599747770567351544571016168064946900630740305391204672730243313962277189254666253493343898395545648673947927751493421672964319048976074137299888265242560191996047137311750231816130124424085548312523848782118999951489578253468439838928645636873981808573452253597448842800595427586657566439494938460921283699276647059243169958405994012925224167502736631504438727011499735260653212318093393724798679007363123449468555127948406674177811598437594636980740118008780805447104617941234321836315781479468845254769734791972299048263718089733995610579387077983503457891240922790477524410295379676592035435651703469287261121150990478925985372006090611763312602413444142185024149284384855155217204952261282953591906435474738974135157784888555442432162309963875566905365932545876337920151039494331630037772698445751448646952624937999800700945438597840191572584474496719896796045189898349460145609809793008103392011397999640317518458012636548958665572278702416427954199454802918958087753123828422087249368706358237372534473287988831298067650835944379667261764204560775359850087103929768977283108666813030044323888204085833344308588317222710243524691325933887609908588268341815148645599737086134870888808927928196776791712973853850684596194481859370289424211982731660479990117366473296572548585840135220884257786325375878805023407534483651987568833366050370575897142648811942184912877511057296483780549377605868185003743575241854235411020755978183299239948518076388023961254240408591301643988221033780424227908674154594063063632796990925428102843575874602421480296315635287727877896003758143821229857412535825207842470422586430810175446811499041583033006918046919370968100033505223518362250469510553908984038789552378704094932319321005848673166778402330094801329640946901003554811845119640179151368390274363475251572327209200625272142730663547668905030415941358111433399065719783112710556334968960135923416246340287550937322032400906635675100156175052225901625421157733288913934547902179910453205310230401156843648707236359619354922545799153010576445753931545423829768156991136249913304060535924832052026294450957217650008926364820642342136847491192398101348731742996343200173568270658791113377359211386960590132296752561884513915858812197259160603906143826332109748403568320307889316427281863207188254633740532858482174825103479652615535867444395291152422904116176117282728605683231241451360707103983701865427023660619757479748866654160488605950379039934252830783985386620680395917921337348060940407554529590106768348041130021129847370129223301304586633471209969251724495271989731616310807284847520328142239022631696512215138729058816216590020759331884314665110129314479531912703761280003656786793702076459723594926776452053545725734619066396465571451493591526090669062315498969063111226370003027895142128036858427841968249620432639259336882091999133648995994949680638625819532538475263770448060264270128917090614300052121228675441822458928999517853026101901332894273417603291682809662830940118283543996117046555890595864362452843452485348842095317379194404352243388702638935464854144011451162997751735189901061198561811560658905649619892806680582657386139590665206335000031757807004307652036186841340624748493493769183295949667224324678662826051687461710516483700182408828361494297251316375108635023664608932066919094475368987814455788462680024529212017899198920424194804094756934812554532730865727113206098706570854408194104854305977873567659785515571315818679018111651502022876224637275649454693051211266871107584559781763772942132168726755117118342227001823119256444991829254877404624882605358441624167173290701707082703252121010443895560334398676120494736722615657621420420170435861275825288981974453944759296106822494550282461238661207736896339108866497114250596808993663360143343620038296261057444801743358306244802808490125426899064196176269486947031038593729464574071141718407249798976471339058994256736327504612971822569365784870148088044190580950851921872004945505411271101359286819104332191112606528307412919844427311488386420780531665385617206395478172886691311011768252914385559451289710824536065881197324682760199887696829002390289511087211665244848189741686766846117807314063873564701447158181004170470726858102815921311166935694624676575613374940698706514372632638326865672570265731830821490851355815901561064843104398446397815538350692580836220559503237712988000632722612099389680596628619811517353469245923996053873858465773759939987779477588751334726914891286201709000984243550509158622320802530582528770358072401241564015880223275989264879127296385865551225205408393963633995350266375078212058709450960827603202808649562066303886797610915834672477793636309199198601372415619330800709278143570365427359171244324061523395440399304223309800270551139976666662526371722759712601450788303576791264301530388341295381889546775008630871124057619830277032545421301735053438158344135892464475153692251538651041082830332029279150421807904440733153406538062368202611121783592179687076933161701399565316583975895004413260631631623307672212788655742854307998257138738069810685464139994576924260611564387543657488812540621378524117770179217001080476433616524222770889084912941443896548418969699299343682476374496219161651563600264033692688465658635394807422766130681403662690582414073195464052683430579797464223117097367833623893467610735189363617182184827705517912443210934971494812966868557492809618867974680574229016418954308418472787765926449337603218872759135310723382641198601922645421503146649411748891517862261727243655400911386323697835923192105113035198855467314336440597900026748227406909073072279796987036168743391781619230351699852501322570345094630107549898524374012807197840129585375005017799855723756600523632064390806178127480468940782738817957948076965608241366728684098332090740659397028383399234050330238462981244927685548886843473447984644538837105785308584825977607175914062603687295261586707931747746048498578787732477444449458607781812484526194615256813362372638172827346288759323262796572606408085695717575754863165513871840012408932151490856647267670914808378080509475296025069893604212559425462991355906186094765734348683921856582511679606118784922024143561157178085724145599007742586540010728513846404871378389389004136726062189581527740985828670061801443548241517673751638930960708226511021982049520238463378219309725655108252385947353246549917069163502771099639556073862275788499907375224316995553472445984079580275071697352966348846504374488949081563963101225057980657428389518960552815031146864243404090721180091389788072904359648487290300001225321675736152473509749400861943684688825408153025292843183436619348163358062511586951307087458257288435109571743780675959381575836408589860216043334657841008438240406000731162096476692333676157000388096186554669480545241288891980859863309474470302759853640227484756682310080779985610361582105917873760066112725988795964095018597950037024224134368197494195713134815094369181959135052315125367046448996699381890093692743754316131317974035211563171767315442452305123219844229355878092773214616402529464252010185398091152926233231057579929228030893266805793558632077447832718935919015754024726752096082758965840440165540085079674827892230991002432616948099418245293687848831871735921690356290333513069147654679402523976579489350494556387560503102198947183554164055161375163450261601204528919456664444584692408523193230674377576425761808456931334592411998860192637159177820158972092546047838296816845644559640554049009839497199768008739411885412526167839805513682804332123946502210487965971542321794786739890244994843843300114216950895201191619154229448797422652080614023073277386979289443179989844748683670076027267097367166102169148873032392044335815805428097965399761125160693787322501110888852501274206348014228879568969628294191523936061501435555639652484013096132030548632777223062225749315186276485687384103619075954952439045234100862292446534835347358941813055865175499202554908289701344053187528208637704110174510930559891510624424181503965397315690800352284113735977355056885978507323528941108476804501665425457333917370886741287171620807523101857269662592188240899338667579602818453250864692360865539152147862485209070590552216794345693236255672039889567244654703416115387706178567677637061026961040265798604557661622664816993996475596470299450061433337034184991168780992794522593071648441841105780092345851406739562082854151571084693353091747070920782897339183177391406355924471314757627070690761717224450495303896183079975728611031271396723270363665285938870761308712017506030059213463443161937065126748845242257332959905275929214471131835949069453610300928187301764341171780075461513264423154293500226856272662018171781357513380235861788023756130196769361314032599762737586565457689133254835378059813902607291067327386850658083134390147927078513654149896628748606336739768159575430922421844837219514762213329861932528016287549753927680376781801795185578577970708026287552910531481232094872921462923724719070652843344906014431560117092292388557993548290203614925513453408375638397349359690436158918399871383349408379987568488665420387310158808215298093026097059387927960140192123585025337922071268748647300510647621171015572539223786736905425913631682816597543622963152878376214322396106731930320518259689298816603966532339213569114551639601838971671265649088472831374476545920982889088754220856116957334965465551142078989906416831391538799663144579743447285725337034862841400744577854434556949626234443052184524416300156099341854451720152587507924651820614211141348730862892478015829868950559215929088898106637093669248224339951805022506359739648911325575733694382691011482064117290981282198220652345369355310776222791079760216241164554440958931884519370662437536141413552458078319232620205701746925024892888829194755618480780408438284170067583496725086633184046788655019461649199935089448212798871745761275824380311666334800015902703673452290934267091236255146053386589917450287762441776911903245556954609788620519814563659932295390235111070760291837982433785011651645195352735746176233981137764566774589445755657441728597639851916851310892432540348529360760387405241274630374996889209530610151763206686107307947340536210237692002277314696742460591174003108601641047593469222896954476814015145427222290149599951914574978057651349596685528715365467411104695771850322769410084837265759019551978750327916955105951583712386724488542597384242056713115665991041591700909094872126411748399706680037920797976053468687485609147492916040081987999445278030867130173633801347448526247814888873108397798539443385708615338722365513604937392719744214028364050244966614300806331464216610854869280225232126703936545977177011043633741582248724275749269891224869959237786357941968786495559846546420862278441918249960295956286578237371695709432793197624534077942823985102020207118988248634943888070067083545839740495377158458089978610824505456146411645826137123038811809077354164869537603159292587749302050849063433182892591644589224882289123681410789892526551974485409603320324552390838634287485461805961605751633573241375384765934097581515092644518861580584462477047355884143036337157854849012281386868079122841624300789537649114630914701775073780232930056539951565825971640398621663837191428925373547030500623742067147503528589248584538670853834533075595571706215860095884279308032178919109020374741354678865100786176565042673359164763238983598244251369254849210818318880552607079228480413335895357219967899351683817959036900983013697709081678143061773178886075850376895431843575155735145021360918498943572724695044565221510438402943463002182506842219507496179103571369885523964556281825458661638379243522771569604179031674164921591544021567052923614375585612332800617070670640220737285118021062464988596430837853870959263699303209097873904058850753973063033048175305194070636436344001923131824013207976023912080449803795277270191804975944206173642785104791055867213723379287393403658960594258967793531266853865917979165785307768624742963490134725591602476521746778400267084435460983051089399265855699666818600323663037687287843932407913677533326847924726065523369053896678237530096384508391311588593715564843934340172345755378862426270725980346638081389989881359504786880798352291368324089672389604030756005889016529176460011736102674367022594529835854700950609356715121637681158981816285147026795173130960812849858139321960051738318870356705467345189908561921903498272267349148409153265091366926699268966925194512095608916445529214164186613996258807649422515882026310619440196808047462520079844236805657681378929475491623057026710482315716134800008878316125471815844574642702530125608381963754990156615416762601677825140880150748921256016363673237616979726692582568764223828654081878436464410547743328960993588050340005276702711267019321802002665984816237432315243307982741091009576745690305228129983300189384021487711529289587388490423691325498582709336427405310226560235568471039509956186275310152932753307284313022866181657288940606489356994083162795480654822658931426737116002871057692962679184573057064575524684738924629462890720532985163104499173272138579532762099117827442640185365623123338407947106582024743524031804901369228757682416138466010927920864928676911922807670398642437951264168935232494986891222703696602412745951368299894221044730250466890380080061824365782430324221445956381194690149450610637847742810611836566393477038437707229830191108073548747504867204576730973940924292335078674893773026160390989534503025264246023072642804524864096771439056258040152072382673080630563821826552670911873293212106725018113376423819865778184081740668483519839984275827629491072127395584545318040194871246756858025342016109932256214020888885170122939443463588838236787102244780038392226635294733757373906034960030465613660248737086791135964724634506226696169239686727098111892705986661516897732226746871523228823178172747483842971267605507232338309370600003523201008776530905943021793123699009161315051326537822681540523458084883887108892516019343302418380482639465654594500372631398257864669201624576454972117351960805940241878894717301222364473790485753847922877032992052799140282010629525890143891772322826716697385796845624353246890339234335433710143588309127208152100919209317584040862663386817161707418465442968019588889446319176580573635645718862528063496647203598838058404382463860752194813187012657902210786684138933327261010204362422401153277863208387631495257190700378735840343512888101087421188319362730724070595594319441314028250324283031101976541504469918529031372493006429600005080081687560251038224111178918558113561154259716981793636862699821221667868895937068375032442234748898903341183433229756446318816043843019840245210467306095655193703928078324015405437601236199109997818487002087790729176806158802852796222388858542821760061304599587536667466967297600311412123251959118796803113510469123245963881755252989917934000418482476354279112351554727297080546221949692702440973718001532344422221826406014146335236862489907017770622878387709719010426188875152981143599120046055984568208821142887237054593605554474535357427337765643323372617962030549614577784801453466370444687236632067733239728026095937737174928055383075561242246559281440039375698660055166176864940584775648758904825547027246690220177130921193544858574642802999136643347911985360389225701607537346060100755145265591682054863065421587462947684396414218590689585391831771248626971737177438608300214892753262378836132518555825069283727882777451998777304302001161152185223358800962651152795457407403622853305579983556375417425725292053622177935013156482215199494838570446548394931872768005133966259790668440225563682051807335073941299415269458622230913584153416451940699774932741439629596816858577362329634661277972931010452339596479765890383425080131129304765458248460986964414894539811857211561053909033700965994586729312843845555075348311505359660198952552916268091244659393991882765493525282111989387737451953805640233750799699244708984894746118076869010122226058315493554894922895259390259641868155648727583323491747265214161964859397560465400241123312487442884329117490682150558758852628441742092325380204309027844675787548361672912095301876029280626708583263158510455933980804956108033988471277939238514372098240978158723248231260039281143104181793312649852879623974057100310938551464439336470357332552736449867923572163041361020138822716939493087575053471185879424961631045321486622620008810088697224783732442184898152151823903490087194201508670274751496315423634010058911115172594203621441959561348238355683482897584134936319107259548115231109211568573737902633703939846221286248452616077967168572690102638550555436242195093751390703778707699413940815674650479043824987212985108422192009056803556674399922260327496003925951708149479743569645918439774703871780667395009652224531294751016120299998254420284263062807177321150169209501613305027535490100675270551738193438645250558967547498775079362722481106101795953618812470436762082213998906357699179594042847513466432827174398859148472424035113166801057603603220637010978673005366002059892656995391161804551715730378672732470152838838884527979119274274695313599818085151834121548934239996293249250405015628343538527734118911271288863636326210338187339763830673922027837349705142136639489814930346363754314832123447227239893052293108965554486888466642461948245916500620253433961026876869612281740856748703459467876517754523366600989394386489166550638912814831479490796174560368570216309275232709379782147166785142330264220227699306709818737376948310048730565688736234307132150460120794622058418812167649934914459513908066666916620954561978220862606320031780384840551723872504984602634012469995006346892386014205093281928843332216399557698257906255794479251423501644831782927906273020876518197199890519064594456151688189599015980934924795382052152368497915730106914448156369563793933463477598615734915874523206451171281729310450188535466393139737141543513725293114037408771955676691696214279346346735576413866539644512868952490168645282924984665955411248513836222517984267840981017368217869945385290320263374601820443494841409223636448791295485909214758948827316309336671427035193499618753647815868015310632158789129451239869639215063008851838612889191683539638447254719767584250042349334799298486500711335513637907191888278050299375441823513131274287571326081060479590467189833569625529701728915732534455584272931781196797727521832691542101321925592782228739348300125222573320114415546002089228834288697183971581384870664436371269069224798086554143397703986617285566676917288354307608885130892784246183446204447886408735592257457843495956126447328151432109302576842621454904712677083932568840878598119162268984863679384865381850811037771176734772467949188944552210472193968307466244804314139319218036593164179258066460917805891734314299622016710429805332606043026948022316059809400016565488224659067244823315553069267255987389277665872646973312812565881710077013919499077578348554667862878690964490405837624171843277093811426782790799842186227650023427357366539106946827088419509093981791177656050465262425798173866757320858340964864675808511257770620319218801016601568614415138098554943509333112564332925038274531283969679661498925158749511852504798367789823957038157779828901590615188521399673108319218843335256280843859165877558414954489784105378042898909837538730419374812925905736689917451379636985989435650201680229781215045302102442773798538494184862842432040093056284388162455436230927592075315788572967589459197184282522042887425048922535923667337959540965641926362605320775838021441516518281552468718216892553401369661664063620136368870412346424191895159783174689301417213475330591740210521640364792520454690129107415349523730870840939469449680894811562601107853283691692479293267505781974848438755920353431539067693323267457036144168101004085667334953615686664693048709676359926581008519377355821244499372152127143366088289116503490649965450275030871674938579818332460953605541431716226505601361844205301865221627348918688498209564260356134551633752236922529158127282849202983004129136365861435895253792847080370447372113655407457517857042390464940583363234162800257092222213464830177707891867451812528400499340101597753554994149339738147549990524155738313681680772176074390389031222087601224753020525865196972324538117413581750128096598864575388212390925758978326799145786800033221969340068730821693486250716277911278088591558038796897604114054350442199160850626471336382916104365943542671577110894485411576560965296804443220173241071077462097558001633603237634816194432919567587015786794066755628986527461451279328083655780731806731864991988969829531842567681958595967191787295265695441445592680004616890214853236622820178907313851768043218539048954601806451876850656803892904519303133928095423510909316089302933663956206309208337526711528611338833131144171660405116006622516864164461586037167806863974537779579327607708901242731636017652503480071042064703546648686320750189186110043913435971926933140426865550534017161904021064080946765838568466240209533998170009087403017786026304328361383747592821014850070108807753374215114135231745069916034675874602489670643146557782951987941954294871952778937727883256387564390561865602697314047583882199502821798201276148102717052609171348342194544400457765635498736822619431484195368161777159061216137740138154237731738184669196252131682541839967377449887273371983232056838290607211201487263468262322221819280875718732833547991852190293859711468717427394095898037054253689864788691940168905494864480735233681617577917583956365266073516697882932943495296031288898210269720735549122399169599837541474148952683529898086832365674100455796219423149483468371858079143792239441915597001923601485977913856751012209562850650515921492886973635518291106447812121387772599642035726241291898512020437591297062272885401330097058579074414269699914790906705711093944738523747578321267817414306238883184695808857396680542305697733693782015605979733954498292494787575322762037200076343316446712999025171201999747891374245201244503418286476847006346467054659646389022185079704323026588227642178732386656850412669608163466451816480829726885474978644455315358613227207960335396877544728733934596183035535115425931793611305773105356003072853376787567730391369072081215500259337229615521262350429402801977488515262271984054878908329163978054728685450892049147913397664960628714428057237907255420021379372293818852708039403912184765048494106993260375805029353484977040936349562582585472182623576050240226810679250570693061825514299864398577308435433427246206849844783541157998475576772147698858628410663316555672128340385908951070913522496475951501749537323002220598646948069692680167265789832555654719407240785034374122884964196060028157450142440803531696850855790036832616864069492340854937329609418198717027835985899416091605841387310305779776060744199838043348695437206225211513248802430875626393976903975406535622209579650547140201725520199639723730681088940507505086627260854410250594984468759771798630180577506124514021951018057879438615706883182954609201574285333582267443575799184147812001255376304939498370927074335934150221379508025761669435487801431598641121293488604438218731777467365773843540257762646616193333464507664587801144264805613032796839688735669183357780071273421409871106382941425749401122294457432033926896346310126335416999341967319671922114082004212511197399260988009960764080326044401715213060058638908869769190017859278232968919329838962073140467244203543272922881832216851567554955311266432630131462691553641990767459253358078790437123878287937237142146278694109813340525452663822760634317312760479748837626011226705912930570455567137032874915596623440861581031904423758619910080354097191407177004975570235012268960813287722147523564429909829765400204001759789630453404694171589181330601860701388536926098321852821292654439119113836184051065758993363831667286390725811934848481830072191384746444189570655442627915912316762501244460844987394697250011108683973724750167360424317122857353520974081967148797646138437344784197259949923058956149513857124305929095455109310392319925134359307688223760899102335417129530940365152804302338707928923829413021772671778428055598203506718964241664634969828049835687704428719944090072291405814011410139703026753487379322593112721393569125684716483947025208000924633969252826903513310657030274781903327316611458528447954471254132585526784243446632582418145635005403397902186625408793995360994771979022812214179915602430754996140270506378998217325700655315219701126300884291645034829339885278031458437154216046837331290776344694121096407525511735832399023532850786981174340605037189670385971974984952823802520707210165811633785176106576732097125625940167325652961078247378592027598466958531212771333603382287687119947606149641563772061892946208367890042288369749446136120475554340354355242628529164606517388046481162341801843850590408693453926958170556315336897043116489266024518488363059452936217875588724967779936267005435184064929692812807776491171707997942632043183459040629727158693897730553195709316135076792283422634269979989012295965743317067763362394132652589708076916704780528149597136404210243945485855553590451103211244514195790204113076780460664177862735208203178430353466056532017732901160485188175742915344360825622744839135621146236297081819300585131736284027191583330706595767295289168726209077600777073060570592301523600863381278852206307519324225293679221842591689220820734624866869193369864061952738753117562132843538561060608851038337023994018700796253517652571772705282907762899561846349054069090303638134074178629526493558225171710114665547479581229140152402207523424392030189839766198274662158275704989925250389845612589537923167555658174322216403668348401444137539507402852176764157960484225846121246744866570114747185290108471325703910100985343904225066830292929402209389774439489787927047840694843614159290894286141352312838994802408843194346804095965979297728926415035774302975511344888039230564332954342159238832699871524636739278501261197314880936898466565056259537685383998693798015805878192225971942686785169054612337937594737604020459937693441336450153795051753567093199964994431349157493054699489388392685713909031482717671495242580927854694582631006196199232279237408769305506768720959180613817109667694496847230304897536163336995334297585380583234630812952988141687944586385074886506708312658328086950910985799593758494067573256307644498722474923737353492218288381848934608427627676028724015463340685922044829028954693083217552483584901026569500878576809824878568400230714484807318845662608887524441915051086560320951031189626492200966796640068810011842726350607815166084033280474005908215233854153961248538261429972555885834952749753610326653717355098593172767512821875246639070511580355939435958175439821607840029343157822635987874664010050420116812334984322895301673328279987917201801131522291424827936190647700004308747586749479479804479753878800916119795159128650923446434488427914735673828676698987205034214028870857025323013422353717844270435369008445368482694399269951207753146928551971254961580269903101247940386491426325679733185399171001384077681209865767903315167156620524239147497747040141160968833082990148153830672587493997541015117563043053703438610007103300586316730770497006893040757746911322533722814355788497893452696479298132227570683139570263672140457905543494492621247411352260351452726628413704419493748707072490109108405055875278898288632491452215815233525287237301962093786562311446989554214750881776642910457187986013535617440762814429510541602735306140640648725832573514209775956269132106882680408035392354229758752854579534296706457933045031090578195744155020464694349496961530786188034233164129730597259517886645716625112847038255014128807106176991937354279920676009866267911400169094061651359469340543274024991498235882274516608562336959130919139971120851010280791121424536643197891698826921311430132952336138371815393739500479524791723866791503715106071175195860388910890356488054793834206192289688052948500338126496250939262744905125587013410510750454775086765053784177473899004319684571404197544987067005481773894589590529299906454955045431245579112608762666521927102446381298904700487149910513038326726629891136962002738418459380126517948490996740930967334401776297594509600151612636229665142656806325123898993868991508780003417079480423555141483812749867705537356969812927204369755170046866560407230385167914751421321870986068109412472176456577398610066884469935248512226676197745139717073298784637367306778705092755912849486618456906943596546380064720857684465988290908150247887247043962902421343052077537633652757135025486814454832574759548266102309845762856902507162278039335427103588933994810104857974158120281068046937779719547674215376945795831820114201221533665235580537591662613919076209121610862913131631297749321239384172179456678709983141644435616039959268776133207704329722848689929219249520467362196622050640119047862768351507124558250369713903521957584484773072923046275313538804099719896586148281068582466701493109727850265107930231683160944885483912768806624840202599882081419724471150498277688753573126703610358255383079658815469810667640520302921209785296949177070980446539283428713387556827452052039225068751364856408865442685204009806470380200102474891704415101089915485546093479905011675472180158027582845991568293791958167471268047532449089186813251234930587345914897826575952341204669762584256960218971642321101641161924569090362200119788919809234519063907819664062621308190702342562634501022466186289132896600389431504850835171722160710922231925705067610102453835546131889208682720329060251772915626052298182498425390283096828990739292176528570050752550234619525069928472823556105322406989526602153502618286479055999042097493940043637254727964133451039640614169755398882181930597733497877297345510151714519335577880527599796254211523519860717595398521299233558087231980461952230082754534953573216224519844768855162453530887539686221240778945699364777782455676694342817179368693056362174934017887010744903874316946461428233551379753893148255775828194821158246742880830518623029087220529286914352568569591742472752485729268143186510847903122185200186893936615105443626337269460798842383580333271996637365138762015835244410412925857910566640226863879014535496447972590225889500932188048255108675457325209977525868749690247684425016568904355001715814785913033583460813006625458377556077394845019231617420490989496274669819125138155948716502103823468134125046616555891968303506578153175019409692139303881659301718595063595309949142104487524127260496939890972025154373002975108385393410752355465043852166388769321714915008495187392522532613276463085412372269996381592248856875669549348383672397995260108387648693556923698781404996281576946520877225810580777087218529112598526923193228387992188367533222920943346068769678621846948323217763618706464293471695782255046825098566670863866887189216834645741795920427639463631247062026756464271818244371660136793388185918780047579132958241242929334406142868603156946295075058778290355518180023564175115187872310281277635275965809250992245879834965521317589306687586993581398466354206034521304475779059288620241952889645532464826350061725021532066066364496218164258267208366783168246168810118682694235661239477294459326374177096034248333962982385810169087582455222781516274350546499971964271710653049822603285010463434609707490737827884091504955289596344469636537793878583910167500083869033158894392693546821183597122423053971769474419324326667088062391401597597289724934214188426706812287573789006299973849353103388900979738711316851179367232432869419368252252905595574866683480263474831507848386746047022693568722522994088396680164985349758935049233872508936904756092617635386565759542643937037559495536445371274561544498073338643866176917039826811925357118001746741145451445247493925089432158857606101034479007211614415823539702854304061003168691967721562565001637097208840681789239956160446956986847315032684386789887716344877389046754012506693870600157460548079597966583686541007921956883577870635020428613629928988941020126197572877122728452721156653180924186795887257591030258856417286675595270335357956499563040760881518005618702755499591783643461708941589789024758817279938877147302937848646827615514474968480745540212696473231403885773694396332289343058119031476192671604787779635683273537448000736498528303279398290102186069193018355282024089089018738347266963796120651237566488157580181266012402205124050721496919810191524891245443714199938746735199562729283093449954650424286529588716711860040779149478773097515809729623305471530311181698217796040145132259935760388276547821595324133124342977882507127538390588957837961884655815713177822278026898585636068595452972428217100596142538891168169631069851935730347204361197714752605324762876427588115248837087215851841129428856296146724700937473677294049232317975584073885281101371177985436722330263654430582731096872443486800189234235933856239787580450207345672768546368558130517618895934562228726275995189518975903968808426573149671825711717903164312548201622375298839112356069029989666440952142316679474263009011887787983609905850562024805901807607535815004359033204944232168497413503380563861892961262397095204871503149415834260468929272984856376428272319629573040643261354991800537533312569163030474057389904089094945839742081436366648278615182816147162699542051184040847007423224200081663517997896206421491471502703327939601725123489805009094426735959832532270794152657832517923971552941051811071621022644589179404272317630723441354077288885917307626321485489149125346571712957496627278189819325206816577086132184469651140655382792981156932516832907250568459992450445095370815233076147667622616720608354208397709652138482188017693324469440778692938764742143422177073683721095519480913474194919952626309211399179249415285493892279909213274536190399931191939728437918647053527295770534733675211510793783561929526758026863396702285074423359759021679030476249372474752707071023808376904007635611685176575475385053208514163989960039826739416543096246805213247903145605677853977104075039212751165087331338833842519808854439447995058458326986101682631548222062667285695198442820046453958826413296033370225417641038237932070512638664614586659697287105293945511285117315303348885467450250206924324595802296484705449344402539070296337707097608901292888743432568403404150936978125232427450058141501586428076142837526509629321971927186711867525977956359835428670524871389773257536652589724644199517459179855400280924546742552172746611260891658340166844155024081489160455612761367395616065111546697106960680873663504886743235921152059937063428268061654524947637975131209862199779274267794250897042998149816411094861652767317417651862235567210256116587746890598128544485640528334618633175585591260254568557006591097056268861451890477674505990799445975804314640463141768338528162452059671526499625361365060172015491813717875575962356295403797813015377702007504811976730036808046203218089249958327549551987217395151780004570850054767921405278673695129106133534829855032707447276255213481630543347935688398143129252121249048365001015361277769880279807445635245997010359332245650251287346825526074685960179203709302588954425786632004500256666951885474037841683981902226658442704174833791856159582702373426152303850024890625906001852299175375203433050786029929623972390301567680679069854548528483566827056916523703434327080827063692659294881888079444753927197564780427329597042565707599726106663039382346079260459771070186036732807046025969458106183404751210140240846740683669046132272718971151492294686702671770513090206649133484513027558678471012939012989817235180192830183448723297330745952056640321615456630450664065489387604637309081516896696044086077597118235096874452797139791167859145006498146937879128449301660502520539331080684441378895963944678235883791306111260012326286077372006552637928552862589694610922982422244965774646062703008671108966915157251300434730051778245916520455926807921666784269426965886613931687357976459581923461534447275014691955245078726572577758784316131493934451921189794602396376340975046093094625611385763305856143284638636086950969185969800797123808931178430876857137335646918711955390263055784324519797738860399925791674520457530525055163761771939848947298223630600496980836506716036289097264987159715091557882369169257953479051533921499596722711567435027359370218909229183899149936542209592116926964953263253001637996296099292412731402375926138037844257939792078283874410802688360291012531863825990508657941618025604863931040692857521726217196677063086464505308780373942573159834998474930352836318469126111374158152446290544757733843931921288947512501007867968062465371476785680387057725624218549354098184918943827136059597265670391671315478972182913708277972602142125801069800187266854336314402953977964028346232159902542269036218365682785491535281609426977981267202110490014692561111446395380166083761430917472540959308103117862119724677671882200507828744657362589515628661292719553102462313317410900437932584780565176667897594876392508966247955322843702667973483222709663748719762327949545771947520383030482124147557831731955627387703380025456901744581664506143201067575075376420131251542146065016479433275590561938285314695770844047172247397552090335129436261358141332031949046221842157533317938856040105984237233877159685839062424206620903511432400770484993482300401694405646942367994394046788963055894858783016312935481749852365758380590947808265939801116057059259093321242029320004012127401532192052052400477349752528942286383690719750306795503624611385734110044637362229509867627648010028573757161385832410057307211788319488297679141419103850296696564924165079942405752369018237326916881248071396155655989108337581050498053375781546583970778202635496073082409780364359001343862935614596620262117748267359955989716464067269132762348132639128076396365514346411270693604896798659912572282840454732865917767132972628013956408636166477311901978280578240577495198089472201651353903471650041728680575631221925488126180784868296293753692293356415325273304369554434585885950485537519992502693002027032125709153174267303040308822305926046798120221800204209054742587029183689076035141052674063501603022526309453309367547660482307457757317500716856480188955933244850338242813534331524707234815298989583950818066836176815784068386377406751794535814379472669110760346826892452850983048878580340099018803129772871999118745168684673327371580132333445306114249379932269889693836605240005900664108410698662610407461323244802410121709813024692494147857195199997721765245878191007334391562770000705811934561189278640507492273192936998729836504335160781459301222439019948638548948490720339781791352364441591699163631141512748802732243113877622899442286711307031285664470375055257563420044668278324598958859181958620002915544621194593108037687768830956085630041843860242870267009043076949618125135554153530372513309131314666054033887316780573120184020002446090096614212954783744806545103858100038659034987925393097403174652059495632809897743428398417701396759339693361387714381219781929286422712770359933744051819092506916587251660246463927304757754887488226494208450942195530409965614787481156528535498472194496169445316450169880330901809883162536456560276089877506235439199627552005180216576674757312774794681046591190256044825728069315739934154461373982513324307425333018398109185304092088518035859164116661763593916912745486895028124706259288673604230817020046853234092558217483994433082224890992345088815063521789459640174938164311021471437029307416897590465677804778325631312896223204869684198426874368774718659592192208484477051132268172974348421581341331645859348811414519604595862490846427903052275808823479015217007593131596808346294385907569957239024407487991853206607982954728967553983868851090821010413459509226176660076174396938797313335631712282323435914168160896289342805578114990431399334331753893119856430317807766360235096456254590060845865963100683974746679439321573194969241952916150855467684701560113135535710921110976089992465490937266052383514702023287942380179672881758321864287858227453323955672220604861164154991207107645943779251939785861896169339903338578208855726980654629132683313010118414556682754627043248406795827232924509116590211011046928614970620450825334750600651887845430765004765474696916018022149295788456634570099985525968234167289707145243710965319183626860007371669696674452936736418925733541912258914052629246756937624469590919082767384234167571403635891833077972233803184824905382230368706460737513113682288265696744825721185066212811683749131744281923719941437649979161870744519124741401996790144982679981885843498703419260251093817946415423347277381709406746103749800789532648500665470521271889172945645322674502966320570371331500109857130499780330084001678806362926642417768862899277832490274475166296642636854575455444803787181068614115770658986883438305996507941401420303563349894725847326845485428692561507488048084589764802956910287434303133464742958921344074154947075603212124147027218885784599627787291464409653603450348889454906412600696756479186289208578894553105006048733472110367426546927865913404147233871937086839715861959898302969631554874439268979497979157209570585315065115956681130316075418582890145475069957822718840744787160809734689131896349596171123944092548878428599097460285809448823514015531771774294572697110938249913144440443054901195205674897661166150643444939030252700386815145832183152584191880980029323404204053420828670102135013702890705614841154965700041264455019386599582258173860298607360983935566447641853633198940228243045092435318256691150490498729525786551116523188939276058630877123642201998746531073650307581451442129890081779316080420634025170022265809206877971242631254852439881404343206183312844340816557038443266770154581211754155453256785209316188348682047051542672221336027513342127549879446199275690514666768063779869237783713793534622550208941941793487310788983095461633149853851609336399426810371193837224120313451114294961501456120925098930530176334335128369644125611956776216742162710012335218145190734066666759902916062678025397799021406146604062208241282147375868713221989001078930933960215509026655804848551677304371057398678720362388527599904738210798394827568091379752017007699594011760270112321880615604362838823243693814602770940065837108021885676313140708972796056455289424562220833829241151983352505132057745964268690462427049542797362236330442511460616988246504762086479797015891241501538612235769484008696471135492991039508609460031919155829168147939338226113287655672496057359790197040534977553272917906873326508208943907092795575574792248849602094644008235687177199363108892706125795616495905313627878037316538784177792032326560343912186955201964614968211222452282351480519515285146261570465935287513945838395932994738633187251759730778288953081574036427887742682687400521563908287622130887212612916304608015235867160834399934073031531747590330858640502383711350150431470600822224213083370119531363747800535416664883026392276045112104447046105341421870943774388867279860551909105527064616763657121263454627071090054521127765704583468645112161317894830762015442192901188352604491831434823715406030723382558711312528405805790857372859185578357675519238752870797687045883497673787218898439633781087071370657006266500392882829994659432682489904507178189374634150705836256655667039388059880141946172059786512186022575877823233645077223140117662187789824079762236290522909051339286283819867489260454995465434116842304519172413444266117267434647441105020302132541733918319857489404416520472017338448784832250274948141242567993240872792649109524517744964096005058413661734533292059683940055319413620301522748634559274067784142262432577825177318670366285790989020159867570819555338712120327283217112767954011071377083890538369552056997441899261888562187822836149418029599895557291241863274829359539472558213175961214312279638229478797743574966872139227996429609024980711141056851894229345505494917331327619549356640599226312074482820301175032508349502385052434619970850335366393454868342649865497407654353967275618899145469405370599991585416819329223506145988218253782355129565030684710950057101287727121864044703614306291252965177520012795547501871643451595397929854030349932994416642270823020603464725733159960036397489341961662651137539624637266959575853964453242867730498045908898550878259956436743487955173281969798106678824255421174680064067526684922025783082386814064965400418371224096173030115211728078227544497076825576520057263292627929375119229476945311187211222119084142628392432629166117434698508524256760347419040831804248542547073734229464283834831552302085042172705518464634536562647304440775297631018144020358399079993839631519141162280912340123723277123641988631205904274859554090631068035118267859288066937822159941378454865915462030816217314390079379224775514134883185594583695552178913845694745174627038776120351513546083934340654020618118923009774848772352065377865940902519005164334330254711824461780650467414831620619652750131002207317200376364238457759647879230073093866264928821694922710296182440093803507198296229694435866085134906811312152118233182573399322493434218596073420030574579762564961949759823273057325753830191254707528968481783191885948154224056796095127783726583900665479237676356196202808916989670201349780524109145660088840609877804693004128926700331346647417798199888378022909176771856104596321208790460181046463741740169661980380781751028796007320486645948235915477145223428861527524140913479763998688477460383503026324053473714521025242634418997076080319503649193957120462339147533238407657738673576905499121271954695037885538343786002183856992289454376487329110831403423681810446767430139508408933918889172369885449878721225658387142508012980384762054186157272775646545144855055336030599440617586263843821896378049563511732913493397487154966012171750707091460829004533380695835284659960384405841524616524906482784824166628974142866018049356634761087216923296162001130324313447352159268468251294353785266435029493041778883815046052058218121191244409995349407357328271403787353821001551102585614011572011531737146948935530381958937668358737627601893518454222815121843708263201910326100907472297565631620841986589828013409978190956154697365862863324866335491416976247980418116736177468405519183025315146152347249991396083325780989636220276605263561905022318898080686174606658654812655178499712708438945953815430629462229257648585901351391087585536418713163294356117691865328121153324627644192388066195439907472707077070031331500270884778653440414801880662703777328261351103704065811763200705721893013188873775615931874501915785379634227413974715081980713357736603006802864002968110162172839589570827382954465236737237391312124372366721355164466019669549212077633096600011908851465272671429445354583411257758441837377172032998650327419522980001415555129755544885917156093034679837870042975569995318444881915502453253659631804256664942793841812273007045501834643811192908606632173219370418152766278594920020209012447905579662368465674421145046250702173947696157247915502012050095988224655837565183633512136922694031836524065190635693468776091543093761462795430532827627322273347109293200046995326749079162718688108120269197415319995700100923225958215270172652935146377991692820381134421032008697519922428530774335696230537176710918904159045845461281605467066007694464268743655417100130338560044752771641663992422004420020637404715655572287617155158465189025653970687942843201520259452003251810433043876291692198654585805196532593934954622522572230785042168059846765443111257777479876101519043830757479415175085479286785973932276404048864537978953195231143646969163069538083918375963232383443943128437411994798509959815844558410190528859514714970852424196947505841888951444526206723204234309961760514054357587374288792471037339792998038314246204501218086259075904909335936644426920771799159410642371481725598911141974734586241092583133841028073319234126380576335836657023688051555362116366392626149067004044261562770929390263370912383020664652893131761433463713552568735376196090045609472963817450864462993002320941112521460847154351514542097321258996517573215320396848538713786109983848079857103083583676314029127027945117864048826334717880191286271982223104830784667713302397087751041363895531235527362384099745009989160570922058476150882692703987358033288374941269650398737184455802976756804693795955483557045297616215846588154623824403185699724950308687492686533593185355915415279001415936491635053629478277385492833294998163691712071034220809401853009314716012497534218433399661664446768470227800472150473963450919569449797764345639391821946571660880993705479630743880210569762844383511203999496803205094496614963657977936727059398578744885741519923839194949274086221433355374125825373548279263395092768852716594584959996423797725307773744885863963683785878557246158510760134119894349354031864252411647952783358918638104632617518405239100588529538118808843921402115621694855584719450277811682493121954656180513324469470558215634885971760835568645577362081960498367726153924618983021863577256417176709328538652433146742805239243703683081592473561686337688024738449326538495032400747378648789276169300138308990547309005082493662197579996873304129407446959359447308233933125939076801239712552042017177168666961705352627379054887017112118220458002732641325067066033208590857370349953551363863706246297436866150830033848158242617481855126327757221733648188524076284089308937899744470449013607567641963445783518685622872653378668729218325682338494122539191594449979780440689144727085606592977024902915540142917062010885861351276264365986687993947948018467695045182734632977158750413830646882508246129556498407501638801264835329813058719157789506010993537452703987144810448696472670065388292025929608474086440963279722109780197740051082649721673434692078877105500745495659809490190045939767956447767790248817106236047457633803131287449990818621734115062028693886197615321476465982319311154226228287704626768075780406688036917117969748414083373139407339031121962349397591024351487913547196133879686120777224301927251250902971926054839630384927580857251498381112488633721152722173227764254573692523477506165194356699576324350126753142079363796860671839524024706173653639309458634545196738759238581117935304248052727241354841361326896903678410839945095097033596208534247107409886328392069332750503352305155520099053842859480043978471446252242387378069119389533707493335631085983427895604842905538459355471586659650369967972946520197158679188444502517466264326725886660453664534401423448296657796943198893725014073762374837191257016499339795924837915748269929839709796347057087637930494834102973343298930418021567529806292970075671082765586022916667007113255529813185568480608435008173121870340684453146319648678411580506467048384750101461334981905644757865935532134155680892074371161992577673286217731170064863913773255197466270440679628130286629059100021196839276830241464352250075061190823866426887814311195812996475761249704403187273096305735868130333277020288849895120349547714477398955245984099291367185528320777971107354789749466392389219312219181057389123755904390008986645716736606272709224751206864892727242505810148513130394537838574082733862774488651009352529181739028664217103063986982720620309319423295674685477985530239703264121490707222116232118560905053170152012491416716567663270022223625168291560232725858537717835618294345404812663652646964238150440955970401570035277578805643367871214024755174614111880462876225813445813672593777654149324196460169791251303661642969859008496021696150774296206965904440364276669383320973830867287870076233535144124755422203667018677828632678593175028818066743803715488942638995053568974014298425566157388620844689557567738820773232032765384967253858148746831869654709179578831033913122115689295209971308126662317676471997232479396114029038901329324901213401047538891377708874301560674234812541276076454070300907923568596620523353130793534080200430057005429341024527088708736273574458726080317719228029729002640221336305884349338910787118850647666161448211139972146203929676325926994125140937375564944177603647546180667088204801281604308957793740135338809658702831787566794453922546278473431490567078954603863337489999814043853020914153330577784393814257711741310110842046816650397899755814905727848427192775347783631472212698352974706230208990194994021337969069298271356611875366166667190601269629401235928881184005329580165866942781314953561244908811590171917680694366474779223861442328513213120501204513863088203176468673611507805674732374729978788614657724077396858292160332710675896588729270663251405845993875227323142378492681951619083031411373893986079935086216331463147598713272164925245263319332140693056543919579213783624647752802001439547595473777672882190713685365672793447072135422153005426038219296601516367321339576965400959002608116780360170014183886117835861756665476765358158326402278028015952118819475107102123540064750654815730236555688601014914623698588057219154780276233609066638697079288645754607571955441233612480812774065180599097333512481975803721934195424699897469727078386740582074506419100202437490653618865562461260917512500687633237997340963675906561683606206595794997626380940532071534019384823647463770258370637883023988956421229150231543300979283602671401260274513569954220686052066085936396997359046898416143413185076423204041730559399056460452338969390709846170808543618507154209957872592494172642585463518792576466464530556774927813086227197022822592853263951167112676007533441891815669836148606170313173426530958715909146244440065429015429391278159274432009521869592312294658179235052802317790299915247523280626760754397772471211252827352769660053190560461540892097607120261949576686725782286854118791716084722375882943381151672980737030830677229211742026469547961096502947901689223224169522260849327019308447428212849863394015180253817439377229454586414286331509285150581967142431523059328100401229711836773045266646918141265877917958837610053121505698056725236300190387542736762004347407752699415855739328199348072501151838621894365253526486787225958205139438283200817572189490839855083926687555246048026891600776703193299130553424693263118745174010561903539627171755914189091377236366939336508033733580352339172479208628058169282487505178848005834060236439287209750791258923028731518098263257352278083006093784832433567360030741170781327150075592003540358239233160402918442137465805873912149761025205232806784274596545408804637234720425191967476464520816903687847060302317582366225825193791902101377711666512513112274235643725384821474199496433171107117882461478392039548362721204179483188653093460913636370224971923483950209686613036257243291444335090878158592996373900157250391130519652615049854521469144048058181104033775496031755952896096260250459381508627711360197529063155607256429697531733840626725453925001348166117356549025180816815836576008583499869351122845940005873321100153525327063846346172963302822730792460569156009187490975433045170777089259335255476221756234134345095568581898768617879126713161014427147159480379187118789544061559989138614466626794103110149628844841027419374120787828703247762535580788914949734279049163963316063800378319424271740162044776708202406449196044643132596677650820774154338228492992244875734775434073849007650811838366536202677876795957007123431389143321640704928449720344430023252095991834894332004240915157909800056208855595817363497924314036833897212149266406598950924735131817610929409302796419891136135408836675306058097487659367984597141487761236163255456492217951590386150267601882332752456694102207939094707408119510706784413589406797119025089721033874327060500232683998641885066894544393024029258653974624194656814518528286130731820129040171042101225103322999084834786997037526428865534063850370773699179865180941065122750842267037853816293198823278372342554869163280367198171213751673201357292867451129700678909025394265183114738486760430166065800665517805311106339501018344294699292110978628499849153757433616618768315416495341135201167399353405392581218923218596004544207734865932581966744051485608288665927845204553586265870330148895327737751717538266589292682455186117075820203779609206925699952860342447672272799246533272071406710079947609253885389255480763037259562163630403404393295503206976874166193901192085685082742351015167020263614938960466512701868770318340209253202504405534914175966689785685396740432468189674978035908901869294246602217759204768187050719204567736661119864805170796349970324392074292075589201258880599757925547992768683851904791893905901234895038039324525029583636957764565741630835136813057191931541776292376354716876695221655265638153278723095565246834766987933300766531440042318129578686538673661807939633721575802222127964951581451647377306041118903091275298795540670460167833835351370781809657537969196378358778044982619872266143984718847719385677763043158580968876270871029858112189459315098698989898433800806149098603487657360899711980358268560997977407073470580096435782323789655090456757134977537553845357889762613255258308809672984645582062958353130230364211165102146130617802035040273666101778560455118429188850430376310292277631736828041800154110314522425274707343487992634776661727340113174647933167554701984472192248142993694412385375286483562931564115297721648677055461761323134987717627833703706862526025455453676271508250966295015530166184690283138056132065161852931446334956427650121747763194998199402667004802350368565217387633030160289027985187546856891969769214626879137701538877012845497617790752958567415779900642080349205887877807188004311892247310811761026512541607957701137800513204620858126269903747266262515493707346567982565551322894832001103884933279029692759799566227254196604111971524588678120604981209550208063019279053158168930055262930936256174945152501659553424693157695382624891845826472156595872019707598018664088598627432220080915000448365791152560058291244877089765557080274284195661151565553235075846614734403992606272890796360737825490768573109838480484550953255497731792527742562482944901493668303968216067002207059212366981649456221732013378832394241154607977266667019299327922583015062578318581792346798583796435756005808099437287531131664680421336991589426608132397694771090259683479995826668970569764180623976810391047527004723673561662554351714132105331158225171897082306089706925735276899097701815372144937971051514498940100083750409722487300354596454644149705679646888022045964948332269301047262008415448300082329616007539195153764801359346298805246343947937503641357071680140243835786789212973198973570069032091884124663458924283504171700416441510117651515627258011718715065642593805195423473515213070237323871988897778255020380033501485741496574571032762234987815087270262287868189270584475222923268162240357576830242501909675122589851072244577249283039084835733472491439694842239033221030087435036708398612227637523659303562932054151574314619060035513667362324675015484391849554524714850472450380307581092924444962964959319009282708044075715984579590523934285239289990023596839277033489327400808307223524775330152844093827905432880319419939867656676902995476561845201048335851637369387335750859143745492217708719159405791507462099425925371976356263038219612544697866380585815539713771184768500554589812807025154194022139566417695907599732549347541770879848612611291889676692613823339422229145666571637312331647894684785594829762485265321245084571075469177592347939362003995919460634365968620106620743860602344669658027442098324843707703256840486329044498925096688777424536173518805844307627269987203442227334431993524270923094048006258550955834138713021850984390564159818298370501401804652882691231986682634346087158470025673628592230945237668915168855218526986181678719469439785394910869205097833836260228650593113800535029300126025856126493073012653317943596496709754467331420537868125204901376013552141577663169688274140270893789525903645485321893046058312864959580536268657005480136846583795532159798203802533787442821263510739341899438020487668055730496002997200414808250738339929281253860124093543047397379013989630962497513731696340160663713995660001363288739602374084301072560017551360553405232267097275065929633539630379511362986090173906128654199517267738558208405242664223355247977595728006931721911764937994512998123394270844704143135116549954611966183821642320694175494999516468951911276327409141375370252764386078412941592208060311280055435243961456199974850988768654967856824250825419756037745448748239299083179270576334428181063462366488336603182097459755314543700110647694129400910512082504632106581199062654979096483794263516042308209978752072408103856950482906461303719015194573388322856442772930437841641961285395621188086657159788949873302537368572229215129858644357874069590871386525033770912011300809924174088588585479316196613151538458200858533754033025293979184401838447717529594080937510639163879485429524436298946100939201896700942626234352358002731371544101326774228093422303138515675325119494542313936007697522223111145453786709473781361288177396894006125914526176513055739763300050127865526169294086762014668976348576747273055100094243128418422008698668146049149258988885222839053414654517453038390300866823047293557441034449748147238122022976675691195294566631430836976911792590877027641321591649416169690710224710789666970654850877363988852939341498198139760944514896026447560236309048098596771414953488149167258203072609373597043893189946898964949786581921073059444500317220678509461115571876248275818368731541800339831489250357257175592873169933108980430147507651231593705305566811804705188921809979720368291140703030282386945799661604158205845062250909803712254343430135720488286304639176660856584767988654822469351155263405559484094598788144152719972065939670505998639391310325008138542099348987909234232320372421001983900900903960535307777640229467402280541523435733639923385681557247651091784492096984919424254594556137597187291451992215176562423847419075073532523981235946724522235660510449898058258184001551651301919227718555828669036361632992897233180552069013130515377866323317812500007970392748663094468734887916951427066426944732370718034296092309212758407289900296933661826653279471661307441109666982953732326575903743186474317810962645049614882389582523730567669467571702684779977147173605513098427751576935152824861849285353707407198675009436363425530579779217726881965533472519470203045935960375639170139705745024387867012025406829667089183026940881455632690383963499199549138894744741428139006468274865929883041274215619998263073733248595327754883406196038703274407980709497221788194773216489972118298788254112953916080794563784503005251152047067860239496877530445708222540356072483329609229368060175005886081056579025214876377678299957947628020804043100340961247344006089943832086856619383986175542236800002966136189092262838343487129405036081408259342572527194042208855431296502182322422787968300653757954453358491380654492534339710967443028443150131465230494140680308502671030488191278206411029839959340064792600494704758467561245449302256967304677736423032853529192083994863357831554137774647567192360414737558725761448838046828564969181655482978324775934603550479994979998601288732096323461488286652369979234181474798270943530783036616399435419088113290123122955686853993920132721708414078315757561996519384571976434491442343918386878251317632699376703838363943849643153956456972262221301504645950083037396725147625825571054174651993708433108068189219213319691487179064653441116303961010639791489084715745782923472274858928668897038938351757756622384101513185414013696174410610094364670247196531514603684837052060915945346214471904101940585481400558727816564889488272981480791181728699280552488181478303773073567111387029129181715792404830082477057934234700382399936814477010958417222759100350035335587187298935855124415549655618059114205744457517095442606295739623821769134927943838005188321967457987417063417410530914514146421914592582132804352749082980155309976259842241808847559950689346356089115302470679036522066553916479297525882912787043938808995764845244366948931918195600760715943825146689528635545482802355072964097713552646733225232403675611585589615876395769753404584197116597538646976048290277622339029313654623981199736364648346820290266717272828828412482787632020571395622352409011167867559259586731519065279786543588347388966481384373297089044683851050744443760998170405277823469329642931917640816791689403724693774865178671072243912409750570151891661201159795943648846119832019606143922054622941290323628742752753961753526295355072031943615995450818567197945864655935606696470829526323422292844635291967880929766872859854954269999654599436809914147067033422710926643214017717646885510923250470448331766674169772679750825318915595896920684958687740402749133347798068282402237402146303434063150398152626369577234775676462966469666096318652725108674891444855052425152237374726594541561156244063689469886147435691753542718244593704211201687991437123997110900251910164863754385164462688215825265335332509814778071277952074807884446773084672908185007541571425784997269994803267857381666185346789349880674831170549851076234032775018405832187914418105183894106197890440343712079539427826042828469783944011216764215015299991932891816434288811870482855472688288950796684379336432646916395118533747068908105378519947066535609989255478945575849704052411112574162595230234089149240452185394053494255889603766577408577210924737956858619578137067562587563867633943158708365233460014666302366743364787602774869684899011690466106438758170847741442759876863351607816507140265760878294456256923715582818977931452249305138380354059412807546888123920970971726825010008206510985264925727825556150748139267716436321042681706081128161017145630694462754217296849736586209037947086161030010300673831963933977012613222449579893369677481024103457220506035528201405882770080229117409811073860389045406553887311449072313227654688021530269438771247498617487290766394864085756533592419715423906406030393771052437557545588908378495199848842271706425909466991533418002634623778305425219111489461192527225468260935402493923955164398401285335206453680713034878620770640187072886607716755192026086121672544921153024409598342496497423566584988494947696413782492898925806811282943135290378327369362988156867163879175436363410742083126853298205795478110317647403683642199812223819085799194298051154974299445664417749550569934641204553362973164101030923813704964557662925795104516800667088712992098115928089538189366102073618283766231981600684319562177671833881274810728332214015205871184832344152658321416851814232949246698020259678170150200058329277900711644646744387109164089573262863072310447692989505916986218104990607956464421179970728384711757251026690553292726675653887863507973144519631257905667298261970660678235425653485715788639771413314334801523764025348928022225601073217970380120842872848054468147709250474751655390748621258597924200227166158106330225123242291653424364628450312043677391450362879161338964337654677645837268062109836094270266084330050764162318266034218728864226565911846787535589432078779944225931762549734420368150328066135850687189756378348305400504125065793138923303256382485719372168016673036864942452995493622180847429415869092536866189781453126123737780847026047936564419968309775265479404280768631788194964091754984344888011622801400154920949966460446576082065236600836976518365281887852145800238422550436449087768016916253960873821091070293150318609112694850122616367988706870023083331421907908737877815660704736528646712860313788214328262456419019805673898986821380812891178475267413989520001927524780967518154217751753123248327148603006392730640900343957252071235771907136686279723410007232018570338440431119986877543495330492771169983267948619244568381636479014984237229761325997292460635599955909370787032852286176535056317137769879115258965947701875054939854375091522009448225316940260758609740338785973034709601523757403797738244039128841511958126150897678997618701646867364373292057766402874094360945414390292981224187028676826522041809052421393810398364890998271934123514031518014336946397099382875619737624343143332405929529288861603790779314474698776482760175991091244875422608534033168470731831558849195865146157781913842854304283267738241081129409878087073612723413742123867239123083700760819618240007316035363057636871014492995868120279281393826256628949968214868387980333294655417619180951690333817950167394969324942645082783642676130502530809926342644867242058912221220247675781990918978439927672057911677403407675740850452401278410234747551230686433546049618491007418295158481845704851550801817772214271395458272434361485587427333570767857288110252138153204254901185897319678661022334486022990351037190902422994101990033875507782209747112805433954959212415992853778244622458277835636387681430785373962399099103393425597755310158852596663995587938982913478413202182873832199628506404311611228274076962605387132384749659221807533715049006386248493105322619766638489637141214255675746978545516268565781149126401166399881834541664063567219316082443948580973355583645430684315064312148343416158308261483664356290355106880350967097136150586463535319306456064707979619044581551345379833255164536762961415035688444334571413616094170570195098588873045565993911926312622689021019108109958026754137605519969459666635476911386166553358391194409060028866272218264002498600165501187150142039776866514339861583706542404706134302140740634562449566849732291468817551324935062609559482667558386203521773910108111890065501275163141712394120546409021693326400563164865854621048100911676827945004316388661738032347967602813164855626868473677183332451236850674930289750686341375548824468059922604366678908527187782281564972935902271880713075357653981841518032339448517785083277896133545251315844931875990961910958603739198830198143984108409470726988813356405194823343800671071361639818123577214804572652585954410095121647558896853877544599634359368084337363043419711989081907695846306426896057129469806750115639298289697703390392159370563182779361161934633819860585969168264849059999794800111192383715806914491688842667723947795982870570329576798340845746313275668523722937083192271480611782851748266447457271414841886130485502640173550698747673143518813643126908353637685084269511340780274006524679857450972692442246447554865568029550276043405790928790861887754340239173952398648275241028983048466736770897152859459089693027730171282410525681803213839234359434906609336442554733643852798713322051542222198543376023389335960551944403199272768568199150401498264149717513859781955146556976153282284096133248000842073174267521296650515444827223141317281822074299872015460833496124601056588426224639746041673437570022591580895710398260151477958217018845815735181677572964262954013648857915898969449276597552750991188119432847187688471993265391151258483212086820552154634125926586256376926988802466340319924800014589742184783949630448966753621386732654857848486513630793732182736860402342290605250633019953237725580708624263474465537358210760150989639417461768875490477969014311067225116643577105859339344477277316857055918800092232424213330276027802078297437091741166991518069968556149044293927606950970350678998304716817318913239740749048305732908906706672476898891078412658706221063768362788526645333118163202792855851069341191287142743173562876481642867154468059840088318532164352888315850857167378343091098592675280557315756381380698317882319846534060867680373946333399531072072406208605639933036541472342298129460472830573207714919777737114773602836337501053969212596069835886090140838628112388482017803797622707189523098463345659244716682497942738464400367317822703321835382291476026160597051819563300433196426693372631811542394055862013050132638923251586041407959219861966239241290992482552219170902504506597093925415819727831122247963133135737912402140191032607574060051206758725289053393469113038187865687991630659676906586019580083413288231777219758459362677873896848021787792595115344430013033288444532400704330497527333482219658395880206787198604381609872045018248038547274378980725395119367059466164652218869222186470284141701389762523592688627335573933621803550585708747082210251252926016058654634563187118858706587350256825254737163951456104982537737545772623613897563987261980714634790375692242572638662653829208818193170430848624713490067069465564174624988123214659990142326638969803102746553033791641042581923121374525503946908138601367789344367117802367286502778683219707308683490913875603509059450318789086575257781188739220291910238162590290032865294532737689069009926078920806650811765963286109204335688186649630795919505982284855462920329374792600489156228837718454263674620975369961870199163926789390058611597405514202173666250529323885141200470962912435446986013490606723932092713427433438997076094019387594519061083127813238707047303955160270415492713122772654006167610040925928990560211192424211947700550240875425224669389568649526880665444482683540071411171734025190940820753367545305899423992028521308872729201658283896595101855770411622825213409969046337246849846734074197340244143781903292523398143437358134982968573739223318627949134378437417039613610585375178403352682623563686363492966483787658506486851748521858315734813104451922496415236586336603903610121679460229284358568575726119295037739524961896095132460488040354861345277757832708915462023829455787276386283639781681952864961085851334127644547142209789087782536136478731528206706521544520970227277020924661933911805874662607276255038333025205647266443104397684402823332493070456740269946331410221410810759400865481612318870455346056291947187174978163271540623745001114643765260065660980110681995239559211054805573546626090432147290635348762816744671726485996312063265414517235374362864875653953488753462253629678000115603617045334871990881782186809427761743813909973113462106518961853274679893629161376518002844853278399692293509109581640313258823531532697976966769619828787599471460589004457307110685267566548968739890072935519429603052326439041256421983937279731260930274935519194930420141333624291585044791637271422494575689466838202873945931331137780261310551171742461750155210034958203688379444387157354810900380827860653621195453739297823328454534572953190436662635380740694018240484029369945724526989140697916186428361950526213667035944765042687933328690256423734359880465857769293583633643979936196452252043522401815917411710476387560288886863806642985384805199201995189716016414455592438105714932025082924016415986320803090626745216984954649312099936525504418333090651985151015896163178301737126360528416447284833644613812103080451945456717674271124914458522405810883145955489443824985299181760191815265267785202909055886857869123240839376689385386417063707355665372876035556439757648380485709046799480967261712042337830518675782381144199501732030430039667708120528901809408164884114614058376150614878023286937574511342529376895963077667142265502696410019843688471697713007244766888304480269583554369988948273243080764866372141324975649923120814587200440983534862112546518820267428839327898306004995144331343130069547705484608789171422118711378989110806015246815596944581230568552173924960712918249236705646005042599556654496706679229647745754063898513023943883741864517990750910426018630458502790917048282495863027231538314236302640902960653730640269283250241759984017021990013248227306640598738518159811540095890083462352932937482888559901787576109005992520963436078873064384665197864460465922981080694734010214489264398854901454137535373200554915179133629981385723136789913223272991783438375408352969288386421180682688010410504931150016819853183519383844425280301823481753704945680691853286935532029299129505375194177137036722525723317803472270741001358568206805733299439591179469304275135713422211387719647840222997864168834427472457849401889688253421778570974127373774122258331710619293597027026279168278398664574005571718083671729245765765533107868439092735978608203040606721296001513781182724775507143953259173736723775799078156540240367915054135877340669665583061810417013479252317743872002158658672661078156324632464636116513553472006543168083497073223794376844286042584952527285673076013523356562397371197638972232261877293227125774379906312622689329547324148581153537976567512790439509448550065224753718174803857472968112544198508980602639449964498796466287501019527703744894296682347141590510747104802389901892145190569138831657865165187968539893473705710744428000509253370780083666220178754856305729458256964575015713731909347912243325605811984512520266147214167660609923544704596845906605260358983774989535433401867670816560490512467880735751328255219708601202685886907545821741413577306688714635269570241034940223466584022335764320597858385999144611629407406795115223337055842333237633705466043981046621514516389163934092978687525860091943115188669892537058210008373265167708266097070769486806319534010920565631943847512982237412200219304090051374498797311037149207391333049482488891173699593275156002294133292457026472062813679058677277800390880529887913755342444620705803072143373759160504812127592004142820293029888092347175189048127244117322395420421349753188812813512749638496222845594565505988810474992489498750996266545340305235924996968322749342409463870243491692495339754186135899760497765815436798513635443379707366179019033577264654406316467902512832995248814608771974941535930847285160581646288171376187392989155095790938720682143784962507064426017036604265516463159734265803605554111079743782259662257253365279386107019160746154384321613337852441680502260330117248005731287766782899677832222178307825549976798813320451367544169145048579935090707006608256110579572402037848513403742277236349973565662619262050292967276436241680709051369867344176883853740559903737757802206354055216514607746172919021162394044067438510721997695867558125838261730480720988723797443230139679673236780656006130282627612580178276331147837308170064243042072576772888630335339968585831699194449573177828953153850967159892429686237869854684006707437919344002918441117606637333726028384275720929323651887950576610521604317116376270223555541952938969396771572750609694870868566430323009377665980042818073514324131232816525424749881860862464110206689663690351376784713538778602780306534773029898696964033360574128430421359240127184495285774227553019943968329541273243357470099042804192194579361158508820675763147845898553080902841277432734025939792657360484763682833379767388864319067383995954274629057922625960283358917633919812492319518705330459654172429047065507897514724478122544443008791181486706598564186823263923279315732117739078731413769363233166049961830616019213519690938590708793055455613992511890067335291922057072582216079081173108921452505653389569604133887992827165622732379037260624736025857375483909347213447343721788716131932976949504419826248096879775306110374683839164821686298812169460140422458702175236900505281308636615698885864520994478642204430439883168976984475990892016496686991909492044748212838475143986440944854333248223375162221950444514915330093502132504450249221873440659490539191391106969347441785415364495625379891122902224355709807755115341959655413806357854013950485801614908374143775877770341421872801095244848870377351715977780718792478282066278216727224715709775812976804668852159505116165737343160633174893013537660133509657227731912967780710403268318232166739405888276555650196455168559117754017446441748505132627180132584228519467995798376211951831362846051269063361543193527186350157427474801468870217911562101189602059739267559783376403373901518431036560566401596477206393380957161545352627637551042861790690220933793991003694945811813620405592310142988791775370220183172079846680639590198346458623649150929740589069584123640963724323940709537712841657042467740000726704415425319367768385850585004834624124178001833958243165682727345437956617298447597448890784118527949042444995896327938699075289920944390748331183939461483435418868899650710178197769585196348336054334120149502977376631496434273431951809477172928308962402581760605826080989647486418461849528515024403097812803545957492953399388354894422742857263882553383555168265841543742004958629246036453858268173625933659011393671919973469034990278562929642065517732255880052455062611721361737461627191959556309033513087733212954778479523558401311723087795476543220997254390051136774116384183608600115433562875320321623542801179896793956931607760355258289211489239399666569056832782675694013680631500139349592642854848382362549935479130398785761615704798260848871910350123062298143323931075617546598722425478855181111313512442104995237930424709145586464546994918182888824017788687820120344926522731594582102819799005353051497982225992053382171780080511925935271528767096297780184789899561314167409167071710156891589096998980138321277800283853714364950908469425526890198158208772414156674274053585882682356479977810044778045625480278142623416180785408783327683913843419443218705366727789767373655634114568654927119939703561321462358776720576148695398167954648875672096094984633880476566400519151734452763009704553846648201034175416876119266797419821978775658786927490561914761768159667957321435735560851530194516151948289286614545758621136203023536826133106367206191661001416503472161804547035757645569837646670488480359660844514409396715092626996803314295819369874068805248938418740209675644397691243962196085908809791306531186504688882121835659160092032077170487923915162781929329581033670110850638346393142545514774768217853062853141743251605798931029194097223001611449910490035082739653615098690349546130982375629207182582447754064000553917186229301317989770106529180596091350874795072933617249478302438311209822423309001494316021570884323069520463965935776571357377935369115000483123399844983500090979599839742686485770687985831157474890355504870286804957470807148275438177231691322308658641417432928951291203556911081289349090954118652413165820187072551373459215729111698463172077608825806304004875836145875241842253309155288849251410114766172247154717620694071375841018666873047813532810272244806889754237158043549447958090160304097214274985585933382733537581691022746705872776818202835843427023238076108561027706618420588553341697617894517011835200117873495110899071153714169775263771258136858666041186040339051551129795064651387940084788700665475773687539738153116217421279014400041805796270824163970568740817242204787288891764986308559821445971865562292467280169377361904453481032866832942341763746001549534133270456720185875467061515382834846067736944610042328801025247229273196044499981109189470219884800251683453879807016359641609097069477192713425542102515063542745932296804388732788808468305628965745611697710792948403509520689077528640505768483161480651236691750788591020434325474483923426820753415486041077818290026484269169249914591621525739602557539631281487945396254539880460612841886464465919193801308402833934135419124845397661872838223477185968965535184415769136684278565508346561689863930346335536805265831775385165851078311576867026417452617083174477773888400451192625856759684447779833500812166911793825567378490654393238191081483596611628233562243282617988984224648683064054992089680850690754511344618731365559500964184827260084624272409545912740813073655783036057130504762673109852992304861616073849895140701683544503992037975021715630513630878437126110072055506249506290755850588164434582523382746512597633293046319396579338442384023787822659191788351134184163750741858629257612330111368259208329843639709346981490185976423204243369707575488618266430672557296564057066453494959991827915498801219760466146975716211631209939181764176315143563695321267698901450628979813150899851269276368385051266337273075402669614602614675712785465679752164967843983945828769507585252857871634933531932880146488088906723958277322403441575650002701600757126178503376347658102624220571262314823620418750025459951718208923695263127694477433463626316357043279455521408483095020596893392966673637629208038061855877025675090805628170877330431847928496611167873080549743341785029453721342819479491510222605858605384366541094688855928120350457355576459055783857985452383891103339037362543604198692576694833680701105584620071542883363893185524601030648056724072517374592241844692630376502091561969577352626102169628642559833063365279029143106250841312023822542943307706907489419711136518432161883498531336538085990272203016947357541633221315789555977547329988830245527743461997063794741253623177800521082872664732196163367872653414524214192691234997807462345362490747652786886602359251679607103155949736846482672343030016570466668816025460619900708186578596390232919737411659862157761013812677109812325039365503871553784554152224218296032687651240452175072650174997503281000583663812959672278507630639249486859650345404531417134763459534415349404273951264947882206167629419796683874955418616673623161636940441474633717020388841942290569079161250984989655142335743201507548747611209231069306980772483762930473550105020981966114331793200876569363038543657687872109011425806226268408234793060238233196968101020341681795087827747265396130147601773864329850795540251999836232601867095723140827651521094960947415151905718307891327018444156139390187699695692474910278824271813262950318504505543318638875270202823715918196401336218121567245723972515275937411495690688627932161389601335168371935589778541665591009357677265344318409603568205770983772821841912168162489830353706157808204603503357279872353630806541378132169457948294184175298433601148943362316764441660681653680545687553185199961280941742680205424427734526815032339006452158813248947550671811723477822155282664681954326398658070772045763929360201344350021471799137648822632151827036195129065403378988265786503681382059789919713459090127913142057144387358367336969194324725759013120545478217418709128518377682683013437432249177379195148996862217989730648439677425881107392969865518684122510268009148844090361134108293223188337072614994588246507388932287473750553488202626522837973563745312194614088031899527851037114136306269891070481748668531190170709406167713245780885048256720471174048684531788426557710232301054444615627669359063328379198115156622923624424760499141597741931828475000492446927766189053353404489963711187291485828786537662075455218721090913700789181990172287217443344267770075656901261444561942312847625256067967487118121664459627508727573986310496378598777331579319628391290001485549525785878013875505873921660565093858106301277242184410207930982637591650897072215129383707746765324478368975657832467194593496454353163169511269636636906122320382393088392626352076851817338455066901074750485157362370378359344290227360742625121765778289510485048990972361408035663796943821337623947716825622277488871437761666046927254817714676726561133310885038622632741451997346199667664429724161637066901170728318550000325389710206928966780863253375768048205860276432502261111947241508976503450413271489776333161429873247528337427861122684693806549781474439584107039463047191661297610699528617813951569058002101554377585126246808618179341655844289723633221253293904668091212012012391690839114542052097255016805273558415505452011536411683145955237173719015402538502567809566943543831229066987385251713313206436093267293694318242030680307772157559284600733055221134049951803371226001220102402547525878538235600319648124127462052671190763422100568255196482342682199735918944527053410508325784552506168194427633616161677819569070835274804938770866746125134348688588547214609886847114644029662850799430396782705181914406481941087723609509548800144263286931122466813598239070225454593532903723735843164013932790401352922310642714965772824428868986271548851645470872691525097779343926885043850485471199983069037994048054501553775242227619273775051235080589844235837128984427158527507808610448572451629929169968628302993977782576137989160868872662327560068744889172725066758314241022473987795411883648845512357875260621099140476234982796610308202984081192633321254273291056668760417910941192967162459895252272785811106912879073559908995091714992408216719906364115288348474691304036016857396873447725293347904671756945761444007971750396395753352408879413304937296012351243470849240679877118168858062629274669845124178671788020934075128462474924557333511432020750076971573057003817498517110126898271229454141311503059134768499433803429529464660789490830619926987385843281821081451813976195273312958985517713519830159401887631855205066753610290138399662991859938927301126958410968173368287507172042231638992166341501574258852288320802737593859470901095479983394692898056496595253986749831588007673340178769200014321108417541190786869937048586165294834571465571745316633114378146750116986010992040012820678083478488486521385972322038575029496862164995456314940766865705566103197217395070277533289702631165843504505319842266674929886666393628019797899698865087773176934149165281856506926654080338576126606904881921164879937918248778989940200320056305536197395404239618051843824504059407687268154047286890858192993686357719128660195374604947233338926070523658438880135669666720144148015562633179183817000778569781067891831645379968042875084430839478215821659195819743310920574654362252142519247541556652419266070970812475903853202233923076106084418817199888962909995506880651149001536060876382001604588183852858847327646160278450589273712284633181591778522140680507893012051774368401688625432484399309438760795781107381351913198492907413014882037294294156841738252145525057379645723278782168783257378158420235523554498777543806252936640255475675248344874802652437798489996686631183601488795801614015460536477026452350067607174906895667272988339565728770547435485230999664557417341013800068053293972545780757101238796963487669514805192261248274877751917971206834294874451348093624385453057315150372992247451935837866259412612348412916997637569175636227105848504097073479436899333428842697950121322773134650236080426578241194633083866369330437859611315598528350196492362564200754499131494005354800611173769437255889466820933496774449959296621102289847912242724295411340303295485609491842862970683456771250575182601258730447995657255577270565496901182191932349030772892463402643682407594080485716413994842431771216507595188298393802784527644892539044381645921554513426897148758617707982609167666698981276370814845628454490897631137446195330284432349221806499008780676375438556619454186458503235633662751996936380115063368105379625881920802786362149796688697392551203662686806988527455589778903011768297681788884362239186367770249635953837732641697372860176893906258251283908826325103053401956095402854533225558473346575038401928734531984265235686510478255578542088440493593456599157539041313566711942219689683493021503055681315476834612463889251210805257742461906752084033669584909970330354165395838936588062446025993749861425396489688124141272000969769885905458133232432495337472725129271805833411032613122484922315121662791000924266176350452488040423768916478162184215371779966425451706746499931473858522562530006106697835688591468983250866530492232463194839553153931465836491347160690052685905178534386053035374770831389696169995592393856587479398326105787318008136999206263706554835882526201981609316313313585939636128023811665556562859900851529335733431688396917801425491512289191072991841261749388756632800931290693309776715899853942727672521692934253842830605682239525347681684144438541289600390679504483940127129929328313597340819805094527740798150147084746502836533959875428066368708008786313766553019551585223375905846471710329326244737031018286174920437524228102531224160377429456186185531382846734134319701385191844330508803777680655572301946558270896027845311371300388701695016505150273682026466662367574264586486991641947573168905221442600861106419358705890720441750084395483497192903840022832574376395604305050703327470263969974885455177780542869127468667158691733290029530334051741506585467730303875415295921913554094462530454175708469494645067935933017701899402519779553335605365768385727841705156347450588916459025070926617167269864067890432626664334259383996610019758420012463591304095909662033738977665237305483328394959728897213687665820695415473143827830021576973131726029516741028683603229757491696617356730300600793940769131274714507337058433185555050545809629303221704644530908084114997777068464936022638819324135174732650995311825225556505476847447886895741270839606116518424231284297897733797783315074488377580344262545175891767070949307685526697723865596656906137781676061863804320289295751987078180942089205558956029159971827515829770577906094346456897170511432349797892735414137277276068973796113423111764079612342124125381529520641376854987781292493827852444505430903236882165970122384212303934280761454651837241224005136026780881514501771269378710974629033247796076632428966683566491204714065666209970386005169772755213447294741810494745343661091939527243437387790769974001852927800993035392249921151440499030591537710134066005690948534409025098891816680460953404053621883842615156897484599798081750587725860293999752390907678989836882518387710275147241211670734008020913820111344586488069574377446878411388774093597474944246644090178702296562598075295245849849857368644157328250662102884655126979636298652745234305057230507706508203607791167948980925204556285872705929191282862632027732098217920771620087351099499887730396599098576379276370126227238308557725015827275024363477471744593132630975115002511999908182409101581432910059053076542756189979702051854427568737416495995125388598945499457468452891636071296446193718824431302282415178515050665711672662309983811125031472608888105842697219118570642249478335594759812014862425567513975049890687158246282300133717959625815111875378721191742923559060792635714970435080319871387535035585012568153294244278483679565079945276098709720168217775818976924612968727170749870822244268238970443057557207416518382303265348206759076219876082227514069841085227233445998252712898297737206973326934971684027547054688148916158075664384821245231406150699095982031311505726923586707320310563812828265514147728738094833642712571347887855570047241291450596597348434267886930092208706356805980956179180423967567347137705309723600617297297984548540773999700576353791574133118783668606675553025278990226452306956096453111708188536557706304841650911165471247550589944251635930222629709790347659898850997058219462736297776564702725184358276874417927224933543090849108842921149784697203966476052077231468695466163452506741993202909946233310824671248017917477413930121108722187452527443451088287425562729174501335203613861163632847721093850870856205347972098197390931506895189466231540188020557927107910445805439182277754765968571504062157950401896417267525341630474136354403088570325919315119536952589172448490119085856985411973190057071919781479614701241662022927949982901380467619647251688361028259134756093899444156499416121860787616229048450036718252290321480746146524580301870072880936671359635726123696021630590561042570558322813663084398620906572220114816709868786688429090020667399609722101950361199215108459100273999298488368095921407070877492114387896527822818697330881538053366004736881971658028964324475686035093378834547486428252802501835141900310213143615405326921034014226903199602283745951031643003175150121300174226063281824449731688110333382847154981050611689984422224164870691003608526749583236823438892267814183547172776027292683012389025988985186387237588520070115922373143445754390589311600875894268843982682058168363179947645816751276695355952869714407013200119701085064964263429224910378708720518430380358051420433647165962299072616005773511820612459792933295676475551133281969163984328712862660364025932837208895268436469949095790073676783585121384145809835313259092663694477505141845764300206767484483094196799469180209580755031470612901912841134380081423075423296944988201604539598717347481754053000097087304012451972384253432322944799242816266613895280984028417515118066766651466455667365746310820334567966356954760509595337647333238826999027831062554116844305771621634972922437025329965908965554968848992548000852812202826527083954113666667514428173253908077086782430012061737261056102271853524086423558075463171109177450027207591239356775852503249236236609312932328528905946300508270695264858944291162692543043152657620476590604665049199956314010519731791520483994323297831353626851320328411098983477260105711108246615908183309061202931524534171206252953106383942528226679852176813844577122063655704414928579411781412215433479350958994814168439686522340189292483620454559415737740583033080272822911522920099758283794927061999635974232624872470412084046598032076942890652650903321996034192236461956640123799647713648412816279685696267443687983387793654379419016677957018391589631238991783132919357235159276480671771474298924990924660216903484411706595485658247829988831515063843279444814372897553769454959886231502348475605650050188530399732797105542720379402284090297605749645909950770807478774521506094144957915128989567398167746638232139253668720163676464894265924279371196027975601718118338873906953236041362009351778971872626726373384363340882361578110574153110424173175181943362140213262061749371523455983091296459808962170278156144195942977776575434283817634722831295977634092727524964887274081355421912812213047943493021981778066344285085767691148797804126914831455298764936902288028462516078720825806101197337380419030751274589958003922799421707423423814303856743323740302474435270419903843653066964849413108908070689278182472006746308902306484109648248702610154842625657491150475310855670275744572876267025138682467219405601921239833412102633370250264357650213495502245143983404391568889467911385576919983016375010281552068191985414985284347927316708055606997145902611439705221470619965152568842153505463315150893758518502782355262316926068493351888574481026990863228978489359695949648397665913083635299391273496659750802167646277985091831513556400736092146105966722458428643027361998521064344378715140570811760886420637735704143073979108450140000744484332109263676181147684295109220626096024760700053638859289075758907775319746511797092049764470128971732687374431363978799371642045552613381080290948255075108975230409685411625628423642217996987012583790834364939682887322042951614612600855793863475904363049101245118295298113670508124311431116933211768971029100563311114424668629259909450198267604959808293079932885393986471221185875112846121076869059752950178450784406335771280829556293246440329209946421077902692832518518218714547254531149704149723527759897239795801150293916019500849497326160818592901059437301796413857379044162443256211707886114187291039010519160840944227509321594687866328802135459408225911574235858093241620564459176317115848868199188239761651125129082882336589616268050496962869345329596012977740709727323638900842043454693148169177947416959496532954503678549445779346257788895627507520172755628305046327698961237254712160083338837619869438010642947702472879832614075605339574296858120939213071661658338779842909489915122471485107578186372253882852664553037291524019778676669628009013050586885301486194689560021096156536788112801481239984091016169936164366661540006534487366866300184433402998776021568043642996118301752124040482931199052697549442537287029033407030848351387920204113633243602189466105072783115202105400938865382283441584113208344810792624374744020817219434540117149024439116443654976624466276785061253887559046221600538704051675808960590043452969430087508945436960582017439651005880815767824642901548522379311817244553753691549353883954416212970594740942399645528320516521287345961060400925323836813207602860703804428995990644246209564278657553682515705181155600329845100289179934065493489688268107023818276392962670085583967531280180608095224314409678761984744675614938889425076578421447292259616862508197369452617492530355251454840464963407683676087781406984482415843892241331585556198572928470509220406353542185093849429701908300037872199841328563039412535485069718830168837005433026903277394098574667434395982949656339863376230819005577160943339677132405134369915138760761324658802367656139194009365104372438361937427712915215921787234552440174048660903238472647866692126644971927852892759241578307104648066146630360943677874355600699034388959034580161192510378485162339621815102828463918969737114672823461366299269271648203907399958505080531330656074201681843329556355301201191932476489593194870699489874978722974831228794013439017036542962701301429659857137529589487028538539904316885841962790327806019736851470195559456232574950198393513387470631101426494567941404835107064239868116658840812779656550014838304995360899451842717893466701548688039184384196225137345635988134598076545922934877277087036226016274119780641616539924726914127907434682423990450853633924862149650099407242727337900620425236579084423893659762244726649610168796284146606696159124104969570863359686245543968175199027541623405834650674000301410921539480943597162765708620989401866536237955351958328051353022427993467887357024339547141220286205645427167670374020818558242579490066362305121928679251273053306487145570190146856505270893190240149819590436595652559104981573245030599103897630778235583306046641113539919359506249527156742436521609599288468464805088445702075784475997159604150815215181272617163190674021210106985649358214666966747660045461684245620235964674540596550854845323655713998306286602271579079538614604674742212042489675720149248690511484516327319875336856817013359073828663980441059513518781657698000775739653803620126822940355200070518800808242218727839435373652279396900470377062678077574694832399582168135708961119513398880978956468196438349251273553708359164639980427561922177717561405328240132989539284199496579329373775916323721123849257873797793807043923341507876032573275376011391827399076439565526835494233450155267538312605664658293546514311094984205985021886745206809319125012515468246348282630834093616858493958184987468847812730265431795594432981030196827191214508911881189833704896044334275841763529244235238996743065887821846445715727597689817487950461411081117835090793334591762955021875466320220606409100113935077518432778708995104222991372215875136509692247262048907871626062060533806557820731147353891879715974012471831760945496694636329930545464382903227254736216532451994131727720532060574327708351404554440624663690580640701883153114981019371097681452107226750816362348584512680014574403452900379252780925517126779918215958749901031097908716228731591637335513590575241424269304969429612275294823766933441051045132643033996145634551025296405328842621219144975526136210878495287829374837983711019432665257467770400740004011445046464136841810252045523580648359593192386310019046760168869214093800714675715631765676996397018129577568897981898275341375788043010891320293039332794593301338981975433782351667812588027596737466853107358129465575721367413950248011679728109515940108550529041575539958587073502235201733172839309073462961807268297705135971626710513958592929464180600059973236330521935740230744075063720247603315565118106129397574511948706431744792872792245840777965766430228057271024393582560122746761605824237783191909136745580992200424286316837012201580683091028879955086748763654055704918676887879344319271748119414924975147780268146806190785668643327186791200507544051038800619667576401337568100680430485941516082022061311313930916176329930854958378848290046891884826345497684460083349933217116154125434091168070034273513650059574761277306684359737156221348574458839086748927970068852010340693425649843127352535536134379620835587180938659311535642860383723426417295918071992875916862177207388982741033775621511422930157108624398525063433579523097206110218032305318483248597518256610109876514152188839910577920667051929773521610721714050852433692918235892383842521150523054351425937400449304436421978726216340017116271908799931367372797278074305653172094853286166428558013686934165360676145788824450011547869913555887506675934083964151901085911053269667921758729392551528608361650962853033733795894666058846997713959702912298199681229180181796462788604867568175259793398334427673427643817434038147161210814631678422977225568526232624813762749076165368576330462736176845319343649781995531858413150273634144244513039457659363638642776682871131204208875795976509684350879687915826407408990470617755264979156370193217044069900838224355740311499153189972789889984043797708163424510931452181774818786264155873130999944793136717658661709606012253446561380650285485934957340404083276001292091686920036294160119888987140514995658476551963778925875971616987208958442229122371500891105013082471061214480671048953971854528141802615110685682209367761528887014085501992845008024299315053966353780726398412736149225739848309677967697738552514734080925426527971982951725336393779417072115831268324275963976545946989600399114477703753839983543862592806687684653846017080677854744458691848791551136752915515365655423707779541022687869045976432666303018207015797297574740825647901583750117261560101063098568235737917173437088244921514323374391758602471379583652893687375813103898935690282724694661010859046553471461142078400399744589467179163544616483187694842179873845501264668654823974332153204186050213393796140521493347914013864091341210593959796094162813191398598024590870836175524954945583174916260806622921884224667313139073586028391722145190212733798504681027349890617388089246693339617387234350928567036730932810732423741433472762438916191484841975261568293205067748100915904937402261292711931261647202451272909977087978172494543745683517158770588744412588907971908436186438862471319238062168565109070116296280835576870233163305680664400490368144237832574161597944458885248323795305222389431775087326419268160112247043317555674720338056087205469938783465130294085568002886893308629042870906429681065143350594056744798339775229104682434993788434985437608929052024723912408196431368870438255173792064815782933457184557575073563456711652558581767036103670843897752969140143211539699359711273892494186678129682920340410689965483012016221990262821306864573696887769654666319264196057533958431315166651316323236786762128679969237977348725215811141198190855184787401836200341141476577138776120632178268585126886213978168016594043125815076742526530194960358366320732294161690937323720538137842934560319477914659320376334115579861997131084309547676948514399640523738350982363930399676758655473137749011146627625012847044749567569664975889252640125193328952055388930578870710998600241995555145575742747793514539286895900328198951516154767291359576794737352557679243499069387836843921225988221036342598788155580203881178048199910016932111662845124266330451784459307595877338366869353621319734654868842259217088073654362244501269527167384071022710011098752242756605806741247655771325273456735871573499985123811768346441042140409312054762710630702859774445438587261187630863159296505965277909112685303172617197275336172675258810325024777146087272733074894554408535559974040160094262417092051874863682464460418515927948219685649623905679871749927565419232825772742693103643603205320919382838078103478025375970735519485405865582462530445143776714905696018556108791773408478873821326312456357108794060654255115158300848062049256965149460828511617314397259600831580013719628407071703650424400179515244383593538096077938338641562480506858516462256515351315095712464188665384853546189931346383994467347493988651082475498133854916963942913332287683536443688390692521361513597482547762355544127985007136505263735371016461548825721626456756594606747920356997542389659617154044074670049016784778472122744878112418151715674298876428492911426167124899267693468334836875575340391781107940912479678752283358943641518379910225637639450272754160812312376049177792770352696702404183925005754117487898368700236959923961693081745500123765112379364748631975079418396147713750192446699310606059363504895342109479081117067755466728863484869215340467989177658792050550454547157588123304845271659193813066962446624368317816210791905703260959649432259183737341355311235190035054691525529629335484086714105255736200778509257886710319535379510076945560059098747468224545596591859657063067170012881932485830695137367429952450968042737253688245450621787760895952070028969912710133191064555017067706994729008523545093702573742928388342754029777632750684154119522420979097429597191855769706311741023523503768258146010790954284738777414637007291633042253824753365069376812327970681109079409933793383960831832458114557412509405395508461962458073291677633310905024723379204082074932486689972711627255493040029223726656038593183284919313840901965535878189898800399261443883384814141380280181525038967632114636476633196861487746324749531425118461763521461882626832985237012773627885690628604114567612154026062501001525240906869638457481946958693340469972433926290036282537277112364709646304791605067064172731928736676639651430487805596884660416662448424963185440979505919822118034332432757817103666948977568311403193362864701241565381722585293529188879720430223679687132448804124514847874113369536811299217619556206606517616513223406144996963561956427540381914765284070198022869607616857317489517035677833127243693631686937555762375731329366043811460709193530302686543970989806933654656012131272365828670347944787912982974694565301299917220123434288018364198610580909604091668331049277582115811724386215752865799401283996337643162082785769593229353368317514968634808848014418151261212575600958987834453448337605984243422500905163458424985072172733325041545975658810810517440922948376280660533105367743080270200566872085815780691868924655071028090247313476125248779810988517930198344866951899100492760918328525741912989089548550058013371177012745154463528895182855452585253658892783653500427288565569389380016601576728653016247618390193645662866940512226294756521878282820994971132913210670083155791436529342109300854785425372921390533192973331308797107710515975942514297358663194261190275018055747241673000100210612732145624810559011811622164779856141204069133207190072101028951117734806943343953040103357345877353570111077649749791112388519527689726594901728214839436842052409807647797000832037898418023996114877746811611680464892853247611304305945514645817148873558591801857010213584203479089832930171915030044810678737825751305857586547703152266763425057881348851132648195226377319076218918859385386822773718843602556831341842970761496152146220372524451471850696132516000432160377410980146835435031485132383420500458860804520100983533382821705089193112492389156153515562998101521465449407272880027016745265108216400924678580256644465775150687899748437964951211216678123205277995953336491455460229778844772372596213858699578092805109035090602093565595771291092342892114982446073629810417479946836374722022516478754008939012173581174270015397265565091500159329084754412375742777693029501496423787460324905151443839361073050385649757806084226789213756748653718799240432606369467005399470069797505388586379341595059220350115256852493365978470829522164027642892359665556167349551692007296229649555467915122605198498117951113568107540958477964894766377003120060092120614603554636125690885994916780898853717757826278077634308833699755534138974747088002062583825046918541287493793871054554621731898460055515092310111663369876279882338909624409930308545796457272707237160755528794893009734721433320748948910349694381133210143223211113862433743265551110643976167696088697218312030115556677584123242463887923943848811340178109362061938306607356908114993328321452261947411248509950641021379204644900548393052067623674739892192907750123885504551478464316211576873296506724249399714131193890676005554739196605490985274748005168441025482766515283263486291997380426889230242273304461627214622419871523196338325323982205942259543748898702868042608484205098074001370123343272371816574640721578250704818953749087917884527657458725977919417839518711772293306141508643008831507655215905595151242934699596836468634708814160940955827969923624482857476309419317744494866841674890088051155814065577989294028433771632606543256018141169690432798610451812861228739286091238487917981213661683085338050917441972555466218627462816420996993981309162729855804155771875006316132600453567980586621854687073603534302607024201745305489862757974785850228363595546110176601402831533538476015683931093415035860098983823893553422166393311440769089936057483976975697113200877834241835219806744739952891505700422347033265860373777565081996969695333173902232095421854419630278751441369187939227070482878480174376075879180462496417247480802850611506370403557303928525060175720643793872644181963804425824096479189794712247441246931310888172531119389063649174585216569791440469413633029264887264723958297554819992122746144244413389131146768852519764146286669910872254549600314679065780029958828443645584646089195652899898864555429442030193473034439115812935464993345858805631535021291636144787322590060200744206147575596975016049835431413807425773041916591222850208239874428344976505928217742983419869921559643054576848550375096513529867696677212925610417288840368860068262266978324239704098009847804014015385908663796035621110038967488152081525931078451064519988206186281239685490865972615819233889751439459889803285682179720256784715294948986774984674740890311135663651630684182628146076415228059325636325256321866932809207703711511074244712881400023897104340331545552253799752422464666286330699308708037154103368954388631140948268207373843047976130455667678645782489951291382562243362147995303717019096177698435923586927153471681752429235447366967331792956146368115256960980241389943680519333875234236434233646874618558960103044831987804251073696541535948377511816560484404166834242284209657079580487526107633410478767358598560792368910106872464830286293233767274466634264314089735642887971243852055487237034895887560024405694578350822251047084291200523738115037689953668500606650198587720456017308046920099272155903471622469387772825599619376875809849340160997479612347572392608131655603872724836909288625312407844319655187569630105662735958443047322619625746866973434219509351167100886639497877395392884673252045742884023539706390805963709718376364025124299974628982327373666807388922515819826450716559366075491645367435762784545505046685032634776784539717211618998280221543220936682831681340340282354899120817398281226837353575910098381526825049451432915640659851690162364029733265354634083711105442011497140090596020471037178610727388141010129736836767454671529034207702418276020951650495510228121193309620029440737184151988005213163985332949725951428165539993415638340597419600892967187800085265903455281817178870028652471355235831961844999720064831346715634539943247606767877927841455080387859413432132077087259490196683705185425317538733919893971476710015071259632367353697689756041838552498035723759499993997644672903110103456172950389523288494818036679971294205816233695652760826380358266915015456406263602291227684091039475088628096577653897888564889590279177127600634854851887879604010592231252985591500195748000853945066100629637926302448333572783727486507216727104252950603745597002908039501769353162894244533455676148936673606414795650923359639026909132978156088434434915779112349373371146140447776483391039905411566452347309975701090573855236512001763411193482156686383182274726306864352276258072959580968931152620114262974175724384032400796567543874367464315304593480886628965373473669774573015871279522859174758032896715246237571241556084178728509020415862825314450434905739339673759104197022769254890034032204350092331743673944541826592205420097098657398061547822322649065906294970832985619079394892106492731129740385001964045311128552162000352617765662707616419078254147496404031878462701714175264783958603917884641247568766173154629030364272613614057456913011496423310592223194109078086569300337156932354550774708812659331350412057732421868573586664302722083983841039716787124621519976761980558923220209216240419350601245073864621921509230357883873030714061031043833520539776217476838084163456406881206074706233303002379679251228690841913729655815490226113831303922977497955661026466548746396574725510862730879887879552333582673414200588272942809913235720163083240571173027189170676958247791947587586010160978194621949300376003951741287047639681174019240775177664346757331254772973931678048762812944718471369865571627275467894368959945561387301899011882058739434408931051088764703819102943695583542092097340404401734865609204524258758951766168904015390670397970006652127091669791511727834214103773900220701049460245994265707152444043716866256580364415370075536331300702234025964454377123427025504643113878289464403604319814148174762161317746175405236333469531912329828675619747581721076405823903168056802525264677776924699236758380451807399434949508104267489740457126838686373581053595254510646811782395671229654480332880603624345070642339578883046504409841074547616211280549830795274260857604166927024247706604795913650051878596552759694835224794511996827334326141166260049106148468535423981658286287376209233989968120102197197078662733124131878624594745351525440909390178636840852803597934883775367310753646372986842328642270984338468486239167867899600098075140470169450465357482470169732173543018844082279861024731359991038763921577297897274616136517943170690425519580526172476048779694864924304476602564160015115376021673701287644441179765342563365316729280551166695643860242414451265259413683440728100011853634406745393027419221403396198164122302479745237033330202454689756457183506764647039502987452768930135295749513919366604795216494244407221570783461570079463814314800001439802982411502868515526338496359294945881682481459930023275270193168604862956503044108904205093524182643891422686755858631062980161847052032684317430745806998068659245169680995779982753740485059023159643881767762866120704569149741826920554464857067946750823801366191428163773247366406107495800664694569647158271410095127004191159301622119136682753288080511691621469083971133629319639037716171982179088193497333171709048074035881845797219304337979280512877820657560968289959871000690629460445412072469858340426867748654510362368528611170622458023734013158935810891166661406751681347838461018900716371542286594438731193903900370871034462097956526340469244772908395672313847586381826562217327224109071197390192409918753478427976984402981976627427332833062649198340768819034139817339112949497345094803182034880628197555733317425013456363547198558323718246597493183917791875674550783756383545668492687508899686979981948628952835981930598483883368577497303431966804796349677155568003796721251038349668877377717447244616359320536690040420784423706445393952356999150590411173833117239566142134888119961222944951677375239753698668421156077505374474717717920314337602390148492591592633818365722854347755715631542081636875747881291607773821545310028711902824308813199930609190236100525512095380462461469592210921720914710487396847733023945820950688082111563026826420893680606890577394268122232751895641676121496870385019560660667702148227726572264460465308337713599219178714329799273715042940390214282568790576362886733383121391837812322990459544971793124210439563591933179698107061713096537438450154723491061494977782550046733326050012225112071018006148165071547327550982669910749620413647713344412465431950945450675336675666041514523786251284260041382650610412323112863526797905063888556491052075479491306427929012957151654143945626589035063379496658630731457043765483597632594366299381530193188073328442136577320109580853810570800637342299661216507725460331110808268735116240903690776146293567379662926598314927429565443275855218558073004317494735123309423556407689328834080965852363370140824933312261299381478083933763551660229991192086475301711140634246816088791846336458558474867380066855550434636009685883729525426428992837041959540601917778615863713995765659752414559972381085040412985873481155278308365310890715609831850210135225521450161802586742757724784959396280024340020841311711536232270437124835554416096750365492356877152427260213898354137123868949291323198183109046576996845885128965660820059735999192835112450457725873220420114888177264880542588791537351048136550059492035364155154318156874354092258663280708066408942687031015304775844463517887187122797609622585900535141844142976239824217565539532300596235349265504602848240347540731721041405005135314298418007136434292044579660357002005256421143558559945666916353337551542274197604461866302210111635088849714716828796564864027824068294942017496339352911843944665071291447062648226560104190283560459148155280123149555992658853421973176940681352887873929670832458372458269330724582786452540359369716775388503843132198880775062104576478037065795376097956730430633150875752204874200851413244058409277494956727843877463969236075506000231405337112938677276744596680752192490225287076914174211662356257085429739693087168611785009683080496308907550147897003394923622283677901763481182723632729818091537585586391758494388152669176326561218118291831399733026394673849985320625592902816418060809308101166790633189208374848159054098385903904712698232806088947834071606038352739698941816968544237960779433182269385324045690544923251464329566045691934608440939937685188545933082470124161195525925506109304161883791371275200668645399162239098219110674766877065898271802362179466225215842201952971687196156659131976535331811252736116404863446126096818849861299043653470920286315597324849057289672202226049180852174688167838598994853737513836324761702317463933242703105622347292787101164355949127181200096517605412467364306076252688339164954892720332191671208250511670956863744880743601249040416802196567190473760880755613273715237644818778871313497712019143711472404150084977992521984010045500102841807823107769444192281217797419120837563253131279664113496138080377234243203493221229013711530289306618147270289126907154697058681010334091035732146105972925479284680026813416610403279209785360127973974222349668651707534260130323260234734382777569999256659060375739551459236510533778321049386512855211625711941114061132376899543235039753095356139304132553929726489802228974334419198540239881609276198070061133388492414814299965461909141087190581564342433154586232568095704780590404551310066910134900552026144935808068069619139815754235731517644838440923640326302640140680756659746855648390793645716452991603318117757351959596718180186583651221336123106379440168389663561953212746368829123402934310428005863066616946458453304272676972307205403529683572518893294398387566928634724603433230372660687292307993737702712112325469940373511932111037106519664115594637881936971998436006255249175027311839916132856410740253450738412940801511780633128851261307365361561292947311315563658623388153405833733494143033604963226664300592100200370170460159975708128200220807561850273700944686604536542231527093006345881677170187994291669229819950802782987796526530270535335951680926623639090442992170756899260888432540624120147350666155168095968954276887198705200454901601689026395139256236293237958208711364530958078978629054435548982396887107417406890121071865159382589464329958627291495275237273615894673827028060819657276458228436121739891908074359990349753296917056247719681205597115637033407557091121056877917849348513088114440802682488231053279124792494236804479375598153234979361090085617439259444565626492426339076191322888654911620946929425331213589143923782977364646954416008566838872666279310745101076882252220115997081792098600144117988576687413482898435066529430473457360827802217745487811548590870457126579787806123302872490092674370698239714799842362059791518877232216349375993646116721896404531390851989324481494298757587665285380489660504468266759665764104228222611525788574037800123154356704218732783844052849843641315633831080506918426557101992099233999663954795001314496748558061806807093686793214504440267155261051055408200861001949462864014334506748226607298474200379773757984204463216520829815634169264909980058994532611650320647064178558358931891935129159612551030303784374198467700976380289050706180349978123608565571248991360609173600856422871976227569663042166621040660907402571283890572375758186228000111075802200771230049995711333728606063097168049381511907002173424135925359415918832463221864622566640930659347888905840916079518742884386991460252596568507214336413451091889546687026711827292421263404423409182564273654020701330591027933116282258727565691449291136281280529247729108088700024938332738019804964256749596691745290623550737558467634288935073971642883419132492516358250650758051574786996159219048236149921309908810884635783565106279639979727525368114296143266815039292564904461261061018141291575051341771806627562841748041484454481658842025224591983702147945190249503971478137075076752653922290841637818928643152002615245676180132347694615998129570860461583085662109947845392039786140219603962753661698730413211690683264088028668676812233142810097870338597207747513729965364277995116156069005659694191888001633156089226455421189273648023912648688257901027918960078442132537321307503870612994631513664049892759073388520615365026801826512750705315249989954288008418003909479209174464760964270833418895323733869555509898553582574472808318285906829337241219380120034357608610874347587014773373142819855411893711287630718859522277181586509861881584867801756814440931500190856037293124285774960282605245291686752242411193884533007644916078230514361027692359470550294632924792543227178301398063560401267154256930272841675747183082829539838714350070286090817754456568749642759983180728131563360996055359463145304391402840971207132658736167988842891671786663984448702508717315193361054452820215120550351158940003813769913214787762565735062841784135285160343535218866313131735142002711593954113873545566884225182323360303057627675027118034692390409868032099820736949122820097918480672477013043996569053804099216644826733010240649251817289150947996827068896029266888159744450223351400458309181507615570506722024865229683692810140964057914911987747586339608447813880748268028066881621135078704577920282889947966680660946107840008400392193015454316011490724535277180653803600228046796553195740947093471602255345621004140618804688684624763243607626723178365464775145390337900150987912093481057507604275142078178057336860817224842392271334852950376127339541393912158575052506307040819405352499382119969721814679174611880561145869416874565840853805036046892478126510470560500771145451607649642152338601725938668010788372714531720718170419859360936285405647534175320277394220188828221933279905026694053937979540360547445307519099856053420490012517091589257899920825604394977335836648953510210249892898929000264215448041251865612153483531016501422008580275100800018274850690827707266617950330261967198664930668421657470068621333492390358772968706499517477216117587082970753293892173456854566727256420400940681772585489108589493449118616517560275883920550943339835353409257115499844370920291619160964585275236357390195541692548885320460062347346473773222761581485478004362324491651701198614920741213548052897493104793151808753540280968857770614796933700399387265324766884944311901095066326184810844925935844410375590760569685734551200103523943507179100734776790406196857374861559123051417851101669183751247774227780229746959032471574138781890234044314762303047947895760780291487024661346967251078660414650581770815509214734181958904173992348336996167930493577019728609530079899323386672148104216884786739998557941949392763318691474365611308699168134256050623938148597297887200711757426879379776491076125879857347351932958111070410989834693533243711222482749358676207206301532497808571734930011631538698083708701600061675770658059182182703073924297175445621373180277301080228841389488787796451195072755935295866986541170692583657787562257572690328484589858648732286263339362152857118364851074711947941247576698688455749146992347388160627344554892974071677143313270225470468413079810706646165873827946306717638546612217715597627770031015349824510622662765924750329049712441439731306190117337018634542657611838992515997838205765180475138795054300588436265883385694864417171903172223740491092690800708440681746870661197462412080830052626751425289138080999655758262692920620468320292818607102530902565515019636285346287423754819943375343913708383021220107820152785675564432212450235392590161214222640804498053175080915013961338466482412248501593471941500912114777365831394059021595010098245517023416611065928095401306765919826093980510893186017896895843985146999616309786209501613184253587409968159455303639759897495763140044088680167888829712189290513481239836096506850198901059166411466825789404356217868820045810244536114447432047657395741797682147361622360725028456519247046469861553134946889437963491154375836056395367467358583835171510906510362854262057187730538593726483922824337505890376671061401829181622352044870318364802693058962565199794498925919591292409237730212520278216063117915409860500749642738375068784650492625827367302968290075234016521835827383592868315877182133909233343302352682383642875773929129176945681659246065662721595973649893665489266430405253865050480513897248497871839900856815254347244765937533479476198428312398296342644980734195361165492605210855344573737375492976647810006053270833905678115305540988317527281561602649338545881633429560671364283085781479324023260522324847626794398026838785016102029315145829744499946142013587220072291417938382181109127467134022887512800472021017342238051091811357507927262894219616445211975719916802245189498959211498070358335253210366101613260546006471623080073054311258057019881037842857505017248412301060163193187987413409264356312290666287053231243895758963099095616431117156984476935514469545919102322603290537122457618507024952513011197002022835107627829140204495984823395110654490529252915671061765146644105320145446730325620312081011765631718154273997106941102137423565165453202203459931264420784709774014807398259948834451437733084968086715380814172922350831472326342473979289532389372939544079623304059806123189700219824542872889815675859384832123829771286367930939388279167428106820712218885601083939012806813077011671559121935421870731487125839339387547028422510431917623874572686174902359510491967379004596780749257580716336863186630360164569965240079003746777699447868053872530370029796608611666101645409474842433962758620853134403242537664452126753822013384342185752929419883518353915834032672449519709970014796615667802956360201760384508526946818859610270456842835672895467484859352712020633504683379012810605328050428895182083173429717137181957147530390667320822384883070037385982594737388665219526921510525912680867933969801994825894741546852859389454393272353096075120130660593769235727798079637696679142215114099196146598013474711227001512117875824306121801634258559832967233048346060286727266113379770323497759947835348830760498829357479375016393066217734950701358200589340536160214555138564557403392557952381242729665535533207100747828044766657562273517083487175770079967818283880874889849405642375804313496645006993354509734740450086419574510243426583554787897904962334267575109881888184630964601064098604129529370897267583483775420027760118396974743920540454437628029071720498818104271403063761189327086075786200460602817721244253859335170336338463588637029352887537368297239584729560365978475378092370234558492186079744730827294209118285862167160932195700240334503916543417819030411362626848057117319477074639435205356127051303215065390907567315441372374481776751372405174661770359515549652907967069983204317977924464623015631575373097730527093424944897250599036841697263356805248144870925073943635624331127439163133599154707611052453312125840297887893604119849683902445526410155885710143707579142416121242570940247211849279788380891948391283532558672551127721877321061469914673667182635178157455597111352995818767160389214357218041591978593089764464230798731309093794373894268163316714272412766167601191870219640280382075672652272159062943681747706389125487530590625030748077765058476948438772682057745562056826776223824469191467839238414525105056426926589248515859334665354189174199079164751896654353246553181370748180083582227210009704284323889827844183226695477497692233732302344961330558820117328669066165432090854747639671685140379862620645257130400586594355364574876785075521393945888063524515948375345902666806653437319037980371403405482943997373968686952997630250608850393059456019383437468958544661352315369253875803116562609613034796218728268287195033686929684083500914210091246401861020327249011205215794840830564585904274961356968974178713676721936563744589937365350388259842444279499732022447927995682855714912401986944958246894101434939551365996050387182213246444084862008308134208386474846358123816051404296520898891685557609424236109299330023969148390860360000422046814147268317277314160816780560331406988525822755594033055849265157212480856169761656318258802615877500276254260791392225757904285784341233204718549485521058224421008599711831480260215419644073162795300186885244218572120875901565103914613372386715453859923444319258434471080027313303759665258412250587235690465025151488164999079319601424308291711340163434336890249504067100584485363200832827174060846231800826464916053736269433658754293702544614707484655621066083650408516095151036722014587383198246839793233711490990279873561608768117782806302780191130564966341415680283550502234968471150383433707195788195774689627766114200761946106110974247810360316208275239002912648900211182420280469737816528284858521999376118482319501914319312090499341323605029983908272119248801509903158934111290135865098242782673532649833805743638399029213206783317570468533297400560869804536564852459518496753167145518317712920532681543851892799658519553857039684211365250265385088861426347641425842155556656122301738896568785081698056798080577540277774343584429155330355900908860499619530471897018895789831931693591282718241489446426850767973914791088037203145930910936132771086204716805419704497070128547946885221420946598890441757777569542263978972530120545723938936748141414302557343657206378667109357400270262775363586125420994096804411631161057862958410560028791088785870028611044873958606324226253179679898744910952138102547565147151762282596572534437231423284746348152094783555660011847114408812116745425343413909709539327579012685046517301253001796925341808050942744101192679537048989744929554041076316938992458507945184411686925202830121979890596945499184095761938871318024868341089300175816945392360665463241081629038717287652386721882434147668508108349445727594876098438261038176222354876040554228972684737806879375330935755415449914300737858393248784020854510867320804520506738709855145669503067740797401197613356224816855164987014175089550336712216016417431845894918092707170205491135183563923016667364609213306121742211891862134435027052698695797934143869104873139377972405649535693563348458362578040420503821232175175891084949520308451842288454375803053369009484568530687612702617484099520885894681113388770790352016455094756420643249074874571286250388724661652880022797880753352963609625402050666141317198658746440469778575561961009878831322217885602861490105388578705528690512145267038913365173950800721553850060118124583071725975259133510118664955341319729369719478821862591467205048944469173092797397212000521671898344433324628425057180778812542347258537429704429630742135170180109874989417504337869617456240605633134096804532439943057804566611390342629003511975717062759295731869122392597901258312023454154614749827618563669444280684623540917918193269716974533627893723423106618077525419874330692186689923168284744907042418108021614484183599222843923291820775804741261127464037905135261653691508310293625680593404128286097408145250591831719696805697075084315643197344623012234133105733052835087696785422668041604550112348467944120557449017786736879012385114678277681261126865433918775491579627451360386691522145643196831396332244026556639314603297997201741428569365595190958079571507591135502046111176272406829943703848978550857492119141640889868660577967297349129658003846903016582290018151210556104691782586610894743330175717685495471578351257479788981389885057521985609720982888364716951961427634290082292298224971350628497567659559622798480193369489903666388923486629847955911219612555695092045597996416282691746832297832834404938028566583526653220841404875080392437928964090887851693913705853551129127654209709328601534533366772621818572591122486259927159249571036996269879280270455532255364062183267135346348384961096841896084079472504498166413990502525903071177923558341453069264748675810835098628527211592588537348867510498573685026009482773676527015636618748243955556698668447676553969452400207066176603961135349409955889391414431485046953388830311663815745117501056035948671820003306122797378516889162794060391424824067223557719917083131228838132406669784671283933900591192914517361572911895276682510426996602647967461344809243437595979934686833424970847674195639158160304367264404718531783214991063651670856508472455378015960627523547729528233601640545110480304007007547144032304984413555049153278569033967731574418441552038011552165668215079296880516545752561471470429888192432844802323997285003142930511526978782006817453037921934497612817657820251368311537474146711631809089162408397580559579998732589253021597862608153354231773487597229068113680426143517512618090527806503129130386130254614912639409465742151954212598662312704552850216610369022234449858839399499540905986486288658061193716150186000027085458182742899072981479561035835371485855624548086924654908155961390507882005337082811879573053754070312734110631150632109841656611129432033767441574323383027909824087817216497320333646280141725239192742492663068801330758516927374470053153726272782024018352178318343145942280511817502933461095431823125066887937128319783654440070420934162157526918973136959450715437436803297140014764389787657136977789551863264572192244325447561879212885682652683027846545480883417769589396157234206698486398436347997031271070754278921270781641905192385177161705440928398503695276271885205444135853657201541260931575152117079487959219348124356986530163866081355613008209840525618640772135913105843360710912968307434378214118068029741286035477280234382176050820368378270132021682035172878683550346506570751876879037870884860154893725677553998355850994087336031723614589290316383287674761413801150624950006321086362316959004676642693270129444832589429686148985162005280825748495951299139722362087635020575091773943531687629022007384095972456057787681557672535958321510710781306300202146687921175965436046086980494789689657044449884094443524213526541940187679567006079330150473097868959932296926971752357943161145691196896623408443085383817041300290042062957783113648535735457156977990539829121477610393439196462094894695128675990734914393595444604881368316079907616781323702799884548433859216805657971747695696134686241669197771817480827730803165380560181989662971380554303939274623492936883952367173009565419516406269689839027027841917228149837244329904840619211835249924289787669048968377444485675240970685775405657163153707847817228164821402724749731852072549160694587660006666610285889724412786561179996774860492860311953459666832089381796853698451673031703670932869195824245696429804016356105646114811163701470489868596045687600449536949979437876004396209441451502676213539930521178216459102055882683214409172811467254328558993089977159438173437512962860532977261269534351189622546509904916947876444789220707718888996227728350736595595855790367821035817471727186477877474006011552457286180834092359828318800375862396999532187960512118997719278728666604060958773356864660750660484714724443127514756159191910212901407806823899873465729010199561510542566370289396240125102325606486667673043455950099058469079599544208068030003529875598855413955358494520730426186875538630970451120499826943246596903424105057501914592383872452187130061000726098341976561835635304989188304741294268671847643679290571708711266925555496383224559166821021746929067021790875489098453493007022625381402259414721233583909170732798374369116764100100042351788864020411588768539973575071544242860985537632314773951165285697537236614016449447992807832788426533734144388593052463769170087411249576144796175224137634978538919538033155428799596701695124301257052971484434050475497392077398981132082203737592131334674629972008747750128961640807409470294140029380356542091968614130423711617193820492570851226802874388845026788435273643391183931641518341955835957033093489582708037245337608372218731779155453781844201464358268435268095017363645544603455195912058260763045170074527086147098998128200807879365926198984379492314537784114382120888122803054440747750109450881630386401367821218502247083790831134661249556315830257789491798557672635750524050924420124381619058112883571365044420720193064594861268967696832964103143470449921365300357947785251263980182435964477189013982969737194936035111868874930715861185391249179740842743954637567640693462170850802981790629829638197579672924679888603690670373220446475242693134015797511498759664512511221288725148428764555154212988091640174282318099234131159831660155794453267556446258283499946141486483698317164747598020120169041200429310375968893059546660581932426181455055880181048878358534876350497030924661037098876038519798605403027893162728487263136546302927225756504730393472939070431607913415305355434509637344171304318061853255663327821489833680945703375914439227249518643056587736646544840484215118035533044829711959548756374883361129461779506787771438479403516656869931617861975830083892743217432124497217367777212678112362104652207741506369488348631589003172829137039666389263422252142742240291355765047036167604680791272662605503039663033818412622100353729033629720319857644617342026637228024886971215519625847876516835744833682387284836150092723396032003881472841541939297776871895708277246908411069129607655732052212708466514524427479382318099767368448214850701795597289788841850675858730080657773333561554885438179956429557401278623956072451672306484825353627336421799653967494539235452755314370945734522096651122675695939111255508280021993429001751261145870613521288049593357151571738649819690454660054856297496536851018682714283285117893331940294882804496756743970588675156960750361354603887393778790413347105185690718514434834563344254164013705433459805465188055377581397422340549096095285730891302212924498108971880530503287670491968229778361689655759042883257624643251610209940793627952454954796045747320987370964514658756489752179947126684783156312946178364608369319711632244959316583427078005092196527393824169469670970559124843744398430693908405150624249238751209168442302197294678016904570858832310773988955046091824164372291916754718289878920295984139310082760792131372722538593189942220729400383889494655280818041657005449243165871261469781728668744793731806754945074936051367142180824079951400224512371423183262418616176176049527700649496932390723387032725746805853920019114912159047637425460732288614270211406794289801297823725816792569133747756851605511770120554173398429157935919239644092252267589342613813380207367772626423169119482919632152818209399372875186309410244849487151686632113511246353319641325888906855691640788068954007976361459060772227076337278722375304796384987670535980725532727646388419899054082642110107999567994338930028314413109158361030823455371808486136653538527836252578165022476942541928518461906072509143498229891888679809015506782535523266872718838582888578719168979661639773001839048241063310729647268163423783284292605283131830175384248229481037111144718161708400840081177985275385744098134637295751620391255783290354402078708220670161706555716639208728245792198416566488165798719951218342389122966668208090657091144938351086599487067031884207236038122484844106063765155572027487355982433595280121835114524196462430173995097781934678621178192482940674729751713762816879579243922514044724686945671143844218952090195349272296716718920265714196176480480419486171817361016587263715130237446302658892001401198797952597069294291952483403283285415593095886334056375762323422445305974861656006171868920453291779042894292003694624609590317009807939906700895235469437215316984958760216681620146757313063791413490964301934939940038659064947205926864346297917039706213452930237928894495926915394492407887794489178448145026450376263771325243252646661399407855138631970140362005864830458909075773019843681082723183253940244246900219628569114706323752222832884343552955272402928346386317572816907884961493888504872091093041273148485369604852578321381958575142075165080209953998804322585646500986695417512456601433340138134719145989685565977384517968695512185267720093115033770284522482913272179193672335582316695462319894953873313459634139759363460333269729662585360095263965607198141857273855798881190819670830424279678339536063066708463566909428776546098220441671390001003151157813822505682621980789847624389399921626106197331430694913956878579607839256928929102379232285560251101259005746815504939861528545573464163363396363203381820803871410504280740928284433026847325788277427438569262135108203706087219269916437990124275640577698567424183638370390357154245135218012671613000986890581548753408861995047201515917489993117567620137185302336844844724001622064998205476029048370897305432109624367946377050228983836097096367709657426749494142445421304573986618662571017298747808641809435124694279130728691107309602999162846098141033029236202473464256377757350919836310067781597975974532452889551869314434220930650079545410923108748355681653539605500416508755741576700857155333999723874985248028045604030896287067548392479717344699203519447581753903062895083012423168047886288735909170082103678428625694104036931866167976230352396869378402955908432622515816039929825669560592007024501399964659440491026122743756763454242657034305931276858239042522969731925097100876934835757935555085965209774791867539116522292844871212106171471822335608276023503189466724123856923550845646092026061081798501228398485343486378933849210343961028286131324384830990771290695035651978823802420895669348699446705861808789210799361407479797752574996712857886501663907161987920915322064405108159093621149540215619687051959885416002636411188551559568834431254841257371341860226029018310227953048904585858016900509809650907083605930242997407687295810720597041363451209285181451086693254284782970236136868146242261258041467935439671151422237315200259420260777220707946772690059673937661734408950807950717307003938385654056805874753898931142952830123440130184966780383014425461905050452443964680666430816131378948554044233966643436128148321495911031928777526246172671211715291396969340899606418706834130457055578837103473138159147215772424405886209246358765938825004961747147380218670390164264855453940248987020015754634322083212746464908183322649917113779097580354952888166910680234859978025108215559209338697216273973370151548219473476760322063535624756796078903212733943117595917915298843725867669522117228515259431330656004771686462819377872288549389684556530639729595490006634110834647867413598356769747378266561106899870718265225784777929759446809802189048017450674402611396138306233595589554156104527380010957129595819463037541124342037342399106241200068158713577217640860782203284837953414085543247970953637432732793854565944036375232393762680639749239856691393135687056981332266199436573248269462662367987846365923801934283664821880778232073833097074338510403158435647692097319600632806127802610070790243618244235261501291875059350760489840926670264337815541342633309388928646928519961583725146489504324747530249150355654549629246506507972095738314272622775076587453892010582372705951946176080812698811490917508443465479959583242122904761946758495903686856272009388420193444198589693271298045781419812422081535194008012547545922897804860481163324051890298167559282721874798717086662724347318514117102531080520689000969683773336918696328608745836836078884275881742918412070482728403111852257173841333877981734532166419791446213769663147405173075630260126680157747452274562948770895035788018226818147253401214462308712978951918659370881004209822813377850407954615326974490243887718711147070035768893669284165258878808012163274555594660287853619222936830744806221304337341333645223361181036994298161563075630617427314273108134979317964655283634520555683896759678006216822887290410253310029503863778890514700694143257257632486639029942342942190016076555635423488657174544882426349202446611072151559197033327519056546329519897018086366923438495545991426784536066088326100069208714511901496727289483149038035047045026628300934614108517093652955297748433139641229119923744739494635829506661694852191056407938345777412427537541671190541501287031029667670078992798324813522841981349978706497119252624398131227376725074841688842200204047962611675690482418116338246124820568394681828653425312044261003007630773417646818149320025512016536920461049509326811617325216701171797169725902175329465163244765044594047683643747264544036375898786593554873560310836926472526256298634720607995817388821759091772012189578647454278597446187508307611546011753160261932487628441872648082255789136702168234792913929950334698390453577567962551543248572046698134078671563146917366811361101765420760507367973383238171011839475941376186850928155749318036831749905146644958206359426433955132666313102133420635169333985093414437047123647881593005161400878822194305544287192364600807145466626350742973516509640398774972544495649184815575282677695196472664078168420487755290202837023934104914103834809124650779413292550346228817940263319360002077953417804834711892200585705511959087680065366210477882170969878190790316144244758060444085512161484489461247921786122364404947352682170209152901542338316214691981772929458664737176499270518275515602389441898140169068706241601421844160114115518393553496215151469136275855415635447085239026906580114957222043198929042777616837882180516676406456459233902772966172959423192876130640522464364417922712970969349356922608369624131446487718654686987317826089725956427685621721486432694681605548221696134528146959764594655334908569051321547813336485763282167375373178451506456881721946086299829702694007147951215759163201410170705831684417717377843503495369092931250882254519612315295425270120193758355001154613818381769426420564367872667303872490231010923218713556347965873637040512270576968906277680481710082698258531549829274241541775383673059089768265450663002964704479262241749250480751105035059568515029152572752302290218404820702778401690274790325831009324310915277109662092552311369109923155872819961956163661375440711557188381088763870916488546533049363988491358158796627362707028448585453349614488314034745634376607824076285175030679530102665360248921628661669545621280563417764092433932423602427013404736563536667797059849281734155744459578431432070160870352978755552965046130689729590722615772340322558525763151519397684272369704732312471968817723934854934996036680128568203402348312714934381733315232702833001638917533994960849134363640353604024883461051076870042512428718300532666918195887306388807433032485896372341650497321861136125208928508080720546286193281293271737451522996900978159221037349911931815593764059457538226746738229417658573193195499557960429775538242215554764877692220112573730576108059888119424162131703042743438356533072325880742365086444825796470311598125689001448741734253593832759372950972048169252733566343997867314508510010335054115953042884631203673232996800541249316270255536576650250600849786129069777950328439087558732577881416761533771793354952789120245492179829727027584310152509089922273394096957010701875470968583264665924928898871389191010431806916837058738174737144434077772463192103824442307105284140414634234589719145024628587958324554271097029736992983948003316618480214550575117951742342153834357401734175770765979460816330631760590947738937750768019406135950760350915800008585164537468078408612255036411141487059938363610475502825984815169603069256497158860146675968102063013488598851556116667690151344545841007634785721367898265306584729317831222309876520772997670625651294813189788272405062005400409167620647691908466480640131484279235842441358162581480443577195729298441170173833513367795514348061167653761952609295924245508876376672572880530210833706424534158492807978894887666595496323213003566706148884259334163337299309592368032389120003573310090688165672020598298449137542535996301610712553087535706792455955134909369089732657219626675813397256963164077418168840962677882046173757133360043039753547117930562544840574535704780868078500730010080981386658718922044064108930563188416807248330615372136931313983357847109487157970844907631130610631462124962535376296859054454301718563517951536395732972753738421809310814131800584630064603819665941233665125263672676911149111284635101084621918140186080216201783807165351433983118560253211209202461479185707525574517240451611294188986155446675277652773472791819193251552088836077927221787152258587729688403141555235625207548991159796297765592509436435879442365561448054796928390819707960574006834342358070517464517530140579227913655974483493622676197810443889435778482524075081052813078576060380563528837032803352590067756258197205906597804837399266890800247754391619047353509672207743902290577732953467734820739832082081050555547632433495839859005345883078611268939066145669199692323035800135155277792639903212034714155729222156497314170129442602376728893330235445272135913693746300400562566856267523254906272331293036313626408881964168175141127278287779496719333833880592408811370181232086557903997759770137753905407309402366256883155786373079219124672295214071890853490144237051474122324180924313247542273303320078127188003658976486541326609810791823468565312194045934953862233797001126216270098663817644023654136671337928992546839519208249378175133853337502257966228311681349014705573781687622797826705185655230088173211816535978902589381690027762059888534341035281246174976414995407894546733210757566153645806933778094314931921828527749908466303424386440552131592097995306922208383033199142711604036578836742679966867472203643752085307599049711979749667498507171210425645716461338024188237143280837477050546685076753978001671546986417210196400279342014653621422753454571716133500546828404221428023145588200414320278899307387165404119925650921753752380849532894530667784043447688022580817088995135285567791087323541590732952606805256149605169496110067907455020990136474434547248301678839436273096517118549662528211991816368737198074752836863927490813172614812789943936368398542860011551400587782240964998593352044116069357307254599247182718920787490031282130210261959999108494921993107570732698281743074158668462095043240455513487278942294806851785776465163917743772204229873460376245996808671246693989489043191711191019498897483866260008066344458091232821054776737306067981547015552090083197020376008431622238818179643546491747372494567357824383068975091896068375776597665204333820987744768257005354680908035560834944026488768544623685322592546862270257279161308074006272202331743942700954849422260256530813992601003078570330029395078587937054833649213666625975541444711060317264618535336822344959723734200000536621436874767985254738862765101633822142948831044774268356914902988226199016517284284928649397813130098653298187904506054600410576539618110304098756395719218795354447050704071320130929648657984472912581330474875450286604259153401420574484042239114759257672426597517780840319761017778289074267717826008334353156797380225464951118578516038092278691324302783640600138706905889420126077545505400059691195475320499537032655434543431832061990940608605483903615694135557655103487232017509838321393245732623852443937187105372927516296676514514337506515225017348860834988283812369316501007978485737779872188411315597616590620535599677567807113559422170466812860115495642527945218998448651094525056028095999115253074748658486195074298507189955178675050905071632832671439430344480503349839760160391905356488903112867863005747179051845702193741654880951583448835509520390755210014468535056568046738847318234688944667431354108861241883336260037468635371643350672829734559551769676844290204405228844102475398154282937628650968501700530003304691038667707391476709249975722996795394527653490355505483919062523493917910206698997602100680720178748203467943648320825901272390367518763062230027285343825733053488419466193999841374837494172381548824996639453182008579735013408133500105525815280446015471321242137425596213998011306081885040365868500143452924882001649810276204996195087453696826179858148439034675217761832628971371156630608924731977340864469322553322895004535755682308295137473585241644442168467071310055518598739528794257682664874676884860089374979823836333000990123137885417885130714887730998983839978301647516549366569005386753612944197685195746376588584643148863202930737992624574937918028598590844497551497673644243297172513334406194101769081840203062038233875841893832715978547768415658825784344826893889585056174823176485825615691945134226748914485795957797846907424453586727735940854125266393332816491416919386102181539217394106506942000013056544124206248709020781996822981168008194229195236721206740027309856700117745849337521198047954182104783301747828533639258564522854927444260250491477925522627929635998294052154955822656731190415775935674266816702255945104125410499635043640454285444174969383569752038814057108182817366137568809705578118065807029570184425473036680975643935632128273247352105774776873926970811661188284747409184012017384004447008886189905521458540418715800929421170731602341063337566817485910902563291353292875792511510149634054328128994904530635479741571902334585486218855384872042196968728974112604121497958777947316565672226621222363448705885825912447489518316250156162175031186499123045644479744567352030507467399222289992640817620414592616840521917957568993789785551301705535713228871974156344899603546894518089553987055857054277879408300279298484311046052795615871151890253559477393992639559371330238978870949264449737369740524877081631968199993485259323026355601386117979338080580276087119726988465079786957473311134723678861471199823513369380554700035013536347993959935930014541368519450398329664632730981019956276772197631801279508231714782728124361680422244227373316145533001689782819028932105413446610792993576303097387056589575406720754580290344298700899514023505943318666693671317711108079250008992138837986035847180229879693909845970768365726330966851661354010934117461760622833040408961283214773030791372110388941406720069449111329157421580540931351538899200578137725362083203229927076714363323013036253797977022081448254188501112716295831870356590707940902380539866059730096563688846252466098432727639704850259544049268806701342636931519071603357397872397980635878962596501913707325396754060119043554212680294955282695434067036096094741329826680346163389712131439676779564035217788776859531725368607422626793225188217660873746035606324139492174730218481942741279767193152679717647746003784441425934612163966270441211947542383778510180349595976498982150845409881667136506569399700786539036350480577783608104586898642919362302375535863578081281280844460755883667295706768194397166599841981000961100403474094822362161691963053361774861294389656154526858393236565192178658169170767595701860716207955397100637423041904384595503397951039788544995103568286340590880662688002861532087069693686629020759045022472095180094140067595228934283038990416604358565072593284418002116657193143489848181079628847898921776121572961703270056825425506551912484281833523231340600478949636185570750060551274449754435735921013003478243372969496289666016488671658549455851545095861371667726853427068449580068243084273105075810821755636057854617701881848205804746966494434779721341443047664293697673713217495660891757284843622518594130308114024326168137169418284295835754217153211536755928611735625392802734424541457343180884621559807215381031034792877953105377394845670781916026080994620659144931711523662625041807050814248108260231538973623677889786263926812163050809543288405320317933759542886432197454976316071232155325637107950743591546787577340918087480061533625615305126785378067566720027882806232929449757773987994133657173758083468070293100645812442853464610388155773703627454527554714418930884009204809794431504356075708180897576242471392787166163953553971024933051989804525011969395156774588496051841958410714558634117491063718300652768854579896287577829898741700014553538511796489439856660623021637106933328179916620087441323753434818647003601326818559486643656264079542165021212675505834768666107433141643330203302020915090650612109138546845732505523358710839770980197283242695353036676693590252502401884111076981440368971554511702699866766317112954505965666599515603201225833252879890093037128662538703607891762878986576265128194588834770869065396302465885405428558479186200413044600630841820682169130637989927540272270476267854761678098929325973854252166440617777196435848875178505183370196113378733795653100618624431806098045968103683255713979459598979872696548262647771280296786531750191753790070460363244136251217759045941394710207402946204162033322167840303851638520193424613036344043744556859181150162157757319319736266878553528702338470174375515801206566046100164505709940380632115156051323344783724494423015081918107288959389740269737309416676986127531031005140498844689440154098714701568284217584536192758867709094155289755650769217045304812850548511776349108112846686051740892671336408534504446636619621805384509909153861379782507299125623342722258161376831156681728103927848925783445560315606383354236199263528620518628491388860088960284648287756297537376091438818708300332193290100576910993741582489488561832091976430615372896709460367218739968871007770688122911996502431874752846384144654011470545378049819455949389269973307350151574574129823060102358203922442355856783273170225147117285287256291787708570419715434036698284825190476829644825728864843151307008164658168811195145907427751090625961879390287628216466972366592982062981064014954771112353634034238601480125734934217834537040425172827725557703716258941245863681170174482296805086223452998225452755877058626546014166818383212316752527297133861679641242884668156525504780917849473503093094785518405964884110504914053367198530635139170239525077511588216603403349260666352858957564397155271847885179304774908855625432441694597249876293996294207320001200038152972031074041427897691969765663279389768402322047683013493517780168579464213010404799499778995942706205768557457353434814447600898509273420895004181116625609854267055345441505023345234918728872381852308222677940640934582760189119044919390495891579803682617995345062593984018822398826764863863468070226781013422001491806695629662913016449191311890015340497729454274655160663035156870182389780261324494567717000837916252467858767019910208906321095816038005869619133565717167414939661298117515563693765165096212558396602512128671346527632299346551856420581936610781202394550425350622868928023123128876821659611742882420328365856915815470023813538110071616620571417736113953461525063814321285621747592639651143089716643466994310656671647916503344783894278836614883259621664986619128904050103852099976618488614690422023123176598659571301821280623815260178549483338740181679982498804258585239224040691694464436814617501491758421312603603931342507797877505998380794367782259614195689131751163332589404393555795950719018630851467946403019648702575458184440598525932401654437303721373826315034852385019616760351792787284842324466151898097865392203446672384490524361699364658580145365295656465066789955316673509054356294926013037758673182270672100366776740572348545704532704931241372071084862105929124108644450049052091915983464962223834776173916650953641477999083833142085806168414232880980799229196782238402095105828406748350133784954667070134274856403612380704554622859703835841403790342090885648672823196295465835315041847408977061674059743472560283328544264602311115682037206709081359157697495956866183370469756597757855995232131984798391569900124934728467361430948851749947305481366926205678309658433918728269503726753874750099851072515843285386783590360352054039175766987895464885404959672514677037882560031437255579488040747863009022380136883017264646598447060983206140865697793462208991012580049589428086367645651618532691369586506307105565884108977239658791000972180800703218118160451900673512897081530005412850664771018574175406975233953852017275167904416283777349310356150256061464455189366462904210011202081375435273619377446192890001382573414933880479808362234507433505863885210612976361911122696209794000269539708344805420798735302816435351065069150656283233284755321374391865987865836391211576286744641442960986686616916915698400213224676069580392705857091508312207807649193180427576462296366727483794614186452658597735424855918892863471953556080143111158327289216421889075627603034493096008907441055451937327484602663731720326391468466268543972726670012142250374641024723630610084938609949733184910432027235508988362843963942747831231466971958329649862663143607232876367596512220300894208152147840138358135596071156584746681127104667845290046752765491842388783632218010139204814686878275762872369211048638431845427678762859948355677857304836408287292359612352478069053391172919077009546205075152307172877898268460169169495241144774614395100320380990828514258534524102948794607978168189185814061045034534458304871569829221929751776448541163099153145388694062816495308762933385654151941602889123965077910380767996984988339099502361648842464033066154363126046124244595398285789999598444130840133755720818567304407315704563389199435708152497841317441737626764797641214925151345757605036998598486545432898969159920538699457993032382377019829197311198862278474325440469604179907476939474708182420106105938395481217107161332546428936099895760226185441075525002083740185639870986249123995008967131358434248613565487152652097957736946143486211917972548117675628992329675219135954792658054191395551523889572429715970902971299387438460036459737162098660987541475514646376026019647153431799039564728743918201611843798424583938825946697594906061339975922556403181010945262190305683490742842834773744494092566978850157443560971539825442141803001197565025427020465762664580550121138058883621501406363291956406910971523226806776203098215620563402573739730296117024657725872526476158025634867932092832302112253403722300001203161614857110487040046747406771997870070265249756517729350418278593088545690714141189372085779449768444190021410233519799436931766944567398382842116207240294181172319621216911933195291856263156677465313815820846568962431196330397030345516075011127587755089846022309745350784768341725969179278955212674506925471748717785333303147567402667863184272802061089742918459959509767986237203690762850475328871295334239551549859788146362321991987709741134330973279867878708797475770497906702535149874012242498668141961551175954574084518696140222231577113589509901790497651675573046421024436696342629581257391460944160727922178030959502091502039290810328117821293274148019865389139351215807927028210910085940447038597784118621943591043003603842604224123677567762328451023429919644437550599721096609975421301941311860144265856605169734669740074703973398617733757621192759164694319004935003602898573173269218842371626298088234395924013215042384288964325437184405159668668095132832159361238341751780828786846704124828674287293746892116250076513746220570690776276530202649928910929217547011841000926088114105169159560799827960581641761866988822344217715561074891913568323391981526554132718931904761791823867903610856643799514778993374157862895013063755895242166132760693249802550718068455116296893351480541260765672845739849755656592518935805273394278801110403217703390045624477241992431510615570151986302582840126160827428369687717896138527616185113400925424030440651793708084172074617781395226409624907373791816047847569385361506289830296424140324987220033519598018777032609497780947387919249397299526907668204919778653641742766694506369439293528229801709927702768330673848882758539460198463284865195767027226666787233706290060209111279892156079882770106993959567478351531828959721930045904395341389095491475771575109741119103355891884152854366252162064596108882729897935300377815517274737154779552451267950842009089218226805090411050276879729822481632760052050444345312775687906261198566183909106411093593594104440630919496475306767178290872224929064567690191687830352411625956175730576854914689754044216413824556698822373114071353768570285385252001361327530380605830766357600815027715891045307238590231845309077996699126091999024627533016423480137133185096619201496496528515312666033459265873990654295733170742811752037403334485530339711954244431988060190033522668465167754660661893746590086910781814877639523294171438824158069164221244660000577183988554502822573851075630126173710284261296323802237467922810563933385968291890616937549019762107355687593842111780183303853776814370738279978724278107410022295889857422587571885734485315976133830384666161435375745813954352536225637150411326031214171898819276817129988401206990963578210475615635122809762922108485771635137674535043778459507164214503153375712916423506857197380820439407771488827643752873031591622618160353603556266469096265917401293798157387692934218731105659656486249381034915761479019381798086339478334494822321820953458142612382394677566333114643218860123499723661881345337021034878052692721466293764985663652174366725508955159873538416222524604587085775586378619178909403685591338981789328949801671706191730140593441283198818300975966921752004952809336649294467095428730598111639538266835037920640546153765002121921350390532956207092996886753706012455064003237088741315271360500056164730383193267123135224369486219387794636239274852398929924830767952481241763481902183968226487024841009144262007205706023044676504727905544398996459939982169490992996610935700660877860291166406768101831086548325436661481699166109103557359159774131752651920318145343614208153256861221276253337594870501970036184568180782984688125432629904916524224120471656464923902185813674328968319400879771182975511957757589035283621657139620183112912152521223757727940591718445421082782328036411756694241417720497807698116432751108318203863831682607390264324581185109260432255715278193531940674867023107671556906669871949146292664160255064810035702280622907871318274889822892962783673314140274520882947584858248059844199838041720555250679697312080144856641939928696209294713871402123682609378475722370322883279031513774699688840127903327773782427198071747162406587800755093462942550292077599438002890811659818628267346495675415507053392409387798003927786261646884844153718174965638597848736469909705979884608339938013097990962164342580956099274925161544518558677147630291291486135926469898618158959420576020667254884797962754440922160828482936016694254111320860243264039804671315754574002973136347513753437844569572784721335573166548051026653856115196296100550176564565695461130695883075116629492787112592983490497730232316404051668793592330394619470210825607664693102913139427647445029926767679280310283035543669581515131703159143552679801536061363067189650728495330261319922438272020659120905218872633331240254228718019109335689851830076120969377236058282607407281798692564985460215024130473118908075535498069347218025669240102736381945695446976175956448873524255595798884121236018202436293966279991299409231692676478581512696744618575537858559056869709249801319991963546454533035687487884513325730753933970070073647334638420012055929678098787569483586498924124367110139163759885061973380258437557063186462850827822001424290409163148260253841252683264304127025538126827230786782992676176782381839516586632111260508075715634879474342497665804331857771970236298351554942961474598451266207362619681253130277923249829324689933915561318633015408561622098227429491483255559150400702584935737348391778522179433451679736001336317022252985211046028810768237735973982046534167261377671440356691379624093300124643952721443686321284760621546454711414423638155164721135234133183444406098016649886370506303727553977626117037979331362708424882921791667854412222869407431147100706659017377240264276632540792549162213421472386917982096983414893538731206264061145669304243477124195721272461402294677909007210340148477770952470986494764990054429734836711012251595843286771783869420762146657471597560133451035626038072258313765451769676917272107482315146666539884918864251391716687455059095499699264962640435129057173726746981667686717892844997319975331411323422776121507076427097303040937950362058242361879778534947099307170721841906700391619256972849654238296888337144798381411853421250078157068822026915237748324807718069776952381080235347509225816679189101269232819432981828760789691166741769242576809599454055562409653924730986937183774623533279789715012754324486156635808209090007606034418643742911637177413066108558060245981362267836480043500681939219241027173265762645304521148500578650318401198145986204347830408016176509018962021631884598098929583667327248172068507549098619374406540806436320939719888189897688540093196805686669503191532266414675654094175594910516343315798522911452311445144524543935140451903869558015152298320799480520173066019313454781611843702577643302652978959073400744954863922573548278976733394489320528982643029697682288412189555878074962693277938762914844187348378217583096639228306464336335720345426720243158723477863106061660358609134221691619161338804871014878741623581951811589266488924951560891339922652557239169912407214085940220338136845360118801083134530818803107766325990928275401515227704899482759842733138491101834824241119985719191904333210717597691772108170546180295983547084029408743187133933111999012676649781424955994840282658724632258478557719430199747398549600461188023692991468238173020548943022619429008244980483094879147086777911363948446071632080647363190149266486586121223166254279523618678148746580306054568019393110350143541750187775272063081375954122246947247939801591719757256409558363095000576978153364633075811232194812987755528190308283546579633743863164373618350263618243372505950039442044209922683613900310782983358532610721077056459284382502764082497492698681241210901528485885622069753125343220312085604368614721263967805776621020655797651884364508979915639356149010274740351599689489139688899213858455519053069257406092886143923681123045573671888096341703682604135725828597976329420196078256802456961272461387268041773982669551177409249442663363182979593386510388755298522998152000763735688375109560385072620644167931088646380791207131968806857743543084035643351321119628909538674244443068029308149769020801115116222906190916737257613364941551289734495015288698348433057365970598993568203978010496310947559130899348359702124461642140807631745818793028722334682844118607001761259632995780786462495832957199307391416093465725669251714857834463921726045601447224737431894795143547955701200347703856355505544385029960760758969420872622324766302441733207325437424651034051355733252677142755490443631905615204988457549394782362603835926203169862667391345077165640811638778597786387237763635932899790490727462028404488002585372361216920491996249872346509003820929807101491284124063573038476733509055555332285770424244687299304340926544755594670620399440558929999981845704466199994857307089915821739889974041176108723985867150170044219619855819344454933632234773899240259147091884326757583665874590534846156492011030263631268134501474903880683782486585615039138563117727690752788916577223882771307309777098753405401461692907909368125943115475444074153775530438188308137738190754555487768396641044335005856196568264561276267918045757603815791211018031125746022143437122046728221217285413734848769349837100894556382635037931145999367528723814816084774792396169469447743125896058738291282927133012297497080254685208151996306073757974499887696107413549102361311841665277089429829436868141051911658210410344796485708550400723567504607167156783085686989938326517082366141471298098343235199151916326312996410760854269086463013451351448212923595782318626968622803373829685786396237062641593152979362470680577512680336347164692050110004539221199084228431415249018016684258438471715965796383810877614426244527049057659215156164480654787506350718637580175879668096141810928550909848181942227894192301142349552055997694493391762420827024230185770252808264161845301376397527269381608360796400691189724831062389678209852880628494936478058409990753612503215869740239882090074210228291211335692496361687391777264569681879112945756474865491781469759476649549722543881499554764673692627135786949806745233593602137870110052730558364128572036158994935003069077882127513469605115361061926973222959897982022676069588844894046397280774531151106011769303847376564051271286140641007937323320937935833078687698571455092003499085827386888109566668708716284081911385280565042399858034808844999346968689409343355164413155594364211879992155906254783141999782961607801568836222976809143442809699106078369254831731279722211432743381003249328208458290519272208502874823416137021478644099294857073885516111787786039620348265527309743101244971300692114029219770775328790362386930485297550069468564679444559041455470165157259233538965787392117305812546253647973649349524265684718253232099548982174759814970302743518437570094959326963471954949586346125477404251845672389130889148887506111808598666209925203988209072903066181796142238157400568869696792791883672292472669023637740888267080353392150175668921084904901178206230541062044464241695621953602459084626997644240384594391585153614845300263216423743408703012092002964218762833230134429874710675009434082457390454281728195652370147128587591720272250372451700687941970631218518502639838145391314505386057847804836679645799557704142025870848622222683459297255398227336875389943786715803310284596813413833863441955627651824942550473651178192211114277806692057548932381041836502086167118480039925774668145602423351969776878128597761086634217533796899821362287797188584148964337812728396682824078671613363024763249422461960092719231980808342246581208254284986937937157319680389711853341555882336637776357880981655948825555836873945331581491929979182333108852852941680663571674117990097845443511273660219231121582304414919930998236174521684899827492178823302246577065932980899110895929108948324827705354890179640572972604243839485215819555496276985166509486811481017504212990801225817404301411615938583630104024507291881665512712456616046820337876619227226025261517305386467849116171447463011643347788896808666313465360304463181422183360829198425247115164913170424170189756522112878658278882425173853768349232292153122369354642888259337563385813382444980810986098829300971732404822002921027114548421477331470588629508006220633063315298419161443829579060804289335018518830654832697009373184381622461636825653760056513967108223960962244539138281410497218202512191547892908575131994807827922156844760639886205062823535052264144173222179309678239469146667537236231752477442232214492240307526316418156735202351900488858546067734558935800500973749763948715641143304506225568593104865088197922007369805501407043951072050623400477407357585802061941983212909741697130339291262328395127551561204229634850207292904171334861161210854354491721140794204556670382150139312993750685187777816122947169754709106188057488185587433874460538983392116888165235264278479888852232840155375587636410977781824767701743856537240828330849072671097777174902434644317742080107067094769838182040534677496374804727786821131144802986218930667116419075798207198870537661598427626132616455367276785183201724770428536903358471165122545229368495985869297717915201615023542817269378616943844119790267437490764602280852663047601103936448897044886434150893436613170257052077292685150184892438277464697221471996925902762852288136258852836325774129948068924032816323565126358503721115836364277830297068696426956073590955374155825840614469805737827965473684858316487550348446347805148442946300254287479832168403420485822156005506238977652837418101369760266346538857069664370560181353352574951958308586049127994513190597067061180939636636469642736518104049037920885248412012557986810884561416454977860709253316871060936299276484895077667141926100956811281022420687230496732237329869939627311739743774777628377994164529348252009606884489533453696542398639194216216723692771624296695842035327061797877571057691912895392475620193800343906024896379885170499152779793995355612557708081719385805459094780546496635466037384814964085312765522490068019298965335797115714850327834344187635800445793018273279063890275350255452465768270342953411159066796571076241716089280988206638476772368866721813242759169300506783499277314421226654567273693674044265159777482473351516256485996028141163421281777222729294307294262381532409811980445744611099100491308124605723410807685946573155280720403629941348811673414676509992990647906739556919814895503578115535503089158266138891145072713947027496672724186345626776210452654205920066433605943512461356154309025814633888384787629679018944179179079047214521252402749688917597719726906130344379165390346410063633415866336500721273239828458439901964296632726584183959211763387623670069876968675419980846972463447499965937050582990793480924345159709925521008615223796916535498385145256716634488205828601548615727816191391249165113457813802320153891120988554882279109953807082376639326290587797210539082502858623050386545253948353233698884644464983135426016317520703470492558778939210422501651477940525324227799630239578295088660063814190878586316629807879837994469618060158731066379961590194788188692713552382466007006577902266279151547304209083055505861035423593036180609323046670171639216566145800007015307409803951802832796417596052756758661741026037296081471805167119340519183535625921194559959264663988373922792871118102639805834296377516190229141354277204940319513154802793323335435573045224528928895786116450981115239397276073986495814753658862103619745239698826166394282418673632844245570583568157607214738677845360115908845321356779904783950428705192715122834842845707053019869553771506027298003331087522899881189829734667663127202235857249304138748208160102942766048074894411648450028481382446591572511633458262180202563051180535045764469468702593401698466813563822463258735922734493574394651121077635891857480522459106800192613194352904961733518235821944890629242261913884537324115813559412843826623240304456451966902238677517344183010687921825130584520760728523362296450781347999178858430780303462408014306692282996436491818936359078151116484103147120763343886727685267858744769680147597056937829409686372942042836219287695435441063175752072552901975084919331522475422754103478472126706892283196075670562610320964058843043105298539960627727476266124798829807947246201837372870420711062260965765978516020944198433399853128126063231781280692996399252910993903738400099822327114925149132080738775577321336080812694566685668264477017537584841861390909954763074672121857887115486696863537505198880204011832379432085780149305915747363667836021355339328510789876272227135827942283798412476529612074820434106792184156750035837459535828245470205754796018011741871108989773010914948026481129102707546918449802962604352644440366986957703669807365599879635809842705672347005598788483844430773118061580450271436099844608139714326966696981872555789312545010462522287868168545349488663429642356601362973947336414226748550662399007486070753385208628107107303102854143270628609718705764498902174636149487908096575404264691227107506258282567856729836981570800386884950999419626707821407626806655023644004507122076356546421818709237042497026329971313392465045978673423990292390063451407766019586643441240679509429902251724350911063561909456281336682933540631117897812059425510644507972571044889196521968588559947102716321569965144857140736666414690686142717113489932950732176579369236820268070746684548810671780022112227327672320337317777412526792081787700607678891447435202954896719167981513434232843120888609655967982553253016408043007908539289320208431334293961367159239448818910660650447005091438085068278361338282399666659967996938131536379614852053798176036475272819331576842968917481101300693233050732907002279673164805097117546148099321824583119434106999679928420496204560086165879326174092220278000369332081208243798586701192339095962284444051462200770672248991541920343576171270858017643046559973941568540243272771420209264350275518008990972228709839856200490603026083259079347127507116649873810332458717219200538140516258054531574825319560274888188647339857230537220507956513172859289687907278557126369396592364363283581845876018307915769863169259910590864243604689693148516590136600757813080444696482080523201892528335258746980205709180945370422199775376461375805404004903109802618895427341290618100286351176938236758726651749930150060447014297569850184315061298502853147525045511657849410139042554299904013974313308479210146262614709504825422069847538142824650353978350035639236421317283356802219497912866394246464654152061736524761707544166141333970295499111363051427668618532814957941845883643072318072969417442485695746713254089964844418556874805120482786077922382754071562271573368006517864254408684911776293999864724814338633725461866174404112244418420984060597233745661462807284953232589955953761785502983475729221186333716127766755488442211224645142955221956396955315392114827159752120388644247846714258671261255534164651891566060130061799876216165930559954400783789614091258413012542278109819027607061931595563464917967595111193566958445870832882789161794677600351946814824790187217598373462477103145299905811404550631192068660144012110153784101335086789373889705827812132786747150777723143087257297045161325688490679864897045526101478929201693036166269047070246124710311892347965456936796771422261328795831031941039653889971207774990270930427868418686518635906123083396595335900134627693884685348093492311241433577818064624170044492447587671650934049682222335079237027647934906672917926663579758274034163955016044704563739087749779293313204804759539333964403384108564524003301649533213432826366811001494792205809800381661344989038596724814887541226814507690996701961689243901414154249945098544033400652792900781226746444990967024933246290290042867642615196710623656488897586469586875847767701011466144768118494933757702076091554919361784106454821418154519597070555728356785313207793087827644060645311230562867829006877108357086267129426355657846890580715700987190501918799171632057385923720754367753349720565116681739206834298947259469919044355049083848976348117452639507948493749923481961576028840189573703206932949974322353861493433710647303348194258955463497424542418307455912698037855701914501403779306555387090620147250685197369542801725280005085797104800851218056614505449888566121520782818586816559519913540258016784907753187864575898289498504760869433884410691623519939793785424724897659559432399225979538100789756754626666823849443709342355046609920440886601825205480334270081177715973680040714747452100249807748457847682085061528109426438339972184484975103389391459087725651996671894371061190347848863261198349512794632386989744471362987736725140041309356578560507339863749581246610818329554959611293508190427738415156030320148477827852906154544352843499199643372170972445100187455413003881052656056956230141320839657431472626485360925291427905254854713918719284844150172358973505692488950019195722473331875725927868361130294338723004820306537253822474604145691659363158788117046972836648044881089372657330489406502872516145888556811028955961741355782901209070607713948214680735195553784650336721374469892289980301252919390554335488183046458777019541108488086388847238275147397739229092143556217670311926602028722881045680475374843182807875670544235141033102959671316779412125458949031466719862973714889290788331287871241380757017058472671373225658315144928993075594173550342435979621511961465051144729457737643277572449088569107250787043316220095704309638476309196171378393850282830795501371415458459249609416425749674809943347211328049586871426890738068917468933859595767948430405992623469686969451261122148034203362305541373916539421995977691418389640359852957046135836172467759629207968234917080511128242619709302498613588406046643203684846975577256214103889884322223743470085757521086953867370447126473528870858930397465887380210655379389955344386158816803338707240424603321423434597386001694944300960195680885657006529215708089503355003197258777673950190636763079067408695939690302712877568321860504368396885963200373881444772930668561420627299146303866667228729002626764912671446909711368405998487776314107964698309828735130226744049042634384050002121584244087501427864513602567303278520666671432734541300028992002401002752962689796118907231312143568167937383794269364793006079227423955963261463747819727486076493522189529626445486381732934891343588000806951437511688931503592522279358528326381019242110327185689290741644991098133125088019721935535468067814720998621092200381299968925519103637267227803766101506348769114767281736840938598069380310587251181631138767534734271141995639091185855488094704341360150116692666115093745674593688680632863767360665714565498646404943936945615404394016033378191612624360586194562998906972275531442915114150855824444675551973169066508523051936327159415993536598573351643753435459874776262156966622076217558008078902561405883987895804526406522996390077654840708079991629441809164883378294101320859319395422180172880769731945248124979483415199519545528769812265252371355217471557913256064927519676387037446218589817566671569737378551454800385239115327650734157931281909159150344829161417117743833703519636639411570417071377325478487849913224660806480293288942973842701502250147726955280527828648163788178371078952157327195914170978321475972245166507418773527316130151743548351370469625551324668757337863396629974086667761020893834006821351328593975616428955482528746377114370966677879031577102392677446472431159984207891889554622971259787119196284460385524929564860903101474637517181493181561080285044478293597422708169694640482064213711692103536550552277539179677093243378269118926789982564121372661478430739808046471397597450974371271628743516768208379013718656608698850298401287709348032649217616225815204490370972178636434661555681470421899929916973310809808365915973099045810440734002164109690950281072380368036813687305925401873555833332346040174372835626207414470474690744953056017354423603247024129869370287437806587013893470364126598718781997122706234074718585429583778436067486587632410917337022238774861585322898280156833284574217163752262445057265495733220470090122725058691579628442685252798375029825930198538337034703198575904275775483303295907298749998984991258068156377912521005087292219302676866976618233533522482380423712347003960605519411331283442461865982357000102444203939504923254675740078865568395553798601710954556201061695486945072982393537703181200893057628819092706568588697656420852238986155885347276521581910448763381256056402270337923144024350255244482904183369035972483701208338328482009541658392775420852604041285565168497010296933638682515315742431172162968813883016746951069456717929335048956520367600327550869273912656199608103790166968603382470872364960147351391601479547318073712092004291936690052333261544133278108511790515576890576924171950181090603104980379076652297988195714203324277309086260074971075323151248052062984968956355756255383686108212665961984770831425931473547924348550884734270192416965235041496227025716051185602925255619099914750460587131009590545916491537891587007829992602648236483878536647906994697023483390743008757452286714141747297187092525298652028610092658917672166183407805524333090002978416037820287277169080258826833114495803951351105291734996243887676198669238499211698899385786550853373069056096152530389611419266532511190677912382711464377912607164724801604037123664863056801797273115618787356250587977261907330340543241640303548890942223832199685558456844507148235382193782393929346241105421104095373792478860647364315125156090034195224774111261959533671804844025517729393696580341785516439279325612381487815793420433085324427172488743338442707216221067783164071699558972239499661209591168074218619904297481276892386255804602017944860296626744902391975588205134164745759240207377473746799297344530571126913683720341523444018502708374990437669464777391483985716224338589984907162389833789453161820859669814607718620468485555214245713401846026168034599950053536729634099987324999600684673293873149000446534177297829757470236272043622251807635961948831082141695366509202710324546759261681251211414347736063225820866553054000113237549851615967746243269279662868146000967657464615458095973948246188523096159212593674159249735071163133255209669578799810118684755824355380157153532888449694488926022577189003725827108398768379453037451541877605813646619416412728096809336503404819770607983609783241106232732858560254033183252860713660064185885218047196179418061076767937607189488367396698145958302483579602868715187732930293669324310686874865592946806595931361844672858466635771353105171353479250208156038098220408876543556086453570814140368977615066467750624072937524150821957293711803118261718156184321025096168608910842346271555882969443259057048607878871417603165085781389926899582272258295194569512722071367154749387330416235235740345289398941554679731621939273268592682313861598950039733047876058672947019612505245697831910672329640391903019470194274092293340985539564866154173879818551337082334186327514245214830251528353278929890238273976350855397641810043383570164317012817654813252602982894076620238778942681520824496109601058365992033555896522445937733585126927080542111426471636654522494859608939537397187848130516372479515029156227416495534153604983278959690662892688293430028667821241727173953408897367659259135798531353509062519303904773490142683006314234193995085764567655165375840357515259888205061546721606603013311564628062011647732236148301627758065614577230091816799107807909158790080446859427621207532128706401343139835714142993849706604384485268792977059131274543116762563108734560318555008755201190080174845592151203896630661336939392858900126751648343466370911424031597308758817633515136872473139700811470679042907650924531733863441129923006163847613583714429603328015278235636513766470761209116915925792334504592071635995833725822337227273756767237109957731379257622366626511079792950456768790179079668023703624336332949174059805086422451559708892938614661388130435020635224988986609067178619395593810672022742993525637391200114609799103642169078158778293407705641590098132571744969646747383826265980030194414509832013707323799319798237882231149665789874278854523513648911826283525664643194857778394534836353918096212899938360265613763358945527004907433079402686223348527663200245109576566676776246391635772361685469701353573730379123259417239474010937356950778998681809610177562160322172750520805894245461164562483045284984468112049982315580270738917997356099862222402294182815762673437299261380305197011163381858174815057849999658726719988923209581085123713425183963438183649175255276153404050097219953643584877744488591400135488405143260847644761067848558393873279594423574437789600665484895482690168767186107473372051820126359835121000876288315962539019969856059319842930862303236780424014908505415254628198457832365312123085839745905662928863391769875348568569391260663813768591183123831093217611282897900265145653240770750583151846059040302903445164474671949653739512361898076760250115807632752147550064331025629082356867326097091192389512099790338354235274752853464459667325369042669667655614631521954849951126570532064604720135586361115447256268759427245061180082844590087104192517509617992215580741106508224025000826996273004816803891315905325232869932494950567841166010124278138068141836015732666641516317130050931724440708403885533050394813024817577502452811633951494911356380414025610080467173091862631065922941790611391593796265466006745134471928065619870129201125857988902192263327445519604522065134402497263718123750713076257509055800565956477066662296324210893873744590187904885548530373757355578266420208104058222799733573584270333540773784963301793591309408061642680332272867970253927744696243577098932219398493433362213814037543392630639267714228726230187206704258686157242934883430416805894411649196928898086017931278153143137002426493891852844847396280759883621787996390207014765096312531390207406741058911243527806179886728323344250756264245730688258147196345756254572023804851626116629646730799753179891647691667188836628334480429221801543618551520940232394897770415307133611679147339952214985395998390398477588367420761438914198085102987249223773337185508421530709316261472378969645925608663743491385729803971123687828964450618839700044927260948704601379140699718395462478201257091275150061169327237827373555437540947350201052486366338332705273940262362465139807616711421424135354784730826570097608243009943034473988918362289081180595328606105189590081719119363579633049503868282933319345064459658368742903745021105882859763357681287827095672964453932765275815857676047032444062662012940353671986077018774556249121645447058000296396507495620373042449330694264280774839758324660350959083774686496408067707248582675565025615444316029381210544249402026129677280557337673385789798442581752949973072514915693231765398549258173530320867720867411074345993444405999877387501354607532143799780393117364174375549734547978298120259436324251792183885840103162107626581707752902416152366624603750381718023771853406074672136462779692721552032409361243748817132384205548894343379178396902175632447500326143534927248395378612087385375024968023846526708164775925037150892680040306159460089798882444441704678388727921790801591134267826340133487882113397512327374937792402180472945199844359307403012436149057313353880613898851227143896631677124951829140178698698239006732524368546738278282121880948686188959325276866854890163185473060117389086675171931934339917095994033745088648629026429875670530434082612427407262672541472784679249995831351566728104510712957516358642210125409107724057340909428375489903536619944137301917706342634042012484819577615879408364037406495897549537960246705624013802735915463874105415873560591256743447788490679489954053990366162323644527800737286062375911374358472119118813972294840813260013088017520696787339363453297354144975207364212864943875098882213885360383493060597522336747763687741824875426578781524797372473183829068683437724263047284763364341068401720468835243784491963213421574803537850747610233538046484103947754798574195775783630910976317650816750004369418852916490065786155493994076880414109668667463759542208030342510400637491920531634325293052579261966388266232986098113571576832141447076914031360393632107861855658404082374641723238483474156259831095422130826859608526492050891374203106270053245073473798511338592605497079958896624084675720631315724609750355117768969210361851454529154937671332459079841668191002022934570455340832085611845927493630144808970403993001731129714825960396728409524945172407163151269648366790968757480000451581318699967685948864947981058419459079136737357795284631879982923198141156771080996770706772038214945195891504307600319493295656770879722139655439205671744332457423519766346866811143718609915053327964600185852372872902928580755750216516846597176976324292643577549913154912595767134634607193606265347507345238510553980196582366527941098776342650414737438826877104470759964294678563427249037550718189093155626379935381118484108720126860763464939363025317360401798448310266143599982263163338471574586584386698655800532509048482085998430938238525532834943043701041636948382370438640879231823146875482087649271395696540739351599377955682511553320398229135785518206144678776132319703424895337067416369229603915759593998091133891974865146952758344981381383171794057598975124547308141269717859686741021410327056458836191926598685486301961176181227327957203704837874496553562754326032492806005896586559792834000665471197780985575996503185667284934286715980647609075445301814720230122277807603683647945712171686349338059684528118469255729594387223383052098071375669912254915796519442415934451365921509147206888191140567813973560464304340219811303417040431079729241043651330984582961985301288289022535773118510154930702820166738001431579598967245733421261561765473836264904803604096007130169411468563507789919460021922783887774935226578921807382250860955417878511170017400699669715642561981301996856454663723134685546709045102314348041635450088099697234255178828015918813766403681529235044684309761301767298852140961301084220821599229405088978590339336083124477172138700230779873565065216758133068659114621938452231949569492719218721688519207624100710362308545131307365293334043997080514102892480953017752774920162515039016881616710766653308254977445957084051505275518200999287879942050685494807803353238274682512407869738204261292806902602645793752999250985093822620693945629563147431601111150526697436022650568692554395035554505728693753349244846079370710776050198981082291646302998939721541109451198817292056075628849156142353344544177598424406913111531589683211937056533837686702995331338457357396743865359016308824216240656993934620169227102403628347995168646885601966832612672321991147786131105215642255350210445647233931088488097915166270304337782433873967611771176460121173226680515231546021692744511988799163267323208206470034017245523179013327321674478961676513716776504036536686044907817798547241237168736754943133433753635091717225792156002975467902115979246877433676212776336214567733955885898093160303457044071897632798642525599375875440245527868791641959531967667211231592494404538191518117939228415963508408437580812494902333669887123302104911204961014272623345885158638077316471086197651550607467713612693585941071303354349830468417757883086525621108114646729469530826514882264991321558171365016923995436768062543609266622563079888933867794113589868874907515949987249239244954164456392815936869078333495037043354642273342280590597827127507999191143964951050208104161041177569261517551798135092561295445901206752978979090014156015564861365423417455480060486209886539904175032551856049598908828607242545178985624809686788029374359104304079901641694677987492272549194760120642681167789487641299312697302875057583775638797130472216799872813225024148700642846395447589669129799198110042830848051149347292267790353425172334856119995315382680609166972198116719214198859781954731622821411411558998388996579934961213886509571483878814897331707800250928012628541072750389063547001660246309698335710038376600139150466821999283021961415824847324547370727643611431302875632730237283267198797345146474125770542530958322187501260291260344344745931335158438272625677720982610506082190390950361780506821337900373922881714999019709957749811925741255424006479255114146853917118787436907239134722722930809085745030723908841494091701968506228115220327288951514800952815440219321345082780179848890684942646162052371582646240267352730576890800521985856778847993269374514440301947029964106485092182821896894881090221008855173319169481323250503848699790282563361630800824681667365746720635868023461523655801712902589844322785355405372622601383892725329820862540176612854258624826330644400460855322430472239050856354201629415048408234900019321018686035559201556753591634267283486894364170091352882065519328898723686208728455011411570714313653474687921487868574125729276642618609791043473784637392721521913491795057436291690784470973115306157044178657874070786172844187916328946698396015181649840998692398024813192723877337297443400238184366554588035714404488333292087240820150509118651626289884421780104519933938627869435333006670248913480193070108983761710956253610055548610139133566433840158950143069683717475253474786223484073173273624799604943358025117453247845237697519325872107800986050551827076320096866697797223248620313270094098632217557758490204969597467771260289474007312230009488225175893724692993873827590253435395752540064199096591816425797373415866591946199060941784591243402326387308243273408350408757484556415551143751160161148167882925659369761642557465807068749227113502019188263358092970165617490481808200788391075934222353186018560750655421006694435743671466872406173246847859438906936857293602314951281459678145166613628347019492476775419304012416782643834614622634746007571735064028688976722172145350988277746027312554819804621922344209028647379681706224410560657840073712140217658482873342345217161666121465984487613863470383966262343532999125667949475710304063940464332610908061666701103200025601571143608533923086863812565982400754192028726955557172723160830988420079996636130839126483148582468165825518980593825098995723991233595480854939650841201174212132465131544227706734979011230785243341589949553881314324684935194137508410581146472841059406519441547425189903088245710449237747548491297962640936059190646052719022326928814138960882036084731907990664395880699774762272690869203896231816823716547235667087781106637042696143302937478614184167967340538372875627765022862288022346002939130937646134674738154656482052427099283756325395096111835692497632834682483472297152588980581947817091147595089863714661364976818411311559289973419699890172783634002534431796770487780396992120140295259809721558612162499350806586560454673116020529773542404434343277087569526415933448311839114948149795230013090174634173029572919507838227826619843381212171556756778266408026295657736840397868058063430477626668937889596880879004159866086502959409032809978914911999053190362274832761758668874933453939208653326240242125726693806574138232190415213515753175993868259425753403218478148746467373201084490867230107669426958406585543463868283260027765366038417240880476918646315722160433613728887779178352158734796740740794041585447372268940820629130871796254557420948434316568254496267662811434148016430493269504132088022990895678584581028403964293482606337134260880763541169583350301149016213826095073509288513963408459649103293795150103352861454245251047125352334637325937061963556934937329153403940702218588648334885047234280718958290327977657664719626244844763254462953872739550984018537775203267354825043766269671995842052453889556334545202165032679188136928992863654860030135348282090293085428601326217283806710615363602845502090281420850427697762589768165308999309277625625692766270123084340190045821699596728931042137139466156315300266113920130220856472033928534529949982631995012186153125321717182642501163954183545916762454180302974231861270314966064894091800446891918298620807261303358140875412964409222452552710998805589476672169626818764701137067458979366332772047721042392980359774239083647613510472862695968088149855587438604218563280899353196985142031809638209251341647900524007727984365174906627052388781521618604634702240989200463813766960805913162400539871977608095122276806225295682975982809916285634335108253188340499350565898690932969313431819383416918889194390533506881962110688834387572309389806962653113033740987225730656551825088665893629912154351007490915056292347339061668219000056014148942101269310006225152689073419157080782997163133424831148916740697271214489749079380887483485256763381961729748449485936177298081333718482069059039235634103531782242106972967349174439570388410555009168465648196048674455396137297826640508946802266627845434542608934107316973271087691761996580297816209378368142183153446595707897416237715023869624728608899076238131093807302515396042977107253001803998979182332067092427675493473233123741219182864246726236310166378964628507622162714680670320678279983015584583837266277503569489068959226086423778056864033342125720696732319038032750878373581456134430843461495502566387702631237719885605510571285989763448103844442309957980635029650385773423741729544836334953245156530373551695687638015998960032715790851190237236642990160154882422767952770432809854970639979111389089989472635207455140640385212009459950044383755199267143476690174296679623198945316779841747052457807978986343071775639712155465229065366661316167199630487245788938467058863071357446358957101969370948058755627468597758094122554887062135201234948579785277754100968936590764227306050884358942882711634431840710445803979793984516274750484964270922607638145225338195551863905609477454687825862858986374193309549820789134838190944061879148910308447589471498316533046898237515796034676058089679865937569061740126435702908768243114543777252836929266169670189140235885794690741427390823178613612766257384695231243764537769262150186414979932045311496132590287202213905651738069248052624213238527882446221745207809115742213529462147954350151332151815999397899201844340104957155471245286339702037757122385886778442571125082300299808155418534702020712451161756073809694062081531770593230935525091586649128558779966574258705442144596468122126015411367417994391240528595145947933498864563660747156450052261376076384104852384300670021350067119161993147098320039281523444497488936330371360501883461873845566306238949353320672369466874226280371646872785386517842837253422239997618993047809987651377746220535870641739753327467224635452502536750860406317443832918302372564651516577312548075517123504417054528062505556066750512268781067409224529241196501214366124949272839742712003990637428374357603467397022531341305318858332184936751924223007313477250639560632639095346422404163793695808569468139140683948912862171483171895185204467420619757353407843367948613868034101223645901861416332711757759511679172828617770654788845689832031797322308990962947091958990648279382850392973045906569690510532564024344718051079765459569319954463063207541443222855636101762691643537933143182158774973585821021723113203727875770978991660881880457133872034254358014839181454248635401726652777103817709323466416565398629129211699562532421133145750089398436265734024204694582534661609237394749125150356490079663959976497509877480717948158921562943863424803003491367457858257704336080953505463667458075641260161463720852833093683408682394485473812561196335697986074140406992340511376357617013630124808564748574294411616807950149485827123540182828957265095295535327720428504155735092219159057543646256238676862872380560259072313801254133360658197784264234656731920298497766902392127239119764017947937994440452639386992462218733518280232442634550249709822834361442654326211537784772579634323656188445246368038394793107694558006025306787243453204134749174000699457177878296199598763691135402166119951002413535689147729370910060834046912747980776572849675310892730183473673387132181017017614925759569820439881356868334249831713781868308971597974587089468839197325505565415814194420780765301291186714794492158869348722817052758105756967609872019309100479161792867558663541179440376903446698903095912775277992752797083150440944645895105797392052190030857526724062927027230516768105830209565132532718625007525113263504252552654873735186891682024262177407407398433964219840058287357659849147320388783884918938325723103320503248165681032646485244382375942763816849813929592353814694426118997576477034763337735068572876916589577534322029414873837897075854523855695008354319590727492719835752244512053384864123350832492082677451685468774771980527853763493748286672047772419867454160618332641805937085082660631054527667192031327156626231709832501039008384281293371888039940656840683977104732627588749431963354971509614907848694562267182783795046668195235293468096792891121866353039008011355321789957989624687715923089152733953590798774619703604720946029073202646864702393628921277084018904579623795053635907562197507077805287115543022379032606526869011690400128446780929598887550291687857709342043482507753287912575060389458357210285311253242892337025436460277093708188916423232186526504908626728931006266888942193566422471541428568069594850557185283704991103092368335121232185508364144414320190932176997300147919204916402711953615544098683363516834569647109978926855513314528359506540943305414377928543293827428997700437420120211399609271294425823477551602655842944832637501149733356154779553649606009101799509315623870355066074778224548407862947072067511242688127518998492252513678131195334095334433283020047390281289730470163256580555415399985295225220432986514242295427858103021017130081327020686127196360307682997537619837235805806375680178581009735018910196475014041008110122578002251088446005956941202472062746569937318342718796023100863837663248310730282213982584311065582272057772126306067062910074875974097687806872981905158711640601213517660265238189060884823908046843154823415946173150979751104798642983781358285109789491035226130012386744846901806542931152508387527661525699654120577406129813144562951235433195256028836504180205383707321951867646774803304831606275775127895396911503577297400993821928306377283308733224207344935779069877333860769663531164214010492434647161814642667087342146573857361489629823928873523219253085017785096157716237953872536067670870929545946679734568165986524348552901303314463433176356947036661774761857027882993975630313495626937150283944694537483892344623860363158395403280290663716736340952472220534784974330580762374195809094872428592606459281375232780597008931365425742981163156787500682991553275663155326146070301804350320006161138768525563418425053557182915183007174161736065440204956977881251426503961372685415086490849599829887189180468731213767301368265625903957372185555889474885061175400309340030431013791517985996134062666225520803242519676089140623228288191654438278474936740529515985802324436692050419844240381483996925658776544085723062848045574947379907979544307357086202960932839307870869536316316275695699369779711630580879095303800356180059196156359869761720964256203367354507884253358575039120575377814040224850130485000259280559963789251406564686719596244681896147187271126702678896410121858633139471199397413333341408989660826958009254653249381458798882874863491976446661221452743458385663426093313058376627846720046351901673922057877521428904212618269253610018120577098922748872862415267414111130379217216407164875030895256803776309640850413318185773848786953231842773366477342348115887641304832024484482541867676830981310852461417800231806244428367501618721282568412636467899353084680113409628508384522125977051874338370841619357648447355010335159580351678252590167600134359656262098929547462970778571060498907561864543962503328438346139673184237113400158217224167384265627747822112031069305226824106128348999195400526885461322323093995140303141541860777437845389046436812443753691071039875909195823985844370995186660017585411539648753991050908099895228830896610518619327813980684425243127033810363443779261574214841723204679932833962202342204760370289758466322389806024401693732620126570697748839195392834409951104554002212432884452432343290129235518388414745872934540106146383764778262164260630231684783287349148919013905321895882254497792192635261614462672289628264526488293527373739823354937635202556351293382511108842441232276387388519461551335698015284314986719640043600611211350348073449097948986712031012819966688687993177492370881661834549991418307980464819524687723677520870749584297993637222164684947669655683793175139936756452395321295914456895467188801358520685539755844298889956793400831527838065367155506727097356949150431098200544655134065847142080243351947617873357931405940333910218293846934932359779443293581758222446711350844796236398688176384091900479848534960267354676439763561370284550208119673418426111373421929580836397410740007831997458505927734088177753734487069297061858852048759542817815635902227593895399982394800552401293065551499331235510705682068106172318941304284689470468610286314147515378923083849060714139501703527594383581110054502045423353835429952311504741703962981379384050668809108557045734680954786185714290346633786073456692997103072845835586303928148426901678855624963655821284804451082221669322009393618585921700583368737324043500535425712975318317199140242281187194861762707708134533063118384200551323941813917134910344425465527020799723789546995030813875078960804695422661348389270788446061756269918229081467894973539567025234478709559464774405596123314526396893979183920327216582172387402299208272872720508145920067883453618493517413106591248828861971533054983088552724632662586531696952709839456781367087648783151478444081764255126554321552205191476162243417662519534617614981876317563618369459721418455196473639234904682400654176413799459552548365686858759164601212184505496819142942334504592760680646081608640061421917414030948046842157818556454255188180556891736186264965345596053420905960005578814142440732996214632543577700901193756450571685126119440630886404157616302658114980019764938224624820596498526225289077689062537540830501872128931429937684350720526953483951702244379194674429271538750841223191798715199402558561889747665148345873324039310030181110942567875129066646883342942555393904859230709661336652558037092981306269074610226898634130797011725671781702841762053208821264604564938904355254280409793465225750517938666666915114197525055530704396234721945222488637877283841594236116915355732407883833088229143107994478895043145740515416039690961965047219110281507211108547035964152063904491944606128711023515912033816216986721641234396258146590536989637741159839871080630901214596160842676453590762518320837953210257737085120920932816658871894563949185829067960370241167825299982236652242011177781683327228072008486698594841684729258354936512308843786760306246791461276004704298887488667210244394250382998964429578841117544209673626507730976951110107367480698095236747600357571477009821069583429921752209024283773190928968827498765094097977440397190023880746483066205087376408404757644634699917477471123436932351813942410832783740803173051683476950916225203561463347399156007508151251351741307389428542006788541419911853101909344974262802566349268311819413815493233968759142710211326079087821281075814112416919827616811593391385335268784075017923233643527507120784522010794398113549821745135967309311802839592420067712646466179444013174642261220604661448601797219566448761917500747672641000050923624738971348060521310447096914203583849547125301313381686272780014538130536836489731308140747059958970279965823695126761954003332687237702036182202926214927044503582472549056462804830682852593414380229305422997345002829450765532138106788955055472051621915476956903349951258642649974037607934126580685419591909452988841045338807270883848047781398279507124811385387474752713486597531307013960287238876673342113218965367888186541866551918800397185759149588246525027884151667275901181021029448159059451875878836170929732921384028264286409659492592042520521385838363279314621754054798038247963404121636650683113174780759862621243762788093293388119978611510757757310733401121586541392810873593972350339461540720301504625208592142812065576392444412235441803226833930298409687665897530916163259163084054918891686520958174930629943728106253443587764768833733196840613079641006536696769606038356236764238602553017709795726367428708057148243384841973508727556171522862140381577259888605986138871025006222495869463643066757887453543341313056357129961172739166814863774032126939669228231693181908131702923827796218029984434620417862936433113064695850138089124914089156145380500952237211403820763816958352539774700333116088445468146892332861664171047610024926277634594970897962712391449356568484414862938209741407875295319062116837302743998060961699950373855697999810203336423611216757387464549292124430990617435141249590542932632546444016459178934907591526076981954004840724481163488901303090422867910225795493049965155486953717431893006032222116669063991223425527131517811596484056079958624181593163757106434693409930088869425915857457319286420276958085364966639665929362610768746424966379865947947267058171031631265915189547979889277898384074721804617644998975243885857245241170840451281830859219231451520511391071784148773704819351101683420776504664110060562142394708322929551230069730346977981399785800233267052545943653520968106748341619485676866744585822586017303652990223342781084050274757120702991848776338637626870063487461382321376497147647372134591959892315250106153951983818146142946004541265770691395493714001509378236430759441127658484358079444631429025261305145165751259286639052257077672843366436847468387388754458801750054756790760000399451612657014352518059987356367465090277680154226745536886409858273027580630235649633590313916360124147941205647303918896844425964671911079899523028718841732731318241165192258524468287231888908551882748078577755351539281313658606431259370739751798489095535714557538051377762208883055314359446566203752659533859172292015313457053528673711509866163171380557743356087095475876207381505321686411918846103036572287290409212277295695159820745020985383356964785215989572102825345126620099940714644551221859807406075368772852200256589760772354572803149397878391751807647246755027726233670942940679201989848981414512304783944596158508098372296682241352273277915247981820825544892767006622288952543505266163710309986968247863637744156562312271280830169815329993023060823751114073798565806259566698690806589650665276239044234081185453057722144794511719520518410662788666169927056747060339209341417187499639950351947089084851033905352449264351563248956521369758019586609252447183835828355489638779537358663701413153799291953922571350757553437381329122003219834233180006437773093891713087986955875001932169920691877146671233963789295367266365021887367429810558498566688571226909652814955358114179958290394613678285210639370511454719258347674674652849451546382192303474592834511870936732393658931578770128864777364404126284381969619927559968590233073378003617757936479256950037795559166199333022782499708772179980101260602708931112386561110120202520923110615523170079747526125859693941685861718759812831328319550837675340220956147495053812388962820380526944635472289714650858150609073582318876900658588248152523601694664911839831205830986688304315156926736609702802154643193712713671612170549287211227436269906048544033213014921754126277038463569727304401567700776164133927100894950954270772564324724091288948543427427632861103887162100805264482305575416638819714583554159801901211160857736842461810392652644279026095719593347914507075536050759293124780233613595582263672437131349580484595048304064775681588600934903641963099490516218288556143230006612844143656388009823970065151304337668965537278820568554690296359183064638782841148085621029029053302421344655274682785784538131462973665240346242807467656955523391677320525540392602571925096743706392539248336688867406687715396303567803491498968329722873317759166433736160038242537600290521338484831914644013995322546097613332511272579893327690914342513681667871541593544711875621470420945543591313068981038821245102031161690777542414605371215049372105731534722883052457522523178765847863671814601028006872806445578845760960227482014914599937248250004232696183538350686661150825660058624306830597665705134333434319395448967532575240901187749930256305917774515320241946690031408077302737154956367781266888585230911432045065512741454565063371278786375387826933276230979801097560466786159721837868062861686753490857004856315401304020577954047632283986052898085686000930026863340670917613130760244766283517813569103244787608082093065701154176176241239202994712721978289712119967464032622559650092383257279892462360134617908226010363043890293967370691983174513476748529003394280458746651528520833172287042386856289292074818842689845343293301369772398893463916403846716595516710224861669617293771033261257097015439165033152254612905192413209004267397940013510550142256912802355217506593803614472478251154010602262245892705859028117728279344090426469837376437033368896316599180004483105229821998230001296943719512865126003840747738009573003959011715268165681666131047171921261179058186283954154948751023897032229243781687591094723155010947795610658648467969366074720144223989749414368657909640098160956380812934124959452090769119421261164282000488921225254010538587452532524620395197720598094704202036269782294435522007567673449116851830796108973098775782069292613738869182260216534984448543986278318282447178486759280181595779381117596382150572272220417637221743791876028933191432390097407567725803239011537668947420003305708550308103279058018837467888525387018332360153669739708878836468427678464236204985450662294492597687198901397900114620122559008029288397831197257717770825765011678386087694323919734369960172014992911124990009833842975390814832540216847823969104260894663882697640728253326099378732179758809652311148900820429199546968811115190297501508968046388121800969637385503900228714155103717079621504168680780400464435938702389463444181408486918901311033914386002636564959113387177620623526609677209823335948976290982583988396352771711832527939192512164867729353065881376363503215532629231344997457601438268918087646806268541780850319585656488292404567414213371795814926699043894084091821687969566683175250736166271518035553456845951232782624503340480277374971558868753642360508185891550661894951599521499250543396761120277662801345346552696606111236126185902193857038764965914199733051463981430392737496897100847159290161803505371174271517743522544640409306326559450326855882831887458048200688953522121714963935952047555478353626422551264060781771441177768964986024679489035898366827798974224731430142722868100401665858668105743636147378592932585366836806653591334319443429802299965489295397066078755236679591810616232038125989531330617623933978001315386499630551907360765824044827715852749683193681761354663287533830885255327757675386100409778524212253725434744565926104599500884638558262458068874017758093855358091499352201218472609284250099722680824763982171737037197519500972411390274952592115369360129516775292764971140961265998306875021584550262223861567363986113481204611512240575489949510341959425047847167689153171122071613696458112053830305276292290716024404103728151944396704194752792000033954334989596212311932206365683885933189550706906970641138482390843634305100820441189162153343164624869820111160029562790655236969604264512714517771233874975468477221337431814519756092884501907127233558833379130952479652416362934856975535690009172882599605843906394614610386510825312613997677415425840781682928836580336485240343433694951090469376396846278729820276078650266134087618477592205390760387531529336411470598733234648735163139278016868868538460600953542428569907475396895676517038306273785213316745805715603646074617871807197286208140745148000226977624983888023967742867902158362537037570989333554739887917017298296377376698763094782186457373990838812666061252022260929563740450189088898413132104973137038282602703576649534291260033598743512391429495848143806618379651593591415951048272851507944865751454151913079558260374966208474399695010180483590741595153561117077785758686422683100668444576873408403960648996007982038730497970948130635865405712012971679139874113563962804648717020608437154415271946348346994907923016259700994486918244875361575848971794182460378320678744136909130085911367877177428676149199348447398454042647827791629944149302983671874847717571355810285507689704093272628501594993589171194427325355466150681430685416511139055906982788186404624760316046121694435763289540700091804971744836193732008699724512754393386963620904110219865667157132574605121879160675845529683044112316351087629068901740745563233591037717225776368989953298295498091072827848755303276494757317448788993686147256444339077961524482367148877064480005615756316390887630432639193272240129861692243177673284611714570287931198849983304754739768444555042295182089246598163216038685372469881730004364371608088490957362025790625642953115220611987738551372200968679652015037751207821292477813666569437369931083916017287522541631697707890698310688339503087544096283298988474236913772896681941565362755674925499694607860577318297846505089380118002593363812145655347458418341486651535391577311472592281191228278743082168042641778319739814649284100077125792268971891562566611629462744116114170042042812370043388435408716725876251994557725459396109769010968139588765199847683816216461675006468314673966036008601732157394838607736959396299734000303574297891027941989552163045403814611352898596148861769365126226877580542764577104843182172729711974005137387131917948864306928979927815214629489677116727156921506011492144259175311624718308987871201809697384623655705493782825245403144882970907380370421306490751104509952819637873495014371537502035759956163805054407208528312382880251571025984597219429873448832202477135057783070364603229792743763092320950000444539578951475726549824216192497836306334161624504571859628832111785535476023689679536028854791901444077809865758680489672907113030969152812642069865160467006850230757884417847884729379402955997416069355639306763258329623941062983532948738832461251417568597488274676209253460029066630063443276936047796040184560886255450252407878913076768115316401376659479828204446946546906167664467957070016971383095326861031271921042791967763728713150930618787600115149578399983206416692883245845313671207909550212509189562117350617582769102508128098034492409101142938206267287591465274937967050405301733717206545171448473352225729814533118472193035190062969700057036198821435612026402531407544535020594194440223458222577113576712140243141526236267018223067498619465555760010452295604611484872433788883987729347557287221965394869805171787427456668596348131005926208877872914182452266471490995508741388491174043753094460830348002314364442574198636263498790065434780558336076498687542470649455467787171224878160990297652269848648554202884655009576151597221431043907033995946220498855976163638319341046881374226128038715584086135011599780143672135373406484702061603426514126407085274102456543574082322457009735583931707357585600635142912425355542748231668799414575330951148795075216232239522070152927327023782303135201073708903717423109432493878641803858324316134259861307948738447951026330955492499250652610642178349708493243197170978216824730125241187891343120292677152546712217664127301170644024997951972440262310331306107149631036419962204322079565056512788276103551266280254900321002285788614005598387614282449730194452178850561449379066756874837118349442982417222062109367655223809588519874147985006822692636539647488621946273889770126558937247439234762568993882482466417464149896595523697842797739460575525617632775246011389758958644835362776997775321407309943648776302876658383980336083855153368800846641080339093294288191447507485568311050735331649141436936564454861774502967527537042449609750106615550282168812200172472878894008499214597882422206392913899140981026856462904639192596787359473398690376592564180288511417596463327237148880712640688825403583511247162312036170388049141103668581474929831411275914943106648050076148108083151973296461141679680585170493087603461304602405066370699791473998412363203310307775484994148832171694394455043198931911194951659443272241559510403644689815024096272211491005717569877672703567219837399210407318802681348625026765801006666209392789446038989125105827601443911934377326853607363213400236377891046778237960264921890498452039311578731904046319932866621487881024746176731163360543469912649781432793804338934638617219205413607596055815925235143113383637825070747042883954609554270265236873527987794299939161845416693585377586680011891105610724471759138752132495624807132121769360646878418067863635327740879738837585371294493195283069017172505713907990033785519633939561417523831948954745540225954900531832269448162522212579109412328269743159796917798887210473660025708577543453748210334284910378360523791980206991989995309621656893920631558290525247233309608816929499303190381553963395593210276055552649960335075701113825517604454579019246578758302466842471327411096954757998885973126610622916747244021236891692983022118651742394539009677803914895052459632046332640768970127514664513535088744933077910661227783428738335933874788169258509307111136761616156129887320721893892423164213510126583036636607273866641386085881514633229414183062567218113575477577272927237592617698693789067614368700516575930842999475919382755195335012299193404388847364614099432911934533175149022497434563694618483767374233228315503834061105678530923687934857115054991496619960700109881184990091685652702772923686239120776515993244990194015748837121543436089543456830994492524346504043950266302370298285930399153939320299750190392799223308432668400211678637658701873237316469537210699667131288046757004153430376763546066548701716504081453263581208367266544648498820874921727602351917669036822664958740536121798123142804005463426644477126434552068634543468092034107214338334430097266015906168322064814998376611402968096871221964585260966808495536192417893636286950324442312684533454758042161305182030160278976858022427813079696766096272034234662569738337520267384146565089605388714433403522994049842260218617931953950716122305174046878941162638262163176557631573062346465114974541366531869001895022833213010947838082657979946320485679253041061028150325717626913311410350754070238057220544764179053508881825768233127348271287909252959843978517716293694834810250321750524326225913612163147793859390527916568769385811179011317231798484854759712948179030257586117157279131909657312887169871238123795482001961498416533497123341660656860481930265700179488534170184887755439918385211705797794077829181725834573440283505499661658265783961427515140381021889890985559564081713545966850722613462663189763155160740276229191039493795751456240474043023150800175514849891041712243940017168921445763155877707332920704843219707823179882222981644062533217595476448041959198046853171277444867725575690633110016169088699197142953961173352631196319673777691819713376697253834169537457848649665639775815225132689040284519576159764986458380573297287101449918461548913593164146446613045278448432188426296187660520187723613391825717099971971883751542082038229033819804187493310024170377131385853697004473810109536306273382437883247811864680270436579065662299929611482773158078766920939187926387693903068364118628919992967249314398693013711900458257691902959138841064271563656086445235461935669325288496787680616230655970220314573233270390182846571223662963079136917501158636354381078670494982369835556131875318990312116088684080619885009095398808813513314421531750830104132347120087932181552854058480431579967275587843586471088129555731950688972687145607785832412418523449790250699964078765748712642522577595465943615789963644257239487720323603952166777431139533147922150069468628467840957053458197893396826051157117111029042258315606741185364505676598246219106015485532263729475353902231068149769395719755980931748292337167145308279556549673779147698610162949634948973175281666496694663309821796824354007227341771413665589227056427326126866331832975901738628479207588795394072747509419831871331390549787274332868706537611314603818212563844633312223765214674670871269627033671108718087678827252688731629680983494276684851834144609174783798109807715325583001786866542193904590287432579772649099855980939180232147343284959610885976423321106082296658802825834698609149441977064408829285977018525722558228293156057048544804169035958140522812817630282812358098353609677147445098426447439333149320253351436015797144394417430817864878516138163971021491697404801286936009948985029064874357515455257128194481175079865164424734520922496072691786917695813760022574674942468322145741586585823886509995920932026920891839945433898690084017708139599630441177735181864585195219436772006015616874912219068713521608158551117993443784688549623453789905230756479550211747478426933014072025658791093345962833940978123224404492055609851193540001645174501847363316791238042115967719047867298158371874562487247737300796234056435081430289693835384432907665082219589969521540870146279661517934250195095410732644713798597621782041270478933826343907450012979370383401268798151404630191152660752073713439218488879537854513323847685688226888451359162734793548353110832489580015667134945513134205174214162659450556830410188075203879432173815732591087980551390272082397259853375988736655721236293556888278977482084197536474375276670609191250700264799312171874533848481999400338703313918863970842232238052425423112780361490949376070752802306652729063079941492715160882467558647240189459438534724934273285360042207582005485012860796693508632321114793480677547962147726325180796268305400268142348328074756451992751509457720177771296329968191213261755426778758101203467206708507603955250888778849856603093052919633311057310736157185942539117075496494898766600843863465397305694919613438027518469974144929381015103319127876092461813751069412187690096252823909419391684931752024236885619085866306841702937240361362420625266879266525283439797667779025930019167867393072581126765136303945323936995322286658383027949047757812340563991639473142494044168545166167513569750414021332247699168292931453202702619844472387305648125038417535123444674324523381458186427570748552023341396305842146093515286554718243808564471743648719777655596309199908893144796476356516273224406409699371960911575427662506590622783157319523760749774399726991309025983199284387006730457809436643593641336806714856918301925991450760888630369446090138476122610520113289795422204638560482353054232072540722204944179671749956484796037886334773897456609326771415823079352122443938547974957718754834953521467518277958545004795683648452731214017254515646454833967103130805615558665304514925528600990363217021183647948959800700132499858754142088681262868671393543313296333902698142257601559250226846678358334115067509135738074618042692087005070856224334241286392000057288453489173277524283405804952185276272429034591321004344948430988419037651334346217944009933954688574311572222914655916165211284537687805607051759179107836427137596292077227091134364077104225352795027334088729151384318429654635953496896514263391203944903219116044768670694730788397664546603479394875334182071668134543113046478661494214415390030120658020939396926628619357008564947136166277428259310334405554421632557351129353829913950049641053070084360663106454396504060763393736911388015438606148817655812199980415439521416241393812399771497558644744958688393063464779080549252919730694821819288378864841465799135719674363489309228418547082092444736267608880216507228500891242732705655643704686852767775420654390631566012636596253404007310852221700646204061290659393816497512523494231489066881903620028276556138693665734190543552575034369446586474629878344292002065769326274354356391878910253193027253687823304662813733530593971784654193290190552824161727093069418849146145508386029517135355230373186000827082444354045784806502007011746467984846996220194484469367055166212168036073711084361123635622375152188267855833155505682687406306977928304204005838379348758524689580837562471173419250502498576967822381465261828748809115423927577928373264997887825034030492598071438514662234934769975863414570176100131993335937754560763295567320894297415514345789938982157086656212226656850074236579582775965481158623177855921999713237698740998063446856949510443824467506413174959658810198033311779961368259886261836811670368996644750554841461237421796615198999864938386384831530510466908124260378609587532312749552687910676622922407233590620538751884080807863480485680636341899796911588382799551970244497299352476560443146312928837402816885936674421905441578958340515017391715445715199384793819469586626289014513750756820699899077656199567248314897965757865491612392052948532485142156319572656457190866861460039591920892650481795834206198671616904069884339643067042074035335187918827662943246470499071245201580707612611130485740784752446594210326018456366593445911025642461045044138466696784865931797962387033060734532715638355406951510455752856541362296942726474545876409114195122588159308945101638434017909076125929620288014955194197013667899924428500860408900508198820581477998906877131865666005790741193672120475986493479699625286127828322438658024291720640346631663624045923348862929481399578659583741484249937103244775923758226243353548684412588519692859184272347873454977409459797352296663627184584107408059652844538774676321795603594963112299981206905428036785272499529069761864857528610323078113847723359339928993104506856633017146677336661196197817420079866214209551297479567354852087740855164131839007057862407829783869663482149012136459812389566803217699960347730162851636835728143699551692366345040543586850632728550650218032816225713002278757172295872865349491040653425067900546923238228477007059937355043492428280437798779550540191012597561328855450302556725197027995012839544975760558071839161957435169817321078103287496001001776180804438295703244885209172077391729597154564908259686824664564670360822734229949434295277508849757716087611792661642578407152038081598860777705244390264810817658189738186055058343924393014446369497380994910419944687322363602971804031969921831170026332009110474875402639939501092453154740368962111006722551001540652307180489522262294715620097836221895709700072735399635322168556845256551981296253744249312895065855296933869629711302944047874974026281078775311908268509661414836616413191509639119800558239458721011561455982402277740214005488061337187119254163998539481661638699954951461390994673103036977141158268148533668285651076638108668607613027647203242480272244693254023663838783646290918137871639272113745033915443096049347848046106129642336126160450884100382552789473874442965070547859483020527499868790114121806014183972403138947798785671447715531247428503302439222047405441010650316902837785837325947295599420317191736411941986255054025607026285406191201942397512752288238421993996691885988442155698286321813675042295986373969254002549734759317380304683236761567513624103042139400856193417143966792039791673836043788138054320541879243713498399363161118227824139107122148780688521350503056082269336966160618394136387657381767362889989693001482642682820475255794241465830003398754135253234302498084485048130061358384071713926357739544679177259241930326159085204271529772549622668186075620572693582105161198209885044519982907102823353403760855755398669369407062569090402902618594443795939928023304145428833212033901778945704963809157439861699354520659186478452723350425537627282172230020998512993958056783311363930667446611362563403934162741556288286844909040480835736717221727558804785230076565718440369184863519254387798791159193617318989285799600627188838047616888124082748910818579894599940077491553343270509418936907148621357565933580175776301428839583358974978188175177851781923315176565275211322126363435677737272148996060383195494993936208511005088888783329501170702081095359615765232358446242192534467770736941093031444144946143607197376516336520205728715485065099100886172458615563047310959858943978997615451809339693828912866919049193278911684768302958860865797922412116689907765257258944004606288468068429384841808751304853412802387486497515168808709548723917522446354081100155765450000125357743695220298656534892065639974356072448064171704086828629118637458344358101751799982288627124875895970374585050467149040624384848989725038638910379851751363797523581832764896172715659159933234075673743442834901945046957610149666046736462990457515831187377534560469420468968809974542896708398948398166171323195270723411121639880178741733562741894403349249155830846628721226780776096972035578708711623840476591594038386838626468215743224871807151992125381474580963857872512350535709681307858462070941603455408588101878168819516152646216099099454821234259509717975742332308126872914202155203204856516842398545392657221089476894095358767950550674141365288406566066598788475969354805177597895886946874249512572846975193245048305534239193845188563316335370614856870862646330329247964487634883847288902890730344226602370595052086212598639380284301190215865386956558448161706646647780381648237766148836973383785570573009300236843092298520888991684432933909340094569822069892919456842732818866509316114589271460410369420466905739903745206901461151313940743758130932840253034314973335908114572118303447369053387540721388696904987382149736419029044809620999364368229533887106436979125335056308435368787693328504364439886390862184444670198576041001732477314010443571597283348624361118170831285394073927966401471098277185631237977511254213377099653848401058481827978972083179170201314649286367959301434687412483185169422591426435318720666035354260861797787597673163266319997149162901873777686584504292329207563216020283090901092035627179296564162199036817345413050373407732898399711099117843310364825260815357403509855058624757171523912666447684237361152772739141529029686819382507236219238031253608665301503008633232163830803036421472336436677561900511920505495496078780063874577001421132828528051817098520662687073590627313925888982106592803621750827384643549963431865864058556185643571946005174379105519615966379329568594697478013205426762233083358212289124683245940505720330585060704433581721161054528956594856385165759726793368700086687384822680078941334763343346159681896795148672479195226026389317276478221759500396951578969971425360938472492993420567327057926690646348841596336882852122031010365488531342857586231955188182617074398720158597992225746427926928573080395915461636905246109463239732660069415740803700783725524768438716663394608717585665053448428464757044074412371530044407814894983755189155473234262651692256882370371429555110871461398215451755365620339910681333243171175214679323724772911247533420088028765898551398901799452202489580312775436230407262419497769781010547240485197255358557067776758205758889448767718091955269625379215328992442605562297676553947691369418851558845774133747827112851830153876122295907604510420619737625006119182587561491061693252184957638794195858805903640211542116636087957978135698729157792247742321434881962839229901438125975062050244941812845264703507764636440276444687942077810009971609450978941444842610914176049017979991632588981568574915170141925401848585213560665914653408896331514868770876962269053705503993912493956534255974418994326120896790862502909798005904302299088281025122834095384753926325365620337692061568430431108022717678393786174262629970092842662149059809104132818570197552049596128617026382329184843602899391149739419252702447278953165634098474973583068528550359365152263751692459342399743365641261050852362564819759661219008179638756797889849469680949366285306804795530798131425590943285804611690496667706367430304546159360556514984733706621291062654807014862487266647043047596909748194176220306867333776248847124682449244593502410196775358369161726535390201556532042528548720989576125895044953804224590721971194799536971157430012544862777534823521785963686511262523042957224422030779479699080255779460388602283646821778257108315634678595348976544267833964919048536511179304731169252439218706381589047586541931346037413859633994976084714986625695951535726195774356482118341998367683595496723302308049117736140267857815402781742108329905097363974536389629674071685772987424800310286583756537134915068411396941734588090519222083453710247754398086286198083831142643824519893651439438393641818708743550958782355083515698005007539775826740238995861779967086369887348341229077469414213665470019329754061229329632596497497976502343917185577418463705279695478060259743904199002088104422271787185998707392985646054972268759222581288059231022357477733501039085400046437659172190924490519322814352411615582930424208669236402595293425453115436137216492454803226590260555319332548402983904213690056725253162278983024657032562278798637134174217129310881216270367216511192966048740738017888014813772577368686090509900919756253282490262149551363641721712964212155776312385971901279316943120625736775628184064078619787086035964350700335036324340409418360408418579628368783397959802700947657804313481931145442017267427701087535710273714893838477578089824006628816991995501677955906253741398095969823172864646217239739970681757769308378410123466218348022497784702787986368238340335112359608913653282980434244959948244846284879937048176665280056800540842216530637561451294263869574165974010461461100414529714014947544451793206237381830335040280100230678435931322758113499005799531985663952990518617147933689852778418798332284089285684057209685290065866891011168962508318171316358791424647674446336599103697449936019047365532265531554339379036630808795507166359713183344157954187978363626920895890599849875442216566175264183508624690513818182032704219000409907634473235284473986711056403171668911965267730718878219961387329105496773965055402248440493382391658736328301145310870972412189722611592427674551330638820608934340028417164467620531162894819773951150041969625414584660482486520566981261047025648455740742347688830097376537206347315971648069018814904717602367923702743534295180272848693819062730941370323581834608799340769637414446551220113267955564546477876949996066430237027303468841223484081964946701523854679012980459212177851052665456931117016802104021812057639150338031535839608394901864509570292628381806368953784212084595391206403489531669446560575378471987147611985077380913397905685145691565733864383132862275243462770147937350434814403389299046670995298925413761065341842319756459470205979167176752421143488859086478439194304164464164099011239692494380153538694109284856731137909045011017570270872196735761090795022087756151117832918236054458809787602013651038927109749097041897976807478759538878033990888684806092690202992598063046866345456103514346306242704620541192115754738577677759894766499279144759670864365487579652496960868066886063701027594742747377227225958890665802333712449212329800812318579263646572608281065476830749549890516966706300832556597493460361899020395441608827068714164027640014313859077741197462649364391431844759350105767725969301759484259214337525448381798409143261734884283222535223994319534287015515853256877924435007972742778303317424202114851765667127818807581115379164379757447151027310343116258893541593995444506165789730979179343510422432596286313835335913304525630000310392927143636746105825360170875294582190110905933267327245428319818887904562490456383873612077931329133371291362105277295347240292856139056861273414759126051914071190962697517877101311186485392041507967138509109137371060314405458694674209851919355519926448184355256946343254415994004695478091278852494911341014311481588790159377075358737422886327014427286983090007960429323510164221652719773123018410504822828041463924738498367656700809532527375325215781054484804184821525072268858441131979944646504482533371940039447758938740602905049255429705008918739098629164766817736141156577237250981825362599665202179747983891289910707805845523573166732829090260484278692120136722374625664875466586012810860632032047683028336322897889756005295292568212735274949150306174448761118228180330325527325205273725441354347477716755118289831062763555294911891749253173553816461895451219540532273453982171605805660812069257422590344812951090546819439303676179981405537335069364075748262173468060246389569492756501150657814291455546877545152746210765481964600518027621542937072776540440126989169118148567568455156617654239432090685611888815108261391555839550567304722700653725591915510293783154627646727830091445230926303513629181573781081958130726723095474195703339527338771241308977537182838595142642892986287576367695336914277669529171987321849606171345078126948802704885526076797254542236684048755474929145269732934345423787596123916141077019878706043239069678072282706584249979312354586474535287765560784284525591938523452086216334600504987466691557298401669378083737973068114014568669209253901824511990626102901190866109278254893679227940732304807557976041376445586719908291902529641005339013329114388297102260850161404898859026867510270343262195790494751343787648109876082992395920183783087831318728090267911313416007374787922265557393962569973360189031791071336379170446723775718437593908275563410619515012327500003468714299524900780636447567741805580130794450873237308581849555108431194936380617103180601596406307360502922684147886391684721930516251196333504109624555068537035278526041875843098477685612597368717818060188983604411287619087898512626520089750873895790985365766501222300206226105407088568337576049882797753434214462438435881831457671882694890415256252841500137262694358433662332613057797183043908285901648277276210970953690425893927832801140963194615212620032118816417841581675168863644928779979947876948135568769975010986646771983113241736865097028565029394116122870979842627515629068574800094128545439694709969992354012525961116447254155503087235260348805780593008791081799163848499653233447447056092101442918920998622319803861996295608236444939533475521772934022006924604874249761904174924809987350662445200837761911339261741467034239194377923749769878690844470732514868839087381566460455173721049651670294864268344024980017774993572575473343665974317775257433225201777189220705674447244404293765135175601068469245102556425626477204445069960507138093603156057361917209107484225996505925448367730377584327108349513891016376932487244372890086141631119690758002206009831037977010561551838160943634936184023902822447274411210491997998277044021391612348348716821202595013248213271485601857816678952915094910537547609425881121684593123841595302205401730393226006192595548736089442003213843366323424790135322388582218933485359567540004869104458686960815645888135926286343385745808373680429292537930715478599102339560942888734448137298819191061864703323480562571285237747282577562737006750663179289363843736611430757188254867891166925886091809413305229533867105242536240126491906545653911300195826865525643405089059172322420233162358230153244650858514689427931785648948890766148884760222098066521361336595904440511282410590292891996828516229446160471527032474117687791880881142031256415260277650867359928906882270161161556546602904306517531014583994193415007624652642980001047992072881968228545639270589428117885123079500599124890752903599881077179937548212238110989118663379685651634475808433427290594678847330479680422490618889000860317114475231536986265380579448915026955354039772431028960302609626419150222539246290357887620727580952637539302018015247093236718195490527170887883575094331849205266693884619524151488162216748579206696915565671397983361283646142154511912143838065336593459860209723492912463876723298910306577720213160327487723503747700499106949981843130674948440670599956236299876175440403192344070449025330802767398163971226185940800107427124990554718031615853869378578116926345957244236023353726109335307612568800028966443565639993144293855115195326233902506695430402012521849541411240501411106611749781272930483156270073916898615260064117436568808744975740794057857581046972350460703938738969593592358192159427517140245992303601702946592134909685415092279638741403011277636310075291031019193704785623698097852852429132398309883496281827903430483201661551766607552546146591657588819583980937134061974383654049184268890994073526976145804558759640641230440819827830790569282908180417666030065064458662249128549960327112969309557787436935806621374743440313166098054173526070984846151249558423796416717906139299302611281095710996665470285471707609164293429570177497028600306080789535739767947360388960943542518770804519522867479698490341661537229174200921074109569195285338238766848527631311417028123434893582604551475268015043998573361919322601423785973041275125265997659380123050890323041288875636902416996655929786570418366665646212744054159125117175187417032737374895495404214962570128147206102188004170643421115870372687402476048955640588239197405427486557949263959275077249683757056045343116451199920939515638379683492352582101004427283772136613745955229318481775309149578508074841090800402196864329925315551214417761373023937588609613322171893881935590389435951133237392336766767805540339490736087879390134747099686321401677504309962278253181513573478374069681756722607804379086967380306376041963329086096370391643954203362501620922947791438178661226859202192229026078425978775058507333057806411634259202794683036959457388878849370958385263644177936287918110012533185065467788098756325258944011298645446503331269708677191892043561247008503111262715141959263770458903035497208134382519463287368059853526420602815226904118963008890957094560424323509723932574543096752604031461866196718345679528806605544062579353393085963023866010803307763373925670499586540885863320498215526029684584598637465440936883386136492783304957595820670247171164702470460035173980209682216722808690588961877708951420687544395123231240132292940625981405668094368294194950946119853998702763866947221527707846311247961010968933103626181505156967979951995980833636801082578736868658926368867296175543527880759528198265364154377195051682987421785950361579916324635795529031687277732455752874767151255339282129343274725999746239349844500144937440333882315415566503433711797804487102124104030033283445054447652278808310984238661646873408887448948785497169237812845854383000148615756686305132673699364029532557015876125093796160034029641005790143018436928852298105736132571690659288989448414850706911071919084962708438254073448764734823811475024384759742459161552146868675530109522947701988746572702803897489929093194534763600160004739961167863617664977883256570473806900029593199923753225423483958076365701636471268639453215754918538340341042105602867180141211848775314586912341998937062083637310836792328444973475466309413197891059700848914978059973893236939382640891279684846308577029516184830966825780703205685987153430755773524625305189653897190726498817972422301425151110841556227219417046662325822570144554403294334012029836395348112927860046952111538453593766429224589442258865281408560161456899232142323097585712954521876022210018972079548291689718604067936445426724511791688061938653764035811704891754865698310103920039784710075745080426833181066038938939423509579560106607509671630610657333743325957396883589930104821030982872186879100125309484414000307056470831265812626934661665899064393056537661576100530912515313772479825777250855274241745616035357303090588116076572369683621302195484970901855861389199875432873750240917087398238893814593311628739996792072382273174663812746552989596260264661849073249225054491550301355471642772548212223714426143328711961835872479084291295766775700340757639490792323793167824992237195676809019837941299287108864647680351305739303041059032407082732865322884043006423395017590830502289270879728834661116133146756102513702119855962362486591168375709954930945056654717650629361289287900728476447171286169589837932516172729516114967154683487685774220632405990480792997578857751289875923781517527487412565789105355908763780287139357158357490402057161609492963571863985893548317115235385717690354398405199444180384086328924966710465374617594078218345690266233316112509851872957328023883545475688324241968996367649307529169018364311915335492064363816561943494562062981510891866102458202286667295391028571877840444806700370598222951959345339781466479089868096433205449824557509570317896558720857517377464571658370044510088573461437937259634284696892381179600666726601181637219763650578218877766748636729918982944063061600485697792007213099502818021911534434223022321840746094382333753128721166275833402232746604280468502581984511257422436315096540712237847106450207664818846792200320560039801340022600079413021339985823084938119144199104697655880444416436624496498462952310056099214922459472929942530162492411663637732433501062105105898577122464429952277567516892973057352542387242818960628332132793379984627799040467797124879703799372582931268531021420189741484733297379506654083729547426803580897220435243691022428984836931693856871349926401074753109836872976681085646139589283865291384163274881612836913658149159961962833237018666397214117823191385191205444384979453936802927525028756114505166638784026560768187277905054976227750421574270790289209753801198947677758809321157641845439277475757972355770331143048777467643687057134919938329688324667724828564006150756157330626106747102363553528897361694889111337302713729686927901906663579242515472818480513066007520933067558830704343170480085366992982158705445620468408412676873795049401699063438179561089131765394839433449008833858693107127771212183379017301559555047775719570830268362020858312767473351727007667233336310783854620531445410055873826308099213718509948930221637416208845931091053402238273358879651587030924539402144562596353188274386472222105847162592952579379264342374288853465115113071741162140450318746012461770637865576027046227561174744084791127986295308286871569924316122684553600064502682274191103634453239580060996525884009169060056153772817756606844527745936891652109384269976820537037793141402872933873023940231504660366287625696258627762089123869363813763751686137549867788733310522853281392562233900522495942467941497033805260471768243798126720505443857029059755393856542836918128562277875174533110315507331381243893125567549638944670022788346079873922340231229810059646452280488802171135628808323465304526655002699415824640267319739336758389590045148582372989060610177995089055399385446122341252968335342564271670776854364373604026606118606098046934420391105240886366944902528085078590868625565085872555984494492205652805302263717529006493283784335609974893808894681803164999888249096021236875729443075688657359703651742251835139414184596276992955502752422957843358336764841817382449207646153915613527052411575743399419325994122181297190177494467226403900831739337016491429141206066469312306047091042389492303853046325735493597865217982390501655696179859611225261515256680670630637448449912077026198439841851156117034050018914145676742690716736807217379420841184282151993344926061292731287248748075508687986941059827173483396081471334752271017156757012846802991470248820015114890686000143086454433647410355399100741942545867691666653022630413344903592899223677552499331882840349370076877797987825666566464313153399770067831966373878798836306523105960800014039899567732203063430989809481553925835015247809259455310395966315030207232437577936898480482826751919843705238392819689288166007472709608408929356237156413890265306098132938168699693184243442529296410919693448973788402234939362827743354270471621250742619553158889989185665140554088513639558222099067576271940594597995155272653670196386198670611786384357540050807620243922701455111114194935514659465366082075646326990068426981908194816804841176839686849818574277811300269957858172231820077811407706676184181420144165169015902864015193806085337717723901389946085177047578417746948194534948127094996343209332100297546617955004599612634727848947605424147835978562186434504916309692942135343904120976392157198603236633436650642903423387234344370451982275435492549817777501276428382629297568566572356771701692003808017915199503301007868091642270457659544207093550597746979579114405532627038484012201467141776859674022180874699878137781685149469234848645033248091385765092523665676789355116220267158510607464534515238570756992289674047389294793554324566425768260941998318904427221815531527775325618299711955706731064189185488801610376348908464207560888661486684661399463883385013999815970610556760805568139727841154067144068568364074873223645323477566647591790660739600746399338451861013112134322677337845139017067636898978186035419094572354724541445871272501355246658467224534514845077068995910884600961698604820866854397854232893024873219546747348526820866277660583556722227327465598723450739309484430559355576321034044789691427144438340649185167716147452499926175071513048932405016492040302693360911502881582046285350567364548513422124731216680671872095254883565595142533367955997723957378347953511551909139199598550655083061028202444023184905324149565750563624235820367400668993440424881545982224168329728056720893606385955805382736736732062790351836657138061271672291816085646805483198226585629632115834538462301749825728707342546200963484918464962654019078805557296762023948114584768014272527943634085563811313273029362130658750726841899156876859260513954960103958002009851428882107009358500420404666936004155174730877990508581031388954638632389359620510440005937044050120410917901613924366084650210151776546847891885696061610467921116766555357471857707636478783919832502722723122543512074643169943711934659704632528959947744342189619310121226571327994614550684173549948885626080838129132785675524688920246351023987850076954999329400595741059744075910907506966619004662825179733820896477761599279723507623090031613291598276267436749449044805224498137832480073855567539648114866059341790606657607129921468737233657899629052187505553530212369334347065072229752710562774628658424706601252612979463034622362123893058249933319082614765867503755048473736089578470395413382438578163622601885202344625475842295669048673332671506159869692943806292102887051257322218500225017660162503696099554428602046342228072133571246919382341587915075341126136918952876495893621921086296757129940736822926636658090243151143351143681835968078436836995775298631736853800351437817300100223899876638742077093141155490975749754015620892617065458680625370394011665961648008777695655108770835716970183390469587017576997175409497032831297746121697718665357061996105609528349381017177826032813713041970469280923591713764096055630433525441166047022866487445023650843562292195122403626060240560353288827872842968892162930237520235213767583085032630143487090757417785063063332245247384376089784007299474284479718201539222232213743077671344449070638765049535736816239002018407424333758494696384464378951720976800792264805048819253633949223861950004526082764065871043860612987497232101486065211090290212145378866454552005361028707136187029557003084495264371732457243827607794329545488535985198624641746249513762599022316770835315481894727416364559536594095993162073296027881918485875622507179104763397052020594579885306863059845298662752381917755190261050347356512155682359035928557239722395000524563435538781694054116834254300024216371422258664504731186886943337962253954299478618319798795425171041361029414829490988128762881416042304980807842009482649175372730994459020693511980151819176775475834257111715271661420258803799371685902462822037394740606533745333486101095117898250302738679767364963816639647037186972295260662251686934515307950629882420086452236877912750269946101288289662278658019333964732814263618968497715439606993719347622937920521666920002137595804847359850149803550453039683122428744463141806664554611916494092636725510155522558175157889649958635318982943301170356634341805529056309827042286541998599938944268485166275557929602480335270045767526030230796285577729824677250568058160193484273674416829982360993772634082746662322946177493897494017668579752479594825543465514998222600994114988101846664478606410405168108715758841213905566206581389958021292492536511160280026250786336299212730774040386920000145226853178373020228553797079605142003919062453978291127400454377581165184325939786609747298135411209880925503558857234837265396154919436066087060576302762066270507022594834318796172649382676485899969591132514586175038900009986733049564159566501639656436582143169120465047229965676880412562501586743484749360246565475805342470639718847105250731651975094557457150345065145999890790106595297597814842707132776527827161303229261503113456938296618135207729206160396914510101330155566951976529233599087393662157182424106738752406629111103850550414022944400439426410969035177071231018468364486980589991075828209775645316675854875577798751297677757289144747308124003060638554093985951700697749778080718949185824752896346473673833289096020653839660681199898038566616860734604683218099046437228634876767725808103109351976126177167217912907230995883218855574585000755342910197386931604944625364054075385599733742707710305826646291731879681645728234928232849223412609944846206563916330561310243696276856452105277505440880338528144255934358270290945875719112936067282603991731145086422245239848020357259558608339387112901167726919720651772990433840587343323294786749279998222233136182954907858429288439166364333754425923758171345867752276003675217267187501270497202655692430099240009321059389037835881852144375087587446472431149461194816604045595549878570639660406789081139970924050174499660070991519819503193693411758552291670103844832924855220340710452504834867732455754529894339226131467735082330382576180903584062024841473953815550286262348701619284969372718821590789038706986193516998092686727215885660716031895807186801944519117306707615938567781335522112327558016153406727636208783097223997119775272434489999356933995395715577374974130848185817574928781991707511222428045300019013324783553915140798595974906243435899059491111988516691936210415548438854941398450308181445978529900028079062541635829564278937345504108236369243596804223726132988790372554875302592358018954752337049260615470168097971170179144869426416098377426398582091049011551762504566066740398440935174602371609137910777652032907353859125288206668675673872546213802759780151633042636446743715395162698715801857058499356694477634056431379780560066116553792840026115102035017149374205619967545059703835089647230966560739760432187455518164319044280111599913913130522041381956869116280738319063188296608583063709478010523388218214657610449435490989281823839609743421914195513566024437230358449922354260751460164933416319049410715195404919835678658669251780395812117434173552404568577490383047033043713719635105073155595756913740047397478691966097785114752005573759694503212747518359953646982639555126376837941632665793387465108283452912307458168505994423675134776535085647680876963623519767111215036977853212796182365437579707237508076818226644474938102378019320880336648975854891050183620484152783786089848288579230281148183577405247250044132395592108685832150841963360081983237281062468096550701425138545279214878487996080664054238872609082976553642289682684938100389294104110992552933691159091694935671939770516518607880075016136971894760640727233377738413913785664603607205368269390328668429170984082777346590706076676410136589973742666711016785451874871089298157150104903886107632752926534860878494601093739550982418792410706857208863181117546601785647182382201183629392386196134578436734747423112540288278653451358791583972416199991995689704022456765496830409524823586302388095261440090906664434378980463656287462125603136245055293602258969849521240000782030358807291310533347440706023327211675039514585139468028550771533308842000858986215005944756465434022604207359169574734794891198615347135276414884804037659540801621884792898742195489279096495455968871102106564940775156839353847133613887520757218853282328937384953015386958444248580950164073905942593555038263580300425211143512733338897113711681800816272942461382539897211331707486178962953282911022075166282116606679361921662016890258375266242510578087716503164129967344721007472108197467636750937996931681162651790148013329667586448294911180595561174510061062451167732123034506442666175908044554788469900731080555797097492726021749201936309290794915671397298443552373952595565582991420375219195843314319105359838566831530051149273825641327289187767305860399382617790887276505517077261474339265566326468288161043870641078212688425297309627596978298131264543906921500430190495951903997250191924139649881500866150513125614924920281321701517477861226605305679787124534029514357931018494996051132921241176766726875601041899081891619114886058334376001982249122548065733014167395552072853542833875593596038947937918757709542280148152853304851469005249615020552947331734632247553101638549452287425303935582634854504751400243712077002708431248281139203233187753437476179243563957263424380549834571021233876983951550662659526718779585844890128123465046866836150212574073199723615762969370240330037930461097537149773587170813129949370072685315615739988390071495352671864877123869774268653902200898883312336700223240553609649727543899834654057576956023250530094578323293395636260348047645226703208502190105107992785021566071842106937173634118280607781449950311154619391649496951763421810030792760129258028382860664756363805913034468898589531653839119627199965535092962442407485455411268412731785606549982139593342408004113546162618335283902852647828083409343497875819505510933326446859029415174187202063596945753026384648680950925962790754656615503812885834728609796323669007824700120447459206389307311960785858512987722622682463076733931577820988684425121077511379089979758093908707107281366558324061151522528230405548228513563014780023398337230909755147924245840084365671082386029185373117215563739526374583901412914618839800271679994255651330820134954563962352945621448428418292435118801083826262912629308770134448536772463888577916273062632551683199354038987522324811985032959411927152581754895637330343935744285539397896004197969088566228979349914336744481784445037094104182550245999859873160468059270514097322699658961808710807538333782419245373652574642964775140579977953948401678313836976886459122360806768810179926819286352791920925838973736631929169349739628479815121407697714409980073430738270836453121839954248136371941007706056567523775321628788479270325885127911468716197780348355506910635347210219009298784862412375459597264150202505629505355617158293780848398412210137970275057095053496646256270747586472031369610913435634583509576482824891140148982330766021126645137829534655470777050095823997333726275526673067282423819554712603979260305033258328100217439754856626799383662560012302101238267184612253503663637251268776663831561700259048082944413202566472675525237954930726119543411099050352040444389245331870471347531444805076746871810222070917825854157099917162369631921996375383811342741486869518892232474851388049627997392692475110623145938135849622947022004410795934302967082022378340813852795169277601138431668075409467269305999218723334540535313654473019579985108841612224591808648634614801710586118708816926632291994808967609650496159021585310717795914897279896752973225460251618947300620415325367949125785708857073706344290257952843000077089011862891095946381345935192343238220819653884455450077449563613137640515746549913117309665633660648477140810354172375422746066365388764192318669158611624713198662342217066221818579099964824625741930811057542851747176025062792173188764283343278755192843308426166750141245522310680365908608100621950767958460062753505478514441051736257518746679560712387431211295270862652249118404627467079494633885933380752754341550559527918710629296977033493793669449239209150942749462774280402806853548190898193060766690841465816550102725971511263297459226104381908472807081194287866881695930613154762794959242813593047139199867691484748502721080917281829646656119518240844994891324004387622987486259119414028284855989245942162842485084573583775622175101440199940894378574058534594938365560790975010271170061392791801242917233775567420864522872589242482696569032486463482476413127784146104577867256162722125571128429452273045056157679385618580267966123357195335415872095966719726638401846392546744204731468017593949205615546305194863460013957071983493155073048958314875826940420909851296077127206825445041546251225498381551853946507861329797866961624821549749906300962975713768625108487082723011727561900618819437430563332436064951540298172563360274095190854382550704484222613478957177145362191473543672577921419023580695589710648459913331376900122742322941083493227118072085279929329083366241245006566958469828784494245086316564223768349370154262904791928627745986445943112977419296177657487154290238675754588109014686039711530696054181542220406474153182610331825762263778464278589231756447111565297003211736726626870466319121225948627849837511856565112892362528740754308790852877723684689972689412700103786824370497730026295706183511021329709931110381097249669149612024623662363428831999059345181556296185653519616947965797669705673910796944677326451733942604500172121043254018132943193674437041021175708675520314325407864977731445823281454467568648090572538650114015918542111393604321953358632940987582808472149249772216098937809259145485750433265691708475412605195622486365076159532947047532688726402006730609611460287502201637560563219788683497898417604200940543081934367942896927096838133232903560018211947686083517488890178903242639159069390554778883416505142966898336209463066611272017248793320281355111155498733403000233637104236702516161903783816025160043508853250041597038712219347694397663466593516021996945458349980237778970798057334157924295930632049317736905653013174823210883185287693692696838250389647614658969480145187451910674461131846066558217906692736631802395102538752961022541802953802707373524432695318016909486821470305532227621835397342902899941672109444309140994620061281939290857712432939867561290111633132637037621330203387534818540250375637699937931184500019149487347472237614131913803538343039135711138958963062167822212301957876248935690832090926454190529207223537270615244881165862324172674345151794657347052191594780412627783729372662402138729677327608767937390310845277759483620866025116463145324101834790148764388903959564431771067368111771311993983383856009461333156573777446984803378976868944867764677763012917032884243129089478723932138230108431381650915784127708766705024955009986572150412466267398462320613827498257499555428759503792882558463959645296245078329383570038192425592122312170952517414132255910973104664162862877704864085406193943704204955924957070820243666499190319554656426844044375923356784873050765107672878365543098565906291531438902184146187790272805570448197640195953460780138151436547112869634414336399124254677407391517888120921259187060901361495989166582718428737260702553203504321077952788907652585288410663463084194959405415826275829585648414300610250537725560882806594625772920553489339800027615073368662430248991155965292189499816548550952073638069064363957801848948842567286782256084638463783605013647040710788413922132679054619895568496207867298512286007201632576315805782031068512216297911613867468794479381499487261297816734753541110706616031019275852892408516645680112942749817007794130373006749128732037405464552962268975075474127908167697417391285713780998467171898104840493614995299518674558321200061899607609698130523414516119421675410605629465826088455262823507033560780904384275595051377660267492883010208838260713062079558765254437932537847678767634922358446604448207696543279278646139799546483530361557787306810885918684221231851127757662744932674087047239671433158445535660088891157746407260817968180801906072404926606077535873634566139162929602354367035808020246689283298612057896181163247012531767526192558945983152075304501464568142779553744226697617020925022040660085905876681558228282077398319518777598319795572129380581051027649342094509824294850149062806805618995460678651119455663575116859842388241403150495995598254099291623305468641046205603740677992785653139469580044582718340581644462405035852353641634303748661182378206159678425830131810070733172253530231375716596581987383778729246453031147058995726455629232036064396563316381512295385369456655639694239029087776210730476666966263505302374703190986153274454387958121137793012836697645551293012766270976410230514520870545230099579929756891301847147438560360635560458072502505026571565564800675535314409759233911418848074408001988353952105199012126729747106496219943874739686359205335245224192792824266733128756977348893698279760721929382865032641082691269533114220526092175371290078030998785018535422750650038456730771162997938228849028208935132068777239376453856502698051610218950994339193794448751311347461024104065407923318599491751671715456760414396154378744413752040120456378574713976731922548146524580202248217131198494971602720230461656221106431153502238290193691921803925884977044954811096293082178081286184815245596077129456626239885408487018059953387774968907508200999710645205378445130204975466889781598023751849414312563605154701726141110073400289359167384051957444556400281558980910008281028496563301745772035404750733257206449763021695150501075865567785209231249011829107312406957528295353519449155074586820109026052088113112500086970403507049570152631092297744229246249941824394551843421340703206548538323219405237595102004706752676831982972767137778335549270582744232361283059967225818017939896228211763317762034353170868982083917588312951235560812428238266644263764188239664352480819213012643513239657207539835476988038400888831292559611854742561746754879154829490371248390649134376363136017796788650662534329657109865944939911812062986997830835791058303628397264755862798667055365442690168047714364096770626218165931360847378111202704625441086905071073443594814021981751881110041972241033260078623479015215209303096273395747484364992466251018070663374264656396326404031030445616056208345501483090840720417783807240803165001953270782122435941950311673611402381213300801901151560602321685207939590053374166902313218960883055748767662113166210963713366750474803680161999768129962194615840047224323641295100919771128230473454561021670700163949818779491675024624494420214199493461199692087620717777831314645842127076750751935704317272237337630147269558245113562767168309249192604556250747901591187785171111476673341317955876523336707696805488248764222938747164318977995145075262816713935183231717761298252126392981810219701756027461153727469277858037744677526237916914821202259150011205206645565914272001441143621002829309325992585868256487556079230129732697734549245127310011973977929066147343445561361100652092819727987890288567173904248242978979321850212100087092077778571333508576973909869896206700216148361397191795888886212078917055539916097370593954693428140561675015591523910783026304771761003612160723971279700458540972615332568377182644428579722189462907491050748902331432248038323062518138080999686865630465115630389374428464076793956534453597410479026412223222804292700068285887876212329058226362311979837631604935320260369558874094928742239002916117790963899239773085991387910844351478322798206669514734356704689745362544217833983267515996071033643157545945053718889209556972461441467446681019590416517613006510477802935537768810507902410348790620424873682157825421815687377791619113406501195317193187014987338105346739670107311846480417097976658409681433648959378371256873725556429550846343617954332547591650685733337381182530051194580058988985858941981878718074326426159390522516722017197960936401870618820462320306442588910146018998497174943091831032416052719314788825009618069492330561838995471245853340826874756676198172008834421138156459287185693484965607175045687064035084508845397682591093393671221343183123950984732921145245571451863403844860138802330760224172520612534476429475922972107064291598823337760270797692269927547953633346663734247070271924704751112499144713959120072633564622901310084041758022734808415853434399328034455725785905728806045183684227954871715005242000605804410059313735863457642077294179782450811803795800485946987346504335152552657810032670874523229375807182793180173723552867924019603023962325473894808834938097477882259918783219136101284251460140623674886619228261857945773664187960823598606846609119367263858380888703963672040345942863700560559004725425832222163676652205571293428208608463347866461074157768911434113889987960681674212497280591496466856922545448411492968463608676379689722628098206713117973500902395760932083779725583558020709068168169632488163862093198896454461553383062308731700465297820156663075243991873933897743982399171118399710118144804519062528300887470948535490679879135899426579581110359352958751489786031679499288534991786198646177736377763424785680874783067731430273135029114627704288156296205954095812694461301436965297380759133968882920692323582911379045432891689135107196468863725729761059317030714480345106466505231124564856756604239562432311314618296219159291296609005850245384930156756603148196038493827215986504692659574402269487766884540714854831085581708556411584398588398396997993796437089878785972461835504068464710633734802375032605401913342513024944426443012213451451951928555691317804371136885345191677333081185278805944144489051608046038477830778778749324213263513952140539290687581490735754743424343429775827096892593885310893234707097042912017132332377236815920067816002072284056244970970441218844455478022112169502046741079418234563653035979161031600549907787324544860153663476659680314262003607255687410889709576150554344528663527881961466422058757934281217816962605136171908093575555088132155483593544106154449759759247866291941754914059527320568330404856997023437853077849259968077284126731408234237964113719075578004706809514793401301523729248050230579345574667469705332765819949794589808007810970118717456067584887644866729703809081296697678482643334730786440934672244846375371285054991290813863882654478238882164037506745727678052876777096434333010142640066400625673522488530209214937514742174213769587134250212665197470353173411079896982474770375238591523726437571006860349312728560112482921529752042268115387846456726418929585090514947750676784852147647992345929247799348211674761215559611011997266393387569358039113808854525074642295483265260077793046400418522324176007751876922596939956951670120664803740102508463900702272479080561716286004533585708738025011425015676032858387867158228880167017087667767770891164201069258031874709821686516107820673285056398352232014346449733851391966080971500241291118791386079539545475950209720167972016533906154578367496892883354728523771947825584855710115558756042899495691305342612213618535715050701063792698133219753280035763424594425374164239914307726645193009956962210371666336719881242295482740844257053613811087589254587547376731472793365850841254632120758879440702770581227494751568130281319970774544191853653694005573284875046588212471511436212486514169869347600404734500896757695546185915432375522174782570818555826868798549877377965049674744082747290143615776092625030096761773052864923530009926176377373087687754724692103005697793600984310986041824359805232105146140362171882610519530777159469986798238275075736910555339367773576763514153895205202313347695061745946397976283661315569321388921460623233205544385229379409827374012997904168839604999794137390320071687788805930520318666542544624010664901861587409105313264561631503716520690101961575894735474964971147493419646404656936947342388331202143210514134063513009337053200171077085993843940961796602047018022382710673103418694119652996485668333970217837583565411762558440625247899038310547074005167882804556244074926074181442149900429529100961664577039932729483527062268551000154490416535137282994567537028741353882376507807952181297592180055023245036043728148187172931178351724295696156700813393712823004356134650303186681986855460622005863943231180072862914682803319667481120353969910633705378355529391049159729726115961298957984868921418044827151909834625824830114342244018636406463900570127615600504438496083843484489650466395429580321623148644657514973933109537700837165790385480378488302114245317557058181463464896166334222689024301579255659163183909835943002615972163646773820792513000965537938870651630814497650007482979127817105215432332148662671884828377555566030700802786161146289357044874731426862275198279493204802725876442543210837456836890442216703525574564144366754641354334805815165135132966588037451059967604884435221870047512448518825772444483866908888115830206140033324470812616135839803870670409856572876501953680785672121803688485060163549668584485226538791208319528416053081563207056415251497506763516226985103460902736270725526986992746615876481314058195798063708195934682216328362672240125619150644287019806117918243301444408920600982480607975499369855938217457898089219091678207105745360893837198723091866542658881085753128322363546215814851276036585120042768573617818808505505814019165996149330674607388648894337802811952170915255992480870530881879988262158202832164451004950060249941539448515637324389452565206998024079592795331173231708318660519810924118448994004625365357663594194958622615084692512945431788618388868511268223694928856039328023917421711945508839958025386979078633150237922574713509325005766870563958948762111609543340105324093067305515028921942136323149083636811437376666692112154960337064348347159730735367865503436403388663625498658871079568233416848066286284286782892967967463342980029041367988727039594560049445997942078032074804655042863810929981390866929973605969360484144384662489018128847330924688034904620282559706058393941480658717458573276045750776345341346102838715752352716546422085878257141861239352689975307779136811350723551822200029746298052556874799218859868777413317248449554008636400051753735495021094485687732069794544602759963547442976299506093455568984448673018605382916249724259415450930958356955652413571795390596061056883992724911860330433005501556567681877182421680008292939888855300691767653643012933552226651252818377281865635972269639460832977179925466070513492733986497918219269965189437417758595002289091597920364685613690045359896407500365154850039003709776460913884166599910528624988016706260933936646821683856056079488586342287287055359503250827724589748907925878987823130081479642507451891575280960519556983546936224421246611296964451000317026577708183215664412715844429121439521967804102134042103264397053546413409531284722632455781313428836780432797811837642433022340739999018561742965714251915544866334708094819803066252522397618176803126815845203623153352204304654959286735065641792109519737514909316129871245221048112895572951018869282148075292123162378647598731139143325177725782918689650333468297248539714436193286784414995954388623336909840440914498576085568344032072805259811000248872583949612913583206958615415851541121126811396489216014115766606589843847007452946321085433614452509019433632604437789342954774207075399538101429382387982650122445665149434430852175664267246379788709777830486244131605214957224747650138006255130767783423993281155659285203426826574799856110722770730548704473153230139721037212519773527164249227573581220329702086997782565185414492092297815998352726099338994273378791780986065863083728367458941180231355724305228970425341437416970164497310270466159039549013086658204240501899502808897220026396879941702616176457430572370304716917739160568713779438643233946138226390894450965468540684458098957393852990244606350364615205190868938612732970461772238887305208977981859189424563577997059525581647712652339777779366114825748289581481205829206418347703135070660180996840674395568444723181150954780955077299951090496315515733994604568660000768972273287975489407946864934845748850739468471695464074321312949044449023581991672030670263787855552455253225840966809218559583663228336932892141205743499717782810270942413133369670471884801528686318377024519059869461041764614987801725880653376683927142697217736140694700552980223518001189604882502083313727932855534405059938044198469696836440902347762425825478819423321509628534554735383330984161995403564099344934319541871306411948600669015764215009522200675641761758319319681366967904555236201200619595276902119908361951305779763860236971043398315310206295573033117478537672933304462576268054270784667475625685886578423997291171172904415333832196265381676219966131693158893971321263440331401690949293194921837200449517256888040187167694131454176628798773622377812064154171158203379991829763023539304155769486180207895739962165662635504704432396065449390115993779946301852486795330847626554638489238147232664822209123583376518615494058822788699333419989047236882483623541480955819137937301528703766951545212287414829664665899706319251825587459539097123793065803574044540334621308862401756170811315358071089725964154463905083071949857893576460361786665216565009857214946948576985473882488625901555243233334167407240221016356020795585775118811630329786366935251773693195474553586955569393769945083522123896907389204841807175918467240637394880823070042719442197148213201821059843292669525980669615781091348028608205648517091946254502439217143129504623205161347243306198256491975510315626301352563499621243014950511889523328087446383178479800403651487715535770062335057564299780866309011680328164144929801534121833092230057327933885360726583237379136131102810378337792242594144581952384462711059402108036652670827289596955750613384688358605895271971336413466180950820191979852905082387771658590806842603266346215917885110459491703760768143239411058124023257732471330420212763011053433851417095107757161914740454810886286653276912530945274504939306412806654269981599612780112252457978154566063592803710455401774218476776893324567445961172739353612473317258787151246494350145573444647927040462240033930567651973434720328406341166241018318668535916938891393437706273781562572837580285629104121320578481946010356332074281021548404950731783887185487762086616286898477327652743484440843729859017844365270273983354498356137557756424632041171248450101346720230452100610183223816037617091091622275798365633526099970680695280551199902105826281308206002545037588481357656927809834316632258118151280653690177233380987247785149240188248634669738470777981891895159163080317662453852928805021370745405955525555129114140431902058898247572880002436023375539859503355876323920873988117244608020374747275594081410414359446474113044156965727787096044149479519680674404679385349567527581732851023166990601071433546686475194678348450559658091362338930375354182393859915160564615917940832504231398567610486336352909890820039170623439228208311540049171117875375070252196865276010170844484730874021617529704264572512322283833325942358819159254720924348946777403487487734444554592213709099902954559945300392319027519450040416298472506774531649892149745916927505969761703066479962066890392662911122721770548690910650926324879360899421730631497494132091727343181844741061900376213862626117259084222328565785092219185273395544107154993760971692272071831409150654187473614851869489787739884483150901798147228730714239626298573829943798867915001683691443155648499686575194453134533878288286499184356170918105066134124243079424981581861603628200983631697400877546785373173008447148974635758439752666580421603630630136546424890192819110820267505087112268471909081193469130371111884049178405304956609361011240801436183145851636185366888791285234872614654787133564724782659154219764060550405709091393922691161231900627035246500171283137873112220516455941669790788385690892561111656783941147456010360108601541586631961159212964228547559971787142267953552470183198570104063179309593335925648407769472457005025598056697170881602185857047368831965218031922356706502593122532646681801145404896993879323994919399498955227681920745995218896325423800131131024088932772893276573055680477612609274578480983029013679852596396205672400875755258298201630773799809830187569376118529065602499932188595837482372144544212561318333621495601256315804717744987958341851151523618510113086930664240358672400948444243719532724135366445494823203705862140161676858057231841880296813636119759132687190431914479940779291287277340205426662169239534655498864008350082918340744426629716044536889804945309368325125606594025405462649458072470328014475370746831374393480616371475812848570109742937615567654893203806565792539206561948967414069265798165698157244205997968420839018386812940969685101393399089631274937229379102502298980748026131591951715171559883373001413537489628396595252305310578343631894258610356314364381529012465742621568118937519832468272652388883839042811404915413720473946107395578057514341547676863986000577895434215817497611124791758821392990147514934555518804632213176340940090147280063885136834146287741923466107623557940012782542773958921709132532708520554757924079943623141084708417672604412997933631544954360060959346551181542993448817797328875397165947842837535526028446842024180475686471458863493749589137960839520607231427861303676633542797775441040194425557638744553058710060215181501916425786685917321584190067403134224912389317688139416237642237064521337910626351047985903817174919888305994274455152760855442680792042113095555516703836843081222720021671006793101579795667088476041999927935725927808054014847703908350992985750525997990577720465175689475231632904448029931926908911334197385933342825817926405875988674572876915323570641235502987964568384678988132740099688048708816258220301212457272399494153625255570891165757365344199886004780058398628167275215311924818909434416903508940496506124874757032630233991995132225930417996491065692983410384046035203921363227237279202462825876717260394006081419598070892895597078732658486975935664664214509280172337069237258380834384727414280500382281290714692279528708408750061706656273943296449503656551926867731914182316505797408990926053833972504109494623790314500400817741280041939388015135411019942080255655224165648723290157848676084186451465258330010925175876178366565539389919927756510073825934183085521207050650493412287510283723688685589986381023752159102308452747932714397413873550645169838267326800975011448326253687356157139895676594110656734719157041603079260793175442892853901865138658161597934741146969852478482609302229147507833343280826470001824172657557612420885002015390412283385903292726530831694230556224843831190654625906295099117269224194534910311586678924341310110093658578229045656233909269773909719113011161540442799645869772471281552445369729660427030254134289110707744927225015178745205881866105725852324718452434557767902926201981814910299665567318429529003848487690356377453468000586746634166470682230628399206195797209489557040091473370200217515541418566505016751441114938242022371224320178060072047818924028970835733418334012550068401786898098963113648972422057271298849744827869901622764000581552111481967237124410149940470552130623234870343391806540774532199920316309121711194203615144876803464104680267624981906668555564779777983888717408230341746809857186036585955852093451706588623449700513627820412741533442535948901534746965117981138626072539713122347486954418848677986531296370798422425807795038913983888884807786034950393258501155068813141402701543086631873519467568505673234474478682413721787070020763757340173081396193688196879067183093928214203833500850653400085166764898387445482567040240157844309607557435086263684275561743139490626072855407210057006445814249949808569204136515674721139978339056634893147018805051249457464834277071102602991626053357638431535056401931655346475762163420626683157806815966640889314348494520953373712859909932321818140409461471746752204552978579736820684917847253808239286233256795907411461951854058190161354303559477103788413677212758253263653331180887962151419821085732000680157203650092007654007334821851476869957466121792704501073599723644670261255988044718967610000514972522789877347697377960346668822660575571320472142760670106513052367291157298726672487020269158076809434793350037035114549230090574674283753143998126290839218692130991910090133116597122819298266315868759412995839676400276885450174158437606799722268760677124404150620510233809377049403865884496751992151443993964616963127208457963513151676348370105974395988107305110252365561365533135377823753962043330810770278680395162494481570054546920714230668342708481499974799004965429165243912046045960988583653192883460562920106614131789767181744058541707585924255865039847143962585696631594195331895979692307817662745266560432913472437795178141793619619666950668901510406323534762042479518138266657169938232716848881850929346885070604978537272033439303247419712622736791715783639853188919061371436090690387136427957909565088761734590630650412679467406666970171149955499074379727336769763715084003913162675510819050106042754706787592184645558866899235317157628434412407122611128382083694858143488153688236641105031572829525893680982037444843926145600674695568637842537390196343024032196915244749736924303204065866252727745169188005111584477741453251480770073891878264876136716568351640100446961623800922323209863641051406731095593587679573010750687882594248426802278852446665613320660513835321183650956363785206656972671497276540243458684301733948788955599632562520103254141012992350966833404276438898208667822627047331784608468999792459230866919568203020610957419945331271045483269859839334887453181621299821710830947663652629536481455057102832222471462516050641026929115911508485325287539416309395402285819401678039191475803026761992622552402578087141590942879814128012453891416887927545293848074655759719602228530572337157316963036547785078633173264146468576119912673523858707163803822941213369689002334152892216229071857603802215491247818967418976067203268806326015765811334513236536421499603462723807106019885644333371687328874053644711544672643571518716831214081153049604029124351547737406588550762677088527932218511897182460072653890679682741505998601786277747579810351970321180497198839782736443900686627515531685862600565295534172265912067664439956061544684670162804670382325124159756486618183629624173083705500422150225566883455777414881473492778432938250108811158549418587635887608076778067322445837330557052043897681022252863604781071128152718015319581541399396046201278904678981405547382909999906743888726327036011460481418569759112655715402243002498485419163041614647758840212806060722169758395171390824459883850284955722657734834238709274838883770420586366525526335252400415252846620446057317552247367295162512698641174502015435825130878518884145863472683482351652544664424485030074273102222470429765859659936929584090209898279542775037835885331830856267942113515376543071110639674741387331233396031018548601221844812116895218028642163740574255451971255140815890248589415625830635585967691124453848389082002584771076307707856069047884146246230507684053119700364098070166094352496696573709482154522999576820577532047757648527244339422299444329514436421920649426548861997960260666087541425909159878327812126270104330120798222763046539729028700452818292115037474912458765963798458706940062344093837891924868580811521245907171041679319028729386705019688976885733501339770422650757463425572088316322621361252074309432331220573746115867622656621324416823502516326939939213992901026042304086851634506782022765981376748713840256367114959903596900041264612231548730764217578088164527532396074352401264256179353536567684937957053959605514576377606825219841955477040303279119942978700896116384332082431350979390482072981641356221602778080094168025838410041215714240917710815909322957202686305588041309853126776633897783743084718032421564801291726767606023143111510148829147878346912428739661610262914997656182941071174411198771576106886149647102778969503584360674630864879804455376570414806304185099711070096970883725000040182277849288779173289635884051933873096969348602190349536438851526609333143559422675007143596696694260271901126081156616613546023169042459375287188075502730880981827848739993547765754210649534540920827060771948919462412812103680091165650963262323615827818434543813577708250474331763466258498720314193199909069029674925864738205711044222114875861130915577101534550110875852038693769923136736755116620919925218098856833139254340354135333459308088422422541886084064368866931150937904881906181578855192673608355145550056132443685530370698201239306243923301000277763922369785302989066038799936851939416598137050253264183123738136662409250405791567742295233631015035003515485916127386874456453391040401357823272177675825300884414746869966076515335280891881516661916427099525438125825167601888316751302291594230835364171955839427863397297703501385528394849411032312997859754881435051761325901053230296598792013068250336397956330472822717294926087792818486262855754064932638470633844256858204325794718446443412468980866665659324323817652742894027258120655308677922579377658553256578111777181636229047234729078078956971047079124000514941361913595680275607407675858895846064336087710423143239152220404888660688720329083771468938110531503396021909414603753912564612774777898456937440457716512268561468085625894821809389539418612653974543972035228836685994860246580129196129432389468552895854922251696633256586263785916083686031755558344764829419824112329960270319813362994378060354737740113735606361664886433288799506025269063887594074680625824829668404779358078843547971071272972419054302310117634854758223746682553745210600669647914726554224050521273021867159097210092247826420412096525560573489843390812546989821456960692782186899560744187700355983553715255689449210521465178540705267481152642761347669274167483647009464959188765224840165824420182914923633539996996357612136493927039890712812573832757897770079284654547837671874641852768015348902608753420695917619643826029558311978265190368759829594307721964132988583177698874725191055505107202323163913998203522359944142313890628598133242560614355561164603650885075771240192690629831936214918141362268731056687680335677927477394469379452570096581508606057920902142944883656176397503005336597749762769216663581437894030129210723096654936633372692132114423178496805416465956556233955326744859584842728334992717416668079002407036618449659055999186775238990657645290760780411930729134526913682957806164977825862013790924545790576930654614155056490543303551881917893542774004594772149536827926968356380563594524762939612314954010784213971670082522257173127257349173553319604852513720762820026572986544331128863621970173457790786570510678877433406531679633310771461816555599940051345340916094193517171122112655310318663586714873165045909753581181002505642031079022211776407880728565329176200553932884270822638358940691919251038129504810439297237786531257974229640418767707480848632898086018705254833713961238223617817879528346838663919095490314183569545535571082168024203371546756005623686327424136363099440984667469473746693749281486603693256251495156464875876536419938967965668490572521103401911539278950041911970974210303661465605788588692063745740059110202420433374008734529821232771373394656669491128522184983038193671896172061383830556255224872897922343007806432929638683438619937124476081914670285218357946389230970530502647563442953346414109518921622227700230986881710015232330180661590013572084474100371557563745299156349745991965894020245063818243442653514366407148207597582365953576991572906535185294826985082532119914490074021439108931944914252393995132583088062062623421632799474950836219061381457378415929754408194671181180364681002192822921183021657743859521128748579919459169921147258242723425103380394922871507426030879554851619686698674634551285768282156078689277154283055954614625559991759781412707876680135028486307563675130653716923132989551927339855624062157882583565217770521461233467540272886986723339876880045635161074133546688634718209364929125412668389624067626306220927516679241108457328698787933003175872155530814107073026636136377148820391617390479558110362693714254441026281261699101990723439936038387531852630926430343283179748130083935331354485662462401285128933980848332757277874373420250654343483405266268441655351064150202168032700929581034666177188703653054426209639386701446975860746626433125143227470593064118436221329558913922045381821584538935776077614342200025445739312927922364804210814334520380211562214910319640204553029903310325109564783615537651934089430465239346259294288520122274105437183449560749750568887872084430303326097912927044691189296022396462677061217650792868963962518030674118457187293549466746435972183599255403735383417055733232128528311572522791163204856105433585518554599032281968970488603149561047075717618645233061220380250379650088233929650778878165852428307167296360782311778684728807908972475518510677074550935432453634591894271186283082245754547737581960654090816008886852119732558684233847215107267297515209696843641383975714928315354947558025979550008914697106614733398674605223616738284811732152846609683419307141029898873554024460422473029201253751742813361645988383505698660216465966883412032809949073087118063988131544627195882386096711789065063169181839074560779382510857418265311556212193614779303230803043574710900172945865241532699524881133774262012885685947675063959163683540335497376129483297717958565380731613883511499628222212598164469407353055578726143254334116762532064910279861355765146324520872272753944367274893237861103847285109296669284409851066195674816130183945120752487418026128991402012015408196484733686027357698121605228451015841487493733898059299756399905959009392564749224377749039114235529330842893393620848285185672777162289538829176804607312348426352433218981716623159319256638220205440460511981894156106588315880580488748678279167610197467450392371170926939015758726857165298524726334164683264736431565035588884422719816542060802190872067229737164560924546083601708953665890543945546179319040118016857539718487147724222521268546127108000601386457850732375682147056421383140048064010358858184057558247927349189295205733953808103232949115651114875167707858896739765353650829522131818091330210886393321999662289142119274995234829429002683948979724447117960778545611201953925098368751058236939380502828082589156066788685550634868833003305500042722322629915010287480897720863580966100896191067755870177165455607904590069132437662976868737572055180330836042927930192073051883571166811196421564273551868758231642589508073830156926094120660271895057613230455893417686325280482191736684116239682874721055794423023906778351178498269294119682537467913844111235967543721032031593778560602716963771942800542515690718981441649441384327277385113505803807874151793309603014707200106759910306959839848019554182577532068850443649874393938113891452110209692708040457666285823109657123586387754907307272471555262541911756008969288345649808720842123274715240327590097891207628585231968730065452905827298802891809775548642360414529103505168389999338923034635711214921148725636545290068729776327452102614078376350966638463483058362438965544825914129571922037637299095122256933208375683743772815863436921452268435102608427146070255593109565181056799169755080786967741377142262075075153706393708556638407537046552634222251502062179447090057314834144911816436511040885524092221482263305051992991338860890492454895172490926008437293674156064645240811210256240854959229079258023706195997791833108345745586193824053897255497862685638661738096393638045723295899626374514679455749428489675212566517347417965032620534355289052064124843130585404226347056469274376680753705557156576459812743558095563593222899894196122426096961063439157316833545281944030601898721970984614001335778954760766263149815213406616738208332133677909964621655651120336176943262017140897517028971036309576180339280966796311210161225226844442244022451193367903732787950311282588131584867054441928909301793930393943542211258222173358529752934205241586583057024330498249779892989940268696114690129030617037083719678341474854947123134519600366922242857789094203918963883436089174908415840432869641676678484307309403159817792205850549834629055623826041330356516809609526364599678239955754766564060225261014049562660806340663905939892693796000026883944988181075309882683046567981886693322019593446547977298959225496298248403209953614010517349135855613870656757454325311040466618380569243448989168216587738296091902971659070046260720666942630223936400818362055273392438779516734992184700354933222246625350033088642212873168343048290051403283808466957674705013478386223918885639986251717572934923047283447759106071409256567476417197278052482860990523113446614413952855589381628154382924959601780426391753773674800078463826508371705054211921954812201526416604645093883922197434482002928768543206327383692865720595398420128671041556324334307619714007582159341330686303333654460317785326957626303706146722989445278343009129812169683333242462578316718116600556907048598142597411413317051384066084456205976333602419320955083250428122861890660943851642343075549492878209027632116534401184993852824163575406555929710084570211718716140154625950663620388891401916812642551712571216359658995359252711452749297745377223259283088358148650845583638932415151787460848118084518355053701340109255362233770386963406028241251087604265375802677016680075159970982797934486262542747719357383947329138181491104136348094435168764290355658762500543513585625599864423365897436154896409682195471272777232351250429743635909781901815898296933113546391219987674119160750640004063233593538993110634376626131871574579690363480324572862035151744562181150795473033896773100759929321665471300003131136006322432170633531012606602698935659784643141679336513705643544983217916921757058007734249084931131742845618209008508159234196050858596885960453106233440157970286709387934963051781595881816281423958478034504937348818163506697490225961078414955515166543776578542628403219755309828753854797896491116670672583480600597541916022616727740503092774181727530478847365845209481285797959475922494251706275246820526109645912697829187201738793024105188368397104336137578083479463094410473561281903174925647106657716919620265627042262032578907872485995918764395992276193843525438122455888428916130614954400987369981890136214297889712914022264065439267023149047138957168362118634927128802755580120413866885928565962486787904290867324894755643142049563416582966449663009458509554120084405810443270776913086953404832846408202074913993394169873589844545693746469974286432808879894281695852796889522384308380661313360836919125826608347308828873138492802089471462842135432619413572841991159545500672770062738946335922132104949117951668518852127560924492634979101831937002618947016747744103524669566567999176057644487105862716547868166004745366928481097416589445612400679252318263479770385602432380150728791120934368119762144175183887055515033959549444700743806195710938047715772662102807088655618123743352637392072469651257362688234502724281884169353187953837186624333903202845775707807366201552710539088006884782241779503426574708526373060331945586691671130178523736767337846178148443649277656954865284379740459084975946227585839688061806278676902635577395205014725033673235414777208660699334353987678099247002775922309479995383676878946212158933983661025789169826484485923309673819815868649061410439058526257306460149478644913576026703288237302338319188479649804669543658200094957647738505201091720165266411975386572436990798948056452755982492866891594028391957105345462788944593782773899900281235338879440169073988593106287217559928537466181478655823360503166645739422322888806792102514891532824414052102786786059632693897176924694866617039124190099249667206643507457580522795317377544050869224249056666160658308735314941108845679494425064345930124927052104183728979919699879976424033818215903545987871156642563781177808623293027880780820350346183431295344510521058594125717535681659291833990805297467069625053772699863746889934940507741405169760099598880427896144460480615800838593971976866620972357915877724385473179338788086287584144464641260032022736796479975669679964275402494174119473482807630061774329106508582691622047865444805928464000640857137021306510884913213937165087881533392267525825280798050522206998100277015039124553952140540774897908668769460982945142331960666649283998620326307526087761137316047877878056653004894925568731888531096219717425296928705429949699942763457514357839122904842783005809681673122267887445585065878637149261131058378650267501214947602678459955716973050163607886431294197457595739734756101061462471000625249547612746434415829657314928495843782980346242883567236118988365770581191030874244463682839787774501488803286496625089212385117150112043262850398005619277553762568534136994381735149064480321002108524846223828487946833307942210237141451032109452735039940698780088506884069493923607215189341901605406064279150214124014587077707140282536200672812061048202979306743054469118620558338416928991738265121571621565332824946956280994121703530526552275422575632390455671700463266179879049012158546317548286576139378065045803562903487659173168628623912293705201532598422143903766381276805804310176746202548570066264711786863640799828126364330664087394202765566699988216264957738785626773796826467848647861289381748385947397734612492396450375306577741030631307215251787163652216773239465083079352103537292547864152894273965135836328440089111134766918793476269448288733916354152824105630631346170821716953287358830295786122639854734189621342402001010233202723445708217191209424220064358568806795031890831929470256997296484879047972620499184909950663302764999748793106462665195937667873140763653319434444662240174162926282039417753038354728413936045475735942959311506327473572373677741936989236194290841198382950821162016548119443595527968791489792226932622885388308297691676267007103411107139114437181052313427262482740159498687511670357965209648775555873865990180051341607189690447869480022248411814500301478958558089646510287391470962742688152245826704674689863123233407121166134496099627652660905358909916869525291552163477079798668663751777926352746475251419777180468076071176009747470753101495057212665059731066798384458922137287320736454167026068721757011628980540969221765979777309682691460886415895399044831984168943582203999528045335023017320709252727362463053408270481838261461096188390171839828376662753825260073773490265591513701009707451912076918739542364772937716558498807319384753867270535156524605627089229808957250958324872968706066960460015664829485491442190521432240641806162598876204063358303582679943239938756744988718017500636310923183490235447565634219875363449468475690809058166160568362057281245783870478905661712665061748217076909037947667190031844839892227351547160383312478245516927185868862304206927966574015044476919690381233284363618996882317624104444986891693696950445723908990293595015573791995288873628759174522710554022903477375213967621101502706575288798364218616196451328060111855319290959689718318827084551240714970067298872868682278800855257415975913472552258455619617288946077157416300781886274410670347183766342822713424308440294743550005515349706792889432402825582998152979936272695442856416720932301905390116837633064117936000464299169295517673769389505579748398610160469465256102196726121186922311627442326440478241177884389508498750544620316529488689426307063803401269165022061551702354411261339861924641904345035084119412302763603113016837120336443402600304621439411819201709398362701266699144557770179821838002089535114204140395782454274475157198875481966738007058805681579933132905561833879356012081112103559730216711703739682524983874354898504788852737275834180137201722416878712227782315400402322914486663168961838369787167104150959017154369421934719800354393584655021467771111650453732039799512502017382099057776023090174749682501740788785360394873559481512840805166070960010818744103994746024876300915752729405568558405179250585841026984506333005106642555835591654970790347785307719369144277757287618382063380451424486650969414058273086673497835897578841885770101706531768758485446591118603736389181899729313717462014919837645821356088273978117486358998881695698647239176880458689138275501431262128237800795385169436423985249661468328819878135459784057364180596513346386884115486440648269227286042249334335222449515802746305144953694315587263880470494969025929327824843895360248280665762270192902335665959828262600997065410327580509504547992547666802156503749344542704360293238846375673385311567677617265726378749317585361118375905308807697224438182051631799476619876802924838987062453299300407811480154325628709440072238212670415906605448234804310378928163730743127786967239736362713634423080757100993341895292635709263628159842527497842960629033038708152798207608013372416855304301897079546577463682545507375157596031873931589778613969818734434480508178553429168722779319339228594497632029351456364133125283964657544333160325183941288808714048941060097465699794406290329333482593352220353552170045197694696942507626344912849677685275281397357857090595131719113386027109222929067666124842998832764765008949234693306531618230270403265924072077929298944038404194360975173530138087149220931229467741851825003182201895533217007954188113552158007325403169025408292573267071202190501630728797234762936283254350276975142242014574510983342908096347607295792525143419717133480224553764519645227858467716938759193874786620411364880272640557728627934294518223455151433703283199407739192101768750333234916333296362577589841799169738520599846727057197774256154582062873921207541908491390279405089003341650318815779381325569500940826609231761131877328270617519526236332504334469759723055482321510488103132784119497127240422177777779118229009325208697848759929262034341662238131233611210190101103670729344770651472709485195947052659410720477976445163090439969618237963160798758620606715526108236609203035502620351085789101385520953391203895965616772089070020199649626911863604509474077901086604006318733066312488752285369766855815745961957062961675916097688912076028088081019810791769044543275273864347075605008400781421385344679683220397073631647095623214926346903492131916165717847594470548344194142228817675704522547874474081091367364409410131371284774290973316544515160979058272130363064424628946534279437899198968677624829110656485820755843158069975581354079719834361380015750788310997298835866047031362933370702008800803513281134088948208729045446812891733914886038193768925102495988027264844475443319888036746860519205500779893909423942707823448979142946690801345518825443717474366735871510272710856892217761089469179971301792021541814404943817835777059645103936043896323579970436638000563355076025460037746400297050751905316958983301676312065986754449903264507382426904928097559485242166669458571915105910409496487689613276234988526352621663998828620748343617864078586700408112688731476473928008067469045671718659065249512664320293149164779071259931930877755836691217232513160801583716422791513245310229757327653319872985451278519610511117863117056664754809416397719875804897455441925083982733678115874961712685145762999076779067886124462529663748568456507668307336186010203350655282615132635426878476112647479251137687945148551279650951713310847700821194386962487116198214787330443833934113354632465163313730900691635789620145322850699253075089282617607311908700043730764500074695109269046060093034410367515985694238248207540691030290956443358455457085681905859280801074285389625955983661125485378642852952358690656965562801053339165403100744229739254098754390292782489398311524192362216692949215496165050660506306764051316115676808771143492418957509287864658680043505756134542010733869554584941614430490943390187185500252940422626846229394071088259913182391831109598584800716671965419214016424189333915284769224641675242306433172414307174494338988690531090113154685337014400857477666169255896256314050739107859054524500340042529228189602483294948107778621557449013044032751745908420536618896086872136628177509587937690319678607511453519267000340819863842822222004276938446818367601561616864015314623083419120824861067325723838060271283856242386672375654394445290571973865578112236453933749638987523647470957983872637700600156475369151179006536143069573584324980853856092899560076736257634393779986602192461791465446595591185422929525406770303499190876687159186545003776108994440158285771227135368752608914721089710889036826981181230929971819877432009345997558887001474181074472620553643754756665992370002999237527402135765038364731655405219550318064852349702362295551096638928725634000322098914260386200368900337720913465090630534173216846569504299471412488623089715504157436992370849153853625739208741064896091706473381816694061675960433584547304599327335220971915473460085919623457734772462898370342310515936813968977464199512148841211267363839513774879218090387324843068845895852727444613299266184896888902345505734857775444999858161923171870106454153716949021642994121085288221954924229269558835813177823718652766717048224389737508290750774832442530809410929004245830389974832569270367296407371740954591710623680259537525090221947507503280626459916041530865822303119419674363485965935506291405375056183977180090757630394692200556087210869919399927027066125937628376081103185255670704456821481025374280045833002662282616660052426744259691028541359373228718788928602557022930562780459780232194920194785837160974907082004842696036192781522277299497536534580367620270111466359768350400507935015055273532549698770450716494668436601301458227891078570638823856535287949178916813450799358823804057168355904580140795459537225232115392459193886402826516677988020105612784957943117347359963294935321542478195041339066001465715389245891098803365562364747122822327154961806375060279197109649581238489969211872354814258257207860126088318853909325476499441237767821222631162915081758838066108146353413725786425302658673098366931252543715939977573218845825998991025495491936603241918167981604614216997398694185234802734882949712411602650475190938358935509290921993441179379234992104945690897524106354954815423201269256508672374779172095549307744414142639321097761424302133163623778281366599643865012837704394459793445761811050914419598935301130589442492957563912507591046235403184980497596905801582064217175617538785919049816535908670128354698381243842111710511977219015996054983186820399953439329560912695002621341134615424683250287238125834090881220451947870375290564523673917402896400836144644681572178474804640604914041029215619434686952987731561478957178614641352715322510281502814965458560055747679407763979232372031708458732044946220195566300997986298496136101134159032922790607267920847187555259436470119615462816099085076697917196121034718298595325374687637608340633000870259982683877684233965063587358605742484963223956647499828966370218293345642163581781284942419535169567977857746028652098324781928298865542221055561756948784957867586941058087921390611655934811507570154823399598400722895762952847565075572075189056569916612406501329130747948080659102067912365416195957547876492287152228614549201397208473606231083042069096580674987914480602454570987387806937751768585813785976575139025286520415470594622741180930711550368166555791786407679396098484878831648482174408390166910133447711426530823604328790629301655362492283775445365208068119955388170976027204053263402374264492597217704757654654226815495700979547726965534537043620379589399073823360283720280957954279090007951417774060103670019935455884634971267307176666111370664173331821165814938802023652523457302337341729393753605777962386078634182369918613408115297321711051475128583668705828793516048766525783349748220150108135946761686068895809133398993358367385130934942758009111313951063406479420271710361627118263621239755169818719356032175818869816633359854198920183640017630806584900235484094316722338631512197191647288934529086212679926350340486382236267561463881805440579111885592201735462621375852067868448383861487857266134061984789391911562540029034848853066019347249761210510282631973255226067246838873263382031458168401694791934895308988042337250806170532162404640061710790438476584353006073881328808304972390238217355855819380006250080505238807918738982879199598431005476892904097490322608689067836904718463051306059409244511625052951203160977528998382871410197674867841982849339806866300592382960672429595031027818410734438094702310060528945190639462193558301543012565465529622881916508641618748269983839464446264542548749885005489630679686952074370727981798228243384470984163326901061909833183318717076494496803812639465117852735254908094023318421807041627101257827014158133719343866791442315200168053752149274175524967173039451726145870974946641131378516569645560017667802762275134400383302517095712603213260420709991529461597681747761361504515579252596375424527480489987121233309791207389900266779234537603245633824784627611936538167042602988791353346001621082367912168934040141780382521140569010037465611153298587969965406992547520636287164537781948474978130283325350192915961649426763616076677507761535650671197262053160346942365405676042447334786486493748125007316778856468278330086529422133673930969153525730592314016243409802079100772320232897103391774748736846158927069333326071832389347535554792786137743286915945334703510843390085615458071121399460331034356506707841911241394675413134279085106002013041195298781855230216023211582944623112143110627122235696266899763122470693554200517500915556344339494201314938417747687852754644519613461840374833623867395782066660805414558380258418373378142002855273939626941637348095572919947708179033468909169048401951410065173337297834919457599225351396280027775008433304629937168452104305456301186914580356441021771615944847103214330226245590518673340594145110957342404490158834870113074502326324592860096735784440567325210242672900265386484651925056320142721902144034319561399327515986492297489928309360261293502475895382594039912330274573848840225309674599465737036599884586743352299017832142521716101086567524809505129192632496956959592450188086132115930676745599666178278347430625762913573734202312836833993154438137035485205102425894210580492174576781343065453660450145453678289474227109362813919745192950056090508380967059429331525715327450735448668070916077692233222148625525708426183269045462672940280878067584210902865648962499075105158570296405543696521455703735152008659291667176483120027395816818838344584572882972972433537776588833992834192237557385297414558921550861950935295685503379850349349262953922878319370352961631217803628773568975567123743117882273579560879003144330222252247714501287954946001305276703503514450712536780181172278250031644548278707121692182827566347149607128830399270239706070498948825057621092875877617435489413813507319114812172680281864863284107311994037611542881682988800092829915853542453951853879791009395702447378569505658931084787690567449577566417972634394701134669473555894816891195850245212509811036330195098519563110035690798543575978977988198687166464388876834268079570178404098234865333880661945875852868185814792335486065156751859996637897228687360741485181836807288819534733983617177879752079192628986943804590986289331566305274621858029852693584975586043416738166050453467199490071183895184954096710232341273685319034774655350628603217303965299837999429038824071262069237505705106608713832510238424578273684558325960175335673673067205886735647763948289238265708578185421229198068876186783443132913043081922791312879984008925978152445801792647418302970078220267601695547535315398501516023711301828362842614360464267173053122104988421275170973506004330832949126010167277441453850137007753069154268743230158920132894208111152672184222417890808215696967560018380701833417063975976409816839353611754982793223878350549125029854250121563612288272986715512512606850851216262226332951671738432996547355444615824055592191417431840340621836758239466414044407046365067073415586156075334151173407584053498626297161264462667280882747310812684155419335100079069668443186327526420013258269066410824698352742392080575470695087392306184161778970646372261795114411196017774733567560194407838902043774990876148664000822928181105384382704696020066398331662989756846142742167598044062371578533776185717956520988648422517528037763607633831523248345656306548512694785556332599918775531441724291927300117763424550446362386289778000506892575458210367369475142538581755339363610440350396321149327029873116594237700294216591407077870453723128884569367774054170809824259716772223793431148981624280698351397696667538013648138326977922039658699146665101908687968088571313901322081246686022813127164007838012687384737286028115498706501365992213092561224474815785621312409882875646071306667571774674682273577088471633846242769012958929897531096520071886950656570078195658022302593467866391037896342487785965088662719562570009771499847155053448601960220067091469590909597768157658895439860905775530201428995472481177239393337182578970969476053497909501183804889498788849771248381721327141650888714177854968685544694678844231687496472688942358395691958106740532245005856552326255281720503684882809140593974842028231315750411634788067902977539714603786963620802035541637126327171899351775423382254885354184226666751271602104434763842355069769442683011268464359510610264943621390990044163923129163428820414861218028125596201555506355311460451794120902616293223125683905858716348239878666556020136417978593001876558162050893368809271433651545871371687895846307441588373458817713606362549531354596785784280282332195009315333818261151124116982598498416147015580962756988910025133286990151603834828299305014259590546330068464906630856534447336328634660049325696805728453993923197017369263693062409196529486678540804082335707868731372232841033474819123937136442019783915638412004502115395209950816997356080318432670449738061446747628806517244002813700222598539545119704929048554002554584868862356038038862278991464152964175211399676862961105800118480952070053227991641393054992170604726033301609461586323359106890928532734705180377599953060655063929859527262622134949348997016947961260738144456603814037285067853533288412143546900408285897211110342493813400309148402594550110897774313025260555875394783853028761887115624075082478974651147298319933088173500744032514157409688490728761108647327001254179195473096550901197222428853657122429732733532626542710986042123518901778284675037495158696337539357838339272284937214069363643852896041627952246314558149713142058938683962513874958767472486453353129149221865943011174210781470415635398890518210283026402589868026939366457596160537000679159319964343917698384304169034763696523584369737969612685691854842549832873837506469760252308689725692774105593896289178721720731265367265079349540473697504642065466759494783521780641818070448573335269898301172630313195710785944691320702922698471625282690422286279382030876333232463034350542211728525395669709945904253512139460136876317032827710598183846749433174410159881113971013361245841746545399212517055622496284310030382504751027182556260252014471246940932723412666727472021604939215629478560973597022150945787609823024308015763573617485636793468045515967681010690814945863722355990830079478185954448887742880662449619552080115213697201267718313881277527476491023302085201528903927771098353181988779915831512120979401117538139937812582422624921321806742342035114817221206580393198266770379791159303479695073328110375608094939586995217453916390999211639594769671305682104086297006648953214867251243951593266017843595273997578457373591566170969018932742471658818689074123936171782663676733949917532292836098183854907049761314632889475821168666244946242255142574236825913213300658956206292755411218137127154644174328669462072969636405134772773986185284840976297089660999285342872965965340280852738010026570494102823062943720006859971865280490150098171352107645767318621203610862943292184546202191174094857307263083707979312506176686565979449456464654086961357356926946274297445224196575851165020379571098782011335767126812547206258188382194065070192891920701119976375620532019155141024401670724520625364901252750307596439380301053150351579657499266824366631167582229862676041924916440983792077091513699365649741667990183180091261763046018537752961338552863419642716133039092959945757145624883261063005228063373516289341587325396565186258088916973939021568306991841604924619100738448448961257182075680692602995649660853496836103062288322508059887137600077767202335599109359395749463203075173190980883428691472332211958398016356148393909923384465323283581776443957618286265752795866402417059129177456439298193150521143380870404748885515889217971922194366930989583793536596150180008651392010311699838468763298887842924757100336002869607446706524404185906863451915752204977580062104480930769725532053873363904406526053227728894986417227244936245750286215647864156637909754842421128300412775435543212905432036931364886310437512188828241200538919000681075003099894876102385771894462336763510768036071356463881730624234834487651991266838781769058265525013869350702018460686485830874193320041793402704785723553778524897846908192073437907150906247869204330577014232032904509796369898699100961957403210336932839883675643938039430327893843010289038249128293743527060071101653407327790223116174147502710026189782434935716145190643131260213577968876080049758910415693264118730830242646801817476118698156777840679719434906308353941148250819165278804650191971636589895135321713498875194475647867682727618337185087633165260432446623121583172362228779079374577855514694385704689519540244635470732079794177536166535928815634854214561037415967842316171551971604111507945900364840820881759287641571281713053517149276537114056420078456844130716072260282037739637484296287650011393712077540885086728840343508923074116260211696361055098721202939659323663359622215801458681041178727354655401033367399148154160609176938290792102399901111025720288945528206126590981771715330466256105279366588108925742818172307446586178708144566384933344606133889429728422473875444977641091770071619734766123850376404116828247344017514973481322699656774727744724135240782884187484212892718742820738285734484245190617024250662780487811758185942900831856291109612283667410359763524282608418999568439331994938517902723810376441566938882311230543084810472370558117700166491219388224640489098497534190221470774446124608665210437727574371909934365818864969362577584816110532116165467085871758169508858709054281042742727107415687715473654805515223172378531984052759556229672945955114905312426485504452307578699761054324059593884082948206682978384430044494887684785827431743868396575785049320260863286497419946258486287999513537522056539098839815235577001291110262044995708342713537765852773061275112348656747677384188695471880841246346174972999571238419612199469657869935288473643180050466344487625037818967290612763535695836904235534565866562610343206476822402699589407570103319071597993684226505653655380802060671854244323708296110655075346383252860913592445376955377068294414748262167576746908402183246024409199452503343184894271427996327744748116648620322077535609426916642791567646919557084646952367737712768299798883740712233963028228026010406979708025488461441328799422652926534784091443849071256290338989902475572308321735662145190011340392400667524208247100003065626350484629805712991105892861487171628869890239232838088381719070265921567961369431970059695684393219773145039678501387657109387003766859907270979365039184289065673660410426238164836103227019431790702451451392849189998292054067745329434899592246471650089015698048033085931895882265590385993606717636922627101033826175512201111492498895638664903608746831267291871335534736438326170941733457482214365297848607270126191307340506227432841234403455759257738722631272441992145119868734724942417928732308840151040414590877502067704378715558575341116047728367074117172195666391882172909364961703220149889546102072899088788576338563312563942269845846699829386079931316897884305213769836092148340950528960501084159435918652058134833759031250500790079042193724355176703551555770328704594497931764703518065830103610448308889562912773831820113458748424995904391004516328359160563771937783782652127492884794266752667420966162248937752123825386003468544287427143151109431899449688664130773092145117228446957050241043499430985408649463337223247088181200849358190874783627113778591355931733133234859333018065740695673301418942998181622034268197803122852322494399493864542836628923977935379737961072523962534285356047438565346864820313327911421887530460980480564514216354522621469493094116954885933553785579781252721353654221527791834504130652868294366359469885221833541214812175939415459950909909682459050866625499261511712353207787320583749833848741017527614401220189196842185866917860085071542880295254903068518435065322907683055780063488876832960976629793016943520767635680280664484015091786219644638084624623862603489738725778364215059652541039364970560030013442144636763638019491048694039245038839008321776916937577612490163478239900575122246415139970444597848744754709154658145685713848766847091857537085416084847181389926682079830003222457066863186544675758914554137229895051600710906407778991710509558139802546417849616271429269652998388321819814949789808754744789175619029938408314572160486503728584294131329045655711825357460670695036402584334844258242807589247174747281395905328103146085211539005226252392636683422767297689193325392338229770028187060243817603349892320676606844742712502626433154826631610838862204423503857417805402570068313914204382359525658151300990480671746731276202650648522374031989029444621420834939184234834752917194250912765807491315659605282124480415387836233651262853834050375683729433328144987652738539055469899304411862077099435795466815582677479303236101055701631322827594313119630995967482409353890985800368417568933594969955804179197736238790742647440402997691400718536043575554545446640048592059457648649110376101873688114891680464936770292559378250087479785916594919152017925411702401083480067597823362952570403445996302949952109205598628566228346777973237437699052393541474951426978522559799985694210854444691807568823043166929038330891062677384804338766577614983497600331983707594479780305798513188369781882492103924870494286262602465331559588282267824731443051082389417818392461593152042164796706031364755475905105563915235856777944610533318884320599968624745054134099918511188287943270715625212059595215420676491926360405531075095113068944359487691887925029180425838171667415513020173768170515512448503843339694083745262607725385124349359098019214758197796605743373519458457564954993481173370605448074868837344166715850278488142194337869158681879969857370614078734422770104608668653919444157621180618117057707577132834516478436625467062798259142425597851061718158262879989161925606836154880230107986103475025654225570418693452394815487350595874335218908897804795764606865188628368335702634741845624477852060980994036825878949228475088296041108160921559946955650908837979996189915825053312494136409360586869664922613321488932530339120493434113606834341889200350455721679598491314511462800810689050922617746197392156332970202947332505912726092509470860765415963454273909844038155496562131968974990634068860860653067372867813095309364615738603466063628458694248578393537816448256078286905822813705130535545677796025948914459516963712207528124293927607363951879890116151331183680725575087842780802904247506532498671177677364235539361612951301371329211283687645865917246099880458087244767478045994722327208395359320067800423187669622949300159272577359061153192778599244424672836647022404472596094624746838413311333611066352978704615334459265373282839381956153208563648756484870761534110670705901951696577528924061191850733968932773687060645695032148646371164656179516121817423611798700450220765395895318130279314169445088946217185070684604573263424903655170206170389657772125063729340269258757720190462395413307439819005100592804331678712939415044868391061363674561926271597975319752604401611054990804596382494232949548793636395040951432317974950560871689011671152407983809520288299106489716379683185285212764662661660088809467308652688029695444417881137388995385854903921586385001573164504043632952229661126638328248123996134610569521719473212957356921622677085813981311634357797477464518382531239915593067900303553240686820022701433870458935207783841869960275813140262386503228149997393916069587444768442407896117922486127726072186399170288838162509401749741278535637109289347503277061183403230185053514318104084698984969225651983057043731737560139133456713943794121941847389600748188880133604329962821174229080641862672203261911263951422641321246775009564084120313105901883652631665190882375618135396540903096018220136830920565625633244672945126937582272845112399698672041003682761321626980660818324714764954475185211558306047786649356133810448629002933163755201460039510622380011330470838936686719534632352315379328429970020607468901205158505338548011142986799404040377615547842857830287281463917856949971454515711871396250363634220297405949425966992076911054157716035809961279068321477313160020810914277948412675940241898341510965559137062638133757010899023051561730122392400782808311956443279242841649473089880939032378363149513503549189294330222089971268072337429522412037060545769510822907205367403124211802936000700254038463040322698469176532311644185119777606186354117421595498765182538694837356710284611719396228260716194307849860863956139299543536329317218610139482507524444085022306825006223781398255378476705023955248473529545573067052231539852375199014740334173416294534482025471816391845735683433002348415098559455098072631583996165537693415341786466456957101755323150257787416972493739525450647158386655728113516827983601362916796374442507120974597553203964075097927627922064715854719992124942564899656716744679869312318375000999044512119505981141122712850104582566784862852881257517497554110907296280920185406852861669207602535426917583948844793769570363468467766568615365656676348028036185250389613823504149876603458358342615526069206559429319793693614105818789388177592489789604977507403588742322261087703042209296870677355228528761824347466082542966400526060110089536946448547819925096265931973546581976620594814680102629958112655788190255938767510870413427339938736012399032853714896852547888287549658176696155259343247391332188140293269003090205799917949036750156677669299752334295252633386670711174440701985061798181329257281347633444849192732722905059826295201192236137392628337483724899858438537553780089333062449799841149178391112860953517461917597884778961911536123810413807133123253796438794343010879562014955511614242373683797601446939445051357398718670630597042638284865739514860032433600303506989440850084209832901559101564700460167876696605618451464776668416303627935487111085947331427077252604811337493257022921019616990792253893217445234547290702874099116530218414255465820183016995647388237477499490233221220209693488219803420429527937143643632190412590244277690536412405487077213129552883622068115898385775174632725629338375899781260435638129373010243604144772575860597861884740563427740120410518870380920029694961156841995986999293974083307655762341806420322208254088586395685671681108883716365770371828242219045698586711591760520660146096527932050765066655245036740728738154365485765724993109428992118979140709047837008434314041368363753747729144187146602359780362097061776410916685569737254056119546214448793150789035592417187669750971606824662330644344647913918132522209703798591292047295292477995692667398550219777488059522063715525371431867986158867391896355888738998970983982637459298490441255620922886847350727079883206380570543757369181018338060673420798674977330113515270227605295924416679663521308622917952452168190608854427761774316705987756833045028436756537810434351577874574026745871973222212892737318062205179864705627556501417247031087938828448097484283921936784890318534480030362248697796526349076694140427595884100196966808170821510928401241088931482201866647782475766985121537206613190441164791456380131614382507191878953977586689631527398110364790531490540565335941712184303893612324471968905785070061789233910013101393079844494408003200684729599032560979356822395361526746389771624633060200153951099887591120501617520517360379272395364366870172254685205887446159303480825469378024395255696363956267831792193183931294939295415608304370866255579382061828010293829272857739422836395537015474415831993981025608820366981728754946850746582835558573734560965745237823367330993019137205685130812118239405213030219433305984824192948650398880413249120910029252830984875942268978819140570632063468847839685551585375903822349816635323472737465031183720526436166637801671008428631899035185300565558029844574689845697797744790807411332830149640957053175529083523508091738273946903575555543004969744188760736274905813184467046923485703915789325271681397634421045311071863315200898452157993531747276704202557570010936253870969516037607115698601666499910490102844227945644644330409907764102231276506701714338006643561395438962637411930090679723736247418275087137275144245821676013004268979726922649833112532855095641154850622612702121425274857233006693500216133015269942394233594798535852913385137568961583138122584743014160082818289262496411646615754432165297646918425974767035762354326764557949720591818500008713949908017255859906552805186004959848764146135594666898545438174308811980650823084626533699344092144494132396470253576617064602657881685189448706931742676539485499329770300617397715654125007900434485458415873830826914778424724049713128527175651043452234444531466832414856896881304861441201554552536008853113827439885731163469369599151645862556129003501684665903121599641518245324478101260163225647934327034878732305505552057150466100711410936442628656151615791834500089775442455678157850482442141939113734941247259159072327198969209067581679832571713613342103980964243786472861554884172055918942334924078810392223866158483261200242926670278988851985692791762559113861529653549126252314045452943468150337205171859289436532021872171309016677790983484373912808995742659167188559718370883716380924444773624796235016203121564082695651519529868061520467331087748950003007351736173879234079730194149045906863162293090023195727793526021227766316256115660821369344672983918045279517408882742039917272280373295074255034085821862538590483351397023471690429920548476408851680681318122913418735933959644052689308150575119527018444566041522058113484260122788901994591382610556753244296361278233120695062352304690466344313202183577505356521009903066498915252924740950726545801106670367105960450218275529092194059900320727177190388424534628838502727780417591064981675864429854559720308572192490436655254895941044086653543733825856848945331439389561056239344775705630347295025829748243472126504980511934771622737747509929224296133722069296248880585192500500130775932226840718483351077378144459699382780392912622594407920479085544142872537707330598503582265872400669687429458645789972054590208284368834363595919512251748290384584589674311170792281699827621331678052181993074466474485121327566495868890995409615502589221372474890240652358872696337976216738439692860855023086366799535240811294200937534405175324542324205774988824155440296328056676923249213752178906647214537479791643945424875161793550959630791837813010281006552672453116551390636000296921920329691877676178604361846250674381480344055197740843930194469007765849198765315131175221547751383251033698482003354531537173355726710892016332605805456317191464994583429185599863275606292139218362451759920343322584782838547609113888021879524469697749005043917897137694198454380576389334304567470292988289216613854800952319337709119210905844270414272264195060951167769036018192108914283560673068755489568076734751450977812562811590077541601638096188373503410516979826116007422050176225455172205712883886769437808352519098981119323445066659555806410424562550420946826132448936506521581677909255889399377039750426524070725333864608879325019972609990513524311111455588374642759652274306900538231415494346691166959282325787645660076980567483861312038045050329005398723391257248262403242712550760473638450098341128158888301695146667045108642179190508947212516046828834970488622833322431158871348507172935863338400682049882998937020461066652206089006282001320885333041145602630823806794992635141666498589800507098309226719275439122859123436702541450339422261509613069741510171866527697570887208641240804208260781787201115914498713772948391192354432993309231460683615486379777451571505242683952307900968331846629153775059080590175392820677646171010462549921653116949129396744487235176298657891985457282881793820684251833942837685866399612266221553749693045424146978002234934637019949453834627612017974022181642357314813390000888248332805186084987167167007647889389696740527736985061557172898976820269690470021349789714581724799108827586993653536351789069809699715130477966399884261356357792316136733736456015683276737586486594461476177120138642059696264295193521060025455371267410824506050855920228442990658618257013901918161072433321084149492831734906096388764640930625147697853770310469012893945703066290006426427940600753857557211947844538751446495843772384486124738656720958605838756891041260753107963876252238563199533043757025083211035905043466657523839799781584730259796501316945608980758627935028956616718383531333715808036090535410750303794268506981507703378383836960339823846650053954201514544787605165890937550880026573528467270463720884355034769116607587582377728796156254017145793609473094326500594359886481840030029175113229593265379866099070030634740310482053499377247232336201196118893669710651028835513292995228662497026298013529800408817137792747794049866690520104143627336529655563633771205954603052329853989820860891741767189544523860629181981217968535775486924721859689455549534917769565702581046190897883801922704601564035604208895075146426762840714499620015993751657807995010880571949337449198749583471259522815956371963601703288929309324448096946821498987658414870331455153330475659525932049774972072962822056230185770477539257065421653046640270444951357074603494063748307802778963818088325735095861916017855821466941704383990462534035701245784904245665761581108466355025539347560566193827073307484381349091478196623195161943735191334622901141773528748235730193361158359396628690359782599078194156935555096556450946103736381577641413098705153028949187794570512089415754544330992701951433286706415886416980841485010239822832965444613890274496420006136020174112172245037720329599567683425268912222720657283708356779615112333356892657106738194172674241177389940987224420628505689401879471034774443288026764489607361050732662949541841220894816491061790123252055239094993481910571606742413219005316078511657768966631399455465024407147870819412641603638558942727407775141483680435037369381775343181024165588911454586787203639616464991938599079212013293706774506730992168706684958091469638222162998707998052380884809009745828097749435000873545995587476946053358215831802665943149642722461185027496740900327190864485409424322972697620509456112377645043920250201955984165710217314343968209330941777355353994192607042090035413893958810693124321588331936239440812339412907815443652070920593505059750047048222890190147374565277236147716186556601135238024884606382588372320313097856978680141302862792919903822607985365256473526221398033276043577184451945476436337517860026408960973687383669816146449733471291457725583758877442707123985812584658869185324619454704557906287496229470802084993680920606730909934346589741687066660345039315753200869580931338087376825760251283105012906670797893039666981743740707560588469860787252971477502005830380064106095163694124032815574384550177275093510110687388898952845442358532785877790073716417353493528499523497252702926743986536588016729891756596527340824533856696533147543673261854965147543421208145831116268862383822679862074798225380620550492414722682034580805825571315306072313800543812961333026031066074081763501003977968464154965605458799406277309766207747891581618762198244358646248237802306490393227860613416450471573316758640738761646389854919231525128648899269168787165941071516583360697187716581361540987829318229102252507662644837718997874822356581661593942772899340759123395291533826110905519198563222582123712772698429352749292739153766019703780623150555846966661117390492076183832676232791811192526426471128557617259865849057705028530990021503649726862986610731800912213814929256041410447707650539088732148375767381264499476154189641932143959164997856619023988469971027979554682764824886773613229542560904035093578633419071187592647217485888523951363417567521030843540273916228859447648801132121990584962391693026513554278490791373379067770394629305928403521245331129221856151045405964355868367790710529855235554014693399409323370076188050426991720854580647093415044737422430302488223533562634788539740102426226619463007669570996796056216510877595887886967007315065128555452642184436581003782319088958250752949846853825591559766819731739018942262135156431613461879694235595051810581003888212531050327557654070818289612403037511024537290312358436482722296354991876127640403056897208700170961611122883628571919538279563639815021475356600694479140700689603428506482547689269010250985744106702894246530244387344026737348848509878738711127455990900779393670629456611182675419232197492139770689142960326100514990996521603863944644843227777035997553515922925468234006699130488386753685540153289444067219883743705509017343726733159235472796680435791920473686119894915070045971344564381198720834112555139660697297915423924280521469188286473503841686376538361146955166942411306983824047973497431541281762304033907947412991436915250727648004872450455309370293249236060628058942185353483361571494167363837292864731720592853481213102046571479644295305982781380787285012874492433340977034408005343751477932761937707247253381129366665022626610660972632424382720331481481057740899313755291472748875732963472603579953142937810998669220317988511607010447432557701888925229203241594074107584848976261347125003340398285251769838446681008146314598258675058080198086244823905167006310233308373075343298328850048929472995304513720206152513757480044338482306213723456075047774705312255771215073199735427015464460650104410382757929835221736786774478146445748543575652158573400057017251085642257504998738716507345160525860996803717381266316421478917247610001646601590506522725282666238904131238889427458433505100452189438138681523534331605910284105411719730367587989151231780961887248762172279584932487697686702579863146207808032574974205281757667918161051296202647003097841794216186813550042042926749361380211658232242929600142761544333729834971731365413087816954955177332048323050662689328991545300312918301321244566558753913654071654765392243777171831263543329035413925311190348991748763004154671808849590913655007764433923045931371677446976061835794694092077029155311667612203682248793861684896192819799643364626580058434230013648840549043173352004858700040029685527126758349035361659502488440639122952922190193463533481201665806056389369604319221940817466276706519221005687840259952898497033197997917398652168990984402155691681581428105719735557551840325676264678802721636589985613155720714381269347314216593698530882233272568014101025415629186036790141503431201190471796477505388738496233217054369953668816316863310478316664181826282413422063208984739324326573895158965878920281894073155530524289217564705253572322358392446970080060082837205764250492777071799161344518527115460863660385407085079005947614668088752071364856662644628030825426545846418633168441466861307891355414108615532463616632183898093496814287191836282329379057990905339215733869321349036125353461333533022462188304088929428417973694761954570888507383688500988313651545905063189429312226727628648171713758525771086701310030086728918357130956106634854473311888493017769306936395701628018509567080054157383123654638145537411304545283145831882895686832153033400652416833496234820066666979511980365503018881365148468940861679311383041795655512131470177964244977020693346854412900400466109069733608179188882920803465747113704118114554914274831219603328621102183536629226444391994371085461305570950692803110161073752059192279460466501191428282911029482263612015732590115661492037229321131348730173373295980830135883346179377242895979468912692885721057438702085241132409159251445887308237469252434756639332361540154834993672806271397792999742593242162162448096533572936125782003867731068955317472019766995765411357580204693024178085086940132869557228822599127775262891836025734391479205675474313543183094043811016023263758138431403056572625174465725009946678775812970050130713977557469990558354266317286793097026100082298237083748314386509323925951295014814943168776432788164032714733368119372509578549941506642180523122393416159476070384893347545525930637563825585605101487066065809273600747088255531176959129430233946366141578057571216422765147137555465551575268040268692983351312677298994226607421265798521132166514258186537712207385338434681246357899936017267579848028650774356961035896098936770276687264277552972314419821768411729755268447977404467264438322648789183219530731682768695680286014857854177565694979615559611272072620874885293359323580199748232876155187700087276106403819175985039444061908935637388316372042635275693628141670392679534801050285637896931524122236288257213704527659649313346183118532996772519827062131356900143722869805584250890687590688255638217243942727570263131326129701896797530503502825838310955151181460427055580613330565515380048519019700678106961629011419617221636319537220690074631526574492464650992931925789869404492936443666560734141969682145900047160785446068237514871013456871622243561976428513454700664322690623206808767457373191422637014889730842906288262451636885963727104313318715305998823658260010135931219412130210800452930729836141579214637078996714462208560607284838723415769823676513771976009663365412626279095679085745043833655472919721728122169970654382822916986709125445541469344234893518011636347831312429546317756112656322711999726968555376064027844478050133538146472602627245090146726843311866681682007474342917974961938103180668727566636119379990629186126599236393095249189798090935216603522143800774414061933995185488203080428976136668340740895964875903065875853290337188817080656502316293010659647075258454173626222150993470000642153605844824474961443678166819558515628180244273249584847650004144925035278325686810375119865206696301261636523029490502200462163387800967759346476314393816428954911672222227340059845213468983075384859147914512550313002856098944252025069023191531573879093246760391269911453182563065210163371428848909866966602414789181626861764550842466915859461926410871892494102072049556982698404477992892850863534452305314313524296852081459564062590759841146176010950880595238047037779546860590062201021161436510600112467096602343011001512309544764271499883133892406816303019487822001060904602757311029529401115079657418912921971845531216388259857818445462166356342250855641955361919207755739480015176494088610232865579148823514042098020378418285950450760811975787146928105375957364954768881214992653752123715649639830949630276597612029717648383444549964003771085434936297790369081317229516174833844989173268106105252060281847339024279730886231214354130085475097923758188871604854049651421722286154983814224114214517740243028310411181414185598830590094501444322845356727004744506357290784549612391602173315819210035268600739388258961495030883325272241731741677163122226353276378109627109078350251567352477480417319393645136964279684477117294962735234197868241126967464819844587685789853688865454078238351398865108536285645987147204449657146029344662942428629726987643942339292688195092348024672251330547197745263470587536687619375034503252729997653569875448282726992465316069307662910776231032176214935098564488766763436502013159085653349817031275931807136935389825780755537679511509385729884085603107450784745591759913958730659987761726762513725342536518810622738533334860790755183258651229803258284878617551801532282097536322560660581494665217520217072145636276967818993065086278805833126582797827293711296477194819250718138518842276674554738017824447084928250130226378737657005131888302385159901725280950697829641620389978036776880767018727125332571794254416707992846294091474879245888515944810434828859038182891306619177407399269242160537628530843030068679075710548908416004409705468991782178210017208999944827814845488368914994234923622088551569093522501679053959849321352506324962513811101633525849155734074152071717986936828688645507446001455303844623576053296623391389290336753028422996350631999372036757401755814499894828748156573636350098344485554081813621855748502511851920648471727416690574767655862825825732872289829502692998464741766691267889124422342134199524366953797948320874346265724726796977798220000783743580167042079901679206252039672702588005824193682867377939043564745976207425341765404546310173530682496293254845190415800777767451616622104687782782781067441216028434881313402621064054262328455606388753160262818831775618163485319056794141662882391515900478872309070957309871109212474555287278475419479230620683472687465645057484403853663580511934515318615525795354864275526294198743024840123829487751134050012876818187949425097340146177130362750190232056031749449313478853827823714434153805464558038850035032083611318851518140263822237220962763369482399996274225085893164342748955549428477966342151285240230095142429778383649152224207950514801977433956260724457876279859028583019235559165758599091630777873554014936594576911901089937181734908056710312656696640870654339773424249999614094128657985695424229203681477559358274371215978854187930391798264843744908884995117591732799857686671296372877616834371381554024669062410463958409985895104740404983720783439240693850349012955958041560721810720294582756642596488177176071462973145115869610586385416155595582317387081265918699444815122365190964854266373071387084261036378245996214827593395520195558220517551280102515645107327064882056089236204353877220220350068474099127304562336367893622119412773220727612743679557886851397211414672473916784977910289550979918949181500075261191936401487071040217397093889567660637906713796186391717117701514787598547377811430577073931452096001333021480058343079183697337855809763953667019992816585352031339098920892698410447629225256761449059483621797200494627193590095472390988168554866584747904024546959356046687260354870809201427505961284523354478034255855012716096520316289567349205450784649808431459541060828078410884836143725204288708220238238140503896251026626354499194050930526813920282096464581351634607459532900106493127297597234067730636448512169457816372608829470562137279112843181912847807931507737694544076820424321849422389214326687849612938650225700698173634907454297104968030369717705610930398814508150515432586244032622909682177473828452374253392538736956777718053861741288622714799980090046628370513644887795910473170415398653461912208925205123342047551618794511064872558594313887429699648101174345160579713334450829104867952815093409279334286583686108558372645670575964682503850762543394872548583693875846084553772056285245292694059919400059948399268409510671530002559497317198477971416150099381408336491825057191750446549109112451071678515023464132703788120866054721667046313770679839856009939050252731651313355302826318849380499572381465944983328896306075597582480492140836045371384488544602803502926076036148623083248581212562443031031372981759020381731729352067786764061352312174686645706985319473844528569176086892370335846800931233244046310171631658328916335665841989475523885034204714705904393396941827538050583316671177980422193031926951581302853759067351429019424168012114064609446140074101031253509049856813323021064093035718896978534030257291569664666034392529673130074793826217544162599690467311124067646035705956554944028620891077768218169027175329113349527646057669531421229078202762116433583589570129314970196553057737790625566331039104579141546601784216831356008776325076697656104245877795785697642416449364884166668807904570871373489097426635224121463761753723929664490908779297899780143317765343693647493296464097909318491717738011148637834508233108565706720792773484123580935787511431673581017202128559301999193170355349268315480215890374281951457621795617452517979398842268121385319927021306762734811164666689371592510929670224772977404369492494350480811687051954674985957828475941380853850176363527965925747868445533464206851852882233821727934894267113970560528984994064901254725618782444498471242543755500757461134384875009787973442286658445306847051224195974387054599574810371201327289176049445771435305188238340662016126541170912578306361340363821882721856728803086711952470059568685694190513761774324705224011313866400295851844594808941544999178634325287821415298966808894243514490059861133007877680276681632703837165582049534953504625538587490927286311978688946790443982805174890527858500806610258352274866833849462872376165923412377493554833814585858776762977488090553131437674260192687864637962863157018334773818183464853699376958172567348863810126007800422074481650449609378869379810334778223290925494762914111817778256777487370962250484388308932508204608872275129233240914531397101343616912401436560760150966099481203580014476691733041795683733482688672722738760775684062485387710221488365563015859137304951177993341546406733762390009470380733780389206758773554431369112605555767086648315270864743297138122181622015739608176581953494082571059602176181869864858994999328154853761612670017127562545635693679960970413160619136599800442104800909533560417916047651690633123505636529547216465555274050129515113955667592510557810071727590669802405353362565990414112174600551955800702065256992573448071721865918783963930975618136479345374390626237716298096947645813054120306179450105445646179926300812519675374518901087564195144036687304526375874828026704507472059278816053698584985786190908421138774564421492275955960461388848207911891810569904146347760677254631833254699043669060106077159920154987206005005242731049878088050296634906098132009611819779818599262853073709406921853835592955596990534254405649488535538769054012122933726947523179457212648493972883694929412130179277437237020154819652430572877263688054061590681876260506351614653349689665913814291889734354143961622117387061171637461132162285546143231620999149660076558451239551481544672850958752550708833772036959997465112380943493917493422458100004334622166944714913736307485217702114010978165422818133100995338001556834306531042930657639238452318763592074309564331799247145354972171889078474251180235374366822767276259404279092148385311074764693619772987291459204335726827101886732383475229985337928769756570659527690493365781000891712463965694001027155108330594113741518706078879306107997641897428823405442796351422607497454762250207441692136256271665973708447355650206826696433828213465364112574420937416812326472968434402202206307663229454888342541199224375702023492414904922280795999989168844742974687953541108982273345302646393653826154747054568232489692589923729507022420403975149828027732678639801907936783629775578839382226899028613936481527461938045477647947750926709075507151266852524543342142683626753529227647858652413904081216841308038293007213087950287842546408374710341016667473603899858584677211790531173243096041958691382895394606169873893685529897424908824774069829720224188803052342417201604150022648930538712110562524166164159383092056758934905935054964763246871500860078330442880428540436320819538948696118533336608275722579783845579491805349968969457800874850815509820602410231428025014219552051021756848675131199610840405069982274830144759187428608489068107290406295889668187555313143137548070240797079053561828938494820675710057503381025142101796834963886898334110988778616969058399679167660094034434386975091546256682110972074451763122798046712062957745967848372006367314731190106875455622122274431788981040241083179841032141794456555203318161271530496157687040162619700532526545423330237173302526789812237577220032731871355613981106560404152829950419322734074072551800815928807699446863503670049119405915097313436441772675397674936689175609427077913729808152326157766582711151228669684489125855426848968792007582788180042739189340253324154262067021986962279939944445301315317975280871168992774670537217437900395452596537215707582088015298179544718889669826609633980316110837493238280171508051571041627902635309873044990857210135577291013208072036167004683265435201024478336488256804349010444292808421651821540564251111345724370207241468433682473862479725485700479890481846779479798352593357017747938392551088197571394081590885646045563130463246063007049930956011253257078549067377240208546702718786627628333829462952718870487177363417667137045112752492553311818404589735836875868378597395024315790840815065050002696455403105932174758905099144497228181995976209652302897818000120574188359970406020973241375703638732322862677411557669611906952100693970763513362337996944018096402164796200194159251699540974103015359305957751423002956771162258179946545043522308469690098585016318300729184747915012242487943305400610023079916570600117289336491264936884110402063353934376246906243265366872356733757894814364924099890470457811850761627147939037161657680152761031283941887956406642973073996132780890797447796648131706894131221692035892187869434039822341545105979067850302982920973165121625462297760048108965033878517427045828807184343487923329683542633449327483469613050810429977178380577874299689318549002440021205604630156487953844143880268644912191442653369678987052709861447506059412908186623641400916914890386322877013883378957192566575878361879220981454397847076679007492133696926065198075914676802351217333268536713878974522543803318457521604278112404683610434499302798349714551172101437425011883268981787097023532636980623428069971831317972209571775463353845215927681906776719283611890471875332683478593927702762963699617115770504114842323613060299181696640563151695069289226573558548391178812873061360036906666525701196283706847847016615848201338456602700906040377793827374200936079168190517725751292897678623542270447744812928787544904671466030517377094031549865191907687425627231364087848987224460273837317134265100488482571258747103912004338430647231934315997160361217455540105652778757707866966536096577381316977333611560426108464552573822780934520782653467047231128708086512399377287637795097994683488844395866553707197212098900150259224921348189262171128844825910346482462077403847984396698688599185468175057882669870919059999302831548514113733498648464100234505055521840911421794676477252283027869044788641902692605261665964000436742829813940467484852231121064111196243307250796976548107387162772590311210193533291885658856536694084690367340786420669938131442287079281250412283534327494470398983078802688591714863929174425753976540261714382897587401205270173973616386311367605521119181594608420700466286114305849411035278788342046051408991559154613097179691922469786964497233253441052245206383563246089789308230178315293352051682720318074236403269847813528515648396110717744137979269831778145740069407964920240703830779129457277464217522877392006823399039726742078554905390816378991427025193081464807989670136883057341392102913694742505916679253101146057716089550825906246137942061151925949111747743852420226620306661009131534550872595577712211241023539595181204675543825350572745655386844197023590517997898606602991427387787180415345133126586688526469708789535512069145907256749611791031576471725756015245204896161137680985247876313614075144797992632901151246290457280569032696233458130863643733178594149673777954627950255088064808234908463448495955744505589031585845779333711208746314779863676929191989952486170815716310670807062374963658145276158424242499246901427196975524806331025498963208937390475937505562684827841179066799243799005301262527124913090120501889934444364644197125036807879031391721376011184168344980133504517211203990208293123247972557721974392880024212366399291837711509925386019734704165989772558794829011270799036843273449514971843353358202353359484340597547925459946182065551130905519449669791259311612549956685050184999129451853847801741546623174243683452270849915200794679881263056033591614607412028209425167252378972685159239819107111292383251226174396553333553123534012314670913201971960486358278728771006527983055265706928602890165948188414365283372539340681070445778203251072108722869913686758988658112830975938738719764824422705645927507085571377775444498815034112512577308267210513895893338146004287075937071286487877212849537500532860767467790284088116329167590090467324070884254571103588512224340829841174912667157233112910445027777479884491998741057616685072910229801555681223003770257738615728373759521605315754813300930361668915676995412891685322948284686966129583344382165482031971484415989358207632028415391869468412641412801655579645342012365253474765270092506736852534005113262409824015341302716965682660100863813691640508029437089656406846401327777107796186793997774360834215758096139850496336504148428078477102071940477832051641866773343323341189796859722788351992955004396111065739618641238377753932103995392785565726164325598697156088979599928178103529039397272367268131365707671812902591127465380323493325958742213746404088946883423710288571648756124047679341665599312516530151114864222137786583890490003380646217767791960704664022247293151831827931827524387313217557488892976555416613676366986908430398805291654146854761830900038445095854761455794150134941337796329045321982013826646724898790606496941354102701068708542076766831796359255838264827092703746832812420327846968313892175093635978371624477615030026088179533092413834519153702251108043327483285718119853747776281048314280542783752762162139612128121057688626497568352725137531221388425009434209782408769756928219867626391697298947275001253516864292762364434904248767327656819793488185348738830533820774633374938986908835722552768424498038130639044104529885982001540677105429971494741070308217245552871125559652794843854963128134828814129739792101621711570442583164853677093383328814176605669703138934960636540076454894040024113234540663733665016797242166832794678932023072103506447773756945609817200399738477046963923781135572446613947171599784376246777731583606933880635077751554324038379807395625937272103934124394902745936258769471608858937297497592809411619321996341503597618944821851589055341248405982245421255058437188479503228385749936463246877151265424666963851421260948460705264686918900227725742360823225014616838086060415195407552414021174748504615271549338770943581729172733993286987219162009384640206374431082840816178706015958851867265336277615553659952470457955206416122785160447585728783461483349123534180533519173846373402759133912997407389426558597808672156981225163901603123092385908348839942257103449601456350938561144365824578803938621561434802185831922525687891074242297822799779153528880714369577855589938633441596075527964650982937561738691928674399562938901747810875378190066385892695629963414969477475057535181888185293792127130636153891726310690535443751708630485332757816677173311310264795901104001476093094072123638674608291653588839478220886425057521107035202260923776656972033986082844448285309289889608690120772898822125829325850164755122122221140248006047466688507839200078947057037194816554548586012005048228363490762181917121208592032611111648803168113972959378209011631158994179393986235251136909622736481145109241491812996933917743413253623549318566809498630947462317621403679246910333021074958957350273250510511076861217196797640908947715370783801775887931074569642311989382718044701215079856893414736980804334794271958587442360473309822002248501164117006209122115607302818691230934791280568008866638950717203338710781784595277049265445098547930121445277024918781815867456420980948880121933902472500365033866940477313229816817301263563814812163480694524222802494231686609813736173767734987857438963012823643472744022599600545466578291001317205240682719969588534444869966030658009243561619543657327123032029265149672196273141483822744801816247357605499746848864458009705917711116334150155700810672673100943577042319821307397152521659007013715554384117405031301727471661539817433301025011788187924018222121079464833093642885060633832540726271302444277716859146461496956477241398959203365719867315366147546017699710442054521723053212472869729038672230115102357039354101659200838741710488006115386031510962817444698063278977205663282749362232942932346172923464500784200327898791328253866403686787677961386813100607495218923703648087913436923124083083558421545665261297074908191402351361143577379105354648142608607393113565323761831791514316962080677702581885472270357224105706231373249682983334286470725999785508458910875111781226095242895452742100462508777713519037865741063036514549561586040371328732640294585851123127591399204853997525144539314144316892087835303046981280520058429731067154812820344035065856694495630303521596724512949032124914234302367362966761197572305304951789958336713175424893391750075458211636315087221099947910234145846395511100827549063658925370697783183941451317165497344327142424750492902282859288973346920369701886970193276830061262995541329782548502537087272272584654861225916674025850120924289925366811543743142517248243294514530014609349427214877942066997750787495978536975321920022573789716629419571422361205768721661265600817702536996613833222014206629795036787233576707026197679593941167465994046674546798696713941937350910927082088594771554541535801009890860625000358675649031790988346300861770111625783453044255096735532555059159743100166509205782864348692649245437083061495402485640740456388524151415613075080256678529638498771012202587844940447531323564701075475215774559831900058396800460971001978374078701497635657935610496976120382014463145500313128937464362021129220265883876748935363132327539838486090789322550476513820683705716840454440157864221404854386234011950023208477936186538231370679037639936119249998462367311345095420426980775822404273795531440225680217111039484311585409603347260405212449155652388742610520278938399520760492266630514587274201242870960508838857761021238413736301993628787134510298117525803707157438362010499425424600793975195508548081380486862021473396767309744924455881666544424942457168615352509094974224232919751469489566973178301632271193239721096682480458842134356135311264046836876399735597127420464596742068764018459106728010773787083550334536472607198395051136112815358937873458408525856483115379186458023721310821466292908159351970538052027585585853635492456250748572939392718242293118482687563304552739800746926324263247881277079452072853048002033104937200887924389884164499787475070441467187341389751018291094352437298327010404688435244285737508311862726805758963279277803981593414937783218037917601185655695761116949357466208308138456309916171241999733511734069420807724764535861060504666914519633218249354531768428356742021708360257449048930272499206870503119782172409598520662350170965300837393736177970284849498365676290448602530668602959975540000026027287107545768334502877777804515220406670835717164802046924026728454547305804181404534803376504310575777668274284896192294676270922528408126043904719354632329951102053041952453443798964808998600490650106537029500766171305867879886494458196980288997866057991124279897998246820381486259408974487671381932842310108993083251584518646020387599754545788744451859240034252738946170704958132339155331893925201312318478956593178209683098231313364434307394132636144943924517564755063488024945158280297881732482820866417149078269190740697229107713593411312185685792500869286008264025126168497710501302261563662867203912108959372518777382067510020133876844007318902193195246837612765071143507063340106313280922098661154629922948300978942695165716900318797000003890938320389287920911619953298027941363151210099551565887607472464897217921017600780207997632240168150196544898593693950166378988085342813521980123297147410807954407224431365928703316469204278534648790173251338869596093381860107099497116437398743006752225322184156689129557731688387436524770757789547479535313121213191264872563737150303519922275318444402207590738355428360859093747217290155257609027506882368993916562466383043966462438737711519793872817940681799482110335679123205530173155581118909553161786727994415201107134656259395693229528179346287822424179738300470417673033121393871718325311876644948351675515263347163072281679116279115359698453979912858875253950418322565288383894736845639953850008658817202781597068390785568837572263729803964122378792549097159293910250589509267761289178120307902674091492479407858585375273299016561551326145667084722523591958686841946806815022272152846401938193092603279176131425523846319727790772469402511265081744256189251056969066391978947417758117789373940213242289210982177098731187295584832817277448055049070545256709246179645761896654196464837669992701032102136209914638469525332949550175145697850998894929361890591970041112936443935678231058748832910485955868388409542736168295938422029881516833070961523951597704440502952019779219313937845933386092733255016996345012476248484513287752922402995243431959714036186752814741818461705694186418940850932427109575781376589517589226056671232166740733513415153087332838270808687334197463520902654703286776033490974863252683127392215784958722816316304600907809562960526973716454296696864615367510014831397956793439026121792943545873308762039805678922563819457689881249315642669035225480139793664907333279668039652041359225026846662251808855415771490391316277789307636915655316208960274387695337842783092816084082857215300172603913280307761163975261210103255307491923326470902901530874864735828757602342220421763282595718138017143740907630299915453193804968742118893751672786322230382508014483749309224799803963330252344406435045818739222877049853340911905941335844248224454213366879969210300205219192439451340449587809790754768129034774994556272617343236438591410282142156519630703823016711021505824276491681614065199026625985555592018950685530342007176924443220851691372061828545473258092471041011519077564138567096683679237332295098668710249548840326099501555838446033290900772664922700920291049015959759750269437796958538494739187916994964157075537425719427169578999281057752260799941180444939789893534379724494847226371311215848745307343673938628516722629151877554159957374950520579802025798326528686135077678117835821895316212761702251054604812141309127369820904623625053755997063218173212230077910944758270198126340434836535539433020187979446309893689587189485424815232354815360353339463619378022363648834102596251995758684450930483959864312397952852720625912070583708287761091253273638799585714582721911430913833167826684163862903591813947549110157926547189877304313495576564055078408621624758089611774468679143343437145654311781638892727534215311901799751024845372690081510187009107356010099651410360964049465595576845352026389932154179210212561454166981025515467315989338408509268496829070455255308632050453505493577276699503938828291634860402398304701683487552989146114988843417575687977247498230706190114266932585456475423088762547427914524274980847941849101482557698931756079467832183378764185562481626087442563883594899000889975900277815441843776481708354728917916697540687080776323528132622800273876695319973910349979896438466342486867992099432049068623494448367620031091794010517919405213072945481145124130006227134028247636295151370317703173895863061938083700372972200899207273966572581985870547269319301073216863435181691128445032943540882201529491299075565830363027130170873686684197271195974628873680391476118835149646775172899806757439383930586492613291207344363616055659303518411371669816066137776099763091194198423150093497448068151232248832828323874854986733766762318398713815875054402594657428595909738603796863927810768231707326194614578254202501237980037916324025997155747713873076871546954044742635522105756429275765208850069083678420241422967077909269916750259499199887230807208219966858526095419779058432559695278260831049997031236168708381406245721360597556564198216706842186960925067870998804344213171299460130609044605706764373345034501307495000996300282514779242210948598036502765899949260923739149964625361503183090280429239331880972554961315431184364283803788398170823201737750158197815122955493689092589931411379442576913031177470741609093041671945888854943513959814913629593299623603870003287385667766067284211824071278659513315406598033995746326279528537846278345575964704700872786260637876826832600191635104429969525960783443852074753798948092883710791546745201958168883434817541812616459719925339763734904731958370414268768875847051131333130248419784807252557028407520721913968741993901804101668586199177291751243462904043689091991494081234910713424292970040831395195700580320117316998372560985448003682427585422465125642305436796784633891608768272918249986456691184831678313077496710298017231639143675238939722131439541020587371455649483313112149443847859793933168184948175151185402098239260941681009692465158505503026951148753104017300980669252889701830640203929800417399872370479156063041009711460968201453188440829961302773005528589624779223898877408311237671583413068907551040548388246440854839134677762043735344729789141443781051701165333661428359357706388666008969518562253911445602384529136115742384465540479890555044098905843504088692663501562582465377863150042776896858752770466295794949954887512523366224302272912332992617374280294949800016300130887942540026377886203625582835417447838418652940432773720955919731577142040663054042866598907450279867214523771920832958045085825945077808841284129392745095445055909465824993308141494579331727732392125887368303548528454635661960042891893228177230662911879752791481122900618577076173933707882857276730937822576077935524241538312273940395194428920634855567699740285070922402538272965925775753684190677807031033391719151471419380482184410601490765556816105099164545601711077736456164412023680070014091182334326144497277297999106336261766308563179615170918902182049464290201650880389157891443953459423398109569487083690027571685185468251604596281071865485029172010709902207447250511795108756502437772058665537229697057407516426996407938249318770126106372240982751923969220651227267248280138905527222792007636489062124262655264254450729769828665887191911056831879531465853372142989319418157976178486578107857933379121656256383118372293438361620463666100317510478514214505519030432731868794826660815713037924165662504533604741704736514663336139134141867413915485274017788882109371459120807837059240748597805923786887309760445464171635774508712314238918851297133921715900644307371467169851392653001784236798177600122491577912639692681620237082700570467638430210610069851396107997477847621632931296369138200697094806721540503721932143689514949544776146008467437495339482265076605971311682945186086677912973552075321805717636599538260193217040103966640088460663551706887055363451423040815901349197710972326755930410858008467639869575168970771748999880787673377503027045199507149636079478360841686383954305319524716037773360735515425295374592425446966423445480223643790262329435748976052268572693887460617841021117085357588181920274878601769597668052812625394008594324113656679402524904871771398060848738181889595107436834643328884906541666465885020361312866644308755968150046196674152025827763245162863035920381084759300336803776972044032505628257776847239292794732483119605953675866132896930730262183747176806673834988153604746912886731168103549555481193818742705723947435921531283426317117516119455697051056206838891897841976500441466478205919548739466910476681921996483127003068073882203540412833657263295617707690123775717840086453333372897952547806941176786456096689465096953946384313775616561010495037274459486401483660311263591654808853455290549656173045755573077067021280528321301484702518833787581161455083952628309276419533814312220419316140267774035724290115174602047267646235523259857742952213347049189548691995640203653816224461424935196779446696498860739424007373210259524472004457407894142249277849885756512081463213184987437482878010862388952498650548694832767463646516881369930454362593424753407720752330213275041651777996793182453412930296850809449586686326396360717353720236791473775379477190007840500409859659459376761576535459541632912746439111036922261285309528323000591196807561491696934458172229359625554633144840186654304385656356161853688375650548717970943796869490039214397233693714252782519274421703459331009766113927630413085134399540400169058215372125218281614225312357805452790466928619480900845780034166439469289284495475263686600739979818643057051638935056396351512000442835957937171894865788908915897073581347352972950189997512784544803542843373673636649255982855579581315817851203061705204315873584550976211954678624058837585423522382692792455844997137146345639599628695498744719789800164908978658117748689803232620133059478052591668513702402885380177543478086069894663679181401508241736013989157781907475694348903509226907982621054665492691266822489189827784514001389850328461325605521520681550724898796111065154816478924686109502744676671255533439302595029723388423633655981572680498541989374386383241106208283380865853312515838847739176048220762967240751621838334071995306937352450161454595011912762961148145005229359071728965791934766635639602495255165329305935044341452815300028039051225644836050957926186845423992699987329974927766889097382642907129210799804423176807842179121597366278407734637659133123466578794502792513416509481130676794231005137387658739803401871862563634116755276561001403854314756056909572388574729642364415214513241104730343834889524767592947657403807344508630806913148382142780102215227347696296445136784791568933085667803313469483110599674676687753457768739819927896066276237598801708307545263433575988390696370462430778151250118041220627070550681597450511230661867667277252984422133076426564150998263231140904049241518015599946463881278622491495631404921438555775660445927950837823600031988071373282888609147839763378888434407796102608222035874803927065621690746915695570247293195458794803192820732974415565828984325724762976373912820511594640937016546232852194169428756887573375637102694530710416799746769427947385478415422831904011060428069964172967034665315087036083310179422689371030469850827835613904732462505741107197007906640235863092640743454384951405626525232080699088598731391795684543797968388588772003517661465282750523369759243327104912433724353608719365792606898240575933300526760919927761602487397877374154834102584266571511251835130685891120268790519087949445974507968093264685801018738083603447320052041666665386560719580317604955649729624095870913941808203305640088808081608498489956105542798340978662877050572940931075220140500805926430683906761350749748280135177062127022487602813833332916542184022609186687977385686073249191610242867725056584669355828885058905974461759317691526961134869507079502414997402013279233180554719222656752697625486769464970293467799166759312757788933675590363441454172080366372618440013349934338567651891582291176142313568636144123013656593510207245846272809061032765997431167799516149868754567044422315932784864376323499612765734155175997907625730383397645413241930851048693633661869541956743476032598059057647670288194277441027975732898536330391367696286104243845907041268418424334471087156009275140412878130167651621405383916585655747832656079580829969212624068293972228806049220223898150598810571408424976491227850843992182278099084205280539667857564261507345390106424592273916559691777673319113132598197703478517204816450708686228283539853463298473468714297186344095094655069975248632541699161036735568665928544941752547701892521946065064985313542780859702405547105152808006192953783432769625724357972185425813758859473788738918597265603885080618929090755198157037226264583915276434299308179174956511774916811830985787376447136121887357568139543475154399691292891172788256093244488046126200110120579000253083223631835255839779857842502794982682191335920846562457188793970628711888796156342193248660747389975577369125705582327612099818238782442113316493270769256243896072621263682689830763390684291060951103247270730098791077249597115197356831220335302268620133899431657980997158169938007641935907161438270992779350857554975998934810842690914091882717002371251877345193005716447091393564323395697584333096708064369562762022784785816998875225152887217819401935889039831041606625222008500123987522892663908084232767455997482710934395932521767212958867692656734866733820761954632089089838030579442578536920849772735793108200702223083308544324564032451672136605967475574869667858833413687324384975238387208946893717565861201206957524585385870042316851491788792391181873376500057531748909796288821655230378744842287878484015015382613306845824456256540806855758579495298035280431599513969017230929862483806768484277054919984142379668799307658046673941664422553033065049088174365367735876976613617323944302071517780124263602200732684053515245488955066011872566631662157536793470584516216014827528142981069738572403615767603869680286549202070108028349850349004133966036532268586831550386063062589088552432045665989863760321022455515054932337195571261971114480172182411735348850809700204333899449742149200272996384244774906713468471047652301496563692341734790696979957904381670884377939170524276940882460026017921584352830935354227943929367485367423488961002994419729903038693210317195455724526126991211844798464804929511860406792524662401730686170309097278987268702284516601678625986066692289128069981308255863837845805488159449642302799433213215682872854794482468352061555696906182690969058059494833168701398781619688913134648403051791286981169817452341525515804947386112867765046675630071021135647944781030712711199160019725508625713403103631966675440964868251503637071127955329211538523487790506427910855362382532352393958453990205950479684263088501764046977933817510875333391207364009061022998866068702674012819163773620851772576769425128039657275829041182168463605713393155404996254135752669119266405371505791874009381326442536140433978286169519110214417753724694106462774711328552588452334807827874977157516281333683944764579305532767818170915560874242901414300513793575898241359176714356636383330287160657131382328962037445498026373498647149087075948108427552627328786551743694442237640560310885572999595848381389830917848523809301254855560065501006743085031742326227574134314446208980232845751268358174226023366571221475212568136893426807826164733624857849589993367382285626093291727138082321306206485106431361001155147791010550953398612780443414367462595325770561307698839319404712985001201550692751612255766056013841790030705315216780120258487266801963760467585115630373190979346532023403362695425376082281047169289921510036177029776878392558609401136227196747237267260601225707852943202758949701072306586292647530386171438652285527408493420728059254823809599043100890150080132590438434997385437732830911594362173496215359662904944584963356553232092419611486251263354530572604845557165946766239041429794206987744597085810517924958025160524108522324670503356862940855640560029035735641876269474092887869430458473007321279982137212696210036534869336440690383198638629552059825518278461295844761901897377405901095379977973222324319975938084673880318953770810844530764196292668920952492151478058056368730008399418778855230852175164299010679380112480155059853571029102472594522531871539911111751855945534391143885027604751481330523982973219149811191268764737524484791956546347434974721079655511707040585537770341141081307780065634861167477363963304595112025338487644486008215810926877319969179578404783455263429851606532271770586438872304148431513019751711683725585128830714685591649076281272875614505096303723965465700284827903285176634014313693583255436963828239443148888866427709560312710214759068298030767604088990429384351608891225112238180299315358148466708975431766601669167589235183390499947425761469350649324276581407650901018359197850277132022062992731393246308393413485511390899277788784120301283109536486371443356582450318876577520793364164406492508560207955808153898516625457543253200748947583993906953682622131149553084716803072883584647984602638711404325232977164546863928845546175154157300474563411160695632328792080875777306740765616068597077257671528792665090836006413203927790986504754726967001110794145336924570262938399684323384824729643205233226219574509804686540342972524851887098848852801987069374937947414702974954077564729811923409274469586020358033010735191447168150196666759954910967373657364707828630786654043575996700752973301279668799949779892039056733893006829840195216774798642860762710500892215509798809678316894494053591792012506571255296416325859969135371163202421766595767512680418744684183800856394493331163537688306234487339720534777575126475715990331514665825560494713361547508380404955164829055708783960600015549831833449333434398254219048939400790563706611453185678696267318334384186846728568611496098799423021427008766160457349750009607729626166981612003977906984063709913194473946510430391746684267496690292836506290958737830628529466705944477913190477016856868370277335961244558813687876474424580481848972937291643570006146655752998169436536150480631124035774667007120096631592390723207834337490562127255581673143207721281786625257483517077725110591785503165733535587232061051866942818619966068191884980578700676234698756942864644541693879363774164343304503207612394685092977966497646106104930922972246003537417448763343030669852686619336025170569334046871807874955965835737812853233268586025395960229039951055512274290919311343499453956701656676443388266398750379005189730798087177248319090564123153567480683015137434526844977443083458859580751129190192143888974586967242575370083510110505720882665389249549358364725923406069522299462549968761951225858026416232587800066049398590474228919084976888338517257819377982957934310003855109230507564759676631804292191913544349779448109736867893918993985718881659425992684020476349156675204681349789822562001010400220816906472870322518089252432846710087621628024520456634008822545675996498397170720351124409902895186830692445608181127935629907866244127314305763992201737759351299801766262638971136251216411981677461969199276470340419808064404925174067070630738892131334775370749861861273889821185321643004143230836308575499612164575412911644994665561077469258487995015594351702356197737253075956687623429493376190133105601189543247719380292326740067689139297929533198212459207414655999453015907033784105723178316269085314959263963780917490519893201801133476236689079944889711056307993098498019487102978968990519247175027413879282267932489051310600334235449620933699889351459419515900866715471232187776665803437755772363094346647883543303197624718585446095106816728022712412312077977760887949541779327150264461997040536857811153804802737796064142368381119112081105436510911747403984564193803151943375213685223262750515222839768230249139020444993520933181157312074067350430043359050411713129928131129293543041319067407389629771174348763234669595688564625545919231902715621880066951480662795033209225864020362467385092695734514277661780096699415229614684843530674745462157358145013752818555558676299921624740059585185369209584268311769374337607675680369321308036809206005404373808319100383192928359462725165743356760560303487515455090863510890084878768271661143930684217262870741939139071768437457360931026561918582445604547920660682782310603360450741577266046374741177750375750632697493342944628311245019919788680007490152697024639143973327296155670414198014039933871677766722201831993421200331025543293030258639795810009402843240011429399897323090676983478547190061910619086355841077206729885096123437297477805657531281393156738068172225887953259176076522215885571654690931450466354450428438200950297892470826952242421870637848540650129995205832273054392747986121877946472540271996750747977655258779963625649535067864146050866592334920396021072733710389640314403244459211004323534753049987864168930030306524809615447782164645023248022655921425125223053419717328629735880182662444302071186374413405673480534937711521156397518065269306452977305497544561099348790384884788480681135512697837375722890437681506195977890978744895282925457199441920885381988465945531893358265787680181648630487614416911518473840373887194895894958851697456339832445057945338961936931922735573984614655227838377716225822270999678387222414481961363964436380275969630096765668766870836860098976139436657107170250490586711105211964940559318956528627702203659480466931661640938787628439643116421890233251486818425216522969853867132499374916798650695188709209017427321815544565154084722469941433688684449448741362944567556139360109296692483953767897599217425939757705181112184829213124478893093761621484729866035568645805234710797549473535706178741116591879100441057876536238826002603336133904445609155584346970697104087348855129598227586637593814121778550966502838050042768328833842287458822456601584614144073278679365958307459774695853016368759970505056319600260450593484346161659598790795809292821349859979579712215489392483131136055880527873702536750143753829591412265506776729778442097206613382568212512793712587593275918856186361407820721168393399078258437817030215673507887984083198326333399960720250589686117393092538708456913242130219261026965028109010130726892356775140755095210564785627648617220583536565057765507879032872306767575667601778078186200140260369115631054166478120460423496960075416218573481877603351234635851811807423352947726915729926256376689106779640632543137228918613472667963015849596554089450808934471761049802657569046240291367961675871833633582680335937735279664342285368865581874221386704488437412180010401050984032850176343519382300698329885255403147200198328103934610456145395998657173741386754889545538261021840701757273523924969140727960036177290030844486982523273196638365346751504039350781009701389431782142479199763301422469631219257052192491241272274114099661277301101694780995571216204386278882318407204691921360596046972630065378119797467354675508541304500293493876536457271035591375243786168757093932889152271190846790621800704649975299311461272832567284739812091201326536005302049988685699021465625132305161574203754819492728731926025509743637366065658878012799483508115778668792411572960309048315307983853462272902459734648629564422331360961002320904584458848347466972129592238429334326669499001919287583445598030128471081557715014100465946711082126874010169536952150474215631918559949909202732336689617880339331556267844040810365904566786693159348685154106072019374038866930602190642476478886839898001721764050025850237827241772865814510722003917709486796888567600841788628428019189202423800433856546486395023721558377909486777670748090675061306947853569361581259614868802447394017152014637845744942427429516656226639969216282386561767226764195647753021280279023340859497185717294299878360716767956062659619896049391006319825873616385715413304491663197828579380997771908962791679852286960503008956848860560952317243135354533008104618058555174271892487636292224366490741788587330380402520867056433904997870142746346816061508288379573858318720328786868653920108296231598807673169514102676368672100050922833618647027655810129489986515083235514398975351034945406430854708820022994465981730855652711701221471153243497408010110717128661800194886126294087553747874262428230553398696752046229098850914192624814876148797417372654179690920379684064704145261278977168414065902828506298600059771070975671994982665784990610470381091294010322866729164967829700555385421513505844384792126970767229492481330346864348646045832416570364668606475107026109527995165601699920660834762250900428291057303572324760230770154445628496006781563954558846882468515842140884576777178628464777918034984317180366122983968569908432191942595259849885637796358089894851235781832677055052748545119618476728055762760066019144456412879651573789247877929798110324526882711400143734479946836789513315760603065298623152583185801759510790465679917237665177715970494548385696379124737778930773080463113282127690887096897411050689032175650123308854131082500228391224026265939224304387879453777616937299888957994557155558324875747982753242476554866850630529041019536863844868002702149577758325700009036243144106785973606938548304953197965433605955361264296232026443240746984055891748939337385438017196386355171348699975180220962601365009695781556728457438680118919813813036123271392531974797129105798279336383397365787058698415774022034275582344835833397730780218745861067765749677033646611328728291114182616239706052136096229232999701219420268092154844337027348258517887279395969810014493349042238506284664521433328707568632020364362026755243185472930548281120268107957796795887574273826619954443706342639708224826453465363914624343749126317217962892934551608469799624745971074065917093628003941025934333721170536003650428786322447502411447190124506490994488178125200404700506658323636747812502123757438043576099225146449450023202250050786285981665122647326878393818394343129861805175573096973323248314258599435380404988603286261085992965256701944361951909694556941384484793441507701417983014015262240873070414938046773348129468155496034831580788618319463600393975485608798242492834824561711512573632583968159563818363393775704287216820901929085328591286619978495895773630960693900749592031869442350712732478030227962207280397693833567705930484688587432583915647445389836693222120280116281675650418250472143817310260914677123155171932915284440961043288596710614452603646102405645248899622385308524272041207343176592303097457088849660308404487336440098441546837192369817943589941025972233894012110560876957024356400283959298756508412148921336312511902802722079724507901597324163785587009941195551372968014142668602571332761788537057464773721124523627690938762100384430921813335826354944159010483633164362623426300016269807499677471993459623208655500451409848660064530206729973607353491230125602476199418534969437803603774641571684364730473416819398034184822249667870610142953295119622413049911040053435165952549061434530949767316713699680221543300690329222225125156723960743872646329136754439887913970246190958342197877359556547627228017392926022147659349828248617135681941761905593633657207903510653877277350492528773794798830739025785545802603069616936345959267021999947593698771343973726320216153720992238421116407121925164475667193490252062713087981077639977950336068660813908574014842790273117769588955606628323743714465102316876403425363950768876508598024644619376669639537901880532589061233892614502885474840606594975483008601478835760219578853728386686095803108820875484609061049836049977087732366019959432706002979062071311828964211187611093782560297616839343294219897523629824608273181743706346173447687339683444979001409840577131104561736859107499768801645192412512628524197482618237032166460191442587935053806883061930343764874573558313612462177691140358816039149930270159524593100278043955811341365217211440776251471983615274094795637533922260186745146584121252155990420737207162875483304263120826637632916857053011779844542273340767458608830347279526622005446554392702209316390121285197821509667787712024486210653399678299281515614734638422589983064540173791606738421670024451182815353633771608181327883805017468808543536542907897696460264528736055685482297224312240252127440335201352255408413289368195469034650206034880426401298063363170266222334204937579211912638153167870538498642433381765485681726597534914463724487766036737866129065653806305732356979860568095429630817493360878814080479784007250568988560525738718550084431100036724239363415035111317733542160965838757089144021642860077506603880298893224539402621792671283705919178032046460947501597650320294311908533097731375734475490390869537722939743483659434672696500002226156094947896312651066002346408465320983191944236120842610174774802998326773543792794820851074072729373979576602997151147182669817137925440788904697659013099816440701789504073772057761042026068302452463621012100136407659024892779022292655028716616288512919300410204393976975431459503289037674468126443060579536560243048860821505809215777018093104099658632523421373843825601469822480084783240942282633256078639485231419138981767441135700719034603924406216266764622277050333259826607233811306165398157567850981341172376052612921661765699919534626510024837185319929615853674866204372573879741826632998287325198250793774757013734095105770693620705013228717029245555708668043888360303473383682946500900067636442697615993247030270744757834480262038727789012880980822714648573475572943900462122474416380401626531755638359759889336298302009673877815796465044299323173622821683416826230630834285306774617222320154252807475929752828922830094754884006088005489512164945293450689118062814883546815231454718070725666463579553027582607883604074839585166677511169741931712342606919060897107390273878980342218264542457621477377617720568445000284197808803020535518345902043101155017457446337726484718591501340506262327936990261491847113436980200428147350859773507972322139447766941747272640756920360542941625091006529689283548647343464188927299104401595920078336024548550592325537468941688011768576569067862362400345335386503243965794949562665086164085614342816861330701624647836713569203368770164891387869768087164138750775325650149254241073759111068774530732360265543636318903458270034724881853740217008316665068467267521866264725904832309487050736634666090739437469200966220894148514804925527796856890522844430859740766581083739622358466749139362973747069606161761609800587831350493918325156687687769430574434431677133078635279323971419896424262167767741249128347684424313918025279235564357594120690973748286160203030925606256264209266533547217584097607012600918534049980715764346465961629082090421011324504720629217925941214567957940195949904596617799733519008522533188449504690928338779462499195101010777738567430165233893703065686336506911782435192428939627617590952596214001059073276706808031328265450735190207562847652719807863543585979115562877365096079602821846618490091529936518781902779745605747581940741625402986024722079966905240936851693715961788420789966248619798532893726986864028806405244526721857451049447248893065543212456145412769334492545668161108663597140308804909226338364730371921935290868721500427120894678134582782091896541985324559023885934740812865700366352542381646095227708145496196145814146252415378846097928871660307502284943538724857475111113117152837017921708789128446970848419494223401494617235346336086850428325878963164819119886289448400127383228678588317877875921000189953434411763221012530607464557365721845308651032667658182031257683090481166609759328755894467818247786176128749473462338000198778262507493560118306171888254185055982250677620061018819295375996626960492216877133048373973586717526628611313082377592536244223196749670242620866616351828738378868175576718009346734333919709445159885304519181094810371490788729529017989308348996410818399071119386772292962342885802763637367343664370905061406205334873218725306051667202727510969621633876615762668429546075679100534138163523363997675047996550916879583757149135882261021640043958688419417483570651966917858671658552036092334810963149941980340209506248108149229948622538462392736471801711807370704497338579879639880265194895018629982729129035046306860699129388728351877395113354392616133899849761889623078376601854386743142077581859080252831626725463590805650140717788129320014214453301121910814785891955731974451609394188692177878259275329618851723771741055398892963153653134526971644743759933064351691035207661264922422792558413867925835746969661707841757224281801886028690685509582109397788158846490855406278219254836622802402428206613545091487030085232230738049209882348093196801003235085472047798628418020451388041250228954716786034582568714897114526006042229882965958277539567980993806859199151196840526984868348226643212053895234256864356935240085920493910870422589125381311326437050267334795612933819374827058203032828740963245325553216658944208661616793289459655035664993697814562470902218988849734859265008252158691504692074842698153938925233689442110933225579718883515100160977900237261707035636675856634955556810913665701936640205919541643079888844499334306266784651121649095997175829315342304382658654023981353603303162720090291332930381245447225222174997470537916693798827254804376298963602175388725392465594539706872773432282129074092857966599018351020175629215414421885942759836030887472921086091083596461217727435788991372311002002028418181892918995837037315350718225661098682731918084619266761106239450386120334283982323550893700164644802701362575414114399878426559984943248673474117213026144806920141306799278259729616137653069840605229774187417681547981835180654183212668124536673615046847715060279245995119834775409656240237338464877541877011675156523306587294118405028984813346556680234157797906771291219366254963803744722244835623013964443958742115572266812152200804035220382107832464318163466872591454920753015598857093896276492286161664189755779798081682694910806816150142578750700758662970534167289109396736882940876949738383633005133883876270115439692496460296538728879572879895136722769130048195807961382188286177599025107042400888743341808878608513917798990206538843730852165179633678412635536273064545141553117992255309388316247633570721923946739600087591918599209074069178145992394120165644002885674209922838712851464474816162868055811497401118767295017696535033124306464263938167659240388743575753916578194566277933395107543281231881344343328635356050404809344051197532246589111225023004020920314939853868812972869789973224230785737804609517270496425860482381534601481879578050723467357366304939005966927970285668499673971886992899039978882596307965711753794810263774673691308978765750063985969461885383241987302693777396520835059813027894554756224343599124094326249071285459869466767629610853620055574658005565536135290583467284194805601932248840216671543780682892399645215032678677014898646485076988774151454420309810457378079621339177503812024660180284466038030125288116680482657371938868231419647002782728242567680858705481156320852282751208779459738010625644640202765778706863001758876221384551072249708764490467189463355425083925874015094649157142151865923542851316508171683458118930052115972790668864093361593399512732854817630001027324836229596601425696521843697857222612085957003298792845916365123943260001340512501381973078534810230659051395685795199687144143075514933276640589206406763694702383410007625072055929833590159455946114720415761198517757232104985678834823517217641684901062156410275745957766337688601167936459893123582047248293573634451166702439825592088195593950825044786802028552446477147131843074695152370355646588395436838864375632361086167477451038928522520232025876552876631297965098199753371269658316490990265788625565789778448537227262772534133459392483535226327399388536463862627327935042065511434839191428765976532404989069650425466034771032599187129193024136797367516453324706988302221960237139808894517851315596002625707172395247584315611599301405320176120126124827541743763701307924043970191958672246430959890137723719076046628829416546314503807411416878358585991233557258414975052861789907143111227007941696372941471248599748566191533131314000439187824500505431973049144141743387227838516728740660874891404193477482290756056079184739413753219380328416014745793011016190391714454261496524071538813455407236846425223210581549665380115450133522241539253543176256323927099280609434732514909387700997134734927550193957676804220048099885560119287269674622193794100058852207672160211836279617298004581979025879322196124194893747032228286478210193750057072983065257694784194789917042880563964380366278017462409688134779165448590830981187519806269321532472883102249073426752625307206642643412281401658853999753094341134342159803240297000660731929665666921346823405038148833024458393405409509888940149537478793970607307238023771684933226777709275184971052182711781086022850183818062138948456169241020061106401847113216775531056257299476150206240863959938491307737655639831837175476215984313039197859323182726022306526554703914346537305897886678495794554533635753153875256235849066148679986838643713584261127932123993147488225456440664135631149099440552398142968090598870781303224965154572190101467560374998274288076962868714466381738663300696945540282925186630502756468181942215890053332291458962107137768580557882408576960555257747016096343588388865904485509283525854894349910380462723382949967023644089443663763144974513367583587881783134806350823427191575169808124483990008716604996589589816283602524087955590957404683550030110866800386545834978691329886228520647191883156492561479693826721356710787679593618582085545546607446360958639906447171685900580088371863483309369237183992956333434927735315086659995987823071307363357604898403494670260031727144009065087054621434580972299629574888605140568993122937007995364072786214725225756437297184183939165651981189456384050805494050387805195804494263614368508613933428285367695193572199579562096264621147906163132193775901555288442453409162551902952246454557191478259879952676881817898991132075153906682656994846673280417950261457373084712621275321863667646546985293562371772076431889812784459880730211561031980879898633192331750845795827492899486286247861911007422576383487327786101085644473705163027618022412261608020875845120487861878363674202796287105125914172066940896321421362108611809121330630954173834659730885164047508592614514059607142511045569707107670589206387166137768569274700105987993574163984863115190840637603062901463781398889541173954585174695460362985094651298491392425008355238384235039231524548240939094969519973625340165782629328782065765841288283469027751330125113582359508487520061087243183194874500744377397583620320983205996348242740704808464451432731874299610628215862433502294927879450000821720710320001809915225349938381696112123562386421457607048991620527106458155767048202899328473260714065046517226141276025908231460652229470239206976677756534115964616605608832944758776503636596975814102288659272918278654627844877260779049472897037808247837352857857542407920045172021797731584634232280453490513883993192384856674402055634871387568094937603244693188107818736467757328360867314640510063194034211518261574412726960755970577165135469032521204847153149545959335397667500910581410672223967163073189611283455290126683212962001994762079108159959998110823307820304925003775775588810738616013797376837192332402105947700438041612877518642399939577372209750388050154518677375234401062363367465153435011154481065908028629576243299459835671893346610573793151910690068755716178553695954051052227986645308005814154223478535135441045830435848679278435264305551085104285751117493975417366423283318521765538329935141748519848909787360192408436488602122398788004720497985684881322904708696870627741445665890699491485499229545796302275159699875245395628248714589250664669454535392195314113968630960438698606284027110834036589089692266901114987017142147469451578789146114729188319923947645077051299866703685083994600352151107589937547228463088758459883799629209087162016334257356169397010790807219094033108126347211994176755450108786145320755795222497246589389090058411295912096029865217308705408455134630581400416882555895507199164216897201661984240084863512697963467653529528271070361462241052346201678764885638464999743655456682621024765248498280717609047134318594515131678889745905147037585593817234349479120232027655229685768779057287116279249383351000982277692221456065879206245330939951013958173529440121324998858825817236797341506563322185312352150302491361656670908385015801203479149164551835983756400858133583295479810726549646493110604499247745338085530690583923760129896158855621100671952203171970085428239352525332340879711083890916250622380215823113315611246572722573588275421558451151338151003121944758401259960460731105101260284079912295739626568991324864096884011333507350513734743863258639577161038524041973069838824461512968787172195297829817981764706482430819353420416003922025765747905499247456477664947267433535845487985194328315283307665718206668792851371645963547559756025394239190738339157651585997090817417507524499576786535518012612600142579661997180650085326420322001016706988336816131439602551801064609930853192427023958100178536157919675395974925023596177233582003513160485723599103547344726409518063261184873013919601322371835968724580106103249372262679171497296330876693547900370321374683978020200062271817909266161532648868234421337730275892186050513785675562523921368005098926814446835190569889598606943492405871626053403710536351018123272916150642321529707994878384087147107029843972713043594752965740514759245800837816205918365311494852346526739030128668872140040299305521309724923040533074323262387730589833586570127361860871215986225057705425358518482749076535439605969018481799054524299470627930798134101949901477408900286817617515427454421725600901804423353705355501106293568980348220431027419877816682150102374786161386984455529185136109282689533328054804172364372739740996036706383471070196114683895400441797182999122636501802877942635458751101715121788592327834236122393854760552334714080186166231317686312933483932652937371155509438184725614678021473790345259049184460742424285411151427407054454467554160866762185118313093658646917623792811158237220528741456001164793588021383564467474107061346806549835760445046220841662121629780801820306599170146338769430384732997956542894410785671921040810228471233909243207698408005550096217949075782681147604110982564434141637512688673948935522065901053508312369554320194277585943297511319073891309644468333141613408637630658252560816821417455244589308875616248600311745130334785553634685497358953115707289457185782018028837078311050360178218385846644869775966228289061410686958143209295386995587129201069321282972839691089895091478586422555111535962829614448924331563510023667701861771358067666387992878669828380916548934917995880352438841123681742830137281560314749923924837960625706107039327603597137715940068715319686283297526364434575851648347881131890819633770265568609255982297998915828134384372721255836847786050538416845156045856331742389076586462830068516203690301382166681715628557800396614811221921969842157706721933854226591945048296550698643596179313787520368296799822930895689124268867485183856331622414792823230142949019882948934570666690054599683820029331160888578463218542722500274917454485569205047666104142331695505580939286450404606804210801824693462861889026359202150025435842651811691005383597412592221669386503963368132334494709859876784447358597226215295147224930021909661249838484806200081314897810206963344967718143219499375746758706576072856574644665070878654716973356791968939340748374166232002903223535645199117010477419412194084324553409783612034349919052639505779801044210325931759504231093237248813591424317161764715429995808051915776724706359119206921698881967610837626599509732450301242894513464101415255516692836617947971310901322024327472630894136796914020316593778186547075258946964633346285297067895622829321637520434297539019240748063167927283025711997710427576772325711523089120497187415299395244815938218801598756800602140004996594654130243670633581949311843214275917581157984494583112587442492071656266289122008612754690091971162645163912677014234191069340101663839882969719162746329937118349353765713463749058115706743134796815362657868671839567367547258995999725260490772808603745170730868273790231814219559737931157003647551287371944369274477573832680636777573936390345858167701969077503821649603174340311927089492590534764025994578263300376480024871003641962536795422069648252606334690075232444688667768092044097141961969686404793983386639457946104686438349546080495218774839169094139733674272327394639408114030657986616423633722558903241575631381159148774676408372809959277143547545157459213753915837567352521613794208878589411375930422875153121188553896222351926617272605484512643421234115841317144643546892579850095795928691288501340377666696149611411249339068583190986059761416206889274684445344958786553893703492323603142983293996396934753552136059177461507113807123760935915807539698407461933733288633974978624082308134413525553547157592177544432744370996441819977971032799649579843328491356508461144875697057987283992083271294206489448344343658601784181141927185638578458694330111584465747246000528969233446786807392548809833165175172227766335030670781197810236473787278158883801277714040379230499008851175298021333533397628315682750731764509999870567116089330862594246711216533531848772967943062758080275639561104661545517844024639329013057265365486928683118287040066902604803323735168435258896929329389010195682693410156066889176448315065624194137278117206245973193795698556397917528472949943041343405728235580486198563267223642678918502384362167979558331237965576284685367955133274649299789255529477567476477434839073162967374028658083275396935763971321655731323248969061541591447391482425710165014156654676366849538270994509461672591509129881352678305758106967090244359593928188448432406012884309487907577002342513246296940635644674271235791883987965958696764328970025292216166326860831967708670075265164756426617332366293283103011183865115015928144070779400484194327512668885878889206343973914581824919964337680691789502786470838948955614566718369189270358874374923135716857184176202014875064905659665578058811429279596264475653395196078987536307907149204978850190340567630828648109859551404129285575435745570596489153619509525659240270511887577384633348529037918337623574407223058436130849439729968855950108321006561547482269289149146224586202434469013246442447354979584199709440485448701244670834355767840305099551872520874514281840673810956585719895949455104166213621599611352068812279960160568044335483753263757633552939676399397615914771855370839307054371306516017470072394557575932366881824477196284899439921452795936071961872200770139803142603320653378537174871420862523952730481456838574568670658876139638712160069284998217942947351109124732894924842319569624822339044770777012807152009228329116504128224120150977293120002141950417272155715165244971980864214773481763158471664841808117742824194238665677344192793599668716447352023334757502691544750133188245536870890793631706948465722565593158621138625396596572830239421354069635451349705165687655069291422130892931529526599257133558183907867906419866742676934156585743030595055676733741310156317439107609414569386794027737671164202937338290254313668267485547375550811834153590771904893335216210810707032713281436462990580028647835350819746226432457636232501223954167683981204671953096778150795342157638125143600608543043692869983806643397594161456330206365944496983396276846273546047814752448434153946714111377221279528625198051518967593235695042096907366376144663046245692895379621496200729761589500504774602273074729987858146016527182947896930179628990383822796099647433378821663029147140651801333262060450371430373097816355835456545388569084215136176100873576404477053024608066354005709786704670371982848485745836319260257632025765263615659268752462427451651261851578605312458543298746106921184769568257047511108642733679921270378152025730651984327784514030675155106224486821693249519860357150796948345125463617189889435691667933076961620917966824557115307486951007776470411976185716531848989986094162107588391469752366349136102813677739480195354096006622336897056795320225585543634645752667843286054121707241473129310641206138979461805612517409771317607281567286020073207347254144002141240233243973765085507000487603623451226406955351368755763093401635541539710602551597931827838889016496232615843909313862866334252152977726590629430882805018572769288667632580012499821487626649775275728536300707194070482234111889753388429628138551775469611620877687515637967126051749543430813853904409453912453376983841824098885317924042098472455665092283454752060616363718568850597818070182306022454049134305012829957908981767540658073644926554918541736184863694192044008307777809354130470991547009181798419191934719321066750800448673223380414956226977047576115417454287801970509624145597199846173633205431370488922115726304490750368993452932656832118340630840439658321449436345703442270815478605250281639184952862631315040109338442404644293156806195586625006639612929146223373583785815023833054078434948652172022885268320636861908872922394598455041118441325583222714311760989959167192961338660873626302313959748092536956455293992081933182675752177393559171953580110433825522592175229245644073694861640702051224075207123602159520052631762800548499159857986539960703335497126379166318128059047883077284124303022212024975324487519053133695040199127329519546760783104624809517383109917357447918558284899751762355885314220667709542964707929656480322667752836478309946290195999452131187748988515501688335322912945541814635247885147498524683717565688704841710212959214619431282564051967443255304684144840133092152712870032778058036609469385709909110349736197222742766818793576516011449045859602644767185904690302315583124565903622614908052675132889684940717781352525606950674551000609714322795161476145511253935494988492464058890703170735159085660164237066260631437581812478949759606354267280906688085478312158416064596607427927844754045361384582764280373144138286894539282672759955222505892300396262239361438722672240605576442679066054258451423749706375517427820830968969930314027232079442511931947095483587139938285275692240456554254414162515047408144154056268970760358332322785094333460928075567437290211372191288804193811387677968366041817049192473898826610244335481629615380468252219101971918936272937568357737527882277238392220475185309967316860091681057522733050377107096450788652989923055844363574956861647849243078639384284924657776060550014888344070910763565198807704299906444445959426081044827046581308906319027003575330918342293440912634101165187165839299341607433605257279917526571083698788697522785648761103288857684281199448610336695980139597113469236422495342083323762624849232417828250732564829709849588663436414647007631989761167194521967798301005288268040513802612105622226507595413450131810963609183393868909627202590135298532461301380984400237929663833875223201865335061724697434111142456502680932517339851265790957532624968366004830831718181869790442926560268616585069332505762775125975953657760070488541295340014396146014662834220814477605755239758038437721625513487306557090378939258324047328800355711597198214328610562850339137356970970621615394321437307740556667546084759978335823000591394800987831693816917463810027217565925833919327459806351505902872980561061686289698230432324236456939438444678136151840885601538888122868027998529426130045339580152163708799068477928650550870707964361432301616751969095600722095708401056584368212161466685469461649861000187581319862540776158873427204664770434004087256755218006377178280056765149184864976719792259102444449994037879432057617446078311272507871112426283081550422441900597524666168868966899120203134440569386830983896571423521626250302324237287890394585994463150285141270240559737360712217052574770934238684578944823429389187876580094311952823390127175167857528803257580680640338807673634846539662372078562606035648680956793586630764819048972505804679218780537447825655946923930710823746013013189882448779004140599623800502592275661126555366137916292140639034220685107666660453497050780887584111342415833005567939672602977813736845527254033428794800969241324642771663552947700426886993825486501073483694217231152012782105250427823567678297764908878743062803287989873527520450568015505917479159689596229151398132420523187031608097922544931651194539298061464352112838886695330825248735637167820419705997139580228428876880266152797992246603743001973549331600170360863492369229238233847390824255554185940877978556016149634286917479332886688837452821222398990312676545435171123154102471784737449899268956134147262901757908658545615187881107600652285671485435543091837301907368696604777580056605131192790361091729486445290997834223005322018332976972793843716750324177269978571927956979030330360829006984292365401089765360480670660133400547384731780853036938228746161823291159373650140195821901630356225160154696375691101457093357461354134529576766709633635619769862513077849097848405405739214722714937660765226393833259813584708100875154362725446872049738960778657189428560809479991220049964475028655977757705555705219920277891430223130214754298733621249445497952321151417910841691760827006472601435823830514720451350741527676079096397466183984344712124636590068929610258057399965288645699401694346167828770957570091930971880245224122365654584592645200782187157493477602196822518510996059406622066983198539454575939184429684872749674752996236975309700476557797739342514838457249107338660592889859755766008775405413159658664651456779377505765298646457402289149383987786654102985533915758374736926117371490455568775832144604418666428418055685815519343512944619372245937596397247511358822846121552400349682246285766953811047084561452166958649175944096527659454947783651951464303549154326342669756246164941099603406804977345558901545176742598580472482992026212069113709758572375840773709579025394369143623100169646578533767100034846560357488788386925470074456205211862408691600328071926691977122566082768034159263544740433309123662437119926683837108301426362101116614930598786987553097405139615625513235125871255746668766553133158037795399952893505065407426618582005091103326788093293299813842519263641156940945468457362876154887710939512750203562852280101491412137731219219841851520284754084754403569068249251788337822106477446167953345132305495437281309717383622687930355081683512237084930035077947384636684725160459090371346638695413719470096392111037844257140788060450991075591212890595447924979246669011702082558013404034203837394385586172990687224051755140131528935141138569591975449399772739573237801875991319510567193384295054954589710889943207364093505035078880018897466784963975303506932508108810095587000702360191816690790802970821652474989239843109949407758077482630059862381651003316642596712966969573462457670029777822086909393366601910406482403550236297026177529646073391475436136507621143071925550786156412238316215377328267380378497690559623082277152190456547579085265802284981794334836197257000577721132115323109067196199808693114814810239332905077174355099459293724109229973588182617540218403790178518043683729592790580764167265489191208595901994263195064469916002709639053084104811429823622681792049649997407370933338393159962680659755002946763338972046195912991356509173874037989098690539892602719702831441592164759328876441638504949835897891130162515424441055918252125745881664082665281799630498456927907885440025188103786439434660469032550686750881313732236999580476859035340455313614281804872757235051818013562132461851028077647361458653837557947181973175888338983762685796066076831098253313903306714793405699993235064756094305769530379429573335612690439659852662932018094874465433053039395155245480986123937574072622867080011912117345489798769637972312980968005668613455750319031901324665533990984915155945534497036399664571847031986210288228407609025753369019533289138083910061839026431488399859868573351885737865323676818118749853965737053514809567794922571023137746889461136542225504497774600642694684112139002991370449084979012873588937121589485393662022063190748997117637785749771288563003723962861743722867200286749051043296640432103844886045437392881503751269740156013811024511082889398988150046277475671291892933482901876926174281474164901511920288720511946325183452050172453235837561757202081101110566722300051665348609987569233168764997728522423175665063233644914815386850515568490910300525421140404857529691933696825758712116498944815976195452760516505195520492824383907174518611353047604652868869104619802338072349695027462014730051787632890264444192898746888968931458936398849219871638351938189373488838424567463645566475838144580382504329193515143714177832773031425000304520066837059992075771934255117257854458013057726209400973426800838955429340089891417095993101262469344794217601652650397839830949131373863886844398743714843163478595907508467050770821552096795804380174984873182861864826446824116569049365377613399865675973848470368673150561243066983345163611081632352354787584407829569972329039290675426990325776266972536186697491777157261521895191939025543865921587132958281362883124595160378524565211238630703119266766209031928450371572098313307690309382886964006385326667702208217878532012980294973102698550707195523076758455660152922349859928233473647910186480599610597368417162440226631706116585932081983509465861638327726507787920858520054084371586863659486806898154011801618926048559541113593287464262821129367791549977946598195404057880437613562475497122231337697775856154295623855231315443992353629149776262188939045982039543872353694175050281382408476435126046043706361053887026008564639140741747529809592602470921363080638970495362650368340156542184793665003535900801237252295063243870071675393770432043389506604925748191932655172580598042906481874251848187389085159475346115242684026914113674183470995704173525639252131582557687263386845273898211416158379180803167394906344421324881987824417472056208109051607233505100325336950514503072885105209773773722991587392525039580125135073083798902752157231204246734840194903849070729996696257972210374714112476209021376431685038513219236737681911882795559640977787121561071349896529061467284031435390104716538768069200000128764568492090316280103125950301856491701163902486826707715728332902835490328566769807681845035374310045980014171950113130178759295245466134290961274529828086779681701154611403286219682770388269327681743192744193814330625162122166685655274858307491814901727849536133958657633756437558101753551024245754367545075012545307320317187368717579408885606681355867895976396780625883124496173030630786268975995278271025755783868036749357514618985248563602398533439240100225298214834115802310908118389964921949977177564917285654321728212688998592005276541355090115808783814318626285164224036614017306953843711028967099448534092457303617368096805976105836937198714602027573038247292692994256180505386743319303201715553440060166574253403818980529263653006075374815635209030932063832248329641532458618720123837884435324467463081227965283111999540006674673970345942745878714333581052415532071416222154942829919918283023536623359630680539485952421585120480388182700353982975376241984318901397975119878837977710796522188129705299069680908152888844576164440059049855244643299990070645858995470938871415005591638706819793743223538328239664240364912662830379203094285147036627786287909916022644499138735245607031624788545699539819466661900219878608557177753224881542617250753475903824554183733621423786421775833292489440675147088762251247193117634647084317475708053543202574057575002294312192167427698872209444661247287732513456379947817834419912589962576551775503551792984832467146420829752129268395590036202182860655516792429906730027449868393584636873274772935373662434651844628527685983623485035073504238103486996672679971580097576691780860540164046519296530628060246488762939864109631850062046955669265889747479342357450567098048171198608154460334736371105309909004163353505976691070496322199184415284799236973892814623689205365501358947558350507800992380254835503177592736337643221148293722143817960857696950144560574131789806992597002460394130371879221687545091599164485545641747385971220205894817794109510566515083820056074147989267647993395263738899506914284163408737549746384053875579270597223631369885632568592113264026536548169942754780083678017726524746919019497195000463383210515519514594304943232533940207655285807823238685799663996825765512176174339746882103077124006207742301348351097071008268218843598494877999245297680812786348254419867528688575621257557924579892160038008807079671574809935158631297381528261729601612057092939595042108736567232384183848125335910788358260315224568079637563120709033753080405901427940636955056384710405892491035813201611044338283289882215010212647683240268020929988282241243942691940157859849336553817056650826464792351562570062617420714692181129671935202361995352032364497488748363115221945853067148718323826800682557839989157407282188234836699261177475956090829739560907367622325986514439078437041367208872443960513195789296764262747005881647441950507634649557707539956071191711495091318887386880775360983852484715973554169849917720930632382257391006669079168808511458166964271644090537660217142587480613161529616027127871768351946698074432356684793784004818433611261859260153400613249174848381783229230111479177938801065414248326392894706270632875526048717113815425665318688687652778797708073668425784692827378799350542711207758019972578944124330677411902100671898636682092395455540414656131671274229141329417687583873504051326551596040190493923222667981971886047004041489495784266312832314448663047177418294908237550333285023049201026423806774063297477535090952024611738845292708711179287046801218376644400743338131121840771208392715812642902659464573422439842746917793234430086946929439021858667720156553115246974517072779677747357472248188721075100047838778497374201289644078154147591859369199760161320027294259577650750761218828604164038521345190916361956544480827444012346022364496435916041977823157380753886659966080212318246227627960066717515188415586463454450835324897177433919133703660096663342188322111420328249498560206363835562020473264856154376666179113260155038507905079430346933453848381060720153665579401189845438450301160199393056308994442993295597253471223051789713300543102060768707419000394641986371222609895963616126754176399246754641278956282255942570464736413974700571449240785806890394357573037177592022125433279863591190930714629161961442669846759821282891768890355804682150583136897101636760968696410604570068718615575290978905430950683732790793569651430042731919697905418059958271936057052533801295791218736800513627183066305633696667989648896127061885845843173480386959965567205211077097447236000712621344034556594088679378161315024625758510879399639238602060169099713331969995126720271168165875332903059405283186012196976189321914130554083556179167044443865469773604161914716679207992845722045973717762408929300927655406947981712218311588457615459649388141596175074818853573843788110949801400097592559725077312774484318183530453353812613978086645322884770877021809942877777979823590335334888057086488229718672332124098944549568893061402314278047710606148359719134702001202433262248871346531901482849784230127128984826657404292329875824745367533041636349034381031467658400275700005559427548495252305762961923054755635333311840133510816310764957362763807059036536892061171678274047735750099923355621520929840418462771593271930153197934108290842693475400697978125741357911351721733993676414574790090985815839303483356794035268096347746897402017805382690517520481910906235935302405221771449527630002030085662938114780579192423922643282262035657515597192788423233966237770619233753825992150307967635860548249539324096178644503047916488208559111003379681421458417627803278091845704345172214631616646970705774413608788577014139663592818236394656175445175893873667383413593932884234443876647932709214140515026466733561154956913366323693767466012481659421075280877229034797675279913975366190662930046908375137455987699660377497820068048308487585519936715035501015073660320875519759971378339550148171412714577566222403644227076064299607566796397195418178624639627681639566285281932569047333358355053282853406600079723670727119923581503280821317408189267345990696493390428947888947501772345114037700453736894919521022018891498057475799149074684934797797990517747488387994616500562790371598172310315833998988289162410943813566868932391023049462550143192793804050450210625643037300293669199887160341329779406526270370565123006385972311023994863682197890108860700741798900884283926809873609456438175961562641683579907786199304863022551870703820420411845587776712826362009494408847660096184744296057314348228714076724495482354858527657155835960649274944969254382234328090623230362554623093449668605018214504975153270259711670510844236662759418637774408928311958401314344941439985437205744226761403077928127425776983119634889094536334385956604376011636617712176375888121678108815510699268471312809860555646042403392827647349695037737093239318757313831163251398473440058149525058884259821308510942711289452996918898005222467509070296543694177142724172108991064933164871032123770595236689631892779714655985533523590625641990954997978294038948899882143409872054283526126280131596883021618214287917963549283304467424695619173023794250050516913375437581451774675846068331776337353547550193487807770308403449977706530632683097115162576077163659458053130775803379791190979517584890678690203311151275203814579740943522931602741938912961736320161544945386542443867961224869921432267776501681379926924408309164412288855558074604917500496489831049086552069374708675397302082158616703089898754026010298861144448129891430469282497222371244492494400642621360391211718427537493738680951312716122053974253713923156919809316019307097088806093551772047279817968477763104598229535669583495652581151792057659650892385503068218933655184770324288101667065425036490012543292098407055403646618287669329752856683106212106787392322478258971437851461213267119923752770312401067032582406584268957876339357884803433771659752317747010704036907955076587485895382440249206635260945496693340232346013538044945954871542435078258754629700469558443375816351471064435803945569870938209032488535485195658273173971343421525358541976338382674846312601410621709737213362651429806657565517574805814661394311607271752860723366529012129774197313881769414593890230990783804368861842967074692917704291697653494036798013528425050046274992842479691234987468660127774545889661113430493526038464938702366045091107244720204412770611507018120373486419677417771792097761090310934629069663564921519317422489429304109907086729686373790345439401221895777258581006936066882146261565273187155886387857979495602188704119442363140244899367563226365755221079585245794672442565240452580179622482181068839513487794791668675761039424167704233905002804422926989284457533601418825138777360837795180826655721286427487983434557503460778277314284420248834203057601276118144614356086528519574711466007348963466442104669881875777337247780756679446626327563671892655721444378934703808604571798381298865546733360153067938936624698621261686410669980660349232854406429243002750035390482026819604131765285015916441329912644152665616325738005993140672741884607874784067435479545604747124651126099580989924295196049831338002992157995771670902573552655020760135833605727183420231068884423744253508031675220494855452270642489421784562995646982769173018455794896567474014637042587873402268322178613836395519287738255815783165547781499296860195737399940275864996194740796415047935684465899267745788056687714552737462484217643905314665205705483285948056284955891992690436722092795267295937247736398827581691289390875732679153576622050185778976874638969373491875652829739183107457232294867304628526427258021022029746718603136356446376509795403925798640047292323983565921881936979924970573999410476092593574405591911472764088139661677621419372227627717236185654973111483683383687128286762853506301965070381682299103781466005416724765620110173969126120893196113702976690216721523995440732105732560897787045364498676335097646198967848517185850597941074556096751930525812608327249095221234159573508001776098450883152660308373948861224231195640743029408971728889914478275042162055297099706170233376688570474592485852519221261478722503806929112705649068452190893226200598016337464718449664000183332925579978630100430187049787222284807224850724884101961828557619679802429374057809957745993256606085844789686532075811601149192752224086948059402997062783546824393511637711617289774427818847518721800693432736847783547034444502934737039780575284748960529662848613417521195969131737505926459276510568689365541095265568608571551882650283560720745912204210277196390735542438310506771994025338230594272166109778886175277182082864980901244639776887858215620156679292766110776067818656613490199564894451254830626904596642296964823024623422207840343544503300561974403591563207863809458841150170521575484504570767113560014630811583472457710018586184560593599419359547141613715282364010045067875241249895809560221332771450595660654680324512972762355872048521194502704949978658488428222350470314315243524034370235472552405962045237936174702260008575135298981894758019627930958624659684370055275281853655597316002512117499438994345779348122072407345535914569521351511527352360091928059828805469017237121206691900175969982658898199980214114314520074650820477174045221162421343180401070061463822389070452392529236482429529707953098377932593288883085315905770555103506179906738291937006630756001735386983866307060007758978923224437211070016310607886308860545395975791030983117138294299828328685475587074656915854037901434678964060530891267797103736437412772859155458375745502329283100479922292330464380616834248185971721409840212020429355818124184427303358802517691272054830894825471283784841455180319116759319655834355184916578437586241068999584342067906992170110043669958738197495909407059304131940027851505427201823943058971567425786101189670006455791899353411916795842972878771520724421406237953298409005044105317626735451706591641514076287822673164452557815863780306970184449452395407293125991277004943738914691175997373066821699330731181280842195745856710097610118923572072386038940228044251970137454492453172946627802260008036609874297852671144373296500825982078426185226001948772565724800101471015338837597829598454334589931651207375245029708151147875991193498572546337726552563577144405403487274055829704328719473998706002501898073750449800787894035032698078414626248565774444484495407314984264983901545295826527828132485949047459476700628016025594363559786819764727551716639383461985571864388661862084967634523199643870819613265277283876314114431849164307405887608099266896198893439971224216324536605070334096412766856156949444750807174139849651725323775742175572393012990281084376300142480787702483892623186479492433527939878411549601732427451544139337110389278606167615013380405336037825179082481167972329402132513843787229384105076645402508569760463455453914967137971022725893146681666620681112486291872373090733411448958769319384644390150529990010955890411175354708108494841772620570938058195276852515477488296408165522923760015902026605351079278610173317960463012611403069072092644234018664248032435825667892139587116804067357332443855424592232277937047859387805294711670091728773685086135516636353461440024380834738005736274348555097240749989490061257111963860024780495412322619382912833250321236905797677515685282925591896402742229053035394117132561696842033730162157398094411476978597698695061336264007575814112293509669111131389822069327097690455137620130145892147930430700780375653825854199169279199796842266199921679939453438016176777873745373984884573459754145092221358738843804928552193315599401528371973703848613719335919376573484540755942332906426615562049998817281399644263606676100767316828181621784371399097389940763345608925502360224462999727380604623813567449370409827149961750186484960236699660449273966275215803035798388012872534076055199942464257436335152190011976169844966509627937199408108776938280876333782628252371926797177334010322870111033622072206238974027616037762621661658312869372076784001918639649568385739462591723408652310398918989709578025274836796416359865300673703846936755569223705709713439750666800785191323432928685880003451247927784292035486089289007444701367050228378370765161804412213517810027090180901357494263931574353852571518811208830844933367803629580675079408840944190210182426680430575047253880921713811321464413818709683187167625685778851314486178125996176792663762744655338121164382745724050629413235279395930673829839300930153874961021343472063651801264178192259453441876897313323597441042440370384295061419126242031069178644657863594364746884060667836646957802294338284859194922421897388119279392881096151391918901912079634192866429703923119029656461835053236289118076713771224923484172318935191422005216541416691979362284681193279802574640725127881042490419841660466717207696650696324703868679377198876857555990596201976400981223516835152936041905616192057712849207980449249261302908070846650719852421699467833592399511759651577386231284396368088614264058889839144624523467172469844602197518356276475915314894234121776677093930383341933728871615172014860687601431676131880303127387144945859485479334187574377134781879880172317421734590433952928460067885393866424112507274040721855535592438641546226233112738911492388605662646290840947248807365657037870218129790402837167316106106266639396243611970980545961246455359855573225828152260110430328937498250593387109021015561025691443357187179506698872715215683300105972927239598133291956101389015733886953608721454640160090527436643704122089953510725101253647676220162437454671877376140172412420316976587521768152629558962419879267743036861475819419444408793967203822080239883754786598368196102718798719085547527127098393325406501565089300730993148788256742198823351412160854084498635365396120065437426024909605139563879149414503369652583478241149955401602194439806742204093393983233984842254560172138737310368179957468475948647291602594352513213279740408713338254300432493406013799763465153171741522324466666114563530986960503857635029674909675761396433684560385450449813428017613985934759780707613633132296748016847916326839549719895737396647639637249679613614892672229200084587340919434249779288468315641939238531263798267337065956384560827916639787897149591448237248211825750551485796789492131671126637757831326736840879344454050814655021196430670878090087151706393696076782527144865403982821228935487826146899553312427571213494298043457115122865941652177366492037234320152373684810115558226485423021403300058999696632144748101114730780923212778281282144012461434521004338624509757184661546288903385918838198114665401375332884528692879437788222367358267388089476420296752981247651148501719684838097634147945313444424390822068949829446701909125443866768005678045552193440215313169736665178717217566038886602223386885339356349346075010601289661561887225682098984025783123525907927112295025142353485974900153713807180140062488199392219434094348975198029668251097570251601320432509945936984146482125919574430650862013909299538438781592554877819934381007240563746852132500566665668796023811001659845859946176246627483054281425514626779977360377019213652103529815732928482570718738789666066224248479085834885756402788589471201624802679759383132004793628042956762186429389137993652131303572382324697935895599959212558857632668071328583205522991854059412363125709552377323191418253344589303875197495946034444754520176773493513615568864478671865722490314597569182957645471708331474172346807960901104755988064185238035438112971930270421696217390352959948430337284594778623984125437194831421861168274153486923019814652706051948597374205407285236642697574928380362871135225842643694558549999575297247473552950480752137826187996521160877848469584929762607139053658655310268114566049026781002755265941506636614570262564028177476864079386150534469437800147789926395744087966988614083399606714599040451523532785843702356414256648444037500172698902786303544280624931901373396237804258608777729809336744508034654136958191515771482157889967725152623070877650623126405572678863887304512659843658319218157417154730645644838559117770771269788725137264423984306381187048538109965394735692133507617762876515267606503047438883108563130332563226018656554596041674217126389218048009495413241856232034985286519021414026132703799001264340425817219023209343225780221666892076329123082274572250949191441648757661316926868801917375322403767849651581532694978603985724653520160737246449991843893080593037680469343370732661518701301761307486086809478090219159904392518522978609277613515885596296934231803237747110628748579528124139463109522459221245530685461330957080684215998405079758013743005924530548295966712936538163197820546851282208783809004287175095401406047841552210120256272310965592969599793414502700801515405894136491842782409257290091621584849137334014421858525674725435370706509789305602280910542973414752128970941890999072321714440828497723571275303639900499961353465666076313685264824574114147203174754958342882293677407816807020771153545145096726596301148607557192570792327470978294322657557981804534531027422349158254217937129463943073390872750168147584468414686231255967060439875545386441087438389049765102952043626733601666501971055914175102391926722019315274703719842245343922532328892669370631066409703096960060224308081983743863468995526587942995420102435404903669206796096175693732879962691667979720045569640792227417819054642672277912139490432174200119802912800831610023632555585792656208930599101704378141321941602213275661399849544559489368874319707218547435351404186826132093746133860336835395726711564295843950237204937669334439057146506620822790842316164214885759760193003959741893181470503043159574809110115778174821231794573617440430331681144384450004790365690468770795846721395434284232363086826946201292022002987883269303614351786385600838821302304533987093552774510526437193606148122457137157135652845904867366606166935228529530789738867236748462823928912787165145760339481339352656128290673259012264420224255140891694797612871490469108590542876118972267446724036196901342304533373155543589656842371985031275894746389892422358041532183156123483984326930214590334218484764052875824253350699599556770447232392334727187647061551425002978158749309276647333649138183906607430853326009033837905962723369034898970496899878113983832655883877916418985355882878335132987435837564677666110253530570549534951274178680976576290486506429463019893393308456941572016819114802673058785334227874227498293176986170429234261890136339368954705308907761739487673032748267247943918257177458984529927827872078555088892529699041137763702445694603656861363049913759249654438463615735660862472110843475251611625164852885868100880328939171224799446376765576339050338250695570681405691831756517086421032364242761843806694707859383880359550412164262852488151548885964747625985456607541006330058883756762182569072818108505328764242032425923201198654167521195359104252565139252106449011695759613571807884431727079108501460099933473204313812626979717919008385191149123206829171731673440540045706661370847423698331880954396835420334022272942158325761591475533682932731591676648532306755128497202731039847685681300803007488863887318485511086420587311364397094796110796404852448130425548753965652737949758184337411237122637313290620082262392750376164872783789536073793398846618323222606300836491454708373738120122448153216993810919361801668654778417049196291043790939921905452112534652280730096342480898724495547887444498781823547168754712324272028997863767951189254299029972168625376540978003029081777655594809548914083634368006184392208853292383700359405816847861136595346543360382298744930135847212869142277692862972652980818602285299723871018078806431555673544340227970185117008698555531177457785028712365950876806593208031647546638011720651681757539267367601530559975615833873420952607966658655293897806653910741403873953225659662380675178855321095975376284090756769178177540072837191648305427594323242104480980758122827517069438819589217029588665183521040824549750154832256348604178402011128975274560838378820654000601552585966990071819995052604397544079762028919415498063410225328180327992071264665941952736157869531925399588093921589092562173393053905374139695750877593718884044608522467116218090997242762975586651484795372979610331206347135966187522714779639003952663148129746779262401283067090956698997381336408205366114521797253109928114147929960864871315129581788756124748039489015786369853969625942555752699992560944122143161379222053113575235468739011099033555211395893697431318801843550811611010441449723361517159793797304627598232920836263225018367211473232197999392014018343741106968607532621764080219147225487737437314934687832530486312803516846721291774568171465936186159206857209742748776060733158691398028164989751762127320346400003657168738628176830745094820917511497042540599250581599551794029723100226193229064937113496978998272744636866894422528418108181084674549862369649492946428301809979635920467750458461184319869042409835895799017838803731876914245592506548083189830060504343979300648834318725332971086711118440005870843403420448905681165201632427888696982601957463807578081467498040455636148053720047271629813664271169795703607121951273622958981761045601998122714328316479654423685515587340225606356126398425019303270648107019303975159982595163341110609934941566507423178945084822297526338268882621886348626737712420726730520214504770014039132821364512090932778694505994980247053721734185138504229320092949569710127749140031095785098632610195626386510863045079035729763947323360438726118051757549672803681405129407962377244672053163538994665161240643407751745787377233123647360104408366342208336102541226920114586028336992040096398856557361152874313592562097656463080393911737965197085634201135705083620913053711649536551708427806884616270022252858041811294182499249377259883599591130973062325665188772918014235163629422660724010639080209764361263322287864276082320867793310150842668233748809363895959355264506214465985517237113105145586284091087106954237605293542831866217791974370988612623655952872153791816231601237835988568884981322736325456228497129600246333734069594495350045425769456536715591918139778944087605984712815521395095636166471342498205833221015770642325513720015975660822146868448269501922324251710789534263299704836407914275617937941213205648060497929208885693722439146524112680272753626901823207064097339945051146336656611733331256765816084411601035674432894953242995966678605462963603936341372571613150221560799492149547486349303400752476365012395090319989247005897089989782304936503849805384238314904756699267818075850050624124878746149985346590991799061917205231612452727198204019424729735656117073332123064209158400194999254907564048925799707724702268748971645845332677756558568759858106619631980147225535678461637305279395459786226603603820830511707532048022693574285565586736682032105654736474085164879954288158651211352495350273086185695705619129087361944158506529394508011890479344328822186461156822588594939429366989123199053186770077241226110029024736855962457491119932997579439818847590129401949231505613237058701281321984779741311529394356911917215961482816583666652845809056517263560903382769401399167485592760067552650125289519687775265075781560679064219520058871084889997159034553305444807081065294716229912103929638133197245092089656801103230795500569647969735895796262648502482518368923601345151143693036748077549257836750566527631677513884499096255010659401499326453393778315575977337739609963493065076232834083275105973527124246147834814352126183731453774159260720979930235238707106680237609150074131604838598867004415145764388892562311705882874592604396596106065948586801296522079385596667929738311698259414173619798497275803672329581980307448246060067699191207137198755744162699506383800481625456488123690050388106678763462712197309748112813428172210882670675964113252718267286438035161789150644240243326962437735451503804415506730071628859436012367939378918886757670766192658754347970375037146184982016340765947832465607615670439927116975171587664821023630437102150491622276102068210349566396946002907637974455677519153641959241903331881641072318662155484606303195952679140698794417460163200058201760301299311864062486632635475895116365179573576321876086313776336364387602393137741740183739111192160024025465821931573104193464856562506103406920276412698488260147864238546643789564543802119273275484466353601470339395163775668038099682996193864493777247426409729573622374149121456117026612936817931316237220391700677996231774301590358648521868675409596296921522985926616788582770332576799910414843690485629621270155321342385281238551594266545024430939202971811651132856755492485256202072955728099986570112942042197762639314444130482310888464716400940083201078775461852434210359482902124337315212179909258799235167365319242515426614901323865535567726812224977135382695973360174682802456329813667666053276641165513667763617850611120898069490122940651932292800217636171743105363417143497549027090611564899491661244091399536944452909652094217002061683613215610659591117013174821675363730397150729429828665765577835649909131862997247855253933612442575351016147097700743669688564326697686333897891284881279977055519649255054179440596828678248839914772638895458216063355330993138323851929629438318952642520383549370448963645618890463913819525293085535238402874162910565654178411152767586000410979817738797298924608856277405099676279131082718297389185436580220313252198928352448327524709883706676362984802460350278790370903321307249536886320572963906254877780658122115558656164606518686224158463420547241015843909800930316341328117245731978878956912485296589457331143733169663973878267102031903951904791531228620485364391103317392969049262964321558646703202735527654968496498595929026851586315116691460956696506152796326629083515019533336178142387306435658564836710137725159146422352427887099537923833830525963491784484846109042039282280571708860576141836326776737488469005530925440256888039619395712901257053896080623830891936510137336613557361521275729719183070976594358830205990156355838678236274065968410514512228665777236514869981409027808613407417053549407733977753237575093452987120835723255044076806974042128036152188630834513219342349666069310400011502779903594592579325945864279129779174976471045636897216175191789530059778285871802088611294942520998602599547582602973660726992658022313527844680023651852351516333456828427032508361974602805755765930812973388561015317614606010407015787666555507330488749640434234170782302702861921641470322680707223645906993184010512528864575967011256527934185522761729243881346960435201804314829044488576204219285590830355159203696315239775962734621469311188727224283863267469297721992749191114635603043041132847470096421552270603600609111863777267304417311890432245313250731980017061967799342357658356487887192794017692790078628456384020971822733617953749957272119654078471909633512595390849236510357592377137702351501233830291462763644299606427737845287366382985159368333438362195175352858652784552346377632659565332759924141464360986778223780225813842487785552443740047899743793715087034820412752776002403864312753599979094425483675326663347866840801390886852017801477188587362411699691678199333202003345749958304020127093403097943446770731371253987480764607580964449069607780813642653640456346101896716544041333241004951418394292961437766187046054699223743521550765773102194178773711447710608574860377116971581311175197053458425864712948609161726884309914727840225234649781802040536096031888317252800957992494606406307930718865599125721487233036971053034255992963896770622102321230360648953907975290244414128787667734658939020807018879589570036406048194978027552534598866490107065939668311969194618142917006671171332658240799075275042927343962415073394612651998668598087944830838180754709103791269626911418164568276293415395605636588937005148818016801443848844684438966184018002338348855914149995247316745093170221570925687024398842404911508638223020894205104902690988078699721252966579045634686455963275895665772440451240614387257083307652180193824386761267154960565135255791311010767029036339370851626336751631128266668475078086973026127527057937919931640532120868152651983929184602261900720373605825062160134423079234485742814517687399023982318163141317588555253488110422565180706922297380583350722333605108694895804212201683650968480067637740407089073925075587782169681513637849166623144658248622820398129478800816536132163412271379655378987410459682371960026339400670868770914024128813307690555056286408079379302310336183968750732819438745937876207245960395813494237891363763700280074064346183450700550086072721633226748555939738639874184737570710154749748229912845116357782326289322740120810416420478232685032107289859598352012306230064757839028393698176006435924606548697092289693426555909381550457134369279723870794430384402999460935372615701711934084319273846115795967707353097272721727237170619487909356059078516214819215348483051728078659270704633992961157058858843798537719955319950693225907365706040046911994048942285384847778538597364722429258677869515213237656651109683851309141188338908494797584527423780503694409957072211120137563733643308285325959322804061201166138447150901128672766876476094440327381428314052119818787621473859571097942675467219607480450377897677403833079372306408195784919678760987115688805356380811350510438907865775186312369250586380725704383144651664887320114933191204471308816920860210020020550066969864744294321753301034870114901855056968400988440883780259097835862246068862217418545512577079172566208474458116865814380578624225969582993007570539188445576310758171585030068250585409884130088566616269319658012046550878415966059038262700232853077275078284754973538130114639177113999908081008561987526272324486735899104622274425852002694894741857023062585400833379132964643336061725573825929872665284929952660727144948347490553313955600019893364476995175110095704869747676561835451158069117614268354716143717752406764705707492501101341744981448297603690204187396840953166318822058421026084504409187843381734178151901319834938930790561284101952660842421215744851698258085410386880088784797516092176518125296943161341945902736249999468514168953330838999497861148149444246248642628984218480840902550193438666060776271599701896294249341549700797051818375412826607868748227367449348166863394361871044607450032706335146450932143475890887879685469585541411736995619222769063233665560564780933994894530585471562720573950538113319937733434718016261889534196280209677132317605240224433425920171879547452383771434172980964309804031524897155815261741908360867709360071394862238857141415990560878078097113548627783419618862486534629130458027256973819418061709644335376652115097444088097007646466748184233942186480020895833261357718798390420410432081601553754645507681283372951606820007038605395401231401431649391572279655716776873492960293409715442888806483432683287310125240404495797018928491715094647635553264664901290018789878230011918818347450082618251038833378893146529520328806440745794098819585769312568629317972564101014301140325002256872800394288228956504358261175412166106050980362613301678861800820174645618857981602744021270992364517956615882192499488307365622986578974692609637136379792124314445758744687351356110600514202361120618951645130803828491230207651886083711449556258525384854637350460122731214205421775889573444811702511519597113100180856976532137527716915284677726265904156126298176864259828600573057290166031802968834302939482077095492135317444131876083102718008160374203097448869656744156521123371650536400284820628793037974037243426853518132363113677852953423069589247264736396172472517346297823673168385519716648845077688976022401229752112916292716744084245175135751240447343960295850532910230205762134128385312522891444240396866687776498889592194258843562970634879009030752019617833005763268448970240210320036425209095417190258551032879695949548797407072962232091854019942654773915203338239472024734847345474043545198412819659724793656131349218022508863309124008847856230205688592789300678036658312587031501407424402369702996487987331675863097228615489646383279186441159332370365122892069523413654462585958784049923662662297250590731132448583429349316844066356789269457415138613502223350893007257656793073218995543598922852556233795806917442887929831800116734088702640570572634130606142501423057782478992135346461138020627340985181571243953455411115723544990321891604927862191734565078062658194328242409483632793800961548529325760010024367977825239255259044126895348952514494785497599457317203684291212348512534528198390792856599197372457677980814908046623469530960633654985839027897045713238973574572188257286104211075570759334908320333492449344855240023812728480288310350008466878015821144639732894529601114259663063590416029177120770141811140318826650050153438738049823206101668122044229300917816177980060938764544620659476065700339847113899059524440898582569907088938871581355273508071116808287246516865278458027875506450542662537051611846055162646104464806756790783610317513995568432245193951096514073947489944385515897497639774206167742660500841924346549459513030114149615147240777168821885735649203518674407776310014708613186572981872164323989925024713613494259679233324503674929033894918111295196344353480841204894151380239150624220274018864815214291925043132289524964551044915744042128033808235635045084418509125764308404376436741578494783393385224358122532812379341501709430895027749129779953634685530038142959071695578049462923595905889040085637460317774861572732604365672738699846878701690715056489648965583993807140957282388686853437934004393906104339733364856907985204481501512686685180654690409034895981721079567744356982897853982863860431842264346725360566820149143586767422946486168790330253872351529009120732315242906952630791575982192698017119861833177811383488487262253468596662678105872130694074442603767549603132111468360814499909121858191146146317052781714403755044626135572356945902658965600428741752965166387303542128582579652084554891187275234983323850020606514242579219227849653088609577105370133327411170196602818134258392827976670633820956235996086776154389434099820481021467461408033451060751690823621467269271625145831745344416686788885748251311733484798856970997919120680747455083869121956985594535057428668059853334893597168365040226468183421145888893768872891881545111817489605902255584883925550274636115172131752756642098226547246025135275383203134089874898556086077798440889830257435953289096514143650282298247782678445488002983595501556364100081284944634623464542303249649338236097227529385961287876080640818494496791747659617014204042593681164917463128760086597520579811202251667335295980517093011453598489702958528488266112706513530252980168154145437440468929501496033243804015221600785640322348053075732028677683900387701615472036686465950709475602685303090666755228629371006351194280364040295464941076126114564652339677532163586760406524692325134894991159975985328239001344033200088346609761721318182272243262622391437434717232602617775470170685134333633287738980059374049057609306747995998489383367473125945373048867661222117545936193525285595123370561928986664346344190147342031375187720007059272975186569212132652987595213558256681829780242114832048528464230756466721416199607299395207416020589541875804563761217495985039925881985384313979756593420964648349739322660220973164340990822584523967037353748165356897138623384221666394382822570898517579036111990566309662613621012973599430538092424445005997518568886212907818205060547989115192364481737886575745653548383554090798804002029959936870649045506199916753678089576395152372022974662298589616937221627205762922753285826272913276197785385189906869563267578020386386833952835353825450453621069740167199921146758555905062593807920132459042389386237210290779126331807248788111162446060245723493626145533145068515266607573562932410130081124451216513972816963223687527301031227650242527739344910934740585919861114532736060858689694928001820378232239972407638926663975005688045023808167906121494416009137757608528220812367903386832508777897480354060634823113850266164650237775468166996489209219126725588957700247367957262423931472979392509246128680142465862014471867769667429385039478558741176702300296371553256729176625767195484261164298270760027547280465205828987134717140189147961190984638723611387769801656338187073495443860481319361900861540368205441577898076355988649521349358579338477705636401459238039169327487871287458996311381617523010045595155700450982006751861449803249252183119780093880643042199224362106405074333000081372683551505240307643160473211513241403259730888991688640696727593306620135551363379268801174819651039839375798129328290664245264419291955919982353620125476694929078258723666315264011267196235527670040725224572118335435369168359803957053995833943790200199284301627439453899843745277397841349354404265938051249308991394680237911067296513799043129343426898842902491220746212439665547771731924611949807976078764065377904895938104028203508345559508645517628062641087116748995529391785910852274504915363467985945072195077141410667922087434427776414181448524708252128212810578162584319924227086351473797920880106378904734446381159541783376217892423549385117908629354468057749111473599467722819587349146217706841686880487767368395057393994500187261505773773350254960921642042921763843689704226993110749868928297584805706095330157044169052675464412782673713961919237649347207978916622930871248042579293865926536799692773085853487271229312004857966972096588233771095340381970315026998120449536940578859354124920709204058069071770866683370747974376447410920379681598094427356587181030282603460302025002289561074038742761626091868887666262123446692607456168753078617779666184515628995644012269935870220005790882248015696720844229773492088514391155217071423905204392238700321074060222547220544458729417310212744824269075242225455201652042907326214771944957142574688992939648117793171878748463962548606375354131767049261755059425359754574844482444904432855530427690380203374024108590862444715753764745763670897086334842533037597799330760208685511993788980941561703475049680033881566823042517698770847065752168057403815673105935477869938305304453028683711039043948037067620683066493088600208969816898021775708529653827938731149104162640280360252143495603373033691291644780851048156141551088759967337893372948044920813150776664132297317136134435438882365164483734202148732567437235468146537230818517488905181719733732635041227945153001770487543547370379802320842398876460039741940449559762209599958250067209477614457773662357606736068846112254624058633157597872511531495206687961778284398670454982203978291116238584911164816938359765133942572006424765408919847351162224280890071421381599722933276706697906093029934507123123186806806868950671880999213484654043120407996917307667841864801893437687477253269465893981900813162644839838946979015355125999336218230643028565440877708568142134639161881811315903531150278377799910766691392099608220109993485678016755945004716714176735326249011126506404375715458000648028372170790496709851022344001631404185346433589355089468923207578834101472150171072256200851144351035954569317622285032365185120920832508755564652400724730847451121907735225266256668225496972531457594408217638994447346227961522275000027966837668484130118586011824602744316709858057074322909287008328043407740386060693907486468759953723748358620426477927988180096345891515998783450683268452335038382774332891774736890709227417212890246934265903637794027569793187376453220830017533566903251543000584777469347380879212149002063562966050366129190413794685172283577537823751661636987576884250692770751485162565795789912586819175818082013163516984592690003050267065880414834735404351592113893709848277319477525546964813933609018246037416407281015890699941207860857104675538378393605638378619404985001606123231453924126500801291767726055029494995190354906859422308903926768111394679776086856125454051931406229067872540395720420555977771149509955007025094288936363558657197112965528422722219142218216424951767868209708433457179626449227476714946718570280573056861499231755711501600219864400118142159475855737065106726903008332604075404010618365346565836730351587714369013331111319480210721278942474627633110514680695871372163607556538531064602168288194826618760256364291493936738163371503653853053758778986281116893575691667760979709654514765680315188023226681406610986189302826764148442619619118098642020208658743634205516481602559654108085404813844442754065495061953591474267144894218864776075557967527348890788307584355130648864961805297076525886795818772036900075983242996540107469002813698574524222453185563572605935845228495506818627902068930345223461857817874360508962639924360380069411364609688738192134297488125497589682252076889341039311172827577576205437435345707034067614846356909660309893551200186946445743118742533883815362136906620814012642567209405337768560086524914819172679298433697391919927010235581265866352607249971517574143128316191852317922458313874672285264345759125106688045276559545950941388023235493401493711959107688044213965731509127414798501826803123512221583838909496148694182036974060681356778673573672354679945337244943252980921836232338826972832952638303501089610104536204183970755049375112564496236452127439737552668388712100866144057287785442503192095606053347661202362842085184542890920102728552295177289851888273916245347710100265373170172822235576710570758453061205139260253539753175474344893890274039063701911506097863994476742399198555941975545858126708094994425690234157749288929288030055394688094782719985245744609787971412364882398854541987903001565533793655576490941375281295458816348221807898342881009926656893468717561050276878570172731748702436899751099210538582734010204944134322020130417616142256960923063905882239096632359795332686619541862155068776587306700147474772086407490003840687702129549517222697000227461454814267237984241002190389974493403288789069974911629866609623437459895257956935885397979732423503182449291617257934074536088772513774012088327950023512762055978578804702574750788561634764812778487632730282603530708043574757111203995821203899549295748137749490165326469729671126212611024400263125850893689293908571478407658083280675858061579436572325373706840380677253919871180257363002599555391525474418083389946900902738565147085080598778104205630955906867551722422696891890173836399794928996181076201258734576828834857650244363130142280703989977922285355272704625387528161376927273181239916288455372662235754424172600905827556074729525788539754754285678190166561585590997796368814746624259927534399754222438875568252276192271667834194782662237171807197121500089865748727256148851607257985906482206636617247995076536618649337664731114102365703268249848299917178345792067561645246832875044553603583580922296792286258514013422197072366132092383574339915701868768609935662583406586946906418617406006139031177346909015320547739442901155807540788002585448834485433657014506967960572398818644913396413201826760353616619474211435405632585748493957478963667496186484382222779509843374279037067684823004129360752787910008860857004498536705051103126643238177638970068245144109330015674641249845340274192844594140096247544674909799729887401008344699447461273407957021600181531449526297499068572246321094541962177640438231250003591844590986947137158526402832162457304183190323567740518267760857095521755380356090851884829420785918191873376266339501263861855747823124600665511081798605385406613692160533461484942816986425555068593278337595472739202254909438064834265643692777351936516452307090645242041192510662427743902949488650683889222556346222425979051761679117356104761881689261273483162427504172792856101544195330891949661598942643108786615699216614433925997222913664941648770115174196892013164516936488434822563258501493930680989776809004394385372224200277601075309564367836555597834168967293776087545715212845514506712370682788456984196815334273842755675934158692974103448538136729741245696303627819973264569540344425842196399203543958235789977910926793705076787267989575828195319082201344647276107377200304510771922490535972192756016178566835339868352283900208335155951391375031622195059860513607684350370950176286096695494708146642877241816134001678571404785708381265389441107182142174149545468926957188838462825017603513638772704528514046777147064875627082013416162048832981636424686404664205418142904783783104628042111036927654914826110729543209078148202446463605212845777343689012731515689859726716971273268626038260325744652761221241942215523307249658827314760763120546721638479308630972458492515617258581345909661990825327065184097212625555648839329524941763246900657986555028349742652714601929100571553708176226896784231044794724599361251119287301218818280130501366780868137229961396225490997518067719953157673520485777821889219430191562845719184536592971183936651253662239830949336452015198994352984478233677121793674797789488019566783592911834954460941608868075432778845324020399628946092021070805331730233269290546388494267714174907552984632586542904271777331696028232459790279281803228171231619111908132465630720488001790319381373166752700926483790901890202425442493888821587925441259201801093990885714373963801086117385289043799520425174958323838948859062343909174885324209816183011346747408217220061271083109588547556844270781341192664566660884982865085873170584356079844575423109645621257593554436487420916471625219146333239891333711504214139297207267838647926799511555440808907870988447616706484409506138935512354084880182358084013619848894500637103748556714174871932687235086038533242793264694984816127612592259311556046489815101402615426247437811807929239063306209402785382211744979404156744881734743786358587000086018065006162507537204268623737448931661363570623411825036508664224946780572609012924683662562385802087672017893254084973646415672457595914105007102345513719374554977720332820305321865934830740192389982369528589604285018220039937314941860867547592192668726646657333002268831243919263102692702762960942525064449428602169034040288467052865774584686557084177004580974870152511701569932610910229826697150396037832382799661043125459914161105275215672320735780829656377923217468174050711675225567641147405904698611622270845095541254514119668518874021936645861622902717566672405577203592530243648010149123466608763349766297914876110842667711013647685607369090507968039237229380592355238277061405168041790575476535534372843810289742472205784162650610619804613247930118659121641610681414388742131923502359292685281744416173507333002280030244783145936841363036443764009843077166671788435564508501592196670636943493092101937693893986745795664364296054857957950622429079363608000748969110085500098317844503428726100798750191866381522296234874920423181105519148823273810869659634229010809201750302824313504641993038771926067650842785434828570409057841889520757654643377177373092124572437725092732151417164917600676721156280978120105792789326395424945758134473104431790630718333949001858908867497227983887619017811033540037146859935369948235517097753214154129579095464620859877085306167817707568637861664189615741099835060244478359469579289671872589905146706549458532365104264090279177596595989625870843881365889651848028924410986450665553359159285101165512182614289479443255789790232469921494008774176310469729275814301177975152096074182978045302372455386732939936805027883985001605413956805048657478885736796640696448405167704732253113917339876486898041764932099455781224135135012795762009711603423811199802434789506623872822314489131128001093644176148538702313397686519521803161750305273174300111961325447203978699816493434650084538706832049979150245333654241794119816036414451763187903471150531596984714529387238177595796621620578938931090307180493541134561468789764973541321724447504447525106974016665962292990631305338375508325417204259438359311941607279501874431618942728842253628012423031612639271700684742356808221058739984965480345294741639156931728796207735281941267958372680563601760626712769847061583604908794252978213811633034171569096115982059957253721431390513076905690792332497745448770280523621646999665750813667663140143712270546704218320125959991169407961748625576260261369013053520196776190046905042528324567760840351841980988679120805160881426057004480739794027889937652503020734787362373886511495549191661668298432571285993730744605192020319055434354005382710243257812709665015181242902426930980624892509051361357740597111310544574537923779914777997749868913713865072320940838541403195048684909896070948134843189905913424757614183346311647547581692267838964305180871531617008180502697960636477178589938266327962146696815444120857681446043862869113721554295120516624909181963424700800768029345162859152730723595825666283969308187659527854728385536921831469758849647570915505384930069345848514735044688930507044687133689830625672536789047826274629337808484396911806514512485606673088410767792532504525994926152258828623659649145608291324446232501890932021656130144074802577757436599694305007043367837442026193347372940752500643127377538822808399960538398712729387132222653585758989322083227316181729112390461243207607533852961257919743131858970751681571987355182141074548156460442440706681609398969274638062195009653353904831653255887609051658467524316325069670813641458345413115017023274524814981594419223594252153274971139076608122072849949081772060269450989866664610844273975514855912039359460375004662170352811223278615170363893537223668682791433769008927901275093656784271696748975965709704790873030433975397309373197600950643252037735885271218160176599344894889468719734796829532167723476146682219092830945083213710747823108848632151864765962656502840984949384974063086392566570347348174170390893535186606021122249222889673543935785875362336480159394819594764360505695976998055296133570477639142477271007834069599009563001212940848895850607889747939978550971858925681110094721463395141377035835346023562854441582676100431959322985416723899820671053112294915024250103295565561337784052854307972921361132154162109200175466401099660799461771523175814912718113892537908976608022907216871145796638379470453123532706558817347447088490002450662606580177401935278595405584088117402188866480033892384282103699181245339850937150448502694273818873886536027062076513545314676288724910483271508828824705316178276203211546929212140176912528368665985532737094324857163158994485547848245385411670259143641896405405855613654420381325578783743786931125200034667620477399082062596531185695362882811456715914723266667775564320026594976629128911979780827688940346259946852225180787699456644222337550365814948555381497960742524993813634926437286876985312324605030105147999301472871498515660626305596653643857333007666302188102966614639521524790935790489938833419678867859841868390563197601033422056266755132941798106247040864485462012549850020409977851506528130043596497248844376647008234520583863754922275363004628745060560322966844110965424910614694873575985335979724360293202670310481247289393512871119611159157303191656118183989903195537190538691484097591449661878145006085498210107493426646017498225293143917418949176243175855478304299936547895277147381970471081056529103543808711887244242293528765760601632685923488877118134041275557511877568279861453802919969155305811634036952556782677364935284085557794650075107280825528116436260203970167883410673507880630841599047957317832382224652161137678100827555052713401987920223156421943747369570378664514230452022831748460275319010612213327709620894705291445024362571410844389828537705506903599746050542912932444616966494909865125995386679830926031248158701668737095956215653560342764737460467751321359197957927705897026617509130449159113179616836748603350074878575684905218896495288705893214692706520655711884635781394814101656080845679563369840795024013050510438407564781559105750150963017323756752931200412245654549468751426564092532803655896358173373032850894183975867152961068860883568537080192729471763577662190272229961812196219966440088840948131486849637666844131290373591164512335174239076642698811193339547410402876636016823616010731585220705612472472067698586976334585480075436721344314907997798555296785118639345727580855167743330218729404168682316161353613268605239502897617256181370499546625078831074106539075797834784403447570317621582811031846930338495608194053285855034564253768442730595453837083008672178264647430227235075926528460997472927799973943069445953550217259272653719953270578156102298066261317273391316571623168021282841358323697744979143565592253790279833186818093311894857236198035958930531365254933572745179506905186002110962251630172233187805364280425336296353403021783555374972406888301670904078440717730904820200382513049096287325597505573133616740738833172026473732283634042336739157032329440543702759171294030155840480131150284259923144410120067590145623749156969289283755532299496923827228073644240422952110264015674063640597577067573203462458886396405026444463327771420997818672525646055659020018477838910938461427371287625970775240616472949113652641410684460091185560074651277938575036720057954850735040427106841079505710604346034411405475917267314343261692992679298305809642181892518789432050443715062761645112566884548613031700529305763097086734774108018914909121028723352299700742325515060763830785316291106503419922021941567652136801615018889820840424563188930689870662280141486572809258616964027140711138071833183938777139943085704563436295152615839168865763252092138858038812380179805900355200946252631969315749819603978317257070803017012246829730003464311302243728984642610982396067936998571660048812554022127023467033742779842939306494795356078914867228883122446712777431818424571681895819591271252836872831999923636496638220928158754397366429348246835707055253792360746205959942451323978948470508065022990462533480380197611015686682843580838401352258058518978277561787140064894128289619216390774801711350150247975975353727426809922945164480029223037963909403742058977637465130431954940058312505540821965667085632480460956813934280166912109557425293833208430789663982387071335461091390553960495217566132172517699019006547543198051545749633144076974936662545427097181379561594678772994599316053344420219037225322167312389198436857874451811641776314103065261680278036837318064084904989401196546679650924306704648450026012057567894277261905726185207691779068158113894443935185254681824295985641421371311192784325241609028772134777601295054338043635857656805570236761540785001089052760218380735140570578656617388820517987079955883682975716339326238863270789985695014644002981211984810658817181948587869465050655209628190852781233500278098512427509691465196760949075542235832700763455412138380221226512985329822761287150876186495876955409871559413536508816510091134997083356259455604071357991450410521384210491710740540252554788886790954487712896421131917984995513055052755295194079819704866993860120870646411568773486473411358676766934029641713812681734071904638767901873521153849471810342558075786610720883349609063526699082112741000126788643313318629405488452852302688630069516464594887576449559660260927989260738192563897225152377341911548798126924302967465208926416453301088216465674087117943181831517596526250637413037368511455897002549793303711504402636929125388748588277498988687606283399722020028040429546472808441000356063012625587647180596675161267401077308747306383665064814862787169895126452134988499294643795304893669851969829874835808102022704267932426555521717814758909908233488391394149539532823924435440679249745685279541981061318934514801134228217380716641350058666367093827757047975918203595817025671888955277620388535129052966453928650559097435352870961605887985053563267891045236786559760911927480890606689376840831823580926209731127510298632820357477646565183179950937761468117589822031146705954246215774440419219208800757341508149625776382459220251267907480384235246947253889085488288893692251764783609189450883846559774351778514246526862162638220657573698700273326144609811404937455231235578720907320900517470534122054768651345885476411024062457150557476119112576893877673909055119665424230457390713361338882681996690124130420649193651198453354581997612236067902564136282383606945383011013186583887439511619724194350628191109737505376686819374419487595756230661626280850606031659453087861619673631200097248180455318411560797358107714222658105690857077800352948707820251124309399709444367660889901878035978901004279103485492267188904197671430728703637652169225869527958517270609514006806595405053633959178370608894686534506166125792372130719831207789462557534143439404217621921270424769648525931907929129793362603913175337515335218113361430031553406477776336081481741585979227008856150104410508978031415888085709558473406999131540220819850780683710554353065391249194492684632575906929511204297194748303066282137426161535467289203525300498284851469223336705145239844546196892316630382501943020577598482055024246994520583243967064130912467243438978972064494797671699400432728208317156097519673631558377509467813581033623343773902552566159080047394859294326830204294188029168549454998893393798448205568332259610244632446831718418697996907927810460262499820268396855032758195150773976355043326221339561698689896950241341279712375151766179252275955117351805958433910096066529252232325382566153369278415063177052698005209838657742046943429730042766914578807418948565822765712341876073928266748981764378701484568873794046034525662336365389231723184997821239385848406539338709608508292905738938581234796357016443866919635415160292019514460437281857467109263093319950459385392018679624603652265740204342586492145256334889411163390398226669541431190982534290011863067245145063904530636408816014571792137592665418787798372999174818869154778246224080134203432463462270399519613810483597666814968790191361770134575388172335558848234992079524576885557233771027819664459520041039274632370221657868839309092790802515555165494140911898268546663112056972720820975626990099302512789316563616946422856316160453830871782503016330351470064299295340079642962460544391415022435307853142303877519642169536935578562546729310245459809200138870498571085646243388006869572139839168942760804199410357003954181283341165118904609199686365867962485691257902413567605416345580987840680104168582020693514036859746050468273158504816261433908322295109420591088955066587229506137878816442811665205140087257630711419885495129692647296932029879741224254453572960129137296180390397132520010718101910930739663809874750037382358325569416194991298018554477346471872943229508534261976679778241996940394409643990825768097274893431508834177394439871795632182461124454659459905393425207949240610796969578302297862622367795726683453176858880062233189729787399981743582591117542487688127831969016200552293977973052494822631150710134987463611075197853303863703606923445405539970356194245787749580602827939444807917669839933176930187556186708041820209475690553418662271714918322225476469856245706894723161548911157577603050957635941305489488760582859773296723047013183827315428073246571816822635971695871715721904861720225256979299437302963027798649664700558686904054060283840071837358060827477453816982755624220290640966418738691400487900106110300694663643738336583003502810139218066166608416673586743038059628889282750424368993088767921201837922219333711954864000710611295294324378700551213626050538981535720921236564312061793942267563101106023879857070172591881603654435312760402304627089788000862453448640211331025161642632755162314346592421105280151822827790619522612125427707607648324763514521576885165823010566757978832310500026575034958444316662965258645362228653920984861393511020069740240941484015378129066632609055613672349920848371973999164246316852302324362948418765923448286046669569508043889012139436050066841753897910971316534958954243069460431477900448082059767127879102072534721129959174529163611108325951139590501693460383426006179104824173007148535703416069466781779610340297385410413422699777654274415744051096370429663480997545908411617284500762647038257885598686670556064315071928274669683304848491751715378510383082776723177781782957641411064036766546955564517556660492923655778290298689222962211582601853552963582953220748378415210596348819141314193156821736684632856927026498620311641636187820450204984399080655712786891844306698768181746934844007291239599257037201182113131270585833537601500794316400610311222289625069432555938144974701657261518159839273228433806601250647426896589975494402109934198374072880360219725706972584780397932060093578729134945751315829709252020141367583657382242285568985645298433858393763386764571990451356195472231989850791482828418415926622587081477089872884859426140444298378294970447823731249114799962520854244027717116559980897325089966050252353632552467432986133389578402376958320238731908131233982612920328036156811991662437265848229073435897981870500320647231343354908864913501023500544329943371563607999572752189942275077124634977720710550266336754414273301245367446491181046137019512384991268110349207120264450020507531094786627534067565067617123343343722524888833631142207767960132294244194185384928207873301971048928845318270418717556899472758431156584715596265897596275487896793287798900188771441919397656515545514062425753306980875741881552758620977223145124738124768848028516287927815518115312081123900111537553623893707511681692868022987903407701295830177231208753337123607081094762223320278537924546034038737493539307346313598580460731210528977103376399096333885144070843181482102413536276019930810604168707984125788688937601815891288628934088270586344317395828423422300262612155964141814451732537285342589249186293424154790573906755242334804486615626051786286406298253691961933727578838921036215435219844206088532910833442078312083149240094206917102814846628877949980338670224199121107665020017441319003660034219079315235976800561657831695670248080695130339352218489613462015477857613591392601173612820565285856714048788307107166093929937878610588134498881334258204940702181213931605837124896275433409217375588407870506776072643613950227181245547930324135045517401051407274669438761567426820229476754589750508733583612182512425115297368810334748598816830129905190730562788920976928306735151493079976913784705090704673505039212912146067835594121195831267216586557775527278184069655518436054093607554448543850721715173087418342778759728170424475549827251104996922432097637112493605727627848581398316461935453142665323556934328843407969124034670626722914910622912398636974095418711713932803200835155591138801592809590929839476707050179058484748783227278582849373925994805400073862895166043132781461268282742512906017397124549560373428793862462266451362326903774319896640970190391711246290507621145042685965494516357711792865940534186587936746814523146965495193595561602150370776909026681858382778922426568524875914330170298896871759057981149566239444710676804579161921428381354188988039225608284667772220683762789004850530462102444997569809378485645735464761346578586960604094392656170601802375372029582181264918645518959512316909660808979027024510122612550455495638652068090855205126011455896315940447489282902642386952630106451900412702170288004380745735258590536847510997099155487543449622814099068667919882630612344740343857372259512681104323710567768879735043877912178918500322028697964204019175381426209362688029190324912553895136929957093269431943591474284377867693181095304131271347675894502224380832629113361172903955485797060301091853310926346943975979920114484948925995645914822653753449600445141608854141658647923106979555410421293773778276711440582579298868393332028365915906813601952243323800429773576807901053785339934869261492772499223835319386121289148263380915218165771389007176684922868340810784868576395055660679553781320503773671064947239988537074924846886638244484805553596234081841428810173141688944136681058445205117031956991357318480338343583699237526769556107685511521334382688785052207035211676851566396561685823568470727556648976832875539175607937575017518115947134558839028778112093127705299334369091460889313243115062178513603752138630022812837804729307736893359605702383575816874073762303648023189353741657413312808545261757750366609125329071604482851470164375252871518017953475750633787312385527115025736940032992131538803644823441264015580111345156950985867522109211016085596817422667323091654912958523148123147726290233507650219429626690387165625064183837973657512773270063083209180543394374519046478729012153844808106971508484916188073839213989797534669161699139316952057923613869909710043523957780779218845576569676453895902045509774804974657513229326611298555126838182918575065979596316838120886711791685562170626193927714029903852262982358695867235641232815023240599074723376475450725084901376042685086123940057145722112646961496792185064041758679133652082492069601001335360825036753035658580226954121255163821768468794773015857309138136244541328480512389758296010587599691733134645237130357664637828144698188452391070457560192298586162317607078094194315728472262830740817640483066004836680969812629606367875494738446969398104207558999545327513830479140967155165777343060305358886357870756144742483990839294090245209521805719069714102995497703573287656149619121194634717990334565112334762620708239935243172790752009234173587714864280647187606374233485063654606472803877775032712742988136117944722288547607010233587587717947653004544222695817565607544768581653973157976789509055006429629642132479652912676357843662891775102871604744673249727632155138625896484460425838888633630562857160164529953966513887067615422733243303300272134495258195812900944875762158067972341242682053743752799095550608698554340715466227001252677611588449303511129855233548661321930412593918527401596747856784144699058649459448662882598070789417533629002196889715407546220026033585155236751800573642059821923641086556162878404326470258766786151460402230269909822953828597748477886626620767621378100571390260099814838817808811213250449134049719436458216279342935975144261909806447417456697736621138742822358946440909956755858155923776077656299500467041912976803181759923447680178642142553494993186813381879831701231740091349364055155950383598045682293899990031804911862321588332287795342847316299917593588031316676388913016310860529248951627775332320092744091422870359005129874927101358593206698825596219117820262548664974661018461724073021985729323342109148743806433284681870588266263517535104380795287749506941879082054357738080461753534601392899988628631593209365945342831701634718175782186173565102589526146705558100394259070831104940079972670885489161303531746028429573057398083085145963574315440384513691123875154230298562318665134505523598270146588537024474048352491199137356739701631242767393451273186468572591431471731000004903135969470982672085089046705010389949302409742315392464867073392117918577669311685772513945272965584325662887616769005900372007697213398117451668338145909289796992816902403667891405721303878376101909927442471544190756985864681949436465777880236510984785879430342833587697357595070078319013884651424934851814557642700202376529548462200338564345227373163317986496357743491656271427262340689157715355880721277115806661420474856616857749196033397088221349155726775516727964221257412507888307754515806522688245288693606421335750035625867606255057862190108068997823394861809228340231632213730780935241126813054089495274740792070318718826889905704795561725208183882464241749157794651131896294120786840243619853626305623063388278450343929027339159176113391917308585457295675792431171927341251310338581831411184846107742337448209804191823740554171286095615858796586949988758433185454819300978508071386492551935361467187431168616597217838027626111947253007970371553130077495585792738151188951363895313075164118449488369392348824144828246312059674213779384300831941622821888138836964998456170806830921148901559698497878409950864162848333473242918599133666380543899463534960820110321545526325027064163082677810579905127586950797806418259548211485521978942757540914948942512811322798296791284758410358610036189123817545976685064928891865109963229194562976920529773894133210877364301152280762704665442732243290486651476213952998918836526112862944855164023732070035421194453386101024588045724054649617017267639961782053834310308912868199842965090440616050454509288414710369021896614534867880435456821753817953424641272621571142673908767990536791239022710579991738646812639699077415269473092454855808977903667671090371297114784085289379546340310492469009199850756371904217051061950697167288502038328150138516355169002666970721658264050463620969726012542853469364746370782001072061431010170743906682923547689578054285676682300324891388713181187256688065840261506392401851303370150218051889268359606556510402804781987930451428609989275395562632420364067631661470029240152045204732808897742233783506103354123287440637410750668729167041800676395551729990430617880531928250148492349206100313065601698208557739115968841290248233127522639196608629386829648548121922623232894918353129619336114416338221175472265826440577837456595601826695477302401054398244086410332555609232350601698087170703701183711618535793621520586843813621344888515476979095412721495970516771655389019033131677259789791319992449076521817497029296422298329484407037369388432038564744043254353183519128232970106405554004134687850360737538182224178906855245378534937266264247760696847012873842225855207842248475938523861025770893588768883080763445993959167184719978778729095124894143696956949210524166390430786741490912385528471522009609549212585812380266225505466315864629539902585046362324866081757703658054538214832717207011369038130296965318019341112505222061438639628055486217817347507414229175704059373502052945901560833856226940253927226549473210535357387749905786206968443071306043475120866973331695970198314440377964239117324341871801274791294710181954596055549646223165121264268364558630922057983934177052030790577602707900245853825306736212437125319765029551989511520128202627614360931915677623666072219407943782587323457523016613042779525997522932294355296264617772047819631529656236669281555492728845340224918942053034736264276274202565947144350539173602779845842285571840106301323022987319259727462984596917795282855060474243566726255535117959056146672960573781811593788184832258532555012485402868915475293920188646603432944698101850312342566066837670548658150975129295311996685987506894275943260880677149445450792016516471361985905145271258547019337714853614243015239406095728822940105448295741752035942437829056180707588103936649730884279336598902093814747867189425730071643107611504852413160528850294607491676076260210257267690715283403427542212990556853946099293455236113708694521230209520705406797220129853787904999050196217520168151720584418064401341638535281426219973692559588110405533484862281303499699650258724404384096777284580487387270517334115386037212960486008415753440712620371299575420174498836199442405683755552482762534286710117891572314503241400798144048701868389701610996889524267185270532768914283793577545268059528651788576520063223285572424091653022847598993303361269328716075559895856161377752039198769108117063460846482918651571225553766855780005593707328764530659927153137870065434797709302607404448019209052782992930921884038457305551958112124354038626645339281574332661916205552360719379637707165135714365430638694545428975994629689694648174262458425172054777028369085164215500544015172620809192593254316837258500346128997831443308634521334876545472021008160095187564075532977393158885023203569456193968591524484362718713255382593596443738988121678618117803609613210643570484619893318269679634261237036250758303373379014817425168524717310551605856324418310992093833307065154241756527925276291938988806458054026176527710124413281717024250564302549842457498599592223195383971077597145577575205552267332703836710747435973686691332564295301869333915379651283792328770361015281092042938069666560530680821430850619540682192750354704393228170554504885949392422206991835253042543683424297118383346707128183878682173538422524975985977952553722071208916400845113276016440605764815165333482225503410803473164256526379919526983725694800642823625292821095602511072242985030865584839527202247458778342655742821255684449009186729522616757875294537642741094750287864489807191583621804607896265106942350742315098532987206608671465405788291100817031228547440205670056314891704397488037861942550638202885391297140055376723559021180734419683549259502556238401569330500483601461438778301023142169236772471239918893302020311360499875568219193636485878414648660222303502513688380340390420341619363825945733022226309961392878532204349255167023763108939974157946378248372564497952099458156861726194193325767220336841607808320364902064444581124933771622053140972550551720802278028044001520167759241359015848218010947898954040657151346609142142699227716978835546780264060867941345535254285278330111818945001657062742722142462575683175256130703262515954532970881095006137918323576536082633214145233701081833658953461416712447659836719403587410597920183829111026102888094141503870250982144261041021099983951195146348882648079805135228957336012283700403380875681906155898206740075533940499328923073248685501662284505921161328930096395102989104577065782210646889679036580618718453569712304500996081724425326144964439323900694538469100644064153709792915842982916002216138880151829093590616187934881570612312712794412742759011682454323748601098158935332308023242940562909469195248498852001639753227867161512732391728972614322191189238681054499331087685320697171199318556245952429914326670838923750040713425770353500667886299417686911286296423025416315030451770044507744756391503972386399121616431404829486291351236405108332048898606805253630694525716167340848473995537230945855956572569426014900835844996156206012793965785405450074712493572457262624586154487139789095220272865075984478026049988657879136571592403930328010791546815047354525900378746781816945844343370610599334678364529578936610798322727787384776729496367925234965458312253576955518397409511629072446061534384601760478790267881620242380749378940779720197311667732210583605939377697898886498562693995599151187682077539602061213146439156490783717959731341328215632184408257104968567588046009017937753976263344429016503771682594954969215433461747452525916408556094717901499801078046008424494329978951746497907335272096858422299069125870417440993920598057011048858138597519619257068388322457384875165893487023403053447974491010290193372097378759366421574315626696851603466111354388998505733547784426483689061363590094192263198672620368060156455195788169988485561726390925678939564362842644330729312368205822593464335097509131342846707604784639609327443721840131946544711614173558046817928668004049598874354303114088002405075605477427660992986688151990366670516475376618060760438878477536190456297199558966886470699295745625169633665550654220220226777570733158954184804246493497417497630992130435241964478770222163340483085420719529733506800243664732345353593228567677175620997126644673848699125003728104501658368186263251520259196528311248345995780227448528366596052178575819136719876465684532728813180951489478540843662036275102950923152968895228556624384001035998146242068061175751535321138909955209716683335062144562632118302947250481776872054520185915552431986504721828811599987067878996906112383013579776858337474821266420277056616654828257915685068075641808715379092566804816736508185467372248631755220313838867928967299546407359974507818791318224806324276107680684137675886888066426459610913907130468292448222606694561973188729530403260486006605946452851105132017420821746021774268291482408369144566624303119521869873026968968918986470552742625461308609278235916094034404749107531049772491475390054595271144023530525827767312728361470579115063875229839098181997097595690208218961497390519294339298960009988118581681968634605764786282737131665455430899490703744044332838527684559742043252749928304732916286506035505559092988178023582556696044173391113511646437016919558558378806951320454726605092501718338435364532037404534632800518298819814103854355283672259195917830467548767621420108805175121254354921180917667409883643705126054080245720958184252370680743661267381488150998483377178429547519680359692196901829652430722339872102104628524950822686738912604640669633430968332015772626353134333144481445253906510427240184054005200567911514104179382991458713667399019535418528155788044971884445019586722408970484036778178337200892115555882937943940927825205785452459970240005704383702545215141175744202590750186976766200561077880411907531152685687522750828963974491126286144634083568870551559199471803412571723785566536582943173935281089987297760129965423375651920787150275416922296081138780983579433962075228929836345229002716044963289904064128655806072921119945198768310527942349975911596804033280053274459129759506215497030481347497975048299011903566954947223124332977178789930214915893842294467412733484396913174727999970079466498608755420925085439188620371049285692238226765111424737158442768683312081152709152515491620129501187577195762673306908588888019990426369111936642386829039925344607885149588164797349258590174363411148018988087199052148592250863465763188726640823780793784160649488312732767835140865182089032553038300537229983474534389199626351103404371467656622132413300980923254377232588673907480980748007705859808469285521402578015480043492481846622584742457586801590581396893481002365403942234166740848803606707131607620624088623158257714114044140250430511424444044420656693134286757216592764942250178157499884938545162023488493308355217022222110727091693216445014359813537794488172768400032224894448670283593408988476329398292643128010349172150387314523099347909936819091717201330753214620377391856979773595241799669113240750449642218675243658663008687760183546115754596222052697539255625373237215231306350098580309546819542859842128619898302937481346631729533971271952671632236571824998376458689713290914198679033772702399819769727461873218017968836053610664149674916177964210108047241295462454293831620634818926382540707003659565152636771254294434018487163239610114039461727909739836118639379572237130247697110408275982309245698164225769035851725302343605246156729606459707364012309178239942051821198543836363024462162714157714601881753280460888520645442429350726692513490297003684206429560264116476353863390863427723751492666767600894516155490982172604980952566780353955489883432156539142778407855343943625970421679709078434220025527132707279606682234000025282515377253146686556870513680553945014010009639247112116475572089069639845210980888177075732124918958258090147108116881849331674538750413855054882998922785031819079526094813652312647883004175154148723936074653483968962319116204651698193352263963449374507026423337842709392178805626407236340972278670643455460737492647407743638519510474499014399593981250006047131032148955069021621200423963733976627757050638863203980861433203778557528954557588839534270693817288083312382221779816890079344730259070778149359640630499142477782476269279243723862151048320392803694237910983861235996720570862535771081882336752473487425717291747301185741538675385205371448612639122196299248790242856485234104777945873117998506246359581708005881013702135932038310616744634226273581476867058833236532794981912394563603456798514005425157453761874873115898192506887219397482171975522322219716094863665106179968761970021670024390028603975707162914524673032867663685318893389986928040688132029055486886322204766424493922090456557052380655284466947635118493772001634857861201961153412853417772683704821081016017031350461837150715877157920686362482019545538546111785881987098672505742888150182920815446432614619429020577222579514191513436434469345045074792490426771888846045889802213666742996286985550147531972050412242718283099180543216364914964798738120511958042227924858979765961283676759451655271995278594528213984221825112697763842097549362272975336618878574539366462353131761386742681952894077048115867390630879436220714243431882838527423108384735204966131885931635863198311282951279572722409500103813784238072715551350856487500543872014502702366305264017005086628983145156926736781674256082385783944050566131073506783596416871365797622447649021745724724944928592645661768942532327677165935742634272850912594464605450338288101712477569835536647269389343738434281794854604289198867423580256940372411684770235269131088122718705968150718794174937282131437224837938206613165523210435381707733277556036397455925780614367668636923288570361191396892845454445605098868841489550194459515583442142113081299319473307508122765822676537473155394975638135425288778343457643264380237143442406746175354712441409386032028463654333708746782309835208241644615854634014752879673882442372823925996210679504767058512929973800171817025435674347095786790366180725518991879002730173657455596250308284004275841796459782726357522647458729300042724998413560349106701108951934606966883542344779435039801520820326195886181065568227198397191391847187153415107633886277790491678398352325416004728830949708183777513119789321739011029133223663622633128871618241927871997353503155664058853822725585555935176056909454872922966954964603805037003689565211216294559728443071884972914417714358861841572769568962877523621122883411805705197023995580086955746035222364563865001159483238500136687679593729185480827725936492749512307476557879138589596653674150438486961060847674869495267151817794115077588975113609824162632099527806068887555914506475884783998521238095282756269838296201927920752306268551596821586278980442094889765396369418100116739628175046774772715362335488732995153035795276701905842757215792841337090850756380246482399718381678444134460151421439132653563942050900330327163862447296926806801892479673240527575355185613166760833183416373391846865413893234059856816427147990995476761192659275572238181932288152652549773489100165233345025940203018863000465447857580154933926718737021041457650375646572411940804993097849379918106877574779193410123201735756201007103476104578494560849018762005620111427895111716127549985201949020795647934365437335512243139892153733667151792711274910905223921778559934707414007343589959681102133529046293890084383588416396499284617982255209290352796437862235671642049806381387231632059291096606219081796323424457912897831625091110171443976466108070413629409098471188454888892895798828448513254949922178106440240054678072243326297471414539914291750553022467907793389936977609698034237251056535175699828909243988756119878097161590787647186234787601878650426250097530498728302250059555187249139148062694219517430420930638826409771115788339344428139182829119082601660477580625784378728840361251992210938490216110903227966739367262851791529383876654525348400611746012780704000468457101622516886104364206399948521110707094340071002842787225133666160385520787979864177257173697679721042024609687173420900414014531546845143489487182217751250917133016328747804499804542961608892904323996222686503145460693471978488541603124224360824325395517092456774916990787944837219855671990577290657184578029338596535336270424243663651588077171192393954913421182997837144653684423942554893620430698626881579542605902792018033265414035641056800995341707536236397786718738373349846832750162589698506293101874645686412425796778169414713593400678522927424778149226716690225609862779946499426290954375562968953189776350792730379157771610286162552616040348245032599887042864710538819086006674877735019683252415211716039110574514367957833124327698581524638688423336554886148278061453791662156843618034210906089000971923794643107052519685339202253383788917262730285838904840888292986874211355822147076721353618004056401053469957522350413499835417757478473862503731355942211098205130125208794848244466431004240967215004824636615331659790570375664340913320024993569845785729896308905134606776878415959708775527650379188946406362482539056342939363052505580540193475707869531261696143481857857805114311556838959507412015772758660583109852037425276664426440658840846993072849933154628327897396235252156536894754396603907793815884420590397037555773893457843082566743941123499721839535732302283481964800358316860959576284319565124433172102821587171030207992872853433543124886970245579689266227020252537799741153804690934619608769384186107956927847480019024926318101754448767439291005410888656234964127729186448400823476603436556367262620446720356837681651327234239518536749671995627266554831198027852039195158811951776872291213481456000992034934844850172590299738159490563497465720827999676967959366658995999013216149138637206248249237281624672787802880204187326248984446643311005581967255552092067387074267667927492299602568708742254969696720838972845074982530589420265299288484736672283418827282988321289311643931791812263396146890584688267167154990820991095402971680265767812185286154295328308460925330009722742356035799793681360315919396171473763712358653732123714339876287418111278971761768193214864751970337831389263492633828550574960892984446834253230750138768986722852618468447889229455093577951288300668059424766660147847061970575568125769709662542499624806045919073228734071997075113043347667595577388506215282238968434734009911909923681961656731306416302774257906567972375186101469012883901289475426769320034537213414699684551797807370835006774864030776061624769838570482376417648838941670334172332164795321496802595366205142434358378632259562165818904626635119895178763391815378429180074799466860120790731843822327039994339431813025867554875356273667716381177528721653147393361349050991646875371838822743928882095772108430810483591020104087756826251542974015777508307759620322218701638969361337797817600371636717955784901664686357161293112301909001258967759860255429459552371770612768305332087042845029724940393120517795410912600352284857955814461338919884392032525142568642508168998667979836547693132690642010819510263841397520179196715115674856313577081098554622611722263626103429656439226922345767233011609351393085698884342985825014295534030387746841470842246441906422088150179222252376539651227765818102414343590341863892785889541568089296977494719714531973198668577085235600068924407785072560949907439041323293524029916495604548050070896168080453748878097282921563781998581720217736176626370851934344593732479225055420871037071591042632700382383725189211737275288243579873152794154681530358987967874890314919667861380975241227514399865576241806283587550565507402820653048996782545212759568184659657073908114539993474594240676526491281365613596766848333879202331167022173521652110118786803734799744348265779693147665191106004404001364018347827528010181262736750514559384924369445703595096791912646116652496774604679542008044376883582480340140134718725469018280750803251660248112919996995260394155535715478661128509267279603747650233390385950059324003959300585190456033153380730789606352698876634799111214059224533878929873727425930143756923763080595262302279900747582819223940628438010180577860400003061897867649820327068803343557952698968832895618913153766478897411333220497297035627222066478877269925892433676870378517011447991346415858103765385178755185792133948898987976592839865182475213968835082948658431951663550944020641300190410075896885813262786373925533048338309079941916817042200062176066332252349029516675030929104572962316576481661677542153151833919158505232278294504330022918463647948117605737194435863455162819429961349157537708428412968934962775119527258747146252292708654539347391702390809873052072607000914929468513463936286390334144296081192416740852211876957624377017595649480321029779895694726808716957553386365703851831679164279719712209066901663380164753696443341554729928029824104305592798305067715485965341349133111803646739342075357116349253833141307436640445241403562123808046023917784924571089638992677987879001928872742209409573632855052869018176448070702882060742277770003606018189761323483120466078320513364739337758827111522532172575177390124701350213499050091392634248614313255039821024000940520161227931897169695551192960911891600391454150272600163012749577338695372645991643059004466526544242726881359110633315181072660254248344982859200104511205313507495744466928249055120742144602431278832350669183454371049370066540933649159532903505188627971571358717544815543500083508527565318909565915345638351261808536130115480780965855217343482491161140552883309105909519131039740949797728003632310792151406120254514605866521435824783070817525906201855986639394882333004303222089951200419816658741626121267176295209057670594461291402443494842691133503536099510221517629673051182236554070326394881775437740806129275940921492805340676286619795388372447100634566884704248222151439058136949417781652993523018270391716518379744261317320327096264015580025601407512800522324246955327793648830066317985953899196379142410032991058363236250664667519164768936416181289721413687841892449506178676046668980997400568131392592880782427314033075731904653069317169600828576468505480762914447517048380484507646980135071786110406316524469600195135920162841431055118399954768730797975692944840125682862757409317728209942103557688135692484235490220560235937628606833508815885543410592263944288840234581004899968313911811629527265657943589760575601146527961983600799037296938812605232486097559700610149655104856501627059440585338549766038457181952775546637861298142363003082737422768985394788235035462754670447472174682018880501787924955818286694916801701341266205821875867569051804394628908269650723213498877385540634984949104374666294905336633275201359568636266907165432120744650025055464645721306208124862159373126911410098388736531261524656846274772394012473437817608891878937652387793671503673299836491260166818881608078734287076320569920204927567848159136695124537601264791691903095356611919817739285321730762316289832525589726433272090999551049220241552014513573696626851917263493804760791794758296295542040606032710619895873264451633237037813076866768896991771962978496907525074848851214619705426535323347576909534817041698270137840608428069922760455095574970199611000234344748046889308316961643730653008344060978600561088943708529563659066343269472790230566628565373759304411951184441577151403848857749608488470300319879922852696680099025714379519382088126153708923162875180036766230023293294118852801561896315618829022925880695545458992038770656666049480655015987990555937977001178066055375250658361494598047595922690063276985217872532360174966327109038817694331829544023196896308074070133469367198560902368001744351339320590343254780434037375363895540995178777971362834893464130671011674992756329852220123211320404574051397474764941125416179108900898910788607279212466638194632380182209363397274033830478919213850727251544643401834801766660561803054384701729747864934175397202963806759348603879307079565644843430480721949003995294069495580112125688664047020598845828325355022484473645899943129648750726865476221074533773335731634042764652186469422139363968742747112456172991053119762448160574626403401091597563541436065494653583619624940854325830452909132958246037256056281110444128609300641471541003731277340700008622672645602023548092313681042239001887524157657885082846938672360628179755315581055562089455028633727996390907294638880615108617549770761656887212116106925208193115776583060645578847677988921106180663956985862689712409844957590921215607014331967094472771717687093338022820547395289476137552883308745186297006253650897174630516409759343426258635454565378701417454894117566616778723557687033162900118023198239429958336441295071400337618745386765568926507796288490943390106924337289127697700630616324310952572810196816267646408041732191876298539129301221529769318550779950641036810944667253913288684899817765561289072098863161025348603362057077252457123520516212156884852987430810517517303681437339959884747648540896659839510326227327991534289909738474471965271542838027999376934146777626955254937305515784215834819080057207964438612154278260817560563320678305322527210266173212367141805506853651208223402851638172538716209977865446912254279232098838377225476926193991254847261627664806153260560807253052173985366755946832233888844743175300766666071684117604156343139558080370695305278742005642587927790144934091255972936965242370703733367174553610407013973258226669316686480278296262470031712182785502633209447795449885567112529115650447749222574697007057485801688520374584092552275007329577211336047476330864338989553942243704664873515867080860174328269094673556989056147026618848302821594610952947309930478646456462917902877296882617085135087654243323463075245778122495277886763811176095207906817876065716328846275258301588869176656493254162698299409311546127298764916895766093702358543354209241771665023255979298125247864465365279539787578218789558563058712042021698291627299192216700895940720099385557079993010253891671087600740086897753109359880844099482070823778363014524229732971153016019665815029749873784536895660342143091608094815786801674803688535726265845025027031538290357784908808862809579443910375282448662381064266843626734600077691691573146199407339513477859901128176705510265779067230872171439320601320411412443177826574365969205992025508668616263929902323818362373895772952291523253116112232913688110323894301495097360015111272960306078644354188887092893707144641523353776892876625671078473966512616837735001784942119191896207906660409993777483825484225622048353006123888055442972015841461601672938463965195547349022432792848610821531930462801773054873620585697707874921582114919542513015491408072798579584945736951816183969503066092060573200782239457864789432888580357526572123352219808231210072568715501012336467051675036772302595479724855493748361312909520407109768893456059809041606991517340613274590503645942449460427888719358533861829167351085468741459507637271742116326843897031505662056251072171563963941874382243550975177934389608334494923453728139007480047604581267918758754096700503076333792963068485626923816960549797339271303632507291846794041778418134882306639332894030185715486128409630942783384254233814875401578040911611334635916667064072106491403079602524616255663711118237373834621153252060832381827546711006611407267306423985081528353151420150984029406448358388060355319773127540921497526686863455493530894016866093987708747899889031255504816004176290056848353324833619244132240397834932569539988812391467641437776730684630966147676521458702951161129791573644097098188071238232437984520181605089211833805248931563635902006574509077894590454576456410648253414643044759020271093101756372540407258891080365242138473690612621898789408172872094935012021366034733825895443707927925465274071379977988733660781975153996980346045598762654089472300868003951005284976199857194181482720943021369328005631486400035351161584281573826470764273601155295596647844710008547393684197805347192324516466296109533713816647742000736106235706522421423750444170858723072445923116225335566008353268654433135281414728578748098418110187928812315203784185845031097632964192244583883419147196307359897221922125847404518035993515143938775674760547134461800429551179015031462398524331288142148941410884378214649256512499669229642456076004608424510910870588071355643744378212130896644764701237778264335049090417838759768534524767438232856593464453062776513036639197053860132187945338786972288939915946903161337540128166021525266975605135556292469833424432584412247670436440990330080159892436347459527791614252914637016947687040442814553296577395245924049488963892985489159233402798101938889524384436980747532941686224987406417825394509216551992395874790026798858337169847474622627119174641340664151892590547688783039920572486445273251846696786197635512412967159592640849627566536755640179994017686765965880636242588967778534129111595536425065978390479946663123904095811052363917621017971318762124565706196980057217777522374673375234091193839317926481412954761871823930802941467620862210015293986164781981680157976101088155500172823757976266912895711267018992671233507470829291889845454442728018268715024528130934600022998143083831798510134746904198244163563729456741271529456381483210952590165195364835968503050276410401946387312472669290126014711810927596478823844164801096409758769396510996087908938736554302804036030195865809527166284962772291118494383032105506871273419772851633375208146626607456480596408253887839375747808216128941683063591561960569286771851790632092577394813635688030568439767588429464433180446542285138861336261787930430426659626324081225963856484672706218609536605020868142364197184532860524979793406198358753787861429000481466774250307616112423247836969503128622812346708231094936196063066430922279384759497312063268817203476797624506969796944751409398223861130591610766116395304200941287456171853777094457214310016946222323146519485392632729896898515529151769258284399440012041063710995708121446825918491238813905115236259444231386517782668651738038632669523578009172337317931047088969661530641262671713197633760031236086525125242467438808827097540835089666680963280523873957152862274693270044426204914556160653719907931944890775648773743249874542483106097157416556537046165406513414250770047761735718013881117224271869686905754908811295748139396652545960187429064116335426688360158262674040718837273735275669515194689696956624365996860196606684168236654156585360423323909425448598255652251700625493180434270810056377811515616069843346452255778017573095571621934805444416201916329934416602290765934560986894450819414807262973642704332092983491849164922357040406404584171179060135945677641004699340555512614173972024272549326618885346514305876953324580028277292536591255122845165712693245176339594686558674285047634004778174220795390797627632389024108420353905768048979476938144185887062388583036591444182963359232586845713118481623233081303977902309721340782716299289132398463121063140184761465308264571868888647093702555029264408017642308255223971887914515697696438196536010658323526190422490593885246258423945730779593805178538967343133066020791654024285501693168853101898420023447863290252375323256178534800515658560775218288527152154424169478610656234987571353966866965209031025444126705433528049099560166276791273977392798300716357714971171157442471891606825101834511191688231021096635793219857522263205363691504736086950186400788232672780065629050939675954141448222340502999270091025464971794520932020345962897207004843850809124355732085281199379077873765765338759211306032647946563092309613681563440760114576609980404396812989855264088533249672911330127721033892659402675977034038073301218937605934887719914867573249130609679524179254451431153887998152267551463118188419633520909281903549538997884234843779820441875692616894184640938374051059809785121309998520317273346939576107538220796588860420983376230478156670996017349638374850639687844597351997266395928553285088940539412763461884367201380497209182263624370599569299637079475982765253777282129515312054292987398888929858661889970302999533418073319685129717926836886787283863133290757202408096438369115646055793896456546992670012927309848261955818433677371589749225774014375780772718583663184577784327106326499207079757443444080880708308109991723994788635071017741125004712908539599229082419951166959288756310337365664866002231102008624279090981580310412010831696571520353302258045299856271166527122015699575418800620200887960268601643160307076537790804779867845610947206957298826240762143333445458439571081595594203418084887793352508160275008876400820408622907638787599052818131815964890156409128839816654634520297896560463730859486780335517406100030961646336774246192812251186038480121343282114394693595350841291403646112387268076440171217401075941928289549700191481354574577222811600359396596021351362498693203107085160207459888358217400181635282744112205463128731871908967015140355318974349850558076135263529308749432445197704960715119244774230368871331795235355289412160489129953733068207189816693966996819250774080615003658188875850657609265276005210661864649164215480143147765199037309506144469140924012209568045469373404822547076003161667646257281081113547522667880946693295717081992118394777058907960806943953982258440405078817542543517335261726690006265672768785928386417562690120501536895887840501863296660992660454230853989265310703673581845791943894961047919885773368002860947402784169294857126607374475276907506039599700674070905815958741987440439355741587492758594570735905004869374359994171668123408681184755459531353778200999381544573825042174507261798282063074298112730587174826131124925296077411156218845363400010918557850787606632341329000060341693366668145630079302663057640900378093645367626845672757060538687865780701803380153987387701336809408456627755908188777928782211145535018386500809505713708431961246129155659375452413858114706591568571294490652464909448534842023137412693591694503696883500630963366711925508523743991723075400134000275044686771848301100219628555748468038945901063528787794532892957151399381418666314150292074169786236721914960056900128246495855554128266172912404122373586231273380616217719668563194252002039463154452998098750277171696590663317084353916226379831889189669920918255672799357503343741021072976916133803721443095764748701376983601628276336502773891800017289770634672646793172047121230102597389970524107600276718547996336450531730904438614865536029613258496787556133798220098854610704761584121683921693972193597159232446824131990682400000540365965668917577498257201655307382579240402325393540378470511311509575783459809514093763030005530634564695784608622089780455762243889461543650123706228823667759969071205938553094711920448599103390073314365845191959630709350922082691840564925494926777959555635657386316193292725779609056054335398432879693100170207762858687566888383161796235258170819480187167510689070548956292431075500905318471719514019146335496966083203982386700976584095174780536787072749134014054841088857381223285150226388548825576853467852977226463036030087612204501656279149666203262495101922067423338482290211984568551393264500202391862877910839573741362701060391693308167882968133570156997593642496210183116808237774121595132439170307203308672884570189183477565993172842725646786821973967844530110719375111348515295596511675441658212547641008853580780203207215022204932374152409358666036094593686075138240794274645611158183644034299355578706274869425145883099113079586817349677135067612628438806714666000934378588468993454626055569242821326200594411475611728072584502067969581001134733608996944712769102652223924653214703985448031778783971104359226024030828997712670788852749356526754013389636963931142287897981924221329786087879203598579853787358850664185382505276490758837091192657700038828001778694177370787277396866054469416621873094441677309322843204535689538995901635985907900956379222937567620897472981321426745599266846035208971266007694737090194908543089110040520727244003598768977157956705891885118172318458894101784824938453053233593524506677053570506963815220565090349433100275743951305126679203204046510523391204328656950156970784976661612337941139969865486662406295905494096847219502270848974063191079640493739296528889184133586133517609037763849448132603486416609827781415477008269370379648301492041669578063146503276437375451983064086239638712095115005329380058607435924432359307907850907697551991196508662370583074368209268023193012437754013773980554237762725515675907822696049587346681764760184174484336214368393082701250788968440269172383327191740353748505191150747930679458692329939659151641112496525262909079917562821257063379947757457739473702637450861362181030211632216356594338247121794024217312653859681408760231325450537357514551585427021432923383827228083275458783885014268237088414432508786953646777207740344629755690430420579462800558142823876005244133965959699867656447528132423030893493111607660301212938663864360731448175586564714681165850407456711195279446581370346136850157109243463673023451210994708212236351979375857699321493533746586979030686359593829989979082649233298184257382684789720091935219090380196095440376987127014181827874617065518211811568428080243842687313026031316698269224873796259756253424185042428814049295059725841968990098464309475837010519804956192314745800695972751865431300447789937551550792742795859701808313262100843858257903066666978627289588936218036093339716019311203468696163498168869818221236809104675851380317509249222336492481296504833768765828084854336957608962176539048053821478080975379119542132238225006903228227737629134079411871755151904581815329491171940870477860154724351362566509032002003695202131610685827652809628450305475337921080936147825410472754016822898990577247056790966567254769604223016671462510096180646544888797564363418255018010986125433209344667010861518098271970949550701161010050443309645155551994902816955277075966254812311701915179770371003533162198782659593675823373459289125781163358246250947865169111988971269655317967964958787723028614946340984700886926410600186578520290063311327109113152281656194488298027203477176269694806251551060769077120169001001132352060387077969040848269156121686617289350649447073349503711118350186775861522704934888024870263164998229613958582150653572499702160438349305301713629853137373473161672298691468194948041375712878016200197402465366045179928980905545067040657738508260767464487542860563899838455670976889870054159645730629715050681147665343931046494654539588307416150907537865515388103522635403631784781497839935842199403650840408835508133755947134314750067210759103446027722652489889078796518068659713657305851673029613677847803144710498596253818587617263040254056593355631384094016265654410520607922897307447434846171115412138867394049184123996162645548887403228062378046051526394109224585561303448303548968033021164296482465959356650393360909459793537281133409157095555270567699963094584204383355157970963231916651353049253927808957666450699734894963660592165822569191490476498361119572810814755492203828181643121709155085288167219886958008177962089130710734184659275216618222279511463581769693148831038913678817376235110145008007425858070281258855875791143991966023596846133740531381162838702751728759717026122595920607594467923280878936723072301727671825485012955049248507118718727267212659530535928162784335549838997521931434696860256097230132549103502918053904349610308665994807906437894740537685443565645778145019388620253096310429472472358040352352516237153861638195592012205984193461075103027907768485406849614336604317942081723694707374693969807400349474986321245239851871474799045949868123040702439391722395677590242723605488055063231304867135366940747640967924436673490742593041128319321786404707564864894484518766741179684847322869311040857576482112618657289038261911389419543193960220530419794976959962243853997834147324441856307907040431346615560963773768197003075207806410049877107966216990756891496185881110296192230451452054241390750075644857332214486929805805349430477280359164540070387307704161360917559940156270534652387315908242472558684608993457371424777597869431510218602107369711636499713625931157892826226345872345675544168113106541074566081281718118769695381304693443409036217256630214440215516757171600831299816848104303453253320994927620775021221071428022802995205857793076292265091336876548435361858299681440145466878179190110885984982050677446646299142218331186507524701778645175490499288884125001448147441145607476932788636324428629425386237989130962551643878728800130771429481244200085582940604388269317672938824734401041499237553728857455461142480697463828490251990193044922271982284710516112141733698275935878522818987598696499089217215230570317518198616262166196945707049210098963115811827278054191559286514549190027135871491122014665811914449870638357699693277925708594910527182808468180440192382883751650331276450911999676515463023747841883557561101141362091044185747449448019192918680506323146227367833313246411024906948612668053567162778362497324215715663961923942790960395037718025793808158422032680083998134469806701398156514493947082727563191547791126923556097817617251746335251178264007913035376508192627506754477816230366194920799624715000512381509300678152921015853895849119228913630049025604597277005508245349623615983570709551808545650940550993630382856145903753823369814035806380709328902568556128989478602313564601664817909306466798429336871403917859226604020111968741322479903131035401096353890639270461559306341985515853920264202325442632266044431412990672932335105418416404057323808990967450806383677060993298781404856187292763663364245528558523841176531942012820894099687339375558115338142484415231289799838239995781369163616550646392227470879855953725200761983360570008844645594360394519833344910552334128844864160892948833516808636538861028211064168046729008500645254447558413703357271848482065480542147430982547010834257130225640610740380388321250942361097339709705374550010283832467179975774001930215286770922033376361242597589437543968922368986995412946871630952080405956135128670943901886186525693102721461439416685534755215830886590270818927839882567121057562273390902551963126089315546493166505855812592015749364137297022279419957658158378627624627931411964872495130343806048989368869614945189906551026380703858454814670972812198871333269201033568239772915192250370380691884005947857095998688861874180427264019068338317002706852008484400782619636383478199816514360043712573482298391369852888475167741365819811071395549123362694605922699898583042784381601342247865376675046880104241727842550595768762959610222886527441308256529405218225971749842264933875613428446839809542912091173529709514547997909898072579273486449892285949285644839860667117706217935576012898998128268739110100945231812171265909161191963305512617193736198510735772780985194630183372857144374047137370341485524094197622278470790991545584895795337562398010964623446182549808264857388108703889889898771075968864090397303095409511346465061443383442522908104183170834421338058802662780225068025864219626892385448075432512119533019442699411039687962109335289145819937401859116137984205528072512937433566205186331832439367478914739300703349065453101416449956018325171952945200904094301096707953857470044591750111193685921205753773354465541867843100919137298077296142941854924267073516833183019172546360758593551553394151446391868166495702952258496886584047455757764879784090205745961533918327807731069565494681304422297570734250553610301662334713556865095644551194020377065338464467441706859502099682746877608876924987970997218012802320898808862472634947774189740785320184935168280380994816830860740339926627999611291290454826266282345107460456133805248129729533888810870881283313016134746496026660385113341739412729346191076481914054447496670353765431313894700617586026991582093731158142141138259126574947351559273955525029567464890980036568508057804496321012816913573648155673057273261151170610138312579257480859424798463092553593997428934278920764924726853039225436316466494510742506782204172058295970930797740590338499729689752293997720648470694188670815035177530890736402104671149769750739009204330017381421775648721545162860289617034632333552331387876112417893494823159442893519634111158159189830833828521271114396098377928336365199567758765209782175025036219270516947120955388684102458432322645586434702320911597513032803511910763466768671415517392911240068671222682130534780153040257375536148495921974767637627434627867989750457741862778718703257577545824523883217087089954629845764966044974765691009724407253924995942659694423142110893572213102144477831419053485515110519691996352629842145572528000193732361616482086299558220489090112161844896827816784431914426125954497181325674584856614253233943292400316796147146308772482166518815493409672809986553639857533717554595759421259882667183492432758083090834011893608229099941868820244534958164060078829434837530003100089601318008463303651106254847251612778504515965654169289611870132168749517585431482268405609867713160188491810720679111132322401149385742667806993779028508911180712833649736254932888495846385988666585962878099721041946897836779313770465590489976660918386093547408059713263596642515014217837075168656323935226696463579150087764640617031683724262681925234143583075835868704781015482954570269443098912406041080354891673572738688208504634537645683207121106745268668512414361772982352201316273090764211284503756908774323022413497081417360017382143916919205442333516773772729784056954948556052947599687248557737799818532986188152306743804445592487662833057440311310406812094824096282761068286097055029856225875346029028559041614765109975338750941547994302578723033822436487361011945458219250955108782454420002130291644472956829242113416269035607075452316453783626850591258775960863187067060627409961387542133078284775504623039376631799516811413338153280456473229779393429334329015995939004611134757075660921681211247061221669489069072678026571759739143219462753347919827435629816875102542601517275058234406784995832942812924027055854207446707630777844185054615875275973966427812692691389966028247691820793955671005573587938776227298485667518636448928543861186091385738091463375731687519904537136002566601551568076482068764485400359117994237958967098974387823166158505800785364189793722255791987987534100448457066786716813975028490013374406718495032054311074088343321832777832988145709519335346909394211555644416360495271732591795241087866822664567708238229152253508862997958690919353461664787225639185438955199070470420143656840399681862104206116566504744373732017625135468358454548667872256645749666905999962518898047850778412317876082843567217458776744268173446241965420126709153683135274588499775594504262823367150951522949238251175666352096781844814037551168613464461956758894415384013456248864426611791191754083318666125870981615729179269255286225584566363677700140414189397874859162990083181538579060548096890760075724734077269330944222779456531010962413860044763118713245526081050870053952674988839572090757320584977591260205509073714481004627782886639984477038571456574331599272926230158096026906818375873967877970488352182836230191452173432480128555070596441919987456249092943534706855184137272764816531534799228250185401105762476248032781267386366330968196317366315365706183668616298199930124757309420505340837238722934272652214596282568547880619628939991794139897884522225605935440199866710630017568376192840306979965888542115930545129206409057203468735248454950888453149095247278977890853705910374715287392484669320964266802284637256956274917894734629401944459810318410256069218154127168183039880755290148823575053567180618266741905989616803887052103790433258135381457022065252513764958716769491447776883088871600086238940385754629036532122792610310392640115889731400653476897425800436817805947725664433932719583089263752497016492023246879501810481159596457575344923814837318731927926006161679861012973800575513340020163015286185716273262799305998918701271474943639565088233655514323245593021546632370349435970132405126431706468159811094507198879246495759194406815243631093116532766047694126129757329559486908096743532158341006529940797863551558147469174049665244266255202138802702234380025902591729704500857949433347935151607557975043517590024579180098138822829895488639044922292902299224723548969391075128347445933266418905853835052851433107517853367969048582541713119901134351551240518190419220128439744782313875995758604015716142019928160376739190797577742279163149958716629935515046228499162466062121303659095965788271240786922687391463355728894393812256797431717705719069039250336838426271356260954958341879600791932868828854504848096152781846660008750494973233858467192369090476213307075269744654585506416322534195537971203229380437811075687538555014226383176317727810716990264614013844497019367063852667384253450833419158483326204708332411201260813302559392219503299986219261166085099230302518247931433298667546476425721059161675985460187675576362285986370360592666135695765301314543786448915065556990588208787352660493166221819646287704190543461013216167401845416404725307552079407336470391345874120906910454774565352779861892746142327159914180227833390463446479649985492792294439615423777699595107035107036257827924492912584356028033468980237443255250614777219812144503813628067952636048232194670932400164942984818626705420381558011327890938858095162720874503306316738139989108245560629349409793815648763813654867173188512581227686672856857225085268796673551780816412146713759684964553640013685540726731407984175760116303540730816653467294197241562972467918993505623628503448769578558564357558381569129127548389188980352183568967769115954710854530188681983055531105933026928706685803828210145495056931682642289409287499519450444407773476441276437400064529422364674954357139176013984734413668305387049109240005679384443142082509563482189541415928145203326588594498711610224477619474252428791644965196790762932126500601433004304473330199551785646319837709297757042566534265381763144104638158886978739894860008693261068392223721340954637039642025623100328892541244529039934004370884658508004339398711701079749170347813902992339443510279724502063407606143252273873251201958774076020568274571757447780833001492044090782665055131381892359888551316384009469404562100218159822045519100397709929444402864551982887388195185771937329432258209845539483855208812156087098796369490545309124672940483772857351222272248469357287554746767051794494266607211637136512938907543980863802183849242841379394480205727635458125612773274856729983128931215835646919808754995673490866801204450247256612133599211286078146061829376155362725077681573843035557103616264332139660526853548466500859226469264577104109950322242031430293562226041179597966993497221352820357343542708295882235330700721197039316595851548738195121754864864431495816768070677409984136887268098592101840240116247881862634998735074701749598203946702666615277511485235420413664267491358002009655115700941382541292748860472055444672388155416887025200980282277539807310078249874602159702028104565296520679554788490079230987822042887072046626265583495614740566590041498981355008184210313880553208970100880899519389035504112740293364719213048362143953150389514099857281510473571275316715346868557773203851989616900594341300264510053899783262021513861637158275633525662835280596484435253022240154553342057642957298164177450465515506465505718537690306579671194973803353837666853367446630244996041870683516192747905102385163396623970343824830695393230821069268289457250673219610962202121128463650258846122307707147847122334528533869634763026660079029803567014669234217617542437392970954681891437578884270979894732992981896696107736676164617457060526196249053571054361905036467820073132709745984285831951579938901132403477797988596195937628013455743423735449868443053637996100014710431473001140077043915582049553155307962586934855634149438379328556745111042972845487976800120695598892885212709294154718419178393040826503031335943287867270842983387111723926043621484881457271266653463822156918694749669636999156987955522942050565638701273471903372130697443259704312858059128020506618543956197091410599637717191942298338553391020221949359575695882004781659540317456081708489113658586784427279041262751455721620149679897149935158256426816476939012194015718372562122400403029413099716950258137478213759518363475870513247797322265209010810040968601375769264022842428785821412798863717730460251333727165229995229208316360813718147600625847290243589571371686896786036943718813210735402900878643249597122495224927486310669616416468452724026850203140206265716488137755247188644242690587493183547573852555843034851293145695686816559354894597795315074084885899484569401937575428056810165719977447476795467047065053613606074870072802139089975905951859270508120263092420833008751862721074561464985645697095379583967797081775157875534348107242613306570440600066201840623627829380372300573945499298730891704011026083311552809542112911149998919766502440224387698277685134660505887732221602830355559316714334099733869741849470739357203806641666315623432535701970604925901019924279546763588464199451417328169163899069306456791109371347537179186910881314929833189412469703671927415096375034698479683520840919600856486992759051851731149703024629829951909895065058775119858074789865202365553059316127956237415011613053334602628163846531638602637940540766714230115862240575042083873246304843093011653629701942698783719668157781342708596532169903137780049168024253956741200101762117664619771189726743988908922433374272110111099557994219444592344359427100230597291199319745513665935086783585307878378089006619489918469887036439245062552705228429404665982827292205955550600725191936698666066641252484081401419112332829051595076045869863442159516927722356035312077737508527082373087765109591317490161023432089600958576886428008184154000314267967091081787102865131128754772671014860656992799557715484199994337842916417319599722864860797921677966483613385007877232055783261324701905705524764412895955383893141094167765777616753064577216622564500476533475374767011338183327826856219178737088513945466172560208605473123696631264734831814514485517713780112750657744191359724359628768525646767421999620733853921236006005931660752117962054194767936975310042417806336816082377903916955180079144490947231500796046150774539184054740172827665196472906218630376885339246000099273078042108520916042514111274738093201725370545034528456696518702578726608493223678638211907368870677632519478034689578185904926939402739610863662717438677106919073411645284281040682558390786529871044160414127132509012653382654143758761447644716023632676859102584358794569218499028946126815148916437345384900365112074003724421247362480692470131965938254247496424698730196861932828139530553104261801649784273942611397234528762654776977610152766187340072855545389875792012455679576196471953748875717818745781854150439906091505603279143658587712802983117686611623462917750894899205121539148393153110527316934393380814260023901953657279036333038430905199041963064290111371889404063306292039260774159993446262119600472812412533640213252104057896748852342985050073174095485452958880270600785253542630341997605887085444577663327817080591703987840408168113171720897810460873789616766905405775879409175925426896656150510405716825504455541243831443144093273447405645649569157733434269863211413298112631759794491594368471910472144406595143710863685176936679287683773650434201142184773606236316979154536148873164579733368121448695394794682879957038633963843347734863213504938240780688161015351390394280837362308904338472380203441338631354253989476283714772355960770863216521883092712944280489124598865953027758559883513368855526372040897068091053925524910179985045282347664997025963483988499020056798772832818345409200007056028322640697803620939686887831166327652589840254328485759390170521131811238379151647781238824244419904315249300636701347629512926293243740857004477684359017639255976822974796164905115929614497768394969108467693574886486775706439559703202400182848261854374998459035693379507463683649142064327794739583434927037882200336111386661023957427723414181528490297137152743561000702175761618938779342775140546590477291724773426647104284884133983398537323397504968780723366939898648375116185535344690626244781099700649967878045582871717327218272226236373086053099488423271079393888803994793292219286222255313073467690380926533429928836447862012279622301086022226586712993596026760994915600455941352882348318624174159684440328299158600798133041760547936486957134288701523661827890870088172851796766779536911496745732891783555862009332070272581042077657302201088581763654871766595636310821127549953505972996972702488182134589626978891143076983844446283575390119025736646717671993974603149588976127817750382916867630775490981420831147247944686684533427391084758142281671701932396765601786942756857967872378823235016943263754888297472168565910255578296862620546752775943167326527275675318732040318706568161820834557630697074732849533203531477269253622460503095795319695219303804582735853705449690285920879642894320569280618407041759660261092981065790987312797451338597548477467997798446037720361401723019637746601718028987016789023362166915857451992420015405536254166428447556178875054717116693349623661962144418867755764447035287058430492919358468709232784123550499643387094054531377228576516504222535348444439186143944785978184961147338259166029718481087720068465630403609676352611053299824254399183289443575051718373534291257732857908758135575948477089731330211215043953154772275900762740856387983396674845440763445295920116616146201723745539194361613408009244920297076137780702147753229154324769567322596713226585130711807319152863844649841238689327409691972327319475835364108975612864021106786130782600943418816409087812960783106363232142274361707041945636157646989862587168188538346088770835959474965386911986538832845362802622430433334253120760427429848033958930989821450485509291726572815006843253947464420549771912753024827787431966172368509850938713205930125860395194299816272592348207506264254648500610123479631147552032262091595880306071309951402206850465324383790907665333571147109467699009463120321649915508835930663451395473790180547894589331996205551117796926368246750624917812532449660057967157421031960205770269285706842428834913026017585699026008410294115572967217987585542303657852573828392089370965982983746480168505024510149088357910689008004941259063584687732213264239199460691848596088888692949977979991024905658303272021362087195237109032272628569832362888367817478321750298360576457078115747711260713549665683936957886996472302655231100388328869382671308458513146720384906303388153016944174641886390796765501454214361191914458211151532046941671565960488481282173173585812204279738472727962668265161776544056572954573945570216079116801893377050897079972499083642505769269288470656427900343357041316780353286948829475318180109775948362762405360477016638423287506150920381873075682975879618537771862221525213109704866248364328027918284029778624876797422746717126240618225180224526969175761838291728313401740541340913853273304667975243979710756990046555023944308364372762506046051553087765143567128659944444912120888690090846603080189088046721568226764027282008749470968550959048371400879421009134074561824173312131681224407987820411433142133800051610135842420522284302849335777706180925456368187488596047574044541432976873796064893396637420029156703669846367823300702396841470980995645285471367349005353761338485800219051376588442730609137685514276489070236230687689675000330134879030430030509272953400562169728094852943889050078295544976547993747618331544881189161233886932475296420406429299886196651465435153579304221429770345164759292963645420333118889983801889069294236705537985214712551295069271276367306574670974626857604377270131037603807686530777091007274313189168555080461024725649472547256455045494761830159279971196378346225641614824244638442378957740312497773941500110945166802407009554232519435223326044906017029122059053232342787382082406577930385643483301019721512882781331465896720096523725123104416522468889740527728342932310368860671333042383343078187325854701358064606573771806563505819453587684908685735490660561574604038056729558843737254401994895939839486088989671419233864525545782608488574677904068008819865090965699515816747500174740720671486927069213421346483153294897961376706642291146124367096785415068664831804935577325472043521590272163621716797968971908665914061166347441470780265469211592970000021116632548756628950750067057960518735762808563453998341077134107833104709601663242244968945070057245482979142769860499078614048002808964995495800355520464932717529274067437536681471495767610750154962055815077975225483756994565974136091247137617624196444215784739380225988367376998276289995014133082627822696737200799766386875111499826980392651359846577444292248436451111136002357151008897009916972237444266476440805237407273858318788813483766379676784950393941470768807450324564795916672326642967279809888190868971624503038415399539471438947046850414146212127204213092330548257685282802142383964058524235358816680767691096173483615398679215651330834819138877133678103024713342131977652926339978384634732752605872598623542006793838844689246824785642522633286755852409138716907851336696651262969634255559575673604349229808383906743565494917862220116958375644426664635323188548885198304798707727596233341788251969603947297636805495809229811295159810883772789039299312107416682950096501958534766479359003654638445161017628498185432776107179773732733912411912040164739626581054232248146416908105196387386519344829000612557306248934475822768603110403180917619497275554137049808098218977697176153831938649544431782567701740462489727581945910821356194295121913427785147198397437160744986732079366676790567173299790858385434933282839942743276065080908860679146974680947566595286005248905925828486088565128175883914604812612164797389588587693695260551446783625025451333385161540588877277229590953482864554021505229224783560047838258855225474667881544535217739118321627840428065185344591883748871947391649200181136941864743995691489578542073176427133321758258914315599332788678803954221247795296448224226987670224846227055138854896953212729537631524354220813184396604842936295578205260401596287810051975369447833152483307205924031325725748369571230202285384847599803115751015991225732378727066780416250710465729139811410813107420150093242068098765148284377260745195264522382871560370370852966728729407118126930118238679121777349763049185582393646311618319683495199453497448571647048112637163105070079688011078451672298101399614557587200853015901556367900263114195701595563007337159076304740159825381671584425470218497159707263919635862881982787535206904191973241572046228288220368225401271728063298162311320712124584294906748229212333345434217910441256604802931719163653068566307317750443456583683890176452172806655196985668123268860897386418751600338885764682322337019227076757109087613769616398189640634671229991152317532200716335855985170662315626574732283855239812685552134313470057094562222038249820083651861047540996524223512343772071096425357595323622425015939056664332411592270002421438097726107760050822790313647510112841480091219412982329432041265693025655724319771175328175634369558729188330540638366522522775408180804220483519773694775048412628385114247731765042151563242135453815540888636421887888976796642427444429618026112096562241015694928653485082936796732145505603142077784645971469512798031987747455331190892621500074310295395814301547079538398332002203662874287564528656180117646813776123457326101951959296256335945349259562073575275368497603048228297736449260603537853244907469864536510095170940419390047869803330802297934440709691775860196660072429120614681401865423065748796157541643925788591379867720875836853596110331249306673728157242844151618763798839917158164835745384637898947637269731274303694607110790977129646176684025291967150638958956987069025505497968818424559510164038002983614125325215670049891192526305130487394115862965725340570148995961272524828994059464919097809815024152314585716004434353567878794122691319586423522644771470145799273785184705949372420753023874655136867599289033727795680201341566194412895474527873453578754601908691680397604954795355336047978334279072362663770813826205135158183046251677120768743969424000936330735901318418101018374542292364006206275440035725297838742924900348517090685465079283472939491731698253403692655195664543889321394586663833942343750057354482325983358630678752337966221081221787406041128617331854780186106153802819827723096983962156295489679972121322932500674424027889228983200228338838530138241666517576484623431387509487448510802612290684322394035479521667851293471681308204195420760791317952724727503037487611942798415277027958917086426020297144341188730141836360924645293350545137953012279331109064441857332010222641501610776974005805254067555045922792692073615465000502489445543484785216493118533333937737040005945197051943095526559047054875515295868318544162795539484111648474913301287619393993623601977799157954935214721515916533052440653713256099649567873454987292767845667716675318360463414006047623557295105160986472276623593577118350815122839210123691418238506928132482635674575529307217301786328985539248103492817902223015412277481258268971107115359988218396856468958652066006243147642756701567552846671089545362719126802839022622436479765472768939137454521013467561922534601906329266831191983437088773367782033412933162597129385960189569635191203133275081358437026341540538069438853974412044754106024717758425283672324843036981257654094999738891894370564061899951777164674077144019875138891749351465852803925202435485756072214601741956700165435395587991696992012429328289373129474836946757570834563472253552287240344275709478751617251777728903278218675432369800532844088446900606640807578795202160023628110278822031996625834387655235769293636776402475343814522502522688999941508653540228336920297269584855532096789884889723410074227899288033209791940003439582506836302039801683375692296676310208213457003763782791378164221562349651215031675663595081909122674014053325036366977008878369825952747431847831089658545278394299389794023205276803124765617039159131948542272864265319482004667226642025375376944346981904077991497234356419420782256146030594475019192784247233622707490869167271476282753948380998506859477495024392588255099799972724020000968961578623296904320162607574758658592844892806942365501914489159217433867463561091541617436755983602082386766460897671041842452691213273479362089444070781747765180166483673140970730793259711280278492165622909492355651304733390144570436908748600231619075326560354485473911615945835346784146671887381952208713144247182764233952353553537826442811069585087485027700111764822075838637330835807740864902489894253748741490908716944581909392770535777269152764646448555522029346055837610208628047945700071348924262185761087025555529278906623521885204093061899744543091058254720003652821561499503116123188934592735724577840655773199977083584275192936119868861833472383034873682637867183994840914801148313104915419149870553331977162843761835275758357152909002902958182252842926803473352903985508419175271765556327634251109155409248558165750265069092913206497091782296617852121257490807108316351848779715051527740886882837861842106897538171708122642063095600341135566738644043226712555008636505826322961080221740973159887077974771151617222581042618129493991785062241773928891656179727872073803082123964441506904380465043639170895044978567639574183518523230402158059309988454898468862547343465117075638350211902629657562059147971435082533268793158090757289216082738564864923001692107965501530669499456687511651174083240089652661581886540330904128264615689839895425880690167444476709589883327077393393736457103082364801402970962808012413610820713701638753066895037633797880087164131543607694498771999116261157520928752959212081703226574890727221458105939694885758250057180333392658174511157022621469567996059368656839929440351641392054208325866125999396400190680574053071281938372836535183480325035644924337588830309245893316434720721724793415109325866786664041593365094802323598523260428894228851890176093205098592614522117852267921569437477255547539135490025934420197472069162275396431205497846962538489351408878205085053515640637590057545354354116903755261457712004821905273872084903956592439121796973151558114404838032772966679207696580569386913853295321641948170641077993903064118191239986551860125509711486673552720228549643582019221889240808898654962775832221680535296480514948704133092408175177703587615978713352566288644609614860206687989670654293884170009050142381681317135209975541941355483054366958379188063664212055427378536808621798186400442622688920180570229509271731450756652469577372266822184091267323708115040803525543563707888759773715975188868459595348568983507893815056637473068653105820372570027357996341706375267601068242767089611557633214010194676699798307705831647214573324190263592247841227436089650809485569733315360570848093322184726195794253796922008617516756972329062891543573424765005862808930200779034201300255829107137803853579871533711432111133295931135247178798931675776600679744355432894176629839852338453502679474245265798661108221466434393186364523062061436236680580251622421318648747819834579179569527085193861724811861893248175191789768759373257628106164940614722102241623400479425389109761829437676677840138657949659481915485328086253286547142673552355369825665387137487818905822270229128428040167548396876196120072082269175793878532616874180769217210681811492005097986886634003117688253358421390257519767074294002272029080088234355774868123283948909825999228613835748755665292317998391075215968767133696269229312178188619850156250522683808790453277427636444867621989617547066420873753539232244341199354747018830641691138420602016879397809978049366641250821669619038494327369758789105085550296245145105855965614352734231479006531978959826813939768372503597408162681864989657964162893412176939603692429581289586790776888584715783234793274325065830528198089965040436689912847816837593786687969454494973223514920432668392434839272219988053681686319470208520360074346118420536228494315577920385411691080976210973755030945208063843421207937974048917062235859353675345137092486041473662096808650068410428986778559691164561412848570722608786496207472078787380919181134597937830719075129828403574580369006682841304603819241293264451121573532673933657935415508689126085816691746599032889092394336143245656455740040064799277462849662050401534704850974036974873320359109143742841797029154316584786104572398772580069779075419791802072075014973825462462253736934810577677556431426033359442894859141086547428349799921501173982920370733675010862042130214162985948711057025864892245141709415127831899498835981023211225368016313665086331140308262966598727681646877957483962617906024563519205788517369191726997862795197213588755078476286025425199289288065214828962131995416469926651157976983602548036584331678325464323732487253790782927924985602979898487811976330493987524039236060092500175795327893154116149708827101752634891008264699017893401904756201092858450268025993654749686464494320720321862981977200367292850507810258728055521421865271396838968146567957484207205948180364785155068833875133011606005035198022058945607513220226401680130746940663158204933614508150287040336513871199130707788676887209586538811406922661661462009759378406358471603520742427640013471200118191756992314019087976349513004991105308320152000355592951448608207731687986851599843876955728647267075740715430106400120557232384658682484001247979683520617506730281283419192104008782559414508537357448806719615600606943079674461983451401017187672084634821922154466024968418351056172171646005214798730572611363145889071774143244092827074407434585095246344056278423753249266368339457489352117550512248791827957549289768472626284528004182618786887881989666068074593290052748259866721752690695668919094727389479617952057990122437355880002281350356093287980704380175367532115187801687106288324520867699393136858739311331205146297711583801972869068306837774910237013905278079471149839287902370072586082109772064264232843086479305336785924814431882067549043845891521260465381814440336368571703781093438180233798023156093463416058523892392556119716456636832054165373734323706958688972779387626983180412554951977211967347857940916539061500810324734922820529129992364004700985908969750833379599923802818924094831528611829521303818847800378507103524334577006087180205516371680451200315954186906948071531097224471994014208092057460841398274110399266851245142467897107499882112239762945311363751673595942628782646200593319063147150966986930286428184150361667817690955281718338337081356659872039471412713543095522298807383482442626008469349348248417114314890962387760142061843395489556202266947452497212008118200943217556187421062535194910871013094625023369125954888906401993935623264000387600760549952955525813802105824714014082043276997140561089394491311538159785911802745185498540908674191946191937784854933479573655184274805030935948477241925116230068641771081492544969648992623784073874703695742936500284863230587591287255297278892904852186080232110837198736657893105603766906928833857777618081469405601422038087395671118783030085832089611321405806288149236237246317173072849082523417329022249378831209846423376579502830726847375065907485359784198875229183553870662744963602535231412825109288659792682534386440010169901986164360872043323321202507264859376815003120426079783891916490881045706437214514105138025942267263414246756167757536801274340719620154225288426274793141186121038926611554228204526446532990257780334268641288735081670723864251060128528119988035770459096538885865643671736940519153154166860991641913462591073987397820718583048589175552594093246536031358257959851935055228709950751632585867686803031829127790380280961586311906490124397369761227342940788529236409149913751393031845463347689015211014080029740795139642584932363460208388361115486379516055076764100827607196856686423964319331886393405468595624322209040372586050209464867246984336677810300537323252200564623930682556079537107464434073918761270134605046114280807579083801383574172338847620583959565012848393258647335502816832879673855683871593993383789682812800600059849354383239178733541366744379673627630361094544540474110297447625112863211047293608745435927054813629851770161119034009194653736233414405388381008931514130107817659645161064542582243535911452157466540596503197855789616089421019394116404001088515492042308484156835998499130280707334664416183953580219126081014116960559569659932799686961016464556448406880661346221944233747216036764281264161862060932579595249581170489969200929783638523430463668384220745114672624490995839412853359749544240842225561132939937189060308561896626057663777208006070735358897144921354145334082721710445395679082557862214298061965413887417739445284561715817595495663331715942767917472279250657297971175189499653090936995399571534720499044466014828035823969275483897930471103365960364062819646968874389819331994728224402236897508361000575168180388383279068502105107545048108864820836600466792957015004253162222901338173056073803575350100201043397686133627565254520404259127007196620201030226591817304734414907087613094234716888601166228147688583088448567324243039657091438155028104098911186324616771539088312590856150977573525446359405238889983006879283428986604933480764418287012112169345998846335893838495063985511242475620213480112257975393989590677627653167032353993066464160956677729776093042710471204462061395910313618740821366648447082068202838162285477745037626418595047142354847569913916464817527251924599156836269226749427647717799927768373272942915810141448275531843552273764055240102727066421666267806396196422692937204621833651613880786428778605953840831350241804943896042269894183382245864241855486164162837665969679713769519886171593653332262270408598564069277294607329868011773412615877774289346678661935725441141859444692609155210596749564586104908735255455729101868690985241268834024843546655666421975578530957310218860782673988044635958679228171066878413201544466783712814407225555744305254532749683683296538231763966936286802711023528080628137664119191114443585831709359332624294274910040263637558870266633354821745021229920390295138523737739365054305404943942089756422815655878930671642175464374365951198350933830972524939384319664400158885050592762584262038630959203967987181880119329606345639827603743356323709470138685868981821952614620514939032684101905523402102064260149634886949474690730319858815572372566525414773179331737291232777232967192524505354290432392511889411060497275956826890925216523037678111737202606463387052508151962752555560374563407343100180845065326581786848854853857116810620062452245540781920640978404064508680114899072595535687706030779974372018524513340445759293705061507913050286376124153239647425065697273072361599342651023380759166100446512458254561214625312566519161867776450516620800265603925058909780109779938307243397705231978913369223238579778680725628412675679530424144171317893531960500151973923296250019614528922527362224778312993353296035475371809537271788292525083326495047436892075463223899090294579502123664107033955058344269124960846231051555440879883412541977427404437558224255587932402937702705562300735862023881149170454058815571499513533220700611684400699693258784515423193785437186834262272851558795430504019967371925457143223015342314079514008049021073401677512077022231738504327533891500015302777147027148114858144813768781252026650675175655376689137004889758285527217658262907431358826651256236864331593344435436801514090769171341637786557688516430706312105661002463220947779731477833174508159558602469196025447640173752673589963620291680903752357179186286183667983788081893536446850346512085330464856288684933393510527076278376533786475048434606658943189556510302607458860274186342617367631182726533789450982660394106637555280231095663885023879207860938545821695541497621195354202183283899715423834158068651857813237408237590832571713544206857483158570894180474895822251610521162864213442614908055551299545969949255458198224507518878942187103641111784606756824457896920557057180573065983845448910389645299395126462958848145786511738404142581390901879359001952929570739679144180095746031052113635318055788066098623170954537359998127148815354915350204942730221243090079547081908319192190308802613218774349369430826935226362234437515109567727109298568191500329540658469712677700358785355865258837399916581871226291499261660614930338877369005668296413860926265502421186324177309346376148691369980045074354326293043788388518209602430665785709479340762330207857709413933169503822338776988947202473038418056602906037462285703083417298769499313488511750954651700554300806885905373058330134927105473043805946553641083478978422186518079848014578423498694631926224312997386405535062191700604559558135044593494684953027911694997975228391996009688660070475350770697812898756182227396244904021169492037606957522952494158209426124730761109883032817248209094138715202108532725636215104127104061362477233962894543812197201836688564751795429550166152425512582582534635884324252026919442239072407878779294359269605391775905815671457851379467056786529132397893635108275712950889445571826125908688339437399396574869930629580086116221468192913706854233593360754723195710173645151959609268579184299074823587162260231063810166114822592693646375831525471946145708291086619302061208695921432314654683623774724673301736154749860349055425950934800310926728797954509913661572311928361919770838035330886534835701976429743355521098312541929535046541603393006211673207205577193458946109293060578678995292048464220511450707714712052808231858226439377690720860254199440233677431768992986388639107629363821589176671748805578291733039599301721651835656992853374857610341003266036114625663412840650565643485061662487465937364502213713898045731619232600654473300429893421208347462333032573882475468507652092355581851861542003791965673875166477217871690966445050096837150425255870722237360748096634567148369365205467862556025966411779659052206537566795865788303165692307944087012282640362992992863691740745685551240138874870234315199138766879344846020196603888317889257870622487612588252122588866137239459311401744499044272672897946564186110708687279535935400814924348643630164462308781061566776247284844330069221837672921451192733819018513601292292935218895205243393490522557736493915277315953808382925536205758323809779912260553130069662125267169871275360798740190544457673641753277962208936628852364152577494064557736759458258325574322617240278864913456522890632933444830634807837539090343629180331829390077116231091874396618798289438063137396047659324155050293452074648181661654866802950218123594437712531608375326417596973387095824425742648336192942153114910526380529949749418765003029874206758269624898051995897865415023516912912520888462141918479954202765429086038325741994091277302479927396284853693971002774355497483593007059336858563412306935027619311224154178526481641565071242088964211698962757749657173230994787189505934303381423165676866861830129665153204610798855071585793160913049759909597190150495129447026667974766438657817123688521706565479122991057847974406993499578411214623403396424822112498655834608413317226283115780026403478754590388269455825129551573136166781337989495618896916733580659238005056609709244046672514747553153848716636340462171023048291976465716071636042732267120308947732207726186780809284281024429884241370382297818493778963526446505675636881569061913289665421853290521785617791276557022555071724267455020662495844161445801379634881179403361480587190405282258395305342149007937094874973969823925656550846187032930555098707851485315591955532844478156092241004253860325807628767456232727095009009297590670998441710772304850012880156469999427404069461677859316763522866647747087517324075276650470624332275018694060224491229564443484708293998839291252082702800471664457909022481106164294073384147109383248540177099789123227747461605701579501010949744463127454599472899210725778408593670471513420674493625288899539841884187902537976677565819286088708037761150321954458909778943487569741376222533259390167976401775608421695033870932530884300652685925329076522887654020997235922374629692538447727743636855747121838372705842356715830606972079022260926476486966556604974982525918260968450773054601782363127088439322206955967343194474176649071316292825082993506903888017874036634990790831118256456156332444021808834321226384291657906049647049108578367651584244278738689084077979253929224110172292031976571482201637610250668211245499374776488728838628329401264989054288212525165784943845417879292659415268514615995462060910993745909890131671816792038606160245909567405723466249510944959391011398780737363092686593195746253421615757182221540686101238343762649665948176232256663099315864758683964586104946223670788967732485622153370067527383775820792373145053782440625705164983004259378911184554523726094659072825234227813756623116829193209047408472827004608766808074814203901016530479759078900667185600787756982687111924115269847703583301292341194880288598711036505159706216980767474668128971220775136976118532126859716715259934414902174125950718894889595951885918605646008013132894142225874314254513999968529212579383992665781033851131941904025646062097963937330296929139506165732726460621005697385747754388214190950146101864659743998940190842256235484400079611625428861959087635444488002266479431614276675794348856780209510707219296189710348648631324124412662008030870420707553869124808015733026628406419227926652562688414711146433782937597688420532783079314124913354716489630305955817030739953257844479292630623730813334928453641653592580583660089215910765597103824749630889879245386805316183293928693631784763474683924665977257706218191605167229327306115417257102342575734799516529278848412379549540621883660272779994405631783533815629734963150818426746030131770004377011832439278180323138497785022055048856599513610077883011449102793212095496345695022813775100464945210872161563936876480224116307792947073847044637330979040439736081981103790988912045391013543223171755852185279826628144032982194333741233228680914973001060697380658461165492337657181718241338922487400216988270062545909208897854648550105824410670363313065510107215988194130644734902433059643023542778029684377829985782767460986359133783012520745689232611223145588170792009751297666093071713214993117282330575867062451579784794301950478338087862156010924640940726715077420177626487914438197931275548656681296734517714624221666935761517178151426201092933723451492353729219518894198776074953912918602710936642145491664399673610898177899707865084977598253294525534605277560946325373971446180318369084830583157502527247861687669963093420906558169277870707324502563805414037176947832650808462950428599586245272298446593073346383770612323005693625660769197113956878791379094462610224480706105663504535213141803299291456950026992618238251318782983433716762255571579415020115219593855403248006779479236740952483926095094146681549419968448316246292314414404821101991339536682702296742285847191876971009035828883248967956898923538124688906020143676546237891662791206674624724831981933096169191121518802535867513386790042203595002603517057221138222728705456228835769092036799563008738750107048037371770103468394935896655838900515759652425461656436340080827517384505189115112502215785553597837502122105584711852810680011555154938307139745301667207701913190932237701588218162392717269288627606664243799106436954479983271722405156472576691683652676786741513765337940277373930841778293173042461655965309784420018424158684673648246712632285252791378369264819171945891418247359836956485942623179069702850699330887214142271407958895954197936528601774040130461842644772303771297112601371590250591575132708154301480889282961664504191947601792494253418421518318659797868212005716789510397784775780136100671326474349546398192892195149920596642930341499316842047005537594210814650116220799896348841139244181642239206699561065037993802147090247860365315216579903016206728183037872887917806793280877225000847201559216407375618532766939195523873030663114110552033731362917339535720112940033012291062987392216822803901852593937718422399361919133689133882457674507286621545923957748793938942578225727132643842118488271788378993915514132576329143481256803062620221745113486682322470744893664075820660123178461533606720899798227722240993115861633599832780235420078792436174513644377216091203691084647507035034211396120931208400170327016121074480383208656065248786433597833391707733633078864073803268724863219095541955248032089469604278526512793484533425555261784015481911529786716877944703777255066703418450391237203565148518748405862126236183986940803806463560620358341323524437242495777372599018405006579656216031887149506970165405033047786918191761419339504270741601950960977792275968918296646893005667935994145023383537422195163475608037102131045464457679803953980550377156706672783297639368954109408462536570673575041600850784462451205498581026085955970361859857924949568131907402917123745923406808248510433461462215070256554724775802935115189953705867163810773303964801653397291361440656173098141066224042989924076948977518391536266410394864130845029640665722704552831435275776999501448048824529569848715453646783069204522156004528867438457414050011457591638489055849521775390336771161104671463716842798574179859345408501792200026124982804288383591940628525363445853834501372791414823661966519149104068717636301987260236473095781136183723674754562331180846436103542472731177158833135243798717226876738478211091276591753176063514692217568439227641854663833400704439685659769091478973789564084968867734782845536158127476951825173821152997407254585084773084997501188278214300002423549942286961530688050425028678587868846426680724738793312714826570303706861156897104352777038440976950724781276896072280602431517434111445786163402857520755694472545102844456543452760359366926969536530054421504696408745643861773100969242723055895863814033744370881666815366604950848202424096482142975902857964231006081867622269694530153874369862850459015155860925282185550644571541623629682832340695293296308736387636871558946811668423373215628175801495512703285618467002615590089640134071489549152250956855283598714443496024496920879802520275372122751745532281329688729584139430022275644237817894079895424562540562251087265965565069624839385782811114824269877529700657859407287960381806884804072981982724289321370751312631927115170472744355259725223922658875666946583672194240106433790226012548831244877909323935365811227568253428803467176216736874975158838437359484771826839918687121865696989496563672179448429805848610758101720598073814123189998405948107015797433593223699319086032556477002913277953860078030126191507738610629411467598236285321525647845411329640692110243824309095870486527913741500114241607367940450269143768856569481080726973420923154887883450195186863842197092649340375164873695983366290700262407551520425489213861482248919628861142980723817583729329051264945914948417095200002452426368796550511451832796369311130170578643056201230839924378969457949152139630974605161642324704847634978433987206599045820097812731318123185283998993547984573035294198735830888408012645477062843490433492349912307741425161719101256327073935508724619542000781079934070089613930408663015645330219360861632668627323626489941555504539166590190745304672450203933279790137919401982220181078068141909139275102805255566261055990158356789738500943910166524876422261888717937936846976321527067994789094267428411458192790904393506022377885150434223125047512885213308050857917802866521692028588492478209605203690683572881108894210104805320402207663017934792517713325751499527779767480503294537166655714136221206139215663822448227290169572815596601955745549731940646013159009290601691178393346043008477919742813074985577296343766442754763474118132578964284404601978362421303714157362830703789446776616664038070103432216432113926369166259923671682737655716237678843297663630547545614057509623511486765311865267423597884763583855360796900885340042750935123547932186367183496655247001881282903744364712204721694278538310549036609386744626908672467824640835097100731254370468075740814725036817015861576616788784038965022978545941262958319531549887731244346660405769138545027084299836947122389327241146357472456882524816548386195310155544753844355847001536409994817264595258547680453878063797059126276311560454947527790746445505428866977259265432076716011549098287193448160222055261014099742150836988468375461258379545098316256720457691292254887506773975913940207892230193701740322933176707574029644934005351103838767546946042821338401238532592423543722431849741125576427703614607093493748436060864193373949443873377607478067704172558418338258166766580019875880791943784153825063632802934344681139952415337281239263036325411619547161491594994336753497413296232784040330566198198883288355538378432138480917144274085605478484985035647933540449230059716078959307087097574198924098500833140578964674634211990078196739712349802718773034123761021891747484125230903983591954327114029186492707963109324655956657592538683796246584784843409690874995928881481812515387940533211902759664711068453822678831603302554693586601069212001019346215000662955364386009036238470787292778489361103844676295740714763980895875109424212395084665638269384140463270948065307910358397370610384224974761532798499405768967994420625135662461615096865313931032077264875072800569428111943751509984058888766390822777703958614699444431473535204678103100541867768367715339094119303214532321389694462687483420845415233098113384981738118653531412943885718945977156828250244191913007126306644517309861340640339153914668648980086368129792083880566020774183046255975657485107327942685574393456164876509266757642958105030590835722054822892567760499179285166870171823904700511879732233882227008244531032525295629499638321475574349377600023583203498091926174957063969472628101650589192871558155095148904167311033992081493970829024758929261175937105932322264022735551276322560608130676362776100334664253162190534325540939755918613080635502029451706787882640384746432389150898872965520717191825919783706262151680145620710603973222670137298616132235558154626947372744859468019965859057754529893294090786918199872785942182257808493770434826399539716659645406374787336926144607475463485473676978043044700185663494875325065046694078699431904835501988337702984123183641731793229270812968587878556572989312248413351270139331419214726314996929048022141866587567519473682792927495033239904430684501433039460360024345395431626608021114237029592475193960669876153185371274653361514295500081643418493216596501630239692440254196892449303569050735963469622355013664598802630180072931651826387115804018890842804885768138497944535340714772034336255345298338488155742800144474531720631356492617625741122951875135577653039896287165249337402457722344470523366369312834251802009326732420568439429624878907593433923513948249494875622164912424973874389969318689266251466227482930066911114556396230775259304073027254632764555166278839624027741747478280270550516147790749867289146009277511548689449013839008905625852509475082787333704283805356067765369589394151161719872550006874857957918954840960646850359270242533176174799863896029650297520123783262389046434111304965299237072328308450378445558331837383915197160869326714761501370449677263842325058232329509573637264722026258439627392262609111202775464688347059140920644435522573966992070799199154637736576201136092876555176097496784443200889087934643656856956828227607575278866443431979245163247589478092128071964463708919159240340634556466001114998743489699821782754434207239981078440465116008212189701494012262955088718957852378681850233344829088686718233092016076890766928145836581648105971237747175194365604291156208128864868576218092413273824828060170151365115981632274267412033461939855688557259248959014542318563055103635551318772557028363158811378940294592439982762686987193294151206471144221808788635826064789519399175356275507058167760006119411284225242597483330386902134613641385397393578557660149833719863192313903519431678658156957184232337455078372950763234204747234618557643756604976692115419322975228155611368738965036570901504449868248127731033380183395985985256424621409813578050519595853071801638960581076424887522947037878043557354673741410274311729962844828015015368350121440403579796644931487891330924607315514423361285005924519838977742919769594409528537873169069904149622603110166402934829381940743497270596747008230388127309841944093598449364930352789341252724818589726705235937411157427310938443213057425557247203850787175723888106391637149655131050267182038576394764337594731343556284084003770706420100906628356307956067982899735304542706687217743141664141809976739946423214839927885586520427053913900589641095625941854874571903244985590232529015002254803413368362461680851626230400097930841058676215789723014566078578238523724663453432998762767831535692799028442172976722225153364662673961276001906600503265425730967355513793154070699959460600700258666847702874675683764251019882748563910287899012997060930003597652902867997792436166210755267144742021262424863013563049167425124941901476790516377499642248178492523395462213689705900252702595731819955800097632578003777816490814456030459142010627895771274753751380891065664933857803546681997187030691654924801259145120593677537455308152748588357160194969285159636455350325477451771422854309620772720319964198197150090641077932617279234816465275858032421608060330242595684875560419666173476429458094955950291151647500073476910105937051208010804074313161598493012541599804330013036723174654561904262849410378744304610582270278588433796905337479025116860805827190215745105916528257841402278886254864874976223185261910255734324424176165573249996116074691156922196507742884133840230652993444094057055723177012652643453473776650316086199670438740274782673091736090581527871450632485962811147116440314170434791204560424771623565243652256636822277308571683512174663618555044798238614282628786513540868907207684973763772789561038373623371530121818959903720676277549380454423201850104040243342071921572681599781102770382077351648193004097646126317293981368441141070361960638624285358246725510708307500196984427372327141134388629103298248584036936994014986892210054337815781195621393595058099756558787317016003400846652699547426082744860069018992607880268520862164611000891437084206485862230529388432038323761427508359100572499684018926518486632224670305696879092519913831825569327580415861966629401597181936422624285368622275034707412292358877268525142852382201905044128780227228557847631418088501545572828233147784805659633047664987022603667820220376967900891314723897702246018398502106919124683411692880064572212366105932747228949293272348550056153552356967546270924760310061975032863764069162504305056530283809989725850867079544601403374732860841876268882305893080274884169536835636229260584488158278516776431596477819384227059438996233510521840432903263149680252441641596553416402738839939221409427657798335700596652636674914902834411545171143776166578871339712368403107111067082614435470601498295363118552136163042155848900519594255808412019457555840456984226705017233005049380378814825780685355007248317524690635407402259952217115276023878747579406910223084568524104188093814024537591718458906874862367894414365764596474516505251117553087698400712915709508673220149122933299676679782857996764889608521377350492694994690511999203607372353986511190761798746280361101526699263136826396172603149648433996494526571053508637787530400308603404447205798222536982674024066537018177576208706506528262458456696134395846624333270968366822470954539619446648852516318971154052135273123687583286434378289557984490643584786908093056628404528677818543508228138985974834564645856750954034842465739969357129388241476913202118619182378792072778662588508465922083892907683210893900948223713899888622226517427658176950788107831534080668962413917790011933865085320377393267043498189962236996353586036313679545678055082974522290665718620721547791823788814684939959234507584375702204776553158600089168968711905611997084621374144804011906628511662428651584661041427492447730208484571667722251402380580521952910395628606184632629077602645729935158521851780041838627780640108541257957402734304425396788543753638068419643876788354118585392591014415378651473264179217357062081168100954961876141972862399509893768621555542399268159787747469600435018285744780299393871407058159419338573149432888316041284823334977832596191045673915124006143585805027943084139526715445979002254369223014058981604873634201286289505445455876843474386401341889723983199374897384301105582232240058143009989215311992421776106104996314125096829798444495103592442716842166139818237955022299642051714775638522557984218525481071670258289463023472770616373164706230973516697352637453280796177916514148132833910439739106835445337130054280484091495214346728425233361116230055207660971896748408432133091470058505967389262172556335286970523308945497709034842903340605632808138546091582841493327766935291104962286543505544367067709031071890978139174631455728670243116844916103504099791467333107417813749347050259742743936905919544832356039077886779240968613404315001868195981927199074344284038692424065222649397328676506161227067229217059206281675774316659160367076704591310426530045444637143569233501801061428794214359976852556828418553510918636976925284620597416241018797928083607038491725686348191169669793376648234712960104960501203799181925926308311970731929124646861570665891465362500783604961234701444442283616158039290192920899893734944400653374863689148759835815662539958408699137889653321788130403830956563292196218011161284150789429747775584510122602672943831779888171626021625448797463816843970724580723015691448801031280324472315697145656741410647232579744979632685427841403019479243427535447059849376001501763301021963030265420081559913655493774274256017190540810093198270039463582280782692772952798326964687549294371493863603543500676058014183558365297093950594959604945234113382139356713912782443026088396370761710369665976181678859387037198034779710997947618382023756283715786619093857725779931971961623954982661664297424930508143606324401318493037561957322529247998278077624682377581359635536373970459241850990068892976464890288981097431284210237091488627769120088138252027711559803526410011973959703918031893106388303970527367614628273860333145414181120295345288621593956895761514721689293029941565191823882457578144094202742747364760653088215724552136766163315922082000437180362357749727418384401292767547759179107096340053862899508439811971998808967210694385851414111771247754627815102076664086809746665149374440525378042191446022911416171799812236973583217758104921443665692799141154282651563033248838568277235719199180905144272355356424728079472907373882756557853187490840734340198269440522865559439503605519659451882964383575545364054740127368467420204255478714022598044658816590476520034118323530281142633765537211881490643249971195776841475405330334018616510058906722190180414732127611169200433285285494641930336689140500972267879137700376184372970550737790083558606328085198894733291608764994694404499708900624644437681136298729077102382494276017093505482595801024257953936546731569571699428698622675131745795714214184319442756695413775414852450225312298033021764050734098650184716765187073033273016612525144874910971279767787524078543861622330456592891993267981688453268563054299008209886520222619250085031216967811718823280598936847456417210909696083819927158006977246238149683051160636103389807079439336733538261716182013093888204145110420888867418226632012408728668998021055634318884732363412045411462213967462966307705307618031424340737212779184695490172621721578956274046575367637186530385792283205069633601047799246299044369553257292360480308372240094175379161312308325138244920717747229751494815417038734877937563679987397329046717189087561801113694392581522961940297919669884675668713265658106286579379543772253053123244186988153225896906989311497207784186770876194595882844423025013352884546202040249253749473615914213716178789270969993110017275281535491676318559635271719448781191338413646636978335932817561239516157276827282496542455738513836478045646223385094819811785805305075523873133732436326355300987465870638472041844274238950362577776123395966269081637991287961312443849719847328745603564908152260094829994173764450250295935654792244857218109587594291684222414949600204978782019186100244588749561431440023540293617514298212297321633113037652239290206841254089897214928548812304375277383219538395022576623115292653048847288677253023836406791938970733768118140250599971260558422625408837132981567816800257253185510485090043958910579948940750602274539434601044377861856800424534472391638999764968423741858579626684295706953671419548248375453915795312343524504107550659099838635437805928660018812254868176538046028886301104977536845241607485860044046423298732858739620718799303029056533504105513799720125986900426507733713244161227988681341448251345931353117091657080076125183462888543783228731126251539948052091298284085655797212143912275591718508688863264658456819341276980657765123384202885714228658808047350450954147336755104829982101742909691607544154934671797095456503198464738138817648473888368578390997622776276539552116109269083726598296301015914679830079644316315242649762931177995190287772046888919014592409485212478306937247637412170938726121464622889229851919821670937952172539473416008880853215783089804237764241360674587946875696903267917011416907191340514362488244617262530365727049765727834168711164975735018979352863956933447364878552813769389894999674782702358261097222592822736674800530926194640618238468781258298777059389455600077897286375458269785694305876923781550155626021357531651468614034913407822345276108858223605593366239179222184844696853396313136611570170746939565679536199801789253663122247187220371027010100697950685405377328121194068262157679872652689416695781469418996030936124595299265589514687795787709082823718260989074684973091592182609313623466940455677248662674352383042530868568477813218944217538789594528225178483406946868141932669114545605479064286015333496499436543095186646657132851492852109358029776498736325068532198834995922790987649113930300214669989971622970748021004217940649743668430454198209323509269774287783974283006245448359967093858949641690347902558048820147414531684430711110327761490730860426464993787539645556882925166825083832844225016451662482194056936845340780373992998112550269606712681260576741777995241110754693192434337489674847762770865994251985296576556959808202853098603792594421247265025599358758253164608929647770648743770582260434773883179624717634641513845485753678947462122363191527988005321020072870898245559870008343359040623306465943496857305269984237455444432871988188802566905866074783490008910129478416875127231227300373480063811253725529868226652073539018411668671005835155600158561978689300690441656502337889869113779289941469580217906159095486447165851106087488443195998216925083440978875123122215074422722724837608039114167929651229442394227763423520442932727411842537248491572160537713090608393236420648060696616702542882985377004396413880072081918326140377341395311669189106950691922464235158345679783631975311943580963878830315897523471250631601676892071810503724376064043423676855701277668868707284603034147703213908156983550252778208833279208855491988479004229143143088305003591454341496150207070524253199446281346541254978058154160883657521012264354057874081203206982527280774693182906189687858751465410904161130839826544720321917002142052276665556851124354766822796394878756004990925564116634545556456736348968931681885354626221519945574954620305424217944344223748612510960553870866658021342393567544222262791741803180612265955753461328455743288678667978177623326201473253165845068362242820361378112392241785848675589954512718882856070071638236859189393287136319283890317269084938342552623656516790053215671116124928912029995876267358749311346981935666302955233192168685194630941841023919047562035141485708092411179052638191909436013849662091848102792878721164585509355741540657554182198056119620636479528354964648730302920338464263668144619289032983732752833522537654716776464250591066648498758797051770411075806497300807008899943166819252264054647523774384613228718913372800826863907241843917891529186035560943983226359558903745188276795096393118321724443519340066463825272114128082506620083973315723736868535019310650470784279540941721833197638498671897908848919306850767895986074490388545799997349457183387934887886649367062444409388477165256917212681415698262106051129168179734894061901446936950194146527823024884929691576767845241973750284862544172069756308315381287806816620910569374747739071337340331899631378385837220327896219624359872318315753838479889357063529663136376422583432742715560257856266175036392593126292203972286366445334424950828095115502362239077084293053167063090221274785399353588936492435976218816689602568987510932704753024620238398065458955125004209373002209014423596676627758812168744990847313499601559930398005335452416324420933401423502536943229407381205407612008688446610306497988277805673680056929722239246692380446650154294669754945583582028783932971433600513620350519285712248818151175118030950653478520576859113834230818517973694167423640387164798484212791321396181648039252193051016516082146433814124029995269263384992463909042067788120064821839563952088499576171266194544773776186010597699759128376884649789475758476476493065987944957001500045421148241132377926233938751051622282170470197119090897947508188135193492848734667013188600893062704188181635065205028456924145488110541611850140994796736381935047333827575228605695533835754537484040349530578577395906371987794147382057741025449011760632030380617766581038498799819668421050944071921659486852774313789923701269596208086173533804883604883858622965805100018122376224534205568028985773381345845307114413646172652452813692595236044399013760787780368464441625147146699760594688719655808099400654838693051892955854203694697551447242072924084482504715569981562989067446648186178362117006904979528365303923838672492309281645535253810304248782510571900662463238501222070736404121513802184407909561751011214500852591579984037213433085463574422715828513282846469947240648132147347789755056305186374394763499068115499042761756084593108151745616689764750375343722007758327795896686143794474937803920063828485784000134425057869882999560087713823382333576210372289463082805835665219630554874215404004631089943388836053438514346917247931626634951448239525809985921986956932128649618450649232484199383838422719688058979545855831443406488999285739460485047579888941621638692430097666582948625817453417897760088668687843373904902327169472129401038367681976158836825095466155663715425537867802707774846190632223702098721773561930855853799652735161807508888043799207666630972438047259776991288443280641810301326756147189183356354830879306040032727859166190118854884644197834464539516486535023522068004442853841904695555023119067925740007047332412630083579274526916540689452413327947942475628375151027225775729331669565121241253580648421506154813621340956314313284785785596831629291381204328876285322011842710030858591399336969297437871497239711580767999929413774938945284676753909725042296785555843805847965302631682560862546962025749289216241517762668368316416249353536427955856298359227082476059416110790717575790192858567929055239286027481587115343337900078032063694213142110305017157595656689038573581299561739695525025432606032183812570565023345149570133690162850666340656750972141100914528102359876361925147020334742824943343196037746424980569895548297893739017492239711244707163247542725887578352537667049801566264172975431367128627198329302057921933367625464875132874592894878159800964865156025526164837378271293944066394023558454379287336775067171516300247153220089227838520303156042785961850741046715491858750806739588194252986520931184670837770086942799529324274721717628126577995926778947988850101040100513967442800066974890349414526642083114414034124037976954212211608659589989714277720190566282482996735589623254327829822732520209629792846561664826708443911085858139095556872963976995963300754358887537708441830935245524585498703011306067741957984693722132530147755397777447275941758471106525409829888360615782681437040465031648282498362558367334537740899328666981368309254383102308501634569810544100499284260423814596158338792721342742471218920397330751509128321261325020734857517342905998257660694135484305054892411731051311554155774722844970238529262536606885472541992575797229918699822960447180356881744839939197394271078652543957786150619861540699273145850134067184300147316611767597917669983661182420293343681859685327376986537184049306904652761081025135355249509810261245700034946476437094070000616510523206037676554697657379652078013507718418803230788801325566921723875354331998193716477014849448350123843601386848675803618592513389811399396465843656760150542080689105679102626994355675041435281230871771162595503645032247313285241951726877852478905710154724293673921029154833952343213280371956718561252260508531832196286064889543230795468148786196060674022664867354220501413172093776468731289576554098374028745231651589958500255323033410623271509966753262502121006522171341458429589931943780367280047878111185802131102618672388381423334528024892801287843430478952622606211134028998500411584777776070133361630522940691529606523743387894157165320254939869711780727468516580808053998426722629354731929934646503080916630114971001998331513777477209397840913268952145283489733301917569296457246685942812689470700661468456517520209748124094833425151929638545593710212350298838796118349766324740180927496631035255154453965654936546395246610452231336779669803683824730948751250945862288535015041713774637021367536230020421672194598754527064144312449965781522121133543740044967176000749638840546076496758275880274552298005267927481460747030198538605089025292927331500411543464021914220220279799372492979212600192478730188343675379267287552773168431536816570827312946464065340077301158710994429252757617703123052466251614718114574755324098823755738880460531840848827030642076102237915574034562081305703878474041034540970035867189070811352943232435375140037717240104229729510217078692147306532306578545863472710531037452131996622776798069785642103017293900400543138429926870111694351250199814403785529479971333148165180287908087010214981898963733914145005828922630881946562507694457325714376308187372390301484905563691826905990546840724559299479665214259337378698333850151862200377010961401976388226327481247800447066598129880766594415572137725210665869218947301011901151828766358963484294706961111043153615919653689170797474183515113831976794640745433599368105154859013812300850310185371038253988857249266816339399307262039837386492204263876288630995035355439032829565928822569829987836790540074322834564569607559166887734296215858882142063686212732748789496285787034555366586335676301669602540325809291357035522689347242497927998791203606096450742991159789836131593911171591591920541430759304945096389494403676074612023756344499736217960529833052278614902535251453998589287854206701931994846636556142246375635701086273606832557404129147525750336450109182104971682239866219161127971404329312468095214892891139763324660840412098341622306455688408947852911623257770071978150405109049047871378598784590486732910919149305417545104718499208592870194733259321615247111722045879707958227274930991126122852992320056484326915242766401103046570638782490197075874557383120826786995255909980856113517207716548091254651681806223111851562803904063092214549228280296068747895299438284771583117605543568117419258481837161127255846759760485176273214976079044800861318944762872412962897008572964787105360996608609491729998043877950968636495963474482477274746992160852645936500950798056696388429265816697279969872869504288714997438976437932407462004495015635274536378969148401442454149717246143005135054639881705261831456193679559394667091344621241310373001886272833680144795896574996764308723990341897381859331139012409263741991650154989776611142020630648443794523387176743666388996086576917003954736666287599176255117013429817900673524989336456480059460562501454016211608772378763472887487798429074706228011467222403646552517510402974998947263166093138275766663293807710620612226848180323053391866318524088851821691956189602114868451017637558129447134415221499528668388121990394994597163144919987211135280067027258030337969693672198801732801373889098336101117727943064260818803300895921376539006466604459388803071495108869823755418391927246512194276208878690657188165537045957409058656021187606039549310805284130501964932457452869531614445078582815601383884641070276223198957206057147801134484183667497679308490875038047584883876318099661644143010876442929488280011843266209329123862031242489375189485617893580388392461387622209138365987153886156687030901262547326973056269931415514565091358190784036766630334675561934089605372271886084099488993900534682238619495303457667318010270863876318384083540595923470371467870779714518901982016810703744170532738013550345468701855329096580990120204535552257474132714820685539139224302844691142985196956059159729274922650182319413846436132555427124320400576754898877026948458933913460147998825969735271663671231760291451090250221515216682006863112895673280597741531586902887100391916722496823251627681415881501688754845975263213347329359320954727455415324780281270903954167857514259958076518683693456054587538458877067748729656886343901292397995651900039909525313944322360563055158021709426330049324878809422773554011244907729588233756962711099341051530671027263760267170510049314237370938611658510995526068051174085772875607064208169010512148591501856420881636556102454076941178138328283591942748814340195042127073602577735781618053776647767457918854069936606613768132472397824659853633748438143184066897114653084838605467718240447790541950928278700907849967660156917364945349386571355854372892214156584185953926236078563266806273893653833639492359788544140799573436415733017578729201137748118392580690007096330772772517763831018905506372023049838669316684107977957677267498804332252302630501602142451977549173808284063386525207391597058841743413550946160769038655436898388937981654214376754110947856401291328988933333905711214790157093880863410413328139238186902637029435638118152624025066408694551687871080490987208464448231210546670049001380257465913860547763877585621060877935780231711981291689729313095598987308380154346183681043667295511390525341882647984449035296976732337542795748413991299506264903696078625840791363915970235392527967972057237311355136469313831159090457081591288286683720633571155760080595385506244838600649422673339511610213061923786933206889667649767150757477765636467390967139619894647566125779908407127765354234760624953702162425523699936510765345595848959141742505842685838814994309630567084167313062105549719439671765796636623690431646540541094024809670587915771761511775574995067531965863785090460301552228304996234969701210350081794005985970889978272984873328308469317628335701962859372473570567818414793673710445063268894948549144531351475382878927621211570341405875630275646432255250386236670472972870987871522804964885514388791385611801686581318004841279912354158937282208170530852278069382057603109917449507690746589270919339961486524430776879200326803412306504798056337020295519045064198282428447149958241307786414292298618746674423509189436412130534618949315302554858562861746021285006015325349735367886789681117019625310646511190059099159144690356255406325339922890315214917684275381624564935204656209819380162918754142641544756320014356559073442787608986429897707097947838771140748010244986272842127600808467212312736147598957761449334200483463857305533648942551129113723183830500451321217643943715229727463352906881001502464537646294728190446952163990903911888806766779246490551738036614109194819724158925847053383488220698655986929484667799133097221509986495767141568970436362049648609439055392963855309247725564642746997156081393070940745700139771630432007960938618781044034601294955314892245463168655375930542712711719838915665220379225523939538304599165014866622130715533227695811102456769622889686398167701173282844540952120983339035095764865613423992616831304491159683313681803081620764757386152541665614451350802354222898729466429393745151035673511102533975997869451698783151217634434725743523624179499169323164083893698170199788218738792899327343631388614233596253672839571493284969300751599599324891644719917027031205033257399548452795920278329141278630286092580025984095860315785198554033974890978624312394920462113151462229965509440483979383504405357843185449950361647386466873120408493649549362546477629927328615720635051874987934224068319878751647900812917233570879375186293427756449533891266423234632124312053972783675145955895189391768747486775551173068489392236198697017380389561114646735002652277038904707296587169612412868434277143047069652662258238228448652762077877492213633869697849875097231752769187290348682814867680452163909842520398990904959855818486039655967017488951651674056498845618680739772009098848275170277179200989605300193548013346933427486076633464871340409554903491492286157162165562371247508822593100769579179558826349679227143718018699260442286621405394033414592266647433455094456903263136183693519419080307430008442972384364343629727541536192789047816629856493030995793605121289434266345359562840106398323088705465226831892933112063622942710646150001137387469648486075229151127022745860563161415116511485592028637965637989936679192289514879849638297951649024565823223850788585198092586324675387354062842840403995176207447718925154629676031050148154639279487205470530325993197033970144132262462128074391861135860460987703031835987621916098367600500499084723384611023954781398289619437945240398213512610026540641873781899983944661963757007446728386478605830771902004460290997557990751348527761468536635072889013768237643459199619507756078141684817103795796843050413128871922724234353373335650865937275599270584671072081670700216716735253710687836360023542488081946001192978238802538579925781460227019486060128832515311148562573513600127068697820454795011564424476101869888693691661288302684031015533713196259244833742957914815964293649537328386266079597542035892740969144497238235080472538752787866500471856638362891233993370921311998741892381801630826405934533879230332204898051949160288834659772584476755388103750586646089389216081476359002651847678898284573176059929141982387752965157487130230576306211683626883354780312812533839701026456418090616628833749814684563135330818400352401335744448642841867842485263555416264167695252927204742032998417003511382173771667352030707400609868278271335879721011265571882288071046168245800661625940417109981587663434503692008365357663370500150902997527710834123551982326306727459674204662090515756565168639100089682936884336373737089440233928241983806544755700088057308522661952156161877587815314110371579178564061096105352440455486354737816663982120754089505945136831750255654485252498214783778821121933315484446356189879135279323705067186454281542636015836449959570857434033047058276095606142691136700359481321916419073103598238895052845526384291511806171461341232516924010453120844094622786482189627869192498296532093983571092042323383770185510402391634004488816050253442178985158070464901595958365305664771128028636207701193538977692162879762057254423637596703064168878462902548020612950848869934822743134309699011190336452137490680430573038964183785405413034704024239044662779449443886934170702704427703795662757673623786164377166832188771283429719163608671270383213371215050455074126165374752524030725250111169274524186118418963125199249008354491582044774657573360340312447604608627299625638200686462421076269074319812377287441636808672401410298973431111999491391175526933884614418428909715269352285407772876742435437468186743580085245308426097286249020221575904702150746516759096967918475732333908726914640923281600209982785579328096887965698727429543543748912624938974971378587398444058995292473789185177354619641379339626425843508173962161938996002926108993292891111291933716923660105427738527523606432992460912561195887363725757726407431845762316210062466058369847992291064112085663545005188129424175848852856720390288533556723817032261512654082974395280240816869640939251219880352489806683913039002117016343850060077067300766430301252047004973425903581107958353656089605396052980407740260782476176649512559935091230792738580746849150890193595431345146930038955293327337887232208321577618652355204171365296090679224174999276356210170290360312428957185574223287985650273382066656723807216753876113453495549333685349643324498548915640689025945089332608492136309641814219932499559032487429715943990049980603139057103282367568270093884986557860455463393163172375817011234757440589863055670293912344055401914092599320780438361231325165428506615779127615306193716951360481366286611345188793557987209033900854438477932467165912476455800774755907731652022269429229611575659792718901989208948540845620148371115883915002281538776084851178718674986395842131226209243163688084077576475139403487022186168282665081443528843620085016035379282401160516510444766177240361575569226851330744253701714406793584301332642189469104798395231175109709147022961678200311575363174796263964846312312318768120248234306242370487867768305433831641330455460266780686659025475847327156989420550814571346514256406656181251148115414717221437130427184265568468594604096933137646564623981163726670034335975117995449607599618266265224823217199796602315875947986996964410439062626585507043399924005521526664421831074864266894761471806702791129629088276853406393556010179198887173888935419181078729202453338047855304662799337068168398439141426962441822016280213088542829412837332809076016073358061504711267398964774140990582493861954317100475618438632743286278467466678218129499108141504523777842904273186517267170310897412759701030296099270724793999475380459493165860921708896793753872303551247729856984482477688655109341770346038984413183675978408962437387683084767145870715016823381469405069537514542992788340338222197100649725683218886883814149838636277732969336596469448323223258124855427801101582911134644599913947626537445535461824534906255251881252600282836574225658402071329363837737492358015527851080220435408302978174430603152331920161127639973235567248774718825619027413719457782246048771357858390132503991605092664804811654162726053405515507352526871781245210748295515844005618686068492094359011958496270170225300156522046645764730886247414117777694244451758389748216714066557396391010180460914482462570910426393560139274455150562840519456030933730803074413820511110658412276056285378063951363975273625277850270868321871497061119764953353454559672369144536676455956995787330717179327821897803170601620721742236530683429359702461104646306194988847421417785627705853139939063051504580440796327562978026722096206523948777874009151727705993822243954776826219524881677663703880644590206132863324699812935197752239766782698938986623561844354796184970904438953377485637024455920676559200466742912140338425384492679275151435490193313083456293091255310388010256052417853598402931676018904638615142158124874285425955998514590750407962889261080784033119947938745977172819177437532135766141721383835036029530518193837980208190988629477989603821330590677004436336072667623529435776843941477023468210563973834238937387075073734989732710018669832146430808644193530546129922280033300907329966171217068339725249731750091647193967442015821267914000832964030458787433303963358863128540909015564125170247075186181623362053861014431524499570988294335743074676079114476270935220506761705642827837116631585546133806159634019540886911427845361615406495348933725061698065746025817189856948728855705822005137271642194658028156525140394268575785641748154764664778731977267593951893365098314124876206691489162468381167460291857624582676406559763048278820843582396877161592771903775865989199821852995201561918882557063919394025134577622936093543286886900761667974828593969339771836382257541150415766759331852257702370062014088989489496316201419899165838823007919715588292422213688195239108251104888543108821727081142075107844934107416317502072534592606626915446484175206522079038079175299345500236903298618479952418589322762552408144547527494002747879586527794105894665985906646869554464007051561299314603405410017313471501858933802832019607646842214387035419726337799261459321707860995301404354237885334354063069321735911620299527643184194646460299248048061388873778303225707545089158491347289297540474452380806440826970536777493223054227423630188817032638408007819930463340487550183220873159333284981726928278969374602831554735855529651735822768630097474507308469569910789909758855521117352549661252517364886806684528090804177754174438129242583418817868415696992301503787936317217473735598935091628113570686130577691852064297707543448334793217875535627632803868858030901456157442152739137356683518681362274484635994012753256374419036914931774110107172383852779017529299384321105236163179028732149535421258864415658892839357804697927323779169096932687951048783505135454491221908614112668614333041770623193816243634304146223000187330513500315639467593052528247029022057513667867865362581787709406697627516306166009404343704096094652486758575435221596200994548154109328407545758453686663142390118580202082973187667473679263910303791314318939506454665584717680495837319589908968974556269999782848147470279676112356158021282657121695925968341762459175331950867939594445358054157576477358489588979522637482370876741949483526025071736335890334298225572434798787347764246386797174794627689405628564696058205878245158932624857305442646796368522982462559015693880308533347284452371284340901362232427550796735559554524924861923477854016512585567429937576034318823609351616111977297415361380545438825643460830494662086452088731925105209631113083046343321984336092221588749916593596222935670380463889756186756858115606810195465232382543096909176061087334972383914049583396793477929870280247931036279804151921807901487062688641787743572530546133185568493752139021197105436619704857814944283200517071115750963085791970801604621803732787952841442657922799893618353622329472491295798550057195524347021919379248909078392908030699466493133661554002469339860079825369235353165651149225572254539625648375100312842892365665860120274973336501714525325318924655270345335980244480087332000037266706100414714885668915479338509282027864702852950663700143624540088914324163271561816108568604413069324602055422629569364533689233079660261343737951919669918713131249118401821623063450496507970081686574848295244417062885230281088297461232126219103502628824289128710237735004155908469347131788404555638883568022991225535157153972263033987270573966423694886596624114452630360146096270530993623686690139333393428164446569416621738536546537985587600732950151916366244940493185875198530163316915503275449194634513668794957729722902289893645069567453640477477512208421442001252778959628011729291527894780025351643612976947432387167315801092037950003806735740311464153462628540764646328856703483898848492382771035881137168251458474163551262966203922647554695576885077154937284145403251299991687275398725144993676874030759894622922127285447806605434709005076760017783456263516253046612928677272551923422832013326763122393699412613146734095981035313928571015227836806703881479508074867861227813988835391152171028856835077419318174501643471756681058312918904567343166691645892472543180617752624568424107684517871136701243180059425814349790261018790907610495645572633241191295212450156640769794797153946082110577857278487323290673164337973853661090540018254759769188588954912252321454484832274002049984075437395953981559135527324243011738547955112833371164551081625325906112795524078376815876142721929761901585801856187074979553201890683703838712663088351536770966948437176534930030780752134317149636319605994762698049790979377970959477390037725985558858594086364115813283204710972844194672891352484090506038130175338673478894878516488921706477285179526497853754775307565204890234428960577531902162854840294053702770108993391367771553110905741850846231628370158580251625507823978442765349784340524560015333982580388528505946861634821543483593723502437978269905795587225323218162639604366255535842765413687673749895977431954937677130152981912768704079176146334041571699405166754208443063509061651762503490286655599324990836798633370275199788261530773572229450162859549926647491438995869345377578890882367080860345144726493594271441609017837652810089436663120631755021161639364839547255991431635987051409521886342441969919425624683366178630407114807559120988818871526867717250738891668503168528893484292326002109633888660225916803924464647236782319384577461969526062501680611243722747395303980675613332714451353884385202894654108619736407244034133389478824684642492954373300179536388817376008214323635679301965740400400663645338662101862176588472367798658137390728149091939053015081464462345321649332430590508366873208690818358253899403896760537451268441996588808274567468752641570831773165300159783093901261929876968927854981587380188567230251546706513078288473317522195395693662135523593877227658050235245397353110184837571472462569386895669040289869847798582446687788646994722004825289298177589684094340177128461823591548326460652631973996087749617077825128349078906702426318735489770858534504201878035875069970176341986837909245740485736904233512174995460269002900629418529894499194070719401015429931353752835473058880789814051003532007629950660398465209462995965412928882853567314725181221288564015949287462859660423093037497709116243824079873692186403385979489662231639734489271884411417202973315777643408359912340950218410277880733755805422260905506026170559235529328013462031516659273779276174727049179847405022147231401846847072330266919384976354437422534354260479695120087914230227749141820529177439631399149515023474566459067447872651066633124768881154946597509252041280261453422580021648647975144205168458309213764300723852359837155492453530734397542801022946483569170450727001845371431623833637295406603956165531878884607530945354404741583252018767646662472111245665119300428795265953904361951418646691470682357390696340729865002748583111431234365819730487618308479112611034560689227379951376551396718053915230475613976772678546458066295692197195895910516991580561618816165598443564964727561102453502483975392242525424142108514266422149998281339971460498951739634280064461171915018544742205262011432077814659390218209449803130852331825899361515292321809893310938376402957328078471157457202918722425436492435492801508524512610320587001646762939592208388446574234836781720295584882355019228779711734729062231610939401454710847723608907297604616448869701849448590778690925950547190842769498410910302719689685320945255262679156574732777009800975939946248708534603621098678533007471092006711363343101605179896355191905056349661519933313489757863644406160616313597727292107483572703940114001296295649038952054147834606423235192632135737587532697721841053188012277270942816109170882209630025726052090849929220287666636122264641699088381447969955348819626880956646272676136946277931186890956973121802766505961582020051624713764954855462219856837129332785612918097400593282308834702675877938477094866136803532338454928096228187240299770766842312524041205297818287460913771372501449909619959391880345477798371270364498083328616737378743221565461185827725750828250273107559500542040587779031633466980674602171945957453523291162722137190460620483816559152171144706066653682086434814837141723325832135993399621246955091897714383439011394482188420025259816195434731558541284808449221106269846749686978949595849497914354230071170315133771845856149452962089716912241119817134712883735157416952157826640987545201750032081725133467626818251020106127429317273097418134123820827122546448330203962119238941240790454458340140367264182159513215568984931627375034057192433776371894825593220755069905546325980835317813471994236096243214629431970882264705930019209642828505293603929057551160556077755067470669160038373275919931985839348981837992103040122523618677838644728488231365363321752581878756389648606224768839455299453315753752525892817835292752885680826383647337546752106328223020279368427423907993737414402557941801895908570010590626719781823541526946666254910386792691825822055822493856577089255085361483676775552692404919727155646809141036226264665364314042077890592063793577178284046098046458928102559535223455467384735998331488940588861448729597438206513104836544211959496388080029050941780950649132991346846963773374554179642339457054594683134156517073861579917930907463795036788105421396834102496117225169079887768268131447113886913770966602998557657023456362336244891239791441838550930278804052765573851887018404168168106045942083667540381425653815007811155444915921623438377534157301792952578765514225551272493255847824950610734467643413926678880483020653586853435130194421448314174808849943604656306772085068783207708099158152755833611665251732998600331393308262509784865627961429416037377929573088198301000171177547249819818181582887014406193378813310678508448357981215912035784563503094070078080320733620482186365847443006010664874711133441595755594172217688595519650390582611221686185395643117376973599538934492327464522623043306246717327704041277039488825880736349533528620290669054437736948828881113822020572170781256401339153508172805654274429178177764675536034691020279736200613037711710883952327750677808385877649914591508124938300292457647674308786952721101085134597995083803579940834268608242277002540079502154973644127660086206328043908202657995554594675589259885948379378253671710255824919227445944339532190988531629621570701464079548987305492302493103459110511734487833975748395974724643457885764434333512088208650146262449215469018832304509184954754643183927724868517820396590584417862763807012944650958598980921156924225372109404327084586224749944332523624757931919255520880698301538273453149629153426096002506726242926282635244866026047034631858578056906063666094636207587926892128715601029537027551536322643189683548562428441701097391579727859813395829328988378887733590295320642317573048002926792471485270201584096020975582328280760128898804795173049524932694100976658301585186661163368173987417058527851333442320694919024031221258633354841757200009422346478959767031265743356773883188834350804196586985011940887474289132501813810485877204466344236734232124317321816537234227811361922011636476046817136422980768141284005411986282518205786464885389495944234631855575235170939074168983887326122702413428664707764421252139640495108736562969002111269799167709793259556699644295567146062358574781306095548906330561805869836518698460176599215100845605981433530107085062532277115140583578818044780593331456202593899373187960785529838589709861251691819843863275706374264732715143598138598132585370611483886418333569217266743698784635600962456111193447148839437402248198578305745463297218671054125702749977455251172126410907187579868658236107785304280768886355747944963130501882632918173534692457125987810096961266419397910498661708828025245915250729897890531304350624139878796071321911137643316662646244071881237201219072109837011066958257037528549769785763779451360914588802319963847178905715668655063982065683541645428508481700418236417273568757362595953376639414069319558724121334058017565801406316202918020448659973821711673887539932379537638616250795286042811567265271748252508270797811886918338985366518011263130160215362260078860348023698385895013013825176123254076417307567551471666157126372075119356761207573383101665339853513417583180287432807855159431100619049552283324363887563951228271590131341703105231293277763332993887851596206497241077774037239782412862278563520496336468130592254930303406491257434360747816526863017443943249455686129389851928484832126098809071268864447738320096566533479533893224681339920852712070615907301987256777992685427684466353358331833558684836013398525550200755810601878874268254303169603427032405740748688044766768607008889713763540029876700238529853110901160091338032645042511796876646374857313599024770514550563347749322954364648703891010964280460030190032177386272282752555971011009253064895844369062270898590757290582589482979926546217925595538081284891997424726249679770923046557431839605084885070370606651919721193971642010145961516012606212355097908857336336886786098625105675768689564842154251437185017058258852086674869301015704663397210378218264781134649559506109091552892665954103568699075760520007901892603216698453543473618559972200871492139406025107789663679633818014208114514040940601958506806111557339710848357845091844350370517283939731943279408365573075004281042109691836959428408459596913050586281085922068523968366538203657265008909376052417863530345608014298297869870010989861148605982166109409392188474506914613213977552748091115984948253700437081408443361377400125139721340517598729650691369675169601075790706024636676862438987161671791879005593592572740826077974907543164205454521320338653160223735811182925214621331451038351946053331835962412733081504917508847546775904285913361630459144350784389145851805630192931964092589116559341823436268121621398975386370171804536824496056915743312943043933726237100857184166062800060954006309165267540575191647426745799847142878131336041514777732429213835680221996108573184497395719420095209530521714075455096855793169141062640593915631626594136950095903090221798253561390593477256947265707490763447883463212113156841739004278563638907260317214517293546540715734309943344926813954485218153734987537049001668916908467564838693839763282169901842380168083939946950952112224479066881972378299731363485079557878699759464597174192569517774679758923269997142751465365203457567219455984244397766588623561542479489261477861085849976653710804751167844625744992343116973734858502728955475691179082084304226377023385132397332211737653701561413392944436023415397341393426962325007512231704114942777953035444213916740802948693208094413328203967275397478384341011249589084138748050896466682657446772838031441477728953101434881512115368880154948551224278294789832410316718506052644701969799196489231053876962085721103963267329550716735844827795082342733805466160634719304517639377631967301127642680704497285271453078182110202652790304437564905604617011125174192314857030412679824820019977931181262257122956309335772891777712807149150454139059831331673629852299705698063636768502970504019631902428321850037002646099888587699046505416233545704906746164709950421012462218045524597701080711127309055827966610767021664220827781940253676126055122698125273794582647530637727220373830057942357854612673851929492834284740279162050810067190326869186350835216763029284469020762414561736209134359044683734874485774039631586876120873270233827218776746753483817705122526525081001725234286820670960933772172733383921824633714161626897425514304578475117638110740100518341697954589821902985404408316004876486727955292368047487425566272040991244458497317869233251206149694675816445319903915929647917998275008858069586015254845053600595415403394878255486568982363888780442601983580098250918193591960141325988041388301760165811648144585841004633284159144156350410088568072650408995202766321128978155760801977368768526459722919405283516116233607478073373429253411225099290309647075680568123333633905577540474867100602179814362935987496955073364723677518603033669496034588631998049869064813373222041411102253196116789991628102700618888787613099420960250302065668593143394611146238622679622998587904694997398730978494554996679264078232452220336463039248640060963544130542731523042746820159647221772005351704302108834306546770630970161205190461740931264025861564380314252114946002743576598750181592396475144089063786276828781216644993924292768832807031013228825876881086569669751412327223849150286205437860205832227255950959743731440209003320903733272732086564741955897771256959268108495157306627964042840077923126579777580554970970883397329519714773201633947898111271073333247202858133188825304214103212861754114740021602963343051469262160371581050082346462012561435618064928060847241182310641344125586568765244709157153054094141384219841915423309625209081629295348077819280905612921057615350999523021692732066974531495990799827542655271280913971348842805874050924600042941296166310977270142878754638635672276010666347858030498480694756300804916876741615854653775090069728684563659108502904777606057028758947211023648551279243242082694198120704896452199023957179329749297640860204398936269399641877838091937972033536020812296558292557914428089341024206686725594743493415019443907113901685065817308622832125407339174740961671159187912987227555027252107892831409022929865099009590919045251135305979740655314383865083783894037505202198327625256923954852213924830908202272020166808833615265149384355725077757371823636041668083996869352097717333083944990289474672914567942565882735740484447106335106584235471475786456575746467736596783920403263425054579349485244182931509778251397407425978101037577876953959220143397970267785284919847310936572585244454738368550723358320720775256462057429702971789619797719272532239299184282529217719834626437834215732455419722334383969006372570535723116779811959392261114407163817218712443653128645127710367247138194309364993275501392147419295723825540719165056461154529750311911119972187740465638777401362717155080691657039109475408850788012498075545039695692504907013802400616956119089735247264515035928800016787989463334860089511464854304991026729954378464867948234417565508408897495844549199987895442764775932773943153812600016501255283845797340651917967001698338883543447417252025035863659942637870791343322659606451921025666105714095786424483185934017107872235301208939285128031838169501080350138934682283629591860826225243705067468208093195748967773755250559607082231231722356472016799908248283298613302090076891081713493473700212367251779570156580716541574416578733091671578790518092331028665653467926836332134347387633874425935748139737296255946639945959363494546001344034709978727933417231239904743664446361692792429395975639096298648665380710174562910129511203248450406127291616999667574633942523926736849766323553081611393741709441682097837083533332016136877295615073528659519261024554992736969919446619718530180263025212421826993232906787344747983354560425004629427801544423344983108779672319074346980387381062397569223128127408249371066879293192944281272377524441088825037733579538357401619775841312432388019198757204194114770672838598415282263315372040906358421280665755075955057746465232140255465546500583370540889741836932617775751156932860380125956703372100912271543529799344941136642308052462607980015426093251663954839298286326945831595795395215731643001725819933621997682751706284327829629112328060635986480276388706988962909288371617990992623901630302901316768135183044190738675391955942504578472825779966823384711449660691317512484836850230587130824715315485824602468952372881526682382625125214508162334239549575239273335906792648133987498810003158846957818662011762472613737278336007613464202627208742888345105312848973800932802181304322388434625979844731416336213778294092864218785442794254831437163001799169367491848553632115121907166350865526748507030182966302164819721366585491640437406500540173935479158835361207023513237856541497527850312761584307617860033855295834121875636035452337926606199931916076518735957553725564667559776042705649488212645128035915113670598780731268147899751465128325924110998841915009186101481876955765205037051729821454337516625767724375511476990498520118217651699093693457369943986206163342436382536069503137342953504080331582612070477199857814987376597999795211113743152955565206940971357738935070129670501260891701537949446294287653538763828780954280418440386081386828291711506314234180018908283422685585688960025676116963933494962362650468962699543634422466185642792651102322985694695771195458771888451418754712772749214883817202747460374250401089039303514330599787505145054962143027764050724132277607018923248371193131666953394552594517463927507720932272360170330349726526743385616789094370187354387841993759002508934021030491116451553419432611544205002983627136537380853093976524723276293122043032264634706998342883488743628816788163500464395505885757938589005954915474801707970667226403970678835920347160818563084182024783604276195870624529822727378365719904707147232990087774700632290796555843445914523432858501592933705488232284317756076213044607792103464262031020792303249846252521979350355635691952999241773188621112454961386244944594886787950550850213120656084781826198434741912856661850000638647294270595826881861433661616422368588681825791705864474753178900938031469594761751481138088728725818674486456375761140787581429564054415828329715823131919966374685511869638907099916895458567981095167622336296068346171471278757159159671260027415932286577854969996575244398926258254771102141525716063585535499958643922522482126378919279541760124295679986603507027440096287268192474790298707178802912941570127005098749663136923595220322137839842059735657759161108848151648388525689182340517658114285380631036081545118226955100651256305843244815739650776822354812243366205701998417062040580934120335604140461720271220874080713693779904186863066596701135203086762301252343469897445010037246364707728764209048595357820739992262228082438879519119707090901986082738245722958631233406082094332418505635886060254149201992324104135854669226903245379171285314343612045840602281537170906723353280219886604937893222934459759405882054431815038937741658716152779076009211897606015838192068993649356564151899008660372031943750540663519934433018528563372867744400949547072423007783442484598578350214840176633260425218365676781612892650994641035463349637501595277207682467158823130263591662023964396222624507929082065085972381579633969790820358097697723807715995881218917474274473080877419748948778273697245063219933372404227512782076331778471690836340914830334421751464398766050759202997984124963496257738304964953866215210592831557708883747207050950691054259195844797540509721471583641784946262546926534359230501387751690873933411544877468853709239651141417143395146488300271516823167330050045851038296285775324741402963674097163071557121817386857229152342781283278181991275655725975529915036597593926098329509613755888282320548911897786036359985085698370017085303243578957369483354137610621530928157004316520665551695592798365072516192188345108174328649149472562279100799935716847610727425095021593047005537827406664934817567413244998199541597398615833279670157537145132813121405018465679599775919157965508538587296891518238956015179987566882421135787468616486424892200641355207148145588536934342592805344035993093217312908825932767714593033891736273436836977944460720582017387841384664833142973782444048706564620900556729923899231221555678744188685588968202189604059464569252750894987430701120747646832759480081656502523065391725277709284701854607751527218175837507044721453277767895547011034379114788895909917251185377230264319758009051204375590314791159624147875443256393791950032565393751653021210295452321951521901753707682974588117420127213808069394507905736831367908920232449444496778806604385881036645590332061565354862290252509083584979499713639329153491831896791796932856862628355889923055525956205907767814286095940080467904169484764861523991781265855562657061596294700633711652411459362026399782601903998265541408686092137686128291716043778754049166862825628579933292873117426072772571442687998827689555404045302570855457208971500995291886443752933496811943199288385904481051535652281287410034376851436727994553668625610664760389391410247501493829186762948206282761920877307091026787186776992836325070214226225923577335984211824001210316490864495731931134776448219585587319711330753529905354622888933098958902508392283001995955649275857522160650838606912203808959641918393768197224888488532189002669795441957790497961950194664344479366068096188429889942382447004171250568018802522036246327414618647975893705772452656191500132788999367766399128741539124852248529593461182126021169052696848693581096943380853052514701301968415006213507377516941228134271432919074329981714272731192736436442956833616554037430809485251824840748263938178782038217980899251250020829688511082917965145068988586215193529209565159078108484594291985677028304009613767597492716685887891820829148919365844957933868248952485464829387844049006993659134524932136567790592746081097171199064291818229430779962672657260182899663913587552549065873256651501217866622709127902177469809843701088207275999699996158674771960998934562534748763737220970098034655369236786149906924439570986552291962031856208878291211795618080472746167485519636934331127196908305618186815348400153158625056995765896095591106575430896049952168095704374979582053807220427717058662774225673430364585417890197997639814207930508164689300596623068152474751082781532171016796167759805043158365232475278719988336782835059656800468163467217217746557720964792292201426319531716601172660142870616483907848951747888670607250941241466644612540474412112538335942041410335567307704004545854917466347731195388179398003640499543848464139135215381947593263951858924950810923882780726460452445742452935432615817900390859028406026280229065687315051894108966268473529959483362913377661485697772531021359278508609553496876014959118575401796945703302532028852679682848445288419657624210486052678389252443855147126871737978533959373250713394597594383194841127144189129843195844640648844964730850128502436324726694496447211078675479618286880802994401074177995211853817556596850456125511516246723267827743423920437536861493273553725658204456749416166125018290772648003776382211737194188653656907353322791950614188585209590410817633289971032841528576380572595378241120719860335273330080811013766048386966430785341174632383135447369669044551672444469090897159132105946887096036138656292641245332792978174049738654902804630210109975459381599331377419151017967597473941164919310634675004827327357045049218994308813104106715522106639538667056272462185858426911037457289078694581186956973194760753076764644695709783787001946254449962802128064825373838894269676142421519335749836700270540093530945188024386533486853300976194166782688384624336824596119939131114545793272845539307399870699654250579445984054970531281722195650508319713152577705181637775002896276953422503514907888857439271335778520489686988092465273820573138692834907816795191018713894232106982588882547239746057787447932316615442021208540612981195176089388107747040263226004842809827452560836253809566970878031118759642803435526569978671332325446184096265550102052945924921129539941051138220993875929008059174085101563140952818087292994959775367903827953651812360236577438077912024729759600660456900087307595417947586505698268729271885330162396983489665828061791832281046638897727425951425804851798754132554034558991451111695407281656500882740464238740580326222200051668833104392053350074644067463997582057918102236461733283562812110391401241536382918940537341328415930869158662936907288981721752239413997268297191299841897453303110016530891065045737208780347826330504914297530527112605272415613175162372434103191823084993519728593362987583871848732717663082923236050860173638279009198234252849438977614859337580294792691439691856367246988104505610937998745382673677189903039161016144614548703868920183762200971929592136523562813564729851090207736752709433043136626578032610081598545244281107125082496058423992434765088332097683506584993443029482458514196774058972562088408576120500388660021665181813067602623733223805023869506046525849458493904531130646892235111756509837651923759867782805555870687250239014371072585922589731630370897950639645946915543742726566021678597446993213400195781202553325066513071012678741369394173225106346226863751447888310095424067156326512104695474988867909048293861386363718089292408919528982453826777461255946440546040075424374842009474487983708007045375482505281464106818631542446103071967979220163541227402373804168030280080526313113054520603222794395565303835219268744046187602329979799855397627850517344444887666448521616950487836195807119133750590664655984754137105347171099883626985405139163872723631450815735635125771091735272388369003655348610666291095407419878761671148999875754673301885146465009419569089352424165167329152108391141844843823042688092218595113145197229188089771167190167326716133358253024719048410372266403095920364423808065040647001367827277669450765267071941647469464985548361961392647272362067662843327275570670917845600431818709870715321689144756352449677842258375749077907939060905698417963698061194750830105391643546860250189946674558325970902960837784017523886493858922054459428517834739614546725876923905897194224083692730949271284861838151787828355477788939187496727821094892291909269365189727300653767487630751636322961402734541150020730606089893844882565238527253544244026386578703872280434712819808611670299375351736467200319806154505970707223275629271382018284484705677755740139627527711795072900668225347456093473401799149907853414597204215936605578873871828074462177519224026597543465933149029039380104641502027305510850524783205268794542245923606173342306887537632666438108264588714082029292199910805213197906032299500762087432963776665288188777497098400374948230043599522145383893609336708350457917040020663657084423329480804483614559592779641300259385652183354492771881951902697480628746019394748638932052892257262524330585596041148514601425458065986635075042692619677598592659468154007402041252392797434733759177000082151919228790845391473689220960620601706512666400503172748091088576102035044140244316883503376717917252935378719284003373022178709265392407464889158011479651009303131431352221839897046181460725246132325340207780736148495007314960811192392967063614760410193073203748387804373272977255630693998293816140927711968377303383314368743875885974632301650179951620241318059094315428298226139148058109555088890910401707584669430097567123039551660322574405219054100303074318712023759647748114666223566995080659826431257850189177113383018801606015824848585242750511209047577026828895143319801251592970992120525740562204286200484448640748197131063594281568983183790739426240118308006788193776773009722710780749395640046652000834489977499956340383305182858791641263518422710942790035001182565274615042214107442971699512438096669393825766185286808225249215456131345396852661096047135103578685709503648046990337293804795356014743762677346485579943599270450105524201390372433195563095106400276113163774063582686689041312610033240557162385266646172152955646343007566432667960597708073657567321488636542719276182853311704745978543186651003893041242518277648754507059840356374015006574198511097764310869291963641555958769535615393090283253843090118298230551149050229229210142960240500200801836353681921461623994812737767079627917457758305065496917475008076222247064064864014978767679678178907171725959447699504004096139678454726805353407586419664895492281840837465183028086459749332019124550155736421104501204838876054883904811429498623749378573837866408670567112457803904912172834506754764585052140009063085165937111173904424573251175597472925579670543393312217849005257552102571863320018486231488031112835128495269892771418654223865108412127066727332142600418896494782948141213083172166605135560084110251973034920094421764912019583645051725029020653921589564412621286532903221385349073419945904932380181676854780411139107114753396547287842163303576714620061889602237234139014954530505387768381765568877310296797634969097474040300123411044966426614973282397355454992625258770627262857173010615319211469354422173879633513796693852884642181493494790112602786511461182508639726470738819450797676145117066180912638742309921928212594745687546455673325724263186129405841848061414982782471029979065591148663875329779356162074562191904358552088698071952533783954873431741105398115791198858939578357000667334438256501029755698918294786354167505544149771518239690191337742237529147102119267016616036143965799558058299468260736387485448597856987381056214323002672471238026469591015981482149732001313115330534489384826885908317952874547140604648591147057867835818105323442459192000060372485459462713556559665246763882917426319586062756557851230886694801071869658159826171243259372672298893676013727894690314764267189245490461449177374041584748682982215644374422651407531555480232840624585080325992684553075536787873083718402388144720054894186648760310855881746580669427599499749170604044984686958361367202256188794259897013725446014606077936223373171550069398920154733300660528972885324586745787230993690780575372445891030556115795750857768152805496299945539753684075805424956017145171401447871592124733631031681052797776384957525718007402826700645004720785536392703587874200980466763823140096087476476774373145430359235847972389043545108065579557836596947367410528359912785647921398110755220199979297050666996142999669112413033322193841603222025379442012858052147268300893476705323332345644569652816615552316148494316222769868346464250914672290494590080806493981885359955113092663513391338884705168339777044194678441869733585704887003447924082958678458175656870930347241700488810097204132132653695103127523940937887143838844897780275020888255885949539205482080250430301134365567725929432323365377812534500595496124108350251346680489182614697812422159072018253901128675198989334511438538397025045407209732139851079491684884609398203266653607516621572111457646300006572400673216684393936967998887196705051457362566095613022404348274701193513071360948596057197313090333638245308348262088947283954239630701862711083956401957299011196023111432452533417172150638114412547059663371652685741444971806560262085210275934753680449780566694287882248095413201386301496470969288251311540540472152901476613200068142682084011371511399951896608038722089303720231721141573425377572004254392548992833864039273069707454942348018709059827979082081224568525288577833469687604848745459945079254439624832892056226629606575883565087668732640161131307917470324198376614794368844329664177420071909262144141106139106930197301977440697257614619370833105258987020107825317309626425459832565546159431966943974471354591824605257220303121644556495354767551110942848166614977187200241889114868891998385561965199981790536388029511531284919842759654279695824496495365753613732393638383992507706478795512123554000976677827924399998995601329053451283882393001868016189294623676060427921417857444482836105857812216593026727346682588827400127914367243159169095026277704289136789725163205379954601719951857381605470697107858141342319492764033559252153209700392646307107811876487856385818079152686421534893737305919560213589821259567494958190508749203572937811569535858230595285446070869884370748080280531376354965956953306403866761293437716423518898619317107961369955348719041277414694285764784146147904685141114642538116460700563153524992716108052664299220773247104301397559015678861704586970092396651154581944204188044844587011280326354248998566255890930708656589322736898607836360706126107929721203074271789578430327291133637900276713313162947862983238328560464155564904065483448685083084299972576782400756178014762581369196393281984095381784399720725532490619816136964224701105974312637856473674669555450155636964519203965337847861413634125442858133391648835826185767311040019710936667038150771867981648348215376270315050487285318900381366925932388767509085993335347041343516562315432878417882028783281530865482651227092618180317635822067401923569490177330904889641783420041924935596641310894718386409712419341391221284114296194266279171630644516022255967539087650329900605769524468373136563095563705068815192925174260521060276199667798388671724505221909958448518103371301253894021912461126714594520533793632933756476752016555152693935527877943808828094644518698381964094646227792482295375730938699971725002519174658670376663365588314123676044643464402054915416743573511491804623107883880282326451244515360012323519457089621275310624834976524125121011160322128319522072521025947994468014873346873780748573246588602870389873664788879158189705929787999941723325294496128253626682499661817129528415800328259683818180021530262117277564766732336946371969863292546306112917410242645885127205560948214967587712941819398646137649537421620973009220988631464390743547368733786858018944157577423634288444843342595209924659429393975195428989561223289374128026264367488436612156588871559567837340699861129096559408177151663027103174008020901917700539981728246128195658507041903722013924450946181270887147381418169797674945171885536110027763274588480990378026146767085670379689964743060545302379335524446780971286949327806414975914475835393986022715614460205514134312808512517768269811846844537944201789080102848469396838924507925778467019061913167056356006227557565905704444771552053468786923294243209632913193575250734110969898764931284779533692830532663234914012223509460403895727817809465036012282940352800916205225991260751115393092543550639173274478892215029703497841221068554659729130174187614089079494250559688798173251924518521250907172695091262187822610615055575172622699710354235716379522079175886661536216566104428361286085987085525036753731387644105366990139266157731308649928546634165344248583910269075717544224218612522536168844650185615960710815247891370332585502978177338037544307307964349099933029160654777784828493664843500207424582879177234382028738277343547785218919531369494889077620289155122067673041189077016515599235162276576889905134851236252388750170090633351759962066198337536307725303376248043562559885032361153540863312226899737878952312729702334005860320552316480726568267216592146365875222776301544325135460832123116830400129073693413065887166248487431577331849294667968908187471376110048042984621782612499252535152180157074673935296525680627452109033839440533830558555140616988614751588784767545977042866758107539572131429715454901348005555158572110687225546362634017863886960563724443240445886013708710777894759265881818018404536466240709897912882290926018175680744041746035338433568192259210197443954954717215849830194122699300204765307437490666453309256208751957332867766626806029905893224992567918560544526356756203418809464049097128455698889938615385520715843991490110775455886087012488152750868414251726171384215822075477387962068478773971450316226884719037217694579679186062073703876786157533280025482255996785920560640018000003665692884676280177396146407069319331049795109595926008686192833213592180934924663310702018933265113824220140817081498658777222303609762402967638573622726867943573693931621523836240876290495767515925375692375874843459884028527893818539991917522174947229641800697180405946569721676186327353838238868185046052552922109500645680218130811034151948162398204742659864660050517104417612545472909931278357841162706204355090477538600849941749543699565575213116229915450932256312830120424239745510478120482339981092725333774585767402466193139109134508312475008846695669666867141029347495011200202369810110454899326642675367932434794174283483844209391623925984073165435520875168067326703278566579120883886543100725878775512864699884601576168544769735623382945020737602893160520474607463850264055786682909289953117084983187171438497470790794604963642386477342110058750194186894509919779985763480548434701621294084710514893338197402705235197512741379052975079117033147134164052249910245616272001707275280749038317161296839683392303133416476121542672952617494234114200109958413678683611575866394799281427777186865526798383391715987552629096142808451429938638337070426654099517349594766947413671405161493392914947029518176196030688226309248156835072848953456171078739801616847483591180936341339645196221500731498735268154102395400216074122026149937343099014506869497487363488963466279696996272283974173859618573927752402342339980918435566866566606695906722355882767571697767172790557561639080831311287725296552683602017899210696437075970205357101530931793070134773653943017147669090372731838966128992611855059223298387342518854909295828356693744986047916281149127383959825183916419918641248062227691461062992724882369673149173712081975561645800605177056430026790247123061452580645823145258600892993251718180330541249068439389544559296918689364686062740548978764629079781780343750715409701783266404520060435375095455600846280075276308386354051241326710244474339692633425728942213197734323672814908806062499424125063707492464090873271977682105363480589861678661198300398853361246108032007871626206683581508740835463576473731755272455037914811324805405358253976720359822202010924477660367647630000438011320815385176060133576519365674263691018128002958048236104838553638570302011497619312178772058401519295433987749502196965010247428682601595751395976675483744082574648572637296708970926534600459666304336119181625847779734303040566776504061167421282123268444884812877479237468551744021067924648397813313495843674235259308506373237364269273329682719777619226275600571119798167192402612508690904373308548836378978320822528427416290616164832105229265883607521882354303140612066650109945312431038284667004952685661261726112915547660459183437360554439893775958277999584678917071569738155083279018747440462211254068772417323489680659197115913987386904474719621860844476016223034477570756598651587132290021921063092464834653351873223140296265505096515843867678625512838277063548402943749267813826757603706530293559504570544797944830668376971215282461080602966867842952559846067818868879381704392385944983760795608230732835723755710598785047550236693342053086267616322982390564242408662696150705883746785607015211025877041897750359717716601257324733419701933841652908664992266418962682248553610309154423997592175854422397578652869026105137040024382705213244155591014676712388300640875788056219582439016400182784469859036026016719012370893750330116714193337545699459007717984949347214119784514936708489832322117155448708710818304190313407393462524159393493682632375013759220628704793822319454934281189300037780618030464723002688995185064621694419820753971450214768273236703931589808938857119076088079202895802133390015347657856456706435381118844469745770392364094442788030179707928963842562178467543653128820237771520190066346481131874661432598066564277037755996730357083972308440697280887322048612905838385720719332732677220426898867692383705040188324705337907035847614811092701086290634604335628085853912836391900898989233284021778010019285702276760727899072328994347079708603138460543586178265009254709659854625526140170489136934891792089978361873917604868086096923447784270373836719685185237674670492271574540840381395952193592961761678764638854842741576811607228523346479939810987773451403546761312384084498046747063274405843451924628073910700519115661655578543652044710239983475005737362630730296448517770161074523465901586205591675726375600129838119679676808202396621490403367708007347425854023320340139478415609442590755922080774822380249435460741630155783861128083588865230301126249600535162468892784922459160485847940906602097884726796998418409432641475859563375876203543828754902143829263124354233601023525167916150555748286684616545242733248251647991354972673390392423492052828001392683304716334113337079318823617306386526587624460846483698011137490534822503272872476523107339022854227483191515717109079638103372390297165816556741356046136741700986377296753924539311799754863317927531170015955695204625332953582006642258739351895540691094766149072150281515203304309431307277870619078870846766657774991338686473532822591202917945601162793656480784948180520696479485953840754894397636322401061185686946396532973198889894798714498154319731378753361724486930262793949596089139680914856690442911128808916560127979868881100630018630517777031612550707909742203567163122362334805435607428053913444014045382277282517153268147766557356093789220778248733072015662800733104796699070138660497569653436940577870702818371648550865963054072301874258922950430025636706587554660850822175761173787732706894845906360370954687580511683023725994074404962149169327540999446861077804157406337996456070671172045094198627676100821476664586888134865997921059667174650247457273473900430035729844665149603469288193892583122686708797506438520171337307881269524680251322226686617997457565878846004443199555412952368179017094036110548075927185774510786620099524005490086223748253528879646756315964829752080774985477722803562143899884489971542306237368696987910909757325583075236134031207181232247150939296311270323327466177535945289090786825517183840175608503780544893319768706120450171960391532099957781146100828594089772957390526491230186285979975434122886099487578667462635516841257354313311696470045529849418767877228623020015452057827167531967133956258540323349938232684036828501935646591556113631071727656526131089119300405855764424009365727788776437665880919900659895476725494356307150838790968384819709289009288694681012796384583857284818671055749986535411864615995207843568262519793760526913336926862274620004934213455553721039885071564235748586346306898681210030961576803046920608351066298414067935113796418805026473093896654424360470323458534549540012643339889229321798667013207815999350904713005390159667115769640565264480405045158395725948635534368898537310225954651083397801731966150848198201456430329187498673150745888133390021249473248189058827208653855764806137112169293653700740162236077855472469112674409584440094973286566871800657579202385265932421401770709849337328688054513169696049575732342465186034819118922672198848019068645587112804254455335531258749626085611043003860019346573445253964828872835221249517484620900081166092676841006108961171945865454134517662013283861687412682313358489317779450943113460583986617207090509352992744032848532341587563065224310006315483473281912604258592745378241737011458880226059766181466344060936780196421076230877238402890148822047608173172649629342463722435927413821294848055739672045885511969789190573478561411785811399665772371813808038813976686676057119382583872879275617763206476526441238854644098620506880847173052759517667199632267738537924190294890039398570912328593306230985749850707863827335601743302397618103190474103557452664460229109750452895703765149592280612072317191967740518325042495048715565489787647405044500094394885806726174844456732495732826342832626856531371573971858287460434285121077245800192389312732931333930908291666130973952316068070123368859452734841159125838054049495836856122867609216969462888735321300667348573201961929016117906681419311239682873917205624835267074077774393954243104673512262533743276627216875569443988821155242296265937839485526821750302654012017131700820167843825338442435705647073161394947574083441088513942834642827228771998339473378831464409264728485686839089505554906199367873809469466166329920175708060605547666861223642278463585344100741948268631726889581279501645587566484773545887583225493828518602400791377263854126091042235292367280293198317239958170923400319580166573893949780480167808757689104515254736179062567989803471325758726448525815030540068107473369637449334636486449118892590314726978933199525301459217498169660382014273413134168750064300203068352664179290772205932850988828230597334413142034766835775667514088944335830892711945983079610303757083399441807007005927083234239540985671073241955501866160441222287673665925345464478482361382012499590435786007644694640248064759375031416308681308997287373246211253797992847709276413286740622040949005294368491984542568274261410799180393112188364961346820659479638048313033741386919780297578539427958606351585073877132009267737759688900892434749935483272625031766535007804019613157630369788176221440292882324465343460591151755192560717161240013341906848223385082944712025866994187590815708811293932065490480241710141573354829783988017565857400058625624735519007622617247383384749198795558759117440708347975999183503843683914459834591939278092007211014037114304667913557741747354436204480785453987971685145054487323850381653122095244776552975123587229594513062572811471428862195462245701419438297444007776217592994093732153954699190906172802060538043375974638118666977462262770127759942179774857845278332724320013931592240494973913596104601443474584974416134668963064043150929271610850508539142955176046007158329000919842819734658239279625429760248216804354325486208175664507615584604159438832254750985943770896955219375540170489861235547577582078729246916675310696121477127961796620137604864013967749686911310825683298766256184888956478164430670747748189524153761031640047747109005772902758376907043377166405344911800529492910298432132165304111322527399194122458594431185920868911610478391895601149622216511910386551811917018789402410644717592995894689145083072593604725895334287186288708346657677950757281316024273687364462536228482921810754228461214912938801405073804702611175374626090862487181436497119885271546061942111282210135541779586051760922423901418244587521350101218140974029589148618319337272124454463991468507039243307119391822146120897274161630220247995686251666202010941274297229740535268252890505757371157788893649500711477059863290994766377670319782674084714258122225261666838597544745743703380906893837660632136685889915744355966139097923706927788893950128808712067894062417071382321474809828786964544339450807551937677262101191191155854037025913653343884300841682889637674924555950065259263741224517666332402533125189345284228237824422021850858621588346249336114597507615754172217487949511162860052320761026744772311019593016112990866553165336753007828328124744589505346814617767385723509590381182330703212446741087206860476903390196010576174594431732277168617505468378105398715999976562267602454058860084018115372500347966189818831098078708106520725436805543106894866232574908690017118077406553642132910892188911977394483343778917451060489378332952073258095891176677533960525853439233580172897587560279686403912921957248676501018081740799386084586221008245911317421384320260583078219902191481651691440544774993618552950884692711154733147445590328146531849037219205772767386056802621281218514911978517309559810944164715774504895020732921723822507928010905876023053080555522421997880919559556743902995624110380233448346563519078900103939425115883213737614208194287922878121606705451459873811192956519926093092535218978065893343965058055065416661258167293803757875827843667746606549428316030661173347398178922366736227195653888499981153372344300973489823323904957923116434070963216350713948417208505367994828477507094767461377189476909459241718519676668597544206995853255802547718284289801244027139174038611743238825166128405574137602999802780635473466361537180904630050876696368101680883438802703401735316339130992479135209462721534360112083891237291496616241097271918913246539270513948590902502526828775390846264300238709105938538511651086176123437433523491013538231671203471340500113880413812541246275996574731732151815318057247957207365560629422218876178451121478747941304114657374678925431794911405388646152639702956562567986021157854264856343367197213262359158434287495250869183881717118800740064334955788270857132944038598463786369415824730276662653660344097449702571291802510261815685235478243579763701804280295074813395864803577694796628102650444283401321128266062118920781373565907940058918567525000917357499971850981503486701493387264500892273091351958967591201346880396095631356082437532166283845354104303955072077651038268038941454588318480222706732786541422097677157144912620847887289889947641311303489550535863868443201841604187821559717272353451119162372943183269371517098927852871980239066495503778752383156525270391209853883703323320648031100368330649507804915347677946756555515016639289395703053395857671050574622647222518327511934565042665500883140052271866373338344179574057453673967553454158111897076346014793523319149599502815959943410304325362135231154882910899696962777562132028107026383569945642380875966986433068623076850568983073298690703480523751835410523771710600082275393147874958952074196675526793527569386011095298001407266605192848204093119680941985525156689800027833047814021529420029832752882644025214624176460444167788399422289236351062133225844947462388427883197053791085812346524190820133954862538202484527283283115817847156728550287389985709252385641819286332464205137620100302296653862640684873124557021044793106300348985419062826339046378311645835534779526593371201251612421496986793591582835511533878434745024176533549240405506601771072596711629321078630270305617833918360997465114172784543815215838986696585389709647186400237656498091116883556491288242578358681750478717434017498437425894392405903395405579799616872229151392223570747670615736509060579706544197375402369225717293308563079410010217890684488095599954797507681126141982306595023453112245110049822674862608613647232743523316004927343548132111025564472324428912233101978030604544184736273242051095672710137076333390558410160883663389381501051882883788491425955857055448170234241956787901610547738068090596345051452950589391016803136222075791804033140941365425974784897493536086257617368615710799347327120598979778616692765326916081782542884095840340861140340317767798822643871932231118246417979970186150595284311365957946704557313547274109734883343935864083240343505040506205893114033938557233726380071090490652682275683537297014702912008615256388647912985019200699145706160228527741631729717597481165874237519837520187132115210146881699836687427787760179638483714140259920216391483485349956801155517477269055262031603277252579489622704149335913732467214376124169719068870335878652376469525703505745712923459691846522772256941215936563638794172257657217358463988948234736082059575288467548823538443539104727668273658846153096696050742521402152303573028104422460091122410402000458697460032093100263759447485468142741988272666967830180660779238363834007700081412894475070035718380425350058606507214679251729591736635938801825755880172808196667648658103165250998597586146427011576888061823798385489366523325884753466300448491506142360102740647222614299498571882748972741003558791986204789547967810772475164606610072748644941473749806739931883917806687707293425634478851992622814038203187893893647953880060640561158056558906449617118925697637543241439640518922097896349976562890497515469817300546290069398121473779574904779310628438923342073286983542442948447839182441820440599889681606925913958521985312229729837977406827477462129050817382296694804409261918422020790660906212732316203532883386080582860139328527985238951440068508419649945318211092597244735747879840537192425010466913035954964153846041464578639730861457238808157849595376172246791145180561052780729296142794341602104020996564302355998184458071180379826149610834580376309575483307282106558914128356582878606923461873933805900280863867444195404345467027008555011191551094937634374528566901971669679648016033131727958632529377835671796594398125590776939885538241162338766398068523883940600626744818764387639041090435948822920026490018869995336460172630409412160546879264673482377600956625384519192364868784350765038828371967566097124431201716577039685958270304173323156462163129651462329261875152432799408568903585191202919245146046037475457409012976050367119447335847292427663965293321734193794124528009491159184829369847027535350940546881696284207359706337640114783210204455795181439084869898302735585978696613367463492366257943340533613476004096178606339701164347925067622183426754887635502179387178525974273717386774492656032333425775108665223612075806041098983301861221788022178369331716268445209343680659095856924506244477218218677502807887333431119891085589097366799994657513284578057084182494794877408445527578667678691601378968412507731820528880409542800769261136768364730544895608788154147878167996301522746944831681561471573139791557412958388306450028924560371162324148472032732593821541315146932477385373407741677941712084400952080353238249640332911119354982092055610235672143946295963106782455442134115741862139950437152097664523123548934219379435009827665695883352443338217400183674505669309719847000643793311520757688793851176708206620438637768296349643943676757801018730292809783279241307488271611352534417871130292495253572676857662849922465179472656654855486949357628438657310465554902611164684755225953269210512819773939506051620530713561718375577761612881829342166746066154994972789116893049104768461658872844072604882437338105677283789374302599363216990150256625812317182383093070270466937895662961889551929517136070771530171916037336435836727678293878822117664439662738675736628887285843168937397470558814665954664202085590124633619229179532466078846437520030753946211340218152319129552273854556763851116246089359717454411771770685544275028095140268280854354483259833352573204026294918595068167809812982309997592687252176138088476219699314895119168314504895887491994969917551497756143739321010548922066940585240451824871501278917088398543910219460151736439096721092121413624943511131820258577293471424609422815516417827048363771277303010496750427592549627272699400535873215577799861835215551767115736884153307446774329074167749852800464336544141003724309093035227056396562690427299306516595478529770816066230963954683443562262517152031543280322831716179033397028116117532083270870528031674106153682375511141949591161642145649001763886918235296136015794592983051221896616364619060501086128210781950896164597070497651305024286453930396117461393841519974155342866605581903012618914031164016440181809161084144164620075168192847264575680148632873970727969843823598126662295877150941969842232985837059398528331498046899540858029398885297223963903137034534528650086274794735806590476803632817771831879357406975120282730350608997541725990430127153838921346945987654778006443570471007782633743093457154309626340773415238357392589858893085504418321489331606243519268629560347278450437514365884207704379027392288304750265718935887178186427549349196520541402652744059198907448933205541445629724396505548070856449367617401178337162728711850079426393673113643751000728084728115314199000591313264646193162100043068202102629040615570771542472229269457535772318300299513633592620625982346368461677771883116995397749958120608774510124821722110538416180857288097963611014459291489688259733173669819466526786677991257582011351479035723204541648807187145506064122208362930994986496059134878374072203041783362273174352726807889029116235897475080803954953578954028281171337526844474902541190250912127436553307557852360684100516017812099019971017476778023477133399440721368454807748139429589390560769530584234209901444584235303449538771204632885954209329181715458276382600724863185096537283758512224496100885908286200838223054657061334195365507563197740748658094055544719373640550165475749753545381590542826363334241557095050445807435541339692614749561622704117295243318301983892660132991819333306515093660295324739003995897027463404517687809087311176757867587166311379230460180389526259796199456692394320943873063263825043765514028859442215777626428817591785920386145182905409561489114572946171138314570578214556714712505760328756236150785184008298639740036736441471125477921400334133438528398386968055203552948670861439544992925428420101313866334770301498341667845096461601880479608424151814528294555607466921571801100210495791328713851387663793251744232539187304194626294802364792646601480262066288139309860674452619425795272210400054791293056466106521897484612559164159977501286683218893679901961774005266846243612973776510598949272024951520486911112670581516661123257466666329131703746451008412950876336152528301055553220866134610965942728820017643158914803590457342133391270425909175067357406086595679020658797854830507681216092568627485118707554341231992658634170751623542217772990664629671217168271716257585704550206332453314630338087111594605452079532110596707347770538255649205379795535403305147168105869079813574270198363891752898303897701142079795424267098778582329113816663070690690219947097022622507696904899317865794717430327245273409303022613297583899638914102516598182533597206449486331391391285637866683936653639460051635327172125099923159330497339704895710738068584777311810829520935908929924226063140586041464290637352757752073663540032888240616156636321774240279024892819886898556249153227385106902936622077112989259532569123372671419325597123032217717477865993579477760035244833311662553032261761037287650867460529640565721460863957440191475311223200965844593741827523450098881033448848787833739125345789767085108993111891811847870119416427939191108422512931788961228147225379137531812330969728048829972006062179589671132119964395348092171489319757265541796105135217710128534451764790204888655424459088397459190487014462950847981911276735175894326662006825562940522416197499451785252442275570089594422459892411225418708264840955789636442717898636895909656094188571029858480638373958120434305336726244256390950190826231774799378287928439911771340188305997305170736903571337386331224378917111683775299462273458248907371798298228788409247927084930094478097621842218785577554253496227269114443125463271311114909573901546488557702127537655429131041935553666578029667063786935506033160526431641563525884626017565171500582887235405452143240335498129945297435207866051207253108136284183262361144688334267847522889096641024578821322311604606754934818098681732694712630039074467138054482065806389489861291604215167967115431051706697430623274289623877031743287384683614001129620492672212353747629646499728658443509927080547084535516978050278255101715042643099685567868388260017152566785760587468868071481629515962923976193598299149668546647683662319374599915382187484943896518453027474370558736686206988992452904599685109279325923600845502030614842932985958606998336873579564647942670129536387789999223736340529789293868830611373957627991966434928059926816692047526530466542070972265729111446861926893365228356702405291786828371169864173687125444235938994655478113889301094499648641097524542484698014463972231524771302771255652684110220395502117378731182367919497282476431514992932734455476873544065008854186248101880550528892320765401225371939629422801996875051283696781906076979670446287463149865535868441633664910690743825396315105560203726617808896838861529896627217131669762587643797608929521653845103546582721178825954743947157027205441577071132957146728593236606378205078305972066790214079584478660413884045250927634514539037441617436541667751830976711486025197539208419500103162538960706732070366709710957591035906800806471782582434402479074867059030664870039958109142603973147609883150906588402963248365375026720743385868338947590292504988447569930022097220216089217808802625415461796471386095177464753864602741783121032791138415652137862143156489183215657888807273615404793998472205977416406168078372312979213866113779174023296443353237627271576021137353882877889350362329070553359733248353432814068266746633410392755124714066500555645491822116090197545351809514353096942451542489460524117184288410793072476947224346795902303616737748053815005842699606166607683401867657595420348739504894162483694506964170878223440201840774520935650968270623762270886643222837865671522034381605310073021719104095692949694666650441314602636479325435586573010588205805053581155347859235096426492687407921182806845916236698423581609318228820657841538468061503164263080173481038846205438859037966483936084802890225305384871847901549323222911032367961576176560540222943940744055062346368843328703915662455625951686493717165938511499962639913683630398513211318895978453611167319083487488100019341910033190145464569370897383603963814282715387142120335274375991440856739773374872980195574379970043592352806977096288477572797332766107173804149403288996636558717596955585402070301192062835732764873487146428222919273202160601106312569145954934411364961772615678475452026019163561343322794359689427847007936522051957359102817998380173559264864301766132829122379969315935917446986560033285168102641497622226076733957991747595653834735668657277059858114264118583907782614090226724174657778670458997483677657875466026581874318372802524223514208271884764243396051638217137991368872482880916997434211890924834741348518439543573319616636585031730169660048155820552035728458468126540600292523091882281407976390287792872856054426992828458712201597615332070045897509678930296012135357647535555611032658171509186028862453029478428573906595006703926731316277621685808259468642693361499446893832704965947759212908084688235668485915061288196269450579496984027942525287170136049094040418805230010525768925450083342760478931264582664209739794515054462816603093692274007579882221971218395991638531780003748402063940880218488416681422566362414849696678503410719569043215444615455405679453348343777806358392232767479111777461187460590395615093129351649520365496337230105674423977008604025650553192217055459281444308848228211194005776587032014385537293178489028971285892237209917518723474579879047607545607753538948666295920306386570844510128585940180248914800522699965070312721093932375226860682606620199562157127826574631447018820097564860104257459807909107321571820217705379767630861285672446268358832003117257698892344900959647630797236950002054434330282422063432493806534559191406135675430476773854197676658271613280592373926823930366557514502947134825550283580897163138558042862468866899324157395340649027358361659756378736156364549722033959597486557155258558204817068167813779826358217330488795707818491948353738369319929569399104023926165891096083995890878629223061059821786948784906523359104301619124239990710040546454141576242058149564436110920916861152262667599886517193250049474180071502765462708091768011023147439607523252478555928709783011785188827211662105410127666347756024716074453649239102151259858532258268368444378348115262933489981583903124450152236560065234631712665805134208034332727094149166695296340566857709184344154530271833398301480549279127782759041501769177986783471506364510582018379724817989823866943527744232768819695641386675459878708161673487316524806734516968483940358202167253809930674400443398013314679505146054280200110039468235784403796672676292633702863442118282844986742566354386116776183504453515846810520921140213251075358521263229283124362247639113508747912656606243353803990523272768054798963891365684951117393747770691367737298586368146085499062174321736545439726853520765485185875581019852381619314602363986047471785606746567631590341547352462660122971048000049657739337647954198527726862488962771132842795651717557167416238185260455364762875279577021180165720297129093726439812009159842156476073937413780314193179777720761605046112032087702043746381890611698254845696521745495990459423178752995179711737181524583739131309149507942196520001035224526068215350302172562789263780910791037345293591969160348225448835714757986822177017885434338918761429665948944042730113323176148806989239251187267181583787539227545056377047195301010892647897140197906151561426558098433414777199451364728066415890145799615710802967865103605569592142753136576983259689400343854780710424374510555185106220966640928478155030392162422696022588734370298321938742283444271885752046638690683043196169976934146927594959559977301295907036516823769696192230286994950692594389762455800006405569681500172025467780476207163200840992991351360689172943348226643419613456880253429970942900157007411408523107773321099591472483373433399408409266019174104184895499272071151541949438788812707481803509009435508058619033147469726367934545926597284454738747771701426852597960077657046500758971913373856708147208039325557009248690863756405093556235106120276661474062469297894173931556243859683390466486948727380412944018761647656193624397280780714158627870492645910912198997338963244768898628622578410796570770884205255063526419188162379339065563337339724098203692734131855900935477331285779847945077778797058463777868706322630420638138309469697291846895925744363427040146927075520023061490805240776180933409516764857021450402905952024813298644332275310932116212088549115482192655502250716149321972970204253343959591325657321141646656349892259214959528285865474603715329954318804994429774539139738414152082377975888437539227871526764214254937476847454679806780099597569680756673883476367976373291608231847238539263411458200282650153944382005748494390850922259635188059649756235920932289336792199160126788072342108123657563402731117204428721841344527591508280810619082081339100111407176331692872050235642818275374071254809291680527114874834026678574496529046694830130555896484082310852578648998723177075702802197800831702779203425051947805704332149984216494010419014676044785639032715211926453823475425984313837871463617000773966958059523100259706168582420454420262052025311994094203987338863738117081778519826671971726525268394328761973568815203779877253590931598477898080935090040379485308863597927393721445126624356813983071333930900822997823132951090077344378115868811198135004226452491919262755057890633657919767631821543284199001959044596919153218251363092475048390596995434378818877608730753101645191438959425528537328759707873075884961338668512458187584919280680786838350231995832956044646348891905879369898373930342286262563126283774460536731810294835441248667688461074654580050124309383076094289818716603567925810276016003370166553618626759006410329972674575135315348205972308983898162507078754345925410424968483708875980296867970813335217989758879785722013841091808853071507784450840127423343395180022383326476684218204870167609092611450287301816043466553745798987186407420966134597655163978837232059971634697190596497544676774367106616532592118842944342106173342000270339392454631766238694824598039123335099148633523575859390558564479149880701484282813106205838650644439118878343056217577282905301252451371024229819062271509650860807192766844474481377587867985375339711919274439325654209686264350721477487248342110286064438346598162405902190914037729110251966577684023678684862591974024873879338610349693680886518415841907847143011313413924551834605172749540888621440137387730087452973133772026886941561321398486877457063040381519122056637173729381076384504156445176289004323505213212787971666253580010687597783494039139445687012200841607900592656012052701065907514568831829949884544980582167683913037545304513836281708386173643377106696559713928204110479990892141428043841225016500953346648846016109169675749829993599686504277320818512147392412290652545373234723097972931683545153848820897399679340797861722779173577993980377818114307793032664556806349725691100534881298114684019831979801991185331504416157850159753033469436486131178129517549013328235977420762114470934230444250768544703146737338253830083813063100160404692292144467996958088684384934317534538956283824085714797768535833434095885853080308395727453554143399431502807516583062848270456530715141941848148822320878027283461140472859932235106033981552257895393976112662760180122349737127107105752278240483791622682758054668107723282118776928067624507193253091605977834191995811675557960527260408042305529416297321013368033029686282916711753536714503906266507120072178022938666525502121637528880207804812234983952421331471009311875491998113242764109770452554294048583097685099014665048454013699340671423939877018369680604503711737782794393600560477047538528038346393305151484500056580060347997517386692920467413755350231877710707083704783297461073079281964244578984911401345108993820450355263595020861800386186279107094103329077492010481267170520715389262149567374829043556831639414772841441184399970708309331275844526907105532558061414009853255759870587974173061011296313159226675166771008475174155584255020227589420951617230237680364829158199176484105540633884224688763729191156405371650817776160369310611531718157400315170963716585409610374444839124203623539788226997959873012580162290212223828488586495411700078010540930336821288568939245671295329805788619853260929088768970974753713440955635015544321295340552066139908486899519500556840753464464095004131718439224779153037130146911898479419667678596067838235848708338315416403907331853859344164891733533328676902860048609043557449322421884826069006112831900576182901295762824293235489553624977536833201424134939378283243664898494090211709104210065492669255293676421912428961379165264391337184435297092460055469929143581584596196292943270640605987739065753754587808737854391315581307618385854575244118797968341629791103388791482041200526486592569504793753868281502468193920099260003966699586825863775908096239527894810062850092935084015826656243705653206449768565924942456045872279805206030463143897863839839727587728467525495497848233350944632285953437255391282049297629239105838714579774790914496310225765945236296506744597628154723781937326716052295894588249011408140553176037453714750345564531587390868603783078774501252437857464835585196988559207891937930186738036036799952959871538659169778442870250896567319577535016079394069997514925934675338685260187299052732280391795398149507179330325763228407733434141033657366282594553700510264987208550887104021610695929547456343742229120837390985241321840446521195154401155808447863428801965128741438529867965186112885289763716576954438592502006368312789152627293578302297465974659371808493508350194056116885406772850037922691341947837607776750720525724352363240805390619554929843837712195084517891108674820038141515482009400523623715585988525993712896178509633627783764752142497311308287652798556038425491430168116823165332818489505438902791161734740296939214698183208776602868600563003059210888509043305825703643765861185107968355770546539600784398877356122364662350280944728712641554659881613090969402786841564386039189880099973811035793097529552603356294232395768487687112877219743200659529948851069662084424616763949130174563439304087197616027023686537452595917588527537665157809337961094835447116059329641512884739869385229713535583588991255796175937987906904579847719140692072709222489101611205800632776849238028436068280784423392053601965162817187331553900456218489233326439591781432758256285442017316634663349242189638146073788927348430219608454981009015815593313127972654962321748097142166505033250940750703226456744599690090724718911643263457154501346424057791105712196260030059142678370472709416341108515507488637149747546797569852085553984243325633893184210115746301245703216823853476171269378323509468927212656735875774551751014789428156158489284105580966413726168105360697433877862280701602685747910054331124927839478845958913592372317094564570652244291310895763798219639837818823704223313211244311809170101900274063292287753439365422842028792808183183545336051904806905111225871882633250153819306116975622847304300924500842042323399157037969221453878139642008271775981595050439304430336915179355829765648138921338147389981554885246057761222542890710802127675429556614684927029743084922446970933568909537231577718468966165379028818270754269482522172256170221529062318294950643359613732196827225077292820277577605882759454186593714096540099754479278797883963458034537331862532759334841858607027856845780631977315967681319684860582977307193111927020037823934860214124607550343196168660103670562890124116606419733450530089489174306391282768883436028158109793366876872976996204000965538784787929332516047274023264313603869712816529868212156874968526344720515630064457114009426757870665815382703325341174128907362820634671652574845688350089096446244828392857224427498139262596170202173741729156365386613497164416006655712742462420881405017411583315479851798251679429304385053328360421070297300763761244069196292749508215959477434344603839027554156773451512403346371346534419687227933115649342740296272415611449450617755051784663391704016582015773081710921482763715742539071855755266627505133664504156119388354947254958250864677257313955137711126633086324539060375560459799478794238420813050500818069014121459012388670003581477483720273530625756904005123126827897090407646704523472158737369032245370044931508389332481927083609913160619487990833092477490398859078291353728518669787895877989883710312725951549608317359484217684935338709753592812868550047440288260831546142076112765109128809700924519231076417318296225066728693849509369391962019612463502934957915114159389422934104196356883392779785999460352763551452596699609703942139309769256685105064511530388562509817692935305374525417279051277273473264296361947648803803694171507049524553263576144879903255658986895838379455723840154557447505931047546245892106867358513862161708168669484796396091388847471376864341883727895150720216066620499352371533089230764744177696055838580641324545352164948915868672118066003280640216557918286650215870218763822009593287065958481827560575209893146981438588466714719289070346473398202946534945109509954803310319401755925873538420227951845700773686476798466255133481335529528668326264985084664907130526714512061992170433154789664383695341072301972286073167045485050314030282264456122100404516020342039689629387953955236288661302608858799205724176068522402831005312121271252672547686543052532883178461942260395286902258104789075528354465691271534304534974035262403888790227955158961344541100299731000104453256503998498996915767253302094822973462399843403919576263486344293428132236320272355340634414049988014582509029373611150684737585988837750167867877676661650103124255366278501924308860393846931803134643619601974167516788983487187346223631392464190075983260340297612900810653186693307138569194031543631971353662609643084843547335950184744501428652815001190066689597028742606247610500356830039769413835581246772788783036739442020149017805103258371712020355047487513221903021491007800543762085850758242245770255143847538587885810681736155727175311249952300911124693886765148646671164648173380598124413415930720382276208274932724901384443729506864884772200039444437935547975128171175458898291127268148952809296020806664024006066332717040300942700581340647002089510994514986677913323453872256161022883502054480163137529094549676718866606644694780816338534851384517481749697548280717934646946933936372071109854503488048679348500810372353850963476550645900677243202206322983666248652566561844310554903824430740699637012916239680705483892100831723816148502729648428303373120041700711826940296403280880251064753382290222277307285121667796540724048016829352218551630849815823892153218875686110679687105704457170611181033370996365221789987112401014344784252734709095655644961956759799385222081764492207117637132735895407730187839847162084461535168109260011154197161469120717350258921365556607068339003857620875771214814576619322008810398195454424930101625269738102525269521838422753306442033455596048020976293556657951709422921459518385014031132051684314554877729388629800128390901023747471054572856121381161685919825281894017308857360282923036017175054322134872265075382363151846321431851021310592795051399751971929789037373160947381313818853403421348618379257299653682839929987528023806327700416492318426847224219689594941084261489310693752043948395799799186181580672202507670150890526667988712393222871255041688290223993333176875441761411690645525818730668122235340559872984270262105822463086322675097538782246752753083715727779672798547678599847329914160700997921023519525496042569301714444967593383813885302031517613389493207073670716114674511135339603225474150695975011901594777647316821323881045255054179953636927748814792077346887188622977079126552569489738052829159733767696270904219360476860709159910038080167942531640727659083857112835618826004074482981413260849140401860875167419970246508132823078340295443040403151041005083130606718655313749083192240085316542382600343944546914462537620022259852469945560802247950906570861260208013842212788705763455403986112062183686016557709500655772879865618524102458586472307994062245808209471366665145118230068319531971044969632673692584186389197151931942050504920829585996856186318361970681765341111858004677929431747074478067632200372585942002729899340924933556297356550473305819319342165976217993139752061393923104006192629171783085852840850606129145802723350872768695535269487480328797742067151505267095548938265378922274207206676178326190848471168599550019680280837335060638909585254481093697402854240659692908931840394501880525491477253544417199062909935193184956996108419625937372109544292821580491895403558180131279955173224833339140623971091471176533183630674878853715453085372448249371208810462584005685616280065349165044947615677864729843113747065287496240832214334759744503015973555332972007140689868886645514443030061789007285648490101729591027076232919998515316071544458508441455812906318619996512425838438038414845634603445212302581066842677222741313274104881206413876008117761212387492157272260861832661613646478503819564893694863450843185950726321636046677553434780419273870167975070870134621312983082310667368298057093164614156358506658019856309767323089767369303224463404290305412116519737204113917278077953403397903621601487097074413750937520814376752369327844563310756585808552015863072349280489538003953784479858430059939877761443894736925164542001145248169159784950390963180343010673416897382072913561300515106651271437488302464663889569855615167903930511231089971052968755618870173985844695776186266735964860587544727015514651539295634500653241750086115559051004220855753526707942799916259350050369400560919398552086452496991703796997772402594768378418276551237225632269636463192563346550646499892308584768197433259286445810278154420045294658079998409121355873512064889804007690450999905370974370920628767839184888917439094515565262768720029763315715910897257160463128733738548695196314659989347172040010773825020753575515305821619639313994193153720091543207417991966381220335381216269025246527977041669382787823234282037932677261264370948459855511048703168635816720169031519223615174422733180976592209179944749804652145124140886720890382974626272771992768534876747074901623145008403721955314229926208041004634407185755833943843652856698282269639396226018136068199123606794013772099696915085318001525824679805089144322924955246235550699574724813794146817110378555356141294810859504574093644715510344041791304129409635708713363975839010719083941266832072126767577467688799050568687950118933910510154901914593793048914399325524530572506968595828209136503144146123341000051582696416309676601192514081871078224569093094140802922047276311071611184520407557132502606002958740645412509675078821263831062373920346877082689721541847162802475277372511066125789799965982440682117598204513780682018091583021331981815170820947734192156410862522186657814980220639241849911161872624915946925291251980179787607378263453880297319058295029558613796663421675072702669985921119407089240377780697940643935938876718416196835625519773655177992456990519030487647891621123126376647782365270632916661642761049318542010151010598844434688460195444509813172748209801991711950066852441428145584021081517840966524130020014726711825169998523320447101506929345190054569443409804117226452679134609475984405388086022493090528373644716856797137141298781707923767363764080269157584553866554625825940750967579855886096924555089660294075049116781483340483370717345268835767963901603461167566292986045314214666569158286787687795874566296188752697963704945918407157056903338063987672183370792896629714692272299697813897982948674930052252070819233597942379978153518932338697024049685603247521661353192634448181363149262518762624110145931099215399582934218243177554337460063675251685892908527712140836277903740442812953546760612866699418211493508550654034744639164636408855987636558046324127390257015202343673306929087580528967665486614688301275352979044846030573333998099277310064875452128588188470535999197786103755068885560896189926533217431128163896352412945185279090719742156632565977180006553190397326270774304766282920059112181840872304359439326121192392996096451001653085291940955061338568944272708708363957371840202430444272698184179199548523985198870826108632282755942595947098544565201334889515369003312294323467274362811229976962153774271813783768192005124870752812826880788013203411632651558503405496178157269493532741585032593155640410433724210795178621089954468300877234042793908235844366897955688680598104314216655008578527812854698475462499282488734770409475975226186271222208306263030842135210005152027070346243674164716492736603844745219898088019428170624475029379279944864122596840267539228515302122331896738047560508177411647045357967930884792485772516839788241738282155147730575447873604095478539728748071115796881726825709551880343480542763757448597576987336761915778561390509520039344723796068311492324034776653757266599880187876653422646637227923979966386550170124383188642536383393818678996491758176133985088747959837147477627444944385568886954262946724307873632784765607396925723937768257952799737931011807272171149428719827617563888468654012087209868413132915114537592918001618174321089874235602477853802678550794552238010934151374359583503672270456918555617140279040033846454057316614009520520601338100823241818463583655991673946825301550445492187254679360861522048299601123464882827746927059575179081215252949344705263436287912111004709233859177510601245757194111608459578779302084533676577179473264291824012172547674881508894413165340416857024460746697082215983345495521298581502301711520211105387461450710498981090961467273199322263488888619862091800896935282523063471501185900314602933555830503643223521787306851649181590579002462261188762444842057459362055229955574437606714372062236845783812786857085194979443108003612630135776457329854137485116066260101482042918500076114329325717932487821434436867739032678319962108341709120850083051649016387282493623947027839944802323182629108883357783587174873828878215457224251081967827768171093906331994038550552732412589675186575688547283919244429090338188061512353009723269781717645268792587455499840486349317290707306823795421475665663976304442376265228529110880048882713718112886483325258891545802625781722803006897708253173820745499355810036943145545312107307661980574717213051085502420456159953913243612721206450935306152348950609076952270769909232756625477072266698726995852195791177874745605315130590124155920485670569792264442516363181700933450995757249306739500638227921520751330055047780797776651652580981325437532271583386837686564190365797593470411469728066156382727275245207912937537710860351011181439473445286934896146611372306562521707719566751632579573016653848040861461057527585234898051273048184680688639550444125377611341625426738699987394241425140370786312553486365798236388381549356336167042873421042133042206731515733362397125364443236619508916615468945266575692746275528218455924850548762660675818602179709847244855611762915630706451950368674850072488287392352015729756044550175108114254768224628578229449873736643171332792953712950430284313984959233130516852373796508232728187452652359605575941254804262658099728739578838177759836646861464047832025124130814248591284624022734726446839143496592720642658128280034775830955889853938368779501566342089342853767885742727836058845428714532644956846125037242752255064579387459313367509092502978653888180701199277104066987488624736833527481555722004491919021475970373838208761761298679589415523143153844215301075392293026207476981958634049622919284717850921448712670858541688141776471717404527498168585912614949936951644814409639532416933523722141229726539842082352898654688091781037486943596428564435898498439853704503254278844047064161930531220207446527733920998948086291899402338445799053191816673229931399787413318700849895674280435349644832972966183877958557250352277850900620928816570696605317820972823068012755958060449699614519148713069774977814980232405025900140138388770668400801640232754585434845969455355005408274291169404191266093737887441597411067254184853236364917882060671752257927621093532093379008085245640075238307569295681292956023979333706688828920581923907094895869733315270522886802407261578510791770319599246561909165965590022773285177208495901409373276087041351063827848595567004883301260219580934786361875066848763020027647156854942563465815439220968184121681138595922516618400658917056877253443902397452261486342914797349349318831884527997078913270942721387120817165495671187911294572664635920775482990556696626880146221795905252298787912939293167566901491858449852899247782892536531628987064572381127775534312137488316044934106892208315888649150836073941558129430829342203351765944488632263153418277555349581447760626408472379322319874402288809509659090097801866261407273867302922056379502185403232163351124462532766199746037096706822417426568140527237945807801754145064630296854296405881870098183084695850113249469823489132539136864605758753727265646813071828910892066055714529808115556753972919517598203133828143809852719801586632823188747819476329876016164593580264466749956638233337795090279241028344886725512083847227770039812071049909658106362236698913543466098493100120473591665201169068450864866935634154996534724784437309866618698206413338754442601312679955499197116286767970227501706075136871707282158605337708098403168202921244334103885855360550492993569820509687867642411030296368252414541806004380405362642174383024186357014444962669596319736036831997068846762842815605514217984571562860048879517323119630372430093043999810047476035667749016062146375518112227342772862658595996843347260967833748592136308285589621563151449794139386888372260045436926529720986818518210255203241942744679726268504822210596927873198544860391952432423526727055641682481246381921954095494741622547405037271387185520534524711691631955613762809466547855723320234648043132272809167849443747490447845055739635504559255008027502837878873634640399442297776287285464384069482093886312821387284276919674093729304765274436115716703137284916814851068209100478431959458224077531315747181465934393421291957639756284441502111009879257838968810812099959282092025518965810154392116997171597507040930629552576027707728667199202862416254341183946945685782735053989425106601466383268253553392092399621972996408115302268356368671191539572489319939973835097220550023580136864364309384944858493216398222714780817531206707617651036530621532952364737231965435481548106384574096984049295687184736827517315294128875979742292169757820282694029835222581603113095228859100000602622101047943556173082530806179414386028190955168391782734430797901286845965682290783052558224945243743866229061797981704921646168693727366632456048206331084413473830754560751576619425003615148222154288685701968062934898506934268276260423126454384267918574693502076969444029001744494556383764929487252209286427547771217989025898848584437886858568931560156689285099565980836572838404598086867053703940561058163893029042928856702241784426550273901370826162410284218725708547821982711396930928182377454953437230376171066866553874601877311836187801114692410911815159443793559122039767408001510724323294159775799853206974547354145102004018969958967500448324162506378855432025414681060246807357963958709262197241337596549558226913226632094565774180930903712684972083961436591198627997203062805238759576138377840048695011035495969318110963664398630017644657417000119387613897998011076577355999032600500799391331162754286874536713142603552665309708428635592748031470271091474962057292041081613182990063283142577690020064169964718144709765441761224263068138646171295217254532895410276455941334642305111071105593761984031691923779482465385606614303276926448015940551259973480193901847670424499444239412490750319249590076630128691356274430516311625683014718786833208869377387751299542235052017661196683021973572389447254401178639242427458437493848262521958846474065626541845538658851125829583553076959768977406036219947575558094414407382747097560675675121400674393006982499269317092136501199899382395477353064791908187149280091036584812684559706728180889936176003771499509168516701565252826386691994178968498446268972835050492533939999100732131520465750567821884878754389866766198409925906145612846112609623812695305214954404172183796179346767504753133108945064049963659509096998402992044563109669234741388341816073585154430338998387836552223096240010079979119210887090865754959932285875184295956948857769085816132377935533843420827376780914678216766558834461960004098579189004670048421374938597513289579422826674589473058925921544030793774505152376000172461435375092295286485675200095487944049484989783783706656689308794455794618117351377402515759593877749773913184875504318177153263286150760879885267845982112183056920242410418882792526143552063864605969210105537608337058881016099452836606409497863403088534774426920312736157650318917867327202671677088069345270375864695620260688102321151517512676454269012388132200332691500516028688571327158713959529263762384217244093167015578665783218449345163903222258554020946391299701514337497417017483274044987129781321157284916513837930243182660935142793564507664608864583984459525696230162603995673225921629753096940628611085294538318772601644719765894337854749199875438171608407288424333658833916823732930217399308821647827814516805207171237408917251674071791432686214191332556493127805308945883387665010138526910307893692022998648218982927352412950888073364817816932900388308719823487178352067062646158390929422622464397781976489364593512705694965579621643617753449750755143858302061202470148219495027649773119639159125439194612155413034129465302327567966936469555875252068147016953419027640665604110162237582868408800942444830788233957601918488733998123020332630472092498279705055097110926232560905746056534833009478683808258941157749508111722966208802750730160984006205719382492705779819594933493170068235713179947973313786650885093525288182312456444694069914635192080136829532828333889927279059452986190981816666580670290033385258657753668018350779889031204790969138299906496898726328551775632342845744489224646034022294641616417891088386380895597573847024631470105430893810482983686798076280664645497046912517733033587619910638499396747419573883588466788981564308651660091353196272400391719982948345136690536268688425486614600460421358498065620401489367266505016617385939975181936286274193264628201380123420191514033179304216519730082056645917226948503227403571620393665807400411451080931362669666978185889873266961660004881519667421972543731646974386718880878657494814268087944755140464245211078595549524709115408294796089032640479983642214530367559264658686137724700087065757369927153573118046024602318168445226251620926951364698045750835814120422989798554858100729268414561869032042970676032778009341228182274312002921550809253172092509216276708648069598806793686873300183285323231480458757835056326497561189928464594850907936266926656600471543628909989074062484933463440660382477328802137916305331663306936419005673362075747446373757063888057521118070309849132976356599067682644420996665936463193149214008252927896673511559470283059404385375761732491992890076556619201522567940468230408673831746216321782592253183823216915112715820962525859954276809246625613031274147957124014020824006769674029727572238605321723737584030909145666021453441723809674381169522844297537970011441631140997043241308603425567643520019758668564726933656659268237267487893689491339972464598633041866420207527318977675747664801923923164845273957317348337037520156245270555160142229066104013053268396187001097630450357090741756790114154406849952046176656152074058263466219653197057676341086195029168224436103213854966804349937422546299979005727372952305486080462094463345441205250305764739207881246721874842458464701841667999424721931378893143890390504656438646845139859971050533743307150352947926418897783449353411537918791685800390229562033038331793632736849634633094452321028846629575680232626622836140309544495800884756881297825066467194036353236911600357520912469767264173922998180174296105578904060068390951974406300761715187752475588749314228629266472201210907370478579881889101843908160468116713747906534512283420786844849090501158841494558427145786533061804338318662234167294431446849640747091210922892571434904347710907656421090436795597987292193966085770930216706687242360777958373187131073796440747925875879273038009829158376441985352409901050192397023187568293677357583144399614370445527688737154132391581805158833086323196343080942060530268119967649735497370257353844648216729035369899359742513840678323114632289766362749647294313975162965413987855820856984786209474437383822524786162127288521233204461494707442697478434356833254807165630289716348612512525375595395398789536947571700078582749596669451266982326958384439006724473840814128925842744248415240766935547733932161945385584233501221984153971144167146558805613721089237025324328096019477554690900151551503955527513649259721433024169463636655359612608591233554803751264165415801900611616696200713038705701334910594749900147343366355408008308463744981865975346871808487584123976787490150117338879371489783172513787270314645821340985183745283816872610139577970124981779294802554726643391197063608435889944739503871712522147914447575471129423700574732079874927530157835393266008489665950047727809735838266817371553669896310276098869563160366800287835874631334938216168919642159103368903115435554185043765044637424949368021594613425020700574737871069505739947956874828548434702351717752109795810901482503074765429384382163269955647732030965062007732658587294229042262618832691947084826065851300564249084505449523286617131620407294596234372170045620543330941428391332071895961415163335631272777810665651986314573270475103676654311467883501941333705707701518669528390636207935002227732914972374776402755893024641859700192515461288639698872806995096382188210778389049376617216907992478429366572402528671061523086106928967791333068703663216497917840131827029773645578773644630230998677750918334306588007026855720473772560580596630138748006668526178958923941474549374333813130405008852017537899044648485441066274388611386704283760887676370865707161663609312882184585587311398570377159418552153371977232411402187083178456125844014337788487227117709097732493084866421282107380843510370885165164747277835269029658641063941492460828733116944411222908105502429592695675022523466912270268368172945441665511475623537974323444972157228055367143839437674207161714033156768737430875090544055097356506600760563072030586511954243393477217443375240350760278245855421941501129484492756104535999066943981930988230267310983118240556073498482789156572017113542481193682235823419356904350311218706439349697535016174342739933398882914016092612904076417811126389355852930498566882880744012152342926441985567103104785128274116971733062502319601944605840322681845583774870533135540361344559765572768419785083385822232012088629120473732659691455953042625276069336819792887712466251702625671030768331916369641798782916543089877184599921162318378796438060291243981529515098252434385280763935122202253158615149423005129543713127084194412182181243064202369303694788875128019555965638542390453085266714593270832254395415510475002294007310243975741589037269528067070566106858324104365228574838183790230484864842286060973304607949222024674207376944533876389026066545389126046095100151188413730550848708139813657096488960038894082605200996224882926246920559406846572165915535263845636104599793010079388365733341547588632091818342747454836765778915223567527309119692875845869369344371350296569804248109959163383239353859041716565162493596322726564959522884973207047172186912131509506022313072980994836219090779102657065744728722635871118337277795188161262786329055813251762344035922237788992042835173988949494565538331185386190506792168947040350251621296865575121630631502040307092557819384130945751731309490356176161241035983528872210313313039753705400421795970270525364370361181653102973919261545570120409525925664104620122881760925849999143459834715336835306037507523722969354247832511031003368554996636042514713947552793224002250488600570790533336633895242123892086347624999305242653771402059774041571865575974313320503888637801563170618726105620082629995278525565768766914667873296906207096379110864173165235508238939033551158380955470800875489830459664481435447739064300269202433040868442025950308765998085735642044495148483568043022174557403580105393253103217198853381875856327888197322230212787829804542316746327866151111520925108010514535386589457249966227842016997214040786663686865506450764403237634415751499796331322037233863029534055715684439429419812268944591162225207213351768308220116874049439060283637172780188773678943105271360359601500664167039950277514078017415625404945627618231418894423082414253659382507793221055966602387790301177797445983796223861391113282045601689210182648101984316709677394181007884541128134031856501984316071305452635680454141322144654115853208729085756997297508113082800833332253530074792756408927656262965657136101754999236037282130242811662042462006796335222542426566309398134287961389021062542860971894440579914898044383571845665991828331688451300614338415462470556229726031355070150830904082265562354820692536605175131083653796349063178594133509814337140023548389483029054335097495240637229352604423620412602632679961512218918162814248244555354918278105301031856467989933562435317581838833396516920756311691730752255477209901640960289563475992994107505317052959163834825074179512168885828227225512835966130893458409302223101007798334875376641595462176907497960318241618273341101634603521643403336213712614009403378346168044017522137058445000151891303931871017434070009132245375506067175979693685171324195150284906993637462450005218076676135056086779009306297920281678661000371579762931917378780563535303326670586049124112130558322660041024838573611243943347221416436763151516330825390107887295012415344308746969876498895008451099476238935877436154226173916566335466913509679393286375126883764013893424521701582460525857358648933827179654828164842006346524780355026649897000246511799156874434864134965450613015108633985298587679096025035820095605662926410104723160450577550032698421229896144797041805718702142612910924226925487775829098439276697896261967961106014560433483780421891756290116265591431938581452281443903406393998850758371050255015899469917280705851435654890045700459271381862792385180495775360126919260350603225939215726926685514968736281091265077186663609750546052836157969575603133342113217023045032945219615325067413525786825215993757675170226875865106604882321605162009891229241072604498178617851108820178055817081120549884518247487901294076744841287081355982749901056972193269738534926371141238672059294687835873754348312750709758982792722450025501133324532139615025028131165962804141957515033320551290667017372596583136995118858687939819132213696797087920965099561331174444646737664438296459583278982883729686030869542894390001593556738963681851262286015734085683151827645566366436778614144417643186050364149954163036502142207728252602378584457275395161775105380091653469271565467687690377170708328718221106952792171128041649421843981214836108661138299862739965519008059523696507857543814471882484386617940576184295327677596395490292951297636981277434750242101972874890888446754321255763759182583505944208003023553052790587759471884268439070598109706336167505639424994771132039339689977489293274052197412915809840855670257904600996722693552279407247191569612193341849000737661896975328597765584700686245621422946617304709105502252733508025374165022274427783170625076455229857534286817827791613568858819814030147326085639537674309608700944714992789945936258021085055655699381052165203290306385392105409687290868304294116912821565600168089662452401485530139241658165292312649631848960718390215774983263104208390295557668348837954556385992034441152020681480789526717020782670746124781303165123541000127296035931809943726757320110934964676547537382485302860070545342989424905854545111931379613348533773375188317549489130342783552018056743556378292614908772404656097123599015381913201231709475822514400186113553597060169210310516049091159875258422260610880174311816795031101291958567860523962452945901813624650212707557990572862851399339919873476584843353294104535190842591094593869730009876683836099613345393538498649109391640333939967148258812050451137703193036222405602714945288600533771905886556358822252448429488976065639555104569888294194725105520340685181614934295103788600455666211939764322425751109023501891249731351098161480761887793938357278559037224161102781944967141761313040742044468832227506164691300863525976566516891927017506166259755733396001211983640476291531654440943984513083355561723059235527316803431261016923497559606081688545518019440008315612727150403607484362671839319149089417083907523630965860000487552375074093493279601433752227045141613066410482574808880539662664740305331082391853259015909700374939624006068459592049406402954671291951388742231454099134307480701771056388925727244290740119835221092235369327501380250430044420292272857578493157199182863017657821433425649310768608160046069813089126998415609186253732045304945924613893591632646634610688783806006349838651228396548268264840251091115149029239972171851822561229850192785450741359458310806524290574381389464982504433404246975056807891161505417950759584260220042413440571774529522453940040810186962073200020697458166838827228487016181300894776770984381455137622383577153856412465880657745187520457283291506814124596864144206616379029750453524023661961614601257656840263483961571612660236660131075881808739400755462339100807737384171455869063177256791094835750616538169877427788986489514133722476083697404799330992174570833014372640388258435726038619036773724578888420961159795157429808847039143618902427520941966425591621130885496874730050687414422614620195023901167191622808890697054450846985377685143499753251520331185853758803403097517436520355448758964785054118742655477818544986208338345022230326790060178629907387400207743069519627685576730909135728441959872012253474467437146745244376202828676909204737174895049392970760366214258696777427123771533248300216071672488341040527076458596689465208709041091025351235168967842379407940615548792928428785962961806125089775244821054198827168806209916632514238211509860461265630972213907501314898040139638472096012060718027088347643178284710438123114773185079444198862631461501286694625711467186430793792671335875855145590166625324054861910838470585394576467357001532323301527946766442927532890466037158705135466073915475409138484884004604227654581885616083460033562598483652709193023375438057756460256824807970632813973312123174841750888988968719344976612044231765554522739304727662975748602948774835939602545692747404379009118777529021261040472768715162158781266917159749164539474730094924641915461306308359503379250057531698373881249700378707016541750520325868713463514442307901300813884086566188638726981180598902249072919516693039720920531897128220564644623909453570563645383960490843667537951773750307605369810058180624221697967548822282097408751324579800960439311274486019499719618065792278118676203861927173859967220163501214883840482187147759568794941454396583361034932478736697908846211743034425703757958183886072096493579901688734490607272094691544995878816823791122773574823470042691086748874000168219306159673271296340265808285959258040659824655843068134798543229318629336468285408985385860137074930627511388972307413724176667024366516554422852207805027537120881440840093904803136175239025387697862243708149910210730430865468131368633224533844342508206686871619920804140764500022557861378050041341089646228567242022991032670337738054412826233004006530289775708815261368679027731090218663399118046958597039132387381901092260482095440381963091718480251131310303682585505142548473910906367502242391353347342962154183381121751763905153409754260588216718524569259673913616561385254658958957649708859867679116350165757365942133930290325732571592616360257877392193144389241772157638512140873231389255459189285072409005121283504684276923852401463247984702554572353223529993094149764078428513553565843953816461438091175069138984573493821155776294022082629485448168417527928590598844661347335254895865207338334062608573706101774591969971942599211890589048928258782335939020491775605452090262074139681476419138042979864028029967982978424210722484585076292401128951709891229286229846259038768267256060034156470326189953315002857998009701788744997321790291405861873970817212005470956140414685822114861373262206254676573091637731532492016235163230549041251120294709104211784896392180796485886434956751832210968084924267345429799343220315663782885613889013612681122420977510626818219000314034724027788646357777061470986758729936074377769089759347438285615520672190270352177432878594584220148291901131362314905081837129990698265687106013954081766929554341000326308109105714370867982738581860366988499318152404721968087305132255719577656727025040332730344657992242663104850214248967397281951313014569356796432961541324591835749431844449514730591158880995462786842626700380462200237147029702684402131960594885254303087896375522937796562403754243295211090977511190813612101397927755589247034525314385046412394844517534763335668854572244115283729144701484863677815201495479624602727334514866213056613855685965056194759895905488067444602028175763776302152265277887387231767393195716331860710882288766758500395166881150000390088495836447424649842037683379565514544996236110990176006322394307867550889041030512407598537472445321390790170462173696863137815211924250362023713348947540905005102638025367815883097446483324668903082197578320463646356209984129250197622675134030778623943301396708463111347698522978168237098435279410188922160723407572185430943252195996377989714086753895742774437977714879803218738310987810562985897367004424972332859552139943369370040200130886161259459501763615255713494584327220516191297725031394483635121457587582067552450741944884368587941970198521513551398263188840692686176428699535420141465034523403937645166060007398018948499372451022854727186714999431028459796367420182572900388557735075082692028540593776107548667544547664655556698447341137458454476235677359945096465451489159375065429503681471159573810634423697332482284087927511827361747633330004992524465239843464099938016973060618651307532685297080774783180934792164900918504346756881993796608704034629964649821865499862336706962118170551979200320932230951608327605996830446144806162941835521360074032933673701870513307186785241618788055062233236742068258098778183971528503203352621957281674242794052558295903928384768655139007902959462615307237848330137594841334428066028277685662895551737447566779139510656122359417337807543429540421518599860637108939332212651597572470500572847215709343095572331366395890315439784807471959182141196687862007885930003904175170491940203253251310432664306301166077991270599789707760486007536218292811576308677936777742181916792661767264295765556069111362548976045448589189598563523418724101911986199057676512929917817315404239380360929626578695280411516418982083410932327728296362164443115203624944480078648755128575323232417180510459083005716510734292742506540918260313411162181394490998596971786979326611567059986137061197971578250603040082442450550944569148554530785596512974800000427059526505095931878639200451988038693805555466612964928139422850244046264265941026800706003695299735199739652627321568704566541654900467456995417825651067947070838313342459276645431763195178311817277721945871941505750378326159255502159824704629799305860401131154799743200358722997703424428659074983284074485616640095591898387048371480936030732420052142494472567887125367754575229258431261262412150111743768005440560429897357768733877465158163458018236208801508036267148964577934125726666307781025008755646972615845892047465786355500559804094259122457302380311750032318608863314744945540407007171273346419675290184170610410328510747924461416401917748013315356289945022283294743801876008165101801907990544920848928581690012458987919912363464570304368484511596765335728113364546889120497524256919808215892054423600564122918656143373536195064076204118766610440993721813519569015305219336684784104846955116712515034271991547931389561362817391607068613558635543097588032219006755050227031822704494774772809489803909943530210790794327688332231501790338073891143227058920692443442542813559606147735246998971364667624182343809195932211372509937214309390703031213093020072203551325227071470630619239211467037032852436940290400143361229029585346728205341307357324076001834280673435014095630461722442759973770497876839864173965903251134205095930706232942204216605470822863743823685553707813307240577467457444796339428412670302170600528693613271165590264338167224965396388021285699647610203419857862055869645384322720581327559589988812730287101989494884472214706685729702668574926869685211005670755237425977255218439899519530183338620516135673202039734092317927195880158698814493380068360787461076689982471307576580868821465406598903966635213001981643043852996656506658144014515733318193237912663523935006838936726855948745645834985741180880984464857096560118588476075376100793744182008560230429054265621541732926349148979012115710948232003107993818259506733815812173091303530579014008438506289560517778301518063980184961225515606324979999849921159839712465995706446386596350240510399001444536486104307723291995437667745016048074669367662683754703023830300941843148773452026642912784649474803597564300265056785958814598606408783179267706590727193898640202492296716818489762590615289006824805819920757359312213484877273365855816725830127294806905293941784647276791374356149079097018826291579391110672394750696681257540690912776081259302356396227500506606036471532331429642442714211768917640296242868905321573242870712522706018572129886325157469656449949112802553313087748087527064538800346594182140897566686571177454093572013047986823485856246629011404520999045590388853108981857176164482226625820329974796672995414340534216847900904967553510244759917680404856926675275229960806831279842716944737740438981438322122809728842913914081862904566444736516501111184354003570856664447558971171781184211291139852159858906241415495203589437743522233808015069291687428929777844294432324570777492668854369125349174316288923295800120285074661413014694573508845049136267388626944143067729054283496166122581439135086642619548734814496623635950745275400687659373192000574151054043448314890130307844705279473318936690855784688929266199712338779463780181824926218388840878708218053626617526302508794425557753193753819641494134718014410091795843580258908016196973186011172177988359347041501170451324245639723745000133809073329330268210310876452793410935843505866460621232175918326865316918365552844525908547824854795233948144775619518488265541552245526273092602984039151084292885675297033137506782389922359780823216683798665589438875901940018186423294242709288554046689472577816456060278814240295306444833702723719144540331607448165670186876426999928277181189092581716236557189284267393042440336177734742850197748646903259791774274819585264668386144431953771473639065980400797445909572607450208442496684975345693295129176830282739582355776638281341477753293411933153873094693391362238711411214164256045162592992927338265665608184127579967739476255851486884244137836647816798093950135356935068140238893577178358953815249846200075460875675568818663236679638266626842461162260461322484129230502119248853748069625392154206979051752746430911945178411559798901104482905190620783981550715839593216765211583869599861905401960001487324898320956129457377663761595823082272290781868549493303385240139929616007833588010974445300898389611679965079930308728664114157163839259943395976139753901617044464027719012881243846428784689028206728128904098957254835286860568181661573197133901111638819727155960245390803126126301926380308252752479430860156097195952494057052708707050699208292527043070068230037524240282179438726358480111351695754200872286126416411001787425154212600782101108823016704290306747086762084596778102245354343258366305671696171343199236232311748534103216180708426953900721723103651761123901469108982846214143496166233032690927082128519565398597583750774675831909099170998059467907987297234100412424029957292950254974992619511146074131830861887969608821662773888285328384299074641825515225435494310061380219428864917733068060142361319554088975683810526004907662556870367919911288538409269351433723295422369403207137489186156983547840903517801752129655094351057098991743951895205333677422668495071378418462330802036935184094554039177813902994421748559257452572794827395533087106161328654069463357104326801666742806845693285244659920145670300473411348469132065077912626154190661889787092804129115815311730758125795528310707182769971032233441311649451799194743741608140605817343153207865872629815870151295227901848942190592414919074672589034095610090580352981996962358049278837545492917048314818876924295511684482978735506936742111058574830634747482992267332795951267399724656081117274030239857928620995291372412534292026519131739602470774473009829938959098860212357212810916948748359812827334574134400525058889762126761730040091300169529711066403194439937898893695138908712222085646535777322840989411718998064011388973639806296960011374540922440027404169110365138267489263313323021203099849834569718704476470438596626885049984206705239335552093424615042727400503428557884948323792821243216242966226029278254205554446442180510166032710180644779072525646727385405906428780930207304221369689370168560209901133817797459602749915314291608466636590052182584722095668802135954871448378334621832298448792110037763093437098822818349091963247459834816287922028511512368757885551820066588068415394631813345134702678581732329227044134327597472998181888228447782476301123756163990487697779068187389132896461389025864780434568359269972611047108059814564115999591277514244255696747707692258828480429540327328450693678731107096513714706158858646586910646706178654034776270009181394629493562090650774153934325676522666389924977387388659542066086507296169078345201632319389124483713003544463194565845672061898172534252306637514233945436705195100958591222945871355265805341268322404924194953163193255545984224983029059997262340435420164424716540669432971899042042389430077749188412054408347806753865704263348996786421559062432371040169349881941541718421128220078540447075195220139147510074855165129128375216533638864809573654342299242816651021854932227065889263071711437744637883316318844720561855847384280702284376921002832710861604537523512382133526965088631127947974876918355024736128273447302961234173735027894849154069539380706848795102272347165946403179396610683805384148875849421425041206797413079837525627096333747651259333321557542902853528090524663708442073416310427795457239067832550403184277203097795778025184632456285944688103241037657891531992424859854500183198705693992162766199750594802993382935369175121254713897970591274527200927486990168035797123484415883897536685859951026675451630034447072587151289415040458577520314466417544453681088766668110561390131794893911805031962409451142963973689974800561161018065789436961846558327158909174778546246616050966812297872102142433001895459873042743088282835718719848124882558430294436431498456149149167589738875519631202826585377914443221562667055454555385376127013708156966727717021282606133388887159314261730229574031081198507849300585651280098404865104931050918855499572350824169781715963878977999924395910742866887524140725044218074061656072046795484827152349509543735459093291121159643255453789843004074401512472545521880428435254974275839817557321177323541509893019562341944392487865994597810683410800085046697871575320165851582491743454137730734869622715093635210078306508439572541438047870315750558242314427000432265383381358237263411990982930672600636182744587194792375539534274210419428666515274945509278474839108913823345767328369554258439113983112993122826167817553880458767939242820343878922869299970242929291413314223441088107004446269181007635101008944154748488366472619228351157074131695329353890200598794913281413850853115324359919489073668817945050935215082090432982203970464530644034812626420185135003220630880882444785428825514207380532932187883054332369916694985998804045062156709782100098888835832385237795046878432509731413135561274001727216984593147204571325472269672071025003515049035192648268375593937685891081933293858100211473045096869243328436037985531346646937012162072837409421442909610807242542233373264548577305725738668258254418694261220254253127244424850731298183213762428244891417842727428988006330453902250715413604334558936095855232821387724936394601122282934135999007822983877130113975234963063317401607441994550030854861330013081478365500479705860943549012414856273421925501984816064594652490743381196337078819949770361532988302448439867309651971911530764357929487008173767283378963694080653011661215055527360247739030859038936631672616180334028925823025723275660454760513594943655558237850659659534064705131252228595213346242484157262243372413382970103236101655408396813708593712987187174207403907121066477069910866483974693005508736801375022091240236843662816737780345451503628774962067238531454691525086221171377476481088368611849907540074792198199224576185952844505668579629445381263121806541906078376786195799422351663709468484197924483071716552047952628738121764934355646963976592862187297238969512854967689349048881410515028716009636867203920968346086466254289112705543033529855434360649924019393350216986480049388132228290455913242998565583799325873711555193438702493440169167892915803932420591614437982759605686813462758808412857819972439509087122708066619950855052670935272816125539549932085924066986457830422323744992483977307319352232052097771220358812371527758472013025623622254916998522840074722981260591556600276368034879473289293796087125091946099855766584595660578999805704554234765828851576569502370991510111978494073222457079191941867988773394739187476260996509572376961720251929793739473794961103375518304565342589421873112323208106777990101521418631119249640061209007327247209509610564769718796441244772503235037860843266876938440011259441735447793690450959314603641080434656405919978560394940467138245670568360086286555451516112451158906477824531237850750861828311912835965738084420152074174524404579771602491623219750364340120233461767386686641285790722983873541995982728639869807855446637131550570840126045203242277753734240573700193934591701345443423694548695686278587987515624879928026715008039731629197531383605890881347497106198500670647348842935767736123056985742650901843547725110348234941441640251970609697093332875566398726713975061241903539452116860573433359034214172123656817926856148701012831082651183117124510776547373192466007971282620356614878172129520732544107868839663933816810438534779125007085449118857065129019642226860249227012212309164127380884794782833502557899532204913774973280955287130702741469987465222008799333961969821908879829815551260424717932942093922373280373781360824089083003620689209094688205616077900419291178095238719643197404671233347258533038867966149483358693620306192195477600139988208455782849125895684045753081653041399593753576793464008028593021568949905195657585858007175411474818415607956869606235685923081442927588312425565803415650856149199430679881383936599550409145204927472956349642416076912218115928262779016871249422558697801527160129493437410502031918135573953768970295270113523735848929705089624764498892001545889676637375363349986051061533774222189119315125840983406709844691451402947831849426568597189175140698231649916155143008871627093586946486098100839887154835581423360688077467020768342967162136914602314317946435163731839295249165229727627686734421190396898762632079006474301840611253396640528090950729914805292202347421028898629870418586800176180870735001730089936733589092037630364710654483069772375483912453998946198677301585018994801864581376467275639776030558894614031888583659651213858468302695531542428293422663415070177076980896997706148942751878383221627498331193812131624068580478898487315582922845493360587716641210907863846722485181758842701449049004742400366158374404635594034613179049667769580467080156376498940734668935605575578787985411837506665405560693855566015659801611643278177138716960329269255018703297155969858448976097538063716408576147760736779873357649977555032246556211287801045130589488556390501959608847721025636605136383332415365436766124947480644152277374988470945435939954411651846940007164174064527737891857438693596457430213079448530755288153149807870869175492760274314051598482718200062320281096553505515596329959240698135109902391065026294106962259045023266594893355651960659171896696573793174879535307571036338625248604837250147250920564799490510015304475133633531739931071750208667252233385744017505801497214502372613979951472652438148360022866823441464920357246579978805509669876176362545603576587063555130785885348735400780109517090098791278686039767958245479403432597695734989336985947321771926302362667071755249317912191696382064586207594654514813833519601569701854719150969329924614054001430205104428833214811878850017745151411277738804148570638266586965067178705753183886627337986310763305269510955817370510195439168421106180705726291760351730751084539856953491470263949826376051918946845946519342635872542481840318697337294486095220258901575667885064506159022236201458175782117086667158075964036601093141113787723317071939461730549722900737216168246050884282044648217041599409397270702511646728440304802705235680833990112851824472459279439946569779180416494174331085575607876887492785259104963657038614264662991840176094508051173562444823858594688262424832920686688165012415345850085008154235547454504182688982176131790526394363831060428577025315570370852158146627079471829932250216454807353177631148863684266746261103258626502128932835325205980759292189705963564373270216333943659782224875595166569751030901526679720540162520144541466623312896510900136289168214680693704080819946183083792999957743790261456058090644165735004141132065221851550883516924475893378093622746784485239014838377199561345880458525724342827497157863293615888285178278470438134289505273687582662318962877408699083511940922305485993465320846377724855385353134920367018280362919657711285983632730992639094834018036823187773630275873935730988913478380774460406507705798742838597218531315442305354368353159114951751131006525197872293540756506933200115877263290216308566927845041375803814256021629762306584880121372533003615956108231300167168667705732883860767400221689531729582130262223369754166916886849438314183851697269166362908866971286821101647095672603335158523123792018368806077429895912805579241102766367857338694386552420390542091539422416533137109226504105627370423410317845471849585920447346054189336997981143999087184630368877680721478797617099156329345549267410659640052979458224225703004757750368481404149280167024009357754166063209656174722161613959588581997442189918070102790392849646457657045091797279865428363694566350242636726036804667786598723270093220296455052566456026831627942943757110129849909222144622766281762012130455630342817931723720433338579742580528782211087368407971146319314272469293115347891354121661557853899497087068578001093238952799197940712900842553483588252115128593863792234918475189529583700567788138968534504912341308665064775645888445413855589532318055946159441718634421686390320145691024356645434816889804178131355911329069058808548297830168545038561405214084460035372803956043070689873257260080003637802037839451904831609790206165335981811908193236298362181142980000039814153688142492185645327060098678397742774344152104861571024204444221117713818868798897462173424511747801065591166525357387360504332217140738454939010107398734281778767260556818486789912174532469635010859738849013499863888055526826457936372013201540560199507390453104615421122070198614595992073626203690252504054997212751258259843512718297629614317480332065436448274377327402809155933148875253523250402263552763559539038248121099749693236096037844707377198000037039238609479544269630282487711432961121612912452785742975551853495346142158455686138860719420502590045593390185304187608060501871037235144698604827988369626483537743296139660805733694814010362746435524979261987376576995085665904487103872895809129029970334119643994689884828402189936013457396289183048151253300661547127459295911582084352296688747420654652456354259574354389755198738362392180754028425241685125635542420686359476333019675600396112495329684220292245671081833707191742001800522815247220460945660959860172332941386596834049494846685793473967230025365167843841543929543557976098649402854664323852001673829759996590002353517351608429656481381475536507401360280785553799559954174824116410000312614164894138662326327809798428181912724807361193410267855521594074882889427245973286737580604297035752295431036297115732897386890065775939335913583361935690861425814445541470415923703142883381643209245031603960611880413592326907161364796445159578838574393602383182470057513372283695156707743110570649443707477371359502160641103960179740691242511377492814587623125672386075413620785510919514740351581434459287618003769525014907903810410304054581932450290125346606441356988334112454799682433806150065834219622584538528300277140409546726807707395791061218233686061063450837935900938034871915168980801257667789185558277505217238767919310320000534435207590911008133179398955123265441707386759220352926376073768708997967367096892549178079637570316997470385485083095049887500410466117066542017479361886233447359536052683472429403163053876797704621676506763335600220760631387607021679518644453693585894035787389559097956666698628620286439585958948128029468192733185657310558223824101972248556079643485836034819172397219343917390745646276316090898762235956525926595880449525321450569697176072597983233232911284863199698453108358606428988313699308099840905899633986829598868938422718387824069740716332416606704376947740256476256324583131883608823239757245509193689416873439870351396896833476270260357816914346438663563360883086835714050428480957859133486510076091603186281611755412462041176590880791299661272434897278156726961421565562402251276216172181321142015633921820987801094677663278935754548957841770037032765903711654628474826243483976483762887432616261001953435112015943199748117954214744676992981942462807183651996459317885423060156093872304190299203181304586274183545511981773943436898128229104542076864795492629054865340210612606849048080031006051329352724056087338648219098274191764714806102047834410985091902653908223634345617697210631739004987634267755378234092695898840325142306017745847745199669678408264855278021622014466455640012446296622464285310720305008946455922508390007162580860990133016926015820454776841156917302595172327858062678002835917788800683622642657182797010942776073737690183977988454564750254255188883441328065901111569807552365932453534718397443738517497343023390616863662533969521402818604108771198917559297737205634366928827821098333206936673343778846296138702686521841754840692028050024305823150446355621330868646928873564777934307828008985156776421279894129926203239807332783947168493364767174067271968935430999238336020888042070285049263986012041601470740688682302300127988546659222401131835498737613571580905047027113757588930436684438742602543800821399162640226303836174044983729851495015867490990267360240578391487793980550167631769287911046333530189901912851333781747720357269345505232635760018844468814132919757484371972835105344824706917465270635971883326263214640526226381314272518683780071699290647488895669751426669736487018769966032186603147060783018126826354985422380135404125919721717098737776604787149740917435523010322683024981750639779086138178864841368256361115547538600782935400700138985882020183971218666303256294879146331817763238098875795636337809120925805675964296886947090626406350092177345768434572611054744050419602091406472753763615599668214935301439038422737715331067959668586884247471629833094809369241516684559263853735919346439069900442796410798879172396977351412423592511554127011264997721491272918771510785945841633096760762174863508660136230545089386485893902421659079228559622883392144458925711220551618462429096779956849297273686655704314233374573536490274294806256214444966147268060457537054635051033842390882402138708379841808606320333398018376922909244386675763522424979612403165887491222943930978641105504196347243333824071087502212631616929041642585896834043072054231999597685488861313176230962456452542309481567555782158859518236747901465765415200084295297958581267575904047144122265371010459148569688512930229441599586179706674706672931109690496521435449559717264648658100727339105187217175643720299694039130309850724192728844057878498467919602624095999120320094034621107734960262404900555540207827016578868797327444376337801509072317348947532899087828314828474441619083972130973667771522201448064794883171114309024983296721199938249015566439683276050651048129895384997053089473229053141094147796966987024919123145075149516857013782225428166896052840268697386896131142859485790714470635957754406399425988185866368217089178381483988442727809630238803123113534484855641503887505313131926494009904128704574142509530038273837746755285287510408316316947795341624972829878706260252689809586813857618252068081464608053255045398594241837034550226906556049991516801903289117852980804898851449595076901213872063003483652764112763736624955802626200443698198157799817888952121247622327344152940362368617152469413219684022824349731903235406537325496011351808760759213621996781585217007522470305677426789358977957214563695764976041481808442978374429717303199412953226133073058262255601664297955054485135789263817388814037258500393970136010832108958364687618992297584178074627943225228773915924298622540159691817657055085077465502935194047621520871971707394415965447986630851144374267610482791046285407005918252475569324793507740357621375837992724304620535945823383865706025287295076355489860099686231256356903679660353972022012098623228349773559881843545238298827347130180280178517712120252494683640840441759475497757051854195868799809407155972684345299998312961633107748555468579321574507461026248231185070270135000476271275865420399862429815953654029915397551066066897160978751374468315744742414866818744462742992557660956890105428288926346298595515729361341213452302767089081566849998843508404011068862595696556546746156165027243041280459311837250434046989395611798766675095503914056003723545837480028915633372581145460594455360925410776046380780653511786606821853114215008405580380622294896169151208647392554081632210857868416197211220876604709502573349677534645552797393423568076092137029338067792693944427500424240168074217857276316957611114535260707659534770593016793362037086384797157508725204980228020964145367637919549287044381680272651784776007401140232711813143959398565760792213207177543133103480194507864727212652769512567221969069560268373531208503718007457686153357525170466744697420026132818565149947437913230571296265690872534590437141342902797906091191826435532284284197466900649270430707287751188826040495868753634492520513842382765456677376092620533384953522425556663329356605826765056251431945252461600202346417339044242518845240778980843092630842533423233832103486782222149204920036657132312219080933857396144723708142940855309997855060862771835845599813753141909283714169919389389244580484557195639443867906341496444140173063341431153936046894050109003807502455919234799948002755667276051584743709879115533417675215509721008582577650758973336552073601243193208285146651551670049172717481083015277186098321263987225038511311716598178930353915647368359596986081803954528633527575932603902910920301219689278978772301749982182268874685378045747174419816780381399451071913322886997057705091334085269800096155920840120658405208088773911970681093970851347764745854342290662313934428046752279788459890807705957155066862023572260232238890081223840595946535369521043915283898949020693064870210776031277381403873944126319316604077655778812208592228980694990106398989762480590168521739457130051334218835170407112260187036014829918127753145750380995494721705743878923215110769051577356740336119220295307780057759659584299855192236168602510090188567136065143811399399653508426942656552716753115656402513562705299701988718676433329632540776141665973077081214893773697403830542410539767538416171531897803618118745067931671176321946129612196658625755525097614444628944403268085308819858053152472126545229116165990070749190073028799353380739435484039090253323069853622829042127533133058649509097128582006748898577432776512828136340674680044165688271132780166238890620709728707368650128573336392114148540667625712461840693307572979204066575603606461417542086686564443943225283274730691353235193796204649230057905292962942433698987329607092933577105066984248657718968633600602590548246433371044208970332022599499616333949413432287034428511305209764411225973221930435049785577720241231723440381289668427356586092408907363643049520275070938661002927095821792203234163021021996462697236782265479132487480783128025145310958889137854087741604832434595496351119563286353291209943296895947372443378043980837721807406597269785899074915671505146280334534809029704468899258968029434538916004584216590499313908036564887444876389687305379959059208180258740488668594438102029011351648216205480383345667296540635430244905526434875889795465896016654393873609303716158653056626593371054870841224685525763655031716676717468098616809156496415197290538634562930804447052299133942526534347946352740631298583983037506144603662617189461821402873176475645410804107355368755076628187562628666636460025997951163192406437090686678006182564468503557942043344859902944085232688994738991135604516523792038768575498018460015734878502043530871364076272788734868910038202572761188383749756138001138533150318506402769071191198683257326321420411711909572263611694657094336148248902577338164776124114576327320272767555561005692207607029108780803709424887521776508512827939901671436752667750024997659449708668578421358983375305771865852969638017584948234202888902450025488575761134136017310484752009997250299116942766310682229580471815799278549140578076190531998113972195508434047923462441334100807791097217453465262346832426071721219351241940936542534504539050393049771587980587757856098912220941941120815635979671450726076704679327354059370998131178345245271778077146737711996713482223856092663685692306059505466558469603171374308608640862888647917432871381319364907282863577880652186484389192876011818214714095781186211520604118905157296860108758095604116308968056660074299656815980735617065980310761809713537608479264776776410058898162329163708903449057257976743603462475067008079101068546063461988405073138551698808911133351461192308378934534564700078846017875339703763664001872818849637427027044872890038228662695172190941181126439103011999637024457129922597146560015987846788774218920079242071121373301344548057181041630661415818119883985669356532325028070100440789068708216383649561667962400444466145857487314598469759048648545182925460562542571218331735657130574800505743398490620529049789278559500440931293566329154517729865558904021137040577387097523062915461345496725841222257451675657165333988071582165428176108276084079720078059863223779709197647513910370465755528253877951987454370899595734215714663025470620628680206014661168503354545469960778202775744822508720588953560391744937506799053262668409873950278143619142869972178217949048031306991014172002426339039893201990039991350333927177202628972863029801414789402844768782425795570064557528117156117057601765190235329528669649472795686763307334941999212739063077812847214394669691518901097539525521523148023558460573553574436152956279737112265889043101202320495015737728632172198050427722751891870035661390566968890434347771650570401296837781613657671026652990023761049378019171942300852337473097413944706002248818960152706851661342520361194881933294109558775512654209888077330244139665322047692142158343670155365455948419508693433053738687503220665927612868825345402413686401644510731142719059606528565380942063981171598717345566498066311148264505768969322477021912118060917952808529464794412620393440071337717745399686859863789432416882261784137376541989499574841627131053388082314942820727136645728844360458150340456177928187937029444281652526944124293966762905061329351889122281419908264962142830251732779613391803166762423638064286559462916321829285073865765028036578537877624947517891503835356943950476205562087977589226356246748723897093096852944512697695098723158179337575173710854707035766606896183803353392682021006431036930874511602807865704949256969300780919811177575375123066367787370159015614328553990309164378435034919782089371555568601076419632332638522374716419044030294111825303913752934025161533693708371939925493378118673252952002832250767756011822586489752987539747411545733772115790286258670570612118143379354864065730706623535158029334619597047494812400518775732635665679936383658005173618887294394584655693138869014928012102851764890809636909233318705449189418105937776879497135953088649053215902430684123592245466410290801780241243543482080100551563596993031491712496912024757740622904789905905056979968891335168666647403913572866758917662545855132080347202793400988245574337910683466275249735992992953445646045527133473144491709146820351072634377113095165681630434481433561519910938509792748113566150617134056369155486994584908256030856056000929683845540909951500159108162878381576284977679557254691767750739532101303378847130792526276570685860255475851176190852047352477599050926493715943819658805455529644043372148529920531850749133504729002586360163727980193575318123700563461297147743799694297692197003855390739698491451865315847376767140277189082510452940401765825021569607741219362533029283961696380010151787130378597507729110408173410136503130158978804178491574585728730853557845878508416623366211767364711807470671820042281202085584362801421056236486847598563895039945293981081756249404890143940269378273022280385338716267703887305839191378946010178981465872165014870317127261132376138242138029307081089187733185153927059215635203035587685108738393797414490636798136259458686837943442623336328471320619858446288200431562585898535386210897579871304715601428742677559302980263721986982023860173024698947424238394290337424493598727456734030620932363976776192655863170499163223403107923996305224869424553933020056478553947540181880118648711729356920524139588102087125502327465833140680360960489546935848495915410296935321010490681150117034095312774874528603554861565494809200771799805411564093781113371147658421918683164196641059421092196182863021497026392561005501903107816813600784640980550822359017774354318019485856996466593040267093137564205690074866055393253403357325824931202445598569520177477337849886859599718111337206070945175152622442598098831844065238290169836848137061333213174222331845441427257950310110126537848339147538397895421235124395228665906587270140643575711923705322412671451014619711658164898088441235579383009948025765069149601756960217765134993559055101467228613991532693074245609350047576433046817631382981769519954753403043604360908491450032886657796856323082344723490311064419813435567408487480136835999923624963515610615259465858740363802920111701900946680146265614702485311784411251499166050383962614352413503026285129833162120877177673385958263470463071285844207590656133059441004177778602723865880743776417387983874895520674547707649360296897051247831167074153017519383577470270393042996595692314746454506514919214903903331113969420342654687579938032179452418772376933164145944360011714655884799335739619858549346748710714242154787005296798033341872387463604246997914338297631631544241810234117064503684571533663347546135418739387094540955627903417914791192567330462901391088304875348534517562763856859358675988078025033695988933320717967989089881891873114230997607402773274844429829122781640051867043311355606099221969540252860597970132862158841106558627462061018179868629802203332307088881439931557499668067170216292997006882053377225157281479767693132136548259386369760918583234278364947760678786703107169262677313035414577381954930753557038176640593941379285806276041764561042150968716665159865850245319988808856138260644831370070781476926338880235895108995324854290071967062559774386493272159052088196631398320585547963499075909208302771465496638168280797958043126489238681117212235690405633429239427373239456025430918556492787866789768962011407720369957414685994818693915238325642539100088001680753612177853851521571062763552920173719080540222603148720189313384918244182616987065458872132811884101851019028393433173868893601800130968928106040976942728467943004307480026718012434617824165028190172584559813091670244033155641907791888262851182991864808789909379800029573687751961581369825995316848342395163960938581396883086267788053409472027410272107146910764785727181568774458671667818470830155241318809600122722332718633800648094054393098690546232921871522986017456704773921401629026653790239578232242140028176230329470744851878353180258032519817368065483964362863274613183633323852181188571971548458722560310917268021570404525383221331396597596785702593472720447791246392658811940939663283606362369097504886759221645165302157157253468997536622051088015249710220221153347738648080793349579479684030919541743052989831760399721696606178089911294357791931140205084396257842334234675294509436016614359848137201462388635787774045818135534302350961717236531827863997876909728569106087883279058467056353928817056872994946410804957083989576200774085069237967008517603851768966169991158472966824447759329273168313919710824367475474085138175207886751830302044439267677530618842525795473353995035954181166635699604048900364274658374832536929805819854938328164885457589267538685126183274748483839990187884804827723497267398873407788545377418205590840091125485851637154900674436943084983300888375126751173927668038477957135887660758403194685798188489651690065620253322798693932865890258857029825633476307158058272411781057597140603328811426872545526137230909361936929544316236630039570933539530046142397809783401958730214466123962658268148177285027995374984431422496033940015637248164257959958118242193207448008077266974369236321967379529721627803835030058800989753419379847193627032245288036816300765775440057908477614838906882288505658602020223226325590359465473149459442841889131049681804240661049795399478264647200213924042243150420256357253121742108232347049784159875334902381078179971631984447812780625969182648357679527403335725844909882853932191602092814526340312718613440104828066595780413692814926990789870351606827395190452049014907201420851547040868017231135798939031021134900762653147815307355639188455304404086758574306809933209476441375782909057426797361115602306003963420955612075264847154479936826263217006119011567000180250280117167308618860374047947606946904621156559867722945843719250745785664222476935921279571615227900654009620298940386919417195144406137099983147321372138292081163537373082487478192073036873102287690758570582737792709280925763613849574892855649193860670996265722699964713186761756124005434733864208319159157968006902781104840063335464590726675535825258844349121816843936810163938808542278945725750904094420392293133837716109911002105158068064284910814288288368268714418783697228094695556384080519276259329119666979711891906603768923329273266936605754575132507674750463959850856115868301964755763310198995383054838859360145487832052708417669072902237591634539614033683134962999515764081477112546638671752029067537363140020914694556706587285148880698387918375834171485384892196222821829539352867855983157765106206723255059736985415430646318530627424651061419710291603586690361754777923668831066398774096917679104147102687699297972018631589927677030512112044308065407342693570924928378394611337364963508559190094622163825108150765982024696033957527463188111718558977486915510408917260406436743279568194568858381956969576139216089418438546559324395092669359916511176100143474600867998829740019137010078640586309261987227875301215704734351946938538240946403422924806266823165859600996994427162081687621510985661652910319673001355803801261194232851932562686490113635432176571363814074585151906373289699386685620564952113574573334021476579426182322627531415186608986823738076323771992837119330924162523081247857258178126017402066293082571649204048441914800410591576539238053648619386025221739933811503805435428162839135115999273742028112568777211351228492026233731465501006348062762095619211335119661158589713957976902661817368437408778496013784763123712396666621399571431732870951587988114442429241391025821081336695723844569968083789760404510042435667931148398944848641023549210276985071075280607203536027151697422641765004415594855835630229881806746006113917590245654881783296486276790842477852025299187914545677638974723120317839225216854492933750803832780084839017219722330898570971558375062300816282320893095804946875965404351951319573374186686532376748214970738679859846207353105612128865911299884040049086783283564530163112324662304252651507879347839652774734699234600558465980313732954106043405650674431707741491129720194513313738660064923222613415790234291818459753066414318466158436477199515028492895769924445965291752095985298917622790784735936141479551744644954543788395854584923487960682344474678806001842590246189636889388928827698525264701408404961281650603881380564973749293996365253234562679288169829628615206238818861672653812860167230079372305728951055171795444669481925625797030651671779874511581633381517212710950943468084380975448483692301741199117786590663426754658334710790328246358802541601225434204808834529196465628613737271522417460137719409965836823746886408454638857612634717384019997841709189026658279914027530482113463462458406709392107732348027782407235921557045736956187575678764170784950751377412137290246897535292570749308707754884876502454079173300835850240722642209037550272099595316673370594780933801083924956616095906783248706561738445250208573547623047589291373870705973956061246216867321575994291763023474483767474900189319934508129101987233626001725264978884486267439002877028602523357314434822617785021904530449818289007598322295720964927038741766370522609361333385136178849560986619334518619662471060653498183619276064440011373965659839036801026131492181633539324453339041807565696248827714509716869978494151911207790294621252252459673932556764014859075324205204929195337156911068659281551162385292773629619024799475199638235819230688641610794749676640498200688028682071173981900209420851752254392492330911588598897833633049454720644097099448613465508268400977486321533224409820417884303045430102873011674640459005697429649098664264877733719446117531659354998957577854647380426110897776126298108517651385978429670690375022744116897669764901774107646841812388496169588905971942028063217351054082485210003490750479198618598152707259876520033299660865390454243608584796327495730464569488518315662152470957394692839752827974071941522272742062182050553526061182893113465200521176812952200157512559858986824549069805946022560163035247132623330307037053594820509921041648014781559628439996132557837197665996961896201945597693269565383698993185147137325332920084915910903627816055332095054212934422680390006792763757565543380956437888162243402639927497110854867146569874375645684831616877565906734850694950720297212441752482473514985551759142389155915336755328693675246136381568203976668348998697204657862027860160368848457423689310025833431455828735982637056584222303472369326942547291089162383662560929918240106121023949765131556443916639036745093003774890441436702298415033102876888858818420110794773245945230368319816428282640134517108801286380336872257171907270482733996037171462592597095582638262889549859130179831737842886362851254683803450290934716024558215870163327497618566272394990277095787116438683943207368452795400129827667956848612485318422955150981186668697150215255028460596414413105403248822648657654049033848395294390042961848627640222104593333980501286339415592239060883729090697114616758032057803025989772387795405906936378710876946299248523633432319966254707136890210229595289249410994179710959221610986647201928962292925374403116987760754242873577305738678099971556448641496253630595487222755703350832612088625862706628619545222766273168036634090876591629302992403434459579376335171271529947201354652673218518010145601270958462536109044075846467515400643146115254298676881047770682065193228046775499044081824987687669042041230308734390618329542833228176600147698752984095836355445605283536068049294764123994131067779233739149071818733189720404998203499801931485002154369061232575335065350126510232801155764408760620795586127052614848723983352725480498606131239973754760598255356442977529778392753212857994415338579645425174917715575328237615200885472862616564374163863921268387121809909961630962769349588621608299915921065279644404850028529159951256380894734890982937434593846495951863861458186835220084694592607598437893401526827996608503705012849517946257730187759533854898773245381015276535726727681824814737578951404172559314378527088179869891034114177264831001315279063478288974337638399233241100372956791312108168964090194224285833546455385740137973312806958844419464767410897038672033687167672363663292880350000763883130158116687712146884311614681971501110213016469851425089422218420709525093457535352781876833472556510621545100238866686246074006329748477177759656232591896897362019220906897923541493714285433394324620638243694139678301575662290884375063310774077166537776927866963045306214144233707208960604729993750440526737966597228306657973785712686264456658385951735713524017328519999508852904778714895252566231806522899786099793354344776161213012573727380640338870810399344920142994657684531146854998148216414071321250910773291117059777881750740173694824761398088954719862543799805216938485465018448760911182153348509361673177609726559250447302698543268025582427737036529799841769505875069807310586680258287718723332978812624698637334512511055728170368814053577749809661318477344781295238072589392642336336489947753212992558301608386049357802917830037881076381629184387851339303452193637635705924914612802893834252105793991509338508318491549616692880627707123329661893243954862395650492041235345052137254920843282527941097349252426744650355361741716749529690878563924267303872932910555554426669350991863613376609544135343287569014394314375662801469664106292022537094307311054078405457969165591091849383631656990159336489453107278817571535318214338257300654121945976541167630657242580682052416884827994413894572850932798019622784941455163166366152154096279107151873798192354193663331321110742097934061597699211658709128180195655215867654688469601212705403509312862976138754288689774989033793824731346964201207020463283756250597180329431801412721512452451913861880619970783503142271869224315073736194686223586551006937766286304656347041689474681974795484460737552767595703508038031961097999399683206546089956976032254775554073945927060657559522252927924766878551410722090687609003291022033765084311572231749444701596118811992513312631180727957342323796304296167505687523289421774211559280801317167298062140708619761260610760554383145141182614305180313595876099484635824874946593392185411875513472324768679406435102441020766457706998339427788192730139695742981789415117608016672953915634170752684098686068681810604191185663471191718842577464255124218971514789787628135199918871982531712969667540450907621984503774703451981782514434830536997116809651075176228789845788844182978129486528874021137665065923708047994096111075999565332741952416005113262445933040239485164316843278853345369748751181828460784542127429605971739264415653260874001973032070665968579778293088488321099789546446714619129056458449222277325941459874676593496048436787981895036464576626784919603363186629017487938979656884848357300047992766109138110800162547720059082544216585420922362063524525038491940109276440700289589405391925687373611581076010305147844288577742664143960125113145827925516024766382122140423446189637025664972600831985985948774588550187412929407594486463921055537417021673930668989078299221381118475410213412673398956937521374755251723252385799388572775997612188947020797665856193873267307219618702726608147785936892134813978474724238121347277887455637843962770999774180803321118955464359624112495797192358316530888882938246851170725304070138637446720271751446338676447261202901787850707866243141116014075669279694347380706529001636133610549716604970403611438291022196127852287815347322155363024403206782008034271380746214030678721404830680314526888128262133593569554776193249819044301830296282188083937870156655980706497920737155995294078299087629943469935692619847181892705289683793815801618887121690258852027058526696063323220735181548743412752474475314283902909117516560032694512086710936758070766609882431360207614516362020441934740208505738541780438812252180381619292127000401610833792086777094822518543091707138248461922301717403772152961382510048510746068364067152227701745363954116884989776641938416240213663742364306960506338690082942269052403754777174926712382723966551624256414594308847680336020994638437509467010318337305795590840634636173072438833011475261717343188003986103071081782763053940843912010376371124298989570051415505917277549365913503745792776701369112364359558510473911142925219452974866139470043835930910458911550806266312510658252331119155273952036053376466501698739926711332184560843783776886740129439649010448111502691713851465136052420622120336490809549274592668776349206182436294346948829683474472014532675911378468213778761944183672214047799627870850637888512003523220989635625587584065656207683130684113957159567237868647545973888412772558706641366243363545482744726478783122705501880372216396299900181151919451379952310698842349307594465457989391950768938971786046989826114354658295083343900962367902199594627354411308433934832800296815784498227132946006723825447001440750370349379663426905979379878072770889234148096611465623435457972356258716217532392071687522444629581383821765886997318959037460597638370959497887948491481057960018940624451697750987978851375663432037609739181277470619169338948750964812378969434213495334244137066894033746728167039067409566225955757619312571829215468796965862104762714695253291427093021395280657941321318128517903632939914212979623946778033013737928214594275708190322595621928197019533726839642883296618609692132264674703773042182854542877813551578035994316283394515868350261818519346529283959165814581137757082874306996726671419265547408326389489638448151259251573493300811966909410850467020683565721252313793737599144368607752724952706541230415020196926021702815043665723403278176397499493441004025670581041681213097928250190332085247443170994559031482419409558761126607145057255119546920162621946042582415012220815369657065270571843102151630044512514949584575865912894824712437764028950062211181161568956930464526163705725058605928854820983912808171623475208422017650182655468219673786286579654759144371154649279219160837837189402988784869863248408871183787332395804021409641549283264609408731883371877430276994850097464930403879803236065697877734571832454778205856770765937958320606171385572958975954486342632063102428188088054832487499013046572940562010527187876850731585399545977248599344342038590991107772483731020966795050256080072396866200586372242968187318629210761792262348525613114162273467687521382860927860094819891791685117665499236026339988935189863783674601049143182975642630927189462283494940164070917190120433363701944235291551056781170823903459918375717511303287251444261984249110032126445038007660058472762830912568107365836815750522006669368524165333927727600013399537195857228245839754185140238500837569316841884799980894529208451205958076111126719949297802146226552901211375329259487488759100954351983567687013976366606402357503562493473515990156603710734958355533112227724304330739427667594783646964585088370678286969147354631127337294525524150450235576723609115972725835182083108093947359712637721681758295811559094115980208154027137751015440968402836306905836895047826981696425883402969161559096492769292069467635658095877391727637020154189284008258623606995710164302902404118791028472909826199295850945760278856388503640083188984853057921410889743409462394685907313980736839402353857374092091383221843350013998807579146228842770580263694211219344470828773684778363570040704969334854039186935833477061205334754632641812738426574401778679851119266919181905123763363308978443354767978613923333421117537281897073604900149649268462987187085689441021071874551128101358796629856902471481811443420143346836832159606973904500541145876579110582842385174505080125217957137801385518128726858249226511548624618792689496888002210109893149813187695343546579294566433674597187222886634839762046323669616087682074676388143265760468583034604748428155925186200406246083092699451496271972986280770656231388855676007564136232242160728882937687884161150166417282960025653864306443941306472138230966113781656326399563130416831157265890369425769402523879336487076416099522101984630310677285335595971805525060626335850763656092483039405915704113748560000836662167514379024131311023915952965079042765111831502328731909180586128850753693297321555742917946108666482000489717532688828420755453673652100934652570274915340952577819405762530654773109546515417981467000817075521483696403112556465415503790059373615516063687538787725316048587133536660728750958908144160244923046567346129799411219152729255779020715980920550363930189672615735318241409349728323953882974575775895297182783600724168968831453792416014620919682371660341489649840070050348366425694782150594626479068965595064736747258419602077616683836612104882932184830405607239512803751052915237675443619561482489017533061994270384064047653948445309388769615368110645997969254458140489379590877883539553626332949322777097875074581103472467040167950540032556766972459615379972175367907872700299330899400691951822258062344686177341062556625964079710118003878155660464751049472855572621344926403373530882740598485007300603984671851499538950770639232602585403630671564109808710049535152761483319914256865623162238502215728449419663342354383983851866123373384566783258675442397383337725373229607085522548984503089773230024121291778217104536655968460776404566720426366241557790417988034063523551360756904275772843755376709336375766429134884550199483005076521285219639800980903879688709657637617623635940811153171134879528824024905948770485925805563145693100957602134253510171852972122033355142893357077243065282260796976321143907418795817283538011775234075074500826982858414479303068267577309397257184812759424840953875468767663012678581613555508124895166485852375598137487792221651609297779003270362474401879528049441503893552768437089179265482844372027708721282578695922465059846983172878252118196916629749859121095003694892758771269246652372123303655671145828272774838582990143370416036276204107560766294813239009098901463051406358470671356288894081705052371137051592423203425858194961330912031242697155279386302676138607702365778494900745254557430744396312791514430685152283564813774084583568495229822362671588056116869771682396422038130042913645184256471097656883624742684603098374578075959476038084571754042679858647316342404624240777728210498730506264379521809831305279510611139790402460850316682011834883118935593933738127325452276201944811941150722244879895094046038255493189008692990567487100717335970324298836177763237016233053249417268562904315081890055023340461953820194990525650541517060318327706723427400334903481929969098338743988745210001349714700906857369334037723260843546914438021955719770405780296643085449102800527404310793516889523971775911041351894777619311902913086177569543483497460761261886882911188761581918229619982864344875215887910910591055740999382143276101707684770414608659628719394389279014387694704174548363581894305313216344534147339371937745270102904795459602757887485243475465251461042426676945256441541316994222287846974666467847897783585904506513655284508434421055340630848434474689539773729393999758087146046384253917118323770734900334966213216983520240145034916983797365336553878829417917377620127885239553989565972380914398590764424637815667996122235829898461808810046037274686751479364986162089066987573260567934290111578314289754002002408052834875628488099455284169329790733803325832173126458116559517944179978209318775394941144348684211803271064681136357074063941087803542199504356045422469236081766848863324578792574381447458391727034256274279238470251977751263526142149816366911329025398357560839809982036629252167519358126454152986763147512310151432166105572852820014640756508998036099209720256724394783549163338080670682914655453672226049027509552835993560234231663337940667488062357618490764643703014285353752744446683209473095907456303620378456605291508114621596542533195714984711831288218690032363385340739853316019582000141525498945296125272009813931821935212398773389936978746338719692573512674261190166721108187135009266856655530660949707074888900136499048185272032031301076627696128400714522362742465859742472592807394168323542263935387409206498002663314005336338961087225161118967086000846627360571011656273161537144663619427397159413835420398858860717319373606787542362890696315530830495544156728153465826965721485745327413153131526852195815134434948453387510990474560849798070473327983715138790153423926214619373787591689971444405590304736651250449169202368981104090737005562059779353622613904027823604535444253481114203831302540855344973267233259021532531563190420349083785907478267485677013071573660492860277864979904433899346101101171785863518577822498930089345980840920684369415776901754802657862953041773541846000383652270950448487435825520249590717743855042250813239152109113101069930394631726549153938372253254886250775479029797293212011178893391987191783490953825742492729061122736839338869538827634337813603964577036417167987099423604970496262000470493218234823678737002143630670426476785337680966689731162358692945178881798196351211462190512149294349334955820412109361328150905760620590170725873602677073033048710011987336942836131238464090708841424892573579267672093095672189415019038164700596290706418653899194925950527394305435350638709079244517584171580651430127890916568319016834233140272274553006959069147350096077207513556704083093926028151026850382896904252926201031643286844946473840486828970257376537313369377428595016813863586628872708953538786398784037031217322892330173553350742800276578402139682829981299162671905928963235567412013761027270027208995664516693725979719168473245539341091258371110219104847651059689534411708789370842817474008185756914937579975975165931634340618938305076225424980462129559423467997867922061121456989975747332240262086845102767315005495058538541716321579149754372601243871796346080324414687679982601329176513443233366972900036015876068348247782728653887641926600278539470600261198042903306123201854238360577634612986896921160177951802588940771383010831199713273269638761377270004805707420278183748769855956058983606705826308989600163344796324119180055608994291071937209475386837046557876623909303438474523289486484804394807496815194224675147617727392790060550706388395975605761807825132561202256830434360648496617833121731347743591931996226678204463867867552295209709095140704922201143657148918157713543326703982159039674026071925382776312454428728982433089076197254439682185667782148684268535620874673580434069843207630674974470999524532886373827375040086840853474467425333389011501401161093876191924812307474494532417607752901565549139869731688627502032405251198265794149481537773194314081610732284631984375386127367287217778064454985577259858167378856530786524114743137575663287702262833283232596057044499930816718397041956283715726022919663808085983778483121336232836180351552455131568452949933932972062111713756178661312255072458095094614601503606815067219759234778806471023229320930231297358448784321982592093742367455485854871602940983820632977426577770847344283188716597518335405054331855678897823548389585486303990125949884074172121616125636098982743687068996574458341535818543116410436361465792812835368324704707031701710472356355539090977065207106856082792731996419271340054855449246110045127136121470419922247085465122700233032509357034567952429108437531947862041011351882472422427173809923211771238708737606280072404985505940638599991925930926311680493704724901632347090681778588629146206570721250630441034402958021938870669449746363596363769995498907871016540324796940501084087448497136508230634085790499192448544270787766119313905918456709730892893241434105615292374813390684407025536649535746223501502976068793517043705760984374557616118557465807597580415828180257095510978293585898275111858522498000125526298152997365362437604110689144543734716526276845219118275517627620234716191542065050611331397898836786873872717093744464818868618592555658163343346301738992420146701346404327560012642629089801137151077750410840941837745579097437831258103835902082020998895173920075952102456299512180784086474306436299784890086164242883068800581709672434567358356791088202928385374152094980899721218626648840537330082722774993815721077142532829326983147993828620186518977471228373919116776571831918892041633451494744589007230856068541234448013781075235231205484199432237661447148089108797940117499574764640806068402926922301417751703760399707499540132289358720666912428577497229537381396631744843176570126342750779954244993888113612854761095802227040619488860812047010490044970037289749912412424838652165634954297414464288439296148677987547228507264973883380740142383738967391343029326404773484068937615100431632118137535221489263645530448578076988649797250566695248152033079574238836498818701627472759538886890238005761411426230524036891123213858238825212767664785629719100011272059235890391230913744296638751398468256163349801360083584230935530008792146001803931476701326436803855283092420708695544472777907996688916876249019413986283085695892587838162715018872837950681507847610345776693165959775758012230469812444808175179643871994788660795001500168478839805504962867540985574779997007616194279966841891583856665892233591764338704457548835455862976395992401250589055991600580868581682253185710175215295503992886538180053074640644280309127607846222391542397325652582240569462306957993894279053322483175611675170190182681173797754729023087013032566799366648704258231272749507234761577316259314938612077859516972189650717268746159810202462079805455108275766678015875570490149344636071257638927512729255111365476625143183870602119976219450542687748550734297179689930928105902472258763117945416711743037007758003152143793204512387253263412332961998760411230212728101558187624049352281380915864057327757123438052773962687942861976213367398826583098317927658061938706294540048799644815293036693681046271623498016848823978011520646881170650289557148838466794555869190598809494690961005084367043750313400357638848468290366720915936671476979718923608976038078611777593537470957113771138645959111508497268112627779675918826842109523139769908748271425673487434755898982986758032295764480098160750382560828188558770058580138735465127679839191812947860300422141647640288493142058664795574538340027558707607522384778988596211599129347990177836841283849095315201093961432624156434842720349039711536040564564016057686175489007955714868066459553137566066178816963490242398855970997962475237897758317277191631556879573547208066553254246441331312462644334987613222375913758646778801298773453682475026835082821675732939559078118168542567757496929446254243016216104262479030906679744049043487633388787494068668925670271189785716495653400435827916988335445312531603898923327269229013114570258420847071893979031149476301805360883328077228269913462560115958182993166684566517676258722420240551057128142296308028029138985583635927090768135559523769396761040415110761753138978432450980862965414962005825493482598288208146236708411743469019299996536521230201639608179332701763318975786396155832505474074321711443569890519855028995281960991313404441020411527976279307050367687297072088482521282390576094862893655469589509761512151484476575795517961442639453765220555531290704927127696869611520456972701040591979152391596501813950053300668733547742437826118077471025272483840678626008635919628373618359163555372463183428780956607066895095517432338922819980029928017165677731458895778164124732127542690324399634428543304315725884067526054832684160506451680101793609797612122166709503729086434328463067550620887636354909593431897862889970295977689497593464933127948604262743335136701866940569221047150336148563351369482982953291902032217165832641105580282590327698325081585337491473014335271172309462514959171761288982231346052105864439486941977851073746598421100851879149514087660988685544094051327503579303808256895896913465013800515681033984563985177144614555071593561052123807715708654636152200469802554611399974673915137233052516390463063910653969177482143297299998982356862173545569323033359239932277958518544354697028642980375581161648823427253432756857609829697136001062186892115411452549864981358872790463743150802205349040451708113246346173527045065089329254620233228075802590828350073708183578999890966293586494011758083459584347741983096165738116389464070861287052861499969118537047783039437485159206018092248274270308781904793414425602215861628030608340759757947804482243354514330938036130247865232981479310529333097587677709187086511802143356565557091351872745996307642051242018986371409624706339689797679234910574708095135466968886320703650026536783484686284359591577222088120606651819432773531396265058428650136108790202129988016257639244815011440460497937293699951096298244514806024014885231738993290972683244274140044164307091205759139659522092527340891922047279393764423880374971735473035759450749037711392919195599463018983778504687390870349275836233884866444629700021475445727164544214629848669563067380123207593919949179611601235197180039358150424576016026545609510771569729983423135777541463860167260347924518823804165441133189837823632592984894820768184451290182944463123729740973577296139741969322011024294773950552635160084521278486649363252522730948713995768378701646479935914855348466353681287149463472973370445519117365786893971093888256417416943574608256639091110486235193166726138439761961176036380717510061688625257041235246414702397259794895471036528714859381935952398933307676458514510376108803044136514555330378036882550474737334315118167375012022544910652240554498921261481696726397537558726380454304925987011499968372361591858639761059284340816894054191210789216217068618145359813655499541453776435465976065455685759093145257771353436010678885908064400250905621818101190992327063583652682333056539914799147156162971272336408742176146113342329325905383923609426929797573823664225130523488644226538629862835555000349556908114568564862798505758947221028341037839434156469132336074429191442483620818620767945795324846089195005127531169266876466908278506455629055932497967150956225186774225914059978280044652874915471773465745123715042370058476549542208759857785730054550473186913666553964141780056474432533489559140332817970475829498080406796358533679943375608208241947835301496962017883239449199893741428327780326001425092857212012620346968055616376946811302766539271964220421404090104667078563210307507141976577167198912069829746912848906464696405573250825419391974986439111715960181494492185071691355828091065357069168659807051408015029242546886897409558333351732858214395805226515581661928724904937628616892083851829955849430361356171009674991242729778433033517580372951764706483715622340845609744526248534405177573439507635974646595696251994390684107255655065353545095016496134908871632706233379426440934357448698392798391627685471374136002907320486655281654554106651199881976765716773178668718610697031292907350772808308665753400731713741412074485444829025897333712166838384160209157546614369687935936165923631584046750774014507420663402878241710542126635124660073871499880063973933689175501782917105306104431065574139215256534804618905629800732401296022378739064756486988436085942555601282646530128079603049110332419131990393632737586588905068171941051950781573084841864932211642319506211467357112544092745368616489900749518229085910005066959379608787999986122639724088430336404115554695132984984298778519150364557444251473984897959165068799440838242792216194544333596188221151575698956578314379043567301064537495321831537692070107416522049308388772296312201007305005306981588661493398014030628798741836073253057518501483414994747360449298444301976838274908787005772635451406011400434734309115659216595686664693734462461241243130681409081984157660028744151178808006623830043234269286960602122006174384664115687450027677839567780368317082066339036603167927841230801240565885414053347389001537629743232100235590272502381136464299373908087720513932707051461006768606280771764142219393401802992824007798131803425587978481361335722233207523906319764310020533311827886487947453775797892463117827393979071241277463816736823091571149809196178918851043749018649762448487597477376748117769618447790793612952033873485266745829949612975074194053430785143908794599814534509130424472662037517501990834895155139512787117644362548517627303714964932290740979129130676388413436208725241041385009933249715564560556408165278041979258302368903700308123060209618444530549703191806031914689174847208609205508138887174743482292244627747639442017240284591056855282880224305711937569035860589476603495188839184638935641878251454213268710628151411322552418245666239335401315521733497719477493221667798693562697273102439074991079381779720984160786073473235113286409185315574280876451825160610067228356853544707023601708600408362257898657490358176975694849177444069237914337195713931222959883261800174218971680913025083134462356986235191445673948674334346053208101821104296835528672166837563979335998571167941246748890397858858502985469685813831883247838629716376593871609717368921405224829988933291604450537313513438775732340598466576471585499287886943556092850084394919458955585711552208385505276492695274563002227732387572039087788633246092961919914409025397216180791305802308935982686418779436545781719320015317977555333903607439338346561254684129305523057214846858672216385458145498159400563866667570945978615979204750102775929853369971426783257212606355493129525358341991349588777860742034645725147925322672914013793734990890799342182058178839572702325697543805009999929512845496028290131547896196962913534711722501700731732679161548035273352419149934051211596643969480178561031364282788012138728675103695409330932360638940797964232247450241640142275201915238739978846139898286012872864570954366924213681480930863224479081463725863182268612061076201207225318907440959197103683128020375301076586296373333441319220079612121639250484007186089743073760914534223466059591703112349583657608117785060957256117622108494702851767385826683448362165043009143356228012811108289128462276667180951206074091672956237656067211727044830701840097962472822328369547446248709847782137297142018415041872392121096359175604689207835059351513540890777908913698368465693176569596846815534304317719289408300762929267670178189287209067450498864516328393081074105725175875319954197038423086425087166219939905352375165230632742707019189872259932807437767333647275174972746776991796482399325100226705748053870344885182431994807910933851337310830324389156051713875752142690199899218165733228066403860140455988076025604931809365340461033066474440594332094350662996197324080953278061233888414465519543275636699557852475753386000812601120980483343468554727702725217623337258023069470448271947721827209753994131534763893331893946823386372943045307179363094080057720888446881842440414031729859201907766815397802679403398069952034619064198160263445992771053727167105063353097957377345707629584429732170789996278761566379843003912313811219373868449797116980750846620160433233496093875338635557664018552313779347554135651356678886961110670384495782455887702218692614830531303923518427859977392422688594348735183747057193906748707202877778707576130802343548518576013205240047320368194715763157052374434548886442875210711609450655075483727448086797709853586058740719194199185070825055182673669652936301729950925976031730962071395070428387746603538054556502940390373697228056549311998895808403402846089475978261504335054735808363337256647103519202850146107958228232168806643744153981583927360311162270751685180752911077040208934456805246703623780697449386556876298237552522194139087507334060764456620317088041682210621093415109070260185481721842070562346028504265648487018929811713481010666022461195754080609864831473979646674343205558083764200498423588658166175692058807433315114959255164336143595302704975830875111211943095720778417431465248805981190814319860369419522565317354922212016121489566152748476680530419336062965899928641271686247078780154039413182696968089715702205519050318539899933974130673512951476585945685536228875370442259957164022330105070244579267816192858345019963796146426369367799948493644417096993639391466332598746931883683106712445035491338092261886678667546504982465327876457178666441302530605177883320736291827874623934553432597042400392861916382891297610346860128973990883395530726322893892629701358601973041571193520952518195136642436422469632486916714741000494500783661582377648763727878325614954669389911973537081450340132681969619495030476522692919965290254354636079429354784207604834226074271290585823153645493737231569079126827685525479585821533168665483801394957957701963911442386681489299789913669227965796858708447137958926034166785263424448692997425124941864778333727507570505308253190393368715817162446456983334860165144688591767819199005264972401806575191259610086943187704623791773149302010503087893446168378679214270503872134212234941184738825587302923306965063584427300508954037641610980440286256641537172427951576355229591941024977509708885780954728915580061494884819322537308206067247166339349147520221492158044499122009181634282696382745446501357806824256646270987615671338310105553204321114015844569046084135071494567998493863073204352815739259971761463031525996159827412191679306715588853321193773530766595771171020549864806131655518474060747678775220510976597936270242694163285728115332947680214063826277924006145390091077993218035772847548277236516946544673806254214014714667922794699269796030924306352628568600013606789779710338500131272190441384311479620820430010474974340582483519670818798596692349593468404698011027514074881414754442468569286389097030769522922487305166823209012671649846914803733768854457858217949234053422201046001318253784961529283089618846435649227301575457293667314077844399125488820670216590272064806157098151210922442547415918827651522342680316957405014475788851272247772835472919079733157088523861996367463901563184072829138451723667654102517126437873158193009489954474831220913687384059976974131729541987813602708519858053021157337463406422798203133754187805949242718661264388538517395461026880017808985256366772930924293881663652224190098019461737933819843714375592835591366010050871836262941969334798999830145480849894694005647177541370058637597749761528929559814372708751642677283477932264084415519297299244013946991048984302413396568300801328914441424296958833476405906686940993251699389379631417804209053433106682841840803432852305551455383618998044966652736319674109672655886161922135155432601010658672476634154834455957716572959022206220451172894729766580721867098030898285127023666423490049512932886183993927059184824306892019965537569728127117068445337494775013572732468250194658204666970523935404270598135599115371188595385182322022273067479367096199038521460970889551337413234187682148199593478642292751808759815926658182572030175453832696228405334522443241070424124864110355815815270932125816422201511160596104155340175982981142858179263129653698225666996503581571179634635951375732717961078558382617687774230255495763991279808375666722401710684648887584662730232027257915247610547769177444885017091950359070089522577307342606189983225816548018262599920504969165229428065126353966364678257274924111205540110620918817964685018973019398510786591928401523245107750327236656445165242127094818432855367692034098918439744143026942904152029469749809788231719819031417899551231250315359944215089812098649798426007971542969632005153192628882565361610109019933603142563868078101550366620361312128826680126889415406453970927122989044480949615406280106323315298900210388731420375806318910406514076881444047592897294799870070780673606364406746403454421246583266842962538776001359197316181282118471341562352080580046748554581991931239961725620833608312756618605292218274735380240012447268349943272509322455571936050399404906393510787661771639228548742094004029912856628470077632284102973135158850767946382036722835521447471977911832254789514443244337828604627852788820515667328506858323901374042873111343953352867617822594262312037720655643278512420938545065608327508465256306473685602514628872969402282683629798715839102683482365580203576300346700139915038130976603071281860885177193482355280769581934557212523856789022836190894369124037584785618319275641249062354095248119782844750429820716171858553869189262832645188041063104782823131046679921801426020584660913094897208473456202838644204236350819210850224632257191246333002312362184820523836118693528750895096204442086447389634994171862965960317585958808728807599142473059878976908923390959293732205694333152206722397395227168273536394947350257812267977920892659342238924015529482571451204494244979583515923277451403378370192344312128875687284705847693458541319063770686710860748067972487668025168024050436996051645076667985546970437344175436085758773450127502660978560411255603614703018585025702884535919378854269649697705133691244892832513048510920322139533236042690430447515415727489987113013699973293158792486395954676561803094654560936894820939222482776205054912675036216170916026656862173586649046798164417482146057753217995571659942798074351590178707312618498923655973362115118359547173511966093036551287454411766003281492349463293629076744669737374736022407881183474049835946219838935166349173931351858577564749752705081095512835449820745709410281238633051784408210647218334895877483736559572436401450698794841928833769538881915605434093346127657877347383163969279118302973689629991672261275931551554759140227819071140120429791884698288482902172598137450008022913375243230508043124400463452562195610070358319391978565649573113605598903617508347237124368884023837096467871081626311307203636819306542907257387405327889892366746812976143939627040298544099747007607900603897656322306734651879004229214725734725051710392605745102073853958593262860130984436794257759811617511768826399810054316859258219551402073048695637083863024643552964384104209661161720589292295179952600465436079484126126666660375251041654584684452852679020769109477752615463875093423039096259206108295093231299857114276255945133990316932825052025765614869910205521590608231886574926143537634255589842745629824448496096530610927730393897179656672231065833818123925803782057066375261632828695367459950707681288764030167548452269976062985666024360070487149577119809967652922006602028623360164831564727961112230261002672086237008530012871509936441300736214883029105692846039904345577851761254755096424928710410396922568415968339474674454883203736519281442854348389970779018935702951576617325805494339524305030797602921174241378152085288385899080511700221329686550962684582150692579740433753496804191267844349225113936432950651115631226292798780092944066438446351020884579483549763244517875758346567991199600468110079300384252635032145132397710655739666954994334177945691200186173637006487621174460638274929140636744144115728705079967866378480533639128364795760994422859224795995214608609936003745139952165766421575009120300798654460560310194199091842410265726268316657655572602695400656457629436819008156081940786906797565762977626960418815370122898631995403528105782335818442496347387192683626327706501210999524575758781046756911154014810075609033291278560654951967829422943528179433865658857970626125434427504409777742887700004454471912760834917142891696012657014961319051302622629801212417106117002245512418290128700183872870730034439031097375219184790100784274220844965400649911690972531930047093686158965544797303030185501468898329982757752991330011294687655154331641705352627534125080676206553141468991291058803479432480790160716327610605981487027025181615235051040779479133605973055179616833895282795479514328233304268954504251612719447901025905185840793260522246705773845250423641457687106845767571251701946766984878273099985872864553092393442604884161647632678295598709038381274721604245048468574741912542811529033790693757422435875826678247842857435451620617050385950434111685962463440754603169773255033287781660760164111269663088684105566300978562168207741439535902353802316936430153559284504239220763806907133503170047380732547085770061671386904178452826703578915274575090540860771633604083278788016013767277390171173711049506333970491840245448787106205220399598347598832177053742786585417445681858653179595468455372479583361368762289936659505607188520531877779464536761020603851359565458356619476114707991506001351019167524944288295187406193806198623712714912268448948349163612508368114985371126141573962443640253662488001648115706489459112797239640510937642400094663002940286058757667803615700576730090591363001291387296791424332526273781044500675700394877237664270709362498650817587175676084849608614079697894757505464361510879539157791195380684807618893989214952749124069295284279005563090331899346713477370942671615318305365751781353871028249239235894408260202134894128744263106015738360050433999257653706097511465865251024045328577972230101434184485392636372319233795338985909177765804948872059975793499151601002193015130432311891199564805240583960936141736155397601421002263531109612669033278107075770415383311166665581914029979801021016566942929306388825027501496670226522725093697704269918151497191271662584818151608104269284246930062644749684141931607475357857968056213713656993500785795218628290296760972679149086003301016028522399543977538440437896467981560491342100835153603001089494835736117366338450569421943051574458741034440210683576286160936928773672359744569343025129402117465905910536415031795490244417769042906470234778203051785128701250544071684185902578989188567136097223432707646701202663713153112232944523411201826486183563476558348067963294294787341743905076568366628902355622940402249616649117433593499599374324558364422488910189046067513958303480755141131049039056213208943561083211194785297752200061508712780929475340682344884744168348745222010099678575085651702640883518398557058095690269512655199473331394481299837502722051016606932923504987158132423942369897389327363046920460755323675011304452575681407119540246315624425615457321388699824999509179167771522664097409133903918563691910768065866210774160524645473286102242150522003740735060110683737656956210500160671298983889514842011767370486327830009279394655644929871874973687465992229369791831174560892985488712249161220868194446438091413923451357351127446886028004310621980100988843238740353762168979996759495498398884304248676310968190498976917148787713564189824510988206688442312203247502569316039202820173345717422526978537665342417955765142091799576707701556179826985759682869054200253345925136533927012794290933459599861633758425258564983311465327453535268180272109926013042934334164368055332380547580912475136114462126597415241337547155850359380024648120764281531885296530479191225600565552301176769549587841329728300652501024379529301588320134427944257820941431838502233000252932517048310361589247454412374943510081145171009715242223976143573416426366585972631693877810543762591312347380896082661784700630547615874976016238919265329577360399377073272760715024150653268983121971036470317112312884301361000775007924549093108795070903555715916111053030452751462455032862447546469846445528523662823478988597850245524028667456098202525314030260366059756510983657106124985546473748764119216520560702843462099560500295459048427217883088078669383556326591551050537691072639321595062711664140659131402321286499276668389697296805854808469450873747268741545776986979980510410442078402823041414083417494666705093185975819852759049251576200005885195600344665865249528223150327124672209707298938002119978132711296418306527928653388901266384591403698985173754582013683184937862789809513157425194881701457431157961041148838946779394090707364238392800891270546732001338887456089105807615810350985013676507437842420746572243021964649274147037441738143365880360228977112530177887744900569884694392258312709223200634487103102447014089403812128397178756993564661852492234883875467847341077015430997194046068520355722813820406400964635784693535343684971059725120210545949566008037338463625993088474599054437096928808042216016956065237845606796459251595027308140125174935183741010200093086577725780501368115864053527069484376588764460568316241568249017194586821835426903836056603075783711176724338653473949553175608900736330550903580279633718113531500978633263107876311427627797716224711768753529753545762643257605723727926448304154646435497131555630115618019001585591195135758489776458876668662955140311385094733699923146644439078779392882810888760613125423605716632742843946098150159979213145037406010527028840112722303760376646775155568086183623521050695396088980447164703885754542689816623450881302124449063847619308657473761724634967287621562510434992598538216506197996465619650339500288113240162682974622838003724860935821556646033113181046672796038638199756388067919969985341830930096095655795320387945208088873153771155703331738582024725095827223699765998936474689627626988821892538971044785102192478930836720573349416432695979869317809136324178867740525226232903645469360577983556264350014097310693851600587900941204706518955909498612877348551434872807940300529833498247369783714227087155313670419129987200344624787440382145069527123491073453691207395456400663135238323852085998252038288709659377731576287107126064971359148313696196087882785841220207867854468833098238865905487484598054612281723256825775319594550074750191624248311738818649171516547460185229775800004464279432663139651927992388318281520437898158294289874342954290176271781909680958522710299063428961262452563044454012066120065539349932361993227106104839653213571213152788075641286557860088694044944010431116727220457423789424507730211121142735939022383590766099721126472139775158284195585087223626556571357002389256645571496920026276195162444389731030495271087225955424473395685420962224430959639354637230835431406249193468609971411851686897488046492116757360273495857464204627293857609730877909712651983083593653580983045091275657997625511810527500903653504855957726952615698930293217469647971422705956759442366010040107941861808600687977695653530834686196912029703711629195047753219188790396512540951179705729840939643200910471747879688525752198603771576603527672643907050209863398129599281849843768776287507510947873863414262715088687566053588161562699751341457160769693272818998319258117118032564569370370103057213051900673178093199419213953855888171539834752845153500406523894737985612791633259371739337551233729658113562336105354612825609947566412301187494758529073875838232161037094467811542989619776977855850762631651228038893584883246660524805138250832573935838327274963345922067211827818789233003403833583118243743589026845688133973322318848218769427625700434052725772643178811030209288847327655048219377709495217672092532884389214810763100334509760726500474350590633259854868837390766142176532640274115158062290656304813112696791598006231888424745207722428156107307140823850646728957720905724366741444234315150659624624965291876780171039754006611668278574965964452011285372690133324287245941748982762082716253139565890749863784529630843681354380831591930181598365623375168653172019354172691761491541713787215529707677275720257822713343786719472811816179094585041672907960368966766099625513591287504098413299551357417098228690947293168455487295683500844170305598371486394190225273983094187555936167280505396775586712978537816823390194762440623145601973934715519532440643937358848673351016923449082873638197065379620900662249870779095555542714858423354227665771231258832767557821886215010685347105212832495560879959264801041696149562180257950030277292629147437358500836973678466035536657594989432546629475562178098330578546878034871226383592808069893098318322663210922377529504532915520900398976123581231914863978064064030180306032972245330680417271793936624100902826606171284629047541296044721266229262798829405859512632000835713461417044656765596331662784417833491963571552146509579883811405259839560497863933980199845181991840262349288010317291145810990430755672709478671183052601927558082047926834465885518815689312673106911577598473959561705311219211242553066950209819445903039907529323366406849583840798386987787701515689957393669090897705552678945322120581639375339590741210271368938702260816208964005281708016139054398324937086463314856842454002264707666807402152704243595091666113945176943088044572347268112441822425734997507365374048224105498926152572260664258171918812143184360955297005552372771423032037723286312942610974859856145244339659097523119855260424377201445664534252766266998233828004152527365204035811358272587092075079638104149421874268532734664207552832528716522440910251992333579170171374079255737660370515565490818427660185687639595720352729058510296206822580336121535079966208963128608979835394245047711092192564663262097529950761151787128553087533083743861592750685837976789326738756005767398358008885429644568822462473635766839009612776425775092803361686793824124638296849696808289621574590934420698009385973867472062759097367193133597751362874185179659187846915313547003261949305457342239805857424169324998436915495656018861749420061710258046778225749411328964136028171973534608499214451386545336926685911558755332345418640956247758868422153932624283281666976979250550242357584524848214967091461832869311048662563523499643573975191633509948696092905617423637694714546867303129769305432879170009559439447255349275278392400780253374446207512208913218948638361415815359692314393212946264592207018589534414592901983657696049862643633166246706361735515169375347381894743018746021965389681940404871949121921667711363156058888909952876716019528928595834705257255464570849385755971791596306901242080142454926571425118584716001242959343144562752198881069044499073666888560311985395846563543968302597135493504560420121155649599770314826367218012705451828494402135892303386364703082468794392513389028725839445101023735258187342870726583103505464093839378996472067501563182746218161616303950685978337081694266210764468630874962681115489920719090455653337083484310781765965129104397341741457737191352758590351176009402904598453805710388755520109260719866028929946837605507072142064300125068896748841098662456049249237189901094253965033038169512873434275553771611650537365412856676814278794522289366689164239375354450066648532149785555703308015333335532937848315093581246819724631794997094498276979745242048601033531041387289556001362021036803400623753510553873303650923938701001214549723340195608625995769412085379492421401164327750887158883573380594671593616757667682420531611210692898358126598305729666827285369007564701404848714298359376544315879921112408940481014162146548169888178826857754806175640319231957631948657524705173980472646655935580546444738447767297672600522171235127931368894109829156441068285648969399975869078324920433740575524538880944715986371708335769021833458983900984373214316615171452142174179242164528503994619415769577174383957748598499045648134823142292257305900237085345511215739822780541108762857242710116991540470201660002444349698918885832719593378513863982546445631841090192045351727407217601581609629190405423622310744847234540109354334243326807384175312119632286561192964595576288602393937953258101710476660899266830046081147020470866798433002913098039352451482268584745377042870099073088022070077120645618810594722101985519698698383512688533885235972774054440460130376847400006846787405640331160899490938050906766848372798947821029515685204120900563754484541584296775931852722645171113574570236737912349468906088345880972629002382149712722053188344395409092192498961504196517564255065202651890047305502604944588472423874607192829095700226364434805945347552502631444377953977265546781885706609907166061486877345297962359842823481077920748518018424033554407808217692025704432733160131173668285657014509985294444142721221671248775352664986170740493146210497016848286747595734343121707743922947878179718961451281439955902409457208610105785089676563587063452909009308841949973431062431151081554415145165634962993153921134685490219696260982257264379713722342697559469254733943769622655710850942599448205532257171563479189328020198136621510067125895844041412284971455135290366632840656315286303564709656030395083075818338524656692535475326692592158167372075015108210221035444060926088539406044297843471196714249387394960228880107853638412105084573595986562030653002234901767826757950595462522950024133751503021515644884837096856600114547537235808062962500298292464565974167839438679305176916328968027941239886332652474488980958833244411144265515943867495948196793327321390902909222890481905933522218216211062348321598307658578804864200376003835785594978423631572779852853543209278619016239320994444039564134211444948722904284058235585416442350807604443183712477387375728310595395711257941002182903912327335263285390494796011499309123851347214332673993063433340078161178825402502000550569038126708772473194477268080683671375854646686627028300526296771010562776758558080188884598540108244429548519804973489817527678524772655467401917010594899432669674010439711686193098164426929815584300542073819537760354347539957829762072254578165699041079855694432375395365256190314228902395518700645287298432336007616553586662743790936609976414847225423457743918864246306123066455380768177889763169532480084792401545237412756514987321125915305644472351865999524706522517318911173864613584238042634142507762357648223443252986141572987847047114503588170344647585681217841722056160843539456838646538888864989264921453997224380207193982213416939369571535914823868739038761601585653486427814546013870253982452902920825695579389274856933554744070201520090747677583408585800095672497059285909586733917023229019090929291604692500803615377133947318378478803746510971347018528683164407314524652467527699971340354358166399521441683318690067080933123582437032725611297274048755966494178331250280989967684449310179206317614932400849354328989295773511777954842197670030805940796529515316832988885135539811864480235664038372764450647171728709480025107412769306096064230288655807713809945046002240727453810356343203793648796738805109081112696161013682606278242826029836957121599132937946594890224923062081760404407746149580955432240816069017519921819809713599681930313355163987320771433881897896554355033110947941797161817088074332425695187404561960065528397674981773246060164937832563560187918509230391517404416611378440504707061509706533062873733555064650933193157356528152268224126500659752634052806482271940643178756439927848544214629231320012519058112327598993930538881450235254667900725895446217116865780958940734187861184137609504763671369471862333594521015620474621844376677392083072383922624417067098845919590108949286415961407307415340673636450898817347983632992014255960189713584809610065804843637135428159119382239697195595738551079598999926163670275986012423641322091292963222517610964924289526088287941187671817191466797324652947357351695804073999921208497840457455457452222468488136279780182532445789203523674036455836526621226464060639057115696676148799320146465590230020055039957420018457228506746193894624740426080609381423775640129482104709390045931648582441562239818144163552258062200565743250387707716540543276247478868087339841983063207629217870462698438505967312184418555747586161050760138504250391776997328173101533836128622603945214413696255128000012353085218752382514197771729960948918974618929292698086161487335456619048362233458009407294195418055808090316475179898350240265281695523561878900069726000283078486490081730618825351742435183754218368042555472244610942969640293675820508716828128748006700812917394030442695266394820381270375956100553214357390039544154557468169189114971056600191306225214847273028289185863122072791615400916765852045134117163190246062455598231308396033593953117574089458645886221424297538906934739024117234630543735103841978293766983359340954402940294667210355412937847530336572133121078962829904990416034461932519364882333346081263492538114631168158193338178104941021406725017789911115188442706901403973829701144987214919496103137521925552604917329070806319266294630737414162993782401261286689598497259894135100298644526772510949719522558855983275758619032690874059172002103879811106538999809971795495455988271168685638373493630944269280870245850863265652027869606460534633275321890592741626335776483513096454696638138418126209433128923829450616726376106837624524783250620704452733627582554404093330813165640144379408484969197022983722081750642194697052236545140155172913198176502540683783949244276284679485653489530351877185889875423377681763017976232494960274022929777080944050873534031682338074668624524947993245628119064997330047352156965395652269473999278095640481083512006506926837734387442928402929200932477930934969271215715468733165698946257751932134757008010980007142205303016014625037491483265395726959697365248612187340676802603364066615165371881612989945918576612625733134184535570760032864726840819096068033837309151631384876075282212967605515019601841095501318498352288607111213488222529721893727842529056618114221346285140278043976685139255109228985737291409117358093726746900758109719244787797099822331695596599870373629144025265197548171723940264885590555261607934878574980688165866688225868172838726606461218196374649133408885455916586519616628707542985952738940849541695735889383912577036007337976658688595517487411796561340457252596854926381988976340936660635303445525796263745371947020318753275776584208422342939600669288486591148615891797926195456223740477845388773487786193484276982840472614632804722786640894795348419709273977903203106950912020529668284878407054481906643734518893682777475454863259979580243719258640207420250157864343385862029779156186511767562052009039220220530967861207951046685841450699549849300542920360494035333518367569797722290730695100419936119286400256045538535305225272699582109365246280124303587941980888530798135029386693412669447706848805092060822517721612719617892149883867976211231590538011949687999313482947567290468746916721873852300239514849112372856112487575861600098994036139144301806056430649350497812231989942091369300036799731195403472217634384198457989047506493846246617627418670150636350366841801294200298477471861482433146792812830247771999608852009159160949992118465783974462732777341497111221778866148261868065862195116373695098144989565926501150722675860214595824007017907251920673120237199321354391540612817525771537773675235526699378288758058268917589255597845051991990740691353312466127144848702241465011331061561076823756904374376039387211651954765516853233091442673739279045787215024503059713879407890206732268128926205997151386971977944419623274409522643651258004901527987819297336403661382251031945575036854129822344846943027839524071638928978552186314267462734197003888462819868632865285928234276907972339142925648159571111899310503642074979958338575550875977983880434753060089778542953790403667423038751630235476753974685428301343347619802384009811103155776948369083092261400295948756857368583006581766339219987023911215187908249873033113594481138802030157325863493163408917082062995858304851022462693717512599830808708988252464539924827527283314257526074041530267610940235076493767565026580663761000545769398082887281036281656939856368581153234142546876297034311069051934496578418242979959811702687580196397279584824057193828184485200083554755829736329302661714329683165782469402300226280478183302187118843213054958063859338872068204301385955967080598276419815210386590211279102493927964309560985118726350640443900962836871067808414857407330635014690785701313789544994997437233372669848747563963287430137447086025084377363888898627634615580211987538065072754450364375640292684867178292819689218506166499751922608920361901281168780877809945106090324265124780440198460037416144764986735977173494916205253211661201634854774737124337999372066546937011186606550135424164763918790048212247609274669054414355114845744215994715227431261412909828129505130936479974775636118799820696103714189066616249682592981511725577131755352479477135182006013890049297802428228010376522668219128396856224297945232088671046843723529269046357128984149482177198250063386166952012895509867074696653534988598055572149322342559547893170293519225306927073409040745460157513455916407996775363664217309120499541035813984538919780052905780581022767903138972037804303200203479314341402111498614408592373937236335666124147323851829176379694229495516555202644822118703529129432041507315920456596147475104096509424932941258377147361358829325774293744639270674106193065148068648819342255436087227080225331373954876887024128316941250008663001993135637275158947864982282082734238053832726779796508784552927680155291907499480672287142927957429936842581616907978463211542564312014256587686978720813263636442931243341735959827578759624441900819613070389898587023762759457031539435658296428355653008070216751193812410879843096748423517079693790640758494966004821259208082965132579086307703493370490584123741332204363367823739053288018639877887803558628087104161901342006419154636953449190100118735818235726426898269847896529111864876568363480779796674559863773211654212662435848830312958088584067256738713754817454139658433688915791620861193277857734040328305921555800853998269926838292648301667900654611874640078739072813744606356946410223432028073287957686159587814246263964149067857535490913717868303197307523103154455448924037453571431340290120149524169975320955732352730427323144136564689264211832194060615790804808285198463204521526383549271534214258309084270806776857930416067653286689111782556137649196347432711319810885382397865273636038842796230819101239523981829006326615094759718503389986541028386056548957965967402415047309884819633440122650256260975938542453502706452267272032229108166699368468209037774097939550323131660313400418466850012365906636022978197818176085784535316976715709422026339559414580254578871179978683809073140436116654224353127369578392331026527915790768389901664429630001626883987883659392055211250605616282971615090745230610104182859262265695623681925097864705157964080275415807198918309194935189065886083543715871864739933179948724899652610523849530581888374925599332669865106958179896149110135433893642423062386570291108522697308970833280845807820767399265314294164007175951627884418188439237158823523008105952895567959974840007569756623708238434364275229327933827653760222210979396575332183273129815763464425713768928925917402765857064235620501005556537680554748617123536609687621645431295134397611394933967744695477891831648099581729891584489087189425179172306471133261699642418185614808191620469658577690144930232761774995690633614163457884316702779179388254218651600354142995710061126683943914501781168486310962319539217112215263075983392676934625594274638189752414850406995672670547731303344450291432311030311034069049028368992049712129760493123667658078669082706559682800794559773584993345303549069682216751894238021121938163408360006516401603297167892627063941077829830131236306698844620051047699165998642359844581594129381467337848800258688560951929152373064999096652435414182075658330536576539278248810852831462426203665303623248510040980037558795933376811156070243814200426742123971745845682888092194125302422079394487838599068835703345762236082265020498797305038631834594439699717092241191197303358625491271987510045239856523497062847628743113291879701362616860422669706909540786078582088665027325133821694074910811893787645772995028368105915256332826151708839299704411697271805300748953453247832570352120729692385325221947140850941198869022179972432816353900778055905204265164730477453168958893177842183559895644764534459924835516498852811023634638696177422511243516522866863559757599291202757417162405343629868329584650248863558803006179974037698410765189539495923505361858076168001107138687794330931619861862033035648220067700520542374365626582152262952949675520617344475026742408478540598830135880047913908360985488474957619423073305747357105447899903119394646988494942959406330200927914292125432950287916830910886650435275526043236505527274926799107048919489079209850748069752412479228381641860212512739941603281557137964338811548469221025432722326655603581510055044633342104226801732316493353083840875104937556168545128398302135096008941260154804154510918748416017859983275476268290224407408314721506101340480495912591677951158272920207301303844079904465554223060783948454175234209164936960132848544461969836964453166233621435525501176412258829165475388418952682939586794483298347127402640501429084005037329818168733250569434258044927034842661270633456231913896401176214285139388399629204667556896822832859898575502930753391971005520469590460023212082803753396592570411678981463632505324640528057961598151341230929670239349529719861188267015578821339345138328347559327387196697278067282975597291454867212917093611736197647294988498716483151040084766820812980383161850629527578131148948607402005440019634306622524080948387993205864173790154050175040627579387705665005395035325192577122866582989957122176317945809184179968197763504749888117155900545862559384780145078099353424205080440928233753076151650168845953370156489815516564190065949110083123133776842141159140161928884444136527086992549390555390079058578372607661149502774917034812155925614129630117015195745240964737422522280563683823128084326775423919996258546339752464803876915441668118742412423476946027117291394778054338994695675201736127063404546251160780971943904596841538955481922680429355428692525848417048137902913264873173440775882095951592883030514599641400852376984589283726125514831093072634531034081353720694389463422115150678666196339791191534566340241338004061062078755760545399220827201545423555580694874205543302954836145048524822824484287716839904752891267941566511285783256475584223144725917817936859666716613347746112114608687780186512721091089300273669627445107243210739044922657876621860570187572012417834317066019837101293824455969139105072941845221126140838601261686408767886062708572833606031116734371220212537057225222383898471049209214849383628512209059968513571205960839757294573902423289141323187817145796399307347186936857294770761697008200153401145919163799273834561344681162567665443926764800779163110200471121887590023301619760046253881422483538615336459208979729468651837287085354749565084334742341161694744834864374640760127766168403551275575408415646450746814651715986490447574382708032399010267459565017333948078577088859815063340359869247437770713659593319241348171722610362776585734629658407125494384765061161562180071069016378948863172247526730244546403197252709804182529568150365596439364182918657152048219635237389135846320381719135331180589688787207770095167533486877501057705083577957271300658528175960734870585296685086499721632823395018411576794570030118170198878841946862256133147578300762678433184105104003001789008236544933003250948126389292773053883086581495416698568671684799383092984868703414286780972674810220141534552159661204058021650686775639822804147613310689470329889998945505360032991969819852805869824828195668028904187349475505941602516109394384832595861951302118152770938452733960849343232483779686336741939399960388687818038017893277159363680060833154701601387541605325059650949462222173655351619836381715264939464135605442518070793332680244918420079877758461688523393826267632571542650819541596341434517289648722748762517832590216452365547748376365957714082771883271513744459548602912285489494312168976812223877907140895545660053767149851816672001072951403931213337563948082793782051947881787377916568307861577632633501410458477447657437406637174235083976422129022099775892661029891469907120270575069047827428635617140782760116966462765136280748881817186537325972597437942729491787666631757119661645254358254935881494320656623176957264779456706556368581402997658312264358493256604563790650062822183242819979430041932101542756498100800180821584143503096522684551997833609119457901980951053075925976361759806902023529306064027638629225678217983017093719516700172242657256017769221067647088669233317888216341628305273714606127065467930961362761605543002875463284393453958659928040310652637796467988437690947451615960388644976235817572594403179062541542162811181482912558225616492027949295684346008170974047759961946357217924017054006465608745211205979881567462248774123519318554046669317741660845229766359251943960295233121062186663521458524103827621404644383459656268264533552893391363385595414789555483303088298354430731339430974813556040160587514075183061389050746354482500695466208466956952260827451969441561208812028466993108063016177309532069421827728636775180113818669203688776372275693367602178002087332687906839751505660630632337317199556814378482410984902768784514098583530994584149144801286261456350016928705397380568437792999406400735479037389521808636368140755410000793795567844353428307000891668852938846839098298370025988553167261015772964698911636275272835554999618689639118287873837597926820269047031279628341710861520969117537727792599374589577581272847422906019311321778457750243226962673966015063312440230980094357613431773974756494680060628060415255041978296523010080569267656561322100436386095373316131435249857469382646472946197704933735704582981455456931313317278127232868233053215827053542502197196909992559109713879860688057101481048525349077421955762254586233533355928195349112441560079436864846216287656109743840497769674311194736507359880576637899468911967258238238679177017631618585635816998925653677261318917421371143675245504374312864733716375905390588117582638800337541698236497057648390924001243360882192592579894993551601695409466745345459255995709134435407808111141661230231337688498978590591763183430513958568101293577368263362953279493123399984503715168148589412691179776822803802294190713884120706157805659776227768289576532136233214649416707259334732346611841104792243349587268541190531849109200422539051803867494771294845918984978257225102679211212037070802809872972339649523853494965511919065066346458152090872282966008947241097474274226453956147914886027202728257029557985114782447153048536615420267218918182169882118177266557884901025112258743694206042863485098355377969726018054289066160729380444682174396982389605615670402308821505374721425417571430049576574501400430325315503475256921904316066212973024400455451832681915135210487230359685611469978086737215953976481688102917561077847327359492638627956056917497411755117196474956787008749675009781706112963081370632265447925612240312116134134001342981068762237648591367295263127359176699272683732473814246630924348461804296561745791188470677415919242558274852886934582918134999074650079740553505260950684704126739043372957049826051692148493022224134102390133454141232240755113303562871774232503585515104339930604173225582083424110046714623903398777207794479172601292469882596346121515712864594967632675523477072566806459300542463641369139892814570672696102398888240616034943955752662516316911428940480418979250666827251254219651636040261388506168861160791214863715771706381829326274514147059043139128400870997530487953939242226790921230864441821996691102801020546417016082639514943458312818455645929885703907339326677235144090549316654129429901716688040467265199233436380909483927191557167450578560743173208878035428199967670250002725113071735624552094826224708844752726989456442918034909998534553220051119036855095498767278304596476536310081431804636138566284164687332783872579050756517234044667827784560931312102531602318415505655315396420662051007768847981686535879135128059430938835874732121341548521469264496528834815907878533553889474308191639558362118537127290900119187473036419214326873121676298794374036608874171410265285703063349833316631721427296855589457858852182319004616630501370400544592706290767358985226732696523121484765813491918129149210867289931320376966174390883026900262024500244888008599507828081700752913509502072305538634936422872734600744572999997002129601073390473130075886415285975470950450333096324793071511803539296328308336813311112905527558175006963761527386254950636692745403109433937853138280859600198939723941488550315158258337532399184003338704354985254873425069169120259168627691065851562603927955065422220548004275228122937076096911053814300886740482060046418604010668737142257475910122207473231710679837100081979641416746509837134998922774820998752387842351002690279448802478723137054809873988750029039647903806988263933295687448285532433072805304062203650839679149714669771752150048055679228929225700949327164548925667875311789673920998199272758170799921211452060716367134174648533215646695532467949892005233365366968035928102465329074949551838142509721023062628117802891540528261895120541119787015622331208710479613392844700555115285302811719243384954640188129372070567568952383468065628209789460286925547861693115408007788339443952065539362936637075984954650723941550023540875865609028471386001520853043025753125372861512589137797260727047187173248827858503449215847106224256111395917052368250389222371650157998266589949682976130026056722963297497421021514647963120539570533976758012192038941509341037822976390835792744976525021618793033876671394086748939674851899545637551369493336567463771943763140802746109119919546017164914495756522116480729817004124060250360700230306999139123140602367315628703821271886926717893743368718882581578908155389923078684735474906188869677198780706909355067509826034670857590734470836333906030942698526762247305001922387672787099723533463699473553459951815617670159609084514635739902646274710396082413145905655818088873912077611337631857002686697087100834885007184411674070211363165466728387719700310979154805891058985374487110167622601209080460375257499271128356859645423285993447370077595874738106661113902629412757758877200225955695054750640186315604866087368082230699457528863736068758078750346882542722737034949921104335300105940330288028064807677008254879416170284572295614620202425663012041649081446788130434625162369532901512874765620239241782214802574440549394746320808400313999677496936801256274505957147510080191994899782650238775196509236598418505622867439267516350122284523987584547095784933076790567456055932527908888812777396068535058823750293904465148522122351112023852019970296319182581857845676600420303276521032558332374928645790791251579481246984040595449646095501587097352556896721745288756438515943162182302822146714697574275722439352342473815215048507431123311429732617849720675430079772490960171077549991505927461641244287551876417687684391795697696081260474966146027370319130545609613254217300445004572625078366505370710729745724023387681040008896749307670721301605919117504782058897103745588623723802220734773791076629705001479557683279338388759861062552353901972862789065922979893401580710387265930986219991496331359318157259152808194997459227650589582941671444676940433926819838309647209271288752139666882474481295766776205230994690003486090966719780140757885568918606995352381636044957061087749073738294028597514583746122382075007615257979501133933494205675522786735595580822406983524101085556922473145275891764161950982848309931509182403787588907607250262890533422027663739856735339020557549673215114170790676614830825223111879003409286045799090258209561195229970314193643295931276562086901861761553260213618361182018513486450580357414536173669181181190169977594074392136699542264087766917327809671271513410292384770580823297756765893519570596177466135287376656592256391397595659089591362393589915482672121310330483587411579944586171682465258440581423795429170004880075487929370176550766660479318097068859119128799260697215066746917066177348035742206922719312736000060708660922051413678222407159488917277462887589363217567071898652646205058478562176655593483252989582627832735599726586147065268356659111061111440869563048348487075271682147510386666609835650116966960426150879029207741418305024481228526934977791104622507852657866003041718577847311878514672194016212812318350719456091553151547711361986569926051754780461627518346194479521712012579962617855388598912546941572554676230292562947059625458420748494607406353019079548610948500300344369567633692732503443868232387193854169966662247727296062012417841458774794710649331860205241899785283398111397711140069359829640044877964984042674725875574342474077696209223183096124300980973865859055325826358006441497032236064324773036454954183446191579054645629898373309189980554058174124660009015899405068643733314095531865622651607872283904591821455667803874984946012281875357300242705174424685207824552939607542607003141122476812504705597178360766708134133257466795522582991497811230423462785618012581686288507470189763228489498858937729179854242194653701395747905382723324050729660285061639691402011467895937645273858838261696697321034004418453451898511125134372787956096487704023820110914867513409917237876705453946116819479282083373796434619818211337397495955730793254297280460465681776537799910428261197420956472934581920330792459012442674752658596672561897910139345197058555750303999575967634756268606852822292927274598654556041061868350432533953389226691182301771490854630690750274151173778784004966829094787894661019348808414310327379964417863549931265365570945261920503719283592038823258537135667319863168644431075217272891937998126617897091995939622313398282100325505093345201411564976769509976942958463734229773958748794583279421664638559583140250816837890179351196565744373987188792157720476737015255626797147150547922006767126024435873365944348842372063661405124559490297583029435058290597303744668226825317949233215386708411389515427489573097706991569394142926496280496875183932106497825433559110233422564209899548632684973719464951541795662223058114112048302912445713884770853370004989354441859474554334311765496643599299214528702447868571836917640617350357723836307221970076526187822631107799629870102964268275403998683453102449461425470662953607457687562765945919070636359191444081635763701920889949741351641652885397573826204465045811946503508694285195832376549866318352717185166536807000276591677227106312707527504151231591789305792409216400047488947610890491841049379227989441233006479431721915422284406438334590444976195302984747491254052956661512832672282257161756684093391279215835785889975661462418796442343013116243461613802744239356036354485392958669001100074020091134392166771589314370465314256039159528317506176305114133030369171500301619197707288255972927103710282289837649252682351557462540453225293696045824443596544628179117473069540852775012300064430994530646622620832613530228450721816777719503556969840719072081116103605307221502442558997266344567784585868605860164778340402412205365245992154150657402976417708789569136782058159165462587620492650569262261936093535021779015765701748876174762115801780043020622359210695550574371905079125925735983493094647064417477401961447477090970162859905071948449054763597207623308364554687571736032280193139049480898616668050908090696334987675640992708783610066015539980165001775356118098668704901331031400321378821784690566876912208683026016213083757213763603459960689671711614262175674687703742077437770388155707460357504801181839342772074279362341808186704274871634609382495451492400289456399529262194871688415292960037535753467036405542346526002078156830395045416459743536678105567384642964033915978386522900379242567702161867890249523300663744340050729011308598540669093953741030199426750645144931346752993533502241381560192205880829823005228548676477833073378994177104531218732992176938319515331000906905372223767178430917794940559399641245070483279242306936133638884886635780487624423714766910638141007073375721553975055477142715541639047378384902808570654384041557665618411832763108580279368369699734726419299324355730922293099287533727932106003020008837507192540624507053863601014131580526069171703960501397233865458977145722620640370486928019601322609504064298584471099983334489111120011852147232360178732954431473972128371392275961352832989126894814363803648749682482464927890518102900741439296275435231882261004732509656424073034831429689575556605025739753318383061055115769037992264678103786521539512791269922994432709715504667137851379492452917609325860609119633418704458797106761029729265327653930439309985210950669801796472404325922661739197486159721494174428969364088474361418456738623511274068711932420377655026022780398326189113352022625453913795313683532047523061487019532356749549238411650201098277502931720302401217537310382603023918680588065969202145101792798766745140734085888381136064027879498696035046177621820947952677828580236369474118353020385931124354188970534724076718600261013168035299976860328485831492956870492461196745084281109630322044885828022997975964881574375728415290139906320285873774301276565377375173423859182915624377209260247379601663564725705721021197547656042383269630843768267488301437060245182447882952299286802467032512537565172466827233030190210711807883294492491471294246233980435604781768908137348275616700076397145427160814187439217437416013698960579606284472267814556412767344095146317802639547486132338536370339858508912303923991519220009494018668275162883335538309058215104363733935712767228998893602512152532213697468637040365704358325785259182429611611740983421934891721528554016442769609717417795991753880260981484683735036587661826784822603516888265132157753030956505155687653489440038992872074413597712635827531863875958581749466133647110222465715005923682179155449387997855112109976249516678553504813423688389149146075781354546991435475131713262377677083343087007687530991597628750887035213797200272297293557013254155102488975104814253032454515143811891683036555964018386634832165221473218388780283369979184803540364156022668816125388294707816271570458336048929608523357533288904742595333728184652883021454934508045805856538962650955360268762139032611470112610963536566535250412181058974421467023855573618851148448855378714341692069709090871186282415365003547231549384300801943698221187668865973539736338326307302003126038365554185055214341965822862351322935864188058161781563855524619219277172748357099363898416794065594514525226464910747457062905301537852053858057430018472898499980633085149154687560299571335534663613402280105621267124994745962276315773209083088399814907296760974955347129960444484301628361022802967990232736654408717597653377885033898666713769843236723040600560698457171242416885421146198183169400188332432704723319412977380406132015250505394927699512369779743503287077291322340165226276547614503674451908032753125256176628163637191818527283945771070591480072879980697951105464806679560410826024345274107953452943866742806869232528778423707908230219303233501438130320248641724808666726989398600953307132710958847231504551696639810834816120010395888538587295105647865313832599361038252254589197660679612955946838606915585271610231049846369232715616466078126801244082471269330164114507317220107201648282995076452240420876761610581033051038081328883099456347592943243221486988307700529961088237689070542922129926196430489153035672889843017726752870457682972600198106543971724779201494680257440701400696731767720240544174315322281535855369162846408398015912706821934357836935437536237964856261826495010801523022199628590108203415206712219259275539897400035828595945517398275894649896123002017813277018129747134161997219060279508059096399206948390151217889807093857250072565341860019674987164735721668396634099530878943831122076481225471765794276090409005859960820551724002369150960214021040308234307184973783066031687073525510828138115641793211443155578511840987046037303768596111901577064029928418685306830060722967981235433614579024848208006769960625688186069487848756006898374302300863621471842162908515361391348912682401485575092354010890758557868613088182646989757352628927449440355207194470442154757549712350484723956924308319071463623130029232363530313172553738776742301139938702168134244925962083408600480773098923422008736308075479866458314384842821808508637775589217877618607285760512842786833957224469067060727298642235784160854391298892759386196699163039632628303135374005819386691453146157368009974075426462850555560826884051273580270145575449073555762806793121024315233885118488597521577166460841820497008710195087139814205017413582258928893258961630362007929390075561639468049958543634792517588873071034588641192618780225494479802379660374418419549478334440816784020085996845250844934423026369737893960837304813102853517382582811412332418157114793563581270681219534872317155046704186891334764694491918983112811630588229206103869309100382617229236434294130708508648032660082176382830741086028279785491699674060078918694198471736956830352681741422389248900671865392272747906385070019911726530214799669488435174384711994777248007094420415355723894395276972174392209230592189168506570674354053429772006537570311667572175788908827374229324545852715428369097524160310289388262022740093836476670465277488056565961952354691706055806574078864197938428314411499420454395026436110658513189035530386560575992794978726635851065242729931880576224294648355306168134222040054226019260631109296622813551186492623515380887195001527239165428640516046324954992531941682556967997589354026843316276305350282378228488952858324351075823591987328288124279303787902994043242291064110751794119500324422515150726718028399741899833228648382395831889907341996766168535836983562416380483924154086457503486532649387640321825080999164615347704397276794056336542849985447113577396272349441088622932163776345276023032458747390416613610918167791743204353988781391997729693862572918020691675806542060466455264814357401258901162170480122202117471415437696945344418858700230428862695123605485205221394631646586291737347370214798856046429951317350448713206230308563463111704035565341278427093823004003883504243601605873748285896226377039112247789865874432157889943149762548385689248520277603956429852359766633167231194548591102848276994169272684560094302272142924023505140147058088905056867379717978044432690863355294375035962963268047786220344097098264340911676290568332886888294975940539537290704675052552338942266607521093515858084102431383352562763875085885773808756816211844483799103789782755361184261905450680268068756783006519208754933661343217372849743021315946646754874280243030764759742820983318097591409013038921117520646849624699420705905195336050295166854853742282507403218581714825102550691320493403594126550072544228597074023806256885680121358785318901707180949461111506148480360884420364820307829054082834699284827875434843874129616056789500133931415696062615513199523125427432150020317232410778979402337522773578060467117869345016929421527217105089900641504070923113161048961988761841368361931537951077048928776618866642759322440700893268869840268221650931717205978712404830783823180082998750850341305867256649544689375012811828085228242479616943296520605897572167293661605371276098722801472446341342391143174732052302528443693678852681940254104544917510513117568330938888267708190452170427815818735431186533309501340775800854353698967022655848879864129817610302478713591287026875828449367734669906663963683561833382082731708302967903610323119577332525204077471164495738549680767545033023669851689440282115838981034312876560366034794787414568168087851808273905539805845986474288854922036477003619730265574879032616309692453280496519481724422462308339818937447122118821184437984132118120255686869530132724865654522803705857991093528694403449941282526662317789367352841988133814233652572467813399890693536419812100545717371157125327190294461185641897332796632241293135597734064608122623420079536182009639391954130818345356240775720550474203383207144479529474332422666728894023175527361659972673491467712979455726447539488851980925602264563537990434342099317413162798054622896722453666250679561000965828456552566005381511291957114985953176842796458980579491900560408821637791140764392850783628933280689244692664133395999758376556830442984458889014776405430364053099870972385164218327007330602056147371475597846609761617404053584696044313894549663954395860417142345475646779523701319941889695967979445830340618319519208066722763880679675286228830080660272911917042719462262885235800355813382650713187584424770861131171997597997184368966245198157956343503687680952883137408797375310728169596844397351707476899916117120188614743204924114065523042157031396934033671725381857708069412431608863899904405058112478932445830599841916052044774288365786485176557488903712235364335557298615338021345564878099563229120349036266149445656406261874363004223972101353871305376751551569815476920950544488535185288431506156960976130048087642273731967584615087732509860620826475991499008895275690395112357779114960281407438528968098205288243675898942668654128399282548959783293855444745826906979975509629791986949181552539472388972829976274853528074294168387035711167143886335260320599009203766036697211482598621142858557367409034899709032306746264769336881477298096557736031380036263638563642336885213119985963050694181358637330933022432288903495241631202272457494563940366447865764171495287085983048523324048688606028636370533768517302067029783277670732884657681465237727949230822980611726009126711509726390125772709551554070188930839007689154418818963566626033872318492910803878241632999595016561171014934076956560157816406739178462145545308283752692042490759970191447768076347500567607074941395314424166040337669857464286293446952232110474425487992827671920919871333527851979967870074283390518756324174694593164478519586616819787741236146502507873790490122983063664529139962177089152084773043923638992367736416319882944963661712589598869927434507986530075170099632735229033764453108505623729129954122907557378422433932280037255324037939615716397328654741422405188935037386469253508674069356931417980771122495632752991150323479532614439831688394136681473135421984828596653250627999135706085850970703618451388751202315781516288861164560189864991457335215400171452689936039938174502284493639098836228720532366889188467485317768167161106959927522339650338675892062629723092507804374444762713181601180192620073465081128025493688557093885469276331833335745417672252596372285810111614690917474156305610898833498267827437035993324593538611513083148806523420491991843996714163134110089153674886425974713067497401172732103349232415165006511070944575512794092237478205994028120927153645123665724435870621219069913202192884112302482826032207741836931622867630910839840138568969447119691485917417466665192570719182004787111012501497326876635987582003019155782421316024291370367725542307693968793070098869890127065732168061677708045635075169227391393412299638334886364988438320722665034424010140958584961331376441604188589373762031254091522194146559354688697694217004786035203604924606428897408039907096251569530112450432229341199551954825792176151463288634543785655431570241509588900951893338531830338424751199028619522207933485437848861979799753178964960945944647388330640439116775452306073313219859553133396937684375496744805322490622420258037918570808391386081713467727709620614715670370628163470844654709455019622777446681945338654171280329688018015775445332972467222958275980915839510072309322660625668090158708335224599392687667572235609806273098638880093973867804888670450825013003314930149625166064835936325940637139261887372146471816645826958910406745918178428376548300985697707129726937018169185662795537268712007123911885702456873687840277144668851870814934609507850514074928160135499070588286971965718568869173017262452542350895054318939294208761382172195336232255899681002740419547004688849028594155345843437853906854698579620155163888353429592537544563248164689734594510057527970264527101490610090986456029093103686577728486701113613415507267655066313129446982773867399585693857948792788030656101036559048347065631280752048064456452483033011880874238848041407018388329414141548856003049151120226576565171144340874839015574850413845251866245951700902248197072367900761479286326942968916523748129160119774842340558340832343164612016444066227223960668356348112833929735824304375586085023541854003611220863812680810996869666322616131122122953797301531814885049872438178354103566738284461601825515185920155662786704797385469067245645500320301655854983001812736422631901423998252918425242128329306741625183201199341479013452655806781035986461642016903847123670381382745476903878588263394118364942304172970467805531159069048047291031715515420631561392861047714600648432130655607425559912429152121224435517903463064953943012100846577923523003430885555109254337316655560965165434890859464439344999127589114656266373449564811096180975253401924828454896637411849810747661093669340252384689707652971147918872451839389720339740570745955430516196887771446245067567288671504658659910038497690495528406164164031911915505371442861607190767685049151620330365876664683290786814240619253683854589703947678816897104432757406244713115148034786333897536363149226767460922874677169163428858017615116846186018713796706749348781368430777947866161931964039551265967454635005853423777255402834646130808155669609665363787635083881408862044196381658440013470721595560823632962950623386069208973666771956791243562540991149376071842460014075496856290742193791247005173214020897778727418615242979544653911699730047031137174737744121323887294950598131082130489228904570979572998775308531947868251721350576055769583623001316108390489303684055021314883432848647908172402303038181409822774178812181391318441149840150825439409341702929992671659705209666055156703778246097891717647329564647380613279873318603675070483761230630441477242973780431484430223486222048704202840997445439715084015746126473149078594879527324493345343908505243249091152628126139900009284146968377033418166680096916712180730564410394333170528955178766003404858454773495396267229854624962542708839499810352532159198595578314708625086108383292875996286063056616046456322333003452311394760886953998511475137080248496231366983346643301262111285990599396624238288350489785621461498544854533654136312536071853903217852872780501550662722241649852912502367882265937879706361137000319015360679054449597144832267597945443456138640426922865254783542837728877086775189535742608824026295852431244442921334082302418532602856884876146859858926849045468781621045542066867442281181373039261272163786571055946710050953207311349795273497370795191909909134316277534936456903861877125796140203865625420853598450671083541177050780811494619527430799019041455741648902491242758118985931800963517638917113366604594414714869161029633276250906040258908910509013752243728714173434198430465620011722814564474875738117246272998384284641011351671744088629300938646901201079720283099087404451812036937276314536178534273212430247738384821207498357480012462160852628241865554695700833885581851028293035308649061971008086035791069450401676447976385107444008648105391658630900748739605806574785006693003253653815257173564875640840005622985298492001431312975274385201863144875083550220461428151064907003728799937205722867410714127936347772424566903446500766029316813081271265109581376619194363657465087301928350877755750444802704216089982011127381063773456184464674407114312119415115876496928944204821637073377339006123519700095985659908126598193387927574356578223248822526365632519777474046131443266743561779461067025398698458286037280051906498533110060113457543762890690849240488022224950284840024274053029775284371560477592683575382027522850517325936370541463071827455792571563691966597031500737537797004657215901713315071274754152268204780690727050100521357711928827748215832942628377431285792286603033721151827041046228462134286848853387848073617655086036603577176816858134920109515779515000496598360196701083665439837046286504872242575390986602589441127556182239577841077309217657885796823150754964257127499017592175670575570203862464302587131428752067100417568262868025940147725489328220208059971165711112244630469202542496517591684523428703828568780347790018673075920728310594113085776833386489608783274099489671675524412068281011079959889021757048020919922218059423625747320081379914223479852442729629196443547494702055033675867524351490406778517507238595934334988748528970171537724684348979779804573336958160794340492930226937956403281639887896606105144513003804247213755946409790927929929381697969809105456523548064823215620847267493305459559711529262185150229570077491175092802271143088475362698510388871543516822272644427990964620615093782222908145361661296345844344888058168610609218887744633791957342912074084411611085838434400470288302263667141755089760145060576325127157095659389000935496750710522961189943278506202058604969606157214504654980520364075319034474357919200932001215470055941277181899318474527534938795891193599231052995489602328517654656075092190875820617087992505304613260498113366063352520216065674139401773689026632217893981627693021748671533062015031675181849567926918347881678307296021061823940783049516890730244102213175148866984197554758874537913328552951257786408440857494578692720286817373178113654242847859390342971546798562428001926128378726893053844893239265668857204497055044443592496683269729013938834855136259441547329512297512659821010690767463184321438549546888023148310403439378681446034930415004898504724341209132134208788576585107441162039821904299808828678641630688659839207747006326636261860238671548600619932302759635480118006078080954063536347116282579261786408571249285518006895057304646273813795092389468871251799160623060702158898133395475213764860838263478179129410940308803269687226184369069710756118130117695976768313127008233422993653888587592117519802233385746353526166071093388373250066476951538712843571618726168736653432954036698171672117975288390657651830551982740165474639030884765605230038975687958655558417672298342285641317781942375490465957472467625816494431109141389839715215501137687515096258198130671370372724063993921191809598877298283693737256211321803771669190789702833675275618599422871644486267899830716520637712020855191246024234400397023637634722460530239478782216852130841522209015310224516688833454440001566449615420890316692147090350911692230117957768783805968806134724908730548130783582564841117006182455251932536060643796461888224936356712168537071372707345903647507396020046223668337018990671012354590108782235821365107012806729227819655236390264330721097915229183000577966119884557235508761144944496026862465083543428981986478454610839646380674012796929730955546518510781841283252941542256220049136052935711711377872052328208530806521406903435751975576850052995256334707295313802171170275687836317490592597137371612264038123841371540496108673433422263794457256215260128150361260600863680581396090165217502259774210997963658049857873360592309195890201643133496480493742703037111374354949500674276731119172850488789926306790658568223723404556845323775833767061478701418143537666782309932829294516688037691637891165772176633081070933585810316709991484009813782526676717670705064515816922314572568794134461651819255552724677903741990500678812120015474699611203257598121339336283784815177629124228545335605696714507082145529568377264210835915791058686078215685351477307304474737453342120360997559055778524445089668212554905696664742656362539226404212782044088144009543274419943622965900800970243512803392438620039577314954779614364101281087740329432773898717633357346223930009965541681054400334718468521866419387394824562713272197816777339844457869092838824916608884743573622964622840312849421963276187519229164927738977016327262469558999535047428805054763615904793237402406469933305014783150694029351643657183341937450658625451164110480129087670961877167352618641393902000021560167077900687149214618387038582574669388142701730781839191494092079223319585351184680232746670817345774189597943179210735828078807723352096531787080047949864140437373663156352315183241634471638960279893243614043940578360256342647752782112431517115727856682496056431833226182200418356864187016210362033708650110294635041856773126867746914238523084123159835365442354903356415510717105546183438357341161038069740743179732138423682848081802377850762697250107695441138384058386254218641608567625129080336309122373272121663722764789293290250480117280289974477333045635488155394074433592585324675960635811769410013643169402640368074185789031732151280972421681087529743186181066874874005210070412756887660378218656511502136503140945192035547269999016491018101394504791845447824176954041870181578438969675611121988839198093711113477148415392573707267207130353966099455479049600373819939075655228419462500380177050656557309160430381171902296921284358915593518549509647817397346812355689140161978423603268115909511544169634947339368126303602825764303681551051554184913975082563738533125168349818031504520181525749625026789345113392618725533724317083333911818183765434525080283033993866991241251822964019241959100298237590044755545210549062540719477432756530588887183711780302350560880174996715781225403327535953179215596753019416655686164356867030563265635247157494660549263158919705836191814738541035376663402125310975028797896952270055816511164430777834314889024879755996181281280063354341123229948176101544289596383620701590782616200812612203089186207669745997293841591123027138597282299957262796705975111143532139821313944810450090782227319152137876151093086843072898802105916821533995160656009466660473309563588829218284042576165852750609952563240361433620675662727750561492472410487917496678847645976893828800436001245474075154028519145202427332854327269349098513238448387873995024423486999450517252543080709549319800514313000714958897300413900472871155847550889431723313461119633394607556071712323477781594220813334429634207427651740909296105524449432328685526278354208542581411601114961868171004852301206600415512873965248717856880079493510239010634937772598981066800311135244707574674326309812563809018953427409916403825484453106003114029122762562928462265103619839718909310395545082436690064606990998496349840503563277808554490182930986988360749897550795661800855733557889366751689915382535780689510202532963536276409448372913821852728825607098810261573418187146387528623081099523048313599745547094931374286294538258889576170282237450375854159875771371717770259482243855959699327215937678187282756341344923906808740089447965151059441811110570857068235407641852070867157824846960880698881624854615424776329502087030730723822178383095097370538433130960033918531335539530151813631145572042358258039718754473407103398302651201113363025001982024361693692450222097235769192057127222891746890786879836497525338831588071531076567896311172615125816066842009013357874514177509257851823467269709746759751050343903167748698266321460063555376514216103197751882993342770682761332583362372971530878083233604928006697350550994078049980204789391837830768184038057412238590732607135419975356489547216711639134866094855091679419169999001985966842636463508935684694333483631537245011396937731730304251893755380564404051186252870197750357162785034284454253492511757624621910174549081985151721637292788364495213045503695051717814642572672052607573478093090122327556902019841374072710415655105834665465872517030700500591893500724770026534706222506333854107685374703322213845134674563666335364704257990156303404709393438925689121415063231128108839364468436995838825663796477814279639135533075939885423976613580502506486362237202975633636816374352430112201676329039593341250715283271507717991946644749234562182573858110748791834701719501893987922262394199660755230005297567050802035354406168963434163603573239114325812657095702042082325593485815812699187433144564755732280998715333545790408157045744709072118627419930700171519930947429472979973499884149360082620442859339244593013404982049947020627052880069704579147145434992041071219490491303746928606961916344854143335802809575022099724082456317469994030287233415503193966542959397532902324300077248752180776612453714768074862265584030401640933231513661172575846359217123580659951093484126125941118382082135277541737948511760385976429932082087738369775846454596172523476060496808620069288253015954934300719497950730311685971787283688761167144917569641947869194190338270809503239642585343120857188061605762733204291064524954012306948291849086097189269644132347907667442690488049083938169076167374483323229662639082510578517897738758293099459629560189817505236195742519191897704993906092053257150923153652747117338536576897338999730456037061706031140782263470869174855988883620740465927866806809332547358852812244347825418704248886732714593786613700281891333278672647264861271439609098819321346050433307572927914280856796021374158470369372301017856031199857131481122328634818724144205339579033719207682799361546524244629802100092620873752787652596772825130582056808252587234413205077317049868997614992992470686559049842223534301488480155467975832223852199695590947215196562007353069270262639983850820897340523542516916435275800469223352982081879446941403850823410499756328557167746554051716375077092478561164149854561666992873765695292556361658082071946649481330160804229002936753430654873168696571850864633370498284382559397926208198721923838669628241631225884435068942901831960184046420688089827689673412313496736364318357791308729513598199145628740933496408459082641997109886026373369885579714290205712383447664270642451417933959211327080746007337508419639192280105933719345002322168926921846681968215535807977650096823995584983324031559049365305470396777416951590089816830942735357856172036856577848002549058612222162554528494190197936219089131277580400453933003060574019755973455308925120107338823812700106587392342025137151736047862714928062577233574409127314938430435391711302473876715215479630392855827170487559837299076329890343435997583654967229745529235599727228989952256446326031246574453507754260945387811172053644460141687393946709352873345840403696972218426109510638125474607092013696707639155119699347547004324490183412124682106913786488104073944196021966751220292659005961689443111658594940878530547340394356067880591924798126248318855407831813232984786872313125635582844046238486736142817322476446147520549445685216677340934696525470359553110172049801090372068127335647589474908923933914131513018745987588742975697931118943941687839821062570289919524839077305965894779921866189548956717293017469378633515357035531684507745967128628551441297187922217429078782922841902526470064401374319808195379290498412193982050594711298441742001809081264727509451930271115522178048719564497868995068631100925763646041381156722489705782448240782237670637337335387523977184867150827757842394856926388466971930854156097534647542045752662729422768840345322756156236703734619668364706917956282872980163987018318737179917741685280989780860942198736631852951354314461185788345018229303660053558831808623538311012001849237747350431111199697166655535885308981201332717856547102093163525413411713718753677838016073427516870028422234873757081727127028364411897684931492288252158535358181578468914724949642967370889968217003151278169159806001364753384837376942148264150096833345512279137029457552099624307601352289740338738954882868072600504377923673306858999985788865342447570115530016418233045576968042613325048881766958189600587166931148912703391435036790669852666242988500726191685736523454951786870009291392797107589504067367386157739035398580834538892042299917789323157168706576408776450541859262724219078939277270072189532618677007828325961470478284231570964817480237657962311967359360644629731775674447617715097780887211416075219376097685105997616839281557552796266915716210469302153339751391762566172233783856633005081544114574486517398382761400900199226668260511302435889177876189254216035497718038152455818831051311284677898444742277823144352989147792382790630803830747819687057555381106972343121378494532320745827529045431461154076777772661516770742372397725971153609938321098367718541119486564831811594056055341035123198422603239477714557192315832741750184979328939310646345340150034148955155138908965074911000844340424235162732655447279669006827224741752276819153835035373674929898414635896177707200605856727904037975888151334826585270994839151569893845745092540823127157392365759725137102441103100991791238039385427516311351088486837076674507355335081655931774165088521611506676285429999327226872661641235221253146404453607547320056011189561626804371859518432865818334390588168140196625962228793744771305004525243839411524343647223244120951551961128487015249746142489468017945653006298522026796597196721543908753595988133867248459940664244199075024928957412612711430457879982499522753286019263523456475686534442971286460531491417213860031359752333449811007579680940050480636370942603923711479426481327265992312109454183814110449378639586775515891280085421634491020274142495197420708537629133517977419291657090040502950766753868876296241362406896642529990386807408594769879833733271334771253998677623541178603788815312608874093828767474535117830293582559872692003025227632646310031352011771352695032425401046647451025796882549015124402522827633084321857807427732521786958957729968351830073887161611163364419424968226122310684792768962227369100754076234035411868438986745764824252716435050619020824491639620897126421084369224828517956094718543598139951418131272108992180021685002096014858415396487333065356892600126818276663298340224166892516738930411362547062660341559924220044299383194848167121468624236779430462286179432891244765103014361156411780310841978574588514794985500384628010012955645508119541984815126597013893787275391147094518432062632169643363827179278402948266194760568553091836573555192334577831886791221175970319903089069821460452020242714836196269391056039120346019736722673491595933096774103762536953585241197551071204629596036426562145998117019542736082545822530521904989706311044167234428322923751007344098695643962363889104272427556015045249277054734564324263546982615955672040654330816478161966919072426786148322055813158592935582351264926905676228666612712897987054529152527695117305704943590845506692749974749197955270297487711749052079173944774771385773620370524928587845274310515986334796582628764642264921454704294524491714760860968635778583867268091987624555988825475649295520626591577573109827238998100480045702820838982431594931151700427282153434964399761934692848719110638599217238169469800259108572861663936749078518014548317682088436222317193378691534310582877097249309121650578948863375575743654066976498406429964503057751719775534342340790069186844365121945686021160055763253005564657484193184150416737475426942373640305614458179068004610668175734301426442796327374070950052882977106206538914652144129880246586356776083402858075945918780668762459294798582361682207789534553903881121411492434359483118193344986560514046996221894663294514328175127826711813717059975789300226255752016813561838309196515356432922890601139530449888881025189066334684328021306139176156989941347071909255902635336237499912932732181244420607282750918758697719473498007231420561304825000717621463022964328129868621932559301597499305832440285635346648824734515101583395256464880495017663321989030818506921577504225071776938143176507169511763195783648894904637127808734389144536799800613251460106940684182607482250701153924055138611605647883256611092080179057272488882492846723746557004909471738250217632595501182866821073535463081516757174322841755025143019693499906378838241883051012559891198089831413984014664666373603263116485559087913374669008076870908368849517519469871929194923888256214308281683895779127597229801505682258894805745452764389685044748397442148266674381115156277520421990553014777927612115974118176369475572720659452198248691764984026156517144122792577651824427339007649958550619421040022246531818387646079844779667680840723645552870348592187631085110591156636500302645524649026816023403643096037887578224716504388457167366152134594520028619813515745024184462478677059457134985738308856406320402754133098035465032662143908643256639131365369098675742183447923002907947354339530766424403702338048000396250968371913450317198777291814861874780408731641950281325739519397110413308624572186717158905535335287637228508971618344672375624705756268574137930151878854439154856420455713263585422657658386769370481324595617823503079690878600108840763698355017008629718256324350223650935533821702359529334288480244794341200878680317636958538040459966330118695448620112671117083199801790109408552230349117522732837497465930724562769450051357342691328851315339788958612736325904369334901815261029159578088009860944944939717717506132484676348089574838933495351910038698091543858013242413426778867291864269396379993338715402340889278131043713900835407925316206929514644011014287506995539104465188638332885785425462189759636173786334195748161330014162920767024313195655022718763736082419666335764062409894457765330361049055460123197174210224788746585234055389981408725454301851869683070905948771310799849403274936030272682782480088298406722981720176303499010376883633662765379422557244739913904166050365386718619169900503214206447699296663567642828939384625510194073928510229360543593756059026655628191182785969936268675763632186226501012653855827828358888943458971805121565544241252278507507168288990349188896209925730302861777113087387834531440793512077543308507910786421106928473948876477010909828641765054427945824599090646029928682791883798758475707442957339033001257733029779295277916725761428668611792967852544759287474905255359035951368681475218429733836212774169307832690762499970281732872067188271255000557145070985924821011317678955816600213692838570325133065126267987102066238181265084877380432507400742102538975316376616075187870818573056009383423685321238505963540858736413748003623171995067889286742143874191431185898237809480973495140316878837482981511317107753695194648421664147140989862794702870961151745519481713298087336950623703099025604481681007289658780664310180635297165616204106444443990198782248085051745249532269135403619577206166030823342032108841616949984506834623744310539809970131596197140318541311718674009381028424385712246397500589187886053645495128812168456484169414129258823636349807604198756055884619472005867383985677091358969788079275407497124085157819091525022351641217329227679654080381871449159600293212527221942904747843509707183668490105636353921359676141326419181712361134462979783619732788933646340564121576653117768572808202841219625428778453271337981699736130258035548792593278238513268514591212361557946678647043434714337037859986338885159341151866218808057338198210865020932655437607453185130452840560722882134800322763343292214599626833684739119630078697473005083859961306606764716594641189997147598999907868961684850501866664997313569892187082282931915748426288310432192678183128949240884159589353656318616702673809905095490898245688165403162084783692755203803347155016702997089807787239829203534840050500930273444310006728580549961263073864158922998053656051675955724514147293580472658155199854230555217916852829636532796291291176153469016024206134464913880834042099545561497718923566147671977504071200850210181320745869866664641512107865690542521612196293022658308236730084959893399994768613875097775097733098753363047181724980799285104563557672361034281096697406655359864918147290492303910810764203455665994065885395409701577231979397586240866092775457627090054597390410938175214298294885178679450830555212400605886103717489351696684264928449140758876110758408334242326690914206543601013744489028284773585316273916556192053758635911458420932319558106556676068222206547109833040512988413611248568530208365262243764356162786836457925155201500226403273212743032713853379035332322895316884287547613954007390205989396051642687877168799429099834780927228950666115575646781942487608344433287248166800169841012650020053275058581491157898788085980004519528274919597823960733677073639110174105163611927752700855103173318344375474258980016993945524525651657650241601644128681673828793463407958687457734396740546332960860383258629428640629886900239170083324722115661286554548320592646966525324319670205146783955291671314093581803897645991336194905633034891751694743102894117490460528011116448646224781268064741533951758740612869553922692860097814960758601226052574219396854870076499216273112764587824984011945615445898937996442124205155152167828336223795598148143074433580777709081398369037442720490016551607773726675660944758743541921257629932259380231637294190239687786455054394450726860191796666803424491994290565167784608245403945430158749226505595446466635794262709256255155901877296216850635887362710544269407462306300544827615485740328521230317885054371283086902861445889156971998069518907002381827870319655970115488554172757856780679265222116992925843157701977270570795642579135961171657872066005915466205892336340312745869554976679379324316172985139229468972836878142622127683657317562885372863797997047876720497061228029182754198654641751608443472424473305418525553845451317624018308570574366057580653950349804491851183207663751856540720279426127802781987052986591548427221859587765353156976824935368949846608167577865561954011327698251967178157517142655735130883305476746660044580009188453460076749624343250152228447349618875453804808531629048147782207505702087752094503643633099416532163838734995965081113406011326635708378199550377152591027077262008375691630407230175755048596847218165617749014817759695541517249065497129389209920475959584712345432730899404854521079586571704923678693021786012590048690447238424297183710246306706783457266703318925192817977716548873057746102818216352602447137443877086168176002416981757429046216100939738883117817828856368320410896767701294901966111127372123632256142013009218219322909773391584688765372132668262267407939138243265501861127259238753931281969980304578956836101723980705489465006743809524645175440256005660435049885900063920371539047541338692650316477862617989246282832188492086203990165711150690818658780077030928744850194844269048760815264945884195858711681730274993397327158584655738106651226805713869515491713087283529247729039903310085928112871758469525755726223269872697435254662132115569079715259929937743336295635965732554169105988142559245800066912175253589569353133644716320285130852050369051827025295200696833786829874192894392950523310450200095507677001207586949168433012845849532035924952909096644279676049468331642391366352807322895371336307001268360286784963429212272679092988771813008822702336761758424356935322595602588829438665450430114257941802832181488059416939616964822224588990180775567232701956151321797624797701063431764191335043934639283630643270324069575502695086805808155982813602158019896353562321880757503335454539639871301427921985334256290966268072224101544340278194589446047660710204056015796560445392547334612025045666109533511043315297115160539610261164010870090629595365664270713866396835281718250351287761122882026074487987171630524466927138744840479537289636859299193218428278502981791742935608583388756877456789238396740942018555417590518629816199478834602334064911381998242288312806519847343888212163103640655178211747166635853042716756925089501147917663957524261848166329304429915772947304057273041858231006763226090296206410066315616691871437172513524600005549046780729435541463708965639151419657624514621279165576935144178704054556839498121137957447710180213750490807151125669365627410310570319396646482176466104393167746360328760468830027657476346145534570089173555997751841088339117569444607529513917139046964009904789616642281889461094615210957615611390634357297900625321917859153071462864201481537274054420915328846670737619453995194599055929182314825258102758039977845317675236048551768993550900058824591330396509664397651887650916918070074849469248567065683578504026589881676271205404344904564813812969208247231074983348436200643169832908062693495065554829297825249411903685270304876944089118085641579861292923156247378670066345940299669566222487374847702601888659622682317772706460112879173049546253500320176614595084862619384399183864475595218813636115857369203120877109866680498785313572184190318258684652630998467240505998882892313357739560611265318757795897824544363932379142474685238955141224014293586337991530384312043948192336221392984588356274139229134137396241172274620597017353384249354686576510416596729091328884333420342344094910906243928572948402931329128877705684308393972879924548508210066372954979156008510782089364907583160877808885428770618472901242255379878972822703274649527417458180111902092448004926857149240674935082484475076763080964364037578447586774049168663273448830989177698649231759091461621616072810670454678133998093625803106536675385295369164871125366172492798966772341693755092650642276475638015455751378387017256956857469102085189709489260712784492738996260854465259173426465851681382650817835004646464393148061603762535952514555771947669454205522123575448189731023366599212578955730521972050893752291503921819951988198216608066913340187185638997812274291137198458749406240409310118238063051798999683602305087102205140250738497276957415235085004630321571377322706183519958563774375879800377656770683693073158094385807758327631437470653709254272860850524179989692452163089243627121256726078767154427518715963368014293956321923255052725857348188417216051205061565626066420837848234372223484670568003477615572049440307163737478430297905508351478241915936551557739689237282454517886831911669491548526307929726846221997386549398373524833050470019570438904187076211210834893471911247836886665588459975745939694292891373845862918708598347045592677599515816018049651001564137272972021573218755602133991024633145617935730933714674841201131229463472882996819867303416963270502281397600379895681314471230646613181291075508723715778741299197388008517794259808500465984847961843862406381047647051654768189122286475692959790814865490190114757156878922327982950627545109998365915240995351931722584210720872377826390110284767818034409078937759585580352473259043416845433509225683897771617891555323663827255559659335217365409893593245750524561748772724994624316676018518173967707607618626414938072268879742939236701957461526229636955418152530493895689227365100348287071476650342906182132295751021789557562314590413299034322151440852399451043651534165535617660523317511785995470303161514755118991465813877921699681783381270358977159405199320265608690098737351192866622597283528035876933419620433924564084116866571651062305445187667695637507928948803746193819014817948205984470999309364464324042622032268862709786859889000742525606113430808827079298438624993170084984158762795105770639190005445841685333976262387418559315150809606146073967878344767828245242180718599881645516924120551563064271160194403890965860096648584288157185925729791412732322154242868802970136611220403045374126241546557977436130671184424855685396912755319633636815933572557824434670712087445963559914597343319369835134738843301208424384918475513726785813414842231993699051034996671177737959083096522018579437377302080644587541740564695960681788187731990885200616788735690339371216490864771688628524557129267100808868591785455012364621450825420274344871871733851633851347534739128693912359098685701728962957026796437440344383445935589968715357307494200079136565027661910933675515864923653054468081756563933782325074229663959346688377453059504185851541683759660130352802366633619645958498654002049703198487764615541254409911387454806291053213379214504304693317363755187207827002757357648476230963232676223495936035018434468042431630990470350090987602996859648574606154559105065549467094298955361664480843349774147155555393835158517567040378241243834215628596523043212984468003243375278366767527417347054797500515390630589196622203972623799789972349436143829675578639786534360571147322892135507484361280764450715138485830135409973133794906788354641566738245757450959896595174652654631632650366143724817551691271000356277242324639456987772082192419732672397078856931491543301890303198557078505575856803209574623540552028153978732838195746008083698098677045946039715342999486361427270988723164833747147278617549048344926310926048552818270774799381477540342940562296713649198690888039923026944108581129764273115358468810847235355722212160509621760504787354040328953302169542117058719698009760748311373943502754518322481911125460159656988940094865121325601180726582311954611422550689419673189219115067939239993784086811591977793735717913615960454490956159714612910089588725028884164009404833813718544525692394242091410704304990100618398250626404003752241875568485615579932123214237633133218885720586849620777996481913564131051862103431752329038162949095487651262060337886648479243857047271141072705814766251239431413240681214539309853913516727508135076089221745249300915636534901392452948597859197430944607396167114508880844630973182337049533000250056398122583176422317956764811524546132853983773482634603437172844532929588032150785035865927279921523986067350505129874140163959176202800679650100336833500185094006419624083089272375930848462009422248604857970569957207040256615318054224348589886480492295834091254293579854469280154024135080241101315930915048867563786571335924892767217025779995838551625948461681026170639869076446306892773920386716767665826265594103347247480109348947491187063506617344872477976394587615277671504265814353233469168186519844698170750793126170269478673122903789672736005572587527604355979373376844750916769731924293555776171385092658916681006391123824544531169891956997292341402921545754410603539226898939254389593325740899890339537058490594176621937796603254510247653872293667881200939617126280869630235490201123082046135103012467364110534222009615995559006324427550253355615869025875186663452734171287643353495608965707822632397057232289037635215552844717224990825049735676716908669523919361867294821831103597192187401333609587763740930982599559862332939693352116572143507097613921940842268995338825947265211855155349409263743215203635601668691954529215917307817074403037482006309276531651120019289581946263513155957941292241172423900550525291430152171862101631380262392044458080340467954023647832643536247108355075848596386971495668269183517192019716946915038506244101173776563807313417985879581122417050785083390762822082017135872408272407224226930992556666038095795228912123451020374739200870250770300709533641661621606959860132475955308221206071440674193941876454568740410578365765677312597040689616376245483590134957127683808207677416130647739908254091118234343152705340055998824842231315769699179805495066642088116313024781832140677418942637052005933688986890215575867013936671404631019339907734586794844819284660053973125831678747399947098664768357309025531688859111663050872755338227554657289797432626310010162069383820941520809115837683239007209541738293919196671035692334355122637693135818585396272862984534801261792699703008975014781544445052281777622367823133847344366586898278696723293797041533762856658944300621475313023105143347795868439459103101555736831885543814384740198629418812573829227825934715567056921955228825267701180993210707455768828045064388029631417493349076022274349242320105284845492665371082764517499862965089868655929999844680078733821171111980981004046888466921590675485352617192881632868054670518696395280044233076418798708552628954050059145940094569314339833706374332059467836534896221573430669100051305190636575451140377916889228969598628118247077235728465658828972693218940732411923509545895805489728604438494893458782528499512891164293637926136814666191783802410953038927244525733910113730327451622951575877634952237181068488920640823513155286221889799888233206946446098084510184633635129760071169078188586287066082386219648835065907957135864522180686983770260472355983034212679416079346741214978351836760400130632881452978427065442431686394496815035729980674229507602799079642435567036147820967267085961851923508570340729141665292161058996470570926129419322077797418460976555843248301010799184963773033055167227635183396135644767200981992870017634349515193025803791596339082749413160041792499822483767324785281404387863855752596883891089625247757836332290270242299997541674788009689113832121120670789015438220337524655290755276003547200945778201648896000554428035003630857056668712035945183896482727818498315361094144342840831839910959626150277481832350315142853954324708571356697149214081966764818766891627469127199774855176519925479222498934042178691947958847176009202615292971139895860448852160597150692515564347313192880826508022428614505665716456532388473993773136606997466118828542260936841271653472710872749282777507316595661559767548578184866151411818716084644368041499085238626441037835252864951953638209750712045966279447043978960522833691742355185708274400540202130470495603265136775070657185466883900664326445624918011841700109503220358612310778333250446800379727003820821914085857890121294085625035118353884589848272397415075861894121869769375151361971236878133962113539620324065630100113381503414813676931592395245839956042288710797136801928518534739047938473465600873627343816316116117566530734662860808179136676232515572097788291647467445725799317632352095587017381000600368551310922580675342462499899235763234306441876745803616525947650135573653786513930561526349868715171872474884549269085292508062983179865970555255377582401317298377984858621864219918097934929031985929506907223951830922995876833099189525203653263205369660229302846013200274021919044477337298916675669989446628200784157002403781287887627061650748707286593404507349403377751210437074474512644538015027746708932559033564903202783085159855714993233847717210751884360039443753696291084727512339582557318672448552732843150496496557004735233553713740439740563523680124552891928158002164702430878899252810731006839772413074089023860019804120000587683329061758793543259563083137992947932375787478855736839241211048671608063443180630392383180390022021675197341942639677739476793583599536660987231220346398846450271015378555608070203975658157113343630470752083823215999012123380790132264805052048953387279351505151978640528290919357383671788598370854331081037723514872943307971199464919102435235359937886001662099975889692818360035201721744619244650146517318813377260071870832829108791610526420592294841743804733744996745757210372537797535597406248877660312965758283057933782041074522870601238707928761774028835701707004376038857826670128932459584150269928617209363895488818986147477370511644818943990516354570637265540344739651928969331848181314835570846674894504141244252315976951611532491476325401274107433958446603069541565468102070929347012924101742442913598095950700928126547242634770763169335177151375692059297671840854251633873901530244474864205644230494945683518674929107938909273043553888280301929909566085142180868839539221892273960249720819977111055196445621112367062702609592579503640411710030705353985227166084348858369607289282419022665568371812092485888651584776396862761366363199601902017052730335763918781368838984725500210280885526387380185260655403140897176494527713253266260255139305996733831558064320340075177850240538478159097011765426141679923550423314397949356611733120578384332266498244877981476852930972407198226513709863108904040271630610683859638579883231706183378941237661190167549195849939117435273775558021601017776127386946617062029890963260160387399309450261790999609436627175182106510499869455496766032055824433876008925583659250992899220619299718404045686075766989478143109149409802767804330279592226188205532868959554084819324133560900518913652830668535395509284955262286741686902527700728803233455360931910664516384431072308714915418340968062230680282288348641698125365180200119458339601582644033173094990992806793518669003056913689073292521877847867798887098374877073431679696737762815358529765533080028845293749605472406789116094139473873579415471181498646404923939026016501378458695043699165987467101118006615919017006070146466851948166348334524377545910262268497647384480065589825868944720252847525749524382554687136041338686628171200927568812565122332199823744058203508637109365935544078019067559859890235367027324389197180258795809731348219943824678060295984269102001758197368423466032068838982903818541462181662531106060644621331490436617679941662711406437633944853301529690231035102875370435842957117677814104900503125679212130457045077653530797351035030357517407019304880453526566500165809177608176896374835823889684815735070882302110331554385734186654469684384300651812106262680641271732811684026982608724325720893698086567979177803394308653629866032836860094578802874929541800114264034299923617932478447277379777672718019538309457133570772455248647451933159235631117791895140067223537957638387134862626154958912211724231819683360180978959945150037214070934480378798381704822394112740146592448056326191735754380213441755529216471055540773312087286564315287677260439646143057893591090527022355961743307696191992708861745183118932944756912064175778409723612461123622885186285551023472424169485624328246480401639776046200357915886958840556189020306283959754001085000367054381857534275193569309733217151928376469502252907805945986939337911350787450277850154981131330336783838762420843022475381173829667515998256670774840499817176359642944265217465129745197673608983146865486840745451893304900319731759060639349432541211778464707056131186001891297163064067454581138931935809265411534921118292876079943272084810164766335252476100185934451929145164586383212275443094369785927564851104290525105021200413290291884916593852291477650644751011677360625485287756206683270766506512724291779535958015737770361699602112556671226812496433942411520051675953375347944101013144196400584462587516250971925844047213194298095656295077905163265623229531657645145200045158777249194879352588382131467489060191613439118712743891348168256329848478484358798834321979968662428429518996757555835539150824716128992718038658720969096705110885203913469004728830693614748605070710780740566828065624226201118192027294287439467597414812073994465984290107498865180705701555407700725254688850142658530260802873599582355083296113806080636512530359882771990673088566844893148233655178815428796129747840333193685139161247144589733747218957039224314723728360594728575751816533153297788642657811892220351423028916809837557122563026050511826537398052395889813202048472063451665882493001234958190863453958885027457886634084588688412862981533990607336999006710959629729118535824213000030199494179500133261751309547903800601063609894879995476002816569866488277714413784948337555182371995418745245730974182079470834049059233194096564226690180003885007054387859611614370533717620045468159195567185328400998294427514516751860726355836276003070060276848877375017824264843371296830955913309870900385588988667086977006125634433343814314883050431730749182899989060100921859747655183015334300853040910204623334820177058834757532593696662282481889946680730421515119588810077183373330054325426146116289943602822600796913340570366805013621557113509718801275964462844328468267289263993526132499631641996686466621976479711144340711804958721710339220053073435401365278968191324609326061869842477084928440138397019413675116384124235984598085335398927724220988987474466921718455437571946493086543903341558341317879339152852095913355941574802600121551971005151993442111592105289761004612568371050015154031517705511705009618654425388279710818743982534153817809940768723329705839947964582636063359495357098574937595675968553830862156911486583121711483845587140936311958978839067875518566262030594311705461675414855134895809190925709048979994982163015362284898732448254896497108119144726699987401406705837485802883039496645810047832662163662691243255293048082069056544461294126835560183283000253884544882055459188340591794736675451033176118320188621337105235432437803934036454287478388291454155356134700395039453011757456511967466779658540348623376779732348186574882175881797736848474007473678595837608490766123379429522850246489209953361803269079988044333247602303048284459563055080199705456036405613162657900645443787765811197709320015227018435296387034271985320649266304212654232300038556650914628314242708556692759925307011903760609902784498309262700450726407438334441538951386998247162217982583147184613057054097328771023346151625100887697400030612357551204205717716846437676655861398100309823760002033198941715924083515242448689268204196583688861771980896499230148470900820964309727598967109670264522123084748772218868149653244834268844846307039534324894107056662994676912604399761485789078729136054559847489936528903680934508059169102823573067565856584578889809722906764905208251690771532577447073753717155730975876517622534474335194244564802965594161493720865192981637427192028307092787673630450643609944371789123359278982896946122544719219418010109888918400928463985888837921847261898108804098445028627036525045297260976426034401047783683295800168050092739817159575252767656805166394445338547465845689211211694355734957097738524772720416095115652451988799639331869243751334196417093460151711272353967114289675272300379922508985737119550553844911910270167810209052797543777376607401191852025981782065689809355802546028854161119428499609215643946159787450122620358718326981148399049639023784372478051747816281625441674382776592563213490138459695288998894608690088602279121013775248510426007183597040120387997731896047623454001701260892843000034543653665218789524631423087370145779072367769421194880444649517475951308848013116894677702620578877977582339813758868785947740311446413552565925708261776013867723771928102799514095101685124619272708839615846711094655940846724023009095261875423664295479912684376760336871595560486987671761554170641260099377890748743141269778861580427211827670717592291704959804383414389614869811696227931813381406113991283218312680542309744474741063805826923211934201753129208493976366787960329573007332690489754847155054468234410118435319178298467161120926946387009068529507574355140116597441669466428401100573941535538616209436470874689079078134601004584173425762510418589498253770390920231216999559246640091639320793572007083310406137799107508950381236836799695753605696926908521073481399572049175364353059436506229522713256507134396503600795865578507696042221676580837001115287843870770787136152611809685871327670750946054269506452173692814957637159670587074392233280144140433887123030784415043447269065590824540118181000783239284321361024306974024138672246943830288816543667520989571057553746398477209892556819097432050377631612563528961795318722636852802746751006910874370983172065057119057320584884171584846039542904024413638701888565094734623336863146738962136286302216158240528809759987810136727789973786032988765165002600593586461423204798260885528324824977659424492605890016798858912853279747463052352139986721231255160969065626296696811720383128215025709813006129157433218202428235303159106608324832134448206331468502637013061737367824257908573789372479699250572555897825158313496395449832476447559746710410699899979386351772906095033420200694212117988104455294162683767906194532271907680743623727885263289850509706146193390798864727668015137401920888467261716360192889957787318358330772271801251102074591028558960591748947490692207654958432063727624669831184870516037541267978399149002962160134244992695467330169309038965284206261598983855531483624729038511543347281598158172677891193070278271926448375655874715046771719162707636609498337294943960148374920883851612485254719250863068422272636590750999979861966328222165014422583338854714136727360142576779489424202025785931904593389509914777487815231450217816076786182415054729522009866588853450958026911244965692355088569962428651334774078501514110237615652382889032460792587709217186178633529607169300997199227901990040776828217371294220625065007934922701683002565752143734114285632163635378594761306656091386558957947099028434361764861123833229909701293151194445333218310333172273961529609259741204517208552280069680892041554770152690554169053337365516653511381274685522830281837612260841217000279862767396840794088894923163152226281614650917344196753241172617191363148380150313693223948697509962987523199811127018497537030510561433518427038456507221951839640879891899798825992269163527696651837200535873026168004787008782825432564090044874823106213801338196706090408262678429263406753330960889819919759821618959297991549358943238249664102021269634087743214034172196587831023966734406076031254060743399902962902948910506326753170666815960277741014225086458066118299467021893856392686625395509704794696000137386119375821331298063245978568984599727207343158712182520695153492491403777519555088469924430418357665960687778447882201916915930636527326067616328506398074175389050866470325259367117062070424792193665181663368316082972932459367305144109533146995213525510688279611098058587350666169463997814360586574527751594234421174253768859062825414040941552733092394508244345860482383726552275762332244498841423918232685324723650663224589812496994297484716472551645302601781725424506055145624296102413838967826610497186610701891040921808244849147435181927257264456278005098698267544420360170954896348218658800415423836177801792833998323278398366692072400435287400030800444955781587941129405005019537950983292801184787327579241899647526568592820109199319192357467865509709865021725349017702542793999919884588879770835546062717800006504060283020340815667494106336553781963751311603996902220029230106471384175590768801208141961923274760222649212282690349797792062761037711021670984544001865257393545000237789041026251674185725399740641898408906237114697600072153661759204768794956592016632199168161505923685797930290866472472692249415104725282924208659791045752006970675828585892162875848246007948756596634139314954709089311410185139431051597568087903932152384586485958772191877635904028996763732092575768278091552620113648558095883701492325277218193295904277903179056035094461607596967456015196885441017506034211508275599167699602159628268467981917287471007613605077564390070435528295390924886491287918203197421079348602971213966059249534812947360896385164824574355711672783359037538748846208644753231148024335673638196452425214710287168925443326857109974932561199798716030533644439539202947348632809158442373527874317648188064187826461735172028870121761418388378939529290253109122343611906013942526852978360243455142070293901180889131942960848938828394802514828502549572190901375478060044691196493191999521429898545716439216918801833563043665974240532439253581939857990781185865707651745708503885693196016864155348169914406204595632179136636539057426669493523943590857724340673138747527814845976738439480739915222544691994608427995418120126532679940861368910426782454578015567354531029002644512972110191757871307100372150437631406524163390930765983348162945554840592282484532759641931739744654556970102556575253679374045334952051823185852973417924121337048530794872103549478701924500377464415476123501598436565406364192762454389460035041601345692229401680810408312843806969409339905570002925733052531705525496706917044229454963536269666210661064071991895523033874197313316828700854950210916304951462310738916987244630035378832193601124290549450500548338740994195879654768923279305711401269831440953215439188963544825412368335750224730038193166969418687177746712597960719066282234388021467410133984362776300758522406860878750056917717235811815021212658930102958435529003257916611473480757898764208726367601155414006021342274472798294282635059677218407214854107058144780465265604956745663850369965182098841748897128648361156138554950325861182515532426554587846476914339453975046336727548980929851453879169025682157786105676064202681578831909517993362361113290017650896837524653033806527687171224092405828393125276352371026949417858613262614220125894165075198517046245192581083214907246407677037243813914570666997940532757214071016237758899619110547204756318296704287389219145226107582218610887179397988694366138757713152070727877425524850402750686579557966811461465742877870890044370406003647832072924964250612255289242549591464025360061741192654337603037565450485715298862934496841038426022541320970825880087625351921632790985966252828140080315918659123985588513411781635501170119229074030400297508806488264607406107471062313970072712282449309485772761966560285664444884922484751521977222219675599809302087525998168087858996440704788818425917463480121484708606743348835190678674629172550950664176968119371665209375310423800050191971352237020604998206452800160321054191688359145140821780659477911530274287465414822621366875298892390894443562821153903826729307462844662820163504884266268272143881087286806155242147952614399566750288139817043691586655665242265886936568443785041371764988780800866385909258541310785454379872013463946308264251121342787832054678079133777738547276894642222570457536184105479609106933928642609567003127374389873922420555425737165926746748097131644254932687473660657103717943844389352745200597388923012935691765882627324003243814827882410146440292396941794651100634728173731290450494177281685378363538383046008239747795788745495445340543191225912747961884335708870912189793839899362607598666361596316959134811441353745711350835057339107378623146334295357342287326806802510732271645898961804649142704703937852252185248474055577952783110639615419615136414114248061408802373084070833192285438961696228674200782278907809889419986682243424285107689238118212127520673878064020884390182886272945350567562621636736686847212679821677021208510868019842250261276590951546926494604798687265470960294886808396492828730973484275682796653899203644786691921320496953376973045777150410448034488265192861082260723039112940127947224002375901798354905162081453690185681334259483229704301256729839347826648505780124509919384206671695809090256587130174988741028130378426961503641775531272427513134263873774615423993578557472806479464237940618961605977795585532331255623093871090117945531251654834084127362978038081706772067700638101981298829085126588791519947187288157288030469779404726143748141489669583761079892028961418124564955390931617437240617914736193629312716167837440526004371107946084939665644167376289397977884699930627381305722364883891003331090204769696944401576780715086613434695518234645994054360206765447880465404663797745786341674362959638648852774365858991767646769805170866050781121636538936142588485600964174204505260666490143159728033515022695760202705393395251123254544938880134089601160401261637027584917518486138047925898835466952586434247484990266405693336310187518632263630930860748796407602269258771534993506899691777459688361654210142387340258654121041861745822404774175425589108741442383578872013343969251639695560293240023062212555490998297544222054469189722025811426638640204708728807593091564099930939440570041950421830452366293634672922235151209947253901609886272368803848894071276456497434812968407704257180217858001350942642847959747683200058697156874690000853099637952315642838208254216658287265686573900254574730466819050188859024928110173471695956631405246181235598218310291927630072016179783255294388480713638317595666422938528381772156593418497072128702180326231245717038144773735382174098504546421792776383518398333287239730030070494928127926583912214943466539286842055146743246504626021514498809709129617949816730496661237077029972127466233911965569113374652794498781491294212310965127680364649421224801937472706185423236312907398671726945121678217903778317082380299384541977837149560078905231583969643184993802375804173678932043350908290141144454713266266418871632323117314873863559605849500421974335461080024522820104823582331583612746056499173813165705766980917809941403399753579939363155304940117821569634693455642575185332158352369957812386950162618576277774359901317501203141821073769801236370142544767609038269525880016368621049220705098916815023200321363419579079380385462473626931013373219910292014380578060519745229761772610653251560140345351261236564523239152341568127164707528546159544358284172169176893136508509946935128760304594255508133320193246511957699668805148930185090734837033488348626413080275410900783149624643878356681393903041604458814341198448518817224391681056275115747893025375468302516411384678764819325263224836207065428879406711601890422289573727768359160587653506895236786206269473300629586984480412897391783047749506497597703069687215322361725822950481262927454800314180763479916927298757044078748188316954766689184037992283719865389046725498623308512059223316609411844087252658055857488648745085457396607622946644595573855971374702595749414215778722290869906423667304256235804985752708414251743826279596107100243095566718585450201696071788315958169860409311668346450422680598363087166045702225500547069331986329264886844216786431124606493112345575011852701835431582544793071943365710440221828191047312319474108873191713809528714802846852691932672761256505850673768710707697828425589099829459766778427174252790838102724073340009575358663811843643886363117304024976213903922937400360983323364854226369781399124805998373119913358323922075241487704375277487527381401818004744933704117085101828548298757738726801123191328035934064111892278180148420958097268916199041367658518972928427798845354789564410458193392480155672842990420558296440944870138898012835133807929354019440429155448273385395495483817653789796189973320764630306318617535713306657826442620989747454787569247524447062298552021467192671940310034175560057498024426430331983209095763773583466709209296333814044724643462317187386837624470987638265282621076846122004123311187604535365140142244450619130555199463883242215040460701502943650243548814101073233156122300974207247022447499575438569225786555556842602494629185377705393779565602193044484379661767262607923261427001188706665264150856122376031905425842394032949555626346692747386684189949670661270988772231929988978413928275938765998588472820486533391540306703418933026430275549835365435933454320595055950938393764604080932329635784712708491172713816065489205403487444458748078119403806042875113271779137614782949500420556647193625544086822526642174404285927991633527395091966299012545706970732102927337136196287547573808237768184382912297105878615453128378909863088862639411193626749902649631666703194368152684367049180608230682709279726499425175821154326611291913050697467779448220055237141975361619308544042126143073330002813891443289048177858152637404941513240850039697622495568338781820181686549824022701994822733475116819658400973199726556625798832483322615702770565297081205366093822715357040594895175257353037122741143378080136205822208875073277381112585194211562245032873423087384585064149250955302242846327777162110419056159931755040891034732445273555488820766187662513702011791357488352030774270568127649923748972593083230156481672326447510870547992160141418382992354726995870715352559265187956207085089567534588349637217956525123482918417846083161770736708881720867407027864891833357122575491170498032733221926369481195882152039789031969691554845606967111765572317808613437355274274075331968742440867520305823497341463548774566064372050984715258603864661550050306785743999473446306273264787597076660363849584304320126810051109787934686110231179204219670558593863988160799409170608331098684560760901037948772910416033899780051002637033531991545977541352826775646801218137360696968605208976311844079144975079736605794092087234633618280494180463846150812691090801505634051867169641233254100791527677293991917868011846107082384985928524241859594658530423720596930452363714842375104141208984647130348669162088977615664058859096664016578400433002308233370446504667981331150017507194479699946041580681574054959307118262252823285948852153926018458554624148851448595706626951730210787853492502781999473233872210974211304170667441150589671507078609615387928553442275458437113471533429253918164840783984136883552858763999320392197649790768599558579506065945254973160023725195199844651179535704172082366509045612151765473974887634494799922487428273559705411178694513056863407464299775147431930950839676509934942333723290590178848744740046000389580443645202015669501934016585338215581762758133204595154939433393121243696228360711716051919590884718751230437172850166024145728740906332045671386606757783709253466620719471806026172108688168822975403291977351535522291260436596967595536452394391605093628061194529546612966265242605710640377417038833885422134407336046392171254063420648465365623027408054274287781086257081550586633282665350129041737052328227020767071444627437118025896464250990381671818793731575556213743027908955038872311669733627915688391637206703236855483004209411104639439933379066167016269467679920202807140217992392737738560821130525075709441663778083304095977454574363193363632593418169601292738449542517669917027536264504089563186342642835796421638362398961662918277731223900026865549312713597499999522059610891864064394567108178121228720194166902154795496705518665801834717682197430418714038940653704415317143301349075128767267521055238615521715189393372550061023921355938693766210143622917862011663512979961598335294699263523901743497075011578125844275872143037710438999209254640997906814183781544051786652361196331413530151925114226275992110895057839669911730788678542105490489453335190225564442956088957052135458117155043732273202374809193400861297610156864741849888113820925361191418144819329668771229609012558244930593901887078009009075777757164385526772927065773852796488597828641036428547205227521450323242437781826057533442228750686974247773206672041704238737006481060314172219279588920063171495063111693698400426732815529653148416182168092611414349377138032275295128472269488985568295157019152997094741090202513253747737305255034544835722877784507161886367572575837669925871985869601595472807325445846296296443924624750823493653121717011722259356241653090259149832903050043856612163627781659105315705056320205880537468338684402711025515045030150123787561354367896685653020754828559946237058633539625505310898858764060562445020701510517979543974104267090344412493324151732507836134085670905398021992902586628123948692913879875902132364432469715849700079830786633774798202384017051034552275274563533020355334149001552104775396410868359644326608319454043590821897994837050309909343890253985121697513891332250362590440329403904624945114180536816530546085786128549427683388708966036556162914604881687125975478493318681269888984745566290226104988686671938142961677776430492492948489255467096738457280257071996034979921593319947265886572749147437929693751677723750008981633195857895140331234209246965244396742971281700548661409967089556858321585971880940578104286901547115719953854829068161970862056708975675608763963242414057598004523589454832896203747981330172342216508083426736539948388536036043508799366174812572166580446935965105361544770293782818625156000403697560542684053762974715789682584197938437869354033732372075403380100723122947127249066329143514265006163626211218976948546672711449310837850045144179714956605646930439412958152448734848896544902855604800704453040898063246329930439368815525257161535741376404035934913187465058817520357973406842058348557293581314660454067707889851856446443993334743486827979267286804175828425424294194967869305274471787349963172679214501844230860158162896267277413343594124489048112167269167765478692156677632392017752528226162551944413788516958570936733934685925745138633025262817044982971298542733323719819987916522989354272311345228235494716165973753641988282997562937581596873431940159361029452456934098881356992787675304785201385058295753628839472907112108710295778688538643751348463975536127517047678775264066990895641743627052098606792458429625400271017476605668912411719581227230980693840833951620303972328025448104536169921928395674090678634206088543062933680529811899174777605258862800845043047793694157840607778829598053264406370344421630410983508344721274034610405232953098686612343767449768014763780828096012144970504849040676452772367956657549663164123866092912708662022932649316300981800270802627886984021774179534200848075548005367099105602361875774033524507273129182678295940439155947746777911793308121240992136937554811242955325041609307555462296030389846203088991793757687633730249193563804382406095207434444663226484239006703689574156456651041268944353433244286494153061807237926366820012731854151252686855238170260617894571223288887657019009451130934988318182307704550708934048180810641902183936562293921902854259578374633756821889082528627059632939467653920903766324636526025654618865235343167389727628990648513570514356313850066481630321961254989769119925602754618370956650138468370773929047756360097665780395362975803298011894671825858692025248537264172950141444032829921905888478424748741731025920651948657299468794884465057836480463735407727121159105351157302140238768714186553407192873278288055623950047343290204636021357127796947424276141778000318013863567859051567977424717512812905982091946627958525482597088580501742426086586226222545554811189631345486256384794952925310844073985072927166289870035998631297192176281453940427793852020516451146667888474742263697663374122841976269023759771465929443707555755533060804387585577980658635390828364842521353206154635776924471294507348142461970281540555860518441889201825126878819107934646694684401691801138613245305143616119796960915718389932464694434683084066579759271683574099957836045771497195231855330542228503130134928688707794948739233860505260745158973531793876678804199543138367040764742838135391313818028062593057537916805749518300060921163688977047459220986629603881599095371845502008962002269547933028834954424614494335815942341076448405493251069268420242512950667483892689743022906893169515941609099524386834054699555794736746527649252151441831520104329233655450782113943776605496574525541622819808036254493746693955283367756866869452487234848659671038105476310871004955354052891379578789538659024402975975212278097249079836804280017763620004772038070656120225250072892543213497838887549628398600452045143541516088372988184429443845591217093362876141157175005772226804980818346818995012637088613866000860518578670540377266490637713405534874260552535366260179282112812126102339949640153819611831279938993581544961554068565587813031746233530130716942154563445838206035265864136810582165500333095020461545137489571615355195391810135065746074767737847721877106154545020636579485455388987277507223279727845140079151930665153341637910974515037205637643988854205416442635858645857855520927770843735768724256992327822898125961218238407723127822818763964212185094608096682233316500353205870909971281819873490128086601032306877274379464137978426978907681020115712803896919230333429942389440921522786749364886761483607760707689518138900932866616504175886330391058197935661598760697343848428692743987649694920633779927275431244162590073600925938151990853544042425260347560689877818116007705233449212865238622599005202811436805352006206061500111593736071672846724956113524305809359478310332917618683560259606690339771283934871617775655888996825961019028842744153490728275384567380017965121350934269101039952840670675162190572271546839136517232011477588061382948888290964905169261460638735773569451035883609117326846104480346455031287242869721195901609089253548916140248407148994910737325358787405322459063990226065110009683114663736255058378631842707021693847149689486486684702732027904945727732222662629611384398656372929460375057750150495572421022978736099045958755989543275589037808254425247229016506957135805193314463883457055795076222641709116281294776631576843269753696064854277187264659107721284865738758178442686872243319360557994503698974918566571634257605345801499182065834641886003030696254219944084682497939068855624344102438981859044258330409599785218368961857555499753528892139368035084855033066443785115006005743190816349765920585068163374882290715226145894345058129271872212725139886181159552789071027137117861915488711624776366470929185940349808795888303252422511883701911880313108407507633335192220953914036907678466041241266305268591293057119104505139934465719291900230761398007966356414453542435749068964726362930006350958376618712162972710113609153657570013902173593074137611530973588612459310559719776526737393232102153913098788781550978776222203623682912674735223097246651089189854338783422912084384945947924308030707092312006310253551111995764380802168418543866373624353149642710404803133379438528573344435915551939035276694781123054694395187181022155993409230494947624577691106231599366448025247064233394735693406703131607975670049015729693099402955002794800301074767210528308636444623672552740468852730233702007094205093743523278185129943002485755932372430360431939477703417348288308622968799602519085952069634106383176018003383676483509521990805023623915530404075276390646428747896546765099521146561532251917265859092782278551805711197896062138351689584541576343312448537790193816117756755420243744627608874525522854255164279450866352156372170045954707491885011093581475135326586671495247527988956376873868015970586679941179996129341122641749698841250173502090093944959977240840683193620255734754441917275713446111612645620110500997819758905775167267143913166263635658915735989332439530193416460327713262375983100155513047359123590003256963064313165872930139783292826353737506196354256405727554694525482393823588914322184777821470305599112464459966349819113574629576394371161843877698909442435522365426954870296089784004856276291190988924833896578223306572050074097053537075571134897741575957324401522298284027507523589731001436242102459680187383419707629742869243880041479823817557709182057109722103301216093057036993663282678127633788092054646280175263880128848059972247560419312103841688731227589437357404764167746354742585351112811139767663911889428176484496347068395419329003080825620326966774448164845225144459570377496857697152707967888273544435445514329818453101243317882669921575870648310480958485369763416524691367334387972314632517665137482718423229279816631113406298293215648818764519550203700484268581314257006740294517428151968968215289170284081458130465568835041009845894793005840116834327577827655082169815802029761221127852184612875240920831176094043664544439360243882874583781140461817479506437237625068556421955349132355349391505807941746024750900491369562773446407547670109509361242861524922680476549363805408949476146769287093915707641779246720091886528976175447955212384807625018462763481534703018970486946400906027721206673335027192552052507418430318378366091734456661281501481893032568372902882931610995106105139482848642422000294858649354664253519797050759167722502522771578653186455254198632004177251318641614494465833688881209341589938311561784741107957075147668970836773837143072893702442422080651629404198547224057966534934295593084470864059814894204197375313206698220951499114613688171556683471751299241128114528613171340308724367478270995687242224379171268740184157022391588841626075137084755460504722169801758459470808338909181286974870825616104148706499701917117790497633900266505218287747540886423346093991003002680815212890756420753706688454491994939346005045218489371138033416178476555348186670384856089993024091702362984099953402318986799782075523138922284432012861348089409479468242713403034176773243769517172733465621124002247464197628238919532558852212282382127404336809131454614465664847551451953486399416960961624452473701549058010373922542086025502954969005781925458404351984692633199860524680976046683993646616875483547109430470201352266892346326820365793073414166257327363923610472321697191966977530510276610808364414183395095808647655891795916847019267280816053672346622361877393898702118232576874348074136381124782254785292550144364850031812040371663071205814575213027500873641654758878558535442374669362658993985710327431484640524843754196343999085242302823147741211163563014184419450072569616900831052492296791830139935274404601145475781173475701188618756610707313196256142009531784129956795203035094198461731116149036640739246554925737479017932711373846558522417038652516709376533958736199256043870003609747869477875814772647438289966685688941656840356802053343156634087446697404344643813221075096296831398604185874608857093463338163517449191628371051084326994930938299136095357692940129125679920104579542322433917052932828858911176656604628916270894023485050584344447838676021882350211494444836019083443331390096719699907620432647796024297073660150432378152552764707601385354898222079798035311763409416498725346627809133714200601430977369473475460926376600837541448493571023657207234554870637389310522807439958721604387307602918387709001981795762662017048827855425599024486556657931092859693652752493405280755243941280740351943121284041967067207622039316704097886429435832817953508880272480733921414102528921628426415048266320544676229589460591925969157429649605728829207465286910687358631225969282982540144658954909445729680906774386586433462921721634319135542605158835384222391934097158236343775570557011626918861664221591442392099097671061013126878967322365871893979861404532705168636339300503049768015885821537875116612818526287808453342494231274174422665654830637990732217383038627914951364593750316549909903954463962285360273194786266412206823246574470951316132437434286048239709708322066943341709058539803678267851122715979208212105403077027043972820013363231002999916436070191787520142638640038301772929489666914542819146193407521711623630005482774499116064115184720878447926506615595969138469592420761130375908473013499078908064433906242851994377110315550875913101088233752126561872148389348102905912751187431260804392759221645756508388689251939618263740361838257782140182859221981118601784724883193951224342136118816814175903316700536781239420314339418771531834562971955452339205949170028810672814449708363975642335632682679356830853691416833654090625298740336466201289182385877587025123452705126651074457908520885126850402466522566078671119319325087426915465906627006616621935515489177960843961238352781540813531158002985376283885698992871075137782499587089285475012178375991523267045404956305894271259268526513066447868617766161270236081540614736870194589785020564148139894294489392534023027002697655712938615869758980632589996075795939852915738503771684724676246288384471286493108002193553666171383141902475669916680609549937337546275058858247556683674514322781674652356890714558253732894077543143094839058810245991181370876971710114940457052833550280804982260439166324337367436167675824571382846162142279027926530579582921804528836674203162572940417320335210671509056462144668609746691704211058660595366513889904581659661502915378074035969467740782086769281604137280855264823272461871136314890570640727171631153426527122049881462656801361169774983389981108265247317701436384634265388326689778297412925822077372955247422527946662904332515774051421158109996715475263413154724710284079737291688317223994505803272430349819734730843705571787759884004557476654787062546711237277696323792457882324343709288413426928937957879340195374555042646233128504130958912521524972824125563823622237172016221561896525502808583892992024277288525398934575808877188045586564339227988648129609009863727861940579244557684326103186166310982346951787242619062899924583169411026408448447637344450941461322994416776346662672428490164025906970752827274009610022227732168142271728659047721182009301457050859477087675430650815643672568544412676795986360937373552507785812204652878555883924621315438027129177925638075835139923853055776603732778299129698658409424066769856761658385194394577402716464793943801129149531300617641250610621068396328930391617808628631909219389808098402914092682892515028310159297074278592318847288796194743293224957832115042905513938835607652945041163180651745033580563213180232131937465826456056349087114618895035513704855721444128917595178304597399252672337996053876305771982347962046650185108069275926102250896428258500285927147439244993847106536693578269832534738452946270424475678909033006671456195667054920498582496536618737669413279892216562920481273128292254245862074607226161528040728258323176935289152740732125053542911547587956032717358815889211188174585031279656914064745781124348032228718224354547886356098073987199442442695142062990770421277701642819119618861047020182209226609358630276956241335563731455836494822314145184921053102994125296511913827689600038557070129114878440520141992329539300288278137395934389847895366270228622673762809118423192607380251515515211599223163883327195879677357926623034773083677372583991749766652262456648748171881553760195493324501397621563394912124220767332768436629150496611716617904864149925957668255632982164877537130715568192830076173144004960502562226940529288571749045263954211418119351919506654355475979461962753047003410129410494172365688969626447634206145621735897041883046624364273791234591380178859494943527658139574316748080290164443274540472662613770063064495804335732014446214672905275909199415013804722779143811658346201674402252640041676553264132698909820055097291752894705741872702816922432740903348567651159691086127629758751478657016027849704016387029709161058234219857031761890393155513849685877711806247115082511721784966369605192221962822172445241714054496355057060021138242163711985492625305117667413984257874889096930355092954378279307672465011088187751355958918778296331727209512401010128476942153035125878046325042189229378864336943474905890540843934489744913361643646295268550587022816339411762985989367150868511370462534858725754051395151950900938322277858439058746480022309791227249346087799679168585931692127527158114806908942847940378627010353090771896881789597203494324831979040836746062837482086331533913402618578657038434501397516940517239097787550373506058856095688473968364083949774561242204853914936850817658833026967587787307619481814821124825844160172502701151080085455490372279220427021391838612236743975631407824198839127534621317520145689252793815293917017950442413668719299214158289440065197612235921337238473082403570031770921548918555976005099159576256828884457809735525292455527085380285096723187162119368141230990324101768021130899702390407844218975015552254740087230221305546839116000050095891887086764960215537292013050844371283134783001230367285122395394044814338406832530777634885486876927468739780699940464599431939272867443585028737189566615990422047410337779595082053329961970761812289112262108227732494783836007500149272410237459244648021899967326579953568235826239267362803893990712026770927736589993756032984141125058836342803869351836124359780097678232457500820660439861609535197358385027736998984274582003303267672429872727897859294225615005196696126633881316533285298295047513930598145969210526289760375063571955373268800175171605471259064262264047225673886176214884143420806429535569269374220887611929646972845673025684527166942239173349498400391321590897531511093658753010628030481602506517413139171451230641898877941940034729136348375537166673115168022729764616405785219534942094841494649566247615710312149662451713751147750568517975938689837608303454355090665288123824208935647399408734412418361079362544207754452807844864836557937292150021442493752309514550484930980398428060389241134035634130584698617909606363076974098536209693283185948779123867273385493040591801176768714976100585552016029973325295406040947876008285858831357955823923735894340663692244734099322307489337936293057629770972771442643140703674577295356348580302333211249278622285546405851375688645995024497520331387352278158360894542395565233022098432400684982415922570497279989722133153030304862147285132611909875736340253301873958026904082937854137632554555135677208902602380003609025318331462508645884119529463321126000880094002332053627106758046159419477071043659968078865697356522473107496873865459551747235811636103805275598953415110712856965562403340384875627606051126161089951536744646337860895960426336857619946296448243662676636385250027879260578286752317658133760323053676850141412154920021545800449002812131495891759980376263345152109649385300678090385960054681807271263177843265388617203677661237655970208734275690629520431224224034981371784038072439711448083519334482699099980846261606233176094592213686886678590981318532032160169820222650312278193199873076119475970763227715119016863922953426040616060575546016049868899019764501266921440122974070822152168795898426956410621389212885649149189925729307345558813349394007027881074058204828896721233783450422737134173210279041273231352121733098072085107077953035903233292693576556815946124966917609120969477675180218560863558126211354301394513932587375229302890282122490686146490959570244860161539542704006426955100875159263500238442138792012293740885382848139713879552055681985685400349522669769187924893108691859437731361077820631600250977879648715336740699723754665236498094948469538253838558278381454549246656775471513791540025957518082024033745444312187597669245755320975733921330140947832497143460293979661602745237128420592732270197223963873071418524802959097027597307993737694814614162901046587895185748235843886755512250294005337342678407011000752440121419392890683048414039999767376749744164519480272006397878538809263784699927205690767107191997937633953474760981156213766483625979250189801965779683000614008997567824348439136625439284701116929463904929319226816359040574850167224307035356672513118434079051321562303378398153691902325833741692027475994336248261007526043596743007480436280888390467163553277850673743590401559958553087398534790666639584500229060268169455632272746048849889634614127167081046763183009019594482881781493863840013847766303777839230463331944357345905793079433155016845400684759264334624579303501460891503526516704798660618618021436843866388812011540686949297144014158446923568216029879823123853179837280694372956446445658388867306615357989341287686036636397404822356501856601121019122586723357408227763521872650533230059400461924010436089416578270740814940427050166044605427766854052085229819541500135973524812061609484883313373822478004085369054791552756647595118649284756497169562700850098684451510218977721945698505356014045871730367567424779340389922888929891336050342613567442004593861364919989521651749611858731774456409412720264500148744487740818750143827077960333433152869031110239986220755380333705198123650073739691975867237312672040345950390784549638906887934362214527399886586468068656877923105084714939799848663189489482934139263198899193818569597613224213613200463898385059279316964875508320975195758599081062492018104356279038988196972307821310458925114559488054991343076158896969343818910402652528055452648539488842459859850517072199193394102987108218327132428431343802718078988604429134320130640074244301014787080415042783536456412343720699134125462595281424853425158761604162339044352304986983598921597008665111831941891680021917982273373429507362983305933962603941142858963630739959606938852416606211542607952970585220706451061345431942034435886762350267464675525843007029387593760917126835445433930468411902941512375815882808751841782424255595595772870924444849686628430830278362555299713048585745854613396615915912877651347786895048213589242957613210764753395117451409190282354053801526892459747845617890795735636972004353464690255450122825855880956581624537591303553937655237748365117362469628927871730108689901060269541701056396853774134950961341700428157006743701077912445853041446607062158643647134194846091162784463654200227381449294419745454813661322989474040289063429046417438735939812545136865244244300865073958284071037672769786471922926500463534053503959608312626493954353386675102843207550226918157069948034054305870702636199234287245589023994085859805627480964971566264914417192275642896649807720653847912536588262529566883890164236002183112360224377034100341778391279154229077849120132386895269731502829573264073497566399011320406934880320165792827118077357513494530956597089875946625868319696602127762074633194863253813671563583390533457106377686949099749615798223565619291000809160418913893096220538116160791940057884182481188652665309891764448874243498693574285891955315744218124577104183002020568787118342755763149450979963105790424800757549465501020096500672642800734681178973826688527503239616522521272738481488740886747494885374548606969997214398761069826837281669852713105912727767864160638296998287448924269592011958249641204604292019343658152533040344290449356262905077153145351375553564242937860306305013687258084825111435604623426742563235076387284759112074433447634383685019145606938153327511969314731384003179210558825086660761555885551009265486713097373226094857139204227777935679670793447575520995853558607113542146559205917843445848686679581607712320938756313075259458574677331666694009404538132799290556337747738125976598134191558631863350546744316094008067426378823597348700498043069592675011479481230087215233242488152552412963235788909139067854346351300170696496427305593630224868348620078509649665571050846309227179688957688255379021829624150614886009058751812220769642247598054073642135805674400156281359409785579003728116289185464421934931385685645393070800593972429519564503927289850058750314661139257378351988763725834854951913715243354417092062603133258921499489293739390824598864217295562995628884612523009078081881925124251652037294129978342083979629590326861097870408827649997993586580240294989761894017134897092056201253638619768102829395588676578875636302567541702326544492730711451099086424851127423910167772839529989452350341902107812641061215867926919284484753625079810197267890006461647589598764853884551130689321436313511917472580673107115767109772291357354929058294303190339254394905370442412542336440633572426577914389412675621280037354838815492584303451561046348653280720545393015208075869375951072294187901451053314892288482017851599843573652037399541268486927072604180059436046322840865555198312075782812961439801412720632664437905084933850166294110586136814737281357528621393274741868174178922830691350800623317577077469142629423748558041229988370795436160135534305005941464111711217784885436236228805286373206658431138004523278766596983924969295725230803286636685147762812100192109084240114629757968990962565394499478793309344261973667602904832533160743438140130091770352433174945744214268109966194806005423576468080353771310895250015465401665201299433965975021519569830647042587899747240570270980396125552105997482055336493763691865407519387620882869543154393228705667959258601827732214183851725045032800377328661032214758078867754164664381455556426483167021695349490362456953119114541590211085787403870579170016051042548886426416577005278551420660054776923482927523139283684825509565476879287879691262411523731621463908346208581710883850170176366409686349014638122297009083842484128183241581423675261087188364629102620146690993381079647815495078110148531075892386264581173373344887888040016767345422293619486123625289735652765259064910235795562413824335842503652148796675658074837309745777793073573940686822657887478660932064991205579222809186938058656298358226088687783788940874560966482905440717486899030728974657334407569405748649795377972097705700350329289301695320566836479269719565302420100234972499175173858871560931595870927412862717037901107435177894549139613453547148784010125675645127548952531398620916374050885984538567266540934044202812342125838468745733325540547515414242146718123807005101077334798213616184224882892722788305384407719194246022267911490014492709194598121649848434865102516368280648569138623666656247524869244135833797208850290099155161252389590907055612925192508030346472261538521632825447137957159938422988014270118733801803515460443872972807267802384491866973191278459566140323826826515357774049149222102740109829479727720546811516888982411132929928122157634464011111561017133967133461669461087784975568847743215946832852608179386636909731103266366071963894104008782545056602328606845236304780029079627704321029786287942787319291914421147783119035480956319271312147779129024191084032290504672693282310573605608492060942258849468623846884485925611600442350134454340346082145736412551791856726505738507249905582747308368923634579611597656684998808027571964485514066597909591592287495144223086854386402986433654331177819348427993181220205130239715070565423072898106904481017030168187287240009899026648841403159238778377092157883864959786637510591618620381987541087474702370424502112380424036485712153683846993051013135018904003579605147737443950431422414437914348347282275315115318315582849798854855228339008248835389792436735000364631571835239186946800194935960714379104046557487504567368953270538967457200890711827546934774345467600573329543445950187521914673853068398944127854049079999749373001247793964717108551193386296026305313250802673152653232689650456851665943960618812076840622664397177299505775349853828491362801427155306288307979798036548260660857815612834382102763571881461611001989531786191972522340940870625411594183159514541138667067792917781556860509947477848982935099471771293228112573687052686731033118839331871077711798030682496222865891648113073562909016610096236331410202030555194751676757407302963905613150276362093635551843973080510147080041134541472812146054221380759464385329922608461325418893611908070409533555582748798650111245658424424817632211906890998416468128634106447336255373287616139880705957421840146774097122320696255517680470986775684724029053556201682823759349406397450659387152471595528869422977743416008914139314014645511187320195465446459102413535862776371762707523360937530145343106235209451635566569417590069703627180294737357733870781145695723272330515489198510109897314401976672197703506107109232314915523524223432270470463592342520859363076316160222940397399629410167778145472195023950307020997602590707588901305227930625088891676049955615061271466804531907909315672654608673928187770500131512401048569516970950989363454629381397741178027848109425114890575024787009908574002817334252838055697075328182911499835163354022185385887800835515132178175205239947981485093546305450641542673499930873238612861786252795166177768930995877389423706354872943403234453771234481364533674804752831422940709826480423890023681326301938621484849841252914789273562170240728303013616774877678392813598847641760551703347167052076067405114520248481930098315188543797546559957078188153744600185684175290950719025957697169971509608344975082610863049282797919689657667639091198181231732246376773645459354032762424981307472059084370442709027962816705222953534094718920621109722835849826219379474056622617341836923608516318524237303638287561439914519138965575694672874459258542856706869556625218873467980853912802906207385527216992082804736500914611823346736878275537362708795671119123130451849442270264165415241077843526929988722332087832075193605147626408568569549532642134120557590552043421617962853835670613844088159139895334100221510626977305292177911453154578019190969650726126688627882595013174639637377217675947849880475277656755997891770464935869642064249470540931169525677993410002461803237573734240072153395014869153765875812404102603722341986210559592648927246218667139969678000239902483534523913006341369725351907579204011710904292127947425354108466896847516631862956783504821866965769293610656404580498904648371357929980870791086591773080723891818156632300237252332031060878910810763068795982312628058923981004154353581513425953567784397446678912048431617004130251246849724735740611407118661293357841589697777338832208398871047682156116759700157019049755247868868758787187907031971416089171668242982706902212108207304646830524000637060988949007026324519501553334053178658624916412479418527665575517644764896462011834640563129916559213073807487882061940837058031180488221190412726616149275172891786874450077363857276608274566378192535237776929541269693718323217184491393427590713681939423121745746328153671630583556679121533996001417471956230684739941466329279746498242149144860955649346216068337569833946318259912166997124253395758800819069009456574072234584208172463713130691177293521355263480866748248998764315700017843636874343961559983838165164148857616945905195303613898847423273965588394702260722621732511986079566299782315797671306602135703429779763754909051345238692791634052899101494575405210717647604670696113651648526116649340114016799196460740448405982878101051501236590136632484437950613660145469849746382118131276724864984297226005620905403514098741922667653432939266839782028240078798363364689329119233559180229707002855612453796408733991873584383521393648489823168148949827742042491290203693269413174257180957580420026928464972010070077398902506117257974772882937803327697822047144570294843052544750719837834756386449944191570389204909445684068167408759116696607380500225278927546814778587936601667248448800213231544508023549810226426142984663232092632478020060119164001373857851618682073531721025046254600731277786676977049943364906085307149679410053441821048098845048275490545550774172997440931342252186234016121376028208171521283367077578630222070988438011966558320715548095894462910883570118572016951105218295111338336407478074230848004417274480308625763859524467702868997843637745449860630674273106438092964448559008941308051689110475917370200361638052750673948505105183508622820519376716145033944886943050968928925271575970084812794750542869475671978508771180526590016936370618035051786737675293722172707690893606281517251930287418304794316650608919115677862286328769594614172694890751671933612649162382246444594662405510581237568579607887165697077434336634179463190897350762852218566894977338364751885717279105453150551699907774726804940160518164316148487319765421200611697580643462954366777811760612319460679098754725870813384204053133196594932654447838701550200279943028860273028823591557496697500932216331218269077153188917978640272333457673879836310500624079474034066752758033417136531531853912119629279993839863010209007673086660982848175109089125134687328329681372128593670438151711060637408794049427254988254368247885865447541188914731867423439583954104376685409395069867063796260839311653072174156356663782192436401848910400671564183636431659006512228989214067098729099725490350046248539079252190243037877917459204313829171079112810959605358154596983775402944844144088789990720430429519856283565049960466846956910018225824748256943696537345671057162554011831704327936059241767824051235665089393213097287136899817629674301114088891299025549160934797256923752534451178041650439220235900824008842280226680775453006742746184140263853481147563285393945594119159923712321756676342058908069337922037185450438537729614593635822980984540538512217101111159052255108011887508209319515552080222533610722256866522406585179648587734019647272558610482340321604942339991897678752912679174114016383889542197611381770794951864792287629514141630150473643154400385062958472010710145371109743462489418803229697942294828695236910068134713810320246939476206668100646136987225144488853159287582262215842414863151260394437233863216311230132923983593128428238529099824105756346546854309486678297312589854317537689052154407918127618657131320642776528270046891947584454573471782659961074005055558033157717358446812898080018480087961459005711352299961960499677567155519644653492779005376565715246386466286679922613254207521247056959092035026967264302344834178789653552946845072899309733375741381073422889530403113590481956800237952903046743769600763141590994231789675240654746320446391315184967850600979413205631694923316838683081344692489553457384776676960159552394244077058632440610263777648144479607914783346298953544428041744956372839478246786775127786597545674654298505967667154750714155760026191946663560418346452073054702043752431579435404895208997216818144779166488464431193032136307572796412384883921047844919211668619216418051940152492474432805298486715232749585683661763604824008051569267035049622514051404053909646640731164642694674876891432229623460114585325285247801135246580704302875975679126289398183603372563474114183061542486883131937880002898948504477779611001675028439923044815917722519583305088338677346762040292315478654619487683994427651647553516524380513986216763935056258494640008763878254148195777986538220510106260152135733651328604996706753944572433576259363248116944915124741143134481665413554163521845572774841859883200821213220993477568722430742721973202055336882885718814316516165004713781224573885451239074620218259412850944568857066740462666370352446879319014641262451558139366453496033221865302226533813285784693309704937968168893853978959023655900210514392859907548659083434034310025363423539853373833157701408767820152032616035898452912123331765406265225033509257981763199635851860392525965144856422426961985961923484144536706670645828861220274360564447205668282580551136829128682301901929260670499635773893995702388687191044649069862099345729282876797821573057715840378096872832020101533908727345066143036358358972472530849710204308012337752659534425971464152773121509057670787913128840645441203361078869143588035821024096220351782659134637435121603353217711428361139463255576272354636331211883913993538349811404350069471217656551253629663318280432681676100730600166764707626525674760034073668012855132475793912179908608961576939422759521903895366301604123839117836067532444056757932394719152921437469075278359944800879362219618099909342641529517606802423106977656276519713350301760054074112346337385944642182175588817519675249892487993029963397361340087383981202632760135618161355832252215582225479459425491830334815338585749868759313452875478033611593311801157657845020416701352677457487353953605213592902799776053855322084695093266280420602576356768424386753871552199446963183548839449471266931762895116082126671741126890134257515131209952837543947266324750215694901767409356082658589268066130729967321656722964276292167754824960359219336311038934949694022774926358690350776595973532399007993146683463077588968068231029444654211364099156393334340266429436626959630957600951615169395975645925152380131349708471171151389249267071964178570396448742453407224420553441669040317421764476155893643867499312934238368201777405073911353170739923003103662913395337904724196951470351524666026747744517039449253304447877054349737643965592392013785520986998698223135051657127472973148969268664058919596901429811858062938266576950655605318779542691897216935759984428716212341909051623442594648240727942714288048461086720328136162089731351820402427165825769091835226101133072643300726444690410491153324348762988400589693213518713446718588167089868123658536058764339670090999176600108170346015230141647482740866661167898523931020155988183109331113222984701808174526275990913981236729776059555009833566737196573176570201431446243783144073916793122062830718586756381045445881259145465778083917029274279545806413834327521066940677895873203776936322268288972086702849864061121714144574347177840350917310224072493306013230650806082355730588450478303349345622682119052274070218257607971089846280971565451949676209532979091311222347929417468631678900744527115465499966916164712550618456722824561815732255547963359547706241324166040182911263338409642541093431284054238035456794278280585397948659847865657563760111031903918746755025494230378313974074240370613096982212155790570202534317712652750805950775024965580121293132069868910290491154678979312454588386451531427561996465850519960306626156214117635126525614970266300082671894239380235703425306189522863196608514385083063542274759871791478271711660370612243695692454753844108339469844280888222910150208343093567264032424212513427663134459794790646529798894416630089058812982223887094748122748266117944592170913670943444191137389386867465674117425359264562197466113186876567100254552706283783538238249707894738682488497298441736795700069292043791400759505618973579124746796987400927232920607531626290191675594290257313107783924781376198459636868768305327438387141232053754467763594508759157006192511140004110158701117003614926083339124545081589833007821844368968507283533934067099473089555989128447182866438373520493302269080862713413359622685350263494673442289303283053178665862846919810659630333874588100979423721644220684826500178490836552326811782058661174690527930617087490061448155124797243761934003056832988241590546435249444687250054376558226164430389035841940152158870532464829046299033256252788548375654932708649008073690305240803129044830807712098211087846217193711867308048416623095422789085597514546995346711352294266761663304101873648998686729308506000479903062862779567758207951497385389812709752832922687501945092656894323435516741034695406512705686315535118246286549503778459562014029510539761407917389032988718397235245534656998110042151160798595420011512283404042516888892077223125252869759631910428887546434750780615501123692209865574771559010792428470082062558668838380213215294184864193714308903508884188253767663824461634544530488859168443365651304651624366230025826183367532680524046099438821038697418243594812417898701105533633663653550637086051034376560812728462952725271482677832750254068676395461816534746200918943800686286988777537179464910612389695304124708401373008074094697264432767077890897756982176420683725613262492918856514273020959837247951404907649601722449422660757292890508504076459256141800519907098389927949193514891670237415115624577586672781913264917401530155197049181625419769560655849285242089331965897555834376785395564419773376407784160040061314306454110905441651877766169691565977752092599004672571434882757170334630826765715420380750924039630862490902247970183223580790932059472515571101858102771137935432599269021358605679647603711856329077047327530393935597144034482138180562825336405118737091927992888378286710849694966078240574198732442043992014932585276852744843478853627903864512746143658153062418720281501732373803897762881448846097877561108648260259931577686094969820612982218720513170700661520000997530474377587762839269254950566816594363472938136553808839211312356716794792773809646652414542604352921522240852471045004362846356562028608818280962637814977900839835997835824326912081273900525626105555287107236332068070985407331862158348431994221899312654650583137817536763119882573107931800201640852556300059759687029685225461448744690297745133556123526944914398175590375416114229250206628117017360507966509556148690678105243895779918240069953026627034044583711393266513143731450767101386904674281446531269202039780072217111552879399637009636839999194635085473126665695699111856796376949406423715391263269510746195651837917147386786843358898186669204235349684669808804511524159913470377668314556896372913146074213949185626520577092017263642103544524443622056208679857982351862990756950931228571729497365585483449560411806597673267694466458557364143191834096498350981247289948650683869488467987582138994546525744716689478301508830679785074072169179476003263894618381626367152744253661526694437994814770469215231643230185828927191295820996122691670823402917868830218877924679585037133627593240548167910314022184530729168407386442487658485022734960981095609357173862925093027282778204207665408817687607538534833433077081725688314066451401686889931469160836907207742916650800555106912322832588528177477826236965144148314143697606082238793197548644147319168138099923947335336973251440646921075822687686444856100584715337379039583232938523158583945553003424725758598500358066416588890180872262652037081414377600446309940467519784709316293949495621724196888772435773301119296630245386500613254600695096733694117583759109115658154592693566397431323717091197345177162672314265342228221736517102590290934745685539765039193790578449051278170232544310573899279859747133659937674835331302634247644013813636632896137299037174384557496684398652494471319745936861616123706217201271747058336847852340175576379315980845158301520715547801526032882461170037431789078975878113740134570589892060314675604998871817730174096270556640203031366097265961931427269670501913233467715190053128278661701865438792545540029279075462769434911372694238320110381836046262017233662237261947545725415348930318317517590798954557902273769919935046119681136954931428554047943827961276614120397384659061800582606913477659305503117367574651542740798448165807121824015238911987703717704792672007656764115525124369222803451165498221695172168843384094101292747582975173303015794389354808385488232127587449450401956901626016984221147538053217836953190176453694658654769455915695611650303974599478983857857899647647805298524772531970473552636650027670689175345784959218562086244462341622003578622288311522999038548579382705286202363039987664166269017055701665405131035934360941520275151881092921801944589468047606311015124646421330479797287703944325766486520351218025074001347159766690567034274259314669858041197372746210464160306930026379172023553409006109092929898659696744309633945837655263019533636559681590178031852958073915533431452031135251662325360527265081550879700799138411733833895851218600299453184822424639833530438769314726797858795690951973553271093363807504222339737444922907370952610336063116110076392771179573354143732142339454705054296819760124370396295512663886008113172164164378276092204254947287426758284289152502794578695026779849124945039701850936960315457190538431223935456170694119568524535820699976967158068905393178455827371387105749070157818890065142788310557008026992357158372115244887201076217286603895697682395145016811689831812059335015639193152897024774308185819190025117834500148899069417264098948817108599167083479382505137947252963001260760925410978341803879718573939349304134548429960296104271858045408460591262720017599730553234795701423751613110177692626886639248634042134292823829439458214163001908117360993947477188425652499776987816596762202173523618511326306621347547852933224548884558995980193077679996584397023424561330482833520067883901920178353000195349967167618756873799451486635920562699067613471682816435567864452427561010660666406497520166156396441957771080818275676306343400826176997652957406943580735062860771686122820061689174488060308345478662205101724420718545417600254565826656812330074900959571899489945614922834743743294380558783067073254661521893587669931351403974623079518679140349322020172780725953982427261626576214748212900026432184298344580074661728769468552452609763438606374702271300540814507285828330893285320860416418396157225071869274670203995661564523820607542595357641546190292857430254634261726935145003443338271439477506679959579982378322907703848569093699718777613834310527900100258021860455582291417166796190775104081063222988157381616999419068522670781649963206002072774218054036180651738371528146497036536488934309719378502921076060085018954113528511619737977920014106273605168851864468645928646907935799815082389111475624943085440431807360940239989612579671251968076769247771910901561530196096436565157600847775064532202858217231179761761279384201918491899082322915253273574059276309025495484161561594917788598748081237366727527802278292577345047066677770710274648625853076090866783773161227853729032120030937469706548438929468261392188949505772453229019135071513280604984663441282565628930636111997375203132669429670875843899563010196117493121787780845064822663217825408295390850789989254189952679261768860154853626023559296189723589499068551936511925530126819024517135370699263194562096544991875881679021461002786181645267907708795276919903396641068192789301099018746426752077959439511257048746427511936972104540315610719322528910710501209453153726652827023240870036302492578032473840663087964378973083133225103206770557536387343648529435234773689327210915959102447824514125773104659872595191134844483481127595370540496206800437121801051888659388940462618882404893382466243478445249389332476462405602383944525495166924917333819629122835507748689065630663033734778258729211333317507768194845019969765138285317299384339018894495785108263343217360255340169436595905304120701259149009868090114855744221375347636970865567618167298950728731153497878447319916329123808880312407946267226197874168737965255823333224333293884660722516222514738631076908230672824438199196290213361765303253045264246120880075226284276055650328660704727864685256665694346713659036345817960710799204195115447062740126906236998232746921629772173640327338396125397973489102241399877678631289558594520586013114718403579857267239221204352486956375769572512563217028965518984672498267360340093483547060808087351917344879387521306802757733707189328927053920855115044282193446533138402683503692633302282535136336235198626446395562424248871889285270925165020296217557798099132308339858011743095198624651141388749922469314503153522989930681536986826799210030239530050367695061158118201544493262035351598918426478893604215609673856032996181178982721532218613215595580896837343451156485228631867695253742163721022660742391538245098904651896662464701860648867756264536498716422366902671895901549579074628211227953765474958764011221441812756826183321642980252369572492683928631715376190910527584022183197644718602315763635022527465954671588825496648201369272861079803627094144689263074432808484448331325929299784612062691685165292389875657240212137897612160073627761250001178569976774521844145429064013377806880540078197653499583577428598582494604279959424586854749610794505990829007333825206059096070471773319922098898104368212467104823069521653606120801481161303225346793580321073098952983951085777111993057477330441816599555960716384016768811063358875684795713048611335425005758533903620220676537215043960528860686844314182773611074833258795134532101141875637253287789996318194123744404433230513412458598118749873847255239366727469409050914741764034939128729175003439746065637180094268500998635507916352067858857914504674605054652120298794954335848502241679937955992702133761134100181028745035504811414509440169152483660464386417716061899339839674613905029528034140317645308805116824190641764506184210355772620961478999330035441296395772343470370633916218703459105446199892872884656464180143460665702190322881434093498087684197419941087217406935585879732083551219923000034520719896678806779230112651799986575633520306819101609960042389052785926274546615540780774587825206622164934656628560999760851448655871876573765654646999311398344980692472020188441394005117635706580740350388040521095360199611039429499739964681363192728823979778914328710811319926998331315085787470274874031214277374491141172760248383403281013103804042971237073632248084094874933628589989562975337076738451099600935455629179246203631472420792062988557960220941114310360450986913166317350373162123890016321066933869323501518828290174707520558046273754121493957377985458529910255071704795320841240872851799867783128252272462335976587386566687985412522222856557087178008328892501767009271018352391694620552131556573656580277927458233101345336931728673280545260486643755102378833478344378086845194616501501963356265171751494033638129779412372179386423239590375317065610518269019751884625715725742250610127073150587849273773138239139796243606224328680550710705498431366246872055315780664501428533436881530126646933968426443622184474946932157734631268343147319999643323378002783439313956999681799420682420157182204706066233049554899314177320342041688179222370077877432775330199134276394438145488809493295735875436346408129093122275349541790399720612873718628068864784763031446487818538047677219026034048625523909619950819860512844730017939535527108176796132576357581210730776369921806015761988346010974083368616326451184199442663739682309621986848804124183252614242768362086368017305001952346359596931561722977420245593952557860383149973694349142210267391337612988458541527838993309665566318424111072991208654974835590648526898446851295263582282007508902936690615129212759741108522414870532002138481967628263169842605536503364067181419396094369209558886089563230225608119130158692493802518755128616265923631753298789805669857500282145690412589255372094641488170066909167526566210880312282113367937154933127758690466385962134075637859890119013054021939175024108450594598236824310963499831502338101105832160753708758264814808412242117982630708776319994320684457456469939285223816119742778282139987558140887406896257969857271818845509225281893358098399680942365111143152724737547386620598262777413781685984447255164966839183406288476099198118500483393732934114896372394845092411314107853654056545862337364645899596294294522080933773628802880305793644453235474531866622053516069512960839636304939863656630924297520748432793527569379799471295406067658147813190117110953375196782430059257360493590445981900847115094775245751275414819000178377705707756727513430985466632872672403980454484382345577062777681228460664540734405356504863435150024532655456040594616657069593159364328987537977417918525042077072905710868453799930947574601000219016755625771532393872171778793075801318548879473233616325912285304174016922655595296029261086080730991625493064360421302855161412046278877993339579318306587120660602190873670384196474894993088880364116306912666792219090345169045154401124695442050575698037826566147491848616274444494674578800225614401843082281423715654300244284353626118756398236654850216136165616469642143406774014058750632974986988029166728623857040827588043797505215321916980786062104942598792637886840083403920659901399192622112702736580371697027919731812312818074243683319501057577887775237034997589182440847074234828365770584815007847945156067281518720145057857228700148350157645841743635765627050573609075248676505858309784972156249170442139146050934654132441779633659219381382974923743602122950655423904012573642573459843098454378296985435264239651018509108014227445258100099933947539722906242510659325402837083962924423037063307370628420304195398192445979742318870891343332772871252362935822414162035447785174669728537962626266661547367658826260884726810868924885833477866736750788073250692063918430268761667940899318383675674079737101541242488173474403122510183273571722124049859143492663459999569410277573944633444660555030472361013748848663008450809159216147320126898662720348922130555315935619135907384484500120260678650564909211292087332085671148576515687581603768048649387460435904724713095165226381321938442575012169521396557275542798465245631442110657223874450987074152555292797764741347798989163427967347804920435156102644409231971928402382491412397542102037252950334352724622687485554794398246311016575204283197953781331100591740113479111442566137556197472438133655187013670660346034196972584159681802249889656376284979718845272062650589763884782044832621879585417447560488507253085917209251252135192998293449465457166434987140823196027234909795455328119320257833764934936959656662574307327326185857420359912566839903985979712363080307091764321210329382762122635561057963153431866254405002405317797455584301123100335313004250461724072225673103080320659247359184770356242720787679324467904979714069123295369801355524505633441952231383249828987020661140989634011048608663269896769565033137852450204384000892733788330182913139735074681683720174152121504655211474693674380266404599742252087702935178463184449105916803321821951814744219436545368030236142305040772412124152097276403625067333124311544512585834499701122648734250457461869350468577087901871066488912161321291958859337489389272260910328475569048859309631816486554675369326903185981631144991297104445241115735337465729078376171830022538813255658602537962001445549997145808482256143091643037632394740656292001637376333885821721887827025946729504066736366862735428755005152235468466072919952737257511396180195067470620886022949564344483587603744135571750870673903025639768624187198902481568876787915793099835247681704599527592949843094941154244927525093454360883177874081079163705687488211106065800952924371206260076963023213575030921148382775404215736211327875621022865552160382036247464856468197148441970531103523058235860049960407348053820001255732796785583682766503974140069521908183191260901443670323997486279238337703910087591135652543539158438098964407150584695688106608847822118028560600829596329842161428378109618376359429535014649282589903282421493090905007579843108696294057202324596408393449785424502115728002890294684359612684798487833217314657961964765612127675779544393477958805254242567589270812150849900930139086128025895874672543832265450867009521821183297301171298151605495300724192188468745480848446485273988424114040855379869525985316200217069421584608337202502104470813030399115410741817761367899471542545446238576193068023800166504342531413779497286557311192806330613380938533510311240627907320650776531921238482585711837925793478392170077775199920789738484809294812078559497142712317184065993058418069841267506689060250125514328265476478782028606245697347490582829582550331823817303051655276732954324921188880916044192014306993891495838514380054431133872527680927953366639874954308381532297583949885701855401215689414834302952344545775626154667627972536010595751284639360220507327400777551098937011258986451927178389171444271732229704414958325167458855581820463816903896684050280097569105004550260535678479705484843974971857337051140876521247369583418676771385561709883101979451644305976910699761074178960761127122450697005573524443683925839719285444270715803914169058295669986274147858915050440915724618310472148770846280419086214878709540570796716883391444291252398521557215208936581883780413275613588135319203692133381366268731926079369889528838711040879309540570415031885368327389847850211623628387370407011782714007798779381644679261555455638668853488256399793369722534586465120818874875692163389901699945479904111996959118241670342677328435928090264077598892944030841456240164343929551300401337711852420511654651651451035983446493606917790273077439511142037799495340597957784070065647857276224762216483623661186799785670120674328452262959277964461382083602467911733537981249309836767204501296065937154256160590309855763875801624883866755274289601057734297953167674709276719427476440797319146299014597415183222364063125316145199313165391445791225638612283142469561720870227082943618141896826401861919623990010637025772924493901907749016945637869228789010762949825062033016474923891921812872462184507202760512641250567787580762218716241927755491726014762745917357887019656993551047332238432802987808885412059244977553961469613187063470590332327460882720927532684583304241838595619120455954071381337568789788312747869847149527816909144151758727418010829370137116178205938486704603346686914551934975196294485149835115947535694592184506862011537902766108349347909950635278434458942058108566578655270889007894406959955899522478025565147828019804730618371917096902965433073628672107479591100215437756535249173976013136435442438842847030515602165423277043513564673337397008666655897758204966781370429281315535072491791109507761071331771691832842960462334189281471368959350756134945228727374219086299925805943473136806059203714212480594250550978687832720507124284938042603821507817929349529508440001162812879350220369524265192252759527187599586904201252342004775152154671947386796775291610421634600942704179389807617379158623476000976485398807644870193291285027365585379064298081532031557802938788317252312773444481978633136273013097460702189159855273586252025417278504089629642012364612799149658414246544731318016557782908711313468259877878013458408735326771240327477864920679192437986208896176859018559167186589775716687038482547800152064541713772000700717656653587478204877826034330888298211561246122561819346577080438465686815745812359311433725879453813495863553530358237145043809220746123698997184602850021607601938525050214918630324388784470865687385840122165500701811866119017205191471678663806491685158743093269709704529596294995004146185844063474379351847570525062507891321540721235929281568691264053470440433503631099934042807881596623422992789460299897006591299737161829045099795421186239631700299796325148987431065320149977515187054415211513243618308934912045011840683235422540468808188428378366766155243700053752635125802118905294343298864618123564813157024816847950768340529310568800302560669193218270217737425199592591817459531339335604583428844659366210975000735917661339619601589575128042516349957973261077899417498768460988576579383059626249228401996809469744074535387561876113999703668684950321744182101983793701919460444103053649202487826976655999587561288664917725393846324896200277134132943890797371516678332288312689306848934624432890425442115936349509804719138696783841466380489800968203649978831434668642649743117348313641507748259324679585017870041452698467270834584335358690427727276998911096378856744231600338766220812394268282701458747338698394272707695056608208903911746621080212336165349159608194852124782687404743343902685590466476371940919122966535228629751554906197828332032345882839608358441350927673877763950707462983744247921550189339252586751636868082105344084009666087197536024196347416990117344827393161390412400332645101857601047922659997189260058048191858606167573555767820091805911172776414741361898223785219033643216887640207422322701390470459557955646563023341162426318259057109000469404711478248173353459255966371468824275050504569550047536462946539667164867044596306371293668751557973700309638678607633877454263544489465426428677225517300239546803383229832249822172652953686296710961952734014160323758159022404315952876360115208577989411921995694694959369076251281041962470386296463829009445265130280895970554223722836420627737327498247375038690285475933533117469592586863095850939796955790147965923817765511746660002986516996739105131860817970720263367373825660135310413925361466419942678623049120145582253450649218810767215097814179259155883935668762556010902067123507688565523264207167027027419157580769267137841293425948339721036254841829319375689928707592791498077732362134528546421317220485655397825393014326415482166252273103096403937214942230671044533853473761641270698656718168583410905980649512038825632026138708940882825606514380384443513319878719530361515568586731757256374043313022710471186228999400365828646845695345258756136431654402176326644492454340032292773510301801127248572372477226321359932728827162526361395975086502710199602039796784272959332127890626971789138853488544429220544912867928438677204573047150755393550245714286176025849885479403244624475141930056464530432656139685654263249257211679353294962056110067773829386703939420980072268996393734819245292780981949412121280849521418869954013000935801610515220938904143058182978597630737775525109398467806398293626349744582993400446789994300132624863380071273110115298306423228089891816919133427455290464008895814446487939727409226096725042296228200072735717865416319146650744415422643809674775071696400727633577312875487795933095551324728285879591915306698959001720936614603831128903273798119514126682906488048821151296820284400206028166505575052116657998364466145808860814423239269913534775820279564623975217992771083298972395962309250976154524873932140567430384230499163659870428264237863366955011782898532282575493299727668531505014816190073144170295975019369859590731351795449195407535445941285593263384605630670370515150873256852288741690585382570871982222085558741035616163535051037259261166822950624409028641362607098439796473398026049219945962690457956385124777535548004489139667654610190201832516575955083016304049198623283778275880631630620545717254422951063466541177847478626402680709545382870655537361284219971594371260287314462577787089424657449912032376276230999885745289735406737771628371833175146320900530667299745719192384876822342555183431579240771136323899948885495038769266735936385176838559092895125572366149333709128326577589008582723831503387791704367457479091548607734330371693185194493208530477412553224465248819912359468252663369199538910180053908574939584232316905902450766938466510628828140828869596848764199536442728904199240966864761046071745913719672473284298661394506650390823273799586473551184383069675633223325981021585276250071035686043225283187711482891791313341719002868490356369848005485881335731330434134920638325008227900397844635989348326851373358460330504564261111147418218760651104089212505320428331704745256843132181875238397685557383569482762444643428064537036797004554800390582373672411388191166190245160599626513133598935599497769690910185364353811707307695086161955484727782846352580269191353742638376971735509703466058933728438485470124419413042578773949557221331736732166364353940865087959257383588201288832726666233221720507802778353764253634101468798432654877018627625664581279216177955409437344491640515854136565376072637950351256849549173111933738883327318329917492597482412877767111403536920511390138671843640673348825475858650124649015832710623866344263938571618575044384479409145762545912955079703021499725223826576447957880898937388596545833316828180953684796651206522821481011431058785490768102192753412038470365907286925745917859867845026059271984037371874939242265107567645006905182635435014135603606248836074234868627137544556968802380680256472691748388012913217605998410239423926837238251463322504176615023890089769339011280270140931271145669866582442968457007849472497819474710825456335148193549977774506187283167376313038014310393703818124474902977230694655259483651052383938034795988971814758053100291218562157167736356274216057137925894754379238623958795204724826905694770461769320978702396932098219860241027396967181272831399878958104810340592428400928984660502897917924242954747864520268475710175712759307322117226734234141199796165007299561994514185520527499258220964807870385508499452567771638290394653704040827795223267899435359726342693346134213310976049966821266856153855096482500975313758263699138949783220004926984202680946414591718157960316652942400926347595154260617550034223962024754582839998488023328983098619680436695440119087358920641591869859889781618422398225806977112954826789462019480636430550670619416988943034606132904675961665863102567727150832704085156810954860019736641023424995925912753517298962305620395342460089735650492011405202462604676327714855610441545298343369407362551843807898522328786718807957201416811459339404907745310358523535372128021079730453121123436624772085029094559826444851056290559749633149546898162112773434182362974973350931809351561978969068403296733119892167035268398596468176633730644276306634296508432280308638536410199691950291445640624668086773757318809650653342754981104137463963378231672166853504626891669582932632792193317412498095323358533444288891611242917305081755487335919140233513194807479972963474562541001405290103021681492590234525769858884297372673260768641644909126488218688896742528993466666297827689052834267928956716703220359515794148940388807381073362885596969133382958387016395573879229315704864173046371846752693088961586096197852361010281893660290150791432329263681216239516665756761616007231437684365285555494617638508488215987604624547909510399527749308015915923208851988376617583614958761622747487328733154538156818467295317328266419059410387609611526880795125572641806100700732870044886690999042341504232742791619291392861557249494052218786794626857877576323447441727183116554301028034168585763200733574941753218187646140031324307265323740476622615819243108686802725293815381117861153190176857823038734772904432833327367197192953311135192006608052089096894313844778552177294835220997082002056150951520579766443858354943716871639239405087664387999398065953574813300154350831932430684389951231604751806947497541939127219005003815345262822324724137770604900715401193119424717920010083247744225582387435233072646388897183802711239561941503984522764880695368712668432855816623439844885497466912212654857466612025228889538828759107041060547484693243136212286710115100541885559509206297071538276791965397682656492384943281554288798157552394988734913308431090958910865873609764568733940677482547872955871078140992333714525991930561749513982926004603929011470024318890858269322795361798136395604005745180279438391749509903338792113644482032441752230808560800041954984497124205597703383324127744507682810802258905270464860176073854483552546735692610848885214451723916156946797455674244474085070872182252416255581390682505101773956839501777376854601565135188853367372290147795579120239126946355934006849219567521450424324713205818881911190092321557716743714240971472514731134046737389362020546287367125910268865558908994471960893896109664719645283978568321157227141563625806429047036245458965267606485750769480557532155319490440889621508798001235401740942990714128434288163574944107073346992769544845584252888546114397922468709883714830211693763828436607729107807493098876367356915549392172601019695306254156051003383624002368546697181421867325515750378689928700759878516709908636780394009162838191515254776217125162283327089834065961320737686077027428076905510743981986463665306948795407531554583150777425027041679681876726472236354080288425496905082045657064962960942176675815465773902563707840417372178980381672273848257440159579517047777521074947180014476117606317117873936545948635962439919165248009762221213426006145101875414730721017456810890091556734123816289608184575772161380441813949365365638490589342805261996254488976096613402433510728440861775745459616775955191596685470766602568278771622030998456676236538186623983262683485875990829643906773290772658063979036974266680865370942813547733874998581943328769724917505358988572567810536674358106860353431367937046664680087702558759757934918193152439125915107591344554722799720070243562736165660506366534406182950049511053247993216903720806110818047103246204237221617638832857309388312084211836011871913773055492822610753503636206168130749591246964581765216522163716384612627335438328656442600956720016590469884986070615664264853304530971730231097247420870256737646288625307809188991353078084000084308592874013483290603459529501738027080181326041425656667394777686163168187640620622218492159639829752467630514409444626753789095847890898091293121301302971076815919105114690712709930511818529444741467516396581155055487077195570298380487549949758041351876274345356908772555998388641162691558824994420619797720703492222364339724975871691343074090999966213163288148792965512782955681141332088119428161700412061195583250322371200503395715495667960423067864400273449471734670267520151169169947853645553484383617606890063294829255462445457632839597034863880367753819703247509474819187450178738597768132337517724061825454835551616803383931702120920795353791423510742899024701493333444531553767534996404317110249138331200912831299781906722073048899696689853238395899908238612349844318168855499229411273478758271173697958532126651373586541364708933411524391530443515341082991496656713890670671401937785946406475934573758240809143754244899952587052785912664217018101773961127176429751174081120452213514684042520291631108763220918513553891799840483524029184306826908751834551010722591925658707821890494601578798125569170265122172748071989653148920712490759615780087759649305032647605322869864916118567274008164154643998985762895534500248910358312743322965572962298888808852686269575223810671450562029685723723559874935102574442637013045555860943455473932953663960300277129102873799260234191181154636831031074115158615572273795741518500647244657854028147189186575966569392948999688819620833485374420981241407164547420875230540078553532562718018598011951695644753013779237074104919746526298365434417740978410650259696515540475268218796136850225043409215012627579115567282011362330210547441737052186011379905912057528305225938465703787901709713968120805987334490012401254217382646054129374030929240342887047160491839196293200679260242820212291609763302375174564242532281997248432258595908494787704493093950539988992097622222443212027182776903915419145416193192990998005997669203339137710323682322818082069156862124303927704151340289927946051474727738994475596326668449108479295261275867997254691076390826775757119748615423129583002074527740361725159788818374197167419499154745580407693369767122815659672592153156929287277807894376673002951968189014387247850244980639045326099772197886742443392607445182184859599461185375561510352191987170500688152941996146480169986121657653448692625223529124895786368489397172390602740386779145392310523983640161540772897886113117424808817068194233410315078312046332899248471705595450640228375039128646665344618155675795577078763928307332943467633931937810318723319622955697601434830400256593960780798495159396534505363752369610337339472495743990207572758935877212873435153246738795196031547829159282805527696637726235816510722119597352250967545212840393489459672597851728787970000168916924369930028632540251535685465443019493712845748559020238557677075437004827045113524766597115774478973019173147056788352944808965310272363511752298176041773006740316396363261763254291899935527816355963401286975113666393774241111267601685425577350774248137634729252590954106786362213921738992277360740227903944585036065573732351376736724604099140302144903798223219069663211347058818300794903475420892461190144404909791018827819119928888871380999451300472905060168131915331561709825234945574875648877311309067371506005215480930920632329341872240601534225000470279930149148276349199012245102284955702593324759700875071341758576079697851144092851494608996057939703346869276106639663653557097821126917528691996807062296854326324764230281367803182934874429569522445096213624863418901887651138315327012258578591850617514911282804907607046092898563951834427953732802334857748241926319428829376641973086606534710315005216621686134549040498777026482813892416189833782402358503443912252941239152800478412990364588994124396540878616581788330010552450790762550294468636004651149436480327112706337135993029258540666004840196374508452616233344640118181559930781044109104267103008540063797617456688840844854364367240798323792196088912597064628775979002558282693756261760737770375003605182358636610318574372713066102214758429495422969402343496007921564787511780231871030833159489805864855692256825600568572176076697215557941697204285368975587119622863500783078084180112361755068685444206022137468313264530219103826536943006007529107771217047323593695117766659798591807305499383240169152492310883042996783262078340962210411861636689918159370212614626600757571001564990202088055238069343601287458053903730005597334014858687703280858316704295326336480046103361155992627102643365352916063685407714347116282610631653228913221816692150914336586527788449504692160594032911571729233841056190057019855231146660099128754733371842381663646121785421102860799185671045160677973982389312395309322460410156342480158486768108802944901657565381177188118531699792700370622081181590028473249692348295080148138674976376287601315676254867047529129703677202153848173893029412751624318917275856819658969047016296940236390412159715577401679991466065158875426656690543784349737826138014541285314083527478069212849686830578745797961619292046167152785483899388459609813650919939547241370852051489036848968280387786721568862210731986855925000751741050689010013106068629495103732902403662467787309414876404787939230840427411805861140170550113261519636877631732497435798571246474044951463912084595730655323707601248939573785260964424864428801992289680711053016045806920114743390459510852932663837838111925430947987698128734230642872350318431649115573829770338466951751983462056833244650321959343232814401734454854570640561967176238550091769074214243091832390097923981468624717247704225492745321205437192611387650800340796627279608356103141560677383401141421985380196202750981228877832048686506485861072444788525404927057229574819657635661359812009348715777207121690539538136075338109295217597007724585196233752520087096909959383193910041884740671682798220783529603233157366547473842100439473360007079006770480958086980799087888712505058907868666866095526860625615470131084196274480386782630866100184482339965103744808792362836185790186497305314613099544389261018643178678624394993645826250001221180742817617826290584999026957076607500027442204770688294606085251481503383300857133008430816634707774928679951089776143756941220123201167276856665828629881975137137093188929390846855847254420712407192586526368351594479676189550667405004245048615750006176482473973954273001806121580584619491024161928985199475714158918886560771382059397692023866516321003435969680501085596621379433128242417990376166505579246168928176508264623794970476564427518880433525368430181682600529840908934636362199587465903660269670226795291104637783366229923779294633238442280717372843984278960211247093135427948257776901353817825680734705403662179204907257585817765755541333545747701829290023060692553103418703179727879368784289199835444954965811565975925223105238760619661769435240007233167612818473760282271050734026568657946823378513679551910902654564240832026590628480665153602593437225695636168889582820395592649665463979064453218686730612240561176886646783355638830669752187707944679505254974825288568994565595792049962431121301956607484467696034138523748277830791944909346319399609126032758046997483463956745963859546678617969404900757672774970391878534113878996850197046510872557587646985709535747322546812164763930096394944924680381839510424223901288240460871174185572162950028885215429311040097812480280198196111713522772064585391707705393206687455462422539201221145270516147831165103998825684637240375179046719493243670352791771109978222272406706282160117929042683444681851573623551807449866943537449290990592781866291537561973934632439822131908902273589505993077407490071526059259454883135326606914248646082679624747945632068274096034819747869673573173383704402304693300363209693403143157196331773980499784213409559111653534797733504674930031243419688723147359318218565072294338091767219843319962090886982807134007336982845540616068147478877845412430096149252210417193405950794907059813357766249190844179651829929439212623879337627254967827977743785382528997379660929425610360345824882977360227061000387359284008335329076299160419542139768830077577119651106530193832168724276729062815471596048518884603017073102944231218101174724565475923140439710930420819207116056111667977241283015830632548558797399757649776317218071223675872560536452743575901910421692226700846237833773392986799949552662268954092584675302027673075652262158521224604467480143811747854069517870047521499479780534969096691406491619703149934195847598784619709015517236231058397595827199801820461682587254677648027538353676754774434349236656868831045655292354253699783299622160006121575303649897050515661193735596910585276863469949529104871251576912449870428628880351538189152658084872018329049545186820273710916785399958992507227232007810490774527870003985280620847456328751476015468167872183926163836386028274927666946682930929630193073874808727884644227622195521631437945297206147146394763919913461254849549866958949155688926479115463037099584456402544534292831053123866053072892655268171302501541552266551599005552938614023585312025080018774884803944888049038155559703227332466006010579775826720205995568961521758828032945145294534408812305860135191392793695464804808415613525628371964231928197596365735723064804417484320799430481310067849453266313300345078558663840873953208251262930630296689215701517343375438169310884573518870960248842627681503291469843430459232478037181019132531620650645646434220103872870008711144662619426936308929996713785147029649501388660217686468389081342040533159284096391944596829058764907418437293793761536445212874632384218306936466461802932722743549984306192840595757986999409311186325020533951878562441634338176981990477924245989746993096602514463898066687652196275867456795421995135438932250223741431609686732917990923583181529796027783212630448235527984504008642406770090879477487019327400241352572312694095742540045327306470948444345911574167711838293478484215494490761478818988625262801968749775386485670344161786840817713669698764763038961511281225851247758891409498718709313123032496654239641298634893241054913588211509614801995492136755432133223691553058363107822033526607448229311492117157649119333826453000602587779514964510976293292390338008929668546892787994208031836619549528762495067377848689977193268965395532203938995207196335019374839339242976636408490652467312751501124241267302880519970226081167965651531321575362963489019517593484261106638164781022178218351930944516931252000942803911587735846162555198637135594215061482896231471009216733544904185664408580435887283546328627068392277069488314208960340309923183738150129977839871965184080741766408840204755384228690638775918833461143619407783855949788362992909469452064129078209546776608834622995096093208243600715705118418257492253211498336168465262800319294181624659602508605021626368664878019117855796859048561944078348053383084574409777479811369708885503791708971971081846481052984857316924483928131986279877037911998998175312474307352776074111326828844146503549324164556820480158660374540090602955999198167095069212031105253557191510476555432457365739260759151388110903063616075577706911375161153034062973012687475101069177844860959549193035202538387036310609511454283145270282698943537090375190429393227687525042650508593795023118070235062363167359320909833060572415304990110240866024993140050117463347428479729469390139919410818329355617512103749175517641010024693390700589494802225749752600352646760564366473965060417078276363857357557434055879401414378405812054877039306440600669147123581217457339419179707484227826601572573741966187344219215694092768474152810104075191808872839311161028245242717905643911415167894780748207373101236305759963284233289999728093827069121696992781218018620785514969301740347137131974085673180005150819210000963772689952393771340215216106567438219726848678323554116790698806251052749895366931262379882695613250885820191198710737353597089343092735694276028828778896142492813059553397864178355760436666547930451815284903439447880380581820361872533784569348901849989330889038368253911639466080300328808785571388010508248344982245829837249114121405794503723582832183837157737010396859286224365027975132472558128947029407627933497619984157871810891589622017336912539178506790235885073722067234023209499009614046089059982720329319498280429833608876997388009009613626197457091625213047126273959140374113763502645470839192165186013066135285823289971081434367360480723991963022235002435286661989185902578028962167463178128857084038367434063485478461673670242354174566370596020757863108661587715376891789413189030358973503213658612716041023495543777513587979684110142677896070669985741097973443243151882157086296310855056042153897791512155816844171503840630243261845525901628191640020461460732604631955104968915890839558078968412216618207279641153171420906793278881750419525805361277835426001711606642467191716952262877634016784925480420074620010410767958987561888177926548579710488739884441910939776076678027139401122015468009287129346109531585256668595862457991091685443610600277411628410427291561828550753965155982212240645071033372130033097117687587821745591863227858021846288521583660931864525640219235056212506152186438595725414605357854291350966350010734460931614636479154706506075118654893102797936886842494822192552626343507415623695317683052592216271155295161729855891642799725920462106833900699705282807065016233240531511533648335511786682668239782177710566655041962358202312380079192459382297822235490792883933557562892506213254578859583409571429308775726207536876440536555093050021220322006334758941831113836220086209577024810959079314008222425330666660767173165073168360313398320307368095994528619073209883585560567703507788163243570980888054879659381740504503354378787388706211591336749702424763888116592851954225567439642993615228000738256950818479154230293849783977125396541334544576932541370433952082401857342941022080370634102644628763600944528273791197128600589912756007669598674609950059026408925415490594723389099532475528758280178364605241165768464903970228741415142510081017177334436177494915785053182010245177447632825370720994672860975918026161020835193565115707338995465284065552606630135904882168674991761852664250480199011507653902394161229292596346418372646854350424994483502309036647347834522023872498710636733658373415521013054160010497891492641339562220667544992685058440278238209978697666428749787145864430689828107156524311988640152497063602378070672821507234201582668331083120500425726345668311738502907229067857791585843940082176097525577503651466237227200491481260231790558532543155346602072183779408063285966652291450359965113650906050383105486584646291083291953136290690425297769072372212685912478882302268765175994624789516285722347719444772607481211840511652809818161617347447859258423068850516874229149476994757032738518498755898955516558306271576321609050571457985019220811230734357875904471255785975637404453812391866863633101632019308642233115287696199128541083798874212466337079405733656019289129111484394150256744949520670518200190985808218014356343779119396014865469345747159776764097785284673821741787565599002290568237901151567134330545913632341337828103501286497438384134571223568228085473773024569842912260421278540610856217042048002199949865793144712681657740274139344374865827021025466756234779620358773926365080589170117986227091321961581548901081558771747003598974672610782464386471647076306660791904831612112592197824984523959929872238664959079513805294604243619564642082540543611996034831152108153385770965584318321882367974031296992363578334138022035207356698917929317124546169271237892533129839961479575153221743218252263332117557282009092499593307108642462565606590031117742545885197755422297029026060318837814348085282916739973157989750351900134352655158105322010327823407871347038639760179955474754826976229200401715592289472672938264299486421754269587642709954350851682494566555720393639186140903186187889085900632778591691974551192692110257032905867251525341224717088724640820650562594911665272965020742062602568140101572722506795531569121317932294919115362819890540712474177367611578690555678719999186519826862160945151385843152838157870487744490856436545998744978992229050563500976625179098661658723733800677630799642685422291860905790909035025600781267458070940780048069049834149331781818776610187692464191231655918459581521741047737884690361254387048021224673377479182660350223720860736315520083985331855828801365669352332739053121917929523803961484253356756777997458277959223253962613987028804544263092329689844604669479986311299382554022857242746788472407073921565918671820535502259567315165920803022745123131546834817288329363637793844874955879062945389318624920879492910676548242279569075133960255730723812966328597825725419723913746025311513587088525713974563211517304634944957442789765278707215087222667130602338587946265885094916979052684427447524104447294537776306529699720276171044356768493684352852656865034753058956737021048698722014247057098824414002755778942462179966297066217086573276084531407974356924273199365419961065421854503950855674274243758092197777306225852922241195751352776092853197147790605080706243028336940226810383326099239684556906818048703602025945925770792570360445296145829767144741660641091432695506903137519908576404849555355576335930200351987314648267841046098909903875482601704844299324797678495530046410102416880766670437676688802335251361335353445147806408626483664900980489555903697859604184203438971645192247238037578096892496407151029374761068895285333014950654681245622054553406722488196437723741229147538822213702432588588251005680000143687281915925860086478391007978713149176975242580091323429428971094189914937436120238858757567277679639828881877677302853873273752401525540009304291916987035263430811074552039710469036416487339538689510277061960316171639833064661322681205477026915086917696359335144282494090543709582899856071056835157889305058906920508958452501049795817965767063286242349484242697977209301736020304126695313264009336590415026452208666396816929646880001875424696080227303239896544120407936813731593602772161559546560333562914386793425107506829503479945167578854661080627660136979642012771057954487287655170750891880618137663048502533382009403461395188409326514128049077107329134590392546812293623417097005536345837664957604219425669209218770744135460473368438928662323037491802737849641514643241118201485685933361087102176089087076837954535767157555113677785424677185095691986163758510712060537743456566538367800586899559957480447037119752691339663340002523229639129080575113541951061558361884667727169416002553142203679853320595169352785697091404012301283162252567357593986144895515619213342021169340886304146239186095950416944045552356649887839717242242871313651098152333336337403258831707174318295229593750758702923320064239041034452862471163105085200168063925122532200676320045267132922094504658034586879251480757181394706409044963414317597272480606277477874989098254291667844739534713475124785525512013518537865107880289639106288021658431810919574049744946906635136898208283450215336855559978545695705348340566289887657884542816591622204613504448269654085180059459309143367395921880888922688533322019709926475146676571815301619721388589705866467667945548513255118548523799351867945828381594738846738814156198720555975607020087221807992608410490561633822689549449134585045982345403659548921962191472474626213362857484293567042910951042304989855635674012284757541476601195202275056116847396656069183366153549077521969584102245163908796219828856495309300226117087949264538625723564076345575207782223450402026523595778242900748069156749657644921059535426834888889352831718530511355085572914114326525990742432344791498983856269606777044740869456159394310354869766627006251931172235642538761601536355364671413610684960828814356060480950347635301588389684700455467830294323585229483963974710525986502849952170349749096916761585056760645415052101021603524522381789406877090257729889196474412114598700827453446914406968898556756329582682218200201777759296943595853811739433310558138893813228259049348382521786265161813772627009112879187230488691693618943188264933373670915029116487260235795499004128645835025389877512144166390129048748328619790509150418774524790544253766334607925610889344796888367743415225673241413273121212771010663725499636283541639911716562177594410865526978553388827084616637127390752164601248075928565427313194426899502406367475901728180320437516567271971788088797819468476485645209113528193260307561280942304256150366620427005706873483995270458451716807452502681369076128606616573065876226946230465421080547504020996700192511494058548229332643587150400788700577890598777759904594470473327551979719137984065297095705509033113746673923362526184019108567644938771859757190708845063481465411903382651268977219834815656831880779308618498794583111500025599594313598366844631567845633473445379603252344616921709584185421638078276362261026873470764198496314831931023753744489578058968290383845779362532404996561222157811911955957951885832998652433664805817016183980252542441481166483557335960366230395622769397048740895435073378075443235254351923773644696530516666550768710122440406997229394746397047513881398309212854005787466881484730129467614752451757178546586425730420761226194601437008833077836809914128771850932781920852890420866808966293245392085838964361575328633266924197732112102046027053849378504089038150388116382390679331378499513130039631889096351484681414849408570280617214610851389364638340607245463998384010133338813874174173680271081840870464799960373636747795417101595340653054638787979751251662581183628048118225597286096644333654283421346447580037032190203176917433664004868770959121207210386772056741478411866400670463403608530041183296693777857928194669643832900215494762531870734139264604889093972059276592896194495868892748729794768743101041815778179763327900207863376876268178717766963117074852081911018298162748679771954209198096757952450104897276396573145578366780359089684392120715862794588259237835703593279889906174985129707863313330138183568805736597053573036235981588477206121071639893240687258074600784108057670645846940425596019886221058747911104727411806668539113094807629478227225455187298076004547133434173384180504786579119508972089411667143055302871234835321846833798362338184331866640034324891904821497417960046385651348679026609503494188416033183066928353977383057303229246958571249500808925743780629795519599067933754371733031412713598078882261867623189384050516376471317791405261983281370966724594339329413083980498105981381630674527967030961710541064426192446709615960143664642351676786194838661113187049586705322025086203715333313274764414870397753144285973569308879150538294539401132820803842325148822172132365412735579483794612658634497134960978203241100693118618555733883563981554893553189640732844172770126976592280113303651981673745391039684764107553590866855185866009575453034348395929806145845177673511982647025332078984533757169397625511919806679890441432807305950848715346553811216347471500788067478647020718080490170505617163524278218555826028836115062142099946597971788215475404847172521649682504390263379212583055936629200647625649412010693177274919087137243725132929190718323512490646829848955093666797007955415240954123093302440980388041749186965884166766088099672623857272792331919115612386372154533682849780154503834762343826402006230808976012556103094315796046008488574166368011060211750076524927335540915531624881912392383323984506144348183484546208658909669735261791755121351928442076984220747156286068585069427132073445348346162681469371553216693624337259010577004015524738282440319382113222609467276111500775630036528346615850362008333029590162500853575390002168847351783712890253642934044385810825103779087640320198500277094881134466926682275786255342117751878507361554229044946924664103032408332186833882977827854284517673888568955387787139894946856957396554344762343464260903120454780775498324335309469563600410871218825935861815998809341428514457374750499066262598474866653689899658078790502478237890266708352507219481677232726085093823726723083367907888753562770681955081630146957172953689852818995213759272400774280017109041812609050517812504852513273918439556425834295684156110058057196292180769517390208865875821862725813503798948615772280486585840596814336632408237383820139378906406803290177485454627032853107094008944295815864887806064474481666395061009790570265189638964413080176253667627055129016753259573087441727757415610212000476837078334056849568221509818346757865764259537203954933579684041772725044443471817764369677688218370049250557122550809922973620268472765519851086221701167429320223826875674002727337415987592042022996372647438187730385195036767069697055834301217220102863169297969789556017829792097963018996348201139444638769482619666212095978474915731213381213981931070744133002319457898365425453820811516880290025463007772197965961975222135963546575806118860514039361008177917048345181215853323874534550997674120277019428020210237214758083671033263096495979464072303825009185623490374430608599132793835272734120943810967438768876605294194952798802329088394668672076860654589464883219970171097541202199538834297961866046962057273145867129886283866030302720749774720444914401994304634472698976894475627286770659168332652883229161319132106822905233013708057326640269445153060057152809077396501440034521187482220155989980461898085390927790636236618232022563311372008871271166923436967033864065410699170589633425183429582680990071216789895506391545373054008733164189782253990334280014161853827500890932732391066289576897787997788355664739168686244751518021689586042234429772998097508795778397504524840214454958479522539589574366214545817621053905354976894514234520782728433823848881600286632967679351902071929416448430087937785138751808267803078671039335370068409438240091677741447809020958462275610095753739861866340200652361105011419092983019411997156310717209612893614308071524825089300854418473052442319249976970987885015730686684473641847952072734189688357261882560152394811739810473543314953504745461778813934470313252347324912551802457618709334302351501576559500793994201767871983401046100202954690185914811045791307221761200523444990266868540951647563639631165320202596516002948008360104914497233013308043959576275345217211112064983384488066094832903622369239574856945155313762156732844672343295241667135993468853160910986991466780004758606393813758897718137318877523456993835367795962641249413222131226831906199668223378800168946379719329683881300924352940635984179902160495067953678706040154630789845579684878168027783730837832215737246354247100221439137701691577182560966119806229271712912006208592269888353831711665728437081229844046168385327638645664400948840503672199195709775666385283817384061008605405329442062493315153704652622913946258626575762677836587043968767258040557867971976948171030732702576683552576058487540848309459422854989407432526262089905332208752143780182076049293541349015978231430932312642557915517643883892992105181094171998300189373300222869052274444093761187245880235917770690690356219995429545655116574272813433734729692689379566489888201723699557352903046909698468468011745718721724751269257853196961619908530986771129926865963657337568182425873628774101675948168665604247297463352960358555525770657075085261220493948001584955846096617772124938545067680088112464378929456374102160942674554412590438957193946925579217528302792295131804974176899403174875938918398491367618494756525969720351090041610352121845243282170407372890644699469264932889331513385996924779955486846822696362444321895225039272264348233741200933439961520669474605784976104775155044757908504609102687134353334420631838915338083107143725293965743852451097404250271881940986009829479442164445217854386911236428535666511217110758087850676006475759143435143991711456561252900233706473350954993312764991958370379498947752847284494934890910950035830472255697247063106517090709793765085251956729136371488493830975356142081222977790491487790026206598495284542931306238443775921898367092427387183862185943279142713052929989672135821324536792173008314066974696540408822882733540052336241725196709870463454396759229419131798791884252675798662342983864600309940616724867549931520988068014267311721436531604963460425280654045990219954292108442035308853543127681046704711398213347014742615147934237875692868644786990396247242791969305890639206264411880274088905724138213459790976949861075280345490490133803345052150065386642709613703445258023930583176807481432745517217229209740158999916764256979732007675886167836760753828565276134285359754902203860970012915620331752126297089565797749225557534114289341656132798808241578186194779096069981494396001231639387837267837909952513489998663716158550425922032696753962211253399829664478886558700461445848646617915504005341769207235971662575334786270663813658955581206140339985603594401808369238825136329275039598710781009644336886622559981483011173874776327094569043315568590412842518524527353048373541921870309835952372476995823905618943368248777329847473551978055058565948982865465789204830461413338470788692691617239305502398512572816461289054367082543355809694799635033157239322741654646524890020932764486576371204313462162885331668049095141139960908428683896382579131717621798108692347815500834692457136489334078132227135471330808811634779629668959036570538940170940665899684818131450911026319898894001024107134327711400808538284341113413940213710953986048029587392200912324104819853323103231343126873545619543081392530812495185832519185002456712299658416434178977434774701240907768434802433501580754749398776789614580623177187815333329258431262957298543433744780149953252282587903940848966594940059501611397600228325923078385834783089974110612911458084549063157300933929971365593983498467190782707001481418222104606441767155850242869645977848810043717730088437212992561198528226353552549819139698044005364086708210357469956181706375392339063159593418028311183538079078105205951788037685988646094862900290508475097913469871074854123958317495545412060135789390994294099926073071666680657128951038968079208605212437105789827195729511842191105447123781116708327012533863145568147411545758191004812308282822380592517951062516584531326646172180089604402624674740552258959741215212612360048752216659559872763471964553150399135175653949737662296170654125179127485552227490551049807034589843315509575017794479052872040048253046347024531508898057432762880569490459926286926479521704322905272749485551715142975474874473932305257700939382971510156786080607590301099246440402233889499045935169342119807271838787274407231731747075759031088677152038612268292827225718649987706006357871813012493480467952158077341043878234609280065733842170797940499202467227679903999798337549354847060301678641186234770760442635389799023529152724949483796330451293625327003292470279383225804889320728569023043144152155253538674151385152773732378187235022465105750364317370997380343716693761292172423466284321778783035734604583714789740314321786869235273913467936378653893466040157029277911203000160690229908775833332056724466383335247310134679262539739354169849724152688788450815204202137470786187066332284461071652609422162412194464570613228202265501635674131488242833233938607650958624265826446311888101985712164206718190363206960777255632109142482953582410589944662331213225036798575609124860755955899585789942961953680114709112254674421361601551784573374754679365154961603283552597713819754483098401417429012018399913496773455393978581561449655982685606152494119310385744813794428602073213200716973295338867441728146981520734927346071789192470872178879296062806869152943802185083995716904649280394477298610434972064760676043997849586639450980151792886373891760785977898117911456609237932252799481886672064177142747128637257057951819328493515853841552863277476726180289347525031653523963930736890496513123628198798118894444913962125764491251310187671287501697046270601056034445492011542298551855651440468657262081871944869004874089936782475451995365259052618977953069002946962691324444789903738049523078241395940404109243973144599904482127312773414793782178294132883203243524837153596783951973945191368830048496573855697064821992797475411410133202385006614047762044697698679581043718178326050081233747502992164161360833034714026678924476673333597675389604489337922147538594299969245836856541604422097755674065719873643277933857188420067238248521848954481444411506466901103297858122312349318293233090506005135775847249711660594023668461424450517822252782371686945014587907822764658376746965114717882888426199498580229237418916179549401743156320405281631210547718801007398327755405704588579439880661006499841240487326003902211125791384915486556527996797065329702283728541402290650791681461726055507561761507166549466438402414935958562921984942280758420911250427786212207169009662412150322820520659995881397385988601112604370537648108266445527300344100657614174859050285765053056924773401270304558013741350403476192823582593227781708509426155667800130986780036688147855206700517634927351096149312244660311099607678355254348486299699601552611924818602744207321071831127498934354771673611275031667266286571551993455652188958585221592203709309103026740218773246012752941421901059783415071482592521256468194045979024026761548920653040979627344410484326598979475961171442311598538684255983691732209428265255348470684228714589716473086319836958729371398328127854539348122726114483179093503837749777848212939803456061471965221190890061723100443704211637799104119682380190210504701219598438801361386113761003935992283896965202496022884090230234958212119854727304057049598432518783045446077572001557282867562305276424121714413912738746037497453881268100234822916222218583970232786207066179929094464335487511451197347025396093721793914287716273673399474569082200481315607910983081576324969893595422611677446478143729885462969115553991553866923914875500236269836084529611844988001588006343730191762326974325572678510181148724150208883034555688805237077778122014455486132772441987439980122043380110063123066670714933983015043066752950911260393853588603397402719553802188820230452724907941455357373687952601827523170773155288163948377639369269136197293664867091275826593857723561454638052757071429806720322251798069314183083607533043560168117702655820634633570523867590132312859203987186235631133811632823594365862500312090249316379634958515466223147700809766552318125745896332417709370456463543053404849224938523234304248123116250918118970732421448265367066996505337091353815421513260050225503394134138685308417280152830361572361801662543436404529294401198338586552475160719224838998996892689519984752052573004562439372794487770475250321516369210991444853580796973466687547927674210121643488109573282343075118953113526450340250647562935015416405175619372945148929289076638268328506881710781461410505328889736774647915248979788468180394688975977479234629416314184450797576020325264800704549397620516570257291799471198464240143826011718165128580474225050413447707200928468928791028395476369048604633001409386407594988527123269046323303862736595448868564680891510939614158088156469435286980209052921185765869449967508329574651582582506635812367176293382241112098719372316861297532239144756592304147594624023615151092412813063151481526869255923762928216845665316450293975688695982555445032531964732445137231800157732897011395682060767346068728032968971110182096315398133360587370057291496242980804994645303751209905079359362234247098643683495787489439969465453302302354289870293017208716028478159155008019898127842334983868783357837118904018226590039570107115072934663607931026283929847653212110031215293646869095769695661800790715019623129608552009176642171800278681850489808304178200117522942959154942649286061635310183443623619049299271113623173381621011182140051845980610311273620302119365056117838730129375384413871500684313681215769075371461426939876378714224033291943816676027161835220287107899673633800485711755465894112468818685518583370432891010233298417363987335425843957627570352798648077915912256696085749791088438836984215973463708200455738003954755941660805558964262866876801404269590352802647982793612604709437142617628090301916727267475816072742051701476206846980133540809431766859304352619332527387233380392369753211865750949608385966590229981237855805595711521653171282866033534253262425099508968339939479762096902913229331657627219316235852959399083551237944719269325138847867076519351854998113490928256393017650248666149535176902457511231049137199066843503766388988984559722709247332562833584038375986410690258752496880866741184743606351492830939568666296896911823708491749118847971357523074716215015954449382810312067102232984087036763375238940324582502637810542235446473840859689690986632878975058344571387551087248017755598814516837941924371616018507832683129977964940820023506897352816327964457619824788373385626941822091200398375587960476298014632941613927534714312026043298936152102170444022613985706759571617939043909472530294872059794012130224178052678925813944613440079391192949008182558988690529765852716493712672578310223009792738241228026638329004691871469182433776404090752217442702665130712264339969206661905520250710657139213835419697863912027386964176691889912900494850738125999519665045153204299681785214254318138668839130055790292604739903104761184537890515984086314068861861915477765423923672577600224974795517645992293978237585234629643224271741303295233837975621827661169535856556902954266044265164735715453071454339440606357015675130718246276889616860312688907556854229803894750870049338874400566749194540683481606302575744370941502656568205432578953952765131200034474335920381217933162634833769566221883625526645497596198744381739944964137696703718074631359522508068957062250470039880064468703934638111756031172884629697687571825942556910286842974965158338357641106347891157731579929625003777784048495195836317320432688233347409059056634994828593562560449652411717767512221296696275540209010561343284588842584620873094539173482723254263637448638245453808476931556553470105973120330183785248514855496866975297959854854853956236037107682515389915464224237066655693240764553824633090667647252487550638800150874579509738460615097815716104399183010613548096617730979173471825520494157565404218169017313193256262578306446330266478499970837646762298152558322622271153404873311845365252027199518009420023852828040904220879487803852465269242636391019917997138167865425473792480661901035686958553141126369628970096434781630619165917588239027023222997024389240381660417900047320271008874508954592461221254559306691813229479605318650640147199519368780639277034965502182455818375899929651527885279873657374918284128393088623144973040505949430372938311578846322408725495588893426134502387804505222109838718605664871993954047931011868018130841955797711190270307175971834557981381172254380637078374898581046194575024389785503965567653671899969392291765024885228986486577022974190208971390209880855458106241486043322758869607935300522444232649090743434292475432033209749514483353704256305993872121299105398597499106917894432315928704530680029390602205662369943602057426086357426737993799670139692500033888110597108093375127090760086804352278182199961985420226583119819382086157333600649542327712311759975882782131130513853243868833267876305817902479117562821333791533621257018795796291694739685376516932847627261548950993745064813983917845105409778895671753564148938524195620777224725697487594656141923979323910751827534328510481570203384219378489767672853719519011241681200484223481322760446984922548564403574329467451319282027127695784278136161900177081964421390202634852567235217180439701869295544196587460856058581463668711123953776731087192974117567282307395760762747725935207053794628923884207662976475537774036386127161100396333384976817497408492547548346427748643682752413687390123300361240828067483419960395431977911437515562348202797050432163842098718203703449560787378110109545191846492922924176669997523136204625682985171229517813956204836097134286186373071226300711795616287716216001779223529110672777711831281926124121649825569522028473480791477698875582943888029610910250805620044260178461919018938006630750940557868315392123458401128192748615720689258353577994345796694920494715530909901621778235106489430389841248789983678281537547236069330300105395287169886965635546526199399728373679464248763256685035968076896983968461586144806932903310589118772807176867658251083976825299658508895242163431672403009328451447007712750001274033579860732996804037947899203429584925474366065043738479882500160680864601881876094051582938016802965308312048957879772803798605862068573820970004402974700984307035309802105911972805127699318929208698747875310695953881284452673874891971384289878297644943521695231426717079117900003582828976415021523033074148351803635668811194138744080830502897195625880733011181589931617950117838047449805934940383807909860344289838968817538541681175274380058646152328129665734525715397760348008354292480816437281143678134645448164553664028289010126025487559132474203910487969890346032590063089516049868995529465441582412049516641915682204607488093454834649275728207715623290203146262865785542154853214213746718668962609457583086438912580930008420189534150922215684392527456602678275988001968482946708087756559491956839954863711493276857517257322590886852227984041717517514221140056197676137411574473374917713249935133586288128224719071181068635871455758707437181906315467350132420941234465480319090124216851939633142191070278677515898537911468203205039077105975571630760343316484905937907840008148300297874780664936583157606877116297345603968954334464935621977130288139503143805097587274010785329271400116564040023675747956531956905211824458121107174394610100502493050357530422198301658780052830905384724838833696169012434060000741834442458501401625421256878745956053690003751811046612958402885489707226378015538267289154245373662885372825426655943392957888073430526321148777314530793582161917508605132682264522247377845130681064401232666743080878995450006590512583620952011708802721740102452575418667182789945606241173429178198196655844919474006317516770767609444641741857400611724255248770443276494123803193573894328755096980371905140216852854962697227307996751252900448679517026178851062429957009813876410857768682579762563646603855097233917639150915305777904643379516617429387250585165180655435799856521471967618027654812775238098041664010905200336470787844258211443291172876760913425794276790244514929287771944091104262545054345210987658954811543415899053476572042614287650090781687038045029027248226785711468634179624243369983977548037062282001141087557407512929420405886294509271064590820782718927850410642698968168576541957185189081755002605013221126974874320955709239562966540726916440329891793382591254215969328096327929309560116388680167545044236997188410139284201733715486613459610443585871098843071080276800672788776053381796110863794115129563677468315414433612576621101996791299384515223662945424282568644310138312998328678230451519071722405090470103280317985575021867224274315360431506284490322515512584091453380315393636118248004942201716112903448044225612948644086773936359490341445750542237245820767447162651587234074550105735000012584430640694946776039450276405142939461654762760397551736230569499621796930367227496119905435680067153375078107649671292661437199476523545380493430589986099037146481170963021329830745314036658156228005939568496400660428107374410526034548503351575810384277755618476855679609272777710308339253090305226644596176357199131038759800162394766748334236537505118528108206977350877214070214158581832926926292678797768703364317006131005086372933103683629141173333059880309074760198800241450663206827844922524891648432267144433692012123545054073709519506063845800142797869675195801275121175332776709670510460174659624815232990366966558838684159473669371586660504805124462732044742978934256014598534834837031351192649159019115039557946623825729387138442296957132585710856482702820198067700681869395282576058301240603397942826521788066639442632232505508773141320010790835416513923093069641628506512560438744759520614478331502308263648529387205284183637012764039420416344798344063281718354800293635875461656810792009719664771492535003210863523027802087156212594668723953935717013190928789576940492620156419773130789285283050915666437651950165846403073998872293551012253028168500885755934100511450506855590527177310183100417779995839600280329426956447396794809625959569526081162843141583644934697957215628695574394824192427591737213939877107637105834428265341228859097806892408675984231096451350904796161019726249165953539899436689600357660257187905516201623361222360784653210265477577406664639672139641561569409412844013745600380502534127308941790888661009509224183696734342359691034145306730808796320160349165743688260975779115131627950858290008456673505942736408570288765829884152170027347122050019191665935122588113109130599281928591276064515730880002008530122503065025423989423308987646018494761397694558052419886851074150814064377253451194830342708903723156205158810829450621099756076944049748547044979905676120102857817401479018205420720995777602421719622726817991084418537079393071977484142330603856800804162309847324443292990586084989312700833084690380304678544402144603245173165649485803540646852399812444230827977670647903347644285745152013365435416465880640020543023256346260352900937790947153749411156721783459723560650849999108607448054113943508736661981062778615680247537681927232199933969195503317799750667756305639704589295584381947861655700425311849156482507476687530661421008515779091544233946877425394410485314460470090065316756540710684837292456482933801008230764830875429227815822141018524925844962189725938155071662822090692800824259714906699645838434042463621079763979815945427892548156855291711252179429760305676226374736731373675100690293271804228485444428664268500233691421391483134736034400131342561536094518460485703721186662753463737058641831525506240118240338639732351506776337544863887636314212560395973280539866953268317334488839182617454397948132198945567519366353957859215041838382951671249436149540276260658839037372568814509483148906611875388671092442939492419207366029875677366212139529100754827555156921688383869804135431381292204691060385366823242664339218798708264607233812486132723802108315837945237738436834457678520716441971390888825376663737132219754762432588003631125970564213733299579254092067062225109862647141839676607323823956715383261198209746584670113140773353647057979408557647790792053188438867241430785490228402635913280681564546001107542024990530773392034481634256641524783608675569830314940556588403567108930617990631507538683880232993176631843375640321584335121404357116008672520064094230599086305400276423679952721818930333630165608002308582996724114581618438052773489053397356561109592207447996138454277246466011032260278119604889474305947911254913828784079261905303303588175475526390872530084716330237120676603559694432999229882743628675597877464815917301962843537596536186861631026336971316792475898139232908036635582353126420099630647563654521646165629563980593583908018344801469431164820435053402801511287984446637061616721631108774557020414006759027846530614185762282892879360080290694242586064365980690425665627045739190932803078351914026213904638598967538151319385499742901674617752276614925784771813672345008106822416188823889509284071597923193030964330272294558914286020240023505734030469481042120075837527353469844268467390509618364329365776163599804976712210652790761299881035142218769805828575667058752180154009015808915480346040957988416278238698940219981207392458548679116684945582088660596828561721429382898016202844745238906747722875878444495033088510819635969155741105176733429224585612279906431943632634160629678478847540028846972836158417382495472572228872887274069666808227802067117046940505387829631625416624034581830497391708150071628758049616422314416269366238332800574984468217913918479814233548242995561555756048126443856857978712699725537317401313706176523819378763076708123950863374961507219413050340508581212947468519682014828022373658640148040858129408782662313570784600891155226486723032020425543771500030817802625603606047412751555615098205166265046412842552264975622761239847757905233582624153071564090894112678020244749472341679754268713323119834700091790843206030389262344940182743505331777095037470341494388062281900971777198748966983384867929755905839020639658974696470380889114392170353333506710698596094348003311504311874501155630651107303854527596486145006192205404312232025234879255352328450482742425588881458129944997566144365690855610056647744397631895191492757603014123778802151410341674140870820474985582355432702487578397771887243819662804841531907510963511488042014485583172489431019391297547518602935625503417096041576636825515946145931841871883629236278505240125779477439676473012416121764804083577494870601549610216449288631418478053596514540718266085669900073822938320435773560746894127159491033728446315197720057182837260460254203391855038484644383902392470153696750803938375739525264845544050147714138458781431957221771476110134581308840400916425720171634419845776903401454602202399327948070718626442010861932203977580964747299072243606912841905988321498236028039154692206784809002250324388682535312730743275404688183412364858946075908436374397376925073991881851705641131856336231882989463458445307767655960856144940012009984718052830643222637468582568412272988366880841778010695124916243034242181674992848020719283078306427380657381750397136075079564571489159246934608204246274408320873206380003672877822445520627259584800896399959557668308968966709315246263169609077447779480404641949340109574114444913695899331558034154191664987332855706083284639557506772119290095113580313733713387288434385325687105691904062322262218384285419817531000798486257129759557923186048052106770502649395706853767934224593610541344828296050239297590126427101749011912745175490017949335303746478562850611800902918871593216995765166292864033235966868146656341190303144746806752144568522514562146804811717028571555315316831827107088534483694135038109554582669479217919709652171891866390985494786865273735247245277136342041309986014919045507739193059845650924482567446011825727917053078421460166834933039513021394478945885690136977850082007597998965975954230644513412044748018151094849343413851836453536187670341295219778699023211381121144644159006380330838500004178773222694960729715394852157287236397420577468635224688010178041704802073162529659537161114046501164545518567147278431214856295147245747757428960723551327968034259692005285493277961632595636477683603495141871326894285119468270311844078257604999886541409457677213402103153447904495466026103724998881755819572293958121200027829228422314315061699316138213679935000235012994571292140159264289484259678609461103794043129196116194182051243182097395666848283165089297240807467122284980937259386776701669991182195863202238757918000088102641034121537709405137431759855475550856761713984805636342913853788750331211397581042035823327214220383501405739680386858579316967008355526767218326456128384515330971315783911720582754978985822183983864760846233716602622178493574051512853902348713803117644625416498952847300779233447955504031262431060676993433948339281126177078261324713860955789457727275392662157565399963075506073394358158571773722223310547751947456922739239664162241893412181932547749588847043811072319691001481849109145720411085912610824123881356370540482101049447566466302660023234789146815138879479574883233777846044310120801567379163773011168289108075750449305199388336559644108798277668439209266710391019799990848032773967317823992398951252904027408754598745872009849618260312032974580699478388484315142018325676198446198034002513874855055242132107179312183603158093055526039384927616206940236891659468440727046639213394200240162406238312938876195572343468494688179792928952625541364265292714110657431959653994516618305283306885320047460280447847835627087942464329770581955673921535932974233223042160984840248775407895815248872598753106285208976668380482868167905019988117449973163822324692901218564628091863989691342820319230134598357718979891510495769414142014347049057931442301383500307745316174901024900467347465058686725641559388038353703008665559341747785282720530674381070165910128471069343674549567055940920152904383913318485677477259638585174076194754611464509312611377354669657649961484031544600890713833983676243320737498700561363611970398518681808616312144403284826098721129422458148424073008978943129227521052518535090297022035524673962770881979049442647267837278321672892357081435906730190123798405273358964501673917154938052148241769800277081687148007374823311334301247125380724151857426641957279411188232607382258073775653747034367114202519687584281041556870210180079195184168862569405189632574516160728453067966806865420190995281241159527666251572506722500538228643483337156649507122014007313697341547223613021255780300860107545324002846381104750047165164593129458743984831335929872671014848979486727415003128849207288326421290258714796587687361466775641706873628827237662879363719514941563158186921551220147576060499450069491688529138712306545542808545778429896193259950310423571245812259629869644685545781004981825180118968802828770145870154161721233332606377218743810808002770032178174573375540236106548191811123875313847055533289713817525369277194118085136692179054842323945722698844281525818183316786660741935299375486158177235908397182029714098872708356236476527982654011487614424290730658838959889928858892464969296680783927460092279461907343455901959235921040712409032053070711383043881669147377675863072500900404250811381153593342714671316457858458370878222626594069625841183994482892688549720249336288320827354712185835312745241293765519209785999897497533276750351593333237156867979750355237814421292826552065389750089897593740887643393820739999007225077221885344368785817356209461075611135939338027690392909061442854860488774288623309639439034811461773309483411927044303058254177136906166006519692482445912637845672407149246112697358395556889602188782752474896206531066697048956645071368833186606004628352390724965131913832374546496384209928135828805330151879968142546156595604240006615101108326973343117823771837857140885048512439584946553354315832769598024566465741400025666491547293414114240196950445131254277125515841440856453165645018424867807671989930451453470948939626535610220941832502782802340246955113280565481274653191180215858062395929470720913477720563551690461250433902622787246639046585212210101126767453529197781649804899621124122984505046462041607442439288852926128039206276240678157808913414323573261143098909594353840786566001727139921683040954357716481335621455565948480683119404397624481440483137101198663679536336844385422479227525787995515435564690105450597382003833803362060981311111285760537737861265426034871346492302142496745265624056160646913756888137303639123526638216733309102414409874691668000641428681446442907804903342349619381457131878708748674019064089180081218828213570117512997098115636864804933854655782681638700374643401708348463210194611074321808468791114582781116852750909970463568166550233910776424837051227226851746707996928416496632489843509669828387731687577806167870796398767953285604467164228825578169832913361894244190849839564310808396850711997355223555821426616512211858873347574256212340500506956317658498120443314627561865462256704567968531716631439598214198264997487355068037856689248934826690000565590553163809975028568548210604836483845830117855486535890470918622289475694655930117279244803190185931215457883673207916932381615966084499704533573633331067847221408094965259674634961385737848222366907046951570499214327187020053648143619878461372991774431759295423901232830843154492454546138110388514659550195607520089283762302102543928105161142600069852977477809313208982241674718004539581054630596266207956673812416254039442202415172337702713341034899266633083737197466871800919415005152779493342537421439117856227566254881528638763847789869264043733718516179427763330130488822719004284128084451012139089029131193686890731470852230449019227618366985056556516600261473082499095906262550020222697614117183308639339138595169837509344272767692464935826385880914862892009696437724928753762951152875184199228807736814622024377995459148501257704319237719358355395682666670157431778498578213913537870244131240164376564201180908013396284828188332707972310565871677761763855035951250024973825657282376031468981553545729777698532879572452849975715494214843504269450262679526255966882273290170516091723290805347806217761327498400907856766373525997072193515211109008564567068872445801464292228636866516580367685023088499320824333779985120133648422398747284505296382603949952739619362483189009592584234097271250192141360358093853017268974942935515657825878806533724683362370915532979406302662456281019352849707786687918437838715584183374207455171448379280278795462897800514616750557110363442744909984298982351835905930603030307683086111528680347029452479302538876037766030702514600695270937185145803132520567267661935253143173188669196880694270602989927952693984348974983876191169215871387614458724393444530672007481512399360786182129322922560882577928010641878574864195728938302262487343383756249367359849928759709951329329636521963236801576800594797881135974765837201290290905603587271463859853860045332687244328066080285342467948417078079230870969044854000419177824914496212050866555303276616341268672545904395633129669144797470097724289141454414987297586044685162553781782484937458614224222607601269944018200544722369710306368736589684313616583041149844135858462497836834589842784472848104589201426480992350768579405323811751056490414066513026229953192801049785223020503858243708345431933981569939366892539612028242268895743627195846979443168122107077177636092498745799122143950546102957774419614612215136148145267263277672515438507323895886589340818150890177291332826372476204686364371563620420212726991330576877676709694256156064437699558064617845959695571305345095153629125253072464101364478153743730925845758738262745313234963433238515586437638091811063382354703741647558005921535578177648289624374831558680630370799239764505334356115745929226350609031957186252324218710683056405728844393609576436976728528050252674390849325072750178859596342338448136485324198761333985723713577960069727723947832613758081061327003378033030918210460257654651846305395898252119719771722586414468519754135223706188972896552113935739357598331321217688612630025961020724162413104080846851466862479165882824027929645335822307825714415965487136473891059665915328674418699414107922488536155661432817702712686917297041415576187073660683676690968615807354069776781785950639514916457388801264561963658909470060411869638824453892546742252246715701877220029214626595533503866355628271405684771596500554247175730221549068962833271312411496117874815710205999243911378369176440175895626094362254267095440473125453857934265556210415039751176488905884729451438096899810438228203179663797722885309726656075144362243601098239809008570814369904277504315247416252521247348625499147967235773135542676259768723541847449604621528856772581669904814672381456198869456081999862722391051619209123614508236301591101884225176292587927018339990886899225912046441100954617476540898439621768025702406229610374775060654927527170707568846086363960588414027702251215244018415306938543255751208004467182765561157813388477447520507487492292057921808149173065210269650423934047006251437457845766584011188959346153753578336456451824631462834450435368583245718275893652017506042754761391678434307723370188757285472220713663133390864432785563530889231275467993603967120208062238235036508393206667116329265849509083270774606621531425796647165677555704279871045414867034216178770590050499506327733701824360482729910260270529746880954218200041660850325574119166200307900987429782751661698844586411116699837535445817121459390178842294434233843244245937630020541465897366961849810312672180004801896436979366883948142038218371080448578550352732013316887608850643783780488144013575536852206225521473785763793486621387072533688032622021980415473904470973115360389680198128760667529048409686013472589491789724274256898210988580197212991952230531753789369243985770516616570865597185467057233036329486276667570199661830509283670982144746762464288786577338540324927153697297649296779635865776554956727474515408833987095970581931597838630460899441088959909059770363584556005539089678900214582315679318308971909855275170682155340403851239574761643868684810839508266797362483635133666660408222809009956351923853473912592524380830032039413326786191075980633327995850989954857123251812273896179893617157189236786287979482030902744993345571503416853908886781139432905928527340762598280695469658510157311484145735661707810917892754272554434090819473830225670701194982851658950320406898369436202708058295804460415088502730092817385629523581518511942134485404154347731582708003194349892740472100330211921310774607147754433025760612473992610768336603855160565609589856792568277304360367252534476769923830127215843975697668795714566029298843259701715733945752569127567422011699758826032671104728459985084171019492034567636260150100857430893576897336386625213022526506350547183580738804039646624333529174102561678865061890098002685039314761059914152302029809700646660688191938868816310620410453123444639051281630567990049388176657975662934773247441370818285856615739964687441334976497234530047938575494860243502476719658954741647174184351166399386505171029420204775953501562488893269940213673885755418213478698285143497140375398785547948601157844968622328931508520757072468688113420308065046633032583205777986264268776941204343452760321851140764228981371675745106555821199690811858851846729277790563491643147867474987234652662608378533144187481538250314408948292483503698131860066331460883827321791872268825845301437468701098131826883677469621069043424414099249771830428171641619817177706597658098145603478096626689793982871860252668375136141166483643893496293702259786679132507428568960058356595176221114983005741714924561219784742775189087915511245487987077061805287425475732056697257909873850903428472092954829523584351355792372380540730723879446436607877430628021196754609383175168176570887170042282479748470084460073892045527060444189277959236558167800744049854344850531056057109472442552986770642017937882532373867938460804438776235972337731194537199291739931185943017450488478912684001917476981140736413481848017125100780147408735460926672503557956560939429541694466377618777400719744160041956604185285448604135196786417533205121363706219684420126254510855391778856330201228947193405410670370411226125935257848659798817787228682756659924480289524978501727984093790333088375902895902346811058567500145181088115865903176139790720119352339712980119508403334868345491967481373952253836014265790427875452266189772323082746338126852111592878442102834421643936956652523058838801954058816960768961723576830203375152863922806689442797394405729681002070926081351509661725883639647875340397019515941380820661118905554588517258721727522846743748049928858001550383833369771250966773044352103122064757132764785268665998153060042852092396392145342078287417563364062815848757303859763442430256011159442550588297636931819358919303787604196880589338479719991625436716912096250199765034799760144237782205009725770118827719264688115778291331891920520590751865725876011577556401985246016370086071360451764340538191407418365836033794091707863527784080203025410182698172790326802887460334588164384088570424699057539583586705100734383277486044402439205729730593708823663701700841290196738096173018560420475939376756856976926975752813747380223214693177885087333624155636145461997817173181135019561175628012611581320332680653179122129191064955549542779379575072447002523124708511188119573261398283982609591606549157823750509466139721859180753168323468870475913343313321475658118306842259285336956879758037866281438527964721402353785190824606905670676225434971374785835990955923411629926127997469395635805772601145398041825512638461810974531526789440517409837336284660312400046476258152439597515089235187775063230677790327945754317876782297752643725114472135925019600739393004098896436556640237683542814609751097599579253755141305594524468558029612085757285224919790853864555132767033361682236247195473721136661161989374404560056143511105045147641309266143831792253194361653863067466723705894284805863450957351772208712857870385632730804420630433761660024231695857822357994780236800714713674239228843785166543892342770168032552439348934179713650846849078264545503885009106473512006709641924639619962128126323392680513304866593019822612807477413265400458529892117531952551791806939444194808551702639856759179984008946382186627149734283988485674085639559892449627681892555323649833651038057994615508240312311070066218420331749116570160485923435790554798532434116048330790380845877733366014384872166307784151168024947389099934086470015756465122891231987929736873961605717258224315741489682129441271566554942698400955684580404593405480504751398170488051365572498138821078810572458091474618409734986036066694968049469355014480983812325011205342204476928933664909980378307691946111308538686429555471007052557258781530322439496227592349798750216159346460358060496893663841640477131577686839049797140804299690530204897398857129864714349985566476021052671824562449593915078850663214759867252267531769848186521440229919805232739491867582464401114883516992736131916890905693958475649830816759232762348058800679528586465804039824095792538758531892448368891318690832501749078204050142771392906724431200580852138929509964312731532861249555781621768286638208442136333239063242832842429083833009230426644026475695354358475138751665468701076280219697052420563568741174692317205946706054401536297785939162689132758519777865428131452325498380429194583174381063487144507117866019212115900728712942564650038797665072041960463088490032953551423997346509239019049315143877787226983694456363938142516552857780555719008851813352526464512473979636846091776821747345198949267785125991953903257622003009768965793750735119859662816985039225102698736913591719354122639995540845304148896429505220212651736488746524326821285568551672582692548723684354051751260465520136033087508227736528289224443882667576891216893166099426755814629670372498754140673260313248047547732833335621189068450542513876016627453384448851200827637790412925570333946550515287521168451501948000759511764127608145403222385176492904480739657149222253026227709699017979802101155231319227852358767895054848069826680395372357297901373644870708358708953954230550612182315719710787318948073491524121341847064903942241179694519020451322033478083351252818344304946445661423497662862615343177699406008642939228902648485242064452888932387308076554426670212868662720684282904189566709537028561225161348114397897454487503380200589678405299159047450801281437476581010487799600877435718488100301421594442105607666295970093540842824523153833260420160619205932937407521652579801890702843254336936230176340504652485309798029661347774994620361710014524685799450406618965984146671129445422151712171523501116207173197282572272315122054435756852488778079028049911555044493051774558030609787793368283749417130061165349422544557132923798027005407368370664079826518791264560655559120435755246723168685917211647690700837775904712159781916480527891869475440544397232248357147777365353320960124305930498175684034161996516796195662436598095652397239398455100491294240149834320104295910905632454908517595369108312461938893873008107553930453860688772196792066472606921993503315304987940236139528499730929885204644721175968128959441553842179233371107686315266183921239480019515505448490883154917415236305699991791274674522055648184924061458965293223859367155493926059304468681507438083652310988965068523448081271667119315517189100361258255905108468274769620008001508684428769706981925930756280656235884745182270703564075130493625715152962677925761065112843400930352627360991601191344338588819257230491808927103630560567819977353791285753883645371439094577115254311958572481170067542795366954322267635349439816177352395523082032515608159780810241617348486238400918504205767645550975436396987614946610638566952179589100254243776560253915099415507615639954685193291198424262503704760755094138964677000578089953166221741504209471263214008090092285885540698539284462871028259962307277918232165493770455913197506314772030326474800696380908327794812749994032000582917787944016943443323938395786877689791824461375168858327870290544962355696070526522085873925639357534335539578470665806396700606097419589829317696590298841611537945149236824190111719701564991902325134080552010871670478685591847423658111667072503435898638722739143880500140230660868622905559361727118166505972336553080742653416125744457867238184341006765149710954561218694935613781870291511678816071430672161181149124734845502625999874594102366697923659894171427033773711874802456959530985797976905851300945916139617400328564375991043841144658756543345025182894240180804714239829497899426505718191753215660830786479609151823936571820787226820207019740698378653224492878285202483209288340876172227247018404269322440805410558807958341602015745678984532821686639596393029732869956703551080864304643654748535044713524873832478133635787608608245416119406512566025965568011809281387565301907331268425638490422922176352730499665048495356228372037161517459864786231665650632862645940049197261650415138936493984221225452030329457531549246169676589847796659317673452560476767032390675449595451762697136596658345655722687679910043101269267246531546023986716210774600655105307661029131491532095687507741223275603317709114056139631439144098404852120598149519985755481838662685155338268689796666062178897855619210802677548082155841771614994627522751359034462872356037986141753953621609165109023954481526565673425663855855620835962645269674759670564539690883431589601198720171833682713018286693741196890439561059437955972440769418711560946847662471210271737256895712049803223861997134852199662150110574714229510866592735159987368571888985465382299866147921107591258126097068782804237770744057913466943588402873051125326804864198150164674211287159762992231751279854706343179776053003920983082013302432240030965958009369650990662267990428375790190548586937239754135397400737354998782579829156280798904687986695333287857747358374537319472603836444733694101122261578638859859304116600349465545194062815972236785837725737783630748763936790607818964885055286105031427396515788228060677764960500934853016208944938725680359116706756549766991686805008923600709287493931768156745648098656946331559283720825445339503809403313220221359030919114048621344834811108865479590494326665367785824166486598060569703749847695701582190011591447882463944135949036980797468969812100289710695616846509010861345080212703666629569068497974447360282791931907782546501839681706336199299162965325599170459685357538581193371587005962487605745147027234153686932235053058409039067068612463153517568222406826584703604001579700378861687590160571561314239187518052738077295197828680507289730917099823956045029637645910924499281001962228344747344070816674931168963185141536923151332375818392665517131470765962923192205788620239629181270866118029130242637741628133649218957128995000291934150617792232633146753962806578702246040988875422349190300436646333669717183251615921863261964006612129893655339489408115471817612939268711283084159300637016849706025317064699024585912529219187150368267039252585530511131561742685209494559619382941365253285331106804343273518448793760777376429662455911254813479306916132736505463202832587834954620593142359374748334774193355403302559618767116963899728217704166288642422076791580956248089685030243749101839447008045607846651653401133197524904215027367107039434566614144124613510912135285097316983780599112819958511828241229728644411498575087481129001071814194648276014218909903376874067071316875003852404000397440445362503029295058645914017130273904752720236298484309886676662805452313416826483245646445847797012666763160011406250532210576372531905717022185072700056820523186605479368899847921497649276729730731863659222359483409749528177004440176846588347527312810983609784005011339581838941523132438479554496492221664224979308479076522350481895274880399262576375239656781298392395985199167018500161082149021747518894506403648305376757822847680578916751272064588515056374216435324703779625884663283700394479868459652766352711326934657965924472182501376590921702659500210169413946866763337885961874678583794978973180753340026037947503141790509723149611516120816460575587790465747425705233703313016242609097746737280436468886243073904472479428923621361752392893353061809690109448520079056200545365436262515833959333799724818275220386844523751102120403265672603026951026961872706334628799283295748232320165849691906083975930001971793451761510204280281028459560695624772364328547158547729469115250541855920169538768652031171327140017866257028166395663177196986748990359216432901028040065448222335923898248253691812993553465166093630506324397537873877909613307040040775559511509300071942040897933164014767672982809321065750675861240107128487016420191056236034351266444346865713365821557014825326022290957471540839583796438554745439801245541012036514222757525116511279634867348502428539612054126644834516757658939073936988399214864415054358784136392244326046937829215852337153198791503579605166555797127708631198640194400940069662195706678672661932011572744076908268213499288837919258346853839524273091573933806698592115736580391347819914984297110486843040768729700983778122916705383107149985012384771597967542501295991201947532478827569885732650435823543919759907130606508510369797676037959257833697135944733682189520083794736585934427232770907605593199693220551460813859962932629751162224606446241074952692042680408139733191339407694245166857299758280468209652778234191179889650680741174294322851804515864529324774930669842055345711431741044879812310132736025826627392055488642367900259290769503677399111285309892466395364933890416639250134886898679980495453393732671772312584835934373379479734922801874957834648506306848570373837098943752869670893335917274520581405531286453287613099072525272815060236917228332868552576243407366063015826783206948797858071133546565664407285443922573319814807528191838555139434212266733897515438102069832443334125317024329079080684548285056694888989952744055118245067660308450489900755937061081440735535466790345555144054001895324107866421228170747687435259226101924746543288006116205124395359002173997410083224631950283795686011263854699344278653256899385093175537952215580795078018743825019571962698576215205807964966202758205146766119351228010203403243538460768888897510547902502078002725970167084322458553381051118594959977692289703296410577289263779946610771359095790159473025244189808616968301595283964686173822784680895912820824279201733567990063517912482989366808555803313628761757795205099738484037047215774672219426800763956707718629790019765781830227186907848133649510598667838646178404230593017629442227599256688310800698096114084056115163094589109620256539540254689672160566697975386023616936135091894995138190779227123030424881159326189107146467278378808772659314268776617247158662584009732640241889279798250869770272290642880736262349473690225278270953618459637880856724295743383070277307858389420406127018878277070759088436895355896015611216953565238838731859553330376200503580205276538992024269280624501961601311462968235448953169750838332222484758340149860747250910878746462149717815655116192815799857038977238670578652892535548263861887102966716732468168009445287537810829659222397476136863467178954906420687185330820017089499973504883718874690407810354767326717426323779735911715951591900374671565798925100066886305465540931169893528493142618436751649623560840928742406694932459372358479984318588141368152712173419492451314611112181210067581418562683740189919841964644439427817225326278701625092605650872745754704427472321881629992502561912284345648026456358170858907711806588455839838129641276544553330068212019261207927889472375335835943542865077237956712041787027511447174797203719744735108668816490583893540433654352769026662357490836488779835835542031255609341260500451485887965616775788604059706310041982864598376104470827897560477251007099592560267436200069239760268317378131647868817020219425685880370546191310701397390335854737436748877169562410907810342087912261811055973161085138819843300031092812127886658330987307342096929758305860956172263549267708332300932963308012819427627023833589951026323722442573416092836002689914095975161276374792304872929874825151121345051549372655534406403465807193097884580566486655768869757187565136527966188419126520855877332855420600958533314878147849687680505197425804932837686321866582531309333219705691205735913366468608412813165517636788154227232521095007726920867583064536089529805223175501278698517679789117962689749848759968020360385088315124306831220270600727563105970275552698017386388376574245622105219965073103076289356879471830542627261350082165097184344794723249093482863851318749722480048393285044695828318111527417827229254722240572496002414550677540831791269857060492848745569425365180059312803773407499762079260571645931886515124199220883029101803580837051552599262437517417101259102164790898765550547302010533858189242922458050557664841363536100562168702770130090089894691800927142639244685751223607159353705920878537779534079290998762580448701032168505656687410914889077696910254748853636623129307988270701529991337269086758680601558638211848502311998687594316297288644577997903035143616881084546597440454750509599555046841673786147989365692363509455392179241886805829277928209883373473922246890791882285228668805374769599208181942381245827367695332956961343957930044870400149917073544333245268332771694276881202866878974929320326560629731047069735762712387136800607404155924366123799917759015590638083596932139167938994944905176718851465010526550440204095772872919765013177480161578015878375566910029650816178263275414184826586305845184749213837793778870082729638056761273330698192861093145698749629435162274334434421979695204792172393955700848539430130886807425287741009414708325877387413946070113023163207031951735483998182026112823714126459457936218887244321081030998548256617733628589013206246318938581220932906193086122225222940501775768813030621034516875565211514169273130275214605485316551767395513567578133920741867311037469784672686247357920522874090453587626923533909765718044699970836290871147312175322059312705199972173453284300468983840417003405660251088973471247484465447128997133695579270239628641973380263490709664366282532916829524697078440216420398701903699635565991603843521876621220208253996191516066033472849202000130682825765310780723895283943249886633292744570515008767164772917289214455912326760516501484779219021377606197077026580338722988696349777350212618445363151341250407319404791814272009022499422121368737794643597936959592792135015248217749487988527094641162929282019297591257400093896241953874874033207866299138650056074278971782200428037387897741482831250865183613413266131748631011392428831667457037362734805117494375012294957150176817994213521708587066540269980530190097204253854750961030761237231472668773189710547801956036236994919140196504153347315580791305400356986359149404799711507789910172492015139788677273013437793507124750415705153199728817971587085512539059296092945615277360897144166947040588665921786940333957120660046383419546392508156095346926561504403809261576968367217441828464663076118323190076675677060066223755545181740686845883821621738886149156997271636161306200987421002770898176289267980315355535716339549819304411766230927245378906889615709144461671577697580432961681567692102080270092912150453167728625957690878099212675513686865955989067386462117730191763266272173222379744402334616731682895634918460195463186443265854731839596064554423639619853893818432544720418814753963276290782857633635996502098363494804337403764623895896203580159445905003557520594889040748628588173317528371292966244929670731259126277274187464861575774579108711892041374395340748686839008718135321133809677471659566372369891447814951743107976293131752668792348237063258511671685716558191109671786036733835679985976096379388337816539774382758836815331424252403923001668288867230509419973568639587183463656641676720954637847516666177817153099695106325296907362746469357344412057984173935111695524879520490727723407690851615969134493987867548368936178534823875296909424761376130710792002301166418029690057812234655168725333781894338010980479484816622125967181366447330895088776934079526994924914087254178914412910242681372578193526739198807970523911568966487081228499344608904567617268270548808242002723980391246411175888854543065092443414116227400678982269251891857437015596922195303160955334178132250169339848480935292157687744721199338804289842594859253901177894234832498820362175323687696386208111306071051672742027613285111070654128454597893984434259973727164130770917176932163174985732160552496430255737624324748874912396722600179508354002925903240475248126581440713685276127814926244974811348685245474289882738159684010877006151728144229687498009413765020521104057219742360476354566035273583043474256460653483123951847808887738200475015453458714548278038534482233943481307979989939192597946382527481147333609222212982927143829403575769715528333870661362391407135459720153445053954351488384071141725121857284402780553083156000917119254248191479495937636220103347620538962937011901203050430931211295453261054573877458516075946866164717121721076230484933245158941905532842139228279220074868802421610279035363268836786964955531752404579746333015436856783734127869034774981653025007809968349409159787996019759144603021777268841912000846190351250639890182839228715859152742858618395907888463825656089233395768872499947862243475167051423330082568690984742116586916163571501207631819458237170232124993351408173768881334120263187367843259019884681940345710984179049115669733344752948131819164598135661947422956365036156814337622734585498943111352551059116218936535619456757491862235318258486181431037936534786112468033433682206199131874775873949883280478340353385242934788733797919064262149263949213821172703977912789979241231941280667082518596152646585932245866726462775866170421778119404840682826030353189066520845987340584417974174233817825058484377709563838625995797189616171487887957322478820705556679587737737352966925003455022306426514556978565931995656326644343427586619330116920497348454591411750686670631781169127055856922480399262303795323936664539611713846764078484172846309411166603609142558103712543097296866066294464238206919902801659973295170798059983338938974922016024363678742883494464438666368426282429115794458278723204148576943904784898519036542089087314139260329321360187482692025286696596294761024224429002355366501247537013757879631994162135313155122790062329200123986608685301894851512322913157759464295918360936218773092132952092149032250807611986319573037133332248228299256596103455962291151462413417495369308398101601518169020792001601452583496306244512995546101655917116232139443444833260249519603088702667180867021336538356691978323461082762102312959068188062137098382749925102385928469118306975199234181417602453776748548886337129990559398288958345177536625016723536397343356468623072288385422461571166090404276374658835630234516544508308937660462289993850113371156398044208867361805822182340969526013011900880272920218889714089163708880929845454520624779459024758182413620534237740772074389953855994414603789079774548476621197469789823787012007611526403590205904640808799716680172482680292849402917841630473036159367925686972635895476023330924800698474355085036541577863033388552639600094283778695815971243406842804032809583893690972936679121980722175178775962371289483597715954738913640470821674804721721319564439467419274946008798567288822327205952476253352899753526415912684615127187328158573235001010803713472327948517117397567269845904420410004331682087933884462793371570737536204417705350203506027778530580994790708636869617951456756032931309908782277887311494785903957460402675510085648080040801339926859451219434544304047316273412324037734935487925046366305724624255665871037858980586306872073605718099010579812764791754962718563120194750721822500819270850206186118632062307058327623807881388022057523580461983416246881147947228300351801506920078896306333300283783292606998736521704953755649530919721543643831260207534060299869989612105154118468643214055277934834021420165572294285690454111593405271519055706779776413541336790498686422855160272534218133621924572583145028959111036728655922284414759381262601001318206047193235856308299800885413197439003005197529941609858532887686323445731572342838947651081214661830035438234728827934947099292773276874072927321744252912530080755461527090039888820779754823274416323447297698137621821468447677354132279772727385238808350012170257600417611161152013401705856591601240962999477860420604948641980310650996185516715636417906408085315711314133947520472667096307208473615435421675408523056081021421416208733384928091855011930508975575553650675349906298960469488535516553494404946662424624220698047699167006180058935639133414308017062891247514398203493462821134986975690353777051606807381844384314286793060295043204236110225698200230634820947133091916839626279600258473422313270620213364947816221816397397607034395859353277585148454320282638479353330273474150304543414553742197993536089864149273205689535861969636019388253409221071014164042902280188856736419856988853107614268901531350713142091065143261689580783061898136318400966498326160949101336347891201397655356082129847384015385311471928502831029962502517883072916463305409613961114217428676072703075719514120020094447303830403110942534912243081081525760293847289441756770815632638274187386977618646888869035997541707352785996378599358830935759666601646025950809001174169137522043800512126870490858959799407228405217310064204561708983429968533510575076232914751191992662504839111557654663765554803165310194700785110647022586775961845937808769328580941142847428983682444092099646453209541487645933516532060188340619490538837972012078503887796741188939740449453986271015210389455043203542372237981108497557862448737396413962171904301648361170871469318061230910580551420431758426158738806278993520211930967728838766648577989455531596747449358928566466605763217054148366236025914533928860147258792170432039876014985343727161699477373808413117463512280363000643680484573913246803780455118636787653107729155968560772504198645980020471072636288345146792413062698471976650241178885867263738353716467352097940940750375770611772207155092393343350330805035695096521323689246768274522440355891582677318872951618874012779243279778375944877739850556308315236219337367180895950683405168125001748883387555269738460333745809048114168376542107636414850219659208817618040238623572808254856278266514188171769817213599843844644330092053955557611612738268881520515456074828162991586524421795858287170020928880926880689604179233479001591309786336727339678271876165040076925340758333600892221449451467539327506933649073146134276904397609712790513602355785682100789543535434094166452355436341077575975314730329226322949151598904835834200251685663395389592590235902623294033077130885965384872120865388471116275066423544515287177787718456250909536112699672717740315785988836190234374943783987124253208413596848105489845277228020695687736846339153965227609805320206166050158178291648600966395389082729472172131960472243964371670198059740325092324918113358642635839995170599579248200827904593682830135039451875196197928580312201723251031576694363234291911011224360718038744728236700072596565269489301375789092740210746450966961191978370717276986196105129821929397301620852911040077371302390943140192725071944382269030835119960261688762716238010144046850796129046092748837631959441097443314635764646975535943329619211216685766721824529609973484873498708742199729337803302339269446680556359045195076144260138698404348361839742836101700044133958567908129324778095166727794593674587234405939711550403796475212614523529545391081755351332253877834027548304720178206910426746063949383775457025480920908796414039263159366735059219365650163434324340837160235661688917319986546960976406462911539654235450495062821001885301012951436070869916498082822190786227601540442707019531480730073295846578361055036305860861700380728917600511368613806943060467672475434042698398022101458688611244884024006246580219516241382628162584832683619058684104317884457557128849349415812400393995138289610614594252514303478473192051899125819955796865029351392589822435622760375199559933850440675431535154216545540105420382855077773771582249394057388429850485099926455308123404044696312759189481573387835999143943918890640701204164066425653517519776950918885468650288363798086313611612706124496365078489295205582803205452167086969959011371714698547219384009500027550837885098539648673873916449529327030821466298395634498136543945482693656849903355382225046332318859716466259941472628873299756531831523697140084709750117594163488607981156514352872193029928831702173693520968476628740002653490029607255793237654187388897842746347203954398729494275886461293166937199348958870036698729831554901271966501533609181567543782451578831638201907478418703805139542876437189550956594051369334857286072774235185199261089374441895099915698653280069130663110209674364049536446206720420056099486148433336020046104208694900462027758142130446907768164528697259246135626681151291117357937922689528917216085256735043870891175976934275441121552604712496265058993577206807429465872191831578061585011152616084143613911199713919139044122288797032900404259163649013329543424330422323559053866751348611318899649145099379411998906622293546977166905000943449743525491812648082179791410142490624214556234279246988918831045920552119040788986942499067878240691631568306187905368626665380741451181881594075814682374499265577557832352714742736926901574440240499758757039678856485572491211919807393740185153771348165275508600460086077501756892078083127975931583317981918325607076466666277895666719702447421448934622233390415621928193356732278570431776330972222723642490461124469717607641671903289384618394045694245150582998209085623215756165175198128593064770384250889483076364902227520976291747822289219245889073720478320800522941151110256154727257369471512635378622351138588299479207619023845342686357911975765359685489994761412871065519391547046241239709639376284969724465153893062175835101188917601636006367318043149474025314679122437256815571270749621109921741459460817777723547495152798624014984528155357905529364796959697817192638474661924925850074663521283314874874504791226814251894807949453670388367740413742148803224872353622705317972152695999037579370538656578467787650187513665920053469005795368841940104080093532017324240310397756268502424108256782402779314259060452948464617163670030382316524979988578423272339251645020803050801085436668550308730299317987926238552970552477391178875698132785770588724272460501397594975391729005501030495376284622318324241369813514564461444979396913207542657295269525703417295357892809465687944057147220206222294586215143273628033972237190391651503795997825536744834947245449423130264362170470820147201888989467889192861846094527069952409343158881044034875931172945016470691242351865678661412392825277687789283548552031503166540303329250523822134951776527770765065325909822058446308404867638747274091569681565469031959169364079939890529816862102196330939034011261685712534194027878589865010278235928032672616095646147932935401598914704922513171859269896990884403054867882293443424596627722188209561115265536241073558240919888447243011866166088503068254500908062386420266049956454117306757961817151370756026630775696902494325586422189190215707907931246467013250739584955034688398928626062810824791076334420710319859036943932989045307398411013822030944718336073924323391711963995311373421274730122671813031824406520130908004558068171934112190255111332704850400038123189369932239868680839791066730053291173332157711083792209592470456818605251087845907864442598984660619728344170017936251645895842397169148076678731375731433225363625682053602586665878738967858765127209930800341580068224032653713002689713516250836766003434914125127178145654680691457311550547018486162643952550591860989106845802168232747008828857713561006667400824277568716811031128007027304503406601993605093639790408290748871904904592227114848769603575091890150139381840704435150896482656479393798871316756891902982127860185959550529368916044256273088252084912374314020033088569815686813749245629469884545431942475778922337657736995376158376877045712233343718996216681320427638757041702298991153392798684747427261580964771569097796806163068427454817549943707362889557893010241990585062108932171854094377567884200533471095702219776697945671940054526736219425986552655000471661074471789705583945005178805323413045008900146625799155521118569233101836244412970685177667160542811810804534491081190000722248794686752138439456240437741921720758025657106677901510537874954377804747870430070200974871913358467147669228724877355028669167156155209482516277040357347219253460608749090877510189120275626686172465983299232213552665313847620219869178405238776665160534397732083520268399104767775921873012497933243066309563118846317535884512819454121424148223590085561070634393849204684430026807204730339743978992058073138682734315798076290254592892613319164158344994680753008752956884795864435783714458550410639316044291803646878521588924648643808657271467288895178674310112713257228620233376040650915711487313440398478388915980307585079860729322328651489268812148754817477891324384597895793460782856937935083765934503228972039652205604560270016580726106585056088323623083737341414783329737800023823044534573330673654164229015056196055760268965624293439603592597730153237290965583290601923002196281197223707106615139972732269863958629686978483063692940207215814923557325228092267610399797059326613263395743484641188406355128783751079240265374472706781171059439359846772285636231988672639246177323871878626532738106563861088449077631826187865711392040443875560899550345740823068562188331594789498255057885410539186352085914532351818287983759720167209538642402763658337192512646611488534142390536844631402312830494843614074140119598580302859057908950620371823192182168915798568343058040559282827402372467119013793818041971801662216237938862465656106410031641946058410725628845820854269864886337719072690294375914402602254124710438096535675932100607469863261981059312969520577461080685475862745890046404607926280456434725724161646022778134894196320162175776144769096245141397241529875554721238305857406322328540292502689631367875260567441600143713076240966707907283596760533769175280814125191604337604983573925971231903712058025465903941767997457060379518950683976193005350516131483772889788617737191560552605416236689409247825156974881555094448930489771150387285851303987686807364745792337593221463838390705435066990191844633522432959901453267747257686558526409812277103639589797659645392842767238783320472308913880100919865924373863807367581098154158889969075887631054933214260364556054873585432750916597458712270082160323849407048057497149727095220164261240647521303500247238987123639767159549619474186362796752404917317938552876134572915790874070262930353704506993670540764210799260948731645527682845228774945948762247309204505212702119487139748651999318675623595588237830586466695425576652372279524417206073083092919136370734463376763487566406178108882421148995227101734222784040546060588333035603366351738299737477475320616059774857592124016641053315712752071855660806732540863704046756333773376919690827499765760215702677035443403367712739716016154413109124332578367746674370100440946968346854802232042966766843332690413226384316463027300509487110541146310069626185521639600605679833981752527913994597805238289538022954571077881443810877092798791397418148012267690818543040232311806494493686437284897905328283917425142853971364451075207066017146371019291345888145219599509891818640743573563822031694854224175028127093581521434533218530366908414846677277416014579548301975616536112031764753519407441581072308471517005145481042873837140211728259642760009311719416111679831028346843805830716102145662203154030590876877581087588595678770262528496346189113015054164453434652138924051769708586069177137629503569143328486914598823592574729953383291461792298127714413968562769620304251574349185630404215248892397441669878999361517976853289800117561793925942547711296905099912177986101678252004835768224982398694532365663326006732255267723285591926686382727998379793176555033586635668823880655992117292002240550587060144077368723690731517673419087347071392318503034364679802737375132988560518976894508078031997979239202319238445349940832287443832895552931257319523189638972876889750897171072041610879378251276117425268547618606504736276530085600470879392845658696602165454714371239078777404053527481967922340720084411128604761862751911344248532066376754676200962355201344989144062676321745422817853903851407338536219982332065067325200859527977917619644804916821135799468257535834443392951452977300154163874420420719618766484549104445685127743908678585305733393483119207201829694394991645373335828905566221287496710027270129019549390580024296522185006392097819105880679261550681054387652337713220406126336225431115586491307963242634220242707393954625405296491923413023148004914140632492310969032640110331300960514392865593158087924238378964566010693452530165772089497787569750863757616175223585474993559405190589484657503279313814871135804604652033672336701393696968258094537944113623963136995678108544403320545066730706120487990435960864446914791245826840816078161397595332200067175623713973553672916949052946994152368130040673313190721089344589687970970220594695581889654221772487494175297061891767428192530085127059892601965895192433968785969387161839910054951529286588158672249287163693045339672159344511083580968225494450545409638948482920609959255132243935561092030379557154425568359921779656234211548712714477045625600149059226752093982523345803191021051519326214258267151792149106466677175181201481991379616296690701313517062320069108312174307073155052930035392718525914153550715200249414075423922766488506476101159297735638965573999738060644898564437152860263807312652165144826762847212848376379025135651455430189403625280129247726144193818198269169698435421176286020883938355480882327619048918351611875170273842946488489480716842995016381329041949069505626712059729362173505459855183455244032312586182366630041030283335285309702391319096806633301644575550558204274389214988960472549546686541153592604125308902849237126724455844712746225829464871913503188685230622604023199877885133434256268739392197647664770340621146500664479331322185464225922298651827806670252699214253661165778503164368492069976564219898523012055731517475258801800027794950738255132821542680693672264027836974240502306226234640319744735176794710191628704947711700993426825416005763196954377383158301930985244627039216737246280587560708949745108443937856064532544681561762026677664109001099678779111419896213515025742978730385013819075285874525128522448376849906127324138822599540710479734576880003410730684504106151437672009051897427572237121496601835335383072863490091776750545658728892413878967124022174300981603469790781255332047623309830210114137390270663256643743877869333843836990412183144020150637166131973601985224781218148244465497117784726829313211035511382566059209683301815501491011039808768120916677363772083181387299177934885020130285080515721412895145997553933458982035815061008565899236226185319499297764516430426095330556924750141623879551241285433586983584588557577521718751429774981559653444314237902726244138846464177749891894854379146982738459413077403132534859869605643704543731114388272813189649134313115856357649144906124886048828361387951450883959513527814122748835611365536457677930954302973165229129845093439261616888498597315760522763043398014124121563068686278578005748303755160757451177965618471101980746957615270987341787080210105474966414639604986119417962098867353752975833779595128920242182033323347334709774405043659867190867709240487410588946401223652505170914405238609848815439494969487554430009335757914486503492715083402874725969723492629581880832562036024796056452125199286956817723707528915247491790390748219185470505365714475349193200354716217131937703862650283017162191429943194024111977413248406122946830246120856503411175041601557004688966743554836761623184101800281474174286259017237808717665594249758809540653776936781899413262130830959929827343868653048584055666936473849486278881783408571375853906664913646521337850105853507139750415694137888403933544079897094583680878257872091557540935616605472827215464254815457034430855219296243260307934931057919700408190805249948563263871550117691299015725831676742756445161360524760803966199872009776256148042503735247028336128049752324823871118985976278512785636527885060337618111611426001884926981940660793106759951864818932991402928226188679061543102613755667018239834379521029915242630279716352626952244681106917248809982240545187866388072640526642558128145896399652109572297221582198044816912235264969388461851626689182078602879737674075593785353061176644219513925290512984872505244051097783930227106898381747754119716356897995296146839446859621249756638140985901627398559077531488426545146657990821895571623042171144034064291361720220906958185991360317531855170996609017533328693552967743903895615872604905710327159879945168769187954180110578407002782890419715834887337334521970989592584276076514197525985733979562356860139786283848891942838465749212615164968551525401891018733042388695416338448046235561429297990172622989748120903623631669367973166615729717727440978883937708118117031620590259811304847025194530516826221721878251221248347274423176734799380208696008587379173802571121827922131388798877593864777966432442606358177729895723140813305992671700129703183750016757736735032405622962199556889257599004844043897312410171240903911115879561582620870705901402590709146561436086162204950457585440436911319089690961889426894336549697791966549676225245194420642365283147058976577556583272859632747822000887336494084051015255379077290869990609183006777848898946022821511045465380101209011355557332737530917951811114744407239685865620073568749757959440839962424133278715218309120478931872262484775192072417571991590457333551813287156647581676472317197975701271345459063005449826438229446412671397127497737479194944719962049355560778603074166242894136857833532022942401881103776057595886324399353328375254232280506989279748786956803010985741395212593388803874106635092354925387206357672402502583456422672546686907562703252291980534414947706960970569981324328890107703075302305481695574357134707431048789553332565492034869316840021364765650254544652344061805230856724894174547189423082610432653662828142366195165554287455667499340341544695262370165700401406328345872415166520482888511171160188004854852662132012146548562649525690979731478973299128500260005926694316777931764822425952581239562162355413816813811764727291820944302257401357641784177199512888433734351445392467887844730967452756860617204343327548674389929427926329549037333678960556187648256100324804425902514494936592757511559431437868492041994580166698975347498081463254265709496775614999051568842723261464309427452253545089924616727722238129509404014194731458929128879163923713673945091280440574878709491714778509341661883048246383841022738008038804826227187219346548203233755627200878911826674205483109851549243846170802344398400182460883175118451351537190192419511636453330724654157398829310480092373980620964389191400165012769435444953753083246461168296499777538777613801747729447847845147395756450726735479707443266506895404532425720547286344859760378865861291135722457799912681597725979380509817920919901895251193654611908562349912903441490926104334912072275221223198697527748791482292739620336662699225857826151420839996300695006846034982800477278815211862443536031167976121110141793333154844360325032531303287492759408193159800108293231892585200808565565949725496594598693553889367973941873210121755536896547114208043520770401078726884912314658498610871005401995106550385560654878791944463771414058687163194312869957635882676065630845241616134797131779478208649763368854762074867590375598728047820393874850868447926440113750741215660970929538308946732660670430680055569010335347767687761347031824730175705747301020289566613342071812712666520951424396182709224976916628712285307871935470430323372110656318588296081665943637732099646999443248060695805872618919243288334710669402971594234501292324070966866720009324551300209674192972735110666331902466858021672500814076591349006011422074067585865851304690523733564167744548067500573573855646779996937326058251330144476686320212832227056101325954079656906828477849888265638884720533119411829319337327602473504040035232837998305524211110920880981993007879392777155793952234266999877707611679754255719564838069535776032722611735929656727186507147897587351477743073555426832467547064964385485939230585786043566063401077883120371124143639555502080734940448366777509649047823093989743436099160991683219044789619534601596448105754179327058005908116356359216407862111118068310840591489439385414011879813256953488844044229990054126036891009376139785964200205815482874564990653905468787468184336303474186357203243611417037195080743123667802774462717901008453228623739621452305058843420558144822697695439740866445336354204596478273151992888020860870473612761850730665235721275598522351171189620511972305022912019080717355298606170959331155907660646233453048580650048421892220992853911640820605547530924153749802859791952929757135281222308333503765026307664861180742236720353895370767809962049713176167695135028491084298559652730911563023912729695068692217673096486656992704580179979061648987426893550916619718117621708095035481425792103115267569153273841941249170692788552879561010267729156011503332977346652282894743542485710201481355244859324340400294852709616909734419393914679203207198094367314518892303962753339122555498932340278327601263026947330518996476495728470903705335797835509546138683062398782645860974322831571993508274884631919988038857757401930080647872960127161758016533675988403591947394838699141102401028951455511181473281787621303730889318911956736887584027849521941278474326962385905139623919530466410136633607776438437423567351352485405863338515181334350711614014177392580802993768300406940208684804876799232326534550380933698717737507132839389489522712725075662748867376816343747917554766655534457864352757004577747237764070861772980821486489945377565993761818849679356334161285679554385097119480653379385217046439457122986298272668242076693105932471555934075024375022956058139155116020312988428012696652037397074416564879548639355424210739554421607683313875116665441301725007005066845810341676061906258628767750728731240497820938967162122740019622820933196877510498525351333559857209532738208741477966526545275693843774846081542940815126960244789803918264961847270208817855973757094563851416084875638992712997079415536286751421228673921136657473518856314328514001639001085115100983097314506660027009861876368822693036742392319803949028841668700596365561446117877872819569768024093072005888327577279947443276694610510062263144246475708968499441855149422334439378230021995776125433734361002538968795519915051690169703102588061624051051391041494588480792790981118650509222730437771245755816006615845490427737267743671123621358253519493203643788575951268616670972556322678549814331168743618363806400462386166376060226814157577961178344757762956964879598510609561938404041395770127662686312371502742542408472811497280573645005385380838937207027026267992923437576981291318944248291346002212912378384892526329330024913643984497686782355327261087427869606374216609431467165868851721374367956919408258759386428081231877974723435703899081917586399539110475102024935124684483178422818781445875003305380011085089605755472563006605611881854450560637127837521647580890626887647103813823959771807085846170178365509369267346916179540093136727242564616434848634519402496118369817819790700576253040429016968164854032261100126709665607893180065030578623645213875661953765461215166589457106081803352636943769400681177265705977130691625733517443615493539016202133005108770501730311073790773613046657546371864056366627717502905879711594128972293127554491665366433429682629522432087996592213375843759626403305264103834872650664980214024669867852233819896552940288265414185151434978784189644095516835225436352629824909535401937760032709936224344192079010272355675073441522165322549006191268156931882506581379003605093221892982734480236949512915333279624299982058399625941665036193689419292140614707345784357794433244202432340760079384852453090025554537957435823313396100665199018821494434061007829076486097375619053277937835134654066466990754303885834088480461003007116914188000982169560909500957165201013571672827190172534369876300857262517589593742614218993186328303429655027006533407446132371287844148460427379452794056192564474483706584919802030298267722774273651582093888990629146921177820492602090558792734876975195775134787173199614099814094783867391911415529118188360234571313453660469315344002298033844868348415552461827048788859684718443530749113795859192548864313105504974425642143817747695653608676680086145571229514154397411057798493980017247484333417978008829936632667146654255146276960108905491118137620740875591754505502275011381688529645536842079452058496934286728292321856218818364304756196618369109080261592823851155373258919145777445706398423931755645290168889416587785682109983000355944581643570974132358391078568405970319675271716182286882712103798915043060382705929905970993548054297531769388703818624581583575198847412070337609245430386533695805224141791042730824483857286952358286017138039166314423371261042749024931679687074211479683008779016030432795438528759137763960324755907677770146287080337880524579349753668100545445687870280025407424892592343149180539354107221895383484039678703646264712446157071717591121443087881154210969647015097371468856330300591816921114671388770155229204476467957132593772837987457530305196993979709583640804334105651156946419223240127204346132770190932260054276215584111446407975855967269415951592804600396381929327770880997375471768085911460232921784863206459876788318904436787104565370730004404538502482190542805541410985560336525634162037465075117345860509273695768553895907385120655498648685624162416715271391690975184217883597904743171417113070860478110649569973981800100249253913086485703622245497716221743268245319987634796485298125929470690349044395748698504584535129433764396894039001795201578620517465953308834588040381274235102820982034139779892467460330677913066026928208333371978873117617965071930708033214249145269711320667848785968818012988595800265199488177530596036648635314294692742865426424673696500214836467155748864025207860610818119143769602069882172830582099924831022744738049521077207383291711775438764274881075354000363391068431231935141864883046690380147796105783693249308609134712215953268162542925077275395678554387918018588549861005388842706982961221593057013132228769088753161112259106703377229864423898111477449489125242693011046989599009418069320053384292010567693058490614371092529487309321034938468707717729142397552869687944964138903373041464851512276939241340041961013107992650770848501183926359641630066998090649059106877160528338197580384307418953605781058343776774895355648141664421960558715572830535548037620823975571340335657264136614503140210768348558732262564178117247803451554361076309814116539867106765667379716144305653555182156059374491228537291550245172387990850307087310173960781802522998707921158955120109947348238013526962317934556273006695933147995217682875522538873476937469237026370052585680560395111681461194606048389621585648194041254230300703382354954493922786284545914110738719794803157021593289739949275824684556387617588026684458530615580307174902353730903355306092290624437328760229788685361120985746660242627049369333130859968855404638662945618819044801654622531615537859362130938858427758523223144062710844627099439898157287482838703173991384190929071127920084580719032180564407542164199738702147536333780091494212663861206739964011684376561744419602657953836377191364842947555119301028448110308432321868008369631358552366736300342862953390669496791345256544299401887305850700077116731004910438465525874588430606772473086302372460245709244189422907510575833839125817178889260454001195509269065851091627711398955643549641972477772928424111665977395345071956053583324572752968660238878171384434548790251192977403739263663396000631495091715448921146565723254284627673615449826616722634711385970140568581620638819265574629411817894910744661713910037453354327761938448841857784498509377875692689749528953070102488873178902991174702849383011160928774285956696757549309445803830400208925560683947068485326898078980773893048759911744990813038011857717480181029057145129051649205867510720348683231278153186196159541602942845988182518654444310904354055378655481248164012496709864674060587979857036858819397024477046014786450356733545360433021440683214248934205529749413643198830296383264021354713771117360140984742918162440892994547692936315414024109197647147663579354430138278101953354651038692484285662336418399674393925664055134650841313367405069527783977850250875983583023934771692460357764677060004193488758375660313866737195776197497303169463681741549730989500383894463763807604852932210879106073684529981773453858638625116752802791987285228427172902024491445879124819926779922988003336858959766991083698562047535590499845274012690545550920335211330762756244336236170404421518973683470645564209118697306749786159649347470327464361482182635837613756172273248250902437358560202154060059101719727287414794459808314194234367972625263177512413962591104797935722645970289731485784204247095304070850698032986519059666102482944113010318960827390783506369417794529962302718468821944795492802646901384912893094771101984855857564821805936446140350837560990070672219285682712283655841738162918140118348855254339402328654746142278222991879351104461613534612071020693805201827315399080539617180355732472999316879464092521763894200258283409658335630923223622749894069262146337367428631345321855099273387487583338883238232285385427028065210023411235353131621252521152112617203161498075225420335423012423787164114182991195725279165429727393819041881966261230421933009789799606400817399751732343481049290957018076728161420746035033169384575861817795103326546021522011476098251320095484956417897210518318236636253734949190764537551520253611934655681977513335041301501522388642762979711692302565934272327671031156630868248674253082223694577638100812122870886836676118866870769752838988286819419008913609525403551892075840083093162438873995873020848680521830145721661176115775045407381504658229766842260358334322633670251094257090344703466825601173512741112597030653781421765731263603759607358140031592189694359004114479971517219368871679769695446037764637903958512028292591164136198570925410530543210494395230387515847856789356866228619840910690327857145337958373896682259222577319913587394753050707434310117562467070502951610807217785102152652402877748629653805443952954380650103362989099714162943797973819816282917690907525005141954955530595764649936073495735574558895037224263505228103885370740612682703022004416105058836490122341864604280264643142368489932718776718469360238745341827879290947266263998875908975293790247154038410110604201852497691176415759871742793622869508195244900859529383566918394997742450478889083703241366898597651867658086106578282385531848812322624176268668095184025931807004590320796848677704160271873026859069697431587855190638082828606766466337898181110556532793897221437272368341216196201140134178249304822986005862065831669062587799941287958030450370082239790547574776537407922486900182873844945800459666622369454135563756942532634089475031547630845691447768414807391607472550083883596302450873586508461901736967518150685934609339479832984200414361111855541682445241908468713492865354233186792341686305527725681717820935602659788574104243970713398262184680529108411599670180897166287100553839850546513130551736213857933715685554575735393816625398138800180416681493099672584246310119734685945326434697487729888878159283892912209342400456527843694928731665061896315878218332029128567949833789926569806966186987694183687350764272432387106732653097483023626683128551506993408609252101477900631650928142000749427616392797970379169765988614757003389835170477141198115936909301422425551645006552835270873766198090404414875391213962544471841618922014053020496062671637807245861823929554195241881606142209611757223125695980520179122604622641030233969940715894902142308781166014076629217069201968262570503699322642135860320673976531902173368928350776578014642838711160787699922993302222742232695130692522051000249284563400578613978155122022023336608892052800941524919092251398916900682783100871408523732692028513740999048184799345624683455225139678808198190544073169814596121589714355383008638640141360406301228455041669615961418486443780623856727591764347892413828432727311092190486316102167442975893740112006400319663376156599095438461473105579383442686635229230761284200006333670725146517388243494558264057229171249069050383520052680004261985801442972586491061014245471185633110392506830004486887379698561969595476302748224584981444236668487665979123211719606736904054674890994037291801430752814431292399372517506726911974317371628070885301609671096073286167525799461443768629158922115679250772927720971024646608196263898954413202193150116212738319228394435396051402748728709184434953725202667351251001019333694175134918606490480447410774841303733129673062262737957824652367722270815765890500103862041777754068171182478186369711598768847702756007088677190108427674996773546938481845265489178498548568955684766007337809073457759699796952167860959455684896311908247675501607164442754114106114376138816888846590168453589071979402601401917746581238397114507564690471774924349450340902182906520702199740673529287944501017221866930947088296552173523436607367927258772451541076326264899034433076316130376832911730320978431691729715042755569651403826727336006295975432927467850277057944026304183480609724174924394448025155010731844164555818326523429240764009307196393757619240631555571746867990738451057133788350690666557661282228195726581487098636893257036281141232105249836291181969242714682120761386085074953879641185563329446504038356811773027661503020334248249030596858110664785264110680991775215988618595426864880318218034070366993094815873921651074267863647453642231512729780597558630361218991049880691207611047328588666376634181008348891726390373164624522659610522652298121767141168486104666205106263852478403741012265025181370560183791843988003641476094878970383626272760579311531310658764846617556974602514967737327434651989634591130266100810201879024078601412507526225634343032584092474826913620211459168118308863756860016481201276974862864571123428014414739210375303307504791858725134397133176855241983329945479046621512412672860893024671388559630670095417423948129819320464130473212794444898088862830950006119339770849067072446917397527328814338936683863354072991112185422787174895673910634130511014881208560829400644820946743172717438967870148490148879984113337241026494039554443560110077876031134415598019954613527695580551528887315347771652764523701476984849848468186886172932302332637483234390237548132335364892906450884813802322884606055097723237074467670781198783811477265813376594705628185869151275507986918380406430131846231273973993600049681894785094917392955654497782894776482946560932725736131863372524014096540760643931689720405690618137895952659858673097265972297370291192902516596032671256228660529702946241539319982398880866815896489134591377909596268824396295050127986456494244507164293410720676225206361364569404680728050079344662278849230409646952269862856168465005210340623312968550687263191187042125528546795357185807586522488941065007065387427938896421103245384621849875640695645178577769541083896755433014826541885399221905809051530621274642938244299506030418598939919149255447984924238702180267543402693648221793126853293067907233705081850232454358689148602637921772370699341961877182763502545711306101421362839915493323031499994607442738126286599956519977167298018936279160820275866543811659291222684562473684477659399979075746495270458627005758554427047416301354180510027219287475769742740152580176844589308513034521552507222814869864203767432014112423329003543136196719337383488261846975049731977283574749029334856999626672629165059976686738662858787902043333519387862972122803601894558743218272692023103372373788435153422812788584348027965700889625654316546440933208771351570044696099070830961829070762543547008516457573749690515873657015249643637165495992829649029716529484100236814078305104547998097581256034571589997626119211967334239132818733376187002371357481135363374444893202228229348723808624669154830222204199711655671283519935796110070166678377256848992761693957942319985635830747810897903866749338909560911101241772955627151045002998422768753110717993655608380404123700627808357651442851107829368693312266410722495627552091335761049429912469665012941358020400349261033661738210624026657616247048752542429818771214380291654263169994113174700962615718489798823880829150450333031944758271471284819740752655123762078655443464696304586326085694618997879959043209840576844582479212657316204778572684100865820778679758543955153098609854856531244324248582627233509249920203942134653709375296578139244695780487298988827292569273433581423797488756837361617151460161281774392950571167553882848990802851633623330426762379757639864715998272785840667968561578829606850231872321557355163921681599413738715256360661815107213115464073153774668882277734133404871272871333097873326222654953646529813864874205773161725163503999205893339981526391888953009080664445994092000584537120862922986637330544030604331924103106049715239772720310050405705716345476155353952595382249058987533427420325622101110967587191992417053736517688198819567820493118534079341748176203554804547597501451595489047777572314365274493791219118785595428884215873657877866907758768222166853425573819648915689569678365811527170613178908589911304722608802727643871910742915229024202906224828086927105773793211610116768603255625563474028866627420461703687347303307034865172190138092466572183744343224898335355339634013768673475421193697145553751059424874149484399412951150202379880235690505916327034104599246724592542533685580408796397676487457630438546525983967473301847280925528015966831078188623027104662942297093129427443554997018355899945288967812524867108181893851676292984817721182197553101875556557112704109768638013252611480517996051998206885298809473447738363438303263924154735864910539781322562084266029427539313851383441543739774737688994249465008859935168216120704258611283024640537092957491243279501928292367120933771928737201783222514611313945684152896914092120251056133929446222336946661328055451194648475381872199340480212546372695709323142544174602428019372938205005525076106766909398486725781889745141151259066807383912704897977260057708131006483010504498081314424383430466921781117284635804479793404619908379077404833764463803321595913429675507954270588288853390337491274067837539831419314478276215975067476598965389618971054081396335147981234188828762837095782447550307453808793997501758262988175399159496867092987952206492298197592320998145459539202358092798431437912207928101538568270165144706428637703496503600165303884894526003887088375478166790878047116835053648718829086063018295493726159618332574509544260216358085442809270727103218850784018234171478462348035924934217064863939337793983731997712918875390536225078608597382609119766629420877997061849464472323345465815137317970658261006996612828098540086989981392100074846755201714053908299874819741689534901863100587353196895693649700540811146100278425950872504618838185780385183351002872647169131526751313537094469273038209951884768329969141291801003928639386939937497693472070888621914808219260860672369476612336117058127321052291924191066950095215038555089119585963577358099207100015694576483096566538052181372275296517308156881242253229767563423236778409296540517360178668640626657637495478234691328753794539547027019747567684967266916988219633166260980461434981534388179442973384463600618422348516908201655930268780314241039124985132133510174429796965633315312516264453830243555151583083660822853404538324487743335593150759838501851288616243436742497407326481862300409582893804666499939232127681374347282878466657962168571561672774628224417108522633131138511372639693081998121506182135953763146930081114752201108037740495576043384030048197387816146269567706763244825482776024852036999856308138469012543066402557598582974880041733262641835481184027592665931136848135245450720117133406225095184499344396649895196473093950994839751667725824613766016989510895145769185900659082066643000316901657854319989625300208853743382413870599914222053023973993133228687794371877952137067072930234829485167602933712914858367472321675069726480552060008906824158327141529766752432508015884464084466736641461711826922940974619265402140451170141994500178290427458200037297776737783593380743471716977992827638286352452129793980936197408210898323174934640001685463874828194952478018897582669833468171301698417868224370999970423963467905935108794065767075393075106204251964538971221153117206517689522507989030100969483321343136583860693652202764362659489252206592004762951649404454471556570406576584676994188030843837476140241510462157934896102599287926829918120242508896770775984395686593095126803772760523664187292377472473766552800807110684202529670437669223006729273733977410111847303169030608598260369223257701085046898906455422136413955313799371363120936987036576519213372877916478172916833684712583509645011916593902575350182373815628321436412069553762400212491212616449995518659979294456563052416851298052975855962937841129857094185197740849759286831715356554196575999768145688219287778626429738761037200720472326415979952643181544609132595479195020369239542044447002047964908210527977990582883103413893902701320597964855010971413431388519024269071498906776802106584705102782419944122827892376667574340887633022264264112957603396764856625818990093444731816415220585765493459023962424149852218605528192259736269379948521386676456801810565243742141197632968729856119333150270852068664583714655367084409256055082473973425892118796640661800896750230730584993972936333551568745873702513636527211558695394951626347303252879831466702655461444661103320787650307834636716583944679490272577960592125101373087577006225508118172787683144553698805260332951812195583240479434938704729459509561674745893680877461866223768577036503787788875994022023340882825569223060743073045788997716967158310068597138810283220722379988809326768411952139249844163240297726858906765744592391988252150032670064969697228184709551045332991926273001299497820128743211283530655107272731922218210112132086392554829702230563656404942520304518723530717819319112489950767124588059036935569297264318021639197651180675132829558158067904093156433012474760318506428556053354920550124445695422766422771523817880409319343420824302721903836299083318033763689371499258637605789913822567651855981966903437116332933075952487659189354367976482296823040169623077763203849526515237693355865606532014687433599452058102378261338395896571490381777524761724924479106810061439326337035667752756856850362439660149499493625550491258355104150007213135493396713383027514356862820730536380130132313600506852438926655965223031725898501367898768627015473425445625319403239484622754917420559116164123828263237566621594397026070559487987580399748649164191103189841449556751558792157013743020724129248685991187373039236947994481648559456463948567055804791858499524802032957420562496967081382349092012917710235097815342199603544566742602008121682586854476623445923015117064788439544791918951732283674562059590218779755305867685047136288606860329018094383119453656481588193319752511939043054301860942951619525675228554188108950377180705716954073601265125746711844737497989439253130667168433014467406953604394514015986437848094840835449321147186366224850108442398203921696299419981111342390994293319612761171781315523644128291752181752705664442488553375612725079504680034189170258321676548870310408400131937839831485003163632585967717575804955362702342132284172054358517672057230994437534604873798357846794882140521075292764036087196038680315084106760902874569367447856607918017740701372762648438351901434238354864008798923378221494287646378210445029819098838941180255366503093520485161002324480127067577582108604200430796312806856642556211183182225573715566617085447834597212461370752607033428472841168076147325864083155973558515461373928977147052496683563073559246160129438855619158685672460308035801129749944632885192924817685778529529351720624494357109360581967592337158440939243617530627214562916128323212293763192635418702427762475444054210033713231135996755302601555033976263665843901122987880227592020673116968971700796252720915818477886712330841622498471193459965313226363861472627772085974771918611273985098669960531042109394192472285918428221546868629418279631161918540383603717203647823953194684753526126578150178226240461908177739393283198938026332636680288552761932658870931870551483931196500418555352133290155179310699374291950337834733946902637236995801649287999403130948792917631824449172142425538455078166765785060392318601999335319115925916052801607863473807935933900658447083245871549119669128410297953570920484419228991112736554292837056701194126370763142169861236766594740028310583906520884841357015046824337358274842943639042664953000036453273973844066711813234126273876581405377362899323343113355235882212613191559949629337948545808907075509988822054816330054239590467944341788161591097092272519514249496175810011056324707610855900651332707562767174317675444310799251519054290721045715147339648119770856982827085987828132037596649698821654116673903043119431545246443958274905585938841185471010060728853561137957074907831932256561305546012659791681027072474633956814692751706670736922193153048031420699553055118404300671668033373018456578240952546673174371612037374075350623745137465298683120958786397255481957680934527557833482881506822721813335055744694256501958509350506842269769348900094499718637413592265316131781129411007526874640355138167643993154230439234965865613051842731220583146521142345763323483679405316895797880214372667102014456460388826477235385509301565575713899869094130334067470330483671292959120957095940930237039254600185666340932538050728068662656655720974625839353091114701750717328903966277860079966486753671094771410775144310426173233909157398276385242286799497625533073676313844481472087100659398274063845829441019345671587243301769654276222417160931577555110297718430193093174662205169111336403903986204378579250616472931626774320571143980884471793045100962189446988576058152814142040257820465897052881540359406261865544648943582891426846880074688292417642070301085578892847206775185170945133909112904856259355684452518932348908379316785256454880842873708573176894684126567230696937274824154431226824132182486812809711218047895099577874559683205217513199232958331148957202515149924855221617673413877481924931653108143592177831467150161464953838898473232442490139799938131889733258343311753257616474223997983579063091597914327173149520002216716374258278548312900600453354620778533618447768974612838266737502206267290846851719699447552640071244431804774546295427313787819056804867887917584438344564358308829149009391463751893321925929307605942098593229682261686411262622042921522472279201436691822154115465142440409885343016585733515071763950600832934827171066439575789864062085653737407143795333830585845419930047031783051712604495413937329459243252336887463795372945334159841459967774433700326683991052579788506063159857378871482615358111912873996998626833286806866241523845990512979061262673187427007708970964330678920269484188897862447186902566758237063911507459861199152866972818470279174596289521301781499886655709961991487137748988890248029510435453467271511140869415607876553537243373796943020145187961625391644785527117347583496198311194278864383290114403855536328076950830182220617704577369109112884044049352458689846020208582960797680426602204859614384563500998772700604505512839168771853768099885916904078981762300534993475691193986692530134230293071782966790170430767780736819466660836590192892089364374397721959550737866279038509075781115954015651895280316613317143804154811066886033353407810821049294555638871305275666113654569374987366906676723254259579811597652872691591328311936098249165992074859528617501038579724690415918538262450966124376109566077345708508424009318861341472092464572492601819063214604374756420248669972270114002983616053498317908832370578439636483653480078648493021670160973857631317568655531907714091609307381828378952497266088149234943124099503855340891467992862661819957609901639122656356541365527911320805002003270312363926908136617250995658225599884798866881833435727649230733322373004965146165571687026690515293218345690287162941333288618828409674179987725660269745745183910711046719293761306670966419284314052486266367132214058257610978168778531721509018390151686707367154783107822351741291449306276985464178808418064645674182650941918499831863029275945643380856732181479964345607414276457871028001801588284176106362076877085328462270617715595012263737098515369022140669087863809590210990237672586101653675736336237298031337363866561993147157702232071877872875373548454924919036635239304942594402538886413032601077785805985561438521173601288156534254113308188206003319444928213623780821274048170186502507933175023425496570463925982142071463862090678482143090883743327720578962672614574000447288003591307765953539848223799299624765774868788568854335639627019557758032771748100103360018955138710548092467939054772341689153157497455979016459997187991487301282351351606946570748185163118704694559536506832241301281907842517012847602499148769310951537595626166565635923070470925474731808929240929592173676969599708959673049256269744014260912674189807174779017820808377647971998521954197460602519231898387310481810519648137238542235737119595899463781284221854071189240794828367953354127252569667515346976694300267593046191088028266002422761861470828182648493404823597201929198074869805628406875758345544002333003579453307414688587198249741736812617959065854277154028732476253765662104103967058760470663886163002702906113568918620590269430455633685524663375102870029520742174892855105115414078485074252622946665476811180321587915501121135979634323706413864663292051296220447037947278719076127671496955143574090299221562551460932236607632724549555416532606562261583094368285288366370735706906731322989109368260521614199367750747567291490466957502982274109535081248586568696955135890997828991648162769739725820337259308755183335365106255614912502477718661891431563239607755954890325502989495523911091526290800169768984526677277532836338502810899762996889545714732269243291917626477962773066415448774957060682714902180595583870578859155771276097301316232656323498122066719733807447841769987670910498706890615769319644670257126517919206952975889011092476497264380009814510034802420418041512460604235339846549236828414870237660348377208988248529314910015058439484979733050158781191487090241964325935787443188357711445117444598619337042497313316072436519572282423461267245316389468907812335380577728164214901776936398975735505842758431848624218933699967844711120264216680096164156337554942416835409511302736142180179431003610722733394270418159411076326485373277654679499324808415168795062525339783456892521729441996308809485153545158680863569135012065779414946175616956120377712984495931802896302935665606819637717562875583228156658426261725184856004949198093446751226231721463552742525951004574797122256893274188090503816705846163409640819809808164398532806254173684373506415788973331358803873622152139547998496524896761488251154815638633480088032777544563459389746580495008776935461379295033674899052965737528462530605819578828463805153955843244166791844788498933665313659008077518344566499013653004037931883638503285685564605396929484964082756535800396858982246121332252993770970151650698086492196057377848491735717519072743469145810308247694513737234783727628620739232546140185763968540757170904776841523971518016585492223084560469389925401276884473078464343429077185844801338517585243278589000947117687598771163774666946399285748392709082723457266588353874581792911131876110099764793447269402317445130468149763288930227169460857121975655393737027201214070551045815993443996051077751051830838798163853265369879613267586261605054976654502006599925269683678460008087675914813439962975272678354301371527098616734446058810574489118738161613837548276245022925212413404837811803819455004478071440605877372744332673038768825735372642260511416700721465794939001579060276775712876364274556730003902641605374996133471442137073823912732891451261294736747311515845160620529697517234108628453169834894222576790692461515053745830374768338108439678810742561965380692645387913716420422481443647218243433419488481348318649247716291463455738659898549039422221101448321529397396819433898837991203588968804753085003323177922281500915684891114547638336719382678439757089371247647722045668754104155924392407122772739429811293901229221552651230158065360188982759888556146454209160099887411201469478241831616934805602966875406449152917636476782653311283527730514586463387598125781278399395713179151676688363528727467959570914375239431965321399089793236367589414784537843178908318888343991873539027320586866669966529263070283388691830383353222050828945013733181759988071123158625676115067614072819613153119348507835679512063102205991859098473783193394234222974856540877078292246524571631205594419092415755071703153671772470564083982644544947420498095410171142458370383078398985855408258105804738124786498065314435993579905079768408456069672216647157319344219187780993286633995162892482756844867611908396415708096466639746711302149788273823655331537736944751640732237260450540626134165692385343255361749506393430065279911222833151911255095721253665505634409152623407229320632198384520558178994536928850476125848981680272641629063744680810041755922001159917630143077622032298702084016448183208311825985734255583673292939805837233990036943650397834587541305234717714142541625857664937557961635784976146876498830540941827862483271030035165888603386684349421286486138194813938760295362140944502363496367801177421701409967012327644662655397054903801750844404092467501866577787261792627919204609303926815862076751282472573407599629211496624100575094843020903988220470451151247967449224637972458961282233052726128267520742586627699927369656619187066396858306967700866840675812906174732452768372041803726574097467484628551317002606932279429441648500996998729223416774103851876807601346040836467302799879598386081418956224747724525383806054295063406910461770634227482180804997809908751661718819753502188562685061386110104837478094984783429774244419592795618014030653064862871382497559573783508079387377577388381197026132425322827250942832913547862811613848812973285213640450408091433128386070590040186690474085578416014457607178738287013312276478057518645400952585355558440010685342363151381921897082603009081928524718267754733622959582472748074454465968911499748673354744352331494965895532506854302373025358471265521597375283986057030367928180755919649561708246168136298981133927651252149335811966985469934450152062054364940041311466823907678235142090862598640956744582198535541965794384718739458624665336420888787013726867012267955806030589367982681403480884512796027836694185612104387535565770104500935741116686820024150371179417286719231342159753968677656739570123142005672505614572506730356071325188162272175368446229632555115347094806443635162186951959620315220582256365634326540695703293363185791277311995135418071547895072764690390042122717252575980104429837855752085709916660852086400511141448470382510705010573932323934395282528208266641565468367229516650807362091631681788773495273454927179270453988366799723662540304116837018070977374772965464606225830307471373854135620637942821842975308209908009524354087985532013292391447577616440111788091826070115945161324283318536248384456613312189435463753230885361398095164502589554070997643297595853008295600939207907193185248733946530763024150616827244312321730468261440876062046098326150066631666558443677597323720991730994576105392136166226250886416331825900828519025187151179813746503819783418598068248709350435258344063431358937998524827812802149557076379389754395277807245106299067959319708165383390074770967268252715838478025818157460897499253996409431602731413047213650925553030195771282483163282322315349729431168298997675846567250584522162407754672932571004680890345358197030888419616589198834741820586430381597508635218734816294423747914366899451223107618317165028804212625728938802730517783017676704824782195626911768238727565462619788928118930402462889368022630456278212373268698451395385618812747453405442610499882746946612109068400149751077663335350648392385054101182577584949899548475097223520457253728806647022405536315308598765923342796607300450803273552809229978408035179433619072012310480102015706315950755262851579259130738781758066270141279177394511297061653018701526131144944356215486576583951473279200053245635380123258875118380051889374503316232948772712769560363505757166426950287596157265824873467051848835554177286427048919161297776611648138219518432792145088606005927854883669938371279188442400630557465102717513965004284409522891287954567809329917573191112126653533809838969488992623435240348107739743970654548975068567213786490783751941494654070008603193276190543995616843035131866349884309300438727641742410740246229230878508529850728098920007072006837657746254383780302501044107377973059559762561378862169269699103375290079930740897052466344733571887548884306105884656155156356834359214070237956160109720423335903555378102840805262351876023846852679352421397121029564930400906942106828483447167111985272312864170747887797393732198226516850107866416411403123724879566169274220781677766631121230584772428268393200108311554174647684887791315127291877981560983407357950773705828055837346151574995056502106222900322691809009742422620624990377875659328894226187376428726185883907587483566402268596906225330177766503501705639412999996713333607897619369068687965034357112705395134203865078721728069763120802405052691136705705502994311631231824535212307160361224956653263476978423538965767199220857129259369926199522785918404115839409378062974955967541339297793829138915701636119427347556417176301573364513634221407815977123451149047022294468706231941723936709086641592559522548156789865477803472652398132900240454479697422461739078369808049129314455649474591108066321328937819330296357343752012798183317516805131899804371912380873698224956822296225279835601755087779402327584518847304744650453623637861659088151271017838300921239968335133521825899851524764510417981746475762242194977923025061671588059007138749660946558063909298356876430825570113734011644622632765756080633657496951579841984728962396411904289577602365091386830217621123220880205543407218168146698645253423021272537462454437362557171867730340289828031390279210357455791876573210535071261537082743667089554796550497133999428840257061027233762239649832330537798756666500789428035746497242851879288664501963178503614266572934036767082131877587726044906341079636247110423381471606154783561536924026838401804417176185365277387591893352445913102790766038601873329431627442418373938707533403393831392269146433853228379883598487567100077013702373365312270397355333002722907745529089167418128585930675882821740954400723516327197215782183917377939266846885870188705877016605736678483645316764019791648763249331533187200419117827164594459035531944692167964094890702672648870150229765826199195483137983355550315989776063294491488795709940828641661999557116950908916286632529597296511397274448028258584228826431741694887702533947569394359303716655850015020913837102214530273483982913973854842382975408422705079839649769432343154628564756352445973247479529395971936195421818543948359328542679511811520549585613992714003098153033279327058634596543390876322810790681608063909412314820354736153628211958226723136727684711775740300268003827728717029106568184812251456142714063280270444331471531242504084290428209669468661697370947111731967555087423501839330745626636112171338315060660180374488202300203877118143160233677672325443481420819203016266664043276954650101289254763324782543835591131428069101760031198844709626940093569828582003128055017474356218496055631044672346890485878466201961494598026459930038449779494931935889458013213130871033930286520832109804424879884722090645495024640494204276540104469211220030474748624225105694521422454947676894522882382893923818834902452740293925318914276120277677837855423022497171506016066784759665985741949809999859476125030563685378243520859770819115048693432813817274324824351017862976014578546555025347874456760852953067071508460173888854804712409539733030127647840842756493975485831211792945199001622613990764511127701575661774296962738198980598791683555804734670350585448555037555038087641505595621085698891652756959595669371741361514399853728596964367432733082384166235019476412888687952295040067229590832575482592170070167772207797667538160817429957605983981633062541388865335699794170927414599760627495261010544261594790875172925608329459744969528460525973827399023087400526395214791932928947078319814855995185197690493289365490362139442148338609157936558728222115452479545195225293151689293976443339920712402382644105569120878052184640870362660701216356339390675273111238533564539113459041692897012280135647486534891516981655235314265632680622901677944071975519746148570643340622265731961706409175486743983834271537905281561793950768527091509467222804115369793117315177200703864327779153931266960884771288676764408459191140827159036061494070362147832567400059759570386483894139698839579099931637699795734209861929182162453074115757829963762785948580338589360327059827843037507896557304503063392336785513306531097470653037382445541236492848937600642058373822033761384582095509082745628717189752682516722718282287736907813953923003383313894956565615738029975171126030669707140057963156238301382603675871510093410341062318362750178838215575553195710280630807534550976231021768208938401320152523615924854184133740646454380405079031888528503921689759648288019778899238500787105909506776783403335581258941744299819664722512466516037081701055165168686117870062423631403599088260123723836660168364111515707049404082578533203469338773940506770433637538176137901223367174916154940862616108167719733349053169264882970308342108775186286192669022894736773930522826818704844367259469686630853785034229660281485684995979858906127859447936293909751316887174983813899582315330882403043591943518857230686975684296041203510187058281818375207014319948961383435428615281063789577088652136073208934170126087952102108212371487686549656786037679430405078182566078567612994449617163199462214168567187684395202827548701143670275894867368863276427371681833870104217846456161401130091367140612390965748839785345149382222030178863203429562857872668182176071745537974330869265922167219359412475209290823189893155035522396284845464170560616511982370168479275713559176003807465097556848788464765631061289781582305458296800404829204131788629327783272465810185301227033157471199898625691449083295653704097871746794113971563749294990186207985879264431066139394389022089348234471885216960344311996194181645058300776760903883342862273733967569459842545062234076443262612302510067837725388379034607307645458007537719279734980127616310719243291826677843221679716317093377753662312491225647082796280750898508357960997640206231668554402446702740732932504219774139771618062266446694910044512916128233550370674108142151958360362071139807273913566138652429613189980792999114542708486458476862098590388774154401169038078990906909880557594938399717343679504153793940766387420658438146939887262262507033570872534417307801414609409373726663334500337510454531131498931989296242501601012034840288422870488270583584324268030201444929262116092713780522782683162560941071243243897861754379582310482487777995728575453920822129487723952487598430419758150381810483873086580839358414306324141583347990840074814766218405634451307479666360139749311205488029115579306459101321896641437082601517960507887865973921734185315205972904829058882442287635807750899658153944230458367409832319993368826223988061075612982375071410374052420756742246715605950540455385287326858009765426328417927704506270071461961357406469076404071588363342322784709604409669515873397644916231035776551147432527847210912900086056203166890865231058025646362590020222334778707284635265538971167624472461627555934457049453509312319011311235591609384201978213305975368652911632994390261431288554474547543425563104968764246008481753358069772800953067974392271685586677788331307706567864790792759114336604548558588733553634462234028614244731748232160238358137200484538235394221987869532694480130702588492787260390711282841911535622209920221194259144333739269333276330961644160813339053585590698397998241641128313806000354121280796365300912020975137632784617189055385619537630731350013657446993421044559857638405131774286698364711749470818564817238913031664162939930860639746560867537995663412073866661408631657720912772435786364041637438120198736759487928910584621191035842735009824119674099241755193260290714155884049154321679971954661302011219531521226387405981561280346250169267598626719795441100525298481720418220434996349019709454898193354019627003848898631143957198320726143930609724912753062059964995862493996132818203682018882014192198525351157056797598626562227450863350391065199979628287397657161386274148467392196102787535003604401531061966682021360034858387489927134847136866514526941458798660266896534508197498156138938475233254121688281480422237706080576667436765758549662774684683767460112813834440992520149798885549096105798588865167023640316108329832201132215469654534374232912546190841194724851469386353653824844031673349207948853754403130288378419678929095216949321583739572948568512413301712200148158093120248073518681985450755326069908077197188969580706547470427004824369178221977997620297894096738560098617039902432730558557896624246235097492684684817761777542134367074262475864384162490654700349125868541131353207525136979162353569723533712365953458911791804926975867793979398988526655467188596430268416885810814116870808140294382441120808050660343522855595766805610355411623267511861558863115068868031369953334191301363042019425767800521159757585122810788747333639463941902254507665990768730488764077128694071884635526210876267125673890165634529186924392565212492436952410052873187142139360642318802736701244549739629158801403379479688669827731415720222562890642735640290451895647810797783344682638308170497789636797068097001060610129007375579197282523359653731505344722844536949955708633232723030209931611500982343194835384421223412404769055767568747995054620108387780182767156196817119507277234364672651640213328511326531954923408491083309767582051594443055447236719096699222719604020746893924579768224687364738581004781933948399626677593340705941847691212057814215640411722456918502601868934856842589740364977706000429222837727863400060454356563523427281110644901686108786450580593128100528840511917053816122831682476720128148754709246219386619648849107704602273105281347543638077734731361682025095466335740285211420534345729006497635143782322889060038878919254499994685816633193996392065771734117030431563456252182135139408391635766996922125208048698461183623057515844560758027580437224087879672920103644666334641763957025795368779490404712536766421561255049534095772532939904641873788878613228031500348746216312437092847730507991960826700649172149832979107611796031638395844316695402093853123874997453645878043941623815656916081004297809345161822293480989330908127893204822674636763711783384678872719149796058398201004825550849537020267547928739638094159733765680400864129462772586372106137001295560720499326540801053695232308900365360325086410324360663264765239249125486074209095313970820929118516042664904510452050795052196638593647160870076852921439824278140590858783328644121536022142519133080167437367669382918064841982475823492199699593959040304110527102127080232902461574790263344912268148943429311155229176948703445295897262366534271254076274553054011870516491265649393289119625195761719243047204574452541683109057939077752336333949582747173451252049997265909416068054494865241840585527282927324074272877902867106297269670215384597074772243569064074587350776746708665815568302373907798287455527910052536912781449670035330475722187926040421070211265088629279075597365206254508315605990191911644706921547889035571102463980471972597669111764762624417639249095347740754369363077841536535854373107454036327030974012639239020339832266068190438087268809048828788567446844752943692681341493246108094455068940990535720959904481615941690417911429507988731839762242705186600010635044708565088569187649754672176851308945945992247711741652540874300484466348914249966252118558983840779397921739343601634037888299366626738258962689851029767475363088346175268888261598003883438906799331925442644793072432245549556048252991613830398435413925628374593925206537992347400240178939103918255864263865250880142660686418650329874475708576296899652939622632111507859975312573560919029398044241409652479491968807763909788210523644599136870463600403365470134839296096613466880100247664077874067557180752153260079334173861367342596724546245092085737655548215244300328025089366333263037334092523380977037488981713067161606879066046245085912879597607045072741592571967895221767249504897197343495887756661398825439694163279754949711679193339022803586052360555127697128008516968647758650651892993303598847800306319364057738402237312910382057182646710201355254242185692770349140394949115258764756545640074823626939550741953132291290016278507084264774484241314732962074688176040964303692166615397070067336740408541646128968225355900917263193438528979147606075793908860696803592801418477231766439547500769701671862678548504715750030392197405218599141719464811464822262952598568462546860709383106959709306784169345425418076571803942480188477891325390459425132859155290244352189126159313238753538769858419069622949276508293934545588263470367332207424938798810507234323354908594112208911327995290470233358425991050050961257184074462993069051271362412156466058006348109210128392229833224735601137437836074353575794664133383981413723962011411891786604418535084281578424256216267761318084409155691026822112259485162170364487965346915001682210224500669260602730080024526802548130157172379550772403498376051312951139852757347914013986029210208739796035229812971121872919867134407193374754520250435405549055736739138049418526455491135975963665569220064755532119641783782846782168979883238937728422556559719360371627634696289327778896644547315823048679696809234461154996063935126231945003804687806420090456631934510464293991573798866756698844116443925473453246234619709243694666682139507063385949494803436252994545856816656212149203718493313250687775717749851764670942501242178641968772343509494967660773731133132670880168747062165408082071338513421966348870601246628180472190556638770707919469488690118006660989822483195984397979893050481672657752406334359099718240921712105707956829279822936569779483551915769044510977512756124105993875876756967506911823337914985966090228626272232007015221516337066270053094509537137347940879183829334077247315782518100966988953146600885882574309710306105040773495861543102883065774886587537139799920775081855962150059172259108870730863773987132367552996901268543597400697337652590329176338608521447343707732441777763855682203875734893754996898962407033872673906190996164573740590539769594103091243972537993611051434237428826861735887153181477786501129331093966168811064470879633421822215936800361458944356665512569366703234424495049667150372784047476971993920070108033394674839994995868825126456449618313735728516220811764763626646939065311863781692334053070601952902881511480470198681038499898361532831179566278217173568949633906764459826237012606542352918859139729654781593446259218140048899734984562240883184136203871508072353541729196947146474746741667258946441379532854959995670894516240795376812404310974811050074768836653982404710834953892818123113170744949616086994120156840554513853188456178521503750737726926632814523858939136073847979247668694699048030483589371308872614649721441646338921247295815267586492079601806361735560431872806862013974925907292504864947246368610403814152593486256472337714726969304895688603723945527566636048412674986603244477115701873419671409427735521408746916400866533613611703657473419847706235713477244011526820398568012271664700289654673737756613857516915524062229079031209398671206072553803591853831874980343656842166133237249997310726533682930101930545722871345714271739234479172828115946933061457445880568016953319633541114568167712790013321530523695912628925646235069336498135362518190661587062013552739128641708378945042044134891834446133522953694839100458315098763489555298618861795027187421217996740064748716197283708030669716001812005176694401880490103789708465871156434626781133691831194941354311502314039003015804577442446227732854859760295717228054115236426427901491177616287796825456697491209569020434017568280238270890688171271719284447415946686412330435560749615797772112722507025956563191741224850315287733263756173526278467844340392898047374602430453391693024116776678400131903033498026323993115300619420334864826751107396530441865114869286998856190152575198252596525779585352460298678441235310756401920503298667016946591193226047295598391838018608027074758633198234679388891840366652134659928728603453759322631464645554835948202941367026066136022472909197725996436443918744353619341346563234818774507690051690807641652842969114811661731069019775021703241436092689173509889774431396135196583665457598853370590461478680902670064309922549980253534290443999706848109320865616783545494672263442791678136722274220239281703750131508138565642835873254542171680427002928481228744471619256070280095075304935788302591545064280059080047584962231837253102844828862154634237847159727411751487171904394051107130912823074501068255117045090489478311531133486418544181591409323476426065647331157766346392629395633246626974786230807873200441397817881184998765541895731213988642281590065054333821507113210874918564879072775029627219908378122956665621276149592466211469620099835134837136559356456687761827479106383743235944784876307174458244034637376498955987439291352211414316382537776860496312854672131938561171107690784011862938702022095676098425303014685669726113264755764708952363452108159731270875978086312115479909444792016462651695914333153294438484385279342757387306418666078188872839298251594919546940423878165624122642674713084270730241876431737725755257333140887714674782593247850510947555483286544289771598652904550093867803540111409070389202639743056830275651837433247918610856424348689005022337715523752241603547677399045479225451468783817616113421950468914976654865493022513239684847259117693924469879398671589536181014733353393005291247827839896889334370182499720331580505197516166043934469287532185852274222459319437344056945848815481923506374094789547225667525089499354851929791349164157805563837966623173466555049212672635585892225971549608647085825654870624079271357591201824673081617841384237013161899333668711296785141573000760453405266127439705430742920570499020259118269454980710779850605836121155744313476901372187642062297241573332315313876674104600816517329788807784597382845363074917698345322264106580144449376106436617532826451125756165675692068336392656147316422571880991630910119522633312304589738048704383661759481844234655613730728523318392406293928731374060855154768601235907805690053512115530010906088570096688371733552848733991941023941029117265100961185305809552854625490554619002053524840737195889272800056985416846613581857800623928071311421019103987030426953291058988143268728172516597955246820692958267661093710490907281268392426885080991767523433112718469357304762155217659519135808712494800103880831889813530161399898129660804934799741149604720208750000745262382204011647045049636638175935398588925863096195449177824017321337757482818907567133402045824109596727556046809257024384422715435184642536434037696611513822226869814495150204732090126508534352892131047232661073962430830422077219143594299037956351400389124641560411698380129503007596050669366415949271352804031765568749969362379547904038304424958890208478170164393719654562683297384312628514815180250669367347856284445310111046999760917855941363085091409423833577273391006006035721444467901703519469116520375300961799255342885627012667594086217879291670491371037890651155637498841609083643703397680333239445120080100741393337676038235935210336774297673277006514861077563169683899049745622299712585316336117405878071849661409069388589735299284897289214006143920973651129469437567633067212194714333427666790753920468481232550843555070783844923547876474437503411236226042451044786044259617359940690117964209583829806099950881349464271014961027908985633446257453073573313163677491001567808720232465394631586947358276941651435361820071970075439295923945850672530071963070749644212936026509552570511671100793094644986985154539572782464962039006863409582924087214734575173868925726171509441948358701774853023247679172461973617225392939089028009740806462457130212069656454672449886991760902111098445625263233589803563613889801884474804221165454814252709390495538811609763293085112751165270300700597536927657703265455966561997925080816499723513817651636836994546593352272188935216119075203214361789484630215552910551020199806267542898437992364209940624029852005887789712589612976010663193328094426786311040741520779251550204341648336401627830072959088015546981087586427279330152301255197816197873269913476069090997561388727507949118198046409192053648731884052736585541299955473039030989823319972014390564308419129176828248220032390497510664228824305494175729351271985942969960264334272904246772340252955180790155626510348848106309983885828139935756001126204985797092210337703887200013176428061207014296735496931528138462198670493466799459079701390299337158747445320435805217618377015826406215726749359763263963800451985986709543794275336983271740408980255189030330332643371632905468436990856624947215309476377438399867193779793103190465459135695060818033738211911079081729125026890221591455844876759846273784277348121268322194150328463655322505502076307409375952181920457234785665072816915063817338127051773914522847945340787111746371002330876806736548231661254021085104338340552830251250448288864991078001798456152401644027658290673499086333403559015768661575596927922494244829385274807138797974808236448916702696429167012221767243134376785112349839772750741498246430608815874860119437865872006952392016110132415242769575115564940842017162252846069922248527764407335888995382145609889782862170796350733773754519099363366262978717620801530907194093872601890348507712783920763185907572423911951609334363747360054482210093818737525359948087097045997880658345169540494104096923741043766324739368008098747591229885814153719599991198837308671067369574445718419233972275840682116022188372299669095265069808989499200816184340968218286593864340306618467336966207796236556063499229779866748291981649848477473552135837689282562624508743002260022810610138373899382467784099140645174514545651287905553018463734383208998731181227379202803195729618320641695494503130335399998994924056309353079294063432232604008245690879786248304757620172697102821304091462820214408365706277183720319394759738910325972430054640276304601017874200704305324421135844397458827061117246960124780786235256276577466121270796676476791148911545996980600456726160084958988925706125910615140630263772202734926105337515177402869628741935023056302229269085700579954844493359768538479407899938535229293911000968418976939709028206947706933629171165374039067206725880054352457279206944143913626907597322934755719771706246512387225335922553318526124278761412084732733522296359240252018437171669630145775426224092840719930149808366563418825300775597972580466492717477808274674752232366202827275676875216985697484403267868162898692214340711134857860312742203432569936965830993627115524799582568707510434817325480389447337637494003149278967180873081302339348204851564644728936772299242067758233068959285299759699497982569485291887678528472357934469732846569753791922073307759844436234714624051519867847576775953328049467863382248769017814355578013253265628080000401214022144726651268909287049651585150895493282613141903011711280008247609445577927205256361165248276181935816332595080676358326201793832159356791130196978822303037188362297178906374929532106644235944068448676929481547639671641041805380691314700621320577714674512645466438317306990841704962943518841955244657626306374868847477358573862576615103566631814514772292492292015780008974098067303654457344384719664878592238572963182475254758503786117011527951000634170091959484658999192079041520943227200486304259942480212919393937427238183462811332552504360977461083161368196330402310300639099616620337551885420518627728373204826726219567476600906598601293366366965087695325635602918029847374355000474603601543828996451576823734662182633330333147442795802826446866732380139252496602421858799776077175577063606010522881732922845943866006140337615588157968648416724841183396704812897220103122646832860452893684327614732629034742281290792305400024727651863243350112786146432057403825007042330144165278692664424211212320079215848129074905055594242425481548766685663113252551037765512573422483313717391930154754586515662444716944552248146756947965327205790956037528685584430401056633644364154259430160012277790844535027127208551024824923892060813291892187764807960186641457501994467046336624780479319357995914480139449317143770155984998552355688377260495411039701881200475130547527970991693007254677342558102739403714425991160338458036010105751260144178040207457224831171511038978306589537092543640940137100268222932559560062794560303953696558204854558936624003171715563222740087033554585820268416364094418887377767888120168306659573575111308429521772180193380931857757295960494558542671067145270184422179352408950585375259497248552886430152462138709707885772406276510157424018214294787882309877440653313869292317895513530667215292815551081908778247448524494149423681688706592079808744936051457214148218552867327843056030524467949991114147364952291029518539252204891657353198081557708897956725383927119856273307199579384888401048848956726821787016520473967408618835734980749490867370134723572995330979205929307537853716342004266490470638358182160656160683645797825150841593527334496398092344687893675760245691994258943254647168526108186440460862304507415513924723862718341858097848763731213143448859340275017936181553824600611085464308175065603415222337916763767081997384184001518167100570622769288850404654383193961213134928580686729049398555959702506507097763439944733253190982668014700188759174437150043494694504470725609285823979427880343760819743022032327002153279599563629896274852919477728595195426628464120347492734710862225195993787640603870361556421858078434957557506149712626897834262122965650980037463025093033513455695227155939436115504306867373906644654644013024756276688985819753302136714741022138644168733465804490917920125387887194969042472245761398296481148405228202815768812736022540119786774635135927672177276372088529657762054046853085872850462230486448493360892643786777997870696494038529249391186604326947553616097564112425677803038002267181145853215307182560904287467245230958989064277428089579833821092002537260311492459538777173505255272758771749800354231590297006800526512552642507919218287109176255061033909113189921002016106230319130927674606241070059288381787051136756272798398131013354968869919386017242228409980403006503242829491813851170295904110969140046713416342277662952515028989585443199668087995961744514268064265095434428165650322665255476866481900130193677236939601066356241274388393719481540170545964321951630077208193228769244420264255471739407203163379700333344963660663041811943283247436520195918993318561668974730337277170042440919749218048555253103635953680632509572954760735701193082651799031418154657871544015505826698536991601055019945749839065653123923791861342870911578996929257554755224369702755529394900414915033781569127386000567793087551654048236246200610024385955259350476981707977103352149651799022248705832886645752038543799136604131279986769802566290306233043468155787410053319004589630883312284670856437105342329391490663301150735627311363683503299090369863725422291345239046912488325065618871732144598364856277706646262853321195111536176533639452346428583100043926498714015144737013831759769588033066374847180359457499684686599094879235726107230273388988646875015056815748105037469082253239388259237316071307390398808323229065132607977499001371123479004968186106533400264466836409294595246975484825482785782822933267234077950374512898319297856938987835839598282554109311046697759291635915471527919156824863100901085754712457976493084099206536201080590288573932068648663835954554326046356682103767624699015565449317774951847235827843574280074725479291194914425961016325817786318899549415235579032411950010148650754708421319019570492538413365440850981825003811365502701756568920154061561961486172227900561043599387702395680586746374690485216217882160166030308843653204355011103945191203363551559060034713603970197398423954978065688175978073354599045205231011306077761146936653664832882150719380775592516305613266397422505918004138895365054967692369110748112074784230063947026964218885617532545639679353348536128415506586425689096706283922720118865112099198466969494969997499488668593338450453798976263180763584862344757892447861846999218239273582092342749130456845390004671825131414141922410209637293089388173392563139571055333768884728075468206743411183162363444986894372803953483833663491318369246134831488370919822331490027976890159835859117427372382279193832366704997703997192040864584567273718540603935304887450803619680681884868202846308197669513330583187353920316734732149309716045795541525787804646431462609342587234093465538096361517214808360499981076271206921221954771806433090921412688568747441445893847786269654329085055332428261586591244134165684088379423026069250064507546374961828019200155305265491182629454267225915335470986947143816879006468591591410360298222461434227208093718534627946655582420902412443258216997669355539612481859289791602600465083729875261389042029681313795725101921951629537574205571640672308308649142678206391857636669176277040435943084488830540129652498586679271154565539107600981258936287823584166160754540374861094228549079823945469025373292023351745592830802646795089480820463912393736299625488090752130887865080122571088446186639440294235849658936473709164766299564600290181439477179492686244510576631732350714133369559614552865830107495858920132363244122529127348137646765266851237771702585257418737130655094275006263169634516948102893649734162293027172137537786699893740433799299260138893298423216662138976173885840576287062884200875785291180275234587188303220547403785409348389426496718368421331343129698389524086669070830405755431204761638900077462961100642118315786636867139839545885582612357592861980385113110473883533818391285783316356716796318595465951363774793459000072639929660214432793660752752523796293196444623257146516710444586543299350547288600585148162742685737037442207533046276138863036743647012085671629909727741351000010024075280063999384864934646057518021027823341553457343838589444203344634814771735325364696909425600548043915853112635236305692570722835985038714435003835374903721416795069789552886105113101704764863412561181175749067335900902418442650930429527004280662065283127042315522009216607482019473209160827941070921342747990210375655034054061185149772249142262563170861725882900974927143235080370452864104518332609682544743351217441405625217125574069661945626046964781486767836059505339289525087208159830035545097715364691116503589820773720595567275452653518518753448908922991648659658690260477829931152145877341238903143280101633899125542263126749901573403291328324692477475092473306724961543090692518547815990529573483839463873911696893490713911551657671479289327297481182089774267158263954405502300335297128924228103266656645003402313881852483017463517255146678489111714990522387366240854615849015496197439025955926293992004908686625967187793912459528304926809257970535896651058636657084667539248693891078156093137120710811817742000903971464035830389237996250909421301236525712794575341821311687624420659646844851668414666415658839198949780150882579455726593088847549210470337480642400904894938956412291682249726582521052281347322362726354360700087736772385039296258743658544915750553513359776614846546112280263002857787199089522211920863217518784757070753061521067627154769460816797134454857544935229061428230638228424415444824600282655379397739457199615238595215362931213269407469108474758255931887547836696948935640368266710847481398189513591715301548904387753947077272602497896784427540341381844280066711951875209652792317554147733546247334267557189040906073082090172136614000484688142259354470946846857127691455225643471755911603089541456347943036348789149754706694905585523927145842525771708954057754084038921769393805017800385132000576274388663066351715014386360204819096214723854162676884013682181399536620966917743099806717659828435687792052374640708903458809392250159445885160288964257582880968663991314768077125599566798769237873397982797026349078873508303684464053133715973555766984108747327852152846123206227955844058872748343939167947919190794761641161465192635067223990342384489561445707609918391245139311955025197412381975747212996483571945324844351324922948356754778371630555165205650139171602530096493227635908538857562587769791244792645228712242084878445039088697689601141477872477145744379691487731235402905715024626588059484995224127274080370943507512504044154449797242222964041696539392211871722807121959851874363615905966114549558367724875313657172976850087615283748845660658061578416016838829067037941268324236700361396894238707620328054648703138439404569291932526656125053737237909933757112542614250276041152148724745764507426504564373155689267474437695594262154336865413736443121099523708159767660552765395332652141914419750119706783763910929166353789460639853069066481086265454909749516286716682211728307417334398315202265998514308316254378375244297571656210232001140344831495636127880792788869076928231095598942616920349807916153489071857959532800042584865524404584170366824711164563340252580090907201522024808531581277246543498953330912691743044395854452277628825136490771295759344010258778305897522398429882117383160034791650629078795448304364964475096032552474743497435117551290077486339795643989556539748844471043070666551841424945398361745259331294129116456568102143330109432064528432855445626676826487949461597670837663055697009066135403759820503667260098429591648185015781936939096917415907958956732497890317058092414927777213717527795225133366272509880643952582794841309779060281295585521837018249863413651549415710260988654655255742847622823376708769713997707034203899953280760337485255172703289235098278567308281348459136806103536290800519592194705080869860881693511613036264536367512400828892953711757905646413402618360876560576795509225897554417066500363052767014889605397517826197964528952823534215863990541997107788847721459261702544276558159980862733184750060854185096402471905112620473810458550069297761373579493122125332532867591785907723315818159670662848850513613985021150428371828619144384797188977313142770439571910777579427175573086335188571041337807807451104047478566344031016789150558837318801872482122983172388111905419484850263276012865375470662657191294064581216526010761638681897864558482520964592617277143991352440080653175520506933957918388851132349372376516936515265672687911427781139707413760281771802641545057367803961196071224046517107571224661709745316969092961641436249553326248031767661918827125546884767739551050069589333662483504879196183570510782268332786323989562156104859777064250148984822553584676675428720843016721075011028361646341572817181504480120989816084339212564381984253503177836557919852395537113521500693557635341215144365332541207733270631840829808900113893985708535379075545097267614525890317778037595837946743209171992417506714715089735450012187975507246150234624442730968864823906753222478280291772451748897380527899655434540419902752663893130792486936228436194359762947152611716714195165179460035676047398939079966497118536162021028139398659650277499840789560960696221853522823912847951873794456229663407512290913294868508964759131318544737240341957166267548723083136499237478816387096847323659498246466606644887599124803443103248531596790878332158032153721726393509223045033698344466967788228402951456371920092977638480834296401432628288949918551227909042001449333436348902607181899057920468557185990754071394518919168418405930009523862140040042699845670132276327270502080114808631598142260796290668177829589428970968794896639863941489203376504838364616463898776615391508657915523288663994826982119786857264927467759821884005088764511979727447201621965814265518067450579305078587499770398490688758788073904063017606515870311311336398357893217993408412437907342052020417805851916481506754681297333756671061923359109955784581376094033732399139949430311628077039527021687784124620294972644108332342609389031802725734049308004641891786485354746049158791475017652152835048773302602933763353939136595676430471707362864687608547700035407739665356992991982957768913413988841281807245378479191146140945934971049246022954220076735670373494637042887404495774678944220758374594256772397095481289699055267159653414069306511766439493230796902704153959559013205901358767188681822198723435829395236775529986183278295338108609509526356287211809303330315360033169980421067248245063038922968451875562433084323364407886775228818607514105255280416803578540791870004300389588502179686939796251379340457432205439855967678924223838245873854741037820872695318091368390248991519150205099329449128917076481837072777923807346943078241828398278866139453660174863470859723260502726348500867578392635016094648027086745971696159710018013126997881569568039400348964830246725106312932353130521984041698041360413041333532318221357187248695577901629241020165732642823565000949263205417618606426409686489599799313631290676348660644893374901489156452247067942321762543052918589083816143530197082538532960800376950012303817662143078533108654163619362699185055796479992066253748601506989008872423208395548422669458422862172031780501038900305588905509362168843367949619257427047189001625508909035951543949423364019121091695130391666635822785402341110224977583965690963986066401239733018639942690951961598427292965056575016356978455475184274058116704189112852479059508222730382653036671977620506048354628531619338703735526403891831911249502962144564560334299327916044285426530089293219514089604506197441906779309404278579365962142946376410501668699221714937193064072465735249455488795162787130939543636355321797170721210003776057794411912322565002468459968456282512300043750210223038625108509787131085296354940030342739782921494604077946236986595308491184886146480252233860005528318459556847029251741685239613084244443921242313703995422839792938472816616206108198706504786083047271300263129665524091642963200221791608526432337779224288493142904169635540533388149914609231830699707002026938825021253591957347140063409051714632833754131903151697722569803803997949309695104869507658006484302066179827211665187787558853445289404937963804749402915878262160207978840339781466772240066151811368029820918070913392802393108999515660623038640698466339145249851187455906544094887807373086195324535660338205022970729717301438824632803447220262239115722628323690725830648361063502934860796156059875505220014712772827058132250650518856224599488912341361171235856455885122334032783762952369820804453354315082117909637357320712473688805681102098769178698071559879033907185895465383807408291440137657931145577844745956217273583469300526804993094339052287466088576334921680735844046502371633244397702453961975381442966491759898667541396992050802606823580008542836373356779774858603611796273913633426251264221411501374584853385465185441979054598250688434165264535006973954029390836067827041757874216935275218271231369294045599520871903070101007278617142496234329382105569587423529402139766254144715957586960626122352876611876601866042404753086110085136327821044539729584007273089054327360850595249312742147276665095645926006493326160486802290249744559667338393842023413709452437170563561578705824909770175006994618669262538344623352965413984998760840024965248734149855611317847626927440137157525327879446244960729205102069364815490265262443372563573118525766851355786096334053586236537095887653520295808844714992545946147216091408250273951929915726284256167683572033382918619395218501961572747225440544188547253816574121340413149590491559850074458835216499799855144261120292510987392093940780806058399983919291501443685032216854431714123012478814465803738201473338386980573281329290521114162968296973404283969712745063105285697179987030111849540410784209355806567906220487359820914802735280629476359250992132053905246646942708509146038277307768161310171537221457293524567438248597538100256734911028254584564034873554266231843109333455006835390724027720001445738511991459299692886410938415299482353729944684460645772477964219207844961693562930043072975224792869491816481294109254290696126494046011006244182902027503172463014874562914513366498937746522927687278196986189437213326023053614169273639957006585612252221158294567149451085115581638214269331289416266781866854202379283305327251166563542142191024097058808116086173164696181497169740784559591874528239357116035364753196867430002606438373404714150314192461445194030301666357378743207948628160574586927338255071655759724860578592672401940035659655355822144160132003856562772258842877523894962319653639327449239671839890261737487637004362960291260503475348002982297554054078418330360457368817806347895299108307975611768001543537578317293565668372921313091099005461534539321402528011688323338281608217424259123551041948010990976138942961577589734694677433125287383069774167488932864582406201017110840336003243591441511778284334122558301196047039530377694810885881939424680034057316832749403446823890449138663157639833524645600206426828773652801492106249716833830647258020938542669060417015478884338483189899765784657946648125440122265794526672199475553575457686986605131554838995878605584218902804344293301295329860357738816690980855339174925529363454238372007955838040808506717482192150112894096639316199330628239695975218331725795985010695634388575487916055185910910840009607476004359600884610678691144978388510280580371073652026496195357735834688540729739341558392722724743277008099565747946098901514396800132998798768034032292668916735415145237393703307119999203362359729873551981982997847443362664715500821787297374122799889905658711407005238532621174445517126503407933285073843446238861041288303814044531500940460361129886658951291614238068898123862715301549680257712893548577436923457641899182098267529760014390411824500206245253298225596439300980104285519452805293017310206530798893347489048727377248325412283115407766576784153847677420334096171632928829620063349613859021553705678971333643720216717974269691287622629774398798030061966271305775197628254835438414302948270963111223454642734057334798717112302174291998128750513294549184824515326278657188534157210478763072954771667456471653689620726325598559595520627649650663950020707340777176336080581078423352405534998038043786668780603149652107612957723099118712117482113823660336474445544390141745990970598439770897539088497792024564733437044727896697862593977230567241128505754084980612634072592421112693730539234650182371055563627419264492883707612383850382542591804947659140688691527199812068830571186131233177508080295489477539427013209914233849638293807973014027650486411113518191950166660773731178305289225586829651897830386876971752892637240671809596386824612450550954787464838208660808833104208648815168571362993168777874853090350513227717881226152318108943802546831776874218183211565949413069470652449088563139396258400481634216152702807126321628493592351200081939072512242344857508482837790554213886232328029390400458366330787909572333979137508546191047732327781945767588666397308726194207217777574747785385602072124832406318236005751407377513738584800727318853871691189959993347412061320971155977317995224182971618459733038691426973583874121674038844554536120248348166722261519987187627400310644468999578685002723540080642579647222988030824326041280634976272121004902447863984153198751872530264541206024464991850166901709319341014975970062284015062924875589147554301678511390936873208343063506727827751893295653047058969401643994849717995739492218702669477758358570189247804349646090521317295978288232632136139239119656559587583299138233072723805402729833501944994000942926927667918470315951822592352404773314677695720619560100822639678104863661184248899139591882908169329953595303660665029830220664810318034405980245546086051057310700377010570650722616304894277551359679092681838299611544536056491765229577918009472712920802098819126905597152182179988771421707496456264559984343592523741531855228853134745345599374766749339186042755696245716903833356327280870010633732770735927739069768596364024966189815278430083562781779263041617898754766405580587434904377374873519268058896275573546920773998941032009989517587742157611393210401143120840664891441221476689296420731297115214212942408057525511870317206928203888623815078159263530719359262727216320771617432289137518776592729503940759134115654574030001995033925985145788879337342357948099761542166424752794294260866932278511792554347594976831847831083762732918834872442228116766266660492181511180330921805304987517179136153515859453060186976465120213845495762593938781034055930903858943544976638547183279327903477400331280407245627839620822351313350417160666263365580733598996469197145027222882373259781286086999370274534701195826179705319346802214745376194778588980990004478925637559755410659747718792013218428683300660124520370187619933195438825034415785749234445599524335639085974860012024690295062531588402781470495078794344868485591824457685662489712340672767906512234915716206955384963326439625490233657664659469500329762295063727643250658109366700977141865053153466967414650659468818879157392746428488142733063028959946791671561954032340844313309262225566869523486240151258548023421814818805852438988731329499235986089690172087168742944603858896039159003470992335314298212926025248321535324759798176196471506999818421028692407336117986079943231425045945486344923376840310918564295981609842057796575095582550336907864133829721942407167381734663830879177919155739964927829149073500462444366224084304816480977453848162420561116939376894582751320030188149320922621335397803091456454469925927165304193224027789270214964247560981265832180103265873626607210149530449746545284874473750827934847556735161731141313219330584791076009259957010241334368291707477963198155554534291988369566950432239284078287121258798552158003637520057991065138925526441676218114129072486616083048191963904952496395644841045811832637585026638600448474672859030533843582940453186457397343425112841618634885721641325097325259613247956301180454930552557589303902041446777556245481931257267440969776203931714623384462405446038758115445540032842994654646508582321085760630985184742929867739515498170857291648545216892274872917694174996978979237888564800834102211207760499770146433148545702107540165658738446162482605543021235374619895462196006821313079524265592030763842027668272522356901081338003979371824738850254369557307916578095585304244866679508974026686391569203374498971996063768181189988481151599462681575241804138047522367307371741858640791316020862500451694122172372538319642186478447776415914789521050995962933362776530471142831535808638896233762671182921927244535086977706587835149676317186809422441628189228571456989095407642790819119192445988622664687566176007367240138301501041821696211059363061681597035320252077522868317199006964198961895376518152758665078278567506031911583980921862847434953450335831407689835904711523154506144521725661310228011106801959724792286123508950693073031290912964805326934885201000302766251262376295219691587307657623876741208641664228103214064141489187163934994186308020212394519019545612358255409016473124617662461340294075067564206068579966417578201224667892334291624872688419065398060137518604331351502045518014634703243036311089701846839700061472866813472861601845637624562538176599734613319211621795132040603070393136910583194351363675894351162238745491414242297690002847189482751747537193446267812459680136842619308831476280504686044310382985308298149621359970784260667285390269576024011740706022026661459433775360029790304331442759131131905169551465315188894949933420880363986814661258956403040862522319366789249052362223501426888679033620078221443619299719071978665626654931400463372913919184164195637557396697252404564187760423919272768383375372460371667913337532565692270075861183203601242855155107611879916563309707576873453673529194382541003221791069196807888511074411104739682761000894344898907795026668163958254284607392528525122629337521079186854879560609771564468564116529861537844104197171788246663983264951233358058426870090720551698487882958398999530048091094424778756955927059866576148286721702504804313831996879502066288756907467512620401502686853821139588947395728803915947002954442975810073497767400968518081812496215046759379313101832350076199179185729894380100372994352831679482301724093490865840996544158490510556982843882555937476850574840697783168577285693738601321957492587813529320932238108165592975965791862589811593292906639578962037791288402102577939301584099576822504789715880182574219717109786401780882359997743272702324639866411305803226608402266241352670625314997381399105389243927553241545339326061998392456125273091708039630511578127654659216044986100471531963159801419391682573467958979142942071940244146543534757533744456678042750324736277244835245479828391228426151012809103830561461547919959025237777790311460286637360395055941162423682263137141063511854530737136953419425640982953209992459867975976268241923543435055934597828087024157646536958523777394638222317309869173334687656555891282184020359041931025703603274039738622044771482590364363689581232340543317944197736914238262100894993507245998029840154879175636106877882868000934146014924915178848899053772358334019559476708664659291499270416330818202258885874221065936212292421902303091839346381123320350400235961845824536459625412140371045691573768627415278504572899907957948159372529614707133052543057123320583835199992458036406472088160883592235742339216465119143301805081999519621424919726120014572871882431396463773668822010886959824284561358875231708925608978867714167835796884678154594432055322065778165698727108342322082350067121086985687242735406093773314146479453668561415207170771040553635286134066992542176902736056612575838142383484760926928793657167326417915782265167377809265082707059144354799911259290939658746296376161924543278762077370730705331571275831437247221410827059741542678247255135916337957088471637907162849848336096071053163961154781986788796139311249162476654240514148257162013831026435673845060547182985038541954122849685445053083579608443725694658547952011998631642847362511058463263267616134604156980030270616663963661000033118429348288014915470012507883156082961670804680114854793257186192894364601085269216727133839198549742559476152854117046876163789827552798485237021703440730451239287192088832209250083059388550832929146808789076751354587148105862394273973466566176013546191727837819327517182665966685042068142519726940019934624823534433381865060140122196132451417634278957138303325904828125880132656030656678385888405420168074174167089824010962367594658660773334951699564115701321323826817858102124963441932091074862575420763860695643267605484254480760927749907674908918697416994547364780942529301284512931423427218631836778586529427766711565241218011274236958799754339689056859651437129252325274432017076489507594818224350137366934381417217082800414051743592473891646003219552776555575687641239352823057276075607144543433230713782102556095000071037203280822624564063202924162414577491984278244562349338049993639712308364718748595549179528734090269500200485713232283601221032945960475274156004806952633139206635829579026433406509077451738708182463270188229866540493654459520495836712291586636370865634997633066810344890777656140526053876309468779851248852219000869616674407884839396056129286987895519902862483109152155853903012317572472352967964544320691142550266695769663924801368376026120948821917296654271563551128339800098112400589708238641444904352275317948806911321927350108115778722079801430498795226603574193151968779245474308409853952927465934080505705028666834615938348858221351407634670458430105652555373913218813268731752439262988537249683664257921080486659813806901158988240467077907161065667100324494904899328341987263494265382377986286254618331777985151851352338355612436603308378800979219137229047734049058385047396202477106929384697750658068192157224922046223246320149150278302783575836358688052166157768405462882794731733452711122736431587052616738008518644847970666517139954974998474930963523305871185639097428293534462645967895022526101685215237918537097635038826970159735698165847313848235972667176059581711642921288607658300489669825478066619701135277324829940057688170188195003484339745169586515025263017689680875627434941796199228371224211790289987393619505440159577479454039695495325762593025379305513075118802016244651967374470343868290377166409663497741796374535546344916756155240221972251279587102982442409497323607484293069045328294281459036743790737413380977047406348581440336013493156943642034539647850687608605057616986033603323661254913169064580537088197310527853787464053840665855087727374545005627258737666498009914417993643450738098961042595401283944231394709588785688226064200550955821105818353700579337004745551872442268663977978407416230605092006888885663896606366875046951904324834227976726295632035049833694634614585409774006776207084827137451797101465283895512598130735313972617112647163251020632685658418217046080895009464664478629877155301438159062794932673570736845088290343000759801008277764568141789032007158326840291202160715379342799326490292358033819032928165314294718854909889988242610598410538883198738753162624157403730947967321696743979906099997906178711656054942595782358236385899352598731091841402102024223318594897911373676109321537872486404985941971585198565923440257491695881757187360739291919359965136397444448806837305960876101945408124682445061827272458683210863273667639301302323413989900744020151898643914235450304680310172764749754525003454654002451504100501089555929846603347055670865679858488591692624812386937903760227650825079960734275272156447705383487143561907721200548268668721685872373454595654654076388995488744677122429526958017420630159117919469838299571572143551956567147474517095415087964540003986029267320324942794330538039783855236613371255080556770214691440964681777139204911498220634128487961490043031306442608885088240677159726595147838120952595411856283783390787361543297818100182698491877405170427021976188835564598857168795041367764070189792776009988078216290293364858695217357480253234452482673715601831856216482868360232124539658246268917969052455316671361356664084168723271862569927619347061262748918963115189170511988700707698895860600001116297514511134426529303627980421521978162062433224514827898893448914361275370904767119159885988459431286937652471807918028493869524285713064996338472650969374672013477727806133258257121048240219008238358015663816061368568446223709381912157245698371540715393078414472047568076133295576189802012263106347004733600301439295262623729268601735539979323308018547499012681323035783451873651696525826834724325583094734919116074301243461630142722043319491932267581139217070607725822042399021580921741220734279470164277539861118949345974558235237060547928458028163146746906586294841240460147134159063816809085645015447999487487373090397985338853902947787055514698399051629001952088301008372403120793552726572951286283394677031968306360257889556917986381029095238962318093506707166311957211924147750237644048229358339341156284955498667579664583460910929090996132431567712180839170399608540644214132426886963278009427802013527659408805740143148708376969115585118666530419264634697482399188439393068395213927431880136740412184595550594051571807371934746703036938050367249105945768009329608292435126598138696863443178309533580735651535816598709006856065488179879888998105640365162027895264798303970342310262100700061654812214566045023760367871150134332586088068235034201688099308850968044846587594487363601493097756275169653608299267518458479275549260620846617488393484354456870169692851931359254385149143007699149199313136469598662784152309164215740413336180792403428688528816772898598559649306280167928089859349678440923952159407006255365897673039668368761674123128854825745640797051056110927878134256138833511489020517633235254517276982282396409375691610971301095668522615546655962495236254444001692274348427135963335494877997548841825093789557014461005344944226943490053356476809369303602277015087379073016121970794251831280796000862125104735569191712813441004669060356781580986314293639037056023241132677646483878988184938653833688500191440958106186173623129561550233560915892203006294273079715022742388712093810488794776138304434236686799282351943196845453275566628226521138873645730936769506607268170856187207991920153431130645476905944205067465706752466330755360320756920765739216785849879604386955065196743210745463196929236802946600920882057621016122728065048104621128609768616301209768517475817009613079119323331016083114621651149428422723154316101009554062575177865033498233807105616827949236931624293038719585056669672231363801603134799786713696208231901753621126183028775992772893355417506187714053757366307099649574366271532677306682734926672833046642007428104467156644940256411004979521676440600080019688300644925172373574629589155783209158402866835369137791883737628216859498329491959566809739158250206712885611288445036635030976066843490044509661599101394659747704065194025672309465518813249526171264748207797362456146921564110435519599076774500156293908525224364183568902466708410992611921881269057174448606579193241811443240692064618566691711502742176294480203641610079770006801442515887862929176423491079197549294802284966588287477802015735827531181568201772341476156836729163191481928934549753253926508257217990492210535104780080749654113239626146032490877722258207883608522896564831762822101917887456494211077135814707438417246440801141839260642799146542039291759821119529310400431414145033567053103251163744382990399465259207512915494191349601240586072136328420159498890317463569741461580199654804689312491574343126744043174122880470084974397292692740357258076678935280457469539109077264751132836392763765860372338568132735855045810221502834609030292593336274960673187412727338117431008010513357393200495077380429423078161577245968534635539806761916404079893521955681552858357570219690873058361137358317486239043899563758144938849091502555627979427490939451342458988923276527242931875044086981991593653857522477609426439949929203258742826095241617577663444555064429622324605502191188801388331612248028137686056171760068859589302644659712362037114813623531248802176593847492675225911698915558706666158908108369078543622495018043407902732713537475842448616160094177441505975566474933074866972103720884262512876472429409661441344167902612558983146664801482107524433943593616079966580425465627798130020999304080739519501257659811197602554376936353401139145944871157297880625058115154729050029994235070935389555906680570238923442950521294711812285559887442832187970285427857269987761396883048985084594634605303040278415383621015603867421304800077061624644666118580584025077225135846085410522304419169228375345690910229600095993425624254986582192756059551680175941587769296528599718709093847917154094346484886231538334603672383865195226935852689356884464767382859136090954156902209423777659923288650482944959550095145157396665980701091647251310523425208543160625085775330084600721093241335331753382439439728124401432052013863934288802199307200811911651124084467709351958281349670780203741983800233350528877959500071476077614701644086093931472368086810296060803174321012728922750063980029669440703015258120983427651135906198826482561443301198170111839999725136133688112354569520267946065790096506838747412445469165296866679388939071545118471344582226517890567005066231199591997479798279212811664273159336445056111425451914311953425650134383671168546177923601917749512654761583326501133178632017334621688913041514359980696936052533936733094900002395287729132209392329652458082493985483588236113151848073195711655393851026247451201506752591983489663330241432738431104934359066966344177287177377066434542671672807555987014469565967707171542810493544609604792230280613496219112542652242610322955450704148893775528951400077303267846279637032734744308041990907252180766766934945761369150843111779250166284783340812305804403610515108826997139213128739456603296545752702074758302087782296911373386618643392589582602720035953450008009363263485658941574393294504919706016953802660647221284270524762392134279423061658391774041900132295071995404368392902696433825773800630892769259010880201894169004752077809318443194941559296096882471210162349030850337899432120773135326520456434101060395950136385914458551612007557783032143504352686711629963573401698811457061439885804395990539336073458418254979918440554501562607326129868232307042446372975084809955445254240325246490542743121799534213496380063427307413819858241580450921402496790107046966517043352460776207070761107346210896833891610816032155083347818103463463916716749061101553173561208487647785479070112139705840025351450728283828368902619865273861917682948325573986683150219580119993828598811790375632457273831777682560981372482829173474214869553123043401565687419600409797960600979844440023385464532487865514672130040907598863171983393838995103079855517834176536763912544588409439816817242445257765898009269094665840268059236413056524477395352085016764559610537122881391261999028105619662449992776672142626145837224536260381723706537347876050661011622974523139691711668613011109689944475042811881189816199213224240333273442491298374793304299714332601205867680089144400080404637358383185323683151296737135951030368341639259934492052101315327827449649035530099777655018749106247329995111715412227100367769203718182340112863833677649317549258533937859044613824606427221943520944970821391065429168894134479556190033307832085922421221888374516489233106648147031794620166023332354692513166714295669082583431745212583948665328869665152567571841084367423590321046928021174396408562200221282953474294485479633910935776569886706394755370588000140954302667066812978264137013642835537523569955851258303296196238956913365993648125573959651967379736551497384578823604389433242479751516716746978993780050667079321147231790038810597902045705066960226352211649273433840287454135150081396414122681378174820775138029845709386618206522803135521235763359663742682285238497703649700827336069434970312742578042988520371331337880123848512902590618441219265081611152580433184135523042448734323781395781925422449078244019070267273745621669235928293643565446185590694539952906212752344331845915585122836697057515908245059600288173263068311372613980830447691093366126606268985291834562632117166513607105958905199204555675199736226681024693864433126980977166245181512887693085544342571484092715773574297562531149326256121248350809581345432016307333208581139256197747161554203932326977617361933343441293005529922639130499657966693399001791419448635881850866638864087519147221928275695613661216856712201547081487954861307390598798851880630321870917917543242277235462812338630194624092126469082694998548087901435308275105658126773014546529883811063967333079677780258118304387823939440215524147095691492333438315506713451456324243925680498741861552262424927354010909569570690135618267062056761572635257338898588311219487543023206465926617491583807368490124241683890135690781948097682328052456348540464379024550647876306616143026338776025443205581104540745674030576207141889725237535552516041378581220125449523562316792074739896891239059484446547244948704000109829633578193617252062950680477963350639270141102426477273116383835147248775980395861683718743158705597236910083937251705192466951507359479912991037271855675273209556038401036134640985505348968365189591249060684873024159249354234397099576269730109828285146601882087370458609910696558180553193994910489020065258300303264649857351114173271309767183752540694339119383620753843869879411113081618668828703110854264886863531007573609707069202247373320171913052263066746728385311468431804645231504158568449417613966728562023809807460764281844066500026356934643285934645894852190394767954392120337382422864827002995482854365054437956349753571839261395844255488728578612252847922642767463952669700260805646291469753097183723122130948569168434145892813436623368273226509863786714448019099903780089852563520980669801509276550522610497798526809315230744339718350829234710767899547257920635852449244288241891906594203900538682969535607138948959484485255038040821850699871596816036803902002698755347718558879182491962559640306501002449240665886017879167121931630920200313314369447799074680357703787030596887344831312810602201372624264902419109262282812372702901756536351792682389376128829772484855600809998957472484061908099973324972777083173098846641744454809097686184383847352792112407258421281641166280146114099735953344947520704732494655833029982345487069485626302880626884457374978292398503640346710951343525699854818639578647915980893984267031885649133485841410244342398190432244364258254327371048918667598734024714351551617275816932777702081300533931672784725535105776039076665280913116918353724707767448676829582511369397202966858230473853468385682968137043000708622865981425399120182479195886039393985570873040332332340849935053047422404669938557242773694730440594830224708789944042463329419812605039505546182963519934805901109463874058207230131832354893660483120883887135460485941875982243873768319528643654431353401457880373178075369619306717506944557390669714085381781469076225633071914194932131705654463937075289984219911730970578260233799696043155367943798722610094088646002649225902904013278975390504776418004126411495547228843413479601403307193076222716748626000786932871770808486063920255302924722090142250418728117785737167985128439135109256636345872675295252781130400828368132272991173275207945370976241152735176858789717181949555235815375089443832117924588571513446826942670408701917778659639670658035383926188518281653222889360725128087652859296869945212450708781571708649487927772568302282814368146670584887586781266704605469405137688972128023011395596311226850822980249773988296359370632317849532663320914820435625020264283949664482124409516750832008872223647543380624234527643918967019013570460363573980771505686132158831143689759429432675987208675071891916985711320638530748726761141986490860122154424666639562822468305787443917716019830999291245098251922430929635275858372150741846987831001019685609681266661218196201527894287218755722381174964952223336110663032594032892539725285312639132865607952265070823476195394336691274218917909572352494703470523513230153825788766180717900791602267461920689266115802222798943424894571745961243702256286284754602942289276553401155879724909298454356284804472804761312992875364918337410894138868811888755016605274457723162427888591806976372880490906556650875925418054903693578121950376843895778232770876138758821582607759310975593251810473039558512456848138223829888567919460152866496416483339579590990677314319348258401349948584289622594358070706758490430355042609753370197830587485676279540807454028049862042741236470477516467489649392412535444256863403785940662504593772321117484454461187053582960490847632305519647731757755110956082394774441761814275936528828122860619315137699583193629038173035873626922447468801073125560598864848280865519965906230278304089413809042277516549147162310266149840202347927494629470895753041703564171844467426270475078461819410679338923554730448026642548197919261608896554919917053687229731810415212521866086857886058097411213065308925235747353481637206665523340849340874466189247116803763420855353475115759292592392167611792927070237365084796392075361435100344554698548713060985187466173923113903568001613413713845496727081938775381428829606785248026664216000034925763581682301916798829915392039735147907810979214460453163478106561039109554512066000371575580079762204520314786692908916255835424747954315069996323044102820283577226429332375634406483461531646479327080080237667600369074143205770331725072932369105933417456022308876063814869899943476901073567134572703594107337443030387631816455825349046038726615941404033153993192950790169831035787692406099972334566930409766214865776208812546622082521553730693078461400085648575398490972312700947752747136303710078718576414756291686590885915107289249862205198119767747850312465531744634471240790003633037839911791879051808356156223073728437086972341344511485105110970933897897056647847067239530963026583266405938887357363558737735926494036184233103534387273194198365526268073454673341073191924341847485481433461743671538290006135772102475401012401623827193430961296229385061567553011487200376587876977845757612250133718332532143685000358551536025798798091882127052756062047091678701704433520499038346408511061841128036836292944727318882931161730872393926986045616633676373431865574477600704855368402908236989786083219530688181419013473411564960705828389714256877758907888200984540448128254503000602898889832058400798024192701794568652973062600063336185280305143598745953610862342345070607002373627754535196676413734235354201528719802272948180058463796748795488873117054532426607990898006602920238908991165279862516599993221581523337734677111196653618844147480105071272206657196046392204065295065207954800391304571729149917749872187168100989713528462082229406511930331474869782065484664566617197272556958450702929529362342037360415170301085001313742870715719888675884543951124228316053396117997630654093074301128951781605252319780089714692075884384974307006656329492630490529762468901394743291931873978453997914745831714137881817924060089772092829618040207291625774854429653393410322509520101479683862909610706458985143477892800229858277916483014905187692761675253344318144808223985992088491219063114742051400452957404841751015102170148069072762530119026891088692189758729854813597221512509186547579347039204606036658118113166277733309467791900913748798758371803903303921348211397285601584683208343450245153324076781582154756862242452511732546080992736638536997784130160882995930583851772587246512870562559809178687984292862893157414038492738338806436740600210597990819203594509633492662833099899447488785598418854036542968682996440416046107023709824298745361505605117289253244088269831777953791245006778817241133198106001095095692615066597529198088834009187296602556587430821149630436780664362209780788861325167403769923962029580996537286970561473319617034246685626530423967912482324340866644210585149799255311124994252593844970316217778021230355827271745328697659693309703689310562794660174883023347720674502219707935649921663759819393233372370735528298944756417337583666341757818793392625382778899530028528129220881563945006247175231757263239885496999924489820188348057425961936213375679420705847478645855380790501609327451572661417900531157587243389772653479757178462513308400657549744380679492641168111665066426001602180146109205425479129137225856951782447260068234821520151116679689916062510829116296224705428946437521610753334790101637264322222467094776621540489578791115445772222884441268882533692314268863456214618152897324438950929946800136010435805318012997122561052225151138399712237467536658174478632025535015173323158521379988860506816494740888038054135274489859621579851469479153319962452994707205183596767938156912709211864982307012871445285477796002632012985665062751099263558870823867645091420911188190956088731781225585922255808596676782965333100076768551155493686738454110038670358896892985677897942836342257819600045970356608438318207164094851302208357868428494587893364136281353401601731404288022736987533409617159895057355648814928905068403207379133395346099752333253337661900134176963183020633904863678124716697105938781140365185283695518089515672980686281448981414768794354745725238356169891097265901382427385632267258101952030367168568861293586760960352587675853142620715170866868834698186809463707211467113967644456691544101256354045312169089619808599804812826947792777311138773073524416199977851517305670619567722433081699240527591207915382733829527536979635466018563823802626653771521236398896224182971343771468716593754581531849966886107328735846859907663716070747559764177196550194546868940800380203348914556458852174365794380544634250612368029640753685027718806534739373674045116365315886837764881914732884686978447711520961706536199915565277373882465047525375697980143895002757642000131256582234374708984195837062635496300513431966393479029325254439779872499667884290160546346150493379014543541972253556514726799901932725286439474909034486701290327101253354861127224364401973115581302031459350139661421351664633756962497101193370478428977817058218084968063744466659965086075636673949329978406880762973994596805370495096592256416324846799442601936748144202295273346729113077175889585547121464599155561847072228103523123716845961540966987684457830508116134223482945375832701160966537882446493937980539901171688150554264802102041207135490054111697590443161673797569058766348890734972055118944545850058304256393063475521928826144748534663037979434276669395842445799893865119653395117801674729292224646881317660687419828968044131160381831555910729678476177022688491825095322297268580157197926586282761330164953564597627068884348899997330965616127498022990262332406970625805633914269065497932381344935563036498598134312047478499260269007625672100227686277668834916564026285434272859778306664699091498190975339661204232522480286610253346233208167559989057508454195660599838573241590192656319011098277364038746463431553576888610452103213201677237587551398165278561158495048441185027713047068956552906831696657615108971699332576337425160407982947936647585254642382913214176503227617242932768873282112072872675884011112765445933626319577914316089582047747655686189637897129543524120627489422103513476835295460364165164121243005275720232005427689477836476418167271505736736887763070049284426876214043011562142254206810047939057165741800916188127567191305663259313727434189816232093450690109233267143940321850299903385216259343940633935083491996386048287962889622085238439787684851826318453770831383778106277784157068628652125508681111277206378003985388373583207997905688281589501459764983259711357556295231492987816338235531808111103678762589527704112526599526754489345431403956953881021735433884830306523163996927395477193350927653707768194426747781189280519362851560886151525091332876346136142066835514676609457435054802566795804432113675621087543897008089667858449440342134542175084177699599938632412716873398471463720706659431877672977630469608009134312093733144220724506203756561357358402739193842973124409187534727517847699097429556524088946640410003102157402726771041165763584360992860219274875190221102582858679738607238203031541794762079310827164988385716930951476864609054388340059568108714372563042578570498299684573670261492414525730737771347589238956537405808678054984496845269727839053860837418862552030686400110576263459518624091216649078189307753487814525157348785415212199712535424650140344954492159594961679877100983861387273534612887773644853214824015078395805581670960861610682335343968540268752275303777790629953598184949725888924287175983114843955660010599625307133044627587658053441790614004926624991738243251339278553566211041178627687526220932772430625349850321320526357060413182469393206573487308635115778143361570695104826238429375825016780197949659294238667692550018233606260105557609235812867602190033152878194871364065281658991986031957112020717114783737371631287921455617606371761861259019541386912167852537828663097926840204810635208628975488141298356062943695109447340611220123060310889739932523036828628142025213386159879283061100854863942222140938904472978656545424457420168416165139496914513854708226306027528441509598239910281596214475520830788771487023462312200031362843966455541995105854099770198678074852796488049958365857680213327863333889652661731168169489518511531824631224840047261957509305023447852252585867290731065540287762681860491377718462559591389834272858001436958791145338135506068118551561429107019019785226760196659123537792492558599286651945719460163826552028005508912352466949543617997031362143738823135692808972104528718176900179738640958148700560710792643297170717135659099519786268870177884177525425178164889743998239837763603445153413927015460304294933601678500132058943365295168829342001205666023886795230417527760578749820948379856881380607505522810828129676967311603173819646683283682535300315011812569238557907876000592182116918626871753315093255840223651988056291440080196817708052082432372617134664280236721998647994276163237078096411959106851764481641440046933103701263096790950033010683712569216442672704097628877859311440999378355975115986284555723979056248625233570553827587951704701862516108828853676161310892576325914761898717128707457228862410931012833838849684181392338751193082076959285698708503164690240151914556289121576935998686854063251745819572706071385820475253691988995577056062861548930639317104264834430958037780001432799285851703976410248232560743321237588581165560456843269919466532649973079084888474131626522174040834717091449417015486125890248939686434360042754232368652666036267221968801056406015990077643413690054868648530213545362683063474359976600281969483609843569093149565348005308985605854449157752814226722948939694084169964305608052942820665412438797598969603833779556563673815999411757218422574337166463581759425396541874311192411487908054792549860970334628453353924105135650882949099076567912811874893831803870754338531744799174877334838164487017631086097357179861047618778258887368512768427015398158000737419240147088771061089301059902629902873476468435113198021500006407390410682734839786488150771939780139992313886469592988959359592559390604799497044148133671416648091305570516965979225736687833539501474135283548716498186684282628814819232288791786422748442513003691087076862505235658981045571427523728967548730854855462486226547434977547531956727615095477814392913319667491345317166224682754520476494805874402484415639278653763138678258019750509867625387825296287464556461347380617771612629733778032566113030610157852576092463221466357587369264549072970974021479455841028812181877167309983652198747831229843248116768506373207460556023475971815363933118472377032320285749171983942899735179714570756126945989543335738817497776833218746569407003542791626371169346446226044590248125761362779996714937706609533303603444316909060329118233226795036526867107610265399747984943077710111489241056810534640506403549341946849627740621179046065788227107093564238279815619050947900054109359421091120125278187940489844255828500158429926759451876775663817805513436682335683158029318961901007914948996479152064279119368469966261891627638146543277909483595349106882777499369407749649612617532730368614875460259834534324604402390153622521189264324197087854939406132496059003018172124572604944181996099532824980232587493113234602468268259353399423689924868778576045816332732069147768670249636341085405564487238324650798019367946245470953031656091100475680780009689619645743563126290392488683551770717506059793636932505134291404462902047250276638701217580303543105989574511316546708227960385386225156986491560616086568308089147672612542383738768541836399199757107097475737223825619098035670194320281886117488523998645362790232008995545712253062401772936077169851915648193287203053600386763497690449778234206320069366266843555421100009824522587047164529511365835005454303173242116792641430924288665214568386255440126179062345152084497914973810987158619773619586926179577491255781550529049692318226068622259548671399736454460405473011186834949149782608773020688975037931156785559721000155756239315085309875842703819337179160271497720182167942835693154591914185325231401049978741616213978694875211591131965983813699311855632907494678123708589755073848052443069499408671644111557790090236718717794721845512037008366307361404769237809722654879802911562583398097937555406782690087984436640562288148575110283946063341919326376070302232681039976653983938571401811443905289158806060352845438203991324286303359867544575105212881759185036369440836034044749788281089753412644021710663927597164849632313381802323670071141956897649757082535432560636028405054692274921457216125537712875724503941838894528507996764148971314220090472753357065300442472555172097290373392547933853628501738989115496172462600617176089586127597315851471276364858533446351656089768054468796062361495878902165218447233505539722523023324767445553677383568254222772322981776079962853132507996412250309581303181465976097126762052952798711224180933115870461850196750030541362276077217179939448069222787431699172388174732942585442086516108880605018464221920004904988755269168952075620218168592916427097521405135750684397462070547878654499612421473147696544972842245113005182530942492099991879318167060802830849710988366905297686355705319310906808124189804341936185670681850220929599940740242377180352180232013500226163380460604955119628649524566859708417324057131548041875734054868795664644474817313145492071712964782082951368004661897166901981879025685096535241430146438391870583714352052710594781037267765931258915599464393297341171584448519740771102687972548378838870745271330024430968784192348865282901578221148821644974382585044704002485335636110480616879440089722241771331601508406364310496710151323603335540471143875013870370473889484651723834176664319431923157982016511374010536286046285846924649973133683633994184709351781362891018391561859146398375930702504924035388382188451474814503672649806277867177129471512388993214992753185932731192244453034048251466333507104229646500982587916211804426827927638344536657509538152460326214433667563096421832182810117474464326495826673368155045691214830193637674135014848955677897194854507877452958182800390512181675139324927059203449771545375571167827008045759641451568538722371254434112436652395614216451557141590263958616065433436198046285400321602325908067766128796018699947784731283032931515713334446942061211439251482147689175928147632925985233208791444640578702510063359046697574704183388773013646888768941857626521234857064095331064187945780935143609366241433740969307909394730498744202736666139293074393772516577097007816198431102920581499690056842524655150094752481433141562010544327914936980363187326948486292900921798964232383899319066617048180370961630396342695117613872753471404466445352912604382966869643709415714714271383330149660798814078509227060502293169649872160420719482019079098428872874203539534061561848606844816011223549072415311524588161398942832304315463644887209697637872688505675728488245549444268736059020785387465300658330740490304043943008475826131271564461233873124887814345437885513019100953032783197080679232653846566327418012645008250590363266536436416473961870807113838813478659153989867616173689487346783577774371917403831842168996534385091642253084396484475391710489128788374161696477206454531246650544767469649194467975683342776858183045380537535472426953921786113803992106101750228232196539854382683076743183092737061964834363252261883096863236884045196322702465021080837173203110765390511761717384590167015339036585202976723345256613801109517531957404334955822695944988117665842991596495580286669954654433530223575800883514810567683355500826222083155375825215507025243748702383175215848443069454444608062584768057131668995230150344246126309402105639057037942466930955550130995443968710204485941142751985923594286147201522464804016389780305608595999555415411994712147086882663946671845484199755621050529344866575554310978601406108515687946558080172903741295469150141634259578936666075909734026924766986878424940034000449951387233859056468213066356264111726389092523751968801613838967733394983197307035524618255941600295988215200610150321292642302730656099885205805405749911743104226740677739790178242086037138606317176868017904745992641542651937940320032734037763080741523883703337179933705244916665908314641663104673553480409717961425276357224991299628481134763021084956946197723219635230213561546393852683120918329999304554893575256796923618464868190701161724551277937636845071600362913438158758665863246996922866970942989657542801260974295149092080558521209913580216155625091208948761827364548345812966882827140710976412059962568094167631516641416351238357636334678206929033722693705299531775906735685417085610209851582511567638609775405324682208551514831778617279208491934235239667507857936510046805163871754871922166807829663386902637659095504822769761158651701206437319715201732298562656625485837272746797150919607349435225739868231398436242646185326609855205965830384735189443634149880622613236708791096915619858157693878672904211575810484795726851735846728135020080555100586652632991687569245668998895591203256722883108502271838158441561476423992628628257222896938767584626014404412450969256970249326304698867698584849553819692908655580211056471790368792291828166650033277940379709532618011347605968937010166202129929356086488297629568263417495430420646918311575014176764443478724928801560032854775075021910482830094055257614278844300709686629966901166174244235755585369472096994378248554270288074533557654042098617856097304110477879410354199347401610830810113378203316418035320084945042503762308130968537611663828005114303269545945470050692655256216118489914897180609312934624217314282479890002599789803374140527745090419937535265517203560947616630806167447960893409252169690290973011552635971437903229166244730484920921058239098406185664942790600932276212608455696004406850858320421377422160253304491222427859963597371594044571904794817293955543286018220872616943502967690311513782193061016141911658799468738767319836320054485728594941808904904778305299479665363854504360252742650122612973318552929113539059852538897492764385762473472418483011376543644133451853877672409973757546494950379921580178837698847292518534121943590118553582305124983020473683380945849819701771332120384721504121418255772589717190395372696303738162209350354123155716036484059877746279326643739302281114920755470861868084237031328838745807476790229414970741429024889775571366236152487111065039932188999265178507605621798554659932969570948965801233832492551544578871419366468860636193283102749058643304788171590949999144374324399243917027623909481574363951012539396276366669601729040946069229531360922356873161322155375781164053610756806329243525814443596440816754288849240505547763074898754008117432546876270896791905544117512152173360559636301389309002709430965484210975252549366296427945279721329826964224936568199757849585746630549595849799722970092786678326794334479699212366774458265381075158254116895419450447105372861507214514618035209134958429584036916795230679118478545831436933648084812833328024080412730854487434324031449505083722616599582334371509363879237996533977080986753833232149561299833947094118134753457806304433803109367564280639083546564943043533927088343741821213395507660362108146267177877001888461713423760822727681205415036439447288828264142409040597468107331240757753750482678671749475009725964669440296221523730883491412161680436894553117018242131003160701557720984316683593219895504162157592046205515024547816021591952757497582517354733579037357596478711349619724034836985181738971170905662128716145960633068762773612659893494628793630717583359340690872407783022034366462257655922636842844571293492257266472637788922009661666886814068947985680352903215885686986717104031901959006331880182748198462050227021533123792980621011959283334495269302233897855266346832375584824495074736201267771068063248240719053309092824173480355473042502793017638479168297127889961278545083071995148495800232527468611902096618997623388212358216515250444423093392680866739511241476439808215997144434113489174230557721073764299085158038145633195454652736984112190981283859617924517482366226267112743084190698512143029901317377257497872846246577577719262973974138861898184970077136723753927679049180772386909070188653341157741503535878649655742891574815981385464679747101236630865004326422635365860402937865678251867995574237606497134081052148433518331709310765716184499782531599575795259483670669716015459217180170878143224505808417649295619711046774726243695718368156649762571414741298112822790381890972201270551869575322714987850411052629160732853817740421692083480123655536198435210863197160843033301745699453567457943894674304403642087642701495818829029427101106663496461711825195289539443921038666992618150119976465879014618528085893778685598602496203457832428800247316392424277266241659837822336480358964439297720704532279893205340431593333909757000515591714116344433488838636374754285823333554622259604367519269458633417399485289589167696179702939273329439429455172637523159953875471956152346500430986139144911636229362493862742102561384807861420048793469364832942614601339896755757526570351094023004439656808528732756422977775491688849821942201047025242404354185055942299678078664033370617275618273059155650798564654801788082182639275039237962568047949494161332349151468312819392147039824149005946690683755541969075259492113071654899163313559120208731531593333292433014762571699320366680479981883819910560366434949920364915434011629341962608538875519893996229408890852835562515577297011279293454299579143650079659821433129072342582103392912392260261949228143779846987652103695171734117562224795901939688388307424624619242680546260370507734072774278126249122321237027411347634310989207444991366780275266352034950717909818742636882637546184640831205775786005159628776304770991076983397856645429404639689803813034450498652128794001489491919923686088089093838439277618904497393362398759617316893902051571450325334572784345436717668769989886324401837004963552296373453763507309145869209874399742819321883683812039874680266005732171717850496895894111031705321296757564287852599907349359206740378317333782440986464671073004117842240376168570110223869782084364329821179330265045592767026353034379049188841495517281244576368997856075749041872334402877525394874011913703931985711613575474390588938825068658747986125877473781920072515646802762847370085795543091036284397391244145193959633498304950236152472376457276854308372190794640221900974981947168721561705336121329124292445449360325259897176543108895213554992118485371043005629659683046392366188896083278140846774541140752147165159590672023413110009074267627019517221676343829070296098363927105755762697936298652072208939212034718209373273079242554115210712855267369705794948076806798316414019786964593534446674172732952212203930368764950091403120918320383330773671252627809415684887064473581625403033788780561209390641282771420904012010897494120002788911053915978657890642486434905247537609349282154936296872355035252223037337335606170047639657452611627623406350019928874096192741268879245319461700347817470910727745485869055355393827930934592570451592424651319323335050984484480120245739527299563275539551724130037009060354637561208859427603881750193503021657364827413524353300476945608041276376192005252874254271317153890220654808416391101186483711988588492205309221961968278823196692721366244818426800128432100068910836016819858705707428175199197690529486443076118283250482963058654816856217168688801775846332853699707241943793733996499016346986858832151775749929638563819191655343936326867077407641731372281530498195797934009300089792259887679661188800982207702755148077535994142817560896821965246328553882927085841891821235579159741900975388549606184229928331394690286746666309128461928205134827860375996904526465421983945490281211032249242533257634134491786966618884169118978879415028209521924060334762757097140786124156690987674420169400743182342189813821445515657281820759283412967919402199085123095576012527102975345012557243567137594200868771911688875737142008627994314459942973402750962125410828473166221322265227424377049004056170757365103915887438693320869867454473545879064700651437758979558583478077998987519179779106800997084770688819360146800413317588452568535490292668417715334068642712615210293629439240671890833394795789528558494378554346857573183234031556272594608437930063452105467916979249370633738817173172301069321833610553728619556968906335976800305104584725785296904804932348318826471269772444832212429103406705856025009750913296780616470952169484929306163615517293836126641888850352896481877477332691112435664478309443133027365437252258154971174626463165485645185712042818407089085728633292471433066877740116026892582918710948789887079946557364790248865740308048051387419536975308817871694202788788103724749033410767601451892690279926775075685362429019947937817953554846029876191017679143264244943754493117020686363952108888196966664104430054538583910505680153688282967365434284207608231005467250038235347914422755348539643232276767590308549497702025775754332174577254429945378279728708999883488871414712154033979854285026564287385448299328961149159418098115083400520203716507514502100765029212640717640463153539459710300893006045846164851533863233602580395777635896639308090741761143396575759436451822728656773227732179786180870158064219606099116481518442495839240534408143414676392943741949784113551749512849159560515235888337487348824265804731528212017180633640895042915255610066943446215444465652172161672205666834629686931556580543530533747279604472835924602797355536093196382211041367680663340718508310537460866878649762698117489738819957669611829518197608638280500146612351685180836604260250270941561745023851483018937453397853887273527902785422606524669134667798888365009327016240708720611240729506825035358831299880536237511339191848904087804194584548939357418948911046880465962186621429849564145943920177960297480313010324463706059129114151414968841005052281891286384408035848159052538642495945398819641938689593341640749145782825987810563431086862292017617497147773748138228721809817805159549728722961055247700050660223293680509733982593040583237731753556685077641104816611838328833025921311510855293150286953522365058856856985332297841715649171287219345654626812871218902785615764469704547823945849767944753576673582589163342174975594540077757493069006023058276551940661931874612462108129057513002237893486420381559339377473948851191626931196930187820066969225018596572464131645079678050627850669230084045342669994535040845595866992883376182823206691333849134493199277806214964717175112163853451445062486663878289233600385504989287977767285468948291193443140010512382131102521455554674703906620666117516728295704620066383696669997942880073995370450742090102915097206241034447418353035035172960711630988689768601916078310992231394628298873000225232567014529995572124383749048736749912039132907608809594540911384760244053508182490037479601350533276198017089096007383039038768845933132802077230468683613593757204793240607392429774725428309925851844493668928530347013588124436730342111422156166505602965254362240058311100513476226632323352724733037895331706243329203428883860095926877202300908600801466143915874964767430908776174679074140188241562830515274007483793030955612732049751802423002906724426127645769232093034093888200546776409475356197878304556417043428161413169994760272560013493578390466738768336723004395478226973921923680767467816822094238784756642050504457002082459380697478308877733626506915003626720020368004555875913591283546855791011602829883324862300958781959239080467239227669860184874503453816624575861680953383002852936263616655679525034436987413337265231993705939632456975017739409291388776686737437670865211673036340144198944351218038340562924072490615044731119312487731070206342215220971983172869813196714031241817048297003054540636277660920898677190427593658240931278458320901438329283604100022789876085086947005450664939393400959769831968503268665225779749478092483727435963425477764936906946060093042586107610438475068406825384603743724303824962134660510920089859048325283389615013046198390649332969368318756601560986332395043652286773368829573120002456151614150404920427337383761194917523557685547430174773102393633613280111126574969256741668446477080876940565026932967894396668420957215446761426492048034217909285272079431664334660885662865928161373103809572125068268755650064101427331495808307239159470149453139062263043098465785355365802566057191787821015267239767260558186024003801834956218159855675302610308866583825452463358789464323301769891101995258945737935487756818273844796075836261620259787944863569310901077980911913613543277900989783444981062316120689638420863332062868733230499860376496773570940422223014636176555926978646048770086765790326755598631498533055271149442906652996649509326163197044162454543777623326462977978430433956303585729731354286443017411846162091949484114082474715617016479809312500343462326802324071426545106643266956763130408545802784866889312500286539743510705858187277201561846064636782766260096662648426531169604188339027012093076013431277490946612693973589052348551445945618028983209805065770863804506464783254562469818116816238895068639184474280667125123035275384099725131825882019346839372536858852161178014334942369173703103307589421711518774528387843140113108926542180668338405097741357093994689769486074029830295708088195742714409786517656197609424576357906887159650754078943364136587228264772921028607430406697630622915816348800693583229190874096789961328654806301802296352774385795729935322465785695343538504453727042997332199660338542277330617107096503045836338259264124799221952361845702464971585308396674372439504867005111201731031984090241555305527328983249547576777492273754466515348485543075446775433808452672978898439733893494415661566022077526526652264546722460146236767130408765901280945099861212874355126538227743886858667930773678120388774917168225003902842375665631518350161637239595495887376736232841381702542429182760633384004962994295678280935447504738904874555543193714530658167229177974872306140531677606166568965841029698218190215435786849641053754013255885930610494607705134699739387348640570378547937505961977383657409131339497832752675139371252026327564088164896658147469513403584947382641173346423353074788414229734652116538389964789659887072073580847136237659902745718420368096913133730988518834172177446158980379823180677292296311212194256356618664035674928792726270783599115670512725080433230177606180962257624107864061959100415241056688380663249738451107566363478490065843543765904630847084604424201270540949654268836799596783890298229936010733826261017392876765098011419996776393796977162495066468565338850046637201244407374497102520068336196400542849884818485597212415611092587950091997717144007072563462926960650339459508802695547928502094988403579611541192635275344795781262135434458120688706504918261571867686704151998132280208736914884081531069648299982542166655211972644859515788125964862579299399984822482507794120791196861369064074951309889092261999079273560823443055555210636469408771607724290158505712686700821392385227089104612185988329849187801225045244517008053443181496386033604759955395935070956863842812787489626057549744088280997251173344115479733720886092625478642566795380290682727240900134109015032639831905925830467859007731663704355557337193386520797064938002579196308603490044426164433980869635512505188203090097475903974598610527895329873860779645354942703864449608436923057451679305404904018454443102366625612771808835856501596728637566946857058185039848415457210959285448543312956713391390510978872599141109914835675670203807599949333840051693708779291822344447233236687152064995512188752080384181515784735400127676879763337692466094151512774468277192623416214527456160826037062828244122351423986706243910921612954336939286395783370515300282046457415937985799945441015852210636435902969616706389784841310814294211454555002032159532142687553603017444065245544060740444987658944484345581126696818663407935832947278389062083020977997793120269165452511158513235852013483769895525249460936952389590979213271977762567405317691812108224742100186848550705732980426590199353585566991526566670474524382301860755717586473848739363636421888524561339879598414950723208188238537579753055389524343256061671683577780863492128161460144453494701781848868906362568873131469931013766069664892802745936376104651882814114257045723029986360090420857426082615269496835074622794277247643347041402607194567835766839948491059460270910570911070410444823433048911407086740686606707812588891778719943281409141844549079847734063689638836801052733176343503555809523073196545263842530649811110812647609043497245722705725262338002184464126687975280616230463018525427571760079354061018765098661505453637978405847618370049238847128552523970126558145642343803155882107277001211742079226414724722452686481809618376363636102001180222617680879783578798125200344920478747150328035188222517479948514498335526556417644138526963180069206194917870933605046216820717210594028839251278270689596813145363215675813333603240918000004667562039792219212585503323357345092503509606980691613455733905334238499861709018393000931380462037072491325214123574063225272718014925255151467929663176117618843789608612043185325997044931633541885802194532882035374040304332735255254460972644214385516274208830882080368327378920423798590115408661678636966418361978007437616503820710230586592255016042752722303814073678865280293965584925703084016323205067602005735920870777525972972456548611057353033607864836376713836986680724007817548794654984810815484532753998293611343389265067030571363564795330712528568050202263221301574862383192441475802539303949320675522261540381007213430022812185795903360428049760125422069666620847372424535432882557456619039891353213644036450902541657859251926547926659872342167312822100615338474602137077910998995186342417789673863244930371371448042827198452563786960962971648642527068358215666165012321471800447272841649755360773949002993794280184632353831241607006496639611106908092639092079432134539675341005637650626591666134035128020128637803017043163737636740431120275192862285297162532681444051895755392394965489976606076663930520495366856875613192925316115567251475976663621567286253376579418012993080048875476640773209784773164637736092831012828442193254878426711532830748189163106209216456604952171137689172091760062279044265826245590647609856401727265499768838882431029782750336675779036375174682435118672965661580338769622938805969608656560775039537928639688239155557085321323873673328112646638950577551203381598816750143134657713759793730235900333516683278991963646272986116908117781857383286236241701145031982241363808406707347414154398145671693132311694986526684333567964165472135255054063596972716884667209407699155104375588131306549458825274922151518182907785263252668337529856179053607162826434049810761509990641327417585464682303095415600591014725110535111207766595117198076608216149092389835569411022339277843891939853950742466906208300617308429113329208668930999972612227409954753729315741440420667075186700186707394392714264778418170670895466015095183190958045018678932765531411375136455710262443594932552682174929678268759920039129087312666099786330705246594682871019752183472716079143619833478807611169468885528445048108143569886618108253983373943827727234751718463308379108840524555847999295285121143765814501473888824814454074036043586448099024291098474792610196058722076124386513083367540553855475188173697815930893399485759502060492824553660170078354824336460325916293474223289067245521139828535102731521570244081829875300788386246838906038256491874181026023208407831682605378649489289006769757369255260089750645884540336099717645763092875144439235149814209713255332315742379807319064336870647616064627953391910330463892276254615210000604992063153739441112539602096935300040183338782627144103115836246730831363294018432895509490005130439090223167349605817945843279449151259405206418855939472578540666924369035983756543545829414767839493682808656559046923119050937130442179818160899303104036211831940504308966612134709177824405439340412558757365796642650505377707969399325280382776270298059190507158041929237996056832680063562114972103757120134700497106818293052930863516386268410658707293923348361871313139899591020681828515271374199671870926544138708325552097752933313612400993027571191449225279501960659585192022688401563791127734752233076505652692951283247786045821072607244614781201372601544475580259403358612494570517766561903947310199098033264714509949754016709040527527822541221148028178181130608416676988981071872828068827482540936389106758178368414089607459709594313476069698358314279332075019979348733621524426807315920404245129476500476754597061515593079364892232143634854744587117706179592929209355451238608608420175473389038491467433729850062728688937010749526384641833092422927499021823553661841937073605855030605442518718270136091257515480171576588959192838383462511812260771131669385044105111845668590697680295068858501933425572968650063931211992817358729990271609964084038407013147059388606996270386341169204517605056630475103968351057011997365983344017851927264779300439699739596078854687026119466265955918045213646051903453464525288585938078619571709596727968999148289956603617835470761121922073021417680054602141315653128761971720568191446442796032067587570663827268691892513914812442755091736869492380730029940441621368737004323916982623456885801257923968305706524191364790359273869086750201639258892574292468908798853849051934174231661278004906227964478525765295261338220949379356541994048306966402792408231135544784946283545337120857084692566782302931365070707745549134614848194157973678628878538019010703041360432984633047333834033840668237955303188400182085172441296364655503283626758876030731592934758999403771533967531247520028823937260892861456478675985435056055769390363144414877459921283402092687372854539526119659938469334368262799570361374049035964511886351416499532282552330887450593497761660743108765771778900318929577907208229384305416751400253314106862779113665913047800701221521912127395453878205733614679582010453126984432110948530323210675208021295258894453767169518530558930285402357543088779211034233960108374836637361613213088755440701291426163875228876415010383705100272375034495180648427223136068953218023082582517281443424926757085679647788876019303202628661357001507432160073982312893586337901014510952694964837986161838271812201782636044508689552760846389697832272381705055992714030965324275057402648456367959685054216499232168915841860471428383798313405955578965869513589203306654941276010775323294562079527502536256506722039121261751660204081151299204467785627683908849678838657280170644678831992278954125378055043263375206818004175861232744371227937141928589793480421249360063644566605132241867140582373669875315376604883277205099985225271699396219480749813817880135720802553945727157992256141855296538076281183836275942444552446923363667326026692468530404039799376808607325761575055166407858264267523146293319576864971924739303682149152419970313697118346427938458200753137017260288435150592447986646892394712869001201664618376291779361707433378062182132441878581355075968687833280402652796827064114054732671037491279545389264402959827638567916952578588266745766350145865040249940334965410073539217536539992911350171191881813508656213895192484424177707039932714781023746559667416113315207910213835276994768453369887317619339995737901141715393582696710867776113501669524646235281311363792268835292304759192681084289547775053408760282124499339172474171022536342130603550840273496056549865025927513752440683628783796562377459061480665615538350260274961732236668752953318981932609441799839815395387553724901339811593818147391044641693585256767860697749782686148297425611449602589864305272132785765314565727397262761454579358802096222818787801132748150767970737566831448985390235930151929334852435473996027191942929017880553145896447844533713387687335352874757155551887136109793543320921701683029882620108565077988756945853581094776024817301800786439435594737606444306957819121356330295682644132814940413121372635571907066487056461453019891452719687535684928287700820129891064504729148600337968977745932868764037687851430163033000675771238199567797848858338646910581926699164254205789803982621935212915497981303432313703321063807526569566319202284375832061818630120833368793988123438009373515916959661511269428989102575408072243877309918762566902093436045952660175960642607677356897593712241611186919671972641488096150288923770251028579000834396327812554674640141669599524015764725215609137765945087129157501629743705296811165293616229660974207172946474097455185294609797436367229198477420799834886568816176349240692172594983015371356754290894412772575951897771677431057891431748445589101423977518877381364578434085442774413523299967478534548286167294504110139122596270898170994670265995823862323032116279505546578967330069586343813757973833925300581923856146024333064857526580189479342386386352222228847612880472034405941211811621491599848513939763126326423381942133662114069234527388990655469546050442232367150384636943617300688670981935755377816375793802818356192265001972536738666625537904754410187340445433400911845981668618212442326052373167232794885247610370013600672191475229689432293768504025902212588315682452757554368557288642675322933550384931525931157205465241245450872493910863094123242958394550439148542079418492902141352785091036462982094131777014336198605614875312874474202416801116660975559617971959691002424998661660762630158895006372394672199704371739981898717052387542227439749020769548432643382400403032138034061016625946352131192575535172780240192734693258897443451495946986372938470083115234886922272831067359386336012037372904170669071525326661479697466033838285729515843754039154623402275688062063397389858069618137117112757054628976410451514936176462940972435613071926369930849840766263808323393642876993333255018320957318255386511098225278137996353758452528859791206184926940324460792347610216830496787707143918230746291319431135841634844563622591882875340765561342745093411993914262458158989896264704974681202006654485807502000770084149610055066914355634536454729274017444237443984880412294806157338399030002699711202757275893016641808514274313068707860907562183204480641232243141923915261061022355919191047558819552211755292146814347074310280066945191871133547143026988876736752287183146062407693408565688937725421059632781599588166566817261286732589467135585825708480106768663931998460163637382684107336142629994610918597110711924065261718008154548040123947166406770842056706206983896922006815276222271933341391381773406804919191084291676452690650750765720736777446969761220646798441276150545571464981250832430446919028077447142958612763862943492602378406469424413374641832399011232672232984262317791133027746912076339787937767152333129814335065787681684359648645123767319114581060334861459410029438425141504224454788607325709538328534161599686738939465517774285946375459578434919559328566571337781374514067344354969323505088620022381545538717294224522071988329020595146288854116119857868075205656059771111648517340734557543268220001557531273081297333952054058552243961121070898492598495314266227943492317338523130791308057319845998784373774782022062624235354281685660175805582440313776535570992796463790019623441991856077160019879297192539527598339115582955951225083147047390483244469210141359190783741834796779246572649775056127880237304714959071372985605136667508856612026427086810284386280153891896442012027889139217345176606247748665964796204377753133149386361973631761043693046310860061404251289874895824884871468612014972968892825777060893915070327582303709831432444780148053460249421130140688170870533311401220763842742106375426051305261209051653982303936534043955557261404521395162572389968155547213457340059403432424034831060825593008293950100982997652471126125591687600894644947736284712052219919013383351524092431550920115905489266980006951905361687015320786261954809107934095311996803818871854943571226765778104064226286561799292122520127345567204365476028424119364993072482515623443779839090653621335619640747383232690941290818927778546248453352820032104455491348406537489735891684498315058429926968793781252704446685625597540716889537662496101434166872973423506285093794037829655757279299241841152049128790012784721982254989623370679909625796055015376337910871870268221376426950408289679166156026205383238661646151384190144546650318967152188042731040322334581139414234400222262749311384426652135274271140393014539624592104028115333898166109823118676958767807812589142816459961597804777640207918734833683253850753422948216919773702679106258182582196120524837897569533141265773043252630914204595138865159934582310325795286393766127294806347495295099301327611374110622097365810084002519797921399017223531026323850700720657544552849803122376081059313041719528162819182693035828997606874782236437075120606880098185997368131094415898889635309252352476878887174232203301331873388009280227133807416998863810038832423595960813801978553358297509778736290651293975380847671343907306717474676684374939164174173901951365185949777556137452401309172670223371583419835942721055441737296768896023467089048073375980330252689616743336152814165948756789506208493104225018410337089898015525654676075242908826046844565716061566254051608035088055303166419663969266047962751005930173619957419020582087205127907063383357885390854425341292840391908954158782407709368754695111280453596299005389762234147121578310537070918091870550282121137771091995695356688762471353947783958157200651454240963409105646833890604615489005237609728938604671226456844105528386189383599442655925548373130603247729021351963950222158474239838634097980526733262021731793643515884102829872864519168635280206626568413483263537336284661153469917657349832057128887891951465960975020547740169234112522736657035901824478188376986108406911821066424801918070116210311389473013332598601510039850503211068140177630275872122027798507823843401182941091393620290480449675119704952073688514914895612724049207231261934121388512201786180376530742432291611417274773759384188323036472676453845741400955427089607752029437299366063141669809491076987801486215428611332446355958077237372044062471799460409923813098524912115786677944641591198971854537871775193653570358356698654396376262322660867435673246634797061184691798879215478441001637434171100819468865869680884414700989051554896669979331373480505203705572886691298937404145811467770224619089113807937159181162095643449224561377133795387215507050052094589925537908737589387825243718473457262529320961187260767970202216194732375391781288346004794975264982091948779715980240499882367362342969118815548517520914197534663185655387594922045177603692722476461655817826088490928964434120845417548226302745567640463817130680672857957195800985656924972333255812416935608556541597275094893661007792503286733648966688392335595407803296439053273966846768179265921594720853464941318402771083349827245792057230464128041095146190503885253376514734258837211734979231201113030658643402141231184391649662727736155522359384622857456659506652343135780891714463388199722847291031301691483675278577909689892417889936241397474771891986656034525958002183595533603073212604491305091456284628131852744020322623336235865638367613461861594519089912467635212664616090734562116995974023883329199135724709023067146248158683942451853553311688707927481574086787201533145905797954694624346739940368595208458965912855908341874917757866627311794116800495029335736253867677103071243882684570247529426623934745004498503490517131336094117321471664372079493582154606554744195195991350329888310884566639869796398834538221924611310078830868363501553410158978764829806782384354431159956547467682971450477542443781886256812175822778652674798265073093043167840514652808196863539434178206916086338245424234943552600268096892329079626621318471176684784681611587446519152613481453289816333878623357404278451660624193383362915181923488931640737656348717936981374239542496148341669794637086902230885205221913138791874593719801883875932585801563269156038041959587770055501928328630791149651096705970171641240644684480139383309991704333894610198941335502425624033742931374737831878395347522377870497177972326376533648390718779848298742756878279059081150035536271466685687756627176944433872818004700150972369831321418321515977501530928382446993486375106438063598587496410902758184767396197980825664786348379285631391178654961726719501826771205761795728890902959189540340685133481142290016654213904109059710430076418110067380325307127652628229741279694344970586964928385888492463624774733485454730394449349706411200734241058856246678911833468065648264670509899278633789799442292388643016071542370264729613091277137793167239198516965890215422316106554207888738187330526737393500187033326990234889492962352289736935298386992351915427991992397111216698410719726534880598507064873030402655766737069448995663229839945502206561020000643493541432391625483824684418232562024026400434305453485499335431475760909840387872123633781596140789368570342010549742283023550728071579971551264138727463559935076155213380153505601582885192409864917002669763583447209649968407292796101188917809766712319003070212443613865562889625844068520269794271719431851759839847740007446579654486983956618668784504022698654058771954564109566280785061822398749339188996742030676290638387783833826807372180710125539834671061353052726927778593005568639641514351982021272782221123679542436942511698592772416387655852395671192017834985864671118285565873000157260588967592084030456070379146967129844392578241799334578377681196444866607998583627998387540408390754652368464756356392747151394767875001438456208861211417966444828855730996883087281694479555688990551819631918863169119380004408780513736328343138883382888401609335675326160040196926342652997716150199830882042541852031641767689164189831822333954682516383586114350715944777383783025968824635897951052030407619807874409390881149994436757530643101434047281950956848891174440080053969098684012546476638612547368234575973834808158810936588347466315040449989586784830022081471787736872520484683397024913928263340199209158378746493004438682842679790924174818430936143474819195437157742627049541153439113253530790715523741732400012809982469393742327323449085711767692885507061300279923865293977695904957211698448145668141504297400235974122156209583358222312241967519134348800233043217695671521119496762524260385072766857527608011870002157652635389391760709324818655631637454053334244880112530636175328858056102824425519195162567357799519041695071751306549192239318654501634142745457183226564073682128048899051349905768022459744302291188916602359185716700012678536383764839861081006802579875834809932920741417100145723851740522178914211431288943117456390037082695556235801352944612691208726570932654196300800139999623187613984084790189589786061925540855888830517814950944527651879674831821064014684153641385488745510351559592659714306875103831529709054711429054489509313713263257680425356117114456655338717207873800187139638401205919301326011718118916366532384838035632588877950729893048054579624433437084701555764129246476570016730235269562460927816237940568721893963088935546863609090737079851345284298663334290895804807385539330381249865894662483860468558696170796979421997200718465490885993213829340380863833865287642218838158618382757861076688946403326657219309615884418505246337501688478468280384744488324638324621120581020954747215436535994491017581552557693945560306420708106156325348452639213831669155204462511955037912810755040291861293638785638855653159778778859708900300578441464686086906986324971602491965622121337326438219109173555805908341162958434615451283132156306306347005170168404209867327844367252243765298973617278624475721220035213656059486989703463457004946415936370976494499543101257244802393747226548884013726102156530056182693129469103780207784831240012421116145363074811930126049865966469954368957276516361165979722101399711288094865010929678114103000716371397416255445074330848506368694021628472356815851572171588998879047746652219746261845225327528353996746832292068117584185042527337532287070827032472583373137608507888045512947756222073988592337983134405575009493931461760621282808130295424124897233699590487213968317831009691602528683139028099445577877798192665879759986312332925847449055211975521348178009690371260392025546284582971286962107015082698883573174307340920763554465582660795705249704520063426196679823959716571282388820651252382676554691521662548144900790896458934669969563511053496256812003064026880382234883835573282465244390135335100265588944890687988848361548957976290855254791435691768756496155282128321901833601021797556554083349271035069654162204644629192937296955603137734946766019217693249524608930947812216173572422279146460475907687712287177354598969265642523873144537626493963753439394346280750633287050225779329068744238998370008742083332332685477904126566116607150746569123936667795589354433166339600598829214662448933446954581063248436035792284752879626757192269193223147162644691876440049079445901591773436949062945029716891829427863522710904702405893999676531207287617915822024332814722631532930953842521521787023153996149362834128999455050062758297943548750136479310615618657562056075400770049334386992871690712262321980800296212984518182638881829869739628444376553401154686662450697185754895752025957165232130670145981191664003767779271861459648264205431257127665572965936075118886294982116496570460188620980867989334288733750633335187456267551753856599095053078092132631615968679267359371832317260242108574537655013478500464727268319660651574790746059307403122486157756438457525948932093760971624833635064616055978432846758408366764837521497150557929405353822468686481961198706725778775302577513137968397597094319050395521815032952235706289456875883896391798513045268668277964135833041976931970961726184155758239345347964703140471184340238696452621615509504997672537130709521952251205978509748411021082937739440195070943801608555821782593131980679155320559418555512862009650084083051279824581349780557415011967481285243037124745225252463405739358860399436181150939317775543452666496006431438320157448684534302761258614586415337687373255512695609584844330661597390660743248458345549258446710899957667983173318914335916147876633353121693049393697505848343754601072885953370900134824438479837901193552921220009467159384794130412048112491492405884887817098708725178566947764686013742873369636813995685555196959607132563126991000551780792027247340397079655087858860602949256436501773870442858595916113446846936031222626167607137867439663614484930314844042540723683467341911110059301510735805890498059240706372603741657718362185189789255955452477273173961028319145792915941622566563444716827618204400711397913742316204773596457462931950512275385394986702525718180776198908061034104543198014652307576474554922338573532891662870052187322812598855261586763113806378284674110693873537109188529595162007360625622460190104032570447229000480409684856937681656966073805912675209330835971003759877636888541186415592177780860602522769520852151501806516366000981409679605026297577944473706757309788765774601435002219617170930482219057876097192672783045420462761322162373840130086977762986300860655688555429171705573020695283371604123877367798857474449025159252311861326141510834121549340287305888172068661253548162316617399095078698543060652317281574863524587340481554991419531947040107884940825975218996790684572060837530241080425997597596051885164825734646012150920065437009840578816170632175959231277975390893013026649224366205426392064084769115547755234200613633710439703206849449779881192491725942797790123533888658775989680518351944622692385225290045355934520310884440342540420061503076886822006689845323193558679133142863805147026272542596367713456797402426389396269073547320924972422054011491635179155957135822569419070066327785399334975950768574317426005529918055484928730664185176421195825802740614964881373041850185847792136179153560221024624532602278297086294451446053324720725507678775044879775905323762506522037281345030640624032824407109508394012759839286473498074501126831383270163405038253676583114017291752297038802001250033923783863862350797364307361251530014955754913514364575020300172842536697765053606459900420452106984379668407148413669362833025386700168627724534258908500377072900164361389275787246893286893251210049890220043132115468579673473728043116345797763897908695992693409039525919480427540007890161830303695718976961041602433009516130978658264776154912963122587084593824220062817545215562197768048211548037061353045323694060707753943738657958371535869219088748859679326051524968393574698484596425306244790019332976237117120587061116390366623109559865229912557862777031234648175611661493165837740562814986777324451015723364679323407749676893725854274823949124623822600006752641947538943063208540707838378932686057415056582555803414691659097411904734540491920768233942781510729735663160808607797145867776217215258969855800722454047006086314776470329658754751885465543909939284037320276760469450397516388855122882424842228351001905601926020111344591086609727495573310087008007217887542582904506400540887749801484865060715272241312144591721451054248702644809332354743545299943471586914720204916844392509028286651244628166358462280769019675279316871091351223641853982267628446384045255369979664738244466198085225193678600103733059586742613890524592644590965281788236142031493306433587728665044622586805401879247749754698690171687843086827169786872604720609646324440530431367871262834145748726701334218976996867956081699893323304229366145791793740515520666547095695280282928934679961734024406522004951523127135849779515847430473568276396389664586400125159543186066686658112457079415671078236421617033818717029968427579157329229040983201696517219512327516242918659779838203701073063518504200570324271593450945651230333528500325475467182771532012377770724834422743974033761560007759111153757601849132485328182048786595282024382859642210053820194357991904819930233012955589208662335704754907568713479266068180162884323028633351806509845255130288057818483539199942161205656272600810225841947083271270914346201393039140244832009041253280261944518163670017394417775585491168107597102794943588485729734287835571304412757198826144287778612190293806032912254127534369321861117233352850069108666785244665626617182017858602238604844187555489879928962646805582668780733403231788159304412182631259453349893075038313041559578029829902432908343054560158100864185143375286249663317582620101720020556642485181606310623644323495570240516088028712270723484046162423171284629312591942706476544719664197182191722043155803908424274168858330904049138537797196306652753347851850750282209538925400741731478227728530031799813485340488726969448212647671915312602852175424589472259377441239462555842744628167914954511677795531324360907366509514112317369984576777812370776779127194787076272589808042085362975963725657539148035667660587694613778528792358361845807307168404649466484637026903442444066929869308145309125187232391763277507154261609908526297930163011464979075218165815007132331498136551271909685964941181173300603257984249683530627135290073984187429788178964838822972673615164230050717923148612810156294429830561385186900311285590401274326381125927603360081913558895092785237277636055534308354816408504766448619045058539128364652410590497293012049804118493759866236607757958460791318412034787584503974808169166742326469023593109934467887593274122032162324493289437086049930381214891812298861536012108120651024980484974630271449006828976407147724001185405112430496114683320302687952522206726232148848621708591079641273914422736108577503735915954432458063719813677132411292999834632388034540608006015608850330039823335045939006581648672724791185786030540010681191136513368729092612080932576828209465201526184021835662121742330450026449040318905367938232757556442142612555305325784990388665579270445221578571220864011047833854582274961223963860188234297118409216379182735941186253979955415855538428065777582815076478276657582602819439683565595083825196076677703433734114501638822402545300303796313986573136852977614452167407359415631666280985977299811006976642749323501339594788307958102791868072538839865862773740602639887545806620893104275733343440099790615725286536901973465129599607197001379994671127181711096515383252278615548784593052254795769691032582641752630877933533458563773358331813212485672167596167633900354222494754359579908208788282918285067521722118587062615151168311272451288587166459096164484178776408889055017457998261428334527107585238503348814848753939206169965915359074994643016879754793991566185868640860974918516747439504292814633211516736791976382031166914213217603380856792524060220326543667688569955898601325575648546606259841168880896765399969886063715728350007290541223336433919544465871002748002922086669877945449829452989529012734895713442094001346145150028844090106332953942845619720855911643973210522757820265338154747150535134115178405212501855647809668931316510442577591460678953993049773715730113101194029969894589189475489642382026577513052206776556008685578925314503106292786272291250063432418891303788408400104615142941126009316284408338229285098504562245516544625387183347264640807660288635772249689222227354628347308585129156506047689156007382576854268793957323344132266912484854046317348848659773966067358292721439433796580514130377067246380407976013879744646338498675708946082108165573275596254554679489537091916376663802837612688252082925550164784628688029037227424569516532596210006031917746749701197464988102043585288841994712623918027311372283461628590175294171680659462563091009325180187274503349506313223556748362927349178854280924943964722413884384771970594851453279301563923460851060365254960942567065431574544270175976428151039773547387215445041335694888558190128699803305350393560255591294123642941725666293864316244030820088261472215772318168485918416777489699860503913423900059206249011211113557260683345567981025990172026670567721800275630442946308231052549900114926970503038782228327491314167704697624260156503208583041795163201436367640151199038345495406548772113397971348493625088293859745460530578999067499098770007911421481017025160755152016601192654792288986669818763098605493132389896470965943778030591645971399435221114234676920284376858673744124286132834626754750421209038766615270592793153108291323656019558037749912109165916314758349420713554230080455419734862419301219667802417316714918178942351964179178435031022753812550292304238210090825193960180680077178337940533142254300344425132660364536781843170822440103339499605290922831083330656823154775194281521371592926329695791012844476211309869180289577944795069553849895208454000068425093550252049298371373175180925933374265946376373364020704760871526578951129383180867410807963630663017419902654032421455651368974164176948649794380904935995145844421076075292453126490188979656501577653774156852244697453622641439875557370102069595772439010758324955295612354442044015509775649728270758698382743294777677491413188370815357634271978247471206599041733231444251744988062948801278499223770978605154731362196658721952362100355241580143234660978825681603271805281966438885751961218960892453802003141361214480391384521204749773813344534783584083102577979482883475576712219899699107862274293943234332144421418807614930620285459514358282730502907704255086518040583949048570977273995316287220216678092378044281914658851175207413489310876280915115670430262484730063470064720500979692485527769199865076639831551562628029789654077384282706237814099982763818727497492681293689945450630087816159389238948697826421656569272355987458429895553030437979956271245266544617311358461382137995244849161576386308178157070362942536425901860181998484602671795086542734867601538263021255126264363231939932041897071022609718020783307859264921896067904985081383861149456907463500038050408797977350854098849715647291656933092500736557775067953044519504530485918481793226973321119203305624920215464819687990537484713745323027710806658697034216793012994870727666578227928587780980287756188407207788022319269657227616872563773761243739951566131964638033275894783100760206011631932265322773516860904403509563218205487774579385392080567667713823144441312789745891432431218720266666242712727724844124580746715393037106248661344634869804795898134316991963221877371641982711790723803696644839865425317331183110277310437666698837306955586291807336156156057225332129190322264497692631977876820700306689887553020884668845933674985764125498634228082415532891761610096819056170801480568669407752462408137259646792680009625844336380044221782272486257577114049236768810670138847855970386378664302070971219311709152256638510667088771191955315630997578259666820992211765309010405097433018969480682193847235436564409094515655612164118195518199720821652912926996117633796950028150097060266570923745498229521660523832232301067604148262326663761312666522232439742491106583940725191140158589266273864797565196377801077084715694746474008297347297739527203906071317517427827857676084678107423486398733170666601555663073886466176418012112878233077060269922636594335633522130303256500579516358570312613801990711238197088718232650596971999261127497776217834481016088553130821865871408816597622104055132782900889293179218325096618428257970700541270955998000536285192868526765069425034592351892003422158344245596357307811690602983946270208044192347102284745272666728807649943038715527948922382341559237939603172253553184797859235429795192886979825459693382347391944684237874677987828107726266015012670086834765744914024476258098193822167198923611237474395301266247346466124266337817778617295566282344824701757598715797684696788556142047973671826989200357001441451131118118819922902043072113994616995889342700977280581234014266596022309168120891102059086084219970304901925715387460803785169018315834047209270756731739620957300781246138595348100393934419766557838573500649137599066643974648385542043795638750922540009584914817274965081016293243546475142175287106726363401853938297523362441167064340133406395877259803260386191867767834433745268104160018304860291620663374246202287025744726966138940200146605798697683274727354396143190865134701637895111974283086849472120263645398248260303113556071350475689951852269827946274575311484763756560855071110931277903357729241040528722525444470601766450943001603738743839853200732987843520612394336835081578449605203896073055205630955698028345184729382740226792918138105557933204897117074449759546128322837275017387398872846893524195192682838674997069757422770053450080389995505548991686542781941617145672924243964223859852730999795978560960676150873416958393120900549409999268471404982879376702433022186979943618917085854667119783986118136118354566061056865606849699247537696522441930351386618207335850357271611557884939950126993485368469513665119050456026246278419260763716993138346768497245861052675945629187795117984371073193058709002574229975253558163387449312764836076519222303149108308292616383956380098391841337822528486657233050170425623933888231814292126612722204153179674172400388496813934238159608476927049267092637342050485647839889460616970095531369853800398450540907450944596918749289990110978489063973631303390953897401873880331086078905602092828213538439797288547820282057587184945484991382547894986796240425800236583371665576022944851286412308544546141214447156518516001998792870484366556285450717032945932024241822087429487294908131327370096215144516948342421675178901613394809419183111065243386319872049707789394322682655488715282630649806963429705152516496693253978018002743963365499228519611077985130307446626213062603335177553549706294593124209501240553541414970326502007526741844617655672019921285352585786124306009158271051723288212187289389735073991155720980798697656162506370083231430895936506989407762099785801236624726916420885419545304879176900971487570440003429996294265760329774797167884872227079757835819532752169168603919847586804921213944704792913556591650479410829481131398677850467925140400486003713492237411783161140260295873255251506449261071066784484915087815196220763670425985625825093680722449873379834914977788497797887979876946880502606824735279696402217277989262669624170558147967279972568763041077264880193397323975153269266893337631486534007122902295635363703759772766689311046448536741483416067894185563062250363178214008812901258317786314051429830276832318072069198434637558433660861851823407416712214908268740582207780169665554055199681037293152417108227927805701938791469076604746723977535338576275458002321060703943617488639309151976466682405295888725931629608505303137371138348542608873867781459949231959446490096580547187502978132716532686449546635485050600734487378378644185457194411743036705740181290962571959946215546123365168535345865112602575176789608336310285406170836585015970610333662407769568025944318235640767316818026790140651752085865780617249507118681770226920236629671026328197172628531414137696163584139589408043016621295829239050657820816146178336162106305108320678154267060139424006116927014509330767253043038320928646436601308351943252105305339439535862004277516716722565209219330840311751783434184090471377680341565962074021712642616780014166758970197172665972750246110064303041707506685788773169166061586075685590592497783090950020890056759862224779342549534568292349040042493047625162918113113176459220377456120651736563498224245015443654043616057138863500518820712471502028832877433832882673089609644087476181208531043181489567117662790764430803120857092012481121668630958894746410527567386577450312862936469179772064984288582196705311821497132057407718709532942580523287426653229823572925875498898250827111997964974413271155577381633695848016369813158024367043869219270194801293234716355739566587665230686830898745690563407497655935378051523288056742642097140001035639404088564122205902593140483334637283482605256449407178849775171278584822317938964189777817953472860528387823542421898835659477525211332477066844724875682813800119029608510410541763029325982915894982027768676633530087852867509362251662352487484204281837912143649930316471454896115514721809071291203721765710799246861371613779756662765569608939120290750886371727105593422618319920376527833226346603650178922799554646731269663953777806620369219729808961909733908554420418208743920572247425468057237409428191176319480027306125917782865472292791025888105716277358423515592682277655026070639335338183642086285479077902402248210618717077887773668753100686902175581937275293352399406368796371549512377207992421314685872324887025280116463839647761905667853814726895282490465046173739966576376344742285444920666941629624863013776361255112998879454076135059109993128087830593326627825353154252049373733881854559208834871461366432100197146678348187221229380442126677051180649361516961508697649781687567981606188164869338796366288900884638844393516704886897840893658496394869806623665615331124221780523138355568469807564551381038304004776528732590345841169919213253858814465928209207837423207620219841129499939132583425799276726267135697383186729499541857868163561809503092291755873997194740098641328841155048331863732396057703639067883206263482285701636730374192621451831881626640527621591996665600319609706817876209556135746337646780464057910592805205218887985904998979713032919151196658440680665085877982307944880454095168007017304314134972776911917165542445021417153814929449283382633451220930626942565889965483659914553543866970406149010564302921561075382598041472750973278541933658616590613167534614158030169122961162886528273003996493200599818445549849082063635879142338543875416267707833112698766288917690906366182393614102076533763117544162486596766718500895743936872089084019176626045169517891861126693011294217122581052285756021677620602915831895719939041618253435698198089057028394052479042160260031450847185470639643869232490509261848290567830365166085585773826602637396243498239830234162413184594077041191478372156816587029335233867605129553447570990550277767208552576688961325783328614893941283219686166295705656389564595619507387802009322588178191772090431923668080265244400169121981122520918276521603895865652840913236199112766585962041176971266250604563301679578120672041370531244284161149777675404715126494056562296518238322450698498522701789119265454906294388125768192336245137548164882713088058235915759282668431820199910789517271803820860899329206875036596779408655389948365515354965958147982221839170642112052976767297170502343992755705845242613456499111338841946901270381814455804859451440108183742020994327606115202714097197779013570171682775413723366323292564271739348693790310682674433645031847209613843779344607319220356879947591857929413479443639819592021749150872480194473424324918601977215172295582431221365925633296557951173290510469785524139576113287119787221837091447312711944947421427421466753877874279256026552018550105358332216999866917703534890356586964610441448563614085980035005001271941430689218281515697439434310275311264296562707290448338526029118846441898659436920747420104141657783292130202953649798592000261136416782465621505451102783158693234410805611664705632354949903582806452083838053394962250117019327390464601304862858494628496597965073415616886451072634853502577250548617655820252887050857544115241039983580197381251974924218739120681633029664713913980583746666488708934722616241377906294106786556501798603534291685889111811255927835690333333468169939358763627220636210440229450833351903405733832375627088658349029683640029147495239802218117506738506478032936861376692924131004451899367973205698125218490334022039694708929397611677815392336954534588348435987835538320643995555080441675018720355166205721336461338769929370381106085696156701801460368738217771142781486883281589528229889392730849252166690468255172069235183225085771534129192226261748383156340095029616283744593831599430587176673487929583468602673175498984376051461635212622256787869896122569466808415305401367749147176602086409959869352062555207820762606393837398604418631658370140963796912463115643954947065147067219588918187503426553389526147559195880799753726872136630821858833841614448654002334940023771777287825515129230579611845748074578167918684216676908953487926819205876301361839063107795430590946957261950486615046732923747706593149104996869146876907747141834601220737096466440823583115395315081064720027289459073721635569244422816720488708036737915300020644496361176848206187284738106433301317563562680993692973085745447188104330022575526361579537116974968069275476286442487425505340626046966313553282663642871980020059163002356730846779002974536906164291438795613911769994593334190180496533921274034459098706664483493944864563085073416552855558153208370826816221108904588457081221388154722140654318981352244047283410548947002157246532341934056611515157081125334339031914095801419792972373159861275732070320490800710454216857881794605564132275856322651760072551694850837871614085068043066975227056054528427149463591295644955823149861762304906897969369888859100412585467874995173794067103836510018222492795916276638053691964105745040811870716778352174641477018839984933956986869952210500452559327261086369151786378074690375327621864791710143896356262046357468216376904349462358044776365864144665543887104127413431643556904112875969447797952252413791105737833892990192689151448020758205677933996566239456535146172872642858011625585393324911034537939637941758516708408008695069829272514408968793668806723588617591923683932187969541067216740197990417293260578591158827956768679311321844169479813708370760844128522021604117844195368939142090882613080605431529301268600617226024967936624722047231965203263763384586359360550538850969229442687045194715512272764781385833142124914707068661133656659564181042729007699290748434944914038916719448031249361281834301157939585885218375274255050210793189973643253814019635069687248204133533768750504539750798883786887444763344523024799284909994320963808374248916599468651283127228955229704782899495921256961444774081302736144256166041281306558161769359577859629170898143903249479531255720353865926665233922402898287834136518391424803064009598973495915437391442804525459096064681890357684186805025132501038542355750110366966548199552298261166650806949460598210609676403154223431386333380808957587972395273888753959684095113895926399523669108924016764266421188223290285023493758284382451829014871506204779050912744981782705854307626964673347676622007415969770135860194521330707822421680550507427477317238587178067966967043041110302368348794941956988194261919331618143974912349523919401131280152307204908086263315167246177910852167958472425186245793465826445976458919019955205386955066606052154050189679808471287633648279532460680042795040219388638180782009459433314016251623710206846399714981958407846107306061756436688473526054134786838623631867011683004365289164800660870592293374993639343573685767195185919329328286790617129016793824880347431152346734431493033103007576754160348500631079142106512047181120870406644284911873362751751050005820641541044517583280162700686306027488520827656104269758890729734469136474177755216994210151365248819779392973290163997160039814330422805821623395188581655877948234003605996426293384949843857058923166192546061898106341066237532997771713486531044435849336501556968255412644793000602487070183717292997224734729563486970468926404557023231786634308879352435727692011006677317320022727618487354005020736075614028288320557131285722633740059958205797385875954408064642175697126898282520297416950099978029970301515967653468782943124845374744032285016604394529649975651729297857945749273634959302908362941514723982958182943492687181560719293255685035123314938166348418629416942916780345223509551376255822356548911474412925004837631106687170039992452644000752709698999622681969652758286945135496293590993426943126994017171563762150769200566844943445051913573989403717712143444191499374549551002215596387587352236569190424624040372431857161736366876250808692561419341740568151505644183385700166583396160087038145825237337810705351111148116284383312059548960947665606435067258089869663753859234943935495475111657549080608380431466769476792549471150417876450097118202470825464726430067138379889971835358624673781764390189104851621026640581523670410982534593722448492293353282472028904780892251158171381367910263610220746300720473333594399366298339938374767210109065921851922398292687536879024602303841140142684939786387772013351573078334065376359473283814759864123665734468659223220087297610850416828514471274348885578995397998760694606346067827068774430061940011153335683592121831215287619934829660329316148530826757322986535216853391950475254479635855330930986667099614262297260653187607853734918588437803942749435543440611445399148962250286877563054352559408184644730913541457392883632203911005559066101774685501390335794432238214178025269129490031602655215975339273444333841587000769440529014904592586499152118101429004984078590476841018930139389414905096601871769425150741977132923541287331283293859353113139620121719543856170408014647574135580351425292944393799288378669363713924486664800597277557811010969700629987951086449202431915754124482241841501523536570163590847893334826843711168112788984949927462798248178655949617029175979894148383619568614933754605337583715889668648401051083924537140689157699586129450426663204960501836910544880089550128439357815636540919794200034739910355920586917784861382604055747807624457110963330150755645097467459045935441555001292645959211987973456335375384393270183682129102481534271271842036507006989386936896279317714236548790671132409518763060501598509669270759404433120663455681662389982224335582702158659975252334713347302693904998017556701527448469312480858914312731293803208074469028393450390434517230433658353883183105394033872172568346720912151910316106804899079237573011196085086778824738267514145682317289456088162451107384677190367661896891625665289979875634320303781175862913736143573785217704794104330615813331109257550324156626917650299554689682141034574044898967429680923572873290588710673933125107652912466457473183637168991784678396716174553081805895248215392142996218563647865162932205926445890958038058463064732087754271821672686809357377152343821014634525234208822231824018161868450249742819412022947429995622319616050441421304286689718648947761953184146296312359310125203797313530153141779342873943685548661958148093043914061198522698707951139145897610262149222109535514118595236230191978005352540420263461889073259830443079552152857087140145059780896383353723355291917700849795253887879289117873010410649818116873617548180325274474599826214619961005230062114684282761864434269327733552745786418467402938536230256998160043713657458302149377334030750942087266024306369925705251096860358203326175300523779387966190152200449657349007388776815496668607220867487932351113093470142305081791921026308198856804290158769874575761688034864187978751367037587142823307891441583637778013882334669823535236442348180783585490073245719188691608843058545610249650212366431900836188996636831564671927080688822963368373675489730109024469011152603215133761299555012315005853227477192942566849751329830602932652204579721625910644824198834547297829308807051267106718099473590956785980670699991343820459179670466604639438816577048158865650386264243328024358467569759267094106138724623623978737825835961712052628085074957864800408294218132983014757050868745745307663036224999127043814463073169304383064998544194970947898932796447168167132629997755406007890671397629192942706392721673365380224680317956468590475269707587605965789515196029962672706337005065984961380584204175416389691208527162606960865878999921181612283157201865260692787896098106616365766370871741508876059060435987332387845112583069969699538102618217247873853240841716993173423483733603994161419955424905413051844741361198685016070563587213480013049529683172343355184092714748865697534874708792038535326505422925629705710037995364101894472380380083695450250453370617039443859048883757705365687319020152642976457692836169526197982721064745654014445088002274237468467920034809505083004829846450733978716617383188980335242739152001910514261234578173173743892390662867413576078687889381816697712212216472534410938116169702365778416034081598250558142168299688271744139029099296384308191528012168691699937846634971032630268513287285078251594585120925411052600919282451168187915973126992378119475736677793694539948756689130777599141848677358707104120572703772630736535161539588618502128931390483523821808390185615249304768906683385494150194582879051245321095001159608547820140612913733864434838411951384386725245511638392422755977597144971774406029147929393007632164709808840481667170708242603569671528719328945180292668820036161134487790042100649794840162882534877608016730269464754887202672116553582885291531862731743259262180744740011188075334400010607551026734325274645447428312697078315498904664944230259966024229095502141574631195734478404078446896496554436480219017036075503289679073332447483722594563880422229503535607832953528432870658626619871819064336960611939300451036901097601804371505101322222539571510620422595936267320150936620439410820040065916990831575278888555517757691144210855523281732774495437367187150262894722495554295063767771905220224238043773448223989372423898456530416964758098002410716808293782462491385639603558841429895717957933440519662761824367305045506690722619534070879746750799116848730155484899611932285211625361333509290289583712091469248267371159570947432519731548501637181170246415517491542129912694094321194731092614147302357726251425875491264726608012810193434020250568613384322092342518578383341846885704683520764832873908141315584374828952857647241592423288037855246375675055524097275283149327993318561860012538526775920583780744516365253825423625663666318013691989148996044861870829722338828910248080705331985042445286360673547139560265059248374557544923262607328683000559032518691806145123717055901937014614479436493113979902511219279355159599658107612547418647181410935620945382612267028503249994993745068822773083907141613004936945737674419921651938572577977279142501211125451723722400015727898364161215471435060820153075883099903949203464765276116021267250319337601542207307562116031439608989954036241988382428307417239231188819313919640005155535492677506203824369373090171069755686919379027147042890828634612597411339350956732066899851934830487441690693105970170596273174388886108518405972711380346144842240981971473909032091933602968825058901413284845653982112025681303411579599876115321109400794368453235444102775384618844352860024738358693178944468896734598075484231268817803775003069276029848127652718661551235238751274868809219097234140321384012729053845161381308946613755622958326026819189931716013577476804338214866120483556081904941112601158412783671343688533032422642713626994173757372045340428293115896232505697053121659537824978374629482376981542800936648495135221289808504847067652354691104063616861352884001232046270790962633703641098690855057013955297992829103522353830023363740437601305380693286086293444403055566075381816903605515852094355045889785381971145907025960393659493072045301915976418051931999089247681337247535261334142221597419363429894428717196237980350575204606492946686740689792777922672334294080759359000502916739358601507570504961176512091804025029260880143648054884520060120560680252982149335546126823931239299240541734568230006696751832162423448920781800529330213156459391745973094351957978371658483417312416874330255026088783458992892753014748269545576589700570872768997935447850862127413008837223447968140070721993198711143335426560018953196503522159542375476086833971331024434838727351315202028688940904308921399352930690654098407219527067466812378203963605896739140531957610823563818485648748310025300062713739483374815680977735759390008725831980851923013945844345341278674574048989610911245234475896239331264150580063729057393168630654751832247333099560162419538533705569432561936004794226024125712575103120817683810068721744430031854559771702204706595917805831196130163733479020640444040716195510336090327057748272036037893024079645780458077034645559889632849732597801611617074682566137537258937161247398012603783909433254547550751864690430158393214621745952789142104738995048273152456791074452098571955489193677713704672489490344672724613110153905142036475308818044236346389594313704256469039960709573352145858902596426787489989342088811973086568610531655198054985586070194219216431236524671728162591362329997799642190864235320715839064104444139161258681778439134790718437805829133055571326078355215113433534115426951148381138797177264879077742636001262526517096322694145047506093814530889589535917612430698243130200732282087166241037237848934738960878606479140984931437611527014238633632153361479367925545893422473435426062244600763973500733681755364778339612258371864944589383420387533391072228596970973090262322281313975834376707557445399197386264968692000035132370108500932194684663180891093052959033198358538373278043018073524380180835828034360971736469423428526059685741098297924814773075665393359046442598417184342909691607989631152784854280918727767606227824459847527124080404981838834176045715920281295758588152636131362414900902248692008776746963264535720749204686087368712505364967989055992076097773370067215557344755092248248562769339241037947067364203570001363854080778960453654759355702825182227109395421595868298928617949777286738597959862772172432969108760514915846519691126356923731865752233497046681243787128316747162655467447447701622294319081966831480565089043710379043056355460059955161036475249093659441586778267575366108072653669260359031314342252139700194708223750423034873995086939168507214269032808895297893715421817036731674338347757897380127521083029093446628881436720875246808030638298512025541278171450714153230430648098492459287925106865992111372214258397198640629649783771132612434281358659038891799847805597775487781442573183570610668187724759720595481051852002311209861756993436043175953732084898220234014654698054540194365192318309733509299856630034103184358100621894313124053489825339867133702726596361478058755801483143966167845421552160918595607440663839628113908609091255687890931735237634320440418636785068113514259374105829916632899716455021127952659465197626866335241526149530730569127796362732945733146279987992907130097559893467306235395214304012222825420523887876045402943911264771687408217375014219135569461577562632196768702919715177374972499297339651816094359732323776566621279743691214667916213573956826795602280385305769660923432015845092705766758802902532823556059808460082430430727497177980474678749700229481255777785302500614946862815126020902392718082745353073281991078772634844051491656560229304416376212387626310620912006775342756776990202046185456443692004810650821396505782565043555704413887037031129074945119609688104916721511755173735075456914594078574074039079288408035815369177803718743682703256230828115106756199629550919132069363268011117009143203952799178140235691645790458917405570447424026144899794501305456979199371094786859449371394647363695380737581937281757717237055214401042407578634712367366883851487768933172284679401029238175220118489501452763948968179610221114431926287912285192329983684591988483243460583926968470368223768251610113484145943169020443245848195195218639535782953296545278874721168291679761369543575842377350893660072834203447211440941162024880412394958279444911904122403138569693529895920665381662393694971634155472390725899430217006208408561895962696945335219852352422921201995224863453832490945632324420342986462989657637110587815076050270019017355010822206931122760870580498239568124167370143905972689151833449444308835924305054952283214747057392707485168785318157457802333505441089872008393632961901861067796914779159017698126102227032341361234631282346904694762385732856662158479076360366207946344287429957376649134060385534820592570047826422161648823575571665004311732666578355661230857671575292061010219510644550106783700889049476041918703579639621457684607552830143581384627168495718813042473485051019151225474214126819335040149926614879878987808057780922090513071120636755904543554822007169651691562013700313012598505473693656072768220892640936346066390221366389878079006128350232838164420499306804963722667505320192451606195568406106173667280294711493913380216144410737161158748848586790709236815069426899010911212450552372104584705972558335809202276321351451390909600794839522013421371383394096485688101557574471287004835863127992524930476959713413549159520831534655736848438450924210611572639150872178818105112311848490458561074831887792152952927455460003286290416224261830589734458277972383624399638903735911300954999100540171416091200309590846165048746813586292574325645231960255198891738599167632901862398878430809942655409549162907370373864797292774238116538732904187131820204127803866760806178639183708096042554743606438358041025438511001989154579146951722409784293608058484981419462253025378006743719618779570500089877005196671186087883115349575450252548031391415934309811131969876856264395140481396120327460315888740683844092059407939539044445570349742799644826060394799149810198563623540905103421611181824026148029183072057474122219101988200330281482380323105419569230704819387203296304800080247907971236362533670424892582726726367252886120484074173167711065503913998463935176498785982574901161176105833169475624753861673154324697412343886570934773453847450401100614851103696762337413781481235047097967906017793603322857684814228792140432379890497013236604664782534012609370738422995302388315223710872559433342036053951908269933662020577454364872278549766688653623759859556710557677451147293571470069935964712574247379039008432862014930480317765862879311002138204169827879047985254550685554739630454566793444260075419439039229841067291950580364453073920634432011324025387744754751541195508045241538735832310780545929605439275474433044193001866402506557220573687788834405199060410354943447829971902499033593725908896577624611521030133408149803420095257162009175569439814950489912063942637694933111083354987594333386597948315367076925871136053964407506409558857461155116369234798574601094606589540769267418514764084003937484284528621545638290434670855921634265995660603873472119124041228196165615798577189038592941066959958531512932123730238378261181952531566318346661819452649758319024439302728564549167576330061990047280591243223916873976169158927280684223323736862785592650498990535826066307077663089138939141646695496554125202438176567321332113049556028970080963378508147430801144937313149366171173904145996724622351457178161997004818421090922113108923094422793078055855392758873890491651750661812997771170972272762875505064874771432642709010906231952268631785320887551286290550345895455793373792395536857342466230377196923201115378294930800699129255435383903842658257307779718526822656625704002878978419661938047989846000156793690767444271479809539830689520301005951238830151031611386782003454294579581744879875384755188695458412990799039272529161193309596289102886605392337499001419925171563406704545056373691823934163547372926504408823309019845873677782552055894683192091226362962347966310547972798074289669206562948638661615160312016251874007851700365915262246251762537459324740234794726966444181684477153909818609697182826030357906870059722417636816080920495118340372953380990053010682936916619016156056970663208034702750733143414809776508572233372151103338269898925714358654097088892558267154821546439522450446158054312573367192737058235851554178871779370695907678162739966233857579075753620880261591855495905490059960817069351689294139281772069313986213491879461216661327644130522398228384861868928153318813202321145005647950829687174067640369823534211651215736755849175065261949166161889732013408054131701878960199902827504518261362940991514590240956977045544104573063626405916283388468113624413510465154433755738576232469013793025305283316410259002911648825768280295151845294041336835958075107332325709116548195768347012958493506349060524467066069129418224040276213951292289572673440085466693991042969353411468440191244041717213400689312052199322542696931768291013246716368666494417862715115525366834257363720663544860495279168620750519324123651461718824079956179039149054037407866387087772564862169923512923342282084637324823369746312243826942105363497067350222060552475618205188398456755406495446748625827055047392692601127122445238988085783990057381175058095851353867384824124693484041306871985858402906188682002385571286206910672923807745410787880666666604543817872296401088288701667644853193474101505967562622296718475765037785918810521778708537010118521709272163849822960974483438126341559872035865731301458932881925799423014261348949044614099686380088135898458069981612965675003441830820439803719920175509271771291519141336682220951506419738833948009973117070743618510314740255037951001084381581785050682786668218997727155808108909916859020226153593878975722488575278194038819790237919629168625526715542197057855776353925268386728818498048700284531974103679127328238277855348882158348875539806830098054699333948391928341061464326842630865830574008768405911374144881710658799736538270246497857104974296117973496519854508682180023931121094751778131065234410599948053358777011373817201224260657234697816938069372423632570120436411622998304121941295610867258260376089212289269011908355838217475833696616991257659693692225723123396368200638005128407944633486457946517617733071291957905213310291537324100251398691680887170358818683717016286695364096716301373415674276804133022707383863842678170133571522340596376241878838326545569987151403607493032695572638687030822535699283925063418442406046743050350384104431241852816992324143772248506413120619071692759221439847229855288608774671646289820355868017919065846434392668287267369073040421482128759025917110523792842523667233800835218341041707701290800535175767400009713415258658823809150501440115379365962308582650770378660929677620451798560854295008813628949136169044495995050965050130399638942895431719273715780826232908342635478372434684270406861841776407453744024077375727467922306073711791123345420320581950688308081094491400355790307053175918679408973567184343276226876959882637716976182080064526362498204589801319845783106741368745192847007676589467603600606102428894596859037669932500212913425097165026886546254689311829279391906059396753951055336632577099269564255275180617435003182087773556262463773261400495669146229787887440238322388330072518864607228607907415445687032755516474244009333303621259637759599462368231605802069965701307213485452098730895813502547480956589381495184373624062387219213706794351237413650642849242568998347503630353401047000871745878877811033669386139967380527090762593264015788271196912564977725980815104931580681521102124372625729335007629586066233751712467887657319469047581807052052352006150963360976638294747546025280815067356838965785869374442264035647969096755755507568750090524894711965505166552480890686710658529496981752022280231955665477489733577152896780860726790177593479444215198369673983125773566284431210299377056140630838121576523835630907223726444007141971904509636793786277208200681682580014202789734388288186880704585180442571513170001001247103056012240537689481572117432226493438693814399976139579672090359372796070635863090609207784476286924033379132477509278645103796080026407011533820083470859373237728541148444911852260155776973887099750352512241112885574298529739961825177924892563044199957472539906377714267049661216866872819184599258084468217102443149038139359992350480765034217742739684760708666890648942404921820826351346601233911075628094895600393891818394442883529010604340941373906152320598716427991722743877895731879162377972328729642860491887405426508599966743409009638381084707442803695977232368434295536446832444290204256135993179886221696284709289027403249773429199387121474038853359003059181983978098203700543545053227733337104539775312044831236848259628355588439540017001218845266986940147064006870665413533199002103689256414774172617578501845380443427315745985216944186768716122488885153567684607517509167289542842001579758215034534735673696951088227700353975019051591036695039294368524951520838609337211404612487772867539227363294771391652552472745717271829824939280198094085913892442925986362682434223568369567605055937419268290212047785063385654278134524431163666213036313517442916794856457369935898595298056365566967285954509143766855852680323891674723296809312584789179581566037834442880784256409258808419815531080138934870413763688577208175726447504098670925371710211376623356428377848057017755995891814238395965607426318981253049139660250833945843253422726651300802919913821003118146680521237597389995550668159342856140412664738949146235049668909205366981402887091082312766920078996402739929792502241172344979266844592173514251744310547169176830963432746100947908793353193898568849001204345585286958396784201332711399905453702032195324824867597261254752626680562100567263982671060498076149846845357963746366639461207154750525976466875838616336424143350475572243577015389348960193301877560962352896428581272897509837610709619583659513921789491645292640562501291824558165322974007559714740380535518509452763634627993111340082731424909918922859925246553885333676642376838200179275594836671414548410408116280799758117761667412338938250013985783393286184233118103434244078322690635604035838436633882718562994429950682674661178249540106833144837190930297876589836547707736384691256773946544002650428868165914797717553098378943581227009601045551931034711662569633862850973352401149594337597191043503606884215258183676490016434916262248022863876836640650044577910652314260980212389480773880011935475714610588290764912217024874805859782904830811099977406642983771127902470411185717230971242426525421879282915918332193404561800337526919760359162452527521696493493735488247926370186041977205785855868824876127731850313653393702849547714543374228675099541610442036029170799425394910348791386002837420710279007764826525755396287850946843234983601891022395549282542824888167852760283612388611104485260641912685803279695409633196416983629722824210570306049477809683796294652242937641028585534030112520157446510973465187152347087682822464691415339766480186375886875062469296699475280525031146482481513801679039398464788751590448720700076404139110350968548208501619391784381195816053680985206906581523992402702428374946738783472749717570806964835711828247462581469060176565930320104329655393496215976796697724699577507813272950122093799944307672132804001928226794813569023068545348515557861092953022358156232240512782269182784235182537150561872751203457993980875353763037198030868650170779218694364310631742791413495869854200910507681737871496287851330869614043627957359631224054910157361606676860613786484378203429504350784592297019684944715361349696444375015999932104825210040744009447776278007775456888685218504393453769023259367963552753928361353327546267887829585557107223250262427743471278800995030312703589810349390914656524089909580483426057269330720972120453920196696328716874427687292735452228401234791813847202310279649886488340167191073638274037665595954113044192196144343988833313584140956120615758771883987039158715380372750394716970659186660681922594791960141495458792360421695300915431005799798864986715210876519950117822750532667628565458983848999662578268861252307165803811461622361557881642277742248758938180097447700587972543221476853489383664904224666457218283735989511785199616228550329803144148170383483562714602179940369928262428661713185342336580777158486241715275346909740506202816087365273686581190455800423070556306015438296269335264090109088230440752092048719343910100432673309430461006133971076279941762640522683038194677961284972114814682814825125306601576988317913772727952632688988759993523506473548408428606038860396467621591951449156693864772597652978314003338811929250943522666901177463247184217537920378480955977494929687338778032575717578983926036300824715555029757585082614638895549685603815846755066204623024944519687243610194969715126474705019619912529640351709570124016299004383463443683178362309838202573356283738602861227481765967091453201544371443142695313307948931385958483041277697125563236900938229885719050886898007726492584149941488685262870250694525943502056676872865564774601270412375739965451910590314108990894086158334981197168565897376405086693889502806542027170785096759914832241490592856019676728533155631749786643830514430653004962550865778222760499455648157013749977738931674869533115869154234096833691646868762308688960670789713619797210532186314018029545010221779878587058239580064398302328393190676349495590425592006126915940508492903192229862005257822688652544930373819243035807532943104044667873516144836240935686744582479578220509283410541690718653088392794973870981625083489225679386825120754272009900249026570040706747669277946959824126836272438733046837425175605941495291062174796422931016982792705950314007931518062556429264855425330694581479944129378256952412034324666183524878537295834786329973170315013006349175795112774429598174781731896491805839965813489257655152686819050757142070836493522641630352881395850608753972867172336329529150233028308716281120936196890426243382652011047663955459531395530197957534781880950101020593867364671286217082205615121137796291937293571910740387641991995798756916782518535508756809234253579515802139667219593051610145000603346483521057670371364379671709306868438780002233101940902944289223292874841134241209964579717170229519964118919481827694716607087530568650486323145122678618390557121906172298356934975273842572054344485584797505060864285138170436377262484771146326151266480326105075889129082455799112944863439361693171399931447541880228327065534220302446332059557209400909159394085161012445185097690500540819160430867351499387183941016634834301900097390928471986223330670650978168101014705970040357156193954707288929098075505169453318698250533600169117715086871726361143925927273049884866828017540638969352443677564198887146580303549065634785067071684543437509169258058690672719951479223824477790613990932896116905530437078958729233896278442941348813696504165198394861807718684166020785945136037374423585577466555266353963623587650853592346434881369821665853034223830097137030878966481778186515804034930971308821133797094788630833622262649574333697672432314286074267535067711603758789877240231216559096463700257771477748917542400624150305046648158580260855143060257189748210747185492577453371162900692527758067899372527173303156465093440471732230079479044121799374718242321492707815756912410609397397943145178556631112493943416374643252284766757810292970811012182121461246463978590176610360098146888110195114140834251150799874457970259176483346189193597647455386188185655432755411724901114302328532993374585242439213313207879378544037743378042561684304137917133335853882260155668011920349990055435373976742403022945921259450873168269116863217738322474076376946298991436677833311285106017784388355550106355921732432319650039159313973416441979909009709078085848595268011277501892796891962597101388818586483970821618646182182161139001063392480107192103451778607491732339323524791905011928225230440641198444007092211275922124035511730410969259427388347199735949621883761193291176754220007175282054701648693917053896137046527517503975337490461984203740778475370681430043388017709566365396740830745137937035247031744772278000311724503286692777036069292686807646458209964879286423457411676460617972457717399555739858449046252549398407573722856791188540820842338314648024882304660950550475582448461235446691467979325036187127926211055727982992227407364867935344549111598421125249854731271554463150619479079802533227022815176226047010082222879921017966396303938653293266426869920796952590385680856748586382701510521885102556763468350128742518377598379562003562963668018045090673364434856479307587615473273274710745335236168129275058947224939742211422131581651376675024866988617146248450422894946600073243261780883320792232720036822775464133666370709452499833423022402977968724300435901817692388679149498398392211964870144495631299459709079689691042824079641014819561527917312261169381142598719260348488020444109475250949917511369223419233241756475593807231191144624910063239210253597227533253528048497300321731577004647336204362907412212184901913543367684858939590886629061542870951711267153927990473112997506891906745712346679790837878262161072483691374689664851344393419444681527732649206692910189784411610202600481033002989460645235830448387360801847985760990530895773568639069679297568716323528495404028168903384624883316595330845422797192602718594366093093914213115655404036782837458134929521925899746766480485033967924490145366086227967573548563239883282463303575224227323076398154916530203216893813028338962933139069438942715813468324017182646441790373587865338081507224612775630959046246017267438530452343956225515817284189054825749430561068910807294179879249859664861275824372317024823084850377386636300304448551934284099162272489485144561282405647960085653616333547199241093430495026248952356432730664702416507229022569532061944207750598247649069564786653063205634297577017050461952299923524322384197906321625188955117287650260381986342981412036532116902895060213646841478634693046025250042755939985912247861889363399653927041271017323198253954565779813785313001818317968593966912556336570053536187120390811891551027300038763914312057499119246489880465592379335497341597815991392253173083071857769004598551491893983742507698470858994890395419985950866908835658763003057885177652027109720969635612982443218925292150339622007393505929936892418272675490053015810457460815724177056227455328422995743817955213773780093902355527351800157234143473329190561606634823251845880322171357962100795759343248872970307645329607501073105992064018093500715211336383799755033891991251625779389240598494950222709297359569799656696602409422850764018966540286993996932115951655066914896455272334044189817467644322284416022982626629129340366684911422681147678551258765881382945745296629675720207367645781465783854195566890651844712173930258777134053901404872842270311437195107987019945075838033501761525370019346779128540682103420227113766634557024184787937968003090767965954710670176598350710804496070908933791765111734446539834380162138736749747948022833187800624060093045238431729726229598422450178402756732928166308825338352698048802411485948733654292454289488963769570135093969819688258607402914783642702772784239303917906141323726889337836007262236353123401614023981088019133800958144125954046415678121303405480110177180025013487640291017469371102645419807850377294489769599343397560226163175462569115847154342004846908036124451238147949274547808968985618398936134128793396066343790436941882147678299001349419887385534174765137378830778114182823549959300604534544864893675326244852900543114512413211555375145728411300116085364720788982758029903242285057503598761393293961243668494249719261173630680899182200574796691632256119871916872480209843417345364135956314967004526678465171278519738635298466486262963931085118329588408827190857299456571293490779696650232907162793530444380709213095622011618525845332557500020751298148549328204050410508001198541871570122849542070656142524529613783981857828100289167148758021710438780909169320746298171255888717731274662752206613974872940742922348813278847145980784169570480304095543886550672965204255686779658097533981817768300252919113909022703487255614205983903135265131136366315781042703857147577606701227163749818591434998166756584735478839645880378088965594414846503872702494561422576011092102168181540089468872901826945925934063495632978243712477824559344309134365772391650779982307282647070956273418958516930649355164814184357870492131839690786316133136052481007608140285305340683013840471760967010605001878901209061245462467201332311229083761667471091740500168169376986388491328414294687895350325414673807666290169794191337512654166735843782278678433689142734922526437904557592192129149494861519952060466643565159308586759739483936121181758794537955052894517011236924243812813055711856637992465503292660500059482651427383879385921318572497159715523617245060815792118316785886047009575880622215702199907423557620955626455447055129380185947803742095047683550722212859663313684923856100112001198673862337628780651816913652876230971370813986303562194558284967681553495654330696374285839573128754513304043924253867842658393849941694373921992390705609793842798226486636905747224093246679636659252634406149252421322295024562238628622605110498621943572242287179703218663669319786564257758841019079853316613360525049353657664888720684686437531773675756860806333607107937657234364749836249629278516931687942872749527140080278996634732927535646390132533676864108897605283679240619582155125102544044127511667566917689546861790066831202721085182044864149848469350900733247715530447845734230986825178928162710669402778643501511310652863441412678425311186205548706130902719474106591947030551227990151452566695600948450626854908709556225122608426118495225038214451740347700305704700172590986554769387501783066359511708466844508694218168592351604301464537310191670230965433730135394293367972535156718219352159137056425434516191083949285347766791890053156429068088740471342835247633976577324380862025775309750858686659357457750820208938093471375310320915516768629253743137525596777052333217118060801130480527268929535309217938826533274306506802079048279226004418788521416360677318584853153423081377575630009923611404634264424438102710931960734079953950199272770373385117992076459468577718441365171762630652810069921815094242106778670082321553773792324350267977409883028998433749618539690205746149515760263485226215220948435635837526655527397108311685507782461606965140561432515600952291406253910880198774036941576439387978925397643597014377689507958547384877336088115785912366678264629089626477081958789730303307571238867586927261347032829951057092470161196370545426269391551981465020899558868012029096663317067904685710732535650098654146100139823809402209972927575917127235643182177664326692251666587214250462418968069608809756319300475643695170059744020113054377822910633726911791906402175523712866062136731153743729956456831922563975275720079253956073868453796038183432769264423819032771776928200782287858747449264775399410469111261854201458718587834674442210326364175999116226609264844349699267686421488292481282423443800973262908848902402670797708912101879907465896819598057320258891416343779367159983260381974328165159220307744074717257998210244714543242678626926193376900334194714658521094492702246207927838633521811358072174898620881446923167367050667541080975066121798753494733297536262909735842418242387295647685205140254765933348475419091407831290141622302144801326746730970792077641742390408681804758178283755085167694721569297698978419501560578967549777429264496914711395105262221528145156663624907548413047002995991338332307132091782454913055958822812524398850273930194466776848020104110465709786062351080114378620947287011268301233728351568857597811523589828608780633614487712694985817828421014971641164474363017520970795357439293529182808830850171155945528999568945217456019939232866819536906566964184699267602054476470479973578268985732007405152546631890972794079891378912614162191676801399170155947222243967480718307687529427066362094683712247065848746719188836460880255896356957716317331360984286016896427746867878868716106106559488794051645310226978899124209178070274418219191279779449898962116454489885329512168365190566348737522397765182367959047031200916425091254134721236327203939577370028601624926665401346410681993421475614115267123147758646572688783611096403512443794323922717091967931650233806680977357578681068320020775907204368374429187478837930835028874353680858556085950663315864113803325835530071125290335641884407366661621597900425992407725671062296484581345203871221862216015612760060608556241429235648817414507483137591132017379001509627793120565402706336958946109342503084160593111228293904283056327314056677738098175385937127415503732069450928967976461450023555907988647250196115996426636813491330582039241650485424675457913931333924965746041867359613420447028628500806932230272738243205340516398408176195974683187194115152328481071747512729874080662313033932102747821478663070539089810573099993741906747423402407057894954830392638698650416988941084731588150212682658601436596420319757133913881943325606280915606535558121952090355287350013380486700359894924083221229014705495676782652856296404261492530614806187627517081412716733034456564973207272504816153428743635617320735414388467112913937814855344947402231866276234393304056573745027691911137587117300970811549864806309957104068818091612916180796676789938077238342228014624096540006366025340760915795585185804647941396598441777621239644158839768776559962807833117005507147216674987634630774494295518813662529388022820222370649553382656699134066544176934249346083813872652541893786946565098021800720170472335608327558054074350801702821197344374213034953259641391853045104710218031357947507386605598601167479986349879100651662068908553787013443466630403721071504011733716490987697107427349809135447772286287800658433671363477176140052476107963458353590717937604420972985357808817800777832669247514433346218782521385626083390477397159723539108055744986757617500831890800898685910816575078700705453136378418686541814708477131794423043852237274605817828908915715422244967871160938752310471843064965956480574801546200983694448808993654934795356702385077951431806881894025221361855527435638180114539590935498064638298178503700331899432712144745616478863991058875627148202404016122729866781262432397731877284412247608212456459217459934227892141388192929371576117206273095640676912309535730703385038889987279077001875961941363678914703470750113417141852008809429210638323177535135022717589688358940749309943763363664116774335718077737093329906600666610322924451685955321158629018238885719949145472086429805860234932830848240350588662782157316712090701929469220025413814112441262487629103044131142276521135964328520120654698623544631036663130244521880538366275757163374343538282083389937140562180482843133413389901922636384212967911571158935259486572642531474126443666339386181497614268159536179799235670576348233079655901598591694136119034688565857725659175908285468179028704568007012815214171412093215613729073134849765075678252854715316547842351175096487452526583295782693738934383295871123908231428675238753062485633375412872118920956148008975299185015013159945271091841315378601242377386259852474624059330988851218717634037934101619126804203366993246807488200084982867404410335749778083276273109388638446575747254873079389462829181055650365963093169009632459589785701036912288948779799321414042578961496595601868034201012561542668639641171217773493032515809924742940084282764348683690508834652432202026365988642720581307442477410785368601184732105519318336904304025538386791831292793639114669994366040041880129042073955869985523407050169434951466787033972851804325493954454915564721628322212562858132150955585093017602991387994920741679179806799658725267727777819239843618846028277982076288630142688702310211206358507771025305393829826629136517613097036046183010902035725566323508703897609882232431310571525566659407240091986474855488652152006212207952094068734344826208233423534330899551031616534004941254942465465504591519703418419758087333628517830343409307655058930181062242120484379318114472742991955842080056350124200000292585733658132353250750794013916533048405735771575898662931277675966184356452088005671120403827780102713686214469041350853838520293300672140386030778914254478370265731709366326835901222857326056907593211413146063290536589793701511935656336485264215651513982910746310577622506563731507400115917686599462152656068634110776487158097503757684393932819728196739853529797970697989617929098729457771068291158282532270933877586957035492844584149455957589945584479268953358735590617364605584570624598492002480115761302562016662610008707910947720605594925391536606615557829572101631036137521152458637653314926027943739859689886284192875112115651842653101494995024503695492866899970711550056084857866027579326470909342892179611861719631387498271854878362775545004043396837166835750272663225648297220289735583772022197045741266124462244085854554816937993095332863506152286875527030509693080447180030192618727419012189582633221607539916726036610052469095687972684544277297628709750716037742000065122695117487602799808587193404995656071359444025903288176132814329379093291158409905480291303650523667710109623258104790428114066272543126563099441659899258625321224209323201087295128171996214274178188935979531333101331948428617856282106389353603501932408590155300585733436524916223674049402922848426979179694005178483888947410460479870473397525886489052865348131957621235848204836031850687056019038360594332039931927375556047527857581073951606668068879774155503247596636681301905111456821213022938691483013815593508060816031008183071216587316045981828479113626579871982701827685482621862399630721350186809500702840780168264708567407525869272286285600005689646941969223959049192563716053882001451793820436496951660297855974357972379595670818570991411045336915427145672248932190431104005488607941695317996237259699033103638029921249305283004545647667458674556931711151014872009451289549521732329890477595937291823057430711211563353593443882688847092319295216755890342715783827777487475689202797386122705289758440519664261868943254556415964137458248633929052726555030532135826649411549234760751433114006596574266066242067978421277164401730050570233757615048835861707478113092845514286289039959947512042438220408307609893309034597662956997023214079067916015363842122916370904710393786689239474931637488055467876465857799707954183560519763055622994837320721118190924705744684689495956937419069209312501387550966484695461298856643332756699723771348502385745728484415834112444908874687318813982980983719505153582892611436448618604725637833118696012319619512079199147908223680466686026240932558765004083936496216136241732815559831799949598382986808876430554148224025179443866923829880651574082511447641748508366465197422726261587397697387999628605741205901892456213350299982597999612749036270165098764864034761764243161843930482705929900721149281164352419905341470697898496843337224076977898290269520500815084156870185666913843291495840661053422789896018215525335920370066420813872241985933415331726013686340699051871059783434921816230002208879416598369298979212081402551074478234155467717207746547256619392769267719285782829889941085555795957006567252200746251817827115044830559040102477416084090851182614678808177694019559951020632508118113199311178779088958952265748495739117432201253168989727341792264513509966199237247170456241217088840077007182943440596386067675229571429803302258657854038222169960761808746955422545979065869492441921496666556080084263616966417379142362062463305278224639673576527132816071665765510683672007607149449944793939400372524835144515422843532086801062053901512509410521387717653846051732237979948493026578867558970171330395300667396859776160999993129384299270383281631930674372582309986853155389215805034835860282478538422883146263670522450068179267084644673922464736010511833373350966986366462954562131710817936686600857040776714617644015948164749900399819880755055668321060012943058571047764747010103398387875395179078799994305404480231765134250770430125074884952244502488518830396197856539642925881044255763151686681401867094243410609637184902369726903029667516125180169062410493263823702437363366768418001462190254973842616584981081996926358301986554075469258735635767285141640348850090296110994261516151874545995410398293688532331175823499380559980671200738498985310962982064968319623933929966836687714201896786518803885053150077523261979771678478612965891341373404375082341782827693222495864914788084567580914279763394778665325328085424566951974790151680118481719191866812365734443243817544731510404727445650091677104897979944188148386194061596144211371030885894201510685967559460912947713083848422936696057889170894706576845914488244138550619755280154182957078709065719227678287189109346723730422483290786271873339240619342827869885468792861772655446295859647439074189133704047655067065205428786465140932960465402535577628871918919208868765482399957525534183369538716505421780442521497267359457447551406246971136814364948765706430375555252004412386604931612334107227795445636085877231143630793874329601278277368270842043256766851192561786267538491222788917762464753677299263420477747754683740458291836252337496278743135203564504781076384418759008325186964307291445657194323956414243225693924915569807948099266207035621753128711715563840187361562102880195820608173531705189219784039333420856109408373299259408014693952952886196016031172522132168782054184607040361617806221801765914210377852266912321195773035387341127135737241928767705961638532832759176066464035263308765533714133577643993433947320976433801066523066270870783473997921916301251987511769043192424129618435049756118762446843466517475951626653306065710281023873079242432728045953120540584775784183670122320423809302119416083827179992871337072465755715094516309970338298071337718204442389495228886368521380119698844491450707094501352284135818476948704802733677090251791601610763046004823848160429642069878421235283914191281899210803525191327472565532352939147407897593412525556153893940587389921139216141107658718111862145542067897132858870033065088405559660343879775029819476747430754913032045616592215177890692496502599309274167507551661547074991297384164183742492203128140386945444477520758071470681334783695383516351669381728617183187072231418028103927839044562187872503541993680110568599834974332089170019465559298127464354147314955942067585053488046012777408260429001306662434461207731033536030217452739286649177788909500891718256241831799395203887463277798119663596304919151219968350875135852979058127268403472466054026960069256487783737962062850357295754558923168570143850934534361907986698806052314828209313841654990435009784217236009440971794483165656181488533375084932058815093603722985776084234557017304463831433135403468283022115872579877585076141759075399840442630416490583731170443948983170955722097923256867646846632383971996383381355259602049545604325645930137719198054266606709909191334858082291395020611795114325171340144855589726243858598288812272250924084660854136164032972799027153987473052215478660345374715894619509932184749176931501994830686223858193037798323822912230718990315867407279420008201744233294779637809755723724188082382936980593315299851340872998308780761597013997986126523380792416883148098488495836019847102303170286424284777732778139370917554783335544518200095353159030928975545209481363186460625953011168641036607286297711742116293705001324426270117041261427199924065400587210185575015665976008351426235235085268864687545437155686126141322865823469651273768628912718526975145078215429446297907982693233163162137285439544259686735173740973953391261685760358591275197504191599612648653757315174856544827132134837540596352035518475626334532255686421671683578831444791810864832670922053188009584806894662343102100851229473787809918229778732290686817849280089791959950307767059683106432143252885615829979000083851090851715452903536221938098222575775264656836644959977387178293264075583481836407262389438544580240249486478139654239434472950086410773289633415015501351652308895328476474208516617861186097372689168749320401559171227793152096269973271102147943075359208715834175096630641607065468948977931576775725019614747541587043970521511542063350694216806841540141178705823795004166342625978803249271953451012440167633434248601414354491497245884174380556031335663498587162853534234956977301497628665325287737301307459370123038145646160934219079451718178011541394048200183495691342516398266998985344797344530938033371036581332042949769927807131336365112302784354043290723155566518122038932410225232714733127744597572842451424511687397624774904288045290372390644744509405691803659333832158021874128198775970186883031367351224599696785847297062942240884284184807460965942743874783417227562111048720647243569611301115247431235892750348455711401531593236241454021406877341939369484356892866565520604636041527440979910270219866584972855265019841191019059875725627080688613182874228279858243110222126872905303972384231483554124784283620069562912243849883160121391134415461588713503726595934119183168815728004488144657507232631557674441803519983303847107543819408331463138639999880759488661081059663513913939500809932248294685312072789345796072664911845925068300251788270568753782568304315933148595034426618594372382372647471327027832836881850489352204499395493353787741848507764255926400671367575266596596267144289264189720796393094479580248194296655660828275965050419140332752291520610531048950360114869786893500389212614261848652368686079340506035598773180586938443245792817256343038551649807704272675127225173707969780334930539100516468421515976784039042408941675451167158789296753138639730911876288356785857135275015105532672180289655670859449151102674202467667367461696404432443559054402310670344925209461738757799785238467026747972975169881007916128037906923291968269195860560210343520904568506911862839268878151034530305459344874248234488154635749447396957733699071419500636376721885044066742188967320261961277236027080797243471834659427440528758084818493271264271871783629886908120857983201769061310770570134834126128913129961739338232704581289414284156193680944361749130282715166844658293637555115135411693310273978099951980131702120863883062742475490115844126449170899009702865426087978821719177725578175430424393080321988012111568057823264861752679668101177821248453604616674021004384186782089245872936171547174868581916244753483085683931344166038566824871536531844410995224580339521047736094903149010205477606678344446077179904591842248655338317649554774206525327503935416809586028144893949894933570318543339111402080326374157045409413252714420745348669855521716018264765815622763934609967720163626261711371542277000898038437417113846647056616961832110604395741895713471981852023729469853628619319237133661252516397639824690621101863135815861420105916850890376092044440523772599793130304694001129213964125413714624969827289170890761954798265685042450167425029107739727896773130535930419957407841876780327993453014904930672622680164771282880373012926603989099248391073599192483970564759275125012621070325620188513805736591446654253782980573892890197106204155720737635054511637821461935835812963893014669929915292653537695685560770121755961869897684157879095238033955245001787598391419582400890156965938167383262653341946448818399074459129502268761102007415636453000748590089586554544326773902391081664755538185032296457550673035179431901567586890425701336050115534939609696836549330803292059735385031600475685505181322002330849732953914422521026622195964900622432335470448989831668969744000324532415082230013737029275659674435609055753703153876421539483712272551869459035601398351663267213049019627034775058086259398968840149411839200066665125990565275415855810190451143901436396854839371779790218780864541933722944956516887937519295349273751887724885768077827031974188884652646353577559684609930892310388464054540628912655181888333308609760912000294438941958575678185740073669626609486225154601613537805308605305684462740003622067518631915093272925509469068123270603707823782308050502449820177514805982446110602337622949548046338671012514242974837260711316767031220163985779542427170436656534472844095070626299050891662090495182792389799055233116134165480940717957770506276678951062709870004566159369348584074158334869157695837146510288588013614201692279895401976792269180188397228104970388521267175845709349178513202179287991804560401919306273685668787698251995002308694254335363155250052400041947221501838853675373022063601909262854390186814554221173293936413687619767632985157186992358688594678068106367650797882781217277852361507561908260241943657256477099309346467800001070586324728474638253461947884111878471483065690584990889178556886751537186122563649266825927535936970315105380235572418781735888128942247289931258811341126648874784452636364090364877864087508075401791940318551179414749870910727525532625258575762699785127154304881442935383302488808591851476002334672091960017042735318444022172167368820977398749310422022869670364601651611193018065357092480068917680553597814771458359122884400992119272388822760810235412712415910566064859864019758865604332161172931678271547276562516693442581816264821000009111354126871873416828386184576229999811273589719606174503429004996836822162192860865902231296208051002068197180933794075820912896026812037911948028184252251515355098116723207725354928557083139119718034059181349526130949394671326161554253141835551462655852507428263841143053438386114343098260745807018075824932900774488333681505869720679900161454347223680929836398958025044758048241672595826573519571405641192239546899541517701991413865217836162426910580189993890378419273208760342713365085693710884941096805112097047693794281767424672330138129663434792488633641286525570996426347522488076815089158089723711537368936305706622348969385316665977154602913403622537263927312404297377669024519063016683145752597100635077776177201814661931551402966864921134771004128116210574044908513073492113911153301701058313387960384093204948360328009897817521006089137778544828961657066320856036458706481396705986319377647808250754265655477509363792459210405994242557352383323218490441543079635739739513761224493572281251410308233662145081810847245581208770963251516362279725098513492221302786647415315182106347349600988197985903333491975674926178333981704888445642733848125424719218581224426425126606524641340621453547820716249216842935988848313137209190586191581551135172927346631853863071735697547177300155260270195983891827785184320607266356032826420924626422720438670189450552685071179042001625979239999296805805163480386833026365855024056843583565363518840393773180149067814452291658053432511396468882485265510726041273536321550565927747022838332954676269625442667136859819094540452386140337053277872678725365605782653221034089064926712892841013131003135910410804543259187948505550830325108556293491500338589740155881371439282065704435638489478049134615123473480568490722922742877740581209768575981520474567775892575984438403738023103246563502691386806486285174599537678370077673768203940545252449319580597893389375951551951258980299034132474884322429518561825166773237122083118397195226058294610047589742062459386576942034108377457218775878522928490996363370676427515653275656234208425115704081437028468498626522317468407874687900372476825317199067392940081122671083410118204373637527906201297374463180264858286079234630265429812761938749173827605397809832727215321039756150571146453528481316815135716691247756735932457035491897809460052050853979262259273432631023304954032428063074989343159847899842834531504584516452093456344310420015227630499229434080687845488479017419048313805422506378501589358666696101645846496068521751853830111491427780098749669293244555585780075504821397961505999014811904268009119934906208593944505856805305182617723325592897110135619405517887518813148407658833144148947202548922065154707604126112886551697006333748223711513486680424224504996223454584559060429341396683030489627760542083844053457372336077336937046470753784905530683512377168436549206602475787960408878691517461645168103654819553800101678093221144783044598975974549582562070444077079599988929413108007606534094364912052033192648641448397768958951513756918356984858079478086095911617335483837495438341018710300429609179777109127573667285237988775425104962125495626540763236778597901328373133703083008242179503811066095048163661303043660603937842900037941113021933509891881237432687965884765262696484424727214624570661342945943510746238789320287927376191404513180551419059485956809504889021529910780899450809911553960298401008576049236346041246591470745677357639012034801141050714904724183836691638393045371927986452994022368698411560626077574898579664460450257801023176571821065356736346444261903430453302411251932968444655499946480536535854723950375634876558756784523237923140177424752139090421449624412910156763484317922507173086347512552855174252914254761440294488953793464022978522166892044151012366798908504816297725729214894347448372274041598781686728798365447082169999357494400431418888176859733667002430680866583502441597177570959457794170506352358854105531818071543320512357181898105811753116205301344446897844950105392526658930957681167631591766129524534886941614926026426594220001100768114780727837070678625714594964847767725854713945086395969358731128744224270276774297960055425213224760165865449881508035049919724306968501367948395441940573129735902791534006774998226572971549179546948063456325132064622653213788690476754145194231060563390368999898839264427352315597458549131755236504031541584051646610395387988033778178234600181275572896071329978285818269800625087259616956147603268439309635490873001741565304175392940447559372823447801168751539160883688303725854489011079142365014901858149044833190623823090722573396193591048759215820757840218201736367954654195515598904972081542552053817631891759050216019883642452722222576585724576749104547216651797021811894674239647082379888817350335786338982350287065771616063615305100754784986334442129134753140710440278720223413338410599847984324514548301147262751426421844558132065498157745069409590759515543680480570346760986606780539328694632921027090238162438752264650113159397662165679685519558179813884486805314028780727424722738495410514460940259727414764586996841654127884156135770736295125847300971980877317463645473273373219523896250704049132267562059051638953772330609973981704425659973346088812205666932240000638773807972991961094370319520257316707015437534221841623931696331651033385647750924070959379192264288804562468935900067179260956105662014204834728552508789055703089309503333361920020141416817286737346958353992521155891059255978182218406945097646462446250867996118078142372809120293034372681936307527495772978601056615535566248856317439268872228989775471444655376499387334271440990063307928822428675529316398023543454892016216716373258133968380213646045284253530447227031283811110474517787749004203390851140851919580537679068046962166937741652850854760423089692880890885865207077425313111390270682731453501145405245767132185748805194872119913721999970651576605058266941110166760607181167552035149242642109236685735670772849603451274313426385736042637869673847453693315808489780763326097927483216933847897749473841184452601500584646199423123301845525786539820590310478749656541245586380289387532988154469278594737861120724533825797959866439093283822171386363483206124176459463871870888811970051494446101168216506026574820168324187111361086616771515786780737666389459791441943291862307155101899145365564144543766651496313688598683767716314275210223476155563682998850146147483859758238264835257768724314107477732964401464512044014900258983226863410016766423646734622007170943414227226046347987938972927360459751600132394883671951423891813722880860350994879478739935543136274385946988750365232247500108817397056609642619935491760005801452706592074280563810237800608481927540969149707340794350693511685007032129910773125567326270191758585686503885450184720844424047103565318433704585973494130331439157584254969453510411241776844130835676011573612658777905808057144775539007276978025812000143561547506541888525336953046138014856775748128074951892755052224687527479426220418943989416813054851222432538896183209122618518250591911418510043083625697608652299584280478524070904580482393739034735625565099707259426962571457749188599277485806188488758312516778270782088594634771907611028601245641538134071200936659914956199468054412217182831176371863570509163934311223263002080034263131285710063770541116978969374612735535010084052598579773957480401846526307338180362931533940015944879942513562239261888148613216437565857907014313982880934399309332520766197747854250716070089644317512423191818761127543798636515215688623929887396698501726064146140621432862899057704030936767150873006728935892016287913404636918005275034070818071306797777305757762148849073632372211573244645778385086929034750164425087495783396584144679440393692542367856727845714378949831689662828688414815521052802728938788913913173115477777584369284824577422391710966275133658462333200574434835287109727196055220306562727725754500020209580819636596095786442161525642052756976118025397817309018887053302173645631208623614241430851683382544681441667203338676104708798331682514315502083528862795970228822000876616000395027577014106732168268143387984935577939781362063335879680807289620618042824532167584058348012844299623244289147734585964261258939979729725810748945584835796398868939634419963086329923603460138278667940226049860694332868440973615172387094799838762265675636795193484526954446451530246984775303382516047786575471490536706093246083475335720527649503928940263461095181565704067899198818480973660274230459962520210256701761802144713490622010679249677629847566702166236267511120764358674114428335403533168307441664060272757520290762931072514258692026756083808777088651301605935156557181517149357740379889088656044698547722877297401371868629507997589432694983726993124710078560658565836257079751057756780801110524584551613806066759681810066425960118146568268089759453755375978616162938022231054955327891491884859799107986596235538589008912186642370458022225145840433209037802247078374445463715448411981656696929095695814846788619848671146397182726276330054340170830947185163083633925084904870529470446621121968423760621574110226195923723276071197329838077583759796788019469792620111751442493441212133360244494971276072486953705153700640411618425059549296392615757606940593340825360967855146531043687106792018373484649606784546041934021559586189033849566224502879041927915117329551602138642109917488611145080062363481268261015016311088805667718421687644057779007021293439878280672902392305176924900115130578887574168103752845613085448321161739229078057921172078843847910314369574466065184417347232125939614328046436925925116761672626675053346821153560717857556869030003506880889462364186215615300036353036544998327194988126475194337524361114482647672539164546773841263391600244554345592561655247378141031274814543548851698185080849483245996595043109845850892870622353587993936057020140479726645358753068108595828657595171062618835178990177515288006383325379275579072956641997800145212208644753515100160027967507521745929300155474581912193640382542497645993590408804961574065375879006181335023723906107171525587360213125217298855999260538139185164616704673006051588149471924471373587157716650150699429060358642669305197846491021485465488272528870744371993714061721111050281760560268125896353776904809485080009547628632168954565666594396653504050372081133015435471712673621075389982722515362320014028048422274887504596346455043480426289415934583713457790223164076701799172885997308510608916069675490155424825103664227713290433100166272900149290747318447353146939858679352154438221923325817322570018279284366284855024778777103860564070236286446904636691585104298988276089616902308535391518147422192522655125905093288306623409625762857894543006698377130885044363770557353755954603694639707644484270212838677001349186635991497418793608527681935827450953222748633991490556711051276763612460970378113868632943232725839680225543462161656271704046814857516155950695339688538992383574761269104737194081549921645087436543428789316917442731180758038873884602209061771988262632037711903121764757692613620650077458788107654323351034265420207948291631645344663083937482905080248035675254094877802459155749175636477448568245285284449404179875029937839809423975613717901366322132192483989281830427329331434856555439111529219800454738669155991309257445861776282552683545638518019513587493575100381635166932009145290134982688312763092234530346157129027100348332428404298641006607888803938672277039358698561328316743348404836990437709600397032623761094677967555382416519035171201836491226629156231591727781417194601742497471577262343098694136430908392584076934087905040362675582900678260636096083240331036320153262439052619372639701488297976936703785643011500128187238433084463644372778917383110927752696350381709010308443021682585707798584437700764721109130719109443681466596743478130680379462651452197251396667911439642339667639066573125822656556645022111297130079901967845060201899702941200361350798755081450022175333141448665446619202003184835711146202327804222825376885898888066651391329448557994089033679693126864210083824284251795534820138533806652796061260427786995167104446070924887709146488999709723339924935368552163203391209006344712362782578090003681150105097295693876042561194703400775982621696171899543105936478366649093130887669884775092479428028488661429989162693744411225352163213427879043501765239000845466743019561605857165922550554314616457498537519263867767747430008255490083008505001822968845955122261325937072653230237934167605212276070860615919138140969078622194844206160201101533241404979858111316920671001165867679555373086787379403135019046986598144393270564055285823126456230923608876916799876255477582211630737330012842126958835423659964768693129622489844779143226268163880137709139926161719580050601602175385939698467387253249067392620550757960992377114487118702311151271304080787389522335508386047498226428062437393958568630642594596575985674452361802952548552017357627977920569720931428657919360967606495180569309389017116370986226909586492278137782267978607852155481570378703985190378873970691326083346084954997331693382969088887370114824144113221174391089368555386118203975557264321690254348374102995682708332939232518207560396048866314315502766788236093624332040055083309653220698424201184722886539605572944996619948180275846741564502904708949814732494182068170226845823932259626385620924766880941076333862252364015789307576542752346472698436375460754619743722769843750116893220371300782253428545818203398717975061731180123649439133192500257720711391457432028864941928971044067030830086540070908781343524511435314702954695035273818208897276532245270116180489590271003161045054775589749352892322091895158865789314075087307630127527919420473327834505345152336116785439919794530930017112482030892788936236579963891429855823117369054790546069471716071005637868892499153951831816634343320290523690179280248568899496741097520874275655225650151318833012384341733300963567659626762345716676751147085367946727229331013749061416834273902254454201554687358518746925337781065964545847795783296752678091132588481244398642746494148875039134868183116409157325521895668100353202851858415478171308364044410240732536447540635405871025982589508949153431918133443397607842923099589564859824920728554063313240942813474895801872856216972640255993014690951836459837358310448638184434984205855495098570438526229633331542315783934458691731235122506318764476133407082431042930297960766014905517457461659204665421862214120296053909525295710624594543807993417675032411972383555385936962379123269637616949255086897180716878896635230249808040158122480757266005515506211393010111995358985971482465473702322341522859138029376753972379254200040224534262773652643083868381037242486389654935942056291899743881770981400462109353209016331996641949094017025270225653797350032422265435063189326438001587378502511726083579107520347103837103435431546021348321135429323448923658164682985363042126763800737164916783113536055917547953887846222251422470775994438420917969673292997309272845402000666985101936424955502226448558125917116085085495560034142033472709649719051305230919036745513112578679270471943355091384578378739910850693008523873348670796970058324216423877000807729428074977036631603439123920687610514097437201054863701121840823824032799321112781499889827337349545940954344070755481537272764459813072133446723292797894011098167628370346139590389408333138953085669886537854939063385506835090125093249445414994876163423321880572175622122466953970843727750848459383380402281467327680559512846055993598327325680412101603597838620902535572053734544962370584598667881061849722613770616007885570320864057162712539635266221620447595865338408434944305179456157737115195103594272892574521048601245511073934756095521546573741631521759742194637787063392790407168558292697533092184339999400886963937901442368005510272010290134265778319551276048966241597033271545106070838615906844621546119012651289886146817566911984543479090239503691533327793508398218797211650512826261915762679357561834938266112574343218299019591150868792737143947265528740049603143581450231656245883428822516791116299204104086077360884349030333968296045987447114505969769400285809202670336371637339318267409296245576235835419815087669041151760830673819317471566272780292684593548195213085547039540166329836862610687294216303414724067409584433701953969476775284102427308449944517627394248760888484830202212444634342861555316673325289884413561235489811092970418306044915118141535117888765772475979389979697241691690546627934018167226224838426216580579799102441110799770507595155408125196959115201175447527687725183667458216422507417156001199680525809365528660180438968897905787134489385924085264785125419700415727758393868950380241571397923995746376468141811456190050379398437354737451655432483409820890564050324375944584216645092734214382800003204567053576762973279979586980489667901040995955747338091760421027354029111198823543521687063733617781107311046636903010141936165342932460901912052744783841536438463223198679914845749892987768869934679581676993970951486344443125299867832255496651433754229926873288952272920865931518335748290394824664363250563625783621286822465885442387331988332334103490858876947546557536750372953420374279501601971306073770943867432063672423548046464495071229232049468919252227706839116946138522466789126314824345043599655906013667440840675945326433127122698861364149311217390360824858866694024070979849560700050477179521244591022105612206465395639748378470887374357153482129187510090490693939788951968248114529412501879528109338477156283090490890149754004027181118919109922438806815690176395817345099775556142827576116074698522866969922467974354357797815503329014281032356281370996080334472185895289954160409119828581434806413665785298050768769488058012267444121847674692648320636592857461221455204676788002898851880849264912728912109881204737633659331306145569332483075122885244795894856984523045725952625982105065362911338518196541419090275303855979660925408385989323632979957107018690038280705170489653259754942430590785729434744016558340446346504139261090280454824168581085367521788229040177667072429787933225112219162652219027100679580780626881270481078286823442584768907415536201623874197028216561054243808045151442021410431635288614089927010350219578030944300749166811955226412499764858810067329729224913288378378823859614353567399183540815550388231865391124678861280861429346506131357839341025796029150552768735564333980426270820415347249276092946680472772651936238751265748593171132434327314500846688091309134576086817327332042098579225228818755296594615286709015325934201549473504613025414018193745957157665709274477710927326087761874871341844179391903765861298364450030316199660513354926057526551035483772643762321321269520369795644500384370104600937895999429633507624182812995567157739305032077849757136984362800146974958310662211879893913313449554999133255656167294070791339921974769195231355683456719936672730804574103978041188307595346334941367444677755858931561055657501072376162703424398759783386922690151085256280153152655066001382312243953627565926528539511534007892902362080991655095236312264485617909567485611531055700869179999736421946587696462866632061270634795617960253768098946708159260436085655142505642517067874156942796433845231764803505294700399756506142830890372564994748438744690715015836733236477247211011653109455529610896711657861144076050627596914649875010602735235005944082337034422760324417666724671369808454128353022238671727934314688058884302504163337028812209339234160107374829698915190053612721822303978828995820872406081108799899007519739802269427272446776194210530700271394078451622672736968470397865277660162663700873774064090302333038095970346165163467205796369400460642649804629772394573336870950819496263973123441660320412463236317688111376867802504632187296998091919704139443095115797862998133484843229554705752719690479031555695262718072901363158117398244291686209313484849255869777468271799545993931000541183038234404936197057843770657414638261737595196196723195990517199110371111139483057453350572520686843976039952377685242254274681513806829562158729992642787343628120305662081949656127772342884197534827901209187412008710723536545017079810038365114674683396371328138078962771780376948610335493864881171475661277030505156137507528860106595265628410141920925251184874657595453209798852796011221469564968637973408326646765850563061624492756313238197858189470847419763631190460382056583509093913822312661174295338612264095994376427846314319544285558302238665393108736832111622628321653919846629681180440340593497176079980881584736780592465401668449895551548242937145066767116221395070252133080716827324765871386571904166199755299215418535364735176727186912078517792056284950093179531652831618782824686624032382764171181720180242035003670695416686231087031633226748125314275664616874659129053197616082754648140461428892777291752573656016019569418696416481633652135491017375071396916376546380885215064751998670536778381536366395073361495817589963601475843450915790593922739029328828928973983678062294848605974000468393364010439835318808774399608574822342706921636046334399592759582128992446968267799298887274850324224048244716368335453055156323739990951277192809842421212531005536615259521477080904059772280279682203256522879215235847790180281860482399080241196051303282606119717906480180363396992490554770031124953256741043200097538548296081676040583130779392071558545730703361032686605398811114852944321182054849902461229013019328894670430615756419256793038489818153454274120625996309549265063581015566567691600426237306326492099697573438658472219954083781254155301961847341022066979997330109564273266642471920713069706455087638552062863644904118519019769949673487579348482927523161579455113157752254322489481568246820868597534797935029175560092101326698609115669995202741894222692782013038643944678326488985739892136428544472063784402110387967165453606518677109290465099709393617779865574426535369884370868429262181586922092032160923450724119425349619806004681979570365106391832224147050398103911330879605289300111340949740843995200661462660169815910623220159945727811172567775464931069799364349774796724111329202431278863863129061504267113065675501444833540106117948731649795594991903851383167618351505508627219131867568132040785996921176530041793148645596569051388469535712341381715212188329376529772895192702593847204714955379718255758425990838491001033516778917988994960601281668969884225185462887877512661465964430307377353197873395625380613828053346020196070451736542824208354448417525943437809675915222378722239756181454127553530620195644611656677705367949083055266681343673264465308153429241532583611588335267361299887370572161590805996289112731246224756849791582882222103370772514022757785899279006377709930847400014925282529017656528233298473102092217456972260774561606827795359633728558543266755366506080076877905017733450282122275821011159288436428426346726981701547436844150808274311623320417831286109792889953459191282360878982044161912028538984273011520581002160172035990601277661027355436292263155542750255220644270667602127788834900540079329490883586669720325712719527377803412181439143261816929107888700206792036957673060355764723145962156840761072765656330086144850841644441954571099734210645780248072834046234581914683667644784875901096909590605993332107874994211294933383518645281504636731533659416979944613528760803780174114511098616524862583330759793494755228351202819100300633294721490937529941317800002164948928632562010814453174788706108714136506024425281805741539051651111131322211274971231048561962831192985546527567354380619043161610395663260708288766659650064750854247632770007525436359673854549301368010760349523668296329530647000917871719032163042999161964103143241775414295516333527310366208391068168148572303317531787457014516797302745532882233777240023872256041602081665854538987109184562242629013978145784669418546314485555913975462296257630724222201294395749783665120495896500355973620559923708005104099710657566166913220337044888188032762154778295686139180010810429678649069981175969298152743764328703310979094051737741742959133348844104345311045585165506019006300294421885557630837272080890459105498916349154402951002922226767295589255394473630924714106017696040430176662460302878558642983549841916294589915651619185193031521292298999054440751247039476496286654481542157532312304027011896036653339976809571032167758571746294812463971148128498042646391745370690365801277291220789077744632190685253753938257457309462953148968930667736592011548938682846416968728562456664301114622819783662813678210586880555222667784003041122204149908892318385248880247514365110161817393236525693103326685641729311451314469293007821615824959049001433539729110644048941322116402901271061338791814816167727741499587065740319020420463007551522485458697454025661663326182890882205144711280043628704335914254262469643828443329124880867660676177837982681428283516343674899958310118958951424988863452329669606347550596556511161549457579519919976773354476863518022227564805182915770260120971883961117544528738965431880152272042538608529476161032894823161705901861216811925704113783141585668991964105376936658224255750421228035293378912243443460631806374472015658250580156795851413341364743597735103009347307536787707959362496770851038188673250245190244162533357083679726116752857995047124172561669506355310433666302856961101394576019195912841866792175504937566465589847683000991985893195419469415800439077080046789268551007516508322223972180650246130869971587594133772789318615119738062839481777669526863926982964065482184754426217395801587704704341361489885520273273263427256115333123648835768982083302858025982996960252346114651651810961038114796377502346881871955658876030016948678951823360324687979565477057680255392559284752734538377984004924238701597382251496634822739154668713901690585273597131489747886821182319917512846190655878904968258493221082342994003170399065764766659099534489251589586331186417942314709910496308890191394282891853198913734976849452085971148765658944409883361625571382291584354136988040005485264979341020704737148263819484502095127602225549965546450660944756328775901321017055716562915709527806802143541182832792462831829567767761228879631536358658463444327553930308227031320155983415352499398146290009324901823732483364077862570085512440439875138781158935145448205003177151929831853135441429937024754864451448778863938428791264894820535347475718012268861549145672842366672008769522736833862441175989870578621492832215950098477529803094299469438623441105402304409078516294731324943484738640216586746213105624288794196159157799898292731837039605338029877285789377477851976018334673534814605486730217881479910579470835696866188505350334985163698049134659506751518167461784012022194209057515669474141149106717439671290686260161639529162568750389444027836995782583298936383715334487529762079778891409123087032212833948565879427623417259773246820674189184322546289036240501978904015320018279912576083354968267816190174390495530846832923546001932847101176194146611741410624672200430054114089923602667578233950740834931753510410737810966395750816466131325152222527947565830765140978933832606913757468122197389812811393628135172387546316674804361637948499513891784372936659337909297480398488565476744117140752436519113668213339075881552407507447664700627205943439762578205307594776955383653015757604698573373230374055723064762254818725482964737956978256630644224120455905369114305448414524739683687239382029835498214112198813923613752579960914170633239285769639944218467280612596601581114013585838998004742297850507426065438480073959130947833032316270603414358110391827614833866021095485047604633899461337667885528255366716595513031008910668686128482160309826959188685781836281916290673838426016530732108268804974112726284171984587585721712475788987772335323890620016647131724724465057589311204407707675236394870032012273038916120624680824686616360572666552838765106235621115412561719045384871618057163991301791806127007711556817468742402681733631821486560733321659951632277622537946529056879975703498044517326011104841269080335404385904019891805891324929289174663444877805428672661865004983080881635175415941787678594021227843630897144150772731431693694861852739408073663934761801556591849938670678158145131729614973913745579754900433952999476085605514783402062326137875934634275817145753214331142926185597452076547947693058473375394636166478959121941828945076051328707407127317375922069257938960461225572313412954091567600085471499320244833708994810000373677984924597264823054172836799143249693854297808104725331232403966625842636489100183181689876321757430257113494722355915649249763981175302750642402971184399536521171449399666293169672505980651533771153625390764898207082533811301344962350153333064200587258789759000498814078202388634341428141038958845262672536347891198259806893884384922177068926059063914518694458754101861180017252709704021609537502194602248139325934278577005052192010414500621338301800069192235247979726377561729785945810780310737439601707183934363500926557689697832275137410974007650367428477117740930271290204636744895345120900811608831261562417142941368123444727259989653955529058957716603609328159721021866409520241818060948965236263326121234688732484863806997316296011094103373120592249348375254266801874369475691462333054206022625456308747160923602379743642228118079753084740001344228008248490168858117502880578376093287705436194376600913834964687742009992854919432300378669535100531097393497342514850457346199956180660959119298459151522462463812830138819447324089227055834775153396341872791284355472335248307763807556857284169869772330415025495547614404767644700434968927487518940997637837197005126490320891864798283300234291952217307063897940078071856466452953393078625299596221069882299682213710889317274167702949289193638757999866645788726140263661415868527123907755281952613157495286243629000751864101358441001559615536164715258810418949516122173822899775808877744705808806270918547937571083782498380785030427290343528696715848678841404624600205096365846604980180290958205037891202686670001542474075999951777863635042597871410387198724609108937010986729779081904589376464015210654673594229291248525015327953809962600417289831262727528613649986826322559211232140524217224862790933072207199630479332658043379533889261828647805263892418705061530722097067284834548792291484548243148508169620671129437782520419880822480063475350321563209025367484442419852097941511444396955408136100819393677812303280685966867961037520185049405641070974306627254414505958254765843512558788991526651961961654705153754421719961403036582939188422049358850757792372457852078342947357912973091861196947950623435126737936476563951096782176898531102798229457033000273939331200235251578329213571031765127512798197567604200427052713474842459037349051881181495491435119434470419387890380942006537485690270779858325229360498201462680178809012957521803197073354185738766628810415490570200614236949923384632639346971435789279994895509472565646074716126045818600243112468052738769672335480160406447645819271125487971051781466086342284558713227322049173264662713123638788113551264418632759920561058233480670027225403464676494368574436734107144735142140819114042536443035251615935036755715719916106108961745458952979750938136754634066958312717834841727567933526630870170782003342511547409376731778942302916549061841982044024368905006856719284648712364937132254326689409211448825118550883617699188934906242172109603353708195489352845828281184947630669091718783209357288830740356039126157008155913477632771247266711320128421203027926378717173713875272895154054456517984931763494954267102402734717260401731833895051422231540269178887327631006957690746260546711536164087946170656246096703801441063783358134169132981520595217091285813282886186808395328201287383142332867447352588739168454857225778239110541116826245053972224721505051380047625171461484850334211034754064233235076737418364769705693260498405664043941947146311969485696458437295756973423248850533944891089459665543809331849108818763865679995774827104553174021961819391513010449341220195836216029344051136842065267911351019513518557690681022662827772297807719078841065293097415144634064952411609670992563172551899646076621099452329001456217837530412614313831217510431868677263108326530488863820363502577679793635196193012889907069615636749745751570748992868476177523056410375809502552836779139594479683843838138763996938419559534846829332793838063436908921003236370429846732124904199931728576281094877941184075128470346282340251664282581650219616665202349847691782966318235321340921303161817996828612176405990945957729998216401354385801253141923999761469306068400371124176179187365915792788626941241492704437718105347151164204405638900225541180424557177327213439635187516947241913551929403004246091283411772922871501614243901216347159230111862031762962634851370616603955776336835326912273161087005652288151919929560196642651793776981195111872667777845999868420114083119009021632555364483339277458130818121679821693390121994440515888959329918776607702485360861610181705057773959193667603681892393166392524083437255626749236483152598948645799547808215332503177412084053925848669246689852037807377049319603415712822105365075530968731399062924232356937704133315678635391726659891613092332442375036605610562788185794462339179623908464082802567272758328931253597451662316341447613814481227619274054751942186795130601628864530295530331986717030756105771174709034259409292563416255834835453106854925542986976355812502513330412970252494880609867226483534666820921831259013385976955056142508780126243061455867728608544630915218336668234505131232116973837620653026853664104390607203905117401400052453354712961774850313723834243071746522191750722437085046416967261100633941975744982340972870299895796287085997656904227577234778799074662344808459974917097633933243886044064168353447431517502693699701483475538385246737473138100706151980946191611730685873025602097592357679709751629857244444728510495408527303019327147591574360986547586207659495839022136207801528704693750115734352932348744158799781413780196982558499274732145530001993809814744749410772810291134146489302366638436498332904607815155397455014204939221765264096716977098004599072049456082310097371530495183212505037311210907252899283586878092712507082789624501108037915499186422076026526074593130682488492793456074405899907230758716280757509640786861591640142093762466728481973269039230329004063778313767984705926131958671198165267893329400965154597660301192130239943699023236434891752648292421379833337175688449747430640749774998976922706341340319766816113841666395762119402441899369379724411429272731914823186882914197707660962217786369960814283458059755207242118651268349889462468184750218004316445178495198269229714629564658744274981699869809638590776009339449847798933364103370123989055853691132599701182074969767095213103741497555496211538414396181314566028357915884223349951691492145181852747044792514762651059074242367056739893999580938723367357086712864744434842417955994592301939334256099525233832762835557659852872355498133152045755713955554938858593121268478753712188913062978711481515554758824502024595830805775307957978683618595146149974209969374526984709437888922250425554675659390616933394815254173516906814200520783282501887014258476219923676818678272673288454746478081460860621029298194297879354115979849097679201460074821622181683433906662038523555134289996734041883940239667484969696928777370408813986012812380881385813554280742955635732925623198028783468099264034795599175449826704566927428388451173724570048578567472637887359328474233617951120260435536428867921135602994366162507616384515376957836968291812227948805355504608666273702311146997523214381634553841294685419098366413885374876369810929737450811498148765813711216674949887512114461382976519504255504348677236464770834789114028103063650579467650707906773374355611817374887640143054823804224666668336306311322200334734313593868009005610789237602712522107710338699339003111050567186191531830994102293711778793043154736972125375995606923801666287842006329918471392329482469093211544817504302789958471570275301435734050583513899290646510944788977724462628630377624831671624966506998483468132343786931491554944660617092891480684059627983178860124228574707252989610919244774071201863169361497620201017693385064685102940360912764573496848745847378284528976579587289981328137832724015626678016887783147935360800669653370855936819904657300500270721799002471595198562931433438837597787602483710684790602823474308413157122005212603051354902456670773260310334893669872157326289179272377659851578096678556729267039822386277909850086019305843718686863456188358777436879883190863405705509323168308981496938577549180977954995933198980700369878998596843129007584556791780022968947865795849647475221339398859996548152459047072975111783478886455877630157524165258111105373089814069392687069610896830683116389703380062164224186925798243898553871576814800941111844586778009665589792971171335780223140756052698879618769861611401282241435388258757424563092790913685058045687127917820091535944789935812747385579851570053038927782412453150530460427339654586677172252176715674963876211599572278945652187873564656738177466156170931381057489126286236062231846798505288539943507050677266414569645725580076917885553778391860892559657065619962927952735805065420387487950462829264865230690930361166122654084097944537571454743263381599874595285076330500569996332874542249009232045960927290001448803321988106339443195283636649778623046006725045763322071237153960476259039355600952583563829243307703288054692639286670978514592375088337770794832185686738504060518932454357560277289430858837586527559365718636520869024529071266946958152451168888561007131629544552316539394609163480032950575509997010331443064110437198342930900655935069899169321263804491288681611845353719026532436946158288608924544372557454093036501871183826121953435947031029864248258255646876475304377939621389602456791362677981308368489029965582480161279238168914248840074068652505463953511652546056733375866642521674250931087929715543687110266111247108923494670924268969456791227564175796099217230335537257410332254631854034530989308818181740764582005146979122209522261760656252983901588540240813036839301202860798962587878969754734332620007271802338198121419799303064492181483209623573455495434065352882391041067382748569356473086702114227958306402401992588902378500883113256961076119637850201527894876787454727429092161842963551652027112561316975722451287676930028692048691642152945953038059131077662215944743172223110774605484746490509821528844758278800296165405901715043056094821026124733792947848838302740031901633397166287642555815233611763045765855090622778900914511246072383090220744174744038080911017255103318012457712029454480006123228517301242944272149264883489023653951720739568244335242774591059162627381273030129345590931598841945668570089201789465642019487911854627951059778326052154613652695960896928483908446463853097162492393291620887452861983405538007140737096828103087824755672406970981860411490935789199812137716772612254985858224928990634548497468807778502724874626229917696380982393038195937033785311588830793188700904325160608734946578219394951662870278118464542215521719383416515810160933123690640531249793304246006937582830391008849045826532416032072938538221434199428350440992861161677076789449140637725143859360125097823494210062881635381254276252891763610176847021585412859272153035856935084085226310315647360402906557237312722915701697719362340873276620486449640914629554859564784502613401606879135477118225605647998695885567920649865957476177658782322649673902597863856570816150992499289867965230932141745339294654568302053184146241178306634173654878691391805360525730937143314564716310014998082065779781912379962271066877925331829736613396298899421621637007096719790430265519036380329861193891862106076808020740673230932847923624440081497015670798828046209586845353715577729974091108581761960418455608669901271005506046585490239063083202149377810742397521571242146075369703437397043695982192414345895114134397282102533487064750472703984962189073034420782684445908875222336190245293582552959263113377233739097358015215613048707855738960003892971026212528213859039413668798981800097577194419474881759531118110225039544537314433661779966642645425093211627869008241730759380021641022605723469920472705131838149857333229360898396609611480351173345624716789280602366121397750547876253461259211001024679905187429944848183758726546946001099917197847428930420159024521880631399414587824419982929204102982502056201042902319387898048247246749250873527738978026600759807989688975809388365613737014649476039363937235846083926486511478594966925853731554239555055707800867134062946614245042085125868647613387516488488725686643384593280904835138108635345748496878223870695276801024564056241118986325750571499568861221542745104060702620038904443311204061728645532919702886483556879767976173775964272269229474048106149478227457240458153047694157527352031245478978940395748200720410027671280990921674124571973091359784085282738807691654253867121934325248264823455441960854757412500120812360522129788714527887631664138679131214196758637512645673022272507571596158542993695974208188405558668081521242686875427774400633485310915036289751879464026238137493503827562336682027661142315771266621265998240887452369912130427685154518802242923645035105149494961570321317615029227233439700247163070083086861984899133053602171296765861192132110503438155061923628794922024350827366663199354484328038042797271286380787704225877313352517270504159220769239007183006901896943900100631109303201951722896858613631845306056361878140882109483937841882127783327018302318076280026853412163114471952245427385759790651256588106903690606190317025439846460140371437489058065269966442109464966495706707345130124955856593664145311170546219592649507085060550456887036805004402826188057873077499013329629240827834124347925204064754487459712968915319925384415584461649235272600920726214893970976389065892090399094552937890612681663824294606360456097444420638319273216011640873824688345666810640261409538562934255109476790054618206206328398576224011988404989582010036377858772254939561119115854278298783516137367540641125490710184128578545825453521426594288245003334897530969194714895290633253225763116962419883374853314237744246208613981871418042064409637117068258636165094647673804418843918074513356417850145184132251936032409983464882728807397743570800247648070213098927040476729474635048431483155473395446336833450772101627931087302936300541765014798812815234153355952608083547798725723460907310337904753863081565362200396441623396500157990688253910504410395014395445240279115972167217940449064630378606197911854291746031441496130171268265392688948889170803964613685595729193210413435431008168654213948040024299472096649227959230283551640681609056668175909483066509966129921676983498522460813759953814299150794283852880529181211395357406421168559015573525447449639903084629896952116705471552880329032098821611815308031972457098386457061206605630598638477997382608311227184682068217823171554784911567771594501730555874025965835564272075817219919523937218604575503178567659514642559402012690036507557970406319244349728695668745989818290522181803452590548193436008302366652258091532114823080481464012956442816816375293384217713571087951265316962418879546717103854539574256763522185205539798238493872805206110691267276903822385939286324195146813793837054161394589922713932966332330134739446958934306901982847615322663697337681851262675979108092352164668912469781611532341533542597708470412074735128952589104455876741973023598512017215057429001528524314553608753639130031991969165865998584613681012615262064567839688143338900486109495856210419154476243702797585519674640573166154235967041716082651358286956202843808106087517671715485365671661112952292546091521766119615366942135613661014508742346870146547010675719584996774354843491258485808490082783935499731508788704442323031970674424017384879577982251347519137189168806115292145410807713653722878684508840146116143135757236589387288184343973064063792394063590861719141404671215332801570515184223105921370161199153246904731297477847137544210863735471913398142629033365247778221515084692039772650242833376292598641818034330349968955848589080453393005606451835692410993363279079666059384751424432225244123321639812289747086994464139622173587149780697626773679551358540166808207100881434979990960830637628486429344407199662541142446213305437916207025041327761746335206771949557472289201759712812130931141639368595359453999858004480692453522339369246734466846900380990433970163413819199428853055638820182655301819370351382768053045543735594552724988951323407368282595065974232351825367518525946280785094213987282780708339709532373219488538404653109818771032440777513973246161136022040330451444786110842821621757278265638959239391152851527100830682106426914157475844031016028255951801559618580962128419565624132785101754080550323664618962902662998819306780906196371431799976869067064284846545631219153005301586330421187506212678500052835341490481605536463038179678656979917321132411332405967787932273007253043954307849229438124218003745481768863173153658282326984731462221744841190051788203803735314181542382348234644635821006667574426380949555762220370351791299071922522979317823433571354965292610606830102710187268946909232229659053779164119082218838754166579394409512746977267438858036414988136633510900122482423012809887801834336980663921829677073561099757133917342325704061625311733012336785500770925442662222317940798379033330062289342952548165854795710312044926741783893923802754493243584967585292637226863429147028079008823762418576587681188903422574664001770185063762172875348634677462774545007315443670726827378462089297893372567518265064539464319157954068639277744442312182487007316860080101134793109195351865339953815476337145336045263795092758005075472144166586861237780301854844429658804828831536760477842269291908702242971355906832618378866809062253582384006469993703007649729507459876366264713795235575000680184787615307448682299802369074130873105031429181654025515506483187900696942277601755970563893172338724183339250176981244973654363372328101407336314460659326479220027740740112797810753570008217772846657040486235277856859365069024796943266707135814874159372581128503591333971068789192569669619397788125142049911533927413733473268099974243285053342655066280292950306377807614074719623224168445851840948243547799440510531081432799490334012633128773744253171179051191268746675105311974986921475279406679444814678133454977286952279615729251981241101356015371304519146314686651759977434492175137050664696389614816637057222341422807488782443340124221820688279236372948479609760581111525258511299827212150707622030824855532808798666032154564923661968926321192744002781200605929717721704076712858076921019722096044981087767025157903531390101729551106246472228532530706311772444064910650053263738406385346087416248652087416908205681840006787093754409637735265654151313777479840225842728995825286122486553624202199317272375354580177248167614821674671936327889882716393725945418712553184953202171139379878534244323595040767896369613664369212563418243706652962202807749146176146415040629313074036846601730220758262323502901073985996401723214414656734238033917786459861180625306697928928594558900196644233193340532878271095599196809462223465611316758343676620465624777568455569404720134892953906264285323948318297900817290225472481707324817383184570558156240228936507991911709985340774950206458800698566644788361752803265952400218244115863284841834347195473888780978786172266801636061068626323439192911614667657179358355143035201783312784551949257654481085793229233135888683688610963429158963270202181283103197665700779518906870770987945016731934233349543442701481521599420757708543496328053400951534904293100438120698727176566453424948681931523594927761481488993854109470421725334785787767027857091446790344110297666486402777819813999656324876304351456358774340106246259751312326220917778770059105126043358162370645992097081283560755740370574966462876818423175868745219911005590131517273116776218359832649770795762322680196997797717676871099614151155075593491093073751730758683757286863107403752979401334785319489946022024361570961632940784679181951106243265643090189324851866116375661825949450407070244750531857023978414122842042860483813765453928315832239223119303715532637689200631838207657041391213241333602400975888500611207969228714692758307615059713944079215201305566484495214150730098515680298949110861060217213137889524545868768236351470798889766853630857071887398284956228685629154151706229653453477984817278906277403767024050226454375526013127537823478597400491142189307713232659034770509202411603581338142506703839239515888968592234601414560585628716832879599699639701401804902803036661806453608709842695586340237892186770741859367960823420219133562802656857589860577667412323842621704112268882411355483067282668781947948305843504784983386825255716050718413357638158635627017341860232142074024589131752202920072799657060756280796827894883656768138119766344994999188781092215787221942864508327790120035411966953570400124890502529465806081960878572742367306118071192389646251797280327930369331833754182794640141809997379543839816120392657508091417048790932754186887472364292813289521939338576833299839093776442090534340892514199275396271743023349774470704256326243569659709816754289789830680148295866590602778828342874334488041055576941419884433835338996238297539858212008929358037239038626544784418109981008398351724855580001314447379589316155672621870375258691506826697920923415000595476785595669350182527764456008086485085746737492444030033027931553197644422733356310662820956887804492955857154567577550081272710095597587605289465869513879153909337413235145433211805951909763546606626153411256966544697150134396873338102845374370417676182029855873924548858766566194397968382665206235139379786345743996560622823899739784488380154703091546376830673272504043839027849974596514778819226551438625320664379690781083344598813012093753378056879663832464522303089434873996168402843883666467052170311856921210363172122262251845496274095811425443470278303625916138163492653436576891185802254280017874776144097679580930244971265301656733788418464078657671843665916180784787611982856150387141355416262504625221225467497278104194660026974342831543626717585505167917687239469179485950335742721570923674543052325338611127982516777114479220732955546119114181425082365220780213046738606269193004866686968538082824313740233618127246707439937316692604597377954579107244916727769403851352857904000465783345982951394572421968111448149238195789001970176901513372384818009261002411426181040619977744184725744733578818187104247470573414672557496381665987008428215016198275570150527576435395673039637456304627103921270250259636594047474426640710466864670260197063205368201861472294319108290518153019645492385852335732642974886661595163430131768421457265095421267332423411004799939746278118821050027751234633972381132698090125489451269970574096944675922965972517271462785699895466241072683825064368470944512719535821447556914202242833138796603171543079540026999962859701864358837602475033975959450891025150166560483218259224548607801862751738128315717634406635989301897684931987126140555167388993861615621907083068546488676260727017083369929152384747409510238642089352782498466515669441522026067433413911031399769214027617644254348945282495909788232259382143645329302883544019573221012557983709055713676142149783156707673450386077642544761369161145427475022763701185491708719170681474032437507010484661924172954122348487443051292023155791264499868116669214585513632547437359903963688658734063722352765066401004273462186824989114781864235327518925414513136519321037486404498369964132338790996834246302572365164050939997639785665024276900044415575578764351002766143877073769588797023972411836921898770775585026729627427383473980331101392795433954756146036022937358868291674669176832389982594177405551944171011689169510246472094726412883540180438147999456058789729440105851240370488885124427535826856466820397518696788405968430594422312092808263575477147657719255073890510519340511502078959610488845578788439912575566601156062707139611535146739150521738400198820011840055253709104456664328282248460932774282619443145050515215292096198137098489878055347886183977491252478988684706109323110089293842232759310955856517102315504435432730632222108210957062478212004351736653508792762934161142423404097904205327398456026966928423304562237282131297347186735370768709066232876751964297284166845290449568963258709172994800896957297748375996577332424753488889679672435141939244776633388246466707636787023760399677665325065400337110750876930236657825453688026514168055816344683354115492434370742729663570511031083023946866976770187586503412867305999405022171748664364030104295052336452861239387930131729110923008305886198621830700242453714315712196213216118596293083012602474337778958240883544374893978806336102641098107583260680307824091724985350812136876359259982902218856247850248109598145041897989201639263054542558119244654184100760914667426227321188300688517092902353768484757737268540015852309111022047737638761101552127596405247591877450978810050892860986362139315100251453517759612592929995233916184721621861691124552812999511331262042280682371745584419255376972311681241040870021216281690710165510880754648095014648104805644633260995813408040883172154511582028176480061563004870582897849814313255772626971910662075676728617322617278646441839562894544509961209658732085836212448045468814819036266070378079563855456593165811694899402693689451344603621998965327717623012848262108033743364634509344467200146415002638382156546153690005600002459216994346872638214449266095937970464087438480807713609213129250237468578581719512671115385374166734865854452975501632546248013190146333138985710542689267196382849793880612086026158715515342728882342859043013711458487037102736261837054548191585762031443569375869404734866733471358767465795051549209774848037631442263677609736161452462370684316344131184527641204839284205572440672023439469303943674004214065781866736177345237225475736561363760128471869630028773348693394984733685874567623139007483786991959613660881767884010895414656425033510282574790041851601093165102075097615293185684627901447885688946941342291636565689717669362841534233709480265210913319766656673561218281377884843532149612684968543502919156142761082852819905660236421686341489211277613298836427872787936244326677636500592148823902332204074547644602300098116286267959708237650717735964396893989205906399012288101506676433358974312850104091113948126560451172248714063203235140718693943063677549316813476796990208127175022562271960361655199923838548898212793463325017338179864995809768370582049906277121569639222508353357701797834605526399237074362302878176710687970183043871996684039980725718480800154294968736902026754899405749746369625235426763025097059619841103823747543866269620243283734965987759596914670860986795213987444405960261333950249956942180046273420633474589950409382735349651964410847228952466491783560461102966222943104532789402912789041041459696172256642827899089936022422684447455166286156221799528615236072722196519429376304544213009338051345084785003810260723987333548726638217568914253170651568502378856332880786116824202706107682488071811336033785231301109275910990832570931707534638777701201312074243583480090783944590014958637859107507238675879900753136621597219010763914134633451551249232218221621454820996529671932998914850171692812770116656094785073273482019464664899183099733898705473668004941115639246913228180511435636512219171515470605625959288761484746254132824163279308823615416360507505859913516779237227489705089330379691618287007542165478388819475846690018231614207437163360561505777166688018952936769267844353650816421494246408946888521554601725829577235462373274107179474831589683781717054180856239461366634575329166664904579632199646948198014386632508138879539935618412631456933796959700680308969908105667667386654731097823429579964830367293834879733132774967214201534731116804793725868073397200288108248558990470361781231078579964968333174054136126025651578540336644633478809977204400424419130736815405349624689917555942419006599247246090847986974128287694539808490065439385982452913223210669618632608038703420379931007239667449151838857800145742423780572126466426699432719861487716097509584011217206413969893942501721162180090957103704517703104990049467488357188044104263193217969898238271473020419594709132258715475963675729418002383505766756316415575223913981254187215468922162242194711709035701402047945010019464735971277085897773126558901386750714947827979625900634228578932248973207467518925635445678866566515201041684099493732649671284221448972807370144726256813971201783584814445998457223825747476105437370177683389851699877096321082304045362588340459499924242207463582840586544897795472248064844099674062408355753233735585164755379265923661562151009573383173085397482672140758380669218889266021894364624116635720396910473839144110281424355428304544635145658920124118669377637364058022705287801981533249139496687378765224891202020810485379542436613367593564605429996167053266935845338423172230561287403363642305177134891281627611037012899224916582862230101794845156668815028245993474607677167709694912155357989476765977163061717098876382757587725717319098171347172771257854243901277021249354872939349819305068522714360404934913541483874044526619728651572162942649788626166777278866151016456476084895181954350021929952601840130952279830731673410742017328296544862309735601677755376004146141041059089861987409431301075043212959144296390604085488913290366645019332328883133289363971846752280615028065520955015808841992038813652870566530455651469451879556409159311344770068066927301722064757751519747911196160881253243479509153005141989360194972674746795661077681559803181492038087410610502557205485028680391141508863782471271380945810011983772141728410192086974744883871517984361767492586451457945487589332821775770074863865504306008974315149106663702704137160354764633150887650049676775640840702300408408234106943685775495473926576584998417446823194117944407134994413025130698393831766962516461164362248745671605182888948890745088482320993235601808657459851811775053049898820693316746990878842742620084583122992275923725354301676709535100035313192885341052377718437175684273722706146456853223328308532095481311157740844855840183205536531211716282680307786335155606883928039120920890665849017753512887432338305223635482766092634194578459069047373167085917794408495032159609472502646406752688347279976513897740557899465838677907686932824870268261440068807398562934857704450483460909418238755865555615135947370828725638674853293055981262323020415368336624647188993519344485179431032168045815993747499238722950845412999302795032713966124533997767507942457485108390696321351134235076003590134183581256541340941139654156993500441926285968278008631558129280745072739897952950093456023020300225744342719969859069826089595572308608766680573284542066459339923179586261803861719679774440255107938448955663710687870715272912096597416857051097320990313029090934080773680581794142929198682414894649681806298506955737020927622181280358765197791773873336003102455179794260116768586287835886564305980493927451348542247143044112853477901126584508052634347471139252272711933937283243132568648373269578383930000769878737472680167026933571145167922505166308270174606287275285501224782646610172803741082455592210231655168058930416099826161558275525309274027623849000198889566787978140735381672774215635853476098981750450352144274388885333918107804425491310984806155923232127618869298184592570864071941579903809977834408412550555193410754156578029008919865867276829392379193910339877151466728222675253059161088984336905408871932845343484958178021891482473427467325527811977591369124510205278849555901329385210557667747370484707828764038440235351465829164432446157475698946296719525323371025594152001093493697872175394157663805743750571314716579868590928673860165147002782272141233862076621460058858918598361559576335489346926674693381366769955178787269731322134327046983460221050097605754897321988463707308645199457220924320121531890320836224943611100623746469432650846374920586779296822802676758353136254609149984751285421204967049416480616703657829589952704263293645516628714634717752526310805896829958469553757481558448766384063503646147566956664367219714917171294305752268310789787946041024304695896280987020473091957492193784490078175952359167391249302536811719666591524533298348290562903480249888232677490914755106087243023520530563885373407592655829206381013618685334327334836724153558869959017239695500194465336798112904024994574889449524724728488125420540537135011564123330211961664766566074413170400529331156734493475530761907986527120118114535554549271591198656651812758957523717809589776408246417636977781014592993094793559836538899449933210919584170767817797365530452231223029218804333730090515554957412895418851986729077478281169499887485513361190658733699848570503459246797163074512471487043343624753885878297872063542107691950546472061533592486237458965633754672811774013024745197642210238795248167131621925512785618308063948675899793463766087424266536075292504339654735322440677116135063978614900328980659892653819796461604808437628438661919986368506220090582694713314326866468118839463968657363719789363647681843544955396887628529505178141155697526739032029163588230639378592034822442127965820016403380099856194875703496529516857176879265722617071482037583945107197191568952007935133091536178457106421600266519314356185591593601052223473770682851846113782176895596566588701955607883869479201363766711266120387734293086375487915394540899687876873734454135550340385639112019778263459596865773641398838593652065575785497376672286463422930600552034094631735328029505003002300421705818207946041523480129861671064103956105098190233803137328730790165579985800765498448843473130055990225657310977057437705578547660667608077209270440461552616324901547277420739250046727405243153175209488950069819966468212175452599728796247684811292343367359284793132887957794069523752514682436035688108470417174200829137457471078724653948606438845636435016641606581547254699844110249707561855918801840810855257677809795024688038442880431843579358564228410002821868581700748757507965296416966536091785787079038478451502794145986512977982381696237659005031597336006920575497977230800852248034374524099672688845571995024082386921104355730237997233394417095119112711705969693878751618232838731592503059581871106610717169991613607524291896440706954547696609407618894925289802238273645539597995945122157001184806754511968642747391533967102601059536000126498867671819381349823995872375591127741601317204432299381944429517844555092132548292590726859910805140359148755477997584651863986333574754022606588426860708100417591414559579309559642983327237340465023861697059785054586979816667462316620518317501565435865949076816696228251747019292804742361908399270395109199484891525213200351741895416248155681242477084395592158528291010477760922114754413632529306627336602249801190151727326523828748998738030682896197536447176439715605367656260274447810575073448985551371276145411935382128401639666706772504894335309348865771608268739679411883258409359377785453054321333566282211579802600888735596456317368138650373769245235458391320926989096676206700669308478720418047883395015211716796195564935552237327225010565707659506251894004184454789323063255051187541115794199477354831226017630877303688478047637724535205755543787479029941934563145831031675049026709686883170610595544717173358688241454518009149163308153298722765387197540244651177951175039152990444403072637361175830845087087620489051081442855063016046364892056678571257297224525345156979915243168424001606338379751926411262495521666421608302304053773214869713518479894292438347515103318891017367142493168296879668811038138486464181187163391105640614659970086699844267668226730436162469048081264869316435925981507946076128763682295871573663203798399688672804364511677143346556561534870308646972750629293594436151013759281149977426702691157822705823497469734975645874402566321591998509702846313539706180814273359887222776375956006446650372093679869587930775613072940652639114602092041300954807857621929503611415247221447747840667560105215461888801655245076800351264461962474345333664511751037855934256530569696178563908665962081211978338314386474759067893954538303069651363240324392920978893546952429702166117890158995541807530405048777400045011612350726335423037964416989400747969727463510020854156442414995083016287865391463361940029159202734373940034829595515791036011060465708690860716434300930547429438913892668450872062114228848371886734226824899825544139464612825247280563452911714686355342345318107109947149717824798237349915343244725200139053952870945204757790723693420837380435396448230724678299563863614813103278393429270479285862439188648061215652723460568420517965799562922459452209232196987858934555443582097990470383660079705731415385679693273169328830698670036720281903240872372373921070023271812367147915221590115593324214510611207634057607649120566344836552364234956958388176791435137863755121629901564587228056594845023532116672558268128656631243105519835617596679943968354460381496228320682456622577807909214996179689954108665323752466151210547156527379208819128859539828837698329260994116622407815889880269562334689791365537603660584586106609459867393918870755896956202494830525144726831243060468280249351848933298418591253907378696729907483553362728044000508175989385767153782283527510321366091555664978945536955098967433661737029316974051117027123486586979906916047231412813409425637079908432301821229913181859382586477010282401822378309213881180576016230724187696597069084767574849719307386540102433184479539040909989451526261500694262578115566094751245111096700329936327018502602924001444944474623564273125066518173108429014942172740443002922421698358106482135037680986941670710141951892907731376582455142135010954307086968592630579411572222211621711631595659726762088599824745024222517914396891915200562287003717660397589482205904977395414779693488472938291134230637367384030044055715727109342433784508996939439181742994632911997278817059517724488683575697425371287902735845609663524404815869941903021677607756192558740281922933208663886454236947406034392597989623574127241741934090385147045016448123138455011610763448292460459675298604689072027439341729494238942266699440086200124668635741536972388884142710204379385458342922469235732959786332234376542428993872310923973817178855941605572363821877564825379128533971134767065084301927549388819919918770968562704111298946295305055569639003490108642615157260335348829014250209912973534162904426033161426291662419090095488500892099019915336011497337120028880356549471390022132436225995536048968098990058657327283928175085855383292926636923423782240291530979893882721677172729565448442523997637113097852060707940788670992002742118585570832384968241306135087504771920819668444300176408996769289802259230378426982223174495499320229950179372900205683007389898943498569876177574522827626430556766811450683452916696734468611584656202504224931706145098733565756851414828454265924872524126936400332626983286578474383284102745390832134202448996292324794707992796379263514415939399860731787992652828835074430977580327957219633595491909653137593797029295211372386812476785429357516215231439280273681125320421106447370027003269736276170925587036116797048263860186463246171068895977923811493887714851280941384073699534351005366304836984399413527477651658648251111927169124559749481140187627026723895941032000899915910186756690710630193179657038585702700800137898343114720383002888522353140713337696264247335686599964284958393245168777283370486578523105278764044575154497975172534505170626413177788042270689991413973559979841758059205366832276033302118336412807737481552569294092449966021171453205065279130684769857864993356496601690919611879730905255406887190931067373277002726335515780400802039516041527523922103434302984405590882514184047684701599722759454566946192457432786041473729771742736584483456329903114228880135934784245399656519885818709032530263710049156774183209863689999057360513571933534388007979691009834533096711480767936211065300947120066969850822452418065952580094163878139844461064714912238358813211146947136658056075106558313228508939266351491533456768102965721791572088200261099420668905789977548679530438067688116597364300584120669740009249573597257137132618533745538301630296717348447970618320883601206326087457943417507607358400116373626657230951378253354287478838361187801200628358148543223653036593305684983684312810025580672900322411192936251589193999231627848609597674853534535255641163598680576887693193820396680262848985517570298005661276039284327780176907613450321852166970986160155731879280767553453093844563432655149757795545454090529835840662580172338174582063752080907678679328485918193158459531820946532963408418569353282489693444874570831827160921128254798988505780498082760280726542587840068949146847812061233346779279990727781175815698901414922169037278363842866132306645040368437905515504492851349560052832499269401231457872650217208036946590418749314178537697843676568154785277435500807582992803870350192892613852415477316119971690981912558325633750067190480011035487709681082079218001166639561792527388209165328467128351551002695926561159344550764871828161395068566815890315725964236696118448495446222309767502285492097727870855099598612588164673791538279695037353842958903743509043350782761381567123305574778426678146458818973753342776247461070491437399960439193489752181976675029405887491391914531881206359884550461748132595330881338726550515809346297821912180647550587036116225093543093460546393998238531495673043773233615729659054114613299812908172893156726443215806895163514725427768250719608864303691250511511653485578815262923403115245343908444784755551271334465733469688725367689802902214566840783020712540350648421086967705945707613272690326516688707733167412952619743075632418505793083482489260565739062798357879006878433687779714545704952299330586178400116006293865397509433272830482435400705917565701552192157305163326975256029840298518097483084232065492910835903681908793991273734444183801890106775170864531342590023473394962938862856431431155920557742908604493360435157499033439513612814761723579754929978828436110866869125761985634247017848563406808475807994270212104760930097563853215971683387546077186994229777201249214546959054919799739604898125381746880848325861070246348944440409274727600575411125129657853167134818405956885381807592661314565885627624304891963624586782024068883157664106043696057309863641068651923864430253029664796210997008073983691930655425132380809500338125222213773108480400962641106920875814527319764715530603535569295539543383092023449578932444291897392373779334048364500184398816963161664429721936528806977938735894286084180205666203474026100425665765374218074032350273576375655708616280674850409496442471045519949683791406135674671000554601068615581918743691370425257906622649679921492679045240700560539525042583774161682775703400969556921408551488832277330011290054277469226830452939010354356168608278958952091803705261399189581357775657831661264752993679109092687085093626427397714055820575635873784792838805159559472265579433283157340293096129930997937193058032923989729497474934438693008315049298923751746136810679904208268149689755583275684909720228374349591177488273725076331422735939680246342467429831262748333115827707491797491339728099577916323940277087567701825543984041383975493171971686653129577082617717842305352712254602331544485292149123825548307080622811239916990613320135448492620777299143953172419547796548004529453571770267987577091531713830592200796637026838751276257386861264242506522397148332044410723506615801915096727076783253689565573688625940921691135167559619940011641260893913922117765419290470351300392028930086740074196821122518767735208373205697580594459343540388767261102368685553607742887062929730595829971752163907950878567952970776147213710689166325661792421673681233154494527729354686003627776820768736219711236172954728197460307553794454712448067572953858789432705130350872975984832263459285232660527006424375310714069545138045181734559031204907979540498668795289608787139984103401989727456626438284655183802409259733646626085469943994057511021152396607753107525761668639860213425788659201942473952244172739858061091202098092789213272313343617171981927475721633562910145596720164444138029223144096445735398719347137187620688069615502970389356807948366979561587967839882324531684077018991537732867551225436293862901002030027637275408961931920346446626747895778599999780937687258341790816051825261880051583837775459587919703418384512617129945531314710781925494142061795959010915459340355214501247997955050611140148618619351844167913617272093808894649248100527252504152087645769584231750602883746692215994264920375980083663993258386436475620897759175384006659008358004609908715597713917020116176818952832741882055863452906765582327649798626498343931624034202697229534672551404447523655094713224451290023508343824619602013296942220741986076703410098432857759952755170747191447712105074092185403503478085046129109237885159180389810980247529466662167071429104278651939577035266861413971736701901998616244254235057595879986843323890461197309386540960734540755227402435391980307641950619376522980477942929172357806431805829725801811349632882899348994591926567498039566014316187222939019222316388967228642071196485008335324275095597471529387903160815533368417535184224203813667046615818534293186789830737748640321110789693979158781921252370149920892643614484450186641037332971124406499387321169774317068677534577929265093431312400803242196263796916214120297705346136402939442281062027803835197407899683081943612270949022214173026813047092487964092806242567057132107817651453823877141604313215335904892098553522195512576505057469728854670793374849041758620416412617049344417726132974314836099744501766901111147207174261955352685197214666897244855178955311181158076957151009810927631839532353409085134627244315181948186787282911275311740650231413310066430279101217670580052198057230982333034130703704001126988749634182042467267242650541119923902628154217255331132580129484247156638482297063606721155034068875339767791033032034732571611369353760059313872982415539515321602816928282408455288980845939294542667110664297615192322634519520575151394167438029316854753623644639897077819405898405051083104257516939059851610477382460862062881235338882569353764595930674919053628832648403408862242089860535303218389211319492638594842297659698504030870452229701065295623043847157681610946666459983839855868678039301800020947711070693944345171368116512426659966889128746498653861175231616970906192469459487944585355755428011303401513932327254292114296525956897481000691037499578723050872693995542319062563303550955019637516242815858001394106869070705282394934286378407076453059933927340595086808909845915900961102728467628298860605152537206271786059811888694425922787492029791677907603991348518979764513691907793063606245634757128432944993314526559260213993436538902815670171079246291452477959772902907119207586777893694124548807954755271351720357448854590944932453339907496915427319653581213526801431308487985533655271726536108178292027552281661110645928755190484147123120776395965098333984627580635536040963055396321926383680999882802556070561274123926488350475289461422681509084663933061320710603149101673126234474316787641766289650591135254777138913086307963746988023067195873448214956890687260602813026345866705083547588709135304942535724181100152413739936666162963808310309971882513320697259502776417432188020089276215952126625619701221796077190602603366109663647556939162115656757589219750890711006836206083060179473130968428612246321034586645197468376337234046451155634289722168103080429933445596779208569137118191357685180843471165691884605143293437217691206156449614909632448457102364633809745077728899102976876742980808144711845772101475652365577532986481802292889408559703797878137808553159321939003246177816877939969578026910411594609295984738640883070994067352216425130682686646879977956020042617904434719461433494516618505430150827681635690740223631608989845841246828797492582298890150731366930118996710261389912479657219910135048413286858016387248818091154430814406125469903687560300138631893455443704835148221860092000187348625867543833174147659995286866495012737283581885816238078930160122783580456205373506426866748365262278188522979324955928718430660015923630741411377585344429090529377252517158813638290938410598365390898686955323831539968483624518120261495722614919807626132549144956043006506782664503008646234474658308081280764151410644016200789350076735854647849462991325401844833945491215338267053475063261234208588903259110670338715938072357229402996577819144479581164679505286284758744071257320156174700495792914718382907323064393927611201536050265086571714490474050448904205776790053190123991552952078301775208426268687932267925415278201516586964514762679469256607773321206549520295947658485620433537433622153674868841802934842320705536937003270623686399488842950447555400563936052180747405326871697823805539940137021739268945841703086086378054460324397440426463246891540297636626223777960207518717004261276629888416948925920691092523539288865106202673529270486095348759882621510498251368669604043324790743019113468759425829853305603045370443194937100095054680510717944914043992127199654848496897026710538057009631745545939238520424947540459433318960856386661172336300869427709642565526323615475050169687928132887384003054240311723756964567190311663161221780724330581498974870045287620723984113691173011867875090057762105381090005375258905493298323771491425710673062296529758241890588528247272380500832229156099017622008900719487332613187482092869926435369953205094931286704460730247610522748654934871907523417827970095513908208416731851598243252111632073647672721895000411433744831410821855767332262777971420865391573376259284505642430699323597074896276866982378289831147563563574604951444156016919961491876867977047602404101657729449036987666090693557902697419623693797713530539989602132662368159914711205757728515711232674501251394879250777805380228563743157393180798993262438013512918275858791139680533970994171271332107570953477596529020984554629379853355503562967430160979112276563232168166665849775307785615369234713180364602407203490261760073858355227810347355707421357287851329933929138847295718830009880809131485450620699572331402279218189596397726482432471047679930087310588550193081513451738829505529475993319663615691153944034209474933971946340107435101415015127420830843722364465089798605877193424509599415694259496825218814071773115506044149261961427832878171507746252051940583948968593406384573593459012684001861656859195600756335402954400605898768933176788211720709022018118900556492833913371105972224467024935670269894282887557828626089759550378129539492037915152177396316911229396931137181480315043206948631745738876615782002039853848933685768844921133517300017194688420579530669230241312823075440474575110678829012743912735876507319900300570057008628141948924408352624231517049230305095795772291574676850847206665735999768382581742762543145400969989112880128376699652953835370064735836185598487710743473640307692545189872961582740218324309350367535316424455123846262238774010625380733051964264572261356261484233448208839277688028008171765860222114287420066241929111087357722772607020019857948729911310188844538018217649008511043362832441703568635037956668786093574508459151036095958009342417840728889427248819087237083277712057847715521594696632063673246175172705243497245868745029390452153435341514519122290714665169181482949526562177110423163752187375021394986282764172998806153863572154682628911489757194445502823530354161210143512190572648311733427713654671721577812701095310327940362378516920522937412583548528751598601760809299743789032383673659621545756504107874658792343097371129997235004879160178249837377165571537825704986648632109158994414837260096235065035196248824825126238716851758905755230490139404670196065381866515991408717329400895046986618527892854990580624541687594016372360362826802794769240837120467909479950505222731479569115010854931933563730349603581470134100686582485950926544111330919578526122808658699708997633592619746543364967582272651209476031271816515621031422420216318814044830557304012019881757385804647455888520225509592124816822348275730606181794337915278198033410966565554420341081840877924099983650377054189075256479216295859365126953837483229439855207016416592485131869000388710929926427089134720099350691040875651624207261444791740534109524105510652218975550708729774595395055373474611295056386608759767502207446062687779872372212106216803809453326759902545147326998761102908241094288570861167527931778024155249119923546438216252519557989521042133188076422165780807997886235994126602517570572258771781887495280203182909913794794444195467669126925438265012376786332893430827304935981048644918122243320201358506111494255733359550767790782340640939339781991805320274582350382923402644829045732585630037653415547229502543571963683232810895617879003704913377834888100019467994598560689993458565517489248894462486276229526192153818642911800020778152984393920070715606140636648324176102769202340415161581009465777884847506601811369836216620405726063452595261728795999254803132949462178562723697975653367787292106593673119669815456459971980208470608872112654874980891938653791725417993434723424477590487907616413657942930589010459984044541440663567414014199380736050211081919790116588655851016082804465917755819861315188586487682277150542854738060681266975749690345935297919244305312339284797211987499160495818039652867302912181531597798925607308456189125503112958614862902694332026661171901016179446299841729247290578082466365733495706513897990084822167096119661628459512713904810676976276626484268227928382668103474598785709747904276467553244744690721829981390859235196499190140802308853529391912246556722739747660553530014540297130538044992637524412574123447253865925069405024265071559450572703794441419226728917254266222484257911368524807920876654536369126106263586025013597296500213948527831383661881486510351227714267149212424837396267308205996550225741044979735362335507110580536168856057142436688353660332615759865042193209353721503974786652048239729401038174580622941871440828033243867256686069576899398817449519432643173052464056801292131321449500627013263437018242374205088832015967278228386289142694502458511253306075206729489748053679666931825546884569976545595285362473852650783746260347244479523543895061159381810145569112593269728819816858526519363075454537175687147476557403381247591907522057873893602443339006123017020581263004061048214635208467717242502268086849535680753085297560196661924200321320862068890762247113669454271748489694068490070929435061131235428227346883764949431853057467335487474799435187245642689077648680324376908495319629940639192364392731092373628348757849760710184445894835654580383788912528158092840352093597666879292022178307743019404578383118535927113908308253510035556543589255800590064380855048227734494518848851106308231920240935640128175435640568581983642678606691449739695566957105163273158727715925693243173407488725091049371251586467374446216758430665198425005115608970929531752514244284579318763168499056181007595100895609181406899423663616959648680746012450951377566088532292930439123531588683827595691300034792324123870863495162705444071432985176013827815648023551623607125548161433522383808246776621823948936674101122966053931396560624223012978890723244861198391275813342114331350569971512943843394175179166483655260657785682018509872096455852896250942515207549223119996549967154402621783434842544562654567489822820217187508741607740597021657999766060251175237985315354502473115899249625208320773152756864752032909732217215419132121229291676369566281366608944107128675389705195777040308406353076295662263785320923771543684053697465904979620588599536849709379645483307200250487035636418468901904315696619202694207234508579707739652661080069825264632896593596816685064578720921349938487957097472397032820114959821461910776390529622485201076480317418058952913532368270297208531024727152941551142108506209457180129203138788220877077800564906127966670188980160986478944405607688494202844288910018804225924750043576875102888693550930414484710121172141629681161293438561430349164148394683835509057445239360228213606560496480503324498802608607606230189092213256477255940358204840744995065290849066276417576308273872073639576245154061598719406998621743690268448892130411437512257961106467798053911648495084069977744812585502654233684114018238012663223813044713307630038117543085541224436488591803229407970137337362333539867444157865734057237763900111899992621015081557036155802053141348168157140029882907634098598066885256490631405225525795529641774714229797990416462394899361135774841285503462104702045296288995893709916643896291332449848064175069503155275955556170314984636998785717027180781506982133601309108306557828082623649482741714764941708762610797935511437639086083293964036162401248112254177201853338798241410153660699642330206669055357915554026033080643562133769923493585887855823412314364779405079427955130463139291874491121892524741382734876494127456153071446393166090619766928855746098015470684859999491061764331371337303236508386615353991885507954707864589595723317739178403781684564050319443127504143434785539298503557155420184223168506181417700313850765148004940530278563998932291965844474208938357083439517696590267035152021260892014464182739953181117394598561271469360487991475101116534837772483187537169199276558849442303242913354814970024206812185100205434151231520419335501334326133479416138694912602823115078528080982309716015545220838266861540189707182445130370566983556218828181343729806050336350270212816769466798444049673602340467895628847321360421250511154194572868974944424207760125065879715105922673116285401506408109209012358772862601315871773133028186612502110999898952311370847732783737880563952393000916157959907508896768418283504123121748518943823174532361982398244829787252852770339245949138333272778524939336362961715644601636247405602571083233216269946220645817880029345246098156487932482379324801286427591721586769077752479993747809772751376464374702308748021684066670749767621798090100618658277721472211060651103975628181350029250433256972142629382617402095889370419559041643451855177268334677009747255546962731484951970102633273882070817773013528521673286033028629973536445793852136104430009443569258903810299038102296713190217658761085732487839714637843635641945041887514675899686696897737252147834176626179425651953085582486583605376025891352346927924418615068371156081433488309394177745640915831814351181738948500607678063277731783564731174895060161534253862141527732809210225001097222536344269799827609838821951543015834436065977513120725903459421458969453357864550693613634421219404630377048411867263153875377674211245128289484964422944308535828788323957021209515864581859348333838136610834279956358704856068444007629916474402034831679157031576556177525202753079856655625128586698435730981412942277462072832492692440679095244084416124030452535760097576683790200493535414713297231467833542160414319527597360315137199927569192202639284801283353876587514248431820561011045901118345826330665771614638092968146003984262754686185171086867215535409785905582220738513566350778683761028193702163496439895969612844150298827250368828499575003415383344275084022411846081947320826324532446580577708230351628583425024898013774107278063886236226735187236212808949101548412830480120608234833718533978006654151078903121433114767149015862398936264250881559013061486439343773956213521046479290485083619993427739977606093370610836791681516123767429297208692893551377923982239980230386002058983722567750296441349506488534626764469301739453851760180864251271941119227048083258179340710357509082414151017667506607836607594408468261537979333282433325943978113772654456973826919007242301535553103030222490580748940889629391095498559448540809743963542317597952925278763738970189995534006539472719605780714698155501430668095779472963862150599343713637493018915687181160980407050897229886207741358131210571507510037128944444860195018406538690310523267349513353565596634770193513735419598128844415645503660832113395145790371779980823601588468938958523805581713172856659003439235662310956264277712339994588952823016692807475136075434916329182076919725133316425210865407783833773365439447904490232665827520379968422875247637549044132947026182439097393783938757722841454361962799082763055365598412744100975084436708197497018173458588123739259141908929556863727483586301553986750692644809619587067148729825106067023971334851330461061791466778762949319049848307735690339912527340088337836903558369594473230913285865937313104425812515434245848474866988498820642866175605620500767512247911550921589362343378908964519157234277058307552429312116719395726920886752160792507093849819710561900661436065360383898088212303176958540815725932537896571185298047755417456590891176336279335055782547910443257313463123976073313667602818370622394193265382065075871363609808963739953715787539509791544063706246578253651444535189760441755191806580409217152092947433188875691399561817811878250473882216848539131193886794887604939625144335266539760302355932254166212979069098692221487283578002005829625189798216174146708374941663811234091641782085440593308850171433725903164273589011299632760420209102807240786586086809520493871612182309926799070692436384436687251887186158079685243414067478409453169645428462098135271222314172497083473664502297580255950220430232312510806566939957826293195906158300037773938295822432122252230554671609830069946813441829586924885904004297843243833929249891026510823776225245010622512142056253931478752849243250459182252220122947760786518023580038228710783454462823651927930779823884479788081062966894182066514212756705423034539320496037209022801294494243629705954300567293349355407730233800071891831066978710372212765832256800418445128003291225855741880226183538439556285521477579410932671991516491132890800954416453973317380084521621457519597675593156327588636522463555593528938321653404295865852572818477660248781081121439848705635386704752215182394716224133865431717917484357974944736719916755837052315532239683587878935571250205840924375555930070748927282148920270376476217325201127386693317560724437018465031046234561745402472790725317135742030130029427830223958704528909806738111567940181473118684573642990140631744283409484393604218479358725539391645183935114356270664257394224282090649469900888881851618289592960501916561041199898794463706453074422392153814781965204966592992818524646815161071777282528973190797816875120009961959395171915346621190635568618119519491742584712930449977633913236086332457201005663805490395882190921900565352728540896012139996334383323167287195097270406488894540605223731392916799794508635876548678834975576855103489765472342692205974292452382931882908244614758845185789952644986289523425476379113745009065262697399462536568364157140330688287130305904350055198165648453564982925821033783681809808972897365923333352352672153920618836115675894129896462351755359966612634940348667749731396108264522201724143041663588747194398325583590161584549496153116240030310668488693484374547734963454226986319076537765604582088115763397751900858362988397286315701831250928845676654889111336082063636392918419664969144944185364078040391338289063824536806843255179242371250998901399611017296593415256698481427324350777295747841824176875089413427518354944553462163109030473671764454565593601206908281608572811215972340706823479415811484118326076827030462555306054762784396937084138886974943202562097395635201296476391831982898387754265367574747739899360147727474950693946494361782962983331579231992033198045254435982546965474820727221678775047328767845926045020398266445896267347632046824567170254184176348054175862210951221543013451017891857038431165764784446198528059479916889610105592660098221790088973228635870102093675494579317412021848508699020957687201793875642722555627736864734308652509562340417280101384057838837909223321666252615460856661554316713862349724600462494084869341094190514903017883078005543248945763310928754582492073067260230696306713412306135433786781448669396733130165967604353544030389338413680318186630755910145841748724299833150725017197718445221986382924132347133107660853279078928476037973443911064721133089049268398114259755397299927310375306437060920994445518043609737368106375971174790031262754256361055796177338732662301053493927837032111512029610711278279334017007780502552682033955529406687810554672076450078927934558089811948863243549555482088786335956931316094316510426021107142633149770230611151134843595570550315289226792844584647335913999712439936072821139132846279190357248220127047976008048001896403536910526927356278292208108008924341878955647090856248752009801432080232254561440511073280389925872416768879970624307099668949106055729014984961497895582984422153133545971322787115825769318788379626226576980450434540915412282364405926151789030035148932342712318875833151733446003164345578607243189088345237889784726188878675948241616506310070601190507587180389594419579399860293192510691270033893735892742350246481192492057723242862684988184957733572072244488843365153742202810110270330784060620976082474695051703630429546052093640678188140765597590812561662606992445788808848272036317476126904586011361921649423254502866038753465383450221924792117531553656968407301503537127030248588074733849187291646181496964754253933390930325813190415052564978830765888642293793765457107696184221797779194729449899290924477052655263334615803915373041206054048072743473923401952204281188637440882345851857803065761254736597702346175275032514052649414316660211489054158984413612233404394489177993334942501047243325997281355788026959374844862563694127307329717792980831947244362037331379761186754765585401627436472644043720605423238897140654228843855657944987291068065149127109222917273804302527057521371795628856902825455657237145986111257318426762257299294208126751594864241726851766051991100264443784797033641532840845854711834232340895716311830697750507797705947654257266315150898060410854072797556560477344920240932050827757825937058723337860754514545705290305126747990990126785011076882708578173520595049625473519332260600867926666896743529599438980487775084981484764926468573472427980601448194712457867020517655422093316776560722585500746372514372514369183544985005553826877344939805604021388210906603527290074582838983882943878693121179712817068731809993531323339674494792611441996180049590794512971881602000645178952293566134051500015901991392715277571115527207056816581737487211996157205150348893422812977509483828517448372257815613641790949311283488395770477926134807293013207345204219451567910863711080790281552011457605414356385025051633798630102636771305371971912613775150350378533451990024052440742928586544301024099589126625158918678198682947193306503228605111270725119324882872824298010337848661326591687634998781136477407548999565736273630506889075695266479477112886847228991913755296031927253413547357996202221640727911498307780224829619842890261186489730738092052380250003167901357276867240848523211135701092664111553105427080550909478197803930623321465170999066144050239643448689148172596826089524244516214558932954941972340641518618676493380506169782492112716203576582216247265994619729344036392467990388405228032904361398976153120439307248701450003142482824027896015623010284051078243920202064382486140293841034811816081817365326006348382733220495301672996793193206520225850141687317242637279039916990610087577257067550802382215609779461294222253532289879191366680726303063234017859493046528776162195343907816270215231514577586224221579426574840534200685410994383635124611569499548120784817335757163300062347435677491522825446477271198056782528092977632576119972689364320996710580033619540970726732910510552415162025563293113919957218248031431799799850765216545964007719144067818614771034179359763108828620317782762532073216139875890189217432551194801576547476240882166609283012691243071654086008183258089381866799019397879192472445748004811620953148291692537351881135821136871204233502111655643460429778279154615403037353674733510159117618462631345515480531861498351812875383364319049140114965602426257394699719247951363229065920775715883391168783317966014416920717067911706586348311799757023715965708823912572411908002137987472038351772963282694587141110030092233160862824667324100543869910260428487340824751389213958687065154587497877729311659235904673241374651933513809787239619594519030550845175137188736183993168748628357263434346959629035977308921763215982044198405628280707781561699728137978182340676363927070723159652698203594004390440844497134133665959565427245258653898360251857150789808950829990895509865211540586948877408740235039503290765393137912184450838291176934690795723569037816644711520089294360543142027852577110214126697972963967711362123884109745767564623443805527382508620123616110247897526228207306970436938960792647180799808950406871573616187953497705786433871521837992363968840826078783125747673979370377925326775350759687552452306371454520489848499377742411854133553707925222472265517234116790499653855303283650276462078719706455591937978046688129964381766567553650777454271437222649130681043723792202444461099639010520757311208811209520954694203473366939025617925242064663629822435926067454434287781510025067013899605338368430477694922234529435361365986678444867167256246224059834383175452376577051481845904111302963289935865978044577276278274722757996802014880930666252494753127062097982951609426248947475577340290273866813948405303018133587267613347828682590948100995865361974127891871735995080421460170618800633913585636091477337307023582744369084472920621455493979559332205890467297489131701532333377448902389598794511580220067437848034932469967362501133397523620085385650921402082378631047111522262187396234466228416413044664929246302333923308730324457749774124982555447499315131091459197460750725745577759971662282130834239290193570547870299717377173650422094507241319951607954231396462397175136539282785586845203436239584855752978771413766209218812682937921422601488243651256260392416463681080217148756849104648036659030945289623519772170756068998079756156595497011396872062752500856214449561094902366958233481592386651021405660913599790258456180413813102479364670402603960958426804698059371377893118772702615082706103347598780530588542469689834534815429412727124502566639899089026871048159043654497631298577291641012161918472380935903744948342374505272047962232957757789769113678348858582319321189529460687535839549631656434577522482284098058893366987941197080470304960794338295804907200198492152897659790478983222018306917317268313450299565018590580595357768252606444909372902210353314874473432821925721230919383296086783818674572548214883406491218264956276847226475722638051500372833151492848999847763964471250457607749131816075093294766708092928656013026279077526458802795315017729911029805789285317187454515352129914007720198820575783702615857664130324646581565378391327463403742966541514825299104398352751381407786427925941423965528116440128015540627425906557486135963792325889199066604005311204315192774389194989130049671974827352633562449833742487238221985427204661031451565771737367780793266577904584843839705623401710149328578453912367996219511442628243354799312700911300552980270587920442099960940445997506462009239670633210781676697495126494877687206205151635670156983269611038963689620436721694087417879917990356397184387416320510403253479584196450769947887150891675063601950322623987921856815392253111983513473595550409281073606410542882721394223166485365499322098738557459226152038174041700392762612514877349975450436693783868728206486119288205788389792359164296393329353209597767221614622164363714302948513204821084807996603667491691182430466220175590652189433634765336051165087531551538957939931498381908448536017052683659835157660426604567851573088485824472316169242116743453114272869225854925622204717235196670185158447418993692232370993954743851720942720658731319282569596334448880534147165037041156220715581421095345284619846574559868540966469574751051985528632338333751640661589716717655313218209024433215092730039561175095112697737598754177134802576551432257285424811012670241249911868300718608263634095208815374274299344011002296964933512455061836456159210387438896384400458011855079749846253889655504453938973466410870564195410742881659174343969880394023186427891426540809631817131214917488870065076161893147825124343610567108991716632359683159278772007988186232723890329978748450567510346842040615868360028524415009693036113504246801488676557696849963738200298906005325071047895317576735809597519427847513730204958221365261524891918515034526200181534605165420028220726739557645302727521599917363559378696049841349932154095805977411818282323019161616811735026409240405468298947527942680714043666114948752733848234986233995522995091372978576088604362147580038233949494142549585063195014470805936677967765337063540248398335560885441201698721791827240334315961069055615664050182302201831078122967719328616449084494934677772734147490686362241752472216839723902926546956169164356771109814239342822097849836354275653814000138595382244506138912664560479945337485327529305895517694920095354839258527502180460085108106728277290864881851312932756686773293970648993551284245347319319081815818771846627830576401137501072988450100536218001404533308241315334754353156048306416944137355514052919202391039039647527683408809179034354191374393831060509519029626052281838371394795169642460255628416675208895427144456539742897850566588231710294525946102159714796925401455487797055037983468482647441382426405647502447749257851420143997373349954303152759490999256431229181589801830407981243869128887985777049480335581606989357435939766393078730229988628264719592948676834854933203172991063689104159649261579189942266175915141219326996079269831709993864805553082634770999060478578092955866219890081408518213013577177703198148863906210794611657906728366710189343716755539724642597419389464673265854527296288484652522279042990136173923408088253398410130410541764679830618795128258908846916922288932684965416368678780646097299802750565537095325080305723475689352138776515277987157609847077542697711526409123748074953578336067112551952618906701995694039178066384357465213687402330063343821935077926626793452906048031892322722024677066107816210481352947660475229450390064932731067963099505544099418856017138743844137301620588020620776003384228036195331617176929991568161138185511511574998016110904487943997344572217702591064758665993617276944213347024290150651215616635003031892259085484351492743562578517273911377075043569228021695541326030032357129467418603714979046130523001897964925844199422278429359864402827549102601471990699321766964634030612528374388335655737048843924714877248512971887591433432106914843009223222145317802028758145722171589242391074508556852027120857500388465004486149569689908050064606060407536505091483509003104745280240239913793092251182762891811223943050671741669829465666712046689413914926576449934951935921998145403626163532846738273792736843765281333952463379234833657267451692429972784559661170260126267595597093782571801559200140802387737564250855488968064776461489441443970915718206514073633420457181765507783366033798392622609732103077857403396197150379633466586122583882925308998137967074686417175348498356090323306292849744802539047397687995343089391589487146474975526778209069704588465076926249224563888864165908530862547039883932020058838963904004571252894987695955234803108695749309557499173189487863507936785821422491383475183117912394112415579118213790796642931064233099766132084714711099495043291500188913027569568773857225125143190620110950948125297436970998888767486337032631374717235425208121754804058456487573755916279329878712654044002421530687767127252441987907020926681337148889350824808562267800671479037916039600223876221429487206688194565237966354995769357301596027401119596544991017025114529829425764036412853288748392741103825676560576952555615881149633615676434567787431281707973739002033847183274885319266064665986305695863820736943623530529366194247505400376726508617654350105672043307548306847444825566070119543976042800598954584572223973465697484473718580071027416559517334021641545503516288881774855811765589137370797444562657528063281405483141905026602061523431956171538597191351265350115626186391355887263688112765433112262182257457756376136684753074896518245494459605042823008112863337403118180793573820242490789237422308119771217689965060161997467484368282124344210566825536589821082539805264456795064989497838604520190762491621856344758341529819144777015989258923037680157731759658185317880614081003378621489516493741717885433095917683299888247276650879991136951169903418514276949395232947675813410807879935109511691286941977802230384298117005826479771589983358207167046778751363381804627857905202111535583451068643161575942248832491484779628592744104468711105430721230055773465906066777896251218124562238180748334090143715343947288192796185090302952638130125323364106126902962130139071734110417208701981376930218284822884554829521954029640876929649552675349595161730556950877418879192369172585425106327461335031916633195195656583616062124672604274283401058080712606187779062852451805260945251639985596646478511964925146052297626933359921975138500036188680010597614907689786397988519799666970252471639746545902075311270542876815023154452314569144035398007454627324873660411511121782303307071862283543665933444799550243629705984524576195729911512436789974180807893743467506002150796171731689955721192698595615475878360149692513266567361799607494568259496641080068581195632197282486534732396748043963168009934610108702676011234088043566853613804942475142952378505326542946341989267183110109850200845398574049275923386470477118195616673471768822858200975458069181890201960612447240359329581238719434837821832185316455777560908960580764570748983668152312171384671094077571868849655474894559202642658250528809819065004087827999666271343070864078104046360677349795956663786522002527926885847873365464015936835537613404729557713679953660950843680278221599054181226143397836487742937691567121042660502349948652572801602878487075467946421302284589396054665773675886950809472693246979865221776958495682319642111129945207995427248683184287389499775237062395805751409582745887432732751535605074104467857185358990146216534159679911781966427098611214320162557476793697610346052974787406451533483641181740680063370070641054172241427645240287423745736765317277949654165590250743205565882924176937600284255605531746307062637786444799947483789030214505609145787874606554959460222300758401940513729904432833238739969627441671986507073255264455209654849924097322388365349544182634958609103132523034429842048757162839811417641687105814250862206703260728350836366841815311487209704822416090787923859107988885300602953988398635241237524701310927855320705552059426171607408938717603897986885485957785582606572874706851896639524552119199827799309883541184440299569970728123748410617092283005339765335596198503009223427743948704823456642746450201810521555683038150291568697608843669727375954012005165711972062384014999346420220568236808499557063962434623177621828975448823570404329833546145636944966056521697280455194471679591367841247079284262062060335206388189296639151356578172913277340258185424252470900923339672644001492558658719858439735387934458395195985327882027276543004530654325247033307565949527210731629747115639428623927959537383702927030822352496200125186757336030669970984691020147211908324844747107590722333159394205983769844825370916218480966086315611161823994479137321852987792187517918520004928143322360663941271223863218869374596741257772456378269030954129719359382936750723576760097225802394094766676272876640665045068937411129479986859604262438405948869379833914606100525135099894755806924336564681361598053511956397805361378381955144054597467186520959452327891578397730703585935128422097665426456423896478797165991995472088034683956506663255618182006493551905645304894014960407966101267203906036885750656272465239363672725260850455140125811501499577607018598556148309356058114843064919491319535965133790317784979066679776612483147820775824227108905025872359992441325096086876294884695159989118163859016368009201096466541818941747271083338073122827941105309163970658103894689603059386574270677645683057454233103054812753873064857096077563740844153575572097931641071867302517134802199661820646804327499195246159423678918520056133522492875951579919952177526608203739883948102766285366436791121994665772448070093544234180731967430307111629207056167958734898457217325170740736342124069902075757301441534689254870265305301466468686276997964597098268789339852046098453028240123343134500966582384620886723088215150010199208564202453097917130990371765820226635609783552143823247498944422607409812287505145001558051150095110955275509864167045407930266373789492765713688586031814077963123297652487358925842176552209159845412859067266054829509293264261447867827048958574114406846779908848571942176488240721879892938859423124627217448268172943360868659701404523543897726665548845576167924206903532143346939111401057817805703354920689810207893850347819630082392115326841924528987930368665270886444471838688771959055058732965412611087554255888964758458278629876027182834410297226619932422684567569190716542225719321467678890140645282504604782618357825451942156534793587471299496726720514471771570293352443360724365505265110450175522185909137123433375263514117659624768111139270290001896594127739613810310675202058706407079100415077501239737576251413546126872524293768001078585462829965137865085016950992431821062521133140423811840818553646873517448284453670009795897975520386612977002806074419429770240911684157634210915939136322517208481358831913207384019317541587971127472221644434045441032927405333270967195935806665932950929839218485012934774203343661870511898819309109078532694932960326148932269792202780912317771815933610675069168652904774884396810162710211908349127463773313259551544336189878045646013876959517018758595148751355200122492592561815110203343783828447053321758161549884613558130960263885806048910912046879189387614787955108231916209397441123254656849608245808883195728863883625227834538975532489145449635702031545538631589373977607771804394623930720185196759572911555629901396231229686106060445523697248786530064351661893619678493147731193302905667455974604094671318714485046038449070005874144634606288347126554370642582063669644683552294797470449876199215179331055135667929111868691391584964426453958562630570981593003898566933907293510909769755544362292508317885475109375186362110595498126047217408793012212296450892204326279225915877974845825968010223509943684609517269861492571607640795747544084537393748098187447673090610203899071454515007804898624689328338968574245842802379482132407976219555103079083054957402224920006191849386532267565146484606212085523462111357421183905797773074068224169431801610628101873755821827896853386386658695506973485113220086106334434145312195825062060049936474206902216856447233030061902575803933012740884573487329297351240905016498548139220562585687689864660225342399825176502082226575523729001010475291771049025624754903752519870549180377610344802186201529262335433717063926187009013974134124640320151409220474842506760285960840062031706291635225404790466378208704496895675260739338847901765405763758828606133237459055612762105288435650074888446759362765305868544898372131988606830414637867930929214238413002279351363870120144600698007223080390967600668797030144918681363582778715277878813577827359837354587999074800196630875997076861796924406087241072614171269289123574588210722771079233636256381294404212367262839004267942608582519328923869518122000649487573710607568227451382824031830056103872373765150025882924976525023002345488459175839703698561189604633629135722408241259497241727648355096408543207862242074981173595275048570675389580434178101269589977779329425605712666087701214514673861288546204461001527631435468304417960891462654679820341280190615572165796842787227271965788288649179390529446806933052813169316639669733924882975053428213434043724735254022533737663322205400827703809394527129204274367960028032213149609573865685798503722541425091638924723667053192007224864023418140431845034106579922570772969124390930864852450404392521206334199804938625468836035893341298224861188124503037022459720100574328384740126352343700841699604313624267216455479768936569486724302120341750875651062583756140008370103930105986307067909369271250327469379023447722681124270053867611153744042393168363110523146571247966985103859064160874954998606089731951543635195630338184981105031162997879994591498847938595999674906653881577755429575412678968645467934985442808235612685816753627572622023701463926333363689991891932326430217798674632692558495803553595262879281796944656205610649953985950681802488064934415101444634654879133681621795904128852783872249477949755713260364818561329758416535394879596995442845194040582880140623516766796073497083349170813455487497045650447231140117536490497360617430288336747925758090743823467739525909377418393452273310846846230311708207303857712571785502514893585305041633716624315386667974505377500575490279732121572642467266458567829416518616809310179787056495954815690053254884091937556282568731217512449390297174459653000319822017084143120470522504571198171593723902264062366094882564320078244795275130191236653387210775290311078893889686507776213006574991026416553089209432719109214229630947017335012750544720435592685993463709106874427781144335702321217674004331272588026160115666768045725471033359295720195908048995959574766586276120829236386818597884642767125772473214640647060383805511309095724599965567470520261737007368221847180386922808387468508585767927213423664034571859680237351327652292673946021385796721225782717130087172436455921538186476510588456076870009675834835999242560423360636863991857433192232682132627320644029444951128695395425016601891940952765945515908070529285167188551337645587688354027115544536932189442465082593132828295166420645576733779932447709700379524055850286455570685178187114225117526597562067274279685079380760712331595686728205031985585631460677364245765713296886064228493285826246385362395758490547925796115792108606752244869030589293633973978963694225037231261042351218105965604284448222586650776724780433781232865783107777801432604967852274298146572016621764902812076513026199310273688492964319570775408087275252984643078033732278158298204734969992293876269080346131942491959674728901426892607336838890277714521513689757895426698529326801491616802224613912422727054848287161646667069922968847282710332843106305232196608205171756876872369541083970591992899138687222669596432206969269619459848083600120726229701920171441230395758062672292048512103205797957132075337395610492673143401601909934935336645492448842433923203454368937621141781650722101914050239035433802763753324959013354519516901464821435651275576377408310890116085288404024644478720240476041553823950556127474969853055485901690473383561613239922014234924673316314195890474096739852672179526760605477584927676779658601586582761163414195116661165952328679354374238349391478611222898349574221680075838186751717781616631861387020461183546675387475910362450248894740837815893743601472004128797260428440231258532250824898534413422339558070608919709482429993273832893524167828388616213355679934962195100400768774918984036977248879291798688297254027958507501191568715107125622674731680297399501304995969684974945458818164077157527172147131330240008254756276549559344076116647901693450352229686896960061656719854890424295981639742360087356400769858372441150805393819877779665534661270205804747362815768931468790335352149811203799728390064939093563338783620354154791927718950801546826636803473589632122566541432672918826089332048086485529760556907086782369831270917267776698775129669026655546477760505764422698198794313090741644484279307060392124272355257484777258974353499863327500118287759555596595788296969087990264931344630268894271841419410751934784056264835369556855841972898430273113108039224997352444270629836073118543820378392665633774003674050794827616508602696038936056986001302253303895191862910739887769417067883115918059693855027329346651119325554093902041826990893408505747041936249108622620045597286626014972714753453886212869738521500689902588519403504750271934998098283292670873216668133772700876265867215163558766214321315329310195397961168015032867136550435072708532367691562998553840822792922449433488553930302647554976120560255896990336386778231903416866150798924323072232439338858618228925093294214628622428501940376384090102219218278421104858655484028568426979293128556786166765213770898016082499873158106555652567918238259782437526016281563504390075058825418333314246386793188964732819705272155285911643754513527902509389379191764972337039503036895892843381782852971351368792533565309680826889378355320699779357891325386211385763574298370128462731805071887474524050883163592939900421160718022029429579505873925179189946581515222712696988375028266565791740799844806568672703771950253307826464676687007969215545890604149538686048573868154938201261117450542135198860613031579677038195534513119201587455962228728953867938087972952384083501120915917934170451250384313007645487030757520202366505297724507331937275484975184870814113719942334998966592868776327233959308236773649167566079573348049722600269024453659286158864867885210784827695419273777255284670563818489465488196781766830166653376600085469106448714041959557465597781796851467924891025700743039985364648144144098471436635212326280924775314667175119024555155424165897454843789262614191210088486987918240740446384230309433300733689057828817971736572084511904930662821715957392055508005838086864300035050230221812861881337014835114718551623222733622793583069612667889539682429990491973021459200715949900594697541078530442378635234608787648350303089267372324677791894702521427371459346556529898696370469312573697230002414930673699964164836151679955527980226132823137156751185652781072988232502841002447712527797495965891029572982456771694638995083425554204180740307771431761112113984025010845419812014932290207243101444930746053561826824194676891636041678421893850182163844888655233861296681130665056152882968377278404304208681903451596491513205888088585998388856474537201421377048767374753147438698961191545930623156270606207158596179568129377416811174017097955007105824033530112311806008018012118023108192816091930081631425744593825195480777709532115285860385851743322834994069244530276356126507165760020171577412868222605767510876436825907590029782254976801953410161890369178738433770792081017216029823925983431643828377562196098287361169526968626897685135969448492469852867544210116351313796574976991372358294333092260702975325893853701029238896798124128848190194434484652848419129494398758381058131521171576916207564603867154927305238545303483573433215821815273097795997501314177138391272364940403641698461791250674617779853927864808997288289123006249335520075759777547915247189949159647986437960966485378117394084938913378112801588166146421291288188365592427852339008796959241425351636385399505064223477981401105248709644188498486847802694472529401894794820855915622408168771222818228819787044550090359335919268708601177337106069045783110658967445088581037463364952117472244641075360371603883969486812107586721569830722330065195605034115621253375315241559461770496732520290343481304121800745578644737416972681469909066843170820316533452560151433327607459745767815359820876832462574520381598233421879451793298997777120430872592497365444090466094623335203414707477987223251282046500550165194510987972393680160632443714442362063511017491443916722082354470141341000281969151320622531513039097052639662159498410738704326790752355949283462142834298307763887937418276986023385228779093809529847497607722281439746775293431412635626883812496853471346869092980146612545232455964660177695939802491666871478510406898028263977308739072749757360022266595239257459823517906205962627498103323142530401206815912940211610649691658942787740565672028137897068595716181404347700365005641454097342771026703641785007246431307771137255651566810167814810156198200478717176175202059793013342969618538623577770157634607019636479605625963996579396844105897107654759214631581987886927451330035493131971556381536485943154023548717195699035330122575481074412883091679020461910406433218425974823265934442782718041448484275897065788376415326053363204879798763440469089043936168220568955822412790593971810937909826636256473116538401198778477878558688873823193979849633096561933172648509971668616557816031541953523592409779587288409271837609227464187806643096401883741198531639964823308643636021992607638526622777102337864062849229812306850744761389989806568138900065785594904854863923606826482069655863041280977463317087476438272465374726051048209384495397911416417055651521594608845301101200556317945517376010539629804411000027309282369763824802349232348099497091192170212420716113240880884877389990129288734484424893226548873222013921511665758179304879689086999584492490353263988858007215888368417010364945530060932095898108267212280673891264931070584503092888847554444621167711711912714987989359756070043583086581135193307466837763140109294794382971985981847927887321382347503240763476772600731410610034384410387610561457290966678098763665244711963120490886181001165122499190742285240307970704548352655424594397681312064098039301679125785342076907243345098084410932104837005584092447836735915123789767202501021858538489232455898390759987203924948689861036354973019234142195277514375112669614151879539676944431190156383685164528057416190136772072742677343353918217943773070410013394496338554932583721469429674373982106437433839719175006161128285757463934534265864757566495099793293761364998262482243525766739308918585065865758324290762257256136767058364983308861184906638091876221992317184508746449096381095114259988080324559352966409794230967478852846397328997248321075951030574426303292676123576069937019941536222128182397023979488383757599215674328498348960202882639070701716884438548187054353151456592961855103818184527788614278056420405395351877814936752567467747130107079478487048731529874736816701106551803729923986855607805680664963441079597033680815852536180659578917301121024819976027394771895337333151705815047119358750627728401193846508242193350612333599744119825719690842069824887877888382471160324116225429509314072562962449140558693582507002170693916853659897133379054537638283285343194714741935995835495366486483228168989277649942099407191558166974611151044249068491204553776441561787889750288123651006606739106289356683492274526626715807096444088504723593650600221889713784665027334766040574687520099570964195247836061024498071541454866366736460008247646437037531812678554615705004497174513394615082550666005832721519688977214719673425745853797649786237957162059888613548870900668595536449519275597891743366469487988343641699288053416824823739098210953468491913917777741364883403025233813134051249474192207583280535397088440972215681352819456615682907438032863889088456712213935946293788272126704283232577846790091792549209552075356474031513925080591454157226750765404159119589734214758128936786770879985254817147005669905028445552584771828601231170427564184348844302604782913421015014669426822697279121635526848063132788103687386704072177793529469456023463727495028449389681456712430941465504345570792387555306207675027640715251165229258811021105676526241099051241443988671642903752129519484126437523886206209963517180037354394259146090450431101100372733134288762391141178832240849451514201812330550607883074611040852976138510416524375404364277634122653115567245566267289212877810758440635686030800919210464764234676987336547719234259295295697293122657101803961638220619251268464590814107104917518519400821414812150770934634947849592253952962003504015736731901107061430690570287819210248190842591124051946947095090765329790431240661202819996504487470712362970511021588195232930564666766229306032867733290040122298037054322472430117236446146230571742501200667610213822185870731518290827669989952988185327566103110111393024901355404330609639820856714832257149858608274342939066069746300873218518701123224947879479621243433669484626556251295870813519264811247623851119733668450433320848502692017714968217615824767021856965198343903820786972035983841752597036000197735839078077959050765869070168370083451650073296999528128960602567207900479568268006093034288240800610243722631398318565383453801399739630822989055824441203840835765702688098278249062603832552870787295146832838108376135490555830100708964719997411834892985425236501123717310849903589104685703760325448522479529697489980769516330699791783277458254122495999685271596679279757140641830277275410578130275487618037372989831119777855609446801007119633954111385644189970305787536892877801789723125332454416919533083214589839159729683616222084994611271080183538741031206151261972131410530595877375771583646488313190759178588054575794262032984549781980460086046068854008693527299146591442118046348235588941306176040883207001913531192219326835394778182682377820436422760511970244043245967567366585964278207317636569832685840688444360876733448384967367073966690195985905740408891675238685478133217219088820896750294816186845548774230167667435118072630840028430558947952725984654225047451924183545015583918826692812957816565524131449378165549422443675624687182359643968466123690059942212816169185286721528479706043142496706872086060456444108645570924530607341228705117045010441545402519978205791880544244441711215679248532498618039225544307538195359109066218779108997822165982877835266722827022914000038010400469491321130928768891878967600976450579093641417655237202350395803338519615032402528730473567032071362888517812136837836484082039586483073971576901465313988736564431974730767752797845569835727853690983811717503043856466546999347722524990541467347629364182182737547488193908122560891831498619731787746971437801301311594434145447762403982035992865848316661931540539155164328943322014902155888996911283313446029922501831949906513985396169798865320549623470712272702860646490171210707467741887263936011511288308117949373701820571297845557557238698485564364788207697730460209518412596856848238098856102817786666941798631846417962617691686501635098011621946756069456259831619735280537898846575204027558718720099830124097498060624241956780130221998607285745705754539196614828124083443543536952145540550590075747646524318259895313963664860522533207822707074462300730585758930177881370962290851643478899257076320913283513726690940537259706266553138491997843724111187294549015134669474244177336864428218703492979187489650741710313782314989945490320120840273386630169653496414557334481447927580037491860793043454617800520537071280017698685653143079204803806048344153687061310087769347297651619685081379652302429672623419423606473257960733731860896984840579125396495964479905343642223271301333629469897673599956524023116374569689390657086139307387010816139580657489627013033694636089431303429487699300056164447373399198746358236703607314387795388098947854185518737747218046219665053927871015821754233053228540316195141487495542600072714596330543747677418944439773219719039633151843186309276132584617719705919098520113267821557378407385351816144262471203206338060514712570531656442109258493829127815721618507746337894571471209552155138870181590513498607255361215281350332116671814403142083323113812607884174690668970781581459946117552390324819783505478544173324237510156982011775683315200806619106216341171380483913386069339604108687491051935744721947576440845677668096722561556061657556601039337378359091336750998797406985184524958487878674513869822609310984567215964009900972956707798153116993522553918866037836899195460878464689946924729885178040264482834329028385067367367677653166178218066535819283374959963526955672111915109192345649477499573794037910908320444976033264460579186447869709749196109933924499879085848720634574745593767452058918020964220808380152994059984931545246304434383985405732815699215531750529718290153643592430928438443607868418780910927861287340666922020368474916160595040680230324508693312665204112355124494351167255564181953451726561820861192208909971022083492838455727127092466134470216212742242479401411944563981923979514588399155462221508109047452923032846438319224363369046453555956860024383578932312310912711459955257251139921518362905683289286202199434596642517099373891202915294849364794362121990906276711826058542350431426440080110419442832994038244377663173375337772053397279104011999485634777006289278557162831586682211108075575838065651486578692748851964624816392810599888100933635925689083565083558648872803585935767851511068244234757164535977866802385321177335022655969180101386489638474281910817437698584701800025606175829085722606247116374052551042813056158286535655707360026016086588354910263899633681956395910953402735985715966843004919405029698232636758410143935634524662110645893011153320130296514259487900907679647494630816849896524802777389806354427097435413999810126370612682385569780835654917997580577674159611490681528066531435420095041045757810001672216035048235055029411107126446161478989261872663448583135367622464806996420746789118512425962365033628003359307202253061535364649983839318701700007299112563486698346987498690669247376196062833703824327755819662763451462645755931327776786286377686887945339393606116668467025613085284695430817719652112758267437571073028009709509866680035898115818881894634824595449919884152797791284480875092364671396213886543675650111225315871599166592128980683818215204866260209740846931716290058562343148842196929556649986178415305166591328951111598683598819564053980627149841511329697873756200291358737635387786997495387181963179280782732277687546220373875787462362490583146700361274979392335749471996671643481750594053876591969607909076667438590668751199406335690248625612053254762841850522641845464895033113475394090256673211550435616955161452430630781954674228517996791912830815873929392524868640817489580301971408049016675558841902757944664266127056913917315864370819813461406792702069734064897264638266721286723032834123851353202279225729159480197691155044703559831727970267808554687782526340137340184972313532978598821780618832152319107214041305234357654332612684283369271704123053537954613191622834914630862162916300994966710376559460462677358669912184435031695365830537213810070344827131093250858943284670090699893618005439073871150777205773355775170478138509356099347113462042441252343593523152443248003671402862418098049372747562429279250589098214714055959828926031598727944870068944705683791032811857203659365989364377286435934128541266159673914674105069470601918598347607755074676840633213493250875434782460938207449379098772080730061411833853800114028217800161949331430479823577604779131340217169804372345614373753849825120298875249572304418761361472779562258031715268540833143286589912879681337629585001196148372849159666755156329283033543275137369243416417295412141013766627951840188650544771169193122187205232585090548135034538713391370872422717421831150862213251755222511074932668874773421333489247454855687657517611941754678483388583213168433878488835226318754472911547760158142936469366038467916106937330819198279804807914266828165044937416240162905420291641679253378039746112227803699749554226405645864659525212601618259823414015733212320812971984212286291969662975509213986211824669619867446310657598377401544565022434939397656474956153712318957606230585356236357943068298092930926944164440408328039236154596145099660480826078442149788130862584589859912689918815272477502194452518493997096806749904819009680854527110954941057111126549317493363178837296611449189913842080129305200634234232189343717011103207973458004033076426758279841526930471533130626526746794426966004876863322487660775844060008852960541833761495970105935060867209819400420009394733284760777290137994192854369215265889015283384324083725746161658487684590786800700240873140576782850092443351365036662616088502027251933813864422799857903888431315960048427484892422219199474683263053659388266973180013797825570021264118445983172912640925854150594217495862596385727329775471049390516591807075450846728366683606663229006772111881014208524317344058599339567626091312068494803060809055283391450073566347808319515367533283521710538829099250555816403600585693433042522159502937434550333978032415102129839308402450839857080114148393308300849843518992887522314349789332513783671410845510231271333055539696389109994003621008843524206391324762904000503109911789050870610307266140679107644259895098758908475120837586114064822408554464048838448862947878863253061052532314263520912786746579005646682047284105778540089516284277108019787735219276839173720116793834979865404547709006641538172495325116932740040125233136225836433271294440414155312674985413627406425700999493453565016401543856944115494515985783053607636814095442870009680052773001202186396146095718595508475797830870987117149320616691298165317400159069104217892283417591787572105438599428463287208350074591383126592608669061862101389415892218944469205570798544084993855444363790725147157611533093619476475731415056667392063291058778721971292019818747715020313338792894180445486818520398878622583271268717885314452546416390282794596773332510260551657656826518953524519708557063296479841710612348068942669684008970698165640262752095995539278222969935729340934162706552783876382974165934728252013718845373047697122985800423730725144196362387362142852586673594196262177443914525056916029837976329217057870152411969414616749514832531155071489413248008028856770973231447786309006329794755969678859950353114892233748535350115583770521953278682354660440414527319199441221975097630766503131642848588146742230483283870212524220523981942183968445831035812117169777098779903772895167321519680350258710294224965237659417306747714901634347086923975201364507134709497847167235644711753815049316944588439406206786699107442407928907893009780221798586202231551853980851938846044705210081988292105166819390924469616417625082522112130520274329781099811700993725990649691374955584222136946603014616599699516732542889607478334324204179415247797295274272026067291201618657093967190073720071976094831622548822907011293797941443900539586541341578050225737952233204679541790156647715377246372839213905507157176566505929561372056429789137096626843489109334434289443868880986495678663510841930565108527688433890704027966467558257116439481672610647839805224780833120140918527206970989970464712648185013935513684450406410534216062265694636240951855168178701123978357823740492482094396572552256480204410306785970376951002059005460295870197522558754728086850321924932373482714109990986995583054907076215611257746279133257400943604377793895493887190470364951940734796344580279419903397952368358657909450456182330898562005466069961829300422411892793711078585452980086679366912665386246585587941469320919269813091409789524794810653427355952250859072286590490741374057319770184705212961787880891023886542417528992783966006645010973431050271873145981460899632577076687433432975300677386118046015826483662196653959167492544525655685673009236567224693158628580544723811775848196478911964554920565308693342629032787205866002003560718125634849066814353366659308929204501364343151176329164121152612213895116838599081317355309823975474420445084993661852316470291387259780618551959832506637730929415642985343395922672407225778143374460100654396200660989087370211504718352471372314820994651798012523928513991503700818136642525992722495965161638945461370039679278701517930342624843123807895451354242312935475341499169807695514661850737342178090006239808305718199360335514989907890261307638313977394937367036475007251885334699674732343088894746315696151342633240470732179831670708034128037844160485791025361576758466547835701474438994302220960805299056916480249545075010201322490832341785642127781459399174242932250250504578619012304344871416238974895017507493355679069659588063229206236479801737763099263896946182180866348176864478686878276137571843485941853919106152233427638600698665411884627399868309685498974753461895632502736881089696723313792818685324428308260370520443514383925500775223738327702805452732532570804668494918957276379330721491036161833114892606390111239032734225748379412725339266335228407604753340186012898693406669195190514896994524814061585447088546157787932778114694771522079791124475723810176462234470097594472550154515583682871012699414756062606349808042838699214214470265173466377128692970641868893518050292545116457792749444950848297038694449777461674441626056867246431563555137640048562220560055813291060391953328352462782858019886436340658910193161928706499736628131873386751465826674829766241808127892560270933178102793475194370192074634880860741081447620302763458015720932403947931572320572497621002812403220135984584414534139497233550435302942964512339366118199368977670826688802388788336838755717570117126867541706311104159279929493188560430657493052529073678952721611680105445017933133540105228463642751391688422472329098602043997610389577562618672112569782776678182587691634349382643890176912596256244598421355395645187958958251109505764352265695878363759170428076601499107768896305802708249793568496945413370083109851282491867695176789811998681242556429480961427488359554948629426208097221314914641192093595853129959490170545883296818134078319260979248391639577869404793520520628654646832108666206609086351886594120487188379663251023307785113117166196617337801720828909864454508979763805396849600252773052410314930553302246511428623490141016447684102915937340912641370209397344223123213922865173551971105924626018496084715803092444683082399958481590261431346974373968750632657361344375787676416764363077162389800123915405959790280746441116905733395471614228315184480226770679458913851680391490505036015446416606217782584430088218658266427476616294056950523053774663921016989844533092761307415782596681809848983429692701641688666915771807045607459450870747163622678147812050170247042637485158706954624009641857281907447243204855864279382954174272361071266344406518267701122968384908050740103738462082017761255453089681416401928109923236667104712149086391573987048830513786516590254765122919356505199965008944633863368290698739803375791643368855806085859267771125319422490830974487995134112629238933359942094365355388272326716990590943034563048794581467600503161965578694381777223856309148800805729666354981227128605654659945157995731366061273483735919680866111459148545182374305748325143096944264563801035454283702271005516842253175383987357151346045194164765300819261948599232259236896502986739613950630726542232067806857214721698419822705376042603026704953292397830609884775405244561058998929161368000877246169887017268125441993841560631316484266547121953411118946233223282783772022024924760985227655431352095885711413137354442469703049772152955877397584543451965836329432238186169928771342891324618808815950414161177191446273545088211696428240683916479437092233428777735265785078269270388503212776112323844104618687473537565624387882440434830687185362036491791955033422126792949895585029760396534589835657838475166845232837232469394590531845305531520860534339718264651469035085757381906865025166478125522766474756053035083620110379588519657707982459694982867109597818412315250076212295744149620401088020371039129147693850257135683018915061083507923434799831599232321983565880975136850215887153871481343572613378795955789574532779879262164092161143425617985198847283165936416234616176243539662280150065657568671648230714781611008655495222606362376480736357093207273006611980598131052730516051097899763289598569897232955056621165296008395418830029375033005334606992790320263054907077786310961597594987998196575904210522398286901261541589538275657329895782306494721557184493804772045157208480717160660705910247371025422782393063066042237612856418782523340061480274780275198263291483907713386587512560687542056138767424633327500174646598664606869758750040025601252391693587035262890086013903969706043000014925424070628774373867509554116068051932712613272479741207658775560660649318836824467080357627616087710295323430079534165328354349802017246460470854231121811675293343416452702503718059561140908649831840373204412789053800073756484777671548097097471346682444985961917255946538894562280429130202842487380455434407390314277117168425201974131458639223990478205110041789355524305793547157983263170582887645525365444522077089554924071529176104796362406769594113006358665816413215030178954315146240819760578790125438603885272382578611124335917493702024924294314946682926254437955478884594382538806997660748342462649174446185506566505773944736341158104563382612049339494227505769165640072680039099037640255985593950908848109296221337257302905961790988984411750369808349727024954643137835294900316775236027946245047995531362238418388550054866914609424787135147244191059830390041678158514505449958422902698759369983323227684341851509591416195175359256509406854740795516882988755418062658072416489093338118188141304701111036944265243844494813930850909090733066700032705571435035645721399448741909170664447787337848092417841781858492183460300889549468931309669414646601015106761130184192065918666441268805059824619542822228220511193176377974177234731990890115822174958941814464215074374454693179381169109992469139126436957534381521834893560007772652842761764310659538529813584213845991019376380325477142654323758638191059102974979460029255135043242482229842374537299481210776902863575927244100452474129432841567274315347119625718363532038896263033270908510088610949196307590899303361761467930758713850625208314020313702759332090747024201659016283735712624109187045146823095074274270116804169230984318604529568934740730730424211765403336649782967587320990701162404199111742242517713968770931894138842624785889232769432966000253095273141823380761285987829981645666844111957475133996468499275340611889060161581034299882419919707364681498915953373147081814028928470853153034441532432610994003123653703301454565440696083564043549226422795350809947923068455224127438606624430663125068012801918736692193517927366722641217964508732844984282307945181050021126914576941487357930858972927108644226229741825982882563953112919295799890027750078511315887160165797702588895009213965703685913849481975263667935856438091454248883765886066244192007442559669637232527555976054486537632725086072256239519722941827126664693919013486679305948011768013704947760688208727098919599790906660261360588983287495983925644204038019475351276237359730067634580901337431051151053371389158402179130182498930059282470763703172186898361820845600667572749275162909970409966086717131583453756664326397183233441861337445836965946937970307777097391681332588506745019970070777119720105408324133165131694722645534310361498275597090599387322981468786095365427177397250553834780788434167559999152637372965571970557642701598002684920626159928248808989729516588385909662901038106189562507091817014177073106554023590182518419583890558758998057661345019287969689988054795870435034591070893996286921058709131597348304091451708745542666999573013122120593614235763211650856655951992932072317162206386115220396928976185247072735794082235668100392876437208158660962073332433171694775183102593679749103848337649364059129797385591420895023052293595486997126401665821427618674410200125739037852822122175286610039281167878404361994806336167501145433892664473652704292805536361388803935518119329819117887427575424028239871209787925639948595959709269020246754397470325937007820984917610970932806582687936162009300199284695477902667277484617732583936219870441078620818738396543712579188702641182424318129897574109775828095890767962810735947453129955948541669797226227296977927583207443278588600079602886035143119060669247120908112359172841113181844145910590350417638520707203589646383002542717665020785839050799290985031843355423904824688846695830632395177082033951528121669321665961063034928031700484939057960446214860873554080456562250646705756066507689077551495430136842170076446839719133553867498729116351387271911473000890712413606417947282315614129744356857361085772342914577722031454541980187899075085402037836034987533692816296329251001138331336287788472010734219104472196096912825947363447259404713398424352427165236852549827997186803237063927470196606524062166260208087485777717778932375778990982214507904387555187867758715526627148498284662791665519737904096442745757047869076630152391153644197645476224304557094163493223632051837793218866128688225708398917966801708912840500948031602547781170206603710391138961915848524827264649495617721185241564071603316995635563556914268091963608098700508000189258956244912168442613462894866183907548631768115082873358506530457616439049048582207715724135108157915024515441998070592886832572216411343515643748583248927225665564506203441668557424600467267095772574679284802925797669354287674237088261887791334622568991989179840969972797794599220797483113034488147111168003183746493951262646282679364515301958862909669532512448006957139440900197931593038738940083539496084802064609730345963039129326504041227181969128423752791033545295781107802443308661075223072960823639493591194982752258511847120381505711424869494259079227455173714837112333428614356587607522894025869224671923564063178344945483533549298993147826244443590505733930881218943597839750583684994020219995267089335584921861250523816995460967293178532238369431573277554357877878576904350516503101567207545197994643466161015006757295383450195648984070341373482611955522628877283987115268414465396435872869042677654395159095625192643912986321475915293397987763707219861355666234406918435214798555313561559795510098282297515680282899994964428627013630064785158027182981078260266994081995313406412440360911099440090728625399176855938382700989379736402306501599477993166863396811405192454859773493890530254537999572067959516547888415075956096545993260931691694407536598029707329781377325203927741332805416716323463896281852819445365159063991200625258266559826081307916828938314875671548640243443484839727039488969541105001432673991720027048691283693731500335521823477471432739961421690525776461905535331519841588005990652286986840509012834641939053456252893432274723829125644651812025065987920928807016670610066674342844974294472539024014568980254745756833015455105125450144851953795142747591229152491044954615103316580699926583722456642027833212971518745087352962915885834984485071103248974135317252437475581254710017933892861041477863463712029319187404686023351605318792216132517541648268806624805505636335275654886509794897245815804899550710721493766426492687207628602762761468749942162424188533474377253952626829767324394770201864961486245098133821140977710108407664808753901762643870728576063558100254407558861843311886187691924677458739972030414544158350468386859631840329532843620170577464117282323720560798636611070510061159800816031379471993384266773129784808743354478427881423923726065634314658849778396933821708900957666817176486287216758231180097945502169873144610635764648922760771151182302860949277839640539960463872965514573333214685116646122070190764140738480233601801484277755081823708669847619245106668274144222000379225142298252276247480580343063355638237160962621384962212584300526579373851359714170211056071250575383734820406704910948105803400847850969356593601814454661744894131292539727308428612734642880154564788119041504643019927574420483417961142530138091803774890896497231053288638592230612573727386814039158161668951515066242903265795535783169482290689786950939163087361804289033724081588712797130347795021071572473364389638254720561370411677740454690363217882394428950814701738410332635645555339155181762998297568777737564600878557103341431479483016520673450992564100636148987820287012067441637651465520251909406262937665281369433701169750250795029168203587280455945846910716580728768024668217084815532082047912027426052355848346280442995625654708602939001232400842464554101675706258265072250743486550523955633517530997061910797669648728137558347820472377946506217991040590214339916824415477593309191473398970559951463957327143275133007539278731988021254978062952930188312042875438668697340345726011207035164382941612128005270940941661034179155888599810129451339033936564231590685109048221482358429930624669784063233013215881505950108842756327497411355177986955466312097728993083214688043771584338971942282022518322027171625843026757965215454061722555136333357919236559282165187035234550665109879961790369566078227195142472599917039492824090335395964824859992372823784101399384571203004591828994513080792267741800713937939585959893529927926378148688166799020930092355275547283192072611655473858694028693763861367562611794926152632952005859643173939961501322401826112332963083564583861184951068615754204157322578621472438942004236066388676038303940615284198229920478942062026031169959368179412406534874930881342651382529449339097045762361687959123208899635093937856387160470259687440166722299136769716378473616651094092990572366185930273504476368492689164908423655664725980874192594136837784568156081570942511781429953139483869382574141105513648784886830468061772453150552349874583087678848861431881033765621873298127313727171745176685615830911725771471062877177227397815982284260782579611052393851216831251718856874196054926683637101629031442107824635751344048166677577083795095480080616094057727225130469769546885774213666012054142276597682520877192325859471815593836424005549580636828822648125413964919753354482742616142609364742128765700076526738781193397731553348127831058735886237191731374824670911438911350830297523573364848836577389713472069025765545409473509966832234604354327398250432870904397545701317665415691546201743448660251799260154323802916860325583646193463262060340202740757500801830527977704252700635059827727565794707483271103306398742565960882880134087953182213568188559678579656415853083388744820688254521505813586387356625220979794934307577812356118591252512031515824956435743845461667619480516656811490212578621165866097850056510800254485165366027349219994903247623061068361545635256567387556654487007357747683737403110027670720517011277830920072775653560892360117739748787466623635336452248524397106837462517166752292788603861471251284300103398411880453154964302792812406033210220184350281757256009836840249401350193160503449766727351868145560911224655082372504671997995898670266865543275171092936491780021335990479874030536169001196194801668232719277955531788127652566893055455823522746929163172700669976780862795726585211392471904398367287575605970057277904630935698933805685653035609454961095310550774027278802345970447682746462765352148833691326670585137735386404501139474402276773172574530152439007802227262173791002712138250967389143373311519603502869381413748737009428125321329503706230306972740470655229723068720396484641545165099282123996785382873597974692800658831508825639755917029643123258697095405088659591301650601742697200955991408412957442632994166845644956827677473963061381839743601654848136184850446173751961952471001071129773441897120788988949627915698358120473977850686236312156441538871934704130048578350722208670176446662589554586584793770871245750482796340381309519384640747144355104633402091447686917149709494476978726066440373088471149139792998008256277592042618615500372875162120725662845567942262462522441530779418531908841083742351679097546860203400119169400007150592499749650673027820037406372437217286506228543736276726409777393933618508644755254080502888808214146073971999816029828258922531655494686594284807154698705048588681363910903933729052482769648712078919718936112315050703134360833069970076251488965754755357228690732991293910909088344711537405763080067466816677827207594265899725087319235518583764895291339053940166515599523137681466529820291149198770898003142591571285038381513684576721374009171471102638779619228121169803986393356293237631517676593483593237869777700591503768091346536887915248704980125663309946238797503181019194296458359852743633581487026988154124290463263460247066448899752772579029194442564370129362652940515793334998071510169691312023076654266897431505021162648222065380049819501578651449195359988923285113389473263796681545786947938735234784806506191021830765790903525117710892551087485398235067460211061648645663078687901602229292603393081897846272742830911592792483703647094228343719401154368052492157555921932229740134391342254726573409850948006073212932907278255676556251942486021567683793687041165051830846795117044366773011067671525823014847195946845792083427743568322110284437491323444253497317949417610813988304304306430363030514674687332523411273769573869927920120770535060627501124592784399033242224886462824388732389882887702354129255119517605774448090996403150439613662418048344699787982581796910823248683989259764113469092253255827582974200544110267376694785711508049725245865546880350691000941265758103619374857814132454853821860146260052482219264468979464440636115919636325254421477860646325356229905342332094190247130563960124676050260682456692317297173583252511260418181859942506055867314193155836753780037051687494921300620789642207900519978650230332948135912506027611201481223833442354416285781607412350398567476709025041552786246854579074153959689068060355781515561361637612684179753611840476622345717977261976498306041632710529285495887140952946498328526837428772832122560025503192266736034475005222224049751676996371920117011928701781816128200811626258781784541005311484754539451498145759310332360341447369703349587423283664652928101965944148382931006386531806607567671197583751017373428482034945919778230248453926266103965864476104315957749909208336506416277797364399887158406436815138188467628912310057211485596054627262460480221968138797114624648981517549924616793448061160968389243088070125308543975292764500144380862566802404317167661994655295588359659336735680414186135563225996423683282734244304342168424068434642571577321937171977800466118866604782837262887409895113683752004342403172279721939539413638322455347948462506635852905913772008684323572747433963940072225923345473041951006036848299401727864018957110366620642153048329272764601791381828594554535982010401998766462546890222349831727924343677184240811461418749175758885255839994839281647485206993618501661024383451119763022600441423313184277511312185411152553687524940605646932559427171337514371950346895312122422829519952672523659340836725605149809133264191591060333839288123347093890515759129843343509312839376364189007953952587556821500752028240455115123016389253301724650833996707790755677849299320046773770688688510093279178717917957921073545683503550030181467153313149828291586828855456598451879425018299989363370767853440266732471835376296812937742455635674314531293708075191201170830646767571004326880398990921913747793873506042900640612526796342455243156741992511551404894828350422877072067398125735603766792151816298289772546172399838401593807799365041645476424706765257633345911393885066351797687893182718856705850879391202925670392955414581725030822621210135558320787084304779072289133142426066016558830435775522148092739818170438124730148167648716782534634573972709002391248249062359819898362865019968427613063227042930388191560082872840105567901465808279086568620956748321437115067552056177230701067886019311674974974893861911744035064735756230946650634353744366949894031755762080578715820114826206654691823620271005996733802074766198090556475966770709269065709426248182601110738837928790488403575089682362664061375097368482836058708636642267179820799227540807946744826863589325057297377176332333589497542692881135411874912715977046331356837451720316520245297181104760065088401088899707053197774117962238338302994839198589165424310922156131390700309351235638930768688644604947595375460121351254966690532999772888357175922667953502621301487176383983398188326926303951711862677871377028066825915795598447925645825174703061113805089814749933588833100225406862343329561712024030836397919154886623183733429214628722385683192726816562136347607031355420520723289385481256629052755920370472790283675180325228813202354404446357793930619778300710654937282231195216254670735010624399814250712291690204019354393215927140062893640962125354192051302788789001078868132892478243480851561051912928357433772451346415657403002612623781412464711333510064570475182600438923241889828454034766268053953967563380368002910368586420710687521674096315026069463957456393815252950991367104920592568991681766736775641241202407891447399396611781145511974217652114751378723701579950396492743735257305648732693484078656861360962258452960013102674443748168815452869567339448554465998560000517168416486897880931561919708260241157741553481843533344880480407230558587646543875542777586519208959048534415970060942008382488412493625115106594423427654201008225798130455157590264670327224697473407504410888589703743773583450526639761449941845787152220037794405922672578112843527188476359095512698657279135159445302978097238244203353380601979625625986982640563702155882274945361614153766781717082034472275028840491649769242252212601309626851945672685853465245085676605326883767717143661084122070537041140851705087245090699065974276892183490510377535861099895993783514353549592523430903589004296074553598240230149013310077759698864169080896936202894817951167581571010863099480965927298275702148507667700709059044541908308866006854307072138479229274360072099492691246994860400345566866946921822407512320893240095972294840424194133855860918170583778844111677496729118411605443382964698546906984477315154277621240795032515579248010113520301596595577189724104051787913084983744371621028865908340724748293050520988194751748297295266743880872601196925498018754716080764819318033060417234262972253568999524518512956704319358778467753905208281080715302098599493788060877298117737467279799089785279673840276938470666553783392569847441893412137396233494961075062744327022775315883880204420087819757609992279275572959726317875129999014851081866021683460065448204038542350690450759808449092595355893529256391886180940931735998291578395042278644340563540893882168239218994604305571825442715936289387381618112515642327818887740188214449353860169210887742822495964938266290585492598582737803958022310066515122802413001793556347728673540970400084972425526058750925256378975910648996805464907294614004432020866665990144910466887013391805822727373216741713759734244491017915735503595999745821945635403534574525699361262898768194204208723067046566881698024556735270405930124967352782236363078234154593503443147920128730046153532981396343951051158271300396731068222228849849913580436912285882322379946408011331064730950014230256238421891875818280524604998721100317512622818802848005690506405683891932919822423722637009636150428590549104093974279022235850099891643934840377369589053156674343122792237734028080103191086473442815583761344525174949674584523258540997291531286729612608033908759754575389564370669504806692552401833041756743243352773665220132897367564550551069607322227045285915052751728497586477522847613726013231646426133342745821141625453783616472230313768518292163965451310018132191371158016079943701506133578325106777672965758051862006427814186698389847946535243142683720605249619445278379240905500821915078005211657503975831581952264925339664955259464436995848456697899943295482816066321969085002008968973369393725542837783391439429442756130053047301227331504901232445259743961725699182272309961635349071465805476561614754392291926164579305706585884532970694171182131428174747156080944166244545956490526084097721080645477877407218822664295098245997735627831988294490566700055562449987010320410733481310770800504218124490094677697379117758316175111393654860365723129073030386410049020173540235221142971908855451809059258415069207956811032735734940553000059389694478677092599840917225252832608922615048168006523565827474921413842380979993828787202322174228571913441598785479349352822698853064613280642069595252404230554277581475617506236612717377382894163658778175684317248030643783104841871491277905239932418443505330845491003740436084029398130686456845617969249425575985479498468937586249553664753309467577649370574496683303892701386066591644790088005970195623681296295621314789347757388127600683002867878621090386566837414733567438396632852601976721202391039170367195452494857838954167382852381125663287222326411904414994951831764868405826642260138188039136282170383220982487542516044571969744079049260531206685483112886766961172701436552227921136487487660312756918379617631613970678220036069928824316614403409631152808457326136543882438738477259851886388036778305843772959338621948117635343187361456976499861052927827013137111080796110574826809404256137190294573386036548473366241509217156098814401110133748337639276582119519328720940412262872862977336688788851804195396141434213727168303613490976993913519513534879092009140646599183508761363768570610177055636493206757550726148661215947986297872866406047366333023466355588537828671682930624103422583854528727315542841995100877176307961320122906957630498896557637471289156570605368477828041080235283453817778803635332968546940355859286572330086090295868721293003618602945470027512971935880752467521813135297563212572696406684540740530727795104649914591668514340727600580151841270577767769093836134653002547395694323119530130648942340126958967278477291493808343977431084501239324763975770628067691050112078932387258930848360877467928707158107349539793364288989744861331984600462594330737162096568248491113094780338849371764711353004801966363776058708644463940838302268733312562708637109415939772912279552928364189334340435697459980010949047418761438055929371703106805111404132758549079140301868459521038062076091207088507301477690013962270850392218743264394397426286391386505403210931191778489601779151417412188170762137660022697682339676061625358101498115809959167209302557576153945942497939002057310405895969457957765945960197568157101790106232589070729645648398864203225380925164717484682030789748396837955654303674623447461946789234433203571690869442786287472844338378766003379548523299505789925382545919677575843638486285041832684006196984475336787748673643774435274296343104425550059152611616686166217325275738239670986222818089198311244285143431432220794003521777184895047993885995761716344643643961310964189773067929329593132696065520593988827201506038551363218743385389912512461002751671466064565105640591465134326406355805708902447970939620307912656359893114127373079336084803842793043130985567565924519473522382352689706992414266305542880811194465431263200521337858541851546862043870620887917246875902760199736560267949951020725185797633185170844783724743669607402762213690632537252266580521722049619755606951139761103634468843433507802789291436610586568190880131587316425110326965238010581161005646679058779485294796124633338985939909658356100024545581393636984318088687357488410906719603222577100426655789458775307184262224077131986346915728113724236348127051636316372148585428566638878369278772362411145728158922289123138703055232895045302136372823824924854690468555038829181102306542780935347901866412884406790453344480958529182034974331589577766023027711414054749234573013587625912546593675102772539590847018029544663949790336711654975621263934955506076803666826841954605825522598024580047503173625248251855596807581062992580740695801865429090793565188100979308290633587135924529986345634942878149904596182443863508363986590560404810087094321130952858493311873089532340851271047773348650747531385945023987061740677303387913927518872828528059368029501767640519031117835565146845967475738198396242409735380665038329839479532222579305207118164975367912325419125875407428448486244810636352849833634138904559713335096256446164978014985266622200375940730611514723142301601695660162185562527738618970040156851059967309609397475671545085345808410829978225989112841669264730985929408506643002468536558861096839209740968949367826230666451428992499040023203569513726119134624174356190314306670787108133741764045523996368995727771277422350024684460009322278701464707953950399116491481111436636337388994166042096513285669269921482412441588353319563780433042332318017090133349834165666308367649880755435536312670367440302548653019630705943293248565016872348478224955058402556279282159662157957213877708694962229323541068857781186732152766312708729612541861261692695346396361502917427530796255055356843325104490089122804701364347781392488065202664318371231930933352921997327029564388393201089170963954221741742986528287887590804371018601791225951114102950659800866037271055210947195468540748707064974113230462247615512202985837878031764215929995419896971229330472384102167099139837159792681061271541880532580149046307154124862780346158203818040704633832998592989014949966507036668659664998356210782406639406802367057362940475102802228588892213890841120942289857603342531370353677371146354542749791680772772532320534633243077746396728397007590333283423566526045805491505385932709951194781446867755515991716927071733988481758587648222272267779585368380185808020616442687374103708134489839184461233163305627333982141201917139057260541306192568742775188250528740563039032268370165496387817267089410213066516106739190114763272178772385508080896339292972654436611956336470679619457418676372072343998642266935553674268506639339605428600118816221254224999956672918519046685206025192434203861312624716107535582042533386020633249885447954713239443022679970967091856955721915324417099750206141598887350413847000921833713195462306586087000029086510742944086559765131071968197923517956816301103660883346182655025533669066155549582835715608237702930231260332287306546531196271103866111254974068341098317764644330206117384409689370185513167337304532874207901565688988491314768041407297021136664772920804645391331396279987624341646642436562157531694593879609448505474041950709814765894668126353412157918836970541303075657749564164538201587454301083271991523054926794377876692539518494873588528067145734988101349137041170975535696471146000965544336473984908311588360606136176978100858162624987421328892483315543584474971007854114182190186205952849539292204866046016812257409445183138438893638346757375429667548368909007822695886836030559114095225955814676916856955306859438946495571888750495594663856940857030571690559969307866372690039887176198946092607031200739544407392813491357920153684345310550718578524595823815991926503194385460049524063002183334600920266317682011477881413100023307813547917354656094717066429640419813246492483257250048003952581143630413190927542629434929906996232863495214174568692053404614358026175800349960929349072666917794474166523132140494262745900178943706204622044990883024226846751624722082121284041537920776880309083048554748522070112358422184827266650099137184917729516193309633474731058818084065369936576771693672459433148656345250674726858904314031101699271531852312588692936910140389321852645004791532579041246260522825501864661961346963238727664784732446057859538316009176350875392726488277711042614600960338166492501759549766651888054036267611463398447921577144596611238822351323753075602845524377664112072965597872103032963909116391456044414778410201710333295345828343732799957915621928380344277576431903407826385657124020279935335513286083158322820281977143334847275379340010861630981733448881290054682746003572919292644297267510927870607040782931788409423075101382064372654409218535290469424140749189383306575599352494954323787645111864050067670058020129930295030887300259417964435435121360581320115300565241333955071254705085540569266408236734705479293424480273851140763072537865021138850643389531720520843490860245936058570524174489832162076189475877990723230153790571435414860226749166745410675212029426557282043671099832724521125113632926190159554744843069790603792360106238786807042135388330635342118556381466396971319866837241668421239962939789881495307355238210009815443090196869334737018971935133718869433614447082956244905612743611936930237155614798972502346133507405666818777638074003118150402197661848993465317378049654456581491394777007998023665570039648880674545093914700007529827184475538021803861420147086371046098029086770522947600154850439043939062768653637584458809574691330520669849097911336663809904666574438062584047927252877944822476841343665111251914347791497501223925907009477065239560479250195992512177096563342285440299438567700243901705947581261069203784564628782757950114096075257860096171754518776946615336961758752264234405650301001780532246982826947744280914722216463001945588810872806864276660282656451605583146797517184930158042149458785792148600573646618609678906758033746266975497149525885437377698140567737131067745089503341078516334605242306309329347981775746975969258343911824596370917339745760440797061202864802954580342849443274927782249780362598122999248454468136009187960816389942489255167252938336479935043983918814758835761181435874119936903204613580055914339701620688314412763448331776884819587288450461573929324662974933432825041233037419631324773417372804264777998832458847435244949596710433036145982087036781110931475805880546178583750720341462995738999012221516827972506840748959375292882176832726912461654343635100463447873502068583874597659585704668430562145765801194327827530253175546366948730633896779612198961972080177147735496324073807414146067304388582882157763703907902924941256055755438175777696710893999137788569682874728229316573072277481486197947931378221707308653290902629067130949643607181613008818377483640851749403783741288467945446834114780964978880963498132260921452346665540767977266419940161619509955075999521156735892376342425701266145711114512338853073752390907589205987647662379992321956871114475475604297531664758496174499611122829532581150570127324733771748388331513571271418250101999126774495649800967735460546044098965059605702403191541136000264497448647233482100824287323275302872611881256704779821675801553168186420760216876657591688333637755451388254002096979541128792142842198883186200439425229211239758561230244831322985279233089581395849755672017037702996468397319909449758078648245763404349527808033361591408782257017743301175140571966553882301609533210093548468036177240070383913758869616885551598662337623045867721372862594856549511289509990208715422776315085507113984983480118888222776039977183768851168681950419391321592350080914395080471648389339299362236742123217026377481059145044701081705885548388407389988948102692310675669507168163147573940818410385616983695769204778403343434467698889764497412194453424038142295261826398724079819221583365613688582229844451384561782809516943832116325151833888013077532507821170501640924372365222788442154529185329831987656485220396039906574332434763132202447011211427026394003942630975024052336663026635522698921217776417607047959582232832064414116007485936324812001214403785152863794313711736632861501616252527480695584103570503163403158548211634605972492313711718396835213559727022923289486116386038263381741790695672209705171486614363263139843348701880468205355623959763815846522613475290340591065874065903789429152664848320028088623665666311975511339932566961393839512882223517482616453539929940062899024950979660732343886573872544406901468913070810307261541979918923557748654053960982921459512469028171123956136673521022812373913038860416367459860690797543701571793386067678652467357867258819860498639522965431707460329732107209038952638775425008537458274297661327643189014877358056478931873747017224018682403871612600858268159060748386408326389559751270502979426811478935013338957251920910603185053348465051932705770893775764461510749176991426167635871468611117464267294980692817631522616812292015388270923597312326974354170836825811911858663482400891340715313603785153201904773760674363355688691710603258466004809976093459969545037120556202586434701711215120644109063273214340676809848075530917586278198770755317736053590660037901501435039437525595775518842724481985865137010147297676895011658679127764212928536305045322319089698183910086730537694964093986060526682901698914310412450893087097694545687382242982468610039090002482504747012614313595531989904868119410271532107753180245822979463171336254811379946661527912923168367254296484187808663992940322993590174112251781005676244259060689853431514833235150746855248618581189010099604073638858460497077713655905868235345711381152954864856546408875421948113026548132636554082123808265354446760079831115656635943055671743932168760609391840149658277691928469425026820859968561917440917451959080096795974048763015463052243862502546375983040360717567452031067397869286836540009065191417762092943944019107542363917671142020634756493448047742622881873209547618314753572340704708157010854554950946064231338088893076652121009532799565297316547157182418496939246643494634846769364450111521908114503165039493143889762014027862880346374453733322761239276846594450918641034113985792327141687374296106991760245465484893417737945373230356051362600326735477543714927820638620382376649000330503846893280728754824983896900776425323080565797994319994303010947719172589430932306603609732086147276149036794663141012094426592101334922628115094495103346377856979235029306118939681004463859647243017625512197163766214801085511800331707125203762468092075021104388071267381477163626794512327740141214763672783862319765251886156617599376967648669099797814626498966738118745805941683092966372666212894737533056329333373054555295268984675307832864021042185884720928136565822662685143931380116422532467265954503565929971281298275871054978506418776129429130955903959231174397329926574970450506864308324887239273601718060564534203110742312401747041222140789488170054656964104253937050956803468107607969915251207793607158987748076911859260674231219003561035305689771532529428274887566507879935284294225563164694142204589614236872436766441433715601638005555339158467737830474740999489896562970462372119988014463671392866960336075255011083818131987652925403698395077293209481747686849884967417937989279689424182339623368135004292774754925170461564789816206064307565423218910229304999295832908404310170649880269674942204345692596171520524972190800894788162248221162034487792511847741033739949483239984556311761151973712511846610137653824835280994303430350356766285052314770205113762553406345404772471792981727742716583526062613339362211517197089876628994081509942702236276487039136758167805937658577882862069776878941243448535180446761659894379766530512956732919902903883359922529767933007799652293910516046494290181920989480268230437077492020569027292438270361234737449028806110761506511724243596470153014901808007290552810145789157586804251812385780422673056039233844158578617301652976620466018490708690578255258660388435693504939454688097826849341916907573216403473996359110591470360530494584143764828907291553547979142718998923162866449472741318692271976139991371472934959087936635698956011553391990627071340502635501986501103766229937940047134483518267651595602226274148598092473607134247875380547824060112967800445010163726061734668181089396737317500865706780281759188937880670770397167144159646509690867789210558321274348908009019680419773290313027443990228516278741248841802360734279842916332523367669998804055879039149967336810889890013150418340003937723771082394693994052954815586041797748904337646002180880440884665393632190131675650195047533769161876341700891492187419204334627814539056235758924389225536476085703790716776661115974131666438289024394249246795881636661752902363540139713665404575095805865426247430611256865940592703304399992301170378088476200264170362379450601010973509885705077830267581244935948244175833433641332046016861099124767962913889509476332304376740723228989952614430912705809656648229344699492614101452350654860319748767480306687947250365761083330989760411031815525494241324608010054117722726134971457440710132866863945671541908254333062336633680776310504899448882933427819492578364420994651551128030193040477818610399046257190847369984371298407591581530291506154161572932831247895969699755280497956955746504369273662693992114590324582490055312385081201986703246781913032446531613597116125689814253093576353245627247324503670513742568407230993655210323895143888874867273896601899071068238782467175833148949855445590844287950954336310122710745973694168286590552507702772166830520192802726119610122035253338920503067716314330968860714462523961195473302040211094187314571040533414577876175481217191342408968838208061348694606007155360355686687104134678482794504193070845053844313825899948975441737839888325393878487327504368415873559853696165343649610527752995574035656239723695590503267923140035070796337009051036062860869906734866748797135003696262595387766422944415166134421883848473268501827502054730800704362450673540236605954155802241597259988964095727051510887982031937697914032918126102123362195463627511365597189931733391683370283924954449613191138855557270490462039440392095609827312429208707088012211507432097877830910506372114981701612032802719499185831808983618259049021980692186143221927882201715995178147915968042744557962348611453634719099038000195379269263861402496505736247813173351692491792821485803091793210700382328098923102137409350767921345523268669246664063881864839280033838567927895711876255487338838014202162372608504173053801022160111748791325624970169542790899708175232298981920768581689077574769336198828415068578236302641255154172742234603414522246707839842263930498678542257859409273885991347076339538875991618162087785946478449781689507078326257838755155845845365564706320684171208339459904283884260872073619965082306756499497224524962935076517095887204475174118502513031575366717483489696139255351120239787107586003709181056999100045146708759446581245759088164957957625596187143242355833798199803801088609717029379496189585882131126811462849617051179105330790153206345788993934216188199513095025060744107100073470257504801142104457902470368719284542394249266679490769742717754317643975566356089781232803711192411292786056776412056433941228034483144344927924091288158396858670912156580013562809566773858383257190212506931612562671300058131623522025535503500999579368418437924822553500109059164059181116811184090388519944379234469914236787685917954693917221521507456978988066961091360788882014091959205516326659826164926757929701423559698204120942661503630707727256901548012777963339128110303336941513682399478432007748363819652825127511894422128323584519618831505933968345915386687639813000827715161029498946127158831638274867877978560012255512616240392253499684466266097369853460610942012478750134536195614009596671614933820295102238395685026286933445264462665181883488674171207296898520472536564622983716572473351422106033034536675824511955239440949672291311706297330690535792159136977296700672002461816199012401624174623360903766110639805858381100322649538675819786661247422587681552627879176174811350569282295238784655695510601107227314376998427537109609794173941058319773119617245426445433915596736779065017603950457471926497686119154683474762173248650681922668711604083031072564835119398505993086036232568642531602364393029298305046481870133579641957432773482395789968553643885981124754019975091406547159478075953989171585480705206848267266371609643934712386195819226637797180760243343434599972667649493711822753495416350266578605955508290516613778670989042872037368484332091702179382059669752953816290627894665329947051827953652944938120923718377988249669368477417382628219570889145035276016008381347521242715879550128220724342678478552103829305190015193579572387887454730424804671748083956654516702000238112647233833247703347729101906291516303790699739710874039076788974384563700366588210790775898271677689087173396200440283926688158138704081881959894961249011268452044057703634157149946515624167514632663977715012966058678500763417758632756450167263717592373328701710142094875305581190895866303242350625300951369542159373314509776670872904926164206284637325837486927262243691172861565185368047639401336654702787669632462333305839321866641652963557159083893761525706825570369265629127007591719315362852173149930703454655932128243583997072303546503101392255568096033013130485276365330069114002962655227646459508045774164620484490352981459985849483144086880081813709822817524208991682045661778080171928049695403966042688982537077163958045820553568197772688530617092730169813822531232150982291955515773146123738667572824830617870526902021832356205791178489959369204656175585690214007136172853999752578022681388264311148639441508534794157951680725301952522331253705042520083068525534908072627517486397125516269582569232765993668181433385245415709365822449119677715320687190976836225162148130878344160581542803016548311785912970806820979165928864808466645363112488179062721212467778780715834109871533930968963985603002091746337187879858679187137243611946834245611019605127954579061520354512535139018580890402739120014727366075653599467679203326649549849508412895451495480764398818082349950940561980503627977624568033814956490699589987761124349634055815838020073401480471303061663103462399131377966172373495929846365980194916368291570831830310036223893556178378618530396026701795984696499634646706760634197911777570303381177921046997487013251016208923469711294387458250425095146927985236129064968144257363778810740013277479770153061648243073010165296276652368001930551093955695345816891382358072447037245516183874705756715494581942695004629932561122026507629411930116096894196314049408650303944662958628650284727262138342145417398897071981719107665452983799696003648495796235208554009005355641445430020532367789678384021981694944613570500958484588472734723477357869850932358194540835941901875007979262675890343059484298144982144875079156878604074551654270392334482752504703628422067601502141699500910781628866926978300284456360537342757860689472167571472737338977655119813330275975711814863304812067728831349915202179520843105098927552961857731378040307695000940631378481905414215359836216792856783453586707215716167724864010398077095143792389581472395677638551487724595198139257758810229904457303082216929453182793367460397365686636496737164676445466942985541863245791932602948792693153356084501699257087075775218729707107733364702050175984225829986326010163117103224199794210246692631712717706833675047888501587173696974180195765954002252809988136144513720103810206514720133273199146587664282793501767011803506263954728558568876162555419735433277465583397532023928760883867742567999106141444038896358430692297278306640232408720287351312129247746256015192181443837351454245790970654326766581555084942964904600008379640068452742914123523499778581527525820807451818384786737205711940131692794807382416240535623302570242488522654584303339561356918494738128406254138578300168409233008071666022357964320688419604137383613274907099606684092163155957159001481762243330591597897553883360726907727533156248398375206137943686156016718415382277814128715138780443432425896604845321688796375836243911714733966871745496141117251349264828145147506865374713098044191050410018709994786648956860183733752367249427946128642678507897540513845668612052382313263798664006447965778091441984696813484375370247692835794751538201879391748689389643204757962288289137549716970447331399020186312869918517599161255451631472689838277175671175268465141839251194850834738984151044349344632999793720033268139917332085107801193495843641769814922201947165970172802226491847313509615222407167301132276766850092196851667703037282602947334549794511933753434582640432001066355675470793476003516750722839531448936943225170316706541993537380070475935710479605706713635563789519823383573352925834248189656185919789381191830191683850844762525389113925202300891474959145321259954085740554263163478777760174289718441526479284381289521692207196299262354335747996962871354269920920032856001065927535501622358985718463504018157563207288585862458407205039364592487290435720656169794675824127538084279445242647918798381874032480471002165003949286092468851789247327504437972704154534606528261255504054565337143339153052221233639038128096652034489478722953037472983501770919060401441874631372408056233677327903170275196947487095556141151415357482708688042065962192751053353781253169976512782006019529172235878239414228218230521550011349623364045367702313525136180396817553144045696838303614186590474419988034457687056462012897992190991730356555177951396618618403115256441846871204844873907820724347849859665100413746342318586206034114200255437201667113592279463845122083562518189818556106864721980524591926644002559343615640814018953185626085955432840433057920572786246754720476203264323130603581287937989444376597055072861614711703934849462514741448564610025740587410698754902349668042677519487715183148788689292990606918395230856799566426749219884934996806414109656453379049826887205413633037700790207365268543186377137122528547130902707361084855701757431475761461911638655667954683535866970107549051156810147326011322818909772312874904585258634645792919822036061603433705703254816247968706546826756336374164558501995666285789470297817486082505522458787310957154440432299934160547396178016956434990628797605348799050852837171095000074397256732211660203196695799500920406088916350747753067705977651121543461052929436693099931765519702948683947829828957183966586447530369505760255556037502023142974507572001000169202726363532268008688316485481934056851932367882342651873575528218983183973976877158158714906434869401261519219231077638117237976805708442057357043458356521916262661915060831003543927392320469172512773158623083651090523934050023044973169761733851267458369745338164912122865661059906848468730252809248940282846445919854674503575883356232591289276823135997040097168925065137586364868995711566337490541507877707337518905180334553520644773974090173135182457403411601131734890586810549778423086615197492519332418245344490813278413550523740282154422090539122121487660732724196613366219245651480070285704910862660967991194686198203475197240132952171264761805701463911035798761134929036854915223024629126424316642862706293574213258539232262892777229994455289127685836321377305978322684926167569153414708143860343301829138523809034635437594576158364671631346905532744802155108982669696265941088046418065682719229822877241203741365600820832091694090414648890604198205197293249962794622745742057963824516010806324845678570758898310144576746771332002601424199580709496549111446648499283570693718108519481662981164490719812447903872752953299928337191808887416402865998422733309009208891330555311052175939802503866218561664985228164771344834420872696246643610665579564131284483187754757584830879713391650544012481610993184843140146151984476024729875513335394776231455553697884823316363718222187664692104818229046729800388872014236115959858757982525346745481003621064102522981200895227843331398724985464541825254314160969031042418393477863573548372251660038705914776212159502697359935726230585159240662720127830641506853488015454673230696631998903982523994883846937827666980825712793922587703752662680655023506803613027414840755136084927998650212856646884197292637551480111916049634430177667126052110405610661383737461154324247178044014743631938611761021799111944641634389418105568924792850595387095220141419713031183438193842840217102715218671611982837316950792963172014790180916004489528983368917082868915958151588472497926854196530771553212764978425128980243982881833631377614230626958627660809988664584306053908900754693800462331622152617994196516240550446433568070128877098407261476343862886485301161388775309807764244282537175540650167700639264506542312189201458948889543131603025816515557292635402717886691138415704349418685517613797235689745998075921772403912155702310502387672379860714180635156094418910404351670840748836634817814472579626684933679415502406557591010434362756052305302079085541527222542137790181963058549310690761514653848428415859476623753013210553887831476452222536761578498800007214116928130358770998507154982467060762845327271745146672234617457201028793683925201190609279743476793949559149764721403197421871532429974102073762005291453877662456311670981930440087410405206253013435857337085534945385811045268770217957404517036966071619447025957114126899813048034543022902470700117469120125095020510265082086643961063808264351570272263291955789879921685893926550568492707283116094764227384919510034838553224282444063149194019433157571401338608872877143604629042447778964690784793031812342906974310099107412865891437263520952053312426668611041223483591213627584562830364323217482842374158888347994828601822757893065436193968065352512123445534774288163771381270492806099666469908438008556926910146226694135143781723912288591481795991453608252023762384268849670440731588341231261920066039571364124218579068026224370810444796092521871514504549167848679814897822219430531023163448444097660604880235917267155173151909491307994037110371735491945108536968699765057815570780000856220805211400110971276169146496323091612769085631485081733911267364747288143899449049949119970575076184557121411141049600283048846455422701110433248714347006276024864981760421274777307900345695629676671846865611733032617414658858046362849455416784588090192800098288155742127270551651413181109515397060254449311948528394145131214222803136394836710126028268173385158416591564879375064397356786878993428945293700775180295683635638934958723487104194487491844412533984639268818812678239086053705479766516800141551184774106910427716018501128690972153283077693869132681209823926134923891715015105679309932319105428399123601238885183656223230363402353838364506624129400997551164879871767370098866623074331170654048944388500829432637213939479836498413120528015780696748255618394879867292584665320373288003027531049017153061612861399983966906652876670805469020352582019626757883258863661040960331386932201158521520588633298970753145132409964025266322341590381227583716925384710545589930769763028292745984955072316523018828369724511602868491532370534926024805162616031473763999062529484120836427516916355114017126049952672203396911455181757527994176397284923853452118125922426674344547539925281401878693728755037391509029981252176654091129397866614190969821923464952569994026356737801097254844739522233472590264752222790831900401150499335439991625494692851127232201880250211928780617015300693995384178984356601205592054721916636412575881953032582580255685805461754645414932454771438966571850450878599576572404308154393763655404566855498892583672999599655365918496013106847142637960792434374214296056425614333039347121693485910659771317052740963856590919855706977494617549967107552269253120638603656792203109723617362613972934548662002153773259588744451813114399413676105945812433752851639500082519152194744534707201630535609311315531423487576496150957731565157639135346718126724552581250861207469793795425990080347408518653409431038134395574719700948755403578335379661432619739242333772313796105229736421053706334051357771544170634370333245835209732178185006563832668001004742052484796369350434509868897737235638009844377983588541860344869758217161378270377082882008569198443895609203734341321976744651305889326733155218499383903555318474249465651503316789104418127007577699318543806372133884198405447934644652026150604153193108564334691137347932453550013162220398091354454238318454277101468753591976125590980237168750549744125863226821872030632031672320396938494664239023928937037756342398523435425571117322914528463927731807824055487248716099938112142603529359333353959427805165982453138469883143242770335231029218292927873899542853281096294370177273365987490225206622453938478482517002127637576183257996576841213177838484626622849668733875848719285490883832823718223347353339809773642279398087957490623848320237984949419034207079729431311092941420010202721339850118542098074833445904972961693987471860147987949294626916256328188637549427148417907459426541924874238067806262682781953752975947609955875400778699913694270100428220445276059778511666511365893551958916440530783388789621822993240763201466589837718650133806983311895698647304379069426759762710689463564442472714900157684565339939268363123703683707142004446435879476797928496218820952620555856744745877116632252274874005288473468129417574515409916856110734802402578500110077725835571211217510052438554660235830965031812128725470788026669132900161900443655756977586051676213051887487010703516630712213746184948944244528045793258065659763357277175462717452894437488315530194951733600668365128782490494827894785597007035114148779264806131614455784007664046395658367846854093176856077472021220631308693133242421140217740448146810166578951678480100608001017390172682477643037300579009295975727566465701683924896337324644587836893495299959739893731131587968825686409115074388057110804124391472766508256500690787722202033834472542056651726728319175944650191795220394440090324062137812761293155583421342190147842113754922979447495330067524507101488199599234876394687550175226946524600156352341905236540121025046389496915452598786118164030784202911672972978811627757304647110797295573054990140837931181340067152094028754703334880058393364003310099358980725537887855914016480739222901969536786844342562196049760912388539808943373577196557097966042993818948735355111849099240028657603998253241050846442147017909480158536610044080537524188738480815267726780258967066447239323930376565470982917231467599435774636892241199798317620319457212752438505502763666523869099927356053429716150124080752723103982590491241000083198182810925768228479869698685819107265074592452586991837415938872403463227617688631684390381649275822113675758493588956575872482631787106291012394833742403709534828625973742900029137175928102871146885152994619342021321630588539706579729562488049718152872856321803306339916743149618643658654903642671741375601512202389739185662125483116547586161851404421525072301887246905233386202870213704690252474658369443744883508977323023044185551683504265649802750863611821577210371472229756103163015392998545555927994722343132357992517312707482131042671579242007590809767489841735055948499089972526812439678326248301410836155517336623843574721887151861625272597209302639266450118293233790116204040502848806171610855636900093191788037862565237467613452752983808710255775849930895579306141927999841583833554797510427803113557835748226737771480755980803821982361752884065396330798049054273668113659234398658008061428068649287531515002638738557070943763847195886852680653113862601876970239759883348867960897582258660039957539631650984115533856275259170925929261442767733262609579877606606995896304068255761023790733069722538538785346086850989049975431201573511029822603251939985481993743667056970470705771443745451167029701439161109675799850795568029332758410582025746214161603954444494746594597207709926343416079338621297474116543358373221896197623456073811973305854479223732392130059634539528948208397854504733326760895332643011184893708273810568730694410010127775557118677801077736898298028623619152592568478843012296236094848823821397630922395384282792675971777759564231228437090138241303708939165916028424717760876008562262825875908573817336687549528430972243546176225011036728197540769917709673043167651125987984026095452286397412272651375833269626878975824131527039616652617626653567628735933274671378747162389200528371495377019165636369917161108946556425965615213700379516691322029955759476796974975556179341342449153322940552369138507553129089482505466548490975780784536201807250320322458369502023674031907890179953981522882031322737536610862721447840108807795439528229502361959890077444006083208938210707493654683308732106611117112759221637288220084519380161640596039965194757836112558338611633184108815542416855421379541324714274949802495947803311725424728990467582194239335693757441839918804960606503099831884387244940060552516684582651939285718428195006351292165800836671426896807951506681975440433034796153727068659852981703719534463660275547154496995317910378925820395142980564313025354549036843968546376409579313651462601152583670307793532152964159227907304498278130172157736714998826013718535901213248727914991644634170579509467989968249829342419772355879412280164894496701294831089004521365598135810990940584158260698943973663292871288017010870197708613164771672579544215346905403996345295866064566378448356371780356877341642033606263745513538484467568212175586406247901808112736793524899777413931178009607593018365464632396596851054175518109993910077029794226988265497497472996311471117869968462210391289584538996673909001698122887748353163690965372480496023500010965668325493980509577803246134915245548124513187102931049666132682185991896255938759729684140300372854931497372085663639667399261973748564159418800046844954020100738813737969923025788552686615981641478826674158586032477249141346694392803207345876977771390387015256777733252894750480797459088137004591389695799379147536576993593368719366402404405316669454632469280683803562938228208658031883039104545849976646908615192156669450399673517288684154767561055979504292359774092411201902749255782429132613630285355021100368145603827790129034365323435447899102609577529076548625899396669849000699800368448157034779438907218379430896968014883252965548612895987951944581781594016882013123777552006331037000605024522156913116310498947677656066414809805964758335318865181989698532019342412824144045854511244841274408541469714478726224994191936541815300121156136753171718761066407624791472354348959437844140792013040400995218758452752314516267317760641970244484861353025143450172750723874202036529493929012201160213846448411758072355091658897857364081839290119851603709365777719231541770187834383670264653906585810692322958808715669858725330244110872076328496044045265719438773213727897133745468347686055417565969268828449200248358250024654877439448959937877083622513630674274245848549713809489814725671054234393481403901249996449471540598413037967639006123100547939923325697221196479299132704566885168873712254692916715036146588737631508717171078724449635726161278940216921607966770157357125579954896705623074237918156735333917875775874107707442156882729664312765986834459242982713974755551588774044374749083629349458929602083391370510242038864738060929606524410714585901742943517778351025505227505914994412108525684657278242239668943536777693435243589184152547808193580575858568238547085074164280923810041466488086083235731224255329352768555075643165188400891258320478997632017750046534818643019815829339575974864985750054436025437985883475251105556649533978752439524304626112426764233577694542362970471019210369254292665384354736159042274700700693963298425416358676771456877250485101948341997071070192562354408762533782654641582591406507175755430658343644142013466633643249913540597975091408130173508258565405544801588419534854176695523886003343610958468817576500450588457066213122615247196746270847866310195350639127250615178929096141594710901678104183729332084184777791536711131784259732487974514315121977487834451730520615086395955864919685286350540060765691069718406891645068365072704953289399992652480889597109183644473546472569879883349231892021163206518962515449756167965557688542827116604550523735876665573971114829093195839128385736833350013684424699927054507061845985675068493022849594669765011079647827027297442834480694993397543752149165389540706935009524321911799034491888640367225765327175617021818813124061084471664580755605544011760647709017482510342663632931973709252243406694034346147054694773791702154510293490751014137423277016067026452184595574683697128396731687270762789595933619524005598199901141007963196940014413584903414478378958109065127027717621115837654877443845455005050828487028096312991174902649164219941254184128963967822147738573656468546519686180087252729572770516238055714559139889350206189017962930418041704602005320959315761897624589135696396409932987408157541777402138619802025845472233844714643666351236090375662218602361748211035523075804090703043768554595553856697689533120897008226750619211956971166439248412258280432778327197694676600562584524019972532616341416222256153119720430747516889760565486979935283676299550893453996015835780094401185222328097183382018130486615935393532115374583321881622337263362795585157455688470155907912378339609321283696941198670893999768426901530066268542832082220783342368381232843440724859536874025314615589781306221863520346496469184199487879882694652005203385104484221388723596228461558566174934310681794152815764318828230592743135510097286844344355398993931924145953694913197181045109532784030214215970678513241478962076506567086727160982883144412104958214496761402027348700675143189354342511546582625586821427410091499992801974999432713106188761078141443628958441015007178748061092849905399599618958453923597577795765067916303028297392452989513755498415958738345782436112166545263310481580447262306983146190969631001352029944444086488100998703712936967108241533879339540358263891398920181768644416662357609246969393874009269251261431412178986341236544338823658104378477155002779263346940598440634690276105567009898541509419433573209507026947583371914954721305193266315370487344588841423531276896462496735389521796968125784746588432763478810219206755978268513838119817771215192424634715230876911576288024444834171129275277527236261162597350736824321264175928721580091597844646594753209932735498216246149977384792008837893413349473655537830501763275711241820058335146985396642199966027146284917940092617222239455922596024017167036698491792112034712450320414378291524974288723755667255460455793434475699109113720560772661916372816346909941596388695535192899306022736564020397821038537028366244828519464786376841217483175416214812645683583901578816129390484257808508506078073447973199039453109852117623505769850641294889445916975729638753711755465536497342483908485212125613831531982659150102528208724549919046242492084237926263338033791154056566721597901008539566796259544830877897433536997527275116196750107169692168234826749560100284816770707554436040030725157242859154596857851106411365482455635504661276590185892977953304595548062326414754575859612437577263448013567253722058284627170175135982503875349244659364228747499796253227713002720198706138685213784747222699511096838222006719142450065534402242838932014596034572052863762053817795853859118466400390111873954051209532478795483144507959923846626263420892865666188657042913831876747766926651131792853798626170067952455942973441571549492040004868631513253349550248080891124854806501336392733425716576307477823072068820232089717933255013870307069526587606019323429768430627912516806038868719536782638136063565502856020924961514069039865468103785185245455576702416763552278780315027389527306963814713912525981828213972036270184484239438590561513876243802187004291454402022679190725852575593496880227159446813228226455706954631382525433261926407169412340933818097632610049835502510812423324812681797305602907985332768739822139012309333093637251096933926598198026869099543456677645704738777881398277556377854757011207736484259368852338728454962096010137424689665625887992912183214597974688704763769680458818347453113058086847719049416722884855200070555422975808690149535729943491230311366718286222328624182150949037320016934863403862239784895878717725215294981637741933243092791346398865287809441251629875028875673134752494037806677835030309215600184559505418855262131424327466435013383447820067396173124016637885661893313570720859892485915688011401945145847052045260685577160185797489943008410339388558036848228681693857086321019191390726508627760086637614116287148520236130417257165308094634815010856007920873912328565114555806744041969185883307065266373085171873910734265978198529220355233092623158218885085142043607755023873023839103567245612163079170809028996873439073361954366454570070369458265553751129210165430066461862990688402230037186289727738621462198971947107122186086096535196367667281924452428674111887036869704843289037518538786474218441941237638466491631817412025792227346487614140312352211655799694418669878817750159037013686942611602963192753460859032469927862856861778309277946554156855205557302890107849524018455443076683179597097703672644749533911767243718208271899318937954133581267106096250367157922722237901359366541641232367089406649412282705416772424621366153012741324446012694806313746930100636004387214083928733961181895188361307390718959616886793314336108674981560005074303227059029930281644133320727029414034882208890211787948161558930057901554892305904510359121122496977561204586118371316687753094037899247683708126626166777143559458896922142464467291281674296542363299808882066163426493269701014009772856995476212812993132918125618449508214858119658101536199112940863591089655035690513839223340087028383568233154141428571347375097183313599505688702634473314142594203785451200724796523668741509957506213933315370661328031528432111140054562982987872539319696135488761316331000421519538405535693113433841527183751300580129570720511948776748977116701237599673049667609963352467043104604344830902863726064916254273376397119601811338910324434917721541672151786560902409011004622917599116007075762476570635753959782997988250224092534961114671849775327949574450878526739491586347718863665806355246398905571651142657684907481774053490549572272632052624406703804192010366846523450845598867123139722499310894030882460255528187431597752036909921775349003101193666468515954952103419117548333759174047627425739203888305894162354105351717410139005729937741420624285142478283566790369293008004951624350442657189684073846453781310979781499721204325678296853204153838896514616046510844131718177286152478650832606860216328432505146897334420251854953858940452701559126005442570441265314935244849443222332489449186295476950177503397793205660857515073439712893543143338621955231902306250363172150744969256665348439789371079730463691068600478524641087598717354406915858583471570298898548855920345874697376488503786511439804366276482194244041263987179127756989887222117656188651296457002902831262537441460076901472823013419000330909214290248669798740846379186581619299530943508223915819583434173006850941974512091823940253990229986849280776977987073915549253616367764115801360044374691617201656263948803431375626021033607857345996943937244295152298937158601218220075038833422282410444577861327376385753429571520468291825442623422197467241145593560460407538331623935673340099215337076350905927401681249625609547318582441754339213942532482234677166594356061204228118518943208886257185232009728122027036670563761348530367694741824440208399605760563598156534558282579451388141331190489630264646345096471744039368303599777979888698207596765696344359238440592183852661521441062485963909059770509652532100689606547691612815138849501661088390311612094101692662829564798263590774784800943734115464166625265311222070009519625534790158285851140351342037695386567495782762584082553155703286983281177466005365678367114519748137159232628710216436490275976411736613953316597951209694437145176763337379570833040362998275567677264750611251165141402060616681978448655662261118129482193651997594833245142934484163919350444410947599629450959722460937957403525932487748637796118400268783656499301546284285120331464920992515734639856248210522132906091547721854475176253296103923529721390636973805652021298575336174335997372473138992016550336743145781759444237711279778190980492014375017869301641987700119024276571996288059795012208894280537576700608223296356537468659185829926194625026173023518828235732155110399473493294789430605300450032004581180385611132781640200055797092774089119526106329069721763778510673685725410459429369488737296513016884805893994318091200092575670760413773348426755503380279728981456381378629012758784050275535370399043619237855419269382200674809940754878911183839122849458741678375897607483492802718842915050380451284672916736052126532691593493170539537010009025572544581059407677396870149806336522259041998203030547337394690267659293686963729352684812061385554874677244572110913219559975180731462606115491345286210679570563008661583449702004716095117199143768262914312755757885678218599653410681873397395660955843241754250694949849136732189320368831701003092430368476085269193430333190119960385847815994481731868552406932168696399512272803543442959147074340134631344049671010463155374137014644145205214003773382470113673008025272059133695100933072930527686164370192305936450361514690400698748698056549661864608193012230958132186194794786495507768700132439435899228058786826240945115529432349524752096140316353469967565429943267313474407303211836876781249811886553339477677293020634588388409094798444415471843987158934902402147743586632296325655902959237648325868789697672138306785033570595172544926042675809001619906931193272223051358370776661087406507468419673779775987158162814676303121540802775836269337627393022719965117221195568022121399658172772611380537590596617031438234472966428394119072608925638373867601579399493423861398697241104867808760847171289496277868307935338159127526078881673392786523472398371811458818524811844189132801506402381997390143132486188163944287553694990113535608425926971731601031666013628326783863050775424317883015644552697676651732461722860276558864637170501553101766613902101034231522027131608002621616002758860059362137401871508871165377624859134564614511653605714476672980815155997487871750803001717787885570547126023774586398378193431648089674781135898558335012728483908185170603689731648546592547523203867885468560428391962202606132288967162517488764797869285938673200372303925847104486529153841991461781395421840973567866244132533579528608781401992583501340882968170295081163112499801487607764465592369904119032689648982150767141446547893910952299519896374543548196766400983168402822149847376362067484182588177505847498349671434499633193951098500855400692661290719085141571327047170881565470132951184142225814285703096417501730675769201700119280696300615538184591727292607520928628417923086341121544779065819815358828607115116542991773312504636443032941670479612052395548761421793097490599167499793745679231504784792960966591092497668594899396541325877649416885112509002696546983453523668416044577155229232979731637075356488185006989603818367085727808743739677674442195696975138835476690539025769795022091059594078572469797454740504602634449724233985955710887222184784911628983305155133102914023845722126465095866773312994256050655504279272748468658113379621362635536518095081585158775689105051826752210105039700189268076288824974586281588193638450488192580007935533401692405254181348087736607601457557432593047508612452421009934088853079231293061924776171155456998605375957508601261072962286874163985187174595775395294899936098355822665234944895905385515257393430282851346517326873990468441419659226699088001328570550807256521156432890366052238347439245805695755850205227485043790071012152902243438109777604882776461139711990260947386715252140578756204880861251276816212540263211308703007910683782731235367542447638661193600238869479761934614624436748270804961287226601233069168643251487521276574161054973021337762551187717762134107378674582796994799678574798114642275796975258687362540236740881018273824824103298534739360682796112913260911738581392327652799332310864989115134758369385487638929070272416884111251407160179112806106630846602559320389411540482736927436794436122529617343141785279505000818162512963026639060429317279175430656629252585803587010237102189338749186745150238554467359442851755703874360716569530702582895185262910980250192513512968106339602293866055282156879411457210852080270027590613987932950063036014963965074814414456870400958577795286162198815185577252168747955369837043445517842858286504165039898443659673379071084179518353349959792142905704368897956279884437372062063456773723607565504232228217094251207495148373167938619759992652025849719459926979270138074648083052523588785459887359535053672227316939920871279410268067717385227306370351355783471921010208864910165546846165436826292926450590956486231253679882516768701831310036756535045838353254337240396215742396918304895558286694578918993632714714772987353396156627899852405351357782021709448786823290869661232240092453527908603841806324444166813587973382004727636168701372795103304454488138097435615086927065525640459150018844612128344447982243745324075225913662174095382457886093125211537043256608784935931283161350496339417447737198615550004943533465878709614660742340328073867350157051489852718395359852270146922380769251647611735876012651460492055605741932462223408595089178782177248705621064131810742669731370735467361841592307052856848702951358426517070291510494959308318417473937187919536278685500984033785842209259242770103668379863892574451375459829856083103020887085330513713480590844427167644821646659449386149006532327812678304144895971881234102184542913478179880255843391329201623800584596298890736901973340467314898179015379737171215216524458489544428239651851713619915635929970839286652398787369347119913256729204989905572223569291543444453296898322489570743324724666718259284749053409733100246742933963719670707864290124299864502320435485591992112178460275765612532466691693796984143613205230166654769187974184588714415559665219118788900535205565756321454756151818999011911704103695540522337576945643397818725585063030355057328686539749051813962384419971460374140958622483673588421914177007631535032360811445230684615003768507329394415603374491842698238193348035357841006177669583700512316834487353859072337934613653661253185437352668488172785389645448491919766795790983653767487761464219516590577382715755322870705078938007515220258016162928719540887288856422489337043119387412511185461303161436626412247504615627854161384027900684506249891850100894477386877068300571633606056136732158761887023740937585116847854923010818997848881741979293948422926079281980198353912980967600829177482314851648527703350982949394329356644451744737526442565883124946037929668534873696751004363986724228789780393851957976423115145172348798641603906493915406791669585725540929114746964389634469998537142622353852029386906574166122868190191891889161635549810054401183347368727070099537140540312516667868308564518088701278590953313281194434145498667494080335195977862637608705747721932423494558015838641959280520583624889194177288414422658354233886755000634591544040703899196913483167432143780456881952318266328764377930069314379717149035249752596246714114002154718653053971210009756967485850018256484824712655044808901130978022603549606014283726008719950776148588220209306340831020531892691327689740246035271429133279741676314854371490690049454382070682798691559034943071898520159335793350940454917952970111907802138279887517278377159272027376660779273932870045744024189651609844698910978764259402381930341390262930106162083331886141033080006783657238081366553507244832431525001182302468637411421617259744705602210987001044097636922869188121216855428558996536929082934558242869525114355406787363137829231863318599859491289706658353810889219232197500805283911260252934246701148189163887325554396942655030054929419390532924752291763118201075690501053161486731719450108354737256919494655566866980158813206286349531978386910584568478384307787046633356642013580957363588192758209091107697492444661586023896967658570059178662776291916294800755453930278724232473377547171682651771998736377453116800091030753830796959798665778703741941545076920970144186259409813489605712057947605714052283430261979949886066315654909214849771779800456698305552132135545875368192792312746947642952496076467864619644898922191339257577677413403073690015311133407300352485215686147178869943880447061737987666825327361165661298223495102754482924662062587439512892457851093503529480837509858122381091136269735447480327373578055769323539328155385797485411802468744528095342447348330671686982428422223676802705071138178185370962703209886869537431477446161226973095678914630026227437015317669812085719588978877387154311177739247072578379676529155479968963724186529287834119765026163864393115089785988996074362000034551279135229409516759863294750760813167693985719690172310020763818905585392792785962537427584342480585604372950735628850000620928401402038596753128207226664058640577463351353657926798332911059235411448779034560237135617452739282981392931152302576223536891599475021515818465644083469218784606147346845336867883814251799456524989910186724060169857120137401202754057117161454263984343444234679260495810642690987029823354389640753772370781739978896121941142955728429363671497192844706981976034318111475870128412468162580147414361645079840745318636480281591935036940634934510238494555319738681772435930800072740622558421694065791900476702502875037661320120343418322988356688507809704744426238466247448284421524981034484391011385542655643682709220606391206963837840248922875828420559493045649878135781341682193260549880339199323294348990052343422032897893490125700571493956036617908127726499777155671343437765156061196929421311712185681150299376256928091589197347231042265345285676686264710383795832806374565961478370158279418284951538290372093070325793587471745037848487687249953435105344417619709603787704577246164496741605088748391894085225243390897853447827284430766971959492429441459671345760221607999301274176990799457876776986175517643927100769321045401475020604977502100935256079709879469800153364857585309701252460549582696526502415719293884648438156106203930490873807844071789339129848584725659807626493295014805043136661888993635787648668523894171214133048672265615715758451545507006408700921940370390244019538801621515107282701565307470848610389863626721016658424886430051094100322133993321813719934621511820624220885094613169251585173245939170314272088022615110038245940491776457547965003085425913354715715523247982510397530937296445886503975504468898004903812004013510121376164125638563623437808459503295166693790463015294332636482874762555697957101902601948907128474983512106249564981444434159196866210320865842045827501440681367109740662940382465593928051759908910010599250401511395292941656299910989931724378929688338093280057428444349701744887673170535550109571108516060011541695193322089547058209039822737033427616850400507286378971275409908050844801319268279992825420066171202046015545268683800720357707250009016763680004616700638457296444271988180521526432153407252322943416642404571493780357704277968515492444040074257076918734954925592774602484908525414881555852544783087715387234636076540046415645052696556844523021187035774068861270508928806331137376115083310255348248185277013350257830511049166431025572401679244182108777773071649433690753715938724767343975837598284467667987575491915817123883745855605981601050011847824963503974419510447585840718780902408532833061629292755417532611947522365330674337600746311050098646893879996334468378388499183832461690879912700555195456533035823229504135042552551655980439677501329970332517946959803004884880728339783526093141359471603812200430929835405036035562808276506604912619984995132170934396882484877707158860175481687864537227234168886318653138322584714406773770069918865052309961776329440978268845272384943752115717004886012845800844591638666859006325585740571195789558477814585128592248524397341394615445975856499127063879183253571541387291357855251747129021599884306491063633171005134130113441591751376967254036000211554637271965363053517871206072244913243927136307577292561773884579624966601383897920315178253357221504037904703903900057941709645869153198917145468245730155000166952045075562796091819218699643314578053496827390481585383582849084339551294950795060293364298041174462925532767277396122874865925729590874219030928320791988510537563698198878755031674306155197737115571764617652950846030057950932529818151038796884887171251577562079643473140568660650163257751169250299812504281439319899294448850746093724839265815115601617991168812000431376067583012844154829833888679352109052331452379464377731747190495855730685829769939788015788610855154050315605472205923364036941900267106679689466794924482247192398257856981113442401417792749852811131488292357223103969321241528102241433225718702377676932159856499066007650352693561127353556849879452776001525828349005203607345741850621738120407718259928936555452307974996465487937335117861547453073745585403338211277304363020429347061973982682454875049087423057867851775667976114276658698597849316955979560545291043652848409814272608588619853824746471759406714039048394272760430528199608810052467866036708328532493575347391515136499107264003973637338872089041899919658317262387767736139884452437108941996892575874331156899630849168445015105553980624209686456227898448936828135651878418192214009985571743228311611157529398398896349270468751763393586387835075859940565910783582658608105026382452337757200361872264170868788780609776087048239450539413274235192430469175471655220335372987784933959808951648535955559069430946014438929537477817345502566612553949057481996237635993969660744472734125484416858947890025313222410627014002739800973540077295335587157299422187502405900707450501378056925387715102911364760145660141841604405007413010027524657382986816376526312563063343645650438687397527557264139111534500768528411938123083882679575951840352816742499123886285494626522566778582437007382803272478428704587568627854127561463797539340967061272260231114535304772177611328243020019818943450828374242446329367827155318605247066458106610624756977293249884211598931038910044520545465326077707049958751418368905010469717411258284764920608039897056230744252880616536578697691990421416230957775505937239248648352004919557500549136730346894187135387761999365171252940012654457034180953240292951553188831707039382980379908065385658408062071591559947347931193219480277468562917517393453911278191940309104146499784145121564991845575456349163103974750390567040981690531617085223769185642638284849966423660639182310809857900511840963273344027414846085365999024935865948112368815625967319943903471451726666529716403497008489254040879110728574707796645899356022514200487946949237630836002163761893402949359543897439966264255258717884089356004205063732543029658396792405179345075158892090588415086017241226601049010141152248102331847978641813991441595088515286735404647869730626758225594950659741830036587711020361901355265134690790428643406569194356212431160938660064570815187702479325568400001551841999418945075023875308416392605508156059758872624430994415763355234707934184615205154864789728669230035671746893805946571452638075763813933791150093571854924264823165742108012085896341757908786019598400522389090853421610057050756069918125753363381350256079238644620392342959697175755285966185617579286138717746897913130128356685918896390046946951533955691972595132491879656177064424604167926914770291467850960920205311382555062336546849589241786259885591083828694048803452933252666427210109575613506401982230898008822648083947066975361762666094715871775757436233388158391394385846562762092503084214042353814407808707076501665650295660389222883643687393005204365056386864893965625430001653487000010314055181021623966265162299171245026246986376931799832697844381273502423631657881226195381955288478016139422015765029197630286026943178059686694746913051865264808663961141561849251996632524659655224485925707094075956750857136179865956707091104408515363418622651092108074454907543711142520208543031410820703854982889313662471336125986824967710731978188361346126535816306517864144166657007774598061099338014306230637392522400938826341473517494988160064490677579539550285529962154523999205602863463642052653835721417759566690157458072111787117515192458610946546527434702907818424524292381385127381957482096788637658295993256273275087634431788174529092336592182411599485900237924576155189333862803954145629242085984824482783961901951299393175551414487787673032287643379258492777737416692046316991483926609150429543505736609353749568493031807089004715812711395432582808356023568116102898857328408647517796122460770625416269245250898031836311341934129256763171466576610793213896195170709488934500394295932617860383396492338034848285350736568712853550368710277459798628185084736869576313323115088588104736323466836448214015547899456424588477013516182383423109453888922375217156873024888420800456154138958303523344494547805214478969457537661005419487590552312539782430072266337902138395453739398971601374653038921643653895793233267067655482637271434136503873126809213824813192957159552145900012192186870821493199364267504848280534226509485953242425267812116759981828998685125595986206893061732224068582756791462546562384557402432985571140936035084068913846848801683195625153794557249599206342877798851973005465676507152183260072932294942971532007564580200907504531276398970084845506025982615163611602267472869623827536794729597365941487710951711988303411417021497602292800426124545413773820700862065294664844256073665580410439488007186858577080282791325881825827518548212269066202278434988137214134237156633502303322525387757161016326945804183087726002802981828910448638501777723291063575010016034032353680869902927878552737662744546278637642450840648748271056782436956314196647702581321396311060854113441790662482512925549073741638661308281214227148377594333489091216232827971714861276961407255546861228728569622724925576259125254100125267449777622047533536011739201024741291979755598662584047879087052194577421657933832951355381693683911027943217140561830693451999226334233912033897061828797754278167599542936741151714321291311267721201669101235850789490021023937104638311147725853236109248131310811740881378538337992371589734844887707920557128568163497694237926753474657345399260296746053049404148791027538913670938457512505049591152574164835276061867793837261683727465265082535978065897070437775179171087460566250557972523960530950353455754927165187865523963670944169411555500702575079827096297038219581392561199160634945836562613370769674528641815298681288751802674658542051220259948235193483193471305424208274155468161766682770591374215971331171047066630880895943248339462936635113576661155754639258408711322144721643198048236423484737530366375617666065480768716495170286596920456747049938319547416805301499347501532337409377688572758184970632410861600779343265453465580843283573894603256128184046358876016896599943964397222520697941450692885958878325035940856589400784846858455911321621258399942725414987779612172375931913834707256536721435661208380613438778770478939309408670384699877266869587498938900544661533057263937871159720102685726094620082515487928208396369612003039787684525511213237718712212168239553872991544018662142847113954912818640453388506596076986025343371094103015889204837164442395678267052277143875489178305813894680531935991672444170758916897480146953019127902113404719006232054242322825604101159399661388631214737441133680380590755658292589349345244828906362774863650122964482932575724189263939067424506599400825911448466970282730003628185926599971349890705996855284356603551317167196508827673897650016567833688079181089674063102568857706810000447106295598262001959669793717940764654876755589505980669626220359181173919789318316664142072642802462389294579782693759186411934861348705594040529551326743945328394895952491812939439171918429430237891267302392192299159895618893026460810371299386758007783565140824507058401061853335044899914740548705659945897472335997890571654483880230601612449074252202638545912554860861806445645184147366008034019112590589975839757035611240768424006303496828522637493100188451933596979445518504499709233593635545139829441902103968488818005332207486822431479076094710626305500326688967865427039302925653013323068992250383157716836531348423029596857809557436380491996836452633981817294090198076351818004164594043349902007584330114043243019221572912410499205128383277251477824927567786637677729502228622140240199295177499573679896403862741731910312232190253360004153331871772812666488333719688650789822703973384010430530505422851902789875647959428949926408662788587103100205389763781861363170590514310307708889391946111318599252784191377910776382561702799271121362445977459399972045645167679527136834396068624360906154813215978315615155065917906161447175740041327717864511374727411045037993409544043227555605664504804592857641854613467882438462353562491450621516644719481761589859847191196280328120362324720055637186448888088202290938353899384023857139887905284994827996618677638656934152422861866620335889160443193029756274547323848849559179210022608976257505520885930494945628314053614248216338707578440514830687827649717660058815025512859630888853801283753887656638179789276686389565352426739037645611694205267661486538530212997598998188541970776497907748940824454042203821101377030615104029340933670867801826611625459328730507072766341258168574089626181208191843351680140404949469398425392344560346071314195154762894447559580581317778803984586229644047073924935505500084613426449769758429705571019995085850573806482474929661000917327383681580463995434850886593590678091774881882649913071118529493476421772693039203755486185990499442899377363606791667688713340969823611341015992570270483441258953809536134142757896768222947868688873028508752311557244399358865220027769995165025983283744384239086756367954273169267057199140170944601556208328535631568828219082113565208067840413454012101974902592732577978909437430616913573912507866290256432463313291952286599480053529146084252098732200442656522306646961677019442639428789830476679049798477829954202668600099709768640727067150160570819598527629634988028284615595685459712603367440385027549232117486115537576291245437923552182240942341602846152619482656102259205023083551539060657694746530069446658331281354711019107470484052886127502100562318480951786485963319303809920471225837638034812382723281198733433393643245093145916319274837271966798979135994670928044408670222359551581853792335631127948631875733123393475891217802915180382555836637428471348984078015413798056441859222602378672718203387698338422167077743418457118595870072682823545970035495412679659063843716964851565357497780257435226340673585457614836389407076687857514328593601348543251207083273429167974454148220680920502528032620252124407530187878619085911621417546974060549642066821782040566520749398138137873603053308280812430439368026687868266415356270435617351362777939746674882978624168606102855510879562697434601222371078334580737116728263233848822440007075496913670566968904100887408289237829945031530128413998081490822973637408837161026438348514572132037217884311577659139599146522213707317140578741234100895335318210881405267338357902911165753946000564750704624462426545155900913150353177406753957546021302712554603087532828318839580941442240767797217272958243948259576761150984316773138010878355076633002167097381046192660132701162100731354253496756895783478093617236115304888676685505859778975785904056839934224413161607402594346973543413881224885846858829935697834251575441222243692212336318277823128661976849971659636254155056874848964808173821421405459393364192446817157007088588412444404480194808914993019277923333050842224978079263476027512862809931006823481861449039746807941093065301924733547576747627781033272367431138937671059716234904141279072341961357878886433020319459638244913813857431032520515103699287339286524476853928325537099730107828178903009614388197615931784201188860485888561328376898165730773335697642869876915025098084668359858708823134480442808363411797954759424236651330777935366310163279851351423841692119553648983917560129236457330352926761807111096348768411968328911385817998299919734502174862346327985266157134484682634239398952715236082593996518920798668285591027108005561755919180142038659244803978716982698107895654030313549398565604072158948684800527116536325942632397452395993851351717428553864273445008423729730318401881072817512347227803177096816569117910166328329963045584633582032490441411663449083050695585808474504280162220518310272349643700100913142883444368532701349863909474999054555637859472833033071889210592644068339531717025962425954822458219188396908413696525647175188459509363890480710178567416419777978277362395704189557960260052926059376095351477305143419040487651965760225076791417925458279235477107992033411190383146386174639171735469144436082985517174017085387591197464318616906988245281038736261250525921302033911229114477900330823986959052897353228249695907684128686304812643890101240216581101686592205026430642461712884103485647992131011299523441926323478233733908288407627213637822736998149376411278524848517559477829807906685486413251834229607932200104980125284020188369277102431964001586203990456319508973944847911391298805622843552947139818349549598698287136542261765338933005834085251911378472672040923346761822953320650610892762998885846589108399681106100178771279048279757060388162141501966438011605176492262419346982045636830109439043164635259853858604190764386025228809590939030008185976364198574483110218063726660203130747467166375507692036312597651487975237748812807449670729561146073275185639610824606079105702846164108529660113603309834641324015616508046362245142466993013876620563095155279858798059278964065346830112819969244569132132339803706117708347767247503675821898178307127848770768931299863723014784777965480205687723943600549093227431063401800517264818979745846561091197009271962252828963621405794251061580748478249356550519770739163145570668967672511094130725936771155177541145921021453783153632802726403494326850965894188266625929167982291040718947238953887758891510142256440013992809130943105947215505169281996663124491988910236925860963459134612524350889301843424583815117928704030998525952876715671989736707450314675350514730440801882110148547138935455240918297205229405746906826878129107971379982410703361679997401068340160141985542637911284060336001252937635954875216412560182942122683460032500400666667486560212250402252262754807108215144729317358191717593427573930815146641720136831181454308818454581200239619499213051025558579036908622073167108747438098849970817828078647561120728704391015000453736772193584117206152120986172265421201197304795369911593794812032829388420805667664371850342151703471134983494228669492928044249329360940389235664814225167750154908261255159842503531444903593388299792702530498982909074497265336507132615802829762615348331219754338764638445725654213075874980314494943860794967839748061984068478547934065409127401071012562605014313304740528176170436336461194376689158832016428244582912440530412708662249074607055555135958081507807545403746237922635745624706635061204797350502208731855565619735584110504045193669575644422954711908815474019079439254858482845765404662736677181454458969101981021375499729996764960936352012754538582479920289632363291929484614006346334127138966471268549828312839005848584365530067350521697622492411423009977902184162638417944603562455557506114339892371778334151956825890585283730195221703886280176234061668165762885445075483553895679900703368866751541551535525512551449129164367566192758584793871060878820940556412794212450539238179328975859506059922743123106286071334501771294921948429136197371503046321911395296728741660542888970382767395237235048659385408456370411810999559498273762538812070953567014392049606547596873712660807420210028237938340579242141946850070793887928824843728327152062727108114954725788448382709194931542241969860844015169080322349926511434670877496929996558728827903709521781949555937868033186325681853359361591602373161967214628582029598627280770544599003612908384079000430425999898495130797737977518445523759826060532610298930862451050154742596957864196489413714045067411253686078990652953657990368016928491839891344026738630443545846455949333159635950593773771452851346219391512602373574176261231903505016198432942790146812547426662481605050814124196847357240388590007827456785643965873983948278500811044372780602568037591130107745904151796242042818784800793645047968811805854134111962322936828847642116126186048728141841458554155927101483950489414227016109655840898438245724209342763457616550199524918275771663370846223642489473507717759294465081350903958708834181203048763172332004005612699915962054549055395491594638881983864866845616755231068145016406402683597826664456546066943961368938538059600238943268265984937651653822449327966296880332585639146037953614239425889438555212530503991424905075784976126409170369752379648357552004976432062894046435527675730440079040042485585175247794232644677075502780396810834656299116286004055991768407465740646524744167287710042909816452910805290182266989374323312425641141093039896696520857292155211442081757920703867835670679154222414044885784489965524185473635429707180406215053894133026303184400269563803351953337557047215268507405213465561935344866222668872429930096088630525863023200605633026360719445762756613196236707416142849192389444863681241592549313538635346311201890467030102618123070376843358193206000173226016526846904349230686086033571250500457381043263096075404395008287631338342242200718827487787947708129321580208127213822414148894250570466002276637832169088823332894422443839679364185670118306064682323055683747069308756836082131455402912390986127300178081772056414716185745082208597367769139908051873134801131006062297433570700693170697606533750552973290487736700081263883217978559889264232383021217433635620939499890995288307713245625954795716367102674627192025367393141647293067035445525799583393052141331553057470175477079093380429886540642141110511293398753292857459135403762114750449808089278566130924842075468473347081466278664823332147175527710713209496918190174506013553174020822326125773754357880878378306398300684443785763055065996022695165484131486185449072888911819514948880330105953014971196767166943181739287447280672219500719175748555332937495713264036379527749852208664793341364153650563863382551995135000011127160105401484527150067888317947844850231230486967103526644455721113129089715103717811647758233646677006271049020305637558248511924517528386708045220478295801995089447680730591227759312508999280677280619797412509959221960286377824599560247526505073642252694415880892499503886643549162944760918439721499602051420856561825763946206571943173448415254253638338648573087185380088755120537639210965658581364318964498596983167158640680341295964197230497769232770849445434276825032260631308882965134287442914137907356724038090183416388149346227872346435798791541651156458229732178247488581173190189843704341788544811289215772355295081316169544492543433823584988233849590683378314053916751985201232015092846280046746874680787404632984107804885333974397315033487692677398685640766824940941102504258858173410013787170505316474614190648353495189616082128692059932984991897473012203828858537405137652174541228203915003547032651347188378640267910504480271771844421937578765513251629110892654768322625435391647938312263596692240952422601791588521571081870409520706162178515098188991941045912654519872628338234765165680140105413300191237218160365102918086753270142541127278309444318277782627862374894028910776730742101437494852679598795471527410025798070499055261331804271330676266099491867815975550572030174182840234612064960528380588384780724426293478613286062103009910736772106195719738866514248848455977015055126199663169348536658574338946861373290918153915687175918957254310235442092988008678750165396539560381506007621623015695293016856324237592601914066925551726962450090957309624257260598777397369344059281789598538614313316832549326449083766079691708955216082041003835003887095857233928109599893119638720240829370527089924132648851019405961879446254057704573944897059397985654967678199950516666107321367858504750372294481970728753418310404395865944861879900247783629224983801911727372536960590894152473328654167849299777467116773922517035118858745245705651449532301066308560923386039344078284315526822356391572563128494757972117581178397778085455750880999096746779107721671867348013186513466241311501869825245355181053519262460823777825649092539607417814847256539240030606657996821545847167201983910125690546819518459940031854104190762444235180197181875977853331463043499929984287653551028897252831031218151059056312930250867182794968848615218217321969643166979472493199999972606808336601564457678483103272018617222504956214943002918123979217217318242325901420377853551144642112261177384721455016072003766554477155289799808613808608222430591238306924045776516006103662553517154256700573770827280843394806599780259782004019458292202627087249523712334042742748018473340128844316533626909908131555239195599624950626054936095636531871687021050503492976733146684972704637214543961428277793355981830873569702744867051986760511629509445051221956708283962634716212074378902188508609431112469169529246574405063549807483269116533121795842243943589963538082021126214855587260214033859856573367315388718474572207544474457386006530016624242504933055964547213797224539779444400520727643894394387036422957635919861581259330875285767067817540087550571825626492481577577147420445557664928964057374001906558053743977250586521803322552056972210656193441462469280637630448155459022128783008953641143126580216762384886102680136543834823374653845856560781782934621951463906041883456633260995103949153716992126539680956348867022573858617798825326150126915539461411101324875162258158887655729996609153953165480707818995607549158240343905503497895770030848035003918317425595507459208533222236444744458616488389097117337168309691334604098270326676035075206448363689761725289352020352583277322097664246305794029498853023584736904373556627487896374346705702232646223606056503716063788389965430299914507192266109636542431776274932126580905403878762513298326694308406699970913201197513526620051182196482429164995022580691994255195348047274431797985548037573850743853995724449614507413052196008794710907481085566321223438826131977381940728559703301352107770801731705377693551075122909203740614904216694280917923422812013645592586220550055260947059928318216511139445507047750540422923966904141726188635083942341178803084401974678669055878303146235052462804318675926184323433784671209097252109900739771030895997577505935895479671441976075248406343020438721953700599096304526599404011794163854789937265521119670421632521513656008882986434047311083399503612542529727246081765518330348961907173155038778794689805554501632909311205949923684087593859859208398412535732770500406972456235621484008874705124284860414704120229779797631907789533231158127235448387688207311446678750180206074473760407128029166717557864891869807855815435184002628442741934121643575911084790962587769277641105029880467199850311730438253818750684642631061803252497273197068828064338847538846259832668055419919820654240735043244210133027423545779144684628416963825881911785017628326369753851348416562796933621634631694867235494845768358734237374039671702657312513580075809737295138402226091657362515938771563279055882017416985444363051438468878308929149292108772526116696628756061262721888470782460731064575380394395431776176183585099807981002349816447972675580869152612859411087684252350585978091579310939256767066670161609754332011528019474705231641429394465495933888882748837287722693877841757275674089624837537636769901341990662672239959651846299382158345878251453390298641531948033299998013335933069514486231450339373152716539078922552282389494775076092812323429278836775209336073313719516876000857685619160463717960942547087317568006134848792856676524411529079539122204281835917464453114296159507391299294247805682936796208312191116102914310089635776144039280280003485360987874516804903259727169106579010845447220974941459805543232832668967966893843058044150761384414378379268749831932304515026964246055189725306373245841504987861329288591818312290144027553086062072335366296944094020760683904786333772729218216489072238354366520300277858477408647472805880561622694038744360158726299524928076789170056396298243415975229429136020182228115745633248456119448042763437626111360929136862011681605023435639705296219977720866309360566933378210903529020680476009584111433834413268806995439371930958676035747022044222404325949214374791635500610307151598209803582584289346984628000904083857534702001683355166027456039038985909397706091404866709298438227795193889166091492913933899729830892521372602514639510510896624107242201670958390661070964471549843741180887653509258005279575452072349778984272573085375509606376098157419673322798603095184421619775508990089071752064062077734622414821350228909092209839491690167452089374949933356415379715879762016303846496605078577825958969841145987688456054833660882294623734433775239748360206787023569607875104109448151140139468939625510448488621418763985969174036699362655596554119769119165359345477983054855855248271458164546117788296248561576275917403918803200434189550938291643548674975913142422330859193846302854568845765244954632930980729921341975028551110794518920572670797567259336025006531334202858579753352532143354105209505225457439619131526660700860752643210502829072706934501591071859185086531319942585690714866933837921785789200093240293634963371654309398622838106929331375812434985458281731688858891303699190220315377954669294649115770292201458800111040636722909745804762047508823257769647563768627617850976768316353315415825439625729689648155692421528995568841447552245029692510456645648043884046328651564390472837804248780979074915825472022407058597255718664931844022581141385967841558664542390935796231337132925479002171935792769100938666794263985138250892164131405090905414210652297978927410986011259469037758670019676180281237187640916383337690294810588599833271226895058313494912749026216616869055771389045316425575573598927856229385809181282214298221075080218988157890301896860314565970436080661052918178862356239627547616233779811567376860119152029170003140095678052557520377190361141258097196645002843783081902613879488965697000562867209703834937321966902840081452427649326775265657376110651802560234853483520106778685114879578022823670355071361941458637867081353442257278212449097652310760286409431949034131418636190782406324325230439001046500145455400319354993577217613123053820372374056436957753726083111395160573132182683680052678224335290611728704781697797311054833499066142071003723994210166558641652372143900516841944331553412901274410430566561168357070033961206755549905647748249375044435159222945180091248101335666810970439543991436633106605262352613795592640801152928520730821971157469374558462383199909497425963935868095166739551740193851143131265148340656303093225102831383879027761976717857368726748445697956652111083094102482807149781105243466774104659105983352653909960044318398254509420560599303015228652820026949596201129582039474522921182754482590139951578642582112919150927499637626474158893558047348090703978252711975078662340228955935422644814341679733177706795680123999133388067186301493827752412846677001809478645344729601370162325433708091773568790296768829399211099311447525624271677774910444620762898670419083483058006348302122175954050283899445413563453373546757307017230741649201320101453571518470934965293186545834095246779441601592961013548473532342689635458629481440699838201775285068385714468650096365911716288461338636294772927259106624609478377152452397648634616926192899411600303977849573937699793408852979089706118157459617619072838380077376314744730151859588641724249883515353110936435480135568947117743076994439688173264882196184842171630133258450831216866555456667572765296298435832624103007388804162089791559565511720132617349025357996500119965033957137953734525303777653200294364167593620643446803001949134653971372582309633061286026929668214148648217845567846255531503189651921693821600016371940118925275029465835524487537068101602636344798937414273591019053046756952873076857873336175095033236424856065344218863572900729720536657221976017555948172601984464975553787884094088713146713641877461056298452129397279479496599206569065058731871994230686778892762225505169374027315597106567105498442026600945821057494507251256147597963431438942433939067531477645760285226847638843139738087781936762342745925300641576969561833619993696426224791771878374701517137066164473076082768512155806135153555676940993429586031798132364395188366382829322218636470911337509721636485328613792629464939718115813565445743871158066922474452542352831890488968477373299422858569361778380737541398725152324976547261500370813170844049241263413189281952116525621140512834396826167394457568101780834127020501845881156722362246815119962155724193943737731549861451189456924355550323454743488932429152070155602003725162271386826223340461505903989031296430090902515324098469306246025482850333186840065153666439461766391713912530117742803663426309599812344100341648930348837965619654710923824915619316354298219978826228510376722440209959382940966447812570079159527242855872012139987784484179227813415755551787606389977666243119527167728342791886912162657398992683619166883258239607990841641212032267776896510966003929197361170957188695861440521850697349400616669732020449760145724880405800004762185966609789759232839636465073388346032135980518219226647077069042746186777716441649880643637714667745440509516489870025753276187552537541828048084482548636713444494827309168130865798900885864318402892616578136627356965089776457035067351215956153262434616732557462658472548962848315017515235340912736532804027748507760962807320041436469353921676272884898355512929531591750152121631532237891652090939889512092212840851419366572642465555129346497538722464801452520488694137052900472169857993156510565851820438468271255343436626219629757841991659102979383320269883947906954527124231990911064478970042641862115980495512162203685425545378273049861356234686870647431314898755464986229117254428688179301420669022454574213495184817150716130303024675645519526075680637040154245006223858985550663930631703433149905428023494195229306363038389793396318318643051672779189868638559470897205362838033210463962667739099334620729472146698166402351179691731887487264336965798430839780644352832563334830462730258539490125177430073455605530614231138008533458566568922180551673354437910263112026825746017248728988655089944865341931166688266262668392792168725397627892185635598658121062458330948736436700738766087362244805993565295233205179122139490419749912906615585989805904548800246771722054126832785259532377072181251665227668349931442257390868800636604717268431494429105181442315715911680963236427715555520007742367501972188173924962557804724624837344006924799372587280064210641600567979587451738805242017714999403795086508119398761978933367580846017481417445889046752245960537100523554880856491456862556042760024224909380714965412495458906442181675538360398470368541647980934646488245816277331423980655801485840079485557343647241494390868049947336000365658022137655276702898522215299578862089136392999545822791719505566008449863033067496488403693510604124322747293100361418063013119033836384274884672684563680870226657405165100137168596447751237406760344028671853062106773276954258553363619183677277929887858291999688511755787481706849008700194661910015143719630726396115418853225861872075192973652285961083952277867852125796893577381558160621632584974004898982437616868930128908334772165283930012939919947883718370779961771165372952347895122336802487108508836315834449147129523722096924849164093954449932123535080472984800904228725033269225714983609112671388827739565723190355408324784787628706961668672598293176393987064275293786981090318042381103537203159963432854361280300857584570112372832009790794682277656678610502461677880886680011260100616978254528085930798802745169737118396203082681367043176481924042641658554034170312610949852157672912574273290361092400733734376781208214907873215430764713380920085552119108278172263092047646840869502144839067739522022804845793499126146739084656104073872790748135766229275373169666059751607678969159115488038458761503212450685978476303843931226030721873212120829874066930299020589494425612683746333974881786990542931096004981789486254900957873130362880463255970092260865614104797080948894054878641650338937141095149360366205791492939040214079918543484626983262640507534657715405587261349284898229225355871102838707242362755497586781263233642652812763144468434352542069207348751526854725382286024597970527402949834829575262601322463372684502211270465486639231068281394257943242484513391106611035867157063416683285777991703110126951442664755691732001471301496174026817616050681299936681719993887083972011303420870617244719892273796815091284801282943189629153263696292058446997794521363593271829647739824584501110258301129108572033147213028216242637734384142623757731618601996921404452945472151798886079789034395144105406921586678044824119101217252997495021549790521375057083764917940978962223341288134854219996274368153789428417468460468418162202121816541966758029499905628742585116049408229605680178672807846555948010275103245167287317580839866284791541227241175105262422014695966594121129156006530759206329141381736132889447254442399946347748731914536030261494786917308028181007498553407916366817916751967491537836820672144426499035577678715624731415002046068980170224805020212489337911166119394429721169185366708155007775699508724315619127180565224032729031776631760175170598444761823190169395644736617862655821377547077330762144714228272673744454213124103202386341808968210484471528955249876045905186259142166327183407378575726415231855641408423248959205692255065611700126589248992750283336974694989585514814932000978245204252794708282796515607355796283150730036227788538053808027004418963022485183989800872063535765064169712170008880958530486952278651217862121323222694267633585382234310029977689856142161340427593752837043717279266911065266757120497180526151895790444974870032624023582876751837357164568056788875393969724382004532922669683373123235798104094794001224576392152819176903198817596331592641476897907816667891780069310217067143750196135567993578367148486180121383787074672106617310753653103627163519260451180084621631706705675227819076943716528308800995772112661701706492444851919273193769140807085817865055641862258201083891170671381076707431977433313634282941401008205715696160116091611034206076609796247936915018444166182038548270591839254466981967467794643393965957961995389431955508167031052305192475438272641125206092029296131859407530128622526443815523993745121563802631803844908787230411768137857029513784545614388584031688862032330134355398367594688779828799630338366043922968103244639518148532080904948204449135066132289650456253870355904363534798230609561040523489067314451207873773790409984243075069941365719930605415629369246418424645443760398407903279249712589470313972064198567969418896689171531572728056520879928734175335178659319597926229003317092730926355963629081771586939864627916699985289228882008453992121488863313543620353579318677840644294319294218323041779196969791950665824241477630223308079310649089651938443855866203419231807483066860179719156806351459665010268191300861717395965321814789193447303527834582184837981443879087740786440366861982739285748498420804953186684559323575871419668593250461946463168981124305498078046022936550997420591987710393056516366004281309901260369033246191610115951086939076796012698198072003960551036526085040278889471190213744093705736283414999766013888014225034719772845606357488802942452816826496562643760288211205022444348472654167139603506203529226283354857682510301642147465532512271234924195218306058349724013023695098388932168376570866214650724075944829157642919580187993249140136322870031623100724820196622576186629511964260391907996407826921677590443051814105299652931747313105853498023927055617372314408690719372936258589676136975758592505206945519170687226050575731696259657905176304831304172522376623093606413883531282901923546176885740672465132975741191460869033410491068634260450036372108030487465025055263528533898990564962176860276864568510977836176453750859066583523454307814406319337213521025815666793603243845810845835624200864104620653940931906635076498211517237213233649898444875774777302160595096274132817434007957353544080230049990544675645741175586362182635665212837870741834748799822371580496425913309400405876939972133825871330248195030217824684660252232224351049114700408793828616311712038399955951319840652395015574758760134506241258023121061226750985432050463629741394510647135285770134895401281901081282729240115611103139276279160981677836594015600901568822842174758980888535170976729312219408301961779270512406040463809015578017680214464735221961008272513456032657450996784289463743885122854745438188564562932408771693111419044304823858358488130382131565681755385619820506566589375022100220371457393513183393039209889302505361276508483772760194049912477127181805040594163622691745433300189706617677744702465277883571497382701326490609659697638816169132854988528233095705899914918932972647694613954059384051408614042532261615884309129660973975235556373855929133100237801492476055256788164201747745742680528949754527192541759759309609262932496770057288626411691982228731401910522318974155123338587131964047697672237959727401805917801036255863728986111592309404796222445121185209422179185668126920942061936267644671392141302791698653692396008327811143773733705076702331651590526584107954643859405539447914749590540713536511506758620381075560418377747136125681856921039509667068307770453031365635278992167594911008199195940534093064608004531120577829159456150481543801104226872065972937164800942630428545222591598510116251561990195959880710463865420649178551772048681687906324293064466272525092246596298006591432137711791822130343999610455434368033024005365128029477479555363721987009573278702737833506498526859029087848282746879901502315438850274384610812387382199020141747424839797814514739496233850230150007942349667819773101976507242673633225494407436436885103390481579632344847222786785500063273655549142070398330656786547248191841921996370342710106919960280497755192930900599603203285301870278031912579778815664035292062780167933328354078771855822191230971665101113687635740972980854789264102038375860527608179498820764709582109779811075061520818651155537746216404482204028315460169095147426969334902058699997806581392756182200208800427890304819801005384105592311386889973179818591669745393637815437740808413309847187602860379309560516053461540939327779343799320879315664762152810705158341809006719070509392704366059432130402204804075271543919989654414204753621440456348181838614820930421796203806545221344475453450145057698549658143159330016296242395562182585938222785259690633065508184033329163162014377879195536207799485399459862901767348019468477181570478113433988635839149794082663769391056625543477029174717375941944893628038621495613286512658040230995754304927733142720476311006804814382145930417931386640240602685795554888767423968515014996903880148350422307830495385317843375749082585930876190093016859462506096667911302721928663039349630982285186144856521358074311923369251064788925785099622641346485430568027257457406669317249757310190527468855106924457575095375482324475533844005413626321765612128689923094759515029368484502737287913832659110990149206086430631599147082526858020532792638965863321169854781035160186561808218786068463190108371347955706197478888240251033832648628244960128003255260872600592698609605816969421607570168143537671720802866052155793361540783488193944588334940435511067472461564237482927395536340964963577480731366295199435363002499950139780633950996147987874578357275447091127455048622342565699225459101420650294954108005919216976052818822258603386417596014663199374014146687840550937190307440491326986374724855467117957164818295816688918392796784846791625322475364797899610698833127891655975758039599892033060447715079463818463030269949759276265317261182078997057644134739830793225398705683074388255313275059766726186554930092179921400084587721547160703189668605891578317919102808338382538057340446926534457733230123099674631460451016688827551641643256356365682259079884162850617345061407748816427887885637890382314659220705960698405370594227619916715621988692083613929772086856108378761823282082515740852252284787903305918867622592781364530475149954110851675431977021700659510294931601822877718047550897493045153040751810308706654693219684579626718035291637713415032212525170824798137578085013435263305115398948269937991434045793348876953256266847092952533122027909745238713160021816221416261798859606675374095703178326266168296250963613855154080255693273843712445703032745855496480894848429476687953752797170120933187663664642130042941104183188366974942888082979208785056988106824767158287966072299186173014336220173856265660126445025831740537152111670573191464784808887723444274136295821353687042968688809293157369116740706934984176300598043416319956473482753641827959913902989265172489972041183925317565208220387847836353464873057350924828062279508568854423499553975535591637773876213732564500682442378361368805691662111519796028066384536240065023747857288151360577473082125770221827110007363785637293154789027526003655670478837087825788356713003490821246725466853862781109984275042015273182655867501916235977223146830093780897920568866317847295562296037030595280844525271291239262345313482459550666597600011565718462093967996076017362238098543414112649607365922283869825121932879353777032176894597576473539095088770971977814677808507757041856566716464971311017437996399595421489673963925942416833042744812073168376153048436487674830779771544587530753529645206610274914946207978396200152573728624997216359717566783780869763038446900475442703562856829657162085387540864962929617956747255263912575805234730974311502658805921039458420708731708365690786653695504129208277972694562371905648929708275091664082949202067205961080482740843434204506490559366786343599650410919087344965956552310373323908144049813405877835046121804940661041591033390936745218429405880375090395450222031772948580863797277114511681206266850092538960415790234013852443837554006127550658991733631898433247692108670313677285675252447689663204246371746868911352200151625287103041060292696984253410682915874633407783165644005637216883846356470615451349886957424927167226076492048565621320425865671994434079696229938024750155187867311765823792857292761541369176268438819696929917216993465971444922483035785754091611286349296531924469133879936737543297813371977363440082308273694361985256775466224073254229953519549670930507044514995076250739779144134614923800743109993875570219108776598279203964911932032743937379720216314599162029492565235324259419745274472663099562251883737268563664359282812947239802725919953011552410236349210906739717944108446210258537756714629816699644746292011529472970113331934334106126699869804916475322253878348746150051187708708234867015428860835804212621427258499402342428384989353998907552262253208133127113274604912312016528534314960624542521954816144042621039426785212420598919055600023882545795529440066401449965632577499908938020084373206894597420800555196841196335176059553137378262322906215899979287622256535826822146553223423600038681268606428428282013186874884932927809527631200990683163620137528750236967472509252934391704682199813289156695671007343661630541246221353298585572774319522140734408118930321347044786243031654770652381370159588891435028838437268287383543942857099781130504798276884320216247591374366662624299926985449420575112018987920985835398138924636646196103917440957908417204585761645396039350478522475697049865962088551218005645218014916406651683645401865239180352980051732391684229377567384426210383612949609834848930331209862246749410496588683702933675306764750054031164237473957464259603998999116832109395018314166244580773917034894771993991473925203781409665735963073943065098692405892606683472383855840351928076561213042985004379240383408747318022797165211225251834094309084340820392216465881840834480733609523879157091117218467011729354082808719502027598315165653281462068097151311892429885694236881538425410137727476896183730405121424384761797724050910874763881034919418555424872611976698139620824929604893046066067768699802667308042630314427320044696948873578507328092572242366210195507403974466868280714065111460725928837776355365035171328228418726381725110605525597968758492181958832713363196638421958760324571684285079482279689326244149412845139403353103704068094105290434988273567517844676764061763485798259327049624047292315653761136753538944423869631147300379648247445463614761238046746349219555878294688777584092375267370335840724710241237015627079748084442412081653705871378574554706984898206965677542491226391117630097734920082106730000736374284899798158609941843441864195617664580446960445243065330900763987572025215633462352144593901642473981980221826769082540763833279997539171839077884153812590916612698179060493964254748988947032131288386014935831321703546470280993999959514858182411971729249266458634753948021078105939993026929475528744448783883539593266164117962531860468918386986537306847128990508730294111024702200459549814024813455072479203106416346191096198744174980377668205765130695005764241111765581449541165590342168136934054679895601281821460696752464005582114698821298000909248283454206208037563708169328886064178840635662908971212889045517240363921354541718232753131218489628396071547137682220831585106837268970893466733180349220761925828698997775277723619400648791399238655002536384280149863349008948232274293887045581807680105444633656049305358331534418114354880724157262059070935229493380229168674293272070021714946295193658537556223877197967604116757908290591384931899385961031898882314613505154413345998151588503881813696494304063021851736791222393250913974000680401950412878902126176822018480082377252035193115722640877170228988127068503755775480530105293200263562687234651679328346492342716251165985134703666605739165710938330458370898051232528747704578356160901001533775768456676883928144058102684053194404152623076393408014123032062249153073593008222261596379617837455006189553734079135770921899852018356273116744277105981670381699707295451125376889855494531288672356797901128187968440909635745730148527157246960962452422829357008618375439716295435181353694395727803543661392076529446267117688426293860282274275180171329322064985764155304885942549956998547298873388664778957302396472078735181539478209793735236473866787949590441494481862635111589994396950356951928335027809952635038709913399780598996955237331737954946880514163078689105256490624142207978019755743527901972200792588245252710980129320142439038225037586218318166933306837561520524434338775521043002047806316689193162860455769090575901318695791817434562429685000216345905220245815974746890419625277765217994012958802961578027615314506324723601182039059171670482690858666348551249174190385279053514059562578993647811951316367633347638343532474075777086018031429804047191717234311386308983490248350498037236282473436833463281812476091027219822428661158053117547984472391770289992680099623580344826894220314246348953576323187864145324047676277078180267151361902565806464444477938184834705294501570138186196486707828951504964893358838861992077559882761671363638894543343572184349646766869100664860000084532186286459802122158983032422322003666961902211459430304224144105894924441763529668155228393129606062723944595031890826084816001178776864484963116364135075439890081872679195429350740706829447405062090497660091700721241152983189683853343163136238835796806770742871395575913448733633843300551478166841316829027446505255439339059512674631538265428198824342550419100031362875975811747769703158762419295303259756800073755086535488443570996215828564787711446007476769158750345278618849834668761895019141716926139090766988784700961385167916122781634716094833427991456777906468748750228703820140600365252265053801171674047128776790113389319848066241255731104651723093263732291794932186274758725248512995396709298963275602603894866392484793732785896510350268951719730893478322090850357566717352786479162740568376542384873707499225758597678030250877351199565904820172175197845130241848950548515971053132949828205471939506037172822035074763274347503711816069535377583212511233696075788242185588808595414910530045125455302059711602488943197726798145564733592253628229179296399583874328479627588251512109819810439148218444539899719170152371771623708294931444896358240876679632739859138947945534417549820071193658282283880750303848017583767908416768431897043471917674049763171384422157742159010345124494958602341657854282718220016176485295572413467245644929395921774089282023652376726014646917785363991624737949275700087239506622820428238964956745605872475386545374397093574030672289042520122499512688050224109384148130624739905138000562300648627572731002264155312239689659946190180543054182802918767743632902292803041070087292679679599576693766061590104331314218233052432117679243050279437496631671110207299140311368717439968445789653734012308689545767694837293011926541344265297234656552891807110703245662348029241062338292081776264361669541660767231026570672030069911151089084230941990900827343971684845711531322298300100770800080805565699588746204985195336542200769411980044406446917051802226170491288364349648667969134891784027439124752452348436606945311787252071216225772301657967851707853148731902625456023233797622154459664477873063707962720750193052728768134750436372209511115587793567329653336101218193942146958573915643669287781783005361736476119087273328712169979028246783286293269792890512775856126477317783585416718985516353639485481694395140548612764270564201791054252769100921713788402699126363484410402061424537645358338333703419816151339631758044870640675839964533647134652456955699070260294108793022502661015680818376752589168919497783005167676640078987401822244564822546666886177616580832075550931965987062598630028826700833788949923688648907442594532382661347634752882197878811737310583660368506606708654658927380113364680425126187531330613463787831851159299763976211468586689909020813611390853889784818994682617444144388204484439294401574266949768571069604930731887121458771186118499993301233274248484027365150685834180716826898862773321423640356623026817003358990226934186863047709065366197554930545349357469077149876425347477759013100521648847049146318757469595882712172610474876966764423196291062253079523021467634448578852403210403435992769940068150225231024958373113682121756630558598899119165262654853750739723113532498427582125733293053718735642870621595320713660413440812115636757739216842820112474938731599124123861663380679545368488473985935223765327103165376875657817149569365840557295359876288627481791584398485271531555567220870870154967073324253777744589517796288617471696970053440221033926192121279953853973064940634699458841243625237100957175215022301081735965873450900056112463192241023753555018264170446303101204854573656765998283785419770559656602011643587473640584447114105006554494995977317422042249251541256983754882391476936145407319195508141036660548578882736521806699317061847961100558075403224620250753730840848773649657292442120668492901194603849216827054889681276923792320041773016747938765836013406308518362900165991124750014803990784049673753271148119047279054539073028803384802641830015202180280151821408570430893516276821935836338586902341761457301142486302647551254287589199801814791291151926908910137147526320694906993829853431335131914831892573540273376480101907536606953489145797066206080572815576834613812120096825640881589024463638625994394660945541579912881780211456059646863155721995661471129659044544438192649152195672987314132986972427935664716122385410094951483621471622677589971611700194906291275705533122959596080324198461875218053154491568432003711042199784676682939590268579020811616286901735099498945680892350795261942512175568550809905213186780213357119153921632081327654576003786166811625928436778920993454907022038532050061383159646030154996888665313744128137463098459325770872077819664114719648161574863794279768479154888538853611366703710281833113620123330062315491501082214023045199665318223839394037523542165070197346672470593763744923492782293502057041659268813127202577507082125865384407961982844995150955582923565497009563217035043008925501304011265868114735702915542693959501257722141662006123612945114887486112595088146638226395439775653243227224780287600034721813977341722838350035121953721670204848738289340135322727494920240690137784409137777338629480742261294404959104449321906926527891258815795831950056895387478891748705748468403541537173533096802852743894548497418513519614231265626690267376478154982556973775017820241283826471388810096013596531965731527927361190674984834214001819513821080498008454721100375022331479581046632745415554476535049310130232721186394176075487469062152297845073828162682353185219673239730396971502958197714355687369971496524701958258187337217132945705500086908604288808119110558891866092509986921972145153583047449650646389984174491585382775003772685348313865886422340913086246072706812286383131206741970041731305608818443711849653104977274904999127024299548951649438104848466080892023337151425971041677330227581848884325960841741910558132888811116781590189403768152302034354268254868777623322903117973524422800353977632886741661843187686003146744758520449594319946190078218384567490187282896137985687546700637602828748641209605200085392631028350862169073707155181495104212529762155453872571767351423715810882299253987758966039676421310746735109445203307832325513819467401422192071687220937555531560649905992183107168872932496517306791920822208116462527703394690381519633122173486337614607966251745024292176413149747398193289186989746221523301323845170546850170279813489281356635887188490852394700050331987857279907051678724674574065175490221507056551867324248507085531837880497596463638985042653933897297741067499398746720549580660308027375390324774173341658774317903856475988559617464100017601498014738942709029533656574940258138503194852211044111982825942824350052564533282301745918346822780730062203724920941576052131478699781898256092571119702676427578078797128048227663449826300280917737434147775676837852295028530337487043643077617908128326747969468388239962594294688646838515024165951973037856107326663387019565243103604105383691436457061394646172992597413996519454887397418308215018696974238652819358825525104349484092957099906131973762371444289264963267456196479371052431295098917033516545915950923587946569983558906798508819462632513613966167404181289940300719202961751961792697935103948949499354850192166184752581379002271943440217286209339788729228194059453797591372433161942133467324102287104525601249259210307360283650805550927815497811295797908517651091999104127556095955064030029138437429377889021042642294184950974136261447520299456550175018887650670830890716691647446318697019391635645673401152965738691421363124096113758144145020018856496408926176649913283210592923407189459052144687585925598867994030385404342605711780156387234993912451867131268867828180114591882071462180444190013672017603020428955550542378651195197875195834251757698738538108622604809837104142847481082316905672810369814704506463970827725815356796138518505319055625693523782376259127865335214384668832537044646563633367952218581009124069845995266883347949560016487433792736628898659741627780482558788791371646743174057393665029508375633715031226914111288456288953749346456560017362297831962337114630043960353843648190913165592607091861322782150179282066090012903909155721888141903617690725467850872312681042589112934809926932438488538262971433837601972613304666748734094103617203231613382088821793654753575656345644169556174185110400645289343523960603218913542503639964895356331154612621551480140138520352579264369998206108794168556282613446987572205674793269678998240450386125509996491722387566197474964771924550488795362479584725518743461104249823950501797276028851608568598564692058373486487029948627019675319627419826719934793284799541257316953408620624228442414703713591073652108440277355137680899189727359468248743779407203918920230316989028245839414980084632976764158166381493793335874110104218833466249825712676520794593730852204470065821802456285913484598591674386716164962361826031368876125824323209271336574494925616826629140228344913993059938373246169848663506918078330457539575963028598703701226227282179035096836625453771649120488877376133992396956764383994584304393123430493118943447323865142349099634435728107668548050294739125448099105681680711986399603687611004592025971913984825093323869095506805707952975944970635568001436891086817222021502427096974808007615297262893314559794892078114163178610021353636068450426074241057953099728936596277605959933499532220630363509677408341443985605333170620438247688426466364508232526269044028235942307672346064199104063388525960301429310789409894082412585958533000526740905091930986119644006752023218350001943647156661930125711704702398932334308605579061238163230404333724058474679228929269845483238396786455375757976412356629838320497257690750450854613775774535880026949464018131420896481477022132885664338270333864659281552043278529802546826940562845725434380040324222826686981879289008719335995833513222451612126337925610900249293882433413399963436690627332859904512733577792579847342998228060664218177787248099404621946965120882640556800814611963999919346493530055655759061600148480900984474996660851877437832475455641936594556737601845012944091963859891469740405452655179821015467711934794622857301120522036253660069812259733326005252501919978769681836682222838063803253658417458045758761513775993413620197201412965761589421459185024777334782742494764413317207776202263037219279773177368040282847662641446001768017404989908774724986370496352941502763696795521328214589277064858263608049780061361748566034583293932714297898528838628531943099660276790423314822482580488199223837211121829948572617859625263246639457393129559956396404107022282517088567855723659972637271902087757853614578853694701745679971658291548844443844696921100600699561016290850884694722113495418622685816048629702751249197905527646386547909619655896807318893899436303726998965656241435992257215526547481760387332454376660295747453731797392795506260650162306614246595818728448155632828578868197590608607906271944920625736925777634364047795343807829371540654643553469069902824895937191270994334879823972709546001949111283940365597776315354362056962495710646275726822269311953983215498587341591276796396312887691004151503528308834671850770517343499576918804455945247689252282241292859041695076778816962361984461509358891282177694921492820991663336961094306443445408942413516529089722920171678088114354106175736926409157885940155458815029229504119358856508901123688201298106859081073785323896518877118562630227278207515876020002265275576589914732782881717584888849780036284872688550275835482793066773875360904419648719476723394743388371888869476922974787610555761075787008283110726010692559479699301135531286506469510110898028033812595226485372524910715032370287435035117402646465226219108273852468353928966198084092498475127347635695505712110718953406239711295862140207474759187005178887753974531382816379071216252127131650845993117130756154854590056339083585448107131853789003787391405278645040738540143059579838766010596349533953849524088628081449985589255707960748194229435266264749224462124001910373171749353952925336915916138450306888975291742692538080809883210109195064142456109390788067456540385082205526653260516139791677571555835328321674186296311620500745958333694832856543170788898985019426984306525673012076100554712067228968796352314311700570691023730974355529944474980537220645453969154016563473379302689131290334539967916091233911629483108405271357981361400618327120551892510149754199612081874718165034779644954879125869906235330927267421139265808241263164937015144698982172914090839273987429563430943354466506669029068754888040402744857351194907647228538897773016005986408096928716802154266046217649003044780958934325322248610824811736021196846670330037266977572875740002546155342551343968884862492310792793503679090690678188746796602225725881231768232802659005794042210879835699377086045254065491659223182431595116338660468979040895187158168105937526969610034358664579430841521484975637847073701373312744195498158986949669898541298867757700984858344198809328120419710649588465603203957234642026858094766127807615649585725719401968694588564596527243199106177788060684827047884045172828033295804828926510437857046365700159225205835527166804008111825156440091974391613310228972791754502909802900157050128975509520846948083856782033269539180737263772311853730968692098809547864667112343184942216100920933658286920896619338207939689366067060055351487024018625530387951895487646435120955537632540176237818846842826585241690707071072394528775164783587448176882106555340084621609603255134623763924974472163523994991412230585879261324859893049670140787630558134255909098390549079817269377028042190116810622134069334842976252447926034017267877837464585313290156974333650607251357202161303259299053093207823993992081676810011214286941453491573228314674638056389075715964487802935417285171252885444934004488965031611088846892368680911262900375119106055355753784663232187462666608120909984234726096071355897954103126181575505750367091838270387449199532849471391165411276400944816080188920725198142240551546853902768203903311669903207880294739114292780709900674088049762191476583912948188508894733017200209925286902047364803608792977963072340577122290902968998500854487124043172464353970853113185792851861289999804726090794992648048487323270758719822141935904037107149942836019858027998962719652305157487042228829635148516459898987742725129521890872567707079623599533716758319643934600596583645048491861875023064435668414946538570973252669274583578235119828363868386668503182205413613409606112908546395886262819989253410321256938815351734113530472800236843055377297630048103827537148618870735967959907003489288412961269999274564368148307798728510861603830847054834404715254102459672467600275981051841101493178841827775211528657723828621934385495366843225558309153834572287275081957055529257754915956680587451382744039147104277536696484348607321035533572105765145584892700060636485246563601287110365936944831505510614231617051943639483697020666145354425673269927662789326593131137641225465991550770658757715876187142098023956682763168315538599615197029866855591086793076169861577564071013134584900849610222407251667540378296087500873408945117183782418002735620756566634931965023078744207699162148693920833069378542246038903778126606936744623364865946233585423644290751204132353849058555717678589783471490812211399228761673096937253945384707179254220198501530780572356487463446598497387133720366139089622013711903631433775586415616521168158332529525542095295875443600758620134546474793177676417416572615168484127007340056119066601132260766007319284563150571001433920535069456984636479734723848460096541252526745973946324555794744718544542394854725884395265376439277466240487296662515768898234714524087224044093924048580724884399620183064710679461693715861351387777111922898877850372085929533651821316592740464884386833182754652742950387179502489751770566684495721715491709413457752181261784035875665734530433128876578012149714939465281327089244943712921192254046035041195577173613032565330886721440156437402204551296579851053667845745282396666497747267816036134133397236019083939832732931579795188305920770872163652718587659765623057302408325525628672200137615458651048078002558658084940889914864874283470050094657432956007988473497707256445349351023906130741407650328483871132831203279506380204293580420927947283497857278042507669397109694707970306956157084035659316970915864901714510444538847761672060107241989763061927603943873575558049367835557673398800123415958091277838054909207603848033854399557666279166172930662094633448301858708713137328732439766280851505963168147680372419399727130325663591971593955664578360009003272876252780487579640466325487344878714374043279350056654155284753649514013346361947200396099779358876979522906939620116271194801251976088409768071531776989010676495701861427126048918351373036348968582292988249880026036943687017655751930911366834700971598640040707533793732753227961988010682096619005873371694418121632991937226424857667649168138910488139206335925474023812796345125322899653177490366024714143963133829480503855391524046654675749076802755013993678531191675264845111108698193151188521714010648667249248830573829490898877698581413866875483306751246280426239193605198222891814856721765039674517221587761926566833302539900294695914964623734589267149087002093437675175321466836495456884781792641534887595347372005651171937365695421466622772692825845892694666725721159202718651350678900353103039866135686890301524693393933395683761169395009656948140087282038803287636617078425730708527213041433755362201361231365919756595075634841570446288323219698449939025726743444073028675136243657673454146562073231681869921441881457943577719720929835585639304249559349162577563805601088175136555606679318937824559099448491759523635238057478508531922086487131998689931407654445535473218903263257762018289891820730293317126475964360271151743112929833471153373726068997564151335613311431230532592420163821969132849576686297570240639789040159190530746780259544931268859786304146847724107474506717808356308043629622121003517859573296811086037117343451564831095071415985330909445691097188677738992202702537671724480440394616045317325941592282665140435480079298669170642581829341120059226558174011074506593719594608286936120136034574659572809532039139490821521834497665100504133223886577216477974337822469001770965384153739269348182169234705703022989459234408837637578930706050301311489710759460514854784932754277366190759060617277831792963330155972012482712736713457488841914013713725177026839742297656287851146754145073772587163980959167041277976333698827172890173759943797446855852832970161572957438606119015844554980938934391792096135367225964665502775341983479745390239627762603727684093299351363507048569627428814095900462898859783434362078284964446684853250175731011991146818450044354317078720602225806800317930075129383795960138700763476994391321925557445124498597118422977850329037734660325368045792538534317940039724255656371818426182953071481613811092140322912649951285722829151882031215044265001585682876072381986883003884031133013001439561714831560476296904095880222993263049057794565372615636302416307078975828545783920170362967478105859413360188591219988485362014613597607825211951797798622314121522707005360538841240560277652436747603982920000356250519513097791483131028979711829032778675815516871010469084398194830273653730333408081160466620318660352232519613325735722334877371477644199836725420038021967423397559108785149403190363020600302205691497881910475843089803343485118290687239370388150183993154473614368047730006711903062675554370437164327538018436154389468003608318666602813477590144889992766538894642053335686337805357741710150964297225556645993985789155822877927092066761579326009088004055020918515512832385819905569041071694780791656219255283413963179013723499317545677500838519146153596291656334562105765578864771824463377588654899208286036374097197099733866081644545884180076283655741799322868012126333945496482998755916742018343144842064940592305429623700083025471864288489287509965411590073912883048573336719339881277632272289558101115318070023541607560353079367232966677734548145473423278862490230136475788713324690376325807405432092717121915590083895180911197626186227839827684238461736079405063437711163035400545465880796897950089100639293737943731643701197111913109365808212265185868455130928112939294421269044839135887878299439949999920473857153269756396029842220506835933344736727118248033643649414068656343452461024155438349568325496644063661509077062378171801248763110977578230394947439951591281849215879960748630963214380006007729858442206069388263573375904919802673688284368781585507430440898701159033352824912511227519237791682974355629310513011924634230072081871860542669932706843322560796060466627597888091187172360103109781084880212068425871413184378774390382873889144017865373224542433208411422926887103071862676990252020340789218592660747414845239035997784409080931895246460033890897929240890483048200650922380872698066869715757408543426289059487056713260140725451753943403135730169036375411392542802266874329093698592884447766501001403316386602113205811168144786929545856379889946772589103802953521238636417910334796752411039415490217173194914867089143758164266171220882516197620598716510000727968816322253655412930704724187416881746049786788997115210343805334757642266536340759133306361456596925820204231884218797615205941061529075955564743257571663485233122679332796242587703982882225824073930651981508151210049371016289308603405767477912698748610802346609129767127895998722427802907947407051884415092977153596947758288257066401284670217028077901307901846001758255010607643442087914835600158985479147694335330581168018431195340776703405468642028831604520076470373183312700630643985222850151316894934489589727310824372659825914215529231608677062976785349003301554822787744596608875592047266219014594387763559031129265094885799120968123932854259799308499949321816534205098880995941796145787255747855692284376019537546279257271073883529890206830718618574484212193675951732183590841635102746075816822485354146536122677904633334918762106958330799414058471689448711607673097830754474072662676146933462962923223736717785291952362163865603192987607033797876574894272787731433226607225324116633405794144122555402764107936781621919082886286242999928755070969403477773203001214061690557815985226797162012033883114799240717595098750053334847092230083248445055640903390995342144305410051087054871945091254698922820872634737929430058573070538389767353752319151712518522770370006133287225964605789447820869292444759920478864159819759266347058850310112123221169368336516237224195503832891846948874268185315676259676944373083305329993599021099564189630912956756260098480991669595233548219188988447658025433600113007716121153319365113890304656508451607757481090328413272089080991591326523373074593875607105475080657608172954560905493139517423904826213151054941813519129162090618276311556461748179144498365780093333154898593877723726308509237410498221255545895891669950331059313213997478252040499391833718400552376875645509827122774877674789331691422629042019954574518746371178098578187418169488490149850518207410071825710532516100206631082067295287433247296705366716779018291143680094856221179032101854026809478324596686149332871655655168718147174220713542966153780950318056148650759402511972960322959855153067218742019730038703801311186657055865972292716329640382941457069263939680944280580221464189825127042762004461229871687159746247151186736098768051378734368780343143036394864880331468309045003615519076502393387121184313923004068643217247492196934260041008127492221666095109689871547223523374464979017712866332582670059039122076546548537479118622595068831457151143810947619746620229646170981851188867122748893882907366158299975567135979648681649985776948210321308326348039485701267086603013039626640670573785488355821135680071286266375292735581139984390095083763229621625986661694980694541651716914577979846028518765632109728079521216250497291987354237079506843499326347178079854743036194322631274567583847864261839112349293009427504566068121255324309789934359966168406385545369897565668656738367714960419628147026035202163555058977872029978102512042753761963251089768659155160473245156442088700945883124103208870173113046643112009814887810549192444532258040011834819890774085088739793747236613059431940540210864944735667084991117920686743632599033639789363240605553804992303416304680801634797800074432815708720599356067360056443369400344036420792156463217216468993809276031159282578189030826909797142016417567760864763348934097096739035632252729053826982085152120405919108028881660202189768235173584230618563771948865338924910618930361953264767903081686820658812681687145078814235329568141465983902216157952714412167392554757816983255842409828395781081415811662982109030598158871394523333098061110901241447860041551150030016800534616607735490289865016276480193869127574190744870824701753962029952086871541950097713038172581051878969545689609762697493102595929730505107037551464219202666603072266482825156786334995486427413383881476838998594701974019310100429824310919507558207205905933187734818300047736671652500174918105409467947095186168861528628439281462008974327506444358927507870111105394375992599639522173134366398631379651661219877794339639396284611556470798000977092871334218078467491207893527580567597986404539813994476428209543861341776130151581949845321078422689380424349290093437629596706956634127939071778460018245649086159647845039127236825272245464265618297649921570517449857875931556462601193990411949660435258751289330628665969997023295268022889235551176233028196497387862908957209849691501452392240676446306139716064482592037727582713203475067974686564532291320375858739111066456810020744033937198532090884450384486484144217864970705830477754087525871156525957551488380928042102282872658279251316123628208541480409720452919747982580397584879080979152664901301969991879954083613920221463414500934059190745446970715304752337788280965476256020987406493107521847095533938845593163665178521349953671429225801815723857280431334311656491540429497670893280287320670005631837248682633858987259617219132022326100603787935837449349895981453884860354926313250377552388484628699165873795053295537183721439982402055379753450910219651298132170712072082453370350104976099702911709474709223409500054320787168197051239290654995171865679403120986297779440544992611757503088410182028596457100427754684829985758765979896692932234076759691827383223084940359383663914071581518649994201302815665664730593558855559471776193639348752850630644803895697419674584060159319450050474075237163973096817206187851567624712519725695839308638011337398565076201626889457987561300322115304442503654078474098436730489025750943939844866052674940422612393443659664055802365442443109907047316821681514599968671524037677273523456000072129779878114748927729061289931904056842821660929450074448271278244811072231442138665434836135626170604462313965754983629817307937024189163855167702959669492583378324057567331505486200302936203519506319819763407148590750074217161924714367539116755740886200535477822516017337410949040304048723627846185023288674202782785724784941698904958066559249818202261292329411256348703135306828836094530170596437264322826732983854296881299376558519598619681510682676476149562014835068408812923069344919157672739494554330864311192315566715872653410485454504266324002667901010227782754389838715226485464345985449024780940401472189314435254227665030968731834810559069932165808495993858393273876490695091353244208331630736479363755815517650512938644726785248538744739677538616533604222896723755447086672031493708612954042485287201148539917590129869420992239704470136662748362834620743218356686096798739608444179991807419089539163092567184306020606674335149853059709785537295285266402427403913686015229667204423788662819528550452714663885066691227667289978777684328925282297970492636290149831910192844709978383483377121374194767015036929839702403164371077499600609955548393734721100258837433242206788498205791122587250712217937637167935050158021365555753514617552517390869439212714787694794459800449096430502874482716942408795306588855139967537155072083258383877208820022796626617481015061647276219761146986029248248944110342516843974158969010469661863829855281791280527578999931216578237158753480717937697602496318654009049112883269699863642699579792497649078851360403524819577369743269221130806785972060418768839167381682152659976263302534809169354497698084169157274080491076452200505341979147714720619949240989875445157717281596135111237301343089956113153769956303848793897092584764806308396993103813848546115967623766454923414674953025951015323976675656594353609951927330306370270429262716484420114409308405931426427732570880380253268603036089830125421274894409672742596052800294041559912603186134040802123662811663477917644466880854657959756633131027742302679923310495963868186016007176310969455123347990632971698059087170879352501086964482654392172258220682881705855781748238310275707753798146301093714538749800668451520844834852306134381534995126583166807359827112801400630772270082856903761439077944273476179833600536283123300702678251434651959907167683345419932762409038307653909356124981383719081490724568803161968055515682816549178791622945950748828905713045854778819749035863601775783513036507777765003396056028018163511199910517917794624159035245743747646973551125762356609464299736394349779689003295105627913000705181580084121162209198645403322439948457742612117772052081113818525598032246868034663466205444093345675584031934584506449163743167252339057317919794382544188491424028234287410890887828000062842804602407675885458077951793812008311563001519978046955079156799891323682434031514174720016225370376439856479327647767657150600027811582857743902403797740033448240896518895689971648282732586504453923378344931565590800241028198700042480645908750900817648142673902880211634765993485060851954819076399485302057727226451996123887695561554289690231522107902523279545572878808178890498775485723169966683955136356282049390225317594839921824990404065676979972449051074200673608622492921891461491459444390165908310606357039971845043845922782571860415148799955466475116756599199715783445882117321877282759054238181699219934166674300147729485021924978151811798551825119234787284858202696621063733117606963998495542551620081771957937840174486183108063402040592916661574779063172313574355508606154782538059569395713790520699390550139542812406360937672362883412684176099305385967383441520848397679288149862629835128648197256303666254578591728897637864027334750648107601819498062858173323036191258393441955452711527209304846870930134020533962217472337910891346093822363724525974243087440367416858268260092105139880793708360062469498265679390936222168484855554831268858975970642227516571198259719130644808033802822592719227616135502327387607137184050169241081452838074413443415060213576003093642305376407531004895384688110408012998841048066687870464941415555844117983912541515243355956397105022382936940177703836768205686230279688053604395628707787515245589878480157589952381902428493990301476960819760196827174249031183848058063201639107182682141621483983747709940639020549522853717906219489366833199542632343787448665925965064820475997660382860855734186252721393814744533372820936785156508982623171129400793544839705317460392032615430876830534433400133082387942709878928994377754392401860120875182952573336981889048414921140502346266322209323379565938198429331391091674501713678395639294082538093439598606523221647859931287190781105718597294775124158538407934914095675141764406223974835497879988350265886963466289322863168127703478917357291734035180830333500297299983596570094472674118295866160563800287414635655251795812970008204864995009123059946776343804492300111704357819299766425176034987361538211667541433363568075291279257331250432657555580001290635750885328884002455762555774292656136085889396636154724550760918497914954281333902371249419686542178244444732206022015921329463747637221460881381959074024468191174382429359841424421713034218504267632555810271476653982740231312842544218843092574750454409565130564306115932504185103137607830869318929866093912109784398909176080800578594123900734738003273661457713143813368660751005040226490046277957920397647895281497661155175772258035705362131609069849721587618448910137706708942017263005180698986272022583300459760556746379434868959550759827915916200451701764571471001987179657360399901531742963774261534118537565601019162451572048690622111304730883354214253223201910119279079086970681041846746843339352454676778005356263849565406066286853005708713743763529492544521370087616874666785513324904075610074678240600351038119076271559930192552619861627401123569145368295519643405949989676563713344726624429946674612926347480909939750299028149567548833894994934688470386661229476985270682735253815116931291731206480638615860214509595123819663635867735871702215858726569541439335822042280619106983883227891188447735057184558283774867178978206503670927435460512124075344601295415443833725832420467381946022910601354852027142713987356511244135540732805581150967208435656747983730026299640942094656212372886714613552093406839053674227058131718702718862560098805771095271134847506896504599313428475692375675340058291077752494776786073389484726605158271655938990924509292559374431600936788775742312923936602627476371984492589885518007953352943375716994981464446843593254709149347179832837892064528936477044185739036734463254774911924348796921849004105923852592620546637482778745244175484521522577218733450678534403497600152261715193779182774969800611262563340515006267057740158227090112470645177288466405448531678619542301389265042349258591774840702628896819394246059345081667932626407371621657586067944873624387875710625050018217772844715572875642657308688195614578569472002596842873387572991863217061658186800827927387963130575639731466615778765309448943049620801311204302641067917561225015203448056586008541789622087580341586744526613874870228513887347848157627313601577904848813274157375305338686663899161704823369743920401214505063229354684091829898767313909116332529397797514605355503946110081968126934186662831964556885892184161083852234391112670301183836714579661282520995994839678542314524019307052080527604973833349691994160164589650280760348193603900188398952784215240746132934264528475655221906596509404520780589962131191881892561520587713627326400150875267517065865012685655619574519885880709017617668257805390261978323841212450378159937010832959363633941217230365744355078462318363291191157316326985054406382082573460599892808062031591211567591859086312365694737088318720984135637732179733144187952061094538087446595090547859340116571454644624100641789705738353396577404655523600429033439237813291314226498630449006504153829991148002259915640373497414618222401240301170838504996298116556699171188286557379102152465922548498213795873429244079619126042670038602986909004379190767788237773854465497199160828498419011264566907187657528575470446149665600886775797211467476751903269432068972731080249389635257430462075294585183681173749185315549327605609878193836576399617523682539666469953813764221596436747407636545767220017357591003381898578935383483887143734687030591166859082538153953422732269081979447907486122573741442550768309817501362832788547094046643787979565992454160651052407348764878694836804713865114793301046746968025001072019280065589886659704867111684719399262980485190960288181712768595896411791535193988824632216857823307283675725655936903247626852456675573729746022811690517996887292348100633082110466399806208601509150174252454635209224332101913745802248676918351750111176105315925967892881589335735523896638115970438596854454219739040544922905162321791544633857980039801337106566188034008646395417535521029548211375292438007217295620083334307048709037823476658109039705276204608167912221171952216414408216033792630011802415544886243020808542799478988308284704552075337093882188566659903317480405034157361925478369842799503862410351947054085705220754723547612205551287557976595620007676816535870529560357535128233493857125560884026637116924087748784474046269849316162244806035400790037949676884198711054490051271586137097454147697500403850167672243359780042142743920368624916355168014259991137472097430463502308509885607771850430211985934098540302997683319028907622843931457078002421373469785340334495503326613855774554300983941645055447330930327847326586310840840023690529467168383826231786183563137447034258241653536175693686139268575384709092597316131407459803218912017885330028397727346901278448135875418173883562696358355300258862744456629038676346372320058900323946859623443879220867697838604357591217932696053921955246363927259603969940389079149523949200585415197862370166118185052018731055292061180477724162260208381142712927021662870597034088463098997942503914217987828227836291496825702299402526135762945901688186267128343489407700099138358481390496364207897988526606013117916817582487436675412872889532178803784665730760014476374633020498631865337006667030419385973309112796042481094077011618033477649417452133108800957711487605881568264903311991520900877192112429879790958445088128916559083564411948033411800865102151074681664354266284984103705368022038597082867423130880429689507938478092663053502036498639090687024765563796868959297911843262962331419805388060571531263748250859243360227790969393577620382017023313161745446573625841672803689869515533196071683402438822229419028559853360365402290163568897612172796358153669049275223424367821989377721861634501955905253518044439926293933108837465015979463056833320709529812601230409244220486539581540160307406198290595603398083988093204662367726061797472558607508577991409284713077634637556291844165760389457859827625312666021509232689482571589436876090524254650508916570182771127492341041145733785683828324885835084632476917544648647961652084051231194366332361041967252279158921804003200949227778457713193061435493226464752525689465937356285658040698897245091579508674558798591333481521014109649784048343487824515621944898838335895467382117648738168420031596390527546739447955855250229211323901265758558306818470571267060558957598758737139315026929298736547598973758738857129291483151321602798889853375079491502940672381519077016840861123320512478020798065244031360115272799687587772722884685558543634648039481309088035846418734815275133125597600024719132735522332801582836366756097914805564512087534189858379568757804654012284300909939608206751013185322691504981514699722815589174810630708279704221417179165516665260048969209640683975979715197210910966477671978404041441350454401000141484171028322172070030036917621237427931756937487298542649655097736452101061232514481020889118627333165532101825520956029329444538842837119691756442826333905449988973323340213853981081397948851746678406016700201047813032483427791460413716925183009614138400358425676839661583743823289106791296163890873577697005803955187266214611927990013388604936597318265796946989481792282000923315194760619654003005667071723335812360660930019877863263776760786381230681150968892877653087969559151736577699701228187983877716503071328911676917371117969864200891036148774367732026812732538586178740798649074255310335226777049633269979147141829378418067375728313906827372960407682779133316145714157544333032325093520846671814283374947733615696077321139602696388899591161208912933625006138156542297080031644415493117405079346464604712768635557697606167604500797033788742315050639995065892719564574028816440967621881582996731144489272290795148171302346681937048211689345736477038444250872496962220183154480179013404503297812625266554144337884429928091751486067427756619068736780661956402462842815661097346757147934546482584621055158643748374015489461115480799374765300863441535008489942862199608686687432273406900346990714974373210270380996223681795919878813602727348787295160919250160048278765541788792605254879750638994273270136043111563860176774874600962472572354222198904483535931200446230431960860122107158913227951519474442226273171119364362906099858478271629202081308568574227677373710272530646821579445464535874827052881444016521357495723571606976290324942636966380598779313281004789213849769764216477044709828317079156062151872993996566732831157576047625244490970702267555815315250783060219419231026118816486362102293015931125967080489468760125564462331449633670831998801898177647443946490890761585739464660391001902601902698650591590720428071564312112048222454683315314213832257281879934724887180918813838022127021410789024293560320781718140532996557675363049453250100974693864428685820168373088472010163337830238319159409166419711148000176232050288832087631274996096764204298343969066283906435733882710899094685219942907792214114563662153009575696768169489498532291787858332323281976420218344486804596317270714940664043531547429385646154971301219195638263330817264866655821485960968417041994557652570450511986555521512418957304090091654828855398795464606443587243561536380963992608529380941762722564754822042389718358209219131089646216769169235041499562003969713617599727702431548127796073913153953023923623684733381536607397157551415130354254830148276431766478024995265759288732887568327240210598784355434526168669800695727684065263856046946486554549359948779601391970152695081992267481938558536868409599666672435231490224343192971158029855397014413072516564688873258798093359635196138523506482104626528945990209161926783076364638767229657057780431701191474195342905002457528983628769412442233010560593293360302815155444397264285325695142865065743066900370453265085730007030660970768529151580777493764989588351813096457119671742482563956646263527151330603102201631831028391052342242333604416735086895132068145636492314545951423306013455829169774326000904336361266655380882833446471702866748602073675540256159194524022885460447529339808832910184047692180364415632859283006256613337201698016166536894217190856994567768072671456257965400687721599186011032250841605099740273812987592979475415145151221387802773324223014340401017552997446861109997982365224959839187711304832570044572926925934740816271144271142394980559393884871946589960697647030054631238492517631841341561401527090362246647810092612700444701051681721248214749257570570487175142481517288159361493049112660576807891258148831048495273327316347592022377053562627779515466496271665698633279965769382739094380336155266806662451466830933330525741034708274127280314265936243172830129930062305720667652011152498104327991959429444716813013276454369122097855092222771320852514526817610924440491706656879232633267012487531087107870452138194000561496716098427005304782481829971213381522548671240722412502047484460325159674655024128556383055165386889977585243469707566030292002707924904789079580193041269223238205781298833658160966827671939652236148636268673155703437942292594095522667022403795476576980372247659727868606302967362846606670193126500622034033169287597928686673950340106235971698664276041290198994030129595797966986587786527627799952516992852621644992992211297987946496410930920642344718367267611455492696925339179118449735033676729143473665518579173744011910139476016335398632449113536610419805167775406772081758756271821983407287570333356693397160075527672023384852645916570279903228910938631873233929606197187261732246657111097533464716666070442314760112842169483852016172939361222465829545522171641410342924836882970716341354642483821201311071233259406604215415021454739644235057310253985850598692395804563003394043638463036050100066845961168638477995951933109093678480566187818638269539707084730078799590885514885833431573086790652840473471928476335746016706900340731136470163645250689588513339522268345650427584564960583038549784181939800332940637867164683088033868988523991471274918049348986362124227455839788067233127966816613623154663827438676956788403189011175527534414029392053758037075393712998228367210918000251308624567098189729189550113802728637144118065497467371112651071407603263092968700933531293086652262359816020144525038487345423538511820233837103431462183956824405024513283238753215745651781565967762331731743723194685857830850009873852272179080185099660608106495600979482230379348389166081956008026804060154860271251627979207709306046925224722209145627766461020955227350893039852778214798136673746626501774812657766679313150904013605334031355430463890370549600158034012408178102404550467225757948578599467522741025785799707495134846234316562644990257685202421830631265866441359439095711240807764676979031864222276750945140698206406455851450369805779774111938275214768812461060174033345043595503734443358844764602855357600499068387515862153939311701729414793960873599649614982937920397518242337651483703509132118754738328566784504059909696299521374282080545059692892276043093255878558258392899982494596295734940356529657018350238729257236996095931802101439773039156332104828876176124802265268120607296593878445393352942168513287783959678756510419748337509572299869874409344807632434447062019316805884374088885810142444154628893137967231524137476545991743474151477768738976082423282730476630353750351817920282128790145160885707438134675607740348366493582018796899970945762169998936783929997795698654760098370655864214378076431863562091645803940512916498348142621353832218239051631612948474181395147329733581057062011124439347892132794766660751257794284588702807675937560459621410589269705035674054633033349638951896428697714935370335271752689118358671716029960286101963506904482333473770027376813519469977166406349832523247598031694334878088458582418047792909827931377435064849981169843113429000662234342480919965520695970860670316896910821470932946648363396873086262940649582540549302426181971060326157195058980853653872523321295752001452659232174560656655876392366934183579918513742030882761014038695846414049133960887945606464461246395640637846900760364550953851771753188183817569207860760463818475875707869396269733587713613084041061778063987804123216732087294625217625892734528097865936898500983052951582221813295573716021489598880829754791861611061780937800498588241235515721821708536677555052830649651422710669318121145372715303532300413673642838586255413794580644094168884473020740149451145355403752874770292812168054143876514225263829481147856068523941464861512736606611436090732975401873666232924552974768665688082993735798214321030772829829686994702628787763340118021351699122794483895349524388989436777741104607401511912803352144222375269409652221262816072196000801703265798167496904148324362620842075502038717211036602596326555004460289079846147055892394063535438468783924580277616706914450890814722911980536515610562265694104267901031668389760740495136532247517375248885330744417484150622230789848704682582369153985845317499669101425704134811733203112773222366594276491700931003108253040710834283050510255354001760552957621274992461253211024978288676576224923700374762848800950539805557975875098186143485859525499053794208635081391023894613267567885446847749785252576265244156631804774365771096092125627288887401094552005118070236132904644122501650543898083798537223731604671101372550180318902081213354552082613279073653739966510499760655366280511868638724417636034693672312997067399587328156496825421549600423023786406987458150646533149994658164862653699386422514066365706905465301809678433871510440895651215074202781367978143137522091789007799706357966794233876279485950851506915904685355021885267868822839684526566416504681242375656641146234911122747835229075640490088429957943063757970685472977131688710080206643977022100279356839490615246443632784125680260313697392236343630742914750643486883915962809689247050090163087596430734920504008605387734503767453234831796810779543749529812486907501644354185639795186042191819486960611540795023183712688856199578601147456073259932550929944246508998687028228621340158165567029575894107980555268935772188502898710005578369939140990326130685426315534069284383191726467986140623447573101249182326790420157623021765884583323700023018314459750543253186776613435944566977657809828236572209566867567675906451296357303715981579606332216076616433179962341493427875820620130925574143547112904377891041249221914936281098873330487875985582888880219993271124798226476350978802299926726289413678066372369116992667162999407920772534252343580267354223150125420314429796177086275696841129680985413491328111497291081625134379134089080650055610517114616909199286581083825719620101747637117432048778674372992910868964595817824946535995872492445875957648857952080938417945853687322215755137317750436014197255303613531358537644877021940308026770961351924548070125429414484219076265129348142326580401007564532830900466492485104871244274135838393403396391672017498178764185391382679360518928242319601680272612373788993868621377769776985603171382144913082505136225296143078181846110161985599743245406954648653684898504496406795281576436366067449780002031241475159910812020087350045693356593755706063170331685998309696709768874218887750909791551758589279052401821928229334083204313303917573415449767081552072744548528734237474618521577941331256494220965069463956932863721501817446737084602685753369605543728191448425213548295289353651269461548858125932189905891060841971894472440345779320590795651709476698253929238459413250577752273132155783219129026663945097499753564987853575868776628452723229074268883952270964892305494034627981204550812626556356021837676320409782608597969855562880812119293123975837995305293832115959890741839972252339698253362482812532205898829620812658785515633586103760281027109448477150030337548889489660970370686555964396908241247922952909610281219213907102875941366928789093464536738443453360305404927963259408919924222327287614440023657521310776875042666253429066690854847753099335708902014523358906596294415379691458701720876227299021130825895707948952095525279452652288089029615535956233577449236106229397106500521132801848281930411170419984540536978968832853348015649171336264381007465065167619272452611251273657190619071890176644719275581554515392417918197272056862749879114905449619003902634604878543805948709308792071982350636417868391044596883859721785594741980202474770593161753881206852007294318182765574303742844304852014414638062197674698668441796619374162680597876029711374131628545096702869039143006389590454093057469204302943527206456026339092512401604239684918877964046161101354570955186300550462891770335426188378354787178302959527994765734548072914518225472950582992286333291713720353829671752991475458362846674318990479506913562465110926206563605879073372500506985771202041813180653854531789993460779183577160696913236117689580668402935632673510201147227732063725249348512554640696287385680140541849136086246943823072746836105986597270608077501911255431495107711494015824697191813714975706591281175131629701892890399683775141627453852300194338561783434675283725999821828066857082695816880139904322638164033836354152883003763119720258082122820959665559284081873494006442126135951685000772507931369654303822355161687068189381243084366632571677951049953193509480525293465860882697218519405506264512874788223225236104240985007238127343993398439279529012944143713476288534838623504895734110587644078389931532713884967926023632241577079501813992688586367491376994848568837636233072660687322750008115797381661624384950682382285621386756284086155444797597656127980372158109335766012167576524994125345777065557803059520285963504707626001871836256603109570731754434669911045414935565299995025863166291144128274851108368749024901054476769086499404640677445082349276500103787287965576758633925666139017618473011081104805590553420894739972574528932908923778817458037924613359615701859173468884829003227804109659877758365668564539195738693744669907616457548535856499303965803536842560185347410188798575776300078748734995650168611865791869529374391711320504127668190794311266706390712980324686028272727995325092456156354164581025502656400986235330105776594307731836398776660352620988015424174221782339087261004241837025597839889119152057888454049872350654746243527817787270565556895407931351709766591972574239998549785136635156989033161104337449219067313613411753495595652745971541422166350744502768525528183767733230610721328228251014274825056716981252710127573371377014369845972281681351942834736048279224883267984718498443401867471037661804790224896709406935334129278983731888668252990990509218075012450884054965336516610162670104873229271733065539276860122852875643904835168033335993935570278737631800199300516663006270735806713682605366410616662829854689336762352555789835719567492968677687633453915496913653062843179334220995310107517158374575364604990134109969704904742892701772724764122825320772939262256104042216990143033360668241344063377970706882049663675324783678575438528433384561420860859152900195384835027280429628990812267116621537370737868575292377166374712436512931339029373478245420224221847472935309548800056178416029663839885127371666029416913344114409611778319834269000239589173991766527337252565332718807251709510516439920396680965547739029749144754426370397985099144588026626472660713020140161494875158694841862139178632292634365826115028378330018474616100811319361861915406523558216703359595957289501822644400397406575046459722217756196346611281012986364517854438477696476613540674002953037898421931742919591510707106464540803435570650097473294125894940520085796902026820899829775472614060322014680897181789077617589584836438350355892701615403048155771245654036593781988300376343465913161339814906080585496293502019098240344644808467768119719333529265692740578577274749941642357672999798010999107167598015415914182224924156911514138901631907442696690037076877875393141374082722483141746457676192694632282209652079610117804042410110730232391255552558301791509128943898140338465366093992811937077399359393138901664339030950227366903598728944625098383514128112242058483590736268956376630268564443975294273164004904807340563734963872843166155204304641649982138439080137667633629376245363057502193021170396657944850313261414901229450188904495712880694697462868297197230337416901054646520375771719749873937281193040216386937053912407051760619983243405191516561987208850612529206665978916018859834740696967535866940286704546716571745572863669044143364303687749280018273890942050029579361716448121982865974573637063759128128133666427348068349440197282451484056388891086109489792872643353399519240321133147978341944220402764802875569927282974393084971957487266774002251608472361851655165690363212700658663250677868351326978276236604871842476220444020357448376951433246852486310250254858095366850930988856811487214900302790503974583161475368554521604809276989578612708218629844939091093595490768088554621003888790543209612388167536545784227523004330833970672361686938688130985151979448245839990279611619842799830347815654084862407097809894259009608125183370802689336614760322442925134601332897784578994071558933875549125896371987529778880901633696528921771685489800764811747136126478308337082225373944401096487195791567610571332933397908674734690472398801110897663688046075082795407787883477439682243412817242983650396385299154547544156632834698083197122959025467029686818478973406474702551377975793007339723387060061308334442153153671821617452154853975971777199497325562733045820069347197604794999584424430345997577498251871508500554065048319687935328526838519519944426258433873725114077481910062603962042032332499811720925889773526624856245986508570485021639915775880340168723515474505660819140976581243127633337948893874991439796515577013669635568846259779884719418209934015373335519310550256295241695239796603887030097166744096279787658251976776767789819409726312290947097667956434255019486804392655667665006008261696986968868968258603406163082428986891932703027682407422464555871818649709438746751394159555608287367640517073631185397944395063122227497759974232467101696177953277579721355031137570378609643677035334114927536131476682485192307370044702460102762432106147064207164595053793956348674359990122953075584764162437628978216941776087212394547432768913534743206311093094297790498186232054757151349068160807503036344839332712060046112856214288967720592981947776491050821033321939203675339509100656879266228708871080472118621202478949099088019839898280399535651451004231283477575064459030106859027981231780704972957830976592481116572598061664711223097068915189822348450973362653152265310664598244473815488398048877702689185709996077915016231843446344507363624462822884378980627809340536225820804677983776637383505082506282981134166912027656423114269095560406584081210454654325478491872344530037201999767430774396554747194028761939199358309623714069804450992815596239541142094356457990623935846577340881369859280789197254065824475178226892925759354718617685785732665949981676235593746589060823353244836310352981944446349037466356286188682425684823058202089522236511479613538785576973678159940302545505259729446551387915990732775012063182304833422241324015488085277563880901797709026700060801276685559410490686065132467951159399902480691731072332654493899692399770683200915714291646327513004733686630333656370796036661682987403934245355680664717884682871646455044237603936932792807976957340090455300291134847521794445386635798142076350638371663598638317094726087721738398882095584021361242513677877474817791386367777688071255698181356330628440392080778151467464030128675463146901931905744130671929832192381767841813230223391681374878969473792532228100481254907337420607299422548837346992861816829335930687928937266738685134394089640007584209127047860628144898714289834029915191358540963234176350354724630200375894776965742601180068600059794720587200989794348426803852839306084810589030598533225666530865487370943756911858180565026981679481471344189966632283938190405833302008959770633143392119746960856428348479446147846298462029808293982196413690773340940542673866199800278184569069727776329727724539755304791343678920597075740942385385880456073409725858264865155725586101039686685003603167268630741831898787089985102496707943586436016482389693161405013530994459321538855625393322101463050531048116413314444311379250696644611813787115433377829925657813663224648548182987225097177372865213509861974343298797025681942692562595860356026030160340881516874841337788446129564597546794287328519368658142371603082649533905906915381756670733154361855818626071646033543206212500336114059429405274527420450159871694406149212196088828783349556485953754129668444562897035753154925909635467762654472615381609693377566437930656395528268751747104115918460586463060953326306437241488397874523919967453722263232946583196334832593905774406866472002504046801799963271904290228688327127896780325531162633073023986357119797475686868978496055302579605130451280748905689713236761877441058324996830266038194992785967246942092440691098635773547549116212540601228625035637863241613384241869894762881077561411890335796398161392325946613027358612534389824880803415663265168241774697180627445567735356966382595461727013934916029505292199296573985261244273310765978145689330768759514587699673483868848678382455447137777018360782579338076706283292960783400036376843417818950384666242895805403356739428281365494956359277080063503926487553637722386925407449724585812957333417881857117410286274191435452755624075003433977812384290839242792992586053082947038593837360042494447040322601138803316287938363334894867093712441996361994506516388230321046103186524901627571776639032824883830211862067915652071320082873137448857573284892632244769458562652675560559624082102648185606274757122510470476303409450502868132792688405988907307939064780548283160225603402766718529165888941811028508791606686478500254642936193123579921451317004370994936756851574137750590274721956787492059910270381419881096212679650801129262054254994707620239736451094422698196147965326885675816081824734449656482580109420657026741548320932575520237890651359123321489786365423905012563187289551528000667320860837254017826462940610965066564271251760765285173883587567589633451220078625110948066716192046286426365752727111087756320078267201821804154877572507978808298423032559867156583949536752821131303048397139476951863833335452626554055004631939261550645960397176837624034707218048875814017832011864494770925771566417555900849470310652823640276139263091303659935247392234191572390564785356079406940577728283482993244380087504501003985716106921541379509310358269521573578990492012767842216850034335041715360169276951633133112433644887278833058651990963862903625478019399818067543491110407248050771930519037002755214343967168611876933845797011011414312016381454253336447297640455551433736269861065188961039421595622657947376602944073132851371250959289435051846629847539704844211321591064355446605181547231567476554812922117354364896490117513636962527902345452905100542413615443241753259880507548818886551999789091861858643076139876383910650465255815068658606341876912537809415019018321906095390844000116257110940702075548939275131252277832676950865786164451261821582491822243794446265719885337263333803198360156529371705929691419938406731908059969055209107133372572467421642598820383584202191400778183242650342577252894640116317159794029450168050638912627683914568316548736531973474243608225176818117433564394459581239088748603374251861736519080400050244232136472314741316657418246802346479656259095843802268427884896194636655207906272700395904701356901006479797954600951095544837731932199966342927824995881488303037438154106248434922515045474072810454104086735951209900197398746747029820117536731361440857635940859635713457880877632749062478588868609994225058805400320112861190178364602775521922699343318691165696400337503056280209833287654867665151306898199708897824028394931831723384214725355552449715610364825953111260813396782604746073344068119417960069383801615667117745031229311891550597008872044406416882353325802686650209644869064717052115292158652560780329510853422405169570669295614961498650495666078412184497070172197094418485478900517999174943005429143242688615972025642308018733908194959633341802066951333881828804397005478007456242598292267320672817495826687492242554713575348078084521503376233500534607796289918791771947964418991049144607838589326884717531199236267919365167039734375648515411758221270102028863305813333578394103720291970730204259366143436793085878872554521273795881584318361324884648740629481514279526239669272371377726326912302244362052273830918287430544793760608683637512963878895115236941564932209824203397327005015164177370044241056868600240043137251769633303492645796793431254407221783503607957844399009496961341331499852445751688000432062826456156137387202512475629452249316106381911554303538119765325918161068537979115381478331610560889269253038259665130296995322343377517057355990546902521825485909403663418301716942445411582419186827003874427913225017553045218080566008737863305963357941780320714626299775481714958669564179410661147882117659405131755272209023426034459667706150754562515039561325550303961547898108363209329652800861088941828159428346371855265049167003040572349427995497681602692590012372116442359963371018529398606154031919170196234517267259809295528889020679691221467624403919251989438673810302650724849052525371346340057300533100120307179564339762515819942886234405772866253827281891747308067834271696328418931877980903460067039432784879842247384854367098393975324625744807671497559012942096260682042346077059461230652561591398593410142538453325360318016634892567229085259938486723704972872564794154092200798953133735636652985169483765902043561358711657122078514859040413958063993814485866067311277603102092208394821028319524052250484849491468668484756531076427274295633787052365336515996157797322861611276073769531197389120011566993811239876847875460183722202162563981066281695812305057447323517348985799672539928770667609619539806908174751211154184162702661901228771207836664529215877354330499302007093545644569779163278875729069836748534905703522631854416869485172886431176912567211949472676339587124084246872911297308607640727685975782049587558731568325269622165528979587261637699686321985997632862037976906422727417880853095512158047659340200487959634382000000257675840680037974912054831948257058515120463936568788274671420111484374515391249692207044989238966190910545647842856514536178559421036026798254347990083434248647945949310113052684600258467170302939574936876628797049176389139554437608140824368124630506862437262568740629556295698881913594790389958543735790106534625196098042324957821617486288909015775186157699704349204657583885924570226906767614331794534981647788023297535190040362771315504659576637800434820385867662514794010922524252256675480261465841210012981144423021211144755721044712478711036730435629165620809358801545207324320381721837670109202930763539828113389158399057358494622083323025595275942150891883330497769232364371415231480966566934098936280184239831777912032518279253997064386609680457120816120327591561611902309395558326906262654472506342575423754593333205722314438467491185828163831791976931836989319651273340571287161427782388744682356317412661690119605938039921945666490287187048322618502663072354078410577717246025360187296481552134289921425792486814484780245838206279337995054411563305906086256521646561637759877298798699418554039233064409662190916599399086499803065495300126345439956637956392628228544944933651210486229291248305206749890079162317006807691532166691311499553904781901041356544104988433842325429974397592164472923342571738087012118618045367950055460891050538532010335926542550296267533370948185772085286786280732608925893180339889822825339426013223577522069596906920400657304617585768511424111545234659759705881646031075343307028637437602118780260304366368448420234531979991591891088582941123418605478400059833331246197125005338769336092299598593296384900693396280067025759789305376132633794621908079692906587340658253523228984003592610520491123353338371102554215142647856733259121115343027611321488207480378271534526865927396013034672606764403411499881409871993466773468099598198077772912044699108095782819031334372486140630805180870926833227637612428731553220356303051233773715111132037784605948564469994733812412205880217715226330960409291140548805152916782726543858814222025269305966091199536787729465327728377414480885105569864381582020698027749054562517443024315630241200772595222279020532782321428326150961871750430308299098185383897363866375789793327038107493465198058109966558159324405329303129065712280899271047663272693386086143256587471282276379235052595547664755638081202087280677894054501711595641416181084442917993294931377891533326853913048392184268563035079089149410290361411627029514357721571982266629428024921427006685992349589535417483154249561916625188807725454331302106874295471514663403760683858871021988609574126889780461902161803577076788621652236527103765365388536133468590538280332429165961613171731020900900235344320488921845419269253877449578768159511250667865510985233512138888030949134036531656046759389513393394781378427313891648138462626374009718547976565965934989417180591422297832963147446478609930525902753628843946648988521397971854170712875043842530103645476883553864965068396445918026319748837314835766987670357096725341146553819442240811839235898723877863570799382993876701134656166986638038295995556615743678211071090860850070849780569235862443537151102841652650645334794744051832060994618448843447064042410456156724569556752310206335944683524649690289091834953542119579775038375335663104178480107924157860988079495435759222208587420520155053259073351689261831635962769207222417944508244931195832608905124304191672228718901766066989644220973692670945451669048943660574080132814879745983515780238676082528453917799002292176661919630859491268346368867771022008338233112736368036827942405682695189115892069098846769878934723293465450932438336959651031254399955837789045953389620817272741619570593904882268122397885775966059972185614384233774823369464053511337579171332273484532377752665502948232549925496503417904612547173276054579481924414027733265151743066457041993072962299717441799800642688313043731161785936551770483939865502371544062207121412380622001429102635136772455154132371435105683600891178856966065895661590835491673559740408928904742651088361636276702816823377175918243374574483882525299203159265626516573495121028212511451335924912885326568559882450971615056636282358862085394520377131680604578727340000133892995725918681379446056345744248853049881244326365357084207347202391904630266359130673359202057998727611170732921303845123446366463867958446587347678627193719727132282525197053900709755233423124994023315346133114623286794961475729895421677591084149503988711312287006216838353061920372904899107879928403171370770629293566325022578097436721596842196285021972961270180148363063992944170063923384041062357131481875078480829039315536403721710859452832152260448119450547691316937991700215469942682369949973408740148110987952793622886561345173727247840839553400044887246559496961061762137912795446490034766427296636647747238407597482154232642742467409505395687173968273881999421121257952512159123178595501714543473006158447304469329324462483464548366106771151917642494668758099707914121631144024268142541304958856469962811634219220276543261703580336053476338397820228515906706761783923956483844437919500566418113171187843848022718244011585960125982028917298212451935045307490173095713272213458003038463473533842313490404318670156968126226197517373646928140223736004285529887637957096404370447703589100205329517040874839542791244915735604060554566457587550804070580232860280836143776159933225522274912858160441543516337085430636947911696995304655541980923129092561462582583302888636721908044058683542772962474176076823207271395231353690444486473239487526855959941343712653746525347376197627795360703938532426235746273249532851182163528524690357586418009921688923431814157968739228222627049046710503669811304527278830463546740003953027412285212400691232223394397958280964255350567565639251827930028314989022110199222218161483519706075707678095984135548462578338155717454226899262671176312903545988902153879357772565481600293573518288784552708054865009880682765974491730701707634875137566942226572206273793006860954318158562359229528555544135958476334622967826547096094615282676273332318279565127120894757849572780018246746517387165148880748011257955923463752387354856718684916879471739897771675607765102065187295752370129754628601410773841621289832623608900803309930669767190413650512482609995959672776624221983192644566247168429403237836363137221464674202449309971013469124925806007869155571268769072062446426354406726937512363542143574754208221708772905934016678726367112315796398091176972257590158832908653324930664900523564842212423538487048458908229410044370628137211771020422649196903167446226457865511382008565637638855109513111027271335628787181066698401499806877972459035187532492937364107653884682501927227502228277309438129393301134657977238705576177372006067965309145583675656311657242094573839894002175699362931988042071853872894544948885114506290145580206804673556313212998304569283308752029085108880205988962552857620546824926264849352115290999636152909963168752564446656429819762355160641623665115451945474800023880275039802025868069768733859856850868192598240822836141966252786765544843787146538292797752057911481897402843295242740990979189708288829703380328309208963870436076473770719034390928456430357267478282548576852482651826274244894819210877427777366840635669649521942815015403546085712349155531180415048833415410014346348267820596113566432681375415547901348898437467052218685506371639830260777894766374508056707867032800189937648402707384719911793120200728129662897377221997563589198195468929010740376331127757176340510518375135807436374765582515198758791816574531863505021896321993848654196634743313854991495240606166187205352566391309952088031501199423568029121629378808446823537538957555141810386724956675100948211210030073934567747133666154566302882791779829397724048869229887783647123128873385760958173603200284425391730553878478258106139140025491680851064508514756105088032493892376558907433489031454737668199517297976105203404161089159505253754938805116805535165144602380393419841466419762425564036930946157885015673628068644524318398075111468683890784441423253507906628141460534581856769976025792646217605340682154622634075393805809887254501449960730126981734594105669079518990864063658647653746171262286620436193124336083131103624468196462546250771505213077633880236593086485751103405451810194640329500282243948031433535299176517862315927583985056300019274122909392051259577072543113413942337189614909839582768188747543149459732574233040620511610068850310871411735553681304896431319779575882366486182652525695856670650903460172663764278678771178280329369809803155401102461204129392386755390953107082752311190553365971471064012536083056778431859900198408991750916397041475085871180220899680253990578929754949718727473115960970503927546206685206736494594973600623891849709432938218952128802840561174452862744165642185117723560168207414497326399726379706023267404115291513428940289215661745462898814327144755038807414856057112128235693809744000778538703739650045416353818727170293486896354882428401392692907824465946185002032090784211153156584399314480349559484949015185840074532197638073689597385712100111572069173761414355105060984467527573489062210460038728657150932277689349503513014585531969308948202811478593296981356627623291992193676970885196425320106154677715757651627968610451486904957665508755813967629881202619610722514713171079420883671549428442147195693358600073947757925840375663736225218526564508984919492273554545274532282659771260945068019636240486654107215974441732180969572343219284917443238915633265581603690221039482076752142327389635456396873666200426447462233461118747364877767409686299931087287864282109360267784837911858502665185664297268783812157142832342029256190112179502994039590114939480417042277770137994800452624245318553070164166080067277438469946366075051070401338458644763652623777790876958297397954337464388229287133014109850102508489426410720200529250938578699639376746118887542467506139827151452708176108522695688647909223535379589266328421818691186519186626171417153747212295100883857083676178592868946987468739864608089659145532830273949305047053945367145765413474660465229641645446287701381678314732578260756324651701997943431265842155311281229555775827455729254872021447945255960514658025862149572337826819397300795318546558030752939884471165421431753600970507874619651383581816973119716337848576705068653320266065955224322801648337855327313952135967978679503668496060573504763199349146753280413396351770099376090384671209208468528189650800157041456034041431186776299198420267344351526674705784810533688351518061988368518569489851234828297720160466905060542509705213667724327309795127324730224227266527822137860682501287269134239234597016400657660352271610804290280939099975881257483398333228654102712046052808698031948642180927820335586171717266426646179962847607519527046284963098298824674319865366936065417537034088011026670248814930488444011993535102249460731809790240008139472858044722084939593278723265196596813243886910480645498695397727108810824616649019255529170022704147904283738064999964816813248496028101795849040742598330764724385816143607622059053963635111515897214747523347430435752266989998025737017545749803402995519741916200609515274072963188515888105994893581389030626419257252397775973305608277597942488277473463867481921596301038548976162577583137542740738650762024942376139548751815658979663334832966360462431937478980605435452386487309680983837923752033943902335539466054951004224227913521974188247960214228725345774355775680586241222445183603608470359056785903484189019934495662647986109959820047936481751311700981251848115855433659273582506628174774644551828528299375040875650822990212690101845185023009453285298617408208185191586939524525640029700328137324630659305426439906196651694120490178577068931930731150013140121408266217344130786223766355079975944639285367650183426625098213886716588819148712982571986154509486175148522271514165390113363795018743494424671777869736577046006427979498999447736928793267939123831107268505236785610868085470082275066590765403738115838078802605637848011572901104730011008131147521754115605797548540039541409325320652040318209752722258266148724496752963224521052369440343470283467932759835018215653971342658270336223828907114369164391243858840645815352475038239851860094969240624168918656624260442091610974908788012203321687210254344205692061567084976496059933710320827345868301482635462225936995989829275694941126425594367121975284423986564960606695091672194473450938470859445332749568542640285379086626785171578104855733379975820497059336754689783318346471550500035636503336925948085494715076673695125727587752523499882827397319787358218781358412039133562873933331448655602374252518080805037281209834720239379804289680117366457413195319469410279962068826027206161675293312687514205214637350552681821678422584350619508917172323730511348264733687795833885481427765376398401091414040102864819249746372804575537820423613625775389357833999687681140382550742316256904018727515361335961968336621344794208804993000016928702340627451684648337257803266910978016074911240297441625929845439717048242397803985983766051092233349505398500605701550168122519765459076914706035572822299009029305328190503050723767217739319613828369508736621408587754261249866673901827829737141840659826614116359889153132891990575986074743761673905995728719623524244697384402041404630183806331248602831717676521596777694782939678210908150767722812770652685916758626859074116999912425942227473783757780487769799274531033874817011348863804173286161524555743759938433468240396624948678238479877961216592800647386239425567654321731955302819494947932142638856260778729302713002694459562818419945375974106813512738612141640744087479921585433421996130052379003738492242594567109287808698342084135311047728184862000438777545734448646217583031815637850558760606249579740211759189283085961901611142232401443620118414493528796069408205748807256784403206607944872844402482986512418527492646650152689765011387491568335674983558088191543432616049753709931769052256158153912597120763781556789948777459326751521895126093833888467219038037844250268196044515327296537912612676824802673046175921096068617410424998394902997320974805047966384145993252688658119407871406538278475879339928022575160248260240572758849374642467668446815429211128595956763399088663033355978149829779090629429007697565328326957597545042460218817664818325938018869522793745646131959083247079177426111014219965150284685441384833749117510072255468702604968491724528283045367563544699769235857072689879784000527933236373702532935921350572335481289745271603736516869211469714386511476878091527332136246019312043808407151487200308312161126430859205047770680681056479934256221037908367843816472624706767048292962568728124712490040328415999368456973797610928916161568122124192843341139888223828924420555628451305170917473395211634985259565375934524816713722443339423989410226405513308252113408058880196260039904773549415716435421280911591566876950992801519562707361889036111937518817526153306292949209324960095217164375410381051533600091682298762615892383664357235538256640201943207471594515215848473961206634677434149070868528366070213346509054026474345846380652559238601057078699859383918434714733949090310085560082843247520155531197586364393329477322614424586102425501786377163706133092128026130829777350989521563773187510192129702375250448812916460533896577739005992686517029514234923520060263215142694909366347498978774922623326935804982523087895137025046122255502844885947291525108975451199441796866359795369018279333023198560890041947591047007470390845044514939407990081041006378910157639956549244382176199779629193709221691218454116225338237030674369514485491497365284902190753822405434872073925416175148017887394994461994723525959920011647300180430406003555122301351423762935712516669200434614489939042059903749969712822953032199768725914202359992798313712259633575265286481144467705145478760457472681950178754276591822780809452582806883933922416276653532715637445730795780549818463775209362559031398877931463519716553900760702599189501166974663467800763794667194836223110241302526237291133389053086235165204609970509641736600244854387161268547701854654942828439405290622052996418527463974864657374894282428794357341833017672932355711833982736748493792879143868405250930792868004244258289626738239075916725957903017488324364258354182394661332560165608514926539228063017426605682643324876562026139715078488919691566794732731265295439073558017744365837436793596228053700441187880675176816245958497568749876317620224844004801177303920890506702170424585021981291317085095143492022657537666807578782871387332120918958906122219369308571640831583174069289357364115282586497389850157926285261488426028749700345937045067355956659016532829695949148090860414165495356370294067894100816291294658181750703390326409035214923962699390978911715187863659521771805277871763867196365334835151187591634522592453739547225946442688361212987617761305082076537793680633694404413254946834772899504148647009469301726670978851797945668921118184900015531961836711330968487653331427534115492025937666361009388314259206899584725420322961621466682025817530680464556741784539317419959233115278408083533896599363409801234360054762750156233992411364271272738839029776214468999681402806693918726795025896708375430502368506093393123250771284009315037944449373408678922992372905774302949768389768129059713902610065976521950021936912805213793951757227632824087191152527641893301803128554996826280144960651506917536844681457271890441234377822003419371230163972148822926194391399638940935365430979422545667542651129889666456342593537943479573860130558019448893865746100898614798282498632263962762588080337223591011695590428207488828092294757020993848607609003365216021287730963584075111772471459377079934500159428622524738134618227425879736464008960198383703248234523343237825502791858533794655599257611101470284890713788251816375580020696534539412719759343719126131809713462282517148145919478118965562325737347153837151886540323600173080916386332227086350629808385421873839715131623682463829950856233311227781755022117649434268490073869426651075077750393736596915947447099603965573177365203741456209899410112346973497857329269711026467358618305511886338846823578297884641319893599824058588408918253386740863629502509167367121111348628742614426164512695761295493421929195519841488942789212447163547683000486200359263899352203307276677625623445247243457624066363147073456586796078862284003783048899701652033790212106911518662713222228682879805802348196811276913851050086720838171747142889225275528998321281686210097780850690483722510244654583801444520529381304910882786326958124311977924741746158435029595232671752091446320827633787484600790703936201486189164217982980543748290948465315720998494318099413344726710656793308355208152529258559249167536711344124318700271194840649643424407414975768912863778354780126089341305279488446563233284249717618701530201652423404141481148666763134820494256860364354657170923995663990414221570548477519179062588723964682401983700758817007450826333172577029591795686431840128097812097588016284875343639948295895314387397073909953993827138870612080212266566502346022083239451008406498231345984104431769844181293470550887896428333114538928793836663995049562742712876640495115161347580510001358399818631980913066280134034633085621230045752697862000713269291142071796407217498395732086520650982169700555559845385478872592279244051595185178997296007262945096894095004061080047656953206266014741091706711652465306032812771927899415750563243337460809381629613029165577920620769828589934647863586515012391150153973389158952955627702912773001861412920243652789031074093771541986582860312046464880453108552333135924597277638370746204498021838933439909552523286483767245168233220448681102720546092478108297504985540870591603510092262681859825747091100696127012872696634236865944291617768329300770876738106378703909794594768301441877466362216376932983362083736875379007505784591148838602930926828255058385122550407491162551550986641292259833938147760403569098422609199390488289241320526727356261902321884483339574518765314919704077552117004118011905379469859556262396998899157293327717049640370294463899899772050938694709053682393224807847578481763791108644959763660569266892519283807643142799796892982859767808370312045192336616176025929846882299480153763556017690542719862380646000397751095300495326433848122587587435634753377911162314320818996897507333932837720773913949418509244132077125362999349511954621653040755720583073370538489560206009881680777814343275857179900008275194188898884534874181949026019409769516710795492882797437592961657066190227555726977161968940162325635270804969701071329349558921598175108312407296224091054549937641893374915960326620685618474869569992589126269531359571442135181174629021706187961756298998836383536533448679411012301543027918338120351786357246546681241570583083398532275429524148489523529475034738443557937884260050128527524271465784953517297018041181289539043311138826648822262034405914907472821988977503781128539186020393134763251785678850391369036174318933485570822885407575163432820284724238022398628220778854692844357766221939963712716270620986778089524990511562046379060649738885741093415231974471046391312923272562486825179059385123366880000587889952640297977953780550212028604391763884397092093670800531282925963850727380376999108462469745964424392804746581045155500692922177029057506692215322533393343106392523480585215296715219720604988274217641410756894478920009121043364695484033637221875753187912767593778251462939204947268710783460295896517028153972113412796686574776071495232226578472342501242728146359798773662795179511931116360194989581555439183369419221494570790415071640950378683003268375708021612512647750966784894441904520542647788566333383163259794134334823591558860354734664619540445062022375111645074105610894367364867526072391650403009125853708703974547892874412308478169958055176230382530089995784932139778724317321598101464336892502459950756165215222618468966429123967970776857598750233328232418598688950406860131761809778476996103071300349203526497080984294351510583170089939794577237672317037617688437887156329356279619319022044905425954748726048536873450625467845869109190659290887179145834756005467494771809605294816727545712178002900185612099069837545073970369813507015042345392722783594114553047299270360459516912967889141441860657642544780396119883539098905648089868120880592689166575344038618644421822208232317494279085575294886401071499112919543228072357435651278266276239288211636542673269534261247237812188039440412623713244419967519025889123023551622179754260503812025469669342009640623667158126191453284120790617709572304569955002967451447559003032052714003681526120442589268076974892181533603641818271355779638860443945588687886869800016561366222072565911057768271620133877062523104829354940810063340879912513452743323416075725377055708444499656121733318305326688804901069501836721595681412089939778029414015746626867302741498231756608515821433627068902691723558921968299716911193818639789527429232951913677420769328796693841256207128054444982352102941065998644154739394912180882725488111750604343078986908245472493134270340034385105122068033745252838538051006149997008200473031280196619569724273800112467325585991501559162346962795540852822612882189639976946720278558260872686812463514024222953438887396256936522738065224951289114240349606446662857063914881973219961480748174543149060372986901592860334642544599753219731399517289978028083446599596725223520896628324500297633812884933655095496791622294414514340997980527568330983490587045005655561879223048990183770119147220090034985793915619616102920173128075068780152875874944119377643092885781277307487144436927915565370520812567002368364494702391842382120256429881490548041973154340670763597276619247628986572395977728379300120821493163160643373443896137016322639048375212407908442275919221293574592815030945751495198222346229013170836801494301548225918797601167074184140608894086722606476013268879108623471045747732551447287472921758026374361143863394955693507416376500006116672952174500802646151118223758060904870919593504171206532002587794888658225114728681187100359660935864636429999487237469749070074549330075864252265076577937782154615645697201869234946656749328781208348780070695821803234060115895965888633734078950776401121975850267060333464855994918518264175205091754300861430943558423113127999018403013868231080078978871717539989690570555690468351315053110482623503545164571951393770336408495638002046519386475640802555701797050099159084084274190801238504012654913435842582153081926579483698118993078693858141526130048262615203285737609544268665224407894866637121053861070440118083279689556549172373510930250309987456571649130268708437792128498569085241917503350956601424980270482176972484303112679667433553643201873696200390953993676540471609149551622411077857905397132076325083681951301894983561341573619080647449394227801329932596842759343663519040239036486590819420542318406744287003393679666098303493522635090274646523697690565410603830713077259461570676386622167100538365736306671682085787540755744441502386050585637562653141460373628062537490606173146742969333330032144181942006072884763248732083551148942328541163366160332382797226090032477079614672195518971336089383278854498771614906897357597949647693367050701998675157240392330865156691213350586388029976944939758576914869944137618023686056680035595432629487723255761500666214415819431177812570487267563906028436269101038168116036034824044638310049800111018100515512721914265613708816244670005950662227263084786742531318024827887608363934674355732230161549278502487483376258874140639800387818231779155009492166377200186890020208143206525954169059354016685694867154469599024982928300004398971511910831765117273091221855586804509219997766116714685316658252844868570031506344931962674791631797464251255022982223929845842506286993053713726065700027562491297725413878321935909478770862140476089333054721518486876496588949264922364639156432440290697866765771560145819733908668172907588704840377596979306547151897269421165635983994387407573197251572246760117229030504327556357937630709218546119409473585925565655852955741438247955956221790268797710562996478468602258900947126696829950979196739988915837484244149636389869708847981594993452210820622055524680743388243486159018956743202475674030633897280335889224246358470289193901673110869029317332776257037195088634878691706079147641226941558042532005484185200481451443956099087385395149901143055727466577669673521404654815808731596975072459154315882735752584464191489735676536455364260782798424376624884957117539280393624594108846050181354626678740605071451546233280689379431697302496186289309063822529394919780089316090159336374504793195484886772027798450051362877380542358491497898606440212785251905186405263208788741773250936298831526517416788546529163247669996096035592620934554063278780244029331597922643940741455274652518319443603294402901118206561575003086975733806922327344223202193574622706876895772628282954439470173870920715993091447103422797718525429741940010816892805162305563526570465374063232487198145928446154102682212891795489460725636028314646553967449172289367147932246422834890683595524409093441908300210120937407683782184013209136188948200156494082540295138356621912306474118101304970107984946512717635024746984842569133507628505096512955556651887718426669764537338571045531890338305419141138948945349320604940244572197036083289690172918203215107281712247172290710217545806441621001117745862913212007490822208055456395713094383048934498165933405749920557250824580909245154816010693870572439630532669544071554114273604085066724688803846213289341224980787494854245518394964194142077358635317363743922008012222189223658400555327139029675633609521304583422343699918267193550725444876468787028912898545008125054036303329762193422732758984533134338983968495832773410273448829388181837334742039350445266228233193808359534553529725868907543158357884578317355985643430829414253864458697606297672651302721354344574759031803391543944341257659403224760446697180245022973989089060089999865428381855928443926922746090724819751621315817862970769034008022708179968598852047701636059289115680984199803367559185962717000081799202905188024720407881268406303531768491689069790734644101303885527318790617454350094808279738582009645072795290294364343164208096010308198297888006755708919701010229128592426789428654048364645507393089153006932482710832237359046946373294231114491350460874087967855097593403393589119713979041796548810839425723086513207962536642057673421553765454751511317413223776994493137231816361812426255587999699688396172631766418080749562777327664644235816178016832836523345338639455801129512664152726329395939926682216988642485348579298481520502479565552502012999697196737264497569457600887273574501944135028752683614401167956615977191133614634392289495163753914943318863498392678496041487408810372126648484476042319508059772726367657269790579728557256476971322659613231143840926743514561409143277572278441656629710745697790590383337203495692147947856549517094473200326467619983591427921556277415003674458006402564076560018902795244675369304840147673782687547915405759992351220843363263849377407600909580359006112939606676964648216235774302275325769436065932998006545283442048710936852280523771408300667620867286975782149968055644168538176407743352176934234175098498417105599023989794276594274214185414897728139936294644535898369092466361273632754478036726145428296410579783026488174246645292244423946560175527260684689015550877588517324065276685871850421154839964079448578520821439759896664875558358674615740880901564170121902856194254172107773019761423570409412130212115923131483786728333169881129355337325586397054531416658614336304967466493737161744072121832133747502560633893925133306431537654189719781359425882939754494489274684174211713065876423316884378473248428289345392369377329581207401188893216732505337170384408830369088698096080166102627165302470571000585704968144219201223596228155306833244344142852045920076918698888637029288178581789610027221283989819669803077459206414844833136799463359496978284005693816685651186838863050952393228349663705774608631460275803401331522619005319818023736061250029454698918296159351370032164020558666375731617437106403440440912600740868634530653295597781181026502938720441946629884588238354226616442315798929748518176947883372847310908173087217317905165675163364198063990555804632979366239797101247491770485713188863624477895091388011049985043801063841354047127823607770688677974772490860742918999042502806910562826896691186272800778956286854461372230650450987079592976869162422681814264470651675717697273801259602345102188517849942054517852311018365582665200243917933610309575178969384342720253113991696846814982570055441324710223266574563929606966624269896228661979285124877320446890220942951638242934742819202055248012865127929629188005042676473661875461863005861629475866575274239572969169788786120273742027675558385997423186456817149402977488082001174661901999944615431027369778586147028750556652977040753712725047229445220673238626408173634439963142260219265670300008896544684827425761993586990808753865038490605084276050055019231154257674059469303794903394819590826604009537325112854900230765711006117086431347349250074787514236396338636229903647451787522870277607957290431513045511538286528198661187197978355863747294406027195724152701641011283238086284229586031808523491446179509283481883098071002463903137047154770561248333544225383474547746871144950198068993392352292086561303170450860163386748993172384412445492987157309086370132835679314666805778675356701750160901401226233975360022627002788015237525031930095171169607921749681600130362535840149857137144426079409210612698746991481209791779737202597500903982878063414114618916179757616469452669376626591243036882696151494175758314088009648047235295492461055394740568801899545395147617199972180095274163745223891976000326776346326168213504232644255127579970305046110095229009781782331635304985008023591104776563765320358288353194325079184969358822225433885972197949613837187896828110564563873995496431558054510440744999352192238534394165391396380514712282890450892021285232238384090864478898336993409949928130426082651738361298378486084639809436079559819974682459032952896839911025479680078474239654029530602948856915537580593179669000732582393276453312226342827799149959215117837188145275588947168943859697360137371825998393236307327183655580885141321789547794196536255394528784680986512096818844480240752859728050134223042196472595678399281870981818708123390723891969797226832045976126793084032677760535866723134515877432376626788540009774395052211817992282998945388355697159684741032658356448330353411239902586253065296239594703502521686035417389566376205571292738401829824283798788704317925082844654366035216057185569126574011855231347220427867346805444844432718691954860156901214271186653247706646437689542895416100138923655317999108402484337323081258514409297546211803621576901218461357909755979931245418678021232447059407070333960346395935981713985320564100600385013937173533366403147613750018720335603277749858597850666550325166814395212578024476854336675889120850268979421581509677537633028427604063627661302300690327780881870012821314123717366237564000085887706217423733687492565942328395007595139545735456969414788492204982947782847499863955172762786214388644801847190448407258048222604182854638271094791373563997614151805637011701645168436783760470074148251872440947273136414504977236130387180397209686716389604396518326550696623496663729073001241030565270564009330088169782532780947436537359662598010753051685910615970714003490140234299762144085520834902027158561152001754972415824871669169987369273700106163495319375736837424450744757294975430934272660632410233286345139660260673916064664239855513747357203942490300391972466336387800456348606739274499594483020155125162927398974441957064359850081904816454394960457050213530146043118229825940824910271501125018590666858141892636001727374141898475042798713066273715721158594081088460576512899704790708753004457428922341706702997952291811394704001495422112805481196173375225807278514779964621553554734735532056131962505382730815190097173491915136826830430549933866742524872117703513726817689631769102212164771247001447506815971796990707239369651321419426733335786336219176672401071038873930744985284605233417056338870380427803039115484795373611022311979350586968042070903104350203736469704226892868053800338157922889196211178237859435326370509920256990007067775805754446283034057218374273090731856675682748968054816562756322354501197233257223115404626692614464141954740040393148294075878928342261560742143591833672037495017586594610805464049113672765811344678238907681995946408910884552765619638949873582621886257247772133661256633622189181735445649357374015629861752071163990718390928351097238140817188516384035623378859905815138250843268150949534116116740767846720515928969044702894802939463364998805189757094909810279876961048664309087715579171495192141401957566773798175566191173475917963963509366725605150839117475457194186895731433308535233635181235871045652492283034092395463258952749271904138964510673715962766233356553189155091585444468531727756134609485419523099260798408065374243990475058291334488619751895260775233151664285655883080595993245232712248086994299344361308575836451822129427439739371931158939134874316095513957615244864716667743412201556269723801759224528846982080061197396538611882900036332184465015517903059195078657560023392654035338005059400653639563623355526681487559898775648646244703156533771109234711832081203927918294862973352269218869744093779149693525855260362101145930052791918821638478977948529170536629409419043545107591887865778867374794421988475211838754542749563643279705182589031043627851346145013529581287422129510376215202321929161939332861403851437538573746368374997297378986841366375401341254043937238145584259719147725248759259002011383256036832489057061665930527710982849091735257687127364585116331422085223685388930262957902138013695932592398851166238450731547634062846629076134811318845560871758031971912962849810151431889881118791699074046005804230378398278061317674575198972721203432790457852072732078764967304679423572798974947834616619263560099987565812472415513959084730092323821677598328298361246106552397379172436553333992536978383392512335338514029424118975922723315738480086068382908106568538740838864588900995340413257944402935354051701313814177618917030933657577315940792056825565176439748214059703284388882122694103245716017061736201653101434168649216508207912672841510772171555156808883771740968646656765809497963899582977897228686114326582332864828067984719761007981987266045754824659136487753095400450053378862973022716217805242112503101496016634190471332575906022722108914563609557770789957616757140458859485921876776844639652838628491206644673193789885269776501109245815707414331580021436390639129526154819728849270401384805695640029270381337572713525916113567535178807999866838007797117906057906242719943385606682720445198127483678880704702997474371260869191769015510124754639910278332741879570941504207127000608657133786026993318020383614568658003599947420863465813568548164549821195532296104777304721045451681889885655768952972483342261572299302700225791507674967073006050324499663045726682967643645950104180168291837821964032806392353803412047441073371111056024203213609569316264567538235834735459328983934098745966381024739649606621801216490493552144154000304778278603710549855260441313340162816354454855418646932500240453053628714738085699721689658120574052327780433360832415186347956051734491704481821084201062773212716480382624885052645158048600805534768032935136930318135670899080520092718950868935472343824221780602796940546320027461315114538735024653101554547515188686828123957550206778054001105335318050177847420647438638409136192649796362534001599261094226859038007768196643273563942707249229996828485648161010353853572689880081168941824527813482131134264435789575075441027005352155061767454034452847397227993651162796889859843202869220494534261276185654816325761987210450480823971677756460447868237986884995940875748040432688957910302148398115813323844558141351574574847207069316805900846929312405480056245894946802895977105884521566884657692194031951166898763107753536976047106323130853092194075343415134471763248462519100435303584961010674416649933656494331428474948695105024566491150289291733954297871583710654251402555335642192151944699941258834280288357396976007738953455426952042834780500858786509893482117256743554094679176721489247771036681558867724277113818285337166956376261096230832751650960031487247397266160543268627569396440644960282899010742737547492020357401158374082217452044682308000446286337079025042305995809127265702487937525593120321869003885555578305852344775625241025111191763988174771523732425424627924264294211387743964464273337160780790289352950161918758913191029405090052231498202415094196866374499340578844331011895023561808496126762377050442622408196668224386033277188096373492443701031719121828364248134123747146860119141469748850340914812472061414029222164083679444362802753164139472321088606469835021089933763858402657561368515839384340187385278376958242252023953511213622292360246610748183772700894590750496573630615938937894287492059919076786116173006349067342890445976737560835855258811362269261258810971711562504664168000234358491540757912279902074008898331818173129138122331149026348370674405329743089179647837210052092366487481690441018913299486065863010080230469983004495786126309998250663816931363313508783100597004184617913309853271242796250808271364991005186372150634078326551555464343693241685837011288914505598064974258715622996013016787075709568651337300662083521116406170883677209668750639492792776603270008518803054887187448622606104940133444904174211313766185982042498782675781062588152247223241376133321623948647392177799098639694489290513353106637312282418870060503199605583304114336579459655062649433987220475302486235737710841161629805666316096157996602878286241612018975293771253370367656477292624016040738697140535114613662131688037707600251907624767175806285610326065892127002789691340217448697256236418835022942128850871693967935736547333459383883784852874038265170394535858877501341359656745917422001637873992250614323175375113704602056733876286838878036574110787935349433752752217288518993729866038777950288403843153940113061753695334702360549555630652326765446366872889311796073953711169737603586315302722547989484544959529872307752857789962901142943293876913527381258699397738546362431804788839398657511200991967731412003151403062443153042113170761696238268392985476938535075013168636641695964982311152942467250396291077248816589713259760109197722800743824471982103888176495923287152070746877357120285509698375991706240580914415400786909386361363955578123949179411741731926823270995516893553107557978898786943650095235493645103353956057092144568942338349603541461448049775277124117672797793812467801451022318868558558206317617985923696615703855992827008403617324692560935054801843487693310910164449777020013250584147690279834106248955828962059440117285328096961157791939684766050599521816495751996007220504367611439041391940184449860407465263489288026855053158670774837442971363124847289882804525212282740992570474304696657694210466772261177052771151396818454755777328572440905110387853348078781831611306891376126990647584811161797939019426757963855943801410664949728186076908954812728201926664769207098780834183343268713930008783728857057268574264499131791925268922566654039351686198331536002628725893634530363807427944136725279990911184944031402778534511136147028645527638301733144518375824108368755441178147917508622701272186936008625858068283488997588605426384863628212702227298972114566406715138787166680777880029765332426631098032255531278810017734437984510828173213145906409836525769328916538964288058388993052047653067853975721706036592708635894003154887277637195427200791479521908293407599687126251195097994878954575837193450614954620425922142165287867668840338345686764345170206936307873932523876180686278844386309863681583304160514340036682154370848621573098745445124213040247700017152080112036053936431777248306435395139326513915392739213211924031716930575193200404826872910536936095234314568968949535907414917515411364694479407947446680455642549091240252644118765048629807660819785729520030506162858997541572635750338427817031083791697025982141000811412204180325593249211071296397560690013599426155055802207419693902789015269901474228390893170806941126892794263689372815219914982883778832762805113443446194884883332236582887141963735605437671415887472317680777973087394451953997756366068616797594658973313997371199772022758986193526196893740644517001585429914504195444111771138980712390932378443596571976345596534376985835454362467623637389532375957407777534897198340871046561316332814269600123820662300046996067216636797256760786206449717093530873764522155885068624119609509952517650784000489268107728584192778475493817629502447592357047134050388022018110714123484348689666220586306085462494215874625617951288519468512138127148673926906106531734323461970138052096513388725838487518041460092293343797853542314926926690906272558843744014483338977871498501121011255175386480078626875309892553988622563997238476013168435980890404486224140616246936669952269640745777438122900841741536470069510114225067354285717858797077685425854680127364481156131084431593562923624522565020677195574848535591344516877039261244623763059543636434733342649730408246491170334231407331209704504142916711375297252941862704821438703771167057425514326714543997949940436375156854025100047447661495046483113872512469555410301955361894520430618434466336131710818922890924234499098584869503051104234361820788771996839519491729023589590847044420208633845829561533727525596227086611629887486205517645909392836472554429367834440689848899529544889282024446242737267387651022302237387889596900228803447843164080259972587021361374895826072290477327139135450144135200196344054063042193906263947715005877485450487152917222211170615368787188926592875740571413971159602303525353249706794716108523152688920397517124808433214180267431145687511179041820964775163000647241187999162019494242808972073182533346369664465341857398958361179668935517269156916787964264093463716469598664413403042118417596427397044632584850913679477959394546128569918104824663783309170516948766309103687121199754297309711851032569028691551969967975414647377948120653079549165211544436226599506155363140915112002358188342468722522111719157589625824224016679374047243970885539040826095307389498701151490132701659705522542607362156697619599170364592721451719814536576152209633502141119370878615248727255531639982442582674416339878089342071164747459656191371694076776883802697699052728429408947050061152502576110023267092963503407749538187645852559274113467556495891113844700098346860204434025935004743947735023277095227350016385895503428620483160024969040541226646326610941391721179263248062368693889601259862184994438829321014076591767705466940415495092295622246066309740538043153167031032252521824703760302085162323944879307395981952826960065041083373248006267776910663699566934139041682479534416412619431183088807463137817123045110343043678986760178660471493326031313150617005819837101017631301658677191580434992032132809881776445742724748703745839806409450269950902304639993856875827273623794178948243378141298207790247415664581449129260297411536790568625147925380622470017962665333681012755331492691794445539598150149460762152390363697849110466770784204675484203868600395018199746041188333079416592527902775172827733522676534026700616392656866478797835244794192188752836020560636396320649419220779988880907898718293766979565855477677902856132285973935080659388854154266681441912709834315844870231157676688743659491962209865610526457056332890220187823086965543800904194722430732381977179589535687217451936001360733886722152142595371302594788410185033437587530929481342569213811078376766895083116525692164071305957240792587068870729110381144930273663256525556450151660062057185421965596249244881727766596280461094180573801666940341508298932153774451336906877263519957636077269695756780250210069649378527937605891257925505038937567020196859424536204245835503307599672773887476433111131840426737975224844640877541407762286640072711838215375879976820733635266873373862300399804934051576485967331131047587687472369433250673619528013614183982286913722750238871134458437647843295780242166656629306939719999170777434727755989857200068819917618592348946461088641079373407498168165761804464921611333289911431588374565574096133277062641718477632123689892557328987592050429388648269785058470696244123003314130176044770347654449132284923664274152657481048452014705476069674120889587817575508480076007611816384636339199355291651861462014670476212847268749431874573355870845277082433078637681457266557633201964133610933789594775322329474776295045021823740371295725100641110754039283232507126233591827841484693863966489938959353673303490322725320695442517260850308562467728515881175071189857495368187761008037128198831483474927810753867454854846685503517154298384902680199658327456412706812977722861070128707420433615684034344248101544211154773935504504715567305328214803511140037553609781400183154368392442103268053420751422962577129497734057110420294713614317112571079485098565488332068873366500149623987599689821421043602906604673404191368043503158440996613496863065954198229060302044931409406245256871464811228992169854477225448375126065008214852198784189440362032332938305109475007745927229786228057683736454975382083332761198417811459304830816331196706359743807115287337851644267555859398830104888283863177627122211238742048229688863652049040057863011821941251943964597147981800138123175367467151769054997819641016141795553681580221923830351355928583109028606543929098273963146670658997904350646795332301332472527076603565914595979713089309002337028813071030022936567020767050274310519316926881647785605669239377349880322866703035462365188262534686007000663259365183458513908382903895255828846648945398561620083901578027252515784066717515028147845105004357016120755047640051797015510967717217866277030995123912585926542751848083478422832722715624912825641303410786675912164712945740462380298861173070540758125619257793246470454268782314690087366739705552177388465052132350350788243562115420339123932820407268542471137934660415965248315529879003221095865046593885917945535237135920012039147159924682774989453852273192538919447564436355573705367700977555622921935041424565893799970631594284128576849237987134225109378168453101046314784247498198455324414654724303642565775074453698292875878314278848211873339118352154848719272645524060526108147298186788382083667739635400634470178293821607131520140831831380835805962583177611259957978005156034129686393358492501565492255514639191410778226011840928891299618470098779438819314840176582119965938921169396418813649697179040564220726266311169576780511240220739163010504312359874084389974152449243432878662309922882895129790072518172907750838578105412324936711942961977558460247371756071347054769309397608937916987455005368361412093121118537174571938258120819962247049604119796734056109310248950247384373051662423100308062124431466633970816705688052143809351540456157351118898021654158220320638474796383883117630989735248022629827999839431505165969362870602778137994502611084978226813153257319931831819410003275322057944264989077672524982107425761803322026549483853179435880778807665669026205763955384567654615679762602053292947975424639995827223411148034507399333594481529696489455404925299810957298166468488987915402211840417438405960989122215818282737910448007496637117418469663711497177725654166447126288412280058011653826305542062678608313307682557608090761895347504635732731765548135470415370395484931761932160897995375131958716026073533421430436630085736337704669348472147775304132400428844346372427155897444622175053330800203912979478779676027860944757714434178033740569963351726687281154779232522742999412605787695750612805415300818781843898839980926456723162597237597744655556676373368236344248163974338660256390141052793168206962731410810737376500228372702557021835455590832674654230819168156911135113100454609935708808691199885189755896076322373760948138353072029314414186166668852289104382127266284534146456728558808787162226595812130872396343293956287692163627139742736071964154104490279395700963941612446517776082749814392853463772341210208785398037317957896919690025681190785608152721345823521102529253036004240615136587757258952863029042340453997192177613138637840220607525860937652667398625272959891579318850759543898591166046914461336048676027792325797604161536386781153675831115582714174342126801420444647427591624333639899785387626173429293545621034623078036276515712890703806703274161134556257795455754964106098836288315987937153766668624517621572979328663360925943198158777150740532997032376554009257231076611851568412468664094021597906012381006600838923172521592785954243079697991510520793743057441222705012981810441066068791726485678228210037406652958654621053152029202044699755672644520919791075616763645661269964585579204759711411864295586416732955597218606260835618611625777452503541379138885891302833105551224772351357213642238062790301808654213747475449317411958227027624485236956899408775722630776555344255164376438543623565109882296318226051408925542876016241870532746683002651021708044298644429673691417486881015908539598945501569087285694285829579314893738928837849945552506235163090114101485806159531784836551387716478966725548631947144184226983555072808617811559924610410140693654939604342743761806438284801865789380873663851121230075772886483299609957239349560177372146398274270507512386865316315203795690484434419754425020276284676702765518887617491431723571471979284405554559180483274847084991637087171816531261360769681804173691400192112997105543352132379885487312314639014942465133976576954404359607165951372005046619969024372525747213559557645953475999740909819410097064890655402482234600150902833036723488215734473092920501686354730540076717203190009137608139794262230354881015057333224717617284381538173825331821902248523950165734284044864747400813400687932048301310873808632087903533605677180593151710447522380927812071243505678540300255683890556841260009307260289601438898130497874143856770711493512960660143548977269615229896277799525413682501411642661739343665185328746656252135526841862899878876330454887620945071776813600271859777609786468642539367020686892265595725259713252908843444851378369227268279846108515865725041537078700465346551198005490987572735292182284518589620246786744386286058502164658566739054923148545849258658663038841028685389031072796420721217275881704852659538616041218621271967042398310946235750736569359572812500608506244433124610891721091777872128495698348280455749726335626848603750311364495483619665804149853037481647231410257812030223673662530138592208622362341995395782470438038924277536095470784843557767827880361346492912609576748626863251192998092103109041067025432969961819117447971993609473626610243513985727325738236459566228390008325677453509190585419233446426255657156795242981847565402552948838140548628816455142505580614157335311115657889297919860622362528414895492878681717045832569347317529237777913941339645891883393099922590698876007157246972121642498494717026961305586887980667761557140487342334304043556812490238541425029678086691070561890757419101448745406413639745853930502045758636318677120211602545370774803816521706983180018495170705779218928792321069348168088023126831657596645872824593409427512391447482466979785783635539370257585829099454483153577321803894074164137185768024549315487586582389734660596077143003873964366610716011045269089856579694391482933258085263613146374264230553902779437252765060449345605570607013253409410423725594917786271398046907943932751679007385673118083559258619100449548913199544388797024512978757424317431428822419749045569146728588663335949692990933048773433479514522438062350507687828755798290861679050532312878103036383045902787954591207916337035531570419481000806825569323637594104029313906164481038552343253887992384859141511108175128795743227740648475131313287977638015786438715176368905288921888361070886532208403562204395194502224135447484123128293492348956852319823325471617231636778059496944529977430562245354722264823003872349154301864372377886217495884778191901264194451822375536649413591427635301138544571709480753628562083812632314864130377060506690733809253757183408428476665359938182932534730330741826918028014681994775057664305681296738927866740420917204846855420597041127004966498692530860869172938347013313980760708436219220568174882565679310989540510395623625261941919060488723405372504484011647854362426592845849698948637777730907422666863603442402981230070856759431104012099290545506448468525040704474129841613076708790301402195984236804964779416808670808574224531365639714198570793137508595084517913354139746325730777436233779493393595770854337395638884880467319055386431129065166267914867174890634641270093243220657206846036110522414446388990422373873869024186470095798532694818574918219619157987808042109191288495936231878957180648463827443237941654332419076524325692512132135226323557305448766807308820774059896732279344968232304403955497166353132065696157582958986048031118314347886490471370859168015098916745619481233435850414458714058056263644479725921734780280610834565760334597947054614703287852947227548976604969538120694360014204311225766841684532788917709738058687343932106156058480192388060941986019623817545119663781704498297422039946747304199762418142306629855744764535761205066287264271839269207696921344250089533221791124619773602752571669806316999249424090002353892272025171411441903226093533824037964394444920394940412007452325505067262471175080236677365292131136506189767185072606603696855137914577537833855679443992300076996720652092745723497508079302522402235728987266432108201130465101470204728429832996566761000125043931875562158057700322305510542534625637945455731193326246988584159343588130975146305095980998324424099807320259616467324065873361540251886370116570483900265659787333709265316137051300416431022196836347927291835743702193736599904954990148330428627173515876946143918272763889989404199457167930644156389131704779144852255617926590559045450805062848116590441781977156425441621376544810673284577682195153324447673629207934658699368340834738120498609918995825722566620307995712687275819351485427861531573357399503233723428372782650028353952936124231917609004283315200246943248295001505331769544528956453026903518814380146378420390947342321434851633734949555939534621495405122131455473522549047506868503900886140646824883969217618972374877229980841295261191672356167287262361540860987170360826016788336667412466729017383432413963349826046930592060518334002139227164134757136237619734258492173308303204474281336230107775737113786943044327220385642349782501817510243171431207975844498572093422974901021392933001264580111035470561493374383115708120235505312142083994571653786476058640765444924433096480783383199170494729150276708297461606077238396831899298725968554091770742509049329155958374390123243257019881725699959632882880169950615867248327089141096411250340115600419706033772894225793837912506622450019095594202883827764931978239390433326566359194101497498342315932440082583996634353746149444641145740145435103024210979077573333239165692113990126323665248374354318050796620601794585773994037798741601260757691548642236376460897469396355322895517310751823659167383365279083775720214600257049184525185538597194555046667642006971054488119449898263939288840284985890384565441178803390624582074630333270450991712553638354380342512748407129776525852249731950861965882918216505622525204739252635306589636046955027913984577343371773920148002575481024188932825513673731390950759884526252202989910867621186489679688048387442068861815941811645111599694046279716701867392201826124545048166569656070409476001064124032151283407465614584810782560579582227998267138734469786013501440629163059890789208349685851443872870120811309286772846367455980199756354087645500007414818207186346347580055518509658606163358937958616571719264095434135749275572007804209721895580701598059653724873344248993657655337010010777258982677881499093940654242221536336091242181889758653615331616607784552046552755867043376313956426737386520441122526305017388784293469580812574551445497887505251805148920440967413408450786474051577431732365774267600372224964378297813043966476186388145275967344451367340362632614357505841053706333817246454745156749030440639065000720591659618677350613754875422784168394720980802581174606709898757418695024822935714103364365247399991911167601639194239599505049306486509631104767076310381664407773084092795756263165365230483674649922725248515426217966558798697156095912420624935321737183209744242644129600529308522555589209532501011289748758880654888121377391905001896011365951998724364143313316821606069226369959815798299569356903716263306265088196562118708579188144067475495226551304063576008812213545307009304239079533860644713487792889506784901064223729188786396669721851995518064700257753061821182585760502195399121050550885014649175453044221805401305059001015870927707229403396915317185792929580619578954687173457066548262518237012989270037309528470378508132576014522011364726747404475041018578662274491934063862819604192124860160447962955193664785442786322440609966098989279519183273108043359049999516765780663559611522244279262544056645541835169313055131343683640559676431050522711704126096950715973430997934780519455403626773656219488090963149118156627764238415806185616224328266750908342377564351631551348366115363648567667088331170960623309420219162267277889235700199982835403956895919977875630159887102033735736676784709093058021936093135785676685477743720231476862031576029911666459542461861501309488626616460374171391619745307593086434261510403141235813147996446876542898123328459191083504853792648634515685411942857965567992678641037383475357104451502505656407674319597040818281224844984559283192499441961160820523862851230316512121199921480966535152698977535355328712032011763118638627756793481665543859998346846482084092821119004956917793273383611586201653954107008158714449592200209837410548269724120941992126064727481006935106686478432474531002385373787526505884330561848693080433379259424650326591849140333382165410103464538721132706428123241821855451454446081687628859373368067808558343820934757808438005633221287425758375407028880366682350614967470020332518549733807168394258804694354668326894969709314643300156379837641159252723595536629964698732064302190892190831746276202491079697874876798455840346562672138621696594607084270109439092773482057312002228065816944035437421974412156559434133280889884453132508500781380112909489136743825337647970688751214680294790834681171120296312992958771185292689394144955883659272029589946498347544265358859517334148166803334555261443582227500895803661228562416742059519957569658081809725568155368806493476721481710042960505567774001265145412298103761178948125624518942906594302822370900020403489300814999902923022229952326096678275451265725782283883983348724865637190996388946748601986458308434040320417703609438473412655699060804430148431201760111350603834927884062032691131099863884048876278297743233638057127314730693057800669884854611989093397527173067727557672879066561689295218623580844306241749119843947932963900981766942410798561052446556370840405638219618064626985972164455412622106576163658622964290897411051548458903525527260864733898297629538910850203486313561165547222592616293327657063690791273298061079503745502900915523337402144651880565644234791688351838592744606585614315994458001633107619865145569528648203087195549226552785240006862332335305093496455367028638209538562091035341092690889902963620838950675264584476417251111936632660320667866270599625250334580871593781311807020902161079137372142545088826868076942695467011157428402578071422046160551517976549551850335883822238463836133289005313331222001535352266691654705491984880443715769948348366151929946819464986089010239474537839749381745822211474029093724434397292219899468945916327131784326476517069198643722465183102688442370162744782322365293727011738880577380923736088074358080845893536617417226082562225635764565839984425566285066159299457732652047951872023263725041820475739474884086913922641827420629483804982825677428485590956277925341062321898067326859135851840355510364293171343068147957269377200208241533062409786772420446354577100277394321308129114238794839382321110584987722512604939178565646485039789286949148012305043025611365105699760172999478373339170895611899875546480552019508141092138379306890225791160795145201943516161338550206362659169340888233294090078331608331525179223873584890662892597348284063247869136256507928937898519355945257518527815939630329101509942934995414126943432933902422194133232075831180514728445440594800460449021025312359141478782398542396060349747719495329808500418255922222015405699758168280684489347805604485210844494422785500039642213196075224348377789746936367949645321378522581136853878747823399686631391979479326210065648269330802812919995954232903074549659039911506522563855579655227882245688111412863092254745794029987846186125011579824710214710862082928461509642777093013179761300205977972298431032025706341240191610217728550474286102742845759771363933930900776385894586308582144761567413119285985972642104988646039679152225295278834852258378692635963969489818173885415440674925940763716655985572350591277087184658350453338934042785136553281513669938739204896294103836378801792779156881424412733070972872406614687473780871749994335081431526053173807951022651296768965016460404482868212912524478270434657262717632993557446230632510951457898022907978781082313284892662711932741677331406424915739711934688294452256753625256246628084832574799035790382128164637087464617932349482708769490478069626588358599978710451262718013264154512824390420761535775047395650518106044514402526141635731789915828605800499290586077596186100394142073439177342435434885861004386578131417170075712549420502032135165962468015971932606010796076718126129838042334916440537444167656673879055850875250753962080354767506439120565482004757638141384203324548572835723581359624531300539355478596901512410506421473541772612604672184911232040399275466422833425932054305883834180942478472129057936321127684087093909165660183661971508426859923111095923917456835957626059346195521609227139371070570657869172819393108180795853633172433880386364892637935167254626764561673816021193395368960461100512765893073041197180553535910520211264907137498002574914932751358571571870613363058968128087473794237477267897202937299497092356681383672609470379079794022411988730123436984403238956923676896139893476453643612047784515066950915819636209542859411877605731001860328736922377395508360233138082256128034567145874458376514054915487427929747049924783486029238720040710435145390591996083015001079650147547490146901323474073702089072761714611737020440624055536324066794491183246179092392979590915337741870870571266841524002908591019040073440275546848920141908803604738544356179619860678605131703769253649370475443058183117528152916248410096407054804884346705082393681303488813706785907682556148439810376446660292959884504827835063715989879960754855283526449295910268257799293233992352677868192359157754211239050687288637900237737639726357873984672180437222026299469007477009722327954929118141002726957513168041499881200935184650993605068083141646322097094191013799267771388274743048324085542615748055369197214731755239416137442221789509549155211718059902240857275983276927595150222355908956913815694413030135476634965423845978723514854472302505701885167944856623830514637755612138670831205704572793336600331531322153931370440287474120928648553297003989207845611011961680351450642846873887515119071775370772513000532299938398013955699957516929299328948629981791179934169417479261998275176849584536058230426775744256794077420152169480359965173370957050377365884256347955070660514155125222316917016399104053367325288443648763635051650098800807662365953880255142637308087800199249184621926991922027105939127138226698515609138577661741288904997018913759383278462036887993840170546623149782702549908168173316112611548530450965895298316220483429976018638002023521906614690257698452786610661886613794543678134433505993074049219827931339226871699220048303944722924629991695981760754503846703338099294626529350149409586749887428055475085686772694000935259922263672113596629091354319922814743465457153804661109508265026098131677710948416339883914888607572255921610600093168998986599946030771950711498477472352637525677011889882262729232077038980828882883589849340102191742602366814859127016544876971350304774944284611437909078453576121187818435459188258979014391647607766965078138406695867561191893197268315085648149617409779197773142548465793778719833417430565081872845208072012127752359804715813984168861346900940891348065710296427994997320986377105681392074429601793898836083710568020424986522576508293921273731577574239769862435337501023841179347739203252812431549185055261956070360954470672905599507661401360408985960689493238122924019986925592644465595105688744422455475371655526148812184891105877020830678341022260509954326909023361945716055115292066209250600284364445854539128608543608515680418600940731290612883869137533566492735651405530818020873468464385319905668057881625024019076183686383700243205821257423305326057798354029431520315510659579510931836986803797901809439595202397766828302423314094030284617670299450432502320256144111144596308977884419947911493819802779317277316783925099781445576225380159571331350747790619834154955443996493203670280939472854488574210291214997962445878040421806680662592225301922151326043199884304719081492071380039241654910773605716763813288148217759250848588268126943374842645968870111951408212093246594322153539118929460654915741662054852516332661572530572041443314820474704549880901487828937324512373243460973139955290594775677010210668491888138317469112653264945564353181333503944717408817102942737418244517021985208983425858735261067828949734847069395080297355858645659807565933676941276359623620784879363572118121432310236230441079131769657669832814709123295739249469673989902667306388169666188724853846074118713045446917058595726668115887994376219452719441872984166338600685217266679050648921372391425358561354483861363827596293928681982236453528073237724414418539585618205233633617514708021876111286828795007927370563646861679184667467329462251838757049410102685871028974480280612692162735435784496244918416448818728072408986451055835379382325896127275084071456701892814072704059161933310284910890866109712811086515332261381051162090118698996842229087978206222380209801630280389061341343825276152782100530208279683843617860425179765120379472315323028319703482465877763379673389852986876817680157175240940616435052368589421999999606845008026207608711425863856493201708751536784213895979211157991760537421057553949595943390303730659520755417891300542918390680545277636738118998341020039064470904343958013271150952581471885946546770201428227308619226145229642750403169030067524922141497947018386119525123676663949015911246099495072690054651176779464525058204794872688779097578826654114235368515781351582011673356174936410323009182646237541701301602410615409012396064238940496223657915455519639457566191245269426006846328862056346519408192685293789747092402473335286597092914442535937123615705731024087364581356257655601397575218904428491036572469514590028859719204408491941651577264222248567551830878572322136533445983064722846161204273334657922879018074886391520511359574156929436719315239659855527510581039817951717018573421693398909760825195615503942597292596805250470792467871343991596529323279193940084466828273622261273823613931874743759233201151179528797937298389343934782414042681078899308148583940476179106736454590713703341539919095788296542038635171071800953388034215736678960052218899954602670185336419811057945674545947421834022300815307241555372918310191887912695993212323255245571063577136827991726983635730837757294873215912974174544152704617345792542628814934486134394188975113919510733941375042366640937330517408606168589556495519048111644241959719232263067524755340165362538172335950985213392947831793971864721833967070450413453227819922088125518135869668063823493891135491276660625993156492845371656119977833987458029229574978688780098374177870395072410102603967374640456750573728675176966861851392522369702442379475916181630520410429554038182737294368074964374117273031320765710393645398444402031700688092318502669985130325261818202629069027751945197313435286388442442948145932752147351960339757153715740702663561868112266679057722933861468544833970839374846533963722779137272708019564075148980500107516769243337783830155570627603078457253197576424030335840106270603863201545340120056325062361215923729478734550712515708117193393367099262919279604607186591143664092092698696358661236719122391838299448949687188745947585189744436285725733307761030765915357615229124847275564906847502728890295608200866030635295016776592683843385815457450102942772884531056757056857538027494129222522822212320767515285900167883244112269960119343652380993461550154296673802124947777195182104318552541478301616408982424356334296972358958539744645792032911035970473246834472087463901789806121916371599553629021969438025812436296503729260289879432701043401945873892880614513313502783870626279115134155920793123690347877400015136014788427593959457617404052012658707424616657825662612341037488924919406322788474278980921213702697072721135543766539843487048394718509641586776905208183312829152767975575794743984566584632326414192257508720491396833133776934731435897646080700823149099312361294207995266281506955168426550115931581140420319412762150257703018406418820838640452984241338166370558324713586817230049336884088106507655587880937139429752307707873558117295241563904300049976026636826017173509574374087218583096882484808689850785292777370991559500923420117534012588866426603656755896245444668009289003908522285541082551250318959434542809061313599081912872398787317487693048028688903385272854117277464131921038867396519144989588875423977529588531471403737112866207139083525800422648287532874578702943771624615664431604396275041175488689047106196539914858769943202415721948783210109488388657459131560632670784809291370800168579889105845728675556833992975606536409900493912605603683515402828122101887964842098216761796936216178645137208137115267654481914357586895534905250473530907524193058382650099211800591657541433315104737552161253029799917311346908104960188350734480464786324879584010327520299157614809446088683267229890137828441750504432669544614575306134876982123588811107866120507528127311915893298598566977764684970811597806331506875847001096187029141403859454729809385552848250812333817958396950681717543778182692723263790619254355743565277950781487118702826984062923140468660285844360948190662500136166592379242095279780169290349172619429406280057595806501444001849177772237814681239215818690688365098637662545383930774092556136620339904683357610168981503769337022073611592826200473670431548620046439433564369327727907460087472197478811283724840865848117577297123284829618553524484324397512911512567736256087305245634367658623388168320999482914501881205996308062714654027142180508738517340743498833349015358864800980665600921612536316882833695472889320620822840767976153911340016332681044700360246957096624463149558208160502160104777610374707876174020517546382502338065208904850287896116825839202721520505698360564721068214308934353233041701791815268309884638963545015374758088081629281778803141799624386587998746211750494402223296342731604665982205145733769712792759828202765907787146281481118755011418213079998227380623294059069314155961490411724414371094337606274380972985370696121942393960614047536565409625138576304289714523106020691148996677102770776357519755638926735622662635380074765592438540445854872987285640900065923678037140385610795480505066693510559208621442643006013207332626773447469652618528048448056177995934053086369723856890406016171509102150673029339509001051278813992611585005423379914709083286777706109132292696155352437861622456928415462443857493577411275901562694795026030372626733796116358068420231652555154758708309012145521541029743812667103065034533829600603512659968780789885603720219709500251594088133800802999213609224747995726434641099974005101474292678669494071975866507991094826173454986267554684656066548866798251394963084263118964701915904314844919524668254391250055535048108506014788074231716551582164095849446110808826228497766168463134565015260051626853034439605025038460070068910955212481516263497625435656520809313676177201151926242644346800445243089461338196601664960600677166511875118738741617506989557447419388551764892064591209458651247237469981613237912090352932792880325186104781596358785648036766870297636700068866578338636728980305958576854073295794115671952374740273420959693432223968124701061269189905155572063506773242164595980678175512771406390402841469434316522506000918029344690719836574169246209888832608182967419922984552112451115580075595157209917396278315210863093765133243822092240706885640603489974020796980321458582865871126099290440153786068745067374627606128058523685235840692083448037671808409402070558630680461043607856284148216938027258182625486822342945142473028562335656885049940770704478364514105613877767623621068950134692363615775568758755991781667408616000316326626200958400434936926107834836360947860878329670375868631391302671516071126554197439786251069446631249593540125473214590111900612715665258587933954105507203476643049010749972132045198540286166011617087180304192416102054498969019590230936936890350208776006600111007634668189742634359746129383764897751995644793755633373449245456914600776151257675827284554876227842682842275407663689291372638204121375520735210540919652363456060039556729136685577150673816996152489680030508103399177266589438611317601047971386293877455990752609610691028335117198832270006857144435052413775088484673519863321094976800908116930478094390336843003571755893141587511186463529570163455807724626155802306866137899889493275050356586707585785322018490881462321604788239780491996981471346195149890699851332524208413170256649215349050051406000678907238250087366440112677787024588821162498214063980274362105913737925593600413429225887729745946430896921211953206796427429751664297865438837787406835779962600062649145771646536480465438180107195370811327854001338771827111796782390226780464786733025011351041537798534062910015019574945974846770505490183396268405676507779609677745634509526437980239798744389451133823835706913731357432653273025427668197535323994236614312877662170432051546144818641974122797247386627357036088580371189376893297995448248462869637342511301170914753405233965973397945718445582823859685031036935339716296095701720425681614279266559822219998004660195957524368837064449067902583056261763366780094485760351939777733223366914785723511180271441599435455260044281482975211862241224983111309159344149735457548593537814047156885728680835440292903774330292054618925999872588783562940719223747758534153804474261175894378757199115163703442095800521470493231419141861546285957352048367111228251529970078897834713566387197369821617620607988594141372674939305100570266885117188308414278679795849446442901799448045648747727988197704649855687679837741293673716073360384008445389952104736735790493752282938216717066974025005635733805324954860756851033586186964493316609371035123305610053611914306116113688716686274023243807051975525345469575132225278951157343196658650451362046762336285373979001519125938715603284466902906480546857610407276954190647818735664536661584412412622033717001433403262785554575083681671703881638151694295598804987906798880760221409640319766640053213588710485509102599142699813992104237858758762361886698763709711946774899193701592656091524725187903091448860019936595710567965003376864559104890615056365451735586627618761191801736086653784453237409875564935355755610838501503917139149624957536779420853244873002201549493067805322177316685243549407172343380793395785503603680540640080214103438951220055887198420440642275983018663785857801757525048603268116262706577801497094447483237215264921093275222583150228075509010501586162954879697324879306052625846276498113618314938521664981640394989980993953675374593904294078796945739558938160511439360073398461401094922869378560700475869982343219098690175188529851620784304034397404073651930596324518210687744434383906052226622834041367218428406573842389163887285644917061933326655785866369029426331068698267775920013194948668284167335060968446578052181962000925760692743162273228448846051741593894032133920144586463870774942323416236648117419695006561464823303090846841504867547674159169503321010830523621208470716722987261786493040114108521182951947307455964073024368202489825198774337806463702280180597030006847293634860893883640238176406185567736444706221153966453932183847329997313055004884798682139702792078734038970987395318094830736566668196174117628426640179749919045398448172603702071863641905492476895748316168083482645728174071913447876604164138126967373137721568543430027647826260747474459976184397049884623790211013319051355417483340427082313080783499247798687961132009552914408697628311460157252993861806338570041852618360000351198333938908317974125232312040948368652347481787980945474872958698221547710873835053946444145748625872639493030492408364441526125768901007166747540019276031308791990903485653810290091895313954041846882222445268241234172095289495111997315169878093232243293453830699374053560504564741623489803651282759238135442845786082697750940318697732901816865737799989931777636087616149963253322767523667552088348620492161702414737700117721951079385132106135358336893820927032541388244647296591649956564682975644548706590263533471104588751634138923373147645329167587164697995852271860474815575645714205545258673492209422233232532829226609485694712710647184229824060418940786867477556628766582113380082891075853468842378955643245411341866820162631838637287251392589328397208446734762007338438737374823920867578351373027217570564542884285985563263853671747483252215699092361464851514045659891947655870900660362316554989097108509859035918306953092186925959194390127418574129108828181066299892103458086612322080337582589024818823806818164835308224427264810625797873317211065781930177945120985989473063478596676095194470093406989715684613169809946973625173180831414695657241003979391899010264595808418051212206080655483769351114020444841070616614946216384860917097543691002884120228461492185981357545990597821237669100652033966537015492208031904828059219534021192468284971640224473087230144373205060738802372556901564326278763241801009598796586774357917540306663718429700089698355972415558954260984706202386167716327001291854337396741914450362220995343486308070613247243224921460214877275780783263858191001516014853579810523715160351934906196448146586999699035831909374857402927800553712590625014422830833088542066484171725867224207632784329899790931284000895115501164247008691476621564812394469561884304525204221568232681072352252727911293762223303207383940827893306008132273920696884175811318045074005460330399063534759260325486706989816287709897147822673947340338523411980903569551893378632954615772217119027021903636657039844018598308263840509847309698822654685017654978866524648366109208569335440372353676286861100186453923092405689017303294561258447692687683454392810860652480669361783665534220947443501165521884020484514636253445866914128466488248068208404769540041950700400167928482008949183711891006730604880120269008234733404360421190099880457553651145076558842389454909023081842191015121621421018133723942102454596239225493732046939183468321835694548733182871352157834223883136860375812502528182555792558599072122355278605925044641174829859828535639028843908452838002580616727328643670843037037053058551864266916397479250558832775064698693485338209665895657165770197000894776906948494198201220458290864965483306570481488263539631631233002411895345436053699287638726579228128442977319624636721590606345751160177007661131108553085818574670292345763563324095090162524606819288367698247786711681384367063900411408094778368103309647616292423018881796609362247477339627050059501575251570273060115103748852723883936858413848918605202863907149322638173847508773404612859030286500601791307165565704291042821588305989840774605457432099973002112533408909566259427592834035318470131809752340054022931314217180122006891544191997275487629965722014092102004373808723977437755642078415349989688044988096491348043503874517173602060340870803018392093472801830513157448891584483606099233066734829189843880094202194720693929101003858245647864150918559190852730154076990072759837798216488280033494702419359716424393800287316390534570313254168852255662284806075057502536210744467708912443774820170260107328077812497888155770262266857407073008451758590728889344413447167045089461740919071520420241323832722135906375266043824957829395013035318321380956183208148159939774562059217789887799834445630769768891992962721069507958425493265236633945657819397829066829563722351707504275444482840854715814741409351979033778960084275390640972581728220851884604476351445068043068265394709007075457238613213206381739129144582286292888157730930196605403168333557852564840986571720253115209359116145664690470327937838127297575648956006929158712513425420893636695547883580124383131567677368757302391334170767104843888979483983843561179639500756184344676803888566113968824907985468656555324309606468584091240334778067247586019995424663480631150152129884042125171900717760697447765421775455543115123699636338460265677570751347004456301080912954002753353123765516409369776443127762324352029293998750221649050375861584459728504195688333018644939816183622508739101619005751369991903223102853468175941932996536450525116206971414472087792920775359402052523042027229531929321826855137103883688785473716727507066123443073689597225431562788421969292438336606878528949778515891775216064138297299208739032635447792857763824387439703560658185359709247347836890659112289979190824822265405220006967589281633561294245640704681491843010561287492806944554130774045610950013052159903638636799656451244853321278887793413573268652075518005927944824280107798299688972036315254267909009911776568726364591405757696783795404675158520443564199737274391390093483543359440691297516558796890406826297069484854247681119850644811763981537051388422673162296894123404245278693873703778229221535783430538766381544444168416982803510045021288815938270341531827626693266937983969597597722222580950792011814633148093965696255517349129872497240470661829535530879337406824809659765198563696882421380960990305655011342549356689682358970218737477066446220371181639862502598051670267292591298830602486205683079168242828381912774042098382217999028485326313523846939234931748825731151633741918572194882647290629972503193118498375991100926958636546200726649970812467038920839922820370437039657534507380280714759707634217657270429368147542246136520625071668911313864545041428211288136705485421033405992130430869058175211630241179679036923256778049240988020697117989342923421184369664457513325573263612239599985679902689978283575102483714682185275251658410580225450633208163317384535447455306417174802304057165138635523517302073079651867525737911483571334716196230430813536820042919780508461292330766205161397423865431486452802908623726920655962205017711678085093354415110843074634667672070303591914026163350738633488919965983353199939101737580676800532839564417022889785244351452272549503611823781772311218564490652462297931379412373263157686716649417213344651974046456658391894732655890308883425414107693902428099177798858268532747581216401674912860928427143032835484752231049661336367269582329977393720191963549503795146469392886352056275735556994944096418342113415903625226505075669155659227781199626808112586444312713610168511992352566541290766270834759193515401116166450614541795709653255235885956787787284118776953726855417106709281510560194868737883807653773440542491423772223787658241498987744176140126056054345724552707550822592635009076853835802337607147898777695870994602519690844493920327480297479119210939951808756007793803216002186757897888808721075472255929912633788202023813828688256340024328080141976287645336634688125318570380690153991652665670404099988689852903331945892369540898675762027405734907367035803192186395798904653267460147999851405306435202133008837009399767322837354931879952526574419957670200671423893298152351096271569538704589107009246662953661739289331058232861554574644906559954526330314049261653758105688326507452404284066346700114841421718980178010997567623791237252658856537845799238990386190893100824080576994505316485236078161413381883620769700813157762142323227445053102658732958053676587696392271163975237819301714726444277740515477552891709634633460352201765065533282375952018359873140322449034884646966831371006570929743499559027045996777950850988648977135751026406493215009544197377204643278680467785712492582962345141307888668064085732103264882306147582249315425730316926512145514269841228184912599819161118333982197194823923431408946657964659456068771305385274278886634572811138374581814261522306148291098560845273669748063377478706339915319717727710099719576349150004155695105571687740845039865058459421201462288243647719924461357975278095980116925049040403063767160788972470010032550225698275660034283089028199073403306458966868086837573436126925651467765104924788758976097894716701626997783921951667415329350531397605328757966117298723379955216384912516667289365460702863267318260202726121177338745228006686920896691819761571022188994631977269233716343897430687275380494430693586874988584052796790201570115125589444145514726328347087736580844102421940611264089878072785252051814496723143093247965267485073919272102743094900967517706457820096058422128054355210370558861080002673893353642567088745279177728435626464592727209293445180978025245985177388721281992551025410767903818919182601617894367918947701991079632708049318058129247308837640639743808653929150287150887420165080987637979396727076829492714260533357496398803240293444244631370869840175957237711344260680074886364502841326541431566993956835191123422815048634461258297403286567535282070004354629627324523602855243502232403661706258212389746447087851150736682828224810299426152191043469884293531355043198044284412076326081287069907138585649910426087520098982962180378347429474139994985478302680258190500282903269462595729272298968481640859247384199212670738933672515233853647975958423097890079272129263388920816016184991123530990438841573853509651958617724059548696452883149920951447946258898917513796716194034164365630857203119845904390586002567425709433903702793663332887134715896530347837631637445027737258073416604676480514648716336504771420533071687383899197834982340167062091671544869956423206567688478075065005305397129958900329038299172051308529709407128291951010711143717562911646945211867810647033101661378275939333522638517190246263859778871474339389351376114083279180537167964707569705472473585068909622201558641925045127249419359351394377955864891722555845778908807373655392715383542823179887312035084935937899431342207054957623289510622487795358949280755688438925435431640387123171506094680330069759420520971899802531259584323759902079271114233031847468156194369448159475784012141073146541966948644756380131545869426141926677948569752789277165496752483416777280764986741495021535817389795796685963418150745496229327998840192176471325182455526336865323739470074273530341957216313561681593425277735346288256602444975594644677234370728238062602466969288463038322041893336607238159010046350950710391295664806808798536427152052714120512764406994887174692663090982709120027236807475230290170380593330339774612797667977801585217911538613341267674391795756528725025594908651006308118444141730450726766933094581730802886410727187410853203890273275815189743954778385189745709646120854093782516213875000338083397478817299788146216680760940268771826251607336925944147598271539329482484106377799522562396043618663859685002219487661516116251173119522417156115013663643882962504459738112693717801247085148548068061120656724963971651178760270085163611523779574966370557516979702390728568265994528926335322855485509931850614317787514795618703187134740268357801087716664918363219325001836038229428382894526947574512001826080784839377977339827595819397536157715170777024013819021839458377004795185896462552216637518679399221975715064340869498175059613138230182166612783217280161480487914958964179900864331220836576040828677449293373118340589978425039381701186479038792847242891527496192717755480402343608414672241749975555373731548083058872551798948616333624006016601288250477509904156377279699965097125743716259909247764371296090818650639407376204806046908263891074808159806014993400039872868605530783880010764280233173135880136740671877049134198232556439807220273088825447147640378686812634560898428897301939589341159459502672280804447153231737610408070590624301683751573437106453187736369450200151598952231989369800185824317355410637467681388456539410375665680655990126572327750265823312772496777038602657585633453201107122427487090085159649980688816682768977172930132593368013849920162610267607826104479523016096417691864642176549393050284048592018018243042461171180456494528367219786833624150660676515094584552703299529397370658638816576657328180299048350278599205823280550937391170807438584595343057265080215271184968697093778850096807570456614881460797540776197025430719516224116428369698743091201265623323036678739228065884482478208042406871870523335519253421908110722765929423034763586638386463044016904968521155630978738659820270012851029806736572617863687227897334811480635634654549745051154327979252436901137623021809120902445271502788148288400323166036806435515386611789413573460445905615548447581519538918441986056624473501893590755108103192886080705136002127190191427550417935672826421191161571988771897508719152011768070878443868403577389262485762176488643387557981692352886282949713644575434714663825227219037705502101019582568733919753745269987943855998249178781604592930513242149862912351486940467324684518300511379712610928094176652953539774580779011487124211349278549453860668328780946565972109649061308392114600182126443666537297813676184580173626379999141697072788689560713897702090319882643842846116607402049952964023206114460147613543267841726469377043775052548601462873806092909653200332390864008759984152146799124703073622937438796645486226113044958233105238591804588196485125292969308133523947088851004857108149699929165297435431723253040937918397417127349870654434521861919724240397658308642437969852394507737094256679162698816971126736837136916049184778975808180881286245922637561976424472241170779176595218222606499910347633312106730531729136827942530359904297433784699649185488523143977477723984741624247764602141536624544543547069367100355662857174487466020925670909749407811021769061766254505658822416280277070863248014677771781594190682161077568711959346758492298918929377298422711968869686217055096628782694600426261631151715009802192421023956608777620546713834968774526476994063897961084639002055529331747934160523088085968708538308892607779450415738428004794295097090040435345937490939133665255587855556896053385454521458272423799016715485929768163868965412536881175839889956075066356669372783741305359295983166248556502555605053248368413435486400397475001118857292263780177184692063723034745422147714428448209845014858144470848905706584454101738099287572045661088869480252379114974511128094252862740495774300021724319387278854073273692141333809820277748426869341555720233272350689025863169024965895071581222327740704289228399296826213166890837257602684729357469904131161628596842903678409262178865894431902400449507825444197390450613481247224458428685559924971275116599774093140008545799041070100332406162065587406176068682399316366568012174298280320660351763748281090011401059554147748985491603472978867689062893624151892085205896841139057045622773795984407015777974678783678416749168334708655788538006300108271913973253752264929855598333805715558921521462670856495012917789320229957009228185240376824775049425771806115213153121076658780090002459982195930443321453758900831122782097442266202389850489456972416591283315362579872745942797738458712061719757096505746055548532103814932496568644738549376595738059234994300424234814532095619841261430825990591647718615675592808721977871768423087247019479624333931995172327386804424098985530568243831287980932596577624056130430385373877645797191322668616030235196158719904087909291639628368272132292363196371261896238761845743578658138993895787318415978571943202899590750142363057218311031718210302152886629805025824230792358129389290515806571674199660777189617566998917811068398519149321457233093553699200687302112917973128270261777670561217771945288938464690733667026553759068327659700407660081397504174220209392146614909384246096127211434016418359213893168148681452581961221887056717255027905814365875252952130127733314022232769739514138517970556880937840853579043065524689710236259591462798710341465628836127288494964890406096095983061671761697008547051779608337464478252387616808244928532492806918012484682949909404051945930527221706874445376410028340237967143212064624264941556660917616923588961419027814236849628919252148605311531677432016407999532405324486566563470445074331210710982670734800876267292258549335287840137556544207006449828292249314655377407791754076251438792420964286033946114873799711179909343703914349282493046151684532438701144569031195059777444696556666177195208587643342148693942205629913874410317097977426481095232899335232368249245948128236536370015007814160203112284051082830664105613764836383130430896612917578435912426416362270504283829238990237524361638533823297591215696537431006740100120524320763882986239533267293440273053805082264210145481288682714522021748612971472075475312511816190356893334869885199465366852950610044870060719676847781509067115857183522076384879107204531433919803033554531700572780931351152457194164579796839258439861069573429766621560673728894161270393434287220759653751350282763571576106084485469393950095307289191454188723494490479958938851200287074263652171717788786762002468068175168174396256669166691726331243822339367460316712340206564179581565261585007353627613252820823543934906409122123069797410602643556791646499417810787299701371189241455146426356041575093268027523488219793310046969487618034148659979723897310964985299342003025198425037335301513002956240029851127625621970000330327887742332039020237221365471196680874478599435048965385765337119351747893482195032102184909247861286165327065782402562667080129769124181982155653568816270939277576269123863836532737002056228965640603439118738184550139512318466851302757647532554334461619696973097629182933619376234434875001326601097628071477348028797283062923735204477877044476006897918957315972069461736994578118549134455164578717305519338627418321398500177752368042961571057746578630489154827030066616509591406911748502293407120888215109617514115625419362049451897929793584173005272301873110017278804650536144071059767270272703250722738328876419322706405551942651666911011138948594339008428889498266359124716589599075515323133666413369542796912439118977554739183749025726690115770115566070314284806181323279181334301228275574916511074073245513728301881019318121273677924723246749207147618041326165392173753329513361090335339862978569324177586091667272936966494473453697328975528317853175713824813839483836911759639095075350712944581263003594095486006008600105942466455099304717463458377640062936406721728167955060387283953615809678146911577502088618124077883390182868557313508583161975063960454900087841991257834979594108228128800473506017493269559201669647984387098739938575979113771328965081383155257337637111476630074522550520821151183627827760232391213834023918868650417684915795618925855481064424566215201460306749513188762418234604011657341310068408219655840267039809348937519437291009465667373530218629741281383963144349234073354702882815093851741428448381299078253586110794195459056984281079765618257057861269475334763452756800202828110136403620088922125926865455773459778161767923528534835919884618036935870600550142486143506800632637815265831087402539445299795459931646378402903416842526668173789860989138056120729921964708603518765090816865231124022779469881862410094736742151599143764850306717961698415567068258070693843187730570673967564205988843199668796776043215322978550731416675931616353019963846940271401937145386171280425651196192413764020370904580031226223847620314760496878516034429940256937696581960574240493146465108104748642681664787987730729744390725066123014869644040713294868565134284686405204748032937145633514763107056730491433755342365797934933025327120721408799634024710856115845666419104613459003569973313142305437893276190907062573749842765763087450264996178626691468222883324399784333276916597840557262737169885028512463529695510772336214721532810791082755330028658909432092916508472076247706372083066921241362938879448842605890079357994448775449904917375028377500471818290859906678243253792459601851307372844356140488224990023140091082837648739652721557435120626628773591186522518567782635159986557917978235830062217316408022375467222131365792979044952094053904778866671020066149733141517329235028985296528830484326169652342012772239095417889302487488131659669548121278893433031184404769751550212115349516461940971783346667401679505933921127355981786075201632722222486263267864835687487632806855257864726790076750319565289321233606619546018552794286866827218692840762528424661386194682779974244394609987014238906576570481071656941529579292439257118278814599607039500757046564024774433929690144387377313608694467247127584247586243420320555854774750509211826899528588682786340992947793658037304451581593344796793295940447377988073954833183675009015227850555689782959553860349628737224521183080978461100079044425904452496683084647380949065131232406779257059968177713118651928754744743849885327916040307680756271922524216310581576404753938685098553356090177624346954290833048332749714398971709927892870526066281556301504920147086297399275363502181834974839129710677585251869006882281877693420957183399066229640770219628318447503806041524686938259912268590419322216329152660723032048735433520906201884890999800017547553314262724747251392614441936679877047751992061215496828520581845343475332079994817530137872245992293161746087886291802370896822843770024587022250177987945036394486004314957246205390617339884692233682913964183739778945619401402881514605866854391159775481895259256670647001888838346899336615107343617508770372754023423849766725521314557355749137180949874495708421423151215957802563772318708202183455103220804308419464469242409709759381532738347243940339676543396854949959268555584569304519308744377164237360608222120371039501087142672843699079108566458172568193186206034374282751248574431352643382092685896639148306652448619952085215391425507804300815503393130950751558479177340387877688139521016371255957455179758627995867444294468977050152097726365611579000537873129047339833111792810899271295912174300037424360714090134935926569901610032535976089963488534467512928890088265018774601218395963442965750801493159765100705585282992716158177025984270518152235177139138136234991922625081556910063707573014684628745239067419605674019630297169929087505994506245976786098746639355765213676464647367921962192149110589938739949661444467213321653882534420407054047931830715072585098816449190412192484543953044064826508489093153211364199675319180389279400644573894899723970982516632675764940563107259813376033384509187766033034365181415486784662950755494452061746145059809945560199308307721902308361021472351851080910550515146662332699634346026866470978440417768286787596357616783597454793651176145055057314873681702597756157893515665228922213280769968329373156813513615247946549461622545796520297538437992868573084747966278349153986832001417090970669825442071114449205769745651749691891292519341916198426444108693849561639999041978370072695350942385649043687858313674294880079753314808943319958575762681668914371654057173187166499789089156662631899462324579022428208988532202158699739165764659570859198189521918596616556945420952298140925907085276558762624767905640719101858745819080283067566697786138890463380916608744771885785043711778588403652663417264867732434406101922442308437333167175866001378326081200968366283139406422194636781331915697161425697198497051607049486350259275536509618550389911689918005454991933590171337768554911005239978057946988682438559749801509967239930416612735165433003897701342970954853551786093656959474347886302224881704182284494015737921146808203510656497264532805938736680501601712768425147791567064619919613205759482760854008100601242237249713891041532706250929409658898920942425166527808493221739693485995182896114031507980426252221439525547280751528611138127786516900368192799976898703343372919296714200594042512997837293885823999998873824586010170607425718309318226374510313355152729207862277047344820539850233408883787702927583792595469769406232842195393683210062182375426873545782257282783833962869761802182221078321641242902642404378851532210073266831967163351163269614047322282069675333131697112040799373143551160005224066490887432244695054332862804241495983393990085303864078479438685389431345635505976624406504407983957995378936803306834253550991906424034389206343825951051499426097400919754744941187249561516451046240220728727454219173333597398335159420585770185732279498800384062978341455098451832024543722824294238333079312383828486059989046343710458997914317947646568769800907120903206809694070453947614056696388760320630595019120447233969535936467120414816088007306807924420690780126602517581472533902399073445221856462278514754043076993381990034132173636170387960795170895542641023882178606178378934673389592015053798753455156555319394823450965912803952512148023831397974524925764239998985812541195479696770043925509569859614926735149194296822024603336805535508418277468919349983444918096570581514803207850350871822843338918821802754465959769828219657133110350036867173050495090703285895142226198797060555365275839588007535618294921504436347005083337865942935754033907837989099824488588350381035780833385265161625812593086879110147587701413236120979334224958789838734137223085636859325495341622167777665895223238360903278507066853838788365881658247005712831820855824023358969153739756560505352299553064324631596117895708666406903309192006410694102207724217210934043261326957217354765642092318429025027529356255912081114821927287949410889261604253205920254998288244387507137438885614487410664140223018503369491091813174046575785021124516577707111433370251000865360898952164283782365949494127640005317974075829185690805189630279629619515209420124389820812707987063685182938650399962953526462062019918940815883384948957470573631687405530173745399753278701785999176844732850908547490865301291170762087902449034223980687244935793778028190574341508752037234703028560600665667146190456573513829473606161735750371584312065925049500585470888869952782167398238471102882907879673717368755069348314490317626349563476621560692404152464341582829768232582564961140454511169694785907235121739026052535260244653591709625079896539001510772419883975904634328784221937766116664586591199502834908609279871869951457645368963069377245976773216104146051595865407397226555646686649980502155896924469551031551340825954596521628941366727617781085121336011613404398929499025800353510900984195517256910187832054821537234933116732574561513563803448221435534108713582051164897567619335408162915402648451217993500570627427117153346973102073348822392157172512066921083050461298174185880595645413435573697840550495157013701583175170476369004717147451758534254934369798852799908098154925199501815578743696109592191665497961029640306760213309458684263177289874990259693308293423285304583728576437301811107485591867573456842240219389829235699164189987664404516717871880121201205432656939470629511846561117697315490956130319186493729337158254864288249745624736976334414765533207640723961561316444855658027758366043885353104116355455466809593728310288416796712248796467612369338577595579859457749062055196676823694514645224305118017033255264241346053281747111044391301501055461146768074355843293007801360238310987850648282793741620960040375530451120966985855215414998047066143804928599093569213010763742749321505765003551688011264382322480974465592677971989492610417123918182163844639303564414352074897179941337488559189544636299252352456532130968336284527567802508343734341877098380097105261753623386464411918424482132287527535667463016963366506358987104547865984607137827943101531188234574646342153111715591792821817343451009586733990261086370474946999874455831793799814390758443516167920808085526684375684669931465129528493530770400257828303003292636264296064748767500127652682347618803549159693788754617520632545006195798432995948499637086225545490947149191947568688928934304719859821837113276432167314039097121463823360352043739181292950543735745507048016518483047321634674936321866938795974001500087419211309640667244317131288817887074053326259423238127213089168158688220555891455642262918560188377791475547582043899132854833904166880720386544699967697686375509343283965200438408599752131146410814524774657042026595361332029262756093594051884302436717500759056182558424419760038969590019482802189535485609420825830777222030605945348137647819295482061141152925272231662164130017561390915933883851911617035377851209931947325476153113328858851085293303859498223585466267380439795333380425300955959138349604873412644478256442104378695158579971507876316160123038626091922628530631220734523836880441926319014047014455771228362278641597814661041795334709670843487789971269455679948442822534268504908280726467327407677410629099291377163054759245717181073558260296383721064225021911197077844727839718905016746744955814120699148615985826988540693706379993611301546476056604787422919748953538655874766508292752649764218640939488683568667029597842247928009745879600316782066051274790885370703406225288095944150796818583589459504555824975973432662073291051477542476746738302192644291369977833349182302845581223439406811259061537729632871675237177660275484276002302385350965450047480334901078964205391485386618361191479717265257329784553766509039407494562306953963446735478961253574856000253239677378551854554332309127574478570921897784746241221704223638019013875744576908767221275930296960215013431709971994379503614600420145889053164057715677706529159251346199865956843898029945212811633497437169383480600742295932147523339514979246763075737626840741059927018058506503339933049111828504762005828669688243953014611543039278132820552621101772469242537324630638721192183969473498232695957073188997190738252346384671454729500703817427322394525720772279177081854491491303872721477963144262292049614177519178268755111292847563381499523815317075778181655243961378880952504000202051065856948552940092910795093185229528522126796461095301811586280407776709126001514608297030338959818267874479085810473002108625045036511068359954923042102422565029922510455853591917574688749605701056705604700163513030598766759540752548287273490393886384022525593946031006974889887258020080286517792150403502386308231804127424670986214009217946242436153489120727655229142855783142629045906198777440529140200533901358536244041188801940975892446082908020699258657700910974580134301459969334920286641559887390267041123463463715035100243498974598685779052702330535586964826814988837545929104671453339806619577789725443655906607499951892398404531702633644690804618705123135892768042749516798721382309632720687290418469450620376139788010123551592646205855919518988844637578192985107852647261425019347323300090962045875067405906415793592104518965469657782741227725213776958580803677194336630286871481973277338019529440253253831101902588240001199293264041654693155049006702025742129151006785769166366312259302254769016567029517645695742070413639366413340263068947700471139520769789681140050651779431122306279370735959307145793993136871680065031331890087376159530451994407536192657816651922046765457884609152135293146970957065476935830735582003241337692705223529328329058321823775548226210439086320096894898310131570284545141932458102940038307655916337625651735253779327763841080329735584570378174905919956946792693663393849241601740492648827477483459753769005869048020607090161787960068819845738694666089546015683700379222585519720828473578400728421897580526563877374604662599826891023370202909085785450790427082888052275721960198333086256113884043803983025853883136910752818878802131221538416476699022530461218961300524080005879905722795274832244503546136695868243831100034243645633078523029225482114230841028348173266602228685567615926351982741920724828408311056922804778014166180346282795882755550280420743238435564487986294892691634741333207764878732174711276155508839590318487083912608786945577217793959285116593747042699074339013216474458422566660627407056944247391508956117190428178206686335167355014605545540624071953100767268228757685560744647717221600027183342120216174593836116311800627503904336397389802116943468174965479435057317028613397840994966166653510297204902070632667360757587685792611194129883619461219146436624101639919889858369785176387578967025421401263580147752473617525497733826637645726488291423716237603424254696963301914914113523097721874392145041206407152964756693188284571507062146603015514046513089043125349947880680585442935389333759252672933193802759475586745031490153819784613160872691618770271413090108435225691509955744093577368089588442088150454104649036659809250928917885981983851573286170315889630363663195181267806922338421118879460456606955666561808099120816250613417897116768220713213484336672002340567491875332254919898659608218731345785417702960603336815991934788292252348426032833762145835474347226438470713643905089160981294864670231672143870593125529301594502682624963230090452739321349147756324603563541464064559800613534786335216234324187997628963993832772691738941343110750303861856919555408024492246868181727183794146565514020014521759527757736874174394390531615466398171131917120231977394857179059954365989753624635239535689252616378351063553155017817193814972662957457634511851273381825831170780693457672495990323430436883680645351453225144324302931216981069647200073307596200347688170595212494445184766332660676310804464398463723531425889613724741542076024473822222366968031903088922746221993937009857505572178820570948111447638774486367248430444579772988585920816529854654839020285511154057371342889531682943174144725676992014211264607885960705397625986228135547387728586371900273063596616203226527647344724259448646776519258563915068117350768110562645284116630152791129753951384644118067395185478767958171319297678857562433547705869623428882849801289557733760655254715568193571054510519675811651926339527108100798296771273274077486640089048786998929235095791635592991679007388428610889866550191338901375074175798276770816871741496604529402318580494405124183055816581873754089063035756503615768528175346241237522579936894188305064784031533503318631450449873113392836659470916697274223832086874124592709849165867187341833472373149186763150149170248008942345352064162713545741719594421347842251811761883144836011954443471287347226409191929610433384235078763454787339955017195490604643736053732407310333766808091218459773867942358035877582794969738274471707143306625180337704003571181485433842179361641845036142598939942335124098100295113615560893578796390008125830336522079773013087404468453620361053889878834282302763047996831334972047684608250671251372093057238824793124468697505260247372448473246117481045363308991637894233387782629370645492955623299055038213410470750255899885457225498684025688857063846754461374315846940920761850720356327110746793662757617891718212672940139751069630228234211802573858019826005561278857918415504656171501292902715914366830062919989712154142921158568128195226619959490073128083908280822908350402546375984019360071214326592400476836895121973193362878844794810003379428948176004116491560716277471165053911063757363817109600054369350196694015412980823837405856460698705560120547547414411132248916434715836600446958371179099276337607598503290683032665540630850465287673122861453938068203205032665012415232841223814559942134723636926503585198855593750569475079870626308387501971037359031320325563497516712371103472477940208831707428348432265482878935359735477106881084347849457113370143298843223616354635489849897560051883627157808001640643796905945087755801097006539660579502572969347497478074188138810531603050278267784321976963306676414656567216623778029092591663317784415877676112194353772226402542255241143248882771588252434641438217241640361082033746517206560638224859190547556178190635391173041481673863558393269214711402406937549243462079716125559181634139120658637673900802987862385469072654099641454119552573032438957545105123346078338453389645079114190486453551449982655245561019924886597569688139788562216694440588657757149913247800646931858212024612629644302817215208793011450511141018675623677851438779768587076437215033083134607964345278430784695093233552409528338713795900412506851995318282143693002599936763100612963292032646577110705863549620999176234482636005355791030666187688739843818223127640386119555682328737202984664829087481231836937895232881560007647419611904540110742996190835576454273356775036984838903504534056970928629365828561321129587447880038169730399637719544934970123040611144096975979190554766447136263061541956726373091930790708745807666352309285217674888010506645013356959993433385486666958397088749918714439406118863552153721276145212993320097401956230413208539163665070575142210020218506721692788094098956147519446999687760633955460716388995061547077904349596508083771978907763168729588740092412105920995466245077248791842410962305633167262378093194916007053535497629721923257914892649183735958501523574726033724893638503828685802909879588446380545459770735196773772280916357866219529405578581063571211224500741168614253776914747819826477633311719342128568180060996625555506421936411446141450705871669807615258967917338059836882681135401570941321004010090138884746399838671078922498964966925679696788575806311862848283607686324557417354532407428821752188567907428884983741867289053370891653104980162638650525862773854068684625093079045347042419311859141349271159050753654092341325179417209073854098827373709543232959202293444168861974726823300886027695636869943701101609838880110981951154711796219133132558817223359593735512160090442987846636257485453880611576279439203486477688858694139788778952641414248647403181141249979320323494876657557059568164974984406220516219376585433899150246164321774947887347531928795896245136065486635310655698277411474610027208228732946040207049120146853483417101231551947116039292480323988868849118333865452348060741991860193477932082009252177591578570790462766854210252669928217159250985665203563056439741493930862901769906980675786222517477890379252605392671661691573157393776716678104958004016522330977315656445972042344008072586839031730940285996773279811979571656513409671351024984714374269573695402264448505726720056635899648297738012715829903613408724081547381854843035107044950065279701176822085663468808685182069212496043471271044795843606966844173893375407319857136673377034729336255744919328717058295142413284183180022571109383147923010925131172426602684832527512782940289462340615250356280289275049007076622988901543888526346967469730638863719013158783917392960116183370187314885255853823230436833926159369806332601703548163422579659861198373805252419660698600861842552672888191276908426281153462311076194903001072580026124169722253008165937243830426382980530266648193486449121883752963297486274611599875835604629923270827586251566020060832050529540351420083821914625912489985288899492000677716548522291112607687435276120777708860947903980263673988765973654592879378525250847084382188083139077054661615529046504532789663636554766074289095678143462145030018805819875052530095426597274462383473684102590600429337037343578966766842737517976196375923234798295761945247073146608077664334703759574297583862279654421610961246155781337108991884112635071675999834171820447185461946231759226910350368075841341309889014856951273525422150509306789782527898915385580015239025499713284142034210330450657933390223436669057877374965721394221621053984735215894857632546818045677316894560026748334386515890859046145781950475858728131056305380832985078640227978434081169868131893599993832911089486058749944539350547544966469778433521303122978170003558207181708054228914235068047555551496928844977457024543785629932941212240326842796828446125809404098847207098662095580501905121768416324603540556025250397652144194512833653026994053234886597987965726697945049203372912634936127131646248818512788843715994605376225803987149740142166568630358157145126140987020872069303530699710918237481733130661009232028115193662003726618473228709362910388090615418454555804872622974205613453656808433362766194290752557536763070760422832039862353573648226335255730622063618048234311230819953510319519327191745286886126671233771268542567421514558553015539375361582363614435543078719794056329800523598101777388903633924508914727201837115005847749582172902786596220241827666008573814284181196731338907668558818725382363948072502635208280590330796412870329061761600085410048399979460333115228746862294282195443860201254076881522668439213504936948889220907451117621289705931449128838132805741528279353010068531809236695725866961080412015928904739120950634246200084803275855245307131303691139290385685929827238615221413541226760669442558824593441789940965207218574600061647725177542026651179195337662092303863607952750276038692114443506878156631456190126802432327571864131610112223320700182415186319582910906119427889102616469909721058941284281896257740739679164043244069912509553416495720989426936355587953238584395205525967600546697215084851931596291432900580853517219918812158720815057859377821099293195471847787815913789720014272568488326594197844952214215475795593013108743603008727101973695663883658359630969208707270674927826584336302449401061002495245443561889844488530605440413845567339694892393136706260570394441339114558716553589283391149531304751088206585508654134703680628659331600562814320939923755918599430761703271411753401424115632753492111269942519331004323840994536935806951330228520164070648475526315412858312334463406714133439483739873720601817045180815982513749654128787019344296987787531709670738155719157694369788815104111769188289522382442019133059535175186940358081839469922384047031116703230591690136593283576126837140297313591120324977403089887898776108748541068330855425229312492668175153091348053779699278674560193073543971727618024666023655634386344745847780336546347583010162087231985517125269754274846466721092147224208427884516421805347076299624900278195688496270385729560485782417326456002987540747016988332391696713807541194799022644826100931553139048783227949072752424466199958485867128769055542959606327498382642072821102866341112939162905394125089774880358586865736109899217516684385451126124581682831844603733749286828252052512034999076946079467336630009035387629190828176849196871948634332308014357565046056913073917936882119663629715297167955427650327964602209734733122185501156594521934812837327049192580951215466330044946160242147472167965464454145924445956294625750368667230949384089488517491563054611152124540517633449137086066459906677138013232589482733618035447643457727963045174310991182132993646799866807577537815705307097765809302263639965289631888738688973164125534637884047595381223409119758101675310564614246968679721123635118982237737770227015306278366967304835833317798366479290928085207901522462283824406460282375297198561567301937574119298405113538587872558646388970195513159547576615475848115771607252246252096213202396127379970261006938277360886811838790614629207043606502982432742332715067175805843302245553425759895786159251928588515841639993867921375990827786145143528144046799375473626085910821506678740694746175229392297517492692186259198070380082638186878453769193408246117524285713066543429349575826024281792204374839861445888656238723900881075997301436761246767314256412888667154723299956237233744623717991232696299709902352405645885305336624034553938386280353093960704912284405678677156033790324722367944679592950924311895409554040392568438278814418858475031045828038635813746548976341862115969446785748199754434842703756479428723832902281845190778966348567967787680735403086850560317529892390310716993352432455306487801387285590194141293159799100161622198243115012252778109358729723291145661010085516355535269503408753504751364944139505116074277363971691956217946666199484926983225314875114494503990227936840263918057089944485055383149594120802528376099429997691473918693771311053160499317875947918007789349666621987574666709115750190709407563425844033697254824058316054626370557943809307943808256469532478623865696563399662051997859081858391493730824178786709322317893839813509477573284791841164441251423864036596401947375786745968181107960013103343042567758186085075253749703415154202321986480599207437025917648963264251748963310363227373721380402258328911244347285486213368311768800968398958550459589068619677510640542233061148823782046837087871992465252266362968693303751821220134314250354750764137173134979518707930749071081839100693317756953300308366224676036586021234069259247792450775232375014306393608411906046348277697093578065382023029238385984234034281382970429836178543047350389432588947661461738454356705567787245963904407432129073898235618632307715824250764539816260527663144202295664649410828726719850073549664433362525936750282059899802647203654285601293475991126758656886685623117920245711549540018774137182594472585002476870585411177508360707319456698810541493594224203556226436168894782201030568479767638912887042744701372797206416102092710048656121650526813261895933113454311058111328460546126010455595396245441692148576790804643459498878521017731547088181297785244065640812275409085944495625556082905858981693224392905867637550315416570292501120779540291854316102014672617983297501232585117303834875684036917640913830421981592914502710627152704035078820822420757456042165017652045053158278922832930173722763056199964167185679348594040176337670211789436119560757100717568304618945379032713056899675022182873793314020575031115462198894609394926703758274145706760467904029275429383805082517835124621618654291056251760244117080388998339934679101083752851588044547508167816913660080184155791041149965605413990551558734865117373349781049432711706509598787191492415946077520525333827928655434204341781118454585370590385423690150487888417376504555449821701875458569404703069375349726013414475263695499717688264081191175600071863961612931290044319489918825190358074509891622411834130142614707337070279613778157039368650385041679659955315643842768803947395124528908589164111429319353890568421121017529614786412954068101016963055303671383547096538964175920505362560189583215129038166617390242682298786436766570856097960561186727693237562937795949208678279674888152610326638642218890776671550579926003685690315428082986402314436789289497852615982339758533809500551909226501193011277658752211218581093602330421130731337304439666413003389613548168739367177889998659487233085466897934383733424504095627249487971825581519847594275372252625621125747061248268835881956429361668316467121828460278913082357672782845992826401003953997465995216993800284430299818902160750270063839658504816804704379645595610127947342236030622663940345467997985663302921514046434281481856359353823930096875043174158178341818974669605432236521037192034871715951140404552597188992835256948375399114503288564200981385617049163600824745299570529114109151871984001557600487206691958474980406085323473794229628437253761019263250956839908363827312103865360379955214785713823319404753702935820609627262513962006839467730486694598144170718537724645213310603342072954522433182594832887469818711530612874323864790896564132827624072289881382376291705737637184001186884428398269484694562114715995038195808664250462825778073504830984708185274123144955083501973940126374968135317518447656998722710186533500697510243323855343324094764767929396515957674529648230271039313911156956329971614611871472694654278692080035388094708581753451496347827375763923976811752656448761814002577995074283440286078459823605126859916734157246109150005583725868785168447367805748876338627968639905124106756241271676132706943671197105912071362879410635330520736670406601718764051811012202505706220032663425509576012541464784816035886192159284765787042722373411307224375742894252261417971731709150382314491782410648323009749402627652483305551484326559009128457014028677899527288963791558243900945047929233746816676199326049749088208026103110090042565022957170869198717466222248427724970375549524539122939209591374932169633833470995310656745139266084724556929458804674825777547411548385954361463328579407338095420813301319365697001118116273224195767348228900080432856759612325991790087043729056533785423168890191177996738187874672544694776363109542554987609668328649962342500675668043604446417260553114865068037499003707691304731008552192032141131509814211654111055521891288906849410273857681704430343203343484492846439600802993465689984779342042768755419874039509586018175191817641032077229542914965729726906086425737603270015130182030975205396878440177364879607737502777954666194502332276903853234157935568173241291063132590608427675460470155603857594961972312625156767468728444301647167925756402452778093572626945017332784883676770563377976244274297111569431570123263654114203399396581180496181674322038908126926802821245155696769755950118030921341305917695378276367170012765591220793161204220111379177000154160328836949971643395073616817097134688693933274928878530963244777059634019994749122526196821300477220848598049523154839627525325418136837155635979177619477472675668848951126860239850933459778124646180510378578186255659779623197570171709593938937734705569290701259620410131164139899798185559987443134326692752441458122897454479541472661544043352226928370981685448453427908834589593972368898451933714465579929993956867003563590614369701938250875584132935898247134935269598856433535870160344121449969277619388912822960155402103517339046438352491734254177372846325686180203531549562911982490675822166730907437684221322353005760636491908508596027764559960270614781475328492664009422841161958560364995975140152516411011791893512194471326259955495984109760705741213724677824069714248638330198751000437666607107981771386541351492526337597656671184230891611371011079391311410890034340585768148683029319168406342918429656169489862366354491494938873253470574763798367693026817136108938242393765580435089553033602284746860256572786664604494185901483780275510447118861867998447394358318537922467057844347140318656347886592278984309252259007749460159069563034973390322181751833784673375553319106852069073165316698172852086256608932176387996417480198890118844519234928019125006556055789052157875925374155843720759999086389707916542253849907885414380196736022349725599772958601063443586456384612095389586343963895002671340353543987759397010043743405474014900592573650370827571854479595150697777771905900024149351522834652357544945583394308295382352420948196158082657349584811654565200046436553788923758207829462317948437422047570484899366657075265348884208877748229529999820333491467530000856281670574019823690630526707701309304459322576079175412978192980710426639675098142241763755093277233821740712872664454693858419995398439387965027499689184313718368469848341448398321239143234737761208964121003369115828845825528766801618286498928799536531861050869738482465450047467156775010651273421010241658555066559450696067147472610197092074162609566202027459499270810697471371618382840785393795841201466144850210949856135914877820501853900672649257686406582080240206064316162431357341402993773520536631969723124449357649924988245465661767981198828170939403706892591753876635243099112479462125551288906912737194910399255922603380961884217416822031280001517205860603359727722231838179405012900810129976585734469765181382282425300773315101060139392073251587224698063979087524624094429750230969566686970311706089647972143318111271603215496363966244001106439657308758563411042598314501345508183591151523643510807753120821471557367630943277557979119241253069589308072684864359778203204359594069116556728168938889676330562583472167222272556418178650312848935282896025497549857387957619681556789346822735193846509261406944192238836223825597501750721852198165728046324746591924948367786266443047379053208233117538122211624287786026797642880827020497792002319281322752490977248007551800208347859347903879017290334773613833101502973746340643638774218438370328291468723841691258442402300579293700753519997322295128713116462039791487458958808735614366063388491885529522442673702961737221607736960989912356722293928239429476707472215844094313325162945969393340741091450815785336829605828292535945152856323026264518031864963256861585033983608567899469232257674686337194529651137911660524635678123756911319886305652139487912939208864823758543411806492012649098900100427418547047119901141191376552433074486059223435196673803017229516186412932571331717787578207104466668134937935384795013674729007650724318602156354295411652506986567247298376733561757601713161475442085459769619030731633571791418562822129052732264210356813161929499090436162837579003906537707006996440666083728741770586874514715585007262068548424340898104427281969343531384883061414509382330828855104599625750060850265792937181575019458298850531473605076684037780496727861355593032340671293230369012075869598989302942136499013362707714311201736093486410308174155475024518356113433769622434853899730093534295036395704140459691265277826598418142288309371798312941831081487175657705183617161391273335583252272020110247482935565267054841518069575393273427396543626876185609864899921401896901648601538807396298413871067299925513030622423595706252447243233253667624678105035008856688077398305290750566718189925339242577866630993654567762756154233682646122918939710267978220984520223117008229911650899454677611232899019383090945894618078258895975550274666509188084698020780793633174298693727181230854269133157574667406563480802278205755596912616939008185081202184399886690391527082408012983975187821857879476609480324820438404757419168452930874815241219980207187231261530598068595682927906273432701042764170928866099985168313834153594345029473311151107121557017409577478988861918801159428480228949663164775996067777067200429665887917185245009395222072419249896855512218443162968394120805206599055693014723892490825672504044521565865104252740610690005092379422203528818582618870231247102408473994741216366098188789495493189763657581470205527992301325330077689890727520523929017670133891922873783818147096440198818434499304208021150211987054258902150617635789401506894493473917231005943895465019849980823569218470262124868221288035597284269693810080114404413807010622856194909084999041998939945982661236230119887941974861059994535905965579541587984546426254488777105686476909114559672209089517549521397520411790638077358204232209535200546697653835550826161148645852667048854421896125737213972739001328613489992795779349770645422546538813574576725515359276286858810266175673586205141057388322821377973183787568004405551694247241714815082502345246903591442831804413817264344752524189652371364669793853774457560238240008224340991873825235967218604331345416369020328527393582771130402276457420814285731638574106321165173494133903362318679782564802317874323909326825107495777127144066792409485838093953144086748446650632988411285570012481659420907460033202504005064004026168995924353052956036403259000622721674243482927991254054838786791564474975931563780639501906842876393750426256084667516024795214236569035995686460436928818264037763990852386535007490076799728413853561752434904110138361368677156940329241630568808818517311748171630092329750869435391266191510966919239084584241554994035051853982208863944346882046255711325595097047151054332599550833615524039983914841382381741830170885953204968455342556239694909900395163301332817799626486529287968844297305431762483029458659458708763990286760400491154826599101711052323459079292099809979979832560162254534765946118766522740555977103744178829586991764055816156797821528030212463191566794997790869875587546966399597378144709327635224206594375946918859324458702545303313307646680896992846813250673693952752072450110439029546117312448768521852815080843660675087756698862835282873621446061848545921963398884069217549942886189861718752609780822733642612050445335654842605033116586859439335307313776344455981066281631736840611279340374766208620005886914332130891771811522535998060498036403430543464767545000351364971375515616658512185261974839016681919546069671395362319050209508853458928578875996779361939071557615630543213606846721527360492417682366554671561446001158925639807014670612541894133366143549157283163603454439963305055406660540103386971650527434388792439612348612903490708363030133189522730241214580940094183571943928830370198831502268858005814712359187975035405118628991848810194667989065562628913911093537041032080066405789512692719142494806361841408934842966056503616860392036508618500113014822746882762208814483996552902965066008205293776751392125969711829999920594515929126436372788868174933564928380002197510222347342027140295471916020714858815434471373430740242228755750645543225471949610683763344232238341063027593075665414381369598662767979414981871151236805372030638270373312257699360309469407016650676989936108429228917380570595185780236147327639897087590274513319543457439207272219909968394327705301897124621305461035040203706343735135758985274616419410141319439493752417221031018165847177814944104809808523470515062304310410625986294888834855932146724514326377465462993160513833600763013101957506702231016275564557298557533942460194727531437857836301250211823073779596561558315948153032144299226964926219452842030950420965256013156234246653725100065419388192735622230691162242572319459340503216086218330094277552566634398417461663949413628620029508299677292902563107115612668214423002210920679229452171074852737817500811277539557201322559823700795037007592396092556565103150386972340445812279910206632740551583020396337637294237100202667712100179361037318617952996184538496033715399241835497790597181172397407154558784991829345193886263948054986416562919621185069059965383390830675941034217332104608727338969602749148210155081714763990155219442881335779476979914637400478120790827407140469308180834806667386192510113481355375343152149722794452750140101415749548146193365442146137401333018688835997314285327160267525871748179261571989866377749070984002470963302562319180583094875719965638544179201347176530920749453873753210373681404869771464918089720145970716185128425584648272061040669407481834520903394533490636934973278952110354227402801531605191469009839231411618855502510294412899491610622278574564184413646597470205386555455762702097853691010078248637236117059998157569007587224546264697795338205008545420196909669594991034186391418570461509751912092254368431534661475258820282110060898114768902478306344105565125420626059471190334159091758949139382228768861562812583735397379158932704486809148838927487433276397850695784323258404829184533163763279169786775782069067768844337044014519094139109308317537374506830093540898695313476238122033409451340813007348435232260683162113560603951112426078476103254501487608172990483436659841072024119452267650466381208308178947322079334782484431821650872225839095133807626024657376889124182944244368079176345903887882450950831971922272032182238723730571320513933055244747576269157074717896628413339447507868091884824020182686723611502474873019494012508111671611467104984895499623369914201668596633545354190386482137265708467515260840403903592954647767401879343521014783828631186358647191219447777549720481798529696763532966630624549680581467801733590167610364178686564582701547133658259334008097529650622325756079067295930153157472446184194089743331528259006958850821595167213194563867009366308669176694512234595931803359388071724131263154474657136410921521984230539953615509397446432581715147132671383423011774759933875396127578396838982037190839968559612203609029799535120038397233795672129695339913561705634990284370910680443439860774078851095533369540234988405839188483838541510854569436563686193488367965907983231727386009541655526759311605216481068411718825902095073494356664956176520214332845427061726050846194708317119572270916495277341688021814928334085761652024825503398010894155851184653804881234466684874098737339238225920179107054251499126302088925185713998562439007075420493719199904483976075391529227876262441384477860847172027107001116326378587267876119132563712858904850080754403508195941565571382164798879982852946410686145967952815094083045285350935732929447129450670585705141831427425091082805253559026824021085092527643930653570986711817801822248997253718008043210651117947797801640958157485376746259159761260583028527613234452048660355972882956464986660624362725737147253228630453967736847181841032382177294417608627282457110683915112639078968147427456779883199873617019331678411150487418868987138801052278044984694313163516593690031875397822893277650308830603272003710147283198123508831281025325373964155624987452380608453073475388576515660116258243929651933516722621209866716743803376937080837602763124437444730564136342047635443680066035969873025877707921664284841860109533250499938824451762937882389250700521246482349692031053795343200167719039683370509504761055968380208107196214277913746189425060442418810265920113533109378560143414832961729186155860438693835476166426913507331294818834989670974283695748389877276858951421568799706730448424718917121271103371310959151916741894696291563765132571272675594640242769385932114857494420975006851130635308261488263625502456429324997222951680650744340285260932257109444969955661928139992771670893947352825489257420411953200697118206348053443227974358821897488767203227306837461772864530921877148954102813699750023499075722459554542657006136587627931566229165970323238282826437272172796871440416867335568586992209500429121208168014588281386779959015271124788389139467714087177755059044204426676661262468125348422594167163601230763517733345743394250658572214415499432436687363252218671202276483284879160058152789072012653384995914438350377688141827400180679395436765470614311616124701750859423877071508124069293616278970291074868752457221902541921437375940557339242034515023304172285928626181570988206690678494829900403687484443404226154910794666972358262977550941717693037218372659056435341651377014610060549383516421216962922552877911728808893945419067508292066193051458463436420636740650013616500483763365883869329256123392771357445158597846071451643670449339091134757773833133784182129113445766915384309747085476525317470094828372115530716758437106707959146360337619513048243464699977037559953478278043875148202994423664937865142434900352350296755672177386468299623731664566891690272001630368431952533995976418118559617947288126736937276219410037624441980036383740662395645224903008324278720766095890796607339227900361486232889660229823607375410770451734966757255221530770133833882855025559309750126015310733543917896970736063923284147439349607778189426813578277021013336064553836112808087250219209351456029961050088552563629711313774802638405579359176025683797599434933396105833735256184909069315542434534816124864767069416317097126412440857435384891759499241948089444483537346322953284260944886534842855728073106751419362500584688319569728389437706028381338308851653361926349595080914163290204242538658103964467940797710294589989182503895723340711923772182877589259941165780244353152912318941316088270294750167763576779464010907804202868747795686163427208028377941286656923745397792529707691887357660359993448826997676611783692587555154571440687027259901384291083115637491455366721985663625591970248073208941038799749004362998754666897222634495709571284324606185868134940104591592795366930523811001534724244454308632644081536863643064070438496626893708945337316478994033073248990648872530719454240714123240657115130099255540643503107038561969822786032039386659397848615389024033512039045363742305469945957983352447145935674254993085014305835439860997585809633241869891228028075128688839571208849768536670357054291790716749526013864527928848374982013473416093857103757327294065595551546642638525838641820848348602057711873565141480262310029251558067225837509229807120653282530686529989085088111582389983063275555919243510515102115493995374463497245161472787222377152402331451332121148933867063079454322236432153976066688391734073857432286959256957613652357406353605141384750340276735943001330753842373781040756141559154369972076696136898150456144342474999292830569515254822351261505932951711668395787995930810313697208264913532910956909799390768212442626214041805103879892401945132619743838921170652668149878457315996275583757771722350121542883428640525643009994199216130858055545265112356604532463144123700558521776117177848380129709009581451429474356876510615575458259671022848833701017685099722267284683979080740013251038565013924333746398445352617288747434409610231774727331384836860400657813491443996182396739722467520535038072663566250270893886887487711135395951173853870514906871385800518897822920212366672726877184035113634359751370734578806685784187764003192226180192111672309981693958876337908412654151072426668222849497868509218568560779514485673713695892276510634281037775145337558957289064077470335130625781507771991212149190682494336038513559617261381641145984116003850191092453489749636165374724696961926817173048823154360212163923091368334480385666617295540121836739562765816515313910501832515785478813956861932155787599461357357876858423202121524462476562614878921197651872933839212047625189286362450952191303660279445273182958075294123893055632060142756630993204221933701156863674173414332587935470229458971720151842002081538759428877552814370597069255045271340292244907579838199061379838475329143287942011008157395628297081377047748480990727493386921591257873637271404927746869995935609374132855502619253881445582380961447661927343575340659180101769267229585831610535582954604874446430548249640624005869900102698447902793071215288887173541411736858541090889802157120527746455979735905679173953329405619256790450596828967378854064554026750697364854488953255546521334909673021453883078055669384965410298583195650790929841748735159290720162447320653029439266536304395243269574401537666299133075141001098167243617596009632293458109890881017890896051937258310230260193515452327168807350715058215796702937710166494468717300782829201754244281111127913078630649747752384979884621695964519909635862510286040267078323935544628148470656707769498232566953362856094192661257712613219820484187946416313767585404026292118944296584186086588902806139699500040846935537431201143898938574209814318872651699095910929685852173272839773879415479788607856470244087516067382798289705548992182679863594936370812511787132264771143846830898272504377615223355425746800105664067631446779803359509353985135724954020082699860070810268867626598722040707482447023391731683749558308108628836791505725927622236333010509661927505875420612676386389243624981647535375765129503703689402686283576909406356569548612390771403059874493665854420514131710002070417330290336727473203275968083829663298318643284208556565802038025777888506484129623841572726192566414015453748509660254861198188749821371535666838933308789168252903269365561774652333978640041120160013883804990380341759711882731115662219942944674786411091091781702472434774527789899358025312858799585990292614759724140994552497591536572339176515248143166968479195035405060104406614124118879048761538361444947256377643401491900031789649167351840490136737688530585912635835946373964729270144803516310022291491268367475657696533496245049554087436570888861479243589999949355796414802470522108814658170182733338586961195975588602970473411106019053556607933135317871554612848881945715861497614281217984395117902450466432905084605020959279486038285594671714089154609344756041411674593661899908824397309472554936428938259487388353707906048804890482196422228008607434952462658464430717849884949387003048325344560886415283466489494391707244081331926213230690272151675231129562675438701480932084541510347754736888972471843248314304286851954519660561726025409436038402502992503021501570400686495262031371910775966022055367101426160125659713853405121527029780340696377550579475183153571669831066091554094962221236651230304260632228806832440288756535726047776951541622766466226057194380602905585293981893623567607605284320200555506328431926548443257591057546772010009126353984786642570515512547998833968255351398978404723165841896171807291535186785951334654696404304832573826419114226868964399236170361466862417716958281575442389512648606547933792627908619171732493818381387726186592771121194051327888062989942215278988857727622733593967037805421190587800834837302783553809220529051575406828189372860279936827946269177524483444710045265051413063454176410229294564483756400318108508163708365367581936908711513526221857184830022300323798673399590098247272346437046449575406223601095079225976629709063246562974156596280476208423052638162387975207706076416819577659983214691102798442312889621577179749768746125803065581173971648454833813069368857226210584137356092452182303433906564451880278673427794321599324390306029670638704282248785460493365537617973648482040876583388214472684456381546000567894585159421553367882097598075201063073173270894217396007009486221809118026255407793491968662542780137703417999911382473479937597238934170338226672022499406849561479214107860293121921354251179233167891302792219011224539943215392249676980998592448081564034968720643335055857434592607810543071484230099364004537647599552827881870883619827790190435567444642936105656772113607079489204008953775528347161251966378881139661013019716773511682746278388462548986789620870429803482871605538259244141757081318078128105743286417960590079277877375988888662514124157635289532191992238656287959559981870467824903051611693427933176582753580187430530817534907433084162559595070885704023020512344794841662592249530947356544729174319135956750757752991368264845302989018667684910631144728834345428728977155228488550742861374030538173706627139044910079283682513930537552572221740189714669622967182478645203701560138568640362915767941666400792291250019068382337561174552539596912191960444758542533449334666339463440006841887905269619867024574517966625943597624644195937700381432855390160017880132316185438002407108199914105542059665286950983001435378035609189182946090487122344942753622342033066557658703197258650820764475944554602890527925164405375189127618293324192927212339648259502861672129800344837727822016682700901647431563858945497101274571353665285536025280582348763228984915843073763751590973966168199396153364113508887325851439150695510846732571013469002046825631304847921544572255289422234708610511134554942984560787391894487206541948125246370481664228481257321529683019049587360608440783178748199141913961005262292518091783524991948202596384620123559265115195706342219480115948809572221027248725448476426978519495169120146427346330153346292438143382934802494326627097153911684028488802051098271354735849986472321415813048948359255330749056474291166343741912596773642658828069211009678464390760955388755752075952669290969542372062784875990951581291491761244598020812549090866962352208976346335784023272237169675522489919000571634264697662278567521744703942958062793847544535655582864188680998093214826308163391530954800575979741613267038927991204228183474113179858236077319209933242346047774945906736238250899075386095768551930501262396085315132577723060495809738387219567474129711026757564594428030311545965568799836650091736100963734511647791657107803307472687218225474665717272926878416491250221140321991115742692515349498087039669388713629616620071120081744973764626437597870408963047544451825098271785790642470505631493688800717324338194750031196005252471819038259501486890946072125842889911576270041010485545346654948665983560853211360116055340797056204513681988594254051288064144840665058299750060084746952045211278602371462649816654741438598260211166996541202881515258038249830796291378265729338181893639901375534918211477945216822691628926743576354049969914669281106589199619036701811329427460849786708660423379363759221735710694579613461618914311557944611699028163590576513457979383476652134614786381297166479201363977254508426755921447263356520894813834224135864708654422122580417786862416539458679843494113891208319708618693701670694694516675529430769232240774465113460069520373726547460434475382402699883314567076248402908436569167521653325297741356094158915168676336614773848434754831284267949767958509872787590950061081782136527397731871607687969762890678368080428334291361191077334557538658190619415918438199433001742843164995934343203503114382476630354788759920088280516828941007185959112726704011223127772982476663146099212904775797752224234168570261183619522327426052053711783096001609928847746552610959608024020655624556918953992326373924635413751940263401172159109882964534258792432723474635766268897752060576977634097825081402125522254796515463464987101885725377314678918678917341741873553089643920452725685753430538486239988853251200671895851207600468987985622731228823642433151232492023620042639979986797824236358467398821996626827940449616321775165494547250983735492644834465557948513131076137459344464549313150026486190060168686445325700320457574576829987003660381390439853699032500068068718642411415431606125430968637165355623699274703245722467245457134960507368344558113730282683584578371840965680107123749573828151445606850950086629483829767785248314089418791075025651672430730684988837554659290231961518797597179165664536937946151689225355243919523155145766677913303999338302987786727847199301235102637254757006874752922066478213071624443558989012078192973764064017183986578834295154972353137364189561006857322826137187009517415358602095922596574332597221935457456908285013469091963460122284411163336168389826848525934282332828361168320165785275795234699495918524674758675671153967470542400362929135353541855558375090702070926284011527321160174830692718644574074548163941209520339146699077869529929687103271900893717258871251719948016930047693895448931702999580720657887744635695612339265740265825430535907421487029877123161747864220786681621771513869797493950486108585267928301224821249088478321435271370030833768709506743002095368725498596673588071913770385718391502934311533475087356725721160028919642370523463202173835877888098963125090434100390991977321653254204037318600568405515507561969436008719848513658663063167810537958865532812814103288782875850464445711211506694593217169470242450979455768060281097332106988419582298328659824544626060329842612428035224476497572011447301192988037643049369026324080125338191789875871408889445077509884595275270405952141920706487661474047848388456070688278764165205775981797741138921709379173429314215683479469167761332894015848416735319522515094366417064582139884180631145215381743914363621749602313370087252454424188648282659742298103682988199374771819607043260381902356568162829025060548283738247553525177104964308179090646991219227002755982499893299792573910349499839643760523254669484760826760601712167562592641665131080410799088086974579586471045518538233696064425637846791193405172137096817348370193938493328605142794105045216094840700584054242070519478303713852837217558532174962801038470209172523503419316622967419178855022250286120915720995211958877127712041411971200541167322972948534297227719699824361291576968623234616344476461642427501241905491310991583406833644071307039371614815659437849179343848808650654919193600053226603243991513353284210914857023783784966606678179306385109451782488983160070977267133350779250287756801526303844760748437866300846079725290082547374871493892479575572597116255094130195211381264345898103404283205445293785799065751301986406302074708286064607690332412973516447578916771269375813675193413369582244755654243850179331004461720798843345131087887433032357284210860992012123456441588251015815448085804349142264466450544007204098348237324388239356617328249162129505727870720329678075353148138531495565527687034428460363342912935333456520926832845749155760541517642184578432010089447046999332958868641399967751663452213010569483639286490650319910506290218914831650824784253221868282371629634536290572933853964755022281458706508277291902139776068322754043989838759482745183277038327983886738166498572132310494226417858479594779029330743420544594314255384577840378098599916869287652203866712231925742669744695650301406305066150263500806913472203007659261541638833305512846231599863564491744942024842345997838337600760661306570009027751686846710538049293804935610092940999331202638128614960233752940476859812799109290040500032554129145420069413487932986832633019338912809674596934637797107443873858794958828110468246993620519827779192622582270896644899911368890222530272056186785997856279658040439693484118016939473491299980474269329554400793211849462355883651135448987574725173618575261892677545760777588877042564519036707089130654808656145337385773069076112170779364316037715600393895110782222129320760531571290587404819146096602384854955170898083630053380095106948836446389377464943230344716389219746128614763471896370138181826195907124526033290490366337204404970122431475556279717757936439633594001628081823242191350470634171688561881726680448006540352382610087694931941508687689490998703277361224135127185551706058707003933034032028242192255344654713222330267685373631576914500736304798024099937516314057257284344007949430494521834648811328638075290081558617571441053199383963417410792092365091396515830140365077411186610006014049243536542059798621030762387940497457839690843316030084423013770120930433208011715221797891305225591932948540872520192496924404583397222159537031399006322368642255312860237028384350603294659706903226777215118604350280568293837457506464571813230906954379782609308944055068998152351257793655369036144127419941282508609429541890522692277403313513310973801255087905745017176855249177791102481521524186524338580739467846901560345192659836143881271922257659752347437452333846897823173839361653763709885822779990988275626768287855408669406585423586234278890984896572968283117303036632330761393440355928598011325273373833025230655559975181676764175670889338540966975052426668050042600831756204648917216005229791152546767092439339225541617580893758829638003287220659152373901801940960843082036708313842759701057941287701700803927400386590029702875583252629523049230615159360107196084241941681858299759798101236819233612737120120531722409657306072422876834111504292097710460147063624232677299061833892944586092895081322410979828176776345589957888325384524578831404433178320305311108954253929160053028885984293080898430805654279200795349973254575014318783920730679989752582807998508947440008464283932929290705282764749831050010818717126575811747245471852146411920183612007641269508287076589085598335928488784023765136195243276174720053197977004106660407239717689020785788585911124911108370404668503122868042921337799450300027309963736508857370926792629175430584090002288379424839767176000080126778553128754828357962458928598944632252851466516508025091042279886925044153979094606523004129224544844046043092640619318696090936488442218478432850064926724760471814875964524188854925074841876714396805597784320060271941149318843477179179444458093748285692488255512985519639641216756812484393718426130955310510586425246177469017724109879361087892399269935309652797354418654521266913379328255350764150328877874605691943115877725883203385358909065879844626831268607047615426924800910801279276110582137202955011849911664743465721619438277857813851393266542578447721300580975487011805519626025496654328477967389376378901420083222404930905749689417404594098491871694076131181213072783200724296279210020419623474183841840522851942723884654128921938003726877747744852343255808621718987394635675689633037104492437385536686884156862428915081620249256785397746768799772195742807456955499988986892590066719067692237291263679075083253467975817652896001481828618392372600127355284331550580670974915804692224541143417291374420275797729678558816070212996073066959894636300568594373311521645158755481930324078633896033555481423885648602459452997397308067481245539654216410328712080514785294441407703423719791921322221287949919260379549064325243080664803690644937713268761402280800103901925831858502978026559135648007973900138946955865851975310898958248681440556629748469227798060060274197617782285184077559534663754891736097627666923235850722473581324203078718627355325209772485596351559817718114168404993320222195669646219244508611110255211588977677905295678957826434289417299519737838137110813755960023469918860561830871256273438166348642208141427951225348941359177706406867501367447570621420739964318358937619063225652067664292441326377943803037645435952298443416889851412099364518728441776915600996524095517563401076369527425765333515101273254133562628653891071396481784867531002935754124120435997206483619480697567346595741167582810815244461121299140664330661967001999537746934511134019113696124773157698745948212385010629254777640692956603928613373246719343285270290085174145779241930512772103364467547090334972321568660162594387311762041138437317910370660200250721971066223663953792378275912667240545386089238571910143864376980791243042457791166404046259132923739577189261448039424845284439797586718427965784714745185337240584428807662596806683457770654571918985473501278030468528912954435744746128165725721504737963992648436425604983872772784408903328101488806423681589887620305957861021561513941853028049690962227965152213020073028994666242012259886820136919355881323924073495434804544766979231616622634410928853968227858466638540922029288805659387928447052884292052402039703580371631865778067693649044109437999806316702227627286578321813390689283757064120326881977742824539368205452655485509118326608738473697348454354390793471975430175467681931353259891949100011692919985529131645338762637492554073179922358550586291575431210405674293144270852463538753735614716588591402464210816751901933050014810174929605119221632262208663767415242165505623751372353579816226997863625063411794007289559328298723314098933269838479938632371554194893379098191865161404771766633961148578949727210603580906246380583627584875341838401256523536173526520249494587614347436464971361345014803901897485160463583586235066741897210771251580978432734048401051934145877786727978295349588996951592470987755245957110562110213059580789415602693932997396187624351504032641638180172273658029165125836756607777693187399820881125796658735229345034099075050349530708387431878313870235129642917965738638481868821268640895078778988134044210371525731769646988480285006877599656253009170770988787399928592618186830039361535844632897635309008515312411401926109799394026539997848936998323956988348628914715011816512751673569031713975842651675582385853011752832648359112727839407040800123045260663744558971449663927085067149466173816298412481541142778528073373524831225032921633359529003870675857140412289404199299597335117742987412340109411839253795487069291493513748226199580473757782563393274551035814435398191567799514275709484365960120232229903546662897951811909324605179379913727196916261717977783489016777467824096985895780100058141192244582377566816575470570251702019074395480538562602052824712391543708687378219932479928011444901056700923057700456150150601548807417268722282767686161736430847791220471575076546770100351684650799335495564905088473480523861944406471396072672196922997198668337324326631799606630388672169258547760968894340007222993686377064302961397023452362229839317318656786098842001305168853021829119965513012639127113892996336888756783569749760402762745328149353898305502558909007000280746441690310118386040157861536172182611059541979505912468015850076185338333465959256981375042884654117814486260232950730897445939880574547862012304303511172022165548809114737619472122493916433799334062697808704385297776826222416280701909946337506487774684665820799300255700453817838149571214548589556557234845083967331217645811401111177679374945247443788990433201645322658968338451135441394868246103119180377175049802605725254930291725164744615181227706491419521785993255902980956148812323227371211384696981869328898622470792326936891181688048608376638115182898893401986008485537197733922019842154478186081336054172417042816585338300888853243163202598009626490210807239628543438510713885413051605217756520077477991730034961275622726337484052843731313469480796355278119660620025352302960855353925780510788921858467660457123266496517594837351063039448231042583229906203367168440163870838144184726037787249593764115980634262739179572054373630440421127881258470507619405293258551046760906716697270076125069349692323862460592429705933392942233590084917162162750803993474640479244536364326136247101863011412479071569069026673457657847686961184151819873587131542806218662346948454678370537162226149402433826890722381489437743497513119708295548680696610525213182374109297011524113201821952077594112892135295363768669464865568268105858233540745351662439665467907100349386664473458981195844285374191958291484967524889455273339599498480703903095473169944448221502755009190903163091985620323881994470998271227115726382530611168737011126619553483432149174920825439332319576515206032461827472591678118260253142463738243037733805215188100272852630480315692027151963522434433861400145998945558230263833672724197082894325397495957466177013462290065042931265722417775438527735883583622993144410782524689300673308800575440019531457365839899100439737807700465095882704398030865323264772072715776881760441093338103290030697357143779664530360342231724590963345014786547728044270442512788948567753507168457226826462034406682552412292574169973203187463397409785184337252841998388592311272849430122627698273464898028649724249486026548379068158194026055339996566915081107617002090540407169434425703896038620307986036341269077649539804621690124296717660860729819071496359140211702320401838718559871203113430765385069221083571364097088661562562008362918693868415258048514368457587017259532344803347033520669636758311737469506318567394342644602810737143685983466215546609458044366406677109472030985844274328806741311816120935479261471016023175303185816794366174176170115528999031098170144646490958379068478867985168518511411654673551117028919294613399800596695477485383664216403126283375318334801023323474314008711095191611270564734480738000953890655832945698628076713274759933863963510590535232372012434270462049197328876343170148343979283540845987992215309653141967969696516571456023614416738295574828804142787649330907556218982950602181290689907451002677458323729955092291820609928820304498204565711231359741822643119053021644132876920252181503173257798530933851892903607962784203236152479255006452972983611278815272797854329905467696309198289666098539501047524451879302215614010629440609530734914797631388277970802507824586960238875073893256684433586017818403299622450542600249847663818723223882017145799582026120109286896495549607158903223563552078710549549643813453902139682813863152811443038878970638995649500609492532139458658611590895306155283795851535746773958204677607698485034897318447737630778952384409835000695894593848950431503657735397899423794809486869460083045771337119807457350232728055378293750677369695417408967418693755613094150431789792734399073897972093821323518877296689078031496629566879936572388216183474568601936648767385432210220929173801605770059009590211711495799211885409831016982565522643996352366791955683198966224359361811022568295784530254969511203444054408749717975733683327611209762473970203117417127218302036033760353184910153259744923350602317416363062388556966787798153675290952830837935861824490737620086326758194060112399538339473966893670055173510580237907128780013007077045178974681050347064933024245169809663554815987984138957474753627750692763737099063523767947649080011329544996902677154186072703202935996222200972689823917288947677095212750874557005001939935541667936588303503543982794662102977136636672571476168881366694694316805820634545114388580881303096163448951049391093306691381300117615099978882658867124018681689254179333476784529572865032918548431447136801060879330399928816957992696724384488780728850141349715875737273489760871885744494628443905070923573665898076083456649118454322424072237271084967838254068315208381040172736149375558952896690148670545975088654971057620054381597323838604176807052952151437042208011119821778541527718342782940793544405994801863596770347474359160283515305008989254298966811958716242000871625965551122091605817823720924219826867948904618540109388425390683250385246862727518785820127392002994403266131106778832365965926031625720812169183337815635788575001658736985525163122826643535460466777733770462012494437901685157980006573493528002023284244661687951482574340655717856771684052982514755093143354912353321620886144609598339090412827677519348802802815216868284215605631423868010250661208049317410555392475968458071161150026029181267141597221632788652325335433886909635611244895833179933800065545025557431466257102963671510058667125427901187267866183922521639658104484533754421989293135133985025150470379284795149026562343365307253780044105650453153031600247748858344727316416038507302322221021800125245455038159864809387506346251561805989176029700511243006914229925422072257332445426318689260031555912382805201581363997557497081787404324615818458973236345481740001415565806444801589257722484189753384651765403946402017490791230355467200550081692773846565674477008365677459556152093416921163397422230946863134220289464146249878952030557237937892635504943689010317889402487315910125643207424557455431412152842914920700382116946964389251542190012525715852943567172970078501452745548110757281179018226347436415234334437664246862305259709625084234500507411854147453913684658524052844582235053843651549215525343773004443043502357977982365038872462705447778309144528116402742621910367278137503744728676307151991008108421733399343179566276441495530111829733527469186279272305147644885585930013277702617599527226839801939930078254498114448854928157858600699933841111630407060463955701989741622110462369024111006337047918659835909036425615175109643130920140104511140658467963668075888026615601684316692826153383337363829798003262348665657746251468082877750254864196282840853720597568526573170713332806378661998633838243257951582162912209008106706886992465092403596691508606027561445924479456265806978614621652954085440515540254614324164147007014122139643504766802713345174935870349875184652868003378866862896963960469618880774664654477947448407596422360242526322128030937271521161753210865494077762163672213739636470529004507950686770964161242011620513838845365691619597310579060658180902288346308589316205052356881285963585610171531246225118883848165911247674142723601814612576317436466996676799546911993470400274711510385573631499042751716890110385903910262246059283798776396565822936293326241840949699661831946335735143558455163166649877225062878209637991683827345507542469370452265322574116853036340969534113411292081553681115313991667547519324632426212525806939149716332895150003483168787411236732316698935096367567579352810465076806737533826637718030021528512143051822569688728973409501336070727721529864867700866541006042031713615325078271081796042611574671797619914900653138327241367560106485797924949194528957337856807392177395551019366419552067486515210063002439949702108752109007329650416395909854476633694604861164228290129531836935821296535664223853283614802393115901541321405462950819311232446899431500803860439948302571317902381319402222741930860566964711171754650511754412741604117145914727535958482613952902971636450419036800819831867883826672479125657197197778143827630986758716704906940462314460699959470363423073497696735274487857505065789703824288943539767567968918555452550157229521912205898669603207474831676849797759673945612664788280561998640241357469301473973944717317819220424065974393683668930490352984320826143390556810702562550272848272688767943751295779547195338559444210239396107458328289113540721864077380828675612683268919361027875142252132971334715724582489471736283601649678573200263946383357910061834419964356504317264825698450384885361303125146940755230238127479845144585300687158886533019560349193998350729170085033001746969108527092515484115109067686263110993977625325519083107803968846186154855097128950839688067157077253207588029558923222214316090426971440007449328053764489003825522565226103525544493909763770545729756785350894738209680699880097415176133175941387088110124652450014529653377725011133845972025915816691650448410285792035534967415747317662804140133214886744127849243833267217170580119068412863183462773495886937320775725923259898301471039837817108444605249561259378327277293660182559012351371176796956365171687459583388890236717492976413357522599951690588130794211849775598623337870403760417609254536598907005843201216873332614517111500627507411826537052127564932981963308877773928902027582156231468904385940544065881441033336277245285085778496079596674016489393928085256261718278163679049276996742351578471480153629082561518440209382946578249302956751393061324678411696745883666104639061901375169787279771723844280537104908290363807493315881032896229452063139561080032175859823168362928984488585599576150853553639677892770628071498515984611932383373720279368752882401455804200631869601978090851007464004659197048323883762759645228748979119382667960733075059074289639530256621883857141604817014526553929707772170557581253282998806237358427671440176076872052215818340395616047734483969619813731541298859077996635461410522445894847138958985992607667113027627209026551550559103954392703292660275529682059153072309251943442867236218057273979824301086590524844216384640746598638689675792345391199611497782831752965436950840981449799515484035017040271838566876344326362098043991075550002192439619425783458445012222977115909749341167728122882351854564831546900326082021958956706604268653362187352144173097243610442634237727156234903418536668082338979801344123757699200898062464833964260369710783635275646235531158548031610453795081379421915396006808178967879003828056098072432618303612664144539782105324268682914833139943780529607267960212720169215726207367280140161431059379713586082872224703919640837060459629754292686608317916749912444891512673940532603529043794055849187815258873485009727134931250105671755626496866455429654674659108041110722597873470061375949737979385341853516362549172933701378395901785015917359720021677016801095165542448537234588934742101141596939503094391728286747950483078655437112685633330905431669017219317278507228936280509954533216299589186010050812686869588533618262874572903716050896151039821832320924290624640662185481188930939628254928341346487657435167082401682447186523179651853239097191083573637550204020290737548950969198669120525964080385203900155186847954657367994085613949022490977053983355495698776940357897097344941445433181981593670568708064461837003564094640633596574440229458321399596214019801511917580917765376006633404899621389250405051498637939409376214336376241442227332252526706556695223680357319883032955364380091139250020632145600324523517448895904408523841674199760904320854758226368084725081135918564472179793836104468542720764568537681440080608139348309536884906769982869409892899644449134878380774082984604618200642281088133809317288233398754300442027956464951507149812049064775209740313614194605775125208877375054002340632581991829067397043431916403264674237619803669076887463488823687383885823945689281385777824176733406552463539073530901418977690939194305871862961754677869257039393624731169683306429896896365657415927921152575832309390629503932072726708913143764316327049488442745224749617832921367524682801798815489324070328392369217317614498213052711882287066324168952669429154373415398700121280332343620330378490268619831412948573858724839379024469170732538435571320071894239491415424309609809457967554811974049326275208675654359757732138242634846183101525707017382011748770293069411294293038471395354283230476086450900256630155726564853775980120989520597424903154995838002853808777292350685864164007138320486949455420639646261564455070097933530333061005331634329255720208395931407606048380841391401575867264026216306510470910824865881559355880546136588885121230102770405299770924140534189945473023849761486671943803494174246486068488020776539069781264725588082569797582189445861835911027052388736137842882593866753317771451243912496788450462340523244497215212615271305950184784786144958091848433595845667570432256824769875814875918022957517084340410882441273183149057996312131754234328298167446974784226998669950768216581060903836587878932530300147216709897325109814494133270874789482183850873972285035252850740289879607660792454593318552633640703840786300726377609025975671228930676934976273741272355176977698328397712060997726377730177873362608851632547562936065638261640152442175887123260688197397793967894348210850033008819396119590863413141081083725903478493634842223152876248348372188474670659789196853225455950984664987793542477205165896575414196985487634574260547429598504099725079118439661358859710315604959599129235884798736858466405567722331214627630621489670579605410460286547245183586418639608753772172970007686536238857036833309437421250908700862306248452200502058960041321696978085916636700396904594236393002269771418999627756372963630178773610218989793299631376870474153772499096106800441201705492286154710176210699996844485823312417235219908479736225833693382893826188452444942093045267642508520157052959610844876279783247869085672536116863270604491388816317533238416978313974636785611420638237651927354584267261359739983745291870551297714266006071438741779036082517267694621643453919922758283550927475231254858638682167610677400673680161861393701416154276345040462771730063925962900679537755146827989368277859298330122641744842352934300252087236194585554116933978696026526010290404332650990888805706276074088591822001424779024144888945310794615948885861905049257796943566664012514535387724153284486133013828247436933939272588732001883921582875766298011163750357786737802112790343430623194015614366717876989447792422597436011785812519100289649755674498247029176094802749403277486106251492276840327688762389346407382322272551810577695799047978339762838273842411215888207479803141731426407472946173216408138623613221151740555663186851364337626473673519335135405848636021088471745845420906461751730530396211109247694006881061500011095005571568417299839799616473582557629244349864894296611501504434139721404047620813042355739316482946961801330016598469860421305287103173965579819972125336230661264321271655420729024028534672901436122432660019489638517813179039569226973346584620768211547006026213396875519022092388282085931139749660185713127848129630501077483770893775489078910798177485545012274862588176366311028826307517500763343177777071202521257520806045607726902605472213274434639981158513732096868794694962612959686711827939859794266849383738562090275403174104310184014207349514545306977655694570514224976605702771867586531057154400290802922754849582492598049511185957580473412289282190766546514052417086811474799321035286095729023244831032313475878716950680013036965604844383512833634975372908181570171613968703635584268811219896160388123768556971833507168677483446861597860311099983416334076362439110923872277875384055205048705846857896087746370807143934275625271864173081981705631745958929053571065234581306064141614806726623115764154229081575230680341236539015742180294505005861663867041225564789897320258435928783714237816192534592159785675781021186575653757435940036524868758380516063976381186683176233816713212129443277792761283058250561975385617571678692196772351867795507757748981247768078810896326393832711413850045182501890017785385325985253605774674237253598022981537045235921937300422934786059381751260085562268674828249902033190196914141537872506160386845426189122358602448265430065541420728979268620507459723605071234180066935718912150401704454315361762652185937442767087283711047826086404028100795272984261793253599858061894290173208822116577560515136900557354880540351063158911018725880734255587016365711702094025652853602690390873752887220911783231068534562652309820648026029207331384239099108278949569592815018851053915347744121807405583872167785298538175556566384339733555136798557842671472063041579992968793508361154678069475534661078849314429169520711957838049406269011892409231041147761556184728008952297943212761352254935977712446091687500443233883969411204315423978280037202844273055097311289188206423761227272634705589710378456314126104092844893596308030228505839538822033466226668285929298779550020755993065799131758210737574751877135560781799374911218429748072365016791130397094379709987883160741865231542539110224239561533223991800621662538113564600136183007016794528167237898165341043458127893745779023947925794404047721459946282821079666882035307501985690563479863233102611499387441778130533344035498596665809274375148820437694819825458387238967649780644364242869457195948223135668552825027975735396423121724651816001663366803170976488166601359302006230616694466859634117667270591846041523072742619917053580974147689173953387908641602392495527568067142705120972718466162114999799373020977463612330156599850286388836419320314394923442678634333205652773430464362598502735425369092001902011494136926268382953163903655161090841083750943063197276656955732192360809186152286316081533575017682937871037598345967521567541169254163136939129702189758177122114930061302382003965698892781498345691827716916420029289277502086709662857823164398328200720861756692121331222048659856692021525693949244191779902997548025139207208288543247760265366879022731798365581569890636643727381824206121237331816823021373164328870555973558615994319868465201105669634131352946898554920558826317400869707689253878148753588638131843770889588276489034919032122648988531024105419671161124207012642365725300918913662729908030333455061149014536587467936630523118671378396789477089078954712236669058019247641546838831232801823014970923712389833252830539456843650134101438695153621587614846285994791871960936758906237893493718607400600612057200954056697935667408021375720644753356247829094752211235066292770598406982231148867679349857500306974595500223819836941790980668651766257567259065067251035493244618928744482867578978293436720488551278882975755905724335088237351963501026160722782751733259272122809336121180076021187247787967287433278365283783638401600097954863221927660748890545092340263629426125965585346686896063355149197162028736014192970123744211835224270831125569022095392976424353770265949690409665258403198327840075790026923114472514653147160803807841153302580167704376357687214558353634786333738467219905354503139311090548732200971258519854954032462234475885408517731336341902105484822624081148514556605932787659019716707106333010779502388336484315956969312515860776324059443590186422158636083109173956412380573154052672393069860948551563705251401814135519113833583361869527806485631952570139368105268227611382807422286465061085524752286052711957273652770653706080996992897071123876340624778164909989210822510474083304310303772510785487783973584336295279652873817808988526001814051696483099246313965405427934711849622642580267058578167824817070584307934278266473524620597344956570957655674021048054724510816490583758762338919400704781263975597658449268964737236195201855676625485512244300071358054888400708306023178019954130830339263245042292546349907197368509317143527531674494476252968057723792490264980325914986179221385254799405755308015566306097917988518592923820459962736625584441690062132128478149568964626245568603229345627590255956479442922211069004005003738213021116573777715108313179747351883681934400591089524744223910373077144635216236234832216186757453518454898307695583717730019108285210531151814430663302047759081304951042644501751252631980909899162255558838600035822071338488912485017246241078636164714935736411293176568595916454861762180861556105503766409830866698880136286552100787598322681802710522818101937550128113998022920077866525460388417689955124724417678513352830062657131507661564815636932259648698280199443318246539163856654071085289135963062414722643003547196042904060423456559086350424640873908223436902248933337268037652536534425395228477783860012497897659226580818101489915032402422549526273833969593516848708235874653996002832173670768907968835296858889518349368193916629398233305341818984456870473071853318633187993913039583255253444422040390537899792844011515620094185995970699333342015026951247390759688786350887150131357513846303370693374543435162769748619034145220670258270763392558216515236678396141569016898310112823185725370954139179538725938701920374881017865568406983701763286181669302062671430057446622806677800759402508288839727823418813576208896058016314980747399717760551975681343401893687761403909810326541934023255763612343228190965577785038305061008729228718412853270766914948352711135836981794038803473050095044843206107564788607384729627615407270005129140236891863995923679081698940069554178734271620669506656122810599118091760883717604347588634108788796169032653893238822977718263596557804094218638913314061785382730704069365220075907230932816024670274973569046907577578623958050273635298869299582903301099899432142279254747788221381867285002347594477261571549998843122216421197894293632267978623117957957482690297564891664403614314392661867642919515677706896130756892725028572778023012473267273623076867179805870054506875324136651602593973053154597241089368745003518410903354840527842471915957949832963874481189863356076265315131913870128319581916097948195723240485566500921754023916563201190694406744618065112167471277733448843120357628095186452977666237415525715350585960784887690787667651740394131602298402378931837052402053168178787797749510563812228249096789872315690545771921449093484788135398068331814318005306179792408109307122789406173509932785155101459340976726147172697234056671960395306851022128403102959763119430836730560875780664290652309606911427185853847631664099785061473519800327369686785903075838751685870682519681542514415418239417191455353962044187833377165959487809417671960105853061094678909538881588494750964547095704148476474875617398016976587493294059841807691928383489964882436962949087184600997833768748354253078483921799831228369601942369266443151499109533844227539454965460480411233812603984802411559147354874045541893492521581049379898961185653158798695881221384760098450835528541351638196000291575628478551410285469871746147446759671182529741060184529313935858222969416640745128677563972667930118505208958480544443525939828852471911379356817205971754385907457216660965489250228981006750919027644375978033928878117125346659424866580762556832553641012349499908501497061785048707093445017271528821265402431070480883801684801704531403301757994959201919697813288662307911312443829730838227443942911935786245730169862866040058789524373524855456486798584113273923184530306097266160027702462006398141898819812448730217616843527728021097023792221801172880849433129987342402956913226785199106588728116758299707179197196752891023545822151213264700218185739952215878264839411025146905545964366989142730026198526533293631147995112518738560913593931901181815520823292517554770906306959287160807248625806726940924172824453039634886073984514710688394661480843642952360925853737583214452403692027508826486259064490324312612376599197080826776428062336515286359302676866524507624087006649265234184488013009176066970473289359612100487406882083664749258759842508991509309985940457908444298113752761869844323435852022649903824051141394071074829671023049352240098716672413477617330604840091741405592695279786662307532328559901843120065921013288468331997534569557922879033462683619235133012349580641144361310262609014785080816920611726284463356224200390981427474528542617006158625377408976387633190966158150690279697666808936943023388571289654305772115200779064568683461299045647050057978136283795866852277369745941005649642004444656607943400349887134961277374738270383958489164919420719416591530969965295486277587709465421359259073672671555641050925238343029523417954523132889260822222385836285936870618950634125592501777425809614927647981062150719032617223441954884434039943861217488185542688108360393196607309138430930245766383718674571815459796718978765835592042697160008960697477731296590617316839472683164608106682818168672087303425903698235164416627839697737634642019432126992266723582122016450245794936842921317865818585532435582394663434417166354912452756330614869996780985361113328240708518292126505919950742744996555612734395543531388734381791389779802204259206566707534475950802458536474311923126032472246897064578787464580745478143924402027999367614268247323292042904749049959599095810837193703771923732172369178092006400417109755286136370982780952042818745284398649951941424613942996528673858513049564033493173576181084323170824694664882894136112827644785225208622193463021175491291812454211756671831604583787617693948725464167867859897093451661357429568313832088934752196051259626220906574275802242845259088674318347612665248958454689670617569757987809796039969911900951634442018708078583749737410445521459748056287268436608549569652757239001436859838184513351787320781804632124181221152977152543200473426348332780300777426087924347866528398363522534532086044794182708808519425504482154857916008571042178623496508823858680356394096973290856246474526252189496993863163706941927659021496057496275657481070521609958372055223930225691744783959125217951139586066529701568373477837477557660750614613841722550501156690510081058394509278500225080350944201324103585383432552024319810453672269937776998889017250996308373633117866370932689522400167704701549127439792094134053876863421828212803742844010967773961357900696192972321964073972405919090081283009937447756271029141383304625837953337745481183780654862554637344654440722455006453605999016345460032025482255094752927719206738356118932345213751147577967148593327091551832930648423522302525825346489077208572358154693826526314983368460056777133229760158471011721220315060637643652919182658161697578447460475811457287135547218543751402951343133091239291316726858966463297499773572879275586296444339021603780698080564011456685186643900409767303471482048070828191496598898270198893546364598409734731475246522623900892113773594036592805806006965160617018863637195307348669993373033737675249884723760487348856081635006408410035980537704257266261892816698013559114202875284630615003784746274597031365757532494971902373806883905404929694382513509310509951677735399557874806089961962701364054836321236384138017256576618969096215321171978407514351478970112522326354572965208434181315132892614720383412600024751842747774571698008626246876935932780655395043603853770315836679982299920578610913176798416317437495247330412633620304302932492278845845658690371063926772482749366714248708290110462022802483058898142791459329435474161492501934808242034948756715160378038126369102914844930376469529674898396463020460913129209388287777070874828432214837836918534631329343638662496179365650425261253333242318109115332984758468340802750661023977778623326227998366231906299536395505088314325597131824069333038708326926475928431943676780033030071438782137754854297286595207719931390117500227131781287409789580000066349981704059126080219366086105945464311354497982307049375463256748629057584746118563066187972045000187829081971906912747159603818661974147299001595215876395292134943857360848456371341662379574726564595056796477705456669746250094821749856664805194462274047051647774013495113541765745546467942926532438346890233921870139011231767216303514213862953373019692109104912320323635053073671246391628324439264740769894836981853187994216702058866952102633483223590928806067695853467121577819017091126693779529796514267928621531722655756893669704920845171511391549930541056093101428835116262023394095525013492829745810691166509920344367337542425649088277605045706628518660864916751152056548018290452300534491950189279712014820735982811199740280495705516519712755964789071161841710118498747283764419175673818939918830921792762788020080909313349111336803054817386943917143979129695124764457854036823834415787655933385294302031112625914145508151550324663920661907380044904858883462870968850607195796723439131324321318406031786941597863862154714774544141558035701753154808334640921285632522010769837841160049210667022636760833652368673249637087747620323275596649391656311766485474677240352805677681733289847049845636719346735485265079025125728724606189577647410704332308785811222871993106449297420862392880620482432058975073594583677505846415870884895051796874277686875376475945947690551809379932964446076819448650839754348733882695512630075892178575635683980069171731456639945467570686803977628046024199764915004727746884966860081890122248308810585151111967165548857789447774809663536372162907636760149905557769667115921876320706007609715327756026801297164113838699997726985914738454462504422222567384825237850048350057677966104156017215023992126495805848471570070363280993044663617314618927702370624447811067803254059297770160926538701731365157462089948295135077628452013266396893005859132295886168073967490016519121017290305654512232600126515111633936557481625532361591861379582973182677256374078557011637174788003616618476850681352469762304659179012456552394521821179496622467171609310128456405658419813508364283441875899980448533989169796343111828577544106089922775066119037775298510025046098916343148842376945661304081398714481238232705182927058970477830990777019769012765616005608626508098471106763696072201040833191502755943388698839656552818595029405027732140453431949350785236295194595609602701542160926225425321727131889723968955500225335502477332134711189479467391091801174007821033370893288334558059557494226974638248806586894486986450217342056322181420447144204447072097411165239861722293762666119447418299190671330570279728750136099155888312455357928265385840193167762337153491017965814584174514927650280092723188979499216396064220981613110679447143913693468505867638710193631898575066292587987807276749567450087795383946742976094583676322513423590013036157661514669195724282729046505816272539573587024496100836562458370332517935968198225152388037046403568371290924933403272474048551559420789834920558597783636763939332873513055773037547919889857246229530621427704312090663368824436583160684685274660751890953901740362596192190992137175659638455528076951114151599892380491249571191407814636523351832950670240698439167866321049109557688907717459692971369053581005508487419381144365230609911662376916718310619632558638017839901101252800366949472998582043042130457884931856862380730420261288294671654641825128749178169629831778572925019904949879553151224522015724954789647879350313421091805698062977660871978951224369031658855303747844845462276192834391662448581202566560388064601820283906946040013839629356673885872891888105538890621581808438565866159968521401448314668605174488915132689656841414996413277897766642937489764105530044481569356404309715192782250179226928640279137132915924021577859928210210137525578884856843104077503015599452104285317286928652108417114008450797304624493536208649023959663648333554181161008385329481401166641529261252741108923751914660652453149270917822793999860622151102371720281111571265266571648574450048477855394418861086411385654730115864467526590375127231553976785737472384511911934774548934919187912756967503693015662362450023994133049877035687933362842733162495523409738348813419980074443445279142299694750870925136736258557056264125499391776607611067198693586522640477785511829558712165021372781795294401061162045799289735747144692620446896324661799879175337769467952840162506839874053829204024754377817501398919332136693999306614376573386037066575038625372892326401654045043043709413502500882228465722513606922964399521471594297248340344177486880925494445485153583712058132237548472997769145663484493064984920079221670213630789715855971153261819083647671082764418284187103866184182738730906445904829690708729001295177522375680214232691816227671974893459043236285178497705216421291339679268977652276668395609141689988650747591107953208481892881319449010915650179716059528134960264372809635467522384168037466492886196584535913894640220318882663931747870542972337711585546476606440969591568694097470088662270975337058838019830166061483318504579317807723291502293783636757206727082173067790623221736897384291823198970266287045423124447037533650800943825322705765598948082076735557125145997615807736964815634606796597806866138828465115374046673567640764370744320703128318092525129639532207469486002613620528357400288653841910904904334078151291367908318858701733445092558543967139284091840829708382359890438805492630476668587961090964206689638798599026367048754896216551088405989075452679536636704161875488364136549654152622817122414109292592530458878689847502423462402938470807600384826238958085686100504590869886337951805785670783771579253893422574912451381298771734881832118768532775261642773717807950996021411004481097682427230947874132428589678064690238093791307732614347823476857599807669339519348423729540732289064670337149279804657910693784683718931274978255504660118048391266429716802109152111977869730730867348573607543285537074829103715133779068035630712114652334041935769729680775106731411498243695748488984981026147310054771615229767236766344466016364146375393660039391102795165183947499867106968442950223521102294590517463383590694059781289695033591524064527452584546631916314618219884234673841613872477432385632190403182327768784487555498010608358537842221149886127443669494838711048388097417237389132762953340910301606865991331644174088569841255885991712840763647429207303429852461130696275415231440281042725201978302924236153581969569334679209105854894988582407170690453188803038152751266929422456633330665557370042501182649393781822918066059050691322447617213733708267191579902259077291509573044224732397511587784784224612006791461557006327445430116273109790297531240339425203133711393741043522174738172986709783400679303772768310760869472416950309859180219700180021826786945922373573635438239398835673198946648676803283974611461593932176891513968485121903715268217478902431676464573040630733377477857178081182583558561974449125414324142463938892655710048686983626149200183734688174988679740702185817393411212297966684598183824952176516353934165129964264564484938499419230106585384858388185177852731960605245425954498919447770359514174140493914702507760936451890960200188501664981305147420146745660168073071944967942156388638814145447683715524477754260009599584925660090023911537358870220217960050452709129175244974660126872350370964135034522472567882806750658816548788244104518201284473146242835584555900490457364320676835987356465039470381172859527220054076158163453698775790640216025380007601096290602551650659225569727461332549867209323003679634633378532303395548034197766333049483121228647562137800750513108419399630482738121681871745491401890470719132478512547049272954327867654241267994963423197307866427974336011716803439129833210603182271719909886411141597427649170151551983185533286885922015003684004975564306649826976661765904577107960602420549217804175362996914186586420873415109191148080007299615910537291186181422771104440352984258668466042262726704216673715120265578876057664153450269670130640023890898178591433290318849788511987850268552203181550099583920772288154962078535041688466975473434097335148037838958708249028621132115065270595846563049997129737617786795008478576974110325741632324680541358379514763212625296898416175453633904724857370380182596086205142921879634512447915685445725874540930737296382218702610718364864694334063276570409121931643220412599305809633204590533270105678592869513608801644109804350428382271715597459524009761311916558760404403194889525274455489962123383416232038850413556729216297302208444502343834596858045014712130197207435551449998898374341420932184616128745573879753903923472179868916924086423038280334297289878150516418796495395104800761411477124998069381462253760129575807042998318557101407096496485346441233264843437881108344740905315434831818059983959892471690130131465188535492465042415378577154616331530019049179221381744418820430223181108045978413490787158876579588632592779651891317395512204806781812997148638463530511070210470667443289013578678686081758354843357182245830888916142246504198369372877785426170808948389816590793592347004296363986209484165547437396277168174930440582500757841222930639024849429494194676087843451320002120738011718552014253002465842356696528085142149511473679613291866408439608209356005770038062633795945142909854850960326513899577253689586264815152290094916610127071513562860312366456816481748746316951383760403044235107729603222047737663636198091733723435014905813916346139621568968330342192486679099412812441018880818157055100384654471410307415595866719984481473166383849894093173271112959274018849872694911121465180394821576590886914351638145629125780021381856428435741784915848987821906770854574716446763462958103641424942338367210397675073660860625847294595619536724416073822197711438317605022543606429747403802616462875191427648919823576010427952433280094971465606185784086358659038971233820692585853606805761284685750919635938611201297586244150426671144400683076190937044744523248607186020443685664181163885931533612091872255692555795468592494796017571921374758985952174323281379860414190969279806747582900947020564871777859909495575149353656448054523826791902539459400492769036527188138164731317573253899661653230616255901633245769691011163579591320230741080150406113827630424968677041388964786404103913778140147604812240022387110009063814130381087966396044133152874871040230601666170257809508182313704610914260957289830308070109386180672289317132518583287118051439599915880824605678254947686625571039608795343919367661492038681148093502002301092911693850101567877662201152755195409743919860273662916513090367331417360844544264689625573390199180501350577000998381981322985300645742115089505682029032369625809438469107051154994690746911411537912401646571227327793377121461056432805345636752507008781895938253591637816020964747313183523873443186495788757806104518899011019764785764976757246766755464464930333841442789984912591489396612910215834125430415215128564802685824416538599689995186017427612387985200887344978820584220970214579251290681788258644983047159701671199608270389663648976537799967044043555505298513926822572160369625783233850123008373298752984158814272424758004028679315574547964572104111348788195041399623218856540759437233416536450451882790809602119244481661579100915955027482496537461630557274501050953881597953113162714867967294815291573866840807973725053119790773583080843349553286148331018598090695755964393991200872197020841508792191131364784627745353012270252446685892134500246012654245743735296578221124785080226750593002928688569428096663529422818175097987458832051981005884030877257156851732941020381340585740367150954007210003868705861524668725091607828584923160937996141297381522017171512548403048565806349482313261791344458792167190169858586815059551574675281989703630995709748987052424338420856433032139268452481258389841794893603888311590330046145824783276606600639577926937415027605488622792873659059025625420364041507218134332154565587647092579206823903939672230007821452463105193578364398233975910759322585930784120119566792408124526825602944919701309895640390250765397955244722115422413413058412480247587389266975357645891390087921424145907987322306630240724341043838352212696086401844982256717287768075515063330378597344624629582635400733049779876837523554720155667599902896463214526707842605273397276694046002322097439568797859827671571987603714047943161661084076568423824931114631443585507918225952344090035490170147815467912019809868957562164210905759258075383916806705039756757075165987978892292648921614839452404870747511346544613844161514476307103491350949931590188583665679389047041088867360940221705739949331951895992167347680544563872382313493769581182797758658516060698963558463174041263486489350866067758480381652175535166153422561240321655401067944237243534874016319487757834820498014646756635663780192161227584554029996485245844023904368196812037496842608357185026991877919757038154766129177520008679747284441954775963545121291647309261497689842849317168717232958465038019178498100723789245252049977827066518047579812110224678861953274037230794289471219656812557584863725010300183512353635790612737389583386932543641665753183440983813296229520659227361022059084620874687297198003120595695833552631514688022038643097256010711988147818270773712321106042719175282461270379964099828463412363207632239740596059352371568386272505828989336833898200873353066913276808989074633316788588343200027485453858017694506959420318860402967172084612605706999676323416737660093926281692344079767164220409367383722984509723112751619939661458752533629257629568732557754626221942074354751900328684998026733024236235735571275236200007146673409707803393982711247720335633532106046607277374933153404918584252956768046391868899312201118366718988960950638811240892774586448238392167912278056732615717119908876113525968351592785997486568063640147258883273948729521055012311661605648734155376811136618031065818460222678225240303463157544778843285813210463233420200974571636269147564998695321228342599719952530155276167523220037669405300480642491517995066512464094467888685972356570889270530221927981139017894254162786449545026741696102700725859538698010998570346564374538675606019907503110121800543446789110681029932471849204208581634925551233841433454697771874819796514024148844364175780589477366818662361277199790056880470487967642212412726834262832651626921577023951757832455449139282196165133513646455936766465980392901497800489694286993328360824237820641262134447869448522818743916055329870157545183916912732329629510531010708100120221420321083659479813225908333020250690762105364387736256476532639520667525046851269166333123264875785178119977375890670829286744063952587208331465237631252987339093703304122735181703900736325217645443892802026424548945275121239146217593590957699462411165711530825471016824855509534613319059652526199878759693467648584047762995631969850781394393371859594473165527047349135889764588368349564969985287957909731874253882196913262979240982211246024614761050020022823837981688833669532423614176733241715443218087277850960089792547874690184620002808994648893232821154707563383149572903683085501031590307865302647505595973990180805092604192953363362805884919462104980469846532000512191367525667627724312284561554111011982352708939113655638701923806548766106512435134122014485809187769698646738899791367205269551949313198302909970026279662743174809289779837765945972026378637705747712869159266852873761779265804568649926827327626768495368040762873603885201301312460122164210225676155934704393664002649902091669939852439607700834546377860047757387310795960687328234517729027699646250867108702835517631878708402217295559329077116302677475267160697589596389007424950783160912911871295567703153979797794767179877765950450344445138908130294854844889006627284953936819779683906152138032247642110555657173357392389931917842336795274729505747705869388256472897883670764987635764454870306189659604312101658616153907390169222183766636511433589812940806664698899526612661702134020809786786611894974501628744096642265353873885538503494102323683773582115557767705397454227839421431121937885973601720776741658244799777614635641000158006947087614211893708440002821590689780473042819552102641966373013612890204213266446610384106102492345773658386834637064952120475969428748574973067897680101787542160540098874109590275902618552512595683230011621130304526530784101881733645412648627696988263469832402431840456173740987590177289145965227081534445321499921946815830231772579893374035043188351414652985571515090724982268020622861772161406510156288999193518042579950215342636956046429192648535431450111795829620408964599816113314009034673276704193278267396153004431208734241808188785540258482672286715713733185415591025133610818927630176734903894134452950035404182102795587857541322002283018366621262821030629228203474994271710768816645411863009883095388288680792027709089844492605012183772636289245780104333337265244828247719498124076584350413664106663370922740270531473285640421234216712549553079118825639106090033718554720485353401925750009415040340835300492745864531254917294133530146453401805855749413051734874630413322647202268338037729566065274392349715306426880304130613612161877148433095003745930331428523734975319769497184916920792891388956269309310859526805959517543146338280848761951500803279954904784801274523104950422498910913064029147240836528829196776821839333148885448705222513322142651049936492898447261428379997461837288615969366469625623927859691393169759897478828086491046708334444205006563391655960140583333745756200226378524900645060252476376424074011808830791667406546984628219313464259740760387196207354875719348217191037808954930955426871168716000917128274138719824877068923952078957853403237893751566510420436273560942675753593312898420358380226634151196772966518555769059549561697896940868296906402382199936767659499425233788696078364507921503693078514343867795426051424900862495506721724113940791051564579731188922471689335312485916333938232130634043802295784206423047142257918597539445817917569432316261475512054486114898734543647183424560283784337386286974791652028939277336364283602019791295402402002577374063289369653526591560302914740143329389748004160586823525828923711286730271723983133119006627768318989620390903131969992623870738362303518310006570414626893772661611245799440344070811766040304217982893322398340487229627249948320385665331735697668384746604681776362632700505262778208766749641467914282870311142833851036638599735416454260598510253097204214497203735474938193468752550196551297611475939951581530558684770816876675296017349157379342254705698242680210561745630842176726895727079281299010412113100396915459946316007768147273708957330112030866131328120095177734656661869398194195791233876068448119672331350453029313584941322918978172667278909742940135012297998549356479670537779336145332024712253882372537049895867059729230218646064871919074146245198859648094728667438318390683979905751426032752400623224904781830264941894877931043188521551384103513547765674910959047345428109014734923061282828690306009588164265412570015162982199626918580930274756329002022594787275412631750462297418634788091613985011405585601727113041818644109450736462629425278673624769708137814735185131224758688622533048332238661608217338897608991368036867116300941397746942975278752770227918939144990763155635010680840584347544924310399140505565727535341617277828664183540475633139595172730846417310143012615457716349214976995830843999176409855957869613388945536653107733585228175292716321687653244184122354474845749237933161017557024777786903034034273973215901545405387680498861126161592352971412791743039878148367790525308413125857858849965583285314532104975841093127858127540249515248386853953760397764262212952527548663524201908246789699811324899756070816819260246296736545354968381104293716332699189233396199498379229742442479289875836513453430275627225283775465036521131519197953674054864526363042715870093439439853921217417267316513986044044312783660636217138484490778101941774427687490440391948435314509859866283742404326778869572889871285409676130927480261320559778191471370831835922459291999055370159790729616939750873554926428876133772243299387500568138872716162132420211601733371767833019970547930881089541009371735582149579336904688110618246367454280037464108987086566279414875100016221257092347732195949804126345264082515440618593479307020692982208196123075378140386433166193435701416435001024352547664093201516045151741109318796367761884566602274162975267757187926748613212848952846458116913894194332172621022873198256403236234294909015783481025057454758030635995963442666624673092209026182615062398967034700832187091894757367334756040381578811765714630719342642784532885198582721329507962649745691586616024572065304189208430164066884809934379450809611922925026409197908191144677572556506944814933624306626138010137210137804975389172725833629874927195122638826216909942747911119109278973059169690086147718220238894208980310827957953123562815536407944843163948306660628418405837381506645359946545465307027098718156637552013641710670373011941072314782614315904066547015788584944804283823638138397188792876641940789874644035050749676860872662936514350993570758340635587575294257001919209193140061246777258105694638483459985315993983573798424657616281018778907351142287387553913892499335011569946438276764064116098827120543578262522402425767614917043954805239262046875419897753440495735975633742989008719517709707555292952633304447968733291193625777263003452668862140139804248214819219863845298564171050393113119995992665435549434461426318464246038098480515383579612550583508929261537337277409887541837198791409634961032022416403302370951333657797390125283930198701530152887877715778719325470669168634717127372707034960618789187909128455862241455306322343740934766057514439568559217453054869656658983153265361462296922112517933661219922422610388772934936898594077434640877589923508669545306657481936741917210954366320484000993588701519884498767322530857374861211054244407697627721888180436434443247781927139982558479113407755135930840951625428918764623702571202646343028361600314996221387447719889705950965673697598621682935271635216337893211515946194225283421637436087486334634465417597651949340955661223096840188338335916226879407872139441176724074527574652925670650214989707286031178894389261300176779796157733783688911253964574406631575876643793260485039972461056487875781237825911569263872607067394580132707499293476853560092241475427563949959909094806484486363093980682520269730444445988768617347169070650846549304401068251984223215072544115412902895448323806807038280088637772734067447724146190382996612034698479793919639707511903842456621080789831379751049673570980662743578415854019987831780858797999055223152452223333441361988257301433248271159512243857344954982895443454330834390862312591847317682008762300837521011418174769580385625454161794118284395536419790134882195693176765973257762032158795669384446599429904002956775783210959950995713922546495966429017069226157480003920096848635492264620822622246515746104789580625718408551665925518358684177149084567755338492188594389526910893621541350176251775746424183504397236802741379902219535170154765099604148890512212000060364399596526049617215169291355900563697924010956980760004795328989336588742028710900578756327289139096809843983228761707035882994636433515847751011031933164921686474022797491847491838379493179248409340639087989266506815014937273571820645069626955117983946747468065515850846842565390553990242922927172447894987908539854928706354822710593570986647060933454224885220529205319044579927733490400651609032020746291265359500821869602252291988430572739372030210027933673901218201051266914421407994348491522789371255438466279252746688534676983198837747527188868056954696030620766706987558052681196862977370961252033678710536905573587778467339076033414587189261632517525651671120323510551947419961429312922365381213965488077325655239499229493654273120322749885326668509143757537061621935886310257950163765317042016057800619934588081023068111897463371964473364012029009161354824644312296969468662511278915027932155422630303478822471088032199163286289162067482033415306688233338872249504500128235275711623769422907272481275050709488352368672771365937288414150817004559862328947812564293581714441842788615980633071519520310664948353772839588103737583985907070054839396284968730354655287085887977447948432154643905349829857124130548401598470905652141408106329372341828508072245748039840136528967550556589417113171718776709275934202431602303197790568786393859549964753825675626512318711418675657886665691171913720922993322662445374488381530976187190430170321255186366184510992160796925993810660241483308705846653443745611085284799706694520269645578897063515647569766546699750854791174637443137086185187235654729448410859524299294513864445916330982973643260926916911752803124849508803673786030785137562288958606230858053101132392133308737275926152528351393798182519897424100502727704432741085188967171170714365489316229841007653935632120107245062067147439776810532790345759927816893527377538350428037220065805367287132903218739542951540258726999450807393941068516352225446951674654990896394988230114420458476157731798061993524999480445372045115998964184334087787232336956800080085438893896497972697569855814609152142952397106434441819560564031044130142895093186898514666134157835359090877825507066848855602400171153211219564003779954945308040847438091161292959008858647867638153472980219015260625045985678409244358010656941020956151886022068984528020276446439707518490339945678837730931983061181954476607944151374485438997724733767282278671795497916589304800261799611095001971325321256212588041459362218941547027182128069910162903769695808616314044909800415907148111275174073677718341271721013883666675127912233623227701641288434597946359958840756991619589220770733955896968262209767325898667519620617293302586231969957442621949572732916240840068151593847832804706049623710727375472086578692447317662452185881415603937611707740411255549833536485348569222786488112452007598878789695575671872214612914362769026930487509682326413917935351794626059155078142261083914153168887010156222943829448578718954232803361638918804133415136838331863092568252163447606910792513810256142338824240178085409853350648457944874314608642064458300728906493065631536211800968428420892411178802199605793330001918320701400380120138225778094623048727848289867704086185794309380689992895651019588117721864908819098128812063585828149024942599446808925815885980422176322929291682667882198346525744605885115312616061262674051116082265922446452325615999356667942877521001366099499667011947595187244106925824671625172821857081582205247501041792376825756970498922972182398521865237240170988318580990288245146608880780049441422575997098956228535013938508610685112530509985122912260633534982197238617347281511402204453092830863764287045831287768853032248162099320581125238925044051326009773117322156674426631902368043004119274014420827183993093572642023021967207078164914794549593219984340965315379292447850655449202949513422146814587924084858519147404588916863797883572016735670980242927589748899822726936386464386240808288415631199967120506671061088427758330478119997040817603385816728047978646193710122438301664027102839234596321850280210343500182441639133872165968405412955733638182057190011196010841632701487420228830743240113210125304055704116217791888762497137552099345667522944040062394431902006031974614664311617843134425500641470824773482902517290362030922785600574850800220845083585255561388780562151949227627409109309974094116595869897091001502335972513433500991323674066486684546739093089866977592243003107768973659547597935276806705653514865449254451372188497189553795438678080389316194387573402068862804015119026519070085952527965035410028390652499876243129196465871999246547411925887137104153870343900409794675010922634486086081216181408284086119656548720954925810389058087975322167677228553978806213776619807839462927648879099391988812047617858134778736363922682930156017028925873106230564998327332054468801659675052046109426743556578402459433052249815262266718372762489422269456259369085775034969741620589621243440656526896465650864848171100043244442255944659508695809807373053272360532774096171210546951322299198673858531246110539616572906837072352855172401909157799831953154553198515816072667186743427982386949713670556624464665657452976859954988124567223879142186347100673070804592743693903791062420774068862942499297951354184979784451616566293549691072883501536859013404943741029143215740251266399634404128133907116880147522335120042639370370743140239132196195229621581778738291487277605157729718629231775434462206975811538168081786075775498187340440534129169020624550494305548367415140035036388867077771916073117637541485295785666833234965804617873338737113721195963715399942258934122341848326959108189265809668019964991703949502897025008941554732873027391125620676273764932868907759849201998168429599193548157140775889140003978444736909647457218934608160836611072532488795227182254775849112254906879894904439218494571261153555436997641003466738939370073259050557513589961801382684881070244591812982842334335352649934445814524127572595510654574605991368611569305210657011901074132165663099543136295850927124346084618379780014676120312177596922161911442076820294701066970243923627636076008190783489889773459116456801324362379797260144275885892067775303892478714541347126296768897904765619532659883382122199543080136375907051591186209399006765142111656786167559979268949378993573180310849845260779842240546293665332068907243510549318167079744901174152952296176584074790134903113141850442033778983705361591653121583939925263208016134714501144542551313601815218528459378215384198948224291271390346732493472035630668440410536509751054107556853677152196985199135430785345972660560860110096157988769951925411466126449166799421987293701507480582344502805070783728602842223934664041253109320578153848243672284658613219639321684919052352575724144566242425539456289051683137116606910819042215560403366859808904432547113456693558550919019845240256545018392691653291567394171640114445551099241018664650617060089846848025059654117154107575628012770636866073539238364039995040524464697732795349561042439297247949380107016684114299258896446391146851338978093478003423290254332201779521203365575147434873790771408020070215631645944112322801317313291908050868457170939253162444449043002550972830770855192180393404349984189063020351469399682947164151601332818158343164115085551758597012970551983689408469046161493227883451681271152386133385730163180012113907798036351883118591940590639629620718894325898193429825455856804182227912366671084920149465408996223743525488000116509761677041048978345801578594274872089835500979548672094494791396296804501909032196691005154010666087184473131127107882693236499854951500828985843261894489730111087340861092008592178509776263696188289876612644789860322156438505978110838188910197628773780271368403670805221316964025971119043380987261193143592548480893231676446251719977447312566167107725693980179815476935260430947690046638390967304056621508166130036326270206213650771294478328864115669771808017017723978034375024746434111468198913782290173450431005915895698965006968137457248907248691534416885899015512506942367148869889244579942015516621400654737886110195284584863909880727216505927888973243090544658093555022369015318181713998999169614916931509684804046485329088958795534790618329972770418406027040657306866628398063154972508512271720725678098144088719429830131452587847341009562870368587116951828744171772674247780162241232253425148389691938068748337947845796865306912389303923178280764308914435912922113983905317837683819393741482276453912124974764353439675482750619058300168823023549663448512508443256487476755440808641072480929772803766447633997999464377889487810489265415948377889303783072349743441442274999380548532146532432704877155089086849113479778492448793430934089330023284008745383933979960103774016009674135955876231136816917558480284162976170968461494799157564464814253998304376903882964788371020515479624802603362149948384923816983598243774550412807125030351565132260395141943458638498783991744196475223841694309566082545572764952050530339203837771943654947567842361496712102836202604227741859036716134575101583347286763700958719254383083226187234612546188272564208676170480855166784467035399037387716224396268055070865022855563720901686282899478627319955568628715954004931570767162510381065241557620929091929574984564775242495937536240317650170067716191685225858795167320180184673024873429827851420647424098569654810206183742390597065294621281959301004658276233510737232578793071562667648057169063620010089554399715244275497490373821065937795932395132831332346577965903470787632921733171124671899920962100579216289526487170942892305615644802238524109844130554680465445521829931030307998597198031863518024998633140612133747987615691721461655066303384549579868528395614083391797258800543014629071447292466108646049031482063200350287842522584903752961635959296026852196132089776083732484896524173772501900781666543793257300548948007368498319386172118720848777737450271052449291709660692314915931195262310546255863336258547919646833674879894238925878148318943589888115319793336307871071651974092660128910318953958305775917136304636148362969271166404981833932028496809080257146757548894081324049277743330878040561470114370796842771296716775597906426269538951270667430414944393741954943177143212849815295920843838252290078709679110519339947714330788220293446437544427480636846032211083891669151233102774842089060377769958860463719774270130283620878515106538498672110867508884308943658219571713118701326359779096453042964725173525955730279113007291572058854052343984847543033939649804002639499698233965200580688944626373915256532996935055536803556282204467869330940173306750747335001189977677572898005942504447701942836241052329797404873303639686982956923785364461014770458382633975840556032765675002738403758742054553147541880317357006723858479519243932803503750058245335400613637600778441629943075907581465328833733073460243767632847257100843638937619962443012660044668837183159640426039308261787882918662341119574548895989241558970022900230316456057993660264505255694475289684634096498884364727771217284485034060883681630083312265212261505727340232114168650365007711307324538018889480342601654453592343881941629838039163278624912221591372401755099538243630701435349886778073486016497590967247960384402144130557836971511432254709575266470420007091039593666012192214081114096990526673269407822875907598843564244071247084764291062760796712656716841762929649713192114569047128921266282192493173406753835870229730313065944815236592355869253209813849563864582933447938947492035373872241670953587457448796087274509307714883600618026637921171441956574360038792914214598368110047957059367701310800824887182310777176129400817669393909765385525291347662351085072870209698084839789987502759789927368618354412185370828950890769760932232892144799165497048824490746063101064037027869932025573052451204748708583600741590488675771765905576040291162610587925800542925446187966110805771416318821525183241285645074869625839805515258984372711042195437544292866785437064924271163039999996813941989595508030406717623685806290211841878975517709299561878753269703912152389435001286562419113271865563444766892595054135241749857508857070280740891140354481032160233931935374704057292433550687808844437479689805640993911085698067896454550134599644151543343433245425285795701771439479852976665488356539862283359587490488910489818131613399406920856348782831941512418931281294281342197483069617814339962189289411958366919713034751156278205757363220387268275981262618178406014667764510425276631003011919469976710174106224201341643808074562994688969879123846069155085089067742978799689944556160637985105461385878501576670760515242124475433634857037148115584731554505560996776613037757744647974469964290136499953356164242785977444829896320394496990005721221663079133340862877019257315689529048294518211993972304666091882060885618445521207668136079440983708179889279401934676980204130525370454309295638240830731238453217935388638503818458144948253909465469640462755997961340350356274594261958611181202541832320049767950204415543399999895690352802334272392084072671570935357173621482219339696713082606948006700540128441150820476175207614873608254368563080963397812757851528473687379957749490750374140873635450351501347205174712153206714602690104872782705045118567142438646510349356572712106441107633835193199640785981368660721357474431386296757739743139392133192561233961746429104224092109146215582136115110302682434380210382802523957679169694849259236931101615262561919176979254370864471727136577491409304907529299325716135861404677938244281943796342119539821762144841981344911770026348858666342492364418490365459265294522840958032549096008898039710967322279733501208807093882394385761481058053037994337764499168101070536227142532784505455469633770784794548323971492603321190405200685093294805204457629001085869254482126374183186395281478998019075364670578961013111649472088862783776726394685034402637055736599197604716446330836777447585668520146103525135139106575903711104915170796418450018678271670350308206600771598739125904947888212534815711167696428897631518429470824103054610209693942372459779956876854147288154796331394613363919952970925429590587144032644895402863511610768943419060452451515518679728319191969042284811641954041571379029766177836212216797217522167515124778423724947848748461004333705507399058765133976929662074127534839560514574924303854863752935979363527895018176507873525024944270821817162154209701503057742837366097036910833423905387039215737654536031185156282389018660967969127252529111761504723650084937002377150780137372989956460134462508522859103475995132046497234032223122589015481621829097725876981701186402363421760847790616536290231232665729070894349530809005490337002768748044585233606551654925391007085391717361457679621830908925318364428635692517062703612114040387134845498093438789711115638969746939477840480089946587441108375137814054512346510482151020685744774399213013193184266133692621195999675071904298275728121606313635661140757137817446949348853516259386907593037474298379793444494210968710190675138525659859260680689408610724022698617769678958791422572583830409524678841353255480993709251718916402320922506602334834036754233882976211760321482671218665578704485092707080590637141470985120253701138602806483373829982369256774634165510966645407585661860852446515659967686559804437790662892945090003829730189800911266549795998759499810702894391657028571638411611420609323994434257372045544419941411616099384924985967288453343235864462340384821932509277503654627040197267125905119863658119412787402948901566309480859748723283988811202223223464256998803637415131050150344098237425147686611714920622502402753196795610867424678442765715954600894178781205232732322917453352714916896861553598105294529930141192517096419694886713300152850708027989161323441565436235256450519729108559021973313275524801228776983199274262886799796826845438559555911867571430343255522809704709303414324250386293992233405241369300959879453746801965923584897971602652290905111231893728930966003222242871725080713581160618520205992036253826943753588996667845372877176975961682021433183640114127414016638690525573640554379354129633094120404601683437970495895181941950862898742931801974125784237710138864814710228591186145312858741035461356034005472591827572366781509824744081124526466043163525175914666317937668233696471331289392578536797759833734682309176195174567312419387608135901763097527248433569564637521464540221343813229705139248326561017337914110744732956415994396705103449133112714194703807431890080062049586046810021223697962259736435873450674896629924884864559754013313137918418054707705894513981584706700817714315937598115780713789154567256908902168994372097110057189874325509289902631611275975848919485149833960883729862049436875791387114121813183303555962555526269973640445877681587258504248238445442750009141580281772551042135006264974753681549403615001273219234310863724556190621083505417570693705494673491059834117693436601553496753921097093819712637832729581734548430626112433382802087302235086562739877823918448822299955663095644980852299710670087963438480055927259524734868157511364105100056906064208316057139815845699131193077988015356734007574189452641786033140135047717676174762231313870757143335244360645169546288934168661136044861201838751162032612918974657647703761460506423711605076019145877442293136000504326763567858276488865940967076084755934618941616712743297571288945945907890603629716981215334584365421181114168872619709455599707870948927704757965801428621655915576269594662635710253390551848192942746190212413465723888293284987575533739937043037862844167960527563149238033447510747612993375873885988296325328272890119266305064624220169718418265703204630066795417943050291045899851123120909108220534057806110160965182028967239756737276512814910238129750786644109627827081107521147075673786711221019765674184244308076661616740171066892476720649320738736835709080056047653828637495846097347887343275284183407674168784470416005418332313332205722346957359345993760561923100217799570833063875012232821147909419391407323533421124915863875048364342157677667669631595597165147819322701956602589899230431962911737655379264424975426509127070920786352647651183192604891990167482471682368811498217383957254769811684246336818237860070132194089718627693442374086923158411033177103565484286998174705782048747686373468031436833146018723457035859213465884685947546938658684337438967210377523151958982965356384352484266447227497773408438288824879734806073393670730224444479289898067029402570333802427621538451549064845162879563503471414551109437353483910204709816690744514707722277742082172529316072780213901963063316435655194794412336853532857489238234312151070976069377652831819096297371286077891813392111903005205831838221973484491456982171740007893800280734850135799586489486100032554247225519757178345302965180182315807986743554608648262401143436040363465154544190242329118610037646819906178667038825373330594685462952895273640994814537670621318520703556842089205216298183774516822097062447699693653872088778881466134106165209668176901649430041793784497115593545491488939298900536911021517509971486936871088375440184594367695909213537794189321139745093788264287183670750527263506814371965849909136118130891354068680689532148614200353687012877799932746019220982738124944510796687005126713529530243782295771444949839467049493234838878677415558374365058488059560453030049951991733003734099727265740602456450581102225357977752134362154487092678745306037163900890834554062715150076823354665561003120973870250632950814950773709529886779114487206617268285769595538121164335309264773046856512189322731950955760047451710802830733163557597449373874059857664451899345163985204722855195609318758160158091694194938416948645810275230013338163957208181501053277762928258540439854535698738116100673955387332053566818704276908056834394205775019545415592344613747009652116815804200279770044543335521948692829958897043917357015703364070737049710034441766486544461730759077665227871730880088782941068550623224943392824785900840850062278095580198097748601604996155760435941873332127826952379561993724089982293893140639231224110236301994788623865828630642035352761725519761038540433133198193254111994969897826129576265620788872733191727539821884980628914391144686423319509785589047151688583276946668630975366317314569521660469000259928806015962635446677260327734915429033927604011134048407668980852128130454357260325967002580954063400875033252918098813345708317132485234009760104154824165513812846114767635294160561149006401044903996862087117704588693605748844500794814673152157325115903668917548256352376683889655036743288292626882572445364654877140909031448897403151861572253559373704432895555289564866436812338248683486754747131880558671738263777306014673919534477172717281398791139568984460018072479491425711396028915547887225861693233325931604980066654159000518871277784825201326574980386019916796352936218677095429466582754943814296213714597460454791204830228359344569328795068809454273734909530003528470980878057256901703719387372289179454248467789714760440031723698535901567193220763114937167729327883730446273924335534618504737933995595592849873806747462471869604670410821971187116093289382933472716322180901801555443474138903648328297639712815721001412083577005615236197093967285374680341057539804275531544618415925156559072728707906896510402042026159629025339006269424867682943299677221217131340708352863485712831731840506299426775025961110379270140371471110821392631504032744871093870752193542796850915860107302413258893757321734821963858709027159597126898839362791480200238216535542340562987158627159870904175916311983641623144185195534618615741114518012722499217667377535683230605918842898436255705668207418792086609529872572757900583559018331877127701018941368883428004061618973405863155199353799090510735105376442275225597963841605243455744133569715154678974210499395715975948707801141078310737263894402488922541287128209074997577338877492884626491559620699723177033165822129578608191481853394937154062790477490105342013602436739153121118298760016867496010782692763420243754381312251425159545473162936437795208126864890198738381125622991775623286579351799360662952961304362509970569604795854235821407669891384059545231092946949689498744642522146260537619385985807827343042100571534673892064925937550319357773546015244437611023016268064715144328287785815446792506832655840717483885651804920199231104467684705514861630476028989445349872049052394423042812571072009361183620331554583979071778702627445000136461352995533179743454319558020129988554128645298304741191476010004974101496042164633387701545049107887028093308098968895558002708503721543024796860785641792895313776523241162657879825888061997242479272651262459517985940455662351446439939662036975537331533052980161007722972698875726408121774740213704911762654444231486872091482686283491826688500824648942568707912803815731883982569870369150397690371899542185786999312088529502003624243467258562444059298191972528695721215845020391219653819526632038181054353237273080989687086162829215448870643862150504515611738235787718985454612529527864815149615780645980125688012625988917824670977487963762419686171120585581003102747760993613938736171218396550968667749830262332835333354774720977561279301123414518969462616775720199624262747940577046046207141300450198450816266664586676162451050836956945741495339205737805344260187069642817186096914560254652796338622709933897433076178629877413114571301795667275195156322819495211933970359941652350312361210833253183972930636217195926696136008952048452616217257444315222541185668495993601774869328428225694638914088529200299254210995006061026423391003136641484974394732797156422481279777510954384577638207117271321545760214475331769481392572048078150470801404905785774935185163600747314394113764683516384279988324278142935352946915572134615113960720057162195069241709180021655412745278761638742538104692433017913401565322550988183826903141220651125190105639767107386151172977390556397461968540784473922575201926979611699847798791791563074313972022798207203563494005214751454625878173709195945374404272694098813688287829115623902683389283142840919585195735078695855851883523447125668999503973393652981104600836474661574442048646727924727436848741250357159447216628883804721922886854673497338081928328150985749150444458514166200892870967489907282626384672454587497454506053069263894073303565162320934372605162926680833536157156026769102186132682332646614077492863516066853064742951172124916161754180505969410589048493294458993382464750951292927035525569470428286212234412043691611051579134292599396392197689560245060367825601677423379004795159806022563554971152960324323777333150635290656234989367399547354354525505478690898624911923743739472216263344703652214005588645209924833106979416429756077062862506708891639382778615330900771524003850160549254026976797402837694709184816645835970760700260784062945068476284702574311499419676717325174627753558495930546948262921852533788316442887512963975531994977626809793339540155839312899907371027897931762777517201759868815374962756598337822075152872413132567471215092634714511905692667442186966326368273092286628937475048103947686318458791407759756631663921226601565730217327883684535305839297368375834549389755678682881154450955328143399517118928982837141182397539019884900376614914103775941858890050872055458168333526975811790986743897135759453423284969658657297902618099092054773415382560328975385090323335663663525132843842839173198983416300449841208339424817212034645378182817788250222634360399553184614628186474522820090283374987432263241148619130282138141455898542864913986738672231450047898271239958690447136345151614428023098418702778209973288662870044239915544813919748762547983121137633300131755165948165467713340734853214856498877766994703125846647722939367922636766656657108425163051462809767388310235262820760696458176826651776948144265499244319536694844921034585832222967928328490632611219576235387655296159945392841615328613626542174300806009039570389638781916061556502261521915392310194462051274388551732806741337509034115976800388842551221050162582332166414207187624317760052794829962400344216365995387086628401671776480850461623193810263730307025176220494387712998548277981489217449007197612477270615666122743190081355698588712237049688179246609660226886059150056302106800852663152506744742716818778059929970108974665932627917380528477197968374147851582293319946908367728297810249689064744749965261553136767937770618834935133531539827837518768238780865205229458235760192650290432945840773046688984512325237947933581724485727241112262500882941965064386969700861104900670100220177324451978939994582945175958003331065320025761931168657261952900015327619502913621997054646145539282591653477959473910466448257197081794312986738813131436184188884580426031132580525139765948447639222703970444181916176304557746031818162330909708780113445529477933057630433657563932008894451577305183145893253398417406195070831534705349165147914626725512966505769009546890417517503531759198592409186585102411625361935835878940290335719988462308261735423600319606623729491307499619613853330971581051325011234411232437465150325705784438585138069801604888016491452323775147163117936756750157502037044919503760298700567413984883332588109008016368613954747673914898877007509416059367431729026284280771352427211596480162524206213890078894267346506039741433673391903045644334621676880703834630923671119523890540641219115925961801407390828403096443448147876492371774955165054772981469896213614776437237677728669068327230354336086206457139693105488045588061867486323736539517794158564092167125376589929386982619675639657372814129425147459382784342017148439157493031446367301959368672378585031779811014952737272162182305875305384740816563836393798535247631613072183822816357037042278340080072251405155883737399392297999052906166935536497880709144263934185091670186632504275689790476482282608778549819578492098552414569752756288647109592591282896261795961113896291518929980992661637088271673087194687017251769337304430309208616256090799487049588817737368751606956447573517323850911634749062054615223593573501832527535223914424580354121459293925295101470463582830443290684295231760382817954400965278855024067495310349179768843406865492577974344209577144820384143019611391321537839937041734687182225414642775231186801261551674312594742761441027644983780523149333087916424228189477746924589017769626540993282234794364034378621059926276608971046361402529156554248238644675929831286231125232276321050776440097040233697083810358551803081887680499402371138390102852171666190287786125869751078354844239844579416083716167825395272809334531259931798951088528258975141228866475305651367266874435321333316160978658749438350216198615831286153867600593506011867988308659591893712950841388100856432718637739520369368385630737053033057825337277228126522139645747459762630327247849253655814340507761855796044112203050565392861669566841636133033974899035181680447322986716053997576013905677991297937680380876835074979515149205711672548566571366870150051418088861853802188215997117952100559697317239407092951089811477277848250419799592978357244423058332349596612630147559717707569967485104055455120385023404107762551323208456211700787498986787817896640145359383140905192457781560781813417923640779215116012384336335193176288385575707298966150314775989531002386773970793376537657796341173724075199614577022120498176288623956430905609555371349805355217768113872282162950070766876224077168091426754235777276971650470757158111461413105205235259406271244007307075248753054155620309407354912716671443430099789112189605740195688073742889608488472244934353102312462201838204314163043390861490639767100202260978217831276558831150487015373800108774886136588923232861385580615789929996887188925640541688322455806396616171801876358201069391051648920152806006030835281323416647823572921725145941916316754093206488150691771594299085794527759843433348566582233085688707610764047647808474280382570444656998922512702066245213097881008609394063982518187073285894350248982611653949177147666672934516611216406324081739774296624390512391081816062212875088016701159661336488522918646211929991429085958904149660692202401409221231245591435413753287692370237321816837841308649341124014959297842171992844758541757793508465367955036914788326634226184400647112908356004569901794582176333951005676607589027280233686208258750606056775822372611727446410444066406447206481830811767310832736268783522575272657817989992015363657862547287412101502200725440031631169455216405174002724206485875408608403008168318392420963043759114871199007507476937468596046734157961709304866198542945498917802774668665015164428357225078177789592739172245137566547876017256367021560736238275575520008595114401813576591173541608174320280232299838582487853663573518838258878228156929422646010881059721373887221274824094955110074946165405905654568037075871306919666187393771104915687645320645382302828473714273067528592440628844653375612541590371960980133524241375364006763943827448196817553248205662676657882380263957973796457313794898701411938235347382022208785556510167538089501560441030070743287386843270740400411037861204062651064696415075726849184369005065771200748412519533220708064403714877303877980328236051408641131354218058135652315521372417317715917104727923667716017115740790349711226949712197397484465584067537251113960820443164231746335699849432321815435575665208228167525075195137878141425603213276605917654285150400565621580830342090914825499172439074256787446307340674626423777787647608024998753939780700067075291375269306525649151251480940413508162132382723658442871595279324378114071862106249870010316728828465082123588802675208140847559666056973292095714351879270045963011427732770502495249445054518804168539650781983062234081065076185052142843348006445753099694950689308052255030224488726832698866319563223732013074702333599759689509486367757925975834906207388001894791336462280059818418475617503145611775661673346369008458115623360581073348047480301647299976884081870547100749836305192649646046988651766799964047315236865053777804863923598053850619797272113244478496274469152760666611792479655853893953706616922416179058046184291842441539481740479167457018292393037864686895257761136433002070265451149559405063965139301344262147122045064392805529550303616818025465438627733481994162665876324353505901528902718289441176776782140771447152879824525594346691292150819997236776210580028274850852905209225168607467142470046430111604112842861518180482268851866653817492479339853465449374193036349058103807053298829909000902842229219727592397921413247947007918726266412705592803270215791634660638015157552472739438802036830478830880252593909112842800018305867780554386020544101765980280352880377963180966322522340272565414546969661674647934818598659129068144699072898489072551965887453447519524986759442245457799931550379604477320458743632139333505404596168142940743708176165587426250770068764806075691401171865935419879840185665480336189545856840053392485761296683907317571563036625592507644167030059379018028512010938485872540578245557028202279077873079835306857212535980939804616907782889580480935734015424068174610863404389935456619372145728424948879920707044747697729083360153100075468896824775009349390485935814815103513304570508295224655883848939415309751875460718213675149728869929450759659035483593645890173786892959000948999935505307703277919821868279519183596476362402143864295589260752111570350992001749246465097311538726230758634418572642297205594510870189713198495047234336393352511855887119788798895604445725724386340029843408884588702163094569162838609819542204108406849987584200729402614338069118920941085504368466226775047016313793862565764823708045010001950730875893590183736831284976033688445161986651733990228564419567588987368686317041399260500657141649875532235021326302930653642068989657325718151358725999986847698856465863640493121407429991667185010096915356617312404445320924876911486166608232209976708361085117340436358389100817626155266934160778293453607364950269117925511284867367464020867049856677987863722668635436127094330778426527328833575591611756015097761396269427727880165925489837683406914807558462119833825854026693480031666591537037784327413800092847335979112246814741806733655073632218137496176636053183846197122839191894596062381483697043634887122871083346566520869986002469738592626213956950118724665676269746406843828943573300115872914591848938317427069816172067084598870453560800426559693572453285857475355071905925791766021357211366799683514598104857278676190872727913083879344077458511108719452218093960918409216216072691511602987669702480037103600679656267788584412126220638588185744962119056685620198970431455035078808631486746751663191846567194169703389154321549951870834211994856653243623087776852240332916151128985975170620314275052763022811014344878986276567858164251845123937692867509780638322343639400508694783360766767924559833500055927826785815865217555281373431062235474428564847125411755411115503506354643884958340684887678773569887065351575009328972891546189530343663134814549890768053656344750803312739023288359800926947237862765354600900983833963409326624484653320619567130230008506304077242359537831422975375887118805383659586233407141877386036631824575854609168154760100668828223872812884302050076186085596421029996721127779495922771567902206396963468862143887738701916081111667935207740564770838151224639576232917783456056840041287799421437114663868575788138746301210438303959625674752840016417127829669275991793246540405044582213316456901636487926557521476472599167901364894557496384102831234969736023126591197325205663412605306073861343470293784666608568568684313543340036750738621265651664626362340778511910656987713896530849711794779473416922547750141976398183421013976580573127063295918781348816094583365518791577369033133035030192904823265589190997568905881067194766956664105932179653802248211319053818163187297932451578003169817197816894094982589243314151947225890714195924099885771914026991155272592004474205924430311519515926551027566243742712754747806151934958703228601034837232129549657083124785516698681814152357025565014701331823445394910240968410667115192305560914720012432269203517795149632434250004315115950886253487540096099226076563186550955814360266870248498266726866430922159606142893687904488868951816844740782905889300081992120591890644279301546812953307577386704113358721863127839690839020711384285378679145286904986983341978123394043944914281283911276331688487207636263463051502191191942875661610306218278116623598559576117442708160511843570317827327017975173763692607129407980687901070580058432141089956106620171815285762657264555147191250114796416887721245904850451957972303089263542261760070057838917313273218578778009223795973008513546898596034398223471785408007401851337809548796611757305199633283971386078636226948531150505393162441317501313594219314085086856885136071545418080916490562500571411621397562916651303984758806332073831720307216061818883780240958387336120301470239584936820564632088950663167724139015268117713934419183060085424900752492577801183068941683746649206990169979708690602514641187336728577701710226883163856249303208231695110896294066106176624167140363330215741075903161933294189974529497372656015482183532511934257733880693545842076779680860381552160227972111255263798487452588589612084820858614756791273473584823130481866633750140300917464824742106649713499937669065111303699679678800441243142993884545521686199351774796557824932990690599352434996429242737524997966090086898559122978338815699835928460866947604268984441679423464124767186338461833076725189482324784422425376445433642608516981759475698249361335553327537286153303791009433913072939011665350083128536888653489804277395668208775733357355657317310961898617141535625155881804920952143055042726157744056579364927261036559536436571613765414681496868664967411526244269206612109856437841615838521560298905084003416909830431467863686901519910388463297389733256770074171435296171503461918167768747114865934287297894992361875234922349892450353442853332145384882387780492306287238932476986597278746729100587790091010239696976814286288322939693820447554288282851109532225698958221584638062922613169684006352407243987042640135344857302616139735023332131736859080885147017399555463671054561326379679088686002791655254069707268735149580305936496453987665539623982614950243661291107477022919112326968615204262828713261738974592076388517479465197862715395092495025783927101786780409545124565182917935348873234685843823400817951611130152672562693743356569688408176819531840396000792476213442490620346560214547174526765521609880059060704086679784280695448683988828786593303607643287119170070939020920100345567315914524930972036437357911645420642258726276824404781679208513990932666716321843547497198915036557313461366485058551658656456757284380977475900912613780963707053692779879342974434155802838966790139306262968696181769258951186928833067943524326140215313087096466881446980718475969332556386034910023366529201129618814005335181276447769993285110664169653308152462285873240587977548274695380195619345889004559769378782765647231431608375286922781804763173604917152205855716894492851704578185198004607715134708306303727887631789878668957950213777982440591966309711226349835430257424537628164660000410371864060540056324739350200697410960071819791898436426220836691480958273486659446533307301621561554048983587787003883123232053731464344464410217537111650275939995234326382041688244559878473020852902913065312386889439340994422993041108636078791815703288519963718143631750594834065379573032737321611339309599081855376054647408301249774936375674252028569020449067295751173615123350639211863080566077477562637542870039714847964961830572014674009865488759110962749296827526755155221794596111955949087464115189124068371257598513202855024319550292521442034374048493449345646879652496616011422181246441092248961450694038580483327900812072772044204809231823902574814166712787995188754896197369104157211864831419217828042727897053938973717348612041654153322671025744408736184949858193815088502766287399898880409756062846486761873270764907952010114289960866138924986356106396570266427172764526691514950533627045378088626627202889649515734503482349505633406215888899235146664088500194957118041674500423181781300832013896002246798126053135230015547285469639235066039569158068348577059433703196750294813809326432490086602236324972156774450217741794470499979047434362211500499233559668456273902974414322950223478839019409235375161954467213510939539884569069159657278404959382527334951908979081879983165084412606728503586812606462897991101183106613820347007046493517758286188703437017213291286623073614135901208403796678525932266358621105594588759562999190458624194081830558461347191519429346230411013217225222249620011016418503229171675918055391868999563732181881980450432769184578713136726429783447727160910746812714102460537211640750805892864065607623926076082959215089068443958450015153611253067287502693963273618620610691608547959226750849731966110193960857678898537921495919373330989913626268546343717833282041090549966198573964164981610476272884951185648008373091704840489267944746893889178767624390914547412287531587540485871464142024416397975598833439893829583525932287731330456694415969190497818200750424475852620358696965951507422278931021310490663904997825844513746265018203414852481872352847771416078770631422163117097469501738797441736278679819762554414396759234641955578545731380084404751933893751612257448605257921314327178997769785495938396379507615798781180366043201147042593406554121027101295532246651510716334907524732624752993803850699057383428031126627861932824312279894412414847955968712093220407570404033825046105436323348789826780540743211587956209539126928889749118350229162275924876732555312871780630808993593524930133175976547479551761982313013696827768825554891919200659482789527657674637658672457963040901404081321059958067795038314924934673474713269520637684713499403097411525475536451437987115592998151831595877325893083449117151984447812294471664319032083087337602965856601374662661580272676921635776447648502614113104867907906582737168383694344844136237977645464573760150029944383583005113529255292894623962914409495697791501625994857000007827487292635621975458348012405401026296243283891676887806671101133312540850619957289666816998963464640100133808252851480592750086746132639595312092996078919601563344775338418709921401722721519346334487838170535512291389276742419586638238753461610452884518442104570689235775293619929120954046799555941210747897635045531324289342604528977010066054410036893757404958772810107358723599262170670172874686505484217084954090746749665220021330912901885390135780535439478167105631963915478127120682738682790378321271909833995051915461088223187406264942580599743166242093872020424771629238713030738208364643754741180695629591624253148977587780695891597936067550103184438038701389729194833776756364368043132238896124086605590443649512988871663165037531259493746348982573012246919958357043386298398650422881981116037030543490160017161004713421744901810261192117652239342330832118263134588797172204683277970454229805515837919138419074166976440494263857612167992961330072240835883870146767828215688228273054710001199009977958711976924219946547542107766094310707348746007788435738269096258667042802314726272722971765696015783760605775377732344940264045170032873350881470402820815035585603558955511773018244714537577921557178945157376702843204679631442205085171792132840639234711594883327765652008528845107009058546491360991788879521074715082339488897960096319776541426525841142047723331778768966865653230585541583901626595768245236217397473604022602640232390504154440215763761957628686080074095547500688750383096678949096627529997797691800605380524589907956851723417311090561868542246123480988407114962874829503089988732137921876210230867241200996516074140843378482575023114822123496127179543853440537535673279555666445680619507732555486301486493044001966810583670014656177313219478303445381921706756687926224460968789044629385761921776958896888198554525637893221063246494503095120236813982158305446453550526666530782781721602441943251082822771588026509953513026637065048768964840853571674865323188334438706458625452022729556939465853702005773153363000241966316388919789099504820345307029340044290926403345757704297322258642884310478751964068481149777857808913609361288557732547946358236388980891165157689599262415633118811050680458343331376164115013637511626396691276099686209319257891556335903415464538625843147765958718939403100028664157262884582514950654210627504032981041365841703486394765482306321620571816886372639399860320828478330565444577465171853540077545653759899042462568832437236641752102488282731108807279414168993572360951518167204985930746524240730335841168832408426909681780351674782372475670957596101744887944872525609534963698221124313180490546325552466295493932299022111672684888659292234402711480963604597918506535505244537205369829832162178494666548351205985755021269653461335010243105529796281000951193531728328497130738126900871995433659632685692287453809620756270233097734790097348847008042333887789523664554099845511462191420513853141553102970697291442665642536935850043569346827024530605386705372113255686335487626543899528760792968616196041003479967433055467226927560980497636549235704704781419647267275067804320199346797579009413880981574329558870881557933640065984374807439918902051182576900090607299824158680258971089518590925824647836953119309347757337666377431842006316243995973415709363785201363577462264797742974821180644825278007115419687851543190443180384043205686891148868988068508508610605511077810406702975471744318567521770225580332705989701974791822265535386458931298954165864496940664005487154525895098659054558733155595415321108962413141949118751496545947853929932221613923641556790344715480992524759254752736665197451128512689009335575183325088504524801832362990166102598802974890414683661261453216362183635036541513363425414012969341587478338055867672158799969584490469393420980946274523581137789201815161406517544470252900997234223738798703690601020827657149862650204977686527759991727831450830258144356690266148299522739645583765013839439686609437866445765159993524066736623970148486826469141760288432130799423037584232789975235678199992597652826395139011822657649250037923523375900208712877579902987558734252108658263085896101000896035101639456924187513138103417415755053915471742064954835753266020479211065747868947232935173814079710525434726694585860677240351735374212589401638346624774030215944934032287597775930810682995351322496708375348192216413870841796017837445170062922135674109184181471902210859699448763962857292355566704680571364632825900904058226827939808187003078003959345559719956334782029455281686578891816363386300118666343052782974921187965586284710394732922646279461839161637309042379496120528443884549579010053069658354754767661649035976991862238867317637002340637623221713398216513407505100749263698108708423706083167971027841860773763888918972494693043522506502712759431389648037551210191349532832908329516746277354475364524195379306233373199340099162520687610065405443222033896063356929426651429906545847688342512319274469430919953158804890629499052590701681238715320427027636054012932662033037414126623603081580535315164860455485231117905298788654037446378817727682787300313463901270744758077549917594515452441635238962902688271009549254530009535787203632737657333065881500010298615563652695313264637109678485015640948496023645325716342047187703431501774289953760899886010141502632451610850818775691450317561835393370922927436667954215097884093948992567454312293622257913226284569155094339535389690420450749043016522605525581369205529665960270827396493345166118023790046026954567069633345375207593969485057474326512224919163445577284641612290271460437777548018211211538434880978746652326981664421380853506380095597771685862139512156366931794818248128747529651047632734617702820625392545901849333381855514583641906451021368929758408066276812715436621923421454907228779135716595252985830522248321234270723496799820023327878640137943791968765254065293159094394683489838067253135148068502091925226419462497573961860816426583028291847567389978112497713391812316202783158558367831784825613651084044095416163175138700997405030561735805940574632157299070453234693800638595547637686034000892796849328719968227413688812533770363152978914505965194989336204139650910333779847103238880117355824375369500631713829989150275762987508944494463426359442626809530182714606773396201422939191744361742008892708093594812092690336211904768645052901652706722285303237849682809588060256989276809586665744202277822401037585399397451107398169068536440411696133262874331774455375358392794104320698481377385195922293526023029675569672524268967374239244013472041196701216786563037316744752989377899761884135321596556779193646677367523229110068333467877011280920541050614473277925632747958578668816898107203491856730389494782457832377072303657901204600939137920454432948910656846654284957810731453259620744191500458012067690828787263166084884976506757113851122923772915807714759703361470924482212409734720789706647890637976419426003230562414848321278075818122920777411752663930020452086258787033419007353790949655096033904798071232671945394475196357360701222270682664803150492105862287869995005094558128090101120147974457995310459530107169539184605250464829879698991902720863759229152856127715026975660134017883927986367579882185704533960339661551387812559278132473209268035830648298861528872291734406537263889926842475434392768426720026274768713919177904435482834274239131995455265871531167947687966427987832315288628233630319248286842272585547556891295110788493878663210220341886594658475905137725286023471149632907695687662668535534695233089803933099332585954144065803129136535386490767816168102764759704815211420458126848869231705051135864095700595548586616943294607453703415907391006866303688015856507011316089352232944355078969022190325171347865522762359603528095384674673375888553403634987751407401004019172846426459884058964735817861585531775332656305378206946627183262995936018681499136636981472176076520821432095154612431298356929654288765742784667231726493615088744296064411638748494245506459757407828350331167721824136714630175028480418409149037459457833595613883684623576370766880938193571999044704507069496593243470735137367239264901474521052074302920207380577166274653829361485344480763917847457910714017603435829968070614718128264243226097035383904679476632786682542364349564723766262407017722243264294035182684157025918398454692464917292355435546789144448478286960087412895413345785804697834201700155302636565185809443238221695935262808851770712629525101410372179741625870899986562817808120827536625366003433821984813647050446638875659361993764137075815925699420401927918021205226203730718742852237214046489646319378524609766189044738310632594722946974863178090024660509081528905423526388218048889426603250833818502901081042680814811319752542668062858182079994913446839087230825770006566826622927574700718721164064184367708530355183491220983295499991787469633787986285530267530974702526046602500686658178279337538362298504558593322690489066756769216448347807418559310183252761936866545069319558580860667334615123163281901423305874517366722771215390049692918511758341359231646855553152828420012200152748420369926783358281372111586072370972970174391845871747617720350251742911620301672448196719532692644725497024726535591003564635928958624931035482001750895443149303126596638148466343119652191884749703057136546458873084828185066993997236241367540390843813408515834792613553990779851205486746890661285478560012480851364831989364242889120962232270872942421656701175306756188707960632347840385408589744414186740230460676872833064741617932569776233036466346131429394881767474517471935774902048246195196743899127559495330044121247757650486562061209255709579186298153982956045714364537333036161334285265024752161345200743287289286205305862333436373348946166169784775207322456040891543531869110097289408549894129917542477887535883200864653207155153296902467183058270678181099638777557318592025630266800187244167356261428075428122884696108629523937538763679318309446748386713820742721418352257192810838957153770040138048739361895751752961080317616477899892574402198204824399099992387982043842966520492109423666363402973784662877234527913901879347151293991452445565711083155154981229092335231673214177820329921711993734095641335576029746628203866629480553384984423817722161929709832822728811042758617916881600766392597496389719576720891605553052280604465788730743544753973130042881207074816936059820268156162749315038407926073406947462221879845848427184022944331522562831746879981924126945969709399776581789548019493288835132867609008534333558999550613772194376896974393769026452521999670041702348250636277168938217730691089443739968851243772437255578353103394849193817341446251362201086626304099174155334986856893902014988634409282804707128007640540655008829430998969661795461524530453246885930301160287269072396037942465534429322413738953830537659108977893006202433130633184822079247247888997708459626660822234541738968374369419149337004391658720195580081390895575857284842318531520928680746305878651592040290857388791942327743168667491456030337045314799526939949662203374060026743958568545857214723925079609399224770376722662675006027855182329938493894623812466796699521081049156226306341187996331982832048602731381454154514012116565044580305452000730049778870751193427819186889559081422326657131887149543845630674531996452426489848032930233712526426144331797503507655786288732881613218163598709211637511283283568958644123011148679422113156048915219661677647268105264096430328156345865264711776562196560315573252031204250089564155035801681293618027385370665152999373593806414736452008948347533475746127234098806812905835445426527015848824713138121898546463175296846030823745939449002604393631670318161685001408395179660075875371455997429243910527459811282800861364060707874564381636326857280552868144043300929981472964226496482985277885044365831519185048222619957466356180052815107332549708820417516800196671254098349326150256784124115716651957022616863860698212702260434204000569302907238604650144080688396894902509644241248124487521811581486998655393622145740457937539503320147676862242645504210124367212666665753250052705237431447755943895598434187577788017791528629282268501552849831541527090409815037462314220667667911142676143095718412369943182869484498468468561953221656797707909708850514428136481323126280027993503277849885160000343711489806624827088204639697212223391591469391599172090285801087093360557981023533410096379786780567909746319374708109951417181363483812712868912841469435143901895918509987445180625190218369567447790792597362076914792707968354623389521079183345663083081020297184162129414865456323675224372890027886373362095736431924901638604132861329563375946249239484917209260330653554863315561365771814117789806927138869204223047561428988677494473883313580776335746248054041660249327375213482672756489519388634569694731537160728768193029752907698623453804315679837406974732722098534743386417454407021918144212915242331420062374939021206971419313243105612500519855831961622963228092465170214130995755323696720282742590139426014035052443737816583107004069883432732067250010399033813431073859854128231175099957420148654020234255780586927016117590654561033121549501169144309525856281402116090847208918085425459912654277751185195453792601340857861157593144284070154570307858901441947405016563224862190453295922774623520761374328929150033795130212756770389819435094387455041168793909427890558862981299948654770585066867637201008404291782115864015855738414736600248895796853025282827555980021344292376097830924079367864151129999532284996497607227307085999507877507258563532657877400729532566404054336441178675306434740427774703593975498596808774518287616566409187457636041729142371419122131583245820284256917706097642612967057358796131374573233200387465426805721766794926033897150999060798820846327168599000047876089562390640089192274953610485785094948873681590865169978779924958607996188557066149681077633374282758132478731987887963213980875156889364018249641218135380741330674160362263581589512421888379887341383478457812927298545694495825840300562918095408074828707464319718913547181735952589353708008490539533346103969648963255268995981663856823948948420547519947580776200962604597765772891835970875776313369840961840847783231646061592946657494517027848219658869375019997707798532272749461348648636216931299473008026894794716617911687637794108073044860922580442899131184473576872027968339594835138181054783603882992189431251961196624136207197404725143729718012667621917815899714800675471502250935976302034830695881376489024617095450026234461741060159848869369922978809135473548780481765491588056583234400620150950378654642700458672302876033966538362082757406897746221441406897785679539003197195944281804068091307898101184800000214170572139422092439148810373012202293401000560170093045108931266464168446322157722524653913748521557170953685792459525655396407070210008513441848116698986983216763894251110253914812209874189342164486146760995040520352408226634303120085670587790338372870079568263346540132506822413820116425654949926967944027280456330762021168584203367052973276797418045878432442721345078912101375022600503123397249237775208668593209581075557022610384328558371629604435399872817302866551765944379001378806216302720316480759102463279350078280859993398674212191964716298011571168948425437109911870244154336276353754279452873911100359120124093827531110400192285650033690476151065659643180280581559448301315552049569973632242366429685590475059625665323195904373898454151002907087163858046672987730080885045906200143954307196728460422134060903475710749764077558676124474239458476102796406978987685536137558446595569827460132906975416126890410320210476060360676033836598379706931112693967916326695838032984386937365704431528638216280486524191440415754520645210019096356723122822649204169897737777880813128962602423774843583074408288629106821143163592516873844394523353416254788870185717879596739547725228214111621012523995482570075966080394476259749322017206288177628390328774969868435779495891730812036505937592362243029341570587974082525343713730541836064392070459925079246500521239660784258061457864362920667129358847406577745905291738896007963055377360370187999375156126088887599343115411640701381487991827554258297199682418893548649847160873396693251132157882690492941451462219984873329273267219273952813433490815788731837049395617804467173759180421585441627441948591303805557357876118112224693212519056321262530455935643015584643128995771503615299830383903493840116144859940869195322511522765912702682791681036388419721517949126902388956350441520619725227774228522109811445499877818341520376209059447720473849877993188287956065763984292457260903165290256015940326222784566987201071131426102866119710795178684564170781138265948237402266525750975843601915794346415853112322230170385443078013594550106401012802319297356364525638273709493909955648276730107532626969727733341771794819366108162249028449318687342050036442187976520222324378766446480443404819605010072600291551244252057164885943874810988201739146149585751664650628113805953159271270173031453515805440565714056104766901136997213795204700352576033116901810721649491362994291601162024069030898104218839253842738956110145454891131507051830745592330892601783141268528871454230644231800339561093380768108369150246926879564553789193252238384833589212916301203381573181507820179323496351392037672042328814423248889378754139563690657214156502662511878002838427117992900693014086727652102785692119966333258229018080176206307993709988510975236677629908403238761110791595123561865341961787286384538808101280756949900729117896199018466271195685325377309547897647959619215157669233751586866135676066463723530657679579753785615746419818863237102895610384895935350361579302299141009806617467084947063854789084280660573705478995814159375910169074872841987208944188083837963356551919335978268142925526341079931223541350526146427301538156860129640255913275446908870676422439778668886268166514558717935260420869161932018600509391893218530377452219945996771914161775927104789894136389890217899649495752399933931592329008823726090666589832029578334127306603055066876918776217621296527447780391281305730264620889052178559676121063996727462497790955759932920766946122100363502939254483562197897366446822334698862695265960565974453975603756056923039351963379541546258789046055885844479812772026762399276588777524911969646008043731812130369099643295986274539219880082501308923963290475620981329905820519658124332666045800905400334575784089910814589073465160942721721540470521841548769314326177984767222839354267105615424201295058826509828397535844498707710157655230744634885154065996690729319896330877864509706915163387685798308643548500483263992114303562375026135838110595626700710194724301858616578881957205689699803180184704794037686489624129257384767903753371916716288956455420354167764177715953031031129040381590264942921076536323221323360135768195259535747646654344354852037361220579181426293548832836944157730605667584009059556371230572431956546984111900442410895356465766113169280243431834803214069243354251487239998937448086658304786765791591360416720453785027521449394475338546542438189001560498315022913975590404524535416618536389584276317445107021308551923584062369272593708504195413243283556978636825104976255337232154898944248444993573402631112476338392945386930188970894397479714987202659395073093242903488127579024357416602456889828250234459232657840864914599079838179920288037850680651341322347890188552082923384121227728928379901560015974552984519327541723066730439085137047211764640311918158506337760939278170919514113909329813834293774157999688974422182238391471353591659504371262995014837217184399971376379961719704478142657866122359003427557542366945909501638764829179600979966668572869207370771033003544128367718403282696417928382939708284659118446289843069654255961817479518382948059377715447002005636666068092714962622814878481073497370168162211375213232739362457686048270586471199685664380929784955582764645178645837485691658783850374710652584194344435616412638075910368799729402603448450871389721088333084631387521592405218952399534587415527562321068115284165490199009398452041215129355982189788448988146218097197764281274175691336504808760517985420785929553855357982968486695272140794695500392088049377796300692000615820791992615291528586896053810754157623053418131220237336083165941245470112995449073559019306061325065343970249256054939532131456936673435182814945626759635992135656940874274778306445960341551982307470476591613284052824729731504245715249627457014988311804492389364165167894515004445302908497454533115811983245214953022274996736054187298145932064624301924938616851298507526421409644526263205969959594091085669210358367721487756257102214107051205088967185927908033460666897333245721327927517682182251926638550121940412058719727416644916900219191382298258504916501400011040230055349650223363449601904529093452773984260955412356898070327997548691809765921857204316508329798096412465832723488142585826796860639491310498431203454770146262442317561787505188990646589155839466807025742703050561984368305927471182122183688000008283819693515230722263300000842413748923872162274230227500064506877945220754515897728155440075726378328457982652507944276770516495895606153381484288592761852864174929665223179333828740586267467146882966862887978982661187740967308201976074913433693100867976119709925090310647575066070546506519844273930751957162518099755373282023847308111880527662159207403690852846572167050101660653548302890359801698119571168676170304936207651322673868816669688242244059294054959626272305295201480691767256452162893371736237851121539382637770791563706905927293593555957355071599098860317063539946760630073279693292802889020703872299671165762011847664371563406896853824458776828236223502732106009184108352319882840174111682076195467120359189176397145522150946850650886080895612108938993805590164346768561858841638400665402921280591751551555444215699433667547775917111103255367058887278076928931605002794853195954025586706585920782167967715679085195643187912442077962715123220071914560512783837683262952763112293199114054260074598360975479133346639362658941139516263923150144502270968055637658815080489257828573001717789762349357682080433292522320853366581281591292945557905654066748928581471192022666434879328854773252790064037922987181782186323293306209082973154958386935731903344815366216636671546842142775791705956670132053712435965182398447898021983086071655113000482983765875061033241756491163287000269304051926787863207218270127627497333346857731816961268882217743716692691841112348702422501471247012663539775229277664591407125369638979794325151212642296638713573542599130750958201928741204404088416664778046436657097643924871800438543589074988502139179780152419754080001690772055408677123757914419544288269111612354802044909806307953369734301036064312380726793690923733849412598677744650101593031494817784320282130400100110800231233550843271883089173392348236327327951349294061008672887457688198184749633520465421935273712300299797703819631972711256603932628028651625351813256303792428127878946358199784764119044879683066731053046827635625792991512750136684884520457145405281526512390189366294148965953010407292025360438596670969814309579574347812272560453872701893295193262859217014464099271998725820375666546759812067817101305584942416887455478882893792752606215941893360150642592181919762784873473965653146242385708352262334947186065843990550805319999713298293915769297109299556399144788989512684002408167765551291462111604826686396242308750277898355885562537547023438141748821940353231449637579642014826634032311104827887185145311290309730135467389139163944390109772076613876580867797937401546082295350843297341792599371424414335613969039964844046864798978104394952980622003287763245677604446931615327288373686172328640032301503934824397801903595337601194774813819060253042550883645745033572608196367302474334528733240051559031124931786285887502584810595317547523497731793008525079125223648566198868176365430946384533741847485328126717450054274999498210895762869505153915928398695677722972787687750554039253847374234479021539379614522489764677411253103858778195381354290779909893177997523935266591745382583499665379533828323939852692566116003631720394731943576428482479791213053769324902435988580917278131902412641690333411652128516969642945806553536763564739122167652819116145047813149521030871464706142224640529285642564965484734708113163208453582003365486340331072349243372608194619737301558501453526752299547178358586711196218908414721975183712058181481521912471543087890846037646138250162670419922117202742511080313751606441802783805473921029440459746418701072312025710193195925243552215641970197338643230322407344117212352287347452053557200835872806155968249715061636423971068734993869310774034063301730366495695977602125566820847979490609624287107254323625344684033398209938799975088278360012867090011636931296124906333478446619577289115373549868274383730066197476802191650213063051697754248863868336216109351207685964834476360194728163544176029326514094797509461125333001737802097169896015341744227543399455862183156465453561076965348739141014676443695003507493459705376575859890000112349500805497511032476625493427818588766552236547626553552088914908919533225400891081616522436354243854655915553540765447615784664106783363815654275112397106542644152310083168582599686931714649716281846402688560567923038200439680827397434832223930220317329925502436538824362458836012900875947930893506463041182508042404893386447507326936911616020311923683850235283621830973348359655611551974863601320413786879305121086989555801601138242192435130183951732522273625736792143951957392320096065308663232843582161238165695676788031699982489092329911227710016520339333599972490781746056521309104124377127885763245019898934453370381653991475914140496069820975052068172184424946333849082913486825321148901515217334111535236914634648830618856177501385145524046823386528445977097899704818727456304323046025192388351349751070189955652573170013043729931140271784015301832442032716287781085789723266990364085412240359387329605141320575921048780373848971078232870635929223460818695227879948794069952299685970475003397212371974933303401039110397111952738236546847331171792414928355779278475352874106060151091643090982245219149145214884163840422229482321488563237313523955375149411676251851877109589532402418425683803862909743376415431044015828240679478784245861634056759777108526319322964851691474378564775347180204671688947159577032994820547145776381259382040470652522940339289946635632534739873690850621176961697914436328387659462748440135177737593093262372311750018432347028694703750284277078253169166180177160469162292995494733232590517566239040979515098697948661797242460615329678078138301346464100359275444178596116852029414410083857042299575227019698090647798639816954725650455590388801255318997603022703496610514512341991315133498849776085346818334037672127975112455568811421424765023105123018765680712458282844127555775103638929227627229330094325833591888781169114659267146733821536504463563656325492653426717209789086275417240414851656473701838973039458019401112666556530805012899791416050637867786327729780474042691443064321287700720977109585780992822723802691420291120936105898898997361490442858998665411348909659365811763486195144324162298672056103363180865574986517673354540539361462648207407644138908853790493205955110892804490141465464244697718630418777185898413464458448553211019468980382182666722385726139820324050939355217635965461049987351912055153206693145603669881815098544692321941346167736882686849709622814622080968856781962255536794813242846500277189142492647724558415568873573784341217742503990769768400338542030782789981751302080239790562441876029334513537775439819669939997065604196855180977437140005762325742850721262469553358725697793806892844409785825014877765476592153590939404373841600236896691948915716045152683109540857774189736003070380080499757520746346304604892367960624330260219546974548435324384572427225909032901926042178540915943030218704403687344328624596380199501860045152591665149880509506465068132146464749311287450850118145111716363023948580525637551449929358022786669606308385577927546056496907804921025590592799399675514946493192054908077349984106125067877689569755509061959899312983290304402551623520258051307662962381373757402991258418550434530118030842088481698414162540005396484452097156698584197885476572283607539976066333451859720153430567756382304444008701259061283847641949631367801668540937972545575567311817584353053447029007775164138250078856345875542074982312010963408187367965246211296137329314377532325189724677895061307034385332756942569213091647441320594923456766937802646094866281166936522586250224465809088572412430081588103671868835739568117481349818116509929341558070414980602768395940242774819164095231072569935192459350493990597792956852983145008769746654574893691561252393241597131635813652831834755899075967749978255370108561083166615591913174026334470985132771452392457705819261750767612762996789464266739966664151530867334902011531345490138401593483749460870255452029785059382647971233233640743605989479081024695436113141773885150203094667484494760554291888174393605868082969549850191416196285154829926263200017683149072694878837283684324476067479682457528954953515397441610792325665672898657032117014455184030458641332418097858053097442751124497963623974030489944861937617261672130578193686356553534943538364792789723886323171292744923959364915705708225753550608917132363738851232831122380497110387640345618430688091309741001957886646517401022756881240838404812156658970424727866241575956236525679627514192434336998285889615827231026288114885344783140748110953353206442729186752033538627618362115975037818598539050409401334316636161621755141648837573224018195892943192919337158447536140372341856659048726894513437809113163091614122049754835825465335425279807943663410511310522461982565664975588480762780184446967163052735520324494348309995657200220183121533590100196576686316652516960087343500570437446975296198632162535825359040447995923930855877190333136638079149589201664014078921166515438681298000719140752278428528077193495322494429209507699772641988564358596405617887415179744209339204982799897312718491348757743591866828783221677177931248128874397255749866223042162128234089414046532731479520273222351697072980769188667767387024642507087759517155803505211977086946541807698265076769397827747018761576224973132860205064356579228687673758663480896565611458855614986210385204000679690770251497429454391605136592459002179962350601277371557382408963881859819175769427752854996849659179229189759982478116736807191660980243852731118360953960582895866280553135558336194571449962458204561309665881420223406248562389004619831947981057436428894760864712253392012280018717321507453366788636975739529723194751816572678085049004925289250861469718888865494466286545254817896409192237376402332357740281259850280599623767648282326651831059817757793402141658699998213120095758001480766762228400711078753485649976042637768500218538321106959709665716839370926954478773208108257426498500125989708685237796378908271082626984138572332550179885703311955960412091085111883601937094362275247019986512732290533759144603307229998478941200875589138650303846505281557744509159519855285473760136468297413170827423603246070555493289526399490164032108688008612838799062943751972296995530482465380032276491556005296500161604651569506068360674445920039363422202406880404601056455465885292155471649082002745331105553120876555558851731194109884167339296275611947158883423582306788827524376342825933072260496234250705068673810371812486342696517214119177230531732081763180059755906920910211404617526437222232356374842152302633888722463243165031833680595096765745091971372998629540755753625579022822789471899428621101051374940698693494968855840924036172438397453630906395751698102265939901682125115140787723291750398742875534161744288398770326254689049454172155404009052038350738564741890186933135027226614252472498777404879423690438529982982329505447800807847111581580887976739328149547889845254578823518277008550777764819252647197394431386679250084801001789283341733706323125166582840394681364668224356098420499627393520998759016293303386847916700391557574055734458901393737384362216966473759668394632124274272030118783639150416161494960483465556122367394953651751811146368218431964049065731705304181250938212426168498046856030817623117057095696423773441272137052367266189754186200724821111851267881295186008578743405248082664318433563785938902193416721984126570710893699919778229227157631970457180471186802952108945206754526695797814757480094921116128682543502236185018163330903790871297734195055164794066912049844053347872031369553481120832868120059419940628731237821282496536436733241750486246294238862143131387538212608032026004152135530204266349376972190096828943689429830273997782766211691308752697217511551787960958775456100466750316308292438828680484408089028130069793276428740183549145606504015669785743378360043872482598871175579385449698310111113496443729458944818609786127216467378934418025074125734219085926141625045345620514148887841884966055072113721557000447657653054138758883498294964113062994340078749145570583218724988022174121250206892216166483485468931301842829384638696213119918316690504834272112403255747058691173699937056332367453538720443364812286755492180559783758099342313249479273385918814856771099332684122800581416438244253825259757060960817473544652058349038545531852334187372650015040244845046930569886726945049209667961311137497598530933246823047593871835543138938891048164430663018856543899098196898247728015710482248241191010766553255847749355291175982953601369802979512275509983737189190437415053566313363430111047507225591745745677684891750719424100220700089861700357939705937352013428123118064874141417970962070351317238846945057586556471604514035434697070494832882733807098351660152721891642262234251463975076276239480429331908378283988166173497618406902721173388543222162086066954526497480244517651163638321165187201110714556628361913366053560752394316955246319821553028096592005384339502919937157420760498829404495211107386099230646840917184760339862267100031349397994234334738008057130491337407195657172372065827638600026347497400221539854868765010653683057890925794536322276675436112609533372851128054156999347831209169794033976309625758291610475300545111093518270684986544326283542728106977290642452027541250227112298788991449187266328795108764044792052313984968216407560316234150665656848832897144268579864506253584648063464203346914388405884248204063774072631588769819751255250258316025957393735037053165807420791260342351681449690966015435943368689710348623761673308116451360563537726386377748802180240719853946671981902473025370200382370883502004338277556694281173107765028187946021285424760641603644232622000381761120012934307175805520186149540744024675465508772735526444403497466401907561999158096498036427919290948187606035779414620036600131863140765532156839190415778986479646884926690903125488286464850117214126888758347059982521189120046626143979408974641337558781566127696762164787502986434205049508815142404763232372261901102320872822971732222969688620427451613550209786087977532773992036625937093330742624160736638356450046633480765042153199703705730655895124122726637858058070595917402930512264765982928492251305584735402244688334796035091989410212210952085656919181557296068584911125446385621993145460109340062418046210249010127159920683647289573975472310650275995406222730097470874250227856869931178944638727741955499205836084045127273836824470860451332117407231522678692761304124455275531832965288713568278009743491111975519754982476344821669965462466620711842635540073768378312254217969410339867803988395703333921879274789569197877380044297500156166234307596752926611019243206178299800146174692564434974787099979268371871044241371973760547901446835251795091245667402783592094663524377956439861554869773889261149351300702101073449231487149099711016428007878064214444764830605964443969360601880111129928081054723528673799890845151563314256828877779850915263259139581945211661357830761404414048476763607282083974249352191600093013532275784112324731312712445814952015004122204680231458560471646722301656907018423391584130721952260557233441720762426369484457069517730280828297838691915775292505870352416765820501714442373761238402077028009439535838596044354259946462759043787416219354310163158838231819444927548828537913044769587746961047764490016279688618850414551531723092021549767537891161888498323812100186017367412335945506669153225944436055690674848551701753564457238070312994252972053094242423882195074252725627543093550164553610022574447445622015568016117479942611053226343898068045962941690901725720653040280011515253012419454071620498314212862993916192108159706633309017594363999623042196248132187661463781145493906092555094490425301294487919271623356448998584305179904730433069886959506861060796827619486338338751719127428708340032086209610033327638879400180275139379824290393050037522249543724955799624669958399505657220550731806623521891985123679492584238925993657636785234646172827821339783392911446558637293271069047393169831097716585006191497494037297687952886534678899817140726397340119871315325205563880342951785013199792873611878589650866445842348297718762640310659611580658186921311708813373831448332566798394462428888119181512121051924595274028815921731624302283394711800834644806357367365810678294056885443881389397986926550269391470868058152847163738887491003151808435999820838497053968650325437056131219897717543081176337853656575311376188133559684464021352834476721154666732612465281784634027837765499172562663838571558001891272537565169298355644662729217492815520082311900024554349083168741072392488134607703260226958479133509907649699632388947119871998267968226008173440091525147312607414885188113996775726963521049678050073111445478308001597303032844325783672329137019126692524054068981206807349795518593866648300619738173393171956164578506025313105420318283417596639710354992623353861549251184396805940261199399446239735540859090422369587323459866531031030783701336376552910212008443341642839331478965998835873370292580142630743709970353041014001761372886184794946640920172417987671683121421407832160114056584140587819018453519784652736864729908172434383355428423742778592885969869358726263989937998400922050400973123902677330751069836917220205990329995264851345350908799970641858937554836414440849203242226465428382468342240861559401262395222199817688476295521061334809308411069773429480212220664592714156438059419596953368081475238292251403686230929579192214840264605967257170394381885969577230768974779531632806437660239509321309019518048062802098987590602979563955818013509340850106133573056364420574868552764500013748658794159182888532485520949303198340576640280807072632816411714741669185370031637830014041478819073993607701923327274049959526826436804895858492140693316464985189582633038817035375464044078438050103485469657659514901399576876323944057078055452330395482103660852708674735431918620708378916862925442720610618145630411358674050607389816663503549867311468965824850911840092369224059638386597534532722582032307722120291677237325775424414440459473897684686705714280918264643368152183805407281579221907670516967606696653990478574023479708171834575169801691667790293912812285565844344284731560501839145180247057449670036075866350551603059447513637244627610009316249318427248502709120982426345101611110828157018646629147604278943361381870750449328331422457373967346157824663947835063542618055394032317024165708834761545611906396180230549495713736616157632072246633484033664232816662572119275390057915962290334274067673702050639562887008157970882035694131364840728302531280678927126344344558927919902158628215488832874636375520449287367920636264060755713183084291290506067910490726434613949683844563328034813389318718484854747158179207789752940698137365594398711607174956389964335271402372116414793831401103678365927500380243000532349249464210311321763686658557328828558430481153955356285889725966632192127389833858042206816977235385908834806382425293135380524212574429941012597527370438261512663288247200006275614481436645705495443136596469940347356189065541504507117707882486481462623008436648575331581542978030115115401763000980548828973420300792023082780484106624175278342097830937387960554096869253507102859252440427194634408804704594165022550541350977812015729489839127891490112434145949954103865363360186011073423617107922248328614157454299905761025318084896049377198532873616038310187924064658890541161139826734420387858723445868687657041009357895041871968293410614348832934645258188428908639992188256702855732159012701797407614803879568953460948221253011295562376747500598764431314325039739015517549777903954833304481354582198238815969017911364907801908097347445065535846919276504704907895358716267064388779748318393862149535881905636931788689635772529190843896341376618916816210787078610932712023081300466861325074760961761151980391912385184320934349079417079152816630285682365917015651481485762503194279534115371307242379986713006394678157951806412145616773033185666314116379806386810648374303976357259496820553209989742203870589117601403571400307120399465446758143952202720409233318014726957314303524394916426413402780489166358526134690066465040812307129961710431808735061853892457686454343657239141258504875293623635742654557262351803907612410338888794639194663670215398971408263537083932509462716450416792477219723848543711011835193598901635672449997426972420046571331621408069456486787447085330029770088121866492408969516631881019290515089564283375213333542437429020235848773127218112337303623708696836028431032604016899751747665577744535783449748878870495604741723036816457005659463876608671628081407639830690415063372364120218815978431192752239844683710897055555607169892777061316286782873302429929464573259675636296594874864027249362008013573997935139791636910255566000056861829688004142856361561426462728463709204891867248451709662152711556652649017533319066579681663634096896535334766022797762031708681788845039903278796849756516492251859348576188779405146008051253988261001734733675991229029733191986547148608928914621896544843685366323245691207290407638806577658653624432537964775831144864864451072716820869302715509565946233859792129829089827982859446080785947416261761334330101657347918717190024344170275133955623616114082972799444084235059621074002905920315876263244280990279293083467479573781784043185882980334858196646853678855715257455205430318855966840741970135160726777936291478855680743664608593633991159413091833079508113891432258408439533295653392079384697618519156467449903808578499702534342677538010037438866702971704028627105586760480653657906926145066871341797678180548026967702255712485981908228080370806458521435532191309533953555489823445393796477341763873388440372576909622352050887584152599167492366820381172550652428639350828099821915237973579848286464051422286208553955059182660381288205101584642217007359358899495267797096718933779353540949479339852785681951575137730743907568220595338350555409220460107480261409410141842770604033459469477065034150837465642077831936682217916474484190499605902599174447111043817467582365034725887116910354535736239217088873056919207939969163297706455135170365813402292188167982733088318088180244715940450157425152283106076429274719090187345453492169304497990840478512322287580673323295085125136374801890909295193700082896261387219106981623707942178406592343456139820276625262099921435303679832812404836501094587539719512803582974609858385462514028517758504091487725227240383200790160061773071902297775133143498737267719569047005388122439522995083394479024358960011970695320205595161887000158905841794142854175495437937284029979521950785857720834475295425761454872947280263350352109044365183653493548417726685180527185086523324013806561929867841979775034021948360426499979699844842070203778099874250797587695845197857941278137080885612684207364293244760803219932164930509482737809323498075609482000866541603000969503597129317247489396998821132238232791831205323916322516116565996852975319363313318168790321945671949149408795106652226417313253314801742133093822506599887283154861505424651375793770697180742206106237444536166890492510901492136250987975798856473098115857921027839640591615513620105549869173365379204056424732840400234200776135312442072174089908525897654472729044704722768212378331942368237861611674098293021918953011755143657227544788268492473258606313281401223638613028145065684652083507715157518898065629565091948502080173490032137797486382190110433740615992917707817279704023437174081493669621362027816013005549752641214299749197971541537573205301724684353911912026591920676652243047024024417844398733796074751762879053326569398653107505108831045715958719771563656678769139037434705964289138387639043820978094337275516315606139767196445451263275270342014540756783140387828132330031372118823494618098514191309116702551867255995839492704408312862402704392894694493087080460587419865650144148030932130995846764928220553169443508299556041910087257446234290351698462511471456343245619349727435333153386362076519897000741834973341460707015096395719305322114254538360809530601501847926616234584809209893654075253469338365424480239081968357415037934451577307933688443942595919910759766528971097260597852932706018209844793165417076189561969186423887270812849564882027015091954881525495735385093707552348082945017352995300978141599869602684702456850901126227461825132049176173454292078123197106648267743931039603764391286103368242821927873079749922318309162184069153943068581129373276411660840627682422652774446881428923547467121203521800212082218229668532460017625921902767474871664897703848186419174875456380352909072994321774357684708501233686432156606673594630673456365676750363023442386341982560183093328882485592577776969572446939461355011654536787904989732631905057547350988633156654002183286656461269556305602191422509173254862931252687455685561448817454751715727970979460738613796080715249080994558054807252453160312433953212362464331663007191840778835663403048072853241079204242937662539748854171989205765549891810523314194981196796885597724974344973866616659466494229583217549593841347621761501895844443411540834331662367365704958715809360254956363997165416467240738006158374134445199188222225644898740068736704487339745323363791484190880612125405218403844238296343925099278726901899857237248848053239895879452987009129066616460890033915893719110385987724691233223462654490567775074995213693884003162126740709696636373046573958545108956857267042521174884381112971430261089209748900264673522198046647652500041478379940644980698073957380887169271892745573257344652498008461255140442158328478697284369228856199414839265137417407935065707843463141347721290621497971488459486684966761848177423924856868139352825768016379675750986819390337105254923747076994046789855135457777904775074769411808371805916173483495726861869656001782017438500115241328903292828329355429713185984483258956062126423829661524102439773151346484869575487165052806197772725931714320219102984850468993505853515362278908945382819954582147827667828150571862845772776435588295413109595371830264051725916984069835275217356788467947013639822063798774963890173942368994210194153619544901407247499463635203334703221433962392094391163413420899258457559760109103107799255045209930947217656530934709387065972226847466789146874288441921350987513649282872663497452834217163309288863791032189645973399805068546855688986134454911978858909554018224079225220738011606198129780390328616300042242021157392835682848418998474529910459007067959531279921077354816732154078352635267150031875316279561807631407452210410188077438198209622335624794441094068042001368831822437254659726616762712165970355689574153754926620849514593676008690748004764812087312870416631639451566028988734937627667030403293759235788667437247712630484056865714333600449282020256317296035604049532643457595393234726114881874882007270070988366463058612184828445400186020877973165199874512175755632637003752350957063719082215259804569824818676497673992593010089243862823275984476717108733134654605549663646834553344987168757975725507670513949013922926994830203856449932881180238634576154577646781624605252638396549836888107595776771815082443148799741757424805641556381483744111174103715639127795390708446451178008350510068923139057655439318709384419000078523060968236953001737472022311425308302919330971474969317759208719034388393746867054641487457180325569421092122550475286560101622792093749387998295738554919349513182426325297646848730896896156944100606464479212874916992512954609876055630553193182080113932783891299246501031532529821728803081633848169242102997336538304651246027641163696993147038364283718199346519609017783485538318541702414540494300939794794108620082755936795148474291827104540913442636626620144658456160263598329037644380676195377721952512063824612040543175739578651193969531494183297597270929215769896981227305979372887200543517931001157946313668929113888000405447490393915094278352850487217228743309153541952745917037844179398218234867437083900876514446188945610959876267249728466504295627834634018374374445797572828411038692201261298800107357778004266747732328228430553703976414496573243321346949515608691824501964298230533791454952094334648157721016411936321669417400725246078343865561634587710209879195822153850384832889929752501798183182414397985029814369872217132614252499361980233831776783190139560734924632367547934953211048221808731676565286511831394234021964372898611159132722723538920753025004011700687898613494494930717698353712021163116781309564036335152148146023098131801071669530009502674314443589739157918290696388895458617699062877382810279071968590987794687438303401532741373878768730836369336905171370297986181797808212314959803027988852321623243721766585545660178027808392378278673788618929072250822129327278381934904382420098912184855365065561208182750394821495341424275289274854783991436388614897461102363017726075381407689557888801290426690361736402973989558551329726588789107016011485325976492547335168274922896673264309574764835526085790339502744313942276400893460234410583090626160966336748832179933313805514668634860487155032821699334556011526461446984877418640730467443606446873815541921340630940917083440387168881954690500391389066950897102954681767265898657021787419836217672585135983681028623862289913497845017107125346446056903482614839257833828815421430279610308763055467615114062963398525969923935591868614410831858546244022873061999208161720777481156602090609180101973864124846232244832883693082834230684532285346381987685901462580380703967839174982518937241977205390225698865188753809436066374806427197620834043550111389311684984076483108228120141967240060226611180391565128337663797025562766625995893203777750687784156493566045057928086133239880163631475311032751505167845624036734951286353881095549255365215791836493201390266631772626641552579633133157320869060512401562826809044796597672351361787831637568671859595839096054048726256218883120206887738043034377963033389564268847414154189096991015639523679163459157279161440569759116753523753815420531398528125013698195170838082532898507306643545971591541940966011706191403631539411734389598816621671671044043214932510522417726491368760939639083691666979973807208948361509967745948092256589265910157901027574427987434855817422321411502462621217494614098646730244841962038729079964674596855689795857367351577172269164114069759117096789629231598490579890441934249738967332738878978976462871418271009457051819808887266236938995829356605651991978314746702627006846848782486362240742665338136846499794383734857524322246497856990814088433750254454766345598585701411978317668150612667722364269480336252793028774567412916709543858882499821465555081495820914438845218703724346725158978827483100644632543379577389746919048945147703786605105716919992191243601585287283327037552388373307511270261912228060739776125863562063671182190965590522854855279585075629056919062569508162324410191630036438439435470423609031071708202781610127657357354802789432788509464634037719608578935855167964903418737888152243614223450324621710105637901515177423533542863956925361855530096641464277167615489519142152793795484299580119992276649880446548800382118754134909541963785738532755121911135659637716438443781041863715886788546339138260986956715774796250404213254719814058615701969749224090129729194057132335901651652961799744649290415881879286696543713735671459705695251746961264365427568903792928362208887045863537330051815436579885780008902891943799649770877927126504948971304073589149204676437926526839794905984151801571430476393982807493416454759440932059575038989069274683573843927764219640684798478746785676849681038422981323506958388788774284782900047279036243975087068182153167136039969904265134655218845745785041954037094694547149108812711997932640800671728905059157063544189152280344743986269586880086143342473166219847300648376179631711878517532749496114020762344120064136883313148961363784350554715396955132240251622939008964703801675087918585137601102818462018855497882583887597646680931648031655419749271650208083009967002178647635678237875341202470166289367990917475057263169597767132153604146974920333994691614312025629551965813939203509982869644713941538122066431881927314132463287989143668126320161239085148694163134189195405439968421014820319383722951663078502553282136262925466170194009193170382104565287656672288899362349250725390229721421410052590232034782530261195980303532500129975850778060329587426262966043512970845372147827001287988145672036581442344965126019333140883847345234595068311379163022232409642982613447833413979961189570063104757206616060586483213098946937972385953493193648320529183320817667748038473149864082986102895496320715246080680665923984223228689839089426459902909534117912938235871196332697704856509206186881239588801593916939833062442434319243387090520285868764866500720232418557387806382661747252301692873597994005840465787214978396406741910708279596477386904286108312158540113444051081272348187331085112456211371059598000610312599351714714245874856739816147383918010528512797088688210375446185547561911180598702616099287565894160609110714846453359775695472120531492376228898634377476967710691388398015093976238487714219761011085128515086971250936453475255015469718728607540983432014801063959029124171430383808789100584962824721437093867359300257209555092016066552435816658913576960144982037643590729460150215791252065423641743780696652393315781890127665642276575858750454005349173088645519161137457832767420731768831296861050808453939259637877016704445871891260438143140150167453563922162730542445805002020713571914296489891279508811490072933062828802577378214823115658032133962175343984934123978295435162289676344220544269078757508678039757700857096295116791492417585951392828240483333570579634110957026285498699952869277453838876108075041705748851619922641769668119794167218477964533474222403223912494059419852084270224320079906257498899512726074843652452096369102470102054880051642229708285129518994928628092830853281233429346901457820253487207685004038348720281213680947278408680111501701125469674950156366265008923291634824030996962838262259040154912019671018201927049985806662479342505768661800111263399645775403275501423493216914677156435260680878452098055919008745677098326198034934944979113548127861499068366883551185711692146936716767014847594063632734421341588230493939811966794322578751606736609302664964688069801954198196224708805854170601600050595653660106206952805059685539436202747631615489310704484737873204275325905673780461435141746517050345546678598438337362686422268118493766458654975377106149296071741855920154639343177079592530719572114541925534292168887900385766835252514422027958319365116090546946970417838141376996194878051827433936670615917104430576780643195171948214247009877321473962986514162496188652797771111869176449333748423604979086034766176627692107173703507191287549936157799374315521082692226078202573694872976759331254129948972772448919842057359345854889220261442109609512025487517792865856158068032453927020154047994688801414365589230123912005019169641576315783981980294311332336564808580114853628292915416655217772859237303652136265835337023331185551666231119812593196707207282337282409292199635418257908871874510380473716865361679701603182271613215008332705419184168557605212032497553438955345677466578347106234605478414106045068279670883088713838570863900573696109456453411965511225337371206899362163750562507443772664799714581151213954408567157732812442769672265286406018748464098532599719249238422739295170839687047852924550497437306117183486656583432402586326274622403607047887149254671086216068403927508685377938607606635837815848468485339357131603363720593303060994020480980466641771461908836662017950283230413569208028848592036870641645266363072647138723309623873015104422153853163848236682547669930213835029320594981639878873956172228928463677732815126353014385754525623011511498910068207146341273794671236766325916979069659173929478995869057840087218774743409308637237848707458650990034192985613571429998909067370733936449187044659779683697227843061001157128186617356722923789544455301972501457426247907497754890621673040576723516712037183938192475433480345390874245470929326663795492604390468185796103208527752392622054223214858611871696611325503860435172052717633477499282291414787995103524606054047769568097126250174979602760446124121436499327099274061327002931792574639467386143403561108915741453237478555239150047347945693247031398079376284885785038933839701797505425667465685023949021364049952367559775124057617278645235186343377737204026187789631628589556476053505456748278837369845404758781873283151190534361962887063829216825486174784306803721503560809788116856434558849144162691223403354409572124146357307537631776940482805536130410315718705807763569886893359660580256881506898287395084191969838684787243656043197793546434397905623743640163355916442640803881159725515256772642362953753296043639649071445899661092247248594492512795654671083863639383935848833983658965166051381630990949917943135231780452124832173364771386114895366266532184497400674066459413384310992643800714365272732486406554070105233638286274753222942596578535279989086027728663725488618106696330543430723965219633619077776899017497439458780270713676838640601518377869963739760119126396918248338495623574964468404823415013528231822278845044718974536342752780865574159850171487704120024341235678301236969558107963595206601397411911528596071449967357331880512266171689289877867667422357245838490361483962115168873410806045206741841598974416763024802366519952424373824294400147820896017104777246094656810295579632433745466377109228360607501075305214695879201022777650373675779119319188993852900386232899987133117712318946669981042103181735793399514463009974519033740106067022704035921463175760404505732632601115742369283947783468509622659037593199369821663755288985991876393766244746108069522431248977413858165014435660673701394484629437652336276410275126652707469718038375194325227422942941876828738202398908935667420766320965147820368332312061360737340712761929876456077220799183114065252866851898086911153809436268672202053873205642741219400319422911659884884523310484890791877772736711649262180791359222748251596891029536248978484346248126297554181673315730102747294717409004669212661617675953219044090750638381799739155053516551159425236465173961474609050959957998238099607773407523226809475416824147046713054187067899422185124593632002012959680538841473507522129878565207378001246439563435441015505116554149947145501428873018403663696666485360152260534212242115017222434197541298057856617953937117886655015240019007998442593191064870320145475798349933884438642245615590519719243423719830117312013082637567640840693299841422032508576820136487238705206878848153764546878768768279591591523774781327125475295083710550432613570355202440997596093852233574985422341909495559950381584562671560840616968364534381177538296581751023058204529312780950916550328893580647914179619319769663249195059124327271585990290754994400585183415278348134437950168941151737867723127356465346477274684666704068233094360062691489681254664619652459680839891561100331148991814986087462459554775242670542738728475435080502863665633657509802448545480823428722397364480609652891261156509495364210582468860893876060940474621977081796832346076412711781948833105388965660300808408804129266673903798025541734195265391907761988870440985567566147539215062717875089173268845451898865737921843131827431322967642194150609998990787369367088654599717679052665872097792474488283303786258103966352900489002953722502368635576062250601620378506652061128256840506266951440532907744852647593012227598627481705156623255884750118150412100593282563548012914889908377003094614435928747315244370235542956463400684666777620769923129992521887921040151614946859433389157300141800494875601270423339620194505193296061357599138832094536110093274022338540590183885483737486352823306400113348631356682031835935061953068713556727554713105285367641305728793101516697958853026271695682412974299814075616250758064554478043295344577595819783829327426425892840098299576007661860912186602217111171407562225868379751298678633781201136810359898674236831903457741068824517164807301492671178621899746895481675324228167288832040808093893420299846974079092336399848981643033835490508163914806299641636210263477521972696884876754517735067158650148848526168170342888714374855964336902270857274085696327485368080086740996559195088224983192638169195198533630159451506788887225263387591981025247270624953713632103980558153154449068184429494713498684321051586524326799960599839488789677493989299355440466481759453610826973374061424324644773262614042310501670539593237690403870979936558504523629132208158728062999880908765778641920647465852758736977156770427794868732566039205799620533024465624331933975519148435365415997173984693228604161980912929934710560522456244591931668990631500230500944478765871552857454313263214528950521740936453603283425105814636312574444727186223882803475845351748748160550362600710276510324078961436993494463650142907935257676309255422543124933840188048958989290634162891247001121126674995630970272855732157377710409695743298169922611472027383218308224337392813619282622535871307487836634364671521686979643868566876008781456809839483940845443757417954803806397837498779025770569588312729663048164252240091942209341308120015516281962213542126306981806101593372002113990039907374440034657753999590537889880991539072093379182436375582365114728188172941963529055610024474312455634222820699631280027757160428151432484416960999556731107860726010518042681789134315245663247278905637743241717492108586360591047226886297505535475382699524756262991075400256141394039582443536368014233982138688147376966026355101793499399315878303727868518278697012269110719111357797874267616072040119491659522456254737263340890541716089376822474366039486419529385531528485385658336531195909311796938539548213905892817988646151667164344190903499366203153223012947784634098430871053072480240687923681655543153196309215925334779246279765110881870254908988021435420361470691770681639231621390115753655948681092340059398984494725233815734139745026120461740147227268567635529114770155287743869744499117699434610320438805003905963988515544352544312789294252840713562782310347046686079694681085879403699723802767719001818818690840864675926097808987831814897230461343797423171573605133927752033127995782522679039631871988239553665107056683317221848695738316643439184112334424835081673468706877878562988451354160133986077803643530419615653705111100271079633228754002506876500943368154728798133771442023650872347509349242225026843980155322628318003113894500246723074219852066901431522990953280575065643837816054612646415752148750876315625237234940058771804757903165464650044761193906100066956439514146088924965524075423164441187529462353555620256050210285482626988259397554607802172882144233526443157335502535733669302882696303616520621460349603372633975300526717843567817620584785269192323500452986169600413954157546045022841106827066068252859930385797710495399984250994785095720011850948598208937736234020868271218471634732312449767931378747708326532633271353047784006456455925034469208085008513898141628693242495926555606510173392422827672687676962666067835735168999361335782182727818246146508287671330493994079480812802404345700502373863438785651882224459403560255355898394721707391368965973984412101714201961650075709485998606214262263923812714654859477674730402139462712679467694690062449867893646130513521325048489851288327325336309275826573996956467688702506923127913652478846953635943918949186670806768545011615486659224332291502261193940730837998533900040511858289572440224768509100104505386331280078076677748246613687347184711733805254554435304212167092159425719494725317052124033020635592423887911650072626603865041880559275239762675281362735155205356474296696377984325376740776651571706258772345663694066097560764896506916069013550409262751110521097533492559677472841019261627088094564301859437287875158530906835034966325100744758862584641754806468098236698549128643946021269825410598449665253894726123112958644481617992962863191087590623247136401467849567695252755402057835272166160345744627692420430677419100784813029712553039181610832365020403041038567947409568376874343876986471226168678625471150165569399026882451701619523844940912319234909358521539183630325062774214209621624688401897509319244619882393210148989121303149920922219310171680586279438894518808768631134396599962457229039809507185987121317532872461744763749691621192042498191388818963602054755214383411118497824495778881242039270528710148114069312595838730306300892649271186939105783977436245109844203832319623832167575377160979468418045877585212909643223569187150221501831954883341852247629231119857664529394139677270234668496564928737324328464868131360803177939129155996082813618273479393167242693814623577409666683002543682143466953710528565851606148247079704684060259840636361739707317151621540518672642798386349763166120325354709689493617245830144640309221000837108382141987718465840658198878312805091312716266300179444109690775974972927629107928463001931018046892024288484112604026127999487904586019260502940946830852996615915600132622403413299410579891580191829958305921599618728954353192264158922708672284915926942611466578044225376571743559856833966201632681266510267052704043171996093939487712334630852357757172208513853717462673088273352634422872373658545290126476077444468046578418826514888300343738397525004899120563759573886336708118287797982263228668100651057774627959730049696778136338142514219821426374270640727976781851762631690686989856338063195324620244517855594991115889108402109116551845960282984657944984314300800831342725184079459748536693199097254898072106879106041610773100187375173286507340793971513398957031930011965336018838013834527290713842801030660445174752482892081011970404335564592632589563232732960731538842351002280427029582968688952967757951836729607080521041072438414455025155535704541761847997516300512919937267951190425198978814052102789432494217361757499440162554984421838594616196440069977494250285917355634335087872471922633364066696281912950743809688060083989069122337963679422475047620765297605835912368359045137018169296851146905019153815772952061532584672411489575647043294179655622202186162778706728419834323586732857369308851405933748318596438163727927345570407659565086999215008873787079284229283089816048067274897960488538773246602994038462247993348887714279624318843488885172033470554239948267178311553414024484318298882493335107408365205630950713666252120241207319840990705860759563952095389047246203414795127174304326158121111583570980736563685793573745250722597351365928123035359589398226791921763265459450087908904698838804309629070039344293829095126172660731652156723010419072097355728561184503309942516077202080448742291111992583843074622370202706126456050351414699692861999334781680650991036825496203365956299533888267509362454320719135116068766867012996251356225508387854501980513635259594565797928607377094597488345539686266826660288512822196710469590102353564316270927116603194330992935156837130672094419593345960003007581044919805349713307621725725774503170942246114563751120393386244441230349222643389903986184813497357686631301903788001548037368137169352065078457903745083948904061878265864607013586237063345825905433580517810738914344048469939270724257099225577303829756694370403048376009679038329951848902221764639701554067132866214814642771510948940196416938871724768693333637209774439654406389359291881598241885632199234606585720201154075447593730513250736824524235836173171511282670446280979609976299088439479576340425771862328257999365651432348172877549411450405227997952896558210478601425328908063882433069939697144182495672315961207127612198956416831559875234223518083257485788331395379335177952705011628649741208666204652026579170096011965182521853181459933023397816651074969762157691494793773917849251590971219199842945876440976719411483510425534574280201165947508891141803732955148280421035492338663433236100894198798924828750382319509910635730207078453395585776766895362549677179991449075547130191889991151869086104017055487289150188473637483893963710783231653823263766871813156599560885091906196420411435012362311566007114929870254079625377389654243130074632439662806799100376093876385818126175784587664481108888021149280410248420150749896908872660805900770285744878695991302244101555942904731855587858417241399645950594929005404829088680380434881635441372216928782953423519489650647846628298415272465360190932657046771626877952928816620773555427342001653503595242730105322692531774616293696625304829101129564683720194544007393757358262857705689986059398542869927878800933497608148024852120759264140851555679874392600677137270351250475408145102364146665871356296840482629807477924317807329417746295864160017189606518532908459971189003712649838618478176321357262542692501749343923743976167382085929641569927595071862866029704408877431595389449313651708518408314966493273280608765910031959631186289979775908260274557297376881375472287977752741460612858142606002812922176285573584693085262827715594882058534935259656415612905595246413807811916727421595898445613151573306437744139179249605254933842702250507048279426563441341151118947290944175187777591761058033552439323840871384702539225171713479201908033219488106276961885390357368861233016618656912224329889270724256375822047309752077162789998419391204670114585145490519288186736717219471003175493196299632474370592834243012448069158321020863207011222504886243830042511108669402216504564039690523753888979924660551845690465512923263412767211414089423882525532581377049893700990572323087871945874998724148154134658996741637481395425142245699334858810030927396316597524407939219559153953541069193316971799498873651344256103921979477681702867098105189397338566034589808854455988153991217747475661040720668823614494512656312784278889720493394341729957489378736400620408025752593204947593573920834442877272403565374030790062621057446031128331324742325882499076920944104174677010544884116818155061403861420333871277913663706705073728871225454381009905545271369387924239203916520692937558296217678783018466174530370843004273441369504773775621716881738654287545372351535910383827046661646635787820260005645973224488713348962561237744809027360139337325126028332854398661481121497412963151064914578023632397277926650245710458803341902123552160219413428856000672002809091890473356996610245053067042379764495278522139878451977557522200560057212782215209972671137887937083611696377827356783172226044026703408262173259562021697360404337942426434450579544867186942172391989752208005419220735021746400334107021982110081506848810447886415401243545877254751428991347661554576629594566046735130646280705179342470255576013935280323733464689003462027773762930847684068160964359239373768553813010246641095386442353695546347006573770382953499575692582464511743543160861750544444076524128504362549354682336431535665482722986384031370641445771181479381933239377016568135473972305514172771728867497225899128362816555153242037967542134565941301876817772784258639325400696255709966767493563025098658314845568086763301702476687864236057543561622730994497647972215940199232218099771816429202611402085749408014504844099970332604455450811371275348987080891678248494590656389434654679053653831266582998507210671167391118657673975707869751433466677204541137300544658879971953741918568232290543617892293159549255305134418361548578109468747814534264222721229619033463554778948025152762150344559850649008215144424833711910119514189778554281764742978847099723312067575408114040934090788185800848123466366730085941547653362903901087273761856869051814867347270000373813958988089304132462423559824616799164785802701479045081533291945474320065955410092857361513152291161435954227620978320504761683977727652107217132903646284739373391386516454992063520643208375648238339142970410266221503973952694208107508820956746929495894761486824897667815838939100718405174849281652488530142462264724088126331624931599936495715229195429493750834854084249868233458088236208880132715166221141321066926363150335588089198406312011517746152136956556168831200683708949642036329638520231875402103875435189576913329372928028912039804905668912617984003823011832075522615097735801498708676419117269385596048034934597341935546866220391413533250246157407549595475761138095160004563194633428812817655690315544729473913093619977624113391872392045276835686529232894571636547467580449195552569501155617703058573482215687479367002825525134412442028026025766717717526099183484709604148138645028945917305815928399163223515123026976113024791799062127468795927024476591995961396901714118671321366646213680663871591398385635468960138983365597379716489097976065314919543739490526015822158320493113997469922277661133346853445970309196348505467809778725549448918151938511197558563707476643185506864821235202359543732074707464064666305809683788940408307405357045141410050439556761610088139712878416529963655725974439324970874310651589863225125751298673031414865770633831193848355891343055361088229387521766956497237222880315590443668035993355956273625683500741084298832562192683107940793388863266617500083307769191656591901453134847868358467488334382965208673809318363118766307136897737435710975214530367674383289106155171451869971928113895217671004844785951291466915758608636183833294635715227854983569178626166930392238371643647685792100779611385125787742649727111517829096726694484058878502866457365169804558864700819180272595678689828520167051585488839425964740349535080737613340073231307395279813561182667961466800734143580860234216750199895919013025747768481458372787465234620289722871887354703052486630512241965040168904815344256812299007237254123626566515009507535474862067751090195705041812794825570303978693203349757417161664632462340284067782221453757999370226836422382420541936339422172852766328058007497085834527009498862312557514712602535460400830391933383028920124131121762330093605686733169296218864085615455086716616017799268375048069688026176925558387986249894270570689517084465288910009751724369302218917687062382006127242656114961564795022912553470815217705489586855901659916111764800793969890180228925828147706190254677618478370341300847548047372175358685557849110824454825393779977084092515835358041636088847441562826884474551399035791411076737957310169332855469056601951978534349436425491208870155284814417804328887507092599161045810831731557091007921213510387787537110593948406582016788204806147459729614376650572719839509841386522892190103282241376653577694848081104483412909594772609340225127208406322056253405948912710947325644604640924467369975376457627885534412709105611291425146889831752725922407147658378255140161347929366404182684469262670048031057557907222672251426584479151053054951560555657183417820967506261399843803606286118259626558629960099374994356416374630120587195460282735057962953012600394800947895833502420880888787032791587621530556743922592411543994458572702378527969027345586529246174747791535622067275389015902415229460208600440556056511870644612852068102166649721583028270178357335562754296733784586594919877441262499177373365720819169917932509692700112039435402242919710429435661550233996115746559280378141559531290522527164822244667645339790638679038636556854590024082967418502439907217175536060262393583383884873792898690834174650641898038929837022870208914813592613890707151609492721560567263349133869155051327990836007944140200238643182453169752197850567652835636298078398614041971316360868121219686511421807430077902892128306258681151362249761447814117509089117107955086932880575798145944187244421850697614777833721540820120949692786961084937113144254972152201550300773940794379310315933676038427875893302925142133840851741959733948777308334854971028837002087966776658547183547464729651843862867710031644624433800890290972788299225139794171089541885425458597462228135142430509142703611463042286908712882792009596842072249114882797900820232012613904461472453292309706141510772649225681258088680535933159339614018077932667534785308255543603005834683704270104182139121173302136002863057162350986109953523894353593321496554787452111957425850341649126402834189779530969702212485446266948768608211513138318957685674559367043990006209011705318554955411779882647946426057262246712933392939914017282239994578479357748027689983466930386174433735510235584837009694775947574841526403019210856351946703030203317553908954649499663962570384399963906557427430473851155019023299210922665493126777938382920441246828877470592033917000582491641579474336507706977372401903033212280808505041987097757068947906927354445225883193320946485269486135987740260955108000107107256971047208281745865990921466616359142093222148504910998160180309133799331071511779593056301887574086978735769014895158173008328084971485188899300464243558558478414611740022661413010588770815030311178919091924519668900938145572663161346047144049894314496381629425137735180437221351084075295257312227377860053035373938470518144711482349748212036978354653823086689538008770697398491193657083705537620355301095987096531696588482924687767649759898451234159449490712140910760187580483873680563979739521577789250122348973261643778239389444552892542750302607678659438517679968119103369368185411938738512492033346602436372397710337960094867451103547462595807504852822020601139313333926027637694311472986755920830652861503715358439855980974505342201693472068203113792133652095681474669632459981007005830191953963829374785967697112993251893993338253838000690532518382262322645026380038923398430639926520103680806978840083448466744115388417792089560054197323763928017782401482804242045736141907854361922160804721821643736083942080087110048723612512062168452826873812307764668167906321870988576001629168314682444518232713331997716244212981872490180945565755425971089627799365793914081459681914194799475721654959098712836974317086016766402476176840974486054851907092319690635928818782169043474157642122039880080959734435192110890337434639236917183072128544310363818004465726767539440822369234840403730021288093958906221823786210065588838747117609200069476995542653889241608912432614944907435855914214958892968983107104731677760238213297214959399992252035405061234937042628464997629218791068911419323670301586930185308180665025446210891288659471246266853843233727624423583393398515686071707303352909655432178202794893230231471345798367032814948140342970176819494895560311372238320671137580920104717409827692143686362239202245030047131870845163473689526167975359387091968494731727406930346813820485771814791822990523342808942791876457623467655135061473489088095074917021458152711215377864264938872430521458944722978604818604415500483319544185836413946235088176193852457248642244799093369005314316031265797632088618751187844188352148925217525456901008936975819357279967982707627586115684946514974167328514975950692338684640949989251575429670875801159882757493283935055990964844115030249711554088111381251306267422550021041353689316352465296734823914428890672156994148281719722558509013217897316425501256582128436094719768315730477276904045946621005801292005365917277752540477174489114249190828941103115991874175330467660146941599810733632994312039107742524170919184202367028432787491394463533690525527379888443530563419619746944221018755148306983046878237465589646212965200218303760615807582806212099222863224073480248833930317900100091771987980102035525929697443548437501543723020383270572276023608413794616294563008649204299327093226009530767169750318352313878542699059322566870252321875275432018428892111430579410520093924276704903341621659448686649347607681164449825829348451555644118354291903972708858470844091561692919781759536736643140718623938520631904534872392563067255338611520075898540768377394326349936512041391227287592685204032325367719370137535545803614269800478734528497299859529336146033397204348874822641840650688281709302210340723859913044147860997792080669674405387262026596230106938345522069180564682241905262140828014870038851289740357822973370104706660359804178284866030220064209092505055846549960495286589819681691230324772701151593201884836254449597125931566948247833562586416737729399153448571752862818062607917534700416232040948793250625348372738655325153151742885185606487642664818965347966583814926078803254207027232473889677770342607305643177114396370040291875386385516386737660773284148611964396664327778987431912710164214822075910595316835328874475745361880883317641470280057677173574086853252718498669085186256561447852605940277409883043500057271059329731815315507908275452292184872808783957470570028844394532228996377941681674483900210432028964901260508122501426113963783647392858933780665612789822462822773224905974908550695821592661176606182543639765767299692534139739567198370617547842611490104856424394674826592582230740622122740348534878549995512359972548888938172377954440659558209824060293035505725690522388455798869849471675407022433946471778681149878686684419736547946495608807631216379477483083279839800355875925757377220307100257310942739917882719460777243596278907846320310787455125232636181625593068207683920735869738539895969413153739916558586948716991332013061741078610589175029306069152522709909378508638597690097623278299767853201352168335335408268478208304332036710129373565590494919098463041256684599419254551552797086049304412708186768051774205492119605369135696694616772087825708046096208100171938648637369244846926826682747989280624252586206872544372799032216668903199221124916860232721053745395767716033498954753680658839873734202396670928589093033336421954583228137425131574595185929305605657183750006301040812990232118857276217911720158467165056528087139754027318260792067432646680790581427341598733806796663759706055604486971861741410059927417424553758733713769097714058744426772422953808037673315905231703699297677781740686378034001592448558927992814492922255648956142132756726259732174251781614825363129523499768598077621789922244254447486741020526992207004457819084416938785296731827010064244489801273069821107571121901124083720834357656203162069899688096448394589207287079930380820092584868865924778107272757533477253512216431654932916885192625382584283772195647998347712159875549987867421499934670347142037169632229788015327564582239699712159803312050373781868619401826934340905729997073523698261670666174869063490847934950666319353722720828659301451553358454319360032347364904466949201342960309622509093174048954722833368600187832302475051357293544274146110723584308568388592456071742497027728561032765250597391289508959563686134804884307251867407320831956306883110490652158948512898448680828602682607051104178017697493972573301247687636149175820672073926187283747440138599190008051477612020060226208959815644315413287376826876131649446815285219509613501982543102563936578826016270867840607109466940979975023881517653607705262790324401229028725321585932902433681271318421854318376782431797894212922105599724335362490558825239441435895949011515922553712926582385830316092280987969909186613808531181073817439035512724134056070518266121146709267155043745617308459412139450173012279917890574556332226901487913025311493304525542690636374830700029522938569327699899842084932243314931819104975023405079811525144179394874964811919632052203924061135951479391374003805240760989640352502887020888660627737874176865782641768283944572485879238911368822787111674977978133046255466416730371543260408751912551585152632089105073408080549779491038529518629440542328092484361319273760950438044062460126635646384968953641597744322088155533428020723964998410610671452838776431274146393269254176034851330860547402539094459402955102644809442964813881413237889637405732395757837537737654648110523633699742935916960476599384641360562907263561345193970988840609644085702037254562139826620974164268304727281762030435236397732502136341536896782908892437685215154851867112147369485603815410879919062667884613949465730694972999938678736535442862205164513183734672660832818508212179665715197379766036861278883851467714499300223414937224921536806382630865976752836524893727325845396691850919879786095863410742541088713095043832729374795087087224501701456263628412977404563330139229918762914644471107649359270148750526470663821322484109976759806734947248761156419335896928170086837949558594534108544492290885309152321266333559413990113441135923360230187477912710274268148201412097302637422518465840495553605953145596128474171957404943952712114103923439025657260762798938573873001395305228085297219577869474736004809929684241592309393043015973962486493401827777503126894082053182876447263691486405553738751734006497368066215945384596340326405371118479033178315957672793762224614567412580386820048936814469685742338504824313949706231667219715354238308010238906139012062326674660884781077079636215973378701661355925997257933533305084974663041951606830955627412905261557501982396561339838517727526607296202432245626298082347661270920717553839443194968992649712245820122959056579418257312842528995113256030611542957231553117954686235824091279545187048300049103260253031107154572213712222820964955739409662474895335187825069969258309291410437357799770392872348082257836595967769259680617028484660175785868510005960366816168992173947641476576596287020316947248988255163428753433674666902116372464052966040638962331721064745213541856565977665144538199293943605383959544849373458845926383981836138800848207591497227216697420784582678869707855387817416447290160710103167408042984225051427055448700551063195952675306813098681993308240201546379660354026958285209484673029903565964003195006333105292869073305144504271295024491017292904871239256921035754960700415840206850905086517092994968741883475907708885048253421044592125975512715077982732040915412889176687888219817399928049148147982352753963246811961759933966174415226110217284990795601628417229120989993047224671074422878475158559902231872856180353191197441582781808457710823491760794130624857659712452899208650481773298816649477722282333341695022880794593714218944947927684749699424485769874619078331238654189243355041311625086103205606730568868707504216722705178380488528882173799895711597091971418590864380329437360252339326166905018123131542253937017323205425897469098737008902425775968826118430034305621162805529282923779050903102279154455295251413241514984660325227848144495388651875596643380535833723495090632167910204034921343245375613109706448322152413618447950389446008170282538563239637795941631228545496990639499711935934287309753408973574990821340697008325526917477959006330494953054539682402341978023849250205117832228599652265699856246808341346640542275992834473544296229353056024254050465696365851086155733982573816521460235874155672090415651387121108752947126865071074700251278455560487905905188266323571094416866707259881161054534464792170015417343713617008413991635068203905087577158030445992624921133629557837764659153464335853125440164687703855275932700585148162626462130788968209228630303454471694381301090548726719673683686253252506821602217376016821172381813670333229650772323088810671061534305880208877690877637532151398323969028495402384101337805760169496799956620636009334746504808093891696879863627435464166420152487513817362959939608062661855655986800351282660350184410219237060105324363711281298784786526770849668275269030955101980176714375150356229077398972084191473793963725865727109849020494610327571015938366511123501534458795812980470799675525495823273194601138782460262051911772793633405074998710856268141470918388988218671114493295705608786001722688721226898949988743313362876787952404126513168866883711229069972773752851808867737607705634556414878859903997069305310347087651775990380605654525551605472122905323566176258877430675224770823552595733787763532534448879695727057767039962070101391590154488052805263058370703546031485060026910819281985089404711683932248186547607460589556997843598271054243916839125881119854929638159974381683313074742226157167801266347345991241154427519037584135651174987134482233260879698903265390356269274602766253427506506553581141931502184216707145115507197666014361254112684049568368245700073075758956206944777513013245055488899370042338591421463823146323957224225686370158226168880303249469768127436070233062048959613943889839460779147315292751574667439956657063347913872689300442923822180954461825326320580691609203225598261046030906345621999286253824545821010626326417444254961862528037689220525156315356535223013560217315484303917237183573051523871125098409789065537580416541650069585457274510324873585800173600409855344698626644389767697661953670866327390129297406259706443518345079866088259816582404572100495728794800940830029944488921238265566135086514632169950350318647072068614463958340914698608533133047057725768641027810933366481790583157541402997887073909844031284669952681450577310852781629452119635837068138848611271052760625064226177109162766279630206689750608878531548161637319343485979726993962823919350088726303618841033121658013597531616962278599277409853366166341757148151744486656880215658085200470380274993579771965319404363043531323632606702793632560758358703064398145982726060913368298683196881134898342691065136638247540488935235790072791722855647365029719701493033358686694249718460383230792806187206552375038899207431557243614976656896895017340080759860590101935548268341773158478210225700269254192297279312368122665263100348688751039028058212224742660866069660606072640456603957133183359033688111236572890803547385377189981942695306533960875202722710989903169954041754429170161224100466488958158508495214641710858606172104254654944392680130678121902076557997291115803382719084413827386168194018496746927947632381035122722072488536765872347252553995500543783736212756674676446834503088633657971858295928260185336520542560647525629180331951441318274894844688813898842192109801893687490005686277230769715833659716837707787323480540215830757993360078697826158389128260483852638129821276540956285509392303780940118116753916571518881797249015328094022155074628529467266135883297814787176814908098483846451265229652922505131189568935351968421846916180687377056004387913967182522068453664779404030825853715818437462954392994954962377261943375190968167505607634106462934282580516687163179320252955793684741275609383568005478178372508547325124491788762247520159196516342641372039148609791747986973674504302978030700316059913075662635737643222883222040474008834143110920353920719776593998455034668616978170350461862909887573923738552506600831253449871759517266177678237125274033074953145989026576418150101392817382519354768328284739689135346746884955057266577131790107343615493981907197407100953624227756298892674986887506598267216851995144099888550178257831535769921578945771508569429777149516580955772478518557257493632190580136441298393330851896037258435351434787611542587591916955558970390781875467560755069317220861840013491003307935928212191510080956473622506951020564828748490899258710766115777297829138500862036938641285632808106489610338945435013838395403087950599960675507713440594838152840432426186122654644045164889626676604456337890916008015976967023967196205262902610358323081911385456887976618100804139710075786638338926992059789107460910445722594961053879439664705673086274030960153144730458316406949465490416894445173415159668402424509114663069960705974825683321252282793501873545596278079302230178648484146764282579949734112199474277546172310399569891990781314636520192701124842127833377384342903732705406355828400689610569345050279689121122642424682050897954983733021069102272318845611620650000797422207801715048301191152218398713096653198463258557686049814822424145934399425124632908970908234914685752282996333311927490646309409029049476516254374451749659266906011207928287171838829611454492962713467877618056591167549218976013527789366494476332236394914032680250794458756526863273168152500344579024958050747093481732173503084071338324017922518572195630316808003663871325136227263037791575872172267128060538668555338906510341269733446862590702556649243978698787712211674181721286849782434422418638206419897406731584262373392513975934967754838063432428727308577601978805870742927545782466993123381777385640377154045655195970930009768981782799726455593940434125721293246404258297945902288033624479874906840365422711823201352661331558302569969632191698849746795550506066554221746980668808698069647342465493170152488308253836661656246018006593495469320041872867281111128676063813430584932064293938963214003148458175335850035752936348062510171771248903677183458087166270457951007431325809819973701393176662747433992761560865106507820306550963479618762486735272666708937274302608748078530799766764131598219526288224333635149527000378355706236149157680628390163687486391570181473136787758272181796970649638728202922912191151908057738571683816492701793181012301488067669437145870525230203762096772796042845006766331323832073792194824227298470043832753649745526850607283321667798311635735914385781586049922769328592431161628572310639013728881677073450702952437563286962156710774203944474378106451690140187664283787341982186381918263589370219583813770700717277986144744464313892086733920350284051192260171573913952748609130414254008863860733310823156370394333674078214546086748228728699961013192983949073857854041634897946364592435639379244811015819440743556725990144456942325661659244325136164290827705531960791420733606346690706847752100892068157034736484437295770728498625475813783607559181927895621458490588746254554153336550164619102867355689707538170096506913622385470405924342620266727993262166342869445140949090746207936202551989432074243469648367609194709520762448618642947963962822169953280103023524811367696897448326659747462514573103131027866805949312184786143589223829524362033426426417021207902722956882703888733263265521332101568356571290685389876446616835010045736663333330136317972576247673262771762924255370601960253466538666493697783445356163297373106116682008744636455486458886164996495347096364754460332305850072245575415151470130794244914713091420635770027598654143183874060908145625078554919515329766985152655054014688233987005528458290827231878212885828999413720460009230860173583637895590443477354939132753581372023752873250186995373944986800362004258356896216001513775945868071624721540583110274780590774321698272623969830076233997623339453988925873815289849040974724051443293583878863188951099823403596492859959207149697020524861608382908286781559087507003776312629440406760796076789809801570512892105043863949944557783218453763719790200578537831139999375459195868544163433475193075098891214119189432638675789209268737991411538750194000237666788560626697169967520451906626760310066723615958122648540505949650511039745114350181356435131223318546893187153892956924031797204482722516306284452118258879260132177220645442620140394398512554374107501067665721884794043249837146248487840033413025590954231378308775359111523012128701878752180906909951864741677250035227100398525470201159485191929791191644759288669089250764676178892503115470962284909607284187606767435680843400056153659299371665256764253981666741147628794996143192106481328315090957522806142598612571481193265817165078120255494560026459338941723084760255364651412924794822439296549552814936223669791030911895940508430087529689944996930266248019784668022485258017003807880751378854280996664287822426414193192777018297654846511526152948938995928975289986822133360858287598934487346791719958748011882213895058867666522570449490832134339596389984140918701658472295648928501698569841903521099436160630758684337345950742365080608571048425833537516053774268252681046719301770539215162923341116958089486998731903242738068372898364747523739930756727461173756986243575266585588872193842029937628742285910184691882642565411011070857261475089726602638110390877059127168190838910650060573382037362903507900601311217783866414553592994207888152577352567347064728320254149314377094898302812842936055778936276329228396189550096329090309365218362455659351494363127615351956346742043016381894965483010058331464431738394533868004240038037673813978062111525588065401860914555795930854496300824198258990269678839002622934286603477003160465252552673726692410306902762888298541881614424312686160906697866303534105512885721075864233893132722546692342344491958817028239013062556128878493494993209151106698446701972197213743726058527513530856613087088208536680102002056301912141665189025855037405689230300556552284174644946524417654870822175018765317245509085376697780744500720821276403778132704839257810798420203445976513961480994889512427263469834930921917632837703523618067782090845454076788028211455178179841947796328397960140088109145571568370516929775222865522954695189510913734170062685420760368738813976694752485533910400712076783240237427412018965420051978219107701407465232705952627062755433233631315062841571218101689726310180616886978415739094574101764563824279324052545072194283836766003938343335730397334646683892796225502092850377267882348329919459975069933006745175167179359079450202010139795213336631420903796554878325468785554739104542905796189747169926522733432918865603121481772437759690346218813308338667027445675922013274255784782702145229760258372047634967963734955433601232407337935642432814304259197147595935544087394305576338724455877940767311236113903006187983210014781174396306037654175276605670261745446107784388186459171151227076098813981127127627424481839388484245819243209969708695604097149892517979186611694600363598032688664278515515667448868491248401577841239535813625832186898597820738231331456663794194197359571920061070791709873882401934153338085142283437543474997869292895162898137339702988315791928568386544829347522197078659272204794893030285695524113116756891614200428467636528405342484482463197341994791936436653655536202872203137074475178723461559462393560422606304546138825339237055671561959611565148994770891582105977837793577629983717920402475053541949276152381327160318692937540929888098038472882697379098361849374479618204198450654208697615104588049475232234689310780494880186058644638677138566839822339281894279578029249327916231908147968851306406277495846693463612779844326534208662582385700905629074855571247202933929270855648715787888565813003316670153199273065939555314548987616969005053670210328445960954526479255609850499788703538639772328254477383503043987651654862000423843035404521004386420563496596353674670263296729463019894349589488965785976149571961977446053833729951962469956499320027117632274415885781608847038840950926418365922194073846629253858639043759602955935162294056798177094800661837541838537417818482152502712808588187766192968477519673073421193712131187481493042210059075599370078977321411545683768994376112119802602047010413935260672442140834287052743351175992307723806451019382658784250756570004447675878060421145675761558022258160406099346145014237474290039762742010827559756624592726285915897045915218298281987657108532721575173748943360624462585755538237902423636559939982200218316916969097989900686310961972530137926808186386524360961408577916669075583363678332208743626522138258972185218475031835668473931927701986121054526780263187960858574484091240993767414500044417621119934683279790013210448437626543875410632433241617658232641344140167828629024274968297175437592628849480692754291591097258846370988081118517229228251283006663473744846813873880015480147469688321738241974577335862694736269744176184117529818712893006023463825176084999127760470897685997446852705841756481943614424709917727806384463237312917322698185867810399310337607164759476160183298364965150244461622398122069476755540449728976814392924666795003609521244871359546472518440814723991797275285434919529579694037842975602124781980538715194136586423362884792068078450325614133849689920463206743904702068034473832535002940048274948759500386085271520498775006230195151289437161312770702362460490870245295115809574908135037647018354149137308052943018589652289921348635726955479365973141987338789175271050165941001767094566768869770333143469705495983764871861256920983676107157587529637043001004091507797961708679823611275285376343595489552040984539815116634137426717468536925881732708547377519352855159298097169571418470220955330733026264378133697973605813315320041302714674270226263648822839909577393621272356937171440904653732619331996923036128938923678065391782862310514405465032064327585636721158528339686693829041882777111880622803086110236497063017020560597252592739684880416178012845065505360937606435868273105660653502600879494448326985459396438567307642928482548608559330763099068493120126411853919286129383939741181878088477363541742384766144060287758431582280945520285622737149562872176627728251338033177481275463211634440233647137215852949831428861083536332363096926805796654630556295332245573303390016377937215653947855512793179163223845390622267803067464134105094077421258353786413446408768725340468317900046107003017512183649604745895274445641564607420801640553376847879802907204471156199701609334651950117044205561903001266567442456543322604978181929510066578372828049453520195132510339853791664233884180744646992614069428582608289003988736611346310884762670537608798236589211258830202829625175688740992072986941157830474846560402388655191981728186396240236661423998510776757100012896664985546719003071039228576021658979951705788768570471779133901141309065817905271164281096803816592682719172310655558726049000784493009482457181819327097163961338533786072883264497277392175961835967651686550861356042699404310135864624564245646645675333142066510572789708558614490481545675969363076205861442244123978541696612236288019956473508649779398511590717568137806097969800413272146866802408703304403782522708767161976319650185719244754835679942060720640939264020613265118961241341056809766629381967936043668072193931449724942072346556376720899887569462503900786287478392476315307217732384335728541577735951850700121135539792956275964856439514870385516091825203007528666427340997147280958814678444696172903840865572608498319637524936106825224076201768504402679159452180146166024940761646939422944920462794495441713368387245617627398486079778555677006023657058897768139052597667644919970725846345621079968347951681479002920331785983443599206075789786101736310468021859633465161585420407701792752292213926770000850197790925144181699646727285903762506886849183550379881286500554865789693290403877292494907445220284594984256494610362446342879670086217383945941961502454891808767712884303550335213331836634232919409444176157633261710319883298758967181959414768406247852298717681318524445205960519518501012868681965647356969279832206390728838478968051929038714045863297675519634649946987359865950634042079047488842560688877213625860533443858322883661424622125015276882317697343254825593790358539298752446880644529760014869260095944476189164140914062044741299359761294640700162091478182987467321321350866618932648436065463970660375634653626224314020753875614464605730920524678930206402685722316148509111324058551012619764097512830196359446904944497510134336489399377165253049399136215766991760160189988337996108694339563203623093328907295686759026968110501231310303840683927220423330067181163339390471656906615862240104947115789353425322737259222024932041005727170823340491405547529807712068109054604287293955886559713253396590826541706281224087110850276306199554758089997132282509317155732207843606339303287544618574622347149254218990839730045660506851869569922358498402051992339610882344873022141055575828413003379131497575238676596829139715854802700002612578866456703592975121866272541673264022966309921400581262807616066780636737742478693939141112377396628444822673477563988615803435949979626786749808908337765495543123815248434856821829294191173282105892825461624450383824655313788320450430193308155292682397628363168303244280774944670328915247065518289681709971244316396846581905812840180679433660093870351397149328006223644582184695639088059011266527743967916409985067413072027593528108750261032747390644922099628712745186618650881512603227838048699134609266456397929068136144223180013804627595181190749168240870245571389634990622660499543534746554041031118879631274407661546296019598339736026637225564904107948080775012277572327801388152818132345212852692719190870678639885920815253690199618983064967291397744361096174646252410260096074462192704131292411830540036361938763857424048750928152168048664620345050373026612510962729516924168523048720829312487696541119237189572868891230492396607376925619733413294297924889820247384019872670554956086556825466469748698150862253439637397558295628506678040046801342424603942858836988685198560396451346677222196923449556672467038127359785891615547760530416360618643351411625955661633817440070228468584043743335054543095255587200044190235561135804679133891297663593338853740722387281033176744801302180662998859620157700317614996226048049841248449218088829281417028734318947516090714673792676531495162493672581500405329644797747932666148867921706696102650283079552420481927352939913383019180038808924055723439320197571633019883403708581150301553727452631164857837031218271127882242284381382101549931836932500665594354830860061446101462560572601434334067920940623911365121111488448793911493249840082896109751468579932297728873975524691262708089242376889561102000893264036733077923365487660858843675463402966899684913281797599153643743042860147400244094119365795356877876144380341408812942537746425406308921466718810517838513979968867355859468869026788122684652580855510765078019636821909911919351049372788410857848532483469893481988302230441371834381184518999779901339472276298426956928187036254967051498352033727295142026107796581483472515419591092889697734562156919308443884220041141343768794152446500057274701382176079946189962576154756166127896088215202883592957228458718564792849229020089918447630019466140022440817015895392779667660581799598427578009287129185929427486205637281000355906831737976299637796646754175862886342310937471947273250386609865192882611313254872536704737066778436146622637415265438096206461107374432092172130029331215066038082815608527648746800598262313705971353285002447335239869994787713930213991569928792897988731207797133539335902930314585031966710687284577279387410407173378328874457270380478726803456931066338199723025708140770250301829039267001822707614009112199805565999722609193452068302171856486681720350243234426411257331200618695280272934206450875893085028178548344462141088990343665405444547172908693570643925192819859707510846665956848208374993701624334213643531529057065530309056358287869397755270475846614883488656615525344327168078563597637621386175384177586542967576546708599256129865242316155405351559725965215028375003604638316274182133508534528820641575158313350568509980546174494984002667417091702738538816271672725624763442194759075507285597162080841155579660562672704894202690689778214880685989675300838749933956478715171911947995650448518044976809743416492171961923897632504115010165713066395425095074202387737053193507716983779317841329225054958933645177848618023017139545566110100760944938813870700813812634115093520886016268082250010301677608868783742458581829576375108359794893276759362377047564992211421731179426890015579252432916771387938096610820758156436296305171619777118731841338816548181104453323112934414283419954126222261760062946123628470489263960961868707732004260927904848497636018644582301826036089242557086334777599153758211867618695574168686714450214969749269410023544590254829730815603617766444781094877449396333408418857869006454571092542465814995940416471485105925063317844959692116520158897604823977297534380604475146737658739075043645453728598896351954458038892778327803856493199319303742566235542445675814528671701261068986522458781699885355776784305735715965278575953560637249203645376053126950687339570169524187764834965364079430710225310262520228781226341869805094533671577669318956885596318024022129032868692786957904695891804539674730178186406192479420383937010116693198491415086021917462697874568517566491840863734374672006298451307317925131388878372513551918077783679712064723287894533342845964774410818377483412641502015348998289129798655000493042027440381655539007575553769073369867343558263305512950112212160149284428335742801330269972228734293912390908583532516293061348611168723533273977825256577046979344505201525412273805513147658855877547157402876413268883544115638057990029959106642052274412162190234149798225334782481092328923068213804740032455238310578717403041546302796728355095051763200827808972019693157419700866347070686303729857073550949777281512541217351861185190166569435732078347428255364321009539273601518989753968437972840110343122504033972488938048820369744672122477318338031837598441821736372505696020468927152668699556098838407950805120712004309798959596005735413217710971842396471194840578181455734386514043427816793366485458435683056810392425411418458951510713555697462366110752895523853704775705653121765847470057533066503603103197663359149712712978354507152935244630865714702450306910213596487409884816870940263608153965208651189165279335313143355847988834481625062045211712904349083891975348042307262871437606606430265260366182670414277866130321310112448824654282034065484081253854729533944675803368906399888709855064870874828476627036795933529932039139079073244213281641420128584952421265614364448283469454857124674564819923726625409705152822885910852142432470380475393863099851718768242540296228829058289339668340378436652033941655843256558702487958178454671315073623689004330698445014835774756972516530320577268128052316199994972334228092352724534170831298827686155039905590762129372062838565801568147446788842242272686455725535942461391310396589369379825340084310049447934780949518634033109946911510948173706065125300384213793668401289549657684752945488398991505487300041499692789993703669434667785074396065746936770027166756464481862908181644232029384213513769513831405386128146160237658749040847573104978327631566047776658016246108549054543276728089727122775184843036223536032291977062293429922990571380414045149193756251142041772880611024104341630885506093909770457157734208154903495364224400671113809371070107238490457601850287024376365157769357998296086143673501337678665531888153223345062742191133309894996493212484165651020009784608958554524207788877764722005280022238957118801917540124411103700464426612661913153350240425804340597310181126835781452583023553525446463809457968306046742855013581299280617895430221124281564914986610404897077224033637233563419850930072625114347838165253883787718630653700864536873036120143212161828990022620379985427035342957881034236690546879678186896933124400603938180306385285298203664947435508924602419662261393625215099992927050471307777127762219817910949193531059506215329150948392301312232238970870516607297601783825673765626242097587725264506313765939354313855104725111318155628540024714487966491627706518125483891972238832211942706257297453401802439816139546717564577627608905787808376585354921599258243009921276423138517571179195549193415488727461797635412511175678576080719986969828367996016427828449023575585468090801877118921990144175836193970122048178310949208273735208237660239385175788483094388825196290894892230195591690364838119453989912941029537240532625695212986256867559365455747938017429165985794529576379504576006260442449677391067031053929985179173498463459199639850171322499243991553315554703194646599171643445825207169153518870256284927968307732739577976682389403451354521646415516997336767117503506305160295167237479480363048068694040872803089659798011454330033280072599618588433714086383868039218650370589999587863775208422871419328021361616427693002285740910581776280156214691185969966477667499178328198757777517114458946751341970560483581697267809084683821215799013988427537333006872354061961601274681658534220818023480504880553801202431577795341040594942021249337604989284248015947113786316585064394665959303346031932253293986588807933900209492546013087959924712219254912281060820128166094673650006937105548241879175290085973237262318653827852785028553543454072112047937818643978370818779328117034127801160307040625352936055571683144804045998390923255650720741856847038466183980084777399115049459075837887167132980578859875410082851408411656909225512159160310779343001380292529990003035106330672573177311142596250619015727708715352097640131680162341528996972422802256525758416574150943375268131076876696394774558007196929150798523299766870075063669497130059026912284621311071966936027265787649491250528350147760961596940862089814258402735096273003926162954070304969253676593275898775413604473091525157591756982613974095368367433810205370008718518207151242740262759656631754617098724344800189126345237573245852746208875908575334667034648965895030411379667143304298560371614528861417987913061684956175784526249802809648527299292608085149879776785279803543766141240619229361801984148830183296941154404131690686091285409590424515185794018762456241876878098309293949307705445519068334986950693721731531717331283373427358717446540370430820326280102375009602065893867181032005679772809098944098485505439690236702272935223094508598401462288193566184895772866230074202630629868091988681446303749746955888332949599611107266919777668639225848607465101419165261397229255527843396585794410336565032571043991208343700255146276012184058836614099923086380391111297759893023262842820871522373315450167792930609103678431397993447042649543879692054897906024896042014163285685909943066523342732533599152669451329605669753388321448372578600816950495298302561562548109821975140247229574700683819583379577897842017950080198281852768227560294316707383483624938369428311337968483073212455909140266583001385421997771797853812420149600861237923046577477598673714584666873611365632352954783782797183663430385722854896908677127196766993356959383978830061002826957034502578351346879870927731036646743667362671704296242755216775777367783610000550978809026165994101149667181589120522278802102896385370330976651746304181343408832970307936086952445552294949376604010206567179347086698585638391104546359309761915575591702486896535758177639356644545541182420263329544182006055129610518210372399558076547305279121791509156019072070569976324150213082277545728016747837016543247473624464418969618704628438554756174832858515701716854549037196450966649771093987268735741976494481342197000928981214992312205918883514172620966751777859425356059494670126928853074872594332511452421864033732364278749334725656293251608095489565536419268476692646493455079280156324268929989152100979580582533755662918623599104256357487739748236098668061659181269230303005782335977888617911273578345320167179207780949957301000296976263159007099552994143896042882997544573640179631031519799521309044702563746984557446330535117246063474338920040912220646495598578762581447436994344934607523293707126227356785257421083204271330530628919921830783693633619439405162112633298955744249677144034000271501695119922224706990062550175905197284301806310335320797273550280234146308873153020210125321805197046531038586464683022779257442654712510458233819368386893965087812578050490688254539735961010179417990080153303741301707456077291126218627511083909276769625807818512003026734190934053082383679961266437624315480190395926765617825979536000625643398753775043519805835292342060218479202611940502698348728949537036021677961031673298499928650925743857323446045036798975616812466307197175391057928577586991069958389560736184361722272658154504703972567142143187394865010016358691069550878436929163884116954823798858188990407018035134604732325971397626851599344469837299098398484248712627332569162930384741425569556658370712194117918876290730067572513856321266177761155208979711615435080130657516818321028201492804985414164741127861057268039182327500220364802440081044634541474236516224124652130628459209212482340471164641896971757470742227319394757621202908161941267353390830860524084661654464833826689014800785704468529010113408718004210596169534686716385490055137121674652777544911225732676241101327283967891975643391098983884421029673887296957028677932365297083364176112654790515925304090345849840628348310986428642686846878589973349207185212138737560152649973525956509518529031583771001719466069678073019957935675919917246506730071647718702841770328363365965192495564538125230300689145031233931361277760205784295942143750089641854578307998887744008516667364036573551827279740116909555807236012257331860305677807696622791021525032143177896067204749815613163777392518005893352232508849820669569386942282616340084658997086996757600301838768912909410241745022536806866490001991978665966982224548222130767488718786824731283918751584494217509499210375329825191705434347851837266222153083304712275150721583361474567526270366614417315348006361436361342195204436651176406359398560345205624515952875320927133726882132843542636382995743702266562315937322096020668100740200415992476160750280150198807617023491083673350293767901862279040201827749853040255157855133434971239058197524092349743727739067861318040923028426403824433575787018684695566179481502095310472244550781183992157578823832353518015625016161193111825331910404728123221189003805666142324947612224862834424875255765171322170057723396971580831298161433418149329293312693318034877630455003041033191295765749136937231476771665568516336373899885199272090231659801631992453899805205012514240907191177080768315800172238749946547889788101128040784512401894961605055566195223851090797555517415022444234061636134899199154882838576746377621065384721709608129135050882076685596840354264229472556077951000207114265557411866832019028541145375119248403013155586590041441641830284147748629417714660621646921563015849002988576254794444781611276672015854365799261423983759842790036761494740125140491145925653288200599494097306926222121535345285812342136720156830193367049817994757504053459757858376959813238732224653891739973076628095362153110764219286808316379137252486766265131370072681599946694923508859644388539388518128007862324567320041524513396973437798110614464539107698122904708273531366699788866246906297908114517213564876554568599517054835082289682046695806167240409381416458460436365042651621613261000606376368836321848969140376376852885119423046287789002072736548493013576999922421130885311273578541391107404747326163436175282090065583549984807868118010696494880228443603155733003546923329439036344967159519094818213589985344171647801301403800682114561244566823100904579381494315394136455562008031360868773963017731454278154649208462636174492454699476764890594609148409068628415086526466178330586040125902774337762128230272850094712796784235654339478320776443560545912080454521025875396390578524895937182101011148779734409636152450028136885159481698045393227366740756423189767948276129307978425548954616354275916672504397147113972524574328833412718873655152602502247361268024074344519628689098289927250103682734800365977486309727210322272981368591291978179256206212024765639976280690043915225615169179776966059482127345814360457405267544562320633125071570706952409784369590068705170792620636546280863519365773781947071299450866451686527563804416318499983385807249016395437753162827437080503884751014351085595200853025369377706245175232592698820126700681163247335410277092305583513350508073944806473356498091841964129959429289619342182453922702810691809671272230557035011740763250705862949454956406993985799644002245963303440107552970175101096845317288703537365365595330649170861807169059499554050727090082730833074717196661047330531993316031308052740069364854652750898219518933611643410662421904792150281687900165993575957540096062893050412361123772570210219752404783665484415474743560333185803299788464049973447799340180226963404721935111680756077852412067520741173931733915066336338681859853639545906305210834808101510311950580747377325864984006499892913318915298654521362005496295219918777650465149755392774787243738819257774351101278335202270238513236833411617168605291278680002074110121018358292963680963576624334363305271268743998598902053467794730708284582192521373670855640996716671624910247783476739723836300075793273246912528314747764491328629226007177214730109027426814019005578904127341230505497253271574101362395507197160264124205665196550600870855682693171621843158357005987841578672138602407882536911845274404762910115183376661211614738397095970560979867891622698867380452897364751660134201482283548479428618623481144131884697620112168300352271229449835258469487430665981966206690016408230307880304371384928771439554191840722430006589744773541500483793452653768802732358364792447319817154693753618601735213411549647198786007840657605003296908106476701113725401051494371655885644831374208004584606379567227271743828665811782118933500373971741951885255896567253410149735119110777867095234803504687248367090900268804594064257146047526778849996300499020787909928193807417235186156739555283534103016043141347105364602543663391730294542496756639147148760929249233552967571658217451960279382565689426659474325280234213025816225720774953438209632504261337097858621328153931863454494552564844870381792038224204465958579594972537454332013673489296367061606330601610904890575009034779025690365927798991471132937562096889298772519775843800404773065675059645994801450670085531274321151053523759389670659767101014146117135562571159236708115502000474990996902724270180700464405892536291903350773769946712883059082948506517808548791490178474954508962372650902223049982988648357777857999473558736828404049066045119957549974451988465827850205783293627692187629858383794884076310942383705254532726527116600552728371933953250317998430043608861957921113188988711656788964035647995104924155583197974215997710067383118200780506013690847327165301185357680182607960057241625335160096462572671977201287329272292153135995537392508222119426524144681307966016281025133481348990632327404847980206728695234588201655395318365978959698311476711833333974210714631684476769192356401390744768199437090238603065538437022810124960589299215316746330417922058864738222817042441739553624917465274625774952685951024862360473100622829924158086122970942363154691235393217224283095587369281290881663018228571563058056979777406987349251290642815591634183932157240073803756193315708582936182957370589965923679245740308336956627642954972360618927196608214818651329061133323489750907626711873212525424255486575686560155378149503615890578865478986154025941596134191028519225260322001188425890620308724236954432180100240117157471785568303842967641951091520874904387515458035417988548898670363251029618112085218369828360595459882846320334105743652927602552484681539415837318202280193428023962949938558448540460061105199085975770648251934583733380309971696304504836603268567695772003119192953482333152608492915481566032948073922288248301373047780851811379655590823143968583651233621554908009068436228142769424462516653471402918355982334324875015427622190074580006103349058798796818964460690288268477587021033093420081834698620934708702353400813481563580746727912806795941720775037628462507708404178036736431469461693071080366312898783019453307088126068843100076930734442198287752696303398928789038412680991868711860500873302346421748762722228628286608995082763411125419718658637425887101270314927326774862925474981382448963745969215275516132922529920632756263943413369198986327562700144893083029553177891068677987651756897811144854766915660670810504288268664514417719004403466085929333701057345104783865450867069017755452343775828660063859316704867857026336731337983886791720164969702746782992372196186314030672764730877160975575171658473407008204967702176649904683560209770586346826092549878506868794156771380393466483758527956246426652389187090049160160502908504480781387090670143354998692378170368126896094272208777885371170528468065385113973588841196467586260760272327861828202815741180867030205955353650584557254423499094703256347496628190868954750572433814021485881471669590075819333400850272259395009512350092797843065493923839007103342922033421516510622630547477181397893550482205774062149194885965653145541762352924550999194794917881393921018638301414344557873127503588037512349951634974265732991616200005682743506587021637583692449022528559873275048280244087173725361644820337861457840980784269493967953797205306452072565853554848182015389949999776293610852251320401906849946526472027352096365260987912334753366941796942572919085191359810637051033943008214789931789405500314421809939297360836491922717873915545984219759596967017234526925395028987169788194236952491491217500350574587945208734852872593719256100586071471779381359190118059159974338216757741933745333111780001807478379940715660548238568743933725070124120214488587930347384037417027873492459022710289071257073659435455130862832824028292882554521016992853851390125387839421202757784561386126433360988461240411789365303374572889714068290878016264569224903117950381983620376528987670203572476943956131219700003706219743875724516535249710725387572398455790947390674717518412937300662892985475124777118642583988460272020330947300333986865273458411781321405073797316598970030264713306078859511649678139133909287342808927913796718957927056306406413500562930758976412881161172991694147459909329083593730757370579375825544116816560289040510658375362013960220973581031792990046667954056138266784048688978857463764479956135354267476893758420674178306510372233895928074744264907982633729047462117840132690816457451263711717876572205908217734366045343213204884992607671373816245304817622295874081091603094616223507149977040705519350096522548926396353608755964302940571204779345406656270979057332845387285393471922350889197822898974357630011828882464093991362598657286098349186540144704750985709799741254419470970213236612459309041340408286455764388429350243845268076827034721341324318989388487187700176189142999753018434681835273368686734325156441700394428461937844451859621989552723180494094458817694034292423463176118040690471913042538541943040080043369443383969022822249217281976754376836914246298091914206234033264368640625556477996567910571930490093124561635900568431898928385842236147258148082317003843566652020253371955261144595048429273237834056781566212567911590759336748731273702374932204247018051054377032382055176607724987611803617944542034209591655174847056259811771245935842494233804166519599377557654911806876965761737741279633847195112413140091428890907702735333957566387890000253310606274492123700551614228409422609084704499399652887375324167736300967983316591123164912928367591773753988335094678527004404102092375307118275558981513585217434301215243259818577882599683326543277614797295004432276305422520783450975577043894889690760725627284707525076571269410111166978172912753438932113289543857730065696192649282469325446173901435601168709968695070168767343552751880804092656113189053788109740398260318835966857353808058977942613569875781139179386597687013798817171846239037503898118219014280417114920416527193997788101525304685292045614949615727527324198312564165990461896273621913910000106489977563370803168372922536263489716082140959133538713358535881883900956194758731825913757674621085659558474079853746330316959656444338328027649708690331985361322248425302862533124607214496085067637934326748752792860403717685046968606562865578799700020531137708746061760601612617281602617532231652395243114732323326315339346626259659811818636781790858048246397193077897449573388959111383552711723527516273113869848625485662967885446743042430720768273040082396936856278288236969206324834679083386252913652864179495573650041494926732640212425634562603654169298715260943161604052706228606704830903679993931158043721487706344961229399286436954534928026342291203390617682004918193700235305578306853936266439308155722833408074209816724948884685434877663011073339912397684934652721928418511020411159110423738534543108685240579671906289952054953238360708560285421023035705615832380217062625003795196849798441278982906535609326222693120146205966740358501325651274265178698835825122028439418753197246476499405609509281960276694286700702758328549762192068185566720912415053262444141789922882094826353022680972552790903199906277981224435233379563882921316892812855578675595022391715717110577766426444639812132658339679675823981098563860825026222611697367098657150038655136244576040402641165251041659019748366360763863554349882250126906520861893557659070708791576966991846300973894962665118258821330101473327757573878252370786997838286416247943764688075703531222782665941317051451531126783532559610574540872950402330875547553767759622124190992379517163493692018399593276888618884199558827958528688046529583047758389142100469573366776666508856533757847489979425474398336512580041680487405436602032135667815193814190220262520845558706451447968431020909515871894665083273759773882180014217926394289210206712285143437142607084179402039627021711625003700290245904761834219243365402171438075586841461837397348830455781331133041756621052735477969048414334503851882033783822352843713506604996804205838577777867673068053558169419156376982006560859360425433062881296554690119660802667587931630987274619357501180150226787560967000890539748496499067887595448809875816695315715560241171507998565239394768141397584929721909522254630216574524154156177167206161932289684679066337232857470713725361703234390234687996310813357535760821447490187236810861001911664410569602296900535313308916248168656539854670494965617287985668414910629699558659742049180840602854846377573329519345038795051800205037785116569777927314066346647741669997993035190172685622691536751750131179855040833340717392986123243191814144101738141312173177468437121937593430450802380510777291729388627318910192451414849674093613273293070045038686704098385343860019176614781251476063771573950215584179784202185647445214447962835597872933756668739082193207114111828332923595618978055013224160160838902885713334742399102922913413121988153007276032872007067386721285337955754335525569257748271922416302457617248636420977909470981167403870768072906170365867740155489753270100682578477901126150229849234334099291284053006289372694589466418023287724163661263633133786212443674170278009824588042152423793225481794499377788633605253615901734937770145507578300017144386505356515347987216761897885381958053420970812232301483609056251476833299184223234551869105000825772116675497075232616002915549223981851731321513255866124615399406836023957503320827755305550834475526179513045863052753253824315254512009815705814436873999298148274971490041759063269345379563881181285263574291545384328643594342082007842460380466048225794002435965017193518090792790458866652632415929489823007053469488205738952184092771982280294558180911870319685626010281460063777805901988370873753104353820318740110164558417448003135069949841445132222870879812252163222317320785963718540500366830544103787763276047859332656711749194317527333152301211237718438534018205596569345541062695729936472742246451017643984684426894186382888481746207593104505022934425388993789695885636062764289302154913793874680314002052050422530023953881592883003733442870868700937305801541464944311037699525264186852976783525350730301385935573709365804556058126768258068492607233796730693048553264319384310107054613311285195500782157284350286673275218926482517130725588936853113997574048844615908757930909484832359794922030465564175874594411756789465129526835602710293009353509789814952467934226106125117902669916608239865961982358738919095412651303765473478631090914323961768511229932487235265525338498222805360053275039800886169143546027311463675948491558192828201996446439402506485287389400609333872917961713207673466227481313640945971490040006166871176286411115784130669192869346729905371720368033335160687858848822831435372662784432296076100441847227851119354336862633202962205546712753368979360575964277523156798575067815639989088841595226019187858959241424942602751292159159528045751176141624317600094150526177247475685906424387654096051330973211727854100608453062135151141066680750727556301789242136053221906951037708023559215489210242584582350120431563294509909241289989412961053884648188233832627251399911011677131490710724049152901577318514160631598150135318517405588111616266690113218448239181442695971446954854975231048354776245555827348619303055730528557927743324300771188088357047924686584795261175606350433198486767616231452838586742456837573024594404307908814459590520435078372864350860675799109224097725742988181891117370023269585687984339693235016283020649604073299082647616162176385201566144479897697513412316412919205362590254888351407986120507768781515104678164957859791716276628788986373813540597811209952873117256874619306171844645113627450086162328267940202464798260384098291533049823996537983296832806324608009428136175379896966615221573975295709861029337389442154251499175031811778467330285017424331908517009990305427084073721183851277939869314773856194106256873390263578484886003858812558485429269468333889274691217292215912706825651456692366198888612203085295041200947273803169173233545200633950378592977574050178207575182521965221668202329149842681369092347942108313860168112965573640086284600591896047946495964161470388344576116644203572963272235418791541279714842102317921824430653471194432517772248966812175561401183741145880662968822093757915985267712851831068941275398267787141046383990884141667290271831369290278998588282787899176909322126456547543727458271701305670836732368076427073386225823000176611389866171629182218200212796169049544624891402448258014285572252380035171732244982439850547025348049088698244294392749731935586860804941745119689835054984678896321349766359524261943039390971725101692099147476300020029039242430980268606613189358864895304021274529406304571086684560735612915018874287030642530827108639042716005794493156324776644596147916948870190278592332193462171445159876287188182875929460209714339266578856813542533698179525575950569407945244320940023460831395630625358576128330138010367685445062815535502047281904014310520460041221696527746815598882147946977225271204232349206488790225576564869595170798352369176718770381669546081804735156450243460792286516617000436658851786475880238262681184705429254609571214127256615977916812634541450899474626620591586150029596375029782243640732536986528584655305833877424040946353945960460226513000785352096717567852414389147417451724477638737359249122775567804858405832285989300360310714495507265012790486340173909199849488851548307202242214666729474441142328380955802847914544750677032771187825792192479257735257736095535704462081282498341386128638875176672309095743940796128805735778935653076944702082815406867687576145982232627481182555359843211592890711627720045618250086560093484517613712351885315599590147806440098744963030485520942289806872209202096893304857824915552081027549669102613426365210668776535767583848309294725035724501731739639011653345067207579281227471392356934924361256178699675620748831538239037027096023984306544886591649877792191253671904264534536649686146641177120321779221443228479423905352866758987151523237887557182097454436610610215009503120718142368091832760155013857558481163741217075540054020381482106222169635155607359920170408843793350957718538081073652006314409366170838453299930127326199962140545581466100482907145069934103952212506226232400690789997982921333161997816889971280970925672171981400099105077017414937940490639021329899613206740380917500292737796841142360360316720485516365077803691098983920041539174461608269854943094663269780341088220745045688923325209686059164613165843138497181227554248820407660074782136130677458688419866336956359939166278303503925127638517328172441729626622808759843721744026587700298292997223979079753125237024924289563867245694219768362283258564180976409010236530678190195168134392686570497075718540312681445473999687692679940637654060751949511100744007146299865974423431481949865469530550751440561849900789171387252489839615496991901700378924829699628687505734121324496744861350551256211537730855428552976987838556179929941368454721263825897070458673432093895501664035630366475651947276860953447972766295420002913562787225466693999756050253518799935814883854763633450048165181048610274088147162759116975631594275690389858912973514782660031653928102775446538746625768731533979001895874053197703808213304861193999793423547492221562147708823747286393163758970231828499850719316091757287477528778699660422438085682162837061621653007884513306109843281853262987378319720426588366368504905695069545480081383686970109014926557278527474176372713245533214237455512323060292008639148064545685696674561661617231224535870079198505407686737858347330865700187590979923207748176564256168666848637700228571249817228807204885891093658087562307723812256727266098794661646620742307390005348007361624616313805285164803426277315590292722170334658961164105038073070127727170030853947615204706609006176479827186707603176220558811413270574273904712692786494770922008322799420853526561311914224914806213741767567803803409685144560586951909092885057666306528088824149594515515668655572032576471772719285032804448084661411179599095213359758081933745362364245771915236064566632881141810573799269807538383204316260141535680235046594270858175476182457995170414253010976634358278958098873860185515548558437663469959280628265778270186380668707806374631618202179816542478146574016170778366320230189140244929930684212532420904142061636166644195430516436037553590294720436758863418277059201448180755104819417646514844861936505792892035003063877161022509497438910600548596967198871688711179960478995055426755436253587121746161009490500684291568829391247369312174576422656072276640014569452219786165209688099643056805210377991945668721342506256595327313674623134967838793628969174789930192333394619529317184759331116954213057769572390802703354268747963805407909143201411351310503352600608161464032750962346182067577759954686497757214948687658147928976259074810235872139914823759155327026132808419469653813588601963299654551208977959670123347585208870775513139157587058135077031833565779592603867912457110223506182701684919816441055127981040143126472634056385166970864304866189078508596442964711468464738914955526214277699844929160286976808359738020630017657073918055670479220344643037158739723430815926815737424753078112724392743306461033692321752112420720293728665202562613217340289841793309880172304397386197125381309712929162658602655756786568003606121233277302452656530580539256950802835151976557202811180012672796511856812168711869765584281708351913010239449237743783355186995551791528658619853066527708627663311686169659398298354468925248461594542622873968659487322286894024912052656094575503674080070878345597132505670472120310317176207558492816674172061388382380697509729108096717991411599349553358754530323101493857893129427165958587452155139469680023101731682224428684380674667962105257633089954501658224946263584666764753272622592450392263245177977182069839831117464879465568977026111553743954077881695302474856099577916362573442386734317982270299276659066903000644186429306871510170934481626065435352541831130476507162594140359701423729234921769211739304462944804679895726926821917272881058707834484811794819127831685306946477502345476485214496768846201897614777123492918526649666509894420895762689569484487074150692742647898959505478688370519309253954110404203430478898996486810775667444344834496441590967331646578247290581990290701193562120285487715126664769368793553473271274439186335936545143080590489318029041556418385655891462499239199635903081968343108583511471365458164796823455254099656619355384343241982616710623247832633947103566521834989443535075128534625353916295139775644000898614749456122404671662298321749490917350861837042367807139981052521673460834650969334683761396249283863639640189272745964370916874716898416632796207700434686533677211137152163392276704279208352812125538716190683417798819640729050692227828029288828236122667939775485601488413071254369147407099708952808204717014415446972522506379199380460651956466117811742614212506316178812225978793560984046538394843536271675818944907881261708266631541256378831255575535088557620974041955022481434349851998421327190025814009806153848748663542125785805161630134296549850798577763552685265698333567113825760960721670791844041068113981155109080963936482112829647321609625816434426322478385717574645747867432972855025346449160902559105713094836954714566686123871308893340547862997577322978453058021644179497612858864604186672493417005314509449013808153643686069620543580141327833115248222759348692092657811989654621863723524677228246173596377267125623465146863757075094650079288417538976876119299167571885253189537566751372438823803299218813577288172758146208362079493643856437554426676984465327377261179238982197851879275510057390893037836810819689672556289119576724805014886285382612314094758885827932946095295667537335593854081716288509828027934675487228036560336530106447935101084565857980252607146290803354760663619484701694393780500726379502330121551756735990274322747348629057106941839660725377417959642536887459163095138544970572819643822512232757654635000704398555599796404166639079754591435135647578343069269030875802123662479274897537789134779235906780287387780891284285518996995481344352163684162505534008408296291140296805372396166647287629632720402780366191646848014952172579078046502680596247073603583858068890221636478967310861077312534301255204518806137947864339328178297443737188848096297942050895000972557083420987777645375600556173814251249286915651117959367063347130185997173688069667530509848768990787419243176708989241740431300621347064954412623026086567217827342577544470391513922311088890316587396747755047812521382741010664037105874832550950795359145447514971453146817615099980980300913271611022496680457686991511298800733393594456846736594782248437650215657559929252588899959673889131562386255177540676583371783980377678522326589709523948267111515916771064325290540856806526966026294573845862312374906355145029876993969205929726967879784408455702787412317655878925194966640590756711800893346838073995009820823184802956166767201310854207350539030114524372137985348568690012565965835113438836380512870635918406611831469562572609822926592685087738224258990832239929949215991729323935471460325164378022803328560721188989318353745661366536453346241778603361299853533037677969426977799418820277433605492373236941498005751770432702643835180212331937922814582593061900468321317053687849531750138755626789123998181107149567866492910556511258214248372744448459289002786555677712636502599261509194569892310084512031306551038534152695952764970835506827537473067266261161250135847026084866232510315817810869143659893112824088210289041366927301668110392270555918105106090682344944431871043678257610052404123938268017732079977349797838445876654087665705984754532398047876110011611842116724025847117439334904609378031673891679879403371487628873141124373239917094855806258658909074783559665595594954533351907812742657385090402119455096808711238629830461654389395355742893828553043139668654783910681866741933823158877940653516577503407799126318065190041796974674178857938991498087294015693828654185989105722073978961153918390827526985901997517391940635359032307688388153886402216486391600051417400721726779086465951328568104854319535042178034901699817224856620420622335769753438957617336553916703624647178620261932675882023509992040187277797840433376099619728727089527765182066568105900095064399531263108595494831786275422373221659609212097753020058785409510229283047707879075799893644914543142411539785694866823504177190506413814623629677865155580189805996892664079139352312110943363799714186561682029981890304150616570670629666785511147961181520479927408503545191377374850441492631614692769381409070987940568931833576057355236853603487191648079655965583458326809606659773357512757401763562456975919297063347477696544070303572678008335436955577039210643551154632755839985378454509381854644775046480186884848420144352917229652213390510040609798171360655263068706988861806789040627630812308048550903614914014056715684931324769152887028177547283906061202085184438683813227565923477277889329575784927871594177182601584689251288203712433905992627431076995999797368314429412596131842953789652984283760890669202780554578421306189415561668136795713559647071251167501304264186601516826380980088006389441550941626419183658866503792888908866243411096638185167883783740195144175646791631202119157677578301108603172390650371719416731189619990258860205853897415484448552099046754316763504175839179730598029362528255703053055482465711929342182283096801845141039922028713194552659896166100435117438140177817110582311343634517722545267527124603475554843706834972656382715272279570073946703712247613610106596539819117297851806259077517665499765955684800617840586198601159186338920910706742620978691092653855375053886607968695733830228636517723237794587126540854146335394571081321413368800409560538879614101257127487568769850521752733897716658282201014856278935457785492420945740426965213426939465681510134356103229422936647110714945735372302563508013402910786237902281397368126753068917655701508339991419178307429980389966685017935704861493928300114115922711577840982835159726526702906256931152598776852543137363220880451044111708877781382390764501792934886571338517651726277784420614408400144968547428824260064927824646122381377198676509273381494635244496764653160772559683318246228658774803520432699449572391707569758109629431852589355074640996324060757328180700613576323405089992027438867408545245179088485222623454095960860482208982530063014571088255528463269172952560702475334373110012681758737200322282218236907964767763538200731434220382126818231145655702631643263893164582356527878177458920768008600928960064800112495365531950442265016957609397678704324844833841663813468112248670398389430723108213867134034970572085832204356146741440761805712367380305552996317978786506512827834707188862656453804048421725015718658096314042774147360547306423966470600045403697330801597877312948013741232058254694606612554034092238169599872517008551979770677422229028664865330300123064107963893404985087472818065622997034303675168732818912547168825372626887543145407166161741723086721105462561092978585703365508795688415264782478466951953383025457117252333133673833663112286264466280593425076798705554816912167279438170494267518456906519207343160778244157434074901948855412697801303067240747918981803709009634425488696759590179067443282336792702018352994476649274639974427711677141765963863555967416736526495372881039233277932830244515807653477547204371892181293552535775267216047779754616575939345990176953680057872798970257192462497243741097668131080212512189010232924858279892448377385564841154131011610805629325143366466528806861536296085021985983588651937474944074574436811855736920946644073677175682455705203901144091897099139172816830223314563377236470891673563232334271433652511945436322215414660278453907217249785629894107151654823877564502831057583597036382599200769740322031463846036834885249189861730252498246758555090571715071762580507612669965011336316960448015600365460095606785123021390917490549093243415946713733930690600057738607647545369368617530903205151306916086495386295981920329728492431961009028754189060237834076365180704173006331411496329768105731118496263591722288107697799564000815310808340346782440787473979858056693651206961837318871203610054395019016032443329990924412194219298840315008874273814521278992211172160112104045460723516067197328111734249874442027243436121002174533929588801197221357943646547017011870171952145475276341736472683435169790273919339897144717949888349260577024647287023278790226495569531845467907797204219714535532883631424881326158677823053035057232020151471020646463034027399979495297010145077684013096486173275609923500919255364980959976235928155112608245207245320286616507645661541988817467981891340018047923632043221691600665067729442218853454861567621352360048619366355603439697343173760058805883005865003481820801864349403265545869171709776423699816808085509686242465887643690819409427087854839298366692285413452115159300572234938817336275700633902353958415359742213820545851079535741077988026151557718146675150502139347414722287399114641682253836518917666035594916572282782794001585430789808394688117981057825971330933272559178313452415631233991744845715502972105159159311251977336162940507903178398008027706322374556664101425650537560316846891506565440920725751411275361029047753592905037714845736385070061060204921307697290378110857128942368014964484006959155688250216735773875699173149636817386924157484325760844044798120072710779702510192020307858384579617781519778822033608330155668595740458367083861882272555561369716884202326277256561051532165157615678957443366637907462239194481101795322519385222271486377690739817956184233705093660220686610273349607194651495759022883983646703320333388956208587819390152999031145562591253784273719213272547443631947624582950401565365522520130288613333970809761382662445246447766079705819714767691187135624600067302890369555227063674399612361782898478291686209614648248477736821837238775437976514238339623304652041803166489833287729792349643112779806383724937095833602666352234786649879564714564720533436103730619064206917372695419182373623139174649381687474983774469711867702864238944825903982078239703799937180832283102476199048824582428390387597551206761419676213087405189087935348190709440197634137116352056441293055071391077276236273117265821208241554639311251649084421685380391125343843173781644427795867742908486944554128690037086709640865811355025225315250460382370132865145847981486172836253455294757273721542004121779542695871640145545487091996718337978901560113625277843695996164823754312451881224219040068908879303703676509484466939194049048929848045801994791817803733293579513922531944093275646508409711524861044349860425995399426303316990968142246100794339046848844325543769680494820161251173621642420186561672226434453112888348561216451484429307867039521053201772657088596637885374753662460294352851629674781746788360088983788386176213714382962891817540037239877352425995885691017607127016021082135477764293849580191026726841059960064118488217201532151850483966772233426750232682600340969753219906279202055997180510948793932338229399243808420563984606664539038510245402802779027999976684881113888944557636564467898908265647311192497380718324428395120432180765147787410610361390300944381758393834079138668716889006809530333329501684428240250148077213309148736103399931470505991856239525226760306509579363780786315932767400075109903812779913657925705877170071901673360010379922243663083087718172141218450650078436410910274711680239090352163222810032994084523678823947190020558221774024046812443563024207655265878377276414261813432096662233652390390920122751652128994055553723141778103915768695588184632445694159672018273755772322998189148288792604748114947115747685720843196077600159374004793194608674959916591139365021805204865966459814413794901178530621657842098967626825766953399859922906719543310573535311752817249245372937662693440597574203245120316227080303796390546720625797431514035369267696281168255363605654353170515099871973118354568617414582204401758974597509511484337114785348152243481303457848783282364958898133710500658931926364725814837586931776476959859078520604241640557649146231607340408521590807824747043734692616972427350070865627482549551959793210861653180438940530687616832198637299314453878032870913916189469344872645660194646488609029478286075212496380805254270128816698431844867518328220409219334198568225547810601718007335175323995679961137558059931702499781525946290395928978558427844557525626693375962601050140629213089389287793613187385991194090126134360790124546969284201994366446754833685263428770235670875302070615372542324488386980107256808576138587614292887518648898663675344592834811392203028586270555745421450979011728742311882201699967577386246258517568878382894870987710146254642380912685932258555068943930351659951563917686826077479557650568203626501944143599253775703606367325810616565622856673407691836657825970718877087358396470677031489061599137002435079374848731936625822630620535517094912552350026920268604277393789479898152000393022928060484199820163220429026945669902935667546126368667601200997388259462947696750152255097043567540840297878753997042739057330262022000180244880339282143339979746866225171067616226265264343306236066151096609454163025740696911962666773692586741039428514632576935623254096619238118816742320793550191073562607764826057317747073392703300020307439992001073338815381129279521678611213596604032641297893067983125012091097859195034380694443329277325319495837326735938164579386388901114550143655145658419319752714697321905428428257857510100924414506369763402221915500663719504289479161949785218928013733113611939849357499360581250443053132992628610714126871438129539751938313597636068423315947542514917571076056356642593861700737954351234945765251465184495039938503246170977989309709140879029254803079663723754523510373852087944401739440551644034629935404813948205205402054936581467018268770381307395836320793349467445647293402292884628997914460997296157665688393262962357214559929614372028634358322473202338095411731209762768007564141243038081100670019426316473338876735528291465486569321690593349844743608650257426119942056975960607888388235031106811532313203799565517878819933059459920028665820794677659646804621253123337046431312506757365126972375859326563252216101902174912196817719188460590367281575639791958009122655766625499850283363527307983197442378935753747397510029462017982190854877235523234923591870817160493502839547817112473625345853376000464880541283034206562206240846660880517064213121325776846439616797665923262707292562218286718074992737331132364627086003392269216636431999596314480242174028526622969051691638049170709373351349004065395032956750585640995423044223142951730926238342998917595456071680877414691588450990727857719730273435123202276517588376641591406458573485457687788487783129991096117813707652981811850546962336173136127700230667621262949080552095125020429571155428703227018936727175375025219761055743266641546967347149816384604120741547007141684184500160811433352676764047582566848653536966851513711555696556208675527578309735932501537014631256673069882784414170867379703087256458873525191870992638162437775424399239569340145383895015165069816317742704619586803062219231847154969427914291651856650469582197805246248041409917914067030617119691419687153324079120432811395978956957257459039299577450366086225792984226706574006464095121079415491189711142534841497843281682899894356481348608563776039383320048827818691716023717830401410814706342369069044040184972073082981122385692771764131699812326922668862053140569224873125642850926393862624940009766017140185277761873110423233892228709972040286963516281223218865560419054697790660499384701113986809207954973311521850128255513964951574094057189952140995095069318980490821149272873260354964830091127785399354888399951902491614822332924783352617475566618513823505847916217180749671772065962848483561696807051711112732622137123269455754520787068329481540989353984124362830946683805962017408603708031789118399878241289293930196523490073523541958426698581024640601351316616228440018393375132901293044038828267061119329098105362465741604438516485091848082213377224717538348754171401486332120732172130391803933654001183984857569199939000968576832180511934535362953113595486942875375131615960167953884498649819406961097705664086330555003536545346381513327296532450692844984226360811855031448705640152917370713592087370775948209848072532886057302202490324902597209788976622686815343592724736920276944424063538817948388901074630502921961230180498865346664421191629829597525420733476280985106006573093737725651991874568917033557883980201918286216519743605912304004072794883669173899850383445968406894915910442562904401650229475035475995360473032145610337734211418892029301650916781367370132656627157085049147943140777935559725759557712273779024881462864827870763389658953937631962201836484193775712074472706544351826864531312802570722103752856297395161182213815590320857937339341754051331844658878131875377946454848266888857371293802112554702797127718463184807082357335349404189429861631365336905539940731008891156399907799511011254382704850614652963103170423716219510441568838128562652624697849145612377676766362116812635424363790290399903626072916311296454000605264426751487409357072946802822942704098825236059929137583564634278655250850869120582926236068006073096949463641514850428144962951454202900716403732050787855944722089397645128418664335022159042304687818418662448372459786040460906115904590149796837992987764593484389992152439693545692757131789997064420302431643124798340024221734856391346968098896891487639160875309189345407052224975696522454326647391507539911978682940957989287714120148040854794465350403802332707881373753250357725560948642034798565192410079346777191077450577717048194530280356054023694173275082259448224714687402794381933015497691901718737368401156105936275528455549801859259045864922753144819525289816693223097342294307799856963106821814475598327128655557293170399110601785858865232946585635138039026366560568074773920110840067433253540121600378977937362239846402788732607734481537308253960462221752811270875469517384525479457721506903220856893933347506699486613618385017725696027808121050956607463672050078564901772842770440184012428452710969013358536839910114503946355600143432322470926073070067772722660470191294722478563326558002666086711339255446242698721873488686070839849017018222164564974896777264441630903114058978071871049963817697419887753498904171892471353443248582823150642363588415954759197942853789749341206473067130115073680509922680277764657118273722924603691453487686495973171092405659671575151731928232644349841869209905345171010406640914051804247391207478092076298933384757521687155482478280152048253395113498209432527773981452384770944084262496867093550657969797490165044064456317594055286047725186751104980098467196956104567161089463834302770974743994363677484869890696356948273226504014477528923075412029612555077148826001266173162001263592753370001345913713145559948313259616982638253439963935014628198427775021862468921487361784828038143995881663892873288865192048228753335426955697409273144115409816461122632417479108933781751685054409051620630444762216655096343438682234803636183052475507680215936443231482787059428690880691827011424144833020882849364968429227647794331864223159365268960842272215547898117066593422690781464949006869037509254839999614636026920614787597999164780052126946352218323473518288196965581988889007424553988386343891046879498055741184078382593983747365695288301182542892067035300403436462833245575980092636610860535661144663115835074550123978774667785031675487237517707531927023132172238312027006238145648602333809526829103563524838399524735777729159187503880184420380923577587870275881583748883360959137095298592395875087812995214206899742785333641015377657279948602613543177792689342010456539267803483160141731772737637483761525193169075926239724758546314428257214578844006758173680600817792023479958493426020456482034802051923790396482865166572897272572248538776232524834174212413639940191017163306111366060124354538458674480297413595070093228214230995597659238443602121335856591244163151923505809773307012226775942271963913231794600591554472651332794535913118211639383358797049279287689272984188667555843251996724342070532691357645010795880640384124725847240732122556034464133988421692514497393530144365953295672019762554699116589228944131254435252337926368200123709233856602769538077787167377126821999281053213978191740512065812983474336529987228038334092227183351790573725805889072167499628503355154195483184506239618053046451426348867175493330651317942371410712283311228760701533624452546574126292016384138901044436845857583383626103516268448154350701848245962485923708553361670586321422508631422238442997245244461794842601542689793366189955916903715425740004581506031590469349879845565834701623066088138556681224677984463906061993737436608098396379461062862785821424105308260459231708331076306865738921952973597794960887675716129126856987028873440054475946128426916368175508830674944394051851329014460415814334533195751881788993852745782028734743294688718685679890534073557708932343755573584517721412452585387649121020991588414263318522270380946098022770135489673358917525758348909344316345966246805449478055332495775798858764391217563628857580222468184910549393587064538005189433354275069854744645035570388042564234529057815005975942136055214370147512749945043892671803050544130810936483074562327731079384375612072296456282408132273491224477319414062357620321281941813163146787815004474939031586028217544224205682575842756570940030984041941893780069905736491418513933381075378142087152745590870310298134962343647271856073953624312962859564773472028479145755772564208502806726710163956689468345120612742194451009819204745684262693548744897609581641679381108712774117810070490063984803101886899391828207691546048962960895615174661437849028064095877052252041884651928959725884723576002085454838499288908782319763589101780790968540915011199786065084045630675238519539352510498049054097486261317872806695145151017831650512210779035567658629475079020347724035137498927125575357634497311068560221308245591888808922729052640132401611816728935370997195575869137291862183305991252737504145699139835266662827559221090413288980614421961516322074514993311921937955608705431101387520089697933304660479659536677724366011389546793434286248456454318044841307939737737868711317157544350344825283016401593338363021624293692242141586176639584380977084304273065259858926765125537159657200524482361541673952683341006348350013449658628850008871838768902409852283471285525665686701653271430242743866856583352715943992389943381063190096012968944484562473542594738381215192074044285537158280919628348582019312076223262387491686010780304981883063617938661045764060651265673764047643476847393128558313960435103637164544214478935308989601210465673150717657248400113771980992672894163425406381984320635497440929789768445582536035410790945294253592800056681547039283986350794565045372133230982400854519218996882573174382962757283477107079587051963030562282368923002389825474893891007429042164881947989915991031024210589960183803277833733816732258049252184273239853693341474108647744251176604649532128018893027943634616710457600360435106571888605724428945890215877638298226637243830644780268899816080387840848085618808824603824942899664984131679908805983899383481440774625145086813158010698362832310081910813922618211145617874092724327329322160119554679457495552828765154430689205864827185021553261853291061482165735049702874921842782650089349429109984663814041825315687418645831981776513574491531887576967690373079727980003013264887272162602783018154280689981498353291510334534482472907715574816804492247715941067687005033722221898406824097468720548968947516552030765978348077232929064749201213368920422826559138517881233217496373893424892223338307868822756118881934925408969070630749400650256445511882796383383729233128131179277911214282979776461941340397044572825571024495028045102068455345601935595897912995886588843735796383818024381337380421007425625492221977426887798720976422843205853673336588782177337520783017734272172246607402531616864470965665865765708805478411365880860949801812101440357355082558947633344221642295960426965430863488139522291359252010331447699739018080883926382941476189049780365809257462431277843654804060502928932826146926648651261533289579121566949702823297927352719761374700714312715442989053640101579972102870617397865526594349460430654113804445501942474704999831300415413922398949965691796619386269043661165121019063560001803097618509083419917032645080006840402329078366282488214492421177979413215703114020964821440942093308529084443639437669229239335760835529906124927082417443949293509971942987891212287593540677384077748371047795349026745150158931136849274036270090712249751142437459835705069834367297468204138832133917137293541795484535311627216767328920044201867857270076345503220378284134137059219782668431277707113034811905157692189029010240098640557232468093159049881745087375476359113003942227431329004203994589939073987220254521824439354506812149900168554234958874710221100284829989752440302402845794648343655977710752769382941775374156440992179176957096669933260443831657009081742164433586712425181876805456344303385401333287888553240366568902565160242371464182061057613983849819126157698640185062884681559632911598079287740711275279695233316070008088557357800688407982837230650358297342804206509282703222439657806428356549796469138324534185406172313580752863537349660421761764081290018321222809541300868562921961209842873312500798375106467647660316405032268800316921620012525610133712053585530725682687100283925880273394911942692688860745829737637763391827092292554454173028651498293217554587365791407679469521472840986337841879131469015648179667926929286404129300243786785722599497607997135453634826762562933117143364925905073640850687306224970176184549099010355887335350391733039390005892660347423603341636203160602473170588992449725524521090917217992552418457321967622271603809404851124814571759116494175475317435780225653193231145878028865657632895201912006245942481754031617582328150714691474384852939678735466849920561421823532251465220207017239970774221901106383220328275720848357495803263080800667685849493681054510923724335875356588611177284843979667468961154804824479729521842408740896883777825977037336128513518602291439443334069154871764476508523114006894260845449775783481011013373592760034970910045146413009507580037158227579672522110399144074360733352046363826757809092972732189170315444085231390259344585471735642159586505243965921610374012290285011906068954297331749739610659516079915292660547611445098537732301126836466433301265391768615710711123595589950686528833902890090287546878930046713957590303463042132965369150878852805667141338161354538203854775837021527651951905916412725343229623614964474737903315310254567544136294338527698089852657628469692763300840095315905630418746893215729291826470438877791743358378913577950735447555888245901173453468533306023945719220556519914093685847761853806976605480048038249218114590445972670686901051655050496940583691461506089336482551127351291170911963633793348189543446303529558649679134689609937427773231020843605686382226229718492094255732463558081773799528122885513951596065318271984669871983463624539913509544536887515044619159186226460448336184746379907078934856608781206760296220782674333914778275770259396193469246555468821307381443512826407778094143121370469809542904087530879826472008380569511675744324446936962194375372235670432427217281711218162622927376039558897278449589766914988362697351848704267674362790780030696231738696156286087768388358431144078518576063538789763423047465483332915797504176396940211285755333519809493617875284960274122856463611882370503536677891212103234242767288364933045415694313360834842494336715842531855721840282868798488537804303362143217071309104579140278027868506554360915571992047500111671279973792057553962467779747503460244350246128917816957600031500548371558570877824159210334987173720854383098670922133529775959816869829660358995431093713521538904253236436137337907391037547087072524997782940187972227587743337727944486327359603773600073718261683259901357776168045112286125255872519006981286289660959375982766478627680932636472369972344743182899032367092396452165557679030690116853129124305095348984546228097971330439666313296562446036517757036595943902859078353286089248563625435768083693390648056844089289787946058142129504558052918307421319067844416029378883026274683984391639366128175079954926118038312451939065203814185940593413221282096214377840997139139809182359698868287683105713655738713039404523241908727557130849181454254060444219645505374259155629296004988178250390613282810507669824895325484187427511936116873267388552285118958723322424263082067427325208430785291474349001401558217173739369009795204518616524621374908485306767183729676804446970760357354404519971025064745133710239382180688106236240168730308825683148963404325679177345079355236547074374437024969052271024489974776978594913404309841920443468728983866025036007428125221509741489379742031924601635263022452121502885594454044466129651860411575485314408380697382806708498092638202288310713787478654653971097362931277924785117225192954372034669411619089405254895570989767938839161160764871468159839897726907380611180185941551453875950736993516632426118380462731250314680387751040969340355526278525418687083586593490482447823329311858572643340316380630924023769201159955770936905011875290663054130378307823758678283538979820876632523142096665106780781973035754631149211391177331301360010605046050084238245659696256930325060406757207388591903552064734516677837864084166018997159773867100735453253910071596631645158667196471280762692774535882000703887625588107445312840182914526189996903344161594705047475210096791083393224735506858273761174788454467993654789734280937668743566822061846811099395386083932327700409990021088300630047239607077516125522161581098918681899437883919119683528458944338689321998949543748737341892911500982609843611086758935926677786256625009546479732735166403628474607128383359063144957997277545370277936218026768189996786728227961816634360804097250410874272613228181486087414639671517854654960971231731969682315577998842463783149220556208401315340395994650788800087312382796226392414667520644587146083135443509586335075164564785154267547311268732627220045964407402641629991221132643164073893235584951837678777625404443151313138418217064321310126527504292040666289900717893267458711563511818035452568057942733233862026489977862783409469064125543406795586348121771679416770188230344937413736053655955615367485176227533365853630480526565136001225062570022723281603623594989548417542387138251164436069130937579081501043124875687740198248934030607980870171911440873968720757583661417254468242192445571795161928740050872492250505540259148858193332193544152674028124800399004327599851070418058301090169290485447959023325469116594558384419139897171175739906596697850121905243970327563875632640138657361696946740761545595655736717926771093717815577888504601308475509043077552405001480230451554674682118590750881148125603298499818466980935254197012212391137075815072330713506438892592933876798033986064617993083778960366203719006117806429027578645978087285394251240962654963820668450680551245912544420583028088925040141750214313917819105951511980670979219358934877216539515041151533769233697276976186266241074596839940923052522875379451482846284298226226625643154686541894329314310279661691407521862209928461852812216188653799602303859470656265111271709523307623846823574624982720647284737495726710160898008101177297055729959301999160617585197263956673702405226487234878413877900484877638840728144153702940175883472113985266554085398539237874956313057665332300456959689561938412728199488562985450142368181094746509701928458471569712477359524554483955632850996765983729769972305580519729952057203279797961117533330568837623794122562242286277221264462623248641857706399505349930389476705903524842177581156257291806968392171084735588672071503880966577167111156764533488335232944172718746045502038572692511308236226167420484173727651503876739684068258159377934353088429575503653394516668061779830129649530805501508554450561073080528540305232994641533777569015115416497828160591641740935083789747173988297063225598444764121549109173057560335574775220139878510832281222612013118909146685033310562414235304755624363239329173768960020745002025450938285346619487454750453641030329072984050115119817506640043603357889910791766739401057555015436690793448480611518003494206265140217022606051394629462721572528657522360890261658396145141739596241014241240951542849780316778325549534685361426479216137413206294561065455984107615733958339298962427631366172413090150023734847036991724611190925308918133483017799804495299364910585042252743215043596358203259496776089962453358052883250820853587048396959217996407375041447236703752947954925083483384186059596875029743335816703643294795484135383970085133910352822038473419894458446587234702753183297241208624736126959602799587448986541631225950813231619799769443256877951048570208154485532663906053177581116617787707443812664607990095554904151666767907715117985503217748781540432326601218030160431477835841358855202660632162659935703552573128583274990765775791505020721901483317886706314904151790239159765680788491557944419262028557111658914431153083810498331671940051802865100667468344362992694719586707161890612160085118739381224968844502642368771130237825156664045067722280937312269208337441605880378605437214057057611765934155984509783553197291157043671065796357380180963782158389744217038982934024473353432304557168015950623148873147959194767767099715825777305765369263252525936279234379482007275341169452735390794963911386244925368978926554154365335777503928825779392888895481815470664309611523975814050541299158589267402085445587893992043955198725268106894962202966590709220258788248094226880262771835619885872864641667368784673708693739421903701363841103471158704638345277649115187464591043248444745032752574345188785731500852492450361926314436536863820044874607986553743605559619583263600413354567797095485976829041895387144616696514363129678566614968446392519632022638956688809581830983249389019967576196102808478589623700774594532914851082855310336972855015204597135168399093519186769001840648648756678942641419900737214854772825079158769914430457020277499025344855092760403922236530821782686175441534913086733464274884630243817609067457440142301932499495868919279576200219680714756062308237137534099583553782443982420055411775568290615644832158724450405621950601944344636345249529078955566885975837299762781470697890165060452720994098127238654751091517267482422436219419088663151772009026041634140030552129678609763226613217751698582991058208909516286811772499506242824736576789324029825947090647186633147579694617926249295201907053510491855426943511289239588322458637315687629019145008196267237057661462492189644411977711812271101265396912124574904207452748329951162541476041760330173932592016675862328753757408513009964255074477550414883972705600411934629032299607586245236158800014505954768647328028668513308297090612303113730777437156437917682273064363048293727524453160267907315278992881943095646542472225106677497590492722200162770110195778671058961943049057470327737146740493933651249707099663175075624655383460191419495941638162793536672424783559965572347307968671907722515124336336798660785522653502181768994211728905573558353492415060671484717572114492317201575394220770392372456985646559491857265693328301054178270274595261954213044469204790099307962991693222837521819209760209197880414589437855813251986807067961260494110142188087938927808502823708088801168070111328110600036119827052735223925498773370396734241743844208507153260353575148970797179075864057185860372744881889338033501550420817199312979236719413955987700287765427824925248601460597505025492715372302218999841102350173246238149276727097733921483744240136915515220140416346246697255513294150312688862481860335824559419993878338842815817882612587850325131124623770037663747049039368498394694224122901409308425726159244515498059818331937884879819892009890762815182206099978714024166905019377842691360424533422519200439003944277663106118995334065961047919962367692040653771131983261457275346348878992703225812221983285871072711639091968692409878653393794096778311872534064020400734398431088777356175924787895864987789016933876418720113997248066295019282853745927374945981682983703456765855592809305972889962166129154475409067751667621737159031706515701806605190744891944411617234991026770184575904136943590700978689487126177867558995947264007017758770512417375413524691279164602173589718826312355856832294516700809968183298938109337688506998611344976502494363093950435934920213693449105768739329687409391867088337951673991122605981505933742507481416241700473078292680083056575315341364427187042102957993111294144645352776597042096648762128095848878231074733800960674626644308141359725897579357889564667449967221853180899622173744548607934241492661118104069436866275979256372226723108246495878138829601394697058434665433957710119952486636059183027517767846813424913875423322304594679945509882429455730188420960709387367401379124311539939126274359786061201391484706549040846952602401405014677625979430515876619023255279784873220178938349180798775353808134759461442894166412661966668708800570058560367418957640270655451891899308182730952169760709613226957722906611282128817440403617507035195541060456464038281484188767430198876690524747330726063350331680287898416846165147946519007409438277696928434341507947744279426489437247069266088947498437284027294263807545160169103646877888448668372842885169408342853870008223007368658208823341911788688329672752229289059781843380547764597789353428749148427529933277213256212495332273953144340198945894537030431437138714438187061475025316089588943529831093338490352464262950359737373595975822272205762351500867760059936145146639767025079098806763304627969247470847674952743787265018924101195382078797897641173586330459064383857573328287272504163836158999586043929010637513577589937738846383283262862590248974522411487148200245713136804405110791528658425180669054098097500185142504845986845907878156405727840226850054879679215416134031955689457911641597327526718782911291042876875534626597494428599322805357176761843555672932529389976107815836796015086972935261164351830232928215565018582272209866964195922840838316759929814939236057054652584110673185856448632538402068884995107801681905568564326781017728675021757231918016661802712366693240523753905088911170657972290639307326377968670271617666448800713039294096139142521454962218954152048525047133676162154661143140895166391539494044769052638943917831877236550518342827499457135574281548124339450894547150701498102305602271687703185184767090129128764592766313952508159677816122813876464449084822906292561035798977898959924292435744092421682707595913756100286075875388075510065018987348324152569380822061730003445680190866064082355083919159353939140606148919224397975335198217226157856273860840323979386943777346168515561296754639253009674524568752832648139786731030343213867900094197410949663403460906752372982722230914284430665420010968365846802425342259372132617984031199894557553873231256685201227796736419227991956946523045695459204690600373398189498132031809714203043933189115583393349897429986978800924752915316820736599551450958669444249254780725992505645049267757124140856954658623331542649125877505802252145778003020275670838302049598697493712226850015862661772547155729046425446987350822757379833998745558392715184824523023863877757503520196729143800705269800974907709765520216686230209387572513030058698006465029732360765759823844583066199581348094917394310251458380721517295353266027470640744546815259682337039029281046643741219021092140906658971825646211904236509300850460611253799378111199738525984653747568677795242267639953927351079243264770391921266966900897718527948317646454318961467630233188490525037693347570129234635068445634721475652591006713422024907422095705250813900388860259254442711637253095543901107556909140203885394498535471602628260620400382116351606412101718073323333426927499224091786095663598516848833163313857417002131998905518910802712453958586484470044182570697511783289347455872148296742735633746454889889406412279469037862988865782097419006284411628134768302726502567578887535383190881628893876533301737860640014190832111186762398303007491128948025874463277214444510253891476336367093932436387603888702342360957047235409380250551646138227568270498451032137891296942718536445727722215252633141293951312104042855138741597266131877225322644229595598195712206763502359228630401636650986256896018949481271859726473828796703441771178034124021978192825269209046907570996561305194624814615807039222510963230419016119923129318158596592420453193162608924538348365768320003509421434615963391880007730310191799268087417584887745947163924153034618085126914252405916518666596370082826390618826049654434496025978564468893238717010452137038102043255394396409560060253421186448766789301044500818920347216872223614759557385866251009029639594167792853732242989638116568555050930741548695054201235218136853381969632331660427197591350293530306010633078760990875621828246809408809088866444867733828677773345493858533725635433948195258500708805466833054671961652202211469283533439933174579923891368859089151779627492504869145951124838540497424439061841981862149100090022984796712427998136447307695828433834320788898841550199473108653576838878659126545295136150877001142122944700283898778490505188342576589323172789862259848276432704919987717436973234995025740273518488499573008669932762166505782375340938631853698693673124900947776099272741294070134142839969193199655604538172534699614728817490207848501017356131108929730747179801106894818846144991678137993829606300821938314890026174463086450991823569246179725242686584927904461202346429532533481827807848037051761540022135019696254976946001899328622825432887235834974120705840044328217312731592172090532796526563864091041553472963323156903516187267729969034442850457691759861652233428797791443263712242142193394623711842806552288961338134681517368540650596036928039274482919353398535431928940284119615105898054493699085445133695245874398878784866705804184976728212301113574060151363867750997608331712126285587840768316065281866079064974338680309402072580820990350461041985738291181098696412626839064114886729477883883323542202932731483369905165186671113307047071779789345996251878758509749749446260772886193382186242567123923486129848457002857279297789581514391710241167717848466813191386857210267393471579204238460516498899791901310982713861254781806635066821482592276117357321191655225757793248129392527183455377287768151390912367992627553406510434782470595717814666996236377285483744149786159431688401742502336722725120051877418280551532477606029756056539397106031843556694271916777566346209605642049594509273032612549601882669596855420051756550046044249607459181897522174749255282569483587523753957977607871109372645723260891424356574988378411118518494468422765836534391903987705500093724440959907641129933444870546007862456304371279142088327370119108799455199611640641738593471675708821318176401054055209382766870094765036586428815459769433265951374119437072793935590585150830286391643867136403704418613174206289781693697677594815808016284453521106522572324042243684124497007448413536073811525094129048987579475445941569393155903111952609139202283432732813113991412318638560037162904515377574648693673199000018009694426250576929939186608429183925263882118495704033047891300283596200285245903234510335090461116724502797114427860303527297298986224029593963090979918549551050627734673985440077049347371335867791072573294158496656141651091660373375010394530522981455738095117924876305998384365276164848302703340313581205508864771579411698964805322482660174330188609041660788700221059575418800899025858261375655604555985896196365784071532789644446130297870299216837353715300112797359515932112205240490476216186443922701201279021483926505303364120007583906563905192766643029406911925428720126046962536734477293625840657398303021126079947802594259145903881446821490535409835552266349274313849878349633978075495922573170936699125332717833849360672356384213916945218421991260544696046601399422946941331113572643732272561329597383522685302063180525628686908002567950459300781399177319424385128305550610929912682414621481945610313002715009688799776897865107097275221058436292627578321649058967074738429815038797883393901050966136495373317072335479059791865602289904276682844344224771153801151670897796721560666074243254669011410619900175780247022508751015409676915929352066809353327330654365568891885983773775559659205256596489516663586094248674605488972936211956445346325470270480287288098297079036954323012347020093716548149278968597272917623450788567015897797555391854937465988055779049008732191979948867830743337456711867715174742611033712336713598545393550360737205905587317682957841201882621265004892992873997405948890527300935443547676268864588061095853688590976034170095082299712981371567292151699968735857317835155738321042241980178338582779344206028981223384464161048895418026078662791465760969104999017499264721066944760594254866215401252946180153534042568799606778345765916023411227808889414643364876994996858831985818180390276270073170768018719289361469890222139482833258572018783454626063925117343440285119669213097247076985880315770838978251671011584953027163560985808929412239375835691847148273710878538131312577813340188482605503374739985372467277403517691416779249761349092187953791168397633936662322023934520796493727720022078262747193697230227487272493344721327173647806074599798680495748388251945231534737710732693589377082487839484124979437936257257428273567829741090081466992101657151354808194049431662717585970293996178952957364914213166949329798048122498084976869486473186315168265079761606818660774143255999807619892029375433566647881264115215185504001701598863658398132999380028012966478024849003291843978608263689106734558860926376189648018765477420486157509639716305892656454771922603027783142722030458388602380733601232081394289811107945910300444133153581134781372242537412946474347863606415828319942999180940112606161105676937310327767596528023003995567600757166418418671140376225267680691207300547889697067681890330560326709105106475052853930921697935559901678886530326401717457588329517961096389290586880809423770223136686484409737111465322742980102483985114326830646107551600530739949224676680013310251146909483205220375007043768602348836635549513299218513429705045101719750655256094256886694673309126646397109077585750761640208609781851499246675710558865981410400043369662280881016651841647594997662051191581494647165635383709174997238622639824007765156521025704938303251077440347616164833679964745418498127055996995509873299461423049637893688599597761936181243907918918403343845456944839674016885596811439026236495175677954416905278309873816853138662864017985138344907332825666404469721673632742756193806211228574568531028776465740244354058977090867313919829826691478679388497300421646437743167007654044056380109722737747904821030046817239539223384546781194295764048851063866862681231367471787338528415440787890087804309801290913143201458669057731351916957797600789789227404237359212761505727778867240146226219674537470814468296267090878503469671636610156157090639071183696905988164589109319644330828825557078953329925176604945914462850607628528823108520371766178737742305450642634057186429780635757605662626502239950305699729288619205464407868253677461164936230345558369332350785401406729780077559453195024810813569135688312080212252029317690709072537903992522082531687571546600167541763007858258483179545526566256261965238463234070580489854878231808899049732990118959654510522995786165616860818056406732408507717486230884285356471683563970532461641166322048303580760524356818036436374677723272444204539028363263500842915366489217101243508005088100141247397126027993086718515438780543045407267158622241854101643525304689635769519639102867176030407373400807124441368779968451959281557109470002156554320258815075414200128615861939983247672174949805240592289268212345746009254655310391946632184676195137752490355787169524782710977167787635830176142809150400721348645630338261812427790068770751769360554608596168713642076338889059182294789360910498351063291926653001048069469766733495843356712076572797593103661786358395733789677605906376556793637962972254434394068752145732609981221497669181045666642665339654603094113074136812017149700954133454056952355446995504449258619924797288287188360049036957039263322260866895486920398110162611913445762377852865027372949314060018194117113293692714859811330866652047357174894509737737171646339426664630061689645305984276893285662057691916611889567722056310384652198157782717331962142489743457968664449488007182794252973380092416369256602248267326459827890778405801015023374111693407764517195001549011261991226477807056943827879505406980671091606035966352092834772795728777335117730001285457904106354600674290318692225927345850290181420745910761568435685488431301615826054204076517181184981889154735361918717758868759065559248877297081105923108034636283872700011152841075213308477428926417624455767745968030723324166212370175681469387825827406095320433722665095477847539331675610433593193450946145416251252214065288043564863976226375152103040588819944265684723361224870975048682971685519556627615660261131830658970923352292195255647312110077655211558357143057453758216691556877440057245723225471573276004578694729879365402868006248055512657189128401232512772437482485951547952164781284979970959513756024032871997027443214935607936220006816755947581625673913846491724838740986626892501515142218906317003940058736727548120211544380041733870846462229090268680871981532377544786117808208334420622158063993112260341144055647719937349675997205106591683478409371727386391375533931131129585950730070430544247124325402046143404719405970000945091149643287120138950722779334307121609550111624875347921792977587534806154327036726887153973459880674749810452488514844405463363670105369981068747954997165293659522766112890122247127496211670225345110135832137567434285704262462272980730258294252948900630069274087054791337164330102740817810293635824448134320677760095603437253219387687165004555413124388783795587448255953210308892560719290808888943005367674005672993210851741208846401783112608751557989748126102884751995134320020838265687485071273449170088938027536643613461231771606199912398941940419208158602150989856883759211407093446149054071652052714156262809030754018037714377034132045434128090003381320125191694111814183403362259162421508005433986143889470691372209049781180836268050270258099748782813866709090633069138075742140772697060672732155964826467687803577797327879822522729879350984839648437398702187793104502234822738161393414332177700563994014443525062018757019720224990190723267475090944418730378392602882170167885991569093532894675761184963914806661450155756192694213340740280565589183623973171240722222959912108603262887261706982879180358194174530275541284914294725303712254074526126184207790904106797664186439939952226843137878583462939742458877414808693850469871273430167785474710947917854267600542089714509159639564786906137128580214262820876056449799008541949453177506926811357217545524845390572722725224263047263816170403185870586274968853605652241169706755219872343645505814586678303661543868001937613475284759921220174598878077032415843075678056617633418873556579166708716258210734897305082303855683795315132708814855072218774863132404480724899424326398934033261928202399551822379448332937806940691884289733294007619722710589901171612221643762649357930525182738608310048657433795708038012345790299719901614891247724374129274174210950677849182325104216139788431080204116141325617764613800006876182741363062705633587232311172285983695237974197896081247286977256227703683453471248485055805856733519085915058289052633650638078041714964177346598804379221780903240890522944233198385679945294017461948429192942336711384189322301645051967346247401968363462587960601466987844069511343922224439149111723126844327142354788997895540058122228232245465312397659506310901290993263743899313670343088606565117014070822193324003946189938870436879229896733548978401838024765076330309076882279444666399846226837786477142949153059062861642430704557496497255726941848720643312853913713615229278612165823594948496056623206987464595569874725486827668896331173598624040906082619655880337532395396404664440441935938395175626517140745431421392979035463631385067673429453138735730496420109509983588305137758705408086924014007617138478990288005366374569454493790932656446103519661757963310722955598398949783695714272849369752195828870935399675164134235252624031568213712384356250081860134928713380981900654225629558614033822714555078660942563084830301306155265284356545877507744720451797298226806543871813288616446561606542358167265768021442358540245049129071617522457451757215784868017219118742248898526221007191762492826778061971963307238183153006071358577049257840433615278042945661281424734391026779194344821063849030648635550244547713211721759224124245087059605013753215574348393288411782525801562691307905821005471015242251379622617440666656163631169934278535525136992629126168465642348626006986225815447022761408794615856398027331471330324376958354742517938209656880914739114904041152550537965941006166672533065983788334030432529677275496822752648773758394447305754823349546398002144737501751763212453588995992094082405899821567103724113529098063682955442343908555831865315750345121043792726039266717463063316034469740835393960377338771510272589236034037376864591089428498418587902054877056432690236816600898692772258522510389601282881919317514522678640643728712091917985384065968792582749273658852013965130217685311725146417647837499410572970265808889197051451185670504052714520196945254669730624354777618717522405850583154649248336032900627472604480513102732075151961338627381041775663517167440102707643526156307189773569865241281862248442976622381764004082616935175933750283632091028803757340747974178972724746448065313859803185074579206281095286051070388916912761454986185289892215644356081067486084988845335934868063078306970386114023179817680271385021907600634698409607934896215869432441289268371274330181020930074749870415358276018876668824634259287338605378231378872708969672429290741928610433047874087539357575581628376421778624310497835635881541526277606156046782842840609539020558244925581213793946860534043227433851001096939423784953568372133419546397718260448663011374657519724273214473974261869645705913435008501792401777036087612343819377915469346535237825695001930253720485387697080020671739643111372082181144206625166921452758387873737866282349751956777619494238318601391342173496961188445094584364047477455165580539260670596205390924076285601859140045068529413511440972653958295225150673624752807983758815866723813594098796288070609847201243254984795332551769732850546531862172273236479096140836861372124386436802531835735400769945753472625158549471862033745905913797724585791904287276163750869481507509172342382215106655989842034080141718206734571403345806220806018497431269873417224732562362731399393227993346400131082465781037401865565436105175859711913408972207712735467230124384814222382061993775451303032037537667764883783390304658761302610677151366402745603525092505439155974464310315887023382930026690482904507162514365629690856385150388676210130105575746652379230023800657341920932734415566871790461904198971432316875545031449022286202542014077398847573547856098943431352726290302223435857641338189026188803213827838833557826989087892937756030288292557899653448234408009169763619780614456052143442679513662604606595701072089865298763624825015131711688165781664808180090597242852332914299371092376083612579319335723554198383701249434655637283051199378887477149480153294777179552747234000073881517772970984233640488958930479348752392773509179842644244018238471090495867697166794541216444055036115295264547021896120643589513807452145496551358807741013386920082122145426081303595741957349125701907914286292479771797320640966592510684705534881810692119763714508434600669649097852293048863316525787247810388367315860570335711680680926902214063675668482282440136553514361573093426713177393032687297039878929555065814929870321192358035108609087688443684216289784336118997022877349635552900458917897347088440123077437857261912161780155088882327017150292543798886394326118524479919850521143310504632317225121865724868049143039654915758945806344857089500143424776645873595721064504788955649040555682365784536520173916406091924992583623379630647512050595372585434572744456031824441361561348328689227985752779385904910257888712767019123477864307032220501232540587415647695634833724282354062147639689960193600799988854761464406688076318376288779774990855661415272257790823206916538494287310093860063257797974983045532326016957704852655174525050042937745652588063753257956773039555085108251007052390938997415303628597934550248956423532413310968138414101052417011844844900139437394110150404758730916263369279117752774012236720164180205097832694542362943993176277530052931212734274675240952622644576510595806755604135167596168786681931536094040957136436865591483195454342717535812178450334399756107471451772766426416302874689897675570857734406637075885185513567854045602070574066491589776122289604342177819361919249972984953002919878691867419716189645040950270790831900191411141339691762056416442271032568600723901215202072712969568637772877069121727576201726005569702991038492319788014020967854923296128849196625892944194413786718132831400173352315114391430951641197934159139368621296819550114204456480305369389849196824862315365136571718205307058777764644924284408394975414008542053715937975042545409744372722139272276664930880998869805786918370120279933641492434975949691102316006544709280653961006541352272281521382687479424957832707188716054655291554457245507986434349375262661070085003033197552050456127135199283181901043009764764924942927844709421825718970623224407943437545375373569594725870397513750489842999969736555507748222412454037388949126620752082939384384106215713320527489058174088875016361934849895720759077265676729142814626001662927097143035213412798242830529136105888673180648531438005778258473327847773558994933932927183263843358795926762691244121980037851947317749136911365771348918228578069077094885118411653623550283758855396217263337657905561109709638789317171851841012756623783216282787633739398554928776587885599618559144876230207263917331056504515744583133098095249675113443636775622928312981096392125111823553610164177017074289989969657279313697846725838600525749271999128967049613372635350438723520945900943084063115045706572005609117006315203822811565476821565719954143150755388605564308716562204092548538687105455197816384948369617910630290365504295709496749803785144276315833683624305339808646175596005887245875102379495948755023602237038143766765478397361515952956744257179627007068622729136003783411338165353719852721978606263155435350217416592707681575978027341962376840821554141832915140109885101357479089427860967507670998908152643403685602856800369708589827957405898182022656167630322693639403825079742511134014323073691023946491366625160247209254927051292729490911277012010219048285263913962243596540733839345658736529143776814321667637878971036378383738854821128503901794065453386847141985738610732973689929583480964650041202550398756214185140608553633008254577368462093290465214856337167710042262844048511509174061828849735869705154734935473982670077483261169742185888215771220963598529557739136178355855357873206284262519257916639667757254871695165069742396069232619474331766429026401823524080483028152105134554653410576111622879070322173783271241276327991360804612313282351105621012693055842264526782679535454747461562395659914590200796280135630559006808587051003234397548941596923813305347979812037394069406155645187353025244732558820298945724021302429300841120421040441263448389312796978306663402676782523145913510203741876806943387962104612703634204218951726359769185682527136532329360483802476776859457224716294957727754652683846162436295896797017898915085807654975854118780919387900163985087223391423292339387732491393685843871142712679994044925054203685653394271515939241297676211328761694781230644799893662999822560837463528853607701528096064341025459298782563054824361167801014661127751067941716105538398121156358932638107300426540996911102314611079955358237592725214926500230736560403714353208556201416967131680535176719551930868496844999034755240097787647690876743782259196681884873492125771877593896965003533216919502147846715473099964808199355602983547297770227878121669102068365260311276999118536798807605829014138336930678310684265290067204590206570120728190484311383371523377439387162634003508161716594224540964634786781681340844067842483890714026477930242801228618122276220652040715555759093432564548054971313574709642900979111170902195834408396419769426689426199173692183466868574291505110078261139030683824037098479330176565962062426347883725832531958420743269185128408024106856918262186801614834222939724201451393920367660014969678618238540146673718154924355178357742739785599338108889378964222332159665832867564204174423108372629117989224232742100585745007487413759505531440773958781120279728045969754620182276129267876855656224898010595243041001670410972679524861779462347471443451637408456093532503209476338775582436004384077144778382490664787262089179915436125599518176676609765221351014389889688003231629930917402964550920302487254888312378321111080088505621317925513360589578660321030208666572308783707600389618910180535396879732900976907287799935913800389629080059438699069498990378393343571169946454481062236337606947307319117768526972040931436859542964333308424948311096990418514443776438714991197246587379016074060312822214406735058457748947946770333426229781022151492759618931236815069908118547092883559912184279983251804832716649620548482277600277498099846020753770063483635297439305465213578213768619971024570851036651628264907041851651788764783820255558753067215112494622026075542870157296525364837578713351217667658135385111367917008415527904398286840706595119167479407264029120766852457495283693749783519945627552969472200376299985550837142482425686207038164531659569213706619286349953568693621833959459063501929525779012045231661922573393531388740973181660391074793122724729783686534077012312337156889458001279760045610154701212478766911749117286462952135156073138582172096472723501570409369802174740919324894204518563201992968210290629645645488848155301268531984351702857796083704089348029707761747929804948760235802937889298404057918006423255240949078603336541595114181272974398263086032811324443398214908211440552913363714993183391929198312502271323117460558615080122499079261549314884303664880951300294814153801557283137987483277249049348675926349177797372939892199077555070914127097325652795265641947552435481231237881617995627352885906539066907518737599006643710847122074689410995634835688920444899773291360035845702247880519466808224522908771111844958219523910783515982109001393504300290466149603986925527435417917043023021304976571577890163419164559884053347898919250594054333076839257554120534824132885809946067721168707969543524695038649617745668932667089294340910558699528502350158179228892707598427926956978559808923790436613698235977030670126801224665039604569424827616886653092454970714002662700697279206115774569349353569651364177677026402451041099632359306843412677509758728612812393021844692356278046648440107774348802180151493051892831197778349511091615330821323792951867157403414968623068931121932468068594454859197101980654443047376996545745430715643805883705069161260374080589668716042393554079841641428979054189314358310088955641583294361697940310013806855843183547888316710589399834438956861711676267496499098456179921608372645510248580691269829722746280693225112967135898786004344189658431751315827229467174121544461781938281234331738706692045945040403911251837899652899385918340986108580396036371058357232676600560005623187003953825579773602921354391643611736371549851677411575242832339038217775668910810710176640602720479620723415373294730988800478339849637660263188963200539377180176868615915450270269512120728774729611651181872641769106580024953893103260215143824110265660338266467235065643510556262376736989652693227238293344487402183397479360182507309992598000986805610473194547834574438591916961864836616279351225672418412162780340609958964198547713535477810185868158645889596889517535843346792290694900508807360134797099381270333463293525893144447947771519510397626299049874058756863162548285401793369447613308132688713210963673801748449565439962653484204099700711282054702026168212280462275235570626405339646557397933603654714691357740820204795705707977162019805782022541061652868744705272020530439620712823585462850744841425972177086723724026095333573463546048433978458839470098016568386167037335437505958319430062483925255148570496599772759442930598621400250230024927502146948580262499836745967346007178525092053961695123928364954185183639089281725940757942479880877935977385210239757226416920333914819630625104638444608024106962588242010586014790339008745233252518176862000136472579349329921997696472639879183147142683739931132121737994922977645890376903825554270342890102423902843576787904250177909223804916145544683169223057425825429165907009836332766304621137268844685772444414080494779562610644198366003116007870755044012997536331398762000253787776459945677738693535100721084768480026619686938703061002029043802097300645758611450142204054088477243438529989153737970779902993026485520266048055342293467178111430285274031673664190100467988604983868457684476868734157075493488770646884736160703241126827009282890037146391232323025178131546544148349246491066504344345429734988900240456620183268848903009474945859237436887262029906620766525303417953088386329036668435447963528443564443962189737565513527684332256819136087378638684799380656334337301079167301346923404295691717933648031414027411577733723434698792421458064655588943522993215153041630910889927037630323091873337413573139335073456533759236014580294270068364792866921715388918708565431582568430435817662314557912055786867399989375569383825039458688401900970604168912370444006370631556332402406543392881772472901770167735148669463427137654713958626224785593872594851531068804359158206947302132825954475012182590955877493848166640198537886302027473033662044286344469774949158141726615482575098717951647990731120130462090438385729652785992901625370984407750281153413287797666547690690353754973191423993667939867991848742568885548002537818375865884918039127616076251794054412149500712794669295879308959532800792604746835631122415280477715252365400605219778758725838458571172271030680025846502160293110819943199339867951590380077602116259896641621645926958560452261557428834830766069796105976817460172402241557197135853372929242308987577806793867261005788316141281233662485688200630601085549885909550891299312949688762536920053422653864552171863053573185268507301733366875701224842354518277672477108476234299658809838328901691382875315854718750119651171677276833595034456993325398115695460591609479705348135637250759562178362551337520325963767814509628831578985131942488719120269929070619732507156792282059578358344130402837085297812721336536840476904649235846358937329224986179087398331696491867442497510898807225238652770738190308523076228249889706052086702142837231180205526595627985019010883377836834474690858060756981721095533688243728647003692516441965780465390705198108100508298567851313885584239661007635312534754761435686881804021404365166534177301594414067613202886697009483942877726837192861464566530075948809416678791215343153397462166675704852513896321736047533174941597841690992390415991305079000545458220421061375921448012221627780186259385179939098825044106067063353706945612380883459079973515574443586002908771151220466260181105614662806740741664043057024246731070602990376121688091441842228449834673696686882318009643007641207885660882619637699811050497991247516315897692754282541184041679320077101572665818920246735767586621327508438946114327537650764657461409998928873361312061744654790975334301446963947102022719384584754361726422682953949641727072389453371120682267579479374005683596277459599887617500340358598813182885940727139472345601171399499636338072671702580333297863528840427659866687778349708540787553984740428903940318653496663284099029977990909077166788277135329023626481257157398870332856607806714554787583514154907762841740170949679055542105271705830435151636510372103865213440211910211379764324134351585580819579842517730251180123017250366792142991741178782456092847278732168670050323167691801627764577350145987918857082481020347986045033377467784902832133657572543796501063779907870035542630943448218125716156807501887724231635522280698779142284423899371216911400766646911271582387195769402701092078837363053133681390104329544913397099276234869038205141098772743025641111017307451666360000073896505923913563725826213365863769682453125862678482001989602075848919160810038160739516834617021360935618040071540142488561476986175579819036684149780873713034775132886834215841329744155941811740952996012934041000815262087903866597405771738603257403233318217443104494302507412180633035437169445256226795451227834236904595931042726242230863422800197752570147865406787823570001983314562381830838617075597949320646213597435221177183687557820173744344418915918926891207282064111443087005192216015716556900039343945237411207135834046646201073701319562908850983324711951317319017522288500978534173057168983181073826407143176978617205157495734779699755234497940472549004659504209040410554675385296849946425447542077834753466317523513594737304448258515761426880740987264323439931811635277921821594490160121159360768559803489266456599532960814079000907856818618031615885656037071310376339325867318305553434426134022895022837506955258066908623762916207681987899021418862376160957388355123054298848551096362231158898266522338860774755370214103228333944650139061263038635213289789909509087295300670533535998454660069949124128243870280738562464307415284789931867437653611185428441199586596692713173921854177728195342146863548002335010751357380163472158066640826417168431214963711914690794087132050539064691462820650239692788182767594813734935286545623612992730562678123951897081295237072124172413327967662120009969496998783381514767227304483116617336300671277669487949815550778751481912992195036384700131032302661160055444646908721247788234881706041830245083741444339011016247395930372596130639773411771554496262098313501737075845182839151615244931421666987656906196754859379330750271743984811991155886693618246019740062420456203592825839478932884620393884909712965945235705933260399131835106329782542474894306412061639774860209924164574157138380835482853877240436994600196024498148721151091884362973007778476140408394920501788542355808264243548857664422679105746014335524222929876860327832438124460446740002762147764588271940853950362485843972605702833005830195322174894638289689575989355984102004543867951425014607446663948651106187768999383253794188217956092683563242178804598348665152774000483797939790165329712556858007720368644119254408995567840764076537244452938565299013128907120952823571576167400334657601414094316004774368467742071017707360818175784312426245846356247243494945545799247858529021066083143050793348222669494352725597511154702524486832841221174027468679383198125303623097142890229769449169417342557282431219080308564610841356771365261771493762721952228036559049173966050613176998333660872900197938295133716144013685243172320695916935148748849898718354107445567219092377947380922140102572703831566674299934681316701141206165650725250761465338167175484346907583877501855142949045238478089606764091976724964671409659622907973034438159281034708775642512437303840174542730379137093638453240071891906341398217542245098100369612786883039995335418176784220316228851189032703212635361146413098153865661686383095234405626580462610410351920526853246442066203610355893221529775685283936078752689268663520303115244220934332881487794446161729959085613758572314118169833122544815578160070707109973144753162342841031062993065479710597455445506833401618679563008014622003776811237764516967918859198688350507118098397063069471016399569818716802717659973119101109487255889643193941497963531792224751972729806590414463080539325594793341934816757301083058565617819889466922348081218143363639885521469686705940266949344951921173209112722276292921217934142895014608296508367471644191655962763635434912166200103449046642547471557791806253027567606994414800708450919830296634800376072760415831906443823652984236723742775546569394121038396787988400440384308194353085101177318770895303353415498868320213363873646617508862813010527017634002559134450318792386858296606566564192104148387217414413923549610141289716669101600313729737515845406277720360522803876108138908885348660875207602985568402612503195109775130771728781116302554648694318600343197200928368781501675217083916219911712413965885802444252539449179508390324262090082143305705452628667492014893185131787677300673530344431960312008998904795228514511713245320902626048180873879210820940026527559637134360031568234576280201655943579095323734508408980499306234652562001008030159918222345711774791512480396442170031268094884748847720524614713404565621821718382863855772562580217321447881392283409872371704423543007635340900513759227874927644144860735316773841146398703491056368369206374921255821969629846757748259749381862255436349011766147819018019967966349930808899011606933339651412830546764582659826727583487234480505616197740742394798317011391423377009611074936519991687652242079605741638367962949459266443509571681251190307615441616011519190304121507231832086994235513218903352781304609670194501259684094798959360678089505175068414496897805424252616588003322698937975979006316570536510119506271617341181435122631372404414622118701900563537711011440816301929332992044112530917866331589473331436158016382021314147014395325258655379392037394540666496877736830699040154034251605322070771935965242545679495877938078374992526171330229050148418986383124823296023756056874948214799631550175999967091832001727937170633915531334282989298826988360458993032130230625429059759030148087402110095577652702396280931719456096589259179851769253788182744265001600494530193265072683439342240026572675095295813545262498829621718568751817296289408774839313877249828644440949104009776492601421087726069955792921029701303931916818100711077662890085453441589231561085936501969839078598382671403666316422263681390054668118231647364501322648136768824375642829422185930686859316953741141865712824718893895501498054199711788697142464543947175554947608530380459816912112382148816558365240595157595912678191856286710572070556996541884420287881596192871844989847143726792215875267663029750492028771342101504092483488209437567300311213440120343122361947900616117227554838132219529626468069099591087551960678408405966783829046433077989142215513242455387244700387061895279198047836606939454738157911091269383756027748851890659905738359087687721238317104352350150138800798786606568797373233120810112373325445679105398112278311375940385942344276985969537556658318165701460034515444052555102401237326246126798318479986957857972865487437265523920784615765041148921768003250144572402628448809476085948864380720239402624272590859440014727263508941481820035424869273180344556723510774128988112669070863815612618192074302783943275441096249183398517188164857096534043778065099966921638264445627105012026875810803004584682664346736779603240520425930191721285056430115253712245340490907523840227222891427540187116727586555993745086910583383951107031688891117816595229497862228179604564179741191286100388295455013241943703156064083329769621039279538739360284592169192480149145311199304321274099587445949720283538054416163293878738974985586640749673801138364659737938807634957146017280736186228862363478859572347180984675261559535040282331649693054351850645442455472292774514985369966479958594315454035788359003128558681619892504080895121179518246621419931117483142175308245882907183652751390100633823660205432328263396276232692121968403128916182693713587725486018208821856441936348139462777376350161244504914150014998336602618432551123015237032462552628955616829049822178743518718872297144873128803897581716142333454953025371151025367349418305315110523104465317718526247013355581553981968376795056865583777802261415376373620137059484212243714971446319011363091199973212281401587704282743755055502394434658444718128556844275040945575646947590244302926623621800263129478815566535832599729135789406056709930990043646095924661248026768037411655661411331599471727701981416302625102254471208764114121987739573379346398861239172082259183593348808061644288662336186668047701119042354887092740671299869159912198770815073834050469176578149895692635180950858202760897597696102824762690933941521602569880071159997272458175793396666419656543633251769340078275158743621765955907699301916093289155600164394563806526859634999472280484642050840151573657903506619446569820816377637722463833999477308178450206103426913152468409998228985301131273486878056778345304871812125967476320264123620796059351998516364918409578074458426641939624408732678033376972432230057512616517994574437652063281040532837872255127962158321202772015839726632051232139764581913461842014800092988241991366171965773267542118464355111338924562051532384175464410433108788181027593207612553931320264883672573068504971615779136173676779556416975711076437445253152713842951097085834484636204541203618755908398000806676898786281524954578383186828765429993255343104810422199163473026618877927513029877954289356111547611537999218206193727982025220833077443342127039869476893076428022594810529168078189752799335932297350329995293885571823041144889353654502274236876610867716859428158230147413435825021447569567573346833292424962190553221492648646634297060785248211538044484633160344611321853208973323105448741245639077778810202939018421015411311813434145879113356800013582425082212742924250309129971355484480107202527853930496106451491375725024269679895832277862360337060299655918502526005492650794438365734977455974664890638775828690155756751923227651289329547563451379344396192006170076273878219718618927550233291950363032146848304683945994381112768170541563821857711014117975823102772035881683927729137835066433808178416906647405988780141256589706167466109486415485976945428354659921605931344732065813749802337254596283979614024310272601673131335606587834056205172565217777901899894195102595124232060950292688782096145990661799928332815945802210477543853221082260152975414911537608122865247736761519597440237924620113582498439440949600779192252522407562587105995618635770137788357306446539642973368456405895262150056418817381935976023648870625249236801959135022831665610299466506404872588185154447547540295079761280351484878027139035889813489582360488939170519540144381939587040054709464045420722881248658917221591096910131173701481134889034940034157881584399161653092843896634186835915467141609250854120745628292334798287536043057610948925258292340393936864667591624151667012816815362537418183798598572743559123300678609525582375533827236249129567257797185267900179368320784124647139807225019156058303246036303839802175015756493823328113155726752381579694180046872811615162395874494859197991813712652003650487505589730430090000225106096922089364558750930807686379625314901860336347534406553245504227503081448960536136227397015148476542357078675816845865220026758729714956483937611097764986689705897339314086262146062407549322407166311088214075780156089465242532777332171367879322650253262815801314891820341342428675785276533257328726310262913916277255034663837540213639671639349514573719480915023242655366045120345172966744027547363953321238109785342607826696139133741622646075292479997288376370867549581945185761350399002641442654766684930476044739315692828537134399873224793739998013598298970547030133649304751748576270653027498412352872484244751063845401605985359816826406165301911549318906321174534306498751176680098973923852337355717959288236060989465834371048755996968746222079023676655526560274873399510140415662841247718798079186772693421241660009326000432335091331060931121104782169983498245902128263074810447356833364071520179662584210937432536424618539804680517921476917793064307986210788739697935805950229688431839424649647791566122275054181985734819087850259419374300900535229726020657216833768951675454272282979347718757909341115697218517588643560510368984557459267795284540106657750144784775971578634677276865739992477300234979990797475195796623122219552895415510438438832681321716325045723159318984782793079605502602188284108072996233098257663213643802677504653915239495766055816311509693512738615801322582048744897402024647534764512853838703169589368572275621460837291486350096382068651517957854908232797801935686243729791581799314826626743251098469872020681850323258158156327980225992405437399301396938476204302835535235573113386031255505227832465779134417543950347668428597929096036487934529547020420295154545687121673377779750153900581946485088736224489599196357378623799226147459126541347352444828654269483286777954048149145166339163076494639627261019176261788496780704021650730227227885001030576302313666881634396879231564869443185525644948728549523693446151071159748091584799643037088562415859165186907524910152023589721126320277723122216629409188270420184652801083186713839488323961046590253197591712537661970130508659597702224675760285489902423151813924554623645565034201371694725634514365730909036709992474652750524730295431808128323146826595268557774816505820582909163157425449585237938052805297002463866358686234510141436136247548522430496758823465906162727801381251208330132975945754943855577859972794251057543294380183302267573109472828085574186212059010101244656456393145041363789813549588930061629240139055288882261783631064109595031994110774211671208546598850845472668342639361417071186280169840449554478169346423261904849764159889249556572010745561089615843436598495288250125641472067070596576226181228077401522586033530147076369235493832779796993273455310206097773620791404611025239182196855749150060406967555797183483515631414712348504279580988031116220878290057601467563268755771291873547741440569429734136675123046196582378775418209640721281329167979420638101356841959473095156480220758627663698190350873984087980951553321049903499585109702963649600855634377213660385656662617508879304918664745179485299524525193115836940708033746187106849663787426889250350332068656261189150809169894735413211426594642598376034570004937657105794506180822064465770332890166100781911297119747072913777666788234998122984602346866318477861252808230593072463020530115879659954832002582127023500713106689945920242180249479468511484247527906840606230074578431366789718839006854832109699679919453408371521747951253645411388757200883154064837799125075342399574459802842904471342546951682715673346344876685725688251432443974059828341729342269149457534763951295796795979967322737960487405117592712439338968534345924388842752467176193051346112056068652195667160449963811033965325065371560764076950320229554331785419339483967630103833065184597650689216181532711766416417741692282771722045369349390364034323978689410243050838718408483694410178811047790056012218371169679445752824190137847094211218944272425292816768211284987449671394779958158397761160856852597926610880482578336961417361365663126238909446788806043352062906521262098516414015139998681189541308959514264543462002504998162360930044757877398789569738331163876087880585188129616592236537057299092213661160700754540531667680275411829771896061957562310550539896670138440155409929348649669709537497820043269012699324680899060494990474927517159793273164504128838674410372966909238177625448492189486284110489598654218317037350464949010784817635009829464330868225840923201606409627998054850758347280694471530714448627710093324219978515840063110572919979304418110465239849674508583075714027599595552516479965272873106990350539483434568069448069901876134306426697817852043321564524371841315493854982184453836810214709933082037013015713068171642931629346109515789160448493530574514372322362664000915669620549489517125600986413425293024927438421444144013565752264635111296466562160214245144640718638062839099857410172022599279916017924658596427744246212681044582637792360118343763335418948020432642487796416242114967058489589902787950867047948238270125117189089510688996759636009822725245519614550559897759468323704723421843955782509401254394197385230863193088984948910064566847024741632170396425454679734281738744389532842661476635743176370218672797801970735028976605086966486898042321005031489505833871080150993214120058620406952811868636825738731786464681283613402731709395190361785326892895354197349421358090000273996739541289228097984965335215558808955915318085689994477614306861880375190435006092754795760972838168135918991888576747354633680394145242118986600807669451835661739928829155188539840218832961497344020842646324962217348703854121645358663696983659821551500811501988768695292096346601717946399427228974958367424736502208637403102100453701474560301541375166772938057978280788270850597686412708688571296860647886662856830606337687257517740644584446763163906648631772578781820772641428586819327112528310618524434815682747232195108515317739919118250256096967431966285224011708856791991170697932057191422608672799417579136355195112788660206777342091560210895797786395565240127797093803674759910881094056393168316903885762761715276300278462802738761491026406314856435558579853877144714392874571532097460231567327455106730976464431942653245082620263734620302170722775490917052725359283101396565285567099159011947790497173324254510279412804344641120488027125700859808992254636609530663941576223351066981429159372371810734758725239749977988979124413236036350753417060317187241843930699506258440446887863875111942718047192788839749117272572449370309567394235668682374828762547925519030410355004156053183392080242441700204180698839578324592166782589019837026245600713216835164445017217223144607116936237967488140074558544423951601598626310330294524744204336409410911693115873444932105380946939259690015917351432529768720368435584721813879997717355215273175962702281292295285178088877013937498910080480728721438250735286007563080064630423891753513085303611939771922491738984333361201235783916922352149152235629038846095386811589719797240981105550338946074421747844419285776206294762960709909690435358929880649594564242917810701816715096283107045537315512432523282265621571644155596064558510407655013656680811320464146245478605677287231932845525113803474729896339218070750953824688141664279666302992748102895734507180209819026576689773363783007049132154611538025846116192569022860952513952579113047380147688479884001690689714399904767873897712502250441203640952135915574272741331524656625781854019951347188882908471482619807399824112730300711458654509824042988125260745585393150523558899542978175060438766643823994526634514789138728730910687022071434999337842606339014902100036390445483411366057757469142370965660363468088534250425759582838808779666395248274985761043228300563614499791222020634559068821664201589027827375994158589348636867252379194069013632711655445132349490632151989338566334519777947710397356880929013252171649306640886621129298014668291924373073481369509247978642225322640209023920077748331687200896872634692946130288116254069679579244948106183929360319522340242788730064158990096453842985822522780222524680371444324075194765895427681253759235074625869144236589736405412071469896936494765646450675471813453421228257780539614349866471302879145388084854817895162986371461243861991555319752200128069149080406559534315860588444882670403074837045517689843682997286321299955727136360162234657284408495185032906597924180567731408446816254857142986513529828156244693582734760185407323791848579125347068909648821329400963149194365442712348981758278181620823261196028972200077814800502095122091792852327603808690242431661672017014660456123923532731404247743115689994048784768540839077938152709300477949394228990670987693317598178807263565122722717104119379417254524338031134402941541371328872526350026470186794200721949523100014511028876872995908532081052428561313164814099670633540522820091345658637231957414587577226200078994289762129122196265393242133437155045475906950064624663318649924106434364062538698339704963945112502040614606432837234195621767143402194351082338405853891253227819439448878725784910480827173109554559866099839576511960980320447123925142222772144091149515233410267857467677803266099666739770206614143618241402321067653440352472941775870859341781491127042327162296273690444152291259336774835722142494346979683729902241884707668389810870345989599766317365743253283673132896594069131021945689313945101520854386601973306320492610141594029606621423568159111382926774773732134987365310387096252511826708620276898993046987842201134582127905623782501396032154270213576281015907444783620759865146152004553908431071591538220973832993421407318614355659800544988261633353057115881274646255799462578601167984725668611836328222573210930020867441274449038856024648722289529212758959158345792032507642138108048898720599538300569993700973347942469803850688829508861920985966020344517006975452954283381529223912163973249570946479046140051032501319840105458567620017806443478180915071877053544433124403820972804020539336867227129634048788124879111236924865392042361930111215669676604934938078885902467889050603654545722690685233733466458599502221424470110892607665371961454859194257137147766529930855270363174607124052751895017368794937559860863449084847222207044957834923847789936506336183835697128965458123349182725782002302221181622212413206603474977693011450517668123078637077931193955975476281680121830545851900735289802910747229214893605459952111332022027197151845259270788971311960128853278862302322194744194152104100610937909678283712000215198382748799803103323962657048847400737522947477005917706055316570315199272765268044851050668960798001442208820579340950400846374285715749642993612185378937784351397903219463025664939126951745588583781921632279948283599871496646329487579247894286899938859121757621781780860852913590275798828809059873990470289874735138056387673041247353011059642622366340149583700523547491673248790007196887453007546242360206428852691262291008262861633898279680632750914591953092355167786904601325389678299378600543766728473233009809667713907350704077984117815469340816760018180922147352828074426724310215695981455022847396675078072587506452187423043180244086946237323156743282343551039698968464450580212550857753466071150501632237376586483547759050894921549825727695116831839177577673029523407334873595741854620832485060214247914312568953602260509588330197015372660764693566144895172400936391462823247501337672681456876851779562211631288749506872310896398663532735822443765679442889035931419749587735713494573734028934086727994352097826800037276164470713670976786396406661531286864893242943354382204167263877637472343205747627013487406666061864929861124331469561023769171329191924230717057254511713912456985548741125371545780863492468011245152892510863345890936305615096835653772463313200976389742960302107681497817008590439569253250616536346813029748309320161833897371369541427427174590472482170617704233765275739162932346096660170488055719354195855904371029691659594665560632293568348066525431074472209532412957972979093193536955528316122262361305246265938669656403231033859182093445823171645967510793544650772171152032797074396046731116907901564301358724194363404167110878749641072913153154261374088277629475804444648830927137912083115599380992433818657315328423120681428117909196574646306798891637951582271475556327853150625729057632252101406955997471181958448898358442753961690443474352747353798827128618146228776605895531540242046483803227795068030685088101361229092920295255637975442576567486230430188592647988002338173128610887381330817731366301960354837225409188716645167529718100105186332145063812917778643404573292171810023510101263792898627157403952340782417347672988545035802518520450425275252663094518963238098615955363010255566008768345214433996103757489522674790694388534289916985096515603629235671520303703157939683965577824596092673555685820024673617296066999223182242989315651801737858124544694311285936905300778459404363019527612814285563152627246215186826437496875393252202159319549798848980943362776848553510966010626680432972728996217405015851437605547966016397524495311237878965823069642535380249804454473361208139171402143197455507714118356120961525863594252036646440342252604658628477317454223800895683702309737637559982090247728432436385909313204403938709308158884817216383856744844088497532739821401715491102636805089152840418181247338794107982186912422025228574716898077804470201957006108810094460384669110122070816123716015577798094278221901993387464281338507737421795731572894793019839130209489540447546023161815081599099180798499505435034883214156578191917410417039732772931781474857223916673619524404098199004544196898958849658109226586754797433580747884326150578979229688437544280978562445319636621684120666358731234450308257517959593287810071673831564070355086239815528936453720738731787133683656290703093099726927941380063951845888430568548317080465540636648709377460018715921840284393104972493065692328306281353302555266086081269211052442912251435912170917060919247758979646310369926923037499181692717800944193454286520703382794625751806673566231471627189911124492164523437555185722737191648585946619250326520319201110405333188325374932772827292274517434165663793836664070545813100106120101368952803740115008382921919736423960130282713066691553109111645201170805913511937398081101117713230467065887365064923117780023474964769285560839138288893137234439908442350219274740585081940647657038602414452079403162869644618622910794158783463749634507234083125517413670335074742775053241941433406593699517539494207836149579498855354415410387336660675051475875505220102046950742684999655434696318686001747919342293301889340575059757464791183086975837976996710904834233069463548792774116751013672590329571860170020535758805411957083865928168897291437687809443429975985890811096672044668437127245733624230586833059005716755069742094982674096033882966150645063894423335873929509333740069586806642430335439572375031043615667676882923725148532635516830288070537349989014916301111024170863958728074354042752262648056799941494754395356305587063201945042271092210604246663484463764610903328239477041398569062111501310116792513729548958880817115405894935860108675526507214314109486034468593157450219327818331136812851317723635814601837318950601749121192249086435130293626061195427250108996568338822664907254271186501710457401352871953091201570930745662021387783040892482538406599611654592523582231249331414735789228322504362776577410620642129236288877104576855123895276658572256603798592899370401397294389773956082867780736564996909119301619265580526298404370258333367694701176318610014925265147430286372931897206226946242691367273350966990162694387446221181364893050965143987265599015722385538634592616088330839903663073137177549826426149661736942799560764994040328752238690453975437804465308314307306731881260884381481742504842001825144556227790187003500198794436813103902365660707834649939485724292272970120107293783095193537166460803836766983302234716198045269153614254732963636641258886382396171355208023200274487042442373639590381066349033081262140847321328522356985938122146870093704887925369776933601936792440016569630277960618834646097788066203653604430551339555886356795117896930987777300668355649711781382997852413550096950685122143645344626451677714169660786417201404109405841709825881392627713169727348169985862954836268663075367148870425293362010937364448070824685342464093124737929103260585120517887930182718806565957310186176355833191541861795993627169195728368962522126947402846310001475878846898911169147445698626159955899240624797485116634837416401597192851989427285693004550709239844215607035793078772516218233331239182834260954310245761127395168049484971543249305025561372232045519435160959030186776190758051739657426875086742846948602727744245587588441481819529282744458110849089996524718299983105144892915050202499439867292144473594504788815276986617699499972468021340830626352510392861926727223427731763358212115076867251883630236595241679643754057858109023515570748382568221829594376521018221558838238074474450338610639110565000943864454886140988991115971116592583724148084556236969041059333163247751667810613167745433413813469908126494455927232355664634605932236839254682482893194359473024885477319954780960318846525378173009336814440291270034113252936131115523409896595788498680865947626731696289591278486860210409371128644123307886575305036702852992427130755530080991142871018249447893546130996405320985244932276072187672014758490682250171177189659445697881196694623497496090101476616503343014251323978133136625981871381880694162492758973071490817125407339745143155118826682771891090158796967955473046606303825799933794670492725634046717789342470082282872211100566389194443918600333414054609900712057378226789996189879945813706638292796483942293682046627114530018298553908215007081096055262928988733614510523307467354720228339438560416890358517249642655802690677971143555456031275978675397967677655556307974260593792128427441160315646760598329435500283586935176279902596615103092792345889268196493727093250974925301320435487469129963757318590313208739811987358250287602484585615751812062074380159781774659112587938155840468882185911986317224233742000992543337899240716914524628306684858012025559919947815464872972979092782933423423497030594186811413216007253837495548591403896477749410155518478540640124753057511174835931235042835716955928805486556014662874820149221642590040146195377009256065354845440990170335533348385585947997067931133244414877436108697254953875353182220334216699847101026952311287233814679403075609565556512167386745676783567344924579147522144931181734188625205346912995482133853551325463763436392264809836772177163222106372939578043938383472846765449812433479850148759739256874065120023106203005527299783655551214569082444996181579276495201871560966015157131594054502790854318095873196157303528774159919224101377769929314947225566940352887134456163673212092824041782566552896950664897647340583803857821432261144044715173672391648829845027599076380018773228344313062360195516755858382204934445382171932890220516866152476233019388936039671711422129722996453026514469797743259669556618851232112175872687466870882178423241712789546631363633037053033700090982797488756428149916455193004196131997888381005033514612602727192777548736233842163890249843904858084121549503975274444017603508005685253881085929194282607702779219813634300817281867396118203047979415744400831251016571519353715861370919274411680283706515404843518011310837780286039662920888166187356059108896371232284382769147970921349249076006390410395461408887214468481207185009042810493834164630545177067588554682487311024405387614125150163381649965117731441328714793728455939708254406187471526658219870395858245553934913718541553093595721160863558879276003983008972986375388400771368365557445297024072725695577628829931936456938144306199687487826745505032848876698790228502199032703348193052821787133027099770100985497297841916872066811189506270973538117451560767005073243692704369781149717972566415552136645465946973710227612322220081733525411722092280666464806397772850457871142703841557462300777424471497082528196205670324242319022634866902931459431074311274810700215640455202079034843843406419644902719629534928964891395789561047050365566353839633707224857487558917228727684101198982936552635176152986197589661742288586419306162532478229857130931444465132697394601884140689206562742051876190429101040155369548269846139486897449555593820345540502209239904901879181595257205702936672609634555138092159932637751604943972350392218151891081783565829929714186453072670113469137102562494971809703857884972448196329842891874350580105429830216964297189423779064870320209198587758878660671483538135782549000429379538930296097344403409821413843257102562224766528269499192700787367948759141304694227339859550250730089033777315621480606377521298909360515804131025111401586893294885065979505782861417131629771792978451532174685461477461709904423394923899430678301124332027204019660285652197324134180863779434846094432182466551644581846526128029892067401073695171077966404284646956788501171967491206739420950910900993406393738738974356998893137528626819703444733384441865858259537722507197342747472508190743074341084568510788595549533021081570581572781998349677293642292119703786906430716904017713974614880341653917502766604349845638913921915149126615802123142310884425853551136613660823538978558554121646279929948526869727912280170505331602390042237937968103994664673697340635441173181786601436282653649905925318574350963520080511446655624685612426818663334231794225467842562708578934439026892678442803044950406126674148117795123106501794242483378387309444531182000119010700818947324307856709615600054515515206855986761480482253736983732021830762585792730964706233101751097119899164066938782951201443202714794049221739724628230944081272122836265563364760971454050787493370497653388873012915746210117883544884760678506217090585602846242220741786106376690543717897911842464829505931557269385637478222162288272080266697587838610848717968533384016036010863260413878554531632157705444641768288797977652427957092775120392035415479040183518834945227497842696952031639926210054324123657140993067584215152529820158940520698586757972631077127402285106176239948606068293140281101626251263297255240567598872537636226370347323614853052188855363783365120762161198927575668923711930437411876672395248378330997177623826174114332172082953350511002839597504389453308137423965586009281938473357982218818308675510967102052929201004511001144692135961401119745704484502361897093560676345193533422444462434746291107466231821972818952695466101076671655748491588584318712059308756719927791707768268036889504856851396427868237727323901680758109984285698567908838108703736940859895659810372059989934470414372976710113019452371215669009319802419260297461145138906050480412962752426870759131135149509873032091723749493192753192116699840607931785342481790671342403968554446959896654517765326566546576988147994170478277594118514646452513575034429615483474876793900377615829170014381491186102982046378262419410507720386641322257586389012618972723339506108766187510905201547762211926941753587933444148057883431909012706169139991161457907964789216711674546411911986406299742626198707114820618999130128055998873828630033024500685799979879278490215218754083272633152346852757350996025084891031222985741012733179358149044447427969835654051116927784254012246871181654356948277923750862546048723530450727565141817990863157061072907482662180292456061372240219789504951548156997322961757586325190765767116091100370733258432834243220615179255768388242054400680282784982158731398535124815422186667146779937388307838765011784219573216761439757141330190875573748334004396081574795406867742586585502424448970319466869256201855504232283534332846202467107920065681109962997732442329536802471544083682133718080435238780829220508359868028250569348192606407814131937610790317680224595790490059527599242356624569235058334494741355436243096856824986080723044971857603738143809180076115998744099151217870591061448444457808353600667656937414525842139963806058595762328849061574621278501229409556717372913188331925060885621481944701291625203066648586953358505255323331238018494608097954997203275737378194577905701322470038997839458445106278582711047276766994479029290761677380749641525339858192143661415744783931088502810970399098028577624989499879112977194868049586702704130481645424881799742520448675693967006432615980931945401068141217769613816104779380180350157491112538062750626201962774971412521358979122369391127769168729593429457532863482970446489287529006586528520731935725351396804283674563339595653765453214437151752281487174164994020369483091966177109349663091638239096779771102559167715712480526475592265770814848596698770496461159338913878747760285766123945816695729019647919128099906064289951293310622572819061214857239809665020494800893404702776585325483117598125634526440625169469540879220117769613313194545430677593627087845737146278715489684768968137344956182151406773967160508750571095437191651991299678677012630333114937779359677394715707123711898865944200125118452157166899380407497780577850176676999187416573324751562768456697800214885071159832692355623383064676610248373842773515950543578431221388318049102546120538018166754446188948678056038494643189363869185002480884594193131374827725501037253262554776581993129784691329855165736793626406073138646707734649366548721831475580204836464830765338052268037694386155252336442717329008395374252888682666996315196071618097825020000712480555575299906126511450443220474255065122641332189125487592909768176768600951297756862097375722098910742790701334766981054871032612387367349970963222688445680912129781917837206088918749818489197064268051436558280572863889381832503685368833120307982249825200362650381892711382833549576311214952041620549423339851249821049147617710120718708905434070022984859765497581159661215157918274693710714316529776189416773941664606282042145241770148253372521778262849937588898716298694008575141115031378262511815778055677830669509447263163485668483770871886756664903092833117980625603989773343614600036894351435824440296475821078387069070628608020369180269814609153146080876459779163415503945000373735434912487338920006060607487948019221973406518648354775224749350557391086757566644142423084187245552071822180653621611352573768174440343527610676511681269191291399642789133970963300524119490970577315272407409385217359586456092324876566989406157482456004184298752520670393031682945426721014499459608862463697242459106228422305996158878313598412787708867419706377710158284197338338959085112396635273360857282845477652320648176340956158822706113619205633315116934837741746263298695720641948929750629404882410336903584614149112102686303641898313625131031551290620809829948078829489990542424680860752917970941771346416369503779429356209947375231779796289161312047080082044110473175064328382655724531226347489857109064573453897748605184417034979104219656854360827557169706661771377602033742359537008456971759610133721608369494725321254307354985146271356819153833083823044476078058595634216361440850339981599542100212390020403115653713365470727298016457913397821448878869340368108497775175065143025676600132205783264734545715821643080329107091105562892811269538947099036177938776069565856496194543050545377232965068716446180491429434807065233664718921352748338356899642835060756393237149939602626069569716110384468395270048570490519337714992658404952705980037295533645632901212768070263098330951081690379100343896463539035399540619995632723357166551667015375629442786655963973220856628706546771473437708691967067021184783046875913644775954467527210793858386492518079758756625953705405071560840628072699773878011961164353036835598577542688849496862879002372822431110277552686322209554208084715188846356764708930959084528935842567018715222908835636153275090702969141672081621768600759457756901632789004426107760230111353893427556833907512158396590214870523516728731213255019324151017548827686426056323197793612153168004046326416887004283893933857549228952516112359561093363262578589699070430387570815852926577045002115065997431960534771814339300215900892128937952283778197881012940347716707683963784470168135030662255569154533392893560148120442460264204745924155967712090415648904848153829242392532701038787552360943464581069342224455148891740295751849511294818055434199080890117636107548453721957321034692023823380619318067009983015478719109657274477515601847393289876033239853899424593056890247828775117320372669333555038609006906382367826502373515517419909805113999708241007344830125230425689890959954794131477560633182493385331355028944648202070058982409007428558229674260839182035616226234646806739924874295036004631654378153206296320649025887964132225910925907220355404631336348517494817552440856290504169235833752943731883784468379904969825808728120458746851503668023356050998010655592217174551713941353040445550074597565438630281846706281718399814377110269268735756610615056113666133131690902630810650535061062320721384067119186422719496199778063565393519222267277022237372086056659652646049963081666873767415465961248580452892056864887317183699161152892844072907991622384003208972484095721010738202195867928414194454475892653330269217781761663561683800673467818256473034811643202305505299803157765352919693143253508474055978695702017045907150822263038421337648376697016254437848633398066938135793560508254088933156964987668111851606341775273742974332502462874539374644767700013804333030206560236184215479121779219233786739909936091172879895061604669649908564027272738435647456036681976213733838018106857312563706095478023471209896387039546213339301156537135384921682968629085280963893434649739626267746910519450278501783198183559381225445363398892981278826935467916446348916425473408383621487470177716084642815142656565418800274223350138944580023439735360971135024116862636912808665018662339912216417643001948528347587005401302914977755855470106370865775063365693358920957324223098864977840886196946930899759316881694282014421873826672435456303268530120481105110347896735225771241159006296067222501930804362338782320723069150327267820984573512771093655890451183076230067409389862491179825864855223477038977735975154999076349505316409126978359366315031346239507685319309294432687514697945441822597856121195785999513932094165776544564417604908514800090983686126858954569519280666647625233348436393582158810557173525407655238627338413939252637722437657965067095265995123230502003957382599072625646029967097705439798922822265235345368109290043296813999946669693853161053909416869657330931630733179997831437043065458136093069235776462379355674739494312717608737092430523853341585002261285409984161611839880497496815736751597072529548559848333409155500051018363973305039632012015466584738308219171403269857105626989340430935629869136053122199186986335165729489657035995455790002154581846346709639302274643344416480638486502248116139564504170606291935462282793845862170618407234229158469873815563265428836412609165210787517676429129848109329592763860622169050127248352744368779975853102222999109066991024188617673435822818980834359128094524779964690629828472067239315851575280755300936109355992580057011532597836189314011442940138028092149231615107324929932928742811401640698256561355159479144232259213723766422910503468363834178138609598703915715412612857231934842393042540866780767621672527465891626295068738277787319424407174029798638219207475528476797931503318171641641412336563326756220331440268846033389674732471727193317054324360371877098739647074876758093268336798300749446468771608032820235665697965271310455798289925559255571076763529407176233151572184104929398220058447107772243145430843058839444669449809447882471741693576292088432672810797934995684137299597954095665556397040865654170703401810524403904840790559426932908901435465991001919661448070379549110686815981793764832549504869262489532560026153971867504328656969404742188753067172526078883071658319038376389680280603519780560026004122388435972326141833147505339179372695194420243807417901710546099728715821008317467493016699595652758426050180301970911512569732392522891730630063301541755172107709298609654468153725631679184165992061241375014579664936147213479706504499455670301881071906445768909960645475943541328450497294445325491923066337062666393996086998153800365594896097741228047354147130162146836728437567253541848048526615917735404947631892205380336264345752581288101252200839252241245605426429253157703755406386732957171957645515389591854087105373541858103499960725925030146161651892777610639297234309398009813661398234925894845472894936959217198084127678676070253421408377369083302504253011777094323497609772474491109694065737667849647822872071111690236572304555808854532695911150730858624832756376579789571335915537135820024049062218972420148446174358997410172375743538351973976394413289449847186050703956233231647218810674733560070305009568688579083518618418521026376335477534892085914194132412402086606618521279153657618514944382817015070726075081235834704638068207472513108785657022544688811607403213174188063552858231596965206681888492544702400280746017606441470704472517461563797640746401237423463102847527852931451783216922898111577006943945561374123736398195405648435973547994635897038375382452609440798440884123568428917909051081973632043049208531864045614396434838859361597181679060564090337290331427956403898175920658963863377374386688153047556884486936687205246826915934149325490619032659005229498968266945606600381403540615083602176933759622340835179349179171400842049424920568001648994039046394293899599728868182328817918548253449361223524631963013052729394311554866659311717422376736632320345278975900958618210645192440013947623882357332212258163802322372668018527347386218994022856954299051594376798599838700048354945669882748521718155480513594833182190272104274975565214626558103918128767116239467588524439008878059443846114459866193172830161851578666173039765082244316879977286139825623137466698853227523396443153169097052434687494148594021847645261862430959620897916072782503892399408567172200950529721107697014401493605190129186142929744217612345124863391921677056446236047149060977786088108308077041307718253503149483933657962453794960435449628474513458895962811309426077986405206124168034027554352128310411760175165537322482052342400668611211836031257047813899522572713080499406054996354631803405093681933119558426068651803914643563041624013807611052552428628276076317337539499606528911738930493651945210115743641400481557554924209020315426023035867696722571559788744063769325443244823639540032361478426698573057300866242053728524398683413679319533858402364158439836496824870041431551566659218889751382340846473006868889219904852454509979076996099671017523020411264424250403452112451864537499992719611201545196735147667491694077317989255872295235423210726945606604589500276072666297777221080484729308981396585656947068408962679855437085467665173258325749097131613036123996241107871279752429860687053995029420768824946189315864115209919418319961945932388012535122856312765576107786147754024497734016394103161434826038155610354446985986832644777631210778620713186668163359989629312262677925448168927634647219206188999612122467759439956537211242850616318961062394283029219711323383026868675259740630786104442765532489122869373810470199437959342854237079557090223244524834994524842131186600498122866908199657595815219038410681638997633509880540013279378492630389967680478168095383126820907463734957702290053455719957424487486315809181389448094262267224950886018017235489197590176336475089341530296328809277636284910765106419846913075666959414256452971026121269507255134366028864228167338495122908741520849193940658132156146761462045574678210983365513377188065750080682577930227766080631661484382162853338603438821224677396638341518565502179901162622662206859189585262640732435618604088308279021181711621194873489073969122068975920311446271360235260724116769888688442887110985848931180033957022907083278698296513515852209795795072265856149321258906273237808918887858830289489638755176227041348847305300755307490210686456756707727519443076874605514285474863645584358913490778779507299698941514303363482541439738998197902258040522677983380130423223125282654179740525969437303627086552327803137365462216558029970691845372777486563106199354099929288801619290409405789714044339424801312298793193375213863595707377127588441460228061561659407818924030405752349271892594903919233416995936986393136319486723071541517728253527298686749801610576657169973573880219978601929717377931629660562612311646984336337172637581302744250759692569777466780341617410974521104951774766259424154187878855107545842308050454470400260785404567321879427412263044812838172907593954694433023468748395089091608603907802705432036046053902065620998589918839427301921350912514538041585642539690786590116382673348307565484846897012219417185508150188294023196708494863354940518649851522515710962924828905197926103043540353711755816616395227313017492406786510778192570466146175350492602946882057809592644522634800057984315491270252162569918725373384889565768624436115481357086002338673590479779099651944721503413192817505003857791247628813486979325303190270952463885544404669549986422745575141416754117801875369669376053755703163524921803993544844181076351849452971185101660692132261166682436847703658166127639975011443882082162635113267448048700398609681645028735568542389176375527784985279822081388937621586552412451344914562574129700497602147867493345164681632973730708634058902804012203749940129638148385591791119302151806416182263071480834378754854581988413760485785277487643037105766689984072824761954284471496147979808328804663481215590255785046563889216637885098625675043692557693793581811178021094729230976197850623882252321991596817431672359004126873734517740848048093998010301286640921443830925347616212203764929754910799315417415734579817877479981573596453625997773226056360214787524279896550213819528331216376588601992947733573768664565637369921260229508871645596270258451281556969599598491483193043234593109003669980512342808857956863655686729563066966927347308432722856174606291677641007308031150745406493487338946555729658784780308103079181059547996163363013794335069403854990148996473190103065021163493538559058090149880082716894436370905202730857945252835239276638516319111837232324880855923965750352872560189422995807721432876536332635010983776254591074656795802911083112626219119612682933859699031953400790909827058535099014547689753588032960856990165363711118061903962992372946421605110266649787285361985221134222326641605137456729360519158264065276787532841166889409024224152641144905999155611122995351150491856694353374963394806208594118231535889264805770482370569443715393348944931375550741276858109962649094764171781758213061429986653962688647364378465809735664310321016366972828967411189893025533237937228549598637438615146173239644923900643520459897878959018253144529615215038913157693941878340190218776721708950950395144825597755088476913343001797821577694665141013785221582672984461794141558913857544720751836119773514459348527890654846197500503901212409432670516882564127611253234292835914804397021940642691660467008161811050542340426364504309904386525635123142577681351050724435714010393326332697032030874764771900007767739903327399027679675454394046995588723831895050131207386524688567886566952253041649852872505695032312779843757729562450049745511295168012504570097053836411970203842222259186955994154564050936416440554523562574749994711215457822249682437134041189570899335742121338314376218266139420888529360661354609227701363360494215679435488780381029960001003939296872475854736952985733081584588709849485134626214180707084183429178709240866389199696561988249334783567932753338342291104130933511978744760848405930643302854719639762479583762692738558620478310621620606677509586565310672930257640561332996740115943632254046258770826248531053231866167437129905187580080299028279973592975724844215494657174181652483718363241187436203794740719270751726833916062062851476719685698677390237456807548467507592838960806763569113190859059685920941651095999064047472651491211933596620633782227305107820921536119007095964059052401653228496436574939391733102835681117287721163853157191108945671651194553285992791509882406004649461758092643569384243031890557036310884374942572113997359863915220827621569257589779393150034589921810638683682084970234018127811761598467154831608951349584496765903860148111698520089470689057685424642905747661313388673455532084202189687952473298595173570441821665251958935767204328392983988065413434221718374750468215317337145025697534503401255280642091183832445347809292542478064811563981294475098190609233535088836905987880224780037172390908118884548325777431260763003841164193539663189725808520489386570977710160522913360394554752158375903805625980640694478083493465847010547016833838767559223127081933590187005305778560741526125451997613137432486380469822127373862932849706968669583011160990097532796889359799716219936835376284809227277031064754134339349598337300732975739497567893135306609178970934174501198365750251711308842793883533423744040665767227079725779707255055283585530993218966508382469030433216617144380542941884207851482163586911656613166992781549677856800467545680684152134725786225433440548072497390799385839740567875476465117811306183302628206284005634831773507382153279028211567779275243254661342334341384271992801736035408117507510871619614446399420096732918303609808546925027778033998193372650913069485799307846969497220050521015421648271064712907389414709175166425307918006416845144379678126240187467392921678816184713397732669641908807762257613678470884670642378817102911730657530186297323507059286746538191173274230043118011485834532259087681116687684902754637743417639073970009459217869086326462571195820450659207473883064482022142906443268242515572883955080468042420826853395120071442386200769290575226677365496928928914072675363948772594816752500641594973446286755012859698436124232371212209880385127133861952061040806294739014313342352742801605691791519991879581618500257271945362937488790830539414887800547249605607566082411607068652106176925665010571246507129282443912744861056239335882299251027568262348498648602846754029763935366451043083391018361194200515047190560644927084741482593817126375710709742179162746988701251291264901161809005329918602281323693379827741221359035777315619182716955388482734316453805146440603713501600243599033305824616493175992513197075652088870419017715268254678697615300910972440578777491035924249586337448388856324922495003325440146109338630280442343409653246955294087743893509941531593469872005761034671332722700685503948761152674180079870716862176210391456132514005936027702677681085062252379430398026479992606544618821442701007932639517732253522044853654146467509118278662081024317963677667867134573029451626326885884980396289681877273693868516911424149583232358545658360392174218047297486730257924928305227013763115211996706286460721040896484297578321404299421362140182358384668622341028739295650286107287208632728257815316121535287716486499902277686332737765181801216144158409644767409531697327235201253252328698978062336023885255047393434790535295832591388708121696132072119799581231608322983198086435165741543932383391972250359515716939518050615293488511787613816209418945793618299180676802944540448227522176943466631235091407158890402919427617200385027290238327794636840821958680375061330580497041174832509301959986520958085702279148884933700583883627775743936004995515092458757128226862117329670648971506251030489820226320669043067563309273212102543997284598017990023425319357685776765467644367251762317833976740887325822217374017171862551205054355467040018244208555803874609022239827190592709327099900834786687384435104004288025973900801787535624497338353945075679417374587015185635049716331033412221931642942776507408481009231357742728675261082522603379933585579710275687098696638591998835097093285286131089807823985419501793888428022528032394576197770152747828700224680293042739730939454679762713132174449376406854755637047511906266340636065053691501244310830591077160058266812387623462741179973664934193976878816647569976109399409306218397672776423841428009227243697558305467372764796193183242529035849845000231661028809998616317382687424656664550274490644035949301102933642786873530456042534746145729375509289614905666285878121171243161893163756295129517409293824370285001811099862684623142394138661299851013545782063802451688494814926214290621126275715465195504976002582583513467219886236918662894782057072979005734506827071518806969089916433144386719637514296778587566697275678522387018765820968203125459439508523384352262791622492246249651864720244222910988492532461037106705145825457285674605421153650859521757741024843371253944260815113969484968339788481389491059254100616033587346726993812826144917880256053682779655909432926973404742569210546436762732926307136073923179587908642249276427451924736895264944883594117357269187613590150955046329165429679072674652924208674119892889289089389486233267667238028872958156584073528258306729274595080471700157258124382436893705709347551932188405504221140565192431905275376785657573013352088023283406745584680151480187603710963105734230715544672346979943948965835042906548834305974232211419571935200280123791685499174736678373600206028594691726561663024333928109098638777340988233886780484592587864842575761544104220876901017743644155957833183450097134074323938964786843643756718266734990047852766866652343168425635582238929989288542895650392595989925532285100293653175860647315043968053440667325879495213594258722519790499721645336300862719683728106359048661686920677284192345295815410557212998054284993184971892396069463685325560583791128145927940271787802588410890927162150577727005726583593869012484563494958258043754812349246087307416161554183467743389259206132946259541956879474461029473045846906398100359668427897851610563375478269226802523975374843870276094980922832930963585646820824396585252458884633236113610693177041742576539417063889403896173257517445450505482363595560611312109134366571714849468955100953115172644379368980374686471314627820893650009328359736778992396635342863736694473902321938318330375388383186770614181585320567604923422178735768923672883955067424996781341483203717997738756615058253143042402226036247049851676149919943047595206419455409606782816092869204627755834740337035565310277706310113892492707521666465384474194406910497509859415248768452847790225421726232312600330820470403509841660992310282362777632539147462492115542669761023226946108263830572600862922660508373159609496257717450214513918099325080360734139851764495809209116142149939048275906398997581790542271156216007531806596385720474414276647175929986779297805047992064180189760875698907028679454745352719927107773615085754436199049501499217510894887721579991630099117112925917454284546727711833039999116444436425034922340051836820599950126720938339547174205460462503152041185405037975132647780988409306481529633411316073228731055815630702374651436630781583918905324753566498334761519932705461513930567488906643558315612132539537162101549470435665739437636403037336613159624015215834935831010337316451444766765952898575288208824740420829154648468025177198864050033730343397702621039356321963387582756766744885694041669961458871436345562404096841286279919217974423166290580125895300295991028634475275702159460208478398781260264021796641258421104214775603959625775929077876494914235429516967139165024598923584471516559438814534745912978920851927066565660263000285627703482371216942911762188774932332297000665092405994196266266045015673262235414715224599859569126826543545249011914950966599148929486186661111604617267694971779510819932849108309540551772147352458151660454549521299936312957853737136075160615500941870936507663491960806809567585873147330347003855884553477367152263813248825051769908590815131582762350332362037814822811044702999711176849925011430362484963577722104194136802521419458778262204860433183181355489405045910623216635696120889846637709808288174325715105651167795037699978045466145055788106219524390650766212313397500757635194115759579747401928009187250108420211883367702001282674786367316076488885926937777678758731123035590529159644906722588675784372584295125568079353261496120108746319847988543855026846680870289045682122967310846390437567452058910204529356720808204179861119484231713416401371302952547313888919641678217732519406641805630436959028803857810636827384734729609060753325126488145979536374780773030742699488533357253990714000331683777287752372045797021572700965799367629204704640096297549746394478785707668692744555038048122098294572716435318044426663455794526670913558573025622262018105734559732455472991095548952612261796611088583094641050274890577369922652739979661893075173487315768711119795669024266671217792266273749721221604798695671183376297349109329527539357830492908568383195416663533765431263735717955847503786442989203736009135373965748682795939278955734580340841937425159749057319055632335526068129548967213947461162877685240450143964909721727317392789933437334129864704778621393905540912961697133314277087053736087336495757315935125039370247551524947978209007631986159452855433775944225536728777820598108568195206030633402016982806249314866356551492148377343236561224067706311203866098785333190169337854908425993186911554613243016791473146763314127827651906759539608356597229857633826951749308233686176591205293811396680604456336188419811215537149042985141004710104385649956713061928264046650874001066833400748729372089718156178530060921135175107751836433424848072311488750303811763019265109438664314317862601864205760412961395922502733741041149140426169447030881673159793224108398616702920373507095427509857802415896712923038800105410424638794208476680681643512458001999311719509545639174452914785993390403473146524703517088582430583216622311391299324902383501267192178875129600996804905072456241678583202863841310879816407803050644506290268700664786122538456097081083144859457099754706271129156967781665264254982117120422395813551323258769314546695277538521857888773044198156499513407083372947573268026937772883760975332402995156929479491689664525268725480893250925567223653855065298168819551919326875429572079604369492088732466231030276827353586116776073739989371289551177840419384789182585607803741545678738925512093665466675004760782344552745062648808149464230961540640781547889059483007102814660763167539105771308050857703469564489035138645574063407039194847553939262291175119223633311225354761737051117171480843623505702656493489410943108252834867814460543554372213718216077813235193577508618832453262820734840262778191008765118738058013450088309431248745842276219979531909255075169511622277115807994839162241371624635659479942803961388868609293559513260663678182007357611860047702799832981764089505455819510299479808750226063664523895356124173762488800158372713665448233043024884079837540712639374863096587353835442414573460763256048003786681768255933590812233954802601190027103086118342071220211635556255357230510397279497085068170367502012399199946850640933858610344165755617095263070671925357205599912658549582615485384565582428004571298877190742005688595170721832363433902176132109789055509363108047040985703634164775238748393378235965480014572632020591644718570367824850986023705577418760156202677422999753879146738889667308170523841292148209153774385819438675714405338095063923164661444267901143750636937795979227923481981715876334699915008268235434730039855495760976526849002349873965724582155772864067313922231326681571010768184783655989411397946697253425519706408126989286476474754923171825075673351064398887955753988473043183779132690801338757365972673672109363556269596781833066711850834829282433747348142573367592557571838525415086434327431781577766921350438437072059877777125614655117786043997511639980481818749200248207438375268721390172266614464729600769757289573420913502563871628723184572115165605915793758888136431876561051005854038237010263390780988748451828906241987029719411351161721344190148373508918544597176306536075314059353925106606909555664050975412697185036905316036698066445345299448586259128340593053379208140598056239362815259731789169501307433117293414148859383798128187359037184880562624516067373813808389614770697371663201048052063220735595555832541716176670347121869938463431332353431710012617307556080669549739378556660239860766420685406165439584983097411425075286651330622088102277910254800937836229652684620400408457438530565257747369569600137907026404392567784804551620750936277234746348891279983914341689864128021659706518433795665871705014278712156424328286849354777916310991689674027784263373212067067852000362951385386253099170335627882562296562235939239267736152442792788604861018312294943391163420357549936041963990792736975498062130166709347930345549468599698173407571891348144980207394942270784767012121042693078252317873368457444555192749987930301658000736442213019635245231239752140164740705979651476424701584500340611708960125212301539429335719533727694745430332111412531451463442087757605295268576365214195473710408800086601625387736002008417687011442914458954797027873310754574965069776166422780076553384849031114404605531082635892212129150050203635601036797064038679302453946916275635253816037613098271577129025016979829200338648312422218536461388989169012661445903049103134544001647948538421913917440634393655685596047454459644453835462030696525389040228211901187605126299936833203376926643409095413059970311678143213293146637368234413619814411014981908837426435517656138845218841203337083948819284764510144295849313749807434777583245076136182840985437815680144472253860125230370947259118032692781306284947486920291394752038186516542918954651820352020871350580958564431348252558034693297422373708757417516371986165515086408582477026460281575826676484584928593463906594418892714542659426366374664845534024566230740139456224911709099858399477707742189453614658891661093118959984397459020351638041879128027363967474120657867672453993826222215804137946046453285891574380937219124480824825815433150724822286660951899237804381816122573449352822080344212612724301680166147092819312434239353320859567730145472957031352510645463042695473715985752710055366510125590851178626089304435556589378515640015174557022856229154054457767617666684417316320220278317176282377170440887656338764897207620329052850965615553123664502042243124274546270342093079305873068808038567700127291337638790457531338587750419197428040519070521132087205913223177656249926208921095531222305837769158463518743781826955235646153047708922289620026173635505934637313407579018913717471125922211796037837001376310446645561878268510992168161047421213912405905245191943505191008131134394434029424026847808004841248532777956907379851391169293944719794243574422715408802628497814258424731287742159845647921764664559661819775861163284409494917130842792580196858095720311218504507673479619830364024793353270962021152294386153733984700127499080274089278616308303251254300066772823412744861363876202466362670391111210430369143022221853514263061476086338675885393395170279417960072770670397390453567446322294966711727499753600481763519474964971990317093623579452330446679353940189093666221875506919757541033728776401507441281904886232246628902772078334677197732146134423228180244678845339690422212953202547200564655600516915646741724948517991201342374270843519034458317053561747900638432932809870971202011960185032993779715161256398508557950488544444023829513934260561290015651941472325882501198014434232112724743119229130286333539522560259695210991402813795587598618265949053278361942108368824671328068459363368833398265655722374104907908456039941042873219399164138734995888198275020347700302961991453612815450721161451321493299554855751231356773972397989539520434130928651513108533645066050590064286554381867336600053223048786862709843401184002305444525882463732282520563830319387918490001062559847812306390870853428666935286191187764463097149921261840700499770513391449199600901370715683285131164543089057379331519220992051155190611404036967148643258890435170485615454468354968114411507074109530408305309928904718475180692189675286892931638321441849226681269991299958930234615655640153938582440213982268216914882584133516976544662631845895437362280586496638206405442792408015094128754989428978317747004544074186354762933126203688286640079458782716035978291612291273833010214591746438235426764645654893934273531763867715269531113950210018555645587991413939092865660255575136357450869387837652000785720021146620977837012282561229604312558764925858934268440865763229608498869046119606895171191456936875188890234210890492018436357918328197571265467989865599940901484264677320313001322245649999993161087425205883185118467052851394778463953373165972511217010388233043343507311136829089588128423537977791794099712840902713438894990290404422710089093050547689229560037357967097835447802626053859588093258935552821223829884047280861901659002009664941400970349394507846695447581514969665682367249405947010396351378650501662667957319844567715794383860554224438181600629186281680695994969356123971370644401584220229634592697859069776471804715074874801093811201466458970176481641173346748584904931964244118561722357067222484833658139052157625884691241748094881295255638644131811418722049646116181554346069901503071220407060469659226278508700202147635736464476012910838615544614969614953872147093248671246149786455666739347086810637398311075208118598489068006559015934516617632785348826182260903972492012757228374440904912693164008018030317808197583254561836711256844398530259342869136262673363329031804664113509823014110362897169958015070316466841050757161798491139280326847681637591064243859579071912797555657811303809856926053406442573779591257791422403198270226752571844798040820872340091574031449889775674698747907160461183179024715974846381249497361761363399370560904046396160632054465548562041007830251330311324408771664419713721609557812123702960547309688287592630501070254873346299625402483114738731444507759143499000623170768976265875135961127191443286317485548751968439319241126350412525219633916324161304061938147506227717938926405939743044095440639724173264021545833859444567139233669709700828712329858687631785074250960459433288863441242021524757564429917607415135380100171792376314774014329998667399274557406163447997443291265515656350199992854059479193944623399831249665880533362288729121719263494237654242970108865929866759830813754137734127899082817510676490965971082652312556746470849993794422043109566019060281168438589132505179297259694828161527425119152665130040736161709109431589737659864632091747674199521041828073906881726751901750517285190106032348752539392850732536629327674885906331639105024386539478764105239885609846068373233411642540567014538297247891832387132069355773313339560231307653773639413118972075315293557465978424409063385453857321513458632488318777555517952372118448477653634768017763970496387135898036079240306174798564715387126173641582317208952630889809605952376914510377540813672122137619052140143196480222099729996166353733231200135142863783821627923270117090190463380467006275039144020631541229263054755593921773825156104440190691958224428012879222759831730622835905525422013831843870804193744477937662087648380576233807664004757578556842924660419182378116971029478315338690694810156590135873731393652740172762964736745921082660412181294584914290763568047927718976075141741297190667497671275672168135997744536967864788412327820239588137942614593234940614055685528870683237494788381287560543710028313682227106454337363268504024475440330541648487514648416307715664125655627289281799313712692499581883270260474567402308783291579941603721431507568438750522962010060692667424908128108914158257852138760995200580383290675177241057824830778837744989856943070387028258756250185833244131317986971117573481232625102082178096635370527006418466952059993588439551676556005543922003866149784904587829372193629194634935557830008619167377824379657974444471210439527452865697956831610400386227372639093964088964038503638914521353338923931205332047210694247563204098863863489293861621255577329296306922046776130476684000966233547538342280550543324447230294518504887724113975522693633415625391263180560698739296632538760301995347980238863902537558487818664767608755820376995086733299066710949165348332338121181614221945463014052353031491591916151975866083667292481874698402257651923395350387750987402356463650420283247195521419925641864703100984490523288266308836786372400240460243011087657980394063863463858386520024900949550320037963420930258495396655649004141241883852825532142691717403193126059094401486284093627700814347865433369548553841130699398244819673677145120285387161542580023161751459295765479281576102672643014783372901524337571804398057328684983173506183621250253847078380574536729518963652477495285144191525553325384993808054033814375440140598508325192966520986856408305309444952934111007225339426760479553219265214222886907232541488866713526331004093152892464126370901932516612216056172816348078249986801717860907427031279675409918899471087067407385326075211672575774924323858661929344640605806361509741188918929125828598131710716173428214241323593549490195980616183315070156917830714600866566831492216841786991891647730655335233975637248810578233627699355413950618923412915046243536527517517521158394304761666674723941015765238817820983728120123072783059082901577052055886299511309236988496412270968813832877767663664668488861169816226306473150778228550485546292475085597652861572398410362784521225813013978364175981571418736125435910325128592594698124662215542563689191285478989292230864582136269796569765681953839760105285220136480635989759992292315975122904970776516643944526216771709313409881676465537414977014735246601194915758351023767645895436936380166288047453984165081240036369514707376417915588342494568698778281886876642751987244201137175659841788095328939747292289361825598329176232510346342211469280711504628551151581374316016576649877413384675531265590978393681398290020633512569432860097936720626972969483407087603439821235193976008745505060606463387938131445541728006371340400659533428736196143002890333527583084441362752517201996275618825537044970552045435157591108992715171921286510098278268414630482614974863298481982892958344063337696193904571469878548105016435308763741260240011082936020290847919900636191999608040783621784991733567647343825064985388575524507040086601077000674177850412737959182746285405453999494269606479703926261684855667787382973352429404464908919508797397801760332957586206466520496527214850632909494068522956011871849871233077464254102056283283510942261576830630023695140512194219789870414207489545039033042093334730546484784501802726677645026446227669357853295347850292557458841217543863683955462592768629332324085219213486313346346341231754228828215637284391703120151145214207980883512366503124204686455711836516622340674518764300412153883653688200931950620448490313287656832411402920629956920704025131228870291396229767448340296941880179576771262918275468875276465523668803969429865743482362030670438061530662443284694344869287344544905934895930070683672279989675297837208494129535225277776567022603885145007016960042475705283527059048667308440922151282362363923035040383042583657032529384661666649145274484662669574636874631105948061920029353228588119666791943799221522369777391502994682408684059493115401444142492605090888898512801375784476594607630486674447086881042028491396974283706061048281953705476074062994698613895217012285326241612632933351004142521676967470131718458371114469846495144541161493253985500934846925264446446446815069603650708763401321710645499477424137269004615969597815811876049011368926975704657347225750265170276287828203460190675920001873469267454012328120587911720214841984372597884398972870518631355896394705915787956543787410429820083578919820570470903067748472954678055658724736773946431225030544578487798166324403657787317633448880958250284938957580089830854066545707912008201840756952704019667657092600653857838663320992673502313421888603782296468560871891420728101580425914813478289370273239739395214833032529562014828731938283230631114999605218443326948754506287664581039301673597219582285220895680187330277995254640182046668763703667753434019394811023432666911789684370597188359423192511029792664087157312854486790224280532597793108969170336583973984696501373712763208738064851627541237252149134633334678163568966347527540973611436090315805917206608537756130653066592718288357493045884158318192669152704564700217284648105023610283275898880426556695836331216114701394031615684551946351146649862939957601013324169986634454343263803407150910357777389243363412971234183093930680999183562897654850891161002507686601532025512176993825297997559304996737401663391067336436077048231870448072406602244756028654664405179850120221918276441549491330189285727644268700901324134598724391802581903111618346339433993891749027948926047843396792545581738242191499266588438994586327002435511547637651015481948107758515881790774383796661191859913740221011733903319811328732331647729146945626251448575001037676183437187036847792557489725788760650185469172785808199393218072753027314702506222897162958821676101694926771711314922549974115820116316369545106837032475559947410948048008439221443838469096610433369714746428068923518322155530630888891222683261778271748545516221093415048439120997504292433342356783186605707422209894929150750084666249464147202340867865401267400647750940597195528593914945307281690574206831127872687803067841732002213499291306235888944242866812623075793359334284049834282080300200811364458145141851235447067743828091102100575287261285847131743499639357035172441574100811234700829886455674957482244535632348281208523912513271774633209191526367502801578194170742414977110004792504664276516782626173100556226390526774390788465146639767893764872337264820714714900239429833090701805025414621522050806023274447969456244789320457066684674481985077019125864076735020425358872211436205345895985339251771273983284777238974947710899644142360187469448667165287230104194642604239981769801559882305920734453261044044007355728329243126837792656261390582916955407066690757282463357234624967539994860759078961347773305965233278338636171496794903083157304513287736511530205557051268987961800038758543439842636552526166793412530331110590034008363044894531503476207218828311147005749395840635195542652804231314470033295284698858267608153552344245108712116445571505853758317974381241603168500554633600988239561063148323368932284697567151659952148556688257856260512383507240622553528355948255909427236011453911307440221156878253445740275739321919275767070005511871344701139248682058818614152765554397478918202234143745198504151479076444768785764976135572127419870126840260417606022451559989071294758598088767127237857240465634769470648356768029049785917640906039975984534891469209789916292329853324341787646965715972155926960930755252128053542780192702280744070123902101593394344969823858107986256498851500621626139622097920355852923510258174560513751354948751795631334774363443457718071697446781062836213102011416427002484598813750247981365898902814888346104282357587428843633243121536444157493576611433925007483380864531922153610416945989576172695475528958059733698003785226733459110822177663651673484428159629012997251971636486749209919732677551862036773835636191231364569930875051137814274677935567954853960674620630382606967678156174869388570918200879768264578340022204167624730005291103178424856289731889470007208907782550444041521923837414925319577826440369320527190101367919600809252617235526184878335562521119462224010842932235751739442069816697796460090646951142524315096292006965797014158812158998251798641181389621962971725532009733438536497200277214990222244159440905895316489183029224941211657883129890323697932524861337194936459931290189158627281978248889705384608381646673929848746246546558997660825491716987305602204984243872475897714554594378479732446388788368778258116057413731949336575633495831835707500661505048137318378379297716147522010787255872824907903490950594283527461536036010275495563761717243497466813430831828933389589602156001726450090078756556389343775900795492094966285193324767688157767112054600587908351975160430232031203056515073990276763798381438775266039929012704255149263669436977385535051745551020333596370325204535809307612475499215557323074531000148515350520415269644820730283025418045581455708307018737526814454310651763678976357928996523741715372756859371100765684678394653465098591110456667392818839286036053879910760809947429282891910445496429733388232981112898629944649951627220040209520418813462541330422086429233898443592613157367312303495954104451457941589607978147369613961438900826908929315046187115543551045424931129298466754248633567883887764481749753581240645725444807835193156897900768131646397978878554014622256573497354566499227722362044528836671547045253588940998329805427784684735739103388997985444708416543760928057391665734259027870125962115891288719754793017803030964436950256600475913179847470708290827487608803659303582948572081624977594231145234297118670019581541855542521995746248375309387402606635036299831169260881839828607249049832407585809562706547740432910587857020425218495174838698202845051200121024241832944296714199715559213133662146731837127085783250714646815720360272395665129901925803784765432169738311478223574026998395485231921452872003616965062860347891064723667379612610352036714558488746962677749394949285375228806817153274445971061536958113294336175251497264812961413144175892427469716300449378911929089443036175096405745576844626293779734783151455545953758355302180390120785698374366196386966561957984597427005672679827402113695308997418661077931173772940293781863800323060882699592591968283473748960477444555386025993015998940593835085244786307259381067056134266032189903247002228455342368416956251837781750994378413514850009336039092732800493373038569127827322473209472904623595957435433252707737853815027759874469502857866443307804958067501730925536813847744299919765829881058866465007379000291394765113479518147283569250116999408550371850898639308541631003951165742064881223478109464878500204853420999023850696280440029992377182755699422332793109259323830237832992678456193789843047138761140486644776067380720284547563964387677743062777277070514950576148634896565407689207337703172309133967741742347425399636223312633416535610788153257862117958008529218853777943392442954483240692587864127238459900441672000413912685835430133670168241876366873707963259426773828735390996460590026523911069105339097871626652954027207290006583827371679179104127133167740567946032034375198052655694248645927502220214636038734678283048258974625316886398558762452551089159210635873355053615054471268542777425182563152356182101911116482370164046693114154848434068111913534011527314053534449838634097133472096741666530875358402720793138811878031536726090039949022207076396349545516515855436731785769722557858458430926520683530957558993313724721318047276510102277876761018463797031602739517176666005582869317381694696712682398773039693216578786689773284431214803571988249032645912694504753071903797795957910293912082599702486170071479338121309883791675455375570927294643442871285580221183204335098284520385321314077569159756630200602351566960573378800505270012461781779490336773383483814472825955181953049722548949667150281735922077819241673876901743055438211113747285554257042461446042825622216682533219417485601560726757507378964782561875449169888444958066138306676737138231987767584795641795176503267103107727023484157173274295080154817937591925101964809662355998975684116376603386433500463673135940925170176436794793541506684273115004422543639533665596887144977781155924075940624893039805507705232072001836285125683014344076590290207870490751224736902898081659742521441195023274261421900430587837051058924490081784339336631182191827599239636532664296183536736362968330230649802997332707294471758429292730554110639086190861538656005394435677846775585508332912607104938238652176077360107318607506604659897833102604856806182819742779796993633086007462315884110875579681017151866517486326664922138861945616709368838501801245177500793694725124429617695426983135330367077147518764730709194282405120220081542075118481251696278109845896904426947484466971802985430483010242800222513129644447535136117352339408376661737128060243421791089221061129754674684545474856324503216509738431155448297770425406251349947368162490528811130252269507468282100052843159957170705119213930305350040482485194597466713080949653997458857457488660363022556369615716402012587039920676424577876005252660122056676024598963292884041283187251358841694583040864164279611212607023273913559454695427241374565998957008196261152669669962384603167526718642935695637987328333376501110442181790029204549861193739988329738574528682808566944912297687060594587672777781510971165955498335843309241378462946680597429583535249072426139571105402309749067416245623820661113426634033555328227738870564893170877931933070300655398713560494512323166807378915175672393959116519573975261429741226477514519420136702295003620287631892230710529731954847558615989654942498073770024046825452976578349200481201269239407308127110263496512542202397656364235475464055743012603549806468336431976722895688879842257797600662172924913975672216134059471279226726157051141708795715094148495358553407152988277786896373246558859827364342263819198671209763115551973388470090202793305740275222565697829577639991190110034090143526258338600528941083342511441002516789541390802410336750244505066914394256958013358773739292787855700936962442250817837400601826114820279380938813110043186157098147990656364908138311435032547008139726504717334695088594603358162369500716709879948595466917479560185513769616371716252008688529349407864674693344293119211341378953114677885905302063596769841172647048745372840951619314478058685915513509575178156220260352094301460005341266136209750863392785997707527989630445904453604189510288343728935293864312810641562431712260472572099335850224969938397973551210181728025724503614519215643456925656956480307442905034964010291504371660707029160163294646061616832614275319329056613345340640404581752302943526633430392635628004124354052568444003688413159999297912225989611476947372787093468878565746378458378753779454195993410054184821508877978207237503896252153471428979287859124145867459010614911606268502658479529741072759130597540406013442007639628099844176120817518598926797029900996396001897095554504560620595236686510348142807966639637658310037232569171453450658774549965398826766637423396457975580422474061483821751230061318873695797587540052262608760182460652526575451896997122419802359418398269572225828587815140279795076106276798582551377653392443331514815758290423708743394563451163673243934051274286940493055995670394304653102057318705506437340702406282366735065549119456036155891512096780579996451747953487890898631904840908055488716507739924056142756568967767172808493822588967853189560301979925368559804135110341047454684642701381935285980651202548050163757156034062881644939221401531894799741519061219039996759431744388524480039935247814916687557715883038374509484866338096137101486741492689068198603015696495813524829033850871857120680954358430444557423598243206448641636846174862853543554661387082498494423418093198427081403080611496527232018380121148116678175029970896195071507084637719723288598405160519029065661139013317252860616912750830064396662985666545049886543911333616879554633504426947752297418575472222446687141707842408200165891534411080123902703146610444183177272750463069721751195483980778455692734521834882309579537026497715127086324971892609401220169383075291126262408521044767627693924435628534809985238235336346840504386364627750927021484643907328578532689070024699615458254995315570829589984900692800945340800357894983163900140420471356290256436900413230897288025792770198654736736918338859060651900911012933100873509677620294552302178193637769706581714651355163694129143000646353037188124900152107132211278230456939624436213698637054738849596954468727268882554211548557397588202780334142619975720731871940439926473905892552266393017375015235330742326176851620531642762653672936594901451548232614443439227564998561195799223228215425339628082557364432181444728712450121193031841847362768020848338962115130184942924154682744758017500303716517343126497036622585377777198437663690582270914498832153920181617319231416148682661591326709490490908335173499239412093202519990815858646924355161143520599669863501589822427335636592588423405616427518284779954877791293809930139322387374202500374636240931360445709848319582672039040141269549096619238088535656171793309430925398713505424826050997046592057110502067907204465995348268661690475895227199223875466592730338629152855878647382041534032275963853591080440396259061734427042643983485974846297658486822400585570195918090385858734632913463372792637228352168160654202921317527846636441976570144364278211923032116903619009368932215780558794913123138477825650511343122180586458942940149463349570403321241353168882788795979883441976263691631085696711448891609323865055178006487981898078136290879097601349684127684893215386197742419970498353627630498881178552711113489699113286215768529733071141462735816668896029472187123160907592238334099350992276784359598123023212376745983907340603656482037682428041888717939170805852486315165091133475358641424657062667859539307126669324067435225689960064411818583796665887491809706341559716691450923310571948528983252683230778392146371414199742335106900659897222016981173568984139433339917709552547581157444343154232154344305981545006515100001266384257597109136417243574464506061313383367377667711969755675425478184148589751938291025947172447623962881079552858072075955994831589212779909290804299268257994483823925829261871521393051154430161576400437358035138428349220092227020223617969318234752611429158283592976210505966513666437649220208645599495833947536031659348478169122944897960624422401313586138221106572380963326172650830247323065031413511245309926676177355818116682787257720992395167741230860240116682024965406382493756400576373787667753251121611105671667876641998734260794585309415544324199621904618846093422335871969610793519920002211841322460989695064740589925712505671123693793032471100991683252287520832028707380889433353856474223399759938961450590343188865602120849318142569848526694294869131204281235655718833386640587352056006311884487467459837966636959441587080387489250764416564115733074737131396561430369790342361817853781669060840453334335905786961669040292604600081037857476570285867182393720824868903192246734364608089605228860461883932551665297379334433604900385945701011258823354967772556634405258075176991823977223717892815697228984555683744258126558950200817963134391540639286473131771538322033576714530184079141016663975591626137825798493884314697606041613387587621986578824740619387619327913456144939042842521981859541553256081846020246891617360023295939509802610699535778492262300887906222721718868137883625068521034315585922711686517564714144343068002271083150889489059214624878545680248901286280013108184174873398432115043241631521606345604873648825306449756657058825538355845519826227906659066461214699991180293980737322232561467448848392118227661406174507816631952865845142596366159476129383101689532048061869473762191228386804662768911243952299240833771659251810960796389397083291207919499483302339088801762656712325921725777161662821738143996110730216495312425946071909987577674143943696998431825383398908651518649648237345038222065638369555206025772140761951502566940024941903935282308746832548413189918552268602275535108498162905895386097160044430945598704433239790803519423636916276490515904626802677264270884834115158213091073486581595498600539223989095548574285373296756411215609936002264162824383087404638175279072129502817141345918668299244955387884149322478515219639254857123282542904184366395298241700946646328498753799286890223237115489922000172472308925839836457305208431485020710907049181451205665128047038269369014818910081876974213686075983148748704543457985821056803519269393145270300804871254679428624275321080066123927677837343662226280014885319159134773210964276144654742924390181133763312555913696234773462344950136907452627363508374208107934347864321423608645300293459076292237283558084680688227277796668767250871916707854230005057489434255383741623939637259560675262852328938966256451850569111854161906614212320871835954927266083035071080550342187758044889687253309754489711352201839001130795247109742732034816302254889784840876806107345203104431326635183529552142532485581308083082931000840508512041223380997305700137477826987977779296603941174941553576556379069506954568219239617334880559517594226435377822226737331901471996346523955608900331505651873828805562935666596359449908784108339364519445211316781082471499506348823891409780493251086028818166993814490722099184431760396527876792301530950134642833460283059600320977762792398201076823753022236860643742225596864129995988501328581249962488754061183453377897989527307907521172714365667418629568446128336167187224447443469409052796808707424795165531212526172258371953271093173259175078737664810397737950732574196444781887526935764356396953980551620547953296629225385534227139468878375030990267857315724576920648240798809192857497635567126305236193803595972243495920465356875758957344305587693730135412036979573127841911900790357143277899313248669764870624158541720803991336221178715978757030463916415805909435079786360256067850254282847856477389708700212139874850860157954093580608303216571093067924417490600099736606225044545318156410726430388130542887874538518977775494606125937044168737522480677925968435065625637277509536176498531519181424080247605403464754457463379380573738829715138497093857393652824448204147439277093208813393391294458955379325230358865075499798908926501796620102042340393949394944787835978091559558389729187599418523682167963254677938980015459031218983955791627339900034495872891925607418396212027765016679035227351705387251759573252797323695884462088399257464123258675796290868872736890905071570076956670506620271001083992595663084344175629640718082307222603919501170447910284761668975516323883527969092373520160473958109839855010455244071898072209011512019191521458821717654776734248979758529390354548674221143992931461330022672979349236237978463661074068619604695604087810065115329678314142793336939662793874899498787867707157981878432178877763164283509125118242033003581745797076065219087332829180931186731304559146616627512570802980059343027204149463256509736312990772206539618402936640132943629253818181250953479929975270390448929091988765332784844108454540271973723856448405986963343213466159689922136846371907214357078664490366810748974450897111354798217287086013014156323862638771425074076936544009657692264103794939268285745351208094219276184565591965955750117472981354072083403196945871021129217042001139853315391512748429714029628427796119909127971612840382972896689392820573874220180841677057432846192950722836001915251686941056051718539043050979741254637283805246023110938487131136017000349604672644977661918510016066074329127749657903799717537676005904966419279717080345522490746338909783374715849575961224682894422603036216969954377461323566152076774250620432747114862372303595607188800641151100768385812170761168797174112225901297599301778567973864577492909648396667762810253059365833889888531874372034991330594321235288503914769398780777527501602865568880029686407709875801506845261641318813729511235386141660522583731695564462073205728006084909739221236821118831432442429972548547793115450867012189817006332352514446355459003583692981927621772868269192843146286575268403656337548872826899431723781517962137783598041374680093414813727808799027864094095163671414400014436746470221936186739572235393499088855248351386537765774107458941944965662151920989355288821428945783785706751622980065173845594196445554622778772422093031578143692355168455195894382838433476838140187132479633951330060199253785427047404294190127722381458068209847126991549029399138748752249735330000534900686623784752343270030566328185388694871857474134664265949212492356921301733306486517057481638390713664188129180511404292825025953974825689956062669486192178428858523431427292013849509360443616364896758249930130735316785120204504138242515248653147688555928112909382432558590515745668195000788086378762838867536224303361395835210233954563635915226245626790133532572949740927544794850125716217405946973830234446950389772687424372558814752858272085653421984328970575704416523746804976651205188698167613477452716108420400729766751199276106816117542970203631828627051806031407277783678670586890924581372805238588658167503456746897195533287454431758536863569109543591030095395299014263704342112213042257934997386506312144396927409919974811377767763909971176078617035498492639767012302426326784980583044633346363873081299577598449842270508510817355073982670813211205359439641939843532611117521122807575657767945446009967916874349757496228266226404541637681967843409448328757318668058663814272186882896909256765120871597936663111227997207724603188834346629925698572947431010274550495272114921145445957311383833965163049115507564525153798522152596984251937405531439625252008109675082249186707804506137564316539744564834189368900727598918253988482739248069015457896694591087630464256397228630535526431108987055277560491158776289806386555017234611896163940347753834956355411265426216292747502945506506001412868524500074405558787423279245282791314930526097011133405262189599900093577052383432185270329245180697056253444532442219611848063869592307594774256625166596192598060567719289551769349701168917557976402246916556548534680180754498301629443892456644565668032090598983204165159074936160614343068763890516862853279371344675385834805545202285951581634238557308360633638919247316272695972097752821652060608987608964264765334031968699996337722206229234483776596047273741040931063661104339273704552029350697982926809105599367473799774321974613819943917964181858718846174916629026728432969686090512791520784978003834697124116495297899657735997122294518720160951505140104806011203966621947924421447333908545752337399791459002761159949069155237921928236647034818634434671036765657425735307070998703536056800254101764085221713267287857638163955305541038727983944808751523924557992925946988525726485337230693613710508107191272297218599972192396688101906780417500737949028019958306198857630151216330025621517270185155200167122760108657269043113908815068000233539395010346448575024498766141409357956927902749593899551913063522394649949792812877207150029098031217623374897907446568412015347695434269394547888999231741671168035704461499110217833732609438232723816681875827696517425220822878564057919815854132208369403690058500687945445652207788534434125686611784250349372950888241488474881715264596761815216349743332305377314137092855458086915607884080410058455410394895454243163315264122239362842164933438142185060645690320707111954619421058354362881087076154719244798000488690386865030411383177778588341740487955166530282639558486040916314344746738377414826405115346350418973120999969838957019965714170115457038894427323994643398986742555817126493067550326620335075357877954017275748817661081549304421154580887628862385893816427556510413535081877594100395289726448686041686776896095197596394426598193516712381124495343158869189176699466955692445526896849219620473387796140188391124843997024409382796767767856296530668779989006298064167243162552852368623178439751320308103183412891004320418960660374736587963401577842573578389945345355575306264689374466013198710860162649362873976765054024164466774522476279031540800849673358481506483695128659920281574320265427520763352370333312303085676805780647621756484475428795340993368274346150157196199499414309820053644008218201551144498640372775839538537630044156969469568062860408477172280560279834512405235045177646990932497857119149072776284209322288766598638729236600182573687898767371163568449990369466970719657763985700095491222196888848456743184771055197333108752360715426061222775151024510158872046664963653157716724049137097629442378124824465907998981983391896648464485863683080158437491351737228743750340887923945686435668758439942141882902012672768289623985430413051737293042217830797115489990391280301263501175426618124963312969657610891997367387680514914218980865366571419621900367800501311686686742075562481936315754672702673259008696403003574172482737034704611009427905488678463204657033084623210503585761771723534030612027260543730361413489230492700981190799748007448322740801614979841138449783558307434779437454838656584179007524896891083166784747306435827927752676799326818117820449916307920270790986366840284662654626976302614846122312237263265250108702743309593900308785871140319143474284955729010546157162231977346831474184645826044225214206121155896651205504713031301621207526917880909460194649505705257407403788534428691409629414591902485052147766310131057869576263738946368282151496375150178786197825079678847848645579138226278232213994059324490980662918097998191746071916385930571296629167983288125421439916812277419874088553578095893073882241436525631821141268184674007358769506888204764292318525461669531184426700146861782303493038435998689507417212934043154021707762314073012974998408305660427716831340232671682830916111292046831581837214339741111254644555447322549722972809229332470903884427430901935956914544304303116517699114179045855479102498715294800280421408692762223504447825700469592808347679391098815810646137115588447623913570623722903490640647247613948463293627467641151354568428169922163459810165269299710368559180057512040353104576680675403078216894241320717427536798728606292874462924308759844995736844265155116384884330049005301447446198856062976648692089374838636798841875983807333538102099378794244393622628613025179074124367306526667670072354895644723061307640014412060341909730768232625712943639909445492450921251179896240965906689437035175135911005278599191298749467270422013143039426257876803138464314776846393751542523694675710971144795804884973930237600597975231409811689972998885865311006915083843888548105417602323182555756905373868502504703241073260587548942667200869745554714331830985929004770112340450450282777447777989103061986178304226437646322918010929743020381974987740731712692728261185407779164448893028989533668682379858938659947286472966208607424816670003317765109057843537160010993765429452410844596761034636618969664950886840269617994390765602885652728063972704542679826752235092811494247306368572915343582624745559047325107472732631371209204676586310183128513985092382395571449777023788146381797625743516717579149306039271703299491184111961836342176676096063347556232328948038976744255416229006166927737430541920598129674063738786728835417235468177589138523794422726768555669693037530969227117459503371297835172529862838594424583791448973846548333570865341815749261234835111108041020280092827732547158969951262371933412664432412783913376204517032499811423094176716202726441766983766674589888241524855428393747081421293040192774611852601231782646049490591579192841590652071834053066869341767701328836761236220297184224632501755705308067711244237356655833279059490658821232633134589151800225515723124925658080397439197976662312800533257452043117077015311513093315552930630351889710464923240281189699285570882788339185805769671411615892582840977106459118121569037033611057689237125730401666222028472877043753475030491524694576430972082129465160076536296445447851479984512367539509459686911115532485052756068038400382640109953789175688745663004050820942639813633432445634615893777199046526664510137485090427301539398365014786403081418381008504188591788356538904356721332769340424261388258287432569140890309022210646011762986780990440434938109740204795671453414082547345165356030987637804049154558332186595957356526925389426049515788542836975588059729673900072664223704972197544815012057775333425372432746534417916848242324727646405772063394407857393831183309589623141533663640043991780176836245754308262247056397821854046709282686079888901678223860455768208398644632715663583729101182551704795399681147065900778078638971632628781405859242087243938137292075492799020182370391551162497852889284690642757251733379810248679665161644943062511612977915546770342184776632460332470869326201661784943489132990860001418025132059185688926843833576785760223912434741574378874859470149373692430842961876880933250488336076840029344086668204160362761607002827320926901184501944043405716881916179120546055269099374060351004690924931551782786955795403938728198940451700424556329429713202278229674253784995883088383678597479007068002551563432511387119939882493950924639667102238941321594593983907221733440958397343362229678817671048920569439323962781537250786972011368997044063581155536180923228093107839786760501362156077553465299857258796281610489911069875563294138371738318374959185777907264111106257095589935730894513363552888945682586612911509360192137018947115571022894032255808719314838024987909674888123013871133196559815582953566810178632433767104379977919271256748695179438889089245679551203440730660352190312662154512484910771365352750094110407844879482375475554766106868757751290254758025183326672768943089020220494683649543874557245253918607588543371520990296034163594239551965683063476614281761531587730999962871636216946673617063789519480557141071424608868432430999785790713967735090439147173256519995280142973154672293577155204148162980034550824011104059430922049104344873855208960808807788860425872176802685073959390884384392100482151684996633856707345827067883192805438389198285685017474711750808924274027988058547751015626374412639541344506642696926965704115888827990124651162554470572987204325492704450125059826585272392070467894864038693151626834468191310123707368682849034694277768078892813356102462117617120207062599748944058151499995543569668487660894109402247450295661269665889998510584807499752365758041323321335878118041590518319704576631808352695110446292174915460724213363113861985368581200025842747054338844121887944943649976689328901954820220901526277063490998485603496345121004648921994046908837440299826446570840155036642553856932071291321265419626611718270631171986347048972352810753303561755719135647222893355776671104037727503995143510130398319769699774373537040486295604932493174997292066955581511337779400633999147292005962414211139533393402915293129747430729662189123172437230290148543196604838985298252103159106769340720174048920900746258182187568926951993400742025334225896069983616285707539489572859811402522840158239005415927621974408636593604349374778774199748650334904476260578832404572069272584496273779879294157484815364491569454207575270676861350297342017870155390720963784397323581914899052689312290238807832616874891018411123380414209310422540593538270424674797205018051398038957829429363665177781093581608601771402930446151551771032582768883435271088194990029632211619050457319294613469776225104618555209045599025306751658244969256823968573477119394116640396193354202996907417966688573757758067998517455531693648178062713540733717777248628525299422911942294367202225656074279051350814206839245576368301233294555751095634114563793830306269944197188379412760454269017199930660176093229409501558166108705724326392564611394561496013165176895941882891991348639212539019003788313396187917394847443871815309532242243444602158725240549458823165712850613719224560754095025214685578739347762854362798872923451205510667504932515024021234542876231446855477275981972357060743173982589189706056558581716404948343810915336228393919891784382995715259810045421006589837715925065268194909140316034427744589225737316752992918146588940699575025796288678933475308163287680896527194920655658654711338222768095439924367231920809841629754729156925810099593302732601344821885954891983066346122458360362399396295316809028454547519669068011854543202041078806855141931302498071427956148099617872738772602278840020843683713697877953330916148314360752381381773261317524763820532772578703068005402148951865645674483324874452717950432994264539426231319810920409437931728727361468660308094189973004290094860056155145541624360234085436469965277442943676014598235529087393589164770476032347600577606086935264001223466254985377449660063199359482630283003833121051788882627866124103182163279590212806984032360707650145765547695482658775450747214832413728495623592034552776185020825721885438393490458545715756124805034603920107656131817066523600496909059004369098371876082607101033130521395701316603536267973068749441508488558751418203814516491112252102041587971834525041460032820764722213341177649448400461025952773968246994035510308127662845280157019537881029055519856204627291563082904592062667703154139167502097233593049704752888724629042074757432535753679405966746291501549432534807614699699854876444816564826614246280122258264210281946652463892744427041959061009980264777335167101339210875946705077493171691494823075954295165173936959378638524661271596224467905228063204937319524250302899964599971580618854797316248596475178416071529074078237002589332646329805717836020374176302472734769689135825910776973115121729456170485028176362268337666633887360558276196778753651382726538258032157191361525363644301011280374409851810782753926367111724943440947831201525445321942230239647482633112693775133303052435033077772805098453893023977245265121244635706695522799548242507652024361841394217299113657912321019714015272783050990740582875390805210091817801252350411550277321004427770181098019528370756415951431638515994148048602248615600165089267142991899769395373824279344988023150907016929336609829242698687316040996908996921300101237314823854433011281338579602194931719352926936730982949298417021222090236850121462406053462780096349180980618947622457661087083119944712672126319914965435321684771305127060290467154643635323892875989744976287824439208190824101983145857496800758994883225803900527775037260449028497719972572624463886668405366755093377260887363446257349073339966175593309853042945817226268412016687134952441842951786331392403851058191549092795541837853238852889882720318247392862943631116509772226740213641650130535330608009363001738162513278312542654309448481071903020804336449769879730850599684313201069911422850592831890868173790798689735385791642902883372192535345646601467925721542070990940485915737661745718350426073621310658285638842549983305997739214122615477245997527951979003495274818772450711780164499369888734570912856816133597418107742437709896467093491043029754396206659527552583066905808210076929415784542085410948902929256936985361542370441329787276148853309332857951299386260565753634209298133569240830820828876932949188011071182767461841508306691216026519929853069375627583164288898299021025638249442919204138362004431615777105736023372674662777547194334244651357238802719392067339525751408171104930550703065316859898857350329610227341029196241686063158534736543982270486448832666144273614790329924234842650795087343547890255522162183479424840258127152680127233178546702097122120020357060418316179449441309727698857282316041733275869005675663408108951491576039509552161609216713153146740118080166535993858787541808515999327753540119226147856909784941196560873467141253766916111527403807460770977653106281433889808258709216991934614569933850151844396126067946362946309987811102814955914838416536795322745509813359554115717113916455229636263931299440892532736678853642027188039770312404038400327687384900231515265784884532813648238778024481720211588691079440448859799016218449785244139392379665305276335152635631202422107771124187771540933435524575001028753599472706483883460155652268910190732769785881967730659102921574196177361546630394537882546008516395423218907008848900951601937943775655028957328691945390047413874745005324949581136903388619890152126639211120556141889065767805930668505683281992868363200748841107739365928162103703834965727689663458113902507485380067077361978748075086854667251486021226901433280933153074099991744983158732253741168062754816068612640536729717465862602402181374656856934645264333247268347976716509937225882260087564605723804703619871267468175531167485728628074404746314526707460869328456640010735072566739450491505309187235341485383320121353396044395067865755160596758295607549175582937420161445025147324978887870346660268283737827827601710291767797226592470582153177226544906779594781730127097445327177583753801447531944549463489512550172906199120183023480289842147605527403220404579729488844854474884632952991822237989393625790898769044108861518395566476644639455968648433784833925302184544898328485697726574751819771725860026852226808508341559389915783392105459484833000942955414476396861616490721314243160216559461980817213667647668876972532783081006144500248597294613170182148724906983108461111225858699147325400729063186079919303426351516846754230079182906610825474043838277390823986927594713018613969311401842899399008650604695693972788663581354289264913412702502996322708104266391402110047424851466478282886762602655724322412694859245123627597449755324611706002109067466531281458361568903766105708953626326307647558148006516857979856889477620927323200441341320366658578517376248573110324784893160779862129079161501140451855793743526404788225667060054541187364543286199321862632953319979534305284015200615225612423421280026268461103744370491512093536031202071778226457371961264667318389374853438437617971741644254051287675705865268772998988128834737386210763588705549718416729457362896247433652576268501891010911403463999278428955738651660999337897541527681849951649067097025595481550577038176000455695347655008406396768205307065004538721778676708536585254519605674075484755835900407392958138444060120158198454380385738198581023319498624284496724756594698956131328262462797663011377615726631150410413309599038048309670953379726877297371521018162186583811124938941833677841067468764635128058839395140673097011067068097778505079303918019429192994527388714548245512636995971717321894121718837456368782118358531976583768470263230480583775805844803243103852534028598184913543566292076277454473273506198498513123094339623371541773963387282278397564889716560069270149861398719287803987808160646386922411922699743996233976646901370456591709384623276065097753211459382832912776847872677639742233805750062586986160514417187959873547061919514812611318111240265176453131392604075917557751423470713867637724617344925145349330342087064373080263613325169326427534453484354897375952360170215929017484301335525611691825748434011272156494991538110432414231789159088864472242873986645178416309154476229665417497749903216122812019711096648586198672720862466764150416703276803470643501360201903209026441273702828468951805093122275353338015117966605120494207596805124647212392025263270007023627601716605513736125293650249524845348792809357186027242065909859204845122910672938095907527300692377409390495126070402315269044246060320557169019396265405814134204126310572847308585750045041781781692518819605735374492165483962840684188230648180328839376838172275364767486717396736288067815690230147662024419829472316431300192847480955448212322593795817452988202447966328568113219419034375964783976651823739205073259485992684856353080469781812527413423359829202638132597840395517158348247183851249339047894026896772959218802401675118142612876734940114093731129208716099882811014513387650366561083175696884392904338506646491777090151991570161590335409582688096687148115522789987988520350266489658104941844572161128014600678665381997721066110795883553620454530234085530280798390860454998965062888193442965791937793959990400305546611196105558534505278777483593637357520276207529814069659937236105301924099236798607364710287433337190835674169134141569703197526220557757566033235299501264211723215858350441126513802828202404251407601818138369109879872619433611080036005500062162132733284261784861050400071169024623912270896263905375660112016225796702917520879857995385152429906357521017752392361070890879830768778668417319857022365416971524271433394962801549764528884555857155767137079258570113937519136818318028335996296597053442856077251931750442066838676537743254745792537996113327751461416343311298385299310400704795204522131371734610172458558575110090877568362666683770787269828995660035494684642095185133642283549116074289081756458740542858889008778622463363177097786179959205560771519563965561427632057163211057922681104545565714925728995467066673252599705208192704789535691937320134152148662452174534408546768350210163680090461715397987353242146788992751358968218387828744091561752619280581287134275309138835597858939238720949087507605247955334700543963786647543206786255050250256158857942111226553617791544470220934375280379512739056621298988734145821317890296200429734163326753723781004699299435772660709375804700799573344695592692395483885053262311996826750958220517830301278680998881907140794820856810137623470068658556166110371802126115966001900601288803619085590027120312320563246579189302094102690310514459876494452795730157121013284619676663348761689971990906304806100046494846516062409630960379983202923933801912775102098663212965678405353992140487634266857487250641698636089704175258834176481068787793280560341378125302706154051939200127381468689110722395415701924595370602378471089495720558835198286061782188985540306301515588660384311479309156021521532552074073153255255846737430862057334222230057089055218437376374751082919929940085147670930430234655394487134503001693465962529085090598537414315159923281395926611530346657411013487865605159488880817684650909372432083236318210259812288411404905097144780189303978405346337492944516254508409666466040446740672724968945765649009146710166441537427024562882307411768142915544984186714312828540105892296966072143608475938598226851041228615346891624802459281477304489289627895236360056135743141379833861184731936288992485046844395479432222571077079041665807470543316037474259143643837396446409830706961827469014006424437369660221938490232543263074527713478156957858285925635906248754247446852127314070444646329268455419490742581752828027157749209526423978971497330424853021485051756126931730357350374916598281670757082342250887063793322272593419963413502740176158868764205442938525723700664654023209227017187132968989739184555434903376896524503246282732494254230090822546343348460641971392960546316290932216240486403653490248628936631595974139547245955536859270456493574527599420559889616839043876546639528612983741312100558368621882961742616317211300138828163328880751249666803121075781592709172842850158076221581103842344083285144295435789860952842927828265807527835394089530794730901231343761730108432942805210412738440129770745767004219508604070919842208657392354431006962572856296288077724822242938017649589678161014652980752946794872952650575403750779516922544945920225934858095012785808692331404762309266296346167779661015839569933654465869830257146006925821672520862360907279049207296343479393684508810144256414670487162754906557600527092966135333267258325139255337782852187055404635525381146257608371043954520828019546991408833772858190593508220279706106372444659313894225055137559724488583751522882796580404515574621551662980623032757922095338050669436228338517115569785155169237891953601084430605966155213003961175748740291585293748921260266316943879525709387879358200718086934307303755504950674346211463049826733086020939613136842447031356169360797233581629077940085270343892763741724484877692984373961302923450013024701595270132270897630288731802674837963802528095367826216038879910092062586107762550170179264487745761460202586372297838993256216704005168741433083080619732276675046914454048008146108873649348041468624905898679737507024751045293592525091435947969136888664837183109992040339259383941488027632179739445061460751247774581959788476863162690038605498641079400754321508847388975084017675362873688951280724180133975933227344797641176585374009522032156704540976671423295562650209711904118241544946814572260052629152076339605981035927568731518080803526731155453927326097659762387587440320432330275484404602820101644000602267460754252437252562921044480846979471911742731880496317035217091708553575338904545369281253940398094089257846324507347245820752143718855338590798174610865454296674285896030347486074168289512299210319833511906705580054438023052764163387277381339223302133855759868394319066528878912818576886475400179365403283189464149626420993900451821358595497731172241010578255395526584700193903818900746668223389151115479244290313564856023113475797918975292802399160990438070222178070740797835508340172441619547053082279531864332502640269406333026209608446886502250572275739452708857340497292885802749323051964300367679440479163859037797686276091900108691978829868414041937085004678198149309144675627307523494726455616731704021792651585039087701378554465366156350161141431066439865806759532443736842028117425804838310865954692930606527828837129086879631764140580943370983440602549686302390144646005179824675811199827680593517418909885174267460680978452278620210437110675791408280267111294439973899305522971955566004894568289125582423757358194076653546333217724189943994626826121059380465081033014791191495990444127688385079911401291857463422381671917667484060014591517335247764241031620493300819938934628666438503864261431873264768542734095171187516645922460660087277652984294313162394001668630187321123845449879926067543781215563912044504907288530124397884360564653080149067771420175409261511768155967241999787705525984165178121098085423754210451614830707855396650317170256013584644457386939211503394941740408148705878089049960478120587461395596792611615705283463545236421254821232055908420790163100471850451858774477524349355623014332020003474477443125577102283426772118951200906110066923508906067161322746560105252762065777918671545990329424820752262540807346467594691374093720757452517000301294162126450899395212590358677620526786610036154694496177203516580741048205725032365317826552546225097720768677329843578408706359207981156599777574091074619396584739258486615555229753677940368318624704063286594385085034215598524698181027085200065422916332615068024457562252192497777962231917127226485085346443384041874241206243566617049608671610411516588510151255378869143109629913782035751376384184015956977858679063307181221048793372056911771805567319908045891485968775145981626328254681110357549210106895245775308230864682972339728325667411190066553777434871148107172726728845960038548727425895829476357838501446943901651746285878606854100154614162932424250081628767959429799862685275510408288890142583812029865410297530921286388608540254852184295097583455783463723645982438562808947637203401276651686368622107801946083884815036935605905254807375890622344573071515739959875303010606955370102919767510478209875566555697019185431496711568071384935226740887110778642911224593205484110995055351766592024017780829583025403152035957699108299475059704337741319558550502366263868309211391046635188233123163493057067655708898611982770500552681830791955773531347219012478236249260008654158299837520158421947806053084655304561198733761688420181131751734350288573100875697205065913990478321677439975347188217745983652682342509787543292380920932443827153514950680245957391663309111582472005509034315796283690632811942756196222190214259618987050204725294559329337574489648789987651426380043697731959387945146760129920021013061390112878748614069267420763562789736795263915310143592451381153888170858923362765579599028831642314518711273430755943854860380160248280579821112821095395584592432899801528174859027492769882597121003164020763683001300295617913647737343019756374401286548847788822316919760038117846202198346984044341735639425207112106276068685766281277293443406365350930815746187093449233534628526685072320112052616820358674997543077493791007910112711004114685295546997910857279893487670119310131572521285400096128890070481189958010752829306236266591378438103806235129409729202362540155483449179943484183628881487244630338426348174696559045129144154692169930481317162522225521704319359075927158740870854974916162373856521117755916928549933773263138822376859143182107670500558192926008662145994329524370821654262467183731771368849937538027085639236748196004017986857381229212187654727486250355080685509963892791070558870088243715737634367108697744105287959037712381669855973510220400930780357684656317904195264714956809471244320022726452838147790373511250730414553551676574119622047815845797742377518592087812888376255513697802209859544909777521890837256885634321576344717957319148115843360635064141894640597299572862980048992068011236038970184057243666986349692703810588421382112766977853274033059419130487211044953076318431411077417453902990819150455179926120237191194733225616639402999798484735559015012964536415040241051094807026975322330872313587839660638859939195764665879789262080256404586762404112409012696656333252105141265215289535174752345264992481936649930413507299431239460122104861877422825729767701100231208596403711628375804626220088100673883412870931013148761165170919226641834279673755701012487635987893046844214884468446653480690278955656140938645152817589905985166018506774045112815306677162001858844005051693245775093844703687523008317592803567709962239214218164057121150725734261198398584586529665095628213475328233643781563826867871941965300693739239016422086567174894628994315690080072796161490611556949153508669393796228427853381486735272534546993078105674456694061691706692520774524850166698956165200852493666954228612080490432324176094821463862156793697250816556931542672543921557266381845619722028964591442032031267363050534260718196465878484362430022780415554865709432206779942187888560871990492176705815917010958834484099811830743453785952098163526982286816859495122340544124481847064970102125399290278059649225008047988132795953384278170199126774696414137058758020304511769793896795341011875306488163093480061413655552144127043982776011109278608877268624715920790452845157891391523527881866885301808872304207957364002755096707888862336142344051503132455793233483114102190127992835456296186776838229139900946772191253819938368100402065990960250171114060453868240508712484734953772950132228293541894306642701851121675209167682213260991963507437226734282583845939573202236461785877533525274842389534230977963158673288818500883974168976998093452517449149748228371279318845178933389602399847517040565401095798303264007528096172861519101236610612407793429885216051211985731270083674864913242536017038369482563495851207703279991695996036415851230666491524397338556950486472530918569145129931697408241738037402322111520042128049996856712737301743011110834711208541200097437433999512537595939374934516519563807212258495605119210005936206631318952536316948735813003329442510043076439715154448986709828712780681270381304484466849906205318372749590052347940296489471387392338291173508449200366489561269355224225272825169759589203760822937754452174474038593945410435940765140645376282858697214529169662100703985476178429932364626171196022826002974605765765061869685826150865252681685072659322216464086206421567045122911403885065270218671719370140339437150235355413254346558754923445766534863488575246963397268267206502402614524497310986628394990500615799045999817625443756914448518899390902231327217348547822576271368598838828292150406130641237994319040424862112169704330642711679776079889448320639173103030099251662436170563344888387890261639243771846184242860526181829673210241485249101347518144645020401798840551010803131311256010463706600655964009622253789070014212046859794533964528830842529433634532100538666476297662208045788365297910956671226105730800035281312351630889704041271802021792500921032666013619801617339074160458061456391231650221525329281236617561569407674412936089969105673872172643280199580492224186983928812726690237442875850310113622254204951018549720353857961125278266118072702985609379497328280185314438847583994040930935885605755802847497985373827308854564812356067718961136098900164380169794376104125674054100512656738475277403435667494441749815512916151943356702608567974410099914918774401717958018365461700049341865499435296074993692296717176626371739094410365052679835330277826123944288229212304294523869223277170530403550963906656711810354665082175458041977855130857582578604060452987003349474263574537820904787006370558959573533922999457980149642024619319119108603746598580230620840048808768040597678257026011406100912194551430387884870143659475990822474911186817930119736181624891796825588946319984224363912573634484637876094953617456265205556552661801142608431679468233973594048560056414357173006988231395968045560979218812632279421003678835237184648263774695415204358985705634948337809608905749902718175710101190163576751630267864569318855871591388138331682023921278604525039193959210997861180749938969275006740258210088502444288474875642778047277475801294885042120505619399941024502567779160108310338280935816820295146873969442369166371232904686444923019619058553704614220802292613990767025937665207786024831329314804767667952986886294351775925143891394679676354862375241998339438942186689946942680061961935530680984107916743065630166070867625697494037505738924660224620399792079532524655088423641994999081101483946825699594364752707209380722816050665247388445488991512707443412857669079260015412208033683489594426479282997295080996251012309633189956729718442043229686878876053071414008262034366625210063327911838479758897989241739092929011481721474795267739441075585011907311685134512514707619144930898223402470921759747990591300270489548046202198588540463838005474544101514848902736808222304189181896547536488005117325931317683638692937361792926220115454982389522679094144663336596592059859895084282661481777969618497134211806456228655587392697665906237749479315431583836626203063379607697820526424009926583389475730239126689144579222456122246446270719674837482189469823967600873356910338325640803354908028937762358110397456627891476593481209537282739961594567941959188376933020445325370432834319674336029838893916979874364456770863791638821963358937630857119647057737419309537212564029666312690542932058022440799463493538536951001240536419370393707617038122845181853440159278719373210910656940660622999315343183791029648720093344449590445955505603629690859829744613829475407038232524032384015483026143826465556903012790456490230159801673176414727261103836585830283349302139422390321752937500112737571040012574049053246925314157661789920018633315144402497739662179997308597170646550570378529482909277277554686954727338888117154526045982231508160732369630904617024873759750751094981994621554471357647700941082142334889257273946460668368118322526979247561659723952881853212545889756627000207421581582284990572378986619413602521537122160019000197244985878216373162589201566903787032433852010108962197992046256309880408750503859576299351386859442067075051823054393166036415689866781772189262028614797583429341652950289345607816433888127700487485281246378428071388190761841121393630400771430257621094486583796525885702173967781664343754851364296247157773789668400382543070026980231001346253663883343902284440703752718534343801863106218379266346165514423022421609969507129284101900834515530498147084922457212801644494889404939451343551399718215735041460368434370885239459836332413095989775861339495547323460501259260702362690612295524062049874340490956955657740132302655255923878659175826418510415326251401661602723641517054086684888146377108567803437877471359202137861975765223059247333863932642645742047433830044695693585769878715454294514338902292723897187657228762552311815706087366556322718934081205675222226125922067307257820799190083474845265381425460843622547154056407717589007876066290816981745143303221933845602495923783390342289471198578890574492618539459929206683301787989716200738290260660438817093163015564584596264140791914718397852709571816088138101552176451266425564942575884950204839610327281084071709535929902836446593471060127012548497073226678874889502139314144077852394694156122361481050433059375305383690133992048697434822927679265481027072520922188477457533272517887567200718544651687088926888566863888878933071858078050351918461781290381560851869035037101221624432722344457969898841717477490034014323546857716295623241801252522272182353682244880560594239263481063198820061815952691740728090935189806871678187838363553767045650403807901802733512895708595417200339904692800321690047500224607661197233921774898137748597376526678499657652748530545671840114682892201202828256971062610257499773684525065074510713192079141861229451119010294278103532459546128082638562399319726544029884355426675135274090242579906870663128901294512585091557107317135169048364309703208794895058921050458165380787640547266436370529840260403210766991067384572418479752588430160035441876582419014680847683124797630408950802653575050510223484431541266226469569310452656227918268811868208981249969283663310614010099108136460014961373321255196609876537738347898896099393107687428032505853664278616489716722647749586014062400885288563139140667590962531494975647958238150428959885827134365699249700402791317335990246594093138030608295029143439779273711509791991309883569586236254468226265596060436646235671347831569931069382728942517382479921596617603999171216040127204075334700979811825285669148462264212566318075324098729272959990902192045392889679845450407656666979317592570819504908210228339903197789262185522562469493597141750360274014187060392796833786592351954633116202357008182684092589062109985057397462620154244894515083449581808136563574187243938520066495585971135650711586071165137564221711636786324287303146960392294075354097092886549010149045363051465341255951676242209589210059500876143985063775625774109101135727544492274726559819420435961061416319103438880503738598814291913946137062624230205600737627687959376786351180017015588359176818457010052544458650876303076248124294793744813186537411823831125672541614929298276426154707365309060407598931079764754005998181946507367999914878365255114423124124242122228357127303457130378380219297501523484186400948576951840250587838803151673586088305894933522324407653944521685300128831989668901153443993980439671013174343434196772024364409012664743325878126311912310847902958154663903826290818576333637099032385271960131794668864227818087160936943280241822821102076462715365649362718867648706230027348916150833337276585562566360755164347999174555403039316730490269060115527336444674408194642447193368113549026490345704508145944565206056705961161371360801051598193260928730338214027082177500591567075659770763421355803337184474410834262649868753442212437059734767938412294922164786891349019837126623770186586866263574422706233815699268052147166111563828507249894289599468594451651855117000530958028134828789759444945002147362960598423320443266860748827158941345070617610989107023630906734461644300203413938334602872378391146820919180402903556018390984980992846162181794484165023521632246021549250978417348156096627788722465898812986906422923052428072029958033344326043302434812531528132728434255046348601657488852650966195540114933183373103405929081337028153175565220853277627589399024960409152883123603610117866583690765991229154275528444281052384883013593659698792997866621770472759797787862228158829476020052694601052468418764907084293458803587519726216155109099815810688895467569701446485159215806213549396441716076300281371471106164579609951770696823727477948335334338339014361919567136723277476904557301762309276133163809309646220608618187251351113308090200056203783308288515324086445928725992720239611631044646930564187926172942424504380967269535045168194474732644359377620755597946850637722386564642094858317106813945361077622202574002660780800515922815700722171286867657644446401407228449232629661068858590959695543638059583538501715473523381497381212045158557999482712664257090500288906100379941167008326150238236158224042574518368396628881410109668802373042068383072180303259884349950133541381419563181248742816557074718668220098941762459606884221558896281090536087348206419213276461524990360528086233461698517662921281289718437965831664711234695756302403249613624599252351320288118676165984136735682810989856509649875335750713541831454189105597942760393782957032684407161486434557857786640280838500978909427095113718693505463910354531029842010812026861015328925613202158064398686540750404992657641417909527751364549036881570123339929433827509771629061056860410255743460859238100790973516503702433395445452936519538904498693710336107037374268947074384824872467478213597084046985936317543478054580228097043640632732414901088017016591794277321320991515422893816770610785208633754430100533646653346762519135400244063748989965615407420811542318133417119798935385270287336632744974927630747789369106361025120041442480453453431992013124761754049375991207898653370757302921124520752500660912678942671961350636600084133398401359305741997602283674677821093493425056560221375216721325401136350120601412745558317084956219063974603436911440250516168672208745728124439422730669574564721373567681105702817305225058918548815525875277966430791648819481369866560540505211675413058673248562301128091794408429617962805312512846531617336823896057335288942093653821935676938364028091385744370406893358144672302025986281823859729636540234541336366084009950065932505869663485870322625370145346521465096363917704145943797057612527452400052692098513495261865827408027267850407615421987397407103089552467726007809843857631598950660344018031382160089279523318572568177294928884748397088449198250111320967650797721857551887338451253009915555998880472509809433870085914264251215255099453935456345115540209003244120675795417964895409461326092430091065964160012319187129105485094475445891076199094446473162295228316552231375285908019695466598725451568377813470289296351131721566345344126298731278655572982501473430765559086030289731084641497757519527638912831669707878233534406800551146977843003396786737078978659893247920085700603922996176011870236797508705798905891978594632156033417572143497441714712939247154202559951544846630453036163558482380395131592067512325303289213537316759904309089707140252915388122393127233757442682047133978051767787551908607617951945288487370935292034096880837139433590476348840440227995902505524664978522785981147445984265082074416664002438403926008986066176966893330595498929046057596710586103545723675521572730738138591417961944792358504183517131330969955265458094465421754981375424164309086731189881978406010584842097089236306603331834580849415983858830072727696202439288182749164183198908716783043425185828273097713255422010537939247644408383337651659004919701208704437567762507267649147516028771553473329949939311586878642592876529041760506323010692876716995643461813888658693320782039469600049973363058420298829232493625986924249336761527201515433476250356178653535534821783882335088204514667506813840951224587012853282799799666697659032107849875522668503794361331129434295590706743466951856940715130208434491782345647307933622694716069007444925060616034755731687429900794675927805433329396369828476066721657039697802160093838757113270441450166194102292051526869086270675468034761938210948923230220727382131993809173730685176802742647623721458149022654415863931960823602274245771293585501171276792664837985944687940329470450441787035974191425263412907565241980288104021439223341009680994682461360811146903284050928776425018718120604333362587082239929238181434000725300729352152558917534969215968052653464147514716367366915160964941213608053270656277238224195809036028620190776655824321430136503935162600503040020532392531314717466343055549902139341498761146980942682688740802458535566201869261766903015543053042952413099722486311035451930789891113842079658603309453250651915429920983414318932665051661642690543309703686154294354694410158003269234558636838737888317533686106010039170697203077520960195888694229104482213437916616852827179160297113303472877822853424501700903995538603845305836360419921607702002503226813351854225652238031144309394478605734259138261543729725398993438374139614920793143943067410315096846254941012978835244756100500079113529602341749565168444612470538320747202089440375943681602923673431010457299472259816823606497893240994087165909490490732309601557989825523881250372681895750413411355565898058978177063355292604812169377676494740184003139210065336491352731472825571511135972778007923548096731093769697044474081159125333275141548353688111857477190219336868413651202892416774701936800964582905025994253780203793294217749152794257053917158081223804950626299376582060700271450681649207364906086411348624961784707565340028704818034758878651933753399388934398303182963009493135920916879201688146002548880038997471515399526855425332746328384996570189133531053312711132239449394172340390874233674324733868802514665300496904822809632602251156839057343730531339370079522903996754032521228457067626599561450967091032520392169625360300664595208834053971934251254339618156418765365639047771827147613884692586706501571674562331215679124869733514786099681154670227375241529580032643607149026905075325996598501246562266548792316385459195220394014369206453157837944050297529762652602625614592152836301753284123305032382409101725459489311986826593887570211295831714903675299058927923864301128109268515015525806585792516679522330273371307704848589930349595533092057328024459850214777410613359256033914675113831034999589534511823883967687003981761627623319844736903453023978639895171383214010937035272594514307184233546907814994429395612723494271330890544436302747798177748260408106416863090383205048556293792227411373981206896409966298261839416519901950300268065000020397026596841044532606367630748048605686722204150508414405074884533257483120173292970468261282584963188166877998463808425472609718070360655131771780103197057550907795229896768075561177631400030995393022209352711684732877800899917967829408910163797207712990220330123523292988040808595069442681373717023945210133244134402060934541577222864253867280842593363913234850845331694523829857962577706815233232833665601919123760803587115597598258354690081422564481724955347112205721875088209334452999449034538366168658930135389314561035952973678583923585573744971151834954223869826046572997260803253610261100128021825321902675605154867202343360402929269210816274434082726415012707951500118423709922671555103452556982947134407213227033744370671285271327182873485836489801456164685048750955037754078869203675771021077800787367442722051233165308126061656601931951140100912619174054367586520878882024252721989882145486905572914749906442965953530111579853702974089187302493537972831419008141727963428147762864221844190541219819621453255568611649509290363593131997457395801181007161754081334364812198866325470425983025804232221350154620953092806708636660274115624594184729216218768236992290640482849801134196700576347719258340171235325732879935330972962740825344090237044372595143953643065147664131327758993627339605924870551708862959595008344823110832793309905671812612692603291886217001061996147885849671676573479273616641437140348257468488867971518284194597716108759193800322797379496612253064031550923349293632986753830624837939338556909691399924383930542976648322562596860885389120027669686807485410743185712317827506036504799587099834472412497719200539739992972073400001266408038286268954641425353922534245445504547549307046207113098914841645500307941607499803617280220917665812532126496470653368510425018578735796891383763432971196078438379883420647308016373470836116758249921123791620798695536233638099027328866489089557113445354627004749195862574416747069252008623254395451452319026779772863073756377737716641497227932462112239358279858675316536667694824038719474540979422356370188366020240188234503940369118428897509035257622170638406501200089106034858874697215554695084884952722428488054981245456979139597295555201958160942044870087202652409445992614553294728978874408343697372334212857135321728846269044322665699161448712675532854061365453620694112305051429281793086911760999249594522088544858005357099231274003286873887927483694080120692860028400001088511918561380551391638833938456985549312040065176866814222139354078552079660130430002506004404631811093027591589458858822694862801510221657711363368447536188929675920687051104036883646533534442094589224694875982429269630516992107015455192080197946698751966339721741054553758104018216290969446188055368742940459624364962045924427693195295618706320854322487602842409847661347875901596658504538848526110346131141025300683215184888603662517020036038806033400859964573247245630283643384634867653224826001240927278924741116915280069569241616068144916582547671047207701338003385347077673877239328466063067312790376379377127120246186508494602489471512101777235111847297976717732992580089124131017488051978961066271655421083271137046858404344529816040221424349837362518535528288610003179171845727653521295272734401936451707454348666229604013158727992930023190769583531048224367301963133456498491733663494097296149691343774651555633405105767651225745313142942358860557491529282677669035251386389605582186775575237955550251843188634702037333164421426861228832223662759035879292433243075153987616350295825336193493714107101443552719614592381998482815172891438648568716460221284421499212356649019405477875417376432688443645422197898770836916292843620027496384001416541002079610759990596254390459760723152680767990760264646790397775958514825595263303584362586043314163457660281149203937365926517251453213985169202831004906528241727420341157905007364117428643659785483323910630055672053497941093626898071125766410342387875930977467357656037180714454907431244428136251070189049296115673457914560846232573569962035914305497055347669153515357174535289569595896225418512916891965969568310018354498018710863187398783134229112320473968269975808552651384572606880721702100389611507101180657362126046192505705364775848624239984478445641734882838321122033378505845781758928094475645637134049152592136269389300078830444361928297140589992884860385388921241271842798599931071577518082948480819056164097814014730413558418466251787033419181303929599036228658445676808253566490252143668374014174591159154061046006434373530529177018244383908197047061759991024842884756097869531156149073760225452863881562438804366569442996652591883943316190246186107441728868730542684188119393105807974450031703952995098819353797503647712957458263616965000887359910831216989094787024690788681662681888996351950370301158734245448721637528176777160125851244704732996852009132901316039868800552585650992225765929344214724852250331373631992779992663974256977706495013247995989686115185851638500120632256889348376295565643447155113193280647214524249136702220023954580576090202028588639047433590718213157631602284087523772085937467678101835259123941162303787999609224617844820187402493970740060691530056613460691619315457564907507240780351879983503044910963924872487188480390978488170421718231733067347530299081174106259125921694242158959870229915372629360105406771524395224694321982168335032193859298248181216333722225551275712879326904643835264788070211337486087155998616699781698563309096660682013866577153656589136833359010696831466560113693157412189149150977708078434107221775532289512956081595042062917722829981544161049658303866816690665739604633189242949876019864028415470472219726535372330177877012453779220002160780646356920279380582402390742707557289237986140138288359199514245093157498655787898839027804960112556765021645677589790290271347825833296976815067398342782381343093716456887587493438340113071912411335635846425188273702884122778394450983333770237000563074360887304395522948103683217904430168228153455846641196553967075018972325600726862884217011437515255907328776742903941898600724825122007972561610887594513141505571410816133358619632346104356910825844858631104662634683242395110651578545218790700974940696613083488946957542651736341414679175558542476802576371296136957050058636303804268740526503924932993258878721613952005678105553652036115259436901308803193077593196095723269728525221130398417838218862580875472085859554936839444104201535711345460622220918873787325361259271542547475924453695498705178602295679350414213638267753368331717121513859186011170055934000179069196521749551209158640659039153826404700369757956986462537716058062487137259943082870661385190460959992481435626421894514026815149081035152730685582383047146742312132172225712407349206328953695231060861315261829505752378548555014238721786544176737810572893042267869702665492267841381705413713865638973554700322199246204743616916753060995161956072881182324380837354774850082221204677730435867935764138942505483177677959914492813800552361497692695538820521647147578659214882698080231455684307662191202896383644747911926775552648146347955499185190139575980706121485350371195512880849107814389826898808062181644162233751452140616378684651085248840820122825765283457796884390568912145038704840257703510596565353550734757826444750531350988832540235196518482176295194402877217632683550354494155630144797882149015679480912421103547909122257098882438710729811467010804145902996350943239238802563276085932735414444553153810970378695717589924803565998628707969137539976465115793679041007168565252842857457835715211478903140037964173871542670261648199581158657862932118013948956003117398280153983317249728589443697608544820887482176122123658077607078512038045201863815084761238684401807480281029539319916962818873623309214781974930521523336180722364944981750068650165990618209135864622334784144607231782500159766521031664276346799222713713209174900590327698140764759336841377200801450218193986609349920538199844518283278942000041871393247323583909256183662309317767169747404850069012364208232086114764703941681664042926808468513495536293245316627325900868150162631758683866321695112657182061161296279336996775270365735665611978040750912472575562674958744729258989634970570228543847913140756348556099796908066198817996774253363834287478007215537766704274087763034224906589957684923207970916786164901250712990614672609697361241437436622942641721289185310269852510170499864738580213796592490620925226234229248869659752888298856399576739933875438315577630040301768701658906429380366441493077193827609521493063615775192865550656438667815514557256119667292903789595308247045408641437904756932224629264282634956962429036392041923928608832199694362219786458544568817956740344280911829630855464111807588571703261422853082656383254645657662008090386145955349950940448058471693026899410975520883531241660200227623607634750638470870638580381487513420336183884887747486299341110110623780434844490383407031166647773408572907616054639375891822146404513644666939732411859707704114521197388229124524775451305996956739216185076501226468852304709235995077096082818970341890947028936390692956122835893456752395251650040535895783498411618941806851188040315033435674589608022034495051383599414008341300319867132934728084373190600008680813521129146510685427558115074655337258490041092338532022605961132393724381853048524153982787470746540156746194785393811847823877830777182421310386614727964795157034573647927191573869511922553529234569613560723729247285684915465579836742103799024610476870114273123755294541103830308035498818894648135506285084958453228609851775475545259686291080599376078312679748231513875266448602803819115614895202684473218119689435114207814445014493697436655768124421353495950785964968082038464929831503465562430997589061315017407832496247925421115791377090802605588755710717301209777992158190109466830877848737280037829221057331365274926125209675744643466968795412736873218107407340001357373372894158459453218647967538050998336816742750860109367315998621869560502282959135696425763454296261741326022553723934201839368976020527827407251329777000318404883276524704403378046402008882427280264673472199800320248780611822046929890754420814467557889825008631246339940444237306201896384148863966873516614252458204432377600564282807541435137296912303496482818362613030545597902384656982310702719289289259265915224040432034346413119822798445254478458010295321708922561615424107329181056549981166183587847308651402095918857513615773791199503549496446961496031931246620125198043094685531834871200602659315960810155448068067192236018515650947484482574243121537249232666056905734315451708066175401022976355741208663411105976984980679442317930931094431924651745217201897341795987107936571653416680618369562830296501561531236532386404304329434647089137787983236872571582257109469031049035421163527325822986643532407817316405965211401264798404264555775329580102816633282277253325353864479476849504389038292050598399429153639643103478213356663859536292592092019781988513608246091764914026124323155376014773127362912071766188288438040834610872764374491019609664965839010118875779015956666382921643440573961853861719195694863038175050934505084973354918571453288542244179571375506524498626316944238487151951640966656167795806564237725979689090746166113238494175151727661598930990912241962198367377373264843992270179413565997209103773168580917463346787645811030982135008647254144594267939867390808623953852402910611560976047398947306463185313228225676997168746975199529674507291169335842082480647980054393554913020126415060159024951378136009173538274614120074948624487587596142197391993639861025610098591511360951696542505896360879984909804055205493041280868385171988651653933651459372497297774023170816152753146634295284544017106274337915827607129758931299784315343057460139457227877075837797575682108959586253511851478746530860272571311448415757766193493087345420116079601056200120655718481613164836489818475298026562279876834619490821139580117536087030499861333897672707699332066791206751946420824876202768419447382599935410945283145781317336887769748731398089347687105689398136850783107327521796087465776456226072503959084522974269577487523070735239924167401749709893594841457405744019374803513339138786598418372612322192128165553143667837428317175412571547205842443013825321785981928343739035250576798013903040462695321960491604223942837240389014062802648733889659985331394096137178983308684139364939124030064545564263655685217447948986978698555719307490662344450160866932902939496085093690318929640342136721460571410499763566534386571379013512209489883265766599497400650274994059193934445732095926983818692017097068068066446888225964302305491705105014776692110377645279956949295015226864899738828136259521568137548611886461324678559086236151979782702884069632817135630856184971736717178178160341883924437348617201217242038736477362812171992751152756700559319044011186234236747023064375317620405796383029853599583745000887051012268594442049430462435582182966612109325308466288598800139329586747735426598180308381085389597876876645139890070858790459856801510002137347151987295869542022432617177974516832562743413094422715795048876678338135777147169030521297808152044412753260358591697997571360917720200004188394020609294212775893794784773181027694064281322910862554525823853738351986208943541931787508833700583297815964904014540664154468559906114272467368910725055343867217670822421521280785970018113831109921934246954829809164936014041739047226934392047646304750932584554859817205699386516975624829359345467603192829048192551529364825515838571064991643917360260442805995539099992963889925459533531099734350339041909784984963203364338591158219730877525397102762782495272835043693071158565293654469016172341972041553811997026960853855252639566048418638717383055025214600225199894799336601086032704169270529037525116343015460363079318151660923103652923881845854252342413103463871781354575634134995717248984455394603914344515637449893837004505799322917917006927892662863077941894355483876620451422566860373178627487263957679453292565648570552780131876713422045258655518284163076541114248811432196618733808872650885470244313250564352144735239001973207501130880264136417029030024276444219221415988723583662229898142301315657581713164466908245163553799130602909044901309007272001240933414927344406217186516446778574302943483565794739613828149358462259874345485347606108112471404932189513727263614555724473118816695583090722894109551608803431800807574140960823890580013605476569779502200697982844597948082714061864928153624845825665544256860464335002190380106575786576640737555223558658711386002667303033876445709867741243190396343604510242176568285132285676185955461793678999135076510176180374046362115407549842294807505599068565291356295510273547529740892586445347223864253232219926636608499363840281005605474767633587379984343026746285041807964802165117586144113371881372464808719922926658847513838453470593648597819748951588337809652868153022195906190407785168446941893870659962548023740317255400687553245305271315600651650798097579948697888562003030110995150374163987907012383512756316660384851324360386002878556197062210751899319394347345352217208529784808985840919803907710098291502518738600392599786594976522512746004695461736016207993756828269144811279642218945954497411940185925037819440500878910583620158904535146726685961073271127317145792440783345751214246924746195887425950825605701540864874762292875958176872164648833534524712497971291797823201680514734645878193426262276188399672688218432601554911699702884299580022413357865622677840585561927030948367797585256304285335755264559034208038385705229867926241240467819294028683860424623360628328310201865237595894585053770686546521251584869740182112983261069082276928734440272976758054610941739732736788520025134843144168992194149182965599375094954187827081274395130182024836935699803538117990409081342689651693085449598153497710061660748677147785478363133526043072929991755237129382112140642876739067193570179108928670143345738037356415894575103591776857099991145637335443726289220685956669107403001394688083899517378286423506264503749780470539972108844057459775353841892262786274905400256443449982619163977031310580809915461066035953831691692787796819026523347081433093579668528847408724993679822097035871195922677036069743116648899698653452803617190847364177542875199605860085705171634092118633941991475571098897443763056662280622215155947232741582719005028246182504963301059433097575416612236580003004229199596881319584075601207178329102716451901307972054945154779248930754765754477032541668963358101190870898039350889977230153492513190430301742895862685905186372193295737687897922753319987225584186102147475274701565901237638034509024467027008250345691475418539387480553561598166482098051954524603239613344222037501526301150591565865549702167383097033613825400568506359408352561023862236085270131853231607827574695334388614360553062885198866650787017910680932145411672449338747460259617965773245346264975032044644882140069374317885136090988286423020917778670972508862519464426606639096471308937367520901680960729861208317129932780244030130361447464788890951953280211293496273432791230063820979485369478358933220196395805864511797792517748599518825267733425643855299429458953048483505685827448123403194592158603077987432429220148001645466394514815063957928001194491947649307208649068925183853184470483311732681619446551373816611997519388451410996437873445832664710381964208594390791309649981893960577188117415200218349857198177593100249887647752633294242208424356242229191555792015391378417441805006451415696120678236670845122900319006337453985447622385859017884283404693440390830308873573017546387995862331397445928741404727256624910977308256169976021919136233908078943159883066455961985725653147907154789428836015444974300148276493030043578200834526406753671475836989874871292506939571546520198666167435551236737496102185052386926447254052246830118159468138532435471551669867232703368097359962331430463160517979009331910613117540748592570662556307068271881346927668358584810927214523536364889474486646988814347032100567678627345843034090040130495107159562649549915509415051181362779055421281428108763531216408415742730866915585898328981885779505914691984124673825364589801626636750102708207746385581190296449964661218191992818187464587249406187702741917371082937650107482905079513009298015939746119556811226976341065440576928888538394129564425226807258740540518159274370127529993837624323216394199668299355457651258625691627930274248217845275842323233722667399060207430466480097441797487238433181959134348445507713371586883455695589772107556608709083870107873020177428992938353828413395269799447692056397895844289852623786623101306912495277139399074279481758601679297732332906230824293960849275487949700495885990471171995532953864580099879437580333030946824061262592265273966768801827178633442232901588208145158121617616629424845219394115391618205874585143298451914345794925101196006350867889569438294156507627152351988269470847003016921886722296572726601942304989410770780389664823322098640712839587807144956478902215569908028459332121136680852354678687112979968517364330722281127978575244628652258150029486450577567900847082734493510558207633066148205090477409109954838354529476881121492541350895224775718532777690876946641438565749733233095387670774339922689057766916509211046539126290004771273738859103061583417743789128245477230317762386759250386423899309412827196232192853329408288482245808738375096425493182937169271427707811457364626512387639916341420231627598484901837468853451893382671037887765839375773428761722023690927775149407672382353546321339197214235857102328324427534515045254207475711632767444789944024931009714556802437596464057180090651026101200154450314066819672087574320320291863379163680543493065800365412019958720456642980378199921114930307666351932989337684311135699851530891732377728646841704334077804456663712561859548285024035802257038378269214459756210094108958931848078248727555841709209621265706678705841593898568864419781311387581374439677054267723391483712892980701191583923417966920234490129355746751206637765038888432433511201646944694903413208326880758896842901520192935288321316090412070945575243675153181463299422099431674451530418927791344157899428207204736882375231641753956864169701467148002526994569514853877858581480518978159022405001370175615615085653189683669008234980728403524454617666189881679128740841703539538366256685656305501917665183732413189796950321551528333382631086411123829873635141835712648269248208296777270650439267896075687708524703908069631309175337780631116394703850598177120124343852512356305530698738475862865462376862526315892791943391422255974154718452014011125414345934339825188276723411885880346527605885969791522395762705368725414094591000148566920767704006901195570825172025989059309749855940992212108003880485408582427603794008839525108904728054533731387725275704217846686213864309570923268521199661707614026398116546415555981836044523284929082361576100813544770519139449680194547097307499572742390521544128532378308120091615924262352607188587197563170041378301192149001906542561789781069326995411693648295657128771098526245508130201893588262694220892159185035543503543376587888633645939363157584066580413533546196808818117643980116088123741500414818607538096844761832364331165232617041637784071158328498701543124742077314391580299240700924543010589266467538192036605290024453094047136602559060242238096626454351119930793518322924722394192370018149773651512566093008105071141599565718701686217931575915791642411851996813440224611865228537125089041485825253523435301545039532419971261112681855214344342986863282305793160662716415188690657202657627861952734611932673613810077885976189992369431777949059566914450395311941787322489839868484469929740258384768461008069617769564907714288382682839776972784672086135332992830011181242618721511341128556427459841723530162451991375231093104525492370447366049098362582384839197303362600032809250961813222269678534856942705325784863856425821524255297837371338380412012177743295783187077322913132505967426200862663681041617367575985871529068613010730871037847606905330281644803320913934893872893673323569927205856078728847008207612885494610190623257926806133267504167505747753425706680838530722763419352125930988217383827900934096683725216627555436310055296852266633160446018779482257499916048014633905778658579936212078388633573492267465968692551854558193740836319668159728433004900896877720646248918933564710735575783872470984169094594163340507796579928247071959393415678127041924900007646805663437088348939357365265186819516854132605852327769754757879173161126968399934035421936864145592942935547832047675274652430531515296754619382577500384309728910648948852851447877183334442292911490471752114283612709060678456060839433911781433822534003551570705272152583603837334621446399475554160615660504308135384419021693260749654807654799918167760154695316692205396327736313644305791666829107938764422267523671561088144069843989440297759360702622800908261316066261861486730365787431743057049850683408734465312226662581000476830952345780322386698494957505270080004404271855621718265933268533463977179761451713798562548256670590088930338266020553869831161361007584714460616044370245573822445878987319745685840299827335345629203920630558781385762690927491199837763652079528192949401288294521170147511086320090029973361804221583193813317608924314010067364518904070717825682065222097054562620158980341344170304941348815814180406205863191034987023083802933429415939262535936779712424531760881403830845945649532975088961343613931342659294084187575433052454095259976675622637086231800513303676166205838395338475638158773649507720211260016766984198619874533979918397332857564489113202665891544787012234336835868921805278402871577571017993359133492363639481602977912768198452624704599654744866773799987809786865148114959275306607975272470891463308199826218795097751278384608586199395193036634550901388012483774489422125386033785527063761954082370221596359930948068337782087342659826136113031474964798417992634030415214113780136326887367823722180265912139597141187183846922154003751692485261555741397794443856520082599544867544239329886762945870905644914687456093187194980035483168860851171020432650214425070580003210019093983269796429554190225238474666109177942109529324137482621192994492595099730660892204113582601798693342008315131812646536420842551321140417031939613850354938380773017778367316797567493820005187739324792725610326301686494578667010581751839564966020527988111217394555527326846016027106019786776391450554024489116009049730627486380014091594928044444738684259327311264682346601286076991564053148826678654476672916162989603647232041819069708110556277775035806736522479713398648972401353534036698063094842041115473161382228813998564381713255431249308072215627339891243849275873241546201392324953407334373610850430515441598899988042290636509189523326042659591537169608316519639228405609184845808193201848455182259183303643964863731961463455453713429086621751436468227783545713736651610912623581880399643006523365592544327705135093091921076394451579873025061254209393761935334685457570956435476684930981616845439638243036676197965095258572282841884662311687858192091829878680765499370155463598027725939653818086038252861968486695597960106280177177234908246894787416605173458719505005566967906916050419364789005777016511878397514508501545483428321742749785717686157439623833149097002011884077210516128111223581953641285996520497204057924092019563258284031864549490087064204278647212946586315006391572879993774917321973368771031733144540445771515492519575385090063993974195411200550964421806347640582936561857221345781367016200096034079471320165015172499849834419024734586244045085852305029657510328931964645984114689352824820230654871001384326659871750160581380110504737189705148518687368294832244193897842034478335584906592150732769322545654582771002288121170626468241430517833461974804700408503806318737068224600159771246460417717110899521790277721101930824435980355427325266058213824615445982226798795509774080082192424318437304821522319558877949077825952880911209357510352518959587405024259400526813428912857901605187723706670210179680301881172057265677273175019233785997640092012361542732227628142886088596892359211771780845420014513367203095591471411948925253448021269392058625178611825691197333534859951701635621938725825184014670881845161774565886066905176411418299393993944845033815690282766417023657774364750195328223160095532529800645763330996304436726449085877231340887807348986342550553879990810981214944335048497891775233360220083335163230536152560846706885596526069812810571642498429681739411633044879931165487876367047769663397381796821757602139500465841649246896312395068097031765350891363069285132901567096201797423542221282495694718403250533740730675927074553888380284548058120101870448217176061052846126673151700293852065990026930111884144027408799186170239930701026014042980462828157533063647594280215797147167274495532186533430975214606824757811860483052950128520738118343014469633960893778783513737836825467344152864618994032374278437935073479654512961401257768917449541410600059513756957017871826036933233551452095671897945008134427392626818613476868729248099650547924175796481925218239176545124040128701993623578687152055244317310445766938621321529495945778469243884464641057229085711928953674633439528613997905008897390691764187536690534034109652539509164544689155333583120353409985506315621976314892176455609648448514131625292149329025814148629358306194821306267204694391086556829435394058386746665750885653916935687707677110933573651368370749664427505726299481628292167263516281541378825382702660625159376333402630726494544391961954570550489310553201390741936116710366455677623931280248894464037263384624597686640777870907303800277791479372658692284120900910731842201674210033726542859973846307965885677947811398373045399574027135793354681372369387237349460277120041815856635683415232673351080272050221481064673015569666060951332866044595451816633813334102222948087849907799730839771725325832757046794381790105556070325492870871059245870361835164148565736135766967167746103017742016373716236641816024585615689737465481724649392298345360407787869604598255463476863712419382932254250848261495346110320615866600487607649812218903445752703094705480522340468618053980214685946246450500193361202560348273800212094322079859014149381704013315685408719754159335050812076068777366857504938875426987245612829839616000319859610683118613282984574272273238082467430535038691800543981366988047855953730751023737039654108931812822235568494126330581901962897095040042056618946347578491846644353739460957647389286201552010080807870045661943426763438912303947829360496161258232744307740530384595035718501851481104727693949021319609579778244445155560113663197751599200873419148505322468218342007613235293753685414384884771591686069037490733288767835478615590889689263600175654179118619019746395616951341116056757421713598896537032600667703038789078407360471422832044429790042837233901329605927620036594983703376156144913052795173557331220022639772499761199045502042373597733990144741098209398631430735022188886550382939530862523155436183857484928760192279883762450889644550275701197294593530801698597504230001686272551250772564815943587640448541225518248653209474133432956058800373441385786411253826404767372240135261807154851442263092289263651158711685849861269613461248136333423131543458000751888431234834293511257050864428701736909246362480166769206406644899988020469949072691032024518775449862422591486455772957783390932584853879407310141349970673472062961166696893679983311169841858908174991705506206495445328237862932933154824378068493346915301328014201213631670639786988288313240581602518638152559782372879243759027452690417621625330558068586547318401525412033628374480364160830693280196198878377575143227518529086004189099420675303878336025730018360383594534020087239608015239278705935793593992003012658496458620327648472718236622100306828457828471105703021887789255036179865080405483870925439347862276744164228501389664487341591044920055427401242591260463818550896052983987520895090434933660704443045966646286671583418561038548736668920121575517444453739989100056428760040315273585839089890693075451501223915069034133997519764743765699314917564371883851378734621436051800460366015930929661714603448013725012096198000589579310633593882186867794759347285050983344717314008334193604064161187048308226601020722422359979712904309316053075647189115135551280583344686111657794511390116597257895869600445386737023376918675091603356942261055743239850816556805544882354302610969967704363630150092323053308751781173097866762296914830446565996124530802935960978509782055402925213965478154793787262443694329132605880245913958312305449512038273888571858491135970541595786691417345914582907922033557212592092341080497088979396361639084659264185180380269294916312244164631717689343415770826846599296642068743564438048358997954593543976727280699969317457578554437317208288192940161435992213255146426516525798555844394763273622857040466155230550632323449166085424285633090537486703594552114835634357078834361387884725940102232153801951243085253550317168433440316451962725498189879182775890978328336029661391802991524559568722428533357371651089422933536295382659967340540726707951306217025113273597916097985160565765288787134546232393753500207674038962488329333623378105015156268355135546060664935551146743460399987158123743839973557125854744585640983435155675744462275909886457312514810812355874262369982905015705728479604846359903261720881596559315880444515745321598289964626862821989589601396745983694121630408680352090831725450128866410773824298354570812842029570354390080815545964960384670265664389515026539778028802435497185566063746822443583931048848211827394560806124123511420756555326121011763748220756709174923012627787518996255966703769328948908547097932896370744120704275558336983207112787873943277839864542507248721961559803331282640000251477839992432299503013194783825688840191650496506983893186770806269931912269350164074990650563383318451535489573589106518879418337644838136814133143850580597605925818310318997741263093417843123977199825324366527238649085733745337544819517975477158215394727877418689450101318800469723482375731307718966400000214369885445041094644461127835727019686842959341790684483890725098666076131656978396321369251250298846470656186979233962010432078577191324969898448306678566479938813963067723697479706717358108198135417303879641118925040569209688236158903097404402839497801104730274229329079173246064815477399822692456859077770407875245355208655214478652053235139238742282783664228222392716740099549023783604667992663126464173927363491636777578594304867462442318974378069477020883364862604133353917406512159289128366613072037874951970930605535194992592723708435492431615858303252613693103406857061919075069593144600884449669147783241226180215959056320789983066929605099871150886699527973915537886402865879197350712643432439464593260940564295733581535064938214092727158130744357020357112797066082386029428999277270024190679146398073824527199425633143939600388505034513115679331428816205316096021573780498420203125713971227999361333610339401921686057618302798596629741516679411492514182829207654336056359121947382468784456943931405764318090057370008307743562585257286297890297794849606953907604411184092143906530970806141629620800914087608564956562588384125015947294698073162239485160953311370431613308476832219937068888445789546168742609280667748793112622354574278459776611177186003897490296394828005246990553128000770565936266294983951859198630335293037360053256773150952569330655126336108081216450729521265760545133133964590385465194614201228031488332014317302065059375748233718909817178259416383732487820109112642337813108042557381130815771249820212604098176899378826768808236745393246022374899291044017433151873806776841238176936057796745309787567175165149999670235777953111392185398402928352607634918123437599537539871434191045265355809092686991593555161365905079903847364841706289373442043327528389898959720195508308139755079393560025557211035443996374460613431204394297600821149387582732653102973863071440238722825965890794984674119159449068110218805732172632971645423086021099463089646335081836333842721251252104394175114154626286904857571650136542956325715105396572304967719967687063671590115135572650801124690085818635337019015222009074682038430391771853168290492033829517151493407606580292614222693323440876892614136670674138460505121069027538422246935768304823340933626454059376629162955881326115633836428006836109274722470907530884585446075025151552670720733676685021641633004847219182058381809250719595758535937479051050228630443839093600832713830839805350271091065512381035612228530357192216743896770095049813479342070657050821402265803249709035215282758494654460021814359115541028428559729766793138374532027870513310649162942803861638047500762944162519535683893140053805318317343814933271333420117455346720085827446759901282655534232544529429283154514161852782010414749463017632752869306149591066692691863323226515561546559329405873326994931146670184591016717092255143320799335560485852732537805229756168541260614700207250826507966092901887761785764520954126741698768928423437340575807304161191694142497070064336020495822385236699533784252832451351085308254313358953150585181594868662016644280925288298135400443440114519393864382663696579255260959955188227860607434024134641200548702136448476175337497213810355707249474146615870112476803312076940799026515599585701445004255439344704666153048786352928184331435185996304532150967603878928792978213464756821969310638709874635672210028897562331904079184782759648309598279372811312147942270909621379696055503737502928113102981179258890941096192763339639156162999581459123062567291337093782813890164720339597260063068202885843400663693931289960599626663758015756075316624802707649096000052933542286543785142197925797157310860697477784409168618776881172907190027562765762689707117492295776997759058907849152952815691099452121915461793401378917260354577222243274765217606415638880394321276313288306176568167613335663807087465019192000293504670575513901792815168724033035997251212458963030144344336374524081593825813668704718951753949664060235074547833927010330445957953941235254579115697693357493941989746569777274120366706531267840934888891787513109116591725310317845950466698976453742967864756022165079631823815928232224259782564629735591506053698652820111607596814256551734670737248524080070088890761771666811345415755446021353526214072738856689619140264167836896296394890125429651794788668014019334044043792119287444034169703572399406110650022296712358295325204693492274225850819954195628761341953962267302477428344549431539852110035321887123863595297483417697260663045406322703764747461234293236448806842065550042794246038021688344796971578765055698809724890735357027942415509794824916156815798510701497830882017323127952037893086700543048655900538761777375404524966528096616199634023117674327271636652179413976740420416134082473676813323676635217281573769753924272188913386778439108026346867156331233431537628177653999238324882247005599031314715309484085980245569241784763806033473985429071204223031877946043969097016131200946040408865997817623908507835126739793235842487238049751404478659277173559296778580352276637137019314712461331770700246398520161656516687487922626575054639978851710880734264282814928885764250552469649172479193687150829540328318313281593299808372415488343646879584953792057440971719174087632112598023539977774971528412386315006543278463213904413892603198123066522678194985158064583389671773758038097018008140185596583670665646839448157585015970276908061333218086414585693890453873134485819278090824424478663365332492549791945541455736396489253526435468059314980775089188982156603394432611822890209441838403315358764368522553924717201249524982411989840026275941576566923256769682822344546965711189467626892789108684514000994977955208495572343262746709958227435371558629159117253692795203088329713378468383732324152903193841211168180783055071053106508716757057310351389604215826475916660238598151303567974462534255530123160020514604046531560499301889633793483635208138529668131938911059650441596123880558844023746115774744313860384636088881842433324440272736444138061401463749575588027536024338645068157808579141357228914470552377416299746573396555203305130536585908796084916170196021434324266328195876589144996654041432206129918262656055236394921552060158217406894765353006287695237714476522858901246902885899716299805875064069768192846882155879486622559787820761207011656802773464123048144969221270594201362417247551284153073619147198188102506692407371952445963223371290808885517068513182753405224210541714130963206640431490930873071203947161350243176662507925566665798790613082416571503133414066002677370924597580381072458571706679164492646595273091273741315818345168360656503452615442525088829489433086652419999532754841444648145963528319477443059002752176527475260904735475161482818349574228736453130082727486332308069112742263688048661441894661612317719592671182042240602736924248035260280183811345380494731426658627179666950922877876758132909165259187085175747335839867000305522282701760698283540209865372619347957400906602831751850593018150271181414148097569007315046971156952626536150204464847046692134598712330425976152039020781909896209625379550794545650855892796276473643340335912610106201098024204885038588613060513855670144441124878877230969530218944499077074411569732294027783052983674328718037006023576252143961700397180626838377955292550926148291488118665537802420515943630752381899514945085914826770372480878183592132121861456800212655493413545555377857046081479366728850470754007374206766890319491780765911268639903222007947079849605592692613681960963896452417781725505056158701759866999108602457187835956705491517716360559569655095737918655870187679375625893643965443364180044141962514484799595200121001594686265836524165414325906517638223849135026969430346024752260549381440800563835762211254272206901885604235167640174601494696616959782409546653622893819473480488245304240752673957439851706352396646873134414063998378164767892857534685241171324419210154183669159571058126327370471252149131710153473651059406705991246857344820529083399476437429857177215330895572307700849290591921082119265565867752225895616311182261452456290084211896134474059585484955717020895585538665287598054772762662992212693419617227995941122703147122532951245958979580480662353527173753379314052692442137651142780578418344473873024175597533649249167414377850766532016714421333220616913935322163789845001927786997003195233865113209850736711804819211601536572842462059566974559660519876770097044665154539748079491667943237917484642873631205524235082539813237033247779077284137164636018275665458730171471068572369231764026420455946213777365793003524282591131832662380021824200639969761274992427453013449090463380203272438170330671569048647922914097910418343201968692851894741014708310140358238740260032679284390493049308217229366839705720258619982957234351140551297228020729394623040744508695673718388077450975229193317615619167558775965095843031189404337957045598743677584771983490813073941727360208675476184222903338033069402269138052390592951487556274592396743369083089178871667883683349782217623390790011807807797454220029391998101603458682775079190090815686908373236188625976013528468113796295835770686311230823258917298052478066263115387599250821895129966401857271676123842788669911986430921380979373213335315092301534747232713275115356887461861776429852484118543370274339502420810694308399653569740577923186102119148661525183072982349481847083266332944670375060448580258432968672248140745166238557808959543720721132148752512365228255034489403365507494556847407548269070171039232171395737228255804036764102397806379831182678864589937686947951132161240825374776438291962722482253376706800031404680359724052942918767355811665589456000834109349607847289160139162347776959666387607869951081079131477337312548852239781559220722116367684805351411555260935825973025480979596918291962789054952314413887083965608647660977935201772031005774440052892972226656888262189588685092266247289397962906874603877476485291396022942957621466626613466204836497609990267387516601697766089439372173640725515326540107910073409285780077824306893298904023180722480202546768819142850092893875969474878768036069723236090373240067083823624348570562538601956867594749848726840020168781145949690928692548583336171415380597416910450427268422527925560237209199427894060101873256838767905189404559213336975224339103233321466357334208839463289673589740429832260916960753181711970560073247691647308282868777103506903074776421325499677132390101476169148332905999120326249348226279597443358038552192088393406608929712100674013496978295510747012187563264597446758181191780708491952505539622888537259157837452571947864227083495489393603154142911336911187285053939351116601270694560360441972640761535663757281729832717992311916066748292328394631309884066456931347845764398615509037989263393925082799769453362252299543794352356288262715098076768518296615402946700951420367619103278520607632845701114840934106101184690898414631834335990517976654874503418505392339093069677804720380931708656115780846034312033608473341468180798640784161853481840051076877981207561891527304909523847407144613950448403289981311648070135960835470771431645819917674483878106088884796940270863669127008305069481558056540927220077676280195272709605366245962665090169590695901913828849344812172053534237255319078059828925964699489078139273664639491671255555143840428935925120328061533990914796197334517898654295125658752687724605737196544040236666519807182560744726874304295879351194718907830779669480694888301725177002510631255804035020593526329940546570137727102568749729028618073524127809625642090128960832196102716153433700519864397142410456375527240436633713203060007548396724322214634731208682451160339721856289747223679398454057297312165370782448048179543514701480330729292422706915156681810535980218095503463653952975656476807283164599377596334716932377407701469412175708304331178889505450729244107202847119683843043812669393041180735963830598711098501049350942021807958577543493715445754098571941759554113943028782911824415889659256541954140473417236540680082863550901618140682237562785350634162640037128106892617214231603763139940570814244123993691858302343468834273296428754539664726684948836737123418101656186193473544141780699251278562255208295020707594596149691473005879195514642764251068047655945667360996296045671275209058959762380013393974405359665594132720930833801382997039609726737608747964844763181681008548297488177036243325814994849541306061952255065329531727940515766050982761056511300036160689562824064685231842056408644275934986202117749330939257683712687148965549421729498964115451344870526286796972892443840177913475821507250208975512825190233301342891962491498089092801174338730997794869013597462030720364129313332481509842919091387625738466106508941128855084664297092107982557132111904903028723348320667785582009584388303231583238421208119530697105459526119296873615956999954291081256552326151086885286276966912538327266992877163129078180543092499701195210011240677370322157822649054710441711413359962901648963973119031751904651008935639615855220194227975514571834597921519647325377416722282287312803248069217789604318804047402512534968094988200504107441485610066663497198456539477694508252126881108115420543929086515762757718047893960526937966941766146274422391700614522592174839407134540345942270339535405828169287068367265486152014292046306204492064427329102977087412296376932314654697437531076772175109412416651678152505179686700380397241162186957859058903015596395002841937953001434716650735563637476493336952389854282969015295718784652063175371228472830966352250511340758329749652106503003079400407422915154353678050286551589600908109033688235343587901125729060378088327865262860200828628344115651251924567635632785650115569058106324355580280716849795973139943188510979351883336670271853675537061085037025565312854769411680726843609064814904859317644934972604067025906874572502847241215278018164734026658079832589888198017499720493476105046380669276914073095467709377371454129426869606437724109226652915527187655752537470879799534838000576070571793123682786297661892362576589202812196857112821826787575607638173513001209751117075959383678507440826120889434401712219725662492183527664158458728133194790938489031237347287870959789031084209800978720786314982810095241187619486185383138171793634332935458922676977094096887303239006115579790680959270071123332712823228793627288697613145070733290345654396931957983181020627597270612619076159643843255568035420519579224655644170051652794251278677804082377591764194011135337343530570777076023892280648686976840375343159992626066662346289741338760367892121476914886237340653113484691708640298747717656767457463375223042489914153146120761391142889760252640134716009750622611900441171150501702155575090977477010723775167510107584422841697404483985726992824780120586086287566382002699329803658157265277469165442186553328334395472191294067897831604359385361530757537760734295882106072583705704430085746963551886923669802366283486470057313127125793376644980270636087924116042519616218397116913785307833926638064851476479979796542216770810227880158399544132690384923678013857092438987699182463699692043752904468858055433998520015894796871633243544168693747551257680907142685185473177546324765283654715723848139086791101684263788084462912564264073345029320937905400356341980556611686138200261741745177609973840772846535336460418846873802740556267833044641254266792912956249492597367310373381979870532402758412031329202937368501741884732668412449120234475673219861301538058185578908013700762729594414553173317152469284832244987874941914874298511959650514460502540123790831895483032000903378994178409389308760515631579370019804137713722876648557554742333480973715057786889665414500599022953032769971144337575439699002329779833428623555799150336885170997590525334932596773812502729912550371526393375882671419180805465982716264876195834006488423349140938830639526794888976576054358430662531492951774720205757639432337247127365411418964915785846084945514589507867033561172413733556279402807879919319203677175763559373707074645315161447806793758006971382707900680883133745189451698514007725842536735574925013581156086225696287131165335911447257116988954039418359999281898858750656928964178441855827813079950452770048555444221983706647871004304659349612721645860889034272607241618431216041301571895548269609029954278182295242296113694609420592094503557495909558984896260533275822236890212536544895442795556537808992149335434264372597593305443905903602990864290957532572725051758638544029441505818536615283221088540874797967397419377998723856985344489124157136003940869976957053485609255863958790924653362511125438183577638074208753394464626730550303516862731597193373761124948575446448406225987563947342755551949643841193900554955406424563712941420962391360977442589916485356026275438976768396244727662561050905198025607648218731649695254151297549361245793796485736627030013660597098574366690776423974767643666928239949457976597634759020190867655387889133064123462673132744745949805004351189381386712429918562980790538949410739798495265803703166408978697569458783050512061167719808608307963241505336231514244025859651607007257949577843721962024768256800232560873751147458160221554983136143956100670341787655376399476798686537777051804030708911062575425950843600746143123727330722776818698630236257795300589929124826183373513341772910905629154915741041695749575197750253590060512335138558698114440992226072167286334408104013436506602711292279586010320658604510878909984213090927603111746245766534179980245730993920363388516906385634186243677516657341845353586746117066515335843944970710820541495139608377200113621190870448382717890669833306897225660050963018383554066443612558813895022913426446210502440157178989664246235813349390178432067008983790267265818430147911522318560126719190482618232411616594279142866955557586629524341859528352821104365793146359023916607005636228390274000728385896216897792199369336709468903288155632496158944791621994352933852253158466936122958262117935729133848394573649212096259048232790363337913357620038031123333714792191753451464691444736089519322995861615650223730584044791458157682948108925125718289222432632172305628144151523392114911088532628103698261705373633574788888724425687636393180754160078859094371316490410208954953655626309567294697918704654988622888176416913848300051710435064030481750795615476964435343214751363711759385971377345106818423227511625809325149941558365355059310655884273916567151157885074390089577959172059965011628485141042320173954141010217673572663421002027658131265925872551795955451807497859407240283333521212724376900049500406073385909388220708781681940556499409779541093388656274098096098136451677694969485237906082854426141905001046438465877570322442273064773663028813713747803645580877021057370870205970789631056340762448573894812831168841509947178543922017927834709063033914002512144297099628479456455051958067888215183018992673692323557331873126891607630785819702689561530273390788591899314657505599357848373512887383659907488798488360068039502776751056225637087171967708337500141741124578466130322174021535501197790918356196078324545358222220469084515197476464324482607994639950135363750851405042523801568434138278759181283730754023973553391506985714256402645957691995876845209427777017810375515653949639084288283192762638512274008599181944337221974002876022101496936310368347267347658502898809347840029176668432242959086605591030931233249774917863380192334814988842893712107033239317020327066191730306935743668952894210632194074080757507040155209077657583206072116407025820033740879552151190385827964085304457530055205699272917808960992643050269549751431912325832522470651936644866418580021051923630879477183311681919792971470111771831569946100380167499658230457550732450809457467714181196669566560542940639137824340074837811345024176320694348098092274199123210546748282593209597621134271668101608449683315599017151337305852685555000771812746925393189116113592148075786163505860815483929160004608079040563512330648992956556477935477952828613388644090097560072460178237062264758135977243546168492077443174106959405658877088430910766380653444212580968081086543067668920267961575318322557482071499834471877938977114547283997981150536840677218807962598040857995367436844634501144533958138310875097245661864025851285323082646368202540216218049528644387713270727867621326757229252506965006201685695947378527599890360847677284207693408323919910770662158606597272258347353105582417431282848963869371101066595972325046765747674669917843158339510597522286666143586416538338258885919028575646835446335253132875833676637981891490015399073228086001925259537004558537968047422455487957876667365306006685504278974818964864241513009107261887749381020376463550349749084517182294384883980788432566500155144654917829699333768951858534524753270883853124501437885659599983589924850030722291126485933724959943792485289686501671001112499884209288359992898925662385330433846371690026996582097007302174902417674798265654077690468497452920323081218081218988853217670377948128055207999326622674743630161691391313790482014335203354743600828762458588799227569914900559480127363085085369093736986135719177315416275736409696563744636040030254523137909713652836659156028251265079068136780340234259220244520222199775113413182065865697448716761083284908028642496763560931494335572078638063974751337071201673259741671392726948063903505843721841117141352163878484186814497878062579400592196241066713471872465081454253696716884221240310952622205032335397658378604742555246142843981845958387303080259919064667479143845811251488518367503768591790507146145572621762034932339428692564925463375849515400678015504251523373078725819960528315876162075654623386517683063816533503926080859055578069214605206058912960044388016664815413457916368006552225978379500740845795885295942290414120498004864856979616328461718157647307233042477886439017001474245342318496299147048861160087172426070160229368935603429808899577734131312190881997131789585145156069555083467010151769193011708675157822289460518841372048284864704509944562913806226553240437856760630098623233416101075128005013353895654670164243427316371323838408992804702166856053616059295949985951740970335851081155847893306474977108292287802008258521979794317648289316028148449881221941115640429078195701385931882513109081470231124062426817613134566093831924311415200621798769701076448063743846495252416275652766085630010264450135067220814072193916815698218693952782351225344397274085089950899772702689556842912847896242313244658307744692836172980668591112119498131402655943894783063457654014912328258036494764537873380711929780458123470610753763810320920446436136873309437858439066226960102864195164344421614818080562198960999982382191710069369732951350268575786920631105106348951331544389928394987924423301634186615219362309264966124242414176483489653468407893816318572543963585789867348910723021078272320553825480365707155759488489785345963030884931653985343186957661737100498084492533141384383754500348873810977365634632500840079929753343999730279245904668221395317495725801703020364063902193751819529366172574767287345085813404839739119005059914289638651639723825449089286691174340068895012341857004367962108748335253068093014754402729847357888832260998658735124867793718755770768372283662759675074122878758268930876802616624150661258065321972124543823725032128825700276041051742723011858864419537723487374995363852417375715033678151995311019178958233779005763384893112440104067261677451476773588492728641844629067241956104000816467330804461240341257870273450322753875260526158774361474289512670243995916103804808084193279051983594034973724867307244021812840323157002399272960747440670552940830192206304387889705055256002812170842713999531198808273244056905976558698122978448710269437596188331822445397397984167682786361515913684430040063594659241687531020710895701550450121347397906237260138430690656976646048267279974256072860776846122193647317493937756157717685735671808507802995452543125962240973552114682060202509823529755436707805486664590038298059812373817134725685408632590585961935296419667056602905935095641087876052329130750876523867898603456146835649288534847562877717343429530815901054146959751696582988697356521303414692936529333319026956629472062663615884215409097380481379384413168194546145596772745062670031313550124914648982751706533282758468660718942941124882022145065240784762597765065709727738891646713325118040737620978114346114765241203855328904919112997072801314796112067272251848762534866809176512623061924667057674252373537475405658678460199593727302682998652930208929491657374778775348880619760304445371426575979771621667484096030296116530478594052993453889733671634211361369487035185190097207657692248201953741931382805653928669601233874588571870172995451388616439458909379810673312873442121511848569506073652230325486469359047404688697047492844201711573089679320836746693746241710064271941256045421577113431272502703655603039630906680609259267798827718865090292116433284881944842939465603848194877190842714008000694285028283959785032595594676124503264045499339076119090237709108328706436223880313178033937083240274988128492557422945139599271639386988835858853873604729426482209825036671689283080397286537269357436418270734136592341715286452601920734903542647614410024337589507454005296933834540204912424353774370011780589778021792836978571586521247380644490165766524318900748120953166645696760718621885337886587425265665227277746892059915810223149593794441354740754601741307767739315731823604391257273435468334892021493692039889600334370623531968621668347891255932995656155646452115863147670600980829420186506988401047630884729451772084733655143634652614246714660052291299614594774429450346547559157473020107325443629711998909262858347945167900503035572862976382743901666467584190452028782890449727030231418885569701767545253705510261604370849373000533028801923102220552086342904622518578382727780726858517839817863344799137421332462074676686484426826025169167944033677627363643900206161276260476720023042934151161262763073540923476651546317543176737810568110262713906855264165125910823057444753019497590272951481137484074593367414279581347132256645750785353592514095449652362938999362780929753714825941615420022613828708236861717873635827896628999260550982129769154779441095086796540701745297567821342530147940990936312410636884255475326886775604673792988129138965228553386799527396891727393052775658172189228241375412185928919720184707488173685210005381974623850610552827220280492038524213095766587385225134099063916215274081104946265055379126560979665700208075891450847214514971943742419856723590425552285271585905502332029044658028501461030851943860663553747492962826616261318103927432433646295162221943907916139702742068421833213665074502758585740716063957069431771534841315465495148409054982218768372775850964665385107994360922039154291115456498121402936364628663825584434588077748700635002263966456783779689402166028576659530854150813582780782140434201660259822656030119263149577329508460656762240743177333449576922354030039894961969325477822624150274689629721416034791058497571722219814011908778969763801945916995140887311485765535858028721174488382812129322778869219327691052338762090727088273563546133304812959742001858565062514227575813500604926538102656724782555524237691007906170775025045286387888682231850359159365202550619428142460104176689995660057846753412785332826762586522812722757126988768963151646847278116833715643297265957181805835849296394835820103909313103658387121908522778906330674475642258222549648590367519280601514799948488892678145280416289416863001395751418353820364094310358822568234966178085006397151562041265404261398297591869974572248819225145007349747761990902143921677809502281162535476219189354319592732473687391310441890801652961824237954749205174227229663198638032496343252458830164577758276830867367515419435419389147722051903618627462898257811622460449110843035858792848980701253611646334693683154116954614340018181406906464809476827253856956712711962396173525431810302464449611198494776092922467092098738067563391180514124900698279265767714127289921334284352826721551946053886935710091823998525998157915558283026328851418429789658271321331400613508566778095995102360951126940123809982752649120299203849568701697683965471793778854948070218156104544798330446587512069109628749735339753755455453334513240110424666188268642985716440417370857400088325410250828004273993789679133078039374119215362674805224699855309480597696452671307829967574145552929636868561362079839841998499427852925272949032779953790405334084877622163774910824442707119280739086530052983670542922733653833724475234830312778264436382729388796422461574118915672834003128929142812321342723043891641888741456982842957545949947932616204161076336204711764197709915502409017272411304875109197794305639113924414254799320041467860055529269861398091323853566343201648591578076088789460116577513136406183294546360645962303240742981464110231862289241340348084368873567304565072818346262608024790682541909975793457996704405203276807417519664712062644341569248034639210115728305613704488161229097343970705859977152672750172416802085675588849653288025847511097481732560112447741608708742245328158498865510373872709593786004413312568252702558728491669144826837376300916157528852277501530664111460743106663919510616371080638414060488513883974732706123086501472042300463967441438868174983021922067930763745734769899406242157602464348998282888920723562751442642538216668508752637022898312517184548993794319148733622118097189973726410909219134796819588994207983462185562757640830232318100088075674782614260561920266530585275157657804199958511295529213471151774931919772296410150868755111455934277798258188441361306914967506378953906006579123297923661258051419872505837354956225382446097479964593958248516322056004119021713158244187847670718230415901482588077631634484103194765012803533409183264153987498949862287130894495716826414107356897619589947318667522515484828399654525472793601580760445880134311150830307103130868886643499149126524443040949611890867799778638981911033032410244040548027780655336961013965373509237570904844819064948419166863484504872616204684416116195428569398812247895689636397808413673758138678998632952162445295250216961177424711295359076569566433590884501660618699370282135389954532203358435168444762029123458890441476632486329310341392689502106487194587245468367841124945087675498941477164994838662529589050537491933801705565539337951196159287602219717252875664664128848489571654504148301499125374935405538564203843655591702930883678876094358201593532825767851359120362587415769814992980108984239808188537369823129399634480645302256522133032597475632691346264946026967538288632343057352563612825476488721611148783969441247360865530657640679482041524617801911299552182658266731408985095327169923783114392937479457665636909777068790695980889272026058233100520963176097890330990221599001887221419445433738405529556562014780076490020677191626404915841894612737377168827154735983720838702582447366290135993639982330256456539793346852073639250224415972836541431009365312220025450458717256872225391327994659678579581965948546753355877589619772013701077850842708547059683229626124299373284098457619989601892584834254759519345355581760014981874737974053404025955682541330293398554900047068296292481623214667344126694761304198636073855990273564950326559132557545995518671078812413442725523649563858795171573210045756355877104016488007200253842198246265504259963170502843640441960494761473178253439117329234753020571513320248354784408799028023507758231953511480453041339733196585073380134313181084832324758205535368835395348658298812663706576528811434626838738402304928090782604041629305740579701949612642058116983181571307426468756787159256093737180766211920552202530182111844167843284420797027795751569770346941092434417282789170792401299869405359938106488131092817014338837439421152528379279887288148238768566790380394064352863788706045544988667702940729249883010877329940479211976296252916837995258562621688121639957330287215283833228910818685934801492621985745653609962443508504634858570467807211630284267551038668990149969516119692238840816599475472862068185984470667137852474477602083736860156225785080002150047357035242158123971065920577279614285742134701783470789434810195790993516842775432595092570137367049261524949726066931034055996772739068687677305361852816261184453524173331390147083613405746458037736814605546867465153131955693963598899471816323778653297495521520425208514776306633044211873961830841522790867836803835726522063968204089326352635708894659992324763403209304726318017684694003308358907869260170329728354893668487935592965149148995174758989652674621958339645862654058306699832780705425790733302492856062337602147569737547122459017112330652649745569947938121925787095823876688010399756474232787211033203284382521839719913140815032884183307809511913940340740673625047615232847908674840206860243629004166515352929203520828790919846182753354437715447596000070040486513134676140306818271141438276390246893787461051296898678520243884147521704710085104828934551662948040010534505974318764093862780053040763155660691863894606610386557136527721080771210819112010998361658729387553107325118554628191445745675438632528905495617615076686696296673716090323118658300200516116525677183849705173780917349031579205135536070924201801184161278039692599658138255629159673431076049218990534180446844923321093783902701943941909733494936831331840665716712639172821572787902365648701374900829999322159232193156170238309525772532221974693547560463720990684898540614964246973117649395506689546772673839964095181876173869375894646653520362028537786285841054993092771317241424085349118624643598461924087153840337568077188829818156279888309534121550640996196214582503598611932272424196887060148308086581295669577467223241380283170897664942210759362402006956312943366074084016667823384813040923270000660370482677552135942727397699764745368230071085123453340454176355783041158614103360777236667430613781166527459928647318069461268668185256494010598496369535961491365482505754392713342353994759064820515368956155053092986932630936904464777663313044455294588396734727546074084562919680768706559823590296836913273821558882342417883075943245277619087941497005045407567331863070022210407989546568977642860595143340853652718232702147576424180198587311278386366627366180467349932527339797198904480338971498983337371350232015440452916310796176706007733683901363389844684562776582968380922093760705099734461235491553100788477213273421548917899392014495066699660523441983484491398893525645863506086764654886768947778154125376359953858054528148298911280598380643913053161928310352187674552859929237112834754896643498621724243087478526260233809984466003984736074181952563970514230475244610095687185241172298199805789155800670646925664673794370556760107130901938566203609071466015835760409034355882038346066381217153261621162205647106132704280480819157585744858073894302425099990624133510159086479119945082170654312205048515412589716556413154268119841400829144430446668822789123962015515756734687385163162065456114978286165015042123077446896925775760922000873668709804639502991017429493018468722343836037427024314876911805539438912903408548406792656029339522404958784825010579599417495023569003908903278592464674910164740485519248590403432275891428873177817016769747653548532073421086817316363409524709702900159517769885504988712135749454651121254404719461447793666640993427924436793104672022558915849691252728139004565016923376587075408688905768822265949800134016830569467701717513267056052530932538547477726423992137258566955508714654541857884566969017195646833020663874804156578360460903314322790142268253911715898139942790988433409978177359844742937219153581835768035482496491537226127640218303450615087268675646596001289334079164359244823404239490586055830297104971997764928534051212364784605368251431095301795395648986802834470953038286036543403749558757844294117983581842376515355727585953191727826037042105567474476408530059561507248731916121929894173305298948998861089564659752002333191506772670657359592302151068330762126388197925502091792346098314285710432369290664498792008334571059748490804789063390331981420439921297761120244333196173650869864769816183956985650367320515586324013016363833324265884957907151531468624215787825718243413222203035141264937066509453578121496791127534246124654547317273426321937384465349909666674534051881711782587084405693999392489560837201844087467736403834214872394662494158459603139983245483502148072337325211962834799768158309303293422249382619354611209066370480181557472190894507071822185390270524888725979289538219155366850833333796700409934768312377718823979818772115006830706180356522296268461346232080520554956678906657626422456488094968262316178421419988373745068986132348484379324113261761632405083563657333917154024168107716999633501798129780876464516432151242803174366485808673700005821444511915186313767971039957822890365075511110155806630504348685010979388745378462680953129721559397433492969708458593685810733325300244725531128202763586737716753708520234987791095656317896090886628180661073616792111207141959295954069941808723805596036503893813245111006829598848892673157614415321120775031249772462060068984327299738047065603970345988525497032262901016288385716220934055475656804516482513292675376200124587902010695453322778378113082969518559399749279612976249682656261624490175401803360760338566524089335312518516143075908887703594956757384659514838321480798824431993948771827723461052640061161540154314573545420677363086284488636197526933901387412219791383881414034536014154517959456699922497044996587375994254618882932635919363759329757748729295494602659314302070650256305577606242181733165823581964098702921378429119223603347454819595635128115032952947144838140481871934254548661616369440853594144235468936929561220838164434345292679134603217443486972521948147270793957323571804701211022396650895905786352969969779095927288888967038866959077898988824536111906266060015286184507380117553947189941811789863263893138156445708818512531391960355102973012477869310194165911363959779933912557724461604878924431670722674579157125513114017786632042396501057056995614398884162721236942535138522533004874102338652015519261022872654101742064102549781030610469581551028137063626288302593226549038140138131710863579484246074534531056397063151693166497039358382295310995666099830328284610140597111507732921170495212330564777965235755988239555153238933609497629163564595921291953935138443391322591048175894823398833398114929843539066947351267391698097611104281466648564078596654869518018230502206264799273389838285919307545170605116842705174662037271854241136146891203878551990519075877037726126101662127321040764543558362061596020644317189098381253735956998854755924054896966041161368103262524488067212921533706427252268470087568090218003481737984616121591520612938384923068147323799164847188951081796496433319381198190217500028126716209347547308794804349168439604317544452997298392406310783161371347366249912296340672990854372156929401509195817654193892505915912936904772609101196055514754025171087615744974977810740262060348040343581613553340835830535554793799408385467279783341337792185391587404100672033020745029648088877333488577285333112991991925663507834646112161890511569674479947455947283739556715849900383430835696605144607313981990855814071884444234876019257873896156885668839034075508137271579702990390236030737073355262845086067015068767389080727920905017236909689111703681147628150492907285600684963617121827582972098863895832980142666248858502788320886962552738298011616049076834340508003538388787581530804418776700674094067854994784694853783653500066225143317550039271291343980339435127297624299918530077220409109552393759221888488691876134185300571325622096673796109986642017624132667820421926940560234340627194570059597757931276948132415183813528485808899900408845840632565782278003611949361869102930597641409549902302249977986435139889490080811977213072726079110880837151483848705053527640540926808292514759397788211530281227794865930545416781937400056316331900513592669088600568451397842252031094430528814396526488809034111860426332782508552517046338869816460415868280682267842603635886443592344727296837717496736738442382625626036621973693787740237188928689484713741579177080821552786552645611566248798435750270916545559330059264495934778737062269239602558913652168981727796604747342617087177198723799419971667469171135336265524006122283858273241412937955658878639539629801649964012555594337563935454972786131930267197249456696720905081207749822005993927051963274601784711440803366200087580174519638976720029339695509250803433053409092992638429389883004652933370779849387697534818148921923382635955189152805241560327284569889891251407343283612253938610881695670230684771317928625907983399286520458154714257979979934374187712458004382941211011173636988780296416825236901501209739440622615995538927160055183481557636586090000676197914630466371873928016271132618995562569508933938850106955279214243532991619749598623450446801557561759393658203836010250045540977983687777121819239323951723680173901086556053632104771711555911547612358137771598725612746383992757394361114437673766790246528904644837657185995688116095794061768610238539873774979240051688419327027852559346544470213960167276129302032601788243029418738712069888692685384345759693404353064000746780518868688705174502584324475647314340490178371765834606073541957357154281725109647170912197374756432087006820207619843130103594771522799744332397939429030949022507153466314416043267069229187166629697896083750768197681060344938970112518837710833224886185303242206856203242250595741216553659418367612229902238251565841798806221964481941390061321097559554581829591707673019267755216150323138628747664711624824493860519790892118230058774748910451598875111945525624734130373573139621160933416415748047120378878840251997438944592525149766650146460213373017947617541491576583308376585544778050596372642457306112651805841148563136321751279684814562040180949899991901440878708319381143383933880235181681300059420113401335936291945634270891391695564749528145529304731202251546031229584718923304367958864636619857428550855824224778335758799050436633035127927013502296188415470786515236106741634995203216346528479048049657471136849831235595677624665315148421799282366228721839433177537589961615164156862885817437648145742588044441394363012736465599253226531396525878360265801317060639775624949048381569835062779240926885883941168245458605672686796936545581148469139486258997415544826936333395467262420897212321115217892484539331819361147379281916773766916373500725739649097655583170839861305843258186406493422600745297863048317173445634081747949226047442501636842517872629542867710247587832910219999138043121279153255058995769133811085466835730260874976737777169766811114754956720450097979608986512645485389147086637899518043203840284878759386200054497574204886099719049075099920255915700623278168035188589961698121558472916144735415939300940976182258507843767725416255993119174393918919997162108049253753231806836815620291179759606551606623368165628257433631069148685329224723901849602045410434966640880455506848542608338814909731399133966002758139307051570969545990995742859251697206617561332598888883582905325469189171288049038825276173014080185461858216746385872541747792342954513380991708072502544953093378027295375911801879464076239045506226957396889563392617597829333490988130527868407060278657190639967807539631509351362380421247595195807462563633030973001915144347399086365487734203327770828752751861744816004246716136275423087359468706608806790417510740309697196689657149988365070997501910467850838929782724060299449929417132503377288235342505934278254629617027722137392070526662271374533674672238875162777683810462590221927735741763535553781804803346936059976675710082611203067030219156932277408363142079035727405257828585055516814141249273811991060801206506204224877439445168264519876400452362726544871310555780569003928196776728177198854757066370208246349416135746828697372716086976980702960224958454326971586338346787499093901480324796920788838560464121944261402501753079650880495286054218137347623118285290685993474587285345012476182659144707592264127295645440197800858759188362572324374409792411890351044906997497273307758300913712819845186254838526561237625043703494105046846613433257207519111579372216069460457842610667991273710049828918276190377144061432353163965073667415058546744229994272020430396207637064643958718045203614429926519742959635967017241602512773215344391179529098772713028294395172618353300753675210225183414418766569681707650222027158934573606154782238412702460212166835422773998996985341421781072222528788344786832156731917361945432278105259955472601093988105978050398079823571105111547885216384457995059296113168474832265192075553870727746499841744517892178286094808812391033465192013075877802162193600555477802973688292268493888147398982159320192197068276911651913701985332072349539247602930665944747371195771424176580911540348680646727946543848179374175252834752859264371669504040364328376598597869303956357586561391560662886973923290408934126631952748677183358751546018856509649301380894960938375262092300977462769145669804179935205933737243948499455953385905594386854375762786429927870125876190190820213351079253458277815368665341306250785999776901957747370378941328262426671037269435979864310479363560866125456970403126471899092282866836118616574728385248999650796963380856645855695221784451583110694569957775209939484948573553314516031107570418385148357505581330460428905545709806170610226544098425613614393964902828273202217884690766427426329899280452505128752522750004924577448930662543815482210298640594894264568652524100521147627979756481347245391784013694093547456103791209868600224354006613057155427896752717606685890743535125492122228799372895648734116379292049906948996731859342268566476974009035147433974690091292291890675223384547624784511267708180369110752334340872800017345508861039705452654644764626247827121016153290165908268433157104686633827180858624313096285640572432172967029731452298045030754023854205684494405158836665673509363817900615563565647497062202204995585918463270929275145923954942307196916547791931636966219965994841430444298562131695973305639679762697743941082661014812099833074379285815417842315328520684950864481996938838792410210965360667245804549732415470759798951283918040570257808497501350833736731366755537485207551470916164018739851727185253361192086953348619795765428924863123417987071293223001737850983430716035761444683205153728374782141946941077497263880931210978899708157952917887848195745474894260538635981845230029692245930706386973253108745660171589427393108614766560143473747091223896924868464789350900362492592043365748097484345545003624140493152935429084898890504734915798551892055933979675826011046655352554019501274231737638546592782141101996106711290900331507480316447470020655125860535088532979975654461024419760687908425042190143597434458319296644619614532863811199462788089995001229720292771640395126457474595834015537778509354971838434534604720706045718069024048421122982437377861245761028565999627662306504682389868897061321744615962783233641784128704467034787130437017701053784354036732611351515068813376268615862414813596147784610263404925933980731567416917136421928704782912210747308163288268151476991049264424402522573585274544952265610077050782045299525234443032378484102432469028585685841967343843023072378028332113103921787981369399088635753748289192341389831461198265095983091138848705014478421104562551216214507842851703570402722469233394661451830784098939470093073557195259934535321467982227406418283828165836187531841300518055929028860824942415921784935389681312748050270153925587989680189701658911330243518822667976785026661316617986095872283441196912272858324696295973015363312104120776269908499032460618006965946222854966759874346952460495937354895644056282487519484063451927574735485950774052863851049388381214943625244484839859898307927183694394399424553697394922032164161193288878504495831092334883238539273572053307474488158381740902295973707248858628077828441515105315816583493716774729179455405153232668591844366849258525960694014965783651386959571421431424609385684937465900388320928554827528765910028271126213339597869894985797485085011529380575942395234957665138139357996149618233263865626007574357940795329024365741879912486766799756960976198290669465357187565959302073765756984141288189004349512128142720914582674513911941471583420226297495067551639976586401953012281378887174714900250725255535945570125777105760543107930145360157105176540397709387792638614121919204977731380661832955359895174091174027819763687128402701936695263988360562868969256589481004999428253805003930956022280681946446382994062089834548128770130759907120672394570569608694061426753503002824816252301426426427827017696079880784920491908170286156538761370747230147235134866437051079756890082749462408508821900773568998979282181260459456400959659048412686141143427877687212654959931575710716480636682849098156891799753143428706381480882441915321960718571756846823533974465708994965077520953018835743953019905002926374241000662214015403210164729127533291020477042004713990960346567093014981876553846226343166894580321567849161928661291878156147745749307628930904416871370914561532993430738361367019651379049821088725445461839730309574757665375890422044970011710760323694316502417282219787681044908128522071164659500476299423893229060638989832375211138013091897053353467782238029135863881959237835261256240591360894467511885774924847145036498357227611135729117016734983664418178210274508207123723663447161675652610445021597654684453460958893947270114010956366579939415733514814039569850739991976094327920281000308212290939916201193519018136111437183944221261478491793750979937166126001914323588327001136475317712134493376413282857471999673903765248370352616076153459090242346801196837030377247489073354200010052944021690016611375874618795011780110319604262542457383070801913180065142502768200669906580778767304872093359274861875295856231824560597882761577863419839910564687916708932624257478040843553291503633288615196515667968488723320326225028620668174430174050531313717036664779876173961546580702397339983330755421995191665945281092173939987863489991049955435093257600756170517410407118923155704585507268297920952657981387065031075938648652915339447335072394248393761253977438833016206597259350964514492855835707113799748696783486378216675594576928248817750996005490762991681086180126691913136580820856825530502885803714591019834232882994097672598728093233355034228672334677909376059175007962049363298349310817005905289200157553359914455047724102614688138938941482393822066506369157892442783762864178946033324092374127499296150809888919962875996831450415454220958365810645471824129232181125868208134820619630423010585533609053877662910314027724086379728265891246829784631862648090674358378104974981753142050430787388106658322628146608262658318329916560405225719678396280477797718949555230707605586796138743149744327529254988700151038205033558250266297123875898496647870581289278198838669259556762319391638382593121881564087613814286134253382607103632215872897065085066292978854917927668165417197055283805711674399901098122187184748421824351394259125481301149938755724165461078945536367358139908819687895187006074041716750669685971261481471524194404491453823070150235854053285562154547806495817058395639377946716612254996285097117697876271801337555858980374077452116611117980410426387599747805045752317987663336742757846435117616345639526942183738287192532460164410345819572826138165759766827000842160061596438920191467818050453920687285312041549312311473604644548965822068425616948162146407228097651621729376095129471677417113285897946209536505358310477244680615081466118593572874867099139053067520649469113827054822438759520384185246139421506538474662294493805102106204447815204589605853964766049304256006863882424634419341390082940017685351537638486963031987628136758481113794932677851127543465018237812619657426437686238100751017283705358527423166315629923376168286498584995192141801975079817948337962870396373315428488002405564722826073979064268002871268833145754243921893016759219275972177337285701614822278100631485935098379487931542342717469637570725829072434706711493128844137765795485731154626255934855001795825478272081796802473606776533096703738508799854264847265639467827381061309087147436066933113409383563350995144510148641870701024133145045248043977677183771524473827604015491832574147024277283577939156546528708597108910618428887981922577047791379569071208908453711312892538833625024085551370049246407253239223663896207833889657534773388312684667025949812526521995607921963845089738858873837390717446765257840061055935697507583200345430247444510005221941772546648064319375891194721481088586990406576870582211217197752702391278914476244548232156574875586523325486487767801984376021070345685600294561427453956564980442111067887028991784292973472180605889230453681763858445629974326807764853866776287192802930113484938001398900757552868315893346165718660249269573184739419503757475844215579990025786644327181066786641850835586877168155738157670194310493564952284706315313625622281495974600150085948645741067818521985307884663896319984276069756939150521282452850864368505550621978781423882032151270490916752872145586101834438954343536892557907428414911413013577980773021286193353041529459040300397923238449663650946123826971606542876104526390657056998069183071728726199747182940374202027707930850426863549296424417184542282606353924998108497345231451760360076770013714434943618657472348738535277137296057999648596069964195834380589701327756901412121534936065796207312552060036181609206106148095345626825776363809915059955444418039901893977738000223427790425408037742711744332764275633704927419181839342736336078307923098650043268449954413138192123498079262963394326140626095733817348358997736938801245510944185168444857628205002353362642686089650826655484169146400125674277892551975113512115831677960038955569161724200395377784934843451626655001359239932695601041820342531799061743667843244168577902233802258233778051847068108137763819840361805465625300898354111623784234527186240815038313627022326826443432186589426754954552556295213215509856643025046023023651523451460571712258962793851666510648008003864797075164670230976183168399212135562054166038502866320693653053359428702144576968925491913899383700621760141973504883735980237119344240845803778537469486502550809582376634531526507526396029346134820289428222759011335917795264622411771777350156378645722616954631375258865196274763767293616074826462578382798149297136794798900464037878677165078978056250068767699399240678109386026504213333404766588161669251581594645130838912150300593174003940538077887693402987600798436002840537399366261769235498619866331333722872553718480726393924243600697084750680826394684376305387013528847135311970719814746613497455847059982973420989267360073688374025168442265845328935238463871921818178914341091398406235967911929602472981625499208387284953010817115099903131807706237538410105489421998833817110240601920434212234822680955267956912547855006706899811304004407835854405860708083824925477549206561617715241847775224076657736015997438866199055855367827222221686287442111288192169852803958495266443837565092757815203688065492007808374885242057384821980962623344917593613618014282531560237518435092952906674038874447154187293461852990651816721652420963985171470070612123253052617798430473721511681728695522652355156739202310772899694820890243796839084663109516447447898501890885806716404837018319253383782875112201641204586656048379100092193044750192722776625821559298313015252770104003088301664063405867487458455051370195535108486366170053908724215034754042304744121153620464173044114582456562564120113579730991008452036126213419987656445221496841636348049926402729936011907307424907016058763355729080856490842392354847211128866256255202996207229479882768042137470827306513775649414598568200853677489811197091836214496471684686372685496733560933589852515743722851902956513849629892979324310499512697843514217031143187724534887549746876396837111587915222630817687430834801795458740512541276564736309000172134125271698953888479300817039406624021485370812010662044641718633492525399616966572490050547377480019740004329238303179645109288699484391299407899681637416685324237742217803844153121824867793404075791796746329884523368748619919713434868368266840669134135436574927350835521491036941265002693332961301216024734871808963774464976147007866098304341995654379513794816149989998747963033957948665181640944388733195579403272803013058686075265560268645947442471120426025997885175236550200310083971265419083730264573838929383044212862042916417529254344435709555187252841692938362741714547977493276533287097582376358421309473442921681961368875992718880118538200640142422963626037859654042783198396319807138313678029972265036227260092879776608602838748562459071750236880002792675658849765471649493152055909467050272923800601887341327568246791901643555748443514724940829797438871552180975483182593855702656585385398096275457344276765402854656828091763594646745811283012435736709860740905865930811677878671918433788188583586061081934646303896857689355086944334542425784363643290178465110385953846210841299984305018891061576129895907783460293330591293630187878310173293641397364192267065189941020317856827723369486145573572754411394858223509733548448983260975743394542185305031751450467685389366319801067665756357067008417226544505605161661412805570400910911840514662290162453430222293882915814304845695449568508716332379187812699257849174665930014842409775570024099680184140687619235774740613361517526210791598834435647313564442773817155094048384347486622156193909227585513353245776933163592458489502903502759194955498864274853459094827767849809219369607200269015841563328031223143874805599688507068400107246062116511709912090620632930741857681602048461170630233766681729839523501402115982983027053549708247774609528501023880312391111232433479038089944611246364535581540006401025467023368145294785532963629279264787922002188532270916955855122067524507770506557263082584751042692330948669459399798140161891215777012224928121036675265384680720048608709492081919570509888465111216769692481655702360575279099655602894916200458815133683514777227363253584044465676160461555881794293899348895670754861815907475691786134220399874119863838865809487509271154245144547686311835200779176049347844329614040284885498870372021371506342733806992142251886647376747085182628223427875716489043901005118886833643133846427922939628582249519461252574825117387346981885096425988810156768258849636572633598530941496013174727561389914901175236679759543675364228906786999961666998819818728234862363884953771589786076021331961147024266514382116448623121669839983838557102670584183069860566030667406977535435689396604990701408804294666548051420133194323744948380871047846219611708303065092019624532298725103139633499010050249799980124722563621730244204654906361999562310961128058277696591931934997534658011881422044817131588673543836055998812554842191685832695983474920556766182795925805180680805166552542557849848142325905994301390832994658302567926835185913160420303375680776907746094827955221418186279816815730407588429984190471721189597559443216347072863176599323410602800774770697416872848757323445665256569170177056575228412703904415852297545520001671937736803104068798359516322566122689559508096614623264271767001987060909544867944579751060879803516440834734315024932434932936173975675621884584135250969377130073465685523638271171648571347004485367885084889852168859650437257350729362863402095178220118330693818605973139595108723486208564931493017862568628848014525862313819317121374750722435316612088512058887846340964332509862230226014181901115201302553325935191367596078169799222081652327619625520567587130141479222189745396937078728427956256174450698429772689401971542879853288372294155926255846571293796007971162988636177503088250292628277710809980370190129345876916960959696554520154725430314518216681887725401562015899771647847166365176286043638614967602455014308189217698144919485117791708856909906062272557940494606229412608978953811013553342768334078086803296126437930371556115011094460107462526474691284952000207745190736054261783837007486761292897013674306010260102267829134881527248625568207648938589418847659333089836202302150719418033319819088409831039576498813867334361676597209491372368415497646359030885252263997379211073448154355132518099469946919166797247367650808320123537201422117400947626534295667003885083163007334617077488938188023207660010541520049958046413083946410845278215794947958230388283862984966669153758943315875977976434302927320074243587625411595868365653253467918452208384479512747850196739176514029634649469128051688988923669943532582339685274956140532030998580018131540787609366310904522503699753545290012458062317451847785773264131653680827544288085552599602350480235483253686895676870385392641377833938196195063771051720343882149201211644095834783995902633789815088451723442639181888612783495783260725810364234114876482760972983528015581660999773654149575263039002863882861472088782171439426474831353543637358265962185759603939369925547296015776995791720077951143970599516076730345711109967173405516370659073397323652398398621485065324365201403584837353288880046791625302112075689846367664629752640565745075140816723173357559614442984352579946381231216138268010377797562092969071972567885003500201339826906392220291720483219150923500806076561183871490124535614370594788294624933572771133284423230111213013897974328219007799441133588366083360792901516621751250021283904872986938052437999418536822174113436846061875585428154168516489234494582211800304091670975362208056635801618209592050506213626191524242573181241148852865685564662056164269643663203263635854666058649728920521572835303387224008335699077605209881221788323818810136337335851920078050550868575809201877404617862380588010603513973985008544680225257633253196224269560205511195089800878527555513330075323521509626509852968940577431954306835302124438358534350033043867143548820931872392153073848063114209748916438794320895700765727005274584314776379866399015666257093502817186024385289758437782131946343837333342326450852965724546780369904552807450182897449107080734811281532954867111237920009065880303530947502609386560945641161802973230235140781936698797622215601839678390853358334527377254390584264049401601043870930504681142480913852553167705067109229046168032073710996917997849683746816000159952535132247721149535786461970797514607877032171835723144943215530745119660532932857006697028630981262567367617622820990890125076441251931980847103294931352733555223683834174211081775172891369182869414974416274664301398153512141121808207070097249743413435543033349441589198003635270562337949605446397777879551955468473158650944194256864051074496417724134672410644205758324876299370802840577570023996675723045514203932446631069802351099725984686662873824823238520677236730217884239873583100791794160648643519335866095277873820666146207433928297518719597848293462500181877325995965872413706644900710160564197231019566710209765564755214553619681781717918330831872929261538138939438267098434613825704248295595148999941600702930207840943560988257682189576932170369089950434502219873716285800435796919012359741190471691741260818599118275045259951168953354733105993994226549596195475061188971138737096241107544422500295209569070307008212842375667087165231818501281456227160092150761909985380314915181039928835537121954461707480608464330678124391450080833361133483999719015101515153608548584874228389102299406102280560286574581004804796778896019649472207114405868148486139725280364159811371608768507788139693664762975855835510259841690574963673008889665965332879439801700552422169883965829347939275017881292341569030691161867189160282254148547108963482973094673463339343932121867692191279725806485358428544938484320306537291287683052941743304841207684720204415829607971429426571138092352455625940214213163707776462385892678765102358201033242681281460746540739915816721327734548912134771058100090555910432914457844622560135878473988431672471107663614034986919230854307214419295502268808529384626250500248151023938715723371565003171708947939672995478329434107298692210682534831133993174463059254694840109681477262741934325484842324186619051445163921864051631427437776024570356219289973740023167082310827521154135698668378366453359601182943389260513853261352846517954413569955137286454318846784784776305585008066120968469801153617754127055207040029867123864047703150927230655826146910236937947399262607746056180980407234493341954536684905740876846898908092730369995875270894458269389589902584883311365221725029029979069101901117916709800568001568081629451944047268413230878836876684244294069844180007561218182162224861429715903447298522727866838740053392752011361953422287485470497653618077600426161460204514175827047256639959851879981604067079991204714106294859751968950501823203721151310640546385122806319374943411277273425361001827829809239973697391266842335651291423391334429987432229436998795012039186959504599379543676265383072697970203624864967633465487074451343569156173157682861588781916546005052071293627329445377198760348202219274978013888411135091046972167701988436697434753144658930466066037463610996964458035638106083691801644665692518067271564552883453763780392938198029872134814240284272935318726497620174455167768491125472225929652777871575821754377507100976004097617246840406044177528713623094438161632513897989530474472355791742966403889666567267096902828992098703096465658793553388056834469319772155814116879803622118647451431778822144897204610285489668746637360286586854991220958464836511915001534084424210041551346328336542801796934776415222273748259569758421366232767550945300810263797892766976800776401299952337504232329157193731161126588097122337806420286139879012391318861813758754190099890113456105340588913978785632273302842995552631639383078055316711346387669076283512634873276090675726201985419748020422319072211549796400961721689284194890958055897999230027835226181763173341405452919379628644210700368361233810497538284814073538302289898753176145052817065658397329256163199029617843868585143813294621899418092681879957457660689989067994703201498088697538695864189518376591875112674262597251875985736463693377568752392252227467150078254980084170860361584327193182838634936185713794645087019070915874247188490528212707840133340787790207317520874232914619814958040400824232777986151190261225091463917450588691010554577098149877514343340500790587418911049146558696775334496245965219921003482829146648435614003395155742363086602609732590200408118386455729010879858825002706992290002459572728296037077225711324501371726633052923582610966377226159860914973730437289051248917513310083033678708435555509862531016456517113126923836394301519468840197155563293843339626230689764158965496092498606429197254814099619087413562657415095806256352918706815099773396799966336003981962075098311169381216073256280686034422106675362704757814611369122609725468164516723409420248370071657487499209187869253338578036871475751747555813486226553533461830211491845954565547543427620956260830013143373701670192814012597794752611375881318317565470113371463334096332249410676211258606863789013582512069706312934780946631396160448920352629135823165714205738487626872894640263970226904746477975638372100676895161552052629376115036999456400237875303798985826760060559066435010417381490418493811464929338567245481274039936876234468973288856388184782226161171891547645375418599573401859835811867864236174381423439741074769221685355990829183714151790926998153057139426397429638831783530928627105287173311072322935672469686801912661852984672787641137915980198908870454047761282483159491607409555757601588471737070265464199394148751828130209147889207554573542584113703286658233230785169200202067310763650905372875968175646581943404309456556921421361387055242850348144644635924778023992688766668521220183340601691334414991429214044929490529398622820856522963611682239396235294161077768132457806180881832922682177842510449543307567648362131592458641678416187181776176008045113128003651823275565994725021747792645237476974611539907430556142299168259236260361651836884378064669390005721433098176181038833083452737380927038397616851420061137704163421010730982479508593410643407617343303442521643752211344906244885472135647947109791000398794786510928285909234838089882389103475693687852400213816972612842311868578321635347438078450519096929643076048624124861531092728028401058884858064342517560470313838762063590024593981924024827507644414940101845456733080056693941426654652621975312988693791499376871339569747374954495275103783115825695703640457642305376353994170648492772067667959897497808109180651024305008445579064796987892143179595381199553207354165202927557712919979682172936151926725732961341899470134090883956598396003855106143629331858081803044531188241183340500733017203031993987503529296691029633844397623522929639300622538612060009850249461817421642766409307830247135881090735748894326325262745887637030372016931699046968469426495267258994583127013353611380885753606656979246475435680277214261817145917447471369280997077067357045973104738422796489548453711846525056196902190363006466659013432622712051059082846363407069104775892884732309716265456605529302579523911139558491484983101758960838688869485991240157643134652701898411426160405758010748897912697299348118424442880896377842727701870101550128979048123672291228911047124701480128987967987974061762123472357832656598128188322653528474287236272585467659443949280367907560553282658631317914477634195003661915745563587173157726931885601976002073316131811648212146956966938742124261872284499122533864831533926000279287338482433684430903407983536419979296532430471023450940281135303314350388507143064266044015372813438466502096048396128178478813398420629525404967868679918342745872069993648058645372317077405519410873090249228373094176239195163581910810860685717681520328767999021369136369506888926543140575737606329279697125638339512525226087400886679448259283388150124277665755659519891032574961226013096611689922889009849919639573148979223823753897257544188015745785774521904562979104023340221930548785983443972924200525081787246750699364991667489050115927744250767592391665482042621135852987709268001290221409330216314435741961080280062654509238493784557217735972098713561678752533456180005254759475763199661062617468943020673628726136826890213085652889187172515537568546382183534608754831195764777809195977173160822298717353276217342629695821804708271808100340755160411238882452747366540583158732518461914712256802426404185760167630366519099976085227413154332114805644722262995189126136927378933991816665234396845919302263164166463693649135524917198303946847082511964069728194186942535312783134871164944423058785379289610902542810186151315116637468873796833040672106057157999872242208344317144558695672346930115760955078427783832580108093170734640357021096033373456523978808489616516663420763145306169393214724150112496151207095407765753205003594581651768355602681801970885415661143005738812171268278927879107455397665498528533082633374190060750170674509921047799628050096467018221929694437385290267061259732063353234410893800696542022250684561720868767437285006837333822440722392886772000627918322815777945551538825348325573691679786475233024664849886577930113009612978299681314391641002010210919988490962794772793727563979050928025292023996152529666530236839999606320665357178889471401896776636162690371037045315370778708512388930565361597656506589696900247349699950938833910004450730129179481292162082561963451928128356325040374660152253376634524611044725083180594722233738998761671988612239829146446502622560856969317715535333027997798353635710333778976056526233229437647129232263205126779374228581915989978386791287745518894553874323499446316878432919151661511564783496732794617615719508513192354774912019045874201946531445039775233602408595759014937652061272271786790874042135758301693546252613500537384736856230281391365814765154573733776750475744374128977496038770986543838465755604852048714667030330737728194619155803733690401953491984404445377340683239029782303894011805066053426545097038688028183534604883174060419506257272558329856974042323288731787503606254186447165045710046315511495858650000765393086564834848286114550853515357018909395206419167433961305235813454509964205598972644166930073139906336632205688976776721140704735331281364662635892558175998488814220926488737799374955249868866688221796256238707947058343956434516384637124696964226886518578128917514459539833424244917847171440669145534028575418460133124916176761892977339675523493629042654012479663862234019751208968891304880905593801829402827715607856453287659624645877615485419853985982799228175569213563012459089243911818967221907311291038820205639826857382010563715807393795788265540221774817650391461200059126900322824624603305377071056388489181746048049218353626682825689779044959595335624047706381694850194664651191983829309694982132325351292118508737084069258010084844340384838719137454406665572217306798653828319948796584538661874531054948846241854612831168740484879833391728757555374643580519543242630757174802661445147801529294780721549666472429524189875728321017490486197805104054148321765250186808603743917991132953490481940111465933609584846820918538484939186717495394277031775697003831324270850016067847849535381394181263793662241356700984155689983528264698629461600018839031764377819534935672952385885688012576116730928072716052790239938338703099692774826341708151892336539038315075681827897563963690775958376889341314225630922222858670045968455445891733581223528636431857132536929331297459754709871020972720934429486855546415588251333193662037130297492609056739481550588959643374907704975586077341227526611996307062129793933131520392735982141032511079658725042070043030832750686599388815183856312846241004709964850294221057798955346827054275802114270344141361597171619122067497049483194692624175679307166855354273761340053233901831088302834982751372669795975759507741769878075937060599387219255309333168604362820996332447447989319169234004155672777604669186592329090046238002209040831897551404588183122903968015217266355838546519830322197243899588893764877691497288541534387026731890449797427405026238709548255634071762367748211797359896029660436528890241901619431963204070400336964180046198763435786828842453873870101726187028455481328631338594997887200982893055087464040027383267545093917032027459596207865145649138320960842749842685155982336658532791814215585691207138436621995743716080336501472538341392100358841207533769887981158868959847712008745341978522783532077980363677708446763485384337617366639908629481983691457459414663139204521025358044342880564746189393377764109631394420464767086567177730567206791965496439796402404974800302353417064590688431684841794984144191526634266747735525008346938442854203687199333973643097824220221660201945093528120100360646375574204034992898686279648288182603522788606524475166663234278226876799069375641006048905846394583980249100365607549874486975001727268166842374059448667973703191238170732234799420780027827333504053527420896785896295992922247729811698982814122669757601615767392234956581117917931880065810919722158501849092441537031322698803918028068672096548143053883561951976963153565597187938300899065296042546750159657389109146033611106072417388372838517591967124727637914433175450642185353288822966925934715821468638389431022299985572432579990551824679338004698560178165496347602956091249915429708505887953534448817941076194106624082959102706904626869386449002926228354657305981276498337454170863099441822266266197908516810689450551885324690236154249182606512194131473633716744930394140043451895776914705780785255662142463570636831268278639652692853793623851060048091639345394536579026084729789252737961655560657244724416047158621107236231048770590803544195499403954147832683762409348225954627649647887725119103243408390893703037688674549465485802024764527567799532298363500560470363720526323497810937784543718917401504266078738841217339651440358118143932259351968410430777718421574431112037496343480201042255169059124785508838592982258839784355633417702016152741641590304547663995443342484069224290866381807665546273411807671857760612638252275444392061127929902296040822079835234897056459808303942207500727772017152678117460719526084764351914071613847853461552471907615492943028348175536248395130607064746844834378837516604677713821666074541141476362172930267929026457203263979317285742505372187585235417910819115108910913333570945003686733617741087370112938168161223180884505744904007444583495991922412000708440252571347424007530750632473817636015230598956848500256965107170352383812404022559960095238152341158930567548571235753872976427137352890497317064763503122817086611913942686209319668739226942634287504037469293574905336376299536204849504257710589066765615210028303608385157381030220898012878609429251373988253819587134821889641499683243810353104346259698649971817821971837232513948404570246632896576391511363539705948067673479994818616754185610500149961624628452965621776416792554424625598042215094414092247622042912928665917645843358010362721389267144015984247198258392367086505696024605192498288496057333551357665493644954841294611313593348007210955951841266409154762612957251152413282914939401712508381964538751673813948710846538478607124267481539057587541054807553495710385559114147445407642607912366602155092567102214816870593980906805262008371387188785814180980687251324927178538926774343075156288881676323321904521872844085581085726532615520950241888549411481863713014850580546800688340429087333057962193389049087238852558685706143414300632671755956826135343082489185011385263466763723073892798064514517762572163601803410445480318541799017271225257522454468424359679499109646026071977991446310415348083060962067046448856899201397371850000823444395119524889081934553425738144916009249213811568276449227111222093767522036123385366447720722713571408269286545729590814987624570376794218152493693423245158712933967206944333869081482194596286925645414691359579224357029954133504312961743344675157370189306096748038978361094460616583173005448616900496774419132319314081317607726276591642761590472572193136599498703430786595408577546437322625354170303133446742584890553997354909023835379725188938525262448113894547520116351902779371391883806154442071963421331029691719736816881087865687138302457661758755892244786433529180649390116838012836453773505929320786646185073786006433577289827277933948609300491433192471655938377029275494469912075948060322101007029551529320841005927648763466852205664284347599177068651014032336548993565457053380336619375418182719289725599116087798313036004624348326481396773315492577500614968151939711314915022890039481176693160207411833339605214392551523836611227292904521699083819732108270401240305069835434202423379441590263822811843835873659500178178905512338552732530093273235061433216963020309175602666676356212296911261166004487589826699015420624698680021612732603737736496272923254516411922351597475608571806994296275567194566619649445678812118155234032828403480779445581764088058861564098646509174462947098920479789716057840072509524093714052032481820927432170703808172703658360360307875409948869539259311320375031385026018917507848656994355135127109198415075985693396606838643563143151834497375895483542091603620775899725687126274696011363789399294263117408104452307869003128138963369267211864429604109485824003453802126149079635306519226120310656464366787294001026460054558508965919717409307348083651342469382375573425439874005925473780018297109252996268421964668929369498976433673777414020006082212655081355725450913495033207948499713511228742797710333605501815744386183309503271890721223613273027484123755413663554394386382469454225462303474722911117589764540751085165961949284383691152277520088638991369835329345264438375424529368837396337104846640155608354592498617942259584861450016068830642667283406187411602783348555120813303770796867167688838901938804690851274874925916857625055984033788177375463065403168396193894258966076655503668984862692971902998716210170637487803878775284484848894495377734292222101336817521078887292567027732867481688537133099011698407144416941838598844355909880300282382012190054138534976561954618919542112272281711619322140769773205655562834782977260941062858474267703932714989498839237772389703871985726921932777508523207367361073136972552107030876218789867742119073697578287280844589001659999097574272271530813795930083131066456196096989616763280385240744510637916879812652437943689601653638643665984483019396414917752712870709558358358752172063822838500480214799325820337375128861082919265498091353334897419991357436197987923594754120356624120884070542222032187646360031752098777124855131312311776716696387914035592260644691291909596451337572578027111692517443440523220714861643113472095261823273140345795772459119544576187510125279778903751028572616763466414817353367426630747004493536441080313854198976021144634604752289205925685293572279059701711604442987387412501289968139194856130748792128897112123711340401534467122412180828897499498391872381336152071910740829687808520305757915810614782401107447917058138336883692914229262356364754694552953432156326854385576119649976870433101598729139957262466763376779646269844196263992021910590847990306879884465047908324300567853896613457461763025542192587175646557364489315296910445275298937341881446232983203379603905757380220945593651131047141111697287430375456334318988625586118555928077859757788160116845804088935258183233766675532054829754050636170356402572256954121540015128153842208827893989894541934575546735018051967520051752745540105675408180514594066889795478775602119351885799380556903726701452898052983107991263169827998661309933565508905670575741487686748136612273908066419004673387984992248950191473794642052252330129944340253064189486066873876180110360795154762886831480533838323158112940695642057760984590483091682921863606938842464776470983913714218192102404035694208596117898238856778434545539068743689075119766640657276141883229950248587163751901177918813844939500706556894179107125754103648595287101901885115430990747702732121351243214152090689469437351308321416929087523490116767429326208392051173444187651816628546525478813328064511529673510214634531255375342226499665169206487219133352475641388338211567138439973872030411432593606348816658032497959523560771480750555477711073536990233392129912047666095732997308928707112055113103240402941692890835292531344182853232988274635861513372357095779064991372413207754115324786918121307360326926254458218382460576509665397197279050932977734616796345502795941132963559407760008522017239897163905633898666280526781705855435723175891890487757977501369094239577959055620702832707431895120153554098849200766291627334598539111423328426650497628494944191548132684770626972053172651745978194059622554454122992971561387881649707381410642770113090405045829286384985542841194282376948180427902109605580751356645303283098357845811734550576538308588275825313786991899362113402657498735211913844537190199979176886087821774687293732432118723092662633890095366248413444667506283393051462636723802991872722891314192875260048169607031653650424929864512766768663292490379507624453162844886146110193953720503831925872067801216471272849319432750846071511111882004894035430323150828172492571633580878407318257374440138634077372492962127111649366598464260008445166901068249497893197389259561322398151824063135604797855937421275515837991634884709330765207872542161397394403168165487428415654211067860339198075106346994919135728149145979069172462080494748690962435362387372018176531954831110051917551231191522810748276127896402462637326982193936757590657325190044951960375115097897515808177315653720561916810869429402236776202100186601752435839063423869894717641732575467848020028216430058056471342366315503224367591689634985064057359279507031040917581726339737017040691709001551084863724564886532645174953312620967539968501690577591309482038919689856008371258116587589162398848403315406836919211184729205916191813641896029902682941553687604761088978522324142246497245766234503109421404094963374216848909492594727918944426126253427738651565096663086449205976281043920162093328198749269645788066576092686911831783097862660516504248096715625860857679195413139866347188305544667067023987776357211602034264621820132263176874945120441078408387628741117949456509899092671200627399848958041919251471240736283442956991332621935549157641489919364366001746640065421496747964733957617492413811069861069996133234835478282991140779894509575489190179077112722129661091350003839054768387600875005119541882075468633722023668291958277444052459319470352720003309997905692247898877120924404113949569075042926413433896956686561417438932152269521186243523796394735145582659220035237158182531756125888542267368505359103411997748274236249014270100217850644324205492239774445392803072798882779277029091346297221954688015447420024970053327508155654177152465587700268965241906116797728708099867662316313327974798978077092331196791084054754112426755009402988444240073988300495091597549950159736143470474673431435167839066212247233217053259262570350233392484304161440320593282314568696384409906808834540144588583237854581297062453631113684268231605859881953800529153633343639184423095288255142296808704824219192506923784782527289451839722510234802447793862946851722710374759919415841578327393615514460756239770077863695963653400463351420108389431218826221937857118323394242962093126960640677905198013192620197914598936805266264396090062288612008340313407903092579336114794839047930462155973425687658632846823927881789976100145447138889570138641773595649297700932822086601056138674617934055937411819509615755006346417426184058352205822072455852139876097677042325518432327263497918749602678969499281975463848623493814252800335223093686419687171937990105627322637235015184692083085441998834957195390643871223866089236198867321200948661795869591426172133616832102563000345114603760161632177019033242117710426936714879402625615914262542374640902488809332289461012994414433594886377741499731009834708424620975404441189896950915003771409740912290400157614370601521678631923061032328768705991780191556852461922620176362665241755165931678770693853719082478665898103610912438233682189896605267156157533550580296051699792183058628032076694684031078643902462382784479263413566965135254762783202418398545353562183695076405410835746809879259360265101879210055535990295405742957788973715354429594393775637608153961287935837332934721901535687132047447566765723478727211184318701516200962967067834958725297131955343066856840344145571278134237224045338628172215702193605904676313593625370428046738753660157342444511143342991890197880801714209151678653383459665991908916369588910487766637002050228492095320585018243602597052299268032313623179456567942022124644519245631346516448286434569498065459493147206795763795303129209758868501875058267153733587342781215208570286369669099895904806249395955225279966585603126821333888089812186588271614386145548837179689057557773510951945380346682998472218617605303489265594528544181852417407795255195521022832750770485441815503472704038091576517455412187681666333854089323212472589744889589410322297462345633083761761583056776371669707679762258376654302944910931553434017834802061079773019834021582634629474060768221261461641920178543592549694662591393207510798400022283322650511418108198327594989091619763946686122739859991775833554258839757889438243795768769016072409259676750982640357138779182989217751399668378269474434063230255802336919249488170150347070856038644638124866531370136961205464862325288590532258313643012219164108318202042056099060253016747448306945899347632315772455788254738585756123942328213330195648220328551308593170085955072598359694692077308439166995696795041186202204132511907837385435904671429689499470970795092280159135257241090040002164075403081946416342089021609217518613504748282363753674060526917719255483970022226428477626799711195797037562098900287181525123767653348702677299853625849413296180353224697083070537190077635215376486440378418029753472559036596023792937350853684284079942278194896748307487840664882864219610235063489716307851845803513103681919843589693816700625116911093665948568646364349767416680536518097473449575086604543523563789709004071381610959155659789868010525350592462029509086221377821239980715593942886873372192168225222659608875247172373520620744631293073721150952428699764683990744291952434846602068967315806200734220720645090160930161226415652406845999572348276146465869311531995367934124779195695440050640631570580552448019098451339398994413925271722853578963122048247649738879016909926147785201117705063219998302483408325318113846203018373009842080813001411545087265386422866186643640464729732408530851723654658659452460925540349179201480335600492272885597658844173832907734889055141999974618356882750208804300670537747289096630705349513584803500941288178027181543634290345134619165959130701167582782441634093526693455876910510489432977468671747020176842406376320710650901035569358492370345842821863704490587075385588780476992587289833562503422155493751144082044607064967558980289203392351207796397274532259067337454268288723328789706256482454309449379806791415959104662393914824124566662735782497370655492046055615080109077842224643058246746944438450405930977695246548305316393511225414229070419898835256849042066080328324129547805570749117300938135567837778130473134656157492248699475082757657977631845334189175970999408539340167132744277606971094436062209906686666609119372993780586509353654036418638917779335486539642077089851876607795824065292374864797879033103980663589345089639875121715654267972917820095377439202793473859759722024855018244236378053216950125628467539474662321127935835574644550787202047403412452519038280814025516541911250944035616953897752153978287156822628276238866239602125955935477086117604206370786876547372125444185045968633083628250298478508929882445303556332737015020266959928247356313702925716618299712523234759649591656674215254057131937840478134067373642469877913320283151625077918088364602533531847737134016935968499561868083056934852737718820226036392919809808599357558091207015515833544410024513865103689741730078021849896940448724942229912522000183565384068462885107361865120439645228611040492658327279305982207568533692629380254883409429982088230956174741954069893280360124753364760124360456825693920801201489695160035705862239163443329036587664052520900073415359980876627367087163011916704562048188125865202570736737183056629017025621741770742785381901334369192456072882506967607082933804210930067684735482734464396200422521744182274255831620832560756717457935650928251143961518080771558160921127119016730964152255065193441767838852534420890118913550965165734383676326259506978992288060046518709849173364303267353453834334839411906370433794976268539933386839745772814763504122652547948345204694576322359012816197838144918785816034463446211316376849782798695699797500281207235491204609967138957249708289406255788988276425637671154293275882370229117372151298817861217445487869847805635845701249326080096372381794841163383720345016087449068516873087473268215313910854709195860019123830730207253299591435885591835819758991137174296465027944809872136224112931261114669266400670511841066334719938913721855639620250379754737492501044262403496954674675116956829746816190942864933594890619253094043739297950255057818632861745275709597748773760573066924683345414978513765896130645434581579364785529958882257430973459614739368459856648535116609092533546048511798036281360431296407984885575503466367094220078333678687687698100169833069207169291790916126298038617661757161991431519131764543475036423719909097784746758110276142496002310831658418653166792565728234548209218163548495720483902098145958388656646922982783363707913031736873176233390653395425419159933016246738570443660468162475766347889803808828623545689586134197958030079509533716525676696664468556408317709228885541529631359545431169196343203539557665598644920936313544231921226285163683170745395021417416282730392167641894738783517394689431626536707516325261654582924137966195404763139321717488656869214864775490594667245936346430972832954202283487488342735900081035815808362591612764875132041012959368966840741616171093702985979859021196044510787276449755201632823171057717632422459871136173932743750860094019950330163007321539268850756199748762061517834436997390102733517607644508180326506277761911790338573004366928091326838741082209241440982440819840840581545196659771891290176227226585876386700889984799541633959462421135563683534435518835398863792614680080439067357294283619244424473524243768617168193193241392549310309815598880766797687079684469145390048503269386667428985140609810747707014390965670819571948531967309829348704262755499531847649948635083882037872597536031739829959289470879775407324084714977769202793862359432159074352727456089693519402347007906038816290100894028974437511837022574703889643421070407275898352072395135139666962375875657819441616377007739521686623907743241015179747405127336505370632100111026672381234284109510125188376973953725130906040865577185024860204880166628506262948672252838658752421267307300310871323782231609477243139070093817387509652594022092531586973904022854964012334760462077837674897035195045686550786742263637995177093035417072879644689229891789692021594830403053047831470287551882580315226512045879234645768609443275690620939278444146938937793410502759810225068441866588803719773522062407795217407791120897186238713553105800802403998968216476919052489774595365979377627878753623974643441242132535318402965321996197344506413520395855513492287623645174458386126611330033438581955271418692327369911730540439861776788982565562438894172380684946343130593596549435929686239231840030780316552074782830894906297440635258162450419002370036311330535934041520717016849246014311032312444857925704869436239869415892330699431318414048794950155716489832155378043627859541361753614848741302357348332098643329201090984434474270041102442560133594533735447749242509736131129665122860639995098794422741225227799939871387457487687375281151362155492871846161525751922196598954751967735554449635521164603950768990120710975391912935358498257530871686929488113056403436958863334166228942198809046688663874010021278485809583541855040862071856747639207968029483586509886931002344441357589394988182086304472585697468805207328559165547471729691067074791593674630878551647089580753983145781163009652200130234048046425483741224855666518575475270815684891023022024152832703763419063141083806845223650759595004943813419415802585405029732820814844836322644439831648328263810382176060354588117908505838994026680729823949376827403063779083560516488509535935074437893941313360092822874078644118287882504275223745912352720086530870668763754316327761651638835468416298834017093389913501060856359493398145631592281077033042790534913225556013728424515985011112223616939548867684153544094327289325205832890558128328562651594434327995582256877139130539539053368167933167371909969768296572605188417183097205614225032633404747762821998309203236732298043175924522311408678934158981185710806644984324477345265800454551327550759667275868056809715558875237290540122302387028044161099418546576479550976312693088290295550152904769111922858845419168641482712767992187017038691400560947002448318675324547034093852343126047160479535810110463777613969703934029998137430960779382167247217881293136496812989115677287922897068492433294360600036438843166395869545914029131446611888481653748343479043962111386238373420073709247402027623774590373891560975618071890353680389663251847005096072297573212262909805620263625037549052916246411019405081459483608379039669451215649530401489567399827793826060540744079200387634419398285965222981070136565500894485674978460544015903869700413125890156378302886560351561869554343455130364092951669693180996480695154858007674341195051512519447710074274114582794402827248402622882956359618819136590369615731322414666168328697694804256301444848857327455729022918539276986353936868814109672406410465070390631992477720891762574173958888581634963914201401319521688465282373498976151747371088306662476966956499467011381082678285876858327496843585193346219023333139236287781270462450837296400861779619131492303799385358848367441157817070142099879683370799893875890391968938657368366650900032633489411352432864752454357241657608404085731332085149493788914874355265797317161561705881458535002627188987352918851684508470347348591993846970369778171329032060115500346984993282295847238870089367217979470141838764118210572797121182902504023250112990520567995983468876911864544280558440264214732429025866099944322349058663491877367206424124408470372074390866072614078216769620582245800850928867645133350419347269420774434200886727665404940753649033440993915169528255901704484082038036920708088138988849006575953758056279808952380806474277798767784480892729206490783553286215391756701289799075217410892828796488869417718860902000483758766047020802955450151380620095353198840517705970635139514353636173379269830417664122316393980587430946474653528553545591487043077189413729451516538552372772655818853298565569676843027337532847141436646607987590706895309156790310218467368948818367111722851444544081311824308586128867066109273497946615621298452567312268763232389264316650198273387900356034916581093033675364990192092444018764653211565752746420208775329775561730092232116179310057632061621663505963128875133050193801993437852181528422758271530112352901364963665297093228217560170524957042175362153935786658587885519495217189177377051962221513421099495177240239859067037712217994996672860650588919688538725131098055515465885321509858133757702331540045548928909965425455700640269299174936413829652513161499287114582982655840619186121102856883056906531940863647883650903510730967860514197623237912180590948450210564650520528554559328333197314293293205303788924709697227845318789231769794624637848467144670324240792985434396003284928022062321868951011207407392991100102168512343444615875895926201254937264019952607897397333702685185795097676711812339638056453340676657212911693151555049816893813433219276058592636180723360531168085906466851390409925857108982859681202942448055489764876888113840462109287502883631569636478924117037679825326162603271705088432605789071035566574296970057943325287028873832337237544670385234686564499200630793981212649444515277613860965130974510511150707542415800528873734410148112524391991368948823652849604228209311869404936781360327776628977225214981462171710712648661939741473579885766177698469555278478585379458652869610761644061700155697693555757335088140940076296427835989197399776982439288695466215613082558340933878586563548100914019000637046726492211026164410229069426979745033473100921020725369494505562170415917985607320471818775713719410957482998858595365526089227355545299630954218255786181352439861956403697768671968057949495773515193389430050787236628318766636198447440690236745427169583330376471348593931146340433473305867884436523028120702403487968167548416540224914019383009405088246314827336085917635889654294688622325716526288909753008349448587818268261737297622613224233782270715638905219108510192516208204173149271909822853560441238345227319630561662193353950339570122396468012387405826146246291604158111080366646284513104162130087895768317182775703099245758289827541349898187929492942541787434231364992983196680351830031053173091931389683040272405237538202682135774587089985542497085854961589453872203020937608736476263768521835831684608443672264296006534332403330805601134695091886795729811760730032619624919664112805557826950099834725748299155511974209469534915403365302138300563325975821582148294769911587467612558138116887931843887167451837757688506533861036971471411913246012520136228159324748797254474477973876793782079799303795840737852095203342356082722901606852675587763441924553595197211229756282795070358189164354447066035296734141332312556618434890590625995479674636406800544459136621779920463484953343535770526951900410282568875035513438652257470769101908611073272266567936299075736348457604562207744525114263576273605005532310921259215441716993559563040172155036422556911007169486718109541946210628113466134821691640004811634143877961606274730131955192192033206983045163260177691051712248420971759059629254152222055046238780447859705159505601081185693926394187416759313396214556347420613028010974315264156547980803446712310636987944625895670162457384942411388868679503998403391650469116412099682421579148742051752600702217207606746694039109964536532365319165096813588548744328639014968586741487279935084127847178853712251968655599499456928923466914146556606094629428454470262508156092569661829265433720231634079692862742709521183268026045196198706022384602939023417219129258166731541938659972437678301685988399909847203403900466753479166066772086791243750283322564491575143941282926157410682070720441572171943237272575136787106885322013940742418734217395140660118582730001352994401934711053674070276476414105845737533202539244128085763383312246554390050660340314649083195294545631521382879855688915836067957892920848187454085181328224533550007598543380872015776622718226966394831836406193768211993598518799451592417804198730881398676326369032976415392086721348361592237211016449882113049705463513514663359193637730345054952479204987052310431777417229855585606175520015178176620726027710451759113117310914214830804669095095858316361974362188507347911401145842042457277818701179003978241989735758735934527278389919388420861930765271998380708197802418975277144115321041160095338991248992906638142940190895019769233801949020519329951812293049326997204928413041236125523360652528533706605223087530127418513693669811165448828494853415384076830421845000917911398924038862622740872322198457292145472377088837144651890539589117831701532499810874562175387800987400790073372078753711219031577138392510670555063860738421629689433637030079421205575315280792855089688808216454287489623778023730729787164242380223243500653243610525137858297272588671293156462942324537046827298575750297063903280314037343902171976784943615504832003296102027678191555677724641038686364108339558426940114363079664034532964417433022697207094141308678226126147737029603358859615947742611432059068998861049378699345235678418521592790686473081338756518394652817601419892742622123120902458190415935002557271824165524641043664938735832674443664394372819007267502896054948501037792454689402124852309996058763419298423191514482775527791509295311316411707410009936029369650999982503307163846370280994154366108469395301187206406227620966343434108121808476716722072184885519544797824904275893411129093050934732771652833265906827170679423975819039798928324842048486426288716485549025177626777491696248774733176045493752588963875392180669403128992645845727603188020622167061885997820354121578672432732081822161248470756966219009038532241175616347551631475422350944952824111396697372698559484095165934817865371209174824600026842698504183734224615634745594475010198181833649197198731578430961064516606374355324366587037762990926932953837135761577563319235306946826533759650706001082449492062655523371128187173805951796276804848358300262885320078327623113876115661694523948860706657233105129478626691184414860677081305731809558370325265276966269258703758300517700006323228571752315722760563642592595647621095893238423331932770337776900351930184413148894214777146204311957121421747580985562335826787965893386201997996221656244660153020755587629140533317525321886437631707408206703307707486254747778234957303756199484343079302107171970988317122448921554028002861668422316112934982195923568187170017086184282734285337213411780044643569014467133981247555460354665465520107242412060122170644398588067016942788787512811643173929031473540790743790802791636081073603658024290843475970565050122681895153423650174135964941680894859043465497987030595544945877656173288394248011033311675558114712707961237263986542751847837106257819274308909561680902603954816280530228260538948953926686961947785134278743278043988403067962568234284153901797392312793842960898790038469303798680565193155181083777676921380924748531475630957829708261401780154285801314395574695444068276262481080728689020858398049710455202307096098769334913897380897052698299232841612735672688737862187371963828110499801746013214943621116809423499115903010304917841090694693190008915474341479982910944932195454023898137438273556609656989702948468617701614933805067256559576857341116020112077428857412926160857181546161543030203491083157251834377690165129976180702927472657550138459791096978341721475890213817839608903200743234117370814954130239895374742193016778638902839209942494252825685126243263569184359639949878776787668529615283386792839163054168440487844864540687237495417117303537327938027278060840327837329915854788438647391452546348020490696489040178083145625386626326854498000660514361531996577820126732235031594253465158955691186026052130323907522095241732327753249511278421862679482256919275100021049147445751451643068575570302396709406536073423190563316253170335950816380265728168510982032379233442694436295580614862444630659618432291134737994464023453039096774342282466963721790179103687345965705500497398628367563405671196382007284030512908631699171216574564796390202352150167465257593256965637393542347971483896643399652548418607889585680211606914920930072900197396379887604764196810542154634007773353152687887924270245138292790364915352139820731970036448555540402772885695007570872662163037287598487352462356965768341520834611827538187062127495898352328848599635769176962228933968731045817730385304634611101231608030101175032089149585283990966672596858645325781479445878632463857565040415086875816637695125159043714257109463910804608993964648392812675081023022738516971341350561567120168398358324457001420552944161220016900937767996664987068949675793159255218229649587144760316745771625844595371607333335626734034325327905546556897345225039406458462934688007718735903902816244758046031074123693539692919906844338127140901687972595951776458210357209329617548461751770247593959773476924140437553039699154200399320627560517200296399541464868368420338691726613102640841772083092878337994907494483935115250951599600349392088938807870048440146125331195790366166673874155903987993486402922941075213336089203990082974770852395383894060538221896908365537284232519069763303395889954106979869813574438276495128779724653856803582770095915703727205846343824966804090502106067094603130755001631932475765880398717230864537932353409335091997150607168603742687348933509671995651354444919195714944342486658352730874662206505157646958827599036357906942813344291828321152461120669091487545117947875869779991493198328423762138145724352285539555353382935024084213754735907148255174527898692305915533852108078061101703315274206806011878685050183208967070874713890945881493418007216810953311204387906728212511367944208233788705022546276514185366164348855816983668134261104610337102687494420148008214999261036092252569749791803396736184131943038631260479550509724394015797788825243015775989402448614940470595603388041837456289609113383297186180358887888322690948892892649505085659025029679274237927909370187129914149240094613910516921925802873209524664935456414056306255983233055085814432207720480953796467155596563351043186088727401343448483021433507825237508763718822065418380394220760718660723522300799311323627546126900417680771064359071650995935766494466967592030097081328340694049658334681545178292280443568537201069840680214508825346078487599413581267517870553178005485742406033216906466593948657417254793268948462243329970164932808108588743625092574688091868798257057705621505581293229222908486734559518049360959530721529427462589404072715164995770140499299768517336067953968690404250054916236006597707351651270321050271476666982506743541250170614808706045034270540610560365429627082670667020257955102211941126771813505405689513378177408394874222453599654817981516541734171454941806901869016016279811671910851637946870950990753503530706137030742645411038875220760474564306109050506448656259566952343564387038634812216265627935072226853830252040489132664071686597761479822237609094107237313788660467955749523707730367271857628515445951156728955557218145377610740301531006091280823984078164603054342406627631331769367995656784014696002836122854920017892151218091876068654594132334584458359140576466400863152135465843833056707236966880002155082091910610102719522987243414482776466089552613362619357329127918991898406847629083309223528644016522589949479219575109222322495308834451430528039896191366287218823940015363851344201954726830027996671506543537690061382402280396397051875850162824171264299172652547156036510132927442672937875662683121651273024615384960399994697485876519875119415317791757306489487236374822242247459334360997046390167696054468781189584861103070341250261438853786552502870760272566273054685439174699076955867225635788843707722192742198132572905084700662027445563960710240405126086483526942750439170361153720592328744715923499039247622867551573030706224962658057442341415295580021950696498611764814539133438586472799266180710552511618972534457976129169575093877788873484374229543224294982968756757263318849764663193315679779689121481043154294917455465482192151646379609671681104829660795292776565777284413243201028673943476296342499379782871226552733061087475549345707666998721111958762545136265023631881195850420816534852627029308754086242748911340657706455596442249161547393754708077142782813019596064519163701968194586715304480058427979344523755428090296193711664310895042943328765040288411502794199054927993181948345641152999808000434866248509369564948411041135032011128895810038459335501862784834591155710522642726412475964537757953107121111956242964167194293445358970901351795365610053164032203827162694253929844969710753566520364217173709075800092552453077409723647444684097347393369691075392407832633744664957281079352270837225007582621973362095553993452400137564278060495828220930014278079900999415487529159562178233095041827202880935281836108717480505432672377218061858719659007793657796178155327236553725644556179195907999177788781190221855516920667061062397283448158827379383461105643733420549000948011847431578098238706383369487477892053800305532966554499789370064900657086214979391057228236211873628720557501756283730245673942604243244843244207145906708189657548678310073516727186589012932777904938083811926563319387002845592410292504851094640101081702127164000375378680271729927877707362933124385247712535969638588837694179081374406230716511167574706697546976447846293855624296934376453735159530038476534642970143603972305287237010249458938182439518059975635639753573963560792971611258888990577378068945906401956731565598176273881463525481909347142778534848897773490246875424280659231261590431748807903311468530635210219714728102881296212149746832149374883251505252750344598611164507080442788433825581763902043949954708532668012702599305984906718104390394678934840211153559823614068305006380579508176098833819222600645001555724146639468745935435810466149304985151814623582871374554414686874517798177110501813456447032539417746896871151520437738466904035486120866255835398809754754863630517867011292212281467382670067913722322749210609825420616726125390032485720455396545732629428911341910744170047001855090119870010666825646295232820008342866440274679534545754548987687077436663466966154774907882691436782054812922851819462119084962238946184346294837902302717620731749917659503911469165434347241819754677985133671852235110318161488926639648320038841827792364325789599510756515616694010965750050485934339189273233499080558929802159872324672554723222182038224921546807450573983414287944293991798095388529668784416569550010338646899867676491440572651019666751312346944875604403695304475812555033361670326266200133801619592278248901496201522064870902430025324483458043571264382616738573715433464036330503691059041996706927109703538831818870118263810265946882980217935552180450387961762689889856926249470634119230184268911500903272379808713449434784113733985032649758908823250026928685091524410184568994654214128894532573673975723166084367432845129934530937139004811171250915218235073250328487241681456699084868229226976534413067546152520577071948103442110393766698851172253828517536280345440665384711109104616141132236945522586109612279052013646755810299416839472739945693086576532342810118190060889122908200763629432920148260529841171916303366779041928724731861097085196831759275640958414909629699441281820927800384925538569464899654443484856430052683503892858501527480657671541959884694087310628403747140298172257619286667433588983301977357859731838088907892191280117968085680166036790334858929569469844777399934152156328458459232690776271990978205782069445926481333511911845159789482395838041195697233701046787309666302709842776522002830396419050530264666681955035737215392767372893171657626879094989369296111628446958946711990139860793532467054236168115539110507717863804398309446948876101493644558450522035747547265654236265796215698406209441135919779403741853380265569210087620650884958431310273205539185270994691427604749339093930247438588188088530626164609428972069807643611975396487226310615239702414601312166532710254235395684088458833406285500783544043915778439903668642374684555290585711411584361348000928904066695142971906667574017501865079835969408712534808547751055419009945341395409930638076788489560974195789147841970068952965708852859561757866192399452890082250378095291135643654760393058004000799845127879374215061209331971949449386364506060458655937776969347079923268833081704420450646172818973770937101385934265497675307490169856894758084282732995957355504608448056000084494186423269532065316582869656778154516050956133248162919052099345314159503808364485284842860957581291618386793700382635530966779606264139930136759575874983517165690484943173878217581650385284495166933284687169587030858458199856113809807576099086804247249101578196340258863715102650654734190539678373065412477701805871116840102748874176191523668204216544260392858562569328263513865759855296086617416820082903105805745841317700410218613943080955059458380458767935486741104874658433848230005396356212975237738416216198613298662681551282094092952587801352273788463801466918500220074288238790490236184350638472068371989172670390335400997102060207244101343131433398783328023211822027032622708858071525758732138858962836117941358074922630209864527459035930012957570868665874495260981313129605232300364955300593858794930372391387222927434688113917911541012692488886913022331307985570775244317423596933050368117373411963341160442667656850626103240402280498798784549974506587512726927151075231035801357671347162635109232633382028700254770740434588799110493804207902769290861782091094448591728887750919647172313720913186290761890417813181791896809967399169343171401686231409878840088923260151664568340627414552007013158999483594189496916391935832076246476985421631570754066358198678145964551431339898101841010375246220431088031887355234670008602735339322256438360225004682521337087374028118922989346310467558650047930080435259344013278334381328608760451381127062327811957008400493371136490737404775628012443967053914401235601671392058260837303245916971704696950385038021449355945696556057035118724738441859473669183546481783173662968396118615317719293357234345354352815582793649091704133975644487191141766446603388962700556154034018389329710374979654866650268667366585511184610556929543436650488685186522397969607423616351340884102396795579398806499961113832913884467035668928136151178236941587550245923589916059223690102025240173910466485294642110014940829137618536991084112171899749883624914704904147729640810112500754007835218845576823951730638571618067534278244622688127528532992939224685484739164177860003755336819060406141309070543585488563492289619120447023244263701878668665800554832360858435756296494996919595288276069851082246312827820012323208393185042337247730076100290237967316235881060549023612002828560852834029842351218043880013594079845393184913225026025642295779461096508483101030168665374304957095116287951753667568095171957966643844591453901146183426261858136859682989107821912007659994142894134903113920433656763351422789275453528698109757473228634459349176549581734633012989389720976639470113155774221722873592668535796818393926141093223927262481525879793533953024198808313942481126735246402338888424098748129216101984165705752381206842256404156238381562518641569816724322491261929090311141034417090624486480584234669660659439043617751685880547471136266319838676951658509476716880324152889306406812528940493437905663223636351400997935237992719928398541026725481264218748545415946654022958117192317523188126540464765991276124642383717290171924703613566465955182533086443528430102511993458252186171374474968575303092357619137007574260190886223828199757369576029231614390468366704841269172149649975500236383138459722755828101112881760980902385088281119367447209206920286460130171176987284253183722091231383241106788266636027583107644013163026892169100256215511214734988413312753216059357703917605246978454362924293250717377261810363941622219329652758830272422194379387818906729434676536013983480625638968233600209785414929981648090636910455757673205297572117646538824569236648989690775675459549445037181451914852531669812716927185531598456632984457095095845846246901041033672474801956121485647248113420896194518281915182057649635081790459634163969399052883638477237190468000378630824393255266920941408056631668565359490282061610451068880600006605133585356565727209133425337440751002165987590752392105710140432215047625556611353479461091258061433558232670327444049679666782194292022202076480300234408694203895450967884170127363987710565119721143961842130553689885002091658619967077684156378792991604176526263279640746538897604939726946110999555493610763835297647763354798052273815873890295798077278543375444818699883395501091153975830680681121273203296488516287812167754163640737484496554475510254247347553338541706017933240479794285376278522038935306882780911524784975316741180143369290886230832518640228647129857196506114402669135925178047578772057148853695539757628717486058305999695428042367900822929991677984727660974360951970823998114224487932279398468540749140600884522655147778107098455002218946944442092182536509009680215639594840661019375558937191248662451949256405039513240152303015453301595022923057684846980231349019707619519422687797446769872352808797673613955995884602548444570410130884437243885483535479942046137973137706159351546482398457203970737897651063572403019063399781009297121592473754783391055268214565268954300593381709331182482204589440182397106954399071615346801324116326329662146193204441739738288453914195439455477613029011837617139219940230670297658839411817995781195540480941203796947842579958494122682315104603689498837697827926784230894429219929013608304304643272211470001592155041047788735200585922973235264539462022608927189136976256670611683611636756494425344716540624646194466356435797394022850539072713578441537697319279765480971098497766440728036686108518304146852625516996236190149315470510958305364565190533599509816664624127388031138677167518875293409551914365453440356762870218342250153322464788614658997090137309794792897169675447026826196568419805737595284968296678918353341207459566929259231688483028364331674589606751300294951399596881327989934239644572316915554490959564242932084064835737033900724546567829157100889946948841600172661545086578166723267045484593645938529144399883094545319909897121805611199931975956930385582041904591565233822832913570824012569627243919643890270267076125030156141689867343386277231428782296301520628145150319483286621436654454032199967457795193615141291293251609127120522223763459783859207541331271535951110803202178786034009247148862514959758605341327172610354720874803654587730731057782837641501238148137424217620952594384177004104725432832088005153527726812839882309139944083827525738428928103195078408085068484530008091041940751242263313928381595281158012147027753021305105153983133323534756384547771838877720864354910566856017916372879993982795121142029887115402745344865388741359259818741398640708808036170135860602665536313079876317750472699182583404131988372144345000731078260502665263985456307309239819394143496415737047959344248438037570452033429444742927331496345453297206112201930396081744151388682819615264224951953661992381995709806688436615613389889424974721004605200282266944042176659751299190643332780456714242175038290750332762333736799318728411833518840521718208279390968789861331690305046440839958573633983061745329736241444670697420000047553125763716090307943871901920340077292732139331347106406356476851473431281408105384111500609168909443747621140175290488566197794338714019481565488458102447282179817769449907288504664114118173469525021462102219438149678976645262935121525070314893083635140476826695124399387988107581925028741364295628134751691606346008098714165045488268527138552498501418529808953832375065053497602141364386330630209478844546498145136081949995510542744227449954459819139899336977719297230928127066500677020405041672097949391862396286084679017112417778013961886934267224122485871162119875451595862127907315870475017386773558835000266228186184688200714489091184697235944369902081470689882335870586019263493578828033100373848183642278707839349802317700757918681340656063847579934936080073216957361181075798550105240937983330799425501690669701489538442733123451436536113503894979112065684333748889227806459011536600208932411594361100587912163489618777775392554288639658892957088594014374572054589215794157173915480733947067771138648761478628981038966240063476322015637497945894351948633548765205802083795755700169643648357580871955057176304568948484432964402663449208503931124182734331193163420885579016650083978825335703912808414663449153619497348913105128720321026149514883899768170345209265795495505522990686200375301389247610546007420163808665646034674441794218802003693627336485887548530842178839673832088674881211996277969013338678071095700895939828873250475848729317469209168045768934360438234134696755243586983809957187405140591583037604985023400288900956226817716295802052145447215431831147060027272137694201969586719973048371114520471175350963361922794513754472753145683934754373693857645339251826874405666028992804350096580208363317358993726647827500684715009612886626178900196370862010422949786119846404672983064371017829154893551755176155370220962267212195934117708288423353078853420774645334551857528189280541109680209895359524200444151644459068891489848814683999811782977576202313643910559578918786643394105322834508315355094169834644753164612445448852855204907754015690316398756258073368298798817747222824901775120226118930674531503826271429231975401690151534655651169025366690490778431087586370263112648123998007707759990085979495513143195349398163648100958794390166741793900123114338089411584561665778394622332197602888959612202950466451423374132069992367247466766807555081104452394673761796404375911627545711628221496350643819448068966848267088698461291271301551151165357070780066461624693467433894282589651142692129106124703733565144784956916231709900666308656720760732423737720995538087765282655704930097858476634342120180568722001897683828177495695098229100174665593063455454744234572806034912272415745217240944244964948686898271295473330472482517752177142816053148494968824917706460168909509873759614733838087226212806097565715353001847888632992964675423275548084319647054020452306051572630429970701086781193264824056870896672185866105174896421072982347771907305699329140951003866975394432953596586532004555602588324253737490020567199009958337148958686829860208334968102275229193187444435853210195920217486968784482842025277682967019728464821624579269474192779488741688851914084254670024857701565210799223992014856978494149267296607547195961641611196042835867406100091309140915780310025755583724654648927329533330206639435791873007008367124783665158670981059834243868227307101579608041825405536784312095429019870255535825489468954191937867670289373827728787741469741235578857543953305570852031138611013503530719163186541450498029482159585284953435092483817021879492603853468478243302094079017525721534293024420342280836087408689588309453022849097452153895334790685389745388693293751001779591013258767137995153343754996891312342235340298709270821429490754520955318172457882105245339251917288620891932212543340587201335417267677505558305153549645491888052553113810870400506098852880032049992018372912386122919739900346470113424912236539240295880845517930663118338601596730426194727898134765441407094088586463636499721117974893164253427031228674933370847364282412772012813599053894816595444122316722898334399088656057883564529716617275049360991804515359883416403651593986321906699490893157053016707575279494561428325559024631226659365620260053032034752542354830970329250293545611493807106228378202225379494604120700490012471621909920199956368922437677801682645439099620621199086046163327878269362536026284665081093594573668302594062848242446426506724939881331867501485396536013915155814691635683440774990152366659486326019810961430109810006574503130731809105178032042391006170177134554977698074662677043560732726685476077495811648030535952115373367602586738009250585914084568840942961897466805085004502378423657527877631875422430345497226695207365498926180751529889335231471051838179531658275660176848151086753357675804221482995023930011047195877101085468964781494820658098991076624032660389523176768159521930159937717928614950743008228329616879088543581964303835601255366908712449915399975404160518858911337975951464979624659298818256086389380893845599313500033813583496359454010999041899776318463978446317515661363375728968717483211029244635388682173581801682574932027748493210345300011180895950863202743771126044021437438200639849396415231867554494067081793244655122709986140342809517798342712857180930710996539857231510198731750244576329880003671981288774658439132717684474264651671365620296359436568099811745821148023418039859036983556475812762854251042601371802852717918128002751710379344309832601676604348593386506051393864593430348963323662936043023701382876112600666043882544531924960105772334363730341605251043806535746040423339989037171705107039186913280109787992058208080021885740550747499262972694273566099083198219922027849790932056611865747704299245542534108149712181887278025836808014868566095410057072519057554379913552042616887929383571573322856475995215709753167934904624565662371578824430404063967192657452222657861259706205439693480416049720818649374233159368090629391961018369857783790264959328550439413598370128122440858153455374238598144064860293884850861073283148414173186836809679644063244976772166845924085931778774248135285068228397183094416346786491077714941682614000346769166092912304537136878378373599379955189256967997056012348008325811660080956617814083742182476311168055602911177631319588359326575890845563402303792095532969845713090904699704646323377314588223278970034342870322588466489651737731747541454644714329667266291035227426196795339436548997284652675806992368642140093246531526299967779630838448381499319135565476140651396325038853263381272484229900257651154423549063042081608196353554217454583663677121227181577285687600922099899881334187643034339998869497497372247009387926385224771609073468053888458147824419027482978422134165472779572210042824172604858165418553285403109209082493656529554562270068032179626447752533430946773311911345303317152238659689803559723072582365919166282473613044166771566309669090286154634553893442182318486659715091971880148864962017900424716753127901449289743652729113988619135810689685703199017014667075043545074927510950368478690087215040976902609379783939437124698311030360406925729237545414685005328131359408301798412766331427116313594633170689595981476673481043583881813777254191661128116059908826062782058455965806266137223445010469354619160979910999159151561279370449739916729109982565837297611605168437806052898154768068965103460564995996417243309724401917714502645986765920938177711781276787740043499631042440942248517281225734315249442216961743656671931227640936373601399827574433218457012562755319632712965510345861424258199718202001913296056489277759532884817386994501631052873773925120208057251855877939572779049890696864764258237745634887443889389650158215002240618134178878755325299706865219066387480884436290130750347820319198982358601822611858312957481624730308298138589191585640441970856665694092532741023020086106488074558684136517756825062685120866719967816296981573053412641608614061250328135757315619908665156094296097656288043622106827751969278004963179185810959773835909358627798239145697051366596445965799371138197257097672018085560642244836812896996585558543766965163584078883915334096016924184016782564836097793124717994981045311388738896547234104722434201594095199382615499197383724772788268059865706648904753208268233819001091581053020359225607919383991481565181756295956427134176490901819624593562357433277517402307782872846196337414144119313781810374490437988651439069794794932748755407642864058551304937719275255096678660656174173757602085020588597475340714941436559568590975398203167100664142999206754078239625359279884866142163910792766962701580718292671520863855722213544397464244017730374939266729838856162338413515156467062126219466722686832222914025664169703374479689561521098751052042874697054522973918191994663963206715272868276916229445459493546682898685470882065500011198384107944795503642554861412787590908996954991818906175816941768098181323682830258615640479501793981442296886281661496306902725055832101523207281499640913201573394909877067512389196492742248099065947459285678495807799792209554524723775725290733309835314518871174433754884691506261411521517172887302364666397784922663912763907916216249235312642760021219102548398754401803022998319828309631993569433876081484913716002795096200833081513051073394483907924220426633580319756582184120212186602547056375932152572837951372895634138869497639710871540619453602353684601908427700035325375187726358288049538631130585494584608907108735650942340914634624919541106507939339895001470554878777242723521696324460849172751795002965015432872939042947149822942214407430813024756859336185908388486006913108211099173018055313572365972893026479303849824067869872081136612350604112613430906851698267937137544667851983959895233968828659841376045820577038048223489007559082975683176303647457126701242297912222788224959902830600439250004617192841439717689776835182728829693348703868460481030354096866757789868689714775017084624100150739896351176499421308310486919425352431716511322625583461162815585872769569979668117838876821223853363713676274546400853006230654171374113622156074046499004769054878731725483582927542224374028920742829185241288672924495304283534873239490981701058493470663962456472305864696187970860971919101605478859197363446061221220657131604762907874815546714373558975810732797767577168060863795428195585418228092854768176335017833341572574263472593724545170432372649717894112510362671640785094881983465088728731777613914676999764148850691585446586075282203083589059995900110460078277590069816297083324841602143784145174343097790959157560865767052525812607039962426613039281473713273251703455905287787225974687000700840427651664799020278226441052891190324393364835790122516317274667941715456437277665894810144007436972725452448438586317842120905981666159774045832618811569387560092943735807349281625975880202853402107708725304334645103082943313070331168383453789866142582156526703851553233707036869520889358360271807567409425760945202540316742944882279839859998858117086064629480926240514016584310994710343760201100350810774580799835574612146426198831056358041147810165569443590408767083524628634287298299552023844659545188653661383568476882643570261550297339826715361005173173698906470543146269104816036813372690006471455389216308676172077355043072475197493202328947105335415295730043095834685599384134386811640690144962177481444587574039280339047345999399596080863686367180000529749878573468717240499833407154525124550174799205210516073975822746835087931122391378555652439426530873028795411294896270423429085849833226126637828629573315362250221482402820162774658402014127934642098221627332874764198153802202288011776192904325454585784707287460935720613702327513682649536017516189306061535360516917693502496969007819160699022145680328195117994202648003352425641078060243898677196695561350647848648144900749836496752527354908524735465375058312021817311624794638449669641969710842255742392463425136439431949349062419908973700209981040383413579727533363583764038318792117416914331047371904298373944301435008599965885443548523041451049552922405002208419526207424074675109373841851497515599272511199976652713107729266392139558742757193546358530262630739532526116320028662930287801801741467644383399984739697082047890657410840843768806462432118239294232812931775361394894492385390593862201648240068156528174246682021625156412984289270458995436815452461215665337763137419256865327480862452914493935677363142826162907544245679923819229459504357281089287057264472534356729412584079090228556925863004428196737510919997449323404538649242396638816392572883728269837709369040703381702775604609942380141923439040919231304449579708091831673451471669509578443076367798586882388733390166943916773112223556695350741909125167080619700379671040076962038929638225818434782913596278391889758199610029779634955186209422335635159184070948822797904638158594919998831406733862980073809241682998251445675854586537058950890240334748617243393243329205415699812448216770470142940601427126557788415389477185835461084825536731005098661334995928392678340262708415086541103398750126679261112495836474927171119063324247930986072170431755658945269158281112427655175872828508620029638981439322179403770875898700931457350349619112644249033923647467908362585364821262934089923169586633388300310964616789985248312562864380599540831308350639460801935557643423383484370773122147286706869570591816752627781173631195240206383700883807078768494688290291657668991924394771954410349893044466587097721769844665812309847413107555737095170382085702136971816668947861758443799443939917813959605562391270000896622337298859092966357682068718900664365906236580981580994634559921168923147622050345648365302793253299014281677540303440011157327180158202671680562225854604384617898974301536759942936408595889333821660209573024102144076015633719843789680019498775481684091379801643469945716917190193466567482414137348701999572723634476370222339439389355612137529382661464044385952723763781201811725470397120839640229384110907879822839827659837337436426507056655733262463332471302878199805183206229426794727339481314890174045504882975598774364901915699991225013108931445714466854678023183410168755237517354109009406755240028193060318130278828745020679552627057235730672759089771451518872022947552613980533836981067702031309154574300418626240579561167008862514055965605433169502824306105766387749160383845848796787138768894550804956563599193470280515826320015032105581242414488545828719450324029796825237212040923494667891196503800820741743712320061615651299589649213017994931326853082812134586012706303831553969720381582848317442300902460113185351770602199131466619074364159104558098188275668041741693885537115921055139325863893797105749295606311359298666943063469267507630017369862527025320757065610202603151847274316810113469740508886112897213662638426427338380044596536128377207573229318027250624213165442263179719667849222710182804939870335600611961336508850064978866279025645378833337936514715691463755630043300224242844595941680719975493611179730038093331990332752027097963023518795678604301440972150563145279088396375281129308583309014574154685726492321574532092813293648237813514395089233101942180119718593096987630998768183041089847766558819592293009274056020847270598354622309576687965800022177403581045780608949026757520950236350743332802864634790644947335040064106534233096427509896213102093886180617730423788887653038002683067216670398858505023822189371719168770834922476101383527225470618135330099613058613881218969116237034681631561053738168307992560092644182725082638540691303097315281776901060671551729905420352928656027146307284924184743988774344478484592255293059298004314391586697528030007225655453621682882678319924283980574690443511338737397457712088674054576988558298305456890246365981137676185459293076038713731329455952563629130560169443225797372869525301948045554363373718614159090854372234968602895409798745566246456851629588477959174773031627059793741272485526868944046363049749777084850175609356823124852592841583915164618177902280540797592161968547112193889271188694627210592921828146531066378338194128072122329382431614341419378097472961886278976017217520348254049640631088409675636924662800601257107572120682570306261754596014141082354390457482578849732327002432719346403060224328743001349220570899634910688984739526887294619620548752837554784491959550847395328669313756109048174436618127387397256741309170110600727110395446626697179214551946243664870132677302571004582066293461330941429538600531984436785816277744328547266103085991614845960388245740137512682601739945947719762266339385981859707729470344675543433838949899705226924114730547778183381014805221362960424240516100316643059233449690960043478542814834249367673804481667159353473624641224515298540740602341494497319816801790231040092522064481434576990415877535250017606135859338647609426610828881564541832843865066249808229861720188702060534415586748001613224671897841617599367733020683896130589159188272008183468712004570048330081909094421398995957186461608231726802563499395243793201179146413579090996564296809086455744758736254155520720463241546815370603526120082270417003711060323065313644797688497401009145842592938153877193101443426293944888162110399796224163542476865576698167657537236865567687084167658091009907323982393195080213311347013350646149448483855084397923875445551360105440441066076209978957376417516480413937807711175418497749153552252521377112634728881334938434811286574334004744528633247336888818177613779725155686466667012664639308386067079947095413515310922635805123237507282466711695267826748626004938196413163938960696901696304874851830002701153354720723184193938657904631953623782527434277028820715772511395753871464602783138178530174932629178515800004982451172079768505983880686888425045265750107504237423273881193757065808438436651369138468850993691598981482387643572636485548478318496993247827751829814064986114532669583286069680935247336631628906626046282392142574210658259130374618605270589348109869206153451383301547583563353556160355569288310952802715838466780124340410314246017542738450373446588040127892612434916539180704143920201112191263509365423203382800093793208549475783576234845652419582100890775640211960479771008849958886427712239259337109171088338922396551827741562838425127254739062528874705170104828442972167358078734306103046862777013933338131740039707801911966638074522211991911305389981749883470112744881979285524014705728485649000909762751767330195476628343666323680835767152648486228581011532572004704696310152686041505849087773191480890125279041380192351684906895319891493285432079643812310931689154175546188281048448108204440029177711916273115047869995388923157421796131696702913467269218327656891809607416060812195310732332268425551767539864146188661699078194049838775682968633235114594671523947955469651537317134530732245066125277255165736862872511796323706855251912982356746888223406239935630315678806591579811684971558575785110854982705024598722342291185769906519365857353237399942160511306192903541092588768446420859435679597180091617645879680567175653445246664623499491426111939863381562303992315014277270721879921176113052491623875608599573371533490733303219973873746545370430734526474354273984108872337114564644558476189358335670013317065605178771876831461228794858616383623430507612755441579156891464788279777672044334232682873761635494499463749762553475883636312681328476662997951358995075234517213555810978804527123895881668205783534937798192830091420164780350597707867486678590479846459355245360766493138203782943385612898534137499246217515880621147829056698055571974441637528854752224992166395919980312064494060533171912026492219690278141914312289349408655737119202162739939571522004038998594620033715182864872605269952543066150261328697162955184694137607718759159587496051853874888186865341982692564852318479542776303696093820848358215101709029159782412678342037011643008338707725530786385640034025035939519366250710129092664030238164350562338729214055273452789898454774310414550229595329114300614438794635388320350053816714911153026513548346881630916391626682207522691438839505316015209178479923130593847043642188450561509058493887895369438054224967487728428710553241059660875155853152013928827556773308272719635453052901728014410413347032782370807992938879360886789619263010480304957791960370994080339644479937398354485045663899584369544544397281790539481705220227006176831887701628078274737085437228513724073760389834720127453432977792353418809768815456372788672602336681056101251115427395008418420574940810573340885540352097642966253553903802288862057048100833138175373141387731301627640809671092379026328391326759688577829810567602480440741834116995694850067311181610145528264503922381820050386938373263774390548585264389745807548828552621179745755731799752362935744835486172561492033427493430065823928311535569179115600250878388623350048588205779726273123679843500813822608197690361199172393811006046613338868801458979540192732734630214143215599097410300637046156651272669595448313205653848188503151468888248222938014696251015591373888695440344063494936849232516356222071716543689614042596604709306809669409856824152204567064910945784666881665825831284816304698676154751354038775463005391583613174936895547549164449218870090037960409407782368423646752395445208733791530352352840884168169686723004388104810906744486505644391838891175832092121197403375591793851000820323530881941306572317040262297813815772891009331374844448834398920583342767693104868787100835867737476982715894288624802421135485963244557207841353393384611400102297192860242720010809474151047488888791175379516561921647025991691655492287072020992965597196160939435430555764920256152977717617509009943804405030689429657569907552382645562180086270254033111766312837875582367135094567838890451153804346651912209170458259132854735344825279227428602602720133550899055562526749551239426794068470009522100987679756368663724849245367087830397468941216005004346807468964484012347378987322902035842697538829513599678267548667694962388575858263293777476206833330854599559035720055973890549589360169940491151162143553929968945458675189434453773797653812330848053705570341885153785030593453882207524634734193079204464594392033016744463232849914031436853895267840295282856704855599477664342484457917608242887602766167884428166032573697823717086597530584822636619584245407552094046217045882746294017406122930111559272066215647799626215095919218077432547982906065743926548759222924045492498809287546247813305371928065762146798829329081795702899754995729998286429292973740339728384679465867252938681726662195236739180962823888744781538893685601876635234547127721779405742936450092415897490084609863067092221280504393193634609711361001656948889341762271607591553995188268060461306297157468581937363689633184704322991603813040148841398831787361070128819562245410726680764102434470604687191749885606474551624904947900555850055069144809434374731445570649829252828315291930341727370724243087943712027266129390570940690438336688547351183726102276846600157430804431557965282459177926725970917171455558939261256887947546156966313318798632787186398768294031531613289137789665427506090249665602980002061542968077038421234932794162381602155931547154367767058638696069318044415478916042167782147679558719061025108715659810549085699971344926029018932874237293759198749892567757907689915729520861411839076573761238676016954999750452640374030108029435783725289064491128729259162187396502670910548333456777279086284176899940418365295905916126169849101221172588083245858480087245782141276919611117444909370383897676479844506630508503882114821451704601392049209959938590721519225570826427362524344064246010695538764562819931315052370691701063907015433634535425396194272508909949388011815509884455072085064193213212386202669738094782110941425287519676203308739486916301234322354773074798679681851056136082362129991198059733261626211405688749552341535925903407854669616373725218382319223996872610416077730323902044268130793226839891832440992518324994090124181117403088793342038204787575989136482905762508457873838284484395319789418246571212690710817932398310747036798764000047415234163103371364011581465897900662656234319095190661525681954978110349214567004173670959325875374262907548151490321940198558122971491103497110317464888765195732356743373964602985135435670143528645837302477908627233786690024865648239173108723429054793336266813370605498283886039552720574379472466551391974787732826181876761672006884696027392620484449706596710444385757916122182096137087051389124042975109802759618813461253193210227363270293480118339243427195656634121344810694383156079658230901388280663532767557231457894088588098653955979078391552994233963486411016025728739590002087468744253793905434825319334475590046260711690635393190351527372238749682638811520209053200632255603151957930075075428794517419421864735712429723666368285230157666748820423640466967501968567215159373244203713054165189583072434137159788553254721700681205319008756824643680941470682847511032032546659240994442293494513374867820447333807653014762280567224559118585987827039736857617969423240942275539732379003310525466763915501663433166312660957294260591623487051647835288328279211570647116285877771200019927948202019139690002337842548815088930833809345452171140278610477121987880502021621438308021487745632819231367011274941273125591947451117886770326727329492309905738953379188390520813770770408798704409934575496950278509817187325901837584445753697015812977006081365993021752261397039538946310167985883491190228954093271469005162485478582551439652427520498258404021936095524269035871405226587167676141189264311905826832128555973340526141895784779680941057254480613230713259750280790682504223232753066316883032869118283203009601870977851799284083736672849879436308256317547941512308000089240351102631581562680972990199766541304919575018884336600193937754037720636065962320888661499647618975917416486012930189339534066145419465142932746252763045452445886300892982333855635093597137639385071395110867188392903589008681888941931942316696628627460407739556267607024695948343028764402703197622339755591170692773649896034892215948483229537581081008211372976257751817374041272257407275145775018720214663785504222232686094476044802707823590306045234904194636292408717814568176278990348280296760722240010761776232231327016596705332734691676110766669846849551705039810314322317428248611801531795808128324426357910861028677838873612677307423675657655075622358730375622743320142228927954907047663157882078163540985539459587066112196741059996771514475052989290616525041964095670076195394330586514522101007211201565085557638403318555969860271067598861732731388954659894744971774432334866540632327690443343968376461796424904181547364965775192320634297313770763262040828679701056745879131818042110272240888820989091379896467622816100718626938062977987527046466925141153522550599051220037396804993907645036147934857986237113254713710537397238345134046733254940257051616199567807312813536076569256672718215930308980320567000119649174855969117319610444636006910799015122025461770927140004938049381077462851658463315997124088945978516276543562573426001433381095116229224891723828254470274138064936541666614974946619264115222546245924444604274904297694534454819016857149086545174182358184578171913614967015842729064811549410371593122953840208743173999207231674739852699804917306322303334303555231708027464245387840029910736812144219163166509389945959092600978215649913795482162546007998103492359586552157010023615222475646499307264829484728112187525388904297051858416444700431312694017509361633889479505450521429270360250213714090998684302701642894454231896093213618514171996828771015975095284967912507820578247702309855817389277235307952971965658134508564375865986638073584771698659095580904037502240394737625714360176597184345582714313100266654603086870418954872654142696089094697251579324475820337910531948379008037193498670830663643708411899090974748621396555780755726765939241801116841054213182279644675921983755549380018076940441947644936386911751218767995507203385925677907390785707558684430807801156195308541839348044588689458812905332608989209464116750680187867063128401928870718014005607814410357137769844182197365505104439327733551829010519335774707625476783440211539809884260410867530317019957057869914401213480752661386842318357570829981538437580495953605715181177744192501436386716467097524009727692597778482438198813214986486732556269883684471892871442372124442173285795369341566799255689591471536701453378052577354186561586592774247032902881932806522320242506385489468705154380094450464698322963894297949845267667495229748142858962773587961369625555952257432053296811458529778676499908339276257731972008235315940306955347084633715999303463447560589750883994189323052186168321006581758108522170329160851862711660462829643796988352408618860530949174405296184163348492818350228101109056159344114860275267847480378794571394602679408814405784629200841942124051734112832508376319978965059319625607596980712160961194722589224391859626559915741080350947654177855740763619874536071488420385471841151475752837485439570740350708859328741840046474866034103844623721762051515908104340883128084315658135980182975792649726510434032853009723008390374485459185883061080911473474068479052785994522285668039876622816121173633428387013914116071746335296617984670079760928063968116543864645511476876988646476244872456671008530694596415600124421020232400329742798007538694966143784484267482397043506977507784112421724216431803629342781015210993004939312733645477990333174142577717333672464603743412979072022339118674132056400741019419615357644778930563358791495333742425135362898243678596438637593197143626531021852197016369710608886505502803934074654158872039593558817988429665742503571008439843020679179622536626917375801497778412339752437944400727778284746756451166865047854688800155131206680771613017371802759292552680986246291009643213281409187823623950207092028823223260367750909047170825393746249338190132010896968653097639599900111864404276200705253481716878638293958915491498112974648117848353658499120216260278418816929433744890571793534917511768244705155174055599764538916442573026874002370962693808418471250066967506047407607285157580480793808201488273547536751398900556883973848702521522327373274910875086468512324988557295250091315453511508324500856359963004308526902677394763408110154186330155960944935556721112740346638086747397645987822341156656441295281211848413871388891402264991539729455825837457444407713464669934455586555047155082228333341660262771960307125780785675828174956008996667601931927421850400680751489036405790982807407251751586707870677036614155854581691683244759755092222053321501134626685098452733864166760025695457746891521529696373133982370692459023856891949792091183085753104077966679648805218381689368709401897928280307615976017822538499390721743625912433932630953146546143912310063583486594178832990408483365866319767521608265069552921043134586879573604829485387097674117482063908939673562748059418400993959851820418475911553527596636776599192311383878231055980955805639505318079373971817996542929033981271515422406176514113127364328793828230991787296157089693625330823373350947491490577795169738282091880041608430811198512244493041601338782312173313010869636516534607985316470574564111744045753055456933662201801763089769149626367559760889844786899041846794191156998102696429389444050289941308576547647060548817976173800596065481522306322774608403664948029817363594026052372969232588688895259822831553152653596568889294023596989615124281718143066927059834035349101376118676268425796594970262488605374683620967253989149927328325786444433744108738384293944829825318650637268165265118795238338493315584310048523932144291269946281071882831208103489391155282508682843478116847100541144453504517876961294457103797923134284808185272915604619146675514845383567639104100909157078947098511976011408958811161210113843944656858703312993240015349941270423509569960753641502925985664710698006183247401856268653767837114028252916590183587859225347615216441231570307454587087479644474194595262409187284105337722553308827092094921830431523296674959973035816255598145837613754456251498570624458162865418432551648100132794847055317151750438573864916254217552450615563780161860786196547404089494956330862481246055792008438894694950181268709813812217412847905373205388570684524497043940127454371444901059498342120934103752560379529909180237608694042727392969066376091743554223804939353525859702493074428299991493307878516200157059584314033776584549588503910868541505107648565809453642944133296967290536672717189044747937556318658232486966467734876454899823504653460246694934400077164065041379869942443873797034387742766451564449172104507652942008114760844243503161409538660916706511127149113915482705781195258434283925401518804964438538717164427539184985452146297849820775134991069441631009561016933033208638008088277097671226920186400214502592250980857246305261085502024847308956964683745329141079325883388452345575601278252666420174990498897554321370873086650930699159675560519781822943697484712428795076076922839514841782012834556626610903584301369818865992597955909041909642801592948072740340747177189629251082685312014270088161871493535630598684989128877686866595507454291342522922792504402757886046095861477452054848235825962351914942270112640382960419737204009460913047763635343166735268493153946030335511470199719464215533809449030745675150809342524573959116345850204096240050225846320160796809738504384736729854150906266987733216922752168806483606793240213358374430527975505456600753216303928303762968460929223771120797867271583797852913572340717952741778405699233047290822261698930893460164291479911018376069303332614657777107594829887880818201202288048807065015733665523924466412974186865648738451861646645033483255896814805196483166054921206006894548476922586974305175477228565433242659594656079295213952112393190015926810176486962180902777509292953152715090472807939689907907285358264739575559705981790662055832029370685615474502350403590403221247319880436539413006456524895052931714218413231101723570816136716422492935536713785203486099621612762420922542244093035127338750404050080528881245370286749426119267973968462390769823272919738674690908346538958678372892257942262262369329069111648448578196711042709939951889822781936431477512201400757009011307752518556474196362131319134036531944963789487067326899225447625796760182177987541519615687653684460838373324399408568492467373062504643669918668342268523774257536900730525219563271787365034454652539492739452118605481022639600156561742840508098215070907505572830540402331057361658336849581173315918229805802217614342440249969534226751712099494801529590314899696137941744948812075042076153055300644112215938661694612368027926573124130876341038691616318293825575193311139079342006169408035603465290567955129635538708839153381032476954115740265355495054150245438268416049912675386511875140555943086746603510334754455492968261966994702746338254083249235283223463524493465966740485148883005654266842145579469120018679946398787373668440050946177952055295707944299652802179706359285463235203825635117803819103771862904667690551430839660411562661944547169072112145502381283785849310050706415134835835213578387070306937665935077194415831175131855321284014552846583699541287907950529658041988401675477800991659026949025307884859444310026797840598281736879187387990092439326516747667199556026341325747292518642360882150168247640238000608576037376121214114896663895859155611439009153828222149234991958455564051910808752533471056386182716007158723957987650130475114551336626281852672071856815195731197009960448188377326258670885098020750245900120953122304317256787066649289543133805043193912633830587755781086197557192109787982910593883908448823964410429301432181503153430994554697862446157816950638316417299166269294715742863707124707669798707053187047092250270218596443430500056349102530530747725518847882490977944725834952854148100010616370909368926537779526654293846824213366095752732925962491787310960061078690375284764813268805234381709481643562751269718924888604838194215109757633225312251281472540478540637596780265252002606398260959308496415399930207397277351619109679321682535380908937614380450177908431202195587631924029018461826789552223546495285019295255592821884812803069481010803218017239660327049772570023245813783617611211888679615398289474078449509912095610774917894833548472976733816018045526605202851903212438663306678559176426356268447982404369404675342804923084823989919407222434353646523448717095140399922500681002319231724412821304663859058798247642192912001874465344459262442515563723587457668733849110333283003501589729242325737138635243136137779461357818985195960772586193495608397845631105014392136412814587894147773343765989873724247285701344691488807655257491047138975771582840945627820944043917729100500541212420197937916307365822647940393840136929100678008774929882501752441709985796959331948398356111544244535060437782148596795904338186717810695235226856098851460358677693192159968075262963201151577092503822189506887479258916414773599784225415734314946238486041369437915120526508476530871143958843002950698905513534650910862489304096646845633221734365672078405958274784322211500551577933785076012907511913350743296384051767695993420359076499222436135452881186912786795207791000410734938105955978570915313584979544363535320381314405348077704961469996570904440077125327452197654675719282317024665897939484691398829416701931278410475612954559928485444207921072949748974269118315877565947679654622631868711001031996506284146294295710693442395571570395326786859001875533169402474872357721707515242402451798125741800856492330424623388424908405351324474487063746874201390202407232421864115972655564700860072748965465080878630309050651695543122701619920500235809580105424569407008065416811416703822752740458840834926192374018796856197933179719364853241592493670439040087606985673169860318238167769781210335260762233308362297111383538431133660931128450227497965457108348662192738712210112809103381810408641145266557058701743010522403283941792141383958578786236244847292388743498283231644716316637221718478620258484028268483322853537331986865730983468241093148907392274049915677374169180754902198784521156788503610059328138722497421520634100046002821791628587232036454118965706544333824974008952833249592557855418657275258098483639365191111194037143149100532187519379366882629043419842853183045735581101583501517915241660579618680465881853069489568424118379793219970121970422276555739309033941794499557963140269012737475364735304090040167553577298792601715945336832053031988018539496532683966827543437832554988852926172163203285168740325957226507246602448826196342497416048403333407156957808806349809531618001962067192288471940181891166861186540542976930288340558717693504480084165383528327647745435638910300160986236714356018769659278970121098639310818132989654871298557927841097711885316584669847433285815091128567842507162628161457271269071479802005729657147016234383142271146629817372335733466346399251625593713775122196686209266842992021188279159489418918859887904339424204032694916523793942052543631130062693051456523921032731365321861567123537857388068534834181391660648724641778323325472024132945872773668198009754145681426852661856315957570348043539904342723432544875140904949587507906573759613151572600059486204528434746212909456501670285985185468991472683342145390879904619314307906998631802377782506428270467434602234045735707534244783297492545270849521222626825129219365562911156022848309472469666521007971892040006782365672399132050006716493106714037313629840720449970745170016332727891883961961053209210580011597082121690255541057416462935121550578054167841031671655717284996166191565023643164678533952272595390708976396015240448359911109228364260475601434515641950226703027822473959425254645391362941651805602178940312607781392007176951743247716287192833592624488636070193207858058566233427192448420814797946046616608102705234012152762288651136088699484202330822602763465684505347372985313953962553829107496274892574609174995441306034210001809987670519524334335690357686123027449724401849326297441765990916331650013009632632683061113438043897932546185630373102059024381214057405285097912539169000369175113433142431857469662000721905041425701315608055930480158746469971167107838563686760225411085158812653435853761003514443801776155261362177702252451062822967847317396452617997604826375104544019237031614661741271882613458565302344453002452467872831163937065960230024768510581349602907465982694669561326035464985365485462505571878738949229878679655459999875834927474477151221893546739180660407334505890473933307997629705864305352268702570883371847880364429802941207972568690675427968631350139673555152888588617755701241862099353449583609588045881868641027716806575737698228983043546968534363240803188461091118579022372539472166475133905454099263997134732372776712412963130608664815046825493260088186845839196038148940131468529980908269639926165947149664009304992471855178963302213447673302265076663211268860399697720461782017047661447619766812946598561902184413597505654898364921853255273587789467508896422454577767284495665003549785209657376266755236187238348003695784657660163925824655507768421662645912219241375697567175742786672615056187848799764620523155200044275948759608953029968400356942072727281640315564591596544379706787580503892518382494969478621081370876694089241174325239064605839351160063663069847602904460269079476529211619325079350694975651136160728969431962185350129119272914438607018771381900303977535435384788276017494344312429471067932443889358017566343247463505117840367920927937707207070266714959427450711889161708399202305012980647339424647454070793824540947325005816280774201866322330119378328561822846929329968275078180291484202318772830437359202241132595008244041086973478853838344906928713604166475468417372120242426425281653715640299258878445771366808537920848070456327340937113026189183898838929929776529140637671035507776744983638390287224302764525183005529185087835477880331312315355051622099240890458714837756389584295801080526398514711706892667174342970574678784826406658537316877992967743334556485336736090033376226169923156382338363316030957303634079247167381762977675669934788786402199078747106701920780866061755153764430200901077431818058614176659754478648928833567450915334305570639053037781624094281205542868526715754970300143631289785490576793290261729866028467378325776498117573155230232110703491742876224857366887332477469345614746335103311947991811018928015543742526347313629634502026338364906384906372110058639442332416615957039739186196808341201628721241398328721864660496850131845045402715015135439112836663256434008769807350630622925526610665342859107427895561046957709883119672347293296158096849190482623605565037647262847350535619560426879773529022919547424735049869280523166343490062062603799386159385272799210891418174817057752651733901063966605648420610625165041630069925913554024477887844214562261874849034898090202159250579428338420092420878030666751817082802010236615344528582600790770853439403826842600261326632585341712916220627580547713042652197799995232083533717791113886160156729937834493637272847584826012471711961084178874729259712502248558727992229616745954988010786040712810937416907961197244107505197114640261878690033141235969943318469882640020971984898468079668359009829095551977410738865611587846403659623864340805587086808760041115219616993282875805015019573559970478103437600524346468054845060667986884945566253834226138220851196060432807014576492421218901671464934798398492505534487320539925201066838215250481136787964999536964545496826413205865621792559299100892148950214931343597851158874659592979408212677973873589308831769796134190142900027981328569010103648064960552915683756710516160112496499681078329021554052901701238590552000415741981724878790867679975874750723562177122656124768591615731555732382747838786628716361865421387695111230230154098805026850205037334092982421922206196596386002634814727907999826333422530369676926656653326096905137412834771895117253812395967712643886576091030256908930873327459455222776646476277939082844313577960074080540286900283332622425091535252632014945768390227060097218463057472737524113791352186401386780896088208127504984630772776490721886147051163421554061607527749140387954712298862191150801951534108967949539399225317102260867058249728042223886818758961924782582394703579859546183674440114796686963412882806429150930852222446743618660684244604436880301433142690164617589463790221692957936190207821589043749629497778536525395864074615249106567802298367196389237339099089125850796055805505935666653668333873497349551837585899595503865630646367524452647668233979770978211259454284056689152078060853702439191483828749129404432269139134071767031767480854179312758303525817241537012872152700795775097253968439388870101329909134390304897541164882496545891951081506908508750801679321582749222482925117035981329074936477660395227965272008353583188520539358433816619389069286779622511319759339938950542394485107898827718474794397189544440772986828629616760203916561003371594949383586972182551591009253006781154807492490974905700478741015884346965812932680845683971134572095400525800130998510915221284502807256676509285855903177260859911336204669147889131975391381001531194767147910731913059018736878898669800464155441044312754827217336564892084503328576014685525820954784767591443233260537912517271208317306894581881189443616237955067688142795366357229110312967729537527756134268435319242659893968099238804301671819906754149128283079611985720660767356882385753282379087228123177224420430647590954695310350962440887612173853396325423876180463091667160492089124988949352160774605405868342544348630833451652376668025302331879506418469297666888193443030759088364490179855083014358703417067221702604509631651619057384948883630420582782619849895567110889898136426541111801756611545742115268794871956194468540616200786335216408304001168282402259614890594858582469877780266979637849574168513411167450665241041108449919538654656749037685561815955868776666046949694590237148471169655734284785093279774367739832200021118996660545655700462840260203212035428618349325042661140333458888945405482450610344475588975822216662355538923478420522554046251229987912361998179232228770538326569084847072630746066957325579830505224670740265214444994679813566661498309431802685819185774362855570940588399344737583137128488733166975776614846710754802663936192090433973060177027672615261636811422707491411873811320884614398701806369203461583937303450894893716119194793028556748861486836635318291623781381911812502887327025612332225028564008651074662842761501641682956640989281111103323981914040982722869099435132496400785614334102373713774878501511116104873398341402676712698845035468469485474740536722679454431024521078600350570245026190033263374771487433147478119030158703976271157427175199431088360603018905668749094029218067278074759121281067418336780940093985615734757834420894575228054959669780760831865713493796046813081539295599287811799033925301566775919740362355932374438283117469787308728546602330851745505603914829274797079607285603905522802424513542076429695191071901705002379587516165727118239237853910176106698051882834916728373074205819273138900497901497617722469320899708604403886639695603094533121111201063354592015867923117260908402998557687960431469519671284704579538165060698957429483477178925232194761929125478852522586080170826104178485187260215591659698148401078877456201642081157170547779764612209548030761990350811816378659299963403572311379159901897914272181579067317054218213288456096052394340076615886841068192786240476230424808777534247447258665214595322251246752578083334497591076792628305904569921516670895554815422113807339024004781693843112296969145851744078797700023082987454020012125688886135717734375889114034163799532583278606102975952120330114443318536390123685889618275142180460561309433398199375736704559195132907870821496209644223793921273514971261079677867027703961729877277816035652759312329794011390147034946186122634977342399868567543951924913568561991801788438764009619420371672336457940870413332672359294366578216888254745894059070760165818095143193304469951268203942111133289638474267383068492337987645853810034207455182521068335561834307688561788840142405691927197713125748016423700273619381775948114298627057645317087062845632087792314198509136801811098086771575447288045531254112459306202357277828448598771723141041260040726232131671666677318166861774789188599893985466991463856548071794770818865407021678628699298459465368784718937971665738368499866590904963799876581491002609800425022696066387498374355489986840118342936832580259172608477346167494293168118216442287359220797622714681250597947466480549674781384333822202380533637744681370256920535314366991070545538970366618711119184493529954079203651666264563427521794422324471877214330836209714358197541583405831051329859937600852396438752528573085036415685564991925535920080957425618228952498349335751062192637372271604626728269801740125425834416659555050476484883107817802163294793261559138675863283920666410777949556579917641912955330992902590415954342633657811479128552293903820197686476982021172387523169511461338799314245401764711153087714633011140288002095431746762394451467146239011342035118733012276194108766390402058909759638692227929938249259262557248130715020335900794337968230870106481919546543477035440773803941848774294961402119192961540967293336381427373452176292547564123776848355438741441615116488759996022981137626660406540977174657457365322134401435073564545565375823185940233421399790994264401051355436866868175751008102748339800224723643634694700884272054672531993819180476163049578321641032425345829855003969226928218426282655420457129142418555604078017849731439184892438170070147260411003129270553457237710303053284002979549851597894931836151621500584778040843888646749881656403515499210854087188242483157447717441518639542897604308954719551394546756973331814556965800704075731413797228757961128889132598422407314101538737577312652428270780921630882739537536661382426347254179575834202019712453799658958502287234009529176799966198100820283935156670302760951898157272377747555816505421102416969393011387169125827512186289995743904388156386796239351286508050020390600030873779052543338673927335310763979257118376622133124502321699060971693764279326023099416973998859410420345137969316121463920303162004698567731603100509129518198587910396826846463104888342605761104688531752783284121468499301340787576137852015168296494207715537126591111652074530928695766240209808537751355805566817835003902028271906234432151657383002158923389945986565324926337294874172037283998477882403228100307726604202772602612092312354986010625345681988811440761501099212452198594454329741663734592459546358046141215804813278321870726130348611541157360910752103659298488741333502300811878060639874644535951501906207009514904904132465617848510215019684956627802458383837976089116728191250714934815614717446719726748100673808050266834418923102535484027738329849846830827561130264304259834812496374718949216608092514926335681213145968787698878970639487332473924536516588128266029464622318225212054817006975135554234001138441192059588584072951786403979808576912517119517014458220992286637676619667091570017326694722164603104132969207170690022050026556080348086711223246049577182203892883081634909050226494433211552836662121955116785919660156348913281765776703810645952066915181303369608956556469198337070867240943203860226035500221625472648817396250172562020956371891280414724153464404584382008215032012772606430768611851072654751446326416251971093989588806233000882908202830936623349789897781240502177870391951650221200127518268049708070837565665985078754825745551773948379813190756019251241085051566433063502236586854935046291553814051876156069417070247581404865051527389162868164606790242884646590851512040956154063067435764149661063755732877031256512537120569063879608205113607823947038231770749842497377768981563018245202245793638939634611243018742285530461732681579848303859716262877659604318271743894212093988817148962079206962465417141890341313881463265779588567996221942133340714898230712805999751997507165032176992924819554921943544705779819804778003795257050437654414120016410357663305821991616790536730302375724956070632904349361984216996257084589641613890961863055867212965066949562561484495330358829306375584990924312227250074336043985130026194257831217363022508480560066811914220331270824855357344785342857384721113053233883715246489663812335066075827138198816062906524371234887139666978303163077641032990332332686189043349348844469338287977914460263445060460573939481163194364536236375205324863607502421074233072402304341235321344422762126538275759110615541290388096933122955110231836688373340462542995273605099471953368987752360132945856674568496529669571615420203096049360010306083192581571994571224458146631162613169295350306027785830735483701019490283045530781707963703412854143259559116681397762540855315551891395514596448072344128640386677750002041842511058284917558910285926436134215403291927963265409021962284968091714036466867219547336583608633346492169098455938942107873634638753606629258288891768803470464200676884821041757221003788837877059465343465359239403915340858419819144554315368568802295256692778294133843450105997078980875395125067658016711802644457999998101512531329237016591801979868279082334284876453728380003619311676818058073245881667379886549037098040984932029668040589264802326105920078890439424874271592272829388054999102439669589279663904837497564806146799699653564853613758761668258474484708430700331998485189526897823426544864781445159533223277664393890075116583730586871842419816164730317800363181335412239002407534310002892792156411796451085621725997882561740883632769964211654018736917924699335484903346927322550834504732371940327449029151686623306674898159578388776995897392332029637672027625763353851973736561102173818574292932155078524834792843107803586661040828781326074343280649598753434072795364987260475882763717660926468081552091562224634808967990653196841006882367502048616610921511363479690340536568604701181061829307473142110417077272191577675748168899264174741208831883682384492712288673627072053138779520729141299032756312564642544397072238244842431504757675941903448169809531402798328833938681646201036244769222385383202935078206745122258625160691962847886532443672379214314685250144834542924261030138948951370629502834922038947204161208890579617127350644214248530956758270041577309137602389048316560189491744935972743893090594352535856023445782972004430395407013017107174168202513882824192417064060885247345385168404370944434041787547788929470579447577558841287954067113030116461999701139347432872371270927478546776518598369075859346532675994825346999650746102859980889563914178553773722362552728841110477870510339612740392001631636590356085328206752151373164327935233331030391896739572249059921955880403387928735529964081564701955834983972700187490455784367729397129706907727398539550228485340485530397511091166107224256046864466793282212639048950496045728118775481426504219342083332292472535398647867093578051019684286715707287245590109969723364475689076158820203105432582159194491748027569944661175382629151229388326920178586332765938554304182817589697748293209442888338572202900416444125441842978386352314584398286220138423300810039109656562752863790802494776388446596475854789494426678525867632055052117749448925001368762353521391915396122814867369433798646164195976221317580087618111298327386629573075348261452253378156439092356087737880064441734802721295225073017481919979786017425594058654926458589483217177806438220276834246960214613153807646871928394532877839635336944813508489796857550106988800396654975487711232400133941379933358323903385892963941032059956291201824767523733070335513420582214273798776617239214277294788858194599695162879805752176030586632523229771617868696886969705049084026963940384460154052305841941346313273729654161299832609187988046016307958489508009670265912937264648432250100471161773423765408552075189097194422541546012451018128781709141216441489716780555357846521408440480386992703514397335277775854076599854613571937260780850398455851866565753736930272970345591223438790795421139115705951917896809850614033843692910078197268651258968203464885522689416217359432780827435742086381430602897863488829767575180371415605994481469301064797009549792521043867389729076232887095667158187714873016150535969313966533017380655464696085156590544170887845476630344469423363386747455247787551883729138041424633380308935420324132383682781739531031077676265000743791795075123177492745091225133143020449339805682936827027114791593434251147751660515477224233848669220030505252800253643528347112396385993899178321414011790796273851438940533094277467639560385767766591924033662650079521164337351772872456716633923963522517910716572014801173281262836734580815009232789237797250594453090205655526989034630960793820571457795919514665488740165939389059362711207977899293358332015271452142743115811057764769435749879630376440539683879136014583039406544224674347260432843476327296988651670240420447005578127879581478905595599086643513476168396041299934142617750395366890587109414511213340447104702194582827560719400220492793577111896170409495177588285010670998973446533645902992877274111958511644008459402011423379843040145681146869295264562226238058819293935456932302101475663757386430440639579936839238049752580203058014786146986237105209117057225887907690041131862711907259536317713051946971498977525700351450477092914425492795500503679035104688017319375461590425364308763059175803836317150148106789782544690436305360056120040717171175145832075561047990733894614893101311142058490948809359113224477471250184155445718870965049078815338436921320362015477144094114198344703419208461230460302810494198282013175539610517447438393507220400971761640953633958330979026718852224685089197456109043397925349807675379404049075478756068408593968954202605488736094885563199668115886423245821656307617845248489583547115416804457325426223735679849723734734184240513240206257640735541231109582503599431162023267250269329317412002758662591190611981073966154679912998596509947342671119877159534449969650969521885219417112106730248921718595218672928935831550468592140828621127099073655702361341184544113470146036159457959192873061579349951486832915692288690290097701916597982935043740978909911849021232749438980427876888385182720142616096080365892612673410462854248911147629535268587477470687153019540058329595520803741806420554877472272664642023467883763404016986531361397803777498942678768139204295520335880605840950325196272146875941203716702485703840726357499068893898483380084180828623814601685826291715712771639953419704873235697969791585230510948282953676274323068274735904528501339972185495840083795241756131900881524234946209443853566530581754190133292417385791773273712949241423973529329867985781421943701994807629601348658601359272173891577308011258877258827223449265974776500217210633256597457772856916539631206468484990664688868614289520385729356008645071707352489085751619956241663363545257832309258064390333073646041833956639105638466595312284140378994813789213679365772188529796767050198985114165633975922678278275582719649449546280402485881962902713066685822729740272299810260088071778573957967687355115977538017404233557495696331562443972281279514337301783005806934888391273683588894620674508216220652303266965135499688591758569284071658734930136498612171762106129460679077792376669530467584648948072134872944353757994638441678952030327072609387730653000355139575237383063958883527002448001425589610565907198013620644358818896369958599961767328026418246050071073525883478078695399798854185765187852506738140569293264639073067298257298703951454571309076441057249262102588342678659694129047541567256616144117930148575782918138751154839817601422508172939051357516793548336041302354883440786351277829280422064538416408157906436740365794031523668168905095603741699226913343222703581124916375000935798635601214766433276016616009361300891639635590914885032975712839431437322096573334385075354730090399793929207308317891245918905440266908948752312197742563220661277318445257351185870026803353575697927873028347121799231423060289146740025903176742520123166639976020145710606356924721607654367884158463749264649449354029645406107721640744707675790669772919542449178047432921952197684674304194869862910000453760454491203562935147975721674939976320169642271725744556976152452086131485512312306665353053081054995966221897674396859497237739335800517985531238048376676430829450669655334765354131448438242104221325975052391477505306842371369331962521355008271701564841825142766254598590339476938468792729538071973832588913880062783325358843568892134810086179669896937233744911431138542439965663986606996834473147593772896290669539594785365279857595001789313956527873284557860003134494423754290811884395889616384159723434336387551180237651739127020021981580707767858672045969248266191380151154040090438068245413456128454355164282316223701487369653743708659755604407861472818408268529376426779507782535114440976663283788938425258374324326423926758786976673466274154592622025643573418434645359110438481163056364737517591640047947110395980096576600143482675954769130160215939501934650533375163668358844338921753050340291533651660676867053403082345183103371433247443052751446866513090026710493964147885321691565741471662697533021116669666386395929530318910213193177836579695758407903813799159626483471786249362476176468771510826345022401625365127443571789292176636216586245761997022245806923297130988087321326841604013556386484966402262363633986411668759598088798546754986495100314095102369252121278151547327602581394776096054943932700418746347105701600272123342742450748278275026673649820147879817727906291392104331570613960986325124488198651825789936729886435384133847802299691090047906683992959299221173709343806839163528580488904982531592424706771434304683015050544827468511019015882807142724443821922926452673241124672261584994786690531253207116172818567596777173251933547606571337149271380689926413569243510643423013468989243902473259352923075807319656537316742779236007723272785516455739475287636642004531807470530812205751183901298855262640107426131169905548893057071900333164687109481304368609058874783466315349069564773910616932474887172808560475432502765676467761696660304276965417772668807955094455599030436746215074066506046265849187214559718699989117063635526056396180725185879749216988465182709554309915232591953328639410959783137709978229273385556926970844652390129302315799969156042815400672142643840308825149218950976083126490520348574681652782839082271941920273331854908340228970615031971060886459168561746143902076561136921900273782824280975971286980320249145483460462122090460439859814595162080256829573254358815802079777849222785351762164970841811844380689833627249880381046330074383571140285702843334952359463294055856397041375189579594065958219619811408899505059175297435118355644984222081700812928837967943629019501616373335745245655581537145585033286821090800162260882841545929335049925202445365613157006932376953407372258841468620504519859894055865702236410985553754826710124527986741152820506639961312437379728314352394246820575180917700231580741217310515180669570707112050304560773382860469630413691329535935525156762979367499377239423969923847945553182916146628176200952304001160527988356433852210633338115813453557729424098409392778851384953562926168395404018739025879422780326819165108051497569712427251442081541492428564438098673977309348183457131873102403990676318394477926668620393297571291791326954060247265874637543980278533662761222607421229671250292132668575847145037941331462738977876667894328908338372741069518534099229340113032613746904449483114400883599774078404989185776001407528237124618849023303077479524252552314251335041689739128801396963036695863996798315597928431316008244804284579473175944985936992079820745259308914335242056461767048472176433625637162728878056873847004079135327386158416142207328039407597091868256138086775376715904862995394533032828594254648791154545333894985298974167817155385908923851118438738044059485225102117737582135179491126151454694727772369695141880591548945286982798775720602413654450099917304592618078319013120311717455536909742072401749245158399903878014210694931736535686496145320347530374767963040321047576433289453798045751067587333917221193567330659269219124510858058809771966745872910760048633115200208748080495990111660157659398687957938361907017790719688020547159127159750104752640865687681820944590834224383552068684523618790171085355562143837861696882706693734090803172130375396350918758203528385223668462160845476809019257710177161866576654796014937710417892407565381786938320664647089773243046149536262570273988348065301747428359886557615796527239591889947710653572778268986724823402429012283776024065981230998532436312608574064935972740676388367076538948629438318066403885766143849434029539729796886624857772748753302564232959427072521846087090375050020305448932993333513122532949203325876556841855316453832216599128650854669105340678297877410606710200896916001401146239744346690636301886286509974319731530812233742351501428824794215799204737594530005327815650684853485797540514895975667829872922208110418250471478915456746314596836660102451262802297561741721336873285843424259130824275919417467318052739956438935629749805657584285063066220618532697059535897775562570806099851498282418359894538373621182666018071211755445735342505592195473720528176654410648807016973564372925203237700244915552731918357523218576775359547574062802156560218180732071913123256251769159961519923185100412798303542815056488649204705850731341950345606856237757408230625183466333327904708092860236572561073479986021104026468049615748665468298193297036470961073151019825152674513480657404219959855869920881552414392331080711806946069545669236490876386337668478591593351720477904260438113253756821726100808756882046446960446393146247695065736542292468403220222907530558307662643578630058166021202896897418531121406575427968611247697307549735201886779777874841384309477887663442994151276022228928153422475731368167028437519109203258868688275989648764517080381752533489570863569942302305256668618000766490352377275734196352665297586419802172791042397414600679889323851375808630268654076642643889680484567081472366814041656209587568698612442326590496943412524990692373393921071538559482774261753109753979751747845217492722372263288898292928911786489180764135107883731240888213918510964557097622008511247834342461732933100891755095005321867678698876534925991616069678486057896012028760662842872559904868549764068706813174712884373784647237332826797144618195182357514579682286350905437171920605940597862380903036926784339386620726424980386334527493374757977995968219508431966028755893231441804454955142344174456843130893458711148458343078207164791125600541375379858790225109358333645336422083336420996316314382134839955121064180558476196359877293959547324422812799232197732201356734436886256782929042356773639110924839542339945473791445720893888448885422504733137232685725289734122821417845325296129518479213989060707927109130101590143300230540877411511108409920132120753864055809439643372844752535147883340680335276630329412166957678828182638251614673951488842361350862880251532940676317400098492282681608579630926169582685483219256330295601182119886103528391475854274706050803587775826691396930094164124335685358263635935985331694412351851353701452150623827317255772566746841899356432023262054916626204145710498113790744415582474122736125092279358488988896476893370405606082216683716056778762683854532726828689311622057600591021576405558937758975545250533294331305297336438648697522201502059855688337924707170075924996241213524555463257431178037120005731627841113709778350989452851339096624613158317669364301473255706713382322022043509255776452464573595589287136720072470683953572912090486629565996513893570766135210797637682834810150338911863265472883660021747338423699169709134833201788849325738299325098845987020706071521851234910333313274130200072313190810168440997357407815629541538950060520412386830086200022264442190276161126918904091591513082620201445977721949005983683828118189687601610689659991369433778995909458335973152103931304136446815992676133950292781826686474306517896678076853697908617683645722327495882357316186997673835772042472780286249774118772747181571841851463415227991013055124281318709342469730168268895775944049814395927391653853705541838367703854833418226482400361710683409260980103953765057146849984552598113015630705960779347980805843347791372403755185452169786278638618372252440659860192838383162575296243295062152732107750600243994814286488785013243187221383840271398126192890603455829583091848784046234505561473413693624404133635392231431728527795795687308756682011632733480497840512407247696634709248405303303666065673035217892805014401507732610468022852497379042910735149694799211775438215241570111160212140405367912990538088920245846424996569253583240410434835758900588820028461072754063030912516658325081526560628291319070545774726154190765612027726674418953668212813326833135343082269365302998477602654392561842705740763732530480910010472098928729932008430330423452299748424970122870450108403614304354491821246505463416098235857323406771393675602686876547132383547431046726187674890526481851813572643033553919163981799489815939265355745493674874851619432480454094119084452423884846172754517321105091763740192024592690075977373172639880119629290590727778124125255723652684061292240584603901367652220548343105874374633512856850165704699856123964649526869656553083539980258065507965449473757551385752372941993538514947428907212238207473086443181111405785574776532139883154920412027454335450282039915607615179450209745731408159714125324644603500711028661092293598797723399628174460896959929386369809505706095417486678458954632953665570794235983433562878733080955650939660672609173762214019617298725023617542479313857744619974015998645838781387003117643969619596023011923054321935925031552201624108799169853991922603514883907444095574769958449545505969755220446569376921995011135299701783097264986137779483118971620973740925012566238683881340792844530415905586575993652667537761984698882066365192647055413542532962283674225301437740978657697301054708868840871763121661247010489180319302795709082520087423564668909711853905704321765178550734364106259361446728909173924858935066636948945241196325523297801785054529203479130558715649940426978204420427606196002228011248082586119068810699143758398479839223567129713605632186935733918280497830691261599373793002069148908866712191468730553395785310651756806292216599769005700170461869505330110875448361371379470940710077261256387386149183286189816583359661584079332305416811177699816852595442087114963042340278092690594200145409585955958933665687259688652020403809555527712049868692676331812949292748160040400167930827067311887620630977638252293255070934013471119732213488135566115468899048397954580751106209955600203932465880556967563176919243653385062454503723170652367840197954423419746346076996890372738487534453432702744279776084918206029123259782885095012400401399153590764822249653519222623115190133632432766760441815269554700523573982799446037801369213176992614276511971027217043425062496825565151928161869065070323969003694766484635089638791173591956300445710259623597083185290666641201404531183205653079141131585794154945669486408492077518383726325184218203048662073270317703868544601167874809103355577998228106202040308788184980143997509206494532341001074175271804325447737021128964991063232415232001025370855760071286832203225694261912917361881627845941530348564458942222620828435455668019016635565394506158406841008097778253295411189354115727820842498298040436110510513897244613202556569263302388193103479366450266380675677033471606722264868913121564088124104675464443817657526478770799194313147234758547619186921071547809916559049535101585022911287907909429409295299009399668690067672442788394487689265703330830585405820092172053657074311892109788026720099378727386229559606280671046678769351729898966281862145301052872331012847279167663627861078836171929864860772709693195201829220655367257324568513012047596886764597732816772896300304003022020660843987057776984805424190482586504388275459012263471625541307808689916523892248091918512239033604085533281853802521759272465944887976900008983877468596490306269482047427237763949555370294906442330009129512500185996027921207060126406443332829259703771894374214594157013699974835887550162363636286946363647818972834780263745002637386632415954538325416636380208664511765638329385254403535125243030342748764193313748801188824277428602245624830802577369610466985923902254471633290429373713542573554581038381332939202271539358890380707453566747588389351158435461747171054468599242837328182178003998356252493230282547357099339603497678781550698168114404913068203194554536201316016081012528217453995253664221717860710768138247269003996440398705028353401675019158631295424403723308024177743047829612064693897282097903596764436444184130485236919790195880163640843326255207679562923831782439198838006172066344220423811287738754338595538714273672499585386704815194308395935436940916848561828411250953540978881397764662167873870693218744670651017540820840332655836196418475160743395038754261252040312042422509134600678808448227140717998856112482972502594887266670286871412793839533735547307313488504370000153640699241591642592561725211085430337167375292262818475353577029415278143795018646986045167264359279308528313603806317144264758678305356813513584804284467727111504274558581667427478326010414483508116217722536389664507952647671394038694773404615192261621857820799603426639265030651704110966896628154642433957260256914056842416269638974962413446699103504784805078590025150279268202527810585597485069500689875801968435154185556952821699974530100996641288445781100557416404020229681828770483896147256192760548983355392235404371784038066561981778981089205876951848641890808132229115183540449648647719693051770994167000808728370046573327901594018656305278134638435654832962477381131137261242863168301057026521908140710882982173809496155033313040681529729017205067613443328913332582247299328169153176552593603487761156503884764938100201337926909029232787730061501479403189501213485839031614875419728511962026702985280857154939641397799530385820863143643531593819749717816286603406615757551398570632672847201113415735028028400285944820429479380581774464240024048283463500488625340956155813896603592587130979698667032122294813786190578764210669608271163430251017015940778972554092275692468059615166944243240870232238874421298574013455582665395733750942065749742673390179293494921356707689764189537613617896276310306045154945280520695693851471888546163553192074027150585213872306126360230249096555749437076236889050571938944798449914966076123395466285006406611916464685995026342755538511750021373582221612125730390669821003635572953755807533127270181234217910584321530270680426431695242545437132200068740289804664504740132760994098570537860452456048903901511827124406019734689656213836027083414308517334313432661730989959599243269935079401860251656158232735411568415880547929716804983005911896835939356698859161740765111758825401248759798772278418398016398517844677386270377227009697530672862484543956666934022716426122506384785375064360157054834999672354522153404990489064317059932948035713304806789062446974529752578221731049094060046044674435968666925745986592829648629765137866575098326671032160933220822458593739011175377188507368212108053202094084469919492194449758113031543917956366002895630331559472821706638496746147581690695228673220344531927936057446493305108549997175537387883053384942275855909548908521300945195183295728965401463541055651886787739893600318710414095389161913314747179073957632694107250235836655253761121745425498837157745852612979640528453244199572005405570497347697671486180448479603927168318192985804897927435784671716852730988574994766663764030217084352254577234807617560904027968737092042641209317780942331492939064586770884080938277900691491466310699465476860783820687902320545931095201191311813870551149072011007752780216323534466072722723256601533551027709296504282817024906366830049680928803987694756769357416600183961673290824780150518290382895391016097900628101158852710600792903067947914797436051030481501058214166856556942708639129117875019268730563603530104139537764784349666080687101864025502191064004327495620528236370055175731295022835258298100262556650727824967565993028941477972121721915871809275239554556315658601895033649521022998975455351884580091966286897523471702878126320924085191278701695315235463085529924481164401904492156749820460340924030635311022590000981373765488486344997035353440314569882980383178314014533378437479153634296633513267710555739482863678174595418887602238542519329205497143517406010506934388982767404269844347899349522661591262366869667714251020087813730488654775632601196433277372423039567608830475095403637805019250860570144158281165944618091914637760285008078235335516261262562936556639964767776366148277064153998528507464597710029666368997803904511400710208006371198419037038928805559249245369087235942337486771544354650334412931884471980568186806162654625403084188283208383981851926864474502056886816162168931235951337054091537856119390847131249315141035150944567147897442944365729624747271103238722518833817094451429796784049770719281689111222637342650032325586293482928836863235906101033109724519952093994821956507696195630817582245362633001129073476487796724228277300435185556305781959744914500875052482125900992046000972109636875288468934908532770112382777172625715987441426514227862763845418870350462605123872805930262659365021051999956945668020907929048140850339554569725928623397475712338464990337347499713191230411791625537367663136742988800580087387190513807563922323681945970029665800513499917528577123428209711586799082113905144689199440334958317854400187485136455382626910307672983590136650544176001746963591498353484244882737796763084152467605210084920702478412192735967342550244130772071254706875467297963785943840784004815531270661021051110505782087146708377722568922589574246818481759565208363238157249258698492735786432346609862601628240185815192231699156864639812259131625576810479977891821825835952252528904443075046863688004672424275561158197167250853182577269200962334186795968263577902641437202044050607188362549236439126023799542686721134739802671739504030747868530996823977499779232860583283802940764566267511226666842712321846184249970006192131150077031530789985804670833133837707003080672401911820442665494943678187180916225505579868050025756159342915292199662599243673057813259096606196288622610153573427756027091126706242484298742019699476253485839747492607403213231348853413456697473091069900008279218936550756434373166540335824685353461956677954218613657137826407489924248963151268856829101720628093866592160085701374367921938522716295420287547887620000984454958314122456318381719771711488347485654566040789287602331992712902719197963122009348911907693448299320837831179506746073544831870208283329618972889013794297085485490193828632508285572756468696933918111073313048653619128848572623251103930022092590575546428213837728252571122091341600085967172244182274668278735104090685238504755523057308207803247596438312682391086231243119137530609393394128040819268822765575537567868520402644334687889835027319505082939527467535787797575633382339322181543355087620556903147439806642532992851509024325768469826879388292416063004286741116465250613592149801741539322379389304253627127011150011654836535756905587565656544386509378090406397769430942380788115312468643394525446848272446592638755287707781501267612651961738781239863980640475394447711856976941446716510789633278297628636372083742182846505380334423094862399924150344916334513070942681530703827280728735366649025218210672297003799811135811923967506363469038394298369519661815722209163413662206647593774923169112265411390493021746348842625581367014200317068634651046624608931213594479790940552649285272065154300959625451420693169737252760644343410479264703846751860431430467332412681732444435673576379345775868223572396479653637677441046800640137253014791123732387883663299948395386003715986281473271421879734427210452933407668963399035607731606984854582776336885721372047090072671142731844742270448612538207205777252131426671877927406230803843020962256331994084588711169598432051867390059865866986361898944268328487232916353919331560404035171773927248379246299742648668760815535804127485353563921009521206935664543065771922467951391665940863205566854820054204994540450822321131149373572076521378399062802420491617391398654384790781072091238914670403221328749687622832592313918094429296515232189439019217320136899859905954261457832811296865343515483767423292658095610239648635095708102785809773930140896795751349430448743242691471477141550947122665730035699007329446502292064749073937688363559548841752618333448958402629499902244202264791634573262742713418633640814512718362681906051864732208714726382434803304065215025198133262300034153092637224942421137429094898302838889848139135557540092071636967160543954421502108153076451771863300950153709196371077868179211674165230221441392382209534371550172453623492988303641903079902166982657266652705432521124762965101135181096212612684642700774985995873084398873764091720294674874570332452298605577957676502941081066799957973653081496179014348445524404025172990502383499449458483367106083749831117249862280819880335580613804186553433528131761211544797783217535389047429283385478616252301470703441815078332258920141968403950601988208089880494625395732627963780634823333167639629559649100942005739675960774777993302744453480528724764562944124596400222014318744539380432697979820355865106354927351573588446011999327707596834682653773305081519825979177229853077887055347637274740385825611817870947800308632950590069219275541720472675778517230971240018494714313153955108912329023269704911270599297622808127565870838418097266179669104969785700783935112427997590048991717593387858769758469330483452540298009965047792573750784106053195026950114218052448523105423939294836282185039210127318672200298036960362739821327885053371324898563901162344238989428613032590381451115104902343571235257118404073376967349317143685661826443437221967151318458235340919309405199186297601239310394375257368924072263389536089177760249538629490018291021382362827321755034777167904020152004679609661903345136731705862054796219998922295717561166022041763877593417444636494345127975606795915587589733049636934373720038105469896056242652989286999686337867783235440526408154176474728967931468502427534074296072415374031351546605886172496229477513547974275062468201906275435315724176095960292809092670881346692815384042465187193546633063859959744020366104920169268742853186567354299206780990416799658220951595355473943671258841902585055636237358998315706193916374061176022936304095851540469425280060180653576918200702409577087524709776222755037461102647678286686973586149359470170850791942787212903355739808325203780027014821287024276740086984254020849386124382028532438054997125640939039711921743460928920989997577919515407060654831859944014720582287347753727661942469605420413957185988882612490285913773934773414451622542132255809488505978648361140249285134433642082177761924714246247680425410273741445769703532046051644702855301458955427440395841668110043018909998363654133591033228554656652748617003750133490842490921069709953094210060284482213861148596356302155716463985143570293095501402680003643869092042708341223822918603841249809913900800515856545672870458592285971340990271663186276569174564392079170437572877634050167140414720213318621113598628818810726843799505361868050153069097590909507301246034065115533029684958295740263652824690906624463608342328778331220931117487589313975318373672980224767891589210340932532746390768632221488795192457397437497648006081815718134648305106593745574361489693297311589558608386358100700784107914322340441589046493543653870773988899491955334716001260373877327459699082219266229743109345813697565018190846213279742050826050369760440904936552643699619304214336195513242887539040745943130524570946857984881316207299173112861010519038525425724036345118965981112098986530434286035530934117353768371674624821551574893063711765284369687864411323341671162043695996297216458690416165206056637398080461371470253658274410640859981342035970421540848020862823462230356064168044155017217310360700901757511632303640218992830798163757384436145387237062918070289104526099027294020513164258172268812832531990283230837955417586165572119281128951808023947492370835006280891948813798804170300193984991960821617921167195139822317086102312081006771276548428298936834191440662977215908129369582890643336723991984557422667862616247728473018592877863139997829196892265736597088039720697992582504147823684995966657359899681586325359215293200189615642326871630123288812985838358531819246023900042529978398054638894100879550202782477446491925944519049481285855567509778028165552650836227103678325804874420483241779459927079404384859666670259142700809028908079626694611258868679130163363646504335909509577658767007034120979473026946681469874317809237569334804936519238387729760473191116296927013845069821351086697361180164389269206657623255097155462284257520718420956374528603899456174605116018856023098598495236414606754153833306276943240934695899849137566018208388260555088284064841710344261064824385900573081531889052760238137623382512336338717638013521051202331956814843501542392371872195126075237358349633397403687793413401119022811298284861539478272259975706421659702476842959879970154950904288113089423605172168483376911494116671720576082108461269512999299961604859313155478972896832868909912533473657008861574294658968098385000012819019255867473015956000151696228581189392995271866324792072784930399430610763649742843815008761108690917237496923075435271793013922877194851181847567953781915104987176516638761605281044144490904065035642804241243956845793168912473669000777808964056493541809021830134907040433768366446660531858546454011823834014894687388075910657851508986064312963126573244275868496869753822984019790857348567719261578984959280345593681687245925404317801845340456896839058656891918845192246515652547745640044482978306596952425288832088534580953932986833419305527890675230023814052632430366167692103967542123024299447812557898261083494346509703342809048286815184103297659900214881347581042785508143554697452926525219177029549808088389867316737655406900931658689035016630074357254611738870356132172448492570561418007565996742372763748457748089126736145377155715278178928028269044347441177088670159943934071796411597141715710258299328328601361875829045808921763986201986235256919387437853589251327256052330475973427134847200949844853885222438043720545275549267241752210016054186431503511117988782853327536483191625275391298720927916877370619276001411927740387505646464541184771598921149377648061397686610770825385792842172025066284885946991723691351196902821801839442289787656868687029104395798387921596596113288902531788316586496633599773276657212442614900511221149712002984201514040032496211769986822147601014605042056003916597638314361358468388112823811800551141933615123296795192955645415063096578800336405578323571085299766068618578816421440199200351645275839247930610937759566339935697763425197175135655751954110514462526378514381792657052292624435437005809208408226621728404148741383682407719296376708912435740314415028450239930930735167851310358207115904488415870779430691995011960859272504963833667716998605403402678529191882148227778761680721657488032965117984489595788449276349364485186427252918053030600757985322350814975751465917811515789874083023589916020231599121869540551950500637304710786678994090495398708959635676037520992323951359224504193550250073866369378493419366926168406618770393947870363558620093060018098759003734076181468986329098199662704944433903367085764839472715047841131172539172394385143581091236521924196218483680262145407058573706922081179010276642314145669731310422069535620103852514221729829008816604445518092731353588271941204271525513236207153591268181248986992348997900338197320519322869991608637280314359039843281658976541216615411498388775711011029610724391867215428597517132216325091870649662793237606500365543808722483795353524162774339531582262947106127785216188490298493717112868504278459401025468855087521159823492127593043380847358046332284272494896313466823707908870744748593489350551471645298911227752761740531437365952903198375622235128303681693002098212862027258436218768879118666114183041297023811460443427886881017439287932263285388138635188868634347317804356658653835992573285471631558568156349665073887904126494476182921971065404753028574274951468405011120717368352756562376522493956282059052749161637870772987846534561525586502778112051203018974538237844550731461085641243813170701489994931673638279571272227278593640324511589240285438924215020224922008308370634820920296141019366014188185890451279706821538572865881159404035018285118003349427026177469371857230485920246129425185410587910802109745290089694242155344355509725701997179566530367310481126494171233490414034729651728029203216763401791955977083867966135545951187513255628664294240009398288823865107025945801623304406631591166422532945159480448133463837564395295049571345290127138131109465023050135763221416267891927782199644578053715017610214312247395324853439965298283926235263203627818693237373731680391550266012364115669436893814678187072731293654452685655980076900935579702278148459386924626257313629498414320538100734688843493988736203357331540150460130635630521605654322769409704334236872148641275343569956022512673578393961230825096333357848907344288003651970626091229904304334494162303910631078978948863353548293220839577368998043478906583419003562686162516903493677941296088939808165712335078394319229397171585592995734216970575371393252197102046682404754622169955762328266412476263607252740388384019392053756658818522474862984837725275963848033026075406408659286596226008639392503968071377042674396431687831570601922430809259721420382909656857617314207971875686424284344167785339318573855149627074055033111568494241860276998086547073619599798962474600840379713804229272042655666135380936145409807481759524931427839987562229824969172330696517834065661927448038590832620312810078563186717815544585112408177344055744956678791824803231529744198464340493049680584898159890030897223055462318096302988140574754020254764713269908839104763754664891162448862837535444052441704229512442022234818109035796166771150635277156319883204483583681984725620740343403546911744852602362780752220439055913153892236750538547190477574043230334582457793900512445626920850579215238796705405879215320167531611109747506227874749433912648176540571924699008288875225094986704130972601070033268277203566841800427520752523549559533190323146471141981848516551192765008823095115967714428512138854393665122163132551568566063813849132020042019331872008264551862979289512289808385374442694225311389954404627266875279335954775674209663597531483575787050298616977645180010926091892953722185327620651940782797006814468737514459141712852099488511412503650547400014265453898428426293522325493174891011131797538641647055490258403613109627441892312532137787457856319801437859160440400135890449182595796947678202217269460185861787253744994795862267382641943822446679523791793416191631309534122662469294015510517641005738138984529086791918990310004566504903425016531427485297163380903290727488170416256981163983218277484564382514199093457300279340726111401790244403252873274552591017303176304430695880779462011586052320780741969604285726413583369298103949921009929340067600313609734441415439032450106242821258442541021379282037970244389044331722067979718786952558291428232489778376540569459064754434990425946881415515310057937276468740212870177109953078106067281989980831284660944750868652953465030309379248007357405020541023402229941603586991167016225330439849716927363782692092620412887036463507354380344254175056005996735017970715073700543841628516659649838303344402734257044815924347128276830891969590337910875362346388508853428362735537850966182737578583947824030775601648313004792475568407642421980497740684025575180720344898822010380076584521413461504030739983539447717327457798099540219051391422236086206151539418254941773623362368502803598797845380936671304331959229872219112980623819588959374176419438143373129619908776086995509556824491199633478340131224791981652348865611909945955207973770121935602317991258834595030132107337656200094280622230137074041822218981661865324743920369054167382767778154781347905950746447499079460305926805247982969848534112682992052306075129164905882149266518890932284452405179633280026722795735786896566465008024455303301468834874044594652046539012721767668824848117221878219611193664126732597544054474588257578590974576568882794652716205297189472036018294644355721393500173500940994852327171461760933801996682595912090656540454485430555614664513971512794589958910563300793674073665202493433423993405020694456274079543102565008308968815966820902529453003246311390921354877867019339253707966326653448038599870416284440115096506410999790255927214664001174191931313559338587674186425442377218425051539697299429859135300886956234148226164254290430331368888958466968459644897425552298643133515679023082248995125923758432492364211319750203093879154375240307216065450424716767492539724291858887916110705353089990411878257254840251503659477979905926391142186152476843917925102997761367170438593468707995340321523909577059790851788539709013922690290852199849281223462989679441987746300706907296434726005203579075444191771228855637715954287659361531967975736314313404306975532513184539808706379435073482122166875192106026502522082619466574161171580649254091223026731570572261557922301735912055021846781969823625676512832960216161066054289944236681972742485823130299966545029678432377668111407511528046778558792634303863260024446680112820512494562674552074364668410364651025658267744557835808255434843842206211503569534029753865349084909682111885796860299508329291698873899438669289835426741216543554193608859616746350838568459907439591371458887169805404803612251471340970363125370454281435968214119175148763808655313518808386409340988746788965855210148814417134137327629113172211896027729884240959387839767917018613199978144458491708265497345958779560592181626134225934420818426094310108956745989706146046530025424816093783281911117695984655583849595880326728733693266735441358222276013186857215660138268347305312094615031490096557045005468223925994499245111816919023662648629613774213158397820682933737842938474059139091829150269808359638841570567812833855473672058250813517701532319722502268207592228687208693079242599908689167399577725785984664902592292477519765409080692558999407898139913057082123866710465156881950374876468339156643866823850660103773764759829301438609967685992514554960636711782610155757456939755690754118632281983437227712238849932649562972814075733177395941784212483079975362434689688018839094921789522411115961095732455181036426779177604430878428063700604766512123978991805554526397809616614261230577190600533474148297662951258249735321209390872208591406792775046884547206941896780715833426541034176439041665873743305298569012245370475276093076048922815963157101818474996869622168635005457557352464834116477101123327958503897761739339498375249383439305727997637771110718590065947334093218486033617998811788001450071361073917205549743247935924675156685310399009402009242536147668885655965753669041438279356335755046546963694440563780965415129802184771780590159514741352823002169936861919417322679780257086814092466516349266111267287179998867084079941790344719156348751519378646811726079780561551770712072615612628040853263401805715248057724754945266642937691864346009586890460908148035214920290208355146502983986782002728872798486704672049329015319385957406605042575273320534547288809351602907457369234927603707846605261787122630285046472593589951450559647848390122569796403276059740459003110881174944854172414447817476643116081834039652886512080554287366887516631049745171245794698964578695086448250799354939224036550120102676187605847055451487017721263348019288218459384492019515140966079259331583263745019773865116005957680137294112690183043771319821736330412416657849568845408952137310983347648393445541768306275182127890885684121461728347466999792963013575100871067991713977994223991418266841009062830706055984510276931134686638819846379389642956635609130207672383211260702740992660409564122118414747501536823228774743414368697888907993041055334931326793860323175982630934780141837596999328672563826603927518607738306717661288775611040805972075362434035241863712198884934163420874058219860216299416019761492057775847464652274715973946143925729176130792458820344232032944125739942648170964725794544638961011555906070025478930941799819017445737840359310257184544675871710856859472081511866529449314564885526875461228512894193813368312729062330513038608174271039106606535925423958684816963102295541116492892707606034297714832740048742190191416840603530029085639276229409978862204491710013830553477956399714482931094657339125131388711684284943008451219365048092232347878852939846769337829568435693304328261878271245892042859327611040824048521331237912688935194242288689236885066472786091936470990009575076749596598752865904479791458184608282734290471104773455926671235604658697075739106157090105369671458128372548245835793826403631606059981554569074187180660324310294781991013181171030449849251685340683303644010456717294112131186785759816225800481479455747987076484864927429317647572635781675305507476154517436942091308598043018363392744529288860784596045739588467733740698579188106651048787739081100561295306604819257126822297631998851705686247620050055469045778431299590709163041339592365313659406223762345711082482257908132555386648542772336379091065522481043025444484461899418821953025924969030865846887204414376080669106067733232279750749882192132948241855130595624403047171871884065651441503466354422816580420143740446519059926230181679680608471846374246050955290369875184002867519405917315628706851984341886738637803950258165609889903879331784379291007928398468511405272189934363725123503626621014789785525007893674893291663497297376019840427850273632606957730150320552086671641588288082113074997963046722504768203092680184910035967493330913031874007879879202348483758928417981329703421785175709898817357864376459287638733655818585122371180945410991624579471757194590923418402228291260544623553774309774686871244218650159604838572052463680187304566480787627976663889663173510699601450419487475494908587949944569600403516618917572694950448500600433115381955653216035595670184412998623928809227768173234170632400405024907135596588949607600997518615906333249940768667046545731013276931467007583195414851618983845926041663588459883715261108824455139436782521298126327767804845739261234048880998935229879396654219363002567835846226804993196421801097422621464754720791182983279198845031173161505048041153735771682857704742415906638012480049799065282846220913306265183731377871133557266420722541182384835410215626971470861459145526615056206515385852162825886455957913158116563779271259469709124622820374116177768681672558309979359832939611249794647252024621014692306810210518272347187304755321288571920016467013467603003466629143041597631265513549542230633558235699540470478444882459087234457035168218913627536108504051082961428437222620892798731429296780569139204412649693988269466551744491610607723920349793869559266885325242753959504298647150880024453373125128558278063401935985454400302704269865800208790493175058451904977156883020512464614125864559079926623819181654100722595550004306372049656561681115867297478303290275439049747391078655265788116302839958315595270748506413822729460750579867490986045630764362709790559338586269302213069600834567035084506673548834791353979669602791794477519461617429164698498854487846807479793277846951072237295276930447638743183668350216924526484977845754044316398669572961936036696882378061498668700396852168831775721232224845192537507068858526334975062355746356794560634881836517408778260208853978732239283831631973202830252967984894737701619529079695723829337059888169534757711081486872403202377389684420991876594429702721531150644796853206308542967736077066022491024037242179226025031735782159074421687217966950197708375946779577105103399962493859403702137572852502092230542120119783316406206045842753353717915799165566932643020348210933154736873950809394698228540700366588521986793323845582038893010405973882234527895978843739178130408139954675416979578826409149629740870281573585010892691374870297804840927415239735583080928687184387551475338393295629619146461860824340601385523380657756873865647708081646765548467081923089564043203392146321908135467917129559698966978492589045811911341138351940466830412189826142857469928426944078117209797083113392432374605552422824454456612194574110995057420009425192536225413770458312877165089709077212219810719739129564897337307779742659860520900404264869739331438249474768449686072080251326628976451365902787784491060519205170789397808801137626780915963028798143323757961682480375926665481219627972032893993058410624645224127476500129265732517524268508705635108501345482513283119925672413422958714469503674074917289275665364573320478104079788248933192690081661836573220030939363423149876664407032740927506387950181771755024748023042129100167034796768620963036091688633652768652311303591902584701575420811218569544333533704163822212884981487395822911619378244588307258989439473399918722764626865511812801274222104905017674926538674804568275472137283895109915748331162134601982188204409638509279753073046831617148153050156804559139483241320189878466484597837930018845683347848865989947910498882141445979131987125487067020496142227816538767089310584621154810389774326233117599541272894690335094766868429891396101918814400669986972814337808213887362387946208684067535359314690029243286508290150210244031976521326403411100390020463585878449543560783418606492971937775181765998210759322750608878431192644495218815601190615125327766455009637586917968190920477809263839296788499443727645441008158456048699017970847886246020543154664215127180650039243239042867234230855610778156401820789679386661794970691130745906708948956378674925641877406539163325019642884583107259284110067760586392632609285270564052037027021382258407777183419160152710579999939458412647663602395942091643669752291380741208904113367744996169157027517235063759974649292812366437698372327083319366118861036526570236356738132167131468128320210643277256148574753054804093472162958642947633700803155496983585547781864741598599798035991382691440345935354638191854240519418909030383012675273428903908480039316911540997922334355378451242019601704251707018246037494026779499635888016131912509399440735915862584675672118510182369322488645076575308105192023313064926520934207342399490652590953616627030022488313082359489042928308368003263577280471731293994357714522596402084106478316924869455031145129912724105269712309431416908140405585787068138570958954722373807046531424821643680991929620908417920943680907004819843695343199715793338413926350643638992906270161382324697061532541224783384498468924441658388166096234551778903082263565092018074587014341586140957287912628063620099969568648361301092585073124146923346297618624066166616276326122649688049390818504568522240682334014376367246209558453047722960177668507391020129675764593270565567205751193337841895030402819252900947406262176216361075992991579019691175807865970159924100965721766163529660272324095943414921642581633246755908601471337805821281972195453103636609489115275128638165610423013227867117244564188405091022730429247264992785260166930081898378230470398137302967100739056242411274883924604291662421680141331919298035974183843800746065783743788832179555843105593090996624348011831683500503093667191472233561847671593364923880424796966087534713865760237489052496571573353223453023639525332366010240092683199724432144671848616926033999489850806527201548670380115953371710640805723651489413116156744052763720876586196877583405807975039870008933128773397694512814214258307352411203314001600383687372850552237770328056833296182226209135976134244427188181904765866166112439286784749215223381289089136701282267450180494489671259711612942842897834001895805679360763233835592602079762665426337364586683553415346570468803386915243582739021574496786086495264616581269088683550481355161476873485715847148338694257886574595964471424646008159538551484060796063299588287602070260347444929842483707194930901706516587149365338953287595711368728703929251832209268270025423627121629157193547991929029141677206675007707462010217952519386599416932559636619518577897330350847252263841972982114079644370145601623114956861707285613697147260618725457201757024911341038477071432042853716146685999060567701754196836880850375385653113843142602282725468734472489132104528164575846219890563114474201139628472108880742090328529657378362869505344966964752811797696301395854896224312808808227685164126644358529351815365760529938360515816585234786096371236088127043776015831848747771028539499854454698838074290471227029840110495312906800017420698759135947042676452176606653038051261605879543323777489875675151711135356725675677300591627553701443463813816531564816173075750925868311861481752560025946677776999309199930212953384598570437818263513237378586022163773126398703228344124065196178270217524657447473056104951691275682818429220923088136816397286359752482468848390620581699176553374388480112978420693712044503666898137183494011533043634724854010036101372919245759718427964543384606872141718156523103185946260718813922633947108948993117758852936995612934042039843018988556151860341532396118634438304726558788717584005446481434284396499063687838672455028580197012848569562597594248845343532437968183818880297697282660856616279755873194008744485874336176100293663425925777240698192183355402240623916717843104311334229921136074529245149800794120326884722370315544519878785390147022834340685464787440505373929604074795969656881430488469177408584225390639470962573244836845529726620770515379420127981043333675059244544249258423639861074311746531781442451061127066112436535843414042682537467339101050181968649121922282992860420618555859200192207458214337143349389041415697887114345297873516561349243446354955085061850035091422781446898238776968121136147823636664600431935498305424618897141245751506095692718983244396107267859098333728781165889157822920557897284110065224371548832520017662025076644483122925028754114854854879478179029938571880910762872521674296566022112014084547659417924916132074191194267638167696390465549609585706056287863009187854667136244847098833880893781437651929319465212590074717003163897846831568642063914699412488541315364573074675864552623086588593298253547549264229108080054581578605158355646788044601061283310690332320150281362211602895272414812643644962292815002459383725081152981008872130371267993909409660198633799331455942222539718152600155177604597485461825553560037554130210559640240906617575137896087135720523107161649215304808444471272223929201735552982221762711369336333344638690232027398215042124243099509993536916885846244961147910383729812020139276386036809407350773823803182204014821170298940725657858029840280980543580339467506939072286024858989889176782214818784957020203003732262986266107913594422268197782154586917529401275675031829942314089533268040495369557790810327342094387256110736460899122645254787618870547945956442361496347687557842087438659668765562831374981397131712568318958614332541187194332286680481586635757863835706840981852792645010167481932062970405055381931296581546578504262505782928363253135285869723145141366313818494576097984716479913563973559115177565228188305713420436469795933795404591562425126517313779630973533368111776123993276473457858320168653053912697126416053144474203849786460079530315717561669502109529587298686309902295042862398848544721079730466523488173511715078343236246948371949582231175325707228590596833526314199909162051279131018318046373572397191189762180487970981543272997180886276683290536100875564932672426984470276969625766758608830225904629814278003665433056098963197174615146213512538334318284552501035437244592816331068988831437061998615264292675269142029645016553541918095163831079962038321986080568144017116049320940542972811337329526490209613426864578027745971400625007026746910007412568323848147666713268168387519737717138470902030944412558324629823117412205260574769914667811730580533385696136151697607663774636396294688289352104232834984547675203842718971421616568466142103113856862956882548149898014949469600380179162124928268388358189574696575454481471349483009679184959090543469321257497249586464575119198245463003676019569558400824514152361568857684613015001462803981354658182247591855540700483679258354052458096157412781683902766356398117485907152117837606602265132633454830306878172014821971829250168536033094745219660442953186448706604619207459193374734728273027246031503124950341448226634856105293426772428590555222991694924206752501231809224581479422512045696603091882026607905701786591121304402931733168227808645907185074919758358596577557300263022793571241359000387600975689046601609430444758297729106415871036700630400000830961556246204073813481953879983607235990281379636297210098777181171861204087195702412155193900679304871073180261738250556531496498621851396881647895787339672998824098615078735472496907840470521744704413207927595157110443916902454892906092191380970017036110999686972846016224937478800250134835941054021211227198930613085145175013882708022713490341748014218908675024362199097360087725627464465986315609407633040880161401284881018335964088130520879964114674696016069616557411397810516683596721430527695370773450663045948306946345308844915141406695198820195656224330156539635116675422394950289265576043091724164786667743969026684883975944638368743735766890982122780239649083724680014855496460858121264910777880145757480628361950243014293195987614169678050025432295489237461594579119116267053965905937754744147599047378345812326223604272448507182032697875260591392400281914798633783512563082439591743003332944793724749537659383189264901591327451352181088090769102157391432221681498790229464341415446192751728864582417768881295309230173715344567134832939619384892214954264790203561570787424239147299118726504866101772454950128818608112331930690520397896547832667163687574783571600420376879605857584005013451740010000706511695149794679672794836669254978729459525610112956004765047323298941667746090692797627570876788747593820268820177017028077533312913025583345887056997754641301965403341407840565097783193459397991219575605535809476317574584324340335986754424787097381996478373023910982811110868780617476106886757895773323316491437433814355432860247344698985871411890705268487151225156629297616132483639858895860481991589262407653856854088309223773026238250879052338921488848045283157434111938424563924859931028724638906473555203291001126245035677899306188324936988326222087518955276942247785605267594159577968315796993730304211209940253345966089074256051359749886310024487695684986403654450935368284358021936340083150028724553185792764265819022377090227704416635833770492586576689788145703785517737517130634724224244087833622734033612421632912012935463445674413091476091900945719436743194529122212399063901957693305300729770174925198435600010353085949390790705500976413280990043775082398019180417545909926573315333450495057084778148302113278113047889321580738627290490101116891050581551924520727698666098358613306286187126460406408684578757079211141044837314598811193592914185074680656875490037181180186517194182137836795891241852555726295339105438963171548414009804463887085952272872622124205992625969325015360293199348221032777874686916273061338261287078629829896009181866628948443590840264033747357944185161282274205374750451163303227408453491417025270175061112566603542848830433049007817152549543254885987344283671431079271279751717241719871527449077604741672487724848289951550557140030202924635221576611570513939026325369733431641183068894172448268582027243991346750453722696228846330970980710492732065430314999844820572089529277364650283175640004071643713368656861244482599371352649054377159002331801436531895706006405315474777509194500378502351302244630493694163382086979075271190116750544554919422497863819657824364732573275220889191658826322942302048437886849952133261848322644584279354211916960881286939527544392785239445969988984691739121170238734733925031419940935350000710735295969481071037831257280565631049784689716979166887667553049883955536806982630735709475751883085339996192854987103588648619160029928825334988186033294342435983313366944552237399848315528032684096521937387221420030017305342241756698239227217748018657912774092273556204709472601442323194176731435131228994699248238705922931730496220826206341524491342899462793249864341708416380848666269133687965329345077177537122951925337041534261366017658869144950154234624547795292415667736092615550885147269396652182299814042036147649352979490305809109356938419978450570420219106956306432078378802799303363206269450618431054062921266040901952563871300056272430981495058512945967286942815629023444141949769416355661235519464429272381452930171260977189482651067058265994788091279124479183386214602531894904338395059806079597152028254473069323768861661704973612334207138248933341238328994664851864124649338393786277819236761488151100021494288852991719795703375874452099992608563403124934533216650618492239113488701196759672763906892393940308115106181490444941626185647356678594673459673326754835628795185902966256766566018743382188628610359680310727652636836291302349969964600312225932525642204531686968657283155289336096174413171735929286033803077789965516517951442117318709262556727446861791965022233525753332325312926302487312352705106505415258488891649392232655647472580222195186648077627398104788490054677514761071631263014265747547433538358061322288683468285719160895652007311810329649438373502134280543237687653049937732672027749458269468233513077256527311986649350332856357323796839250595687135498584729950375339638928377593703297718807651252333705906881396248230013362860630672797369336164005358852188660222877932573086993438299697745362600265492543720339634687228735094617354035022970907849037844675162275735706841968733054935592838583279244241444813249284149891765359188660572213008045788988568868252343300979256990555003350161872875442933321450963635247708851181531502756761775208586594543508766278923727637084740969002034944655241166787625255624615149590395232427427126265722124936043003757462014492765763650370247504742947995135533909008068223695823229213164088354593493463380652001912965927501667271357818201758909151183129778814373168340906128401920047900573120065948545908848288227952954802546864307122079492335916359555727886551568897523773921983903988816857374062417921816810935705183042870498739481417336612691972900047357946360913670002902049605636809671503069249703074093104738280397697637517380147816000168052678887656538186679386656591032617594369487886431144573417225716205374475892493525090932138353290901698644198538358729447662112666747980638457786386921679161130482742893803195804910491170134459873290745080764798094306530033735561118526173902791898420539856715341095094183160262402044903802496653397479907464983746483206591865342556844608497772336447791971162450811668807503212182165489372311168535297862950474120728105775528085200099487735418525588069684617567001334618578248502890721150660016155191104296574133509555900862914030950435139794324600972795832574074979063382025861507051101005603535237096707654492609657098510556652904723382127275337199437285451912788323135852602346886125271582358915863206934191623949222181706273501927038347379557868552050971468335634073472360894443754901343564556746597441346729629289619237299600649795416354922977624849721045999043667148061599909605300282373234451218451933112924877173332065110334610827942535496242706031610441498495457844729968896761309729833152961125499970139146374731186565766645208382095844921745007447058101452572229238411898810839904032011584469222533042895685787419586201801300973353424523849683607734063463354504771774242920688495167060791824425865517019852606053058686570999521219738398609527542281027600659915052286303497403516048485200311676543033175475872405868304053034454827954827207059001329964453465746324933503908839396296003380082203253329972391147182696827979413042163196641735132243706723984520456364387864793559262707876466401958970301565318577942308753279532479660956250431361063200397329807821397401845581764813838091979099543919157212145973746346721939711902191918944941176612620873756668649172858194350591331155642495962175810587053626094493771221078157490535502435357594666278396388921120021447603637116453424912695381120581127335623598600927957002608272142795423278529697577728663958537227898371583677557429546741956438907689515534960071139237671959697127210716590725650565766245245791387960226854355636736690300494356278913814443489038648334524263521948962505862526182286049885938593326496999243101958067480541557395097798057874239364014515711307600057199258968967825932938741227335463931827460717192467365600870321994922244551184774407187575765967659660728900452406840436431504061294852211854470776646732821587517786295709170809678379360800040471531258384497016308670104596464092650426511280174657542687322969306600051684169489009863981738445540854656631031276841888356851361177722217416956220631118092588028640613342714554830373101544705573730334014947574756530197858712657458365225155185694110898008707439388588385795264109283675213812577673636127329889106584419550028440646855669498163097231824271470721477152583560568821102206321674654796344838346842332758943545061046199755953182768463471394670644371336607653554676896845337556467262043677607124410731351551923274501551355527190050925021140063002417125646938583695253755198854929791213970596631055187430959543196497119772739035339196794901642315944564784876051765585209076008632978440547739536761078134449316050725641669548553364584323347881085117236145363225411440803765292223255265806244010038083847413406466545181835115003681346902451812565382028296906850976396709054094361740333292881880451304937433025212201868393871929128778723099453053260212179927359511173067847230556426963756857000212187812914594888538051894249927985885999622633399876722757355148420788043106248348956052659677469733263086240258734893074571084911845913547637269588621041102118358828019169305793406077436841138457309543643165310786748521598525569158327996415337103831339693471922275749395753079493314489303333198966884461773338272577963346318050735552121319602311866625001467483267311234073389808895516756732369621267807640189480369041932379607382782341840514275974908700827900982016178548761666147520733161710981878442214584959852242812327723357411884407423770895520212115065343098425864279378581714790098583204151701642632058849070852269179042668838727644596887318243671232940958745914439032943450101764647911040106029912010207062404326261070352250112926470358469687404881905464657007548176490586890899483853314885515883210238280562427360709321386559300978249436448904143516748192575916518495168725894412178074209037817915039164967368506111490314594700244790577309911109162934513863038762712506241916555554066610834086485132964720010007799078884591591954216401760726490618640981888611582606671883301251228156190173278997030544031604852897201448992761004196190355304346422874448951779748408456468581732927108418605418858209569654087297890410040009778176331146390430774318867359665949520895118621921732694377440019242127687422852091816541027923815081309519329618127029956669131502880702937985111991890866197148241901557495934811792202385255262224588456769461384895550855972631607274101643435104620879168571877785703059796121821458056292009405414499950022589419576745028239880184146265836417525309713870506984670740985310385321784940776128782595855962238133840973519150319495878469853974022747618423168672664536563312501557606249930403939060092751719535053727280336610254191871316679516257129127948003901702450289536072315639442148340538910356129390780752129298731043864974293295308955090392674610334511051111341297632133697344390381181395121376233126649514903825992625430980692724753536672082327370906767240501961807231289736601668487296300314932026877911552958957200732301845943298111638171670041779422411779352443575572313124611273369071466510281092305606045936058135464388470861673427710425571164889390538234730347501328159415609419784423791960718880545139039658895080917621358108051878265727667940300694207885276022666562618645539233533277699214045630752854817132493159337142834929467026611318521713711853589298326205500274224438273400089247845815208159751775917885797210916343341674022309697232398895440919026088303774542607356695112010864914021740046254687522382007483885466849770274519120162756673274677106865816549995851771911786271843248574264287932387020021723540544738646365324570378687432989678152032293363544345392241723106925977982859088925186663923395747611183458857192073296312947430945974436562180102571784062629521432656920465327049163857215361654846345768444471588754138800467784773406372255985281234039622947048517198430454641233028034564835247461888558629917145055168276537032414511222870847946379347769124894165272717771669499370751613402374162223917301143988938675445135295872385036444826833909136400599754010829794833540479504618378763211236887416291531360023223265472135704025465561620815916936883591106389885928463687589229930760771038775118246412579583213536303771777794449065343423318905868105233329204689927864756834673475349588981743775363121753297116762782158617348762563746859968284851775639812320151882397369262150581941619748296041277822708305130448311285373753577331541987612919191898881376699217177246117122799565608450268140615536689447141401201145596194971345207093579978501266439889079436935212787125208671861332239875378537241546583172032183956407356267697382241653437597048709191592279111603439552960996494705628324557952092445700347989425110148202398850939269178393027931307076023066140351142498011851243163375499584409527226743360352605008480497451306568728801987015774699096002064169621914448218562733342791608885335380849292092053872397181416172856707720360101347790526851980578733497601090067472808431760326913597933672439621667384627111923318646968094206385467643110493334224885400076204193530585449535886921749440130918472962186410407267396817813276973526867550664240151378705838967996309964638909566154844244681648578846578892676256935158777029453647940297376295905904254345939342411027202304881861692837242239298769323995922664694956166418885461230813312699123886648020028094662790225066868573723109493668076017665333331778052979541098815252428700830832105297777854904978227706417526240417730788281362410116052045779130590515422286980075384198652726094711071767077860765429272539307201274175998183865924492734110981160749373346529957626449739999069645565715601841953865852985909702803282953207333716187447190073347023392807424705224705809395025353989829054925005708160143253361278441948737179802754430060240686688163778385914458080156304572832629999659985036339372119085833576113119430400749635563134466379291415493313558289965224726694652408316485250907895466786314421431468486123069130926615818725448442093822979857847675077098594699566388869997485372824449468172885319661235738975805975245323337852684895884622828016987516817835179575637653431087696734983265594513698826677093707553623253853704837987746157807118389199968132688133025990434302480235911688947891094812933088472926140415370878579063337825643969844503298824071684848459358924736729753339173820538608301840878168113605810611829083154035977165983957195471833081060058448344944296593712805662883301972668135767517106821963636056813601643063259550183859385472898739282668582445931517623115409892879153462472038706825958697721574616439986417878386121113225720739272236764022903121204498850928148855164603302292256285884779203266898415887227515421470122810479061402304110936437142451118900947283675581625048917391597946422872091616843017134249208670563351086076969965945701205070790329082023816101630326946656998393544598175537242841342060634250892995568606344456425399666380044970938674054503603316687657245113092469630143331667342093209659177750595240221842591137936485779552677873231145236824585941783443096337277611286577977323930361915237624545833791835637690989850756859773482763770589382200127980232440386790302571879996028934610226740230112562783235330529555080009661578818499076421959408596794571746510680706013377583740268901523140314550835738645211443958931185083692901474117321029572785397874739403105918969017034883974680392227615572428587554119409665351147574733224283220332237376413264355192288398239117401868882431687306711975991879216626163584839616566674101592198300034332061030340491228735416992094273683361661498080034724447727246428501969306156379191836939683396168726958819942357190455433937202506169524473402085438733568143887359237658598318194487637359581145460317846701878342682251909558632153637114631897791351306985795982633619802618536670465574967108209491594176643679090132804846320130962399685192036954377704097865155056154556436172767108002049423201815073914823286509028399492209858580814691768916640044336851001114554327103579161893403644195917013027935535163341555963050415139110021358625001710486651621155285596403387522036292185604770504620168770129114982952625725334364681714925313804548188089840691552972109658144185016476334291962825937308506663718810968361768019253931119032282430770630308145550619402442816766854086270984329057642399079026699087903931753893013143309973110264720739185711705232178847905430307835261681271538122960344869231588894928553856996444758919730300852482845075085113014373714186032423367236968608768217205818818552108454923271823247033112382425035370531220152687486372642463236179727607999964403196547754535142885239478601606733492493286009547398192172789677017559274368417348820060109283188197911672475001006906369730792129422346050246375372480956227972062805619654663609186542905020789925709627860257634510500960254541519161496843711566060790919898582877706058604127037358364798929003044100730547838917519115910428951343312554226257690990202841886966597727502673230343808740281051226514610006632263658397537593262161315805654189888825664251777114588735136250180762145852272335491160295972813708257566530656542851954384351887362561253337946947972023670356335361500202987511991037757488456906705869278640562480890704087595320739559363806250379212373369774212446690464640183215461764391445817564279960773375727312521846855790540696011217567283646923464915790290552120903304772588746071756412286858899338063076520152003139144731450936507222715749315543758645134638566445585897018558925899806146796072488163883586959685988628005553505300545980143688141043993521696526249782159608679626846862809634583988015273585929537367390012814975928688700064029174063238178628284792609815770787501550690532643142024459682997997009028166241081109072514899876628470286264008078423064763647837247818930238535815093331685007502942226112685111186568147294465180276286516271503066870688754495770039699086348194577111706498605548219599182844103289338392286892937146998481893213102343157800696056101182471958726844992551478616128213152294419937729180892726649863418135579208569206114066248374592653525963822602139457977966220016125132730812678843530596496783230297505957119595793970676974495875390047752997259262617574281871298623270789209032153013848809384661926650213113509115905278717988019530881291198807313330240421061034174901493519246682833419331717809272595254862033561425587380887211635384822375619492511412359796778394836957295575465037541718110890298883451470951428287576432161753813394614088910805293288723638151562862059206954973824639265359888273969479977910662931153453874018730749426111793546859092340823906334069087593761622745046916891237779940706165151920574746156273505694416050227417628109799113572715622244043142090474618727866775340423020613625374514080684573038198650990310875751590839240108303114422999593156559927743314985389782084554207926944425959545332131476899761283744324731586329016223727020505910315899819413161535425145401687683112829882032800026570378438570516712609347215539432506968956135605101922180291953867665533670658288243458044334183123145354598698505428728888102187808615752355907256814406985172715855347280498131565339389590516128107144541437390171619048735501767073886059670455965084015601116777565213686319399553662533399164355593887601154815075552810625217156228744850345849488154887587580125395932973591816460540302148140665550685670800793580671635355277897045556943348312801287474681275114832166226052834669269954550552482732495509954156198622405764617011509938752771861589264487915535731198001618607542663063918033850559799292781336925812780419260005930277608928704983129542622727625326834922642736594393230448013461873066504658741205976018484655415884511373485455681268234356622290048328955185103581374584376752740677854375968373152671776696994460891371076326094219968908955354223570987991591370917013790653173918008814174716834387884061527666012441944355304445794372584896454442316255338552986271294695790216536178238411772353647085910132969008987176640958821071429522625107504043343975161247677041815722040980618471405038010796068740284995567004652060341538126524619240124295305863194608239209482940974490186150690368259231997786342501818212345617595374273395151303473549827074795573232344900780411930151753533814795777059374534429740485127663216372291522865891418249485356583573711766984807664104552909509918602732523525465183223980272725114101974431861634906509001418641274898094568425859699385610989931669475263793709644447299504438923895525520087017295080158740576476999573923143731844400015584632510507075847211906431839124151606129494157735954549729848819742664739812359574087272677537422777747302758173652787835901798046860226489218828136974825629882137577983065835599013834019312807100878675470372218541015453852607671571480709422715590738725118309566577316833798273027118056960430874213766318854041461383859159296655845709394176217605543369032682220898620153600332101907873546746426704004400796052641985158185452165531734282204444805314218275106457757787401600637462655299025458466500251324985690909985018748369550709218059830288074868714606020518459051626161310679990077922896579006821443027741874457797437545936995082580020035567259833577306244129718240824430324804508328221568047988036505723589843422904349130611250905491499552880218977046057992659806435605261177481126658025193690760535643336912699917162690510954980914364639033252493985642836012712980607582084809405716078593875688340633622534389340200189889364305393614633802523487431948404714793256510392982761803004479022922967573823265771780469794841298252375119625276330204722641117486749489648487381157461853438979084934723085641289963309267073097848302131306786573507404943265401224145109948055499508216406244856248099849158980560741379642015484267038224701876988055313941068496025146758532838905073557573559286942148170148736775288618284227841622677524894075401437601844276967067973351742644370410900061876462545416847302628493518591128313427742325469361072535380711665187861861909387395889656989826170505275028339216907909864891673560912225958576933599685330034893276735246416879799369193639157054425390723501878436853844286303251116859810530364759474702188535513445090459622929831368822944581544865653911713320797732094607193333216141143717375709142148114987384523757617414207658686696940529009767986540973372956767846881104714729785098812795434662819958110693747890296930953026941723050132530901953551345859789189176328736164038560985867503703176639133563854485151751634208460898733621995159353621167734640370397763847500755762235113032351776472410022281468910511338912016685739166109695634065723741468068273743579312066389022771236883259736600109402456665704996555367015676475315548865029737113347951261812823952002139037616949764024634634322678278627448152117722410464114286419254772337493982765267165902836777022120301669049136699577488992216438810465247520338660970659212327850320687933300101932690460824088754767592934188504421622240306065601027163582249960920758082050228897941118807504235424800887546740487191470407536355115444652572029741557277694448863166034902451259488291130765722835226185246282500206065999202952133272777223122663642594696673069093560464306723757108131417090826987937586911291765369743950174223132779141480973272556436829640895467855696081633375005085945178216699434567550794813170561677879320183085110674751039213868676924699553397011246951221319760986497461161565810215295393426605225167769281525421596005602754161798902192297671218348552195511922745021847649758195108929807720907122850199352786364639140315754373736562413089271888523038239203642193886188942004920292917430642612142422694419356388615817974357075484261893145389244104493874695543129119457005727187779496684373123517619459987376094506613049292014491700018154993053979955559478578779850373827741851122381077195170575564627104592497639321441066475730067996438775885906895658260832601083302256139043302679714656645363768053144431703467774003755283771352355016749199506003996219090612606833872117575627124567224113746194949458526520861028968972500901386653335614289938401961861739507500730647414053496783699958834767871470474347506947063905652630157248014534452415259373726980603395801766171072812598762991674838196834638272515995516054242679456693375845687849014278757799852084000952473348366314047821188512726011994892882197537707547886177884912759557186172471946603770553085496939429222632037873883612856669895805040432003987190421424452512619095378710884591057875353310413220404121235442107220890215879834849625072288384304713316190846792427814951086200118238902186720342804848175506498174967899227727527281476553732337021958819790593886283050104643512539610655766969164015907905927135158434143507985351835731499534475392080889515485116874027500880888924621980317272122810811213295793918199306678224760741348653307337830491137007103347566353492845406684326092219060206775428815750631534825228405559585322887846706548683428437415546144733343676373155681375696203245493548637350694175425538080920913888542277368431515212995368143769551732812235024419973095541135801550824699831342856708630369816862673728670175833939523690357518881841570396865319899032848010691982441447727827592662567014704485388934940369194396246320142286126777632422515906055642575454884021457823779092042685402003195344176683273841892337212392281275149698599854686032823576525584138424548725952485339718402388111189376314144240676779517660552227160930837348650457949945333150372360213953986037967752242894279174523761660748592337486638554857818399122181652595209233186103490692037861625887670121378478636108673941476199651314470332624503967419895556040717946761755269695102265923788792824481211941486793029231442205663119595730029041168547163074080959097801477678732733960547479667033203733518459327356533289782149851779379728785655931146825823043123697660962912782227254427922428211396004635700145791820054229151016658130164730025765625116922809072476213656068709732761397049277495762826668204643179695863204454067315567470006910622228177926240196466640556726948085350496444842843760257704938140958942621584385852561046301084445583777975559980887377689890884417099710210195496578337614281754190231613667786232325209848461354283155800968301125632779323866278847375211439955624806032665185917178285137239133359500846753886464615136616089884761465795347772563371861698897554068207577391903780610793371888162221562604625243341637739584240464178291598264435059832356502251989513901925480597686423094827323352991433299351367351015708708156242833254129046555459271546432146308667353547030538904520358697610178698695481499688704723205400844285360387687218911640303696513415456373579082504720529995481813987233373904485300855627390301383850841569958754647335788855008481610408264733186799409180854335699443089951983768132131987175308905077112016597715404303095971810889447902643699441221996400207871659597154588062739624368502801104200955538909993392481589223339096224739218277598707631720189345282735379011665664682144170875501602291010316591629637929916306327437869123830180161938724759407615227525546015702062724643017763375696200758001828292591377162861621306459617357694433445428605747804279474338771582258409360577506415365304247478539940623305755890692797350511171929309071296373018584661461053491377923453424277956354995194901460660906550728105990253578475327722873134208809587589467135487202033631256046219986125215827541098237794208755642178000810917910633200992509158403086737231378224006381306893047127496749905068773803812106390649999700799231806016668839931879942277929630211893653291753871679857778051126018033255949589798361614129116796386768479116763929111886840210151986243720728211570594629882799456766170218534745047901179218456409505992150630603774175029933788514861598290809176262997734984477810223968775632927779208876042519439425139859631160793942059805721782060872181976843439461290435890151638729388407385706051889401390381827283215920745197046468029174586697858266537334762435574675881914072629141064498680276838865049894161059162130535005725376511849225139370059769556755680917953581818017575568001989830455957008717101650998622930252665090677334910144716628893462089845703629118281385348653485896301420502028900120504581089999168985723180798224417734706295240132505675212017810443514209810179295252006882810274626264680975834585871367662098543598509103737055358626885083325041730866963492678242410231988782121083665990593797919720497655188821587991122213429732566486548321062897522602419968088031218094232785272200469056951775344794229271201016468428442795499377345797105821003835277837573094977036756347317108665496559076143068422641911493034474542716851498130498573118200461337529095664125557259156031451988370453415041129120804562431774140558692571266000282421725271254869963935885180566783963106457478783381647408526836406129607949914619175919598817836554033331669210951788315129501804795085432867903671459844530373613642666031460236386060984066450346020821699509682880652663371231514184412350863215206342115958298884370344694374508450790988558324399406911929025386411860240635466374877372365985313204531081425431976601390826331527047387837207411294485388350477806024859879836423095348680350986621889837712730741631797230813662237157387161767450377333261884172310406713905757793162125792162820210747620387441113231928927363638423798210051972438686170966452515241331186004645581330584895800517564993241205749377284087930665097635535656185293120615207351514388264816957126295958083517224640007483649054635251586270519051651398407893831468540450586024488208472401635400920028000261183379209843509521298536718857057745992160087702910176033915013675531689644878244657042877004896101790739812044278926008760159888211417569458224136847463653373796013885111000846016416419997805284989632737760684457229148602778515040663324380121878630880002301763051916530468862248823265346257251789430610640181690224963400439661706814927463664779335241634363756923028402684112763726625338775808239815848534487018097258042356944593354495110976609058749031497598853089880043329563194113305397534090671113675487517202892629088059483042603872589540626875572103569234086063406159460401818868371190780629057349870592372247730235983276565930294911531391625008610232795299652220838965459551151021538177468790749939926555871808296305547870206650979089048441764766803519796082787216110099714391172764613355598827276544519609196954890937021767749423246162200816563390971837344876634006969242159922292165009871931034969237093029431782832285939395798415792016906091856370334004617413447423986041364293720335145416971552846467357996093681086844891746464752831156131542283419101325631178661865625680687426911811150596624577231081629230808827951045520716653059199597171212731084273005721933826637023781849802635052335563664626169339198518704888396013452646441381539323580223837115033460476902850180365668926985986584423426971840567817984037338741127332365339762245262593411839596721749357062554310970938593955902072363136049971051716268216067917685086683900174741074126329095315996355135189165407260675790785362722211466956875779726820501960777496917803776095726762589432023817493979163684725792475320710037068904013194410454988159851805216103667422188741006185368940357396562063775542720785919079094875933323632531160011185350075511642160001431951634501394981876269775428392347797484462918923034621509147864150273467772860377752730149646682187117135676366918065385335373586619210484418981277835416228875079051976502734723592348505038469407442252392308163371453918045208974275359921260684611289986673312375828093176994626849270911262783415695870210713947856529425322671817541728055319946255549449460822529038923864317389862574741136912304383458431934339286925698662443327715819331606301068475923849597263089327460504710791487566427030743133729894535762018469471492899655128063701044972296121107882040034171456219117799206096385873172823156141082351278793417276593636989029256154304842095743815760892055286916661572607113136328932594403196597305347118124914965165444882789400840440455567413393673393355561723100102779172759585262636077597849651302457037679545029889848776788359654471772137512880171162906452335554095418715177426179724073162694220189531810559992098602485691475286551044909835106969762791583708986408411301167830233943868943285453007190911583153216664371549560916833144840414601987945159954261362209054811960927274944384434162267883862177511555748001327835995985344616119103870430892508317974586388035634556782639999877447948344248819132671824468045315792739224694273879112401585885258557686697204100444197123401820676666345489370765094856620266417053205988197945993256739239416560729920126249566596986649993957654713925966215433576157581050438543490697988355490671047439153058402167119873358991791174249610798246483517034176150537237122267334593378141217439287216563163221224905095647847697637604667232606114742879121522978817119374796955181474882447326667088820750497343910968563570855344500364590738764803462367868425373188077876882396385493981106865603196755453714525655935681896797332218499029603915940541140164972010055398840837723207827056483639546407283962816484315206921455871528300351827153993952066573261910746280520857634791109048103001367610232762863182134427149598011163858197612063932709269385903903615833851298774927190779302008249306947499359325357076927938781180100157723819865325218183358286814405655629938411272102739841403243247333424061223675134994033407677580915928727373641479284594930156716199524545335699252076265177686207022678881559147540335771757347798121286092135108463273173962636659849151777161588839014185125212965968914946728217004305709258459578292082405993184604684237052710609330340187853723947469679594065389059772322935658139294969652264610130464007781705153270385559825763278769961894432076604621541832587766701443378777139164487487305027983931780783204057676152447010122018862477586145640961165516165865962945465511254370139292413782470170114675180497766177665495603231816101781524768203107966646065239303064404488377089205173642263986060764566104565784491662731844293733818017859976334399746674090632789009461280731617530522495872750996486156239810969538804982636922437212133567398558048188178729660272634580884769952339165010438527812073757824928345456766490428805306894450313349073534937603173492192928467738000110550495952197808623822002917457466857263271360598454821613637953199060168395405304333941790477132627579034347596712793265206896552604421826055087242431187198516004917673166815646892178808540515442102306619439447729948235304556883077269243365251450582310556133370855397774906503671594437319841650704306316790358772672123063994118672113705380903262807568095418393960790416395575554431883812960689319945392203273167706704573164196143055865798661988576680933045794208161415415662062653397755030946952540727831723467151033783577380903185978871051576891910778888725210182467369926792066457833562803964201652469824722891408704111499246017921603126141317520989316340917302960852744879898885804979413925232845387721150460314336963282580412548557527677664429135226953850705413845245392803693316867457980913555679000021151005991070392087896272301946598902753488254078748267021369176387222437557676310996225132484865806725396802558632290622344562713050256467837553884695456927187876855612426139294858441543720372023047193587246371618241817803258614904370692580742052454330406499747905505458355312506413854548832995516049266689729438366408325016875509940718574944039506736674303112151968499710886299511802661215052774089007221311164692436036502409607515985026821023678243200443874157844628949926700465371021312967398933984256915165408013366668168582795489313797763939959809038167678791155374040903577184572212741658084270172098754944520477304332148176401770088529732993718172572192630245216553215743357973952426049276105661966992512221767560756269647774499191766077062271059742892067217282752516790914333745403186781005305640696436566722060227249228952023666521967393624504780724723192141507757526533874985685365541604376776153696009041108249807192337311913449575610516580766927759081680017201108899840010331227353760570318761392447139387156638215946486332897943663205458748014058263302960466275084591708973861632432455307495027318098255884669439433536202815044323208453712493365371981873452120641942625159173622152015825487975681380450475400830136704492922767570991472865241231289564772368064848908099289573280650188106921224670861969095317484703415249315905752809061311792768063817468504598628575235976669224808224545892407629690990617507516226170930488406394480168169491363110123843024328723945802358110871868098836069691172177600831192161852702355482846200109186433361961256484231049522261769141960258924936350988045015106301187694764080271621657522031941782417178546121666099858052050105535908620765986918322498474159390513511979299044077385727269254887296370366209323071552966258160625505696396071251579817623703894095996469720799745815405163589512894482901439664081394763265998205812481701766137030548420665098804354270924963474895470926018193572642678143125095053161523718816880557240438104801885717425151658553584400258616284973531943501425867336094719662520784927220367525025717923399902203865570511656579060383813464960436649089088476781009939045994901396195262690792620057263324552941794161238031988231639315138426008224013211948522958632046713222961520387212899601364310628686881872334286165631498285332523199734119699224687022285045219795815935547353841682617644530090242833714154797583455649566667168401653729745828990243183915964958788688995632167763769897047555256335602611903227316255408144940279375846790307201679660197456734291702738495173508978044902045717704048389802676541650018594672601889447145270586442760734423050977382789354131751807915321977436698835778654022039007297217646833761924118210215852792680342991603741002237546027743459768055248787026965672800806188752748834580456267447837238362449113830352548402111479500149268997028836757458197855648702692894468336525265432217519995430908119496865829061730744999534137079924289204688880329501589597212242940319084139741173163247642784063800163160723299000388791919285782116191117365127179578740485577611693316354167869672278263497118458773014996249051320385112956233088732536094453887050387936126332901352662409429806276603112533349225768110442364197033184613432427095526645860207308650015367967205346310899422363502451567397813949280601536955653406896942237948714804125917344252311478238415492447497630310613237787671870270282932167932063667145069537562674415773529994836557233505090621591612049222674225485444830873851387736576878221723572018868969151023568363161097476165160333137530013395095528799169747810025118257694915120810580023601041012409437865578359938927911360976105511238972307303868060806117144592686848724329905612390207569947830401012206874148073666734509258938864187054086078662029491044828850725323781396858431775307851229663265417347068836152053100151719041479307591135530339833487356240310262324051248896616244738406815185930718666864741065180060158111854196336961005543006150201355432882929082591284380159304750609852354935824479193895410260045507715451151686417963732298126159397257139609727800411570087338616893326109155283465656084815244752843615577012668135877228644804078981617151581279389728550920304029493320920108262530235457052705333113215994579760256085359830412096497240262177932276790095082181520272196714331860004006592091509855194305601757916147793810811718096893037507172298768039752358298902011073299715559260342819441461978942206797102346955983394719258243767523973137678117291821587848487750927948149859699912270045691614759621067157462304977078316139128267682970042296946238458882343557156218894691340503700127305409520472701769363189209309250250497161336818595656703282078496597646711400263686868887801788809605653340187737086435307889326505044683150304615773465902713046922764821221867819903603905326683243916462624542030405460199547728203471345422390918127786676545141670262322450498782213205745813564720726071384978539959351807312460603591415737885309908069593120058575610401709431989549018641887950866721704194377530868977740327774180105310904870235452846731826454643782842743481847159461844526013104598389040468049466368864547439306319615327818770763451040738793664286536762545066074417743147017762564875493187103232483536586157884817754061892306449460982852969325073616547978197812442889088206828921945319936057839391882328443676754540265608768904230158118949780990079098386323911425232675289587275304876252270750083537466948779476852121271794135201572276706564419583031878946092251366911339955768502376783061076718198079249845672037677680929553223914944895739438644435857186543933893537506254596998599589249124501740844433894177522340569769484366153853066810540197287067666691053414495025299193306535284582242709248630525055422268008767978374198023086517994016377823944131852299543686651914721615219177017060512263023339497646035004230060133073312058984683536974974194236402638584550590533210114418702588055185521434985399987561800673454500090278105890340430957803071970598262557914701274774499090477241511045898138955793125123387247213394124901961276120466360179884521810414296740292429576115767689605193686724579205409490734773718890300298660493313295897595784159788584551961824238644168985349815120039493718785493412723258606204161686981784567269782093147442835304614370234944700838655346945153085882248785410952404778632493499685821252045830315911985927008218289722934096504542908088346554295653035052455257678806972788192662639695082127349512540797360877588567315659158829522103905830060281989495201680613203524633280913629791060822178621051801114295199904179514044365836681024401333344740554650054563900604126809395715160248522698603955872173653832958799858850871698819575397422344297675068781899513027279088700594899763490101255809656797600367596813392363175830418099138479964569974763681960981671518678009310758247378901280509475309827721222907414363696508851810482425268156272965953934883209369433629699073083189496590640569502105712275570683560315979325433417055791143873574862124462324808567991260725198471266919366996936233241777063644010680991678435267627933838343777546279682607265231497343342577179826350145467766254920948400813355062545599867364066297162513430640356423192975808231123341737602280111856153012005784694985176225302192364177232641357117773130114435735916059038694772523846902405070117187051863757800598494896420088973118803995978898976694616089607082296321541672325788888151152407950371850123096974837988693175379811226494022124063583486604948756655413180383438474947727562051229061552371685204181400184277181739890448490548355498132207020132841056414384096650466494741812278106488189092575465348359340416609889411448814388447487638324930689792156358212481318517838563765877371576369602722216039653899423615469503950889367294425800279988427559959785768730096123957431158839896954043850421248143410590155490759927574666658785132306938884024416491508233027522609597870138597529167794174781077813192408513836701111136746520527572551208833068137721633886766832143544414909875049239156735144555131848931773192351455404721105482315593980599746613723127247818187908828602018131698189634434584537216874319578157790073523254351004084851864262336726669857579334238164865464638971983262512625493933427490570073830956168007667196653771119884322927222679667491387213631773977642286910876744146584149091948471799461229501436224231221321373756690638656351920552614899854315309612049933128918380672134376331846798732014263401132673910770233417511646744647158513742542007359755399433114491564286795918768196949019207051104407995934085906741417632624298089417121375490349224772145969878164499712681989582025877016709640287777736497122575610744579726192267237393299363224545481098479501254608124027976410920450913600980626893758001764252329354133347741594450250574454235475116833563874540182563686471294429541516825834796084557457043438045503876609295564312858946549924215481456271083392798732935334471420003859953486885340445676378006824886890543497499707562380385049913612363305355438140997519516569125835756815205512349847211932911102465255111620836635154012248184353849559463378244864267775198395466791081413555155425133807799015136768844094293512984673631975194958335709252814600382725339542017066490072263372668825011134483496177891858076109450516739826713764213351242746556189721929577553892224616024746230236836838402643666555593074441045394926398414424507077425570914381574895286426866001157863890531082444843397315927087044264414290858433972472039414060197384240139092590117672506745101220983523309791461003900238081200044989576416550053632779366135403743585383050885876061033239177287174697766422928085859021992722825904500110057843334184702944548917335642502060355572333726346012372461756350704790884344283729836639930917064079906611411281249829657018265254034185128632394615179790949014769921003087305534965460778889539727030766512144858444683323448477826253708889240709004500518443843981117695885971096910201107447980399598997093073417444727731612626865379731027365183792847670669026471704350349055386068125982700275336076827237133495573119377228139145040875632799988971948954031620649119257061510439263143981768185551282237651953266393560919633745410417026133902054057153683146378436220096140231778739227518966170426845592657511276721699731042637340738849885707696382956018089559532287224264460925463437974335637646460684639148687901699733136914092802039385461162642527155512335135338170815515094973801041054782380525302399878033383011929444683448657655151472731008109518237411634419111529578158624338243107083097061046206934392304755490602440910785087397820272203162909196419160950326228635896624421703428533847834834610594611991088555435974809770714214028599828089830283704610474065167818909104949830040425645686894072142180338962750435471202008354480522562891696213775659937257680633407361691661974918186051116900462642765338984222201756917850672292490879300737855664982927379026972538005400243976556286698155175829911395915906670551620088805258190281742600779723276373309406238419752124344912545787643443201239644198679293522216089733557670286606422560925262501261387502362322599493070691571953139472017133638275532414410083781131137679608661879477960722175852545897656342854454315995519472521490483058217479882761094111672737331225659783861825996323236446834916864770250820283068840045526705654909426141861140504133338209342598181652248545979117401128998019053333447786376917854630766966101852201459094004680311013096606928359774731475340719894995459447795809989826093451852215013917421621793306568418973324965141989723230514924918591279695441371768658631026094518420678843585158328697696229070353693524323861363761204977565717467767379765384209916867999221485806095087350672712298097583036936879571649504041179972372031025114334458737762077729721232781000792085421777947043295676735956062023894692339729547782768248526917670645152853609845764298408252280211595035706977628982481746537188434713721768241580467466354199157399656204754316620755451594673316569530275838284064170286536618109878884818573256296757457209334663720558538785940483599256959015330882666412469202011436376465169483533827328359393068652814934711419151160931872247240981331314697678670086969054475487226415856511905134482049271734006689510105734579982834023314397205496724122607253916052947969540918572428812438440225201985601033866125927839267832527135239530826226007936558938053369506173246707426001815385222475707628789765895652645640415323960916853080280662839320063928155378927790380147622177376535699265077590808716344451138656878185131235638368669635093146878250263235878019935561812962693509387382014924532717039261547641085672955265527518668456702407742413903590325417411968016806767112419495930422585372075844532872559589410196290333219685913796656167794346443920853686369485749509859593414820404380845404983604752266774236225138656626838349421200236733665598326279983357248474993352210970147440811602463517426037482549757460472349676874942750505650295331073431404878848687785814212431348654237364283332929987049153316977227843979838756177244918409464441667819444886288447035428772787389654424301940544759247443458791593677458603948535632171822004844427679599926427702802862033520952560308699147360979232153531458011847260960498258240961678076387733013423759218224844459236098026811085102219210387551626371893732768821487734301329149720966550734021235526795556316747325166537537784515890903635642707896212816871740464476719235300365079294803680266729348987314267977941592202603963961804933016915983453995193158695996954291566005035218922881172935419425295608078986100816961927646288779189296215870220701535417323721905680052654584080721395777699915216700626683791466833469441112559046041330780973641769007662748585094556066945095930811798441983265355137594251063140882653856087632120290968531035817878376407743992765982795989710769198106844029559880600451083053345025424369929386917284196532775949347717395067485489024924944841156426310990061108237179649675975430512706381470434327769548034658012538465138574684486378742838364264827655713350502474377279402319427357752842566081045607645380091080933424655217113150965799626709110653154653329665475389751148841948947102178930580186082828664543289592296753216782813679352401534121538495332453067132174897086794275395422354223168206971252147940550122158751221829424582956253738571398335405217743906900620840498200970981747796476476289702199285157056885960089549955260518790148400594703691646090003429358216777185073090813610685906404881233979700123500311118407799887403509164620180651728361540681088011038990228602977631943435573603046621700686026514385311365903882546638557255397808547513325899903402791685917531310151098505341555591383258140892075800753326338680016534199761335306449415269957235094259703602617431822447137760816984173915422549915486879374761305079879364227033865975351048257794398418208802130927416979084803781539965949124335775908879839034906713298265693973937910672194354466632800164002616764092236366539456081434731705777024241005392572282449398519452997936926814829576601233549241680945676478446744077560960150263879600286250025503380930726634525886166702561456124647316073567925156799314851980469596388434247624749419216094913566409391781691224679485576426013872804758944939713918280641958592089751476711986284669643011976441144782950325038301430084930807485201160712666190471894364278822392199360204842851415088959703952243928213578326280707774813830162047763280607967197341927887739745187457309921720049430306904630196891397406506229264101172822324315754249404849717014064975035968528664195081256866311543197514341299933535685520215949300552793021521265987415354501201213430305186802979706537503743328737978232805011312463643095759908940194740482425941560338538427091480767292674026198457797081417752717833929545453647555029724742766895006287403491627676188320499287369369424313589171568840464052211053246371587242402600550446404744390061553122666925392511164060024587888119804401858270871958163860962430349231848178177918918968996017095733387684336261620327183556528521548861209762842963405466851220205798210585361103259837900956021574575991794818316602876440040545601855294277585791083823844321419555852374911192512257243220879856258492333152689801392224672737424122846784848696451511966668470061827552897889913223776201632002960631565857239418977642750480369215504885970872247121555381744207576699146477834536864701724555916728161631418161934521642779729008483420147831275793669104760540014465431410987458775203666995441644756913101167050354522563662794857249400518368867570272665864742670428187677537994771314035956574075653232576051043415210360516665955172323247235632846124749670322498472539201257450064892167121405377474608948903360417802260907963987356015482422692318043008116318240064514965862358169213225430927389913749744362192799556838250389381047873903368616857863497994062753359957952300103098945266375786151073956103402267820062121476216126091329983651696435480568284509627987892207255683883849399430649307318763156261877766414357849392872849735283275196534380162744492536231197801347793547627849671392800433865537275799732673348994268366720163532010333989641541368557591487433902735410204357739356070836647164126616118528676687723977712525495631883672891495485619687411028584087406846365083309828992903502762736030752507430196727432240096203679953297726095067938004316439429656037166442366929690766895209483250042652566820083602966651809391017879448777810867430983286846448975225233526504407275401048689801628890292087844231859952821543288502526155089250716812790154097410254560558814356440183132203574840944947122308966045058405455432037667151054986272144372974562841084147851530833371076470346613511625462329085423181339583749765195494730797736895767640733891283189523173886817810553590710959666619033768179794002660169072874300036424574139245603616142381844139301356561393471476886276180357457615027627082559191981187000891579574392537766437661095170469772922472972048748803240936390304445622145324725019859458431822010343872929440684079650470485605987755023868521697680328553143713444854770967937664436599962279699555379934737381367942963088309245940788095411813269211696724062094406857573701152171328148319059717433423394391997752297261696241791456818159701521164986906506775069182122435568281840216207524215232922064848215136704470361901872458030819576318340439111811493906976932389290391302835167084422313290620334515736061599309414718325585083305132975747087831774982589372101547887341662978558977536246034120114493022432056772788831800753210763958737216205249528838276439254092740280555578129578720991500605510465813975595556163274403185294390817677946441571588397349878057512180235198349453868921135780573341379694272308205100299167132294265017120623122175074257267332695170043186922180008642724483448738904648847485111169326097134672387317524753217920142553441709236430544132382553890968144956910883161143132565512774300910911106604532750502436315953820875843116580210727761579412143639861855739057425340170591802635351351822235935603456040712134996794170350942869395632054779109261609415207809442202567478829682518321577626190775712699967819781811298028325993307473009757650205116106278819627580153924649698505216546629238006220990304841665915921022999399536425613044938446858556036218585779433575350100785605169052656765173335473417810942831132778191663654306866732830641929524562252589010265623798237138710337648618531380805935407130264397070868392096456743442737303221009578692868828885129951518566464961669012732370565143973517749690272937099488555004541099284346354188184893468751205978127750227763859148214428041888242395090433395045600812412978553857594779666766607555295193204558109374847981645056829482473599342650882088218811047908336670912246071839049614832547089791504940235694279751235371790894114371298652684981439365486485154838087952144760801654258430070034566124445953803157749221040643077604399867033457571449875403342830677793885163522433426091349390989468210564852196738551368410291974244087636995213236785545381195026832058975920109370674531282307563119155608437866728904137037536531763773724031593140007452811330922786966414908227628480272951018029296749224567320399876610039139570832937191125468472065518359379057430175499116269615041569491838340734069121567444826501150804881528486907555389948632119250859003215269239021270658932927890636402831440926691461190571126484054626521827511833226532899327770543663215310330062834260178307609382443916294991822875038148027445818084312319865889156545404293856839861851445110427441398957978615570869442843098626235983142677702008284105045128149645320580622961601623014594320558997343742748357096588012169609308521706166054695427281476377989944755600675773202827779708887584173986189443058588948825014891328953410283243623531194414376865794634940694706898119243810960488062883302252943117681167882160168029401120513473780686532127974624877661523203010796184688438768182411727083840176162875547626862489653550737930425446546175673220635606628881428027781715268938294105304544441213447656126080697526931502657536742865674207340633316351327753747515156495055934027078595046814303133917734987813362826864287177102232117966790976713892915680251482056925227981812245718698855149661560271743423239058093156283850084437295478101250171065344057056929880642473771001947198710301589877095921687102003018962584567370747874290396207018732830521233642154522404975344427241115249591878064443163591769164782994047424056497998202350137521440940898304836733419986055912245021079183204899770971486926747653516967263789747271147705954198627992023422536067964375115135735201142454924982563021033997185557487908099268835483171859312958601487082127056516546988656610262457037656086319320052488157822467313994346976177334159970116902263435830140202558988537838277593833858275288227082724499930140026632694917274674598132313666486242457174672624868820682052614661436326875878226057482538058035104388192601345169329294513824807897604132738722226909927236314187120834466599750803016178512315362522407771560928262706243986729300667568963416560268613707030810166978521158692191965131027461452228788191137512514820356111228373545524035540993689968382382434897024090823130919449857144281689645428520011573890343755667301194535380410434552222386974773002898312743712171324295396702886682599656248018236834241987674663397767706023231659782813856213166975199734057179692108572034119319873234476438548658215915954017445629067482985589619712440229976021994967024671302636668013159251325646841628579012674595408784340668434571217875513428035137102571556141735974256628513122718699615609700794565824648997431213856437624594416678707291339140537950009686380494365430201501172827974072736134636045452835595456864492995718928639456335308284164934412253241651972576092573776346802121859360941715534015753776017878107380636757845178505719290193431612203987531364764785842449912079158306458487817917735432460517798682965034578782578204078711256116163058388756609240635907445051434861484384007594671561275956951449032427419683200341850983194637076701285666097435514622485945609460303390482604859958903057965816036361386193736991848051380373823761886389498385035658258786518877970721595724302838998346698213115858828702706567190932565529125774999278573189074148526361319000981168523268759104510322548693908552634476782308044668124592629233305768522359474482645014913146032287716855185964621335307418177146547824440381297797557128490955822151288532113242524476058665098327334789309310368812110038753757084793722128991134765160093875082184886475023715455273192999709289484361220919323327469580693722380127959369514781510028355739445762837950868247974933564205775588508236559507660332664457643994754249324547638194384353189250811126441537484176692340284928249010298215161719426267450337054408735962775828794190144210409261753524123695100099762485668436259254103924440016653380860910352994742228995503331656837140243557902600811945677453671228865005190259716776703835551582902355378045219302415877831706795773345037771066720280498137668165169591371957797678811716275661461988949406763272306586987798574114631148180266763552288410553041696671076520556391374444600188700675828307409419771363475734016605111718736617443866928279416273540684796522690765035196617898239749545867690744432721006174520329886767316406235881476707903205186948735658334969679286286614033177998220334527311309343696009999831660594692743990894355725740981734849696428037581128065959840550193700588356261028058112627564011313894979844735224475804002650330192646774313975165239049954303303613400165376289813367522124621488340196118318182965992322285313018370954539746840394575670471051758489573957322735687835280714999743593800957129470615642353727922887728072939234162334678307259027394570676492331070145112777369080613305326746718016964544975146459350141847867313426125958685528930045207538308062622182472665394162246456745742722337860044106171064022888013891033371341168530429984822890883138268044784413605854970803841241716046083342371334193691377763964339177335027222039759237290647157381137378471472310676320220365909068117886650026857073109749800747276705843077320819453022603817503956403938315405094401193833690704677380117432920588237786465382715713823372235142428177379287074153464373970749554668654203542206427868841072072064018364365947448728037521964515346753066919404490668047628133564890534139619694865718855438097013709952209790733724207461179718778398051583175172282806380079596584785528811282224352907793029948473605081977854603714144086492628508526096190192283415643687902191120549392535757589587013833446533170709693064018181467917346196701683416466106268533558599865552365000299790144810258505290159420913442172726955652521304360308427113330087414966686916839678202555126312325837388424506695303787538297135831824151195457935182660005709091594620132384301873565732889636552942923631464924544778379586593659757637435063026263856860929401385156773428892944202789590506849142943035119501258296420830451721088557837246219375931043931593645334389517839933530246611776755606202704635082225781826431916727431979658429323869838707732505485955513639412876507309500211019596721002560494713331416886071695417811298024934332360413277252463818306119778686137761272766725604044868562057708243634279357508697510896145091980681246960235838247868385810682377792941266004740623495138708934278433568028120443192288238472771771565600303479146487637835194336100444799285080047040529574809747691700212196769738167942705284646570757790518137055803951736880194672177158606239652965318876181869457689471840795356393973043489665314462759024532221777738326722738842642369531164431551762666130724882001465890510428493141760974901840246428986931390411214660434352402852739242842422108161018931099746402446494925671073790280271336669696811713423201366109022127996286545383905480316026315455522606123206361281764378609261994986058405867088402422815990187829323410576448475371782540819320517090351225973603219287519366708950102232068363495210970020930672565432282029632945526047830670134364572447096478407226901148150298282267738775549371665101155189473427596641337020765362827075983101221093915190696936698457570533205601939610525496536217605182053652290552534860729994538971612287417168843233334500563543647255949529298579828178311702651166332171859312674419978920825342134869497026632579772716207124417674943875342936159108815793891924191978583627084907738241578996697444042386613371997260270414063946843580758298047104004837412083449760894452759317031018533234609844218354587870350883557617016435060594777877881840298473068225265785732849358627311483643383116450083986971334540746262394619948346680774047207441501282838571764073132150123337690618116875752757830230609284423256087249742634781471316534462100176490141775127785026516204133349359056880143810984659188892971934237573602339146289164282894310191063613960377786865594328385045978424176248435710262857504370089959457952625679313179884903241417099940313062077834202839095452820718948566769672762498736866136261489733540567434465044743353355615573876384051703267452267814179029474350627489583989564711440134009824385490536894333918806587736734194507461108583375066631622650338708168270079296706674427562308153027317984552808684472208130328853232904531581650982597438764915570731194583212610515426656155890942177552386396330771138613160560752849207453537983745528841874485933774904233487162699268805920844818403193914398714231240833616256829748912882891739234261274165320795046325665951431161617275087027500716724947432236058590389211956209199311870482057824073437569241429049893752873470078466953176685854522167306473530111797983735233816790264458172173006528204458816098187418136099156620407199441269783082159048036945956411042890688862081937739223930774091919286427649588887625836022617297837530441713916048446013568020556260652530373967821172483650887980118222040398324255130091190348391450466009416736266343988288435607902270305538596485650750561678016256541067772915776865385111639117954256158103641668511593325544517605977089559888327293263937690286906218464586770088015170354534533312910411245870409041344251703719942828065721016370582515467249081358618093231238926725730678947389873654079018590540289755498645571849135490747960461911492855653873861632370158136991010445861393291851305281571207351762988283159411484581384063678089222245856976437763182754344917886951384846854520432463203413099126551468743666417959885352702664812289413001464142705157758419699560741031725791120818787125474616512332222686433282850558639333622220300651596731265979141975845507661152629738511669209861555941975142811543241883098133220081397236687516549140320422743489393989337454757848725506177934375319131284504089672407972830628917498783917858256838593652473827503819864107880140214243821387259165214009876905302400278412471378211870251520232983153416821424560019469926732262586996844232678074232426709635997059182362619025630398397731147219447536046374472977810923702181756657206243364931542330343188372372161323215001476672306796548513723117027372466477047821883047959157218624760771018733320252840966018837833295612582841092336732730920676090729564354737376468161382789689858357911744341098673387302606774944194704531713426191044736711607447101141960577127318858442724971254013539758566007221236208178607676015930149423988433721721492051720259686821830289197131401764817515834834484820242633849710927379992287978966244149072717340839026117544904973514684405786804877929590247472819106746506760202687432763412335432509603670035150708685818161890777375569388143331076247170613271981668561763987520348132961808064451835903907835868104569890226711858785061697431673557957498664001506680874734605565176310686063456793054171875352583902964402164268636637171421983076693461432206321999588812658650646566207930867307616135022719604229038960963688720445477008545369119361073184802227162022760088168711753410200783544517984730001600938857693321445487889982400422177078564263133515809487936681368005017648018016002311845780063400165136997085854447954499248223753006516017242353191604478625452657763727502811950749388540341005753921621453330354636299874768453873224994879191138558945742058024709416856155789382036171170381050130121622567139940426760274258516035715446616875585419061193635044419095167084773794211449848054212802726362373670530316363333296695124145124697402313330837094349318022798788607931383936564441389484875195934192288155394914888640956647693429583873866547384798540185716643581136484015446709079942526648641512133450653467650029714775603491679388328820357408846219958800454667410408778692340026253148380195122646403172137513991955304941008183706035096212109686920158798603463368861614238382022885418215940447850770436846761665444261908831497109257832558248107461634223900052688511751454897321907344111857472397380304246917675089245123636942809560862686005757882866961823064670742815645302281874806536424599959410543712264654816285536636773884504824813728523076898382004445411179649837208371535865307277469749542551897384610353849065952425831004598407498005306768313987529555505094995362623416879300392290548174372800393797705036133434772957365803392201587960256966560462670000829837753529306231999700108376009360234475136111389475770787514539397966688303390199323065925529931541625862014649951461964423969625198257535613774219075183177866965726969858105139477726755298413684079224281399727686722141932907091841665645394133087660881656357649154707281328787256254805010585790889625478377537495294613648854011192033851140996800585185429032083717164234514003096721447550616582162111870998613575631712735335442342974986746086521442865988316622538445212838857906436206070292538753732552533392625878543494474708633021310845638750420449612490139671911547961060911695933787333223292584956668049554359014367847576889379145249208261780420837050570172136550649849401663665014026392738666726853363683796937041724879769857986289190405729687875338192129502250705865515739678730497509428191026936493712856156725723294217041168192549802965818838440948807604268883950563767102072631913385878728633846365601829096717315186766742284958647549543137502424369118841733672999474829656906188111706372741955713701481528056523594942621579386237397531076019427347964722129030040703147388745514466193720201045011366704000068148371033114254904327488250027099137481754372049014324826543611538942948315748584287906320889006875908432708224446384815107851819352233355106358244630815911272083045936434919556775457425016056970243617151463258955563715809532963772870137193399623813264759810125820119108616816626662671602795460910249944930263472557341128970028232002115591565701541760441217829649424364691212470200251376833934977057799944344910516309378120889065820139327323244342606774478599857503113282103044187753164290948524580242569790542231278398927611097983302257771708425657898546589256877907860524725064389787212804952679136226548509282080753971534703495051416956283499552067941994229598881041900474235709697823760148798449018224660059189765814293810606775530619128946901594646342176417700004835801792124547753112661728700947063317881300563715607195100498619281841424593421278536082232108417110140319929057936357461276653568105899424204145277132408371586183840091327487773509701607720192899759594312495126540944770350888236828839865193578567076722323542445187483089867303354253788410522291496464851671008000529974784361043407482487190588146304467410851640122431603707190799862212653366518322072134768625547899457150264448994787625211189686396996741230849222180750885147229063626000600146679517572266069490235831952793986044658477056626792283763056794952650524691713955912570336000286588224770676719857482062636642498499822790192913891764685278963990998666266264887415744037558181034005998652098529137820871322176375673199447611872459553381918435422614488271771480148197345447056566421621146053560087087553287008540890001713801835675644352621387891852596879094754493716359095925413830333884372373858354723043562088521525016757582125425369602873841012955347923771684027721328321068248891131331377446095650980641474028981069928724584373404143181369975494092322609546396973753016358401167209582030837104502955658628528251086807457917671828767438492168018150744569000372984934440465996957843559194282484386263902934005219453443366395004566620751045104739566924121415849158239256236074256450678853685312656103562983245804998134476073249388350128338800143312967353851816532393819207798998685149435230150063071224880949898428444880035101217784699927588342187491588792708250931288619527206324935869591468243513986217120141377383578877947055939790000814030441409982746651149304230096494020540201743240414259015638878312527157075575125640333489164940635817189101158812654251441897087127169820942488765187016313211050251947494880153859673852921589707039436744192777048004102084450589510001530122225953417520460237891956548659842462570680069089484167341405744428425718785408850310700675472514995282861737635676995290891259749024485226819603119256442061306872974119869653331990905648734286634343811338859889075537628584737653380968040897617205640298539788372130225829551982645042044728041799157011497994295647451857007596440826301760701260473981333782698559931904608502979560227467186737451045736098299966659057512772381883218068610942029586223125419149797726385985376090921814383104211809711171801356630026201368728056884641691604420165785419393908150752911882802464247673206756872784293750712018188854967315423112220374093776090336781008090340242626910453220727795908885393148052360988370959197601541810582337268791360495271652011314010700820109522301638358472194129989479357259202945304140919187714795660299230259283283805253667213306332483384736282302239847415327136969977381649979980600207716715633027536823884375694907294220515151838857633082094070012182575677054463216354501346109628802786530732170700031164168580915600660031592855267951562380099569955418373197851417318660982859188800133294695256308783775515808746909444424610858526192763930497853809015124124208560047828064333395694668933797448174205858548609399507748378461691721974661825335440401357123344277884652274293187975329825633805455956661188599229861311660033184928194532911927705385745291670770035526734075460914091425242566561781672141916235760153767132160831959491640408426406104483009107623706056771004726191097952894166839938530428502409659294037900902906256076099991021918466389314399636814280471930305656968921657811287781256974788637909437730953538973759862318710733837564446497527998495447384188907561821069627336859817617601917715721507293816143264308308176528826212389333154950781083622903081717131258513468109567645751951805035386172955461218477097019307973166782743354310555602804401454124922152577455811264082348891965977539303560146710884723051165764179994161460556813967924088621048827656131493675672461033647614144873388767370305813731778359638647720600553279593639160985393191281224094528987774391429360769705421463313829830132183076527449385674733180084276726186715556827241812428454835844972839967764471134344125376869804817592717805005935845367839559505195129721387040434792076314664894325681320638622479323324875125831957326499165023549459824813390346225615180852535873954353485970529648944322019734971187573788215870830017385341305441740039701868151333553614737398164662204043193417035365003512354384878521424206449790679323629886084236669556648920349397851201371560108005490467784983443471592160459116930260555506189936109773872293493131341138554411244575851519706011130559376250377514679406575123845633189454500151239925806623058833274104758013326705710924108950836483370994418921679737189819209342773808281811312030720752723077990160941310627466387205464070320698655058368157926269777513172666369999764983679110742969615927886298488422988584131744878166559223302921350940789301923333659269250853767240402886720609218965149065799213985932479567572806703724750189768702092504338102257844736345655630903938170503097950889836696742224396840127466506837035671769697945914140005181246859727673927798949872083670606485687214606615980883936778064561841712149753424650197767192105477413374849026961131477425360051590288136765477603599056522672761013012559993226376145485320108518217275901903315181513885608693306687757542761051688755999280487669370864706743123176557701388576950312189759536533296521086057554969613397264834970627372742195061962829733092606233263442105007430815199284973851582076207361205905005365229561809264239996746635399366975335214241303575504258074305904945449879698888249945351824724973742452988502661744468583145502675228587322456116102574986816520584003283036295107824143980981934530849168558743631639671860069323023191186603342388281171670590213307532980300412666985803965388247698984217546656406797241974700702024573553457455504649724808820656789312950516969849601012208137914688884106966264065268325866577338092364113072181158045541110845958883674310650520735668219889205512560255667872278617408037687950987431266399143632954777305792014376324344133214997518033215582482136926864427203069892294085420224413181182119365498813158755353173518202750250733966616044750808633571359897550083443654842575134466536096038515376067672054714059546334943782534581362021107624883424095167326039789206884930623608054678162607539483332242529676757840708593684411387069355412762321409260084007647048926471731302138696552175131466641841927494722614479614097479471043016408581329934256669204318312646255858755698772129865490407094719131574674912058167326296873079107106669786062496514900011951591886588754968412014915142588342156168070205701922909865747471332462928484180317346166268174102289118379544973985789082336253961283591081338919010899085246086573454385918275041174354336954494836473785804620371507331403574267690947662161524743057902618148732636434497645590880582565801712031750029713187175907510466085913121169407708401554609034767789782525487666718007933339870387742694873209645820522297078453177137776841276710513435239707757845832799491533514069947886317348892171094877935841702855419862331438923750387396674100697005765144186096788985944300162895609822516464752128399592743315647105703617426951134276730614577322090182628133897342712337428577819001491396032009918706227689763956689535692181792298456269279064834060243856569350255507823708391606388191845498517214121819508712782683486877199730528526609136539369484096880907282197474233911081470633636497250269673055203455309491415477253926289745545261044791728097379034417925800718265088595215867433793523197230645887511971675004465759359095116522826308551056114301573847872234473244545456389556675590538439833840053043875413735028367131445582783581326621767412195616154216523317502228985421493390882397701514356091683697675486149758393188527991625769287743082867549569715828878454641537893092643961508845845045518901909260337628739892458483031579631579458597371547051877420368017584908141888173929625137660316361563004712261145883708711732555312316261375080147657293196478464849959173809217709157306351485391241529161122627038585922347104940064764381879693468859538981058070610987459545205737964731899052703818119576603922757092651007320220887188639014770373290677942277422604708907824266550551096050062487920991362997272754243212878199625367504370979724905899359350453807763233002596288948718504737384971217670488564341249607979536981958162288283539932373620899301841010059758033529828708476955110147071727884351939110832912482935284864374000599551730015283050133715800670947398355412848110563081407753933003824769364777817942584001594062547929540886585947160241186624188736421191101901707375922515883178618911375000161293311642057909531206758639361355888431458567667546316121322745564321221855145416713005261476535491644389063824699533963984831912916668347604075650197528087431707242086081568033933446904171738269706107723306249189059748654039048318182726673266564582889670683888530173875079339123094872898987676061482491261285223222876292775084078121265567315727782589084439784285714265337851764372081392153721988731893779471639066995619461470114900660263473648566180844633541108024485893720209800850066667545030330036605592172351260951782701361829338765830537133151627625297913774674244056880062471679445802950603197554639592241075492263295461762154733499224643581234036029320411374466014737255915808226814633159468667480807089639933025621567825337660238699081363843031941595634578417954226126756167468554095383877823065418417093457529564195964923581010480385967912256747412956413232081734010720430831927246255746816934260584144992271973417927060567219477552070699252115377034410524138917632295482820008844849914456989267665117674946510653588117747257286918698508104329051454574386207662344858596244088469461717865210635665033762114723702654084879546110436785399830886178968230650893827434032983871720850811225769314688222388117179172544022282500900242952063954866700374272977060074936023551826196042908959057759287127604889274137035339797143130923367341808283804246798290827041318070594380728315010014886580787896328489000165486741830507379750745213686103702776417731649111296436064278745498130013314761602127617735682004455470280202382001122433201383870492098004040682409922793984787430668644386722708942552212246344686741364544823589696904603877990040056619691522187245493210172392816353800971599146928001638135811003139015996589818988450906219388252911596635449254280956404685065403141454043449416236356598770818086352842764316377023005564992798124998569035544921382065086482244752138524353002180914964235203897631636624591669418733346542336228368818955475851665533280073143315251617387508134318135380150788535120499586028286770963854629541747064184233311999544085972764269871642925249389882363600874015021905178239615551941009760745486446666856425938503531350792955161612244742016059237604906485710850497677547242887910941290593875838786886538654198163314919159280672323853319678083050534609173766926267578581996008694963330002770387884211473082393470205231050839954458651797476209520276778084565945243453691522163720047733181987108111873063569963160553773573816395920195005425097530746783804329831493207295155954588936565825692281743724596864872344472815717236532327760882808585561740602536263154022127317327406565018556328926799536698153536873976394916428674268662696238351353631906294311295158578458925503710101410193504540316640550202099378202247465957826730572736642163806931118679810275299899783991920615574766473200318890834547944359239466345893394924197673160169547445308115808469567350157226638164396559101605326210928109371231260262727408292742181040169067542520651202925979498297415477679753160966890746898721873331647794925145689035647797854120209846653005970917167223688949390286785993933413312697106418631943382614172422229463917830368413850672012843841563784984688714220621890303053081028289182899818714581477038140979738066323588187610984759987742835724347376468276097449603557863200204901232744438126935148095541479014247538281189843819493440323777653800546270866549479392642654137134030988390128682138307265958374335070115768608012531922845370749707982339023845616144190449869379717258141642441471060608206277703868370694440991463885175196150498095271098880261638460932256194276118543613450700470488962460683874186888638469530874087414553519028771323037151679828592007809844249568953204309606424530771914153910212957096829077831160462891732422715093342246343165000873668744530713450218268591500375379970477014777315396982258154803409412094304036139033951671200519566303412785814750398204473736445204161461709820781633442857110030467988755452760103546144423826933338202909503266395702918792249626353586825312954874465354719866061964605407373784400489059586872346908238865649844490611757828070355595991755210926832345727089735489574739807269408899610713116145272820621643942276711084308344268227301478438632749232846032465605809131238828550408450072273117747665793840311812259385584304036308715453745459437294154384645171592975637859720027105778575964975548594767095333759534432264835166465890912087837402810222264777569162341724759213495918968679425712225841804313626426443611086037680190475216458521004661663074892491738408842396218054810080394037707845748396713295407153807710574884089168576813556432208945768415256791560771881327062891976944803091708211623108305137977034286045990382928772301911724660278396281095617760828754331207215783280082437470870226174837986219291545806303025945224708688590648581596302366209280085841900801940407986420389342012047238203572628906298024919386192652326355466385006827823474991956813462327731852225704908338061240734342606148218354080938969705813920896375589693490085843396505732552438336869123598182307393963266793580165994496006728983988689586541106351500797831669659462373742736656379548496153664193426120960369009432101152418547613860506297598871840552866488924991447205543310571388779319184638433042622500892543720067130042355675928471436010110062326938643104475057855093109575439298801725589659973405500832756729805494202582465292454669001726429152112334771541869270748896297460015688344249407833973266533135243090324880538608371710910477495359157166672033159968410451487503195895253983929520968555508088904747506076344867058430629923114581575314639127558785721294541955795338584074269113597077898329901274204165175841538010932379903201291478009064405135862391504818581052488670653908558707942014510142581203526920176842265890622395965733529574342870848905122392709165747516237692759701093535775222220543441383115684591248236292740704308967240121805287557030529259106944617090976093334851122008733866051373211536383724564397846124806870443019453331647295027975335195809965697310862918252239854493847773624289826490103943594967811367272164110340926135487689928575284337718809720821853003908582113419839730221231302477727303995555295542116144468810898232869638820941427675417814458158595488665685031652000186195798099094793167619889915699487619507229244116362827930820905306913119440899521138196014487645375940685098424175003262441002903665144078252174444189215990194669513735674834671623639560317128448590486397762614562460371579392734675113051439554461857969205608348799434538104064088035630002345003846592409261427437388696999368896620286594843814051985407405686881728798023761241985458216913203264539738996753054619972758123967445117531150372564867909884674190093638501598286076754104754442600002793014453529645199521318615913641652842952991271810559572480922009301314039784868363933234722696282635147370653272151837826466763092440889353708898774628389997058299628346647198200705885217561346981134886219824661061794127144550045675187000695241130162320716711526201375045153747288039085336048353588023175502048215592359152585563243444349038746518736591137069522002877752430044346585115296950374033930864389466390711420114841375823562375868044021523847472497459848510074751376275170577088140088700038538122586915749413945229586563636331084464677243191526185906176796163755258603994649459697367458735111117503385588682055919187376568191393678125346739719916835879452183574854203060911140984194119467725680686389605818716213096495074619420259768182137871435733549991254299096290641765933284228526355927791183053143698471889927907147021692571007899156664380868014581969745508806752389592076072084849017567984592517278129968567866979982698829555880012227304291217352125359287328490493581950606238819953277746221490484712802187208945244473988261901054176586447084148645074597454435858530365418111317725960913686809793703168026853944707335672948106491393558101533016502955158970184174463650097688512046674569128175494591264314921166613974996144840139108419299198178280808828571961282056681034480740427452521460151692099031891549058223695476792318892703185892615396706935666937975020809032538659818818707471287949989780343336462274746899917067421925290181963698762419507965656995631611431621469589292622795193827188383844684145772262649542113132181617834884469677152876731951394846546458766471566453381594731751518112246210434643308423804981693868068545101322558397813394557603593989701566690795693747719763031865326522120582262216544875213747754291244243759306884155550494253841059427444063696804491227450047145842589043789428932871448733516389375765492601241595426684120113976166520906253506641584112069173084896242704594573158875675563453751420090755147148846748032930267141358418807473746390078946373611850841502370538531387192216136439170224345538666615035756943158041214411645435135485737527886962573658588253556727362051976944664240611666754180392670394789345894180793265542424956108715002389929924843671682549869400637291037580930723689685817352493348121406183286951127155425645707625216110547569439422759978552797958892865143929497597329190008260475898738895291040438848413056999235969519208619494036896421853817207300815918963960041589532769527912432676880697923106212552175710470220103264125349986944717458166524143012636244769826202074156197895636812059653419378621759868009938743312969226425131350832045977956005039132489610395538384412469891023417724470130952055970574770174099344992369005684828503127716818263685026477481716198931394047478754879894097471274301187908260431288074321376920440548487603521091074614240571714407185876089285871794587981685387473101911502284373773095341562928807348695499112822210503825321530180536481393687972801392250939790587664740673909903729041129925758676074201416061031160771079936969881803372029594305637404690512869582927609652008010127084059400585705004226051039140862587088569264925281831020635971654207168342800801907474435302761428289529186492335085706359850751331986801170160700657186963684681467191777043931479264169818124496643601090193429093614052324280703042421895156808160139300893084313481399530438885956296629216797176401632830200924843353816935922880570691766890945974464828569620316918424279677777532640071151195254158847259678233565672742493815562240657433203545001620934456700694381596354579946299246032363880419137168993685189795190092365775156891628004001553463252062117869176898901582147702643774398157916727315746365948348427265080646612110343327812190860711075297131528591868987090895532251559282720994667783066031662200920396398261104173352179538765702691470634485897030043331521818415426307940112292034345636700288589210882490459711490597627904149216284183107275974682132581557764975150303715049482924518568105147885030113916599242585260804012686034566630994697809839833953641305919367798064226742973172051508732074245568177657200514723212592031560296495966601063602857176626536372932202859684130762811763244117450604904939625905189370096026922774502857818226215908156622679172600647048423993353831347474257541567280742230051998186995952106324646708096003671265019195406456220871841476987871722287590577102617503916718588871675558524998856807197296803865874219548253330113587664700813029246344712604506769858204021104052397686594073327340585320271922347742715551431174912945851851152085763410840926077584027204730536541422026059726895777676589029969904157442028057851419786276417052907359651715711150828959776480652190462713086051945356295970557441052630606419835183361475593124517740104152566190572729412082621375073980704564884900306175745308406870256935561785805809902813281301506082965474480683393871306900940727124191515044524329508567599830131250336059245561551459550365646689960300952827937614005181264596368217530146560096657435678288405702907365622757804947764824287012235225483472545007431702249211742350392497945348184777163861115418691746137769073456003401673924689536235752075343520691713407293027210089983990161731587970079787878781710350177675534942513537741303921199081336639596909073497490412578855481254299724958967670585323833126431871570888613037404245413698659169531273894942356083921931790745051560216264873168025799669934668367358185804507128386833674663958408130178037788979259175010545695416617133422951252245011035692709261676780903403273118918638315546824283496534868330797506280018909855127973457266462882429729096109835743723614654916833915469384005661561123549754231038708631742003055388128879716932533424025071376770645002304019787211622614516018765236791966283199542320725138674191644356285277096377313250887071038463750730474513211753444932859743264064829842858626763774002723739187678140999978939836394542821314042130339392926487278840315622329701616651107818544679880412138753715381669415542165325010818045077565487397629997434657297955092857531521507032867064648366661602461381607518219583284670424610817404105916934104267832326089733095578012473810278636741743378511089037356835001923017008245018352752008520234636199272449265154581017424479810803928753596897154397870062002274681244251834932518974851272508160340356619981106410733239601400425707279458469693052335000373072962427544920069829147488581553561455126807280075622310572496772460985053731288919698806840427915394507854807875948741536558546025435422280056659154173242750181489484625070556517585587761666505906785369336912111483912319212953027109847929657282006315341459279528249546499382787334437415704800526263461579198428189440602112798140275737108467287423235356410433951833592123505156733908318648716664993040564404258068465365818186606811316799383389520351807613357154785851438807353189630489042980401736519741828589093597694130128368129496838777728937825016335491050506888196803458999979401634929985848587874227138531962016297589272437862724698031955728930990627972172907290147854584426428971491267341039757244101913090299382161665216148637851885988720712996854797170238818506790799196843703566038293710549628624812597692955534912889234259198238268404618916503216059964672480431836393904756617418470147286035178710714321308709368195298669899641678189005012324684236113280587383677108846566073162304362479425656482392770999869263056430460854600683527196298800022035963542285762552541414553597677221076768656168357253875807564662923686297932816038257974167423693763069767801443849126899827486344949190412362754440004873090141727800609937151499915141262841107571077956025882202178597244049653991618776243414175202581854164629043565229919998284296052839872937170704602568146754893437070503565128937794554863067630445980100095730885581623401141824872978949208502596275901038813109407306132001772466844339246738922093332417532249083624664804892152103436446239756200018822826827608776699086443911345048893009164715465052242026586218348095455623737121140276665646091728373108184446367799487883723260990083876571326120435249063236668649445079916804785537557769657742825166962580546777246643723069841488318333513349738026963316891161226723588300043241492525174967174638478421034129662121358004424238708262945679123802485459302473451177669099484971585571369950493759483563688716608836253832970432485036557157784278931077637999373843207289467521762866842709047684895264112007186207115167594982895522498731207671007349267164482132269946993932440401243143880380686588880107851875178143775736465628547102628179974190240054851727260503633477820644900102443711531283620759787382401466357166944416302921109140051064517827048656075210968026786863649019396830427795472699537186202580557100196323791967221788820809134925693166899171813554838305129039795918568821249151805976101514276645554399587240256187069972009105491144428354836925105795079887171902178219382342927169612609288675484826299672562186028447309060433002005074840932050969536241377684657059339362347237168724977868704332565188250781919566953868140331844255850857815765489895992389717389790693374223741758367495826894891382667411075504373698864545026790526811338660991343925540738332019890557506682056602468618696000725881128468753687756009566484006693079332018517817699561124313262703766413224997788775697277272631867646896689884011534498777525482975503396198609927678836879896959039073273016572298852603555736018453660772517194251363373846721561551991902503166343580408090277221135185901228236718234258674630076965545449809707726969451815539772059264154823241989681252065946241217946839952881082832334712942249459886773979753778454161071632657317583801813285175343471244620990146106953678508628718795377413466223250504154262895993934242230691028716418812114031988027117345740261981916404445386047015100213500788696341743206153144268492259515812333231441568636241422485251178096671954448695273648586286924698467279649315783495155412265366862131053861609131169937743743076019429464471584693234302134864755194171844458925521265978843618615150466563008894506123435788644155367329043763905435444590061298973445887975034506536508724524357985563778204549445595389181140821454420811421753357961541065131820485984795885616681280218775212527276853345797198520068341892658563729466839216810458600347805973178432262026548183725767442768421943295691460133173043373838456853405523885015850242712210850945439041260634304217068036811653044333265758222772640698016068266811118715069692290470921134303591169867598910027746062797613924739757691815787130079966825111834908760407741602102238377547933874591518050053300270634455414633427844161323310626583880012531526770566717007080867366040874334145539850952752038878045819687373482020206610778964526495027121731171542360042255520978847635324151779699052534954439585113893019187234382255014158849579196899797451064494780247139140344265572271174016644233121992670124779164281522476236164218302364850141008920103319870992058143299184684024891141150893714556727815170966482230570636175823835326237107777406471669942222723530148650523047366945970766908203734540862447159356107108341706454060152733027495147985369840926995864073950287895428975959368810644060871402646151637380247468472106917499939784987242521952476430281996469096363330709146516174124070864161339433498363917057099764499625343849598032350615602536917552450700954785540882502512042266304724262214935946407586699811355444094492151088004123252296388563023693359611048821607348143658820803295263779768149834890377055507569792086424506862644843718221718745935387140985693843369870378237852400120966196018190044503564930521796847401792765619707597589260765271295365369728056782771085296940697802124908943555414403977336169149243592257925229697313790111051801645320795719634774928674282294533433814995091843867027567419373812417540688794421859043203906640466572145531457741787239403873623925707933761725154361359382784635901349112256856043135728733672236987539886878402810957866552160159193895057417184320426121486834762570518321256113084377029847057293387682561163804414474027674001022652917544609799910560131221191910237018854982374915594593553746762088766721993230343815592659090932201167050504340702133367514611043249069085181363562044196442537482680967585417075377934464313327591503359461129912749297517578943695684704177910124009862393379196245961560281379969188118173933436532476418524362378095064711457440472820557522423081777619395780932899197162121187543141590245471278621524521565135178373332015287380278542378185947552571935476593051544551416849196337089027710945108965411666530278775464510232159027878443337591938126781066502732940074666004250181253366468933511440607202289096360021022549328106856013154077653800194948319849196569202665669169905558851743003220323784912089873563946143008311919103254713738085796519456496584222931023650947826994018568352927615300312438435240344521272292443447874243521009175329158481835022134030694540768644168858216840070332159574908441089674325012699069190527955076035416887824064968203326744809312109253470698310833993571526974815603687905148894581215269900232347074379964761581703113271428067421252738280161386172430592183749253610085866538726088156531101857717968688452141505145522465995069626914789580693995874401180117098732848931875519101513096445442993775315633523866367413804102259793656498412009883946331610095247349551528265520913921630279204677596484286186260707643462410004189648664274281415606354502330525606029259564798694566192645481858204057776511811413045466702891078685587507433100020127699702227873415524260226177841624798969421648203640225717819947020262306649764447333219560716113470382583025583517308957661449556333263297721863182405405249989639986530434393868686089703479556581770008175060661444731962886381495866363346442065228466193730594237565603419982087406151674177690826767301340629313591276482213346547088749033144176941140585927351007837828270547341003111699241451221419288535713299402405167434511540874053247523658439418671728082504515036998179914355811689553695440120458438560629246712274106544713035408522823649391374875192197758780188953768893882791422322566652095385730726229114826547924712511427192289780246847626478950699441364557789075100125017770741125363318748634473549474709697846597094763052959609460359327739990906026075232753150331443094705293335329933181331046094795091938841737667636840563896295269614789804740828459902037306573439450347382395306259057721489439305902569823611467035300218932712179131702860763918739420973379244771095133934207601931283825326453793733307796490747007740614445573232467219109532302898051498187647022571979214464814787121754579424636929950920760678181110330913779037317517568970055366891631687412102934945516150250117268281352349122807318610155937757747137205662688781120249954695740818135005890327058983639374766365514015297476356879251186848629133575212319021387608422006453056161479561249019854277415493572029479868389274324046521443723816212755954065799801374139885114246049995274915027239471985043065147802580353082439350125573780583601509993365564667606120879563962071823515311714824092116144151476209419824119687279269204152026676686351338183778678212327778255370059895345731104387052170675001208630125051132351123542400146583890178424908552571184665762293743153291109574201309549930783263201513486881281709955186885725706195857716503546106388994486390697036684446958249546202300961783769747031088618251303440775911037189337684916320831928348131672591213394364536113963951284765208430092855284489666911324802122876224860793178327291807286454397563891632765859294851091827502647024069539823076169707118039141582586276665333041560983583836441444102204857751915300014864366975865149046200777428960513160105413843989851174831886057201801133100636883006202831828925648746759700449374103861245749340718266716451356626281663348925932907788529394582407591349976747107384536809390116945560288296754892837701594206564135961591481359353074936709747753241336631114139324790317496450617930433749438891152025263927846741731435031105799302620571457902645259486009886783149545532166095878100942939583550436799444480744871450229532123706649383111512686251438901770688249573958703682447534356457158020370775070150374806891503172563059094004550662145365685644967897428642689714259286807813517756238678475699873670227342425734229307894410120202359742107276305539176037629883676786400150219774248990625836142031544951673269185131134886690196704467959389044749026639027553793369906575020977301311238990966902839659486383058521514474747946713497953139774056768205461448092449818953162793578960544451052393761409922853406607585354358118856164021373139472326733215958733622592849703310379489731471493724523530345233959437327389868787075721947310259556298288857217350850561893765678456373541477951975105923544630341096760134241348010271243730418210129544429609117102512806559928172183033322543047392316353579227750678311097003808911254556930643987663405780295942623833450868357509321236105451908216727958894569665426420418271608325852750859561884933832923444549358628527344741973431105743454990582375101923500337467620997299869827528553052757509709306389555131822326661927427041797183720564795765713250100931290854245774945997208800668500168788965552515925990602582376473228888083455995282080367429985521696379056042821994382172034515571042171884219889066938615358751419420966916208380237578711067114573935615531797452505594525830200466922200736007693132560915002238975144806482643819573806969021205065330369680332991821765748284979536823688384711292286488491617887834117121460567553072235596746223911970800984249396493810349808700918008954852360436413087837721564439841924846606668093356936788829630907767422354724042797382555476636113304821117557433765623721019539224497627443507764643848850220605013564166344485512990170768759460564366419680001707043348321035223767178729379826337835454657609899546129912510668252585391104073173448679966819187070341541428392296011195700752670263932650221687372131899998208503179731850676901684935072688466181589690868629616228604270289305393600243439450391442685349005627858258857727458359615634891325837902652914258413508461192841619453528450344037145348502988139874100793885402309030007998760470192072547917663418504929915984862281254876228444540600072404024901049550358262535339972572276508914205659128321293533734509021580425285150770905780252542747657709115959654262822569305270426391926766142064815286693636673723031952696232072874888991199972658845710215259734939695219517261792677162346486426855226009088908434977282308463290782537426542470716568082441286251567140979152392729839498626754178360228602863843933102984203998583280390927779108963715733785924548761269200436643190687667689239500952403056919435888574567013845276673064537641378435396097619267758587017064203996532685145162609951240408000241236583283292569218591137319217157807300111704368253926481199901321524070734078296473056941829837987250291392528022480427303533159157690535624128163429013653457296375239322301997485854060047614351155860101981379948934518534302126557695676722380310350775290992434268673103189929414230916186279145521362765022762939161321879818239223163222491172527172326337740014285695080133761892352506430520056305899834370852853219411097147932223909908779715792192266114168563733272309032557578104183334915167463732882356200420560134532200067339839035474963802442098206381095208685292560402243915872471133791388639754965869289065089679048007430952134966494061972941481115520434220451044307991040399475290474276763592689395558597508484714326481768630501379745335016531185269837891294939598420685894583317785290088023325039440536914946655533971314661297841016442623923834570959655073380034957302013795249104095810986215053653478906855754671813940302994952081721876355424118140236399871160033516140247712211438293875210668688439988339829996691145706283665380140553100897362156776486446995584155324095287504934151947973082410181636227045421827152802166002647942222749033767234276406142783141266403628201832039720266100896659743616129640242010018766375866141286253848459351499800470490870419082466346122117979883369677311200885488753400833523174430966224186365095681594651949066506241527371560858523045344857178612059980912891725714562719904290702301274753405691171340253327920429840380342099835863656224974068006830283276272623995906559044772627993611696046164620788361540370623719773641375005870195047962226665243314806012738746144260525536045150099489721471358859803636442994746387091118225312767280536109865000170713797277321083307583254820888565890828894383703352241586038829082553812016083725467951095462903204332847225115456714781163300388265654547304175070060922640021613717394577518055356124348305384115885140110057202133714957026251707634840646715436152013722253523363372100848722334246712563485953428852040444084402936925465538293587842935783359792640083719073014408009769712282230239215203084891476984197832415517588781181855487038706136825371517014046601055657696027038073473773440973819942565292040415247191885253277842114299034278270399275136842494734657947206157709115960669119560628902795722416208696163431291916848991450875226149726053790703982932473738698495096119695046192178386779754798578056920403810922380379970125501014977669127372116744160920491019727987300404789993009961221621568741099029580099368441628683634560618903842049208481794067318388323062478330420020476818842110259137250061352812318635779513833258869661830924787663761673229281425262565510993357947085509858552189081713248040817978088866914125131870314676724213330014532302288809011474958858443741167054475238654868857403102545424503454646261695433718841908401700539832878342188024096411223214291924389649338273571845603104823269867404614254474298417305575516547103146925091263655133717593848827589969985242262096249023430728440234358129454130670572689476758178433951337183524282376861684926447394489918276259952546461891541383360987717569859905826537974691093697588443950629497887940035542322940050126847858477267141740431620843055470052554322630862294371705596650805837986785106626980711786620244120021517586212212231368770696034963887570027890939574568701962769343211379557285386262612329006539435529855294421876063824823079793318731894235372838094939707358865500813038415651463072842558078247734480937918973598198095684675786553689574205631555521201327804251563488010014933700930231037920060398835658808778962647009795104552866760335847399711532659343859806726234853170853243671337574725835548193000696541534505215777217235778093941306704443141797724847580113300512661158375376444636052836825199999850841702638331778210524411049304835719497354050886703933368527083520157228975279983560680269192997307976661496184602060842069244772001979193719206228276713099983439532208633407730814759131623071228335436863784521720972794068402060071243744402426585689726051819295386524707111181147975236743931331332063402770808452454224797211390857318606208376093967975551026732906779205969269967561652906727971767504381762600618746964673457515570264693424456742033907981380827416204137214585035476341536961833443287748563723283339496216459681864290445080958834930810752323044309728930141625882669083613703421688178451082870804038064623520172052801251120671392315653679005620813366262010496849501660677806098592070078122754153305346895586897344844326766355351793535518859058218938223943240197544038437279761993231549981157083498107606923041407299719573887885743576923670798790834697694499942060889043293102106469327728719671473358514533506524227981320157719552605384950213272664897528531487072331570454173400284185725901238721688701739449777358725840806570306931221086728484143905875772681891806547034763198376190586369124789930126376123400447819272368721657891479001255405454018893368057497021962349904912351954332050724183550500928986851115634071162425793769771657827901721207105598427115128495479969261488988110860201356780829675181781594789221753033138350190716105748016729074472663076018295131042600757356030840942656346719664654059363621177201713027795339783855452309849758828629927554733348716034933329766501473491344670530473519296891314372653376708480259598028835756530259945045451254511078875378406318150862790956547710683808463628800156965209186095415695007514095878655248025256577985603793011413871187756793380782832566321520300402851600495778835705361876795567155370409059875386683791412469214977131718374565672993932101377739697767778916888297500953203556917433210211050191350619885921083665785846264192769233620972085243408698200106229684071962826492041424400722693725715792916331541145087250286890917169454806330772244144759626183200095365106854808582371655558916282837495378117840994169542370976735030925100160459955559968703750622315437290713896077876177537517269208546130809815855284146400664346386576265542159730088245110952577417161794199297719751616769355222200428589332072162470915008792447783490255746999559385932344376402862449024054652650777725500914373676426210475740324373739120961567054996475345492750324891321759398580753809486170220457003310919342441959965637814794326257210707329869886267684026882765008041336127358897082516692393086525998983844867416246295487662554053127219404525499534854980583886402561979483265234048389739054000926704557125883159675617396237991162848836078184524684177981646026470743486486107010446747341715186035651107040248625273280248396667586363705774529670688413231859760045922262148294425205472136884729781069780015525338789998674481821324638493776855122822470423754506477809733115719389187280942588728960776032607389963432357529200048471447146316749586432048975611649270387871821233711018035229885912217182893048558319609779920300547061021505047363633359298842809365263167491769141931648388122969447556981619559006022515001288140637471947070870278855224290295905721628859460449418902773108555856256642860664028669384203944716226801627690421995498843946955637448980307429829708570860089207098615678981358781544113586334645330889612329216351515607097546351825397298662526389161533537630170769241103887426212441608352492988645475854758304028466986026510586926372072971822087662349207088094329476409204580918229652242809071188468902943449686013311609631933333233167329969129019866958951026379144133542765545548550885382607681703344058543790774166739254420237116465024798212290910203008332954078846305811150764023297034939369431991434351440981175601286406850589118480408773212137998884175401563888730553481890127613077076104939878928572252310729820473154486239089489471213939982753991023372506399620902447910682857139513339890495563918338327037586157947967060122897156436269670828572929648339891474194284034475362165148672569424756347773083723884076610569460854019827560290586979355727240365722144490690659971184986597120042932443622649168326762719404036587632721963270785349148938375473624071302213788344273542043918072661188898716173364926657432474346561119822367277798806140486359387604088686352200863908999736372073004424666433107440393479486922714172300275874488500438189625008973143563986969206556198141156250503779383767972035999004233434268254998755265136200888986177707458666753349008351878604811534093412003777064781039258117852507808012697804160575935663511407141839368778045499554358241191419067873930603581968595144557076143914683126146069873783827967507856823187759340989588889604065231590701406685808627510113746601702711229665323967501974236041156773091632220074592106211558660780206191512224907254613395454012021357047610827540960818122079003905631937617091964390107307812042438412681299352938632170085391571150186053449212544885450337987156859597317748945438136041941242248615240999776911608296127754041538419650333248019776459336097369059719389125531170269510111589707361107320135914123047956289466114851480424215529186815677496889914278043795449783830115945452112454142312765426109029365332614708081672801459959813209811850498952199771166315493516916422356210966234361619627599178538501343667507166812340817509407757702035614429618717594576635464457141218951563381163430087110059768979706805510829614938056662820530228882834960035140455773433771668097840877181120817505133821422701516746195274447921716014143433570173914622103368703890752198945152980416958840803355316488239610336865353663156120933237968650675217389711271218535210302563325491680924268307307577860455144686233916876611709428418736034649830623234006771579462645528425435401188777257520358431177443960203101342990947041810821908336568012799409932677106494864358125840146272439411949734411852666624144623095077457281124740524834335120060270332989792381276676630173499914909556025886143243134769035607328264108729764897439317998673532989513035085998121979944029729932175159873124282924025433993984001443995668585726176942984934720333895200740676531378522101439505911574229059831271818128530402796777812291164176658814896226651696171097583743714792000078051273737300929734458846934548292685981843926422581800446763345683504119250766505396417026424400033247202108317706442969828273775674375305482101084670998153136168197324568580732511449196643543567124920301181054596647462699399985851922177948014858908284343997295400842287699703279080963422060223820361399168539824400026150279124706322817164724676638267714989055350002857751784806736654661385384364443367183819361686732409544632666410979088906359735937982111909820199875040248857266429782837692575757502688021859571290260071747242052719315472140757942166683311096512509937223356895120687367128565141426773012889421068846819810980794707963270904782244245450127049766217300439816614460502168132912969534286238343966010261151959214886442865834511885039073128258771968557355115495573894382450805377851986756835531156948817981607748247974330669941779303570072030642302823228546290909532329051392933415818311423385854843539737797672783729204013669937394991082894362402130950762334614487664278137012793701863946018494057742765622033115930649927838981765066469668617498796781665870401535385092331514424438417440898547399883735475166487280335249431010062909747785747349328726818346977308485647940957509632307037589517600752739591130368704840086959352538258987185395818436377779471064217955704894089419522844602804289886498440017144889880979749598806051564190210759848093782629731730000077943484727807054650282045753704156570025600101768554705791476034666996319929562644963953283003418107005557516667598462650336922047006782560167164134416019335965503886664362657464869236333029462971075443114136979141509280100763223987656710285183547175359934957920549514079723668025786195452368660170540480252522028645366253418156596878442753765208551001476583359616012075807463070933678369187455706331482383711090867203245050476974901550879595404865382592036671216720239280591104120380627900218963978003953812056696471529502434057779765169843608269869042550673804914941714328660248087100263303514364706320900276413432136383837679373932602415215189221517790735597037512574523211123533871755112398642318211970675540790990506796974939528886035204331644410430011404298587529919475341903753697144723320048063563879079387063409707586691645672695319067924245291985968724059751187475552606014836102997138739169966756580998061041822939462932142839020052842722686608246774135286765714985558010423553450032349885186425447354182101611616045305796720355895582285564974630541749244634671264693598896645677160404019466832865613317690697201150185021738324882491068315107087224262185028687650362036569797819257782752486610980335639774124244902128585260700194282404818732042058439111512962547919162063113010675327746542857794258254048014077690303048190235137478946729205464190772693051554372196019002526894506441905683992765624648356042692232910122015129336274181453346496762027813853724232795627643687659014439508392195080829848124096884231327581898127399022314880477911710940474996623393648924257744015731913699406495010523801012386667717590383326743599700498376256095672694445868858710544119434926440231997351464595663026812890133375750490981618550945221986169231499417224709278468250861968309941510362045771361806876887753180068937517086193403734122401202096658048634056292893707757432974695706710810132663772280034999892820693964081358693241130753737501319043465437550372652634882179622884652055481993185839291990985012064699108190602595581712344931112321656018734103378380760823389127253394248212456197278088938730011763438045365266133674536037743508734523185245463906628001864893626787472598903561606629376391763758829289794496140255744630440740188942455758597479327412722348592315081944894255805383680559156915838103095385628138687107521706558399730689062085657464175049882876231819279508649722190612358079109124332732531377180454331719909051891883964987401570170950361394528835794081007384149654280621389212986173125372270527645042158012966926340558482460372701732696148543300826362131508299702235862206890285856291658549864151050965462243169939877829588194604395551711118622598674664084758687965745290900219446372700920206919195919287921876947916705976366552631925699393511187139497785220727389516879256719618886374832914970881018221557400424087968236102039226837268757855394177430756865834629286582579766930602005737203014258757344796364537698644305391451888131577028751000482686312727474902618073090277454970124950776730868266897815333211619126594235108002468798014971703354968641823253855924855197727262645828421918277459896146283053077112050887418925773283840337009771297787330751965242436503788610720745352354246055691014853393222719151900654683750335802330763390813492800882807827871805156093023136227018891607041238231915618948270824977325982932509630104266587331450993601232024401175561484822335134938464305261930139846220798539100158457482559865219385320961134966216714373548016836099841220349341446183479658735665294115140958458042426665534573505995191199098566412959809598574043824636637071703788717787960309879814551122332186263660270515160026886586807963027970495327713261063639639694464510083438347708226248156018185421009302991641302617364244544545383401710761213748906016743647371215046519062545429727303434875889975602860366717286015223970856997353945125516280876057336055546664816619813606545707208187351139285934302192831302090169332622649237610101410484299810278848885591006555500442990069802605195480194143973406377974668065599648354475935714147891603549505123146557741911638558201282287594971855802904214821375042882702153647064123185655686795769803609083051509321347728651988822977715646294172941126102257360953410944598632372802842321473044729302036716932083157796622308473667777081389598701355520666352638647928665147879677246834104869315214906467833384966361767823224511870880467371856179105568105258141745146648637622408147268960456388712444494140466255535671530769904357147143058753930086973140376636032824217144315774239427021907812391426817079430606458695004327313633799261685243522150817922779078690300668139451246305504926110799949442452366132679710747138598078451635487809575200841227846269983376261608866710496198357055740109913699547539809114105381065452594809839237623038698294827978480842637815346213213739078911073847614073468176962700754520587002414630754580849660378808033166753652526457752634437364046833122113057060127299085937936098229371805275455621969042787199080975196341644741879879660776577820457006026069451693233081787329564940026816842474310556769058869786474084013221096098416517816309533455751102320745349629483517863255775846054256134230378694526816698223255350275950272593692239536102814033221361546505268527454795906033310951051491001726881135183194141479893966922755554554412459024270900525372934817296389808762134739271565595194046543731252272067647503191974076258661006729047571121894293774570355027096332534731702736977299341836921086316895073334560896403914057274172658151846049452814822758727490076166902419591435713753618545987771946764848213483984114963081842160439491618824778141898540833913470146455537959734652890872229894053854579099092664668804757687238468033080350890178547842217537890301975880001208989409654831689444312282481210719114770967264773973016076299879851799816271861747628682200752727062705375471976223703798960570731333295494554554226996491869955512161443948047992029610105260114071111243117666657168511971219217396837660026972920305942028088493610075498098662813990512086593489159609438537196063183776653367714986737268191018684554048646144657574970468296495072306205762087256537636457570637977456414877568660392492055739906186095065147214527464725450990797420374136539011502404423593385435099215497554257383161793159202163604912506967902635854205309792646463246946858278047020807574673724717084249853010343030223406551937575263024316334591484205601570461358372739174253474191652578340893352880176240660750954234522233157944439331377206539206387917404754066191833599217596337904449242249686770091539967640793777937035790040488101231631369363235226715361995997891011303823739728219438263388756841068929446736441010082846139314676743201797002094547837444032862091938685440439247848427363798235149675093633039861829679404267504021242344087306475427165933647796201731382413666682171235888057044362345498091394118646454549655641830802209478701369101927285984529081959294032046524954478989990426041113599876398063883676511643845869071085772194659864122270798068871537607809262775206664173294813674431458743302485981896471998143387902173742794076613892025318611671445456219270751359775273186853448742579192924555047816319825292271132159372354249777598322257792089469640706014074963912917182503765656528879935567310119551284604874737401016448565304979868076152043710538963589458579011322327327571587743723708539062247030874849044174652531931422447378389173941796988316196330649448398698836161856914933587998063313215897044352134159491030801010207916379235479078242614410623463231055654520137576164671265181117278031805207581669878340565936380866780542147930321626706250600068189169349484782981555077375310125481109082781472880245771840288165379279722994337466832238108009290426768856009523677840810374506724793301587834665604680229408914840769500228492216203631627274769453475051765825454367313896603819707971444631570516385500233787056918755232315858781945122650480456683673105119364679620591898363052350263863461383414102659503652974542022474889939805165076107173609623806466755384941125078090493610604434755780281978665447059093745830005999463951066801213632060683348632864344854716705466602517742979878012780840734301912239272184354751371352602754289807097689550248704433840983811766540054590720989232696080951575033071729578426693343177953749755109636065964290318435728731253069846047092503048658742852188152144081079476843174206053208787094881184284688188705884123817512899506679542942955710644338252667653223647607737605049384259169021548120380174709481973792173646152839372812992756516418863611422986937169609389621191696404289344683198256066729944006425333116328288785756286703991362952343631254535393141763253817031930292497692344175504935918673585459966313078856158976561934423153711854647696770600988002104913857149375783240992147669617367437453026101618106680089314844448888955287325617685121743944080542027196084315962604332943647630710020052074075864478413276278343715970108755175660804905823306224286164909321173882871711391482767912237343068536646920596111841635284388285882233817475712090298220967867655365295853276633485967320458818931084289126599854097137711415205412460261114937986708165979373799727203124745675295454709271594166195950599413086341783945976488915849728197057653155011842931790837937652007535216288783806335144051402245829221406232569636418654405101026154988786445512746016485852236386900054990949789363865865834219613244502354054226542029854603423523186247920563045128243870920872151624646332709581699343976914728321904552144042261466655959289477989973950294748565746491477568880450107477298615511562975013306805092525111117096497465053263691179862188039280197315709370418905283143212171679296577073261437303949446994470677517004542405700541759413009264481903149294951259037210984957708098554400544297723936074693134510604214853135215239017808936011152390921178442203576491305137115487021434055678168945588868415389335040172523453276546874409254318229109167189005956583344915196167746893216088560548764919296043860189210647973928749226746661521036158377497086640851891517350669887170931185510326651176993871143373340489896818191226850587585041681182096188010165097918573684817848569177014489061871739275913263391885491101370027831014662569135558173017759367132289866281852044389313705138055261180846749343448114490518474163045026905087660193662580025772219458049808985025352582280158745600312599576650416368912167386679932239625504502748909127075262767218467261528357827600364046901705503843779216419217741534409723859456339996717649243662022175953538859168469787855626229974638779850545163682424646971276372826796971969795055782387107311287286064778957595918063295265904929888067042201470307191803547812560033489120236391558566375165224103359851755298089439416988783254683497971275421250494340866781835224909885332469518446073731170010664046341426008267959404690153180265043905488654060101287602746569976875036210568423913691034992473526184630541692774843096608719493817974682229001873882673690484630064547186843143688479955155622184194092673300778263973005717476707976013918236392324187759560106733501724578810258036755814343625376098770636462443598014222156885168773356662588681579090670273144526083466932392855718042423671716452360538135405422335499822903852345213935405649897139656326949236835086791428277838664532968701034941662833282593103228774677439146522538678970035345710900280792018349325863811909738186140319134241902789971870678439726856692385313075676575698571369732681267925170588760004468546303281898376214111531502205011818016831952505840635127270359141646791879029463174139340898713266063063571727345064638175946479872836316481053850591792445835055857726292517518445098144373267644395380904521400411643393266198185046652429778326838070175893720023544449044236391595361510049175174937276961661657110422618331965964329646207489355378118079992182335622209657337224965195829699380037005892816563696540289068982710211133832350464417664547346631082837711383521986883212007279735601314250719067859576155172980185288274025465496425734493367179499392437207287918049567901284316530232886179468972352738308919154207281964101380031879966131986526599418745116816684268388653971195415321705617780840872367606617719709895322773722222502539469576891020440540803396557696496963268021904316018211774072771611830954681522122363390349815560685062423484132385537410436639847259810784632044274573075255951346101991182367781971901327366108416583667298793988485606058460125726375010226079102145767615074286417211851901661788806992757417333567293292404571040997334141066898302428474433870444332278968756620490488845203369885423796274904446674175884542843824726947687439684763092133774249970475171487992619840994186948533031137153702903257454381372359763454058987796230563525504681015846078912827843507993083095094285199487808075300437550574610500962268615694428548807314602345536501257061177058744884227993747182887135754660024171115317148538540561017943480160442448424504754120083067810218573271189390039899808185080013650132443675743266925952063742251428422680827478152821241255359650538594387188497550689782210851234914284946679500843554426077736934308606801157611886942456857627659856436492365074061075783939318770408318556446857674244919578486036537874787949013853227288219956882079282386519523001569136545246179730098007367557778005049033255390209859070388365922744744508520098900596426127129023925089219586409022351425875834720001243899389239155954661311116416579949296296292044799287975657627708961273896890354026267074351135837793142439254665902729580233062144190251132814080131152530381097825922205874767309856352044672939554748050297883947794185987643752293887732438737993037568283267692594201296120898229613110214179156549125121935468699403464376093546147321456445009113180579118028683356079359926735999232337712744594075392168373804305377176949964021783073201171949669223205715281244043067741817278929698211223658126498751119306551842507909503102661918795525579308011220154209209966644243269593755758064537146245534123396277551238845845934722562875926110492866182697955097317811804810925899106552458283985404579313424531868656844900174970854866392419385286130708585037547983155936375075651167846396846270084715797540557780361709136532093052872990464417813554125488992693428631080274039640382826320411702005705217921101079794331978655112668479965184517876913929696868988995369715563191707957017432603105262080185914328398891616520763582945687759138767753018834635454697049467809642536990387944787463083135744007008557167483604979368126173675861336316128274166999619124143949003739066781384296024648763475026099787859438143678599336616044387677804936886879331728456221468100806701655858735733925700910907824131003028594821920799607650286356853391005608724025438631034905742697158697209732936396510077517423918124540374504079810002668060643613083258898851632476167685900128313266018494802355622733147694593334152722489734930824996572529934297563984605162971072281189619760348829296592397299096179230627749401327362849707105215557948225362880883196727046891402459122236584796559552593544043301764548082145255689176476443505235257016499930191684764860607558194773366131708741513117702677499284696312384412551881013284653418398102569834142798689838180787714327829198921294160201442882909349494937315997129870040427995423594882703873525513310027266301263502387208300277957384679865132216577366771908593759889599931712889592779485660312015886983731530529136912015102374209221754171471682946802153332403760985704085576521272002900537600641388072996185300974007202534577901895050645384121622593612666855819119834824903330607091014502599726687268144116891025169370715725605214345344055895665910955139144135088267521891033631729976178974063688681475454514949695425728213637938090682532911772415722635684113643026547592865289254341659406432497746757798851025650471921914318317144922456890925764331304514054627662551747276885821421652795883667351900648057175130507449282005672145503758620737733998106617903313237725972176529268073304371447323692640552985619442932330481918321846067291099988666734065459477023571057779841066219567633747302907989418029547758224171931981876593682838522692918968606226298056373000439088797514556544523844243889591847547745544459048918914637309713390254690747612204954762969972506494969304524009707446542044291028961418186746037325933756464189702498052513721620083427924882419409520844969304163284905304019619600275859870493634752232068650088242680235261452514786866478981993115354477811449701276440558747960758223760483452313755199252249113252081313584589101030990604378776314683149716460718698505189331501236723732599473286871314553586628950801671135719167073497323651479111415073740813065042856202542538815092752088983938951836313636493232244589717438448459839977495697142623351075012957604201461497185881857828312172358314643548071899796222880903370607103803705518078171650402300729972500296593498240823853220132899307345204825030411646447958416609815820550928592829527904254147607715711457256851173773273428788319645750202476831163938781111686731933019444468940702004588467122614067647335249971654551862307605726353394358755568391358279204063126684339250879188021749405532088132971346237807974088199752960888474091929735172716704538951202802014830560474799089574279611112249742959987048087455850212318491737984947063844211926754275929065575999875276915511395612566081490107157593351530858765570865082004566346486291673788500983181652281150546397381540881490867314531123534472216813155175268585802527164548745490191609067127500718695649213061958821015473141894025384995561528318508177526372758580561083085135455283412120477859185095884202153701831804698009799708991315899602200313898188830023668667785268482366113719516661974602247224260977550339313117232847154134716166228863427413571652217570440900780368483458767878873993578566267413191649205247097891485113628481522519366853676935254113814275598910590243051318990905523533238727479022085197135928987250001851363876376417973071604130913420511127479932698177431425247894739919849892453931957372127636907432732647369507294647025770688247481017166212930908518770813741211041338036684538413688800522564914082697221490579042287324969385619932244848452118717653067880483305952529039114846860576444056225727870742063746862598210568445503339810275934121537533088558306390856173044537750246731988728525343233631985157982347336423889688308620704674992775503883594971576704250919676571560617522023365414830174623166765537443259489697258349103609864802562971589990473823757083159762188033018300615643941150659601843087667457096265207428648926280964118398174510085605466108981733429491660070279437753246749751647981191847779140044578093877757128688093240016992425675331924490758869648727384771157487804594074907774805009934949809213456759495032391174623402651949975476818672562439276962453622000966091388432456041306486158819755537241846037829839485897973051378622675636855277160802853732720427226050736246083545797236811220998884069414680474419411403574622744166418167020070859291770762108410851138031329125594058413930762882358928109179149118800422317481597604914261763631359135699024971296942174682081255229510812901268779595880713143879847465828837183906009691596422780107185384489708936645958413149204417402691186846939637579545268124647459711444938174960534040612520759040987996760409272156497767692762741740371267397900295474113381442005339584566032310221297170265338730261925092674749519421907711994447193038054667386507335934407936194707905492677061685058338885714335424909241010999732133727364066593508749445440097905853596436789053906962327392941545359884062567721439916615782968605028250704275972684688534556654777975051241707022768378896677636391357162335206000109259825664737428107559094012676472314329760566500987576793799123691675103241246135403483920917642238196655588691249546317846157226723971050307855131993903163606441325125664019962879742163806249126493200832895990301991673442780161257511299611040267451373991543768700561359976459536574137696579386370972229993483742677525349144994122711909081445791932460628902925965818646354188160556766399625579912456900618510134749004197821255671858884957867595965029561551295006797713627181305098383619868142546073709808359749002403433369503102286016892599482056016598927430817001761381694589851066620873866518759368161265952540414867136895277221753055785955097774651897380607697597408785474968797144408403879836516156287290477874367795612924714369310898488357958504677637066622899762434651586561023828016873739692689443195792939295353232830223048582987173849759393357366351945433789684648224858320014823054532459238208735060258462594166424688232568755468677821769196889615229601347218419393537198177771285795032584895367199159178325935768726999834831564955268431061040739524355746681741225048694077908019385382480018982414621260466876201304936293033994147759179045753687339176810935596350572908058280443135946608054900062079907684331532239457147188483336629771845767298839647355414398615489497462140176562353776460882748551482097474067362389608613516282053343383947048917623272235712608058258297937580297843492472084302337370779958651655048163853095370942629816441321897207933312244783752083974165011173164780202111808760214934300967722633001586782775592584353790999684624570043319467212175746400083596346285127580010749574573518932646690968487901072956756246664332548639223123050897087793898298967873572765292938084717662583600086423687413921421742751574903150208390783436625110774649758412807041887294235491962794764699910166569310229549206798683127784704358305945108257110965184755361907677892576371786641205621910730876025455698329057903205372143346431145182666450272883224111248657667259908973896746769597096577712280620253609103514536175581585727399467329615954147125314739861842635268787120442910410813490229260206204427336424660522550108942090811711411377989004036160723905371589220156354307641495045884518113399026716832486496110882997317791895449861488222023388475854837371129333910365198850104725048007511018022435308658231043839163770802429340295558163797140699536422795135808362458485469620151325111335579794325254664384476417150945794451282292414063581498319750976256603519848801963040338469619983690753740841820711352280308108313433190594245714377541824437983287026259770998633881232587778912815176612204482940199322268199042790577975596050711895312964163214683429785107519148653931323947324294378514715274222811167357114806762002905777822894928798601558999534273037377208942453483059606064741446478787789734335648004348156680903097485752392051513520671940097778970277286399535327093618627602404443498769421320035716901044420816607396955530337639903732523604103333932335175391581082037481693119731875323465558900361878545913827741829705526274628913555910608432381601385923070801711664888702777103298419919621462831022883396490142198625494312343446148549729238441976084031179556160957479737389915483100862264813373249439370542216314767053472173883650166983491809603689481560738432084299142372285576377990395069282800418825502558207828200961920946867827671067165790460169149922900516233270690626765813050716353764079102261624743476103026031246059363558904969082811870672581431055483577532776549177108810947500842177215536228081765066330419616363797443519147398189188279884228154763766051243373574879738740627146211465190667642371749122692097832518742036818739829178533579471588132885297882951398520726682127913925341468325640046970219961848404358327896806468108758448321677658114573981990602227599305992841775250483078622550278819976056965696154294561903622575232537441014833109926101665706780525063707339932294395753839263055126382398538737949120504651472928761423855226504598995105367521756460701419745448796305639053170898876320103713306655021984086975857739664336646282072956802057061757423768915370486726115850516462694218559875571860055868933508360122563044778278767741179040652793822268463626022518018328372110891158172410687934532860715481589500836087623575977065229203850904557328286055496998403919695795381627406335203156643007689053270315605688393869149532120375442557542526811198234932186353488738184277357146040814032967040138325027905907214452507678025994276860458494770783374838054799179402246135448249571367522546046373037974009101890723253623188714893048295465849973045813708117755826352065028278402022928607675980643105123378451104850037627161170687599033133920254979039801166978209563656296507763759250256959661972632177824424897648885928574433816368635666053554277289452222662368445202975931134624831864959705881001434770741729264743989334603951857041752199842672823578941307400289432047473336068973379306084869285070608307084681380128021677240106851626200058626045121659826264222749879072342431490546812249731119915100236999576382300768871675261520706819075500742777483712070830515182292518067862315849927220579802006924478166168803380386614332338059046740761698632355595441301550780650950227497968050332318402782797208705491887869100674707216659355847706454753400353277619798348640190721965578129056920452089036550661349084401186610293410791544614604979375438068000442935585800835562826752516293221044373723794896445313070013375723370966415967637751586217864048358886007822596627392334024791653008108066162127775769615252675311924352580114730547866975390422771843074203993443388923761240926100916767047322438209190508849376820534790702532505503528088705750209152805477540044961665782012959011991363234772215214188866446837782238305176746693551589087047000417351901985597454249281181052586835260478623206717494684719963688029270756238405742215048301210097894012745004992056890883121046998657972659674042034029155043580383913990482311112483251248611128103561420785414584777582120407494176204810824535245825807141010120671709234673401640934382568202482654778570488726121815139893293588087639471759901245903161264145621826646607944542591352008836915032841595755918034170085470934410268371028735400028238045941845728583838245363748674920292932967680178199391045265630095565323351513201027083778857128430343382073418750672612075378327467085103559200766310055140255491225801453266795880100391574407330209766549192364193158217452065987727306417733633354242504429473579297265651182917463387285794466860239465262669818314445686768199709884450904528508732006826090532326824915450557684287603224135104608487597304542661395772275266644109304337142946112057038938179197871934354676537888470227597758078776806845683339098850764086906266225275676690390251021327309701686903591509639454613652312084300236189279966436572399322808507187828255129048654261886330167318605800945991912898460779831708534854490078354724279886160803737990337702573988625731053619735195467213303649883597537158623895121568884209249577035613932481328445076182272009826482257738014713138659217348405125453839335519994332258767930662070142205061139111367798223103892592709384486632708130931299607207887936755245339762311165557644612362789438091008150379245308101362584113246229214632146399942057717409285716963278772003530037463584197937751366236324971586261499356981450841632083223963190381373638344496786411075676641471410995182142728376345015215165295347979344911828640965713052799700627627244939607349471106486691240025605512922419108088356503851289130914847294297531111221194763488644135323219008328445363407658098021240980480407414668176639066719536746183913938487492839521585408950900729401419252572946656161483171454165695695754545115752984662287291879475939813452871657140973184969442452860467221147642911550173524253732078427104199720644156534248183456812745744345867621085016890494650329291430259085413813127677271096220387695064941765887178702433006973699541837930212855907255038090733421545407052120454256073193861467953857894070173752266832037255001990943894372484634859237487935956783640967788091294318078795074663456353187926709452683817577421256754419020751805876145406854326200284677395702727445836503772477848157387011561564233323054096426547927625143834761580914000874680329130732716108165215317280397876957204365358287376907602001659762556701926999286270211891786177469782518198756368037925330054952866653367339924439045744814890902310980217490538341184658494127292731686050410955622864298417752385073508456501563947994594845732870041686153984031605564336503300975498976004966389541579059028996343862679227003626429687315378342882775392283287515972831268545642415031476840508546971638611102489989608011769172206558491370633448493398190688991183479475699082607007660988399963192922765996367742441089442972884956868489560431471234151212179705207273740523096039860502463016454564324429192500851218790490567063597358092965944176466852511561412089434463953096497993366954863066210889807225580497591728260814156312651691762083564719325435153545757085521801680409030664109860895311255758424393922731232620441637107051465514749433267959658116628445764359887371865209465791359995872209803694775093060911394705465804569004112659800593070233006752641400790118088193578959211731143943074458019402985302390758012010046946615053051374519199156361075784741137323203080236116279592366139414786611146923356868697824968711812077266125571429674212980460713246156291960204457427970363942267468949481760381871130813586349265944331198061829508472319365809693217509654953995764168084664370201088996320100254424031881686896063350516974669205277325655603591980687631862151004867039020878645921770147282615787180855317323388180603402437528419294956694394391824484466227799147356398789865761521895706947092453728612473782059309005936335113139004901212545799439228239281894724772620960193986100151809805309585073378314764148686940080450661531459149968782683225271466423304819313459371470944363231480639323401966619273333659147034895228362941288037373267962277443350679137432086290056297255627471643561490080345503102738616041803498951399920971864306149008923557605805579661350593824359626357179017655149393286305732189672418984397918509222337195788824158384800537730682650723739384172869685970891804787580257277713516422235925712572530404350839947495714616968479273792409295290959706466583801662631831146766705552220576541293851995505958637916656246671792929488184050312336683696251696541322095501549552832235100538225742193466150911364493473281307869921828368395304783888883043944856077265059393081353098757172939938467901087771615857008861072647009579463196519902036234197598543842586095528395132763584248133122190383167955405562664885912274953284278443355007776854799037792980508932881112392485967914101858004660600423075276601581141822966510539086712901701817458984565478491017029570436184229089319297479251240228954873837888074185986200650855180195532346707429583776931217086291754662638878998420386424589049902917920284647482366566673555733206989380202683132217137622556510717533036426444587557895526204558867192379201142292080134795434763047412020707805121065355479023450884990953774642750852237793113578740461753897726346138019694786236559379248902453941738249848928109626413869894134782354838947238806317550302477585938520087792156604029821107583688453887026780112360192817373618240896958703812136508391329689498675697751477559414316216956156379886545971006632810761849291668474448823348889321902852934267678316139042109612030428913494994930777980837368239481995957736287343700919565517692041098173115758812209058658514203069514626267274014810991946953053814867831182055052262494385745892572461236496222283327238792256912401262692087752153407476412237293170416438791562538350372863007938702091031930340849164337130538905118459454137617251629692430272627336553951796732351318863996380388391901354218431908317275994332731208491015802593493489009188497395420356121226676125594135180633701104097563905176242303921524725070578433580698228702259263529151900208090935794480763095187622826325666188160875751533757351303768175319718234385971546938933057453308562487839089053903621950869569868782115317266232094451856315365607512552702546894270841593713030323003735007404677934407708888697948483225913964918558572909440344842467624759463250042933752784236943771589107161160082765994813471128655723903983763754290582039681028166705767560518393407477326085217263534638295166185728488158169952960095151552306248536692548757300550002944623862130670823045940071260402125673049809480398793035292989330031678807689487976359477419065525396398838921762697598754644599112440885614625435802726183702291362945304018653333856587220847656241358640766892315962675414477032738356280295937127313925184469494470392821851359520808094879446638231645070686630025573650784588800856621088907783938221437005710334024891778798798985919558274248620960644444346750532963181085645216666762490139086186656877492205427307861204022269397899707735100538011818917206111899045523874644770963497163464832465709578853447956345444655553798955484566203066313017570727009175629865187782101261645312766261469821608021616686110294764185726023916396212142988503893169228282559639725608204397829311630391954897568871613702239108353140753023239615562847630358587991653723738967377048625951123366765133306668197376782186813492507908798334689146236606512833680284604488036924589955622539336074118696884968884036943819272876799185764787590725972748874141664258738195779739451861040232703912686517852189827440196044422378966299992784719048129177274704331636803949745481503905986137406190399305645198652688468722288967845960376063629334886438289380087002539268975103731802322225343320688977234025947586417457428931488382382745836398736617928799953447384323335919688537746111673638633582920610247655996959526528863281599290250728739706803537699619222189582657368784304217192154702227483831868039055789870205810986648332584182240331378944396522532787176835104927681499462249855233318997206531086320300378300764050145011716590885892643674528464236526553533062012465672608845754887283931872804179617233196876725958431365108141384574344437663542151246466150528045805907250111302882283838138704751313546517019990752607805466207669792642815997446253682259823253896031723007119007055816300690931162563613723172722100835539331853186482483539169183134657898233295989164078229360983905412642162977325448875945727070475939245104321207682189321059081714485453762082825086743313512031238558280471636211493798415706387613772710812864781414342393671448816746416667598947781389502351689727365153809120187749964127613014484005146721898461200970364859686734773065980965445241849517410665461951893558723417415279131986075098926711829321326380893568327524793519638986341963802021559324056227771394514837648629001705109564231868465560572124589833752678104061116423148844433427602626787535005639103193513917200907968965840604509102350089662614038194968009287805099968827553826281438655919279216226720873837074314381392578612362689577053911147642685429561170609026263306110529136454329106454608653541261405743360355323160415560187059955957790035351384565021886183909525384456032173535472292281820151674810842333396185710388145480251021723247404365005412733485652504860785940060184740261539036280228563966537969654806320407952737542235467678516885627193487366868919391606900925787637696669271431125295652802511193391709958974718800451828311821186410825328768665608194144460815813171148206929428144932224790853847600670960777131926377581594799426385043818440059457151892687098511737742752941639756354427120639147617286057048454121872519068185553111852817310461767328594815878057368582492504092429343598073850576074439353960052486103776657692186251445788525481464050606529527873180340425899355429292470244812475540921541881877034299474687669599518762874223847725112394114443616854441919863714887134712735076732883245134600508928993261090276028456079953740243360151897889544874170763102354695839453059628948553647941510741529141180886563827984381939009625460811758098557625665812697350527343759014062657461546334090807536410460248070580795884193420034750648349442262908281788354947373542757586097909883784268599652182300096286172558252827748331758910173394384286868924179514355313361534937863213583211675955714238247216914002611080700519553852200254685015323599587289589086238276418938296965745126517361422378443728166483510361956854230023001112572597994394202940082980647039463625059489625594181188362850853771121794993418995276186445677896426524571230930037146722084039212190807813317591161342225248910580379599894417686827305148883463616726125807065682637553551959457910922227177840671151916888482921031206165016065233455496513090200725135227345951411044353396967716653609896557634983122116312701786870804331810223934360321490465156998961271548358557615455856369388513413194756590386528981262104234725594141039417079671141685359334249376396963309376298609661494857752637134833575480814019843701706344888463255936976451834667982095892716625511844314210367468527508521620377052156621718803094151119688233531012553273167070700297736593633236930350701212451628025930799627966248529941911289688429560116410811044734046258659752761719625111445664629406337140431252297721306671320686084723006380793366107088414980971404092923152342004556063720505040043268384855828354524697775019173270503471753205994563555426835070964289741973449785368803287299412259086657205733252873138613290618971269032688294434200879522606927043569455182942867987051138988104641808925014090106293438038064527813272722321341968212667032744340078071810735053395207894287429435251031780225292328483314786738840329435824172570706699800752222431397101592461167322541552303950612331011201380872215824756723895258445437361146083918010557929061450121434788114216789596599330611639653377931667295570949173573467587249404213009541992653669552145293174243784509054038052627397385449043526577865981992476555174846323399296534561266853770750471390791193441831770686751488937926896501455577656816525074856631635305325502671973222012107366344387253418445406723902965434562807112725970835398646780302271459890434592018043550091666276528228822636651519758382246098672171859198887888113519806372078902611782440523409471982927032697120357008203718287349210447466304469212427897591825151488868302446768884353385041301938342261349086797128031010923017658244840172753143111451915894968493075726458460139121760370464213756776769112662909746586184771934138712437087638263068452594747377887144257398991687637183429291684793616870388255286042711661012890207096667382295544362030996611216366802635574986823754250121742275623586508390851054647590743642778098770381239234991236342584918052212692392149851573267867829686476751490010750752846472731420668613000025486771002997237276504207584547869768577695989528173759367875143425297942520547181988397255493681646054090921459153236296736911047546753556786454038987527270267520060901612444918316760440703796098770424865940993551422550366429342634578203121727432738057150469142204616547348325309039461577327693392593677477349127727883935883464726056848148523238916047386360479739971791053209713695170181602456738717894216416454701940839085256964282748284119839825696190545924173473608653152620328464144454120660814801064264407807283493474000778019600232543631188376298872643691665985231463321854791773963869839131813787103690146575361462397789669671145289960559713295538576393137257076059286082652923564054338148838946551241395992238322914341110715027995667405045492320766039006566769210264707980244324777684038297582126573062542871214611225560089614829327261868522427946270519319055828499798873048786404154913330650786188897511055437319509473242615370266804028283405680998459221158527415085203617663094875546581538913380348221435249202952712214742359663292003314982913163029717919997368223626472379363278834013997740040503547645312031088220324537582393526785721184139562058215542978659974755957626799741713985384877643259076608116370549449556259190487406071947468019138715563099241002403458774832407910130420220860299007312550748851062062549473709660390940822472951231399032934924330101171488335332402454107715112167620881543251247352134961810878977447808436203891262808191084801304223134878873581245396875254793564091262659628843108969866627684928349869797122369370568824851622517042768273773289519775332556586864851586157149797184899644257126465785795461390901392385320355344199024438563426735113150027071763246084699853652889940353697535694225934702941181410926324434411799852438978535860186664628564716283423928070416647840025561374128710704995895719003524014869333219657621811253929164226518119489059051356641264532117914389249627385073019257923369720079805220065932191141067562229097383578217222894523912608085943059439525209958130580135943333290247938982158231471691581849058180423110756693253545293638368185130757248671341044432014271101082059711213222332908527010800868700551590842849642738587234807103624250234869169794804188118407308711192145837885850326562488267730030662096551207513935060666470696980579622083741095351471718786011965571267003814352231641280836234381278969377172478189148633815938381741803986000997100397396381464580953022292221139251542341449982397021778502116647231875606172561541331792703080368259937483632344830422590461498443178755389211866808825834949149498993696947067153830679960827635859462300186901142806181774736640302712703496616575594858089840920743486971360378719384683174037883128630803207381049271064094480647225449656050289771568674135983691919789896426215855481826675790418269344741736261921608682600218889051177920117113851812588987043970304021884312602615902393094649584657235948578723388765123696246069498152668745493088551931288669346817268040091020590033967889785795196799063667605726367392858333288338069233233553798198490467856000508465032029649600958326341513332187617101021054666237359821913789215872088359204034758992049397428586150631571438114829018919421485587847263742297642002263906671225605164881713469408878559500615342941349653102916008235727659859881392911762994433538100761038143555814150236328401393652760617944891184989919513098358607324919205311251206484221523564980985256780940179518699779403999809589145303918552524754902665101339532153637567736039070874636806193179664492527391746195839589637451552456160044670804062223438333250185743199001977859374719260333665100579132197492489151546371013634996018410952743545191385134741361087323946293442269621067241146513949989148821787054072109918160811458659516939863887121326870505147297017883400442509511647257929320068128023024728031144792234627757366008332893194598904718356855324833675286232141788436266344008062937964789762978084806979677344313742293701060392625713120550043068923006540284002959262863365249187050208375896521524816321776695604753247459896786684673538105792059942322073175110844615916354487374077632968263877122482916344930450286794926752220064315344938582382328892278118440599220501845738568568609378492198261179777569628447057312756740750883744614140515897950889468920018061696089757084134130956854717309161183023536076263918023302973161369694325447768773748110469817306380759725247524417468127394023776968053581027732411741683912911165644733276087890916762245075127670149908360096222261892590636011726273897269967497032655693734072563704701897224586306519281303112748356339106496555632530008676301020706754873875642408448085065107487287230077587590232380545506963981675436311200545353572416437213307671919430659933423316951448260809392745676890291262031222931190598831201974789876462989757443962907587833150811023102891131546190965766795076073665074209703197948314245932176025852470849300599429444205078214037815213349399159302062401398720724537286904236254999962246689204859558760681150090437644941039637088514458734791517834373588182375012900253567752971960256649473631959060938535257457365432860692721976136386931752843207892450402658409892715740720491279355989625761285775231958658125610332788995898488200506433943333668704010394510257567681540829241842080094787462616338998688654582311476289351574846580562841850967909530773778403291127182839008630372460048748170947693662568264522202698730213349398042249033145191883158288272800077945974878923428426658702855303177787370802777144197936058806000760137217905615396787075466889568728487154227642766010287812788116003076280332718517134724234047801102842354752995459044785993442381638419843388576172619185063126201933156455580691833837436329798178108214468973504220822036067371582610504788418448875652965354483845275878859282150289652870458243744982511511433909011478913012155859357753468987440353637630421546254634827026964969500838901065759168108746441114803030262646008229675561850569962000678566734956060240024848723493055674182636025795165348803772391540730608849264332123164365188941518107113799069269737658454072727487249605223831853608914810885616846033436739363334029300267147678826395007231120966824963134485442948514530968331537243284413181970155810055334384786757059562411542362970661309547488494982647652257993747452412766931079076824445474644451092610838419941604243759626831220669776640227974506318223846403423925005531284077613747131965263099079880962255657911342349582931188417689239277924388075121378384239067142468899374938860726999855635970909454301417040369398977100921368847539395112503829420478456500872167026041232366888259571549462011189815028666367172728859934628178212449389287015374501271563069256597614091975131707184955293819129872304110776215875713012957925569296508359241761528971072143170594472200884003594391950682523884709251798955770238189780259901211506189629120826923683075071931620546796961546558246496345610374913022471338500371820371333827424965362962401598029046170522079344194757150156418588263948512117544244172600676508872568632589769841050865162075028976911417356809400041639433797575753355702050006401961902816550938000557013529095242199812000173155886481929875050082940747175537905123903354708550781677205991336473333736518850628681830597258341539483522927016641757929234165654461921046939649663849559900976432279030132444308758482160086320262990325827241111408577033297575427252287745132519885691161964749455361756161928634294233110150898529910893750069052254394898372454728781424784948223899253382622637220350748051792309527272051994393428788363723991715823001174099433998323945206288405812848296351292990358099668068080541091437223865458712418247664074044563102166415918866706441377015943279620287892310078368906474834003304895949560233355186243511812689570078570510278310091484062502967019998661213554969394935295110510176357927303540794698889048324189093274104918197311514947297166981129778795701614568255270912592460472460987235171546627592586393347068776770382627110039376079617990062233809887807042261624748848393632024861466712069740859199439832812304808076932576158564497500551272068575222252279891482622105618218127135762520198909985237000092700018840037633734220318792997176810340811903985803853248906014767254015205598745074164666547361802709862204132853849738860656392991277624375239101163770033174622837365844031070289569589523141295882529337536565293129773141899509003034625517422298424006827048378863379817461884107448473943559078260173893720008181833471845228192681299037708806316788422218228005607377364561490518241103466618498182997516025928948625890549357063191114218015375429117037486093269164769194820258666794757369804288572083444326244772542558455539655047759200964742627126098267612228262681131778543435630508955514537018499535146191172482483501316716264273269289571184050226802150495254235936225663514869839919108371285921819374090381784757113083690052537529500837172343308185618228286983856988969358972593028346488920479302346580635215303639631537883053520525807626617248893338373232406498125210513096246724641272513530536143137176140334150614830673021019626868581549119795332635278697744393238749614493727145912413683970647743251818942831986695083903140816225799583411113146610513337897237035882783600504156170260851057709561295483841300978033785972051331180349054152598178904266869391101350053366587576507623700942804108462497585253766696159171603067198301859191314305697043070009558963787511332331390722477523818286128736109371466514298563972488371348410468615483457930224462084234872691168402867166348978378734493462186608083201281400131858483896062836883140429474866020731917661943157236193507270469994101445975914561019808718970818981097829413797072167951351146772671393879698268677931397736416009278775817858452807606464055075341258960806156774379386908531052377348302437984198474711035410700495480197530864316942083901607559826528770435071603247766225310777557800887869157948439965032782365182023879390306877903320390453060546917840994797642015229115778748061532293097737783819004171325989752331741154346620770891900390777710299625319815641937502418963095151950593425754921726904859479429035650712949953857636152260187016311130696053383489204378327335493420154668431246801838259993643271317832537361421368917350405963937213102411362600494333798034220325621960447103628593162429995680643831359904853964906677109740841030177319639338349764368806328162144026863471957520528712683391308087109258358350186461944959837447880566000003068624937695351413564336219740885017720387217339198055227219545079408550313451107206338417989006631479822307604381742249609924370357385626870971583992538288785692915193959142730842871525465685395571438301833340169804591966563941386607481896635988075359036332532288610046183159572989566764841347634109264040018805227237653334113260705471919685466778438733650503222636333035338316460287025717082923476316501443411365754686069655742987669650890277882376663734622223491675329667612015459687805027326413901330805525004665863940840763492777331702533270428445133109309737378430540597263113395545118255195882456427315808816765271111976963189344337022245343706131337378215741576254609170303423221304799323254624536715953249015352363358391878584367101422033268584208229049539665422577067282030617443557798102248701909807153937924891316054184360155735966495455339193362052287732948194103204780951898333040350132261361773465077113581872436916118871277797534702739081188420995138515976009447441852500008530400602706235065219023196314552434159727655439193110000581030409526337058696081594507563311017785561552470748147119647809300867267831949188063341004652340867036483004237015171743134383743561034748242527336510964888718703522754155669056547539209353759758405390950506725391858165653446290186895757100306091105361633633848612101112120840155663730415072949916173118586267612857407634380736286834147417502973626211210040237929712264195502557684595679885429964362526896867576477672847682536680437603199460817730388111889680153413340345161981036175411986522166169279533849606149165865686226113501763261705644029805758746121905712217453457502247670496944679919388053201685410748315618639707116415409727887780100368837723771443498281495000616758960151080125235526260243305728355488332293002673912343411467023988143990670773543528880723424548080500596758220771916501064804468317356101566539493564486052949068842546505354027442277040049794807268576700587474845606232995449112351704019415609321534168700294491567276950769248134228004311175850579464810988281706654913736846813598383988790837566712509177688835209454888810627619888932167607268294269184374459972939797062353931619712947112962102670181635097387055577970248475195349604409394365327874404422737082641122485300479785931020931230147181003695213751282507138391147401469385798916613581834366099935133287751541756929335364071765876263720231537459861462753584776050017990102287604654539671293408013565985305034140062881395194406423456968834702729682630871263269597785313235842535989416280118556525755349055343189859766762834840164692795530049945195538863461913102852382937950732058280656766201334259044892365386264939747701888177220943699302553605956941666526180575705676355150994021452302639219109998826027860393944328286461675670166578467761915958776301685398378116794016771968211817612521642218376691953849044979063457901943507084429290742802722927463770640349894602350375870490382681813453649638574462978663856505304707668393415835533341627877976679901403856999303431857127922580351311481830214466613627395287796543653397259837146166865593573393020657028022085445731474864797427879967725815210929136999129249014041773555254770661092565794534951064092185907865674115949224825320427140569050071709697277599427827133851119858127221876437499506585449175115588969360076196832475723986446085223808965643585078722933431993993230975266416906583039569601306191536951111755902093719438495986878947570151365201218886282324545521845774338607875682967908061309963692096881135306225579909525808558189986982561907519007415868191474341143074405940039959427267563180976970693928759259263824118277518093880994542384586888535458524685222266760842108228438771297061214635911957206610709018650229151203894448644849178524589358074116683602806495082029973563056238131145789396716612362495424720744266446100158355516312451026233102743053672899923671697757244336255523261959642022157233145552810215457476925406913790707965849189460201420382459537622176093608324570355178850294968907504897556291551863663864375700875216366426493645945621187276891110136784717827145333249688010283477712250965710511019949807666245803066829093900077572363701070652881441913719303399116064315804330399856944316930991234566320067462037483931108689816783652006857672306021430721701068064629763207388343031218837138517541720622677152999839890221989505275353394012538898767763565331942117761743770722418589050610992934833660570615958506713810069543052786175115960584981718766048843311578208809347996858989835503758296306048724652577031139772941637428368324641269829635164976583020513357761773851854014304207675181753817387442928917490267590008740074125694626341181402463496309896409985685753573373672733938964116494794284105892217171367100548544611181844470134061443004549377686047673028497856177315877414842461329302001126578802348001601753417041981683676877688506840389167193313670200738847771231136776407122367965480006362534212749682212512513893110516110500816506970097469972830794444648252339676525603687358029268055237585464239407527846089401371643579574277237171554503314068426349055315548192343641918698534418182180749823600739312223641087576983686081361147122686705374642704424696177687953812171338054496803343431138585452779598431022551595285818237083067005267562087762745223958794957744422131667296341838520747412868156314878879039237795174405185387525069854789217480547747879974863919885979505167698524794969570012950354823367648864402044709361835677096910317484935599138093860831182914899636263948889752416464745896916881165020106884389017015575502352065318813327889085416609607251479135355776450696344820841185455625247716963345262711586277696261724205049816570530709484357993334167041361696300984652656209475985012037216097929978017683137874715857570509007205077988913868774889104999687178029433554680395450839835799284268098900987908236051793202118077295512388515229206040291573423172296845678277335956724954568835052632469670444819025261818951460396220102303707819887738538459532828038268756781134038430287954413671265303190905085651334740121951332628240017320812171777435174216819073321069840727101824581076209686058775460648122685916811765502562190791652319992760020252905887420993894259355265818325190336803638033397195378423661944969759248311483528698180046335059214214624304232937535185015362544525971882431859539328240414861650366821802646828403787688084243438772919756963358960379479208316243970277771169187799847579064238672153821541312252096504589443711451201534280758323747422440466969935596488344166877924042450535476226976214933848504609297526846525739982888618207665052418793754020377633723837128344995191384911742220924836618406817339846255152989123247036792794162856918411448517655229031279557168618320919308313300102472396244024416117412832504742235776951960470289685421565138831824210436563105632877387101455809167851251644448411243490109284785421300552587992379927442566677219121345844033399793144008494107431619162758008854031089746379697523300885459985277726256889426838023809958398098636305820033502862032963850415617974714772597955087574924285238034873114142198779915253937692376462890950544559654491434234569003017330980741847563579835376390259542975227411824300801305056786638361476639301607279515049364356136261894653665648091754390210184416334493815052652155683825235588697302421640944261220597549047622948687825483627502941831266354741467438472311857017404161763051767797009475474269118898604468545004258081134405693406161581406137972928022129472254038676753364231195135978760587044736452113232890867859301914532241754512887093117941548388101114511922828848845570852533155571009985147614707925836300644420428363673951971052839196435816433723765036276190559829117362668191341834156856021150757839662997887494289206269863663599345065762291413830247322799260832147085147840389789556632953215506975319179720257335158902613578954647784173345665307418483435969360475328806362370769858217147057676766087262599387446560320089358990111583445595778211161080607401541435264469094891343443557306509151074200564891505770955044438005486800971114614852588060284407718647363551687071740501180974780401768719371747286517432129521293096730386195898178073647241756996306944914104844518091667401048937511170797178695668366539240588505812175918709133884530309403874207900225248743951331384642942278989422563567916728094494736605732763267546804214841359131042873999782352545673491359538699815835020350035556859343402480829703369636167010479968353824342507111279396229716201811839137119312352832554966771192497940743696459466297446743761196489874307184708970667635056465604909698027798690004224205523973439353119090957032285709558944071088194403919625740102164956653518020534018378787230863131854388913517979134522110167323145063046620658891015923828062403143023584605080925918295983013366638669609689047479164189779829510308388783160114701905342623787107709930328687604352403210031444294440107996880543068717225599913156169157321388287769229314334228938301920303582202943023343844541854588668033861768153496218662640465867455392548083995009444334072412933580169032074830876240605575622151614068572563292903954973876354887371837610215129915938406673885513027023513846915836219378302443618683377459776950174504283160146196831597127411301067702612447177153013586225080429681541274676791680955112435846785412843805712751995190007817286800568098608444735503479547649146082952274521267149143818194508607090693638429805700560958310041313790275613915357159450840716871647085837151000977853594216380616715567452022892402329947133979974539990155606457442373904519684575302759457766116993266950375287628863722689467876210194173564513577879723355732710444584418033397422323920828537376251695709083774544392698156444804240366559828953917595126172806339875694641981523615009505152402598933641267793927163514053659486443073145944713348207836836171808964690377083411568721210019031524950684615758340450945055736704375409119487497928153021108307055018255409953057496024528656290580878108592321810699921626683582043181734719896041056626295280146703673889606464919162414628408357681809122420499621918782720439282227231401524063597190327330780100864234962434671798936989472771541906655717106852809423554232005002000703101945913972921979906873076320921699936550081497779318566508347310621705065323303427374640788855496457377556076323950610888818860141556840450830454723125040056569892778157229053141458578488750333670998146218135865695920378950208271813730255304426534230819309045828067091556256792286396101406437158047093037858631996524317859445949262216822027714195128974610984194671552950588028165299150950903270688461200914909555137758212784783713444280801057413561951218804790585847888681892850614387173873771136079088743012586922247928691740707075335870593846775449392157911158196484805900517963983209104413337948224946128469017046653076001158713078607692462312857202125966874466173577187176287639903411070063234189495709165948097543262842671150864545066112702380135681734544768020261737785308545654789434714207676408025801106614420659427185230469072031670107818920630139267331561641957372891580521338967103621669022901725493014471041070905880743723076714623516366842907058275200997691566958737882539208893885023379998514843473402614065123422642700501077570800285697689781021590344216247489423761887762803548801630870247966010545566610658912034489717381543087547805548213479450962778553739728355574679954428587003528647980452668735043299995380923076587371620618251304028196525812896839939228349784682054047532587312299171853022854648013989868674847295256593498979870497372725366319354864975988187387098757613874845069094923456666771812239339208291268851050453809350681669136927610585192997884509116376702318726243953910301542701537026904963818783806891114201778866011708168368987474969388797055406979418181299926243066037174498104560580134690248827137539073067849558483959617533754303006378226157550723599361927307829513049058106690606617518806913713473887084172771283800833888292825092540247110236504771974132230026126896629449285510708339560105158748539321209742460187730060106911653804239712890198475698169862794975351237333798324564388582464972091582396370094138783966436215169149433352095598837382209622821206499587184963106974893743705101092100253721657274416968518569311791743614513695403635741859189513214225588496703044049334929062889390435975877759607548578066226395851257360550470333053183386582610502164671247064107724743763256473994087784288438551571768550828239074268747631852357634790014463180734675994113744703108675337395121784909507631385314023617548777594068826727371019966151930618380908241131580659423133881979647421521374858854968191523570085815692014263559859849036034623004066230901893977499169330122640376337939749935127303408810020712736111783386836751863620739046438275568414499944083610482164796673804040975499689899749026300316661067522390777887201699652258798858333339890409943477902594393851903593869787299484806291833758282664679180454374502940546527075556262501707039242648239127624990161755340788627769249450447470773175491674630132168823414775706673512219021880195773671046933122825618912402140892996447857190171565770628460676328360506455809862500105702952036513464584626488661285098533078478812881394524747380548729678336832360316503000914525009163287896137151134766188216517166716274099947301595853287977561371948479489703199429432664670633933815304953444497656240404147173845860036146460071921154347243376276815694439042615045042180915948044711613085771113400526029962199427202365298328998773229166681875503189381433292809280297111670538284893558850699628633453388833374039660625435909446769819579904533018724789541170307999471596839572222163889814233771984819704064194357859754162059258231714254502545023171153265897623321401447290651293117159342745063572080507466020790227920889552486800085770550888387873852460428036837776642992985808263207875040181169822715447710389705431707915728698564683527209211178740711207102816362550635220836190069981802074402377481967761256819657927863494477033585451397090806610674322726188270738096651650038841550173730243608066185240474457516416736001877304457544765426909968992046300900697937363462486144802597409036037931916688555467684076853608534045516600911577163937270644472553719817872409566213020796197350375710361017711920285992335973069427270945324469447578262044386432895146010658806394970186958200845785895323632842265059274598504966717089638318793572370208106320610656547855952258804897285159396884134806655722677326983952556690989931971750066652843853782353329655547929575096275788764541823994964939649770909743148446403523749123704623337535662213016488836908655966628829948249875957084346354531552721748907941580173854338638698098489090111425139733209325590410260283121532363104588952908735118551327441519728441691488254335566604350575616815527519592723164838445535734478603657298817934576305590730503827232991951366846169812136861636464149298425355199126287034926001747562170162859408362523793194458616757247791876269430893550045374941547775151915504732794394919317468845366523601928190902593333587660357702376715441828535166121996233280404466635740014135340700395893822338659197535096884842878873351441311983677805697065355030552345445475374010633968047469997169009737783662102935322620724882153858622722314415215525655301414098082341086600840074669187416196402273713090764910919092268065363927455747185389112653335785281486259318821270505196338031539667741279632385307196149774667038459363578015799085193465699695864783695946500380244344038016333522324546403738155993773180600841006679958881092994017882120399255850957214266138024816847393781384777791821444234460545649780552576525243730822442047370648769758619687949307733668369891511090618860872117566118572053630692098600976260860473651439100267119004266792283948498230426384440417182484421526430585604865296301572829388652809982927460278317200086387549548870148165221865607018394881679504983960396966690494707789063475918962465284009804220261842464611220761915121739406610907379447239932357180236559452074843605152855595526907051104501562762816923214638030500687576955332919053026534764423804266375024980767864245735511608382997590859407408120431256348296331884668346477755147296871320531110318268776866803949670883087519131856191974741962731297652151138587333867036182284326936313557192689753409682033044463729993091541595041795056008918454447549629260699128650912060991055978250164172280784380182492629624644388345605475684493021129725373604282953352716745731148614357744252191389201313748411908222174528198414398872105715819130780511447701806884530388243290929721170639159415732435363865660971477122881733817339882973940300808664694191784078229043997356665719989891173707691347514682694932436093775319192751491054317382142810996850005716694010110497762765369227786302854242062738268218230101555060755204551040166822532322157630269178431474212176480858402345048869840852244038760071922563706006334509200211496794961136088008263413439086988556704987054734134117676362722625181573766508924787453131682764847058342090396330499803095705458579731566703663378932272402408084927665631206504562568213427612438144416933648348161416916906678554483814857962618415841185650626322916854141838875734007952541443723296045918716432346760189080937891100748124225323092353332049805609235860687589294244616303202951896859248556912378043171311006914642654949095052021030019248499028309200246962843962184926047608272433346792412268713525377721861222325182446671538804166955417604226350205581723246400174178149653640316397671412501040850421019723130794134467774111314863344847180430643770650981687002300238430628191627613921104788317939434687595032260243594608980004486906662719792232441622089467696136275777866959237035173480750124755280880364487841603102809770622645236436338695735246752940966681983012507741296633931406607161304086052246232108612241534630153657614800295896850634182499081261400968593198548443629610163712797761275948931874557916785880361908062932264570385299223265433413317572505571738346470542718910695412618981156261195599195865649374069357680921360028305045217177083521856156662546388087933286627870085057974557728641837404975796127680067574404343927345015874149907294980577256773660189780733347753082681330258976073771376741935500226801798127644725896476882255199741019161020419126505065574215527979720906138171571546225078801519324376680248547599481812478753414662617068937406641283986808679694319098301593705435233892327488329969286212851507649662454318483202469772944433096957756913346328631579680365333288873665016854167674664583951770615215538108482399875027404198163540288790258732734964089144586877369175620796334831455867500981252830389710972177814174690230026245402377966698737233728791386559048510382179580610605934366038908036001728423388445148417547583475456097294585710811066795574640735404633253775704102328511062672672860285382406452864553279180208273322625490298483218020914776195854233690417313252684813704025378312741814716719515990209628944991574709129264873974698825049783981673325443546779377608389383014698082164394219570026579811972427086060446221761799194449932333814635121563536932466631230453834421216360626296929802194106005721661384979257145426008878592281700026299730460545529309925985291978032412307586199773501271564800314192535860348895319589052529883857827089000066187171836499298621565403697553856518401956194337236000134500258264999773434358845822843609722148897718247508986588891217155759042472221698800459191584764302446960159407769144055345929461626764333290675257869936770690281677051786528462157787819748312127024540977584672558223238807320511687285491023219957872284732485503195627777642678392969050167940190135649009687890391851282378650006733374419100358462124333420793307585110237440171134511664164103534535303510678966752476264628679078851606917596911224171874158851888877569724762076369940205308222623804507399430465462428241319220773342038956586821527290140834201025712944096955123734319914541403122445784137833057214051867379191254049599165527233955115359047660253472440459939502449132805911254494529873189902971796158520812289090782421971153905882355123194749099946544683734949199363642744591756488324846436356816771384855961355218056040118504616843673314881906283002801889661649642343513078939607778383368162286726339833483261700147008328174832602451009252645619975229582551276238742747437721193127039492395148154282026130307333112871191708730392213968666588079547537472109337914756085657621004224564432205692577006557183094633567072820011388465725487090141441109223833352124181557780052236295771833256259138492731086585575134701406849268051683793744599700573193171697317916462227174520739215817615379430605204356041983988586080145779071219725446254002866642248619073051698823414896705982863325405316758067037983331407128095875598733712940242284531701150150314851719121946998101584711263612592746736043510023150504436506986143522593817227326035486809485047690070278920105903251555687198904522452423526754181779887144911402652242890640437634963929714557546579948137968657768806232620880784984334360599354199995304039962483596861475606536710280278667255088613944646889641413958448238371353803763640813266460917884234000650843708124405171683946054407567153903768325545769652740847300272504749218130007069591090158953445182502346585447753323336661546231564694569412766007918094333864181229798193008659183339425107990296631271579469690016134547000948075406707040007641520175706176522361117540335414632273695345256817168704759219654791768123675620210656454297874486672172647537700322794753589753509620638645141502581536550321392106383575511847950730549320089502888894150772628201887516611581893955718926214662580072405382489129532942062188683201200213515534242686988605550782974487442617342039416848952190425168283062664232455513491294748052071516067548680834558821831651126627992870580034883547614703687062506727827765725782056400750670196516746579176843503664437981700974901365942034893964010732776525629370863614098295439784756933450671014445613934178875853300444826432922496920134958844919191617276579446105385037129949326978441820757152335192890414551200227522560617976810995474035575439865671634489061556158722038834829854773117997125904956927762018182397609225967227614666724227161977898537158201793258673076916740823167599634574024676216682194110721739856935590529293720629200819491282922022953020445712639953779422562919832664708277931376952162867569967542156853655566891895392037550782483830673396761203490223542950061866526261131535718609456630879509150449594008063764453107922752888417637060220537528929874714727423409155977917808624732494682652413742818474074074793303717111856347077012360411464946238853350727695405342008925621210251692917643276793683125511621197376947710781648772426645046532676580383280612736347633772853299728774199902487571635453506753684794157410897011511004846332808109852880144682562452803997834538065677397176473916756310243538110696398331236881729381189696816044727705562406108775176614457193371835249512496961866731361714680982759710032042939427710240834544585744921775894104915661921268355705389334533813460861550836351220117833773619812607993799154079665066857506802066378084768848892553900209472705150170944892726623677300555917150392974259072377145736577453018921030269851263051830331949680841885638680158260648697099017667857100622050480674132886650795700673227021647036504695016813941695556190572067314636830442262854000917648369572406090785343177141096395745251096183473418634039044697512737117860296751855147650659026614752089479040822331092567682994686366070185521980856254557234080321006592232539366419749880071784209058687817867871443244179107123404127557112019127749885592773522184056669096896458784137519159758826532144183832038248473066010622985220373526665260023551403330466654553821814758675992811899576353779673218980004258940356526695351529038444914805983541037043680901006496150088292204158976506681841021267037506487393836230554294097381560111695585840387500867111780126102980874098447885522646722085131470716670804447722817495010382195332209982203634214426123277890515352929265656289285498325005912890387215267625095259139674950314105744308460263656301722616747126634055604912857199266705360664354229809903880726018042347466862851449555127926854056383853235857786781881101386032077212616608800594496233440841254257449991469311247283428684880957291270034067567024381903442851889198661687889868925415553524357380250572810549108499868768946637589584855575891653885929845128174356473012280141575063649425625390670196717586935129465149104049950661691739331607551383989721721860008399505040293386894792155933316058435742672614703322810524610203786331990638093511641933566133462848825102701013677371642883275755255517854676725748384308796545291436241753545142655171543618561811529491187573965544794311084510631524362012375576495197254942528617665975225094245469303900286089283667125198948743274324829668225414963038347700719672119466163003606572099959757789151120384323138367296502703865092998830072535995675372580049412152803779827320435260201445774301642175086537893761609333177430811152797325904839191207616177464636691346243683755836895591074641040366952317489107251641198205531662075723315680474016033777370120277173463320254625390470009067522598357941087768106779848395232051669111679475690362291941091529727511034206628237926524143193115833660874225491538496186292802061263488527302344756604455940672267733881824727070280751281129091290083452715148565465749924106768910999064652661880698811501713719721921358202041642752654935462263157812512394021332020067254686205599747697208416667565638732208248559833980909433374858817703758001977813810134998814485855037535004740035669347972586157083206840396298468808076601249984171220876950933193819677870357081275792202264022011630431328074907636989617949713268007501439647425607613015685393604616554733419063049572501733347608772089683853611294115174290738124544083224421280400649313082279337623929474316387038253883107694448692469465768431925340101243687758199963271619118912831533244203835381372347601252116522379464169178363577285983242413135378706056704948791665676498231876795974921349555975115620226213936515650221404820418942339896467027350994836063029495868509016611730355852301749145769213350805161194590812769617704068265304125818808841595192997290421559163829395692090930100246572845332193848059218173223783643715411957992619633763708512082653816798021799206220938422357112967962246458119676634135574982127336960310458057196769413422341037017207598394250566656438496868223589508377188674352090358424532952959954273316393270881201239899559338538165539553357610645272144949481318829631511845420392745896656369429769611413888878270662311599506690173096059212231233323343589982227008015257165998138659181216192168653504490423796122835035750349276507043531614040228820890995684429603564923350978354004050576080038708402911950304776751166671073915796534807816017246136308211213738170850437221051464416979346236569235749492482586789266934143671389272861438649585197306078772267852186979852259088422982832625318976365574916115097379899779402551444195435661392938999830239693866054065733301714027130815180237108752087902832060482439543910550367355274024035243060430372772805117897028400085645862316841383502804969036769562627663505417314270133655512828492609749919409294043870213356018320651095875794337450835207612446443705730609891087798230297173062748053662903866649130718768792705222122428976573076273878419778322923972275437683220408825333829705046130993545349107344022903362970858856380061409347694719355844347478921801284312317861268709498372097284286186057390935403846695430173944421138418541952137474336698600483853620348033296043920299164705066183628961511350905263703556070978758280991578439182015390625393030933584593321902044651436528638998172179155501634029826995278732619326167318913402979414382309496426282254601071730439251183154454255081012648953994476299049039769436745259170480187227506344778754072515085560728298693179510637439719348699224466304273494015418680568425743040461553675231534126999727819743291919858182506304983040546299019124136554542886671525784025782338593221087112662353184529831084261253155916766754185811706219023990107900988642188303225077820814973644444037290788316617524053152056845012097304662788485755641329926625947469269313432385393763262444268687185822344586110850472469733075466964188869349444229045086801706314855453401459598133710337192678515278729267059943910942395545050055718883607640341531717662848859508329893715373167958478242758010764258214553318543216416127441834612704213094003780132935937079954495933412924551589175744005251519831109277730581562158032905599869352951838230189331630047763817895548834650723804126706097757943407116384092162410579369668257684595019247357228310848525016241998325445432875396117238150350963836165261705659794204026208536975748147247874214390140177633877907388629111021352567112481129224027646463781273143755574464449352935926661448770077528815258801354564469954481252796487251057602147904321702567558299088219765253589321178487578628555362615359452974180731253843735675493260569693450540425189251428290803720249756887333660303082534242251857492673931459669076281107260957578755034833137027161701794391267182917487189243661543220965015497381891316894513330648189015562857499250186949766074068662516463568928852737024445592838793380698714435406716794270862004951905305376962259019913850447444448624872197198995808403697570998048152306891196547920733156973834660770708797454666342963263987077991209726571907272715223440135936334484953216859426030011158129973101054127533807484800101747608044777343573278925554743398453500056594834947314974058896002953385770257169722955112106945089050730656631740451656065545845279533062489864684029941588533824618857717375743525623678484887291280387814951518386971746063822790241589526181938665514393929761788615461880665945528656583792907159715342656271119661759325409853671383367153887009615135718860437857124323234992175517094002045477324526358961865662051220889114615806083536387466282427374016456657474669676539933956896250573345201741450620948705304009611711930301986489383977742112871095710799926073509259129004368619443316423844212936604947166484966542029736803182909796288973554146521742322414136843172813686415475296117074572356385948527873631005352290362490593371726918498232381861041237230474668499998205475972594650356850634948690327242572841891188946770588894530887841725161063343466765797867482206585586654395122442586925245451491954894646292028868479175132407497423972671415503006444111495768074641894673053125640531806350453853612715242882390812306145103381220509897093723844879692527410671179307908090487232326862167099579123157404792574176701970351761693612262008309762420835601158749397440504811942987456525474467978536133258550819261647460895124432725825768540790255499111859122765045506668287450282876759696396159599267893551150867087763481454790070820796528105611429881262597402773246886848945281060802342499567552018225489910419491318206049748216837679085757035057720627555371726918841325727106119294349876617108665680103931499554359313394086318402438821394360251824471335918570129662836079301170553047190925478171997799277318331808214559753385664629881317016338044394804059299886068212403784832334157159597841376512893199896911245713490782794042381838654849870376853776341648715420302590095505614161641422931397506453583388883005162116156867058283868583410392574082890838466400714341828851676626622366600554961852386696410343039847371622409767128143471816888051751937327416625401989255328783787042459567710038833436591672502803078766798732128512777888444698348888028079685302565675945852349035601453854548250724757089072004947447381075092011213772778845603907513390525710244545437212364333066037639859609695600368692976597260267340769785451516127482705477046019346084541152096233606878620422667264431086035097616074990482187572694175102832866914769419721055484209554620938746421570135203716446658244081789770057703367369193395391535952751580966907100897251442984776597208999358472484702746855105038335760756718145896261529420353644341493951281258753280256925891350286929700690411068360248696069520901340064427567620852129395088083848428213050829977539595643424207061570428478058297940739419135706656382859983071838572020840719118328049989759191730337946406646709664417979890641829984064594621792626659142944791685434962696608662818479228537671076503020895840604600291085478642911371587770475341501454796248268800529762252886254945120072645746669576652712898794853889132336882791606860284904641546053089849462854457659169459667334934263385500969141327464669623326492381016076649865172965154526841651022252860331358273523748193069496395408703145804047673308099518444437296834860931031370873817525512548153005139092530886055158293139814288604079498380346738764564138726908076044054682727547303706731012201149272810219665802847677802422950554000616759479728601100224913874462303547867259152472920436307847014628992326003116298759985709994950999632721910626754648642196852650861831179592696257785557206084202978084948085718189049073918358404335273195769012925775225502165774116616460962431992953178548539488679415199261921638794852907429933784369179378547615959214483956327157787490869926398789445563681813938209129479466771854088640902560700437173016220045917605643873136821906130390319455330136995518813585063978826815975091108417532186535841233041992981551191410386436465653656667770882230948716482067213138057587120494837881012366097380637923131600300361637340961742659804489164408453291855780101201375978606236895115680825512244534145700064448451666962101247770580199234274349095783429351821638798939357664921740281038536978186809528477647190056571888521285193276954937964246985459752781247713908746140178759591758095136544279599289182961979173638170144166827942825911402872379629021810912384575437019836072928123760125028247090201485592808101478537382276701593335248892716333708098486699626694773406106664500763360914609110114764940964686313672050531241449248499963363232715689427816181291737849290949743691908421476425672686100777791923424428084176631847013817807885600894502961131970381711096823375554691774592421590546262259257328853434863121205612642643005987970905719107394806470599672558281073989909390675095394184792957942416011408500586258683142828231365925736920749175573728505649163579007198974606792465032645517300756434865824574245663874971503532905537953875074797199948607733660543698946549471451333719434926267081856001028914815170746145383875147392473516872771529326468049509606268533813427618642144845797668590623014938114427544946930722799402616859697732989376552399302655209915348645207445400656662063248636537939702294838400543106204732331013950709459229689861097110948726480675406646257989500146038053708757843797629544924920405966483976015936857861163771674874424061702016284276967843552069442442792078362897269308433804758629519904217373177807266714393919707287981507971650669855820843619585497648146324589583581918660501192879684893066992346141876805884900602622368756905081887962694442963600072200783772555010916910545902977202119829166205419629961996215078179152965652347953683377691808023817865183314548916733628350112793556792604122705676453074018281788038874548646631822258284578975962368617169655654478169788085035320569814221706165015505750849640448037116501444348305488157067128541116915856450244522319016130011391231425641294352775572545941907626642137739685075199806186075149618109031882368070561847837729384555046433852875641918734098514461753842273349616042077118440592219967990717436167786131826726552279983946387554748131884615486241501096181131065736138679223679782680006111528204634889368309526428081254644451290150132628974217260020003607742856158556263472981192503171215140009970315244879448538573354463018114695366493229838381335826498528271230179238031148019628902095642902257974615076758089102565539608513875589637801951307828803698564523237408043462443262154708025402706863002763463025709748753358717684567493935965120449165349119356419486959114327860735255318996643340852709247307136896561908192803499068170819990606044498496153206133275436160137265498550259434775059463435862693225567553634267177382611182917053933820908850439523287317790354730059109380753148772768160639966727480936442348104848450048342608725133861524311056262519991689723129558269685641286259425120538382133953768225498709347697100041932923632122449446084784095919764583437483638394484402766258245254773342913596653970625156211747077149117748627534703411195132522446352164848309182940842716462452902835021872970701000543537649536495102791952938534959639852233549631642185523499740455116075710583014851327427007756747440698451157228597599636102307807266178130732356357167553742881653509923164969671224004743958131841104995298723985595735609343447938117212276189481123997414502824166383673922249868344810842449660218584318908006004463808328758274491187460208545828588757529809610671704804300948828139599421399320881521962135102642849855926366801797922753701151768508053158142260028184413338384937101547470094255446932145325375417642789575564030821950140532185888213632048941644639999115411045368998830289731947966160267251526664101917681016760176329330287511571904910560302849022434183500283097263175968513287972935063424974429635204297763054942801899767515198383086592228701755116222660116083611769848685914646127785601966972649984364414552433313301425420834098807676488282016576558732623542147056880860082096454564183689738648521183513691277380791631398478387295066068684118645353345189147857932883501057544151228703379994680488977168892636438201026178380903214894885102689022478764855069992354106027013580634479946973029198197294559915783068218140446190588727267700644344430236408810434975892413714392522114718938603030004924356326100943947619308492461817845569966804239944074850514483777841890662251878921661305211657916192488808429782848244897723090859229448648736647967490636670445481859806202659940616540626044069614711108692879937452493437893715079003468394096594203366756327127757506966753245372109380622032211489122724649228383468997450638284989128363034728444476957459520492865687290221680623682092798669597183499905441714669649075622303306342101551350810594038317127923867684558279586608055438525715150557355882182409993175449469033537804219802774625220547096958209671346147131485248487036566570037188235174352831211955239387701162106836430527204878916917692971241185550622319184629940864440681861993062936816978466790641079520898363949766726709279286466620294898688335774535872567281826337918923318018703275238803997304516000055363632416992365256073199607273474090131463396742900344589136403160318997431440015263900556966112560273049278203971444832583669066661762166266951976140608262770667208148398333033988000837151951850969580227850540012227459800098640314249767077163852046553430413805443074490688753659950221578809055102642418083552000853003483859548109721822519477426310779188261574249533866085840909147532560111862127197243699968782440487355436992502898086894724892761883988001114632812118253913135742100550796793391047225802582850825149546698830142070600947556660085205918984825078678713547203592262753498705426065709801794338797690365101349127817907932718865076163967175814204650176025520531074787560495796300088658612328046774589626241223128952571798008858040089479075132588637072575324119281868913989225549708049155624982105514234292819325709270973678823387208559542949268814857289620865797124170296400946535615826622737375994545810523881738577752754844595556410321519954665995426557698315864360623137149816139790808686049076758344301272971291510570511059838457403356460965932412131077155717684421423980548830098436932626973724633392281820758528012005015328085571968211792481892416452166294951878333672188743002519295231587605402630343989606536885483875368012696935299344257777641722359656349958430259073234663559181334710650267438184642038147664145566698140891588089589935557043106213839266306913508188976318405787353746095551058243456231174000228481755833659158609446685854378752990160104109348811231517948969166986817316956196742405263861441608269414294927111638669653576219944306972116857250129105725125734872765631137742004114970384510128261859155311191602668420551144508918009235969290169580170416180988487826309826463232934552285343153465865137157191768677520050803731631606303950819627529111921025548126793062764078953610928281259185318156177442206671335953335384228597234535122703053604129937181148496494320399095494804231991391034062031161885571655388596027183089285771175888797906331365922101609552489833310252839188015637329568817234825799300688343486490526526234473420001493394840100328548518610649554861632637709938319904961482268533238263888739461660378856143766306995907455370891873682264922543473968355477842855338689089836224497615931058185961535623676026664611423673964823242458572730580899793441492275675991851148401911070936599148340504795807620848198211393029759397754525829570046310108350355533080272358758960601828099439748705914667523629389290093428868797928315650004758635315078669975681857629450646122902035162015538007621855469858386719323449132907377270312735785835590863576292677566601497573767005307390377604953027784380306755569447431902775518854381520527566462526681062572264113330293923719583289844224754818654182128256339943317823325254811092560950047515648287900086013684821173106631820946628423474768277967300816920047844758213270286097608633604670277407131435066893647358859587637682651121894357923834018254212514694961101518269451406980795301291103905719350795031432940914661131524460087615099868066272691469827846319682831201111218352644963852316577817698146118234045955164453258742481909155769273529019661605039368093550004795837023594612111798273751004185681407906915481648284915291461699540672580745760664449772696577487273043747840911529281409970426512126684248244997316285451261957505040132691758238418183409963912852653583874442653190172575312424846428497421909462345507067816252964221981614576345237940213568584684632292909299192626263277368871346577336178183484891541845531500529447228300968339179273998741440087785205442706800942445346217048316012265335521420097576311029102103717549350310209423990946623574487863280488230215522299683364893646671543723753011471942384164809630464307254334474344454880839812019873712447932005299911252345501444827989677220266367869946132115497993998124477407982280427690401860154117102132834525007241210401564048540434124116152931087715975289463966651156972411822796165645525827794239185799947360432285735340319125058534402244422857853690620772468914783594154113294336178745344697989640297680296328695457382507977573581724754793572239652302358457442390915539004809926849250022659063497323535681705412408662586985523277496568998855480291961699824367886335887834787123533268131689639451889247563321920406270306997658559134965573306792172286550416055597965096385261565821016339727358293530450643221611574054878957260906354907156195368251689111670466812715232945504518524956961101309865505115912045031295442595399657238533428736323085648484128167118792031405550093623669074771326265799975959819443064871910455222796376833817425612323731816700166424254393730156731990546668508728762331746423550363492327614861249373287493800930951866256084345075402254873978835399110869863309790826989104873797865127641504056429159132658230744523310799830287401656774944935142764275322047066686585997419548847104869649505582712681798506745964924223923209501585819212398866784497728146707452690488831700840568772576288905425951330810674248746538349290118326497392600391670980202206818890911265995372078917733822744436743545706016724627603712222948730400741383782065364892649533314953882022449369520813376991285056365357916743262316582528108178224850384356898610043802391311216102470196888653436584452106928652256306103056775887260032034438895508134020430295599207115497752957883945618968192481400300226130314445247662327324760603911776764963365607347922341198722446722403423347756411081158976049941484461107584502100571589334556814459601619765197180773732780743555035444013153952913232933785102510674404488757492964702691150857934088857483043602673282561492368873836171377022716471385274157038094409255528886456886964961647898636458333835995085869206054741734077443632794631617301978893128939650386635940353958084396182264676064037986807939055841706281146705821517251602361671633272855243969093426542990583339312076479464981864543986330990536058121599957131898911331095687508533969191201756349884296826056727603063184599261400665090172837508654547182106545809258146946676868859213372565188183854951574910795674315306469642171601234375640129207146426349418552436515261036839757563333679375459166971107247866702351348698223001737415914282523331659399288514200722485023084441633832635853409921033887400549443401345596040382299188484659116377322320010583058707308227292398275411802348332805450795196223489217934499267265161593112911473297149140453113337660497232163952378300913359450541754345558506553549173134159781331397902614705209160531014203046990397161066999284698434024324821566829920520562745226889359139041378539221933908615347252102881688639725631219783075939197040235194918138842042691680564321158388204423696512178073844599178610137618853937012885108744142858430881276688725601481859871745518592236770681544231007498557746299926251535011618583887457426895028621038062555242633706676344647183061678099950801655986079928912428313895830652986799295670762145206838702340151744988718822419591648554846403659171914354056205769880416936222827808972284108395687409509166149364463570376203529128110729662243041483748981685013801448740136360618426974324563755011601902372401774100597896952790358583241917499569358257545408381927268873927550674527645111553045193962992100486024481560464038089526954901012213984471433923055605509972276447890769622514094635687134384978384705774449419303385482381944066007038452886656392421682486105856439416259369896575154207068313889076311026275455474595991140442635789207066297803468905885867296462939535268554716780442340918765281854109905739169477137736580851891918340052641218726501829816805409020667699372501299234289823537703127781766542101151911790766923135927060905331451586441995454545341545463872627551207405967159374207494869542225715872700082079444349695785346587246624842215283890327602040788542427127401326998877576332423759972123723561100512405950431558399020844851932288403471873060975993513448084917774192022561952820659834968595768600210096419926559290722488618002774085686190711433821522195112122541740649844521842569179371275771384697453016980816504179551958842814326501288178592262447986269061182909712838613499977558898258995181321719496007880906430542305100443174468296471453367976346129102400311774040429833533743681901235196194177647066566152835090096135035902930576913410497284455043697910822762369939837757280644530743635706414895706795453282287488870346951611441406651754250169073711991465150386863809430686363598813806723966908023249410085353120608597075375782464790951476596364069523723197295194200445208797279781069548419686699704773382266839053885930704870445921897611556450398915373783444788496836892567089793662124392978012745000808961964567778532548117057077063426896193732250520483840860251438448553251215641889268478137408118647203630045274705873271467921336869378221200720098039061958348237450055273013875958148008654887652459310834998300078526353899041520593298228741744110252211694474326199294549168681751347255708335737111485699262213672982858435374789801570738718897450290415401018503123865371992150237111141181465452822869152874039498759351103964395035491843780798524354698878430650841948121966373468528052988082866147324752717715136147714917575850443808777438024075806232519015558917760581951491331371956777238271543575330724774769291257937865747339831405218858151045348490277431418125332359793492031290509332416904405791525240700650617230972034407945528370020535722799024220368144287768064910558067389434622435285896927566668364317508679716667000039122399080636671012487518979589948302693855059212161900331308918488068799943802645630215486159196297875733152472849055637194816550116529481611686988532184247140225832080045716458168474003294980863145195720995956118197934121520823720480620899645917726481116300043565521032443381414652960726264702736462746633503366032743740405833011449977962001172176205970331530655493550850048911281295791605688801267984672145560430746422767671102529411633457770504802788316967946027109057016999757835650322140656836996635693804977687741555184160828595671512332411983531320843850702091807265990695265912494959195813141944700041679693172137954422002822565596109084767239023432992283244746951150095513132783739305064335283933350155342153188018207715368572058095641731720124617493671488478571951925694860546128904581116063706496759051150216644194522290325272922772511215972691776241759560301858783874608906657920128759043858634881657155146947693859941862073818576787871761668940623920084644128127920543434460940037091085786471705263130128434087418379101165048054389943421704387942197662926204563987673980393253960750618756791079226175149431074838493978817339653286750308273562058137644242010416169523211327852350678275399944991086497870105570771631901109799715815400524908289473022148185001429990457916866853216198888964082645549569595152706150405892326375163384383978034670771978032879251473194293031379957166462662538982866940937527943403341536033378725801429993673670726922355913981317183893217038278819236341802318143678127857992357178080387654579362972235639753406580939804769261235128534546326817123933513761584331093670596076614531094467829766640709109832771550571665255551819198357000468138477734968947480438225979454289657762595165163484921363173557599129201252299855743160471485695561850807068873491386564550612296217211777177851719939205940975966132756999542551631352090121256775186814179099099304998317154349149921315027252290494229363977748702446632351693103315187285824150157642743481422477176120447551520529865746934796259700940760713355679257876474529733370905418696666862193793805448655112816412389273243476601753956633433329082853203899928283101123464964866354300581870647009623065942871361022351328580372372460953369378172223753599338575836666559268048296846008313004012357171586983943527723860885192318567897532129596955862936367278610213438715121075487399572588836081491088643961902735159097014109581659025352401167443516873327532166819375443138408350976874621371986607437002445615054198141126548863469128996060280670108807296937256803463078409245828655276005791463247285644924698413362499825945035575194005366370879805584122468883268259632881342717257817786204165601468177363091028396208854008251835492019695185875133045896988933358743011462467420669315271399383545518700770778323638720759965588995045295642088661458723078016544294084623234374755853389618261404196760605557320066676443672868183322311039407948134015222530624111752618974193097032614854500573197070310031745148976648295452747869543131479660806058576541715789565542683367700789223658136213726599784610046801615579417667590768766357198362419018117098812417996609582287640433712377404276508734496499938225078043489311670838880183075329583360039564803159693581977885398594118856857344144960846217102109766928628936497390827068154016444189938767151296013412397108192707334774698709317047029773803572724576481050617686403047357585318453693459151849240323218502463908177038768678961009967653306102646815457497698208849625772734124353675790580604862065369055740091739721845084105021239509630131056833927358190104670284904037381560256406738133813759125536845283128433915302958523893366646436802617165850605266127261726003050113012701752973692050487704339329004564152241958904419177605387632731848484818563843556607142569063133058660214057714924612581049537147134419926446768667949719038730567489089566219783153259117237053181708155090454526944069675316122664641901438211642138561268147916343079458395426166987732525440050664586186884675159773709215716062039246965338134859417533144690831790707527881459077170875935194767358066572380197388423224776919687883689282728869336374511358422302341343771983306213398313083967965482220634884047126828305020086940301010690105842755922199947429668291473165911248315577358252337445717420744163995617302567048483443600354825630584684145423024558887508167133313300422982517795567093003835982678169616611826439957689560546059523449248102687874871895318912922675467295420047371074195000534145534482613930480006888727286322647660834564098014684026297933911022675103447791531500826010285666495766173133537904219702209211767291431482773203773967479177304027127943696102062958665641930326338451523922722709247932886341983215407524358607780761849449842254035220487204853288806064440695054530041830740077805823994779838941649959164696842194876747465023423668729011750855596728973677264938507402020428255796008177090430046225711195534287215457580886659131981642863841738751311454455779699394230993838695788854027311384987071940824335708969652537009223358189897128267593981657408395060410886200911015029102064725091643804410518452262978927548318482313768922756693677025927988459492341544699018196398125990707004504326798951728103048295771279156838151860192183232981163968176813024623924357732403255531342250096834331266103837385562832634602347130253132061232157373606769656188263469046860160329828001333718112687072424747544353076041186096316597769829531599023860587746646442480567673971718427890893596862804222863915373965768145590600531688580014897207694134160361706391537409190627797799490928378795932773007336726698423356059128063920041193471370954278178854697183084755901134422792484212113155740986409849618539933087263742370831318114209754695647684821350405262996718863346391683920544166967900606550063711654797270124574638374454988825587495062464429930234809052864667368984975529121206484671211153783464307438981942402613256896345823272483228157266288060909751523946814749114977253933465773584114053352185149837502616002550600561393877747652482444181465041150361457830727434019595219694460793845889081404613992478175861388038464990293398513400798454495973617540648788095233039355292968986032328218967846049306271726156101444586199197653966742564106590806494423677726167065994767614379736474724516308659274775376286772506943674628730824025600568298284358276432561089117664246177006364764724465828508517287935371417491915463890185495038579102728186654088130260802544504432705845661759230935839648675525526433579551233165619953448249877040271168494128660052269373843485439491502759824363469608781112357288367112988099439321897472209017714038693736089967790485282124300425381950096846986469635765521190058588537474786246733995132390075289742895489163585337506512899749979226925408590030096589403160703575053897708113769839116105138908994701263171031507165261611080943933706292660044240222530287862182964040542238298647049571044752268197105905742885625736401840741993248295337630989426132094908607178064062182453860111172919293529191989527912653068032606239458559655732718692411659038576401343029034213240253593418959309297061491405183877243785483129911162257715923875183872463131458981315118672931115792082540191742776903067920126143022551207804880747450445404986156408535371972048723110463636833844785472441105125319289381500430663315800742671896494120740907441482869847096994462588470158586353426973877663051995800129179350746008180117216769936577654098525329531998983950740865027087856034048441036167587940762917174033521768026195810494992958427017871045666012687496955808149750266658246543370439423231581164909950852720704956715389887527481542583915521990137627639305102468362931287498108736309844131912888519771849356179398550704737121790439773563009032536379978211886780933244766645791020160356275636515762224989474642275548890382469796590210773447377886663121058711730448569295432843044585265975937062310713905620552332626711073448518598659389361559796704617130029477524565654240144539104497328777794547383480679863938825531679239334933591439460652303360932623996348920258674235289865986352409557232390988960002406975956191059223295067288304044433672011784830841591671126077986633433716162143195712091925415975249395140609869383617695576051650431998066037154638754928169861695641173572094435573785759241161275452102514204982866134940302003036434281599643930608015960745188758647829785872261683674087916024527734861297080763190155876908998531135230860702575689078321905819336523615420554652766367799986938714187443131946953795035824999560101378327803929276358802437721087556655883918209409749624460226567843203394596216790422788477455645944247056956928306550866579853555896302723582406976070286615061200344272319886511079657644823078858283155667426644180652159386902639121618072641606208195233876735676967833502912838360291280803830207411507797210988245938560507174430482713634472917090899404795471293188506120833993240493132430089303340066523534551156619987912818490204514854235087858229716081789821064663240367603726939193397899040933012744908936154214792258951015041094476653223294958964051691010220439771902453487760449228911836783061278639469797080060481249246072121722968743292027293077458429712295032122438514181679817962462929246913760055382389413276239934823337438114138567148423182873215146936177627634259213851815140073219763128282387130226174803231115044711089622826436719131651126991812842186975727565032296092582282546697366610845835525595533511831683326798923746587990354243241581719601295721172312149061998464740706591834188052969841803344480200836408950827864582647969212910404110376902068684238643495633742033901653683581871273623662378752028721603045540154242439280248177566368166012978443495537686719042352662300005475936026913584298564536762517468137220616529951741228918616355175059591983224108614452206669765394567821484455017081149730943192220081287594622519999911161537907715541398267901435589494097161580015873444369970524366789064086950471694895105018088922140430136960570665186995972624733642078454604865894205364431477904663834618545805348470561431409710484023102044242447654074830207446558062671440591564932432235005772936993718511659310891896425284148266240365948261583819538969260485647791402313908702817229643442751355166952087040281066466607143111520642529493689456423473086212231681032058993034695587565545795950794620206869374341934443436620573719774587881339106432050246627116290903203024726129752122621248037454951066469720826845299116808895502084141664728660255218689728333748868025409707682507571862872214937156188845388537266935294019215915583197181046983435248188123000004489166406783038665880231812558544835943641464478896389996284337659053522725884035829670034140348150990762268986223096858661573940326127529226688833306759429267699539971394419096104135234615171866545547951467842622946278990555482814807032718983159542124804752029652154616421394674680443702756465324762327326569281683530645210869567459467171694207584689203272670622820074529181372173721844307617854553581838010883742949716115496801115509420757665985883438678847372137754613936308935058067167977366504741400162569140579380573750594901158351120583398249832660038462440007765635831269063764610102607482943879885384373211214074780869517519862708033876033615969455481424569184606654983285879096659808835190012605412545306375469492463258896177008376902248150079932717204127909112094286145621743815200430887317559914884126343214546519832780224065290842843583285790000543317790262966367116752653963994208171879526664517320324777230233905837723457170859149062838359039092489737559772873746555943461915267125726990243834899446880959560329370496118397604292228454910659090911897276286530603493100912340247805806854001863163264155889094778834238351038996308015047161078698806243088430488425480465455778169765067013071652545314623085248586858994232613495335962818347081170711360253624487181397100475244815364514781577794587813923925400591927051047598890229104054198165897663850869575749198717617402572323080966988159739461415056128755541704417291957154325892549894688183596847714841946098371010059486493791165187435430831945057956319731899550313575450976923588705312288724312523007756765452975533794493483515664732583235233390857739104712380301992163571684224434032608499473488008207950181525932801936479202083297754885015869528118683469242251959351336815963998761796966126767232949641066200860070042247781071530902635923017175401858289162229091692296049971110400925604589997836724175956574461678448514437075767422717194353307125633481795198716762574460317192850113032029423041629276136739266409295110131099630684083711674146989058353164202712438091416841162102355338963795271908255304551110351014234713683332253044784572741903445909370863176441914605443958250666596984044120657595483726577724962867837626119209488064950243587438396245432347149293670685575917316223313672281800270778507879500704273233420696492315676466982025153510273123791119843166322075372938898927358478290678325453816078986230284532486036836804132333578335599154146030936677934055728982270106968118429084688165174033368525929087934969927398612883175864659139212662049401572700433867089295179426639378278902428312696421765533645476826981162416945768672744474082776661605690135300651015858864807541371348447322473494923190956743836952031902279922276397723097785607472223288571952855764455052026498870911869502666758777216041783793930923570674744863523991557866012139940043068920361420986858291012708083400962933880260340436817338584867509853889537096323123017668440273569581122909807851972969227813502424887168844070135582513123555067107820097700826675901053990573015334443858673109819904861413571641777299563084384265032718437518447549279975201969804554274263566034024192711406539114148026736524440926249047876611417613238957883892793234239153069849690852890049112216389114440459012086062874826694918662131884453166010618543111385018338314350170522565666115807907124498428326867885162713080389473792876779029629512861355039529303866908726534573658712139779273491633762112349410363992272521663036015699752508943610715439030224945716701156403652267988013094297621816213499453953394118305927601946542899337308585417933038398648556087823985896217832073206327051486920965598593239769296808115491877516755589023031624357686228917676134045513871693439164456431628328077780429298947310098791767183309134229412634958829399843140804352858175343347056499192508019061562635495359498559429720705581045636133968810695738953148014230647796262740031710604512984626312743593908702312493417860739512461351623610824048956758783549134873340146433391420465375047710139518249060434836980548681414043258888112496477424706275962197679684823453945897517905972763940204279852254465215613015891921447990794040567766579071344267363401614364766985491477436484707124850470729681791100125394021978611486099714514139536541538525806305007308312410496956042485936490870032102909100023086370239074558191002186681468333669460806996745159111560283692762292725183314743889417878539587680796215162421881002470356034990284550336653106752255348692150462512199406595713673893376133871136799838610466463641463887481814092104332785369208138412398512544412988245206498696368204203421888026515576229728699621821657949983194360587980513858890618558295244378033803123882641363222575709057065682528115241508883552748206383054866490451667646882801347038183057853982201734807774849048524950239986476860161289665501366694821128321254837347870707636249252612565183640129184248298357068525332471173697056180979904592835449277322626633381127340551490058126766027240750881927644899018112295109977832216504531623672010582950518232088015866676455937997808079316844139466873528009945503955193208369964406249482495071114426794665263375021468614088900602425829356487961176483146996964135730936376270579692214280356181221083976217973521431837637244111467612283430470945287662885120544609017753734657067625198772195459739659119941106595054781606596238551361365115570696440008786376560395593159507406067545539506874760964489110302958767841256994260297918753142152709881136201570117000579168127144342346251086313946819243006196700656032097187578087710555939352373162958539349650546529323497353260512951136332474452736557361172499103442224146396237661341150615063439831134687752602902743977882423235300903168590619660381386283050791905719589311419696270043661151409585507926168610371450725159067021001137090802127090038515207015741338949454408262112255589693901536000112551642354324116758854097710505404623598542690576689955116291060383034235839521343267801748163579263054709803532531967296935121065634883778510478482436728600226978225728734025361058858598272086505902514255860386779293965446170749849462197862197243540191847442122050387946879123413526178313128598300283063770735275972467911213103156656435297237024288182131486923604407737699263486658620356350309460091472382914995558867220104348335889992679884754451559052557605493013642053653813048624274690923487853673641635977282110263884348071599868795294306451022146782097903609051795917387441500745415321186012603562180671718156091651515441274844578284301021514695576752512631171691996497899122034626884577108915251855060668230827770793452143078884975087539393492984131583366463814058654057820626420815031703778163061338720393294529231078594966683888361597882868070336134755147421965814440940759081893740905659397441880401410500619472784092008781641856542133191550845000811497642981719809544133297891355266075611468231536311132654094836763677555898194066472952957150506940174822452481239603106616302402621042138300435988518860993050254977774741755925749487856795799872390800937507698334821651312691432600602482767093123545098355855167280797327164457416946221782029152634456793769649407516228333522524079174839120502355329254356754825002358029915736251156540436222109181734370336064621815677234823473927929334401137827819340756233109333862967345100123076024330897872037822722122362144224530408787700646762404434822817195244271559983833633754000012549243904620802287320392530691972519552281437077140907101590271736835578809705207381081440085315974629199896114219491853193315324894376248419817273971332033565582647794890585723402787550691593768859017283542982522279796959495997871283530577569552840093187078571543352375567404773924691744871695434334311855693591118863199622612799101610200925653084679564104393030292219472806027948245450428360269527704031380703138851498693305337240499160638078862356991345156305571891896132665408152297065893872626420972704730527304394080681210790884882891278148838828267142786605488926080583958430918512799048098574658748141304820317749688189368180702359093006967673525326173462746323757625597021072441685215219272646452235154510316700370805866812609414675947681139796106533592474705234886904825251740338198748055200031239838243883668678174152118565934664199161967339036970573469595918567710502827530533021968898172456623312503331794804860230330894543990013685448768895283212754123290863043764057781935645107497424543164507643505088847083360276948597273578605196857058552186066708603910843445700317402466619856148682331166170902463751286952475445972090967002955157823032956058583814129602127989195258551479896549823379475344729638607663421992093795450060415925962368941214320866957989319085784779123988977932155329469260772508775904293787977674478873155760904327306669827175658058903642056171841549160456026468782725558249322557886409196346960352914452437657091453932160668157524041465496822229802559470989814981888701691327750432915706221588107232189995803901656844826271154743418583711019769896857418611585111635944777744823366902713336173466947985842800334168721392162205236861708330934839937376395846399557360571970315044911396170629814200523122301908459607440355251715240263807043665425162638313404249841081515010284011207495915622762801785737896042872076014959106708001640508881328329199138903398428429256196863856105638291094893432790891512706316091504099778347133625217151334595413403662604422534126524792740337696405196197213103263490198152228892973841670688910554982574803684366530698239001006459605185228872861047125677396463681235795897892721960256560057680270860566695150714012246920270296876142522192537108980128004054544799969493001763974852689674767155217173273215211063856803630902105737004573092443049650438753606825404490336110353007621998924220955909637083113410317463506018591824764802340711925368356515619438070035362073742027262829049132741064963269337406137241336628243084676616301514588436666984370852141338102826241093242691321505574947853987050334502841219835575197214858935388538936250606943593634703366332862396765868534938789112491693456311135890181214479344908203130145568445020529044488162707305632930679301192938739868187383245467947424726597860795113937203135973677577048439250796003400404005455589461328875074633260439126692512453619011581556263193975901884883872052988992216849312717415990475070745535145191992756273788564040813118347459523596630347740182470869929954848441856295870426475808457083159536443270685832161713039952750624620650992855528072878537581607742586331919239585512484984058036901105383334399223426814281084927663793215877386713300968952733098436707912633430194267054232664516356785216816341091093738464395394888191332224669884589920588760418189612407977947483695364894294948873543797496826166315417007501881004146827367866525622287540207185656810478057901728144669299914071591000355388118925615139481412267562386142615002045261001388919881340145710308036456958929422803367979243778920112421301685317712371817642374649215608022745041193783061464143771887768116146064154124866334432768190248495134537684603294423777561488657728514706000686883009570841622688033505775917426744172898128968088867155169833817340039463658937248868039081696121936497048481947884740665636951374195017809195455234285006917013834188155776222106433023503672790388724862918322269056039209855670760058422586567686865930773843926256258319689237128522695581722382072090315730598661124530403226686994380516480491876971239466165869921034269047316721528635902050870840400326747724200260254779360982819190321671386883507045448518896002408492617581562133252595124285828948493367006164514171180499231368703217174061498806380223354832631536404073406101501651571628436711006461763505033553007166863733129019543892493501611521827028823147021361774986426435149506363850945587387404549097652993301088311447194723623329451780943517922896815903627973795664516038287753650181915168968369781158912998538043079615099411828368174295579694383164214188426935329751750243341508428284757175420054595081304212898599029622029799087546132042795579807094740786400562806932303186688169858744951991810752726905941549046506388697736998546697640724665610063962314043975546742972550034380935853804718345636177119469000565403544654438401151685372556029096654090968715253242107730031366119844332428019189885669001422223922548616001029310102472202246711845138857419072622500515630372721021050778214878794388930997099665857243672734073165901977684094712390230171697275901235114985004472012571306063485864014822630128556107050369269707536330287087945623493473273221927218828920533346689870649988622859813343184151088879859027502458987236590657350545979041451163240484315440677128585694118475889427453644477492555589016203786070094699626578561509730902486727528912467215661980428982844899481065117841899211242729839047520698066455450324649134204469349127183790008347238227156072712327432630733186832346513277062396055582289301427058049356643020369375455387576814102012478386869078956131273898350309720608212773522068419533130512153485065501086625456162439383551499795500403426672411399155303939914491446180686526708690753230642707573845526759893352957111698668061902723790015632711726123384983634593681138277391343525290059590753724985923162719451361409779774805926883660550180340428331789343662420983912625314653817417738177582449529066732141883155765292965742050795993501613522552622109311783314264129321702635905796902566170889783957998160129682941852110950381074328061859424726553549346493481386743726609991544910661712065675464655548830346146911838087174263579628232449676120007348444711830048466411648931726972190002599827401264350826697906004293168934201088319743499019538046472688808998633178680527071464039293173588584642706648094251945251517607511958566769610136685294542506855120285310291883819531489984970277113959356948003707373141963329723341642277024021521342187718894966940894084206391729149879114977628867238890378811558261871778453328076388049243616694140499996891493206353548811398502436793775397893685639037693660129240303571042016678332996458420189188429322201326649053710978958545460030497275250774854780775383521520432850270380986329310253975511501638297965709491585972658332977345760896336716172266737462431930413992428509494937466881010420266046458446495129799122651808755883493524534158934120234306930339886909870687863538857403321602596100522629643008641895587783898451428555962482596670168965122194224809564607519944407334946057129927483065475815382091070714529655608250548164490492059465937358482525185842597045934970667795788594127289256857035055406815594734042393630867349851108222443046143690295910427749644226723150096821306631528071958140683156188300661071483351541423687961331565152886179177524114759690509947965191430325694201758420159106377765673205806412282005111482456157605040278123600109653227294361398092769271019447932957911871761950475767028004004642897828737072686283699218668170699950527129192179159350900958499857957092991872938674761970915826871765826696392640086138884917847400881701435908125508645743515960125697610557688932119755846701524158200284760016309295852062679551343530668744415211673745907236165649727581215981339342172978814633550956390207325865487711339729305642667389380535848665251677440203736306990353372428684040255615209334847506145312209258073092141468213246813006628203063516765006187536219910340687217078707135372768966289384837138170992531277326139742000203250142249561072340267920788639637360013987219793367578858252081317385279824478733456069458422576501568800785264733675843952778694280573843029339637080114563272684185384729484878241474810430228575262291213691357627631951056630209337337111464258992350636952544511422759089559674099628974109050866727880771544122416454230096064180949572410515722107491742380953550405277151823111586723707030744926699133207698970798158352770947075232824318129121052209226217174711579023460708136142133391035383556821868153842102120005536651966038277613678873306364939178862961682161269503551904208287144469390944300366042536204445147835181846080695434725641886956697087599073205857286370789225968208570776567762159513164521700214706028788928900359871720346719580647104593933813429490931615816728110873703574620190138010946681831615441778243876554958426764768058484767714352115163692413825533606622059748642156412018248292882454231244707779536560855252217681492833968598109595155501028842033193623066038934346763117149029692542015155476411813297778617938361537629917195181331418843660004106757425496539172974035449776979552436219703466958620010527654077411527219331522252364652129105437578531580365738434394741678513696930488091626665372072282400224536638148526772529328895218878413612615906526392310613450763511342231216109290309304310540196997464906085889538291556809233003300876548122105409441522354172840673131666179868808576242102443737800947867236969569584176477022217308487380616821735942452983428600164466754179850986529160789526391603522124903497624280054544275809203374311414191975587833887078396967755241122474450594218557093035862916374405254673388085521039302133458866702970297718427789770979293986570446096284469503101775389024624768751697544759854296305555568457802255213017341798118747163131454218172278936763660475255385906470211926092901699507994003610057272824743791821910623551189516254672746493257847069619618805378461728412411182878029906079070246389193787617456562957706373764719253925286420040774370034890071773229813736884482797569642897558249024272088455538831749971832336495029466481192552744468920139324695471200315427701587569987179364153839296386160055343239762382048373993796017855441223865885401137486555308003376767717253574194665870904831167168543542227695971497632343860154863614772549499372080301575006204421582413506197241510405622826465932407344399725405053514010047029559365750051799042119578222592559088884749870308501368915922487886798277912280446037694796253931343885256238173040350613589514939071705447874635982524226281198607639780138255334056218779343483142289022895966229616451596925320161044495490213657736093518985909858349447520082820771308938051484936171269685574544217595528763793751519080813017027734852774198385885669329642585189282661444012706829658811806571631977071452272662916667366454341490785164485306395505892174005469507413352848579171859060274201034345534311076447205122168060530440792373326728374019056375790247709627281751366342078210969715250357640588388367946795780181256117899487680630141678717496600608138133830985577007085264448880519949890316149064541165687592464661229768580710974546578437889443557197090376604129561721386527028779705597415898849495378214120808133457076975592867542160518785114093129498033112276561973814539993381105415648045662112372317434237099955872656293403163138094928157717198852132060675935024909503570831542390279521881566011301440644259074895636417220240404958509145659078749423540345803952919174072993246231688350206497108202721675287701779853371869439258872240575741995263046153008172934329723293182130817588147621448552199746614827294998191809174609301971964307928013252177712315761963516489358256019692991802102734319563109059920813809040553935879862018644492794274935416142058905305203326490519349751864427738299516041648341925951306680155527525429947132965263066838167189466630070314058506222695366447289464137301560105664476910986890476485873100638904567421900722072594225250505659304856230926207839574890366076608615977713631830496437685596792791842875732576554002927893382463639969683496685661741028324653849476547253679727924736041997964829441031516752162225606826107749132014281347316430300968671582197650506242191756325452744848611505045632000941648683434519861736641803769871158937840144908790164672760863800167265052647758991410462566560622328152883866924411573179085385967826535492774050507998341033541827457270346445630135792030676133708546489052447206863625126953203343466356638756726166569757710751369611747779781412945435453655799139589241039564946438390200695998661880489527169795170810486940317748681647909001888113283231720763452718862385863538648892032583332853976268500682514842134239843061506870641615557148269610046597203324040713301504819047138915725400404603182747909318854189198016445360334936684554875856572244067795087164770918490679332687981068682555395767712519297059845278867150898118113376636507581970756838547352412929481388266957089225267657932817003141409976778864403527994443953669685687539969022176036695400107713900242409235957571505324401165032913951292016773949350673393613278312015122415227459759155405449326700781389229586111141519428693037421062348141981412608723211071906799495047473251538594100818541906495910846631487446467626111109581862001801098350224781156807805692713660569039080845337227299128907707183353349512413287346062586987746014618587026829450797644771290074079279392744721797347678344963811753543534823217370055459727986657033356694811289991821731807706770101763549434468427675378028034619367451270235235978498269984204457112242473129132500997151370784805832348575246072630144022150506062765753041108699856268468814768264409827907092460729615821359978990772970061847675875029781106829987621437864674629470527519208217514774609609421295649795558092857892448889727878752508030732939016730617207031946182860863301399033154297136805535298644386612982109132993758399761628225175531194107227135277176644615396783332810905914400115898031602889463701965951238386728848252327760160579479332681555987737875458203318846638282079405693931542659989861439707742020216995524627960223728805583357212078700657617214307716267336675996654367631421916314334709053595325476886338140591140204911061280189308584851929920944813733213649197083686520632752422308916705255343759222426464454237427916035772062369894485086412932698007628250472482756639150880453129237199582578391327097495452205922760690135904623630361672497738792571465829439893419918184817502130139188195810789114603711188387204346836017016382327124727067203359963300819062388411311023903862169740913545194963381947411192314647944407273923642716059089951265394115224714209117884475055224981743674485900135232006152870923948910029441862067973855332610774486088567626405397890047871178755081306658412292392412083037000559961643709127224121796333830355495955050700128737206383267213678318287090363003248224871582046766580892963008046960198468048928406885092124175906803820661903913414937594753511058395562318099655279660798910939976265650961709516159964800403827284909021563642857304883795545890072424014700338354110666111987869512093742628809105482702972377514895107402486122145792359846865670710707479671365812944825297992142689817684283115064236455438667919936479860598906237723213103285342715931867402905480393674675393416074363417642333605951515727489468047328340738674504573999268179302724210491599137179932855276542430841441994992089038422257740706254572611659439983352287810590088221350142984445484331453147443636312123780885800444543710010860877896150859115391955468937683339094912094735213053946166869678820194121448867199330798734033662663710788154736880264305149393371641414221064064977437275338034470278847095690671542604702649663440447914291169279502078669773167284412511041972988513359575437185858619129014460302474377821855986939275472341642747020698813320785187772526379956282552249908105623788247086919555335408461250210647331996404941341926451836413039422442932453404257266340431377654408318291434030523550752759203518794751154194175584977464480262396768116070123101486485161877479072175228007156651054178465468404003733352614078745780214008628912543592530772906284921872685797495699107509129407111967276261092367069132469290028253223758477291290436376165401878984581609220188332765188792354856856466174136325120863943720525771487696816067093903638954296404358072861103480537114030446659586138513202004019673965568128823511372735868303560921551584889579703353315807921393987878963455358404366798853072975509584896802485679149281007929019334398877780351290326532697225033524434083161916176833142131651746144297185864808573546662559415434864819451092644755363838123777804402782854592925112191358319085038744341769344052704837288801594083741591306671899622097401009281848143400015588886382341354043427719495807235636849851832045359216605539156806895505783786638385727009915697290457084323850362050916573195002804815426742577632639261738071057303446975967967210771912995779833835801705151212073159343499714122586506833028560964322043079720936165177975867114509840071860052470911216883519580453138932244963260662252273703221554778110786517899700383842995137941196729334806807012790727335244238487919362975776583312793448776642186350003208625856773851688642218868612619681976507546357874632613200683094432812926410194866924034650066725125404614443855329772898812850806449188686075202823568378996911376534343814408388038439684376384357656915476630479958229501971326685865777396778332251271917278287401745443184712517171358503800006884393227559682951852170202452560317472784396870773849063021532025405250855297367554500945910789669988253742075395096440107873983141880939276950483817628046163280452429946875722711329829424964708579712496205518522844933285953230652678115368440433860035526389235148967960888129910820442122586293772753093118392512961713974822795209103562582060120903123578180864106744618213792316857966798133887012263977849397746060511725444876597719758859006000205980768274074690194935239989760200699785550113402777932985349493379549351273497990849537202825998045718601123774612628636472573380244188978393437199932754252738135678122297139382812756452198479532793881192709721131803233451310675395045054416807651782556390618049331298685599235171963734179553840548543093060646082729491345877353076815308314070619574309245010252251208056305877204341709201818381939333175706539660645433976085975902886385889140570616737788736809508173139263450734993643924355088619640445273941667118868913169295708955281233249179708441905311924812862625454642106548663819836043457639284555429139009162025724425238515302015208907136921881783267297876800795018095347820443426821256478385727665936786736243744396006895660128734150060692274438533031381795060300112162358338625957035761152598223653004003972733513581030928429215667107092764109233191050524110976919649832832641070717844600103663694178141544266735505642283824424408440511520623961959144810416855911263489201649609469420599566948178405763476562486131757732631061511443383171773574935580568405657462047479462298755921444964412196004918964103697739231194147278339150555874403939857380597464900963248637711498607253990525071092142988336591943202615968680734301443670889518477627672943671641862910784003061350299681962246824334972740519633391748306817834870157757059964641743933320507478643298734899336540429012271483628258459784807752257368506673886985777212783400542022692962038745361718407506084055242174212639721048510143182864889008445481014434160853111276567714541873183957939150955520623492926129993874487245292744461860490378887622237278891349069190540801523820329646618560491563334454056275934486568019199702817673870694806843359757933531579915572086149628444485348036826776142788126093881897712172620098209535707007872562722228788175348868220092039379085327911733216857192789310637415498830513301247929680419480797400560468791047809853006370325133112025600794613543006619631622003111778274792439706684007280351182665377020520075108931916748672725746583001520149990622271500268292252883216785131505293698437054322820252770051366034267974385415087118139936807674649322165172819418478846921026025455898520538623736858114520684106514365634269363209227287477985682939268722211592161337646597118140408653243785517923871986225358451299391198331932733352575161356933057498306223011806719540729845053286872115146901420187188397449270145389313731841678680236994874892783685137652962861150786723714451593248711484200544862870026897150879853392566402990838946455056072076188745392316848987706245272065867789746822995442347332061702078666153940748676196113133414803854432407346643140004983812217332896968535642961436046836994466977646227241232138000870762494826802874686719883519076479662539262945614107005773428372601959862702159552133379317201580278064114274310667672719405902481950412250927020362201066135377037685852640251951777233565558363079186097976151565063512787756822182977114290985536581964976942633627147795362376839668700150548229490493645947477371465383376115669583282870450673095523387120513740872177325202930280128993110561961889060667994566650661263091877891525243678721942217840226890941906262700556846486767668122058352805333486116612690740968290048434732761732487992798249629624221809193510930271905665016178883482135985710494977661839863832618788136968939847622210478882556059272834715519429246229493130065460527773973363874339835630010884540179055285327805055960148531047160759410637649528241196176786335186678213065827557877828940710133720153938762328168406452324316745621828652219281781942648107181107915140100942830724742860485066240633949110966758525184049452118979523315082962065799586443896595575286886376703843340811891206843418913260026256742179062729298840813441607896334580537404189245581292404725969266700737056038383751782270986897136675864940647808923399201570331062416356303459600854433215460051321352670176742263210441811615639239463888059218458059366541842743046245347059201629619178351885433300545307565219338549708778825717120289549617775614874800349602584393393354508008809677074602840787743457205049853191568513954320989320263828582775267044271015878733153740335979690190998947517501837723584818819705129314806785696846861807847218980764108571088929166182032366222320111619871107719128841476477231067329050377861261317936367601339339240209698967932620609774950488403001220987265308737717467597277375748824283937365683223352087775133685394054182928980379079619917278398837357888011953905547170907846250431943177823020903716275084162901921426611393600296255179100003985014062684028720275929988023651280101916153641572934116777752130355169178794124141328864658486343080466151756994961891967370919455509430891804769722849928425098205858451816280346385353715085686671643450739171930569927022000695150459347467420651037539461158312443833803800239631354958664904385381068172196655011755719881874506129774927419669580840924708262092029465480118643915418946415351203112369320444501126316014841172546196213141882527678630704310195895123989830274987390893830044980409291611508465959656182330566397536446402416436736177432797669433224050535656560625293812980100968798681129772148660498720863576820672160492521776585987104098386390521324841854755728001444317097994335972537314310615983451731458373927001521064819315255417731046395159826832972087008858347624544692033388702577483520261002858247764871773533263331382016460717520374669818536460812734415015273198651300207286245417758051906702117390753231352266259977777040320925987788287510310785268056140364859781023830534517247255187972572945209864644456626611383964101596805081378230960388474851206320487991764143835486312981759083090419516078441274160790851406809756117936005296426753953591055879116827435037130893123876933770108104665012247451760107236479965056035207880784294069013664117690162648497337472716594907197524024112369485535110093321920637715629697245995438651079463192000967305207670904899290020232186969576300216593987827143603424044195068041557179715744953602414994247554219369854496909880135577839688340980065432711355834724966062833054910595388435606173607788417613379714888229469724853398201615307609236382432172629864227834790518856687399775979785596940373303979790669839777091419323375958641900154458482081539538836083548673157016197465112860035716325414606775916604184803094931667368436387858943046213158819381291954814243165985379666248992492978513498341142129236940467073066292290148132289466875795038344194195707518943535423486112163233689027072987585427103071850331875178627491983837771744928397391612981748037873973300331835942426142049339571020172109258842245407939206035844536458973011787789814387671562637925801164258495902356926739712668184617356819567164105128551426172901519210839446014091010254518643952380214847571227840301296042892595419985151488078918417608004209615640444891471542613355060969888217849312421924343698190301987590830729006555740949772647656899130022018860622797767524332687570265296283894548430754193439934625256524042587872399076324968671692123608602254969740708392822181647263987900835936579975221062108433332167232519194917751758210701726804364378400303513582818709980433661170025119813001374767013392654372285812110233685648961431405204934278184316090089850378527578782280768472379366285216775507657086767364610156933450645607986930087802160678136637259326719000213695265705316652252051180979353112377071544618377723575753098320088935925714507719125990357432505580512260908132143935029512822874228931333474913968133138465503519201344009373549449311529359170961311494150250615502059375578648185506644196203755367712441321312190125848727965891227502085522031353894128342866991799926869572020939716146489298452863641158291586450728047364655505288311128713231793778325284055711007303068181802539032516528795054572712613269502824076994383311008154001447942176490344266393354554110973605426010349899892286733833958717869188492526711051705897926717193249764623833127987294190122496379313468398054010188225945609159235256434550945461292638024722741021855783366971208394843607186893270207110685153121238021299048626150337503576190559511419383918573788897733092181848846461351758863059180942023656806557840105854457888337118956039513170570863237226033913715311504912149276310702454096009333537024701333559120231704404961082066489560962304308936799344618519828706036468454435471220813481992874927737872448318727689872012951948371132113810644444785320020648166298247481153670398437369125400703774341021859213446123063979243153073146211405333660713509094862766422937713017285443041821090693826681336896018185703149545485247849947253399341728654818207275203802965155490458033314325840578070744371607453275406837120766988634511212583804342466191880698153481674520129925293433999863687472736864945172962575318348715233852806865777945471906820526442047190634183225082078210835031701841113007998941077651971811901944814749828620021342416313807915787222318432712264916600897555523774615861253605025703429080950738870926233074995184746652375328314106639241748263992374401545717490512290160823140853108105205913892924428883535399077913331355050702596634549674040946084857258028230065997758326346956230775200551916781875557129696974937559292785802230555261000527974721974802665306355383094466292419679047397612609372675444688473130118077768666527498952917882425724543941291510246827375655390362618132114701837269267886593273171685807477068402661311769515504339882927956039798463209633482214730370265019635860320070486712662222784689558598393175378764916028978198788056329630309419717441884026648609291057476450397409099982588921710618550391074221382837302775666559070654883467942993495231525787201811194409643824552246438660240067603159477492196080845863872676166392986027983184629366667784123797018241460659311597910656734326639414271742355540766181560763579181216339737994539799192498149893260140892182767427479797704447772322667197776762384187495830612957244439739832890136190142717449211383530907633099203468233294838296428323111282445752989344615880107313646467974047539786620495985752613412637191571892128919257350104918354577612004272310755995661687617409124503914871270551223210196125121159635058368698531539237992813923005641941824131261707728784333986456642793694259001261448772769318738058809630732026403003455364352609160555623857513954620418918149629946499135322492855008416137434746376588502512407969856507448197941787519336537837672082899809208940185301048205284420510080772850787132840554457236271372214372207041571185794184144796237297013098092813641005306520999637592820172959251200840171746717162462014784142738172935237415472899023940305864994412938000608033017613679521612269878661023369755670942324576822891870341903424217069075657884427729992764410171052674382302334376132408655307444060579098311022528818557971511273548516830807115150252606410830652509836355985486392392456831092774863225514443922855289425741799964290047051313346633696871539774155735238853338459299688733213892270755189052167729289935400072300978609042985312269897650456678553656508249689965651768310099473536515945371542417712217567609720629666277024792079336692034651926372573616589834491090971708301740088267467498085876917623388393623090414797945315135112368446962145493932538188175238626207062889563283977226626070075794745034120627572686712640915059439807249747134949918722207498358757502847129255414737885364834349498157834374899581741334578931036628833259271868792402612150732699706195790151341821032770118724770129191696670591386792084946359941269767657733598825066490515969896027037549465951610951350092717923588931383174766002301478972747959232826024028282859905861951500218818393109127807586955762995407982507637192207262859682421235845149759751673754736757419866890777894250467016389658650295651539872452657547363942633523893010437735489639997154506862410773219637706984968988803204175982757783032895537586320745333433891252597663530033170469289859510099556891797880917891805040584649217491019775099180265723153934758193819559872648915162893944442960925858911253823115525089140817816020743508865540625653897200327260167692094871542892592561457267838716182054394918555823947356009880315986457249803761557190197828749142771928722001221337844469280531339221253295933617220207271472530982032329421847212642410643206362061065432316710926343275969303653709527650074077599244498984479400668448334498661180439384551733516626740460353662731565432264869436798061070591635205687869826732815219273358844217935680656609731736960823570499678865402939315147842390696089053452519902701103449452176131086732788577087595860838741866633770278643881733799022982567143080115617728765862159565384236683935916889898860148850020892699939013595753968566732395099883635402723537283967091432294874080909011747795156435560809537783241371946640004163856352645337792369030644642505403745890737169526200442071127988295637338967271829526178305348733997542637524738218532021449418134339643652353405863980262417252359509187698918417355379488204760896409519270052157031426794694189730434261108704188513725044854584261386895543446773437024040137843102742564879857744941183482338458403589411024755955055253745268064820241403607063033418677197616940885403934790174254388527766112728231771950827391497849480681558209397569861331866932973454251545771202784353126464984758973897901238905947618149926431838875872979557998214176438151646739353238749724496169790208414997664163925392612813018608467805028436396368660505685857378201525112941273050849441136625947154106557517047602013386695853089200545780083450607243935528472622788640217192240745349767252199740616256480036847234837700842033133330037677495246388833282866035550777627241174156206395206361921606256448794171162837839974892461442141212610953715120610328100304478241820594869012545412285032985909045599610873760048488343888603786247843744620958357793805456889894657143569087867196379251327421841944020186217651024300933248882847468587521724536446052100938643205867125176789601631662434487912906685363509386530818974328436204519692924306989717921165443859068670147502572384504362119747986063675018690730017665959117501712155955528726111749453685582203811301010070171959777693779565839725828722401552387658754013210966346584965257419695711394979199588680275945515198125127269253640668558824188324674125590135469404344583815747556659881870576288923215124515245499404726056948240700299896179468003453052014716857063749476803605798150639479191873284451366935083967901940620179417870044341000951781933457893957584280542124955702711656821908122986989060636245347489213987047667264523486705546909044487158886776074058443543238259332500577749323643524025724845361533986759279456774969562229083974981944679578290593551374131184964813316555678539125457067308238039504313689410532892674599002541252459613552644655094569096943225791531663445899764443364309035945009796825589220486055344992594927568278008600566075578410408160825310242951097270584649425940467153422582456551184040555914631640796843251230250632829364328871577557199024235893415666485091640416467394490398660111533484077660011993771007357512520028392155306103864608725914864850541119791389628520684399123099686987264720126367932127580887411187513482249976299063224393800839259773770121620116348465676193931036475438923404626068453071938548359967441573763052138421284881601494207249159085975085835683498913710333173776534332824838041870182584839857600768169269992543942287298179557420850731277417441408135143998382959250074610519375269517488175759603134582688641147071197207260490592322104089042863037829404346611100247818096687217088686340840312824640453077681744235783011315589504056311168967886645848584694476244944971862788415260249816686126622908087471401494281662519131031686934349860403598284314437435036859763353196835367301359390427370622492677110728327113501863589646393061283253955802711161562208505818099128152014590541224296954567344198576304202051507025877191725163654905785939397197018524244898850268064584501025988430221433048552604184653127475870637524507824979130111779150528419942358854179435104609358412623034966256920619765927543897891764408432782984264904858874532282271864807388930881407485093733038808045512818208353496043640916627961129436803272241958135527504417401865793550753308301139525741225163868946951945402449867480261817607073938366937548818622379743676523552946568709522417951755407516708414762862419251842175210047323295669849824284909162219670898493985943903960931060901924109036599102371354033967655247995006428784593299053282412156780451796626019847586735239958464832726985086508507148485500579891166694863860108046897601758472757854623161801801493011769728570036298641368762643722727748423893837844041613634905439212516183189423410244666496886462269119008175226999026527898082232617402996542756654086369999249938349067161185280856225151762317213083197016770839400050006036285988379643006501714728794448573251668792050520726866334921421003790511567993419906831147756704367344626136653670192790431679491353098126498959235250285876196236216045436553628540347516604248075375602341989906183589825712811786283180256540336834585033345210246331984810541065557121404680300798052635619414799965962339463365405056944258862915238529481792611553164930958789562872979912395383436458750524634163945080453837275311001293479306211098280855372031301583800398660427848806990860297274181248618690651741920585188273743590727128801624825575117969104668731069967482580716442503311161455258161680455619761686775468609139235553708602562533612490045130162298755765812415561248482266964130108095997347430770894756784617260787042881788847857553705412526470226163119753151092760559986348820165009978031561732378603706457908975862103961445573547019539931384185588754641825727583264838876438167660823788835542921280381822377005903883258176110021890348330349924988453823742730052825110755044953256342600459454970142578330251000051961861086908181498965100661251701074150353521042711940247019493699137757119614395031501363263078595721312485004404997596582285633730808274403151949370687344660798112194853934792429919836535969028591852224760328021752379029780794396769749321890868519392565117610134834109248934109479325088350783722782901699391487696925262639748873157635021495788898968249661703148676134108127179734368320418187695213221755629345776222911519161164601285687543483854180961394745731597014875800645791805251154911352742614882170168693073930533127471746230170562195129798573069708934567382610442780291480528291690090250997525706190860227615251265329094239989102323230018638387351163720969815244636582605115984814145185069202684114433614532522533982715871974546810183194794213814233154585739624117134197762496178395246243317071534530857722224626581938074516902844143639484486442971897455447669014965028551575569378356649351260433640487193882368802929445475954245210982923041156514534924521835824448189418865357392784214707681609474061610506112128188446628105778116365369829881648855138171116356854481808534919660733715117909413446057252054846032501856528705307491672383371595022880379291606683672693583749385813123268527094773309864861378371450881843111096547459024336340586467172657376876741890139289051844379590010868246014992022637138865909552151205025644233013842270236962339863325288880217810748430750324285782191739540988910638837391678499200990753526567023790928717852210610643075106830094128381610210029444811382408884971257499155053996015070410384701176219620232981419148417341261824069984068126724445530663357566613784688045741742040518935900013322805373636879095378797156632168795181131077680763299671075718667514942682253316042821022583624413083123914012509829319808826795774944790329809315512319740556229336647171576339536458414765859085936054421160286933025904430933345801604292870064718463763641516457903757635828479788527408829864483308096723194609551515812402512203464992313598412715097497346018584470265722297924129536735040519244293330255069948166495805610652956635338301007107306445598752776166986075742310260098820372355285973643132651244142226598103251356496741125826865846817414977894182879010919278282845074230694128432820397358713111691767065221337635068341808263881884910579224131235209874894380436329776032796301364969609884882758802665158222502915687284767431171818520457936896179874623016144032932493895294475588324102224926787372422038304409927225469608092197464338014742010404587579276684247332523353244919828589932769840315802565860391175495820858591116399329546116902875881733482762148237579412689294418519043824024671670227053034001401145271025905539154522331446039999344406042931378013505497937735802406682975418388690067808857558901096138467805858651525130186107949443579108114987321550373963839992593639680351202946040761503339836218491733571363245940127137624930029859280269248035345900877803335002469245105455453774660676880341313921855638145615566995611283219802914941894493827798880956358172324830080215140334678338660983696928767532014716695286544867775223045597455254764734865380395696148879775973282097247205120714490600585574673392323103457802563852448769635213817027669827475764564150328795623725980191316493605419726069174519504964369636552733237453470349856159701182366146437895756535178599473677132325024271139336353957629925391655748945897344955293545693841161246943717697713368570841903580798195375294345592304115807546354228868010643829825709272492487984390509791173464963107317288105853282411787388143127711612655500090953634767155098611056417217657222872866546675635434727657529145859769638152750618894650635223941024925400403761992883435969673176902478483909066059078464629308353201076668345571911518217510710089530257768126560796412669502305829702858356232793107534395096598317313646759392558693618731763984149144266587871879612806839600799878749302349702976711400108764304661602679477526133773056932314531702580996366919459510628575507983932187870737951713032397879628227163645913832323120315444553856267801367244710006028720743588554016345189512393559320654053562416968725671002487880460622322217530180792960169081037993722111063679614480899782465520786135192284696752779469691459627667419638723894679028283728374647118077311575054332678834242177895364308347364031649231323250715664556810068319015013175474085897325179013736235705466427751990900301707366034844256130550910762618639437647598153995027512484311376714630096219005647343495878671937754870582886820220163260739239514829265694320846439974367754961415250026189126641051821222287011133437762692395781357306689649946715560061047519464561466496090066613255708524564541685247741670131533641613082333513949089034085997929040492516370488634324682588983600383900463795364970232122831267624740964891592432450167841135226920422953510419619872045397073995059153137367203927440677401153629181989363916151144465131530584594325785733593571587005251031533527866653168096891882227842549759873535954849032906440406366174734408814641440083678608704797658228165218591728860052178013068679626804585820251406077453789047786298581341596317736020941509243957488134887076752989849075351724254171517984584557470760382564083576095609212010815519009030754975837850810415847125733940354318467428904095785600902272650544512584990756479057123643668930120059484206086295547128609186410488941804966292835505008674156659388924398015031102659328300331537109540302057034492005774013505537155068809938351998123620326049215611512683319954670382574785142738645314531719180980312436552246960208830737635388355457860087809928957284410370707673389384725599796647071302413034382496116662182535269952028601191127226765530158052620210682575366237480134802200928892802258250520276703662949603201942163501261884372613449674564749172741603524912737069857227478938476789427558838708309456008425228268742018573830033514539146733447046334277161972503855129614271687286874768318090614928549141182143580883753469227212624741895551559894092891995293480179688265671625415166508033341774373979218382219805864550196884946183872491560522187689145285564890958116587369897968158724089939234051168994904303333079380690124247751999672225790383619924043099469818497511665784081993194039592129707648590929317999845377795905413963035913407980721992580878484650394403293090087157046564675259956163560868043328953171161788562434231914844053563500339263822841874211878101322753458248158885565237872407447192951794764175713897930064230792598846215338668038172351358020589602986976472683511864127897021588529922929628985469030629964160455343769155954243817531781087692352309683381660347219908108779879445889666165211696851111267597506906997378298038702116075025099230032334836499025354715352802275613962251840175732542584665323448114763142622526729971286822039818960198081732540671473848034088656903921122564122856703651144255162598393006783569353743532015985729920999364472443436193122605934354031988792294452796229868388106802837286774938474303148674962979606217769495942328583024128624783893577766891709017205677681388416485123300016346395108031811973265361182751031408123255147439991820067813052970987894264744394996569141188083947502608338617791760148771043100418796668750171296131403348882936716246118674290645409199563186323091443565168954460195473192334933978449098371886986344393397430725226618000571508399162622004564526796171612668787941620537432924968725095081334598745854758502651664396979557968318407741378312564528741314929286387050481829047243689386591067368594319235527441061903992682881411261172576882503524665378566500545349292031967559253739126015037565936286120895974088177937886088807809093457898577991333382867717764792477013871793556721301925382327826553802635741591496361085527619047351966029627215983679705396359038839838027461328396028291097132104753094095409634901275596941701625045753756199852301851481406425223609183583310267957886058574583865451268341775608222534705305062934105725312999985882837704548897270352280408000219487218853398757896180792706646744229541532081435278067239899607201349355645315204761638687328985516821957738897112985131498665104976825877622593434879562123819642572631022626249615342971407292533778986379130339075316741390840535569506805551452812858836888888698030332340934018904363386252289136254592194986613431522680839660419228370032973008613410647316476520364672283934490497730636118011718053129129090736317492367736551888336246634299132309285344131366331978421395331977694080636378784660919090678843503024352932036962115969039896848575817668668310362170470862765337164248010310745587043395646268611765227242867224965083249622483689484279109497998148262170725575424528365267940837054150183085947798051167102536758338806196756220972239830909459006192908403903985381961067190174004578641282819986313470109525085421382863003003970610661015021492116364831431306468063568491523592441978364414930423859419563396193737576845980042716482824894420419095917245806553174017591859595300351987298156140060786383367704351520885618919903036948875103760047832750983070333564420708381860732732498283464331998944139197059294030386754453338806605589716603723425378678511782043620311109259842529153615767072191778659511180003837527213848182277407426875207137757800861502365170532367351152762598514794881894867974084210887274379696577009030253473382977597609488853023706193343297307761526294902163068714390207166969222026366244656582941822646276816407332175316001165101397838586619776262959522766532388447658281850962324064393739664632322480383515098427897031305423690349809721461052594007743197348335028146201482882990112178067581957187606850561802108453248574324695861753078871608222965546221061873999221327847849554685748470185429575422121198226917162255381843066031751807904902101652868603501022200630021598985332902777214608265390991563111374922520094663680334163464332307970948566962317800722830011714191867475111772455538585965299926397427622177391119461146272266056435020041819268388983396717935250041658009952355543860759505461409531337565931381642094780670398811373447934819667840838347424222309323574646555006730049470168588007482310309651532912498745762063127946227419029939808900736626656355746944755073364009768532215398017579281119546842302762835636609541344708139625198112869681927294418255287473859417739140669444878274885133316299668833048773221806754988661248448163304582093129649296385934858909294530470310955448076686304477042789522513416733577733963164345193254571672829703025947568426550195939751608437894609552105534658351478083612972968205939719229538233681833156335075794665846190525003757227960813640184383776059586536568502134490437920828560543624529224851564811522949637332032904251305635918745068874527720517768719686158234428087212762003950212880831268146309375639184563157263903660810791447051794017507384091261011399278962072302615641004603156931677734663024979604318974034239133515109158098346997996054511440518670995421266501666506568301642465932544920729225349382736667475221400301246362518160877555713550701415268442944692864702848111197405737321061497463191739772983383047277273068176291530721161422300989665063555335956200734693167334013550334918438593277271926853603840137065398711887522527233877257106442562500128529239105940190837283900092304710899268181260239849231672995336876806760159648623624289904471228564697450459950036004101271300325903814510098895103726204695190958136015998485620166253450801210233447142697996746174441562829877699427622946514941183476756262802916810342699491049379187701445474727324734811452183300311144823264735886990729658190806494782337995215220992105353028937142374201275396631469823625787944108295583858540098612883319449475387365586990273147072020341240283763532321036523756336428672596632400018599092245914270627632213160628216906606819078776748669384667273638030210839967546043640451060620190689424691093414912472214219583164007589504909921892143494744338381326536988618100364512399755174881907452545727746146532236495830628085407758297751477750423993662394785917544279646497461015846389098978339178014733312878833225747444305633148196233643026162298085215195086334028072292275720415046847820027396377994190179139351115942426516568516916706361791969329869546326026259963169966702764708150037406401917743290906238353009017745962928961765233611584288347290355661043557202047182187813409980732816435923869162127773047968846444424389058384249289224325216532476738412904285076430208117039886723574560888943741168185695522663126980746776783601997324506761799300963051126833626277128601299787519706669275826822535591484542774828132585500569650719946920099280771652426625994051798478901488455962053340362490230310402334185571406412497480158809415128032212195160510397089387593474287994964140791293009777762155750340906396378911678948598973443148101445133706154822589994117429768882089081433034440847043662499347348695315759752447377890138290672008702769687851382402058033107761206634957079169871233647741369568557190275803090818006647376724005536090563726059236729734536251325170641009979309475680519799627528544052061470403562878070344843142168189191777810821348989179192754742316008470392151527362442215837571489725923579176708333227578468690772671318005256187180924651264121339772656308107621563032993423036848120297020561789202123666569295792727790789897391958725818728705332758491390920803050990456514681708096297771299656866994153911418874174466011003984558582908721081800738436715341545861316592881742745442780017818490059713132385304151146643176275878197028396775660874335631476546398224129163138694188619008827316620602786906976961422571214916726616954477939970082911370075417824037177778162004248701204331808799935605328912719084222582663573009887737326292795180012860275846441398616527067877182209137708309340811751922956075898415378293660436082524139372933666521321590640923983578421226348657062305891797960087401482669073065982584056856547043412067973092690724872631189210781103300712708778211112137901674186661880544608297840820785975868662992429786525573867234803717797289494036419283032729226051324023210752485504224492200390236715141402038520374065899053901192162702297066671178913770794284253251134370223231454006308835148246194317772829926836840133553821076035955338722401250704035698414371122235054712238996496980021073865061480942865789676684111147849444765606615443979291506482222857840887801079662660891385818930436254627202150337229984756583733048517240591650482193840349194080723061951481749699737393860803163390608295000527573861948123682275110340022930020332445175688987173069218005175536865988520093064371700695127895115841312429486618132237531349692679470312522925436980871338992452180726997988152658164467248281339161670882266655877920511710874853135846619845961486480553269962581405981368335688143020259058611566397828942990044385604955051146933215005631758008436305668690768887257335581724352953763258896598787754052125327468713709773320828078445379900728037418943701213150796982825206797244957634899811117853829708356246985089272522352523106879823374330834414208193931399126242543691322036002280427160677559830382660925039909269140341874753412727138245606958749356293067213664573741057816216730422421341111544790584532421007822874711469923011264333465137368702836374460374212598961663268940125717489567603079366313425039252273743098785651262525849806127015980802074420438274138284641309933177916869977109878276706378182560307493934182723544037340981752168047836205209839548443174175723513792427829720015023543024060133223363388331740296778207129447638248779167752976541800378726009432546910480692521160981142921571291330077870530877289496519347074088796465707397088384393278144353834664794857328302104277425230144425865354902284001552086135418375913624779546601892218665220643248066394954700229313858258293599100643012895549828100970319718460080961847302642503450124414148920065969989348412497439539891466374751959074041954994132216641570116780628544768635637871312652295543757222341153104049219116662060319908775352430954998358104960165481835026365497590512443974310884052994202506740988900231565846644553463295549515278147522313514168123395232383647289602557901782510569740732006489457500219541768913354063447431117673843682510849752906672318996157010079569687759753689966932402470216103843551014599165537890438880277933241556817458696243841373221286157275834939706670836144731307839046106256885791545441608199852904369980901480653351475740113357127161065281377686530578276381651686608782067524241713018786373569667128511835345817486147287259247948635960053268862269600934625480629363139557841454426267575145882307709214779694271317991301390468923528651250044314605057336438456972439955281799082359248207995990982041861866389618874388543053254706861432435508975257509514897826210127222324664157282150376472754313699752121271678798653363955019457400862837866896775823370262385109632647166640145659183839377404452121286343083938200067047639470205542145000759386377985422129826007229665301445797331616525619067013270675257888191176813169549380243099127710125847827048086094071697344019621278844118297026131980651265824286146069680848588860028994457587366182298351766248528206238970366610771751313226799529939520855444249972397824191152393627866821583410015661324393233987817484639272054191877001516725558599983467168368161284109257656007600671937037827041579253745013251803676880762027357406870151989119015489709711982891917377120332328523687235041967082255622756651166950068158295023507146245520559429841531897709409971407494656283250003405965329251185696907207049279659413222117168582669788043920849013625134127778855816935731840201233539871342381497931550570195773088799640120267405358055363984742179403993510613352238636032958085984397309003673196082771025891485063843863345948994361885004450630018572662948058533565837970062802074098266911671557928438888761168219068211516135471805549464997412414415018131688336856591820421131411840994475296610268169833245371446746726502023341314107138095130091566280014797915448924417761374821956428696022864320245424222435393092344086122910222659596334837767815699455127356874531778479042208959967515688774862282902412128851463333184634127916734713008839166219462036931238963384557671395739609097091580472648944658013315603748206176814912358546342384948799405152577221295151755916292652741559169218045615143206523241018483105857668387649800656059662382437780072223739698183596109223653530537040652833676622995371028737497575992547678041572945114143787381867724273383784705238666280759539080393604586480097934800843437826233704337304354350215263403956474858286413578701211767926546319370006663176002295440154817967571948499692415432812277699157355439888042092373824769667194104791325871028024359788329523214024385653652734170451997187417649840215821315771538552094504677165497317345205218768544295639919443104420087258107669394303621358604455350252658345719577017383972767793065338246391423305899521308716336508417084010122618313452832284076514573856608277760797147917162026762011017812386034501579276035364425827711175491446171113418155415245565008197240121872988934647998144614138834671108725955560799637639606776890775279629818037884321057481291551891407642499129226354570358318063472317229974640357968208317617375844516767564842331064863708959377742312762767800459000028792392449107320409906201497195097125548726867384729184271098697393601200575743902749426783459000356743599657774052046218228550598940775228475567995502193598112403051404919595991134855786385357956069674751112274811759766635017275275591389982692501527070945655344067428062167139701564899770367854149152467587164813861740841717571220765289883798761541633320144075906792088551739642925440765441161425761780640425366569400038808740814233335981069057775552158672253059124307232544411583029540935486995810366613582146401884398453986791110291849471446421197366430771424687426368897164657026610721849604269101614144464480333889192365424761662555435328590859943288242291752244717206352097325571947863027482585642490058773804998946744161217777984475946008708042898025358917937667688551738873592454557454170651531427798377639830736981332378582007501304070088569947783208449330389831068400620100651301965483304907331589948439160190774126522652714549335113256152485557184054928568539878735348265650166305272780177934911441152267458575451678830669218347679106408902732672124391657233534157853418315695405716385236073778882415767559907828349305778407471279354841101620330186504437949966170679125105628732224181209830206277227291070699348143630442050798220373230561213644126989781828789483290657215790767276851873413419483645191703719828895910452195772372643064708143086955339383148940233599138575290600251948974655684622268640327261669070495386364477596360979250094898741601716058498199704624590847128277900990473629062776537095674630890444118073898463543174837094613905196898577688806911201391316368294775199509424691683650870022546558040589259483741297763349616427623949778713309226841763185521448084319031821185197573189330485041342815356001382720734466553414890369067162292997057335272566551140845283695933802070555468255081763312018093950202302608873036124454980482554651061534346823440753456658662498307146996488197760824709325222771020269344001324702701000042664736489135200566577417643775961817906332003241520051730041446495773595120485392256594057827703237234107921778277268006183574952635661035847176400871480848806446241320673483991281486585362879359111453344322375786857586742097522114649830643134464734774028994536906329713397970812138991467183504571384646145192465965650137846934166408360431642713193081608008699374036561959709584585585897088225631248025000568176926598067355835333209250190024345860367762836331100597432136388719023971452661892853649421866694559479815223807115282628761721443759788774250325194008294241748266660289250295867568850419028737022613793216477649490861990803618445951460062993070320804415915359572641181851467235280814722317693506546193211282293205574927556927154732015667713235913652673926550553169995828608539977023515577692809428195606185496936526633252116681166276065059325633198441523793197513804520784072227931474135883060106531567276477634730567804768332133471026373979469780223071781137270269863514516623073361733558226064259749580970840595295842656131852863746300352682741602899945558611930571362705423592792709128750082818920185359329609273092717739494974697323233895715496932933896643192157037326638796004332551403605082754536863533473089096901546406839848816716752888116674237173645349305955850446679239638809166228341033676466633297025908162713961954694792701246410103446431570021177064724798033506540751993641690769055431514461328817913757107234031227644183843978404764347676667186896921732132018163218338592533674854184983035317763737998260421673220654392872694461566072750577302025779157550001335893573968708675497841915430510746450370950399308001337086012703626263101807391223994509302486367548438422629822402472352137278731397314336496935759242654836954843374014626503658989542612164363465724441255287077346158086606735572876755521033162752838894586700716643036668571032243414477782503733022507753637580084832837998656984681255838420593701951354250418459831961315558352426808609263032051875724228532739316161215826684140863569735176887840583046037399132561961685384795803223405956300340390891391111805606093941038226303877428679867780433993021344362404478538466998263797590466215519924305975145721790826837216413124572812729800701613774530653290964184703011942262666306896352678832899616360696322085552008050692359622589619850672872040902985779157273664702555059692283517317512185177752517307884386198558100965327346904692237239434800918529634739625770576678269767673341394248956213108243119216540089594110956267836582297506174762860421643627780856112242245073935515401454037905616099842641040588075005652279941130723296443086792123889832387813867619028702409103467488896587317055779809556283942001413303627177922981656537729924390021163392495184242543750093694121651409666787206399669964724297781072469417806594330346779736748012163010362330963824345227230481039832405915418900063681460408164620346109101292759386358372509340341614963924576473008182123217986165085100302746567288170367572286791538749561608514755796030732138076354856885445143160611476930424668884640426612343177314507471302676332514192102341311228660587096899099464209700442737752786495313125805871135094562413070141395246842766498417197259063373665862913547269651251392024025675894530079331214573247584478671953152239224320846304766318456756229747237156304555892142113382043441561423230085076450309589952138645427578537089773969128918175758572845480617288066865094955670643651403372319795409740533464591156375556012943501956371604482999627196568930729448690234713651025011275807567227137032498559796228778562384303032351587986623711528554619305515699445863401826244137484069109075362689494887211045146566478845678147995416423395371456765069895793238413454891177366176070420539459024524082351720020886000602354217526216179730515382684235599228275728329950220151065736392356470119551999083533012154716037414526761726813437998687025575931670748325976825892034919227255034106650107399385182189400253594398385101165972655744255084116412202061733435294696915013658993089133231780103322597258599180887188503658750081644124228203860456952454999288334391075215965176815418238806588166652519929691856585340826319724045318703313097837180509125866994944496123253681603579710837512217399587100661704946943929041593662825956641821326449315854065478577075415000773338483909270966824208018091953877693622944270397688501208851187036055612807047664188029547906145453989924694601921732619949373196616927871043508393056804042982840602253813018610238046514634793706075111733505106833323975804588319784166576463776325468178054668587278570872756886767301348399286393114019228014974501453735331828908984386395716826672862706725298030379624141800037945865744199512073080701233135050350012186805700011683362149445213890036757421649901615835797029289882721338747115397274781863189981260673201747810674075488873269465562997243600208628314735582252815261465196265455731099248912594635299984827332919646133500729283279236024010802526296754780075002195106237152297547762009805067593391379459827578916642784279711789430879877041589523876485504448029510643583708465122918493723084628817730335214347113466153169231720388141620774543096520490980869270298478100036711338404014055016142071001429563922564238382771997742026226741220033815287600727105430848023475590324957259293653548764496061398130686807750604653330473170168296201881880546016631751030999959563376221121397959827056027942364832006929432265568047511940608139296254588569585934802577394961477303538654045767787630216065101585907074131250968509511570157143848753379059337953419449165530245093001811280286276743729927468478778413342359783929122851488376659331685527229839583856803569057920042514064056209095365637383583956840088962621574889421595617376101023684798359351945258437129467968536382891045896117415729311872417169843476012612719923199118491931625126235257916656370732602519912657670947313737923757362222078475019308480882343957743983019252157581775264226187090628317537578303826336230431981573566272138502360738309516667336965404148655956172050817810474359370596539206662074128167301455142109553250360965578580470533737080855679568434565167367513082221521446484791286426149424137499404040752489690065134452726452139462973509875970868591304671660139166827794929253099050072001517625492832852499896971393233284775886593489603988362711095475962793615581409048363735893094979423973745184240734114639856400622376950954441734744891574561896576309208861745147412589223287382299165395870753368480097729012710531894260344049779860651941517850418188848555894776327409704081897789598155723399056572709709040649799764110536388566592617804757208966167664925076995462036030133915858402658121816211493657874153371948321763085610216345663120725737079654092725859912877367889986213157837393209236338270643979725186855861874547677624564341241784822611811947414360060749392684722242786775645888015492845835765678224908202152359354708721843012246480498894522987729150784312341247677696100522296447012628651540347714079081505200319139989129243397403871874474858493601908616469061745151692755593736971630457548963225354835578894564730820827067173820495865034483780419799475562028712151831673197765571287363200542928046341043540011051533600201156056478956096696954411356539162627280289514145798488184758424412561252005382924806923920262886991454111061626442717064821221888037494433750337208660415416453486233112815973696030880406515751855573875457515985981761388788814228338110985346738988589689234799576885431949295691757155730082991296609869093815085966078950432697007587838961170974040312407242078645745618388579945305229329586076286986752703730065040179666533254632172684631315627916991954457953751978293921602320147548049831524866255476270750364632083329433301396500950075307279426054452049295205567058301602274830062562867335984434836317150500995121965038245221945100149016954626593011534987421099637902101042883128434858419552468158382952918535508219121952495188086282775111426005626242755977658628020830231861760431933838467910974513430470364468353367119943808980468877753709251319416919830266674947642680354931249567128288536717092357420130353397361457338212850600891752016276357643185237287204685194294163374867464077878683599677397423917923492196081728858769660072003399816957627356271536380410734348802537598320386470188633490623439854387297199317181774008083613368450886069901666015584239232814648265921670459387904231213262962680381921969816865538069673513660417285862993446100871817615221918123740899193134127617459678730662503762483728539531245191335264315513971707029443621162562819288049981684969348901224543666055894382420639302771555404082790315128680359144197235162903484722091557527573404300080941462139342727723542346358117915729224124575736355508419717201153075359946915013861188039095402879024069990846631943746269752008042218744448063494597801464255285833135435570537964850920104827246138713593990003040762552271116165081731546722636533543759610342414105238439335362428562998120688700161344866869165164882795633686333173884732817517198858760922008869576689316626270864160298944517045150135374469846426456162479919483543463662584820543562586220119171483935054372343139669288922098402023981058858066559441939435746741646857430825251471647554769652278477908970671793570992751901096933028116210888528407607835982905490140942861802958221019292430936650978863046782917973540982693530553351718569915157135046506414231147417525728584439314613440957713598489363991389513081862540293796186803304909411653696266994669991025780583022839029036850515361352480571106968294039325727343735730789231216159690116358142593267167958414886220323959910815496837343963818898893911763131274467261639683964691934256026853294560841829635950031069885354901715535932841316129501129055317227849161628152560465331783303967792566472931622720294480213529496155580313972977058604333704450710545349352731852465261071211704529442949201791678601124286745350991784495898415003593355585276604944915274456413704121180427761604162386974760440144114341071812732258367480824474854049387836126118970353332866763616474787680868339924505723463821956432447359027921807279078241820669184003737010555396081070872638696311634443592273091531408437483342256440297447865840534204992429556759654348521036233312840571408209164204643743836978661631915127913489494397667969491527889435522576112997757862030768441701108258673742264036537021714506946925146222723685323329763098553228422474364745232412766467802643881389692182640258085626576914575126170498002805568160321081520299093069190839342817979239731782970632549059805913554241125506022539585163304892060889099285485514898125795522367098633885149661855105835465325388358372693236296304116494834077312793985230163455302439692529741001561848800793442554774131663941944917240814718708169668916649850053986771364961252845532435810509391303163818661428003495597659088525175547793096787168674011290621646105038478710444059429409553639549791085740066115811950164788251493182913495151650019315797891099817691645877414263610906473111144658982058573304445348292108379380521556636104227245536901292277456667424399549042922653135330311786732470445188572511096119391290648090886577661951284884290988783645654753537144750397922438241688392368865440419258965558889294554761716375496332353252738671651212631496730597874478388242104210713796067573624969789344872261537841732611610869448652139616115816707558671686946373588956688265793045651194255699673592673407662400223918724778384019081107681171970357555254018285083792280662517698794526531447830130496070098150714452008999440652213769683599151999179414030598986531053830392046273812382500869068514752324976932920162136113206401308986486876670354897638549776077707654012802226935571853748901004662692417524325311582423428605873360505812314770846910656084392804804182438605187714564518016376285184689082286408853125115586758205807620534170945452875511258004147013504191019961845568986114513815665078463102516972953312717740480190503905177809288937277741722200573818292984704913628770512454900913731003295739465550770501362650567521317235923295106801040596977219542768388669215868088195289202337344847444161719175195055025931241190252725414600024042294888125586504162742277492137845014039118554943294405005768652162898888124719128247920244648324718897519147221894237378691458737713744246375647779306099656514429304042560498503661978559599335655027172894418812216081579575255794313129133819982789268576354130540295291978737613228550749585045384877548165574225664048388703802293142057550382370651247097956135803313785402843214284113613849225750264147216586927860810315728418421236493479000583519703482657319165611047875968249628888370140851033864338200969774196154267720600140033406952047473534958078681716068372472367961387149263199009476837177554718287539684718849554404225212554830288874876688265109852613188351594762363855796009138354394483459395617296176015978890329151955221705159206371091047173245432948449412331897102663555945908171494342155817555082384444405118996068149441280943908954387420708718167510688058787377891948201165756561147456694883925581072714890522167647318196307407825564055652412726448517057695845680496587514814123431008146095862513176034672855919402276760338057343898206589865279227462211858289990536424248035580823413473357711820781228767127924814822894582916773793165517300608881122565438879797007518632904460946470539522103404670616957605178595033899639969613164110793708834496475556267802114411044157795243121267635831497376212750212742551247478224070795293549134978851600060870987097885904491111736568579086060062512319778792983850994465117795907876316378847501150704681562335001701395239240374323404356403977270557482049486188902350208483306771217573429980333174687780513754448589580765563682228669167490900176759405869619602522522249999846567279330419756269577546208360990288939579832292644395214376261262057073499805645199342244571742006885316884840717839067495031160209281508059480959430879159691006188506967570947214194957515000514499909653121325482546149257148897377697954746489629939771464120601630145616298643859949423843792385201128288975568012411069722610402111416495143100018921772287743649754730730384460666779879063539071833298836643866447604132550463667167926563683192104649617046015523645546052782998850964993207122027619502037025831224718670679459179698100412175111523481728439254986225514667999734833805994871565659302194022336813135545650832914921317893708625091216231741931009226214970280121983433885091349783148748705819920809758065178676377615631404856878195908231935613686300987800545412069821210998853964995380850770568148047360330730465226700804892043096386085436558553985110510041120031447284153017068923962174760619817112840793978712785113639320919220511500650694048172631231426614901577015205523712617346908757880349130426199852258118818186072984114631066087131929546956520852604260128855262506767194453580355917240522686401467771278242180689137059968419933948166878136091941324370563979695595712686838635020772815047589038344500955961878735171960235364784389954457618199312296859163409348143681330231045898475895868092341514787472726637088327088027380324813186864977880562634581131307715836640997623114387498372102012157911627876321828033065946414853156909139186510141373578531455944516015752574478009159825103723429558013204430641512705009070009233669699540501896605371323227711701898481558367917277939118678211154508883643897326759988184589355357360257571215256962028919551284614913432155270739295442981747791416982126021414642395509273384805193660062237463044359543214423383770214001335314422737900910199089779291248522236316109821893218070616827337927520395748966234146263632420805465077707489532690530750944228951407475535204134080579991561595054468561716803783044470878875084450499578503004492343353468293963509109765558459814106874396858688590887301416621807646529398497969775593687676943513757328841870328097479867581417505694740597244391210464980489553397431331136650094034781957495213667742290639818529098602503946653576438848297969813691422956715927223240364670861585600157020790721053740429447410062748595488837353446987999886425370748457758207311348183510250775739485219582733355143701506843772206540500605783189844657634656823679946375326469488077645971457183454054718072952673802714139234643216148176667717859113416420532654348158577198732934138213127188205429557333452961199390500086677412095488240453371075433777453838060881990745257980120003829186493302591652103528669882699933524888311647358183435317871879997308248034338979176314994250343741586276850404587976311968323506472686367817100067460918264569818415486702724994265516441165131159652792537003311489887329829718842086416070977073218907885081237450860936330165549950876410951784094487182276660609064917410275300770449280906218381155212424616201958981631070504003039896560587591008936201662292717983209065937708822662220314820379337731087763862248160313684708420237452417087799326219537099243543728535918610691093259970553087305466981515376608484394265000630780809523353356153711729331651981455571357128489733093139928166964400329378787567477527656980418282393777754276341262311158425442423171479966042235801454124160790898534342545302445154813645109456190080989709347791848338783995904194168024554505548371630882769169505293618679645521113761518842253840985289945953373411096373825967355982024275828672835751137863404572535897136813740746942562549753030185938455025419614836541739635830739588473817633885201667524288241900750538465186394282802798455545750052681269107015406067742876218648991816318282712754870654984601653396044173121803139468972480275168411728609235422916938105193429046348083630493928527006508280102536146902055290929626324841952716226275179166800298859603328081406224037072928451718001413228951438469614499649760401305988174587928267053434679491237675830683897575162700555832549171372038098786697068387477059773213289607771192698126888084367262995074520509820793980556713260980924347257029197679219823638163983641357984173090416522485551076492141131350221373568085042242495291162246445081161526578222372876999110062271089593098147866702576508583095483343544471884438431252748928256103306786343533304955795261867402844790128243953605407282717824466437334403942901089000387731695781250283352806448649015018578932047212925570852337981399575025892291295719160736971668528237768421923340612029414579274551883187474047232600849203499901465207814725738434613209809112117732338631348936662264533215540726729406404819469277013589403763679981604478472439696304326538086751539967434092606350817095211973076041762658011939630709996472068377503672711278205625540560815894252564479532871401132118328086779303969870882520870292131155008991620810033725439487383702073746876221498953486651492639462954518536301461049819771986986236757260582028876418400515648878044628420335460321439193211732314398736472300509537563242926746321918537786998910829809729553560884729769118045640221164386729289460259742789848004760802522134299357288344801867785612836201624173501152344551805528687379562194586239053425482816395187351556184881189748523920802811170847982554165621471329826999346096311776589128175473267358360821082409255024615188265907238828846533383902327362163819532005324788834072523563147004058218866824629731246385254683872968371296403563109442869828218519571349998738709684112546128947796625253739096140433394331371459855284824296915833698882317728391428424052359133476103666621582587209961202971365664534269709540982714288993632017628899578001053468739039792877365233110512047381546225493305847506735104102790743635131617150007139950609075236434014583448022526179465457525578899586881755473429327604007271881474135742438272297026028645105138321938701260531160008764757516679542710594158431961186931394447671120086791065788616033054627235079530399787018504873594065602904734180978407431691276886786655432374178253513718397229637391975811367165488167076677711612820411845223017220992607005320837615892457881252415372394657416485765693271501903237550151813011556206572897278977053409032761514871901272743108885121614100825522898028142245615647582598168121410377427112896220293498226009764392725904089394240262209087606364785358215578217506611623581534628089044577074900510199157341765699021714481331358760951152049314383979348423636948028815684671272348087135028763686906638733718246760441822755110409962414395804437642872577630720161415095624403472805571174335086872074929288935875736464534126121386564217595245327922355957335813341641368540480908027388733275653337682462139187520032310438373092597832313491473351149819741014020634343679947399501106618242685483322533157217050457712411034689703081336490737103286912887904803388934669493351533479750761856222129962285944694061229325343233568441558210502746259635169132389727401445706828479294487086915849923724003153039397582487361532354889715052042730813884041910467971316126602600081929787747932548721654745933129841869666828530743789116231764869960666761431605574468673784799499689584031906035909421256980067583450725055067235997916299156003166702058275836868633412996740556373043718493391366585971989319271927735616856245460544349741954071312116117805947162892873112576237142925803204945694925529779169966773796634787640032782633596622950788237046132228078434663145636232385754787960649815430147503146746666919118825966258549435447863727508538156978165247953059192039832097644485407982920881786208985058015254033507992940172184407129403848667615167551936175029891298745874313256509844112962579798346314027230572983487167964311301447651019610723695160631024248322995514672264651121855497619686010019359375600543159050701942740929393705999668686445913620349256704148102667305009099727417345107900115763498432917269414053549964261371856344293156677727100335621897391118815296600211780890354078565527331317107661807228464712541255185892582924579797463386478814699437703255535786888060074243705896816133962900221184598446771493906743134173355580820305114509942019052422379325055006699596999237320709679743012664988549395353118041828558949939720662129191517059908860982115473616450493492060145216897356644122114671414538582268390338564592123822300420297600731712862332353510621419186723861755356713418183940539287938707821460506764675008994423357733049576837519199391775484194897386507760260532236388258646614280883709661520477586233915865097647781155135953160198002698558473341893421363034275023328399736983346162019583916000856277588895300939083634736500150631703628198081229052368897985536953945159883838008418043682320870147141506206955911036056368792024059266184365396864198586340537320909554028865938176843528423183882163766930387177874303792189084869541823065582404402109488887285701566943758259196200817278857387591262356370026060175759614290417392122662218879788853969821804421776130620954899875584875921327916789950149056436199770795269617667585617190106592576784554379013446963067414766022564937973741701082705369283852928027146568260830743711656991731583556150341412167032908770596612719926331083675568889037132975697583092357095202135530965701936046272224047619360794615284405446636440119235258740061757967336813738552625162521636912545612200792844442305055435181903505000692650760572588718264959837502466314178178302801620402951070960211874785361959189831617240599489599597591227197589610484505484100249102384235007552352129325618631163156664170043100950568551952667595113798774816562676103568632456976622640693778468419271746194262802631517156453562177013813137643268893059381316002942735762772903162125530811320885935071957267361095184708667508189594204226704163934004468947881894969480629377908848141276296282837712671477043479447168227823167810104503001487833576615356007469170215314471669222643271780119042149378340732929729777282850230777974014953182279232705880109153027684856699633489931981099052977574886576629438364418212668709448106788381968546002383290698789427589611096579274035341205094628177798243232315557967052551576357626827244760158543399781749591447937963563827196440084291544250169234957855850357584610195296151104886332469163745208008378180001470854898848196037382303667490741553315623201880785689756440440418200269279370199748540323792810546156996966001151398282447280978071512138515069845470343763621179253983188354064443777826441626703684908681825514937710380473835783026513398634146945562394702755857029227854564416219444562082851106083962911927932511000373281809612206062693963092698166441577750351088096680076917795084700277232787595191808909061158171181832495690189371132955414969725423437086371516625178486466998941918155125425980482158143491315832010722174215502886526889799638845233062965208355982743097283505636645497470431290367099325863940575994084691726364504358694802197135569126162514893954445667597051503432934647665788667709810997745528178213259432954648188484078295391780140263898003135847184311717804382464807285265458783763964143838225268000502872293479691193139590714924207660421589838392096715291193991547652083088486356035366008503985410468574747314090887920630421106030952049937977938810825662764311250748980506170872508077315716728387437185482829796888423310084669139475812195408753797253247537493210991009610443442564038714261957255722664824951684971842062151274784862787788217148541452167416701104257967022798022934372122330110906826620094416977133006871577718192197860394524249102378804924940492226966643602539140925215522882474455254382862553613299687749578606021367004521183712982637127931991177119436360189006899645631538738432207041432892255779883715120443709738446857006430932924012891108807691275836574420596457159931759434410321172502412742033599236689772559989328121396586429500181119809030328174687390544604373028559081487684790285254155037269920499618981018418601062265788732369912936499087445181766351192581005022260302147691496996813238003348683225456478219058295773523524645293823229143063641742839259233795610346237254158810821875563682633228770153471081477679556211970962587543401881413886896252558578698062451719173407340909435785859780056554150001765680746016569655869151703759046017842742150593515542720365830604191862158758576274263265611665397208326993294752209461859421766091757168844185084605765048505276458111649173539538201359937422952765146208696100967460534117323197484398061090316603795269343123200175771500178585099990531720148530838747679758088773408005845872133849593502378592986334440961073800992704191672456134427218673625358806602262307787027960826514946647414292424930128791041097487139549431408688336580300060205683721543949559818080424501059687159463483790484933216951632006632071425708959059074197848540049002958161672358750524562414454694139374311126490979871768042596796246393750185166460441194908540974276734017516287961943819218835172377665780405166697565659791764844878253825477578893134914679863825706450422548304378930043315749930090483545043328355715376422398406898744690660147224400853095298244336497856113741797976610627221940374679905660916913628868942952371061160577346762452255029369700017043170513649315261295363278557658520920304993154013601064936106469480494939076205822570384080355961140612214164377285274048046007219636512339482036635404316880862767155331793765255330882499844302109229228348836422152488695591028259086975250502015039247512411612606005973995255991934009153140594937481182473597140998515542224041612887008029274019269935972648584354738255434642187490233514561437307361566869164939694132541339626001837296429147450605118506356818294180541834993210115419261557191234796334368476640531777904277195864382539714929771793313384901973286393977157318763048616366935936944250050539668901843889947696379071067568672977103951362191527573740388256359287202909708233166327881293534441591745580809731333019996511944711980495425237890085905306902360068291390105767289925326515951889347607561895470498621371419158835001251467707037279135593972929923538538022989890137837080156341778979759338731125897130597611988866526142913725357987833768837401242475073765727650577713410276534883121912563419245946670577142990194833419646877973218196548860454907862044875691940056597900301797180768384228955440311323381428433419376050311968382495774315314116620917540834465482917981008810629946216993214870372977365990747118486139619049292526147618837359928136592792827401653657965889758021525253540263273689758943415085078056844533970192250368879395555703850311445670831604737799560187103335283344478517908465000076890833195359849022938241481286756637631457902216302138934559762175273450029612340711724790061364967702239451895639502060677781790973025544164620116503958799596081559231806402006064848896981162763522874817228872151620714411387412353485443297997253756237531299583616898636288877777199729641773131367002519027979866635739501886533356168884557499225847688762727262462965354413868717362191779484223520110992613757783771379472323507559853423102264885651478474366597419961915537280072931485573897388132065809241005824100442404064655779631155561381148218071355893715409882627740496091865246725013337769773887473969196128184365220462861186053919032752900832830980610744561888454590376958868196206113982249318572068864120766008590681837542065505341977986852238374874860319289780816175550623093943672410960778748454831587044485888620962041631125865889309229692216705843997750980173339065918895717666408502806667712123441046842908230949210413829834962681227320679083812540810212259218305798831877181071786537594171344085193849420973371608335724392325739258513285788777406217962211963286725547590597647024670243921153911157526721411941951319885948263941263921165143131342143199592383400170261681970128042005993951621560064932382087701048357921473545883291768242081382569270917332015860802259794864085707487854640418049450415058378353248094227738222574630197828095109162175326638880612226358379791591214422083077256115695893805578967446386533300763040874914027719884548640488016777699401980005075966623465446797210013532061974362511315325713079616421202042372201263734267013820395953067735818636095417219580850146550957612907219601371423164613640991574539610491544516106245692068770456362622191595096644811324224623540218871934781015015236741219526928138974587441454958187165347967475898987201896716139686087129635219623941514614185832898528667829071822558303806780568855052618760586790181407291399531041388873693487867328483860289078149353524293556442685663099974787617063331968125855943628440722973471304197120136873513627440578088484591566928707781819272433565467771447651723555874977696134713798181993848046973564109004338825340774463563873488457314515503734574672819428379587079151535749554706244270063336091602101506833513031833923743913636102001934945425912726055612880889480616077450676249413446691299915648075499256533096072631166946146811110190425354667485732751184252313856052679617436422955206038070966817017543015630052899221875190911919016498318689218977042165995579950274303042901503761924233722050143911145044024072808115926814487815348718877289312772633405149911527952664877841340493550009975767689419575928350245308602069274584144439624133654403012934909493224880394124847367519798416738384964129364502234112262817428066583785408453839227988406788235270865728375725442234187260356600544127567462494357766792070550454244097904694720174418525973756105903399004796272709578141364709772850880518682568929077896632022431646801952992412805810061720093134959896348820170780714543904248023025656295612851844396977829184204465206019963534083065608194455057251491408183115209878809672629124458413690906791590919293173126315807873068584981113306761539904451083560804705519951562732955719612747404982747759281291673163336862595797803012104394604171781446914221876972020736677573308971074836783807266171954382991433207089134672601296907249010126680222738679582963526628638524080714363265722268705773657895697059520004137440518966183664556360695453271143987060868951522566917304753664020417025738597087257362294140724335387714884147371514213026297409356687818153972851872482871242553619526761200302274653471024550143747475845868479794324323766572531689741946597883377767779492787784451727680808476986734963537471642289661717624619831628677227745719088065432295977702390209057450306004670934008582285572996691543147521191405644779877028446842990352853525847761217327015085900685271212292616004594132107909421069765134946653285388605984324229802260575938392384531253203760943583092537701732152965888933283939217734695380102879973410807564160484830358881619067573769468317284576448776311686876305382410451978498394006718070257094987470967070511170250233119253431006864496721040645075098245369268967159476338410369149702243017552730356007017352107903741976727875102381640283888548889491705756444378230547011952735592462753458592281585944050314474735031426067500384814348307897418043029791276297734508407154288292201741731942562932228615847895117325126913176314546377455209236576506780151117398228459627718293171521557704579999435727219238073932814285738378973646079811635556944606982506919858243109262396599493216184553136872735131926256643049910389147457650127918486795672455544508623788097995725776613212529851735470723962336083317405669521967475366862462285411223544108363019124087135533343234699668701639304505832716127106356618235569732276190973628196151747598524332811009691325854519949765696942723088672320481955343724187351586482900079348801523167450546210865740746156205143339103311560964210252862960309182618550510808469417485389980170469276603278850305661257814885087423895548467704111678331217613908136255396723401641216845474005598488437621550095762187712885394223072340984356433011609253879534764737000049315222570072489416395167403978948593993034133245641724812219971021515189326474907105159615739299130085898082320039266676005667409087309351673170638634297864573230352233544377928318588547670981397068189521589913359358749484405646633793698859735913654102018556213087868516636107608471733242074037640382224986031048576334168214232647175583594167824817448428695900076829344815714173249592684029864402283642635547249554448145209821733821839615606610977103601226048628340342548147367626098567595352451448447444250962303951769875265150722490796553859367645159960910127315913909988815937294973112412086079311967396167272419439610098507232514968690471477566558095618199123590684401321040012637557934739383495700939314553100376536745564583377059480349744768438004454051182168106680466882044122992016363986671819277776567100547047352845563934457350970059210646840664119296491612160915594183866576886369612149257610784010559524806243494372465648625441221836645629705737630268477023211231511411302395735447388523019532169039038564160945850509496913952289006321192265525126780147391661791149016401032761081749179855213638042806695218296190863650301934724802933065919863736291060385146657103396581590006013076486515127239805768331755205663222693680412690773048493557237031640861869295640570441526959249349228927784592662885475068397081948043699506594796773424170761832508684119425297819774957629750297553163062885244900138474721696063458648615535631425122537896091737809167545422234015162935376469171149707868332364943638422974020172550475710097620435931123618320412942156486150708642342444511824503067422920465447570285737380933522782668274734646226031407158365530738319965425283689505776816719556529832985379600274392295541164769871208839308496279495997085656552495234479032102794109643800301360392123591582488241825590828485591385301908339907385050503357705161466118369918283488706521384314875152375525473340880263464992515463967699904363997399430005095722683173933283487003033259774427094337190423801020061101042065977680718877463490380653463718256447954762459231122566580131412314382634703292529911325589788983189188672426441277812667197087819904082116298509571564400416455869526287097920735663368808045447066068221364684064754449295542396144787153468058968530298391611629801740653597069124836320986304189579700401683789190509010601586582017998067891437883265021158080880737692818387599429151176659073243248384665485532703383655675454925654516501170983072490522640943601005249685240249640353540027254700684626220602708992164155707935692859287424334243708651219106694573855650643845450634621593847867123641841505212971061646424711990139931390013239392179721819284119868371843136817105989992241567648997234925813108580670142142471372440131802992949302280363975733569045598813666723929943468721726357596110059655203153432892875795034790017194807785182559808052999726528345665861249997578546486957924540820204166373338785602538201377060629290330487768776089311748443254236425877498499450465482617463684387604046228269758729687898366240450022852319587829166868117349817663162101807433288121276637851796430909179074122584757383554612902222328296719254099768353989120172674179647857054242764493614983905838952900937384310409188789388505284163417122447489494670140907301412606043722878548221132477071868926842467089784435262667865710310038312776106093234266983956391274808686604000630789633007476239142476351209007406601776925890919318562907642647192942750386259279062739049579200424117211455213233565117429297072510522168419828090516785644396388729696489769503608631481268268128998791550203527179960745230402524190657430917544591526503619270388470158427977101121664197148460022413979497376135635142157711604613599997166987650244870407568875867693550857168330762152883967065584391040152979214471016671947191149568002171884882169211489357927701043559759046878831632009124038690900830448012439010826803117719497825764994656581339164719300241437552520235154903808207058656982146739511016123390578208829539058773666184385687880447203375199414832126705066574330308731421825895181297916721877061424928605494335287380036115341606399786108062849765478717098393596759371009858383314837275910441564259714157888792184760606939041431767605518042145247761229078936925425740408677458399259405237370665459023892523325417267526769731687498920753547293314676874088124196441863610057888728064537439972902879630921688029024549131682046141539200377544391233967170852503221800458716679354336773429292594025921930751555041695617782124024952097780959875336365545644733292432715206186661222964719390834637234994775504247623639235787400109315295867473402142865237671504481897727451320119214033484228098961339286635039568095227638984775821348527119693846737500573413487014090701206676026765547969788992711775072468070066309954739073994550632096693411392976486279510751170022277280001370911379274339471086924760629043254035977108052724244015823969855355262345689336482979659691555373937166492065200175521824900973758726996227604862517565242725642600133587276485539959980350107958628229586878140750949449505553596389437913727490282222776453238717693021426545732864597991374562655636950788059083259571845896953954963506953824616664636770510785961309059714348287585692692868345729556239589835506244185268668368310051505864653262659812447479910314667551607847420630402504647750786108024445413703297804684202134921227690674534320905637928051493427147398501217609033697216582792208789427336622289473868269790052786134466176265054696659265182008980453287402293252797624083222889796312349713270199927815455406019420939607790532759824594601968330757222656129343838190861088794427562566525128835475677351895251918378027007300940443224671347603937935780079193299472740497393364397725061456287388346878676466746177903416199215428502562511226317393043466052906633064097333347180959063012415423184149956307370025846784316538178639267415365313341449823930977586169209980720564577871018335877668904503031108560992952160030603969624145297593429103365653116662459071627536873029767230273817640723526674657757141508582848207966288801316414776749991132710158419669431699321876637878674474990505982514911884229329246428853345543056791462596759608047540875953641134887457846707353572907635051940347669521414461531308674966243104058636822408461160058097236813664715612335278286656583826506973661421456485258433603351097674662569735256406407747994961359879037192192406861083544737834258227012207851400011522557430674421142141883382921483923784567660825108093692369246136701040938677438231170163197174664789406982371520021260730896342801082258035148528285580398853020258596997548898934491911923554858621655494284462605986570649096435528943151478000320850885881935539174158044016045230588237984702055785370781772397817063415672592693306627078150149168324612024731787748501440683951156149734368638648352182186067175400627987393150487340964497115520527050271707589095515825339063357324727703614544471839068081219997303315266746891373240649744683162024983820024294292625865097579537152295761051695430739602571134179252752522042160119990868610790119416254909422109420799576993710705208920867903620250924173252648769977294802055748250711054556777774007815955928236399906910934387737916331995025008663708843108379063848180777379480184949153491338622446274682863029848454274912708594930752544666610969386579664100686640110472168431181900053962950774771196401789541702648305309993466776422283172016084492758173500003265911231750742592763425355881917910727978592488008870635871804704331094705316415581497857664416708527744640602424045649378190128790498452943414015875950061729640634682023531208748799478843438610799400046942478840499276108530572319821769398488065402795658811018483809930059854249674483413107740261848404834133586913739408820345193631328148762823840059625892395504985365920287698750866444528046644938105145268989680852154377787272188695227172255576088263019641576610085808030534328161603769866247115614206518908306002860890367390163270792793878953530636461124230770462838725504740636297284405899506552208939451125577919424483701605702545582343251673914873058404247532517589668217589010311973727790607107073160154199953340607896301639136697593653835180340082340005438221601445473689983276430814870174439907016963673362760106537725866622047809189486963097953636003176998308123528583415875703752861182974387629542282578314333503763874247901503842916534004299929736013610610460882453995764091691804782651344850190665281006081090123296641450201415502866515298388538291017107396065363829230401796280505929734281145477503857929184715509123082111562748458078098850240146683649805560060046627825128677873556957336676650459532713228096250113005076005844212231589865046985371319925015140653631066139190963563834424482699040494979203233986252501699316369931943604461812162230786344603201012890828266642931941140692234693540272183995813483233068248278794393072185369278463175422116421986594814963834336734047049397902007841081959760038505843853050128852965521643780942113881426174685193195022727347074257425826748476220098343030340990161034113690114800683456728258236976746628303599665031309683367505459847933477462255912058766718456720958139523542696205388555332205448639636275308118637812658526186165104479758401637789480616542870102202919167237846184942402057601315878031562532134799822956802166040524980118308657210339395099810691323295148197534438597458872510634371997261565671284071361070611214348474207296634055769881780911667367247809029515661983223131932925292924446847845730098706126695990554799760890897969259170920827617859887541761339108295771008935843802268021761695993706584415530208397302147810155620959089897543214981387419822397728882238223779491561825592403386581018132487759902817112671757225363425011618882667559932996315990359170189371239010467120722259625127282563593016651503862392641482647145021183229407827258613994728576869782943563170868482790333627693607425350019985840903877299672279953613389720704300523212187914282424054265046642331868581969818589344078217918124698352760371872026034507033429570788180445298102371289691722891926102003108258085623008639675237608750953931973346800025245459258806218234332427185561392702056458000814186299566886213808933432159895079736624380613992343345546602654001368920262841527864277569627544632502379621594371579921188408419579102141253738132495088593160951555583658649082823738760031516036573577942887744005964682156308544575711505018171558846786669910319932531119706286430198806060400985871713292586007894278370428755050667795993494935451269722853547613537389423169273709171891700773235654783490665292436386386670606835993625012382506628306258580127476958707732008165553646029132288037276686253618989472040239297964249574022015024615237525445881095246153293323954052474295974979630486507969009023264887069200306679151199371721276282378668483682826839495996452519731551426649853546609635112459942238672508357384045266372257900450747302277080950003740673722677379905053443644070880044767900247177024232011874257096877169962520880109036329187549391240148286191847780783525983693529749393496943595806038949505030774671427980740499282136730197612280939584023285245788898437166493666131263347748671440693035864209084705845280918987350619621927279194501054476085556797063315657387978528027807699378896430759169661126000848760563978440245499475595330553131577309423858162470160336354511248057512185374742717342311293068294942367305310298640460958173026987570164536420697336922509684315990799802428388008917947232728689052344695933676339186871183502134765239793165605136015235360026722981981898157377107294390877694117237299586454533563137254253383343672918495419778191616289595906566699543828606225090745719030515984985062649145402848446487861478797339401080782490211188496314806203897172688711191741624654054396894727594087050803855100897621517671625899926753481766448783176805885114449990307025061607236839590879592249832872976628557274809923899840788861354232128253201794847579822174363198264836370798422344251056978414989584710728080090079919705758446035798549453787785402521328640426017876916930444519484395564934961106569459090794531280699404267207837999621241266785397371349867651864191347817504378017583000162651358043627322113132678105483371472303817030428813238786267404056324967755731513329737635446992391904990114485676602186714015438535298739458392627001405105518375193744374218053982645604999962957757477337266218376930089905860704663115674333997604063548706741289881108011521888460349096140573621486136199469185380215307546912006519540706697679856448186083273744724687528052827393456183537510454475224355971856196169249734455187639208996975351391284158265286689103392823672003417309539836954413830388961887323846481697633741293386058897926120877978697586998348121087561187698764641543740427997769140869472253863421077176511912357874019173304666960480714758321312547134249527065124734295556002245313768732269365558824353745546644949799418097579250572834913876470212432187431895745866754877266866918761680795703654697345298048032978028414978893343167376230824965112762126352900791331363000645695195596746546946337331266408540304077514899612084171585966044938664349023670755473257430731784070921782235163713504803863218438140570008274033370590978158813342626109999932584300127556023064289201490713005841961542112901016588615562659676640192810652509511086253762845375237172809156433116044737830884409510819032124307629250279880257236391378878292860345222306365069190279435047118889231561426880925253876833868655384104579668110765047874607437743014248987883325131249804428527658443303269773795872502363619739316574281904662717860097199292867391902255849183755760247357959964469455080658889735736923022047729866522893983007816509685467381439106258685678244774791583392236854047540311292723542699051687022656213575331416369542464718032307841532486497896578790767408207985686232791363414949367392168189331457188031338513004425233851637213398720155990198746241950512255505141242180488362814756804050639269503780227269648628347967603030088897911061239431538180753411456254444734181420753968305272737117414187242066679340274395128345146819823643540454326308370534025432305226378461833789601810161279960030512747294762270872388529729661070558881768045847306370155053619207946777817010658065674807047834476084728449499876012254754190690188680717761438817556769626686467774119515523884398253126992101647111311680236500625730215183115110020406235918544091297127292794213092125702310471375199999115540717810861307643647069158105087740351915750090670571122587901383409310459257652277217420749702545637601117703988267422319222271514273707553390269312301587139250789971867986445843859460450786241691641571028155380309468066641560260016477473769526529010367649304087693558533445199209334962077529458516433018454698300160913679689267178587728560580824402990926734125991703992207680189637922538859858232843415233481639828348588901888532139725340390660891083145301840098869871544497934413022845575122997059423711066674727819737271106030501708708874417090179424060726336184898449471835252241400153481019406829925247776107711368876167313776123865661659367439660755889187193897008111048928829710757855782504784207606084638940345323827895152915116671258205619246330946588942966725405157528775797185734799755173114689731384542988606251083715599324735755996509410837932004434584688091727085196101420276089707395446482368581251359194281997249963113483271627622503541194602823437331671342521417526155285141023063293041378221717210133057766473357577683943503894585322389977894969564192206398182845567937938919187738008225436508371106830573058742863260798719494017148528334645532098495820641062435324397748707734473202214755344830570222326901859798642618720408553658970220926368028842637105864779626469263464910903426472782294245629409256415446697843051756481012082193672528491897500046958444244708763643403158348309766542766415364420863655820114368434050628590318596014464369936350269819662399904411193225798706609241829564762397657529498270346323389259869435736517083142139617203472951424808565600691002965579109442732208895555547981844694161050067345202640418668861532510722339365466627651152628703118937196534821737955581793331939367911702005927630801918294077945647278583008114847174134236085727283317650644532883729001122808245030505724728829350939187907718069141347290597693386458183738689815579338610472940352571709531216419466409140718787500592198179853200358451326976590263638616846397878204011982295951808882668798046292778796284360106855711476151545681651482777844106034995511915463676812948967561968982896751612845049848221357781829279129409467739335305973422447511559471110468772969477411765123369159920397405869948020114758014601344752285705890757321179660368043244540916283948132600161789832980951953535282458433689800867079122096303334533497798757607184958193317287411247514824744094969553067354602903308715993151446743260258345640716982310177548949104037549155445291804991002026703738379140186782828315524972358073085799987473856868623554579696615457504734572122093928070148766321538662930727349466713850229425527091989145257651093954807989050977749755091629837916859911903783534709800139543058555705934983978905838053774945372558876515822628349568212429080994225911316064722752032554048472803380694722597098958883052831430373496188967361075684193873097460178168076923190037234585409620468812550398264703468198707201058125269066515807345431840540760254329184465958442613380555246392197389434590896432179654995441448951367688680536392794669834445591613356878596539672967565250190906367625615153651222725781507079418041068027332074057727311063996343339565299140140299359622582985949252132289260640760800703341916849809713228165176089646432853819212116882271574088883912357140256213781873021817874363705763636617681248834301022323997639742507630639156262922678173701530514583534933777607809230064997444368365788659097550733190909694939166276797518276421701237840952904942565580010644704920226648909145202479243478529200688403952804460652495008368637913233343389049403392247407357158620965965213604517248273515607835960562555892885826188626280917054171724219405946083082587905738712419097946837119444219569003653598622360955108994647471509098560033497937814219557172616577791629276472765265089294378739046739090210160172057145682284222379927940357789981626092299160338504143015160365137303077715411274670879617444715788622001874888205055128967391004040681508331356243012618203773284469919602399900303426084542547759624163649970425830407038576464298847867395721849173659921964053241886144346363049598429337143965435839262261730832204700872067899355922930609154765845357028353711070925131832220642333557069060555962971069847365636524922902225148978585981411340819927263058998227132262388005130998040763236391744286259030577931205013266162437370267387984100121030656954659787501048805706028829282315662379424676649716044330037600144496760616562726987717298969624961442078931013345712607163481108823071544984846369649896209444263744927014151997315898644249485485685494440440201624147029800507638272149475219285217991461991211168933172927867134390734701117421743718171464103801342757889563687780282494567941668064473090336204198165570777210548755166827985923336931720738490035420860279981151132145400969787430677177832850060044927816462630107208917402487610562493834500534468054629735705938756734692607788349597180518451984188656781079069788418649324192422694919466959085596762473120145936331440858984135460175459981072367266241043899772826254786389429331648942086252208881397829612494414976457199157138770244290707478652262634977063819576494282283532572350603957176213764193823593022410615665842484747258664795932372859149991821201853496922486039951424936865343736381617389286873791563666207565777675861507291323968430143936188668523558359111759019610416338448527510223567084476549904113462634036990068872418241844580015597942761458292208945978018079840283750425890301273737232844830007453772297118418714150180482030216307396739785716610784067243285138080587772797709895668093497931797075931832663201698011026896405535784682358304478335684848336546624843561178146172049931776119531514895446091541890624312304549781580044567304614940911182088556752657799167164152255044355240092670811933242787962504340581715727214037282906294490404270219667702409329298673039615095264049285258470628958681189533673057244881707958114279703211400641460123846498353640149661902058681810505003509267447182733820871712962711068390075225045260392233777028235888623601687433952516953627554310471192228403272482486142844417023932961099054758794755963918605252368041038246875221327603792058528826195609895915020792377760314584514218278632356391920053441264101803313582647334288129424638206102649140807683267634211295665913668905408843920558153324972306265467400655208385762780237462926239073570811208809966972236616595005459647267565693545489839956076066755516810060317084209459300372172540286129931919995548855306941263428718742024182242499922998748313336681909934468957694281592202094329279675458861573434295846718344882056570507198454328265160742818279289041662941862241462530044188675444486472192951538862896986917574411161821439716950607955959851921645829326235018448693184289924709768054713011292063062288386702401950687979669788251991967102627407894106289701210028263979103930315119284837131846089729903146137538531271145366657786524404332152504158109011409516353737800436443021276436994915139771381904344137160277849025552549528282971360449982736364787535629925631084287074993860467470636965570683908947382569612562241867831231252591892141847135856866988464271132276066119518792186556832164921541895414968758097772076809607853427643280342954648138647575073887279681742913110596085484490869287164836269049870475226679792024727470692644647355021578755788090672825679323185935658175197574292852667793664392104890461309820780138851559857998273997171196786883923146146658997590974589172779890543086984407918536758094309352476499964355751522985600129956415586538737031119552462493633565658989976380786619911549034039683565170438673869772192443355796790564781856401195884785454446977570234374742356983301734581840329956129081181927630812251863277182510862987435140468272890383690755491784859196635443288192938033376807555520130840427011148208208867247476616164822133643159982464189877292514651908525693633134589604178942146765982567974503416730642082688925987189863116347737632165961013766463047825661491719648196493018564966442906520683003772468961696451885579259479943436928975382170516725528965335577852990231248816695318114995963353311350297410474671600508033194194232809573638584576601501736293123021024783664956914043686847428077120104400141457215059117476168485862973772928977011681615967817860451720831429410579063437040856738368411663055629358070929080265249617553631195048916872839086929507494322248368015738481383589137816477532224278706388831033153018204869133947472689606127666422537835625942162547829323426470274344201865146973377646451692920761526551890667760675041697998890953389552031559156518020281904683975940698827260179710986260374756787011063536140316315536820239080263471819966905888688962258615064636702530910493473455019643003320300105861502869141294448718601507130225637688078483246734315464172292627587920996101678525165421606857883848892726729617674892221772004429728618053877453612554979288108459856893277966504984421442966118933145093079988844625867959377761709221318169622265338893667721873500804144099775006692157833939682399341300596437494719718038563808412036270040247926044809131934293733398436600478975051891100781322417867383156654581275656171753719739476207829799946925166939096058873308604938768740567348819277982279641204066696063906587924193295595012306213668517338447836662775532580586866718460383583746175243261888360055623708853213735765592382490568204361622930743984808887213022876523112090610150179778696516047655290558275784398084966087252919528389698026603402339923738935826952522245410146637188037257971573716750118529321521566031953000417646424004828674180261335786659451807727973043255194141782525459909567912053477480075656253784400207944177591712629624328846324710661892703898189018683941610288804495195651251438723722186255115323768873608943338495455358043532355754376786489587124575870330578737253790340589071295227652613123127839851373493279469971432049338148571132723302633189445596331928947850790553530432991910761845012119359474872438093005384135925617161976017543096184713164633538754855174946455799495092130627009065681696284335667390621526450637337678947737568962981187292814188225580134763761870146661186231773728430226622576940949381325717181986127455883715369304280332941609354710578500885572362748794068001869622496521244889163550481340341019868204189232190490770275122496921936116500307203896344891295891622273600584809465345189638615445686015961970411903494097762819702258198367095810412236988263675976038807607795072161955649035660743607900895748936594506804493244216216873311431011861778926561515077974343923870808177583374899511260620538833673127946545656180005566668459641799920584310083914888401274066596696022685322846185630419248549419198376946086938273881712433184114780434822879917694137806928716829181313551175665017017704345501359132830909010575446028093729473491358148114089786410112259090789088299771940639047044577168606235056506406511418019444231869477264171773262253257790503228334417332688249491397262273227672147423177423697295871912288000731928403421455493889155840501250897060320163346036499043756702493706828697023970640960343810753611215510517484901259325974446754585364753787256911373567474855737373841288402061450412094983126720550096106154425550271534213366836232005849846535540131524422107733858517853204288321024238600945757972755576272692605174654069274519938218317629974789421538061450180433218091958675824855164675360279326938276170164834599007653973927461847333545395842563221634029719522390479144491839437622512445277647019091901895073370610272154093536611160710445846020511994002553989309319110904012795041791122013844152563777364721900198132963205541680283834365684592968097462979533755730982853964017189058999774214757723253572229677705678254090554084324715174458946720220038761695964755018764921446490277499247968019200913715835277408364675829866348743382390059723143469008369027533760022740232787390232076750428364987094222877949776680636797346370488965568155630729014303278723584764561557148004735240995646982404337319054274086123312837970133910591017096051399296134365261675475122784219179851283218196291438689777226294686099738972741045086537764064804250446059433935614169419271224658649552591483717558469933649214764724377307379519818463509869592083711805845240558340905110620887146592922749366964116053068783192522428783763339972753669261818698647593338950817765857982912574521650366642411944359192292841222635747034229426990071854513449702183250048662969235938174553167415358875080016805343007976814011276033830867296753140207050447968805801762097674942197394553909351863993666760201994159682025639625379981345012933674696623570680308928557909978386309932646768886420377915896729502560536429495501085035017072670330206834198287397915705380528009032419515384361864253833766360270156243390500223249270194638129872141936180929933676989833951664084277289972765785756477421234221032657142447428431554990060589275008807746218690126114429697651319097395269705781076375103726748725349002052012927336725287078665541042903329621366754439495120656613514751543702258630918157704056761472673819970005594267344137689410017886517418488694497316513796597632537667061402280735602156143260196170013292376813967760431602914938868546579397781448956676067604899872892325138309840676577107639038744371049888057543157085259353102501856284512126977583420875732793009475540311035833731007986843962230039811180333575601947690668294385717800381082237261224365010367294625618442992932016283439009150539770875245996673869327881706222323185546986453754168926367052463176164621364831034079931709969631877176569301645079026151419692893074446074178530475653357497652843430789080952993159640708365211915139537509364170766320731608066306941937982627110707058629799327616624213809910544654281182385550258272648475868502243396739660371011188855373067242697325480016589986615967652811886686740975808538958748884864801539318933908602335367536047967134032391955461593322675619718231529056346554603923349112339622635694939021186069274235619210281365469363553330899593198430683340047409115460373275295661095575247884642521943203236982209188713728800097517620275217690589130072799038607490206082292274714944218723532817306437493660695064498903930566566494067487383039397673976311882995315730061078972775712907003695739713090723856120032377493800253686479430676719132322971879800412018452761531210789968124119538243427531060398315235314013388782202243938380104512616372931648587864284906599453845035832517185203597692533405501447969076292185531903465885103725061216698893871343787272578080174464018862978071963584685252586032324414012602283736319155622556348202141031907231378197484180769228268188769688782903985063528806286077507315032376050264728517990326270870984606061230345729169560708093065010925506724484857772363490302516919591735714501278910216909627438560103670553677064002413997642195595889942645264763758594768744691288357262449413980179020937860301801290312982719057630032226930084472953419704081330944160425425821566917236218497416249451766346537031662938321193833918643369224801127616116225904737846106644514564811131857901509000769344743177478951265440181637436938608504818046794248397669156106730335292647728689333160083137969527972699053166153728917900258222152296190054703005687999489451398660102595881733291383112108432034609174404015429626767923629608038438431242393168921787959129125436509987418742385600205774750749918146499193809255080558590697294997579803130278551868347882794873198405576832897346223973242330998281611238166516432080044285874062582360627135651599277276112725911451207778963513132702221837095316589290299187404462931764788874047225616467507985686868198250479464761701799186702681103110805169877281754642711282424329464378360318881771442135219034002053258543751097220833277095892211273331483654397615037468471879478384414754639320592173431535691945925194262129316267113961834888312542072433783418519002308222581741001317292224518225095079402603633212368773687418862883650336331121289651847206453857714784865760923013396846473255283200704606869411372603549380294586048919971893118730587161329411025409171295531437031307719919671101927638322225530577842732916766393224621137762961477564242911983158991467319954354514127019239934266139298248054532024983205730030167434439612759173699585288835221533271845564542300887666631641877934624593633567544737359789039568612844733469252565935800601941578423673026663791463657073200501561149881234047123387513907285742753062867214755509041393285917148093953122664867888930553201100354460766187614063616217765051163166405776612840241955392624147520387914634143535850119822196939696208810303381752693061452390570171870598583219728887473481338532167150866986496526625895888108498304185395576561851548191342938665839652441283778354805988404135688979301509271172098084920949450160760245267639854929639581980611168949743996161925552614973462846268355463208218033684913738858574824744205578669312805037210964949931666800584411674155086895886185235810797331876333470568498859777133435544405962794387520205864054540252751652584237068791044035537305351360398511627575175457335924614392643514653786587276604597542014345795419986339716428859850671090749151445663580129608965581224503250362829287888249302269577889241553127455119773215618097529172021544496084378019280280380196896409837036147859494017796736920098939871708540399179380675560041471857191812305234526830434177651386606941985697677446371834034487424813598850302557642940939834096037303843663505342592954958986818711715343794593979043055930077423821106896042744788047827276756390235402237839572132573813847233393438590363216234598775837749374726799536753451119894699368598404148697150221302297459058207097735310657564374019429500400887571600153231837755068971152879190696299003900328999179235349313795223564446398084669894302036033114742882573224515190694750233763411682274962988960121669907085035627682736143430307711539585403355763660667585600209053450365883883239379397897444601844824403706631917666559111446117848909533601661476194867577219566279106987338099336878534374107595835721285999336619578682862420894095992032969404832720496195757316397195064981367300643864795979444188474572999929007275775269997712008871112695807192650010270835900999616349790380918480243371823907133366257661234153550721815837068752372961529985825359290631529477519048153932275204320713241967686805740037937588133343519068590937892288387156341224321976677611603079573506864395590864285264162621363758997903229536258323166043067598152632731156620619049889655604088691279529733564595728225331060493804053590346801032198493944948502434395220862253673395048752942252135017017626010357180203634218770851795662349959050857779303043273379828417849459467848318988309500162438873062687748717190356353254011701054868091856363853072058928265638046327146111223384094305855076740457300896902196702181860266413514247460075580461605795912340796408530417619282985669005004774997773985250881400333311396550938986031089777887706595822074155295043643618212869207244498395536732077275367540562029553282089621861090888406973103278502424100557800252787246574582060864256618405375043167617002733621389033749192267567617637393078776610009081059249121859389224451859431604608987718712697806413369206597092970623394953972847397077712103765599434466370288071797608019215985953872496821386222262047684245602211046438284801499173848360878576047236712706881105888568471677945496600995019144198788598055187065785011115413364273378336573003623948229447411138304820023447293112285927864900889026033128700020178704376559872018807806338351232373223579477132543140538479177993875029140758121706133913596177209157484274789901861240107185599738492270762271103362818342144812397459695653331531929699008196580489368858446685789999453722626612325854793444538199369656545582738533917867683185910315413934229934863341086829527624632187689570973137500900748788321444340397346057357546950924816053980515077265010240996539615846188824337736668947604033053204982298691770479729986609906417460213498709701065235532185350062695070896839909862545916230958649603959636167782459217344038447482340788488577403496049162520457009959506123088384968362479606558337321430666042807895695688830712998819729087120800041027484808543293555902085763885990810726919040494863480536713839225088740295253146965466368566834101611621545248433535547719915327244202421961231739844596440753515707404641867885993095426935167100600417278673059109893772312925067830973428373842653323882704518145702655560543104438599466264219104846827403129345890111851815573483347228449076713395367572380911396561141775385369464418737694909264712533822119444192995988125926893621827972767413183402023970719342617309323656528376198772625783430081421689096856445466336910923559746420444077789580558182194791768688655907579931307733692984710981394219601167407894855610170535687813694410189044139113508394243653561729771947273311131861595185956562578029338490657698810795227081242088569438872440886534966985227128956652367965955422323315353808570422651088700378105865849358624664898007757450123168135184551830217904566033220176824341769524783485528527335571826089770297550892816528756512658604593848670242293432961533716267697964934178659117652996316704346848845686541016688338549384003678749616416925172779971408669211513602857152198004444321946226847534799133724838845057859946159920895894102456392109870804224630090754401008868326107886936622043267097812059179814037445868522835646049239060831922595023832680298498750127140362733374121656206002708575799814539090589384513022069121487321882974600576295565093887630486147033600562632246943074032283885007634655589389143872170085816113575559449226106230834336712864175552444603213654462830718593205807524376073429685321007173549890264091369508616449703312177256633971862484683511708230764250373253491621014408900678389255549434715030247551501796285111040953826271062037559360859533572274831523596153713336930502900006773923905341566891787284766529725127499349203007222947855570544978936002463918664788071673582610630420028410748363539126383333494088819084028983901384985435399317592944144320833999503700902532749014166500952803354686704286588432105609326217641768995851437769615897977229870553077482308084853629577186901352916139884840483294555793519869146354828610436508487559116917129549945600427284401101876913429943630421420462572582029001220782117515734066492051485084571780462704075226871624471287238309204788017398809992912078145136953310134303910403603243534588588608224744863385074048308971427163379003068694978832378051143805554989865550872180390146047496169669870218958462870935024950396190393111903206106943244446305820045943712336150752340942910890001373427079859763592423740157165473086462485430776011431186446502094062855753329295944010425001776678765890822557414857944560441804664443267500925689875469831185219450091388917815580668983662788962992999379491720382871682827671824791272451468884007747844948743681785123836215075495925807154678081262561987102307883438866339809710471510569761599968175151262392902331954419888015247570765066129689491209646617176065701225382607056875346153091582257882081759823176809996121463305650190121176360391894090025087015340955891324931250050965861079374162257183877253811415186602714129400003135280092282211774595884233602205080983834936843337977282550002014785862680864806975361143969606889786663266264558563183620758391892137466891652979937375023545698746090576899547360835966735237568636021225486145937800138639618716315827491876684936727568866457923235238968253490610103492103513037340974332895308027316237902248075446489091355604526593055696326471879119634251205731828526942898583497193678536745746919715236041117464032356028209732319948295946512825902709130268416067571155159786531021077705641634352433966207001298739314284462381135560048349307602418753871267041353424814936123681745658500308528106852306774142535250249853247291235452434936412884826480377871683242545668786380914773780140250111476247182045607134278472438748315081314179242590180996273544050920403956234075115506342521422047556788705308777468706677978079633405926830171756222845581959672317592303730830917620599321521017424485205998205196695202578847456603937263534901000695380437242249321233974089002254429552662968918381851034718938939608104657464663491655442790798052171808103762928342071879154374535846599118085283677771934963196311199222230713754140121613630603590553884021204641947790323856471876907695736308758364781513336616267683676126040136134813023190718230018517630979098259690354568200932410039564050432400600540567550024517454947946782683089350691408764027981166254445550524705457337965629442977628070054680911621103952000522291594061688140755763478770513112949476059680837356794746594482637272728751051940542084522406702527298618376852042918338416495057227064215343709683309085743671781763404395385731476129813448473752777099881521432891462661827950928307210034818984433577046971917955525814919737559592007178272622976616081294698489579765039438747853912749019541515152695113162517209596750674767734552456124478006133579196171054525565826289639688849503785302776560430235306553384517683335359014456892942758849621100325092355091504983594783833272295405773684026256099601796566442238641350682196378274289542839769607465481108844912232720920044385850311732257023658473627165009305164593590353766216852585076275315286317632806716415741058726334220196233942175610630245871384114558169106085032490403626413299802855284876010983252972181737468758856884076540769192797383247414882600107693084877848612201575019999614369622898803646388757798825051487114541890026779762287868021329852853689238621351418738666766268172898982123671737817983456897769458920213893294020891408351229360893250409165484773965285148003869353478807534497006498252339567680690356082271267722927998495894513977459544872093783777767951744633278375239141769368067464147568573059869563251595802982470234786124788848338116254768671416692056936547779574906822932201781458382023017134155784494631295556599774576891651179572212766076369123330187575015617784698147650209659339445512239561549760228929586830327128598399022600675244485332439962264947447474015192324890131446765693560375299525526118882593048741649805278521694603292359044457924346099395097319824263671289194821026872689549683940563412761015295481891772366363730353556087818021986992279964656510034931614230373508015886816871949444441725728045201452416343336987311797882014444957928924346961848635265650168758575395948806139232160889387470786890965325167420315183621980567950351538542840369482469776867900012665639529593236121234282960622616566384897743381622453822706448782062121843408448550106641197789427881501735412666714981555563346838843904976516169742499016885201814785569139101761444504845718282020805067823792578817462273587567837353051121430001146646857607200458055930022641445830154597307137051685065883892225880510608347312392191437665787741170603722243511808001446425861821442782934081868721357254536785833436299734014189553832560458932220475307659344375929242908228433258117563188690267028265959509730545835466857936185904051452270177387485613367021745313395810672282879385607100966292175205271327562119146068859109188104261599653474216306414612340799535903942020524956217364919058619325650483207371671806896283043158868185845695753264149413419539766161184801556958847957383013638900193616894781597325880002430135984737847030966460550828339670484418257794298564720203071128125395189231857578639859944527905188899111982159871662169631472460370282500866051565977523718425155787514180026439733357824246174726615359129815300485319123649255950573794743544012653821418171218869106067428973533838121197813588934558320490565920739699515471318275447218481175066985283495167381086743341706710548581920466089737273458214168724597223913131271361258706218928823247538151647212394022902914021419489805043513396510663049891838272425554166073339652030415021669250756391950109001632284812115204542472114647658145740695077418423885634330495862127309219208997764718409995731722941739422391887765273434957354417085007806006594878273479946090506810430108565293118439977360676924537196220809581825477658599692362742778312961450512164665721928737228135047741780168871665227234466952285485898636252096567522848657517845870909165246288254617214683300690793709896921806730454316901069374262050799775803350839052314731870857600579433300696903841249936920105728348229447353542047343396275810224713439015723558786393745655041494509362444582951035329763254823020382564314182047491288555096564512305248476244992484145242412698334697969646851838842565353280630223316546913002815103018251963805223367395111679573654681505475030233313238633143676137684158728974088706408729765349650145128494431727353731692762600555433971238838831503028364946039769545699726318547700185498473766513893030308556268704981722310482712647146092492856995992353892016802014444058052383470859223355717930805378022436065091264611811258894500397294465043687258652904690696402170521513083541222280671345826836684877809654212951602566616714702818328566340034537963997431613967434487403324519874363831583018724963161607709703525189338109300861096508757492258231180088263585926065732514680216855401633924241131035976968129084430780890392189997260357458530606458589942541230526387066984787714983994329745859500107943543468623688955004402735936021643526558691954206386876380766183041428076298434413631672754549221689433783940712139386737225088204688252743330482116619487839111161806532745446331555366478600723951858052584335256442249987433558448250167098772860733538796531970859656064269461599611724029669007821884731686539688219293050474895287019657444130773647316185698677651404347608708370945022415519644824918022136562912265565684739907767000187089953362525712184223520342285588855398831620367164591045456867601361080682925271216151967671664728808664048028448134717965946160138535705815969760699817789134350988376266794121855113906300611791674005294784772877142618611828065575556857030098879494418505391883761934483337440934175909707616377434419630818557776896445735330396023697369695154420792645309553818488331335774277807344425431832908769063415401821870042227937234050735361627234176134948181071724605875375815263706812199826043875973574075074526730624617157476269536881102865380332873570154813523419746514901331187205483476006893401415786558087578187824966234578022838993035481494211386772455280594049817097244361890067544755137469381588442259050445735961407786175779951123578559819493933409753147356259055757090717945071923854589515280633060126753614073708321893282949815593151261233693565636091443051880526440612828701581588241755826594356188371351459395511029630716814312813352588877938477732776242059766129331394103259370364492506493234590417449083619359274472127813275835841759717828113914180927810549924024626440937132055610587760429556055921456612182301071653881307642764880351848193673204867070744016555943567445883166495518314801074202653660028662138504383543187666656139053848760080792530732788745149434795504361600382013813457769998129882441639271277589738736488294727871618511848681267572172221794907771305140909006896802134082748317313501325998565987010037449794368991851593797198130683522676744102075440124090316856621206430217573822996592842822080123093862123137130475407239389103154518534247437528014389307634113082527742492323805375279513534380200512396948309639006233522436219573898115370426200453786088237354643770979455587472206300744226896851566398851084727852996625303979961446515448954143385614143636007206262482656498740631446114001299917396388275094360651524927533131694841400062814921005499206408003256149723941929813012243149257986274036733487507644359023849249517004391405699170567795283635010451366238159825139870699759260950659593295437932007623684823205762517254328380866095717555142878011757823548919742526897830417624832892353307745567476698531746629072347262653306534258316039502235886345152749612182747379641344902459660278838089156977809094829184948619408592957509720527981580752893518005459697311639791667747559688326820294594145162991956708831910995828750722824514230553152829261610985721651089519192744646966186628789383305263237431574077682096822143078234541647217154242275746687799848531353436217435831020589244614036328806636250455114627333004107706147803335842695397518491689643757696018065197514718135229416576262728933561720006666003473942842576906271277759179776250126089283044643804521592657774388635769730510390352406743258168428972746973142687568581278282026693624257236819357969440435966018355337794045630565043986205205995297780674445067976074041038291904634964781075051186513052557226055903236978118845114064609180064922456167227641246870524103901623141496187578192431423498982814640991539776060659489488763686062800732152618297838034885745169004080892539111748235691726125597932615817409742281726383808085437730621307588200384659415478495651458920038335656847465746821528960226518404643561341123757459003045291650749112288209458763418454820128068408629340413367948571845818162423804902725330555285918459271460273664771775407988791428743807987958274649782449704537907207228412411877602999449176772995193001560487255749910597422048190169467215701877939133553333645399009125327245417390600592197533257587919981328164258514758536191325265342857024043090416090228941159578523538669901328182073997508267603367055125302280031856581334141189151114808439660894551434973512643185494011276604317743892445737511612015158419510045871458929346163868728614331852869554761706762925659735630271110502447639396253423955905607631386065869237198020547706421529514151794217976894477665559355758670221971355138437833278536065803937768332852019540520850524991118676153459411106131460441709099352549017668839167767203238433637106494529858018375682215029883975903091872437306277694387931797801455243016025536134516297592217743532924732044462003672979701247188259838566192508195399541729482107855180105709744613522003836970377875966031180866003366426632573031621927744232811114108682342758544503861664300669757997871165159040642622947236280190173979752898242655585390799036512074266147505041092029273570255313237270243719266432821629319096319007082918807637753758240322267291532948921713599973468752654112787074821929143943133177568023890600573320164066965916412030350613937003850745992129335478809559447648439585211484681377305257645420317400208381215603531264424798947226690953324088116135019306467604276430055234950562725981236379708413354086890358948475151850166631939238389030934573759518604608464022598559867112507348754035390129447912508363436634874199658884486835031430660387345585592555363949507019505884201975509716369094717987713703479949291997724493157054328776450696469532779275712023828538394433896373569728342952964223313271208267788771511585303638227391920574908818811647694242366620130291735128988228540235137656878672423785912704912468725818474639942049194167780950142784381430637510172160146803218117548093037404802580438769461449492066946437452637580394123440145894322857612904326259190282749739315995800689712742510882200579922339059677771652545412679294420600264876837831532126077384957079453335201849854057704833970698417833374442457315851676361795879362188644705990245397596195338924276694530514671721975207650086845391686111788952022279910356686697299966407447370370509035833466822341423151087077682650936430836309521494388444271976257117097466411939373500509168884101612769510833083365180640379252193764659433449442784215397330521891044649368782708569039898528081647628320798416556417806311544009005225648847703387353453230463827052826844808927601801954199759837207875252229412723264339780030487947836579257494805302779876279797130820275934237275425347969155659300887088594923034104134237234410869076003605403116962131635576007950633858889772669951456499619164824151341296868686880171830768935991505873461456233481882049764306271323306176777548175951643211796816617841302148045537696041683762092084238785374449854964073295395406479776320924102663595457028434426128950080516187633006434947102779560845533548144914075599875163892060470138538534661126983643661070301833712128039909761511357497845848581101303933846701749925581398072707828247620573137895838661476735684284803102607031179264522792354475252396014612515879649270494381252335375029739751891456640593569239266935042655586945780930029428161617380298843019856199665814659110298630123384669188581814990299245461643102068040697830095091530032926225596385101229138670276363962475295207287073018728606394008469700907367020137554079109078446773928419421494218494946692738832644402042639836514628313979806251194353431120440740512849961165848759273412986792031584893721466614823404115132521141767684685786190668987511430875109973178994106015554328526844068283655507187699221180224611489899784669920799148643774427179191579475054686675296266183977969750142539505199323201463993145455052989883788336639678459847409648214082257699644522484117951876217684319687552385140373964513293157131354986253072393922094397660932722319241888915684603025518988694438868146250281490329144886636179856908588564897290926791632127749144791935987197629283526557606357612307969787818346390883169701985518249783690350417187247913631533316291272643506894800928249300702134821943357679895075635731820964765848003554273541236785927405382624204431009992794778252363307744224846221493782717143095880341139422088575136825360034783332999747131836279811538361948525839680278747038232634981125285593734205001945384667675974408341491924751286963108087044639991034020479369971859147636656231322115823226550099332693651755380780585286726040207187808528653240582131320389609148463156493585825642615616045249115993377888900346731035821797593653684514053488697101736335831155424564955415908880282499497976260639119642333533581235734951724949816405613322996875770140280423073405692959066984244808953554097425047582579236595137022762488259495844985092743642613205510550413831493223357798088693361201445806544985321569565158390107601626313089559791121538574801471407658698052652273651408829022431995926016288835832420521761023923304328659474859673882863208505079339156185149927743233687918819531750726739143844515198361365256817026795680941689257376974825507721593208847664754287110407547091921445582913007740832649399263094938074824077481261159860683062467785284618387987537417140351229843148873538741510440229857289103267399403981935023548662560543818414061621220839678009408472925769377374044624846614593449463480281123687357166621157961913072678699841060297771853052642562052995394328744563594817441320235420342889414878044412724948218064452991349236865897841710886908391094000350651808611299738603803540531279083066312664569349756628383628145501663465302448978968458166964507207720441798604365599744818575160793593527272088368457422453878400862401679890159500549052652732480992549258064295309933425184482242898408149366095367104767643552621177857901195462353867514998404058876566333178226025418784008503294358897222305125306847676377877053978965201137743191881843801562663397491682854336998834953746323095958955187928420933797531259405724138592498727060418430870556100950781866686246665982699091652925784406082847396987498288356062136804296559667123513720426332861986038107699767326768334305013652061216083554747322933292250225536332583102489702138998141271699686996341805009680229633231036275640957788326566834820253330274721057039712706447471140294143264299556527453271368796658931528267353764007248948105001838967850425009793357539804533489250949382785839833703022306978482729048959750793316870193501354340377186857884226344642522392633969095864012332317351107584370667212089803829619919401633326512940798370670300516879216305252601838621857647956147603189752715137565181530680745383716382443274639584554544825879210493357572343525556879678662417683996944454030372361450320383855488515489926604857373607345006878960379977912625513586932445478185028077710122699793345548447373966949235153163441672117698041050743343034494812793204405785869332526162850894184519436433904673445945463616078720443895173738244988135179017077996211571868344875655191616218034309734086588307985840953744844979373266915603716943997987044359904068560421930996027550362031888148540242654412401161637975879808043563987159997617303680881782333636745250852267049744206336985471545115124934216895353097826405508657088924071663607082830575015208830036785674508534799847176298209887655949941735803895387740128907020611611503459534528694264973366556960214310248409979274752617477339517862503280061056816233684674737636998178479365231897102924271376389743535163771849596484398067540916815370670272689629039027590941402881399494214689245824813343482241283444410642892393246509414548164245913817647841884903844578897063134284169351949233045874298918967569273810660899168524704714043851540880667508840543650622362878645733478192976842572744648038359929739582198523045724954950740216730833452338182607912009295134919920569049072694871459626976428205257216174858484363480147328240972895633756516688122495210120469700637397581532838901634412602409990321081641884370656677555588655680636014512897999594259118367808884680886574002536142905334363834107218203860412793004459633399756646376388676116189916567084661116587648591503102510027257244471910700354997876610431407756658464306493195620475004725925264606092783947768631876125516742315199265741109745330626600033515502781636298497763728289523430380696690052305689137224925808901213401523840072502227086679204558363840579676832883423483217489413840263630805398704707771513148657978116673171866724799642580218895392766509531289836193595506075115385807105530038367417268064104392869035421808730658010676998761446320189476045010598194347938655304347800374288951258773370843296057125501648026547538958468234767334893188107138314141435453356533300225319763251984636565925809489377292810260927999238086478279665351767992739190252980596661986106486625344689133903243364565491180778702492219512074033664483750415505831176786688606763028745449717837559898267784813230773427430618781957732448314671359425837560643324330651991580295109553231002993021565660538879067738916333693710218755573269262330980080751193202250749937370772823437709943836405585640998782863658709486256911824586513935989292486021813814093159387999597232425779002364110898447756493651231885059420550339318907473045198081993197371693462554682065572873209746529478999784632310439909597264461731365029594089129914983169276516772444278335547431469962284401797632990991019284036151833640062780828689537049486702057347532569369876655968417767506614375942153076861426693786069553843114993993533505907780673165154369422591105010440074986642552713803445609167363329966666212199909275778147806247948582828525721599830462790071470331630541177719482990549528857783543861055841590627207294827668066605216866577803550283337729450242103040518464567121118549314695615926731303365714957511728645209482099087192377070695976225488219811967339040674975598095145084448643280921508279658267410957510061935889313345748637822154597243157927815150505718920674938946864547205484624884622751580566921735338228107289340720910741329594652899984577578438441291318817487819189627133444681732972094106840211284249045306546400977298300930417056077870101335746670582443400420985631863440936111569769985246063159675983215942498446593390657417616582968248576911079625611226152174421948220629656362212934888823756784241678811135832325852996641192591728245104466275478924578809665810217085402223637288137940721353293941327480163139948131106049494906495040207656809342153411016188247936723741315919565296287316011732355607766195766616942273814381431204590990686515543980829581107943670909682303166026978106447109883042817165642574046837742590171881334517141808051588205611890337407119235738434450785391852680337509746736903579889058747422294167826021016365032453413063345278298112457717572726140362319434279610136798801447480510166979437881573856499939458084960834192313010162069134235995942600487188579134868828826217952836704926271498933342788347725248608429242893882492945302037039105879328922027520714123454131169284390512860864196179355794963166195547354727792723957752097868310663395837021768951790642865188758051079136109036218392978932008295958061295227044362203578527364009007954161728494536463731307567374232545311666598841788354571697978950400391065038687322668716642868066632027424127594360043112718098192875458591297295149136482277199886113860735744210608083410365849961423059753735341012068907535481039190984058080752431330419671777037675096236845162740185363920736118218973807053642091948060861935081916585764984753357029188438903441301570850920172710566667334588564460855545251030247585329453737280935515582872685737941022865233369854348162743558707877983186529501633470302876674839646532311194343425929917819722340430003557881069905375283423407846660068276747414457335164037988123049451141352211934248798620682540510646616422368059835019560933916762044731220069820868003532266506214899374571328651919090490926413375479224194035934478930752706699980232909788846338521792020427940815954315561703707604719492798941764650867822590621724183977411790437103708710863557034485322169545748358631963893876842811483426319369212498231432427872417487316343442691941404600858967116273381352739782353537042368083989858680573079192940758826456526135251455405366652041593308513378530354371623794808903292733298683907196785117266678836173785220559933648266626645624608923541511616706868062358358220673970428773266018166054054679361968631702175146582047266721220199731391849047996580057340711098101072863260879566186356143235614526368009789726359033154908218364927636506934994394938312428703838438835980838239891265025646831870912335333225477434853310973398170169183449320941293540741743858836361503036614230475281176503822781860488157039474877361140975208585147592233111388174873016021533149862084807746081464625425377516499403987967829553993770745381839861531316576868547485347348524734811210083760908249822966584533168352592729317724897967773604489308964968078456687201339615553140285486987712840816991827090693964330352040485979504762378741646671114232067439921303377324454956125598619666142955217545666956438431182852011761366274648729398516861099758356909748174138647241947207311670452124738639133287511496845775801865710251256586621666361754196316746546784703183911433577939962138602745671256081248681885063415752429202684726558708658012166685156568706217654374249246921297403934532953849361757336989482584278443992994252988322077340879311472923415544532355727428273464255474227922826980865541590487618207462828008546117589696884749712212171002478944046567728140232055825719576070825722367512547798852940832063645741721423575151571616771715276604804444292170859635457090756166175828962776373474729923035169310361398208380836638114942698852160473152877561427399263004320356387480698495767927547903686501612472462486209153455957638684997585306083252875742522118541338232710795100300863684536518387111873243488959360519455554348814593494031473134478705157356200438938851755433480633231567164388800346741380676121482415895123450281896727734775393097959624576702519619328263507864516653916668681642887927539128294440007700478698765606106528647289395463902192580621720129539030904936758258139744538544251239944809996508555876533903398858919841447739415074596334908096148634936853809412613671605791551551570725681793407710411341224139042042389009636362421593431340066627039005329322145221029926969386957854720805787262206750514628699172965705609144245796936144553750933331892001023856918669287369288169210602727351302266338601368273936525266158361275204906015317136894815913978299765085553559473533258830183989769157577929930076310354105868261110300906242438962750482048391137142621352298529124509389529060587012596776146191476258305728903253485720820346171023850220515636097473088452645548911222265153956807695683591647337357250508692192380737521963537372140000547569888284865941266068173869280139564269473352108443910992457979916099656454159466721137483551337183998522845667234516870461618601741692008640528478962179937323345159631938919083733570078870547927302487500242412563336275929091589380535754586184762228873967298590877528029130438433083895757296253764330930746621133263289488101861887581940664351682472152778136327231156057165781344280810463965015839152694576179477755417803107490599546528370638396597494353146302795542640439481718770057641447828103387241903396474292645700990602285903265316122203475057614778544186940749519408397250064961509514135260446517093164592940813122583296265759586030416437896649360632539817834983529362139488640094718949141284045587552667362481931217684322666851237308213458496459921057860118940319086502045961278058259328404869347279419032332151306868345395329089466781135291389567737716315187321396965551033869726746589849712502726765670167774255328327024566460806876483915084883141633092680167067240274547801852577959052070621687312275864953063932645384195262299633248772117092715217288397024487734157193508975633509787709183391777563582443744758210297350521314584499637590014676084631695874639115742113263926263056345495883553524419712086107791298142305476815289143923511668697352191453826367708019234075894656448138022749552276420339598914542214596747001748645616769109362771345914582451519895572290976593934385960102831565678547515351989740133542283303724567423260906174731038742681652337771898667893077942135278954871831397843396339410626267049591935242318174836628570928906856393914040141593601673233941899138343456051820464767792550118297265966303486749326894102506770601288771372472482797242851192433264581968543643452628299043906504738747671532822657920858907001358908637188636362657136514391432032624785703058807060811561460180419935663024069221055120669121399086217897172400136154185207404618618476412093338843007749106618003529268254938153704004499259004273478251313993073173623622538389287911687512551060048914479555234422071603553115917083858362835704985281156219030691869090459946283945207035179735310636691679292209728754970730548909462105104943079607521679568189380261592325592699845163721885672827488262228451538143234806792457536657836143461377404332878616435498118794245808805638813652372111239340277604051483116985663123568142865133256019846251780810789802971685218496644368451375045631938856409706139675143138056369452549280569788654495585667394495775287537075708978591453440115721634224395918800903942483294128351413115077669398601612883391235237922305923447716424375749117420130293853539220305851279204891263531125973846501781756862760696585153630127430469865564417688209124746655181246050219758539931083518351951851366773634867550943937215881184964073608538549225308114178664632341521400724534537020298555022281803172001958355054802193139411947534804211352170413692025052127439515139107301953903849853577424607032955755107781674903798713280429584629489277003542139122486845475034528645356293581225563393685306173311119203328685067041953357300726477345230009880681652099726288645766189822490538372247412340293948198889432563917573182122313478867382803078072687751916942929145694317768615923710023280120423802356443013159624654888568048918071614717109818830649631873470202161602799310447564997032325164874445492204435093489570950258865990233256232827458118518870577447700162803990227992164262858716539443660363311466573102625708256394130513556453590534759628704858849681554995700153316526475108908800753069176858554285213332258349942430205483985455471298238180850835799385955596879057943164946803040002757662289379230039544153526476239298339617932941833013624010632548160364268113236956236598317392214676363738797179376257691852780619002672588923735179932476938261150429083746002085599661887221132639659667304505438081133257162547961224899476546484795963821445311431500852175055486432366637279231149497678046139074069242351995167338520851292570121581960075398795307360131980063540647862557648135444992073233116425177721273444435988924169421866179760252661789612684335975428903024832894703316712453399019885957659353937483829036355298038890003727220574839263812668183318994973905673456186999445462341798090524334623014658042638867547593814622555195335021730696627500172778744952555171822901729490504857264674540057074458331830823251613069933558377739518771040226452420930362880034881355190007329267644866328774011574749624785589179054410623672992960453351951778417904227440813710722461863325424414614833482659094790885907215278932781645022163027290732545020996369704556223774388245858164947119666528004363787342230341072658108739694837223707485569098165388812241494355037495111675201725078897693772286580607270615301779607499236294785994836059824363564303264921589948018804743354506365871323752236067104429689578989112816026056437152765261365403520000191784715219190628173492883633797321131381966972414962138534858335651338128853622081428446466280144693089769675162583466266123478632719332195462793530302248529733054738554548675025436372067337363325522456635165047013877018014245348596537146115503987330320218880301080048720016000590927324459480238587397251122271118141958972876785337206775940013688897606192796893629366363095831355779131529687068720869539033574978680178439950582416876327410525310501867758387923152086118088197648617213870676487256257944882065293802098118874569841367777754834483186995426121068656642263486854184073390798372468218232875839207228771924059392523105340969188434749650704098198755059251324045639640210436849835331929085808834032089456300287961905201978820389372068105192628462796274861345821616713651579121138774974853936024177090585863991340392566874900310981657034290797361506318910605803304061169504934830004911659373982777361339629533016817105676616920957264119878524134726898768501746782345684661180305322938928731435606447219824868876776377426249330693884510396053097567461082542711001628247949745102726548420494193862311616463480649666530186569875522938450025456482208779463276232785356640724856274811975723543732560014002601775676857805999084668042860121579396514716961176522415828742074148660583755689682099662414069440301388219608237424629446152083198989935890107332322108672714164458491516586723099546166541201933741228338915492172243758851794891980988972696648037821260063330392012657193369874737922537543297930742828761058881498992202487177899330856601292823896702564503722124084185576477653877821086764349392720260747801161716059905435301127730720456840956886278340209936695081423412832726620693004634250529775288267703064635863688992784129773041750573087611273162427198605834327049627612539745454222730427402743593967623280425360111472808857695605063243531915451623032501859055593182200138305872472322167932066180314516834657806866165816284886840389971069540701296916549090558105826593889597439073950700734558191916842970072438893041004032637653307844676383957110889511725819534381117850390089237172919737484545755117273906254474224578413563791934568091645087867779491060613329463516511210472379676141958574252717640498209788460117106361768908409661014715909238509084803148545250907353806726174428855812125437839483796496005380642856282493672717810394107078614913467342348294457961892681539375818332137645830744033328926013255647162819990784843508531957231746750207273390697564818436539737372150582607323843130030259353001393040345688714624094745077984501709471999180235348088418641615228390507961680549002557117271992372494850940535991987187571222209222430327915393019320341913969749457578384275084657638962694006166319270880961263975023682604740917204456329145545485303952946777932515964225360698252160048570424372268825929762314112427287823666833755711711536153079560256787374594193970341796061006705136957078304768654011232513933402798930196750903986027671404127350315518000103189023291225146541092061697152605376593935709911904830372353957987604842456118734997674069970791671038869949021364006015068406989621900044963520861047059024447888494791746243757340559242194127886472382487297768455263067376497893175075606095126675148809439617743200984395170431608747698528855995460933180974031664303386061303261770940313359963744521052846148211652621399648859403177000745268992020610580247775249579733536824210113701182120284501817060855329995074869256306364901403612966569094728439487651150195162310748240604401933785297358647396683209185401887269356789862317385946589868943005275316928525911655228130666036693550665777239064379210244570056827465154970329361221074413782688789146270810647326205958444668043757384842354809777564482795152550023092089491458654293526797303797081954031927675437021782423004704911936311285957821466182452331026091380582476828694623413228523431611369311839390389724914875028740777087469138881036823050102983326290413062854918169211069686464705699561029059075823726867722606261603815284501601651202866182913156241949762747309049610272007412388305338277992000038728954263370552856894306092671181981785233367413155453916966855512634935885958021055369932643165369524860582530387329867976068756589202041134515077868406884072219859561472319015087650459999843408458326748397443497925706953980067904450073851942212751974656385701516072815412092730659194815353299079131764142979066331790464238535023546068313549587096755759461201023188695983061898105372524001364382425105639808498624117301679438786940000776710998688267313906648626726957871089544179483403976498821376407713154982887037791668079519228501509320330375957060037282605256313490321197057431982302419099522079468644033202601078299291887300811116204474066536545113239656400659845049445746905918879596955312618173055155178211311049998109373453924188969476094967248248804172012769901547128907701196145400706797692224512308647600417744943810598946932177947058640126280942792469112326756740258050712378901540667936201051906294606352219693090810578997949736239424876577447514826190086942635710049478461935322733004852589821973668160072721523447209069600246362943056236812639481037641155826769323131288579327976805363491450366803877940502197290187795991330922424090087532592886149759941666399623033290703799800888820596386046855303687321857339050837579566237867058513902641505969206061016494721897228103545095000151791945114467732973181508540890284531088919349652204036876103035789135809692215692619915383486027466451050226656656997126701993720328606186560258454533439172690713694750198923707524908168294272007352244164730454521433609319560951997046591925700784858817389413318005354739379848903581249853752235620563078377867221868078498619486034564815518392795531777289754484105102971381749856318195466477822533058491026002220567557552047679363469133493736705308239960704730267942367838301243231545212264361841435380540234287055850066125149861211868851784927353404439261786031312267217542140733080413865714959525481400406936846631236446378131291900081376662242293764289142715166436548177837183386293364052847426372880071781163627389013302789003152385612182740122243345612131132312618085573035770899331717979614579292964963925939691843535451183452011473787533928769536894181083081340024506541604556953978551007721815774513603262137934639819885400854767035651781907770243535825867420974702181954187181946948233337196995460346430995555411540523148494736461510693754513289569716021484823400804567250305316323328613866695701789028635524068670835998491209866501771898588989732980561824827865422645775306028313883824332017081816564125487420467550218965309378110429233825310309052908280082152867976990293612226735254501733876045378318238480248992464172741185602982191173721386106679765495278440318605899563898121800235541192962108747555009491338157421306877442857363399448081609249339048397865615554773758184912057482858881913037832296714388173941132356360435518296725466314171146069010816373261415059709926899552378947864362680771095418895619323600738893490018980164972031099043974699351509859781883470969857432529272394455965043458708408791448680503478269425924709453429493284273260587494954346127971268514291287400107451469931233893880728207514913937308068540629065235372300592706367118547227472936527706068374847238940618194867114451395274402074335534762721022553526020959567862916483626528784850745721410375452539459451410689884456008580388877519983337231820189416008997153612914411449766708846072919456048807311707375065514702943864852874562137598975860025906471986024597309911331037060582815127597873239415637665669538387083564173891451706904210460449542414921528732632774382901249957822429101127053122245272843022489447748881881982735262472055670484304028705330669794403435395661924485629573102082602322992743349977802597669474564173637730343607765324739565938017947652767522177419890504674857596658799705955258415484199045958434527737821858098512500801969878421453045226902852154312873546958544211883923197631738824000984386759185177677979268618524654952398165518967482525043448897795353307892853510517273931210237121387775957180998145886890832554981137375298759458217743220081240458065631934688672124456860521801351891817597661591010280327435100765378324440092802462326684023965925586584628106425288650048861550977989262416784701132084497962144504070420402878608294632884657021292503106720822549264226533957142817444385398309033963949197664507959644825397489870233272494406497695748411600376828840379162255932846415433902401882864948311876735044320315214548575157715910685342029569782756084733240141972219496455849871680147390343862356399777009826728427858171989707535646555507596156172949496788556336091775394273540054664982111496436436374841217680276322928625502891973396607445850752185292312018136730364522185062834242547975654744592666779481889580371059385480392188882915516184988599879796025467516877324039002069655065760839121457556884917391319681494107969545555295702508078151022621719539221026750359903802657636539169076499968621525004898731378607205166440184932577416150230234268660414123219130269518586912935229886657222804188011016926833007078933746357753223318862159537066992668591577130697458145373395307578095664010352271864017042216478735037516993917248416070187858040792159998738373474107286015470149701943125614382694038024457219602519365982084413596269045084115011711319382849609857451933780940579156357790614656520934132417176292591268288189502717389246640779645038725367271330469814923824126639610180784922636949412273159794811903557216685005821765504086170520110001194964467079524212689528083479200926538598522029152734083092173989588392011536535412338254468318455122121276752699627096190229811254762133728040744621613144797660940283421824355732549292496509733019588874631363276131412319787575594571505826099615796614344531976153186680448465651059279544251619439208235223172936338117436756319313018694931019454660572359752918930210643565780118166674472523176602684407812080207456093814307977351340364861440248209087620526931342483106113563620048335379181436051472098076679843482014808681734581865040410911288485315211350856261007653312162641601190018325804810611472040249995058470953686234849309511633944488578264398721648648806457326859471646469229499589415770595518730713443654875828379846451756933374754481956707405722869865993696089430996113291835053799040559488607615563989023510138078885446444234453361515013478261323924800051499357985965570758264855190394402360230862540745306764400387848443594181733620036859194970222789098827355099612433995426288475724455629689151323428274181180223844302409059568387865771869401645054342343979464216391009833982392839657736328948939659609937413950878506085457108888536353195801468230831586811361678992950921899517728248487222130370369924782446441037689329981147850721285299628947664037172313125693578360695543945457438362779718393081975769689267162021699658508682460291053997411974681550553690210370178776638813716830759069351102510854288050790815918543202301894701728472451644792860525650310265944045431978665709650122039269005673230569346170491267827228449597471722198493347310421583188388268871036478931966394693059014728718523316747277506611570497964036016686561188672283854817818367455380974015752245247281537221523296510331641246313741153725171161452275525122950079854198904722048482702366653955946272729420098750520934499274053659365225018943105009021277367827031732649539931501223548818591989396059214558720429614905793524993163445650873836822129901081627889974381752656799640479038343902176579579859961120545184524204431533600293014292389038781051428940040984811063708881040756389617925616145451469873979144793088516840929180020895206266486454029165823468648956745276387507935274693591394871129499071745763337012325808788209466805762551177784403187994969234658597313616205470087755057584849173848503633045115311291664669011769715813810260985562634331984028494649218387314906321679611729076872914550944257030475735693214354633525822552167453029444096219071102299281457146180024767884218806281720431739774005790326169141158167420702738066102100232683852810445834068255918408627323831160961456966056772674462039789305429477479407957899147960811433702207221407062400159193182428597121363584961404396914728685942537352284335025183818844698266051707233570599200461445774771113619055425022918476039321688449107107686731911400097806686905007198188051456596854718807484392335784116710914218025789214726220957129851240785033148040704357557280456482868346158381431562749692796273196387950144572395995069395049500668719898389776479826093134493970319493068968144603840757274000437191641025716884491000309396830071554691500189285590943503506231680633962926442286808147431543413881442215742977018386381398615927501407853217513375858467187352268302024748841581546832577646800728069250575938949579806561096720060822975422369157788104437717664506903564432775160673833063725568072073634156796900169188691360431226519381061058774316930552559308568018483252615460996159420983118583933943165155187604125839793732601905405075394722929406359044559634836263988848180939795588600725068643844033815281252507418734272282837118629390568285497226087542323485684283469271712572524006616220564115636829702771519997146417788848571573120704814083328943648064577218764928638565641523545109457910075440276471872125419885196200383014808130167177600445667685616417306635355136909181391103134659632517019508192601175348899751298997249319151350353334048569861174515347970598824226120043271094665762354397383346497628211330897800761154771424392177445893815357441108487755260200641199858883938705525149519969162381725325087380115181431666426999042521975216682807191964095906519064906425030012628740923897115493372404495995915941459583211506775939533901940728825092931003389589701364710258214978039532877568213918758259526971069355561249839638799346619014686186184376715074525974934671469547219140697520005321807796876898154903632195038640487571223066019573890197593566759004094073151993870182602160978503859021102607031174417374076458306651922714456876601513728253649469789334361255510602535848198154553068727239103364921802138263697914907033362188419146034100783735908524896046505659710299048470516314297367912430480976354251770773995893225902017336017941280487762545065453445471256515939617161566223356297125753990186432990897700538241672693486593996028713818142338242087502692115620837872764794249645786019688358560926513802303002255582026372745289792734718042651348475608552447817917078487659048896537332030386812806282127179135930431096713387335135296426791574880992617239225047593309910288670345880585629697988991654610146824933422195118902655412177162401471469208810743581174947117909976714427950949673553060653446229396782112442188517016376493562154667786020860634075301873835475398500810037267674679279702917277850978401530108061253480022899002352359340854026566705703559839178485006184308982137082042207704855173294017757079968621348698224523699701029671547431306207522376208204228067857421088284772445161687255327597665402474331703050057120037282402150114997529770753379024247308034010847150649235039360373826755243883777006257728673376373246299837729013833794958139094934336170447296269158983273087199954752421764754776897435159387122131677962233250846460058694505366512534377979244466636649674044386790126720010685849918712667550703357302827317377630554876820644409464236840777578220984707666640727656296022652974054560501338919938051493972861443446362524169045060660546709432409258623134355145812693365368603297261011182674347859108498536200656487598542040767799192876946449433676707267952712980734348966313105996792759736611459183291204874042679539741293338047329075364840854371663382971411296526025588226531201817153740868071475377746575106369627996158754229577984122522991769441058380262532483451083546821724909146147062589012488808528047520545570128479736133234692334089770555219189200193965828651343952605994273215018490775983597836803939031669422571848972028335083094311914934200083946574120798110118635001729787598875299027005128697516515136373968607664299191353533230812508551410963009794088919658212703134844075757223960935764270267376822042647824193446044612535217912734750608673175926848739677581924674698037430443100288406788173135768018748368958630547975712320416354386018094534852613505953439350586363066241759905045984487115191614251314421817548258926544678102616665703915636162551526395814502641454369622845122577584611212442895075620195278409107017725381559171602767136493945632583125570614939127613926269575280573355642009025333684816143212636585229974513599742765734145639251774470582597434301918503411179694286129025978875164656123838738468920460929871476174085895955410366418135230779813222788750367684822240292186011312617576488582157517117707334320906675678920367419082431266301874601566195004598815608173132473081336483885118726682977693541764180693614123062941392533235988606753934191166822263653009002874643086234845369160372519419810099289993314003537115003823847407642987989417236539398963756495121913197867438495045612110655656018304008656989204730602181300092517310808695759800585879840396554391772180575464915827324593903097501612560752707523236016841844886587254656831338879975730010064219848926866345640802877817857577198085183427815604300415350241141573779559443498893721327360051375826945809770291866291988143880071371336527370731447603212376251416689612939789200017364625173679769664604914803630751359797379038943670499881655580136637165672933514195524034884098764039006011345033996735169388210181247431909941295426215354589555228091029076290851443550418896683684738676833742127423089480490644675003635989385469514789685983632033632817917698041295324592126421520434961355822992776002257777933210748031997979995229595442923225663158448463809281967575306748067721597253659520517521953143387754829267834258466468095234440656555424031666003549499492463265570145198298913128369712971968662207123944924134391306942590624310986104205490790511147143241557008526380696452146662579111728997555565227143986648403599676028565333065265239319578037766013496343491323537526990754769370746492306581836897763340143344560726185987588626698259898793285597981547363674592426389134832012950122981370326310157243463526381572517467834214960881443648119642361234516211439277774093948630047752918802669715618445058704115718362522827258755623503131952133885987050210916804764223725933802250861909109101104673668782461583574860536472631109714131056375763570251191956519936912800947304541915933458843162696245190487226676423915581100687022652397512157861170313315113593490374063159630978062601493140872807286655682563839247496409753803523479866824554433400105720030280470946657929472097956798191319028213310751354213897538804375982650712205759500523825849532616727515651949585281437698401140828023991443151535120649547126748433189691589926872060143825555012656591931418979846797516166821407680178433122941898517706826655140710487113865292389595139375198087078669310405175892951039629121697013070159884667610024001626308150911058418782694093493447836299522563013441439273432077317567094386686538101326420716091745305355689142310714577751338174121982478213128778156540773555153866634824402762248509570554126219819991031737033700964028342986796859788869572190467114145761655043144401204394670776728612385033493505498965064153565095140486938565580724896419764004603270151089165423727068279623216063315547374824166990498245135429971587142426922227386878717763735068490412468484680550210692616796887368296566963835137540773465474770117796172549283348120601163057732360677583544803777174863214123420425826502448431018617718278633443485517575685891267065226790815597741091469968171892107063136327648579493035768429974144720892887515392741262352636931133411937075449929313367734115670501407942711791327034022764955162277552981080643587915628247736125475466155200895988276824304808565915533712839118957230092865414755232681345737862080676261699909374475149534816844675388298296018481084389946230756801359687379057063124119360657652405551503542401258319327076529882926605162807502906313303352918387000350375588960109592481064797394919572553806581885733809780290481150812166800752994211221564688488505835261542363533464397511410793362432781207196535317512631345490131690135877470347304781438861862743580704206793852344630482680005160649830637478129615305398228464757760476897869304381268941423972441157065709435631514993890784549718563477418998995218753191258428339330679021712824953173223092799287706470183890183369385638358276796575411591055178608750581698865640157003663094713838004706942149232366814105019667886404330397607174108162438561545704647255798363729584363006784608908923092958637916684862672277476887079773166665647660349674998402987871900039072776591750558979405796297798263900446305901329287866236923950428319831053363715310741614556160881650940539185384100605225537853536577801726455337139153203216989623310623514057448703781936416712710051952286149949737378176320034466384233563692862113053570398505440326921657648919729960194824113943399016092793620315214993853441198854461086122396791060333159999856885310806740289906997775678389245675402342412367425171957425010037292216397682370987459472651373974036199118306977093143243197462467785776918359998718001403876851082175537681300773747543488760849430711657054307636373627656583392418349410161509120040698645540551815880064427710598213609162225689346167977465779177705436032674886138263669563971053941481961952744125292839478581176945532895937691374895536747557465657172759946895346203532068599332994425760876730741082824715534707604348862748618831550849682016097268327452484819150869073055447328427815949783356716732547695952099947248341981409616362440923176262575185444393408991451307497853954361233767374586972021579485711292350242608216455173008078097565935015862388957048741323013375099407349261516599261647680529882564339785577299607210711800277581985316773542135012815434866116553057097879660913353422264750938928199789703923794010717181150386784765850909446291770992460505626498501941564889963609259605969308604573205334558729535940111171832209377845742642116839644221237149793783953446635428285144849280152708326071946845998004837334519221219607168626118717099591831001242300622957870150648720987066810459417613375029479165176802264577625284271906982501982729920832072778321774238052803880712954279404084810474413478078390526950893346912203588158337666252817498702472674655044960633556499273743884914794762166486746074687882195567791585678641536893786116316188849143395848308702256437115895016471290236497147137675224707629020251233772566809771453224148598832161551412792746964441649503377497388564177065757161105598190797196733698498598277771465311935827371925449853603052494196449154307204559365469385469677953126371624028347597958093109906257839870951118100095404428349348203264425034425201146900767335900954421133783053004084247056111582296404086955447827941117235883176031062469488239603065428678364775634434828948697045210564788422212551677600043688064024139972381638433679583911935303918264257291869468434891263588031956553377525208544914873475907532063150878795808631076707947479644780175044968681894329037830252455382651932224366284073568387481982541633445005453866819471997004543325383254416550557192867604878140871090982009140738313409682293614706350724303443511575389245809792299341823603933407471308377103945101390323139904237597980528439833564347874547370705703423816351621243748965921812340707161771128234283541280260230364527479216277890784924990150405551082554007518163146319715150352240220827316093067945671633384681760561739306013149145504465347049697977505376713155630836654201723738788519644881289193587944731624463783460471762052724044833054381338628078422967244465523961992423118669104536501251502554626571044132737312496088505604687492711608827000277857532842881397299940062633973214206694071464179604113245143539977142282612983693926809634236994573010041997198646346503195974404785318532363723344427127985965898318461174669213426422178387476496218504773023395390912068452791253213915805827637199368326568947559117691488569381520110402933525509662212460635727746576684068257997337991227927679185713465603498973881226076913314311460912497159697810544047523598015465466988698032331353403911703687285246287601209497087611661874601531536238441576653232493393998183039016680725851270260815420092040670825876349435416834516838240275433450503869678539859554726787083394837328584465969442923538884045337546422077588558089574326898489386476384162338733553442340363416887262500584100755472165951904745741993087456622016242446421866851236502159085082444417632194755740964492102716243836827155691303516088151427382297951477898933421464117225810533325143115330810410527412732943903295783399410952991108231134867990624739450296975730976094755562659605576628682325378030252170517644146250256526792201284995270507340053144276809830194444976721409478928583470975980251009413495591937770697922374937265612799914493399680915862967366609082411827662611037903544326088718295122795875289362160676107997244753637472400795522707091753763351952125583091786507587444686042489940691787662067819750018037048111458127796527691532878336098144741473496962254576489475873318577703473001221221151780284860794357000696534832550330984863673906778632978770970751786435054068844818573257955319387842900154357037042560423436666501975128271093917616123111184517047459378586872930177983979615494064278040682412589048070656548870589931974186969084646906359478010819202696204449661767729201322473236127187899664275712121495928633954087953496563055916321194097693107505669317264246923966433838069062962089997372671212405565369360287035900558472188424821164811971642725379558530274286199540492488317878210279196164157593620988194998795680575338769130737083687794549909254622241922963357315881134831290364687305007871182672607983009306638901183880138689639458063971681775435043101464211230439832039222969950423920421808456295208425560804546674601257119590560202043582698561584519502992001482958852328220815643777732200241108959186060545160678958860752602393996567690930659269200553647827823145652891095979087443690059793322713292585289955581403618974424333825485819809634293184334345451598122095777311318387517997293024208302483828353684069478119643821108071419991398810559524836442061447594716428828880772490737398780205318505064625173807648238107548530201033502755157090987075872390794658669152657581849983430301252389898273679609593707340164589325945171008951317130410335797846396499647105655855104718669844825222155788874712057756145354371608069963063478448240103873937648866574290193898315696169099161942745118221680293861924372209253142236235365363043397682877382333123294160779115701931428059591964205632176264589623752764665178924612336690601900353064576422159164632359173690778447101838143189393237038716898750176392589997020051840789832407800096989270754199409708730573310094354662309493057468299539231037028962808367214543436335768801848738042431461507943645688870084536386886939605952050452156126540438710655471105326471923373283318750264554466120373981294003976659534064106033302489710038364574897355069278972802576197020974851560916703306732047990715884066028866722448268176887436735685402569420728767147273440695399369420321505494280044279204563464902814310171466561639818768144530299277690202633048927920595487277164110724670355223096888561535658567028313531106962045373082104463142830180580835499501505762988598408324723584319692766102929846173414091036084858666021464591971530823982886276651532440440543329372464018109578661849872075641901489791956372532981813551159557939880957379418986356298758380738778367771879409051822323335408820316899883013875120744828408281423450914152296506386054565164431474587771668731261851403257130373519635589099078186199496077514745817111540824717285253698350717550627060227920254608474088908447070731304505603469325911632757941300781243519705722159348804937111269655451726935999874603693195711032951189604002518396283358526398603759693853136298413588084315322598372549741929975334056989511312286297208497847760476278035008440477969891900896273033347943970631441079917758475338372600264948409205770019383627803571516085543667572964267548421117291548433777313789578382992211626551521135140256543686135781708637826174336296526148638561721222524104536330821405822988952055873199833228700389764763900587621811220866541115237641455553760372889095902304603640612493978542311712074179653557928100198941089032438215323634686397509094259349297852161597681531612023843094343987537374442456140560272671336159747131065175533773842156630697561570739720106457760771037902258728251379294599441603909776231037103114111122281896957667441346773926726999416500063952083285541695220075547011415359332782429748018319372748397887094543494759642978396279197096061201915465854514433336366020967839142868162319673356118459486057138835845012889299067937993966940598461432987505978217907168052025797444279985041776807950184971914463899546208674605842576815300261222880302537127723830605814094937453584476002947472389805138636768269491528108530135540648099870264104777613680623794131514684606042458583648866049644287969023396011176703412484364486271191856162636792003406379909434185363612707777408438969176586340157921589471157146241494734486028374824335190737207875459221102647294186509414721883418727508240412811554837985464840575488795335253592427071987958766186362514022045128393746409810174462482273595199322413303524906138553051199458387680139989968780113656975837630272055515136335318884983598985105720151303385683443142275776291197772229591487497561216123251977909188442579843105689645989935719092530470118959327110350652728857714784736834664295884987405624245573097029834676376279985187173581441570816177714699219194278199518094894187509786437586044946661612699873951213944386651146696042701541417309771270052802347137860111106519983303327982088621518523373164717774775598913690205623181133407751670812284173119424789739414182076631903660457638529601514474420119310254056123591954974094947353252519414207377405351546171119590493897042212953617853523805144183910275228501733178663778280767626282146894652005752124899773830676593475126248974368851035300021114857544097040615449514461667611093145961805163462694523269332717393858141218605555224709800315006211079109726086702415230266494389060725349203649939521922040294310876135076548467634932341254615995447362078748793573184634294970703808446260226142431549849130535529585190522972503735976615252959394420564784559151216960131612982297193006399006432330761790076457530215790752196868350098020466643363875818670452755156609823390047666878106094178208401233175089304856555889629771539168303087910360010899734800922260998532013495261458672857421414120108908978755923861470839776252168534025806855467329555679380885041372570267570485011280134279893570526953386198724264293644931560067369546673710914890417419179421063268724239254796880962590562597963456883835252622553149640790694491007381547673888125963785655791306462704854444062624993679541753430813373447240326390681000879835921991263347731683280678131400940431772422518236828212075997785583543275427120725182927980701610858789502174276824628063087421632885899249432172220998755336453864634937554237040191301112887865989211225616260613988313248995516045397554826449462385842067377981612991488103314033309227785362681354460254822267666828197993338351501315984340751433040628252428687919884043943794377250077232328925020176647696613167239284396209267946581773568956385552763837872996793429025329132474617648635311516412377689212173570869235656530331442802028936593127066907893806577311971482861439688998775945982531080334764150649636501114271423375437510242228647289492334598888165321823706398066064331503982669628425714006946679413899450739836143219327722990195795970817155860688071026688842653274225081853942936264817325541411697315117526397647638253560633061672968865294845937411332925477350543141952353876021644804929656710806564201134491741686311219240323875488475088177180272186203301630751214114559328306959809225822493536380466935760766422832575617063112419743748746787877754634242295563409046558506478980718327550060175426039906213718683228276255298675104775397866572444987013160153174562212057649007732611097480064642520272622147750038862252841708520509443747280282596921409678488619174826203918394038556532964177419429170134522442621063554667451911503037735361796923985773210845876291408242000725836674816776919376557187431528811294298321121501609520723935603745750495456365169477330284330693585183703811653603628824217288964551671222033438442588319938594900082631915430833413679696601871763335804042363417898900368699889360687657588584114356600133696451272085484735219605279503750708436139945192864172553829339762984283636084412348861653911374305849183657049235649258170103333709665087407676931684183105054090062235316566092749765742057320385683247131234200946401493402769892571048007537289153524805589926160114960537275820307228871278754438194522226319564647573934666296528984199370003769716552767486178380817624762923585422496327271618529907889943092398683594743455263980500853749040389841356423787806462278487477186435865235280635417017631957661892138541110274826225040193097983357345246037790723522576808571184595318160625973740985299365621256352767320109842082119095839852391234358548430853397953226911816375346527533523797213787138167374726995087312123147116653725529706704617472168099268124919635866822677701789411712305128989557399056166381258759281296825883163822120179557261937912316460239465975905543840749703853948059133916758380881822350738923100126912936387680582748232590489868640672028827488543884075243945941456675292089393623921839187878204347686358750858988747604714343910003731417303148731511123661435978336784148624716047633512805521235352000851262120199447860833169052409598625275987211481093974064910166617300698245666757490633174429927762690422372481865793191576360638511105997703059429277564322385332087827774770688608994103357782679316839723222099801690033822396636679878712012000685221696917745011838634686290183510375602428725959370717252710681013484758719472071491485921960430228475241833623080657263778024176132163225952120182508466215908488685101137721084809035437595826262012309675246687580695517346402639750798146798204164927696574612006635176218300708078085100088213199239668843708394837483326734664530698060589895502930705167235127922711612447244099960172778422829672529445779744043853444738560044081079464921805814575045820292024162904262154767126587890035326880904703720701905949689320347096181020934752174431067759344069469839282028115756871047080424493573903081127665071991014730265111238835445531427778971154700715131047613859402179393209872793364928458253240558616236456817312977952837373846529009171979975054476654383734184914187806611119682555605233568338624209113407955958961070671284661412636561648204577778254683940398733654069542675719923397936709183016945091369276428195454685027365063776698406653337417228824008164050764037963872309228130998040072093012658497491636581738198347162363659822653044339348120702222358004516936756476896114309318902937552167351419086019134796466598939410821024991948816556381195653233795997176914660789968474927436249955758889121563411002583379228319449887646035563750659788445633778331946568816039626336454178859944124043839967187249265486344569857820511139420878859898889253045962699331406809944913826775063519903865234622432665686626791417284751045748259844629257549467042714757274692722759875597874272568587618483910215685393753770734353021338991654029409533643975226313057621590357221355646488070851388214061685697068475699126964727612044151620635675390367453590118694629312987347281948661004934446128665924502637055174193968885105714529571745808665502677807955929907191892399532753269632147262130325522304250164208281017709560015162485730993404833515912535952550361197025092372663822512137139862850596746264079927515937127986056168626914068475785416025776029128855559831021182296423276741332959402954639004035340897979528023279309550089745545558775469879650687315685670370814156060960780186364682567024059791728863673196673640031061498532317992972462486376873866303833787093966928189783660605758033182479934148824991857890798733465191443702580303534205813897669366174032857387904122551082716269125142359360565544268119264921150024087515709346258018908841763790646754474741195608653813147118058383424017979770730592443752043356891513100545033775310269248682752954164081203949167948121862711051946817679680539467046040162133732846297812601232078877941361952693140609095796954076373189201662270180910402984684859107283366760197212358331998345706538335038843250168400562188501171509499777662181178272403989909001132734681577878573018805946817001938535123812742538809811750714953913156444190658754047834491013188764456917444242652496422850864771897830271914682234510569433148406487494447202878741324990412438798242652326688615039160516782324862475718133185882657637328376500527983181520375965882861782378272589719761876691714882156634525163423420267733863768549913376199271690796383798279313735657605431229643176725508203510276300327576342024024731932444667501578215711498533658526986798958005486430844689874729720297210704391647477192084092319211583502347439904526306864358069617387509404702021619576869629337318294204686252688787077125917912352974255006397940960624388478475769686468188496447486489087468211816148149710369524163740296036307490765073436811139346716459288008882404626017298275346968758717319188299634753770802654420071915522067949186545184282238554920409301007243107266270347269352547329439660920728009722563831817111040245687965964486285022312419777610899239003329802928801203195406707069449111265273153608174631432246042328430798068377549190446922299679616762973855462327730323521032431942390439920636103007649357601168338855391594367862149847852199640531684321869825636176476196007801994329983823449020222888917062391209000211210447820816059858981794723329650785521511927738023890015064867929199352229233422722789553722253895216682885184030483608008902955637558277353771200625365941566473139580219441078787834378723477077878080576684929314937828876630366380985792876175099248953853690343424243259699402676555495967961731716869457084566900914227847270799380929332432753168715618732045861631739735620526062688586407678907426227904814024081277809404308557749919616342165035513063169961220560734517802189426602976740204361878445158545440538410878018262696703745484726215231871113066485179226038082635821107494014131554720032511317992358903065687817908906291459044599580206615533934934139759984152995115194552110127815659789166782344427912347446675082257191395906695413664800949677703596324949890041982903061723392270531152736999179962655606165992768222798281767779732003930851789696497117682832092878753737315485042135050749521309284309182075354759835276502693065930140793649149542558619793703841816521643669137606483368167252949190043685876667206171937285403030951550967133236169897996587592914784772363133641449738842976716911307251745765526492744241731626002348238730848316846651182709994496828092642201419553818200482694593505068270259624301798185740446243752550611726667124468368769547363991028858902042088086803828434128367018437609230512361481092094321571898279035103029870689885893770133720911104585005843103468539431512886546877700830967600596431672347286233804263127148997985218564825035753695864107026973960708831326230090877730502694139547458621737092160530466111265585102200833866033321577821448208875733576003659279462613290354950671404301747512564225879312948906711192052138661181300331258226589310844858924676956307054937453692447326144601090490750792088472249218844034625172727669816783427052817742498467685589305941498760100187016579584135285163591485563360676342210172785602943683698896321599995246016354263824672259571056982361377652291494413491756084065196608539455052649379701185627589391054110245953291965427603400256472729826471068904015217527497326839598337832547320450972738746651995848253141052847764408507176678555497813882154339125003284745581349562276437961961994392835969864998996110415017506347798549821718164945195214428516437668561272674036525818254798342986230783022793615790610379255007856942130040161079469910826596066027095204570618748114584009062819827458459741830589184268135586681635379634234068593840346020068530431415334369340240272906543925187448771264072183082567945635784091527390780076823550454067140505963118736178622810801381629429216793260100412664266143901554943569544646247760273244112968408913717032234564397430800383639571650509779975986145971026681230173303616837661375922705364865029150013081576360314277487590710513983778036929038405570942454258334477172370112576589486427697730362955352076195557303671377436982030046674458877145932670359474196878093834790888775508252793661110865487951434053416002955227729811991589800771467180764046734529107955661135313902762559411330985166113370164462813887080093912478695712202246784275474687833625789146737174282662132283672345371599033677315664541239631540165731131487700730894658792833043177055928473517971638992540100489659743180223884636278212913187442149312672608533452414031632514319420197241945940139482503184099419520427694565722044882386589174006294777552922991395570502253560414558631636720203391393712648640532178714833862314765574405404878992083247441745479784313635834629332566450360433277524010336648484422812539659773269959157075353172431005650962986586805618151835572510565883596660237203967396426593640134060429407593614556647379782203527752302240384222081769061756689369966154295963060325306712717368221616301908471240121601653201696521062395308485038985372982003669851557317491816713359974511262465702605830328665883290447142531383596065228612993919627037268617525893399493740618678767290317096677751381815802509500059030665870988479122558552075851633299200482734207716318045409553628843361889502354068770140360223578573717626136276136882357761503481173675106678871548016629766858565568638255467745987471883381397569086523014567841304380950766507124262244555200566719555448535521081455628229535504056243874411106491899706128220374480103919409726740834053990198166603533479963711035803993777126643390698145809896490738256040649475324359064806662774040982386707120777791201471845117019990174342409328913880215933342294540851012255794921278477564658258395844780449559292162424861876129676392397123723660573695282245273355251784866248097343573980778286179772136476869350461091947450202985874559699383688139905622611566759498796388189221315813173237224492380766797882982628426167377022668802909796928346164569414643939116675429249489933655062894864372427204463425638143742316186456317380737095976144972671707563521999775565028344172476094291222815466143474747492401519727988919597889833998310457999652242844932037667801458582059931320323653595198789465057495317856003635392243195497367933756323147176751913477452185056447053875445474677599241431311321585544775861581272804153074294457816624265345990628949883663039739416190367067103135079104628482568071356356953780439629441066080548678433100018611226253054139922433130499806269189831851493577491997238399111518182885604361811043212800309080500279595323253915861884933010195323000162501703843541839600756357709115359356333077424697887985713875493698324785939935725221449289920739169793889415892142120401810562222535247368317694204449171598492160622123978662700590411330622336145559168772883809808522881706117479040542029873044212938759075079822513586836265648532018820703550822957694711317742373532301340788559513845147219842564050152897629470975656264016636121283236593139263163701558324803951603363008591983412502786582224101761874475618682165858569714613671296563049390811656825010863862650308301242668062950518177668333581386040384248450876287914400911022144145955697092731126696958077037274580847044242172751305814497733386997325022347863021877937050291225873685949977329891910505132527746187110584582196422155275974221755911379623338440076676388592376685699985032242857578117480203135921215996020586915551848320235247263145019499575255135184225457916730832628635086333247258649376466627535685242592807662492406775385468884191772257018148246841369916326251848974078363732229169801597084921540087779902235993708684350405215966764501830900057953732766618952903483717531262948885764740414480927838307258364005230335669883683516810366175215448168282205324279032833887903636809008124988656414078193863842481959935490531854893334943590827405318018952828871702795461464370382927016333007760876297590374641978676249781116814517453713570600446039432500715719396411843984327781683750901567635636396271492627672376869729953388844637591391529993028848023096719788926391116746552689340651964475244485761127205804999868898878536303155061514940744186373004158503830267690213821701099536166785963904982174688075431377337535536620763018523566242082571307443870505495822921193859788508464753723118641721231963721244902272308180794274581347220011117303049122371923458027498352938536887518386827841960354132676108395315643063972883136860680769855608112246317681826100329337709308991285776527575674465064942643760916614992049597235793395811371038471601652971418145245467884309332159426614272982636119589086563285589638192520184319057346340217387846801763342906789729256958721026716666825845732067398318177057499271019197300817337053354980225305603829382517602156116020630610719726568901517149175336529293181626266782246671212630655714406023620233827100530765326251806560933339470541519849725655908400192864462662248418378694999334115796448538231903840252051814644413678399600795055104286299589346199155481307592425797984835712188808938459729001417292043323319703308642558397950746934447873601937339406863824256379925485671921695283035185850003309770735752198849908645054018126377295713316965081183986613053987034407861760859547496087515008564892281669971806002355028185200276956562089774613260436418245731313915534326719275234750050416934904405043623997346222880522633845868588668426788752822848889576216657009759458167336183083070546161659328483092399439941544885631902337689171738930517450406164973116137166270072109444458619767241059593721778491077921537871967968560375833543086172297055872067366612971538322379973725530404743936563986349717617435578716499318187460284545104681567512281379063151466764425655259302110752386332730375560963779192048386394179525061005243861221460977577506825937494775336044969668585110968892801724758808668893290256903950576157819809732953127742354322638221404290810732007925052851746593937015661492864651871139342171706049755569284352752930485389057991279805208924485696801767505705739517443080057740504804282407262130484063150946513737049248809119820697268375441798840370675273205375453961008252523275228316399219386250777702850886501270158869764502998567248659731836882501724323779568851104718125373090017841320761434002966786866648737374877052957336931240451348025617971622233520863128514343423896766965908844033963130224955516487910437655196459127201694026261594658430464075022905213293047107221187822366241558752259704066482328989449156012375669222657702015631256985451399800204196560324947008757128942068730210103875728047725261975845601757828312511559524101794992164621232802832590155537048970452200576358030995325486802962404169651483363520350684536195223100069797613702718896504274487977666659894281148317977860557189471317704729636808776600301899967032816970285956796858010928790935939045392020959635752883093659343366973428991147671988122846879925856700624562200354189720475267873530612870050783314954853712624041489027315782855586843195799304044468638154917148595791129517380779390422643884636899366960019715769853533810290227782685097042191333640357803372596317814329945399403964014938279392887703116063911082463213460946064776784367221773780754313759704431712665279753714607310597641403000869606003498053080191872279795026259285867434576009375118608244118041085739554602660292909813559432153656191934709727549688518825111834722085167604221267486277411755514889313220291943301397083341455371828568253386629490802809861537090484536762676500524291656783976978463685810884517507171233946030492897968154553553111266127274935389547796745761397452009921244476050896940632857948820866005240744542378410656092230833558952233357059219978415374943695984366767220895531228564229837005470404090868183652864067587927889980800125503564112280651864030299104569491248981119090545499316241718133858458464999972516258099001035824224201754271213396348431409553441199415602898787088268350052632837803708857093020756599268458416495289793569975360134968215865199417655366143577988196936468447923066874308737110131224159196918276440103587581612991411268523084792388476602589366617458864923933449587715436860026553295138269174829939963681043501097270403545454017009353436701431613158782295945503507688702243245045952915693237389794943770400297731989933284496094075750417778026584431829969082339888973208480591444034002232410666991695872152615758139546421833653752596056072094092358974773944687147866713465399236082011921804334716482548935818935897306623326712936858073918720497826142312713292257711714402022480976397053288124240182104657273793043833562743277886783994358219496027429591761593358672939076965943821461009355631688503783322553208968783647499844478710718213079993018092223913251395292965531388607248779402438853495329841162340756627805015412860095683219635181842868832018029663688216545879931145601838080050157000418663000942811874885815145994926837453010602532192617346720532461170939631691207174614635280684716658176020853096223879410568394237799818010450376510942258276213593087533972271375036054669934987978584990012320621661045375984507410969881327054786160777092055368391371933041076087787310042468071149633101563347050863970913480752901187325208729115638880975209192737297640030647920058416501208426501370867540219512325692196272761441217922330269313533923688378044454218305432642425090555427005670882415411252459662131654644722804916593093377934533520522610917124149321208607079197724073100488700169079555374927962048737229868873419903803527982651630627267281845439806518749779216641434401032133335568711337344221944984804253131371806408599183052828098552612047790897835780723763277476980968183140500208335600238639544203359983272666610115720030679605194774119963544196304716001188306625331256831174560952506566069078436419615862468365288357498229765896353320820380936788856235295819830174219702225675019660013351498555516995105120046914603416486432566885387114781856950913022666097045507347587766262749343422293786513509158432208407966098433415821143154300570053343270600707916401140292598258259254530394176278704116673547550478422032764050624591445679054530571312128513174216447564491682074502842037065586909165929324930653870046652731095783907557273725676209359428071910688715391286695241360476550528454198151707133436816213713319105047549280972353060828204404650720114974257596261589309492682591143258795087335894747948024948468468803379103891201466725768382554783063126794886697775451022810717843705230156467199384353312107001247874556463885733278073072059657254334277916337449384707050515078783605805942480537211542862880893771489952089007577958542258361449361363740544998497087310033652662525363314194883724856492564348003139448814288954157277904394581062451507195192188984454881003757198211594548501122189778326053661230897849453486830789975783980535061392807009203400547682844832225089322923351948364748048318221341812739100778702996276866227460182524677529446451207152317915244975129114696651361528552387382507200739206519021814977617413686143214484538276731609761301079464875591285486068909393274785863201738558664014415123311513642150191586292640103528871512307966658085997142002983854592140459821942231119530601214940436986336479574818301381429521530867503191813181365275460277654712004419245590230801009041474813165316957190318795146955723347842958278797705250459775780226194419905319475828856600022060770895680740739064366367932278632556555212357966088540864281750602740424567450640212521638646452354176841163605069631088285405306459794303827185797459545357014988227586528259762088857789096699664260475415622027050075010347403206911804767763333491667896090770325560745763704494556731192813822312594941374459271378184809970897969679207652742622823981303215741225184931770006797421605435467719343868114387975252732126313598335146550158794794431698481931744270455862956840243879992296926176704301443235191222951829757940662326634255773505283710065593431756159252141268047079943264500399541542487487529568258491321279371187563776460316246772731505641246043316211965966732060436880828399575409257262008865733716834151838932786277758080624624026943285400441792117509880839013915689522113654226352068006932206397452777705772611005595213198920608429160780693889144492494097257430666619901443396351677005189331842326924094737967588195319654257710658239189890681099080393505902038617930973958760880448121241470240509304483861263962758106810453896640569837627090360355964434938325029030879165927932109821001369300829315142678800167838922777307606097189076120401200757595827797308463751732102020235565834312374891377982025386066240727004297316411877606348170223559418324321606448533541908146180816518341333465141616769338711234564601226614431687636979760669019746866413048959982022091549101948925466961209524865410284710677022259280128545268426870711378073121109092610907112266937426883370387152472571380693576994621147033725010676746297661148940909804850256377139900361105512879307239842193898719881269000078500211961126718334417072592640481381755047414732746177621412844491733120363494813705632496792783326883529431400578556516562817031787139153958905021833523887448088216698814029512262039727846706498346320299961844960921180029003407044863006241953838453311917837178615882578775693919021353943108986378951725483795794406641934808300768345429051741670431013858454897466947799065100688831702929720983687725941583820023834511841834379237961537459639410289225082788729219378759795270633434963545970707591061619012079625104175404887658489338968613009820665427475938543057486370039073349716334704087819807516038872410568266148290704552535243418291127658303200783564013447820659395980784578507165843757914396714272418927941198284979757722560384305863081914067557582753207905503169431986002768598632789088252792435345762207352147666288420324832585427461532308659053695178262768590477782127435343775875827187541875411577292835521054564636173391884849223301392660244233906922269266896322066440931309809216793634546629725123402800052218789690057285600793144944794965509079630659302392910848527800004951191040280120129420062118757871988868000329065407836264491021837212977445374968889631161517068063934705597288709935073711668901286005795949796917495386930660627531868613779322535742879496116120054105272444040790786728164244610472468184560336890059026561972429759903079074938713755315117291349134039114680407469057632042762786993330117002207950618722839953338307901762180022509408619117423078690146760763163021698048125730151795290246584575880563153388786185233007777085973529392111221638440386076572273345054131070250007287839792586809502010962554268986633891641417134626039030422302831942815333195439951487124236158546045881245634789002292845623373082089516633998339489976992856153104511754732153626989607244402768348031180462942697384539575972893967488633001044084046851608882525319563531294269177101434060477850243515392795107429024471243398122487617044965408749672342464742446140707463921542777051467142852441018912500402659341199508467740624053567722159028212044516999766851079351284387234766957886914542552293260743958354278458736318048498999550761748858837564011235686770568889427131453874195947222482769731468877880787495640565007377010424346558244689800908422875452045459060832526776693096929908397855570364384417753714129172190423961043112054776656583020042281739212886665091244037664187026478384999954525413606205272537829114371392556977264636588620617793809709558406742776949978910020347996505293822444934245772603552904410488517608169175149190237087460189004936906971399875079243252712183664355255045060786776559871097298217779351325875589190664162958940632067997087559381638836956431288596545774209925577437722639840136114670598787963274381240813032897568938526452884805286699382215873594528092814345533569562744097562272124968116773855482763186399351926032701855124205985458739374548678949822393087656566167911601625098551574871083857221490225911338028707496902493718991816771612073282715708055087811681391548561931610414647832806733459906726353696254312437181654064688906130326159553237756658885123850862274690275315934619507871530334838575034150464087218879815726777785834117592898336844816614203931447483199923925283549735702677537843004717920220588208450694769160186376729721003273135511431575685130944028624514182272837700164182019591974388299671438716610028055113554031709340754951385157011477650337978838391403994595746726522504271623034587744286271810288351828157797672693000597772305356633662283655266587889395797645389974833607723934870276512226816489240882369060600067875228092586580653413690861390081718310357373794204162735850835906989915699704538930417877373205140871796895937094407698920430581006257084203433786608856775152129996735131761850931626372890185358810489544735155425865441260567615482617236801781222808646590558964394854795939575963946370416658611159986414111187196995619995721342216903816636080526626679050963697731741168647299007586398349932593106745996755061229881393413696473060314670000048393420863921235954187833096312870689540372670947786154817667571793822573171708915506723683231153560535728874996316423734324679571370803247544740132183644611864133827258412014667271133462928402165952475340872728484451635852183740206120335695697054474546094500558844325920752430062159691734527052331884691679722775453992320877231545594987757233530657315184422715013680258267770910213818140845941274368286777927087645595900899530293042868683954071099248534678140299890684911488093932587300381466827763901893845310682655851110698905231972462447225303041178203722480539054764626758163984894025999204711899925074728812390804182909897422226885442856526266742605617569828314897911818751721763339940284412786568467693633358557498617333795323350169511175753106591982314840492555282259434625108688630419258602395241390921224035424206793158577062036599225404112090955673521703507161762309848450915620007039368285939756943176309160061312647073690059430167916913480612990657535667825869911251530671423089583312285188811307035784566689876297780290412024058619247746147468777140816513102349169866346669623944534102106330868069794715562190351884737890228746832626869468215926150184892780693119135266267762065034734093331861274509628360265150799772409460043844347270686004136545090619456102261186726311535539912525355344214391037802256222812352622455569938821694190782356434371634975956745654624056810432985376572862007350272368325823460514258025753920228529044503907391271379258168532721837518226793437124852092684972897546839395822817796048294282734860532025801346559208566707366484560069069830751193077536732988562368605654308044296765103503427188033028321907941884686229957526791870076622838252356861373248432371891968240846926537678182609603015495255916311396275774487775999701502079571780644578282320623967767248753866835770806851938786053198407828832956231401381419135327827374912163242482123111954323232551321187395489939864030489953554922563748207286200212521019221026357589981083627271757225789596652957524523602054401994915964898541497376180007980598367474827034472973989576219084808958821148437446963748569850306036167917129091677561907296657273107596822906375782142077055747140748726940389735891424108316344002632251839563750567719885162859148332116197583672051714841113553480658443295401741827618107268436454215634681726371083330415774424818039898210307294969243537836718131899569386516942701848440289596944847214788249558932124246616910641740755562221606147332390670220927561563509249407250568158506750147182153431672504555849377554645596864101589345955004434980383841171184295999045412969851970282819119905711840485116352484101088189123825714085293291871110996430145119616031465864016359053522480066299095478821554172205344061928513493657423450299390551866953199140439000957265687592352658871731156992183677356975137943666152265566563388327729931590616008395065562014356898381651360812293208172183503030233987718759500489069603909873648469986929378458011132066698057103831588659456067591245239116843535118851679440566462158597237113321256655831304620064059705671113976849914841517455300305167364594267257546652805694490296899542287905559709966012798533720959218820193280712518841633637065213292372422064906517367117783063913316473474616138394451642396086092919347919303335769217615108390415558620824057444764040591832590526113342024018117847246029192536188534410903115933788841751303636435020070075551870784136550127312128384975147698026562631735887712049507207727289635604237697458467945606801117124326682383474309288428387377157301948349287225572387496646101039931824496311298992591925026627674523205415987039360011795991795983487678654987259158401292418009228176836716575428626028621492021891153248084550355962182048168203721304131880329935624315087159305597319616767333887312761630926925054971265611364037568371171833225120176069654686441435431075155810794349802691167631735709580982312401112821434351365702088999023284654448530623415874105132519140802253578813752568214871253050735480242979232916949890285579681548780081391828926285848866525883774073795809940534421487012745662034261013226312200585024959293348602781180799573337509840248851553790197904193770556068830323201568243922580396305027975216593102760862365783087296608576114586867879639739345114398604841610019412295496687327240684274686974842087626999746854176425785677176290818388376777114788862402308096210729464834544687359115579586509255161130320256661440090831196751072785896107556081255280881539767688763935949177473457042622033495519537160235954975697042084702827245513344838252683476667000142189870906679085868330610394486352283338459018934604297691481642485279981000244892753598137130201984664456228647274710961284232651005829432662159663576595272349233015613017781437342013431825594775529531617659979737820177424019782988980545767827611692550919595055730257619264292503995960520037435640279009035945416236596740495858749612721018489482721001946818259080154183846156730512698619602823045089613007451888677640920644790179627644515776438181430540184887028142349586913766400114113146694672318835935045831960043372227127194131351910863253575965182683350865124029523251907055514246507449027236664982712739553213860611451671426467684004599061652724453332420698742586632981993427149170910634216713097280228573763955539630475882168326252195612002511078605368179832809842437901405652689883502683998504099259393046577873749842193654482408434602866866938801852333535554872807325532584893823019145739129098256205727518593962070702526808538764115272181233275427636182460188725021897621390030842475464155940982131298650117079126480035484475139620812917284326175607975845438514673601131858772092858630507855192190534898099945721277455440820514273741987502123109741058621353497509839410485081778437630376159506749428949254512080417692995410988707082709281597311859277875604310409019423233967077052044085414413603609231664118591391531603071610859714528680980674220993196541284483101442251302526677384217793010091192857470478371055510183945052524502224372786889999193780936582025594536803290753215389273989314845151879370792278728933426985358935161873762071007415267013916700909888004664394705206936200802624530222865063770510083956409076865688864659029866715810832858043627848089620330765535483283571887064697004240479112105423623098258268398230045983559361427063956432915480979773515600112520923086742851953286909866458153657525322463496456252598238805398146951802614788511583903631209086946489202117983687564573312546718409936654399291981957740356544535308111445287420059991864599570691286517581827640933330785592523310127654454613547786657887743469295328310441835313593970770624894509942762120022284852641091646595671670515889638051721374758791200242327316373883746394957873013553121967443156550660196053256635050054017415205967411597470379644586494692348388979504650754718993939722721977385898327276667770806746189177337729920738338784627846736603526510892790528741844204240219699840682301905708709564510674809401057684487729484671422694492468537388341303858079887587590936378686840147720667981118184512508753077662074263132581390315454987507739086309138120992449291316047115119182712265246296696517696803509471466417548374890027662981445224991046674098985769444329701079336525182968228399814686146830550032293880395349224701807002274490440194057094523326811419795301133483656470407107051317866365383240264544324624846308570259634408863942625399025410170309828921405012188843316990525831283211043039752267328135610636559795236621622507014329482764808930548555116674859280531678274847908857210066497989477877346889106721951326146826915272525255275102515195198781091182100804204938753490845824946422279294741742934032883678966336419268319775594885445023237174990340858718466924115721366587212092520086930531038961178758360889606476763258137651219152883336555921990222901388465939918247155910141687849513860813782818682059070569580032515953755121943446016497223351435971768690276233695277105360286178391292351627823823835821460877796520953820220537348421774472999322378663872216493980309946825591444957400626572635474414135003418662234118453673749477242765083178684624937938404779270052296608841719014238701685596051192512203903699968410392326223355342243725107853875341131572059783509849833787703690766990686148354966939706059289290531110854848518349795147485441512641283329249285319329830170379795879300345484433355120824381810859630660432862995002411917760364769043731199920528819897634850322125305106297875362251017107347751066232222595980131483028792023293151603883116649547563281302848845088492239414134165231480383565365664722201872181428284191496508427319191909281466604490860854003294527380429095568805911772838061415138888804997133796972436372292948469933792436210616596178806420795757028519060983850726483402487880377746087352609659216844247587453599173461185595186829501535129678615007050535965063717518798304655368524789536524484392086398243149293644674915849837033212477075760490361268053877324643383492727026607170624496706588450312564410199540601206504375222777191249091176475666572330838244367077476354070081446103200533802192198639403858796652664093113263790684974333951091310347469011552458680475874139314459031552805899292958039745926964398303730899336901509044555795356111361770021560744084511757067379832070492471333512718790394589439736210950829537555723930133843966835886197413733765128921477543503047935429896407829452299343409392783335425002293251199411941700009382187912808276540156030214436066877877873382119949489281748618231531723276842804641350741708396155951682050634290052468101842294524165042256256631119498458575053902934073377718354535305068470942240788233860047869395881957318058978889129236472804019906825172529644514364053330670030045436341601798133484246113912949839194267946489772819103699267659269621558365201903634703570640430713070444422013949234344675636026335325168048852501468567692387060883438943451413949443047856749856593489918699613733606197914856015883899834580105602044027701013690840130681296594412595462167853179617392969099985178341100467333336349026797648420144544055137157041057188561749124856088378761368926068081062950230362022182912339823695157379851985212041830236873544801797316381822491850340678531800993452491239026275527873626882117662513421173689606512036589884305564255308183363623486630139926691969782746766162486938288013411940337416918385243396481981843762640523811121394700051731226494650544280276556819959580059888335075827097440413314110715425463804566821483055140797874789855763960382786170714537946870796388984614921928141482269899732039062150564276722295417370446827468277522516284069247820389462115634126787982282122643254340790017730825928037706384929779519491252320309009984194006863787021186663143250221598611540742688306784120335535569937437036053896971361283674713423027697636386216641106267765141700274174061653132001195934681848499366711392313586341694835313626235652035202830028414730190816940003812214815098648003152771199313211631164692868456230777516090626258757539488496739467347464523657510016769992485509212045377215911734064500965146536876135799054062417276477685575901008896451656642471633405130844675341138674609829925423589214608952619721212755221783212060356893237041225110486427434526826551070610010798779832608904723892831496766089561730341470052785921917416157586070906228678190282062091103563716794703104470570631243754678417797013257812351988441320553090641727305487195308474216445630898985757508798843760691703731197994538274924505144451351685603667570477806099826458371200690201981219053542574613946735595884910322594982955471276810022097754704396764328942713844723909358679660756172663309039954308590382970878081088015250096765224457819508972516162035126293524271835385620187271018419789492791437174076402136040662441925203582557667272725910729296601063328274768974537735189851123658830907152406474883515982459529907765310867314232095565625942370779052672233541090650568375991840480199748367016546524796841953172561975738110747577174850670568247451956623355111314826024529098832027415090625131790314132355616338488169743801842343884555901861630694196737345572704934921457200963492971751771967467306384871952222076817940877424467440333525555387212690527170078645224659058658839242005460322968061783766420277339366338671884242078091911721034974362793447537068361128137331490270193043003712410269597890766799419498503537560857868799017551250185437891344418136884000370857834883009768766862826748225413625251364798824752332195218884976526844052050626570078843880970127530099391147462959322953739981197137316419522261365713872137647315081006054641957985541001306387106570505439534929419167338127747995985899468692706149061800751516790614715596221238416811954814924971881771723585815565466800792009500967486267258722073229096693531602755910785360471556534634239504478814695615396318383599461056699831683380220635545155184693507324846955549194622282572483707606701604726919080661048578875096895702957199076190078622200905164753679985344357082083251970059581319226691702045343071003098631789144836392057038402065353021678974248632611265754365428077733476766550191988183616256731275723126410112992824974389362990175710554214349734297904321695477948826680286983000275966155156443470834678754432719462474088560828549394310252936352432565769964510906648116670559627281671646181348600676802896380172897657827142235482521351546538098252308165105138046377665536879801843676553026683744010292236298981934786768306239571154117279590289991101450429980689029184797018808829387520988954155787461203916561323428499615080975838187068793935366203317911468437823044561203739985642923175403068366956848714350719256382382763155956225492992919748717266494507582117389547954771568481217061413496276328902718475039942896123824841278689618521225825311383098598196689646426871706006439463804713737416650890492491711659188579384263859039595968639768896676895776218373600847488610726819252302081466462925221947098391471341192180378465453442291406921161631454472196154642703166574433557770563064071919267071776926664707265468062566665948700210214972680347232328124473166879852380174260777468165504464490455688404939623671729714407552679264453677877281069844182564805562741531123064083067264752200895021502244242871760162292890225033975435770267740203337333814955101923124764299640306023223150819058477855899994815364112135590407823062352055521161696680537448772968558637095526647596261802339728858455679324919926888527472126545240034103384117697640617862302797430861308240475487712149983326548639327998565176751253421148574076740714108335366189289469821608989151467211447056670948082809725696999323341918921901329258685071132516196696240884767165910536826390551147059375343470317463942085077699708980307712119212665127110196597716695597473656261830933324631666761803473661907472421802949780212507202811227545151749423160494938870768377225147046129633033649207237238637077034904445331379914737140051866235587608714728733258305505141407701536061515362570446525935895498806018412453314836754389281301221653933322817671337262825186066658142948020712718858638312770241009389500750357244588949041613902854142639064631365254387158023698404333352858672249815429215330321525767403925668070764067105902769033697544729188776777073736349471414584669781200327657346882435602798762536850034246289172165607863863791243024300290456874186360771411701339235383519435864166238440394547144646542142795300761901960126732935509531353486469643498211022224869045390457459836317987745336389047193685555540169441977879817070589440800411727314813499192366509944348967882535061896739785057849535305927838368364599954125891486496749260432382851951700134683932071110024743856783712526146386911026493901968689483394338701209895433775343978893585075281636119343453919665600021648371690614327999500202913074225306453873902610244351789999858367429003235294605334779635110401493840510483945986032402503929718749418418059062621044325009302883017588180953729956850674164254167721573380713105811290178954810749005506026616803348511748911143559090661395380470964822760003718021153992287380755497323552512339834094545614354000587256001888664704460722587347175802232376637338802894125762054964242247966871261464159929680651560815820302034898806629241627691825169430815641876202127557247464641051627023402601688966598728076376743619381827042860390072345108713228840582711196053121199258523785502478464002719116597534239591891761604366295335269984020775387840145254118295397982124729872038351403801431866860543786316547017521086444682466537262086530700348159774335360173010136280970518886891523269461705739415228862954697840181384037228754181253397583680691176502504623181901168137243700785483222881258140886195253360268658913931093886812995307694970354734272426231256170420427940541846949769866638973811254551943703213267244556030875632293910541701720989615725688461500569483328461403508938712401829673842613456194950118293313816593660716074669600501105507305257497068547309838510620511891572898867303906461954187227156892052897925608790448151520858973756942821264351529565871256678345502711486714271722761955918778891169739597415673503147110846968681308267414844424458684325334036151048034739208033062988753935957556303310194085124453118130381435630488887573149673755361918866527710955766350547469128677287218039104364148496805366545068974406635835662763059298078722697210847917333526886579640388144849069877956152175471654604763744333294987032069996893762977588035664409194796066450037597262158434043002533652248846362757859549263757019872887650355781566987649401336613156204577894047908104218194754319333380617792552748558478514428606457462412220429616447559308490953358146235208079348832557196836037930828391802126556211125443137855405471110205863749053444047654328939723475182375077993872658443134465205587574108808374162002272742466340668447128394744073382938510044137424786533467484903779342951925316910367363714195572724398892867888708553481369487432314842574957856362247111483383151407393499783286022935570283508198496074498191921482819370694384488579710954619371184063260813778261449323514797076230940906370153289334030650555860979592364441959389605490287090780010350123488001973911175137322219684685534339921634272270968211382731988495805526207980837872108950953584166086520281408855940508950563811002361879618458083323881672196373752841901420388207373832880390858956280710665687123535043577042978104169425311392872432520859490556633420524262696292505012707450947061597399290212265231235898750192617591854890914955475437159803242996865485378105067996332082970502346197069277413613484087102634377087607332098026742904876756002888002669981434650288251117089148152052274506026583566130794915105707986247231201577161206386385956152723157286271506831562681924139422508604288811328120812410459962579717637439015950907396031104084910456501542710618325337214392033645485618701693318464289795544431148658701635563544710377052285229180176593443220046569036459610605422363199423025709395790947083663713021026339572922544528933211081479459228344293009577220588567776122685077455802925362561984420772513407233357379249266863621548430019821221965265828503573590195941511911966490955415966567143233625280794374867076618698934554953208108868152014831873949359114644809056483315707500603893852835526964902750514957661677259339059306305679047844561950901741180339946267986936313213097315166801893026210652885615002752209531861867408796432299765331646535450707507025840924134735572010570020874897883865416437982240102519825855076119900699448398178786921090509313085082368634559620093204216840234837324797163983992649421592753459300019624137516775317202768278304138987002618591858842323620844780822377757546654691399039048486713668075900343544377841993955854324570088863880786479132928808892577031908936255483216426197454149786813094948412484645893497124162563940526602287445292281108807819678238604130798741743404713601039932670836118745067128352088964939465150293481092265103199471670992879874100965383835949583604020892623138914029041680316248505121834001274895815163956470378435743301856765357211437443760276079366498048566571995817536090086387206545507969858433335914746843112103083644409305167953126719555690340764075123770779104511799257646121750485699974076095720274323943515437447018146268461497775307415184177180515461882236983883256257814372703413886015324390057112266176881616565916130537559883692246551902997774384157375362371221968405185326378394183834492329630674267595599080501116136935166040258913793292854951576455714251073829965807634636206990551208399997619149897824294185505946136884382295843650310594867824867622067834075040110265764009754193043250231032587277678656509323341962201175431700100313257396507165323706223364472370991798727896627417570280200371574092975410772622298903311603374647419152694786017398561996184946009747254315221291529842565177447469754663276925886154809217030270165008014259689720361996124023541536499463678049622590426588631364784067181680576213028605046051746930073714910017492329497548513848350525091177709345088341845541486309280949092809420094608396680637392767409008116568948521149938731453250112634527398538092221146285956269054253243246478988603772475944806898812186136586906822748068036076145013348578760105438784980005826455182661753632333562979027128650120877959484430778439331211858321241886126480818974712739005100853496165307144247404784775425633230823694937566814086556217330704469792402013914315408410656773317555829690527997796488838796779156033629111617146704284805942478496930423495735057826494529079598570271295271394391218978221471334678307698652820262064473336441874967434852786161015780632616156081293872766881373890809541250171919645304538368651533482746716612449430632176620819954487116863894498091834561039310706866523438200345115390734093389407655248018804546261913443584179206864546156166856095213989568423927623690551059828502802922749540432741142603686962658025194226472323413459581723473247218198385850913767408361921150965475983022802197147731067799737439828663101560064681279548722357319062190413876056734204103677798286891815375216156493404728228266677023187596782409414635071233789328946714987360756332194292617964112065897148847034595070701114439870863809648251793114141308387999425103455936425491111138695683871688887495272800933286199627239724055372246941461585766124304064690259908217578301784298514644850448880998843608408997653056890625710931022353094523137125499342512346648747429657153322475945086824478083906076773266891845349342749267095375271993596692130666351043689890183346086259014583445860979405646399645352301573303612395842953889787420095275578634528351647607752380570464006894318722067861179044545674877754673737623689504252565402498540914106440743536945483732084065252588680395760701727707776016845162656420411586563080275326301792411150542523740686168713411493685668948207038439471051829526050389805804688350840431510046533376733820025871183034146737556405931142360316744515434768899358210741553629863189893388553146855927190444849144295032886926263544917449757143311629396728490349363139382781613170468927344441560502267021318754074614540788720768846378137312545640806667302403763247516889340035699364107318006374704215000741877095521918258310287969915190428388543294714777381343229051813535482109104670152477101072723685756519219320505766079996159162121689853254504660849118456477101620891881993091919526736238980519903958249477659402753604527906168595827323031475278655755803500735255439816081410182178378207011515111435984296733419645950685843981388985437542317760001418452472565114881748328157240877787165854750087808637115473949340718493874717194529924350920226407646296514110415012998959507384013244478224527379243849113661740219672392270564066881427845601996330897415565632143352053476493937198717162042715561166572122160709528307252434296995657161882748752907389037955423948791731971740177120071595015878281556951956658200655996991877411940651864144087582798563127646695906549388645317778838418307582132843868352256270349786657213333397926188709261863195909395125264631108361819333949028530420791267441729498731097720359976822029420527356567364468994598120818641751208738565908555812355148020484553087293127481684988465820378750824608917156270717617212093538644579554053892750539316454119013633911685907132623191743822359244991688578721220623852197334212618494958862603256111091020598904852329890560469681511282379981389435915166302718755477440058150590997536216800554069995392482924140459438948336991173180640397993445732559200698982672591735590918066332967560307089487989641703439400779118635976784808931732299765509558940670612198002308028218750637486328621449832303279270822439907969721126677957187591254868319670910216728069496354551870545555795741959086785218016637960261948213386148309660505576238015659407576317153360534252355995367538009188869526520807311759316897988967853678631826416577677053869552921860453134537281094113394924301919312484880478814012431617828802938293688735457257253342134704762734507280070433481755161998497355799702615310301075132386859091884732146111254344258093167344468659822926757581276872969391954986576177447088698344749975917472262775862389310197268328357278095230306853220541728243122050027098922457246197460176417363313834533659917327101169705859574129728052142741005856875157993148063068844644261761774576507766699904167956653523460717711105868601666113169486665304061226920245055383459332285263487597199493326765824268226892385565219529886902100605182722581727402879080900734647830204490915296821394097416874278744216228662963492307190341333123504013045100504473435911926496893914536353337791788561163718420771094944466928159105365612269033433364910909188883869101517126641522516577704730979587055210928595939012538459140127283514141502085946799397410668343474318329658823798652546648385557151528366116484192505338080485232093734502277852346867481165114597449168102305678105849027257257775517938830611313670945509997297841000143279272388063654441351152877291459681726362937741927193001452029013372939151739992469623234747601773475967473975436205543079009636045575195365182222219426263888631399810506636970027323095472810512251661258541245246170103060020199397031800424032600427218517263787282328039651663026876577617369335934169279599972090274859953298978789144227681699461800827359892301379789870044978162775276940141045261937311966769470425098432808634345362624583117298347512383615973931430557441304830393561721379699460195408091881668385800118204857389125000505313564395557543550881114106761472472140425559898951002473402028085789411767088112341587402641439822346997589655454232735458141153050076371241941214248700536151028552194314097381685422035798478582514928759214194625662728497713509139875612635270365712030467876704589077344268994758931826449608816301569184880381517620295210470302404995176557434689451619161758527883308462626028030194983919808888822386905838136415687072912960304257968763410858376077650651597549690752607735914971307836726840455912114536272437246393826574861996461676202745245179812765831790601423727857514256009682715515377565648801154817756486525102757180297287039233965704238482582055573147803313871862701028687371728506579469870875061440586675167128516602241021714373895762850895893973773568075366175686037729621173005881991240654549063173179131871674167869360626516456159981525179541909996380314940215715329753640816826738356313338697334804668112270840040739088542003163371836339206763711918508509100618150754363518142625703671949693867827838992857274113224103805775052726208007209291082963331819564960508072922047879656593911103347684730839925198820283361458186245265414668000584345829760249274991191735834411154314608921221355601344453237102314892467666012133509938521393947046819387495692059719075513421935754194964769668281646333092669981054721073700935043064809026036859569227374138368013301222217298322173751535209216799952912173930840390590794175036157219652681853858490415904911945264075765141422085605258502802675150305171696025040325087616086054844897853133404398262528217175487010010934745162864358466760376967718892703753413835673064393523983434155509846207679723768188713459781644498435940962194290452984985135812183409103415189660556302272284485890447240307330845213810956414436128594624242352952092124376785101148312351811340237719457843188925572877150519819800975703662617635087378709643751777627292755832776354570495326464532068006096747949889707405849058608860059178282186848413071184065993199556515679232439955012879818856214849111990542662584663000099052168977262894030365051267653595279662117558928887831311677309389912315832225536503598998506383630421648867478625166100647555774915410369970099696580446451200382419007803153324595542898197926004412790025404632154217916140268117879345624999565362053210516131357227833786143481490408494689818552006320087522752751915609485012242202773316187062948590705479908078562592733294540291541682043500913039501457550370100202849525653392853566265848089071830329972069024817895412821401524729476904902296494224025091822547979278250160771201486849255386978869317554283257531055897529677244395167670904806703134162983314587194995888786485716217912302495424151229658906698047418905045858884662389647690066882181651020395763698306629433113371278884465763692671366407759644622117617873086982444628129342166664791902624595674332199737981072394060001375719483631077921062044054072413225973210664812669329126003624112546093481960796025361055147932260567539688810233273619035274180409176245369590503201561941062042093002751279564711215942364882805798343396534918169768327518991549953116320614188957052490635711672463120967531815476522972512684269019337447466139093914386187289083870047173513526916094337159916771371892077849881230393487168074826405883364319295925745118245270173214198793168287873905205627504001066106159913015029199340766306689465751898813651958584050199797780870032480415335740616966958517260346091725888056825415718268342658299206123922388182408027289970899106484420779452161741923209336694820220082118409896032338528615331836478530638707326375269841530661153367218234652663148183987194123240897534557993044411782533176485006596360967816295232599681513839029906396970434240232893760192808606882433664243215310458792323704580848516243430642673626227981779882730870534241654051492195875227130783677138277578690617362759554923062849545425541204724076727280480049238717444688804277702609158719394776757646145220546698079922501238122570938596737849574232106513659938912352347988471073965167354305069879522860148710583792578354065271839434574951116908694261174745286272842976992887416731024882384112850122388794143177982243735852098117271075212496753348936469235015850882223547441352396581694046832427246862397872080036136570157686940644983447380344417524307980763980549310681713083512288754848064563252854947836049635506077312209858432595840346296629018772111882422770673561588432417574926783208159457956305002209125842472604560945504521105258422907242202197703291677833914660737492828022822354262635678693664747912079289167761895426704058504174110365598819553426304513464403431571509886748611161003326111089873430574391652909405486093633355699256234502496178028978017686010949274931347836029156385877559509554519361108971407062768994556025123426730665569582804413104337001587778001006374137871130084294961966675069833953513284031337845395524719481270943138438281113193463089270179358208965326328102571667286131008118348886211044158671390599991214103608063332362457203441523466621658088756938526546306406626261315610968288888676334401517661335420388389488265308749858567030822501594883935477386997712085498457277523445497095646048987259405127969891394081623783666775870244832335908377696404198490832823386187110318804546406852218259193419931241106834576779026049269052418821045479028788049997963723403650230872276322593919896447513253309830224413273743298911077751703773610325027205586050910942925540827220420667810617601938906528086184860169439150706755245222104795628882255787946081526449754176463024966252798819942068188333812197331244233772899821625311329976847810933267246520328811303126876358814246753822647738781221455311652943776068207337470537205637357661350211720512521886291112925747022290149895008430440368279724183643278291146918229975356810866777771233214963264018550696045609831988826808360147910694724563291145245533375785056794938377995044373594673783553239641069986847416878259574691902344231480783819635794827862047278561504665007057719627268765187866142956497838339396467614401922253946928333925923922274980784762464451503792813127273833214036378621819907791039308966254287948984240784839559956488750019542398887687425077278041861346622314630771207404209618235090877053102638626810655620209403956544972410073150570641804688608975738357945073928515255063369606758044214975287480809994338628719487486009644822789809481126919422878607455065384881778613166637750259388885937868766401677905521426222476094507072230685544467137346763441449737780993029014087777127518942394882093237909093086456845122743198850267110096538396416932207235828023490777337192753392904550642303396321971141113529574574203681273032614934657254254468956788777682584982931463101488778258189665564161156662497139441772436705716687444837295794240238160153043461025975490492931497116382906270292543231072772625024001189586087439328140977619540630817744044526159505749839263654916809525126367440266203815360914398136350482826944519197037923226613486846245574463489221179541634521711412573030578998401968705840441875647816804300075100996666693208638296004048246145258366967887447731597575777018972005225641736140248760980297341643202290567387069038278137664179023331704529415364705541305545609143067267783337813698895441650105639211303353059155849827605247215666263922240832857942613710159902543320687555894384486236361602170643727500767833880405159292871787300156617843288118588819706537516795026996167878304285903993878617087812509881748066385991952740885492782977447931811228740781843126816503391461481890295527715740354821957067572738654952645377679341582756178303905760385579179835203717344146221084759230020337031820653435274142451702430194579968486382101720399978378137917116641090185548896588308673754384730736836726095914129001645637903453192507277568429388371437588219180371540723641529548415053235922063421621114432775219559159380725719383385865630211422995761611871374045824535797785141085510312325131947897498363671186454102661338778980976567869589592992908116255728244868198690565861252012774790115396834879356620016313297461738140644131760663915451553158122694231911366774282753636191954603543609584759868331176011984098063449591755914454151526623992443095885543167601966537026629946906245104207991828213613777196696159004693239702839938343051521820174955560357135364542391766350894472536086426716713518720928824801293340547736719403599212307012852102856545883860733971499075327359635471331562802482761715699454347251307881377663014028092810227599416454058872077781196381922367467854810194594134646406532571422259717024295443713779809710397922106711331034915513755651591738650320120239905882687044079285392312084783640256159703605535259761196211411486332738496667358826682461639966882874389419645374503013306106292981571514125146758293491432644742835909056875372526529519606534698024000714188881030521736220029146056262550468326030795470840168347452600222838851721793760902598745824261883308871588750957155890751256878019406563746986783241818015562247142850325329096005289935704400230926345630775134219573557923648703497235034123649315751863192476716786587530879338526569172052482465330710945361503033546309041453077951956746061768137402956205640743446342314392857932988815431733002306630004219447773896697936886744657095723060907826346739500283390762678829067720366587089795344694719644736209892825608759094838173375121093273851815588363038794905526904391774337002663394321096300911921879447586654217064251890570123917229250061112103418340193726801952442860625344168705753595932753538348467668491725384153897422212407245158640815963354742262121979124913527430210412223157568979994190410881201483987455784844771102627918009585955028003003649884285021557484702505439163968440337371770458848792549707991482802292356228501168607545808326643944825019309523499606409789309376112358739968757345421567237118154840996408081552902419983175234118271195914185222363163690502955015909420178809096032834791376344596425129435633982428501170610352987865309619917782951101556069513004602646247697265721721270544673176700415304833501635652279937938691475137935782807249074380462617630444676614585297615846363986117045586880158421788397550248044342779424279366002404312078120120884007268477212232143600202071312744128853854880861683031116340830443375117388390932650424869847803709236597152250873142677827785765312636909967279375145763909337006511789218743594133426247864255005071111894462806517139961631372108505991398544876756983081107153984121764262362333315962687205573446690046098585692598458180470916045078406004275161039400649413054587133009183548211007084106605488888036538299143628654214804722034972763008919839816399226922871099110088188301033765728819203267803355450851366432388645921732030586318509186289340513034800630310045215984682076550972921944036488390024845465376448489219827177309100932040932764490665479067201254693667125261533183970177310813040256910292951482818494288974524289282478137506575922564852641158178403339637985967328451147520525825635265623519517868615408841282500954384051352681200582039249907622760307811251242636673244574026656792298764301455741518451921396260044914310024055838771064880397063712982319812535423932653024833181057312282556315301909893071415510623371287016352768838696007297036851920135890994022679040287319961568371096340324531516619975090825665328616404053191241922952824033971151873052633298994154114552950446466409278461874654604821624631427566690512458890191025587497771861439080178730692542144777804916306376419855049553054970970454223814560536870281010881144261799741423715255694447628129642510361459325662469438968118937000984028793721940159442302313437784511682808212832614857959322408509179431569592894305868818207450901869567139852197392083159002772498527841939140151029193236807132961793045802457486035244442362449339013759268370632625619206470146480840200087072947487881439925396544086164881695273136718288252503687614584127822541341976347949769157909810389821768308526765664285509521280839247047041028858748672742773032897496526025594232938457889664493444132493124135859547379442413496926646425099091803300385609084903453628572233938781658543965115037890829489974220134549307300937752309764560238898679889859308284026296650316359476865418752704493925087481630328635672989777614525923343471688024458778302824896385926216912900762249177613935708523409607896773546234313420723344017965905019127723422159549616899288584470426790682146330359455968220904827059632034709633933754567322928661809793678904674500496268883013974683337853533720406987171195293547155063875273311819895868915684995670586131077955403459028063822971195967278394058642557607712633287264929153123491840239108630360257662389157811722334216197883209857857955881550154169645484621484524615992201642213257474993457136832579173817980856370433978354474985482883759408189875519822281519473647457230365723223032995348142232317093312198928568587319280668230564422778087467045257479565418327462885569724583387920180640475762094713422498339645238049300373757200805006369053904538657683235554970164435495126317193078660028755797024241665978441443272880090730533106945780435708292560013155340459696820116548211396167138775351766862665738145185865398253543931524628454009015036983252447638693746088787737005109544840090763720252172673651807221089985013891656079086806657417700156277703580633306477868896873612295264187385077137548454820037734852512342696422646062779154850960469436370007154613901425585098623929178270561103395634659346460342504443627072298253774857461891686007221314364411488551037109006448230707488192103652717503878216766984628505522378518432215268024768415136548837592411535614653216947295194051384428397244920004955403640344019054031136448304115081838392328039299754034144250328591562776048540274721386100811827466568820992770506452270027052076574137808833906410875321356154850911001917108686238427159221027062636547667428132352523931813594056842978668344323939132558702743609245130513470335081279231618559131500535712761339619731569710882250031133036754148287212141794834463054137504369983320767722655371757145341417070358281865256100297867270890857557675873341415938130031871511091130817838790737956371039671148356982233754868353703379470839473102490529701086733828596891909066799507742968720547372628878368706420555392005943350626077549214454396481948844247070794334058873550034986071921007659025442163266552517584513996439918435072316095517899038108047371958491687185242370457502041229520372754854530652842390381231238814331539802128694521123765107313559800796095895817925318493215869406864306679732785488365257024247234090490981268430156193565775060682893065980159819310802209155136908474659104155297850771719482329005144309940771891362622598337858705479810681148996202134321460878876040353074224411322961030519378650029205691258611142283117417701554241306041728522985521816496574729910568009141278851911793259595802904329115426379730429923123768302328490354487505434477654873194321428423515455103623514970530680570167847291299428614740434510813529566013908347861343567405889161272942087692242334604305900985864983210564012181002698326488640955499715180795075705516720942043843156975752043153751541667636922457878130492589823154478348585775157577914650439670801354186144582934586436635957601855938395299648013380763724023269532023759328065955639474160726833452018884611868754912444564423823573110325092655142569161554541948569439056656103223896281448101231891702619147907293057641293349392898290400868339909041149874785530272061744658028613786688832062618991473113924756207480805595848174471095726471520219824008445236813298333727289013806750017141031778358660986406318220838306795859192717677114234121943352047670855497487468761162433791290367966418875302567304162148738764579936301415448125139141813961612921877699745086239697860213868100758496990090459258693370847889262329495687625539825918082060725525686575271896117318053734271400610897025325994708422247545716564080552553232027335265469357969469035699494232309811178163310069536782121360121908298921810533078658392343131270244563988404642567903474930335773330477442817921135857740860292404658526102277077240822468154437150113760877336784899195422160801507681183871222605537246384607492732147608315887944913349905882903243884691968880652640363871268828347824544079246949955110875797145048895653338256780498459569606482441551083338943004492481667364640433713723579150474610072261346371817332723349978215574297368149644466008354361814658842279487971600808415419549912858408381565157377593704445341906627972399185846951738280694261398496259646698943363255025373404808119048748942673480496249175259159807053655002627073914296435306791505942731053807778550175126435032580504182142872252979399242379006008112733475734560390185740533718594426756160306590750911140592695256236289216235933262872701919389569357402884285552675101122917236796318794869144731454286704019453079883543081904924444825481651980048928238024714115789782828292630609807339332035456337393285108643659165299225143584017177511638843618160548547167996930336660334728114962744890517360506589845050926657492916747276012629829897945735802474518052714912295874800193565772664214491538826574805620970997671526697480515064519414092538850476072197817619695202479195599441439580973418871612007139492978462751568592907327742291154087906041638901161466282736228561116472940263918786725758312592908625313626577924294036572387274140762306043858492500341709055303550152118794171726291596196403367861395543872992798791158187150698420409079134543849907188547635456791977914574552058096166994422100092535068723654463285866974336057458215794759660846485700788281025217513538802842200462725791212772488063563682629200061801041522712270362186080609854624814248261494926193342766289299387421685097836250645614884936894836816838511401169319732546819481892267457517513363086629906306515987266837702397825061968375303957962136068857477766773028078888491852761722485002026321602509752284045884848425518676278131650070085984553130571665349071473104748297011445999801309200538467982727177035972130619596736424708955822188937522139293942412404559699077827099517175079204678703764090292208073286365449909007241606502433839287022574784323257315240988115044228094595428687290698875115134448028558885936104432850417328999953349386707135808585506437243402027145571285947370925246733585997687630562450880152928567118514765169961711402589570726513762695621905391945290369324079703396177699291463843748358918452767036398792717058746314366888145037344565604782502585561388644109248048460912803849502212167578184938796591295839329418291912558254624761694188015389817356602817739272416190732168617270852560619576657037997296105871256604526223262655208812555790776577607396537953407709117996421292078378324923286311214197861801365207598239176152069795603003401243636473089188834266390364848825471683488400420911281968612623396169233453608007076483128886918065662849454225453324923234987961974747350937733296649978077425116850823543729815595758222651304236363503303741835608027557802672896993720524294405698602002601955927046458713380842327332274461095484645800540187450895770723675934328855041320648380284036318313192509453049181182345553787862025798060698652585471982256562352548424212485844865060314403113984071171798899935087984677454991663625657924897443585028439463724754400911122803873614948401042201557746814723632200482262453708782115706808627064436850957745823076577876342509219187678200951851108525903874702561689519043446103439404219942825820367680589479780718094977033761152989467521091331505821095272102514343279748837194399190270509264288808543528589513998147596104642164976011541286301465365094820994065328933650121444098005699328892372171488308772480311696428343411380667240362165602580152295711484030892802932564955826482221552385922757300272777782218515156029417417767659387647436104068324684625625820142349888799694776269516010321433066810793058905449594298478404082271686290047437908699974563783362382670702505509041022310912967183724865575250324546467113968021219376160562158979742718621140604285868277012650933102875868775949560170752545548326834768998471465174201287298700754028326813962766413945015263312073632834749309889451342253714690059096739185907688226983936344957015934773437737697102078685123773674587226285572669473369360358786274906318158106270809245604076396465436840675341200874708797868310133868934449567979262676871685526272992089390549108884448887861784607455077235452806048114471239116807645388162993913904619366425076653296172810851989777053860923900778393872937441270249135970672128354150866626396774391719202347973613285349684107077142665555747947788111721906294187070110837260730133344425637214680847849002216889342456383374364037711062597415010382184266627922125716786813155240754177018020628204296602007114120416328750659450301248517491350938281018680728655352902770848427767553981377710989695762001435790411542875012361293515059937823351990194582789510753557263649155102671948082793900281307778622846256502653077131731897255356235661473580636577102706891591123337218319616415164326124900194491327697821631589677246198915810346468896290352767737595818515540490705639874734959961331958086397933503227715537059138941377744260908687287089421524427965178581116748573438296126596385998565583810744276693845594155482852209696539289267370219340583953905453808124024008381984917361350225678326551280476382075196816596382798925949413230894340778348069371460489537009103910197957750143112104314664624647469052485597552872502862987177244608873513347147464291663922124810550269103023274316338965669555621352039719775633555674870749648750255025279044158831645727250877766437386762146806432220284111185991503746300937127948341660484629448064458030971143230829122323609672023302755465739628691685812571064062675839664517540251864091510340010529220433456036564404970747848768271255361706834763295738803167175653853462683126321610685759157509193371048390979099475957055698644540952583140051626344626774230992932037372181562168875897929036065571839813696695509932885345898624691543247025215750862741606873862359345010244935303689611022302567136004569583722678430123927433991331751615538492786094792311277708060618553222634815100104566790230946732599941465412648776979537085481757052126888010685429580344994331225121266699416014025408898488670806786233191859748845311174822049536907202119227162548471053316138820877930648631684885600813792768467461977721615360872660828905112795835290859356717324921734848113928076302442516730220244222364041107673094213788768226310090232538914964842638095014260896334342920344886610433822398691467691837955898565235929495322778704665265928835034989427757502676452582196911334158715917220597631677308560452903088018104586355684814932101513859711503521481344737569318254402560519532161773415891988536555051537851971806552475975993952164753290611328840545030330171994005911489989873053942750435125520917825677967079601581377424651929478401616563604509437299751302983978624508916119091909936626636328157063535741625155422551664668837239788515036148238571872554188252643426862165021952925600707425837129847988202302614386877358917594441883030715718590561819317050446618815471453117117793457985739111825021714644118262705578823842958869177712386592220596886994277434023479051879337737956460165806669955282048395738715629883718148583397333080836232603269755327389998029076719867563738236596387666422312421539286277741578614965316106649179652165465298452473394557822347858590748767419380600662027958190794270973051466037672727936234952481012981813415476447143511061191881984645505290664799913841551288691271323634502988877844619956445957542067268052385823234417937854366616231381232270260321112394718032177808373945554110147405290633044247981552874206288124953188108452899228280846879386998820091645098191155087444096003612870803967195563425493989544094733753892875092183183330845585180876509551734019511932908756709519124333498532760959484845161177797668028307453788030553826743045950281436849987604055842746440573619575883153129688823755030714026030400369927836932375189169584137674950267737035338483925360391574463045394363561414462505885187311515605035551023163956024171476918058365637585631493896725315696657986368727076109604821886974520242672096744758674367403892321204285392284066434225997767019721610087083596817613459534067551215161620618840151456501197244055035474681905090968583218315265154804152299089542270328447104482726806387744076994430076230885359714791732209194637598158598990859461556982608573785365173210609105435186213489404210113328959188524325582333702138076720668086486363331016819701667688986386650743707496621913482214962479481230027053631276285159283418352284510243402849204567896133256431830760807749031492917761776587838713392656154808268650006931048159974227478311703030096155828064537768610842314710377898443034377139619676752363149395467366493823475537852867367055971717870720696502437806840192575182813414760390564013046580434948130929045308551715304961902674354289397875762868253742765297400445544230664934737969539922006267975135720314640197548206086162767143103309336532555755675404731027217536426747255028407605853323082893548657048220040018983175160595866849198981456812531481617561276177124297875073817986657611230141628733952999777245915973702519156338753328241927476824977354472415333202335519900179263433522279596681423213508711898984761815768674573079506126444652976193123586210310907075064388651076833356985145620482293152779035344555295595064618877528293793718004706645152521444279610413746473695526116600267547629026302276279445009683191773448846161782466172742608565028341411516218972811827323443625390069340640740607410990024008135223534329079123597617947245956411171437170261062434935427695662934211709377691316182718735935027815585058736927934694920787629043377468962056135648434529204132105680328998183000446224825785591555812463893134443817935120775761525290007478543733073518656857911883709683471879171209157406021192623112648084444369378564640500105887641231861762368556374189130926840157672400307928434840474902053853553442538054854264877576958559485679648107447999241341611843510681328906922848087100931860229493015458011959811595886310312211414416746269307234538893198008361887070275792583265559833778527489444476251521375605912994693755285305491915098528434850700821826217260895605322998646103252519759090431159042959389937011439848252424906876281916944702441951061066321868293147733772499194286426102438890765909990753900511359020424046043059599017562894219883523535343703585949231331981901612642860829016384008664478084686772580751821231907788768306054156465863530894941443385041219492354000791204631914944480620226419522383657691306256196167663353944131190269054853547463921904974195622678954998212884642438356159610876188455072881167971482037589055032019083273177401029968052246843345256645189316039566427801787114997315288683467865895081424418869013956959429155345499212290617396178199215919659042869852158334671357612206604959378641978008843110321457355430664974082489953018936771760493358377563211462860220387887498703539698441028547641548968471754062315621422901200969210366558133833145037262016165222866061897780112060585555063586773591532683941397136948405094722261521094845501899213551693985070321209404986313368446802546879159036690095006120573196038129027973652470570580568733306802447391996639830826009593793542308462943067782968947530362439923831542955487062796864480897458173642096301634017859009899091443103780094230399905221173728729405922559393059472303900161780818526088821830445985045611269296718927704004314163093499332122604161876922963496251101200769624176275448426660806227188626008186116023662012708899244237064342715518537407802699550311635362191185588620573182863499034862561719242590908296401566864949946720214883790882054582657986243703710891103571107366316798859243951090082630362944432321667428392806093151636398071591357963659147459091891208286215481015893545824541306719091356824846976674608329162681839864306984458529472756862465035335097776700613139748645454835970693812292296010543257799741305909836611653149298451429376972140329416184384820955013161701982302763571435761550213767790546217045058204584859524750849813692753539239696800499814372361080908855352382174653171702435536613276684140489548732771899852565139675156077887163815703579511890398489546856448860151739677652951147692059348112195088217068317479516076694134778490423081757005877676518621504658504430122479352517428757486460858667029201254375822749956174273434534193199269124096298541824789710562715308755286354070153929296142881969521307032045801506915477985571187713644845249236113014005343165839047472669900924804639614787270193496185527445788042062859551801717976688257277394579554889019123688966665529384891100432256046316579979061193552768223902005290282579550172615644753012758606408718098366593670146011722912921577845211061125073582580260265009693981676769998446035745769710032639573056175732886111544490944103388823181362985748480043779753136722983287899145943664541363360748257438895019553168391982144648984381129808104619148098268444032858841342959753344738656508012724220001789504545446083081429871138179818785182202074224750570489939696692924313995959785746449995774274522458182447699946852678880541801493256927202506707229908814536074267380506750619479815836132669800293993502525755364220378758033652163075615460229068159145932597230358521446255511738303524597661994642466145663826760105997765071037561398604111654544970001195040450511123367327311657366382636367952179313018821906753042678131743229144687295683023608650409721533010851882456835069933459554057288229971325193563762981527983133116578332503190185734557536923590985664355254227183108368527907336246908336486382178332361468817050253983034356517338814288359895287387009789974875267333960566821970276497725773824463247648386651250760546807650796432889567882958489420697305214915166196043835313154295366047959036014643564891451263402556228550950487442400563128135454488405785245085088074707965905473289869486123235237786981265110052098821618584568438629063128510027866024920996401497965033625021923581598729546522649907513912670096421687744211196808027657285691808687194930048115376206430535205816598424399969525848908021368763122838688977719025823538131121789228345208494269589817834924997694958657052544894570266860276665977834119662606454492442657509454791611291912647894476524667312284140662879735526216204674112351614584330722131240526512710533571600019798894280224716645849681177752556322924556495560692626731362793270584713034299093184193011522150337635740978161549172243796072563420157161017705705227435747206722370372112286031057878489902707642190654580373761645103087249697490487077588294430816091714063851032212301883864059619597733032116158344819124362443309978011569324225174907000793142932245409898477177003444586992089945169571351040071801199741804776848293740113975274303206500845782497188654486402373372632048521596033789118442553598547698094330035165311543560940402125097509666883479716290414858789834213620919888474047321103252932177400692147376419806497843821416029272061044737154310033825484704972796481230894821402432771212756908842028001676197672956736734948979227865984662991438386238326265666067955836275336115436498194479225434314332336402226136209069944588430384800518025660046357580285530470046702107880050623989072716356055506838618642414595774404628264501192399312625937734238950738034330932627257690939388440367924473866096443931803171183605573841669692435799484961225343456381080564648969556279249906244371058149535473624998981913104655777301046436696258756500933737042309213703377155577913933170242737167273696635545407643239032054525465935826361168241599838339870674226192999671582185221250144448650932082125611684642271586776328633116717213104387468733118968612712575423842732472396151385297543822001616752250729395821267309795990135926447755394495143271585838951630282245318252656956252120584312560107181086536650451552670581313630098960940720404110974043428152194424471681890871555919071476716348735477298595320119255523273911130653197329349348717151702415714595549790959721537274573810482742645183259895897303551078036371557015959649117482158812865581504010139640918459000688954436137596961450574799805193270576085482021023550066515011061411848774959352138652444029428752969880158217526660668284355292459713005026173236852422310186514291484585166145407414940948519878649471852547023132756425347423805635913906332316976260802006767501499013026703660003999092738049045958404915973107225647399064280656409136904605523821100964226494617666289262369059356767418472607282319781873071957545258954520622998818520439021686307326022105080621969715542959329590260513141325641884223713805570573861947335663285894948507704695628836674932094601127472278566871018111884602901611835220795418571751245896237953684144389321757701977277945939743387602254024249885520456680433588564808960456880861709937757411317249577070491576444861287240784957082321886321647721141086661797455312256870008512561552055805416797141454183888807453267898284070092755624601333615114283761397522513169852811332668373873227979095901843160572259088497617505812154365122673275105682933886244803944019272632465227865100241231832780053063145623164349492209888262350683867209647973820892973619698951631161798299417308863014147452633367862903542398884528941983981932858182890889146143967176684648436198335904402549862143829834862425625111676581557818143327113066017210030432232397867901089285328701762814875314650750422122700906121630778607824127121771250234543340662662733437742665700972903879707684560086093117207257660774003735145506581012590033345014244127518513738155881952510955074766591843500202465567012700271733597390123971461404754957214771637189629938258763914699645009454320455420534330163822914308472863812673445054385588467489585237562104605543766053909163202363547818153394106428502864129437965223928051141466147217966915825053866013139759547424001120756140887305505428083217086410878805315828633893396827392468858306218479547070710197736615244291644128835580538980709943322872682396769303788920827468745643202621248148266468637951873343800807618725370788530361581781097323156894619412376068158836201697541772854230220294997156718344628771106409885379998343724419772954750627396006548210639282909483468582263507239471259679921048785484676106342187845890479042171903827844892919495485259680746239105345802335485048596507340174891073677065746553211824260196887434172211399515506729592185190321558980927135782032915174867941714122654915189015761363368964240018755769521525673417327727687408658852507008500838427452409822213968168953226689115837980283285439701855464882191863502732691301173879427145654438272974556102970738546261766676573467144263144801366719253649258168352689650119308849158557186522734375195106501360677815597566215527303086273686702892642832339965778795649281505423840999199214878172182554727416023448156231959335597159346494093867966458447154841456684927622745816926407552917145678196463163509583311077845359955604176893732489319909763387823407815246365936019055741767879152090036860070330338223148826227720850371273859421562759275311328442010005500205836897612299012086752615562074774465068459591808694275738384801915110155701652429909505665750851253018151703301330159948416821379375868242624345399137392065848875676854466505527864221700106940340759100995881478796879575900967990194047474738007260639418529840665905230974171208821079844723963514113867186173188840510780258289053963540472137000500564319531431483565433840895095426177890597563180386438078235087130558315597168955390901107310030461363407256166578046613364790901922458807524487092060089580149869621424338663867495974983097402407615684003458429241482004622934828930935714191823847869723352247534780275799478823092210964371033783901201569523222911286415581021754292354515135750456079625633559195936387025424362110570957908294384351655787793247831952810504274618198162519590185035288738086484812500892113369985132833484362342242324405986527905998853058659023063800227497048421597438420535172501511316283121316635884538653391758744116161247332466931030730701673073225839076182231048355807754683130164192799394881209028040213141024172145459601113253923970537823610062026320080749229849015692475981677443848833831064496870964404430301393533495478388338403985384054368294519249552385255566100676059691978174219659160990059140692996751259793663274285782691155430223492103305652670145642369983096098235462869060918794659672887927014388533086275093918689410263738089593266977461149322697875754771415312376973807044366412172936608544760835656032691754458826066384787213105478652839123808402203829677649090595400238523970205026553010127723674337494339509134131303361359854500047069549179666604183592639443410394995226673132612661769290664500031831810043776230558853099028931436481967687888176569034205171517787221249645923169505930210960369101665237928000934582780070788272289963516917243171213131664596563722379511414336666147557742643099770964819031753268893444190880699293055407443509458785492453723840003249104524376064438176711433931974194726281289130873489616194600561710769739988732418447957764806138927917751415536172521644120231234688887128376081810981105007342411875644026332122202953405981930329885792233314944026956967151977655906573333643711154711192842664505448726439616832387982635606364548798037204602787040715768640086491114473323553839465234028913778824643136288112889815228616019658796226361163770241595118612866016066767910478441261457386476452080668979383941432187199960921570109882786273412983002740266297436811335853719159502726792905142087897791382721982740922802575538775119656270707312143077518898139830700809285081174271084237166741171974965028247640552939588662934248727235365886416579916369164332498203005969034066602860730886416561626641198029983386470602110400456966126591519653296199595851290803315029306302125706548844934550105301761718516647764392671810834866960251088797419818689278739775060933143514689156904605657203705276535635635094150510472931131742327228527136293290745477476888815885272133514728078033039120382977649926843052730680272587915532813571824876713477248666659196771697771014093288751580969571156623387713290260023561104222824986051456467146392185253476082100053084454366191591281437737994651880206864909634607333320988927926208475661918745259032723178828214995996283509174549059134416326068721183045645677488810451679362488133500077191768245543950128468316926097588045377105377756371135976376732362954109644921551571877123597468743848870481620250494416847710603236472896237056232619384698012777675326415584061676552948549864798081974039069385466916026867113766642177429249344924271659409621877067763767756127249430673518028501849213360676139974872089364827333246265159211167754186735717804118260992940794533853155696967504482662725368082580832016519734410193050878540240832367515786412022709563261810782769852237546027306430591487546517615514101795120340234932353103087837486132649330985408292216946262548840648438990400635890670772077678718528522597652440561528425270126321412108099451328668193692991670958390760729368585393228257099936349384274594112085523781737640126530399010611238398398837028447872637270774837597021645351919792603969120919067500139252678238903475064789374370716367576519839375136016952519188141772350647355793612886901210381886549558329477470375261556820868925859541432239984062232087875543823190617149306987183780921947457853147474646704477537598615043474606355891952317406340178073337248538595206024688387279678935376814273394570532293906797413055895038641547463489962179158122852670669269337855571094280664376541111376685229353060470495513705798665786645193537791675511273213992209503290001468950105876166506631503906723122999146060009800311768153119964130798110079840009995293287376496377916386710320525133822367380360221826428012057063791434269519922931814581675932181912161506881169803521769837033314092728518702827329621468237187567343320049940269296248423938343661471506996235120298797248510748163415100617417062328408042226088792208946155258035842800525368731277622671546217292933669131428560542407929563181508186018534177097341630765692955123226673994490072046787937929412098865752220487424686673455560302373156620493115935276959378835506167776638294939393669816064921555966233670855614618117714336282733817908915173540144259361155505162072349506985727617758136207797155041573027974485949198837149616330978717980856047790801715686068217147237265342289532035158346689657896242425763820834830718278880222763626701026731919663113187987427683107676623162916745872217920471225212881578955742791459280155399365139209085755706719489453866116770319646067292650451025753754269662811481743036925691785497489393334373124088528588797792102330056543251910279228369167141875117791752645551554120913475253854413047385957565103074400408768249523969644867032791382280833962990236219881580802480009823416577094917948425814472252746750739041105330855187572339278001144815159216708874989144573868233042577280039753340125870553041401017548793651468816325205950414426370897414727606733315581320269950587826255681558913878911968092941216347728630108505950131549809916558513564297432305617938662453852991363046462790699356357971186171789481285321203419747556207415981814755025154384223274791955502558810233732137508682549955186749873210226635438533399796927642779906832160927219236607616235514473098580971107457239492419610759650803715537290817123551151087286475148605258822536629733261504009388966602488350995206499195893428800426848632227750952946523380405783566503987991285498643627871674133295399334706162757300457585806855521309269930240887948877086316482489351040533587623196330394951386349363920627296191735527807060250817636767891077291819679665217369135053416146689920367279492361760968913118421169915282287686375506430192579701010853389624860479445137557713602513721849534570242435922132801636768836973327771902952027931579055591227042205859150183124891692500200175132521740389139109954366521977088264230261463072489992459304590736321931479534073557811290253836244768888051583575277758344611828191292283616386831780319012802211130329357677307291531606557656458346698051533507598777871244332817581093338444846323564215864393433720886123361532318200034748894415214630960437648452042181858357844750980451012298401175886832012505130890191019668164946160329915966092270108008412548072266312943566286731763490966965018681787184921133300096235142855712522367651942385597471497914801334282778100986959387483902809451393867522335604052891202352237805075718236772701037097213259096459355203631336981169992787686620650033186965076739923867684375874054956871941457772778091190204489325811529824255478721331250140884774915569543060587703934891182959866589066533871859201135499939447645613791472873558106924863913267580627970671182450720119317710001455812122675654283840973110666236062950131657696926022750636331603305070885653998747312677680584461481044609694995871968468276648971611438285172020518317064180145422509714520122668676293890098348280471917209836437508117394583410079892635622041416410581797679249711098994110295852224871198206031248657854499457724447926382887930465064790304639110439027254281575988239026555131712614142639627938963203530076693693026576804954445702961781040112851666158154199844706139360063802513853000588081029875989290486381720484285234323914564148756191525991040754117830710602955989792640927659927544858751431609376604472048950518676537668899764211498160318161505416218142103053546465598027966673232403136930254916447643732742842221433233881701594578730704395260032723618091789011828694936384955811007095399191356728039048260940599842624480037276951861791531609173609351584563880824778298782614892093806697233943676884531047819967566581220579504989190556374146551233155197277129414832417154633197168503518210357340470229120743488624514499308529937864387051684574680058174974993176842404744780288474319298186671998409289819118672509259083000619680009143694038959024575635054497870468067790257451106226066201262244254391392153539958820446678768152448172883966426407419226552060676217411076958353651784367622769293987679300359396586054250023527549378459952924816856883180805670581223293389193410759788968261200669938175273820477483094555600357324863473481141591526306859451844984994293283298005510606059574259071755654317717195733826120252717309575637486396622503555000963144397896704586054869627828698053083426974212495243276953263741162990233295713324967329858802282849150296528498112002246299656871031098889778987174016212074916480395873042782771643109101604645743934610428476332772913303224807294583968850900757390192566931576717684834881258363377783297554739876566312512908635349842003468286018966918486609353341087421903468754418228738558344198402576371345596131234835157276979321079279451575070744976824390174305707510975233780989784725358495530341292133367750543291496291992990309945739093856786954699199199458779431952018870697921736079662493730392910996628254140241724365352881239129210860808575325709568915264824747797217975923071974403316536586534125756290084547718256652105462252074177663731134559695741910268031841579574635049561535794065971066533925489438110053306495623600187551870946136463839359783032861255475806259025158019076691963665577809155237694217075588610854753305013976521274334265780729394543800807609191920659454826466950486444713598968683715942228728281354019761437775835196318296677393114272668746482117738509341236536256520963233262785797105079141267267236231964013061721510753957692655105728196911832914592845890034015182982382009974258826881410703288886855588359167000991879806104102115408685797666356034641460142734325542535647315053623698347164328567719039259299814008559882295073576611145028997187350893790289101879967742041576896844476321629555892280456009964205968108072207702924625599522083174319212683636824475386805985103929619914418039748980097303639081647169850779606069568933219239756350804385740276670927209132095062160997221821374816894792227249236017048821525953192804095038821847603516131468946481418762705367412204602168597798349841922788197021555240733041501914487174691951932875179255791155328317053331223253063836684204134819934852115578588741222734875092319557548429691800600755258272640601251836315536444987456765123665771198974033331081130997639745449190207052906823693901236833857783363481672402878483139009460811005790862934274295558710773046698681446780125590700019516128799753006852426576329535434902910412566736092314647520676764704891341036399539816557650811825853554055704041711865225771164936933729752375231622935686545803246603743428516196429149143891698428069926187202133291700761324944182893541324017284480587738819055417399354650163912914852161027942342850700090401692849002180360435525199113933032449045265117106163172734285453139505001911871638240977507108789471194082024250402251718058975074742651879643760192502952447826386741204993108041714257774491501079880163290606032162473043242934079546668515510412472879848938508568164176542463491272757694520086751834565450333243074912398935702542416730407576769996854058226584093670096913385715391749473676900737566745657067576966872261324727276309711213152935636533870967261423417120027582633570923476082679121920707081970098941013321117670209778959247847635633681732485503293311126772028330151067312903280316324906383059913266620638675932565209222842369901034035417963851420482085278781915718586838113395938739628625127655444191885796342283736147941528853806982820940370250374342790612276804369656532094137664051264120326937606388197495725070263962722020031056266225876041042768751007866784885820156311202301900253695262458463574843837009615372634979525767212839718110614693467854159917118896815400466501085418840470618046359655052399941379667535440998349261931425926420022276521711130279869329768797910622636313994141680877855718953590117157618808765466348224534994512200526142973988288116437582830085910228733677588904658210953030827059125018557723343194740044134434804623196785309898194154900190288619400003683660042071813400512729938972386731931122579645875224954245911082977350496042961751988164590241218538614074541034715449634480209097234948168083034851533950426481517706307956553386172550119068566070907288250006891127258275011597689324550923984779164355579978214410360013707345299224797593924829677866585885700702430543002279948112620527130247014821946362576329028636858153913166952403320957170975306195934330278687086913240287919459525668209730627531599931716862768198995521500530385232396457910531930235349552075063021947970135311958393693845696605572203139890636966432119109843260527300151365655936679623069625592395781094668172812576318589663199906895967815279299508201261356340217265386986126693215400788612372938995114406270156807831016249488316765257510038881365577761819532845826378776938824670997566667037931535567884080699747374639733213957924738196080754731305462858844424319521436380560036399102631211219082140050743016590523180190752965442994211571778480725975828593020462953675561958292948756632045179434628544115023991888897586999151977203238905523400638445352996021423385849331864459012974007980359582438220283129829788063889701869075411940473239269132667750889603006311535861332835445210903859994840871335109737973447602021114701595074936150311515034807405165456410752545510211554954200022353610742567712829838774084663554558890163627929230220126152039324919765612842161721964567446674020879276554898727491915726076246249544497104243763080980603864738700646674180571289916742852917718069075837428999688365345342517052898976485943908270623414924977783123554638340540020809274263409202260977789733657711252698987250199317956454923288994422782189481263706532953091640007589076574612428425864276100261193877986121219694544162158897337839731104936311973154978283403074784509774704631232149567254796129741576601175778500146237293365131530931597646410011121347948878756236544740671322101269637143579029723813590292538110955679358918292448727867408691323159134691616512682473673279273480730367119848717687973841440117402287268956648887851684960914898446628827387899181875435263851310149250241897873347491736444987253747777817274868869999243822036482919178086499469786759322949128805206897395350300618176158749543208297636903987432748011108316513599766261203871117819300194664938665983230664987865838685836569076338994724127443435196223919847017417223217410895930879377276155008592458986085095914256683032951059801841506742387233254197187000066178279782117723829190250986800268438577835026033395641751073716555034255542054236906939241931939269616992406530648334018722427115073465396878840531463953025567485743941729201066967103811026572874356416387265130734333966882507053753901479079657573676248413967511051307441911949002457350071160328139674093022272135033080670370305665781172731600811777313212076352085851914625562954842878402724466228599354241485876405462902463779042486264379490196194025093877043158880208069430368542332943011339227929838895290236659869938609910022019318005352163153280735053904856221907581887362352689570396687290534933246933747731134893792989325186651884009094076398300720966528589602069197117561600851787342857515387813957863921223034092173761287975513119161416806738622954056003265521566447993203239663224446493877386401512423227955230439047252842514577460558283280624267156919853436248264117385933594051401972632370801815083881532762196575002008984180016373103267823317220918515027803168536785278635659801162352533187336356756111903263531877797048261092851476952404048916746713771521360677126213924163320933758171598279808261439432237519478995246930856965141944410419731824252903436098017516268105711513422397766756761681416840534768419071372373722560443265174090988865648839507239490587721884694141105793371832436878230243684722350027464136896559337876985892964750908390275327936176927768646911262988583976116350181798813272382996738865037605547817824083086320385368985644229126101454905580229503378730021506383483896464349880607972378914014722003676197429130555521325618567403574167892128861992317949606669975730506501654198586581171921774963623238649078760398091242611269796164281491634177956604371604957020625081229623770810758752813392146527743999818874540249346867805199465296314042625260376111500544877362230727833223894607361772751567983618496502856861909120287449352496027748238218564878147302620838948913118663019166599133816274702893611828242022647161780023026918204712580973871863665562999295443983725793077721043182739984275905916077214544763738576269109054404045269034103727157267319781947170778104824960687474277884687263277103075557846787835221655809060905134571157078224103707742575184504488860869030774080421605149218747591923928479407772173948359759051888401698282282907062639677788684708431430771315160788311730832327302663344351902697366538648298772178646692995020905651873114954778408781451352293490397275598225054047380955530835184411953305161786404298126453985895665882221899259788442443637055032961370295718879875568921360696153018301197023282640065134065553588101784324265491042357740145143969377929093527741065446702344545770222025653224059804484839803448746995246731503862686509848383325648561594742339173617128952420405588192093293494548512948597080714004269809578938888737121258848156502485263405402397864385420045076597392327660333567410877726776857299092621386750429668166666773901660006084503552007522752427120340151381193699338770883984590371485490924893390961303009341062062830358695585521720338722209500749747432837460711902734189812973449481174468957548971168047182934528305056711147950343121480699164357923236129426646190691624620719307727267152732784261196959724383023775194364171621751127250128383860075901128173882949502397695240311210357828561512231152168434861869890510677354527123782694128580386323013914020395599817985254083373793196152345453959070432183082755640498892654817909033638017886118686458535956026643482568661557881072998260579865661655301800606384792212755876803940285513517273445191825273465127262301073086468191023982559761972114872967454774503032772212100023582695215231933369775823885958101217022719824109289533054508838171015202206344540612797900431099934054463998692412634506898937424945377320979591072904019333095751613304608350983688313137662702572252188718634157901495419786384082513689630760566234428295101658077456869478434505471335606479675106192088388046829828095496614883318508544911405676805223608733615493205867904502076258190092802027701663142352065274779889888882353684272690678096427464768450192584120662801696698120806529406370893649638601843449038941678346894138072558767897446732574757533453276627411406042701855454587979676285075282554561865653961754859945776562860702102202331385952219260867389245951526284673060727098745094965181708282991502191094392103613384479789420630058890681259755845432881141024089634161561478825367524327164390798514943690280612327185743468109152109390192870274507452990473748019998524963356454710559013940328088255537699813409439500447488330477294199998983707524483422296887415366653788221934504315334905224884986421094266300367979982263426962461646889246363889337701307759805746495097429156818539723993841930624310745565945785205618886117398750604467506606898756622104666377948203627701393199925264511640885113308747303608805550094091777560763086966118185958032453251650087707410916204630032733228650187825624492368471510001587216086654364908191410811790289680979779626107129154649526900542219668594996452825227089147715552529851886140304157793181226028327094104648810917048559668605999270204902401107411017807408511934139673573691907447710741519620667144095671367424909480863541993153987266128159048864258004260643824909292137813224416178377224214004743259338159198055958705979012830938412069835727886146006752345845869737969027117447511401952258083662146812295488924248734665881221256621750982216907369290436435757927610953490694240783854722309946565986395006141418220085546959251730736794800760391710517257723305858133799245412012866972887369268947031540661578617562706430089901115238993419014735513255968425099006174543802741187127564768962385445388100531477877723713164222532111805585890424913076610057509294867506106953124492408661768165837795221603512976663003158400082759044208147819735507232752932527352634373445514943370026977685039834078854912246227760061392590203446063926880295973816131879950712168526361633726159473271141668852539567756889500148591623106912200778276323963586109159707266766227835498723002446208254075432794774349410817543582188281287226457596718433712538335635113642082295136350460747598881424164136496456773223240073068980862629897922107106885299054937897236718356796870242290678068847501886555503680713569132074656328212730681611532445913801316666443408156728141743901534641870187946142015112822854422194144449664328354763167169067526864086797223731224932726690394819799553347753333827941814574635746775538234666378631983457410174440636552000793686065421571385689302520497280977239410182274293333386750253685573176336343543294501694233133292438966269931035145505204201400415308585867636531819801914170127878295979040884715355149297022292030147810744915045509879730916862846197544633118112614589044434429493337004504630194101974289251353964504061621679197772876144094821898205489987345870352387464398520206868643449314429533902380941317547013386292663100616704290504817449006879349562487543466582383573328249660379539825552827276925619442390008059778362626379222866719224558832991861398683746545602684173837709458289040748573534145416201350040612729347947064781191218678958338375338384713445467762415538018376991804827089344297396539392196552613826033231951467862857841238329839087408100327612592900291177322557334407282098890839472137951885523172818221657610849217390862654727636135475783051562050037127618767937863288072340916934617255602669991791603802162378263880481005604714539995453263705806225884759591956787015612418121067287771223392544922403167022535785744977109996369943188035671714450080366773617409290353825690383298932832875454598786463228377257107779687711545500351795084099301429069762717570166713798740609691217800825763030284742547841518967807644155914015795770338078701470968370403810900116280221478805137891618003352567570984063466239209761426522797232965147349174416504507980178921332756757474214946640532031007338596733109973031826628886213567707510959348548192189953552749666003944368194948501425192382944105949304994167422194356604157777068099302827370744352601415492331465364809146720635138490824962820263870513381124355871257359565277261522381451477354748994073141736079896907010263809401827778808142458204255788487606278491088462686837570612715213731757644580333267365279630648603342554477273154381223175111681622145916447648869740992341983952113851951088738497302887473371932081435671090873855415161494076308869267521343652018696015182911255974088817601356133520415458459941866501943416496056217465734482122067739193936424518774195528779371100014892758256331174404984769222785999979979900556243327072373039674866699720788478685841722489377374031346747596086260574923575851895309818682136452120437734438490253770220125212930082740040431583896369136152856197678106776543355908283465647329939563219107124365188202270981596637482689675850475765637070071546268151693117004151628005165666037316179389260941953525036269104561386452107783884560466529446471094195430008473709826124617385222847551800271350886818461959341592113937138540145239733844862243302991723021648276272527704071525440927972226298013628177836116396481747896786000603177315119043148782523252023087160905102087682115042957108881360916554444735207533053090899654232447191965854693857822483117722745353799950934406193237123574399671106868105934014658929965650447993663224498164389095077832047658667026462940584469168987287605801174704515892023524649913624701296754735164472911058489208326408041609755033617469400170672654599572515864862682334649783657935394251713946624104320630246339110527936216734366953910908181477445697319009612293277226072332660803863495448567471575283561531232637699511448478596150717009363258399650545455419354475601170229803704603515895892800337364262526744302676945215733927773165706621828805738303500844327772315679217873426714113266191006072906747300526803096489870977570976393985820929829082621589797747326703407279214960456140042538609493717797446119368041254106899577568493447298436943852012744885729513549291242550902121278991277600695650478842674386445835611214372379762729557088205789971412500211786904973307773546333838046201038001469256577937264717891754011379740329543185625427854102021256943912304400362043267173188925488422561884706497582913467643545998739682219651254721531341120054863800877114322007509342006742187011433369259730414002336591916172757392748246741025823658360816844426672511102522894525956074502486176988566015711090541708376662638265094360687755797610699655233557814333354333325905228192964103239697447223427521177921223981575762794579809486946827213220995537000375817029495002408694903765087679681915567102714613267043799393547004749177946889059636990508468842687869210689412703174496758871530091399933514371030590619506413187446287137299444553669290644749678385382884444703379594232410950837215453902840164595808480236512920061341524898092162233718595793678308427021364353088221543732660167006640262129114396807320189698889670374767765379074344661462152033599058282179274438047157195965659893026303518861418834509725567647373349388398869576519940199332599815661699503311634005663128754738007841715615502782504268679257098084124474658876770788295544149526007754065872083524238359588802912347434291034870480479568734779542757323330028935299291352639067019817246048856976656752098628449588503076270835069686949038485099013551395128315598568686330897835443240122452456739256126648643156327425896035899015319518980566823379443436061716101141102488317223295728972959335519672935714774919192984070947739218447792095812908345641176003968860018950609667967956473750113215286607884924284913880803241589978789670919516931511829527103374566839068311507802286191850214757087972125962172256413222634264030001804613552461403265915323413318560591343876112416486462239478097594024644691227410198734794196760449871194861045092154826223677344738043602446670073624644504614451470219601693969495266458906981490770984367096753172753538994089826736847373324130201040485487533888762609146314506859634029123725658059377936366696682740799971515513532991035883548703473274856407824389993664515012862182744682471805135147430766100259446317946353255303214134555744117455680436643326584619221101273814735765320503502434977882310989402042260116379963926014665474077159723998459314439163514237400571328694344353944953529438902666418435507023168366785442646938140935637643503668682224135726196303930653650633746492359195239340652200137917593758005950506199838024783446705432947984813609547853611994380385163866125205481979573914434062571925384495153957501221040167286824082182932247237607714936914564809980032920458539013030694516512107276286102288839862871332542347181048701925536085093105895171975142108189342626341825288176249683382760650513795648792699972821272093843549515209581023014808030972408034399115448541626143124263283771690916805610872239941576890475362949515771640388611320810793536684932925850050550181240730332694200994858969798213459624823853078457983429029561572306276895793023615609054827726216958473014754043673424580312828920292982321895798434290806688739275784040641906956333151544249106160037249901045477829435342644466407727914001777996112242457627623200525502112807737378690381193325520806566284554893743652407659079015929615974083471328129032280927857681743111605189156008699170986927132233100207937925012851009954423291005630208824637636868806841025524216776460512303716209077712803943216810765597814512438362475455562510253828577367660325354413893627012306780148849537452175859918035335760629166129750673528492607214791888203374057511909877849224270305407246196340899462018649506069992868929215884380584879144442470331503875352783601536092967353416187861689386481189326460548712010483158517706234763172985221314648664832798383410782057742682342244206989581751373884978198182092300471880294148353728889634583643622261975577752913190725227065300214022124010569838682527536918162087932472304460888377966115739580537360958935340025267167456011241756295390784501257827345614549639587573965742139962786072538568004163197328860697294144324632670396507495504144605583992247278808035957889461650903363455526733825768860432822618212404737870249185099809473906557285640863718669155102861974034721909908877897530019087171255434827159425372112312487822951111149022153601599982548402361488086904237461631494014943158277936862583944043094252775316464415278029742353158833346985440890939303430991412038931968420686508398469994354432981281024603498909315516048145674526288195859508200680623991192666157266615603476116574305019823004297311610381748872699800437967097510715164996710349243325747610131292455910357913843041698437173991810286539854465029162838977986443259338893753014742869843998368247111320971619075162966925630113603581861233591015186220788618998232675174869662121797021418360302519396475794218187396509020416493497274953027316093312832211676456297692272274759002865031878006421433756469928823183554839606323764290041850142817896950003501061352840109189273358128950140618714024441122186827866677172630444422477914401977003030760033329444210855461545532303210833564460261047965742090295205426271736811275727786325719662054276651344071240357377095144836997145982166075641547374684646670915421772690103582765257424596116282843635685359312248979096820965964182336526992713639731989879645293478420041186913735310085992704192767547319766740030467678764280849066097610447804276243666646982207176384457956923295190007296339047020700145907793167483922080956062270301321163369585257178532144479638676354425932448331075158981014153909883091192172390169253977641436930849030507162581608993398273888202330026163231726452773115273835624243898532671284896541271758587173961587987467567376554520327058376278576605669487228370319820559767022211232649202794856186350246090578634571389181345502314351991114355596444534002367124155551296065293448225833930684170386810840104385827759360074116112726885277350017728816609097871543618563228999490327751631838098197871932670019442437332497462934132044849865855518221220313041724324822187542548561372227130980515816889811632717045256667372895064139576822649019534742186205517295680625211028586936785547792600091331142888940018640709020773281275726928735630321203898921170723011402394691273123552430745053792080008463277389258347949585276085293490923643477415626339458963606007756038588193280984032046436940547482837001183300239137919706777801917034805910020555552879875970588479689992847443990750630204184863275159682381827088001025382301493457551350987297596564849031555444601045870567621172837452019415057833739594953141675090596605973093928560887000495455912508076813041370038472629382055483261796176228974402783634592221524640080646922563195884932151059125574678208983376865722102245800640950839098136127809217227073604542910863758373369249101091572406291941567593951178492907751026220344624967809078120271063907853943216986631569616500587076182374776790727236246776534767009103744982709072862109571607282431460628184950075031187249507456340080273243353942105696859232600667313328641038701797378602313744948772834172563642557561012723113779261006550938853527436738985540896258840995008811426517772805279274148379839177875566762273778348910688265804843059634284245317873837930456999982741273810341567910727074149331660503046346642109447359064299844560004599099317294688081360720287559968309085027016396386182057770979511978877435628044947786509417943125146401419466773731767661626992522267222892894664926959686953092993074962896291504016056529427003943752802810866951886626370272134437420579449381436076606140638031305200733030678298663608916066406986180741158715863767434518213485541671748944268444722770451828126277564512734754441758305924055960808359016343152901207916148645963463170150955103546483097834573316195820789978411622593558540735897905927545909179837498983136731458229919670538983677107993568453940958918187734923800247705592035876406081970594711136754521354429285395128670082749157765264332638020135841655650982365048203760906499183620197722929469256639192723034463742574806524770785126926645080609079065562280680264597365663931581720533295916677709755944676413040580965291586562597059409041595249132461387957300040941337746119649448780895754290010667126891623150421510435272454410716172519486703246347748174046216125400274213499349837939251649972598120005074750164462668527471612772278196383614384845483560227705528733431004637919893931415456285798325432812485408945190072327669512300415995280420485294195285489165264740917126941536107232280105022107905616438319608991289641103383110761198700024339810541657304351079060259775694968859987773461678189915741328890877101082262301935885169760983586231273515210401530171988766414653621286784446072718504832990441997667469116651692798354471812134551701995565800468693243473554294268750549291949256797980308137332261975036934535170514655401447748936741225050582110901286206727817951768486074571532929159127346328337221602377673932459122461411413817640440143741249339948062983171460088801975535220084436346145605011750580516493830154683231931099689651016485638683172627628057922250902458124202737846309165036866620311740050199836519261687726101999716942817950043570755259202790099583744429342557446741722374076213357053763593171490766157960316120184065574045047504419055685112422502265141332521439994411411601072204937479538597453970612369297863562716438010339290726200923664304374508671555172688597017420141628516871612496756004288742816513947540337839263355991075958360400394306186965953745081286192049314078743439085957907055924742182274469447790475866707760867012114526021601873149052491345233554108302845874239196283483013146938281860239151086038000440286888782415356617531674583660286688842724524407600107810646250230759101863837428349288063743399187247301871863396559786442262077169001586752631039960045088438108496436374446005334488889985906194352299487101935511298600581408197458158003802005669330566845016421093957470143493739226584043288127696079070486255569474674977242826911640368064176123862316952818108674928125463837703721675387339695508200451612352059642744288695175179749859716844739327406154299697399781692943486441004098006463686913884009932945924985759171942652259423188517245643735789353387549356430656165749776358032810746949601380081806545322430825628824427990824614447703434752883981011929533073863522574638327290727183886980431168632718512943315990764332703736123875753659325573073590938970506928858525092734353246774764888113910324243902661041756178664992934093122554601385062638853274890327506388567372207855636511253642640748433279539032090564504811789646962083798472615080163162856296760039987285521211296097657981910485639857516231785848952314335226141824261358431405465201677271618715937883651145112019893574704100204042894432666461125254658002879155333096662175743334285844690386974223838810071722577988918872632057865435460324840982207334469788303493446937966392574254142520319520029811865079625239427846851904436705756367655222177671618914511164987302647939380031476234164562998273211503431137371252528160734100070436696991206017252228005284577183582606326582680960958863713461088877796688863891534163780975893357791334801452449426152346864920097706039784836130440069736162657546281970253434054274413159201309622714709770077868736573176602053749093296183055410689172177986322889075113821920098211933331799509128615365874498947803461146848553353987243411156041190622043992264545813384333145356829172785103215561280018369113157730796357144107699413811948219402195020707568768643353502752762964370572643104774938627917479104304607299889481459276529080261083102606181019446940036280906832725988586357170345374819094939464986610907135488222386076357451770864529369350867302190689514717435111594502260175071505360594614538228903258958165753511606427576594526641230255681013182060039369782645586883761713659769025240584206060109793105305562164720461278472150858286631513588574382283856766089337586703337308439798699682432801041788332313426982182793333909783772379735533757966440394399000389590069123468524039026261551927994109376415300371047087949120558665655323525466044399627246332902384275112383659959064181278326524619062997101346180719990216127993914868118267238030016550577652916335395283732215527187095664204658999822963227098791986127028216445121165623993566483990493960430260932323355741984029205054853719320482969735780289269701579328834394435685586788660234029610256187094021511966827388813928320749316277908858797336478134291463949310488004753558430511058205165154123941425393744360464524410249282622854706614865387669102272450118480046372361839554120610697977714189656699015795081527398144301866628651022306059336765855717559240960690392155511372699137715446966202226966690336325910709573719517351387974673029666774076427258406496528299813253630796166915444309088456909486487443797917969726631013419714232835585630688144177805210899350565121975086776129404964115172320559535794075964506633194975737071145397878366466770284409674703212871225134436925781358793028144638991213223748343466577431443608935317614722913377631798279344686096324522716642865496869279336987750226369562653400621327264514518019515533359501036614023124710838980026927483587102920591904826375032950507176638885816336404385875905396474003423843231240435399004072286882483628760662831334362109796332534893185032377723514258705064140860011487268868588254336502125909618554069633208913107597371524735815659489439624483518430153125451984637335247268464092382135706811891451473274630423209684161290353933417515072052112716664766752866421436101660956720280312636106398378335902583044179505034889297371760128814536558011274357232773758883769449855110244361797674460178069422976252725587670618177445814795757266619898795333483210621774961393628912823031266357497187758926286506428827586809923783195379166412813387893936731170306457194274828906088373397671974340038058722290514014658934055232277820225577882507063039251528722448459278025784349504839513306225734239649554152895378644310565379979821113733796696972365813823997488314414433608434960055964353391648580086492202436257496656181017012128611275013348637341132887696837565665736393717848270242921885943996868991510909661607517181952993436774403396300864768996104061157501269815004925692380292391399717955076828916479204782393636698483602893540641104346327930542829938565791317980897822593005203652417778680230561053494833514746676764642512934786617225501183308092462619867763579397248560794075901720319129163993494860287121421452114122153039024863428485728974236890945376335614150717899757510651810426594015655030598560081978078518437802220315027395156709082297547299778410870708618030869517718281490264948278641877311346985813685496369915724454923397915478068406842007526656039082431694903975343625074935519375233186301589568271437604626682639831058615899495893114262738669502111751045354322965453331741346681446696448756811043767268193627379730729651677241757637342202252715640356026849559477950155180243584187319146822896978050560305646549349764662797895229405513008398946347426439789099219324560083613848388170992162726769847343851553986505651040692267838531568515270229039271971552468864393056116561302596548764153277667255160767402967929319889869430671749933217685594680006240940149295673019557608182418070358975162054799125077312095036494676510606418022697470527252374484521612898480544552357975091727135101261661459809588332174468042907587823754896158598762333772625957159976236511106317284532616293670762400705795033100201016292010337384937922823029199950430397734004190148554006638260897011430711401938607631914143024866553728954546022854486609572448021079006400541834314668341886718606798544833997527801104923993638399354308700917936461673603969769290602395802941608087428371307581559976388707493302362954942364070520685165799491260007101832296219417405235393045206634187823014636050694973130835335529936564813093448419211632207907319152155347238698069344872578908376494261382665920162087039171655847048767170608521956528661560255246706163234652666049230938935210484034581364712124583576962199285317903813443154577864673349311033696983619382412936102751599465747095729042797248091949781316595531788752672329037348599510432059594750571681060920906735713251950892974959696090796614763679757230814806043617197185724128686826245583933138561485570235443450664048115165343200864308115263097133377056976129989045008641281402069842472658967344582488080180706536888387064851243859615839755376258669401468157132750726439356658997410870884488787311364086964349123757689311447781922847372222377780270926763358501777885271520139039037743819946756901390259221649710200734729478001906675988564517454640279774354723193215955645051846126463451276397905506251791268913012796891842047864779293145830979394362447425241858755530094155453269473794090017665020340864699978989219630697742113371867450864898662553540501194942716281952155684410108706059095411034566897919347385452020802069895979134070697887071961339088116936982292853824002216728564027562960681018373021143697768431220743078888616475871242820818990058931392141760318025363914500040506400238475840658605506365443379484352697807884544624596639218157890473414668732322934313642751647351890884619919473220339531764506306074903524616198793146057936874551868047245362253780651216458579679683595905700825589793958527497914439740423265443790366336495826102427915980609946678849344727748395577168273146132042949537158748709024963409611492972954482402432004459449792299921475598838891888542707174151355484598184529084040094169952841809636623024563512613980251389386150717622339957776801147228490330990028011257472964610350472766150684396062119072900631470422822703926441899807581024933188224779200396708213913412655154730744119694212324657427490594095378930916892655424464507728512011829330447917903014369688104691283986923989737625370485571272601282759081465731147387141512173724323116795199348626413426682688217929330462792393860465168925638497245746072493587042452517454509773596041871587927993024484096271422123857170805026832725872496561122794902891968986090093411476389089695860220148012250450601110792374061886724713398921607718501467078383270866510173211155129266472007344609150645219330287893013670033335793072278008177514902873756218928242119221224425975170940389139422918755545771884588980591270354062162021837224819639627358771442034196228356362068906398242317373944517733038508040962201485675362235659622359909265094352035325765770685873252753971362856589016904967498206217238681256455603563787089676023579054808214717658691252221018974868053541457473948643975718007006958047771652415337908808139514118872987861881892562510630753870635791430949923756595742982658671613468502497592995962595858470682437752130268599060856169948270334983321456464611880752313838773742335042546566360749138921052413952015022647152444845713540438249078374680512748070905407309653771082089588493523060249378881086243909802521788802456746304947841330435871420518452086129609037338849543582825501546717264119024521574039556059012371054922815331604807056175072127588562498267729268181384184515799985207139634536413041020017688942876825438815251575152758587868461413421772224620005561336605569857076556798546812158027060328909866333077982478560092608571936636562155618213527752662381521490046931373781820318525917181967160897827817029480744397524875427765504594441134723662254755542427832640530094963195931170519026632705922803680238616891635752758114552681218430962467647615924156943194346595586044954270585226718541078641778791156108033480755691653300301955398425258726605569785280827118882021687944288225064533060765308705335721529758551995933618947482160999349299667738762482676929160606899964313825529653981274276755597583521620968713511832673719551479239130176366542602494910362130183070700686014435102093324875071544446265389000300102115229310013401302960777458064560446406687048169823454857897349457750164327395502567218353902717118098366874544005674480026031651899612437550655445655773487419940417782641135645375609390762270630942099484602681242669682475688816708849985523104410964084342895205891854433616551492176201932956970990991834595391420046385328834068034445771096280245349481244351300652115261946887515044777105818206893537239890517189609340736220421293559950157958847766534580591046630740143950424352981064726093005504833028590996930201881515363371104364010494011567784892575127097813747229760385790248826893484839340591594547989878514913236802933161330371754022868730236824929425127519268686370314930332531599256727073304545086091669435855126268459478561384267756202821596314733418420088253167961559235723829314840298779668492195262323159459259208283961449932887996235584010356979087963311107964048480200692109104433471030383971904570002530012841882586244585687690518779307160952033298372693632771685023059277550607981617492654087116393463941627448463329988906118471055311044595761794622087240533558779131861449181439596073264423456974372997063154298591116100988894336714594415367294434285957319215002201243296908408006100844100544824244616653350473375037533865073023920166646851001944956936155391172754751226011651910567347737283476763543721513368990684057818913769687582491798625043747093620255773659869859365698045532408250612972976150557982066655979589725942567745322184281676555714800188048063921863817335024773233631593468726749468841184725588257917525960950326376779224179412706320677334295334752294557470128841141911016592702089552899565865464425192448512650415274246098195511188893447834226737065815508907658796608657394806712107698679077249036000507881949648487462526164154015077012049683577670379101749793586456979034248925972653692014068212371831403599816957297901156711664746461126694001773194647209103872116137436299818069301090601825707274490309648080728334506483237448776016949839960209326094434262547735254571251973285659145938284155342907349652757130360490388283616367586091784155026024064447333679103528859261139182676661130285158275380055304211184760975045269275670927186595590925524692933038758366262254337773783891759212855444399128036749534976257054424114316551028598874314134580633988914251951883980418176775470454217835952248281894958573397591796466747797905016781248280864994515850744667471811956489711502042734910660875773667851315013227454336897645630209457274096351194231214166562463854128105872493204869763042362495138625025492239401767127718121690240315849487216601585462672801098922218553373512099662803240004642623983219426149146693957663988755998608536051356490223180512732594599944299480874820802939319748120309241474970038971702920196911099993194947722668075549480628590774650335316948240248732817994480919679471035527846358920446136034935112869779964150332330162761020617097051536000889447044594480825111263503222829240436131832745279031955901174812687216176057684138538542222065085491392696291211323899642944022462273439705184062453368236749804520906309571611660291942672779022091143921041375962430653354275148808532538853434535375423005381702645100461559509265726762171743554485951714316524558650632757345205605538816486869107776326014218234944315845853387583905146466486308334493307716704573905703088395653366990275072371229633037161893698231775126308084494076876238719950197946851742169815562961234211689891784125352732637903205692605614814514581870295683680782941201151939932594383213096878795900753850784502634060953657783329518341749074023489152060750004435294642787148889035478809093363156917366084282898240167035706619000650726630505118415747478204846226063333078735503198399808453001866280252565776512869532173758532647584995261021119678871906699539167855671144749175513933576654703150821505186123062383603508407092266385391009084573451133993112167471290616397171838373114719981411496821713434265081673162706723355679159494706555471514801126959733982493345436869227866102861701515545450838227013619354435344925616851574941342206389641337129459057979385557641358079533593449555348036792955902157525628370510736614682402835511596725819597749343140102367410809650717080247650056824686485086299616920809859642214368546149409224554684795892871962648445911749558830890991058019676266580394145318074932170367622655824477738369546318638271061571325503286628456557531106895059434502368765059261553502646403199390700423950943932616985084659293453110676996951268247914615572194130188652824596231953277079889555423786409830150297558345617904760380507814678094629986978264325642689826833221810448197744068389970527654762799047266246322322459264803562903371563099966424241406939124436654490182364947294397620306758398834854739528607831267285465275635027382337728879509900014618110028269664759545895508462599333131952238188854867619381927156720039109636434719006311305807310142608623445769265484044578598695102174257868992327665655696290426101587757762433042711751478198294469778681547718051717489864141000936481291847441062009700788890508313133033524243902406595185683784001990680977981239458355122722381784041768971832416329424975361209107654957832000760513394088948489576812253021691551068949711804264263404795358762808394770238290734220747973454849425355198227944537819813243334128392999615654795280002063650828684280621697264985658248072986364682944081771404702182329089278218643268134627592670434188676444979754155518803507353662366375959051258784507446764175594630606060238106418934282774148397065806945966552154881895338891147811475896696852354982632493115902821185740330850276523098438096128535305476075345919491668960862808914384060403154139200194572693852835386955857497267561583004070560654976308409902539492237644523323719014528452758150239932698134767314478094069494013752887590977822118869091300893931937699769832669674799440013089315648098251125156645577507085015390849617134289858586472354395869934629386242071118353594276440564884689958914517358704491521237833224762565388942632762692426500812351778093215749541487824834589620515179000160078600346186353391419017472726772087508544418257370420142806098215255281357238629490607385258934640377971799795026908080122124134576475848021252535080691944163237916360685536615721332444173719324557018206076511784416073732731918919547632513986286717416033552126560796257064860825376001836505400594088909316063046865205094290785021980834051797702701176568847692948990951389348549757983906349675883881361743384577513057487701733569425089112330451810459767718466512286460620230140481760303155076015317444271544898288505174174198925531768414692672534494570761818530668532285772867785041957170353054188386628203425414721412436843836889187735575388815387687607082645123020668676181890789869546678232676672118624187436998179297767317450807004442176077438545580693238656727762730575781847195374260154803415573554518308511324605814171592321131146233160293568916391094403248017222981283072485268808946664533395230976714973529229121246473387392288885784887542664046895255031484499053660618157833849874797511618484077742349555280160880913699758979302299370601973465789756291186108504405615514686050358086689385268559061902130327970750747476122163419725448324606839204154863351254884026578124778415944230720618569169566083213883875541493819237198135315924601521188297013142642677195943739043780592727861952529681154882850582917775000244783171381269990016150976810392276388098284946140878884283516747218769740327564831514973016372080989657529499257201857756396133165488387979420251629072998337875459644659963750579938439705031528697637321515041160155347086008262685131853960576674716443075365759560991853452502449260213343304939848414030037332755594170917601596606480394076157163050670860284181885865648094399391172130830052611840028143261814056518625285937290001434184833229895907197417338363504820980779093318132936251798998327170569748656003209545796514403390312657307653147718580364188966321160530936565056758480875260054535799142590799507994962833155026602921721074300611923411592720338303374174274348412364115893303138950860192929317530804087551334127181712884139564328781060403400803667799320209539457669081046429854381770486668074214847264841829550170415570138708691480569575423428222628383496665306770539665977124376878068652527379603222643300976415142145451110566327416534408649774002383129548251893085383587159052803820751655607241608146182163416320683345573895817760608486826133567250022743357071523327388494183824086777254165220327467641386708391452344449840913062177306101321901846949933450864652661702502136264636405526600440157211814766167269033132598626655626879384192728188063524753383227257109992268253455247318643557948870527469722399481878487886357791655545868897458538160441230174738168025831617701859561200775457192593788785500809554015461948768026632719257575885202255387455610424926067137098515830357449959520237163329680612376810983844969559560371392416351547426748927479387035836273139563455465068034085995412544569406523570283856911720984223249385967382743403328757973891217501210369654515345383736312279178653099569543142221364589570548150224269599303511433326580687997430899890122880293234404225223377289972338247130545779127856707800002558420913748073780816878027749267964908154407868391173194899207493850191762852158507127791229779124855107276339786618778241024172277298934101747273041244931750083250685243649605795914495423013131417462022777132883895227177285493016355438550819812731288536589179787773127333386266092656436700897485112843780648236135657412729739603602031136121802447637531554538146098196436671756814833797218631350422353824478115131193092017318751395414684814538279365534754963273278334847092677852713206851123275783885915315680265626695429982068201831308718425527061967510892014769627495738002236701257618479611915792017735953216578102581815228797593649263902539216644796471452770848437270535108810352529910090563151187843737909460305894518594891682419299365641745660232815720380197207611674441892568700912205574036676008140260678684341029042942742164505797278590485434883162373274254997009832677929410764915144434049110940133882810036209797068056165040081754270528730614792171360050150784208521795389506845413714942112343072326897162176711461814562597705340182831343824043873322396411659596109533324033047318030795317040183109041873876723926080357799670384211747165733606232933745284690353593527264786754260886426135433562385478486751971359432073616569833957887641773644369542995520533842026546800815012494603025676279033810769045722314201302009093033981421676618230915631666686411250910470007566530926926570612984421884127294214143678957434276136769070984350462864272726099854952826004465878289742468307562094815509406618131021622606280315731817977058635865812765894098240894872596995901070350478804206583509588072026027290029035017075575176737980045947471275427317360225553221886199864435783436738013086250228575618825828897667371901197646912924721775905825980158226816719613071013542520170449469890756234686162634658430977371139645178863070758759971579260393342210905407066856295203981403326693756749029217646872795069590576930287689773090429608354032273772349316470636472891787210709937548967037330413881566369775105149547539553897099799957267545633705381032135302640688932839053112602723729825216220524193310666618610516711137168937331216988086776183057139243676938344412416757809302585625206548614516570027969189008033391669645603699763240416530211768471636531866086783646885773691893300016801016248034375375599745339723478293753905763891027728509394955291431072633866885441415712070910425239476743647848001380433170659209510952401704588447612547243991410589827566266708060944367049850037940771665527523429972373456230300244747093975144112089012330469911915790388501144496131085134082192190289323405328282924396105703001820702326356760135276220658126860745732409475467662556455471340037539790065932293788820648430623575779252340081305300907100878188529425704950448180301919404113034825813155695145949581177082287979542725800848588050687398230027575003409495884943571772565183697298127508473768753998645970615626281628572277851624450941992293960935188077072584588202941995993502966369387872360325812715162144090761063519337310019125239116461944227607352818991886783692658872979282591757043364171943747247421524932709930055600900534177659451781658822421585310483627943894285973054827647406625039871909669134548784900015376219005280413258701171261670368403286340087221803835877854525954145013904011895506645399083586329988299618874759053393013840091404984356576821613936786367293134547513694897794099988363685860873229361413674300175286156697522568438477788580175720451590725973335248092939584701955198703488242940803145909242157654555038738540162029162800651622008061971299000783027160812888545368332371476210100329897078547481022265025401728924922072458410571395440595582630598671222961842895986464358193682939979941503919357904113318893334044339226207621551233785075090831847560234264556985053810540253805306912773928900187858346243936162964291100920991743400534874227377398557588987471258318725106060163519294149676002050389627478483796108099335941884099545076723048722585006947184594005665679634813005323744232894284342736657785116632907958267866742831941427957394673278825271367820865993509776756599390061237390311971497624595501027940964221817084442274502345999597527537241364539689373791421603603418363609822607540109440732102002243961584121686219822201690998986360578771520591791388332346843381642433133258356015294692090624275681978573519288537924783840024244192575358486692189625073803078105490926909477214234966133979169315555791180855101824428700069137175324260922867315861324652211600143679400807906532543953510082734034064737377236563576727946095547801346330996302026331879743851605214670244269551417627312333957915104504816691861328789194077499720874112840628763105031504826369072441707041804820965960740656256635552273936371093654309753982135749868051148078670972796447928443863822048128204087472011524064444671695643138675442340248668232994316547305839189546293458387473868148446988259558363799027162929218607745854489255219638697601623342076701252847189072653932420925036234702688323240766053630354578198200976896879799212452621086003144138629604872599163211451491478235290636892800539353769076994759338644085845622288640163011329224371258545778220338414341161316788117371992138817940143341225286141956578297304719467119609853586724483274103752633578552323118821602852658660860609172040842720890440684404197922855095674020602283980570637764378406112165938066242199856926392319373991730207335297133946584079971704163905093669386911513696390006513750702287312939874166858322800442002924934528192084413192219728331666966194127572099928443333759718048656775120048561947396071426178358056713769254708369618042790859875965273591677660828287758362901187992273232557957420337181692910525134968745353303935254153291993969396281992413197507920928652387112302778076227634939534445938024377053123614870868723761923086300550924778615729702506567558143485636840808777180917893478371655789943594080894852007785690523322922740974504385593436966223826182975304253519739468221278459395447441550745723405207014901685331774600587359203878413300234127892615216443806603929515758181072724323411021146538834119563644559993686407140732183903428805581085127895968495553516669291951405329842155006005611936318983128973418869243759357757741572418450787874030958173574761030128964653496493700114703909368892335748719798166098659568515094871503260348514734295456530004808873453193564210141459841660100899850458459668033626865453360452022903362674412241821355785257142763610445181489648288075356426209765487610562113738065752500255800860164445500038723878929456485233910700089185518625747098406642172178367259529877815854029690402725341934157191369471834808005391746176885334017592677643834715964330267968515927822570448883573402939401817262225590627132727918468949017635610751263068025940731048087103875342528099150602672888367525454466982090890153901156868334985523152826675445802777893673977997127909388815534302466602469138440281481387016165150112830757625619104158796544435787046950105409793394655821792423497953131762379443525138955345738342311435800827091416004507445469245963820150715214304125896294888648290566893470747641190881481304254859836735488264186356825307525376531576862259675887897910464420937530198562114633293002110421981518840325285687491419665717548444127722993608549122568910658965890545814103569391488439136474008376784180842996994728519751617027354528152614321114154396319662001938986153897680283466097081716409034029908376680660013542465896522006931329670387561667002973549365319367262784664301480500806311624036114972976765978659344911797412200333203481400487120144944919014799719788921632609011805021479791669110972125395959626956494622497532367696667122612455631271410192402165656866972507590682935277657859310150345993157492926394795008699513725051361779825347232271378737643902045242132477266176823147917214837232289854514025231398265667587041864940735785497580579001856400845986487510705251035025691886144072619408554850035514519720381113710801809037152953813889260505746091914743814451736123984222008175473507476057801811748300967773693774304019754925176595064464381903277218684365889192236155385957935709311523426588657158963750852051407779352410012407835249189101475339841374018146971161298899923857390464604405088369227063446962565966225435702686957557211634346857070617592347920690304212113051547045748145278781712906972667115064001957694013456074609057764954951055741845475078405684236593467778946587692473561893144313818887273250335177486440138283627230703723423544657944373626166395814444028497537060186343587850412107020106366042765044891806982593455680667879236466727206387449719448609767124690108865405026861405352702092645797013098414539444241987623466710774696378812147258913525405425655272475463812127376813892404784141397081184325303328147392369172366126842921423551710847759924111575464459892923102423377211036951831962249470157708300262844568287613051686061786474443307974123895902162888082917837202767283839805889839320804838224500029537275160088747481631719305912335672858139562096714154015288882247125489095826176396830620700708927110147695643808774111100590701826331200841533337865861299954038943996175922699011550670173208755427758642782934645134373130415099883036379277865578385040804701269359931427603762655237394374540337719820689222155857692815975332351643326167412434318584788405025039125404019222241632401291810618486466468708658768695589657325480157115581038888909108776913216288737839681640092927263436861002385347342823934079644641146177642443825078869203422746114802520530896609521156426849545644322641994257631758279227448241651548306104609330358882742078861307087241015307075240066219798845076415002184679502348410969693093493361680122536363185982865104251559235139360052534543825620148489739069827510575087571050524992725175199823406912863091263894725794838953932340462738651359997261684808481463109786761768669457420418260581727863328403526976763405558149079755616173576573919072386931833779611733345882012303712841685302643435404684136662608091478116930198616561783207552209100560967581610251773185485472488522519077401730218704036793273058354790722515860150866110994187560935151755956393946601001578592488709484787990649905603468479504034530034005825417816521869983783697363925513357444519425450243719274275399849523838710520911412541518139832643941316284053838919802919568699739761233302796229530572635431076386353328630136011675833802125486637486437725586823769767555342963562268009409460755891424812853368951643634184007602216465720573111728672856756646282505226268871822040393847960413440340253312148080422797036466441399857331723664215822270177855389069052053856809309762127408111412216516243956615123050520407468285806601456176576355819803144314155358897491971847583066927763931701543923168009540716745995167736680262060836761285318209637511422491609048050691948480834821595685529470413208125587530908239129800665016108720156006098152482860601125481871666248976939137901617719480368583422099760408195437373968047577753402873620207907856207306169422355534128239057661614948783259280910922124663574171653544507933191434280366871881854243663589129907950499720456971886197723129315840254196444361099265886004389170521631570263474920057021544249640980016435390147524559340223695168907222737784334980452518585831560983123638372926030403940431140447475471279617706235180728006169566410770896833451230567910191917984060267510567858036877363590995145968885769532477012737766563029879457879108946603587870582295148190960318861630793183394960427815000185919631919889886525213163764416853038630054565863118738729978413752032758096621623123742221041676131387078648694676711134607174664107574332580984187109754373395188002007767091463740637614698383464038018285702482994366300963492915064808873642603521291469343930822444833478978543910955285338191809614654493941605801190222181396240400951260404303280188975534426031443781290882278508512203906858662436856347851935339637963561754598350485052012072152135534849844996082223721380477697826045721006665203670754646450898472003695405178750857984226716848324992093316956919152164497490673274936743399002201000541995872798367147009636947968926107131989394222541625233747662538993125256553220897338884641013202679079579692718305361278472801724755386411216296436921243238141368651219233146611898106399289689983933435692083833988655710972828056835670523155725443959983107175417406270048679068085329557076055620682131664422489006901123544085032799220327276596498529729214720725758406249818151929287614905029248223072184890918542718536927780207891861940667744653717893655485023741234806763071940869423099657106845758880611625228370208628163436969475822525097212333382232534518038323240458967772964333668795537805238316752375815137992080213387984984591517453334168474433163060271632495104987637572445771677304578931774770013308496634494325217176091550065910644651241089934526232870286620342585023911926581747463569865232420002690585267220680469022097287872685560016857510084218494265888618921390639647438349114181723481938585258692926956484585704111601174304080220401718602972579922565981104330137897468385393757104674473885647389336503124565040736599029864418193591984848984950281050914965156580418895270925188368401114407988528661159407208233933847304322380337263305965406787074160858040490100908474210558593870698913812268734816632331624124164120866570930330316597532185117556293514243692772566888143576963667257764247353702323109850701105376688263289960769741072489011549269992222335112779365539595072297892857731132482539453766079607484513054785214824578773808036153549497507713013113235468233459639610511297328943705153218533202569578928674740030217474625639389410198444217786605614855599775088400005478978485298877670491823083958553467873030283314629204115481343014393740986050117400518911277767947808795929125535996968841426671889273231102589761391478727393440071944184119331457546371426897799779411369194423788936925694775977236830760803717344447849231386461674782572377704979651612509796720029069104644110005920315511747416885404014955115819595482798056867680693152009118629337632932459561643322285260414961722088658153035887623168221897487121196576889138617821095106099459714644396198163340877143763319303429003404840172288220246852740664563525048084088366201055344524019821215204883572808552513111488333635639085272075077593265130861587649926532439547690749850235090128483551919322774571257115588941623603743186103761506984245430948027488056841495230869649193765082127659788382591895649668148279430625647275294840201783960856175959600530406220861070757206006383656560095581121158666353998654418980716851139334050764881868742258994638925527889728098952835667957650587048666593418978869549437591230429488255689055193048440208607098652893686598447373749899183163659725843565097483187083850153745779835490654767871914624263557247594225246218096928184498742599981875487085975236254120013435388087410624864647778903826672318308413769865412153319516838167081484168455236321047258663938383403128235383242575561842847974250063948718708409697261537035785917305965428950038400399138617759777062475141865424595490007459854637530613436248666630916148052048654737871186431625884717005208763145993841819550080903727530307566976252783384564565857090139171686658579446801036446522715769674406217882668033498949781401300439727229872274911846600625971104468817189706525900497634408677375230384351237876188649578075302701556136219302318405890564193186031719108170541150525764230308680832337327014696804231591583926165282996288687523590815834982561360630458015762434926057186075185499318864453461264180264856462971906783028675377401157327178007325637315901839897177935632143208629805088380336623805658148744255785204376241881760233173513120897696720767700473241674133179090411502730547190274392127463250697008765318389342215935805746582879647245394211009289134974037928021029883185492673531671998396038225120550429188114356170766992760787118863354494582924818493260594779482799482343388627515379194993411886546407514783279662490856345259462456037725195863259278969217363637071699264508571918801740686103376104874924017163137556712126048247570031150938239131971196756938624417137954211334398108251772153363767687672897010423506485696973284613608553759970247306394733908397405176188103190198498017493138817699279796714252907206238997103677514007945794905798055316548029061840322207553476270191061076579803594235740594720289286820272711995343209451981620374870553188722673040301730331774703395138185394722368795828790030136050442515581296568145036188152803229135290517606340444466455359808281550606732837017012595243676619212341446357933965640669968682311452198646636526334734037272465818996851070759753415129391006815791065170155351376927731825598311807123248255703573940795017174651198755801316035528953739033055761508566791825268244458213870963727436625449008334045279998871680122910712477239795025768709419835918469953332260839210962051468666653810167476016294221947393251557658018438294217354798999930408065072114909761760315786291813039635017440177010164299459715391991799302163315852718012141158981267406253147084943729077493873259700549761554863183682541041600213952781598964196889357048608087029289979265930620841562125581959951407782057838575807709884448178657874452103971617965802877874545469720622096802044518953435134575372567776198316179026255490287779101218839957779172982411769373999898087318109878922697947604305138322018584067927596327916803916629616752038160105889767725593236222350143023423206485703430389412365537951779737405545983982561003237480990419470484996488970748083656575472316155206941132221753190758110869555130809668402427588573894327750293905476894398249170239150769547442604383631129890542829261973058743279239273147549884582085852561264850389765395913639693412911426305277483698212768895767679622202794021953883240659333526181294806515661058876647899594560586562017252565696820623816523554128052391799328051066481547116976777088844571749844355310058879848391114760319306642957627288196518238324436413097370623586796941667629851435775437828192528476096561339196424710248201094632287829001676916464061872360626221805484214880705268085389488005384647721741101159523351795287922116885206643945977925454664186445492710233313904680056572873008150102321512461505458890332323533046712882779953376454626199062692187249024529232062864713115713251134487199941689795971759397548277924550197395823222931902984862776291130139905188919477788099959941938097039233940115837686606282279093853004364311501315003993122373533943863511828533005088380181932268927223056133605791989757833307725191116749023891540317792616326797820168767948039159606279624440558049495888827920189619175819840249447153996588178399990317836184490777686668072929688294424092240791303549769748070490846295971250339689824909914716389931544421521118774861309015981579462257400683580801873802056675696748826555006491730369413613037793672840109010889729829745669605531379436590255424566723332807948148401117099539096310710386168663618324891247895196871655820066889808732468694148363914679252779645415825417158871240109489303994907064844604039124716947008713497378232459801893591299280244791108665795630297919029851765152968480831798731230216686491874676428095203772510791645866102028676856621521210674715525959253970494275119979871796296296713914897260635997457342456079364522605142542121925414570476024068734416178581404422750313208600265711624287871832641709603497226707189604456841490426157360474334353627490700656612537877724479327006191712551812136521262638032953465880128448399851305771555476359514861101684748769989079691664356025693763993499259051631911848681730924280546382778237339347760373123812406846483941139991094478173987748182992705139440364962065220478674130065808428194476806247952690026109417427961838450536426311930737768396918262599474883240969409636412534359255158615877132226454156382737853703974071310612976685430946590986400608745250997861554932483921581534160491141793628563936419699813037190102704894764835837639721408770029221317522876121859133794019128934392272645252748847559844993821865589688471117691074494405493055221906336054470203016539798190319691233451814822214681034302709986969238211038955812333306049102068951167677678911538968419326970454871152996398445303907241834275830417783078112472718938248473402294138962063034789865705875870431694887292014356547746706766166087268822135821018692568474677250079758663086723502657958873858296212362545744014654145240471047625570477555958409453054574890218837366000858986198157056421800564731052235665826456414874432721000956329847906476161944508863251081875476718356372415576282606083661999070031486616478952499547711688080252615655748612637888836922356884403306888845329895453820274024474870384406129044028433184632492817144958440315155228994313046756992038459703276001358141742427719341530694446853025486861749693219985479833342528058139112678947897910614857251696498357290131444561970164672181210091460255368656501104711821859634193058696641126353039083988867162447010103683184649134272447957111830477169776792805573928582555119159612027505105946231726535127228940754114232582981979835985735066998274050709449444720714821860142139921502730721591290002306557371401194266976824306348792488627625455685859067369988088045237927951096620298635669477642346328269221189931121083046541943315340308176938443968109621950020390609864097711316180312609240405107512572906824401230660318236279823956613793896635925983227732195237822390338474238822185611252412836941019920520891413427264229442390500474662037085920312996073188353190142223415787677894543373819146458783251587209532159345619955556355182595849595354722926638550980821787131021824781745726522088005969959123231759552000812902585786369479382321711222085063499896567453567056474794529970012358982097827745271462180243262896589233022780603791375952350805174229633072362388200211210705627871431112476672845996155457568530634456665246865793525588824279857580762770496486421402347703889174337424269056056997798525392668120169260713450550241525052698042009294622118085500092323324546522217135877487543270590259823391638548728178349642367527857803701778252751926060083928002494964606552615117421117104147275015817605047437890505089257518610904130673869926633435383302019944782785124903820289792145217724634071178286408879814705160261418124755749391752300000355043215884046784131278232134887202964578937205195468378736286355633235869208098113104218565504892910886546289041313825597914862426679691114862108663622094698693764345961984234419042843034327909030590290254352648058528994950849881799008569350035115036023886396887566106253430581820419730422098238209107688585676338916996208391046135180134351790595826042223004976439507043482948830460731461945261983987340805824361043793616902373518011155529014108056961948263425271261646368312914393104759189743788976770815039596173250387271654184997579013731767030756485561108794506740020910467138672040648339355989510475225375975187582902081610122488393067359089276533667852108520579497039104016979294461630731503597594361999149829332468819863352689639407970576065433543570322395039454452159914874439738740313011448551329995199231508736546614447985633370544592357656952547034145936848016293648382063173112293989075486620364555992573010593767157040525484830869746991192295810180538600115680714579407602716832594667028380713955869022145234375032045297864061156945886641592906919041915416807469155874558755793839165582777643855472053093589606993639988586779583810084650670610207391352752086223962168826827145613768198279936802426229172222193533043802222964325865768443787750236725232633181950133340781155448273280161241389454873857598595071556704789516812405179175661664218334669029871275633338933280636482938575511895711317706435032477358791556275970185732302543189155979629203787697377617972460454521211711978687190273210066473977027287941210720707406363320759419508668286325030186796860128669509935890303718014778883604614993667152134385068957224786265364888705131780785412166245174517278651437927552367700634720501274079502570725110293283215887422252204218398102469341408889112813085975161748241049743349412181435485934210470539633316815926255264150567399622502251784872381757455318384882076593563029882523105810675148593334898035608494419486937059134062691215916504305480055679286392826798500581032196877689222580453898282807293522975526042574423545502837476788363516205229959894640764802446582285536948489352275336418118986564988078400884701258520083880173508832141275566510465019448587161591357620768437316096930780997242746825600224179512266785430593685879000513947811913976434449824739225402826556888501177260887108694948807252142979682653389426098470679128609759881839594673486852105071085294352512706484511687416830114218220047970957039444772333018407759005973914909619259628070985880277326260192998312758758886426426498730667165245480217740870929530039422087704894101236711869579704550855639113999818154597699193227796379006737626327573044973796316891259360914426135340855655010766309253092358379642666225759709122127678813100991430975224365295330821022284282797046379755552570284778844165185553589561653605647111331179088459925749314763053910610000030675533745868067561903820651062993540931880825809632292253794461486197931415406012752777580112202408291202669283064496294977522170205464175521407554912185394769130881773995542429762147103310328003726488392963754320793106329708819656672719511802715386241097242591460038915857907834736184581452835774912004555262416089138651481791047528580210809905838140860760475632084112815973153978038607571752518612375950145333918614755371681364802741203992413397925055680902348937983383084513094026480754296358289828169067071495495262974971205308166976226089247350405730830373805896107077572525329189955660288433851596120984367616779343645277694489865425257432306192454335138602923147008292638307007778509578123065002147343172872863916940893623577194357465418931669957795622757774989721606993316823141294530634765161829278476887156142196087944678284477898531763460622636806585440343173266056858784226835237250641357803210610087062657811866498536090707570221404092609908658490151798642925688483818823795636532536673733468502642188233020480118731983349685648134846085882964649674632955696386589133639632779404423487098426661702635789898065410128072228724014659395879232037297208143226010851840435096308922142046261445988919927279471981491642202122554018995922372253776090127575687615732978273063614538524713359388922709993943276962702891122470049821241965232434232997728603602124389855008014251207086412231636637586375655469976214268286338426311819540823574615930505184052591742609596404052232513770432234524972244270584062752778162027342972709255720757498684741012966537921657673107087249982201549578898234950011014951750730717926573266399161430400688868727794547027604519362039161045286421603987809987145619331028750860631206156749296960133737665806303663299788920425798086921894583156588908703938662224328653296816929079413513040946589105103098909303591456925772203220832933310431287911206107844310053404659877769425863005882625887588570653600782317283160927516616843922834267968818169032567417432390090214871392056184397952821040065758208173281247612850263222681829451881045204111641395636502232100181111176980861459974498640916799387921894035923564169494699205064800502887799729999867078070514673215649707636523838680533021066571536538130828284539650225889114873237184728854363737813037471055128775254559169341887700209865818777846902180258351944224394178475432661907283547037804203016703279812729279536950425481666227510127987147968942971378188262602236901936231326917656917090741709846509172626227112979538203568243870231715761250113014039348948638392228735129237193531267657867624461010723622842357257004360714579307034270172718080230000776187615022227102908774771141149047581025336820728110462472890670521738964117482156099264566345012473381912788352303303814410803680350140562537580931097590855501457756553670089920743078380655067186923668447587763953842637703838037981891713751276906957544067322584923873144689318428300171885821965285630174497677521902643865000367560520399143629479235599066706246807964585352685261591798130664241335568455454235570814260340140620799175798767147450936454160237157103676371347791733289774807479912110550590026110672283501325022638965338738019888143188411627600686080372878226597695402147145481525772802212958701892726976006513693806563070481212413815520866677485603697625141193757800443919508325856681806474521849375487816438324393279148104719413301806468665372002535116279626015008135791057763014107632169968097405089364203594510050782651209683011890498891116734425083855827801512532721437010733970851185460146775988186890446556774879661830138899371569660738281607722866872694973753141989445339517529559878989344550018291267549087452964793930840490878240225724196403456663879852549090516962512848001621289363840887613721967033255432505073224945381323315902683236488159253531830806743100359818910129268511817900288926990920827374633386961719515166322595137467985447350596196175685324354852674609423049501218618071585866899531753405523070281144363532253157538757754876849465956600047444065472624887025134468554977773166074827640508303573420955099083767503038681794909638690724059968117041957584761520539616373404892704077249032747919746862359043617777958878506034151058272219938735450090525639473991387976157755296906086800874802262951439569287439259906476667631316324399246686737050699179061317476326838735305559497664776151314190663932115027046472381868650557140711225124487929483980890134344359491020185202964222705632064899870600569497598233172838783843396569362922874718745117343190128825783742326870840422776194243934589744461977028778356058242803653588302980523275087366718437947287041831671349257290229729401452760255141426890349378581419883487103557885068910033144609812196677956490197720204130011908526965951324429841952753968800965462994123917722606742909201758295187945462042248250813555952585580142560427010280150865455212773849786785128832802319717243264549999740963369898416951109980795345928908142861423408510097170355754949449504226761053675802313313562070136618517758804131836969426998177039723886717429767464693173743451657444980651533141686224675185658826940639675834776962197235198523414862589134432632908441490823499312282928589589661848743052415002049128389058246831348508485510957855070394079332920794088132779819008868933182711968936726226777038876314491272815055338030169361990244866890210094051511581706274926897012909676071835264941343097968237064219600091871465778720738667884215160868251132046840156264171749534513280641725538430832819412376823902459810463957776537673613320739599915574322384337061615161889917505384004026629805701384358742427986914073130524392005869407066104671027905564344225486212646668278813950239382156267918734236790591326768575731260398985161879185160597106428777857595734822008907624435281322163512594459862027503053259117421217844010136530432994330664156666136891375860115504145285256924500200315583249396473443784494683365367703471662722517390084671212997723239337625325272226518371336046205741509715289878746375638805297889158009259864187979692568347830788121320445517869765483367463408560223622400979733892837343172757808460484724548685420731365202167277553428675894526728248094182112843765904280143518304566000101913474998655900225026542184308964108117605449087140714640932457919886848016668504954674067077700536504386581020869339106153078456198272322798290559997306555488263523790742747437953479281306780232586928393165624149586939640108350319645357197675208646206758770216767050326040654761642734936069059721067705650044909196657197633839480294871155621784670031399468193679581272274235757093127843240439210632995334891780151516551294617612258699828485003791957491062655664984186301361592542807081721410583112546165043016912028484663930332616061216017325388167510635041552201954478686853011946471742788069211026384081318752299163441571089697987950666347273172703161658142019131353502604431922165403933595514901202020758636260032006779049678237959292374809052413089888627936320180950536933176538136740320370198432830013608383949073652445246185483671587887352628692169341322489933085054700585020558567576660559544464573511498642710880986079853973053764055836367763189656928262002713301351102760378419874432465819200413699776032148100724257157708162343477745099176472108866913344931722021896145947692518944788644636762222663785544396473033871560911502439338515680075419878590346806233388707011252327916318309393848033388630764677648010618400060400342304193167260330029675301209589054985998897658176611998551330695246639480239820970816119323165367102083511807202045594561014128866613581076656126978908994205683519560952903891579824983869033087177057269240061948167766928588803781355214674860119701338262132683893003632607129922986085467232879920136520159717211722124559209369472451100097840637803733457258718095460082689329406332275727140256162363929629602183626022684267539499378421215549793355888622187928702549520370583381116800789677186802733860418915167020320066032999360120398976233767735784048826355694174047732208610962297712434139582254796317828533607655249222544487511240446395188260015029444415324912219868918624681787211170321095243422131348994506570503941360684574728615879567108381082831829987396476117973371724010841415199152582771965703200701605756807767649385619758411756354216855154588648746128781093816256958504063041015063503269234762171680608717843931760022466670388217824826487114890084941281517057001323636928170363899632437469799942215409786337159640913834524515261004495402236178404770019772944227495367137273536017652914482060539913726371860133273956921267756618928994817853590874547520287316684071436466226940791566758121672427485588013866443275978827486274433296801016846552074997264191092126296686991474397130776829761274786427325789621427542355213529649434300796144982201527102097376985716680413247967773408868191859030922899666642366309446594181599793985064387018149193867491781326447213794837599235225875409328729365587547712096704790861709828707152338736683605580121575011840244222220388314355437477854149213761433334066124684921874915699637190616493130508533070145891732399169580452116629536346218655755173017043223519652526865576018191965703090728390628287366269751025281878186181629697286134836450211302145799375636473018142123891587334780844634299666802237321460747764694469837862779201587797754314598334751374127681321504842635339991721041858388332960455541709389492132178110771659452101863864844077744477682965383865304577589818054903757664856770949741903884916811188492537713475555646979714260325845669204649849152405935637358401043506419013462900149406583757613789988497984379385107507655160970865329633287301313715079638346594156955636183236068401118250944700714637592344610708456618194430416776528214369427016776290118125844147763183873777533572201721817661183247140359049890152607537331973017702715216601298091140881182453543760234033247048538687495415354910438432408758529038522126762742344620279240270723721363382066950916583053195505499704152584104382442275369663229125608798539356455883389856155702837692437475493076872504511757529237530136248233094693180448909923455679746994120224230738774475130542966170871824012679720612901200093246698976584507647342458175150787770337104345717987843378619188094273076707915010836508684302666843946146282874592432402147873148671758891589790290635247607387768017828382132178660410838950942928280990522286469980892561013963318784002465893842646199127632903960382552399142896400916943262509080741455405269664382686072807916609524836692993565194828787755734877874991657696519465485741088135919145911068479631951666482229563602104933026605865206085434920017036305641974190128230244094209296211206184342783523546652951997082565460845420876155471310988081029612250137214817404245381480594255795892191620593401030164453977264461893590412917194194195057172925879163889947656872353262704106938130097906019809246166141361645721401336775776079399258534781888902140262802065575992693628626026152930631544718101359317957390978172637279995950078518861958046825988686301531095770955420108119393488470678436788547949532254925683798971931784866590919572166931819743800241802699173992062803155734436637589641094058791873565678355311138401616006625084790402490411959402479366177500364531072416123814561828181356163426402210871373503112459571451866699835563119599899131522427820495333495109067247188653654235363078142156595424140773030338507022428774703153650701558155841627066678930079115283954396147283927776623267277984438886263062470488428870734239023800864320888273411575535541707052354713981373197406169708379915197906022980507094808281275943512994148483069135223865873708032908800172543099197152549688690296049558857935742484192139695113599121953189141329184520578101761363338165816899462352397240468128722744506394631326690047224909572281236678477938623107943926623855044804109081907189646526215529717406836387422528585954536003242569065257610044631093550252291391532104425593024364880167495924989539497205375060312700620345447793666374317684740950270716185827033769957086453205854980401826555370984887836014684680069000443593335501901977664868780408063455962202639647219927736277229186023172425950699722472996406052956227922211994920025328097992534129805504724670519574463117859170081637548063956827523835561594043000927550236070373465618466887005713865520869892190059907537809294797904034639388716315163206462573758771940613173786644612084975995149857931521735668927964210889332357406939824496692258611338417977886812655738747260189253636427898347756142121809586043427922842171646250071962833109563950628499969707976321636375048824574655022049910019187558555860341790226023198601276529864688861549367855244934102168854848208757942958105361525092653336628410346574788309706782084918291099358457124374769118263067368302263126944332867054880587936916009214292413472107603677030626640704048611132636672684874792073951002121668593743359217202315678221200785573713347413776201167209932777746410931667913388212183957638789304499357333639829144209875674747819989047772861466722019515736385352501725478342178855628864736925011649541791836797065967826521076446460195885162510199912812549207070185158588274779052482861745934240872912316581873141210705582110601639981596565237232201055506109692637583480232988395062569268066476043617015359592734531600158289937908636356069221568527488653865882759558528853056296118990928802744062186450373236783418727923873195410280677620557070904428207743582069678892634166654178816929675339260911913036694704687715877762276472875500707725733542736882237034626527324026439835796832757673504771684187301130625512088300917178220831092627532251798371861464146232314566148934194077832841162322171428065841564803430277550384155903091065515297057524420221970250017194639387326689613894284801678564647669777726055349889163783517783283531699816436291723081682511139890142516417870823666521089467861421318682962804744433416804633408940151046083264369893776096201329862823377201175385697366094356325441118902338023908304204205404554881010510922537918100627331265779281023991416449655445251022847359957149059959015016795250103587306894477372767065576978687923996844062104777892124202051746182890534698041060707944851124486933097188178215024405806663700325675272305236743496946349224428658846781116293219133422785445620857243267562167803711168670196721714106410876295530731777837082101181264619840600124920303983214889673345116107674878937833465669944852796795297862708198310213962397224283479057268715247785545434180018793995698519125201331532707452753639913400799490695917095263346851759380970439199685863478020022726773364793399178935450348120843737485801495827765310340989748469010202567259342962098890670898926027374071309765866193521100501142097029642387298226684562006065197849613199051767636699790110344490763640158345372915992089399222372890419398559724558109059504968875051998219194439300660979888520075796923058065113736661726584666336727625232395532591697553680582723536039520070838943636095866687883445661687820861364872648141845116321310051017624750556681789592669747960698071377827853026424175377380193169118543152263049928873658576552458085034651016442618668338432924821116989308011620193641231721238622563084619661337436164430339437752935426125834508333909449798635509243560801969019970662756298062730551696336740860662883704262270458140575202617466943349003031519163394298613937565395854035593191952537206017687026122221492808444825624112331479024230231725567240937523994925681062892495223739933024254401301192178971958243091589400772965299187201080828935211729636395121978496845442411950339083987005835994633565375059869211265453676254914355946973044285317556960582036208888530874406568107681671115121269898297635286861984111083913253413134087612785846181436559236404319553943185000477941393243628125455181087323429212973796997310012306086604369496964731501436680340599579614986080723608852432952641807782178658043409889246393377643400163113521322773173804357921820254462453279955763537734860451797340165196556912715813882214709889863284339628465524583711734863906123238985847159901434153124595220049771062254960451737662598142087733536165456925013861391712889760416831415873136036277928796110203945453800313300893336362861537655357936012583768952904874117563647990265945964663290073959881048044604479827740995646682713472091757848404417189246598428875197890085703420128312461166773439072454991056162368372073611749208751209126935038625627906289880142621805125945344619695600332606158427525401263258183751483255567329588181797757117475196370163631795671065203885273716471323991531753964978598404424921427495547711359332255707356204196102469674643091513668397774957637311867184162233464297100337742859445644706681986321134712592698443758041003345375530533177361278118485606084790171501765872465638030494883444408900617131709849535784448341180522409329514711713820849254662887122552139712540927618227867220715314084562827380254446008039608491575588252067210200755508044528428455668646582172794000774186150318573052178256044126426589077511464697170356782215431050027879581141818970006051150625484198704877045531948896737699373919362552545726064856996515207746399986965966796693686194888101190454087106120467104328962035070252772646901750399788286303122350201134668572891570814527005778514449987460814551513161107974791901932370854792130354984265800061560064421149328859035255183470858166899154727371836717876874766764106426844234664643375307003438731505397716072551147701216676289932784882694282327763377201937210212698291479921345855272358810076590136724863804637792924382174786800845979930137981111848852169913056147683067989740520038558824090441028131390816006696358511915540684967377332484583248725068201554215919906385242957765478222941863506845829719878784793645142573801999485691434281390185442878674637550799789879783218250505824241362355813860597374509491059689568935490494524900312385851782762740074226857595239377693117302650543683105983741394764729755545857380014805332627544047593453636175011237370177170266008664996329178012445091442570372591533147407734343202972026182530109742523593005938589867208809168329366778768801287996079129699851001522334748917861786499436633869143894737236222660178710419127757374318285923330502756694813252510435323842975756173514714190568154153144563172562827220625433944078975218059359981842605947049150381926148676088722682213534054823708340170220958657184959864644618988085217358497931768029876991258959763958462018882344643464403921047175595894514269977754536586687926987886963102844905101876217659509767426406956341359920745497018305845073787012021716944472267725803371967951342989899173734405872246961563067860996702012286456944878761515518963462040621577223542533302987065140060924588761294959476026051533641368034722066527212461502133409380516863625325691673071271235321578139591540991240493439157771090267895759165875266048954107746003189278536575389116304672549867127692649631475586594357903233600340780527686402398348814269370919287163015658685586293316183636317181303978466021502492387789436120311466152426961437756001500298042795354670452120128824952782732263621210206493030618114135814207517243375727041980996514647207426125073158709038924454570718595067923466295253024939373672717149557042515357479934910446834454508881285615323765097517063632876976947280897913466727442787372276494520183025553871272520160045290488281971275809975506402409815086513714521439818017940075091180438107211541813466115163677425615086595640640328013764654141122265682049455418186788610161299081752395888857347282843149896273177002158953105924568388980203904896408731077489446138509149728259341072360644173034677969675375006253057051365662936224749210559352354625186757701802320966940508043222552740542188839785790680781988352939714425764202120107350389711927304936848494957887432145829231743812084554683467420740999652391776283624964650902848290882080309447892571201059699570095750721992683324890556858369907578170887395173947467705834537644807749298350212248082389037734202044307584553512987186201599302357038055514126386670287594330960767926103962006569584986414690420882580367427489825343018203252036044520998493012378407211201277440437342850245130329690634948313180130560910128926484572306949712037490231495212883675426061159099728238262374000374790209524926852297387792667780363956687214272752745593360435303605515135305346368649657670462355806123212949284501127093416964191452389576919651439578458192011161080423698852409159909318951310001844257551489352944982666342639924874509432890202522783543368402840888511965278282365373308345139315932133909326760212208409891424212270686790839292568052177359989979437255946927474352503178248810403373010358055067984660434957671125983913708273132244383764456891690001415923577023258598839671299546636517607492899176455025830681279175978675555747877067202048636927301306690166111362374039950155478589136955784340117790193072331010282798652149406229991690023219233610946575377647798221697851949066010394505051756017364030687666064537035908393833397556531154029780079028249944703925941882864725660105998421039578188103001327091243000965074216549140231215178475717511485840194327134537451786848349551512068410774509428225336786058334885803066286357884115397753285608850531941253958625172483391494768341391593462637037549380339650848175594130190582085514670621630139741626958579887703646820660913147734632486623866755734166604884114559341400672407716947842127942063802586519702975238556883302757806951603080096123811719002319460305390606258102283037338522587833799243037581373253796808629629065674510708899935841778938208475724209692222150854843208479654072866019141887959954392375513476653582211139248336113645106552826620978551150130301563782699812341886327064694061124699624559269257037686048265665039339625049060337031131923827356532240109741213653502196097230806665013490600069245609195837947097498607653086333359183128115081632280690251916371753235666275863967037108386671054063842951623226136896144786994346235572187467227540766653580370413846225150764004143678027175175121305729398488580394238253670598729632195701246266356233245570277879432991553599681212661578339810631161526168399659956075126728091626963214241482316217808379018787836375954591458286205728964787195256476091937434680133097273553898281602471602074701382867368414323642244240638948423861707024025577338402030631360490185590747789551304407368917568420922745339941592194819542202703320868779447856747130505331863934703278547127546041440802489477627690031550045370483062486564637153315884792111281566202443067838379379364282326861684995694585740237147497973968160778920716619717004841555107872530964229149636134738762896223775373368553229378622285228287711672127060332261990679467868113921600524364136611942384634982120105656182866103428385763685721694130188850515449966422817798189476526120577772004770469624940162774642490911986220779333610072519106242071739269304244046001178629719583011893485589048447168706988464812454438149871193594999813126191369037599282548681845127449304053531559356734866491808750928418743319223995970929125375533181138662264537636868968481545704081766506504980752420936846944328202182234702453661911932310820236701856672629357683009254285201256504791360827474143248747186262746893377684091955605181948227351544141191973412912223133119163039741266173555897959872286926169193209490308123584931284247500176854937611289049787360147370256427252834239191077534381794091467741796271245965049506424121456283095818831567263531864229729629303552156378025089907423625826873066801016152671595186234399138236635484736387150913023318179542291221917865910541686402792871558862529902801634513125104853464884714308309802358427713595660975346136784393158158486772499296140560952286630333073114865398680196122100494612850430741282693297267611431072703534285973140470304505839688229819942334985965071434855263152023290276127391336037489520310130910301454709789667323438889061952285828812907678760657092377671016647165956116640072502420435047447419963811443809071717099426709213269750623084173459536554530740213651940776155487331582241368617666669625300793918100205386159090311143733756386604726484731883857804101396358964161938409423059272584784779939456294553720027321290972451285405962050030610829617803443769503829955771932929500368015003503293201278450864201749934440103652922044098230804138959064967700568699347054841892896373677459810867280423573852819835353806598890708829154754629495946118281672567499520517851777545448492738415411169242737814700200471378967030710830913004908560849826758240105337140388656941836097255514343195893448990133650582094471626799307536286452148588152561094720500840842828559325637067710809463282093994983029820244230265286680405028533595648027511306545524372089192755215678165704928134731032711977081971856338704657798326136887509970593345346277315000775770456758004903912162435640729466636743980145598738023344489812511983136255039558692225749236837451560127310251830597983866072261952810758964042625847788672313190221569992293994337004164279050789410472317944908650309846527050744539368857012789448530022374200753369238787488726589531770255498626581791860878758034063234341034567880035447370414185727617277038069855993292722451722367222098242653656351366035412157822564908795990995447199852537871637024696888460868466579768987756820033207522374681467722543000604422798638093472476547267155659560459311248338864904687964349751539519340350683487114962790631330201165992951371525794917770350561629208340806040571163499507054548883030322291696460351879843617473901811852606407869304925189932520647723546218837761884805463669775745861447556009658276409829336951620527584820056298566379132841211220436106700823510489396461597249701841801681454968576209503387274013800209689027835597652419880458955996506691525858415013736724143782184738426606078859009553724929355740743959604792601058419043068575550304314831932743473372940962126682100433235213268722860094245518314843873443926659262059657708668711094430140445061361333487232120103351348923202223990033308609944207502988810913995824053084147671609868898860927470961444414654466328035689681100825060548327937101554097516403227453558056598558293396306821694424172884806610390314847107827733969213437205623651727615688243780003106739162593813892210805391248465664334470710516938169726315548299544216089894414008901736432241325553762324563718770683088342058874918397488232721395513334263762265670263511946953813558948890374499278554797867475587234400463851267529283389845307625509754094974841177655555808331135651869526869113892719434242003712613960876707791207263134602809511938974120218541510635643070413398317630160670498435635299017218290916577390566183862695272836474158088576283122017789320346542965049930807745566685950119091488082436282857908689629469232004270105283952608997555629188697480300874732355355004638219079358000083258638040153346836635384092686516074635514789772443147948681326500902202267169228412736459483773493384235769925690241552867692843791629273329153059887502990027436040038845454235063803655207777792638763626941605567977006290661708493095272724863889945365574443819868566924208577288860041825889880673215144568585455784226582677246881193372534859577438487769821875427065731623423260168044370889676384997080497433563274448502863206366163585637796660678123855058631572805479938223892122874587615134897627082311882567516300449199216455838794235301387477271693094825159784563014995105305542916627232747564678334882932009290969612515479679894881043921470807633412674430100512650958339422239925339677296777374843432510622265274202271050262383447120166896987326209319136389996450199907197564747120640919565096744403832559563347647735985581373955536089263297113694878679612432205170988065611448919834548530484472969137685419857444769657646844795416152977685569527864364486415344626129917721408218235037400879656513052635524223267722685870272865030919980432641459162574317247125546713558403337751443537212762881654225116610043641147024459527928389672493016885383494850231037983308528149643553184474968612121521069037110246697978619962094961694153696963446430408438830994630599096329507723502141204291900339162843296488492937099220785226365986019416595691356561892073493153937742425905887201581234834939975130332341561655008520667171958711274502406893206158786668616392645951022955193834253155621766956628214149819926408835623102047085494149189741958442849023367063961222314830191147598857574840187978529809306501062899250669293231254090725821160386312004514951026364454081931805978623766978189910619549362268921959048064124904405011578769085184981534455168500189810603044950785081133837194418385549196548021232382377796297382463054217336730195409804678836100019814955244735709774047405919378661661737380697117310158136108198794798217600800365065690160826990472323528175707608851787549735395110551946133637574813151418953536937493749872041503861990420296740849397403995868940959758943864824688569272157557921406467694304850392847691868053163425249665406987808968590803632690928884621133207460957945251054964077365060179780273130194160450521001620225241031025428955921275431469742574240488180987491590484479647688335305236494820203891921883572210426255459232510754622637095800623723805533154272193830592220618419178653507274422672844923802530387074983872374290701957308319251322102884428971468077712516508205956076920658714104363175466147557256888272962505962587498743808526467652694467361316249082391311767566892025890843870341907974575409353607618768672295595556375913086097567784350616348944341030487521359993374200823645094130040111095382869705209150974451099626434504753885651417072856139779926123676080884339146049927317879431011172014786872744883651929965242141833089677804552179345684044600992411231235795837496486936289813974063176184970891479600295056799312968300093616861588578060941355007906244806165140611110668835473441609109167499789110529573658242688211386118492182608770588211907316988882366456104120403733412880950188410212276042958980912144144848863605169731820957531179408542725828582601826790804430365831412932571002203429505380620723674828109734194875062709185123255416063781888060424218580405977835042150372693653209491854596026467456154951223258961917244081560624596992858455204662655488295025148110731599143586469857149403118461109347190816823070695289857110755145173953584511579187390996279810102740359471482477873501086788310445932678707560073665436690725660962945536838690989078288675534877926024360191039612081957724975855311004318819927081918913257669897817235686551141089472632735250466662428431602930732110705070174014055013342451462240253872541970269609589928787317553073945818317747733761411569065832984264787044863672052810135591806692889566201600298456452302919410275026053408570222730821516667759322800926313212949739371587052065560526135774883427923312288127556802567875869069303030446888279241171208662298191800933006842753484942781555088454384648912366849364413357391616484448325356816874085669834096073438331968707249902551749954628185721327464324773657373716774589577754546342154699976823106158946640133342274910176073747849688661260772708339811615813372835651850895069334747405694783103564024891670726242697328795549514707353801793316178875923455117543905379709452620381261855420395959525523644084889395639761733701356861518186925715137013707812675252905387942340433142615123892958274578424968833174186905186253185147537699243159250353191244553519226568675388360883445478538676226006456986082778214511386507170998759120611258980007824802935338310152192138802683607733543711339967797654532193080376545080076696781699167483685812910974453678248951169833370159029050379167113820316504603375780333076747869472671009120870607609236679548645510748935329932100315610563486760931323715734011559618145835923459180088149959727382988749109272770050499962123756593260103470419614269146636788929210107415763496211809537398592300717034643806193482216362100279947524799698824784980663610758744540657671493534872666378872133490973312133212048901385040902018158693053086917909053044702857339443874027836971932795432897572855220271051315981307106926126810475484286802221944819801235962984791085403997227752714052884804807991640155102792514742660172570046039887296091913010078264850106181642490271742986368569601670722610592601369124698102138627733953372657523239512044986448247717513267794398661879133543518872695692614393556516486962387695501711690240291073390066394867369401419846246019589203805421345962566844409204244711775052927769604151148111259812750630724182846480830664733187620838715485833610653906932456030365667203652597286875675821849314003028666327744636858771762333153635740104404731062438852329255087970269370307478649355910333916718820241240738850616109491375406597913797312635910746951473269734004562487737138350887520047880909059903361677511245719177175654258954947487950162671858512862919304820727634710192103715615013882833144149349724113159689709916448651679363878015820629940764217417304543282321034919555384666955287957429497930104375684634048588101561540430426421285684481643095902440266880269816488336734485265810378393937123987757977322406277367653821140744387504728238431708774189396102804501934329586345232468329200626140357896080358431344990928079454057853251068561122668672131378018535243478691289430030899865316145802723183928955793370580773402618310622088324015116551383382834907531526652044984179955039638302594941725551419314809779374190528974977322532613534465111507796709280288767750721272095945038745609241948660326002748358882617860735265467367969155219949786977860056481915193159279333929773485030685752623770922877847789232760353976298289789478053132564226238859760330192077624207213758398814953284859007055259568168681355807745992122102056580835935950090618468419181302975635363478785740390543099599637443686082068072949971604600001779038631672462545180770855654304055292643156159096297288621445648351186211743597349850879232901126947036797606524298477754039797539690086727437371083841520550108527073038279747740265593301289693998348637946898906727466177041213539885440220230434785654112805516181774143178665771277610044157059161518765704300756435432962221588533417620998590891538199959532712434449327896277607547595873238648039073608624883914935690941435733575041072128241482844652615426547822826091427760681383848008551691729127164920767273322654807005950470985025513540259425564979400387116621378945810107830131398960451720675017310472291767387431165363791489861153884192466503080196158301961741593746920718434837804130283693379573128838181633390484429299031575704077290371393227499611825493548147531341988821374705547533396078820252640463946822956923457469408023492491712651067412331766454491889830408825539136293622508546849090840612139539012605556943754222931754728075771550653743929723643468237237587414700463353995571017881938509027478608153765416507673870137624898640875979220239668690212249340619581655528437657083394548323677373098734563695867564190474278930973554947559914802499955395666971157093916560785637148421303988329340312656973979887903843614657099757786026390897564252509489409605191883959278572135598376468848196262630640912554297093498315019975381787269264311139938032524755124336633507646552479486736104328842439746312228635819344239604426814714346906341547293915352390601832764155625616105696937731214022197930196326044650805154456079830090119435206509096056521126671347500828855398218010655522385819719639210889934432968246660931682057329473382208852867359813295089395982495430148495740732405486149204376964507734063148839976884090059481301561096172024518111896765343566300454501004410751609076820882186142928027681321800495107236310735260915135779102618695239764356466805765688910093877629135773312242425993759162554504746111757031577594527117843829171146478386951611161530810957352664555361044460038077238297404186499319899977950414456214330030838778116371291977515071394481966828525940439031182463831787041438755875065380898729128360171317082945043139886301015567482875229643967718469052612712927062056285327601067806016412904337270535136092950645492111382157818221800605603919291187456749076505055063328044833707756329827669114432251935862837888795177906798951954338561860839998153720522184248212654713910034998998998022273435326953128410031495107364925093798736427319255802016275999578067057772464462129490298812396857152853779646881863321572942218494362798378031193113585937971331088712279445351048954922887115551351528342899405764622102441694301036533179129107559363043921101095483175122392260093704389053807482109668698371335584804643550879694277522057163827660100218892341187704224173001466086857144928366606549006566514833828064083020878400116724586894481138785078590518082553029478249588097805790313812372846749167539563059380690433520218576998571199174378752987544016032744975946312252396485114193981662552168233575792500659896646786939171729733339680227736580371848294708034707814679149168877962065686608010832699384684736156924961393617076637573348687080148127123542800534111296061085431619298728385439852044327990715442452278890949644515298904752415386394131889129398439621610682761170648029930628317311964988811502893473496353468208949603094037680659027220797878805678560857263497530136409086521470762181813661026783979026736855505357565375330273341353593708828654651726347555071425331604477633621703076547503700376748425064485328810319710342180478773029886445076356020448525591282602887576133833481468012891800799085060998962474789424137166996343780613369404302003704763395316261142093653874493533306458893569665920888652353020246434932431758527206026728147748677581504947713544036541940478654011798029088221339554547672984456385971630240264627647678794474935843700388467165949360726315455114951508206030996286345750506889747211093257012582455546145294985465318347231610998233411761200285691198668269973443043876787020377314114925387251161495417708573478478232061380809367691729855470427764082945355159646982820477522781971245120821578648086621348441586099703826810076680125300690715341855443393935309025226131061433386409950845834543304298175016115261020417118086539097230405678396271545910999106100614018746259590148184843199228337248596170158783886250333213527245948942467497511596284197659344679288562574885234520105592786319564628463294414350050818384939830085233904703529535524588397967495384487233907589439203344062506338201007480424803991750831013512651496720370784660844521783029006415403748883619059127905833334584831962702877278418915275634054392612521939090215033327256269507498703818202676622883187216856817236286070981605115394143833706560536569055327137407016799793096809299512721867144557315435383401706321947769384049080796789701900804817975111579377573740771916556920537891513961365592041032263272582542204433247244786677522246114080765001487170793295340143558914015233215071523908042386481708505275357127442006290780716419706163557754274799584821095930205655360484895190889697814712030602322149952127631293518168216481905368849316312355598118306375010194691337377921375436836320019902411468004943789068374282130867911388006753922769754943249946518347501617997901848528024000112912987722714969672374949839807791129708279732041554708844106624603873914352595749698380596296877460553911691225729586035992379287263236372327193933703966184236066030460891537430485464129242429823460473419568895199923673628297511648789243542486151661853439905720080960036310612288625605768169225327448364781616108039344140534522032642690926844351736946976249562935371134349605240147156442286112728185612864599389505882727045706361488928438163747724544049873291024198013766245714934276558062616512803089721533081235259218565027974236222159333736884575292797016533103717504962819993307946823312541762397916819547647793764913576360327399754036162514886213487377806507334721979983378662417284184995398091544809733102825860010183962921727772242129221283312957494009226967427262755414330673968790765756468864735358608907392400230104652105845236169149305522959674744706982399213153044661458257655090125310021633355002518760301437827375916795070037397964834292689293382278792946012179000630561770563263405047076517473379552898695974696070587311955686425748531911007450467724710085740095396234250684543550722854537107860116396584369663536592374411561847498665884759163590529889799227805111593593336488131783148068986998389132482549576337563995314833492864133261386984963098674871500623393708119979535058761498917678987805436957292451892344509936139232548885308485388901970545622417672928487018003762302735521549167403750112061175055291002009053932322864424472175924303394579869759977993989836001659805766560211643639472303320648003068621902984881151053242178468890769103747810564658785254237037732384820819028422264926383766810737876569020242614269870120955356243603762331942587547952113809300530331445408560728298555012131327715171249445064178741906479219752900668313514018104296016899857566809650863397245787439014056355493959892577445163567234514990778293680049529615706716075335920468405587670055083693423813027073305579724661032730261871255051794707324609497963616638603314469124584327143560262263574524315317999679226172911921177434291754699254172152273549967987884496555557353744044225024252020191545071770235629079962717562371470204985063785792015729476577840081540958329807959384033842867963415216858985866114707440882991156427268057987916971683525695631902458120667438724717755918336977873062139511316090153133865436834080645289085525318204454729384469319310453992766702877702660336033716696180560369957387518521295524758996549032618245033860613933538281131655819294031203060347519604868298783019002647084616376302657940392554684289841689855620097560386398763769945738262068969279902397465765810616223756890662268390934192423728020301785390973578943352159409774278090188279271776332985492037155388965805062308574839326236795243785474989426998513244245320760766596247953493835972884653212201794301703685595255575578426281817184402918421019122850495460694324942620645969865451096385769442230198595493105743979301675097529172247500536516813491283269465529606938945824374826760913716068255896112655949529929159341396972876641125621417383560969374541185155201330988160582841504874192863183556642824109541687519292969710214116682453356974331473757201366172399202383490746539107374345348382683623631015130564567630018124495024694109491166885526523034455751807548840046094148844733764109778787766099261370408439700171070002801827914383458654158783502637843072808433667365376521200822318052324970428070188668121548315543640334948922703091976705474917800901978168824887034015937338647983110847148874667179075321152504749443008147895410951665230772278984359737728802064755077874009845747682794424888225380143299137222071871521731497930549549462039952310631909016028468830742144568925626212608162411510604830684470486868117448560326783847325767475658669209253360245480683829556274599884040992993894476385091081293161998017091164686980080393775095039380492952410858151514953578195256095623463366034325764325639736536545459457977861391323621696576059251994421117237447393390845410552541666069597885344340808780962047956230709672780209625654298879257122142862324754883669458072608575760264735834762613886686139329906228270609442959260402673776976148466420118422532750187064616156078761723635493319261622403482800827260360511922807473402550882625900757821940285405494744848707526203659086582692405862461007004407710486308896587343546233944087060567661421674069074758327081942199718354114296660074243313915986571856858054030888126828410262831528041972548199531484090275645115432583217500514031433586519547591408337133848932089024870458708545664950052524062882790843344496058932185942541864529173754305783929371663648934424071673544886423613171135913811097268471757640999047797289260402715778909587418130293532986562484808938887316221932266471570023851221876602107993443490848882428476200840892784699632691029931196728712386466697533271242374182561108332423334719254700714984791336105945017996943825110476814125450726856492402146080777401914503144854242172916160350594623283034325628287348485015344140388464459909200477767745390263286672780523001575529523142319034384219082836881081461118906378341300495211421664966949320474706146480744864517717213217245110015007860534060054188084402548102069184525161893576622333144952025383312446011072984881324139659144151661038266584416185814832981244796073583066904237782812353246724269869218045122922196954857921979282916712173014527670326702791109437225039390415374813677257625838070141518665957920132927939346396528487462671127927240985934072886903934951491377878214325877243507566243662197453568346015566684984361310374599459882099632598451373818020295863782606281895880539885339421055436998350192082685878627704892715219799103695426852264387841100473418497858092409227884034723479741254429758256693972253767817987183612326274672430545635852568284115428247370223781126246173382074603975061874867603675602567800528125521942790908316890230508312716365828073334776973420255232347157377329508985213725636036588665564002288285269368672380937469665207414453047399009226042817399751807057617029522153928334899490876507971053498669334043545051109812601209072389798116007188839897869379393372929256816085175104403913752970809965206483609337289518719279894382538651814884583409254546339365019053758311230118623041057647732547009152616128700012198210762353214519714554023542159837641433067657950213593507011729808354988611579939095028817594910846081676051122751113285390550013966694955202248690799890380597342815864236041480639979745725276125413474913135495644403505671682069587027369940710431364233573138803910742842165261061726137473581733710509854929696662994300010050017914757648801697449421070575139752294610616557521543828989344409706380581995287673546259109078691299664897052641099169861736686868717580727578548322262399908704594459174538088509749165675709118608592816638269784820514419182323189468100914398210440087703127047164115990265592725734348137571324131748719558868084972120594165358337171025010488104756692018368141715613095200793078278943636095813687680138491271660583460027460973918099275259850367692169353038666292326266329798903010458524753859917607442369636445924715880449032138543165484708889829798447031987792561432955026425739349918172368378318778830769895568401295072572444293060151148752605291368096505647227887074277296783269933947725611289083118086135868074789652864677274493334425875616710755293604314296077708272618248391135791425052286746503920557445040808677552657713828996482148733404564601960092631138220268609205301289625461997667699711148559942454629362564801649040509080485944594077675742483504102158585877141944843555679332949525908759426772336287963512800294985061546229559947561597485412330272522165009040388736522519141799214590676440815094932697835845711697631605005808205725838097775944955047752284438110020706563299218640771662770432716649647814005841452922933854273757009016764560742320249933720383730075573872045007041757814638729417185105407316920485574842636042097039296127299239065009919321064645584238427229353105125617931075479929354178814779599366602629195130604924839115163102983116228912248144883491349279827080250723801674392097571924494862739561823217899299706394096604285110790671766214968333074086977226105304152652179434591536029509129036618900173460831514203857737112129611378752582254181543558533777684347080348499674695630462213758555217983744062444354595951415054066514273142578189346248096796858104932113197255341338630049761617913038818115396517866359343910079050834296960593562361840091971816489417368967568108030246149176683309824663701336701742939489548663839374005877774256002565218977061778379938276664525225886816196246867481073738595871579617057381488308582781927474931238776629701506362416864585580075304981775790266495172476751189834862466210029434305547147310675143084058483036192465736924590312818885689882425012727972804465517565053150220281384704998218054935625559819691406864671146312056468782880361779440539508333603950251142185147099852442306550905659993461800902819171907474624218302270505525089167615753887421296509007687047994852366659346828524077528954198716949165417442043604733330651999175080822626554443988898796446726531215553532273665704619072448322503078385620082858780855507438691650269344107273967172612174421294531751449631382036283169406315365704115568413825101120641864648059932388715124776964875778649220873432956056012357152781111295020128820842635791068602601625234379809528404008208678610405965934450864297984329571229434584097077754152682497161805388966373936616498822148013510879451596350308258793499867150622183847430076809509261454406283480616640343189874769636625105503506090860070963027420678704639817788000271950108360712076879114656965238382006008663274761792633148877251862432493492980066356852850707279301524112038232760074197942348592136489014428665240609781443382911088900329745958602126168989827534442106622400836206645320660430862867504714354813015827987749600068815035604602320679589894823938186410220500033685547487337380474810692464878888461326099391815159413395312689599685647495608332076199636530268150919507108531602645605115890070874954913459954799948217162652690264600854204276888076885318812288130810850797968832727391632471058393223715532703415235033399643624478679179188598801171430695506606717563799489922432074133465980554443714559565912189939303274234824230170683210695399592423739475725091242724504292634517514983261989406107219391650145765698693825798892946068918297665342659290293455647376550669260957182269871859575162414122077859436804644831584374687899598610735450003611354872376382734650681529297890701879389506340041009092422745638701826382917063990763036669593096826742332144038411044181276231870771303631020728894868134769462710822896414047805146223556040290781105138505764572809990253144579466540505159181750996353574032790774613058891717522751683867402934518384642740793691106205571886672489676606897510141110702063234511916324026761991105636411718066332039012731379736446319492264877449997073368737683966887096404805267274687179989570470184355195099585012491168746995515121508512872135937733861762905566957364132950195431852910433976281071063900191624177207226282094774046888130696084455338036679782868911047333748235363167561463961198862437056205734314075843241611177691669309946412393350561365466135525291564666783959263596315012736015735797820882997782969487044026144681902511267966998974822316152396116396525027611028343983889422091294251974733151518376290907564241495588696288151170956451533188618782608204724194118954597460333601791622393552961641320165222246046982348526291444218118550108691391090383426514353467053834639372295075898271483334818231314470087021496093784500503549895046661931757099602388359269672795668954763998266550331925572662687900555729158258718328307789412244228095059787739166605078541640488295218794007243292445128479480367213179394994165197652933229383936632681574425201117646679603294853014439770658799594063916806791937237052420118491381941183558838275743219493135007122155738895908487535130186904627632065046233789962472754653191738291951186551572257625655464409199773877548166055865539034584972298770726177386039906640268437181663324991435872366049092159745600970292390226252064342267462492245553582584865689575838492776252898276399813834034900993965958254093587705500234009873895790680155731114535102586120842871196137006626914269946527893749888235127118953757714819804881315049430774585917133139508945393844461412966939397399331867210694250253298286049268402044346527446331919535652705551644152951661530811885626131092234614627651288308668390512775470702136012441664673649742833268106576892551813499293248479008759070981134822347485930687673193914017344743416131587696564528163764555493202725362468425980263765204619972416244657148645364958002043356249473139334131840663440075673105389718837734199568672444925901808415888256285861443944215214036785561037719453752199938437413493315813952736926598341691576280449011553433850834317425442449144023295457268157412457162099685758758483133114258569180260029927598217224819824090086657971010088321168630045475045210863059155135001403536415505433836780711022835381533067564112222865568852193859861723288801017884705741401866098341743472040621555437107813341019247620209714443167918128734244147038981797158038096199028492164790966885993677158082084755839238610879980345859108357445205925974317626171281245588366859519091322707389748733352814718995086780574179376643335158504108550226857159246001395822164237471554592178144225071501319106296544498090527231517925207559023894126269776133749206818950646990053293407654559851821427873601004214014491204279964544367277897267702852499388509830355103093352818048642279188224218190019272504226401825991117849236676722206421746871878991526386229083634850659427927789572426402676110386752300709142741359427753897191875514976207484366894926836164388415314789030872244504853044244692761284186008570476929173972409879962061621160760132626591150658661028991740479418564303740576520576742445208657417585229780466809795518993044186239331589167057484363146167529269152147609716686798270064717969315961327638232053804371201982533831982505122657639745743247813856033279511095551777807930792305739879307563060594741843746536697459830377925160155099654592915575965910873722274081844048697436628097083973255815765836739384051302555131791683304889709903178996850359515635274380339166839653215025164206613935577627852344828768720943361249905100225388042794426310185070704695981182028721155910040319483311170204439847596665822253187885209380919985741815679107645750160410368720154447935134672140235841734374390862232264865256778389935387147045477968859823533364139817255075872879121366378985279770106846118362325403839250626617797433558903926940396472091275340738870436805091982267931964837648808670958423782432067704522326245823401294022000322455029932074941110433008488164854467436526925245735242262370991327072928499390874992109272133799106580317958459466391422372411370313884961037174955198951210414383313912692883933640469210825959174805709112500250141931815970034972534119725496753057787810221066594120340953139476756699725276244041786990028771297331584408926897348571235575732550046451022775992816270003365192604053056439713577416310785942671864085754027618645563701476628765295210770433091331917500752099338710917230811919861149645945044299047177159894383224720558925896414342352940609675597395917104650451371751078682032328600169511975782908744797914677076896477565349907485954665104629713487806956352018721667351272275732628050997905808507091591733427213720569743663035613213886958272775122706914385428743572484119833764264118178967613414866888551467047578506768590452938741219841503950781673137346408164621913146488722309756160374259913677055653978449904295916653533982428325246837878112755362586404817491615515901967470621858510923962767079581330288350584306684150795880907846311698296073552475545357277174099621727894035781091342536524955914811044574655554391296246021198117871361151261502322196392248777895600478860318591493612536323127587835019167323435354336046100994107818331672150672343255559549174265446345692741933101710938912602700412808331207378720284182817603683097076888543043215899108021706772969127159660945603948588563170977136213550698830751703303117159592910065162337245341651874971519093636977781290496654707567280423545239513174951151946333502076379832951036130603186404663560867326348432603016340048883154792664066722475847648161796405125147266267432526158167277034635304117238444414631692124576515863108724506533077865359490207855694275128381894002843167053011372652432744851361207477869130159032798706494915020713842451397214478921420952565846981456789044756364406543261538902600838004510730685251099106804852640100683398982797051138266819402271874774158628756189549689549622393575541701575522876083478966421792206456518889047598069239698045448140244674442062947213829240352895964302978518468736568315010617326701897883643160552915404393245265561799011578659227647131516396084266176416557047227138657800850263981352161960658722761310197289917259762293431562803465145014159651804300681146312767962465332146797713119494520870647288680345429728972020254902982445661933203936967116790216844997295632629026346063234995519612364128099370742177488443829828208786036313232901122050350219639651850772051963251601139651105609636257502666848848392752846592357775089872507720595421646747755939875746235431444654170401233358111068299487356600348664520012312657532605028507421466942059379005540980925213738642554083899083226615363784816231531703945536660839791517733977431248618974034134973631623844088884696291098594783757237951302529675516516809780669091582619435454915890379301488543904350937062541682901064900121075962526891732188456675182491263682195609834162033379123887680144935171056902672257259186908593507388638006007007483418469964774251874881843813728832479319558660047950561274968531030476847030325460345025777011829903252673276923176529221359114281844299991975087758111394034498717094812165023738711239439754015007464405927871573564052484957484963290698495418406951718011073353488978148701448511957228164339618923382954975333533365481039915724281892942802880384330111670467831617335739276986542982024122850065924324403193740701065876343963184756836860785256437086284367741231231717436766185415725834806754891548632448984841679073121045517335552671146560910581858233726689727123572764223340947148843140990641968085891272842200762834216528634765566745869152935133563131676438718563884119964875954402082550128467592538176255055161786340873589910671518213689715951532346146143169855604381743934773964978510591074580270647226764165141523785880097039847632576169965191784905372090341083502298766287995627564318707063620684796873715522190356338287397170250165583418965072528785335256422755356033066551295423464866073427263360981988278823428958080293919084148480696975636648088864515793398963225433598018977353183104014934550763807618944563436491992337855006746490245204503595977867818473132092033972285420274524999485759788530664800192833746904796290028768011963809773779325503295647873688773568022700495693617714320807730953871746428323544100246811734417577712436986101975907686577030157513671981380036646910383050079265046021155963693238634876806746129211101568895551962218404848201502410356285672367751914036330887749560657607747057860454110079375607139035328010016883063729246633635637329711801696088293517396048639584936974705731657252528962541837471388926082562370395480477310102368380877284517418790542875877665962474496133898414483145733183316918575108287493849615906320298114734116270633130027939710517125036508565477352590685078682332499601248459757816600848274195314009622470497634280793142818941956949301652207165383381761101850840406366384278011564866194882872136936051454006853508546003536307611921472656588421774603614725624889050221553462522701390575518449547392772709320887902448947829745774885420939625299862304582298738104636289195163990581858561853376849643080246327869457969582019647553802429762454640886376633530596292935775321722189899140248867777493318340797978942087033284847310801101775003684858767136684968383425862690207363741792227636931140206073019677572201887835881333693425848590544948897366034131643469829305332542330496775062963069324660482513577188745055452970982828949945890699389460039309472014234199381061305149089585516581974966199378544942312777644432938272322836941071480867549896998637392749375724915964111165730619142665626383020511820558007128394348445389999921083337270204544547880479072849732794020633908674259667092441492057694538466641354361903733404197302292014488436030472675927151615945912539861856927373223601441225168285117149532517582898216560571890788469575840946152977628719428296001838022868014567630140595999802773428754560773449327788610882682328361866791224333027641640070662084254603253466779819302975769329989142393224620967494818825008715228056282016578408743131980583414687778189846165575009877714992418173792458807069106391840503926916053271721917072961609222948047541062760538180938976997276891944346820540728536813790926384426007333769636941813318686382812339390254958169343438130173059834762248851542863013911385465038324681536861124998087917675374657192997900555604390586585880880141242972569513751169963665626203536188507084387037494018980063559890290462236695365766403452168682362554437974791869975183689152234314982590999803581079869585392277999122361939321066847748265540375811561274843231350715823492133493595389966553483239671603810950869650631198562698613556865797639458067638720681963423208125403015284226477052258477720002499446369980867880990925109409980529585126518719018959832333824368342495724212054602971784671751928789660119928112486389580228769062969038297609785264444023113682124317282214875139929895826334872518066879953502464888416088254150408175534907280434361843096317033352742297747862195165500217757511970008307492027719614203254808843734184202113250160146225757820337300451795777900442989509691926258826776757704257720967514659776060563537627660018447381041976737803622461861984260626290476821349006889604185369446336262799572395948964734278547996722112243941825323505697316075007314571029243898380110735231196358139998619962323145805106670989870256046868810691161077769760433318414103866266283654495469837561221638998170187837639449454826827447520458451325519619233822063386972533487903821408581097793513734319047069054710808726208467223588090754737569867170709783884226841461762391512908543870642382298542213666562960833624839333640424381144487504435084432354022783096587904205500590930263184038950471560391375070972430863193485502555618482599400416658820571394484767267990271634679834661393294200409646785886656501618446909340097677485756419933319871588832910577445366678772445917301082122063317583234894463360612802891631697701713109549550513582403323689663214267795242802181687727081737390487994561399417587977002397156002465361478922668675490162383229417032043300324153284518338180180812780965958448401335933738978362143529869989271322475886234351941942749095345346903124078465828078003304554716935151402481327720299883824077286964059994844660890635656762090637040472797567298056371668656666692138973033837103110793450099231402222028732591785062155633248847361616043991035934981341812131204615318104604430907533543791288470492694273120026036343490476105183660695577177370546019448875361549225345044408409304748624134848682921669692023349519783516716629442097175217532544028174030507971577392996976826299334609264397302982841208758943048474784654954862889303132478048941907381742453660793324905646213049682443475348601061332439592746516500257939458334403090936919523375397260090045970395951844883331618826651388750549865245701737979551560607517224300644821833141311996485225962398665251650394846846930896263999414459299717328433203783317986829078268114410276258527490729367918394205742660035151058696578992709251527051885647671829552009365390576417205092927534247786468748690553889286509516078667799983315542391071031138003105209050396485685793637833869645428070509652724501298298086881842377015859282542065379152503952950160063941916904345276298578364237114669594291662256015673457697019826260153312084681804688211753578702054494183041116099737651616968221071995526130854964565257571410770453901794251142246656532536235921462769006475135037665841596951942518265615037902642387370123186407839580387159849525021303950612776799022720555866245714511475676936776813753140797091057709093478672560515201678875712116349752624443480426221828464499402835510790152587963619898487555785941768380129948420847634005882479834355707038213870370034320877462506289142473090172620631833316889964150395198892742685683516608134881187404864122767481699858604707399996897596969774000243511487940077299621678654511562931246367117292997506830835636959524777380657773204379751305514386644259742773039216025941872425283148849945805111191735519679607342432641290759574738243681898954107679235651435712659478332682401200760678983086900145758163793092635175004966428308932998695334686072763867408488386146058598701801785500273202350166073233515484240662616527501183034039110222912530586623947469460087658232733907724280465319738633486401146945550418840880480032141730481999363692067523087294210857969674442138522254187562672628818781391197618579549216299039475677704105291205122383961802463533100740761343973567056914911390587768142548449984123304847704020682776794933241709569603161150772192200179356428205897504839104819826675886352710715804422741342660583617398264199514268033832932894430641927744121120690049571751435447722827739017837191716810687871715404014145495465552261592000576175012766613449843078371083824122623401308281712444387174104517840464925224003203437675928213847284415199196762730022828354838717998519878672455108634278076288508846063653786416057179896361826136456558800114784321854834104278960650918621113382234832875265264767399962380352685515441571141249007063957456630275947706837217298130755727816062135623905442612550823685355407838837200116060944557650587810374863637367554400645648557613740135454270150399989674509870686805640262105355120863109913702551995336965504600758008604276305806180901273683824637915901049789323014633435834275533657942402694845370470618569099860195080990803878099877094341254764867434723195546330177884608323608126249711748894294759275796980352987752693938188296041624598984541477296648294093310515547297806043278372080254727093175419765168315032558359514046167188155440421532713297879142566991409633470859000157555166248079611388462035488041136725080701760641901364707894434294679696035433006020875293410251232397356894440545264480814407379309133457543798134937082624941662803483160947935795785239564462228087907838127188117741763524039115124447779745610296028651235095402111193148997228388532051047246554084273034960062926153326156938235542420492391248575140333861414512649226387749830776007387093426335964394808448497926537865029043902899114505643213181190253010622695866115080893011041640437598677880688624523609771112489757740093522481917887648294062737772203886554279453303026977084817674049292806452739063078920685248490106244512385298210661270541060684220282392344790341691317767784463561413075000740439358134093562608964981708018695001753173101088215275051365560185286589359250816382743161179986002333037292696316259239932692789683728681228937328610028096511719780385699197436654568650011233107434761660900199411692453167283818813198876369786083596025753815851540713590903732687791219994839277149561389924612928838761592182323839508221238401905964985795097626790853538652461805092814113435037926958890030741915267941337772438235508732739760563582845256872126681107726934339218991399942696382814009892535373740045968489978881762688202868067086726643923940841398091569823336085821286218858342679484658242660165540256647888766604995788724317845459610188082504795669122286425944632042793216011088237945893470458274886452065211190215234609226336559344727322448529467239948295192378960184430153585408431373105110629465829141644687551911844999035664248032870738646065258473232203997961304320361819147205825952914603555032966430829897704570687161236454574839856842555859765936911758250879152922567240122991147491656227246234802358245031587338934799076080312062389874560274092420069094562890380329422507727097520267916753023473404782481295092049436369311549040639350179574234987448138844637754163810877088863359706169882590130066982061515478605579297464074235886731111099880735633829314710150210073292454291155525753473166759872248072216557940882608191164795089883131216858657739858958598374761897953178514734832529829166975460138569159249833134379423212349961718551187161358818863515329736477943808864409326146712015053789387817513430671727876600292094975996624562214292434512785747400425319187599435129206912723319457675111638688728293773303928943766138852933858321690389393399163119434982391672756490914602156691404257733455494507828236284651189647451252632138909309336090255889260529181039455027509499583435561392951290722109418798198992242302371191783135652727935088948420704456727175605953407140631150348718628084670139468807063026347678772857988688910223456062548168403089521906208416024016431451261740091604235259738471197491050420036358495302774166825319877450136396459714807352934335283516874706272778575574086886681040163954905105602048931642856640656579902831891153056594299249325350582248506758308992008329466224942433588157412673728274153183438675010645555608664594836284587842786918386722708541462232937208385071920229417238780456804316876791194235147844354128953870074145066636635621447585420915945843553942336044551242026431293365078651883628013356225884123547313903427662480930006797882079111242808587419943875132173920188995065229965901049901390201296881988346505440027324293890220372941148573515124582673366577489389065462415277824934291540009349260760189478475191015206855535476986230064831114205673062752700751009293114977882610310680589749252121727111794995425352138528006789399387627177791325138835375675476848933339802714860653114535303629503089002550846977138982437292534494066511361023549431731157620688884055339295027200858205108472941057786445908669531678713653726496554590529130610916598678983464063660306571213301383307827369059268158285422764913506265959491985042680751697763173992311213699592815038293456652623903253548236063889560735058177464369720374955510600674999111645280424182110967661291702241798154414725008799145026409176419954634179069339162325496329098134527829707481140556385613285015646759640471256419249098826084582693651549762974101106956527473365973914721695750601697069775458261355251994577267391251835748458167255727269924993921094260022327608087892432447665762621393214298539962039087555974810201481411888424552918528854985563134163967842758414884563689345837875401295315142214579992589818098113675487016288144687639479230111203264585581325169642164009756946757903753115741280636231441965822025862130119510739393765610606502777069630446377997189576424943741114068057242989623656585397617612315422500283876949530363648852455359678070057316852492909198157661075357153476402138946952811328641474221509173833940016103863886499472294681367170416033648381154210939175340805070005633673473659798065162512920100345368238555272469773096034534976866146841120328110935458723022167108132174793867745816356312873944188119054174374031039970007023015700717129116316542008819575156840505192718657498527085700963692984869713356943649904609630950685227932704992246537834741047979799415512466136352228068180899199748910010873287570936951642150117231147604950592048467785836618986655388797144261331579715484308622664393881033078163371727950043706964698942375989092541925253722435745280748720720437315271624677903372325059776336053095693305009791323301708892656020500898956871841778929685977690931210128327555088046922497123077316504803082110651466720808098201926686983301258552654304710263802940352888534532094285880699146606098027214831204815275410126444043646627976226164765488748108090263473638990079845932527942214424341406185678772656782418477806586397509577345966209521927838155573741836179794566040235926053301626710876380238503592388693114456292929126429747930848309460625104125656309604988355697483837485320656412715995207280031177995532640422214101816804746409032613357047920578998950834205914457925552726424008729400708704960650387316600028098482242419114097369205075939448511464030147097173449165018710665785529892720617989421184775573935142380117869132330049920298903984251526544551833440546484757786057083947212103770859504122031674199586871219074456759262968009177849870672473206152098086806141390428249807967443552479812413311558546159755251240514830768964840456084524071936540991821540003988967261020365151242627717481161532904068966865969171763236575649754116227946977867234101625269048557523367242068531725565098484634967351396851478178225161966711108950988706668815091498268535371947462405938829601970258383852376461150618195032668756941174380256553814831780777099291336539057262171191690998973481850070420847979968185171109926996549408100935221951925607730776543832085307567759340313265950612308460590865263668103819533403847211116498703770176629315331216254559987434637597362598708476934248256338527581813775575286153223075102172939100152682289038715823201334127774801187748075223515585526738053990362019891978566263382456620472264024603761079695489584747684188014380783879701396437492229803557892169763072100046419289128800579223921448642804102906498107848204128254707768356877215106829688534152999531074052656705309818475343528916094655514904189388348206980996563223461940445060031652736969077765946943660590156682926400188018606105897206008055088017013723612418975846006886379119066202019090632392702645680947011230284986309127051847348438881455364346465753596660533057969526274957772530227736316876104917623381412057483536568405587587515527980414063351748146719370081581349134353289981685780129588818395900276866743916661169245150865678617570889025881716720885303775030088343293010994096593070331039736414427425479360184372474552157016834949308436162805062151584864983543242298281674869313169314984850977054176101284692824656531280058644277312645189594011382253476414000466622162726058642489360965370838230838856983562686935293061718843445443274508405413103161336328035071408557521198010400539829783302860048695514914977783476493681572256375260562175836224874828217580068025563368326446995723206106026997565166604845217465068292484979003394397608404313084912593711860179104396888573988143419885705897161354679383745993577880329871862862244147069586689764888528569276087971894565493668676470444210824304923172329750158923857051806965510616698192172038095881737845126165634220566500406658016729506608381536652364511532404294313873889303530915640033213788493088591099610537844053919715011767089636250413879961684143191696787961072248290057626980223048085809217893163753018213040651415729509404115995183342012578568084373995478454018691331181197244040668638749165071411262602967635818958572671754345397445387444065130471410898014773974317273244876663171347967102582373951592185033889388394747549642115971647047885052583709669651269196832402918883143730509600153972630630785956334429307738443578705756450792758984593374708145997348598035281779555022363134900060354192750234227313007181101930602744551785681079585690857889821000557527035889740891611159021036457406875711168945500877899606089793260286538494979833146890645659591526515907181962304338115334172541036966108239219941609239215059125091536534346482173310053637758721552901610846016168504567895048963762755862442086930840342615459726881591767218343176760606756273204065303164436048626058506998588107304083190800546784309397607997782643649219789342906632567533632908856493354993631542627399553703698327118826922027956154403002226949305870962551540983836887723895827529684296631015257847852273113705083822571381212945076698301962648496800225175924181011461139309503615137579200566850019482051023993493410195052597081094363492001175046252791428425795748501485386093458402104783350927671850747670903618294357114749416696065933341790161181481619270033573554486170528468024340106519520506764274848744587969029311309332158133658315099695902471349524491334512009242551088020352506925379859281759522234301232278557376000142566423610317340112141954128729797151160802509958562281157881714850491273788393091432672429434591020782058212915390262188848987127105177785485009550957559132458304292221467803965577748864840566832104513273778012644003657359054677490956072895316337538415888511782319007234583004251569424520539011020553897798458209724229174496316678113765144857281698522941999011950478746219342902531163076887406941936348079857568009610574822533750995574738322298128443107354234134912398616843534432094358058506822765855099675377118710522409097981884530981735779591190340074483004519691329190048573755626566219661110116825813542226477981010885006090557464337071499106766460534411465953021033309476997923545087642261605335761483481079853846144169472213813949538728609850426783694585132987517757821804780665170587106245043829227349752639276075890639674667903381122313516189402515656152850001621868443805320545784916172740103336751022172150219974519983344966343131856038911433575609578091911105173957896011681446928144823902067771771240465705119373092622920926137251637255322433576939907475316930208019864758843222376933548137509319349011422991900045342827824997174248047285093767991246742992205244981410102858365051673075083112185025297091324591896826950513567143026657749649242447372321713835266949549319209371931301511102375069913644882561051568659504333810373811012032118608600296056059587512294303163269027250181412361474306520546122235407022899972202312330041181578631025537505206156187078093298120011043613450508777531267100747244177167935139539485347152938262492672709479255476410963648849693257352570148132201968946828632071755050255020907764248214409179368937926536780595145584434084806401082569584396433374104986787173230261218271886896587684572577814674184038666809184540446112130253983702098355895497770620489438265685771778469700443772774068632345629048186773371482132160504316370685425569480871810741662819058497131318003615569423303043578546608710200222263617232596002871724626093251329236889108770524517058900913110880245887917158559439632773121383199412343339377399832526445458498002189745960300535180558343324985411720204359805760997466344868937723501489672838491985530042603411226617445503918857514584920662445151751751319115619530693098923326285617986546652203784516248717480534359730218121572031980521033511673256511984041834606634784085732319432080110806572254420509479794093026528840951242497598531106593903384728932320090748479226397764035596905700246646200488637399460408306705325828638453217287049793436724782629463305519093081870473848148885687299239406738057954253710453791920466219934792897503308023674518662383561656823171570025394124407233065899511444364370306750303393722995775145739721756276389750731724782336141934784711965233720781886514046985119545350220731937113318484160620934558341822970453606893703451783374016489255711443361077347758019343588480916829602246086143370515599354458997977564749372203230201582584860566406687960453428571370312560880364615293631378191780285511401434456864013267059562885928829781620550692821032323229344017292190568633955925587300556222000263607973714223082058522278589525085774235396426452601545011605989748174210540021089455220188570285448300990202284144354845794403092262984853111468164038191705627321435516729273828878333598214134835831462306423823509263046630210157912976386762709051718510349337970968036532180025418128971771330768392102173466838363349548704948722549196643497726846763249205018633094923316701433870941846429380133749565827595993528163542468377139632934831801633250048473485677050687329375201259965830222280166759047974220259992950646730177981147430038646449489876436937883913659607083698034574561295539042917938097029840889894678156213207779346548776354817092156899143071110674512893384797445348309164001805263970736933502754660587939281420308324715711188720539510942950048067600857543511773782559517474559476219511806961489676955715005719600812833403869205717833243461633116311251427090623285374100481336352714143151784857149783283911739648045678555629947570014825961771928364873396193550351513688048882221443274032707540402091962644021928029468447387308836944673841911906045856059792356782062445320836356354012630835731621175562036789380796886152687458783430681831725684813661653791369732964522627922614647228166110744613481066183026861913303134179739486716581191082154909829343712611132812837141938610909960397559336659681441861667042581753720052168781104578885632816523568077574286529814217882607003350457302905830024810110794481743646305370664643093644313661348255486830783345933945472228935946820828999924824675232918956856496766513669208747046093754335374555967191367602652950441214981482113688875940649087212011452842811357058023416170657932240668889136509434021202964230803885151395868484463974642052569350075006284019250628433051423452419755002444243899268415977105024277669644683480281961868260415476978827307458319637044530541677263150937345148024311427326025046260107229061834523157100310909924315632011438217199021280754871918514792711641520208420157642373709569485817112807827106540564605844898461792800698101366933519371084876209383351780079916314394444611806913628256802814082067425191612664666550153088841579160222158012745012658946774213956621348958900294216053961361447532707602771327874594551864896456737501513836062533267726020029771369873352005563415107279498261464720925520145655945082639367318440464695912817163064140688237943270524561971729277052501541409339830872362672377298772665924127222162111992736863988108417527597387604221820099160989152099589184163424913258809726124019288989878586134539995784866787870698134740510987324924477662691567400078369416496166988118411664595632037264920744089911195646092804468421666193252185213916489516845712753252647884420251697164779316790840102415139032436412758307935173112809758339061481383182248289339428892202383642159483717690424667842224955546171101745306445396191069308907021594013461731335589638012252316952536080143803967670656852577603927766248284084627003654387105632966340648809604361007308277636963529648409409173806706487032657588878193964893007492004433732245390513170564227467046806075153511945884778200123081247097792203804180309324124474905197385127060114707459885840515223311719993939617519360199288005013237589430408468304495379019448047592766104127872824635796452776225921288358491790235693685275514723662409680608980627342776087207808818676261241812014833634768993894027091362042902870856358460538339532883462705647128975162020833190817604888351999474721352731077008978762418875839851898385127707205959264850133222147728953186975933056352860051499011490041796331313567183896060689824766515912016803755886450067298247207168837663019575917887824873869651808824840356107763596648951261216926557778428671987926568857305240958492147700825612302298601188863908279533669814276745019928125978344287057244002575616632529009997392444783159367560192701847871842242256773405458334196714083772826243406736420159722856504395847671650488786150018187149354346844365512552251244238070458838960247559826875439191842381223745733671651135248762345892258149351560284932898372158204028841686355745542179793357091442989380827377483640108554117333346712915175065689633911228854136311715060170441201960609621122726570695813827318698337613149219936768569637343863002113706778976529436191771189011857495799903292643060497355735302336076144301177545477578622071379058515639003442024218444731623424147182193213853722094089045748725277899123963779742408460676602291468079990619264431794914075904456655298051905217742649136757731069943343928629357158100094304866358550857943784546891963794753014797733301431392422861220784482754575748767756616976567139220370378536748851956289349119482356795637375102903853626715935876002268272117510818615851754937042348570439554824795754552271692246978052420040108941579761797785383417625700729867102418928343672818429018521363873587204676165869215385030526576336761630595681262275518479126657480092399558885420032942797932212296301963752128859229725374383251239967573533697627291507243832992837024945667209207950635094858961095004913780257090656730421771879973881100363059564640114397239414699157976366277071502706797695103695347815453847684843729304598019587059228030354294900758252044445976598358990011209485489339110610262655455172548141354699110773207538333695826225284270468556573840430637002820770037356923933203121618671973913619488617339236020952909455563166371355479010618533609651546831348867712062442031302894569894964476295602102589696280861180602418111200762136129734185145304117220962267863487374425129605850124560308364188768675330967351539234580227402708303515377172889542983225932772514069358479030803271424134126194447019450028744042127208221587088158212536464151091213516421970111229870025151041611456198914778134763219103032314822293693096429025508352808497637463289321568714321474958861210609933522970893646997204143026107466936166972472385928972749181901816871485979969633923697708330620418533720506814738889476603332608347715418182725819731607024598055867666916754078907004518481945348870775579262261821789061156666209140679760143531491320815112821972053262110401707753853141573592246693941507375564577870850529226501080051654471042895521707842523638072856084273410628884036877406252825088599674238450041373525822938561855817232947390171331672999646495743512583517105673125920144957632850731115771775262042608568333727574015186087774198393259760980458402802945657317827441158023378373219091402689635130596758491990158205395433107836513365333668365966520911844548854034832886301039064901261539364363231447634852560708851775653041822469250858457054630201704935814008103632648963024545769697688600319233525845010341105366031424825377176677144437830504270688638014787600723718942739332233931435637853260049486355092090720538544972506486394069478338094239768803543126127357871690593138199978467871846286259174826622482600237144750172391193789698759070650817970967061357443674925220436226564666232229789972033657895909886078232952623716398119609281155617809588295115837411128780636791693136507114349751013116117493493289316749907150818564914964532667457664577475598582027631550157536835682971586759915435364341113095062778311399656562960172721862842601922246082304126017092542510733921649809733530743157521011025075396017249603969975407650285618753705251962566855207623687871406468015498964852747421067076325804197628183015466098542628673942610349246288545224274001230328290388914469387767404063293475428709114331953012676077936918938311355224597099813961422025751426309292232361582082507173290176992921137671138002357704415517829074504460311828809960616833668692662076608514286191594403204099125291800286630364613217566021515682741768326313329299446418240106282861625047441076696439940513710432496582448109465134756365204297971597630252145787795342175904752281335188755520495963444075537588881969190083441555141529658393760797662165054253149811869069893315985466533763009888352163907533183372082807813576069819467523951304947211830419732424012561935155616149860510735170671067748272530570497798542017509533904990351447796130763604286481721900091078056124001310792524866051793295264882249646230964983051868166498083183620883164798304894708456827563291004797547026302853100833835605825496290099772696795790622873296555452141677592528585411133955642635878370027306561504962398191806770553065646706015522049105953056817519505506024940249532213244178017198335669577915499170494878292074509635887263564480671835147016618654422401429466901375206302470660721555487074431067045185607844170770935851469956076527397442774181828837719012099944991500039308409076574166109928452087368810183373210262940240549300705573697929646805237338762516083390598173583929431043502137441280134522090844038487400288667439929272407511746944207190014300013258080549966455368536692052913775571480561698141637151433645448143353384559894425599851350993939045370858951050162705463704783173933341082884360048581305437951950738522922068329794021430655105089442963007534156735237025891221888114116033745211335330745555084759780388579131940298788222021521520457777530991116104664747058362414086469699421705451116317044933098647558096645118392147065934054631687870590138319421953873279287390179883354374723374715467762911601035821459413753509359154532366466102347258736030058678902414510975008244409257780540852331894303913794278652330910853256507503227489242754525398421736820795956912433932692683249382706077252381987243349649822599010152214653845701704207333573858692639118161332637519894158333099325578198421078045408084118988371612845481753923323222852139820968556666867324218957344477209729389603197645587571775955627203144969314933327078702121926455750224122044225122793488122298973908266043748880238471739753944106024460257141620886122533417677285327354516239165470719065002004029706469582516562580848357186239259105974781360697395980325374412109950574566922787244260277483874876795258051944560872664385411981508413128698400956413129851422368966404034540162295953142243561914809102142281685866324912884272479854676069497584781746198399570299172066115099565159043056697392335472274477858854660317540130485442312446987609691080633198714711674786985320290629191490279753292075946057902323730794659800838251576401161945725828781806376637614691044907737269456659243465296380780427439538155355211554206627300753796084650388954766626340005840231252987712534620605258352081113953218480232647556521765375177316287638292272548536507670809540970439836336468384722684550949774601236705902197992965152747459817546702480704189365268896953178017419977185093711530546134113803243810245909345303557993085202957476788370022839136869344393731488043980001218807356367103529245089769661851121567055706346540717589288049124075108909775025107144671593160531649474442254533284946611649980804741320915451439816997031858640635527124289136771781934758413700650599199035902309375939003170005904459041747944570204707831698487773758297307301632912851007933097784980370673635182416336977866963993388761212072135803605237620086784972824691175051865142743953728966455770712585667907773139524795009854319878541524341969641425508674416304109483835602790389979658650154953081775525415663020255531238443156347385395746808609535927553586885628409635956618551837482826903545081437939800044934488330196204507204298975801150286335671112410552404093966303326409920472698386995851247703826734953968457846516202289193046452364505901494566664732219169606629068739080580189267330305788730061983933193764496892301015893145185636537154996634735918261266461426205073531578516850829851483434427827997154850384769015707316912173285654898063751948100438601871141282374985634699645370953819360756421344765980677164667605438215674518341768328020015172433423200877402912140423914977455532695876365472503404634568900026678688152044354804896762661216250938878350868170629386007034312831823355421630559702035433437993036192193716713657055091387802500286624444604135984025813669741710469749883462391147051469806012201636484955184016904893886782843408719910315306915726416934390840075065001200532617158796068645316403845774334788311300693146859766689332283825048279798231023772843078825203372116777367940452728550534427951930464193165392605250082780446424111983289393230990436665261488314314585216574679011836753147630222781423906834882611457590075423465835187472765664184344805482596569661922745566931413124486905426063852452140114318572241398352935031537938312105450816496492288749492635939649111408272163044195331842766717912639329136355073012623940677442986818499592149791653405003248936537247769687141353315612573552127944237545532561302949476757739481931986564955944470167260957408562805416251319432555157789027061165525979586645793967515842460041929864333973636978838561392709946556801927134696900479822882561377063861094783925869398844124044995793240903519332241225412212549948177388629911004264384849639429148243039794874792474464409522147242509125127477042222928461911313269749759537404506747118083723762002769304990717792979003005322840419990929068142872493796382677010891375308323721663411321442482530471923531189212110056671028634858809588025730692808059138144306384562125742995114623045342204024847640378321577663420742019593515997408374385822148214540203170271665629907705837358900601524497246410857320394666714526443694188873779048458381408323269344173749111611126800936859086259676649464700138194288567845845615667293864499832901631102268323564885571802640490703342225936729816555095197048502035379295846381924188556416516494430446562879697301291739220018513225593094352418827884593300606459084600040193892440898148829754656550896454680236670490743944558042951999554949431531171298217525391644628125051872231246315682832249458793786012812774321985905812049021543287081986107140706854289809836645159386196732407300015630124447999780237349792410046347217930827545492127695335543076909341246468761779491830474551053989466933335925957472721595215494217635328354154507754942293363761095103203812108575240820938680068910698117885208247868963910347482383021735374993882146869096141823661542710425863554633085292949341587530403387370247481125338498036843297278511449716642749909137001545461642580260304105756079076572134994392445161163254589732369704260362266633073806859916364699428654857147999804027520347158226345730992318038326982286349677777092562338284426177715487460393873486099784198080859662035686775726953617344738966563021130953970818296666487928353780478110963164161321705802625455992502580050542341939764472933707153689545518421780241249265948504877374270388325526362575628677504471229160692649388007078876618462931784875239706746624676226938946132801303413893769256090803827726913485344508898326931731874429845070167697761301530183714405259845801309418000870801238527378318041073990501180753793521913900327152864607504997232190647843859291379996595490436106367504224998598218035705243549074954442676188549006598405709007160530844567463159989864494768181801120954560534729735551389232757286274630406445934991872929658709053235700025282736813548746424349980282590779062659677632514045264155661185600607591503685644163168742715398400651686098440475782002960515516182461932191130348994200599189987862516401862922169445997343446162147601719123469800234139725536417280137336755058883912049734212367830151891207857211407645927075581659183173380852847658609367031654350147358335469260718230685034396349192203172923476434187135813103158622228667741517227073328836590602608131749881781935861281601651694254796153307778782487915733004851881988030787139246133190817699015441176019745416689507711195728622973914383350419214732865601171734995616757422481651381915581633680534822155912834271574730182540009164945531281541334638538748672602611513682133377439787366768094630595441399017927851508491603563428402102802161507598722934376653576223071646235214029090341464298066295731816116154034114495082098468301213429278999176829928868110136337413092098079836268875894862897220228018217689884134999686575086227497611200767415581837356032096773814677134968770124793145943559999914715986952228767076395896952985221863320249362494147794744082747041989491523171728722452548239240410716629438589397612469451312462436742904457956779662661568971678913872412778415289750387087508591582505613481257641541160372677801393891394575169318460073128950187700334903218045629432044946148237325100886641653717473297879169230627804293426346557931077257214178318592621923339418840467480907324091449800040732115884648958025316675538314718948593337318535163864441755147216725469497152711141749024823804991437587944872003320464365882131335551734519040073114482751664885036805962007115925839380084407802372786641396779231841279710162688511483639548086862046509114578419273672005884595164188742096292333244055445576765337204928246574269956368681316533023955908254729853852964021828241870140686125908670717527000506546288395086071004544529057153125879895989556194006991523710779664720518141567980198790632407418237611463136038438795802259194195670651932558931752125158312576851889624613004201653670519570471605363009322248326119602500222047748577066333606814960045908606583960100511077800793300847544164376733863551137142232282858873923893078454168123721422505289755425596340001301398754147715023132561630728763133149573509487922167670690562211334430608281863106062019909993328307754576251886205270732848116332053217243762021460519367015720427296480268617248726916527628136116869145713046281874520179559474443896715634461689005835628238466713388638313953334349788553436829638603644087541606997851334102786039241890012424261983223913387229701201713262487662599073971223782137425070815387399205789108102247023764188218724189444191337976879915140303355592521466260383652143048345482480284072557696481401792942990824892405643512361965356488027284614796625300743969243084293111850402160247986809821843478401893675799843601022466596090876190146617361721622402260019546581196065169463240657082409302881923868487434888180661226690077422484580804791570641615540271619969568660339039437326877027104644978043777750290229747248440179197299303692768025793451914582306621752584370052929061872030918626052124537740149417489847561871263515373788338925084308751878093493199775757879832854202610248122417119430418000434287036561080454683376163477566565507990097363232839150076960669263218804680086040687848428834744630303706594674213347827112131844151784081403974415677787137739291225561694681902828629102374917100852187361507204021175335662243610833773371981566458514956352174715949051595204737761549136711627480662392300234547990290258653001162632916254994971376653385872687150896684500157568814685381738411962301639623412313474486958704469207419917588836178600848863274714765652507707991165501371591591644149816672418946526712266100039323261348791063061128367189091489178457655107278369084197807999819192733848301219806723657702164949446437265213373266176323007924999376324277255172733583737806241816636875778219127326354256303704268438602798575387826387439197753856605455129361337737715876347665851889075868438252633800056653981772010564801307332352351722241215663503269539788242090247235218090178653780541643064201613305576880550397303886000433084837087596866122578962869932984666742085295298382977641254585694921401451294374371446612436881567306941372438936838390406051074086111096895627476413572539885048005982044582603334329226971242689425498565218650888793048654200884203936986413857620428006556924761556574666738498515650098999397496139631027048899935392325593590866925587483765850681509638584852090282166845179151562747946479434613923019956425396810145595687643963790309897286896314977210942615630958985307554511802023877597744787880492551693560922655696629551784735405411825502991070386913849925418120493800076476090322122326661106035355784670557875531884948142736185982990318236790495240171128444032118870554508441383893603607417994685623306720318990583930248335889711939184255864843467223949770844658500580666421474743681743542882035043729855671518003642143922550264404023972598405314211437201755784583848901404123914169953951221507874512441260108833492941611123219772570352787810267705715974532424650639686722095317206044332386762927095885864608342634399879753644775767717716874530664811849091911491676539720181833737827785482669702694312241246400904753161951557696467447492102791885944987453999210493099017905889936186441543073117835260476309365976181100714943233532981841466642106685049256028420568101472910747198431488220845782883081966582286447696302085153973650380718503974907085198075406358495927259705440027737678558552671251176444212996361990427108804508175141553505141266307103055839177325320875909899486557099932740936376456692495337440322005419535965141122323522551803998225073159024815022808931353546987414585823519671535674748566999565245344710748237161653946408922034168882951906384885762227432126762439230786685536092739928280010051146997840040140472455604727373069533592966638870422274765998236493271792933272126257976556809499776218229295875179861863973589149416235930710483813116515715288422326461223827363270659907394726203594474374066415567543490899665082246556625857865496882877306877856972651756166607592516881836440549765624156373714832276872582342973498007810855814782929950932582559528799210786636795949070191475935758223742162603832974376177775946175321254242759177809374737171213004473994292518273650091102451443466121573478885589039981712520655615620416108685840821340653597856156040839415542907751066002499543052227843022692706101285875189957259844015651595268743486582444090105117988089867796878440619380064556211783606152305024006754518150722918814371283856719412545476167788458577474634493127379069691478521143511170314673758622791189014367130120933418353504089658143165819515693349021161490162436836794256512153518860157195835724536016961678805757528684964590207214769243864802755699465981287754696792938815638233186567522082477094225051721847835836869854443892430413626583465802292226694914069906668432966028144568947953065679283211766072423281329331112796674090228678547868441657420123306462264084469045753923386407324787086736325326869019150981106787079469606383371680348228912520929613059700756397911105607521907364475039320779179707819745663731634654518368865363719699779141417517182048878738978921656726511750523547506248287822301157560370083787979068992299777767768006163954698373444256470532002847236814313641542369114763855481387038768587609301147232778565689818566572157212652462353540175107273828657352267636529492347750106194239198703783291462062364688970422196905536613077902614475623058887379728892348231464365482034906742857079936060079863183342051068515183352995760363569422173013782539115430156648632298395267572577879919032572966981722299164511987861415679286492388161352749581199334400811784700646990397556573229152174116086678075697594460708013603656008003058591098027672908012553355887350389563866230969945817434508516425670851662993494551547736551567756117111436439919274156653434407451047456878891547897957268215180590219358336977706756888954365470712050838669097890364574745688452479779836525843683833627178650737580743101553623958426437349490160444473882951647951507696492687076242582150303947164038290337574606424860321981878660302544860610229288309718148646590400268641995072023317794715631229933083452088994329588477921315349112210829467505626866457867406312660504146331700116439903536475450196490873569971287879644366936743437825317494823648437081519691173690055991854845512678859780008140933834518729282645100811415804434715916630285939475727067383580070418041971704632769810534198038005693708859854350447710551938267819586345668934640608586197855483466435246711493746724556144715970592327876859937772851310290098751915707299590663928380877250717768227040459957965114529971568696480983119989316964861712463789762003618321821527445530108240233548164968137059979645950242478850043803322391619460069713950778988093293846874704806299463374678792613235427976861335022306192828640497578526887061508939494042396531009665200451786028518316845310152275602096834309711060446989591189651201998100510782374040580908821061931640677556716240440951890605404217808025027948595458966278605376909024510392887436335310810625177303848574535587483773555664084307376551719771557724174513100153875084367237693340720479885520872529824132038261901279102367185675816673493989913213052606667321927995822229153936414897738116234273740002775895650097751233133577821238608120704243240844984950558294685474141590603206543902490120209653916005445113938260502968823315773106660387622913996452053888982170145360647635312505171243015278295251991618262759875874179622157433998101077550849072205034226242135333300149344970863986652233126702596320103635429537897938917430154663274350484595254879868646240674622606650546594110204575023434391491803978946962097099021750687747372918591303125531324759550386735698825732864186758818933971228917174315332209210661305004061284350583853322909536223592691058882519218124620132366294113055001745201439425497080859724683701928249860813761618214645600877591870204324789366439932806904297247166161831999457344137875352180060035233271892410580880097254633569821005967793838791406551980047367801444758931519012719685936597319796436305244913782855803913698072032190999999264925316585278239972579213159909425451298642897558698781877409329815273955842648783395656820561527557222045870537522551037851889768489497239793380099605307434226182214999844958782701031917981193087462137960900967921703739774128594788829244609155888236638952588634593236993458930287106977361072563101802570534178796920226763531575047277636854780757745273983328228798992725091719118922462383721042976898111250018004219245675206770860309226183376453522628141210302950140322027302498529759309158327123366598815930303788561789586478038463163935996296020133728240462268208010370727081157361602398522941468136993979677978546535620115931769179744352022817125241060815812050919682188319270060657467532851856269161992521377681841274380104190288344110086480059411318997206458813078594749395504534921596174960020177158146055790447069682162103040551823363433914592098740850190298278151725388026356329275626429066184238538300798951454824029014509575470749491610667250471435528039466700868975739821116406156620290541867464362892336490932287882238953825358117866355814462933946700624149571398960303769165023273968766243686199970497377885732887613884518271328759945594259943132949085253354067249057829033940946527812761142781298905122851593396878078408602748582732105949631398942351705908219590138874007164521818924381002936057639972624104079404014154847496231560291891420341310683398386530590426731704359394188884665001141828105379529086017648036471038443231129341799838649812000926142223250845850504618627777118048788980870716811177222975496011798117530895135104665741512279573115032183739842788254549070401799932904171675870067593134151226390232778748982275341874545906377099070795427943435916691319257132462239561475768449876913426291060984534349709646288729553708190851318291241089056299060712146680507350762122902497081553277559733354598783165556499902759387273440726819569512741759749635432373355027225266076832133911225321253930325870561230856197718328170474620286509576772306527376350572362925070623652848439539046545679280944360199580387949478647640805240029596403280398143292858451296420200941802433571364931394983194340616285929823281114139577802746916361486232058116796329108556201610151542363063461046992513853987062232624339564408348383147437950538142659957186838579938857259979278442204557511069694772548992067892857348084962681904202347123600113760304160950925679741576405583331330261746261506053919352450666209625814826521504571979793734946396073821145863179276170438049561164304897326969489028660823115257152136319694468551939015430761914520725345212042281121549206835745669895432469319593305822633597206414532132885946818990820512904112935351788137456565047298088596968863881284692175279778732170901697950509103170400013572527942006483158256452022901726701072600855773912074666061853832173380616608750070712343428839860204825136166055215777364880033492097042272556837034277290984142943472413753168615514031776943602125107268763618050405604122110626040832861600071026998851693500060409028160191485597128014509514745978343245726491679120554109644016878589604242565448990309192134537512112404391540076241084547853153002876193141843555185722506824924554922106065675203440991705024508367155211806198233183975363433381201909855388757982150204609377620832491564771711160625787650630412188101007402037263411036548642861119663312402927741649937961414980810593070941441324558982998787414779990856047735203034804442669650337230996076539467324959541220796388194771875254204472820226094266735742794782555035391833618861849918813814513497248549381097765147979579696872266600976441865684213688150162597706043392410332798435700952343858937191834161532761717020452879209984578195191374905903997515319883073493497447314679003714355739792705990881443146165795426315971605697177581101840210071788851290418788427395876410770505501970986205332550589314019115949120563153179555267697936532964629357174777176848104393885713565010231122006321388593009344731283473258991691771792049653052058926719843692376354182335914216813556478233333807895027297688564679828092585868296530815367885835484949347457150813010825722438027453289730962444518985573341716668383452158190231659041901973410879037561443627850836760871574379744849952560944845754347177695047521676863817020782494493839013222425752342678976833743333291905338282804965620619048181864063360668680287183074298776969748461136120357519087032550730393479023643785283717361371551398014928314505278977814239798967729564757229082902485169622466481369152964780134562898708008233327502068283760734824524788839669851874894784704838106661340953443991637280457445740978704472203149530858185682500251648886387749787046129717679187587530001754603932323777094622445664891107672927387577612368848946880054519648771108298218683654688677653831452986030590962712532182611642479873683651676291303004535888128419333987498889307303206240787767255783944435733501791539804268549358288010535183058997949059477545100690430938929781235402717288617836760972695488883891775606205829934913924600391241400054503499706286864846266293000909377689375998765981465405561064619661919437715005968651181863100088565041222636690114954377098494830722628757446696602611087058974867028940047586545905247098691329356728513670311154283727948942402483323925612028740950588348112467513385965845525404174250944564224471338289180727231071337939052174773651780472231661887397326712984447283900951548552061051712415470971685257192944372621802510996039419806416057808299310190310679821872491290449811170270554286229050566336417283927231656642707435478817617533187947820753673119864666975970967432220058683470365799751168437585187236140790472782939222068266008283554767447038012788475631279583554909040481472801169128481757210767896781851363454910930287319808780521079864712123329481268560416781297277396300854086699242199547026711470978449073054927778892667615018535101274384979161034190219636721241202748537898966086772189547751692696284231492683884743987821634809154032981139208039565623187728659707518953406162900583955897327324866983957938289001286303359323146341167616039759630043486592048025172302697835796442247512770868925915622094810260905680758223288823573797450623534106932561597726913826462213859588970446529570859520990941077320891946753715565403706610066312911063784062982078105758051649534543030274989266310047023485822308196896798015322817334094227531303248228581224227138494508729999198046587199109987628598935001290570698609248565766101153790714299211903202690652566437978739276726325377396704094298161074390169014149383726112112753568354096733535113331747581028843038078713388849435274676770645872988983392060733652917791251542451140751669459956892417042871896212486704527124160091903318795871590300822939900266070115840489566698068788846060366587005483139167856542194187202065212227046400410849777927943531161909142132870422034941299444032578661920763020443823895662061660210938100504332475878010748287149099422647672517818711922849326499477315889003155210115562580183202267931414273782157297375513408473112697194151152644050216816741834816741856270390426404661287748009739440203737462003150928655275071010383003612600995163095831248244952192404375533978333975598400507279271745294207741272680700747152605720786581801229246644836288525204917053505161413950477671706629751482539339691114697749280254034621354431716362915740085747016675784607242646657772538669239896254627258652972720150826044538192419114534927529021162315868219359979127273920465604001852066618974864479869834089766130311504994488882172064118574297315157471510174601588764345908766242148738516043193282393732896651272051416372563743973099838119872243507766168582247863934207031746307827140316319269308290202624477042505757790206379010435759201420878153678259486655993570591646048528711288412115251761467661881022190961487140868426770641593077340877333870517739613004121081542415330792802380399699579295068329334923596934713645859780380516830332767078732354074074919504355423420902677869980089705623840627436612447783984584733666502970725062920212884495779644948857121217224489764067163673195708625914366267402117274918094470757496265328318262170249227606337280500847381972482329314406816826218866796111828240185798288425996268665736349013010736947657733274864507859117863281190140135341432975468321237684974268204294201736933825727619947689706628238825346364986195446925050062404293887701814143724791421405085617370399970293588232312759795087832511702646770496547205128254218893352887350317667961573045363761717479923683996890823341775061029169039600061547831839055666863140951026572397319666667919779236871713568531984379625177694638893301676330518751962595930168381610293331597107457423007870012031179270918402982383555919154743210207020007178828756889561364618918498492920193730904199290722854802061910108567707885179196708135062894935280949925972467937849307173806406328212169165975825673643373578587115186801458432874744472827864417857209566360683794247933292304970035009245292878757274720762359623847104524065440305223585921318785715793329207811048667826555585340619666059389245433883763266977227649812463513554180114783819499727516674198597653875408218660509251464811125471691356974489712902508048681176242188207952824527152195609565173061863837317905804194367673407361393144138172786045474678323216108097610383774598111716581948481858081478038116230552626121682852484056794764950027052628196905807128756139637091206618083472314236952755609244882170257631059915069166960446818899852304050499158760015598736709439471955960404397288470252405047872980191186326975993084265539296148261492846651177817085956348336911885676270966628565833403634791364641396662833828702075175041436588642496488978004484650296363779321504095359427095112533735299260691663729244801160045511798049214837575596852786496352270624574960763758774563149234372921233636633115296766049939682710638536192834111552044918770966307520232366035659864361410478227873391790089013202406963227562546184499083235059152183038283877031892513391333222807016256363660303421593134964209420366947246923992259206140773170742878078546140605074537641358352773187890462319310328068119206667925410407704432244904609423616691522823602719911722038934282771264946436026342082674103830780481624062832600905083205372638444797371326146388281205079120309124789771631780042123717723329076573743303209093897811963278218943278540737556284326135369566092269519505935405359977532641837124516864904826657418798931876051403543693648958573386944289693693309774748497844194032149211301374209837166995412001493572084266821235325885403092196717045754755994271900458468959157317862167755953860253614101195035675772121085770643726273569169977079912030129961412453953837109341772539725718811951246714465310891154213823840531167881404434414481675628619195740136577934058338350993720277925214560920395380155315157307219871327467236400298967407453470952456695150029833443887553144754452850017900912576704672158120291251608880380991288643028271987550991930982343216809668395267369166548427563927191486262855806686255641433497566390478154719699927967162561174410599109783323867251640452745826504570399913349171793394804921726175174462169709989620276807432262149449683095368276369499528259697469282649091211537473875671273905298873401479356816673248751151987256599363079058951402282293549616893148231236001808688524176820346596308986733622097431623790930692054164896944579775799844967522960948308831981619043176774687884281339368430369016025153903292104681052101613472834362607769546067098133833316059673548734658295645580074148868050448211582152619819868461643359154638478907068555928621748043285242743111869946274186343685644458104890169911129696010030196409036403608825326010202265772620754367072554193085934411923603008904361352303265694483244489474117457287813797821887744060904685192195598726756647888930249376691938762657707538082274891771509343511683235953988419020905324313682718325902287041347586318610438314753544503023082483032170135988888845214872558740072659635265661613564909688050533231477279024790312249712530282153870427290390261373047219657633659997215153235472639673513673512558930414977345582562871157043627381976374324743242973692599444093222553463975689393297586465262683060322513797875668824597327663939433183433541138840217177668811054847077826493578686940743064622045268093691963845630647168049966150161619491998871693361524236244471371289946863603344816773023283530055041211664479483151571397827083952471262599215593065500783755671162017829691830935598061368622655431846872335979374647209141533370516762788363336757610022829193974990865899596575070262640611939154188859888046001133323850765681665882947342905119036615865509823205580076740997206297323758817957084865229931247486782063290044831251538953153542201328307306172234662898773777927272692040939824966132024018087633734526861973467452558457337824939926566651843418780529517985124078077883707495268952128116745952244667864802705084058504392175375636872973721895509251149976642366784394151743055574188603889420898412361570672070660214852312830173339805641868071164518766456570629701918745598260827837443531483135784604466675092787142175187586024721719270127689162950961056516111998473334973324916289209346654607001676999497886866256808569570301788789057072508735449344136241492936045067245402538690230303961032919149570977414313709005907519940913883703619034637136658219231483194360888422091023968958826031301847346716472056381332478285323804316019988793037673578623739540976690969871475096341477147810632849236441246529472909855836856380877025208571390979962697245432786077706643664906887040458699126555517002965717779438313446007977427252951485917873787764492373544347055321642954049164873795486664603563493038293208191398953612028338235350246215803520940057192667442924469633489703171626147561450673271070111899027959424629318184719974774748737368456999778922434650380952878927126901351188236088599683815232136992715604600625101934342769794653421230697638118064999419142581289590240360406585035100879016086756129008628567949672656234460057401686600277701640028579254890190556348461076409953767545668371071114359282896285979985675877857874763786770213027598751468353799731998203392534066985368272904369100803047567307843446678338293341918870122037147841334559015948062508385586315692770857041221698895621511955934431705620426125253399428035801818343091106188337285028741027196218373094970819467564955199105357666456918602787124066486458526103623722127827531598710358334738383247689524290373279935013269684362916072091133801056350214721791764665451565074767677643288240701933263114491021897144757200171232820164066536240114124661923151554760148413067471663881935120637886213350926591350671035103229568394784937186384007001906649266755585401523136101318329400891425773856148106377395571793471399133811404340146353272046959095888295044681307942083991890332615558001301584620650362658083633172860048009004429963111867781314888281014252222850785369921958487131496551271869655257756892863528158071820242241095892604299298693480603063622098001779585614721432899625954794436547361834184321266512106884160803252479610444779759353149561573678321411980372312327184117033786790060907780778663578127112958261540138018260667969062078907425116446408228770445618523316970875966484321468654128149078338970123801205460110180344892306768028884806385897697288403850777006452447697891463453819840454875588007100903185929052703909198056295445894141438723713143528642732105374136034372189147754557129290135462531768577065028760513516209601661903608452477606261300134126623177192440426046562163643556145083821255049196734337717500327350770928905743535688346771390221956308782358790784308695906319322607871664464617586042662263935575236512090352401834750077942986492765710200345792712548727586560465982159417963712407599677590604513288521607101347101004133617708538604744943733181252914751938067316581859600689721810024841417749091374918063625518320731365063619945887307160482251522246307300790144148470420652409230974310668199811992989048530504845166411570188350465484855743632675065841470224045264975031378659791662978601577329731853625418109205432988346822587809126382407470395498504332449728499155965329558806769952691682079712735098640393132929421070174678168869001498305084948964416550992299484539202863747393025473735139697197152844907819547814777707103987944002461699335482803995323080642995154915308684150187887540934030261554787870202640751696355026602895292148823991787333931744734659133717464406788084810178549903944222936602529116185832021869833363301889602644823266320912280374967390921028844246318700841539858349877834053892139517835492847660380079528716815345945363127834272453432262803474504218194700328806919268480839419008738421496245588297488302541752499103152584075508703858473129406763017062620231088296486780062820647277180972731052695225808467628201795284881065172528735209584238854112453873332825449952254468943851538390223400924818464013510176137559988367465331174877399438832040813766251258314435333029223774137433852515715904757592410629319385561277204923642069522825725295370736265851620168648185805409226553440714330243363714043868179982971778761311045479306153014116138277550834183527248236714770023434990659240373308518375531638169864631300419690786020530286499720540137576908307706445302770116640967619681001982995161155160748703379151226567692949301282301149976178095469475727743572576626586056848183778074831759059761951455027073573671273821427136153191654560210233996412072585063776367558808471097505848776899635812824406986885215875172195718738286675288197078976830482446740578219737857316261619600877462055930267405986558377068365325036726566063411609858344273808930375357148454448813866185056112431911778494330683920683453525821541083206763252932115332777597023547867375811190756768174101901405134837699576364290160677395218404787604165597487867597616426851434403421182399085621021582741676546521500560919714642154234125516591819057899332832103807532743349130812172781377531022002923750447323143624216924779500325161650343171956654144870710331236938262292780844461047354089737510049673421536102038886254427279882742626879460432083536105439546495736449378994264935974581693490137714681382363498649548874517547881922538361027457681023614993712687878845871507910730300024908337786692681357576015433463580573920613058358201704066589382955887993610581383101264983159588524559704043343324146199432471563287039124931778634928778847802262646437723559379816965591301486410486868819798908378758765903328038092466810546837706070294487925095501409406011210430702012528657935640015075688884517376622727023778566310019715109854271867629221303270479909819105999274103828754401578037298380280520322374843541962398489057160389715712853583018000348354761421348639435832707209528811755391404792084294750393983778510722861681349449881331976214694122375916544235285532159700184825308808044869404743985772279653361407238944146610421659767299706916012536991243219324192754456363846899396076985437757693568795686069476216453679723443593121697365049290023405370202948894719018168710068487870823934739084136476148072135323895359133920072330926217484528050925439684976556041992166725196909377186730531724038966231975181453944579721213036611426635259794596321978298736517356580167759400739624286945004849039820265494547972065482012560865681322253026244943623133741162927872419283851158705499077478220415833154298954059656030016529872187106255238606836722053513383678458669627977253607029742028392220420927339116453698977806066348099127943896333909308169142019149419775255534080882831432255269326611001017228903157086233395230391547791067569478193891857915477388654424497977405644340887526525085102645346535044698885359718451331014436435933192176676607539420528606179932054175205496565317740579978831740721771506221278934248902493821482098566159297988793964211327438412106377986584133492513202167738148818691203237891920898762081748752943664012807332172303876060721867739747116505706973757063445568858222258132873417321446092733449252722863155173054647153113770885151013805867392354135518609569580039895380663344655389713809420572424700203231932838909783449773361754193488162455777040291034061130075004982224722826954361600048940528941792514866207620873978419471165655790378272412471297233014107311989291642668461018726656300081401675997509230126581719740593529272441075415666795712697258594893733737335304076764497718212565508571440926040562831970042784573164964953625477890867422536055522179200582093960973658271271385364196526140451942320460493098205936636782039726483788034644292845450270935170998438528860907645274544922945175812573996044185612802590760224551011422302420294534406052079959367267194159892158919355218076015540102061192689344580356894606571021421685061423650198948386336563062804828625537722464179817756006978802217605559392847590776712987142051261870755727825915726792377666504933017631311884711514960166974464498144993705431462599984761600805392725737501161115763437187237196931912608555643632196173587232786208968987724733869214478208922036394078131317176422332721472171517962780005042681940118845824240301169864256088908302416379033441051582616344851138944962353284888893745316613542849161600461865655934370480613780753041199162865499008741221745546754983049738980310792620748727956290246410201986637299759595456124195053567150824668952144390351160936990095510912779731201816406991883447609605163120897413003431199868588187113954293947373284897425798447070959576439183108149608498742262689207680800519109870252498351623370292672740098106375026823731401815301374639969127472546153812489055252637015867226410991131096336534941355928608407933112105920925830270358219560997498948775686007062162283802829416583269833974819485225236037775072030586951598091673305102767624600247585349874443528633492900237981387238891154937127402510972482573650304154421553526768045595097630549955876820145710596654998020278156709660052566645285895594429299089795909862763901400941585006481711688062094523730507222423169343079693381592685174025819713573662517098178091963543538536157863285885935128810435724276689380370533340509913846131191146366959224327979160624246060291640281146289674973097940382677294289454937042737972338685852079014736517534749352853283951728361089171783897371571799724925179504816189896442015971417075155519810924500045085297189779639167266952347434710611098618800920969852479266791118663487650175236185043710324290603014948232396176264502156472922090673373935973145191165909612203714484420387531674931234978776353341936420050336505101737643412227718825663883408634978847562942296191806715615081509821274864501248386866358306850775427559022211950367018882666771643304529459256881362186964451010724900975879410160487847337937141820415742346361126690866398832628165814446027582445580344108706374130495486147049084185258658471306449583793304971298852059183836481786291095838511626071786442872892852753844882493729454617843201838357113153349082594597806632990620386148541263555705322774578583220160743332777207561788439117929614441672984763794325974148273610748211382034066562760218089941069295504421223869765825465498825328419748197505655362040623707254248633933003597062140665059235819374352959026708876290979293740020555629936141529961862209593086526838357439300707603280069890717199961931279855607076716591003373860528005263264798511260571320118233496537113394940938279233664731641680181088222227988057660552024823554510477748824466015738049639380280848847088944841457166662147771111158857319643402350069163130617665765006561627060833733482566583798044138993619369568268302165203646767700747016921089459266384344489498633085001562687114947988714282966041156411556202563571277859882799340445902646392779480645881023141955522351442216013494259345275215291896332894220493896037087244534264594560642967087437239875584526971188801795894330606391405081999998774602536612276782626561469891249410344893367746043311248304410126163466422081510263913027517453007459144501169736573183094990976148791699211453867319794668981995182649476207811406093954669440285298774795372510128930899209530644127237251578592994011126679628648913542271072227943934197798142381036516179751635772163452403453238967441088191657277332234000452878467580610131211764607364973163301362556799670896860477452167368389940109991975534668921939551656005674609542191040521440556935326837511474902703357857897667421115898980972612322381607657540409375664927305122632286989912537059441692896474060874753222647953941641066588567903698170996035619366991259187151257479442266954338693541957504188992711377889234523917881695666719945184637076186548417106338245529367096893751210692482534116452842740799090872698663530044029036817376799151744502066927841048725927701271912013138373188938965324281955157565243837855581827160127344265173847861758662393642890047320001431124387178827442966861264963170506286238265059116065846628676329273688582466446776450603680924673869719798927620350624734213980376877280118549436571580446155616480227235389063950951338961842580961115019352920893450176117949239458596407422259196280153713844757423773039901638337500674408412156837621091795801358390284697194931505460082913316882873391139249453747253733986735075712621442830671862237229247372004404791076078449393807763645361258105433150946419866459153635020953032142418340550895477942849628260499910104737233389412661143047437170876038163174949486906305480515201412826374657031781478609754296713125323762153980139062277227844533908626297931113766205682954039487195826573020742667970166567480206143652454886494883700039962805894058454243430856446548973134922590951471139758344993368085395713246924839786784675105081295105200196231485907297509960077299095770190765685846796281726135998565716841424536013967110466968384248133988994857996121153835426158683969588653896980101948391362640666508014205257688671582547004174049255822810623756617942645047821142459020377942180513442717313694180490466658972047045237278543098131410686237816518925910790516125139949040852613378187436509424553030427075688231946646524541409689943375966667820115695403038891816701521022192059927844826720740400322697366305702733703373281838047645941881261633751484099860670369792584710052458789726406624535954337561124722969114011550531644553202093537530943917687259721139440815265125510645787651217461870440282196857550811633009540126215413172490452498303675297440703030491097794542663047946854816269976923197055647602293233317762210413015565231787089504191304761590212082926084854286939021115697668048557155298715137567878392987583297901407790042959705954108625471682499183964136313370135098500784553596935538341591723294253697006940850488998901481964335457381740798262164973523211595653063650080726268686884837381940588222392374529718542388885230968290534625200760333503585461478789895124278685316779594593053271799017061381894587761596458930448571721669528655249805532043271422951448209429061305643846541922440216607711359077438818578259813828717162353294055922426813230492258771034793732223945325476123941906226578898340295548997539580168614221979676187711149335985967436328684020952520939660163753018007242451458014741321952351391404938201366027240403773279933585309960859130966622903411437859120541023107969221187331378543249798314671116792336348129632124328294971222516642842077256114966283970110501041549004729201976273746674668434819204900427071727934019099501676860901385558934023021227441998350906825672378525183155239087714774707578829366946492196180532873528263682280227745457948530362226808846146314112678857090035905154685671946062691778165114729853359559130724516494931171768022088875851254175072398478130060425933627751310761692370453322182994581425265223836412495697624469079479970207736228860715966283288963041541462631832733034781558138847535235020695854423066822994552122409474036580098610836550289278420937512943237746206677297627596168428879175438165196266428249431004751050800049719202423980629433318021970460749234283308788582188990953529703157563824238996255968651085531679226972911819800553896843117670806843629747176161394071306355367359238079480276523414158757550586921519928158138646710482239055776844975976046952914167561899929716489231923632015005608952183701219864716770594985632244873901903274033072498040703696761019071937735655517554745637335925189791797095157271312841485492993055100377468559259306049407131880675542999927270305513977008200432791655508129505761995871860510982690619965504436174798523525682748679751909134516653682593209728295297849640821062963980617353366109438863199970832062324829025877936614762413612425353716068875902760938223782331590345471031619708438834401550656074796273544422540493757229738095859896186611375406006237781540940754680199616751022778191060576624528879820750111727092485014929224501847130431677902866790921756674855608163012952369221093016564229569617124602950347156003228199442851168406810562648060461231336080124415305262842340884169803264914571416159230162986029374186688621386537992973880102092539238774477259879112209310710957508869298196921693177561073709304054092986285002732309232381906150398119542083511590316575731870452394699622032875913683010894576917738249493794737545850957414205666255901479129381848604089242843875021303813259384610752183324836377281799014291516481686641998028956754514843642540840423020191374886787199765828657929812539709711554313078667714420127864934755588241991717046127635414394569000404155085601492934793876088791188127925110715411688265148814477568048325775265335849235021529401561045414736916510944527579881135113259631403434361592021115775285838675054428787863467056496653150978880593860459576059721526953477992211579086018234930375137695057432207053318386175499434232740623206519398718664107302323293972087836704875750079007086792116578248191688293694942222797359601982711963271880814087973191747932380741616758211153100062967813760179166526573578016595843885191238962168771448710811080158154439280431285040862294626938452903132645574650835462746286952646499680122980936833454492244191654596037928098928411539771728153535097659890595628936385135948029446779633191448651688322639787181440729683405488298836330968684647809764154879501281649595891635417146769181635111923569564933940350803842815314061613168057524517201010360111285111202348797789962446227590541696236638149806802708765697197584226344826642677558726810778732423736277654447080479846647922803836325812652308782504159304296334417485164591303846024726805711923234724569055480011375249353126061640330809673873212702265144602556283562072283551822838689260003534269344141014465140898919125901526677941855022550967101056739041350535992961620107335610687641869274430416142520350660912716366930464578649745473045031528508621092214826410951564119968505587859848514287359694386141412465336998443704199950401547897022284201216229792521004287206784368981926183648855901164512675738306540889769331773712018066140554495381073677481465162922249716010193529303513934218853516532900838398571565465152196222308693593602114350416677157749352947787289038702334435779839115925596205324042466899146433466752684912755000668371760470001410332202077740613996608326072394912464914719341297716764381739695875306870891082104288457756385459190406326841214429823639586021807158910689401148627833024999567529112233974164520147267135456447954693036687391216936732412273989671772313921387764571751728291373031584849853939330558209925442780975887931025286360079138190196391884476646372744818104366884427310158944985760434830462849560033355696830173485652618610227943872005527364916615282454636178738308067247372870641408307872921082783234881979014105238350871280279349453265289535152143028208795417470372578839858433323088918725743440264699773027017573235841343608385554715564675945951678053527303413958922124946876090925681324084804599615507650230759189416761803911622906696658217333975942971099438123924355521105817937361472238737467933212928752958645897420617204420268084618256954491122950233267486766998684564166731291969585759560407763949082145590973377990282066209481305498542462190951386076037797446191268762979193951267071074586734942322790352247121345468795248696028240996392362399831737559765394372622317921956040420330723892131638512568693551230286824294126831676196631864897167109305108154485627195557520534986220920068060565252956100059168918639601501860993786942116434359639966950819596684937095592822280157474065763584932289912828527300206864379354035616982930985150538163378522565780511138031099231300929950464979579808071542366232406898646355030902536908758091610697738809612188279663696877517857114818300697059350720411455454190103102656920233529181588480195817921749830719680965514566672637559752510464755611819893814890350420465198492730571946459261898923576533589964115734306087510089810075614092747611226950880863698781204115797959284001216489315361180729509253674769745119076471652793022307367915830602762982544768346060311077959480204673651301099900527594637993485507711254330612723979558753055459406142914169038772162887004019461846871891861685876368969870407435377660191581716554690380289317275066653580181666126977689485375446995847278866838561109487576031439153023894236354019158834522205732265770621603371689449501951333021100679258341125071633180502539715967981325183923056480611681808472929199082083669578130367100094054065505834624454573295788337974198990575608273821346573109013039430058289034988301461450884234660724391721270779658990858988608097845885979655901021019053337764805909270908709103941001557836608311100377100791114288355316010956159900991344101143886967612295575324134488322039417973565292675036809657642555920008230787024112902726507244866969056248624064298555494746288388364938678564618454288223231785448146819466068474816938553776478845671653319170813628569908893606720028396534513976705513227173541671712638038150667681310215508907573374896975546519310609715074540288620747308684299619029575102839376504952583907331140782000575228939364748825035921041011630094392676726036773225825116258779807253490534098937977759861940828240825227150447697288332202018035782843423506343364130537484811444415373698752058814846739025767225665542005261628122252266405481132314877584042239081122990987241747033996319671314293876486021651778352507952199397557005176980285163301779181131616849242203275480333464663833559806735411052765544001832081253796642273987593398982079612860893274374740657641646559862433299541522222733153274315783713918514926919722745723291592180469588225335493924791133177360886174998989029433505912260578803911847145235541569093394951896885341278704670958648335255469010307629142071736370064031735364472883210432993255276784038996010417133748018607103881969587454606960613056144990059059259547836896829174711733427671629514124046221226879369986762903396909094577662602274631080736846663497717152089976012617778530792739706532913695132418181456444366653370072815466715325226880780215949440546185535612245397983621084309222388787049177229024567408878050981664048136290960668300617967173685033652695529297979322880245672027447446693218162512066818488858732487086129991134960832122079010943108590817378820687641862260586190602837632753259780009937673195794803937002421548328874239755127019240514012684039632986720715637445095406695395545052452303891515448188877883371927145042119113614886742444418678649521790582644667003201063964561518100186083600979867962275297084021657296305706118950017221928199262822258517524925834530016808728793571747620763165511372035170177552420996044461556207809252783052631313241729677555804142146760201696328987168115836532372187644688342539374895714575335478575147069237422152858060464634982129989172138129000124584835606952933893221215213543056800418284399937846431888580902971720848621543882627529930617362366656794884185565263495394641412999503640352954801920677142548898504334521705268729163370400201202181998715526651565372720393350847867384634252275677256415997438336978169424366340825013821426318856724269294456356935924055806719734748303656307910044970413590355047895779802414829404721728326085099215381583246588457083005601556859396458996590094612378997523973362169890778979387058630127046619848370929646428443356464527323355758376069127083421460502700252537021718964177111028250501099586239658525933496884336151772210224347644283270585987295188558117380666396370768624781410085280000552082095811703077431470383973865677486234866098795784870729716496714143654442291414595407440078338828905873623167127114455434147775412106316829552239185888525415566457019531910696221316188157948228423018711444548384940499369772621876218751577709497059789987000946022114697727927196290685841659255826604031454333885841787087720090147793856883881756620104339323258835218037990369025578299790552993733240084621501463879634233031893262225021676711567102804263397887941896016368981928639032586822924905328671407554955168786532735321888080825059548468715622253422724788450020334498332491702529458394159181906965295382445797607096576483413009547896543981995982408235913310052282381051293987084284038025749420289082971978573110104164451200957277065779949414902953287032639205634828279411844678318371985846712656681391917127655542191728553542422456848216204988562795399188234547820972949706457048635716817146909748208020446977549997653216430747171465704661966575600681266852244029567198431803980176938284495896908904858603442668268741565119286581770649608219255570065089200213970165485718716338733607341598402996833402862645179105320191742441642046930042483848841958849657830282387963825493940381386835446060071671042447361327305852290177965510890354052940714399484486719820133088420194133082384891198441160954018601512654878350140010185928773249660144797299200797517106758483985313511538126282108071833039414220101345865000674762246945534669460053718564318948538326645125093803322468792202256411608830438563520601866289133825576508347664465167089186690871836331787577341318293766793893743112219248771144695618750818279267859659530248444220153926966028398027957774109333897328099763479457747859963468342906386314951390174440734377703004973849633137137534037970899324292475017988575348912602923794901527458063884570472872379960281156199373354824771282012176086629154704387276049072222436932312930796824531836746851554062435217608353342210457809545605297375375351627418783145539410660403902957339080952083273438330730216022413080814648424841221935455012519318870844754219863084383853531900777747209521866360390183112612258829330600331271074984205209288179034526691942517675551882921239204516817590670423286113657456215049570359264306568979761772622842061844102002631718592812959105792707493166328432119813007446631678427674342510192253557015236372172977762448584395730855454049648100007975225620535826674649860270451157878231102637118252499804648077327165449230628574949243177323713739201091911553160539499539967067011160835734555931386196858794167344465394347369346826929252290466741838010201047340301545201016642991473502641190082274282456775685314065634992185420222572036600693181790156800733958114271532278986750782048224896879173298588666846058177759987619827143567194278614300276236766842561229964571438391887985520726451004547486121884913208762530825003456893422319875690690718707356761883092333009325075478053219563109606090657292026281884519550117128339564555191948371638248216535316822982113041168640995126758886614769877678762983358947326877913264600289462491356866242734205751549471758842621518017103598935580638571122302652251865482071622346304045911264802853073856342724517447610739846736993423857708718324186935675732071578749135209789963086559813983705499425363981918623404838724070277311170722593649358469728872367211649375272522312025499670664344502883988000811303333320681100182266032469927026232164198060271773605481557508372797272510521223079651463960661776202625359016582942936144173764253326881607416050257883814519726335987910982125355638388171401980720754562983440830543194342637262088716901542708057050352443656623968238057545892293707616505370884900831348966780175532395398129849741030176650693039728536767366761463110754328846523560307585098000807946770766152455749480824726161142391833726126093108380436594128053411585310604620949087613606254021663702409279469615224853082854668246365607739225986737312594636019974870203101880072633116250939629895314171523147957011315660900566518618867594436120757447433626637641701494071658713140171413360982542565373252892434334485622442155233231413221691700564493103906529346235693688191106689216865948555674163320826675187702714472066415216192660755060030529153091853145506899806027543273148131147854135413856966055751586105516298654169153991422695693456945177921384827368891214804121816055207935655760399829201809620405342643734827118322895478209452156611719354366925789209856356163164542721570574251729486757106908920869969094773749412815445200950794440380772605078171202359583693961614092120130386681706566596141559824104173149971573965499714171747578927688546249800907341895637158055979136874881397563163282238346776601510539543079690281859078727948928821842748577962720294156297953270775931070670298757530337675352984565929637965708615014288093714501522935501620417908373482761312582015117000995871160015843986857383642651562862029825753175033187678017580675106989430286375362029692979111915200685971740313457104104299761098091757356386996503537783135860307416870877239774899225159923613338427458876346248432862875574437483872964976397404344035370462478203083230942256657516959374848020132853495982429705891985733863867108606534978524987678399930570565929318462352866590516228912278273218583513071504010903830524309884434915759271231310321642069219707229184673463522214559929960359402379755057000362860895771929813568788914397948028191032974012918778882727248394908921341437427857432058736691507324889922867309803262218359824765922667782207715422755924618101738735984164759798664947008760405967161601486481662026935790427508908531028668719886780691715496484705510671268140775265345443188625516108941855310335756392375752442798136909557498103111482050266696021559496039441804594927321392257675924163649607469668514053216256033213327247955115406615557574577276510279470275762423318527223249101451040273508209422716330921526826534472798846339554350198432138222203867353222459927220061419045158788261110836590028842580366274689659617165824751547776045905007078250223389970610766028861967473414382623188475288195574254016005585576270790934351595930721697600134786471677183577925230415848842417302825984343427654374539966220032665809463718518919171111165691301056782936724020956682899275166834923416868658689642612459091033220912384069799206168108304447024472130142979509044158982714616327121115281164890899410591139299258324911146073766215494725969200427563889273712864677335138738988059932293318716252964956988308162482990620184731435111192441982154076133991338634667195283773256740269269603692679397963852581241101700331089646567644281644369053719043563796317242634657711039592048145973086893708754253551145776230668988282064108101974910997210170873412745422116742814257100285621330619933143733477626936106679349854429085569575309261674159193981850936852674957038273075069171293739071332930406063025668269448803839663085021941959243818853910785384841451863034061701222271762431615580765761493892464400404306052696334750460507622109001211334290611448248282196232262322644381494856548755926596260800341409506541892512934335296386202337992012359135394218780735730301714816710822005913274422515793099905071980994847120854282516371369080002553705637674729135978482493416283778530655725538310654111027872904978475782600708753466578894354509282680331926199102826736843346584903308854091771392492335065021181403902205852309464070206966504203140628083973706188330234728345737883650423107900772534403646724301610073285534946743321864397961504631719940885694551150022868705213340730898333740506073780766949552429932211467854458154349337024891751786357196030376428643191348549846046624006566218120619224870306674653347083427829975585614797066550634147885919360120455404007120325637312936307319923402651002970022575720434292459897647114561784582626323470174986589812578816753189285717595903521987112986002996654410629007919286176255830664521651797837305940967240244164040932875871702247550619499219024987910820158199078214602261467861091793145819054573914509605600994648773813247444836013228743433541480476607324708270860252579073106030211540103748031544649454824269406047943956023844546236718242700776836557512850724516538732886430822797354596857384449231468089234670560656834045326308898940632245666598181838475314617424184347519441882144121833057497396790837494993965787977806132341080775295245887595174880813697263683722333188246774733313515727754650529192127331058055885103642849306890018281606443631050480961606968088115015176355570937667158877922108479763386267885564019265569235890940223859707969308966064534564321390899308160214323190925183333007435042904626467315015506272247938525558381517962586130435660862848083099869514540055551704523942342886670200348532659401573060061478807179890019844436903952446762074043983214023107496174173551481589704214750995427346654594051408201920252978787126287140633806521981311487393619838982860416429749408586787290769033957114686320792633703710647045722756630207090042186659187859807298188582365455355095240913843212359783606312147665394903560350430510612543734256533063474582856978113969283455209253325495311168152367350934573892453893968542854691849052751477332006142252417095447580018355259695820283365287041272850135014665974869270516147590430788087856740282228111046794072704358255340243678996740423461477716820199826336117937724147605521336563704899868012397331413459576425263624801125351562863142370403409305083367518994016504307058989408671999756123638815969754658165738779440422389865483233864866397618486633434576661849380309123038823671091852977880774231780307747197943081702237417395225739694767376389381484165342959140794877638276808832180853897007576272621051949585423091394303623049516101474822193475150475928632748649541061674623850578443299993766555393109381408052636897955193635071847735949381599714754567017821386949260492323076157146262352228532959384369637786931165686224015803358650878388413712989140882079643527253766218453692382787704854278046019355576031973885399423221762464017219796614675694046558846947559990974111407903113318747329420010516397498367032099263826893634348546419998240483379567448149411313995380338868651335147425666168013234145458394024161159891752414906486793558506453189360716694206014469127186257079247618890978639581768443080861844324005738048634599754570974514626992495446017608140487594065875176849728941707885985374309613345281238624347235429917564083427839600379653737130261795916541626963785600217559605181261165147435828085325012968650623387506830978623212613155847825593559924046690698558119219550298537729141841767214686881443118901341565305797050602776214910793810545709672904924576060003684116188801811070722457743717000589896862772008667572031792187647989465361222841941421313395791103961439867859745024182875242915333243136608406809168933400086485658795871274262052940718717658918607999625470337080304638905967310367387435623717789368484428724068387716812869173368249766841570883680391744029416464098154142425842991036060226870770789468597090854781352715617706542450821776671852312968740870670046485133433266366097506717839529793551504709868891212886814182964715430799626057173067579528618538708742007261026300235173237512369688031624582214872949382802290848408712727691866212687560612057338348926524610876056649855501396507508070317856852978135373707380160251311695341669704720013393213354430513032295560262967046499077724452666113139481488325612455294292902148290291828229934682981697077689825601136550624620028730885211755759169001595681953470014929713324464676903088523373658697608633635819699872867986587026331204937785460679492499641312674400235507214948037153582155739185690277678924740982077186292488652921852344334082301749404372666746739000637685126711568967695233370532563294038534303500172230469217757053668024384329121993410488968293020159602517945194536884524070575460133545042815512772790034711516418685201995838482809414336584552824111883775996868887145995613363473563349761521464266680150960995444877445810249745625366215631318799602816694919783727850060865007874534190368355806671583028368698373896579512730637200065676679965535663927473375015671052016348505728932890762906537400543799738290312115724724295387364274216983737753421651307336601394531111519661903755379596412381534119989878940413353432470559842283525957629395509463535688085596712112231713799168064059728439232609606177661525376087197214842050561497898125504484228351406756107514855348690302097020990945913490767031580393875588963249473379267660119996114096797440575232178735591111778825047098554027397805218900095070748580874434729726276259552675951237041052019913362017863902603905650850899580816389516650647149859236855306243331054751781373374096378590685889166615920258768063667236781997468140732659354971977810582344391160939360179056951557292278353799082518419904548479067150149994377897959777918003638400868960819417939143629283300112452685921340298912043006630632015833213056397782285632752502838246615989747516861091195862079368965705428607854907449956484558652221560921647513927017051706437734479158541178570228396408737934265708925174937169554173526755589018283452512535632877050960150833759323308950947713270748302562472708145695973302464896071325208109268180455674925870306150936577270744969078233691250891217943833960774794854068425621208721417645623940409123738395019927420239427110341823856015259588673421536440279536547152047804633386189721597776881169059595502224967234517591141942650479451656704880970650341105655671640321677531362142529081374844041369317381144117876371207687375950885235925345374987855550225661051242152436943989750004859715525512824510076169648843589555922331513132241787921767704016057939466808734931495627746740394882814244390275069313646914074892674196378765811825729611535025815676750352978256149310177390932661385945768672880949652173912640387789815665114508172708945879053479020229891546780323354501506918312256320492086809427801825389353076469904876470689462816076660472391154800737239676368994803378272791056186451059801400023897446392805429159128047301607051373490838225102136961549960174135738037869831714789806146870078543587603836233528466368484997475602292061383695085625214134388647246410952506701307493296912233538260664497931836500504760439447454414081833427302229398552246353863002915490965307477529356780036578386863125031439827343064175736962606762175574709611346625382086015137147755368545729683431094840482160504145072092757522190148834427293463611455341867997259022990537561999723932725265177977100717920615293447191251731965022475158245933795395148826208608979840752111143753882972423817596918686624343559853666903768676562480921693594211000745489545272866177899943294527978065963822284237700204769109135768613184330131343996363418804386514273112663281756646659249142236170733133956452977934834806338996454600761428074931164722079120470304769565819853738678434189661046290982107690451777888850988465725672300249577980233646995692383469670628999171374893179065273036642084380020953147899522177815884550564259546411293386936551106234314785204086118151578637539951316085624334462264191960798824485291773845143353960449032473304686734984393836133618801108742544824586257790646524789683490731450083645831797838679572218130572079671459271531041394714197563320012820363306783047021692609463639127560756193177467199161282430390898934253051979451762449946860600420491885351505345603763339416122398248811628551503904315523422226853268118621621134708805594004805201220950883536837517719753417528137210942541579832428361024260724624022094859245616435594931674304510283431484855777939790875071277232255654192432207242439491155042520740869154511345488535176944260772673267239430599124661439741920977326783633876510507610622799873633387631342878136978739043922256822934558340713217026943272633201933835156419617883056206794637485503006329162837909055482478245727561726747871834989468423384219195376220962238771776459101955148761020692593891562945714481716359604028208021910427533839021687653502992397359725169830726795679986758912910542591147124782726022191638388476878679503135595248101167737650226716883746604848462171828818141239379464810122171196140653307360270143732796059058725796087954440082682349225373371212619463651608084018002071266977638489870337627730215306647372371761917276030562940924601023588428425577042987631559699159526066005036593215982398363075763580750863769998176247518475377626817530491640314991982903024167167912599712079248837883317144077360449647079015605885228307882628684972965163110697862611186008872664265058511231425693748933470472858998743584337294225630731177955445950576981660476937738270451601737816669195874436097722537668865531232009082777718073505180914460976559025412487820689726142162916456162391359555059053392243064653465953374054522583059520722833427779363145243712604187139650269635536928795595624417091552713143959287302916650195258907965163955828084767779828187266878426465122717185859856122710509292175975646208081068292422680265629552319088872005175269218819131687135983083885117716930435074716559646189115154357405691424088694685486617187500678503993752714148005371754898495011431053980838930634397399127396264437849464342528285609288027139759596691069044573029225524073570116036873280028656712011164353423938752281594836979980237029574479436164900853578578245953868047449281435259146135247473745566143000110352386867337361716154525935048066743374503949472730454130572780978961058163412045873771424366400567479908496207254590030089606270500475511455613192654595478512353534761749535843898721687943452947808252112070290792088107507920478500859443490998189368836248465922917267689314267813346337356468619095033959567168486262305124410997986817723312055549887848861990854628655651588060770618280542801937159507831092823006616423741556748153038995072046477662548976429715786223899571023445389646400711387615208021076844003608663074178516732816049479642338163040521488547048973900615407225412902380881921940794071644446987388575966051920402361703394493317961689245815297772931434721601266393455228621045631867172244784707235464158617436566027610838872180018712281864823965184664551403227168152321116094339427492570827628946117809547208850689523253818151366495331193492441041594007144970876993523886935245592599842415666465666262403052377324954545599114789083231457629478847091622552032990398052207494077085293223423605172828663833677807963050752732389895321411443454241815933795920551369780986401681722312402337508549071371695401814991057036211374688930202154935386158868025053893482200756441770017770885987399931527659805767392553330465369604213945902299275961187269107207793762924795034139904114093864881135583019155390605894261394830556830588843356133678009013605878195436249803597383666759162280905925986243471869591749513395810414721981197413696088173710275333289889916520636341060269151228811381330427501798447973874943216098880589301952819143887114894659082236814678569157606194572688049405114618338155591187440864040546251566844050543410127922943929823987883132841485298616520706706127133310743341181729157785405933721339790185266879048883379560149247965825750940078121424236057659578952262030799841602832896151135973219120245858483567484688172021993110018042644745917775925622243668472555010798383605209328658639519278357800206260547253099472536105212255647380569181036049818723565999936883497804403260227967784676065554860569033462649313188558532799488164058794070290269474217834666965405421071816772663570616478964770348593133282094155858255291572435280165168607749440981270141832373475206106143113848248315900223870749992383412639273246888192992468086654997478814856640916989586608176784537697531126853893483785272817594045940565709537884744437554989918815151746750871463607608817848498748649201437961119270521307633296147847174840144649597524090407472575464544078227561439848710551269649945053172295252542049556215063677909255244515887926365884247632107220024741365182915989962861709280387269105039127913867757474000079091742239209161141710038676213778722347362095189652014057405252489639743422571848582351476494131149070441301676496307181854511604262506309001224586016831661105825987916465272396375727598348691389940757068693238632350893805526621407802514137353455525523638637282313574510983753524229759823582122787093917912658578350545912485265726739100989079352485103481821749054688950647747952881530022818136888794133909320733793054435868428710424702030556237655876465006100690043854683590471001618898258954791213214889576691227900580844421217124637237086959097698054121874660838284024206468389359706926034719435220678464787450150054604313347248480418475300473118942754847755232701746464706407392492460862164458021220667706274675281619817862052682091801871567035650607888131607921213233214621036049409546442894400294063124556714207707179854242928211512725282318391481113387484535794930093501288733067351874172719636267471576464908086974188739054168464892461814615286224621318224680739778595344842286673866663495771518062029197706463400722797096606974069064495071889327783245177189603938367445560753639201753478637379111957914335513469128761758042557899994057904923959200261904547123357162495567701440167180953016233741773554487444316817634618895459253586507564945650754770552746220394446640393097349935102959730035859941598744592127700569898577674787451616240084428547897469248301129935832411248380810269635671251974863580983390467638383782126251685107577193056681044102646041617954621624527735279474820991146351365648255802517050494680835999267070727171476843848611194087091175143920131414806537339347058034332529661653712186526178401864932826608681320811738638639756973351354516325307692489617005037193599939180965611010170475976491732152941811812406610436560598488141948542038136042704573635036365547852540709088283498412799649991575189990653219762279198598543102280780495300615370097929920607595784057338026569593652565914146352099765330884421788600579253496996182231222263167271305916611113891474939968022476915098149789963761753694441084587809093458284374902506270324345721143865258084641539202253697052371444571403735073676229434139500357121692706982597790393597108326432145987254365376933265760554921212772430569187996588145582710876247408670637543536527837616845339840973041782814235777784302424516265100532295960951981752654853307072988117791576999151046447699691267146343584536338207808270061663196341158514399218887436952628556331734622372954122143068865985545292465928257285267693304709570919859591026181746923268461700999219936172887983165260072522086315299528614319294634077556391226773665057995907014348233427416934178185128825622440966610490386347901562063829378470227366771194612852911368690446975366938365676264061852079119131502203438044523461151124268115966924439130708901427291564050461327143811901764393058694592415255037026635263606241795076074267629804832512636661197380009467192510923816949595735052530600062239908672284191465263621983052289705042420393391549060364686589529099666805826485577384260097615081394185344326373454489272689829456997304526735196141133885299912770901211368197427160317085825573235495143022518148058668258070734354157349828824575093930076624353128125895741732812381471239972262673811950648563984638500770458142163265410220871715755870011272363231085092158169778403710363144185118930996354136697323572914569921082930321125456718929598194058081884959571064363750361534792217155879436298949360434332492782021445899504203275384881754766693491728220471690069911795598105170992268391065036401465845343256620760102693873282866617577321962361714610838621706011078679568615371263244031301034449084591332343412638709928365722441484107454349879989854331284279457854031264953715624479862463226964619316926014159087926494700110900129140979666890258519881829539438484101534808354160919029556899477636888668676814288231155966708699709641830928478529420848931954736160576814284553085070358484257852183143343557071427642388403119871976524691778822138931600407500693626801160912076814043024465400996662013118636028042688369649813263478795682120427167349673251291262082832898911316653279674786245328092531593285926694209469475972351952057643649625123849058116334625642155579238533050596219623673700746119492661203428189692451173175357740162130189029217261845202629502293895427952730937112754327898755776978777122638704911002353544351382283381975727956010035628069633726498341409690552995384025632726408923810131521833413730614955292897041944356567873531259152028679688592008390757913003562527205295412060441575480234023647637589023178227921125242873356255006305734065411948739259163793111613776189582334243153017272897977268414796418441259213204150730706668929084668291483772242963890088258053050991954381762351581111109897136227461831537829025305600042314053718797563416161667727855657033798956902498350008398722979801199095019764737103607986686917523978071508759297786342054774885814991216104111824075680979480669019627435072734835054390090600488004748395327521210792483606019243301593863807541485287714417192794670182839340377477550831125634394192541123223522353579111478315369560877725191490793693048588205876934061567089038597664496554641007327836737435510117995897419112857114954156569282375509363294811068303687954874724684590692676491614016585682239388255807438777643958390442208667216869686783094847146035236036113417725792924106542617206687810889459937087958206555823266762784550941412657838325580237065625179873687395037456439484638790727055769914319507292246260430653563322859903441440880157740897165604390197884887361674527010218483916664950841406277255038595100704217878771053750532185477244711140296430299699401744963779202026483706998988415719593409171987350755807918451938219095490083514323088571249148385309314336088284732830752342945249425163632841662788198443158714787918344913027678658401659486824521030502503865160648481809379061712235758541987122724521041649563218565491538841148740815644649514956968497764517890129705411292353619379600132463016611423507879547436811700266592753361250313222219641828291403707645961241728604189400397738226069538659163034763538972689044916260729464460301470931492952839257293825822610457980611700532853376183020168243390743261199780603324384236853095902879240515113525426998686550393744394005865977174558739975860775267846185217581381221101877932078098212972493073326396268998097540577024578070918469785647360983300053306451152807915262531630801467868630136832064039101646358845340111497503059117949072026037123003962720165157214760418747323888130634481845271834596561508469310256509688785940674992073017412566109913702312603203710710687653676719944524817321058458886397909598298713705528761659827840008139582638612981339141104937087631139055550637730509897413645366148670433941796105827015212829120924607073908532195079258155129546808419630377401120042543333168503993175044620526531709310422185298785041476407334740402994883357089037154481213693848272889791440044525539106013081247020147375461348483863228695858375994067592070638690064383413392160809760150720959601223695676908900436180698170280007651616532744599009986573285342277767448401579019558852927258971579437628017222941601227036984444011665813435458772481302271836883213601088969254099104265753149167161296918041269545939367657601288776866547589343123634935805579203981634975581496331934761459389208633331763547530861540166041209013846884940576953930318985177613340062320395822468704437283089799661535967034510613405863814934685255850640760755392010967998850275942928105576611477458317766604464708994619882821298734286087743739961267266796120170175430259386588953646386564023014784661927151148275335180637055978899470678884652657965082862654228395170971927139211702142541978030842833630726026726078733790986654541140597593459267037026332611955912341387832468110007277037955430836157977730219514504301114585407212202907882748616364282951504361801655017433011959387065158496300621977211441236935641305870048294193557355599225442325720633343988179141942426085486155406147189283823265338362320346579084906478227843074861220245278485397357041520026251347218007806530959357191890791209488091613447706114375590972420539043783409920097972169480842202463926151900970535779519164415367897128627218454028333477684094898255993802771881091129888942851780659413951485876816321778038599401105839957866392660634960418906872395641892944421537667905032119059940163586075863396146791992861515526276733619401366703630655250821496131144124848047408291173053279847117820669982667624668328118166791827196465440733605379690674798843334807074240398392394282423470963538278481062853597593365619021179573655574530097144416994381698625844440086627695750458714393563246734609162348617447349005427846862818980273816530362585642708733859587666660917880657929169738687323983455268690886840298488539662224075171522323749082402027442818082901978345897605875277007253669715826205697453458407789212181313987371343130928693391760514859313180590348877252632552320200205125772063871174087604487800697143906877335938061978816955825485836736706775984698095466436369294678188816623589397976473763114216081696241810983876092212784521335499482465137799702105668337192249453312640371998992635240765882163503478685457652521467647826875678066641125496610366297235365599623783053586062142410454135738613078801025143347538442079002558233604879018211977199474626312558292209079039328140636217681462824845295005101590966480914856046282042345720573138599768616780320721098086411106458314953161131960919185210529998882252671446505275001813704982114033006499750693022146081804686890764426270435697948462212338264929556057028061984102111246049076307055145092551933627482259000979341371497777405984599513518104819933104425803778905912973037575140838312856628204166167407125441070155003348537462273392899576825362746916642666373070985230415403991200718775111022707863330720681545794869348894079857128057938864484139242746035856954027070758995076186257692924546786736526524664877907800359907629003316464992620536136426950364052830982507989590542185522329911967527599640677587299855392118897362879864890001435003586324452543142283811326160676166598111419941413221328877726810510842061006654832321434412260291811498381080626432101477801678926376575213769843065870894388209734845654347778684163855304682247769953013834094971177426531007264642951140362258771595974046194309084298571749836471664949033189389677194024761639415613877690443110276242838132743181235536149986015059111190304102059609140898812839693762686506062136626813455380493647015608632697198434850141507605562811137920591250693397676837074125234645322505848169916552821200228171391594619305751695780360606800208549637714101373996861251769642922338082802526304250553368394397998891667861454283734564266332020362371117827054635938870578235164030945320252501998033622123258945431189519695015053871561165944364507236129218259456708150304439152854777945462678521424967593439334383508354800995276834150903873121210675340918550305468656282527127764636023019094455266924473311332506729138666563228034750936697304512479785884978272482511781653135147026102481743886977075532254311447236478279757642803195598400194063422013354368072108139573082553336344176453653841221694103941963077245853473006504275101360881461420985456951805251652876212069646373938855802536664205743732778114153337460749925258941891471247351089587240117663563078172250954026364365569794538215529184286919415373996464417886540569192273361179651064076932153062711488852191217638112850647484451404557590435935161986336471324066750266558541492019130515846972593427544713898997310573246469053998175491067978376587982667999432407138409866558834063155132865778427139447550208034900850552286724854504455816398306150010493775232698549984903537862185534995349772539295042609409728114687525126585927642027815621146462251984266740637703284477701329551337569333704017504174373512613085747783172549283315908145839124490496649175377243504148566246268869708289064914840855935056567692346191329782131784751444068651206615125578525370230450288117521891275826115131554941945409035101200281760111960888731167509130313417261524972851032115600269976444995107804896395943806046261904693525041751012027888350212417011200427590045750321852625133396639952599221586831187245202179555891970749883650794974396702479792376458411747548612619717761854335148742595581723207616913775648174717253250326840432988158245751048756451457057794660957304626584273839813813889650935801862200127551868012103320576185401607651740326580887073035153214184616172212187202697308286225356654656697389646610467212284543456780860186222617228151076487117596766497831611851594344188691541018640782882350881681420550938276873277741611478121335996407014898268368232942944783449803306185886719952954333853922416553732743883793150551446657670996612205796817821330860434344254159670239816851361664990156410988720256595666074569132039516607336583080937314197314037496194774761106220726532260318634222830947298304953761583409268657808501344687061800012668368925686335826730572203305119755467693127574809072005763779968978955224060136652058981245945163511333198750652836956126205736110107540259473179521433783891725306091967765713584038085196972009500041375626216679841486365056630921975875334990218907551062190411593509554005912123234523236595299513286006609477390647509848461508214069825171816648893402268178427047169469840352351242176274133267903581971961246876872958816300220746155471821292401684211825372893803538625895100867123815168648737740197204444259064403187471867600209395179484863318881392955890101665435404244590626217945030326243113705270584523633925662730418616889895637626607254976563328532362844919079229832987966124277124163239398782978569479276182366455530435774306336557188163338194394498851172689832146127363738998535249804713957369462942077795320791287199017968891970704563696946071470718451257400927334147966833248812955312579298840759721161573579676761704096178484564069425625987367790933245775790838460840300683151691473809558194177811783598944813539315266311543668083541124895697034427813468257537536899757623272116948815541658676194934511315680115926262016550600698716160437025532714603454724833260047215399049610781784370751584050554391826850724106054012306645059894370849395913882308980248352025672322555925961885297540312758389928192916977036702142917114872536590453822253479234945056369953150926278648601503189714111863632924045228944201399735884466705273821921969618366244136783715913209247736661750714595827895333402081452221966819071686742253353237924872610463336020295781854413126159443920884631771587534883300975375922342302254861909520010632880138695775957010148512233954179310413113558480066004070376890301208686590611936118083008936016068806405822275805672309611856737645192631550546398823880779701445853854909013634707239825740982448944777458270158349196745124830234635261696421554560216040991820880197284319029286399829432765712165742561456366334256066435593876899811060202777092546949746362537315869878693324641325513683559171958270482261410136866894656739944993792680756641102722653681303895012534753084969217768642258955874179234685170161444989724421989457102735247773813071570543069440765416059641046331862830799838158038006139453730709793127186657527765013414445717143074489836877198753252104282277248321976528526521357043305979138124227036488699614649952425393644233272603727609083370496675072229494827361303260699648296079318336440397874240610472992088330852663625076436109865903153287425057370590953678449638359292421876273685130785220772059374154419390498858943362314488461085827252768545381816612167564404980748120015114419421628869634123747368579759885470410639594908433831925443220006092389114098902031206633958022023769728964175351449924897141422148326446381703849733593660271255574473933813550473059969635168683735979168560910250910090257897760039911706470485284986780443383532423159275805358692913254583358342035657339954065632170871132587701374040613655947950192010215978133833966841031680174883369296145420588866356684733701949944134197555108682086878679769188517183512757170501333378674231916019932219286542897326570961844614381010950807722736024127575905404169763472964381396783075008925892489743564550761526174479743790148207031865722250777339954553202658415118834246387049077333738436487604211095160977973260869799495325374144874452433368743118624459712106294859060151630884358851949490486166780694974080222971771095552757437607720475416684773948807781937935962229297376916700442698000628371854225383870658410818170719714577407061184890186924614368326905227758673730288970665037572567336261795050070371276130021547800504719650158933354142942574796642252157466063574647843192464931342889859297485158712099118500866155889134424766694596648717751044953074539390136674610361626085272192998728774828528749102428385161887647561871734884059089913980101967944081680071429960940447745709361539662781053119951144440874128659840235314196414014131904414451956630020872637535817407646632852962628495375642737182806111649664281080479353092808405981124331284523718151088341982998224942003145025419132788315875374542303192397357784539284804276538613267297700672857940266780066202328562298353234168789042305243566700055714953680404604117898792753779519726452823849423632739562864618633034039437998910762831097265627087576455469560469601612640556791788989108698545642447192816201295994934283979222021140851831593882897930521775024994680284244967840739092329735598495060418855925306635542010994261161890408527509882707634102137018431576307757050900023939882946039422804194447835219518316949930381678127761012490516695427177279797604843393522597481418248255553749375158059828914259174251686714056413099606347735602028052553984028839067777591368689141095393783804751505122799379503220357813860326231228158547361746611009573860591702807000199284810563312709211669181570935597413193533374461982137504321981830915871135406303679130459291191084492051586968455375598581487438870998472855816348325538606527733756033833002009419889440401476148156187155662674138311387836904653862394624610961564427116747113204950208958493952552694682323847383571471709127099180042243785432794577092548495666472345230373204331439534708768550670266538882362041503841758636199129742044790580859319602780532095555091667376865894386068836151943368263467270887672928396383444054136901531230711494940445604505141802530989264721017820116373204164344915517312864562106668746528152587722636757511764422236614592322870718858411486027820138644191759001157472714029925915715510536906222880772253923032260077413647114708885740081176803088366640252234076214689508402177888265402067714861807797894956126527347302814907477464903372854001414632406020521104328956170069418166684603105466533875589698408909623238452099807605610298981040438266003990298410903952396573046619311650466302602070784063773963708106474799737724840587695242576902814404997361631218848136565450453623325265107014500171340805449198150229855101549396369089379871854448140320844580653711045293681597474687411909142059466400576969067643070442274926679402405112830190494998083294445807098838757155716931850844686460493771397586907052257302205800061508860807429524174700322986817435598340699475511924216255908734232357752721256396603235602108414041091242979535074184197852377134215100449000906763821257753249479241987529799952272636223836641144031040010066945338385720210838320222587075519308368343650106268931744451660506251765966519089299720524025966379316284926816925380042894196531113377620753305965162220038965607651838377011429404522415826712942773643775724318344461545396775281269651473191783289711785349103967891559412877857542131777548463558600322430137462207034328586543751261907930317821677946451674404465601381314927994849956209192159619017312991282266701140836399399199858555534697103762188734777456859316475364970630989205941330924534243175731843280609248788138639199736335266592186417060612431791335161132119957092768062245605792651660728953609301966485978808143540826529813711594254868655491284082926539742511839814891643692257393903140337928041389379940986880553523784927731524714273065421952021845063115924176140225479218257337522167949389546977327315322686997602691123214186906089662108418979564484019984406061765646469239797642713433927000946524572689403668405461127928453268574990451369823647311595687334285906043225465394193096312596241534782537699272269480698647823483265763796174817193269709601888026628929176229107960749027888256826604949915541301726821325450920223388194356302393603471937565205180362079082028967530362014398021828483988810207757865002642270062433160556395396743960308639743120818200105245712713790419674259602088440784251823154419860391457924501159624546630450762802870357987489350291716222382006684255880328415399093806343751554947681939772095242241283411208367547766473991021222703131949370016107327797823632845825016915083016230588256257707782105404398776360688679063407055034096140032254834286583084683538021638060845333178495199476554332040179668392940094905905043288330205276873071928127105161611178551197036348008587059450355932959223869942133740115431624768991684423501871572011340794771412579664097410993883673353867637787914677956911891901716368668651731799011080192157257577108793080923179506028594334682166521892852118907481838173679162737725568300958744940335470026238775533717052700900352132541190535358076111358653996705800899968007460008219932983078388456287839134597391554206553256267380678260779371460493398185733957576866854742732068277695029147908542145594028405565353104958615938691578239685027413358421947772633393309741222932220744824992040740190900533259696937863873079403772738026465635484085473699629401432708380016672456568047203113025802791671244276850192070350938471687393401310203202613175884396251308665578714122783059347100398921248423334083525152617813936691960554900369202476925944634321512369618794835894729843142616605510212472606381160331987720299406468435977376127607854167072786938008873547631828291966961257243962286306190676235449491820057148645086516946142755284923913650283178098910348381221831685977060434022589196593252051808630858365582029186388119051415249893249547222377398033503256209469123639595639314503146173728932081591859140847133377913157103841461508251251714774024213179427321759618966988584085685665923091513249339355338619232648952560593093429680757072503799950248192320782117231318641847045596122295047410026137406547523276710302679914825705850706805095215763855536381527527913466728808631186890090446996816205721941766677417674462900319638932818712001893334755019966777633216352168687129413739238673593430194705362425007402167855079742055615344103300408861394296125336468474189934430616503433119491844885909804877691284582054406058027147703891813836354676466194879861681117392163470376134284779128217562702680517218539088836716975561016931520617918159457892585731854715471604901601707138593310026142026890271680730347515507166761720775008901248302810465990664588527548576691551688986619641741140570885745993335527073516103270281573135245972687423022128046195733766183335533493241309405983715463900596008768358623004916397318093265282133180288818355977756977957497701210831004885707831308635071868720577300566597495986217265485738826404432363652347355440068169670937046064878872898199822280267628370721043320810946032270607224458769628678837861217802342584513372420874698016431742141607680306775332470382028475951792343606506848430743263360853342231974817052770228806511293978768901512847079005649426014593767859385730711859476850739608517573859748555211951734551175688396848814375947371996566813972032254585163869947054970461182542225541063466771917712223232364806696709319328102267860853242027808590818602110104264008405004493668432918666274183659512179933077731162488062059652932295095982771282775154996525090876278189926768196323314277479649140347076331201206622366576844632699882757366007935761355915510381506512072882318537788239625519149666206628358686811069266673204583433944674620820475481026705473946437981955936115545741736511243735681526193745671585067763027556276386633451790069712490930108935894492351254091169422653256964370012079688077796672426559446622760498668707473357540423682497706236298280507714913833598682961960349668375078712375663371092443328541376318527170747032272512646833296925446733218862558158173374687731611589840265684283611811657054715052842848069452306595880092785356541320886812155577038193186702515100337194092880735086211471295966590660876703992377728671322455786104472148091182268629831931853548124293352239519509645419508538140615047557237777797683860665281233288276437392824271697281588755900730276818768803754776937997231021989217601688352118503389615439574903898377650893559563037630406725896227917139736875953769018071465389194602860419657300903652947856725194949489409396819792536141271888595906824935330838109220657526268148776516187334540129200708107362096637240470212103135234935646681008031260721776751796851220041832304925976805745470944472827090027819960836603185203494941547661827544618645192103585731460622023321301938535729322315840700737569071897580291487938265187420085164142958334492402422607418894946277599668586217907575880948436309374359536560775130263719145279029100657923357847383027529686755251694090843544988120499155047825498424356812607763840982757170239883433611789365075729911141001563907098195301628486283063131408061791733279969597973912205121703475399066323632825980324698711857013878366037162486045270813701021594010424075897718282460043419622192668364048582314152962565324531815464310429193642098448646588708259426403046709701892027631863183248501507678817755135802927701201605712659314506753718108234538121388982066828830293830055512851506228334578548273907072843390213454639403152175365735818908194918086040172614685210305921947479774360459230319318116380003773627082862499214076540816216560301128891466725160256712366273799255708165648874725908239020107011634742573988593468342529410779186062780786078936084435620698941295675974580727708162966027411906244230333161601124798079150069075646281455730757652260721310512367147578543803353448221578558110904254315850517214035714747986745567892554008815156449133807584243062485000190985638071950565623106305113683498367176503987203558574235730324144685035242939433454658941109028106495450715855504378425897800017057067647458188294015239111863094480336526146473868865738532179650979202305127270214971516895723740583390577661888939836615955103085171750969643279638002837176120220228797155167471015446985890741004113723548063661452671758046269512792173644737649051067138754658941511873804938616784319569966510855109851592805108111768154655628883142538339644103994295436577970287583832614876904473265632162664334640081211221436120699934025442427081640572950934006035060651172207439522758862638530087545609764866134127884049284485869069650155957862588211360489062654652661528798317310369409206585563779688955201368088660838970303411905573649505251762991185670493836600699458622019728083953939214459121431352674559295184052278790574590871004842277360009702109011331909333683178404085313849228677669373097963638426452163965945451996943441464443287635468697843844655803391055917891329922483131413304848627606389410803661811230617756162284507486571585448323262288593029326783109365298235337377496782342749806285542100584453646526077961488324111786891008005554011877419712984824977933180099911097605197144273395180681270840385375755789871478201513950426138818144109675121675813159272038762082392216567764125515380629153685600770913008637600315153029799058197338139086452285190009998021529062422432575483061212915089805092995867054562858356209350884679374148767700216310732019990232461860761148055209486555921717083901110169617831820203812415862918239732481407413287656893938442891982658468580760587764463157119786608111892121772193018322635858578714272796131454361224305064166280263460608941387046290698367356842679314996152502161451845709725324560052199671427017900415121412719032729805326423390085025896429938888067335257579111647545507232545004480021142664919633207363003571814317469484744290364817573261082249525045583864342597869957074768709952987144535667297771159426087721180353808225483869589073682278484512225871789523054917942514457415008422904224260740577984720383833382665263633867668173883378444895423119046735365988414396818474191743810521024645898021168711238043093943406816413939186775714641898276313450516706063588190598989803088204800025691558094063584568406836624749586324432140295115175827192257925000474571016626546458606801188016643077626653696074926853709451380188449917937991714454682319736781690132869672127486155821836067326591822178884451520410822210660578455654832076548225951409041434541776901712691626486897889347425947809415924070709940335653052248359476230367924080896955960556282432548341366241182213031041107000758592337767138013147178906286995131228115101576155889741358158059536111952316467932793286661929227199523291353282114361898472438271479060195436668585852853550239507766202266573805686386831200084374742780562834707715169593463315565591975188107716969858986349777528898701399771985478181474762906320238177311278718013721919920866650948994038225925690591315388257742722259356572331353260815001738086559410168693980890185326577614003249737766612088164176592381696288252980549122117168142182021574978274739454127595768862887577956155414003166558680706286087732980201428501914296058691956949269487567481905880282611617377551282256423151385978394423882726060402868854523574207816511769918628397845367446884935651580522824971667964881905276839977170222678492703387529307592934368299101532616698100300226256422547377411993194893068431225107676968994314014446820325292910628018295390272386393155674504885079025816786281122562902581675289655557633387215560614198091762238266698222459236361143955047091844301248905728384233093402611273497152477966300445632591442929223545222413671445526936101167990051165827703529688205493084835329742033929247693205445765131941614946588691392647183238939902420323188507839313838744156454612430265255110758471538438591134319817513191354823178060503249412577001717527920527530169306735097624530241523637786670907454863883117242962013298084570673027050272284392429823899112301111255624047066358421023573822032512248945998747831693231500146987151547479758324369866271729051110393279039059585795267769157965920289215277281366638300519995480839995226379906676738518802166461046243262796592164433567839800147160855623337285331596627927397439167209012613108333260917697005812177757841372346860741844985236397209811363744740138396509825052984974351797869943699237523454561457411974756327082736064027882445367519696218627898003522063774329437265618443635672182288278651905855303078735020244642576180241184132571896539837965845931200149497925414693346838404416322414272510706366874590404481399017971300924235829983509824219950894923682858473369846007958253785147903845577648187253042055567401012354474274133183972486998977213248166174624154232463226831809454030831078968083034156133443430732250491244419044551904402641121454309063995438485329162148605652764617644453376591877693028764293983919725352896550590223313189799747495327898656779766770381309384593082878644543714579457488128217395576198835322783169059446091497450956066527873141738903295599158561153707637804899884716185185158182307233424545380232009782949648665205780387661302835037312908142087509312458312421809216738133382665747628447018986951768397584048864639569479888931143484983048558421584770694857469615085797909568477938394262474122339059705655386391231320362112907605318556859511921834246899733022983547535564542207173748068289503851350171282280029109398159085887666713557302989533759460152436706773574352184867421716547203023361858508185832631513680651440743030967900208474597692009278535530633323713848668203985738482803776762853917601258591921837259699783066939256496838276058754078689978974883626533625158283532259823750222670394116091514530221125217953466431687673684714400426557403937849223875580138971681961471480409680317026383686649190215141784197392346965148843738678387332060863217789003464430860968878822750731779187102751075191824632611063140654543012045644830346385069578768110125660774355140857375117397118915954055607405971874255299113776272332966430423645776851657278487267952100587386885782779070122546275271873846909503442065484259725758896998972470958813749876437333240799749135707934699093952290260769485672559186529448617549579648966764630881056095458356959278365125920527223985389552732861320227473483433802995683938527983046634958680534065509305885694470272068086775147520788071697595394013499049168607492318778933699361849743738445625015311117762972175906741524757138833274590402205524081540563297658693139506525734887999431239167168611886411119383513803855835047832978107656480470428092623976314265371399848552234882159548385145681739767394399093574658193465555158158194995356860677667954247615761099233755972004320983235674194555500057812045217747901788429779685838147376531035150268144418740350066026143184440480528045225078707547135704962621424102411358270660850653035906439643004415465827361412958586539166062913014773337270935075943280256486990005191627165283674918217019523060285626813093330267114334045622384256572635160715578809959927711737927150381200204024388336687713959729967452452818513630142498278941232191239576490869965576326496164215963933220363571096832048216269151047760784178969613164288985577318130405111331432959939016241325186781427069736196976840460220150243676782764550837737024733745847005663340536366966615358604252755105204856773908606232684927926725587573370345821758996576500775149026098675383190403043359310349266018828038032774093452859471662953038998186505354131056568730282863908057833959871906397039318618096775660939169824988153541329628764506109590719416273387884549497210497245250505496060391330872425258427284990119071446274708202240400272942455773776631856052224522561830181646831263584017249956998721501466670846779587598569979132810988820995428139105039088408669412668098733438944435649026170190785252289947859458837560631378865401994069608711329605362281631733571736366007495371112453452516790972295080084548899483579377800440714622536362196136284809842456346052457121182497501877419155859725433533683681961614579878209654681796827142868748858240683560694482354808602782448571068809159286060172015738544168073687470022642466324280754283940808926443517593721532308323356511111710960566941515070087003901118104098027962069042717611972800729516222020035333374369578685534813373203751750780882809834262507278120168625621615184706898399771190355054067090122831956960641937833511800158557191255482602760067309076711257685018182338801694826937918357191969074703771678692645569916625290966405357771617442294753815097844083962528480581303222087211009872474604798917259989577220766049900235805483738397203101711126014322239823911169823403004499819676824265838845653346628578126725913147828014928203111105081203167230152636418037275420316659260611930412532491054771295418849657053898584161984483720657367616363433299065873779221282666567405014109553121367040962516052376312208214230397377134958321295057724357652776739818511259435235981420198618951835392317503393621264916528590329205395777034418042372010238611574818328279826490204890027547741947376618128506296699694198143293244973908420815942174393010813643063936275359826639881952618207237470131887691511814933671016694311823827102083532426560901207807701454120461838733806729829566407912678781309452753745077406629666117405744101404581838789304741941219795793293737614302456848009963803931711424433199955100226984921038221777823954372465609032311235764491587107720475967834907003130311122214199508866304373048497082871518803140066059243335449174548430409279074482845210943838179304378453859552050170420432360315085052586544658963408832282485594384180255608482840277683682187429237634598362679544367628285582929036006967562055998616434142347112724323181082933761767511344895156910279544769260633095697791708401344250562831142852139948213652208901878402408081811209127762925046443631875840954468062623814512833398396083438816154903345722201672042337202601298370334530312313926197046309905280773802682174651376443324920183809706562411175502838151781486362132601777313103959988215624754111275944377765499186549945559625448947623587229270396569774435866641229982327191682578924354429741301633380031366385092996620146344356707751350459238882092570825376350369480278742407930113789596150479519687500571493734363840271893397676933803300464996222481635896215856268597085544580217036997680400882796461997825814238561566903380217869523310057946959552273947818844554084817544140289563488709575335720648732260189369117432862330295097944087543201939911797809256490417144218753621565482803171595024217562806596157629149062374891648236166987123226776422708697227294563439000201674615930831649965474410593038016875762911758938557652705513805758023244747276307823742691602789112435297131684361830222458345298660436856114263529848438098881973000586515904329834651614936654389084715085519667083648608064540913640985761148881749453078388529812084447079226804553034913694132115443260691246576567542428249303423016759331438826565688356301014655531862411849645288403203978118289674262267389746132884006623553603320129824728670607122486319840771895804867702531094360991602367310364788559755568466482206168893998983600942740075060682562217424230066533240418522779034692427695476635925691685156342699571604566290573102352797536519216022428920721461637441851034997797302864258767870229238077943093203682018259924202408580767829722462697108279801876972362998676926524992504410381905749157873480266480216325535979648185377401218775747172780760261631091832774809931980121601989176821191470604445497998887766975986744950197334517416915371806096815964940461209446374354622743898090861710912579377629551460420360549726987424807860872218443884490821234229503228917460990270603796923337287306010159179483383780437029844666943764221102183856637921142488037432190234612195677594468795634403601361644296929047353240463948092020986758364150232451203338779426819562428086572845884452935840000144796838201220273251359548027816914748534363377064781604605278053764458466524378169188539799400765411557557729120131072207695384541556950509611431290656962720725220790820779812457208837074484071113967919522784372044120137999613790312899257544869295357381998342076102679421504712371301254707896395301053956045262948481926404983350943544982751750143324564945177846511268902138162703271327311665755608788524190476188918326665862135565823806500147225463413536564454955074279552734222307154534293234851469848404613462321244841248615398521453463877681775977684486563586190814940787379296897478521962074886028633077102761627853943482120347738332125580259153505837959042124635108882789419837930773851382157659803683097152365652379971747662924981220913375323218969001844749823803838911760824086442150015406990794441736861160491565959596957266164561049666099144104536082318521354761384962026602750778021578174327141921132626979169055006356307828232785704883637614091755078497736773256919657361263290568949796065982640482675187322356266617884559346249340705132315327053474002379986219900872628477336228369741243251568619834674682724675881550633368471785090583790685322230116540350171597134156099675729045639058679533311816513582862246728947654709374011116717423762494336819691631700363814295246312038720781316590610043727216586041446799267655994818326085961219855107975318544267136464279342309591036785545488194896301173309592737754469992726653450255146386325771691517468785609864472660445250192563987444239857948940064312726533924027776861981484809153063890153017389340320728150190813423864168108911191291691909727661067634861178580825771966865309585556769787173899991054129046612143783904318070971245790792366975777159769844001863465339184373120638026175382540720061733333988386690632017275424399969340680564924982596477661672853655430697197439371799312047099444037076237468972926061095952309073073643611994921982902093641312090956990023288294478064051633135994467080606653917262433456344868024242586296175685774934725259254075924631652017489117592366197263646715858890208369869269538695116143335221281867344130183159929272081570619702397312838554549946980261638096485722622283659671357491123614869742231252065956316401750691276720416999831951799321186152760925272152647905291049891175659414479262529142444075480454510288433827424108984704906914512436746301988274331485949276627735107732748317711307139231636940770509947149362326342755541969340025933409751562177024268156120044894599505812460908076901317670589876746477209014776851366494670278499063872874614535027702158629910194067010888325827753204391683021492782878319935147327782683898792330732059484628993237201720676572173914152557876529680775301025276666158832955667135449058463424771778986197001294324873294320051174822532573296001354102640296493208378580270905145535292282219932904698581203221931334644105894879980124119419873024470615483714070720226265501269171059866917536415010800847339976945887773786994734012523645075961234155158548014994375881609102537260125677473786102989199750940240046856859895395090946782547834794733374037249896694646656276464042256121596101441409584345023634896524706751724534754016843953660610689174492189958695587465858931820673697775448996992947681277906143929559375619866443080451760330141402566737396932582081693883911494598150784818541157407567784828724678168301812612832910365133635691489897980323775914720231522390815154441521763191816354307265677724180532770968266363281537669495363316973872495720960096046853957868179232629780655091871955162977379562182826367730593268913143768828738984981352615127533325522295953026017649920676277136241515255698495706116000066283725449136678440153053504826236611864390387908442412796216369600016454937943667567529374912146228591498995465572463164006655410082194543680636324075397333075836635062240721411929810857926243242601992658901719763876891114456839577355164902826466582478910868186222585372651077743669779442232019592704146929510327015100464111210442384726406052496637186557626994070491859048544096894353558134188605218589767026271894903023141276456891595436274376633736337910764050059808392493836810996032858566268263329120611200501726421377093180972583917696527194087262104168906546730081948006378912354568667837923731874735752888584502822267897260316062311259675785753873096477221545188770881735979270272043074276095797623687561416011518290896734846082748307287004649607321280374262308138077590547671250858634633462052838982404836076537546418286617767196692110975146004536933080738070753109312268303364522747984681692422706753104917442447875170998458546641628289176638132269253295938007566086901582076661562636617293599628565205640247929151740053579542091546211968220281261627460007561587015941737574967216444693143820832435661887242295555111630756400700157321800056522087231717944663972940395023274854198821596061561574556325602385703549630287344456988025632141626875405331998689976679393992215535681031654936164653846684144420832137441560915456989472475205209282347063238658329345651398071752507043057930089895134507762724561115320171710200274808631717905155569179097727911266003723059028401170139336088262750874694379563757368255726969843562820084167040173787746084654386087635915857186807437625967086105588179408440344693901725123923488801475820870108682392633670969919639452488345489455103365609374655284026322707565908921735635412638632562505662462314674493856915374154349991407013274306761772065695736633831659560453783634387188333614355981977224460074307673113151468524521849062641580732638306918078832976824221816713154338657084813433795265910823337222757884953169729126855683456354109493617062370936394678340971173856694988675825032911464907714430482784144869103825480809963684975146582414419284656810052553610075604568260733119046770810860198818786227307664100309013349078872499189739457521710773302300232011161641038076896776786962941144100613205928645863639683826932950757810242174900576656087103598328227705197472217978002102615900533818415036367379233011602396387096589693277273769626631718286791919574917788333138022100345154985636762316457853564573319110311724907963708488820260105083165167574449991658571317245496878891527338310990448260061262053386908967665257122664741777706142096000299846155793654846994586214911509636111432766968691488755632967038065390461642789094407877090048205431492334186260581285334350361621523495012721282066245452177691710986324695981114261529476410730139887963546757275484592954178016615657882682697266724262994253632173914305182142726418248233025888798912253280665443561964417720962434610652561839872766675351777827180831086862209119055151593841674985022884027414857150160693024931413888966299564326855914135444246198416578648062287596972989232203039157064011664329412215360259270862119724665855257462974222818438583510750463491237415546150845937786183441787581608767390043997272857875910368399650845067445045727736413540330589508066692420077793827706612981670024984980919336400195817665931625444961141594615812564677364273793307565860604303640919682645355653510677165384179789621289703285032076380727988267542195854048644796516327340786679807860706510318174774207887736144747695753466820575208058859636877825187804613569823342827371622574592710781711887605995237831643379739522212269042868891521642889457393396641652630967519386727449073525337543574221194303761569072911364640009254393530406195072834655698892052675183654985303166354418866398649920940216833416933947661347207518212556103585135505114401022060316717699808840241130410843414054736909132639262325136850138866743545341850166524645634671698963284353732133536374064069287157602453355727037902873565114229282585952237838668764212419786723604927160444104924992237668013689359297582214810260912787372364465332149630980443921187259130791695335078503647839011043187815634162626272007250522253247312318585860180699229830784365509667412213110924689627208480040199997200472841895650222654246285943978471606161487197530589256868997696003907299234691728697630854050173068029927860093596650153438650145094131240542953339344625111616374003600830561203032787745942768500180699596874087081434796046552918803445703795089964287005795167448458689047454321729201554992302848792476629765029788933012229985727257095421565693150828998507264488250455076618405328686217262553155854756768412881228188245723733438474691056314287717152190191107189439940195014539872075015931257720878100589970485756759207646861897040972638742781683301995374518607389910349247060349062865924367050084684667251198511391128066691258479332298864592414815778121945457724875795860815320547737730391354977622302307217329281037677053288943689042707095374129525027564916643985211964852986493005350626300261474645085285685940355781051502404074347114688645088196312461499906100350179170407026160530973900998408473520400227706154499934754789805756025205977598265081901591046334692773991390470073555575522036271957060223972782401512497984122007411683151014042327031170418199605300183925707968571085374015073294395429022624196130785615538568924659270014871428795401383955008619791367841760281852780923687186366474955354239949777472245121899925064511999546923897887767035283754814339497408828774148452428881247712796823220017157654712049937483477466306002297003780087477447079091539451204351669396455821301843747283504691428822173631317472080640827089822462496155947553862118428279607726795060786295745686071251987141145809827262758224900510205627745863791004927083205366133347260268902157714397402619879522183653452177381080941003924318693317088335528917580547493413651119298047635907303892316915789136136985594975377281858165194038829897976651276203227176118711261198642309851609966217710185587617317144646689192800371347803145718347474661215084975567030523765342700007182457212067150326550052138225337390813626669600284457859158246536281089121690514183670963148512592944443497039768932950943159526066113673550206608146727617375623851267151267591701921656101749034706189658788439055274990433934200763331497923399816486157108678543343872487262359304138261123959549483153703107667620363365595803890624385427424654607764929551014878662332726846026338254387800358474852069467072417942918205650057615003588275306739339458519193293996638965132549062772641573679788614224085370189594143156293170538735705046200049572703766256553784087165582111278447480546480959107251944007066906768788866235607545486051570685778287277274876436891445520244809777121675445110907831787403941132359592763083610714433772614741897818373415726046494081287880316249533022227063796480009498422809826491433535607942793863874425804765545972241396687444185663707740340679869108325940968771600594088104440767425458834697930630759514874189039847088964915850833089557943028013216383353568296082192948234374194809775730026036974350881779611630908215290143800329074656398750559683557472137685139053091326449687938172626652382636277424247352866179757847864870865238359130327259031328289063072086009486499095125038349217542190813868955794414986439415579636023407159748171751192718268375428269752295795490852159951019333842880401539194498160187454224401117554436830383019549611067127529998352143532554811933036546036834120539627437908039106691336531071837908377679500464736575642700659384556620976833877092539002773645814906428942107384875570259776296504910840926385118887039936924922583759042056410189240299556846883164521335395144325398673000436861589281604444058292828707722145161783544646292978420888800528763378684528508983668654716783699037231151950273481465643803656100934408744842013959864773263636117464563502591748978230110722201464189832488687496234090311976316628828019051038872071959609126386530336437386008509365494456046009751487511367206809759519640167974589913020938220487382039813156469049620783119198825176702635447950841192700123978464894727380772639276088962254127272515368078339537284338561246294948500183159616130258002266056376676706234122990569173555349980579860060598590327664247986049727811074786829603712769424058585837383147293747680373047947762424221664659040508789845010684703529463658865980177916297684350018840462180920015342319422513746344855061224499583495651264020047614271384703576577867490054334058226062502857312314235636411030971518317385627709899102801636813239224543972363979041381738317429679200631819940652621726479757590434452594768600405797745909370998551401772110879528954551768772309364462752530216668288516770763522377821930970889852534783468751424995956273548260136662759848699688674710435790442328934692943128510763559029640415809781968094883473425643608053087157289903506964507541911206900626802656501959875147056271993254591829029711465935701165118863048170814534034075815996316996564233260912913069766226769903258933062704083043176992369960739472273377673598494927602338330683845481530286997873991974858228375939024019824447223485741307976841543148398349278420546742095969153221898176536042852862591708467433326115616967943919834827767334751828232565448387758851528689637404612177863790775535707956900842620063475844478352556040667199342507455400811692361046561925343034433037290351807932672619393075882063477794038502013868715152376104491128541849584703339763175194652628340107699399894968880047210602387547855708176112053365384203870271265444127323639090948848812832006949214529602286980009690454178432483189930407703671420581624861380583690517808180754765144313491748806953310613865762725411812997315969974983815276287466542799785019151449941489088547100790016546382261559755857072530980345253013504145150090654338330280248358263085228669237519465241126158045995711305475047160793358374359965665558908507110142868199335267193582575966465002116075160629163359224566951242926295078698284291463091826385396056762282031220983774154553157005885938742538766453992121141622962570366962981714251781792953173458296209415661574507491581102584929376467270718185585239914149571190014645573021401134597381769639380822075549812035879349046099726246365496765973297947265302915612456207583739794506979879201185511944971880684023137374434506483211017185586161240731656305647954728920125620933748674335161471850079803296617455181340743014778012426818275507423085633735262928222522764178604034057163647727735009129113854968616496567209497996053795131619683677623342510843703489318900390690405484966717264631996270351206618119033288958360630429725046829917651751251723076566884754739230472343141827269670728782894159267153556252123040927984004959975672917704846838528612493545623018888866312313550289909801922253868199640404595475835287105227841737074765828732913784169928316279336943376269872392393002045616723913604044158215638906698701976025225208974538143866531894309871202822296204305994068302036958087421443008854152930800066452258584775783968938024821218167525235580113597456037371552427066962824496599298138567815278910566450951933207940360374673641729928725676437914882163088005482107292161786447707520074500062009914515111510660310663503707311138885094345279910514033738282770149875505811255723892113602550803865107638521358541122447588808916215021158361793122227544202682362607861316288039358737781409288130758819956445977818513211791211537037042498475172746062241721992088287011790234205183971153791016170472208449899781974270939091433853124682082142469133423459443117572353998735522889676328553409225521781428801887021377658626006016321046427392876583051760468666104173856819077351296218194030627019184819460001029434240793415310085421939167297264153391077136464979972405174056056435904453971071968800234580129707084803068269064969703066571036980277107394860472073455240595936425989948393358240296150492006357601169183729747501447032115729914315803209397336810668621357634743205781307575107030446399871572576029970125653647267703140444885112879464939752859496049866038360206798308232533391438032596419347128988619967811171525929442059088042655904705333250537621226628219703431820536478587222647608357469704256626898954049535360697100722093716362218887085071424825082914836600505927882041415218667329975369614527642344493482712224379631612960255977070092234375136431542954580384310784752521287962433900113814202873009981304104073089979742453416062068966716367736531956730715659123202340229869864741259546472394334593003448727084029954806477787038294715741737006940460954844902610861683839485590456384887621390565893908209596606452925343820862159113156603729275489124221519348369159364756639688242952303591108946842601304395821943461122244202486488483765989886729146110289685954401536786531078193720845284221921135565409182318849282784407235141504452806514828207648085391541175257141998466945300581655004363574451686738936836875774078879461691634619867504990243550149311622810869933395240824336397266454619109924657666248576249118207394382264346960247959906979579965262265129112380707764651715182352436570067169258745825738519198734689035574500479049788104112279052312463091670315755124237526782194706548466712846226975679789295408907184138475614787059561315296291731557307630150086694053423537629426638897628757673471902933178442670031394405282603804405182432581198839963800195014083384223045036034362825457935694696539533665403845517242309401060731215366875722725847615082945876543035337307389505107549444770435558519774224077008103012804115137641684559106480781319859712379826386910504732376342698400241931054563422725514952229498773336331336594539612136176851830540284523625802453685833231472566525267937990497896178701560845676941093689323202632990947619015391846497311463792663801358388291694356352198612827899865140062762291713507147399308743681586377031672797577513896880948744927338954349303195463156770812044170871456244956933945113638951189987376324001940310322442092650362965337953582772371744485240848513934265176480904871626949450031551858721579449466304734582770088344263654294593878810483125551040453286530751724562609231296582331595227336480527967045466316901109776955662109618952754521117679154783884462444131206953241750777369643482937005003892225175495851008022674751327253727868012268802771773990996451486160088738521020717306298164363864859048038562460384623419496052415975714256336888828529614030986011920733902852410097715462105023967436588291064430391731993701316531260737025586613798238356428424174607124807478125692554042535166676587301853139628897108568656314621683931211672841517475945138232096260376234282637399547346780821019720387230188299641952801058331680349320055704705419170287401014720797848923259781481337441116152705783467189038452374348979270961358658006345642398367230837837206786588189493650191831649458089523479328498990792267635769160099086935381951224325892972722855684267088666534156442316446285252302966221894058157182342047302510922666168047646283043434762927673388642110492921049793808268401663273457057406125635302818370455881782830017405808055659359928924703970444134095615862730406077048334619277922901736804020341663740396475224564159664891541180118213872782215406956682296543440036966049903411820966040280326931235975647462716671198818817942535547744365649061549582888101385700595136551021134643166849093406209902085608756667992235213184163144964680492750030840367126982225494186259130775685285132118679242792686756266260875638501659621495277875705759402017696945444865531998472779916297761662702000152715448394548979741817012923520256647729712416723395138458499251062161826270301471719254407824282274095668600767071928907578575247622202205743702629725116140274842729790307882587988888342283300343365346835144118666545984127817709307851934545432093171425169693721693438295918160747144482242732205076347038938778837072556933700957362850026388411791984207676500022871220153542129561683591033437628611143623876453861229495201909168040689544101913942040230050848382834839436862599604794403679880361097392018328490734080013130414541466697349681249155431589920780452898134423952028205449557728253569884226404502443212801361491213193581740419126630810420278835182517953940542870326155929386537304582006144884540297167097653701576430029427602197592640426771406232726645642822618865474399797659607510815080030032261981655334355682193572089405107546127855024432733773815685812857132748077905169157368169917295801052816314850334473338372784398484939452201845752613088930357675877963607581907034262169913121725013115093364647519830759679337908912865110453118538139701093824853201464857479203058397380887697926130042146760605657223549087498299469476316913113954395969783174447576626232140291973142197520314843486974657386034487503620863007129105848068653992287844209245046811991503126825755148703225889376890598058738201195023687090972403597122698183743764401012489782761247163099911409531235908956354135047263808173742841301331553683067556694124066371512944254095895081061109538939561732184451594955132337929398557628494838068154226190499297225866837363986074874480360978634081407296401808832411717980221227843871987797042898399508673372350724155137782966089680436390265048531271054149679705613992807439614789108213667890579371232836748984340095986639437842472727614527369774739018266051980641403396576249804944894689991256770577231042699338505327700678545562662556016925717369772269421168554355832418245461251928386221682376974054087609947834395810160639679031428621207930470900495293487446717158625233346839389964769752572610350512151241543834003260559834082650976666788944657503290450067989740944441244462625721290445278175301935483698685235568764190849499352787657467246098306743282804366824156052525505573125427399816047392626439900000895374232425165235729865257662647059487324452790473504884351108716561126191289601286385547674830590113113513799629237024680560934289015929035819423994416150774340770063235198089490411460175692192842929515912997139171076949523409924587577751185381845616602330028806414769298990862437820720898575052514287568429537133364878563157995777732345169524171142910699191639482199634200683039775207610752292333193932635922643082437072486408189792038712517736134907784823493608185361510688412199441783526286979619265392555625974461564710888016821864198629704229341979911266752023117806411763866049062633624507262856866910477190759674656125458608529970260388699732389702939454420616535941688945655539913987802758054709451640493662534945862511384060997700607582885716632015539551134036687993949890943890119777879013109587752082386083676186137484095245989282313048061532540299183338332574514421735735494837625337569534961088759631931492425658348999956560327895186063278669054933013898357677349534173802358862792207133864178899796626531964399382069299836284337115606244865134413347154981772455895601364835572349224296972154273212741130015500229567422038272426739912756165321974655965034206694585644580346421125104593279356992730435878212916812307607305528313287503982112750335438419293048888721823184261418317018253113689226306884177733285985854790221814451026223827372977639677741698185676867503631515405028952136817458564682435856035389249864964648630398214693097451687680631264150715773206888057250615363393056653281621915939328527226383462172793762501452560498066295231228106849207554710367954975091930042136482625240449501976806073836205928104224846096739825514152159239402693512523030377141742922040210127234655994034413601247536371235484903710440705606951806614456151751453295567355437660938359468311777356668927963926613215748548530311879921055759847934823068535091487225853607620403429882811429283035726195703899337654159731556430277301560952328454496039808592634388690683323264368688521733327553573879968332133971666089430876773966162278217232693834596700990468707194562771355813099129421019896322808282971648011158494357203709749743246460202318969678881603787026067553525212220735868431386893567192279399599130461551221401802824126555838938192378340657925341173329896555058424222504936235628417693839956159193959813001513819601551664922182387660764481801978912294323431127739108369621847250065266225643682087206084411837887075695128697293135016748252975112977861857518120306846314883417106707925606246668771815849387035443608301819324008837273761815553370082840144920635030588828583840370681941889043893080037950430528594738259448225858048483866503641889449549007637027287947364727032452670197940362415778350629131326562485840385980077756006693702951565814221808627363277518957617699760561043871472960992178957430215995429222382631995362945116900442742299294886614667165963841232693868393699485061601514506134726924385204690289723584052085379849905652760840516167243932395452155393721780347408563722808095730027478043930992358321233770683574354134622645439964785761832286885985306134313570663250149009877674852111739107525526944601158968290600334704078845928335533723916161864996948579271728994428357113714622113187045812370894734533967832205097335699456138799232398064909305130327890268334873420369696911360616949205946965950349740353374632120351575168621529737249798951193420395988505962070580300428191243158313190975311644623618643275009581827872642977033128371711172957180578970590397839228650684828097513658058451654114174441162284672934539339386194342386835461416135074300345683876127406217244648381695538109685448063503677470579274347974840337350628024893047301238389719222477232456544196507670231462220013219672494969342966550717525512679148221458730024469310743541035445212691939972094809483435649362240018644649796562588842848340217225048525324654095778186227663179841510579155789483940041469330527610141027031735881723676672819210874572254132190266494666569006229403998617020443346308259144641092531714180732822609833483979709730915104042131856845455381080712257442350217952117876235122992462922687890024935032480560221394486606591395508916208659083967262381613689831070839709142292165381828854202454926917625608880621860579107908855605272550316182005180494301273139932423661761684853768845824442705992382880301588188396338408267314140997637899821998017014382960406049200073935498331190555975584736522407859122380069597127246293756337561085382284573579303365714811448235676165661769489344077115096944843508153366337435852935686737262923823961836969465811594486569567823295442710944655981690845256258501021521754232663836973753175946821560797911777175489495818049360516829436272025053968122722696625865626677408566773357658828377557509600504562929648150636698178540068385769111803161800583402183737214174056990854898736652199962011520166705190108103741034199707092058468658205398207128366084668369622814150401009061395272799154581168130077533938059724086894552828673946370163532076674163126863325573348254066551538668388276994144826305605651536785999291358222423903834336402918802264834043925746824985491440403405408166174738484245174460268344469127527505120241608688705870852274997423137176686439514460616621918990560588028656527857278132099776189250403064050296844563040694857023116179986673517905727275008143968734310449479163686661776695913262434273669092950630504709376932406714853998313068658114978081643249971819525990763442466575512711071388097434975044974427850568467562451405790454296448275665914678101042637804296043180198725339540987181447885162118202168620264828281705591448880475477261271814342958169303183031092893276671962967280549121483408115420869515117205393582359000865975893074794216810597045261431077783109635279585219642675744306415482876764567459980213715374089068671912872424157670996985610788761630914659804301217215910024871775855141401331387992099489750461426295470023102633633912897646295324197744235753725461952134812017492629829902358118768617532424691330161694340000626897214825976309056005228136870123452300386625254850052984330086717595252203268898048719165066989772751406269721126637503285544258764745819311953675187464892869748273032423631210627076104474225168643771793703090151297552706919138092853047690153620264239823539315474900570731118366349075709263941340056455920114152375011018081270285766220220215682950132729845816909489488265448076565787900606643994788187643831148115553115829453656311377994017364390998795159969563053633838131529625917959218538489203698864416021098488162110423485053613399279166755546934859067059358604145801077119726550249702855475381446708510018267377763074812556043094962192130323526166751224506759255987309741263972119845320979653269621106599058494618777642270843987856483393420235374351679020145949870442102463770376808019620061807483399304824639194630755508597315978843002433271938017555603119271806017099723609675614574986408707047333739753582595482142658721001635697865435031105649079413904282927199572766220968935361897413910237985065631554311750815129994969006186581368951828435601592379562458563634342633844224528183616442184992077843714984393684350640561989469841438164283842380847546573371645541051567190009098880224217490676717355968217959140293101917162069818889004891162671963310410396968543478114231693196182239058956903045175005873572943517841205425261195432031222512365522096587182925035078638492685059816554325401844092911877585572743894509911392125499438842637858994449657239049785202130541492709370594119027046186163248262423793953861781914164733347192005241254670578948899057500702438047986179874350278821687338037304520448367937426212078590996353249157600940805528144672850431590778175611949265545883980722020066870683482170983700199998474209335463360506102114767965469339721620758144567196232843665548721680585624081652200753247625561490902299988088697764470553130861837938460706792360526080690224701873048279703120968090302785061596190390921199780828847529723524376879845982697728941800304520245779094028721707712060055369950857562417435046454572584363837988135447106205018304868036569389329040587854068310142711536914995172557839910779377948547462573391349827718259425513091676961054527652471146066148889955764768586447918768400868585300367160469319253826309740475160303775671792286885174363696653645980145591809861269956072228943014810298837637336772799622247417271915245869813710411805951372249582495929327976556352286190092886141737282580834531407620832392378874199347971198702363438170522188749101451167628104516760309475952357683806086203656558943393296380307490720414124059082561004643592934640441813223971616815668752323266890779478144087695563161994699447906818467883730694066594099599567095435093123978806359153546649049612999193849368888239683802705847035034198396930135445780626293156171040565573873514494975245466461786472510110604187836530507631699464062059900392985258710889628333637279937207316808793327371887696779072585406566193315324170415778821542034865398137510239419782756985771686478896098709599785280033678824002593444416448634423790025340127727578450545942308253048662174217049143115291184924638667635560212229591926897306149655262448911922356581662594914252698656527155896089440882718918101914895918019672982929432636858136978745560446201652521556470131915677353098979177545494784256993691983759255432204756840256491608692286678798411173721956389206307816142526600865873800714780733729838341198889595755911954470209368379017244754925467476973933307105858713155203919632136339525274797279547045854976315350283266179845304858545769307046615032484188696461595395681612595505773266287668634532820914038106877370238176596032864435678613065293117578122028667056445776751919066611241735529053798141125362422446281398688136635283186196161583341747967292327196739391974440665542942909013711000233195604434498040024108960563307927361850872405905286965969153511096996849929199607380468989567049883752866191442770751497751292904574021537650902680466618103374472415648446272085602066665862611201492959352183829703015582565045684357369883591456746663232779914067962764627605277887289180771592520050333568416022574279192985933844918023926602389234240986840839465003054970226077202601052675179079645458726124681783658170487967582603080364731889722832659509698991307956223725636958781105706256911255519764836959324675780256483582096112897817429628053802184967811581318620755442064929625274797677853103809832583779381565318817139471611183348403606564969384821740296761229042398659979848111978667167184131261214312938286138413335286716202384155841253447221782260773802014180554543379318301637081642818033353105111475055449548801215510500727508326653319241411334381063847777616933683398785700820392252824964370419982669769851688192255122066576125679206788206876383548014539142064426389811835512412453109644992065240603960159823862495317617146599811542606009005283964072958483906411467643165552570684925475294091978896534258320925293705853429249166252788525300870816280537478625640740487006852152926613278523156409251819832045294194757042840649046525380191366632763483967175256174704231555987658822244113760997302009309438641312503625206531559936268740457535643215139547068950011480923568454605609572666558127363031203120133324381017989637648904672360814049720735224187511097175809819986604427825394512319821884229588228355531910019392569651090304148197035677378599032687385002900291489365132662396365211483885870972641189486906477786368790155487617269671096389324007437690121321634869514232532906498552879803560558239805882674652418916272476858347892229223515058237265789714686315071747356987597086968799165657375250652603096594826238271272351394938648599880160448048538498907906391440281307386723911677548421900962618112605149028114424137750355187159901605568549347045241683673424478873264798855514915009969129061122245019768439122936382943822670617734781455075792196429351636562102313951464932237931554717954667124494014825451507749283767516449911623586818288832007091479327516499719941286748779695745255325557355381975461744781109105331858481154945356069059113955305341787995657185562881941269775797773739582243561315815803230219111339351023510969698145857003669175718571641055137340770740299955506807553266821536865634887267000844673243325160354979306885726343372217526676649958078370550260488592111202113804719517468242163082453281652751085303587398539216257359320566919412367575617170075673423265619101743171087059680457251609839853295606759634255407233588592374876233336015420342082147840877012857208369983655193443970804946322800353187372128955751705876908548738377421385234238603822766963805250473154130477240984389639460387862524874500794094970952682676195767411574837870062570539027087432012986764865250392028974631169950040367827735177163929732048159621127640340827422813233670862346009245712311252256679465490748436909969290902291026836014259590753659304956051594757491790042540072173819412091981425938591831746400688227445741295730375745407618919782687224846988569702442567734683197162968766703635302417880643285586786069388478475169919957191936351889362603701740585889153143776772819264893134318339133743630121668730676444619416069057315569055056067026127211703067595270156210344773943835213567397274212859734036221529564393906665421258876573363289593843983156326367037168397356555167083773587998612154228182096202303244493814090379723549687340530325088820846799327140774397344551839894420012030906495151801140611355322610191988289318769559345253862164138759828583940815044225347650652610281924971038833755967735077307805966681748910052926042327408543850184624381169702036563851354620827109610894402535131247803047700233738028247733449479244642994756701274636729897949326706320060017463218024128139434631913828876970236866469827377341012443141052509233256309217331796196461747611614349655982407181090800458815396754782131836454437648098126063622356651149688503713241861413287801456389480752061121599382064997936447584885915359572235653573339315887095176157964620111758300277834173820794386703514863007192511584704148774352920942256403381405561013907044733604633610352889383810537318002810917937759871467659532044764072368860116914095944091283774542263931471222775245242384119855675779663237460357946055363094758532627807537530475700017215755119595277201891204965589846331655778686459723135181173790152953558536003516329062567641777535152408397907217591643475242779549137776876710964513241942123957315926901525136161977278704437770453039384287524107905108895705297524758489966348027426880219502020319734380778554353598771965625448779415581081142998420433428125756494658120639084053756559046709226982306336345320983429935735999217073138383494134812441177050124489280433691988994588317254545080994459064058321972032356347480187368079144390956216649602652639053132994627364006957878977824590183556670234929425821820983573970669875746813953087050706765648393719824377571423214562793144103157702182082864239545496978597161712397738244479696942730971509352009783840839323436898610125525942228817067561066359559595342870663770689266581627292973686698376943907930327825835765497009942988739461363870020868708655295267237041169853164474537548326352717687929801357345640570707662122513857308256036731845807431020357494009104654854021875924505353237267610638174612365441208940945547811316804124910974223310746233336800868850626301378629748504600515017642355361091866215149597549493241335356688407080228626487601855389856323978128319688409781920878418628122510481335216069219596199230809455467018629110764093876509276749693574661181217060313298162709664360960751996542527079248015055463517862826718470008211649296076741367580672925463715475180812505355620953681258613446731983398102153516897474766427282682571964878945921661275941365439945830455867929392771070567534365439873361947259134152965568890918588803019652312514029701145009720275187712579326583016482185736886863966735905953810760737754880533304247397429308844893309998133104298133058219799394345703837843912626457505332787209036650665965504273081687376528139032351643966567204472668835343705120782244387399073018733840455954519773328871946281669562144431418582592205673494632729973440126812215234123847862149201157426946939290305641688302279280088723223338622696854986878566560000386604685031041040451147917699251301037451766086778392093442507121504750142934728482140765945974955246691878702974182194185942176172597431393438973312620732892651608902159645342952890001005224933998321539270588978745288314322696370796799994169701708668133759877022130698083017034373385563637815129800325524496503046800688203589967205446846154279383609215026501818076689306911333737283514663108908271292472668373711618152879596887543733818415122974562877744831502392212461847962562614675218931702703303815142822199616659786234292986316560181141407120028252445190532921282945577520858099881140382351550840650515966089131078188437972328812706744197523751362338831371681125553123714633797126822903180307321844935825946945572828464182168378165571059283207079955578052412335863728813035710832568003916708663917184630144478755273262058731061195383314933370124213473273200454575405746487587049124372785693773610930671512592286371819373638972578597300771109599091755898002031008459182455071831933121283997042194459300329586766193676400679542557385255544902468787274116196396729233519269927704712476642857349558507538277231775830950487976825098313502196823827420196217665852216334541446422768129478431185637854936514527865707587775498851923693556303904788060833157366675490124188016624827995837403251344730877324755741580537065102022152184562728210553595385243602119001590542422253619226154930480174823380381943523188018561575807421831185182521254374707872298729277591578650612082330644429143364968377801092578794985007657748212663928282934250919234069989896984816813052506954300531321424811350517250662017385628887755827502494078744700629902961169581879227127950479690820214135047337354132909777760656724165972303999574934616088340896000837926938149659541400672695448357297689252852973209766876714265057478499838639754637217493521845832736799820416348737917103042952695930258257686289873578347690551876166357112820495462977982730798362597683876856538603981054238345934526425784055403183183529419577697722898654660385822455917980130275819937948206456487614217847075170502981441478211494317508672186960310819161448758632029035691818220276969914987007115279154801167699546345689685063128868842905826469279931924405987502136139087727368058001450277489844491799105796139690909995837698095309864089318643353794949096263652773377697927201452408025226302571509831698413160896390852821853195709880499655550569691458992680049862172156754843359466846739524444980575923685120249779248883852629695879165625368865150663151849335141331940320494823419677903460413165021563934211996818187150415923700016330554373343665346631695487159161821256453672438665794737901337955675505207074037618080147758350373195563669700600277470613100867426146784881845934526949590584095530927109437956466250853335678838863074387434231879835238311840617523222377005333594683164637159782394946401707409153389338879108021585808001547878470092313639227269506079478350387243328059694279439484836022925180320524790591167671641215204672405828625893610809247043862860388057415649979789073221282705342990234478933882243995536163183197822769748555877835050439719364506125679576939795149571107163366131554636234812701164463562046542844436520718286946446772932258509031013028670644708684477924341133991133678672946556815548092070573966959889594403351593098708939067384014017326752733559830131972899375473944763483617069481621817293357414130750784138553403096861304433349436275553374514159574312925655928592125090948287339368597879185055360124486002156373189441401187439335156709909382452989480515579932318528304638977942414808266007822538568816592949091477492940510388675752735886745972931152241625693172031023252633216249958028885223278527295919130083908959907799452240538974199134310809877708073084681743836464340252202971987461391324683736280709622126813586636168010029017295866050196318030526629200678645988889530702798930365220912007907661275780836595961680378869123369319956365888044728691299375788490357842034967816158233268593189322461324773319474383418519942013112525472522328218188432748687193189060467119074766786700113983590369265236206558757715008701262181361994439470792710608104292845955037714406029237482231402055192840393591782975366483454884683595096625381350849686170918335505733395811122515090087281889964001266133941617244358616261767998147372617788552005161078874711104562750665976552717933260153977640152210270841387261596553379277888099618243045836463782112835115135543824459673382337518895720972618259680462820203869567655618408355939478763840526528963991801420898936301983333791902073381702666319601329888715641644576241691801566302002228728080110562636863399393301660575997828922526721241559428842389032628233146483254169230439980989527914545924717610967521091320812870554444217294819006151699380820682301451699276503660762597061422184819401935472654722671826074521707776398000489322607242136151893178187474414326667077404093149720433926494246834289925446973246903062560549148804384807296775848545965725062356873183049255953484296330483390907276354324544477715904995943893184484183220800859261002013420364989496979547760381422619426404995703687921899527666394166629379587002278166235763629969105552202985658737355826745366244175124940748409366277589927010219851779537200760926656233207692195133338990064373753702025240096765362152526665527830398790827086889555357220789962096649444237256518214293870321094492731743047474442114482857222468306332928305974588267646531789993728858771283409265915909343930471499771729239723977480944143613805818520197300328322727686726052534693432640855972230628332602540867148386564416517706687919355191094168541500921898229385471870277362460711594352760189616021043776196752281911840549371243028678176826329712689586439129532474425189219629025236477548301647695602660622966612838573910917384314967061188112825788901156404170107066921385545556207744106668676748403914596397161342526488116745971027083292677167834324498636635801544164140192084650809200073477356744943956110483340476163806415590778288097257800492810850386725999644388645232452623918009157560171514640328464190359818940592129622461432526816662960442501598133149573051966157663703546697314475527669178025953583966035609757399737623472600487285497136254333569657002555942048446222767816248096365461726104999821610790976371442934753490892831708137904806867658202665402667378886597836925986542605437073018051986623432381973729191309630044506634322752954513067721623841617664557238956316822616558457045051620761000116100947043924173584279882740718134267515977388175277874171695837082426752106624581278910068888451569651588354595969072679248787094082440858684795530256460060177489365710685166863021088586925931625281642738121001563951766284235413887163986903568743805129382817102551647717660348475181601472410152833507077632749415325431703246113682296341497841957694996884576819950443307628937655559462661474076423554922044935303887943218576449093373489351704198332642976331584633097850425397853563640406571632694690488720260327348253609120495062811582924806722638995548264808893799979999977021353513595906308823731432690115656029770399510465335124980075666524753901796679427980303739584085421117846935812615617370538037758892118826284585082845823132222677983004742715278706152496610280116159061453393232051532708453550986190281044471061009398765574864069972848298898327461922467811066652110583361340973927500820446323595122814162311968482004020237103121963377013381711771852151165638353410234833968083316753973741105124212587896773511987313384149114597675738102688652443230472102044387045572774638993699992655282514526784695560618811682078608960074353180431391793274083467549983694534256848178598390636307046964531191778068000614897513842902824110635661786141407058050536192035179655538443957484036336173944545158917271915324137744639496965658713068839243155140826888751515476109049461710797848406768362826409567362385821880518370531899605225192153394311176823863923597265890475475494469185610295728929487395467214822549047544552314565390448186344465542617506780807364619108408062742236254448271282875357033179780873703890176015472331305002318075724251933112933981682171613393298027350713679034281308860112140504858413871528681413363316628090585571575851838971791582958977525522914304444611490140948106387120303659669421755145211485789831448694139767929448464022968935321549563646713166424791352130726738487815157325282556801190607092332871049291979622299664438822046710619726980338074703900521112333979286324949956818464187924435255325741912119407525767371130545835897748337953669665285680362391204924425964769028035058328433917168213612889768496635643297976192810844246085218769124297095315939650401202729985380148699620461005048429804872335671096820501195465318814839052987717236659908613489779753008786862811048862975960179087680895342697311998015608529856664606282659222876409165187417498631443486018891647571401095646975781818993380717023061797483246632115017621932110388905942811222931420184046723661245242206852326377567524109376137327375962893574096134805725891221052571676225130121341444767691930103060613227940276928889594819373834323606424877059640959041277434238634587919131406484605670548981432063769454652893051619613267228867068656694301218687131511439773295966296906452181025696834473976269732720360842225213854810544538201472283634635795193710275115318185390069542663887168942315636999036203824364413222055275959587383971737997314778261872337402751861663659384105464109760049638525194551686431380984323195050905177513777051598289590437810648577797317276950615934874036840244571705941394796880384541390409533664689056797316659638960934284837415551021981772513463878584457186949069092853613127987971133708295217060524257400367894500657236393055939320274920643841817385232775429349925252637826660838727902385076650771087279753146256308441844440299926716148624907261367664767221146537471399327354902240543818278880246566206944958923579794011191956592392507224748295653284197619616319553066148580757559351283732133319213674429531241698503203157042559217480965333634380784497236251956520200031023878969004435746565977748159854031200382102032892223088771636354986702491460998184431178064389780296953924161016643984306128495482562388176540096974476029135521364296393081730403968118759394014442043429640390511711783472350714485325426377621501225558495315124704855287172731539132728790049551551984304887500546224649074161638803014394530278372727540314618452273194718194772839170404273888408400837983999898020512509167964580015210691093429068894825707543932379385987320918206395964282179049639741030648436540230577215909736968147176012796285229369022183370140861669947455611615909708914963490280399577259626972711494257207889549780335350907497143952920610286532210890196090508191962710967545883291113864939583480259549111871983614220665601100236485971750512734565913650230539720682159058507636797071242638918409827977845165495703463984343285712933519367254870504775762128538078794479903175095986892301839310893574560274869623621907494773407042099506972449601132815602642147264938176905706108125996742597754147242100328762248475695714387565747494065857305083803402025014914185837788262326103079916520465913018331323247031883918874588187154878059413542276492417122331361142964353007587843986172974031798003558637692125612676850309140765429924344213917344982366972241357003291863740511687217601399352079113683129378829780890311358761904016291065119576312980546716866857397667706705651694241116539704565162076427214380729832283616946934565252697442128586311608844903455673917431922288966882285987500385048780563624931829628205265423261046979838283255658726332817864712082283785303575068074168033997778997007428553489116768680916655368518828631138705196446677467294725605088633488485210713281769894477006897573403436628080020534497312314338792788107094121285557320307620756874581779041375112039305999090910487011893556172156500540237865654042075319111405370503240106013578606950466906302479801828784061294609803244471576603786976442184933981175623706328293963784242361979220225523762992849050623687651498220537631606343490879831565954599946883747045147883956288495331888814276926392366716725240127152286161173685819938870111201305284888326020192243975067802088709073704711019796872357278243754119127539979751565965705861827938386630745497668877669723874644770165475962974218190366026245500768956704717933982387510597887342521018685394441126076325744159704934530910959026226933601959563990412583797532552475444435691987601417923674643206262530071056927038607726298855573641804054168002449244814749460048968391443252621999865456335478825470959973582552282208559729958304827996219710819719677915534196826707953871841572787837862062448778299177218829132822236805999965227876582052913909556352350253525664160126043622432168400450088667056776757364463720544936762754311961806531970593366139951292280832592922502937015877615373378332617935794458663622778844491999556240490032314235322864222019742486020804290436660044542422002423367273922483749911050411321278957099866206709978088410159676676774369934046792387752155671830042300216256044812170049008142875135926869294258699929950642327471021853894347724893998378902998195830869944391101060044819420849056339551329361698274570271077152587802160275730932497515067379786367816983635021831173246145330033061885285122692449025937344970494407245314759374460749369160400946707206262851582488151674493922915408881517778585603324500057588124435010801752699975696410108693742344295618837983487724101227092625478599069275698038952315047751120305402204815624782798369044097316092936721424229910999343836881351732618520507670836762773513918559832864938112923966997054945931300525309820126857850519333343286449243093482658578031545090204166239224880143478956170880978055907171413683463433680065357645297141209040773155317751610867429868538367624791585810512291113567821351093785028423978560064438968371428852409005843645330297492411297218685888958014372028527516438987489692452979144058035614415809532854767520272202578757722509534998224789326527892283870608564243047074835070618189983653105015982007812489085013581220468152090014036248334921966522375190554092979848279591727222050367196918562153930105789089715329917362379700527892861986037388843482615181911805456750134501196252650277449780237378762032054061878683314498058455893263877967492531406967181867799524448958433507581906174710525943494668026701375872661076611495694444852125189562524076731524374758679077279481648955686314897179059348200858115859250500853752202112095492330216972414393600639982060493903730433119898363970508096900995377836130278948765357176289814538593603928702282000598917594534887546580499291214133018626115118996317623899978625139431209912984242256162487417424154032721086693054730456844659403483820725206328529238879366480820008330995285298033074653878845741496299988876293074322518407659553868689059458537392565744701158698465479255952762450089383318959918631218044921874172407866207338445381072068582089452463041314111059883675450572574884812470309128874696455826080678789457022383988528517633316907844772789510076801435520570987385479485910209830040777406265868068609004629559918146919147819685033809057488499978939461148151996143267630984079901003673843173274018652304115010359718845533628872481674087511651149297669827485250385941680399403056813169692721585896537986573212140594097990624122986100602843118136192944539601740555188362627483432741244370938688236148432014854454472532461601767675337813578067096925582150664813330496222235663653477872823231692675571974763245818565085215201013027606036727104093531438311743523861495177760333560809006860648038894793059095616656474819037118794212105609584974663838159173661557024230184196436283811720034287683904722102150334796176589905024298892964969172763141224765441087920991716532491044109304701514168140347793579855609819499767289382304921083085257858066729490274204892591319737280551413730328858289308411676939807880997695572452434546754911416329288536790814604940448925651783453369775651203079089826741783244098843043611243174819094610350185997192566389865573906707168352969444603114601462313823833984285785237066063869254249617179755801223825715106582955642213542314510892742388242443755804754477150580168134600110238349471700055332169322471222300516435927146068242906278986019313335714509923930016708663733406819932887631161933996268082538453655034271470692164188272718058096087613579776347086087806701787284788758311782337625574522376169868920064690050837367272899940073127850717631038575646305115628256330891269902309400398665015813554403076023417640957866417546056805728277163166076756912832724308547364279930118611774526689730668038978987245179755198796969207268906114655091943584816544356306052558642748673850640651806771934047743744058898495836615083942265869806601822607193916508334108407849539787371990430151510378663975583065148159583899358957428281175464755103380540544955913711386422004091425406973851485794963526227803717765264649762344864276073579631639150015978413204518536603740178155229437136180175651088145228318226360007894815689794717114457124870780270378896657303903938427556382163385925440425123788446820188417852964310437049286514655403422394178597854539145562144208537273558802407165682987856787428121617990041368644234206009436424016631423094689794668056447381069714001542634276143156528522596982435934667389654042330811398621015386039719521622895328715486190511102450700291236491285672470563136968385603831639657116432727393132423151492046631868478238729891261388575188282533479628961743515819990351589456917193434994374195417920225819868357096406315128141963109659121537090459561994178187734789358112149440027580521648832248660024134880011237600566312473526768069041704823275118855971810133302489297333377823966398769127701768646560615903030836343236006197400707515353144470116843614951222229888852077064861553396618916296164693062084018630329794884503498825754890019459929784322310646942693878506663746441929576761351466924533652105783808710979521332366789413692738790030779485552200368912918962888027347958261575063473186577682238103574256132150345186485640136909078951148942407768676499065752319662046619948208774018738803671465917182393183386225729862501274815187251361900110256996712011020118771210940609558480845119592340996491256266359651693038820746627515279104599554447228031754057246906840409598711388070455607176566087861907300686683512547488791138036974775269767011604373926352473237627466921728979837063083937767309207685028867269332580004291363952773766498089300945543981232031577722299085619619943874425873166719034112837162387577047146221300235296186362725041948634566136877394118061319781769805274407969633931115604399714589339980422267597561803003717861467908495830842624405019930749274285996752476869345544392670600036200603057895687140759536665067856265315442665140005294863182256824607702860130244131734617203931538833649365262485765130213697852804896665854917172723562835606232458385821333451884311101569917520556887395924313010018410663119467427885836673089333544080229140480919108760344873725741784867678928702009355193013075719303540392592203852589260729050553533011769635801601418096601061568379264414151420555793804971219152034231221758334232625091562584661876432351344238143158422129013613777764294217741545724150057833994774787184499083171755307304684021184156046890025131918310296236601024915390586959307987619289621073055106162368939713015905843187555729631497824121842562186595298354086583738378801595059822297393196789378726935182445229503970743732758071861293186819025400615166252591772092263301302187561037445246426584232530481030632672076692858354943475730338393912805852276946088185317668650377813696597459801801971974021821374764214282553649719741375894658868554970017995815443770276098862589909632671498520641640919815073074375266698092884102200269155519472464237613991060878017224557485425798157212344896986780560494194804382629023980757387699944834813534207324250584509823282310687186835434015335999838467671286295982196797174548239804050431205219108043355089396535397182024522811733631593575999869130701742614170926432740872571073952601143440641228096254741429851414818215091019824395264939546442061770368809086792993730535087078654995035819497473668975853616828621817271160371202638676892599559257865481011642479366859725621711131303039739696834028166096701224654296021267679487820424735518070370715257664555791599864708575187967386721092738550306296615492278650349172977582688734959384495889135919221933175482932433849971066302153824395805458711888502823540114055721624650867394407522710900506051248231250865599786146246540026825435181844310065528157127628170324467447230123740116944759851802967689599694183199026476042191736463811968143869214657200060380192410926724659403258939208085363649268187186506659164346082263584337353444924961282644581759654816907320819633886145557291888821608949510806198341437420227010194513952614245480668964221922280309873480034960146902190355559322841377841842060556388423397965061683014384484265270280728485628813603095984270933294500446159521240770183254106937387469336181623457296151934409383869720174548575461113924152546010819274012823009925908372110419975533646182169825519844561891408783477728079422988241949621644177925589669425073309740117580497665769861120564695049616188841295519365913090794189290711390832559730837383325694281131224476943365777874692757364316577421257366751050413799275241480270660222115876648775481496610124115378566619801935813137704986819416015867574100824654632313536104385551522877303098640499272674045894199324780472616792983731730033019213172089823182061256101964583108433105797341060064883388289725072118971262778284293210613129952727311681177168935587152030059535576125048632789495460965276146009551479566720375417496225323266584029558507567334847958670738624807009910737689449258173837908945196877609340565385837797713670376108000087737750968250485984192124620874513884316698135019755703363544162904753914939953573457719216226320374864995284058085909098360056194697466025217522012119707400051972322005764692009479968942744818222484646819658436350652773991570512811148265833553535968669209323458470586423965564320257704081743246229434618124011011926907074224275814131457304620372293199635349672738892167132092755121882511380527506061205311522339706114767882174743351368522049692849460199283755372901063021849975889019300275085412193881126578147978271073730059703930691741206293044132891051742667608681739062128288311608790053038808881236234975014882819972292095785262399396332935615035480771283344230285729202364951559847010104041599021010684372222969373068557254339913384819465246600479678498700972771784676947389075647873494494275611616309944376674668757137542241356373493519991374644829616121828862013503457507319522811472793512479027874621371701214755420665794910528025114595620731806401659562766367465255647409722374331100664916041249716662382920846338032234143018399453003949935575426741534819080436370137293028628726770459589868459384729619228349608408066491659409325735865798951930510175897546004246824990108474153176055674445518515332713703293642883988541436405002560766527250882533638498822422357061011298944977395485349516109619095460496527718490856708095462230085069196020143387966414124221305682668985717440276833761922414597000807055340046102165235710240733633940763920263046685641849411858019795360466130189195952617204264011822957654379826636174372452319147418842769256070035315343994094708331439382290275869810429845080579457095991974677382999160466236731395505020783650071493902432826225149424559858026870553951228886262772005114501728558984229702483116952804696155589565092986343987557305174338712618274728278380656783863047488154688717849376232029703203837930522893812847933044895234924938061261790725167563914133557408566860372129412938829031563139769665168079786817367603729367373615292872897590223030201164839945817944151235206570444329881145952992844891698164661085857781555143664091911993080038537321591373460318347912742438289950765545565085910513300540568680541637134639617750557939691462635593021876809982108640596284744373442756694102986728644001886473101713899513805405324649857674661364731806975039872337796009327694394233080497037656112027817278548092781292803786031100750726926685374219183160453431752502185172369877208104648857918463132293305993184981875273166988588923263154135699254297077347522793675685668326830502604495995465426274613362813646332489899334024798865732599988519235739534474605117874957818696140505904181035548688091642194655951149709110976871080253566878555186859408760871538390868172971853932272257130514375601616980644078466965019684918906630027809260244831376081625079627809919787142145974878889760540938903515820872909879996777006793673645028120656309559223919687265445118045915322459783937859530269341806543657046026769974027966760905537054365593043257515446765513488464605254405938028727193743092967346260389259483596893601829963409994278302856014603779648718076736165476377594525759189774810014132776873384835334672091614509206602653587806985789178124344639444609228873437177627584276163635753988687307239864996820362070702884514903476261663738869353192279577377192052537962282461768918510655287867144674935348617718229467627664315998832229531398759069155191453847432886478531133801660424382351880275990955700210507996845879485307747010383997760237773602945467952124439803630799113397207472604231986436131610666944496574844131810097179448882966167863453709899420937701678316191246189180709302239486774192775810314781867561222623870686941812024628148704713230494208180737913180053459580843939702767742547695850490951910595721688394092948700733493059808795313662549180405855444134386771969996180759595755375589338149084130190310376205212908078982421373050140399879745372943828516797300844166999485896372446662071239839314064226013733418641283318452190091060635003332424172562318044333157039292788081372083576941806901856253288599732931557019257670762752363288324589775079135876428978562821626721773866789008955296047792091590151612146168403803374482142862954744659343195515845688464951971123794248821713234164301693459264422896521351037828075264321617783470644292460375939392615812598679532859287306399389463650652564331612559060948213567813421409298432197434282913802146055307659508522848537456158163943881556824416691505648045961949593617469588128890380605562395241487541685207181247725921657493514360183767156976628313123412589022988234600077747254447932124673541968374144884876560949444196588086958999668989628716916865977600260896657631702298031244546792848180735553419526130546062271062686327643975155933513267977302401826402594310194752652281892633216688408550661569586245919918007158150136028728136196477036614748949508228650502411088635057187627131987165926873228414917015744530133552362005848415487270924322719735924893533700857199950538708225569251134376036095590430423059426843559248580654697223308523509701009474534767926982638992389391804849633495562704667091460308904341158394688232959854620957943636734096285685195969897774396452224893000135044865821087164777216592543287709084073685874016998737840454821540421381058759674638829263807567355375503218693560397800932232173635523649638805195362092739744478382347151731096834211102999900769189189340469210122593266059374406105203505982837021981090160781997645246423903765020013139349931772034984090545037080298500132306118249985748650484799983842356127896467749656728040019482441341221588222988822977583800896655829081011773308680049918274559991372653096237398294285880762252190581174006431226481116289424147179953867676937596308454243980040352065587369072402148408954750674883773950654996340654675872937055298047210401432324966749937541769294873889221231597527825793621152742067348647102669237440049071524380067013058278131612882688330804714574944774520950801612244930089907916915512389389455336465933378676889686511254210125902851831556045093121571348650679188386010320038348688061513940065367393818887057345227580086050652002624677046153346151342374281833957733898953013933544406645947588680137604394656137575575621659624417769283583661123369684127017349799842911832664507067466469107688708974468028487750849492615959462466101874308536129581709349872707361492678147997390403592340485350221595210122223381366687902833387981240907821184283864213145259886767560704786294737775761260905928191526629757958324252779017716593194543039284386828114358932432484571592066636235947196873224134512133001622861170950407661634910313421394632519878988075329652011591879332954779336281952772455284868198513855774106804771852702370283516066577067380194583660340361798516835511286348171786816890561180416272955880663906461831614750496004145997031237613937632020007452487208827386415828436925195607280079061109624519985539367582604876363027542298430961185110257366505288661986256209537799924687402965145587528879011239153319005894518391728946353139650147348397256348123848361240855688163620240010240903884008169646500378886294362684646720876524864122916902859272369674926001444875523586802690374470356424137294438304924834760683121893500384605626948682681154054974884670334229079841404424924163832330325314999503799560908260945014508460487593267083933530662333167572855563231790313770709503804000329985347743220058539801997236828683616813814253993089484414793884941504801411040919037363828162137534899976856478526760565780877608375475072958645939372654629970810792983303502398934755202007637895738058327404064508992702940041923837877191322381637876295555690231348647398941694906992924655135772788654645190772186557571524477873411936493791790021158260991559843967924767677951056103534566193216642472581326936425589054495198087338525245478786457824221395691393945737780534668186461486245475954103069544853516832642772977665054749682655152421801552019035779703484290191527581201936649667765371596739548047101467899430811478624637402312386927999490695540427485735671949512687277311278181007870715141111727465067364652510733214198017689875955398340280426114619553025133717637346467792668104607188829896575997617498257117686583448972181800406386144750947932591441394886075052345137644989089337168200766219256897315053925392294718799835608092941298617629889587577331606810159310257357928444706442009177403273185873903209636489245996058846159597070473722750713367705997361853474331298222418729279387275803174132430142382819847124905395298358543315149045202105766166642924061960528766992216016447723412846539129064301591373255486546046213121966905635426233179150448410467830387289182298256228278989192046899042807402170858399110309944778134488896172070007152236456152486708568924104757885156779036386977825597012385840021502652043362437874832139383852339585515391562644905471063638982287902522069244353234880535755484667986953194331245885973303865872257856726282101391597279776053309752794947053575042318865994160754256193193649741150892825021017623127037969481632781640632832807158991018237309482865411362878278901666097225533630105423520465578924953558238444669921810399749037551689817271654712850738114026564253332969430958276331742731622697913291566820342288557163141979743318361659551222588831738468775830283865297076240090353193505607053503502881394961381397032464324073620776445041117199422660496705050202906494114692153999739925342789058764124938989610058778915503431801635871815016951414692704715934738387499592667232132227326449748569891836847482953029799354066000421343907872784899603639424882223683023980771315515180277365089037515471968065795543286816107847180982615220672651029180560025060653114039920381002331247238416531674946651472075228029231714720425249469757161683505577554366703278999140058906106028213009564487858540661087348243201035553387789426302921404812714621745197173767563259747902851427567092442250513014154059481974443361663531291783171655063967819773863455421430669538827167669470866997132705043995983484594066782028281264031677661146221464824451865306349003394689558281063848287001403124877201293911031293975132661737302991772756264805491243036563220625007412275300367186932466597480294041179619016643266318931327021610579813807239187800604227693812605889970416067407914686902768020046397934984006345325405500408762124749525689655775404414184486277552551392572279944077096919288426159196182499258350341272840380535675174638269664669945183114271139009394918996736863317386035605354499509119482474676721931688826730040849294198666934828737563235518720099818710712186922627198791841807575616143449735487239499726945920081594726783280336135726123589240763538198381987555888799810242226978889726569195714087701160870584887874234023321052733099434300037600991089642102924294303359297465673049732948159998100879644521846177304036890814253107123508085146780880622449261810233930450338426688076300366316805752115015829372191673225203393445619863539866662953369698505043524414785402964043802928363906378372986842762059169487749694897971228761566497207464046070000572361909037310929491741818320257732396769310605302042774451149626085860774415744778306049925253960601274385696708704453422160983316369132883370063258677117822154202949255107424001779206576061410566489226144394899521468087470087286415262985274191943917138226032829260443091964589174926903520301450939371548005035866348340428201210823844731644358344830770394264298337450685590755102181663860034562548969510869915891972370583387645616140764041032414942670820899896503458969147986409853815142889890961761833135179453435032564050811721815895028898207344051386289438923926180315955851497569470503506907029686064274570011423490712248365298923814296104869371519906062356815407596352703046667262671333809342173243776113039994211261501369123961180921326278317074375511492044006088619123466312804718159780543625334299573272362177632491845338949914239239179853600584320198005519823490670927707578146267663144261746755828036302162437574720558535066749182057117872958677280262556809139731121310327246652955251784628887137491637165300170268359873736317497256176079686568551752008285886490559092588984145859341633964569502159325414625612788282549397555346340593817457146865336628781779349157090376182150900104453328378568632687561802171537211741811170914815872453997277858099885309282247628240480796046700229028737531404429712675250268218650332049342868164699860932750465042765709154829327864761444766760335288908898093373820799053603197025914769912356186958612707625420081433597840592595831404723996750042530995957533197886390826547330572205614370689806104345926718502005679451626548867092207137076454092275129549838464207412259020755625921003620049844935831769870621468746530880647671145169782686261728496919989718088785618019031956724776201643757955406262981820288272579736073747461232381420411068723457895928375891067489751361216018102528135333429527074322971906210705260377654644476491009797713050215272636019910402057918507011980413120284186063772918972163910615009213627624830491539261298216802253592329740086155876669760910296206220290752991492545159001804763146542829623568982804724301901569032950006987739330128717660546257419718345031561171737123215782870214651072621668453200899739909593597329105872487475752147034413326101880254506381151569164953130560711580778071762752156909004672148430820002344562761053290161175277508722655182307794092605707206866632133873574092980784953780671755399552142130633700402026385023124545982742828187127504460884386161893702721203528256084523638682811111822295608101367964547872846142576255747059385452421040469605791508936903058436993243901342861398396472360157748694639876884603371103984352177327983943899137313714908936521418162707507688184714504504879576357130409487906695361370807713523837812710894500886830376459862850638696288142465671066616610943805884126182467382623718686031408331386813773057346003028647792108639354552115100359189302780668081075024478090580881689108386926057934472397375647730993092248391620232386894864437625247598384660723190381590067390762466178329048809621043000814047334537915110825166797182646067905867302452041532098774220216708729923695879691333819368669549567226276315550687401023385951656126964612177043466795930925993006593237533370345965405638722784820393668192343134580895781196281155277327214818992713272686738568193381059241942790519347234700533358132658900508704881142359588811753460760520250950728931835968325083229645409731433974378775856936519352299200595717884643206634131036466978771392583168476707383292233644178282765903920564845310230456715836990551079801857081445264522107607101928173021397015723601694860707752604601773208725217951660507894440213875316307337881041789228562467879804682637531029487133757838787686397678534251815731178806230425514496810196112281947831908482894000036209011260847254833405035426445535845187889407993263395321341634226201677013884257539781191991768257296290791229230316959860577526904319356228955158199797419567291035126396794481841730873899989017022584278367858471996390085604251620315486918626309914191918331931935485969709364782532747635066244375707439804046304886606628825833371500562552283221091129857176471323971241817567000734379163511088335948746293183363235456045356200798150937620780886168607625814713067622377646555028356187205903668617715600093789339566923343236368302140993372916775559039009862256275844516539159937466805049430937457753112149472229135198577735016087463836419079025138596971958042698824102683254585809981767889530534637663910117877630163101941895250180560326323656296729482732062943896372604823016798630981880479997865868244190709109977401149345099393389182007030569387029697489763568242564630095659831058146343708474999843566027553130600669300679636803499065510435035899039647788199566895679524498033389665479008603254271377235788838024386577692406579056811879832693577794526145017307399087825342886658293163931101265938770639577687340722027770136478710992817965605317399245076884228766829880956193395931701171021525594774103314034653727525791447332793638809345719590290097212932164755742846419107472876519833524039519257519921181766802492103977031190261931853661554829615212608297245977966518724572614209656299448882974143754174093698349480450760851174048753576353718352350381705942905348859015276976900945311437284535801017897304092399595879855327813530752239660184158349657262518752329905478266954369424117966791997221335217805595521317683367221908133009762886353772040138281105198477776369561404688046935409546966851660258145251702580734584046483389569704408778209737605901876600497299094358418465465826391378821110788212118484096920355252783743116733995761713064390702932848637103206230943311492827606854710276433737182846920165862875023502812077011956666110383154281312862732997799450989200351944435057472659162848427450400078036261558742164390208932715359384681510763912356626975743907757031620907134750964980021328958872375539708983790039345726299799856398964304988168776679864382857229184697237320776623984658495271443158252797965663228135203295768551111124816192059067563725052466581632149611262343426918774503455218310823186901567948513134089451917570551593514012419144540555592766453419852720621814329932759257739302669062603911435563196460057189269730409422560051573013556064181301755203300081606721286360926038325476017405500229191339754010068182471548943875461841442556082300175426028035582766458228892905228875678575678230598724411604929534101969543563765282325463609980842384076930435996309035274147351725270907952373429139656624620038927230855555381432664697166760097694072543636139553880524027995474700868090591189091406237106788350493514370674181457405662405501876096920035148448371100594995871884912736892509362994978782889232781456354675763510380371772244640428165802500251909093016629245493475058512339964664372306138578844568790111747951178957242968369803060167270764497408274412859888330319621023684271357409920084468177685550576342008480945785372945571478527088653090440455325736602881696346799257333399968854876894713411148472465212653388372321063588326725793836844559483951375469687251689040769768948954592482187306213173577628113779064742583616394912711748366113321054421935460618776212321208404358759790086206643147657889872623107098859216351945907493793394564743697937701633216216161011633266277082852949129848537818957094049659759277339820364578950952883509150025577048212130056787646231395668494072134945269403659335733094770158054818906589704619591872801731656926021460180280179434435853518898405078996512045908282492474956626132930113930275190439417062456286095247319652079510355554747411904409396466258620867965372873335746873518617048849972200255425653282346319531971265456742482864808203633426471961932091491410486471680171589332264408798698071037924456945819148491366998819114020784914373112512253675927207485106560274088596493522768122543225459356919277040057650286956664093975190278586301402021107947968425501659159784406823440533606374220425894951755775693058874499085534866269857181335384336204289805417086704806463215073492048299478497231783461287665199867692282440715993622096814423424552872874602731174458569469493274513237454282123472927366386159185519018021864839889311867773427229274368634254355006196577019671407182978373149621527803529633718661383153080330943467012088735836357931785947357331834450950576938037215045971660700180797825425047067255091287305807593600579571015379236534449702359959638379952778324933546459362027756840393100157955009529689665604400215135742960161916452642492577383286793212619959829805606093909270172430193157084935547211046899382041094536666622428891109771962291549310793530070590827473515964674514382755347733331083151125702712642448915669284201094773616762636146459502187887833284624338116399536525349801668501020483639190676941615839921912819399769703946657696984024991649646035937956698736586276417755031345883146493140340715320386632216714700591976013261978096867543990098004489226462935077129853872575944076436263307485927610680412557468708810688623644334258639166254282738595719234999653489368616584909489832576850800637287866257041994721171741118519543417399755219690189859744530136836406124109073548209378239672985725391005770866716297131438002887812280291690826106022131673576898965717977751442761165081907439560023863902057019527314657713528342312188015043078831256768249354489549358391373909782896301516049945020168082160778475810943176879874793435435126574554661136700648653419093743465643910443631262848000628132861645247751947506878483378818181042262701504602723467172470660779014920154165961795329756361303116712118823804334026016645919030119362219047624916488533961083893479606813058510798378358361611302307234906373025753220240421774855441403085772179650617590419378077711487574517127520275506901777287464773260395190496173488343958264124742713122347516332154330590763817576410361623517030082611855913017023016732610134181830618082001654415322447521679967212566137971114221840677747258013937080197793555142061386566493598930431693708405486817957598051971530160944753749723073856451581423667773780488244859592517960366734857016541086341423846734718333096584272764336971037121656474488587094170512502761114532683141377555821259506778496076940556042438485384724401114574417439129346207054815908065481349337194661453953745087375014228301753087411368656087968749377634428896293066982565168356292711207107974726648482991986747291073768903799892076771581565789361487357208194300054917083805380876052644168506729893027471443802554300325984390682289532101788606721693868327241869763875138877898019245432512916855407579851992039222605723842607666260650846118551738345757694167678765480004772310649277608155664320121863917474586491029563501105612377757338872132508615142354740061634302487940287398479743143848624850173983113562411675951240087341889086938064723231515847422645634275777718287202365809440634919175108631310672161142435181915064244830258194295409718970227250832106121550994436000556612313026244775974965996288229171693641162662223932093098400875771820179751124383368898449807247204262847343632003987548465137558446392610235939451376354022090856657545626197567844275492544371162294200512622404419882671752219738645426680865550821480912520204719400859370641463776778547156102006319016737438573325802841429574571646687041049079316538501028032133725830205953018167460578016283967224882928373030438273479368886773249313243993726158157878996272803801825093094214396383046678495652769382488609336730384613002641137948521574519882447093504633407382929625596147890104881930337555979413034890991642153607352820958747743059037532004863454949156042012371354909240213039112466999164282592682720111502598527289323432234858881936333511055745106112152224578605559667711811293154671074708981982039900989667581479656802538714015959172683833034350703408264490516336443115940218683552696167250402490275557442817495807977833040117255494408597566871339841607047982090217292131069287318846484120360766545962723195636008516235660267446431515626275434648479548238031518541959065655347616967038449983222259793633755044235164823227211353996604283501489213322881842654206626389120393461248921519255132134385142404305161590735332649712864425187917545753734133946550033677202342376515956680524109294180178751877978679011603745335831586307514800025132524994751225315699115737526445663946259724497022761648975153608003389243142148475897473626227364569607580592823295027246055668513958983898267830948509536042914518345028390330849866271162564272537289610254636310163923565735663869190363034083281217781950464372831866760092570225071541336862635727836701639741006203770158804765321032587295776671539276729541670759913278634338120918561689451131334765296331916566748670847120653202503689054328651163545340049409050868099080219135664559083628840823183703877043731180892045999332686515637713566460911753127996192010846878090664520839069053679334797798898765637727624457871689408820524298182632958151733904626138498224618126013784947122632933992164707525710115275552742118757111084209010234816474560041391685806308009148923349992232933199784169768517344026553387186695412356903131576915180938167400288860083664457973183039353959412079940782339441423834468771573556782959949191398034686468027535092340866215456665151512517062972787794182699705664094746103092290717222808985084208095141971968873485083576736928076718541847554027192114572041357300706995404935248974419988066161670247058121751527077125343310449697789463207121831887507771228191574768564481648960489549720604613967579867268669759108051837728429585713655514601816709295956726375036414529003610892365276104257542058896468961061957761164916866187845313261135775114637444542012515925214198333779597218715884382617384473782216368420355144561214070435435351483240831242854022558714152985073108028402587923586969517414629113909039296039719633183912672070537086431339005038239971863633354268792320815207037684478043320834297011548850616578820133416324207642288907121698019865916822641718070338311216445955306363862094248155687586637282462873802959457390353513508414906721398747549328760472635069863270986364209575824575735124622406227853113299724492883327441776794705965917051135715793799929640538320700496377081202521546473075294346180191613446899558370639128254272640617817892189030959733244846155732191451815925528907361836155330843591146592424045389395341672365609365598620333313213316600269412052062857889606147533495261019703375067032960513311399353086362783695614440662635247900368071493689141361745995953644559901960931433021665090861547759483450478750018856889229746626770014146173249084740702548576967732140624582384677971680270208397706431728632669371409512916911299229780657638388828596567145848221547336713515446292751581438396077638025648250456488152744696000814067757581367554344967914061039843804029905353373537709395411057627213095890669720286209786111279674757349506780562881728452757808641694732491922503987157576875580776857906925219762015309066614620180029901913449705998779058022561128561356372451239970728991120787599841012865367850581120577936551002138648646775875455892282964180572151111129724523946113073492116133733282583570652156061493403780551845258096928097613290060796559735660902208730564052812155362735465640293560446058258990203171326160521585812129242973346774514512005475485211179031135128289823083636803670770203947130358392128631111316838327616727383147316895925794755147647790891538631693153684756293596373772656068114758395427058418805796823389886314532623252622578307424572261312919907120926385589358384519467485207371085439648012086500691146905562964211092883667645313054321972440069800639774887359640122412796386132716784845643513760962740565925914321293646086231687538026828728409718359313652494959005970950677959897104804567254973121331074231933028905697053132147137927028719647401542971565389685609552568459130817376797046874701324727822351279641304685446507050036795650203126995231142489863909078958690105031457417309781187746901363852197512325347306753408983815153282532463421275028058302772512980838300169030048199958043631791453161320775197988428038005552411504027061592692660000385392621328913588225526455104492645535056589070554778215115994182991055122734688096114501890593888894730612474171107131729544769204543534171501660524848889921324291915429730372064826639721410127007441482583309148533166654467377042314835961561083473352687076299813267034581992843125914017403802115618509995525590257372936052072593446246693806497099510013563798540139906058311702161505153581617249994022893429434812331272784897301534861756421184543434645995518446672118218741925711460446527687498406864930732812422146495220076892229446716112378307559075189392384254977905637034434609833203694520962331866935083871155961867625043105884692847919352030685771890619425098914813948757384547149251521697889458936777346875435947599803747925879060283570727228460101183294980982685645457560605738902029038257661160171917359705566843532933210330028839759035969565316007840732544546084159714868657191404675291734041678629665467857531532405836896733777389573307201784094962379270759799048174796857612327301581873498535942053422005220567335616123724517354626034392785891086857924733016975046427844490083339875505492876307963938860266899783663608391926566569482964359846321477755101332880507784454201006900554781162448258294188683521604991082619867221767628475740782154564736850349216486560171231682509286854621009404943049745837313238275568230325048586398749030950256082682118622637354189145523044512016122526515818474833480690886914798547294684381549983781292312686494245764795833879493365416206007660941261149380207020650981573631455813183862039017378437281986607810769738351697333906580541822103663418540922833066577454207434218484647257343254963401505095631414615167836603670178963932357705666200496522750752950799181330635173314212913478509257566716549377390865360794870752607101506162002000038097060402822802998896161382660118070055012943405652389420050028422789957569271374727050266645664802721950109292387194150898402746583881949565581913259262635566919987302822871233863543444148369628571807631984811073648173614045957081195328331430391005923999510042506986764653536812417508018142483319893298973581269312196046096382567723286333987570223095738832884453252481854709830908542024056859649611370432081865339392655678680442752553341944122514309648426269094702222067825763463891063532452929058162679314526192136917960086286384886039774958465096770720826137017552088064173373446967059558541785285457027362707667291495534103564919897531119598200684299217003841609088476917261116922430442201538238777932325890010899285905823036380610526680497823554051222871226242556121709398052261818243346893489643937380957563528441578979216950580131405171115950371240356901541236858680514014888233383127364238231668577450038664067253426500849401421915028168433352609802818977294165666941642186394702019422685849309860442542561696427964239007668970106184765767847275425301886350949216193044246860261693888113863728297177431098079191787904549639484488844515964395151547892783983740955022964434448415840863471812808592435737191928987832670493225629790292536666188438731649008977425388955066037485509388098917014083103988010789268572900667018847768231656403445641089543167599008904732017314819174432077707466934421317287919536792687048226967137890046575966695208657231419812652156192254902703098199651702649646387434186549901157804563681359341899720168949900311218214414347237276780375401175047240844314917504654953421377161880649237819861843539283410090651199065553368976255482179852871259569050847713024571517891508639577599583157893342994254692889412310033085592443167390465323455726886630870556680715585465933017421874038033128359773052709743887041832426132953173468435913717092058570734901268554166499576939788110782002633751279509422511431744690466921088942655535593127459328048858672827744969036093293772855655247915202722853149795199907993959296123933025787957360356006059635532129806483433208018518432110778137011521611346458534908861443466792687374917868168540942856182249156622456260890549350017782743846661414529132224682301630962281331572921936789708911722331596707520417494503442921884487171834746153624796383647995419435626536191965153406272526971461365369336730734270130379054790138870783436047087393589964496220522116010154024814462764127532213675956992008110585289587223283391625804940928565101335373148269957042867503400402065401132964811897462562027353466235893838232186532833259674350179075493028947529357544252217490780748143332453563144583896739273033937259844929642011121617893173543013293281058528899563679230744811354911795299451890879172345955731502411078498087314785112542852465131528897973255483643871690178547474882913507260911049534137893145519959791585551552398450772534911636217333169664858199652993909966145523085127140256292215480131142488216963783707936493834777725945244206053984893635732990306070170664446099820255748259444581397005436937784016135108884419229959798383878407150394783937313224321870106416759298757428314656928536601392182687824798504972219547714681098700086888268399971778421716656077824689134385724846107427048977255384336252241181859967684665047343021498156768595082846167736067879919362650185114992821996915616427698559720784091420841429173272264570659746648265197793723419005483391337990571663902508710350036428703268310060508482863293384648357898563914970235430458957607078600706586115473679963721846942946978303069185749550556884545185090440160978181162717937992772654494729057390485308880626744963085436321169673824188234576885267214168016774167610734889051650431915289211055252641323997793043307074059135238961321001134340484648607494449287770559062954643318094113621075672747827795588524051002214451490056412115992932709623398869030274355730786795193417174236497730626689213220228018825204266137090601368822975178191387197103877192953470965435102825861745373824631079308324002569077928501810460329823915853527449235911434184161695880856844831077254880619021887140950812545416646766270695912523987094128971792043534751535190465312549890647861902282929439861671098760956349209701864206694280051701289269362111502018230001420710299543540216174750010876771629556193109905712513878780171459071846278361318671539207629061744551326273132347873337125568552242506066885136488549176808198700033437068527557745800900240378642961013902018461282198687135586879499514967057728266611118406408165398704252463849399396835422292301876973029042207007473461080724697924519962486706006825377117526764577522412659096292358338954560093988152382145264306964356410420997820162065158341104717912944774279370086567236635192307991510835990860958388317621222766317707054354978497554185398483971250491674407272394115574480046549659598451462851772798549711900457642784992190451787047257714553009270409955727474291194674482844032000353982241245881595082440528818709261481666658007529875243916715605609386468786266663079847398814457678031798696313763501021712117715217179388695080174513538471725393656446922245059962196694294706891317488877489293676654290882150689641273789257436771129862012987718703547241293751771073157407935476317910520192852432245847339237835010721039511779991904927615306834945054285549321587221362819727610404766719858407217254864722785809892694302209283616913258974381357195749187734272581470184097366660726709458118571166198854915594007314044217162666130413533105830132141576442741503053471652661693553654303794213023773417634642255154285782216339568011750618332289279053003530021111009751888734841239707233504429152558753494119455720288770305075692291550771624291535734826043253568802853726399670818216984742735307642832001149606179756444111206344647608681703862971976215019152043998958108109176868430365404932910358362147835219336788746372868197290259658518892303658527403789841587446734618041010286165896958696661090972476196248984694770396694247405551644877324179735595991042139168917284373458979075641500388125263359545609006065790638631905241244612071604859077731154832403684358980886122172180699165896739070810360037235679688439661532511591345387600636260405857440860104636891587307312315651396730992418159998585106190765396038395182207558965428250582042004984550022148598528446494405988979387274275056620123290268163536773579731546371586659909949375494698584683181180618788797037331151222721582817278797567836389254769688446703492368973102435830680290705851556929145978387000528775845465401881183139254572284944743878390896921210332613912846198896120993186337124472900864919587155778662479993052485262525093737284282038427392115732338225491795676057851173917544546564967387185916286656710166353022592011509990181030796335721850960663041839094858702505582812462896627494070285293174327459934139748732687337912365053766463426700557198568139004484777193341596633222651572631134489917642678318367969972750605421707350143214698446278903494239543483544769123071056653974889156146739681225483967266168059728537643471769156391832866064975352643444471669065916027919909174521631102292068573317467703223930365151443819903638104742472726021719467584182126495105248879416073407585996259368567980473995054769192886575934035824098878303595155514055759312778369267975125460332197126545120171585233770176424037436410366216481664654993304881330240567652551818658577690192695119890019089704320777872126911040665680461423355586355069556107582215571698369966915093878337349490380306240423610847724099084522821058208763739102628272554999212295201131409630456956529671004886290408932220893739948975882843732944955039309017347591986670495342190121135100326031069183152899377298266819963195219008887615412308930176524044257002942218429678247013346294430464132327621877301741643289359686701256231935255506718714929532872264049841437917628707365324424599654825483781840879743061722713294976130522096600685251730980354104367864132564938798828050626724049133038594762436504900983311135759039640818489368395660788495579101567750289975609651739490923477645700773353823703909693731256897273147619162221614604206203188762978054579759185590829238188119307194771912711904482186413512124899376282661381640068283562443091898647858833736766281527495465331507402467298561415552445095609616300748593218072684666081862451798573161725656966045505643731000423569917945637923778164422100398945696508358105726315954183368237051472849828122848261637014150342693398531162566744203338680269509741052991338189628041059119041202660773741974499454424664093700781940189694955106122126881985461504964676807905218570909847680695529944640276654245914907745478194547592666277064358192202752870067173840760352987842786263903926189936624848659578305568045530009145703714756687962453272515067510034345992549176796651389036257373554638971445005166903351963581890625424515792574166663104784388847512936334643668251522726565979341384879753894799852605587521039989018717754049373013719951840776377079973394091698778458589139397226476819179159616786094757940945600695140639623518961574960938245751597525494694016477992942382026899405733696613639726731074533675470999670206199193223979362068004239531531825206270857567137017878690996346958930267392711371007823358552644155644613181384769431444184218414780196064055039055344936842983780348413207944792372026068811162254449209962164226570854894747874353071422104085327535881395374103072896732425042389068223896404565252484498788195612807824827891013359056414476415066028157685065765914314154147336463679055898835891631793328691445475779953651088988984189238400943752440859164655007757965845019851035986660865107675805496804765163751859418858450329809667116432648640783127953536183041513643149212004427301621081938825246047402572826615511147049199902890962187259148937433678263365585148215381225306465689782781906336846431874686758810893787642092095516469824729443156831849239066191551925484351299058151464123687770598160588802362764371250402292663332179861070572819394538409538496240165467911210911346607620513688981225612651369085482160909317900948629179978156732452935864093346200875432884255316964710835688502901348855251934750179494291853797659328086824762777578872691568510411939867326876625725497219242375673686389471108136212438178433820274809951131443617414518072627333064755687941147110758072236981947571341850632388759035113862211294163456973172541887173553274958419964961807930038717134295979556728040904092304894655731835502269463477459899227426595272116565088405727744686883447084669603499655785863250529127841531117961344528028975329798827832352288842174829927900419081577363277219003661369196730158408229507833887738604766832411214097688341878133864747421659863686131037548145251202949341623336690826408073698466601731358225012473045969925952052467877819085358457087005053402985081438140683638514406759337397889016811007706277850935535023295829886315175357888018438473205102466381571115132574214755802649390580676762324052636602656654066798520137979750191515530216478656525067510358752924541926643256159276394661977606664971224248350887294465781100829563725971736490210520345053939536982826249459108034841256104312141041709805952195238019787495459397576457156570628139779252312666444489281889944006745713000208897158644823399203364176780670596688473718410601749948099954478856523317833241259389111042253266512058860088017323825517005337680442068641381420213592029980192837233010683906731708894884077750311690021086460405701261062247513425886081030540509637624841184443067380033574503880339422793762912264568717528152392284124398112922514267951260370188010332024812900697306046986355264675489664536638635190914283947110327146735738182031345334909791756669147343179333503106061500183735081636492491874060607100099265629797541554646886062771938852385737838162937791515186835622210170381984502887615736561460548514980159234348315820749049315908683332803691224237762222650762744642566889827585114516707361930636852198151790453701563994462637720959810979683017122323471626988719425285028661992195287792932409819797134228684449237604837245552194027147872089399655768713925278159754413370052139182381762108282308534793720902537134319686180220887899314291080303559580420907288483697220284775066882425916266344134723922125611067410392867397920507800021458199844749699396732878502477167870818308980496313106381662594520343166405378709198805964361501262084121477573647357805885741899189994051858008461121922812172220834654595007955434224560593480595234776347536703338234892786711623638257679202064381725272456675094439751539959358829403496402149988599137677066652956147387435034491854606776874844130842268387934789590386751675778763165178260914016898126165211124825665724330852256937508363154880883179204049140517193896429907744598896692714530749527492131571080687094133810079690729875181057449909895309932271845669179542929205925039870969718191018358536940210571129850539878297733691774754888696641270657818314420148256178864287241250056242319405719144887182675917439217635431154949067191798283766228067077793823891976881489754558347036264477296298813602056064265340902792663666022523103448349687035397155943515468108836692823267248912110601428224757539010698491336067208554875451924882588945059555029027450951683567947030021232867152411079937202942600625183299707410528331487478659801334696766521901497037043966466909341506470463346304832554171136415199808235790370186360818220218066212648278216093977729579654961964164122553248845163776422881772351153915717651374672571391526866178746067667646346215628816088895548989183438202741985347159967370537326523677167211469428230766380140694745354990084279209344982236327658901768798965458876687754885419078444729195319309208221438084248255877654826343189370190880204809173095426793268166150377174343436732233481642542128780579522077275736066628503003569327245138597715855240313815928358056486607120403651714564423205757564770534645489869341625639778810095229467097377211654150516293263133320830057044018136529635862979449189049643616541045957012785530188570933068614330426914846229811353364888055824904553449465070173562885091902815184974824956856903159066564373902646310580800749076735753090080706358510492370381496488344056220693434240402489160583639493621823231086494024294072202091327398495927642152722802386875424291956190668489724548885256520344347548154733006197996445442921051425977397005287552441950005288693572499774226213007970442051651320470194633846887085549660846927503207875347474673578575499540719635544891060428208215491583025270418916254929967817068693101708679421754681712387311439050053061377260230277515613047711169219291684919732161126629010927579843767519275555470229391481256157895170129722969484319140550972428670153159956256067287370042215849416062797091779137246038372112441981176067202727239658120772024243275935062467563630074558620994559594712873691690408308064764906345848821514344574268976260809757611951599487534125222363511248453005369507954541361202796611178732176016185470103994611547494319155320301316068149046236447556437240354359332585624889177302187934348173568210257378224235875762880717336984000511140352751893961652590678207229546936369014014183852124043207692292909369695511764616607525331145974667037110030125124695877241308508801024623545270081075522621979665898316524481075596823987615045679120651814428581625301007093772344811656765555693460645888794430790135772043441930223237042259144558542055279029692314091812807425432828236507472609311612276414335348338823159671005875539975880782594748343392254588248711965822890971031695010803207839262030795344270190223358719343819945483008080997767460579385936664325506304331856337338317831428956651051557793180557423988602731175242503034222031365550301872269677231844759305077282997613252445668279121916386499689467799507612927375851826018932554821148097953336433556674070813489780318026766907548621366309668972974693567092427016193088085730272954909954990791243858046029052633030025488885012159294090912751200748242233039111267932526169637342375340808409157769828227717408564616207836949493593030157114177091685608512787027793880455460602957598716216563562421249331772441330937065727943735936423934837384566216841200742472740077938029973795334059142353592754317121042253912707973148645583111619920193246874286143419798892190367200225972284883165239902481278573097379396117869523220253389489588286821875781570398110907966023989422697041765091110170248609739776586561194787732767662435750747151911696909133720239617566005590026938141020359500188864614694289226259024243354123703724018231681804482833123974918034239573905747922371972083213484043183585012128001172904911092166695226886808455676758776078055552466836669893653595987958067170752739490674211803569022089039714503154102430375951992706080103017364038635382793630648418446788007212291778106507398411905779850716136690559906529321357723187293241218608917983340704766858424995890038022327177491710986169277147681589935516644688097319959393215809282684534797581151928512140367094613352703726553209123786929648908891815771376425627856298499626309662654257725003529619806139044215359693870667726053067839449812830552204134371449253475064918677941657114518623144262501147184021576840828338467410397668023822669692133779720138487368427852106941607749783018461146146657724920116476789723392022999899839056648335956264326948938026849961057767927377719379748702064111513488646450292727457615381178819944263268885160129045776445605350595450552866782346122301168646370265102663446693174573572159282785000108841447119953976413209806336717084782753741881049967612877561180635109424640286530977721802447373794169643849114130235029044422532393047663598002547264517924606095549873239158623173929508670485151760247272567278080080447398868079255768126262530401653518381124696081799023287768427407124434273285600040978783631345965661702155476155124569644568754447997619231922965183840848873538025946762807214774953728717010821417542723743369591833394832801803675368516765545484612795771551533987830453557856782948740469453511830894953261622253775168415439455521584047150834135833888100291030416004917838550521082776466492348050989605947648053601028345114268889589016208514466636744577467499335775985705072980689293242063257964720768008340112592037421976329689435264559628254022114546657518549215123470161070373669403385346789100237446962313308969425380004893817952926738320843674628810105185191360629330967519317650173552604200236371959496213461645906540040437544401077075584562196481288051421491127961905013094080762247953226564153747218188572115315564103296259206495729979175681397867973500066734827273804521860549314621250239570145566587467560361469232852797002405213391661008813041119393638395522643305927906046620351389559609730441816558744813850820123456496509893272222896018661627341569010314097313053919115165321577329015617387368785436204774982815787855465462134476611440684690654018377199893874885809308937186773893341820951489396304527070049602445692895858789716362977080430546711858978834948220736589801880790099044867360253232539484808382193960855892593233797011740345607558824947281204746148853395581964521282191772750788842213091552899097475486780732399792598321576893614219090454511542899259415917613241014822782570966759500058725818423298669289804494268162166946661025031145944208154081043087564771816124954941750904089928319699628387647266510658340851932392547771577172169305786378206741405150117905032440932204506166118701883234588961597082655441063780174151603947376524253008675069865013825815426441387200080246079031383664477993274900330103545974927214564362529633905964006592094485867696853296739942826175327116006456214241233067428491822486418569681974072228757024560000456195369609002655008178367928345135656495863731081529981414392391027001786183229974671868826119947225195383214315883932137538592192144930552452070964324532164178524469775634258044581331574367816912585510345502396451173280397860177217704997585399541082701649446022880783914297774898444436085064482157344978185625246839762983028483387384934654962456928010808382724280480606298495041178879819055801619813260023788122793270221326171128113262333356245021542315571452879707765164594910203676832883571946466015066582889094657086965896061083224552273286058167583497741724149943417577709403581500083307413376596398343537761693164370012284350178219498960556246458913989804901453710806161142880784172357641398359643450889641039836348879048099527774136944193564177892118705475407287924412060578694822459556140369945058343133384007704946425546624580291285960864812670402270330333293956608528859998649991321053238812651101325105792397755706453592918977237579752471644618631514932089167112825361341227467464234561211011092822869302408528907347873461950410261028554470751904959807491786052820172277603037839837163212107936911107874155376644396757245669552403582862743824561003347402025172191676625178177168236243676761380621125455029228374392758020076955828777399944767316339117827604655952818152860257841167413971578373554853723336400664256072442376348657355624219153676362980934518474332434324881582190225175935297301715804798896688928316628916710599681238614781607929512331160054243049543776411798272900566995759200385157377718907454103422172229098819367957354855923945995323929378481156978536423709060699090893206368294355643371962726610234530701304605615500938465292443050559380085303896934257813551820566811715348331266782972920916291730697289703621000778893484949512301900894157808019622981858035483299591849981239904653933189117888016088999445794701461311881049298247179450057653259559763919439966197241479930844744762417768327217962296376498291429846182345023984523591414536740206546022939453624738297993166875910393543897341203729702359408634972449065056879958834989983659650380215893416172194801618113733706130829940173865362190994981078493341366464822713270387023298917445072005009760289421144823697470298062193456752957147614765384071248290950850202144679508502900843278125745122223016966951543732366459529427709927912832740606821339421976826074099982879095981855460125353904281987072970726602597560532179653431806289897306971567407584325988091553027036402092942234448460090152746996938458107881388739181512764153023887235734591394249447937608493398879248161308855664461693593583054974319902647075242786519370966904410463967650455253527771714942946731731443178743013521625909572931481424856939358990960421805066163667167987465490226089815405732378229494224067805964881908880869936254176690014254506756885162678483162508912740814630792872050805098670946517315307966361332052038817967488273501852636250598268109945268533273991687510634480178406429671547298454685319340082065304151922114362061625395012485509654507383649503187146980185574699176816012689223123723482155176603107093442957005058280952225671400221165324782536616645350095484620224522928264949541611095273303733951304328492907901123742324829240652706021101275626138532645868824630030652740306735736798041568766600370678043794470578170116238194714780436157135893176679175935459352000426313976764907058713255275725674554368473721547594861189128062954696650402655516560009482086594115189503314556296859926962449853062563260557064864723487107487923277059775628889482388009054456057603864707771898740015841581403533885492895635756244907594681879533718735271200599111481007027890185002144752462962169878202808623745038456140301402484072042077875077345218567325372477270910472487795372771111941744664923448655179808582726058266272573488224926541016706089534108127195059563680394274740141156977559204263867850374769828444549780808690006196269154755437007900626803858773832006457233789605902624516763241829287420862850983364190862519148541413678587252018585726911374323540439583724410350313419899917412687242357094673897829592985748276851553946344951018408467745547809675004285211220076192918256453691157011211765655332245765177737428593632622181115001732356773039108078370178586345576491043532106991556306201347583261630279617563207635478470261396064383380420972159150209312520336132413922544274926861886314658276857678949679828565051723385025660141750157773059737718131964732255365514092872863619593569589076667459187276463241377180316896330623703417233534883196840843524355501387584344590725291763811780568360201890957302779720771641716016321603331611798631372661923046058935948946891262247653951171583603782506565304353492233813482166946975273975838866570147366136401331317976101247911308817462538523721381587785289676198495813460572265406472121069687494386568269251497150191852986036084732185944732693517957240662628343483647500458108759395443543686544784116122400433820377854559498778353429349420678778830895681728676292932982945372280863571083432919565104554090117384325854456841435186152709615817168527499909936914103226804394177634050060337107189759536787785897503958759647103055700600535910464765317615539888860071480208619246595805406317996118011641526785003970221776621032793219839564166089143105000154414566002619034597717294606851642183809265264167059692205495153759331026959703591945098277770732686648148670576631291900150154649207003259846690722692067455277365408534751900771092041333129690814013091035098860992287004191295549677010576336255935136982637823589835284046247296196881300957156969440449615649879960736270723788177786682111294262786382952889356686153450187875131255109929409569622037487563164420330571123217334904499975649901072758491985014104564641533941342717148806368810662516082475893312281626182184922740671014617697865791984635461957944863063261045683033682147924751308583683684362266162165597085145867983325807858642404711499171257007176202211861156659847844654822653448706455861667876060187711473469796821697569874082934502256896770985629984557480397738474657558020205225528780386552282957227352415924403032490836714566479173927123007656691608178197069149349055008661479086618371786394095767206946000239758864225260401174230209691622256480385251155082046115617626306840855361495114461446422078509624702678425202891768289635069296438110186724653230842414890598387300202080669360014972077372347864478998536703441976759767464545149760429571491208451915581090484325580234895364132238330015426189721814383401062601359814133462736228630300358863937674207165291647919113041231623209943427807117353646643639619823985241759103597848233164955027021824580253116051966427251791393522241492656563619658153541105600768161532607983681440351918481977345970319868585158250760070907898313245413609993417990643291931379070198918370426399150600948426946248672211785184823176178238754122434474227238421333479418573354158255950762655295137182839742553157532347666604533500158126626428266420198241520000880468056735746129817746691834820383746752042408219570813408201214170774085703850099447082877934263378263535484188134273557322472680038212847406859891351383849199383661298324521658982996390338043665601706491954123961982891557134734958257866854405775606114232921344891830686734298240967306926282711993712548100576245833779367468597764652222170927480633451912018536388437572350788224536805761707418081593630306416904986096664648597068120270215651939212346327139163453124771247076006617888096369547401765428706585602763822195086601445791036580272104799256162414461362863139720240654120668414389481545808693614767622983067114925891164431218820017462072809492598647604218878765568411002479765787502321406426617983585983201376558412622330837375740828898085980963003838006597686542526529845564785120314288280093552341610585694859869166462302429112963018575509508345645714857908182266641497077404542912405893963013070687446270536066133274790350803937382264642344658483088867020926626167598286545784982716792570232992361833463404820064509968088605094255767105353942610917131391334411215424845136067835460914884106068253909708959000387918562365783237972999966134531211990978779506783553001134296015382252202088538250383501407407802092379425066998291015886313130231800340154484397962317324733283127602371590504099726898289726538851782495063361003313490700334593111835720920721354842129429171174846067006146883991172871240775478206141909659788076814632685969586414613893097702990117242970169270607527086659412040932181269020545982701958475236015779224303061149955855893391275894219344289969571813442086708501993857023436176779707062888477018699377938731204685326784536296974264081816835257588460658487038741306446903699303270042467233540303150566243710486006646616676001392982070072179807398294062826685719337102129349136632002123285185864718918657533600603153817240113929548582841703172000784171255687036239416485027446943660210388104954685674318136377574613483849402998401847721528997713409680897225238679331920385793419262250091391903820546415266567683214012073791272224101592336038527246470937462906682243140560364961199552581398454654053038098580343583695137910648327593782707027222319389671399043825543771022602312029283646771037681864526230966383770078962765718062788051159323277029933651922426591285949401992838046514541151692049662135239041372274656086863801087418589286813355849172049449765529771226764456775619074842502729768600069312620872585636452448052427654461976763384843585750806795773955987878294953957431266987367303749346218752802252817646923237083302854328428499791287302007557304001516967099294132203806433476429743290863411379477454629510629021897832572349611871505640305854241144766262091107114656845074789510117920816014938614567026079793239618386464598916261006479132040205134334719101607674327314343671577776684453230865474603994934983195507534850189489700629034312566342509749166401665625861624479499659323613013590811603314269836276499562295673182978451665818805666244656633685999088008807723674177913782825130259139095388395277531051040081014125033936371774746904485774184008798245798156510077201657187026826189217487878990917435205635215314797767604430860938509680111520349068077097740420223357774905183497154220518783629018515683014253904330405462621216463219188921591060489977437213387206778116423492236087415769583537042254882636737755491383515497977201068868785736148189389735908670942298648983010478829701775273507560014151168282235923165458296580001211817949932197250712093780288556590668311969402675047876721407911652235270967770384859534466554697372408729050589885397133392631647478719872769604330680491609357168649519942801162159814304537332018316990395319540036222603179426889418998459841139014687514572776158427112969999443890345316254583541581611998610183013941194464315398799775659220182303515180036841330740674740747407307921543024621905658314749505278491046008949637347817885885328319558648287940503001612691990565187790286883883024390367138786838383640042476881350675570244091439270654656425195627075125064513729199159312853835556929047915896372785831577997487117424556368836425365360309220244389450834057127918507978945953814312212409483841221173705054969656637806365587913898320317336699883642769315518771159323650927297106480879514253392224838242155529798848180400145795306014524489792519234706397485489667135096412917415671681772844010756080466874936181669738254702412147226720581692384227287441243882332616289177669507398720950288413406226926868214867687251568913031824377660995695663181559287475433182392084437380109159740635259653432301048541097179066606608329019789404716380261068782021353420677930406782084600470245122717681951320519114755016172479588638226396988927582268154911298707972239867434277199105847185846895693064382545440810254430473385573606959021389436440063878417284953186566063597314111055273537112405567201225451553322033787794299881531901677909437096104625980326066339438094964599892446982321637450593047156913885905316716320399287395697191932065652831896894612017459992179592245449476833764987676818010811056603951939542965615363234131657911806911443137492289725405607418614907287644100330419247698674228314989321937540978144218781289378933248958952625956305600776740467814692474048515957281422640261059698276319141515747661492315974229298870090385178133629101217397748809439626958127317300063937668447306881343608199191917564017172253642752468216926841135093733023299604059565265571070285887668710513416290565180650365395810157346958835105221412067766064595436528003267494651216530355299660570931995757605746782891066073951655440871633260137869794957892555342981497742796163447883336583611292384836598655635367708724714391368784080179953584281215821139946202970381528437994428634180679563452474456849862359592068449709484258328690070958762810015146213372939066016871680092509571741297493587118844266646655288141736662299809742167977630074712952711370687455939077347628809023782408124851266963739555333005976728490734170717011729566187255575293198831240234350098669425449051670166653676353503619173490531575350210852853348921038757987666765873912794657939209908328980132920017923190135943164780084284321532996440676883252554004304590688067349477620842240074054439258315218155946040809145789019017173546804455213570335986012789511195676395875332467388133042201866079024866593764286674651876489992421266426229766891624738785505360285958605494720600641200837518648304592328540222376823813073140097366685128946944651009127646036643804305171372292412591649224195843219391673416848790860820811307625038873853483557997329414901401417499859653502921810409210035895595084195105868645002587198604026322685908360355492208976890279057491154843197803679892603192396840940736093152899528513444167669068527078471282767352165811593773414682014322015349453540511315167529996067704918106233777086736503772694920794440258188787716767817051725335959417111827796036574491561771788700705776369527804372071605415622342630087820279730792993831375622452730616732378005814387165759466419311918736055029425316865805738433628513899609007667709930557557114837040702474714210322097173409892719678686603077684564239394142147664358981333426195822503921289177074552067930586431394381191471687976190567554798602879275344632881488632772863890986933528231491814101877608150989284133965965833189103059792998230001009303251308500313973655883290597677312702940420308486667818797093797708613109387305571325689601797271029216074008731707138896676939363244632887210412334290455019400051347772866373979333390655130701599930130355286023502588445317771269020109574327222389264633927534981188530690096603002941023109202395476017356964460182908007310411829197203596938089963792376149545459159806549925117293438900892352316814782063938773548392275833090512122556969323381913802338809942788903221450805996661133664135474997023955105547369996507358407862468999788884066729763820436619270287004331915784802151744435158883103916790181089341728672749917196950681847950999600358998253506165534198055481263093863903738482125960952489402786340398899529030591263197587804455806805898603836890081876663191018093285560947180850280923181686644564210532347568131704452581955501335846391705837232825027983819113565089798967464370765617460427980553164168470762141127489672280108282413620291996221591261304986376035991488970078264167854610743265064240161728933571200002686799071367927039681730234435477503804411772866523299564491597980712039949948001369354956377428898265393485826303743495291353175118897351754171488354054926618474995299401624136735071309828372106632029360881760214678628175090123442695994799622644818385179914999306372827916492389263204254609534682410936698878538009167126509671952013142652956713074323649450461684373355966803769027448384726506518226695056250770440979040516654376234514871831621973118805815807359184583780070484372331134431505010444603475832569883846545170037532046755686995731600779257980889033350560334897157879645170747943344978096931232010298615485296148789405811001713059221743744598869160172347347519918335143276691731457411238315962718987657835855267207255431021683897927693402306448468206606408854153601824899394644127172944911096394010870234007151258397252761679759234354612160089170536872558404867276835414187544897906623307325643737415865145833509702064044023587453658897804675024633392242867966244042223404031649026088803319665219522497622362219024415361826088245628647637411404404082610533171100719396996837805372922558278342728406525796261974741007621833107779490600579777053316162483845450234439161251895512905025252300664169656801933444221733219100143352146055155927384005221230986464236703080084524600771275059952546040154143588205395590143991647628480639022940268159520888599545420605188622472725402899286747073138586391435823306961113758008171632263005529062869171013913824143992625133947170047558606768992325831760064261257119165376348386435403458191656644940926320165137461968938683978653166909901444762546226234725252864821712633285906333628926765580532345531629941544766938566593055218926059550481275803273720380206626013340498545294516857551863537529999136212980071072028164862927583619922558048692358257832060672578098737126531083379561377747731287310103359955131050322759550032712403025407521288259921150660475224813855517145460316565793861674752647742935363830194129069124734825379786614864152653691570295132911594342844350626350188320252266372504603306336541748572168152474940933825147397996954545022666740184566233052397043755046025852604475845139216955709663565849965485402618881897171985994907294954464995936789303094199711643917617126654088257779909029107910181035262621404084103488920754232354221488660652689262981170118921395165054928181517004248683232359910148779817898550988708772375429860084204887352957041844755897003902635233516325135557949668175608270632327828273677653505508922684200943248276743980949448391147650939660938153833823750157318492186838936649530604941482702377104492071644965297252337773191192689557368194537181099315719949764652255058889698438114161963715172239885291359013932572884194824670091680979055826531753421968682074931532470191383896369771281089185867412991744818157541282167379714925316685281115376989142100188084798830940139891595537480391265723897643457396690737911192165920138392595713627686275911150509945337991183376157397153189797669967662970507441020301177069426856969412487974614664572327160482856757303264236743147314849926460283673882737914912497877786401919433869634402686239671237782134429000887854955757764924591150326494853907548124284326018043085575210850096868006262954073901430467714495801007581608609463716062267120303466525695366494235429995765090135441466786870309954182593635862867676642603318160223827773022674275213958249586544716330868863227796540011981513259931202267638468915694404405303246545010946324302170524066215377458638897052737915211035288537054126187700359325754607872299863939735657909497146353389852097086560570391838473353300098320674025577476034978555256771225151546821369954813807067002301448682046680242372374260769330212513429994257029608967620629617004627022807825384344486563370255420628604873783361705146755349983176563571448820331043496598850954123929379634526762454020914985019696041144552800916927093226389585301810617239473747329929004379873790313848556171242271119362541917206409818567046388851312557331040507611470587129332700640002133176842316424718708223768216418833838351980526348281436072822971853928233765192065229625136145601796708872367878946348800671451682849426401084319841633759322987277375051863096611024051874830178667827123768777467461863193401349811780732967830121769862059541438418586997797377881653952348833172122667710780943991165929318362658938190898829429921685579735004245748057949628205182430716937810974356897380811868189755105918007053943928572602344185810334765843888581341794949716538903729410573816417868904328391203322425696566449672901545353905742861857371815718818053555098602670296339131445062237359080783162616801003349108513813286452401414449256215326719524353856330007318131797522437749577158260354774405159082104556249101701482311644539996286926289318522449453171795188524352579566658454998799914885700886496505043345094989641145427205692788810996535587449520353384432449995547089656731575691908605803952941052441429852675152532049294649579532613154896578966383631601462384798171887811885407184251678512255323457115275956329309525690397897828510843555442258065611250356943708356842865912202400156929615045834604457862812844312567472235222512393600511575776095297307624012736491929690957546804940596942809213550170489354845820023208049745913216017654815843028752975258951708742043178455129287665418201582150228365412877799802890538823296897065731799057956456383497828929169950311715204077752645779118306524110283388481123402928391770056745664599093842697938168817911591859611766073384331669713738543393810571455187162181306334279437603981622224793511957125416214203358005437166237932374772163515987761516943369388194771122330291248221245763112924121037404659997462957227643815943091501840378033735129419478415360521635785133280563310457327046392601904184547230661261982142848108556202887203377916478022321231632939384549879525402852584489097283383139365297198803181306541843166500705932170475785937807837677264870813950233392014503668205771431341647643015892778702091249778308143970164356935232349422745825595568244705793723079762661710246004492942475749322573396072118743410347854370688057765723146651618825689274944514735476085708357768544387711949061336989561092048048316049488300884747199126409466595404799391570917812824446119923317301025245590334388281614151659996752017479589030195758178349464045255072618337278004354882062456396816334856053881459172136234712419030042388165007914463812059578661667436154508749327865527085002705671566852086556264304329551576687960405092140884329604886935147743662271737305795949809267802050988593465648624053753896369330814705398956266025655573206684003542697419868984924163770864714626829683438156401598072860789452432410656181699253035508220745848632896155784835242508665457548543173454447932974472832827472236159220908540741221560147454930949387014525182848081552032534964114360418148337397490233613331044437522057489210980072426750768649826605613405080463139816248395160878233361822006156039999474690678752815449658312127135462407716861428579129159907737838233486423034894961628639495943687635379372731372695439753304731158903070672637717604933856524347049972451661433038393729243593254381625135720924130482182055421595780071768102514755387830666310387312747749305414008594042983589727662910213316487280156731448997222751155285868855525610474695744216773541324336251553923563362324528426629444568226174745548318961531929953505318150086810704514582634945360157342512882221729656572464175952954884316064663134127751890562727316414311974030114337418239544621481503453294643998857568185876648487874093781510706364977284486596006900929023961589149457904268049274583146244013653743847660442028421364875147947574704478566943577010807539608233632423884423382706639632063707340428272674308613645398820189666464758013696088406127518700924921149130464227537775745024247550484350310867037745130479982059012324896863985527505093786832147911647144418236508602769867882741713838932023677221948026420277624840993058583290363545273687471645751815323488768261120890266285092618958848927435908812200634829069247525346106442698065066235869443499692196057960287147653402609155672705635791452262766040845275448106155430834273625940028780799301416606141097712035964674925287276132704619891612069922025916419588329181840541979821345202011179117464409909498259220066299127845767032057872866282239157916233477906155680400720565040048290146971575826939020139167657259741190998216670525052758976189655535668462179367608831529055912952228282063269308001875515558540556673871953090405323248916822274233441292910378698767228040631075203682238038010154198202945357248717830159024386322139164169902088317208843644859859785982963026197692581408098599322477392592922737756929070405182887815929363641418903241699881915883481027406351219916771663610162045720030465868498177260759407268586174059894670665701168557071020197357624821587404023337900755916653507309183706630691472747929286766728148438688885740957458216865452773900465634127297991126616101072645679662535832292837967708328911615233864940065827044193369830631055556216014170817515510858295975667530254889894622967056949628704615615782510265901140768754929134216532007103160967840899566817168089337285648194763392225809844757733629028137513195468508562247779713707674498340537693882931007500774961809809101398861695954485427326044074427003987429851434956767822587879833748226842080989343271551776510163662893774256071174901241465650923457975845106843820535465378059580692409700545285557382808163606430188628326068750301810600761923655724917728692971700132322928953639632580392787694633434791032544131974939624854842968115707384479986846978659496154516301881761436874549413113004097650412747625224202329692685397654496769451026772442923834728958035415329019024945032682500467908028424919198287100559677309715190362678719807940789186479029703483277106226957367288631555735133598925272260343965944828414349943275242860440360930979557010350884795937599024983866300642502457785673167074573003106855772775131318294558404309313197914052025173072885771448923307357037918985141991246697578778411524410201394551513238637720452457939974673368558653631012873870496981641314412785844485864452567884596743965013314470899835948370144364605338435966385258762308282579899043361073113104136912500702580098298515158974845684547055545783319655936923276097959713910274893400761836561161599335387098137283504129989612833898225167581012133196325776437221636356256377406522446041583066620941806803134286401484798186964168800626891207771094060818112395375472735654191094371950734839328792000939219817196183222614769426059741175508482496771725343694121735615766276066887731268212274678924018058980797028207652427258784975663235320429765335876789493801997774017301044302131379486273275422025222230640824064906340398765865062614694449422318156971515130204165388546197338569114088426860845811601168944360736194484113362322074865074391252565467288086439763851171745893784288255896138753026326667958012346270299065223660690097315883778129097490906720168367896177749514077767484810223348790558038364799806472477689515549875367745830364000925424154617525012387920071642786236055422508408076326223042335874742634571947427156437081130170601753882569559718660946437076725776170129167980724177713462342035166378607628365466752069809173418903759311178635351404792373859466937638939083957618741704701436499403251814341156211686511601097118230009741554291168362593649495581562359319094215690031927071487127183766278979725442970921000287334181164309675211602767386534889460909333712623859181174132815396848119794341568706762832245676016470733704384586638274578860498706760902282027803208638296414935865984698656934431649938411064215980655864449218240881015807693567877931251636063696972549361141365765910809516083739336638291985387060867510633941660544422216188801200488073296798229215525172761262275339227182773526076271333097351639775410075934709496154408181964419367564559850930694133066410418267849463170418046258415014505111327878036651538447667938363978890521977243429216308165490018397241907205282345362209743910110427569758269955012225331848674646028282979034802655048471927976896447094633020768142673891229825905441363041128017044567738389416481308247910559670201210646007329649397085039406129095071787601978788461397495870797885245825801347271394636709812743228219871034667879896016367577082812905789981673773173629311636456507480300726192218740160494504076078284124078687560519965488599011819993689286822024475706919953603085303889519592475641014720175368003808745786471972545320726480834586993205927933139510634026088458900494784119216672519252356055453571747813834748399726685971328589378487606246771544854526830449990368312775758801024719835104030691185758107404040397510828798868824968246571432961156060652161506437754845165978043962432951582801786206130925736888087510339064982513904729069452473093867370714651848212273642055127514025384862743439764269857544951069470566848489975819168814271790073296236391866918183020227470073633466894295531203766541970181437240533494061453990507090758023683261960158378659349611920052888684081321787268426140615044981984602872148964937416467945499861048252243536465232900603497512121955717242272867025854801899704160843297839137025640889042234303712277177349637254628421254313057345934982424500786769318954734304740339506829316127701839561018822723906505345164653908441272137900487648287575258641390583735206320540964097162382582196499879105067394582837747202138408299770327173454214792307947708866963882638587611359646447786746764351659192642076172519839988081376326429873960929371451502624428516376763556963245321388101159949099128886099014658201380594289946017535884324861888039060551754120377273261756634132614524127989752533624857852522462934718611540942880650418888998677820433244691909216726715916518603922967127819861547465349441411110858653893735438293633816028300430561301874498106535416907431167990200446627654522216549175108930358046421995622644987374669424222297308469640903344922654200275277364995441617800452863629056681659286101849446845569408750455244236194666899133179624064969152493302625498580123517609224352496532710205869502500469013260181389373168984312836703177302796611116001981858341599548249302564267590426143397254982886383383189788775001121211516907424665534411545038039738099933891784685393555663113574903386873544333108594474660012252412824022771547937343342355796866234638580969051364649794670950633260226607322714508358401102567657482153799282208011354239878701887714175895687905317246021985413119782676152881889719347196933454057340464503119645822616770123268677296906333280081789296962547942974270202571778699870009376587043649224620764345172172858564651868760952213426738705761912700183294095711095004233873949613270198549148649580023612114631169635239662057265777471855462372731218497436687040188867409670379580126761823873287776807769492855269912125702477232265939132176207118010196514203011910507234939761500547194436428177718344691630652851387109325055929587007592110889604856711406946749128936417830015133692326951175105727825297845648970624449131071505092495459687769534449335498068466403681476383761946032328037231807346691596705904587050477026301178607669398685092331145196827686667642080668904006185522201077883248798206700496621378981832887433091225612712072280711196533728513617335001552322499154472313145908750915106533163755337951716756185143173961229431925930980312736236434084517593525218474159746107760637816935100985995389484169165150683865792733178740617214738869772236150454126697756852250599392191143304731819455920246777496029574686359760867499089291050065837508491212450624133893283405295869167979348347747319788189861236118547979090332442273994115458405424037073977597073185202430331254675236291971535536006609183073915978143420986418434429692369879154351140182517886649026044382032928566556502363158225942096870892452065804186132689771336350011918845727918512109454171523521982088817346662814512728846515820948109249135454136303662490400594740932746182212353449859116365631939028829501110887571835152921812233106375227583593955256960232919583339357626845209788698198823195884328055730185774426536291219415221500044498511468287218376260396742171434058949540601560886072045409961455046172273184918498268374885407189591448796990610731292299357499290918107019513302709281368529006106259670858637749074116043845993290501683680937825671779257675949574319854719704002799412278262961280420903755164615388735198586620775473273698514370200583120235934999696301841343249192212856290183845485340624355634226209062487970605518339862268245628054862480947825140526419038474413059064559062167749049834724304572234164079414600041010945460662302587771849762926884085275085458412643444311851209989354009723436427164987955885461051316097757924221390689387127661209885317147173245125994892781344270602644384640380426616854004516506066051924455763546561869769304461805965309370126741365693890303944115986378283136844505869649590402457569252016770724159612997746919820093930022226131550252164230999137120933775642628653451784168013068102731443449173949660366794903699781973907438281454621777883893188714002190972904496515169179389196277708153564969704223214070992746058790729983022263167544608818837505307109803499706174072929624886554896579716959350970764028083496006343713341591727939103314340479717793488131208582731706570341852997110952250186323048772360371422556483974362226234119844103902112903088907705985110654334217812021177735581742351593620245520116723832879693815236232744263625030645017158730031095290752995357616090338969427303601462082905697425189347867758959863950122683378555324412559849991256452671190559698208290664582940897230692962286919300978564788677510798400957961524244526748976177779340403539038681461093039425353130353948356837709502266461987868408083587593090832259391811129588235122020081596864472400601304745813377415709892583773303910015132591776901436171529269509556049885205245464596452211161425200966049916092618724836569509534548676609204350067256454311413678298429510636487295446194852701093699899268891537912254294690644175953732696792335569371259801250012829074828443914789807728836088710372126834237520549811094248924190250629371599848227344812736735659982755088414073892537809875670630579023934938067484845473908541198367952252702474750281613571433288174618446793995767982229928674513521907759242847986743499854740284361523547937580011700499036311508879288353059734684373703018263241294537157189735954891664774256180251290161256265199210074796969585794045250050957121465518423469210090176560389754108900717073046445217363130704208750497247086802951530667545385215604537238653660931662227023438168391046122358089463581295849287432952040760718067219579907683606406236103959362267797603406139585726721705830232304604573702985021845730732693248255163349723926987407648494812976201539254326277428747907074269071451862983478233123242617645828159379906031342962381278924589715963005281441935329242890594431457894140491562245358199534755615555134085849215533983379579735132658380888906196483054571360372958352544567019166142417900671875926540803623475986351941162970243072239487465631340256836873044347497109023070027922183909939359079063823737186290044193890038425703791948184568811697243453090858931819374517352880451641767929608728652367779732222184229004296265776293912273398616415347904055264572947819516373577054192328906894408090500653212591575850678400297908473718326921504411123047289565175515861299466918907427975263271200694218954962244915922559436498548002752005454949763042891181432805216482564293045039214732474113158297496328971520120481013514234616478123344055912147853953642653757201406315413186332943373676760196824688782703147573204202662163170872964472921702890413086199163010611719307568575154932302028630720354836355406373586876204559926990853433388693413152454061987972123500147549990547527309804205106533780162805915165739769230955641492681377803985221577728349622185644717034756772517699274451079746626712479541434470058513286287369086162782638537990196790923313546188694875938598616590018815479925125539219813056429715713818321907404821960375695176404379848734738056087276291739166173544587643247783506672630919847604595644540141847764783993375248399830883124344285369101272727549284648569147541593990836626279622468250020632336828602483378158708749383261679802462525383444702038795654252299331857180812385445042561135883763551937951459300569898730885419584674592522860772013150564874659291125327568656934798436887777556149683045622456013580528518927851103660254799372959288860967178467316593301765398784085151611375093293657203419509160482613365183799644981035537163649422310522202847556347049376996320353769535867477986955561610799364015477559616597238304996300637249201315840719648347786666992660466604718038590154068759746747729055744209172191059500333552425422534644286012148707560106984534721277933700096085549258699487318724268679579198732270797232685017643827222890337161489267972301700270003729835682678449032216966321139726930505899591128405419504295996212632246092260525962011223210847064078480051938396285162466189645195766208529295916190077179752627009202060395900703596541048985592670386352749011206653234285720943094099900208174978929173642481116838516324064169198395245764875467862336663460174953004140407994753509673041604008211716087890210414626434439593814239997434925679391647842368175552605614480440090826981627681010490531265624503974363560041312933328666865070252272780965941497908271595155155276686331472316778545101915692475974246197622269059029022119822554548499996541458046205121961053592786013219209698073758956170495498900630192762280680415553426189141625216809024632815267497874153038988986350380445888997733698451043311387920162403686798277903515891948459641490287435599289818205292291813875462079993359914948667957021493434621132870989873615919697542446578516357078560322478888760439569562718160207483763625277342744318674444061699750488770227553412389265641725201938584975043764021070921126324176213025567358437649893557238479947110950299935900722143624938426344590331582444329204431243975009390282316030115986895186851947679469017703048607684308935413440946264177366436418967944928226072969469021330703045995363342821107616545889433034790019855965501998208814816375094907602208364448776992967367406436429991895295513182195795703313561989390076612307690453053914220496630614194174768893631521924264124568837841659174715892818240461573848778771935932433454835646815404283534919400563081135559855736914147974821253684792902685927018246452290854030486381647263829023285893125570978421753455213201235908957422601282374712270635685471629182354268746367210077980798386724159280255012475244730573731650639787171298117043757349323028993437298406013259403446008359815583883576674290837737626064517290141433644219161538736115531626639891885603870270638541815655882321802533610447455427586096982309529038685959820241897074641180672986047311916638432232093496101001583784269766906984866488634615812595872686393672549802819430046891910837036273674357725485828833983999831532473164162825973301627981809231188823274664047317307085795149288110912929074565301596105046140713140629215227708437946271214322305518914402279497907338359724049047298914904118649148434739725480368751177561828243790147857266750565479487185597262099023099716069478886175032587840241237337009880980769791010053554209788754794913497308851095489718678034394773324667758397997871637631754193761919504760903962323728279818893457101494113379479437607898932120453525634636990475165029363729073823909544050362207779296957808383011461856706850210029994347526702539979314632641756691484985576563495258465315706870169221271563808590962094750462166011075765389255364365225048286330413991679723554240328093795099116236006128747789878158667469222914105526973084576927248980753948465039004724112584517345059683608058873943044968643194530718731997066194254543373621432155806892156443071011139689183965142090051741698868765686012864698954066846967127545827252022559868977071520461146702860341571114059168114889804061766177987452533435241353661329894710102966181779703569415846619869265979081743379437544193916270726926203603382274808290819903008710157196604558454053970946401512521758776510194066647326479801324755839059000478677556141466618829129356637305451181021063982892126618796612834928551683466769435769259143413058658896161966140859954698391337955802599294413866507876636922568817441136755937970652838458863548855612895931456202999400836264781668733064316928245724045540720138094586631997375700274266335044914858962180718397278220570341145497317903398153465524299531234323960748401369244253569605155793129641356114978366974446897545016073780013065626331263200934947838578885146470057670360264351141712586026512898815069696391222893632790789434952785730954757853228220889399386233889732197156288978914530935170968324126530571768042004438768352956205524011978838797938450877303369007825700727500812962284950706781566871540216496532848652691853423747610371633684092830335136139902704517379301021263732910778387717001578095377079289740964803388529136201674639598264631664493205329311785313931008682652173787227948677716635854845211927742825127927548093378367653197953648028574751770835154175730008752103397338648353527402981166953249919636972592527833386649835652065326444157171098232018392425696776251966420509174479256320812253947935942296349343936130653931525071153418652864848386352341199677346429930603852564351697268717504784429271534534759086696445930957577017851542448388213084532273180348041541373702346734130765692574840602997375476006846618174470829669549364858028927158522876140818769407987839379757466899195970068283304179523196258319495958695676536820984029341635261252226572582418753101871497734384680528943344386821669102087608966828242706446588789140833420816572609997920162097808367694724826061846688941247352466226592016331606502288250571596652757391016136682301424925949035160564266772355933599094991367842478704830265417138112657974910463675989460198442019008884953584773356551900207583040574547475311906595902832580418710528573291739519889032174256568818354264956572242430864935287413636559617306589614269367116510226479517280253144775821787691883964249964987274555850308611358062108337578030698474696180099669017280218521099583337793063975449672268268142348523158721380765823439925120972943606077244611944567003296372923696318396248601207327895256331432363132576228241173631186809269906082067289892816460168180860839405780308870059245954619955553859305824535537767455447202117352377388273703568533510091339965055943586034795708982842884228605567137971437629042024477820644484907039489084349355093579747069857518281682546545170366258023690921889048124158217169669177694089019382189029277131067712024179106138246346049067354115845110837009399759415371838932113195139737375977044166478639641475835808741481403721682927389702280403728529423839743953089265117329501287319656556193946163058765457062115537247118371536321095343242699748567740454577961038495261583663814970249905105629670868346501625090722410954707963793912583319623299099508887919171884127150610811359158062117130553828213913491141713031395248635664024308750144133514880423476386955221587682037220671739483199625280876612509399730856690198876303167907695172835307003217769285401865484377896301089022066354671147950509203641257312436105523852927498510721205614622128621699284763771657758026520785885733170491902581524808482673575709992778024768234501801568350502122830863217278477080070438208663843113594324429582533632557786718597070546241725469067795863022824274518096554616529076936537674332747611710296506369525520204613306265716722245518104453635303833353070830299209984984749691601229344190878762234467382752273827439658277072425123717487783184028104107408338603215288259059448813610514937116166526696957732946487429587801320224075985197754893036580922722328385066170721720459273343216031447693577335635803658824893934014576318392002888549775262609829252342139463430888710908307653107877409846300741150270666483215639884569802144558569676424263610952646757383399213634931620620216578990320228454746448246003502075257724869456191869095621889850209942790876272139691181823575229468081431406652054112824147330094754300589424270564871686506303922170324973397427999249818172932187997974572681974974991918400400637536315933663975116067143768507386047655105059860155918400836662044521071814069346553439238378497885536616306091398006185145646125596012190816837234805297297552372218905822717721755300093542210749542550826688099735577013606755057186039772545052462044105784066021698690869327517703534809825058766937792115819697574962874169527877447138927608156187095950782770046174598896786917585694160746088738119561017893321694233026796738902210700693243346696130561929111450945565823655680422739918051787543621631419450316665311865375259070337047928618597976255879144008309443319296643584943838276682381139625439140539352163991757529601863609024642825628658075682135752569434176513555861791417864015858926508357924955425764285114229738656398742292459023883305453386080021846354684119208123521060943628332357764222616350138250037000747170712770669544858415732921635370635887708968797534854764679137323926537438356310320918370168972268115102773806208047953177735490315539258199898066940897877978585988998366021351195540087954122061999361519152037388921862250824958181526499739977534887758128763139996872731209663720298321367389706321559946096520804214754421249850002638532449367228849202372472614973993849401296945919398864329185022315675839544274506852327955397271550103747614385558159798113458635088644775916578274323325891800244578389940844386673020575563898308341531655327221014594955282878140045344974897876791734856204884591195997341179138160855486281666871370593036978281630721422407514765940292121733636403296049140150368111956324119427626166320651801180471777309512442767472475798252431011034714505965823020725761581825783792037535451348446518449408270093305255501715754759167077976521691569485640580966429866416478867849192743419646351406903375511457303397472287802062367625302922272470722031439751143892334270698342093157563527892048868978669451779112814103497357239869607388331321096907131324822817100533578766624379534845887963220070228810566717353011540709452760068227234667638006203714198376163079301052866711701599107141388671642901001702153862382524185951604823806969505731402543166450195067929528361813707828718103851831529944649026872978287638496055887649904270558955017896024672855246506668146263499383640225331855697557083073507628626992553382540233877180979385011051050231985554569293408622694756844372906560270378963804552639646080810049761033314106859760328260853306763296042378092548053344197007246478572301099488168172532168816453595699604321263940901193115417426015825309814291016576050498909110097067618000080594256232862070395140919401018220081007765424362052009313779608340212103765668366646081033896844931973169346689157923813816867109403376560095632360727045067596227712524815135480470437466721177877142938494708572369748805391013075811064238314298059357858751514072183665100601950708401459812104291949514319295668956203436118781399628764632851748813190332054232990751890615836090611053173735848038421635508870781930973444637449315900887548874173755239678723814798691671211777549957787445487104572783221420611440228400188127226406746633862133402207622305237326486603339657661088201611198704813739830368068468166317514811093690222425938243949661650521768931134815703715706299059541745792696772479702755944752038306406177238104761871219660343084600049546610457017786015972459244267021876939640558209023458584227911334480108038031216951888686083942199733094412368079306830016867853701937907115902464042699894560920911389734384381307037671116122368260698931996410473152157063992714302826334672891982509239162826448655100986299142951110549883598379856798885402514755861317560226897798713493792006582687752081267110749592670590919906501963801291118354583862857162967932139921399846266048537167215917980917602254887399906285634981507251372301594915964795904207727593069059022054768038990283209226584270074705272544282455924454442748510506533331532137389797072447748430285006248729750289652024831185785988901570629083595030925257425942086144812984429557996776592695659297385185065455978301478775893150940240545959117923824522712091443542941174230109216632967846591008096582020030571363358762534509224445792759576235199532259760468294888740490916008656557471717746007334855755009059976112222398227561522479500280521899101604938627333612958678102821743122477821513517816987873418307500774578929111453312896700420951923934913518812358121913921468393475403285170262814620342940244738922326092414507374764802636453432364737242349760806662958186991785583783042940693500587049948630222866616191726696434892414308717964413470016294168947584551765395384552433369875013363714204152809017715708998931249383203001487635510679820607762096059578809488998859579182951608096106287304234320362257289269506742914979847505263091457807792186985150836103859680523953536620529000048421258111945468733066209949672979668320624676711028514651603265698579971753835759680642726766963542037228890466717947232542603515685825367107683702477854453761985821692228761902631213783537543033228745934852649848777902898568184952852320314842543045659953063892734325371433644483032031462919624761212624952978850749349109088591627693687215245859389357327493909999927628987420713403413897814815973144065080387345520755946417581185435509357439650826145409887154812438916205028245898535224739723778482320049932477461826517654248905791497333752454769572753987997551654254287884253686117707733825810076986099220310679218027793739525808828815127226007670263011487556020310404408775924522471449917477858242780314176647248573608442622986366934152715043052033733903348006072744749155349450766582058657675425349041301180495555532235460543696416973089134587232511410290515399434842691503556083355399766055770403036255576642079217566119245337472259746198494923786657223389027337116015412248109449265555557230790750969932196707062337253416585201441455075160003602669114189019035690965133858825888199454868040999692527362275871690109598985595419092051339629280351118956671752154343582428477456577544573820159359577415423622196706684799007326776241131972866399961818437319548132148693200658854851062611617284941284438865955900221091908364504366871711086398352549473178539635217517325415439093608051782772859386641477715515124266521247572940634869889292989136510948346223568552501270068572400064603605480089021017378677067536296570184408576251748108502937070264398760991428973419884669612572036975716003605140597457494713214981741150110029688542735750011503342052323880054455803975278061660746051808964768332159379851490275972696296112906855260857091139565282823743639892939989426846060582458005196568820642051082250614874277899500434905960414899161867081275301886798916858020187559178839794075687617722993520026081898920585852868460628045625752855922079935964399166206740998174236957490589012034114776640827993564965988839423558098461041551540140710863710672000543754668771557369295165928399995496368585346850085369606067347166919293620383133749903758824577104428065050560814813546805739710361132273929764079052829286737274820602110708287336795972162364563756691540659288248805095482235136423040457701254985324938857442601859122271088065074006277403243885083291437407721068436397360864532954065471403277359313528357295642042866136180140242020081293817405663894894675766177304974375517460595432656109765401941684141469292110460415744794238949732112853773954086784463582682267713093107661698322791953510262391046638669363277034487032415784863307034044776825017881911606617551071862822113435026167316819760107431095224269673076614483242134477999983190664643089837549324993760396122606641545927831012954900133444287101823827053142303279391103323672878510108759475130422862508395616758782414484747573015233928599330190316099870448462688626637615473906841197421185876350648933375372633196620282854021545289785205520352828461340024339684235813850495749667835995307506957711569975452740598891430889085187256338231033066850696684416870710639000497307037758164278177197044841864555136296449590563944378734166999214635562799652119195714504264671541439396629592437981132979949590924834985050472156245534719836809651492953484258301317000219770415135066896078276133837772514804228196874025600158354309284316622248974189061419068731156030501221963877503456749192067961906428377916310668790488954017970637492740993560172712053826964017144604815779573911013905452325292364672527241525899975485542303736638562360608795786072240859791208286727193084568995641391109201955219526140391143158302708161979940118518826787024055990877111067013787246471636171801615017535160215040455421711637774536242532149760233920930354960347920595755577187392621314114560177082305692863131283473496185912246221324556152238619922454924109723031438427374640393222826234234413561528495031090957860510470735416887591252495827578306387542055276620870273169858825381747444251485683567454526738521364142361397584625065955940346068587491860141997712743471387271471101149010904074359950786589574760166732481304244600110371985320173508505839940715833446239930618552459128633776352414012870573112183524674870021398283505704152030513183796535718346414454376132219263829682250057663084268005002987877041980861619639943493611333965660846082373531107881228533232553841786477071865379908453317802339192920535811646189293435420683043264079486293923154746546127414688976034654262954282680594541561698777630831594630376738544576262092340268861098238694787073821078633008971923037188905155510331341364559971213288342439805027061021707508753655897039433666429760535648558429804016485550869221457386483920095281374237320394298563620864780963006923602020813893556396974810090286636559716678420387738367067584734611537024994801361657126014505002404105089659970539246519054707817095593942997807362360654618497490379351980315113920575085879542223700740776065482782186841422435375655316135167008430366001118317941832691155167132308036629034071499827187973964719775326128706318967955501189910728641567196183877526535042168805855237983991941572203379896649988339281302602579650669198502197733246936555958294022125040533027214750533446427085137548489980862740996533824267785865777028703482023665478662270282048863139168639137870618235295607262312092260604397965213161771480312580022352993920151517321128181791208301489832056761466346761008339789693019672060452269042729604606709550817768843530327576610160287254112886025791466161967945090310556381433424068934036870879307545448463509214187785754091308525682812975576566586948077545820306312862715269173112559893092794140345000739374965330482958923900277539717148576848429458649558601521345987785378853269756235506365741426205852227530526593040440611475364719473771130798766166168975279351607161313488016494571105111954130956330269982597884059822038239184672304068127393071166972468858355370587746790603617187399512639044301815916730063161089971783257983479527661461563842178760270065398614714995823754104919478220370819726579708979286196635943345650254494462902713649698265681847394140474091316574772544534230493172849077243815992179820112805038759320032212232611770386105680583512640510426911197444153690007623986933903119271196188693956607070755693369469166032924264190599120201591187851341947006637796181455159844958696092346113662085482414182912062715879294755994128384420344005676652788778656850040959272569742432476032658397804475102570966683741344951691744175550162140936894187847315331232328796788243908647076660869621473863264165984282717494216584344198483653303258156735045894439390376843741375094398614667599392823922585505663059552848584641392567700163922821669283775699326661022830984449786941952326944243657104629555590484642654364026316247485189781388911094227974780389713747757712886907709374005551493529355260371051755823237245063520368721547773285035953129847047207714726765135996694144202376110850990383778432317117169347597442645389200745333657075243109631554682757465042749192177618610893390662582583928518709936028641090797376069758295133180447221068136993240518201561067227044776381323113537745062869297345221862110491481424460213542357124712105377949431368164397352202458688409723542300320861799256504861757779833210725699434472270967909290307419097940618060761333602415597886007265910445432773174117168966106593764294979292401680654575104972069347812168610615553177778904811187760607588820332798885083237902757010750267787528518546776506294962999020730629222095227785077002716796266349819499622260051071501699916813857000158642276290420016866585080723607038426912699248313065529672029814388079554853162759387214414433920688829847809536280914873017722334647069131584089819082508437090064448385734513731990480836969087501372925082848641478388275616911551589039403568467161891053766646692488017317859325828181399396909976015319220494492390566505818637223544778447259465473793876927369542014638244642687703300464829220893726975089575863939703275498383958820563521608299590514645888374769631373363390975611493730513637993989841004260650245468506324852916945393133717725224158657424062084208879024726114976889551009998385469466752867791734995027782114525050533568925813838432471130746635997525511501087740777982948549537863259590790115375921181098799360929638458051142598922834119870551084635648549412833310332443284454754652366437548174037481937437291658818671122706234121928641544624736266792900501782391679777168608655550235574081970377834827374793675364514324286244245887162289818187976489114784242664521380614739376853555496401036912778925661341752631684255557500905518841449505142385735089683816642214761058075987497609222751856406977478095435379469934781790625954044492267993611066055574126486659423991744984371701779506731362104653199716588210458923810906827951677350982983224474862692496892177848430684102366119701096087127857049705484592392066048989313414011062982159135874575824923875204975467935882846705192283606882533923746524763499354110383845372270219671348814795373189331272099382856475104441580250196683415716095406566623471971088155304218155870557050751841335615727841387160880275825934230028860721335063323258728571854300892252532436968083824622308943435449911933990688329351023781155997963180164432540244637802756746238683259819410577025041960778086560518170866190232130408372624881360012727704958063163109596845409070933032863207720550692783456024889844255154833099913178081097806392469713732157784659439125054461722108732227095548517694446397732907051568841658088962702460553061449910198470405625977096333297309419748908766464252869753230292707927530936168370870958592934847282516743769818245214470751220526341869944944759059808076096809668828762187196345102296626042715856415634181754295145593205615923613757291954371669257414869562101052472217837959082770129426455892662103244800358983945091199626428541818957722072727000408952060348805252375948648698527498238451118969234618450172471150372620989038818628261131650584932615062117655738383066382558095738777714131509255533150798444354966477267970309842604434933783062912976768905217940185170328548793453047908706743820803857275086472442757910130481488399441618406248401313187809789340243035407067268918493626517018223977496317750152951699785245862470187627394650862194977857286294515993132014152079719014372985076823744603088429518954121611807400491431580710198541280210887721880954656075608835907708515613959569868605169705736904513651987456690172849185678097719889168716712510271793923126597523060043017795498778187036120146876344978084199812662412075978252314936538442551670049180417943017481695815621145573045254694750408792970622305340886160735506845756698710515128977904050787137699822466891112196138103257025066984604286347506497539556674702166090258344759123095611599302542601999783384789646208415202997670005104362332667032318104859669929075831005195052458265801619968513069157456651868433358360444133777842668943006822147215718169133862685610193937089454194656734182719084021136179257106994526904400143008899657491084519695393120540938678278344935700163741376463457905093609031117022356014295269680878312878916824164814656426471867216137518838568481766930951273515535102348818207132177327872041382097308718314683493188723171092948854862545660330670721604494837388052830801983962335864795530588012981537770497181399474312828888048277458265442399399786702651464215307830471237821897414221623349187473329714008905698636013031280954300689322041340774208468408493354269014787383654819364437055745259876507010894578684940990564259629344727225840219827895452178300187340612186757040077430725961194585738350918022132607670811884861004759973398879588649957622702578965072387956737436386597714269538347109987787830176012660116822938591580464715211221739326117681278573306912685307916593843011648000044687625816415014231672341724758843835342943356379582036517470908619207585625509745540710631932714715759913616550946882338825434181991702004966755456391419563830641100941028619172764871516337042681698008094760899293256326011312805917157618398645205348184218376249147401501759092484911255577697952259360758963397595405584459924968033038745183145360674376707472250898511665347157584113432444208375023965669048026973455322368875254551050467036949221086597328993799767652110747191294418352885405782225352462631236497894267171590614063827046122053746723820802369120337161033335510313847615060183944303159784026763606137197241313884112243042682664372678254776387289389880883883094641170292384128251389164886028014192672759825547415858368911221966926734468011901800041523579197942678613923294011778529819255722713865566980718954604273537832465515448616605151663709898069788042707367314507970785913884701699828875316757232722290563379337767783597480340867904524513119682987022047439423150241565072976552490108443350600366016527908461580108331431642162258761183534879148660448478012840903222456520779320431110775242215218032278162025471921372973149252551267963912400010900595751547051542201991274771129062165338115201593263416243291891922579142942667765256586858274974874947096407724185505613591837276350907789687636886392997645788929536488672700149753962898114703653758865130251088172807839236217263081946451710027646503004013661730683175522508027906244911422408826567288896391851675822683038187385309613960295847597682465127864263769094672275491170899837720809697268579668946216775606215808949195126464376853006496386628610353116251275236568568828978769521440738094434125477370174375322944069843456729694186948962039997250825238420002854554639033171799957752009592931379392707173092511887327308869471792324017988632486988246902301584913492715522691568510660378487118522282372557534793955068069470702387905539188152826521812773861839078259130941235758385713783651056880499296867192818177892031540300025172485289583822175670496447762250821210800536763045350448718517211095161005465170012028322277203693570639405643463677200252043212892218731509377914847531658950305241851307812535256069153458363505629288372888245420615266597430099395778211611698310098993867167364945437446801570512841018945277502453671720238342217712474566192311097264670649044094538154222902845574105845486003516472131599400744852123502742247401588169281596566188752959708905757521483348645204123979268402796360580400827467377472981950195082283316786927814830585214538909979875478472479351105020095839371517108335511091566090756964078392485855283940452660238655134355962738942996237022527273930111237074387015560128572361299274469035393309182000514460492570244458174591206851550382024428937044367775146976625238924286898173373050661497294174729039067134483898044647424478464457946497489883053471350137123404292519381476206973464196533234186763511566602725440757605235164589344053312582824903707898006744720658093943690017251394556251588029651290701859921565319414500328209407031519339310567919624253829386637879238719172821012865648204903865912574326120472471215784642865232075231545813687245038417816647841487181382162961446137540689439234104289414939195256150706254719236151351490288614066199117513498675051671878251704494198148386769784315361314871279555419449834743232944421659396403775495770269631757665335503557074386087205694874691048439817405887517368772087452833800888766184408388979927792894497697255275425455817540807563555495095304300255993597537918002247822522350486052603703345943481700811796715541439727750698027843640053432901454257107418740123989284354434219870441439613402171874803346017591403353351806044165108290421388172364148781142176568539261310214622751349881700823692148824656950479028769495995920487441561057438240779161003472590907038440125606272349048063208184880346022380304925946926422906863757955320806101439620090785347334045897629678317102054259456466610398462727790376169460138796734383840692150456547054103056857867217038770538054115591412633199232194654695807018203518237254269584914509631367132476109057607626385873630664651406514440985168154995018042677514266136446410267670392368547259463176791507327375609639080838436267271634327071310059934828521248529736038942078011353156664878990402904052511641008236247804437049502877626755375018681223777709090789516245757416282811483146985629888810269771100040191926378899581788287991978173133349467173349019753828563338974279062261395120229762687267751665152831974600548473908162192492089337170351887315400911088889961511354245240842264036990079641244885213763627555181347157481194884616234074558096776422334268239640292218074725587482135934856080491563733613227542401307339855155241912361253350554008067694955911528836110526818110384456943977188441840604292651268262593450788585811585176569054569497812168121965674923498015400914193037689752225534041161544009275908758690855309106049879415987640205719336666597723717585263644275403470508616138786773690639474405564845062185308898232759125130136628509117673399130661938064609027596346875704049515510510054174897406066635611276696411038812856636623092549178148323302402271605975503546265591469368925095827122182753127480788448127259856848152156485788148586213454123529971986426886479339374697233899636514592562134050404607193679954743883486131712964611308607159032635407887942202582801617529255303711300964799191440969220255584528809297248394493316637971044252588659233501302623785183498492643084032565394904578797366733280684596219248875095568957015466974072557609346378608897133804068584133327146063165697314684638465952697147945084544154208753801614904061658233646769014213686581352350371087320265381299350494196481113040867463624814500917563002312173333275778930126798530024406389788556906359750326330713230539676873372422884754841742625157300183036674540431811577005050220219068521265992462815763074944298776673341868746002636807132511169485663756973280183422502638870004079757443258255008599163250524010986913089148554094633520889521773391562459881645940385936291706038850633869162598086536536127426832192305617012680156814310932791703084899040497234648227578432509664077733002157816143965294385836925878324567372609751870045699089317665093232491747258600355862261209276437544532120694047584160822794445880510856269095982123611378007493636284097355086235287498766038372393598860430991721199917704035692436771844560758621154217867715494005041522777186025979294134606762349523201495195480108914101575248524613987040199399823946160114343422075723255290294492836253947654134280716249318014969965276557948158847047198433157211255399158848815189393683987627834308295874168345071148602483111618805062793861677891064263099004946521997624936287868388469834845438741475082760535192301166918070509390155211424559230312482519018399374048009840801360318940543494870650528542800601865277136342587834003848721708285772219009662410237047670643368096769403832568368295158376164293417740875650806433323498238218912492546648760326711794099488591773889969763967889694261940038070812911686566692779107941570412872977608436151692108609440793316643500946996423377362985907001686571325383342582459704556705650658196837088608356857010249828799322567676221318256347504906720733305367951454328350572592979270392913882580900348257039279822007016691005605782451764221340281796140016068677189148691687776836161927835924836710156705105051011719729469453621410681037972266854931315637241895249402015523260708072692253067530905342206273487953841734889116274870350960493267321409647065747714885301077545176055556330458876114393637573401604512636688588540169792988980933715170545314096716021951191197258903490111468228712806611360175558099582010531335770904176056376558323149049845969319252880282867720045765275708683581092654294001978976919794490310389323276529637620927477122142512757398499462944028655025179320968177151066823172126452385913377210747613735724468700260392187069697580107720961496758302077242074004186195717907114459267740851888793617553510879583708019361739709577366610729985426286005193313552939093806256144920259487132146467107148437961582907561813504374232355783582900254174889178156358577703015012840313804844011173887483150276081919543044323289597737592576248510499740985128198427441139850872134490083525931417628904134290721296957693186463434251601247943741218031596850322517927934688149835470557977845137656030837965003556543183902171881812015580082078899884382276656486330729336627470904294414167929559614868242009590562537400670914604431872280839445765243073866285133760426023443110072841990936176978037730200819827646136709577890049884546755701982855842868055403448835264579019943996691494124519227037585329112210327232785947567535861079839733943881748385507010078474325267056405808243313727827185094686772459418786158273079831421446125021696529475991729967561343923368731346248778074055026008860710335192406324362714005447978275855816809988687961576136198697382653754131997969167798635715557793648707252107525476138969112373257084080187321461441127613660106288285329679276176244411675199887417271800793161423721542717912920698586052439042294964072250728037392581408453716735580340524705495967715154780021148996181693922330075378447306967673187126125082635435276187941271075739600823075667826307276977369749274008002031674814359931674620548991769038723008810205951092064363359208479162418028680318537205073910106384650648591657066279662650122440264672046956289624123205963277131021298855934328307270943163678404900280863932882481754147098247769678547330389347933014517967404795088984661651207043749041905431106207211735479391229816631836750343626258091909958570264132060792053893651929448418332450829243791491597759468522655439234878266695926299224398640813882355936275654058516026432734657980532742715855450756271733621241160625905328091810695178715566436949178691516953976115031516534799377849144524192639306541326529775132385250380770879854309283785615239206620728660335042211553607071763786323295737277143203222862065608484548936073328539011372229336537259288221476686773187707596054472629992304797845794357776528769186699721274381978508140662746327016430540941922537908019610862163961881747981027410802326576569116125557107382018434193324705977456415639514126935928240767935157265865927494151746601999722820608050122632098467901230683123404535403401974721002251306590517085403503721713563006459088908552573910080984552064147385373941383040135645824761158125093525235686648815109057510584478598406601345191123006309360323472644129129885117771538279865466048135122140146903799832155778160955504598215492759284704433376462573930699656193752685742577483786413692802051520977335697109478626122568063943702822621639547088483508550593471240250583051110704620428534696655719669609625869527609581760505368731163181553928964755354517774589057309020642262200843502019517531224595592550840669817186379238053446809023382285787094601731629317496812005348487634988780391994973087274661338546867422794574562318314724490525546163199038356879982248381877473861157954976974913021700124626141524310535783675353749706668825116681410668035355610840816112981645269157683479710594714420875977736248038617396879997747282228725287355882094822868803526894779768842585375152302175888901007433967265049909153731558400542836507242119057208149500365509628111361536062168458209148342572841065282838365672473094514009404308494806206729420291397035633214325675430245733049954246463193667660865020735002155365605773537484942789944196500694239486761914426059063591463551453089187739440486164752464552027424938339038866795452209269008690857544192191259239606814210472752027631000036063333187622503693957714142710381976984523717351888656050608345471117590552951464199694034980358211372477600451938077752081978613163535447789215808370597093547821189078817319098519272113428267249560588305816001744277932690960826798839317400143330085107064213043875573213009949631392594969525146757047909662088736208346213131436845242290557273302978049407777990692071621788646786270043021859084602446987635344643576456450362217714440331590884027093629956067079030784048932117470694914244915593111690841021367324117987737629664749247000942435680768599841122192947313915879866865621402681933215143691129977383571067116513501325491056630017229443189854469963471716293421617310758113309509163972137313453835874645665613795327623875544127992373585089126139560800238754568523906219114555859369245317754301011626700936128561563918721534534366944155014047060974796336426186789494433145660599183042926510878501539567068679994211309333425993414169311413597193100858341620209087507583897604217695349539214201287488552441497760707963257377250308266148868371325830710414121049178387781259764170549434167458035098604364237012491202221653727290378930353835152328648660082609601078097279132998827682698364359848309938597069672888424647903409143024929123824415235651082922794511957642253294396143376607085859879463229919841095582643143098577802753843907049769141123009859895769717136935209592580053759295423807815088499667432090877071026090686077532409381068333568875600363179670329318037722520904911631996103769533238931147717775952463556180703712738461457014869257132744706385364416718299816571506544511613022580394267045386121855488593010255727541033063213264113666864608803598646563544532504882996174116689737845249398112338105528932854766823738335859848011242121820175034159197191061392006154748067449861931683456967187088020729157410073768866330924548668771314501017653294077106392130558839696673272071933810018997900082132411171371566522934577027810042195586647218558323785758627119741722746690234400622333020485916241172112105487641541817956849580660016096855079828968475697106979249614687498669166220732314808593490998320269423777987112080594397648587159529153158870966108210475798014916420898806974867722525153065852771658981220648021886076658715906969497933325530335939052665608707548594098194205222328127085291719127008192661688147391361361600445905216424979686197681369725505603537570777314217963893355574359052940437288238710144609611343956796035100337225458595891707219203388316604054878846347567204518793896117478550969842710298165610830630691991839321671293632515207853394125439590239334454524538429635654416281511552465926552800383954702787910017210102412781625964257612978100937794306489417954338088201525060520799516629260189591602394881659515061062909074395701484668789655455465665819125039090886276978081667620557340932318415956855921406749800487824498569006163169516858084793469229703531867617137352770506824208920536596493080746485022978172009794454849641691032754389356641219338205876861628169840368333438705508588710969270701804292388636791365848127938601440276851029862164438128208378701693504967801838684158619599259259505719762486666819257313149437086315065167305005977313068224145303414124958609162353176798480281082350141054556789093176024283119644909154683459846315782072240243415356056758463648972351950145040658897954960908826401423728740542217280917563271461643565591501799604224162671410395695208012897528955763741496583946916090477015464550032443974487421893497674255113033982672085746307633488858582917101220835101655482964728495337466762803066431436645640203795737182954795315688731766312128763424015259879046193244299779385623639448167240039226529547381471506621049185168275783203279142469430363642709818947104609021065059486125331477294747463246075242031987326405506153579989003463109730968399337058834828189947773500245070959144462178246506913791920311890145837833327593428399603548340941867275054615045569398327629569879355379401598597209547093509394098649599741572361070597078662820299062962851672110091782169070446088282226396150240464900407087447257149575196257712978258186155827058712190710917662677352946480735455711692726948440615889886594315369474706124370292437956471576816013109919618253738686850754327244031002813584172475861035583515398501357655715531569443121235928983539956515949324523760265794355446679656989613180528721314376646038991881406107628525152940615279393219258947948837846434081162302946690165960967560026213696110314518562717685504647293580422915901789409163378412199991743243606555057291695033683140446455368532284481735595933436676378394536416451826057395633648584136625224594470501133352827216469987853757722970495762421940221094072859885842454752028390271512463561830225444227966949997720851414692001287844957758646530455983659636439681617862900265721330782984233157963815176951391534228535214379905851419740116706044132546110422262396507663898588043965958990288709889099990520165455701739048446199886603177459332381067904302007197426815666324031753316288186167981060462555048551888542900199893131407918707112249947697429563795468418612686767377594551573823899301602004415524242051910054898906027615730524390395550382825119997886171699056919509331531463349942895752161251017739910742116402239947665048200060195666898274954108113440941451741953195116391541184902713253466619104000302217503833858947162983337161817144120934857769330775173148920243257470321529577940543055695205175099294749854034117502175952217653747546403586191948883611226144577513053243377203145444067170943721290405439306721855517074466858383310895312233818477560983455161391479613740641017255079501057559700820222803435055000544770100786038499348780944634314611629144791322932723668774474728047863308803999084284869643748096278181561734883910723823185419858531855235660253952522441517526952313503094806980675593955129565827566826832140894736817026066286323648617630672311985218253803403107071919892813414403232414913620254140066588400251846955892968395179603386514161005853281733740131489722045217811607186783059193895340213885436428524546468812382997697031174547148786338876474246275496224749927596181590813586437224798101463544993408696290381456237305156158483044580491569587316197028526936543040959037979219848163841828969516669012570196045828812962718904333228988107724106467631457928149802170378682162982782323921751133492545910185430989978305412638054641243732185702448402157911670769948277142579274023326384007351577134102122903695327246205503431521041020043578810169388344171900546329775040036981385351432441298343091620659883722281754253173018342687563213243672238801183937913905073568566013602501150067196234656071699492965655780719399988722940364253843506100191391724647629746658372628220247526556041483969708420289412636310893261776394971068014178450728452894497453699894726772709389057538546038063426830011935486871882910416662826640597716401211214175451750314441629513532008632558493863829983988440139859171985084036018582536214001176163315962825249563622796629225672992365180505966907887311678089388867102577403120851791983010810760938249880376005240978097595614801224611396607278449862555331038356507005515740058256275937080428948929949525816397248492631352725878921816854517187695610580041742415594492811671263014331413087158644311798858987353462201896245135716783285590137441641455733271026846876479281655752649049376844442928722443582985796030463660271444475960329976057829332965402067727324589385294350724475897063227680358559457661834636073096061232808299637624087439082765709139773102011667639344952683947831185920648475920846132025824846398581864362726478150252342530185350448902642722019750993442307356659226985667838717589386854414529441647782785147203289084748595851843968554332044727545968289238320818981859825478812191157374818976834193872372125335519339030372363922150579879734781516309074846640763436575150012143352822274873512469209429985906754907591810568057438485450407949475765287592498117031328633365649088159129473452129263935845265043959431850572847626604799281714746787898250059706148568107861188771237441127800204589567271739957558055316527191174264901919257026738022314005615754727204465328674709427222245954316857427335010143324867072227766467603301471499076357855825903365668986792287383769426262865479046164257561857410492566761922261778754263452528566920482610837290504983003719648076464327543863569975324027155449710968389792126069260610918121724109642060819652206110611447172938501777559430259592058217865031978095541681840842941673427752421995832485214919789090348897184791110812842243754670872520560687896999092394809898092176504080369025383080337890079797427727689684848666798738756765742914599074827579470234834635068484148100752935903947638535840020388787719438082457440672859356336947342876866778229319853269876755369540458217415533501270109416524560814364468199555945615933765247044046124874843181467965922418093346230087710121214134565059343128933310069507876082768073141239381808625126718912742443280956266355422085873809069773593368457828272302194116710826723237593366938643491903776215633887307581337262105849095232838309948068575545237727237221024843597359877580791288859978494008881542740466357588064704315854248957971946568853981467235156654118451032585776524408047614034599026353393672287721894237605158128353370733261167435734242361981805422948226927608983896854767840363193923708011523691580258988953215407681287068582718047384247898136060579740443851134044140702310248501832505608638896035934402117464397081711437971422459670906426973875514743547329786252064863376437272763094243527046459791327567764391514478260519275641450152408985060671066511589429772222997008211306012423413481078235782250844008751101246964126277096320476452327290940387856397105380358000608660696505661181187249110596736042038767915286546324652366461299679359215128444743294179928401450579877931212284404374806316687038265069213789383349147577225582411940779142092393215906050479774734791393955195382911843458732540608176049534511922972889161266139345654557509243915446083126952380921496204189369536275675216482887528805504615441526407298084882522327532220227353998916774632733744268233095476949731844902094085185687092826602668430772226330704788509423007827389325487886955077508559989892151334287927079418825137670030896859827286348736776150438876705231192743741773047356137604566548058084656272432909658987283747708307903741817795881632625491746601569737854307945350917016413408582010108944272220490076778164101603438619306229514930733174091228952731270753808406857627100176779709383126570686530097070659285975894067897251921886243864122415239087842693997964821787508672165784633422134385749115528840731657059316744475348401048589005158735675138675641174544499462308515443124340420304484448611307381016862911225241191048649188295147598461419540441553907983361135912975602743223224942442823772642345247722468743320379566050049954109944976620302421105591597816074246704469013810438078491356099079298828224338126697596623431205046083928970413795745809831769279966731728134745468270838220963003108502816317754502881128903163944657802951334505393066609969820956570041439047103997126048032799629676703481337290261872925650979501589785969477886115218991341755343217406532026760938707186628692990534967706774397881341484683728862143600604070509834374008316718001332021377729838734499135289017408183335086911429261283483165610789509125332786269329736220421224513090989657345282194522113368553126177514970481671770342094399016503700440380133930212882949964841200417225211470783394938878825269318337500371955135989991976938063377134407010893413956912566112579727791741784990726387601032819880646355323734066948231081935143342927544216502695611188399430369602593375023630131587769884805502218554047351320544112005006679479372427127811077237924701563694704074142511007307552268188392560968042435919273352470514635333318436953376765766638074780042762314967385085545635448707626054808996993544995642077289998676285349530200994307442759830517184277585945775314882816477093674375902840857270160836392526915189976807163320192148873086302712236635359647363567975345634014449141279937571373368633448397430784391246393004842508580930791416601425367456012271174555680583004125281957899358152238671405798704563004178376729203338081939181225863115506834512966676959528059074570862090508490863881350660876863694113607278139673118700855943700065325073315456633364577773760558355172060238432404326359726891910624754063878013639151880167295850922221276722086133371573413119052376245727582913288774498201746514665174569916879844010259793498344928541284942547306150210231572137025767782574586208826143082480675476478640568125337187260485352175607310542896713718138279257928131857717784894450186405822851624422868938901380033933630050274401036869954006743588364188224455690970836452134330826210053491496022917907758718589797080925790324444464122239426145099559530885240005449769052678595200513423292279329387525270213143735023358286925231652098806429412470799789141906598156640862260577532937682375732595265677743796802489646818264026384689244226827276650505427321740752261862636506686035975327357689351237679500325717248380459278222209595817699154273386515617698081141003892832541416332786762590440022491659473887163655326733737128984585898500489481123701276778733750199319122503577555691714156713855710381545647783771466439276626859555008570159761438882922714010690892279019879737959578449623906521071876598043216975865162782895140918876709937911427438908770656933085546551369706666934146096768440322762263711416014800755527581701822641627418534709250841758378687735635178948491271947275577655234695793939007576783909416670706682372214250868814170890863741625906136238505583836673515518321122986092307430296846935920848513935652300246869129496600861555635349124786006705998649157625606458508566448160744430299463084651873057848824111106423214590330821476160754891689612737414365254785455599805306408383528690774586868223660013420036679069753079697840694980924255532175613578500812137938141435202270718228639011586150784354300075483667497730157482028065179250559659802339108553169446948168382065524180582832321717327314585885957335770494976766906175946179065800673292062076791049716507383639413734544508291008479620017026696263250133758610924456295143504976815630026705301016763800174235976513356664138702924049219424079155938597608007969618753122562224963157444896725530206132169048735155943933352933874668532607924167960270417114803156625407791143312585254092744055377577387617768557207589114411855089306502199896720003971422991757162115525078925288866485625890294212657485709269807335436983935518053264624438704649212341698272409554660632912181228108823858655105526393816774460416525005912612541110112310352603124105718759336330068994234858685813916675710575512064042883626903203957537237276391586211956211407872259831158179237964729095758129717028119543371967927248162365829122004782924151845493074494049752618068485972963613057791028953610346391169013573008010572057697792710006806054610263221082632515446988524772129519060258483273991234910103197995066353793105680240439287380302599575430700080115545211965121003857720075079282642193124602282009513751628487031458840562030557810342136797318613959945688204424562246557248126786749382801151182934420689221482400342892890637510800652963339133674866546111914771626909968259127137939954338180657721797627062660774977973085306890283508460300232561584643965058953384167698414342844289206646642038196361588630684357133934293319342762407165044380596247755425204536560059167597235533832306472104965216781986762362847526385240595351680752582260540704312525347749755937074684649105033124653322701405788415045505180764943388181051814314503994733329106818337861026608442401297717763236727617768457312900873006181706382775816521984390938274404326786948980656460111898630748506096393329870849631511046804512478679858634882303574203623370860425476582917403370672270053408925850804667910449522933907288071366531176346993353294886765073124257446387713334375722339591567471623113308274449398638829380383560007758916687149716405049357932747614113193256737670933922753882387584173747258458748166490405674634134279114926278974631636955297945142186593395521525228861223996993301828985497913440105430614593648273245156185215446059595014696068932637998793331431576242638618744060880404858125492376301234577926635120866329857688585017746174118013783725447134621557096056073571622858393221608518460241875448120538248718075709856121819587854043026774806974128082021814127061629503698982242298294258916216111024136322745110125599173153182098081035702569444758047228206370578942578170283024112124488262086988443186831015510090831542802498061076812718106715921884836834333407406540901853661294314428656898705556670978946366353327149072708184934053092668557091054779075681571361205661539763881124422126897312267593558406396153512474508245848172687427460130592766584238694473691258768776316795071305832058518284291044771046408478880558497335416239704729900994809984450652835724564148632736183700801459580917338055525032503996391762446947002542262000157394075019534889405994232172909007385690169227484925075150314710409321076310082379306050272531970874853933162542284929083540937053849324133469210180052583600276232783013789153202439711795665388700727480110696433783971582597134432927020158254687223317359834744301392144998445207586767410182019825978325539732564468744809339838972230868896485445019635690830658168188048227172505581662919215173955716093931091876968472356317238048504975123887103539238197331059889285264862268832233002076250550027098025299839846494394664199910222814459102397824713914521006463090690927632894411805779921816387495403198604206023414409222431993418280155486738238748438855034823513905053492270076429837532663837687895306430356536575464679446653599596405902168257809449843918015062825791763724409956868843488322485365156140227540255970981268695761557059615017150107677092000460015224179453344382854417956943139807099174911309674678408574968103417658737676066909256471386920803668650744841642458894753460598120659902326462243919402939325654842193492719046987785372335459555103568400954135266393166823789471765325908643007760839754744670322703818258231340047458239664775164683126573405183828600628928945810555050737161187384851309842190530873154481278397298861206912136678546838335602365278046149015277057813864471065251004475253862957618974827346728457701691916252600869528281604766084840249686147555039439265907839725126567613183089523734086769719662717141449106250004718089580265029191226509245222107731906131477850036037604005220567059362859584552925443021128601723110246461047084409126195140666673757324799585096466226724680655678228524381854454023521110628655979375134698699665104415092510896856097324947735802326357256199003703136532878558968886238324969865686740257292680626657152492517952489802816984018092799650374171931589647836256463787878060680983397512283084593923785351452539464103851553001482025284162825819178421549559176813141969350937757306842629665410059037566059691883217707542063788286113125078884920194808101261583346168477444928048685117518306188142539156417347177654687930078028184728363602880049161560637500115387149865133950444488384459679186005279927985490420196942447547955514839070650421800096888168090979531529935257918164326935169936140969050097910396314540782937112634348645145742048391827291359713539734868070430424151153705399317588546118468413789149630306353231073426378339040707281657419552528362372895677313733619187614716819104670033128583555960696319334283466870333208092948813597765070050777617029509825583651775997286722049390703041930627350585463538714466586232844193015935784938351498520071431518708420810191929903538314809237544141456537917588857214990791919228590685085337654536855458893831973911786596481729885760228514961056023581541489578136384263949107838403861458214047842381065099921847901010869450483212850364646208075995233332742583367449553643064264183931402316739677516951823635516175019920232087853409081990742748896963619810161016905055383610563118983301680485412068058194912911229697792787935036590465584625965870946596751306144032599531414717371868098712318933129952125196843397956687144552609824852274188675946058343162124554158041332572670440576433899251558106582226329357464439199409728965193282637853430909043677377968264506023156922413406222806654235684336843266126320250628495532174988980325206473289976761872111756855798158936963042543307254279987085612172613768709892691970382137258703796780753151897079403727028496424185737106030031477196424469657717094593008773380192867824726468395007058224690163210839347098540324513339284936544463669833151875364267753569595090755287033928744285616316232500249654137309885770342382677323272568211812961035429813013168611160762612607531747646299424076695116534839826583471645809997007316841116689272870872947662150372615638843814957446546946642684548449265018763299439768872041343622954595644791190584057378294815953911679831153114361447630305222187266509166113318452206638157209989843515894733184488513080741131779360743461656476565284431145951267874840389285534383331623635724235426673137015578168012481085987291864463577178935185591268235885391066027823041355983113252423607902605032353242701710283777839848995115178432548019944292849585920941472685664019860274886407867891549804341079571410591018839336315836660604403267835302584560377240810465118096779749479380765564610087213677566697310126438868497945502069617076968018270437818512877693314157144001699403578801284733335244178523111262049412192611185615470123140875753746072657056581176156542287258082628563599825519828672506458018642078378258590671322447238580993977129406622839987732006930910262599768265810199495394431119033789052756730639593368340969875157153152364216190072005894341933546813181973903969763531601117696578835728752084878598266279257920095386184031079155850458666501120787822217974343740253681429317273789702743191753955709708691843738708108468501406918671456465018550570709360770783351588539840984859265083702781401260122110560888074077594873673289410467585316889795190625073942526961027736863812944862728297559030487788987491545022542055754116493396564656816845721749319212470877530140738110546691588904166732753220141534571305109980428240475365130957316974316809756414345389751633109946545794022571518769317005374848843721691802969600938077263658811041219792483733619954684607957871803529874447586852359140142771028808120229970995029342396462007057702556499446105785409943016738660734312115479237041939833963950218251491532888729546633391533333251636910728931201116637724466187837822089510313674483344446280692045516505665997752589469506473259646443085899148811781011431897229302332560493440716511023325917345770327560226994906593137372198661831556680461350471838867250830613675526736350038954467184568536253413639459038751463689900593246109934448777719963353787098419191006161579603577874074724917285073914054745598025531370284592689288567199409640536514575234592690362139128608391694990122960570310782949704425217686647129455307956436191483002940263355099643212698176544445192296571216492743758507193164149839588497095072077499892625793177744268224057956477356377976931174662359708524369056746448877200651132938923230513824765187502615070103094894931159587882269675345841414159508392100373584893454426860689250234112142133336956444053637374369359002824234249012385374802876779460304231032131487693704129797847966613417411081782357266187822771635851333355165728340113856500495550774145342747723228267169517861224202668490438869953920539548995865532281119790382831211407753311156374161193479512337151903237128442510895874339480280575520172909745095214165654950959079889542173970063965892509406331072897661103564183773472038669952190123347967200155879022312516194401138250948196578708849085179926080804486262151649556429653851918126931239152629003225923309312945595167442316904158929462279993124122234431652343459286235039996864034357331682467422621716639097292752927809969986130881895058168355277684502885851206414619731981071192460700568167440509043001051347829183753858534117292438840896517953412792312861204056632692100811634592661377173515901363102510447039575031719688420553783980731652349465075226659402165271946577907104964312503027241529620664311861202645685229281629461910612354349735108286192812882991021563232817125129163603243640625631595319500042762703914001895345479126663109982718758736528757161337320848767157723382611330829727034751411244974470040317054046623554292909085598249961294849650734877925815304105504891818953043755642804025573621084377553565878958847383529547879543891903068211249727506765854575761893645451658131614849576104863016221260519205810617681753967331584351839356556547611311320482400090464700595752888695460794459810490434887386356919302063413723604911901103388517358672412228079308132208353856899478803366240663709508573287813425605327474660026894318979925998811051189058237723984771792589995936718665894869507609556379524162833984617989783483808713914927046359978287857071792244086790662439661309183511318006776542409460650382094532965612136466425673966397083971985863740575748044268430552491526323375420445422824770696977252856113418147036634670802220817072891535334561866470295807406631703261866238062596458650386598875476408896190392035397630129191453883386284642215096400901164287534949000221292525883463639075015824211550084245761091007276817528222475192644163857926624043738421827422991036098253850581249594811632239830022375146436655729205234761055009290710964454725067333327700425011792394110008005209484104259416880955474671736985929517158491734115532210753212501960608380075090503724834652491321137937283501280364958467871543955419493585058836623684602444681797651053630969768122085496666750543392808066996094187669159973194239967435196848911197559071163471459421888415899687147863937316735027217591635675466060911238386201470693590380995329324251717321868080429632593832885184090941154643986966564917602826469120406253981427151978253521543678951989655294978255426207934934356913119606314238727898091470699723067720742763079513465491145740246278840184488402594648996343862695590892984863927141884906594679086174352475916328123433195974766424311270564971811520145391604452878788852101230412898958371270190793993497000462218981931377102581102949039804151250198371923419647345261447634069014016607578599051757139948141234354220693997944815425747829236534374964877714612647000751260964004417092998484802765644804406847792649592762355614134126704370731149752457523780237517293084771472993832068256566558543738549997090442224650054714679547603208723957229251633011356336346190428312475529458218355735839951111559962269335348125414999310997204327211294645831984474469961793676789858854544498829465332613478543982153125445973831808991364270052666024018665343930957701582693533809028392451763434202302757507800565793991316018481260604552112506561706539291679059042744862222644609529047231182236910292816497605843136541128046014292065439770515038058710773770798723399011448630186815538329616582117913245697454956256986684568836207292581793703911396156317976549526249986861968714011616653565629727311930785533291833507156119937133974515027998671024609794034646319569191347890056804919121069231734993620501831979344913540584419965117324183565468297547175868253903265225522862667682839021949134897343657589948909975835463536594555828105334710138792769032487326230224803677951745339421889331566336857512621488664893760577075403955248023671740098035425489153982508081923683353233495522693926349699583734815007135336194009471914166595064661573045341718411808880392434057910977589696402946350797313508068888335647835434480479324424139737598329770564450198457599531382046593174569491137781508111258349789710482346743141475181188766917208491986527368255456621397888287106440861577910983891757051845138111161344890129048506100664574464265955320131835920357167603988338393271203870281728701524842274276834016809180530030585136914938599259187606561627349615980871086558927465720022548621348645895221098320091699416345446938641173191613115094733921200611451408639288449225484519189441293979605255520129439270854588632196617408935538898443148909584839076844266883372395129383671814853815630242421915780971458901274019550064138128180568733850678406875987029933133201640591049275586955469971207390793974400400786750899084666962122586411779432362398597221425554957082866227973133293769860464000284926626188583090596700338337006942478458601753830395237783046429305444500153384587705517611668848273625289543993941108848005876577747568535654181608594752634603539062838593679316755215371319504768859025917132202336807450368887496653919209457100660246161363395579600785553139207920651941622215730471277294351872439020318600126812081235923286419787601221685716962284370531538201151201417877234661193792026573533860635407324145419140121825151652002247822111904449815148957305796217621356659915942568219290481085082387064595736209652833515247575064582596243192366560137455804086906833892036993456979229845531576976967530844275992025322488120732853305795630815545499199423402877041606655239375557702387155775897307636697999404189093624062622467212499733115700219617558428481867197444507757150265713762358928518656504906498469410316449615475794717376239066598051043474085290150770651320800127902055681622070447705110092533718217041057416797442206806457962452603344674761872751804002121097676148789577429222106941723726623509985599950423453013416177273879369573488345980571921509683759276189871304976278354700039348755625645068101068972364535820574977365047123533171970670581262879867253456516649965963906056791048694617926069141865014244379123285923572914781955722300986643285356288409174948034565688752064419489424947947585331318964555886390534816420536914383833883358326945386006598762324570139864167253160773737390183364810744697996395986098286017730272631261101793477185199851812335725719294947514293652403591910705599938951095558941671582447601772526238670155568620115372546525135242725759763365527232831729781354329758627072099417783303229316634166952871027941445104136711506711773917429316385992154626277055122913242820395948477840014899297030040629728026817009406686994054373513371552684657977469640978935440062564560914010867405276208794101531574307830635051351570441161020904614871564597139443198095371364942820588910505546682734854723316499316463570842766788079347787659291355998576299162700102601090956557501143010946190022857037609745679178196645723950498814554440766697781506305253223192132743355915402377851521102544170491750549962931093916952963356893911361522682694858727624398117214711168679096040974544394978902000963479656004108970362173104973040186840053911476631680603311638252964759327026854248898873436940449552045261183135408692731720609553894945900883439282696569966880871497125800499954994891151128459540088062861219726798593462079489742036756980269952974675922278005451527019445946363356753055230645865244862921206916059943760606239824034272807972371013496821536690803730752105386156154807013650705303873664335773884562761783295703512747213908071129746212263456896597063866900262845410942214809376742248508710066035236957605728570535486220634473285555197037685347180599488739319028699861299867962863863156449640933421913180353587212694314874721858697755261307201587280098700569904498260927046905003424684738292675700598043717463043561456504220330226504131670618341557478161196984449000141301663992647936279593121989126557013465380185411085957680017616008407730732569124034286392896627847236172656696773476838855823030603973103322010181192343586348536518664300702364355495096043079988689986605095286821821691081573863367715040604498649311822120037543017215435753977200492888491908544630112384795528366024821916777181786657587500554805804607993048392497819553766694577572302241982322692591328255155135692868249810630208151776626815466817011288044330481829488870738373216967639471318796900577490079656206440173706721334607728335072541400789108621838319191730175327879271148436077299535961847331616486916504774095498421512260157860090784699277906918245606669739664578935765075025842340502613820019611494198218105696450295901644304211898997116951299939279686106967067317607749692843987195470631736730443745517919472170674603732930677866519228148598798244531442540875720271787455617768830923104556817519379241179330721212392857873531627878618708072184019977880152795694320658073626111960383496320850814175549164572100608631717079596025372613819363792131041844648145531089502967189875864754462263540701731750284705827184193122343565616244701999803068588725399546219237390221157228242387939639234297917008528848187074635745847981875867565957315790315501610357942981380081263863377820199303927455998464859514249713248571139995765143184691321807521103599094639012442255341841033277917238131522521267642537808165068451633845384028355626120322565807182612297818531036412232130936284600692018690629112539212059235820597111298297026454984407837008496172162372425042919060747716588719527424825091571516688404449473689684416546440631786454366955160536205633404742995147516991867692040401385029494938966451467791176530396397097223947508691249797092784214779212227321135868452527239465461662655861071116930854437242499455476059725481040120570991020303541653762319886304606287330692420061532446718755860641421591415534320215508473793599206989358928920599109386919207834200734137014885874638131045785360435209997757466311294938544660564518905080536300272461368538479744267513478993375015306670703865522421622015103597789568899950405478548880059575374118432302671402484499719727619789010078204510476347119782716473218881065976147092644251174463748130566172649216156515303324372618912430549819961002155930601381559071483099066265749983020575577066665278273830212313027371256184640229860878856454154872129841764559294105559636863540836739692270014838461584899010837498821367604623639705623700360024831876831966037397307261723812718393547590834253286226878843359623321382061880194967098702859966832271801143078485139548606379721157463421605701013989858087262179740767260612897861573634487271510587146404209496387813967768055386033256668413225370759226559455291502340090318010702084936478702899949597623724736123213045152469955000870631121945279236206879195374379467094264455668511392098437073393883871375637890493229870758278543138541459460284579588793863354800358043354748344548614738610204650751051787425748077287697493865133455063877153269078612692877644658917329142954407956657382965843679333556124843146963292366636242975233355524420000164758819087262057234492135928739285687779246320834955691063839223142365337008547315836753395723464662043179516683217976000426887233646526237033819920696677473248956632749714626647347747070397048366827708266542418049827465023201881532284806658646039891934872362970372945770301871274758445388620420582187985775560907126798303513623263238406922569023842176392674383406876400051642124838040683235633489067468133065012972499977217281925487647603718253802127304017992908252871386378174831652877904922985528710026191099311850328965090805517767875886275198418212750583175679816707152576054147574401293154970553661763583163355176937197086283662388319725417016305573962709943321337672413323020142499979655675782047289319655695327372351381575155920524990094757120283988406143345288884820655605334562444841039668811982699455141673263953011322537718541663992620844504965708667587143504670396985784499898081525151014721984334283485902206046663853526495588446557857952139809047816053230375119463478502922501448369850203861714280048524091408916407067851187860096339659767815809725104807838606563516641170092083490038911718722698667768767981465026258737657939251004856288406656761543642765739664112098143192141416488982072169054669669648935456383992850905174856951438834913654113175599184007406757863086251976864266085655692848521319299363070754252907320916789421458199680125694369638281610898610661491844961134161182439540696114828414486307080916089848656417443449688530270136839412363364799474289329831087009000349513194338123966438465280727531857874105645746974603816618037510073836058478899692501553127249418656004572121699391209046352799700857942213288044363697586541448316170884651059883399655655830741422945920407169061238211845367002852994985168306800411922191569759613685577790884201308403891437705588874525371554496933295356056540630102467477639957608862893758572698418191706762767450934156752950999058572590675068713384738613737829739748864742417455744827453915740195114634072661980539844192238609697892530760273310573896507775841869521358040893783441165831442168904354810135101134166733635205283960934960442640394461606962041516858324298353815521059164218864710099577390371001132974056445836341594156571044544326282563875465705959292095493760904645956979943983259831398910598323401103800473753124626513536521833411741225420947362845701234736542682555240285480200382720500940539386052395710950420544670807676312609804752726902195582943252619102435155026788614841907736421512660564510181057038141072387326360146217312290348386360946042429378212152044763822513248702927093603326723384313504928069000851666200629796502248002206593044555223771780570412723630347059864734253267476816917882799726668322176937319423428667849429902350183886865866158530696922443037771016474545165066104696949506598827329739456514250508947018119277711340177015545306779930147570521255112918510034320571694736935041004429789667787141150036429846887270082529304514434068390678882451328536545139729761052516134868288850260132129759771696721560426899992667863779148224664393343245187761508341121385296013477526244506032445662347449675016301555995429102866177101183203283918800968616448772811874444068116532253267998699588988801120976981982612089451543082526956319509666618889910598132428359107311707057311756278121678034860567342209941164655130503277981172701652111457833552389741552542505677736032568749384130328871887500681525186288870875993790858405489629862482617113643424399645531094787365852628736155321355279208735706309414714447087853633096436535798447034088832720845364258784571867894053257288392817228502810826003002188918303187838393538234254726589053306879609770661005980410539544494282395627548275398966997250964088165794367155959108320652289947604272907724625095326426333127143825360355931727073784919960152949488176055538225498483947099814745856751442242599208598613415570662648984126485021198913871342569543938194017892457958952411170359291606922513100645296470475224784239545665317225709739742127961327578945620814144511311061168898446370718003074856492934617311888897249292268393393464268075280526276653707083694255539615324460635311975866190256883916322060992149573549537477238306651693396337689796027201337176816564814576209499768472411583858003894653639808266930840964548185996424044789776744295433965765659820045644986705394598528634292338433531492996096162821975044675600005772429918241204443768718668535555507021061762056154385702683846662532516601382716719621775605375149865055810059916829724146557273988342713075647735171211365812804309994361202617092571682237270453547052672287112069965704181007425262414373273865679961434633942089711824707818241180489209087549173275797508129851005246773191384074053712477734310671127095066521621799596048416652082927618339794122186572350651944765050032313062181019364746527016398643813413315345173090373750243945034474206505576492422706137757138129250439912587773891184056297616265005778871778547913393931873939717922459268164674008747909637495188865788940222539080421949226595390850208898125774751369642334768100787135244623956546211220297462574361070864086407551712650324896882287980056130046537881984460706541328249432802835527376580918326372085130077537905194078891506656382746166255814729198253758841144900378198666894290265530687229227758898629089410255845790040199733760574042178723570683914867387761383150274067319857937125447701351903856007093289064031451838699932611205521434217369925728000590847371918742929555683537135168392514200379742141134040106052897988330679426693834724185471970303217894448856089386702923791068025379970217239670449183954607203193937672338005312865970969252608424391508657251903247924033579878847962185831371662233100529366725226663111419341170271812985730667533248378488853003982267217623366766222926950390547263826217237684338863497838552618213339036267652487707904564432686979420327381849665219721239513144000897301328183628225496210651831405233586206897511791746184862793417827520800079510736483400499316626350737612266925547599305539171040400403484616416211706031507252829872110182327493230992439840142118925532057108685134022905010134823638378161643667838335307010741222653332963680774017963204264965728871680749188039551530457541102484871672915440707321850025044449824165135050666039975165425102902509427791498471671112260727687288431369610041733461652313907781757468441406388879999898211025092964815708841347290265422293880339142581346834772920768851921364178565034020736063585334136738574183376223902537399351209230764531683457633939071734903791896117502827532846402385881315505352540663454038846068061038429094065435287860862910976723060891170374883748104395151670169074688840661930178322186651737929021527021631137069175626322591961252164495055935495107842543818825297368117259038756903614617808414281445423217704639157472971944509965973004759963398389442714745833065679997994421181954331596245024942008540228357560231538599176809900037047441473842516949656977025554249627776648021710443431254435532870168554835407527257336232460928324600325017539267128346630212488645214175692523344615439082359441548005300502862642261274432399023765700186252954456296880789227323599805642555850630798263842207486907284671782138045784791385197893920601621406166284363320326514791638417815476600207499901145001147261594058189113627922308636244774820120318730854054003909256614172745875464034575044193294351715862280183302296187850288363204465047051209792438774992894229884112289983327468957305518495966298035646664506920902955271958768054241506360566114219814599047683191658662812119563827259876884174774606879419804840304164365580785527982613188757898146017972790937637072465109891886847470902728535167914257346933754277707159833566682396361922425786589642681384241388160568324925582699228957506143180373787947584143766297095391024520479294689142613577658639668720303806484249444440400877114979838139466708304376211883885289227286736817930044967263314749444120545773171146140976729012175231077792777371900584769515771183090623541833402185120787044139300832330555845257640793670913038821734279244791846772463894947270856891072947255507326332773832069504504207997353791827499957670735034188652970247113556017678532118641546217612726596893110052197704162513646933402491620104059677206780720227221424223695706782940003704616744614474635947787918260055185784652384345742974942802883619485907999023129993708469108496590959134255718263371353149199922628801913224269544324656715655817743026763585577670652943146138856009707796972988634902364793089138591404893301338211986139944645396458788676201665214277362478522287453565435259235415399185382126775898630319801815183438122545329384793370415723356044626899163995589034356777603907587120339196250113949377540346951653460491772052172447510099123363017375678338246493004773740033046084575369391460141702790245168757595902624756129562504295133721289119177626478031050112059580159633799619927567444280803489463371774466317556870654546798765249425801824536230994639013013350961772810985766928643395773820772348257670284502087565094805637433427651190158510668079122048528781761389729882959568108983618154243608432076562213969588481903016448954925142515301346255944442475983740312816937251151310916229591576715129364499672779153946324528924510157650248097669783063224163321386870182072526164761919563964577052142936508851133820750312686326201458470035783332925810351576391943534287115378069971846723838638039217147843678047681115700155503371476705317839776479360072636098017405243295656211357047740480626229430546397097410848210357342756246238569949212388921706583181757340495203419191072145099238681755124193481542903884542087283762148447674372900605087181296749612427943953390477882620049451981004476370066961249655930679420339452240788521536270461971117276020786949110485157337395720656191476877661055191552428715000015997120837863080498822523722398617808591188885649488701258060218255926572003614943873264811804078064683995782577150612618820736443179788601297220981541905020654003511750759875315640509030132082528679902562600287189465342830197196160902312174786058628827315838598465039266521342797458056903522765541306868227092975603834895685726518888521045191572952328497353459023322599375139092811404384093730342716200697663484726161182032391075699698513972332014192697938977954987253744599848188025860269361699208125649485753000519929675415104158997984870369571532878876405690699421365446468768778082840991418797780216938975874135940277503368573978176386062651425755140060851544825093077922326480944329746689681813357576463069822289279778545605202106706756043121154688334101486418058139472855059843228121572805909500692096029194997831302155799466431180587116610622226693017466988098509022162265715467338178677776575491740896548399502548625204278690920226282153172217014206036638699887540656776893161834431120647283018007389213121490866855138567354032183268993711627780501388519774655155773386932163500237115522438512489141482381213661290357704416025733771262972116978654321728172594799072426036166170671026810471918946425566209181450259165434799479973189004416333230889205136873762721355442909909820175447197983568836921957252640207565272138123558969147973040803944594531559238586899175342848561228904262640998120834856611953155004506800728703632248010647587835826270929296605165167311303372762939982658478012311291039424642234463869895276081476519545217463189985186682843993345563090172433898514516596722037208818373651167045911882540074689857088003154127715950817115741044220435522220680626740021739281467253041123894767975089372625382923308298374934702300426822518412895066206551192317188178051959022678429886311844782202196572633437673429907889253917969969310571762536042553912508435237807856693966006933400232987823466249411418371436045566207378913050630871671488992760967061428134953444167549367881627574832234709323174061794446527495207239456417275688493128492963610956215916420363899940002800170566389150283045985258077270269792563881092514126230964665616836944308034556295835096632757440992566597654095051351971508435250377964029492140105114944139004009433322881636105316076366446514165157353805661371681207583259390380522715431792030286800343041414574117091393142085898764404690580816648754609075890964696630041197094594583764152936310364515444148305663333313482693038117074608874547827019258664820559338618558372081818643283162170917304573426016714941967802967380919052915413146570083111027383487132683575263534713856486091964524085829834110171070044502123320116777225092444702382919028340240816521677925562466498471913103753654526125914470450901737563260896540378318526873376325650357147572588705345760455619961118069393514230727355127235973750491293735657583416416844690996511895255192184743072597862465447607391887002902574518478404116999725727869631627391427465364993224604249482153744854156929820885262476504415905519244624921027691710483219417159564348066090625879701972420911881854246895828286640104418950303901426503959412760224488073899809041957589264652145684368503542955378775148351051219778020767477687929611277318421030979778556752725143964653473959553127754380255416963010588017078730923079886487584753267347975303132039166132854029137710311100122395465118130491163135672775415924429170527094923036678338305936607239660138090431096812848608114909882688823555736274613429206322112944311716608106708793278754981679114616356517728309414110985021958932425711932701125616141128623454113239186180679974723820490836847873881574078948903449885250156038013245014715936823603901253177006717494388237187248191717679151658336192755290528552015594957012497186565613819941372675438163966455813986340392628349751576379229828451706956970420801218240078036414448401118025524726664805845155018001113749240342214417120524086379993390144298835863345357329779326462363178270591558907517204977699593650067011308622860842269400298767999117138256562226868766865881508319485075566129335653282614145141137260802316855599784719236751163407941790225928748142290997947558768446675633600423950271049390314865902102406834589485330292533116753968910136103907047638883362991036838567252524388272789703241418820081830587062536696688010083086091980359949993570291537037073045889692882709365547514563218997489218936913407782953532124057906771286550591274958123467281657212491675521096288013701352656100154044672579215973203038990139712581454828693734428186814894450582316537912415428294262054653308577582929467850621380260261608974431510415774100170607530763892998067975119828166209474914649039360697621776960147327536826933227267784350260007967688328888354007423531901471831606218134019108686041092865045813920183342402091367140055921083926467103442785340031169652006126504156772051166597711174012529478001882990966323650321196556521283001656383755185627084910614978480848546231035390791667190848264045646481550539808313231599410829472164556650424306930706278346266554557561117859267557232786963440264313862823671564755453358270850953567449120716209255544031199064190105210101796600984201796065497617272770267196497160779430711045647141892488724306239528479933049983086077051736972875067429075004536299734631374968411252244085167804355620933856682973429538347283205035384347736337422753248829280349967463491447173715318044794862517948611142447841041400108816906108281737408195029910014460151887958823210092481759272232729786310783134444789263685406355749141082839326579668066279466958432525071872055579897539445037336572744047882687928386244416244662707878407445165946167572172139546057312748624403171882700872384748410418170481224111395721283373055532612630186805797968494606106643022932479629877120324251607396823982413335181712301223604937960683325204551946280145240407257480681568280399212412182750976108837072809334533197107353066565987466690387315193564006947328741413882122527466711714807908181085094798759831697202635292456898479319648625872560310733583615309265091962905833110439290783686467056571110434961154175658180270068471384601633098905756221866473456500058773496604446936522581105438182592412877490965912484340251139292245084304454029618944647166033558629673915936685358780543178364846873870405475805769065598473180183959432356022196523244353679513859629274315932467122780088131315656662340352264318267128427255416021995005808849682373030094714634519408503225387113301218922987715208278888916700081283208939397037122696691411447431449475317011735523739714448260516227537275611661599726594532503835910388972614507193267103126211472625527443026019511325750426564626335549809989929291162599510562731687966935638007058623464526946619281027988851715668276590325000006206133236636459620979224208213217427198864581895764777271058500593960751109082891933942672098601519085155273285781504974025269795102728826687114238995949685385368515836530627920407583073418294871294756645260608240639255619035542098573284746566234218445441938312825950060871454204305607730046987669319527479727241247577926967854660339274442122051297897142107887074650413573127981414619283337999860395080763706120457826831408655778606768131166248745961918818211044880243458138381872509190400510971799946705461170818399366062124065563175822055364469791144468688438748558056223869321847950964328861469059356842723996851630511709654400625040072874364264977662642569638587463213892875641997151523545412525282255183929214160646991277867284169460528282093861554865434904918089532449451968872011297012147003728738820428708701127319460465038593950491250142082199580042715445150661442520023199299315058714528346870911200682252306967868256658276990945372146578257900099332757335615640725967847377724769812554906314006484608170594735485818790515181675741699794628074930774353390057157692139523798574768702113668979378175429375674259155949544941342002026323239018273434805996391985408499272202479417050049959789861171811485351411239688500292513814250369840889011355963965581033870962988961932084504783521852708829291637825286046309882616537324381371016050965633093259983923834934066034715093866484013030290273691380352553578591858979962494664348180581726595740782461788874343278038708903981699930737562198061402304089668489651551427776464902261885343704518617236895425622447261457573628693531558446872931614235670383832727329782408943725382512924965000002566291643814502842887137005455578072414135604898028197431848042696730751796108544312066492834736610390784381309493728755940614055981020700061658998966100282353161584400418898721120785279038073934560515810736974635374648541945293471559563902507124054271761292014675114319850849907339193803134156148654911866849098929081758366436150349044203152079960175604585372736607439819056969355833518172325004946610800750066936707397588513205337207490680707248421139379990048235655463902807250453758796048185778107955500027385787206668958688021776264732323272093436669768176694149481884368170301622982408550623260644084649737294020796407097123125481176248770275010925178387119137695280447153639154532531769074854115237061598159303771694129798694674525453744074965781928735096516309850137711451290752141079808524388530153580649533596874034501660162329981795286145576307042846766047861102110941779469359901825354723620070240483320981583633002752524482307214378058428420539903673929786487009292320650431722282360574763867523956240706008105038803446146236340660047511633485292305381934202579185581499353271185101438529192757596957111847081147477840385157857864922433387995363190461837767620733171848910346260709511613296589961459946923356080692857018079809605535535977190008798131433189612564813482406833505346038327736893303736779323920242787810631975594420279978686560339818255947531691245558217521847819029159653841135075255750834367341924950866418128570502431650359946182714823088363247145600655049449625955223149149800351987838941135953444260546598514080652006323921998644533829097643193597465516213779754764802074248765447026136184397771595201234352271249910654643711701586858450872858923461621638632127812397786554447455876730440118082787090631380294662903512574974295487536207431926459677067607692506321238851284142597984292488199899766754366299465630557502788115985175557022316306919646810509593247666797002550098238877354904769022365705564482089463792043633758015898336902600978434790880264288841779838999788352256080338090652112031716881278482917352413746022748326344482279926654161450987556507047370428380040828720965238231753589754889147852371345214556477706940202141967898208202515940849063583150748079331798691013660497251937048092581393276904439102729741369664534197342281773569426688884987011120718520791437115398170972394010922056360144671822207402466844435894474368737699412332784113762960434518782053505622733231964515442411777854464117003263628688378112474794781389546242783691883962053233146496077914594945243807201345313914650097748515660810302893821334901567064698201510509083784930370617641032892257736823106656885082593478664238677223774654657705304759146538168883038373594483852489870260459316654466311698309166107026600674808360763646156527414625556704721007808741806449205082492979574310920390212037144456344491772546705455435871934994926360926232056687822221530888452470073869009325562051998857616356111829353375623891568521369724539654408884051762635931832579819739976226944607171080617485113773438935421247065496165061550031111639251111155845509141386132013675338831610990597091695881818041070125403803808813973258999553816974072781242098353336344746611383333538359999324607750219912850974906621796370790008608532317852696313802769874698079674206530636976957190793944037050205023978724025814262314369130866929988665635218095937565839975985226966394421321974779406533602370759884289987985533329810943531944410655687199751295281722275059399665206858589606601657423688737468728245238695233283796105803853100574624353555218082018864631606345843773058004410923731032786966307561596408863956550181076292960644880567966172031844747918462030923372325004942605662515771061916931996153216522949832218587781429291890664463373913239174012211930145633839742120299999923395566962613742940551987404598607422069352688571011778211470291041092875356681334436636685518182249669236778657837959922262158133806032669318395830385708369181422456567490457975618416644452508237448758582109807959233241730086081188256604739580328709942720173748381801736444160881095303305989930850425228624170817654741524631179730650967679760811410866404185602111245945323060034327128709906754590519105012291016180189245116552308359589063567982849817908334301697932684578039069184837192616237676429560364689446666439267836403839572288597216893267653098173636323361843300752250568900765246754091543598094967431617352476186425725934330696200523810273600815770476447376130802702138490477345451830525506602999296590477669573363879863653934762109949349005564176487807071064591582062017507016489173447583095483403753136594914246265240611352373068206417123075604716467251388330260503400471020801535987230335346656253168814065318015568157547839369831454350487619097318551455061339430066490099185068303439570049780892670589834190868865292824142655072591399393551235306184008451192860228448344532129240513514894957282215685187833743389649433510268654612502708387702943399318112824015517710189752307680979341133602221619204551039601390167333126945654044176777809287281770597376324019898430970665825127008029365445558145686389419863565301465023076491498656113292464374666501589216818418262401411620792964733244327624378456621840277464590766387133138519855332633446987328540831718085134757322475939056226019760588982393379991062707257174455617218001084876067326620813523891239157564017481024740879829619609010150222977055415174499261034490471738351436151958210169859890294367753781996805095527157063942269412519350641307377777844911398586961008654298050839243904178399602028501005162077954625424301794508866934168672201038319913535109980275873366510473025559563255665637675655966764433900465497481023032150303317111610863629491005451676794898896009925855595665961344548546213608475635191821972102047115752760165335678362595518393663486215966719182776676966274320612215914189360468302734720927500119428142393430879917968526221887529153377252051779396385802085191623874795290617706712450825176589031233033942936732847214925871793309279846422439437116042059344140397758055140034641769147244316246399668873011018592267862025467635655637805685399692433086298739097526137666331108697556533546908641101385262184071479888144866623537786362211126967563156101255917675950616420205016062430268790962731728505034555297437008010860417135446492132134023450450284271086566325965029243159140799570913445126141846665732638066114510507295108916096498665569338418627078765259335786519213599262254593389370099143808536095294945587127386772304546037634261773575703349641434511792004615258307260421296220627008076524247703684155838483532878539030792889399973424716123021132501979298368971670061501955801432013034053067452771591289032187950137235286848563636424476315323364896334656991681799334748894019690630212220945687319105865546575582080930151149981191354279232790773699673227191192248419692741436040306738731585971286113217475944376689667936181453751592635049383409017423988362049839141501869708711112976490868976533398027967394849252666716104757622831115502486167633355724689238486353683114186142377431313628553337631832398306032060621204542549957481624178770440173454937399910984307164255362750296804404074504889432030249385423147644375319895820972026745976828710173970075316225962848189442128595059432763183329351276202351776943513367841821570290720944205039424149482943084588314835733888713666674894586241368838233491546234365351409270007757648598405319553552334161557305531026086802061599635093157276500238319644884741145412459108437634822258642543614144421622689308173615858069667281436878056868884684157792798560626429496138723583832355770497569941296223253334378644400573975178667387879899501214187629028739256560138696240620496827422443657777600995529053452410666407811988728358894695625513743334678907772831372222403028255287567620844907160600292784400686682500307805714536005294206618494803974249271464447535433482875181043227381452562829757539847323514528544656141420961237740914453869457596405970174550687682418874192692907848914402833691198725712306781448854409168918859684679430911645364689805748452288174530763136797989415548744737972042747750932438307534713106800555383923452306126393581754149000106801232742350308648520736520557403570773559169025177486169339541060606346925251421088381102710560590707068272598873575467034905042078700910658750966008892215308633277602975872312084173400110757327724838422903491804019449737330481206158473315301593910446610160431497626596586191262896860413113071363294960602868417497216540512827763001395814749805150376345330917852994247263955931807776478789149356941990937640629627349010035258869989800057912298997548181357197065061741651872692887823411501939262686400173414559517073358816968452499198132651502230355301986555921189711012876904854406851855727789251548431425027673121558256833137817575313730814642040386363353290873883805713387007137383131750196919949230547192698065244550952655736437905996193282055192679128801132517674008648713590370708482984760768936897000477161443633571859779594576307920533837512846921879331979424430151360450893961782727003565035280357891140619049400535504455385842748213935837882952162748016163266243834881079411582794928967630560317260701022850513217864597111074022342757796831649377777651491270608955929702704176723997580287378690237954480485231994926515421172103407917790983691702460628395134983382350252841137109916530574609232826778042015040115184041445869963469648076051009142676381691213955023716473297620657592438303930534851977811596929805165462283384972302713799920943846821818450479172514281569240167697679790200271778919578758188881995399211976879685558429864799801882073902880203677999655724735710395245618859078569810027076564811160353698816167749370673033726008778959471435813176955389282439715951524801490838448384494691329975692880866520659638069410066234457335736339233398520914027897145341109146236810718809002174113892563778700730191489445563047193180391943627615192946016376246301180906697391787841938544752937223308178046269984112512104750478624216535887615371324183946881618402243319646467789845707636693978915192274403907867596562149904896286295770279781045774597593505808382841752711467013171188581969850076535860110952177441315987404522934642220203434376215488812576170632637826543872572069613640968424619745811049179287335233299474436604200918986667869512103449476773317888515741214051057662741580448399814967831899055829805482017168760143941163957470089148390206478756295207451708420581358350095889291443483211143418864443513092460445233379506289616299197833770313866366337288331185830280607455598988463865623196298301668991975598785241903970679809159127962255846714761997132309635095594689208017649849760616175420150887090404110275658827227471130538614139573657392276621605191931961286079221166357956815562960353217465089007860129286577740264938162670655962783917631498388776222912086436534433380989825070348091323045356753979461485513799106353447239309980530724267191458891462134325420453041745631945153459019345781687977461912574823973052044147757945120629616284435469956788375122522877717694098402959951971753322511762066649931224261177621858637152970393716350595423847206034338139392190304117231740754495509505877666252761534550048273282394095758085669326439189638346143772460008112043250939441903730864387934892114095239879420337132035335798217343431497992004185587561118902998827886224761999524703435045019747947226864714074990814155859995476601936779394490535357297607986043076466210350832688616186335148512036164460171223720636616154732707954808915564104063418775595324462938003692271807185967401516850428617423273102707854945593160047890911292888935875375495061089877593263836467795963876838902693982685846226323526460583205720957221806665999019832209234277438238076945559167479959745722300274076102307567325343888476560459247378340028405685661671538498522564100010167302876305573690911540510333776580079262824220757528759011415866034665791759296240413059874921609963818404966130270112365644822704561596234185071107947759354005154963917208867032255670336148877410463961989053318744760762063203654184909913226623156290575636940078998603269550202480755343414021515798880984042108959853789411459180032053664923517572619018009296314249925170882506626937859788683845140579442206376353330889293847215908183114510882136503311980594566417928557721189146895392817517951478539357036654778489283624931136680069198014250275005817697099570602451401905860940442413765109086662105321683053650076963253853984653612015728509893878592086673463256243835783671582004085450141164715092356443045121179461713335783370226982319929016173992934919776234417695924415822142464875389069704110913594675128459896097923869573782255621365705358493070816675773512111423293417889716467806071766893314844976654182350416927885350481268377531801659321524787118908106517898107238942589094184146975902596006288450295444171961149646217972814390759172698408056984662344331419302138248154922459455671894149715763899788954818305374434736243646965708804581251450102862747393725116142200732763988026114599856792379748172399642069373221727637430181596471813046241045384239729182081070839695921098292150781694967301131683544943856665420053313890016705397522327854337327131816343506996814479220995245736563633215299720290039422537172141081409020790129047291407379194296983389034135741272873312422171343042794809275021777797440624502993806536931990140818028145408447842284032518167129720962587819543646318506420708452601581879628102620872664078474604693515349842569633757461708227561194126619902925792861911851850009589933447151340102279203962686046955966996361653266785278229443434964052730764244534752104535493713099509035194250784332327412813958736107487391371199010714001653789360782547816736785285257570577418329167609145118894828538916796075289629317826088272062503936119491203899735869279773870992938943767068427604630965641890473673729875190100204850875636611885202659247447711299618754668426629414137156154045047842269684935630717305850693205581074005707722457104277602893981035555273665480392821421069296199498184208931967029851707138645908849683331799430343024425223108144765670584513620752204913147280936947620477910671461915153712100970308453890451845416085845150953296425222258114985883217395917371122374563401778082916031178522249173358547001061890004914329637574831350467239296218348802404370805897197842713765718426182736322223515360133186072049634438557382063404302308272317565698802024694511011156132562767000226998483342255762842685861322412543317475235142667534508769661362542744169917896388741499738079305963597622882862211602554934741824055250108416826748564116991049024982896443120323068573756788167661376418342792113321183801601603994719416949671046928051247095041756706753001904747713312006828263749698947569202882844237590932381451191878373396891794518667562016321085605007312931031734745038796557177174701523453779637834500589586761268825435130883560507330445762997222038180380924729922361819073560082091057564458933742282271344629868614191985948296456894752573935076333372991661279003237935569429371261115061771761828934912537576943732439374291387569333325670842130018965435328899386519392137369950496943669519144622855761867542624327342306155259436436742670071961318210629708987255026489628317012176778221952835455635138154659465544975196640795508796984921075201021365959246115386194099553105848602118492356625903923460840600540536770216685268628848010952969620363642183777245055852679366243263323550074722411073460874331677190796222647952770739980022991496352119664994066177359539160852750084610574678898280362273973311137501708986569123652150456523641846913180546915610306810035750615021361559222475986703765439301648186248874457835376093483605982796399614492239235952244174837135288387005631773257653504573190510009408511105087044732244300638441310345130133392637302507089050269134735777014370936870241980153881944944835427121970075734248495397476756513570790829893586400488340799923769520233532886562306801816358770264643222607137337663289038313847479544392648455604038741604143105484141322932707122904247559629534565996641075012647979237459343219389383401126045866202154220295882262902204890637035181016561293064382761890912581577859851210299684318448573246351108926530454830906935623891504079092624931181872832579517656800846085944850234115530249813137701850392702131070644910960448896040973528212141560019396893852389093804769909923552383860080818976105162277244115976155769566024197614191131469731210685703604957609277308999476926011231814845261806363293806972260730031289777261038381322696104954128521036132294899865817116219692117096564952510579814028558449324364986404374036020580442061238704185413373195890116264617744617117923208828774407125136343415148424680415234209111889998602966706299949499201245187097516636329965326740792644817076049608000768220067294384177354885908483860753967713920871702605874086575432931173163245213497955783706685541691948315493150887809795515018007955839622572614867601780251646587708997713090986193628040404450264753924010697743046841346517292206337529257276506057984092232230551630858105872835675915338042606889217619219951181015500863854601133146247946336592936107675485360198769888433770417463921940217936212987211650761458065911956397429339044280868314963428678132074608060928982909047870874188332707598642959724452592824920434189377185101142896797673203986236339474170960426870196271881159262333681263990467707640231852293710189814317797047536001722090965522329957186568860271767690230003299043165161676151105277761212676246910591557756124422267542509240519888988560043452779559689282915937435957607613073572751177179308041256962216954207078084950442261977351792611340129825515507402412056528239158686517736902185405315392968166580334719468809483712389892843572607695793701402491212544367998118757866257237011131330018106908733630125244441645091518581479517810311413369915114557956864160734182381245829205082368559260583767499291559692074237661439641968815241902708519046968094844939167567349350661359294885579142234075741440403761151140031447756765068483851532959569938639670352546331576161949613642696194230127759771386050785952883123197057221789078659112019187370510888965302619681683548040202420996044810828508675724048833013879886081331067868970311479100562509661745656088453512159760283739379635397069539577982678187728785651578624143082373048392152438952590319241929935859203297327863940937929380944874379756585012267332495036309217073072256194495723165749725909096920433997459245409768042026144120181027367468556040050744278424070120063124915943140036657283333873511488832550804596549630827051105717400076240769301707115590381873971876473186229486996519580927807448527379917150474505354258235498920943617686611614656427025340608223638060709254871135598241359593013837227401772746121888972256243747917839388362631379618923996051507664130817700261799188126861645461591686811447418295137812385801629758264361511658067891509792821168739224857804305239949659059952887660246314269146609697291871291841577205589016059860164539380310706032661293574370099187025126508937480527515758892916753073578381641159491441607534166090653662792375659048768278679314263544902609441910220775121671678229382497834250543742990108630935202515356466782672409317054345834158186967837019514406965803596651750254155435108065827927595729663731593540987761298802492717105290876879053917225421540212905693151680056569873466764003133620860090456735521372945985129727150109917198215637579561264652687617369274606408275984317083810172764745556995057073433646105094734660251236373584495520121499072115131173994811930011468882342055160639396968961252817699672367165418226634803964984221852033015787498937145814513628250456183915649879872535399925700840414534281124089374020500675466146502777988386753625140289343823495489318700790800766314390959633366242078423129344645741613301375610131634496050818953378975572844591622636359121572217753722662347377046158754730453151045188261877146073357297357660726212824473552011114942829922717005323502247901405043740931756121673233215282294133101559752856053710888249979573128726123103145197371286100761837643597722053572285347346678019867455338372156419779353883094730507786813246632585262929081204732409664197941802208460027171540897225761232813095277554646523733305014874473714279785711631016794106936058239554673691706444009328308090405987541156432488827530228452185886835368512470079104209847707185007659519324151262581186233553664929071113106447966293133012841658879882115114647212434847020565575140618215650899500754277359177760183248678675057004752339860612249477086641263641440400092600513804575685796307783757836093488948952882014634758130797358808350727897799832920746218476111714004900817027922400584558676008983379344750383361408528383130339398056450631885768321193717296183340554944985000442336012820703383990128583705196933895404464578383074991690963952691563028762516249094961461509636777375457573003727645958813655023853248003653883195295742526508547305676045208311051103235716038918284508825273137405606173972764689702903599288143444269255801603514688450311283688745494902104554345566892271882111490988557621577910771053984543866790855329869818593616507303988722107078132441751397796468099696896125781425788436108174374084074913911264644289881097990459334513691637282898794958961946341468489814075475577903158172052319860939318932230051124701406877822752059689971711067235313846371543132116939340654788702039668577874897855752933712448882322094157830794762830556256993079948322927472772095923906541232106150404245587843191628851829439918498962985009352922585908757880360612647769582979003700350654145785207656329736710264511889121623503500609621533074385551412737502116973814327175350904820958387270043832551257114522518729240646576152012481574104130484108501133163515808683098704313599884649635060723107485917622369331628775670966415366323133646570641409266339247953983904883740663400298177457847327014867379530298795819642314795989291144090899200358662067888159017721022174609768607255383403933622167288212781642323255574376044061768876545783432576913729980530940681789531012249918002214420444877088050546416148950423093175705448448658008087302849600872873560945212904233144276923099919727424823130374903850692583440768043903597602896817596869984289311450342850537275470099036271076137381180530873996291550850409642249546562710021798267230528283074217459446325442025472371433996405319148471171859772139664791503313770745687798433651321853167144424595686264557582079639547392703363526954019334336001337262018571339542723166364886727168369349153420622458054558020504867509452523603924461696178674880615235316526724562399440956259502219962890475555037154228108560098847111868023644468921045246500040283670996090546211588816302574852229479069617417950812388986557027311407145567073307868088608186086576905711804159217662812119931980741407713868437880628349622978132762850439200440320675500386007495558402002468821929035017525574513805587374807927097344438917983643423471535679997240886090091030033559876944606886976609457838268287264566282267186567821475880502626693914181118244845547017147960872707697942663075674745482126609203506374759631745709086033453110521872180450257519124726703641263056638417040161398249268977111396470188513195649697154651397694198857434465216992891409507543864725494777900047759127549960835768488610578324987579235186433551369811731458861810681633666586268824115846223782655772755238597098907769838146151316092550960911181898497472329435657596340929339352567759017325624274376052833465527098885814778452977904266765564273750319045285215114129551020413447575274903479687264894049991167031767830708864510426094023192445597202635968739514557982571912698012758930303582385353362415837301341843052502699210446689695813548211228267383685059932949674030579086073700922694731763816406167982524532064753254087464297790481935794881478878701411140362514724977994469550003974281965584374731207409106328355925596106724409421809537000456269784489605556083304978174406815748624125153465748160903145936170900573066987786299363159487234247167414774552224113597202624513180351802760120985324254387148123608363826564427775755275704600338312017054709085365448539890234460104248482025182398053792910716841635919268262428550513727503375033314769919235536952162917107557873564547057939553473945555615424156718622471103655576628008590084947229839456576078044339387038710031402839739933824012712390721513872795987732350781824102646916127188195238419600481249304006229655649956970524862970060079763599971451798292310553072316154051265248796371404364101405958688424293277876839929304021236873981429183081154030953505084513027549729505260595556986778434299173779362713111509677044797349082862515600005639692689995718487662912349186091244388767968938864551915828762568893855367365521093013415723188491864672096114817602164883112997886844496493609603205008914071807889966149919215559951088748669773833639668036105339721310717450564508382461571723940264941913221964467938414512740001983684650489080074279186726264195817831828485754316148894452844211587373008543452282406775174719715708592408305974958429084936982025293099593444104071517258323304442032419408703614049308736996687615735413745863255196825614428624806128129088454893921607878123165273515331888314057007883614850430631255697925853923340857687432289337271757661743338738972242947667409150971092851386579127336826851583118951165817120953603546529611209883165128059610626496275629071384894019858873145983474615398764498613223251240470397888827665242302592019092178899747620992808452877285252986743164201809593914043620155521222639178735811073942624988212148609353752781065751323946501348550035793498186600197289325914876677771451135417358547580233204887443293526525287667620599320777190187819453544107115017420964488903149530000068345301840541535809511430808223566057702972257172689632019313350032355727590514071047675683300704269681995968058835204200307647858022995086908675768033114297474187397363211541573138879506119938243740634149237791902162285307699697825058325180766598703653913525317463503292129241158374572666196979522000203571957290858266109032676227360230397358688559801239988012565086279614077000988970488322031554604894706411657746340781809329667239499017890740489479646531132365112496702988912868311384169728546563751277404973014165517155919190464338621799075451473491378257392285383572569720587968536064625440092844363573045037421539835440845587440509434897930601846202797033761646685679218169846163693270190843748200670669710919722355184118518826902478990721822582480933107547406443147254942921477711487018400432289884128595014975644487726925043964194666516787362358337070036070166879917937709717623467476484278295006846420285960122037291193698281715393782828280089249330765215465148845519628405071261695492078598722977531235920738349109630907129788479813820196000418752445638824995943277292318426012065018670964847968583232105895103820947958512778263565452781897044429576638474535919255548821292377188574472105414394238198209145096695621287377915049340671700144060929160906904393394123451623397763607080824502462567062003864380860677781631356164394775162204567938640341381475554575480172438093933472955530630245066033771693730007041932621460662552693760186235475633738124964414562011059336168000529961929700133417463142303862302580602950040975103255410893523414379978032899026418151695914021751049471892278802841513302343756468548218901695002608366669094351030157557046651458689578396211579498610447192061197281995835967817451088910338180658000219988799969980128301886047183893837775543788170912152231947345820413212708170984994446326834237861338522145533803493902018781307541929846114440070274952522849687850371300882709667025114744664922423783028934855278737431568217312862220507728131686971979486218857753705915935341848567523709125520280233636987967019913741721603256686705741620419606633064172285217019400903111946904033118336115424038236043317536569043441657444371298778370410797169457180112710992330212217079741395876794362093936274590897389039288470568113843673561779348073588276863275958135115860154044784397802382369057018249129069327132141060509211442709309513584315651018195302257033186699269339228879408520937816348048081236494062194890795131932196302967304934848176771120115938984314850266434921786541763741800769933150313857020654531505937326186911400869929791332668284097204941192052472176799859325135312631950255764062440756480518109756687869488489053203132463498505079107774992740291558211810441970973260901544288362642749336736023753203728021976258534818961116837102600957517783859742891694872148687197517087356905016311604189810195667188854928622765057558921980715319629536183035936732289757915600426399719189257079877008765236162024511672583268947965678427224784394973253320111232341551995737931768149646145825479620957822231317144529552833367594631268879506265587530172459397315892546587756157139261195626210406476431870256769854097678657708375504279666367457783733925858924901955782476754791157607633655292202701362565780461482903743463185486694159029536024221206823426734528144021167729357174696891831906622402051228331882496847666934238644374311124255472009853480642075155854061603702489383042846842394474993273515408479653505823468035932534806532179796098930190250878396187815167599222596223573631073161424048802999155206730152221637587680082445789932340196073078471525134066666889334582742685049431476471829953224771554211963655777413424097706453334023050844912835875959753515332255711346082144195614060844194534455553343609912226244119504087740833118627284979619315334438427939128686570385170264895267444001852369758303693638509156795217935702351989251641871044865872429119777061071338733344257217745421956034915109580218690713165370365878027988402468616407346073356635026346980882677147310193580290819411644329652584380805463055006659292536183324385315699621411399527317132281420771964373951440622439121156220584688521031322564871722993365143903286021577040789573123885391799651685834935782602300426296299090003038852986819668328706068740696580081115561144433619382284534629982965561659165650881536096519164637387980451962680104583159190193563722728938794338807455434766416996720702103725826416011757215675893130156795319843230769600020956577222718614585742943363197861099892265221622063768609675644591425660935719089688962136278944460588183234841348294320106512687874439366122741935465373256613798042292178319226083075684017818659930197637821810593909576690822779118704100090117958400349727354845189943459746905950509577247034147783071960220586835916186813047155392895064047094320003105834275465082232900189537648478808157434741767416577580372993723983240092168626360813367704140832501557049540787932713850097222623429970365997106196096979002838680660526389104639164731276369469581462223570221452815040004691606496919306410431421519168922505119383110021021184935089785851700538286273689799779436953675174350495802657164398409504113469602089884101498347758779368532601705787981301442899511891550993104818052195770934717833794408146881503323143171286586001689682339503918753638214913377231856310710451654009647246101382825778007220152541281097799599439681721783091295372458968881184547139484188072846880559930955292498861846524269521618181796255105006646360816147759478325956974618897563936896669501713038762823998699806916363064039856165480020109931401614640894503517546140417758983440900730491665959103279143499120906421437680407329659933881927103310127793522676247495834043322237486401897364546944649224939358974256480528288875933251385652877187216995365776310682777818443624970810633224756289033610939500369687305022236597948779810060613220099599925475139919686602007823519562127247759484275382221508460744247555864945518623686075850436340117185532783910569193196389698483173478881055276688048899568057551321015612306987530374179151863514296625283303022789064597295890386339028589533881531556934674438886194972894633244722391375090775202441424257795632112752577368381318791345187572446749137645708507924464953154076093926668733093616573265013511527452373937458402968273045889064442981502160459153625906993646862340489994752353529806995586787568357819784132206243830078014748648348957548823165966800177991955257402106565895733953236305009366831271275390549174591106609237069825371581262202989922880148881287501802287972823457447384984609151355724377668369187946300064363593499740252672819618092804805619704558888691980084281132350136551570010498839954337375710945980983851479927026610550698934296644768437228344379675561735619425414232806467297706383768294681354561975370416553020595082067094093124623979445403807679237298321922508448514326319525526228905769444253654870184301696652820653282219451036472769491099698997736219887254705780089648477663883481548281865399621110101493239349293100804446457133380252325908531528968270199717365692005021433435689788743627199433822762177502433695142041757875699540482237001720911445894410711194726138034138368015225909755333279997895598857202818322307987209796210769334658827691935171274345959198859713983753787829542485199415789662575306546792788040133480032614622992996855664558752129642915849235683870522128514369339168121864082169725347821966498688153091517893941393088939354908120885811226544001462332965860458768694755703016722547231311991716879647735287128438375879102380115535532576425213824033675490098388669134033957343319577801842641099204640075100122123292019588866990447687436158067887950517678759412545719305238934778149512288501757660823104298459446112650704611649347133212054256795533835220739109445074124257844634441035409303848277659567036579497511231880547124250467442947614068475227341037872484716620471406014395309860742929895886567453210555606210324158751843754596622402876221822617668529945140412740567449994664743428530572394902045127564141161602313821602644259174557793618774579848861360490943060992052355349418930894834191619754033696979290511641926674522178959577457300611298307739814800496130851124005841971143609920400733297703953400005937228667216008819412674455572156604258228412076834997174535328004299151191351506160367072331763567556989370165491328940815584943976130746761293491339024942262357635312642320924524423728613937052634876504672185899859051258932921295969299767571725386704881069811441565752844515048674767476887085620051701181433830101643188467599049157245223027412435149997671846725588990544737940170164456271282584110638576883940595941857810641439184096357918082586840203024086855253358163327434416860546279275308976166920243395336602052633884653933596894341079429562423622197547693564528545457489367827238944538003700738834106957556001515517284110658749609216331281612400302594980646793073698033370794590819078177156553200569582156945799232381032497238227754565436146819596193684536643954232392192588469401514669125201287455509132676832484019241090402185626096513480113273303810538189813517665971105833790277801508826128160463188498256468123889185918765982439796125295203591688357082564298711313691856667347275013963733024884563401718126494208301341944688957598848383858014060715096472576424252520929579669584906366610293008130741015781996268798257984890837226735343897682814280323797557740322199782892096676344490896539895775596433943958263457349086531542981715219150188775603295421518891979205733852498351096101506552411506971475174540905912204841840198414062825911642888746863069807003823119533838790930858192924220611965524239186857967679763596375261791357958321012263095908654980518613605516836951033992507427166568190101628190605477904748255021477258635373884932805062689038865448265711176734978930141484349015643104103286851694194677909702371161538133151469778775227221680400412392323255859930984335525524473205593683618362564227725769782264709774751686409805164570060039588399958262302749165934579354503018014613219754875049004618459182442558476735406413011574711163281698475118457066622207199363367642539835917019310292175409413130220805558083383199893273670840435585389377018472433082082310575672497389232364974860961422250293959803595453217185134628858077112520689119654789009241280371811134764788345410561361209145292514668368605118676253322882928949096858102860207733776762614194479001663777773779965908594583994693240025143409145827779177477147459469481369742237622722228068241720496034951477222472703059268632930232734788285195895870493512970951695209281170974151056886475427399250004090879135562828183612897404309909569675656167088200624581091647867397107984109584991071058530589817945156908989938362603572858741591812453474070681206892324033147979454630462094819494722602991290684670553682003171987728961664036670783697925943051501432236651649060372344230103643194109495401360108291968638322894522572546960161969229490258697908811121627769683479938514952123193306901829650030353048594557707691155936531700931300100364736403128547040062713831058213092592228808594011558155446479937369971448385222806115299848947397806522141616522863649172997596619115390102650693059162235535528229260086170989550709901102547869794020259684533234875734647626976590812968845051312227607087430886947481029076928713830158159085779520183821322786295403197470965914057435151378896370684972025002049559588589960701960919986854480712140065045607748276428197352920340432779395010695773667980757817280131066268282437828188838647316594579501217923266392159048259967273899485969756801074039955516767656517003981697542438150229076981778762496584355872378303817186171919329530369551107671436707442606163799775628971257712925693600458103971916103407482822985347473646195391475757716130520507868618081173464266510059607793618208089163312601671950617087373807852054372470751932681500832996214549053675356100288319812432477008407504307811838476322570682224152056472914220899890335759927616125951008265591074047041359225957982751168939486685888458679935626982418836592726884804591462771303661323611366023524619125252889968280178614818259264770467866002412495948905036330464783103576751016610769644981710031615560870282242147039388113218103736640001107536517974141360780313371540459523614762448529586242374870247176814638803150681366199007248833914862143189450227882629961545202123649278405610281388597791245113547450920137810016940312550820466211626058127877570309113621308791735271416425229588015826588457186127573614369930675362715567322288368000323746349540590205993568924538415628839077902796165527436293119120999822270090494669953254870971967697112347176897287325804395576110221310758758250228748021367669772877491333806356908886120070165947476955388689123276439305998750995427582565406671007360347504730657631255616296335170707708031066160948457362043597620300407518373831693455993829224462681475689912121778678023293221582511329827554792210611633503697128521354816153898873145930828429033809794823823439541689136306736238222075516481262566706165507023678325698383993914151272543024300999284818849756479523689738533434344317007755399921689710895411203181667513066889971994681798281224759740366921591603923795377120549049428340404445960028070423635103860185044696369963748647779424866280053362417722567448132576805547983988886854214030495389644090164177197506546977306317497660363986553975483585404465490122658911100060990723403441034055103308391831682950455753376136082722280376276127012288330733171985524335707102854171796881663299280476666901493130453653937996167887670942102575598622175251638713301720187487252405396496611121122368199887968035702681246329070680817048481237739606247890778457713299022971703786417235609336710219818251503301801250902754338857484601214391429325287728432239181518550684835354970176323076966318507273370640002453714165580287869822457855746131629372903246927599747197287310709327579471348888556671382305908682129243685577174316369650426272764736177974566931595949310161878088386096328074413944642195339115065827510598540406169250059782527483663603793910682761080468942226077678739320333185405562957230720555898135780165226953594997336254198558199752714630955498835130647048718325367178324022864661028038437582442440503668964066033571442486443008368112539971762284980809917194840957990729797734196766485739559113864409871563226702129712831713747038596991528278198016643683929751316950343840316387752236913141168185813466709005424535694130149364513729920597433108777468690539442221155041531363290779089614743180191782281059504615555379941193676150773773481526280855659315808731924206676518901415762713026919632690902308369637375168836103304785062371147194108452842416659843505049072846904521140105696935214667086653593167529616602063318227591515203912215813801171567358622773732811282288544052528214515617127077194582179762149034140599297935119464830256985336772470133284128319798966516460704242590325067466656900246014118691373032203396877366664677114423876188892307849995109475413002652618299799593700333732582160373349715438018922586364609793925936497923735267464933732250453302805739823306803343050930157095450907849499293303900629760927603593018771644670831152033297424777608101141682302738048600010369469166385455344835634929647407740064432816067210386275399195917699439138222392167840767497656144678837445569313943815394529233893072336702605637114006394555991900409823015024184115805330129567579595345453340399344031036341369041318513783370433334516777315895786079796852622591151633698495581941847408634697495255985000810287981429830687286806347968269008998826543210965977847224912581888842434158555370546118149309047285631824784580427550895990120489408998631762673430674126815966884447695440326214101443660861101703684870958509039103388099319675163300781009921510549006384348061061884649040184648068743601256638217895544769701169779494393322102199513079987846385421453878990651193556443919952046939605687132597709612213088335085204247286199234419178360059689577273308921734706115714073690443547841862063133825091216275938463224445812841771920787691777071993211619971126037566525132714298701801727645637971136611762351576242336457009929037252985996347994765081182821937261691785486036292270511085916499423230724710495259063546694191490910728579172937695314343242155400880813843815089475163362027947206050205771229288931168471982815886140937100334987435710804452714322590942266003036140004085082553127080215944299338979839938808644697877341752951603964503132221350382050171567112318146229641283346091046968681141123867278843824056112996721384538517369292164150903762460798216627958560142687084909809468761994527871117227423048337487831409413373477026450821660404211390924415972915983381234093619727537896342189891631071884158949940160025764725245024886648079648217476403809239423938507204989963487260552394236406277210250907846254146198559676797053538638026568563795459039612347211310955392604835723072244122695729677885073525721195702465525727760553034332916474603622389009481843660408618356888049629609906153874742655950492267048553927315065435882747110503378527890204153298641822943642955648752209787204785356854143154054130567622999279635003254714022176106464472694606384545193926460320343344432070802210502613058994393510396234707199850295024969358719438967100729846481123246130976727855123249628298837178015363977776406295644800024854431993903938422914188829487906520257429899658788906169887314060760095685847104129500725131120184931635250403814458437853975984709633537373636320707278232129115317019726678100473426277198814318976947785590379629795003770628371526398439087783212115418005826148504682866696541868189495292151783114752553860043821852431586919179726088458501875969750567769028133068622626137800933528151479854856607907895400071852417887511842026442442990795841309773597544426956516300614479568100756168632853114163236725080522437615138128890959957247654061337159913000040018286252570459674228307660252321664744527269059587360739746892033922875963053793617800761147415974384878899718774409102961389131457249227828077515843030766177997557804853586796590590114942639991535821083377327962126654681480114355468490242233859250268037074044813083146111419611607519382739756829601742804998462224498457427835855267889594754832524228693747992829725417755174998285952898153541556138870199063344174759030326971533083288108971033670779951194972235338623992962785496168492916100195536404028256529400655050325372370825747370716149108354174277561577563712684722577665999184629399165318671756522657304621246387077002417322137673067565234070884574320947187212494108318654115857757820085680948894381669355514784667586461825450552579257320928146874025786311735504222438184761364377989174555889455649094724526504277124988577622225356626241173887288147112687171564462264213598660947194140864156353586368344142006679780637352818561949161823404228944535537926818212400380076395879116117623690209900574564913181382865197586933528402852359133350332667730678957951666149900119780716520981028186047954606218778112308488030312722521170077497981723670917911352860026679331780347270611945732299494410684848936547392469864368171204418264549988482466802120285380222667315759180125266214722724169237597515073543163604341983163451969389841253784764506776544777856789997851335336026313777355610811583576881006452143837928118035552392313328589190919537225597978870789012446967614169446218671761946970047766087368243148377335479589838510817006657925344296169110793947446611348907267686448349822186883452274446999331177158053959663479046427862141499727673331290774323827743046534067107736505066469826776733890237905757599076642190791508544783126703347016974323809619290336677958744976241479801266289159414207335240893555689446515135338859857027658022216613468987621829589648724753365726122981687575115431653262925056304373763472303590128377471175247520626804573905576617046914923240448854262724349554716073105159145692113655345564407928779288247589510944606166414663000726903150740259307389346720026212729611343746024765720283708998502208813947585036531840263880053102466606229322896983998695100636243842078918947499542456794716342796023238790958913524506531025421675473061679360852243340809532080816570600364894943074215228304431983411248840437076509716297193685291993087122510110145328100409835914761477276547331412594946093619528073878486738018813564875408875010772955177363543297302258928039838691403309497416974248173081305880207720749667024485587848740213324484457259969659503647245511300795624252068996001218909254346975684156489421840579126462290433748033202444400651606621866698936650608217402265344540979377603389752598607340881523772034119139550329349758180561849519691194298139093706464491129715780493884440633115984061269061441651721439941661544073591272242499119993806220473159192135450892317019454995083632919650340494184903124897915627706677515000978487721872327539974300376741939005538665050025490907516440152537006696650170005167180164542126629145976357893641879299086039520706255038363955160353552542327214365606764855484469499273178425130752118773269122779937152919614158288052662923584827154521071739873449271589578004553680654886759434686021717291234119001594245550549453439665128746512707494811240952500838956582432836191769398031472581326431597976835363824875794775514238873553324568961620611940915575322744795141964718010477487655188933399864924352720245729814679370256656457918709438860055298279507469051085656565963734107758492951915978750770813664027446041015029910884862397198068270495587187125560500634371180741984377175308376579117091719193394454624586777807839794904612054532429729270131890025880055058710719129219818843546062036079780998197873690184362216694665929841209490278605808056157176116140634787058312740784830910062715796684750278513380881456496902280072623819843635198174587897051870854549834950698773007156296607985376228052270801877994806514683569315245332120328776200584694577800079692662202362354017834219058724740557724702010289378399800977901760166678800665130218864646642252092430443641696747555777757068007706999678947639382967063893534196616102694714829678059014639865290454309435303216072302586638209621802910212071460171163198054315307814675960822508508451714637870114120139793283520973684516391331600754703578744911709903642134021939943545317140806191748857354736200943448945647613796271710055596328395478488091697609962982842653088557592972575077816604130331233527454269844717991383263834412248254366581667233782949563904748657271560235519991955812120264459803519094262654064215101975233225796066241414238972070544072759386573528852323382845601794925617947363589378915347848033667301462288975951986962514739941009379005614947965340196444400361759912147624011109538322841572494432988762650046660364115662313596295529347242068904419959969976872090166932663466910215634790121449813656892146687735389079523221285952678184482208949596801160978353545495172074982428560642351421667181539999299695016569661280098939822387426818929580797008430738640917894411354497599358651589824514149375595765462298314096092743368788752198579791685692387886893568963874653130241001639887890250596621344742814405921984834136640109521568135568094709762208390481315736042799528523024671082570415296136403876916150791908764465483383025805548090492352003003244411221596656650254518154235442605733118174446523922330187762547718464941526445596419362342595451299600776139282205834727782833281078737839498810876982065476636583082735959230925058161556575576041056813617330429959744213539474585634263945614497426655219512538177566508711133220839942761320103452046652348161836697372915883800768719807956780622437248461415590266963088986224918195734995881243360924705124275389201918541874552708634236968041838141850901810278277564669140545151533960614021222543931934873614017983844665827647559611322181715879772011041475834885620375097902468388441182239628451594563894454325583970724830724454869924224387372529011469265417745687783551588530361444563503009848883357440906933760987449972307190967761420830626299211214127821034833289461141984123128290704718106063717245683453315432242718834572004640539453452843104576259269887488323989601362456751290938151387732553798065334831969137389349785397877410009841381942767310792573139859603549112832160688698971834047288087160908601519096928512293583800481777252357079221674625790655893291128859621051879166820073353492059763708772467531588616935988197212454694996040859420868173323487001300327396036338162074845749436814447199044212024566255189161501236393915797172236221965636175466648760578329843824290627576116487140806225232001591059995632743252309766594678286063724403721919283664494427985431898972903743212509555297950944972615831548801339838030655524498996564227566796479955214709611166271103311669387149092428190648535425642781844638387874823033020207440204901530215466116029580190378222417396354173122236002468612296321211002365786458629638671654752161470028343680383843657002104381834441001430421217360311223911180536503306270274972875230356364968605748635830225315844816383524659327803205199486353624585233251291123253888311004298419255508507500255708945274412628925531101397686847366557746738295158303961298222768820432295757210340100315335622460334374994993418115230973087042436742160594125364418830894191315816417174501078828419592524746997463126693482353013309568499186479918202714911042892562917312090431465024704365531656145802422738568467769637442287115519384855068760398773732804074063612030855017109277922616203036743236458188642288946945663556275458038018283163838896101934438920453441129611641394679601237915997236185904764284305544932574719469445668430181467938874019060873279090542753742653571757550779609343228207565227552138949682668604780016896348853228477500415455518893118735994881656919075673648557486762310723791728311723432500896013545007332672763546837743666193980953226421641829335952767115613559413533560510620180210220925000106122022988694316520713531661618309202270386940170301252997122797679246697664137648728418123141291789573007743842115585976380778702265717514073369261673963495293692725551256767521955245985887279860825738801524053384284676081593793788834955444951612073201518626757772249727583614200154517499430225180196584526841355774523299467181724149538803050116008543804771829671491681944562397501327654359778218982811111131666348933977215904607766237195545880303113564852291173427401748369147178662575946255134205526590057651058592225117496870915882483985229819348220953579002146986959089586703897365658250785228217241299928518902989134385047555452537284183759862115056109596993799770387328995240818661028771792647969101413376732923922556361608250966816239364313621657671627233487068726828639871470171050902026084233657465639464675332177001253304470643295405838067072833281050529494498841125301091506270579464399623974088648177129777415988433943296259833617686142175686356212775917817303090378642114267080752502664456906004346849683512717182536112699988192932780913986716999384686003532042317821660172493255625699569460761574929471042010136018639276709714346334142181284297890774829013806132317775832527719117836705421780335504399002148769349061334644517909358621230818916415608516371781099427746508448147956187217925501160260786213258888674740571512567221952193515720658313837804686577680509479473887427403407746228571025863342639439365904846711719520493893277786298902775610619376730302988152734331430702330797775148341283624300975341689374934522845524217635362316591386695194112398669033884306923796410769205959942532705025775970989314606064120565546854682860170076103189156956769438005861388401254804685000105908349561224902084775704651806543129506467154749269762573033709885992604588500057262491781656435361155035785003567778201770337825544728196987786151950054928919607530472765843354811917626403580137809813802631504415462180456644862744688164758761639290779572622377283925874197599593883859557593638770571232603252007329548970162519730544347574330254390901942743142438026985635294373885959983614785900340654964770098385352598822272854142446201104946807764070260692961680608578705293075671761438820366821652882860825153255562860021237796550308635062557198713613682466201320694659305261600861539396436030491704211009136810400045182943619233174894765626681924317997759663429488947032196213276529975590497607300186992529512620860277684138448666802486741360192322235641629887767332308203430715499031662865185118940076109744586610906284709646351042238123265516252255065113823055536085553270120177023604343943640964755563646917949141631854353836401280619584037926346343410559723843735171526861655977700169597594372463122251588389443693482843984724084776339569807810972167617188265054830803194416135722458372834938124639448462963664079511312861621681680949688041767455865488666419344987789534383147579904658729079091587960061668898070965159385810450957707930566076110040902719556676289472965208217542106928917348698315920949433128010224191673140431341684009408085169598684554575526106591877432522243055711843215519346400401139846385099337597594180501057825318340133582955966667316811887496660885223607492932048922622165621511007519317170364149662889948214910491894184139671447725281624356570155648658048481584577321554716776716283721986835606486526966033178538646200998061573039514038810472563815804843810591715754815019376761408275408241178642014319883547019657968233480671981452464260681505702787062258457292428447689416338451137017667367188086161858963537407706765952363309892911615271557248639062474864313370526380752058855595930537590811519314948734346628744580996411558838568040591396798821832014337122076628668066754896712184460765761209315026660474957019718191324467921136839591536794832455468381406342375476911201341620918951133393318131324313608379878396429959148241328471484620739921814690831032277074954250063001865227999356012629745994912300291439686940128948440770550917079441164917448755143357702218170580600033380789377588352620241702836727045830633572143205259900502608152639574960033644572406111994614686773645891971905749865427763637055378590693412088218868445920612683142358100488740521266264707865468222414348804921133767131913756539621699737321871893934314111967557439012619287847759627332804366014245268422177289969410563359433038040729573443705750819727841000582038036300223483088155687131208346133473864431068027951074991413522627429798804126193010314799410207128675839464871912460905449584659012121641412106167648204619127898703765206887457292499125344991292840016478888682015454822219962586386532418217212483082429866023478347521869763789042219411532133618855943976253276537118252287014035541817529429072882956205240935109238011055444896029409208814359248659033928514247342440325806838228923356470814815630026538417708354750131664124863102920788535063637838029215723213029657790568967745230279297263071073369722212369499701412561538744837863297447171379523282286372880179364129087496736242349369245518929483372047828615065634337475918787919051171718578675643109920850039049157650934585811315173665863323286925959759926802965377586016743055110636929492758311933269955585886742427024163193974069939569930149662255882503393776360495310681849674993001431271397364460232417404287286340890923032695945447041334910599701418811209543113427392903284601861670748562513117152062619985206828830917982748176164159856028654691562839466173418726086530179012856339960344968497027369712089736990326139803399652890543688513812739760103457328444323215841942345873842762157271847864210849728482980024489818452777283951867102966696883661474502298788964776563595248952902700079700300384887189976926648152306157071736905272020827177337701972299838060439644680610669467532017459542994458581107832089788668549728997559450574141449875954282383118888830763109140012451236160531982242626693050368020934797993032669565069961935898370555575497864654508136617720543787059106203751739506591662296483559101640926614413368385825497486012142630315824236106516510385434305018627020079743669382500298061974666401835526063583506235021734406046009908916866625377006157086983589354796536518719124270688658835335771025149620576489544683540703332974163272001662770577089804345369469334822784881565527123631730342679513545576519554837469761625437888953267405595816686695420250827487890034183500388673129504101735743954643427565671032348353091070586631142093287327053479177964404081469403132453298696641117923437719935695955879105517971772636080488918998501801466228166214068829592124883883293530464235872702626601771417655867509174277087898180809757826270954207956910882366486333244954016325898157695880583052706067838306761590648979082385310417833857901645283711326748496152161114368890585392480358681138395638611954539479139447381659090031590658382480121477064205874977511419667116059141700772591302105919380573407616537780639083643503369719495449296561683159721726832621649122149787136797362603947762299875073883189368787960489317347737069240231610071328785448444445048902863048276175140741685694458732429050159123638390723871323077967020705484531576050723979671754684392429670874834344701358779915594209945555707795520982338015338823127848341973403001400291377587560095526619499779804573904252911558196479162393928237923089497713525725316377582421742824934148896448911215559897418284696054939652966089211662419437616785240107908401170480299227850610395153157728463916019709563874048900607478543363928125480672363097135779442716803100045631859348921657369904257323094811025146552244750706819033444859018672238048671009379043657959446229747374873351360434479735736578422628639939556962985169614860997231834834042344940293254749057305218807042876335106395820750256696219378600762523941253307042670366273103602942140769586562737531982024173670700761793539472944683635028238500732460094335423815870698946953820556650219434484246508451667271631485217693488878951088948920513815661983959852823823032828545597429671320069975954578142956206648697179196686885032547887293496949642530356659982175798831893743393261076648411536228431201774971887672148912190372283608601286840339625072428992344095366884135073061236341980987979962668084662329525245306927120816127962242415736974815465330418182295686895212152488309206397676932185840941879189496482092718859618421734625147010712234790781994089244747044558631968355071776840712172954675129307463883375132352325902592858402962990021951686382652622804600114199473271167796772220401253021603890062522535213702450483856914697217773884901468490107450511986827104551488862186252571716208313469025911485286409198708592506374055229461986675070627183964285951512095566557759353868012174292362617242345583488042026564258316595656939701556755031704208481036956477740545702386287769270035670776682634608937373921069227737544267005271246163293641810227466965219433869679951802820899071306590008022382785361006156539636973748158577485228404685221909458582889012196867470041651377366063471753831577871594486926706795052491821818907422447447404435701696981882012150553335859172736581331628045574959086685419510210087202334084520500704261480138813952466655294645682970184087050534336018715251380062544465287766644784735753656525113537881753837820061530672116774744334792222228743448991105928081547000144487947057405107785274343580431923651407682823956585994446613262627640003014645100074265362258433833462910488044676476205519761007405779087085237229922109587703466284805994457593944714384115414690419169616597543520767723618381179804238618212868781378043565272352535492663035384665607025109178934463063421275022580637991998573344990404706801024476631163429692957746613233764079204589960801033136359082262717250965883801702852042420155378311020432955216666852460104458046104291869592467901679300638478417110924765734369152625404232417270084281125652954797164517076322183955884491223713485316497902745479335617572432727604142636509824283476210836305703288587818886209271220596451234734589432171071797698077293189264270861314732105687631398153136980186160908686587462272412483131197362306429840416717436581041974145057842367129990262999905625396491249871470672703654345637788065419859800437608478777380544306803440577443034570809124797239669350015620182560602908954224468568361581819969432601632465750790821123604130426217468832532669792226979016240180096380822203877051931657079509630439743159494621131426783583585912469509262521386099976695464498225362144590774355177736094908169818875753075336363368121537350879294841954915639923386707679874175151617647581245697120281198845897771347650548816005463076541939667202808057519126934310506336339157641527202956951012509417433512961689456110111864052321114459176343033803729298907004834008449385923476745600367940475334665556579259839320723617272149682272378552204404798034987982645447477881009999081012823283301595467286490239724000502136828194596937533073783890069471059662486162618895934299907643175095184074475454146618597435873341237171213707728467640716940158994175431070132805947829466741751640491314613722808060456552594244692657354124624606516252730311913834353069980018504727872736705202532731478362852081652273451100340559692477887676919633613669671727884266041794604413358347598951157295671758791632480087819616099319093799990967515948035105008151505927898363572980517016573028482158192291410885496989881476274013123778258737824418465012171706312106769715537783621737185897107844282188678465484650606023487785898829964456528372842871962143812111257510287709207268168884832769709191483049177389335592256391724260095835785504163503149066118952844223538872283555366483062014221981499831561383731455934695669646023536016490269817662039782835647011692119184012708365135740627760337880579190638651577915253704756459969785117581164203208719517846055091864197835908598434337710046265044902075129852189409769912962615629125513812734840400554904845634796327184212307805514306295755486061828880303355044718727208789437015711454336485040367241476841140896433486860003542518071624495218263872357116385328355300154481117065882028899503277942120612365682525057695672943682024583950518217170203395989763113022626531690948230181354884171608551455046022058585898478584442930128331726737321056064819134758953195289106300158717618198892051618532029956104389222585567599941311955500898150081019915967015938116686655517364195742743296689120590528344991329429426624431803915051950430568677294905600638180530456651970904900615250624401540224329491012830876822531866428343930677081989807204104885943710894063649473615157352901235778328294888659955577380553249870192654116628591568991383357354688871046034017728362248545152727779139881603110729041397633387563229304197574805959811540227181558806360342501554556213227691483772583716445441315025286934126356116291550303147929584510679524942740979258912827234722901297954909733816659684002047679799190913105355230332399174430874624865737313162222293947761011739843383601128276474266663471982521485673742545280698873067034197230947500800101523955390054647474279411671645776615963415316180644954170639282508374043028810243155580272172879801996379764740292251831159006947511252447141270289865419221162724488396236258419556445247570423149913759694808621924456608577956024259729545903061123703320926391285763709441337888326222293983215337663685620976059708931100644504777249604422335205188172949569551930610894159136141305511873369081727832440624646176663910170580828025501699179163937022338051522776872229065007157625379729948142678900655281832808820798936925231519925031890909650054158056599326853230532156025443130450475275849939807912749378705738083451983184769385912366730349477082101119333034540053302263989600503150044279401756850843519069700685769929722326022450833390922565163182838703274305840037146116280619048010855354859594504591197481367193069883801681485846398239565409828167497016046116716355188281944331919831296295779618877706290238018242859219616019468837068029543550193655089926484268030925119764939798389660309373360941334965730694558012733166761401424492836264465727149462169719090092976144475899637490665553791644103029381581734014925607220603554168403925611705290393480175614072243763585489769799446274874890670520464513560164654057720473872722961914071925651481690931218230763746043249560388258720839158774986269165194266566338956858254467329568922819732685350426740440296679663843506044135133321874686818757940616471730571009271302447751639584942980073033450118668378728871328299640873508588278659060969457330943927197893558348103991925893030939716605975790513981756713933176492333203975401679358894152790702112890626472443655372438590063166325766805114311463659978451202609122351410723219405869371135638967755652847388517873213329613751864083241218511849129711664638408530902254627600930784387021801549321515707406931503788790402073694136715046492188672674629289808570106605825530470223614009637614996291682072895463344989007599628805947445954605528607565040310268295729758575635631593019072912774968788247958725932927872656498859131323130694158374886525944437523864220759527246932632764949377076564193906392452507548113823914229930199392567092494676151045951053647708737007031488023646070020225348200524379617958878626023248525917286121685102266700296764719394021479180486606620634865050226198282209284339729283052495646011159159029952577180733021786208429713541100232914545948616558973078960677911123623482981195903138015272557288029446428930393411382986640483982967861006798816498856492012789956328327345108591283402349999921037330511524096638256944530894807757359307364519562296080661049856071679298085856583562748322273289886382269595288525116674481191951290014032385888095665114934503254060395775969819830665724757647261020900527553740258981312707496003517530268449629734117128506246218263018208547433491515234375827591632893032529560990391518628930033861054686065414523959753606361708752449172381138432671405667764486980874777902219237444307477654482454906574779262796157874112727915641953893558188994444819626028175987975581470841997187254785707241087034043516103618313089657270429127462141559497814771374440202794502928196680675287191695499132837916209265578819863793350790867975933633766714376458752910299350207117891013301687928822373718295785843119569887704172216136898289585481247281763416998807027515563730177409277660182326378776189663600879045181702380526683955356032406165876029341435405718269634574370184873327076455298794794795354621487001806942635684687187502777187152736328837332691888534755047295911567610661122877361270808923819400760428407641053214411767040745674059961937748889804550298009941425888605521128532513549728598536287834169254136487091464780646360566494371243156964883196250863567865193080817994140077781177558524013808224128333923825407312237530448734696011876808925376739465367577064360450997154401131507649232548205433186147981345244492743933726613296072605549250844814245685907665191921551958757221722338302646722964414417894194122199861052093385089678291158907749232774133104500602713243549420663483849824872856666383171101446817617275692718807058903864739043074120749193244445057335169429482677794952136960550915443890362737081525442745694646628096658893347710526639247904275293160544554618213523946653275982978681872579249279402184772672706582189689164854684618689328399788951248604641611560169628177168552711195386233454081874103497163821751863916780540107862665478171219828363231250679876938178302037136404526987141744245358971044905309955779955537026443642423503810066951045027028137420956954906249415478877966793385645623176877140819932786816746178478658956542728592613429570422600278953156293270016893212192866494932329163013733867988046787221723051422992222049750983219542635783613590273144955934859469227628569001226136101800429728237276864116837619709343718654113314669557340553890086719176698639571781242238253863384549031047301377653647496834777080256817536682601415184612715416147647243804199792219934722913474144816617937804089813738113211311179504939555387967726691202131707200301772245849880357759849091807448737500320067818757271740890817148352882464542105145964010237353014063607278763131807018402652121593059274863970657012870903289353496721401276008006257242541186478045101365819381543649692172823986358271137836630193512416888082695649631921113008292269959680763133562139305729366946302416860446178259304489732189527943179280780044127871248420403843566284610972244538639599756467192378781265560166125389474282050016316309083061293985000417505590955623923634347320515046589320375420346931109146301297813971540322348844782863378567525775653058741137714830374768037938518358323546923928383512928606713192646239107670695154458802686108149351605961560964964964130832213597271474674944511470880793557536528586386625806485161485293018805126145032547964993515702008285574678725510653063639702972899029116215615876503971769191097569262597817039571402117590249037106040904714341759619838037978391658246650121246869213825955449447159152159550643873313899738982365597748670232818403226465280362687114149981882725911021980719387111173109304307646184435458576381759636770304771394278794115632294676141698345907435131933226129215219420798364987577038064467604729559725360106032238210419474102781180119542610456078869699110995958533890882328944571119832111219572350342884547613074077300009630895772012394963909679001372863183721975711450774245104641701505506234342126452077031480821169875353142519294804894647604406798213130195824115773004217523858606047839929775995421298267814720651039621070616904417941221154714394833175047414427901955217845763732486671328192566830067596622118411183925626135780733596782140674823517181254225285447861096207574096598994675462575595149947713163388060194534004512749515173269584794923124527115739129954282339804852497792685858994052307970046316346272243367017247781643148286942759571820415630172084400567111859050450076232419857454850916211516501091572096644783840094855531862810429649453929724961332020546588401637490748976034719680844489563381205580414677957513665808342769686142530693219370863018558445839774549856157828729115077432969534727939959005065032307321492927964688496138018084090141114707032974297976424396277246427417027352786786369916045015335332206473631816748766090166095272676118726645793300291395528296895010102296177308548901255998837906207666440261689283849385449187713663341498722389769340531274604929705048127568862131859996553927120772858277076643741872532283540267592630495501342982406867108688079018695145336258206669887576134226379567546769317843049473095800513808614813688027803432134809096742682753345409271703800361185831277480740076849876198359475686806587164982577568943092601798564232067554937572160240903856475355130767194539475956928561224613627533647989724730605425199210518917815299756914464471584210753140728624724299779859316987004752865372449521624655517099947214032411298957520635251775696495221581088283030517401229436786597227552555170984166586542971366107007467509217567494649203539231807085214768960819437337757484994731185036301659137830214065013799955436073477314085136690722409189642748852129553032583684537428891140868735468346527930994858473388954137452145248046175640305188079967129585694700849422122196682263883131590942062097083710902819148038860077566440470628960172783701925276564446569468422704991620676145717434049623554968584969978625393786594513196897875319965735785325596458580514623317335872125968397849683844812672003509710540987206703314652120383441298185515080302126655484164791035833517189507199222094713276619342536226958594869575589727626816371038743432655986734943805730724866365401536998286167993052957171357169030283782977640617859078151755176124901076826773118319379306048713148542453870774430326969788605759803871626919669990753478035863112351308685405773193749264662316167073313361552368203206736955151463518660896889789583421736690700127565474210436692022559859377481502151387298453679759164013005082149677870672510114557884189245050166060328729190063889417707130691787419899720099241138109525794806658599361932397201436746041419396532223608103848803271286151039150869880756133095536133503918187589359034708713884941777216209064885915857750479795629004577360978919207834343260823961717795555262098589875045082751558875651071971878034464527990245332935226393368273047447354138743020848747238397093894703565676547841896177052391342325486177944252574831655561789496563326969005924327626897409497917948609354930925907321568230477763019234788591247647280772550175764471354678493009356496991110870402079106187172298591385985324939309608430148694316323774585033496923959443326676511624707761155273295940211110663028197685746849554444993483013449220813965685005468957660313160595971250107147655695617990569824900841732841984456165728645431429201980477264935295683120040514594230955750282551773217889500862975662523962894403749486525551873911653677611696529962893075017698346133032712606547432936114835015578509170003783258559107696021051545861253624676794545873045869861969695703548461822911441031580544612599001937532882824992285413725424886957479156117995272216968430870834920516403474457582209207451979831491374156953274118317708837440424428380730949713433667817016160648569251871797947407367878776297903183249093113703835833839217564640515420746395183024772437094992671125109864253275903104975588515384951275354366437836227816902463992316614493375404100243174588089029839453936977053637832818795345180840624137763408580550957323333163951701216430455946523721487226024080082820643334715992925238598144671563232040306112192831253199617673357246405002482574950575817939631755404821621653429609548179412702635161679174109656935838748987864863796889439686761223292041147760733133686863921271003940465204133441482184046718582676247294069197423094965795498428907690221893002975256973941675154271399884880030945590705252781793691979892105573387019069385367131962671100276568687773151675869362910421244775161936970851554621455602582871934295452502429072256526529838607211136874008152741785894923866684812277329236006103209020676126214493267658859077431749055790830197948342824672006564009550141790462845386220356761205888982803940497716933630617087853224578140555319804618365758126108668728562863274605010858609738701536437641940642173084478685979748229589891187475163458422094929085037385601176360639711868152862696310506871707742523166457787669580006739497044047072302508114566172291066224001796906900718126134019263497248483033059999127491429901732714133257892195532822930161401802023041589676679959792555006728691254022368226972701290818089363298141480621912851598495913432279084369728467046834321416661865445051195599883923412451102258292383409136018080213218133176579029827264732921178772568778875173428721816940712713527199629339168527785053782308551349358562973888470063911597315637760028124626913103893380004090419390111079312881420479202406945080909558132792390639646387945037720358572971019042248231592934166825281495413679609931863821521369863214750839506816080622083050891952338368069378833483512083486810250143881442315391107149720461967859037120358208305406960651635572760409253362424829616206059516711440081518513372694585197165391423761829560238256321584591065123650840439831575433633628591253629282883578311968022116595920031000505321689974231843399041547481351272040558357001824070221812208937604947102032727858611042200812708508532263671861190143871988061022730143446224886344249416249573777013161520869809099261426783015814877662565123421199842981978297378715649823326532134883533159219860990947138223301281724595889903106136331578528760650476216246993478303588690125142733379232331855668996209638378892321117262661379118881636085601569327878903763169066574420018613166573727173627117393508513021444979261534029134357741759351534866761857532544800129032872433654419188416796799833216929457236472579104192101270693515116191262556983000435521875655806010861220988082962221197388523033821812226813927852072787359960083146746133552960935873943608730858712499743264784582902507440737975597211697040865103593910420899873459914478761642458453102218843854750329857614793212881929116587267459768203577552919382567640660333647831699050820069666898694239933389673802021868056847058902159998936481008030325612346429303425535039663018996896615580086296668529850498352290279087734430448792710111096964823933761692941000618745935667925889500891979373095108651495594141264755233648580978806099003565435904372250731426324065533603302285917500191448418131951849629789336558366285592978959913028330896275585744031250177989082883117995651555475137062317658075525908285799403649875629882174747626619151961481993125532345788890803510440368155434032542606352599623500981410610778364315963705330848759178749055597237847120643875522273494945482059027579957267822360415451615718007494582896737137963763970351256290678790836496932157610729581966276085576287249389853482398508588397029116245025340439269115583689003213308238333179391926503925002131994801541043433691051116378062538621987902160025684137039686193313328416799441345357137160657706929987607413356986685554025822192357203885508516875488325417205743981385609967019993581731205160777177351426313795745018892408132847480885954225743061728824956753025573913495507265023020084555243358688754688002624527190809898893589217178689596963611086415864243933920152280595710834482692878963414259639670822133596322199417447733856206702686372939364969628421366568405349128059709498982944638953418956409145405769119098459297743538035120440727204046000115116343500931490886851017707589698371896550864152600929796287826468160120632729282966257988600235274010384555259146712135963213513875446021313181807568122771042422907083853947414443327801156876669293638589915985844222543835462674756959689859682070908191764201448499950376632036106076388086084649201145265433584165057429313330276436242373978837619679647890224503500358465277415881854533667378170514138349705251174499433267996244454870779052114787244138946078108995340510876592394785889716271173753966408616415668436068495784741853606793185632144491271518395649202659181783795353348720514069778727751048459530482465467355974401174914797618288235246691211908239658883105063847869115072356576785878874170222546686640820624571118487154126461478830926161814772004642094631566780687669906448800059009912634667709997500636491003297080413170950363363867993299026280592801335679559620575103084013511619957024658217600132380642308987053823391124404474380813344012123024767739884666170989341191482058453497924344358125153189091444963674546374615550596071005342688811311581553175685277058156012692846915210388639930050260857858808973168615285970848162112606329290370971847266244913817728199846973078954106293224825369121781870840176220189965351101081338028812924084560955407255443304710829632381418272101640136449612739326654987064410800971951128452239139391732266571369060032636592713775932132144409980725549989265184809997891288270944448933072320861951233144410698306611027606748996333684061341456678487702764047375560875679407990130752331551875186203182513360483742917750087297158559104532370073175975852544275509911983312790754324860074029928285682851487101262950304398712246268728254493962225965483731422177347893000129788053679637869483881077728780800081897263811852104315262768361663276157979658581653328852640867433892525690323013393052952326626561851537015971647345728036231372042250148980243366186608369474040175077111377484898896565258464338286425111872928233241199616861866291878041671839564265372945348907896588666057242672308072275957679676561898805264442075797028970618575247091650691257004815755332932769107401223701031111141187657983224752809445290150137526102549091403614801352053374467869546699056267535799627450627453387406418206207675930023322180791169320221759887271035552007805213642000619558032742321346268564358664244375708682602917773343936663712610553736148229854255866090496479127289821105975127419518086087868466027370507420016465634138246245805675823889615220186459407221577145028019064809490569294959231689558690079712116643958014270735360128492773423052065342992226267073034798921474628396305320902698990949629391943680051484216823955324403619841284877314204269426945395491773486117511480436272871868406416541411400464910283140195808665344003000758913891351855196239539612038209942856464561421021783349046768516284058396396394489497533557044810695437354404997872164770689898822799642100085242673829971194576078591398778254179602798462415906260782562332971826564694790628760492626050246023244209213832262944926807170474073003348428107679801989939409149986536155309686474726932908043064598403262830511710094088269846966546248484159620624752574702845400642001009549937190538923720850457809171066698322213133729584618977390016464128384493708554289799015877337227601137341053143881123142533441097637591600201784887392854781509406018835793915212132633747227806101206930827569398834148560873872119620370065768814158481092347456254047167699093482491093608448074544051051569447117580626711486566187317242864681658122554366125945832168431902419479600623367931360290921947228865798955726414653850979486881481358677468625040407801845389525106517431386322186571841929484770767883464172243089552586714584975328651702737868073545679045271339318197234455922586045196345444231250101125787004969370678224330488081885713506997579038962410019109902768110043454673404637402286736564313063141539234332187259217981440235158796548619398682792045390121755538425641605880268663687102688592345183211065141949856293150679405335672493495724016825756706451585011285432635298506383934681988477811799693773069463195709481109472923325429713974697700232631854843838250883294704452174977287743614819344353800945588380749832691419709934657502534840284742233525829607863849622013042046725682103054319731365762639813618925749335513150432542514109828537752469746273544482114116392183709727973729961814462934076099974872851855743650485435767675298363585169255208290432577182495216320248754805524654592224139111871769801889267783830423333025647436509606632434296732657575247343180519822665038167078855203145119171312236453080046992876435092855778403368176784353728960352850275341812005137707813366049507740105419634883790895514382903241594173727530995480187939475991593566791234907173229878063323775485788371777870248152045122409603851458166279593937858180624948781700942374599715485496720954493964688188489645234049838125072867592174932009478443296469581203414667211323194178532031282801622908363411084334665046633426309073063507231150795841340951835787352358577948133975386180724069400011544631557441355530042037300792413887875683915350446250473367860300896897782181292418106190768280280722051981836366835074609942558464649374407639277901567502019092684254759302022676186199369952591674962746530645339466360162693787119657002574725576121501560020400614212409818062712431798628031171927779720150133684095754904261451663832079849528336718046829197101988218266882639992253621277998632717797270864707144376524083704559191288337777576273294467137796580560855379761809626348265959254635093076645897784073103061678314068748159279165050376199470851578423751948897483262800983002725735185902516620651535120274623900194944548174153959456569666647849842540700467708295838782224998061470789849479676191290249975660280271102890961410516850475090150165056330702906819202768108939519073682092388214277740602267356222578736253262843353863464962264074680593764058702284710554012424469113188635943382105482965858403664541835217766206491717139904319093713392189855853260650157010395368508359232320649472934172426512579887252804493953336392703206149618864214814651794018903526533397759459668809187373150378999454261828936629339822766884233262629976085198382805087504791180054324616775987870573097916849651901146205480889040748070310360963125618019866922937493346251681024616822846322924066896977664095036554355721546585805543422111891831325480740776563749998872229119737418821499896033593861176660832597733680389882371271464266959700830477484933234510127272894778030319282711947026570960012024414129448134522795157151761616145250405695861882934298437715693140082922478324004950216675532366809735559600053878256231183274948602384145043256656281417381229893683806547407039697402954292167044847000541869881477448836642433697808086922387503042952299313975805014029653188885992039995209785728554738433918930641097689083743444457222008718128987728663789598792699924753769536515100986379142619914651351072198387920361731044180188519086664647065812830932432056331053109938839311092085477517455387624647197474339162373834910046923101408187168142877407198733952088826336461159535689606270868591381869405098957930757474253508808446235229659332161513835220474996338610757670320765886455862414056636567721066039244524935015549639949011839196206847123834845111757379838588793860764394708603310709453818935552201495881658555310018578043988589608749155201636997772017727542341293010306094038076663997057829821647694477232180996138171904138434669278736328280253923043094747457902397969552386917900943436208646756611371354244356838569453906192585020415379153887343989435424509483000383007093215130678307524769952390309618240605664795088205151028303590266954292916927276130895772858327036780689670921447205422004909897626331838195889895628274047466828595618152140814965759974089966395052520506389237978306903753400108036951432016497725911660593739899154419448154548177558535657198007198298051769346183477430479621184525956064219190893155960995502424093739712240480737275332544667469573949202867891823394369777367912356985415203173012641910395520901568953623369842115885959374406648824553700996133749791147402503479802092682982783777954416890736511301414588521084386726375649345211066428431006969899003727655281278477354597744151378629525613449989467742045257623234973930441812898928334708568780282256993973054739864445448862122759241103489506094888821525383686898900001306368308279098999291315007512585166495625902220465854073117122973921466166462831175362781905050502836590204544488138104657825683964725376039056303468437151059618789465411147588574525015960488679277198752768844711470890755576463568968016601566037626875769368561148578020117300067444479413316293453301114677954691196303489421316276792934697944135364338852306579546156893279886243605788635641539613750795537333738934454407222484603236709682155566076280334205294014423671102487116132629413595388569088930328352235358858869978854687363678370797325173364343583476672618871025674839154681691119160999618588982313376353488402280484986291492305349829589171917349726800856363875594533374161288529730546866884141273697315378916276065922804026869305812922966776654685767981335809728718544071632883629943702518827795258898573799049446131058900857421417328756778903723736939280637442895153138414899325877343785533149140715206660853057762325279848688118434362913815893950361641857233790824765785281086046189850373280741903073302494918322601760291080278688518293402779939146136956144618462522526177942077741031182688378358860519131486124434538934342070573613158426597994080823608699473115104642124625510284735114206623484850178847487893531722968355990732828284697920991838834095549647259883696825792990890207983820772998919117404477038002663793078275014727486738957370352504643369001918034095123832259402970288222916222567290070913105664280758593674618017973257291482483486864019068714144105256686540761539408338159481614037265117111642936254601558450467913075734273208084052078052208228542949412941258994142542336397569302481580129009775593754653267386675665313031896397081744889662225920007149262719523037046720885926424503392612361443827934138623868017763326912378844949857150302944286882716703951065180207738411811837735486305165921451034188821723340795430428794020810976647057358725310245848100549562918475761023433932922917627329611517962927074933531287062670657434514875678940371465596171207243830936561765745942125427820753364077506439709664715994076742991791537709090615433291066294612818879592169087697770879581256854976515697266271276157430578908953151421960697056495516825674075112265522047581662529614214523129238940692182994581692679215064014735295155237550905577913881303888535200089465932845158571616590777632741302953370278082636502796890759482382692928186318927509103372395439150792100485243157114655836018590952917415550875143346703052811072992641194374597944906503241653677527831169262947056684817271860814671103078236617806966797528656376900466516249092499003058123551428677528567604770731612619861220156304670872340803748897774849235293004389712095032284974761698649236244123197234448016875623901890841240077203611326942820752771308481619283786140085401770419880838070261991939057128572137235069950084301570832595627637149636364404118260368871291726204613709639044988163161018636017508156549436291081869381089269413890736810903482585994431900526170910400499304715269333296750539470409121493433226332108800647529888811857734260655686062832112361861397896625453673712698399821546813391301899978257097761582717965154387692433124304257836098816315679051673349361343638665984443268322467190226965708066921509841267500447275809656472015086655054523022800518575668985940564217185373413762794773989612819432942013779951796397033813989057066525993562245788519208755712807148938074109497867458686142581302378698881927247823055722668682228514495128266994515940588887707997960116375446897818805575189157788384639159028707166904698411174276085161538544026572787325427257895038817543476399390193258364390933591240252703195999842574557891575427581987019560392520814114403719173776463831775559657491928001929142252397457696272700560095314015906443100407126893779317258183154104904603157411123522907205578243791562643802685188583358229036734575330277896062383136672993685471082526721484001364508446184425787133798342258725229656716481971527065635322346349979291129164024208019984883175602728455753219624236842559199985798265159348162967855558732721838380750729563808276845712089642792059623704611823183241793945148912754282761603900562554277720096060570664675544234594781335201405529622365080199060717970202245698117342837108395450232651039637669986105216778319218574157547020370405945540580482156371472919278610757053008539164704559297922931043425347492535766516052987733516708006870463841020605060451655278995973297845981439166078818222741334663579981277530864551214565637093511527354393794726640096803483658989750780229042112420868279969491912223241521219293038514097574187521891290550640392280714761678691957865512694761208165181135844875631529394325096272687052621522688398138409365242659309404051499744747478549470538174559393645519612382528637994584694466032260075852645289801873721916986153758446825041383648129518518477646842084184972581163580036892832471222719630292181932723295687752142801923951573484213993126144244577942750197179665046592770856472270479331244284975864882034103751627125440415143829812405727230599558567607158583960902961027281078153081556095681585765194188081488275768721581342869957427449008081680798129437995558723790347401531537730367633433217643093007223683980981350694963769013459533891490440669352649185353869059249959982750456164457981744149417109239431292489789023222301227931000801212865636086810423037428446462604913017900077523562332046833882428921290245504168875218065461143213423455797532293343099448140420724580974805837709605697160084431410853474892364089640000009960942532697778898140046170389501912796388391716736431544983507441819616464315057711315483883042327474577985605436447117823112159706124072890404939292546430255287288119610087322227797327504316612176137499869932475428113308418605358357205070437005382281495491212948687085641472620384649940547789384472856570737158293260802483841874288206963460344655513366517048165579327690711635756642810563672011996952482450454182046102450983513816527109575540107596886648156813235752013444731143120682758196468418120575728320717984523258819399803839639372169954332844953578714895321186999716471616946585790947623812653777993431271413034201415476037762219070008508161563156790121598960468155834887976630211729102558630876430264692323293770044770882514785169120140948060725205965280531954111188451855679923331039601034372243597512213687475837584681190134930494176948694541179578821889922891579232570158220859679403069401109570332419812067479392918815289183415493246580034095730649273335248776160246293629502899285335606649159038175847429767400830559748238494591091326097542092310466454968292843555177819881752017483921301336122217481128169768594462842744254613684804368546635176448491518901778839697170870601688920450372255738817934664139400323374556211532931013136948073448832604996945815137353942147996106470201633330813064659802316730568679399144793689876153560031670339320027977375372951144707583972288917054682793924594530602671552497367760390841204550514136977244731291342937949505863666143537002292862962416142507314010974313042501043722422578670048807502007520125522173720837166692844314226892751015163577801826528443716786590936411588660423518839280993051111904743591346537914081144789189540872874227749489521870730661004764391608746888536434500380000986427413107496922575499684246798912247555621219746610730576557810084570509895323349766383614009976123753355288632938492298894841429552232130018152517520703390160885287761977258365168126000329734422292442424041629131529348128915244148008463076538419626974009723874282718024066366834067967040536977610789438964336938038070394232460263914764749980419987373053298383537486024345353056200831922920409925900362661824557643766157832543794124854332524355034187983185217891611945541596528363150119442621056309071008038222561000883180947356884266584985403286903257549567366984706818390849128726358140365540022592740855051669499819485107414830691934783903767847547016540998618432640403943280801470666954501047529834265566642737521855297980744377006869171223984959198810210469262441817037579706620878757574467156788185861793705128147597380650096567396345447464239101691992001861135396715822555635864849612298717166277540968088428748268685103045173560827455187425421669961628527541255801131845383343025416901139497796673418570508078474998265014496962120285695013541013705726744525575476733050621164210820914993910138805527672786674660225427293039435810823486132072234755783807540121298080980736228667561265878386616569706385288378540657628640886920724404205975268864215196892416222626715098042471150830062869152906315744778522462224176123311508510808590793907948583125399748694846475793269657822400321673811871466378037470614816943585040874587076409572798194814205860936796089100971670248705650143932139099567406552924052947985354346552616950810685603641471227239232917430044730973405476042972627592990142559237132679600810407416736400439505984847673724183148456119294294416966282800913703118657735922345653085232774083267024709727798429236966920122439520316304304867737076398180931037939739285372305078905526797499003558923527866865718059038873217529269563438878937850448104125342361474733442695154643834834691619106522425400601566286507936982659900906533925784359578064016498025553596500858638967596244715656891201164553428324179454564556333174409194026249228658005337985872914946863918749861272514814014084490260461029324378120280192099923350164416572099888102425227668185684414632469722660954970378259777641481624979905892703551368958104119841759140605006234757719560838801545921310874244210011713153332722466073457401391558529397593128983522683407867403221550828372651231442315984257478536174618302104309360281339569746060487302047025025822393797169374474867309133260019446507037419397248096962901114093173749989346748807830840095098180864073052822523963105720304936246424012583245083150517983958924978128341903188276722070439171674982021318892941508403016725139504766770421837898728024017771350087161912286269757749842032981570369276324085307449793621142815258730749326968488254270648519317482513112563731450474779838092322491332321261586580143522196623734287519373320976036715556970720958719716709046771976461764617131369199795891424059430524274693482944883432122413092158046381547703422109638819954871254835516566577617113257500860486890147429089699383627842133295518856792206360553537150790363639845128525658627825068303871024446683588536012735765111315993155530897822237038855007146237937554829981519691735623288728474892885437306524780973507243001849969713539503825636107103488522312291920899602672849446230270734475559805694404371025788412302153006645360176899753985272929191141563047332596261098630521106574679501133775137017523541454630739220267328317740419101065595427325510252955194624149698718458211928386323196268768197949866746846054018343287364474380870620317899420237482229445685536509633349384515900883942260905358694724736189675821008313596455577344943713314846926401676776847127576204097262475828368894617578745691378501522058926037513719229102718615706559312646604874017918123351060107088202352960559728631022079008853439362893943452622428344042388069777224884373037594381348345670305427977242427544510981712647849420568599582896262536680832450062593859151333570771489448995963852429576308736569796928832243506970300717694970321954930299878533677748740650286299304617245949029488813320038619293018134674385207770389610276519407730736411155645884001053499932761016910249211918258145082978588898562550692985952554512518233158515275609144249936022760277721616978392854452093501374756729311463227020428196425800754728814731956575892429054645004833027018745039583984427151035819736271636060332351147674905167136447498567030955168742154598081367492795180518502699322556044346827734520106469034765696553232460662189450888706589910736832691645934937939215324784215585131607520000886783655347136124747973795939512442828254311687527434411838450888847317024377928996947245270308140081283532510374441241916973707511998492022077826769009343717802387257559920011041610085817829746358002511924484477674206786470870704585320987478596225968060537316822562987489180115919125505207836583465676471677963976133039066407820956418766449497586603208024582004382677437398104133361993550730241427611922906680185519984982185049147998517180901631035035642417686079640146834708648373829785142767075686829354893209661791597994999558612514688928156562326191178664495693264926135939298704372355269805735052660679630407974631227669912154541307970812425705747535320062218813586793097135674112453798396363739305932514923410352455304975148058507463830091652697458489606829444663766045957834184955199619666774952437898732406195543108638941971315009380412880025645980128289761678448609252884559376139652683290541805809146950513131855390155682432702572385258819522737590555077516072626708421700552292783935970600635339680826007326807545843951198234766196505874158402598247258914485099305831706390634669154911604381570064110869039519563082485699871055689581533586594635276208714871523005402848306971165510921176627534070767452173154293798749287813201625754681531757079309751665620928427487960345533360912795393896341157925308150261278163680593373399529209326283545440684992036049537795905959222777419800884062992213623959358383160037254276531432636803129766414631787325274480279386768546099461163586410177316214727580262631139683181677844574375532716189353485678929772533117408424765523392171893264320205009468886302521142142037759304715385656442828619655905651906997306095263621836723267693165815189301379490134979329855210876753007789293332509824605946983523359511431592459989198587466808326475117714502220597652131117898552928250224288435566940083476070667276477250851073431171173131764339445444378110809349870440375548204917573618312654560240755269193196814602534332541084330693942501242003847144672494529231964021839628878618225427009255364559123136624821139453125923230710262080735783564787515454011337782613722725557474658022034197869816009957063637771070702239792714846399922117834120845300297726958967481599705793756123934427125189500615802290567685559876803540284593054281443846941325357847688683287189532893376021591429393629189468699388426734858498254734745227589549308072603950449740655850730190485697151860646372572574409317458416158504203575520732678569086699906673320207155702497699939987635067550082577202858284304177821876731870811191374456640974578707060008837699713258214886396867963999925849745204681709915623153969589924271502299016294223570996513959002554507446911125678127771229287906530665095280914703821110314756737332758706802526299463670953207713934783086360709553225297176032083817358328339758059117593839665434406287540791390342105346106745406959116602465765224885929580065269383533459607922616781761983817973028079390144830992271746424746441246552072513953755714952712025992328271482623135236089718329646756640466122337506342219192927717248464039222622758096994014292827642935248370785063120230804035245480990956246240846023774950318814926478180144641930530387011314793731727421484253654488257156205106649186414699590527764492992703275879212631793464150464444552708741913922103798792562967901486900513914270229565976489115509226440638343307739134547606755593464637710339986735805366400706674959126228528840461503462558363082224438601779914933207592243970072834431325596050455271504942025299606017678408669717713788846253708441506713147538511656787437577937505105485999358917774986537426749810002982741425711433417159522960232452161145664472443506440636021722561720628364213406816591110122700872500089386919913074090107668850318546264587159234931485843823216931757680619706016998171545222380285408036238364621011037940194225763314094374942856543860876238149499316394892812266440531308453872595335088076841061895079142789756646435391838273636202177325242712628000328394127645870973126043004006891038683393476860034098895174620738633644339188460415751440672345124111890967315954750849841613525934361439033401157016186503958079844857265953527085117381753722350193412104095920305667342688814290695548197412839895108806857108557598285355608286827186202092896207923500480350504481799695768120832360943367495654284848835867298905056571088505947085631178606184328789610187650739971631202092505847778045835358787681669880699048342557888293357830720765206482581896753746924484427338455070128449896994564208838143147198785979246304497763959244515668465787691656672263432159226834204390641628607820684409750412260695686413706504371504305385608091173570070411327496456326634298902532642481848837953217569537006455351133938708738701159010864224683864466880722735261591875413048879521999760226519680477259767048084073234905740139818622623440158132395266082451156385485965561147335686033603417476119628384767566677075828405736394957240030028701979069740991629209806933848308997820702792612730321072089766751951773392982650192730887163450841985036755536298526171211193982218212206832580183493847706980685344241659929304851292078928408840947482668559081048271443091455502791721096282257002274865032242801182045387858754873924643245584604358083580498638174576146168228755396136495361095666232571845404046605741657221694039650997011794470016083779517432815354910299809012706296050491641734424780807618459312168596658121394294249793341277295045666203277422708248215552966226156652052218180195943842383149679430791581711547717564823055856589591367904157778973063795262020710898114373647490258674646868392627764736148468488898704835887108981581876914386368505759732524939112725367649000718260321369427270559740605414586942070679501589438017795763544299048451854156568275098193586373813132386743687003222292977578891604611071167782136936630535941567090469069381899129309051729496752585594303294671261332628521559234630087105919881140870670701024313504863424553799689891691564221171253867843080600563456117549856537344882818626409828241370089810152001665877187876745662790680950546671593321973369283758005234466400787625264791100257552595284234157655073788131164341593998959875320471297332231582081855080490748365175327465382989428501683705594980656069144051294736779167281555336741717763024065112591261024960510454014105751897234254554740826963586476278572205796864633758340163000347306696234251084288406070239762680951548588855922372263976295183542680102442982002642133866276989137564284388019080611670953254788498962337877575071866314263124074790231584520705191379762208717308097812917041219955772342080408850497535647218189508666572829941170947790838448395347378690332415836888186828215985639233695309273149591932255222022814508603764749844800930057723907738636864326943057602265536856849002171139789134210173076683485118630922956435279566683569826187560560144899398078339981037449675991483899752434603685939535977902901008580636384880830431783626992461832999505721500785271665700424458649433875005357980723672660160031114732972441515183943794343980468872641346523946075075620100736522150738670697280092064534327372119846323300654484989516045041791445550980295598807257469463224354824802783800693557257014382636906830349577483115810983653318026761832276842658726596319538951684166565262743337470431397369922928786758461641769510341563874192990208809975542280338137746945349049180457947907336715143402638172449330901657264087217167133292357694313030563946006603179848209679341634208017468159232326713818395687623400993560958788948195534908897829516545608588405007058501349609955591102570376295875339469169927819667285618179283209754929160104342115292501079897748303006381389076046541941853801209418275602492530523535077216000708190002319929513348143337865908337537801456079840835104682455969714452454997933679648005255717954205194500028118555941581555426466114347451613684423922709653237798617295641686950929695185892151966082125469334717000874392791880941389106051995967464303058691819510971469793914863911955339434674484511065617921702647173968156494234936769226862101736176279514156182367301963854122843461034792750416561296835559322829654426071742771722778471414175397160828612004606732551662550021486189248135501947190857842150558295887095744841371235258538778861359107986986429117642116129424752699043758976590984718243053109102758548462091838264633532707838565632714287075000978801971951255750241616900342554020756549214435696439554659859695221950100514042585278672179414810550982201595979361124191784281279365784457617805342858128958696738149477853364329926875740513490739205400283214064197835989685017459233395273389521721125097396937918842979378997259117667101646972468346992872919071696565291916232264981921349309219587855498026332089254803566828314791057516407938003849539967828483297259459083693024989155719167020122288877559590269724616266313312786315098011181398428295973640411112585131524061887462860327558614185131185860717724117429977236614504970556522269701028622611646321646829411929308817892604690197779685256277303496274545449668574076554628248843606174421111191482827771798323841875461759297443345035583876973885966208770714070023183400836134610526523600126187578593818229321630126656613163811859634226246820812426693717115468132099613765064698091391660250503779627115893246080487302660834092435700900885896912959186430695003098545743415867136364223743194232595070634525415427295790116473321926704353627540750148615253659062518869759192795938226157574668301783083033140172718306395153767553869785289678642392725387485390736788133258508325453628147979107568226525558930987134744604705173297961898414383950625151444478218147587007295904741414796555129081334214266523437151102865410106118709167672288040694850306845104456888381770833878213755352502934532221927333914529748538485789734544682830439696481242967365731099814310525227464470239816329776838963382785209074894360866063348277468408717453229826664877685054469491890477428703739412228447877382180478423682859719610359474009009119955549294346438207519830217492122554283225895476426869353564612417507561275463413907064080124759577066443979090882878748712653945266572604486222500691264244352894588797403331368333765450671257204200672147143033317079923086640920232310789873922081562155258973715875212206544238109090700420509582650427083372365365416180235848956236120281487638492964173750276648383823409581698129475184109572614563722516668945617261680804840668436604643310898541309587983450236231222629134060619903526690705370643767871480281908052154956355942478397558026391408168570857789215293140864731568517680474929308934534066917504814362290776793140458435635316169761543763522282474082623238195035451053468315044731759555258225616388849027602917309651147728907491104178090687525800627225186677230366745627866503469892989593990188300573598301258815492345866823840709379017306701507693088848834960264275244279179288423486861648336329214825860323005097984064943832934236918937477760903375992395840927293378569502804336950771760369392742233607413193521952614794756891762185817460059300950735892996397432169255839652236549687241679523846977299160486746384416927580766935800759366841287383213304338753454436784842443275508370741722419729747959386155002215864259070615335262450837281794616875454965789287468067992604758237996108079868171605929928962006007531561218657992862329994105347355598852952935899858312059037433373958144479225796476489979505126336665830495288387080197152395491448278776842349098352439871758812149563471023812597415559942060993448073790222194491942591784446386489889604379301180958543340631579532560848448228201325641623182486592445468121539087069567917022688638932084598928215033353011607092155416470857026843395581489983738306764589257110964145458859937169004044856785225792990317848076803834658254200160781889133244959057562472402937545811194651277646694768408832157082463344748922622377570074219598294398109373939921429814492218022469242742992585212591329162491074778656221075157053521375970115912974731286122504223992627122955233492784996911549425261766971944007313289226404826491557208655884839675734499714672019187375916178873710393225334938158832416342704765737733008796451088714944921763724309041442761224254364662541612407127490692479459497869210444880160716688270013920654697855221263883263285302585228857432766949518647451184059848988809427984687323602907960958995877760266584357896744987044991158140839554321806662678175188795776931812821181015421660313796106445599420445306216914021486297006864424127410719516862806474289551139137970358543009089129527008433003350678235853711409542761280247340398009614608695207614493582663774906717863826957448690392923296286328372829995986912652566788812692453198357884778252095981514166499639746397793766807118351539182378657067638231542362128434135477121517393525817546605491340474529579421239935689257303470455041300814451415311592249838000904151867557303186692003170486385293704058384328998543676664227707165300173108451199857511229538332015214845235830578967068657709652028172571119987272506459818422472743834818912239689631343413015093489982052192728463868495355067264046479852568892687386666498892370510208002240284832517576457308336283132579749417389281525835869281350172710377425330782044878085484516166631014826702678661990305118075585268231245461072709087745948070395293588057049413939128924319369492233177025454998198092337662894572521214794452630034600542805748578770605706001949237181990439851038141812196307083014466424557408886737847262278304348137001320448478804900509860792629988472690179363482890155417842578842955322879265286445132171062936478797221340302433934153491540454093068463169199225955580045674782577351179538479046074357616595021873477620555379291308745519038343188355549115748793682413931121110603909046630279703803542608128128294966629800997688423757968600125105980020953090579698930724962059904455597767889581133544583378515047540104554176795995848074718588944471852142891484919936802184814287898562867683103685529397479027920124017384695153698301009420239293756964917075694896871713008322514436590469114183338243763090623993108908186707651797569639503136966064717343816932352227524288870866729800166304772506274163644011648908030253695087347873150118375323740487535980597455666089122552803305399285842025747050677323606786764874917054116824183317258898624800436820306219144988513347183805956074340486239009886638537535398795025459599314350941455878568597695299750516565014541481946784451821668018747810982490786129532355693538475995091871410465359939298449516576435039052401364671699215773507307899253297721695071317775981262451510073086535945943396205993380232794860161473033051838107137290898117108448265062084462995800272664905660256797022580004649232777530365289517148288954259956986566188318531550634181294585097256700041174239782778991936035971020325179088594790084010245550467755428153416001997831358610662480108079968316789190395850171644142066495745358373718229565220588392384792584759049713800403969558003453921787517477902703365980597924246957460994592718216548936826461709921205782323225373352790590814593498950384407281319974674340514038603052406660091815893707275171649393182318138391279335647389352357105412597793075052887628498725563745073943017083839170362469558797761405992392160975734968062153724334388038336963238489383623343131220398778774501984603604918701054434200332486453216086147762003044008184322051466276698921352932564068997534499413448807593393130251982601659682766244421128968672199859456977317916835952933350642937517599487461435050292999381743845983333053168241930097172200838884619112015293984882922977740670995416089182140666582046833755189495255243640077385647504335288494992368290501944184832146457856344057040661113578225469339182344665819517830820550237866696352267309307947102749831864706039010016680394694755711018887985914840487875688293039320047887597250302417890947974467197626893177532251820068724250871451000181684249134153200783476257587333684920296411426319075983060113229808001771951779139014411681028979781514201821063282457862297888510992578466925957337871122358376569500329145092589855002729344656393225434394231558472245272138553718438423511253428683155183432591520480403253217962914998531951682933235609978245350253554864928777702775796652921155471147376430386027218809672283106840153705719143837218165878858958308561417148144426348982505009948420158177547684488979184935464828558541911464551419606975520946873435833060933167614221047068062352808702727968466551135136482254498183290529526103083922534739388371831468053544622187172543233835745344798921682133681170035665804806878562358804804104543240193607471592583371488037033056364211004869907967962004620572348926858206623584237001660385970747139405178982642088819849930695693441191729736837890117865155198724559187553125141375339415397884291005161309953095092850829564385312807026398423700573086184169838864741306917856911854335259123175010871384195478590156223968393386769794274852369456972870216422431007510992594311750648482177088458628362812069110006779226881306644737791195224172805208273066711946194479553002479017890551659474695557313670424267313193699059681177164895567870967429226342847430764378042357172765184574336990642533350548953610919429813613564889417556153963542245769944309109721350912635555472499139622376802619970800145579795931909402800980554241824620506142678256625248848329221658131559382174773938677851767003775001370331986259671571951146816893810576067078549742987661864324512633678448437504452483364097293158628628229945271729247850333059126669907126384145841095710203261555635046867629674165562750973998136197285899052787132402882207678328013222888077889840094604046465800099637872145102610090785488964630057394616115932833427349533426899769354571112532937918298051659733425825084831952478524414837571018479908190591287083677849080579028114242015521366836414503931735812358667145895971649392715040486473418291157274328041244586285126745211180526947906924396148365236709899357232048961173919417281835238596955245784436731684658453977415511430590036346777316210066341326466694486624308058496332154894693749905949313482626587688164140297647153453791686289100511874977481562561863022563992244643885945587495177355242269060612164569097328051054712835493941397666364437509649492933207661351337056209572329304174879856294600418756592707054645260872941950630299521152912063928838017487051497948642678759464888903320565407626044767267633021349286723318528678896693150036015928794246909018395099144172635845501470745324797816852399428951356145694628257543810262967303596787881744855699088855473271026402570112257432820421995932003604712844277408655717412077598773653594812742572436380865514468642978502921942773558258179540214253157466297447782794569308575144189934616864318374068394834406136291582620231967299978018100156687502987896328342153998890576367627000539901957790229342588962506228688123808018804047785848721673330147573384174026437409375183099488107660150642396871130662314140304227248175851044386298902866544774465449913615852737101142337820429296872082675514926752202552660122809575300926926332547275059125524893721770998746739674250843304415838549480993528905217368973725134248485618854153508867515540972865339768751554634141503459408944131515934887761661680199925001365981480057585644504264990092324595688670892537583897933971211657415019474486615619459623636365852007278654409998177300461194730355095959336327794612624062803064588952240333524641965701442674765094248926187550099485230796005382356120994083385897032231674176106210701834344611331353395042915182924635110925594790905138851422805075249754778709066821396118483615294440137113247046015605125527210856701414007122142926526561567019636868814099682303801887590361024289200626778172001554279609598952982207699572537126592292379915867769709507544808375559364096350126990641085064590118111106119271095463494002550847892436178204101783039731785925509522170909851876361113650674055165341976058293418827634080892645254343586454370378565418338072919761869475378924838260382537540171419423898182806646887839348041705083670312403949238865321822045958217951031323757558778961126643875790563949527946333788344281687998246919362303738234819471230605998658508295868164703414384674775152079880202621197641797539075885115188171506223679053457157762111257923700190469919918309550335761821050922555293173815175235976975790016585514176707768854237313226872311367892027922845419590377534170825256084899263613035971406710142326308138802931250167833564015444922572539945645871380796791814270016374283558100922465802374591609171364157450474773694293896420504885803203825077073301733727397151899409608554465843506749282214177593202496153866724705769666021753292549685819311385919406782094271707102611576468218989527582570499872864619313474364896502977267552193235202340591453571787185842012355508000351698112327242722034115093534464156679077751304786544197588310763831842285085898232666239372187234335483066561238963170372735228291852059890423709217794825956268441415882666926114336688504918551540636462553249184943661718203811040382786821033935525125584703893546977301234427754634107728808144538973380318723892759322411227014923980682356568364960435818556795924930607570594478660376292036701844817040437406006086673377706817428242307516056144961156480014850766420550047502319919010315584584548982754273501657807983054713607245506989069249455475278066917621890864424751743300239856831458891743205950179986875906679440227572550476153040445719659658498915372507395894956697270464518968931496606616445957414656036247837163805765078918205378637699511322960104249792156766250285844085811989227874544759751506954733023793805512847605154051560611850758902411555095054728222974319817443493290208599943004368688888942043292604070998877967158402322841935848796473097968302433713443071053759227934669154347332961674245831112493252596626340580393309464293025420191244689528637091100752412411754945113368070565009412590333493699041132677967673078497165329678817753566596029391571389136569625788987704153925996686783951379765399753153915884618349462615899296082838072707050260948018861459866901651682274472480613078795079248574686982926348728931886316714036245888328149483421006213738602457684553646876500960324974638734654197327069390970584323857347306163452613286126475631934507580482764850094096938583874235113781239324651839023545661440164993186895646358509900870496978747759854378355991538551003246088922644551875641358974837858733234300047025596475236925586897171282811860914216920440785985645999815941890543740332693691926646667478149845560404965383433873506205368378841268385356149194230085540951991879207936745930985487021601791605500530079415868761667307282670642182511812725236559549876390602863863142659400789981535383520998838137211992253232096260783676188039555885255270178137189641918546000494791386785189506933941567347661846329314899680465602968350913850228936025278475851503875537397407350884949250776777440492114512383206058595678262655149463866643690176561919569351454341919155115284835527027353280714095849701920658394579868438290965044794299482794646387762441950685431906476581663219702353410700091905456513753089987935454719770693984217807203967120094123891833016846259495646309396117089591954087959902435692443041286781061806755436691205566203176951826434671496594574296576812100803453198029851400751247379532021636891711548408853364061229869549453206524442822074641070766114529524147443817524970295221345774168859889292189384888779496668349814457804730950057932376006300327857713375408667553332108704311105340407260691569160132496282118627961645310309253276142999747459007611031302292995277997690580056374505162579209800135227564087608082612812810315288660809981386703712565830178326892553659384721686304396591024499291349716891394298609045522308333320344052144019567341963169535409556233784782093617764749045081548407773771902713264121269086422367994411889003161042534004659969984452229099700806058371683918647631857977207982705202039421054746211928215068229168897892733941415770314985574174672132641294723239021401618252443882843815805023597875055718026117661745786552997586740816886378828379485072114670937854601784118065470748671159778649355679336007804960237431044558392444411263910639375723151528014381331907696966315842200034652415225821849592181036001197411664841868917683687329541030138172435255540325377250466405035194363491963407746513953400714077196946375618595867140237234238689210296480586039960719021253992690771423344431285673078788278656323851245842063440195972052524501975879294338452671389273695723637962052308325217941155025268347970670306526042615860514239745039375564044768497106409915054484747188811082081484931720073735764751299176182059360446269989768657257604441661545800758592692435487637933601645442311272354750675434209805250528121602289477149752360980186179302266019756595262807842954541234907043725015407953140081462104771240525917668123529800120682850004484944875183712673827626170174745779931241092201659039519758181471711847952034153786945575432908918411369364559910857040206560406564053814060339269406138833605663385511131290248771696246747692732271708981375815851502870840431348813833270801440440108925779217525512657889884291493419121844675643879255585974326311658295159438529855783426977536704293141200180526646603118207672107126048012564198806856295038199197639535304087617600794591889930741552459585088938750721279231693948251753596953563091409534178585868971099945513585386576981655395784535023662866110430475241448999223694693309389428355326079129826438652696635161377557825401732642078226044962474203736820140893366215221379457007618978150102257180587331780263492715292254848214561772098466797942410524769493833083566751297117885606175519821772981159875024271018657174167535603761667564981809385898270891840506463325785228957343308353943994680876227269474919894014137798852039629618812136938535610612731227844314805302783258153349929042116167791448168294407708345759527440498012648489276809324600995643216736584653266913898421421563575680745200377219645420295915272855961627567397990124483881793995075258006142146546629029853811209487696152838943389007507796772889823589019329985437290504014182351672690964352709570600378397602377408338755894893759229463925201985406012972379281431004911771312087964668266333766803075126879981870072708649589574801665015172595344696362654554061036825020760515401067969675744588133435076507507959938464984126822838476215630239357829228294873794422572516886876360866679176387301147835330551122078162898103478325351755500980091178045291150718167621730330292786418712418255210120310221955440207657909480595311867430314503119274185371108202156803594275899977262485829723201915288506772755618558324965780133309567715943432348830310532373803856714857170989912587449071302736471515365115461033438044573598749293373945963764346282958433319517228207507664825398603931507021166091115249938774621975999116068108370338223411211927840324229832778220281388686594630794867263794805678986308686799757242896676868553170622406356666667586773758651438924517848077156612876218863320970996477321211446818110400114184808533639363732576527191761830815659368409672480482925376948350676995133460430308832919067333125943838833234215275345292910985771776896881211735578123040498444681499835409775875353432820984716680149398929475653977731995920138850753923568730758583210600785433686578770351749379101654368428072048507737430536778676938792679213915928411492132206719412631695118789920196467157751516905455113442166248407926561906267208114504612134572879226173452815612415323427359277100611985633083443926381659722125205451551930627820687845126938755261490352880302006869752688469531384930553851449732582924535196333344942195058355246477325285593849516307787974404527528020227383045232263019687356536321421067026595841421574265553790965296301437183663798952769548815699383418861209532428342131473682127743228245052948689315075187598717004406324230038256878988520894937906198030985408339535368172514202303538618661954539684706554264497938804936117609044055904384913783233514695088678076715091845136595846604457212693044542049143838291734635698214241236894101286291984011093955386828787704161081139250319372254186924253403571123107143772614190279209317988980330499606959730594196455354675127790435241978817565882921809654488065081391250506892047861984165341319531029889932597373977518643187084831181297693479543341764464374453738986171644398408893138286212617815958316066606086585248416704734161649261583824793226689039489937946212848541916660065886424964840594722542159497529720190617638868168290280918327680529492709754888568924202593471232974667546064273755872910223723843486237644981437531336013963749944221588996738818380090620240730962221098136402458035883368293328070634900720305065440028693577629707437255327533661007474448016624306652356243274894163337651379231419562828573529560706046826914115386362262186201260890393455832984917563492636858288234691048481132775624542085388325835806137742763923413449707314268243995267960463191337817471785263151303364162875647188038565442531749148853797713994187327987524823947154129505344255978435109658250444295837308637740197575723728881653534090173538076337569372052331198911621936508487435521964027906063863882296583735785603212312191305647948911447510711783300309315943242340261513963539629725684091732819594156221256659299174207191456865309034262699438250730829749903623112218202920408759211242493504779733704564395097243211800738645184670015714796553869313146094385218517307578458085480302529767213892552346971546233516273969519697777269104429203493532553932828127404819426132821010314106567926283697604845736016088206641563781532883131519879511854944831622917568471059617362538466143952755723551430557691578840110177625898058391039971989642308744726124129664010557200412841847401920033761735401351223917573432114211007337585409174191098626612461626235125601111906952347979417240483298338008590593356794807711438397428278449300930932294658455012234807998281923567896027637279319893928758091407530812258064215330758006780803855492095628959382640105961383266300825133128203150497778180250996689239059018700044407645260773741351050292225635528782994072320728960246263087891152952446422896040175768217540327733301692401327273364737939838082275476845482777068966290762962870331964016941719904362523780357699938732135351905070166100513342225661176012260513285078535181853765899890676169614666329714207517013512409052767147957610886183823028282645140259901005946016481838745798164021948714576690106141130015273056981955944949853566727676862266441567719556288942624540459772711563173767861787805655669141802369949673721558876711740431643723005282866083064762194237376812276301551726678268301140117691108219774949724979826553347479688573836843733048184557498471167597267439164624295221097247887143647799274472002827733151948186924260225542050020298360001724141624918397038917186710900234485847221438624274716293762029167292428185194251263749656218113163426612474359093099782745873681050106439122184687594989625763572773302242804492157091922650718326918881130489172496813263200038483304993227039420338961536870037078181432227781604827787703414938807352594199753617225638988552225121429038431313140548871388500797008543156409685193888335217086918581278811831505022425845520041010477237266698832975382284561161504138424216179814207997331492485633371399593966621872118063883405034126578269538606661558888691209983873439333662458358574764022589800331452007875344614797951639372064595748677000845770443888767991891682268159763505470598663138092861306475492673195410858007412708213656267276835611949078300840247250073767493154388019201745580072755338367961774504351198537004939507032385527844494915511824700430116479392558838527157211424198081697283731403903495241044834885491442128691603106288012409297823726490662663777851492502130773736846395005260662195427194850476737869235927157280925491992401507861921804563253194027034450509329031958686769127001891412962317469859267742941343476506917317026904574748565707382772920218150072301821075945165980746847190112819559964521656789158615916532932321251722365086522873188986040313079491749932693814271538227553288643214598049407075296073680926294239042040936680718141854019906241652554101729213482580360700401800874638228901224718444252063835255936364967029933675784400472843304804962449288458462441018385693658716683222808989269587106210936886737180874313127317380008431322982307716283460663056160225183902197237652736832180445958269123916277733438269100788434655884004862364286008958349142363603015482841864812741421248361803382566497558537253772716143106976578212676282223470534931378791705009612065422009898268057533076018327000673183956271554285650486051319833438497916530797185422633434067912680507546041140436437364881133359069214758493490263498750864879065057831155238481552728044444128621030595972401835755822217931780372260617938509936974327370979044330154037178007047190665878701816019106599995745481171354437683503558541198484496085601692498042819145296625168632402299555090747951157026688488845699954043203286468066125334151797257345266776189052911853899568668154131712834248438965573195106627425704157249482256445634797230528449405444644799884397969287482360185571318921631630399692486437165223282008478433335632468969644705795692906883894897258144360808309709105671568076283471106465689895994009479662480120211584908456456719343475335077878634404258958748710935067652855566122013501890955845644919935067117907603390120896645630647323313331913358353549658895021243277922304043359291488007544194950630802661310605400364259428348541225175153605411954065307010715795434762483370910503099833834752818958721906338493302815246565078092995142592110978803986562603301168381875726258770524419090004551504002860997121441367102305169859806304099088069601614734876030135401960283492175642296252991933594866861120918284187012230463930965310583767686966558165630097641432740464247266226035190619682340348630394322722079817600049375366689316687452235678804068514743959967877082183157334986376495173974121082461791875450485600964266263842880669467359885787027010454423625137967887777005585037152475344800488220601349707002537357818124974396961074386878382873375867560483088578399764550888123896574076954216968326319729476779282912712157884521706098204459985831371513246009145500173185823466109043898179407943466448178179667755562643189114627971957582387316721558918468967444003571344481416133917537385750654748497477327642257889325018697557124343581403456030253549296403078403908063174094535096119244773569443478658167237240319811716567607116900742467111243875423995554254150220682349579732689598517545657270189586229009253957777048683229410267955772800040202369484404016119917612196049017864673921903448696070285014485299602116625043588908947298393721511601026612218262811908736341595016503638703654073713316590913029353959178431981117029661695526020782070690518830395152536945526988976405544095862818859092625376218428805657819538664671682817440684223041211536613441496528581340180418742003551013649704304140969341968127946710009025514716008976303560275478032276197411806612500464558790364310886789590220701988100255939907335011374190165309518566192561821228842275936320007268542284075353638882894923184587410087502154916455630403115006566673396919569954901829181643824116319343035603701962927205237210265858091939836500376717264766057988015341958729737727036606055662278751977659014174285910887510061220948474960339106818962396621803720448151465094433525568331147467476731402374465439709222270885464618940381857060942150522828997596491006180482432041723899405239392503203053619516577877567418131223548314360687139100309081481131279825704456116702424677097652716305247243261774740052776577221464178941081215842083367257841544894698163711708259219798100093855038891840210410383951244687921545721215040167523778103436867610195270906940348114431520441528129846378631729973468275362154002556246616395909013212132481751096365723715948883381895786116728571233945805896567602880118157066493564605222289263216083687741858240879301356157564947564987008691212746392665564171026786157009863915251891188975290357651242610034901139170559154479785680777403880395801821962059964486962842977905512860097409882015553500066872236823670435814998045081126314587131368153664160084354253657243591056517384683374232354453566266388173188124498483960660667732932194986893603904414613139893971021669769535381600446353970422373696897965228725098179544397026897954617414989692334303129016809083287539899258869549739876349497077732884760154104048964724235758998755469694724984680818933207721928930449994905418924897845587982208240128060929070395362652925365685780560501399236053603441665041920411708517081836544157769185207083212192700688873348188098286862074443325955018909559147337367762896568346371644316170953253448753079741706527885904372620941152202241892269827837469886562874311410805073828805119067839419185166110211212478739998887254516577192753482888773368623848762861674883681316744321272159603852822195433526824304764901266970745985844240327190388808009726861734511920231243725107092474311885513476103445144473108319657208396795656085753146713541910687856549038191119216593004896995897740632193746832052487551158139841973027619317021340158829649614577780764794300529583485158282146179302699893156332709566705214924205045840146460529786991095161063418918893868703151137047423889923262330666320757460946715729210730909551690495149700380447381710729119151992289329186300492699073337720650754612516920965459653784626992721677049869713125508601523724139020445273558236061458900881933740524898222081657439697465688966421388894938983546414392594149332809026873535621992245791573529834947258190692216932534192008015853865945958441014950957676157345100445611543692113194515567064847400354378096630772246177876931371581403617219087735217551405506963171171258700910798671188929137029184775955038558315576547178644829588719009291750674863174727747029066188358943085583342292269360154892148614979189643194098373170183137472780358566450474134751620843323276187295326244031090688452906626672835781438803390228168458881090331327594222841236708891194412415717434006725670613997256758186928016962462876679695981612705028493032113471324919296232478562163297911082582783457306013430394272661021436857067606254514057999752090781360321975981532513210911875377221766132271726274898945434741641855155397501375411871240249692448264670064173743110210374908332703168511129743242753639977839690377646753352057321888146941856086216231674165908185441294501634483949190021871464692850439885651169627752847712530423057982047082878974538853649275091952855015031345028059871453219475830690082017638722016022888884240904883810511885098092070280437184491547193553389531084189047726119373620111024096961560943096521575321859554988400904528177509283520620909769119585921498470887365147027802300475166477937384367066558213083089800089793857570362386431935610198465760935982742089551182159269791001249684947360715739606742778953176480475184442404967511831960789080497724563482027379252309500738326384657977679115134031975793205791822471743433671026727482626211967550572772372447597490934830200354416098916306457813514327001880164249678942997212028159169069865389697049430570329533106158429779463108918761691901895999512335727856767102933955098046838350013845374887838959695266459296019707813443922196018480111594899079948837850766493586075457743971296434086326636981661809105959501534409120814776435791006100270595288512830716841355874734139239162434028964913740380747479470220756081418453360765475265379431358446792568935914588720177899098680643418184783628154117475324784397920988822013998011367227868348786307037573679101636697485210737024136372575882488121491370951760114373724597720435883864417576859525497289235106592617326825758025236289070561454372675473424102512716998263142918453384486582042304116491727915028613281590270442190695995480018278163681967232856634460199512390111745952240049988653626196898146788852438522702851826234687314968750950725186620079941666382648691812376822833861602959218296884670458655025518396627942641468070155727901829054219999704871725096956369617562782761778963177785284844681847376182662752184864334915251586290395305345554093534971247529824346160097122584013566535460924944721013775785660740458390612979744594899924481036381749317755038477062360713078201839781716281770088809406456515941781557656349570139608945752890958063849415097237979285638486514240955832320486574839527765362418210412901807619167427885425058120063033929734518249667557375638271821565842896160228500032742159591001854089994371600282805628290664862632737233588262827243437054671035896803694848536647412767690356052553907499656132959316939367231719151754509631913978873508613495260941452414397901227975441560169029337870365453705485539466775462617165565022513088546148795529445065329165039460438502191553257325885410693889584739081080592550979060350978583634270307685384313508078542722062473367775738771466408381739852184377582440407295435418336161096037385378324943976132482374416323588314029864787131252707061111986115667405295529084816768231970720038203319676953963383693201502461077228378378056098837571387152823431965692434973823704297307950327591645319556373875519416437737330716846996849404762982076662357178637779311464238118560668025914864079668002243806177482183212299299970539140458537034816627385333806563741246455022575265046304098549797656893727364877261700482383891091004617983477244181071996094135270212698854709108333697896028886284047511748085849478665745743584655812306880113940067108272853298678319155916163610996056910873628007146634937276634272148112546501736758171352891235075566685368120496162514185269399650402275022234386786572624777916192643513285668951856902985901718923524529017313177599343362413629128422090093021472080443760129922250742629265160740575821284279865410334383545845864219855499681633172733757507647823763113350195327711098715318532672674863295196159929199042787219832485260169153215859493147914657776027347724183808165425995143850931465756218323383935376841694814496534836000827442186244092866961674472219235372738744402968499180711842366609925529928184475869809695509768805681701570405653019397680224668087475608998127764410761446724026020293387444671862425463385729872651569018970408431791138747996670122063554525714706249691293254610663459140631490085465260972267857147451282680141036420828290239356480364570644897734633892477303073973921215940951018669380988889664329651921840753410759369381828018645372801772400423020844497377650536173670379143633814801706077820043649544210615441537889378345485299248268519835137178254747372555478120518428366031289897161312018935630169003981891531867204901862518789810897794681472505063884534741982444060437562881175749416353838196016963721697262856369554478814967426721782520516439337574179139016565077987976840033415438675586763599627298589830689227620101221116401629681686555505882720736209227515020234926718058835094743704837609557149677266478207342970059623261973000911849286769974923470447032139590656490253678588177249588186449054095275404770689882328137747275319953412604273429417493954837253034678648412433926631084205238812647901491238138517148248214935568101006995629475948564766689397379745370266728485403566020455019039739902495138952900394004862297154171612875481725530279975267677332020625821445648982549342971395990941259138959928493436471296416048493072812075701650830449413823808717321086217918109118637850606432380001558864111566985767976395697279168001754343683970934082217312703072516536883481937638320012616139293787995652186145255881870006990415779932871849738560916114767177914011437250568192266667574259510402297583591178505699518960733774840316815011932728759047411992779457327929826839295156957193841553943547216642724738687497571695343339721051212063708998475973952384686828685321009302217716686066623412727365519487841388165214388094183406644459214108338054066209427306789462908803587928078575998244408432502790931451737581378836862109682293603260697072705254665228237643620250076184954590524056543355847829400999464709579450250780076263135809166728068109740081326958966672304386745523732904042195914496193242732386879505606416580355826536525677395419013027244781131034487032479311889715765385993306539020018359783272992011202764807097584627367507284789905411761644957405863494979930714992218754652348714809775664918658664290741755508186631261743377171766602122571139298926018983065207123798125878539610392274288063971566749326600443413666667713092413565802095930957195462573376230026643323587224679477728696980650972009473832293427657069988880934738326386186903151771367307091877053695587422983867600416644353779652402208131147147228462378303665783714313406413111503305875056841024158163760660427998713442624473603750783228263875168300546479383075074470738104873497460771186916659269198752361077939107820522611500025148728987043781538998602092367322600302136426736114711297907470175534996951531007262599853891223422642364261994047834455119179987359580943557553852092908051012459376513654274422135295387425257461569614843011935162654169899056361958054373956296949580608393253840946113794918263169118254807334470965929512038291412060887210573635628326266337204097526093340575752467320528210933441919185187192596437056992023518857037428648230060475945550682902123191287717447473433132244688629369986066483107705027362072884607361419568865208159226834917579609399448932879816954694843420491184280762629487937049087295679094650874150008612334007970382631416597591858247360749641256235639867272781523874654420339492131207560123172789344443283586809533867523470508072876773040710176833236077636034227116264097283407329262403055192129669857178835936264178430103384043089296787283163412306767734571400555257647105498997978154590392878861263244810986504198601752050473303334792659461069118773828916585202025534032936045266534588836741439887313363383114533976362166321408558994638495746268786132932289096668883199647988921344169654237105702504858614627648473470288278008628699450536834859584213130517908208582880817296360732791958742442306388624312496635733632709056878318647447413938917083784602606824870677064732214419987286427214719023855493611478596417522656427780406828203867071669158103365060785944248276212142273036412612394797453226871764769133447095687900950813731847954222989565154956401098157586792420936029833793037246726592394103643744394130171867816559984523333085271014304363303654155116843387658909773640004240226923192116808181148964851863379256196048427430533370036988773512077904730804829979200831965625730619303255676394921891279721318791077001427932221344608440286340171104434034974529961514800049023757609283849207910688902894965601894985696646072902936604613528889858661036327153488080439902648555629090891807391905304187902117536310503830253535672419713665208256747273071234460834554616377629682049731490686516925703253433635495203912235809804141882966808360062665594130755771241215933986874823348596223298169634971891491512721167861608693282862172208923128635257191560579135218085184254474498361516886252273457077984049833127572098674919485229303099446339784578233880519637699129319069099096688493313865894854286541183994237170442690378849551922493845832588165961832043394164863700420607554213177154572952043395875018075896605295660201535013535431655798778987613638501966258680958163146738468101805990526024424376592704888490199747744960983570123626828117589009127317012710557145583070528196831714075571085242291217272249678185450895328654638316781690676671555757370841776668596559731632051929921407617551913963349020120930003010420082210834734122304814438921778143978259700882275826636983169311407421014804856121545389675059431882779845999199094197374493085807775123657138155567639093251426139921130869004118830296825255611004439659875551193790060960424322701304292645042484332666229068732794857903475755294641220108943898348560281295609851701447737941248882062704961066423594335296588180923262305844830895139491024964272858269341923971374495084352010207719879976057266739906846280762207453907519857924518469412305416191879059809560641902073957011076477923845345533049680795012793393357377199932990381048933892001436126498064886739031884775680629373486277946300377526732121782322246422326087194418610628587970851653560063858368370090461417464768407622148882710806792388297800102130185299345218489871406466457531649545355017688167784991399208356231804370898258626141265599755934961920705763191277885597954508053521721790104225656884828046317570206786540835723339655149799097142576696197043308981093526761228263165356159204466739163794253116029112112382202006956245940636763706750802994744504571523509325338481264581040396840308553018271758980397582320236878923489383001196415471940966068260562745583445115961293230613273278313152750474035112920582483572043854388747579677144694902145925029446678314957233113591900236054235090125686526186608606244706307709051804350611292800062237498666724802201254040285357113598736838198689201913765372456862651103374245777338037590624190221544458066514369788972282892062908051369948022758056599750946539681041239909166152067398028491153328547868837349886412967500804112386242833220932732131429422781695996074219947947519428166872987698623851869302760102592218432438240972750587325429508629101114775457352797466832161535109721833788697781892348028491288757677107349481786827899236866807877355610730583173638397143082813315744506962253539397198320373136528125523274770712433884307909058433243577294458394551283069911463033869704809783373609254186279553722121161834755315361684290892186232745640243797591798513359473350667316180664920292255314878932085240603754098155992470815312973840970585792475316905453603391166454084484809241234446222314299867889582428756812983645036093735177865566080542172975388257372878175077993462006959565940726965812665612118341039503756068020437015938684871613762775941544519542705294418512502751512583246622208075743781399219570750504415215335627087295256674150909136242033989082013064072827067726164148843869946528707659830836541905123021241971085326518271063429710593943704488913991752783269955424017798471488831425596641731518600602641506385001383611867314436002419392684603468408174680813054308636931818912319045178783165805576675265824726337758495853251511020481141173660703262203670609241790049161604930098107824581162494668480265265809622243549466482418923707361983702792759401004547365679774261584533393816491097474937522624513898736663509797023942903047940674343823795667273202576143735536542528463049039495848447460683600255897700975718066096666061160444533594787186580175112240455838601905216748657869469706695091840166091170885386467614413287464068848620224086071072410309448602916400500549669446352468447596171292392240228350035511090748766776463149468201458196645231960480454877599544790050014681177539895786551440410119741185782737556220539650558951327549693354831029595496857976696740396635544282894467056079897710141571656321267953959766097152067173423030549635375614985821686743493231925709528589154987825263079656786258073020299283668250835681080979730945516490308333752837065419614799450792783431115119076604659934260681025553865958213315569896781058159085615265662905976772249023933143630450240095970708544819894550339711091302038979145349779117621568402370770798568145293166438277417995711060863656062919270848400259108516186064191409047525425503937442402797430038250326860228470613716866004328765389177842737355112341582813497812712482883811203658245082643141122781787035535871306715879448994510029859040258730991648839168110248475768335324505202100786114343252635799219939944879786400211777678122563699787768529590802735745229082283171264910680452085460664851275381070838592993729405697349257987251758822021453955272166568498352919522839938171893098001165361133481322395073869683043324032179496246353662945545941213106450481535473999799325297720787547164059444688231778148156461042855163283676540953230860317010052673436298120143562580578783903682997732709322845926669935510866735358234568666754586794897252582735992011286864773949989141584252224865606950324898407793601182518173048302990774277998429267604766629067375063268093549722240561489070378219044603704320153990979084254126115541022156730000821324971989868540533338179360976438142860202424547570683915135299695986702591062689167313959433071822599595152877567257393648640337693275614134142817696536420354889350062428795393988506204157017000398562609932938555551440754106473588793869919719249721907853959340971245771024550141192102018402216863270471216009200277176287811607114199900688144160891026591671936040017221677652537452103152565859126253705795555693050417727085838725840101924182728321616488310460233322763271658559652227453284097020147888461415713069644996789568358900750333956086850184257580598536412518295530996267593957446825829734697811129730703392573717478138955717423344063956497056122324211245187103624817526744518889509889937124919905032812174089687147488260519477723092147862802442376488348598071768454514584806023297132992169035127476412781685713970087835028341729246601421926183618769176929944482674584394296823434550055627991453837868104082050935514887585803598600208893574531287259026501866572480188961137475196503660464586868623858958243131245913430423239770770084614876716238037012037110798716430372281798788148900412390504204513928432419710576034513497820842179332926461071273372027654652460130378186731979553425486845580164590681805122657768934124240833288089445797953577273839903950465675677211066825594507165168123638899606756100549227076101615513824563197029551893515125133032343389687065536083487547568666861811098090480551930048506495111037237657361158298140024499734795956135867551361811232828075097778968105849598273934245089187434667066038585474402873453145072575039557632664203946375154084102826972087153302369426527539596850554812087896481229534131517196411280546368842390227666254866261015490206438960095838943429288089416447973661678998964311325368732377257495980808106536046849963211662136374339960701977860897965059321500466820002392634084957000261021855943825582878153332892926223538692857078168647827450663683009404418915245458579090566536198252786713171293273296595232473440125282006368631349038892260824895148687854134660230389215354333345022523889820843731417153132943850014156558423411917965234341626125680255099886092025410269674005516667899047142475192905673633560118358752290005625351519495759493489107525449411801118360047565522482176523859927733561213442809542741453099906147112489605198676086340038809646785884415756758300668156691832996236369776102006387222560223718451484768801289684439388394146330926894278204873915921412811054162043778697165607597987715020689177408072836440472358929543609092383063438323702440119061923008432709964908497772100265424452700677564796415279929271747760315518893377933264605174646367284560629105597867728106809046445492344969928708830470209378967192558508973547817148542896059592326557950842768608808989477943458341502474704368343920900608069122794758310774768327083500351403739951168606014533526139872468013144995379817879145772834256121949372412715319874103820229574967570196127987780774867935470137668750967275926321046249928214838721390135192848325857159330667673318676160146169606271331999101277197704298159150609883267186097926002771932751447286491747837425457037039411463598040322012218090808191046704979110554736112638615790662070248330307967342029342033751909148488515773057566440531780582642510816429754351440040084536371737393511660356094573449878494115770554258756904255655896614024501748190116772003056360896636632328684211954779837113957669839440702788920052958816604100072552490675213620489192360474346252934596084401231552425450538848007169425183003435231442325641894856446954844799732418120853477914424244030765557645818959898901055918485692112080861265582243953314194411065492630521905613194381851869616291284998418171049959858812642415963477790611577297416942477172875154152398925847856737769011007692496075484751201928778895396139230892542520509703094400526726831355158423045904467864013589158693450940377883401092337816793625661261081597497675803529706194854022990560863748538685440618699516444547470511489589852978740496183073861832365522381831606474303302512929824704630264528581718675184161021758629907388680132242486545584870509272903247109934979549847074967100795966038790235070591240008082732174738716360339730698968305287918278343885481541793326425062075154002502593918384239020979893979125398263861619852574743869399703014164110629466737524670847446101196732098097449438143433987284873911430068256892981104382920646881413046258418641630288286398069347668959134975639546067138995708683071677312746510251336935795530639592706451199808123060569231022476051718696159344945545560361531204304736944995860490635348688583973795777399553653111584658651600370626850324447448745399202583631515208757889833392194909710382880568089552705409256936909292162374079758830386070216427421767764576045878722731003143332326937386589630613610423947719088331726513219997528999749623271146245502979814755049842144705641769028479297280338536776564869898157194810116260932179035341781257299622715749583904554737907293140840373050028495557140283630280016501769859854577681436628938149668660883066451619003533184380669176227028653499597618912712350918439386884187929175528911161681847835826361790724618315241862478585473758980034891072024528940715714645138921254120035651994587857840524923990795040504485999143066784507237338915177893586031416347343781572905275787512684064640290906639464393148499887049360332936568529037488891822921495088548369507669052508928969708778352224683934619915486104907097725274633890096781345480545728073061015250936795282039924474566973735742985990362267024028875674421793377670978533463110926996684115204337600429303862197677680040724348261800288224055287943707154515233986998495412193842950526021695665790407307368101869886783161663642171670535789029219369369936122455257546437404383682580967564593323654659891319972778434247837508711341802062251445465985816133093248105890108657868674016855294134203063396187638161648865766707917191100362166887014467739732747946472867295593432811732444961355713637557802408186068317019215052977321411364768037326158135061224913324285380644179320815155272473338643677430652656169120437291784450261186826782794910485743449359064559050312737129249214293756602176597773840585710591341866266047217109328985510926370274508830190951734808206604834940512026970596814657667185999785864325611144222516295084683452461911870070415981099665012023298292929270224941491830804300046983485811845932993056124620144883755119587940378954369942420017104764814047468197175790439972264478638539649628116507227028238984634524641272159159443093310757162970344231635307415095662374502313316148446040018338535669416114320955036501245221894310846820487972969275685957949591687663999334495968922393677609249866845343840725256264233042645594381304853370736475126044391585954541678901560579255563229028917669372837476766894072581206426986047682409520538858336880264658538416697768546463732249274060961551382848687945965105691084893547338769683528799140405116712620134894123560345113755592728788503010925194409575949086952517213372567884515903544380421525178475166848723299054461283364347240660377283574686492712763902507776912585303423846160652778310724207095627898537968002070276437248952447552881087131468699169883053145175573441114438222395184427253261419521745319498590302199677508569540427799463155132221242912735593927076594362327433703981118627668162945599466739763769863531694774375568776770760240443765999003403022659113381841724105754204221775855502561996192910118122297353366468026253325172721278054941935253897274905650982241297329320893189626627377645989127435479735112227609295615752735752515873269142466674299515222418552214024047262655551920546374658974075472258481445445822695863228136156050509743207150546192400025319613420429345826904785293043763988076392058427566516529140013269320754693113784256535968240939203007979967708268856338278895145528871800237066657969964910741715635010162387331080359565794943748193228451582592835071235492054642896177804870861303589262824014826633906373716255113076559739781854270649831741951553981696848383214215751182237043244967720597777804329649995355732291816609911443251561609156511545907710765936371036136781466494388028665551938218730550424460416902671352951682447560067538819202794831232164033723112995836134625496322240790252683383358420945282059639495800239511358891505318577562699948912600692386935413963399888686506251960474886178615303041306100354794523034746794726769334401056634131899169392778063433200365469668405693936627357111509040952735614587916420485325143819269545243891763354890083054431389641153119431697830955634235842722119483305764324387073843028013051230198637706799956009906396528168034215022198945452241704825576437706131264979529489749387189409134839666969555503795021189907058908417645444579538095912218490083405706028747012041107620676735938465280356326277743747788892988712933636347471679614189702668038977352442425927092790169550002638249981780673302625808346632606234234502037147401411831654775986009286535509898093999445916785923619747296448670563762100434908364848024668709091252545681234264937703697282087369909475569558665479208416977209419682186137560274663351056152067838828181710666273874237598814111833127634962225094369625339186650360714647190051678035510985966866266772163010528114271680014732633505205664874114472756081426216461723912457075128952640742349101138730377983482227481846933775357409637598232960595242562017949154375125707387698958177995448340062435592409923499223788061040179342958336376360320069485297129946065375539142422393090616207179700311565380386104061452476420125241454272226637995236332037762433156341102862162063062775546820328385714089714387029807998346204071578735909337767602438058714814563759953260521671951508343510789364550918920807352520472097261613780336278799543658145681074554048932523009915582657118090589891861427143905072681862478695814947888590277763801796443943624131508267026917464144932722801136047992358903727118532366849941611778038645450723631161360758540082689421945266683986132396473027428938125589316614592393901723844389862486034215187871501710591195455149155897466388695584917366312610712323826536661378783410524154663232786850591890073557624991305316916675057006631208132698470417687631474624148759944236902121210426383141958515448182711085957010585512690699868364239071556877960702989850776717173815424566258093737214872238862511513538656058606800660799444328981694933284564934926125138869891463583511954000254218645226934091474292584060241204055033369176394690554851092057059000331933380018730588965270231708538986992798567456772413437313582317311606399636628615877720237723953390913933713370341915515955448299034203305136061131274703839810764864437946485161916260733633433855205909305053076349956487649931864257990731314847576475447650274541913845433527665323064593912264032711685119705441032747216939113258478563339761459308272090087260984842316816663903060274225551525795592139439603371792186211310298393928668016107060916979270871216504753771700006705269121151268860256411039336597796791589664132018799981595778171187192254512502179134805400350601691994093583197381747998030416868025664574805308579560610167003464973222888326384904325943307306963954488335090547283649098712100724458319340702424070649801122101112135657210591005972376176116310558775673904566677908364987477522086457331777428971014910272248105710648744555496709044348340362491566895742816676751437607089904069240588454962493511121949821221448992514793677625966302033179639644034097177454722176300646510978344412169728225437628743062173979000357057723980448957959244027974761107894771529627658889282413537890647205900018748865549617872657570457294139517524673216758862163520835401399345629247738592509536347121547002413745264673906300855679121222630006908849321564446227571022365109727106972261590143280825471462696576698971101421394304496350960277966500630508056768258955352822747489674765368401209499284374548137631915083506277525270248789408168821907401879069977839086511025922312814314513347625980318283211389815687856628369042512197030233492872927593768322650184655258682761762392880357990554858976176305685918744404670858246933605438004906276367634656302058571702410816168981589449423652819475438461378240588310618555130937899769613959540078505811514225336053095023883152416478046921276341792131880912085522925194521051325382721472770401817057578411405055347773688362955460688640172291733339520803086969814265073041777085271055742038188214683427971021793898013294360531031812697741047604093748126599185941053013579651357869803605791533245764457736778473276923402428519143870516792889915950219217345070668002978571143565979411483568449546611067309881048467252808964083333628358250241739766850663792698094088627041818561900210416557603515721805595409860311856157258821404166729616909135320947536194408128958932030014955223583839449482474098683144814092216178131501968217925566170166078976108206214855780521088231372681882721909996579249138934422994713315030079105426248808474556366740587145648237382350392134350770859710124434826140734035590729463432678238803400491054258727000562462530046401672733226623804911260151028892801016674742850613952662071051305200359013730189092094212473083126066087866200978210769238989412096522031577666851624619145743212494070020355427421481712602016220804006077544504802818728542291485052383691324275510922564846426265494683325025124994050486558544606798299818653809748275511008619494320244768772496357657690010832696616200072032562721744480694073345564356993249996292665857245132538628750889488387846536970866968618680787523100442010948672725612062462829993610583441600409780245586782492788054276826699298151727377515388348171005490742324724363143616768564844349418239147379507081166131871170722156691631893553027825972935896590187780408233109943098480002275614244199161358081523048696181720241643528026957948451233641148741840581367235299332890140764811971569855198350258164100628702163116691975365782018267045356512928488529782329517056190340039063111593017469719319434086452505403667689785645157239913436280038497744942884448620815780095593917445977975099362104076407055224737894473661641387574386105478899827091261855777192441752550205667522178774510217874031388663860132079518248894775234408626539460122994033956047851299596309635849218397238785142839355567078893903388471079871052033143103781009727239321621543888176758885135996668867879821823263056035217197789264335984565421253539999595811960148733181491481538538251710072167483508783162873200543920315018538732923983074619333930576781547255005336440086148262497808312184471427455761606834659002730762200155275487160795074070590297874546646791342803653339752008121644727965735060298228667263612854224302074099430554941493765723187575642608362522606835654425544671509777096958439134102587689943318515223175943171314922046227991111180815384081131227797789389352084234028582614403851788998879605723982763927689632061222211725901297766345261341993854527779028306248303471453450407554505282186479972169498174592527010476699281179454638667834270159887787958012983746601308664262716992574694805630599028106692185312604746917952035178888820664466624586164343449192394429091705099521133296401664197451157041718701173070530259637962744191627678402702544027663969243719408538390815367643444572397802786704602928352381813532047254474843315421456125888378146211023504397394217775566691605160976265459778832472540759260681591284730675240829767666624904703998786574225640209787528325232006189471194228495137894331075014419605298818747180976753352276169764820804305148337957160995674107377049878843229204195045588564415745112248420662412075491174646445189899347835250488250130032542263697290565805117501314934580081171516295784852569060805239389933545776213590368538519089901953740701342357277673042524020108772163790449685322442178866264326184360549971045210470606126650574796606564972232143574691241100183804022730809533670727677677741874503214346255582075040879435906746828682241112716657042284384041505711589085469124929835645461459474591907674982933229384971122289873377996392817835018950504746342290855493531866951329124446979137157477261493356525487692308832336019652655612357347962814620091210505182343803465647320271781664441941783283438504732759923283808319832988317805414136863420152523831249099773616329695296495193177409258445498961430374450859610862801989045162791011560207743853581620590068354988012333327041661928077654489508762029676022632497597546350872496705190111378696117896185400801365588650162620661388645633890279437294007402382469010423120613117985037839209157217455167967679865683176730245175270602685282300212087194393323186790292104270091311293059351338971091586176529317234620576999031526145606909058254919780437524959393755788343845809618075501833967287198838272031762558240577526015245235425349885357040634641913229919691654512014734788733390990798162912530527252206425575396121773255476987214412263439343660552676094084926444434512757475290184133789757197219544741060430631713959098265312154932531879218772131975641108058564529333681163435627582675967832145896001943973426129255604851072913631265996403757166523685302199458874096842224666500211627499863403502104639475036439686178806298578660285265839251547852124638034010717258029449388833013624745362159392455430336655837081044873150409608826554092445141677890258972196568509905778195442021535111075204504136447221185393293835943214447798655473059320329318505788688826499446081711461572698301057530244745917705749811247474216673054661080018273918311779106592030309196005409344227888342081161094407416179347748695246353969948449384734472312365964833753079631376601364301449260741856864266326553550612598869233687045241623911822141823838644187896512965512796967607329477444630576867678365222966183713207042453343454409985770695761727935370848161250949294597703673900116025373555718895299669942282135885806720774608283637839647245712476033633657096163586763081899870326423137061662850731764978710652584641875188308771368127570285526538910211459733553065824835725942256447097968095804461253299729904713864972672734049005218028336122437607382308711429617740566460201654874900824199477579318833064114261261166555338683690851582071683924952403082398754791907018288890123809295487170938012322241606603881381974444266750992002201141876530080201205438295820050289444617215259049646383557692863699735130226801899185951129953408658562920496704411569106569546274952630962038444380017112702404142027638943935702215312486016743478459319392178722965278026554178620492429815626467909742696702364314809371104786617672652293853255420871390982087892638751769735084037909341458646822367139867613835170597644229785746668300624388123473339414853047071246250907899717343693395733669637973893907803264500575720755777871744009208307423526341240322177108407877608077468140472424444550221685248377072425090836601651596578952591492843560278213401437151469263995192595132854377869112038157023591846721891782709088758619864868505752806110044713680339685172619607874472025397163614395122499197045075603448601051226490868650463587921580568143446540275943044434318984809650629561102097957516323647368275132332304207846143213223362641762560708489664594104532549238495212791258390538274186493557723229752167589259385138101127609882275434798333711961178884969828018732908130122201948633348534843777033954329606822474208350370981360598920932459789777238312861372668599581142599041478243164889348563925690633260005641538792397450630994325529530918221813914989822139205329743078434647580603823821932526308062563422686241920431850063676816925573872430932089314098363237762362282133292093376535857989345480620664698952660787272705455519109873239748886786391545775540619507555190602544213295584226457823147221880485656472031861191685695041684125395772106303303517792607322299110701923066352309192496523027955218867573556823852231743644397395358941051550413931417968719519850248673496038676528082211750891868183542944507085842351042304062580006171599420630287387813884330120871108037177568608529896152845965181020789193337721591044833805703537247097921775627345179586434862892452255698126413942665118713234180328009644854957001450869456098758169579633967247300756000673453239129183717891663850070649109985210312587448966125701772924528258102731435548076171681202078241761289675537956429256989393511120683036435944773844395328118970384608239199083345010446491704603610186527520647639942797107590818875676376164430527120389333348638817647627072002608272788135004585461157787155257860443400292958906501015203693116694990696367945906794489534519348839245881615428006198228520590085555295892674534326175724349812376974757527514147742279576701341604815023955855960541854124404389261053155489493607292417792516952110364416083572050000061019721259381845912930737286801307875233476700115037473937639314126520479607403807427036347868045719662513592143311076518256672596970734081259005047824007684167547126276540384268860161335119646884134241990051279516544475250903838598199302708653571264341197986873975404790655997883456454504389784129350615299033110768416029287338956042399072467340772241129021573070661723451230238632188588128809678794230063326726146554888685219583325161821275035242234690529798947927974850405386937338913418544928050912904884217059110018369000493313493378885207964003233369237494398103340980387118677640925382634353578212453790444439935609998235159086703987622487357994088611553551582423670640197258011582960714950680132317297453991902747367515089260403315933042924590418370301181148008731169474485979511442525263004201613623980032722137268159025884809848302510145292556105756653595577255064190589872870115253178872153031261096996616164052460619390758813119524121859477445199200243639761814400917553991555895432452899277489709721137278722411998131144165463887609587138584490651150027766805054177576456154190489631786771263337760195585978875677755566930623844476726859509348301135017548631763262378366357372694991318195057309829056832702698671997052339890276537118742710218239610139570410480389673086536451585082460225360116410675866611867266668377951774202447202762982214602406817008505981515169939528535793338162748731881298011968464897766732117448641394958237805883752137407131906624400969493585540621148849787159416819457757128703761571303305817662981116994805984319731831184448253553167217013958130834337724921251444082761949635951436983370768922398664339495606132084710505994035205979068074820371205540004288199955708321789562220350131995752113739608959242425679914823749568024195546468640615185393346234386344028853884945108562889569146749652014945052375058516886500255167668903701610675991907604108419649593491121764646794326993332677050349064979950921022498928239538947639807788827758261958372027593316381808031103976813161387492102029052395773117103252236167587847838233282469239869453118791944200927904385866569683413785492502733445027298879986861647619446790193710266029850038056810892878369967684858932981053018102988289232165727579838303878411775791045711796515524398506535324076614076069841136247616011209771629461361724359788587623175615943657158892027287572461524383084681746802134157939154105160884026356960404665680231558342551496321077328827249566558984929416814011369013155696824210914450046676626864416131552333729900827024449894498497671269206042205911666892296396465914395344400845661782405002028255162370661221801004752647753202298985468127314612025027353994787130572461023813922099233558365843258196581298220568748705347131994048587862357458783014394345184374994606348591316576833737189249397090757277955872772060139882701766699398822517541931125566459407217613616928175303795433017956821886897217044303858346607714451635043328245670630480271958094833072882792877046412775195051581768624975915449490501657271630192002612189061453632660781758597745461842420643780680155117771803988560695751416221840976631543949153064622761328082508510068094393218802114782471082185450778179007384852400688933460119166784776323411428470459758555480348379703440732788738460576199807230171585598354054501378870585756423589946024560438311925261682311435876520432412808426592264132177197760389825930883607967944646610487435413141966291143932551509372086947993981013980152250061640378037133297398843172209077671237383836078325470131752896377166309075855257286450449789533052261729786916358812920768725174472804420866621781530122703625768813252326050201379998043149686162204893105240873938762287952532069716748544445350814560069386841413869800599739005383158963322504783331878966695994901008040238088021397293053312095138835928862378171299586868727639549189000431098084623777533109033541329954295638657831695711040376668719681113061413316127812417464035521246902294195545464027621993303342359410462167381956139358312974581819665028259074013586037946939269722810703170889987975300964441247869099754674325376399365791287787738967769315970607422715455254548719585836846973063090829347905227289271026552793900892094583291075122051754183736822743587832560216741440458847450017143721318910471527217116386541442001643503451379819149412754673158495343636779686892488388299231704320544729985198837839037655536098816240370392618918131378141180439577586053903914040480386968537449513723767050965404940687665813222705537176342364560690514570532664751394491647861922177865243909926322522709062242093366811209529654313253493722260478267366886238561189530782068009030091932728157244049540108647296903037095931095799896968315426196532480172431621742295459567376854962479828549388367726531811783910427036334524203569208728413921098297252122786889123551777590768932501992213344621889594090944520469167691473435710970963038390108176095796329623597877476886399283903549529798673098338155025388348270590253450387199442267038314600393795504053812847098982002066599347661953115756807170053495592391004842910773511311121309920742285137745456199359516710028711523882248810237249328582032542929206615998326343040143219986164664928340014551417345371149655822485696764457148271772285757671906374017220971261025495240340746839030921878234416363127939469592546303127961739500545313582575418224773303678169756252680478881178723772179589519161117726650188937475848664230528638264600079492204140983860885004891732773389953963605391751616064493479925145351345588457137243859873454160708553250443171871993407059598761420195789749234716834257762283018175514820124669021528625690563635771411368036886286484458261923161409421906282897664557595407584231059791547766077230538920426675104956811238931659875002142992678893939905530148762557918771700344664022529924038917007646572681154920593056736001008385734838199923175014019812118772739691850392657175828122184806716710215387207003514114852074027590664662460632162231792766288601029098856825734976016181719702116602799438732658482884130934237871925505534108850376322735090537254011097904943587303625497848336880983442844194854790865246109164617623482485503688095101065730511655572249909498601701398742348536817053882895455300773833260934054051887652438619397845489432527535644403706776192995046964488419932252397878652155233203231042399859057967175041950930304491595442808821278044575484540611717756429785886813213535277342897516790199592789760850768649295983955065757899667643968946925022812865722739600533367221765007194360320874288264263584495805110199135310194929579999647022857808310467981270508943018514249282646548657627189968916790782295488464196707750359885854038961325275431839710666255712966513650783691906674156232681258563055904231110365669117403411069042648841237089242117676880477127360344217545251218009152817682420393464313275342418353330097161340328988418471237600577804222424133943245380784331884974283572775232258520382503245368585262918999368810038451176935780284350376006041298223962512726558274222552685928726434309879068940779507368507559255330721411585427423692547946643308001723358960410329121276769946207205892902816302621793380234587661089932501724639488090256577903583838140028539191707697350732909079988848018052647255641034245214318318820995052032776063869893259805982918842027771368054116662546856702052845801168487837644739304352266981617041090097696468459796632611101079931152084563276924051132011633737643514641918361436179457383756334014751668378572876987432609919867009424210365418772371007624918911547145155897258052518938024654934178405475183347407353210777738313278988018138657154070512073032067582701175885912791329304549241095592671873101600752631832489379432728111752837617676404259639430718356054333728228254159011293859715139136152854363744345406655547747296589858951507826539266537409581248912711920841508876299342357289375179003147689731823386240366956427837682339100687196184319645138437545140146120039574489269003712438100050490118785085530676006781408851174886575347166409754231481059811670590968157444137012877370145997638311215106361328165895519957616477435699035363309795644823873967841134888608722702965087290460912004661860463388471418763793587984345113886817160949053042965515348776489460336315425051397422261844925351032575834141260284625681604292159160179578667735742018501047713909327713018070738918237594453955581067464611549575624071190355867449757530704428058720723864560315083154272309795277636534107100779767010537637297834533492184663158345918819959230543009959801831449029005433948630627939278767662136789677069622176355474796505853384439706896885005020915296201049286940421355697471643331707131952141222296440391026528918904611253145073439645302535015125450432275724039441648429883845389240911418739981378246444175527682612791596761453727143604382121058193939116487150428009551543537308802122062732198659279052604352046478786146306122348961291412076109191309351947454803092866302565090000741090494770552538425841553351949467116025087796708079201744157849450737115034463829018146734795377263807248858960955575505482236188233958269712869102676841508770787862413712083020327097810175784718295588034667167434291121776583781703832433011349706535605164525758803688900910369023498935127488602279003420134764401760724587431198494327055369983188947535445455454116439804472095910025964299953469230253100737284327992219128387781718691934787084321937986782177530109892757456551758344220995609558825210915657115196452413954262622110755913668317331910277309122711878968967526075787819388089765670686507713456875554294307230672856856817878489395645444109334234960233311794474055889459174917362875982856107138468040385110309212321237741144811695072243907967817185775628589699115685409604600497928592426944858665563854023149168522943814732764053110942733514205817736621586168667305586479639656291896982665561007468374725188477442946930518747436617692737179165849244315188979983334264644104212479166523821980122951906429370432257422594602100978690370641610469462003695187564322242679557635983424790022334748774821100273297087132563380222550941245145282213367684103741011919592996527104894042413394542337413388416335198724955017660504040673386762235958041775620716071288921546420201579427013360426539358649883350453177613254202125319613990398344240560841830524785360279087957307512986904946891210527424197858990384169817405687637827288119471551153774567762311564606976524937446383013634354138787032704272040620113501002218208543254127592278846052571028136586710886048704500565787291341117643752487828001097232049635179161303007463760944406911373215019344279174718077654723811969580178743275407726865913118546816708291131354554469068119902139579220319791068618186016998003053261700830893647768441900389202674013296478703306772314068192766825396495170710451742674951199422804099010592318222395949488913886370675696288393893288941434727962962954851824623452624573016178050978771887558655265395373734900584436003552437519485900958942052002716259433431866512966314210712675857623062284191257635825122550446121791062863265490206468828664927907369702919078076011465813600901472670003169071272532979405226061348633068448152609302098222591211379744241221268294756038353710113608104556581152163327973682230969809121937246137572248570813309586297849558046070222077515090069483572299714160686772151823166756451244757993901937035338886408527585131626206939225306989616090792883641323244361147568415756389026393210829797349615577900404746379602256940890406035280841392585862485745043921048248762517338514368890065322447329656192309616737653795481886283098703838059886231134009459584546619004176559087743700856421672031875138007997754516967807572600494076973484216444391362334778434169319949050134880512807732007204842570463595942357744866978939059763681295887514969602057439058023730000373103356940578429383470129405878249645492310170792810403805771750128115541108984028292875101533930325081420406112918996154653513562181337560133211632996073138821367832002216339910221336147701947897958954532049592459283349726195308407879754480957377854299495364474085406753747000781179494202973330976987068498602361202566087608836383386252192226991098299076264863352442036245745288295552373829059403475327104275490164189005068171458887631623172673390495878944242931957987848661656634927363125158191330441279981817190324392033376812773912191952656415894746752625351030116176275247809804038441670710917821622949890283156464667842327220353546507820000413239421840520211147634867608340500177513873566239485127787134632764248228048801661045639550491211048998445601518137739236571614878636499138247445798220552606492145331820382338032914154403311307353129660246072587754092919910281595688471597798412319427438069675474211403205658197534951557944507796962592930754449117972153887373250618640271927404239397607252180407253100207836899579350756600667793743136023034560081019481071196053884940672854487719614518621781836634901815862389424186334095450320098412936155099955762060429288165080459378340017560176242211408046453336460465091866147115574614136105831394148262951207281631914450261742889089295445381971359495590397781935420590957333598968554344720429941091489888734225180065945061206793617853305843751816612089208766205453077932273194612755307476556805098854812760890560457091584338442065887503385145835977611186578758129940587397666246120043422850316850551408823890536982954620346316248867045104807488032715885739568570481845868024552308126363372149389127657022477953759919816853615086242960369479006266542035272806116320506825806414778438160931983001688527257290972914468525937599928344820812597062744829375066374849839203264994893748833811591501804683369339787765588043019122607423850012729960014651962662228198093600181434171542873312671820930034615550699747756984217795941936126054225251754757434181967389990723546635492849750741635622700651667978475690858749347757998504152652822118228018950132515520863950674864479910717101524012652743339496516669133488787572995394213429728712091983793612848706360236751886680919328019387233396502507068312824519928092384154741943317197766369012149182623660957724971225978709103429256133589981204464905980435229565418659656500527967617316117792433057680683586436037524859030284875740569758294285016436291258040094712460599881138384653098521050451420207464492771288172385312795237580751312241347613191959817975235581583934886822839206576478968951884191464830988937757970970469395358089629789261524498516238764294908420623929891061125691319259774592977424316145323209938884873276337012252969228247732408525927044600655225449495731563701009475298486313763439952462917215672545614813156359586818300865912314620376740089595668748173406366188628546729292852176800130015333769944733932067356924555308450719441559159206611367013615240870906337962387089529276674217967468976208759998655993437887532323228447042197498899933070781709707899659296279455514285865172382022828033169798605946320467240005746449839355095093922042853747636780465268596386376125007125569592105453961428919414803545007420720994968078241663465040141717136195553735808802812924586158386547594520983615898264229697244485747776179357981931971646238303692916015432386221839453861254509371915224171819828088206791424450704777186975056873834114478039280844775055793217577001453042641080566218546701094089785770673186874625426714590943089439267812395096918360059978057663225318859129971152881178233570796747413440355434833134578620002733466666585081491729435059580746926440397234568729887518023357928461324302691731713635205053837730349004551766620209898263180301866753786258499020501060181168446669186234791591002451495204242658004608095339895396483368756264694037921688867159067929153396745142140641233868633608772249434911781586463750506411266299604685803449990819608002995604771085009937255192264668277633807101785226725332459582884478209595102140584527591931797794130887738597191900809898298513683583827570287190961572556500843186902883700469822784903330113351306734542207251664273940016665840977291006786928235463945251342589706074017651924362254427926281727877242635073782812970081994280779621082367754753823198295348578074775308435235621215343887011867729415664687639762817097293502622471079367458149220295413477140433316044644449583966403203389372402638758346638575863612014050297419368824804936801039460036561275369471888608659049374893027444315707320291889295833557747083997143276628913646986674824934077089224267262378981665285802122433183697251871739833666430030633478268748758556837338524272885681236023501619703871212044809848860419265886243137936199364234490320548660299688750624535204952470734473089131607987606560708673059833605016877162709508296391560149253335549907889323220005601701883303879314248246704902076309301126858870839242764177346556929968313381461700772438690797032944831845444971523784466861542785030860164534259851627507983941373371779492175423596611645743854945616255524233136932666716132902154742965104737738731264349878638700830237031247090027839233321287510705521684936251904313843430445376858981905131242763800435341342915839762110359283906988673285949378060254340834516210020851036013054882275207625956409549627646379799140609568366226366275116007786222800397375695197407557032604112816908409074504841413150236519063970829202933581571848910279949577552518791267424899602202941229153156593624089237005441463447337684613067312153255214187554618059076540963479390672925861561074693983336575744607520929198846075101918763961054131390064923124990928174136254970865939496992201776446308303044318489685272780310445676710201223113316919642761225584964301248846728564701997552615767205047321659477649271960848991016520170060473411305914292348098643086605614433990112423972619043327626315109498280764817110467816825084289220778272306209650303180488041715715373907299929931042773719009403704504646210112954500980611211880965044297323845702784277978496176639731488687148172265220236734030835568974928781398811601408663293029216609657587452439325957507826210943542841325451165805151204836117868559659176464831476506054096439995515189551684463370433521389609802059357812886358564924759826342842277687823535616344658448218304420141237617001889708162547065227843192855914072417342393034987161950489317859482688685744603015817395513473400515928746838502127621479770297063900053049544641487356625558502020966407438447592279730386319108183618492962958041053394752207562061492177815803043045717844467143394092855398259706074750259128265842598303230719404624820270498619479725699603199207990095438919876489027084387359811027178612892710850142389913467492781120729894295674257539045181130294771130303448636682878377539996091337874790913802701568066171895415561834817838969617517755304991382500009841969009113660288025322423235849519593808337988365295399977542465043410961393474743872237599193781518858153132202606393517647586568235650548408347059393014040801914394281727106221651139223571820641618537205091563562861820112442735795335096633175547140756229308305767898755549853414242436911735105748872585397237457155189155184365710094806236232639514268257614431461574943964077139911152427325117737338657173070768319076968349039976647298612853604616881534917422911282199554811480369385460721221693371075932638027255808815009751370531428121733972777706944889433798811899649328867658874511250900695885555955667460779270472433385266099752480534199672706543145009250729154287619327406616722791180025988474048157088006982218897594506491159400767744640802496755078402074828317012526630206577652732574894998572695065808156774284645978032091819123586728258659477353142037074196509403119443203290678154176330969466137667628980878252631029823315332106405932606428968601911088271372173525745142107878357237697967393585316842930161605422531531065296893716742412871212362324497852963434784468956210873766029393216507219949477127763271841741281156110148135723455562982822666536810123617817727447669869825735224524930061135320586956594268079572682171396803477621038999579834889414660527699571688775652840713532884378518313635693758373629602436304525887920830664603537695432585178844782590938626443070276336512344572845943103536212617251149203862948911123613430768763970585864135896435442893521840691023951655492266501648304019750736237142032716061550243610429030598361725795469310233235506700450664407482517752178267776572533105997160027794423889641879650656457097973447198500545097356062987449069699176506731515793267427612574153271819277514891632294878314513055624790913465238847220719871306665235659624760866207958563049347021595934852744039091216061081885371567529387906747684390868413075052752840305215008408762183668660357859426012859451294502614224165217967317220083197731324084212002894401938525361685053078572387593635636007067815869382407600470170512348859457665519284257220968588853199974429462451058424874432116122590898849848216514045252924441693410006405972796948734514290647476343937813557037299933726028948371854206407742986697837849013214790306453589831980280185137212001175457745754219006886986892665377902368105863640305266241568819876215321858900653651265735149606838600111039867662296738717844828159343529672917246048980358852832523307855591370702896480020863528526458114562514981646231399376429412470114186333598657111772356492257638933877434553646031561849422410378756864927130270642070617755049464943882828610092073677228546149146254578108977457295769399595976561514391239341556149786418197538853293899395774998845660337969364779566852383042621491608276118050031836584937407499919945450084472672867571150477078082414847489098358320482318093109297674320289076845130454826694425273511266006979164312113179545763395768885345394007550553309256633027838704538137944922713656423845347589754334007082999092572112449993836341423560960701859785873504143399138234050139875140962316840261932487077697741768913590850049240712602957262989667418844112713965070841733548776075138239782539881824274378877133468998224672644968754549202657437694302253105678463598899993600644119163576334213933527096113532296791336572511189435254222997109337457874570393085687571441445894484313310086761104749760398017391760053458846611522181444231960611192003426368223769868451224661618300245940521687530659061376065323298107931716005312049910202598495966181521148768158799168417541258063530579847230525081495113034584965519107298169964903809651294863299150692243096654065525661577611634592689499897629828363336440403913127305526760528055583732492523207893045615068226596772374209504809838754487475726191291965821676956223602951087386125407820484198479220699511446483752918553928005492183448323840069312827987687579157076686744432147068575200989601160778820001902300692558533164334125109225726955168173666456333007013118653433626964110483963628666755259271571151354647838095374586110217268993957085507707924693366471815193138090289879185194727004037206407501278146761363175618144493400575876982112120357137926266653088607075814719724413992639075510935533726719051956192096038570768318827590871042942718136116263585572812557913778316715348174335633251425059854739295005596151714997950093884072088925543346944704759245773669760876364807267154079378668013337380290622160850307009701940700377669520644058088770941073721338731905899445582389008242405475603982721822266549869845160165487897483582010466116170474766540727957336582557200582777432701872054957331998149970999246738668468383635897494742028754176403262515795714472802285490845200216359211998978465236257074056783091704143753872312000561740230482628943905068130703022784246866366830296825820474695726791771415217792111149987492430773132596298601246582024886438508870000354742091578141029176510218195138037378785695018327225574981296252048303585384603227593131052016495991119621845013003279298603469400440287214200847944385560257891981593882025462185629049070692291379117634458407094260166736121505701367709776988388802406051977842472491965860078598721259504823661133293868326777328484708424973747118935775414376292775546588305193522096252273781125720997764168699520552118826191886216925941180534645700912575746214561829429920789753677831053076782727715000936539103284322277194685602018906079507363938390363346417960987325566265085830561395556044497072186531711087930956143259016639286629474335818740806063255969822053377440821269671967140501592401650820634826049433325522339142886682608167994945795062173819748827265521559904140595925583902441143254452407178494525568754694992488588549664629981640312764427447939625645507096764787897078360758464635870268881269698463800365452755511745451400433727027947430563182747668591689397157693201212856643465511427541116444027114882675649491589177375305668585106352830605885354200499807396711182194470339919515964384803921604248085601991173002586805413707169997865272694217569486554693810449154509792037849903832050123334352322591349761675588059864289413414287470224240547509342588467096961053081208544840307774991718995437979773057658959667151394346594529693853141320044385771040525465267506941681162026558620739374922848143487521951355834835591565422198692191461078030033764233523840172515770704011232744223933697355996873335690247973303201662630458098354226836785260350515409123433813388678163068657621789334883159285582859755455022038358607697606408895038454420495981189949620487534287265519955430912849605493859046780190365782016353096637368666025378102088346130146538907618234677592815344357529569374828057331785849983977728004637500497254700469066122076722200359440240749129560845041428376877110646958985821769959718595212436808381140590497039049890858066062132953900880875038741577441906502945089389771304506864007902769728588638254841863244357957980746149325948523423256558966577121454028558878704971764604196867121935765222771268119923193678589265449364784635879098536842001201010629142495377030055255117689394808282298402104685632775904472911316378084941464866951075469412238206282593846300015515385706962734271236576510726069362494238155334803626447933709963940629520184120393813916922199124803769652572459300531766199439707855750970116378604172480022436422787984015702097608854120385052809637153424478173913990540464444064845898362018799181797393010160743640615103180691432632177874598361945275020641016770457582103774146774202212059691690690957619759212963575630097012597412652464272003426480966447312547118988350354815791380937250989536950176447219001827442602315512751632050863829219362406090126030966587988656235911883438536615031967326977005396533006106653384967376275196557194303263552370118589351226948725029126244415566678496934484849805818607007509639335534198890070568567678558677489669296560254730823890540038375512449589772461072856809803424263751927603651798451790389632114356894091833535666044432389829967073916370599969686486079025457823325715491979719397524807064450613997048286243162390982529769185262508594767116127105094734555887631111730126212208095658145681252205991903365555309629324668731151800830077420821302724647241471234133691386062306333836363102198743780626039945670636884842234943952500891487148246313046302778763138629819565613215539809160224696865101320875972101178233155929959842498623920655648836186323281628355344826140018201190680810325276183589899909347760805971496744952339695518141217382619192282865008940872248981303476876254742332923573580072536325838388422618186635062669977045666481116738204861074099921797279664075243202974945229977025105663039582087872698874380666737921215415122613354204905468675143108551402958904030773109351625363436473864884495008363127193556143529394989534190272727362045868011541519955212551662906654277588762192952304120714386640162858072523653307714526764043320811423603882363588980443314458093177103507853767734185193133464302391830415774958552926488070759137193634732026885225641787535399611816319662236578589070359193205077386194585780419291673653876383816610054021919398498726403524085006489879680017704095311965355140280901088220929515278764735307179256325830145858281782790232943816645126260485299552481252628794416753835348839050515593056615251319186436932229475555827482638120830822707314616970502680502848077718451298675139230588018130324982107501601986777672266920128987492480075862289206556713234451158272619483390785623829515403460334747431087639898396811426635960537327018985607669949521223871603071403186283966281688672868415488229876994026259360966341392811047907499283957183237089226650995742691447839063034140432081437216649646418429703879534427492587912234330573515553190726977602728627817128480878529867486789742307902528806422740554176282190936675154707221668160838907279882563721234601358748145368806533302845638633027872504119068473840445718847084397997984557486281647085014556514946912242272630306288440343205574818247393998702017457655328628144588256076197721428553598408718665182553418062496819198648162960375012367995679280991253443711405395879716760521840949808809664458201802941136448757745025024365760235257043422442841420975529973139547035438530296191670621202555979038991027281719084751690652493600711412682620506079059127495149363078869327668418622810261717483307481951273764514527384074386867672233175863758424705730974592716752653447857144727369047588981945196054390086777814929529311148787422665229610922954709131118383605805946836876167590008594926679707979238652852537972815376940012396680878356809218501021184799412930105794990680759339498180975000808676663082648682240762646556923903216565592899076379168009530234622590259605531530794973626367440268467724167237116986754013545135767902227286300398507202811044417429940003204374437183792177730656354809179125829087740019697874903703943412595706875433001592220956614072876969029437658250174413211772625386373705704529922372571528439073723438394442287292611678084930980138676548862776933157562457193392872780861501526546277973174606267562069873013294687911722285327509115752003893999937033924289977119470025324316283811048941479495279889385777037304298098074987075135660083852208294767582833804917153844740918589772421172959484257308893478097657674533377458598600304273136078319096512394820248259653140784029205834757759246270486353237351158782641732470027752483302993547625125132733741738201988995255377150012156159156759947028773886026113194152693187766970525550717559249312210102470358037113689435676162653954029506903982194614036182804603472266902156902090534113438950201888133030793660883625017789374588639842988801236558278898727605486002427910312601895776490337567392351541043775757893591126698878878298768295372247320567719921173745734294636345704580029262348062138404688063428462396921458822951522193048984574514860886492419161308345079506923167940903985863613938040711966781202868069508280265788809297240943374722659620803040665577442456802556322707957867477408492317146068174174642294214417961246786622291529388520570571470287065797473775336686105057837306641769496390720767418083377863648757863910235315883644250348575172846848480178004087898396453099217911198137673697147467381464388088696954383083116865935021021518877709251520791063750972305309729387176911409086150117667295634275799360663519863005152355881279512412766428573412853926820718770400791974738621212428271372231432191387849000038917646279374802640066688468460200313239142787023399311914901582584073265414247542573520869828443988094205412755369167504309446644008911675692253055704913175062245091318760157995909721595352748250411969457076354349057376814358301088814133214409679238021727717371273455272669834451126005422988848217629927492156765195876707489490279748469405786237070420120264963696175650921797669700096937649197170220802271776737281874810596124261792958172869755287954455901337516546821619160931803551469197397325075951234287001422106924780374499873987944714555611134895236686762528248719854533665131900999082240707663058576790558550276001294212207062309649541759964087273676041024535776849805386276412444114292000378172559854885946654814744111554065692304469748611719068979480440808623198024462431535070175492463085841922146076243258631155538054068670178643960659974784405996869506757932109201708587563919977869458223177656708828135017012472737748598706014588795822781596857226089944612673308587587138579985932066982791940706846146904507678097712685288267481597674010375766013607364645131905107998803675879451866059729288156546022031589407261257935323320355250053970290531117914733590756518163320200248844845684002564699899357185609977031676790283885405332413311570370603969810095404275313322946234412990801362798863230744692716194976421165709826160298233502940603003477917755352743274980378421441085706674880868685117098687073686032273657210266959543806920394617609436069150482977640397103175671475968611437695264983072969288159523731381431891499660663992395468575342931877984934266552470284472145348350143612743825162393879841620302116742725141475238802523042636038244791334087247468055734553794267263888896943249451314906960461592771666121058075631488173603557336696830553334653323651910917738313234189135633642481620898129095231019712008073019631899735491788887630526323921579085295754148557504096627401451089612055268826481516710478810950069684945498798820417685021674032281468019825333315862845476560529892931705305148117262878760270868183455642209197120689308104053115153344958165617406272994937723421881570615431329648655701588129421808329064654697373854247765131871943123106997166663158055242462045161795321655663580519930874023762653258454903597683515963217583428059428302907636801072657124016227587359947328820072069335232766917881563976573319045531107206912458057653021794149534004400633912593595760330264094363664207032809070626606956564547670348890848574980262989329422706420522706472632231296290660465661961022162534116865925231805200644621765047684065553246304917185206166895302821044551377586018648570110557070116358429610627753229141505354778341812173741658306440222813790963902197964934439927706781740327563932720242996020574718149250823505919852687853538413303943407848262085781693441974714723294596175352410753870418659627617529872664797054521383241664139302741330685470111924621374509495227341766247923968852008877111641927377627288295171812462868347611076874798297738302845066158351038186712109328623977987795263801155414117762689558460252590371450565420244009292432941167676534344304638307049123339986216487819628790897706660695409413624556996732782120077181395224064280605394551764797856917760038446509203984899772899664820139598793262675401649430488732438837133665619567082535389506076524115367795934072908188584700011204163527465508399732219992352819994161781497181036038555858243499508206686124972829623040495899884100918783910546147860021690846880211569450273983011853070036060097585922739607613837438072971467027044895965449473595616119496046892883455872277273372177881554242310038415290980666592811925711138399020944393589035525852674957347089893331713410389400954046299287982512370954044529675577014728909143492232796062602817954285348768432744824911055200413365980271980030000802052402416242355936548813427081621176497116604991561991031009129986562809679334879164713228140206553363058643984212366463599749574269342863370046269316216391588694506521052389340495587718794594337732127731354203025283049347599802959691568094699754980204230806777217127596906293223637484073825818358951459720008606209346246913656976398944878456194772314365391814350078355384118889791787182072927202991163602098598898469145349506264030327401338860742602256134959965520976381233003650655512269874940444333051424079299553392253002032118851601172817947963132532794073201609048642843503848011648733889971649458936054822068937489424051707328018609698304183269763795092190227703070290560848431154940026953712636535370742438797788877542543638202827637870563264434846354077436829777547197861240458267759665105227862763196982401548813784858835266113241694726739004642598886452184258198215997181544074807726140795721332242247625336236887810293132835836411045165031470737921924149624721244230737247706464827190814419570329507653772245075520644118624995019273666455316616319043593008567357670801207129103599059947105915561403386696940043347601304422880917366117207420695966735137475512374232450210761041043553041452445084130598370250802387652524233886626592826320781902452219864493318154869752741204834550289715268474096094316675172549819292233221669513128369214819708435088157783037746400625202420786205273678258074586811472174287485275241933504848759803029334047811243267799843454982687328089796426964606657785498970580442269180507349944897057036803720924083714000638552293138594611433663024905283339840296246672327570533731519386726765156492014878109141185330682619594651520765425033011421072054899547004011689148782930554626114553282391034829820833969404725614480901572321771699841029080160105700519654297043852634552434170654045716478104755747591560395619653824029353723997347099436900160064148428447463736116929597000340933892767498822766137773107819753641333060112254094968868162014859333244563132777608303346024604720508831395199046965852293784827748924970944086172444968325478216722534107269674668223473737281892572188926457246533720831563235637913762816109788088717907427218739678329521745384018399980650190002826469982843703924835085325518263966404374915440143036183780744692092739034293859297741458896510473882691335957580089588371428813921242674778380564979732686242527760931724132556961343645974997718177384668212301168290678962079251096111339039035530032987090883911057936058013325894177498234504604467757728524657595556200791221686902485173098357259044861648074580377656204423542225058916588451845718634206654075387416010209391520467570085582391767360497559072868061988919842320632078402514941407662580325751848596864035763772369226796729927942021854174066430157931035105936358465020384887009685315729120758202766636051907576090703518767554766350618402083934129340242227277686678208543500272885909690740870811570818047140293864900050312649916156473370687407636519929860983432448414123932896679979613544471770012961681267330449629745952932036879895609452387318385602624298741500694647527630373227235906365231137697003181118356683117404112725780327809099309194129988869511518282993074279110395307885073534846702753641250075231564762986227615410445203115078529941838207526910996444657809835321565866819643953479671459167614282218073725108343887488620867073499826234256668864430397863818743230187117429175823979389000906668088208181630333247735751336524083935156983891294364808529636887050147457057963292316084393409372512183525910981945021863573150269314028188456724334772236740024710971909337091037343497514104932614449584982375334103283230448149815514787481858752009400634245989725519354061721787265888908290685486560972441434543722699620499076651853118641713115923685154961386382779313729581976911360411348183074879050611748914570682123961243265862165252811479638206024400117040248094174604668974540910909939921863012834466951081430336880511594260989078118717061606706214449972064741078163628363277905457159835988149456270927173175730046769251953626419318780367085356403724134013092253945169594376494310660424838960858627004431326546430128036251875575368086308707318865319014536079612459377613218272208452168650603934024969908991144380079792915239710006240201364471540176420085536284200056621561434883113637222724443946218707939390264577813662439874615771933055046064869285935798146542774523839197653624168764675342162803871301641396156242916214751033368914879664380699211339532935448700590101479884522606010624997296167766640383097598578063631734677811809609276811924055590738476784187737431320324260460493808651101844927903179174356731143928310571381706144279667468026250253795089312484708003053574474588190275609612685199177947203366812341866946881855903528387841544370231998442360445364946420526070813885706433697498505833051655681108537331836342623599952844922316533040460042543768825936410330169316863830826179510838329679079165681596958239379969862301216216625375714764993860326275961039023830775085616183175986388285621237522628226794073643981474439237233411168293598253407563590009972717280629589943188065723292834971122590975732976811253891669889760879852378560429865469599555662940069641357305743882798065378028710709571973252671658983050786301106878768674130002931747790495327001840896290475938389104126970718121424829536263196829811841586949285803386880467629891521588273423540294773647783504688560765665098569039466479621336700499226792336172206770038987847251176840033710983197070947199606952645939882216609989425195636184505810837852010849481010421326017160670698922749374562167229251305508183798712696819016357327625912636195055151407767762175422697044804733148138139592202979458362252315220029022797062462485801845146577712516764653486422893272415889178365113799621395342408166539521937531510994803630979731254567918664733036957738857013308578608610575799871642198312915766789610904266274175804639759966124479376847271842899772969821632735997896843337315198658498583626733481415339189315868818061365439632196243112921806415023424450125341917793750379726118192977198823866018150980792358857298794991991800159467976103252228470773180224914202631498762753046274061249843807912609255372250104723927205770787797123666409899758361684879171278804891040085811908948928481060585733620313025837785261728503899737852677015212723807516108605284312117492732760970989523026335518549965648650710366292003651099752105806015998228933750056140129426746015494501811131958585541005116055849911837024418211183862931232072629495477383568563990099176056130888059260353313214282778481172175486797733641986370335378674435021053864191458839519806696910449922245234969875388360733591531541818375513497429449231806525565612642212739232402522485213450591266394190727374388100429660284626586026020111319883802421612711086978091558750383023499528474212545098673791497562025603284689810816070874126030598779348690813883142315830920481815324555438624676530024009172582290895613032097816701061209958096433299152999044968403311954492862558690767587418341407562043112859995679266456962957747810108607138913767116569400192545347852108084913512089342434585867646109468785835963259197878162673611266242410469289623653641765083788164798993439674910494406195359356390371722897218022064498118577923726371773656145756754587363438760382468389574939004957897162540764159918456630100320397129427644040463400104512154465508472761486644623410090656177112510893237077785444157645686460216350914798705576420112972417355308591050054722490307500294826445824056434616297019085543247024859310318435646266747441757104507521486804494202306183515901041245663466452070237062098814516360109095627674642562336518016221631009969712759410226678890228534154864019100974582131170046766375092194739919243762532756904091651316329479813505374660449203956660043880759649090040657256992198859672951365703641839330841994747438731326823335482776590789041182710779408708779728607985280960732186564386708813873099947766758990167623268632589069605300939808946232398746478066292475813223239040360764519783623746880095345863070843309610754157243399190082777469976562090697646350630187762089499736146219190946170534328364365766073948490695505930784533186688319151117393319610162492048849514573931106240254630479448404151384826027851566479898050475829301508719902304988089927543374163807398174941621160856240877738226356117250315447385225604127398657232615047700882475927386555287377530038973476571438765043009517610342473739811965123213203014606421814020474991051652226832069051150712609450773237990866623463314837939688184884039755148932360402490743129441927139927777909791069048385876536230804739510479954460278999412505675267245469713735869607757208578790429492817448641683911606628697690413769147039026787556336362765689398822599233049785051492914441173441525347350367708205674368684223293961240760758820392035996709835546499783848241307659491642542054282984950405352036088171827426767359452447761421521621680491359028102670220844807573600742026304622540575302013263008942474128561088974146004130795906560957475532313185654989573123951571453001790903595954833442359978921864662366118343712272593148532995058681101640678643300963274061063542164990326977819130092205884024342081894353825590576437013666490098006970100593198455523823542791127219582601045560160301131083905770860132143703809582530487827688091230144831857961384277659575709589339960850637696723243274254293156186018160613719327054480407995477995768760888243910021187886752814232831037803077901565117030868971852009190476229836087491730756630588604819210710425187567867473449800165743864467648596553680688403780982836416053288430158494153418453424679447691463274040451256535932735387023028194072006968007931634031927271580847027115753852199706394627244189296329249794635432762752424844823929976002479862148746107830451820427712987145034772840896152765382492158944470793013076631624520205819452463196039010494763321403147496761998867052771728440656261198946731888860653811669147963235287141224045327550693665638962676620022560244964083296379960949065944947036007023042604144549624817885268748822916165525537039915790425274950155872038717276595700186673021133712363928795602280832953605094328722348715326058993729296535461802601329996509385721534224753477838814081854832860313866792319021365744938410981771144967352218923806487462318640724993524788084219991406943126580109255373152300770126308537549501758398996740259742657646660515508931752692528754875088419359321821025968807213286434112470696188866407456912877163503553867148373434459381213126998118258659906781448966178541198518535930654851975392319171147619272952806574529104941458727810747937697711061366129040083835698129554891861147512711455221819608859814010883454199441671969253814456089250049978180819613812047472639754615741984471612297291370170423975791815414371867387546398490771754818468643374714354066198421029177892708118782548788683582595483247113835428628988622109064992516049080415660167353108635500155430083400796580292022951109120252495151138400982265206602714507159934569220157620198311704991594662483495256657119655322961067613358322030233038865287511435222417270209793258533880104665218225779097395888754621430737394458836659735775546638960390751347076743190125367633126282904710215709306340500675083857663627403744259513534938070924835308720017233031766653794913749969671147574877467680495699336415278688727634047186090578254200566392992794190475897999853209581468510691910085584974100283185995630829529679798571725677464285859704551408221342225645174647248019083925560040710406142048335558521896048799868837723834469326960382612175634564887358906393325477364525504484917179215467342698555043655022755807187565087213232696429365455720890775932831796956770790155181740004576959285469703432741180270429237457396954943723287165269727217076848599380836656766031855343632532372165479621758083045718553858680620394801010789478063899698153022333377410795323312669668073286218871179390155247977649422423067708633434776727870321408348294435450766194664199509931512648920089636574343813768529594176467291599819770711637886372253941983704435731490344114062588364719737248536253312755227827353491944711567680083366239022640140119904025708570094835326434583226725747614492738666423632478795377873397840713452709268271021871611720996504669310784445269423698354099760411853841876033566951969266947269200928453078917828845716564324497925479241905720178840749427587439346949488959052203426605793796414864212847558171846660764469989917968612494093746593971511191080177646293634338758737424876697775192243431389310974202197253945244692205667537673729590430176245562527970149902097538684921652893749374893458093934104631999854050468429517337916734660055833272813523352372116578616073804898146657477305797070076919122664143573678112501722710801511656030954285874164528689276528917840561223506403227685472028416479458048242849680208318324397601675741809014429354529502924411970117934107330243535634842253143479703395874010097908244629317417071284851549585438130416946003155655505584573703376494254648279465241328678213042513721671250854685610849852040993184275557526806612226640506302081412740896349792220709098007048446438681967796441511569431404159540588183307874919870668794872399945127234946169332150749624073988082374313431359584233649610798981122698887899760265345592229279135644841946509597647743591177653781719624710022255620242056052705228648842579352832293806416956777936580027138054773828069037405465768844458715746370551202303815685427668645573938179252202480861616703325040197854550289007965020112454408021320371553124970645034385552486163367639571993237115145964931633183717265914472656709321780645092868466759033006852911278936929982810842837032030028979324517759775423105876592261432194033235381801170387913632301069372840261133068329394552440641895605712495826514175359055223702373450653348743479410383693851942963459445862952634790951653365111469170251409673379582154561345209184227584677923434388593372979874558228012602277953871626292573243613448817233733464223925302154464519881537611108409192586328725256382883047024709228670223218322232438622553186606806091980840093528813934926948375972979194282372584590788480671685864171387625921962233246589152650027537264764235234945390260477974231000811540877439144691223971034987684447917553506738895614907375839564430682455631493001830213158374237023656520231474141094862251403102062280223347988490866880335677293709712108663783704248088104392403476491834703425445847608914757288742426050810686572503380466972008658737264186936749111103966741299797699731399372992991751098214062188528047962668629262007933343079191955161436391760613545975414012288471160171216695743371028860921218211112558642838250382627678070192085906213987474129920959615038005915608376578989908537418940678110045852446341454750147289986043053357195441472665585890334810858548410175159036000529181461026170496806589888898240848855999395185070825400236925073824789584960242463124801796498136836876644528649378997585277593218183229632907035602640269359496689484647706242154134991579057029202436230325797197660013223675547201152036509819380196679901684358110364889188483564279689352037214717985597145638883182982793506043574391928091658956201969720935847433468118321965202835447143964151296478451254862187519375207290202486512153211018758192687919762777142915723475427151210828161635901569945813403623219286350080017402660295184404056742028003732948580163039659563905617898823467556824654183832944875877412315764236626289165829505812127220236485973024724748044970361823296647100512605968830741511709120434680018775737458765136728773841983466487731000714074328573814098986633732848559345039101285374524295868413980748271874731025133133748667957497936614973924129346514330383001295114164537006839693683179141880043005929198171337750132894720074885480016357473776789174035510244932498972548280164919612377125331625187498861576012434358784491597151806792532491106114367685535838364634658409691682552775476735876838759391282496288867128771849034797725971598132886534204313232592419493963701440904665151819763230392044918183099859586529621861153235331731706068340043338351945200777373930670464142282247186295570785490998532080441486468982652500108759652587741882137351616404610974585924144784625803643733930717343543924610777579033131718488227939064105743753918071209199635760522952696528148823367388366192658326746541080587691554079466089644831357042808071197228278736911851323657798128263329790834057898640091587470645419188332626551017562268181148298785256711617024075504985326369600445148559281548682564913203874268031428790430883229445783957178712295515928425809049486184620945774107201876482486559817113791842049329569516087354822467044624386453002629349502887675415476213462080960239419841985873436420991530569801328796954158568175701976369156832615780463441160350504385739273451171085141815953782486453644295663264462365078526554286092165548176278732460689035070190953024873341112615202057415817991414520313172678009590646217763686398437687532542293446763016227383839399422951633544631977147312652217804289138435825805342622047261763616287448725541145148077627845506016027663965829918288944705341136042794216274417748329921975719415079372389568441041654495986070003916234194804192850285357278886792092990991292319858562636983868763589054920917202347616274124362856740065522507343508307440529619437190054073081425855919163475393012411055190149515070079619020841322256008834656332075001192920689809020233691044984325210300697570086095425939297581312885767896365383297196090839525845842883101841392748326980930231741088238228771970197806091705015583214381301602593833146822289986919792624958250752637317034491305710066186698212720052437940846932373519967964567858211903740338876091774610811315023350316621945599681639932212514382822266682496411310191322303197377124219076049934374420700440781032864662963137746287201672876633914377187365079620321570432019213565407620999658802217957213454693895009187250823714645856248060877847363861459105846730308552665202372317706622834514803199540297940224883767530629992761099838843158366557732388417292029940594669190292438345087158966215166475194776569866471483372402396334657682308051342811801559265427116262122901649961238154463462427123542644728151489500401387292097857167854404038711374569300451665280767308973997557569471322298262598075645728671360338919299294872111358844859623119752811294648034088866665060741665213158192582230923758098446167100802545308403693129816029074697218952734381627159521752337277008787064604172709398691250882338529085860632824085633545157513128061805554552825798785763101955822023290980548865884444640636927922718625028262054293019776746683097481584246175052192711373253343335849536576498449161037267309967450204455666276846781432380063821135942813889975069403156255718854305979640065297323252202524024535511868195308497525518300431768495831193293252219414586411918209453307891330670237304514052815595814484712916916362714618658025331754705370303836034747553455409133685441448819413281620884919312552079943344062190034733641845846378465502201820660824284277401538963395021393345765663788073566272552465091841312242002224715546704304085706883981462699756941956003623222381855365170546424400160726806481246663352293748642776670635320642971027881062567825017601692910258394287692357351664985337253608418848962565101203777904686425878237004254119263871084347780848611250075733019462239555888195705196799035872007278715595874509728640368712761458748216796942366326776459519038906215183704475219916797764092618377128486118998901904775744417940300259820196700471542343254020634294373690843793962991358309056499241699677074468397030207972006794062287544048834953144313385113028646374014766173170148740863269019505403176360404161445944016362616614221878698958443934030499562302922383478625121209753670080256873856824218606616652645773670145921920869337626407231713374049590357771130395819951002367639516553536835516342153316312260094716947444693494888015584234156901163211229687370694662694167833046289662755076520978914785383348182793495325923644602377097558280545512831857392691652150706184763053780063027082997257568067312939581602096657918584288957177279741696954875440107275543396547626324374082399918297601761187615868102917507704154862998760060262589040506794193451645627292296272929909704842673645568171535875114572387831918280865679706482512057238383432495330100007255910163518914742555356808548273819187556042083313812886179916090211228186425458031495348030935626096315265805016139950147624290749317882102011881252919039635821993679691311483706170020440978536662202603865066185897225054160115503431033906061148054896428380705680248563866207363447182479098921222786309010467287909228445577673144432743976515805301899611822592862260593590196973876809650686308273355278219240414344402721111094923528759816459249965284871848487626231723207927934716206559255431098152225586442456827746018778252998229473486327410470802164638921346779164771896363191884313861751404742617209907260466466286438788709060420496495913306351611824442575456092559217442196658158896953664185234918784914438305020340898246133176671256744431018636646769037955428910644736859041929415802329736363850024612926782540492813750389083373639882115221997327913277864771305937352852258492608189294314480384875483755185588387741015713121112011661536804016199909469464796597276577836421822410448940493394774210283837543886813908598384327093253672417444650183888570025709190548784401739988267116753183198457132327015853809774696242520165087149127780210653984420801388694503414945624786280764088298674364103087439880051141949863915668083309652905087295544365424439878313015708542923807926075048426224249023073342261137420902310752923646340707258238772891415437240906854722458128222456100067626580225009602556207036511592061714001836009902374482489241015358084560749830506522216596073725287798384713333016482922808779349820904232250538273983497536864208812204357906850289489710003328108291799346042681274213005912074538939237775645911427065863028247378246356056612282778010170986642889874323227723184046578555024840134253136859595861273106300209959681793134362300174010846083695932923221975821186759737468246412137090398848275970497134059811696868570612633632253038850698438762480875623245123803694018290585262827673418466180698835276627878371095583033184223201196426918882555208473375567441997897324332710447663607167431229041528890013860351824288102282743891151467873450784260469696449077502755791218220603965508671110017070129640948568345689964880774660714906252326468656603778283832942019858419239460234635405563974443639390548835836564453128893988116066710122067439872262323149135381864352537401953024457983512347646799069064898359031845339920322004204626269830674829218158264705684441057064268585211318512663539757704012365607934831918048816640783490109453840447671472517575865305765580735261319593856969685259487392635364385101223454827128284837686987810253573178453398074740547751165168775241933269692744019683226748269880086649533759264901687081425945397302358399021026402672917645540660762159720217643676580973694972738759754660463260315968771840513842404486944716241860876840102387900665954782424986842498713221588102291300760533161962490192240784591637639479296858099004333455027387861794626679925453839582210471046821178085184813218972293768477378846284749403482306963202450586419855312985350570368544690064009013721370921958074376008809739141664820503023422813260902256972635688192303717511781225661257322671957248077690266115624439482987959619230229514325038755657933959823240880130492699044118452074078965865715581784813245490229989994079457925225229704150521200496905039653315049179896221506737885996151700205690126605696495931392222924205091065520235508451619037018798826576334158144465935971717734266430428721860940149040126838493867044594813707286715531131082770814622252891572942407766148933725562092718685566030964637460707439699852553667574168084790552001399715672602925408137213797718513748511639704325791342635197608762487263244449995273425452119742100126566233542350401928122461676272287967225435233675426823769954148505203483322308090630515275125701030553468862754669645585032455222002285578612731147837782794818586935882679800298074956644334525937067159771295116601230468943301960003473252760499584841438304920466806269748655818469229545175050326146015663898610497372577652317595479588403634411458995169983154992164860601006099021624660819450458436358050051506276041419179623443415340847951754684319971984977920418508224177681713467084396761806337210339470031861109986018571101901901840922943068101147543166979665888715920688484770135349496230214471673353719241759366282241833491449423145979924639460393883265133283900807615562272475416242455494426239871162127196704240204870897799440281041251383914985195202565197311802329025577979692650716539193168155009091840415896470128631239629064775659991753521228762111427462815217602093287845647098320988927218142115223619339705147349311505939342437925832803054124653851890009405427395693206597446555718740295602215652482615567673615953011840732242648246485130427665963737903412919859234398210373214066301334878228034578490879812636614018233787913225306055234920050728632127409173903046416938730876735069559784544005047563220645446217249070221811975240988572407288213337198165907620374369745677024958526489326301431320859791268652913074207037166211451466805788469015287133528264667881818494893322511434029832851720951334757812674289040324053586145003214047609618425288177258464775226898627041014930077151970451994936853751137830125895970138794457778029266826941501237842755776574476875668733157389523424536297652310899289643742956498609062362686198800416455646911442169747744242853770816541528036466065571188761089707065456862300125770200965544767966270206033180169453736587541801682112724435762127832486820126598588140962940894244798705471824722502863245731835340936322653118326400243020064168181350756523853696914005931003632473264835768638263262616787934136471645009352811282978654940845121616950149964605873427250743978169315123095477515966263613825967289535173470123230027358761753689489817870640886863061290126095797948029128432561593484692797287212513477705539785495240124818548841764693096517054849215716754053791341605585865660757032967704296642309723310486440505059312623983573485934091358802958308612231715222358373238734153180785763371011164932233593836521062374329467078085492007319279202489516764645920237795495854045879776274843870943170666221262006590283825106873419176253133636094095214956135550744722616537868198564661083310750412512130993095476539192840441208938721917895100427354598415459600172253921781463727884337065343479454120014279330767032157985416453948204665884799565300767892778289669518529179448270880580301555425339770461741041690102497028884766200190097930527992770373748801193413751238559108163612306528888401947380558384947222928534711343681074078070796215340359688234770370514440459574157465011775618938965424656438536829536303754087425653028410630150658867885914464733071156759972009771526679035238527264779526004526806592075347642020846093006990435208210980930903906149695314320828375068910127723179099252953317779945511896388797264700204418235347522212270324480135720925367860268234666583460414614403907840347276493513690604230238949629751536290886497024640220470478967060826259118879656301335834688680579371754290087354192078175264873014784984555044970314779991109739105567407082708873957806648199045608312635370294160093721885886806082739598966484456368145632500110126290016461069088516256150147702036819867147689804378117139304738493564043395121161092593066469288588078349338370725777921065205763821768995403093744135611784713482109394329357317512386950329413822605715899398286087802238039031620276535929885042594058818765500021034989329274416175094698373156121574676098553816622392324824690781485767235965887523880415675215193615968094531179273986161312238788883717991335466219694644716347677281998750040529869758343406071389505161974030762186933223549231966888334459921224846712958482471379480091511642501368036455428354349521611552128320109930259490230254543999574519885486184859554951275598240619206294839580305867149338582988974413324398243443070940696101365834922553426779253145827547623976200437593954821614621281922805363115139197048313011171785400171083082427263476564201590558601622959305919595806312615202888554637820669807629603546264019568856613934939868979179049091399871280836692499814245177491701806568208379441333376494570658463966781655014862991639150213481284342552022937504752175845831496692379853246314957844535566156601766980372172642760737895846579887319790240940151388230167085615158683733351649881216666468667566519578946175218955955949285500138479504691096510084846023207783938355902218758256535605927148590712633767748331363089292207920719464109527948879646412184837091606847822329554193752505936655064839558257117654101393945798659351974235249008253809435899032647785487872296132440551027055153852227322976961740196111940917836553367863579050881232607563440954311628740000812515978022447011933819412951655364786259599311120855874516974615187689936420323039326475415110380609289824892841548417777677389535224651473912716038200433515738600175798505329431152210502783715628053288849428267243071786130586971803444778803901456391132964649207094409734061962049776404474535981271108013058217650092914063669595620238464828711586294161505518537645340814641166716535034304771221469235729407612847382663917254504831843630771268906441926168601271872109019426739535673262270522834620117194656841644704695558392989354144691266974786645403343356328328806263986655310063760269738386261069166724709761606227215333860300621156088294186804372326154022492804972231429887255650599980075992370260918582425917916501987292949477375915414354702794677035940562750928767608297007349632373102003733260318279478966639718483763812493810393091413938766680352275891990854587441466857413092167244058525134935330329795035647663558491988555296985378517171680464370539841493563877881692700093890316262525912223724949139368119130933902824870816876271056213538262792101337101874419703535636049488359551947206798166488751712068489272762304243092950697263561311324518373282534039308370500518919382650329322621724933120678729270034847207795875185383584150233085094391361615778696759175346768237644269582353685071040576068941275972259551998654841412794453175639214514490221176124018163596737673150990175184766117479298826975346258047785183672931516908614001763476024347029213061392493905483441527431898605762580054029409446546216086918544733886351792601942465552176348774907153709546067752761425587281420618361322229702042939463267577852725689658651741941169232436327615056457153201944228502923831661763111052043480991011247242404911066514699677241274414562968938310052391997740811947652118174860425089671811855297549704793314519446335558389074653293773515503997584679394928264281594209567054741277807498885767651263146848971341502733512338043272635297839454931185679613030648012877075680328630782647740468475193523860903998934558079244072084651397540638191708317912384134793116956332273216015589736296999800615689134272637404335821076147532128697024511135841384855078816278719436285994691918601137154502664596545303996080511783656983132570958879940325191276613092769839493226160930882465903005453405674990776389860295557715769833839863339823535691324656119932998948574536467264259385283367790635502617972746976231310989556255064631633151246988155608249339476681538268522592443216615702648296726210428093702628077819021299236032261387349585139956102159158910155582352497047947316835482326398567259997771286138421677649207473660277818976877670706954637749760974183327877480646157838448080682147061148165682015711466583788632998526256160555586201052828095034995399587405055731473126659140300877060219296153003395875437265738274894354988219994220391909293525169134012943628263525199208882642648822820571667254337754583212066451616387748054117570638423162168109612053646470235284507822507902594147291811873775693950268748716425553926167445991139766830395988156106870699665912882252674484038509617866553545275265853197212394473685872191237256276612445336521180998664797540425664596536277380192950298146941478869332917071813587248613118989984310221456568338039778876876909004700022003158170111391196362790752276651988877796070248910415920686403608641723146575218424787088026088451321273093772572192734650867458948700519189773659505389473475719477938002010776342021595835196673215107902697413694375707341153873673333864464968529821140456985820272568232492658567442551092552602347295265352003786092954358247006663733264713471444413747726110397209638851857097615836658209457584236282304147653971862685183726980772452425804737251977546033778600921899443322219162757988183703638992305230563540558883130160148032854904481220618542166776599565585219767922139414939997841581774906022914728488771026640314112777228206763742870072552643749826033816199095658331560048268830109268607347246039697703412231290317474949772603393981050700076967585835082426812506976466908437685062352098935486562990925232118178113617005351190043437024111345768321564892948344932652302425908011101399970637989796981757743187762172983727333044452190039990008362043008466631721826346985651723472978179071214714742467539785286614137919902080456614595445158381285107614466886350355214071169753225700411363082913213521911343674436329367880469158867976065574742128131741057245791742643871893704704746371237296807769342979699165821032078093531399373861303517963305062922086736969215625849726817700040128242627112805013752746397411864304102709057388013509417627691528852833514880911167624315365309034604671846359292599513010371661983602127122158465453040899890658694144777630133191060745429414494937826816268512063702638989984926755602524365598623845705234940524855350591784213647350318099617099551015927260643435047971150621565388910886315625210816127108534415418721010531390117596929548510305010813247388756222657467393565031037482651013137932071287581746598383654924882288016052850786894378067353013231916827872115666686267804590394178245201595531826738854083540090595980341221273240918320710167648942813892413717614993593913442491641653104753723547447522596310545648620969792122139891918371381456729485241884608113399215819138318640243083648696794638107408709763432458196050138034814796374090532997807379969218821864111853156666569711635482964661716227516260921592185913132580884266115174789142338022088559994560871184655500054598733588875350869822522426332141667526433472805378152320630421332434010922915964733479092123045985050475089309990624033371036965659951344485346568577944733956696597556258316810932220811900559476999555146248285329870267233372127509008007827147002527636145950018229345905522560186489190017171614615925061628378348350885232608611565867693877666723481808857384876306546485098538918306740380774313901437588053597268310669944183325623815611798676524847929403092175134351888709950704819255150772776480364842245415303558135814952492542484151578025898431331011469861475471744612826131003784190975027786018220917827684232852866022867065712128552203086270651716723831139305997762374425073128413353533392182852556439120403005530529035635611229340249091665232587310142986268373058883291056491724458494063677014654563208726438044353838396979734757762418701923669875479320005652075075669311345276946264683281711266203536048333439597562530824064933299892521233857939522515702460435842581537554930109412442737637860586274741972457748782532969592198964700255382294306133368608643850520421101366939610148045236945203961306127097957229001448299377662743085554230155228528372564219598812338263841990292502986848420429960447620836662827717496063133558772419078810263914164113569012654943633660187980013063378412911193412522641412436543559626926837768811166963530702305933793851569932985746058649476251795127193892011526283527359838721576589154616126678007732337095195590594621476867761906160978267767991060209764759884332922043298137888550519318487618082035209606188439858362763581969359806396937053406377950253997686891540325470559025025481958007898560893881111095246953417724559223097152580636774806786007119625301246153339717647734613043921261170729542406910510385427583841991971275090930506059858581328311430195733583031935104292557654307782279363704610964070647308611596861951531705861868133859090331886934686859372333384503350273008110950694798522667503175319751911075971903656222922273385283993876123860601135445786051990750774480271997574196884154116625625587909051613979041802747457162052169626667461336149684540267923359111696734783031997935669775658169352446434433008823306713667296623761418716972002268601971213944944914670792433786638542623715876988848528174106880738737839494185178504278889066907251803410017608214068863142585239880353620236369706037332883940652163936386810750363198898059379075337780129451827805322311732636399850923473935447822392506753003395366342947847051269173065258556226906165189398751323025778594861262180847146029286463083531608950598176045590362928568141222506536102799016758385130819498101002181867629135502127031372351572438661504554375797944066098156880587495813330286849594851190139754273354963319501096275718217074117927141540042771665189949880076771896537043991537349242854440427079870342168922384883674267999355195630400388140854477787014555661553606551620292114479141288502523731865518204463299817040374496158562313620756554952527547876664034735358427834030510657579554524317328504767480140897517880815437389297140920772985994328230563130000185813161925967977824711699551463098785592489401273902951551443340850213112989290517542228860025224952850391400807231806835251255430339641216161816373009752157995767776641361548180997106757178396888759940939702019528540069340104529426341590019772324019476501622307791426539145161311235079876366367788697215653765986004361172893751818503523625426714210246790795648275665726453699692911869664124421099928988471258394530287335248002201069030642140331707463479600816064808698999417856764120596290602745404334641184857737621263038026781291943927860864416661769518796444055245459593231340013413327144182336327607775020149558668824601667626960190437329554875368228181043206031918439762862790508621246449314422672317469397627108144871328809610037353040551135834712366111061539839852087236809355322545299294461482381727573147359935504542070797719832621936567529483934296902311180408864693199568309809995963324825427745433932268980915139368097139235567331746736463647992312567332300293497112409116631934354147922429960225776517408266064184572278234732234495595651864331095697789265080613851636725192451392903393313015429218003075581473002014984226429251769928717612735655218492590480202316939142492613036196105937106667597294575553035392742403536483751712066031675321176400925662516418024732488662450095383034604130045315517779690098560944085749649651383618404939874697414268866681157470419408344326934463913926599099234957495930678238314901566198401576846007040404860496961417520227746534173637667276966639338645809148659887777619825236142154001037407406742882262326856889992526368316776387195928309094985219578913395677275586748271964995093560789206714952062520517328513615560189469197179493396006434621224968711684189010389796863847425262971592080512295996833188127400469860997591284322918479289076171601128618771488461617635618225167633858158089752883358727837093834439511246911464852283356171464608490581279114484063318717170618201257433137261284658073018847380047748515242817641131805788366893381283571786716083420430819225686496467656433598541910807370924276506470451619288912820729257045714768442391150317023738980706246421636610920398924664730599633186796737562463698932154672065609445832033582262727193946811878204391852143072390651170511482409702557269168628725948755293327988118669129570530404130669750986719899028415446031552074949595105290201893150098874853017761041685107611377342581185333503583780815259766270504289046334768543005771923333559013120788938889812272506136910400487560500889378354992068132680346153361236775165171201280154073517491712620391848326162871429844684476315866159288738298253101936275571806591918002988937288911102516309649220280286202816731936218532856320770848760562664854220077772703761841394974429178347375403460857119362817937969295591299930367164277426664828366285400319007461364847269969785430123883117425809835137694726420281329792901613395231230795136140740904853948930730833489271237136051782648268668292166072826147621130789258394246941463009346999388310148880147280394850701837700370408311943434588193409615023963424831238032785735575251461064989655866392856350376016517805720845995427296642437007633958986022533698720760479565700313314661169491535737412691374613238893713088917860892792878874817379465091202703296928755045093294108677477291257543489719748826115562781242410432939650845044180290115545308584983056336380913434492621655586985159755363668078944993875937984173295704171200105242534171071519883594512998210666525862739251745493063445874356942748326345395534590974429613291429543802527739197479947703056649874886031206472049366162286856633466680934420538148088212873063701965966071853501364003349975577911503237633067079357505316475252056821402992859720916557182476676157639768166210333495919108946237024026470890963962010609977566907143284192516901859352749969899146555967353691282803292243165073656110060949282580352266467108299560355739388735382327040782909239421188783715931124821357219954391222398542009686443708114234988740691090617731513174441835018447638573701786836907137437643697241283618602401023600502052282041736356395805092084517779225318773973060776876678903138066251443654129192939813965344317406338878634767113220859536269386124611316515810559842079250364587166297307234428255161285869777669126299702853272228077355227125343662435076939888960461944627597724975036830516782311308013247798811798722178891190987900083161021880695636385531043533650341152917533325233584967293527324180832123091385398435595672164330393503957969033678944890791573550178409685976170945309765888842358964357868439292375619640529827749290278859126510470536519559825876037372997321597734804631585674337914964825267895964790094695711741545272579691780039334797208427898438782162447767012086158635321087225682613506104685725370111037409859655245853050418961304546465109749208637498986119098296334126082578498605296576042605121201323424655517455205749479855931235138148878461019548932140266377722861304849959197771521832888692984533861674025257006895522648351997978107817569700686187790003067661562625862125684163018953371363320529099408780641735472359088489700400983716263560805635398756376464671478810338151124665090505130120902071969576099627589195045293544030961645684650616557287323983893210405098213635002552129688282950074379076863980033615553075831482471688058555706586397895670274162274771494912892540677845179734083308070581298125007962715952467475016962080323992725325161735245435673307099771447913175957493669998171706542206771577844622406510198535906869182674608677638753760661227287071224726921924853360657318863981436886153364456797247822320175558361573415011876416469574503651608302314897298006614848681642007848178803190922276780852142788177426270456191334741066865171974487837756122576577477953289931884636774226985362370561468501336304266963855852792822284417810434933423341311979844107061466102635565059177507565632944820039377784384760661462278010622935563778888925634802828166540554380988170720839978770435124962679805654053871172226305455297731128179259645589223206811817352754848020132141168125280656853318008439712645254202827786912932307913730744418476292955862515516565314315470440712036290872804267916592781108521636184577582639201968278775209059709197130008167657364229772569732446855719814850992292881986427467822153881363605367726230413539176415001682772994305320386787211117890406186464551696955137554654879571487349907204860918416468491051241633725547677153117996576515906573014295347127832679599807596743834414082392909248914231154312541799137433213380438953870404322114091200578411009438157731367514756596833380380036170763167563040658864793597954446569249267793314158962330792523593873842678518771064554938353925189729040666243534165751505003140586597399031844121037190956306021871467076611732920074695775429182024825033397461388870403880466566022063133865774263030858497091127010615185028542650314255317796014961145211492802624950054095704697586484687635748044009602264108984608911640898372527770754800009378226283720769331925950812428419899552387195474993422838059259873493458698029344958580950720987764991468099627087369986003662658342822142950483668957024667950591599995751835401596873277136565290484579846249663638102253834465180045345557218374710332022844420575172426176115293369511411978710456937759528768686451913551876990484440497387094910451806298616169964171567935203237173266391087671032585596927076761987777760865788751720009758818834109768342771664725122418348768479335506091640198405373876614181060233924448233913107792264736814460511108360851872141966839011582050318816326015947750961901401883660132855576374822815865309687560900546150295594881242260646924643772806316989032352716439371206810605684655700179032813156698794550008647674471042615673628359407469660884573584596137149754536317905190239282582468820545503010795039006007209103411772468911850975579726774881874006177337178454554550092313230213498006988212613389349663283787079692607160516627016507579762232908133675857961977998537469120746405501554751519695195023420370007997701551107218149393182403420967850940008057295773076199950050771259010394381891390753595610367621196893473535336181788352257631856471305660785359708015557608403780150809407795969392014055579548711739904099080363277261082845564706083386995670407611742791522555772114224990781564431087357521746950890660010276408043960785753883326299490094883070498426865080765284582308169431520441857032646105921445643724687234066083054179502711665967527113744793492357813475566805443879678985791288843783124257088243723890512662068515105735396416045016345272905245739237704289364743866547812135039331636050073326011890342864862093158559203737599127340429903954872655859906251400507284258198085562883992476476669419872927991280227116046354634283629840715506344953991221229541966476194845627613403084314487711435929557037331095121876682508481962560082431096164804769788309782088163272810795154090084541042950743572703181427026843866227009094387495225399876862127981623916658451924458794367218740100768991270463580479692731631940507259752047803674364325491151197586261142601711607614790698707993621077660291612032697289244801989591957921483342364544748508199797691088047617356691332842801213190552261853869585581365622294110157632075930504180940776953277936441775420798817372411918781412317720283200498043466055692897083676286975579677109300839927856213349291872660683497355456145655971399834183743365156372547367260754528811677127944748865184231075843053685233411494711161973661423611432922171428008609817798714846949610169346869208589869002973045584282149262705808836816026653886538440308856704279302586818151529196068688810424271132972262251481116505271253408712620985842245956473105746168731792747173634343120902116526938337289786810694770173260368562924299929584698174127607583005799445086741853616653043568968016541504351821703919581918821731000977322107967726333931334610304773332653167168477995413640223573898799626379003328297362032928187816092611027099120612397919456867787996179321009362308351531713518888189807083186878155833811039131387177264683038393676960468842085948216831558231623759220474025645565933171003783051863903478359007699609164944452215110253368595797878329198068253767939159838647610944878037848249644229559807191736687764057791343725438035238446604654645992434883717456580145468463119791599027276440770856118747892206904439461710738196061793670019657736852532672083000825657386739246040072614808464471871370179057541608207017826565494968154516302158108537189771795709972241749113144975169048348340220275149299106245029702513175535313292597861551276972528707204727322240217385695667116392711609638068109699793655007020365826738286445904073454051890317044131645385845085439448867357930213830803087663688623942253794585344087156380234618785419743464483585023894177390169808896061873684017053671336839430231710765130557757511308749946907577338738249998793973705023737100842293450811346677363912866420086168831697430234851996165622613196597704351273709269814047583213281985357537752463010048546968442613541953195545774074031271073906696365659406717985883775055093689460915198421509903156649979193148675884514874356454238698415975650698872617348135124885708515651990517788555511165258356649331092447842374951213130959115279874276441783584520373143569260534976662803052408205125880782771911443903614568763962572371003601393553476675122407130145599961411504559119062710208220562384090669639592312246788231899323563559545063147413492977297824444273044226233831973034203075881195697039896490432761819744031866278945230903681248542389205891021999500360321799797131574462893083387071280533681673319278887958598285820406025770501212721327228927988888779483182311873414798275948765098948555151366412758245974941637366908181058974306139929498618855732080378577920032934000849218296571679664780571850869125292420344621349432978776363210884351168425876786809284860230039470225663109206058920578963872355217396535212930260281452014438291459045495948015683689730040854399686827801908971033866785624942836812885051163973012418944871471519418149902134055342223999580993231518948156938352318819848218946498288987047700555295741296328948138481902866925411406450932747894696116823404348626280904245752233254798883349150862034817303917130775124490318297824434691254121720151051088294252564522956803788397625989100218490772621245878687086867082958817504053873774675553387342742095982833916699394860896973725249643080801636502988875649143379411472561192663432290639127734372671847309264666958836738659519062873084720431418255259317458371341734371252931564796581895432620915049199977774072405382260901342820616099095089980797622864062476802214057207939008139769006539748353795930364026760488162104666462693377088784921235500367192105352367379779587505649594425184687839375744624747093504812497071460984931513312511651296774667787446806006576833345055395385696021879922921580641438084376856637764485422785033863092949012667291948118714906183038069630349941762650614294526817571482900135651106156970706266914279950554038370692033540796796660181320347208739983062116158571517775968713970862847670091311771460836274499072643549363912293780054071001959363350967073207186879041700383661055078664488319517177692118121454818826020415485428743950856161229537993983856047642584387966799297098297327544618260234225066328215419674393414937428746777239889971299894668834787038264588544841630486597482178096639250461419857404468921312828149238955761235834188094511835899701349893356423901812448275629572293667532801865516313367467290325564494524484012189229343066153053750044010282207670651725277022016266747820476665624912552229020054429364405302658897643777262311800799966532816474796078613176937774311659414217927717877197655857343836815520440531401310337747329773442419269158681378494574705241015431944944183092689078652426084269705184061450144784070139655389791506048017201781798070211714931152102748836929598255341377657778375373691092768793189735738880987426875394953148273417510948196058948798215096065290944621979715392691482616732069011129898844381158089797050968016308955237261535485215106195800234813389423365918080123657927289396256517194660906193900477802164300101686768452321257529233287333227612559092491492610817598348217114785219390544527637123122983066348341441580792945173291110268425479557881772024596504450153910442823377126584541654335955970465067783429767415629156224198412889137155312009371054018919496515683017072905243421413930757730130547780057862331390775967475233892476407911672547804773563609878445089058555432376289368180152208589532356842104174520842174857423729948347173448315923846345174779034440389083917720731441928825992220121791938977138794099775338191476296796883186373185562777258384240491970196804466120971640710550887109978622734048777373444162943715591493740219480098110138496308284656086500616436225061710543351781227967875207422594494836447528310087358713418200997039214115298705585198051377565573683446386335522503351283554185609482742880041304088009027870731850608234208876132940323440673671621563788365356563648317845102601015946877749062510436074507988346636161216135223673308586193614469108056443408704225848793244869031556596364395786367458629440292876915015988075197376316079906223153558954199473468211495877948929617777306573356507959673969858402649391508803151422621024844279840596403437261394939550665148518209176297474553522173994921632605362448231060034172993309134102728216806231194432124816631413314603740300893766653497709947897710203180642149296871564663120662495395964248005115831080687801444746532376063435437160241483735266274200306625723256771831588686266512221848444114076196483949899168833883868007029530209503093934525482720764771696984998283857938372013059038355340631718156808326578904750969790225109444618459969331556572581607482353785719922591809130723568251519170285351653415254941002095558037150916065943836216970927793783311592625249478390762835451712355467404016503237102998485009417110939186109450948492545375692809277626339565002824651458197940864017052594006939521830343538079433702445933593978896957998793337847239240284357269847068868596341331112961746774991635483891173256365476659925460330276896098891251313836358679678210403330030749925058519479746732854851018298125271689645474702846321864516312580145432878036944308091184999191027691520459031799491703459789811023421517236781168592010083197140644016052382476919776836948541679849634235735862006410193650941763018288786423529563848098120744100675133703012295967012895843416758645856342773016635007815622284478379709556496039753331435993169743710732946833195099102032513963478097207024751065033727238079539349601665830647012179133842398160945868776160013126683401915682779384343037869594543697522315864144399596815752537509599729541946186339592210706485582811864132633304982791954520751886039030400210344785084660601078278737953420956655748771007934950272326811890309454464918780862716571534710964650472645721041362070273237185177587310104684507196785912469767181347264979975506544880381031558841561003210738664797860353617184479324103840136910121848187411413906786300311303207134087949910347790825387938264401707697214757785259623174908443782640234848586476210680320351017143895823522714124887862134638690503538793235291336121177300325668048692178664357085036536224896151977712356948613282668327393267433485171787763711079079123178362667741695387131484783183318853404518780186578358289921843726146803642430105157312694092873609734804991992000139844838787729668085380820314503177652711079097521492690172211564615182155518629052053740214796092379395404829428235002120641442266441492131482872249796668697531175626079428707260067346503713154867439103380246875035994927377391640254523769164584397441564375987869612346217250465632438175744906987647099964281432075563016541418143007678916821010147142884400811404520645671445519081655967222571294729823284052392885814066092641178667256309677356332573433987254252253489048644529432778919792369748363914845906905623475409989181250639924496608822634791335044808320983236863681808629708471837346121842736907380984674210872522694206982305477462703768587364814366831354099392319687160349194693869979716113589290433480605591537358119074596764553375375765464631297823926663965770825447545679653909624808178578340973345256815219606874738042295312636950568554617726095864187438411935493807025884509616175665638184981294614848459435127002502048471401300571283901310385894244630224996553272971863959035698181681604106256491003527254745133263960468698032106554335625296547144318860931862916122199782160416161362637931974563075674013073442950460032678884474138720056428905871029390555424959625341727794474065300212166201255840726909675887650319937638160629912756430097808585774646402878531801989222465250623782691270913981342853315961803135483061685135369961796441309463126953274196327670427093822945477348378943957765181650866787359739273983580034402054641183210735454325057683707549574631701146845886097190684048539690419260799363228442661522308797569864483809748546371302953018157498269370738356954987189311315297004113580915695145732101383810842189068665244484911721833480921889082729349429670459540303220704855093771770478462609375902619831486532490978421939343982547961224444116788080103646635747775436860860864178095485525063548821681846644970515374472715505284130320315336826576243221218574380016468322009202095770524604983120905651856679653348829337904244853585839781126022779435516765756980273772636350677823979022675871885398157945916482498406346753061739156724822467551189773780312277755844560532733358408104213908331182318120007723028991962014930806816922805181507518652214529609674250031497790137120651783900589193538864650684230947446738108231195623059054440115898167313525935122682346103755894982847978208866592739868486994933257374419050885764313043047547645571871946621433352954625101736042750388469928643042457966747046169612969853153902646858806966470912612380774881645424055358342472360705366755578467677408567613138807319930684161887104257670400661064930203742272229407670188308965902710050055651091071377028266390047772816247673463448323599471583750380621493984997046882720138447805729115286222553813094881155177773566669153837265645691020162044957801259528577936861067090779277460926730092594632074691638435767522607560936280916117212708600271070545307154991070025810450679437008268545331566826528086724162238996015364638000537148991396273858275584132820200794570266903424518909718876869726544864442370056085358094407961780467139107544149154478415980640787360085475918555503547810701982039640916241104436662115245768998889918116208173275451188526367342734124523594365390865479166784215581226662469615499808278929789186664114067499192171038576485947690228161494526758106136961093016024097653901351237598149429308420199064170572738854295998176617748834715596626616201573707683338880843596624230937576673699165538808728201963429887244215975097749043597782185485323514283977958417325354055725707215575044747156319941142048504324138585876480858545945040277684639947337928948666248141984721086968124366834192295584415960236405929740996123569159213318385307194331456505225984465092528990065145467835365800591948817229996708165778313292550986169178877126340339365918708464145250505160241890954699808769294915912508357881419432158984855604995778178511133804706771654094394743889418046604077478607157828974095619945710162521022477871043675536451730117773255431217378909171986731133201639238083370238678537974424900059395528834715697697629694524761080067882690855641259939173087029986275032325100260963068903090378865330677096293767786968116243677575708545914744986618232387060329806944538006128552584572074977776272221264133214819048030397724812530227914000255111374430926856118738793592980928606166939667685027911779334210759333673836628781841301566810044875677016451274731979963496090613851680164890834101000255999247962867893190854466108832625279191198770526548865051164428168337595690420015723397032147167610083270334573451148749619692353292875781817638294555709127980286064580466687076774389188653473448900893782513182345668929509546994673225932136634168475177061977683740002418813373866324585336444792734113717201004838826385038000801758521243596529175006186454285305386882206001509572600717386024271157158140127291726993356667609548750171419931684788899514508857714894999487769824952469757425230307349501870870827317906157766681381005746495370151597708464100114009522730942754947262778527130475988186492408664173989099885081585903966254628079474842765746961371152653549629765612071764421029726964392579352157874343522800452431754949213477778583530859591444994858623352376799245453475873764505949173459123368323443542742595964360561023990152796488524159208216457509901192455378662723837119745552601662880782011066704022202619371075508612754453663427588247083672948069202564168320839122892540062153942713134736841825568175411367100147863421294904195307674792773813703524700931674919965934977579842937574463374132823379409816697170074191488251381108863234552140748603267130596076660835013530904742729295388931098954956793806192725290997639683057116721951584664804431129742529654568653268923922738242708100202426380544540361685448435863717083132718148616587632446823344865726575026178931029319198508375484966210619308898319935791215240776614002204962786676941003211424207799194362528655307827519781575583173454222055335925634607057590050789207286203003731954719212261761850981874027645864993284311597039092836021560295885979046257115665972505559840745529670778492531965890575550062613728512793209921030504795620957506780961602851951917079449474233116477119324318313139476529843841291239319474704651357845003115462144703879735501672438178430116108530632711766232764695269820645734442351671018253587209840779618189082284940413887162653683016948369819090067832393247988353721988318923416211556792547932234123440606981118217579651474897273903546138100189399545118814341918287816390769731733078005040803757266980902635652920565335488513075695666063898382501047925292118994498405585004899402090974564455509950654166413160775592080180972583084358263199367558641636550432799643200191235837309555628503580336415518374956941910624450290898296877655658966563700990376076946844998064444811257176831838899757708244619931479303463563701431698795552159927118907299870965550794203649140235570494289171878098678725799322678954737939961329841831234547332454181488020381166849650080681778097627392360710208071782103320793608115506580359028861823552349392724929020864036477778849299127048532188969699198193811771178331525950891407496182089727030867015071837656772252997221411958074982900524023523828124069125308549848922573957905481482188920734013160407886292035751266062286446988653098736967786275891861258913738243677657957453290643654418406341187145194278863616796683859309615660191960978638516889848273795721599210382730227469896612311231872406883282050309354504101989940616717160578006241037408519047707570252500222170936833183672574605091215213572014718696564482585493302654167906178987425148414243996793449257049889787798514280830651768479094230003128444625432009164528821152364399823457207025937823782251343331438656219638158075697783973355620041286335581658035078066551900187919797173178430687447263101206906241959171063719958101110532523282380186621411631840725314624588844120391935304561021550615248172137530513772871784680500757324949284449247192966266764387963483856431766052642285008833269832178927482199174286372220753054361774150796054354954338602566576847355220715717176327621519023102942096705921042097658781787584606614462231590053579018348514222044405734381142429034218915059434880467284367366205571980818747965064736662528303310521774097849157941654551097275259506407713128680889257282074422838058774654554379147540765784369252506918461548336855336760597116143301511956405039118854647276309093361792773913904235053028732695639817635145203582332864150088029097425605407801499909960152070924232897401673928987788209654308963316748285610189748925420547199944941316774830662537908831695731444280331210973333064082826294662300511840483328113763960101771651210225165808053127608394681090839506622785876592681055210736548505547945961384659012277478990091913888852671802644752488585808732437968598202047525344492034283004382616875341356115693107720965592673469137936499291155370704089903793575953549742904263858222694289492704858289903650075896879814979535830762263606023523691177344764281286212945562885432195373974653031004788551373133814658286885540860664754236656077922639297010179195794152163080541641224006549231038785273443532821092189799517293659617732559572362056093315727118366726346313516382393078904990308992286793690469430156129048516977506662186608860457700723549105076635609774172727362871791377072664686537955003468364373220434674591764582623808430669659757035059818032789377230674957089869884452050846626414527938621541423505677568370774011221097247084801173749267200108637215489193219196716285213388804256581613062975236071517278970039483102032820125482282971233317117928357126145926157727775651899294274877309355575431213261409087363260392343268454992640301261524363088538346914198462799682045106893962809400559929402270305830785267532242819971555524549230498931994886247527927497626282538877848333201050801724084946503625491229165598599533176141164976203915763965683101565603946357025711853208509652502158027511369308675858754359133530312693340347294943317006580163556028535020753013803236121467673905696256566336740299598859959223851494325672243101012357995992223058284887751246928597014202248857392100919489287099822627499801153335256864544546662792498590054664148721361140224745763179702881080936602750089801584188558588095298653644869702443531686142280576579439967210012913708989289297479355911692539645979983743647943279724471352781571366339487238889934734254064029621373701365030260307760191416031977686081959301981704919051081376753478872052274175496774581208019988383622187425193919034125098593104513685049489600020809226115684609188388651984727200230221840526973997838488835072744745384324396829368348668569318774093576682489308704722439703064667822051275000814765007323106836817066658728217522953887549531334948836668016277435778601344855140831896501935246577743296715522432448708473070496339918402206855012174775105019034754119479880614732930347891360215234342386252783821111552306435152540333703549871133453236929510702357610620448569731835473263413799011544851752710717636823235836267297024650781350441663998565497884909225307449288466119889741767715508551481897616257243254803345860849669271060933662798751970094410603031869787260717914864056048302793255269920249975559171747449557767598976331982672991033859379012912931987182416505126836632989545375495761215494051971705642639256556758502404061411400942546696188046578873522171910851089923753661259492816550021595184908484151472493794914860940300101890118105543010215855300096199043188480745950732498228087200908130149782951299671840803217453541798146845212350739672177873877182864291895287507363985105247605418244085548571654298549852289306697547089358288305822831313578946803739322806887333254826221668222021704720970838077897089823885171926750537591654564266893052188586563795410613480473570356931926555884105073071136740619147363781055274004947434013068059178982835692704326070813605849941206585843261929228748737598019236024441677761742805291591348141205303147471504261649935171228615294123641732116706099286923460221102503735560601095309567920034938153081445039416282220703976326761721432238350268046362996018705955000038446561360831676519241221648398231565710499685754127720800731267914853322411177878380454824951225980186771089783777703063778953987919118462875085869116576999339141935697488860840004354241084243741483300851854386429427189045115016804478566001635498895326498192727187345753372938465176847362675263464807718565617315254869051642135571194497243690140658305888755364057076280051803028600112228245417506071046287592253451402911160708471440784732250654627290348133493710821670304938455217166544235943059468335836677756723942124963155606667030110805541247581457685438740219998791131954176647715588611336774368272158537818407190615210958784889837582965121985428221088898277836691804643957338607253242582620858650778152132761576612965935350840713433390573005762177442038759454238642966375832936003816740357598050895271743258619019444005878911837596899036204377026199118771841682260520229070170670084876247408935686784660181007502969083316274709880161870457838864901105869412317983859253535270019425261231646618312935151398112555720422510199452939244780316177749578187022981428695788175528666198339380615896374867700993917350631146929495080305065473871885349397955063873321251296327237154219816540076869814207819464148157876111413478872689467766789351843923079812600424206041568993964585031290868726493214257742708244851098800140659104705481141592904409506019224704358705226543911899010495304554501575768291315734260075400609527736052014913282807774446820334528656160328084239435838803694861399160885257759622414465606108900410400911487029209450691800515618645397273111214402079646877406659007022661913856568040516160163382301497665715226444662161837333555990735991279164257142250571373197907157675693658809192833302291089603748512267659834433863673805150382838953912764613504267214210027597793877831816022616729749751961821443427624057453205821242106582546852477036317951677391601597050650998614033820974947811953409227147480637909609093549274800088533249073081060806135916997052258645143946411663089108781144702338743202444973282912400541271279431821311487669976466663482127304473046125462959468309722500536846482925935134924391263606273448144646428510282910464091541596804974933963783708426905100265933286104129987666358764703972426374727563195904833131658183814261157765106749954928357465025396116488003483655049399753390945522269659081774285993714854687368204803215444104173079819695305359151937187957673075246550015930195726117621681243614106504266246900371989274373752025835587577755686353490035993886304948808159667950726555226450766390458612857197502330720734118216287051493459985463689594847553750137929444727231000446345736382336270320753445175398519392672442251546509095095880226827960883143768670238679235460299105031646651016194342477836664162427159811085240911034894057776140384478656671858334053154043632821225287262829728518200708996916460293037613110120679437589775269320541439143497240239037733419384428751387006453705160218781113993465735925817704101911524312104933805362211564942142556393087959954539763201206780015788805707333010576948375265503317571854995410133820786876534508168588309710229092199725434659599965352228273338885632404873657740954405014787520689013243536515481435239493717469375196397233961810565500069660910274305745676312215574563593724214052824516625861719853613381675949464643929618941122554488378718111223380188522015167755453750921600501186049663436986866565462089499992013644473630360545712259231384262879110264703369568678407524667479570031049148307623141913956278926924529270202717406354622650144821960926483689490695551045027022199177636618278409159182335794323747545684268785704978632564974926715468026146697251755165849609968910366160035951878150631278641054770064852242987307664093685897083803296863705721098001669645580314932183993092569372689728416585538793828765133061290419646129877294845561843318274366651470305044710723635473312983162808247415693236601528453286360805576589842442819052992173123920318161899335721646837720028658479859028996490098760160480283281474179284268904295464812527238474556272150738675094978234873016973921325845154531046692146063690912100270087022255907788134204448634968979999016937618742755870852347052172701985125787632677959742413357361156129848757151111048961854138521922928849702240889580181573158074610219860095701191285355110293985353847118721558172956736539949767617577056785390513462691380951188050568266681277558956762783922668064251412681713749193611943922140420784499070516309858650473839195099210011332379171505697176810193689977929519379263996563024183134635435135068472270288390632733753740436520109266567772738870573760264237231501816074460168368896840702666756105383854274912447278118475345840628138393751424271567932465089422727379506186135671645356222085121213137965048329785460056994256688810115882589290339654670098397515650063851320491922630142413661545466804841014276544950319605081264276708540855483418010493053836501650601040121655808432033991572518314032632436464904601002178340387269038634744816707180418520551287057462914454440471157406420520536615793241698723750979855372670817010687659882827835207241198283943466543492654548973937281001446512239088986602622885484712542640630435746296057894496344758969776714784433596622728574960098731388847589086735084713069753683627015658183449525206639019155018897283240878500581010862064326919380461439872444441345274333527705052105936288113294327457057468365183819122805061732294828498478266146269765888798242430278658932700697258649592416987947040580666015918279109020834611875650122131633914558787127466512189006089316239312519036991661415291676237270332808391272084092825996040562362756989597397892536982407022625640991677758240506447517342761507488008192140759562060874701773848960658589431212093748763628824478162475921652918065536520239875152127849571184005437981577401514855842442439582643622306159229927992354240275544126074242016782937152289645929026009376170122550270377009438426992000623203318460102538287138932632824512054267414436343412524631777811355110160100640225055627556972731348185743697003938410388551104580446974232786376691927823607891563847101128814446944611964226109334461836087688421647361547521829680330781016114714564981351466656356627833426020114842818823397176045412203351914134926293937033670118649034758275250765785670375722486695487579753344989425850250855621974036445281729715231774363297267655711512318451291099480568386188182117939423034741812797723643037076825972406114527996727379986557360961099237390675062759615017958958819327784094677166741540766471442909544355930355108738145215403692253300388756650204380170547062954985344807739194945900180541195207641799363732130126407391043940405376449407989342523728575450478323649781741479781602535049674069456797984722947563296337048735694713668805232130782137368533569045894670345308441801379583308083018239142744865214897792575951810936505137033215893663756699226590224235938159869534034724110019366992471571869797825095538308513012328225514095249325742003102836473173134515693081554731910276483395905695790268030888577216487129496869349226206303725990457935730545693853631933955067290143821735867286529090545409173185035493086238239136910774607497855786806238465409466128114268999205091211923224216345017699684444498256210511939243651788048478254916942292381565344482546507088316944661554527186747010538964401058963860984834748254724233718159111090807787091438807746556994282256984963361390652880337557097451298212953602475880654925517219296522854667343910454913349701304382401307341562879735353773956759509665970701052645731942875466125242111907039622563581024129924055152195313061815936027225211111952744574997187400009613863446096635811142666346903730647670558393407350307212030709674725724462225020450908217436271394506091942468725012673096318327947300923447057964096152292072785347300968787305132307953208486290684304617968461188732019530981590811735712610234536505092836106143230304018829375308463057899913831008254292653349761674921354361449313008090590776681360183602758775216184249960588396623795063611592175792965957671536812354677488396502981251802772439185657580787470908713635236936929301876426585010455543299898711894583326343057134613810327445338544433944384004929344684738327353342336668546101408844826585389695342192280210879830995230053666604188112131623342363762486032082996697375614038846955408182566838536516055096825576119436071130878451646884090309650201666234728875616326409300070405881270290723818844502773989063165860716136684219403094990798625890720810905437836397453480197271969007925151777863710899520884014650190060797218799942761908576353427450462000498940406241001919969011930791866836328470973091602753105315118844291100531661428673294817184310837651962834489961303416166695457122612163275429494985316318495338534392357423398091881786049690371116866815448957986896188584220798280107186678335127036488516112341029177694141667443013841045463909836443096504619998509312682636024216884212284160422477912309221447858561871343907919485960798796617900974602269793323322309251983268523239524720159281230110251163724494043376371388079734186826351907397490519761788496321041422223254895749490326765385452570876190507783281557467073233357928165537982853342234093150409737279727377724461254401793407337221219603744647726048748501918401578002511878991868258268844547397116152784301308900956664967269245261677802660570776881755367499340654063254820808833931854827976683689935806519427750038622030068416598667597803460208567331990807179415705434621911007156959336906886149868438850078724329816144456307468716725872420928410271366128011987599214346163317625092582287212416012551356982798352214176992718042498343640651751240398384165368296529784065510644570640388122803205070409519226228482372394346410416926993477446137720411027650780175686419182790351917324196985381824630764925768813379489341685166880526120457782481617332419535053263961826427032586853555849325021286767727405570376704985385511881534670536470361677464478323311110433048689986271865573960731411694726814521686174744609730905166878882975088019771005275618894601177414871236223221631727378874714626687029407948204795212370516056428448428352968330737585540716979210440233594660963711906022421972886882161335466701830801984553558938050962770357371973871609611182898632878062961166102960509305313897281542273666702034921296531065147814905908232866900447356680008373187467686289153040257063005369054142179964844955518110023908777899673777350921816138583242826527466361895394152231075137514983493524092022029713779357732867295853720729492415194462972899232028889391048965584417510493395483560759195192868706014495629794328268649627871168365293626771267682128465640528810598668895688601582967719689787253514850360702232105422731636993741851485944621968707581909440724547882796785949246645139397064531551173699465431330352848020474233875953136554401919945267948528252879168081744377501723789568712205253972108339461344081883327170634897956493140037199737907805450903040650545269283802100268187115837242270026817644816326815741590868787141588981193277715932152404283703072111734830766767243554262048759569825278509098855151421263664161023435374634891171726349252334094726327072395008986594776412708993256450516943472691229222555490230760724576924795241947020951991096432245306392226224444596883941364270614232119180055617848746818991926690857159922083998591533176200110610330990424279281352650611593664182762765478662538181481173260435913398813558954984662304721345339101669469245500886806485031952764765850625660316747881875646754966912748740164908354779697874534937743304571604328697002534833359875739960331569601821563379641935503055964239412935793515532290730685464138067705769553656922027136454993780395275805734902644045878267331666034062983939081134522890554390279786049955292802316859548404488389309397567272026667963164483882670410207109189596360391775316356034183537541526570328092110336055230709227215404401212519444120748527991183665165693625224351329849628831328915080446867536585047189321287140265007879978274987779376946855450981946483428024133711433625162987377167823675636107586719449256322107704813410430235523422364555528724803706055595112190250581498905667258539475828466476871694043971690231683463908102672917249914283957764108602721524380144004495149427481317771805494977002880569204920094130979239582083061749250641338075178264966687463407073479851715997631900519326354806462978987869620285418638758998663281342424967784822714794826518357945312041200215750768187683530358098191043541104027696017429367936252260284908702838187227040358718899781823397232696876003445123683683563150346543562344102075293062826463253836623162697303849186908796836309612919200150716095883537087242372951242482986214439280961625467588895412722023878396917756994822351242806523017499800118485127484442018955713190552102067984052389013357776791325803761198713147362204601904130605209132635805870043859906790481748645920498297754933522768421098835346683211160220677313334550723371454625443685377054975644214157863044988993547599187952732894715162230526982056227127040379918552749127075787204747305449356541498370042278346487691359700634786844808471042184563080293921619104440035608349657251267803203046615462190705769242721777785279568107787212636797989429269633100717363944337726487422431017563309568979101425156695980125804362164100338586145073633657489670549841142680924366348409794440397359074336900911211588995812933771192090740357021018249048470349088468089485955255474926072984381598822970314481636308942273486402298347478504327401202606050135218070469052678492751614959797071323662303630188518950061915841091355277074293272853526215304630192069913859849926364753226283602450701321632696957432512406386217078165390022718890501536063095731679896719185736601122291772338235289863072014856984852435820005546431941770614280783700685101092341913543507854158007122560243096972052250286284026442654241407291371041873069788256090381580216568323139594254798017085405061443555936418339839152183575400637650887399204950243068539558943726444644177976014543314236060250121635129976383058297535753045919541676059427320577838860185021815759425691566668264468646693758386114225980783705664483342796980735382403517065516795321513792881093478132840535360360892740646595802087290127588293530419904262387361600824312739762137835836259894756607142686161480336818554804100014933322974260825972985852202880882808023357830986152143070092021741373370389389992235543425412704388322413832944698332239164320865120429181936215423128604427265326946438935938040685402610081539157492308397080965500216087266027523538313419877278446913183669409521040825825558664450949252208596349592627528585526486519642487708644792133207954758001831312944382808837813651445354699593873599634781520302484515115376950734516046745041863747296544327222783806956997358248654966180199924289343693883352608991747472426041596836815891195589422366173729764056665755042530573321613141847164154313739945012571403395292094900237501770583044776958958985478889887080471230455408744369158495222287859202146110182900149599334303825675051558678757114154505324531119867056194186433434718314730707352986452368589301029348054146522866874319357211233897077107165133515541956808602598067833703278788168116734991724870376835437277757590108700173405437230580230946388182906487122002766486391898546943240383461495879140682537909739175247307169602339848774869227036995909210088833576591520658476676623312873394561937973185976981863585042414785854529372366463442182899601082076163027178789150248604262999350846065007412393220163387448467495402594314103786560955950100360728387622530343884574837401648931219197338401946264097159395247680432003080131772935176013186114126249171553089855828334614338151990895359704960160674519015672070503200464837803824071781538785944579682854989136280001507220457117918624513980879878195229699950095397127033595145958690608801109885087751369926321069838388108970358340022923472926410576596809733399208741384844753972672446627962276277456479360211523083329980866334751100868974315075253059581118004285620709417586606779540017179640468472612403791281567491568608073276242528594903990063487231593629982824802401543675844296416761163432534993626137501441034499560219551425725930820061609249336817479393622399389584842930764021763756229596455930611329638015300132001099495301408063511313787826432452530794880512042374602412783384644854296571817983447124172747801353526542902287653940979093878706010960592823392378719855286861447654548791791689539898563523915577886843112026293918098327551781227527955665888602606008850587556345090397251149158940563071049154849449311202565878769764830337860553023102394715549118430971205577256634722613022142110109864395706568590486642214228693945364549029718342118719290224463489157196132412610801816195363437077040263930814972981825136414307509566640225410177726110168635995561077404796887553203351819447209780734897754888684662807575947849762943329339612399294613234450565237716003231278119242960167796716153714092617296828292364835885364365517650331315807596032852147541506209396965957001454904620419370592235306917289099658672264210232699893883155647152215579127422338695607940298814280594095736026828123205910200813061746740857774704842492772753773026100100318550110240249660498206949353327954181756137276578931373082595262931086044706397358847658179202645733953016262182697848999253964141534065124440357962016775850955481227029216991037400342150602374729345197145928057611794593352878417501879754866375356553156683521551072365457578191356070206684616122590451387297010196027474393948298636533256190951205758329317393602713108725978146642044725747918679908261913433520050711612294466629376193945068906148499155138152004037812118691256779805435386761849700172560590036715800300357835281912872692232580944303466731447422555373128962442254189504798561040123599245439930993128858526197601681379000058336103937787767580481896779841481871935627823794496770468376827111908740555254427311908210789971719556737918430596209615548659104804894587078178167400989706740339899328114648491604236426419084699349596145513304616901566318019465982900127128700037583050825909555189403456390965743356053925099870433727308055459506015452675734734230459247597458534619246588589225478000407769888970372069647795389961068716024362508647302826588796077721450642731938850940490984472758521991977512455176413516406334494008471344047217755678967398121198071890487897447717251983637951066374968219165596274311143866464545838453309871450239001151728929943715053469294349476903493859058067021012797474691353461158813520699106333497628837509728410529854327192331479401446183277518265479848575112981735758974079410835356403391386093693905549884222995522636294657384064827150085654276632939193749860330049597931924039525886423114272455428751774353308695272763671083277156154746667846862741494319710130322620203111536468035488844063484588557143913530468227009646478408563597415479344140570456290326525806514685601241348561015634159549376598702623862268046614753165834065610499051557970375321484659548892108735257833700460018245551952305842264824842435230885524844650781664367528758698275012999406553748292959922776622789007378362829910389482655442859963992755420137334275060039215349755041803899395559211743586295192135034765837688926753955218724242444380486349344309946823707791839715143879143632783749399393369650833266370953810135682054347843168408128592407765306826902101211515973508673956160568076857190518542366084421324386432130042408019974509900804078816147401306282221571291338045180301470529632255328042266026790754900196479349214556401808147343258691183513883037664715175140116732718859658815795524794070325938604947426760223589394627240740608766976604596499888335798711006948749345068276115513211606091768962062184327712356354654634665798646659980789109540698821662001053210617976955348589197487661391915097387313571945561052837065839525047952618471749223425801071112090302033541063880230894955773771345534940164235305432728560921937042969279025910168514315151574134413357409506178290402840033587140413361995762772234551574154283955423033950602118177189454615697814209872181216477271634339881581177672398847775407994335088967424922773632432736991295275098252718145882811522362426631360146593245020435822368643692040909732468963042870918915156989336027275305531816023149039144197969583695025236446695432426228001361836237066905264966862968694319915387574944788052259540417476359160827807911939895916988988231155570478994630578909353127159002819502646380768859141407585060573473219528083764068893028282879588109301854059778797769216864810120344809788589235250774782654203535254085050265019510715601609001385056090205938100999401411666420357317322539303794463733328701234928614009186634183588158155149684191918022006797550371579798956653579902220201394472872914699086635951074185758853193210682580410944098502308347645794643251675515957744401407796412337994651563030154065402777239661695163630483053063345281648969056308065912220229378659838148942227904627001996364265334491935628213795189536973638176154527079775667092772525115894720623020891350440295069651881128446180486697527230853216537079319861838386034668104992130729931916642601085847972095182532449953714422031593432294117224412459079957669260570781070810985440555072589522148279724041681683832940469207787441790077963154464677835364464581216842575519503267984443444852938986648537690427199150695983164598816014065389767941029165585517287040941235249116300491742614438035804373114271754362641063974499685069123808430912530244867553017517012770569459988312693293871833426741073611352890281411067285156453025926850057963856131222968392203882560606803049295469230041930295580081887702703390245493736852769058670563587332364319295822650788817269983210991183702651340670518851789071990646122623707808207743297239476801440822539983396670820642243292317915512915090056709623874090654401683377519264087175752925820034270815774059865747449236412994547386108815167381859660099032729405047862544388147311520254822088619806426333196135086182432410437641542222988980351400854189358427539166953516038678626438184271763885993534253329942799340273484038501826212359448883588633732570711496974278387344411621732360303999763865960386420882916095230879354804568395335018958451626415850756973362363952466297704837861672613657772212415442878386466526526808245490030774315819544444243695445718951717671319796087285586667535535912909378657982764995384796162662466059627148256299646948293309938368980086304732087291313218946633846380992063561273299397225022881929539067690869223505368854295188932652842026764250924733098608839414711201720986486696273183282910117869782447765094545532340926029851940687137771090821995234634873076348815315467240131079673966391440545288294941157531961366736725663126793428097993963146933398477365876986509806836172827904580998073502011508427532166798349838895899732999403205534682692177955137824736103191117028458797413671756399966338449885086862507433647901265376424429311345618709102146673334138610983719515273896425518704896563930579962843425548823279384403795919648030512044053354234845807688083841680389168990987174236081846227711460753491891735790825572108385384481838172660658480337027435055345012659841857121410315753625141243834038719391874227651249728549991490905070938592453658999704339966501373903932556240747010773259336309401341223905223882624172010964298490942889366114701379782060287606901239490103565368607801466419857553247373435300299131136379847170854533308424184920179267798401301964372569340303879660765091337689999939388566457624593914614900223716434855969597680449712247975802055016074336933132682041980754066617989103689577810066464975003494250602916717688291976681010355233531482984718867930953774703296004457353845963213577870254133695664757135526781837818037105496587915950102992345782949295362303662672664595716184804144397696838261249022964642552030729199469002454798567244107065187401192039812738124363392622856359022411572248067102498969116146169091908877210875942871371703338436798724261597449416323419690438368969211967773949533222626828505825700763075603621857156597908553121345699078475510562179896872872124352725378544971815553287389541882078469246829978049996089244893526844563380996422214497570504357740904613183821146828900193156016053571713798597474494293664111422150139388538705431731745594409970998369704368340280321350005150760909631579063879807411057398644215258779033335763362368651581986693205641328729578633738398726954422811874297960097597313707806139465296795783829819788196439528031768724584121827604514842373330642894488079126233189365955328054321448067494827506922537570602237513911532475349266581450002455418486753629519697433123773762964881341848977686167366224959739452633056206281443844742947098876774710811617726748393625279724650086353977884218795389695335384730858637534329437665801579523269590501558737805621386776423008224380321786993145268362395906059476189624701975951251763322390050690561053596781097047714835216307105170284184613929516300276689096198761171932270714884362915348525289817497273417516337957890585147113682578551401895496378750998014329704754579385587153863173197644653756240294668355827443468576043160171374928636408304305354783430665855861907028099309678910330265939382476540161524846496934274985457012594531154914932383889296277844481865927680219237884268063393764805645672356686796265127514324243895852608699609793505221406840486260679048265902994077716479458427011956227392378579377299742448192141574584690129484073575304530242528249112075017882542387891796679836672715443481724190188689124608083886304786147517680368014189033026370814530095759410916319249644475668597251793722250931734612390552396480885713382224646220732730223074508313311938419548299894671218833463276741318830800292353338538115647463813751323422295249152030452263909451407055157142917932036731037210428380522041132125930925436982326260509499571275241743447173986480990102732274421566211727728210642558405196066857190557031039131119738018321666243283989758852440250608327557519864899232249222282583904684887722627782789819169426553169962910513096209289314325186255327815806209656279930808281176375138312530213357748761374293089590229076325567545339147995007487042584624962906091358024034952169361983838265269145439406323711026971831641957117706790228868656507126849084556147103548209603828502561084060990271150686562013574678983772618809064316102205731786495496624240606370266042249826903431667947251736756053794585111172250700907306401180215502754628446713457200068240034234142462008158403097602472372386356747343022213849824742473072134338163743634715553582887840918237393164288734572802431678679663337672760351749461893098507284681029877090113590295939765633674288706385065524633575868920292085168106889187692399871594041845534645919319366250757811610992973474504905367588906938880232594609238608584184535330253795000139045071058021030518772663602302540205461418227678557040388469976219628398040396001761126957524343396059935419254629737090544987378022893553135550752843682715236937290670006663700421353865029156137724705401312331521034377272889227533626858317978093439054268217424300465933109606601502166409338138942886241806941525583275556963530690247101751425617284242196260433484248130464249576483750766878343375008679564150530546975126360063513779001589358354970319098163499471940142706786928316536360617369763815875053644140771211762565295433753109928855736921619253433401409501092527055424957012534856889894712089061146441905531356544114064537663109563267341258942759637532053765003961581133071338023924743018412496588658161389026882221912865655945010988906138905142613993691525021074983311937730306491872469585301097135086882584138225515734320501228885547091287856713122046199243183756719196775756945021704459246832678246527880568025982037770239566246958151463791310606599075353352942725538363180517186346276308927959845836193445647476908071330260375225629290032661647187759120676193787367463528183701952530357949697128216200003607995147672060118276874148162470908278231910690340754993079089202508412564804037063653066724297187945981111061745204698678109933190542098380540184016413229580564503368094109410138841765334269677820933607107350095087907704772734898630770134010759564014678051062712537801411742362597058322602147868126531803382399935264548585500275250891982414862345900060142186685034960321297217666292658614797245004490564147338987051540398668677101295869275643861901883165872684632527586904425308728830025138943120538725679217507739541727900186607863720836937851408668484301169838630721965176509210329139274556777237768220285948755611449391709910582027125093557201032122578497431581185967097316503286105437218481049562575322969974169611349013088182413325612226277784191261595168861777005698951303454846451336425894581798192928840831953122722044171360927391306490542064020594735918910718591612849853199733751910747091979269515221469274439357375924572922902018140470058543465906138161918806605584684211085470658926696743229379929960926239475996120542913046150360002891617576482620461607843330665919748297421912103826976306044693971214309489331094654192974825982753620767529250352447727590555074282143462381310788052078667765397568343587857787348265114791962301850997665179538711411755606902676362813188850337604163567723907939131303403824036321389254775175721097009333981658969993020702031634084944618985200471103659689239062523723311991622336222656122347254460358977799080239349065475791180950749093033760019349963331446860275600843186899973075767936064689569209131051963948726967224609679766793739647658559233769110201730566178879986115319882052891925228781163374124210503133533485204423362421231314384523168319860336310145567686032395702182239335230792203276818337914671699801336093470255080942406732555385835867354796533226374203264150949570388595212167700436344262419686068861656465522395618197760880809311578028681754913201408478867813252292410894594004842351416267207884429451028342670983102541147133671489833362841977349906205590406895953819890566932225911419868335758775020018505933888161527934836513239822282072591344659181367871440575219818972693551985926282645050685297881957115904346021042407738786775253017813247200207244988079847652087290957782614012578073083701168370354783791672416396148866135962141366842171828847572969170759877898716015244607253419360037153250911333197524112502337860085534078550971345899911746162155793989870969347872676831579064219288292253126825069521645046550321409804856176029219088785551275033830463453280123385487640907906719004823118044664335784190726653146485705447050580562770030610718712358255168625290559912635087445921275942847519905214852684301808609110962974827667202785970810887208173486579318218479249092547346487902443589366419850761127509278588647560998071825725623742109266044393848111977194843792425732573083178360065323488956207011792098324466035436767079316009218267537028539999900889196519337608054320272028759758738299698406378804859052054864465506988518768111445180706042010895712318817430568082932936888265502702507718105859830699994156918971153506280542492072176142586951241824572758138146735460377163084327270706774152002965217358094863787561849447946078309250829831136948747710052835065289917341284105899791538449846645141394881489301664778750889684306701838598007201258700789837890486663323077571236015484621782585438650240115415157356275079932443112200375506034179602791780248932454186958568657009679154397896421610305184750712197241706601410973012494843838125799573510192878848349161234217194436450521166467372102313639541666893986539212592581692066927716241868859268197181384391840178948875123226453097685288575781277089440084044410365303207208885628639236125929623598113329391938046320795688747550599570898127852216501445627406760745311011109064108635955683162065007532546034113716589548562893000432043336485864755859818210039267933929275101960303543942080815958883275504675238512387545385220569399582116498440980509310307201841201581778442752656049510089771487436054921384651850332188279055195769039407350091215659260303619269138623241910667191742386435946425121806817039066936296501139847222973821541222146680380874716169406272198513884435055167017188909087405225542382022927282337086470250047221630407555560087445948378325638644070520011542034590617466298983211530461535007696566371257912713866419142376928925310404117822946696100395935711100818997596505012198775561686669544877896312108604685250599275788906790453210060654361528845920405338099045315783365354913935318174774172410836238299739682318830511441811958111795374159887116864341665772248314775287366650248408773735205526335441248566495446152101074905231224506072823462369956729523807571802763192265682745641823739978497159965437030882997000307339987897811610572553718899783134521813908372909368870272905171930105978742894016212796123437743034183524816834153078235492280623712906742227268009660658454189035691618329149828600037694708714786142179072974694657943624967659050290447012921270663046304155773186612570992702252684065759039928088425001620995863480674848324153193757838045701223541557903286197897991775871229841644239750278782478487739911490755632615906833521167580894550209758180050966140147235391317230151374866985007115509872256645764066646412086003224729101845482211946077564427314264972141176026457267256097040013045102950153616297952902077215172877610584861060506042588056644538463168748540133357657025959328202333882091492201165283425783615346991012800064703530734694769873237548364114143367982716687642338210674979999680956459498346884764653216495129463440316258973124304635561046046358651223995986333200121363451012568609948874244721023942425018173932874605646530340960980753617050134175374178997543604692255235956666925999376235446003000708132709225193589831752614531429450044320110023309957213226932678338489894402735720338139688406215582775101252255021664848634155795150586299176022771639226790660278437860117646395900732364608717370918981208782635165508378389210684520443368215665253838519759541282249224486892497381654714004972195693210062181370503487186001261813845227280641528529876280552659179718097033190488315170338528311321332321704629455386458820607293035017279341085846120895005809454467340235089820628084644440263207967377469906695635883053359637002214620234661667801677137860819085061320925947656274790772725564888018445779538430199172611840052211667856987146709055676239584098552996238606757180881756801391870159536459506934087680862780799586534205217928423909926114781194677033242380022611620457049629065809749824403562350774572186035006739097335842671823326660526770999038671684112586583000897188558359947515742326039381469945368827407912773747615070359389729777412055709426080623061329995460501388549851232797899367762306095283577467554254289651896244345448505111141341754706195857682235488947168938428230130343854906763899343806181057067889927167990679188992166950736653213827836398389777450707670732358335303845124796108973159268315583103254213852453526623949258974835577446931200399239666695060417360740244832478945103749398077824282157182198273814761418667041786590284863712367239547891646970926322383884391063054782854011800706573319530007408851630517488693884693059763778592030684135949991938992451245796183297780484621529365801298882519518515778213219358913850520155910437371005198647888278880492743375455376854908037355302639169980649492808978291405373061448430156480516082921352726263606405537954963402601390278682611931023578023985347887440432760937702233320363394817078297918534126229523822148478704424912363010765733308471509275321128442170115259426434797178110631410957172616746118533810188288183974586159781027292011392948848778011674282129063716532456649061164591339232815022426011202325793670646917278436391136494083167103820929013477435069208810203763760564507386814555027560290853355219914456432748167960407534256206887670050536763951270321344731987185201829485019000303233741879095080434518568450834288579939487266071342376174001970392671473499575908590495164972288580280500927845940198525880355635089962906507210451583724603291949653053923409585527698149330538627252746948122476258249702905092774417751252280630316763748606074995875437986953624891038928875676225713636096784916046538377235784663722977826727720800552999543555076681716392044962252681102826428887598868693464579209169076074814677032484109882810699476553541310549211178031854501411689223303904162614814443443065466635892782451862157232809974826140999638949134646018804752421180352016500927529289021869274571915568438875714602486013403245408990379835366924130973133252301425222790811155130468159055758460766502498307304187565277985760239557453542517781518222249852824730025163183603337988350982048467929460049948587530872295979652495879012687706206824083560851137336768409337014252375192750801266479660167069236731731798801091375105099322086865886803956018582412301083475108608002990810926903936199586077103604611729132542314188435016669247535376207375796225185456592030864783203962876243723402604459889448793014854015952014053246638898860530135450405842645281306439523634966085587665791721577839727284459275726786174519836036994568266104766627416295961614760282235930882531877807025319449681802363854378988982076073130955057403824632591361526557101913739194389334003232204471656820420117348086982558303933656464054921258043067643590564355277193511476949473402494852540678818724885043118379866044414106897557416953729278575147308137448755936954078615036797933220526989179508699347572200353361726599393207101855295851462743075911808366439358326490146958651568507991304510740995014372482477892385780336109891620677496703022097223270207739099841878881466730220877403866886650971788109199815921651902467926281503970847444005780478204350218572625471905939616635556229634278985886464981714224726160898006826890139128849164185101975514209500362212981167894972821482412484453919584744198597025096191244511829926997988286040629666426823471467403056353830619992759446747435037907296180882935721431612165236290801320790048876271947217067538472576861565785840594464906187859292093279775930260867598956940683430309843558386856714348368339196481264967118280858525073041788893381696043726812330879751122232931083000701204980157229399700164005715562208249343817544628859409483375098288455344293620714209323091634122914384228590846396053309176046333695872285068271068854673153914526959379154742024369509124293699510358513961643437520757886277131863664694976836161915701922223200516563531222844472474284789524020803578095310375637836858097917574884308655158604451307360688090278310094603220333769218441170202737438389075823340815467750550556987598188594468017990249896472302706738264516155110273714975876792873130039301258113095391124660634673891325466695790205969700644299639701625740767240743423681623481172438396273095986914403067870661904227050871525025870027487841845850075289083206421670156572337858097469804084937793756132175929622566522604797977157735910634267172025897871656728104534893652290610101589587562704923080418805617560743502364799983411124437439487836084636628635364514805276083341266985028498402089244098005839666188490346341303739249011308115341602043172770827536308126152777712743555267762961058428253300357534629403263948183407486146879387523477372136814839726572641713132038430663287465900551740226839989423836155903503784823357355935959359779100797950039008748055169109081932072282573728426399385824727001118456760229802009543800251519060135435802834127776646221321370418291771535726672150161218083723836685850561344533531186726182888098547363281945850544790941285312794576058167931447815400677008264701399147026849223216655279907607950749622955170839905705448649449473517955446349836155608181550031816086917531392225126240614468226751498962182205742800744206757202858196353488037924040757968564734371614048848515848056079495841762410221747491830928968677134038954851440293598671792470841414911005008774488843263692450944779242484447425701084073111410063393322281117491920562071088234084561243296477976808051973285711153892090070141657731223631295631974128680350989122813761947343271329035877621207383600976223413441302009654502880365744626633731328973682796868482734907174384033106189956784291798720018686654448232116826413259250097318075425901889551462175013347076913101611674357883522464356274651183496360803260615594663524932162192409578552197880779174426596027215031720480893940030731875512974465024579604185037508052439792533401979027394312698063137440813975137559976038597004086458663144598367376277865755399573808431689028508079108116171915858920104363905122723263411273292130945459160419306222433451418161142024305025829005593317613374578303077229457705992836694760970796073258740021299700923045999347512585796604146665664667472488693680065222549091553670168632323072401816993698374302507618187658379744273619545265761369569897520209849310032674298062147114091672438145026411277370806235987441213286015297215907374986343225365061897908275486032432744289760489276778862550199712964343038506320372715112350705872981262533451207925323539826030587935017338912258101167266830274988279279612059531028436026258073154105412607144561287322455167981622049083740283890766899012467918612583276326740066170368552731694490969521221956039918809598708771127196361047083420812910131444744797020238991161470103855392914928782830044532754800127809096050893846701687213162752275373590065155967998901427518439490609543836842741224344652201605433444941232188724957797657616569170636361485233601488247899035035813118771697445699133138149759343386352335949118561761939657130660826488946046409746599749963989701213336608446832707502824106901655611275992558870228628139096195831554662415624270752873757645005409818595373876149048880529404032841068877257464667100189301517893242691982554803424081614569359336386547136416331196958341774180490829090312602300258351789493035938750283490865656040105023163022229683324984777646593880012618829249581977307390225542919613103099545769158219474942254245177914656955239698578869764327649682508756244510964756852900353066229337276237764087974429578019253590404510509039376154734702806141255329778737186386171098460997724760674906774681688789978238280467961615279798599768291731264619249340753060792067025731344444359352040747527939161500730986540347814733827756900734847787756697418789388971893802474041886700994718850451608621306573617962595717683241117337861135296069932362615494709249492042672628567138968674787989902082346445041760792500728632704446557033981643805884158121572005006255110589099401933552714460381312949641033705031724166874267265012103510505222536899719233981163698297381186872961626530017655841357077294547946045972133028347182015102853781368428362245023300516311975003260409523274360804444807413116877906121425165290956509941081979433906566488889666744342081394615953470170538822704825268087293720697921109874895548839859342236554009489451485440282406327191954120813872400672381302464828664996908531252839389534358038924119654689153931774427656688558332733726940039246770660601023607495284481023860101052795909200116750801850333344709810665297352989791201765937536945924110759179014668735406016801145015315658117173221031308790384782985736903750700615525881385214003504661635505899185878146880436982424516322119357219147279084460646697135596648323824116965370531328217796253878125459707714529584847837759255054386769629119641582171065033424180461320461665301180380826845293693993423937331698247689252084195108000005131397244807192268437335942150497168879846921335297234702379328006918851051085539506475485604129882794332242213767422793344123512867508029831491379925794903232099498058501792737362875843698195032924476145674315949643111496044974714694343168369575792108310034221514736911699448288163515198953348877219916495368282294435440852073916142958586097729268016354196346717325930064239755141410019200129866570287988963630837421021972842110659169160720837450882083107812423633097052843664595859608499178484652750491928047979770221711057146742165942864367463388971307762989328116565817301757476467545171945081315482611726659023618551007869770310870357646609176569695355183990160964134750696761566824098815432358973870831630273299805551442704216343513407082474606147610839535745965166600090020555950122184782510547830657427841154092567065019151460039441767352923496126339734473981225270417280601585680865106241684659766810811804803023423293111342954033660001738131332335007150271149425104550571947652122665814447270350445747386482436593722770885910165830074636925272497216797046741994419679177313068942161367906601160093317991188064576655318916544467389539231265647312294314172947466856215715032102694238507760969621204146791427368026169528474915155267832885235434494257665965054359992865330026336988156560460535214023926570834051757492087987149803062548511013947005011916491693695715287462438809631049962626005429337741942396401988155313145677392824464970533639616596429753649700198960567586175230136406032839263549957531834984235496311606987865677048824099107128362013799673484571882962583799249423046668251389571391623442974768534002916571937312400863366931658469795959861094698595481368397343227825720910417040266482067509904219840523568659933076767960809490397011203762016697416202710416030010008696980977755824053891804351408315221123805801787596821392013551401003172875231020675793310455478294145221436580258015646335823139565482348807137810606055120469512595455991825495710253693039381103498717698999687717757947490542218267941949960555597045570251254088904822993160856673586028300509146841851028266731547037275453648250940889799780384037609801745851574223867560171198143067000012121221189110118174530503273935343232158999752455617626101083090225025533526009417322659437998137805441313649508182943305299380016103271341473194178576499091821460308114817227607366282933286378719608985947712790664624043733432460116985530217436140594452521332462028064768217263691227702990177032276254740471667439624790667029690413371680903741691349719567770796845825543236882572565983527163890431869058332325865077330708713245884742523617615475039709568558108437060490961838293416594381186651766174593188554725391160284746882746085783931349945129071047907296337832809457513930112706950750317001098835009191980647519936041668319047089135911862952364738638251893414249909037883656334490652480072434818959811090325572707675973596522921928209323179063956428388194671566300427004574567078620676653350574239332749256827562210993656623577696585454213785510359745907098171466087723899236534545294700564612631770213174639307762597871195289568351532577042236005300840599333763906506476746205605314561891042604212173639943338682071027327505425699281706472233880041863883570374916118413533921643511504827594342804267311873748142055152992268721932206436041149151036662004691213673365376797887686894683831828696632798032820266929764758108608067698876840580330798676010820624419922775762621069931710927146127457217791548597864443032540066886710895508339944975042498437893280679485982602639916125098632978171874720263834633687392162934317255324745888992847244500448368869597821344353414857077129546796598135499634801418669069047012328767317454325055694821821250194156907966568921230705059144051423515711976533811607534907716569722655936631180284950939370019203419261123601710023091634406171291698223218432511478796475400754046942019793542633662013560709650447346250030244273796778532457212487120877952863690860431929377646981525104101314431352802653275950451391755983444435602513785624897237155013057068378209100801873828673338485305997325480052159919034168577669881979215117657011589789955808805021586386879158725321543793624945523600617600230462959820029988190212109432294146808243218240256954692696321277649865752134139394725777279470619207996463379572297769731262296403040471770366263053835898238066348387466478193682898836984870684925609484863053460143492741810820968202797374994568914114737593865821286704115998909416196804139003402663856813602572083461113411424257644963098841880895642165850429375936770864551049042581546123512478451936066566234312724229648455742998381493005374959816136519439231258019481228356802363182955876513201316323003169320353202582528379781594521548334371653245652034953379569585059135703400818466133878495132897074481530976162539906097645740138653947934527552542732903860050666761486870307857156274180633163207797712710406927642726223041204063189459338338845689263397872341654503412354055516222753186443338885712775497611271813074645812897080041075415587506525411268553461673020677957250134325681512552814872777694909737142660227123998644005248225433705834711551887265279940939334715965677446627846766402876029872925033341283664173128046460890995042976211293703497347600058008738863900666784728192956725683467392179803479554605382682054727361646182484168529481061469183860774156057571557529590279220326116783670945447105070974897270430471504846460739744379448714726520511372851532917404653050861664576704980437530806720272495510976965231477552721354219861289285738440483267234476925524919236638744926781598868286228059929659615269449940520653210820265412648418962010392429686116012055793575959064545247006025880887138565998935758812035904374570009598208100876566111016721079947036573835313981487250724589653391649771774946997882997678083019443007724022533465982432622487271597932790992607598370306714042685224935790776955761930342443462922383473029556389041021388934496715658103466028094486140671968854077009243397266205864958604310585424747760775714253176548001559489615865311520953614148142513982414035389099724654165183686121998548814051531590393599051785298808168230063818383212223290630871858917535713874781259215590120672665746735300026930276497295140072133759970881602371775957137350745793421316426709568353722418401771546847166850353047185972297714839262410718710636705140133510222395907488673995808934389760444246043620373687074202925338629421689785702696132115799552733008730747217813360295666780397702877430773283697223710290999482687492333316220512370235241892847422308989447269456591082844554244042184362611922380648273194375894201315029019871567795075913989405899727863414293638800287043833155995146446229570364692911445574240255858500944079208148070953542883182190113969753667502823227779405099588448537168902309994845581666369500513372841073757370356076637374988307648410611761188409194974403443787459629425360593407395971534764061296936303326036755885867884754510437964015753912263821219630948997430415031918998691486655659712185628741353764354118584280263737711879893233122252214845327488610373834936702013622428768493806646002182105947299459097446182172852561457837657517447218397135909740653637402827552905743784795091773243957043612457911117517195293440091852909517586603577626773857272653230295204100283496702214024057643410512948131005437172275804569572246574254207729848482609201859219843968107642550233897138829934516621232074602554476692288082515586897699541047248599724419435387740185976347609498038338984178968322521453547659362309094587863258722395049714476824317427138968754823088681356233292644368702269842286111232973991359661102667535390597534293748179388168045023281427690025419450568307396507442356384032410342789799704043630052549766829144398866504060183380800395484696565608505214180746943416432357233106663915726148366502596380364187692717719635556231783171148183921136807062469035698439206605970499947516800820653164778835701305168085765841412779866510973693203661218735059417941365778074646646238827668998804978051343528740426110232286988949659995527529814686864036012422425870301085906982455536055392274414343598408388418418625104041858913486152892935588349145673702178988381321376172873021753936357424474852560265838374807486750606912275216836348970429352822581378832153000175410765965000172008722275199088601744164422836529387825018369115564315230328438074379824607601766611790407120092218202794441257686366100380606376506622856767673544194349704160996347732790542383988768375831419264657515050264705207715309105920258738607782746672072787828983765269268867449006043670271206209279838162650269563454022938595327808102910179558640628606813253220775620877232416236648996172928360447664682554188041471119479228157273496769104255363594760947157676032503688809352852202814138487585379780826549353316641304321896841078515397412612718976780164870522908430702147638028736976729499974477024268274763402917980110612098021289431694961491684668097233807838858172439853765729694667858512159585463168233330203441560955410166767156344457548519133845690488753860494056782704108623242853930951304855266304925393692085914294787759058592438889479099495703906552947470487747998581469924920991505884351145031585714146953516660929889846042207259666463587003463863673448824916031295223053389405756097667231917267390525702151357071468874806751487642170038108125117417064860866385640160370493972496437992925043615534216353908513865378614147243517545491073882442188116568213394880913191062448471687407272118727396829673676179632688730074302583053928080476171347973907273318477290090781392544959948967413514628994169664346158515009595718577591558198429527775337330453341175703545802015721322397940175150931345700105517976600132692930469190129338270376695013525615778565652452055163842420877209401137596756023618550929781867180278803581946083224358989458759961576575627738612061362129678166188708472368870893601735663852192034227445343125264819155600955562981141849558268262181771055506186092201049820036195446222290688026000686268721794286858925148598799471844572796505622375713733837990953134935096459290964040115917250219303289308913159443880008048294675612827761375848421914851840425702889473983169781270871255485143089640756600764061560968482395337610807611208716575862801110114919110081369399670124444823999347781955149773375860443582481137445265943312359433848994940872340181977203312656509982269496253201074098940701709644914525130132627935498376053334018066901481730789650017191044234118750234118809026681492309735831699499031876381253931390519906850332783084885797499486338998605860699858760859252459328407323943310550132599532687910261752697925992464251444301180509261099904247593369849875767091832373036929826665304247498533765449242292142390539886322244240502834497735279664815319284826333868410796392727812143620996199443609780134027130196121917459593667063006879241614980940169893113593537907914297956036335790024932926227840787980909744464309028790656209755204992527002238795615578771408805459857429122834203819540220916553018001120511121294555874230959646190741929548145439880621879958789842263082258029540850260659936320160554569987289240060926286922955847738724151298066475870002824825343309554745405101030627814419829605330228225330087232737567073770410915823432887260780928953659695757602185172505259032184291706973566300303715019434727733895250557157525183869777512409657342866687228511096558195836448234456550636170150944559031940483467435617501529253224282836071745200916148031542433208945654873988940266453957275087695234515227137018271025849830094408491664362788607053180034276225380693976939953856277815317223056291249790898409772968742325295355260776280811985662764541554059456418098585496690459641504262421199798529240852903463063714658967252152847575551380642112850419751013551643859935144123252077746690945657990554713043533887566339942299050915973482037693785101732327482795101437831389470318333324522635300183889490871997764435096523695212819408370609615125946868692699312390186984547011910940741560730818566368018880212777972614230313945090640053187632941412150196594117474308507844116005539280768625202288751699289103460020244874594220235253319259941218783775842488341115727550821331684488344650365048448688895166622381898538063944072587329310576011523075016776060346160021306091408768878596358543622253933787058687945020495158351981517561342512306356567049063659802329653111956362121091797629906492508073850360165472661564386218902312250763858358132416745772323127908669187957448630789817095891274219400360713850850107736445144777536042825392973650460415475365614206248792981644947938890078028043135826862977457017125898889466179274280419558438551201878790401585091659221907548645877971763136379253594767950598122387569449377246709269356275254884675854450168513708359040537579009791042974875032848818778476628531081748897498240554656441132179617303960742458165619011912168073591373583474732032736572527428196504957020943483331851949390592537297196659770328040274828601202412416658226318487653165196209938268452194316705072153356139619673216051344901389451349404178826680609367343832471646813215937820471061199723340000554826519252834736329874575462162321004134564127775784901771643006535721327723231491440793318646681925314185968452309636802328057073743208147802521356950080335008627628569864066709232842112587815503867083991781175201312374152364124043015264328532403775669122705732211292145034991405229643768602145492527183000514562347445585111410174394263103260274586971026432621926693953226525596228368516277898554331053296396053259359755578647785401198063116095070849586480519625874367591068550425181771899428181153843476595762820918492236264385212976896238396371234398307897754916790058415411989782652640648706225420693272280822771704593683779420674007559135256996720383537031996884045180317278332909932550592831153028547770000409312788239682404258451682722656549265469088766360418705267330263171430809215250574365181075455201671087179084821407877428136860119434197171144870077556219766259331107830177040688871789420687917443280190707235821356291156409229748409552041570453981261303838555501667617171794072935022759685782649488073655057896756833369498869042787610247589672727645011521599089761602731326221216244469538172150065814909361849701209953605571257044936428464616911620585849850159972321662911904220381123632260433915750628760875526914996453080260693865264273405840387278914377901061291024454104644422748859861520243207650677843451335704410421125207356557534722414494227235014358118094084745475349894577132473190605308876177230120246177364134499492635581959355082892804351260423693479614657681895481622211847830267292871762157199162595537195367223488611583532573033517262567137969202479941626077527234372935643862993055483985521461397722455814913690075935745887824707253393911171556955498654203787450185989619476039106221672727132009885175819556146544541086292297205793376539534223209331697165705812864069242534892502254699458877601883440170083898741306936781400130172939556452104112183068362062303385707209898982222892543572270974010962462504276349560458209268171998782242062697132277125506572890741499318807512616735902105343934931985583773139822785896013897211430629042058396775228455872167337344924334497352653338904284433506706369129112571902188565404687259429944484073570762259531598526939295888751113098471172608082353246458687095892400609890259538413444789330583850739407089730498921826566455604596118034538796985245692032119009214892353364451722328703458754050135182188532553475814910062758307888866323164522708881884690759747781822784293773769053778053922497225190340444640424301064782380159435639035495791724262730902298150330866846556373722519723368002609652793207930097860423109358455570791856329786052386353036702450142039853375621213345374632136853034442041310712033164638858072450953610714663867598685674235971809542935817137818843767867730957847860798028322328941707448534059957892727113463323026689670603280357524089549707283507859644491883181252142750749168674128567710532461477890919663928617436827055163197065987478761191309150715184483702341526336730073257659925349610117364078558085040448904400849623805762039212989384957127287305219761663702569801380206985357834233166290114473867781062682556898440364267710543869619353313224118521110444354600974492208259014153787435772768874859061710979134742718390188770273462201009255326257353055788374701329141579491139883386656150413111016929876597436515042437922297556014573407825286699441699638966418661477058413467743459082950017000686967760869941118982918812428344202280883860640358842694448804901644721334563207377150145967646921233536984191397812968120665200885865598295168769020351757382329700372862675616917922669822961058851433968531631297847251794941706126145430241251011500233258523327927900771512900696849510886372717773494416546979934497579190802174068404766416607666057978489968952621655931836838374582941336138791326063624894601699766152120525455840678590625120464852612799639254719082710026157062992852415829531935468310303800064484340995593215157022800603038848418551214062144494917902348216499339699773107594212222271977029143342204859856613505383436890178510346235598875897889578758594621345188544426211417392097904927282709106140184832637016307114274522941947585123672205376129099587208158372204783571495397891110029283406351538425560022127192929314885228377464091103709445164433479700304002109045737694223000269929973435879424306381701695251668122319825414911700802360816931433258314510587047830689075241547271499762133866033535441899861558594624944023929731845528399543989572057925235544141716177646223762812438443246694042778371215230919415283168389297913264520132676352652634286071242409775768367649881889777992666463934244350687477219009340281482376916183314830723082380523511187264564787197635869789222897339628228116477994671483896020072424289022645488068371225993039901672638771012864541063069655858670368556189937265197802823079857682287947975954490606616239189425444405008247342707189442676584999984548191258907093655173403556845746668941490131086592947965308464045804865345231520369292367884139926851603872751750411632816499420445527548342178563290916127364630928103773433621578235476751249635016060165928587895583162499472006846109647389684226582213366079783841897781540621730826675497466996880528088487287458961553849300591559620404638082518824455981049986700896149945244204976413720999767493663625041336672710104894181511635997825857862183453497591785681844569887784831730856095968434550632689598840281055687316691843245138909059093790083336635651658882631894128299467991659655362968356320346953166806821682098565875204901210306355640793034680153238126887595312885980323992900451073157851156729862069666296725074297164151441523877922888066611478666460490940198042548743460329025790172185562609464925805866777388157358206767001120142809337247020112291060184457606264308754535418927549233529019459804114005195205208342050704666960215556026312382631373776017640032589172549818190773523052640595887932205508514758643786722214142719074853919920516908827189445814149168883726513823678352211882525171171347458027409484538231638478565079674831849156962099241516603329568366912536637115605042847208480914768371246522607672723411065258640493748568382813193504979118624763983245658779598803084148781461917306651009348149267171608835207006058213142052969343532863476664297311627206413854143453558994927650571368974072169424188025746026281591975316355806578414234496136629553054047105271746242273902803468227947423018237844726006522907348289801400646531067433164684923968983850931957430343024080017101680090477765611141057794205704064294193730327961214860602759554347582679419446779290561431638456863491780213399580902311769584177886274362079137402253802675010120160204139717931848431003180181583830263168311086016392365107692806103434238511404048719841266486459164857378736387983847329170840918662985304526894614286428843067509316002570656389336119331087339634137841467855583558932512653240460966858133423872697998622937189923214578940583371308582928326694077907090317414190104763209820438270128537375263081072253461561614977644203339481151844517602869769639109398277851903768112281737532131096066027473920725813779768532502162627801797404288625387356414609827780227356873504892623367655823693930939490204098120572085981225256853148978074985863783880687615965006913221689779591253020206690287224273232436395343530669792851572288048903937079442265162455342758719224852187578931796111833364128907780725677248220760255034187878231192592239935758396703357533286011084347347795446171107552268248517157129722638207475525809738831832539439568273118860542968888117808681754783615458312563756169048859127430999254509724264280488131787787701922056074392706349022000960948654965755899022442516078026104303066231776061896615955243799416716818119765736123923738864966424734781910699839259873555689736804623332655361995140613684003218543587451657075168178816657048816897339752386958480796639200987696776301455300274692998549642833365753530771619606728286542841827705235677550639610740671447209508656789197276207388329616439983570129344530849641180370560555323445361208384349261906692619780256919423229907071784493962494216275280305566187469468590949412943503937635439814417440497661330950400381949054217787704521284468338183039082191461149359026085550154151499041693756294875274855352389606929767289971883872990665344459074721776927205625600751723365859232537707020795291979944106318468602473687943120668929511269678175097298263788926065202620169697648166651624848323800305594641653935440326260207451077236754572158778658585931305873024514427572803748675399141564596881550139195049062883568117591189255019917541345918436657869026324612687211506711307837611210898213109483225691831285970366281880688327648805347899260619609070469258555701322709027053017521210560947582274831057052041570999740803474130865993110890322709401058019122989812843753394961526458763623021416249503340785750443639728715387546773665141890360662819970102404278278799455963662656409601271576244994866722067947348940954506928152737907142761455812082291524860102230069843152632088406965978375788757248678561417840318443002468281457048739889810567204614404209325549101347261706597490687463907367878245352787390387534167797889608126424388266906161749567122394209951716183626433154375123624603073570011520688684034789622432610800775219870964098688309051670182479806713347075009500644029456785578037521894451002229452242192608051295565128049054337466966987927949073019858597757999162022888661394760424447099551665582765691960215328723324149539348403921948378129189146114160656547578875538141107470136155614812055542992521753874857356735934821385358916144728260854150412537840597258101068439309778950292246326309938703087320256720536889078612803723832687430837842635739809187119531371914834953999157000954960420006774607961765905827712917267126786768639482071246937707489848140670934567721566270575093559390111403167190264081622563520136264663018657977813440584857605274665632417325276268351543539186907114778819649503435877096650809270942422149033248068872893237289602038887471152290206575321380169154658079418761400245160907377461019729942887688672491499019553830028784937154708832937703548818268962163975862217649712196624617630710683986796008733598298477499702006932006101538248046320201594945823287178859302586114201475824011099555396323308226392875214872282059142996616710601303615302746536089263846386753939751521193247834822552732870773204758077749631422428271869132349914133828396852370872683026612124340878705612095184205370208963757136954009715855278174468228799217742847667208255887872810144621020935013751903910956798242639743067992228746173289123634248322666682853044330992730753549787446343660271290256855945867928110100920394806971125124988993354188001722771886704218807447472564638082564015867348635113505627623383395831211395532259580213300322229615553267620491776286188984329491368804100466861129102428241783874832546271714451566157696985586102887739197750321862889215612028278712211989886820664047822540625810907524923417487633667246468748752817675269854709548681584723979195933454747700856218518898837004399249412155782733932722754390118091949737095529942433610741496925892807942487343432663234468637085911233539142139926854311588267631259296790038320517736977402815512972518455352933091236882826911796523557764452762917812348948493036008908451987669309738094957329728465127834454505618823306989554840475957189182338409643455928185415188592645721923936481372474575526595456332644842856077256795738902209961326359588676121738809646639906959777394959901191466055781271627517871498714003370104744979210689613345640093355872110150787756470932601180590847663267915724926187417802363034769106258721835827698606748788457844430114190353649958245531952766049613895459853293599258704223096860475681343924633983240431813763730946097826413813593615616479791311581008336319783508321293734397370221541501002615047860232391356889616649502116461253168337661395429335506264928987421022154234809181812434088013068125449356317404616601920686486853641327512642257785039465602916931040555180000410375445545333396272872877212508715794109044685018817085623023973104829178902908829400902391589568724478095129224865829536971053850274671323259754238108798656958241507331249201668577754778624111582986406944910338830485036223604157342283446572718848686537470474199860246538855168984766497253293678665708447655264337216252076685799629702603809810299068923412510711090531060860539887330126216376350350334727726466819122588462153750338160353286702987094279458366481371407395884827661563318736455930610539916849032157054045261702854428369478237469762563284695003382508513876509405767802988858512255336409027617290785227991279951200755386043243241667471185881348864483726240919700521355449559292993181647475473355332490515466362714340432150538636994320238468198178266234661146546290163444866325767828387441800259733173434104366967803479912176723539584628112063989028108019700938098589683986130747362397525381786865459607671624803254342320923094410800443905030376392556981931484824370816292408355670923602319595414343449582788433632450705484751155661178462933240693164645827860091494511014875550866318603129880075530024086014244634453699805257762676485758159567876823014431118765518266972142353413900834695211283919235406097829417392732571091104489692025164324265896005109073587454273960194408319718212608698142519724698985873896889650146675877824893520287908212143918070948430688799311256629892604578645060650923290856290011956755812261128621840809773954940720745508730519985771969811642889504319931436701860258102511306079471888404075360456637047221304351192486706086436572576576591931612581856032133926327296798546217659866855126879377837271103336619601872929387194555847874257436545975262719887727039328421171300135827481064563525155841039337671797178400581138104534757998336445794099662005244754681635086124144197665719113093148568496627600278244842144292393669683866759348063255686359218855484252202460681638801725974869244294028971718298955542332193034981890038562863489959551518169497900862269251953291070022817612066311843622918803396747981165075046129559504008276928595932183257229015258632888636035889746727720150859675260250400292212624797484919328347387326473681052620341141472179891992937344065199358526114673950206800445108337644725300792703903410145981274120700046858375600683066966086486602441359564856405854983768899078811544389316090802537244430528297038598626195783482374068139434638655487672007651855856151510953080751338564376809523115777375234313578331558590899288208567339507638144031491196119307287108066395729723952897749171987204847745961377544333969630219824279493536620521170331502751799395553752049410838349440834302508893547978089511064223491990171840841708724712644754880590276291093142924847278174785901213553719691353943466152786818433742618232456473913557483579626645774489097791096464418929568452873368091042435599800376394474799220025990652846775415806812116629899655369503971096560720335440058604660420204525664097173763577540512043512658988347866788324541894341438315716197721875696125864944505896822196327097904328946551705416245730053792774519748248279449204271821271882296515924203556479036004188412707382394076576399411361328153046544319838134347019842102803966221174608200420481856445995643507611218333180950270297297493896384667560810668580876928916580681174333147249958420710676617114512929705032444270715347038720606042405842940303422526821756783807844217379492611439458151089168107051725738451207193205107148014878104872835292302129424582974619358009711004796610091209490439600461904986879660262272271143097501852972750462046727503714712294065860360615528016300906438098034614479948930501692788662086582920503064603787161114365639883738914828126308774765485034618689574532414224589281239928118442514217696028445794142679422869215814961892952401647745535152116691533006821696408417131405476502960343473285952985172744669090123568626130497921032002371962135157673618931406695430965427560129354224485245350146178244558766457089902749156345247997733291476275014107775359501450373433728851571016783580759072187127305312558885026716068491975961084279769809302264117586759639832957127380244019975886226915035778128523740831451803626242296160064163678350779932103629717436973793613742454705098813707949655019090711052843628930046362068260567902405442454408510080063843486866172149490926061426824800143511456787765556462741308837749699151692979844925325703677906942902805173454657133434413471930001197467080863370798942485292865642868212093932405600524091863358055087886085208187510795595914247438436673921720061774590419094476041350282267283732936066576818625044297747563534170991032042678481748417686777081888928887411839447770416108540787402736774611925544866884575365184976792784387003004941833765203639679517701591680350906643562230412398942589656598525033209949656073026683371649794036774627378260592164756480116441513499633196208823628639085121699395943420817264254490619729837845977876473924850364480561201782895060889444201802231051682996370749007939879604037896837151967321371843255534176370921895069111461665215333458256137269073622204114225059870527830169352057458894645101255959013125408115726524838654021757879152335464711719864128570033681124095571953616832695607068337804184547796199899096142153505041085531918915517050763229671885925867865385272663376816609323779960598421342568464156816603615067848535716175378096134192718237764128423418421004611949368252295702912480315419954879246415332626667398444456343510220163798204800310670222998616271360019309853979479766479975224304141035737758213413732590269456432352415379518947367033403008353393030545238569510532398666698255370402726305175194727216893632861550966511935740843037898621707181633868592139809907705047663178590799275899292536401785892069076955191352323861210645679940857771683338779254632981474339834131606925639700188416009822890857230139293725731522755408799817713154209743549973040481228228519761834913840080932225085394022371544160775555925347329393466297096982737389991018222571219717017629442206066360627431190411666791050834818787615466907942081144121663728939081449232549605096507518747432710122002364546453425591878824017824112132638356917764199929954195918622933740049245772928268441077830000901110962209389724326991544915904506672131857791574388798493366331997837398122440057285605720980411087954129007476391025307687808793227636731180017607703482036676054517746875885329391849287428660625049083704767280154310752879473771534998633604252599572032267256507932978008829967101193396461664246124445256775966916967536105437081873672278461142109573720996412136607820606520735570069959642256765930789955617215148201812464598291580768636843179518041340291033789401405298044572243865144402820310154825311921550723068579265529463898106585061503762820260947325896769274689515014148063131708532119618702419684214806403679073812387968713110824195873156574928718840802375917757743027695222658668784279499464078893326120409990786648335541586686797431425290770351210468112857186065232341560889975091127457421071055351421796564789481695762880452377844403064080021553437979940444663598671115816341303259961332992233998028870425404817485621548625772927449644086245510207397696848432207829685017463485944451087388931791700308133103987980319059825083804844044839212907219138401419549539743976113233472096839224975636251814692525606026640502739125629886084623903110043655414368903824014735608941502069303649245003557195083418929575135542255161424077687609980915866131739712377416865416973602183918091554742400853296469882538318881986384189015811726148712763460364337834640416443052376303825201638678433991145215749006877453977830653541695194001061860811147808577998962195623715523487271519814669095284912648427304109348212940425372182838820058365775305572038523999592947164613402836531811234764532303499923805485088818313519089993301486506488080351986624596936776920911066039012342852835154356114350674031961763579236916408500715831382591556393405676280638013111796025429212087453663721945915575139481811010282628976656921128255824416458056144063381199565972323366053128451518520175127503276301916763021706538997758098807400759933985855130781794125121551174494229407648247528611729470686239009168111433677944650025584937934809686827851488822182453110333498767370245691133284801545073393112212786116993449755710620489935877546317196898555573748823834708165432260049486454400599088240879015844340136494737605360486553818972330501482207271444476870005952114388315627514441707490299454040878643036097179858148345543528568082245144108869374725707696727793438924784850643305383125774484861912848117086694341823989375750107802562851917061110782153270216573720242019288441982356025747587194530416493279668684691410413426282103885877847076147786607761342366693631963702609123480083378682204000190756111720504071899597206900712767160342876154825603617850346841809645269948219680503231428265918542428274217653691055723852128830854039399542295207977187010626583694667896695423967364329566262809096915535360058010916961894260042686878274900460555339431002176844354199962317394021932273651945219087494515450639539915440464266324000021214124854574835435695404743272716519861778377015016836162205443937220140162407503788338935555731555069862998639082420630046537133749953993060436422633541074782663180780079063045379051938346143107145317758510289793583249708314028566356468915537047516305191032300033801396412370585881805116264875832925555864798480379824533672260025889502363385112658436773811449907427038127174090147949517184375118664803504449105737264078826573371559122767371156656938675493713480041039641388967390318751179774097874379943935244481103024427684576791644424891729696240389604262114726098450593157867441673995078396221831800720476650134408263095505955721832443954081827313683659869786603201493771364909443391808118065486079468451648226496228784967422727754372418775357238246528913123610373304485703870031147986072752735414635718649587951581995647036749801119571359265457435332078112652859003148084712908249545644269949540603201936026872523770952074792305632911966163356811372121490523228251273617576897240219314336541184938571288103815349006223074837039313049726690463872103896860589415775342655086956630591602176902752927835918609895680835931186474569193945543537408924833391951237309718639996171006948677574904665051747205740935463470240656801084036248843524210740047355855512873127424112164576661140367846125621583577595890394014327432812623626143721605972372580574600764420841474802630846334294746043505946347733287779541131590332650301747165828102397278410661695332437822059514435298037615473760580161293869064821407972174950652408263228196089103925267558508181130834941889048955592732787152767987294794726585191459116698363670914786042558856447518358825902954810003260274590871507585761121156245705651538881411625673634900013246694302294199961749392537090531966077467673997658746227049159813379962438808117018902550688885705185008417537377598360499682923340964260361795407783213463013910435883645327949052082220891367267223074558115705199655415337600133153858322260149882676350563708582191700638102323195596090288137266977175025972050054140198169917381097506892550829166375254896764553088922557819226645395748181291546438312119002276695874152934439530802808478512168855940340215841024656915177638196255772571699241598595351930199561156243517014937723334873231950368687110467468045195102751973065974722361430720620870204012964888773607637886783559217043232299158679073034291712368303921701642158460836927412765931675866283141765572425729377588678960039576811143644781769634136763553960819506793126561572772260617357583109845626112512414596066455714470443932148031530788089252695961105485222980011979678817642312368113781305574327812022905797481310727908082220643432511502881084159220181750308802269419426422921451875231548015592711087902057893897389943560360662063793516224725665227413468369619027761689757431892879313915801641447255130876170424683813789221622904778279188474980172219905403466643404554979620097519825580774609830647356605292916001070606359458093424241975932533629212459153863641976832911512536131240395943952808276088304675766838174599204877826087387977770686224419980804805450283906977943610546972857329570401484868312779496452267787819869128737294463915601211531458758677598990431315967265191366560194041507489605525910498483276979925613805813886868305852934987608581307825913827666216551416358681886844387059072325614129620384507034635853453488741387447874425241482105558363451950485524584293561033790361818411967077779685691479693016006579482395246562453711426397124038086181028510745165511271576656543898588886680121148430609323467896519876315269065079553505741623412662092352037835823710991603928999960967411366080331074653242016954652269802977456330393827314448648038158651438000590210481048353314476300207835441252153504544445218412652060628935456708129257911537256318592074116410517110937176462787543742079978119606636525224949474287526959638047685570234221203107571292001870560901820079650624430310753313275514993525213845870865265340869983742956355738197381507303276847794084730417781629704582890363969153738382908445477560849503310200916392852462963562358129017254267102087576573077007322841140252920381313067537372614078557799940592863168456245293971337683129050721543708054373164023901253156999663939738339660725032996347076016327467360040541208556450114609052733365491425502837005379695944516346012092690452125958918662124523085905219200081184431948681502422707544778798702959873058367303373597026787611411775243060529927800109064134960934273435396685280486248831981525443452989243695203699870983853235792066217565920418463972824929087022439925974547796310940430866412402954052599852788158494725269614688359421085625325513605517062891259957201727531067491057488326659309764982925369649752191404231775074971050996789970995931242247001547970645702464382369841069608912580462588476082025652576426304023159039525957153266926488086541535376704537259325473028734275990538087297408930804443240414033432831055047000040869873542165390080213993596903168208000647911960407674194798620543354922900185763472932361908497315404796366914049800325347214011218506181475307677229726706370189239714596382099729648167926109521216455612951049092010332239856568280277568619156511069311108699927218208984342944448228640560482978370355818654182671452194307166761763838489744893938267831680196179315797131946364732372957566038730685571072808660371355049533881119319732084127330557007314675135774282126668641567602767153211842816367702056348858931604694020604384501221890251752819446785706582100674228624081269557361042065757307177675781303666264710830270007799224897637406710861166837164605864255563702432060015824019976445822110945271579404207474484995348515664961422737479608679909464724940658550475190921651222372055066295890874687122470903382996967496318718238316058862334086990884886993175059842054012077242490399325082680842816272141939493343266116613459060933003391702281711506400380346596304726951847996631769154277220805267791992887952274620612873320394748210589755960606638372513809914500616217519026817132147515967751724673945374382952120953081872047207362166625320138253804280392772113874312955733235299482117212059014374388035079765316903446518061376656586366477360574653179497599819223888345663279769250725539404554989951450404315959072257157997375736900896480595475248940233251705854385183502873775027138947850410445768357742964524988672166057722380593956472046678344733422319214115307497453253101979706165169692088714436317425909865862711838368670665977058350247741008378443011026819948109492544620999171294643451440105854727760288895314132963052051932358165743988164625356725479495727728460337817384750022251813054155057942905259195004961843453164558587757699960683748062698781537513073348239038411631522829202011964604458270828994352640423596914360374988152896051914702632190067143703635764134188960499942338142388239731267639077326197035046478724457637317712825991248059029224279558994166205613089325123841386589809797212787531470510206054488988446733404239623295970109414493162256069430742937420147655841916525909418020285250062292796935816333817940521408110822895282381692606073516539945905334762670874264690695437629024408534719018090111176798333798738312100751527951796573314527043489968232901428156431047055547145825385245876226462110366802741415862862394056544944303281008249326910244219138372218851490562740537587780244703770432659727868114970065315046896630063442825207543614762294203220395286445731898965957730410509384113015852546464230418894516419413754867132251619569044963769733717177718351618171237482377211136239362386997722379680461992747402025601726644806400180178070959530054708505082623034450429809775262909040959465101501075934927796419236472893459029295189911582990958084702130913573246111990581727766882300925102980642706791853060195036170103482681242611659376308648792177999528372821335298408546110037118122748055402207138413770167164706566863560276458688128690651827821893355314359040319083909349269443205930680774322845482599383762335058723199966657959838679895233813157641410018895877037464793082095449849511410343060542673171054158056222826828240033749351576744084889156742530040700451116148579845480725375099435651268091125577954070898393460245784240665454754717444258666898301785776065814403365560198310556801552379972069127836997652711045088449546282385248454872663405205088265879642384267481393262715427800673761582290474793112698545693268300698948007752192821960546293002340200103139515724951846688673394415667194145070609710381954111746443655131696352862193301116808739483738610005108088215293655379982757034189299602014674312121264588156704781652051338888523357351813246212918445892435957424126897124752137378207921789980043591554766112725162671520770527964009203560527216461509431615731075170086094697150121310562430281040957904921027829072503495575750183175379227277388824435366661275402596079837126960837328100574420686695807227938758185956188531505910433102809038669116552274972088807654043985575338266015331700509715458360920977885408409700314240622908379805153211037608640088467700938506739105500901345660008554191587429271627910694513637328612758391637449172132873592797274964128444533936620544084175503462249636523836930999803971301881202178925196671465552126446995912865133687613729335104430743199929976671399601471068040422552510377159593581918405381375440545816566639617199894965206211865394855218158484372897326971602689185935257120442142823169742283653404246188815021129395541667476725576186585982702002375727097012916769560452496660422655988653590636269027548417385459634009384562125351005284394157733487671401880147825709849693255316981774740777022786791314749388640765182396652997814096461107910587349248123905806163717516085876791537271735153822770171888347144940627019650690598797272750923589424306051066212056393691687890695285256549451910520394046711375459091942415383720162976481536152897897248338706653436960311545647405489525434654577396776376562803463037791009029467451256567180054306676900086834823797066616730024595777001250146986096041495154479861280015046884790506613473017400891704782310875457224802786830173601160110862863796619896197125696434537102942748492301830785253719905053115447388472221981928714727636984989056465010558130847546295353509271071253073515551280737975482502557770833693435727416079082034304015347044371356012984689005799693426793785946440101554727169117400623619687254016444361240884621446884175933411973309050931239114099943187412697769954791006405899053822598903621140430972929624528424518473545139781675481543327917053531900580782889543869944457683586363872980432797046217002796247784115207016555789194245548816365501133158419588686609784281759446855515734351740201797081316314577747626032843340204263152475765896196470601261426224285007806595073260733340118766671358577594793974081858980730338886918379971875523009411023237634500438049597902175066353489525221006660928223937178160883233023089556016819508559612997405320419665647289660648605555723752634254713635977193646130676627898984897428966302662223725875486835371515916196482827726504078140808694377929922829186080879284847565034580038849507799219995407212740181698926653932422919998579057933124980231378071379351488235741996978472766808142657044189708350320234639426337915195619911129731304375613840967494219977918874273368969936563303469396377357644295077480520543776198946622656792038875047518156900624173691404471498068379813396326397418830348504004648554582879802273985782455249450279356627926767821540189954585070586463221981328453538113340848384650903286874919926074119104049418516708245859378303730056732436911231621264328020141084569311201380029833431937919718064493101058667721524646191996513158817863684742488214743939048565763542125117408394572647928449463865417726091947575565461648268043320785156049441169289625927828101663042056734537382272828836955529467813854698949109452438039279641301102664170121852793377736703368878457461917796680801241157415853311208013136254024861318667573957431559852737237148637322767717446278034754406437115223023664663718945782407041987003951568625276142611270354555315804766059547199785039316722127617911965341860941721567767563865027990406924073333269198212494001115713040975861182065943339677213075591325066283468876902401120132905963983702921819716654672944220531146490514038318990736681672896282031386243754277460978455199317868339611171326690864145427047388204140172269943092063059989819592397715616380141670177684726537177116692759150619752392620387632794817456793507503462507277132147247402476431718019401074655242547606154828407002291112593623169021410573147873230781074437252636153894142456748271531409989982935187270821165292868452389160175035396592362417700942214864731525127033997067269133934466507543152377208648428147335772434904376355863140891825970241709546471751027781525019564786592747706837749046603174625129876542267669313446128734740212118180890394272986760371752570752566847867642138117803710247015828894468319350011947758138563537015116054999424566303052136577513887902557066276834334895295652112505416010546050685993917110754460904978079152017329104877317311697176295461924951352631370854563537108982517226748228128786534389439939091629598747356869698937590110658664390562092432929487254222403573416525117531657658011474238668499698165451622245535540025892897068415281534844035651013567101580526986705949875483100125048177717951835568078272571724074060024301246800503529387927078364232916683070533573039322901948294666939448386271649976399263731521980313089573268277331831072217356590612595031373073118724375633232541098033380786152113171500071472424441649658369534778743586580208013092482915063174837331338448069902315606569747030709057252515267311600568315536826323579494021495506035072398460223451703639260710982633043018727111776850220659479854057361927777877247038742743491520954489586431371234823772674298385830660918255094171617850284031316625656541638073132380398915065538389994798356084283096454475983358666900942208591109314624592557344492109331078850863211656118856772449401146043144389602953929232353350763704144819453563083168280131409441129258962267789659422513282461908850940827710165933269855606420239133550105304951157552774899467441422647363333949420388209981560334385238387053006287752205452772731107327673526833087633461879744435984636399628290321907732757202642904442454548198696959249761562300808647140882237609719266880326633423119663939127001865383309685625699816943654471573719810304829248384147430118807764555688467397099465803010022428732160935724002421376128355164612250290630128972708493671524293967266665151043105605400456727914981391753056533701940059447197716721078836129403108809046479198001438145447978823631202529984970898169376537032674592769702590742838488242432484873891594053338589462395395249244064066425551565745263167889282301234758715083857565773643545265541603535349553129591142825442972086609887683613274534354121072596098564891753857925300448372738988158206553060098283290635737757930131040954915829747474234206728923873968569773676391532449578164535081916741788118967658289265415996922512959260016502461854815295510658504838007997775852155924126115551233456877401001737637463261690563745813709369624756620543314496516056970285770281249711572876806026161005938756028665655732603625140542325392503159825535916457987942260435466795189649925646341726739566032683035165522458269021888192559892984436761238198944311175502727702199102727399780333311914243860801029247234136047481979680007009310512703745192048558446892624763874186066192993745851392090826034748003280434587784467366791025510066000073811419605643993513947995484900511469594609324068155897793177137348134281269530554966780243751407787277102439902291100872723072472735233168800765914722988368248362488992087543012618203866446388776222959192475551853534396730347200624650786507312543195004087393206485921362290926972051991190139036823819437028168322119601202717044431606941399204252284017641228257942278455484190236558163225807731232240419689801381476006020240024743193530249289654659721968707828321435203718342591640338081053557261872068986817780484453324925191182330791788927437416597534085053900164308729651114857125149936723229555284797588206589530131802128525568559878493130870749170212431559120945784657160089407581841939169990740637656034658640552864744806054564999997297056521636595572443787768204823074743291232334070549756207311535950427187585202173220213627409468490212021631514626570006440850182801447577788440462419735769174592092319396985044014062103432792385072371614382595692391761783442569916758624517229275110598159894532076788856351469063015959590941399887381443221550162515186748325763880458417157037007659353856201948225034335669308342797261906336405845716915091044246620463458870902479172316249904722578357062536154460793897435247925921297841003192586930446012611851837673547755815967035926096978823110973055369134260403787098442532657150112811369408235213439644701257338768237334308870653620286778522087488991708453459394546000178182069003150220655864954805382291417899001583963966893789019707410202147282845505399758613713982308757887078861060689468564886059620087635465260417395300121862387265662131521959768835018914859348532685471503742178263404079543813356232481882463458515662887344217700895879972408939574529151726366510322703066036963997245485066313442300126576459295967456623492450935527867093554010722507999226418169057031933940662864854981310114226364250900632620019106226628630794065306473221166054890479377742377266207312548476563171757621675147665971904265007361324896119751719249551552033191490127523069750377836409290290001799145187684984723819978717972361369823232837567875914620983128935965040538838818243552571948564813633305838362020188758074570850335592990835786184533309493936420354408949998218301122267675703494359193916868756639336354304392565904394128852443337695803272182354215933287375216298974661594562206354177459218683030321739156229170414476907558045041912102110901862067557367430415668375052421006763070224045831107186379394490875599441424128514219672899072611248029187204446337970454655620239146569783147194702541575369989569931397096994477787266353901390578291069080047437372531525731567792367165752338532373856257177519983761710918401255680807731625255933695286127414299669281563063123206439925602350291651117529131832093309305135016565656181739907274859452706645328913526874846237974016157910536462883287498568746117957884686423341325569891792595492162663075782066222761743639055653173427637016671812067058505303341115089772222969755487840825067097319739448907965743598180956765152163834869752175398879211808584949197914684398145951443281324425316880372185980519463250205284244718006955332495264341378160325869313137365729269070330626817506413613764541178882399148369495493664404188442035676899504942377730683958358654866572481263564874587723411503803312402797309729740834395753744194067225705399922281109029678043785170506922898577917050222661033084649393620199816970621015875317110671322035314096401965774925019737062452864920421894808685714760902489078738238473781153760265166685987755001921675201767482883332939162174231718976293682206083794899729053117245046528729620414649783088197271402218248871779009659324537726592177573401961160563503591720819284755864389415184126272187184900081824045689145593095188210326710664699336877888522612131254113328761687491965380256876952505141994266208935329128068471793938477650411106393258761196817477214309510108269771473832407870821019130388760521429736862523158410112804057217335591182526987411444528908229020383986967638500853237399014225512843556663891414256320482263577808630052006515650496623535357969946869159243889991877847712555102900588453888881997750247071040211091091699200691394971675344055325750650724045268864426682497258272641490309273560041676440373766275746700810071033155048554416267000678841375508540793721526518022113210800447406003950439794931728961317966770553232317456164716480795357709697798444132718006734120378819410376497372122060485719727076805612920765270254484709763918958189330887797665746205776230289378980362743339604126677641769278786443048784156771402272787697705997461759409434435707967705931399529493734526472228292807637335442432037878400642925550429977076284028554756640450633707064128924264987652808350449779217838242334044394020862812009900148658026212832224245442030892401418370813958129674581775368729495600487019981633271096793969265817807568184247928880955674087708666461408063164359064881618138299013727667695403163154156324634223018498427030253814476090758246683918896739374203725615584767408560955110880112054376259685608715699056623746958765385883424081625972747902710453227949027640035808613087312780497352130782150204144723268035302585769253721478480174029708852228102162749657476373447539579453177611159226088618229443728201351761690412368322639135363261327114195343740776563482365266720267468005156713302228791442306414927094554879567612729874602727846248100125574881011355177337635080202737719054143455642769893433657732884933935391476036037119854003824964556370611710473484753331940913106002616246537843537933816991305239945958888487242349708206384579888921332503573887021144002669731665334605308703794849000714513520366443953041544896834592832738219865466791291218565461579279996004623687500581986662143336164068818049194976244901187192775351583099712833698459465844198400071025540585637311843226336018208826807828085593529209471300260986419889201113062112523517738373124570187280376146270775487831396190314019510683933839433103010177198451439713020180963492303316323704078427700985201854520220649679933566888596813328087475357315757545369663584275134696864130454911460215330153384184267886206088491940791438927529780914807268332234843332926444059027624880569012856578600007118596241541389909652015048922653006527445369899611979496614366054058637947164288334104251688069606870108630600067352488323192548765506620010753951695772487921103371977438749331688850023169325541771430755961922785732769052530808150151069265113841771783121092711366844766630183655273910629109818447986943309039271188575559977267309665802748807335650443996610596647323865764223347550380534323246487212008613906183551725974626775807757854297472426902682553072028721217469454451093804208990979774744213887410921001426149784494761287417259444407971097294150363115702184510178683299193336974256501811331412846272630176378872013966020222389395963796400058427983660326533613271380648283861193168962313135972030569060245140711202272131119774234285276045368227717732184795735004872203600327672626582357737930976908862030072795893166585455479985812589290914183038055316610301248366514648582477248753355947809537034832634380464761649485391045216061089639536874964130089335815341547794651153023789141182247574092854417095573461464214895380334326039048548314157342845254364093181943516578918378489873734359602109274808636725898315490103590501417739979751406318851189539763250499913983546090379380734425487580280552989933444155076097918479287846451945690691647642196049175252979365720940172942795521686142463447152378143355443819435336556552533033583297570073164746308544888118858879474708787847958071050777184094658519940333883218088802765840017105267207112975460986262318318840213055666466103606150235919454020255487846505123734798304390331441893632763495152042900699714001273486672082553843432430982349856626011940045228813746847281256034106871075765051703202780104307226941775149674060773261472992761630927424011465244395552147070625089707976075383095697775377111889669737174634403660121325767490636560862445537043988798803271956836132920341220829057803183431333374929629292190217269052446172168650141799004810645790759741052141270997003770678752955510814498239750962389804091094227174317838115661594299518099368019195149176561999312519087311985589499802880228297006800212212088545616840684994217389055891774537475475011368909378950262777699982338857999787011605915369273923428576346623184497327692670105993313251745710951950715286385097376980464620157162602772157827138848579858295971201525376163326215201165884166382120916143916979459898323268354369682594131978106187231852830372534727184311266924693742845134350354007623458864669682303085004508984448206149843071851680301267967492513054181528980917789994380345631420494997047029214441382732429446155439924139249952974010346310656627333947296666501673384423353495721319413954656127774410097652487928886952007656287819706779179446071704497122425640731460270483432325748544814889523072290493593044835819525846713548661662800727896607721659756698027709451128045246705699823354937924516534041002013618260827651690261128159000439203682752318825636213067499686387918418885456618458648627217064390015554015862935575697776992332124584532988493346594620184084756170511993250762910093269947486058531640830240142803397857679872617885319926743048201786804551350606589782673908411927685914235379620279869610797354069591649840303679954506829902413302077613555303539479974626364326612058774833386759406820413684432339898962493404810773321091064905005686526935156676545642839288562861770003579939760208222075455207010141093320976125181740439249726047273182914925364597691539120937989837025407494846189429391617161223088216464581497409339826756713640709977694616011942715123811020536054865397816205201609433555186012524456435600596848785698185286449363680479899564431387877009137748480611818428374049670833134621214506106607404495410008880696333741698068622259000988409483639300278872984329960872095793446666244060586370690679326599049098333296466310718429384395198649932981519923399690016830505832408772609010853845478459975706328852189555921401080205947369590807984680370949815877750269854882101442274751877860564228829900925491499796620583738239476951597147191702377738043384056441332475318476833626291811609081028525618371164421317831012139886251331699144653415795203438999361001357302137989135384815014892998882456006176102919363347321910730098194135380421767767196789530893278165675447688406563225405041958376520870759012628654482040974105773744253142851954866537666605332363175780727826171040631186095743617181201323183998088841826786233746601294334386911672396082807219998292916332915621870054065553955830976263136347759457184890354791734958561585162048936472012874460514735872669168376387372022304768380045564772909108986377919043346817325270478716577581272323582526857983489150832940003701338227471153389289868467561533721597485335556133660036366448353110859187386815058660793946784443014577934061979964329368610371350873372176881994565367987409226444665159577372965141488278060023923069603401314974150848187055441911079212935059221966279386489190551509475030772782050653938343818905674639440506059916603077735430351422057424859733314556287434820322368513904527348736563534109886971584327057046844699943308927566960943604962548784885738436517567869807045778721732849267627126813377741299248686609409042350590798584264662467925643876229509822825569256883892141227297918488728389657930068323408378167404339578620565247015329032939250166044996486235725308414221048279352204939799161011153029113618346189501447732089101706917128637697688339942843561053071811346010629739863532304577716192619891791566819556089484537763854101905229631420589511705258746553278334054516780030810803877119350525908655236986975287688492368373453742496714626617512771852923100138669407583776797390223734333547051731294593402644157747507452951755920608907099378867887022972951342104211925277285915785007520567317093210059811362645076173408738988740267261121125601548787682838313420506749436337188580361921656710312007169688112319973272004631212026442575043533804545171628255661631535215907348113420463281165959602570151028530940601859505387373189085908126638310737494732716002965009467609725200018720961702659353587131272589369840997695628510066264263236429572877768593504238112163217198747504322804461965164506679623528416269394653348110497054801543098109745778267911081865521217623660577862669746925560246004263888310585975186069398819458266143319653281124903249353971408885127025126464420026250008630649373672751936732315107213282620212993439956514703772505101992505627784659741839947359547681774955111411966750628022419742994162747565278369041456524882067411683743449661357600524934371852140956574761059089703773281117647545012610696340457062156915581558367977569545844897376441963837833829142897683502906278547429531950909204190421581575101688288257986848219234589324092042626744092609759387553850859207767745625360809796712760143319073482624631196752832036476209534270278366819272253637484698216927274916241504242045049241128438832402968015253889324754360324127392560070991497461927570745033007532526155447974253773053275165246710846199523736761888265205144117644672396645838834931357631345908376924142214812183115538824351359986861621032199959699380913509724008923867679517461794041682649458065137100395706538281338387419600788057753569951883385496125101733256867235250991444158252050549995489841163851356120536257866385024157106935939098675042584412851700040314320401865879836091701904749770011514083658898330020425750821157602036337215552886628005890550680341802758683823602278476791753196086441164335371321216724458467153753429474639285881034519289171820852908821843618218850685068890529013280121083363017588613919106139199471732560259102716044519213416413896651842363808340764017405361636519166363698858065499656720731477947770628836771441663378673605208633367581110543735426216878713502044160307489245626164616730949152470541393648539937343460398156348042443877972621031677270229165676505046139503622115750715411876992280025943854956766677108901095177603852008539781723321949859944646990105600697154226896368194062903755882000072802682769546507257316108191527335281083704206234608004950374447621673921234127010398485206049708945084385959516188166380885046028321724760870781166497133825796032822845770335794958025683672886081417090172498759931316436460243151471241882492754488021155420063866287736125797290124826918189413276061556703089511647030906616023677020452223649035394518025034623050297910888379305572886945888221165746753158007881366846831994009816006255316206641567233623874219312201850537293525610950509494304136515342034932722016787107314170041335910543591360328575939960348478653662498280959145598819543259070278413582948465597808265222620435849239042945361613756406493614068863655303695586676026859625795905711796073531470015589173963727962183101941252621527694513382623884467994123333578561467497708282363331110524616611998893137501162011190966690277172751875697112409141004867708923480256290103667841650896449626743019012354044102837211403650870131443016703647363250671755296599396103799551482741334652743699713655049046977366746585645125154112139683391054061039457449266896807800262161660684136085792540170221345500301058794264405452347849429807050875478894814991453448309021083831812029673817315760729573028521613789865010708097914113196968676591512225325604736698277664169516264991169831894951422755968033473669966133313643818453356351181430870543342474166884970289614565853124581171282638449088784107830928957576968333135251487588136471663130280535121847151406584627337906162920437464753075612521876903251057869723128548949078230336540718030817196398629763679654411834012869914274059348997799780645043224189681126528319987949856132952170828445553163123171477415872567357738657885766444615268258261256437539495918658180191748874435734567471967585292654179146647865531873887347897097891550004749144639759670661985633170983087835213380617452831683019956815557687129321513709320768993403748009819431117913768202158671176850816760038450717099851383309928481155057982518975502033799132447919432620658548839270356312826256757350122565194020559101323187646656980598438436401656840861025409362604436697757948213241599579381705202831334782407238414385374288727687772406860799491121408569530194619453383494642769737246189854980264168109122103022710117146891866354292186451761619686246829193004363082580434184217342040538109923226634107296972592661806915086602959904831604909245775481597987801733663927014786515149796951601958544577867360645737859551452551871554787773718537224792289617982296891620624168800171918601260121868786486651142319580750942496893325535347464619244635298473430366127377879624682212294069525140970479359061499336018754312722334777177714223025870497693005319396143741060950322078407923083676302084239866836053035905236812695535829276297382292170231711119182713943802611138535878897676617961167396385519451672562454469048735931450044725145135344759355887556450850467850946442867824868375813701184232604144597417894713493506261122613301336741888965752550698910982840139498856946654236679702391082728168969541620319349385575795007058550562101273564375537796333680714350794949197803265470436913873797682629351332653025352414321480399854082154476416505120116335756766103888992487102419757957139565469544730701547912768491134365828239382441504764516965861571503724436007142217150718540553971981402273025019702993078757776882107872751664216680344000982098346443058629292711757661227798644659312101017531610219757950843230692402298470047283951378215387899451872530527579543494350771077972849641596938288080064391030090565274423354652459653802390801904392440637539967712421025351054977605955022392527930188778260047981432278871453048597465070301061482489511611746371714562019169268065901900570288988721174453676008556749051031129599187988101449940190611442136570086982323544524849210913090942398976815993802695774011074054487414437803967280003062844375347790525383789028444762011529592019939506293273455123597841982201295830607318377272780067086327257556937190073763751182166534269163861838539034161662461912835366695363888648075817804303720024000419955508518077808405769193599279211613576411292115493064374563885072917715348417115565556534528664053055496986442579778817924549298175936877413642479351192744209216549046548123893780618451891542657906445399445335996984808728450906630744220711119336971670578538698220448020914638606126486352323359119442644690520382139827411573946724921343875203154868948091104986539662077314646658286057700781187868249891888781016549768810400841974939087111332536542727962442693508301894774417758734931668428234096068006852993311427477076104259951910888451846549194414560722210933183636021235988458603781750016295405102210379727461378785036684144318036334973173737462855096054680655428220968267290455554978701725521984223880183972222412584826637234273951219181851646691938296088422786904276964593069687310505631022898832305109804257721607823249776172333482122108506926028335371341661072971422279747620898663664681483588659160436216017087165657780785261823906062743725629162963576990129908720957833505466114636493389739394541872435363495031430892730850233687860443317907679639723507387363401527990435513049937262262540168931115324261466333089400642918448411069962055062551654545323784814985901792269694278352809632503228724967362500697502573458530994340602128885603889854847659039206927881672988914442175659847237046589064074466058149214286152398817673966100337551794761408549409626103601903541487707934918000239875967700526669740486399295942742747319594538065821754735781268946368755438327080629809917550936400028067243507956687836982479181854155713423330353995207457129232521954855316044669622953017643815381629005718224996330065547479612155411200555237755739016247140242327356326694894512738431011464515728208489890784658520248830360722505808375216944234816605064370717052514997464835490279023999973499742001698800678025716702414500660704968083084939710608261242714785886366474653338349555101478766687673788264880226051297244354461585352851396303268438654214823391602808676357288038785021220399675853549172282995670411978428165334447863709877818322809824608627650061934099530058395540701592617048558226133900435826932959331175013162399350970640727682288437524502095321821350138618748380612055829220531018575771858543516669337044146986394571245226557971946417107241673457556681861046012193887585078184669525084264687032390092215138578987608150602654726382858162317588036069073483353758851482524288636138993795903339781291046879806264369418872118167291372446634516555478647290530943482086875614127614384824341856289630831372091192741066082845916605885279545205855427392409028150712028920949182053115279192613903949143817476381351518774511946537843141443049511993075766609121264287720786136625629711287300059352178054758853425818689568412585213765932426652359694560250770972444495044694771544512119451151988990595517599461585380253237201777239426091009571628995378823006440756655988798868811339833646121515563938272691527965880907756093123798741484214340935637818753197339526788548028549932592075166865805078643626461487611509884501612483846576856130361241152370331265985504616925589577240617988569764623111169599715646382363090489022394060201743687380841029015596396736445966564889786484654639926366938983239676375260432499251517045961957819554132591212138952911677179220349733265690838321191397479140404240649999517352817659276581534855007788683170298445818573472355648921062980175976176832204642938934555865545569349800781087361684034643235868126753772086735335281478044392676182898895782983522126761724992625732984278829803313028905201524018812963725112290135517816996165233118530421841046958371998944228031009303102827771156228182225469400330099779627636442248628871683078489525793240830277234212817953296732824583912168478574076431542293127602038334306755867574832837097317310096675616786177757768995214020628007553307020790165861245336738503841591485060468031393127031114948271591019157462087466317166930703748672448364319178633915592866595557000865578834155613252020158381869928247772260994125831235011776085655635361979752656740681956396571780893693994910856314972094238904957888629901951907502946103777163555502369033825390936129615448552121366110286940294150796077874396321508049574942591464607150583024269880419980489926514730565499271610710357269896424933504693224973063826121805401098655382864081559713366962081716236221073275116490501896982878316301728524599819517362978276922856022760451102446229945455223330985157103396735609450491632237634989800944400017078403489954147584684461366794642396416887554992967195477375233269255280934779782840788122426737594900609718361542420271399818138402486870502765930957515846496365180580221732232557605542651798558629324864391158082023709802556916277010127560620948859624836684011062954466503509405033971325593989178158094723138477094134642097109481014713810927849081544996383762590625324557982074594810738336389008195997973753650890316113073962292240850438099944679004809775011824832230767239401366151393811861764145028025296182231814799403841568848274841948715851443043848527125189894681642070124916764025413316271014937189776048118042269790556027148785878477859445808687927063312980013134488701750606251108880836011338259670170053459255662379569558954260094063849057640237335786431751261624830535498616350462974637542316480629490591272577436401375598778904178808323501237387552017995463277644738190476489245759469640094094038951656557238180311597173824049355514005766321666504042920090722231606925713589309404940357707249476252525187176901755058559666532585788532982682602220941328778914237619205409483016765308213190921128652873076637920443818820209009916067597381686752202933864945653975411437500605183718215254911532763935847441228437802258818497242661789587445779865522662654531604886884217646627731378050034599489364603144046944374957155627059465490473432104789744683533023563459679312091721120430195527212319748711225471900482205919372869071879077387085192238891207717345531273727169164595879970182363234280825750309787100560655329681863740523492308087169510348321897887130263140275578033879662572639664216854213660530172861698175538278680724280091300748704369159322108124500471250589022039464538904192705988876192202083735454889397092848814442161621434892178208410670081596469142299968391304793502029981321669156231223561056365356576959638779848951466048770263599314492474949976981912590644668206738880413640513225547984698215019319048179227396104922611336607437304128056028027534666288161454246383466174449961215520856055903206598306268184621747145930756481539704472794209391610005508397021909493607777628684793088819543775427195632934701603353371509597963456522050498719370918736112074567897462701524966439154914763856735361004794769190171836139816901285647937750633055115502590077063999017305977049462952618954836335139621697692988928718148122881981189785915750224100029876166267318894770585255254688332544379881551938301605083784373880265193609637616480559427044413726462944768380252962477070217811235669857917590085678385452390449680118042978457186744944935936276725770616545241491338046826351771883591552274890583439202694860809173826698157814846760457666128486245357845744224010568998059322365486264520044287145304612532478948130470920851141465031986166872503751434533495058399584597300897772803258003479478942363110389466837144475107611816055046136878047104204784234316698115897614508201969313250787505398867824587162146828288751820075177165287106511232919590005026646219091837053621441560211544121681624331593982899072867499934245013652009397990947934068257605460834367144855951024516960239568016787203128894587815472187449436308184260405137539478744072056684805563925667168541096880325625530104604654005256656644367828624499902402837768775462740647344552040420089295589163828091800635726158135517640453209290874575341109313124342569717902442564739023989970618158439726561291807507596208678317211078113667137420301224653044485508549323808900539909107552116412227515740974621555885790560149968096821175760556257092430666770045363190940253197140052435279398353484611319474336485346661533538029748838916500375680820477071753871761973384123789100486134940241655174349946055090646098601560029077947124293881565118823674532229314396446337788440404734505877487953005915371948683363277855836427435449904387685688307456273502240169565836799339140297441854459791524915554213543845889119336108509971363945086690883815257360407970629669843386542234728774053624226523511520019653468413803153498907173072513032467377830125002939143882386749977806712516628330838231227310476339957339765596630543703517047285292791362350011498907381741852332280935773818973177747005139221464533685431099937594384435170287099243166505005492253756980676915068582032456177175979884963613308863637417406685861996417862490405249726640764686885066390768228661573943311877749518797682778947640101099696891678767063942223750636105424096251895740538419033941689578754540086239985471509660609489972565125655299211925435436346768440907102370877874726108936200820780852714657634194793501797043484392655351117556282352403276225297760493381664599812107862876411666461069067032910460898964366178228582716288526560100713200236454625649042244601253756971411556057569547754005817678663316674381519138863301093959539867243464628331244956122138801208719813677265974170195503182628283595414350121599592365921277699964961555036340226090045363284049870039466788153398054262333669855770073456570043964681341890469937963250475237016770814420415297372076815465673710491626287681063800820493156797297843670919581234638984032398090178820558888109908290872906989557264186146637789907079066085221900553790180446737100782362712938074437666298417098973328959641860074295965893324507988620696165234067886119883714298145826438801239043925398009473120036244582357452252601267917596685493234695445576310781436063926192858795210317810045623151211895563707654420962775502015912905654761808573085353460600661347967398436657891349589762327271032238125951484633239642726653382879858024934853065173734374297710795509277643973006893795035278105148727854756341105991028453001634714266183556411084177422330762615562713564607363833704255531269279863010571261600378912207925828643738339729851640622465658907817229481755062007970390866373531662195708819381307345541842576106531412523232855141711126606441939522597153903566236355389816073445640430995891589153158300846412305883589439141631005842514995683194610774306284248270848668077416068161059396786088126270423613178960423830165831313015792034021195930142543289169393504815095173912470744044631936889295511819584847955018559011962111969591588202974869095568447884866110754292758479463362979914129660521601493760183712779853392526415263044463554260688489747559221561560676225489299408013266282943857734389733455406170998484963517085414783535728191507076338461711826361896153510165409727222229965052274237400060098597866668385243114818234523040582084317402584927530787692664006928755491733268070035351680677898341580713248067455634094056050134461689184108329856615944247156342743547298431408015184925538487121569557813147783393450979260652427632742361851969681626637465005435143322149285530166567302662388455559708677401504641416532952387345481319735642946347866211967543788690339190952074996561315754239984165325085402534702780671560437389766569913517650086354093562382763154418726783228080259752455304316538256367618760847694750880728893057481815709694969892135125199548512132957551018088804625717285986149342308842151033425952821711399177232050890897283563511907369845782101521837078208665918978604358104304219196037570920429074899126109037727758447506912975174164272593312057659543168171072384573963182117466205803244127469073846173269112846309271701107367130748400446265829129561502201297282269431821691301795156377095006801564625732125399497900019750486880270967447447544810779185573279736070209785633811515829325871494450635591065006730996499993851627981125276992882964209367331454176473872923530090495262493778484587034001339233931364441412050716760250108716914036797532491435461923561030039725016179791696964297414928791018928214761138637896138343983984170522406401733786186127851209790060499798922530907000665524902741479950319923303087482416176570923891368071857889011241321757289047551624325491522089415759326794327153078341635953525380221733333205715066060220388430880717526300740977875840898489567044977560811808452314150415733597156184910397616401648045556507337666440145165568143230117655738215804039347260698901070198437397205454279405406211790155869987275965964667172805718372248608595520315453461729711615570630664567570175387405354170996431880235272353405199646336065819591584405949248820034308093127140163867267109213402778683858082680838082624753020625511282262336425115110591426182617517161846883686746600361773411903257107573518435162972825231504542283307561809783533522337271095788138135013617305398344308016768291645224811594783763372424847792309449300514326789899663198437272108257358154891976088357042637761259544574795090552265543822388846366687299671994725559106551337564041318353077064774246505598937571642574812614515542017795254961083927302213461147408244534851740320550801939560323784896880476913530813325202403517839577380651607512014283362622736481119678895878098810580733340415978670211685245166558001716866795960392739942020086776906543200790926676001963864303601720435248191222238986250345834270786340346213748457012808209243956816023016437739424658624436894314110051066489386734758143582417214213306449084266044290102853847515525774031278949367776751307775079750256611915498463473553691843008591491604711024782540181061024235397233336952461274696279577023669672883163184995925606309917702327297477806399527915893999622563770362133677325595692420972801347757008845753940668840551067221042140358911518021321963503386386219098152597246000595994977211686162696891158585787677731849847412739601976093354311335432305221801763838925271592530352230578490216427774630760312114520286878025645970726459690942413736135183289139316206519099669137324660296832001592736197773165708897211914924869353504850207880285525127928074463434827883577064571656932241966260866374863656119730802731088198950775165463266465439867745536221315633172844145956210585101774038833961779000622811004323348051110587931153105339556955486520137244393213459142985293564326096547453904664051947998356192621140416677844168620613758808031715440814290701817412815019276782351055178840594502064892528641426121819888272654197064941189154175955236792521258624997360717721522863675936194135213123888784292017876138410472542669942864422033037825771384878936549023766478612231061904872383002528048317995563279432573402529996897985030930485945799224229737411659075915911961474796701931339908251134106876971101850192954265949309111120642723019244819500355539677132449125595511534672322988825875321180890081845965232628603893637063118917411252901999325303543307837604713766660190299068735107427749874136265275902580605361332113817603908949287612444015410018968951560058382204237108179756231435655241483431361776624065701187517170007879861337523765332134117721164259091815022482831004207613496562264761384142212970745478700647135358523653118560734561804861924709300951555395356010410814044780557734208127864154123016449405268312203325753815330693089961781374124217888735707723716812722163235767378889488066458470583961800842178669437295700267691252862368773183002877022371922910139140410926087919847043339608879841996636265217236606310262905279697234308545544773645486773707447851246125778149910615852497270804853744262396184551145322508632529067631282815549387306805068941984382427884494104523639488315467487392060957165751334405932822827178665185058268505612699311102692559458503103584395949682064932586371827221766307915295330823940608856861142541401628588272642375470776770538744594042822755756771072798674515782011195053667077823680245470594997481902980604005726691730166303974778765049555978761445484823426658108827101481625676859486509416894919550946414971972828024604104141466855361694808918036930611316308609682175698743707928283671443049235343041603731107373445735919856698110792652351302336704351111797652060120951214655043424714181674294975273782531399237191430502362524655185250616566258980872214313655740423031226847217764650537073834599014684789617390976360927597938057900481569521087405523757149632882175200880746839636564067743246972994252662724502476303429036295856734550145853516903699881669618038774604137872652780859362368580961793939111145301917170749676711376601950093109251378590079625361897726462204859053487690182905172997664857286782135637581066639339215288242523792227500526577564190247722207956183528407377605823354547467265415763034090681773792121187549649956088442989518274093146968675848981604951352809811744997070352115328018233365447545066569850412221646468717554982094373661385131038781974976407282371887013913656908299864408114754823327884010084550784460692251950719368261995819880133810677134140970207839776341648607956963680751688137586952359814244569788529789311329357753293434714130994090567673676444700833430060844161211175423828082845705189596511138708209265381432034726987422816925525043498139387534918406513217228474299633990569940458691631620902858806346146035949924376473482937333981510975192312341935436486485189232585978442031218092422534567494771063643878542191732362799485749040264002158016839028012741768357763030208602783774416563266679832049238966299929724728452565785098585321828864899963433661981119740781904942201696144642370273358340615719895684462836967945831116169380676412233737722609048747577167506603164382523399266612917986320982356656079596573005053201072959269262224783714844517474019678282327057093311279854805602074084269725993999773691728187966310650353322880522435895998595883482902390690293852497023079541314935709171419611528109850078834217796415753619907423151624842490792022333599856509953565490068602642078792843830415410435921423681233184267680315490328243138485292982931352609944498850266849438994541111459656685914339602083915402116294636579798080358029687768376800634455884781760234017395171611784761762544172147773951092700481440125840085830600549118063383064038102668275840020081974693307376216268189692748653116595703704277856739886209688438878611705231593586695489612142376109042649425772998730411422943419094586179308629988033071424198772061800308160143249458789513613516293007147062141661460653182697703501437645474953965638057054807730567621742236272975460616973826403297939184893934396150902298641354338219882111340109722457566578770561614284635242010566999166321736659593103429211119085288582096437808308892019379422593128626294970254848563879411411370228943440735075985419915626985561570859687815012661182115109929684902903578328031721520046898626238588774014511933579733269682434590020704296516607005491662661002326154459638537883212465379172782456252453505124485509785283025544907361543831154046522197799112843745055614185130827426878938744849799118807302229185476285476935351416857116369865190567819972534670625936603132204500376293372396790060629125210426867582191312490417676636612240665608211221184691829547729645787999716683084587800835004327881777303412334299188790179182083225480522384967941301216852216286182610107419350452950141403886053975978147357198914512798318820272065571882711352416543603962037822804336296855951782299850775850831619898943493372716379178918874782603631574534693734956744222404270951418621120804732734487660293130808992045176590343749947745169746878516613407237410656850803540572873584517346921514971799818794687530625505087337602576245857915083584008711659146560062585888195437026174183589638001386781221341380591101019397373622655640908296644219300693549542575595547611943481686012924045448060369287630759092623177000216045206228982004322881667657201283595421874604368044411679819805067439454799328166902402051270254187854876753864722072029941045146467317754939603536585358393950263678760707512232407356631787339663154034124180610181252802056131946769450252629431137668189987123879353779880463214332862514525197185217252818077451625614131471389929066030465919819549255077706590970413623777149906699814798095468177027038552340617632540379649244787889037462198114547633390935620204172204832163727034199216969069001340728562917977918083753293873044496295036836860768841573123683837256167484889375066181893646596954199350992659370104752177270039769533287885750605952251234671562088672175832444075301143164749037255313093491014247804553755922786250557074962761739974220389320011615566631128625821571659848201650373308616337332045023982095184566166817363639357978179832526547284392415064126163189064453219562709263279829380055036486661668460584320956012439935526074213327368141095395664283533295967560764970639739619910523191034497778846636652502435871223743690002869203843636484248817528639567242935230210467669945318471271791717687382255132096525690254371401267224807366202179667753563769735728136691559987758307330349816328464536586138574038022957872754137465974751820695882874978103788026617824460122741380229469734560559969684011359912031891451834086640642283933046855543694292621462683308010941976568021032044153094246282663238789528815387424945799272149986375307239535717142030712091906064870646234636704558919714236290381278899323345417576463006711722178617861208677905669886878532428748773294102482931610251359245462849094424056612775540367107681502634931247421237677421925058794055291107583544981250131550387758952855258075868549160731785802004503777783402607713388693760401224187719556331994044671479417177493735775415480663192827723591175459549633289464181769897651400611523926259825142539200334741085683798966813259767034100408771948477629484853999451421585081640641477755044404822955621186392844002332925568299090452943532085142067345543976705719545413003192782375738982443806089704448440304353205020759278647242188026162153807492481870574672658474967070489687470619476289685470577560311856122338904520368950107022453584201022407644856777589701808356019306457462354271632379156155460176451021247753285829640361987913846342017714920718760879105438582761366620664067092722469104817394874717057451326880605106298436328758836562317475306296064632139865439135069277229857822724080300298605763149103512142194193010770662085281812622557090188450190616438065328758486232296144796628850730551383919528437076493690358592826135450892588387882011996139070025434107305157777678337054497320376507517843589612727683102783194428932200546669875836305737868737975832159838345399260805125638381601127433245981366476902728710624565006844885405708739475016207196181582124868625792479431365085244939541388123251660157035741398228822395040064154936480734359125489529230967308250700486726470907873828208491527906875931638076820867098772451286292420810068671597290183001883977055671373674826618937711754150222491355474405568528850892491277453098275418219286273013960238209474078271253460323151939995907132245884440383462840593760290158990478449584804016968550945647614160542932883206871870605356789868489362097749321765131404246925734999483621151312261901744575867166111724686309823499825839901258705499056710033627575755452175923426884040711498410816307574487024436362601340473473729617216141645467445967921462277754145865624342389074243896664535984045481253891894303072675867089794140824857615563821175042095111108042920153585754950028867088323044291628841049585067775306119238669202771355840900164630456820765736474846875539747880569752900351949294222639591263539246934011240706948234983479550168728164541240935299884054243056765841145273655482836385129596615888763231490351687933628114304995517374957551032501070782160848120394415406226492358820969731402906599489486259946583717684779673842865789242785373846530852516268747508852864177905945956580757532050041555541718089191224846221236227680518270582479634706699405533244669520139541553431129109076627384664031206955025522299052010030997568349026476000675916380717499451858348518475482430708430300421442185662034219637014348395329384546244787710167632980423039377116891243760392722633930036102170643984923198967790748497466275204306042190191961915446024915667912511977211584944683463245834662841697305903837214036401603969254810775285578100604764297385075167725659290685006927853219083632228296020741483108043727067227340666039266857968981048336329853666782757538727568316397646191154506896991366532457176969955548864707705299578558192185304266413106076963489627314780792241877691153051745554624034755883020511996307189053724967957368546139279244390321598515665829250020626528237556878383772774738534819430886832595238339845510720041847752540614301039249020630592854639378521276396883992550023507256051631914797893106443812699019619019234392551854112996159504817388196101441899132063901105500881332775024216993601264556613840470440645635890989373360969002333664726231638827198479870202000261868838592778989171744211425924018497647241570279377099702242673465759913117269445085842953283526812042670437940637769799704817128404008801991022079429947344396763796304327141373257363261789201323170271132470546949336212296287100919298052644571381037963885016482076782940916824330919622185021216195997002842865611342778552697948860560164250685691121476952703578797115914091479142151201920687974892033598067976833678552501807580694632642128061880533270852886890201103228173575952495596402866647287673008755641935623790666734709388683054171709386096038857550017392032536642241647111562275113790757292549468995453682941353142937697035920010024769258221861326905678035458070329254932591118280430936680528067565016208537247318921572913605083011965412362822811152691051067292498703515305370224959963645871056880941559243847140517778350658073072322661498889816231688122165038822280736721135476446505609705188198083089567284047102720097310958317927416938427979207065624789591058077834959023217656346757887525417418368470428513872061500544745403936879477226162286095582412749747783930651304935106678749397170091206591268368482371706775869244698867734812261658362830204074976262561783074441373036498640603521852408502219058439544180017959247395470022452008333682139130715063744611276338034264489061279571317463699889211678242602693248146998863049612519718565997869573755705305570548246104503183824350149622902891650468863264693518372052097888935426781278927983514877671167462049733486641011784841754400327915858558132719987411132811240328565940935522172856232301940422886131405741984762984375403320148317351880742316552360407474352406019957995339168522046012832777978270302718446867496598296118118538079081689169560876075275873020495619643533543649661637989598485892981525853952986694986085061643854134572905979303133785598001950215192363605656930503100201083687850752724565278857139851364591874060468027211382677788004137467115367163139657649320034732236667778568108432751556744410039590743982979990193500622394633287245181152961695274889952258561992575700265167830484364964507812103736482015272626672614219854237399202417156083446784928790739339880511553452835070927981311626565261423780356472451316271879908181630512502624203640315229991577710758456922780763590385104091241217061456491758552812901045837082579412877096996022361325971942390649109301730079006731191768280457116965049715726614509466694034199611943970719719105982145498540490601418405757488774989410145989329162377397347845916716956321447095473604633881644356074783509017215047540657125805321290274147700803673913827362782283829821244524370420000100731541035373847337897992136879213148736172440837325734916357057220365402350980981488873275510106264603068875199832191013641282057709892901243403378607001886765754013503989711444648197078503767582722264198836870928481869426998918901347168904647932027374272671967034964991145690268594754456622211400558636061460162899416459174099772322212134275422790926913001512613371632572681380532019558314225269658248815148099087128694955484776333590329763424107287988037548464614641954292824027113127431826788941239025410654715197821458371184995156964244815665955104773196024143644664091425229177036586035382632642227552141792316040182532715945031103338478728297087364468865451815355437850437398578355388706202220958947960952542705409364075053464940692113172273688833305901117843671366590107657361497630714782566390646100581177430801640114813789270530707557851778011399893828589637521118160558363371077489644206245917475854513605248784349626363578543258974958566414233640975282229462369674874888303697615055454525303480717638256421710308052291352781992351477400604461168541518952154792515776462631605135051602439812452879550002832280043762275333964665751056863813078168092952110330302875309551823614995327198870545479998466838459348320260422401701592165248697719812105995040501371840287563174363203816373345876162571688347643995666016452605625759589496535909878831727543925702690045150387305544273987531692425092114333778630290162991369449222776251659055437393606184093755946924119029627022182956304087764689623045458460475806319532918076571213210875067227259048673843382974373817067569404656383343243220021966783460173746205984881711443774832507892635229348871739889727247520971071563084881672691362386358617547552813468078347073324640782749510123308736687612290087493773415498545746149877334472001282624817677944403979080445559421186072060308157679347458911584449849650852060278951313984831688906213447629855162700453237102917627505533404174790730342444349046005117599712847660960648209575842501899757428088487378868150530932530368466812424769523331988880566576689612659821554987583434125271907813780035466586497211502522685839919280679605516388051847057266698496636545300889734035852281543165397731472564237808180841902854637958489321805150782313237625919084994693240086072791809910517656365511324012756157388476164263397481073566812350055509402738345286718941374520219954722288574129649972030471738013484992988315595160019242218030325549705430275464737547355983363744586698960675299429223692182841842906859310559572439616035562081700624687914715945842631552725748524818104659746806841336042691463446273060620092872329625389687610694111202966006230661501590382236326367806426309172089918953510695203909871040538584747561011987128352979243860683308561674554646332964203912319389077334314578910943800950601361911424098357803138332956032480950960999389074380920290923368264835799433694739933336036463278296817787188228767938135633307760298446304764988737471236728680076748569094254282321343703550089166670682199071695942595680738430699617770085789110072763643609997695796836959086085424758096968586619566138383042059472960933041861084962214764281649460543614334666552820556342069418311981065581357015029014261317833046100019489594296278714859780535493800900541286502532393809078036703419386582782899108547274267924419641936591495146970186540931055745237213322039023145289208911038325792969111963637292851629661727375151866455126352480683665918638065981201888499282037631031502689422194962514327547218312016061522311705089564080205783995610394248600811826633397770975993905603326842443900815441266852435144115887142229808485766900497047991453924380928673414353742063022119994391088540526489135321800861858240121008463812454312261509144606171698234777078588190361320564011621416318789910335763970487262619412894047206819689524032591704589983108859496066452282117204493344133668847076360817604213463802252968482041229061855588536133746155652679721942924899688585959005366769191076485214348212964776493035453910796162596890705736999929244564053787352104308968635943708050390596776722651344721403964865458830934266003613807814319732875027844195902261908598103295753495657941450220627738704515172164491322215323960536563867517477403275954310864256235185496849980792028221013129819242620179729015767192895935889072323601502145372303415883582475498893799518959157347249633036162385742982564522075556113906678249393233697197234025878937283675974119096198217618059613377104133555873998747044768694837320120369208591282164328237742961104720556687150310407225340064759343030781695016242182072906968111408514612708456369699078889457039495539249348546565638520512251148231251385993021094268663405356493214229521370327079963688825612412204654584546706765984641706666512342347839086822992334412738393076195819995497313342524036398702833527716360257448268756861124674702151261358751730716882808547603356820422866009145012411626100158763270599218040721573509341042712699941904942892269545064616766962014194390192127327260317315940067113613575655873356311302354259768065938578727895996703979372828168930679285951588668858716772781765196220019650157891214649060536228315386161490660191891471618723627571506350413922278606225083948429655373913472361374251118105734857416813862435131790866079536061139931245777589066755050585941922194319899963694098756032106200423154331430319292249987743017858928901864028292875756863093196467766760350585908726940708177144818644159277874839127864557654033903480653796218983394615668777542354981400364478159178290474098869188738614886721203317517198299940706934320934120288804561801339454281141180648948232031147428836221413490842846756060135718108158416044281395997330480488573783236559293044031818082606819953623461921356589183890384906935770647949802816606897026382400312909032479923442615625844447078541983155445481787816999228341985312007973344794651382417435496916967403198413726909076588877996575100082704976396313873758365956020924864609478226175074502023596604509883826770889907933780409004273777866265210888397822948568660844412220609920289662369178627894255063859256667062014349489169177127868063962979066072746780893749654675114938102712713301743028046323832094877648412289879531019556830612731934773863496116167650836290471942624651297040073030826808946679278043220360927220458010990975911595274270658491966254013756780374089641759193678495212840337554894009138964144246300654495192370878209727484822642881951801263494940332400488151181890021520487359737107280941508333625004602840317695034111079091206750680934297345881187655273374582183452360600040914751503670777379467962450811064829113271865013192303881226379436281606227406764833780031906772191285076548673779638017371226037468695438494275922964958975520080045064872729397332354671316018123261618996527602433641502239676220744177203934794175810984830186023359128363691755795012521521195011321329514626781720360090676458623953269278443634968331770719187578011421701138208617817637508940886260721925315155081284393047157954715074551893599292065523468696484504642873976285761250158622552170819063702687609607619008641817610466322295981790711836963194668602814596117980468939857357777301855994240373875411567254748700382206304381017934754813798164126104689473656047117006954861488187029025955007912683420620898978897316974212667162949337926905499139584969920502053944331774142428542425789693706242629089281704941190670374699054300231768524529619836724935971113251744725809694892595675710285841340193933126889429816420132254787199210258438651772107322482231500146249663310263269212283268184352461786667937689320381390976610369050482041136186315168253359110502669808950815351922549500407419626360794378848953878203346175849734609498646550713952972549018429343032783153863582938187862489144673546191260310907472561147613903293604103408642485598122201200965368906513877540924929950196663334336871079147367833044198852835657988014652717028096473012167061346261110426356432039153931723377075746823271848828778624652176397981350991166662904431409701049595320510531453294555410254862592976550147046587148851970412817120271677051514836156431442164475446069328481267548957017768955356672289072939261770668438840875312794421853482258941455135330200488098165424648576567945979040463313188299767295504299082567374420910365327294208492156723784180256166158318593038001504007981100644719328873059379642747845167753430678670475878442336672817155707063221283082875857111730406688140164387348323404253008887394872126945131442259379643105626998785865619411789421682844311023415234181485213809157281896930619171166974960938336914791884396471679412552817603372329411397632971176671397334584634300467922161764109733122300223897658658104412754193945391736014509934347151743083142615663032374683622866251910916581923146857882746306753231943644258683896662356609462485668272577446222257717079483174797951967507145822179167950971338321717466260304119090113672608368201555840550763507436027365559285777710671680720521424056075021954676746888851790172306031700879173799969656930496198490667235567962198711068927117322257434468313455088830673044757609539419144212082582826992784326012872441854215539143991554736688251893919575396357968453267988079740514564729635985943938663657601648712259307780918644455319219539397444047779840261399987088333130928559948418085983132057109970349813715928200721172352758288909595518148886589159053153023763330677423846066757203706893100260425477834625793193873111723114151578501607191222593526261757850009014537019119811048252856644986718846332158327237751389231374943281604474461419422277911108460341913242740838015426493899853546559940955624338826843272046919099754897757645092064679868720071830591656634744630797007207164793334545104973413441309005288203406897631362380198196543306712824291348899355858196513455050733018519918099042638776359472987983319430415691507947001983109510490732350650864819092130827831002877706438554251509844143127024248870363966353535395608768377822879455017060489767442179821784133193942891903972902545791268154705701229854317454153092710236906224140766716882134130909829143116842094069462153877254275175512924496852460208017845003350649669098339218485833771759134948550550037938673930657344984509750116222816845483852555180901786679642154114056969735166910696655469404502765148486067340759051969440867108517521380006561217568324542602221241187367761234617404182345296498029502647276946699158425245576956902304233253753947624225438656821483160063660226012501985402466411554359797481721550424654000328339627613182891342022729971865280947280856394235151672944547431228305404782720986618663312120797055761715786038727643544046851991483344030236705749287073168805915480795050846436863401092997393596007867903884781195331962133425267223505336339885617369938105431974928630068368468528840673026724770840227237399808910511676226523966893803452276440151308519453176534199847657523017411515458418646806465686167864897568852522824561807138358161611692313903726006599544564839166973266689266005084987565219332753677377480388619242855754968399566164392542731971379665707665806997272443007088293597202423438494424560751946197912526838921119418851071458947014526441592045044298351029050704860862563753413201414927113332488319772620456848044841827051393253267433880749603915739067783068160597585225985474907179040182094851233266367826729203376197913304809861386874716619692453350486320826128415177886119051366473089212656736636077917474728486950561225868779651868059968436135008405996972808709489811781745469502701396687429887435797844126556390761736607423734291341005892671904107106357749319867610263700196653607608161606844904780443629892051485725246970726810729843144952698614518663122508976318952599577256712739432207042575266466271105848527781486506634547584848761055207066414831692100075965536076571451018983228774407955285361739040505782030519407922361181320091496022827734633816103154778056963626422278506179442822771034821938480376092512968741042205693781050969891881540364566488620851880985841343814524936063578123318951935820116920332811896251103455243740176088811664228293003775684339136595052391495325904300677569225875901157224676337513233944434376422313904975660682336170480905858968960415716677927546559787321201576759814763909566814490163389994679114642799485561501589183907983957538844589231558985000574819072006894720321517548866057615627111893328133374938302601026430771098093720453774625009801006360545254086322687839058519958963583536257796960656609666459124070243247389504264519055058463286265386328234723668980295894493119515015561430287024623888282055861174847778118779004840697164927321761014953755342374252459421117154276812549971809156474803515671245496541404260548132375492368525995393169887393185673981831569219248567983224698197156632238639120502874679167011846448784765529389669846899772306474315724759994959365477505090869213626141635320231093911940207476681213400022410247632432461808543698584082528629401963616657657834529982461111883634114906223771461018720230650757544476491663935301616717354019074883341575076753065915283434296018519980862550942728577076610391875540011973509563617669710873352941849877347915552576666791487128959053981349594081471666665429401487585047833084804921363759371327667793291342568887924773601303814979359634680516596207546702074922363533421050044065560462533748956743868407607015547931668523160633629367853330467490815632608342793856367526280641733936271167063794005071154674663522136137842936333909119388043339827055053646543002932141665550011135982628863685376122593368458338580813374858069012697871106452560240504182327152011117408722011952652139569752230549672322497168569178317594448933906937585670936269969384485395057947696018011320392718892071441142392338193208786807046509773886026609035565942441851097505328793135539320769435953991941873982083040448633928709852221096100533428151282880932901341618052535411928702955947047336694663443137823027278554083307623389874008135296156432491195341518940439650401917258967762366664383324929730984536295573109208584250865330492230860878519806986418354622975998110763085073436269794140561805151303005886188173575796768838837816402058360006138828833206595009453436456310096671388774846107351169060113506149932198742940053452769908426637492143133490471358382383161019487300867014051908125156553441812120080502739007027352847513735288416996675444543193090816021462716639106847156522538052810063135085727624354400037786760878416508851530798559296143078997123601540743086740727131500646988046086720468563813655806951195109167441124920375565101942301177124762947498293011972632555584477761209201401043392491217805349203351102023727188001395184502503524314704139419746198375635971230212075580580455040274173151608257858879726923914974378800763377078948733127430867768670753130725955023479347478069536132155541236091104911006741075909083542454555298226783035913137820024308100894666336967015241494174192880225299303940902844649138746047831351404929745603754424561745050597362342391062896646759637223796406128864958226872641160860654684102314813223413715418273188832279468208510930093357540420570117689964581067808908470448596337924005323681017950056604885947875965409225585091889536111530814422509630608132357576798828256801614922215138655813517200665120706415264386547917776932353313492006637675458015952973106166640895462955416176240603136845703461050084751694388412653158297234546889380663327439214223223802483548021938595000688751673129329395164342436815915728735051594130161121029832335768496187397480549369534543505890128105795213671243551464802909405633591165427241467156110628973851022868678563206501412868037253151790255101295421718185049551658249657239013987384998054879998862170910214901794465929866482664719422269437562934166100017962985491098300910548526211238305699214565677301272076830064845642996024593078841507009283237871120712682219875100069565050150581594064946927428631578739131389678868533948612897716962293030631803485736931211546820348752567829713951229560565450598300748781557642240100254258034394303297088322159564279643160653031435780317811499860621948849075679427045806607566977790378444090119292867278840053972921982050213737717273989609431197231114845458835976433427517645272177376896687793839489484161613993078836959017114227402140086520540914553238669948470659649474465918557137912033691913241419928689633736629745345533535339447068372935087811795197971597626305085620049414817549065225886017122940431058759098158776840203951093051840101106034839755495674332221124805884796244780906695971454105754382592944610782918341079646561119490895314806927756361160760763605367840031111889155641479396923929401339493753872130751067881166082283661199798504818237175311205786127167565170731073113812428089159274114976034924246578863522661346811953418749547567220079596379752139499708371261094642961134857030974806794785621635220039861406723832381937005024093077271467631832202152648439074186482192417882357323337522753048091451634880088798673364989331369406747522042322754703094416827739819650424429314058343546090940037110450883021281312869551997449454378543745675534760381793821145572454398964977292343347144720165967859134196117391902549051214757936181783127205345153041247600814366529520390731855103094853673435500690988537992229328439286423877854734384776773388269502195560382401459240979369358634399132051373792435625209379276191403143694819657449082341281825847338202663998082886170116335361601145502996983655006781626042224867680908361000163183567904680779003994295739547548917026515195580520590329241691216858805235483589312544056782689565379397561560674703680622652072552646691442515092801637818789230580771336221459620056708543740045587680077045741693573807076114171477141340687086550461811384982151790119950209218452664653432588890459912425388924949670380662778752587474089026217131063880810911602236486586447105393024685348854331398061631713842089700118330786422310070341544720639597455328187077240124321095929463048619642177103991864125397500342775691630813720266405225283232313461187397315807840012748201043427109634082769820735981945201905186126086005121082587244227420700009104396800657926097193209647910314432873847525595092037684242028954706457068082478581088910914297703298272462211363240347673871672817914082005870463152288725511069749973800844661006693863970771005085259137865893464547140931713839459668305296496237338483980512326252398365877401152590370110691139850841526001991995522931643740986908101755174309703238877205006416307334205048230011136248791486158465671086927629761155814795086519346268713474190038527882762669521273012805985978254928049973574510536649146384133345260739222377753540317533057259113650115586164106855836079439609729984648144569586237696665644990856038451583877434312719148352916502365237603300621856676744376879876966420796181137072222029033402072741725640606355022484713576556709889205967709908819661444042430141587899791276855864865647065313315698428676041959940927136733356986970226993582817848072757440947310757610896890940234710044651697132154454478385342643968599635729617390620137097163773558755833158879189919778359483927159660815229454323735857582510837417209290805152508758815510845113920381221421249757450513678784963436295310596101407618906562395264001667919822858958592845050311921253521765239664772697147432495015553656358099098562258182051147761244011018532148742748026667658671079741208541369297156844142085654226616157663597751237079333783155567873827400935966819037870124587472623676427254854342418527091755599198678629211997022329886689975921047748553016684797865239107440717609937456514565714729078965577788184109643468204336869507520505920598061063752153266696301324089273728935637227806009004631428820814201488871790022741980710157195079018424296455739077696076593050498760584327409660925327345746068606996119415545865898333151978058731720900941527617228654045554546077047152037762657551503497838252604854474615564894992409744550936395665683180709686624595807186973478103933261095839114307689487212033346821791328990577369036832890899075640211498720489454002072718505686549904678644403076076638962192647050114789548503894567292288206366599701406789087038493734002498828014984612328634963208513781621078213438910008513320790905350970203403471529820395928474697086674700808238292180553518918662155980775802897339187101665811903689658128335222414159848955794736059693203694928420659329720956846212029469628936118405192988332209665086439813881236532812568265828201160928034739252208323406751584799942461453492539479673186091692893547158683499950187845910762788823568380327027590869415582197000752220319441801058809626235165365325842140588826670250853487833600538612783947324710886324848963912729794461670476012642736226488958599539667445365032550022598797264154028028346087895472205751479922500229209610489425120890514454219256137684939255058385471983380171498209473086980873751919316039728431174054828157537982343937024858765618753141378728416004065677103168727148839994739482338391580575439979242948810200874438116729276428793071446003371914400285831642782427000792660729761134427882122163248262209728771991362150165447847316668742916580692242222506013080433283278624914692678680865522051548249804738101468243073515481587295992297867288207823008994920427799035114912501813952942475936168228359209730660002638410572381332666667024090499188653365656094559566760815278304927437359486170047567865178362971482690426792700049241668921648845738148505472794157356213459866897712003846073852292920206001042073255501702849688317664690315094010310807337444410151004291850495150509757588239469635201908438149550240829481062453971350981653066492377907064816072555569498120477081185223766780109078446233854314956740292662954660481746655823329805190808790788101848842049916557982924690428513863436759011700051195211891367942275719142917420376641791798560727440408143580031450325303684220942874297501463841068133873686657886929289779967181963853528065954330391866111126219771287863345142740841299467791900811647477351809542787610985038873297382289786474480969668363804004650750591719276336233975311378553630436687585886183285351973815437883767965619189398276667098825228840261599962691426321911357290026208238331413271627436302677064668715893680435629474855693960054871893654766195347188872671361387731145813131651094475381257663046552451049522441385001588448830007304654383751285239578783134607453132918981321464487437136659341535748918211482102993505705155298392772022397373920988377392099307750177594891146445591870381785698099104516926030564918456446297671524675268711904095205228588008809784013159962723994756177986287447811672344208727058124232050214733272856352802231453362826932780043198472981073250755960388883631732584347952593222846944699193073034177599889266705469356611153946997097741105269750281948194928941845913902303297739521481617388271452291009142034547372911492748688036887279203391888025084994071023595328220967156421181603920642283036854142418651623841426067213284057821027668357630810544705487687935145402609010784091983549230492439561896014324641895995966678209179246682448623651837611136722873185135085212818825028451407556019464179914248935249620926716525924391277634643994163498362834967979340276727363602464865242725352959042128116811522918736682760980561285293673373596613349749105074531739243862950977536555616496614988717157557478154218346104253670184066810780450900834883129442730373803249025661555894394792844984200299669242090467197377679054388816089643776322054625135685751243676317776799514222402302614510029762129917026535195878964556664643555156523205854345236412636676481898986120623501706644279781256570176788952938849853378605741269155242075825802949232967044831624436971089736125363335319269950063679934589054856894120097919879976001045720908421196506778759903932039327909741351097435986679392829203850020653121534506147627944702664362291856059327505721807436423395742091480051712783585790904975952259245057532164706594408024453139999066842928102320380952915632828660542286413029133396056103928557494165480204353279094115986378117694703465010530847387569348733409672321345068665946941232691783463424918619401908733085287169316451690668762386813655255078061738143115389288441868728013772742003167581785985354100399506125496826728630822509266670005673554148093223939531609837140702746322005139096804207301887911845315757689590686072961211208604806019710340548020708398059129443231767069827387395915614172487048848398482271893628310885469073773309262223812904812456663216122387606995746485648830703724371211043982809225174842601017038938600756119245835825686819158868524592953776333329620339538697125198358159216330486812813110270137732282439171322518838183552966474303825356421579790692482408364873725574742328946922949058103608380336419564729891761352944476787365036664205999084758508911376882737789774629846406853605199867297130979109121061054770862768615449432210450261862688758422234458402831240532164832275282812026158423135536773302344902153912727096446953246073164858795484057312521590914631001905508603349871289277027853732711429825834461376977348191441824650440944168780090657675255218575691981239110026652802093802359340366282908724409942518364357312049108530493263464115214894998953732860171965555173601870240837887928105785670156791132364489887859665823517028317048822875130985945902243213566495332136184800547851718578176844058223314790023955698840545427867765874228143316238048054041779749765444430746398039171581834946637838022346514196915448807265317133127819971368964478389116398943795018557765986876730438215910092764573812459198615924313924358562164887822828381568057814233788795976873819611146439040472370014025865341362195554248235968370703944858796229901230874835510839636649491306868744932826890598763352330443579086790722368433469647247990579425944267983468671158165398306153798626625357300470959733234512782925477902250439363362905464423042745734911495747852023284192665403590670001544337567211716783134269648283693242501439176709234346018028387944119334407676858868552467753184929663183056372602416259349457573280952283476895426367878222571879775255711777573104882868093378597258523077719999733928308430224762041618062574120114567597589786311829254526254874129124634644669538283381877730026138845254125387346107760293453641636598265053502343809759446242525750765676380470663355785998300991620960915400472816142485619001247483943641468727622409176170049883506347157584196704509426733938054367940922339496234999902805123222190879348646801864983226868705175534678344627955712890348087297886591238712392280701276193159891756804108415950652714599516121025443049625131324074628584324027790003847382135571972402792421193172640770447347150994060457958535511710367374144208300017960951285759777840973088727418252905373387282060145352552001286163762861644380627494594861347472608739981723494137515612065402188558509615957028232571304494310061384478398761631607872254610453587239424313742701192756500463224594787998165069791043402974624292224714640954688383211090705709237432112178534737953740652908647402913745091139944983310582727515491679283716495529046248358728663933429639792898081170492428436239661029075480639966420897806619562030923593179186768162322777946105347095974677087091713101287235665463940820413862471935315595308192735616433114418831736935278508583109981472274127797440999780971816445350510876505049006637000294821809935455645824651020338117824887993078865864814955241098699509277413343875514117282446773377372273546220639020421618693210363086633620336436361058685592811856261970239649084545408699246928841147245196369654202951931289598873822298657714220555376518360828819115429515626166615380827015007930933992817668593973687736671532307185250311669898703856869118237713295531842317509251942852190401544647841901303665787429876860161101413615224800761098058999403511333046352487464309362910014528165708384851700434555493824099142298707763858429087493568317309142451037917737966552945830083787575025801128078811765641636640772332584432472011797194540431648817406110520510775134001650213614241505095814854375605767212949577500281800387014630891601812432350998638411122842630656836881702768749945975374526869359410992798940905775857861754673435173271844918953357743503325673793126578188186875606509521593264925038617021818514008696682626729192565493060725772103792613309260943332863778639825798044035059551299923902769239574409081816508255863399981701068862327127327746578879481112142275799027671213289932381647589201881605842923896860588311514216491486404852288729858806691863510831616230784054402793332649153824170309795146167175296056256776537044467101626576468844296434033699013462928541134626763473051099405570558363714445420212301957631374560841364498735399980831420691006198043974897037831942751972150695686599813743436766178822640216406712985957758924907317884733314107357403381384917517417384520014949262508908888780488788484521821481386294918294359917220555846553247350539959357995950873851721180632926298561770976105496862082172106472890164081314578604624507029548242810395546454018709611332310001778814967000308886475959412505656962582651987151036306271822282258296945804420347845323217131069891626749712274392909203003062976319001581775290633852878114715994867232524650682030607215838117253822857267625832229072668422291904594687235630183841325731273487101170589288944644545407830311150064740433505391653945224454764156970231707560687762955230005102846927062149219089333662252977385566044270697189991896347759529787502539725195472054314387347889795983991217123211952194821389465559252041026112350946398114412215406659086978554131917895885722701596403255749168945959887458345989690559188161029868003732978480958173819427530943775147874208624359076530273925553040349840213059541460126338028089592866189425173871093822232483290478037440808910531282893781112870616865736058519942540709485837723549770395376256767819043051633310854706470076504704663785469393738169868657975780584120605070046763507424177998612605376446065573696740185532603728615100003807234847760501872086045225768209672880315215931611018351383459057850840802216765135696769155771442178989748011073673207691065290170040069518653324345997913537808329698793212042015365582728059469381696526023459880940188019523760911569179041096534336130048055091032076234578806867963162668072500836877794932756877778284393998120448616890302890883922258635693392636228271419598122342195603106954367425795047107120476066225360870374699393573550179498740751566908916913598077268481649906083089179375737710749189907198216617119268077697039553988344453142966563268507662113492168903875869958519063087498162848942132156527483227468814651826316514981471420471588362801358369649750065081199804051347723824898750953314125137454662808714916006496522339396640935771310927578169715098012906340633196299593643654583685583650523197475420911275291415601892227546338675838057869432036270415619464607007542635899088098875152307016066666954823066362521622327700664894620863904901610109768326662782512677475435817309312161522463110689014505304441567745081418326004565830489693090579509359372272077305572113610191681787028447212068411525633536441560994898083532743762447050163431694630908737329736422272447461643583858753741750479687229273766959252417803891732483999861768338842580336394083495846651835053862945168544928177844660192222131522445112291099299005992925964638699691371793991640621391743658499927722050814310508937161495256332724274650135054412085001456288948622610103945336841654891282823612108466524152509106249322109904432266220750850060603557581589532784092626017471732933552411465057985967004198945766139878421274913252936722188814482547007215382252199456750752736514640534234637853269872713668669676988741056935302900673811721178943509092430699695487517224570688004804250982128543350346085005406562049464868394032117629279306060675895224089906846600902374122478389537308807860087081659561243957881088678576055928050461388933099210685297523687924794966689582604804671101035046053627557088376037078927318158059493800958149203149393815508773988027858843933194836899427808190552325115545652985291191092211982525466535573934305925972525935792345071829508733880010729321081682807417716985754399000251399194995815959189233126104330353381361534712597243633357035104901893699385669601441723848607616999897340371260046759334158194764186739258934442331647596899874404751154954376795347056828931505540515905832441315690113246859882540803892534822430069051844374963913331842671311023225961707334852636002716173604796177634646967501301760686147661272165552277912751689025054410849347457209380220131995243126740985683250082126350870806461349364336889878282206514134397974166764508463139497653838787564537795390111973446176025167525630803856532222535034291384706371098948749856519487810558492547394993171271900260722314283793931963605837954570357555798220256430308940392339365266654749440391693770989647595726352868290971682601736292205911030799518675095932229847177832691307840754934814817421211416616269285061916585824336448289797768013608136732969577801742895936592527085144180782339966350231610496490007603716640604580987940918558129024449850312057977659687085315042741726278146104078191314024449808118546198806957816111217934567869971283357203914465962746438899038488144594944413016385718158309042675782007919980677663069533596423708528401362872820220257246529402584079994036474263502990955361160717976306656573211392873309049820122055302160218492794973284385939516109966370704853627491665641039357848670096818987110995460974332301848647730183782347987491455938044671910534854540056557798105089845251423329406384255431100558103913617143804310534438646861086110346009315192289117792500061594251929352685303161765783668706148010039000324500409794501807805325405358807876949680419760840092416354364216519172106611365980324556385307696819262302174739378306961712614285551175420875337729864028891091801034193398252418237166948148355200030625094716294354466412142220682476664244417730272755210242699127506475377231069410316302956983680794977426859795723784630747281249782020239288812776098334545855871562579455474277844346693906678751685287862276298279161795284898528262653065410782630142333492812807483213278068146501974021695851426128013918547105835454818628898429377163072839890818654357006289983652146258026032468135172457556575153247842743548152902038328274956708414505492148534816913680187169529351766989601976967834028800374921946187810294249231206866910907985172124817537871584703074699976085546336959300412645704481831168232072573744258243628909243855534139649524873019959837540457314622105575374429736169467700777536394048180858604139318088301919840886829070955934524909864758275219718397204092650015861897866600932256655471844969696145218056917550573335097142201251507981761925713920224669193733555014150851578145799808880635637062396021032203030303555981182344710784474314033452847486038102875280706307669196322281712900209483244273169966863648357387257541158313406505414814785494477952620300880462213749069208672651598996010891201886223017724926863056988939191413809114075032412363054892771112880397203009015195560159544201751284029332864002174231752195829708947459643992738102411610924339011685545013301840238047465376592672948628338106717691195165449125095405688632429155733252642755122742106616916749971587368431228200950735778554951153918410261211874146419088921751118411793223055118523674260927175748469127348151467156893801310114501162015055360894000728648082411929026402406794814492210017345405883144956346904196866067201034286680437460408626145112294519601982234141421945674220506388979776543214541856152960581074462703378112413494246425389613381168927656918137206446099340100221785587531485193693692500250151851467892040357270186001620780497553683583442113797222456428878266571693538476204400768907904177877034409440423002658570363402585857781015882718960982795570592085231036954159990631039882260516617444703547255318219348804782172926368441743852425693117400055674962241492816598222436343283463014673490891355744198984164804837907902593143773816974616066583473625758152198728215946557910775766284185384234717570064115276771510457673610780843080651885549740372783250997675361467711368714798109299982770890976932746041531166973196293776383522177281915321010243456652451432094927983091528066690603697194206351881785238869661064996290627633834714159746730397156177055829253173657003618597507596588569592057160515618759197175273950042522245902435423737487506255901355222098844828620701979827286601648151096844965977318824339537769784864315874090697893552364467200238828109525954526621119254793979920168342795062371088784075629955747840147847842247871898459870833163959253616694813017053138371815643965022709022247927344806495275933159764966975235638269425042955173457081347777060753301504895121626232722591775645989201180158204861293477989146674122835040561083367400057973273268748573054641824429826478409892583726006077438064509411214072044109818459317343910234538505897015293392379650525530672512516659728928068923687040836750547821792962058057064271606857038559191808501095230152077546062980435697200319996357300841790460817506650717845324243678915316652236206324906366999270138361893025906405215349139393288892673852297458232458782160135868643840113621462449517199853429553089299513503468240949270944608342575257315859406300758525726416350848180608403081778246521076162239499995460421328853297363456246135682222713779350787359872104611361785581200584595791782222158567469984470149131484344841914766220101895365757097166771975192208191188421644951327253926172624360367499425391302685586083445078325977919627502424301777662199346399382200261353409986918174221359444824633711998801784606481697887887017136770789013578485412202921692323632722655067083062011509685615153623923607473637161254725263691447588484353184115834039538937550621674986584526515096768106091702695858421894209930668950411010549569591623418749989615218723786505261269309845895207291089318318062258957887491261275070878568883642308320737651504774292866334475088001894696573120490744715574341306424799857936107871217206207954065376878210589229240304338913630568613107303170394809427819707955205275897439027549003916236443194825075713122450705244875707084067829491414864593262239146092807065741608410189383698037897341925894868387039279427046583675485528570533634794700602184532614348368248707644926422469663781779874868452035311198571119141529800048112885902694625830952850558464597229126291873369186513508009517084686596650782324533225183704815037612449119201059968549573421433346354949583928826530178921396165726190117089357555573795797853804850412878510871049956692674231477687406016993520896792928815154184791207143826641662591398973222121632226349957250067073229455316706451301478020524296306080954154709786708313831239206207656476428624630432585427056452538547270366666845849718848237273696694585320516530555780218761846730515317559734484855206365938471571052337810134361556930566239833139955565746495775101932652881279985324845015994338953799512540249823530225365862787817029840743514062031920057363777170055402337580943760595758001780180462345686948124357215330261383654163367177770741117844026532730998785773073287538645004182864673912352645163411110416132300788581380081948597883044186496917478950363534942849073165191375808015972768580504093884716802085060274280879970934252242037809129724783035646157562201745919117344103155754183718573604042638416142339457380699060900202583978386587059347746861023518991260772504099596200933951455151631174731240272999921385713250355199605090618524986650521674851361712687570103537977977379412015252030159402243750437346091910080375282784728737326028264710246330503809699735689530442075406989916557791912915331908863637511719075608641485709878472069751310794671885486525790263227480501685774427760549972763786925114863972822962430580002594740616479430269944491179338452625374679156060804897363301731716279837985732460429080549437569308763923262751848579240913926398747052522948439414915686669531595159631341198658454917501284446753589585258975341869350045621775135522273926970202175712169419350267654730879742354696005497070421332668864036119188023458223492647928609721822057379428272986889873655195654779951648188664194045280561973335914759851529915057531260543183151836151982488815778491999329953849887100395466730083312580552678718797417958528473985905587851218280722107143444338309464016407494833804566674231680965250357941145729061903799266472890353879384648048900202141215086313148131795820703120596021531389701463330287133298925135280493533826715577675442824283622241969950999758601752999764083065024304411821418170947510329123547715786062691987075602712239841838260930437098594397142648138335831371962987506380396573862858390224329337995110664659613451658005277440402006289387197629611329131414520253992538649306520820029756209555780240687851984829289727472556215374248205339130015807732856567368891783102028193761958021383984825252094407952904585221964031201088297527534638967153211068898834656773002572865559836956372873683033495365881917171821050444106711507971950312055709305561837774926918964983240054605835583807326632298772925204847770322259460238799891046790898342088882774618721771166461950381936093567597210261675662296366223898832751016091063804796288141931644723247663167482652324589153247703177314547874626048847159438922926675617834456305333525580327675710961696062334897677734923022650386201725607950410338221172825008145360186002807015580267809944486075796131897886393336918606100431880659098904310635377845852163257477679577019080690560050693962719471446245016956647188550454905882228668602554519976777366350174489344950282116795450400725086985630420212536351139303332959204704510909176021924037214911840245220992354958341028591675149180796830861233478729290170256298870678598123280229430154477675085254524768141653705856448930004978407419709386242315306509304068935376224305203052214342399025661599092878412133305341800146163503900502729763735368755215090091805913346282741847907712573867986201970872675043177149724741150748265650548290763904160046515300766829194682695944261794260547023683613442347006625448317428192166553561863126835034907770216901664941705160231076762365475253457791745384229876272421734797023633650492291344192819719855305372417136510555751328003504027587894527593375698542351624246458063100893925485000927046703643923655055875693266732961575768197945363932193459569178194403961885978845421266531164262120981593976464469867787351637686255962490668555982617669291114323867890788405263964340627120556061049101753538493349330926826197183057365971273593575326257983021773100125423162010957681072465618715759735174587049672140019426422121396330525443126449039230906150853130591058333794905294703426439941906209065322587593230095073315068704265769686785912998113377440203921956568543730415279157382251415809314114948799290063570592339663989343905100267980034034183225668269272832573641617773881660776162287110832375796734649526634040075293687072771444458681942268268375715372118860548201106556559695007830284907660919392180681319767207072807851990333897686752053609136392322324637412637482089370973278466802521722483172636817401242714212735587417923495955588069386234305232493646079662127489022012381124810867588464939714427220376928875239740492021341848244360260923919530793764395943951647451601021471844891102438561419148313634037130900118917753612857607856382761676623837440878154274627030118303087668103438630671842476787389522903204011723042512156367141768877462154899168923377888436240820573685959493727055614503869404564353046250924445656278599288681237833518959502232800928944659512896353545221866066842143796782547695472698350588894352513041556170774744317224238395291277011523508767977292120276142068114831267997857297765356220673554636385744103186624386812781393966456825929422945993956369910876427587660939720817990588358284596754677533419131467709888348595737735294028289218939775180040637623572293636291059652760347884674290437217765406648777168192622679372086288630599095212280438966943520433491524955476338947590545116920434799915182441756443137236017364289898367305832284502930378192054616901328523980001202069251082664048300464764040458429967041292657320775855107172252519020833614045264136177690387289507368140660544193090681370972583891576439487827702258417779361230935333891569426326815457146442201268685055455715210223432601865717354989008454718729745182035804337879201177076191313586966522612905060699542692246231007049875247607984688958128977666786756491877490744614867805435402425408859331814137925594614153540134650025324357819176519041282785665678586527247328354397220441442198674793676583420421324594144862969336609810557950070095825053014600272827338410197456977015038268988566531311257368018457706761301024758181682402881491368928315283090660236568446247927571451135490372934181090014067663871281473644247152802104606907595439011822561432583300918739339204489361024210372711993426513285421066600566945032815310439747952144692460363996176991242169881745874004531948247993442007391817463630336292906681376116477730565880019543355072611531787492797311369071577865392575539238660635560386214860999428056056018780917722437850215377123387780016022751371973604136549572210588133000389578824957351554716442637720866706212304662488716813287575000246386242766256408929717634706451885294843027818395742205579375506022358807708212127000716497142555380142705903938121107285832839669803051521581680811328719929776397896812134312159558478077807122593471530777740378091116405280982469868001228643869780757707908956250848443342890204878688428688676229202514052248510385029936567774067151083873947043312261677180775502760910999642723138529626746249804045817939988431135631344149280370467720449229859876434644013493338757352425141872454175084135501940447700656978372692785693064857243389145608617181982258811710646748121682876559821323514599508954562295706789731546929925800305036496715279885596361709070990457264352861691126553298796593044916696738544110683561340029642724654156664828705350144628505243218738149771439261445912642404585801521307471574867677882063933676517773991897882892223648152036445478029505026297992099775715212650941385918905799758445897440599848241920388739867210434762428843624833716614913460458655431625790977355230182525342295426857494638713105868108052673539524552224304839856691340479439788728769081362332998083369059814621384295812183379485714111939231328804103491459687247434408138093179891457099431858017313354416009847994960918134117217788072483436910650707026271951265729368183459219104447784965462983632147528381379208398860687750787662748971742986000291842767684416873554131447782198091153990400964512319407113576963132746517809930704026869482041184616877235556211599646205078076665772235422119946014421362550142897080046026779240021540127751543256655011590252884818498122218525098585735669149497674782068650538395639691764186466560273177182608345201854522763066381405756147264086262355029585722148735501104790458966000181276821860449369362172776314809265446162301038169915520947461396242953236317216934876244379778131020966202979968243517275373423981304380677949563710800151407390816450381478800127415874307371269225754831263989098388979517652416114485202100078529649729019735132343937835203883852080601587584687921523075088000085197372985031441756476977175623508580878875373760038778786631839088507456648191982531840936611181871620558245984150190061917856683959334106997629332739660233746152628566728121661473647206222785067004658715927760494275978080624849263401206269827128204356666397834990315192813726764376020710593371984668539794942460940011061084462263435072533001437006056861298094854538848422833985665373577994286676178379006497680315900858148429219994321820611738858240894288708835624465631210020290535848560079177460722111688459157692619023467171731144976643327354716108500378254552005992181883135174581154869743464438274283785304100418644027261415875809794084508942215676063900831780665593548098045340583480807139545528671110394468788818221870947608701380270823473782987888868101348439723106179239894909227872334060707690999379086294722661996887556045976708285054998271117839709413436843681320370627818390035247400335185299742753772106871271289733035134010658894268540515778026552992588868939717665427918820910990188692864432479955326647069888332168026877606839239136145615587896055845771377030901901014141041997107142349571096376819126920711436974158786083700181948335331322978411112287479417834648455719461357235139317374607155378240863282798864906256530013814739444897560933058271441367617897123916378376753608267825070664892240159483456132644626090652596646617104054349371769392711247272850985962513590373993900272040595695827131589556652111812902607592209101039952209590434744657817605661672928019604661952261770805606633965712949446064097202763858984494858900516714351130686855904759281326816294588281156338791981563584863624185519826448681036044847411899721997068919332762626648138533741481355577797830428882712271187687414732524776052852813731849557022424006955548779102605723733923864252815402816186524989148783448249530560576383252769309657018547877512806474954460937307172025422283442862138094371284081836708059125116731128774796746121072231795195694307144494130705221465895202377870666597880304199307193450598668853552604950383359293471518306101608996390316810490981164950660994106162459451603624757131248692842249130609336635615941634893323117709250869042879324338144451158029192859289146216587672039684066048516016075100384975757920350377570451044774197619210565653275753686519829015926505383850947398702144297170592584622762819402275638086652730641290528105692296529603322325156915860658564358675542858485237377074076667954818466522020057562920679545295307434328081792712507521719147603326457639554354305452929267966543006910510970370098575676270042222450994408637369644044571040048178665254439917064160569672052500078998874205220819411041260505476912520004841908588612532718838250809646350624020183074349824917099605340037895923562779147439249031871076584528430106282695318012800498525759281054019234820112533310789823864285695737018050023794388506650679497249340488986318624193930726171845224779815467347678035109345023830846854071907622443803429900583725811746144664754038624588628849348806352746720285719716720814487222989320925079900743633627688481159972092803836684951143377112105516864033182962584141678273911125720913892528787660642517916599101265300097255055532696611803195069734802135552165915604158072848325507615311259136546416166338470287407474271404661408686521089350954255008799483257162499595116486390196943167545718372448919464522077948985513067628105697954618600095347828548459052034394825853700367976925820992947565436030555404489403751418292777388405622714389123127249658321808906882777034163357272630771085899074197846977041045333264187558568792692593086961063038515400537112981271640529083165263118866174894926055470779693637789183961681225617522083203154332610413221486102024268286349245604476180422539848155020649395173992586967880575787282139469967500140265693070074533248111121570241528475937986565345218666319285942771078333960102945279707963298761937611029907220957744441915578029423201518654617093714849618850399100153788283822618061264400076317991076007872775698499970963884727089140191373710121933269794382093370541577967417554069879282704615133605555075139767661432105144438343450213541275364642921789722836117123400727322255068303685174948009142400564205657205448640897673394296591679364912219443319811211552672441303515551707651225276465150059811314861598548837375727798853196261947660163426288368934234647612081143528327126249706069485521421108318871429647745142895456890471153318282196113106803773656222329414696726780373246043117154371243323064173798184044009653262279128505758466286633765116560804342642567600838254810472773003784201975621525500337573225641233186773050703875097023758518397036177187797648365089559407427822788981408356075606498072768120786047409715808127433729285812847093449348536862220295779593076210156604399257832965109430282374042268811802058809904330863061802029730189575433691376190702575796774923747354152539967752152876688378353777105191557199237823642228039782098246582900487170896468958943946116856747018706383687911711837537108172784136149855275772885361028570853739368329277714902772590764910227570092604820822621359975617930636133548793836470317672375181025050840946536620409983841816289920242732918213673484609490909803532625907996163001826540702236492595620168671851718624608539489051495532435672490322208526732556724597511824728778891235866863116212055811097019006350019713370893747297480188467167016178752398556925082431490073584147115051828531814331914423736669538554674873930973664750136727964877206155750870818753815912763054548971494560123658661819876707367111582001587896285282225195324710311626766700738804281579592992183465866218141703716446558135374979599172613278239646922161819548152332560193779642594219566305997953691226092138004819804414202488448346804689350850685109355736768987321635836298905675178134250941525027286842487277368435934187596508794667724255326473086424346429974714116748604973421016553106905951132008329478569620680451327007837537454049107428587554075092360473580257248476379209671348394309564150497086097605676286823368315568380318519955055013289378826025762651990251593355283214714504776046287273486206684109249500726249695842835631848892812498602295847566964702202770599875339391968131115047345313401214226525482326535341311843799596445290417179379051326949089292752401732562765122985902546437674807777401729479097385841917791975125526590935309809126881224819815563630538589882245071353711194487337219490242212065376603539930870241203465367505834632497092931713556121825811439161195022593165265392752362678196305618081186046147608359757590889874755798406424094038820002492447885711193761961197614565305500857454244742370052876833598668009413720588881330663967704679326359132469815221742181310417928094655185112018233167324139236961700178328984955742141466486618421696372403776483776947792384823053523953472422411727828656906853771077687884830275028739343950185449265799265008474335350530021455615311969316734465084616959291214306719726581112563386370817489127814896265623412725471700838039510922044105472431347030972916226102925821660519856956851112886259822513016496529922286355823475862246711418425484545042152699691311358698013288598782315734404150051793561196659438305788385916495860157339956790553041359476006596102648304892855604152265616965319306687019200824376606384956183132753461963161203551707579764234750524697596338805170799064339231277521943751364263707395115397683402951525554277397286380901603766516351315025873281837677128011501727938906703439997711368022748443278295188457051087259420814094703388314421321956394942654279649570477399683489432164916981090437041270818038568368167139401745572006299957438887725667649410308286022145711713881721616841629603424667667261753493489506354191336620063180108730402088718903145421503983668139020088201400164620086174769884552823930273610217994700822331111231954158578237059526536584218351593838256725267794630097899233687658433864106194495826941399916096449623307296772962074893524667332314369348608171712898503355162474303641465336811569107049495441885031768467607140084073126985471613944036235729229885907149387844617019153665690090765228952654742823301988052527949599083363387051810836297618500691397552172803678480296395404579985371608476758392209487154964098146399063629395397110556767036146376044819155684459313571851873915285620481901908408794935887284308759587567933040746683412260281721255878468251457551303236709839444012035013132011991534646214446220909912568477995635652908790464165989251608323274172118052725275017050429205465378533628816487767136371914837504195188230609295940228459644556186423213857216613769635606356872588845477396299017395267941000706613618781223781073493537379188007890464931607814295798355193750349058032957317127154059651085383889277883416628193297233413705374173212452531143153795727706023257069128831078277980899805854243242074186796992615889274752896275792525998779144001947211760211545966359825617928122429786477944991262875493007971491034933679319583413933554595853569038129420079540173340280018379401584008252052221807130873483765387421391106737749564869947103430174025994841176902029493605501371594151783914295129157524130645290236595057408298991425741295002739764265953973583055219525351433138073688282228324493979802648792006484814382543307835673200953651127457296100552997972611750992589763336595253713219876335727856017637450002917352476381728954285339127450485935124909426439624642822977667020888360307421980575575936633321932291666349780290466840959597560482775130370143855971278764492739465857135630792541391227176929570679870987501767319593119568572646644750981892866563873326880935170535993537109570879420483938019304897415449166847393770106710462235961759542154629704267317291116758955392081487482221931162487613961909467963406289297033168567928499602271685039759027879825836584165728179301983895823225493492333103005967551648508623149226108306831218471429297702135346098965862853022024743400727420415626064799884129844294452057888197408485461427948049086426488073422948351674226179501832713737637476822454838373535782421475090552345412231372137923737803729265967011955007874468237641776342618535560891866464634316017362353801225862073395449887373158655335026374363155078758028288184634335261961336987924037999586153926980559384911027447403495969321188687743773471117933955690558741215293355559024294251290564560162096627499514844048061934435179218935252871512652789467395717891954427244239080937408595950056313553803901663977138683214411393583736213588224989693654782180374583342228865104758252616057126212814326929737240324734773712162693750408618852028036172641575297092703562170984329475846299325311113001962766313619814502932426371069523501898483371212304320598846732771519387045637504027772188379255029068733588212209623428931804905601782514557838235229334155229620759654663101694387953452849053885575302454465232519478915719379663833657067179867278543900519192336541543444380994809114255600051359241370789947720201081469474621133976519313169653776190508487921087683023736353856434184147295987456255511206817877782399292499836314189830467089103922700453049658006124462055637077200647709923056381617295176044056222936784773859750194590806436046869048168109448808507468982160640874175595136149418048545445215604394003213635517337377048861885985832160457604062995732032850320750797943261922460018197360224757870063167123271905383184682880983111979693999806599312662331973314174427774956702537371123766158624250982067832234004602352621476835464822377409351737697528293139562777194967291548952776492931007013139808156015525788010415107625674473496081421272756695083393843569018878643722993912042543589735530806786727526761570870922545903385965504406009092657231083430538580952808702599836070298170329306986948936435875884857964229957593710199953455417781714393843004215538835612809139680411252697614993842808545916297458881428619240888507960777795140758787033236278818394795800786981109228960608902442097835409132670724589354598864176252529006503149578072495724968747847987110756812507935922827484782049870956615875017644699406665902629805248865019555237610048815366737761176301809683131153876255229604513053259225927239661371310510660668431833581568410835442045187563499079442601981646745418588821535979061093549910844930205814776603484697318827125220616975292516553450177795756508536388388105931746915139753656446143705999984065712317569928779945302152879954765197268638407032343902272021221804180552728295630275719809193090507542710459130645813735181840484076430856476383031641192009735628814740258057356511362900330033881347989726361469205445874899025142748348719743651304053790911472856737001764764201006038779586522309198564111641034682423313659631053090047707222037490781851340049911846925652351592189617563472236502732373588385129634044817617686049324790340174442699526671004580873383780377603292067507500095961550326822727160593911404347526970910168718419889539358620719632627561500279415510267682234481548363028912471125152949523716074269788988668399562204479511715686441357683042238328278648404094316499293443188507289183863097226238661788766950324963217053096621782492771379478672327661063438207429987255280806855867472789840391352967186575282400342179549660449533482374959486809587535232091413215202560555824054625640777069288231162433741585660142992379017299383287999713469027019193837091357805544828878758689556506088466272292546567801571474955857176255517229263051345631382835771024656702695040442115013097630728466358820325544122037411887277857369039041937917593674584363799821636921648206004213757004417855056946546903577452324742899809189878217981974511569363189906596448369459771361015676492257680981516732879538178353191121811242961812718287200261887279651580834957110443838883098170411937249130113902835401542274187135261879392512484226576757887089123423647234304085061013856853403820264705954768587820383555117138157110533370149200343482235042559468410230962891438647968890252825365135045613838144728031128534029783921706103760202855977792787243968748847392894898799778006794005892108131837071721568519181436711682002552671253102600024196267823534164158762782654419481247752634935057501817352609552492758661584819645677950670477157441292186650194016514534419007222005768807366388446220574054672825184203762482163173784954414273096089619843200918965582266069536106263237627066574090517642190526766429397505559854675915119078368116562710540917103394414381437570738805266161575723800718004971322991011256255577928499830236246664399149610322004206653811422698491307437047012015707787561874058211255280561990544682327457318193449478514329728619262864336323273150489043322924463323543264925184402644202149264169593206897100733610930018391137065707662528725221372710851852056528954982329594797063198942503237821415665149775306346316028978754908584214747904218824291109075291453998004217351981904359523743953376570747471290234555872315515080946404093625275029988190760815054433303330714413088001937098210140790131869002097171578479952322331430023519775255019436421124917275995523534061418881870732972860408576593945429770634380048377318562271261059510329867353141283982116967900361366383174663372289790060267664454324346146093463560596544613239655682043529392053467361617767809134979453136871612847415909148208950790168298897525842020400620857078712672607820279491394657229581453806505345359268168649500418248702484760008500032016203496597120950364452124358658027386612074720491521719619166548520389370540242752831095632860186244439907346859232367677468656511132539597849176471209302471092331886323237149831752834914694375175954721802558898240904789521194117712277990931383241175245315897097166166405534520354784792465025483231126124184812751192502806093032639371479551905675861129245758060176026210244617287458496754649715698179949557542339820562178705158393553786182232123381093664096389502934486625241177649950948390271490952146416790493348503772328489625435954554330374104444831162340039194999899707781362021537817333073575844016635962550109050265628132249317502450469432271762523356056011930982560027695705461150320792527224663803147546076874085459588971383978093819446513028923992211341866481625325813120727662420030866460749310662529640409598971646004720125213642335368666444166224199912219223091896225405999471746777837696786574098523124197210366867116578215213861040741717925182191559381831145007743103540858956473165406623618386344687073169876435787179228688677508903585467439893063161896249074878387531923999099407907209649529879699253900289921975504279592513992647589299116576149833791898907607322041639915945810764150187817603183373010208163834464725553753920250086137857457968844015014386132883602531709636202025833186463516473756637824307070555117597297516023974850631270746468327825454287390018498789916303290634990634894568890800224221263667988040865966792307305559182829919987147918558877158152908410538458905038673622967836690925222314413560534088998690623761612420242708166101729684659733443537151914923964514466923363649002846980999552403154642662764633719298684871798647142681167713266060865884886692661146067344569308247195955089012495487996509108262105571893299871805230483160257372842785050374133547949847147559319624313016376761398259149859570661451880297416447469855295343310231487794202254078916378482601453136375578248132101866291407884354280414525323749820925758369896503840771084818763193007447743154245163035695575101105633259449476833260185753702345786173710731029523258672531116970042303893832225940484018830724369709847917401223358991704131376792823079907736129300460264865480857365202440325977591017165840357972460880380200283864067830412906466817394673273867781694859989828906430789771940821656805238430741647316130087954075107270760990716411513008560248193647387657818882495600855039556659612314341739853637216434147370885180393267839779801421315618851298839375333829114989311244377068227834831207544693732792171132442671467091783619540692354491853993896641880537871851425875242355465239146452771158375813934982597167413283057082202391511023452724430516463335161860625563441057965994107393551908876634038831055048786783252958877780426626199591339358549312468700980634358326819485976378695523475218902224621019048463056724206769350450211634852125660948322939397941011541774075716893883628013652977675485476308287135840876228104895144571039538069448382740234770990686522796805098280459131815342288912581035170828781835403877678332674963781533050417091991724147321892247534846674857319823339073010334782114193910195184023074028472822357329227899232924182094973245432847835378121595075169429843329005496168888711331657989797508640063412991244938641857843415330168512192204399091355210950050206306361132743083364104754383559550910263999773384899451447160523309329777077346694450697958537304407179441750653154411837653403697797419605312231280720619900620961514055744116260638215752498925285241093481062378731919708902295714581164741072273922999960705907571553966586758601566660255091280963630950163909858077334883799579748042892515773752517316706561235012628634093950552374174085997443753486391768916456894265059667067905503878242094609086552174953196718899337918381247424016540749595888817649005422308722821277615831168213682674999261300156056848676698774235362484091331701202241967967466174823231134482258009288967139056684692725049006189179030221340230921499315415576461272655545712944865621089923363273421450135198622694872555459790866834907170433160122896011793167835813752848232587463509057112620093741791751664356140568470168055809569713821584301288259210249588299576277594109338745387123966564558592473881995650857410814595963621757492640351099058133795930417231399634925170000970240967424595840861364182667051590917194373550926649091441124581291067909618975659436695543300340760494560885315835389444044427264139504513358717828337696037773857683381933777774542951318422909948754890848761778292267720904252612203596049730000775598677640991645008134564791384360435176678200433973532142693732899761358903590105207518870423451318938701419299673957476067746895947320733000031617573951180526888276695726566188885158011269528883665422563051864188594045840597314454860120090169836993641129523817906265793658854756314241510330530277226629626558304962758781901197791129964329390842953116525592749007859417093110588251887285201881472845015869947205016026662858774716895774682819789486828229131751179510053606367492084123158591393675068684376170486615286051324499140974344065394309987282527990901796553060288744118027451245496895543254238281306820651118722823204717083023672731775850882706141412695253389767433972966721740361879454517694056426264934274597851614747406749067447541976145219097901583522576722892888902121959059938284039878431749724686718873095728630851688712148441821446794517468370315067710069764384937889131037597123510763822800849293452708887426228182853378575667547523014543339858583441595658562096178970705256963912075114049116475302968073948817223478087827721697681548794881429786982787367682675854190404876569007074915772368118691822479074430002306911805870517567058987020500021849322772656268151240802193267918541939045049911682048610313154377660732671345708134510753680127934387392314208769169301442998675530769302619415220161613106649168493767047505756446232192469294996360861444188720718329065813173731055356719888278603469541244931744617548831751697291841750438088742638546169558020187465006427882019028383465453665788153241083047643727344322891021504657177018806024169941417102005306250220148955050147056224895684763536790360371346505729339397057713566296081202863198794552280909836528680302289092769135655045307597230798688925322071092771381620210936082007355017923579185833603544234330707625081679004591888442085835441830021237287301267307892459840232139094721026056883671668190508719856548800113889845366643493676113825857683731308279650742391504162674821947480289260284330709000649620595912148955773328563099482030981244857961900771771989515539502980983831548599374656693790865151742349956525112995954777517121673402138635495007134282877284015811530696831823267510361576361856357139131295447238586563306114870249901737511037582321243706566148343267164869765844465810839346692734306308838987961088578366217649211349042426321072115593574356237791235439451248226822005595446067104287863888563808137096988530236897672475172472524970326303200757520110032069873695677244102598920792828236984843923453877921971470811740876396825473458967658414593266029006370063070923600402716145241849604195759026720212726737917536479539339361394434711265623668625712404845814949261528746249834377883651550586665841100473248021433827264200363109821284732349861469757963431265429139695821623318610603910100213806834062697003654009590065131475061466700599321143889714111381408428459767331691389301212959893697641749185895591689710461944332338587671639706811814055418419406829525267535464922544924653468026461955505560756534935262013899493180413074675502791477948343682946393324720218284467906945380312729093639734588611508105200925312361121292033711743139541311664255842865316157820242351688020174532754629947800571693952338970160422695251095188188566338692363490795701196695231546277005215706041033713944633567703690741644063566198339968598483715222135001245016610248252371087697322903988285219626729912963340464034378491519224509011694227788489561217855443672791717507359308107675967445592542039494438992470309719590507308682066400358027734318647496157724359772888607718121042155247199564635732791336598066622451921246301384662188302306497335182349149102856773949807938293295776506097329533676001754303147425084760965574815706406121883901413154385812785336821479020576787908185116803832269175979165561278630985872599492103531013475193087427658416127313933388201172208230658221032398381922429809146087402987662699777381477333047372142766700732359599727640777791180812698831600349870727277749295226530457479414055991364872474246531126531706398219581812007769466797583269749444844989757417932877459827956876960407392676497069035077445320792510075076040334085358547036915689918018974376339416539090158483079012283417529326087565614963224765972409283593627351940939084793811395508882979111943284667989165191992238839482563301749360282869636716938005411114603829577823005714592233460565824775304172982759511499484670376037069971553813488717863585032414282099015163062164661350468076439989531973598227940949545551148314166935352716943374319748053115274368435599786158851503661719859881750724396342342928543505362186746414561640618646455869475469495217158107425608312473677448229410093403391604096544029106084253074889495848104620752992797021402973315401228113612583949590629176787042176607545416597027801221744422257603316881104527008841536678436635534439119122637920654762997561208415984088965582813366700484934755949777140190497900731190837273757892153769205859909111120483944914403442388461587569677297089681949562299975367439739059600967525881985327375897623657138833008342150988683163020631276056303509734481240145222335763129298040258799206601204610452817715497731949253685232854075273329979451941201345161626122118683977653260013559441508001093460596308808462732180525714357876265520353227514519527753855322428781921952601178745405138027513089749300857173066589027819401526195790033695202236634100838298726041847931001552979689990325331460641759837271793299969409490795071598177972769381483377826742341896287394021952878983040264870728020707463060654649305865643729871461482029647713813446807145140098297823472736109496363576274557206640334406463076732788224040113041431488317838254020818676958824552497392401929059167707894991485556149512651448319295303314950974814017348034688415704938296777463317353653298221398384721015164005623976936849080057512335970961266517751352851290339797981340321367997230639388947043171644824820199004253768937772899877194323937632125340399320929258551144704433512419755335414828191824365264251697975591150099105705959717986312337808380122817942357372306268583658628943938555118263137122698057680282721315567457839494991204027616760235380711464006802123804004770957750786958326116268231427341863287487138637627826018344790173485588889862330565021579495837533968299593571172929111464264682859058478501602074405759142114297334656890537288893287192061092990198688962153743753203511531231836494798770933697562121028943272002437834223504238470721388181750523366892096986909942416777311871009187456928868358656092984380574310394323615710369869170602774091088655831668629131773036066409260605175430525188307610036064282943903973635733705597083379772742317230603939489299179482165369078821043234491058372874558236248251823498044303182981808205496710945252524872822258207559065692728557846487784776169893200038015733065197048582997717382908721809309958780532506883282734192071896172017561129380416996505846177460540383100839330591165324622291980632329753199513531703018930805860961580915478989867758097007718006310659499092708986925196535056999135901521225245361606672590160568124420032515210050345085901466202258048319644453986502933570047191739246608527313490989321983271288424728911576101880592774705399871032563630835449548681364490140020842134343862691503175080430708795552851424030583246921138890617450470602401654300279991964729488168086845754902265322044047374789742703201654346833346459739204635015624268766546904342170274060739992047575145536442396649796126425808982712236590339881872918075317327483148251597031297796229110694651249195521184584032833425385962390299804600176874647846978065559481139850733575988911225389518455578148672263888514047087219760677993237129576240542038817723674921894977029618277522533024335513702600851119149560661646981128320729771041128566069236654827175616014852924548955255480534096157554813472250370194394273040837552570162088045495106057370321407173404919443408295292934863723116239176981443152707337431590603671450467650589382437286717572203541426443681664230520473681435527436794615240052512426934912882315653303260772091945478452576257227968616171643524177595446505124258110612529378323935376951276876768618173287260900824522638468398237261369847944043623422216524769154401008070127587324224859978756181237978632437256094303207305567598222326602297299695439542850546203069229151992518780773914907026404541650381385129218544433171750388013468595812525693521138530499769064804523580836180785971810435668181840135695061217350602923296775740619240458903232680131687786114252659256710867494832291085695631229013378939153627589343985076457999302969634504098412856397248463737810646057963316829177281719765702382436982670215083450174367232602927604570572009519351047909033673197075996437204640063826905858234713188717163500640109559932480533990975591477741771265435196627317388596535890729471874569155979328361601451583022103110591291669433748909063986828732334785060790979963927503991323866500487293817130025536796198906521783106324832221519243163401602518204399726105770949361653164517298806007847777418098165877011116440665703217070171283215078344236159483390373307390757654895766150647249246618935063088130480034509298300262757618582307512413757119371054304578880767867758153100736803182839519095013378107724303116903998930458077172285110481367265055064268804228341549163152089465650618993657501461142419251647360507969818192497119115975750927082557207188348655202487915542073545110437205403795927943048839465407654187786825547168213912885067707928633188200491526253007507835731204661206265297911289677557592108870325990466907833866613572845826865884478796348651942403493986269159830291927602537750256997922794264501121337498547750534813318688532209256865105884897342561138123049545892476004245601179711178856242044719642108600736156830436930888070961044588336219357081684371309004796030261778178439416908078666266735377663920655918240171733255447532754831122471229616587197733053786117066235856769809414867575330402345593904852263786595492349582518064015197680876308114312579345286022189613404314776419207816428484591985618852653060014633332671480610126606610924332538940403362048262418757327147797437654313532201665156390781142172124895723597421451718999711171202928846136915743822407257304428376507798700874365716047709063452378284699725366362776515487346126552255579948304139196385909247045532680661141646458646951076688344650986066122642758441277130442930663254837932914975403403312683237277390522904017556666005696182544758316653986911782448770915877801792848094509785649335027544217045683938937694694108977486585392404658910750429361502209574660090997541371898044424553770502298132624533517150943421210578531501936958154825216956211886966667484363560994422910518610719154517826778462932601954315642799059303105688269560592638969123944848073272266223498225675160789995507813290009552088101325628436309114210230359452084721089563685251890702091509840073817738914163316414882461287351563705326527620308279972409670655722099355221323521490569771670842831140278861854966980205012235090139820325564229055785574640314049834413787803428502308115913947086380433074350244600275261891767788435530975697547997206366303168622173350272639226894341803710778104781811542859185794828266878897758344175005002847395084138999920792893488668196120326838949489743070389756518788120071042599391472928593857925028701744834987992605477756133935732422346703260790978670010980517285299070034991186482707317769340007205975083523019205285903899769339035584969327898187706110975472157813739249766531469161320763569927448005106921117455364440531358557246400289962188543589653231575755957072554537807247707193843867194966586584384061877476574792332371977864552557900016247313965814733537682000964776081194159432476239232556645078269243056182389704042590057702534744270349823077044458106072513681478814732914277898008525995824991722052220096896145725213079818865969262324923262794932046624263195687565798253142555472662995247224044118875167331942082847713998208594235727165420937160894336327294354264257860950150815866687277670785840717182589393739587764920682265403282897304763573083847464958282992950277430737247787852633830966864048055289864879970085524128021163722137418667818439495649156591100778211873198058848514887467804716941619956610996264869541452722536167005755044419575077230765564421032592957424812639522706018411351729652103234837766700739049219401586635184715952854935196360554984940584460452132951316180932482749095804830936423092505422375610082156531058632423673641917315630625568565954479962053627690413326514331992962350655084532677969968664452632484230540185738230993167533990188393036967700027317719136814257794726665400982597230633235231840715391133673149292111222202374220226041466210470027646115377961945931559733445579203604052023441612653460388429271309277208720743720553944901653757995858040285515103177552639201874376805053599530603729516837378415607180489053183350894456121493473725547830064107204866124087397010542563817538187161892388881629781988501924502769492098836222971552877797343232095957398312497024491368714846649680546214587354928571879295551293872456039516092668008490158483780060978101975964252041951504482358870867446319589096644745978879756327873955287116532524687885696367502452874512907608465511501950396622884300183107921180936650326712654882344171182230563579588200907107378606674084021292975494236160843685380083348196961285447423806360536735259472652675569943883631485441222051460732542908898214673099840675257797945314140151184439599638835526829304861033712364393488469617504732586775585046674175050577574120993013843524000143882992291595405857842632206633140052396497367020522687222540434157103754490171330855854616944140743162744664954841847079224394402426035713000705277714991968083762432873220672900412554605319701713759929402412046111318976023258226026604387252169606525441146614663816257385368622533158601666180244754845997139481118376033467088265663435670395410348979152506843610406053336309960917571563879263533936587096752044117667620134187535191202772984978085965750716101641942286641321323760144827963769002179137318769574089785200447291608634356623096027940629671015621839550459324315637749392371924387650223353115352579720832206174362536264019632990296000417457130919694788861732203482784133236789562562598991413664323861610515123453611034977236601094030428451194680538331623327204739899472701969684199804573055944318103391382560558125707224938226889162925676569680600651011717285841982327588297031013980188843065888802755254127621165971132213496242708773291399587889235739780647121271333069063596157357229251256006948173563464641678482647277425496890739726375762209318403978517860749263394570104889203848837803907427620080994189100711898527998934093229076475410687993222238487626465946081426905661868968302579649060403226329378623854661578606424405243999020288303215624061243347614258658425300120797383945483135715904612314648285259306729474969801982004256961951750486032133756552409161101699033386565323835248309945978616362008560874938356689053643376737356070712839977171175815214618567980723277868151196104944477474883011779492120480790881172220938915792744326423226533196800424177560504275746971022813952226128835769801174641809451123257642892252252777889262649184458515930057184891535457721054222040680645690397129690503680622826134265708573572305676324680747932368080849608435378484143212656966154863921167087459363967920979798689482459665732102678033126440226201779625710690947564818554624810673395342379185065954391842878930465921355467667559291844815982573293782955564045490605625522160801901059437989633795079796340120490761627289151276597345150229232658879119960498084108219247659792980497970220577323077138067396915062026189874203974375876836468932557664500842852660032584196726453967862442431156203563267605529774515458077181506040502868020603238410129029535909851045313600426129738361476956020135593646538511800474220957334461960211792960232241985230630877846751032662368798482181034092097042806296152918838462521007486522206498660606940885553645346837156904328126196808796446152901862472053999010880504541149770967071477694456385384144803118136533680867937412440546577204052791109690634858428643200173383073264281724349398335348785192451441242043298609807430676996267262608900721301148502099784948023935375350717645701143390654439905731280856770416615310961256350966841782255255087106933279974386480536055406088731209777351824463742202673089922439072579437874983758005372885756596345629943013275700721710826643384410495223296189029711042071346626887459441793212516109604400677454109142615768135161254661016426237050275175048312378643182402788947687686558925967507191708442634574020653384510243129339887134638115967267466623077263232312807673870460908589619181072892355205517831307863562158223688680466150831882658902860116496024378282743885716588434940752716185738464394737491006630608770911444027453928483970388300517726674039307957141467077200809737207365786996010687788695902655692745670831022635822546125154139880549469532730713787507065062106500491437875380879756759375220895170839892069753281268023270103973571187468237175565900078973968343288841453385192767348556867569953224765542925352210494039023128674708126404609305059588253954124440063378395051838763857642934106362465871679984562657289256930126176254115393041143985287153711672545926093357020488745791913867354702593858137489283533938733456287332234057904932829260227386283703765060821061307157709191732154866590020897020060774184003170081632008835799377966378214775562483844780238572651190465798270538211106796781164033034913176220698827167293598541089747756096622276352630617600164896751948998104124041279230133193088325451394012996492551452140804422599585941065344419738131232239360012892389267043471804925440914147370561822177795055663785141759230695089795764749716279993651055227077143392372110426769745192678244681585765710363108493261135828662101483079597191528816519426606886555068078716408208781900930360438754300769149644243419474626261158567198896479995506305534525925852091585475954769570968844615905879459264277020586230406220859491791085010206964871318788819850306105759065036717314969697206660226752133835825107259936543966609116822527063333259278174670868715732385721138630704288918990223931347747157350170079434131903691587045061861225031249960644158511954169710660694313596853944472959607194336840981224384900891647332361171581413711633077496041113560396275203582049902757607217913341800952870843000373838289547354941138402251081247288624509893008226903142412608445853674047483201619672828945139141685400271734500442960479032844901228739940168242745665125675750600773790095590478776188062812261564685242851446238563464937533948184950709675862431210949609287840417944607853248270136101665811356347772852950530376724554960203314851236234266972592517942748748552173095842054362819092940976887180674521155101752085118938361109462735920727983881850948184424227800508841680440300378625507130492387135761337356795390106259353056892490252468107343865866147736332840258750511289631978626823883149630529118303166449275394698122736752406367942154300467529970683519466593352743634011428941934297917985326784822964837107890088786098470189860848337144274981508329642022665392099840708510618585517608147960639323710874547491939925177704851059076562652241067249245044744070271029979033416879920979547345843130547416891007567913499271293421593614873898738237231433352713819835677717282245472494552127120732897620566358798672155847557178136758207082590591097797600096398332417267588584126181437338721596298959682225190314256632416225616326830991531436028912029783106670963310990766725562712250838960143955018408956919375714021544433877320957290120572677075176650795085805653201545699479672948890473070939040202618996158524956828405032784640758218283708535651080398069386830088278802072306337450035720278200326085778344930710408531905628580103826462051176906360776331239556889133520942567127072285526582165573394696353931412302739629068381255112543398863823306575198123222766544475596236418096637633229091414372447147729844272403082857609645681339554477471398487234291947414326206184898580055213909905473499882362667452160508225682080216134355615407405859417175989520352286280498250905194782773622455560126378205884613954207736982976582207568495109283516746620124464626878416542943482748181537168964601766016610713753351364902696863406387252419451233066972579969464322065932131580173249983862502953724363609547843011660991298111651330036748148265623541711822030420975775617128780100932496774101931158896828723239725616099724887082791156949150609003511710816634021078273146011064105008554529934020927754577815972206252403928681160378680608468670489905565679970905203178028968033443353183871977753003658859260424992963007818612614269695275183113313242336437901941271198080471270064402056941294930834208570655177184386856952795226994572034606618978081524050994928185079184881488161258515312166355706049036902829681514942018112300595632166155300760407332539788472240852427479087784234953269266627451113460047623696634670099790494575156587626005674169166750161583556006427574742721011513295988184203807470205504824256839080634818001115805296062929683284630404928442852996427571365923794690190910851548617438737625812868180565099823429101772779498014854214138333088199444183245440628640601349603497697851046030439796903487602872822230459536146206252783586548563818743845354484735631402394154270690093329667427010696560117001542830921244377432024203445981901211271856065487213180546159037980832248417716612311384415067364346541516568562153701805352602587678091418284329436880920198320053990372935243826636908498648842900788147170695869340137743189916430963054458527191960783136410874158135258073571609448695788037963303152805132948286369493206627414904592678353753234843126452420940974219399690459510918229800718093930452316339034028078215369343778820297034631340019763742496599373700381749031302433966863855584475594279535752836485390980754104278841371676669708958646417612294902412382335883187043014712079186613034314536319029704094721974353139466514674126371536282701626717380443707832650993963577727040966884104675926054934903429478412717735556154820758620923885070146248370784860332704734546983787694033833691552021544922350378676179674404311632687523008779399415032036674034638992549386629226188714383427380707188405604492324657109340747851884503245808531099940068523114656452716618285144269811910382647097466766739504110818642459065819219493478129653835657352526527041175098678142220670595071004382070756583454428522477811274656482477138365530336044031976900084304913074201376555234078484127402594791097369012917321234717459154814297121182564657593872493326273832974251779873053665436710587143885001429814730170245961898917615425040563629507680102013229673258211321310137867879684071771841489463781206762775117985295964753022369712356510825340672397542860024855942216281153240108714480990827316529708382950926750745927571604249276183849877023342150843219961816025450632678409212286587143391874144983137573995129221997756672112193949871840404554742424569251990127270220434105269396454343270831739054222912283227050263802488051205338144933630565472717081013368934118042843588758288221762181942694164298616243911695564763430161074633926675877318823173750021327734878257556013702646085357131880728717298652145343511635043827185864767243602465493955295206481451261356814783828351888728662695626430356403777723466144324909843469100811983110628569951464287570664364422703381513524863825937906711417277882133709783170072461844152651680567230537806164875934022981769904486319986755546973139171462699855571047454109620183444822984539641665384996870508811552245756460686560799129066759334227926646884337610337304797989759640141840560077997168686003277088326098904829374557321997180905658192580979397567245692882326256188651238494603160569472053686294242510656521641038503654783011039788695191980998409507697535207954686121764480857122274508091147500412644260019800599020708829242043828658332318909878105874621669547239912820569678431241243492677247648607703450758390528578159906051792368688169250744526666124558580364705757810450711873424625646106807367800086290763588431486460664175803260769661702986134454241401862589426480226916818538613647814893665813641900820984834269312371445401777796747382002047528278524504808024504468626494456283228241558565905128227362954311641859655350570289019226519786062443315767355529205942836964723751187868662462721528262373459880894871610912884013481891700318802954992999924639150624386703529396761304946890022310842311561194327586745965332809285019633847115849624409125991961233921284812337077714663236291883371547158506969088019778666432909028016808258550835789118087635087270370139337294641306148785700290834032738205813727336917156526061223650576437507961922283014668471671025543713712362182055120409252209212556017094250975581013882718405789642246728946687305787393978300959184264731950419051424319925680036454236743309517681202384836148312515803236452421630527663770060028389199060153883110262419267070880082331616267862415506486169543324701705830856014296754225911537647227757252451137849881045719530932413115932639471288876578974563499325182070511024189146012195180655590512811227460094324379693658114297905131512160181282682932771211822678682863773820513694090299236764894052506034330212089938885687096841382346256273164504841242076726075622848687547559924308668812869878561224059779202751487034592939040291422164120008591443207419312325068323587927580075983406353380517128024364072403819727274213425814368978986732529284715501259429029340310372625500406539914598748441923267616761255624071730231306325826571569839062897480847522973037014723340233194604842959803730231811198876835464064876964004099543473589819203622696545453993383841624459453278806937459810140187047735410856334387831477245107110191067080126782340255115783463271657569352229377710993022988871940831231798883840263624460798677686635420958425334496262114207346285009996042820341474342471751656995879798406718390193326064019945037095482032071905212891437480796055232672770712706756414621424541480064704615941257875283862728242127569734263548761603387880891392643676091960813391150624254064174093967939978735918008066809842541714749154662761588449682368351870983653687048216723097896523804267974887995637000944468081261437569494207385168775299185036670624032516640189600095126766695348333610058351632949978814423510444722515395643824453612243788568689222706781161698368996601961899166826419275780862637311005483631083483670025680416649295601373264227062827120685996125939189782773414585259733615387618113104217764794896583197102742014409514872319739921484494880745734811573161372970008942372729703530704646099193062178959888081844069924309137617674556008793463760566787108264304467019954322441490182759662359387851830850909442524307393767395716518758917564021195669777512887965287589307387436032616611091368445403727361538935614443523935177032650985157943162173676812084549162187419845025312093472195752518108364273297536803283589116139205023821881709352792960198671745130383416413948794357956357116060600345168333024584168833550559160138737238645520622115226859315204000420142747713012037339637778500895296715663339702621848384501965428814158643801860091544485598145632784830224990810146972605357827592330382312265588056751102670528585357840745175113756274383382553395718265478161076362818825892780492061250585169093651411711460511519536753397590927651373382161864028298956300502175783885825407626590144299636589490347329783617605058126066137970371356395478712404048813786540348442000703924462988951205080477007534030685815447996062071481623994937475676264794494088041082427729879938361944959216666420593790177062420129639079510062658215181897594372417977673497654255314505277743625397560786130879295483598948059021270256185619412017301193509885440860141708947350002643354487376835468290292747814822768084848527486715517598233058310612219734304221891827247826345574199862133688862635008759786396744785345567869360809318434386806482729974113910777573311815333958037622910532785647864714562026243131873376243427649472711751652713373951187909391298101574649314170983518292286235432575721878947692606652747189073661717776016182593245707870648915326084576371377606700857788685568430119801755178770791078708811825059152280441768976470725467857795685226693338014046307138359309011304025468680849862751823574650179153900739138968567960965543195233175309715243507425736010492363203482444915551986617901542994609498283310959000799579635499142533491324867247165820323446193551241299998224208201858262480699231750061778008154069976553259081062146987578925619678067862569310325177764506658569975473026729501703942864334513535197573274380308691807604975169537009652821886671828388377567317821091031333755854918814301999724189252967521293131450910148644860806145536038059533514875398107786751544045886274090465991107217043051732854157424759649488031679509292770042908007048337286118999977119221886295852553354245390305551014298511601974863239036393018907465102103159801274812850345234271887638357367185244360746562254800851742022615332495779937301797195599845796129343958905524521593966124399935519782269092005193569877156050872257870469359455184981313511215248920107670569069129728498232379635480451576091804919597278525641027287843026205559558429886991856966632121115812978654699481784915787288968531741220320345705821213250355473312936476765556661856516691034374054954450828292510056122973583046332190794161617123104620525117901694310064394952285784973269691826756727695826908270967929402893611531353843084386099494389791415753870073482287426050320809282057429972459888413219190737878404499745595060034057730772902088136831725582050172158602384876940126617100577777444054169763195865945538555960294005788119984570522919190539742697289424431230920049178624377948089599699233218081541524323300837102506146628344666317143999169193324744544543050953812087042183530253423443300310164310671467909789348109810672192441453767042083534323874683822715756206361350165445527720071611533144196639174389819485122987879596434099965543859279508691670184465570295398465923085289812737864753622888652217089434100839521154943428676985542891129039011434448210870786632966730309236703226220807852876530004307634136986636540352722692755278696488593098039382637334954726024206113314034958863751853899805222224183750299696266128719500461545498523215606987445258543742634170656684183739319996609295356864228291869894289925024110328545959343880740739447644049737148243621541501815995157754833500988724424387495776224080509090341107228180690339917352991670253189278188899983578257061421527683968599716074315252359856721448146866215935586708080592042425819253596797243739165719819142670918803367982712733985254924069491125876333630456145020187611309559936826148542848426259860358968500632667953776905994185506377905211912071238237150149705233765928843320529547458887339379531142992952440090634986567511708901683295454376887185372221385458211203395409418086710220004160773076995064182469915627589170500446144589436268829841802546259996831625607919036568932027634247462482883576900888322700780978610688760595691922195196055446174634722417428389758308567056780247162993657334646311137508834447202447367689026087953949607669238987280619328342573150805141379143308604625908337844911756661704467966801082944346133064678603878655685682628781334080416316514123061472773768488381167213387893398809262052464708960453541923738618922783595615050958422130574680603701880982413074956650887226747876811048731684764802872411974331172722503942414538282653178953264804062842731854297435557774839551030451665376853094058971507279309935381320602778361978323284412906279672236105856200008476741243823198552416034782011187740640950332723186345220695373680289128476046891277219189776443175507141582271974494485753717585709396221082929714775753722006703071467511069958333675035613837977963207202521425458455741996334075799672577108440798470238160721793643589949608150764199050090685280849136828299865037671105894825907851063052709958898914754369654793469406048627625992169258960696993605806535314969671704993886329018347787436801590875228364648486226510106724161760041030064162486114014404798486976256627380895891298818573642574362292265661095934997949191267284807420663453406179972154203858463644495482450486765124888864745896940193567968229010019512475100991505902607815102381004279733272124073994800619272731334552640187823086750624786004860560005653642754110708809745813649232269607907334916542090102249988576136430039678805140541119671870888944110401140932660102521830682126655948178991377437830187291769235320442690842032612484371786350281222244769237347049708535428707756212576316150666189026246877377926167065179375928975931487570996516877223097708474156879315100044227072736885469713213153085192473778159309776015853550346407649288702921702646424264488143507555422782453727383669902049536673576231315466785476605523930760632058664131967051210576308087079390858931516790871253559447533776564530440972841554543727946576176767046867674534760157706786573160070640356167050450493584307231819543618434107328327626031662422189183498925235634813732826613965048705593487645567334998625845037272688233090660260690753807022637530751190845617237840553413471988080529377204137403568167061929713908807485472703317275572801456185993818630059664964939143296340178483020695963549627420869212302410023674868906143886334113642898823910372212141293530331180093805680883594851601974158399679950986486408413962579942441873662726270251018649496127342135730752173485268830764544270263465059384506795784609152117759749103057669974806112330578345398968260050495054552367236863724984313693829760393043570969124920704630048988052590733262949399871044454651250142166761813899129462059116611968747924129630449507360025587299346298736129666053001189528841973899125910506687599754616181745949113270582732460882316289030826204964281776274518781710376803781943237416063857395814057276415279900138106390653742440750702863820737400812080168925508042319125194218568850026357765976398581884731873576295725772525014390810841252548628132428825026697158804030928918082194316957359138443470136792235823331381822098990016865661623616061958025935463162725710219427646493229990418202748894371911038913146196596792774759778068450089208865528255822179727992339060421068408926306754039237832525488814826402630694364881577277763116576389364919408537300793152351802135824431257479668592912078651005192656964712249553143698387125431659162199343543009568888381727081588327583688746983026648481167767342847866793064573960948625164640771312789992038049337794530284578936283956210841671556949605452012487090181629054812310037626956570533346048148016152636647626129846152233456394761566579606084841745643941936870559450126029605456963893210316531455660192272396852634302111086321554933510422205961170510028495113159677666000428049406974670299757819204651545891156777244814788567609054105898879023479664339973794600946929140829661137582333146022365621448498469710443191709454423840404422726216951744222501133092709667057740822411370374435361955922958467189404582970795966158579251929165942694605998083979854569115497298038467999155467135514522034616535826799609037419212872639546531273212465289901779813976511360288625008433712480834370525444590008610365599283138126105094334363935897789464450671692046289356071742053329851073883499131514081874100718084728336282204030389941417391104758127729507509796641545358008014594167978713273384863706065124329705714892919298497462492340325500156684630756135105191457514839758274627657771215149211085936365626776089238164830894596361055605327766815077459752623978325692231199232540752668301817296370108963498189695165475131039474247340779303870865921672937853960892122029321424864560172077752452205531583595120702807667476181727728798493312498882341033850011050011123359202421840264444597075616641473122963525644685275320536961437953483363941742720693405459490747010670562300128084056404856790596397664225125822159855974646676671013143710297728867774827388761096794587115716704150506380386701598328427341255290624775872944399677872630565534338696540003400787011291319329888147100758467063956875481451242375691805237435915719234831371918183874652582858770576855472204700833116956372560996374850523665227499862014031757124586935029565057164645101059113914561283070885992723578536096735561374341583993822586324327959449277168374766269675715326771114491870740693943574994987193081221087982902165465916536468084404246851538748304321141119128033979425285063287529468648405278427505586716921314917113539195448896499309806088363432828244412937510923639920171180642877846656544950503394060060104529916213679511399638531816010886977152165675253786917875678629747551519724144208676232231171410435495982565533169819697634891151045416185306786078314639845084724245187324234478654443195249408855042361513641933454637156765160685197174170785050155198502397212495036632788784037196911176855362334118100224300096906547558415377470736307348065423520314491858483524266884541176980057197574641853058051104006769854564243427136296711099771204290453793125464652090715820745675844551913590655292048749946110437164150758160559780322259970666340329189233487680630924121676312210587784839808204666802977686511966024145302033135017009898573537385884195578164001510678087442739439460543601903894125052587708093618788698183168377113062757409892829258700218768193534976548487230470188361747670088865048955828149721439793082052615966910474045678119989248443526469595006097070001447334181772938041090079867668787413112397355930230283604987246318443767445418221468270822233556227847382193051543029937661767153713081075748004375086247356166234079172963298541776329669899930427858045957854196111982111180026622499439539216463768460331410947693830849044099752746749351265106912052208612679121389286207522379177961608955024740561842498075915221642628121631184152341416533204029102702677900201508672523688598081752361780247199803731715393751694773908465228417036645827739627091093017343220819048725604283143028591881411757738502048155715247021843984664129278725637546611755742611299991104223875026457373548384122891180503825750717078029665537357363592373238712135961379802962894713932543937642767716559647155528786093533530065253449364028518556401018922926007181316947278071306905986333370748782367303415287334270190949600589464534538558279709518206651053648722191973380516872517342033347737597699229827765432984954275046182551754369014097496811452255818225789237161592211129398618665584939187599686988314686928817985537902794175302754643152091584589020211238521997392294138467477021492345744966623237233026877034839126821585543097377168250682040684728352374950806294046329612627442249098457868021014779982414502766341259408036607025559548091459352795718074156531670867652931604871323410783157729463873578751030454449479596753463874374493325002681919509478721885877499538833017038412591907083579456576724753534595473173119801209021795969562554621286940299212496302074609203972887662953852425910490076598526688578854957761804583351270205749432575270015234325590958841737450991225201924884146673875458998964424532358350342665974808982141813292988230434780816787202452378523778477746076238696284805055484544816636845532912763961067663056532719272754056910569307359083122764133213264379897946043664850338488947815340206657182657735414830851701091374075505258508431582379697298433118198525475854337935179089518030961762049902742584754488091799818613557303465306128114902118896386813964060447799468103773298225724844480467993651214154342588265989876251134850253076892268611221595046559076697379325080078099414861978411897160152362493622648247214637140540462710778384584852312857333544266538991694906516750585503174003881805182026102789332151432269131798005891130123013128643116874678430905216612030417188797435005351265331997168770211266402067238090902437215748125729520141644687580972672489857230624702463651257943477004920273323548326024347884032555179569133987237603610027268685944045143619900585329402711030994684580114711433567471209725495003162076891561143925059356653791801172813768442188791859044983554919356957905799277666769652236666045905063766833449921278870283803424457630000654779009504610750079246417821552147801039502597372316678096805420488119490041764815598217288478399563645445382507059587575418841798797541115365500470767737748332734519903380851001332448523700908681033976209266265636668310461255577386415904547306246929292275997941660494903761616683653896900303834405313459977654394937551326558874012383556245237183355146281329555065641958222155871886808131964059343170402743544391595326856973219631450001214881485328334753985383539927925637711249478860242740398592628116582842933774467832330774886284116941251029433745112919992359317036747180814564535444241281975101561179119884732668973714087472255245632872050780259769066181867934466493719844082191317220775107192275771744810675306831501960914734379224404295458058655184292704022372616470826785609179091202759281540688586759057334893879738506267671392647020178681183210244974144776220328722837893903121221398677425276247317525047819617686130709191774495363914758404846370052384224668304576096006871309225647459349187606687543531412459497354841889143828388215286405940771441236263625280790459327930445070607794346459436939305348765353140551875101627435453004171913112258113711535077965281091592305742317417558429680788328491951959052893277402524282009263337839703857855960761981371389115965654477066515699281997432089925127958505152439149986977442187812662826388984412332615163383439858250339105570965018819835968524492209426926786021251792931210633721317210167019948976033281893706806638485067524459521370880544731932387431026219907768736947820690346921912457796459733250058219283023592797531928515872511768238325983583858857302116370805394301640037098488898637272081832951717859227980472014738628945228444227269187106891973449304561992517850506797764986954021388458492389226287670619479453208858663929229975433899110610513681683707629387803126634814678922016703414134829806915045205215541506415701690327298143819513423460615933246862073878910722122124994944262333603367991467611813333645278214140115716327618143593395067230380667493013448547387576201449232323032411841803585258608676841923686916714773818164548245698143251824868629127625524417987967133936798117722292150970567831782198207243849266489326811290734985633900036905031914258379966288501411308449572864949707789561989788096583357360978778478236513474855549326410376613564522226060334352312533252959242067862374929300757132278354251879537932360193998804616302100523889913638122777906268776523244149687608014449425390776605988774713120497215449333674482213523563190206675318674384285124222172193356092792651791545020586752436288034658984639483492670818819066932910124941976211516618135548994059199517169996597716346950987399932889144266574846990371325994167083205219465542885172239211530444163690517887947397562610880022763511800931001861424405670469034945046318785821374044969217273870161953471652353882116734328271742152704302786774860687449593484238823341920565486782228183368496950600857316965831361350029427119622127581467019467249420276483511257443605162745755084880869967845792324039913221977194383046791317503335658897096637739910496644223835286624007327037973724851374017331161935108393596518764542059788019215197281177758850184574215816313306748650314889082807223579838788252439278609662239154538837443605483420910688768308882143174524134623190194732301609560870497053327976750264895578923210079076834775841197995694688495519297800614417514674703873036149687181050493379715079662395867832725513482256323687545608239288228858378555045975514828409887074448546498206035391738896206409748051534493121335824073104294169522240165686500736383045246939980061776075963433766492229070954354579405475185896129146768514512187583979767140445382426927570978325232245039395192870965847793571766082165517516014074056773936612577457819686099114184349077843894172261595795671694920135074510242875324903341254765893549235367768791214075722511099814851667636918454338159298240738959983768897428611098921889450446272706374033248207387845335430988787255983060605166280003530109726034301375660039889016054988274722586103439582867768711644724490846114147472006500301686870679990694910133440178063644386398545529536636679712435477242898684601552493853302319350949826186118637402442921654827885559379720443455453437160720325757404164052325009155219059353058346104795399047196551368762468495143039775284460856583526015895959029500874460278068491170025042878163257368582767677397524393452294720152042334512628347779048425546252565378136079767868728020343451157869563922728958963003867311404971615871584517048707713072694624980447793173819647382948246933681155496473677568517755138630826718544164333931037874536037302020166950195544920082124382022109206239543468904425937014642324143822991507581138908376780215352009021736705044272038917363090200290260889667376258244614196714055516275744251823288562378412168412070046671477496918545315587241555539758473915595786911020953513739886483776352619297025427356277720461100225717308085960235539230405110815152593183929457229296014924144201670816175171404817887012005520793690939911002436949518196047468434287873382342865188282053953362722645450470023268761814157022655778063536727834835575003508660796283732613476816740220144114015111430761856801767849828914178972017639249227404031931631395914790761293128229717205524705257659073838460785920618219082518303060253331982647008705106907101803348530207067693154573716200843860559846232747762828103520005378136661753513746951956296767352303774869613260042984028393314752452629831191280031716972478076686928970762079254979439458347998308413655011719538423986521764710721855038714696107495443859417855793617773414871801911990561076568034309784573062420705417470516949900983702405329166338805608977876348678078059207490710844541986672351683805010384481981031338528886574098443395581257275593153011619718561575194471249730127461093478502636266472267137645362753241582377529463173945830652586995264985564804113516445455318850826948556939558663725896964013532014809758704996740704494705851907981075621222675850832294575679365849931729425872469472853377894273564803063658059370763511904710651806156913065303800870883991636249012223810156822946785360232696180632436010586167097149946841132666487439052128818117784240702992129496902431942488054980373788213564514645856082283882747526088582099950287371046887049503632366465641441074721503488850258216359505988747520139282020992339771363747460662269254471784718891290743488405034134353966708197225386048268798480016535429600588252875198916012613017514960286657957388395420195958061692344801334486360927666408733958961391160882020710578865532437950805048268227142316197295854377849907576991113356326416537969930365265581266938443456346652342558758335052810131784221496265793073902247265493134431899263990879328443118394510831768835243618836753890867424359743399062862902573170082458019017923807171168055595715578625562911036828491067443703348813894817647588852147342779936171533057344856985535978634438884432209877398294421397487395938678063518092630432863371693194174574111584328034040482286413585691853921250617224168073362215142674803235443714285643166496328181586258633920439252037487553517324239706880201846416113822876669499837665037113616608318494015776424621076914335946789677702822601091769658516534437185396711090929810912422011721580563101042465729299584653633351330353863575083879584750123838239578088401903492842861595571298104148351439368126681069845333244873365935274021324940811962588258411962438456204108589954634187314436071590097609462737690016749573072205282794264734790805589159355474626905771608824580774902332296678642682339801661959351976735193301037935062786226958019002910290274455605882778425158380493847979034324212337147645455963865688624472330736477068201846508221694012060272062829977166258487523211862888791682704645484177525931041840707256895852804422675472766411801714483292176884656795786293415470928939481587140721438092411685370370669981624565435320386989602287066550370365143435842925362715091766970718140783887542314840657471348073794724010411118693753823011126150679335417097880489952104944934821526689426211514802517343026362380886516969120728415404118850108721703181797185221177487638093012043192452302580196571581783724199908574653407685955103335579780294825457179480517260122783583469036754681915783990821788432280601180184914694500981763123805670356516777487393048647419934462224455179815196041060498451181848107087854684070707558915429195807418209534360447430569105463054062779256169313750599052999613854786491480765679311982278120351689379355874647895036025282834943583641748378124564929096689423094632667109408989965128737116072992439415618152460906825596981488135769775850439501743502605648885646685572877230676620170447585144513593065513865486529761891037431604404116325782602116645564635501632577421612090925370351018537634744883011992514547250965247518244496302563119773069479949616585314812616549563867393460967579083209516943748031108957750431816944462714829084011320703133610239404622698553271057387613230074071351303215530671900288384341616974100866345389504218508593411757520677218210567374720244344289405031560817023641357959035184330032032811816009653797173323591386282285711772608771366754987167204788688338701266353479782015443920837848760987236362403324706452194688425349843345348518280284720734485850623540278914740630543737611434373709133603034697418432633876667881715591651734239647542671146243689511706709024064671343389317803582525087949643095405293399298705682985823599914935766850049118813747429492002099914794023041799263950107864327369808535305661370009922833401393533068737369267452036506162640472512173832626631030409695861640226711706604535585936833113285813688705216532385812749075763720414214548838908854125406898630029483121975017846910830754338704034514871732576234595587368559943059300157528191436106241713486730870049505965048007854793836084050428476480493160270457702954210898195400363740245002379145209036461541687814631475749842252275109153118708262642169698722976085080214752683536305633139294919001635776569944847795946493864412831171318638577409407816049739135099065494458013963801600725677377795772967602981675738581075398304366524600647370976560010916323327583587491801715373612985385208315102543917836504797887106316690642938362831668547431100334245417780528212756354724467573993836465476198136089426487399448399864353683310069915064702639871955835319946132656389340517442830559228609571218616140756105415528081673519220020360221867431733534678855381746574085188901797171299311255661197539278431577871830315814836428623951751172326122406321709433520608042093471990963923919367745146274534696514231490995363551414364524016645197922406603706489581408720158709372919769729989044443599872777114357074802480964869068020488696593446698378288512833298300244214503888378662024379695947218082325923292283348276420087316710188354413744920852064690252399479593813433183105067445528079362903216222449684036174702431844041688375015755682798910511334001521653509451891623691210467057430959687282888044965218216488518763444980941480422123765986412662747119829091273958107346397793836817926779565117818912489063159988006523975581609436611701078310841235401557032734514251299243840993216659541167342124247971300249625708347972181726870078236194199180589305349840916250760047776426137657694569238917830504677451645850070143903245774867589827954102962252436113117560636250997325864145718147844469170328507082543819244663337201676455329406562115792467402440429534431649517793189640576829816548967078952113931758591946815184992901288285731196908236151266569551080237796843889330369214207069377694313850919384896811160106609712032342179281490103370916595990469277820421617816897305762266808140744135119562710642658751544486683264739446601441459580437849330178669305939357484883171117799374592914149666482792800509680923880391935072958924864752666567587360338528401997106777275603129703593447476178922981380892232421792601931906223389027792063718219278029699011331748992412863396724898295915631853703203621382512724190043222921726715717017933945851667218664259718232492932556608344612759606162602933363861747743899962214972303705489859495262742274412976551117965554057608696868761253137848977992821442377815348538016814217742263333142282620642877866754284059484530381277947514585081493881147609323317127154079926357637544635632013196027808348922960225780604758584605581159277003235497076148425013417061488282565649055215381717057709231506762409080778338227305804296475090801954098225915554238707327468640472518614361331433426404367034486195568440332211454116623654133607908517103316009397802986756978276220546364381256058973103643484144859530510307763306409966197225829331035459542102608080992693760443751922081516012511940650729374235560455294560700382820084610734601717422895299180010513528890951962947694461520345531521493387642146954096901416094900197446175770575539145933521637052552186229833069875619692667175009945550139920905707488674336491466216893025559820712424391338301952745092799244018177406203308605786701141314903501947149883590490281276838365434554985574065995916488435774294045142076853136790582899453537032425656444115097844890489692311416548926450980445084423717787803063743785103050603365656337337191037061390662478413336131365091498172453763084945880822979069885670526445972135397394057510183685640088245753942970105527409206422617443275658015987137326214426821853241922150508365161256385413388013969632761386609953904154310112025184928651205048153570545382180365912002956706350699988428647673113302643417756161875334475826820812000735966244573978136440590435524071391343730315715664667069869661380859082892642165135243534051587962674818788407776842370042821571209455872042009851670415538322584622190437201696103491206122414595762930564827111595807602497026240894956107711319972476930823128224770708317084563902695621826837799747521878478453798381042436721718906105589632197885603712113883318375354991755107387079039569294136051522194408221015164789711651276043067032069256297823589847779205142922545992555758175267153158479336580896477182185293320606235726396209339654010594643228877046929980967577943591924390756982943393547898870280449611620125350644263019236231590306271997126317451675932637151202042756090124673768358476499535279858838365269044895440583528247279396839348920276334478776184177498336942083214243794605317247855535094734078003675522339446148381909383533914443304521157083373330591011756571149767070984683430086383964606414642811986400019343161403371870071802334440809202480921460616877967846210805985880513760131746949185531684802329110955289360332482857866221749901908778821050601051613770301346213062862503610736836469078301113213863744984467210703610290492505957810452544959513311995501872906955069301953801368363588636100866108156681206569733938828145140113178490850260260184601119714309595926512392334589903949446460365241823995308889696645868900626056926837538570643527670791178823226833843978827036127294909310101500091040900970638248465809671340195306895854943517080688021651534203029264128978369201298049298188266179216829332793073330588348893641158961915583861178701399681033482327208872685932205354111073927139184708641798985955764697079187798131937668850742009652559299304676734266377055663730426455421238830524575612799423032711589556981055136719254001351973501911901579646083809328575779453475956043471836209362503613583793220823910755479383245701344932706717543530866966639322520803645404070950911190318836411134618099648009063427731492810962464726059761900814113912088463347234924306785978907510854386443145966837199584759512431276224987413155149924034723667471682691914901972880262320124617081646316443078391493187931808265394330076216347898542798022603541798599438225888263288079470948889684357676121551534995539719164804052038124850073627298150363534413461304541264928603696055214344493808935398848381684526370145816758415461550813426278470359511889772893405583476000448243404729404246404765296007679262806150046669379843181763021198889485779176949345416386290671205297992844484392591590616740414977105201659671262742566547288571494721535134836916673448380245543963965783383739539502251509945582890694223794177180180307652437091552346580761075067370608000258107296161337268662787492176396891150476797428020058142340880526072462353291554027798911289940793629413732706482575595231247728485666785537276676607126960106224605693190782757142386091753145608788614967090354917545374644107835802088535790161372791300331904402690869698118613350875422894229661836209897958752083721226321374734606325227092238704623020811532121961472411833811058501033337801845279131174988529111709882371192333064943933142630661874358632978980162985911790912520328854550283113418447866470525687807796145779535142689182794556840889113343426284896345206106452519613056779184697400402598804883410934735610897305020727005717818285397441951577996062109192425403474345811031292736318701132713158515581686327784967477504271902864991028440857398186020236713979353580577292000538067192153576846315360952826307474367058736055577172876211484997667380990857899682957146880942429145973598375720162298792408183122035766225514723599070777858961457271132770226209858126602520255253637958411129225900143702185539985328158196221143841541579148148630944942989592243126297031533503973021888914866376006399801861605412772678669895014023587116792143371445701401992902811230632541258626324380143094221195901073970898552623347269168133143031809131763959126331546130775724457584211235411827066821447541907664930637309391403225333430539599166515339153968234784596758814043508487426502946016387574756316705823827387970874410794572994975841432923355125146699948271561786450870801006014647164866676682168819420278011903446040082296026432072001475596159771241346287107858780353185630476535976714756417314216564534105930722939768119709879395315590962206955482847309320151411035124859331517183432484321182527034679152439013463918555057428454409977197142706217391373081992348617138057169425493349436434753564236791533124197810235636075085391988183964456095649221925759734204039447313818665535493643840085592704443830868948708715293498306096499394147639410097441658437782911008388393244449336942228343318998850385256456757443607740190074588220637016458092320006518546582553785859359914217840195189245179515082532769906519946000188362283497772651881324555326577745315400137723057797064606941926745568114123946295098449618513112559878564038665937828388678546051839247495061735567680165538107335296480194717638781174343258240567153738178743959552379317621176859120572583489899979829154048365307141200111592752670420649376531725641016211937870825916718573878800507704535924548857355953030062237956834218037586179608864322084729829282260482600271119588837429066405344323018875484520649135954302432295745155718972532354708871292970936446167280283700232678860138499784001366183640060775451899327221501792380529008507752302264931175927159103188241759438093679048481446584569909790996027162970730895631630884605423191196255214016976483373392377627975993634296295459512519416426871069137886379358252871039836191100432689807434882964631182729429843034728596213375142724315709611095467307129846327018201561546222735224077737920959415150326098375285099108235765204766808957499148168572564856675165985051809134473860586505225789841131300616917998342370227723931696032583798332845717103375735608204655935661176619334623284384532860614496238507025404103289291794506714212058601330729118965848077692983429142003197071714903450430560599962373810760604638283183036463181003256968708563057001713203185390741541468156094338860559319909520131309508972993111801024193726108799416569245426509595115280845661002727405992565416884037396732061575353303074129102802970250044765971726952892145936735107502141824015610601573133654321526669562736726526786887707326254662578129287774731307701977771602421994413865579437400677798200945025988710061965002023403901803876583768862462466720949579762082305247002848066536040393025624331882286156165298003121758409469897652663865465889451872888189733684094759649350697277925010403756272415054007890245558943249941555068196666974479517592986705247069974116150740447504885318023886772479855740874444486383673842061033415520130159558437535061609558254535262223376233656659688926068762708166616630118095136146271990841565072743476131008403759257707463162470222668137602976292687402683134681489996895120449158468929538484042690287569563628124334097791274987480633707850953513201751705229679321942831112553041087227327224306204217692473377566609313472510747929870893243704401613310625004406998193236675540485308860110001214414886217192180303013090969077820987393155696823389208017450649390128685809918045561775203932885457100975613182102347700510207843240326520936793592783410492165280370845658629505516276930243990605857726404339933973945679980069603290913752222360909135725287006978825171923319881079386413245730029263092658491531507099705864016271294237691032785764919799947919267422304247700370921527698843984270218963430746667685605588604692993611203865933725537916208168454920446704202874079348096081514839753809502082603337901672416062952400866324776860617389346860960354573645891329744301741004520516965277471899144172129069024486309061098122219934753982696920993128962184327460722442308769862368890970806267337732234465884881037725434050983085153410188004183892893505704165091940068785380769790787393313870571016533019367184914261876195012257946505526153542256009127712479686898310871221274686786888960794071150017533664192554614880289720816252678493135998553998347750131589316972022512269677811044476647779452618658021846055159301873417772054720297161383194491938958237181600913657275089721036554581240974389751553668113525169057424526183738182577985071719576210538014405402073823555153713014357667540429901124120009923034653266458134852422461737044824501982044321749908246558159374407447387566755179220635549544220032730436947667786201230442599696406486034963116713446448678244376602460555489724138469864159007900100575179697041112770431025344013026593719859300312031687134349110917484848822848753218255488583054813844073747565955566964932062520735328177782452646985641496967781445560079962158834589719691775545062017353064176932051313284198868653142355000885222740113417688288137685391018213954645707095937884128024007224238643939607251150747003702787658603727919049312069924279811980209731019396031288464218510471217560953120766066763622530349238484804364028681866142517617678183730409517605089653236004452730059898233649433005384906781444838596032257368115432266063529212293779734907579030260050158873181115009699241035619552009807585332446253192600303194085120248844685986529574881556698529983654222101936092937107436971311001422222001005004445122511607724020839501439259286455774306291173765300545439034404578457015280946079222099991176163583207362383712345683738379108641020942633730030029254558225050170952831967663711101806635048912244579586682580365863475001931176743834624199806578423166452203409826305272068682327955528439145783664532850654160903149795185684451953237209002338286669560406691486030815537984943426436112763461008986497859670041560883429434971270549869961732258532233848095639432190957956256107836471388203735860634045040816130271751208329498757463050747927624430735323364738874829053627193091377562540983572322362822660785141571067135598080163826964227405051618396575009819338943586488305243498106780676204888097777749173219445065364263267044131548450032537824173805319410001802692283213160075916694376062767463409777570678876664968808793305005134197855651572958011611771808603876867080657641501610423705973763533155404165906642345085145594935508302301578268066374868305533180601843313577039450315835759921985131674111932275254049364433112671961475080491091417556273948456129821669967970049368916284367684533429554295059385394480866821074154134196597261604591226529471430430105901249530761314722603224223358267819087833245228345696308740393821745173877130065552975407591275027421353187936916400659297586863263416667785003857379289688767292131638379949226194009008952526321853855171125605768464852100492019645969403192498734002164079218865604230828724789307955785650333902515246682388828130969164371038157907926608947245523154899484645432365871846860011915124009235535882728782999714978732774749118252733917657900988421496984354866350996126505064753731507831225437980364273825993089909037290873591840833859344221362530768413377734787518627248578761878578687815838523321505136221899123339187868469777023137974430890329747230733068135161777259985123196499168920195897820066805645206631963968006236483938849519684597134283774489923864628770315039181237523916601742519058523776291619426744558527491424419781408332950116548033237020871840705193039193742219915543150074589244662223608514841937024755221769908527114583393360901463741523038701003848688955891291976180508837461721816942460881300492289973317224020467615253899181362871052292471545599075035002650095745722024663504294222206025817236666965603995692651380815666899796774244479303110971739467262273918561970860238853670225108474468173887479202878952078492313081511669873581839111128580864700265750072315647167390402097529982040970645407321124159912128110391501668131071296735212264144591821759826448301408827882423425611504756008917403688035525290254133900371376869235447886967772547955066018145451496002869066021691822966986032663705570954165386560236938055037439942264514488653875703662536414421835790453509127537829175496085514177893161178159851605095881250889071867877053963251263985126435352954136188401524618274809761848916657050413364930614603122757245293887058859319389639132863075515909401832973302321036337543095196513072667870703428465002866514032490674897029856484554759861808581282280044637888663753379234245517263417025335139064147043330625706280961881846843296822283919648612920941541443887627448872311096962287636758810910538057469866684908214361653799960108884952708804454839841129084188302162365248930204079500377837587848547241741700133233867821582294550326163585559922328960619867337409099153990813932864175355589816839248743322872246133708028125933889413771988901310041362482877131463105074761481150189013485212106081707103560042577702383571799242572886910068225964972377502903725128735243752339665955806429595592172611673023616450876076884060233529451091054250157400430818065719715994708115765484180523227868967943150978677532022127326013667692161439634009352226045584519922475786162808138798283720250534456923231611209756245488963588349397113400010873424830163342255341746791352143516087819109049267517615642539784151543820904488734220579461719784232217929494133791532651623332822027549100675074738709379558398643397817559355306963975983533961192005750029943089929033757565588415872709815004421894416347649047385617274998667760861462996552665389798520706921964130539990864397435506164699376803710194477454052516349780152771639070158632055564164481397735931828916104599157706162313923048606327938968969802897069080233410340847375361582694132656204581702281669157224698055500781541330472179699063944552809638471026938327661277899221078170254421447528595553031142363130591062032439281141054038308580973012537630515024639680390428737818612987075733613315317020950070128042633067021231919685743299715555460086175911229537743379785978687167832343596846835888932687895924962782912843282128348457879758016425590214525296393284633743949983975230127555751134699723981355754398868515255054069126828274134635951785117654206164157408918818511498815110318181128750004865649738906689756193408956758755820619220258797098026618615672207907496473676020513646684232466137177944690521894340314592776475148447679848453844523938616739255282819526989775332857117671003730861328547987920503322898415381895572277774404242569205520091449293016483825787911689862977564127507249503619321721299994548730449185442546227727626407211208998029902476806930235378297810742258857081269305113534936456998299526174459207311342353120498131858505334045166511796313505747983981437264408708952915485846664525870327117609204287155014016225688299376174534279847275431788022825675893097122445845771145758144493609326701450131934525343207047071058456504994233479679040940086568979924725968127180637815482421628818475891402041861527009144793106209871430971416362345959558623763838249171732374605366324508503987015831312630945059964354014545554492152188018777830676692707721808589156220111747168819038784279961906732261017547381612195094277590475345580795972502411950837446075446601302539031901481464874122432362273307263209939994197144299889534553977033805483225031981131192726210634141593653201712652592270546628341033558641524200177744354779320454259861493487249793693027253826620024375570076986583653645161703020441432779415425962809046350450883534883966824665732458972736019334638234279545195986612688593292041237168041361387205211431484317615533036148662495491664574285494663533494464872176228376876316742890685864774040897995136660020473944002986784348372416783038711170849297971897474494532596581534781103623220585840119798111666044079362057530493043796120173089277117681163560189994917055061103419581010747811297651637935242588752697749502028050360602517363778414205893377503837522342367043998639720708874783715176580577245016536478314326351736871248985656714917502202501618490032502215963597783324252771711990746105884298855337200953019623992988097115864315934259621775665165127752157173938792042140404135198653199538370436743073524598939227232352808562571933467145641942875488672817736894812323866209589964795946712658310790343867069099022466919321673406573552240318307284019108187216262575000799847737802227344987894584384416901946235506079331821906628340455569039521026972557107934929874025510558139267924509040104147282413947088693199512639249661171117107805020063072310574045575556957846468773900366818254710798850601174418119676248711732711896426324364575263659850744337732346198864389540513468323966434564399694281054178948594485482857016804012173556333921255913297997428532911886272622845113117139771205269213984884060324275577194920525117764585419035359004466688536324334176902357597235109358735979046800607144775538498414717162341940809575202256956821811428991327360071979414087914294989564118814387911981244377086231686380882618324120629562508372049882302868031261644692599911490477932741449269211273679119944262658725600879123061670793064612759933760862586866105916627696006034568272287644700390492057255922483795316241862108431230108985300343511873262947541707724481498130341693852056264191511784574134727277462251874442222565553960972302259109597854070856049200127714508846375430624333870123710143574961750488239730646593794254486615018500544032195226816807063238434577082137863885958488222234450860989065041742223963434929279396054542788807015237520247471482124883920182344926345899388405834366959901600754754338657585982291549563238969262720794679128918913026455928843139795481650517612351611776691176808971578610354551884935175625619843103184030298864500107118408669526010504229425452447964142960284516598833322907140298735866909515928291921104562031169918349465525490629461060904888016233018594191708811318483819814065666052970271289719368523260988665899099907806098866551156353217776099198289081259355045097703391009767729703586066434387339352041724555879644500172967952164439512590475595434521488963710419246213613395271403205712984865136399182304479653248504506666142177636512815558602684647284273277869843874203366692791322821563317592355404378465763372677984246164713896180048601186352539432490328805482717659873858865924614977964276885254210296345862528352981836710396762428985930460057535739095854618813039400030180420831071617383792895271046188354889241879931543966241916754046265734220039426913372381642628236618547620294790124691057660142959860457428815419132680802983250759706413145645865163588361501100609951066455436368295097306908965869757243232647613885850866206437185084264863138914372120543569943874596850641536541024637231329542601906404089379104032086587906637595043125599690677100572938312984693290298745793064766415138086711273351649908195077584153040136400427688804183462843882230337326589483512144455906621677614690592087384380529511328913036602795624136346393571596884533439449366167748697847535149690661216939515766554720893180453003103328690191920531495725033226688483290056117770410613484913867201718548806423610760796414284906876544618572481456098616649443963737430612934236909027156253846392410349884378996924252294413680328916109098647776000351330720302224995806383998465410357389401663632762151185098145938540335159639322733869030999581539429542929033661094977705038921628599051006362142745782977764534773707625033242049404806168304327218966756332608798208949389990309044198241128777412354059464892125959774559187187655684185435864362391525533973175053918206546256383009163984817779117669509364855698268652454264301195162128431601496612758848967072602509904781267053725011317803382590380089546673648482140654596617401873043865091764314685435767173001561492309234806148603912455614031666285614569738162963199579610232845887465881005348520188488102525145873539888994952067597812009367018798714360099834297517974099221779569843043080204064601080054298735667337582616002082200585735825922373573309507497357193372922605746106696717905804512047177654661327592052516189785540050993011358345380610680601718267554407385054984288755240010835740843786405940784770247650501653433114923775561697952403405064665672670128802004421969451086092043444114770066018668173766006660628984271492296427652467352851015619551421280834498095951250260709260227654395714301123575559790010877146666831357339604997267249386250787370456374016933412708612687598888183968818674851662253429693538953111741881434560405860323426637655151021683928696684970022737080386502937454969937658935914407461644217849293443471050230763218973029565247932508206453253906719931667437197779434799413222323418717973805468603949215583291481868349599639752376943962538467370531584577508460157220195363402311688356224287931546129836579411050378253771726788505802619751996553424916292776404363875594807742262984979996814248080241678382491847835853008593184642913193757981961899483398173334669166136066949214877705788781599171647344954838131897054801297013009966096493091859233870142747871740256623726731402596380806719127922625701698229700612113341964428880919943500203325730862122683261672120676708560364451194279472571548774173520847081379904872300498246818866248328969690842951062747659086521899873680315793314913471862849731760906929336848101832425997567741250581618819629576460799873507458908235484919070428428687748140217374262986407350017257228815244920393048006010540059082760474362732998564378135570939286148043719168346537079818584059425767791667777377554053207466066769316147570254120038236696077292838380835897646419034275808626019499763949611167471075450986146221624643013679557057461366429228107473266740452869711803743196554809978276007955801532816654256803631351554005093734290918273408978324313151300525141524090209080856425613208771989098814071031279125533630442012191218769038332179423654207934997642631316059531599276560568059644521335894843524884206935296689372677706957242697565165599761141651802107449204120142496949762155671841340656521265647702140370925822881470402371313555557299292265550419523287805023141139598677937055913692903225518832889348677188532309644774186344001030241057822795222136735869211884875404151447077582653409105748967395415944336569508465217118407976507127828747498339523240067814422800629754376230925588908835618472795612880595739100509126899664354556231426099983138333960218804397703498139187378689553378315839438658250355245928260298125895664949314614187850568973847551613802039176152116367118156497143713727980650626033194037701093596324257297929903054446784208676431095006457161870513548693801542876971506164267202243165761523754358960834162942481328160827521849356024928517321729171078018457699039751917800231689955165769958851123332436198420555956153537746165364451955140468231765692764994941568587917719130143603286738687543297045716372840609231879544261568825586728860730975179726442472542436564123386187696879984135187032098961673769936840664982027437603247383265834334632691804256884424902023993620747110279170216510050046620419499608837480827124017443682453658626216588713569872999850424978904960184906046012907699633670099507555535154050544261936028575512475144294688438182088495293380928869419483258080158793640849876728792937209826218728077835977308496426966449264699801452187026361729662413745614973412129598966552353944141929317125379539138124774657772739797708071336490791822099023205443334804365414838187343364821038297802018991651190877609767847865865109428876448195307680821217131577693457660302333419830835680835922672795110424045433213452284677675193460933706533191172420370854220429542157426241642303202920784831040983313139033374842603504966850832133875609248892576052063364694970153443946128151239495394734762529292457980503842896738736921630613212550205674298809343073140713913666653450565108141113341243992726123967738285696425618756441348170998779458015861912194766397057149440527099281440818013913901446164974819072714147153550887169324612847047894723044227635703251221153702969881027169118926544477710389526785472383087319033019960667648997681697758820340382844199086929421822594532495703417782497074931764577103682394016465353271512795562778363246223404129968522069667671914494298498178578500432757156001414412348825707946324575378074942935034633017293057664852072968285020792800801490558448464123488509413879782471772700602047255489045922099710600751919949511321701441238104602279131990518566992707575823589698963823438800444790253708802827704419378228017826078707891244541077931190055073823386171865316650369028043270847074986492429948799180063507092347319822863103261199814071736919097796635163067146910736763263745998056236644995205334103139219911689669322363037127632449016812214078331333681021564571612804012815135525920066678524194317151054927888848948556594917667958331123038424761818409668262521778099461678247362381815091256789755548802750458711957906607752613834928604943316603135529760834902338495778737279153059517647913813361833545223163222777114356105471596780205621862708764987944877694575664362477812214336521523106039668780793064134572073138717045836417443300155886145548861976716999165333681512776328503711047890375620412266164724666129704965916038404053715776784761093594246095275795153339828496888067113680406279112198041225836315515009225764817550625766687315261203120591600127396411990479695687893766264690890335336543229795466582810401908410076617275892350640642641686580923748978634711253660685157490938254013788321765522698842812941955750759435795392859129693448796474137865849111386383865207778867577605395808142266440609329688738716779065862510605472421863555160913398401944991563679345688522573601220920518192157232404793139581003518395743447107334716804410499806694021234954007189508277808939255381640163353463339173297938137871796259264386697003934986777970985328644567777253038490915589313914096770663415749423311145421410002798843721027276293523120834078785539531854982268203116353415822499016693787673556546068887700335342618677791732802992242534083171031006430340225003345570967860602736131750533646574314394539103550325369186046270222122134416182757203681501085206838551675256909042094057068098735564242541517690150237673120869283461834547096472299300779043176976208824347677538861929217533357840515721249413617368925257596894700058279791521974792105212984945638346447972703207414037265896175743966989193971291986087496651776057413108347140346344124873788811671226135793709997962356261332180310208851569181364039459146932054763898228206940061865755747756158956433635306569206416599259528030557393446759736862129237585190241667502371154071543668718660372046417093377527989322361077678689246355237468322482019043248950886940010734406291329669590235128729712263026635190118875937758835762022447864209259541075830048952348663923376127295409907329939969903562456293050750521899788087242715712729900307593097948361292527136458704358944930285877601733391617538753902342623447339446273309618092256232598518567676177260458619180659388879125888050793057607221759012450857647285245557962198838327001654039095608731377510515990292581229043535806166595473283328301408345760424595592414178938702397945007925919604372960971570006302402863108859837459781027130987150599981739050984251854167784750233615664905334396919610134583518278293203735548085923745514647464110527775888011561227456253119679419762486504602077946057665257279774416321413922414480979303097502931022519436184659592578917125325039882727813987505100813499853840302143041589133103501156756730585309898563522610973771912010422885991818869435219508595558744165674457429451321715137123430666620463465494631699585086551685105060268436961004481794447873051332000493428314914192642099108207024672117659109983816703962374703762972670782097997695657787625064482420681034790259134328510339135569067694561078353742440573155334807050353126195103381075327220140828893968319615323616342996963202486582136070662044063073461445296721933662374043887961330934500423455190534188530347619966868476958722477123032402167551230968508647153150051225910872977695278593212618618031099992537751748980674212816803726729745550421512753174251351123911761632033844142110290582973606229604564001819019863639904533505156415201557533324170100508428800074544246970747462521970205260983739751235381768816337941671314827121375487592758141326994450543641267538412793834990454265715983224281510921627935482191971464959855289890627252017827304166700147488596605917255213873008590888787760524447667734007221199806342993497454763141399009657584909133511634510421396771808116831154374297767012963974137207707812885361722869517435400401359400933708375718207929887780230547901804826705490788586043753739799217087168727764858524479600909143585715595639472074994098664262112956160136496758524949197795314098059960299647938324139008071083810688077444795767277189411022762846082386431799906720096631444157872995221452755700103750598190515680575761467471075436178897621107015814397176563317153911072651722136798094094264878937937437417394685236482080072749344356509175514098468760684773846188839636962708769015627851885419158630104205008471270311398960195250500331826312447782731002816915106459752640674466508946644853862956633825435443397972620687026397371854632066511638703206978116348422892518410001026595545468568623230808075223689871263177342278390450885782690019375045254969362506547673998257258277269717690710247478748729262876862631737963772902944340521611414622813835346926336514944339940668670121600902003206631731096380951627235334583099033875482514689704237234421415217547861244580386496797332660909159364544880322127157975842244561789373775478954141480215821672550933617981351609938086891586710285813454640466954811397831969065206415231287181463911275727473585671020956143271772793430500751996435405958251149447953292223729374332116424224243981573614911348348856883924494935610142913975924243815901669756608112603040365555807949067009766742332474143051861801818287044881069936598474405271976094281855886441353934823000778547846065841702565206233474403836098198360498056387160616668767005402158356688104380215908832383466344963862805026962071503479208104252544587356315889620810015701768742218017847519042069050601383596284102964913196072944377453928366902716568746025781423739244449053937658607717649784574597789500798675721325889893876182428977917858578974129889833919494454685678795683949409982424754967092282123401594274399026059323139279676562300718592673932689509061797120873005808396830857546722618585523049095207902080045408718627630334774098561471822964702012120677657668179673496469947739975176416962011125735796264373406859180288382019930026636507941300840738972350995005938118091223523123280925680370422579384177480726060259054575733116066581768045473287596008107591432291687893469785145735005986217232407020275497655791300927209240445328551572310134833887344085123454908495000118505805312935260197336657961094497832396432671510991208238816480098888165954108327423722445280503214019497884308298234559941360766680668299815067189469584908872524999919941398681936484047530207970401324291382007685741234134021242765622873578987490650387077758499730706277344159091199789129181233791067677239454989266036193591175316412099254826964305708943956143456486607245093260071420966928443402358859920201729222284936010933697044764188152771226478407383168540287410500176803179870472375417623429412291177564735319839860715130900554503090948288419797906673042319637319607576497402687515603932514404738252730743636807304542926382818377015951237810156897518447748046044448005533193335192856143372359044296420384516605018144207743253633121469938415446215885554961600726003876198275540987240620689451241960445946180728893942132382169881527182944365547822245112806078590316696557839501278818068606716162596535484293157001004445109874963098964380053721940106317323849215406189213673891817895015217179387563867673075166713668007866770373012723531939539370812393914004165732139633573113343934554606610353189762823741396574316643086450497030840113259825179447520351115656856757655016080991717343232822272922868912555069931150999486726929174449406290656954612516134272611586156325583064019007956191817558651676986549335933335387738047047944818696335270023604978579738125796114649055316774738836202218630291635534628626940234432371850031525229209365452925191044008712105649809299822466402636683029426448702661325431788843571597318205329439220604976243128184896172137495891040035863033179158600347541869331666924082230873574952091126424974566591972425500069945072136108341797970093643280245101467282047511922304013081585673201991564451170691943899523263813737302309457412462467857202412421690184532893568449388176746616513993842231172985893606711332737647478042961419331071000387800686048355248292877949775695247079847945276485049744451293045898173439477352699732369653367713300397040896935203757453237696806354741632337661902531416712880092996622542032555150725447877927180724930205860670487835481091944294800835266735749602296362258747104658657332626194224478658706085788919074428988033829749231079314414755797939252782712155335464165607847207645507966417309366234760312707737977032300557683517518000334215967303088271272931378930025497637241309134928792353506082363767976969367825001533919163892361513919971604388478927077414829538304547932343081120826132701751198996689143651975782541179364887053700289051531945575826168179103122246600517104740949622636964942427981512320760489526131225550475281641120884755654192990337521292740831443768110753866961105854375377116902696143964191049470971798092052339668186959203409910547521382929336166664022094887842015852236844250593204506048116060222899934471417542661516703887703212858214151990475657552749893523232526782705533954539004316494029981433712071271244530788116097423737751284610434344587655166287309396133184936333752677734299853882075603134782079804619518912495443044054289009565847398872662396592037089341616273784417092841879794896446978536505392816654994505022072139146373773623220527271984312588240092759957748373824733316236334971239667545887698779388916446898806853187637999808808604617103678716450905417479645142163873743562927201153707919086987067164523794970467908569923631284551394711829282622553474052979774948373155477034109354134501953809171256482187859108432660775762176109969382703372276031633813578425823799249639795679641751029434313714404112547738859160990235133703536282850324003172431772136258140947592097465310286373680981973959813208245050533289413918178757589270503636250139591099444435802759527362740108381144298266433010524459463865930634222347589043052195287183943136009291268562281932342011658211558696532605848223221720343736380963905947583313740775650410579833974714627678807081035769794314965125683994452328457910226406774057956207869921758208209034528300675586959648437201994140527164590334957886310242232700205320967413065826155653314228307404286997111343973646437420275095804238452710822774458697578532062545438963632960335017805326286886421140269652292321249761214102387874931565748712974783367483068158744320178820357697930223885545537494679973706070372373325934433694516226057936234121700817611151862973757045202733899464638661811480745602061587308351931241585801326944859914126884873434362003076121186565275771734252124297258495781063679405215054374218015473874808608663112173549004047453948154258083667953485405913695291613960066950014562158093904318833049399443141922967294139044519701302906575113662749154988320478635905307646484466470408480738500587339181428725855260688205743385651519060623756314744034834858481755112411512684781672359784039755758839374568586088524636878585099220384431455038358730923281838039152782626348853629235110790270979292232109248234035387967505207143424149932002808712045630672114185088895856812541365789766666700810216739561679063446954416375095058496960758496594930968266008136988164458090642749870145991800862072162360580688257955025577531240050134255548438161307476506991272404783025759573620100201672396166204029260972090179725020864632393651297602599657753618007615871436228053996876292403076930866149666587496787959321820457329888150172374043815449300994346080344638256397759462674577796758929870244512884451819604327994250345544724817805286330217767052624799280620511937561868135538615944611457895196430255484734488543713257856459685655032655973832980506424466892046126393505775204034469401960787577096550864623163786652732960400033349517054398291385606147114944476705041723450959067241296169906538486976206232638029748464368162615191614883998858875561516483107022640138555725614537495525352840867555579036628846090551652128368961277397247700274549958108909164944358908991187551432261522403491530885237719785847390161962273801818354211470997475829271588772461619781662004828046638974251646849025020520670706379297821573947842770315338821487926521819600787004732387671562322463740315804043940574173371016131901052796835490622823051432156980304390259010046209882428010726849721686882181422502483981741846982375618452477259982394963983607217837839485806838853219507478673549354545947628047231902462518050626188420250974439247139948889294682872544819752562768066134513472677973907552916816482920527761808293013129667025460472843183637647413853749527074206193197354811569561953829069696583876803157754013979614601205585713133735746285503653530676952256129476167797353577259437793567544889191021700403538916010462027206209739516422387056515548961329985710489459079480562126983017157927832182627024334272327017114365263085135806720577403160384969494234177014225464612579275719135717791796106779492323949153041864670279552629032594947829931814078050274015037567889966984492260757922169704421820593189664481356500050735834170529910098355272883854908506914365464869904766987154652095941263992615281364977964751116963077597332660446921861342008490204815116569513578357729035383057826206814064569033955116577817220475425083666084250903380960045947228709023772348304465670551410255059683451011824653106981845417930485980842083316084348434598968616789118797401518164597389623983702567106885588546349163422301922821779652003251211161507088889930387226374853508413159904388775035024459683566297596199122511574498211831998567605124625646709528334155863336900859924256545522363397963054212187898682832259900033645781434474813644151558792745181974025644051672362183537480175515484669681601058824066604859084729374193724159786456251185039142401318012841446699519969040168743216265461112533897227304730866362537148787343366051247058335323465999778364904720538714849835213671693680587119473742228048720303452917477310302549297972690754193597653842136057881484708165209099769723983408559346451057291435718149048780507807558210941593590044550635432738632125496364692033102764278723827602981820937509495656164793689559683474522812600910819441114505132658650317321528197011118750744305716083176757527670806424066575025905036425680640608124107232785881525959481282123071863291587585007284166592933636966733703646954886340541026845541659028139650184376697407386515180122646536720938442721036159398690698722836292641033599226762133759250613364398745598927141216083511488932947341337050333782905094541202697972078823849254030741827250091638099880537774322941771705043133407207202612531381122715537934292837864203161796632894765947628305389478646620321120039689717694709442535904953379909996417161191079869024937228995028702550478453292188464487426150366972235616933135097323309302641107469743777326146081765040492026051584180982341820347595920522103987750178429385737677107178979031780364536124576629181434501129007666543050517474017963213211207626127461984399711871218290134138269212553672345088485812378692338378654762224925943505565478380829391398277995635097302895291353770291800786375745310021393662903236174768512978552603821629151582752105204687752733554424155752730315463584169189941532111302081477628430204740972194114293429264593004228439224735847014355392188225353129429956555357199209067238397385100920687965611665375114488582296106486723430035571397041623912577254225830394411673514488808378003130347010277092751012508011220727181333999898699224671560785467959923856969897490165073600687393969047804907557732779952725557633786433780306408535929388210317561538097111153587669963738189028426378089617083813804465606773544115463272158886427271298747080356556335114553382727748149358611577448664122783379928395674336684404418729317264745610209875054728002604814216941797500866039757367008925587016750124574172640287334174504315942268338919552208452338906650213687302677266736428337988440473592965608984886285935099660357761359556645810285480165271496764715536123763613240374345419861114287195819969206119023854987009876319280072692477931846983934458687117489420904224645516427092453934551056242834560197751793859141965160576739508494951384188770024969202786503090097248905245977144826208659567012676083831008892837827983944617729878377959096836556197503487812985765885911157363700344355345431154296688743288733307694144867866163848549178147994635537283929927857997803818211981617244622042901365334717297769694544796299113890365951970959152994097797129476196683279991638104181301178484200563541268058314835254176023965899886957114132362773922162231909251484989766778409863152992836294975544694878700259093413844922491883309401138853552823026603973590078125051611891632444058610720813774160323431339921260302152217918401735934588245940147047962936687247993017315757566521511773833270172928224422310217382257506729328240203107368985774457953739132984010571523232928218252418452588055952465120897579195984693133530884165752366264925325024583150847917130544835593591624770615920847568458572132038415163876978615880708217519576849696656919848107264774080764236285954200833819409556807277267228750792985648685199683943200055175925946648899304360848986896772560125527738422250209699316782250334389115063531539655986912115087529513722186565625802125705614437316027377046488420745498012701686308491037634251551729695887930567380209353746637561256595399464686644041248877663931644636597155192580408100537569453979758997832737158511982031848719677646141068816593117419580064107980124111017252632951099049678616840744904602628421181762151401152003715954584841695390001828096563862220585970557920648818823159764817476944244887420032836801218347917148696065843667121258492231480365823419844463904326009750541820910656058324747176460421249530935027577422179418672229434569045852100000929441015286327726693570156819499405602984800870745014613600112794710792022306532932532877911726196069302707474303319475960776852323496066462419703040395014330688418277331894791050423220358407438029630403935789667725399280615727125003293684218076293498735717294736005995994011003080515953042194296458384350914669868077124647276477207854464521509619243221227488151535955746874263126144763923749913756019967807031271603622337475058800746699083805989669345440335857637398428369061668429808493812647229806142904284347460200710474670806876585426549805912948012082394033060088745522142684557432400187871703809185669832094516732804525553575649227805344312850006051807020514719980185514232042854324032990378958697671355401088600784686511670606479876892171567431348607674965451593360429845265420836718539876168895198731075435961560759749601569654410929743296505492302687252240207487533211694359058126368635138546147285682727243440633191670915193598719318291886432035687275591378268994900397306005532606646839765591461805588102030955548544309022932425513020020131153025961529500457228273414446316273904444813833236075660180807593365885434447947418442854311316253604566753589740153102876477478840117588719312184039431509125174243944538320596502413227999838178590630834110592307971270203639025055689837571008163260988961860166923403359179005025210880033497426307339940357963182003873048138334637231048088759714772347249956058673173564623786204040320169623754976990332182231309236751598504181498919760650710061611428311077760372571683364159186446179339796604274371922810160283363097424171350792744250337704092795646319972340481582103612074040435424675469879249447644555917989474351800910877662795217923977299004001571855700664615665067352136613215515396265220549646133238020432059763210368625985193713666933590379056682194606367234055595268320318694934335174188774199408352980905883371674654897682374331227892212470450735021071088548268551174838346369351974726183211422045061670510597224345967291831064313133362707056675371325127120213214753620658259198615155967494420181936880744943618952856548532637206163102865618296879265171417352614256031790398116496338786334477583930079201080886284054051077459357513240077815369316465423298270810207426999793892270017811148365890557409014545342978997842267503925741391606622208449626205271148155147232629137962138744553185919328122115391371847780695716359788832827670789578844836632961397680480948659425214781778657654145153884898245783053638374657635211038168281980465092925324184975805054875781408911023088623780462956277839616058672669547876949610449075298981502675010137250176107375260023191160405421031849056164129124300164076968411757296447347563945764132127107799193367732936806423990783552533160611471333534429238680138747638952094779069952185350190230713091524195810099005419177467352296444007847931197006138419123009184011540310065022981928896877248278128683582154575951072008007057502485340406322743499363396490588771963078227954264110526042904356885767548509224227890706735620976721236442097418393580495692486444776290522351482260731121403883939560098692921242585188259715166426857145525760084424226452461342461841099462040305485030685930043348723615973716800344494514658422390763804335535961941042851502069367073512619833791559163602256337863942903519608833274901112658132606586836498106660322715073957325493544023308726639109991169045788659827298754928436970408170359515000572575365258160749275671019923907924694414237298859397176865771137948831538223510591690844307052233842797573525681641408030467996285589462173944697347455534054948387347670272931557396880903570842587022145598792083929394061650902883462054469642061220577422962891615700561886088656974831137911187097039814887090192468712120359793555877573983410903442122641370061400873500545386753245818615258679515496677043074121350345251866810559517025431180168551524662931318295154275249352311884371184335407286010113334992278861294400086018045154565455643063037055274746620411087856400458691806923642759083978300275456780862791559772886869475941242173856963520140987996198634845922164527969098046120689100885329450334281330781993959166482016531715357049548796805090903460519318925140166101927470621915354062480813766749410650179006480200336475151245863074763685719043826809843778040138449962868541525160985589298342760631324734561383829695230027043381522570404341338556138704515623951510107504762188526426735695998486401344035468983336921037462040385483930378011842626453600213027630776001533149667558198127342291196241936171507687357385167973429880176145721252520537212476075731331731864726960085767923063652214947596139808230050663354683919653652732382856994539534967989108799413033228047864629145896159430935705059571146302025381903630768512863742727842082684843599578173959173514592739412650897245984777435555639340890148314854314305959650418315188233356664002769878689017295644585565647340467736793407372356407784212082926769293225098864724605249580821479887651048305257620509130254675257617255705724266119166496697655487907681089001984023370442863159160559373814608769931092646265414954761810796299775095028592272196891784582554709833721215769824262333996491605032631678477112903747184728836490794302115858184851705685164471237372616483879943478772750067355220447515072165589515963515803094229988023589599682701195790630266386449551855989472204466510691626240596158099525327796455167908664539684952295826059075949104588239909418791086190888317151466117619363251420762378558656747221304548985025042421382470499613137005457311636684684599630413810486005424296972922383729459175498222989317469121022880645258107524520081611966898963157150920234982898323804964847563374613447654701355797662514406327433088784647906366606108156559836539813433651675682011314359687307330517582535834161194357354700679047102226270706405362227588602953068679929866550591121577920981298662102745255491570863647901433388197642513246944246070255001211903266443975766795162313838852790141423763570392343683778688404496609073578634635818083512453856167463972452030235246531160012527253548083578549437721197883641242148363635583888186558533899616292733388280318159601962301836791341018564411863886166090890785595176639921471493460050908909066260341282345708969858939840562935032888883563911440698624481063685437063436754433722127209533873752353829811757653945512542653946383119478373048830229318821549543204223348660842422817975744928157803378284329335935342098489119252399784166022440407654475339928554524719024103078962761921101819079112597210762278261825368626055630452806112489274050767824689032893167990784680747483988231812704589021888703367002527933746772573512115277494404356196850806352521005507647628997572646850776790572670758041842049415479759237693471804602991022966802075120812750255656327545315982677488027191219263203299998961555128262758248569234291480236065184396981621019491112769377550271164391961140551125443149981123604750555887958741772300190480815701718244409974600887885999077887984048115179702113142430651597172798113487519107471553309823678861662458228402271315815971180449240485467866014093294713800958817066445285411459568734239939932520081608998465459036326433306769365093324472731323575330559766471296791078238431329719105180924803986744454902296080083704721693486160456923644511829091974186808807685397910993778042946512062436137132281668818227646069090281782556518222521354526874628113811346687585364168015860469681604878968925936518004653694453841182250116183725183944569657529195320520745784179170326188398330790255584020548919477782369722973987623799585627536975387224744045289271089803071173486039556888791001700909654541561929499396767056091551245106225019854926845048761714361361056808181408278319554262132217999586328818530873959053682611036766798964171307346897730541614263200960271508856591157107615026412226546206185972905942849905818898233134898190343247149397096600806558146091013547943776292561089297586744986889222370327482028531881381189452287278277067473361636144111774997363373753275567706046697610214328289969575775031981449011747044920069633775882073732522095969110071091095560653062030063981020249485158732876222080704493866603896559316036159998155810045650670919940140991062729522210305795757737225681593065289338283803389590108040664152475149760941869657951993082851381246430345674895311011902814079412255697914057610568476989405768533622844461755200741794690848025999433758208127891761087071071893253266277042197308206114213379148325389907886456479138614675431014774867766181145585878886393058686771430257843275950125709907651192677265850077819738084430640992101677055805843820827912709872346126902400778590193597782827259387425574233111150300015141496908070792933060330167186468879062221726940307538728823942131454250399349525843749429431558843612141680149067689220606632958310207004584346021982254513444072324999743212348421440338460317868639764703237674971638615424581304848702178135426282619925395845453222995438535226987660009267387818257614262200183485037263001337326362670606734611225282718265522253992074149388119636872066251250875715116500896591683369772944425286761007736729865993974014773226274183509237667156693598449788178354314170730437659729429400024640001772398424849098665529428018137789409390309212932050207222639734886247509922254703111849614887323621795978253360329800512280803462080410906937338977233261923218961123931728485992422604011111961667139360560681894901904322469499477644508685066296813896575968042880496597737464879871225175739795697206489830597883433816168329079530247948156837176512058257875781554806837340841776908387406411556699040114534991565777651400299952889294009676421011584152275983458325976156004790713407472360317632130470583466672109747787770505235329824389645938943430835562633630954130551424115007037566543459059392621934848671158999930281012234132895506766583020435731172905777426445765015024820949967637827217766810396505431631912526237789703423424281980931359576334186018231236903739108499757907362588555801565742065831037255312964824201257947630073695365539177911088770524020422188297702454439783637012968318235126925984718666531007042283787905246084850454881548995662058044985171325566596934828652521551488681556780039943215320802339323425851574066097940962995754634418260468918692952331534759634675597600149584839042066497590481259007540946240463862675130830339962955808896008187022518886995723364764556663351919289584365868358965407887192595550420574382212144585871837578125591536797018224361790771960981317249949345701671294602818714542793700461837247617903473577859337713425216874684858687057416581141989405097101492322325722278559995432257180352316010406863875238836610830422571834026256360552524964946906821784628583503198451015090105035536203914497752699742702224716655348541927783503583865232501572862947530741815269290353126870699998906453318718367669619632519694950099969066119871510469151533005496076521122468879820198174843229065757245449830136406447533920699438281889926819808722908773239214677545965729296773040012613339590253374844675173569325600003635520960106133735056465863680974711954047597765389160221210131709643833715394269354631624366065528697503647402639486895930505639093021205936925566472993149902498791527626719492741744938772467063956213255392947787483406850604292186527519473280056058675725241839286882410006614963426655404147854945163290174867693476901624762410787644941327803125757410919315597819499069619275452388777545953537658397119781357775438671594801806612267357716248052218568670218717951861094366354061107723140597730065994397895346166224575869449111971425597128949173622250936004007316928463047192680853279618573787904224635826784628873325811908650080477881314379134042526732729886426662244772707567644277191274108593890915039727370345277920603837035745053462675767348388296062746452761235641034001929110030631276889084806783667152697440337539774497294804095751442899420118329334867417507353875462739931090427810466780536335774436805304923186616425799656450981307361407531772046649060056684522952470433480156705062099371742090913900199795524302265861645834201744727859576060819878180105981044971365354371850936702356154960876165784898915770618784696859828476483736862560367746590981505779103744160990054373649283188181408811035710210831785602585770469443827583417189162898108103541782797357778313758164771026963909502298201865928364696725699581095421265508455807542705823637383950041057542568246808491793462082434647513067977148776215944092284051532348001323292088935064448760534270886218995382812842021420358118851627016517430266404770299831349738770051165321224375426077418531363766227997417753316651435138713061559696911463738243721481667380792747143540280645483844418922946790040726512214346419288277138480647501774759473518626621063502604163383652626864310833696875063625146672645441612701172640643851593352163884165144285265792254635823128539374640133441707137533129962839911885157608398091713710559171525344585322659073507804415317631637007623782848897991437587475125465596114955119829243106680154590794285846975390523181874228552644884467627329052453575021782829247427654238587309947429975126482589193425494472277135923469129492943290692014554395926348482482700512042163766139504017699899647891547777047395639227964793107903584931090200338782274127767378343143024566582206734189063830461074563479134167755269759146037117218596270937984171554073054425246265583632309073853561776684170968271396791229966609943305132465437832756369741065501120888927786467751911109034081689520323319178268334975508254431217791095078789667750399571113513538494842330544885064343525285494321320721267451368279447411615039816078388547335812335407696635543558917492543467204867785631685193707899395238357123283717261181887644860803093025087311278001186995443270430480331197227730625012611367657873576680211440935805765467327766233404786114869233180826818023732757193045958953525309692900289167833977497157013019564891832468026224549482864137920082452415351933359031544177228208344104009795806597073713372613147981157885496008005986173042788100915148829533307443673839917201439379569271463235696369948214138457862980568178510462939320832766890252390671422588745762721642380869333156251427751188656502826352251403036876788440975900189337175330348208185975634813202303987410647738555773561218295371760396485036217954557756615417096385734425111218706368851822157854942089034987729725037494645879956385473159594769128872067417525383607730077366968784527949245819125099076965237296287048045037148853142771796994314135875568452328772807624802499375103885304258557267573945702249472352695431738250958196223002797214153100423685635119395234167660686090663737518315458874221191071168891723823061384761564392247932929536748876109436437521000642811524187093513094035370081297365777471267786479002127775691108363953268241184475441578840006569400741569379677223327343033608442856373173876241753718633267806750625314636192777596326682050804012392978683298122055010654498968597958666768969014514223417175230625541897459688769400901737559294339995864228713220301329730244655275336673867660605266402257372960712554734096972685005122445335693465033377128594350071517901940835326247655122702011098763982452417616529746805896960056303077334564781268005639244594968333668336228851730576512770965392972790236155017589715158040329763669291891912944730483177658726209920104174457239462309040836781592399755404157965803975848280624963969633783543901250169381057964530373483090499524934081953784518139296004194095342918217185667122207026414355449024138720612474760784639007497871964024211131982295056725190367525369905638195199468993797965266483168598244193884828855748723125983148657084322828033347522245292625333726264100549056403327797649609790534680019753765415019696130385572252641040298738130181284065374244651251913236146240239150880748010733087330078971730658169079208447095547820977333437292893739155803452296555285490533183090818325425576889873730788227664794909671006898748760625878008041765065943918849154338510507945322660784063395515402501159025508923642073404936889236831734164841582527226536604128154242079804104383939539848194474301845417779066445904101399805380826905435172470467695122547413304747285273775314310884138326936449374514720947649476772455597721664254900791283792205675721692758744197913531673925361687313644214851793248609336656587416152459287834065202473783702971233829619301389464343734557349813371324992385610089566451646385383240779079427275750956285045067996731774804063359818009007653469505493289747465774364288048988793244665775115116902707047396098224156979858802790929631782341917503842736810345559798156690710817491210451944261646458958626397915068789696498955054936368373820005232689846141673735988509616328656247572626046485878207415000152688232105643371249911001509361323780263532529948804781249169403478864797962050298615413116141882948911991166172214850587017162804182640811767815897356415592166828029907581567523047848140897302279331845471040854262153578573777266957443255324953003191535698364141829305320334213178104209339398714470969340620643940438861524180616671279871078935978825413880037181190868932464919914334653300930066516196930116847232954223090005125302221952140300872737736559770950070309896998178991626463758502913738082742524759594339638860786746766797708141395557782184005636855038417388274614745217573358046687342509144406844687796266159222712976771384540801563708985831964669121924478863449431407348648927161894137993659440040210251811652766559519084942868138019975381685831315953118774086992214912473748368976302249526961472471302695622838636178542314217731292037900783872557209336718147750784767949766550129389375312958491740302347995065242759434112439294326463782596926133303761119348490384319745780767980968024040148327997177659213003235805048877454709288138833782336398166730244618092865846583890433611239176363476644462100467212146127476341836990404827002768281197328455236684921803321627720518850785481873936697728265730703083190628255066644607615652608109071331264004861233594922121264685296930525458071993365699916091868699046103389874273922791017126880942381121568783241477596226170395035539681569401403324611966147036046025433336150255938439894028411413539391538453069999438959230355990957236688084634101788204839136727022200561059007157636170716157262031553783255911198902840058171423359913475111114468370302242188311020234194344808974292157464490603238013655788256823977266741960083234667692757661557290014715866017079961578789422776986793943408915060450669563652078746132577298906302937876595827723033516278635061120876785029581620329338398487338253777913319761852478044671841192995044312625132544807093003402245032889850594442858738406832597266395675336677472951437728020722318800161261713772535309445234192188582622958541693650977741368363445533818735493993163141692576409925256719396480037387805286279561559293466148895904666163167451451827576934709000194046165794529865300735629133521709918988486332945230370588900751841250333679303774253470145245789020365663001300417712507704205874184295261460009636716497913321323259286036263880874254673921639062515387465886168147546914323120988199613566440473162087793972430591333085212168412246391735279251505868781620453501911342999586987106435563148863155066668696741332992053328610037029505717175973580955691150689960122319113153644666199915601888254119907749990174526376224225014745046541826608784672134665213333234322237931025207164066559820757235506151405058337954166797217692629374081536352519016032573297271525654288690293894897094149894985057621628416980793540546435087322372641697517518116269523917770996455839067790221123104681550610256190929910452840325664520600006994135078824094565125792026168850752047432958508396110251785835347570105505738744848719048920409524758415254185391807896477412287535223510640909517419887769461161321683040834813606914603352154569758944431006075962910278240400393023820683133708244382203062433489198849527242924023436218909415301353960644137995110725531075523945855129299970217845422386155492727168410460533945129721118337868794906855831357156711853611202836803242877145908860058218674047931925619812297504630339588230169818083948897668735483637808397735222714060545397315932204612614364375677619065930328813802714411577499164645645196894596228281758700199735351792226333860854471207445899302356170087927007584488986805104340654150701690533092183735667761236803940422380346231215044200385924343320878238849155730262351795554271685720434599884323634560527412894091192494507121690778090137722864989632400110736013894396073306849184920354251370209570284275307589299633869001822208168228498914429360395543253908048522166061492993878755627605674596539654842848959729079725734397278778682404882599856911874686961973451842075632013943097946080102843739703437775815145382534569833645880098154712795506309734104023264367070019487794193259554873290902642132442448723062439136557490709824997648197931074914302375504084248841406064688427589183439888526852996482759213180511010384888916177521966057028429690939112177545938182481490160792339261977394516975094851316199952533840093793922487031768216094025706246777047288297452617144127176064149815359345838427681535732377546265507530433845811319441584841992646481126423785008921316656932277922945716268961087585890815191296689316060402210522215601884244628669486257691300522826333220905347911418798261063718291952667968862707220659028179004232859853035340454239788959638508040338191303070941556376415832363242600908317242563415777012660668275986659640092389425140279430342652271733934745585756644338352494632753772714068612255140483689453675496557650124781183989066888396700124666627366880303167168229107316398104618602653738982236863039378678532797889038501830872090647196186139350007498447578571295211910696947616184732478437590574156956787420437809616110053187301486486879206479138738349269827007083732952245952343537150173840724333256719054513055310412969887809029218118925910549486334843954438298365859376668367447959038189767029252840203143202118422565232497544553252003478717335322371736838448849745701047450252638240620445764647654131692963599531448338647802495835112383570517742277742751955523497983493335677873831101635988618422892693206318030384245105261108846550475035929888042007314582931942257806623306582910419757109386577644833953033489990906682861967249029038875740409860798632434735637492990703077260904045867882155316338031979042687640251443684720196037264172268888711830112146683124412638450547756638101089408610235628759579683239636607197375222767859298056961884801569263428851405580604330977601276804831328001052190655560117812792047712258801446807817848757840345106618665175632697182956171470910257952401639728238650231697034166388043276536895194852882706480793028864666207935974748816645359044065145676107607516557161028234625618372530836278957773511204084701121579878286747171179073928914762801501394305783726798621222619086394125974745259634289644291409262744801532628507104647255017661232257455516246594066327354580700120798818409781554816201382737220207833335295943631735271245024936970987512612323794489175429592863201645350139598312738402494791887710013188083195451778397736370580590609934300012879891697158681012144930306791027397020793987729964056332902346963267913133477120550481730622044525160305454753821379633444634484755431531848059889373341501476579961046223797420962519023336955636473857993896416528634796345532970333213509085296404741033267708182308964664650869419143384888391069728652140800556600451569599544298477731176311833467247403579240277289732631291007792704864542119784828180067796315102568756595105879113968523164354518815656747948447929819304666919895714779199006269321587104581600571834441638609851299107110636769277061663652574486067214746463781901503898654306675541633493556437425087416103147920267075240217634899593912161094052092809009920276627384402583006946602627686480220551116164158859301199029629745972931135281872952579380010109529811963805265644051527668632949776578379903394203340386384362811340142861967380716990589098174131856486009763012407344042264657711230474039339613401172295690990869867363611400459481406502623239438956868150242029781312952638404418442886806156131884483365359364023364218510198197779477491827549954998488534748985578325821973140666031061032868350249570752353487703348588290661819226313441192835726583371414349828707188945815384491833813235547417697751966363539860814994986011895442482477455722738417383706001866807409620579811488944304900150056668747083566668996169361087414759777389216556438704611635154567660234028968984885157063669848125356391904972636340182907792888876394633992732796816194178321725917053237685900266410370953389656996181447405504779646214191692795594400859151946908982475497154809618221219615287591783664202443372371621877086015389564362367836627733421988578671867864778789381728103523405692644897601838245864041143056181187370902533602941827956065464025456992877110117602686617293502695202485321601040248736778925180997531435257582199941636407157827068666668911030501609528444560384549378801568061134033383310221667293787654414833963814782524127674280321619443531066730432217507850820550170476893888411369702122472615225670383166380541065931759325262407335046031790111045539794267992515125977660727837316573862445121972168363348756037949399599598012124106847039426594252033090273908956924622845578416388733081919183066938040224626543384379826559707859520958526371326501303277526157874128437078394590412237153572241320008271046647458478985656680884526205005919001086316949991831097995422620219134216050634071562995730031040134074415169228667105916037169802229021656641720832306585887529108982613875833432451721878148244876980694638964968872462811198939757549082589331657610404680338346217334964065072564958505863182376775389872468985390401345092769206979106346056645639337977225544682768543008668556084537176208599240788991344767226535233274634944686447289752042785525354591805125003627185731002456224499620164071270045708803597443183084292760664262519125662887337425930099486016468458572825321846186066882434812870837050894389579683354466906949325244793169838227361678168743318621197753633475266863966570094907411224753760404916225031417669714463483597938071603725318087653719962603974774773647528155948468765826781237047787730486487269406222622693621167877024441442331697708458937086081139945939606292784367355356008230017362557472452760649774607802669765655390252049926893363134705539294379716387563618696480696193126393629387362094527060101835549191883555705655022740777440172962590195380598178776509413841531316965660803237017138816927141836600918053657468401862979854789567803835725446581207098868581746640745019932857069723147347920196820609438236706219116981590801660236112612849871916600604002055214118180465331282392189752186245544708185099519158295437831249290622033534901075048271077678705970821351060723930997126120879702387325393583940464676069227282638116829685358883596612579898997789899999704554339239692420237358420323684389187465050173121523299443595627436844026682971734440175583805054836582694892653153892530471634239210690161035141772435255239786058382227738792329160655173192875739660016006505012382591583913401753829611614897636980953498406742823383330655868817676235889194471994528619303329509850374279103154222936378670422800913372894920334160382855709217021209828694854869542845594750765354370556513563964539987536535893943336159914971875379468246867803431491847040625249333682450590889046985889203424160646129269575614410389368860390070856513653663373165707292468067205315086073579460292120345767727374135595639369859590070057365268625593540909836354541829605325949400375808795323842546424583215532577300017035035020722837069467891447224926055273960860151172895037066309249002005831472228089144184164162812895505000312814866208683972855417468277922862242318794447642942682437756992987725286936584687148445154151854273756881658456660065058189763542040133558575391474652005077052878111290107092330913899991487306216287779115452173284193361014489205260876757915167822480344068592478190595963338140715737468438017574914016808360507173788401485579809906922943867804880963479880052371963957362639417062330520986031567838576605341438486049720129480497876600170429287037041971319300268868199847339420890333951621833976362058695449201885418838252667925122402315999229725523841730195632026692155457856598453830455992544949975984684619116089840584253189479874368549829192515526934884992161993327980539929584515310647105514716256595242710475232448975255416886787707930356832253921250779007435991492481678122663022337877448977813568703303042828622621143681018627830935890266789758017885871583656191800090656323896574729363629089729557996805701178339415901431909354668090369264320566436416657415172400168593153198361765500908462563032056947592865193240723082958441971898357160938700146953486385917398162202209849339252186104905169841602575485785513592913633408287825082732170487613721243573111482779524385486095711705608174555410442946222978451232444241829093834774259470153978388678116484937722176359892194435351991443102619725946413633299964637120340918031581024691668507150551293253870563825408130560100372171511253497111894397749820926860834588176230625054325656559763514023989219997048702117450519084626930719855973789386604813286444050164589297547786800114985016613516013247034818977073127968485277050707663580448507392148053337469986917081296739832766346057274754801903096801638664922230198274051490980419638406533753726112419549565806096522809539560764264288964618520086317007378969109232287366960064987650750038018215276008328516091055557951452021846313373517683051105135111143362854121897024978059812835602130197472053597541266177428070907536783550593079068696701702117419298787743226623868756226499093160719178893143796472912850399763096026551016478952816227951882755034431766507009016484650657395265708209903772431007296734112304435493647046366943408055369852584054124866551631776111421679251753108154522387556132710716699762509849966632348250472816227866183251793824151696957872846730037360489942415465543009958456338098483038195640421043338278116518250016494478057417834788530293985137388119213502192337953587633324249864151336567165256408855917449018703591260879874791166034577027252307739989901388787439588456382483084911675424063193102117381590987209499648492493367168878585754016151641119298161121997114355650948823171317396844986851209531659027813105334450653168934753107736887341798117075910907798454542261315142248141136425706622168937968826527049827177641253386653391574367086790968423870433735886110999005282664247397215547066468400775477677468629812402987944108155689011763094577629630009004270669045571162875100358745029443981997743563733059380124199535261139222438839788141336451692906395033496971669059225897114355286186551467603139084399835978309059407414803754911767987089851192216747321899815574840272341062526129337373516840927325903065073805260483485343316549772417214510632773004430114127714133927264093670267307675940824079572137653924203682621926417296946241704671894035339835070081011135953627433620274867745044189469255944306526838272505336694342968866272808631078702191645046014939037016936103485214114698007059678464461636495862853909167457861573593851936928293309823751102785828702188305859915533109066926451021426213807567560007372361105705251032064630478756795242555449580722941646848221524758753444321094561384658095902820646367799350915500619246047831424314411165487165580923158818468197372650646837776900296162786159190483883558404437381557571660475269002297200873576406619155174804333262683047724959812291570621026861369930319073997151674260500487453806634457389416350654200441923383993385301219076495994640517318201366639065845821860513124212427473687533942478211217288742582635205085207074517055612734128270361963224356522971797695313826214231749338617669940326978320781346935481009281080920873746999645115850248593160093276257666631517465699441333709367264455353583183511472951184398388188129272480814400660263720141141902480989499637972009831798121967545460886795322113296651975189673468489471693988957198412003793343070693633669295688375594742657803148453975090997756016571169117256866162723275621294903949732874957580680454963024856348757568672951455672617858485640570296171452308966413266947286294343166053839871391728959218906923565226450498276796058310831799573450888394004143126801490369599394521419773277499667569018683645637144743639437587010096863950980962938699845634120066530630022634670057898359518668383156860550048676378426783905593223891185483020689025848807404420513824006152548521070916464138758162936151562890926271696265659667228465080920717928263621133974478169257637162790989735082333287245701990198494329947508883447807159604792519881737970763963077113612219421705471592188053637479704469280173198354673750065835816613398923548638471207677675339258945196303931474169324524360951567521894381392246061645843156239427791731473149723407488564417112319326086762808258169318500755756473186285277810880187484706691565396235926419521235952172575394932341031520935722232964660324052639252001472260550211842681892754946049131078168266614815294623358502964472101625579013366432517269387597495302328392459352363418929654814969737021552842455938037609983745349835451380622690462126826508960341684784456007199343546547649734266406303195529814348526953018709469450211434158574114245122900496500759912360837733700414204128181706462449866045719047756037363378291419684850222712778353047551675229278720806486360030775692899747541988599744490345043118456503293243800727096385331124280188327799309809776806029997361340340679968971097799362582247373838475386037992300293743146598465484096994966629629532450535665873396457695592514431469362786097821827465162413479258119393816178786699025327753091544091702762381062201323184100702659054555196513798152521877502448547015009549142216214543980897571038058452330814102248678494321800697360660184032003461170273623963610616289374083506580298189443888602846887617469685907726291418614863545856588684602550048057603529719112303730964398295952562107280832784447430058827082659580905244350373019047523836472484291469307443784625117549697361236701278387440138385489681245358435571082870320452505224720889446102644261647003248594064269306096941317118417589587662536748067100827690689173580944003983209844438987347356886623442570773026070187629976455184852859552806616859715894364336631080887378832252765189785958440512656249749520270576059843657189253667502376321092128173539595377762198720424356513429729671748522051632694861062013753580915790087747330763066558093560002480099651566522496093079679639473629616552159209065915355985337975475345869393979266012118349122057040594587628681533267273136346918805183234112638483544008747608487133829223050593758741778973243144343285047546055185918312723320643315857938488486940085175768317906172366894576160278548216011682802591038625837195613754608926617849697895792773212944215943997290584926342264756116790750375016619104397122572348712108559071154008281601697106613117966431597153072060826007382813008404363323910955250525603797036773188974946695083271606333391725760201789809020589865778870403144634349054622188965047693403836060588763148584869974664316287473301986467145738838010577179352302555289360544430757438302496940125843301562633738860692633818929026486031177177063681638174678961945812684577385543506892694151052060498493711160631423648101878364597082750248990455085213073938272815448596334575428304957411556463921792971086609671796217171717982132287060218958393684214588582876394594418337552332121404642898825975054707667384865416877073335402145816767142719503395278068418433629042414558449106863229718024611269177429506435427580220079709002036727323938600273708543666162978836756063851651701486197988402875000255115796746208872671654985974689520697374637833198739453222127854277418574251474138747573706463175537595778814368291229414610971193487206102196966274601330019178289951276848833851312289856052075975919363019620860850082791955531835092807578389132596120542649702245394224060393533270721683808835343941971450166439452583984355979157667701795520777043459031368378213669062548412157369097949885771875875763009820466708763135519427154745450676133754451285370447352100407692070903214487180397308739278681199436352214707981522221309686469471280303033458514657842530236746375733741229295062899494755241342585329001668231520217149132876309885224595734878418557101256340981233484303592378646183517946755705549055462313307296182808912817106183219699319738177552330775627318955655365447239810457092609495622503501592857818594625970961653461587718913843754792668130810743514897325815253050542982786604525724382300679578337905981832763936382318958577219455182570042732348449645443161880744095087151670824075357554080410580509497022667299901856306071794402435045386583557818571705481573714207122814641288402634917410690828822211825601510107983714992663288399447222461174192789134356693385966395452291142328808340935623498776533174137817087783783372053287773023158912355493660381202440065694041211473216130406888657055827712706300381538874358262105220201250700725662884382906506170206286303834405453396994566088593330349834776933250270633509245616629843432492330226116351341808537526025298930487695164740627813826580814330512513522043080511025277169273054095203747918237214266184924590891198307123990853283430539459941537767839921907116744232732493606755330629007719274092492832866649458111377075429241456979161550078656517614754283105389466261897358227054836973391339612427290357077201907739309685380205836881799352505773354093565405648500769803671287279232256629580821329685151920276598687711989100547194638888960671201732638111435845616843724056564333611966576435849164297746228468284659618741414537411393843908084456426969909290832047061366442733254680742237180213944423966565202194768922061427005535040994236251462575075493663710235127399101448094974261040593365823297977001563195501106449873143707929963502862350172342098381806978350074043281477883072971964378615757844753100152163947253739094074038697040373118280343219513487707649877787744085565539037831637998963688255607954371253973340990438265253000721890765465684347002073074782022315992371854912749041686092798281239499039516433532011313224044934909485507680205203729535701809879380012278298219908424203886337403649624976907267184638876297267074637941207712676167295432040491914938136302285708809169138531116407095902559931577403712077701190695928166517975614381488718143684388701914068814316982528735253106014455945324478486968635009240680759708524381803043208303570378828989084829497651682599009887119763684759860876980100603925770231372235550009290327123568589208976448296287523264414375199116683342908783124318912529448700224743711813003821654523561449138167701236345265775003451601237921248703021985078835349878595816998224808006504526525021497342575970680282737888613845560015473927093154799309903489359847443835799752817951422228226629711805393563360061707323609687361987541568210591559606858496186480178688997822687342849044512119725235763819812166538910612564267476284718840434347156004659809690467127103160867880203964377060260077931285552336085537891092214771515688051202075646284910954642139493292655898944718657774198545045766843463657458099985130902547530529299676692918013176576487114273006330279353109278959798928141935424951229100167253079968855276928785712440871902168242192922991269504201114049443981358428757659640559820585788179968556925624902316417536741485581228314360357642819536942381790494701961692394828795595812192793919820383455188524940346468030402969330589717368130779185024238252532737303340119504440485728617620783077880830641741684811318449868647892739939270424057640912151663746758932094537689702264904236976803930952222857399595853805075145056041665015104269716830098853156557683043589757895209066994592563690681867768312273328172309613669405834635563603484563777604862232694462089599592590337223377098256414224463924047302633010377452882362992068423612247752912836110181933202252706903322496494536918165840370918110732638422619354565565807225292221467690407646786679371580262879496362136973087027558623437037594167717263947182104924449439971096172682934558536119579150878885256321170006648275664580746562812437478764063798193595599755777937219399856040746309164986282498251222366767640411016646121019889340230882001729471939602174186865814681757666203791884221552477444879162861860383742399963245447369414876851585906562114016886591577907845926869398313343364809858881085017558376305151687454615456254177301082280850798581932568662798028645679526307676734813491854954530327104337189460258299803381197043502234463980147138078402243112521871223673830489063931188127399104565183402617178522008377095618462172861798161513476053864592784161955733763273925449968048440894563140329919939067224516724528406438852538948255323393782782434553159541519313580750028768593115304751209240611657350963059077987004581935905008931942430757282029714119591340032050408097218899026427008039633310543406413295359383012283564940228424256438828104534394364775175530769749617773762360688719474222586519412556407891652592499623435823960524619497909919944455692493893139648851680973916640336782171584425667263667052311913824861112303438089429950504506107313224700974336310141130177992265327312014053273898509053813826506702057007855370895024061821407914929236190906059044966977642296703753327939542879001073668414872028702595785559812135666933409742238562248275595690732969231359710363934009762560392382174031626667637201990205855582019139492871371975563612727124691437567843369320517859647185433760057515635215527271055056634393961778836686329242218013084926678115735088318966391888325940612363698897194421676805779936886620136476282714495063902854563967576087848734173057714410156840863045839515439256359946711112372281496692125066028933507519461703391385855303455201383440096393478404446063058393692751459795557034212477434647391000562136757276142901313519293217034336650289322809292900692414434586680262240453428556049879436178816537426597245333898887722299723291590981444374557225058383903763152167353779405326828074223825914748351434474753080939260999295284290999953059045415772278571578604162126583051545451532143968177504948528335302228045487154115123739430889175669831870500733380149843424496674770422312646403090103274990748489974441720280018098365685511971200723258037775468234689057281023067491585744291713886881974330209110062345174353066184899714367814266724236419598504028313739954575687434395503420622190806075952684096611598319378630626366194445814854456287212132857459682455590724441272880042060539011874444889216651133610862660263489402965125262242831214895498406745968030144111979131689399057016852404295689610965009137663966578054520675038519657501574526372366058513929923263821674895724593679733503351084978488971302965506702721432426424169106603666445431763396326012928972963944035566858811374913124987703864662779542791446656086559697689521904599227140842699564141453780552598903056476987570628156522302041391290632050815605559854351892790710190487072570176538275760962850030929602970689287869192397194436146280022891042277831703102121793256037058611490147627705730783535854494038643658658188870694210366762346994617634045381530616405674521159741138570843196673166805368874268221331752976631721231776133317452527167516836523291475690086338474801798327305275670455351967902218036965002849232232495006395567617177852434787287427855445267224549228617882119469320387174949110221459537070156137744942711688220518288732939512597870693198571192992624607200766133449433831420264360645214896363158155954117254324153898028318578464554383173851866790734953555789881044218349156457066298311793860731381135946491080677648322047267930563509224588142001561682887808563252580679270035146425335654013518584292383370092342968805793378851368282391959063615904872820102381079378710952996029034021434139314563742971745554880650299325236778459348389994792600973621066281829754624318545807054891023415180078692823559483962028160998201975111447615990577943041244323427038268424941717232449240207638353330618590991378587758672719387446174858061578103234256687322543733163771278403014055655974247485977519227513258895259187197550590013947469835455626133031964225890934727257069390213141997582452307044516654088744197551001664806429888494682713569168560728600752676569825260257794128307799237312360794926806550266671051547123360188276898516230339698469603611429077467688908490304830126517137177880908299302264516780864556381568960881828231686249898700939979286788047561190415625412188325486781417224120201374440503670964227066121553037349745556312187383644660365234883933422307542433833446353335887517637375777878906665805242844419292117150310994167785966017265569533964138647973014332943447742748876742610753790509580395137321654287678554089219698520171738795813953931706986656739255294673267678235397002721289521580656852445858593574170419199231344729880749636130907118768787242777540675898812941687242375778052975773204911748793486412202135087724151046657140605259962756144430027675799786982660059115112799014037245075755633729254399750801841658820841071071250625537577488220824657994016977634700003454405239055145816249265361231183458123220896817567177309161991656949676436782431745487271102517870664917341112177592795930608896383994961096328590772002600388113994892614177340601627710276490752589175269969559041760993872027496743164171513057900421309986674980733945520758102805071481193499195288013148037985310171184777721298614888553237560023815447953372259148876728881775490172074241076107827318759922291237462449201078749119695005684683935686358003305768159821093038607774317869608548325604815339831409156863389576876289022166541322722444961076142481397722218861053904542821210730589535018637534222700727549962746550661940396492221543778949465357690726606100082800936277202847648987676451634336973373940045080912369798527246111555779769023378267817933966441916604947525480972424129307088617017177565869461902286610849687896021675195777780151565282645508961661481001450899308928651308654693514304851761269369860882088790606986253268798695420885624821023286736572547615668251071966560107476039424437772967547650686190392806985398779709921062551621690690306572110192560605231739964460870502390768646016571752052790172344685920605570123797272548021625066017499484993339541293515859583267457706878791080790523366682813061092972079080143179763947094156730660235454562873380447491850699556351162745386535286081310029260529210359526795412767996700710899071234920700982852659468636047900681398026348802531435572814310986676261332092748008612090391308881752568185538466683404671954523566189426831469949447845649265299778911556183965017260205338246332845225963263862313862908306235819575762345512506368102580427232157258456929461045872583756598343633320061008937234733180125225295128405890472905958859476303523329806362691032948714719515794120391851155632749270811422179540293039018870866219715423733518696237683916688788355931990666406281701550835439194462177510802128998552325233976221333193232372917020686156978711088386011326875546873113282707707501413975280971068224414767656196080186408230680517544093738907602575156968370454132247923969092826139551305323848266011090477516567443759252927408759582117147325462022276374440614231850006333573556354934095750972996963417831523271927281973957568298214107480349276478058358023882347281009447581428069651232544965421494705992667173229427773731605986403295909146863275941811173458976020333321787552063784824184702482013080886352691237754274497729286206712708999910313716366185355807887128578616781045550125691572260808963941146236933221719703529576027649087611510880207635796982778063412825349202811041347402209192698648576470284500658229134691015956869178054625758467884203947891504527142938016767683725433804818652368057875813108911581190148226613202457370843421454322295680942675851573990839072038760313079867018396697079509576239140160144051103808858393347547444434857660961981973239023696057663740399336033228511051385786412848144174055272898447899938382034025526379093158670953308048426876561012132462137480463536989401244933265368985574591766354408110713554834230475551426407111329392170953625682076215616650055820473009519012983258812599447800657328323416025688836316736501113643688060404957088137210150665081290349653778236758712846614247224393426797901371990182809072060045162888160556774758495146676618199617618239593626135250992638914692798983221124582953932983399015796021410843855980693836842681838970935536219744655861621449628262379199079318830423105703758216386626776234076521961618132707762535974926283541534786527290903131610887771654780720577048313842464899757536940365876843312779627050477852014714684548168225191786824268629797077075459239029745850522372301208098281722977069770660974421234670060162870111676025859394158272573490846686272276146773572155726921222384434755719817915875752138911029012055426797893843560399486400655714764080855976477627869173438734077515081515693344446727853114597003624500914209329950204509212000712550260305760019696915318335324788731383631148393511901067450210596372673852574663011693362002221537817617358208781026025246002210965703606551085954823732221565418703147821176550953213605799007903656736422624807439677022076036654918139954228364331919720588385881881920611117541429185743017014502307507668291251696760773149399652620538611758509889225682043315721019966611731818401369868065897403043126304463547081295393346285520107496867579724812834152182011638462766657877684069581838895114443426750255635305597761037491348742609300730763240410029801885686211280617245326315493526657592321843947578065222206392789854733913406853956677059075471180901194281456742759706252272026517617349932123654950357738958204266711920124967259617917298857817938953645263649655403989760128394555363571128534568915790391762812413223095003699479161417355162054775692120280688163482126529363793703676336635854791632184527405992774855313540187552981964366920315274216885675903123612264790735524804483435091366366677462297166197978918792770574387288952382060956754089092851828061812177738964191590140218283559378785294350921294881337110398733236061211708390796711395618644612719048135786915434386621761946646769971820286452555707603371131071565285925981377894864687967097303789283213151283606263780533657406277772590499273178162148391353544466694034499743134435122362382138610943395622308768211608285408697523704369565178109657880584928498623720611167684603102937539651140901190330090411239318802355249832161334434456903801827596547883835748055579396512598582580730247514873197899991725627700290106438145880104508616262127849396749028195012585561567169967519728919418783001200733929544765669245807943467522973877550316319017395597676166833996551360523215733648549144306280620968123624242727775106730192318441963561331982042611403162099254444839891744792609084483815052080936706920939992947288007694340081111767363593195632659570466341709859896970685762641247871606654033394362649162973168843558453515870706868605827537141793542578086383726273082146703287519172014985112829104139725106415810240505546658121227795802841001617645631035741070958226595803583730826409387094756715783381673289981591464377984523180896570350086527627100250044837401334501302158225666789732024460286349756280362329450524677319559302659553403920617584038949385422084665452575382688714018635137275377525751069988946583604634019578448203890386387683323489887355067658042043839444941596526185120222242900139099070873009420000756970314678917765777694453310922022009374473280441026669725760448130978043270849760090342912786550228036241439665842037737443006501687850410374577783668419283074976051536657528575213866911702793088775861359749705664267376959075634229169842868545219232423615876496404097247772614834275873039790259762131550270580326359344920070746929773877812548120837897171331534143486996819012881183858811295937400699116754191917966736621226277812793910240271920389154724610595734413885416568168383038044559309145345695492909194285750584230609846832970827790509187152910964615884664459866582712453950345520832230303269169767584322181994054104112634420375766384699928621350300124587613898820697026672826472161191657972662562467031976447533807377146447529811082139325759090321132121048986990356562609107794026703778531413739235597597747211315178657798514328104902354880718658918212869197453124755290757957574873342212889188189884758901147328699335715331526000349052291079443199299330507664177774276391846459392277131040417295630363157089899319970276221720134127546307347416675749468924677361141744767654496045478906478049581292197357929115628473907390893723830217081482699933849484911678721403297320025842457652051575497677215036608394601315477029775248517053563068369553618136532915414329402214532658622175826379543030515618706370710490203809098216313097258494601720946497525553566008218535799000810343397516410492243357581877356135268394511785603239343388940698338959283176871255183048201023919183858575569490047146684836375835484942066856120242535278818840280909846844363762008387492584357185749845758053562889303931742266841261669609195594552008672881823022996703286090861508323923720101126920181433175668730047181656181224775679670446729232239944348540261310209661062474123388384557277871909958030266304202742261729896165616151412777718502236787541173438201944820930948848575785645037232708666162086087444059228894659818052146600234320919440887414577354185217437518225541936327281455027266078335301688339647298634362649772920105003452617858210539030304423701225615132855803699643981993742872026546846892095112465379178496215106683099106065467486385003279154867928529017156910153561226249031440836001339472310728294553310607932289682719201734429908446941047636718639594544868087844453147972535819464088653005881763153588378152878893875182449441214034851734689290993172989326557382626781737912931297258412604375486174641694441156888715855414066865637906593811138859085635339956476092390064252516494709911070917695026338881838316725689192991736898422178743980258370777828556431884367763791213654182207256995803187891862063401317412567106449517744752358223075995179546286930111723802674518285337794887003675953166354169832249444303513317516000041840316725112237173824074508896023955398692653764588304579091278244289259265240742852680251380369177859912022188065849594334573414617023921813512422700692714324178436391191769774405927789168666210882624960565199906234532132658384105691390258122272954093795455900109868813671927685011841602001907297745921069273246655151786387170408101133232427088491280515700305785216450312959615872475929164559897205041374885221096636719882882406670016122094879082726631680857573275109879147835603847302101764219182816696409716432525092178915794534836383339532644995069336740899329960801156037977117325241666318474778569042187361501086125002764572338005362224263285104325855683124295111008590619532708208948371160253589316506784258240091940725312287183815388607687830969769513813917470250250417440722604612571770911885154257627541376996628763002024045443461940802042904482306817435463999174543318757591374946900114253240079404358993180202654133384554147748019622122395833259910009740187495132924767162386573381844828835322048977364471197253633639369215130294492154022844634337169914934879746686354830942403297526150965272953917206939602119483731346129113369664189702602013634611128218631920858025037347586443345475645138892669702935104311473008393265218434074347119571658871446199282167314479496446236749343264569309646809950869454996826388904558230521475028394952750967596327278857326607849568663730900943461759105201903683453724786138886652061746941977588107001106970488584929576698972545172760147493745492046142452582168780176613894728587452608916815517995852159162164321390921188016797257625932479748847796216161955206196263407054955507120249029503346535214489432030285078604486368453542907091598132287374883946401043154231277699730904267497565912122144690984565267656758786686816836918749056461734087273359590800680101001866462166552463556784389134062264610839901705272266501348879677664162276117539953362966043369613429147053865373983198815854889851899907019731071956900330654046381065847503118153306277243762781375285881767242931292630997547560767285189436669658654096720663963334549463742685006216217406783218645380223046037882177540322305332250772105920129926313504221815561090877902415266654031263415442764669318591560918527371083595881842772042675999552005271529513943954523640256254491827391091817559726015486788145258329152930307325088029535205523685597194640368759986871081178736196754507409283582176553697548353586685413732121573598641637248229923586543998695329705352406223337107138969334537017612060106875042126066019849212458782655646390854646849831569064060575131324658825049209860745063576990376396467667929270825257224534916016921725006448896135843040184335028893276281437567114560667216304368447512941057997385732251437773732273755460152185861006202178878091245766494240305904859268920022915216793784749898951289472585821531608314371731697879500115040291103042713725425840406725794251267683152935286225203991030543370127572211655048389625363208236771229504310783248871611896996285323597645797754081631377335752893868548466192472332696580101043630143923484927507764585022909759621584275404705381535416790436609136778364741290317031600957159839453688281101676083456998432758941289904038393542748734871008976128440751170446523005257678298423938071681293737571715807243870851914807508183470377287216839551862329491295336761264990975409060692297362756946203612934488816421562427353507662736925627961253435645357334634886243780664844490167684784864284622721361906127493755182239794462011651825586515513297552635309779854301744016182463858879396851778219391924709735325428697425174378590066628937111656786291109649496366428072828478681321232420734905175074765312338220076667697569781334710818263805730327967387168771435077418195853346734479453738051296917559354919089455072263171817567420210348385292191128190459921784999736145110115738148408368124083311587909852909620602952657573747554011953036840598503868800518991866952588087766467753778443106031631199604275098285615269660181582697906470696257226408076163944089018281060149390677149914209084328704213571968370671971724761428082200954924265366498717255758086716843890060427945445971832357311626506916331553745294558767963255321692209349118424031867504647518295900436800064923106408095189321198000158823094502083438979631773942282672461525598227174071021042116928785548141873063787167772927667471320379829326006394412261218314669040940202091360904484899856773988445948018292348892392034676345820108169713260733643261800364873323087217466005280321714090617441832222055475683390956091704716470722742912868168751083500467263301723474618498823657803149277363472122675653863201589807723663207872294652035089863212433020594809208569854501743964702981789936620419957143980788150865667227707323385922340161113707539534688780361666817772354589012390991827483727128943337793831187757604874304743830809909648759925175378225142552641722104778553384648966388106369726957031998001934400318553001059375480756090623924165049133208064700770585966568547844146934959850987283632688077517629922974971728963935503624629637740468736376618384074274014260554408586731071928003908969994836080041490094460715137636091975057918422271074713599355149089714251640738845086783362296058031458700421655417168320006696541019121071434970000019638929887973527499242550808204422713172156853686572603101767076920617324826164200561148748482618532690638650039687023108526018526026336525940368142879184436621396067515629308035934128736888397155909524915121462214692226930648367460885371190045103994759899166879264853471968125716526889853199006735987326992549806410563528994136048484398768046111865186371079850376463941236901953219873348616803210182157691307463975049628914529605282318914524355434689989949716168671096116171114265323962822869133402560548024623386873026612265469772728879619598163692191661991126278597513603321204216795366731461779969907715192215992335955245299008887619848413598728069838627308740708755826322571154096595252939458837201013549430028717554690829696556629226251962202698476848548436608895108689610045281376068857476720653752356540471937162914855322650356763207958776565161595681174233686148675498488459871743374382909281897579364055705076210695654593910977409690750426189936123905795738572346019000253755564475646741851243520458525601092457832725734476423337385758269118451835969032917326870237171384685415839607862435453530860992800128285888762555211656997172125596815052915630567687259039980194325045530721314124813037208218538954596506744997816580588961919868382218449319474690276527277438047281592935310219075910061182560864708690887873521007578213865831425550620524969138556718818637952646739563905084849487302167511497916907157583160087850967631874893084000550586981833770948576142139451300189893662882675255189912577881762493236230866587028013621682778144845250835165606796129124834271568945377870950040878154028918417121665699908115124851611480765726931677592876676192952408361365484149671359929046262288096575571208529811392829293026599550425444765928077612896412966901748618363258116298704166127247829253887724849980984002498440290798293188030380438879356614389240303290603067763236586708124144999986706287119568825553334195116954308544785877120576877554980283889862098382493754832153260648906123037838184764851910014948841099040503021130915226879020369863762547200261529658950378367804661981975928909227975800785309219111998954800267053232168965622986906754638613529072363960993617620263405034008067032685547203049327366762899103881385789668379251951681216066200555451948551076825213846044156711915739894995041139279360351453123919725936477163554529360782611086841612309213593765613601806826327411028662519730000526805036191076306797152925225193800641907500460805879167282953787252425133592677496466088723873955359161112680708403556845941896131418886831983274737550301522086994656819975502824983395828711778873897028167619325888016493610581553396840938863489243543190229781999828956948408830187442281055000034158864807268057174980924487145146903520429193982481410376195659048198231184323102687047794251833787826587780207041479845770547893471940238294823554993864166599984207999556981770590985191915537494408863919341039991531216608745892564505917904268819427543058625433017300582969116216698310720253938890464876569256444462545654574195404403949245008605839657579062682054741990482568209887741146519727707732776721659521995722490580507430985234679306946856038006248736757758958561829732274783406088702131126786548405720247706267388972743193974136947089512272185839878255691094603309653110346511824123625842790743383291468923075664185600097626125087616819644055735394506150421375341706615199069143022491681786919920076240202366301188168776202418744823465567400606444269865143807348230490899170455415231599231321088328801633598386989733736533293830785015482791815708320451110841035795000118801897633234879597266215912850830911769290346141996414590765287583766863174818075115659939756189518435337204424221620278383354008886497852663422755365434470522346349706110564451301102953878705660456804802462866654583178385664786513984621970965790307542733811017185103498194087263689071913901414017893530687444583856546510858725858977765253559272071595450912057540006937416025161324596462028206704237197503664337027285699598359104316363204537772457571886786734042748212521844821369840206439801244164681995027043495662680669263617366737766992421787926338978487936193673673519946635837897542102409955211261196164748974442920695624871816095635819339687121864918511843589165970045679279493273300045780814583771154571082905580357348076557677823317361872981394683388156631134912345137185884252444329301464594238532285295149760850855203022756960133981207626691008288876770895242637577044802191888261274749800992053710117755054808607952308721948716031777875568157939290875716569869407779904098986037644040929890480196384320850442147158331833907567274820207052164464788453868230987043241534244463310945868331177411883951899836488055521144583369634565591504540692119733404688873848014714159613708903593373110522012878565134781525730956029989988307272891121733106060619880046150056365289180462580668340405642202288612352052042372174404285446007731807594494695320251310577626616974201849074327035566183065153825570005180156362953404016294822253519985111485678373056892621087039747918021315572975840284123487022455396694011228060627210696451662747582840877275938101641025302450666993456128064940457508647438055264023315780645466017601518277576037171099279076855729667735372891043061406414151272665986355880869303462219616238166617938497763501063119989643972165695475464952065842896039555755854465841425092331677419793064298654936305399590190143246806057444112212030634799476041994889478872489385695888715722207620363576546481083492479794264835785905214550028013413742076344039871526527541712918540766958332673585356399228476740479895698671261965950575831612811988705404307980442812285740073336918841805708398526349831895363947745530580883604342954476524980344659279490846588014153911945728321303255202777720687886831355083290206110382377020023589110615427920640668994308124918501358415373443648348118583257574237735778680325046554019298441927788313101444423730508653853745669756740336394320605464458240282445943615566080792377026171306344689050019403565445775705529130582474100029401693818809349824095175686074103970281448444425409373919218535215913697614057979382688976516442198386828564086412542750999009461623064167990733417946073332661200252337390062009596461583138850311230396597845819169167925966003762833974424094924902826470047471176437398471549852958384215864495446379812287957497632189288924550381109994559692804975941500903177524896999096554625652138999124828675831088817156153932945017722742609744387167271251813165334616216984437999179851817529905079933997295316951353399979701365002429484205303388860411446794339728479290632703966148870551077990675656039117780398071701448065169724255407321648719401670025896775986502404626915505881774090185526090874089003258329927137253759372824259794922809841184265082339141533443597093469223618066116269137538435399738876991116050406951256292063365854467131174032631839241051408629904164756232881604620134341797800291956332460750146609880147179966837302639691502929276146580369463821973201517978289877103026112267626258870457219504017012627411426956614685092917984873666946970547263653468374139371523133633890591357947863792550020525064710455908850437257418549017525342857177646835910183590724608222519843548943095947563462644266437919336000256293281270042452246767437260578647926734281264475976231624395263358904557389201979078204515168821339008204879236145709785938469619462274682339545483521295660641437410704861437854385198645591980265526733714707484657978981921962941042894879918644698082353922220991721845908401894070547025805589102868825517410189943554751764423547316862385790694684586884174351102891520383675361562483941459170506544576011130807451188531935436929843418975774575159861037969737696069489696942115538062806228838382063116905965392721056150359561279130316681562775650733356574991276774625241052816275296898953452858702800842029822034515916472805454917379089634757130748978433545408578380276948143634379474639561151825456479928237402153285829696581694015900685764367100914557815054637063351406369152934841129135900328433508076374336714122953295622054240380111277901084334872635281188236267383327857671536859262728432935529313106730368176750006122329892840361677605978016624190175235493162212718521900409488328115227082097804015179369682273880834449514692657498472924690235219804107270555015609670312419038977979709574558445077039079325548560597605366578103242363882000584142183786832748522386738782929040408732761850947515999097359890638187790299068698519014136043488214532653948080873502668111792530995096101883697062956398192531939766752978295909705729310508547115523944055072907141486143868702549281006062425100889687418383306728776166188182466266262637050685755028994927884256026979009791211119516195303139103199322368796475367133847417625518173832324935420535072269960832973535214552698788450408733997470626598390710146925438505015830995844781538310696099401707653609405550429483103444375489918244669722114363848540189456985105006282990043458237667950643547687983443527895982105107778157063630894694850836379429438558769457586000930973526566408634803439756912875087181896996101395118323095972142160506077422447234552986049404292183225482273652398529437634260737952804466455233328497680957635652582794758197461558742142571890809175116837661445480245466783006795502304843732488714545360253035178548142670403865900789996790077254260583933319250366230777405210085742509352724084501565740789728534803430455113467670386614474937823863773052952546117037949810970005211164738291965335238813239082912151733789317519937172175121008486234726958756885955037124731483775203159290745369382424389437281924151783235787772058726097472565477673079630009047332260581429386693265415575743931416552747256533737273607211471691402351382105057881400208751273940563588661805645926911218957492685780953988121958571223177792311330306783235163488290796854498928392294614654991348158780102147707202418800820447520192707439157886975927908377562422019742704276276635292753957306203819935383436077903737819608562472151755753637532112882403824956803956675377567522632168937737438690997953525384438561485432437338399804372094635340968934137776969507686306559499738999625163303739792000863146083450126627861113864643882186909063666038947944952589048356208578837101959767644456702920542168007152789176404378155998276650650693892769655081332621168719844677860387964012741139539635929494081740800166591931007780045241824427414704683502032346638372449925657285241014523065776386291714806301466948440626826617741774972034397309234956112337383305012256468257019783935743025248070997542838929389353993414258419456190803853310266596928797452963485841032943597169988882497228432951496874399776438968329542631228482291728842448925942023694282187509203422867707329818450800202680071465416072587774953806123434914476445282529052216103998442407223142819396094509056839949123193628299835307260778665470576765191217816101789667380443688332322848552655719632607223698306369832745062912150327661514538805664955135355183007184189126468684949010708178002899719778293127632018577304546454256101612641573253425164211827302266631972463113301865575799347982389131538779212176911291700237121698756980202752019900511725114652689911065376371372233744908698852746486928209668358807911204322033531535816283985867060474891513418873538858192180889659561432669802788213490739127937773167020923166211316749467114730824198135930218123435598525877521728731960673801093954979130769581391309273629550749330482781812101885608059194751552605953362678444649138937465310472049959320530398216861041913322805427011318222633033971718587802981997833542650360065891100410384072590385861101574070893206506948940168572127765876163080360324162103423535486991755750523675806102601035529409602893037964562345570185334790209998695767369217603484647856041383819787006653788348277649855798653764945668595762765988285838934661227947931054620182172126340619996151871691511613051334585726248560427255151653145933507882085747608313182519514830157857288045515572461556419428570272470875277855617963490676340587090944706196998985184883932293821678865258932142641294085681600128561003904105607779728765885205842585945543862776867537579789362016816542964958854317411455420914151857533059441310365153070864476237466479313287265309047278553397735172440122203577925896423019836818738409890390894726988523787919425202664144120307638884140082337472301500632110629054653659794796582170694510490585971976577260170156427231648835667040573098588470127704332589164234311527818223140718736988082183742812921512653034482082439848837130970095110744190323453961466767525619478827436228425533146994510278376941218418439362878643683212026672146643388289157728236397048169740515846904278206925969269145693056647182090403078760557244011656705256890965329358426173906889809439547730948467832941350114938250301772954806340242466625408305319574156480769057765533178115395261433848879017278365923921634381255899121889791478586098105503524264782309138504775010231187415111715639492081827567725685846130207213882476744781709852299646956612688007625191151366477784767571406544977109267446745296683760804169008485091287421662932148509380895897288759671434127668623113717000650754151945771261411309073165319788873103508803344023289960151839351306536306548832730959229864388247272313377780114340642822463669992061321508065593363495728800908366856381566761898856786568636171004227978423378366106458599180033732086530730352725911149650359404545738088041757107532200688670941996059104252585366343347806478081028787242119175305692169482703925335097897972301646191172275746079953948136866836164206248026141814105524275254677065324680702452216498938140105242048231903673053026772746815618658719972003509228102785877116538475881458309089628148898097008367026344518625490836106962858676758057718321277060006510075573598299876990646871951556735505291397298352020597299384402244864707680802449068922098271887156333317921650019915345395642404908154799341067417366288693761914035432381929100055926950393026577086264448388204188896296621004875715221441204754065882921003910988620727497930260385894079694543962386361252386282457609144849840390754159784872619494693613017670263115951384494793126925998088901556086750872617060623741616407640186851621787000838270883911848985750705788005121666112509395331536339820243031795695111569757644299233028061468020591789202902638989929331142746730778470022255357413882511260313837404641333866691594006059263844688036379482647265488888478090393182716372378923355317954119151043178750147441070909282120583773039954647376688582742593026509245835618877169509548268261044920040427866980156144220978424824959099237726494176768696174955172387900944225560762444529913672509241038630642710297198391234265917333005801381268514236415785099099670185835932521922135884985272038665189261059684468168072726515442550088098997056454160617702366129809424860498291577859286798571975102682163593448278356332585353476113469403754977383397301153908683771133877831196710906592390543683337578794043207862445338289726789517999397443475922326844730478826162268910307054276308672631317042217221569890324230514056947935391837190862282179823711154553300984848674012722797364201447924877475237250208273847619401122768370346760650541637923336914329291170259812249550864722224485381628939520023819552149317473667000629836617980095714210847790111977652169709476300467343649411409661091448100507494269519021467061078813342870662626466400490072897472236816328181014972563609043181814989793347884784416376105608311180542382599634240730225282090795911574741563787678785079997293830561607154303720857045754736430794733771994056083325519124197005123019229217720154856714836381565897226964415782799611136391100391291035222269241867723592050305313672512356859495481652328138092336396233551055896056404712124703031536081685755290710160103465745117890879685077767999692612090275365625768295328730846922118851343040734775283038338785411569855445514177880281307786253517244162956961382092058903926348120791681828345087229970860786634513908235953908728355852685929334959166143326572543753791775213083702276227224198506105368488602410005914037267131131815295474537971465212183486123715977444964193658668172365690365456635967164184791450601701689597372852045992181954194499995579619514613619375515658854031563471297857775174852854743021014633019354902839153545406667602513647346934473039240690097536974939504163004381482170483721328795171731338712559133286641506747987695464363234742301557291765832839411049280510591674275728040732274378355474398929028223442535882995067552140917788220333946022619623960729576415246601532256641571361805336347027702908187355612591983914742923258202095508476095518028815650886510723603560318846528634707590690045104911251549030388577121519750232128337540836610527916596211409132873521268092161518331318587726297024783692309917181498598536385153055699842009524093488649881346120937805131922794641967121970450076200457027538384720657359835955327602060090225759663884543182711907760593286775812885177273576080677710450114482001644350836106085055188412930684973422695218232424707159288456008247949432878964301735232280815877120171739435014614274211720010986786685217058151085670942747356457609611556284431330869257231308881936462615371674795531355229397755418087086175073117727359972689040686064752864477765120708745254526017523688253313630811405524100318581280348611416498976489678623146429940906420891066526307824539982677522909834310999240173364445693156940286109086915336537351252139397577823470033023581825576164318712616354793557003575623246983967651857324035134903095273167837486955813091388181355285137689278029414500788764741568067068576260122192738145788878852558778167002621477352589490198607708132978056670150413746627342254995624280109969097504103255337761401446237543705093582553417076207204403418971204890384423040956958752485139832814579260640821737066203937040450227256157616766689604535621274886065111169452436095850376752797951123360953300669211569627923871983982185855851978254849418070074733044521975109726211188449007695447876780474796130710396230576900566449964894426967569107937942230847546847601433548218647996995016165477288597158854616776231510746979442668406476345667015397475013815793593171396378497263577013010172475288601019748904401536696180839191683567973390750672454517532288631722174991040742326861768636931975278589954229141536986908469417743159290666253794379610550508638434020228572897711125838841796182608787192056353212959430355479736903903910313539317941687545582798347657509961407629673431189950211077153697705747436949751943506901787818802469939013168262719043963832404919765311394126751742627367510330084272285313058448381394449311555051321639503564788547067969970510025559119986464991323322069377927429716120018303537874546702809106281309157337735746747972675481624596693267608398377107731402980310352738827771278425509486480947057029327224972361371669771014376305649898835703978527066468236678235284140560153382398845704756505665507370268858390084535394017199612049783765195591865099351039956869870997291026444440549472632134410455384768509898400017043433045524957523850233947220451543049420318987357714922669321855813270696964692346157535332333930360596671999210883561649517013733998987765382211508289720928286250643299140326640865946123292244508080767307384972786467876230143700192884113315414112973321437369964792312508957242743823372375867712889599908171874222083141042600479523026626679274074529493661796864459098814372840312998348885699619189591662825008902001979311491388440450548605670806005232019192340124056473308067185875106543963887409763701247733636643141138564493578186264249660089350549212195933412267689216406301862604371052092049059955821445424200942229229444956274540890058171601578671157553833076899699111178674759258038465068305333463491788853714238775829279257399240665004023146390981631694380105279343099685916131647298146267458940866896999050597638235866895671906185760920808008774535151118670792857079977192537150276197441925621213126446531062509494803323250379440214037699806828124708957062237184347637352593975454045020353469913956827155149849160178860196933105626127426777474798507215264953282274711868676568998274968495784815153847197306557156751068460546579669736812729646812848779941877843133836859060914323891109105815229503287310026934033267366859114898461589832424809925542379653461771563609382788411053838815301950020723580998726098579945739471659131591299875208536951018554032099546470580283551234960693056698897349537481736573207537170750367104237503364686943507862813530010486980039679419114635511048606501246429678632735383367854111955496848599340061990040214323758945490253047276845621429892761395907927466084257837924053592265873055588942941920558402257804201672313287192733149156161552507546106701537210045511882562926778138680209920680527072056584720121600482756795000027633162857175588677768346376665834439062521899667673272875394951519421832502527939858699997387337815822126218636826659114805544953321445035291021040221411140029462158674567534665466365140084736146120294305406990979317241899953383655036065001041176129646970970603683020387385227306599708818299454433341778442582128170656910424682973081780739979193373731795858235186694619592760515040442885360258873723964524903744203996043599256540412027543103270332567692575690505616329630224512430939604565093427620105629941719965753753248642414608589896927267917509787851472186598133544385516345815973859920435523836203087855119300814082314634451768674775830678262405560139536741773402331695407398050513520439841935987301906897485978621668390270623529702477359415508336028700317168223041329643305927493310900543201651002525438518193114465439553370222806274337719345887685095003528775692541170517012608133250435295985177837626409710563126166814549928540955484637907538157785026501166661430694045920384095632682096194715753356890294566742552885892042711169195786077070519658405670652660706626642211356499313548391551109825662505217429905868551780660415132141018956028254377444336334534008940416651071107653767982652423178511772535095910881670658184649821349525352832471153184818436037174353432246919164197866424920519763532751868515740962834044135844503919714548305216909328078245412719645771755890588668949900351955013329404944105914741385561704672571189639024244012418716822631457842146257726302764446099344966048770621392802799508203902402651491644318734786479347869989237769433010494799990203335990511312876632118380547788246647653146877637552066668838550504799290521886566891051109334963272679783515410505475385957359909950119814891307962097980399632233660859529538628975488809849156920563905431240149704533635647153774937458864428384556826655289545867363864441656745255182908139866351389538184027628421905718049275453807535787080153818514895013086654665969381707345956709285128289166625864816156544018039950900819204429733607461721166836827833008765838769818433138333608323003311779902958800152216463958136888747820174005607047511125721394142592539658610917851202758595810320937117737758220289323250660727517389708557666609850784449617409332850334681458555611374960472286109745149205292927251315191783440933404503360265846069542012649878603829248443780168309626411143349380842518103779786851833216433912398323683674074656345891996338600859636840322797361587479029325143044756213741268110772384475511245521267692854048973379585413897328327240039347259611050048722461959107883847013477491604037871939518856170364836419570068084603903973805202552091763485291542320295054457535932266965148459860465654800490190402668846235106801153488377603051578490243202582082212239865905331752149635689554594573999852427973236919762649395354122145825334793883004159754429079176090228875215623229960430444556568934421871668210314322596140914988821724923441661181274337092801872952339124181723969012557778996607058178232609715496523651615607231270626037699943504477160122263162699351684804398982918821053183216588389473548047554140613830346306336711650026415699229722737099154013055971542803999641366334596124817141977682051841800282707053720513444069125627926564274840081390165731476763913332600826020286861513577210560945591354984205733109899694687913820945035560936442930087087421749484000614978632180270373421781399131820099050911497536189804346257602620153679244337729835296850981076868689442904275956929267200248532769009568175225273926222303831801708861003627779142723705344103519428983900755105185885781353141393653914776242860320119606328738783066990159746458318831483721209841474353809089773725530389020733143031925369027794031819140097106670983668918402375351039208785760675723118618553375102120154983729124839475640199482054327666419573899931051056095683545127364318992918556541023911428573334899727710875123988478786286170786536347114053846310772659151371805145948538789983526699175225732616210023954192419688425901339357339717572569515303929009259426224845320123824999330461073627354771906107737177907794211803762739574871416985998103059076424228448322625272307048827083980979780023493013274656467621904656573142324697190598761625466868242084968477738636187527144364410196554627492124236435785997847974692279167478002258106854552508137434063231565284918077248399619208639737415058547235864954850780618948141603977470641399350900384196745512616018931297069924057780191680894244886890954492715167624974177132986327256290934437549883104071046334963240340218464804105036589547949457632615562886086678603078600621854699071464610682108895322903622350691379152525289557969166289791483648082999848325535869940144996980559815401150503165403795588724767235006730379011766585491781768338799117331484421795593351117046557278615112569561821915260441450903204260953245489543472428507580991261619975325241882348196570555041943432192799272696367112006168548215149801451825799414436698014765683308200499710807593605637765171843472600079019314271534138914269279251173436127734366429062958108151681229088299667820417619743071408305692181969371625896497645490017962133622677367730236438100656400197995759045439914032686536410032842380090594186271794994698192047479770768411087438207389785453210987287113950118735163011854863752551877902492414346198152853737677527871596281640616555829649011706884034640121987718067711665443584803961245794425311464930990690516871329943426121758434776626425716907084637941613271205753914850895857270271878969204139199259848112040718458465128405147594700416695593827124117682240213075295592376034925314267087626149607684323846270911966046301197225044932202516438584372751460682456215755311658362382923967199283857313554708559828123395916503728240754664817546809065074592189048970589298880353119606817475479421917052474634258937601093180467966308747891569743346059934169463911673574914849597541042700864537202023231221211959222101484293215320142308382566240474065499026418597367663988053330734238985933428170594979007037698948941928698838609069484475047751027988474147129958647225390492219643874447180689947094666912095981253403923477909934024784119139491783983359777553833268752910548683769702989253750059450478778941369125354569183539794334326182243768001725425730762442895996759183452243843139583981995055473815402270260470474437117279791150145609059077111293704402479093045513922987055622859717145468885408672256992887947054429887976482208651777052973512450733659237285365255264386165981792938680535765163107431469656621485778162072765202145413245744787635049916079381058954142693300129335200037282999478022324143332654934036790304487407394160281055976095637503949203012565004378848695706691404078394373727498693464468477711277249229442357380777771669624573093778937731455592513251922369480979579590256268520245478068142235898165552772780413367713171321091783185154459239155677402141634030322602330200238981356915841189870886901358063413370020642058495016988600552382721471224096995362194658692233175052834773285613219974115604645969960177957104541261577300306408943100720340037950260114531211264943352900136795658706046390292684358191167646273876350817978919798395920373932762690970612831589726596173982917998194245991337147643448731255357270855039805832746587716172737425439770843147526051933279929721647418431334990688987816662436071949571790722708908635760920548326444567950708437827411533143612256034180695950298972129722360522025399422424561791028101473315231811794749162219306698264158901419960007948727590063258864103083485985969603276980672650274861395207037845941568712879596809897824385493054458409132104932242935999237079257620189973940115910405253696461125258561623302490560340127402494552112000308659831528755631516544489431827114233783044213839658565303419156628314390968078222848635348655881285204095788128017632011341265687202943469500840426746879336522199051200368860313400203024948882572549628984841657569842091140944306748021868006212620712057230783060740168332361004187044566953083929361581706203364175895476535249481216713848982828049694263673176555510223191368616060343854360580087930727230305619935705530706285133066448118180643903810870437272605896272594339051413051536226653528764090241707792366506643955617791455848667587430883543394620252067705168383077078943148419529938095410746514993964481593466569753669078502290837288797781416097959702772521327543034791035802554798542224809205645286722103498550949199862526789508774709787939630130295706433877315859888284152872029323109793669461293377268871291086081393673811425665680971648779963914778866515492187097509670501687775349894832057682389439367097293407455441657270855611401812226969564639131036914683951696315418511643280748725923899703744171838142242230451508727596028464484520737521868682848307668684896975099926724528322782321145262373066521004306686156085892655600931359420451278354958336575704861148349460946230560567028429957853153560376485537865933241437076531914582026741984744935081847611164580895466950022379271626980835867112431550774927164445887226337881980770821118508619295423379145576558497419410702723869766360643939324486817913225309256070819711047231208991265734916905851917008785138736640401110636915912745158772718579880844316400393024666112051976292816457338266096405035656741383740353754317797012927689204506129276056038487338546762011256602549816903539611828493739459076846771427221358325885278393486191988880112550496048397969762814918111465079753601893186513130459104010569678332382533612434580250179663007469573131598796003350012036591971538918648199428303147051981412590002786952056514787339232788806121376667168466015739417411850398174548679120520251753054341856253215321398445267208549117351161311486997252224180508101887434508922129722369417530507350162249993644479777197023153397205104694909476153477153570050964382858041877708969946728111520404155397293186620528746392182499506886691652836464466954035477444992321616625319757523557844447461380051358726775366556992523770160473224819377802383777638398654773170959689496856672955520540026729658425196524329726204480918206910970464998836117151332961442200964558351712741299846818869997140309737779097315285599879289936184575195856465742391940420148303545761302465854426172970340652207838412522584263178686198227586413307230941547130404199039864707207527806479422832736483437939509054717001371117929659717174513828555697597431684258877729028641147190431919232992728736199196229723962966373767807622579869666095838945167586208093899921187820777247211968068085275627661589784377202668486998420180103042334019757959582831528362037463878390360944921815808979189173257621018230905722158794112831401828351474885819231109828398023835367817903572583219202093594453350452712831042913121561383828412542304848001869349767672480571428128321138823272537646632231800593930402200103406469544437562005295064282687665912058015020112052737254148741843600367591306563923762716178757591766324951568412128660777528072181182024755567434727939498709316137316825503833187154479596646922734869341407694645439703828684803730265789841436409728606940923524400424913079933740450394512791417949254180464869833644730572710508857284957491811882843465668647550249841070080795753010962459454115676512593260471011261106327013712312360899421002039159873465412133918420461571646722979753895367075791068321150821086631297944746501074880760254277347528393832288195864842226083409292400830698306548833638880811963997653287359973954723178230563874903515510547518412385405899297145147181423066760897428396405358753466709181198314306316978630924307461202166181801116151697859926228822654447755427870508109194202207735188348994666583189017656168521897650073637122371803306856212786928853461514036920906411887702738297697261348100145928117679582408602397764803711070272896041537747462437645745754047962578354702711409809685290092431044983757344112710427701602968315300941445270791989012975741011256923569515291694908653936725108768235918000420096882409292900170496557289036522626271725250355653292835875984693966138582204875742859281551777454735002082166015686774224008711580829292961048949614825432105145832128899247576261937055847175440296059784179070073684090605436164128819399540573618867059723832362026710591683926652994371241087254470680514686863904213806792690913244325486303286435457055168599713433408213671184238268027135770687785480221576234542019928025892948743598331671962749568063674145787162847577033590294204544389639001579291589238895387474334082913697404858062548794993213579345906656450956928980704104702735785042422558281633116545756484669462731082444199764255860617533161990637327849512089084298586263327818100121580531798379346639773205863731400104664871641366503220614298117858557126140952365614597178739324588025188457522791616654442069153892976831562920591158980265858987908682034683059508557354374271442383474131510909429103907663749304632662696188968658684061181612198131999626753595792948157505321323850937005046009066564251528669585140914395733205330512848489120985942497071182103536955657425400356899852007622781653552342556455996260463852283697189662389490325252433464117017607689969847242897587036148465540164730973093890129893303023330894136174981268933884891804678383944643506110763224617824322711032996675526321662801884262649434576787717659055057166648831879631255007307644721427607990069236048874841094340571216225530101654621152677033972703925540988253538695121385965818767705387122350056214341031300641212639402277394444899967836663899527073945433815839086200310316615203532002990245243482795908253519223670596749172061050099671328612654109000862051902691264747549649030529216454349166859096102597941254935539765620395355587979976647892645003555514763388200421255623628827206811325841590468498742290590090909846507226523346233122077965934824596347326056190190732864159992175111212309307650876671949415586711174233212668483179405022540947910873708048350777585869510969713067369126602750683320089396453565854604597622123181519103235913542061071147668439651336899082808351720592241031886586063577133984135518193787305213176716059820057328084676172858899385109612696770474298442112692910262506669348380481598233145089333081367531193175042904406732637902778556803665207611472177236867818188693927891586347850200638699824602512487130144491712804887214890810213524379947589121286411836287781784286959931769506614989931500777737250507040909296710208868196681022530856213901081923970212619411722535752234568532097355339536694675594792696608094212741839100357886527010030507204863285264432613891108851782587257270377308920409062191589240625440553065055468847243377737220461593837223898351117389829326673767907583687130017368199134513906779138706408505417803198870775248739067340174211068951712115064353361107912363281742166047611416384163786195828138973655133149464845613947021815214920553156399823679773254122323430696689886330504294304898469980030720358357645020922204490946128665259913539205636507795317055884631725157373182653698480355962601826453537185764078780430347332898179195161677132446896547610238383476879836666885541275853996405136763013164846582764281724055300171016709955556399470855402943824501417186715786087690780366865553695494595487348870925157353711677990851090423040046263247878282833393120429005070160863934983871628344435693628546225047733518529399356896107719870957828269031250709380397808628695549095285235808857441997799350320277659213863741372835191299000350071407850870551935080488024614802412300198828581391475105172375019973369243090990522524222634054730722184890302330079526891520343573637379211584711705817366240713088799205622685887295921120618401987087849393715849206023979864825765318398265663044542426161216763499903834262212751308284800656702667336376667573651875358832759530793108049377253482735799425508745591507530081805003847703116752758393123989461021402209399703736485344671719575343622563809277064758013377051772762742950934095274295282008822632125850167309655244108098281255887689291641757160935876657374935477547628868975580507233610623949445525677599891541074473357248328228221090127162092654998853479837667444780900069860452206145826570665532878224299684264600865064971881783341670807172590267541243186336001865428549822188419631437178830496735048551222870159628538943920823219939535542809140614779327505250765934641507889603156320719796947080296342333327313181474543658652659846695933576568486323576818184731137739033725927501237605944874244666053203762271531941924200350812803080988526827835498614160604591219534060777866449375519850158946101568359762973135240025286517101779794749471422555272414134866908599488380591405686929595469068227206854635501689901187384246383608442186117728639033137610285843237766312711976627436587551178896584227099203348619403736000176308753995096981011360589925641753320894121249500663514531287656775208802062665768889154084047208859267596463460001937368391258538860490163438167330167335341602589809750321554242538056265494208475753211170715384291343305914374957915020188878842965804690599742967966615339112417997775436612031792778986871368449226255483066920298070996479566395384243415713375955464948524589059802454587351136963421636394207386062585322986517859336938190619040582057499079124976541749535614263332473922712204162449713628254302076772094796043426071766595717532975817388537172424139676789543168710684939033279506601885342952330894720509613878533133301904170679357637504901560735297740235457523348030580356939535069781837102654649768871681001350146464711096877058235160044776847545113662612760329689313249274229736470619108771600513391504214947810174188944840769239417042800674330484179925253017910800485533523467919193861563528905521462427094847280243814376710418424413711826586366868411490876859697315841797790594048374521951297319164094406388593006623126841962536695978098802709744272961596608349613764689954349285880283648255911929616015278091007192689861362159812806374346254611910784349651033607567526880998041502853148501432179341106636955274386319243983654234678357063253359934125817742229338281193598113528928276259879981639821615118026930932394412426523651091597843832091856660982900682411147578046171624340867242918694694708998044017941620684258744272201817339814715186025182432323539760338573290868733978543512193235247092436227074028313246998249495025074711621472734190447305124612373609923392292901013306741914038656875061107103846502570979876129580381145377330077998847145516087924012503831392687050897892937160342926452481552991903866107383077436128000289454641106814678686797664002729741021991424178763542618573046695611282523336022185017722941195187961453351239163264461699332274663567987916132721686382163604437342962265533794705192490322745867316671002890035626731002903327957506700192553492356296034618300174188858191201596931501054000295511304110939402354051869902467328327611212862563343813114298700207273686047874341466531198186637228497611434597005811382235298632915881284449899214266667451117602361754809232892936287063754292876747777700349572001291750516612750678780489569868087058463545588356838145581953795472234022319648134359896294551019756761005392629281514168343084975632238405137326130832270708676440144244067497112168617852458242091153421258246847357642227212174512254351357924991422790392627584587216730173192635974322772851999726681996472834467763311176657470397078835797869525482240241147040599793568897606666821801082471000949457823868231767491319510661170802339345966077920082592632034692962941907458817446567967916709777986681906975315291793635058437709311139867219310933600476864429883720315243837324691382810308424496126601833600885210858838716081361847155746551140716495629232858144259542603931433676320780667271576605917782715665573357342931615817864545285951377221115037368750799938513314578331444644955738715021084143003739802612332686380415232272829659675185255052630220679615167828053677593835630199326235083337591186665074179228538200093262711454379265985334844591750378284179376530274713938642098200739119888114775412191154599712189189045088532079914573508746500074110880211297579410737970935051264940302659163783129149325092281370314444538519007742536616220230351792421084447403353220988016397538125501337565385612776414796355078884689784249533727748601642450153843779575507964082734135272849512982960135458120051246732900137114987813141810738541434630382439763462450746260639905456911420763828595705822749697741599021240290295875401162897550594422792080387608486107638003996583518831190539519241761985032102018508272074859174163216171338209671147275767231340417702101010460332433353531740425148403557883736986209255034708507930662321873328472931084535949350563402849461534626545219142556897713046759551805223146007951300737462019784234987385636223245482779109126015456638078035596782117860030873085325041845891640640735555194959277341826420457319077746855874262503857720624248352849383626199502024314150740899904384869555490632545433403093751631203915108298713706436698118207329052201035609803703564869391906344838931258628830109173918688816548936712648725765321743122509848325149897234825887623215447221070963480748311716316291804769415768671863504574016394713688260270806853036028655417276208306249445865296028597061462874723262835252724353985657197322217546941918101843457121317900837465525053215340314503400130286914359033719080808390251900140922930594359502429837381995099620722488677501966138535928323401680993385540430676720795586460343902870150198408497690367406454327481024235602460936784253664678940352234690966607019438209699335234764587497711944427690926259121470347702834453141439380072427776079709808063742028292282229844978432023663946666895914688236400600142121129015293237740379827540085782264560486273935458204586690539440186998165047741579132670904705045781894943142747554911383045078529212433263049041246198342948996893182938827453534867007836075902998957053852508465373529252250035269819313193772084093994699712156413480726101615957732050626031305630966107340821990149275807908344827904663498094927603411494748335280670444489316287509489226132036785176876135248357398312810250928644040156987881925196033463389147013072492803535625563525496568624782752777260362024442255378703762736043910822299580976027099189975581285595278308947220759260582506960179182485459037413145218570051647034959409666763250638107672637000584661374556897187943404982788180969669174776183066065125306490273930919826365653537146911768186546874804481157456209916038105182732835206884153391620487696068950425372008479615577324819020221281322688494806104593663808016398486429678046544112269603595104576500155628535747170594958404739582801160128294829184427866121787051423024071130568642299738523685353897309284771154890426565243038512915120613870742132522158730827612890956410875465479087253029503958107110882681163636658793981756763713493603684975111901477128549258902931351922761266426229432586792238536404534129229218145644033750916440086399231064584317710341882510442216323740614525842484026525060349745395595797035213864972897420294921726967953162938150143560399113403631749467629661319579988854909551948902815207144032312495377726632937973826724935923543206235911072835215163831362674941900228060531977315158986204934478391372676535081799323757785541154674860210340303885010791887653567790016354798187384818410968128154218551460999083549270752742124203342557469092575928619484977433773012084258958235623361653247589457454438614426980196636926638022487400363425437604563511588150407239706119443512188778505093057403722916718934349416974813707645598762162382790514923491812709485045483203109092578122906532571581460598455007022511233661543026384085084297838415616391755629679126017942557025685209269075567452038441214788385605093387206700736069897748083659828706130778325557084134514549980034195073079541724240741767981417934404829685088220421489633323556291448562576323331264199080286848864305638730055500113522027399505472416469529211663829806276206820887624803207264558098628130803101916195022516841943098008913479904608891859943882306935799160852637900294503641089642522050603275022702652543826770484089493110397999308546677489360399248220793801509588945877653683409055818220989598544560343654024315999069649862376941121175871630668888435633121808300897086727304782731892013580538600563541294429452089468225810628691375255130975772213805189152066020744340097087383234260040455530241688626930998315497091947493608345787416736299494124114310214624150311509214559830703242147204678891420000434636299023939021918537445920117936739089926956524165569596342553531484880417436731069485949119531901113275853421346709746044848677907534106148322524610483562881019183393553950810158299972319507691010909015647013260980636399053288560267970577998266329461304530837333281074378081245200619765548702397359914509991786177573758319871575831613931306331504618086089984536860647207527574551243825164190399695918088720089785684910994592760112184810749293789457353895512231703934030704415936678262262984887425300432939920974112018124366088370956438520769055604860154285861098291201727479860024337677643587570111322071464101352842420803986303576965424373447537233336787263904878413078189614800019418555398490368001475213198151268699577721802415783639485532222792657427236804723446090891170042375044020020643726559904346132300237740819694408305854662013876976976046599312757058110202921341347052938190499476255652475617824155462589445346580446471334929226219142505816093034849350192709199715189621743184507583678339159704325359469931209598141379420142362597715082627161850387199064162169504671935097486536373640675320975986487338200378317025879121829943804284390112493118155581340914614237263358218122410061668994896422521769157426016322376491283484414196374000328748527360807560482255997578291736712325941915892996555530449326999066696524685062709893238787957206516895967797964927149269493392662030555324336001679781131116603285802341476652477631237822577935248585640973466219849942271054238523058565187449447810804234469453704154358654360200002734968128707055212943674008685435937348962245094207314585277634054804774382862678143670964400669292156680319619918316759049226186667100813482573840385060670696268261985653336077391834285175913032889468605267740309743304202967760258235697279126842774466518086170000732479063246311191447972632542443976880708067611555688370318106820569451620762711362497683561247443051596006770971731632319712108856640013548397850314281006587418830647615091451937666178120905950847029760283825258478045127731928717921478757955453361828549072236308124753003134651498241134221144797670198701731667662588517007373679311155472095777578803015086443815833884091390974685804314107278759322293807973450750291984491196037663808064636536125943328332996319870361061632502157075305787763187918388520779227156813971243436521680809465011770126366544821410137571602887024832898876370017580973892430625376343222720138280591605768518994457469638281961327450865985955209739309943216830199218979361869406463783720195874378358822074706557264226328773904177225048319723255712571859011966223436357671461926276682608150603747171563294982512856237259698208207693788234740230058704722045147466521577891640081626251500336187626253069855872960728684950992996761994314573588159321466648361765413249274497980277938829538278769447300022989401163386511148533089124846516712975341181690760900204354692763316751874736863639870720018378828438373456898164610616810542567841844005107130455986785877725128674680655084574803695418716375724074026768916651352935533389635821926920573410723034840585736727871045934051581880980767659959146886242793576190383990482226139507134834097381143708429983498310579087415901487657268132793834552442976908952426694767759557406131771152129635007155403126247626037605093740145666128910632545025384532532860065838514642661383227232594510637863138362747459656485293724173247640811839673297148658501731949150406121396158974091109069484735653125216705391556281466512148568656294475408606975098610369774604163162675919919310718655275255171908739903541773881949781179224290373971446283109506126782183423784104199985629305350806555832433515416476211892737014944897410922984431984582928922157706637315654404177644649763584581315533638246019737046921355609236646444219424523508086162285162897995131876949496780734043450051964674708963559382604079682820325487277543584473561177056922023864214695021833675301150616544816923809046776411279063294074785481954691124825158405966045384657045998055384838099875936555480579354119007454383724090466916488782514887246419529448009837202680015982400447352906762029156730626522060879092708493053507799454980689652461291166090720536890292882387749872776111809744701972148981616018471935154413477235932887214249028674293728472198958994113267676143549606889582294648233653728865173142519557300666597864134212072588023121796431280167116216430901994017493420895277690799277849888944273827568113456422062844064097702535618550455007781477014605315372658144496777193196909079046276391236358676845732556228243838632619675072167517390130783773856535590864424164550366445216298260768411451311637013759795218484307795294721427181782788371259566819141796093539463105609037144118155214685559547912530206045664443818806882986404590711500906961685560479557214872451285714805881884611967955216990840735359103172662331694985929562210696480377218301319762590143924273565168918653322057319783833818647497663782580020524887173548086379501314039497260457489651259865869603754131584222267500999961654594754949567475054166998084362397465319125894784191973076523134919394134973095813827506835707166797129726742704364221432085582157822433808086036591856522870181502322484398085943970412215406982556184118798961363922787877078398742876948412840937422818284188504204323046476086145470662806388358410622563702616916022062349019431510131977500721627924488462534228562201155900876054143997455904648600103434039944141124957665408052486766146201631790024239873381668862382971528069696678696096580974562357852272764111701342435445573676272378882940002542248105672298605636778681133591025940501238755659593615888257218500960732678150411389596636861400399816328443507953359235851934625698776577488142573931990227270379412998183629649869478057382535910263516605782084356581360382428128253961312113063191582541280242266911306505987961459709042486855503595110284625217618316254747928705539070898624644954817866800885216771414478961637016295357358056619293573846691202063669963587038948669416991233617342858722930536211584706229412845940168176097748879406379443645518460370660938488342545837616636236425867920642494648625650334233232934572790150043773224441272488019023775606743999572428375449003803964415595399730921512561505311342231818060456301486570184649079804822064272914768446701330146643392225920185159875154093824451907463186867655351095201334104836454005111750197931802932405383138930021835848527210226739609652332249840434278990226362909862104577774024331326565067342849979850137143121139310648888288026161360865642880938470725019847997717263845987790907925827118993393314420063219286323355382060509005065552122070698774279004024359295791092269417619795268462184315415754704060426031323598697031808807670859464656677053629712426672015399448678952883667502394650863018965459704634562970695329531850790143430681976946108262406440820315348106235740907095077161889023676922516842896287833247937053845564517472119995918106006417729944668489918254155979608600774865870175774671427356009097016858859553620977688049242381021953778120104154164650947050414170342466925642179276953477539685611423771138761030398158397236981064589528529507618101708833117379698111798759266998360340052536656427932508063233505356985777051150597582322885067965811803136078997090000757046062167111511893728493767036200354438505887651922259241682619662011309092224091921146302436575868524192831138713586068970299745703510666321390175606095844580630275985348862469469402122584322514881376441421448989045679757707974321202980229227803684343016007607092864175975165859998328379112231212689825095791250035743331735505899704837599902320319825080519690814664057146800366945806294562958004730988566228512744313763977338546769167183780289061882642045187065804648377415565178890226611485887240335750676257096421680675496942447566506568821824932999972430572850012193189746708354490286653980411092048464505272615192452396279997514269412192766338515473005018069807294436223432944133876035096653205439929516655255402068976080423472582839266515846119575605890760197045662683903710933831898675613774546061455947101996515315233371396525368896921076707100554874980767147724394533115142693240708808115311435479731511462526313669912906321673349698777773713916998000661299102604172773824579092456637134600437509167165646284657405173635741888517980939480105990747692045480127563357181710725642182918574985734076962424546486279520909991097505729210668441120360530466884039268645382691474149858661869894997046663609190659481200360862406673225451089800452233942166541543131347991411914407436029530641057587813026666688373598655524146516869480264485050844534592937425251796976268797599002337005278116576353173265907584448085021051829779193555338178596854716500248353492441286571904594602034462566663401644063236270746956005099910381564850602514719839522534388866131355902773335270945338010292588536161616580308039509063352389249155753339219728479162830050923194169022076854240487887381980889699265064782867416846768465152389951801849174970932337637877035174235822823544494653605027154935228078553362517863147354297428102181656309215622257341837266442588444316822663481247634905319659054613311592265680488417959871168196631278054115942283672193400661273956851342082245344303856263503959933268542207731774106212393950686445060102475882205839872906573285419054156229607124747014306032131431357408145398383179541520172392618570201281737895265785730154499849479184385529256427265836769078479458771392945609231772124280661044104445136245153064358591499388438720507485361649456475996799467284429745906098175435122145415907259065759703025408148451536117742503886714327772585220661949346576335211659015291266118746494531255746146456430663669278202639242150391995579092893918037243767762967392454392610910786582328423370004387194528568648928888064073187638591843803999090881965200811060726889218930915419305658473420158119198484328757105098401121818841209503713323701548605863083497894768415296682056875913206052539069814333005294322226583194058226239044605410333281836336643649350614610559905771269401456484248082818916714356634787608955906892356089769396436569133753239336924125608604436671317550645899436774281723615990690638161524660674493507219042975776046975229771816198179724074040297881075689877587974363056870757165524672358436902692074148573480434288655062452577410467631441074827355251035971270313351650348939041567444715293477096244876466321471527548702077917368225037287461365913598551791831225627276180803808231496766084472125866163287262032662796537950337169575283626917094331038125922224042404078080928951143358339501930125038790418717408853361843511372394477700422352461215536655490049986129482828744120959642478004113299656426136296237754553533652973571783992139812569349287429182078919242261884699232331096726567195933230287114275348027838340426218532347178324337609587347904405080497080700239706557585772860016461073450365670560852288055816543602929473136511745731930225537697398787676773670831649261956189407325497633757595545511460043439513273273852809068082654245359524913906351901670526697471067053675541730614592022069740092591981358535770175793080400458924630560769644098650992798785213008613530163981112703188396320800410984705108253202731629407331638036487968463789428074290729036212002419485187645169618694538390308473191748745914582837593334296334298493520733115565450337274028463263197002123023365572867316442669036146430450737422603164933943184658123019574113320008922730249960620642388506441484463994643233905210399608282164687230751913426916145457534616437617293401435072673002842488146068463091228752603735602301524104457048529210151075248194504484184896246652216705871971287529647792420219168273151322992502945747698752281870097652660024968045736772657637498407859694795249890526641224543736545460172126362685635354935105516271316821652433558686332752440366180645365862969781615817656509229017600352047719705471329946370763954236448100677553851594414743354084883968222812249537950960346894004041411281822916702830270720206936264192090104842795560634831492218498772862391087609303436513701015229666351284862335855286338604347310319167375701624572917775110652851819719662301128875929313994684989658551187531080845304193015673230151329579247715860393579692759269608520417240186744994608667402856683070567532677233288097867148815062061281490419186242215585810879806317730759700758581233136826852877167531092638533041734195303647871438545961077409428049967399796247882227459788243804172367534031688846257729478100229730909786210410269942271070421240048184009359719233704124209040596581594629916828405550174549754085306642980481350981754107182684623021151913178082742411443420859112831370834301495566545022382448310869480544682315404190705648870353003463196519378935954360406542841552879303772136535326863092440397105537526298572089478488305863080463640469480652559690959034385701427895662587944922809731539616094481605807904813950854882653393408914441468983405641372116991220282547218237111442449360829612721793650210855399067918195192451940160664196835451817750928095879654730332564463187703908967268680303478138100635939367908043573499331278935695565557861859713993387757150878391835550855906279373978118730965978022860771354423851321132972227117109905709222361334424563618175157086869774064919075084794591566036955484002198559528710195843928030625289345096668249735160613513160426483785760210266733038866665901013503574496264282707967919658595570004204289398161246538203006999917942793650009102369496878265518003010529612159471220358538421127089151982922876675644923779687368253702913576323034256405721936390936918230942389873712929337151421209453264537965780065237798209068661519685659885150369761226268663670707704427713739073974191730262767425064764074160419427640126005977481936991887207638070228120454833628032439714387962944892566440262163438511606002049581882474489711808418112807681357875784618705543575813737317479448853759904407518580013959201058368582562615194836621523054463346851821152424973330904568858643097938044885509479069730426973299892388502031953880301211253933537732716452156674973942044487548913815504934635707219688368094321570413987424335255019917407998848622454741409181168091868757254876849816544918223287317578587169399579516780233404898963820330677636452011224132021196106436440936958286613520037180186611321218011999404687733100064546498652736295157454995545978014718907901844254195613085853659529232888131146777742092488865049814193109669513446659116224675363811163328300987749992866682185158583170385699304425575067672840605156197534514892553448773450926509641675060578300517705488221841337559710517673009034579207620943551535795952720049140174379204378280879643552072752601062419692998208979245581721507927027100115754196669625570741547724071393635771914396664198657957192335559692183375157745753006722145247535449551862770053724969023626568416371328638249747657202561561909064594638553746016893877699056170565713502480800497235604248158021003210471696465362181968861366559070640541939243834493540127041898166754879066267570911640093923005183948895987235640999905649541564461597255115363421646088864633311928683622139024042432701524044011135739698689212558143277664470674586495951626302342962429454850541605013621969542620027642069346080787624556451890787036560910147063900069833054607254267325847766019570902340758644342737936023802678695678461544579276552727879893864255641455783378256389725044094538597489646149064270105598921595459494323100218757520910356981541081822249439272222378273701074131684984127126481734256147171891906991490968715247797753613022677060566746294481185832641858020641015250132623996577644873243950435599805272369963747043367634275935338271138569092728917709109233055451768212333649112861252039803481430299991140553369344686647494969649927276755516347456697960619168099235684237851986906086827988009890089676474486359259702860714100271874554439943278831018343897923653363891375374423153886035881044563446284536046329393787786572987452264353679982232165918346164369485871536298399204880962464296406428833537260131363154773319974065530465902983570578406566890767580782882916251054037792243594328913859810349355857069830871389400182112018476535774921240782815142067849852366363105975441077407342923248670838097123328631444665524478815292954814845663047955637647339150644011198801776716157929020527227439708292374467616747947381003095603679171452459316371131127231340140050865831072585490937598824927464019594829653917765025480601870338605044870154653517399787552118645758433144116547207661061540929151946561569038507672862710973014529420600768661220451084566335416682192814215609723737458221630310416903804451356715511622388787433947402007428903052375884776772802869743467665045943552378913821861965282045174354046115729637034184736833660924214733349054202812527808472341806367052199904272536679867304375054901242662238654530768210605098500513131937997279763752444820541302968414323004919901681598592037074202260269492318810099239200509026765916563606775638516101393635871563236728906691694491041167882317279454302099241137207665215301959607560857225625523550971922709961750024942213845368421440978567084062056137478576270737358343207390225435706307703649328382564828214869235652068789061968642003722464270789829095564916546158626592715310734527599753612831144527218353293890957069324557552684950451185234354182971895421174994554651240326486478129528805801973611941442225066735073590821467138595874687047019163908891786520516053418393446500816287185802108818948200693902594881358474352643737438383121023970064397520590407152714485638832116805544296076643110968223199919072959500672504431556977234238897288351069340657754938381511147540271303723728208714150703318576577040062379697543341066198156588140805063685799726944183107203139751142497044250851766614223541552272828194428834893828304222426755594698261386973643303624135324729821876169418872053144632444351789294540186604823926075295760191844159878345323211222371234076900614857424093942204173920937006769611955421312144819042677517216108725003821831933356252072019430760179145886276214139926028523475049895958368371489343553939766148019509117997894494718452447799659201479679300902033913089702849041269980916302496849414410405517859943116040308620267557898430152620867354139488096420331866190655957404292769404863272011277825499072673529236602917930469049142320589884121698304083262125485523277286632116559130738728304104110204751857741841827544368772742939622284679883133972620416036261386797031862302787551149979511788480556293962574117115750674268521778367389216451534932703800211232252651664399948565004598526157361777030736731241136296086025005633262653369172606619063700317034930825219228598132710384854661270034238886372741218746324435388946856451094186890849118788807829710287852667337630284220908675948813162797709477091486461965844321932722513884073930781863628610019378290782927660288187179209703999081480187290351660992069817094456066665913290899583021069338835525422943431110167840731259248293601964184466912098067010123972010554161092493451411499455241842861066399518003341133183778846801748307698563291178053214532178063626802202325108211596209787455737023568088943583010081373144687483905772194429696035863113616556010412000183089697493269663135712720691245548964907322245062615637151361934708377691006293594375826769967709299791593213606633342712524636571720985318386123484033109965574048629152503914612478331298648903644935523572108088314922041520617989437272903691450183640743712989200911730113231132656838086387166817377176880212030000427347888015073785268242439516262047121419823888523473961208633247802556471641795756508886163652920487831362396392423392636092694815855261623671034802467426836592970027385802585119460690649595374555339010696035333474090766336322642568474186572849045001185523400157272345255570579041989547655884544479720738592483133330218501042305415271093330946528820076572655376788593369787762963527863753139581680244031103638088405322791453563756509799759402246777526406206754447427691460602813295904612242268610427394933599712916528944091420774050681218001916811391692200398623109344379204814933486244067222720226614977809321278848469208728201283118012529448442758355678702161692204165016062833920103173801328043000599286909319730874097296028406601658760935685318887561535415323328847129450464943719110095631639799469700256988499103411314658391181917836971532436819005546090986630853420791687621072182541913380657886324799021533279329225525900238581728138695007891537315447326236681911247861139149379241770650726925204647460835246287496705009270885134766671833814844842536609614839497334874805935796071490553916371074926750279432875647376666525331597739415597657625435902555378355864187144946118499743482670718883196861748023438763793188091184630625636737031296568539695654966524059344810153527186612375277060389389151792123802317367570700250958283572546218220100685220878233889770438287031588280475015647708018851381797214061806141263091882814041542358283699691190168708049627047791434987237365807884651037802412804535960378796645054508255871879347956381001827355324980513067358041850622088784291827659049778569232971848657522055513384921947326047842772973531642042262853299285906243657727444851690908751676164744469979518414950791489011016354465064563110643559849077560833219798960956792354159731294516566357986941595134993246392830270550228387002114684819219325188311677068881450170669033442662145071295410367200070386692811183227746163975407592491930655816744809692062735641296042268525339314013059622805685750226338850713427699439221459731640568816016026980145488714879862002030911232997225439347372907574309338859093944926990955872017997411103361317978503415082258927886914976924706246575954283114662598087316890770844428325096205128226469888656203648170774766922956853660845068739334023668675011341449033561025126578139310230484891367279897620560042312816942543078795999031086906754398648620624350558276426766376513692174657884250460081142489728010513906772268537327530142599914709488926480850505527958107889696236745214938611966333317941028719637710585044943892871275320557855908835561365170072165593838180928861301363559858060116110089403533966993955800152897797816184007115527774599589475775671872188003952339563285842509479240772714083922400829329017810279912255470963880666649884394801910823461966308964339956260313913728447777117563645468696688891197307934628732723292869296197824365658307360608158644441055430755417694494201131000812388115455668116242369760867585466294719126940360227802728049180884558224462730408639930511758395953803714967454620970742954784360581330628819473351941818720476331708710243229303824054579282103994022858860021777310650811790580275385268156086626337291704229551488073887314334700236308970377184177612586208518626327422886847215938867548268560959573763985905493895535813437471410681752846542740328291664994317037006338868718774801535612222431628257181777657578065638438810095109360445966518512630875046854450147007050577812625222880149011468285515801224855102489482191089671186563667162840869717996479802770649943424153968075075455899160765227204748674850720141872068171199095693381076708710897292053134271509962015012495525444816790524236451426161972233226941933093898765048555332387713433217261918342123278177693695084352005274268723310819278137873408244648562831492803257798087821195565667113961458971990711040527793852848196087976563094620264880734433851075710461212777024039703138236195688033651892797991215920364277838712248526415162317200494834124788450676383940364106604830077306217395219300418035564221185489272409127146397523838745400602731208871791642772807192483031270811784462510787598969837742110663845225770807241635265967790980371912181345391014822270617738425796827648675882968478779776448424361210230907206678474435130558774548917967746842198213426008534729723280139288831535290145664892602533299170741126664031943468239259686875563717341443763545162866495182803835270368216154294361069585979014016295259084904187444960255886320938187067128994789365289536021192946320501926561650531800356720612558809500749089372041101391032172764824706987461375891757562826813631084056284362533621964570471725046471690696069214366264574234322040147573258393936333383203942474334316380889114556743534090945455134265102390794401954461238313209516203459072726556186443659515017627418465470044634311515318047854270961961836290110887412333611779631052744188268292148791601544689513565677223792176511978559423665379631032933360465305707921959803729416008796239217612604379795034997619547864478124687175780847782653448506956444432359151526936400264060865841861871552049393030083788284482425939471445975678202821248350249175666956937108731471143025771215046495209030519913674934625695294696299009733884056166160736449947961964969367541380275617676289439019620053150587828155701053901937942137343016931935755538464088486522466301452815099451044777105783631252000671041306697567124025042956437066631559129576698363402264673214612439376385449147901964834856348326986204181762561803931843385468837105461258887452436211908619047400249371004596373554355846506228500306122185164270077986999684937865421080851853717303435590102198468566505635567088472369282448509159730725046175777724937694606097639400855483359955136829624150625863392567942225413227205602582611041058737099729120499215141710521823063271810991810487034425583806606403373805551383217974641475836988368294711023292889730323838520197634499287927100874178934368042012397988860274946477738296995288179505873565172106270530344016663483892210433665874970892532476545099479068684852912095390291146033904248975127154701232881385830743025465997526409910194351124172667878491594832359786165467627759566771166991654949879587105237664581587376231174011102043660730127954355112208338855412779305367802764850475442728537921415228035708626369609878951282018937803168341030174062874269923746709043942545851170412894127229251740032913925399909707058078057467388460422712189399466335621055760910311644696540981612062407245703311286942854442136683248412856386727994373913152288107771990205392529994860573446374882361511234048601960303405747746936645814150997277970306833669372103547572112271449336237408864719437141428992821659471059401616761857476671491083507886180072625225662267589092641393139919719868548936738200497297460394414682001584576179804368524839346888150285622576994062054761437033271690613853840999599856224184003680303013384212035431700849506822558316976785730135875812424758659631298516799145711674268886149166737758044365348211791185776106950040035081597915820162701416466615924603126319730403145086043231633566769187737353777782347038157115007729378515040170644272056904771620938201095185899090076435233326858078567963753170180630680591256393831843545721424819038479043668154706191229901355904308788686396818223051762985180828470626594677027233019755893085044268384982383552063115649740683391061165411349184301984900582637433975135484746177633401166993052927683400564501797323166260581716782951647318174852408629110976385492552195976282815045496973564307225363108572050721140884931319328958297319047202260249719601522210791153460284446768041966498834687542123169902163734586974742029228338369833150117246134697197994827310551369731179061001467926241442030846569243123039751271845898497782509102232031023515827418013820553297486403567978663462441848859328213667491340241983786728557110259090206820502167080574777561930476398031585456582430870030826304060673874087619447536138695387764298931228731499523039300767020279652483520399469401663118115826203652491523958456988788935528365703113485688770338476113776210869836656560938507014883404518556208775989714852543328281209469155857933495685026989927216467417239827597322235719227018893815034616573744200478925373201072298056920439389538495447864382250672993505619309715416020780338117586967588148960292404077411893642812837001588464859998882632529739387643934935297084627079534131529960543734022118354935288494289749883109971553080093530961350694474548663806304278119734849113232007833218129282638404019035656040938249057388714599548084155478591577018456422717186782554960039171047903362240103204353599294463765730109871161785021063191781273903169618642431075554615428556916396013538476765933830576597299430023385224476990934106817351553340216592386458455658651295846138095238533732298194614629467029448134670393310819688922525703497674739602256154397061003183902323388639151446385175272360504059354400472246048901540970258332059823396848187400005505446837670475482009103968361020566365136536252353906512435368223996359498592777518354515691092030139842837557556632733606211268277021241700482993657344115970875643695932840989984725367816677323423322291845226742094506942244860366976666235651612757136481662834522389493743813319875251979185324121584939308287626110485589858852532106243678140204881792620652445793178443721006244684862859580291239054732156980054092943897750072746689567024112119252210411529430586014756616438691230614062821298731966892060354344241139957250301660998053430651820469327912752592216675302253913638317936746424628829218474688589971622455303661985193079289145278237216557076766846242886276695651503199006133834993961719734485145543049597077789450486520207830921314381232471139897384894902350783530211191302262719110780903421604327658044415451058384025116806483355268201802835089590585148608624669490735741621904285001884993108338756280235501944011306433210676127336895143541441433668362349753688979205313950448167710740949533964298765412978135146340375190654030260372619932088388767445045027885972204578237305600183934948404095616359552899487877081024819689556616402384650577939482924500911688942013375696956351678128916092898460456847316739855908347861343242074758667408452839139048466667384140955970612598545497546431323768268754979235238716327569620665200336293014985501638295845226178287540200085946658004888880718848069387710007279189462361978548068023471270658772864455432306431025305802783533687955874920481129386490072533725806576900586655669467621225953962453401620494443311070482421734039550887251613726651138880405389716797021315067873290463366780293642738033331863603205256534799098350544039752699750878175853462853349548531957244171862999564016199331297973582294302165631390170449173163042779880540752501746237858452915063213391275937206593687147263918084215601002243654338715043373943184511152161939321406134931704613319343899401560531049785670365176684665521021790571817466981335453011920262875672576432043837845488254115083515981533421160074091712534181886488681646772113290264286830278188626216511193841767304325763467366869071003191961993497004030690761404715990215723358409629644986700555101515643226463150850321252977162514482103438751941824213652009986487326041397327735707735561963995658639349527399933025407288469879076188401142160774778078600769375564839596806722004802655205577856771009074372512042794394485888488941549286463239910346803731202052223073439659973355626120744520082107383150796770772678943221610265133911101127067545511388423504844051188772473690445663537754245042684229955273616897202466248870302753274610935584016045315922454291806795438883117294052452445953866626005764632396274595332528557958337974793925656630800949582745060631716646683243588720622660699419658155430902408148793922589893473512305652349712777372357589422234998017645437974139374548717670346817216167858888790358926297742688410215478661623067134388832921346789975623709147032969194490831496426766133305491647509007803799710869623769096873106331278415706706049392953109423072906991508283169627659922122880240093548501592093757989928060847799780809432170761901399401141491100868261755781796435619349957467938159163462006406884144929833577408853569898894471684214454609249589557306380955613454026648325530664556013315456612715029418251782903007025005638048538119060924104713004639861358914801794706362902661677265891877815026667043389287841261834997969088067347010611243086599335225596141504674632384308550964395222973322439823803188419408985148272331548686305693307867479019943849511551319007274039530935876209012414911049468028779999401599745400799440699996710198815125840179535210244712796964710681655185551494894321046875920403648117830738189024222858835320007490827816372787003431515620842112011853181053165361141480862530897087570134331200997693227912992119264452965170081600571761782432428967722661279770260281141653132758730071582505347159311705543276251341991277293041690275057001771369260818825850173472195476273696789403139805930747826732887922607638142577970607620029540442378128663638670565326923421102478529107021821750482010597430538414910286230269494837718690377886000462497668072494212256837662938200686323901020472684973029745704925910544223914146105386476864571369103711806637317168013466807845163582270361727762306550095248211181534219179473805805751871890197705108549791564275033358307714717670561365555745395300884432161629778297968124557076969581665128427064411513837283342603144783203735716299388667981902256112727954481153080864634014431241764786937047576522891965432305278491888608763162789232107842680854776212857791516236409691498062088599301513769259491747386773776140744848250154984473368758783003829029894500897954732494261155564485493585857343492776048476895046504752166723845113223812405370930600126115464547783041954115548707127957530736448520524207199568440662863882775799961632057492292872587638058164682574930192781378171881561387058924311168921460283782537153104150669300878390735383097235064594840283591328747164065656669141462063042134514059226036023522265127772410543790683209164069493132446620296914085730015844321234798793293524921102165129401993400536183675482199191367128177949492712736951725728660788218672847011186132504971421447322716524376552182212529214102505276606376823777751292224419251541085897277305500444991186497226182127231225369130261478610969434502974217117956579751772582290091071206324032920108800719094567952441125910268764132762832663972614864542821754626005951669260822048200077840830055118873359002018707713388321248296437328384770326650470509837506876086943787596776158541368023304539368748476159360134915850058917818863168742941544617677348334779265488548660605728073380846264729522412796422365626721997729136404694739609453337966294100705676562047347712187605783704409222800056505057313906838209653590035414994594633509956709134863886666287247860050342878932508667775304560357468810313562121454409818299577349695211955173000545031162463960788682827731631868735646446789549031880804702785826593006695129696465750464238387197566504292677675327667920966447515880912886625266650586665071946870545666039961848840604721862575977314767260377985379754141891014934625418205336816148401677131240062991406976269224381339224531161550749055499212918459644399024650429493146289730377335100530167698356720995172695201864617400078110083921770916298481449059387881315080888376208553311565564284708762265119752589036591546071903734753234511463034162708096110307633966932386507285919093991258986247705209236311621119514654936768394201503021812876501782727395280007000161442464581909773733584483801034828803818738974188026593085627391459907110036027938761156872727072629747244879956271293872356280428046138233398928929631357215761730704074507681548655725236378320894291905484138824737349163144934888333820932202966284681321642951315152782630756395719457338956498934466714644489013818612621128945545420943413167947931461249816732033629613197249175606877826590901019871423956571955493345767447478507070090723817731054146390386878304251009167404615153988907855046201916231696171773239186743431112827052729220721289137994009764091847159126652279995393428757016289190398036376347482971731023539437019288041900991901122906878642662577234222996703104466545918185109357951764495653035506490341456948882152382907897722396986223957561181424791455347024900881766596750281078406698180948235130437926146907708101678422398195810815171589703426475202727216942397517348633790142891113637333756085452766151807357652102109442499982857660488237160790636376151126090545045611327293586520364319424950386237055140410895680225407087165594190289841252241916047999725337991749814429137913834299155512636939512721673400266285650163095120327234566336531049536251298347976796339699994364177196827546358620360602285265568275161553077989182283311481711334095574972426631892168412250638312538996853919706614237277481260632868055549335448422262356249892479407554724042880277865096174687944903328288698320596450018865380046430271587195698118821309639084413095184902915242555317779217730568801225174915853651904857465877868731463775760746065431692362700619782082835325061852749949057451298541483030896085543934268154105232908422441479299898451165409253147064372489116264721554741490591354113581597577971407554461765296027487845700006800407377837480981240848154251325105941864051472086966851683874514814192064692123148509592246643736051789960394403459990174358631898801377808886133511495970319218844983959617059406526382753196462539700204309309516620126146243815522068011136484156280510518293120355220628875700262708400262927900981030000200201451744043347971972443013130544136106756889513653900724690285349118293571761733402175723561117152381479851272316638700768425006110591190450195921825985109819958658193686427393965838816234717224373195863874122574890344056796461589832825997023608684763715731114206448745694698999406320452480824620675778338892136711413631916375881519735283069919056135009693086515271613242231895956441953686164654917288424404075403935428891584514209246860189623050922518392211264867282565480828177196756473495380260018866863344526554083975805104399480014519062569594122584437528390561066120674419572095341329424541110117465938282972073159942548375942825183263908334965337824475517553495142787267234374093961814887433023756813872050779504028023176902401312877102860305940139675171845974526557073864529806424482587707074149860012250202727474643142522764452027155897926386691022106370969157941949357580863335990396765094506736214920638386142906270957270728848294722647286736955141988944069370415572141605367359716542542724246190574891063503557226430324428343821624562624606580364610833286336134113940354264085299671662696617589532834542419133799536350905180220289907778488469158241286545022877565829814117070719416805835217168043135054561626442642796073638023624625777134228080928386512224006768161399469264103517251465733085257532592554143321897710283738737112307047465164559662509683269800285101955475876033578557390772711387373500041069821789094999650560197871260950965366833617718409284388055421349729496622125344160333742385625609434986250972828020518286506352034298942638332243497435488365040499040552191665271775948610303326544296734780828340394716172697067382917644221536718000207537055464911565337400854681341705777214091338232208403838502637760266697643458600525307464851858494842328090821991336488341923929273154969917551341803959138701925286371240644202075808700886632696452814154538968575163157199478147005604053887664051588731470900051346282919399338612077200339329697123415356528297324362481913722080238395598811139068123650515039814250169542486909952548389087733424819296244701488617514424450611745175972699499239658667478046553717062924486859174603301230333451189342938420830871138994568962777809722635156706890198990224117715216949621261868925160816001787955476531850759029966695714296432662708440691882128176091927945773468942535080077501147036536956154977076230764725313728933674488236883796270975340317605727016736353210283055815828208710830425856176582303927278276775327303833765640145924129268518475821020184045423891682170459865812840838352985441623811043096335973841249277252906862784936964364678941569719598847614038039376793684097326642872239292026832666488027406083932303816217824588858498201549113077223535625475035016404176815907161120846858649581863772554847747907079564892570301229179827156559301569297865436247794694068350007573452088912974179125521913424266613502879813091001908525799795636403676876333121821880097971828137444765392801453550003350782505101708902005984758877104846491695974359887701885397650098290553711896248771780370678924623178262845417904162567991384625084446586178442963989266347790971796526088561808003906933174744376822429888973310958186928365580809447074479377776295532851036014782949819912606512278568613746090093047595047617019568016249989738095562745939429694385827763597416956185427789908204585322063591813727830549629172669976445330853381245553630037755057640074647132100726149610250433194146715976416157896620328470606072179986000938044974194617604860870967555122202754124108588274722644339680911279234372449979713585369292863077539400942126105112253267050186938850621344416514250189384621843388464808872316922317204214934869070156383794965694597162272910616777260670660456645185737326746953050472200353852747608953518622459380396357509737544146009927653275747928977563131676579098890577558426183107549971945047761729601301329301926741975340191603800118571745842220029529134522011970105216144319365004676208317025397800296405436007609391156183542204907614208048736806102007457115565502144084990375797060448913364278345111321995604685879064062884505591376395093148731302132426639934856022335426585492091138716221702168733231080398662672683543405337075729381329448203736490376120810425104933043631340234593701565959829693512261098356470462346791394715257054388131396058136082404180386699347460139397873855486594165181895032746258016453590151726265378753125971665696892947311182958741931743608303725632592991485701932045094487528507617688431012470932695475270151791693427626310243636010063319152438309686115661338139375301471585023377993024582568426332876580579124994901015233997727798934404548543650584241161723539985461537634115782924313901813403591791330100367544176871931229176090487924178484863724683108614264876814530317356524812221035065647485628032751790414350805971722659689002203456349266660388298166066885689971729025213125673494966785261749509838945274596836795476941680821779136588710471018241215982639063297595781552604144163193051011624224551380627731561595988143510220089565814499294998348046532478638502987333563728389952571347174936352282101824554249515510914712506136962188935735324514838207098863592762681516504807657169870345845241065824552151560334265386350625935828287293426170372208629530034564379710480431170659164516702169004973924052716675210151534461472013353718024951260941478614270243689511962280657329067985729330459411560167599000140681183374098226284063821849868985501056103440115655370353906520872995361395378534799638236474404318669588976207254978784081885041217041238849908799876855195436060098904896630500471296538514645704277966412116964473773013204336518261744456600362093671674422747952922669967577926023751044825947159987991629955062514283093375972109408320168327233693350748221573429368951324929653687160954553148423983272097553788168882482015706028025636606190750815752886864422541844605602490795127196282609925736864400330352327725453018198921035662040830200123953571882719262610694417441188789411419608035934704501136732726393504387570274443992977414601608107971514600058647621641304029165485839532664958508147914380620514978246706324325446442590556596330319660362965085327096016514317689375964845214319925350629123211790518428367530375229138353028045704840511452636017948582115882109702258634293916864899198355251637923716660496717996243451230990488617174570051951873231063745726817371440927111735876209325550846602250590732887219274686314148205418721147446126695716399797787046232791045472871108829586682232514108943895346857685018940037579499033718407263170244772260178461711270869409087600767691265910247990966055999310801339880537791540677348576606279742119851259216719068044847320959439766284967938091944594778428169605590493956210235953660752042081610609121354344765671790546900957933945621120713176655986391951622768964422474666124929671349034321956835328152589817312478015604876832477491442578270243626837408886493888808319563442018235350073664788580994682394173696404930113831929478201024687122082637681750368608025879777806110858325088068733644954233845144088773781950088247032499324485059576731006084930038411751866357840625498017818006080219150455270339962614259667460739453219642064863988453873937927192866191295290996115348123746489115529109886261254399657597678659286743928176524194632529383492738656622507095127910838386292852524751394050517216591928736009333840417279353375857646218794607896091005141829187975233234333842672860100800084741911953219257815199831725041037952125495169462940235274081680794204141384618939859525197871137599755231895243417718699235505013733908169409098180940139470993407750473859938536282870897867609322049374827649775758546989338749359418886239868210983090347032785672682467151665125761904087001180201376623268581393876394359449504050102261046120267580778411607007311288305679274604786131867327465700604273541762790162021197378032855104045703339069386888807621501470659756019332412115489088569858534958835058250745561541304766024051396068492142606407196645721015506267940494310507423884856722959916170007095856322775011621275795262366150660021329345944880024557484369677223397384605488724860675802295298262827573945926893045050206416294951185391910052823655130228046204533768345080618379355746052814840150214952590156518653130968056643611947504940633290597727493968999506069232828610023567863594314244241413355885138364020054856322744555434896797016965475841707513446445413730049849534477456173565000439811788723454281994187339932515173415985284147418014133619983790361978792580289027370578143824394559569095712441321829091885449375841571674480240728395929955809882817268024798324847082973783723718761612140053707959835591811756314996514132927243425403507155837599468038252680632647297703915604468124357765708009951886628148653508313811957696847070178946650737911807960902346929234232665119290264736070409559187593431056625101795727065413567287605951169944027881393222326834729599196452414005618865716350154847941964065922443581684637359438300332699970466417967948376668514237874377251588976843609388346212333549446954220492694011744800991349439052721884924685090599895349152329307550396026422176367026111907374695961461342319306248868233752647370244297425145424726518029739231481210114894785204517126122143189156036385251035961244885100198121008808585682572502573868706542060400892389157194788605198100623947142864654474956311707792176019837194240627604742857476457535045727180375957393155972273349206629188549290915948951402041873572708494773489987102707087461291785698983838243343908672540637159886963621007005672293553250323406491734879768771743469611100963804038065431300513763250874814384625640154567534565860187534981226155293526376137769550286500267932901721557930172603761199017629204934492139558654097966819644060608085883018395976946757740545433905627050516049408430614835060576279292427290283967160510141223786593386168965782640140502875853843362150476540486066960443922810016478957557700852038497476340303722123173093026466812897437953192152399499315747669954593560939997849244712762759340120126929111396649996645054388188914829079529629952138519528490257125305113880694129886561359700326323800792274578226441542196998505799373395237165836850953562451360664615205940169593107704541291141161909889799673874427486054056507784983170855936785817042993741383298948163612405449283668850660691284946972603107321104844687970747869805041171562540444169920310949861730587922276755062643726514597537311967534598856800982224839989121578427333894369076409819225516842621764951630966952297025046271384894045463938787208528115706991633559200037417382136285990613487951388888851202006299124777861627970708078515596532718379474270254635067760991035900896331574251805652000129232016061255538869898433030405081368216834795661579175738352742067379496564762152630278304509202078818665052713692360493355900111016685933157298955773427888029155888478133616296073977970207277637579579044881764150868450814415051524408862632133059542870856245750948099591537832983804683361422886422444296649552238460527014081714048431749432778143541195793953219234136254751749261075907454652939841199131018202877601513510952458252626482679255902776421275313048157149063493894437870826310145662847970737219185795252949859513284089519297578926961397173627057496661410554201233999363262251398206371327245970606753162883306301805676792087839924909265891026694166423790104610202429157680955192728082917069269012596165991174561061951217984715662094937116492757040905526874358011406203193762322619712644401868912832929754768832523633544614156064721917235510428370464641008829188344475312136728817383555530191512688360771846332947121462850437889038049344577014969767378387779220140711513746206754785090203460148806172881191945814792716979756987433786928478121872344823866989495593170351343825029577994397875611035829508489873525054424923544934141257452592312574996497527134635474991638998830827486007362948932505279848711230576239744945765503292585011652833157060500616855580055949799895449554985318116315004035295058940296491736637925533284553410337506715544542347874552331839408352643727110731742595561940357169937857655783960329294591666316718643124553276536001301824250585145598229995937760687253273829176812659639919226982780418823963244685335489255856438399249942506696925862234019314147883023728311660722195581440088214989762165402637886135459215194979805703137569862879346537694169095011023703286920403030777415634529289434520529729566580255964202995026556351227631756296023846912556703133823247567024373612370155852467763564807148581489907162869207293187644129481497783543081914174780214059206137290523710300820192828804479047719387461183152756084017098188347597323758955360005414655396759124227914899117306954462935072244530039115208743898338957748208332413251934230978685098885782358580072403573317537786589899835250538817740330741212479556891338476024116778118356572428077437324251893247222383118462762149978207978268013874247632068518658129502155823952696433083989900745158987524269598908075182713229079959962703249757730382987029718371193653239905248571104783679181770883477335143327125438032342926890840275842976809144249523134026826082462993046300637745245566282516057164233692659782275841796723433957069908762730530658279647393461606755497332949595588752654134815159251528951671453719946192246783539748075349001269292052388515616143117020634752883649162372251497624005339837900161299989375963688972942458680151762173721011407792358301457177483451716544413538481185783959359624252873874765351329758016940308984556089099799533086855223969702782948368757039785792204867247644185869912239863311384030621232962577986897677712896260542129391394153318273662519426614985004829998477047989876542270536370284482423040497367856301200156292612560613100822872544816874329665486169312324269207767625346867862719366951075013163841838904026107923560237474683320000417665665710271980048500817514381315002325666954205184688645902858877025038849449159945528989090497932671173334470384742605432878802686833615839733114598131830014210743200998137714994571290411196695544556309427402274985575696753214374380133159227142743549431487707793169984284546758282926883660878798028829846091463141423762436333304879926493827711011593787532028205005580651743439581607326941947330352686366552912709959682163875063997859083627933560480747382505295896323513431482826057832543106239112287406925593797659004001663665324747462800301200264426412851355610534878746397760689575148603534470587226047172398006299707787073179350533443882905205260918479857540708109469903889047035737601098052652947658149335326242529821763110425015525786920281720073534577911019213325506774582470425485355285976227801811457527567904166865897412358840106075790197025398834055912737292825949361253214271687363708004289530681606028854734007761462347056661670673755524738915009932649016555208718298955737532464713393332878366624301590069973529673951731684471821999893325045024323457080902867771415065421548632417107496159343010759333471766512322952660612702507589515972337669737930541342924460781053650247515984576294254219426817987489808106224194451793370922244908902348421752882391481629128118119019834429974787533231072789774272631301732327439927194869038669235720174237753790590129291908866720048187496308056640089980877408106750499596030055837736321634085908303461940143145592560141138746718543338702658890043537946661941175112129199759494114496430157244594194352918333238551726628481446175346981935648709992628509671389340306091008905478367030015226214476543419994392678848970325399577410232326631332054711888909688804043031730353407316007935010421436087307426821641246086659592353926803544415995621424294424274594548762099901820511070608325455951691998175615109466218432302148269734820415407422247401719513841960957823310358689041723916433518092237504553746204095798867823821283171911766571239129686208893221988015003955731602481755623739284084088808829014220872596346542905912488149765392711948704307000118907347411121373054247041126234634588779345748465363131610877983221040057187050699370170143747159682865169999571246455523877196376359795588458745831612731930340704294949018753184165107734282333280456933410941562482891716600087186240568168456884615737171589573331799020039896626142556429822043011800897643168695988579403286399234995501552471394560312363132520487078218779358206848499509019294896283074966721083167015937125266474547471945243935692184959676223218745327603162104146333034783931686721643121073821905070719469543159546573375544142556494719977699673179227660063184312900964287114309555233245046871126692673373041824118089071303769381168931012658896947238432496799343835815471058490411435186056224662288455640902038606910630159336710117451587234185750530004718522120940037560535994098572218187718836374468818434030665231479002582777524625327829181916466276550012822024740046645695994972564692708929410235229602276460277050406707858790735708829422771049765962686707898756863576729043323276183330147654301954241763641051051359990911082650195102186799044463759049795355263468056892841686509041075300718537205747960388556699394209236998111761862131703131262693438903708718811947025901715865450567332572232745291541666655404467033346395159087536811988269990623023720286578169153130242222120788867809853737768636578012488771374021830935123816153221399751634930076261664086398098972123054968546046810230232591743704751075642523980378764134834843461816320743230627119674835976420104311677921481624449059399143931834681580270168709506769810093044395503762248519980023130834705736574865854061608764339463339604538353242446052022671840558731066596991660823313434083063941916538555661346497292811249311489232534520550773789789568980867486995011761548442357692673890235445245164105460827410971542324451879935614855439374119230134764448471930392670641568541411523459590573693730742013963141090386800565386565490444062875226238319262256381264040898462384122520643251898433412098017843557463124939997605813840501632014808937609740028114553918719681857907276032341381936031429684857445659170954763731124136401090352906650492655395504746068149465812880050308378976600329353254530453365519519129227952972476769700906139066538516734540174818923231582808999598366972441310780111515496708511108580060624646918354678689266087288702480558725613600243471618754442647885407238097525239304906384683663759456918862711346479263316309235127669451308857768281155814858031875927351493948748992942556265082155797114451978107124509152056648259553358659526578105657692200104132163312435849678304286548544114195178013536655274673423690678351272288465631377997305089383123566459556009319254369113251402569668581645954594646403451863724021059839152132072449220644577799196962008999415797693776820537781027694991493398565657812080816067301211562567617429335941465578816392512755908050197857374163769580248418713660814387040807866057647775195056035932252569713169410794857683295034408145175918586000952194642174142094151334659269379949617796512246021272650644922265038761195062663611669036673561046147189672338017756108383856184737470323381520272751614706778582086802506191463020952328030002259636050149221306305569812570188212232648503145634807076595641421422193557888682856054725239090751413492848272067523442301576312766073911362413488605818426849054294834498882892983539224610392417968371867975130215328583797409860832133992641095763532348915754149388534174894396321986471312728104359517682795131668777404494391553609307638187771905704487440919007196734634604974766245104258895120642285305465166539236260061977080387431173982761105046975596284659510070100879220561528272004853357476505918672669078145321585849284931327469047963467010779225206098419269710126988840493179707049251079410684796692011904039748389924162583519749333210472028786974236807394555043138638039184369835022610992217297484278783556520868282286149358593065012235711558044056766324108069800030186918508713497480908382837682093589523652777907204629770406807824004163594206031746779989566150839117276314934502629429130729218603838124209749635309011938643289743386107606905172903894056644414246592753041333651542941647308275755045743612677820284796482414608832468825084016798764086766708853661593745738822669457655602814489363849321651757269012135248100643975788974013063021129676658773962791656627934370013028092219029810317542888848690314684416298771875541348902158689455560215424507715182645453769356583614637575830322041654537335036636820032427979117989112775904506901149928997005508250412920230225225707827701965297027746942021075613864253456146837130713840361982228378167488476986326971761903102648808078760030239801519646159857295535542598980910858140253020139512820938829711370917768922141646607877655364780649411429858279748553672450458571325978440683729052540415001189194394074898484929115196877440610486194659230647350444012134452198522318563750230188883960289108073634128930344673915995999829205890673904841857096364629285374565980463749975660948237061738952819416080830943881340771124452339027961747322712519448266406677898438926365666548173471171674819808947229481470040124813228207960201269506429920711288438904811762760530588328806862828764662969642667776367363553100711761822308350010546300057616576987323381718943963590194224323386909531914717133718368672949757486307957906161570406761873350723305942227770547508371451118246592689291487517656168938186262452737388634626632279129874614038806821543431009895215298289616753500620740842484355075908781218226362895744795424693388553846843827506396178538772411302487707477469865210196696414265032749927553779501955118635009900496081273961947764745443524070251724112773613995054504530571833265503913763038133638941010962599814218867700769922149608829313837429879538361723980126647620331775771383785117333253897496326913603303253974024025625405895244314768808780871299218083114117778514513336365395733265882979162022304178882064336802521115294584910742489518493485683090177818794578748672523116022763744632559612402076825989053052359815773222486091785736878178849728083135718759866209605862674207375924299196886919513161691232523115563833318999929796832669991334874726252291491192552342345643889835618290628856685515071664386412746951434549961095342533466002402930740392631912552628310921693076867109303842204353170264285811483856828123183196165220107539484016017857170243849579777207235338763828648761121213402571318242237831313516346997280368428755956338030789473538556850210927918705840734070647057640663896287009190513001272705989378841503419062443626885197294930086879129508925086270085224569967303370319645360126162710980536444405782512490492151401794928742444266580751514176700617489183798398361954885256980256273271051796357669073260343626644182125176518706289169852708977648536945723590759514663824501197767363528019271068191958248803306356484668600486377458117119443318461351336838825246867094897123232263607359691360308560468936637801517575112080687296693121762694684095597216823041074725990421738503315801393259464955350427869933221517475742870327575621825089076979811206473055878307747507991189271352951760633722904831241471964392217215526571475264030737092303754071149145995351827854159736635036489682336067494720793847969632343321922069024988476671025690937344010577862401431076249324228745128259440589028926113094349412430517181200886799402630047287725512563487224001568338670369403866836019042128424843125187724632248617011018210918041665140034172161062987852520002662642635218604964227550537272462180470218694629631994665955315010620750995867211559086676199972287753377861759634964645274415358132861249028392147321740278342706501846412134508705709789341842906424876599616432998315635829404522664384866637419200246276863397472978592381967086259393930320415505092817634625445701673159048325807255955070573693279257819664507516652812602498703057673342223647763750858981265498910270818046522780024142852457142022353752571724646434750103699861599288138885276540793833554308526302850254453748581985317976242895485822220324272344242207254708567173105209903429256193406860097371938221069568824259978652875581619036784025453706968531258265972830918132102180609746723841617592397501586418848937883312194488994075755163361361140591588868269760133074071781221423876924370184248376700878650789611379746488455640785772256405846874782584558081409432986725205642844754955321464940419053240646388939383390947648190558429461482194121270823879936690510524472623355965858825991031141604699340978075803855061362088180459857780419066730723280589020954342122161221940520531037586629785013667563930257835605041224472719572465410387932893975325947860721452008971003923826360074255153076487123493709649056307086630614465285684426201591136667452216206361115017046898647746372523398005778909670439732653774198963507940635362120441135181054209843559126668918174186625476975200874444995103485609831739766817845219183030314614027973271847677624098558748039149834121882602529534112697810503518334749537684026766354908726612965803235752914225875947086618287201049761142618442979617798551142416256215391281391757210589172585016365821660013276315855760186014608309269611567010826090606039194757146849792614162625554106970916006497926879934508147810672269853621255284616904408363243099338768126067702204415373478508221822194079875774571328914586860954377100960542992762236141676965353103154412846085794245598069908902162387245199660345282232518366988753086304571526136222150476736942775231509894924343605009782200853268029548646049387440018768032004103799814425143429797174411423906661814233417632881199502104247852880055115677911017956060928008752403294200691550229223592093386239955745544721374021167568382405926635855582266826346231629174806337827238577224085786765343788328155763331613690636734730508159319826713298890446416320617828636077393200550140312367565391189277582226093658692794477354525617257493360580679589323335569551975328054659740251600652780868635162722767048467234779781542742819102933889526378728300778962086866903501633484156539767453318966616350305689185703825030949582994390987836564545474880322902053119543441958907097549251463963290030877266599401392718803297841163377764126266023101717360658322076418941092781898069037734597913919004542251128136732725877655881378970715840749316422402175703459186816810770202329917683188783558477273184792733776580364631326871633276461838852866732888913538868156032845927677159395606423808370761295686348445297761716310781007673547698684889346511159921280311462750563145632322019476623586367484896734006802819062947836374375102450029789311325858960164638944574622643503496376515844639555172421887172562682145956575706900181943093844454562412741253338784621686383784424121068105019713796339069666065254945843947845398970374184730409195105658083357599095945292408933388269880802438089427077951959520938756850480803008737390843252021286441955741691344543218189835345282463758494911345523336358365256833261435070469924696534524823057852922372553241910709571079753861532498930340663867169171894976001410673632833771801023036211711814305964125059645856353035946550721104375716685537641923336349761692499048041226784895999303561227293488070929027282495859036173349317184980425995270072905238516905964116755109467340803592518180852825408436612160586334903771879346613526638123896363911171103053963378083823700821404490150851498656137184607014672729867364308092684134564046241912209206020175816727345903600830126102956750173673131773430510013599316840085938623729434595749110407270107579917146912894800571407510353143276983025085666767058269068658945890687962770737393468993518643962841046011785175647015453727969482844253338663637688362523794878965971480652336829816679896876986143967096234753712816180490306754910011398119549557468038977853604073726724585283570872460019858379753314283016846220427362057960555401174209861033305186763464203772928174352859990585224160199721677960937100628748571188539908783968997651890534180111504958438122312771408830202036119283773600963912537157618726389580237794989178367688556351395405610971051556551964613831320607825779806636363270341658258616734934086028864642820695906621991691367259356913113408319552040216675924079485774395985421147594213020882316305651693281697766518399092805589270870618646013628137892387733172996858961982126360595562812918787714874391725515819207310880374945158415402422845137810154414672173980137268585319294559603507499289748492710929292268627357945361181999620716767273445183650483057107806452423199586047886956287551272523639473857858767359048412453122950633754433443204938815641001891386768162653379222775818831144075214919540585762593155215958804728102250886021854315648262193657997572878434492302128060671784893050859499861005253898544952711000967581736153681404725624356960726785206256979557790883567877796040457990381296272270149278316714994618081145693577996835870144248761763353705890651689841276888258944165017161070310355480857482285898796863672988286473146835111446595955773468453460380915877581983253193655721802607497457058129617591868114913988499867839869278407413249080023212902850463123122414806576636045928360251531536449575540294498096055632217610956929986481765792166487015470857251781619733994123115604932570966048529264495554142423654921890049610463526943444437027114905508994325600854592180104386006427144903372052604968612296361793146634422203953588727316787616680853419229576953223497715449517067908177378007706111328111803440304828562068762004145624929556909813010712650540762102353451413017244821596187202799841685259460360075295782405457825989403457392277276202430819432277325935651972425560319437547293901669997723992418438643983653508689626332631453480756122899903513365694817847541602216325623331608742045668477108146676422125926210581254463490425966887143497089475147395465615799169606335665845556740453006002275935389044705004725813893133663749000817012578817064024019326625896525761459449137069259103329611386161928545095944457551741852169720432743159576216149007409314579308272251373188910916226129896998459417714176335935307321890343636164297404555177258315948429220678324683594384661133534197192164311131960129937960808686870108371707914684090275585050842196943331637862259621032031413013253568664456799902494256342098370662172920180326174647652093561324564642357433641866256330055389617694802643074508086376252880826021430597114801839433180942952859334502491963982784373760386152091442077475332625397303606419940562705587008039954735051654015746883337726863323354007690268837401425722773942544943679990239434896865796092322576711885556105187650073828404959205778622189150686321962758912667441044492201489256915948695031910023463417915325973771066245885114843973788095280947196142820763508825884074759406144700182303556835079301768086320105815108017851480335454603305660569065858091149549936567151235910503573883780382440581841703861209026249304457200857941198826002984903673935073471131149105274718272538530074335565897370075099259169312399177513654023226475392442563175286806744771518151154154766980083964672296685181507741693456555550369844320779306249470697233037226695839563394072188976210917795837696727689895919710942662613105566472717993041063322245885309471471329448830493160137469249218095619101307551475448018371392107246348560880647178541980796960964485600620260655480014930706550874993439830856449548634037200543307092500559149471495749697176261608775927239335431961426417634397032024207517981476648071251998571149522598460460607157135789336876647163058498526981198997641068030063092420092633312901631923147443284466719128387207471026194892052851872752465437377336724989646393346220772972518928388941970724242601173273613034923239065882213731444487635852556728673170507314793777543608976542389364111082076752049897518674794849538089016486709496554392238293502724958817480926340304187219006829276362232332178591230541436834564142984612452448871734414702054583300144755819973215531372109968955078161891979465027516448135551726524055644714490470397520323247920328966482108561036622978920533906604737554174499312060506135329355236922605413080483880163053747167585600680929961827472192852876619336500020737799581511840041895069823221288032908129636147443849990372986504847584260350376707758019090186109274577663351671482745692484805559161015442546620906519415395697618155148674740052778357055663764107967033135369793859287379076472179284452898600600782836354628138607887259025746676927279525245955697063869835728239870018526784360317924915173737135753261400104277234601450020191378458310454131296435828549238310460650399785719470322392639588069732874250597996102538267643761206598765809372576098077020957547736529265602474204364045123700995912799063013497911365129679756925949082820852165206597475285768949227955811480897788551905590068869697154688970819168063926738164423043596123720711068727826727654565265799542826844309987778447371780368814417861593286184781631081490654396987165744625625887631688837571207168584762650507661845358901341278897320457141788440809833556093944551837460043207416426854025414724140936046048011978912122623122847487768085437485490627825426779427729332752673975968415308092598477385929243902142778147685144497607976221341051077710307039249814297899076488347474659897665649091446233613944400822476601518701399749192967052340655313586224470509931099590406205328546162984509639727778606614599075871780335406941002547384787179475357308919287141380071844914787771065034602427180748533109731780868821509959779847189627819068604263330041066681350110949757415404734693916254538921148810224430712734527341169468648968980639932239380116967638254678094177210310939535433105941152091329265085157844715052327020557097996767866293747873269297696598361673511427575637534598954121142799704247615822697686485738489816745479293738095139319521589139111670325208211499832645300289166865395591602057351903148348682249574551976553898435334387509005851611190797569134118827075137935261482947610687667846266925851431923279888899562513306963668470664000880602040686698153098557467745496350452781657487477435867082107260008523489712858632769709283969748741121209736121512442207899009368210142213477810763973006318555036141982948084232085783260676982096857151980064726119638249048197846840469668507873814464575141464190912971451850279005526438908432327607252340689143319295762335653288157756637099088984140017414928823426055732621479607174947207480656933322744046621782179438972020665387243818422565879702319235549918152184039174352641270261362771073076913929782545700685973928180019084053703726766669483607271690677875507923257494664345216210703025944607699046299364467800961066176343811676882900532608703754666114451442889991364409734657953601418563079703388113275917305088680934925335244636101571168507078842079008393809452072944063934058233198943200870435546727944497643505430319470805889042929671443645727959862947479172526593244457683371715791766649395357912881055003639099034244011415254165071379316565818767140282003191838279356853138896925014383208640497393058163534155093308368525060174278506262127418529359158256308695638835102177136459253107243931237691249917044400151089207756359116742107229733087336810178625823929328704371954105980914175063985297446760522257783534483911024369841576331032482751751184806808819015115618877740374957828246281685131893311840084393598896065171146446894491301435621858640060216388926683124053393605342026623085976772247990296519687574308617519338098438892901639853259690278926619195911710367162567747762091128923897266919802606890936052529006979617977690081844375480583869453218910881421487183635473426892103609145422998765918817503800499856110326575740136318097353816784284372549989732848794143385187240593257491747060237867794948182032101141672168026830913145003299831456837809418588963644430323514766292227920783623372229684625367511521185208999466700597249014625750318930968187785700758957734734284814030594998511208577947270473825040070713271875761765205143327583833386501372077725630090358232149717202848213797210067467944512031019056437043330634748375566813811230105679211764399509600703043239827586188104511194119449107436114571510788902013980087268862146107124963598907564921842965850173494311279113420339231533088218786860830328679410677226550054932994252042808344802908567028318690387625746394065602216973071119277413832183434407735303699780478903976124109927786958856393091319033579236093467032251254402812825295434691603180396506840195372923276712248405801067298631802699420161809167558727848045047994912478597449950470310602649478000753652961487711099080750698961902832255313431885804843460892148281604621356935769385827088613479199384962579633920519276466791464068229204252980754145592322688304520287102208507212712157866404165562618991634646914921250231886624748169682506969622028092155256313439830021356367133007022866616982785755694301195924874412043209719067729628788021015973156071615000755759483282592562835588580378469256807142554033214324223204995428020127202659712226547611733624583835469306559484395495624442958934861121492454036594773817283771751376388264012651739982386437679222467721616691882374150761342719258500159137242073212303398399911865970754320857503905516206312503288516241925069871851800784959329210781384727602673502297798073412211922606246632386544943688896372822971195839593317835107306421388327573403421492333815274398080120676370349935948380684698648774302681840751908648332426899691168859443306376649558314455170975355783317883537603538362773359413682203594061766110155943785978439569772565465937897240836796220459273338464065629435219367989737142215353934861241608711506327578865379667223497057410097311287231153716384136096770094400180478125071221714389965433590448289316405196197255302743578840095574576114437130753436928669228064395382440089405726918523848246078121013678069867838667782788487485982979867186269183146960194586219427043231756945148392332154251938778494371571451320488298439975908973149359868408488903411500456539572290137236448772323879865769003760044596549958564718985745073584939785225230031594470177035628238836080533098142045534066591027256474403210682536630127255889237495728493343478308888676789435145831808571724344794264790143221642859404047659419962965128291622223408547662191253052873070027883583787243710326973300710547990893440703554080343672103133327460453165583801881178198858335674430681725666285455377140650960157476689122728730756730222972685955449886869481977505772049106168463494569062984481307617945560603405393918146678594548012866941066834570128435861315907683346422835877845736340976428857246254817393988086300134105578517083768047703049141420700119903714946951111193257079892378675820037556051575928044175429797944067665817115171863664353709398732343817286488230836593282057618384842928645616409953112127696074135936763349386282859803048373178625208116970762233839427577061787270743379406855143750943320088779596325765868315468985084608746705336436599684580204256190963952781216667236407049961567912738577012560201494249156920709093731646084223662959239419854858174603186671682799416449040653575851445066453685459975364186075917243005613292671176105120417401098847005988854628386506256508848610843769466570671909664855633051969647942272573097045924531083304364001735482379468958173249315727010923561355842483639531738457375924832137377894695448022620795906246604177937797822990259751385116342730288846674315964011521932361721739315635383208406742785041072745192529964077098665401633817845802131902437203058281215879169537433365900614536407906581785585387461852065109654796341428375146790185244187533272326216255121876321609289194832320909932669517013211940175456181362940877581718089458077769529866850343111413541800347060989873520100118380384877135043827011446078177592267231162211663432276866409297921674643373431669904898321260909765595345716649418574910001198719594755975873575379244719338272211975690073330978252228233287297940182771438931467178016336817482785532413351187910596278803774164829890456288503003417823523072590367638194107659765548884209584416803755087285017848424013860927313137193237959552188952587204860892389093836746684578294819916227873791846767335314942107137684100171947847458836352959577727149004711057331517767602326502950840623520026458008873244740222633780045472616610089083142617265421387025744193953012219498309893247629694404588876360084328214772309238217729806140478589743367350760454784562088170261808177721584075275584255536887891329488246927975733212697442173488000599807638815410768789095469783440300078381897434977327934670747653353363677310520734446189506968026437266541334785496025144523443608809226086878086390691456314963824157194902094945451609475325693341919677908743392618779126312991452645446491083283160778541281250758857337917897660741811866615089022078770463768234619894619401794211501901378961069330035235430347578160863489060127298350786053044887986356608707848174839007827291389528402543490555930859664047570062505611219786359346631717269810401878647604832999398686143786269573492721957011530019802812722073130366669936672345467850174676885015163029112062399464236375460639263452003905493892765655938234672308697818416735531169789414966356901858646604663146590039401546574200730471939112356330535776115196992331618472787790494940535630202392303873711463558340464654816016292639341186543159097266944952144756754556411110044036504737998067063101106984070638294648824785114444132405916968552704104100469736102650674160930298842623230190050215897149404961241473434807546625803897609925286018872160464329154417831495108067942139077578581414329791805896409668375659555914822930486289084091807255368693130909025716011478683519502866796365105008402226892942524167097040754168855086898464584535556073770260916367975604235896374597199731380301068091049636506021216987485028745621864963624418877839144583895717802396839617006087191920047625262872706240865544902749611277172933848805846973912025121823951575380829837543202394152741562737079381484297307638244136680092669687587244976669828796731657736756812008775776948945402899137690788773597713612232900881635688347390398206262731507511875670992043366028660166875067746200538638186327175416235807131746557463236682442346337138154059912257264526509639261579428381933749727745552610516202696385093870265199382840075781268459223193621659577296026494345991227251440157575173987743736900058685072574732537487339827645795709724680792079305337294344540460015916474466562630576924725174763206156486265559065576350586000697574390680080217019325808767750930058655098944921130143092796277354403245092470698605980012826972205999910564774302842821081747175469877666486738333530191507256269603206552224962245246109665925493884139993312401583079118565033645283719847489271710451645028438679500794267740175486281069136106710531276156371386986807711806090514878745743467606469038874108339099644450947885648040880894204207588278494038732390017039101054996298871017144006545843493353955045817900908388563591019605534687321586272400441412521037150872282230329304062091944161646423448823443215930635037552684543648950026526894219316243151111511574926905686127196631475926394853895255249470459119821922495629613641229813191752302391502731881862606621237797349185334678442031944893007598271974119844624368746221242056672362576449319168604783556565521160229133841159192915191808299368716756144805694893362822600840365472996233348322043278958818492916317423046727200883665319157593379485531430929234914561560815823521634328841498320393408285711738954366531467603189928531636177832533858814244233716219938231315061319699425108733298258175883380855680915918199872022332842585604341792576025537167441775184797678860352002255169131161882258273769345764735186087147056598654850702490506586267221723926295565224235233937921712435644252919862116678589505184984877434808423839621693743800458274159544403824655277122956099851623698155944886807974328111620370993036623169814238354416192199359508284473067505986111428615598932010963346668410278191401445432614315454993181905433420199219324907924054687885757829862714829718718510362280934574652495913092016270572523459119181581054076714136781345493540365455658623022858677469263201816323538680555548985559267298482019037809412376053734072078162158113337894578039821877955847879606381731674459999348000834241922421512267234394135843407101729986887735489674856697152492265401975654479133841914983096805864486245506723615594768124925610753201694855127566034396349570746757183803171248332994860660026704783839527885694134935639185558054300611691192463940731554337200495133219766418826332527469285929465334927729111686295540011439823038047535131098947288547448563585440114448562237513540719022972222720892725123438987352491922978742893924791011811056595391871059529081284418144558641608642003912789326053137715458511515517945180023799199911858630487483632177475167806595745017205178728028128850786252027732339126165312651460868035010414145719636041301102577337556459000247497076796657224484152424528425327272259642904944249847397554602487724664935008406003863372177834359684459080277054556148160561468187999302080497546341217602721216702641147828008656420216429203090941931183334373446865252420528995804246608479119083398300305324472870262691502670786710945816614753849683443105770282482725707255127006611412769031357336332459175698657983504707969212443034892182048280718084919935795449590259930636068099965520769252318490429766093624178168166770997173500779644184414472796376272726338133690360594257513564419897886364618199291518465647292793345223034957249316051252794785394845381107663584433847300036031014850321992395460021017685173865741497852659763380154217402835831854882303384598533251631554763340480103102509425832434715339498535927744019661526673138290075791614131551089657623969361385672503266355556770472363287562992275031759531617019501787909069459294494399289195431873435615778407968548138331277181623185096647301520403527444643342537049476240167114926013042653323695133945441142807989740124274382993908356973514056206411679874574143408685276592040007691953222934001696573515168583930537942301924415552473359005160082289274951496089335461315539314505391357026561634166885644406795823770018282668152970092489206389319328029958212612128110700495944203325464108883114472468382011823300861751171571828346298291657995548235580805624591561131213738789844850593709172939974664320786595825764258191743900717670609368444684087251836902149191920610405863426727248669992378602915707171201200675839060012917533248136943872731178078533956560285717114460158894885901140378291345581532425911042223217497010288590262586881252213428258768140515140077341957463737705695775274699045064178819147392365618510726753283768213823106791631742415800166809222386783138549446247943975743160375182532532180190054858712980011614655869260901938719598116371560764180744729223388014132639848111261187894519371618478065429902313601949430914283771370161201575330409048699846455017667413581758752059235326194524667990301104526172395001882399491326070336950269993926310072313893184618313931346211159373051181722440558452529463345302256553511513586826260999789391473140979531690373558080047944189529089322355386210169335799351746377401293618741554959890412485388177991555703748588367659698272233084552444549132416461650791544870211388779219623174878464445212611041444649021004914001953965471063104585745611836159798727438957998891841336031472581074928491899953974815133159228860567650684690948876963978326616063216061372236609008656014086703878618085548929756316280246167321353000008869845208853739954840439186927866701070162371889558473587466720291503217021518467537005888804711809769271839001778243664412977447026884332620045717808173529647732900336570258353715660095603494026084509486883393944909321326426595399200974837956151906701444805897696383435087805442193833900876496043110028556630227144835144857170327298910492834079479793089489975725866873315431570214699508553635637557875562244604146968204480829969208378501288359587284779297201878757617598941738617719295084854836010135853625814217439266731829615814321308668371890765399725557714602523451453970958772806964411843987761793017325814404149655949586589850094759074737987938418391494892031030854032758655101236970925888299621965716757138917923581689638984012605167381010087256901327913076728198789879643924193089920849096419838670697304409551606965408246426422694295942965358702905510070549536098776786298416533604071952815040378643213097490379051194244650099453297934920137162620152772642412374294407648499471212029449550025691878306211977745209497067399035327518271119144799501648091196741496752646162111845502814903728870169619574626875463371317488653346022658905321224924924353224524264661104506290115294907334107422443745775991161022317197193533748544511143597752972882760334292172950947075426893297791077599763767434868696846822773641251724790200640302710765398318936878288588322341950071227214784743091100857699083365593865509712100197583494473248871870877967294715556019984281155137868004178056825925963062453753684806390048599366196790316423347182561266954498040551772400708057689452702020638766029920082949563435509499471003990766428774388812391068190819281515094654758781464645826365523611635594769182969321101391583767227090214901639280197564838790155996343140976818429313206566733526708241843624723317040912919268264241284316431922873393145277301898467086557082637535492197921891021920527780322715414035786209972087261380277796197798345106557007168096698338050090363148202091981025809497128959215816914905060272070680838089523480805550924744442123602884353358873820534765056951250321937490126625748072286868207224941277594085472696650492099007551020885998647925334988002018008344294951759834120156815184214879874146078975779711519032566247937677145056506235001026394558780138354979385208564230297205173453592849692655385160977014499817548942819308412102401678690724068587546659946705416548847115583434647348116149748354027592929196923647616241052686444855496036200377595931952355541832449499178962372195960643132195705873438069275320225442334875801460498116341293989874462738513388488188801593722559501310139686516532992254431680047088032338950570688025249805367830241434548906347458878482971348368725568574872935022570902247377431323336841514928371540569614134984349525686573329593770526189229458489546112544538497749469664386023581025075186195248376302173230163570746227100735416731990409746805712616770137434532358752974169428356968778988665446734210065089120205427929483559729791228848799609834649004806821393109143114920164588637155474277171126895191614916220722184175757953211180199477793404716416916566937791604721448444975730290952753964772695259530787393804266857763761198899256308347660052351933775625418113219973608964035458506917616934896232785396621371047162498223109144822874894922135185369788491666489641026441505511775037852042905595236259797454786315012256377411264032244731342836010331747634205732238517271731525314159533236973406367477440402704635551525921789684754947220265370795891921396412847353594792196754843321043279300083401868251615095650441495623413587033586878048798805157206171537538398301403113582045006389302778601389192250109580076947485911553031105352819204423168654980402666024844437890930603076894718975181318816259663269566702857632182164476687791648870969195749818657855247094414798651036620957118683747450046604071769743574365231855580958090068241264186043905002113993849073644410080672195833797313564145688145733315917150250454963663694202146657827631108680228153440497413069268132409080031280936436348348543141620834456272368567074216557929067153686711182867396990452589848224143859720592303348306818582759759864847236142257309190114515421671758956155531318078399499382875659023416061649806975283105987841589982955982492838315692121936429319611736587470901540363161175505196504980306979553612578628871387702436219868061836200477702677785436942552837391419460663396109420461812714620185900415540581279233583333943205850208949528897733423303077819225200640567262459578284543647413871886512903440486473930119094216236201591131258517909397162136597557828450173586086250063971640071105078413759738115299858599326306077679179145896555508453883033732646332943921636923555275387190997557178453297024093253273796751158658411012716072926790684496567181963191119587712461862881291596267991811405718718697333228932605016805643963324850350308257651914683184747957353191178767493317820211839296452295187517835551999651212608536650233474414693645698110894927542793733846401291054162429590869984938998867717519968572437733720056611061558253562866195473448583035673213300688359664473055980391371209332553143090704156967501232299501887807197552468823793598112652680894260699742226864354973699672381676189844423490275688128414534942960624016244891122189744956533146650860612331993169057208130615820990383878787696153994385291596208872691889828241077694975701884237213542443794747360953044943045973801923246056013996397915666410689404517387840471808138921394001295164574083427724660340819480630945458611935266616298479278390144431852623098186471591863648539661524400853439575542337110923726552635822295868312233233413706974758048023110048199154835297705012937188795905156510368415406651281056454610365370870051007492116701273525370580632418349673743729146362559897700975942522515909227254941369973225532204494293931030347397785383400115264157803306807710055713499218676462699122570750778588867634026013511593726449802852798992128900777826472653236801869299790360978867285274412150490443658533302432577434357289654010957096163467322315571747545594742749286060944476010370254967729047792902399014962637908071951782789733729636950515012537674745661772301347653369412526710041929528698900098341598469235525004260499707920238029606370837301280165947372389126142541187602787252867138893678868962505965380793538629603157529242235035564547205959772976496584256956702176502955738297196393621536523713542166942655929634600038721757302116516998970293237875357399716363248253006096151541994628872307058461242636388910025912672427554945037038253434716513692795380953332840346082365247668431803996619470175459757471679928856957932358399242619649327079680910366903563611668235663786715728688719034026175196253557800389073708678741658931024116929531344384348367504580038255629375663871448452893632147580703153701187333409530187583481639769035892145023218480287599874656836696148463686042924541913520569883166254682862378485422139260495610418982821479407948699627385380544389119483714706990435129884139285043341208023905795056681447182788352645106210251000587783040103015173943100385052391832118996369621058558247045151947219230055460352581005617626191532117811591490791605194936437892524209849312313769772062032187038433896930779334631450301619436976512559178607887487277710464069307820575183981301649570299219513605290872078398667850080825151247203758607025308707578770132897508345095623079153682989533107117457943243225507624049475735562068386115981925838938165369669686805233538812572638097368227336647658010604260673712551675201555516729586928849646618753597055188364875718088749972593849858874056531920914993543683391410700199288240639273683863636655789204839062617865537002093752876740708509841453562421130650637613163028329310243772363419272894867384644188660228431779022251441436440068484385212237920378335523726174096298836940615847346696235482114187113019482822736798870731187017202170793905329262257037712573059348427248194858377818682245274430951917032597947909618721157223860731136375921585510486804521803719279774949452381251781457414926183263603450375927119763461858598167881405639108601218175864068761265000935325462391535274946657189804159420163876274414203092206190994395013839671559705989088792109103364048317313931581863490234228021453349400532191899512653467327449098393638146809266387028227454254792065020044022384336413463284699565013312865020088613173859383825331719399896035659622081352583479251473735426161312060347567464879433258245658215084797399443011796666806155724330315730789412517053570484434945922149926257599371673697317210418544859498791772177314304660167486071448358979919664906535185127108061923318998054764889526079264364422817871957138851578897299839414641769679949881457014990131933525804966539013735765795833389559237025651861254634500372518724509407931341829806299796665538484093350866870016915297283372101399301368961057013169977977794526658364604058691982147461092320265413394368815834542645960498199869182080118554966836518516203964160729307585179616218520521337545546636074283922564556275014837330792659060360105425579925039597420810350087754095525189395423534354320503308687851103609253331383279027333415393337115851271220691835509915292533321515809566318026000560704902205153827976340649780366126897475226854842801469262773538259837737259466111820651940402229177059585865333188919716571452298437038295301499303522327927476536945199249867203668832963764719402647669177012150274392836248792104020214801305139497157629739429511836154394355147053032882318936375212653525350867105158945324915489936849756582144933432602230707256488920091868562840654801878759122602718875620472575882283308003270143788710381288307316521670214270548935910102085989091142796239276736461956142544549096269090842827272659492676653886987929154711640103368906938262846130472328016358673085394908508957837893564016799668098370206864677211299347685422312076223429013564156898120002890229377389300888136718429821601238032055488211847835515105462643629912341790685555072719936610104313867660624932247966965507771256551281845839342477531705683732828067876381513589056569687515110459699076575123085402289775566364432640721217648762428044384876607000216791339087375812488674265082873033510325993610501484819318110086649727105172088930237900314782935988744105296272937015112215350379700548572666212213836670507861121256411311049982500690163393219190231727064224678154430897492655823377305877051692761428364860025029553491868446337586753385331722714784669762131218878008814722625220775592797386125492951671522755683068538569644441383419724066497866491443620288373292128041000634994530943883215280783915457636106944085013102517773115628367202578444851480462648385117739342414440653509294631653976757262432102402148962842704534635496138066198827753717901817653407957617231918548261692299360444769792047070987550872951160939780268270120505323344147944871159635542355135821189278992967005616333450778181894829830321627593387221128029011099337567921757308493312493608498886883709147885902526627771973123678158227199967773166866632785005169956637328856347233842780336573737728356516605696131134843119502851830509198020735347612370013929505945310592047893657188255644967170750761151472121973285694949859600668597198322206698738849309738270931168638595904380470551674783231501387195129305778534018894057709426755020034649569424015256328233995172704808684052371957443870564057237862592195845700473935585717812317910759035560886566845790906298224634847229698095136625991125434277686594029748797593043959593941209919681204875017595860678745330071495781970830915522586507756994581419581268451662027190333485340727123050706404766867253849861202830296193535959272227101236775910007943640637376517712818478316047717495908134611771661158987101759329503027049997865786440854720006334299197059574516141158214810988173435924379876520700689935610595557485756711458244574212154893168114088506916778043904601615114490471460334280889552802283152914910321089415910863164200929900814564406442981719569895059941799377325705176961286589291624220792553357382854221998462021605133075765721400612647139006521980272142893629599493740160336743046526098976251739406614177023171048488589599960806220303659586216950868961210918678975718856442284003870738502920114373254066875724763065918476379850845309483362872106851695801483771026492410789128614387955967125155328024314936397147242004979531175210669061730949247670810778518841376756892840363522487305725630785191288941724664000000974119713767291989807687421596523304578467098327165852908625294231302016831958726598085038907358671673992356749435990273363007066049548552562783173004191898878344595477239331964016238441321280924955039604153243549648626920566560010781313396233735674620756289258149154350058738771386360730726177785919987053348825912966304546167033805298394338074683656240888894242649080911229031506086862838752749131289139964359281663594561198585852529559500294038007869021575506749390703760426474038158942586377055985673208169834137606560917566861556209352482170539793491538431417400798471987242708089402753852351797120822272628642839274746000859215146738446735693651593701942560275770891614168901295540290275417554238816127902798053112124367807444126690807560913751686524783087960616687277224210434402466272394977757222449731622090824631681922623821643362469653327815654514223896369593759836555579777555357783573697806265848330263539639017274615917312074368354452972188098819727493396059928563867817281662075438571415950035111282219113536853975508062475784524860231369959489198916265014195713733089448394514576311026744743077645146783082820524686123603524709602710460792753121883606526347647100946606017969931635300522966197258845410235074036597165817731899083885436766961657801957264004614491910208628408524790677513496596398695832462973441596087010194839238915702204895537427403950375641176965882258646886094188292092353255190456285899811246851144939620725043396521228010375909745022915668059037426580976080966266701814115185283166335987348519960750530851702148847059904419121797873766203464758342340963446168382763884205179775188366953477440490759863811850013589611580177935754874930266257968541724135039416621005388081296825446221752201790129157655033276224271441121537275797552773089258965557848751420385100263809929250021853539952462709714194061580801169086154405772403597578983897540187866776718256918110674728249174170259755673801270623109609964492501753873850149916313214370120025176121793357520095078944135876973892298531690576222523822814420632643223089016162653707347351812222476271861893286576308854970883910201767245476656288312314583200427767392368158575394562124258154964698799252564844464953065040049204456747326546125568590602322694607623165706229792295975549321402793280675276999103204580451734221552234260130222426534737258503651889061921521870691277897833604368465432978946805145336560584612519677279326572787928484653866322759741410312967568097758797044653236281117703576762561804113450823656977418828881415863264318805834669371079967952808157634483464435186975722247732670257980029945918333122964242354841401897897236469592371968011835885908866625382164279373786453781470086037147617940576641582615155198158370376787130856187227401066552780511797333956714250465936295707259069262567105679024019595680826204272471199756931318954550417801396032381913868920272559435050242627318477194517471916616897684533933532791679398966432800512469214770862326457989589730799130319465119311714345480984390773634386753771585939530486592460592438183923997668604607561854618147906992621242030648323262977689569694942674110220480588143481811159402461986289820970000835883922408772229724293893597068759099823596372267016829011708826735494211734128799494831778916476599178600821312888599348229615470443468307860708948760125536368938446407967210134163870370895787352032376466549930895170567152055722217829589846005389161616414652871534004632346620686684635259897625430813774104260938315785100451140731522430392129826870078039686549194041176238924893500228086285283166636380587757274492033957335362765669160047980447850427177961018378000112785911391926124971154150782490937443786739085095063484244271322549601589404829426488413006988372215203371852062247455794609044400239291364634810342322266203790904411085118911970612540145391029894611460389215275422252741590664145282922337239177146273778211082586284582557355937723699942607737886890845119636124375637484240007351170032546745104341846808092235230045014772145942767701967431785087849491071959439370849996729664250237179930523750115096391833383803512798295036123098663338766587378662249896592472363981996412232270249491262991018035651292571001168663830787619014077993193652454217098461404484751637371912450828416658048103369229020090047945259692128244114904915379622389950153498360148845042324237107484504222613637069379071795780779665607778139235510381923506200122550533710677701077117356869153461362484478446916044372494059746357294376239291701148959244375121610697303617411620567503813881819880485303533903965213734968088097748096537349535043765454685001557527088714711203941263581766661250868473384833529847969866152093280318075412210283722464047467916317279803000182561897862873490147764313401944477467753892594641126665687471382356935718268512153489458294446451095809425782052159458186846959874852207873578206065803633853098175369413905604567486052886103759829298834928137400325604688188716492894170186161853828260196311124401472819732390541121203174007367303488635560007259706136370440732721748631553410355761469465582640449011027213613748234001460516646899045004768672405164559842893641562687720856281097999573918589358723267289678207218481774813233839222855872025778244848388337242274064763820470415434888568974551230795397554821822218240230218985973039196286830362866936198789851353779300348794878644210180723263967658055657267011450891288576103519890607414968425341277975197197641141193431093280919718455176301990062860578244163467139577306072090976366135602871343737607960735818451639994267114304754382907412397497899096193680738027136900542830667169353147743228093933436007528086402533130675062811503317406935890120597066542972478920945332873113491958698762103130740801769535556650989260597243284480586159158706505913539561786492406534353901134098029360086402572099427406915445621150402595136127417767101609061587774252690929982561332797097379628390469408899484249482738280493830496619186563420544595897797897019241127260924862645039167868284060795356778669686391051796738028316271085498988224275425579685779164916586001322502365482384270342892567232340582589978745345539258839999709116619591828271519902420064975054330156600318741884609693588110257125681388228463727382548627665539782744954284944692280222619811555291714929047194354255580542293385529239534546152580638516263653437572601903467521389731455873712293600893566459149862892912805393697453069563515006319642151702338908013231377495404188202939910815812803388093226891165612489195558343326010117566362770987940988400934857267047762441784482036223198695123133015666526394605119712450239604709225307545973632657451971502635732588335320207122356798953229919581964658778445652600284141087811331047139601381180214851327673740934384495668497407694644975104989255598597068280910624769650805059872177586307573695657393708176136822965196677916580054495995742153201471539173487828610342641510783700544286617358959934626521655540406263179327753774534270724229788289479677531312922609275171271321789995249009088892618453544594347355794323972564428250467286072218330822020227346846640602031600660532444989412162342679213604138391812753521341526434396716738541587944373552796140054920634405941743140558416476092306549791491750871408985322473630319758131048717955218218673943410216955270105230237310207998251388226006567209405249944129428427132025637160096179683614255589486238383000105130805372187429458724294240538062664016254075704847601755445275172014059781405409713085108993331534671433403042180805586936729051644210807343450088218294817749668403221356460210030890406402023474386810821299136511723515106439993046121474855111410014892449363393980902938268826678881106788465585441594598123932392678021612792157502913995760663924592309644066769940294703010116593373295304939453732594989071640086041987021865002623744688314672830331564070741586967244520377821846772426444777725929764341051737895937189276756923911176987076871769586590247469020196605495369622499724103200378645784526926223330612843958056737528197784904308020227833586244201538221359391941882134942803458423779831186649397767456485269328749967038051480989835792590229045958650652368471631213953924956409516650666636324720777845040321404020780436563537421179257816275152072688133045791641725834187679196787722593003821890440658941197100549688918341965421993232541066730751383115320247435146857872438373905121572236819015115967127192826819032418774937369947837049999694715826229038130903968364883070607984577642271800736197973333251863668170199455437700731649136401726829650367703544032959589687161270649012044662626684812829738910887549646800094102674074547396829657557636647589238601749981361165942507548387403040837938859853875975722988780208503761695114441162530973028473801874010609921785786020110776000125814706592060510002250847827199283251286904618882324198230076505026054529430650122192747736667192649105591069387147159781647755790531714857602605212681846384411755744751806369690209107596103467576792962876447088176001032078818046872198403711416615421325196267055346430754150040019801688047765138045641707447943668017607403741896421505299462374570513831187129793543272041191108603670998279955558569476707516030734624998362170548611356330039365986542094651528266674169564498770121519162822099977958247738575110051695461061615688961218624612220972971692079823240630141877841103393881364796061212946754259340603862042320359573626603393570836926434393994505195912837459092214453788424558467981786398644777256578073487059380367127022311245707732066781976257601030496410648178992171109761369463510432384296219125862870501284837978732466546959089740264033784186722002085895583168196513583688029366991211374877122058205444610934791635928998411017424588893443755801951315444777265609072288183513215644920354727454770829639645254485693539797027911292783308004203390289081980043091312013336368987339344209662390713992566445148905157580683888656409557508005983196196168231916920060744813927246192260395946982954459396488451041035647109552159997316673556502920353648451697791392877730205791983536575507505854293654880397763582045031286783422090338302510261326308239931578513038269950289594354427039457934696023631067322331313415244969266992931756184903486522720357444484544917352830005275760416074342735748326224831440451216967536189022909276420732039360734945017180072944835068140335908063286485264942882735517954961010457180012660870612687904376989676640609896581047576263762603308673944048639578396445261749458478595398906744275999724744282446506347263254640905648225300842534088314515675442731862055463809096973478341198549030822856877990789456030086518026813249679193069197323968553871575812560439183315220938396962228459699624135034050527037155769193603560601523768026830902826162960784958574970057837632986649177434802493423291486725076527741198433072736520765291265446615277127536096607124019125152397568653729095964921967973887200451071884960690511024457843084598045139490535111426404536156439933647112932373398082249808446346805608188119730635765045934514097552701295667130433944509285514359928253105695923979759342020955195317153645838584399646876790251366686635704621208687545257545642728990948787607809560055304367650289475496979860183689150985413232700703273051810320559164349827540019380230352382610452775810990009867337741933175013191787793704489246583595148166850378976469921717417194657921737701950233443802498492270604409731917812175824757506264045548825466336911801547028925767354388150757093810381098108221478653713740844711304707348638622252676533668823874318480627397691331647539353274487913622202503601437242764568136420617010656323569409421569228017924139002002538138339716101783310329614083019819799301996641914542118524325064615211418656139441079707366510806087232690444567650004259018458378672564676615446334199552507169914150530831464545235703982280961320234088345508840904596459480245045578151207680960394926228469331037402425820105852302906943677350482762713084758264641259607097947505143709134500182271281915806710388390431728766829256544392028423681418598263790492697727385041732739161120012708757613443593416841397705999118639988312302109298545726061844025592445776823703808159898001026417191865693774699993880510615252114539584536285782555736568896659081035452218973241024166350096747448339680611005531654126028975786515581100194879528351168372395730417533830960334473887334612491879347633819587041085709297956239759355774645200483037582592037810646626661451267525688987976067466756724032986986293816808601964537966550803041908839173506094324952155022085353747405838157728158602715263572984857417097974221411183476743156890319495399860052441569721144996167956179708515349017686952902237437232567475236716302683559267401125279230977027962701170451255223837320355536612333148990841844836341192785424807319215373507269009212625026632995153292728159396978483243362734056953703966658456248660562838352984746243678938723307538147650211282903706942122229788748067080428119127425619381814445636154012969271207610909947741890668281491769124174733624985178038718232328255396135470647721338586990084157930479277298928213862512710508627828395354569393296517228288934805547266186799521493856012470478954833491473136206187087618838531612557402767702465687973098225080757130469816671674938872427117706539102643779268130524193841308456856199920706291068825791025241405494665224379322548771555101704368596041288610818177486762041494391613143938825103350684765021010545988466085045459696466350089948239767921827928484351067502465841131968882529695361243247906754126744226099942961169031193860938201243849307130687124856920807422730717266253170253315203169096019562018319345822867739197398641001162888783856493583185487209125521681476246240717752179536435542842118155792497807332868968655061619021161114436872247629298926578609980936581287422251482679386751582832506840671577622534272985887524244876095352472809526620279721937878285933576000244490762649517700711321699604384408365310109198846346320648507113656269134889971638067300090524735342779481519619134774379970384132424377241343350683739788605929765024925971047635571637634444611627753944510636473322347088172869861857374013655338057237232620223602883940036943991174691261206522916195892839658097572223491292060659837871474094446143392562387891782206144598651709296350156442608285166149263461230513649124783102996744938263787548573229309917964986535201010217091358447250482797791783475308759563653526115615293994600977346732242299164855121308143362981435260838212928586051451496921851150574947522003386267574826886983400278474083821865215035864018431743182397629883423693895505602836086778228267863025695014907183082429087456628386291487052890426646959252138766331756080515133621177487601877808739019668545185925341060465755631473051938387964123632087549345174325814562896130210281010452683039649682147353402886057068575850622554441206581812855933452992581805531329124818134215662487990022274954339951384951360405597769079519679601024634745415848893227436386660527277518511304246945866383776037831743781594434564609213042468470894777991905636148221603027290128098262214539893552344523987042764101203914575741578373715847994163214964776381006755251717406633803252408096575536037288162576939644651081637503586726061837589797169635956960697313460667752471103941383847175303956062517660076430400373216185008030162161028726960666732344316325735405391728408418090620553613205705819589685957439053706463120111463897466740960932345688495372769083503636955543355949972329397180283115895829144186995066382358142647425362872991824856734823730124400487701722030886269824414794381253755867221524969810654848582572773810493782064021724569138898580054421392959865347671674991083690319167802502090761545330194040879480388623526485936947411788725294537972568175601824847117381362864965197485271205303021634720702817043712229447861523640198021976341328713543195312200573825437523517055130732543544356369168718259330982747706167943800453341493028592645228986662607335897583554750188500293991113013762176689055633029550723115719531546865287093606928115080195053837909636736440118742095356185618672387799330161681783540958629537261994150174021753087720716950461370999356610630990270142377543715324073264329419153199387420753072098863364299054837372680519187208581328669287998695752384621535509179174836499604755085136012327467748004048356977904226915791608559149500462165495840828198283276363189094960988107186474330619098608174809447771021489070144454299366823201511260945061759826573469127623435514413422961088910749881333509330250227668039025300983846778211235913494360952997916810570906489956337843063722689937069412080901951500193621037480803830447344692678716284561601157395180493442368451498494931561536695103696431511610455679011163447268710163642771400327748387468535248994659869380601054723904723623933734862726743648062814167034081014342459872831941443647133931506567178255326079648006512015634151740732075936474713794741991914737236547143290400172025205200711197766607679274241386222205408728409686491333863888268514684639429585594442710176062331761211905013482791371797553167935562832034535260739270882746069982641261381207891625804359610176043708332162938253564097224716756211958619073040537143253053975302716435348521726954800355638494569256265047918165156228008103102507003107205409556390289209008935198725974279486052359905796667305366740419364675013576826186496150950089144054745012186647483038560322337739375621271684750334338246597853722200634755406154880349562050507810934863594420498508118724753431223895258369285124513567517012731285965797704807858027235136100229399386411272780847042276597135449323877308713166325745556274781087122859805438291079050301313233162447427752412330106620657688813986509408398439413727646988666429029401223980481419343930208145957812128255862656356101371782322865311126153639009274724510185955584462043638815202233135238022182592475704646436805878647059090709223604989089503289562535646616843084749196633678628652333720681195024664242818003941416977131602873763130144518579606276150250782541861703396191847580032531527089471004653484205910240422122622114192936647453049585803961184220775214158303713362517299675507339120625774536439145939690026846518417421185059929149351528666073221413408151305914998419940280616641479401456158860355626787555903578018889198365107789372719281906021708752059369614658119722840078294511785753047476122552506962601935292598163821765153639007369382957414054017071045773041786905874811451403508628969470444647592583998894844727551714720660411414096927261415269063724229071302662577380710525883151933745659500584003358500677363054935836688657658621602195324738996056238853016136335468904323809156548361950672258585444070183946838440254031758525963485116898936184869804704975556457086961223097891467677588730682181802944754784290261144354429244315667987260763432808161722371913266473477869590894332011311827236266849459257205296484541994058713033095934457205223919008814933962085068291119953684984803311115522674038877252488616542078291881884592002825463048838671548936075272118569552451015193022545383732228959676804397031891791229313192397920159525072223842760614982843704143387250634730076795623388551517710310306241084092648338683833423874095071068602520778889006550322415053643914935205445598805251385100409310912097111100990964500886780044062714006470272936889359152165725806389124246253371480548029370175190924956595111338838158136216594520109714171283160094077437764295853294862533912997032371251318241110868399936108537890645298855728510428794917566141001645693358140872112033790742384707420600514408578958809661393926210343885314152943820258513585513116968227913730623256489858480443601754490232657681589827942402925992698592142326237998255140442103643983764762020912646799686339095497451108295448892398426475479970821413673031056187589806841291782892984831408643835146421484080801427131440079558371903166726867903645407199041818169437336040431142189906037864396362282474236457016295303337625324599094660094478937069010540153680889026095925660155627792835429476449847119829290177663784690165973851585212415295121906507115156923423689281354527451377043430414398395548678069434325295784158750855310974411760824557252183112197380749987584022057780843366954554745880640330547471515175987366821261467588945444477555688596897193649975450583947435293077624701295297149316988168043146338286566406828274515105554112250054821546747190444886373951451694259087156324681415806565479211036045710318402656881041696681956732417561909289973307416840669703622562665115390816599369386169119621440811217707297400505148287638186107340108694797479927078926126404489234960384256030854980890684036744072263493237497656196625662371869454069111786248209841171169612771060059072917082827606314553245421372120683944487955135240532787909088861847671161353875972465025223287519758090275788084412541237945254894227438925213745024902313559940458102953355978932907945240334282050143577246372811895737637383435444269169641531067191498530658642259619113700649442832855085748931646405964219316865011345469302953671759104556664613575834316698969276195831426623394044908331732330540657155128426061941397431423233294728168505870250193129729007947559894724240037850519898208676725462569682654621003507834928205408466522398238545154508639018351822902004067420667864709908477553388619701625529803664443778145878489235733647742730009442443468003772924692569528597920859922787391527992496446382790706553517290796976743643869570994998788221548203594246279635025863932022637616529652178895538403306298475528028141363670882473694818068936504705088807978042769624707189221197275452209193759931498647522053317311752105760721859761422932653526666651367908779597421095547904965503110695479311865913157940779080923621282926121603882669415863525593063606590770406671798340708127102160780683763892188540071020912660394218973344461536923877128312767256299295492766986786633706699650537990042162643412091629082579466253163274315956240164502802869627049860341399478113774683603998753907308581447458017331285646252148366572831672843438790544999321565251993873143797515259855887842486020914450929476359298252285201198808458997360731981183042229950050070233866529410537857986534223125527620028223176363860421448294510585040216073127817524123293993401506114045298326458705590759133272222599473906597045123590634548602758810743199240045416267619237564127796018532043841029796938265434087825782643513783584123813984555894515777131815537380047492633067503467691768721704784021051404632536101258856579407763384821851790268104144637281215521271372852847472613165303567431219685465300271320149609543735271620825996964878201013624429528867265207347547359418556539307401096641039829695843785903252851256761653987516404729384650187759350068906988310083510602537403765974912439464399174858293768606269245406535681314893191139731741634190553536603480320126178458343424179176157671333144761679761291469325087663744040203859189844725936677419842933281009632830908585692119775304678657424017656147598530578262047399875380422883476205997494647493216907330138941238888356375403464752886756207176297819259889392634809632494036064938840918262986726928509107432399309267799003475273987599151274931042860606581740206504588041288974127559334074635425369434862015615894792208279452307969971684098734774648052722082672838110976081745591721536440447759395865133686108359342206035374222262850912998394753533561904680761503396084608012407996099106358482275797433755354103985737483417248477698519532298912421089852141658987057092726900195699262046262566387401154101304906193233402305282582669884203913789222184872522978246269578583415570763091017937624037846958481305751915911961339308246052630440432311578476852191166901398670780688780710817149451354368218681980708208161954115755586580633380089696881677141167019396295777252085683271401587805055975216851137798923706248070867976416949128632997279455359615873568385349455804173639221308306644948035389391688280821022373023145425529731294557949577050959873557663000746609133991976356235723956147954120577296058499226713919774121401182289701060787662711329445376749378941354994814581567945363393069124260231486063230742731022842469643903412886445065989659589461353008892985163789393332350957522959920878216073104477340487736748492943639023408440227535734971894604323218903126046991820555284158324235072618780183388318717020232097645107912322432572087669451465130607322794168546918517270731923476273454636145505005936225116599188156574751486779990895673602275568352371329612910596272216206496798465541475270642117788423656618298669415291027467529832946742169605811452169623072962314706731475186473220644051684246187834203474665474321852256806839471669987314824290317811759824289189567125412080714209638696176939863445390838147835814528639935242075083334379070830085725297412067619283446976385338918178732888094666374996549935871977453299762677497439684846157098507210480480801196939518883016381823171656665948977905974980755064878725382132730707731255102590615913636401475032026020283587024862023725589659396682728557710066228247957942989941946890199695773859177814120124438939831588288774463494675130920135676605181585049217153960575141273313543238831157085967380429045396843509442850220849079299133165210677075993619292069697578828780796470970477068466420626108430578668194432702199189461475843452263614028770234367732503127339855336813646518210105138144016470795521711462537393240939016701870714470973147277598686106524661079054937036203515779710561602707078850066718336449613381542458206792952019524486684396752100968916852568228398626363563228409596353129749567347770571372207227276063250037898293943128620599324882603343226434651636479026184212135340518839583481422155580752613792771332079409550794169038475589893407770138301110631263097198978760849071852453962733939364556652704615067922955418703727249725478702701918438210223626383253387723848256491747336726681345317527934828039176955567071346601444472888115079850185785608398862307091397587746897039206231214412255536538225150040619590065027229978472236821637420191711202306060920824485790276502371775263598008556303249408148106471623744881410929265288424685213742467864562776945762897386854020671085360214961048188489208659397084637425690926077052790413048634407380316248454181042377626154615503272313710492110168869072858267495298946095574765561146308166577803347797619780322042461160202782069033370498277504681596389044831407201830782239936564824883793453439821938565160968118543345148218637401527935227623489975621405759665080888335117872410627773589627935158583422371778988663023808823413325361778070558521714065732166810715748685946508537593634759655305604343852165966262831488353442421033684940256644605009849772954126689321371301118946776631729675640555425421603304944263209500296405683884399358375309793648862331520802608103273694799755182594882958553726142159805209037687605535498435066269532350658983426359552533574793771827830329225193330010006886969141989779604292785208693345279861193891931105288208902597637428875771123100991820813878354820235251331973270532755719990083452356328961738277755673377589336668770137774428715399455944277776221841194927442182820091079811199381420025726943405760244933643815992660599184405414403800196249748846304586302093473500337649289014421377623110627347894113320930479095291669740562771914054132541864437667855835141781712176891185967865364346017013072662925978125469556366555112431780893847064362143047324250504784783448579468461908007581888022590877617218939302259918516046122024516389513129699571009202247092337878276530570079112579796374485531844102435839690518400986641699571259139540230004479753027903065737509328678250931360085402375422714881158996435939917620755233654709872757758079287340572426977981347340664976179648106831995668997413094441730447580852631625796921962899120550286333669613225020051371965270829946792629506692074469436080508709072470349249344019074291184151071266316405170682131228290315935759350353614182537259602778817996084755548199294957655582730792761296050182318150871185838893479771408059223923726336267784537707812563435949569766146567690949240805719951589415049071219825885806637658487725097865107754957442129956382747595612852982011229102530263367693100159765789147902128435551940463273262363541180238748464413386921534452994760801550459130522726539702994402595671426827495734301215269485409026205248136230007441517396988407961604179580523476427212805315733705149997898977345957662117307313008916432313053464717763022523384665255332360706260999275340186975509918067461539793250554723274602806901695632538192212834822282582889977150613856627063127697282894040917721272524939825330389848083612464350690741269488901623750883007100777289174515722446788729534518328091215922697421145148494885205034641634431679065800350130587129879836445099549080464718170418654617733020543918552859900015422946296151226873423195025255562729332415460874976551525438871100330779197093307595538374969558116252138102825696818776742980183846545478117142575453169239843477254634531691539902056356391994966166202298404661356031631246785846386981349827797064197599374648498823858724518388407982420771424119176105995878577760445269095329038215683907167470022076969668394697958755471224993301368131708283971221655863247271134547626957541334666755390221855820936285871641117734199603378495937855693554835273775964258535674466695421046120712545680372169694292258742032735808388504305114540026632189953725714916024834011720208328796782892964720072398644801144159440438792520391999394700084492187675108320632827709899211532705527592781669787586772316486510443773156937885382993737120503092409015563224116380132907665967732492718232930421032342212053234540723650920342229189034707801469121920980761183606790358929379331371994793301706294366693259876867978818356685709715805512536033980731523473097322779760727215353790737948416429999615122026606540812028890567769136865496622691398680122952122617304100013124556759025126907097541029658610712505282090501728548770231992840489157343056383342240234823901901177070260697986101699623743957065813278237167298249186797449706929085398925844844953062460188893179231101274724158601846675052738022907814343897609910043808901044032380575442728758080532606379311844841600235593110255757074318649800570475455013069191641899114008431985234484345182298121003607197904310254361354816809308856277616504952802107896293471418415634940215124166368591056878671129191121722317429014621209356907479216807712144234925553715608185575791801610663501801529966150147933885989077405398021895288020103823639772784205314588976953264185089979806071938608163530675508367637385393607946068833194748164009830496823002583145407497805529449920015249905297324797074169739676659104132901105853884750742875817301288085000031075445144061422819554522868430145760861091814004271657903770750004301260742070661483186437105449163639017085341200701907602470287398669027586527172877200944143633397995247499523185690403477350805511589656643693289736574554870161151600586560668839247908566238680185263204903819080973855842820841168261195215899103387269185818683926537162311776353273995317369733544580878557298877819952667579337874111037802977275789857784661017063809598711790155055563895675564825650776437440698899713777612709039597434268896648094511833532542726407398836650282941886674667411005025937970483059927134868942200433970545350143879917581210848907542866035999962062158185940820156912023412215666777523134818964437652116897701047812096562790025355314389261317881083245081432153239345075243742526818140222979442300479538309960747498617939526412651289707202050086370001729626504003247747973780132763177861581207641286140694047228046067130174079386464195160890266189237341174165818601438162294832726837646962405519569542435463856582599182314521222691699434412768675765874636720409261667272801962629699175651275264421805171725901808466158367316555511874535695911718308223852142246859306494580486620864767177583289705133902536869938958688258447277143680295286301160516016087920905674406240822117283998558252723782729113391313651284272372667033676284275677274200643384944247912387139698913130340278607843294321638617790996142902700131761409499965376719090876704678660931498712932823004130050556545584546992402260970922052464943807283545861399805082460625517682863639253892181193851772390242550302703821148913800066287180537788557854656788939172577312161259005729017158029084724320063108135548037462372593132099805072797913264267510900398747247418780126223891996226619530478967242650330377728882656719106722394958076117563163019937537436000163175805376442313764623470915442448653790419659982137360972612399058737813750311583776010758325653481066661749843421417810463815227626820481460103755228990017156906482891139129028061263924935842114662189771124579048811436796097374021660277070708063762463234744471667633855381999800502996606280334022068681190368455669339356329721960415762528089980170337833817350464505638238724053708919731145477954419215894407436119651099261701703509439635530010952443900765985598765949398471566169299791298867226052105574657604798654861112614327381251840767412118691384054707768720046643114121738443856474527023449086659793251387180839116379185988830162477427951546120248012554189368181460255448281519220605210945896994836519684164906864396961200213072227170515596015214567006134856539984199500702082925446997786754345825504905555364248582635655539059697424152254981363098537211128210510065172131723814367035975511707256937226666492867844189309509255112894615349663832592423800885113375888337528203985799704999672512723138180553086034469091815185082043508581518829705019930120010230474116856425177171425904002001332025573072244988297643409736651737056470808626107230196702380309056110448644914742248206062455683820545725473185801478088675522167631597257467158954986482055052764589232353918218104966115722231256313679187304586137712591246476064589731243359519998503223671297905097486965124905651459409706616202081110599044232881046469283853692308595936563081078320325516705726422324803145940862043688894999276826580241568378899253888422112633174563185384826251971748135972887132817982387354701365415543327164455295161568167517971524424381518630467836119535615030413207259774588363105166582722167659316164196173662623153880418380103744730664807336024191675815131824424518667043828070226437344372178420962472561649706419849558371877453290085986653018412411082585055524669803503950620927131216647164417932131818168039836448393750895956717749359481986224763557820450317783852485843835089071496492280064362637788972977932403563765062626536644859695690959728966506467269623457025216088796112197542342456392675396997282899283952265202977658005719852263856744799707678273525757530471688071025832317011641045791228768340662021596531924669313462447018258752963134089479130958508988240143754892628312432976577387455118670095882136694886449656539355615132243581063003187084848511498958277656897321281994388800487906069995987512106516905051601438821129519773350831644756564660612321775363122710271467136863493648614189245405191862982408349087862659462552090079206489093567424387847079027721144758200281123070135248671544085800609498426062705130499957447423941917379196844558979098433115880181298628148684944838975224034779032471003343560700283797341254883428274094561358845091532178368135318745810251416551480498586507594579041315232705219350192582865060825633459085067429200014396276749780720658622286974668797864485272854801648190621508015632604456792617820884077060036215793195798698584368535503693700921324718251807159348544776025325365090208571943266729989281238245390817608260798421737235064032450938581371419611405071238759334756047763564230793803770508996555722069861449123657754737880076255626499046241120916608263796652068578876435892082686888007412396886242125061452028012049002681528465474646594945513081126624729060569554062681635787494528377460245257722397568780947543136761983532634206856928574836258253555198635462065304971993179131017793304262414423830036742075622580071826593345318297609153969423713007907584076664978098908373408193399138887684076621527131392608708941186807714938100626037600156445371609606559878660206407850616563135195993827118531627088697897999751222019688644710210147600375146452341771390391013703425661638612015113841009703754983731722854192656533671107036575841620526987456731264192783336619313488690324493931265507221510794309888599031618519437720627473272332325004102314560749565969045325704421102439080802942010602729860006851985484828500230762597881171246564807550248918543153031166242659067435681344274085890654684469045715355919218273157941300842461647022906729740787074721095600140583014915263730199079854005748911531600143899159010626458345742381720051695672426010264503523874340904725544909742737906373465546304985774821571934767519875487579993575886446341842810520840768363570913739276982431112055132904343202777619920179651535049754507485132581041526069490070924903330430068978165312660276377984740401652087020939642067318498609007571699392996954602889713472035721555955889570733398763192800193417501523043753835791692226447844711062658432307129618659768341891117184079081220083687389837931730787196872742352182599822684814621279869096475667794898462198118542520126846603206045108989395982756839245206037718542788832789910090956531171892304680516909121254736196993913382175553609540603278922228845027952587118527687765131016897803083685765068980025794740520702099934102450857253949922287848814484620985412354560730887847598150309512013894975611018399337640458504438694060796929984615428730669811875746081375842963350830423687271348245625879559752749849476231361427822536495467298372478816139131889570738219052989055769148514396863915229371540172814804933973558353060994057737528750858113204831558093381477561623928812927945685990279073982857928150123210439080114870760774739310660724092271491815320616910753419157083569833662059693097460092351637555235190730597763805319643680312818167491422907614557569675959526885946846084289821308199137306492034394215801547746606972034350246310656445907588169072624140017901950651321854150924550240922533789771395363963987749001676328866627133785472193329964332325409141561556297527055903216957433890727242037153361940738286023637217722363040349262791981435353633963796775039887620803335518366797212989296303985868215443835001447806367791172631327410636776990129972020213100328544525870029564420988965201209502332298135710738587456427753362209136631235969027841435895498780592248929692996651408155490918798872767156419074367693114322850567170564210575193137934252003134712555492708383188515962350032621911306088367232529308071172300575246374727428373920845186205206617595856120459324871583196765731757230310916570250676212378388658902226125837283405463726637425229094962630891753956240098063628480451101405769584919935323396578801984105632555612055464714956802044135168222020629142306426789452801635303003527663539908396454668636740064144357054236873438210481360132346331235120775484751043340076887440366928355003566437305206577375662297894597096192586751099314572356108857181561692314175602616747589317540900506915731490397411399041303590631308546412789764984451302283601894774672636046402499781341876366076596549455335443188325750064364837272751249634388939353042838977132003164649513315557181245613305918936212069848764648010860162348539180565582282851319643368872948978068061541418616753296441284112578918014302139443109064744198454007361910429107878737399620387885842753946577958376378835810129407938356872315343477148218838412778282046800218139533683020996724165813855116276858872705099571010049307594625149877340107474378248132881335069112585593213315416765196550993043766675724685830570783002602554400505407950221793250522181418455138008489873350224696711039424339955612776130936034779592368314555456992090060157286328338778493504377348161230838380787527946052729959115298991217549011093285509088224822429050301508095618098522640056436216106339823775111447364287061072444469655120526365814080762451086318630375967851156984483887322720786813367935515997650075435156226487776829537145962848205385345478214918704840886961870520995019644546588066961223688309522733124408541155687915328347037965824891350843365252133947969348725391500477472208150728204676437887399075808406442465975196143624648276594634670454513152156329731399821491610523046674997488644087399736114759006177720485424969936227352721367380061141599728283617434305314181170667491972539496744649341270498595389173027136436294332674690541224919916145287968887074651741151874702477423120221546672662610244814546636644683826431858964708605746910388516627527033430797217593698804569385059112373529205666809457424604442079713154365240581539546262482453015652887014694628407046709671437759222378235267449681959581528629874611312968450641602656078734997073777733181402558037929866716597649057152372311351435869760602408710894760777221650144019398592763795664496550658697276598211764506650583933515124072865540580461985484936828191345003663191462677716559667732855427484862258655911046875987037650164533898365904705994231087012381196836223942391064323552642985451958922081563811226686154849797928323752667181399451364312405721323567023920083404596351863548376375290231857279851237906616490061142252294191275664396414157308364645182625363772344636793005832859206887516090079211901511166927084166596531357185112687298627910469022407910019477753537395500751643408907025458550122625008572623416463448908927901803761292163062740436535667948992910028949156594489690163295307374882446682180134978696219876217026403771492261068799913102085093890237525105861831833542488092832053934800674149226124373889231817550034515643779905827034769538879522355062172001892098909128841090998868674506260491311717040141467902808268168862014637006795274837307164144519358852629176125930841172213646470803005209865732179909318086174358368950477116234829726069050404728744738540229802633669860711415583350846266618723356960782723659137755999215525566725597134221933663355996651159421938041333270397213225091396469993664520911295086522748689805992344650534925470078192268369959474852837136420282520653740028176566769459222215286778034867765129276495465385577777034839219179559586202569283747039311001425679760003778343073203109988347144889333224655895228268733841591715812383197220136248667091331673160568722548813910189362906430239916238594735755877018695526308411455208555040786434224427585744129754498710742079778638445788399003811543582942707663482191950524165571598937811725283239519638187390014712368367206702729924960917441777628769399327147382568090832367353705470953650649329736209150370201980932900996584271856330262753873756455853467802773851528473193508284773790474678523563971767502197004522578095948020238640657298653862519408499087057147096869533268775707287158793576619618187776430827047268381509519003865279696290577094412537057354923483431509253255810371075270181524960920258443335201356480130862124946498847469692219666170108478927854203805676515923123174041218295739626525873255828071996461182028620698512569281398139276504799527717410797254284006934287016834657289634672419576930889776797790781927429022414895296879282767680690096458714245645092083492429200549192188594649161267352979292037064562842097220626174056057022056535889426453041810367442381784962394877196223442662527892246767138654080800986279978728167822711880000546720209512001698194837382782303360375949746029296910594016099530366946354704651017769469367364639082718127654745864779915943901284318964633685561227286845090637496477489184479234891075506888980126823842592214097193527567973808850850396458452964880979797609968122841391246370263862927070262931658093471937904111099566397399443250974385921105861562047486271602253565150903149753898143501598972632264993583992557128076505071334000827747377516638541617181866449570287552972010122852558680224405355202295284569748137196569449199462541503706383074591818051439832752456208280864625100412910334598772850688198628477213488982126996827431252445545321486921534108761453476236848826752921543240138766193273342452674771164322154452451247647950841123894089273762588335108034156834462504462889349208534901282488242109584047280462822079294482064789463098526521064349873805119398990112101166634541247718448072478267153975179048910727188110749687433243234576917455451036756021416367156553244120311940008289839507679368120624498573971217524588480043982726660114483049825228285568321463713762167884383451692012602528163219001010073058240932076192607692173219508718144548529478962115335005393203581471143178870037088258074164358770837143103166086610689619570969685942689163143578813278213212629221962769648125786971968103102389593776821430028824626869286011555005180067243850172220439234098233365928465217468953850433395466879217889975626351007472064246618891210111433244853515258251583616657436740755710817187364191417534895833478134981568797122616160891973412591809455855225014808239824746679225857532827231800094434050230679217026724842292934606255053705063383847619105328604678430023915593691946636280629145102635981977786690175030248274553379776360528071271013073792262508147417755523622503379394056558891502462901537213272789080786399608743558998979167576015144386057137900335247517675595768351497275707164216548726008354483452226223664017712139160647229816363819795894937927223111658971586442831965787765704070645168456573713927385755142826488936254882942210101889588402260303493212604768390983278888535120110035369291355845705106731971912565501299525680781670538040051622474260235942184283024300482115079604806050844221212121494761747748922934252173405700597183292864419003640604491210820112837594827729724556416086488556817342864465531358646743402175866657046117629668824636497329080000165556672180045475312563971985562826367004999754102644057767645345018989888996759505075903647223896837728051315104122343203092579488547178149398477950132048589262775038982074404708532868532240543289094545345049658594886427181331914790954373263610334885507376676910526712610986641937950575223707300105698120998098971892956972176728722390581647013583145756824496064969313101159063788219601247557935022056954923707629808316138335108414305277091119070485275992252305760195646263532696744926623925374383985839066725802068081103056694440445563528014083559514845959643594778403260964892534016791491287845047504367420451532009653639324818217869451969511098814209704579067102310059959179334558248795866406798227249246699159488293934019089695951548574768184076753979465147733149224489799719699085809747208818349658793370527677838939128168466387550850800811757389972300067319658440696873954356017824372461887654198003826597103719660335926439882403672274713626366728082528093732370328325152114979482781117752265518969501427705499236783417956771824978167053094043131487773109907915519840015634723927481687567974712518922960345099688981542154211665316794226830915035392261799967493079452221950331101412640455424338447649454838610856922699935303130281604627145993051781848982663794387025641048777935398136629607400358466704658151355711945671396729813732697682343571291626650141332498621342739750717155347887868277187041298917377037683856940654579948167011331066440444662327451259528730931354156681821637634879399720634304548042865281107318840432163398986184181394360310506475539278251520811027792550482123824457647430239639342756014887971865152094204538767815184059771097933532565015037180833361208312067570081771040374349574518226614111476994925183630362524788458961319846745216148789082083956695699519116284097289283757394206507936752263194799867022165793477022530080796465954052499524742477509755141022352456207488362629696554952775025378757133252736568074297941034468652386616978008060220755002005735016223830807369860465803644968061592804326946211251025594110370725064537325041903734243491067393052559490819215309673662327355650812710153749035020837789469094132469091646809743501970936821104518737632513370749458545028501099931577535208382536532686440995242736242951436465321265914614869660169080959350305844169710234525603419134073146451438623297136073488631111286459738413141339635980243775786837320901611134197539209427938686654298028820495013705421087494834772456602040322278252370888151501184268205359632947897233323077263861237123085882956625948878931538666469890572450331162351307873817213530106464566369189239388419130066591791078662168394012887548497649918099739099435378149236490704351028834829476207176369629622776345462022248051752159351420870504245189788888620875053812029576192911119507560332672003658327903265108676893748475729567739069609325805429189819300779117377846014578266329749941822636314258376813482109954830838781769382985076676906931734441971526897473868897474152896315456208217778301704100379352539060059870513166026807654701594494510826913808284046090420333221088529854804745531019123616277036350176246298975576868381885399018396224883406901931079864206467008409969202211310597532823601966382955283082059392522169625910149309287381240207154725941476547649048313740961115959555297749194361918983061624536278141395049574904621903218788750668318004291070303387894184418144729132937583297367814285445047149736000703393173191545313349024240243230236123416446884946676683130897502430178031376266661948138241255415538953117997208692833247781672144029052226832345845352680364322821244751094606281508125442102899405123185009216910073630828797588624877803186075182228859123709184402911165475849289301314988463837951043825668680395869528393705115552940764563611342173503471448990372866956009656736518320573843576045564144916833489569825037871122067725417228070572437569521484599744436693094453229555109693121639753007771474060549782656857536759242315727366884483218704978977363616045684253061316818658945795093004596589230395571313077851914036975732818204954628421025685667441908994639853910073911817917882620734541440859651890680721933672510732820429476316230079680619939882506503835615007346229413423050263700944032934471269665630677024769413271851170929572043237387618301168027597439622621471922706095844656958836950767348148813566188248538715328721478452178716885015052627755066202053264777276726756774497008872769426373310544981615385434860392805247994766573496351924449570911775249156162733638949388944157977217362772561216441319401796799507325704118009859048583494560180643277696430255246748698109354834658712629931096819766793660920972148745568428131042658410964253955373104810349678365539458854604574762157229097370140093546897694300639399336368528324283309019460959798899968154101143055514407995852756895793360678342354935639133811133869798145692116147416788738774744580595391728830927219526552767230765993706724401290676253394438343076978258879253970903143266837016158359219676066320803451341216139160271762217988932548513198338707591748193789371041336178880587620929601006936481642140429372290628031482164866383145876885208228086714507026191155008582153449850884541403003986765967712697738087207155779441763735736350758960903110923449169359332067593089506718038762349628859771047549129859052934211466219347529670069950625829390451036649529688760447303954614507299778348482978634156219744484556327001002944526292411112523052302979488434049706363403002128824499513640804312897333578053162580857629851459485578302842066024574426276707994605784189127351037807376056932227399695498905547699733744531281565279222390476699799752307014200027559684560390125214907520706901672059043519976321048362284712528150268826254734294777259706793094366571454729518400233506106999983955887875450993992427210559051804509128139114564935370382641447619903956411857344645103135311411902590162601033288840009380242166646391042558046004180665140206218158252505760261451518474770656683490297324885643330192245646066210930474613405326085883407468495836472783419223865100704569706222536883341520200211506214803255822515258761809225337976815284617425886773025683261203104579211512204520954124758977810435945673121364541936486984059055780694123609111607688384624425545187827359845732156335795636574943907944782381618634193786880163761129232059656139256614729821313547373119795877410798590737966689918854334573808498019877730010059520860961358054010488345220598836723467786856147523661866172567460867538054651266632694909559288228492818022159476071854840091039792507852409530768834998394438023179448345681214975995399731089916700322295270240641828003624531296678556513322102574178899490300767755715315534068905891606486629047818442257256972507826643107399863100349322318024824558139494794839573052822126359825896103544546261729740783702257967021706403217076805317929644253402433941423663623298043164711615306201203935285712896069549311608831996851131376445656752053935066222403581020238777715756358982429521575593469388782430598675972293584433154950777166264389002836023283314117693642505875848101726262752817343826741443758127837440189729508464374602099193979112651318044161917457159652832502072404852724121555648531176076777308024861127816429109088645696903383117379162382254956079988115030841199564802575087398333823315818546309347895724558189799366800029923905378894551140555541342649438958482918974224137877468695616932724115389029071715266934607469485673894196840064615460197964820882501621661838776102433533517726507708491077815123612788278604445481625223656030355390900307193695918484975865782935310329600778198536389342037298078394682927660337957454082304357256013953910123890789679748272050404302621446748102862243381987412234126035439211130658207290643038709053133795612613231468683954315419405020154877276607129530478071242532931326267404527425008737390758395683434623478810414014030755388733067074772441149602656504656367053694478375280331768174762954953641790684597789118163853586076030627566000857496136501439076291114205231127489699445218573724984238661816824720146810392160005426605940305001604678891366339036970103718687035476773324576555155139061016703722359553788702458722361345876288642885557970427338464669115486204316455746625160193855549954294467536906350660533377867555133942743936053761241183914573915486811320530117686703437615436808629658677593487423403984298955989574332479807091525937871788706520637351791647649427547524785157143027886934271853856575337938628176069304552806971338525784104086919415687861274219558527725500381787504531899248661494197392103813232552294666426187553846776821486130923677488998937267440775380061004606649752566168257315319479381664830082840856167210018128493088453640619238871159253815328865385304233013815136443403374850586993668734078656850233339223141419667850687153549538298969663952991924832165098392977051161468273305383503179555091383424047898503972415510459047972486616680145794484063919323997307673948588656842798132659573824738732469363905790221982750162878035584442630859499025621873387220354843605699820181025620872597418008729459812983343581888278675236334536961374895642741106405262172584628111835601064985719151108787250258412031429055368827615063222772847182624052062202901403901268714581970255349603221937516716210208743284501835934296370908142354843313707398803183023911305156591417964675179848697956807028908183096022583624531125266895780183450543731181485711031523808130198529265858089779378693164273199055629813643743002348073372335187649676019691988292089680880363950676082402317577718947481207560762785425746585485746186082023570797834791327633597484204722011006302469970081386903277168795845455094120471902516801295263885758712935202583565381198611184077492721991162879000286876314911398085427493374115708930779509202380161477174184300817014742797054595546198220697296751261582554464456622476755278833408913211826129963043608837180039785227006062863206674399119401881036645719044886616788722763568192690124852131986027961132654029169333860207458442865242298969455392237018203742811894685660967195480380441737190030347186118199650250698205381372933067099322722831164841846666584715618704244100492554369067409475084276653198432561780383278577648876360809045082191313654933409985997802931195171117179832466234918771700059534963298394606729368412189058833629355428609636014945127836171135925959832964350984107409491615041578306416695071770332315129920353878454341949890625484003397630766333131821313144751514277953123821925041377147805430681293352653327380888181061067755796153510109579218501117659650911782847773576946426619862523651161036862678437193459449224228829847413343116051266163906000843637526945506334398272650402854458083478465079727852133078382834033312463068201382741380201381635064709408679369524397197542177609370014153393053105825246405441827345737444745938757155931344821141765870792358417308482330029974718243551071040948515526834809705636817769227419131252099940406913962828535812803109415553520589914650434485670943738273902022127479929348036068232970730947749940797491967094490729519828694132186301241575927226621548935235760449792077477179740704429146213609666741823829564980307415904536879516976507606707887743663194819367982752695360490547542385438359307861602505012467429762385324924111621627191724564870872313724506074159372565431343957429980876609850655536413181874148704734460261590102996171635131346671790173771704640153004091484581404078679870776587510550817437244704884803828650874308895226142386491076320544823919627827409526775617490348262116308598698012322309360055220056748312976374934421892965186223733419698617307681204615185008099916786729326911734917776663635062442099990340249272620362536805785165788707470997014199963879230610726576945438298481230168739390907972263005616597380064338376026316214017573177592073804096643800433355527754099069832472668453110262373759772800398246342875938331973334384864466706021885095589142568571119544109964927983417012804569818502788776107619889690274793296041312503910952308565381201629182452344684807936066200219657877786563411850254119378136960334837888491338168308459693215697711771386135461649712683228697796268594332580738283079046581815323018581343246696586465909895069031924758927370032996868320609004593572416340166474652824303593574448332304276259332506125970931011288403739454147267347128182596800838627517260449024252580468570678629291129717934617197905532374346171560845468258684855151619569168747683116484033292972638819719204510686751184828844647471961026401369698051426110964075937862545821254393036434782260344737958377829207497185942427606292774020726916833186117196993466328363574675733457784606490141893478668826641769449786939513730986590947138635791869738238909997446253103534978647016501796435237843794489190381790095356516718666297960024068492060932765304085504729977806649451044097559080018292092279644950707599695436918651145470880802304754443851669533463186042712196498365056650741083047542042391437289185556884688412071998250541032682922855785615638339803756135525706142470340379889672903474708909072060908188791453249302120692913197987203783708083995214622914434128363257184045982852355154677423532725599857848515975527648548446371900857344464194169122809573682115333568945679086855984034069545735982097988347424387024209506807480457552797876400291373916176948003070183226739370651321610920518033627934673156044625558776361521246191064753572764409692314455725993074919354579005998705893977310827582744846881571328614984708919599054599089497178449241625017217068746351391604490598828644094534737689730208176727631372816397178300166730711023474383591639077955416434641674617216966946031829989907661271497818806356879983109613456262498059220708785092122920228399302937110876880621644495813592081570746415353427318893046163430216492278870315057233197530145542615677720265487557945493675994493931690332837533716592497115639290287256420981666514891784881538910690703624298478721063661421593472317379977578379366492014805520057542279491498232948952830214315597553728182245456462628364599378608474800383153802688626106536418253140350889792605414277727068074089464494771174389377993692009499292563818872911750267554450603534414830901460473153437476546014577556036416210470376510250383501050436937308892538531433742400562981340319373251657596565351932462167303848583484265858997000515438953719437411508836111458767180823023720700057582531351896594325082709028281132094799927423020811585286905965697499934942614900722594324747346965694738634109624791494597344437800185328312954071985117813981180290484236818112936703234331164851475270445606930170481233955999451047192669953299331063306775796420730272716175321563387911648536184876774773846167191842316493309029379709578032962159456866659352028480440973933318987092683509636198354841889081358881240684340324394273641090267681788629297384482941672028749898762150202194997369920545765771317910119341070452089464604732334233867496752658210093654003494261173016840614234495333552822523305019162828427188452772864152197460197512062049847395139766160748217219870984160257073589101712286540553897856931068159128467505946080010911282985116756290905775070249911671144929647940541958731091536617466466483985696314127336071226252097711900634110228918839056664528801304743176490741546813620197333305638865921720854230634454067924439370383238614388107468474831358001772858844999058255052997770136280946430679380467627146923546239557646219969738788609235026128766494793527351052458722904538582317724867080752437281675252082381040284678614811415779843143114728781940244604832297913482952354488717270217017248096884726992710766000053216691548441041879836824519471800221459578267582180692288128915050324410704302393894406754985141399838418049627926244084793566950694171158141966335548815882934106670069095902780623101806366508918867224926648264329490244452049163436090368528368668003659273074070286148605173670302040729464786038392082718371001421471328871616934688559191577079814709085799803091749823490422492299728652870795962704100902714903143823964822137193201644416259391339643198206393717858086783706664856614817724960121293805075790744195306925436778895702686435947931679558650984535291473246515556069777777187705719074191265589450631820572487262929431692058602955200317742575856816361624060318444101692744163595683431454237745200838921160685327512087828610088534044556356295865953126315984628759488411189166798181089423641898467311279322998016930965637008423768633977512426348045871334529402609987504854140537340020912001088602379739748527396980730742201662163492969707252686765048236198877624352212374531370750862618736736586890611067550928881349696119575484940413295002917085365707744728649440890016516791960564527905147327740277923866576710392714274527457342649740952938211199593055553997127123392648787456540767915322040339717698450299739762610751209467824765086561676666661569480916539917039981301950451824979951115599290954164152990344463550139399835445699142813445030922846292814010396935091515189531123019564385795219477809058537058537071496450644051159154279647502273852038182364096236644562600303356584301590671879963739758360757417775757451856108387883236942753280628116830453635529374800230359834846464307160157165544080315408147948150323154741130358548655005086130219171388347748689450824362918613435939441516084217859230123833183609118056893029607148935776449517518739826815690036758108986738950853404076969283805816474506462338759424862312664903392788848071809260265039829505672531281131478165641519529940809588469014906718580341837731466868895559051046808129554818642772313150227121421282475964607320261939620662071111693413759726662826292098593954529726133714479311311690636816362824984741144286978156594718798549884434941611223495131282557128987797943399906355988704462548539556114407186911909655952380257144440642884214055195468254695648971052708536986433893630639125061690112937833943172088885644947296757071800589876004032992786768050875872406994612639237529443217947743902552254878671100746104460366980658579158861658201082394933946498798028148924016107692524820783185375880573036109331701238748571607943146741108833178163794301322008920521650756359817488313154882876849783744904652257990050368562955086812388340107553527795600259663323597453017983662609449139223185557945848233929963515107906896235533401660484255038276702437876289474040431071535083369127633669381894654804380057792537352987359597207936741534554190593692912486474497984640855941310416709744746760547259532933167864650316317771082369953527735072851373496789026187523577813167297098927112669467712460308988648253158176538754787649776905138044088205294895615236746423269041429107443033514441891170152994274285658252602205866279470104709723205591633992137083123469627045371968773976817974576399128683944804082090228625110501419821507339548375464140736034162091277605588386993562303558119072173259468413201533317399554032718045280812685433997243345123270855748095347114652914687874950087952793974589881979362685349654544480597357621553973693461864088693228010802349407977281261655497781114102098138556834140863611207870023178084330324606624904992930985071823401789260188329128146350669089904348607160181966666765242265780732924261633106605810410966010542972051967033863370104550888663572086687924743139441783211865699814851374731309917158313569954394092655797306471212490821383198856698313083844839094768060486978768670714721789043417257097904841017163767523902975968266217686850980412007798017689464777628599234060199218788350404317121972306529607401614848561343256576563297222788551011089613332683904028399201240708955482546447447597504570176619079801343709663761146389306867597973350816540969452133282289989136412000347259828082922672257403366378198895870863370476552056482465526745004945596237875174380876207774205573712144818732789286426110193089298026131413851761964153935104928864189479272029180887863324216179673598878891887849686784947185795363787396578971501653545166927308437780534836325099152644730447566198863341210163558832902203084430296031274698556514047808083228318348925676107590647829644751358719338219985843662032297494232970366990178989580667489579764120230405053321281819719797247935703914890274786047852113443364645648620576216504094198771558179542909663899493956576735470451237082632415777737170606425449068480391647699915267218097386823777140364583038479253836114342661087950802824877460495940846456356845840376068409205178025387087698998264396488116784224544162619694220714863974674798445949536177681144184608527397803340095972756948359104540237379333272652573897952781831308038952671980254949880323135488619584779151879828939458974673953281573312709029870785465713168997811583626252163236047111670986618874249776746765847882661511162055496284453572948365665044791889359720593229434865918807764446955586825720360018030780711015781448465164776717833824425024535447108932631291256406007999824419804724539701688531022746866700987983745680054352386257291198222976711988486090608747085148666686287921742119562087175137395493467337595765416317872765079463379480085958540331430067285639761290711317337987845298507711229207102526160216279966388340545949203600021501594415562251054526183956206473722013996934689057390498708334853228293965865308834223585648325981481245126365277912898845219916214820588000476108829861605329435867957927643546366071261555498490264500247888409007405390830814855867475127782759360715494010841767228575331276192801989496383420448002836496773549182136679594592826072504051915437368625308369274414984172795862149928569773645373260189609293255806377549194079940117157226710011336715875611042420689623971950454139077039423477565853595172221025931007057037996302520415710566690461864646657371513769967061201387381926282718253046673227759024326682638731478851312125703190157277084234277427008642923894596999713460867551744597236346438537885123370947658106552552236655984659793712485307304291250582440893178900247259699264604410872097128083791739731856634969552623135500670163549356586405954766029091009329075221692350473617338408992331238854433183884251314949198839767932885769552579911487272724415694093912497603436529804882627987466877651632508852028090626026683280936880649242551937868559357021744971289738430834408334556317987224883388023833472889918422227245113532897626032251564555110137872018349330520887987167465961359669316479970082639198709224967087188307370634630837823427027918874605666053582261882085263944147784944332073238552135427666064933056301096976405129719631998798752183808991400343700474117881521650541279749121729742487733021208127346217382860008944053085744360359314912156632561177172605893377525260247154030930053205955813681449981001963692776933386811001356863226535437896770496217958827313716276448507285556414376205172268735782995157844204225121734150395941583938737922632665692252304934983084163609538324902494357145347805428692592194786345189163644625989379783645690916907411791078461409557578612725223406653179607034979758401793317658426893093757571801431108315207296950455748018214960738631297598031022405134237724375613384986816967133888720311955330808604630941515160715085629542031448961075489874407981963793280347277107376786744342813139424636736433007716506517640882643546006748794009200527780246409010656033396258304210898599917729516941154394533099399377372016282008157232228142966937988002529606431051836562149320908407207169412155004260913808255883157773758760443490247132724488205633413841980399091629079878644020424563099147927732686391880301657770644395288212283377155166961820986952570105346692378139463597693504557383538459185884890183651477313427517456229305498935485735716765283238578521773452915018181206916601879399593072564321391299925038874059847682724568881608334119195983737393131208244943319866915824372510475831390257264059964837069742586583754789063106457128398244277887699188334610671754476238596258861488518541724358535128061111768722075833663358463734199396506816327065820659003475698147681165224178709378422639834129293358601529431425517105250146758581010371437785170638801164330001929596577505489728571630367718577775744722083209430971102664095049541055141100619224257567530899451049124518416503950045046190149520500794277052788413234574805984812017350010063816563849357737288014874056473534808566728398205105854785317107961356214023380352169776223799001393848384708315697621328480686501249863452136322224779171413923465798145340445788628787544865357067053664748794988858762179101792576799256527219446997606424870674459711205908564332120000427224924499156369481762786649683202808387208624779456420549227797121547629542907125488307227953301164960714444625881269207211950711805310231344762167120537528818632585938751334433001710866662133478562602931157077058051713009644203722789665069780709353176986175117697131715945717998451160374868868170454835206438781692478750615059472492889267515528735733469728029985502024491734037675510874604396553630985175933131233496164071735160140902285403629144929295082065067500136182898612997516295532919646263136587790228416132376665842620710150746500707170390778591884223736127001085449002502323000552189386321776323928513860165226391145249052843015091844695665773139574028522203069032338410495417412700713633074059104986149989191961009757400428557146442459959743468445559198579773026206774956640994779831764388543110770141315860654599958420059500683691631932240693511532228703488109894547174036712682040861189801736131077022136118867249467625514886629851393298826750766557162967382297166281220841476111363182411325823752646931430914925608936174134217993911875782836213426015432469240359373242132770371928761350658869452168753272323615820146246664208311451563102665025726353310531568790856761002126814729486192465582650538869560952054290165447872863578926638219714994507058992291520405592667838812171578967732148422613252618357841234610074128791616506557097788275029223718835451475243081234709871914743691423637865892992507360370861168124331753197579738470645905827205583698928578617285993125521133974447402601415343989010510767118681765193947013525721780830397471272357813855681521942697338220805901848018966352285860792432902353043584159945183934947343843343497428449352660714789539600564038907335100308807259191463188251453583221155230172436922417991002117744414661550721140191439785921648201969891127723366578825942961094212410148598407817255607086938456971223850923165491446262297787789625954539351642653017567785610844613263436083316040343309761487565978113758987441809772090346514839737403935138999015711343410499639351699036311218868648081697184298565233511548803678519853273643576632211264595497915684027757447536562013455745008773116498353416451000951581810483670600977482386382243174427653319815739949716931479601976096597902400098439344268678933970550373371395077583342336538550953325436489152490730416749558556794887867121018542055031352912884414522289512479693737017274187641439496012797633774423925727371135923921793804209709602596584128450137109265203689416659632081598392165222801089146353990820050828399389071241513319443605185385099455554787433697570156882493849597576159623519956284225276617230639842008863375892036198412572498943796765283876197766273135738067791525165875996834139082411461883720420454318869963460763803054366823714273322646912853762699541912966893991315870156943808962979955672723894249936970207993666369724665200440407015367924792829109589925669091582260908945442707017210819262237321581339193820724476770672635279161461901190522994045195084087223278892618977014289244097289512020878878024868144362660573142098297074511353253758093644904531033209938748515195056239670325574391445003547629982341282440323362804635057680066251496679349876917245497173863005698271316446696776445071434383294382334757105953234190002111048913476311014413786805457539763444082958637402633026897407489562566181704415279961689137102558510119556561399437200944354773970948032677347990849072068819046345619308818166979007736796313894203261630039759536380940144330581480647026902551136335523469385109163718772092515768088668514712178997485396362765924145376455462887481205619011339554715981978149426469875625580534658378506432892393692959996868541474721521655827188321456705308387794707022047084155965437160702025928733313400682723693989135455078736531445335202569049858608578093080235653330019570512535269837529157147801995196327310323096159342252197767256015941534551737404856326979642754824186373583484484527686213259328671300338472568605008077788339028619839189158727659447904747588962148863909450677439072327885614226643228069536232413644540299939288560726300438405621626117110986243356234993056008755878922263413309698797104823576398435628330386764978641213933081916893164125857412934414523071699672510111716136970589968323563841376477036805881459847193715598859358439174292617708837745962218074058339416635891178120550584844844410554864948359556611536913753298570712078171052457134502483474755337119699453857026763896287030825535013902060475464576699954197198367904253426326262584018230544877802934268522753759501980567121534446275482472282416196692227827569727634778426823971260053392778637042925601428081016552507431361337254499833664819554864246641742889474101247172922187285382794054785593830541642469880455577592235557773522062811127559191754246130247541033761685490098986598807578399075860043076302061010565143697830446852114279906775671117428450462294815685890808321576707373916205016691722985012381170795850252229482831838611601103989207134574683772007501202949138365791302816197000560745443409411457481990385883066200267928354938088123416708988056606843946947746625543080468838910756479276387675969478375379867973817439910788722321617042586145026348589828075923827964426314928614608156486634664903930508560236651356705225440815974132294602237940315042143900589961383564513050669270008189073953440059939838328805059008683518398678706705962453519553394505697544490918002697963837818721262442352762481205414070132173839733880395351897514601140240304866770373610931969882944180373526982029204738085164336217698922120796944698296173956846660636601676531028678116226239310551276377520483068348983012245655354772246902591239310738414676418306644625092582852490703141876698148041039276404596727497367905935811823362843099232676500124921271943933253079927821744957924905899899391317922391060999050130974722556883511691689863061421329086649999500434434666700167355533984012053161714289765234209418598036220615352858616495697436008252887554969004245513333092799591093695277299556660775069777215856310337096413983660395353935194313507365390099994077286464929028617636075200381811303405803783741970993748552499613699558929701542750245991855061444007517618745600905419167055899157979660305712668048146892127845495865312973745750259780729392838160320473441684323053321998589360252949183503475849472180694301836126380648107449048229062259631857087451485231884155183537721201621663911179230550388405937650405240015647981736067999132778969875237868936442308857039062185536280446296765397354946621152501622085562782324454568884657240687935063114231410962794880603402602882206249335167026275456168218071601279188458179788352823819503738292133779016225157037650679635189286592373120780126035080752996478948294690893469087906018756023404240620879267380450749152423746295503521811243119211844163588018797311924453888867505223010027260410949290910658381110070225269124093363736261455801844886763115296394158933221958938442403494124044698179054586885223322061015006627688731095689983805769171866745197928330574038857452128102332168547811471679050026132238051216125156775197173105800179907791670766512755580430430153583598107544723022246359069768140568639424072542444140196690260058492547698613157052330996838372236539888638067005519666380365598327143441660212802408735543286945112689817953262616728358129884503445992838961968835910438458703641605310322976253292035227392197093138023493008508373291395656141042414575710084385562063582862189191294976303707702387940401144235610797542406712162171748884058544987295390356405833533491466488429316758175042577729242886254598230635605681545733414824158827719868664347399228983327474894201764154565851814934987579021062592647039491504213506728685434778222727081038142219467907704834294050704540260378944567057406786821751569536144870180810307787991112554882990294842585253854475929028433266907447589757122311890602752342340632019810513566107113943510607737232977571130319204675115463124983384868286944524783828811949698982114799839735017887933949133831895030460873494932678546600654850666691592939054576976208459208255588885121968926823044359204426042150868512917703926093821670219795789105203635694092030142461436243090506683835213446947028762684639470637629998719206523459700933556887447672232553207973392185104831105584500554737734523087975572599540484968849541677785871740246520956744492169742327835289957997093942071472806113693763377807686026081156433727494159403590690878151131751409311983784421206987775047086499539582972491343216307923305983574391748724192945111575634316601512252796597006964064506309956458322742588990856630747795028018736832777435398522453964250734876504188869999577833634672652008489425469536981535631068645799113132081879823390570479791325060844672308289745741683041525996770865981100218618432142920721479899931658517326734123792028239558695361517094424652489160939701152317124909559067573454389300560068655690472205413114974802083034346622138499670395764536031472625693248270183795543533797131444589864655804129141404721666040713004812480148520444641749944277592035566650805373646270380473944619819753565826726339553641504269826230678480411624437635107182831407873384966014565690842781308733474993358227865448391607991745275401124021376411749385834426936649690321638532081388125392197178004555253875472353613982918521233841235631673088382421703116251966194083190641896790435187464675590888285375301268490018172660255400575428542381681107876823346337744125840867290379663821990824133251036583713274969785126675198371758949233491725136373527681089246705429602097242150022112897656491667960909515013124287172644252563719385547431217091566336239761236529414862911126563277526388787543846138670978765683143536391459300042751144636721940342627704297221526448654808769655224823023708125868276150021462397229322721538291196461419819075568888134021155594203195390249645443703684272882053256377205758720548638312730316376805038249766071922131238034451714528642949409361118334088357284386507689465937436231945964183001928840453139129081468768267076254952751655380540048805217388781371755751975677501311318523328865727667585098583901430870081746670948891127325985017303321481430748107085715978519906191298666434710457865504644569185581998204126281959615751963951320426844487682603789780826211294922165565011325197573749405814704708748536314082148449824898988530680325741008010680195850152519127774980271625588051128667897872409699852644202670858022335851565586907313832937316294536893193830731914546240378088566889957248566265744551106332389051185555558163932931319867886379919878659536076301647931792271086877778342358383237476481629388883776554426706591699290941933110711369889536938515769762641048933663210667349233371099188785928406633960149321960211897786023686185592578998737727739248911643098863643605478472602970766884045093762019885262333268732858334063243199017040889954719788585820249216881584116833708653077332276193032599708434489787014599560264434640916529991936955245799683818713183217997547117021947586084801651119173196644198182273031218139357785593473005647130947426735318115126306973349629336863072156577115048541145701719139564352944846130019491072985690766278735513660686067643198881029987182511834199637411259566803316378522209535503611451815324783222230714853372815878712498367776447161429834296415357373642906344497650305590897110472971157420722053270270417767608375481967598962125189748856032789732924279514892801333543941619250746626810702725858217407391801311074569868862743331555547281154019654706095116084590550794737673349620358486239850516785605001086920954884221064016752545548678003449859849832400621147798415735334661932676890709976007856246989290769227134054994549583935617269044776582972013141814753000114444172118067835104050812231788586179059294140786701001260294933862700566485133039184380788626602665258274564838512082184489452444511883107761353668726316175820659553403403259456987960335139364925233455656174071563571675789913944695283484461246440186137157846205142061344212921989878607959262800563369323005527583354096663925560159473620707177189144564074399651661795576180290224147529217332190084134421459896936584642795093013160435321110020759465670780289496617227905819730005491363963689165933840152469353019188770934953549991208176030082133641391653417529266566266419315169633669856283619519668579298309037645253126825677159962533164230284509624950586693799422781627393622729885062688075333042390522921627902150659395740006109164656807254281450308005841023303911116117726290047175946821583408553236425550453149978197310656892434623749552697222815237557031792625388094836698845781857011574533791550406489733076771607033355347275812648555439261938069637371404153468311949792448000799719531354595934532945435452633807930883189131752299993663950116893209282310194740468775153088895865159287068120690600691796268246354348455281992230693345794658506054469842966313065738946500154776930898886856285323354451018943201348805708913538805083261570141551244401564224623180694696363890402571130964757466783838419766965125953915427884921833902829800819977359400952843759127546160314783069650194454829299194630383757271763424785345677492813711206769570906562087148729956123685745664875921513515018093267564844260908793165061514882612015835738500167738984904794167349767291262894191279181573440546614360151869732489356590798536117499582174086289569488753139654053436600005619104145686952392700671323927979242844470284361707266709214511392761726885199644290629125949918739584292645947832860666872930187754839151301342568851542807007539319660722576779749236405747339267266837813730160121396083694579269794406074257931592718323797467794399774226753387057562192409014041640570493063538060389651071801464319842623465749826370444638487338338827341494784724194997324258689150941215273681292049797364372380569349389405332868267934654692416751576167922574066136849523961907346487134888103561949125510115634101719781710000321067045349781937879911697462455950555451894637505573347304532787360831564490539504862481649355939511314044636085103962346298097893707026999665335996717585475141529666915955539170446253429947684516057632959052026978439551980002185967934168318326940027410936994572702722982791401304645774718150853242358143669152112480732987418159419286375572491191304461855657653685275995499941268929585921952810458936956648424733307668164838428908512565013717882142277863356019339736647711005084907707499093754144770012245758916491663107663557205257030821876939470133940713511413150274041478335068932459819123541516838603674649825653035233988570783856060224521360462998479853594788532846193631914020172389032494645520463424158063257110005508473989350707767608112777711472364312247417569117784759078347805221921708239421766497994660883355133196203680540845848674370484735380424571993606560056650872506124375602961367367277754608086585501397678601682484527927967119884897507906265188990487561239761004576867452656616645856864836180609905816385308737108070565941356992374677153336610256331910526976927562579911876778650372735166301372346125557644350983491541626905906099600552259447690644190925407483289749798393234092280556553866055710668493558942016234389299575440567443237969459366727701665259083818250049642480127129538019935768348330423534190082149054348024418163896304194613216431183941688036602002426385015618870647062374234921214136549547754236404702143817375120110561976571832919344809870608732483445810148470961949650496416103487130939166719197256619347926261505668035308136011415420844036537810010962919324533477748770537509073601442732093453969055234450652798805109777829790578308550979212812436730850351929186653891913600904467699658842167916084713860962630891976812562148903178431124982500318005687851714676419305152099549709543202451049847882491102197098867263840333072726245474681926900740012756892291541166600444309566494518544433158872553781600029358627113010213135411969123455542203154165997665252882021685390687086898639091589948415267893540443719399843614967113255727893769535603312618295641498851786630144836277507419108310525594132788582539125321223115815364898154477820375730230105720535295456458528209144843902377962827397091350553287021229199098637729594644128011330897758082586019961780646154401476650606857551489163978619132125633280828595584907352808187939327354492497824629934422919558223364913265806725500945013786074319568891452524022014818584312371880399778198976805646461245745359332225214264387446721342464857630757097094963291948559502449412938037298217510207295466734751354699473674983670036737514112606325016755075151544529694752714972056783973266178112813038690081633748565422013823314024562051615943848381292280349878689379093493182839480193537048879353101857940387531159766310880539648981289200276103939661858591794890681579947939137628155227753201626163009312215284905958605330261823782932252961153276545078025968725219834581341543980214055258104774046713249967813890262046036396534963948215851553266490790836883351277381418735160717521079779786032748684494869512390802104366901879054573738011757215314537983846057683602231540468236701640696573470505698960054414429038782162647190303347887672134765410783611395126902264834798863281050254046533194499573773056795038253577162827609028182372315833735401910384374209412038789441576762547693417942260677167169039295762398861816872980698355636709060616926692889059905317632526988451827619635809575848683631081562421142657701058375654218526897669626755303042639256059802069320480840719090505271420637672355269527840157470536840210023576844077688245365043721895392363211287625116486108639589328638675395828233592386939287580715227071954189825315885526477028317685921562715310123448007019010169652127957155631093431377170938160623852219325908436922339589661221696758903046098478167954353303801537793366545758321678507133981000795947839683357958113998113654418498117738012553718346090691906736235433877550026398755373465129777615557037858464900266804013872058505099857575602948417998975344458450177305210391829407627206671675003823393958283465186450853245770821352586621936866584112534905127565749179544169769124794938224310270814832153893192074857711909993943166983036322945845163136299384469018495384612867115558513762379433157356861950063633425207724799525007488702280219622143561587855319729521847700681213292309904773642433171576018327324637280871761259701592387146740844923981430051580849697647414860508555916147850037200658429708362223359839191594978176870987322083708245355452544940678083236215541166249269093240720448741081516612200612513561183161835862191220124814858881566179871823988306248288279274225626385169750875960747348521808809213311725820217469957174587153179475766249510933226189883105275680702947361053855172351330167261042308842509250955606751112958334473338675098668041780076312311468002884407879543216064555869268310359577993372764474265503315828079796032149407480946643544672283613281326952903102521463697926267958675000820065932056353116464176138269101246619001031919111392803793949550174606422707110399782803705250288710350764937832707776280959408513241173406239047129788908866523801535753929017765273121580471898503601932579640970237888935576265646183687969431190957065884488250452254950197524280134947039606261704063417589669956223226780779197115697146970063490772413266470560680044122886853377871141815162607595530732810088648762289483268705017376102620029110081935445327202960091644030938352245560915125156644346729013986983912094834323091885875285641085640722083496938418472044289157747140805652527859388285562730255496843719065578314841133727979442635313416247459513620220879529460924435674929973121336003876762148416020349148918985144033495189314847835186657853773757813478189386857035254908558111831865023154966731524149468685065580146240678531895715261970694757833089978456784306179199051727629059126750446452926794431730465738995086997707443749827622413494001768150296080358135416410183807742467384045518476508757036288886084220022958325869991200775447230843546477689186504715759325594911992706662958186189960909156724532386993589283665227558141936706412799259331995406837010902260210525528258332048099636223422043426793976754639773430741023951233422342142143840533075912002628994604653855136391515052497187714659775365697998789326680613218669360151904979340670953458096245723167611526260065325578664355594311630382382443505283051443709844572187520674620133970653435608489543030152413531876071154721151446609366264759648181465117592727528960533040910862755510603827928544557328640914213016697002635281702537087735169240059968566674169113587920206744102790689418599699285981827581279457068424931266712586454354249409289099754319858517975945463734486095021251073141486689675440576711747908650752475652098960914677506912119777724136951416153376501303673939312312316447694857926638754915290165235292810223729088107587387717552260131371034948398333170642632643620465314953352971795815578209853943597644546422358794022749607087728028816134245052635897775344226766077739051226973169991861722774069519177174289980311275897508366649683191700252437865855581035472631812321692787977064732924320600815013399478523423678860765976674810438740308199625474079162297577387020712565757089209237649818046343356964606825663793028600196532831768828974617229451015997429001733704577099952152808296667071656948416010270422894704474495307051904722002753844348944385674174580051910006730096876362690604870783787124121199329233007578605931835590220928283843993499501597746885736204856286760884748290762099712184353737985965796610588372376715490954047266551916519109175319508091865045979641534862055779406548999392855028706828981590773446468010054588235371382140835723487066462090296982370277723145129330816232026625530132063149180770219763761617465395174282682986250800036512209070941454508942917543219162490116290823455279541696706477654488871379868639329445047062532448934010764619769562414481088178554666178463617266016403422090792471304064257143518258957087367086442458512983794993706442890591838730812446752139248781677311791008344812635332318099189040568676904113710654937251339019568668501791219451581042830690429011421495935159811009583920895842037523517855787440682702291371637173978987318610588889479431775376836163679355658930277794208271512679110714327575601476824115202285681219185635424436074563425918887926769002058032836834417543259988564104902140553264276603473165277537078253545981619998126572093082666535145410081969853721199454970727522209298748801338498176356826149625332338837150532098023246167099625028731882415073251706045100123633673138017253840631844794428555730826062606776432441692834490552060514805159580387346670771666449742540748221911272689970942036680731795697261491231325956546463976037830958977695903858310883445237709465378227821231259025468841830839287157604607905246705415548985033958697385032585593687206634398630159632309420464680056837861746078302348368594203710691218503893063850397388472879105563800498114299769908815831752097955891011987041200691901875574199723601154148229716577974315221144282176473320235264267714545764476402042941840407174733098646209273345539844474088616912756093231714978340325587629912139982072002833935165619581187388618144999419882725698713859736255355853648887221980620688804144749534953264607221898208180263986071212885537486907354111181247879967239981466337889094084952513360468256017941486198583633594240736002243878563332118165811254711943664569932875000254665548778664154466599274338613115282353171446755791969458431436872378358135375903292980792774900742219246499748178992177937232161755603596278208512153365366988148287868789346216009179032992062368457762225862599614838078076621646156405321061386967473871980630380318891154567174474536437248986022529243179913277918630015574099508254031290057700890274680307915213119874687195332916210392570469001054671147769477223983694489757723593633917822212374832669941614824761807930033352912434322495608139647555765656595436657150752121276235039355060492363527318207301888187581624067408376463888772070270820595808922784459538631885324412222050742483765132003457915958397983686220507694002426226245709869413970568544671793433541404335019362153452810221318861409692386484630150848319701776437706881315382484452122331433814475588388071701813718502086127170305742291778902973114741713771876125521335628433252520192501879778685487894848049098439747082767740617311513371206188942493347073359246558328237679187170323674413555953870656719189359022937886326385494392745773886908345153902058155122124876366306108623656234731833923614908007502790159654365809171857775276168347456501592465943294562748539263955379757898571150903531755451820860546698175408613711050296909163124266570688149879822243085852066954945990948861904198705333534584907313917834685504767672858371394545285941790278600827327498888945378302075911331634623598868217697575201508776471377079576080921546631539139295488500727929468584787927453410602783612767422293737489294638587157454665214083597653165510903495695954047889106787854669153259064718257969711841825296638524763962988025821244839164601578271245859439242587635035552561698455757299045858071711476526721145321479090238002258591135186560202237869149662354404731533226331014023232624465366758111827866993954007984868462463269576952674606910603818172450036581229728952733216307779112596753284325356508561642066065833963251800319652671366536376866508171892445925362975223600415587505685719179918786189819551577556346807824757291379308354407867019645666495000882638681549085187611091362686852498412434553668949887652795800372194546571660404196260937169350269839663588877350040750725878290481950917666384191646012242961167079745097682540429289114750452829031713522182374169165152684453212927879784850632891396810800409698440878823448754639498926890795110512588313387733622865773046186255542118521685171808548117930577958534300137589068959802219654307349112149369680101392112948171734657749199799221444908216725716638252530902156019387844406803494033781253110555437460852987893974144281679764688401238527429828222357047903650225554049626715391547416367911646726781108036455376831075494213708101179792139156175504395127483990456571987863636456430886080322739250256896561661466034004670063028537916394115622978745263439432246133915830056288771729801535474947976267613031268152831806564893861351057557551645105900135819112508162153040946029812141459484379592183328219209959341380856085497667572096073306164382427871216402603440342722953154775142993045131720567759931135109160890817964329548815539993778940261203486067697992796224114465720507525897188706294795324422603419592946891916413556727661182945419292051688849258249168859941867865418035943113068782864590984274048459040600140899572590453311402760220222242151535277975410667785850946162023890507618137705528379220274699915298768071205771834098932719768311787837307773317451171983954248733188622070388307457340023697396893925211422049471007306575063604381598994712468874003211233974792641687074042949212753233572459302570174896782876799641430494851021618331099334247119241092465610041458298047970395591211355176569697738223918483883555090389588504352194293935640397839592667276699725939615843014268110908293671416419174238832258748980649505763987263948332893218671784794943764927088684629277780835490290492660033878243577656350697045899986211540210925147156324327695252647188833312059580055215775746158235286075901860672776922608705076174416727655194010455061595374432262712157318471752819590996541693831892281555954236900393946475372853793102882286143564056565678959794614499129800763422573416997839036518130255021936724585782564841877599750653878006092527720526895405773408163776992156059741024782064358633267097390531562410995886642545524649631523191156261449616591591478543409903395991335889838976457965110924087463399605230956321559448157634319534648284298172360793065528760359146191023377311090834031960191575324258235080561401032287371414347064750758075693798250469182357431940312079070302581115362557760800988335717103343215453562938762636029130463836128923495968316217257187514375772278286113488133540316718743557225646222268959713416964429799945349649663408738547392893261451723200642304182938737593057316376262661597224676208103143503115754546431333928128418969607666846268295213251780042022201895269712585529391842068486666474125324121123633434033918649807977125050793354344953647984433747109752390079957179596087328761084329273301035552565639005003738423291800843971109161408269626109830013989972461892050330274570735531080770035176857361542199548251714165202255001505167097497924342374438617554551090125515077542670993344543835058324623003466730846989221435486391765988574584407054610144102702701763371123565762348386463248805414031424762748866570995537921750065351378759241431340682223884041176928952139029524390273989111902368197338109486509491013264316995479496939465907784731540196402017396775457303150673951518356902852975647149791247515055070134298263641332658375596229053151491431428520487288229651779672897019394592118224735743542110484305234746952894680326962667082098704926411569965535484377708386971285859667720084443762762726913565529374195048814567267024950545937853869727170718146161969260220443135752803374366942404723990315990300582193518799562602751642159928183476155070850369547434501280223450161451233017821172777230289980431443371241354151771436585690992455497259703605093721097762277249336070248276109999098116087913215538812122481430231652105638819226375087371790419586179989838300540131537263145514073355895523956901978696275487191590371375861841781783856746943284548506605429258651440791207217501740103927780614702428675219396849344392456454781147169103144089563698319486901963685596772069533737840398490845913296465994449801178125296434662957839484388576852172023622979176664294072753991486492952062288288751419787240872377251422641937408926998773704089842601297858126932493631741066799287737359173807603159401337820437476575505327429856115702607142757881463832907109620736710201732487481563620823142557299985449618739549346106548313931842716968692932954209093012137821567708009813648405885678900777632898225068824415460262998910478063041988856700175372398566780037884278298463267931951045228942554181832771127805514582569188520100898190138184803617115348127565656608074623516221174410002641353633485444491532119100529998597319799811855692774653442470031287857926426024171650792849382099306817978117785262738988134614573360282183010126781641033130566503511121914838103512352517119409448562713439890257722571898353275617221862702950787534169848927446835119539228292021167947098306360703761171766253972979307240890832838955317416261047794419180329931809780258719930208941108831916110311557760348672650574761702019463707062853126132507481517293913731809420840052812495791439665156136895707393009826388208932203305490867622459186178039431680546963953396325436455367681771358856088011960324370315704007792923066325591635063332930646996286041060702945619416466434330434186335633107063131415441972249831153648151012222930556231316844837077499780303059220541417487837293488607947306784356663885387654412029567614041692923761137941692584386471423341687867613867515864727465489297915115791561118453900687967092681060409682730988803795177530624051914425321651872846779615123414584398526428919074543212084194181159232234262731062645668272730049454509969598218588746648287442059883070949688811399691321595007634537959039803519091298408581412471008042891388207594028416650003277764546360129717926029955937198967633898725170359007444968588048779189668547010762048506933510112226692459341961362414896084253221771645851483808829412281884556636349258883206652979939386302392764001843144718398603407628380031110175164986701539622610295730980680986385425456732867975972514558571024743551961936599818436857959651308343903816554605826304528349472368882371629289236410957508256583589830486722706511875692549356430364474517714282935519624478718596499966986069488066059420363279040307036922220921453001369951761384799169761330737276528788352362015969372872239731106369664152882678545388258239758942869551634981567375215054243308923963122382091063565580358770309665984791145136943311270792386755932936043724853524253987595802725443016244857884764142874524309084939084848088869950658506852445191066144702194590854391888484609172349468380570802669481255300557752434728954482726835072375576306516780437507041941349178009751078551020379505363776427313834643616956019971204795438933326457804294942872132499009734660277395746819355406384314557430738827004428097472981747753557225365157426049503663000647845379239241055841254000768136618311368448421861370275786353436761230230822487329530803743600060358967775590878981664225568164665162746068239152242102419357126785733152283389049778527765085340934255235997046073603184770025655203976492579443667701390205905310089706990659670203986130118406195817430081169075398989793200971864863388239732499721038324772999298976000077713940312303190356263022674151230720388819696624004973109639843506711900118239610613971767915806578932473360228801678014897529208807503920277068200724800390787915830273990874172420947213024509202548903530255173897915440271688966762143985941470738202472960384573349653099099575003108244719006392957715465223265975322598492531896995553220471940319992310037921209346114212065649362644611766263462793007112599878578274399396735178009688620881790498047862780066266219873779257682769369665420935586075734776824421321640365945062869575127477718230239199576177227132608234094968576746646782418338562912023900444775887732378433283299418166738930815194014378523428170787132430730692469891705680442875712762483331660121302522173506267326482429294748793553058104520744195735756991142648947916718412238569711754262523422131017080604371597634725894321254116816341616468723981215114841154458156152146488479599967086556371942559048461457721058495576146041303494083542006201130806322024731731835882113402700909548723680505332700319332779526313044263082972437895929060751727391171054967110368452971196244260143444516105440104334435597389772780616079290607632028202178925347550568308064926018379007439603923448946974102436901316766385948157959098923317411539219048316168579495661911094839400724876401118164995420451548426237846050967191530355374523051929291300436576603752845183382803304311047969055869082341305778868924023855643235047977933694128220089760912883707256944433217137840382078655032893409793267556457469077347433089579931659080049320067308797403344245878451047032539453286546409046774317851404297401736091319479672941096050156516462147750316666471723091510562415742453963171273724967423848995489541909797087682504252750465063783669352776719536499855774288539209347719791314906003603735598769280054608352145970606444422058524363449923678957683013273578855284711675423240637925306987725572071314190909106203202641054291481430159433134535808885415223986935650343651828500570628023205475047120156241256110330876765334293190289784678758535936018294715118915539483597982690737232267500176587948137897496065412470394242774480430195692989924495300090908845507398271337048957580122829082261390478605117945810294866852793653761454255328850013585246177390235578357833620132723730983197363659285333318358423574002929903051234267089810324151009650682349026084061990081414486931602371172369757876342733112273966749683820235337426167226728456423765206374234148666112784298191056624763123080036534034766003269719965638673264443081123267503824226888917342046529918699925618136552008739861396814892721839634079124342956506028140065516130854359256934157437568901907880963603892063016243468766523568562051598026930242391444303124453608420533453997626419737022429942465976396736292492742137481293144605625440202753803704647354517831293906561078584253944955034846179871953134303153070175157049005864065127749709778119338720449539993308290035302293568329507904913815452714845933322627492260924652736021839772110817019121676620345131679949450774792268116193547851813123964077058236582897342967686972708333474527478930439653319790592688737911322406726365691548999492006732918063905052572142322801781689457735639744384611680507814616307038096716078356428721299689508381584388074698803432541949244585457159543536332265189345462517065720338792659186110656353647191473396732608205693915716236718330221751579242314633544103098541642758058632835319876864561607448060314848189618944177795226709539072607059939156687626673700310608403375827309336523869414221611399480274392012494133043046172986819531050786145606353047302574471488055906794502721639949889103273566900698899014760454228485773951476598439190165033265197727385485242222194602544982958373898191986144973263951168409538130558850848526307410638431364008802630684768802956365218141524016570154169239082853022949892269895855912276918608423102476046466297167089901456953420265514987988135286920726426728127478609902560454354336948930579501363755835197666643118740930879684437574271491375099619335365655116296505837201083890051082215553897921692876928389797802123334982780196974565552584611074178834975274873563287300636593040109617578320483473655757366232656301955681830821365503633499779083503377122185893864931962005351027166207616725977854620785011412996551685174758831415964102113777073856614809643280526281216934549310778361805947709587925550228940994415064578471899448229590868192089756339521176844190620386941205984584080704052725144177504624860012466347224536823592936762970924841519260167235921814525062639579747445640715754038626526963004173863894123031639393978076300077452674153071649810699532126344417076790033384579433186826479604245702313724716816538608409316239649881179021262552650081712456517039560399661438454521718042341364584960625609439278032841785254796806506366739946683817293132875515274966061694831818610464942497343842310664712080522112581623609487637441080363939489271052567216154101735189705407923057302330774398058120124796432634087442953621298811777423717114864605613771220664990065121120520517834369215314037121606240300235822522591801369657508603011494762933597193555346861640704930088868407201770971345198236096422569486701715698763396846317717418193271710605293026270462830664791910330085034381358194366186993487360937407063961469747656240113912556247179091062574352794262646103389685707359340778625792296138384504779973452243497957296469986329265148634825985162590553521694788080865590306026040763986417154546652913680539663708297993640976537208783899846599066016331178195092439585903255922966516568134969712104916300762124030503036387131199609976265552113792012409355516505169200778434124632720871667393411352323506394742118115542173038585714532265494147769032072730107153673146675329770694097166780839174004041045184754959105380182163150882010943986313127471427622898572419056185540204822295972162102561473587520576786055803064594047882844058173359769632893645247838152721459172207603071044300017317299500394742048266651766138710581491388072854844103636805893467317638535392031545726309190226685501165055062803304182703560263821348820908184204170025025662525482576927120079428998698708974761741866308796837337510448181714973452210964298932806495432665998291732535280892247879281165916801212965003917085768588115629070820448766687831901785219086010761213084780494326576991031830917942503464274392779917820225800726109157631209056184126216150304076965833583611148259643290254164894328538277640228997502480833921271134557955170981715128236925465551751187397603377578949241749177477785549222417055526558221858357720036557956192016096723540775018228454978860130339997338746508671904847466757666369084558739471980426005169213708640117289942097769367097992107046603852127586833048218457283657575443080379390303171481073137324483366974021795031248404087000177765368254757785134510448830493340547401363772716924368951701717923950329373201095568852981947443877506930554202434964599229022141215083128977996120085923434562083343310461458314786744469569810748011451934954021933884049021500964061403460410652911613885379350344891085364059540505170277683487225036322458064154070118861831073431986845089022995180208952614903880698113936196944265854999059459061718138785128599567667749132763957696394177238687099121608914236294545316026063697691653272050786026274781976819164381575118430738903961979312473423937861495448474889492745312613595792705206647095141724497796846511506644522498503516987288082274072898348717534549760725532650717290241512523727973020018330704644321958789827670540020939886068350181200281416022272482954614290935536258239670161936519872062974750678491986913533669803000260979533132981971967124105830969760661988372963599709964013393554100389784877357121662989264883653075345752382608319961674578395614602635694938734711487030327403364027511101501283061948628350052558488936488989178437267390956315931236707316773918720462178917526313928110220521731277716255551490345303137409014529946318034080889834192037291559335780487339088322179248867322441886694773002864498000274885269968839881634522693410363496194340575681933749220768783254211318241492732506775075827856569872528667928980311149184685153267275038613028051535658181999594240159259150640039726793302440624268646082837331244385943381006321389088623885130313718468790416586692234319660191545913745952872858015570622057119154350350989761168408843359086354211704418911117013812306312718582276338052367717218261937051251976187877815295535817194731937641945870309451664916403074130458142655765715125024445730294521076075417583793346944719059628679748112353300751853285822167278502702514712244032138818974143321763494007504425995766432877724439947855097204801867074208729742078437822845130579674002908486146996346635970117276221508040565314026756703768256756014806889867950051190793164828841125688651894348664850517330454993387263611201982206896746223956945713379781642184733646784237382876826945136513831921124912285908976169553903697121404704036949131535159313086544430025272392265193938478682866729170091825553137555145378145245158614200541319005440049329662553866708268190418118020504404926059177609066801817302961959654351869282418909517006171450134626895035668530180625424719506660109664408930028587598043363986239207773146563321251518163482634626039047252704347802132637002885672596901332788977550387691433422831591321089452027585927068951407361892363697467412706015415156975314976329821609279638989207614474317544256170767080871547015026216021427510068839167334256663140682466292354518824823312753553967487181119285692318100493835324353235765751338258852261974745859413217974734670554634883645526514959314985669678823244370144938007122284504024037924418992525794244464172687988806573630795379033126354304021973087854833820694272085593535658134921043888123475800454997513988143897473402526463773072918438333195932762339641457653342656221393927500519579436521576755510110309109100816439655609518079404640781390821462823502885380115113839367705315280394112355410314778292602282128867817148397708092106646641271151349746024214927104969488188594746491782727475173279079242835518075248608363632677767951656669291463107428408420635769018918937187389589874516181640793225804043404793474454936636741859343945897368977664313485597581521055408517518348704080701383505963013794984808952303257017546340574954494248271925284313848512838250171983993744910058975399398413124053555946430779614520093733078511755387250398204813112442716107726580692697861295184180435187150970896411728215950762947179199496091373721861850770738455244086731418778303565395290714560335361578624675193618543938682565105502287722077843869499770696007270719131142156811397001011610416173822444944011033312477942324568842086384630915662468318050499076940958690402248377932554440432895937929985373288033217902109123268751444724369976531834212642647151689205090227623436780966765914495246210327721566685849005345175510426627418248111383232097173754314216042004707608307331026800863556835454397999475973825008066662769348886119805837246061815632418307553330425526452413419866155519043681063868834281123605960581685285410351315515172970206667110138025843132647037213665792575714775430464691034367601747199056422237518144042798812163490265225678391043572848167997126581632761304527125122357793049196630431254217646064927196454974563498662692245858359480691764023196587159400143523593891041205229493658108991266642140943060466322010781207202578757674388705083240621829749663395765035677471739692379151643684226339684150628700944300200210022545791312477540171486245315120766076650681139277720085236380878245387114219757870640046309273645732817782680795000210567041267670598607499847963392642407767432982925926345295712384988892286309246569929071937563983467408153125047906875271230982719152761066545219844722010421453238982248388486871630554087121116417363184256135507009577798538520224940201883290813948938929114872266245512121621181444539766438161938373206641569068945144185257345954941851482334128568376572809001360744373078162567070262811086441808828145629115940195677467801423084157755276511358991384885646475249889908109688991950692880385068561940007670217445289792091999610828648639373986355225191346032659531739214497527116363760689506880587789121506648870415881067817389500277849128085863011353142550014749353748000800284942881997195465708623324115103527366700663693805758302568981486958706394529262824388072202922650056884660183778297454618890518510713977734101855395323686406984772814226795379692530069368517970524850115546380843396932455350063719737380941018495781651660222095221826363147040926001241704466128776605131393245882728914474092436083223892995958670374293693974841302914360850999862502062381627217402551681597051523965132285854121043667752743204240545475759201447001546112403257436463208266709405368286177508861481238321075295107632631819343295840586556364262975715893774851998420791203750187570902578786036337161292274143593486126644640584535746455228629958806595704058231124395413146765725821702881171982315518738115163421941932841831919259266394909602481598748651107997002072057836005213170624646406057679767532059832198633852611747866152539703416273647197001299470278938125850888166041526032409469271090274586274364103191087353788297101687996223773304993974068830018631890830907261314728624486314978267174400106267193319387849170496639453423689549031861793782461127572961824771158735891722217668311699842155351945785705799748932110096270567179627802554930184196278363656864415804011200599940407549306303872961354468943281282774060030789296230720911656010371738887510374605138824539168081362914576146707816506833116270768983159092765493838276829374705047573280428885953178364216097720447255852551364000041436184753768867380387154541221353356706823719413091364580027519852906810528427359665110311208594628133969443134246888245655499248840809142757273721255601450205956927206058775652057156589266913189642184929071264068848303010843823465407521532498323524190984996003470230574826825193959077349491937236658894299060523149275240035300124491054331775456495837466971541470849854182505060440605903165721450114301017176535878289025297128199169117644276975949500787847992169120627334905632709477524188019494209307048898920513815141483483865933797545579034401663143419624374308971362140882880047639730941635777539732691334717486763632615633585436537780587058803358591458077044827240561036572037685893948744920442024794305381134206730905540993015684549631021434875900800402479999201241729102908655860200017682234849172735662731118163160930343633699339961348986269358086166448362912029003332219198771572968216558721252049545853647219200948356839847301792403053389970943667539710787681152946075471312462956725793571564288323628760381308704633718293232685395177133229795170231199681232392639198174493795115087057411652831988282134610319740836495694438049907450259904357838482423886675175587492033152028837766343647981833047951338123869643206350980383211703800650352942932980737394729053287398122279089904953750245342723107366134306464506117655982994587585733426378192284633597702656071419022957342067120489384115192836828623437221603705021288871082414469700416541401545701250689849295913102683441116252261881713654552030784018958605180915190028675968460354791698385097421535461707818724471679093933009568413513163371245728121652683876342730221592889297518159188177460756361704643127197401475983871389007094549037885675410283534528140808958703595221752643437245598618567886599274095074393369165983022356843186885316694039471674281661066404625060845005888774234862456791770775613520282292806744499743618260916568102772464460622682506438592108115280124354545261492956571238788584482292492596864648072870025003700313507566070439443545328572560979673901944797791792804408194939012387148016459565594292874302957157544170381742423122042829741377345274171469552250965900155096401451988424301622632356109892887336174183590123557000589197454801845099300537190036730736021911026733675209767564978944040245576904573219256540512587300821326049828248084447307661823216169304658669610105665709064885674009087579828816433460955714457892987164503886214417499020810356903776294925208818392730393788858761445251805607446289900071952536349741322442491300374882959511033303536276576103648999032882875761584533788765895864260231893139561397629087377078299775089749591800999768267316779141489358425830424582208152386573283257247046783657657268441598791496614308966570924752509613718910593813716553448692971363362707854431247156106128665113629215482281829025183024854634576880693424068402453318090316454172605649437371846803587349668803856112363158519207734026973656155598949485462018342216450710619073027067917934138639244634836918819271472664523554783951262702151079155976268515222506539568087937472048704369755667889890259124495681248814296943930310454826965165778315542614531736481675347426276740832725384495418642024382289340857579069898662598961976948631205547985137064706281674523916975948267975425574424312569477935078491389601437416242642868390706649019819691654725191257904705498888903503462729646721391635035762978531735341026134422052148615195761373433345729567420189331277395898809486532758413081082630493147663060962658589453540091292286612077046611898698739830590585415593477823195200149898620306782584205549588435940382454095388370702284818368318686368890954525707267105999909335421345170575209080461318286900662416042719343791001957268506906903878606296373314511654256317720542762862550219510610899826133885628182448144132443739758831564257483540921350345741173214846584805418680006792405134164080851270808283059795777652159518659469388759915990190791776782726247681106714901971184269323303239229643750058290366890875846457073305211105609892080221641560833817722951141213417961549465809220303235883751002153111191805487597106175179220940763329928671722254360956236117766313844594688851006041354485294531003300642338830815699654863328965495414855350989952337079882310181048443557901142760222357685597051595449220209175447417234600557574928217946592495564603496017589214120777464657234450674843337066045986850130597451808939581626094081099198431922859976928228356607133810501590633193535431247829010895222637223165493727370428014118889233633937496880987521024078250400024080704005145346373110371611160407408622501975094300041050170109883389687454197239048922201991256609387698618250501363900325605676650865408766897885039497678912519852869379323744608577942007922053703120833617180981881216873373940112710243329534983000509907616742676729074961750090657113126837516599043453706625030657686647022539596885924965402339929221399778673321299680903465555529571072842004849790694918610542879443897867666369353082568781635802590712508661882911657132296548801579115275557388946190447975669050259619650320851449171234618425297517792915973527365516294475759965592162940992802307330819303060697128590476216690712220610891784088927384071330292890122362103448079503471146486419352311872821547226123172190403134396325258879673386853381431681837261493937886900012617288230547877579017593888637112494740905825887725514589571397935397806236936302203248622440149686565520636161306451046537805178158473434508326531781910263792500024656399831208477472799496689172390207259889097419502388473248856069620216119935551248785895765834689969382699141777320174402804427888097312568422600686116524868844326227606943505877929148194393402093005974086145372421275374696761992614253225552079640833528369114929480884003996082828535718856260385849275894164638330603194216322752040489474003004945606921325164897843994745467957326606361668037726806501767879233954930519438743099892727665899886802339970071297981177749205160052089927710854060796338862134610628118163739078118921284507267723638172527127019422161607103645776577948902633454434698234905307918979784659441153176267842309576310671654994060948924578535631645296998533139541859495536713373167477139598971023940371799373456096204780882433742483594072345460707361193159762328669628310621924522313499823510266460407217132621433420784471179029441311906341415013837420501434115612373489092100975798113666998703470069887342621956939089743187911655264816858552516172373815731238947303876957445276313200668468696990631921067512428800128807041285540264698564442516398124949268095718668480345142560955301672554083822989213838090948683242340602292961674550198726058491606601693881844908909173184122658198496188522275397023898127071993283629134568922851138136962851545272536024901189658699570833516662653142741862643285607285245982557095519831198271311791758140020628905563695580320976559855731554583658656333883905929637816888902802885470194951773262933141870027032271313569094267624520886700561316997383285119273698216652881872885916757399065313664461746649583244195151399591404590249784179140872219362844953843639805075793379182185633544131173381478134573276392809910440925442043516914122418657201520183105585795183607960404193437353458999995213843705899019174648043107598736973352499051031652335595217799880111431330517063286528576521160598330933369682310642311755835961825975107398770456779788062545368010396123848182100231857456638068246465787407266653130604217974409443311415795076625160496409558267802995740891733521401007719223664493720683622492515797222149556392803243468350179356597827864708065088572724946678556842190008290027591948782715222660603395514182806757502131145221657081003652745741451440218668201242967069219822624673917630866512704190686906228152593352695418617385235123039337095401998270902350596706731360826666537204535800684492795197528378232218822373102608143752414426626933095594424006600222623430929821530175420017324052189875047051884665173394742137818398095463339715058520270857289076065406227605887151681923984005486153436928496230804705359697809046783571088489067601100694412152282521669824424430110975386800849302318158078747815092084815952435353617814181682158200195679076700813442635509055247494850679093624979606171235561075638073939558626125495855557794398793637014511427810620344705617485259133600016455133393964366978762983939345452027507642106753711588839570133770745455801828356267391426405604539013215859950632983683075365156257325471070199655765545436405263767151510523526346686601241796237400568849725345196242009908098597041178914602329653860605813064619915046502124216632167380078898436525428326463584155013919442113140154104614347925579150060597586694006958900346370416126172766679243874461342450234267325142338195517055804699589929788269857278894560391997568853076195272010019742166701201628556001582430698120578077256943332968159134812574953056214348262422954496623016397499095015539251741182658969997022030696331994715744721446346835009654778306958827262312052828083983665232701003353780588782857178824183603615435523835117431496624526184535646480882930857609820065882266941084448390642018321172921726943909733833410028339729653460787700828637223218128939092992993445019076036533346029909308827813165635680822281789282700143690571155363587799766937572635456371632769838372922508409314357244522254028334267828963381186808428643053171118029321570140399994596107938635377118314027378825312119429536801147441549507138883670483369046648836916874324128309138843159410008489255077586419850011471667480677457883913888807942382649025498468354254214903547583448734128592018339965390047188238065944798505922781282009648609414559103889193241234219413813201603739510353937140678742193864031090472773994737727866957511265429983946209989293293617621063250810278854063699430749400607339210279904846903393049796997215107803622874413930523554099172214913037223839100473854864772328860375936574250591387574464330998343749420294846349015908380989078899595615663502286094389114287350522253169044402038819579674210817038297961498478288389398688323826120271629342948232426728639596648253154268790375969620036419705040952694938326737172130606553745606325146617462100495648325623849047767928256330791351793473245058003702009222772571891266003030829776694198271116117493878030841842182876381378439839734870240921275984650349301480988262074968001847479251218751759328012693507403882820646702777570885583487682134433375339279134093741173166847391347688301003902998942378801414494098739856669366175440747060640664096636125119857731809170955537361906445839090505827243143598741705386218299395825829202996920204121543535546376708032960794471956363848789184371979990315645251551264782708129116695569349757493342257852804979694544379096541170180466515503429712488618257653208596023199996395366492883877319393069781941414960397134075101673504954683611221675978558665473770512801307162123605956967235190644065685385633193267128636418361879881945145067633718169873690891608595678565138023910453570248082075342049609850775153942816748509136247521611586530463932175907803481347459326336129254961093307953105216204992100553491337419365969618343617072332261262679185339964819219546030635778449239033266254949499698453637333941742358595725825815089113539910408653552030786222156952539184012693365474987491048848769030669729473643041186431537085291628370244316430504297614189904944910998622673974641559073000821103273657744067754573779611890395026355393072485193565593499735265816904583295376661561611344693123843057795935957406231745620851778074018872683707005703983260274606267640040031276674224159634771229770618832966065517019000196338035029432724360497410744009613572834703367232654577623723539477579415775033513129683465267465066561117167915978585658401931808229046507260554618645790771154386199562101207914415414251402483220853296020227524396217198411844961401587827452998727910931400287053546980862931809301805872948198443597438671474702484740082610554807818055951100497789929152021029829708551811392856085693161629262240552462306168121288281188888146757877497873499714887224390623389821676539290768881581797694978077524236487121260397047165205366841669817973430254491350840662105270086302909746078887852109987937809076266784821171790070794831711719929596720817078294595949106976058211205240081388087342228091153265419338227615778465873819706863011698859680063899993332671273331285029720509883868402060723495902718776227251950750066981372218927444528044153148881472938013672038773607609015152001691392625606481191490391156895555239085763982184385164078232237020092776258689855030976379463580927085824282679994977618620374248721723163299320875869536499282865232407428878150076852516525407628695538543506076114772895795805018445287633839087731423978569356345353487791502620568507919323510893772622268681862847422461932270817839366788052332226904882285838539168235013649707195203709556030422750058462190771770520170095427453833314444963575179734033493054603291587009271474023012325944231273591483385796182361955915525240218418510943871110296461416584977134849039626570771075432540945849133108322017602663390305645612983353866483908741850821417347093377783759785458690492638955678587577238944427999958446827351484078083169307945008368491090324549894675942940869054796745765278141798962564406742353039814614157954686469648039358701556986460283730339245393573627949003564009176498458597994974711523158410994401808905176614564609672583918479449685320473966866013183572661425525540407718429943891538435516255640217054385111133365935123215440296651720664670561986175849153892984235628009574482723901570327381457155081719673351439368910751594723511414219849337302367138132165322247694973457661442642382266683873001108981548220550720299682472926659005264268579367872489924883812667131240646605076269962882785466587766605858939093226406771177415096049382400353179134356820324436299427670071637355523912088038874508522057922905626498340435718812726722015585117420053685206226327191281106639297502052247637829948758878496293774643415268867963320235903689463633137512145255225900482365251672937175742295356770053250209658930775880881349865927464574155017988929158668902578145005918687726142153229857702887025475532021546355835992769264488001685732863820319282959477871950836435712731785474757379756360726860212653813671550404506218266384943534487486885868519182747451857309120914974517419449153176028211433103757440079600524327998548414825516551077661318772187516550787526620014731752197807621586737597848792229711992803981201813090928551355927544932428799012881216667396886991445741507238225584277414424485317961212497521517539645506472964422010666212108616345566496939065988119710106842646341824455072563716317779548459837216050834208847034063026572305043955308517432183842399068923539860106821524487733869095663085510093373052990511819604968360441818642642159544186173080841513452227867368841041033993147323564011454031871029394466441397286860086231983335421291822801795604464370569557327002284180569878753566719211199753106001177472367379942698386223177636319016768896598342851986810940148808013287518656417294024874591184598954365745670811142820869043183940173079368375793964508196589525247748607262337393792315976022924353459283266466769512113091146978196928083110078336233047651850457407867619245673993335285413813487870205728235976038269766691172869939484708680847489244007653992817573001060687275090755589676439299818757342320189821235908779839884347994492779713961657249320156629751125327830530364644475562648452644580842298602876381805541620111487582712593985591452612102821960210104090964390558289222551343295488981361920557439328780192416069694260694066888161530709397906893742917735151088313528945371416678778899047631031843510317191834291646213290313099286106410735459430223582644097903165491205667677609875532172578961655350783075310291808217491414920357910428908219561836687236411456550785198230294155868484967303254165393518482206603420395827750685547167738183180310756319112572467672194104108400128897070598820311527407899887937132613865832171563292554727484517081263243366014562205215800323842808331011314040963038959479401399236817716495754829216812768289722737044201401848847718762820810029355341570108664530264125015038247081371379401522593607462225588015934235298708817532051939478357234090090181771068575889143787389736270198146767607062294241010778435213999438552163143667441895262419204610275122556517541764659001823951414514043197352539633173308186492708549347608412853237693548037248561073189231234483524009244703852949547029027707256448604419663503574575259687240581328386275041046544382347413244344241103680498838160194727177854468911218306729878875743880154375675650000660600750059683344814075336601787765040054277000557845402753277240575632059700051490924210870345953465396637408222520312678488328878726025315100761637373706668623181060768474637617562839942408595405264469179142904001191359550327060841132645750856228612960957863912535735688296146863555602498857601268822720236761803969208594377326808966119079638625074124409443798093853173658453882147249958845661122495652788144926986219408893538332064015867863986391299383877556063263313867010769569590734000885205323863538365418156093001691430236532033384791780874163908894600265844627735178607638389084375222781150167499900481658275050468990019471002574237234613929052691450104691909161090848372162780663358725900352921381417143659857866640571066478341255494855657865789071579266089417964445404403538172606966379502075350443434176138801842128693403762136833608893532457892848345385939236120873619605321774976642553669367747439657718427374108650763242903018574073070375105830830559124554732410303320925721556050601772467017065044933133508273901404668348582940160412624558830379030687574120098985869178203432291810381539876023697768154102045847159176323330485514029771478543130580557046280718399725045573673288970313416848596841139978182584140300524694207333102359424432170682216041656614027601908462312706288580663275954171802506878262492325676400947798804191066969497348186655305805870222824048267580718901807929050352400116976519495244033712909425733478866099494851223818994077241918912781014964570540141175116140190850957978795643306184478260208688372348076234726246014506571287993018137232344993868280619348615585391781893889301215549341380133252547414636241185192412765018963655204877645220891151604738679596143528493113830840202168030796590516432451128621066028880690075018355745603847186253480055024457562645573703910545694304686743070383529371389002104752876251261632778584319639597954893964204364947887966573131258718315697439299197695271190364282970179445566727187181526388726458346173414069115697464250586474672537442280468722341185096103108019775298991197170300459089324617050691783623863459373519893542927865246372497786297872446533604176248507829151886422644155315094613602034413979238882187470745222559024744569727921595689719478049146020818993997014234797680869763566356586073592789471789767319300753350891178490836969626933746530746765138519287153342620870704796068980998376088345955201478737512486854944988495799850029009043821165714252912641983149709305945577690182325161343141299480065254602604059326876228753499750607683842237297250574768967355428126471132023375870785357644299618166661209346400755527820658613820485832175580797722548671149255868363220518826617511906924253891569349477434193262365315338977354320655150935618242888281676803312919726274345273383213206023444345345304064535158530390780144840436780643391662463410180195576496306933068098476165197087539996117677639438505177337903786675775200654829477746402950938421733757964462780192171643350169376777307274644926964963966240592429195074850926720630925918402530638631931260311919196717207940410964307185924688907809423087524394942062909960476085961846197161035511352294771525497941800503033614661541052031889872653214726882888649505522825932335018429731907067304801402222954655422587014190875491306906686769317743827046593496017967560124117586341741461400953044469383273381303421264262384730834886310592191067686689556315953246214527046329457300955537001995425696193392944733800549262699401036204523463443595747139130329334601116933222055011560124179818604137775399571329485410766549658809690677063875660200814243872494512872400925593080050516224578101701259286621788958802709385043140766100792448589368588772396333498876559539653296889901837153468609654743509335167339077500688653251320591418640552330078233726804658791384552918745337601927295993115143591643583973536742788161377023773179306149247225897142194880598200300305505800462750346829692534256203576094695964143336427788928836680218734007595722492772707042077593316816783071268092135461527918274802113263377856781834775988680408985827105563117985097556473225316756692693129513751304971209833955503716309033242937774221781367247568037338759000996798762017126596924258042241481318288474992073065046194233656798011647314150682388578670978671216026395086947528683339875975899295390601587872285791449699185636248287094698136715638210130438474571133099095168774314187208075826830060436401111032371047758915522246599191719006018040735006785405255022677485452658828386633707737059165145845387668841848439984182334881250702265793693279697830694766268595483854992976259706416889401095517494887747908423910963970026027637626010627794734603242446981453255636306823329803018386234902553473476236044953397629765187729974521955512697829273451227503348711114279949165285082733450753174713128580022341217986851523307918032514180501602972029431650573525945817138742070407838225460236593703314693446436115462724491752827418194874766432478392002547726976836540917839627504321481708176810646349169380764275940021026544531434621146989032212647560899439505784288037479467129266622888925452946859726302743409884790118765125788560758796180333079334870565459090540151319744303161182157655940723475228050766202343250451076904441928765530750629769295609145035393667565054675269975422355764117085584378848843134976358719753793407877381689399554919437887758232428323947238925751917841774102383265597650264436198577717410857872364512721757309761377386830908020524002044802098390541034597478816613566542120255079864036908338956917633049676202604475147050396812947146959798782947044497533911093840871672718669289533495166739983271340600662640182677375429912880201786385049338285052687085827570178652019654338649672836475549578750875164160071370101349425935326068734149082718456060927110992597068932773457321980704573823161026291178947156977581998843766052125421982591455553372276289920908629434539534349632264614350612516148268929860219354996760667601681419035098045442198334763960265332082275430529640361387282281268309940391332925423163791653544923666376196505547015992809658291174750885821096827895167696921197470019557946645423671580952250085866735754122547662062021829169648506261581174183659217843307646297374224269194707313146466460635517646976599920225790532385663158754768291070533590321953170416207454728317737368874593707264855513893528076496520305102356144292788380391817111166789750724548764221909259603981124002908571076359024201702064088374218606005727634381226957390383281227182923537305987762412924338705142847122078877306693139246779892281434621864386700359538250533073180357415875928750589375357850914547523881752837182019300959082456613952259658814809668110895035050842750036668405514521773587471605208737859464611300792639451099546694011495628334952612825589347689978294791524957727817237198437511268203751182312718285264855007641182901755791375759293960887517568192943693835030324814883090059283271360390785492475613671128345956492790685405385629277692927037171290067567598064695421948034039653657678027522073865097624237406194212755761209087613749524331585464629151715500348284718260856081876425159291630904824976644523146851142219895628379864653155713374985280530988816996376318468270332735991325167406339942535773048574957830087743775759069940504535233667427612738443654373995360165267563245514463627989454405482318270816726688276014014857284582852412145995712509430955546304856689746688399715380288219425611652658515731101863491300376954696957706484563935876601526133975084198836906135390271766748792897160600856406342259917087454719103408961343850631116713698605555420437443554907470792448396789308548797999769000811724569224685526168382926069672832761353017669075700721486198726974709868626459217158606329096078607434797633876822651902853318002271968408318371408229356388416689375350254116503744320034055058539020536419870203878266994696595439323257815048893923799678305269877937256407854402472044235114609363800332059165818144483876906530250945131642499291060847867409828512133741014833423217906767841762738399691529326208579411379228369073096109251109626087408174881218907635332019905837444474056997278356192967587274242035902152382456681200523203992455809991988615879319712713295997919034744416384661756592443301863452863925583125753050765580189089304618983658609484667484301847466760814496691226006346824282409096311437806456987469631740194826728869151164230172554016299192794351107122435405850756699892667415033771843698374621660816125173243390239145915842794000305205436651708484558810576187861236245428343724801354565906930503310060528520574699646136310473242099752475479503577513602368549986795969422135752433763728867434684146545163078091487248181533321447807963790497401525426575527575396218214530797239834493039047287933673918070275332202244226447589818449197903103659269567349277356683325272362847357507722231430521001523221726087587118208586051587251922702970272883526530839470820307109877852909803898473293748196687820778508956617603095612407869094760043718759705253362386347090108391577034491837689998754020703601355936504028670913219174748576469250518716182866277388697167074618981238581115782170757674906290982673177228441091361129709847394493435532560508562497246965142139065186871276338142144796170281695241992748962175090066163976763733392402104318170008598846139337831654067479481594974977100629598824413173362565252079953712696211974436342242937839930722631657291976872179958981901784688594466491764853949297004631913537341939656560076007148640819021796181874493904559900774463843986962857418930720913060117305185703096981862441958157903842751459287014276584699633691689770613706769207603854820404670795567636103036612492535785817200510140738054316800797865792276973487260511588622978619908841108324345803111899197082585663148915130627729347910162933727133853875582546171944747240606182000776150478274967025114706071180962093283463167942729399292126579776119136891556642507632019535075256282537228996502410966274169559830414950914549776982974303075387892502082154869738677879938710536827473419880025941811163475288191171885660260438425837795432640486006966475864230722268642203571704237532580038973886109070911390660219391052146393560713153541565099541413894747378124592024857497620067052681105460108910561379570909400519811477536012526681119959171907829925398261166878338039018477668164768034297413346531665533967949828093821021172336302944993472921352079076891175066511118901130771213483215658554280706918428476607913473657303614565753876835122369436054587174936677342975480783394078647367302123001949391375443932233070509603716769600133791155280312910762949305655869720601511497551946118436093365402543043345466703904712096740325285083999364294009769001524948042120929442422391213612753309835263469528694986372460295194985474197031658883487138321143039349693381676639857817995960374487218600770230943435039106397318978141252110037947517101213796430031165699731901193013958163739998973661821043822379735740449534944634491564715963051835809318571597310388371313834284985120811318330178113384341104104399574801639312780169192774400140882656877923600083227226253413426367052665142608935678255088723819801225964522384474109879295264899529655143312046486282746781431709375651236181606390492413199873179813041653443544303833841309015522393647575556888230443013585869142937511145914096262172981000494515471679885724332175729934029909224724090819378401692148181017085905510106814659679249892120211677327041493606185706969734861077446226156849009475808666712089588397796293816337046240113688608486430055629404456436919515144718976713432380046059614385126671259780979046852979223268103919666006672873353780445389041653632962882520131295913722615632281437761668478129729722043496950040470184282233155935077533765540441311747392814485084302525171935629164373927380194808571503947347011825076110308896640360314054859981537505354215346411838154781994008747600972189095626871270288298720072276323332162134734171441068089685382565228909483500265191968328955887989093934142594461235749738578866824563113612255049164611961495177080790784526446967804896106397634371254195781217463377612349676093701362414628730886918091614732823531522269414314905773714266369283083254667044374501947596318632850539745842796331266630224129810559268760814099042863468721931774209801071206826508810343194993849835418467181409584294975361589435508149207441457631361839027832766730840572137174784985718123484364149283320727423223032514482360120053789440692370526764578813622846574486489438791247477676355389278319103613315365325356788433253910618491101570210329830754379768202759909598217088919159303883866890426508191264700887491126053522144336787877326496762921968903497432889256373107804627420227756115212689642270908964847412585260301680284086792704873353134220791681498261276193183306823524505128127940445259652619627872179248813872286733385116331065217200497783934523625948916771054058376962599731951539598622771146337721119635786869215912633573549548151607012140780155060895429343156228554329022117277736043333918323790287644647368870198687129913315619337572804074790932469608184932337006974400576946670024783859507649631578053412610992759874248857152649421714129649495582978602365636783094561759353644330854244612966404594311680908858818120263847850125588893798818532378189208000734822130346149939164026078937080226064296374596289469480940413877933594172522793243308072240876906562260491966747640336546633775071747294088849627031138864983055333882523947549615263452839728598272544064641943429251658831803293387444346909812198189393292038651753828848318633004187067348354271301956338952942314366576269270624606636067832512851630391245629724888551900182905726509036516494312077799201807782766627756160507598466650655396447866881086442799990929343935892834554274201471395822356428590337252787074623801529798856382574343039326679084662452503076332282832238350121519466517294266740932670705477312140597367877200372882493110828209086150528286391441276620974529576026886572946942310869970009382814984723924245536639223954647246413522198371151053039601596020158561066152925547279823867926922152624576659437402000338186424160262814555311559645508309930648890215365376255024796637363989589743939929266842758668971550137454185235478165146528697778645240679094094465977255790911594608743647112698234095332655410902708327392987735788598430053673981843418086853540377724510143040612689736972000041596353337074375471990433319933289365151231035796236464482532268216308680816492038861318910785482425011441466457876092867722562891046349665395034931063720731718472271918481500163277960932096930915044440161394606604075930796075199975611533453988168626842728930384415668814340026415971954345286829768522525371749395617704431927871784851417567623433614518152979582005693978753894403784219252180079258658908791301682563532507741965508624262341149033052762362406353975762462970026609335613778863049450481208824733149633575043074810557500936478663754012528721857385800783891269641346564951896425765298952546794237218502114049743224050253297788544854498296153974533900389436149565299356571966178549502148342043599738043864768533660034786149825081090191489738846163672937075586296937549709577137604727226083501815746928239334297297861518863617451998076261926706202491700185612690230386623633174374422520116352759316871938715439869876353270113929879736336950421665009767130530472071125965935016178846856336134553060757162663864386359977441852867031190618876127129005217478711700822194134850204684678278527221231651298738566508405454891495710228105438264284238937422205682900261044065350188026036421082152977861338009117798163091376438816523783440696438227978425184964874012723482005462330486538678286902694490222388402415298180480513571293368106726339418358199293322109904780384781356246708515616393581574847003522079449787489567635401816699751498812871941372253862340887015112807236214105674507436082831728466561113613255114331416785495691013399545002548116751912520709779806650027388011886130614588778507006903958218130813598461684857351450702446684698378312754123124688714187440351418569296331576027020561546934275550593746644102844114713646177861556188010466422622778715870242907256071800774775634471820306019380526125119768074271686739718416583882497383566339709743264608835928535452208089595806770945978508591774412964355651235247454319561610600803575738714776612310017570438817593947897460621626791880179457620122823826919150887935811709170557993810120742696146377283134192139626637793663046869838612165306691473248101430968802000434526982172709081321143543698521582082484161386140661538281499063254952538137621397697527825943188266176969503454107704993429514511124451895942446663314582478521071613260575935145316149798416160854054794600948816628643969617494659256757776623783259838991064763366105395828533065836918378446100242515603317531451635578708876519473389371629737387577439144977863666856218665595952758403303616608532875001008852023268128004749053805940625881714892443345679506048088573314380976437922906650794868215643613140108043621996301218941295126966661729271906293898371759254951996378631677784927106436615263528311791615092993848961513564440099381988236445667008379673593840987507515798840140708435640312666290808020443861151780191833038752632680532712155405329307096382195446369567863883699432262152567574692796292649330300403803138508040374657311021157555934051630424216733508644868518239115048778197797242185836095134672708775017571481593775310562019507844086609976307871395446535590964480407961852387745662313711417890029751870897355777942946656232923497095510500648878212782454585239900603673577978003054328901750953522811424786717062828308960967525828193431894938155368351487533684768167816851302615472900145112378783569033489078231557606139187431929603478228298868402989743790763916141816329106784318958463456379651138509909773540620332253339635275177354084254867032933317730453776339055004358689636142580019543467606890465966113345491904179701199045481996664430351676906889129065584201513136976610894859808046794146781780860991091571186249850001818532610146738610352077971684465630447524559975863599276353157032615935398139127688089987936948550613169137827823768468927768935856362359843211371985801342245918902065041269387859563974623674243435243957106715611260552574687910948991810791514194899942058078374493473348429120110705317048604648767440716542328358177001846507319930853465584589305011998266892086457642323765554620118061973405018208925414608705599506408490379868397651631607706504893482644623383805952957369062808833492519568860494666503525851973745092700633351386771201249546854924493301054035704812083905739286928692767676791914049864757106522389579472170697707897574510950616622479468083809592891067898864136277625834394482694114551568494822518949691224228322717778922470336931827282638796710527348081183824330477250644132890641547505441376093085983346717349808103284369122587962234797088994431720246599587260728614969389832203006258014238666388860495374062757668707676620479235913632887631745374370645168767633642669691921396916681603683732097407029779883482325641271096417943360796452373515471530878200259375054017883125740959781572812774639556466010097429343648033586864847152972167780680506818532001849109576905703350251596332160509211276313716662991666952830519568188079909188475127320383577244860304747807136004940220338614740393984885218862238450341823063263891313849315699592209639993030391660068645609415937786167687383169635288408509229806299909912915709637253014774892242224358458808116366416248247533162176122566855268170968412125047063755534623911338823713927857160709848894205136610040963961931842267519607821610949468067037296073944563064213419503681097692756179443627462003556150862422856740110144157649875559034871879292833264505638479953236471460098996821229136528986907652366465437070329073916067455570781776144536484282571990885396260336517058971398665574775404819505314172301537683950639624465232943821794836223580223581492239881306930367012155259079771537109163220844952145603184132456403665179239025331011328756760962189088364506982171454848061621258291669510075338790123283586321343420161738377713853316212071319231009763195995921129028650043613525497073013461687056321349644403664469732301460797144359847131063316581674705194259533732067561210270814941308264833772349548595215632392771834485003369825077561480991761605237522887168741551527465497321632784212040339701615562500456892502467543328139144785695975204523587775432851001374501386809023159639992980794062689679458704785518782242072370305260570297547754910565698831060726441126334992742319827008290025270497511709776683725761729363346632643218780124699687558720613254173197932875602329337380831493080634411347096147247755029841211405543965717995762134177793239226933802278385933928420495379963510013763532880517097964796427804513532509469737250097132813954958932771815540489573654330068694056276125064580286290644616012571934717000817554621855586860199010079218329663707198015471711452965287847277907667187860123106112465205570319133956855761350847954452174003967611737105155235641792684796221298348912932195494310008113232963740084884041469872726948020951615385450874307217743903278389846373292047973302143114340829058554426714442754150581661731424847280021735008912862361253113675034764909205406032938897581269439911184775743893898398731894468704153258747418070171290343595293257033292404626391852453916175680006300846278979450789236337286005931412301514368463269975640156748873171423205012402776355906687630737844811369736267051321437534079641118829368994908212433490724696915265422775261947298023238006513110391801612235283823839912094319030510273677473637486320832700333029143055764783897038003731651353072224374199954586509609320604780978848212097968162098139650082510148525175196995028691797201119358280475107671677453275163509208912514053161747582673119622908267775311774955324849374338547009873650605823510247078055369895039746427516481616105684775854545550783748383429854979640166108261373772556356301459535688583163851429582313640088983044248026703006414572038032117648217544932730120768280613696566336422885991134537257202466960699583290764052042468596837773539030946365518012479896413344672711330865608139108831422460826062606192715654137176211784987324474225895600194855190246714307830804683542336058077536539366840703372956057072774951944482977519185673156904695531524202721707572156340896128513326829279392722548953292718583074772277849094434297405047041519994401350908259228361852827711331102488213348083565051452087520956780449311542428089381453522234926835089719281219075958320918840535267115445263233550307038640497227887021398588202336988911746513476558091880838124133559364190305337534946079597757348723823320613242093560037741701856789052446232776803123448085987977816010124387405081893480001642484090425270859726709209196242419547197588100250515722964511981677834141753971821538121227991227058283866953249134808343652113842186395084916503710170588508910824400916227622576949323350057685140130408251214867238559457618072517233594576791537876572009187392676756931860078475499704355551739219286626699152493436422653124895520038800109123000168024409573848399902636368421652168751435234601755133625847370715555080013461456447416609592923296516054756647022971776190549392542677586250380158627552319427771420592776250015573807626610256854284175714501616906252724053100180089387366238831947410095240341463242055702218455333329000964334512693502412633425544606846627734608094665625108833171809353568126388241447092078812883155308014105754910074029475558457024063702055806703161154173701033303165947165862055226607072564803185844508134317209716981303171305731291296712046412359954733591799469855057115450431719909039208614552060599444038494486744679382147690141422294337628684696997490282394334006233174880602091885097247334853987050486479225738428889007717151522424017404886676023827028179765730518838554750574762996719343516408401129458493795452649495529550401931062218727924457077491978287672633610248873291583904685574276625976193192777063266459086135024531166893673274288897228625491297687717264773357867754270176948617230223046576839762143646650274823064439334726916032269092834569298036613793257344813766744519986728129680932851378227783216809295643494033956613143577747568689280282397385811721354042009403028515218162621870200410085318678628304966217197416572264100182599528786375646291940039557028655569843764036520961517018882829196658131854510896140244208097028363191041913378364888108474863977874144271871935082086692064622319981888676448881632467677316328879127608617393828316706647956671375787610990814396625145380214334029377022422945193425374003405932418136051598822823185479560431832075604147635655097780308327474981773498857302473478145594052656181283444538053289857857760904903857256010143654533183556215023792949779091323940766059550522601030545740832654627033041774178997825669801598611929867813651212025251280509139439188606373223276440403246468122881410228350251505951264741065819738642542993664143634135001206876510834650269201243947167365635517835279510758305967190599391807211758523817107628483392939985715795300907905335193562963732121632211735094523685233594150778953310722542871968869947293519563552492532044690294097258309663344839551138820257597616765811021832014198675323358557635295330825364596911750513143981525222540004509354136631274392644839937935829441182643176014371373982031860223210741508332549430820545679855196274643964382203880205177283624407841326973201105253218210707545998756947766741502391277808777326436060493420391270248396829481811758686151849436443252201710884967937911871208170157009822530682830746439270108655000604960783755048659623609120183606922251897367194263748578012552220209927908689690785817459040663326973167180908062035635952532200788040483459498050371390432800884082523738626604659943236290474357902900203618941927864749244523289434198327718945396959370279614492842829052975931697425166255187027689497743152862863651705170699801211671865604142181671371770627855938048938776467873124895396986602988178246593907816042451211021227046507479699702022822461681552763507854244648348363429798051588866154190233287330250076536295318428861700869040435938713179502106316852146355673375793814671883548462502261135117538065243913494220082432177898948643296547459187675041290115651568104435819123024848221480900793813083312389236984370472426714821323135804112746572767875151948786928192124271360165013052719596842805236414692919435665690768386807546415538960715276416629653457400655527147144701101321501793009625851669645680580865893563296165915216222291201871410568855217931460954511571992988801900648818467733642859325173598151717281202564805589430836185493726815977014007907813813842637722883314956000968972133664467412283277281955246048950661114661920941545613213228561672233883000153800516825208782253547767989935359444378008823659224443831004479264081985134556705041592750134158789630403417766537033797175565355384165471390772942491574843644795428684540734510843036013533821031227384907937714848699722655337633469581300099141808975744117832270092542378821015842759966463501252017258665631627677181854034395272759422547050208695352783006176408462683230994049758514368179698179914954346689026166108700217023216364194870412947398894554819163809540269516389259342404402897308685962826413692468452594422872855910687001437084466477674608258442493798902374098782199031829427806393044459479323111563613045941375982138936968092070970571589289980249176998905971138236287265176799749286911858297556998101282825433353279385143169876955231947835778047397847048000816232099763496281182204269014899454722802338043669962000493430727868519899232118590069869085448221774734980612167017101153777953400025488333070688864195696298303977670602086561254979403710408260862891446976971659152747035086302333172068162938459405326467764788950789736590660846553882920584016954716556514607665686135368369414644009394802642784441194259658855241544854227532882502901511514255225295318024649992569311827117596330260666577279334407960363427911158485499610344431778819636715485056745431423920427210745085311616044649374620603905351336803003117214771676208079601204789469506607654246253103372428759364531134463056108251162938199865175459320769838530815947104943190321399088375322543102906106926774130952084820581100035602730418887745707166877495901269476294350523507828256549501554249046361954149262751535839736185529209891534652275780877268072007762052044933554194875760431106400376775402392652086084726871746234667369583856540386084830703581189028890470029286475838474534666718786164340651085761139274891018156505146259395371424262471280176403369154979095062549282735317030608532003985014607424883575174289475816355182207981423005586727045727236630691195557262947297101755144558729995068546697959155213002942513678460592325209712734807515998792211954407280744415576506416399183203179609457481054818829186945671230246826479158550460665664920563178889365859421801910562043983583599631002162275210758135503620053425490954878985251049705982286933656898491727293051237968545496951544195647127897991747882073549379856212559968177088270010450839194556655871611028978449394933767146004150259509250466905076820192274779527142795736454588137019480875640095348463997742458007557429218316881188332646554180196396956999828520932580453708265026389963525859235860423441580320414311329996701093323904660872062867102233982531563545433706454230855500391311482742108721264574603665181505699800413557353342403168321048863943154866773989340758800627146805942991436708696121072256778761095143485827674336140955343240563482693204394178952562583414004753241859555814525481633473207028578706171811626541041345248033927392103202238626260392917076556032648627224745601791454933439880918865164133434680916399385457927497674871609742295393842322868618605712295922585372363011048383478324046298112405503537478743841750083878735367879719628993615181754069802809075398204504295611845740845185971190291419197665589841732257654138771010025275653255748313385070223444511829289543256222100632756818732104318572069596619788735653507819765254684614992618802899452078738165278753643953977203900241262580251814463264655549349376273207266988123075334969612476601303080458638879019074838900499979020451493147977102313326277736126411243213901219578629097307851670463630227821629032610041444416208298387043199952627432064543090831816563860812702680266412648762052717140416856423264832785350493130208749117764752282730530289611380246775171858352078565416049673704909778548326488166526169726507982645790389026191390246934993517620108388074192750241873567760771464412741988818863358136375843235016102818137583990608306187860268676085963263800316059100825443944460971227034904443086120640186560527270456230077742058556672197724041130749453529101295752251476725396870260840937887507157530826448698553975515949139290423346488803789339013739225236621580808750614479286422837043140550859166839669717838829376070727540566071863188347116947571078155096818259905623338996249451073046537390347079417221735018618945891339544175306345015526365058911781568793300346404159673610461463676821112508115739330285933831960613550309498211390368235452675458069779198414858605713610169007679995986914391652489550771557274810407133898452000333985835270813293916007300447799697389478289562543946411837382877926143972358141284859781895700871146954244090892492735654086567710288089297543309305198492152816918111639823458396929181735584654943487157811788443357201401583558806577889920515886958631411423792778065277793058555999275117770859850587360009485470486562986306799429879359905141309543416453234572347072077044011465212281443739547286464806521619473283681742570619258774244238992424893451999683758039854996719718324967254954728822815794332335415967143645783019715236052255445818201881500764189349785153132150860883247839388244393041648122477294826672564711787762198653186896559663581482626280462341142797317661561414628229777084569357766382339803212991752567935257362339069010296420693318660143923569039291341998345571528097915537042532985871432436939658661782802850018087877277164768436571639710617642965491783302995190462375995022947149180595884590069268565775587728047041628634895583775776637423142548704797271841811705910868160824807771931725332470201132889524368552917055893684886247037370709919492491613419555413947550071225724749870584608432198919922590339690671068042562712170278483942164547656359887514036232079834475166431450923563536278400192048713419564612852449076948425152880192883918192425732388838629668031541396235781438020133574634783844456039685600656942435076559326685855468963785412680694310177758131607871010749891897038573153808048453978323904746249719676085076742862251712895825387398905900990753757852457419523261979391293634429127248000221579586395845014913201526488607770018953663493249526403485432772568733609997726035382888147930644302858223014859195989579882694040082192494337089325413006740819089550141028551339283923934381138238925863750699245885678531232747088756311853662560909430060311290602958495038888069514098956109215678714155174538963500616289430930185059247417582615682164031279289570341489553400719813853403972191369072231270598672125392776150496553816876022906021930875467638190524292095343589024765207168652889374001249016225012667868082997748344313950748568891394068192710332566637409174361360268839860604147402761906371059159793343465555197960220811918200928842692207931119817993027171558807336121125765786978335312096363603348062060121960585278005930053383895822350133775479321928085289217954973831972165394581171617066784030323776734404527614969765512393152458580885873804917415026916098381065579511676955928649579293380287926557747654817316226019657062806159201681090056848625869859592188123415155989866357820916277843795456934695698370422985631153660700518474898013502160750269201690768398234429037445846844186319037508090374862288630325132213392969000448446562632705844524482303105509897839342038214610156958647775210206413344661535498531941304271728051641323074662958102050502096195839971968593409847391978751649172022702158446312406379332563425190262954435629110978903764132110158022927153320304820549202679750907000595559043457730653146150635605084004533359610366690590150239087893675274198663867269014772525818505949248197967347399631346720511310417580977252988442231272255498731633954550537179571422090931943262555805115806014846279415290425159332339580500450663995472570725967828707347539250134280297959429380830078815591926121045056338146927363109338490166151707934807316134139084821650815142157656355875542501615797753887041790467426503428708002662620029073460847480989376961761223976206670465569618462224525642503347014286084622493192285244689673702196706298249611729176701596441515450068805516835171544595063632009170491008505270093611650596689929838075610299238741236325520285481645308513985263118428164873402786935529265330134844503153943340315690280150439823206034346233529706955963490750836436666842337190804322991058708678465351245353791286531418602561687748907201263368800903168065472287978047521802568428470926245931231691788158416833208514381271468431265545064043762919190665412062331836735852068309589969529462202431567172795634787988212320471883065160854747505542890831375121017253815331629075172757018982848059407806892650355087877636796001514184304216148795067037916198396415877034809758159922647926698589835439153530496445682824431878463235130050095985108160131776026769704068986119218168776237148996748078168867010128119447538283950454363963432570432666716958552107119458971837969114716152498875503783114548173977963486781334667869005546141039967021844843590468990131160737332668820954850875069749798412149013910394405908641435067207087257968446596990484645524422705186443840763605225226409466541537510847052427446503277140545567194420086155541028052441716174926350000487391613415000727898745941760731319691167988867845629525497873044988024442430760847211904653607878830959273811539368081855938147896789473888769241703277447820318190662944922606481512990828461359902231576925100569639211483660742588384770394530189670033596174311214360951871260673646862382473032974690857983101494331812828419983436681596095197246264455443627087184923768076833480762851945065560576711709710326126472974621131673282104770593694929253256105088411280041297922716042464414933743361866482716725939013154683163666747658694247994730842180701449892982036399339762920325275732446686235404507615350177734945444360414646090893895173706112461951880762455021486069404073174478091316941224202869926775061070498933197346633686369691232475313417240440394870503411892969694284756167837373763967257485993866882513520742369212375647861418909874335528839585503909277983845105121412448479964888284455609645805244773427562016273006321232661293744168134098583570121317082978180585345932986603526777083187510547007051402248036967056445162050507328130310844202734148824158072481799353986675882090800503906800993782741783031236864496088040786344755447877275775411529106358974855010110836447207285912362129697381931497168210476761428642319291130652345467165648439590821419876272429483230030242335690307050493043406816493367527099994632815665744272597171586321587794929346242183607512064282956733660229867331687741808046582707473703906278701537455738963470723375259781910815727357872745243272583882864750501022454249668474200185514855548305825783672795971951394402959560952625965730734530183619330559466611172814598155586467591946564914713048814971798645845057017231089347367943911401773329496663973338711051184815015118388050868838708278764307315067711131321489607401781473612520101670854734080177310839779116368846428349108080194800605477246676707395092760712908405946741171647059864990455840884980620954293050491262886129718140104430004925101804419972166390156115508590217076289922265977293587736123137916497686402701482818894525856660797690704521653291455295364266409596249951370448998298089857462110765450810504164423284410807270690463291717599402540512852710473430844582042501237659657539600029601754425584058786567612184709752044288259679312467254635760707491400752884693770926415458532742242688522605223742105576194506205905341739621079704484258558784611047265140501899690942075342501068461160903108631307666001640652858525051268622115155316545950016116531200871272542445754755340186982948224201531217718221958103880641943984523514224962941048400206649192134148830780649196021138264397951962734100136093961547474481956706420172364237903806260005886354847238670565548488743341364738117482517865876700753127096516628067325831047017901348214107791238315574931117190170702817913181071497143551796710742559742235536462512701671483048497846622786019171406143865308622887241952120762809994864619386828770471868803157345534255286989665632466523972375119798356889340061918791806201111647545680094665258901894385919473279886254179747225470607483433981241064198537637110583184768849772811900887112951974665797566366489873371115134449510387625027189445506679776410271888799711325287494149996787829848245106505733704417247366906451181577850665584494631743366112599170073642504492063906710675751779869620782233536402767047331309125367910832530082479151901360813023847782109091602736023247952445541309112591197837207602622633905518697004634257245881747188763276053328074240665790850905799149704065831639143683947242294281125089607693563404289594722499215578664584033878223410318626401938551557567311545611123174631301629579008384558080994228654369053614162258699433742870454132459355723080381500116859988447620175049657818196871259941311216768940840878677744478575398296352732884939593942241330420370771825490171870625479400556181277649735162579688906041807403996538613371159852632234696595014009194236005722264188106897253491299939273664759289346286542432514397924706077529782964662598444245014416793679990133490194596248461469009385241336405532492487946001514134159672161151902297477814948332997939157710019350110792558972821410638918720604568270552445471228056792738125157615220932513125763931417690129899601144366561209085978982139463855790009893388419951486871499413745377316650444444064423350009715698150822205122349523785073639382863104963968033696055199713924450787996457594322874766595161300236561600528365555710581931219398710305409523575026590674449087015185449482150947529824143786990597621544879998109238862026451303162008689449440723533124806576195522154908763749557340238628325112324281854278484247324696532663458597811972057490690776172106747855116799787580706631085979948154329555654400147650509757766454867061709204976919767437775168052445183313787118710884875552821092764953512688456570635433671879504778753596657176173943448074406132984206701741065498810397590828066032773511182888957792422677137576994433585800871414047355372819085173139599439123314468282232790548921924259307879979673330298569466071060020157242850571087344731720456527654582632171253881321040776417912053095349678426044434852462975723774664062492342800101955598473167904443060467426033841383288728147169105016268437398590099115040917357501554329364467212969041019600636984457018883866262574758173953720969166093107808257793323795279024408678415568538189916487410536899626388382896625467658497184571239509198417347631027174125105221250684045656842687971104279624926787101791485996432981972346549546167688891372972789936601436997561180288616310310671108585171954203466602939679673731907521909485665964233261426753710337914427719643851391887424103041565169746763368287176560937626224780735143620554839468869873766140151580215207086376651360345709322003037897869541870151941372723572570704477527511163421924792829527611623072457654342069255311275867202754707096614116328823521821824805436284323071793110323307488779369042672509566181005993615226713724579781047038214091145041524970955161235852320150910750995745110467075040520520331355908484128343249723031246865407357168034453347167527726474073464764108015265922650249011380075536252046711636621134205809230403101470248691507376018366344883315475496915760638025977943632996003530455012638496818927852776979919994902385102512128028358422553747814025424915483457311955063192989168421978411509030950081626124889127507256274940598168618885421079591082086804175618989247255502266942161952453610067527614125961625100120943005129615101154375214279429706076166404893655535345197845920044692819628202140608440629137925437340128500487401759619673632475772819442034985534974663449081491432387538924742915646998560279385407153681284075119771264067657534343123076170552762589943134986713745692154963872046479208519073524362611890166941859903459403080893857906383944692263806307867477874634262681269521520963309404568678614210843846251101883182802712528161159088165451137661649257935694701987355604598946878715625581422139888461270677409893320187020419990126029578056220827196711895625354413542113500371140003660410221211185233651201801932652213360758269423318413673728330056604000404165786812032767866187753752389311473816526978713584388616427362392210248415741498757474685345986628288273943968009142778168789229752313950535494175663877639865090774193517273092343750351017630944076488695030180255766874296834342675949369123142750811039523634083443716665447996948951174380242288823108896197946575664944639025964819696652564606685309474945875900731506057416620879652942838899970853872277146040197313665586284245039546480880982731633440592032458917881897211077385547427060562712205762889731837938586138576390641167186125082401930687396157694120739160331634040585913919615767352938580157442464528038875677318972744533274743257529450042972541278803103123539340437794592005429084207227826447443089602645819892026602595741054294565605453436606271987357780324013605654782898199733679265045799106499351412304532293795807007679727227565102668517467345499613189327794807855480900345977704081937388385950491133932718577534835147000671129863893485763384452855867613197042141029978065818322737596140325583838833439904650202018464624805219710623779330588712040649964727362320486791132020700885637781150787521620904353237080922691952448213324157772028468211293809393666050183372084379482572856128993578111968362427930073541042790058072665533088458016347316720966004286413226215049279923760498079194536847365617452395815575957871457794987952333866472411515394697501097371629883444676015632868946816974104248303266735815915187037720492858968623768167150079629156912116497984172351132820764662914604373038972442111186089383664274045930206351257861791698965529097680148742109544367265963824082949837584511352620547066543993286288281908799707136411553501289276172461891295104961637689356210070918062545945133548653933248287031478602900999009281429473371484081797654750190835408552309925541085315711452778095441077716193635907991444728294335840012288089853133716440720778832006389822534547531482868029714786700692590703233093542402414226650056112306209281977484553169150288670761279043170602497499847387303254863667425488819907638375008423764628027885271380437312131230841097193842438244769819123421949790534529206506739949653827427915552144312108490497206161407303574058479739400455308346239561544947373927152186906173629233597803310777278810231595009959960124348628348873588015440709303288001163541024523866350421089260322381679596222960987844201712244965508937580539761619752483904113985992567294321050736169838109920150891601011590083648650020491139926123107172678344553019835660122191406753435895548139896083957629821332425669563403893581346005228492561736273987528563260738936529515345521796960068247522324866510123463610631723163962885412375299493559575054113400846602164784091382287838466130290622708204230885504373242788597754647423533693574815295030546901882667962660205756649615217794911809402843957612542517497297777387178795971015911359135466654048403857219981482369659912522712453751384036118721001607741571112206283256064819524261787703479427017375059098498248386911664251683108236837212514852466872324676413554865096941288367758221337146337425230321845578187127970954712637162542132664696626068998997884428173881828777088694760022123267312174604550680963420298235440139907206213712360227347245976467150579980082264925200137633291593812463125460491971026228375829021189227634303278195039157652275226610081865626240774795262949584624410477034134119610445731012629643326692752061948040804778777920353718923685420133945822448116957761825107041697431240276060560821549741528510701127235374937664806400504730537763179832055817916712605636845717664426867280292608244404125043046613999878667253201720450280375426942855140387276309379238413117205440389529120181730750189940987596538954502532535109734949031191039822579252046062340746567612061321511685792349657178984976765122959774657254447094364230294058932004826906343711938536638060072229469736015412807568056749725280964375725186287274823161234367773278315589861232982924737266019574659357435179436265790635857790343339135263047097305254603087156960180111782178147344392207136934969394667489546240571359591428083370528993183624655477539158622498873819199218350170160611785293728716953546495727059758837862148061780097411356267870266276123481505865496652209436074728311672574365944943964781810106741723151280877120653664098726804830090809652402458833268758738614326075138434774344907701733693532922680642565450994902454011384956559444210880731071942220292892542610729437725282024403249290897647553352516588702497383671549444709539954963172374883201918591709616445737801565675208841959345798868397810405695350569525487694144052352231647883422857699841022289291305653676652567825493149404603672990767374966157310064241772829072358871437082785467422008662705304588792197569040082057496933135710281428663753207783270407677317747341951003725366724761163715582152025367653712259760931176503876821031407218379473671149844530625320674486269111315746699383600749104457612894735183431163435600287555364659973122561033710104229644190184956898170416070227796110524081544862597427762495395024482362925417084384326349032156129313391318469343413639899446414272523659586330186737138678327337009307762820376136586176545485147257876172023349267641742499565996751637737530541898483385468192323574239375889332168920304440818749880778917534247304253137190345972948435626266780416157953952394867609072781626564904773076208564991031598557159580560783843937950209421131657106617363668119627787734481512679753842675877038389292590468019987216991917281498491155293641455097375908829518854902453469531121361728150682561603404945566620448184668733209672485682227931733659790568536477029555293543684303913831183334503909709152399603597205067896825805124268839367016799942083281487978711707491486042652706474044269809934023213588328018141309225256949517533199510397467737331298432951710417093800547336513052967316562923276552823205524230935662816602841689546667694625071436325583435565503102588477217657227385175102411038375270750823774923391305497736393230609227076337067802158903110223326183082454164255537899485657133753115028047756919708133508877558316099206836714761093170013451264640754415616385402222643235774072991765664908576197044916057367497713330650266586204393520237095867204440767291340458720935086676151958798780115291804621944886176455925863101400156296504720813862416930319483221046062904463078431533482122823904202872245852893326909111661412791911957491778890181396352427127982243176945735729905680014419189970228562750931973187185561737988387673381038717107754803142287777072583778883255951322088905765538142080445325694762437260410587034024443292952922793968795795512830131126621441336377999380148226975131448694043065722139767395020432084455786252367839972419864090725164903235499680256421183248993849783326646753800154580341208894397919106013349696303907046499730777090212796347722773965240453858316268576719153177229266695792705908092736385304579612539810880955975833011675149352040458774262674531063710638551952967803329178818897607866339389891245582112947206605625453217378914286246791247033414946285493645285211903063639350925456876291357279060961194684485463383089676043678349718276748267316918653904791657602456159706550703324290298495055495732461676527716108565521707859029869044877610603560820150632123189766124203370527525121379721321992636892410315204831174865820286965648202486144261337852927539030033202966277514464470447571518141582430351839606586141206045890052362673139616784477553253344677786518447226689858521226845333653676333740472146244407748008223606008836675877504385241845720354314871307141911234355465916665855697479084909696854887869985611221205399492068751415278202397387308408453120540661705138032622054754269486322543249846652167177777770648766924906937549379530396334588173463347508341796821645274073043937650888502715059102088703486772003768086832155305269325293630280432241284461466265276601831164660656136598038524712049739743148023520206136784355407601453870528170280338195217297922028130178244431873219419805724887345062210847294434584923449641352051577636061201153166518034101190229616524640924694256117323351597079713253532584325098752694699121972634153177160802780758849967209533109474430523344460692640530456742489244243222628377443232950323117812527828069098589306587256168001661075250731484912898899599074091224489375198824466762685693367363050731720961498681646681211937127955407868115712501924214956863360989046369646627429751376097967509462999002929120069729060342426829174201700388249915044749755519356220353690114217957795788643975168863436796646141091974828670071749131595792439187398088495379613132862170688965650170183927295823657357786006079175195829392660991678273988036642557115560813313808993933486716015417545049000965076043502205720187340884789708364795958066430234069507285271821645639935223756135379130756657585882896674882037642758768459563892683163687255686227809051428927109505411259068428023925614628466684054124707844877503843278238642514391699543184664237296948601882386791727396638429821452771589719339455203244043877293479630519596367316106922033232516558528928026546765981661400302408927295884101415251989599247016758755096170001268161738429562639428553010079999652889834610625746753115238423897285302005705036096037130215545634993007171917213821248422897123283647417736004181516224158113840201137170853038884518805041337698158329303602228651328696004712633629067173829341519681225800160555405068593400721717609708852784709669900623355460850953293849439622422818266252725902796403090070914323515223576237980451734565094857576253227903832240684801828384676570913717706210653643323469684406738972270668400332867141003888645983223641192376493482049819006383133329385664016347277097733385330680211066833843791020151245012970187821320484250352089330146499664874894892867141384591314187722023674358561289015460623557671075636372015328779828998101414015534047703206044151605675268458529378183942916344906454650188041079625349694266966051847147679313794726329718635600431871211157474846446362835238825700681312355772247453406547104165425573804829582930819647881747040047466672657790136746081956235386602486138846770981569897996596775607142946293619076670942794265271880619520180048748426406483920444849388458710720437214804760896046733606115564308988424364235966599600767547565454948956769952539648011250646301347041871634810433479600438159366458303365943502753158906662676025268756705838001331864175385999852684462781242722971499323598488621131283586877178959948049493856583594806128138414216780595758139543374400651161428886004861732476433064407537402525378222109153723777328548809854799688346346368327423789425319226886539339510654221455076661631145251468563413871634806035718477117092667159976170601294345262373284028831786675328336728964010755047572810188514250645520464803427862809967011413494998157525563084014615800477736051725640341013695361710991898184069157251750697065108839895353644190215336574660664993775248474292915082697105726147745521093004462692060941787740701615796480454659348979586496572203757320085819474143362481031071558104736185263476765219274153866185428508677578918163768538722776222860115305271411472579265760218787951900231920382930091221764318113740802277026514339581019554648907440444678761523566578489687712538097545252482376547122099261782319583945529539039786267899501148580563019825369625865138286960382616307249690371371373999034905576559779454908011415615641763448947420054824479296079850550046659369544936468322733747394689350414729746340716849774201575099179289038295182688155608921734833476634314942750913619176337584465983232312153269360907287703671100666740122534885881485904074131968267894544351977466978622016767388294144212294518515252092200749397559774304618754625481166511211311811790116373175714611437464895458587865908590597105594793308992776230409933317632175311185041294694316232689539898803136794819503530009316512786123479277174202410483359410247551818582812332550852220143999091685134061851988727490072010025625909471968351210744096789026607341864322874119536543260608938594624640389021404170561966545455258247246046657564911553940615842184568177909224068394778166498953722708752471046647327412489726179582898817164270283483346721856352402917837420005455089851874084360222855317307313545297973468266621936529179312834993931768991049914992832104251177253679982300145252283656521405212505809433239368982364262439181937681160395629033590680354995295693021263089935039480193200272585952340417008175959260506091193694414600510572379450481760495160967089439135791652386896029248053565442214591580982042622500673479918096064889235160233046563097743832576540551957287876186980925735701340814838764889853199242991934097885859461815213988776958854609973149320749549022414349401787782508527389663826859741279151006147454255633513700684329209083071920014524605548079898758873793338312526814907920481435595250996343387681217770860574562677642090968596777017958909361257360334330571132161590020816227390454110734687246835385258944549404726489118380097659142725705804170279297054495821337062017588846825491713896241621706622625747617957187519832761834739148494964602117844094227792170689221870518126052070015179327571741710161383222335759633459168715847897007476880155785726999923066073377024876280598442874899847862372163729028117139789608655547359598036931303174775720345299403936197406712140837708469860863669332281897865099019744246718786271212760381845564710093087115789058487700423217953414192738348451381020461201692680794919428192604959578921340488335847054030102955121268216598881326469900743404202955026360534692954852108414674518220377861908984795682705848998755411932715541720567708406450062267766488271592945075090868499354637707415221185178564903724462587128943928156077272600356069095127290498600710308400043528950963613472823975418294525279807264305472068705711000637281714260659776257906020525244527569492668568401500735217034029679082850210485009727227290349090495488753817526292500025972965219320614268485556556978884463285427056512660063033673162502468668286604362738662493613979662503735768397920572978138419544354539099030847447420903844974629557310534076969443241708250280806302880442974629936564084702465030996131670966447644259791070487687674190743062072277801395610617002105099437411805151907665738888149320522530101799343339512421248579802034851000502827618318672988385193735985289136157389452844392471380832109480330049665542934746065922654667024770046845759378362703360225156375432125441336656731487744544776664203635638895786713718922656299688927845843480012814614121539416781592283837193899042718672261339555961560603110369618260142320305310116473470168982064357694590723099437302317015215192118371534429455471032075113046002026296143159435139434030595854316857984546437497710202106271000495947613856368645548946801512245815745744833028516470080541259066517517194057591389115408398538202353447900463778031677930434145600462790420387057186190080101592063861488552371293442499347026891534061240801756111030993851893909046948986500498481809797448368024810146824431801569064869771413835743997729281691992723316957062759348264982441251686090332518490995341948264177328511660175955581696282026161047247660188664357439367512575526267403278462909436418283148886975977037826288464917614064025359940432446357214419506785960435035597599859579628471703565459569405353242658592619508159318422801883463267279308153042833418632611863825753135023131245105103135263236657663894459079260540612965790776185244375566162003806258209972112149433963806558187895257398712901038681284438239677126567072766251951811070594360368167618236045816681688311540229425017832865870559243192520662841713200385168356302370433513678062263085441695010114837864613003411050187194255314213866768733802457869748452327504822321224691483246395147086616416997886146497373124751912939040187151880286768745921950773450958365115381020084700772955606188628952885066442269614730936332501896947191080828081304180130234161973723475089337056942589989356208736055762613008447913302469413834978311597782704454800936662234166931933742205663606632414504673581632519795970274854905847053881025504708248933811431564440553198352863833187551412164954686418116950292861312173969786886073910282945852591584970449632364311452413405982169820760160242124916541940753961996296815500470106274529017196380327489575976394900581815576686879927861037012558541575580816398222420828391316169786174959178954609545007437618068354298924552627235068290352621420725696420812642132407188038331763034070167873575213117526513744953265964245053303401053575009309153962915178504763408038864539757533047901996025737534337052991962014938783023268152961960696794096856221882365384445249843661319148204342525252048295934896587888679722275218106131765930127997206550596096448678454728346185085842813854839414677314807131622740278348901971456664156403815441544115469144400505824284720897132268287359127058811632160502283571992814447827631595132184446513570786237735888230540851919812174349894881077727892520062508074996948713886372960276272299017966569283072970481503625761546206983624873651470147026018219097858663336728940618910927343595345294508453711439278968883696143108152313889105590986327316369396766654268806968609530138224778799801221663222113946695862659347225707260029090005476142866389677337608832503569349690874608030204359381387279135679275178483234752422824089056425984574759798463405891656623142438061320413851915823750054961316533135626337122842395826896870904842773203113293693283404646890021813072621471008295304245448347886075436964636139376880175278674138776306520483657938736489302186788944362762896979368252290705423070302060875834939582808792193720913432377279058629997107185348293839234648690367861544828681880376812323719323847607029876268572759737208782723376431968364583170105686192848231496780126729002201815392760927214351028897173954493624192590021787421228998154534256730347058571370788409933940930155024148022407656700316728523628935552332114219841158517348313893631550128591698148791427389409888115110018146834744482036395395424163462624428117096788942661324894919424352227076093277826448957852080321730167317032413746718067539023120905599157761445302037873643836353446793156003108732964106597995323840946668877285444547619967662202276364766758082819665217939293416080323544443911207982056101133629164700334810033156418710224761986795518950991484282006535278992071776179689748891511489963759944773319161489323604593893069770930053412662985094007348650434821846510081521202587783561054860786308500026752554723144787233456657252563470801551003599006682160423865939173677064342041329964610998800906326790809560213913417924215332382317305461763864098378332172025576126075298901320882324488073391935941258767007215809765446126026112687075550821977538594725442462452134120670243002938347472370015056065815856609873775883640514437616490305451603471484920979656706482671970069703327062767403696473811114749625594033523195962833130974478501346653539997530990876645234068133782840578542168457011189884042338956505977135516199092131103775177685505269139628387006885475961416553289989130987266839696483347806677140738615058454419709803900827507717229730246533390469659313524869854840952499514094300230973299955451088862668480131212471945519878775117224216168664955886540217230615316071459984609763990630723177643121519192614539570566907344610529828070601662851405456409473286991910551015973462928890354068701257199367187046614597020659634981574778256451984320498270063367301297790364550653488667895322798539379331821785923377934873212862407719505753492466183434841770887038579107025953653220392826370705105573407742053610644413122665405890102102123491236046659939515054369691087943904843921452723693413371375821366566182687147757269276689827612686494594019886526616778321492320248703591329572856502932813434944306673118429494692478327057705558598518359026690809740498475711996356354923098375852378392274455606416223146387178826371638751735340895340064880911958185994254903338095939705506655512592398792629802993773641506085771237068333887131413267265052458457123856352581460820176163295440660383331248291825720064855052542776013927124543990492877913275699319873199871007082187874729508563496919117766976978466273032825056275539328178819449473716947623585397761847992877735578141336927075664944406781300164808142639169887667750090216541600442021257344039151536472652632193502654736346618003530935141683060428250284816805388842544877602611921737163396128468261692377550949901237502559916970330642507891967398573897808190530154368139715194320258390329775646217547358579276127476862747203327025145210798770391329720773795400241733998500854531857536261266265054412039705091236092163423547328541053168091469484158641851895710099286905851039360974281872928968545436691851447536919221091977624401945217017316761425754303511354241107550872980637809999076839283918663875833763835141413388223433362489326183206450403080258731606940866370744658244349087902903373329248360467744821122989097215349421532383156760920451680448996618026370004362867901932584015971321036425839385432428286681573610841931879326571705439693092396522017190295336264312297758359375558876769924144074970635084506198810682159413175817880346849711937433166882733738453969794406827071544351693843180109773244984480414121857840482794188393315440553401630646333690024479209816881749447291284163595306817720090379157054277227222525014815863208903461264253665324764310769329531441801525288175429946617756190112910499176365891113389438780045617634940327112067812113931516290363828814326082734662572505867255236585483761489327712153441935427682544798197252212994770288351396497419728769637320644714206958768483909971478502449663080769704838343152465811238090187427831170710550627899222004959068985087862674748009488711262532713026644605819957204885845568127382190685476868338118278177596011102646787148342268718874569992146290387540201572756701077932011608366573264556576355955857399614156373148254744083055748272076069746641125653439911489575264547662903023678659896110818211210543375786121986641986607928953279533825934341188838998297824369052389678858168283804345463174775338877515153352711795652306246370122660585922715978719745772305675041860258600467720156650642489893766847653856305473825186048550099711754202519472235880032569417932386097915693344883386515669261620955672109021194826233111887714422314025021736515086792002745487405656517437477415961848911272975919201059314432103424432304498945304541315903925618691756822817343721815211566923995067463594000589217546781257452213008625021171982079467391392439005203832136504907688765349400942368913777813872067505483027253213910786837520236085601586623885827971894667868809834307893477509057204624970871662844399848365572233766689439710811464302723307904632316332461669875665713790511898373857112264803803544849788793726418334760166784291908541969712576304188116314984410387775542203349711876919407024867889307973618609835424873978771364688479559224673774847973003254972520928016950085276350639477700091906908155702026927293668277816210913889176201103161141639018382891978054637701959916888329867590247419509395802386746913355632396636842756619918650497392061197500275898888162958623502719505145452310816661818227994794930774805089407928815100583878366241520937095200203826454202028992854433561690951348551949378843610452837911055479641679303373481392934266548909040755053045030124567911305349669583158846303290149907106786557902444728972531968169562657062637239261340601997732947213940731198056403887826547425350399054839752466650029376154719657458239594827173673994275905457295917748881308545699938979589204487874686680230814467861978846357994940611380017169254944740173268358194510139003299343511609248826413022883166125645386195687138049486671316536225596780804910407356277043594992017929866948560841837602380919465342869098271515165385465961529203659432295982655674949918164861213299227027258149443368855259387684073095626928219372879344946899881167765792032614899792366585213335944845635105847870321472690427907162802267399005385130836761884290293307592571288671848507616780783785957227513364246466469072443373563842032457560620701234708653371961989692807443885549039607870692959669611979375115307417722263272123047532738389765485709752228540876861132298258800247415638884299520672245011656739202050552575476289607448185123171509100777619381750366992621657339855235059641375548107030774855728998625745716089175612002202576623747841699316472683385212613062774900150641908747785182583113649096869124965901103022069439188118640570102544246574301298696334832363708412648463725510903172830225865218643753254406692588055929307262621987479903735229854330996582110921849011470991626406498828158454553864400069181996553216437970084049329421565638410632197366601319154325852945985281921824303499236857885522477633172350129323554526326328744040842553544868597583955255900713092704400984118177565437644690946050425840855449018404670633496539407663153619236073957321986651031925695972366862094306489918037244515220416196351836959860815319450608727375708055218393732469271497144302972822553631450927206463927677023314097805786804361236402643164221325044101183321276476953197836669177107986534721753496185847649185978162783488990989529913011242762178021389553610606403207370639502203316510533056458513066094459551411294617695094661814069485391651763648148785964422342406734587018590218451655957364352586072511127491170369810245236469075484496923067506761996118263424607014898826951941523614031578594552904860317244098435670528845384038244927999980590774328801471026774388381207126667814628268211553706092922101236154036732409702788809431632629017554481267713158626244298461013250958832019282718810334349694658130499420644443505339943257307744131370097106805324653658049363144443343016059181007412262658418545631882374080807698851666019402289801209370162365769600933686346827844122780714615999290987196585284261019002403661551472745728344817017193449901664535072054181675241203771013074035528757587777397842583341331868309222246358777189159810046549469597154507247297887515823534361690519789390549075917811792493945466406366357362047837037248508034971106486500083339245697251155144549516201558978713009182479628189085916177822000571265454134067615894787933797330695482597390046118440832748548035808655175407402965260421012347519157852054643698761200587921373126630696376939441879799755342566962692939136405503649091034165917400989963437950330325135839605433655733618988586558603902265278801394737282820265341903574566214583805596354918216907116179361833308308205926739655337402735526008653723523460513700481868395933464106159175572888461220906087591403691283116860695622590863239208856903258011363939171939404418236357572659926933001352204610844495123082867820688750934350541703303361072889274743960283276930821935792279407754737517438990900630390829069023638958456206502487839376460715643817478767139944233121068244548462142353914284284661765661014325143557714764527108250692392201070676927109287723259996458951769616590661110226469260986555929051526461793372768915223268379592864625048120146906985107486071659708561213853425640579428613525668811676500332921898448501012714274764973944903163601544659551358741481942653068818228543724893622008007893873041190452907763969889624333213869069747578385732779518830668522656199792406941117156049018033402466653865958074572250541362458030222521659416032702132082765670278337644767011690003979686360171383412341914048957654965726008262167904536177703427778067064085884986096811394637463094305318798820079290790981277102016280091775673819337223249716572845514233720971685023568749379810836642182366215875886214110793974788253290927533617832762018783313516635499635622033522302359292939050078149769752475206068757883479286565353788614427777623535152457724169885595207073983427059980113188121252721419852065344167542528093990013466818536533379432861064953739425522461423313343774178505921520326471078865738283599204298865409371564445663274852466463223355328462161587721137743295408835359597491204547894523501968738434397821102266625953427707332225520017831774855530579210024408084400415077127952572681322475498851428759830344784894400645208589146826762308710186651721866924314826768436987770507498895906969704652454761242476065773590348411103508114900953326632907036763703731491830390249531491849848030814899596895242925462857999290466909821566131799525586466609056284127744417613730193017290863292195463039637190848540907925016692356814436035524618355453136029673805423615230625573313961604551634411972393517893139931222211367174927892129959268123020009834360382662786515647130071639638085590090466296598317767885436462107706293515863996148473087171083095134741038123816171123094534942052671462469135978937601985746385236682723566751637222019860936121611638588276971331940924288963899734849373920841697718219082347446981264506841148679274588778301303815342803215922834636790411711215896800396147326305383329226059477749948903403629478621948596160644069226408603718995055327108097393422429479226411489400571876914427437223957128745014915899090824716199760804088389203334237517850880727140024941749621487933464254115384376930392171479015540289494360130306478866396338031765223126738174330203815209207233834889389300402094978638885119745492498036601521615794778824503753643095845473775049768856470172064827458774589047187289783547859687033641025426314331255959312083833495872622346962993876096797487500518432367408184784100183117624435689380937621814359649255623590017772485130632701337468664426254658003403946989454412551410238107071097212210966920710276523184822170608085310680878653397717390462796814229026663497919138218359670019559577785212088630966125782587639370503428396935855179589590969099516861851964226467264255119884890283764441777769891961940099200886097899712483937780756880225894081592852089577819466296701703962497833077709245706921026883453617779985845386789253556795921894913074174484457377339525188606045429763957209907942073924541187423695714654595068980146743718540059834874529099585413866179030651704792887155710032138602805884691356073911193129663384852353306685660866516124698144705952013301951080473320345470844859138321344763253195687087529399231413451962509074375080999715468964111571720473792020536289082014322072565941097433627134099032845976765420823807446463067324777479999717490681534102552584651466807538689435189857057329073381842122255035934788364173726829836594270361655939973281922305575918526235022028635363121137721412422379755831082897117452168249160137283678211836667993951545036275381470648409334328851942545813489895163208965432391146726714190293601794430735471858554416293520659708341462454274580280024280024655650173488756388047886405143931799492767411639150402117353417027388041701771848871730119962961558653675351495604941484926556537184974443223766617932156520907103268451880933128662125837569541492776031019166011799637143640801831628699076796859019964022289151987042645919300467503423100422168386829129513998889534620671100946498553319092791578652279876442144719487239808464167332973540950063189493902172243996659037218177104780818794254578099148155063002549897330817242773845054837374630932091008059706786986929337411713262297770104501760689384649640346896433390103614270231834016849741769723283683254279873207121089085787894239761074560667428300634243517817168115737104156876186607025413691520865210606605671214925052100910698800904346577419085871067467980932623861550392696775606600267176713761664005483639403763100602143701092815241684058269616643225709378239895875773360901343682756742173123780078702445978300329938901312367287726148945185936409242418249954070803876164689006782332366996188631699212959329424479519713718845033960280052424521433746622957784982701308583028387364530369507906093416942720403151395151377829920947955698952856567206386644228207930646670312153759952423290921980385689523768967420612182874502726207548020247643537126292824571755872651754947729732120490009046585899952844762045715804955158440669632603512860684473067927610970902208377560295659363627686418984761920205993673825369113319027762086108338875180799287228180179576763495609440296361073214571621217926747760770228622362179359754130215497808442792305630018703043755864073439114352549107502395699002253645459417438263247840256895964985758674596729467560978497983220954581204400727649370505146694734965045466750439634364907908038819505146835038287724702771322661879367586921050535267421894560165444476110761589148960086418988182201598712322868754951765104537015021800690379049822118148789493021165115702768678338561649679023928427724470486133061798895500302083824736167552646460155735249847276587095371975253121247329366840272501758848009162647839149677170829634809122866264409656299943920632290953371523805496174302767186705552064043511788960930154470747033186862978909676263830190828939320528691266834286431469037633587380163394430334181458363451855730971307443808471004612404829991352872525945921378568979874852119800902781985284084995239173251381661740549330408113078859093461635620107555893621603767088770495801565698399552186457935422930184853755602964195564324923488871485655209299966890487828183436305480470849703209512656775939925097393984315990373798418641218574062569076663948499105353797428740542335232759050297645182768989089339396028981236988729854241326244698968082359246850876982538624160811376311096294932258291329023871073701125508427178422286951361418823641382204712962905253958999231246002586538705267246742088352938948800450647865152295900017186192858963031161932886999720761798704584124295814398856174854828995346348385438042346095777886956213642710958036132226080527693037116073474908850311019640826817600405588265749279272985842523210024004813309954752853455569995967102215314154246948765250098771866415672302674312036976086968332771220342908745315948311175452544661964875140843995202201850692111132603231104259566255394416225432891311938731585037265281491466193166067120187143464057361818272517519570101799009629425775668597506737497806439580414732774408480062620391150438802360710391532807883607276872551719116363120938892748471061734888113941780524288528263487147970212204048396429198190952691240769976736958906567392631770763433412068278197669135199729814016107007741712672726647129738867753643301690559809093349043829281315308144482276915524456397303594638746562978887938070812953277459173719878800850674938250665306239692770488104568480741167015116373584069799009692605494153410736628709425643418595402019833230693151775353806694151423717305834867227593254366552737741335735091121852666211630845887879752697106659373174083645521465872893912958027802100169971908376354322118935430768235886561286250250262120098177444985037925557823035736113818556190264536822575732469505850391810692611449678317877241637082514956847328829472644811438350223564233293029482456569880202285875534441900135963662636743008793832878752532139094407743946488745286182760019053080968041225671427676164115197611514312431751220470182133309094319562802439289688326646957251769016470314127943786917960813320787836596681457691559784011484135370194743098240700992670654510262002578602031910862429734950484118391400635713337164231034535424922877950461130744012202794947427588881357258254413309860186020174957306213239620409646226035473817339642597805485880172878684206658295569330367022668625720071922804338802799213134162857632127193658296548450685191235740683535940060345970689026235754070251031648466843647162181007821192404279812463090473062619804501085814458524542544167509876559308143340393856510107687177271141079967991610978372434959750665575764148476677054914837108989292339914302292425361541552693394222698459479475710570684514345853044382734063261692916841513177047807216033255285694936108128828358823558025247255529573894339611909425689024835201148988774203622191878575813046628658060259748518686838396669886243307512510162581425789795998545849537590104375028999756631752612576037869921823274855302254002473415655632403674549699772184434451520564250380977899401795223808119485938216616840805316391851717127934659758817972072042190437556104070000379586540097538709443475445665769415595012169282021910798435795539257177284345295555498574268775774006301885145897762553389434017879830579902362422066782836453315321736600877534566034852370604183115094276261649910808133315634750259569709768550751178496466579449065974327859823546983866191832763130421644699876999278274858871100911493110270243225441292913913867245115693665132102910805557531374518454897918116785374246149552135182941887982732483586174762456772399510816980141250595710823883044967173141563898355057754276305129405697295391347800102258579969343873929334058857176130800449823497645421607333722936841443141123148624603011336252070499326253965402975922868546097040584553489245703628827617556341105472932379024556219957240984302106489680056710306263721721308736023733538754930996734886413690622317554545630435584926189403180239133643571667486704042833064395279673346365990695344876437333692089845439619357962912665361998652452714667842030604223060057406759744292215960916562915888470008408980490039166335425804797728276913156058634102174355444150900749811569819548879730039066676656487147666268154747600022989597732857020982768512319929719510243404301392956188458265336597258259994606952977963678610442482199062520801228861591179678851442805012948380047332504413260331644431565317106945593489670475190350848658979184951589899241575800877990832813105422683103114345803145013225173162791438568126620630207871827597963435226850414234198950949637112970411456194644873239006274147767729881449560094273020522945836819262873384757112760288491998930346872066992697241887692348141445681754737113511784082853972049614119942476764943193363357332137801539269043431663096580723099495260605580389502082294541294414440392946161840941975602851788892723176961110280747783885202343595158292698155987578853247385857541616162711322487913402837045435655245875906983088982817026040802764877005826860870609842929511501166590088644989054973175127811862410138265430717061488098515577522411012272710683424456118241152771315395440033519542918126216834908802083321867538615700414650320299688100495927722400641540885576953500934603093566528805884662274922141465006587854210056006610781015048750150644199225230398807161559178500389774123819385583472021336838050949807902814020499413388678946618877696593868237600137172907492932402446307223412188077180426061421574924864076328484262036127606734580311649626933236754504832447561904666629493341090684597482032911977120205776733760772812674356944258517540198701942781043298107148943447987476078000846711138979572775240156705918020591666096190559749250036716445151213465214691384016459527333172842395728594643954021448641926402678581642413737712147268069735704024026148171754946572098083146509330966387682620687003061228391616685661716748800267807446732701795404659523159727325222357808891635068863128464015950509061136090285910919112844612385472482543346781744675019555387623666600703483036451013994579723565892659798058108824461311829695870337296969448794727411803626149312984956083657131745355966657860132111994449176918547541525031603245855474030666022446123317398014186631654345309839745040198576233967515875214038641331894809041813869091313823376585475985606719711147819948815279104321413280725733067643708920672870306474967747464521821344647870966473856100966823190447513934033597151792022912420934336409388847680767745143833396508960904337750931527342048518381672863886158660087578906763275252274492702517444568444923466707316505101945036148517682719503347776719407720546231346968132769840980374178065943919850488251991083462053981220619869111282445940700222657244026280368065211255745466522447016869976418180083649869884926198717120564058801849839409488488045818348800982613575854922407409883443877072687769585090434065589405311279348542904623486760009321735672494099921571712967490778136871440203592953181016616207493005546751653646943481412024491966049453135083530724649942890574180633687295710363436297766261268024822356398094010529921455145383129470008905837758571965064030400639590730889923608536814366458237299622828616494158373991829402990817511408453294189960817751548673672918294181744063364491943478084935392833342444225813532440267671074169228705929142589064312945024682312355041238560222768624136000305261982779353561991933817829036628714158990618298222190463132672552441075121502586068969084690468345172402960887146976929587167897561296185116943742093182494343439933407008779291228463716873631967998615258867796959583671045424060527716157940383168682488008717507375037777108937666140460206240099287076809432405412479026257407512648779279412839941686581290244954529589115297685181206110371050240402981245899638940747248540966810875120664265229297183428519546608503506341696260262940420194432026470208418446700629528551550121852825794906388802959865153787086269829838109297013136824211746818687927806063808578477133994897389997905869515347159551021542837959578526558178547107796337981768706272771193503467929742608321833946317469734547303124197977519490302963535604912401827265128109332025110852105382995541304545707778318468150113648303860739073593031160415847968117149685185748867124953634821547317087754335413189239531190083114378005534723882099752098881770880092077835217810382704666812673878595913655116222549556213020564529437799335241775338452893381750151937801291154871604599216679399595140797526825783293559314169538605951487011837304159242948477081259067492457831051320930047611811750285903109148203281749301356435276531726541939624029805434893106574945002969388521888725683868059798698592392736883237281261186182438258461165356786425120921328267222662975837713362148672754807987356224111838179574866853827315718736325324811334328889592409914552950096441873989964558816480403448687353812101509869500056225889165583838540261864635752601041318113254864479497594652840585633308533465127091296227341588579709086073610205174472417602029347210719767573423581386408864991140415709474512869365338640414207510747273362057944793230659602174594711602130101961540294977074362720856735185128217172135761156470918664795939750012407167588362379491560334127470035560121442837461778296373118422504998322667688892475159101356370296375467937238839084274771760899942974990377034511426854235449369256276203097644898837801205675947381118413233317753232434044855086520919924647265140575679956548988069161494130079378923387588658326496659554216508777740944229751701734724957210819519279292769397227797742458095872696940140189785509708835053821760542065492856396472394245470234794496371058452288630712268978786426550037176928348975577644909406095155196131866290046558058685269356846072011238687930906072504769508645649156470466682920701809033748095004032216455483943449027481278156852425263232770200313468456860088966566032086499756298339063278825809732066546798418411629200722437464209107553233120579754565492542794682847769997808018882624038771159757531242261940472515448264122670111918236332376492153711172109621598451847483617771570134763357522869801826607505865960086472273808175938640701873810280899531098101002430229580405805244885288880248817450768623471549959870837693714620301006496810369830088870904860599959735964953264799927134018604638204551602667105675806765824167325039928111019282565443963061885950588913788888739560138114418790478132974354945469656582346866785522569650627167684712095418000437813971081565094576228927451778851091545026429070786940724686160723767871694162593232651246967147013429671718062090218994754592008821164004196551407993599823536194234927641932095118447132193170970307712560298588018780009461178171055301956223526164999099532495351209370931208434136841179883272549750441739261054036017171477873474813922052123415656934968535680306800977071486100576488454946343557764585011259424525073473593901098664623297438219285104468960585470223970804166437276731071815113616419354794072493695295858919954622191975633869655385659677246416330376445552805577818288502738091118282627514875581600828179430824597584569021789105618949580152299832477872127712848533696062948745133185575608362110388834683048969223030702477279078389391896124658560628977334779228930913500450428685632391770239167393960020972769731645549268840410992420612609644414757850376697151979661409312394991211090512963460504699079193702773622442455006197501941775280840780510160328700160377870664542408926134006777996602609057783414634742659631271241652712559311737853784732041356686658769908290443722795914385707308916840100277776866551753398967144226019511324306439064400895134647919928693289900894410589298848072890638312084037255711039604923031889104602902881783378175975591217686826751108047243602523814908234257815980308686515686475933190851056003354880755004349911407559822110612717883298536487382369958424218891134008693453082937758705360491595951616693692533302883146944483799993277115619374874293719225905207691705096696637486391681021059519974205730925241272810805122771724525265243846153140767692865620991822399157248174762844992407010484020461652389628567030638812987298404762663595302556573432542176246790545133960056664641972303678801170283933915479547653449027748627780873104402215448125859797248589581413968426624139070790956804473973715271893994760556365120545657053426317789586951139881280305258603867276794625452542867646278432849125189116008298193510250236330487329464077676153983647964283432928750952784048949049541866206125964488261725116626237778435432204213250213054343309615933479923068608644938566803094480996751394984665940258638857034071689029028310146879706668132476793299401726734541842459794732962025241340315887745484785250620785089327481016666886191437541688354625455676397186644632727318318727852427040537463645778131510062931463020970805611024108386772505878404475508026387181245159132665309639682476421750245790990035939761675985122859428445638666236609008209028821617913509171133690461024724274594322141283723924555586286971452134606566426925903036991831773942730004384777336339635642009255656403549792223724718150510869440005183660226887173264758624101608593934727510047030187925423754024586849370269754975560142431077106343641262212083636760254640803944393161043052440313048171180254258159395422467218648952737177559831122166344917405378129885004929433794356580416545810708759990177770029042186208925653451793362347908099002834014285671861516058454097788763703564900591133905082647034932767977257374044618175716074929939373633302840311938302128770950548172613719052549194066429797175923600453251850053598158362155894544767438928460310384016105662146808703230680439007688670914810402587741497671539613625979325860940328169093986296628570855596916437279082425801997609322854664321942555160295980840403449364395189675590617241072001909428237253890159698327011374486460156685952323459689499017630515280799132300231404506573198768812072636588868166699432315136644395773699487500704666715539420875156408237271025588673839063123050683778038884593348997066657239514058419222969016999286914504170914442213401279543394826804090406961769509585424977154233747204346352317780164046819348434987740235973968674522219888390508361377218346770929442043018142912401546515562130200945020691585263074532714864946297943842326881119057484232975764613375439019544819431988880114703678596074303026085425006797727654979623320430303622464617559177614237280904673826478961480848923363985666801900914763083564369012062517626913001527361153901839803383920402851770780508164188537574894890979749368496178940064103272134298480697523444877093053370040575177218050159825149430708046802970991497223899567080971120372373200227630604934250665839095352572629065793988725571683823179143568672227712710353222811144851412163885563378552530923309399336066975922917932863759891043788814863706325522428778542999508266412926549990960775469231703173260576315011971877031991872790381491261286381759646937422195431545643611197727430474448692045096436296135806627224705290919058386278923693515518322220577804835734127098121780209476626893799294193585090711993293486562642949549448185354368869409754909341619788712974067254156695060709508808218646951078956812694835842911863671468664365138636528962564576053859417967354806939548692478544074912647786759773725029398213327489026532757251721363749644691470209902926009556749099652069557470826511313015617042804164778367974032266911120991838606315413752383352998111043696873885863041551920681547306366291090351897654333166268301493379136005723050452783345178845299962806531913934919007020549338933888484185220355670860417678720207288362742752738338479822020367483257031233029812450255200568161996345062692974949582325051265117517008926270172414286277711835886757504482248649141394534088284002016434216818316867539064973044955190725031906536281856035305607854544862261491864281991512392448631624823201151955982843171279468161932155667576897264867544163803944091379213216744990890582078507498420808378487007833510422485613892493909873274330582813117492298239666485235412916167741255215652563198274487740375517565414734180453855189750483365158249033407598445935878172468604138530871628656488389805333246184831304400347561987956294353737510899694136159212220565419338982773004144425798097204661228817331959278214893258735898639379065999239904036066359952219403093250786727360696337897652346182256934790500363602249886625841516137763017718163694142619449617954110470678156362609740103629988658844916290032750010557775283304407005753216829596635935814650714648908571670719582540868183770355501390903988722992623926501184660937513343773058556894657466656317443690615259121643340173870644069610715346332246537492529743918488082134685330446568663268751562187473465479180200129060202208136811987225382651535327258191663185926000125476875177093279260909744296273139836207566703790128897114072054987575308503670652528833983895563519821284326610695401394585150770427582672405691711671859645986461961333732128664890256734793661447706947056370051627822890853681758645944250375089640610088629438249634783227898079412015644309834050559342680008974307711493105415484657824130267205718804487425769482998993924197534970186068921623579845137724678586282277419797999602221374470756420633557386504801077166484175869261756225208288350283502080462295342475936137721338230391114647119499143983083859121938887656056082654536694807629655081945395658258540588715079709165149023408774535904111272408903227125948078749887276650172608169389685831226758203869753123623132168249763773153522235175891520792109873547267542857162059812834241951148841934627915755550320443314744740082070129946034235615233329664535427029660131726127433984433615168304260758070088274985710418103428006522615496724722495976426031602355796390909444393105024999353595587396376036586751083418785775958435958953764383826701306367567419784402040598878174628815082161374414586891197468351612609186730413676540559308440759056132285007157903609899250165631943882657835507303944545839495380012763045466070291680469632256773023197823894121159210590757453154851377543255738457645595429670738651059385187100410384506089431864848885918015244639952916556919828143051951179276198713139974435476644633200217033256463439232020298534845614834642547115664756078130443913697313752619697290102977177501588924179413531572619499047572760980249204936281671429359609957186161459130358461328088084108562309400265811429832268685074672501222856754502093951671487454510515725165620655954548281280099400131317719040757565152764492314283370454557155107339266573610025424630998142526035272638244882833386884620424610009342740757641876414837093009806642265133352053894128112396112840865597561336073310660951195128992274458422312858407711528910626468504986385555702471198590693928460555886786919871779185770642311787569287224667461914645555249605631005635820380533662521318013337130333379263680827221604993958091176852530691275468997397473082791877851693455013170636109191082322341152197189954653142729540112327680631061940546502015459808211211239040221705022534345518955348140586577393761060242912361145783745431153993738313200840071281096224287933259971186800303738894673330324512494052865661707033056959302623886235222074476900056151509269415974254631191907494601078275455189196890315424218307842651497180217601721596289464748041639688588563096467937480407220508764014474673015759774447060045550918315030469126658008683781558498348780403310329410890873100494605906834589300133512924105245328789308491024242355047313537321284800669814323607668498918478332854363026494390632821044869187836605747224688351022080870790530036638336364034843810055131710349403355480941680534955606633666618884603661371711726887830032681019492535029587515422482371484031491214498181657764964382186717065889783168718056926319193903075431629224228005648388898262505027755405355903166754007875152853108909187077759115374924489534483105280168537760767715512877836124851256245892179738410053066980965180272809398960361258391582182959734653834240314373293746010918725934565772079744496199988989001435751494106099871567028423554351572974174553468223020683636435285320397857489078398366830520672271987911329465607484446202735578696395713926933983197656390082260276249614511551033662536049372412333827476018336774055890802921646522508955718405624176588887978878233539482912061965100766928624908392260215624856706537252139162997179625210970865110143751065959176015431426553009584578093116649970372851068470626839117598313163531980053743351966540594459119466843249524984866591782612734718622594113421984249161077412766745238013070571287363876786056213412036981563775555310402685798121067905449118276337250874978293969913541974513364385428723473915116983369206955726577040555168901204766662410213614294099444186230665347140130818317733602129670220775316905679718533822389169522106618862852670819352357274732967126828028214694107868993781893731781701756447327188153765970124515916062097813860216671003721894150282185432533630699560697217956376571926532474057697765443485847150384013626496207970327043972679926010861024944530729362740642360472646606339954529138889591190484897765994450530385074994958283094416167997797515247628740720667108873203635759733243661645411713647215225256799153071172613458192183334754401403791260724882307424778147154383205473113008856723961808620808590001667509016343273371869423512595297462375762956709555355201548617443672829324934832787237695966213866704330178313912827331886740897665133525593068664021951554883412076750574741447764056613661947709609293228783366479695654422077344621884210664450663676635632068724185454656656255588110881104034585461184797081596279947827790467059119977326630060865318289160185058906917864658323322851836361955677474785587374343061415437083946991107863179241000417473938580504338891887711618651856951183094998660392583713507262113406271274657980548227787243191388429475076344183686878431866220999112452698107544992873333615626092304449861513700462495690199619020892144891586794415804588340901777223268372099301835338378510911185899633380528416594665470213918103548535458037980671254102933968787040979215582694903763469048052188412793563049715076225149936900084562046686428379083796237101169581827435258240692208422711277014408902119664184437686715763981176453691877048472565103700736799149847268526272376511970463481610561143140933391700885017958672853251991929535708235877991353516891040626944344160204724561816695020669709306032748621051639641335088569509152723483226003933578252454696272704690338707258807289532266441546715434001659537951140994214281295353979930614030381041545245016464829260626826094419399409646357762644420723933689818900026535600107962326789140468322276748726022341799129488130451995029709716415425033913922763679071847836182767407759994936034634862303230087712437876189615257483052329665051952413085473237735835886160646068606608094299491076173772806461816303037187509205192635482617422129459330069409376981579082934500308894442473034363964584188280447326436879943596503677072146348981691673307328602696436019078225977133749282174870923594501055113277419590595776001898024177579512416242084056494875608550350805645333625468482636637860187593246698187357299749845236303604539465111564745863335557081118338206926982921753239268420939800666119954514898324724933691362570677018986410147939706071568023924564941565488172718219410908019865507518482269423260928614999335158760441790588130866741430048006976575282386265155481879182771029229328513367164518117369823588426671971985165645730691574417403541252579325449982195016349753177931485316171237866940735626063713445547280027893846065576937016609914383648263503452357788553928186676975338167206443825760011599062595410876005904629808160753876098673110209097530195269212552790084743309912988890857243758202729868110368783691305712757772631608548414353139656645613585744563723688920065405853368814180301520665080651567212611307808346156787642399253241937687668709268980267861319205722041390926386909807906580797170751250451499533038047197548796568352418157671303566600903219514660716258913803248711504753762543551191220106047509563751456158282247293133976517866119728127558042262858992826496033451806582765120352209018645297489269343480613936295888229328743696594080871226910375224173797864251019755198791168361902931895073579246771497436537273845904765363455264845748870855188290358924258157536383213146791067470418745149223467551293409473811891493781962693041117533245858067609915498032840472329959346030060574316898659248356914724546975945643576609018882775500527224689590063712969903296853139059817402482106046330713104780058424284414720308205032762118131152536715572175210370728138794725120929298229202961969895817381817701101780020675818257323820322452374017087856543135233001919543905410003809715823998639052423840359249211187236842034128460058101701830164580174694058383075806867231634641572873636521359668001073923999880497223043862981057852580169309523598589328467863493147102009981385211638858716441920726273365806433570488684820845806886895298686930035802801539028274721132784109187267405977643686495462426282474769818137957763662174893905744570611612742500317072819823592564469429553331217022567519950196988313097057738224034748052302438092687645461764630022818719260756564041322274462293104108894968144157769457708487474419037311619436426345219238937948056672209707979234303772627170494668726539684719343664351133330143381463718685475954381154775027087821355535142412574023530907728519577904442585611652198432716817667762689602206643112026197698053012167310662085853789904003045281452548608446691973237831648571091744941877899640959047523591526445655619041054747658681813019298026604257039155932040179983577439267495109456073495775212586096941208058372225966755952361734276025185550113715747962262460056591115619023998240148691875258792255092912170184987896641731906558693538336401065751669353654228621242831083478704594203251621092941558282528513451746914312448177429916982826830014070092638744589194805507872929672185667859715481189136233995075301178726189117100597233582692224032842002292024281598144993230753021636015398434511377128623129881319000950596289716123070225811194148645933971844498624300234862033326704813479015399008388992467731136662565985636341441022404726508289833975962574746811122543454612777483038716575689162047511021353139137021443184062759323464653887395802178661992128999454381956901718447287848029469619263261883157716550767879278829130136985094566038056689844884503840915537053017714500930723895485034361701259975733208223075691422262264835739973881740556834079105267167572123119418679453142116871652764320289290302935716605459603820947765930229268768408533811949665185308633569625190655049060348420021333667545422652301777781136657577723184894353990944718643197032481649987136629686410684398091054434002214732328099089141101429888228385165366645945064782352669771678632639257135277482909173170304216373330386025385563744587185992562789303406456732099183977383615399926750382937582988760318994071969360077116152051552559910885656323564503150456181625232701980864690058686290797121653944020551098136239649007825173664012486903908385181339879194208400447329544703656573748051377843640821114173483741769932316245137166592047182723672775795378512694148443939383136628444162769587200324492144664672362807782941609379571619723909729400844164073509918579496185056376770673258475131745537553227965356371342518532816122102367802300366693232208641117977470523627406873763199796281261707219045116985291393389066859031270481560023954050791927318722811335580282483402382692982316797620539193182829138873479809119789934117213082526136846123982788096490656219749531518512905973142976453464318921675206476338818434783547666455287362428845359208408634494266155616382902322115261813052168316102955105415128450022318863665064206589412572781443143498027012798912123214139792184017051430446678964261473360661911849668889926585631389833979573772565802432849621188023210462192122182687753549477564976414075944164348401862524372642377131139399233690848987758907870249015285277137745039498740212066165125608222963892289126657868812209677579589454819983551099597670529745587685900283563776401836399717845463540984116393347703961293509759245037994543491486083146670362892432364598314192055404936236652803397803545941949380448819269880272729417609850196260470810419180291668748027825281936587450595778561062459713009057029813812163299749348634977582397593081907055099064855464140843735693580612717125706213834116799571382566737608919225081513074414015470470681157002798373213800670668624559327734042156935516441881768068034060457527866076396328870303018420637844769319392223474403377772753681053142921226892648612284029627312911554009616699088355920248059430187150067203640445819507195832655303648553536860141270566723920381659015847493719463161501768585879755522890723856552416561936246901679662438867584965135357528866903049927251396287306131049193984646254807474352843954307480418348769650841577017321236831528889304792708465892231776276896483647156635252365301282564060353234096058131487386677735512106903921142685019467991339887308371741206081845601807286261163336682542337721326791458340352531532315106845121267016495195316664825689792519677549636276499453822486905764984442759455645066871950129668258750781539518675780917900391955209919732725938103372521338928983684970135728534434421424791977296692056859722443737632186689143678059701233722982253297714279392973289882096185221524322974619189605520326838751589848003096459152297916488588305754596251481520171006039817477843905392357009761474828643436834929533770908983044429257628643529069850137239703610654824422234977682236609391798630048382300164673002187734679024086091797057365982291330126029527166810756036172761878480164530677319773343704680024079326915086010803278497425268345646103368727207740709001098927455162543868229134133672359150105097455642571487799621249195296813209267799530184717995007164263888913197946227533083927552369984960098265061021106606609187949145691097981280066683405948213307455981721874626287616386037334369495151220920814151626093508467956099920220246345992203409938662486153787499550927910425518737654129444551182038129046172473851785014718713336924158744046247939765450401340586781497279996356191517202042610020952422499293255243270834888684628049920610080941506698505305986459104972103458268135233167704606527712100101947300711076719995291032144397211303993631259758062863845493701977632982454176727583580159850712585672619983203839390705547886451075597202542748152369645940597464001336528655531161752647139636807083029674054663365597425155299880701481488864412954411308515949078354909968554518059273562592684949387054512084353382517670819206340741625939962315955135334626245999266763121752877136661289393506790368127021480986088913769390866951296496917581748978039253917164856439257063472155081266122734446269752830997121169732413905018696465509746109776309414996749804753363628099858856666616923164351283387855301405402440854110398828861150231377533254244939682652297701123520955070196580815279871366309244706457574167635170517655683373463036099069688772418980290706544055283458540309149496250931770846744144674339898846575944317228589216734592702925501166506992014193624644510452569362091204069548093114013858223715346220239703918260966487109350737802334055895123236392952721471849640094359576386158306699745869149524275863142835036181380915100512002949794066899157866659811885819111885197872358681994506964520455776182691640989854850119573773371551662295728954337278417806445431109785038059607254961827117896980609482870546781327731836251889416706638167710245844940551418111719468656109100328581985947091034215460706959165839087800670273077818050924711238866323111710872690849638990424801582801091790474743943207714547485931294570425002221393676936169917819357780760951580707532371950723442549184483335541256733086055153659722251340604155991976368693547610245272920228499652025453056082143933835376463953161121674484147296342781490534785194643429696592278510175481270793240088135031976472529816424001190754628197505697922786505183834184172009663943615441857339118043914777718224586533400362403832481730826170760709482220813873690067827008395741607630698104388750254450287562528620408280753649916748156398308184652834352350617080144654894063042323121565416355060497807690229413667204387321247050806513485434925862443767178756429185754752943358694986751579813642445100154609284544615624573138043240894148219119456773249022806453921535007816867469643916721978597450998221619450670731206156323514704890604958324244976943689707880706908950694476617312472650805856558871401403485291496595457844236635102734992259522099206339099800397070609209581442985874484300666380130014984908001536255740674323104035903557637902498879189151263765321217555406173059026769201620121333776529005731354356685179645400804608064097105296277295852048389841986156861391364436034822165621374413379588173282649552444007784238805729576940134588564330931097754663797808336271096801075702320016930326044790927298069512661452313402083234369574451144785323262214294177619031534987588044925279371236565598309347292291906186807760271945916918570478460311139007778918366138835167199117385820388099817522042388031184145237239974409878840061501884978278486898364638727914149130606517721360028168320191994160531891389712569457283601898110664790031777950244942068887689748572185563827192406137537566776015781575814658491833983621075010772970062103399133690873741767417386121144186754203325185168515077839889359943664958199700883117878115276551694086540722996612590474937516481179213063647041290114960500684795650154540363440167271618599831442093866269202687922145033823877186010862394245300480213990522584586684288162463388985268990763771199626188082830235044741876245064532888492102703475898735492049566971463994719510908371450749350795466745601835330053412513364248388515455350298567334808357937723338457845650390132063906005050186702911610665561283402556464655770992142925718197318651046629654269390095231384622424826249582725909460979951133800639588545513207831778272761338509231971591557122762247809239034259543113980627278064421884484476024289446094584154190851944132953665136455806556704528695781811767544118483748485883651493348225767631922520248226819853469134893192431983402413782232795187361349687041212110537694080430146646046645028966716177810771881532951829354396422304763835860608176046657284440915545709104102585055728632520730623547346947050096664922330436089791328406708463220586064315841596719749110232174649012661715342256491229248034200958182893697131527544697908496486067295989710908034644268213337606354886228659326039422276434301888641225652317975919170658113735034663409023302289648150232266992841891492447274110287363839145782138933114064484907174003610921311676758981322380263283508674965212860363338713217115423888960320687030957164515221256608398274957549843037066423027225857422469676805470243309221457151368281297079840616880546085572705014108768775079049612864095971182797245683937632114665989514510737945990369691367818446142354757167945067542889140025798069828674088378289967462045723547459423675227571473110578800273916978635185234473585282600036778738127654512249535976408099717707276941368026545597957318593169721631594111825281667695684251634905263636339349440571203569994094911146545959242959716236471626705050779715412567632161154549314764274130088542530522829501031534182583566219640326374019581343145442970293498176077971379740679429116041017499596886892662600793764472276432113722767120277889036132429325674230461066085396955479577937870630377723639398555377143360075701273382781477313311833936432801891156926004780454715189248293255823433789459400137481171806461969421757433034479194757247453414361920507806186601551132216353861659482647089680881835513803702420870265605932054044037900630273284099426863521525050475741111295941040357731221685133124781358420024389874904979711715018309396038591375346308549767119392266524835380283935430133229446248285477588079600448604343409377764955196128060880271191344105222796163015709252306005210565503780293251276587204258338768084221709043715733467529983858352437489267640524880915502615043012618080262444004508696626311815402993674508102333229368838040134357960596635814311227442142131521875765892837644913889908846001026215758987697933376674987983511939608942605383638579634768237706210193421888893287104061916272070017695650861582148855076825787792376690844975522771021655078437507836138859283075933599315725404193246671709780022243606617536961818513610144180780402954639547761060340913157946631325257568603785802640247658945145928447935395266430478812693341394066195224405750206078700375499892858049502213964673451274500889696910040405773530742834488351194611448103620699214378025510516348370070134413262266814933501893123196962216564351021862984292421754228649648332171140199889910141908410795003757050886369661258503273337481089430618185831363195622076202509984967861333196754733703807738753921438797564880402653077428695960360562742484255531782227405078218731735612962229073387132986301281103254580656040435621201213957618626311410497060821627653176418324443311668577592432807317646023053992232119912236016136506331211639712868618750509369953943354739545162343741350518518944823528117926014178283167986040224815788016907770762423780139051869543045025409985318526933277674218919524145963009653365298027718636477991425203167062366981187871774118306078244261220143809344444513396294685602401077631880926772907204568486781498512406555381128393192077327956873924173263450867213171433660299085391662997387400647087708340018861880773943362774365761466713805419931482656844498015045978793250657005624528853317485692315986263232157449584634216138600719962894471947819205015201754629975896093277624885316266283057431745452174392971482430863535988316149567840969677605594976208344973088975300119009412291518212158001016663384492337821176322768744402510668169729729800913695423225039284327073172036722640081919317747808119611177546582018548959716920516945387395691041731053034438841147590818961009682575222638644180953065694119078926449750192324958432406429970538924060408013391787317029597302207089781847425746731954353734342124934212745967981070430420799868427072559442047124101899919251912264918286395803083769951617684930837026336088905742491473005884885694146082764203493818167462226653806545857901575345550734165020970070073988088506211438782325658435601562209829971106773473750624178521485156838476594505963789960507040283263789027449814177169480860822321496167354202806480466091893665067791454648504416872939889738472954397799486017771396635789705527316373076767292099540767585890298852649218726095774371169238187784696312290153912405652813578120695501894707684581709135961913469724148259792171595535777129158881463800286075047134106259281274783023957002975281849765347961813020612782019393152306939425724236304775276596500509696057058162206762043556100184389334995587672800285693123814482334487453311283643401215121691569704986150628058893612157487024639877630535268035640964350218199174083152573604672905612744542476465854369110326525865991108794287218594948367107502774892207233652241932955055376740279918256334079456574543586650168858105349695065948100142661427507021385320906806733327693541332639152573448382032959041699893073936635321541385680567258057994418918276698956507881056539882296646321833825807465437819014406362459254457743585892123704043899957508843211453122317373103948423749988700222386561573253364939135191257094951023621442821818318005435661883217182832685863085648420683753866921158750103195648261498565557321601388824311017340565406166689417750445433056798528073461643727435134951876862222589934752805931327458790174125681985940645746475474185740514203966124835882199859784496738736290183736408342820440715258542537019205968446329715659399797365663078798179917701048379874838521047463237282413139458782367735856331871483112431297265027115934944946345368719264510184392421562001991745172625227462814696331336064771827631541192127963090498444480975647817126820112765976924754815956160654105052076686040918781095940728070117192133585629917364904106499676844386259101860340079389343754794598245513683069813897699636588258757019070992395028939480314858965584727883130631954118210854003209416879471340790458867389987881084146521396996651221253059357336821658685139706861406256920171442528067061771469029246501189620777080702540459799498684057179772114427024106325086231219221201723822931372334070174987688282187803935687252071241480477427323266496408368700341135058971402629101801220713465589481443433863498452768279936797113428252238787127555826603406260993997775615239400001795029189405204069784274960240270530691405677799427900352889910035730955834449414267145929348696088016001440336115412668583440113936190437799898767795562882021042709425490472925973617267170756188303415278943966801218099103210212836421765952087444034285120721754020234803526421280029634909372308677811523808306739760346625366267467612024208773382288331670431513780062159581254741365510861739528322082624531883670445246836890412315221132754925435150701733276320189096196691357765246098976074048557037167358736170778646400186664401313853147116844497340122476482045417948869933313072571165315198110880308372798264390295935330770395529639500764529211310584782823877864240968289480975774819385216938856449365243618422597985713155156183315107086804941206791711750826522452013318709737007508743674515467924828002670559891115888817406896091518508059340156640855493644987123135093778622993691571741935658201973524975745853211660887565404518842175802827544961636250321443414990073726925659348728453486021915600569872664153894873084594197414699950785260252315445855057043773379718188108951482615724045493496759544372009365153655592551433086428456100277892970498337768968633172592337135605283557905619212516320747133352151084214710993869925381110435202836968509431619983271561500744234532712132250052514052416603954438095596709674108530790816875852254318599396170054679300966333621611027688171915752411093177343548539077690052038041416620532003083038859272593862973040135411712082924533904914243692448503981666099705774198591982917364213092366514356393771570924877592739632296088179235293946520346802272786181881772326742309920746847975696098837760791098211132464427638783801432779862472181905465492598680402288767861258595717921606218087744826003707034218638812710458315992236046295385619878670854712028432995324742222240477926964302517263426292425556087916662644160086394328850281108874534255301080932506083062910582258617756732825453444392509348624428638177378836671336178843478254137420430662667867944624428796133328349687042083985662270125742471070940706108171693875769045608555993707081288300557414286850179887195503404738567283577643706085456770196454802336097712247089290522770337747445319131708885229390260156693024590664212563882502705345652500566077626357640282247557092748375408577126196673192219049445838446861154978925840703386219553723342122116499463824419096419346142432749566500306054478766510664678435143096821342316872153088995129923031954066187800968736394334664123230406647707243682119044817828443247117960384207604680989220300102557131411441541049268850374475121918928055952264232162250308355458625564173133650548467361707189886364984857092921794281404767599663464544607868309763643842360081572814644239926167876713831270382430998529457925127311386069431362506956713413853091064044983180635033427266787998205015571521818435736853258293953665419820636560597951218389509438012373742520849449107187504404100702157264679899855874622177903327580162757063591256373113822843348162882892338699977944683765956945078873410919519285598981354072801042998603576450123716470936961912603805245639796639603880284895928085346813051552945816485956893791116537762307155385146145929989181299781651760089455702476358849889467668759295535827388239377468837737538233369691723376482855288522195122249190873492310813414327940115639287233503442071458560756126656565940946694570029551564607994187282221117174784099400385811045943467025597643952007232064631274014686881326716033039303847302235195910304189007934650519643497936611741179128791920913731613882829816660602323678864451028489140449299124822464413266579945495269638964983328406800350109668559983452513860461858178220667291027284399020373615067410916618490756804882379594808259787161883865135430191922335974012233088966713835185635287370877127800890509903730161142533209679751571696920598198246889234467299256523107188847391065634908327087176315439182401972936895913789486953614922164278418861733319541387903487112276252199608579642450132918150252502620671172013908110825820763190562366104188221111853996122902368460903613209956791280617846150711589855945584698586482081499215763283950702861499912028451540254397857908436418408993313904679001765876099735729867418985424418257792053811480355900859899134728770014858887610739636973627866405106908184581163555953056159126688684195022180763121552861906114289218221462884007304586625787946391736288160988170442142789636645932304611236263289200681668670511594181798213656821940207884723721209576692934840651499624766067437174320096699688390765483143340775830450475997289718171966523460162423479383006846047021467017382539521813489815111181994227620490019856014766463005839150782372780652930819324465491647953008972332451807037826256848116178369301596603726959715001257274252691085223789880680281055527743192848986660985423940812242915416926354750695653602488919074029028816743388056736507632399003383630804593039632713577309823532852780888053290987079221464906567070462411650808666096511373927350105976749937242392364655977915749528054995821194130773217049647069198417816516840356904271323236349516019982286868089343300564638990823387691151481801200613494525087744339169765410134291726933481904471606774196260503759080514064125534484908187384764726389798177452403945242516977321184101115198027686895978629201061799276250917889560556646091876997732281948925220148410924209568474067320264438764888877843087592721482247328575124957635704343210176548912715514713131596623320187619618605381209368135045163757410707386058534239223157613201479863906258600854039301451034840126083931270769594742797140949666594490222585450439857098783603052488876441833800674030144868492849816544206503941315076371879963820485136916340532381100093483659121284341725514036139990186966967172640106341453601934274409541744164829903455799715864037521483195906978675729026235125931795794284015619648820270520734957136671274724016120045605850626588148640228613661164187243832611433367981505561129401512885315012928501193954673974703653171828168267764012195032553841513476341428106725632440627258863503631596427936112606834632407926647778444201635836602341980621415715524548262197547722114013168349137360259166564517517826355562364236468426595632083579764196657873773976541083643466956096362740096221551870370137992340794566459082801729573134822272982010611561258959493301316822959754646105810368141832857165380306950657242918100314102387657359220335816344561478061214586603500867160830219783272545032730360491988421308571055059852660240876649526252059572200740380190989339052296128049213888688287868467066578067191359799228653378205155915997862588003826192174402229843734832953120045171995719365799411647533294284985183695748167314648503324155081941052662058214607374942390267631251403449848470582436016605006189069471545133823894992215587361145537398872499443018051384683923397503018999195117946799257936055624499032659208979944010200342017089038176780141977244309194727012627879757109968524848605639100773348014713037020219191351385541669734321027470736530594677704157654300876935006885289158349708187225198219176875894803397685585186760117458372353717753844821183901098883955533482561113594681500772993460281124516355429732586640763104372848227336002674144804614285148297122583933109944738052952898625541332795425533543556983677217994385738828949946314287007145019455723667549842906492391256562220675456873199183598728370683499269366943435001958373661673010422474068205962695896053886938821960792669433797746422059240821141792952583263353923903373021639290498696888606852999474204174867829941842672326144845725979724898407321174925519912646412103803736325368990560048624600274963595156073619366183327463841128273492503706472140143039382417580610322425988852671316529201398826142588652006084116797472944799583219213080812392294865018889127227754664412451619004758160161245885966795923417431180384746184347110591152737610560402290611440983659489796941259858619999723230658242060890850395282128710707282923876925044046535954541554840435373285658675772260115555617578712115631109355140292193816376943894938796353378737543763206430203266258304602694623176364307828759853151067232074576986106668425766629556271396396813083633418301188345467838276651690254215444073236090791704463226200156845171999256968453154062974216607348245224751017829251705057174919387127213004282327343806979188947849240499414116560555248820898187964353817114443876295356066702731148796666275090627862491637458638794580987738505874538330689574477461660835439005817536368320572600637264916861656469995860655389248405241448417957290092936803246141564506416341706381935495360861903034127169889711762025735421989246120818733305800818554610293158476172865322828902252100695963459459239786578908262285487884815852051682359802085662232472222982620571026519802019301393312100679647449894484363933494096263479084781488724813176487848751372572013221291927297717828617327851354107108342349198098338507581849419975820254938872961565261485372976980030161226649030439585188089670049427106101243129428564182058298046102666544784322461159134563188390365981519827641466824145760099498812139785868414538604732733408611721338247538256632739786258445310623819649467916707186169061891269941674162414839044110811942023354367331941180439942307902113998854218664871362727461850852812750962090046246621429635536619643347554254697438661820956290200913903577400890478433146135677713256035422749461898099259515085604862562939255778052007219429267794998843745736071800264153715905657211480163659955414066780652535700352504590735121632035420489116072165423918829112216499173540120021341081613541768075485874828494515498209884196507850888122858390209917893421485753709890880881390506990989049040830914392284811847239096280684266218398074931389803395320131731347164400775643991266005374918804628443008022997870867378871497913475544977500367378942212747085670043775087471696469153560628264239944783685970051744628674011119762576304367282252529615063568631994642768141204626502326909606812885045503657652940910302171566820836002971684503363652735744327326040202407672780303849237934944957094557647840998848971450120535438356162903567302073819880836891505219537811456758465764886586004505367171247877161194909741861297939474262719185050466456455857558033998557780038603283824338416613474264599305747646150721803452361774368747904367812023579664282375919183924041127196544881080914316257545205094352163700604092855503486665883673421541241098858715094974415247315173353257345146106352233446110456993152061387474229141392535975464413460269655532769997859835789850128633306428885599666412150242849455156184439975115737254367435463926054026922961776338985788900139626449710443592733531475208879303782771390277274793529829927326122769560277854741262496416844544646170533154219989562191868722128888707713964614685221306043212838973370862572850468569727327740481938039768399219425326793888369108135233109186431583217048744143711928591426799633201559896999590076284539514964357642273499160208081290046977071339437195740092399472935715649568654938869451981594569060636829705047413245876299067887724107128015147327524103997690596296148615130022527816082873039341321933441732705037763931221094665598271675108417563896339220435630796439265407559228195579616618432590394804552457298959700338084125134423624970391218385975355113759777328255081432888804018534449612755868007895558971431443839236323651778829121909984441865170350518615712085705958073990832491868326556439344498144250104686334853484530868268631003157043310262224344713148094979963609160492630279146500833884274113937272432407019671995432742405111527954653341940332415572121042888324744731508664032158402025657563539802195323390426538936334592902529912134575057153161488113544333056099105340235799136679285943512789453789529019962520434345988537478101286969049621154580721952014361395168299360521734322003547379410425525095118470051446850362271492741440728652411955640873368423893262522138262537774933621114963778969322352454822086737282891341063399216064608654527308174200976604597466216846227908220886451801953462066970224072938112186818443763149400157638949798206971331668800792658150444112214632315495669835334478261003560781447986237790916480428088173724536444609146248406623536294967010767546527343008410017269439896157428527088188427070462194661200173434662689743845369718272184935070871432395182481564239244902179826699522944647651447785039022461898232667975949000930549309151702907208767001947163107718983786888096624501478630869217228914664958420601854576961397391032181046101153708778035272930433520088618644566393549121647400428326565229089002161255117732653467790162356180449677884388426233925045267146138613325336895436133709714699910695418014501466021333580807502093011208389650973942349795960113792084492980989400789595458149856866890616677975070356380773737093034874052256329525745506440954950353851155125969815524695088425625633652407810600701280279649523247702787593063284667497426170539050149555914780561319016165032266217042305249979871102462229958251105391951676314834898683355526811428987678993137839501758703566674902929113674850031099001064996119552882281890806509790361204065337230984066220602183676918415757419206455855230813329109086058941451652607235387288480739018272567127073577231553709105953941143778620780379716645733068859712564836839103522324570492466228638135458059376791330444802911987533410109941757409147822407132852726836046974577800605480307137418389161964778688741168900469952532208112878133233354499831464266921842120719443740993146691084501923864291259093886603919668985815500345420678150808546944864237615877565761052813813297241763320514634642706519251534811232830282105917786867604831880827116642784269384405176940585778673184166529257006719944374693356338476454222016276225527354088186223043377291271340152422166735300352028453638830859548321814674840651285531863748894798106069649048765095634004895737564330605062227618135457248938883099858696948245646841600332348092007688589671626685594905473537325642974426494518888534457097986231874147409930912324554904783953307540985523178902468031673546865108773201875423238128570926766696629544299114405878211873109871465229390495957376688119759682789843712607659591570064175851900585088572927929379584545146551557964087632560839092548825678538476874423976116683252928238739974211593544228849401552672011372761261899655332223500798006691167688082954460452768134698465533697834258232214784049089364341828010032011419821638140293577548001973054754357271314655451761670673298930174490413925949452465277652874590316616958346208344506511418940448448638118381802822397828599757696355677142159353423485937073895284585263735672427690242545879165410371369380835356430407792500482714207142982221088670500685885131377787714761219092149656612838410782094251687069604086664224651545665750585676057731283149871530730598764331148674444774869800608347560707420680786732872344159141469140243630007086381687640166210768451459553655542176646781887466762267158807551137689723163496225591475831549984760612391215951603379057963309201323333700550277215630071201098085873598137432505596356464704026459097137914381434903978577121514507070198836990789971841246723138721525765510160935506975026198236030169121547882431892879324395166428138214156747488687360503267571266701221959092787385844649239151932908425074901179233856740213456932011824654751637962889040653448577911236546206740940499424819177978418117639737952011061513117758678955704876728925736505835339072272603303818268561895647350234074146277109207053778621885371767928743359174214469733131032668321485877974183961827314198722024164272003280076732335693524359825987484865982606990834338693412351035148569770114621804290053439017055759930796407602208283008260678069638100846870018072615262666829967345319149365870243764077908440616754852621339367005708524986762665938474005525332467332400466326344468723632307501712281919571707359862483892751301638538152299987387834415290886812419445382104951704299816681486211542964357501605039736333677590545405018426005910494925486768025574532256870690047127311150453958134339441491070555920984906849267663948519166743473727511765979975481038570894524509093156631708089062776209714672216017197513630379481726461732452061997097119512998064371138487462757010074341444667173776971222875840502648644693790062028684412037311030415326507482157949616023201610465058654579008775622114412566765001880095186887056595001355674942122674997888332302311297116959760021771649150227257033221899873794354384844343988237740755777802746133718785582267021122939522239586989659055586035903024840398287374312924199010528452680009594140851196874557510189160108312191335867642190060684266031396775448348612235200513245636527143258853019528515588424094767423734118866795121961119405063297670035015429881726534270471792107004352668060851423826195366088774493329250170301121717082606711426648755256271065641659342679538610462963117011232568103590338998973406701659250759739264177122701210716560880564149878553928543720274775214685135744467532281025752957099364955754771496445037562707905707996310387301397590583185642777109723231902282880423123839584205695252835494458916100487854318884282656764150963082321923367421040065312975232365383185753009876284732117008082692845523098238028377528855440748253118696927123818820910702168084971422752546502357548321744817531923029381924628807693646748383740291681969865113043812419208105974405547895487786361715028355971612303053010229127011960607530814016514939490550670651531213886807736850378002799058528172204241714666488440806012577497028813869723798323652812203991909502599611626734257485634784279048652242906431186079287828915210875110629515100492812846908860615085913323909564959105934037078236452077989298579373434519569232520276697823118493994318244067899647139736136227736036693382707457734775482810713396482882264637202337527327581117362180968986010891830887349843406272926148972648539722962509663984921383197746386144906492993703903634518466180476787935708572610582717467457404756266073740852310543105588827720829350631418343793923759580672293156194949297691937825933884745709983532216752297609034980574812616912341519343855899934424155939593631720463146642771877613968909966274745208282889606195631584895037594404544220895823954221541300246179591546241669140496392795274224694855466204877052399282666602965825482420436958145078367483546001995688703535886431600250060887986557536240432734063412939740361329317970169996377145359523958303160008831165642741835553882257319561947228496578946211133340442517123901092875914608303424385274925796108788095760916119543434694189227062927716922933349877505205201175185774885278726698766724902883334505133795213863418692966193485669882845978666726173711045530911971923501439324258456167436998490865601649482579893141824913950173395541553916664878742640859462103811594470464755849168576717141942578200323652242700600783203417509785824775836849543598479508839282895234689042937913913198691310791023601533494777066867596736201511020013545316170282550023659997580739137449355376936599122066328586124785463149721217905944412968122810806742503284560965798508687667444066765204776112593291576800932772298138810788458949625393409461618655238499292160876432507462294057586436046296424811995555518786243172772447208244030470198039810881874791772900720394457803166906845733147218299293824771248072925777073281436923287484272136013145983613770159412546968242049453075171369868884336583697571469349463535511515246299003434238730009916625402968458307264014430553283072923532998688544471645771001462512760741057229845718776696570213347455875640774006958498485057004643903958332583227309179595267338600272868227361522110019692530110336350557741931867837632633791688602495299452156927960080243797945037346330428479462856096607684485687812165373496397959944339415549651167067768820605790004933262085537268327281122383612846301018170423308242662283344425040530000196879190655264595249830384620812767725909812352029995751384741752624883343382470082781349058344503892584022654832896196930979947597309364221946375461429675690827504580784548791337028736959533708798562660653633440658822353556223179096519240804023361464110963881263568742087892678392742289923261834248747625582120044575320980706838079000031484834370902417450133500891954935500161336077542019042247093440380075757484858624572755718987396782178846680070195345779408089926941405514240448177227612680594881556687357672918836541413032334285544054658181625651247125869528504462549782821592683750004166022525076949618236251105187599925343225244577219143895002681762918291650192362431943514617994751457640696836192680170026926266229971407229413914605804980127839732208647271813081479441592865496054138281860532137603977246714714570471803349091217896427358066372315549070985363391475299030975935518474599486476595542073798143572582176649820416531167829396747671133730680875101080820161974528149783162035858800906128465066590394588767752029507167699602723970704968381012984990637631271053504778830236036366241586758169273905971865972013614560323030242108943329239111293847602209930730653969069297914605962977911486775424908892389326249384463420770573671798818304514928806088848707544221816379938734439081173611127694661557951247218083012137795268299095722564504305577635945319273861514964063732881957019248174736467242526944414813282066654234598202400772341763912596073613580405535809409548432751478026037384840785320219840072157441470701709532614171562935805255036152032904723444278831921306514839799719182098571037026882916864848114238320701704794374465287537846460966334426872332878998700381492560736871874635217272204740441709582643332361112751682496297492607732677417210696806287018330199575247465742686217298501877812336001842973084324097393982555028654287706098787998018489310655279087766118192209792141425832795180510895287375086430430288627261691871238235650904127729606514392523160898076345233832531649678709721441807561459912827147166140861657428873294923240307088520690430550571601208465744610921167046263995793748696533414295123182662740831319356447381727185520607718623845606954134406922235741051287087541580761473555348947209397480530211853058203530005445244781769440381445891599545878309746780010941850602077816581861093264382550167643467902405665147175290076144930577316427435307529537121331775676698007208606627679552436941835585626030787288588729278293187992420898555301797049429350671987153781295927068690779404996097686143545728212863854631890173032101226064103599774113438329822648569982607732660158336733318690516975733521122933873000119345915715075233136321124461161259646183503893773527925399734957205956714017863044046067265484620607110431213422663957878237097829594543287251568540758996504822978017953208285827662382719533120524300992264151945807295594675244526007154201013404151798370744690745285903688244331723929362404512916758969997228024348795487951164806305142765462093460932093036092379231713378963951284336181279855350312153876542364680024203220757428117624657499728788814315714261156688118179950381899890333817845197138391453283062086320561106246728277234712687568484870225859497187323737949678926557156937243045311710500269174719529475202371401069076114371285119024156476918892776171805979860219772097913582178215283905693380663416574284791422865814521792059374624173862678102121504539303702086077192901519408434191045159955680321237041934770201283580284378096213772868313588411214422448782729550195537157146585122564501293829123250965676858082265612374757924492879577675558675770915141232417226007983280641572146610759062409563534437231528137448633823538257940767362605637377270771371410415773922671110796401635602357971426523229797333415562633944114804375908423115064346747953675506499549477301748541215791410552976801414613726229455146371378930868446966082707131444291921234551756178169813729785328257377419880765082006057592682866118420665066683554752442692818975068084828055744215498210951906956319704398969884881938750462835562127017243864194752756438091413131516958440820035553810442240077912084280358843441391867175520246558449431072250818002302683883821161197795278931055814857118880058203722867639483771239450971627464351494669960311413642677139653074477706483239180457705121647250384348235602613324232037590407523369566227666958035008669173844027752611114357142425301620517023520179103008613256430153457420538903291572124613688676833048796094987987618597379112531124021077258685897926051623825261692113930515364028574572389828981754365648920484826173229285030795589389374212175064009309257522509682610283909774744671849437359618785818906108428326347373519014206959398754344886859453457407360127565983393397714223971669267003831499182758502963675277459859817546652659924085886346254590404983886834752379926530852040371920705096949042313101272652586223291462486483139302951631478776406358955135102479095353674556436059597989295086849240419864393658727772286317546797803976876666267838110296651039860086834092110809679096248972080391647085037085879249460319401160411335851717873085196287897164459389022444188488726846847813959977262245317435334711696824506494461101121643259686552619470732894049688156418399261206628295891771159235259059310931818760918982796970745076879685536799319664560694445873402860136683652880016187378664896105443525525174366679857296147980028131886594955583770259042659557950745420711255873147355637061089534188138909967297808903062043306282965175798155143606265264116681904867544391979875131576532121801357982591927358726835799398532955519990603588266882542092984620427026788978698462498085219135734805762484958150207650900069007189099642467461425478391086206277608485665183598393820857570972143429184944546664129087283881922454857099787550282858455226500124978979127003348172444449736949583219389981523183674578925669576718000152053702824133853536927253649809135640773934337960115061817389600163650004889247603420806148591417717542168482028723966313940688996481313579868941266326929752451056803309017887456401657926431323841522565759809102560949391745277533718472000109367915730637839190834945214571994332933995363876428888126899859129328992895719580680108814200655094904755273862591445174786563432574414116450077164569388008514470031594415967322193028849834700151300703762462976436311236320568607865167411022730282866687260576327763661529894686544156131283962201501923521769357737613015913058366089374152195107440360054107857273786250955293199165607565442926168474213684156424100071986343656785314554718268667947504543039916487111226957381477224940950577291148739581508094286448214057913615272633198910388016956255930068703529027075947462674753721860327514789065453942889947339398882831085466314614273241126395665165826488273520913639330888659384546893626327828067733989076634931142254702828773551856136833825243219431498781370242405979697599282582241478968954911048544820622348542158934492965085377856018427398104351924096729215851073750306698059335291112503724732860407042557989743215455773910340637536230208529121894052995145576700324989360980053801836268891299432531236524585452684070778762799157415380817437252668747250932727497769078853626900839668578336604349930828873780197935566656899399725463036017616593770544080065231626605720381485365902984965360961927392553881440140161438633004470370780058351755989593251478029575216694216713964215345968958464674870581861166338303648429492073932916087849164593363184164118126804002812510898645327605445280105783012165517743678522472444644923414016313415747476926952161493465838567783675916845554096582596163552041909507716560489500951321545715299406965627162229625733072625232970584403036996280632132289874447353515975115795113209227681052069291518328589491307037350656064706157003220464976201846014462729339837289418390800593669910035578901616259270498326329664435332285432123430146463149727642742843549290624514493587105160307629848911472480275700821854563250636161391635547500975059905185530076374042230330457054764647326514403151846868208627683361242541475947284431233819740593508973668855446765714858453289174068767856597036616913847973701846209177466247626722507434726538489040409296155902414198850233082836153299646498950974869261727998290311630634079157274683149510428429926778699429631826910073313752025342679452158849263070769741450487240053798910831521841958201098656589054138994313165222940502382061337091641100607038708949540487443734585474066437264593823204785549718118342130991194095765040364221459415592975481036360117933773341455806144319228325698132052856398276224565076435113533532494244024350276868964825987752199024214113470663245968907497088085138666004883684948753786089795977313717719039621911337866651613254782088452682304474677710074510409587836183941247242804149578770326798680740245752940375208284748455180159169743852818760510932547888462532756033420357309677730800079493174390971293934389569816152303473561538531027595375000869564260569981893143302591140740367025929209936244791665080359000830715286332101573044887475700630476139186049262740900413706881327109506621803182005013112585343843627160984418309352646399272538279152192581688895772718123937368833932903655617136079425769158388326150620046408895890499054244550623474351201018521460140150945275192561166071920125642490464873012843554588238300964390250544063445291436113658308414878548472922263914549760163304258192746661347330401848074958885798397642184405187494398100993489391232409822569893292607325002517708605856397623387699539007412279504091941403300450440846041747858901558218399261312105188957632084947972639634265533129493036951933296031897742246786925405542380248052772451515246853087894427344248655445227394277709695507250176151249360612840704024917832246250030125535955297183189783270942643746393548759417712101781163338439485202739265605295731809398947848569414103238648373059182847512794548638199420872160168138334047522215059799831346195803765219329662956147000447289848902621754240578185578795429172938810896573029387440466325643843255606348597432445074708081735685954191523900162104288458574677393269847671276506088294137112383275515949963095543135446879815107093418796417634069262049453216330992972430016698512043709369515556871723712149796922931534937313466554289575617362511910352003662870742147201350555948169887082035164273895769612082185106328412312601109173166905686753359017881318754582220292957993716338778012588271861091537184733759362215264599334643867272125089076565224344895787166219042995923970706416034003796442782481169733695007018646403266312210402847983519685719971184712573183417498970924081530399259104460523648853879279763211894275613973611304095665259388430341256577998273896866670209428308708205907923258344678292207602228962591190546456620293447057093345612593929508380616373572903017254942250186377959898745227115119290093673262606354585861149782649894878406651807521586030307479708210705587394845765348835163713384405869816853926305095374753514018880350344530979872781901978427959494501881371912933657834931693698664310838709520531469327375361402686946737036491754922538597654399673466315318653452945602234255306621358535743225728508552698478209795640429066450339486688917635631968379078774562701020065137380904578274116909176597638552617453161230605503400369528276927158835306562212685843787675490232788957454086162249166802636499076731548179931135903936444339162221311039152281590085796550674913142525524644094067016052690561952402847265386504766979426193675555986528248499718354146049071780038903545987800375699222785419905722844659075162768930846879545002790753144707866442357272653982640175987004172965221061118074305569347134080057329937179561964704131537273821862242222321759512709338406294042574330493414870668826899075582939011335341413661424617079576039385414618444659253166821487185144243358283354489913818989443543339601755300307765903189280110496144846617869399370533550531249925458087102244601183664902771149535116276901758424025040879056580682242741660524992507440831367563649559336320888023134330405901646592379421018353259313089921328057550015172197635654562751589242734202664555472272705623931030895526367330015549817824363038422246099933047289201120471792226052070016951108718336150904413227657598520769036264392781967287782994384388780088024498471046369735883376335437946223718724203079193097385258638823592065505419382342663160398237787608042173774176271343482606704960609896173633924280304457916222850606681321387806112599255778832088724485946166494811311803614644686199638821334295259269533048603099671098547312374938696636927068879437385232761619699824547823801884934683533549277302136120344130450750163675469464455317128275935906718981165260579175899532052798723457951085716066956456354220221361084609138063945429139639636917667432100460488298861176483923093387216556752851033990463821755320863585115538537388209629149799371984244071905194833780410152803460907570748798623674383621452288692759267890854775115437973601468974526179576754577355431233056851552807981600779075729581180123632222553783493161256891826648744356367368440218737724137889602151319738374495164434497540205478277718743169619052974307470372159902344809730517905835077137690917584352978102927577590376615948117419075186862588884019404531064618277569434352927939962465200409833002716998748585612446773219640291272447829156532726537750047993273817885656421563544695259194218300485579375135485191729399205267514756216700519553642402439551631028531693186878338889109753706032020192353367713347722241778883404917993471258137060520032459312676203083754251266947408121485331890999971285993422648780889345759429698972949396935548031583321320560320149212427582134748957154900019989277099860822597501871812112748622943839784643029703168065559306076060525628202161740294297435475809192890882910469745342016383502510341092972113088230043506438662398569544515274004620385451961036885078381772755171396612058740114904696042698110243720982957365242655428930041500786387512091556075027841583709969401835841948365222745238106415035441115447255632998841478001151631653292837550688488911352908655381282393905608702654922522268463354060527846999553772745400685467033175427548220650273108528326144892782634189135279150827097889490434997424254333067686802302819746953675471155394315573526371789827442676890437456535890246752860952412270392508029598882701473784656728757284562684334195783267282647608464960017238792898574905987733791439778940215532614971370708837208097828212597699062164471356980429431802237199182546791983657502970110644198122464598443072735112952287145414768197343837657411013895324697855624269412931155987442973729939967243284150008298495016289043110161633874576859487891101672763577159421914396101826842922793216073735833043071823303804403112408990643692526485700881568826255888639177577691773825044104213228300899329335759666144691615500500237411923801255830302542138144851640822411142910521150295012914400426361891227376621186946167161964555629752303683456254839587720463392944756951485183386991003793292006344440239093941816863065680301679792561046598207077957060014660223861550167222234566299940409043202070675981364923738722321802315004161082512296764942659403715639368621073969738367753880704529884188721026699121845891109189482905463695618502287097886808509097186874759272028622557478308682892065418203700448049802629867498008725117132924870294904386795750790090231663965780611914102762937734970820378973448441632587586344669833054410220658471226600464046400224133698689632802702563795300091205428210811536159284989785452537163256132592193824189760628197139094732991143267716187553797097858956866629029065038566859410509677429631444893065519907627975148323603758507193684303163364642496968552458329868436417916343117523572974967320757669401606804061462729488484518479219285657952058082431930174565017157848807709114111523449450233840261607210568445733147345244041401744452949485867435927818606034342369687706503124056575535763617537102467137685124647587735781606714018304760181502643512733498933317169040780166741380273362656079031259707744155289818619177216384917200480974132882520625153353169232118078426638835948849605388917361753569631239128543422189018478252356805296204862356298002802834546625454960115539093932677549442483093343002968554248961268711411082298444534746962138365344183482178979345644126429097112868123432436604512033369666433670776766496553191736747696266545294171639401783553547515938910882147736662127773515902982773251486377328764579605387436904692389235597384813612902161113757370241428941762172901522445480327626635243676938951871426679598353430055904080754437450738591313604008769938629630805620395953242910454800238625277563191506594905315074226475303524465727539301203466148138910577062883061766814913390811624267272183215551214174650988288769372656408383757663560816832991908925847043240748322644952633021746776402462423850083078971932290189228736465455172934085456384417181395099461933636529650087766369731841845156103403398227664945481400196327619738491072029970502088281861280515939613336905290798146188397150320108698988189617382301679570689388244170563317058505744032710365584151982679136182159315290046187272837669102858305958186624348299109220037218633052006307295751138122487154388517732497254970256898033609592778972023810328106448347885625238425976318998228086113284448862157389918325525248575109920596485332426167471090440246395764602996631105923364271611765297641824877168576624585869245110311860521611259991446015852681917106379336532969096986775180850544175078093832203231861848687137259494885211817415030124683141101325531133327612474988472211628154807761485665465341494252938849845616974668709024514848911139179818338348686033813178233712991167619170124548547295690413562672363944937454234469917733005010149578801227833041606895437358432346913006801153524440149959521547272662460675937067364119056256522998788815669629428797335559086129056636365930000267757959179814103583434815768628681394152567713251868238620054918765265062755077085532496866089824682961392489130390275328133534670232397268288320665430987708592548669271395898596230527725497964493195200062057612710331271845160070360854455958238039125919567267468387446464123965383308555388348980901169095245684075731040276202995288844317926768159473919256162748963030455182985093491139313748956628320656257929107305049190245341507112754434614479576199914311107200775678849961688991096966241027496837099754666261718879310082925076523714036653654053556220472921325110657242624152440633622105287825548086425092297008620945167551277742963847366261047417631019998152664850945226106471751102179384624331808440951127479570205275082571260087600540360961018978042258613032700899125430021320466664674483763879042408138344634168807716177057142320899910131340099842923022254330283652769000875383443299275234127911883985747339922940500546260615547475347902996141139865072497762812021746206031583343646985868494435983616342759342653675337583364342406314948170914662428502409262581507856421370015276059474426575320571993762146421424480429057823501482640835727722642119909761716114376534837359520606855297567914709003730346794037882649456937325968621569401930050656672827048978210992388841176080572376865189113047301402402185293972394300176776923949149917874031868601287049828078380337295273416641982559313263000371891712668519634025533519099266193661821945160634866639660551470555155112955210662249790633814124832793042036352112878514048245479623978169063117577863690668699176449799608817463682539938269615014890172069725063701897324422221947446577338832583133601273639172998157643370346865266393885223695354549356971615775908024591845295540392038648440045454260567291687968758806278329983785610217507698461490648850533344829963420495876548013327913345176094937127524491798853845652324667115664747612789855393611839272457185326972188466510120365234293912630658973448977678850688567330239403116946367822695331543842582842042372658880341000472352270526208614778137203931447548833275845368624577032695055508383060120697913603043386320119048427271061486134451689782607748453741588988787665372391442483847599340556568206252699518410055445725170661716166722442588358502184909447211275373560387201378950255034717338946671798951786109253217544726431511375143202432179856460131055865716981149681056901166310397262158219140194191747778757146998953178698853900819732952591521166606282017766033044609401007438670289547448255039173331425656948948143667460675694709098301253417696008978208880221184126481767039478668758892874597535038367880674091705053043115286868093762060660850995284001497708457796319253422828290882444770010581465413368297927571180558781269932940372944725902429860082489539413321171271212031938029528537625044596287541269545433784766539220998717835480528981772817307435148404306781271821678591680721994419662364263484101006359020131404288011418957309641422940461429684767343904316856742229571469459542562868156329798189347092304739405658514499981184166404886952800152293689295502239909332122328494809615321479132807682112784993282595209868234396231861120655471200695133226994125172229632803694710801575852276897484983074946926552265383836671292111863559260840439774850704830427397002499406341409134223225703242514985795033045550386762990065907113484208577418207774406211007612562428757552818104884185783133185920566314697954458495527727081977741157870359397508262943477768204341111475052904721153973013824527215510740369890012302055283688967422437264455517415322592402859992554746923053227876264910271161021049047066311675427825621636485242679473686715325701337000140518990054919410084168650467396637988959737479239588247427203943771033930245303840551596644843855350048143528036436395027341449568262923054360542786682538369287830743105385373713697253784972730175639263619719234641793406084020462546790838236670533052305696543435340692101610919532974198664715237848985016755714727362395068367016352130852800726414376837938250550508260492548088470752178482306242329138890717455957645488086616039989338009489127110506408949201498578224925619933495994345133834979283730804624808644985174579042906455514364524288241371281869515430269374724076915762339612287563202582602471710091675766605715155820334645431970950084615242462107490467236052749393986781841004994301873866249529045435426319753128521594768224353868081924013427734628551627898543921541216582309485859777623368726545166079310716028874751753180790949587045648323612843898320166065347042244719542662788448729048440891186871225483730225990080715235486264711722727850189660898057631240928378208040166534099819295428404323565873163336629237031313474813333695604396289840590051288759776823568469746105008149038619164067365062567408102666818244488863585657546597409367279295036139039417935262849204686696074172059228489467282639330866819204188396007670176325326760983947819578556679489471558326655414048746722972915305799901667518742686022300445962779961397792454097882433957662964698647202261650487054179538514170873576277240654606998572355595500309693432903446242105928768824416519134545107346488508104321981676635400993737168962270358438865244189881776007785297654709527568506163657108689560394085607813426210455848862737599747062616866023827476047919202345749343533424124099196786078762500536649309530451324377012114554721658470083222093070344123747937885453758158457602337906353833016568607279250783378696185688397844044657116048241342094003675692260302146357821702442721355214098577347247936060359627605230060395307332637025286322189961559912299672806792497974407474939958502471674362161427310721504093473254782754118391397444456405949494727838083480581639219087790153578325673670798345792302768790534615794947165590151199363405160248008005296212859590795594421788580123100648627025102402140134743551636117806576262442711202030876086593304851284659992493428759125187026181559595896605455755892271298456935784460165750928868080321374293740767444591704369019611563035022435172902901027179821574933013388451203120112471684369826316349876359822253273016670170562089874554641383753420972586129832825770026095302213432038805462245116432428252281729720920404844616413297491577374659824773110975833693295172724027089596822650737200858780580190852070034565906479377243826798113453442677426021215324155186958637842968937624275906424325214349473084213131868995088597674391461175128648722069523013234111479800078352779756530604053527742661194196295378079913356454547465861359976163812424729930359591691684201851351592044402682692624692504209797215872558983765683132768658233837762858794474559033423897891604614527258413437036376014020199235121405746577954313515629777070730636654531589891158625701153647345592325778307243822298892959837738205523874979692782301868305552228954054123675961466940016026153279041237195029453678045266850483435904015697941768622816642615697581925559251726986337430210868861123786620629302470794404075602910339990547138531707872797550840657808067138782638126329132516190886066255158150654708903440858314978641916585466980168189381882837949486405000643806648992700892794178897035869661803455237700701033493954940404787068727647779025556144487797162395290799540662557191002369319552794056639674313198846221996356639685829019962482562108185676809859529531009514265341505659349433291146320464989034253262070684925426675642650958416338631506136940675468600760430528341306536814344884582238068597338953377301283598307660123967286963662503568863210131631359059320136399975975012344915256265719422248841448024113388854450560682199932381651407361657587590661850848613922889554896813565977249899968225104235094215901421720331983477658190101368899103373890221737208239155676280984340906074353735048341363149687286411786985912106121617310369545790133445234603964293389013039952344189519647494220492633375668456424038058576964442506973205793539927340827897547015114186272634781066967185644624157300077089557914270437005658565565687283187415795054881172188910340967979108393546916395647741144863693388823428282857204121710819337859025734476454781213046412214608690400596267909023857189323699243967890582670340833445105209647275536143389126685879322919790892092240234075463120470035844067734992448182147913962896664171144423075246012997574203185345094671832580000533860174747864893456484580159929197277601170977266618383617826729204816083078066868944313618358621102063500364654453609163517814689141414267039183117041588816346127547180437196492758899398783507268115475962415934251772982609747139761178959324793516901335685553431425737689326826208761934222027983612889888070837699568553598057470649212066047250567330230898045506240497233781607978784681020555876769136206271987414861604503455450063056537055868061654344271212107050487095873139658208050226349271675173470889164643064705691772530427017187851162097563638435226703128381349653778246045716487421688943739001689717519907097002123280734065004487556230600346462300530193092847059502272400593225557518534887361085608571275431409605671422554499704054040842663023315784950061573818441463117530717587632043799764879307450030405402733967814654605354901888839160645155779346861334518303261231975035943983626441426491123999426872383192638289302554909787968333863750684621673022937016033889980950817155668558877782020153590684280536035407833568887801217428869953938050606819856975015664505528524359164307917573402932405686618098316243325952106580791445406174896297922174262841828517422958753989271507705136343419975877746725117116398720197850211970491300923663353490822680985870275706094453625830517997194904357912864878232580428376971465012793322583851605669547570475236948881211027662365124035320181133325856126686559571947792722305929752807876585148177605384981719659955806457419822878271101144759532172436352306132275717922627328033597441010235187919484711432771380623779608817911396155494731118997942411433741035248278057393856955308017697848424995596985974109086427995533042445203913566002441550423187732350340309353892101999295249515134375372182679450216283922881373282525291537450336421472292692943056292592909610816244430925824253659029253107023759144621916722386537434829829884061629784235620108973024909972944129207815352142849828838583829488461372552975369931121033865615170394609661295653148506765884104334323898625845078988655353902883186080075630190786012608736874901790909532107381051663211729292343210926304757138285384441123731104700274559235717195305005403755802030551970995753968368463887061490190625532634091323810793476531873429905473222524606519560288333497614457695465507336518017231483620948954180944488130392459376196864919595802663643229088605295157137161902030895700897249351413977889849897646372345149900924442640285213299370251163102637171019130645916046644525709141105368723858507713316146909458371307890887897438442185902615967390701638237918372242205430727949984120940954437482401110484791132573441068050123688940470412337195300534512388554420337941108458562715512417400713851087282456664547269288851689585896353101751760023693841359294603798891584857217999388697250728308442282841477904973017783114424786365857246629637304257418518273477584482020496488318127018746729421101549300054871316102663931625626864532133404468988597522307646228151553540543963126866311153277415488097005760191742287262901293312659796788362516743165300848353098171641700124344620486723410081454071975623427901210730884416964942523983508258372190632710287685335008537651962217785311645176988542109634337925045478363410317398805823860900480941908831909687345003414178579931200325000955248814331898503843593290467585921719160184827110980661167284942604172933754022517089768228671561733957370046872891948268051117010235259505616973330322085530991626112569892441143341242636280475292102154053659541444042282543908636757216463846678472573318105555766486740465122284306602903874106048613691612714330429650447717465137324890650978031438174333728515153260245125737115413181160846965364064851580284596878757134354207633863703388595678596068699906636612232054874221842637598870899298895215687825920173644493277693738773931540730491424432457248505678011497533248363021655668855312529766251240028269395023468489555355030025841425860677502472165779133565997196524952678765360264492422575097937314064849783998325942680753275887649695136045130104957496469546002357156154627407503536425389013702189427911000915064959711332548606946902730969616820282927778662819838841843905377916890056179702876394567625460725660678834419911814182063821727480858668860209980835679326821779574240302013411776961278045440935987890415222541892679830183531516643811982328185990384003706803136781274633716923452983231320781787544672856521534719078514343117640886023314608527045044762836347156612299909421971668985462965757562438516153713842595052031731570301505519938037346831318237365314878634516279265607201252333913898168771555302578440421050099551822140411437635288766177701586591639813823210750985279855679666051180114854685826923285923575182430810983003308637689525897725133315493652783225818378968400980930320135345574353434482399540799843489023714776904028870194748630711566257545054043909811757047706762065687564455369919207643830105831203965574200393338493307127823802793123933529207627265478310033440729561594021624703345062518045278514128367024108019324598594102189129072488771245422259447971893510657468978878955699236106118582924263265781272733250613586502052971635906234645760776192267047283291287795831058521103421442505943061750961282675682042612648569253761340047508820360435342916109003377728610305790404559572880129621256223830197941007932684477537261589484385859170955301022459054585858165259469877000030950373061559506815032899922695755474133825790088417454817568140371119178523179352083320887477982396701241553103114212459953175879374016512966901793134566440821149773758850798778496151650516721698171663935508683607619711256115170780929737046374721055885714507493500915654127682145009144168878388330246981951097085826351945549997946426564011766268479201103318117508663938702465959686203967116321857883439223243651534642638429715758245160004741084208905463225835879934327114624197923993363019725630025667948721552775112391557675437689625666845084794313508921034695957061351288887810463448027503059865960219993794391950000871744593003175823142019553457729025638315014146695626427267420314755832112190051980562265475232070953085090059674274477742522142081100493061217928128553389543481926516232888050561430194927402131883561297771968699085104843750934036993761364008847360242320463035565489137023743248293238339710374461489035759126139476372825703398463188948460173637563869469932335028292387100032676331787379861805874468588458407737470468484959002914311158767904950896496802005281589545109175799238110618227899055014378591646080870344709907123857466296230483051288444216987698304903247529902197938869786811373159113594367542749669023909826672165250843543648680951172572094249922943838923199186847116860394944867959427934764765715090307232521495219491236675277139588735114720396090756267445973321740206351507691544178704403780600695797528536476442464739734161930351940374250890117203298374920810335863186250310555739073690589659509434739005415866314291772311077926744622327140631665458326291417813791440169663839920288952278682150396536615718383881873440326892173352186463868296586244099448948350040125932049057643117288690124353178475324765699226491161078005613541527318865179726222895308634865548696893765518142469150135767562854970784360116872340281272510897202065265198434362565515738419579700349052285122710605890509043503322920547481693519747834241768956031256935437506023564678113509853604247122402521450429249542972847833886815002660979369774368054399550256841723504968598025598809264966985040377874538317757315797706920328167266328369806179192700860494406863323325382342810660201937454985899850594394199697205425922289092400336965568816375168195617945918720809521957151785334399818046697616390515746066627771129218708711786740619137318382560015343368867477866168914385254544158027983204813096170841461341112168406971544284883856729991890226030953583364343492875644931636855781002981547121912490626179626841593713304845394137550520381234246795939849536679528932995400785900912899326173557484509243132822381706175060067056118840926726410757671007138099175719857618174340798272169068025689938870656161605123389577806034776367965937114680063751514627784048857907352242997182118245285636265806078381689752840065757347390772540528355897386561287238323194468542321402182341712054187299814309516795320991290748885357579707462806205357319632759104143022507225913512981312613948624521802779238678275090832160039966922006661476083233764555841103944467521482316650615039630144704743891766314898936067835476881901468613133335544729429494105519401003954252966622455720179259282723079958179789031600337930522278478647789300770746127881117247767193693023854646873280958784359042805927825641057568327133583567694462467609114186485761192278081716981732224045365074191201754984387881557559985488811138272828299647820492077811779448167117464250546957441197185025455940002123445587387854119231190724728825655788561811738483907561329019912330818951711446350617669784909484357162923570361247338865050494885989876671159323968303671455620588315171576703354358551253112561309464148941656369534825237499908824410938131071864681288542668209972700381449411979992466792271821696008348747724030105729470154662900519122433563965522095162632479314864909044834103244303422067977670728490798475265409587746458974144284547310600987024553771999826808857625537919389570069025410563837095349615607023343253713086754754432504846286800688553485092630303849653336078826087329110789064724141500453622636263845833464502200713940248264504715839963834229267031304555231218320252416100625078700955402990230605311730339855012370364410687099882843001305367740002817565492603508491526662428421935033828132587400540803895152859755968054187158446962182724398792838466380383559038376103826208694256289655276326571640232983633052406936149332025430958276195760549459786029211098267343582985547515263202602113150407234588787606586939445013809439641254440777189019185773465711289169886718615407636264994067205478535246769275202102834082182680960656402287865649176068046417187946009803885755975885197944246037770174936393266997251665650181028854463830273720671304654973239448771510286155456017644377736220229093025605673400455416033213141406615287777530150814599620512675162757721891381997137006856449346749455090004074589207460997899978071638321867057862611826257042929739934733059893984951801726980532662897407829765783900638285868631635286524779900597059078604927072325391627449766071164264833965264016595478385898940233264070716445208310977453923518026976490295173573054509758485747461555508381559771897074572410785769900684954957272110783908860059750019539141778193528832145821286364104202378415332122108415755052476186454781099419778141625127419088597745166772837891895899976489730157060426336462065458564247867430812089157760842337966656365201200098460528550319516277384252438107109822359608565645673352209687821029369720861772681497642597217357637631605863311579853968988209550931640656358587361182407832644428256841063020864092754634662987317194927428915995537458679062738215643311884574952208508690790346540901613792931927623772080757753515466206401480465937909714335648988722290971818423519040318082421158176510027323773575197890061985933118368546840558338618607958205760021431851212556321032632819552917749928081811297306269611306048450214136690636949162117523444867132733081948793151332343541714157521694045341401807835385177417115987468758330833025083160912087892882286467743788669639957250474931410483429386619672994021974863957470998929117772627050502547201926152817045698155428348366169067295795604373617093039327243308710986879585945354647572281989759766919348000716403013054451942693944653684741321930177350492124282347457517535356874118932391074655732193548141515921019072340746981008583552409780610536305411997047250909715364243346269939039215713091218635653776900209311024628658615101231701584293938540190838356626418009877695427371377938065862237871172959529412620447966036927976691077271010347173827592410035472101837249742023110519880353100848685873910994623069917625204577672178749187569892787896876257290924556075608136145456565166038999402456733063916304257247570359780574419766481410428455561872375165303969946849726325709520994338327778329487633414936638857495689884704054181605678353530151339313866165745068592005074220975623121943558529145510185062323947105635841949289823161505962889635306933090971835333569364238973680475212525262870163603421868412268835321192412888506459156774100011418530727411091715278395525075784398484885075656294384762125059479339591215303691874308224944004974730694195635804162883044447070865313861935148857807634465504820547176094129003338361537503860593369823013585299888405290046281832020114642699813700786538785562431988955915943344400031991871490153340579402364376542250444412163384196875189758117716332417751741067602460591567168941751386011134978730928242951904659673941093275253457770413326077511748250796139671989593272107540234257651827212159438592484957018803490447727618316062761916255303447176313111082349788733499006630035664818327533776811637074999322312320049002718534204323772842964460993747896474819019623063484459927215368016611429795974969275330283145829951386368349357543986376372138723211312211892524977185576287849310916432679732429535602865912122332418908816769181451217675771472114446224251174723416564607181820919441215507705527522867026295764881666089105329264585290230580676364544155466293362813766967023588691820864227020048733985769431820736103465511542281801311689880965766717118251066207307669157750229991498877899997185394343096025219330466699591052158800764478849447140478237956658254857455452135834943082579166923782028232870478886866625773540632621909477521567421737206665720767767581466212739436486499860342914700494437704212836946623615026695502817774010483363549553010469325763311778694187666130771201506079838913803015288276771110723311995755341204707424775553519296559262634624686749216325346346405325076279329786147411542569257348671441969747145240995022984995223794172437036454909953219845895375762995685226206941239349745120238020397630089267649761106113812934121592848489869265700655972186399130209248148285767558041499765933474737062793161461593002564813331605349485522628884671769030081898249805562539023163628760691003813989814866548379593722694400804773743924886375784025008925468971780599141198992442799313088556029985556768746325156806068482471206415784168807998161383074329679697525142650597731995117653049619646742529520760229323861796174948439838806285425680330288372438667642463404467986797058354739927877694095199607228307417656655942585724601711481640538308661067198166996375349981060707097893981445299816688285904779679693368748721422965321088923750281180096870620129539585100453634241203970817002068469747840360706677477723850687619705556456972937894901255033252439420288003638093018015684428932665461550398140486664171516839742545806712818374963897683300428253637097557303519110408533862260687281167284071720770212861219993013406746736743350206599686291900451963711229267975124055485030013914668616651963872165717643883740644032503475373071710260356670943733187281830668137762353644661492333107749410936297493945075856365937342993059997264028481235840287727792016899955062637748493859210309665282182587479189457207557505781905303923462498801069655727457038209101727815559319044727158380016848693655381918481654379602311633278788363893327935542660937456101848545857888289186602644123173698747657982384427456427533009942873483158300874379640470923141850403537184204022367364412732747870039095798787738749561333181344852920943910656973587220115568108846102971550598082457682110815201046627531585455644259554203601603575330153454924677930718569437603881216595774154415334709362941885053617692711825932999820997309038741417517615544913487363073808279893473032003279067296209318802750228192151148861590593630747294628376551925476021312847517952099812754785118187145379134292467077243903597484227102825429280246100913539830669708480804008423360098793092029179360874662640203850273194992262824426171879465026447020462087703815416329605183239069865964616676443417885633647160553795705720630237618075858406792853686969037206912690370469578164334831513169164804111309644479394242357063132222997592999545909712248533475455332542368293308349273397258393086650123558752060347868666057929436673681971351522454491584541316214069658036914655414867535211414751822810481195201103315924611156491808844029333945780425280385825616815699342430201527359916842544032170883370902149853761819855992235311854023667630251798205468462552177006134575078701765556678714185233059874098710228004616086914396771879670453221537350092850283077847445274468662416563176642914823999179586731241102019366309862304163534514870437231148624761755496257175936484869949921141222628606183529676129524760434535056448685396394109951199740730747604104620000854498240478471084157095016309004391139373386389832648492859154942795943711090340854340517657739385386080911233154402683821801797366940598909206148088190098379754613277951524059890652394084206901133083655993861256941641475160325737854036086898250999870267455519299103430076921709725035699777806702894704476975245901698702337488370802712052359931065954313665129933959322993870010637645598017240254848713075252278589223727218367429012902723508441104328380125013512333150286258388458274204554202368085464763523343034536287396086742620723496423873603392109569801890959640105160798167416759243849532990283718359784079430694610861064399334301722015792465795404542966735424459211123063953756562511550195344501592156577036860932059238775235365097705560110392871912211285334923274107987810126175466394951334222264385999833825497018603443239658043906039043064814082689819740565574612549927450655140286582254666489535788217124750479087021258999790252480832218837520525384179445498395345894166388695170395764566718701309202257404642879828408793998330374821109072481582579291929868404329794711820732642016400108019618719341989376787459611663737312371356771445157232965927840138382333171961803399881746106773912141863122852566634813873305342902539572667144147640063257056298923540065970340661164066155930429981035111846420428743270853846958577324134654456703435521852149234782859566029687064461877435208755181440808358913386712696693282223724768133269851210812914880312917514239029833365150790865177605037388425149143161229974389953186371658096002241231595290472414617572865081477772873297379545076157042953315445234883474123856224101302506664949743279111067704668112996975195532920353102817094415150068517110772744828036228076584530851776213871524874436778423123859627304971410441688064542741363001705596674634695025669507320681888488605532729186274549581635795845988881022019436667319780543066298306737347990838673296630819971611280542611229359386188856966211259118970808101885609412408146484481360035484689481395664868422745429830096783504172910284998236288303963151235227073487982406589278435501931763323933040236681197725603924830903915556091612709109044085260058538548950234516006648513574078345090021106951421711683956556735984758871471543182139488503375315590480147568412791988879528487977845871462190021266130128280426768834304354583025390139770072087041157756138448194346894118400075457685215638846372954979905265881808745511529969769231826189431683923818968623681142694586134076385963584975147103724657457014395508712945448417215537533277628033063147364109429670418077688439945237221858057141957756439560164163523776277415738825940000743429583965022979313184494789142163832507924995689748020768684698604153356086758958965789211593063476581404564010941099365334127231420879924005859724075407300796253310288237733024711986810435989991655187788205735243617518791187561216821649804526415759338464881309315303670696186889263091268378870200265629081674078290414683863725986723557041481087297051416769678982228392624094303511438745983788205308298937656653860954570407318061757697790032424275330756132325211306698761890681250584362395159039782641865682417429099569741932036711611853971407650430216208028923616060042854121063563029718695469948239334441714025196591046323631750277609866888898352424271407294021014328330543777974740258181776193359128673404096050535908287330494886257318424119225412871075201684850039658505988780985549133957858351039708416768806416630605577613850653418821087759015680684409297011614598610136432360193416358772778507175495200953011555442790841441303597520997884377888421885658528742963896187177425436982707774973215666215638693875645533139230177822640801124114407187321306593137530843317151265168834073283028674587095125577341123962696916612954899902393601200489597086838773178542620247103364756328243227315523337143140992393104581907479526377841758268875680900311221155985263154666659154032264579483296841575257562240810118425750095924796072646328951888782999956260558890969173771961476309754980918133067955717320615063196331570511172915103053190932463577603801786814066933258552560573477194074541095716140099262688893530573734449134847032049859295497007372081466253961782826287335965132663833783530770360988724818124430528185251858405772529896807001077769378373616851998210283267754331949484364632737761379620654724388011791210428828114800723414950965623089199343118308316522477708672146579649825616217783479472550908803601136947010453574027712292186443309763712388742678265238561492552526151367940751709024488756780058289686106764394861463807520169162939135579322316500561715087574123725956641241247344160598469301766593240201746676063711760975144526165694511302684282813530148916016768544748084448751454551503215355164351720496550889376519122305775118089356084861451238990248017819098525868109951556366587948671897431435613865844353247764334935246981981699116327510588258261911679155855292263311118106149505987453474550038351684822973238558823963032314465037932295698103535684896504209868044386659073129492562050492982271780268146634071463623188103908372385962728613998744672966435578784024486905034192432000653118751637714723316001777472867975369651944596735019716649020983016393345254668439010130951165295954006367073827064273543646774973002880779481285570072123534334563561955142971388856430499173219265896418817995226414948998566579330702611048368700996902773698161318733125295565943620743654100792949543857409965477354395309256934825296691916664352331426591848774446362568187085017369339113312106750767741853521220123155643052845402464364269766680021976693277328650001539895135725017653943433204244807681903084878317488148718603242278375689903751296542578469737248218258970896778813593702797888552216224374127098449200911597129002911664137337513199505288594550133012422233777406739867307368012912956944913203482403470740959488394571472910084032446896428488107261146597527559175620828198751446615377146755962316210981450388490174002485629541709641853205336770906316389314555510809879561332004900043538636783706849963734412184175930830645620168463744407827797959198096033137991670179525260078826698541280096177032820565885557017223452371069307432123285211043717804847420079633908602285686874345260182335651152066179216066430677801590449351720224475212400923200419473321670183042432859459364198110413378006281773457806392638050323007092116054641329425328328072194276053813079186565082092014552590404403655558062931412675851641442524536941275542217472376685911590854919702989435030064408494078182312164340933716202107464054412409556266139083731517089355246529240088444085679892950596258492937428061308374084574704857177819833922187121460502083716310704635265475037729588969532340828999464873231876638253883306334069653873240934840950868852772105630841668733362219899630598360436547253642705027300182906439094272304395532001732965223559263803482322083884421023548817949347991935617427471465740539102265450812936891729647758921721013659007607568323095611601920146994320550011500135582858121076053823049452056457963930300454054189078254928780028349654241244151865951841015027393584823800365532871766019915781729284372401236488650297444205875770095195407439157933937375191905632179885443068979753675684578872747614478246760199614609563806334176855742085267987957353248209301982359064559011271849387559877455733734187103289024274588500420606299429506000722970496224845416575395818710634080720840745451079724209120805849364420428415080821935529898178662725915287788946251218979366723614796451466580163798220621724276335706828073966727473594780060057372645611145035335745849336811495676872525484038654873108638719399097532658827150165819135377431101763447132425246424545782004568086347714343084870950329436205356992569771832537394676634806793833795904522039922085115502645262149468351314039577188961542404421485936073413170717720156258067047550082508653165650535909392791850560626235636588404608120905464852372602877605088539293635040997653888148439556015742537363448221364460592386002217258679688830010311691248895902456413937762779723571027923833999201570926722410686064155190829266848356378080000643831238891329378995153279953429456845442515646011984143573379578552081698822238342768487686095828214077495679633288018404289574364270233448232864482041752333547946326203226115167547752694006592525440175098443349234102414001447156975070548358161906769140553807838944990795594718589559075334852811460350765384929573198826183606797235598014399817574148314364000177376951712879700367495858209788795940502665252736851486837724344969058029567256438889465922282447372108173870553172937047105026575073393759307064513244394724653303529167883266288721787278212430479476844812710570506385937930957574998112078602747179444804464921916037214588464532492925942973059044862536539309803090084157454559070560083420719251090996026025261724959829440751824798895482012585563822928044707789464381749071300162310008255281582019519197661717903964496596820503489612865188608186513151849246284984462926020170244739811265700552499138679690331514506606625650890234202537383908486995869970664374793339311729122088936726851496063965880046260984876687107444365547144837874752177384312909064438725018585005231766882236450548591306646981005596978198190095001054373771696101616015638424017807526843376853981196917533888256084685055771294803025340143172664973855303060405663972761937020085327339892453664759420479026657887873358757543746460173251622262220567077173688769910291324059810936125700537619015639692329017250946845976674940826925439533023389866764369710548120504060529375138766764007463915557724999187642183422433211926211491744223504388488389428580902488870149231934865572622714501988184377076137248515655387398246874955515793017698560727336567155999000876156256514872931588488049990018735572829009128167116788704815346543479876136578459576323995740009296780919669437860822602259485581612878084632298239242328379046103573509713818101677439186484132645018669305927661197622447613736075398941445151269679969866301139002155984047003730981593964407105774651603377656239571093844843784013054764355013326254229141011134461848682196298030278793094493168748274018536981480964691440573469174781557060327061599884496957764227623964763431750692805686591423128856919070533957649157532135476331920155129988359448599396556029429445005435853537094430733861597316032232566343680152575244183187584903985549567108170520652327481889005233523646848417346423618270511267484569854842494863080592075928022169765693423252727770177428025963228519773880792519813209020111204607179488869699675780807168427742391074198031057309503049810971081003320161445529062247918982107503570124732017148492076172701815140917530501009712409154871364304567182434785962105877430111193407407914845393224688938871754942128920056026758470552198197295369726065882896537336416575026607423134775755927301006410672043616690747388046402838295032157461877125586325806441011005274138988551275389283866664454631397434070477380361940657886254405576185035616750501474212241699447842719494634703433680136901424640790560772052005178097196513964559743571091007946542983848042453653328686154880648845114882014339080745275672270302862413172861056475697748936385098950054413353144361814996767140542291199172162238915500869759994885325492544561452379074512401676386273702704773633334263346468537541508521545937725834278280813506277667603902501853212781262059438927736887394358520150684404654096558328452228034571062989263406510360860385110752455919100610900294316405791145072079720493983448737069082206613844228602210892031500330579531565275261522023767913583030729401149520884358575329286876282534147313120926024699596255068265442302226759986505519006505817284933570803717543358441497224791424617784569967371308512180250947195536767778795786762328750993352838431723630207127489617428402660587663720904649130204813881234378286520861293548976947529245926215277622826337330525216436720345046452959486637459402878303363007958507311109895213487999307988071113680854373879252725142106066597321036477952745539441134190380136377321148825531139012391355056239840742321757386863734586471869390693691053424347178463494591364238203323596453650734108993364733332808712027939490462492440860219470029662007020806382716092276048251065591061118858449438953695547197839716438285386853020310881187011814833911050988546175487335054424629929463708017626566079421373372212995561540843544642198087722259184555433458838876470128931689780389498082362408309470319968642945201325989987258455806670482403896739930536002228049334719228119600821965332174341149798190888104562091759109264604675117460934910086702790043974452020815759720687174373427780918085456002652046329086847625902114240170994310096620294786352864466234129929479861513746610612539656421902809710268735622831425588836822491450071728752769097800719725101198754302443922604801018623103946424071094972282646558646359488046397557448969916696790327962554432093204891540708827951625868276215784465438581462663054440355980732758006343370561438944654455907320009369164145059338297584322638358387504196574066114614460637207095036185013323068045575197612999776485541527655244612264913661623847991440432356749356199898081381314600024528522968707274770889347093341451267082777309245211094697146965066555509753545543933657448815601145182280947443366325759441994468773708899651409706251221541139028408483966794672906947007833132381489757267633233523093970274586735163670142293549138252860123587695490884854148123790418640669627608424956108927750486951176807913629161075585449301740487336956461914700710647330411820469601063550388132000746149628729921612012644498283732155377873547119976936407672735324620439623201282406446730293809961272852407762058821147250467164521334240794895562441822835038968571236229008478574698188656649212142890442297480407959587753366854365806640221993508750281898655931239752007820830807089258157429322150565908673463180032958626928257380144137581493093141498398791374461646639415298639444521071325353397111795572066544894404101388551261962956314471043732797984533400021014906546510340879017859456001845318203014132732636576629369185118374078857544105394766194266472832528748291906527480303402025903291345003200934919464846476704776743944661687315977786147361838411415136042458886689262726247288540171242242305911047101107359932252284266640174954793018927207836921372945622595751328845047669215539901613830100905823133221311992957435654223543425389574348728556867762563449262058866645972145414468288787237993044791997041892996459725814644691559568513953401895098148356500263453062080930175888455625120768547100360559739662902884569345551171966282911592848642862378132572726231462632268881133227349771471947595764143709016967669628975853117828153645956419235279451016201004816867676116151620612202757705668789894516414261412751144124789242695481835928145031528710949484459165293107730831335674674477456749146490390007323350595733428329226248686375401807859925499401994993941887238204173989092722681517563308915689505197847768839161731481632188576728232279379260111055394681927654531979047743558732212634379017375151888447094098985238168772589310801551312086105814990282358214057665662806645856525974660822213133699810176720630622551741026146586991335982629556560124247742020052126598639337412734496781692553215155877520690905032488529344164493314512367541174152832661873751218029655259192047070072413232303364294388351143632894757704875593882908810900886550874066560908233725266057684015170578026371735779109672104389915014343919671475455145231341303020949838585950722682842416006495865669227274328049712591258762266776887643729505796047225597317274864020390834283319797781805209348935850077388827566134868311621620964624214446112192862652050308160790195650853762335799599161029449832616778285132561617757346072728338171996975615402573785401040435675664271029030514750385047532381185010798700115462905585781741766115856980604499416091244509257051096013026656448515386085850420941519152469453183389772157480341867537740130170275712728551362709443969956239249180186773986418748255253270857979305123038486664914069459166331447770470217304127490029888825010254715229591150936154007578104285935304508797151981169410072580673599838593752454543030446724279082308399921436165509445138102072699654540979988517824986211773950053829198648027270125867364128815799651789076012423525482391541787196440077418104304214050884602707899960208210986111943966853056755050522702428837074197185240858440838056825178325269000309536634587381476367639916752053296262906923220436408229738984321474672769032960868848339658753079450739441025571735901824366304975361329811307520427765837602870845123998329898406552990952744256349408279006346790052837180123700966682382977411044074116372186063197419480895448209829866041623205376256566758559453657728722669101583227604246601439559964711784655270151922371687367056396577850097012400924165415885184178057601880994009821270828434811609547871374852484683935886256935321915334391467704328594337871315477157311109378025548033607341151871100108542178342518354043081223961975433542789297495401805330412743955424787085405242308722119678398641201568183666801414926676622118806959648414918739422706608812542701408205613903628561839593775885758240103937505166940744724020451421270892532287977014853429305866942423882480405752919977766649990476250421484526057849985116202013234842746456314952296556419795959709446814184634142054378349711153183820917348748301205476645853114000955613355734687801284675982752848790033141044366990672903163095550283135828980418865904774049248856807329961484695192767262007146498767905288433381154216078196840155148087667793685570708894881735773561782286270113434632935839176242457849232272497977674716793255238866660175573246499152818043266912913135381428399848159059537987858558306282702081773386107239435740386730791711011750137898108704431659427370750272624527162859323648742522387083818485400139349608779573089838721917245865240015765172350329757287541307972049944273577073665205162436065167592648802248110444904207637268322294524153362785461611941049831902671260216080910456072977451039313234627325808544962989508946495968545375142718317906217262309801429849853237741799971317211685779302658637492951491201449686690939727754912413974129557306483065288246945643494453034670705932978909163165577807448685493503737710392574976920757983457840915928039877351759427599498174463482488283746807138309182677907206553100401990618504892099120409542424798765672681716497765885124464387377217954799554480076972257769381202075005834346527373309373156771390256985723346685048332488150405306351615701167158424941045289724750927360201848553722784313404516583968986266563050359816720803443534981603333597970620024381720825245458404559402399719399614426825868538561990125143283427107895937749706554916949280943505199004954320114525348481658341844761670906029677598751583407232790484673109565576954351929010590016333037701097233708668200295489073885915345734857474304071507992066787041331204786631612710655879020416772397764704666564570176729510595182264309970441954315697556396291011995835324369506174212005702602566123280626771075906713895574006752351621650365330152436628914045356169127668060983907748892942487723593142754810351085027547313510731508398275608730995226399445799037571500440552231580448799573708542422276250278810046316540574037331791634182517845623413688021236187136263828710373907773328061205222484692613211089172322051183491503235029211006430797877844483659732933780719552257999573773928641971132525144005276104683265212540561842184581534292907592751253476458958734393604473882788570362802819603594502203138607091795725254298535758985458180654137626170710276500592716413152366660729250484049365679108708743039688418905811409928234018383482776068220802339664387041853417788888994243925126212233367582837292355172050039311063859187637956527310380510003553714789612278981762283353781758733276324236410592646296443422095890110002376528617976613483917262264772359514215765453717385334447958727206962976771883932770556939470212322440210757756532882444647220068533620664146219825962893394894659465414363226025570156340376973779458078325046177788127450062325779746705732212700620545217698717319965571482229213860466331542449678375486271126608355234318446247528425872049765242299704116218247678641277926130641331383901349666099129322464751615970663507945198327129500173098896685934910745018707078992291172615464750168854560229734482007263802863066864594894475874034652065469579696403357720668793413159819928210529664023626521248871428344371664783875269730876120828668234171091797018992271147502057504949986202204664858822568215914438344766267525687251777722649484845202800763219389906461346421772143779793685704934903909276497142477648996249695703038621597512396195817105533184644963104740284316330961672119478587906140250648595739233029021804046062783680504274058220234487654280476625474225883283149884937138859068307840915483790643655699332734733543042148692242063400962751809993137653767631617018739777000333050957292730531226203460654400750908406680300069513279299827563887678966036702608821137093815616572601350463769258488269664549913495337236790342415348563559417936086424499796929096738158334427677960339933586743007706602802183096727499282510775493790712823029984350760328418122045094117047264329515408496287801918507493001470309543168931692939966597901536478309581075539142897655314329910834310241562767758130464951020147415760239373449226185854467529501429622413832867234102578098003972506316566149181578152322347383113344434117597281027642976171394285922812681813507951240276792431487990506986807669972908353612451307715141338277972544300106084884406698653482955894361209251786570772298437263844383648411139899687138646314444420302786458017136671344999824701781284830458717043761783943383982501880328452379287222276882173711874501086998089820564890126193743311954238227646280032793336169933810695009782339124622355955203978667863199348668654178964541785692676746930708223260146670624055274671890022468657916716119632017420360150980793327549148385866974662092745878573362581964952588919658774752485068646765863995867156620592079770948139223030782069672227998422695758788917607926896238768014567533422611252925732751342398760239635309173415395806246035768928070294775514424034427522391379273201255426628629859571713895956480624744134561941666286028839688684923223916514688805828722168417264281761143499324533893235696345280795226741518057007731168592306419020550183514704168985663670004433417959727393068394851717082548568064151591611989867089317089682652742190094340786269103280617411627450636349442829977636189491036542858541966289748238462365835923255076857028722005480208081152555982150368594195793443249884335376839829105029113428234726077807129238204098531517892493480416897892145805929646602473495826564097965191743618824621332512457547116451990189601702113876881071714029558157009876906134618428525519187600734398102572488726914103510958677320624292827505323332512471060302726468160728004246560639244563381143553483059959771933390837344689345447225199098681729753479726405993842902561661331363482730067185698003543748754450989150691345028716824892855229952624489601851890063954899220171464704528682247545907829238607528218056044192973636654576844480794044470810863978386735900325342162371327417025906992555143579691591753637173693607738714720962163488182065597993043134126505161344947115846367793422544157544964402878424351513075276974613645590272148424671138101363715419210607106956736209421139962947949462183762966366363157075383514289157019813215696986321832694758985109092846513406980403918003488102457190799270301260064413945360315920873953217111758824573320548762247901620323725990976153127819608334491207694823397068354743288173422096069659373423039682233414454991653830603545150826420206519341955045169633101684335723377798760111502658964285213685133996639530443366398610932038242303660712076599096057659162823263858990013225158134081093532395916849023563837423320771301827703598869008293452991332460230679837259098521693962886402750890215407114602587725224331650787272758872166473121830920443647416050892090064310087787165837518514021584700314793054494310073631584198032428179260704555337419931873752914282496931084048540664885274342281956619066438923673730686764889850082072884960092448416901303113666801625331088321661758669855057451691564695661202963721037785119069173475695986177307517283864033707865131209207901901359658568097876262931944133595799315547195581651390322305551321715601356702004974779362621621609095186802232314902762702252063908524005597937707450551804728790606257275609340460515234344413643750216687441754106444297120834670728561850908419145321741597635199372120644910753331490455788475273152021958273838614735064370582238134039832762919854168406233587947183893025114625870837713062717329687779914799682092290055296027746008704295865319658590794680804958169032652960934125847670794876651028208783970754614532654376766469656673542633020907007049861728596778596689308533935401329138125129289738716743358656027732623327004409492516240124218094045777641116103984086683693548026789102010709574436546325942910197816147989012669939198738095458019128707820432503984867396811500398894879939249666279472556035686783663533585311158964908645576016063426490021361913084786349445352373902206558833561751013865629009576691983390529732649594399810565268150865988836760016070423982094401820827602273622149612270258586756211061911708139625032217602624452935933797680934657408042979591100796413881997400011466280655343370316113413380676694856730460781358353654385784088205945871167874460310467152346796056336442958703350486267814743400374058759265414484202292379697085665265153121945849575795888304641836581958526222898280299185921630288719464279943952836397128765403288891969839831178053367295389344686615320837586409605963967946914880372912997447479938286866089540776227243950423622445298202653382555010505154695408323605203868678227823494542136732333098355876276429009769775664652719267603856267846478911938597949838966899407351045898238100838236551177609706926537134596634797863260444445697974936481843917842286675839740890110340067904222636346765303923141972678955355375743782961317764025626337015600912528786075674680004872910786206871987810683248237947417241649465515972405995140490636406554836617071353346460901023830229986286994509455366372280874511732142111289392813923963803441891868860521035608964040344679356113261254076734879361943771972706453477823908625888997582643455152138968521906279205128935832969151730958249103761526112028439918111922382875810697677458072540886061152738751448907110817824621211112404477335451686166234495463769932255363997765723366256429541816840905037958102171841802045612298208547965594691054546358557056397526517457269306901211645968614678462450479929480079507051037507028416126324350959401958311051508450947149495985908947891591829131131885184479589704282037028494115776121395145780913136479435692478338037176526257279084819261454984929778259901173025951354400150032445152260203822188609245836260742162643001051365577460838712278639101466295187398570352281845136995296520764038116242545815081451406482657700914879706438201015497872770685110364098540294098042478176119939408388184404756230324238328105528124332158648541913554196983104395269433899265039056716808117670413203437218997741624396130139366538909246936397080831832135773405081213046008864844212112992982731748887119683063131665678750568244974171361957640572439400026927503876619890742502374948017299280872851005723380374088868280439984553747609097788773733218109752878112265169824393113938702138555795023900919481735334502019945737009406775659014676148440912808387148798714730917686015034463300547654920043191093095772901105232814461750609434178022770807297232658186321155323012291278745043077465443189845235042891095078980684736518064412569088276404973567457963386943807597180104974498191650429912191779637343485852323892017016359863226089334142687815183208909352174682526125974056537826320344598900221159923432127397514664810496189372864616160906805954702331322110763529689530156928748715182095140844086080386303412399380069776568087772850017725701509700670268791963400544288714454418553449919159783112588938243027180511965434525991053189095239913452632318161827231237140293390879984580493789124899862698317024930487618082681344656839684070308555189407840800233188123991106109430614814459141705838119429556098807797300574968940487147864520970851527472491088039600867262690263301615208054214651430032415711115246853295888591802345749916736811963832694158733881753560818287477485497517015344055068877835714973759639287484392819249787463275382424604754303065578865716748062960469027372960210507940666084413382558388051115835935000532742250978117356917291187425379337861062155263177504014463923171876478791259138957085426494841725237236064242031683785878330179110291673165918417374645820036262667665218637101337800345151021466598234505330483253317688607617394305237869953195785588956851342281178789430531219007932147381398258195159950210726408655503271732149192308014722801069916589298598709113815320913753776083819745935146262201029917415822731504266198266027427859294098270538503414155516159943238694810881208249594173954920906624762157261580387209269750886693199330137642552630172423202028049711545872831352366689625827458737912151867626739474199197264472212467371389693586257557724492271083273668649648976806596609671746517891474166277123815034660300437839538696986193899924939319946156397490022631058751408352917238525725277264521935325834730009293372585568954582279801058413130650176435735682645746723333662605408903770046268739235152013764272915079837122111172244962168992532707038861856020417201412108221599645732053902544743517442732698870383475530951604290880639474920321848376911352601144987513897121713973106448829831246163866546330765833742994429056762688590582992100815817749895881575977678910274279384031044965884245768719809489342360232019908619192659403748162956337345012800792954062696704813415181639467413360520305731084205903996731906333936890024543324988055584029146937271959870933002033417119518159852355632321975672325405934943972598153910494405309292806122178611311635430312554941598025821976103105874020602272731198071257577063112377829025298179997963276457795014658703456903198195770194941590227872561204483750933917245596702959614792006554423596612673749303896367554050379977773636620677499529416221027867031200034739538847087113375575968993351423371144616256098567070106186383151863773980808289143109483853251287166712238780152379001892694884181709331624723849594701873363342432036692556601647030655504884487258997217177968510036378532278059955531034680099947926539982176018900382750915396646483239237150147270980198662714967973591231583860806395489877424440465165115016987064835947544331689680118349931243425473433221716581292232456076440405617860207667611374998576145946233143257036417796199081016782888733847818406812865833809930426133375884783403422836463857057808212408383742691303669400310724076824204350362551619459718661463499766008523422296860399888610400256537821073982565949424172066894577480346618078007801070182639078454529014766891740332738302815629082416887598435656275602366034101854421513631403482352965386061762600881484969191380088481836325361003029375298629460241397863933503257488194917024493332194152286911138120323666504640198679466095565244856422010922725073930911620540531506682221302668521603662140039374783889877679149024062677449539657865875717902473939358108108221869921199266840269603955087912361581569309781762794321492158292717901794792432417736825355185361558238846749659745629056196764715883759459387878204228321398898101890143185016345221136783119202318072846833743116127970562676405160856641341211878193749198196951246303660829686733493624052308196368284674257669324397365098330247597109214555153076783558707777095081836957266524794279800332461757472652335499886575927073106077956507805690429787250990565486230708157665045394090977249643870558559362353286678920695157765352328400917592514893173878248073476412689947279158465729423188858196401003746334761619739323862572463951483302380348206738810387711364621397210903766090310750113844936757852031420368772554598697303602776119252407656846204514658459937638135337839630122932042908401157667159790461985322151085951624872131271117561194241430463889283773220344771768174810666256927356307195051784136206040307332616867133955588791512004487970393786298724533476452935039326165777876553565321163732301429628201354519293148271832496174218157212515137939058830737504644197304804425229502247411594442854960041640246227038909947415305051224360211034318185244427958086286503337483256731982871004973713586964567726555824350951260198095839336692410956259268144499787724896197278718519871322504787226850543394723974708077591558686122265854726817904494296932829198594351765965257425744979246449622745750292081731619149175545398859304726578440795828157816974559916134674672600210319766021496840910366605637054479389220480877387731158256649164970156930112228250931817732263620154135703068877085663901936757011863492842471946791348546788358867455098756672975147937959828868145499070718577887945065187852305427922823507483332277798940846416769743279682384026150179831440682601132332286712699013680298563210425366729901197303707835411034824994939990524359197674979521316128187040076862868003464644917552427734675913748410132972639715022366912281211841608526395804258974815612488015742764049910194290934339993188907149387858572577144720829835999657665689109470085693829151640895982051897697873623444474509607771566486463890954822309893586868676294760589068759208709794500825612123595068269728431191671950404641472489921717919671506180436367035896869452914140419520909484053129057167647422570471685475423380191575052938798119682633385999808161652994704684116247153728240838459993482915214824079724558463273347278931814184494961830052654813640759870545846417924946261267683810908537137247983359017327945873139096188156254769606704630510448367868881198865532679480578090904057991203420283709063271475046323875988254698313617442216655338716280405963485701289087707584532712713458733697535780085713980970457717055586783496230022148714844724904062566982890696172498318996820918138264411832356762716026273422312171083532140724925296245845933919713975612848335176337816721442218786307948466322587471948763388109807027278381348758621985174989142431206898867195562057589934494053916011636598545341893260876809774771141626626938309625950500011767369640972680059324834743143817752994976556420422385535910207612256137746429224244340982896041366494271768821280395012465441961776319123011499764586559226783704928451032827197359738266381687514206502807570967621108527957529390840606631891200163106584014681861554472992835421989859239975223172006650976842771068620365975443033196216333245923578686529254243174986810919916594758779472984871074584839184158613835833426547700837317155361819433888926953610420388249450671497064921235733222557542733771334256916334042215247218197767689273084420083802635802121468046781872843403218584629856688791447723081682211525396899316558177754570706419006953113590852052905170909275636603961754192782721205102387933190180978521878738246202432793092884944657339257052476202716019549088044399181270771965927395273727555501999591628144745759231692807729536511217629767268081416050031984957729090978609471166670320385233798692718994749128080237452663031210733428916472566245711650547017749987422861248227340505280719174967259855800375955892279364684580087863309899836710565632178720582442731768485471371988438353739038584088865796751862238678133613044478116037316447492474984703106009804362638295853824656211612535040237068461845925767573422359275452512743985627186842634179564165453740053686021087762433395607817950562747570441705560908898774202755425677573215100515836628807454660988184007491900102408832666332900530706264906994738384237008401372301451063666430604448204286412519561603824279615128320269179793947460309208690986867046701293742696068474098468068024447889045791127891482493776311040419428592231697406403003536116136704221534087814148257455103187207832366478229645490130316204500483203397890636087101827921678577824849639246332463779871917626583831264757884966937881551417069796825149478703740099379230850820688991532850949359351602143162482431320821330546971584289151482684211710766187257046996069485260130195846954006202519325815744852979155026850052342818455706357514766928548435986013090549327551447495996441848469454991141632225575858312981914423213610097907232622121329908047137761519908229395872707406199542089339596583899727958738237118894802737558961845786818719007452849769033572268774369280950005307546066310487886519681630387107953104529402808015969538060094360488826602494797811817122007212379110053371556312251604789401944371446657614651160061031585968985301081078831369861099547795349139446287755156736115033097188185257268508017684181405531147875499040268068109823315986313662793475770064243912245177503637094146923478448850644804053317005086216503693540120561427170915142101139255444696292500225226615637210604640816003823972711769073938095289312810448717825152723147051031620698591662464191000081705808334279279817184044450416583320525644579578336990681625815248521332595064139818076655989763932484173504764774498120822238702668040275019808075582760750162534523344393034203112549502554424768203033892588952539996263410810215970853265990221235273353522427792789585765207570648145808317556521373066823030648955177496036283246690671642142880206342242385369210303418730328018525884447199770981292788629263272548577600957601788668790982130498519439156295030686231072815737765925237918740816540735366078193247520988574635861699094444128042138538726781828100316155312090340225794641669355829900655254229941062739558784817036628400486780580253720440409825159015646817019359478475174028948769922392394937993686712588106025648412391255765733481500959867163719253036202081567615908239617861279165124870159350216667967220626057938664977613907698355838704245310352694492421332109999881063380590755047702088311156175330107108337427270436616513303211613325202296471261032771639272878573353499960001124225970527852889833732980072756751136380491267409746225009554183100044630615766062364238666446333651587655378576389015124933512533523918764790049238896514977434633452591228742175635030487100051716104699862282965426235535628055141104320035391415975737746486149133405477084265985489994091558931098611912082048876161930141185283809879432101813747982102695946420486420154005890816871765070070757364086537988171173120735685937932287840999966673057620814278622145731621052121422528137709052915249786178236912121318239933074905460474172506527763109435730060466173197948388554852595419277883796271203439535767864666000142389737046258486903011376672620696205245911359154845995646627842813327081922933925305991460650010887724144268503477721766651002506989193483296692368221421990574853815429627535174652545419369104669274572347165938148404318964088892357576898009057539759872964511812287855942303302654968974542007455190883546870517647069453518473996945625889327965174458677013567698179264377059204213603483008428882643235752110657577514435399578348306057807816873441624724157338651350371225601533059683513965386471525337209992817071015166064906905552721676258248590867110443392395834170339693658180023562481982965303906261297680207534023539749084436912624860458211606001829629733005686437746486771638444895721316880105238794387506907105583378698518831968136233675418286686925512429636130711087888821198840462468767780845255028008606224907920987519380719775687690292052690187320143982034499094947073595474182447788402547598599086474794808524434783185771402150466874454982018161362824035087039905171180509122243412146625771613223183512664791498958600466832136541238777625369136390713551945512003452439934729722446257483964086589748774386298704609329261709314401301035703019847187018277819180869272050371264815901071101218899842037122164073048989578202630679232145592539141727416215097141370213029123475201285834693082433597495720042819716629066843476111020081437954570542627762113923996811377858602430859312521630476737245884965606087243433219285072966721842160266770491317231092595853719993294896607621428250130005180690531570157036366989301007487338741742411791838429411827429342495773682019924259860507096009461845971771976707567229863056722976473519323892375982661960053348545033401992545467003592924042046219191424558233823993566984039012450666364910878893025601939656433581112210847869056818070200810173231908924641956930798163657072309986474240696914959722376069223491817335813838885480410075871628971824311703564038086284729613632414379097257161748634680372661149082191439325101104160488146619946310768462026075142746660713794471155945166907537406840929457721401206147548904763981817150402866251703460443810039563262010813898588678503882570821555570410766856340414429080618926121999546414974752519654364616729263594477398507500122100109371706184257394016473812682277914157991774341042321334871472686595472867620098421071613910646940073897389707843553217502009946022427768612750624336036653129678599843304554648647016772295767045765004626113084922075260249367984120357493041149023604845977724053472018714320708605946931519618222583401051493723801514589218116513012076542446179435306802369837421048320705784482973199988126914003764624085813100278755973760704972790229512420249237674210293964363831347894989693888723136214896410419031239575132307773764605447232992536277515904524316897588780259761363292166493920166361664090700598511873162273959495749777041988481352192203897659091380308785210298181165388831334260923440339167518490057916956832263916186280308724500150454913876048159741029071552637367596659095228376853390642595069679797472673635411453922793161014527579865434896799809800793808370895540675543009004797655679193781456193931226498451147609973701991623058066548347132573779399529781873677637454987762899445364239150833240010116824808588672191854427171546936394579743285905729312737767381177595570276312674414500648172491416711009880768963108081410626248020032659487743506764477871398102564601036141058606155115784216855065314893045637480981642108679246194461143356514136258957666645295629812891774566110571575203333050018151506078627359439945892353555169777950223815595934858164886623545163334163401234951056298411805104290751157692509314314527054301189318713383399676490126355849359165307511224584441151439010618721219015594593922930221875796022453295099463383873014466747189006011744881508888420541434940816075826685491046124448474288284354771549694616267018999009959914289708587194231410478830312490413133834695233116879441415328935508562486473839336936616728978451536507642875952129885879240175449142850611013326114311433086478833436337633114056108804357611804737018413681501010284580528000386847723953614880963046423234408010001380987235718179462085547379629951057872346443650143594476581967787791455262945011823134166699520612148935176845782101105856040555216165707223416655811825514222342092860640033122969695979603557381199729380203934218619302303429870559093357162262280481351054553076038545487620013129944512900035559847099654360711341366370974331499101136567881060594525692229822377971903684673938031989086147285049923078232131713060769517428717325249196173466201362762092414144216132261797847375503613587041186043151881618253645922587613190994039743734016695577823088180829008333411707140919522608297752906858684577561728800789758877195230817468113205434008777707564789205053502336834059513280217647405294541038212705889682270312456774980612528112550558078318238763026791231833061166129842077475634501408754825397890486192398872367059474278268974943742042236116932681142654385054845942198040644448826134347394133573972751664673200779603953723688042937189292581055159502749153675928546712027347671168082435754459277921394523095025075119490100062264353875895084853308231288443480989925796155588453396577443365218839381690344731033196313001199725983389898963007859739315854799549055291193375236281579711733980579855633909567739354189245781024308013068937260635374693214759843811677426646429339452659877340547433800708021129173906297252751821085739027026922244608803152949016038340908078137595996763706992014433336842413440095245957315288854228583498852362376405113863622526150953307972889983814198643198399647894069470256059835055159979535999492417476173978636155528474682616840044804323048776573071834031432990800888996064112633153595056821252528366953324508357352765490320768695235888704649697569765852208913317558525627355021065787864038856975295999012082007041870589907917544559391411413254109390124171001950002592151863548225824392296420998318863279259619107519926355045287403696831746319092777220127158894750141306703899284819792191954371716893172841639705047447770671114810652844236013405206839345590952301608470867264348463726691436914020253547516463332207249793664082147053512667338053265435779780843741638650346121188015353675539922901683776330255167621882363998752470690597686189973798890728329363049592706378893018566531068757851766041589124252153401896865789420116871424163376978038225737540346136958788951966672399019005250833773315245371076662819067602567047454315880170347009481552946552495518533417274383662352153479743967867424394395682609449053072513036866962607676344662717153956108291106890914061039280119541372860170836879050606203797827101998936826865399188329364705787823042599072528961458775500610315967883508790654745237814503759627341681648509633615971668469653074664965459728293545161694244991910366942780694400001708456771628498418609391339908849488147210640461354536998154659143642023320524264373256084043462065366745524080615826874188257650691412421789580730664029821453858928895112963469660069432872864599505131987358107440076423551878057974966439456893747642099314358857582765985123764581120194197683759963844397311584812101244051146219687515519088933016516802747101017750534739523071871284889892437798618708978936992074076381465605816002738420933018393254739754023130873655302266910198246581013487951226550291604748475630385150221194267311266897217667696337681649335376658011724955664088333966372330586542437108422017767541743404976985308313471510775975064041664018954959006050075224680243371566103052404918280500173282718761491062029841941382847317416852529088817069183443336476124230816969810968297338633199251568222933777263051923442441334524675242316557440887838596342228080408867939715657393250530425846398026616805139040124898600327769356402963175654849515986872637662327866896010299478327698918493414565806952157683956343236457031833590228028773292411380391998313122681849332996401787874780804160085758844878933167889025462737381942229423673277485175789482887721907935168718769654603857874589222762135832757270600112870417535395245917399027140701067412258602070812990286476543835065166138485542788504434208603464464049085038245734336045658922025093831714241619561733463901476578955164809963866484133871494285605381376543187166797029983017144475342313855911233849778615059092276383847281325894918445198519674890929528515652345712720844685483771179731071785707817440363394552752677753611578819497693660693959640754039129875718330209660929888797055991406769276792754211376755843182041816631277684658567050066557407492402412083666962832006330198021468257825932909425182202012088116525847685098695473319698616242494321894851426239157517213659104431552768667649971668123609282626276999234597897606063261531630021493646525172838214105180680611366151348166362386225332050984663057624622645891588487852621308960329454971966807766787556728779021193895320155822325662735220576802353582055892699440699150184017696163660258694468154097240879321040929213115790291899289971904200438194294987378341125342693044889344523629857689234087902987488012906922388084320208881028647875661486401448999627607853148420869454504313085458410778166590584753044583769456223563605037831450123447174740303268989657401034096947741068885287991082116762408776827871257154628623212756754919356022942672198809068259721491081185108795111151058595932203960813912341998279234445561255177666833253995945622688975966573112727264035644583604982120914885683768489056397437075305261577171854712650217524637838879892680463807109490697253579858220411729440674008530530158359646534648514192283280411157144096760556007234569647185590577259250148880836596754626402704552678660378316422585843493185692577664032781106607101763405818796056595931736563805542764558820693731736208036761212957319501024970601888891761322419024814905173657295843040166334461291684353667621914938249690854761707457001787558408075824789840448361450699033575936624982967186202342913358844257212386061935274824209814088402284447466358839868584931066911020963093983545386339384091608048719438280440330563066548345293584192630792678609782577757212801354119834025265338472775368832638634529646434108893666370425830209481583484067104157322206083497958212802452663325569849349095231564037707074475317439001554746562485167866666046009527950813994728928328402587487364269747784613521530648574613278720425855915012451025235138584322201053168137035795753001742439360958523003446060239626172823082580657574381211903606434522008424899138572350344006566231544655783829765487791415106689440754721930126367883686595102276511411606589294396036363930044392099873048996945915920015459817069752910274819698696017422031349068060709686655804927381326771102997504996983773362430614533163950940649066367233878310239542838643999930374262770973167451441862454745903733571924195930123736914353873030674391211290699878083784922022730453256079470224929274585577719512306911607184960975014307063492447611358806495444483942947877303275148526225191006830213471049269406213267047822568320349820512317032772418765038147818720181028612511220973536971641988637633276695690687324129783566292423571031956530378715301385995071299429528858449211982472257456311599469320280137429324834508136093297519864954436244233255512574856258161394786577180158061515134493262266849279011201634842975267111001135648254114262314961634075000787369262137636800354531624635390413994110377765793233322378220200802056442937974052439495980167566906180930161053896144595376839086352451774437933509321314337845865575203368691652727111193860946637812240912757522640361552387147421319209488787309807463749006629540829855945171889204480448565519505014358746288771882604130421494477899810201983862812843570395174606133344566501705198415198728421344542015526887083535986864375289394128347600541733925699683646901937643096015918995163846328200444562161070542696387274022465190867852851552306459701189652830818533716739474804907689032063228135290676265703281520337452427628241396918906024743446618172735423412198025724850052811027618711109200785036074115142146132435276702905950345221617836695332035437472231151806590478364436242440891553293686192774026883551858586440355603807127293915609534498860571642310168405235853079213755662338299268342605067897422720002913697079736766792591572384439133932781101147570036025561428657652219735709051696696525763194744484983284248998759135561619898178562268083609089635601080135051401870265540113808808203502188261486526712653734685355059115490195872764032388801420021020824470653949581092612662232151147344331833827746701333967050819573556470675098718344351746730621655238716798784873054926136714765156440485306091497401516635605088103461626776965832170490784190190697775121578727729184594692996457275895953347104598835616310527168255886618849363615472103189065134145523000382499194802070191681799135473709361059576902578979139249617466842385149920287563725874939602111118359536500542391507454935419255130145956291544366013231545413144901389468700164206496442050591795091880907475979385100326180121542158332668987453749486123263709253619377509447535127442264239111257307308654832958016574858508597177567160402466126113125208167365935371878587274401803865841315756850785579424638073986958963515929039069349027437168999550920133429690980269437063321124791582385593906288331758621163285993853752283858161409075327460093939829407054702000623182856218357941783310212649234478380864624994821857216388576323034026519929326888008207637733683125313234387984951274888327862053983099586916245553676769878746901421710072176983919239980462357121940900611634656363986825897679015923251547992451664285056869110142822143500764791497950839827949589566442039122836648517813758142361290748499953997348538338912286910487099191113187274922377282787273554447476539605896835230080825471730966733331843609081687073262926482905696204776752179538012976084065953312998301273755453392269875291725896246645827482093341461751453437344877357624756840929131321452024974770094460114488375315353454593464761457573917094806108072361364124082334251955821330183954704687686901455160935083814489418344569250395005452855436644638275546653168748360323263569497385022634488084936716128750284874428547001265945404512098033393774079044824654325615178046865933169341760544321015344661183401329301227656742735197681350719331755481479063581670015299054234689558280407558558686024497395859370047082495652982711031016674593832177717906387439930502330551527975615438388404127699666495311202301331208873296356784299377983505526688241696946933765236676452297491397265925010731078807400265338983052524708936627650900202913933249880986531652669867360670545475775510465305908021378046683613646700751559605354997927979880517313847655324489273328852532110271824873237982647537476169870642979215354981097700553600257604729660464519604883030799733315417323616635993635488310772767491778590561191732282453031221965618721502832741471810650351182393763642046991930016529386741455400405306101881613158627785838537255170936224697396263389555338616138726459799425109381674014698890916234739056846638195994761107822072796566786653253000217654060252126037298898591673186274987689027623414468524904707347872520166017956685487597007639579632834593524290752699489025504296154450121974870964585277369269892978858597915481059513376551959430910917223794215443847496393155717595138363346171906590627895002025050613547949503793651647368332813788361188514487860764306614076594823461538736044792804307853018111635339585403526650501589991992717124382706675430800436150887684864528550265548923637407488446757501587263739077602630054048448672087123729546216218953253103146747558026210363821551226061440264284087145910538102946616772022763478939572351130304976797176238112408578545661971812183971896108341283968790450650606148825077954499595154075401196254470209431391251466364338230998481628533514856207919863402271496117091735737381164417143863202895756196717996726571015492150426896007507427321042909710909857741367469160691097672031098778561235197722036246470955963056975879243015788455573967761098751315254240663697836313883317727113486402523929304059182879075253647077268496705915143054980731982093843809156137981018512186763179739187114318146340496123215485174896827446534059336216724285004108990773980895232449801437095331852364504218987265194016933787024890093918528399531162569764828981854878207958894041013407341744098655154560868480313610766647374864152621246653197751838967940203632829344827921279380900114456045259000471230967732759043676497321937732904780787006667264188500564833284718665238815899033898268516171112831205990882348375713772035538020093431694002988363384799773889332333769875224839626162136731669583147661497901369221039315583380768004606689902248997472320360171211660350600561494058261909063926213798315434835537448954936411783424922031279715849103212669612535292970748726363712985993867315144113204618218539632704212713864098009740780073457655498898781010238754391986990783913152078169621471198985171182834222405934663692506942800442393293287232899271968293024573124517231954680228475019080151110149077739999046070247701675101768137968274777397520981602379431605753504577676297599984253759288798917420842277949290371855508993162553577093581856560593285721270985643958819349896224820325361088533686830581878058158114690504264443891087723882032306160780713966121782228593320214082991682401889131203493442664075752875088255718077646480803168326046645129388680392238037417343226151486545025270811027496850014523093149953047348343282645115368002839120282302912352043477256952676365913346227550231963473865067285626072204151248900744328462806502531839331336436733621083995856955196491173590935834488865668077626754525865488853973732538442175797903580186857203722385064964884424443407748349486218440305553519837235539756595660064078644286532325281563203388134023840273288971163809978013161709706739718894150343276987296559298838449108631266483216211411665637639296894933060031933057362312443628633005798468873792748070552351874470236754268320724375761683194141966173991604165144342406756779518651081636804568849355591007310154621460504211892088518012379500346976814572817929475808107805109683829188098380584386947490769246409085156446377136976189481654946270737055495993772802745860015756448690821743620619113546301017171229835568016824619391931969240743745112523560523751068921109933040636714098927414434507962265675782343800383921840972285001546245864696909267150453638778108294626392605095816061850855261531777416460639056044467267650233125447872916171664201444258139837162810725420753092267742753795051482629334263457564961666656825420056817439024606071974702125406936596080664122058800001770178588186268097134887433359276035508582697773990646917520547168122411150634274073625904862006940893889612737384620815352355596498277056563864883312026514551216669341756464242468619970297138618750755215172398925735205055636244707145335351690312417794104203336289243696694039450639843615354690328116746118972925723417755519576878047595699788041214979988262881116190521465713846840023187164883141051563210439830519563397401339009076236041768335648889027063344607550340883393274888108896013947246818101891994616950715428053573717770811396521978796999062160239720707852024942228350575033319654641030363718186147487881317479591765911218956705927736105159593128090339441970237269795066006491034622597905153931269158388830557696201549141732075360457961809352569395934265069440614581152021216878514582318839542860933979577002493071175946297532897918683677752475656610591350236566906350504705250231911934296764835599557355519214675597174444381897901741815611198962784817204049667520855434426726270618818234262852103173524765206236734791614816350892623329326629216611714179754079464069689138133119473812825672093053767683555079798789430402657141941111667399863732034657206061810056883887738226422111156255122203993563214989639024785344944428207719071890417387611248599472581746524796629092039143023143343331635302629745679310289811816233994990739441405142151583407224149908012768814876069254848083296114674597514488686110561723083596643008394098487593804602930101786409958256178764394070160270210792181532451876375291657213686325929843292011484005645889054438029164042567173245910484490144039343145348249161254203567845663529990432300772180239320708819697725011514580740875557680077825089294045973665355849502584328360396312101615159748677980925344243518537131773417494697398803707722249911764748123966454502332707523615632398296231107206011384171359418523949168179684980512436305935001173992527199717903742324202985323712439055429558470657343124299136702320461860925941654708130080364411556564270561828905579642899247842505480293599808853378761277160345505589919790868772927177162873005062489002516017156752233560843071432416339046935846592064267625521874294128359783078811821166835014068910911985742881622351939032265304862608253694958840145850407252942912246526607972917621499360027249927820227770260683891557819072863522730636274092189873230324555289403779953522483338624638122878549876915768493186346061168776718369405818065318912357005677221642557817251972211712931654762817624656048464288958027034401762620464860150907184801756165766105377865169292118766164293739676456593700329536831895870231403767489614747980493449423713395119076281697093571411131286407168046076693840982914939690174403926923009295455228226473631477819068016988716172248677509374307328685254259641305620567269982720346859376027804195158628809336995112022563335642948200205907993650444994527483359617547923296261208791317913246327068558769342893830732338800308899171061774292548312431082038606409129230532431126359517051005355570328127041430421791526933013120630166883458178743957600192764030404905751669587867974657407380288100647312035957863295036847580628808462216388883453936459936467440491017843663828449185483074364390591023666228277736149110325675755420331033684084602455298081992946719276305048667461309083593060172609117786792765448694734137469613969520274995304398669559981609094566121743352342687572797248401041627013771867585176400739771187867358269458671091994722819377543586571699848511996790010355558782256573524660144543299855983933043435036238454550413882374406880595878809750338019720222472842711949904248674029752479058930286615700013841581169534833478047486832665325851877645608010922096210162416238557249766811382038565269028844258695519536229592936809588579032601470812114219257036597628841409868538308122705807774018044869327961048744074358964127968141498068842581411445736212804819952313201600574727997637855931717488035616547686591655811302934221221392092674190507894806490882196076092180725272668690533775595082822024997199349495073473448293317508029549217013587082483426929272610038660310298542902226706087329287350889083723360912217124127398614747420579456686509361565558890646576849112542829108447191575747423528312479977819590598208210019420336665354567175819686446708272871818187964228715406947141841604315020512050289447945623555499065962841309344346920834971066978901604354294703740331628025054106253763453856781395566013229850287074628115603172113277676213465178945922392271052145896411229849593790511611196324098998425192758585657870267348056392721587247982873849197861800661346650137943521536578092060709127809001405030426428585423265743049213019713821814845696996113404644568354223686542354091858307679937660238387564323380656810188759409836345773244718954461729790862743738921612488788352276230860800296376074203088072979909275574489207726143858001625672173289754612680966404745307715807272024761732240898307516034490013823960405796322746804997468951983843305356076006473397721498263696717656592597506351067849753360601228118197114944746656640494613072070509830625394476195866502332562230339613250835999477911844406012976846136114752681906390485974496672644234028438134827265299682969037772328881122825968223880471683515775550932146379643422661165338487392366612673827294440371650628998210389685564614660250915882143846364106424874661015163249223338505912808549044346714625932748423270974401484342316162708681643236559555606712138187201723271005431885265256471364549076203069652667204139726884761427682640350631684209718905771906297264757016460546503392993070306488418541679328207054265767722651453196456913594167690213382228128946116964322358482003340617795942805572718726229079730977936999696656205412801802101002901279266464573941215473445005170852038498327837707307035198610004754265185082404946171807577277519733278954764115480658771777926151302454494736652061465211582825035471405808961028656703119311592002587135348021394175508219902057794191633202097458362087650912820677265370805232447502067775706169417863491115498735416496273751663074942560791582243985541990928925431183304840700989686977635723170914578869131079549833807891646686133052665445773644524102862416261638576598448929826067895900138895251291871632422190567474899795274157776451659119420124482101716312129406323528496765914500221543334582837241207752609956982320555478929844523150300778634511439888200864432198654318522456447986083394971228257402923742090806147841325342026760581317886822226877767865177610389805082418589169146103595712367495738270355591661036983294666983712412734249668187640984956671042303548798601147398124416396034917876517312369314482704340734495363210934769134780343876010835287206329403500427903654669263844547891168282704207726674944081892995956685182757830674844760910501789868965674293560004250477643532119365751926175400923716096188516335684885134560349929886927730309368667281393122105004255500978563929442330382988384509255935410810418156142987332867734468306739180015467635897230129704792235611664608927029410013037314314899848511080747171979489041065696665852522390555920755765908931961608442968324085155778933546693786468746211437665846588739787542996070619328019526765079304387926718331066030609395781932817995513154407898732876700608675575204652111327201606683227143741269447932192203140123581803907800956921911395219169291793412431682664308706136236281468466387749454969058525658316891544145404218475895832975328376665922299509757246808433125684014283494814496618242886906276295629400718540148388867605397664582943171415021534991370210806795985348581152738581205676524442244777343856992613498366122270523087097765038436712187787304796865577247817458678288175103366657779957336037660155178710105741633242562360520754490333844282853989417511133989629107912450567982409304938036000844502170447722669799792162953208378811741895725020299563978406676964421176104863584330747725717003826684487611012753178555839955642529386173818389085565638353631664778595476331349012890468582294584982706927592275877395345665507484623268366258109010522698389452594627105463705165362710309124407058940685482214445080224209335288719457027431378524743792662081698888030911952847917149083941012383551770576712121797147804501305170122018279287968540302235202082616297300228444002539787382392654229949276461696381664212487733358967931431185003038844936840594918722014773676500757831309504225349985442915139634732491825850435050403271182023689770092045287362238063905155846654594682943969194419839951177550243767214178614833850266637724349002251285053361250338040577930546622074929117364198667342827515745616503965133058042472953752322971514701165462469993799419457705024563622330801583369184143998062230485423909957479910850890183098368334141601711889308291743968505559515788257551735835549783640719333267529538541716327585910960662487544627475101816453970780194018449772648496211300146596250513708889317217859162220675967491140703141139668763173184489273854135630991418804797989927112824345337763902073709533714851526525533757317755475134394697510081102260792947292468090389630174985540005882489627417695611792419236506247751605760742104823406623390364397999430065536778868963485475106474422171535049632198515674082188475429304848138151960662144476120517491333243700138131877607256625830815856405046330507411631350193396307462774901845131163319838514124990480416304381476558010920845635171465782423819998239069429418207359572827884108792424404500636658818441928977377941815230460389029835276244926321518039986686834212107297392667594579673620308519337238532875957552507705119321905257603177499303971710789373712674591157428533263877210055444217153683833871152161303175714025601978491498166555594862414843263429126999200951825105897161230964702220358844500586401684272401801028147664623426035526313112130404416535388978575607042081156891815056222745432437424700074501475229287640361069534870091438936930746983054573320749816231624822648670178089721368315221238064237040950312700906164666552647569107952569670610704216791800445077411269465542468353902319120287751861199404592478574581090383716407172051176119386989822823655874928713409763202197493452542357743435095540661143573300646418876332190720689158392058641360426262708361252662201591078388723902036615182050317911127247752423427759647378561592734691311084772485767117150129245559126928386486032933228807180209342842388473978575847111270871056491532822277325679512136678311099002158737168356152344869058032189259082973557825707807996246978361207911275570790152449051965879849119158286545089944426850937516650915083191641766228988505352568146107061954933186751059460965901555669160611453391015605428199488424530009822308526463623452630886155345838370312575381194486762522095840716223630870838125706915797802704475520714695906101019602869186870999678654824472356412376619505242990092014462221620031115026522475890295353485367146089431193378891895151367344560915548254793277057514289308920875145508783664573652170248529828810921614326717252315930113594185140897707008103132353496739791273495001699061343751266229855468640428458760930671977999799182291575076518259129468081292983142061772901178811597275606290273717269357239005557921857933194679640814583700227355185663846641296042414400564799681819737505831394364354106825003039753946083606033600627685538874499875291152482843711887076653061552300925121838085491446256259103985303814256913186308437191179987614510335799681673873474313804943259601399677530550783232304570766489225531770552480101878046099341305568516205122390189771344008452998144424169010950418420037161923311414119777413806786578433135446902746739513402204364673476170217732648831711839000517436458912517542174346692524447766838463885714746006682342167806676424768176958691476219896006666765271013542938572324799089583269491401044310531278339167932204116043621610711636099367675318015128455490682899925839704693344740266187478052346021190351248258325991215307789500627741112964590241173133175428506211250545468111583139938891759106365564842607401534201633713808674451209811272457624376687622142615326792354181936977964938879634061395761024287122883790900779770233460866141397444715613891794042710718225283952180437553036977801615901019252353952744736907576497990306322275060338212980463134747252974341620503453100751307567459725139022190199738638817283934734142315370246252125710567058404998297745621096435688995920640684304345987440502313973665893870390015530669420345182934550566735937891008672365733122068739182708560600123306926094828373004779179881721146302521165674199592253007351139657190214945319760111648810442847144129276982824324762889060561212605444539106180636468362725453522734545563835408169203459329409903641640203552410083579905728721824029487257357165197816173239093603449626772189648625038599866308260371980899499678519990282810010539831249030654656932044787892183653191668852164565794029930149637242851986370163770891557384922276864254618353181352700150115652846104843566617874078207165678727178601677210835760373287215406814887865500291635408980343944778675586223535401341836841957992423369475432549639510499067293856868244817265664093238932321148749542729243001176164262651461373300494626430810084344269538828192786006625112894222098167771250027908804126285907542769455471432987783948833036064255496135956414945043961598192084956741621154708380049653173291439484069759184396557210284577338526206419221297253885730816165792463129441184407250831607309270534921512970370890109831188408150651582077449563065180281098857449309751453143016075930134346073131959504436304894918173643752648977996403744014229845029265771743164119682469665879111549092511082364917454763544666699036781468364614874090641712885301163929196054363370640172104290801082159512896383293356897382206398678700334631533001013915813684685831327256182107326576767479084690935883911743632852075472731115377801157838329923341173060707321421309365705181509514003212092266714438046632990365891714081117954431848002657933304590955278921546707591303040177747196598890270292678871099935080891892511308821631099564292811154340453639104787574316312535238569622829810236202655425249825373778243988320700103971976599871461014306786903825036021274860856856568771685804871226818895437974368977805740578549956100577922449210467898099286454916712840002609531930531713059781736736049880320221248146536940299337986751381623971811361689124399858922361390679712840311525892745384480699370299734877468693778770093921458910806452093567279701306329477690257108001177189988681547070551905951399649371139819141585786850461242565580870472612940479462680585653691918988283049132002245342292465537249866433446691055018141429541244742625327381066540101252026124027649729843568301473235688983018502173265688370040175736686934358423330133745714781820083872398202025618275317992223978822558240548515530259707652556992075793563173189723748433956571116454686284828763675473248126975884056540168846126436407265774196226248233722836488742320130993821128281624199046948603234675540866825841541785287357154336287130826971288102572962620794451741616643010770881016502131318074137918350855990875541328512627927765178965704904511612549401353373349717149690678818925383477535238426551384648785439853330124691264543054180594926122037842288188574122725669328760218817769544974931363280699493776179597957361925059305989306255091784031504191902638849260520580656813181744358483247804545998701256731057830515070709886633348713293662775296117541895927150478985601588046783026043724202196898181369833875593592831627652018226175339498520484458100362662194592896210297283335502789922546965902663385253588093972843830160845072320769753401117851697490608250734496181890345250820676173248098998101833571721619384310048086676717177872932818547518216551250512076076762620259896744084921286019984676947873821216413229141390922155764163541165063910884456562376029057115376535698979316249157670557826729380192080872979027559273069832767888113560836053670224320722408171819995239886848289817764561459476711089248293542860066414870833337271808210292979153871678410120391773954422032658718415913110159801314793901559994042642203874572385962916492967675381314185642974876312583675171545648967691342084173851083530470169697919783939206807120981851106713073154960658934454465252956510802821675453616495230809578742660476913473742837577262930034630690735034188856543815527004883611234024941513351406149689456689626954953465538125678090958456820488378279087822546231381786370658009153394888985855716832109228619742638555361432031615252869369824096650713147136439314471974276394660917590684742744205897582331471868683463159325171753616047149843965513540178424357009408841397177502316801245936017823150664231445739512930540912003900954850017114925662015606908074680222516965668236798141530818240521046668163418411483734550034626627540577738284515587115296155651286121314458214696245493401076125466278058888904258399339056564113165364313326980583206659633304602740718716595532281341523903921353172159663518487069697082102808542866762522703443460010375185602585899796837513122012436388894962652905313139073611364244498889541166211649314707787599016435532377202794299339148067921652161514670194796690057606380523320589872838234970401542795480141017774465112070937276889381932502332104969643026977424928227301534416779827211959812154363955316114046199199013018913735283629273310522670030398955451420708565474948737029711000976702699507775619648792181258872989436168565303856903913145241578465197765254727267709116735489767081202888011273724920487403318259855957964331142754820716021728959695531830669425792441611935671413822679299898772029384786562415667147186757545208616343328640556794145884432127122507278035963296943895040371009428933970817722425412450871224423775769693581066481821825810518222070665581198826420081729124208592805995804466599451837232897530031916894188663005726625579475846842200152177283832388419217747850908200392888534391375669884655566122241896136939974417521115764907669772363131710054771858975264859438893356197917926307139030132656419989844367572157018313430642051834253164040672810316978682842203934357448410056252652955059476552006870526862635440112737702122275054015346586603741281995156125178435551272885038465513015510939286020801114629851071302763678045192094730872418645418224013174957319254849254598385985539593238962172144110434376094574912257323456795953019575425321431831556371283303315646267644092299605931346629477672921473770456016654298038115527039831723136996208671967313264515847113989808265466212700738403534206459183876828442152262192218581191461376245930613575687873243589754465212031231314638944034267465075034337373197438741266420183286526467724974514720085247223649513860166911984501793946280376219358392796480402223061100356891007442082603118187491018508349630918467079211387643495354690647407939122962569706960592728588345846327903575361872975464801347799789662464642766109004257426796063345153064625489711594588423351865821780113539667543355045760649181639876113921318506004541519503430713100052895821050059276606805431636829033458294877281647235022473006673334496419298798634684397114094641790171286627105623979693052832279892325529699471518571128880258162822727265210976123650513309797008158257018400980156128310665580079651850369234283454337554271589094451029384992130348232206528230474335886029398862560765745270806554427540699137193760439162722815108603640982365428921159056752691584005051339172674831528914662441344787666608740574812002194572658580559303396376868428632202910134009172458271757053502781791184380391710604185155187296572832589905418389128760151094049924729699723848507342068539997142218836955184391318717503458989297113708054341411412446517602772360808154288624526727961844225246163847175952232942706404306302729234268757459871131362007358111227255928044993890442256577643145476316551438278052929880697304908222734995450088348590368743958201329673884761883366906063177981884385357595769076630365479610683778629020807315935889240043197031948399121853154906066553460291614066257019502532566140001196265856791217801870908162828432863719549369696598542275445857910984409868344003258884848067986749528367428233569904336117111707318290843241357341272804324238360339289792480319123876365649957706315014736942178781968140471863095762810152880815164439564975753879325231627605929599759582759788273963084406218739930890785519738086532240435847206564035412945019621340688320479378445026241143440115536944677062418033487024201730760605599218996240868007295656254238064538742473335573456517805127727963203457244580228198804402878532068373788737695595856802657719867910057249992926716423350924374573094728257349394818442719685358812094448771864227478258116945935652624658296801416399867923348929549350636218355295587346785699174259143490111496294415047129560318615001824039793690978997559479359440997834054704452840572454473739425109207631180012143301518989507114210204813700854906219489037843594002026147617538059150641009433526116048585335422795823580110956338737511635054623931368876790300018704183743835501881751290884627788436505900239792603830141047080489255073979364992690944090048910772449975386046759411444149609166502688676323788775130919831483546776945177361488919002838620894616470123572422089669281660289861770219826044177965377349407237734129630949328188393410520651549002500266829884270871376608246218062223256913275030472559631264358595694529679197588790658077880641665665659063296997551536221160416005149610874114370609101500091584446414462381501528151053343386681487585149204643997568329034741491870340460853520119438475532415134170625933230853119046824314535674693357882236061333682968112879546435309103156163775248462009786866114857441040044017522985294724450318020885435793970162990478020914875364045107062067253486634640089093696174231451392983831753460833207354688444842917384280393714622441228821798559596229944901882504475848313762574950912968750892176109398043888757294415081947164616566480886015323959329572825619171022364462873756541408777245152361900889141536260930734221235189481769823928575522911288841298244311906861001804629065580452966751037055131645291528873393106380515190753152888644140029473403158417984588418020524638131927870963505555966779171699413646035398902556308768928835969893126977988335351059277439901945280614455262190455901572319010559216108562912632529290717301546123037934229514684972198862092568069777260869319937158425935297430335151266107651274657731678679422440047770352329638308829960169605650647643588897762509271939032394202195740964247609815470739060185148898447281364322830714509009439924055985213383222140397654433439946730274391127656158074851423746181373080566968111928888862039634250258105737158686232258288022539565455056258050994882042547403213996338979678796172628514116563204947528445444946772671485368227100502232274044228631298097535363054743984311503585941650891766599757779450058336055268604817342117935321627761602955457922964647688429593899995569625427063120233764023197188144183131770599604872149354805040962320426510983458026361058346138686862086871324494989539775301288340287244170774878609758775314667016183898543839448914569052986385246123451581786864331223552167735506004352793528399053678377288949644942763439122595705563455250256716294372146576103875161754008961857068834724349921498222041317647408643555020007890206560502712290740274294450378718526290697843570288792184853799094522231632148643234186297024369595797202799151633370130872218461725631646181145684313149326504796197691360060105954494321498022650826552889236236209100916265702321469880670562894467965899284128881614619482365705067643840616224589259547093460937895270418026665954987267700606344899184981212860364643144529746692000671240454037738968932841303552514328896207947574824037500179247270278138488856039585279491098513564089922846609292680495998855363235370296543589882818229043150668063193245988072450528998514837148615521823043177509657459368768003721790143005010064336754002140464683623754690673249663968177256822657673936069447167755910372436807303890986545252347014460819529846739694818548486844419659362350762013416938474193679355108009001163311610842171887202096310514308707348214177669887520170235839088345708476298554238467904778482150321500837241472737963245836250523183438312512621037902197017959740334185059995543918167963807480898582865822250834838783774241452661844877218297656140534339431513977623438163060476732434919800807780818493769039350269452662185760880043414603910902825938077975068550335755695565389867863088823111994235076044801478405434183803466565620128150268153785329661987979522272694547044527988703082483904712195888968023771832834934070333169038847853818368246097054049884342271192432709078999613183252144500742279598221040349256025856632618269653190868211534987008723408543851878396756423543226293443345531984367173520639488328074246755078597015013934791659417204943122085799366367498549736379412208882423805119145515226361101538156508056663457844514570702653789981398640529963645194304601039175394940720009734159012388543695290256659064605847685237698626917677927670691174693813197810561731937859096372032192442607099630528278576180302728958458625474779660379168534478239238242840897693796248675932011219209656379605690182136385101306885826522384419334341427912938200620695382497833515877867969393847489344995845246563711923909767268105380789524037969333363803990787449390647770949655779579971298432536017048919560743992334197500586946569579186669677362324990868985474133945341445652972547020634556889115329262726646411893438636952172914440692565958956989315472592669687348577162918632060735290535868978777574655238132687817327690473259370106881019581684468581194810507618896694170722886906904333930313843565566468066008114880558351915464257243685404149290294346228721597704699101810137537099497696128959340275197312357183182401154704642517312252875606275198221184703013712501993469795576243798859831507706440259961567540806144584115648422092169617935696138021482287377602986071239368955376053533165373541601962195652146695219928125660063829060426605815997462454224095273053279771147613740884935614352334985290098609550749973825539287647926376775838750771137363819012424078312859524996652056795109634546698986403957266950076029152298283627456396241683269394065713563691488368354351935119301473715286223002216573582612184892351160289700850413402661927869928329337043581528829209321928822551397024603111041357104726819700529814170034247844014911511129975269526058698442658744126293702539945364617626768520691503251312436019419262994542977520729315285868392174869946188302471466050743053733431921033415841904390051601895120772921347242859160934990919596649142896946327358092319771348240273113666854680590266469948666954963154763054125896379118337646884708030926159753155005478484903580066421367075614177355653707758707284823034442615786888751073060707134644041072325875070166965353943305219327518846179288894547730804575554057895472342704121590213871700747700054261287100590439706534213107301013432674423918412020870341390965337184516867341465633643069027336061496762862784283755506377325934137737667354924719317873498279005470439685062151377572350769929632835918119199955004121757506406873961466844381806001642717055180519161355283086891262150613998481565667365523173610401771543741758423452473891015261131047800945514900188164579478151899043669007849727734174401309394076069714170388426753325673339543416568662301635531128749366302708616612675709474305777422320331574250349378410850017104921860126392865375963399755559245136273971296050380829470682278899183916106844317033970459185050331678380827318697303145544396128327337200797919550302709153915224746455704339533155088910443443078488316754321286943358433010186436316033501739975701221120711838042284130902063674301279005090696441340158423991928346798873201361676363800335431176171204178831019799372448076448298824497862061718177009664033532749367277086385289166233633729363142941385626855776347873727786021536618762313923910836727911850838284613422308044099909730639615313662719661599839951203975258664436774826306728644712601703389513101054757585764944983049922969651213014184391087078144482159623923817224236449855459627551725460919654738690764176690220384165899014722403237021007819596672312643136683791006569155801839479734539863974226424270892683383215773655296631256856904289864943879831629386046006023882544294855634903156648216356053045889219707515230444940730275953366890854089800550441530808723034596157788731247511596875563467093990354127753301312440054240621338798178164384076366578452535290093096772203634722736481147402380248277319287666402716982005712470120785400234586826846433520964855189539357569151501871517013595227299736042472292638535178323249926786337482124628005465273190884379933141756904655103105555872513735490684693463518575718052711318764418122892299854535104333868921944277616271226923936809096587288193617075536263874033793935970473782301113268621259074225211489674769764423149130146470718720945473300669756543570830878931185229317433683180902882513806750412780102689308089199446510435469682273719030248136897287027376382292208175323724679652782336933784247898699858280271927676343680176371933794993422298743470799377587845212129989689949515359023970855997212781571848380775345842886086245614133481210952061747512332598037015657214047327390586072697781929875924688730579760730511467904089473719397478402808724401149247945034899275605016747905408537979757295982426360203789936882475453314952263737813764324294543526316481801164789475626435668726561710399976761658811920763269338744588051349800031816671310172950726864684900440154179535380704639082692420550309328111573605099349660422045693680988691079266643817316667807056211490046746638974038413907067297503359682719736024364659416034259959765211597245976283313099568817530557550617659017777122657308824638152765253965940669624299894938585494357616841602494442450054869170537558137201761509076782139340247637022125451066927461975003642806230501436570668570574703058938571454967789805138003236310987437537616725896560309323176317111036196010136383087940659375352270525910929568104043915424093608371022928625699839443999166085707080883066452530036858070521963634269197008699560994072362314055203764363029998966875315860414689174771365595288358956948949645969672622034395321214517525940402427470109083616675104326185117745949197718362850583083221663769734328296205628514913149471862685858561508162583303808109756623792964372833702406782827206000699176096905727927632660089387134543142444833279467327968859569985292685747452474023091328011310858403927376341064528695748643830532023180958779760642971181714178225108373321769508272724043100804519622720332491627731354924265001078248955474416070765505828030780896501560062416855292601443835338527407382991783244258862255458440800167393412606788916482936125107962494388808756558557821274971802981312073668721895401201256944023605443958281283131096075127288304945556049795582077664350205188071535954932887797267599775160627506640111649438791098993259777442645495012367117831416441223614191052299670694866340224415833367795113405677154399976467644415282297961539301276560333444317628504192631847104251933894533830383183846411058886235284698640310271251358845612326754445498548511521974692854878257967036568996678675902363348322680181957252489664537139946560439573629335128137717243471514121180374360408680791708157545207818105503766807114455077358839539569292753475284055139134063564255495847920658969501141966214435371483248607123727216931988061933165495207384842872155267267698202741635750963803394302740098119043233905691771143772553211435780567880401530628612500135272792130850453827253108457907624167326783091183689870674751900371282147014195286285887029649565739435234348189360675377054790334763597960384541820190416818986787548115793308786795735856688298069040027411910282610787273131552805928763591953601107098547493850436198373819736829943312737420446731227392664432997694492717287404735096774195436216508449055336236574742563096706198276217414305491739617296965101460787989284816780085359303384886498375808227676737240413390197154878610215187738470022778884357501070221707936492733656354587168452861751085848745645886249885665777101211662977815581940159203431152144591572368477024449716670864578959206788147387795134438782676529439769073826365021961879094651166443781894874213168084682332329619071791879365785720085944830301318682392900694993386028396105122742962674304450793473310381164795050449336414897692840060334552598993454508867921706755905656089682896917075726998892491612055905237318464515629522997625358145715829556726267047789977706067024940261351364615976537173002951557460142625209178512562418362672441290702218532267713879208477098634613366359753348887141268409004958504655063640133088838175051540334257535644149188991945665631782737127344030640939786701721417874929747760236150081418917096809843734881681083982074819524878118573691499706706084254592619913772933826888047093697727454221331414847281254865583180650336720350252373254240040021661913118733832934201932409599437288269526571814671801886760127954437145431205946042090228524378474829203786860784412785376697322224712870425317743100297523013223959033177088440643991632071760033173521068907748997477724566948045708136428064429288640836900333941316385021216593402014442042075206810171761570168943087387225583709312482272004021611445925718628856537884578433153934892706397624828611174608412974417189263634425681573753329261489523046377655591468178002710386320885170974622099847415182775170260518333863841368673238077505408589196845055126614134267839491256746410595682718224872277653636101850233203159102562757659008437561476847099914154189690668305662782488387416594923014264216595420022633011154680571440714967495957388214178979766458941366074284388895373765969255184272874602559303453217526182605204449147210561785847235199089519011097661879070196074714855980009076167851227262413423219219368880328854553696767514761946700183144876973459283815438369338205242082547207970414642136841054404741286546858497375219779479827261493402729522735228422799441596231503390110414118557266988648949121034457878789055444448416593424176345699952211871218911533014020885596381916832303238804750062699020777519878191771051247439943427566044864665246376098382218290733598551368892460506532488320800194163013936760782950924254342422794040860999183068474002453856870975315263365079614121580684017540979227446404831005783279223502688500948603889864106648297606400948256876821957190705528115242693816835060020979438937193453463255315269079342420521995253504488750130148373910569514857430231006429750390103102021748316591113139051305459987768004563289297413398060936414733319672762101650356497349230323635900672037218177476407718626104182768219384990590437239778178433614709380323819604151525153224479690865494611431148056255931059822893838033839613134988838003621650252251049459899167437499289572655941889695874131882151015477326479937734559668766253329700682217045195649838456575788211640832059174056229647666928493605630876189048408212718796707021878887509839044444651463711683044040279729641622396177378265559441866482673250644331951973381113708141961082187934685036565324580328196307660239766608479434115561659988688370294573745220102798660240155621677969517921181064210820459539488843254682352207842174906415622604920115874515766535143672898014616083198283927121416229527763305886252283255274019861547244829987440456422362989935321714809057394173742807362805082672536137542442392818694187174804142391656376796244741510325963073172836759164105038943297291994674249191978561406809690225174186658250798264844150260176590874543291819925742108725682530286053449934725987657765966885606031886665719356193703127308222199960366206940297471053491238429185701800674573165551384624179290958400895017546497722095700849975276780575949237290129298603720680384363096526128554836335136049800460540872191487634762986301559867078830556963100693323120738010911256993904638465772697740220116488099518089838826561338292505888832913714215155896361861332100457668054026592264385581519392944251104588866490338543177544708677655457512875014136848924106659291285612727391146499245560328704698776600000383203424318783413102268651940877031520006037324148569204321055959903100594112098886790694577530743510974623793288928421480743051360552099204441849137292889578934812817422384170376845641369443649703494845955723468256250462932741070816219116430617537297424849270544141077422931263185842919346348383237522977388598528923642788483292794779596793685839883495189548139606973522010854627646155774893775687126886341064698877970848612821697083658288663938276698560038306352421381880412844745242105947765338093418662244979621802517179533803798150455398993384512154394962627228031881249748290918078474253156599681975032283639054841880114314807562037494187247478823424007524355994072982838322700227854004657354029608459156767145100235487269539016729081080340001644847417918513530532464268816232529753329978802746738131184022810851160057695420793477219637835321402886465739725259095141944199708918180992905589431052264990924378284010351939109211854085344929359342803707030246843493675458936408907221268095239445537479302568292659282150023798042544976841703776506704538685544717005963405354366968998091723180425698431688897386258410731693841092243318520290964796156045282230105760658021915828448627101314409707759780496031120237102811674482079482771722557101434803884710465743254172802347155325742301415950031220731352592068142257297953118228102562027962075175497801920679560523629902966529915377249222806394359719766004095998916190520032915308781227730181151258309529083354707779112488127984779589512909018676871507590291382889847381094215143328558011224724010179371822597287648513316079225314535772854023308381850679280605711573663521877026659160813812843344870466875611608475853851194464713876319626793571706277175391168036784094639542862044992432992200175721166721230880023294696686227700557558530450049646619216921045275049364253739967836880444437835466888371113371449212109506913751861722476787535320679029956178746886408896633808170924736688351668705184413072690523511010807000451592850071809674891347914026733709085322025662329481956577691501443875870527330545890616855910288851632979070628769729025827131447440141485024954261393849378300785149464336748021694043920716589136993221783636073441891682287486569635389011970855284196535032775288170499481941843966461196908225908381695815745227730517024697351012718362910833349924758983974227718278317395551036433354630059124415452965197804068065104363791556647355234063516231197704489619592707305198411558219629564041960200970726223671997796766552586858714382172087495535844929461247894916759112198059769168396183148857894275386929529635116950327534561797033593581098672346864118719103262782454820077605420489873590792723631240562568377165104514755391631733439703428355588907001928831973870985767637628931379770687218198769513506187493467779559906624299239486693166002491489772204178698918726072987244459130114484990702692667256753720127003279459351232687307374926586840800017232994100580501092222693697831598607724153671781106415138672394542871422930457541915374314232662725253112279025001346517054517474382474417773003708983517176096766848573389260634770751974746439346558456629920758478278112448676536742730898030000975937407735233010639093890976276489454104151450742073887340574386654934049965139682894839657057558748061492492189289299636331121329398564120880927624512294555887982872933895156901842426332463354692518144849605298352169419779675159155667605552967641082005516023588161712784853269905618582578850894023824391949153168700200074541345134159411554601737949485892756474896258927866897529935838252264417200063564635538553409886533598239970324910342994756998694391811325987733420694250271010607786763684952101268884960299908926264826028895817502379590482620861899026033587388643957969357180277736516488462131534359811923592121071296991951323709245300162873501449063910353801701107312989518143992009741491499041666109070377531590673981492519196898733303544447988477583018529125955597536203082758915505644388927893997913757478067168790465589345387860436006658469958009000671633190291429892298753945949491645022221151664967815328024791097011018264185452314266589237089665072735883178262798059900134606783224754723202250116552869758873702019579973904267083898354616230008319774197339096496728424676905416309901714095015232473384657200108350175603727766918544451498031731156322310303289960158590071961554473333522482341319938438359638257516549114734143193409722309832825327255650058982544405867457632516221739502643613458684960948076421955999776616752215708032265793631796604482979028710183020016197730035013508454013214595622019336995605992178954361696181326007469702048262388129734284510858414822907853403720387383972444893030450910296461315398312165867066605905523210823536769862831572934689706938511243081770792068882973735993682455954093750767303113988506310553722324420470346908654227055670169874164142843772778873826108560187459365359785106047225325730069696053970005748628377787550889819460002799582836466141696952571281031574792375218837006671660497571844378073870968983178547352201387111174073646855121774344148619269802954204442203179833950913823476090707283276320554672366029747080480972921683668120308141359470598107779390258517791276507265845731936591524178058884432886429461406748271644741960060504060106077650894411120539541248426055536573782102948908895302484405557123120466525856464420907152785011661156506696596518099142126460621655141749745502493601255449521626417932640498539618035340513879802874276774767095874967417928615485905872761142213319814253141296977775489232462277843855038725938917665831294881659208864759995133971329791360714451783251998486340908126841642491250569436150834398903217628319670074063255932758528997937046466487175035132881984076171885892964821730783101960033245549600884995311932834569735336435964619298731811266541915377797881890269015757571404741052190912817553475200829373926494750750026136509158683365118497419271333838168174035808559330591419354639447508829557248056010457411538018523561161731963037459925077249694451806184906231259379448913755941286969306182081723946527113203402883916254011433720032059858049829271512636963718261542578209325512745585653676370543440239341363397958280442560823129947676919322103296319618208426294886900062458476761179895028892833327316884354389731663891073128570457869022138016752073803174168529277174029864327939081625037097369104830305817913079121851770019861654080989109207859658494758925180582150398368203293894109799401090458298239621690231224149621156785416384086504245308363978547181519878371955038533278543833798671762799308246442368883733197320792195487026188936335249737088797470402035187118613568601970954477816815140825741612699568852218232269095784167523374722667669520032449385593194776978227872055371859198750408855608237178536953301063859411703252358089972097622135334185890888268686745733804144248030819058903301799501949090971687722594687698844395674400132674021405659561901316006547091901579343625828317301651138949659610550661002329903370743858805376838929203061556606112422412834784638279808312454744235261703294948152704817410094499827597403293654154361883026742050684416997233515861356141260790661730575415912429990451955011547284169918938149893035924039757576181947424043608935534643542051888811814810007326370578496347247726017664092210618371706817809248010195067528013074083548249604975624120894987752611922929681432311846006826670956969616921966902418258236274078403862028054253014917900559449876303665058684598474356917331845459320751470990681469469081982460768243743359814910248662409279000232595156732895146359480744601426221334726551708739478611672006649654373679325244024855809903449332277931467292474561045378053185531850787282192487577430344755280178906985587375545271250776723422496656873205164390258598711936272857651720520185440555410607517174870182367332943283455431841148765150940026612369426512615086912400799970307728536556642252165337895836418527848831483838583010092072660090041823109639313809448028677781152089527371738319950330720644265957798239128856641130790770833546913470377293683418894473634103647505603009600376693161847077212814422853042017941978346743268921686000805793152547220499695884929939205904251852215954361660362528431215412298987717966174037454232638938766762530557298740168167926328446698028441245689582734437413491925306223105187208878786449451073060449309390929698679472735827680000586201915136536431730292381109161068252348348045272313200828633204255737570896275261738679464606879555930139242411194186343394011814887223242219841439237725221284997143111777365421304250513976368836804741153943284770716668097977293574283744355258512702140578181419512833241066416037977288413886544605842452685981987645149764920842601681534831656891428007757320228170255291978634942659243051480604448470155961875624363443643567541353836336181453516613938141434708254787914055747348283272256748848929509697071688262829082951818805023550197216692951968693535049241622021910195773300776984147682020885468570145508193517398364118582338380537239312802722097028993494982515435842672422545124526210281517651287064903399382992405661571369056603226635891326983306602574348906606451871989190395690138235066124747491369536136311315522728254909536433033906751269739527033702541075060057866986026884295946921235984372368990703492563750107205482932695267494130632211660860651483023976084555989104482981179373497939539325325510174543856363799557410337528586978979582071650238440331888339161969415476702552570020606529331740334072072819387741205139413651347177940036014331106267350526261633489978204150483003061240639913225236567025233075619621523992246850327251581467760674145065274165405054122095440849094311465336928085965852063944719232529732145889631063889538064205036370285640825224591177591077812876276798915486303896717956346168615774135573004266586773398210774466502220056259454052428028880787290556786079670155382318753938323468551473759138838378176229548769955984810910400663245499958803275767882401838308416203077724346973990860815785897660536732877623436505587878149995993463022688728415682726463774764611681286165798105776815872015894948912128923279130517799162209783313034972282360641768156187937764091622248819099543824466376306373845946748579885085373815656002426634503299130156545738250830864844585922335067945741040393964697758957688326084191501596360872076058234290719610180805121401957828582540706189303544404904899481970875471866450895841871856356706831169214898708418073791568983760193047681112392004758589955773224101774585536788196717603852183367958325780210758545987392212025651488971057477876316125225324326089762526362556666627695217966503704986429853541405623461131699017826381014047371829234930353055864323678978081006197587410502473436793218355832868416616771177461641362562389838563901154165685887177951869399929183083137355936707562750084331451851094535447707366161401420281117966368030284244572388464441557473793918998574163643793571066856678265353466971648985586738313460288131697471653867912389037003694867453725477165782735620180302673208700877725927374956543201470225157120134308006708281262978120829480571477125154327153346451245770068425083221131937983838793676069808938942520441989082806807206595903324416352390509433220059991387345275470332045554831488651755052935429415637752437668620284189847875043186451279348792132488432452851168235977481569727689221121271754079972554113657099868187771985013614763022406810861327938004685512498660029393887210353941609759902350453864405878629577088234600777284591575832330377292049139141949200383199602632895940028775447764471529478510396027604139821197163347990804867553086947264251289679774602532861620589090502464102162336175980626011542166070167951643587919791409520100443679015556643476009705461704711658668787156918569110568392639877948087955146330430539288031486986059704951089504029168040124256414411706579719256281418341222017991659808716486508759457814603758014051047282919351865143473993988816565420698441416856140052315353032455365991398802794736791709724944041713300941242078705695104884568225837698571824742082310421233656395369145023674721469398542367408016071448835317317117425755221419467908619739379676866222559012108566298935729652453562694940580823189375745479385861302664824866201222121026452305630967865721678671643185979560690880735671137734912906958385039900664912506762320838094924219069607266400005978755627540981927398153868111851886961107476986208502328022898535969959676504077289890282883758242444100684276302253284911632355989658033696670319199600135301776694302798681056280876562298176447486794808363047807930613380302390144895101010555466156009951854143158550984840540058977303206664596658893974044167769161485661794916618912894079775309049294587224252323615773988354373445993200304990090009390057409736989352069894652581813062905022890070300374179110631937626070316742958639648948225626663980399333700398958952365786733444053630978208397926703423207758863608858577140530133864748593972229056213569830433006391936350347905524829639877235939469893711344256717914565915551376475199295975590714629430428346466825108974956665934752137007274623045743693535542278487589422818659622378426310287555748837381896265341788797240858787879272901264797198245582844631304271982763287580451857008381966567946652598720779418232760615443637734938324739367896065681382299153267789706672752187261393177736403429994923401960319195319015692248149469954395689690702992480367035224780650419326398580321865218399641343239072693172008796796879615418499846683753451934081261585562907386017555156401873013465028953993407106948960128176316771239993897854633392173962977819584826292131757352702361788776602217523719418158205112616743767228153305128073997559108587426213283252258796922102091603995316437150510688744205928823779889934581829368662435235671805464205718860914553900125085766382353428449280922833025078691146085184720711269031291046730522448592259704078034938547514870063169573091655673910947464545617468081091646037890124494732298591046287564916969017446658841769806149269709194562212223862886459190859732465562925930795749780947956740664955794762234008209101424132930482754861822956390927606921023236137762886498406976843605218846296662550956794322597167074377500260057719225353271597702825073565429826248944130540760206319427552458930270108565422974410030890838306083276841232627079420773334524927899163204403377243103912713018406739785030364777753155991103887657587190042552435504558820141213739090554417631559553674082766351372130359322891254730531738439574999886693275909589192636989171426128484545920291001825734507191668659650820831068535173900921262664125300992068644885470376270760418350750234467434736690242516608785916164859198850190172838551285438014793820866563534571691455875557877305722121052881677538891698608407204789783216861086144424904002586089306038389616293532157859133939873277188121149775062877140946628444687243789561194153446423303490922048687764883568541049508782266426248224239487893484714898338805957929857277721094997609397328263839634934880682965921844538446056765263816716108677344132221904389093415549583251925700261406008985914736298603396712876953842990473327294172891634657828216800060072529842181748512520487763124495192904700646893618018891866235538482274951468652498131405232012951069427738161680716878172698799293749176930682962272766090942524199830595664906462399625997703404710848018968647226284868800312285450151447553521220845084325814738228066485625918177088485140574336196736475706060084517515014045741123910687967858908842236769392700999557679877898765963011683937829871532545131743467871364075733693180838188165998936307839037805010701871072198388498037000746084580247422604528968805117720778668218949102758666338373501375089329368648185953015144661288766104171396504446901242126305505653881350504330880211332650564656385867941985428435112213723118728745378018038720939616774632865561705874939300995404213626295825194050214466198801219698049592683528283583385662328353689777911080215643173770727631708029714713467378118647558350187175192916200335126505704663077639525712413998180110974969335878055958192045993022953198128970478892642100372972187619288176053507367655731981262418612591889338177358343792811905630724984180683201676718625573993223581583541921638204096310424794427284134511847913284491048226631630105124105377264577192836356513171833943932660438751971107037283978411736883611741854370090504411151222491905783268053645645276180522306124435990422083535293230155247449837035018664721348596848541388680658033981834047999677709372446652838864730941858344848011989142250732792893909780551251746852781527878003460205019738658911428221924076989355608301927964284077326388283297453441119812410381093963597378362085027093489422118036046599936397940664862883493771009313961581423950471977163205147690226294094928208226214711667058702532658867381390561635300413168928257419345706861575003276773667823765478637020464143296650118951549985890032712455861916189362328314761115785745811715205440951184304015443116173589590794693129168349957436615376240394224928798279416567966428762282323325175214107892708888462265846525350542366765747307408049489317667112545839256869397154312711024256544098683004038436760172335549500732474052148307555652176155288462723872102902552382106497459258645685293767238314712387217099542874977906928458456726653996269900947386482044899308512028096930180769411334988446070049409252827302819127667219194776839073012348986779832009269427666986203079298788538557057733575595383019364626835899862452299500490169719871712191988080271214460612509330318481781212545261339966098505969596662057202780652947753531390348766732414538460022801545432233931344189822039152517503585369953416824608570764438555305534111182843239086582780146005284496827746257275408421241416865326872402741598566855804204674101965399611154548534071556914792222078591117371433961213932649655986606203892011574615402275027557211989643960150083165959541433260857937467961924127881702911451812879483156931052916632615656655302932433734294185245303044280569306843985454855741995997305835823511195400068735611757935692431473614953969987388756012245892347873262155730992761009213832066144466836781828125899547638747141402819664356442062809062174757347032768458438748372706054401323051012740255878096001497857244279978125185035820764915436511433037527570872407878386059827032763476664230664738954451770894386482987745236536988982247172688603499455190948152102707513134224047275763816503684541989897031294231734828397277775463808464697765097508954059650670902809642894081513135232227509487045349352883468205973606802591840822002020954736149644712017109445831254777622602715495964063846652426400243665269419439955463926846668163538255960960806260730496209890926469699528909467004922158159557441293781749328948101564617878936992369928197250123889359951829346873993096810854733829663459389285989694952684411289967875346847797654551193764996523607840356024367085945907124748595650357854633798284629012898304533060290648352393082884711614581800497470288487360057853810200036682889460436977163249807422520784123804994148178175962324737447414335263321851228953689166202359247585299134405244344558314404056616255421272234594317519773241591527178148582698468368636580464203143374163284361294753717696297894323906096664666734192107336604214377103243156943560086193596884397145728732532187285288938291119576477744594943221693514394390189785456144975499059759311224797118649317480554666051829978670104328499263732580326178981931470889074132366553007640246055790523937929595256309136331960132223041523709972682586261123046851921260968439973829744835261431038373403818167994350164046924147542235296308445294284824669241777242365104257596621645852374329856797319694757442787487598957651248544426434462362336058741990337536566031937632763564358702278858446557099545912707197080759218321820678495326158769138898791620199865652479542780544811703667628851804150157632213060966973346242529077683969705067032521134022080532780578452533916302455613497971913605112105440712478035698759096879813387073185728385868471651822551570096686184930894326092805358952149340302056401164949188599286121844153296367939363655609979852388092946003392944703918204387131523431982980980601349049103095798537090940639099198634461274812301543740671495409030536459752271300138840883862187044017626884056710166597833057870293031955500390873295889777440038454527622923453398585225934736626197478841239056028399364295231775715702096482211826548522589510349090360503382909134279328595628151023241707882910408868935992627264476316556785684299318509873978813189941930273306412388750504781404266220810316052561750317299894915186264512312134228373492316278934363860944581093403180882323057296859278574236017545109539878841010868454363177073343587432496065253119582689422871996101810347908351670847295656299727474466236304882451927153394195678632196585375349374827354556205033099166671631854593458374835172885757788967150626191396772074817460388685016667716195408999189223040096619780123311281646083988996498673757391852435455447644696730909733854760524956113737163955891173832518233909069104636579559128824023338334983323221947157981470669690257551287325156727042899399219886173777142641233306821523728905329492400903922636898973270529482325764905370332364643662181861759686979457722035541999392902307364410187934756172955028312047452752474227672356646945829690475438982941442854984865948030357269263397150907337316821111428522744954673042444068784275342157583423304408027009854255474620878544048690433601394751264058343191542891371435306488779468397789325218984201002005133876433986905773476089458019467548566498152950337870243498541682665482163812058455402643258954680863873023089063034989455674108338987950544215620767849921797903792265038943378288249298217700958722274780711314472032074212518533230662951059583648276290025625430565772589085404338542685695683524875672001609391619850531004880724281489887565415054703425444282286728155975724990605925488732616839960474760064093370181644273265923780785981864567496413856367550153328842489585364950141667437079717552736407436986454163793739523996076174971962874523205365047274848999540913244989476227269627773273823866671119228620873626967487256887215869970043300796281002719569600461495988843546617977106118402747419410254920211166704142781176460675472468799346111209113457022217863073955577635029453347697795993398538721426809117880836087826232020950836026179340635114378174553992090549130333415853098445575274669017228047040540642413280179363228123600406411631685739142212338519003297159740473550854532201508068353436855205391633649308351684658586376422098032008098033498120760480868463114823413960641754473123952357451894416864604808572164079729252998285380012449386866889479020498719219349046989621460039844266716962190432763243590763549215630544833647285656099654271863821765600318186742571296246668293852850097724283026407178668900092478723943680032131329837254121982766042686289199282245475185985035353351558021778693029368323948437555516052860305104298463159596410747842994726415076678796405880456987393956451272538200259867442482232694457164678002683686719673838957086731121728112428524641009360341819342899558258970345658584872674017954120718876313252553973258888621920007944905916484788460668443454397650769437652364221213898138864160262392546567116606328660085161916565467491288667576502979966651319291041496806191470893098497116407546674891612599458836448364149429265119411604034185480216354909058105836204530258104375950807767645205250982225953343700967597828306977064579334635246303293610909286586890466612290051370786404543513198260348778711187085641740317663068583676722247450276807670459560591957583533152507070527520143050792286579185953007721789767996543575902505583550259008610240251013565383798955615468268954825177528869400575400706290354235479682638836532771082079590537454198917294181922416331865411047669616933827598702463074342491039028143106616040704769067749727634194698328290238407149880575943902634854064242106437447745311437984083887034559021456060808659305895636011498411078182092620117524677809587074062109626324850941902991649868682477113593806124471302331325143031485967203324981710475955826192012135277134709407934657557034870046298142237860713778305430635937808016748262829199734272573003602532031100710005199477672983649257115894909631836213623562263449902933462245849636281318508056209476920842234563542153244393998259172285169981862572068391302163368182405459568276282879126489085198171405494357029716229240672981401883854062738291698828864092206144565321778520045632576481692675526294541919218424047805383718676040799683944840264086921837009178605370139300271318882894375453024988451933616710773084858423839472713823935584010427484825866194205399324466912656088023720308576787518988921951801221772000164913540434145442089538992647624377307752035175815596996443184854040725003886777416168943280853027504880634535528775036902626907604001017873792293344438976935502112061666653772503033400872763714045869147102234164423932927383608282924819539509112615380637548786751725723742819096412583775377907022149430870544632371565194489834842485361668620413107096646144605533453863763950799301005409119604991634479399447457984585410672599053282513254274810703504164221098298790974814095094346174975212320933556984833911794308567486510805631114180895844743426544386261416366644320349661712243653459044821715333413415293416245882607453719862119751682311566911877541939063783911404707704497165162209099629478604340894171897371482885797846416992748872637587838797599130364064360939703376989853216936756953903601762891022684085344530493244332587131829423855393181654518102935995268903417645546337460305125946397234706188341919700259204010650742073029235273703616803411287216220448058752093787744319514919306033625387340331328709278532702767513009368764200114019000799705364854530487983976049920078636906264943908298632929548500008832665452661463191901945028675568890736215786962888136749371269272148172591704568134249311439234406224893432454538982815347371231800949667041476687603448409499922838534189591681909662491087028897376689867847423257456034354879607767361109817002371025964961528434468429131521736977113695970616186487649117673021907778244818920401067637909619788652868830441516081875216303603484897391498098028936029584509107662287269866754887983997220942537700877243386564528424329091013515748740552335805092508180317418513574981099614105766771222735028746472765693671188814464589449051119333385871853007601476630097642188815981287625017286113606894815889749422425378139050283156623792419062362783730539439633205589460817291613243334063365308364689718899505830845648184846189119928591495006052142147731725163724491489640008018374383989708522832937469004948383298549192403625656368683211814098635254318858141814312053881284493369761506698863329232144947923842724603963836676501800498808994369402392343978854546226999383852802923437387842946333366223143224648798811308215271746111297009574225187432591300115692407602162342274655499717070346706672531115340547277878054810588600322814058123772485500901315458027371728065773281633068034130838510573253001556164130708787235572638171178236173767733195419289240550956912302359922394388146888324705082107173846154020577777763331565827685955974115606756658991055610230248115846759633294596733929682438844471219171768477060402595261969974792944917786508233132292545754096790583407005283156961560952989956406978138682518604878855911414373345129396768185305363187806955569676737038686796236973616224062668756861851465287102456020204436258913189489815015175936860046832006133996762996828708733611101123609399090145332160562288023050899673630155759352500263663067299091159806895216138615882129214232685634968174166282378448176275149651116800998789437378413526652951822318423116377147750220106430077897278998399935763025873744271130200982932397418617331680367464117689801473880520323970164091179006850174691530272235442525841279139446905446695401863080917766891976633426562629011985811787641364905747130515816935170964936074956850034545469191263226807235553735988161621220056514634771218743945250848218408717504159911100260183313093705185671762138246891408188567489966799663049961896848379246255434005980907558635620029972797129087818344383549846367544048471693125330986161323838488061721533556568914939002865911707686889572654714652972336607745743606295460936574286143723661490099120806994324040941935638011902846248943755776593393271263323488317152818117644879152627137460514856401765038232476059424449070082927080429433332194583209007341338238802095604615664146621061017001465524744051392765193987429074389856810011498894893361293570059208931219159863421130370807935040954153898525450084595045024630348643212380898987967790492422409134273677277416244731299799422249824457721525181434606930386669389873133981573737578543743312632224589046882316399592051463378560620979332096604831637682637366741869730491349872232355568007439751137433703429165688362888089965707765333687453016913051174726723830710344175957586828128258358874882231937894059947709691072302144614131940913289882703838832257402732253149977029938309152111677705217749726607686672191450621140352013194114452657308207339595413497786551691155020788054041096803282469553724831983390798134749382159632880071554329043736336618579913025301584442690435227282168253082336058304978950306963860115969082712358429519789805764643207337746140425795442757897818366281365090730953497335734593265615164678668567004454049105404767751187396136330934886673042550619852719631436008858692029542971508992524214073454980662007394849756427018461131875349396469922452097624112327708975587382920157513975572061660213324490356943782038103045054137264200634824895970782669495923601085893639638038221177624700568360704430709292662435341076430841548947463643237713437975231355518887186173724280927990210650350404116079643883494062674727280535389910625251539850347963663573755969945486684794975936687438440345751081599631283243496075687602784354712606902116236368139382016287960656713440872910803482610945148458917459574406479563217162353116407276784861214408542663828656460117856408511064440295665009861182607099160679702728296533910660523848437708535797800621899989160771200759512644728449038112300009459128622464240054758128979287017972670638221624066937027458885186290299183298943911942330485254319149677416021526765131064791889460711926189645321959372163368996289618180951503575909148350489921115685303960415122056388179726616740370093338060587780785019437214692663112145590517389399289371899116095101394789820398912406846222385273772165035554934401796559553250229502933407940549082278726342159896832801607594608750917303481114467081992821591348012356506917016135355855011797594630105348100291449030823648890507227583292954003017971916095711215753004019206422423234864297262124927047013184112680254713092732635953879793100545814757098088830355291764732625257218822589774750799770608878183764973781538416476838428418400594275270922755324732092934427152406330587024049601735724550084659863301341183421634438063896840463520322482346773461137941402806912403878702155230307356001695183265960818992384140567650932373878247580695424873014690390721350659938260113557463077324330620196026759628717570394039225741752361526319204848852377007273343840897065207832931851078903227126495907836308869067599392311667658890924173029526846408905775085713377803756156178122592268778957163542610446435649281399413838544334359582412014268435079167748256541290143323166330821493110948236252945398401170375460118347384549856250452841950783512753439473958238947599697196618157382303014267411312590936957519767739037700984294976880360864972842936994140665600230892058147263534676987119902042121427349464557573491371819450737291952671365554435515655580839671650068717077625913781457571332349357659953348221824131875830424334078746184216210811338564911020474146661783494426202026518382371799885599584750788234562759657926509514279949106695903803923797536137659504501227600002572634739743211936309477825880338241725634027888111749614530018087438148594945919372143484183206491513118872960927284990971752184078648522342569262487347840727654314140701008256926017859011099376715557490674971856781357533799036760345299283844680872832862492092046624000627186607585036111232849091740722330103030680478735851454897304572565876364229540894312909742644680095415635248452030017610537756443598697725530460550967107483008753292630214414777905992839110819972931582039240392880042695313770931356926099489280494378338281030031641368260190739538459832475611741061809367286476061064797957432612606993533354441530478061266596359079426291820754515511920644851433642378710074421634502139016029142867689543411980271263976199349192409844720355384572636899364862301434226627282377308311946173997335490038429892450203349541354965670236859116160829206060362435087147634176726496249499107270120823838385175218322848338990105487105924139812961436952649283559484438309628370990675595778070066452032180551405851397300130211143795517159420928688268820046645095842707020127558446752272309317067791922111001902430450732382223839467500696872566766247149262051663413354465928440040695096804361996645248161329671090352492088312955388709611924655658217230726686522348272837570979570797732409611607985713595937222485474853242380843366434741264351253565975318860458414278377200171292003524671337428562294642482950914085755681187105417344324029300884656436082763007666300224375162210341354449086362251259968242743774504605936492675066463601999530523852579893150145837197914745114294999644165179667590944506403721085206807430096881462840942112710139656008645558943333757486785349661421335973346854863500057750969765844205650654266681354378439677107835837969647522865640981925298624090970133243314968647204472428872737873054707124778696122168071406314994183754138325528778080605231526998535463088817981372411039484847959732052544646907636859168676887828260379225532532965436527516098686739994000697330259465937726112148642091638822676420440814072735030613678783878744125739881796215194825411781823207361071121263505163860020033272504175764806365286075354166427156169534322428410947437304175201191892924345591467810714005789489894985230378225460082158329521478868486058838542357384766927798191764859774052672908931617642813959932754168765044138404604731067682750089216041709457262445086021929518780674451252272077806338116885072856369704911409674210173119316364424290332963924791299943378642330605734111018754086859987457869101374290831039324390817985589877179455896247590130274359824841907641104749152346475988539438669306551185328089540380084569388344871849135220732825799687826534019161972500765346277959026235305870639641155874455366848921389921906756213496469460816072612682726909535204070809840938078893490742491587382718101239439295560535740169994537405696990102695360694270192553533922969418250098916869569783977995609221617137122425120381908464544634135995361109247807317460123988838121338084149218761899611471259381493955727123536397899330647723884026448246683526018070259434241282581062619113437515465778371723997116244869896833740472458016246079700789350915706781276337136116810444616522402815680259124579007676733206541186884329381753070305576630316085066529890490469537847999647889066188294632256256555707993865906356711773585143118959164589064228869252542164941806101050656525753908575775402194557862345559826020109238244400577241960202914692312052961000095223303105597318059945725381988689341347179534852911730935792877446891773329567500987263859535520279727362472259207892531074279600868170894212134721177727686142059073860209447137815959401921897981084886932074259040890263144012153352788031480257757244747394587568246311576853224310053869036861942635689366880593069845555537243353884126654490170716786217510821374498118515901288469600561684819755672925829862551041175354363590813330114138207100945540463282508987479700289948469534538484579104920884846623405865869637373850445154132721465399393224119131215164515777209313732437474693846686382403898337438545656144359206450667261722844830576171287311512304938925893642402988339024217010873390154692640781858043585227237863131135016982022864324772156409056558921926744417624020215506699155897478015216601892478150299559741514147819527542506906487309086380647258581137661172350340338531454716619801721809110931691061092360983000397160432537925381039644466616313286045794401467787596268042843730822780152187437566824988555127217259505863967616543729118019693566291432738359698317235260109336843703256049516010956471653564610929250621956921278149783688289801550962983055158906411220342896804362725177097923508498970350028574550407537610205344936213214643215402475908015868566340418990445738119879377457937720808600745577989674340613414614324473076450783079919936626417460723498448036353643176806709124773330922169942267914227890661403425019325558766125755922048868963682659396144476282050953099217601767711802519153645257876745549215276390983111166686205686089043942757305461512421911847017083626607678904330411510252656031621537044665676944498319569340030088399374117706468427379128400219881941537455506170015165194780084007920714574196643069306597198631575465569052338542138500796304965703497475755880910251590604036515903147916841446477352659894137614636540475404047722692473807566279397434047843234183784158938305307735636620062399326908220418584678414451996455037194415269510142032649791538420847244398235876347106513295641448862238431104697599437024393840484798720917816429604738080554965927791967804622982732549593663577371074428432837323543950080363225538716432546368033414620298533327645345846195244628189887432699977424512933682971288476136640386817232296695680748602910150409405830015040374399866574754704660180889892477107465316112796979285705359105992928620811290999451585277047325808892322489097659000965469805852034361814622794064524775522002038990600344796614574251253393119893341045256450577093630488399663617293294158354943124871095397377560878395303645171169611252886330974177451358038436385111788649172550764385945683245595289478746316701015896566887087389518091907948801070089931541159706223545420110108122839709350741728108895618986448943480191041495263871111392445167518735076333631649088548654018131174547962411806793958738423661679061552058239383814151771510356861504712535894062357567017432616990806487421027009934797275037730180038936381541969487089011800437301722993591085640822874805508601568592859872333317884814186478638276757153757186293784050019602940392869624016544815022901429666038808203928208029568484856409055074040188632456535335352804011793316188886742690690097044840517790392452398743009004062838023627419239233696815672126864754780473253937137898227669319760066607791038816916609346437614891118832263132166066066968348732181258701948167191475730987278279985747359711781807537181619623688576139961699319976083095661023432108065735556516769935179956452838870393027096272526314981237768750821077690454986251445604085927623486137930534628502241218614224783403638095456781539113981368841880195181372121299490002553609501423192015572047838532273906086498278488967118710992689307374198414020787811152412115789576298552473966283266948910749982268462992798355435986336918824766858308681528370857112026308625352437707729987220178644270523347509687417809297488206455802641039110329960384274770681124323524934559900219463911852030219524469304590522006741330167803918630021892092786332862435614493455822443522632809401545662477360369868279812364916107478457281517193305009258270789917638736339780566112428492436825125932604293671031401490025843867883747024525095698449583115234039328681599944341644700475552748148013730515733429750641334328444566998621671371103814627755910231236693631305980269256135507852770513273156744272070180429932125744444294291668846456157335076133129691232105399518334747231718271884226073843542499494167148031043208577595342481332074258035852533721550794754931705740041938570543427088038866195279330570682957187278144529063153975147306441996394915282314312737366588827966614676299017078466793763104236422389785641672605402021877221817749071664402097916729858585784571972132388844336408991059293148640594637274943929173333918889221158344161784594172831370426132555393229395278716429384660594557336118298903883715891594769599636306658856710619747478916471070762556204741394466001534710533588320230166568699096371586612232428889458686715390244356714215305513103786089147803495422297436981531358964741705485262343717471480318057248945533223017730058483191190636352184872088155608645254680436886726541475914396742863587782713794682587705318281434715083719000480912138167648193117792117692971289243605804565349216862326517977001194460098134838933656659601750737656914154670950803459126982022446570142439248805608748957385022116165134718334557753683757311996752420500256893651786382274052614172285276198511867119180107184233416340753822785400247452499815632124380719285689886140239429440670838699806307601223259606247819687200191813180812907153402106085014903808637485835739917504425298085590386852485727839541025867515504309055246096432264549391032579752192218492737697747584318632204350078914609629730611292364050246160948234856080271915387112804929366909028199196098574897661046441861164678817071203349110456775156156584789836284302029460347153154359647643335134999511995333268546817346007695185655885531725871218306605696796035807605832348159896245723474675196492111587715897066699335513394254034584209155802988851131215957920506736152777927653815834534755080922442325575391293119488253431325374436759930927364914756353439249486147179047558553767973621907078416035671821730315877103162576516798646214146675981367918970751794897170450464360493253707108704887439867963602100972373491544185491209365270340047208555476634379413492434522297979511490372617255513677741869808519076700309245218122157049427716407744318620469713114798866190635276820749445204189805615244235848753750834691824109486780453401661761491270493869373430094373717012018384400665436115395002899632358526228999900749924534231998626918056559984702149957391358944950475748883919053644855020871968989888402709519573349868712316115008209916945101807972057493818780018057026152427245116486234339557509632909670066099308598385167823093361341855631457853361758851259676859381343351806188919483757285846877656909447617865239657810699506708701363175787201145486779966141324358806502615302152759091808350354521682637281948509209995064354102431176480773254846429240842005751446878294079689140118822003655470974795683139759054998707097286904145264010928045594040518856710141329704837311942273454575834942170372007788712303274024462571254618778683330861207995118570012666903030062964370416127680106298541443581361259938702600249289419418675957643673360355868665641093509369065907932811248025918037883715577793360053377621350500606924112148489607692433591555255857769897278567448987982125534007473140646890349468278795424694566557080585548525305112208521923994496728361086636469187968546726809471500237934763106050424582491211535789288873351158349159957370278484633741771084070329577094082812880176204090684470600813022922151170265931617776932925918179845684460342728639427049298945852579705170854978044013299206762019642667312502287129700264214738785410737210358403261882502846405312149187687190734232697901122889898318427441852158113901804654739409402051732198916933511182866170846158258001078695242257445275634364038226932569820736700978963374030062320657188708512304789821112854113552947960115733885557423368279034920196626900454298466613320353002092665415864210024725171546893298933876238331952867254224578610478802485403951369296810278862327694918303209080823402847193528204910603131526609753593166755259368958632393987153610022864534315886662902012446376507873241631946680649496103785299415135142546315702623696646114392664054591422748982385486912266178837767187570736965872448578870687877508151687183226664445585514009731835045777196356696366809247537622682870332466598960143412278782748437902333451379935028080329900203087018239926385123457725955069709326269693523128885998253948839916767598915928750766869157846981933358156092065343450998019774383749061637608960867488850214995373312187074539431862504321335168698780184679078113705817046386552875767693720302326464073005202120435142292257889861894606109287445768873561508351685047930842886261971063028016258029340832969539017969362764316173078995339111190406589941243203629915816068946842252000696840966466920161472849186191997754932716893228815123753725900152590154887468982648596181877601812073563819972434566209290476694005103615695600916916493783567078989040548937756243398460915778642542036824097535869316819129164709735587266762864854860081191579617846959076574686919697976933854701730859120807442689457804466010198222229135815038920150674307267979322739257015667804530132114462406329898027052722330818522068948082843409144829213519043324544204655690506857467409692161316647975949275507352371594667904523284006013436074701002822925546524999285156571346906229143587824849899467343388418679279064748610078196196848737561696196075308152625795778718874506870738676631707555585870353227581991904665555590014421609778445973953107072262894225506403247123895602979169251489109765264837557200506145772251128059474940052639855911814002432218220111569018318122050631686072761803972117286304542026177917062638132161776075392823343355822269821103375870105627752637933513275014115605762329820268853368801580917349126024131852851684425604590112333476368169235645109107155292739134558426016585658817091372999462413205210001306619480418859955160768603943397187996794089033072454269871424195969687198343737031459878878525763798102382455929057484280369919041608595910360503690207047211660663177776859149245934910949250467540313357638330326377823948638584643909124824063547345235602650779998995085493614248008288766843299000438723514700264653633751042210631014885737969631339217556860975531830981540679756394796099538698282566852125693553512552345119432907651780992780952491782029819527173682618382276795544930778513818838035039553203294851867280113362952221696168721897933861066319761492831645346653762646756449691197049382477003873859722083691624705522392113504298349713502444719678927905224071571296399213063804511234071497235266073508337219169220030322909806542812668810551387655770283429926782435750325159232577932878166620652762775901675301910120137031432037912072161677540533859227983957361329261615083321362637931725660423611855668701944869401827918869272102722348453491065831854132346641300570153029859702920918370370639195621023499839114463151473913087402323259615980932037951960332945712953154747208547557256510584420334497229182038888203629168318945604499540393306080961048818401072066887014621942555020550019982718282843495647635788475606985852311645772781499482241767111801005326337905956486329083493700895014091031026141672392569151312066511166583843704160318152188558875118229507691237346292337873737680818206993915227293680227515556256239552676375237473089427471438956513202250866506272792096673326137539076723192454134746860546248828300555577115109324660875681700249017485941460196079946110843393927504431231025446111102514014933441619106794718101795897539133341052582859248452873086017465868992126886798977075551403449365437880189087608060501206855377283987779745262126696270671492865858338265563582043940624928964841222678065484861727308896062746763538261086271848949165755488880633538658448232413836284138706409566762010352621475830038562672045862599778373972407601906650139605507543148810148824561136457553712623990354092836918820002192211183181136442920248697963071056150117768353285173917270960942717946103734811051165291381786346284438012765382296467447623344711053990498547120568378762093813194030192804645523419172492488193934989287155253226899208356435540181502388424286362068325703421814142913531972576553599698286118955547667520874902249975196354263979409653888495152651075008678530271860790596970186346855736528505186059777395260811121371842597468303859341865018864277208509156649584865417460834028756266340904417068552622564117637970356119145025398427860811516831350488076452793295425059383605139799390598568042835123950196288848487726524850187294492303669539880987291843542675930399883532280238782507183492650076083307670316221650592511952400666205927617185901021802270349663445813555688084209821350815744926091145681734377084455142539579974369023730308887727466080698720267161202698918431012847886421079834495894790702627539684563488723083892455556289750805146974478248649824316207444662990871245007971249406278632521325956948578049139594823315506475290500769903449259357900116663325132648066691273183292963333453571428527240527393808780716165920474263585693680393011653449599935799086717410656318426952141576050707660201590588052191950658376137960679539617557406721371001179100637711038557510335589368601268611727730033996779829040521591526970296373212485508706828710233995316507130878355119134684241585653636892193625602199532338722627315060403762788441731151909624883553300366916343418441293670370410608648615048433560307936337878966068775791772447930295436880115965274205331011904551911306947783237305125282277426682252042849171077147706208981511211235434187637399590115289978241915093639989396716953630571058186724489858240509931101128874402088850753600025485957156736822571943632810800581074383675335955904247295145851128956133334219457175170560323256813065494991019785349648841342215749432267586464601936211984570889544378301632374177522574412555535283119057288513331096699870699634347177482564712685656056632477730291019755779045955529877600968508923760806014434336102075660404059488727535460228955257534065672815981602945808725884956278907981874040247194484603853144212896498074884106254806337546072176306955826150277633113054096607736405989167487154294391007680864310404374410848679496491925324452273513762008084601676825687293787575906254769444363071543069627242816659591088772274859936119195645123395238023849855398202981490096198362806712868667336600652632076223916016455997258601069851115065304452303680148014525737988529008117800902346886593994160004590838410492721859886652875357054946782443998723937729166251721560174928591319850412022411405772900070029686453719583226712310335951369266348230533417669898147254567722088833419448039669216109475593749020064605754438388427048195519123775238389440819461060828789367153905228648925478483158834295057602725103885550331792810466602862444274724357200902670309607465450003658646199384360937604239097580412552460309303210711635762740786930563798728264123712367341188219741144235369214635878010915985056089446409234981632409630686454753906413148082667803109522510853884905545571960734313475333232705170832721742011218105477302607316158398729660215027601596038904167257679968264022394976265075584921004401932551152187490824633385329587519547205173570099764946026500352000849670320879174783877297492798135525945919540078986572627570997853388427578497503407210871331424685593013805057627034308092833276322543393349281892362468308946695029749799654343450043469570775426349926081494755158044505127206964959037475019521934132236096188163009353621827815918408159758445082262054207292492250285884137354139607264271498412998035862771520933830545705807661196857204558848224253659432250919172465303392541365021061949376862853626379665997002133745479702049025042134395903900121563240000016241201388549161572636979275953423515638452065715690730159277264406786579623597926714917456787555380511556819329011450006143701046558642799448084825348792073080634577657891387318234864484081574421142871377703134713551074330778372522145280946632750166433049806333214810947000394576906108183825639839025342236407231330803431117383743210245280144527694843207208302499699263416405775002343299302295908928068242213289153148134699188843666457989114778145083291156923609653024670391767315505498478588973833467454598548047593033893423892131731484828908001763136944598641943642929753190218825782618322494276677581832220048728060383036102661398175789523005676251405998652770218221395055550360976727365496743336546064170190166388318421583225873645179818236408765581319887713682506379841588856047091605802860413452764669612582381108965218855078401104700869818798643205951740228804700836614501154592353932633644833919015017931365534408106532921261181430182774242890353726656621568275857775212281239272548560598454103177353058903424246487540893847180217107438837716003571212463168718028909657053262745982972369971463991119969972160273697915631183051402195800385444011589224127038198641508088665974818063746691768035595424357925999256922078751612493467629483842305612423936040627019794346677569474349089431473964009217413548988702600572610956220423571316924089613075953910425988883334737805871057884378727409746153066268929534353253439028963070880900816004670496028697158232372715145174838306411465152819967776353568449900885450569732239915154059471317401323988908680381679332654508093342267060280180960580637146020617038780827578950401690989720109472858436777226068663915188994359948277342091129231369490642424568446294932243690972716003381262512188086559985942641924655226752461067669832584046698100627848824680535733323103890505561080158715769231596705674404880941582524430851357052543796107331287693367259394616100532971578684919911438484354350440392278387326347462748054154214948367514010975203026404824909437718265702630401359507563789818959992953385980064752166045573677652641917531384343609086557594092719827463997527035379604629760207497821507831956978147034923229931003703497009261131865457400463085872209946898025480930544635458610433894583557744445215165173016001810760373334593386246069192662408841492000609757446483360299300402769154161767387611033935499088240872468797927756471697034215948053513179136101977280626103587070321552048349674770634279820750785608587392082322856735218240240140299975177240359302418935014658192545623796251958072741347712499340626781345838765974971033328219238504226375063423814878020319705242054153272940284166831459611542188634460224436007397958809109125068091460024157849167383765440468507427803930016956436313576400520285238126372143477066363870492350479194831082104259786713782489053956542550172780927027530535995711956043065491784577302812147349198702780334815282668633187489085641191461702428972790148066079824517870476961419675085430629034474425196442179489290385670023973245253394442820248201622728871532556707117921590154164507816367666854366494323116979826894311783035590408891423995800864126106458446215790290877584949302519594178232054430533791064270650565944707947739639592335557989308140192359719187695377087929746311020042912305003312428453788412939301582748420417219959485817904463994403206946520112194254590812342535423663166576500986235317833076970513398389535257096956336397353666193919998680298337745932081678609998271098312739547342253040145286179084887976974412618397250124604787809416805014676391444312083893327445453882193814063178260035258817725687965981152748682636384211910619450775652623973365430046559540079191573497415340931346700896150019487928037505466397832708247629916861835936857918757431820572147082793595626878792909494240894414724014359658466367336260267140943793572094365067231631719430337165540068419653365734262699082065257553349933135240210761429786480436014240380072705651451791886302820234316854218795122051101356350552851947138079333085082435115758798828032474720958149776306180745496675500438158201346507698373530061261943281981704653843528517869725911780373853420271436651722318833463968935706773589819435937285736811990981731957725077674029918573760312758265289494585805104457194851636572169878091193934188841479068391445300726317936794061066396289238331502254175813786930731622571074458556546250774446334651865755962498896238822698312465828597353969801243515872814552860488707530856700588481691231716536747820562278722263878911306812780569350082484176312886792781764535122914528735420568596659180952392287560206399306104817968531726719178511456435066080751852354081950496869727606127983020318416959910444341257454268579849018464563998385496556466987066107642931258563419944542182379258287488410208586159682045384028509782758897464576671843811327463609437176034805900999969576768390260737532096766944287482474147466271331517605973190023491568645328898799635910042541268305769500747314682239200146178288930158072887710526070224012896821941554850614738316129484725951956201148769899324359550460923940694500720156416698889374739272425395365746393894616251624787528868790066297993175382862528466988266430908274587241201984780623842986706422354803906037004005202500746739072219378739260416153887364351686079933693658225723128974881321685480216404497305363798776091436991595487163744306097972957733083565031756294402307528952373294397098185211490990524834641990803228880490907044765019885888978331066035410934001470864247387864258796618589890767848814809636150052915930682380400525016275176564751102455179108110151545044693361368448540702884887362212671682375426044328255227355207204265349505532275431902968707711872179897652870264129739915340080850840663340980751689068683708642273139853727796424834436361737245406727517819811208033414812620623276712083018464869717123830438294121737224273554726458752419446605471467792055995789265063269741640729212817395054584689385531541052645449847572741355024393306468137437270488342131046280224347250785474884087941715122144190788337339649276495284616869579557690741592680852843586547740701509761871115192422569146080975200898697638060813446857100161908067944798273634937827575634782710800582132778062796438914131855519354902490432048491070028192421512902613364761109608364150675224932562692251199579638505028618893347640553385336288158621864057546002082242818510676464790640873928721011677915404962715514474020659553132732223868538650625662358352816850178474356555344755976954406508567006420449807365774707120245409597224476961228356469193261496312566488220512844658344101146784126675000886754218898785730887692389917037565809001958789751393731847508753891404356360494290611586535550178773828548310228149020685199256125959634009639859321490782099945859304013430778957897551410829381616395970677099511582383707866603180973437318020784752869545392155862346866675206174653633770917101792544344673820414713508514023477249980688136709229388239961905371153990232747055562821638366619296906566727449134827174772550558918525314489552904428812969527109984918650481198046408156140893818355261928818866125107077731382515688404692252898028353419291691001293048324438071051219443169279512186437563457398676494223216043347641079760784009460911704497606066329242974360822868516041361488624651464654335426632126173692861307530833020668605100345511441437816821015335264001232055378486503250416528002744608990621615409334818558615549649257045353821208620980978065991176224986956270581606108169145811872028211089157083493692778180435461574394514988076303171724335347507409821220939877776875907121299646742821557500669168902142311480449250514368489518144375199104743994052526444638373016868421179627403834237151952528680581062091147810327120709042837858674222550584145650656939690973684911099866714447139873396963202271131124825592639415556275743305378679641688477706300375870309815586513099027521293268029790253531378056193796053708566635488862987883263892498638003544086816949876951061814322888430661925613537831817125235481935259731954730141354314448913712184514219147384377942475546183734642058974255116541856062761644780201154910121707589733025510209235644344401887134687188987575755239732425307594714786118022950060055088626112560161474265720804641121817673510778065628051025896239670042136387868796436540725415555645075641937145129330481549318421198190940474138611999849969287093211813085213268328362589681625592181248101135557116437814483496728900071585783299912057256899830607787706120660833720712300230503135610704095888529258195542876762109161976110251911859871734235010485881775925475771404451952352289861888602534836196679177232235768119305701607295900214030410543061052395393515909063464937182402471478760774334490375881449508215954960518498752691308028667257369242375191144715033220824057364753059425578482232052386560602571442615763578978568284754557419761659138920905716111476155870295623127501444228555404925641027239240497669919508687066918191226924627512204257662970097868493857670307050038257938163702227660499935859500458923112868853006491710932499044229526455827295986739015529137838491059244845124562781112465136043197542336417781555042612721289156286220886556188170817936833663673845296869795905781409373301558569685218234897779923637211855607552135076807380745017370733397468200536022948414738615299514776514708891109909902800459072463227233444161091735267602547515079624156706610985067841832510415368438696425633798312142050134445326612114419449716201391100561147118198833914040765639433105210087905521188271595522929722975464148333490263950375197286989409048135585808051118031331182805846409425198305480769492345196010092807645650897373208928144228503659728879230270739625540502651170968628087153097238775872995868181396159835405449692618766813457962319812997987126931879893240529688932743854465983780880376739219308597345763578381406709266362646258780981526676390762342965574491854727570445385363932402052609313134447375917268727159113210602538012847619806060567966605850837854029972241277106723580526970674885245005411519716331230266698072532824447412707844523739621773970333835197905941970261124246526667820770636269171207924571793674461652759666046798500936907337983233830088575749230927325295164201201665091379015145706802577210411469013525800977683068234976970304624755832266566405784290579383034641064390807419213036127526398299212627897705817196456390888413266630414014485569355312684869227400411582555162041230278923929910132432732246615292450664409996414060076639785492099829795345817219982838589205621772303245653574377372143325641110955010667675819417628546547150056050594765397231326077420930894143913499908276214266173991536527975043380681737809712443479638425917927709053607951741815201206681590812408124944304071169704153291200568786565395599805312577609016842528975883078198953695456418497547901379258557209468874670006195753807794142207558182278024118181452566845707002500474554799576876866134822471477623201190079543142249580095907207700103262870011681550810275341106922025984549907441120524696220677648909046479844554594093546838518614096777982456398518020288380853770987595407643764107485085323875536364917832362337005130621076020177838011191023611654210558779134350189047212354965806310865661846162372789191495747226944936732541438743352988641323803469089779267577411151091084511735691961815297688718806224108737521932902419055604926559651626060824457770231122595638884735372174326140382726485482755498788342974900850641687608318989133007114662984590374058626056858900370647371575565648055372895831158420182511090299852325051692105748753810442697634283774184201569878932028047384818360645727932471165410611697513335847607981651931710548557017080230457715821598415794895573299216370601213730924661873053325456192615170800333832211655942593574735797498795788890318558939657620769708679118911316447394226962974204684819473263474153723432410319183798471586817467671284365558925728355661013430674684693074736022973498435730121125284090505761040175624086107816901313277192948102166613334991015680797207560764441694407168678659156163394606656816005911337006901855658372750299411459914011278232773276415564379773142302619583937959858328784795946314525853658349885160696578379154606917387357488111090674682601320401610426031793325949710306919089879963241226457738258814415144577532052677069168234686824949975087738936905858388514631414786811321981707783465877544173646390308934672096005882091593398950394823228627650219008035788414002693406045118539522403370350056806212399299625181407883011580876461563163476858401607648062468027073613354655816498040220852966800380750384846919361002408292407968453610273325045542424751296952341088913978226205372969021176329251429245832771410182861430810156417996520341000556579924339277687869416716595462071981328981279760611119307222799805169478231499843625437023328470159146970365108833445027268367425141883605962014882487573234317102127325745322162571132907113871058690099363577922704258282644040577080227308802441361816542607128153323153722984400850126025703348890126435079524515343887186488568977426286766462857206669587084443556761431801921661182908279347285814914969816965025684669229295278857908237106922985440118966256767717918561392969742282423403034632455443570766649979273275974523111874150936808054544200627389974680909700211574632162466646557026497005816958292398387494720793310851813868724599598536743103327637238375011617178314089212454649750515574856216069499456026789079235471632785951158236226384621447384381175154020169986658283204308077605541466518381744647412488336433216939968757899775184751021669755595888702257764304193478384391035780462200114269583450727007138078670472345820619125472439940251073164422122934531246129372589845134890474494118316758835970058555409115900879436539703061168902946385088254987378738996474250606315589327538769402229994100919255701129576662693377257662835948603367882771903455633262821059479789434093853818778498796125745645438591894091050571898463655199608163022220604751415900833155230030888727582680116245141780206670468498359507434556753905784845737323067807188245485524806557110944906628111592487072260975244816194403175157494551868199883133079265266304542515406544452048074034522436508374270955428815942915330183490885259532463291415519821873368534847948920580912901914333510172416065140266697975456310282087368053979436869121899321160442759215511068075900059346519496597278183494759511419472516920332562310437487298519057637583404724341854013584169363257549582885952882750412012837839796374780253046259356461848399355750500167505491741874000017366498067142278238938782413885425618550878583730720585498860883171647549340901609477419962413386965286010761625652076156159326655174490817417725294086975850216448617888573254935192859900178471904793861510788612988625457276955549886746490738561104342371729180997277177067736770055774119671914918897388572578894686426041030691245755733657017081649999302749494849521058067262399567548398784097780241323111919386140706677376687900173350184423102572577648863739624220019990488224379217555675834866041215171310782216260564450788093906661511311170882483389545075818875647099137136850299334097794792386963965512671663890758840873238860812022179699790717271712258674696776547886879076031377321912274690628378498870055514445413485548431812119339346789100996902459030485819749547771527333975666845228892065569521418170454627490031548949989363073750046560447951527135858256671643234830951352259096687882920606704635211034076293793009057764798226776549702911484459890930509998849312764704219917972922837224766805908513459632705658417745898517899164839737516848761418206271948600536381253293702348312399776509991814429494640026353748477360265027219790576133774064075829176423454720970805460053297507964041974551445464380602144030831621138337940892757934533369765706314566365397408757789188069124607883191302280261782220466815073683664714536677265106727793192117185777371341198555957753850578069361018473881023322767176143251265709465985941814979035997738783226473001636210505366749180440771472177780312005176080050010939345031812526285387445736832441419067283361818767324819866385590310699062040318634056673437407142738335443441287936549926261928699265809347034322119027176205992718332522375696164822273719604930421807704229148541000339601511548788669636627355949999364202765113964765834663194331496337266020925140883201707207019934472028741377692833797227396000488806246811098467326965337188980284240736443992457262152230325799703786086070083780004101126321629615705563429907341929161359480202025938525231287181746733521392134461683463382368768681734284443427436455337848526007897610629953612047511306182340767073962354231732258555497595014536783954550891636291511610646164732983374305557522889574776552074291297751795097575014570175636054569811368021114903093670549892218140160269860737186270527512753439876474673792962015224877113665073393476377252569683114635388474806348282171833856618237097066351635577359315346819191672063537945784527746823824651985755214517559458835543841654145442205925224545480438229686381840327472296048460851220388514297036799769099474158028506100893118928086834828671120460380605022400969551406795378873773014890598955474948699105082058551611301419063472449691783353347734392050459203376252135570368363579050490302423354650151809618607830040947877725074620334332054497969753398722072089710904075565213877538515967624996624173202034308059453034034184970847805430777372982637148903120034888881684471154513147973021727190247646346474151694562754100975980432749943278826368395162498476569563346945256078600660097297968544858591087682384980970145176245833245024303383240906258941807133417852897812655830722955949780942781074747037095173279572400920989356943879621468147629369903608097115817122763233119968676896565431454275629181161521939977485181886905022485961790223081133261428274206190877184189129627686931750765974715634644054350583485555051359723744470159553595412132088908574038615237636113053341408259115215605942862609695618819696937356385356770562527182519541599301718603466666150569781151483434006641401306226839668774180877493509955274801961323628496413008093032837555510388050867675426865199777313411530344912106631714956147013582005371200985555831471676482145499050100552727582426425290501755911410556673069132289340216096115376361054155707198779204433298027611570112531814632993890730649224415272518758143652932979463502616578562608102707980982359308260717909686716002549225498213896392311900981511788011589226281845162174579267623123871063027933344874328814383972716694227254612001089422234784295648392000168532672137715528162008285302540252129513063267701114091233076876381371481947612650524698968972515272490301077394507217949716728713983679586905617586847603074531068827250204426317191617223928431115307229004089360048893170491453332952369044742648821606579701022729959109332503593003911836472305457049773275934817603395949604582957481979953877826558339741870249614747231072536052512955725253835819461963752104706964777000970744198210867987690949045538224533983039984212025523632849049480020787091592790841675717358321431037816125216034828888718303615009986932404212778557273090312382300376042418910509398770670122858991027498175182998798116613696408934081594478494534234622841165757185422258951444579086763577569977523448551951698414902390403174574227587579170226773504874159391498291550885800527119728958195868090625509538578683432820145180922159248698954548419902573072622940487963422880856374304841684303771828131046364745384491705901729868494104584521552728861280338628069163701535457998400275956089387741899546270900854332524667908146065747314587568636472848025061101961569215243424201732288500575191870031072461909464377479552897565519586834514695088966336319640447036017842052469339577416539904288799718778110663436946674117808426306430041332494601243002376075770407714795363722172820346377740524067701321439103314703721250571100185991015888647118332800397935042750234418743440665399880323098615162122166935527326234194219215991531626181451636931536070374649111887605913578824016252254681961629539932070962992311145552001271552646923858885381767697965418577197966931377288425458616069111716166536785841474465590031970738367164232017171914401438304153569811694659317727398620239547276286833016795590642770443123403303107007763558696104879896625625982952767003061841904324024955669785353940192953009428045019966190930403551287463701512919851204289969670598250526252039722858418827491113977037435758156283056291278985929102907238519109566626600153981145636890964479997528448168980088024122240892706130257377490940082040659868433453562066909158274084666035725219446820552396026425737983595731527718306909579767820034718790285695786212793019470549964876829972101388784603894392802943475511561397654128434662006139450120549299952919912604361345481228679684905646507048869612365019132682982331379481414278987574284252901947626589362083993218075295735895876315058695720833941657675267950091232647520296148037915829313960066317600653606296154629754085238362253700836342086179805401600436993972608611880903026638565057553409992188743287814314254119562016064681342335140819123665017112202593300614805105120198143468191992579588572207039460634962360839309958951393648194035407435578615602153833679611368929432663275020930737426793505016912560450383346513750255841214206434842980743963570406132728433923071530557425201522549156452607199775816214564516904112568610999981599215599622343560978582306404227629907481208139154339725887924845733943505193454722836157534728314899864862227428601425964107777633716570847408736075879811558088213034025438390126274819847380109672167952075982042709727540571227321592985472002261932373891289829262130831025285770398254929652107596883841410459404596489587863123598920527407577699176818827182429324253124773427420560373169998638341916993965256328342258892156276179958288617336886308364375667551280170395275797998637525618060304069649599330607245656464883574695285627840370111904172578439651250061748350241697733406086734552255917176415842666780100596601782816395605772195848416132380891263540602567165701708300421457739217764147911670966071665424441947444286438230125018172380279482791673281637946918179905634667657026435704047941582756180404194670877815378251138417556846721032814167902215014438114486838824512660331521302423155092426252549524919905682001450213889256122940176690853129185434864677215921996496632857839636815642267377069531414007357462467212313758176382131534636824211785438550224489199323673078577696817615683407143384560157004028860237771017635806539368131259914895349978486383702642284911958341967753287470613358120609695962300664251788626789536403789924926678182714199905290203363413948230046301670402568557697822482995109929488648374654206921475387069048004663711170527714696653180055028578524836579642923481003734824831296696088717207164114524664103359615621256543711865462855983893731298785257419486336058787577567335315861479054008902970756572709819614240909754015123175032276699604369485697274381125892417561957881233649409600329702650439115309396132294432580289214245662035276677109598315809309599891054630502129463316256783332080834097382128117787214332755474745005061124732745383902057676685950903054574678852356008682872713767238880625377742053697563258784367584650903059719932843868009693250172824952702246805126103263148648496100373552243389429849852590120450126867396097314194501750256849972817516644244415508273564216504342002438841098297003208538077997382007201167796909384593878383732891867566159242466779554471043228394404428240594679335665968834555048048976887837679130687342554001442717026247743336140795139443991303392637018446601027365649192945626502982636395377916174896846451801869115423678281477865732832420319304268380676360919043395385833763977424441387216002154091513772705691338103771907091421915134012105858728714608206163176876613423530041536671196806205098788554923548065084446143877095114592977717799538794617396569040890047874347500901442219680018108157783481995480713530265494546088372384475564053054800911251025356156719648547697417210498497612873950979434892054427987495383724021608297976346055524423362958636270478731088143633789845603531694532505313953364265637787191651316996822889154385834137215991483361448163827903088463463394300566356652026249169486497888332285878240966924506793370984926285142282068316880833386389519228933047734157418383886765496514088190829900888272183510752324790519908560110649804640941500792825886563943773585012971815600740948996064636542275645983537191324377821772443505193376998206171499274324254541536162991905994579681111398679641468079016735525728932674952859629863417334379053597176049479131657393602562590647146331701890796596683509791043858357252708703885112967678574810475234035120059449088843416927978547320760388528936556695691137686426224707725536126492310009070481753879072836846137678479385491364490467572517491284275049964680394110491662870893560690931100193586686519011125070146752835306932194208997737542313358609895342866366031169792509904787603417894472609987203151200414296372991121031005660331780127132248853385259289974072999328581248285834559174680241181303548402269346806681808253894074376307957396291359244548412995901521397775153909086900827965825373945597752630558066363270021856110291228726797366055430638760844420778318442764558155900529250941025003485433807969777393591129640193538765768469935776573291088819910413510909227499746870726492659686620575950668623821310737522965885781354282108883657598320294746997664212546602210117173846129823808538180730042603064474121029692678820061513066554366975744156487568080020765926453361054827154555495457715907263238294900011489995579053592731865410045123724628543250753596798160335743577225828941374823275921831300667524333056518409121696509739232676020537469452142908138212485776280539775348464761730063844582781482251636964297044908716353680375147396100855851636748696820550166553170108357002807492887837050054526186186284802133427630489051229698890222310337817219851753473167410297433724235626908678449375216915415721251012311896281274307366834058950916359011884242736824330623455541692091818136336333261535249535951742794363043603253996587765664348638810441893596428817276713251248266677597766174440689256483863582638536180928262897386462740092036388270351693362650654975579426719219586886021309022800436500831209391615851264245155761917304190092791006968092504813174726421716462359538359687814086239377530569392228250243207292543829685716703262667774317719014002417366442615463264975967141950805489614182874574468424004283647773958417309284317824534736607129119373537861270346057540812411220953220831994866359317318370419352286253234105019141068135897219093563453535723780664277386474789163196092368126873786976079757787929926183786212722832943305381730199734738474050207530367501189898775220579540888111128907171474524009400410977504387870242863165939808485441113915329405185133750580461181266436046710717112656011952766140934622083977650178117012158126998799158329608282018128739095222946168290461944840727388299273877871942300176359976300097368114371754621170774621717121530959727113725239135906400332510337971195300521123570757346818646316259505531613310280041245378738544970666856431946889583517402778296941005769607371004123964367043415748954762745053426126558153998953772456173080957990860303868660345379186986676840215960197541119533425117589546549069010945082238597029271609705225492839511953417282506967600043597100967520810690335822236639300117913718947511154698617463895443426434362831146710478703902169097061731827345608825332354316519768553213508685751611911658740970715984032118747622666260680081597569414786038033918148376373585208736830390756327019108589796923750792642718387114095486730749511838396081964035701675263872277173812561041181291788137930624068188705117007319714682270686086732279044025879126442206485917687340634734608155745848975612480260210570537995389232317963995334249900895827834570199812446652862598082642182343931808721706116574979788040341906742351381184313030583079022724367866278615948744890385563314754766022358069858344033785750623162294651680793450984922648995201127385215723522611591804028876453800411398289536188585810673569696512895903757993482104305514852220602389314175636911105143842596332428858649970701873337981261989797272446913394819274968226305253360809219784621935478239567165881318609116266652534630365185382278742076584638916708804478080342140748368628543862640814023973461582103920739566549282601632972292098482255784462421190902691610111512997097479279438713277857462485854007937213069812954777758331927506695694271953777199620539108692801067725244731579948306127049381672383836408757648615964116227421349262680415515933336319772557063666509690420963320629679130309465776252516884763894994408810587034184653475182308107214813819700521248041935858363120236242162388204982634093725483830829654331427515389420223102189192191132995148456692822569679338277767419672278733763025879129953618065845233036975317091496720105123616461190310002429889190198845104625467769892454539882512018275899064636260250054053101739078796689069675724061487917231451141073666121859194656872896450497519187186593657469009605996896660479156143933058860300788261115733599779442053908158762050537216786668448241499268291696969971866577218044842207337050731373986407049495912682870063007318123600496719720611318751337798617987770325863142866487162696091847991016365302915907695710290754833111365748306160318890084786807470016181363542271220043089356533841616342940756673889092654854095702205772365329602405992560837971942096436980095509527892249131125120022148677048528525083361356562411764886553412216012634014065877263636312550379851834342031165614726365758290607308950565828319039883465672723287713594427932483717227724730099597863620696317326260080198753342564296130351632305600254336668357673584088615841699725673146311816144736411302915876241026613323323185512560770015900040992906004688766087743637607024963440480664559244187351808267853133973093575226065994820735242952380237878737959369303219957058225863621956924189817974354627947659546402333455278165945991999361833938476325933355792257755061051192924662336662467882700182924772570504598417906727075554796995243542533919183238228796755743991541974707828156715731558895174579977988629697494556522404026753943290674652743490302123862292167263349607008645784949933859296637551575110120094177806090665684997340640583335075770318789707865396185841714857362414667605704308153024864694476509141112619135402465922964951468660546595362602590380722945972319041788415179081502926754790693453528278017126441145264312077652704950765592483754642145556239882963319883881173047808277330401582062529573121399316518189298070939332608179471494679554853676099168349040936395656819967703121977808555087880951661341773468797390348499860403616574449389951827115802800783920475649284171322717241793246626143044970002733351015855949374259619608047368098681879232810509953523632641130154886355715014595662432964111358126484555333641110371599359417021593932536098378033221251645486677810488781232044891625358961969116600893683222670313204365371411509379825500786445640123885259307032538938323713645847421935374502664437375947004467618650463761845751702883170640683524571975672001581899059797143345767188018079821352129872092104692914732509501044184941743774444771887548104980445111304244851233278866765263352988888789965972174303224075723860852313406272996432596107733526487858101127102208752793709107925585451110278053786603337207643664101062893465871901299342888081900846147736365370581879834148655657269734876747008078752169548507290743496978084397255687644672080889359978465778563507555371620269907730573288917721364291073129405117380183848325222350223871939698770489375969297799486589600092435219332585967272094272662582873704928785960191937914327761250444939054213328334385676835619549064965366308465921965960941743954010697196997238623434819160195874735188845282223974108597187137166124006736778883118195710579773930183751166430017874866673961403833641550173026189553318528464291433907165687479809033404308817540556615399557345187932349307812857618778416498684546646056587535428301298926411631969146701584572094747809848422455045830349767448053493670883640602303943425501033710183188448362779128445216278266168595414537111961254159135365432665962293620589968088133338958853645464635798839224485225602507718045997191396837022259413487318851852928943306981923172862268972814404230967918067946314904274414331706826196739380182892236279000565436835830589612080899597084786106350320917747464684204238443455524189248602222349082478706773809751948486720324484661800557150391174618774212476681004376562209841140395893481474868459864577318835011052975521540355408551187179644301648433927634378427676659736090415860846317965139010320948979000704085251641104482528702688963998225769716585990445068251063615014086991027553796643586130894464875204602258105659923904930820838263542198454075435086539591800882024799692979621372910119512856918713141954737446665639119040459781642604284214363383451005252759599401548291918620215063155578130289369037745683155564810248924022748730998786205242717301209406246679554035969130632019986359736816650906767478902986932327932686467677606134895756027671030136727891643333601728746433612912128388068383404857265698898350251875141692121245770952787574475796434758795871560650774745793418301362522459317993841112695909100956014602093821209480821229387892126001493902876213632166138817710553130201646940076595381401312357244224527397537146064884741158639997503782433388252344579749574955547318461108789722823076817727907946610639287766520741022927050041995951253103932414307542112668993308502465056362547056225018579497713362495113133467862753439947808933124981962061228941504973267900387127681964264555643511171153411451417745177670141041405816932280090204404530626788422428249019638074965638505402891165625594445634192393871021296004422977705887589098667343168994772283996108497775580257066112273885580595351215085167637353623696802247150800651666748603782612619759270123574275005686757346763062118247595384780758203138244849156407713100200652310784998473846761686173924931072419628246129998301996739890017882003438809472701219290177373867340757903060283799687035912258264869912754001884217930587504480219932238174137474918060928851332036901522116207553241894060918958547528486674456905016310071380354718849288310601155840316686581390509778865880396356713125843137674923445545540936960467341703603657068532269932718881038759938111989290254910603321451325706839526096896632019421824100708055199655421123811495885761712374084827193760787994307034957430720807977150148779559659591773208026122552066889571154515463870783481709001045632626217505397226615314739868701241827222105369502178857351587988275258417020450241833613189330552425332820074939628195516204443124807100029773530986802641829493385867581274584287461658700000883245522409490791913986354080018376754414397852633169511125332388108866087699215514218396439009159501127648865648666604495832267566457021715349078605735527474368516418346995938521164052905154761334171761038116470425343340818028509903572975838506578961967675232486358944499811440487426949812918428052675071034845290794309019956656248473841054269777193998424982304956333023924838532436075530985211574225733176315930395253045024948828165697818296334121119305850828660022907065963328807241883271400652170158230351360414130026964823622351629541271419568438024891955335241125853791730559928539165615425437919882758006278096635760930517465628529106671308513203130919026424963637466542945988514672219495014978189949350640629074806359984479155883439435554652988320114438455672003341066997382621829270168786785919033108205793560062146150498881875408933096481407219661997648908439200193129426766786426080483270577929890514463138886767917992006230126600416792427815160116303286548988909455398974762945321822621126301592472461828947445021859606428888602373239793024025264717541869034017313966171235304433303083089028051111839065241239018762659012915785991258851729036245333326844444557687267567268582303994501816969817749177681294805647309181990953090470269824106225390863054345830913334866567454070272271665616797243419400599946612534830323329759089169497544308734046723979891993197762702583968532752139888621070218936617592813568461649569981173259692815816944789122036513378891166402958723807644053394796287102954096975662014373373603838725014495760213908846553948582399313909423950383280639855240352076458665278578892687333643261130096632488644821736690821678083263915523945669821947142514482016171530129617676652351775821180035597275116240012793412550776701825125167076348910116940546132359749416524914662078910761733738952998534972216864847390992552815879767223391354556954475879145544691207417642524837198463121130820633782030432745578572280104046249304892151267630026277781797743634258422481564781526020079447048365373643347405137500360686462856797308976381159248707124499926547937880275487571628201777616441737814111158525887479779883307039446616435314215941475689299700274832078606952006527866680036002577248777627882961680086484206172263102945601404866701026311370020375208346365988591261846571214635391920686262034357128691146984517316317941313704713747821292383153252470564478904304960015365719863895100982947480209699932132814909138175842712047898093069331253400708959566861516655907765310554529248319562674581607699638634033997100412568767978767378996227158292328276895552288282242321742930039324003731026571305936159025777748173657247934683088381946960090998786057859090725951868054589561017186938743920196228486371470440122629581412697987752983336515922705921930450567041213735786353645023528084159435640608455922882927259449861875668728614388219550714957505535283775035771225381656360927870561805091770223630380579366889428800201506867987932940423333251608166781046356629037993870981817904302035101433892678207116129836687222243250423541783693894286798968113911408288839230167386151530194477355199299804425343431864647326384511268933318440555470528235626803349307172625365036040377416155303847498343537979140748338191516853601526771151389316035580351018249757450168524061091416307049241564382013119589920010385317221568287771824820525220826574152433612171397449142441917182477929288332107167070454765436101134102511668134924332339747542320924144043856717797668995534795536576334070554550757982232688824344082681346392645057685669272161269940396331675339641860349522372295230264262243558197504142778321720210322835045423674792231673649373522249629798488049597183621690093832547979080454897782786262012694279079069510089236789178605015066128416777102355236903434351850069067055070471758903379999930628585411478048322495300165977664590781506793082979210089226904438084662676386607980206664462393501619042899960171842233307732185279408843485192633735752509374490672019529686058126399601639168749698516764099825547139691743813353338142650913296448477505953238725603794608048925646381873183629326548251206205327814162084308674292067076892124448497768559012504615008562234985402729626110718502177348928802749841828012624020133666526122262862163603895026640140780619083961490879607430192158315816837826564762484265561777309888681193935727868280632857132754122384027317251956301230934089645649720083081407761961682644529970811906159601716835842888984231162321767923071827758864400993451633487490556834857617540694678642162721838629752097731613762653036832577142141567899640037832047938633078735605890659087815702900903878739941755724961439186515235742988610877581672209993835680119315950469800378319804398642445409049216450047290273730378439436025942770077099033684203149287212933160191781403126546094031137922551792779542279818773607467170790711776213558986385030688752070113510923259566839405260822220473299775274054133587461834124704882534850263260292526890550358946106302347467198685848274176513043788958132521029345709740214120976983884470052497953634555314442197079040582214228910033700668739556797478937301125862934524189645159674354296684038658759591931270933268328143410775812105353929787748751744163388224244624765292290589245148411677100015832470992102922069448978417034162325886275971903081651996856701043461106729757558829388815708634832844019714409458540330799811696302553174714804347919494854686306233717209946690472995392688151208640099162727390658554748002971149211586538842655701276465562678729816500776391614356977843247299746742645423390444443769206376478330793165392158942652735731235480131615631220182724757979303840755845809312853453641482953555574474269458507777468001010753666894806000660647962818866496203482531382904794614574306590370090912460982366438456721923560812686275332736224050082196894535073163030867728346106272962032722702819928089222402880586204510198560353785517387043804156457693037236545376193928208817544875344696735376530473710397382853043596367917264911159444278605804532135302927142995355692980975821572369400721788971949421477537411137249788021558933891712141598354744696269620400763624688022820880986170529713462507592480250054398996752267205894929777390881583823447470085175424388424222022197896863127647962615043032810089923370074425511273893583298536885553810016715469997248115354618225295337619893408314591736558295086445785591205299652569865188054871263582183660117432341684580192207842585036300352293698827425584662326851422664869493339826930462536852489427626576942983287352732892026871821573163083491435947651755558796846918920491718322819679662483364569253124911398389315743941374834502061781407542400095823067196719825725375748507686696678611611850304244964698893852956709485899826803435691169287317726547855576656163247771663015300939500432129640046463872332290109980496753279480139684475132941105365233870515829332959452513602760575079862087153135763545980128182488150349395847755538372928525405001703451023311714428178237385847143462951373943338810562740716291109055112917255411323702923916754974601474315721183441092612979273455488535501732245088872273379209461948921077870602977372085333459108006398067050894097269178567297413130932478609214045629072055824658875494010055693196383884727800706526969636254731068751718196352566555654856038073741452995937114456460382733216166128816983198632416094093925234986685234017947364811458587441844889540087698528297922128871000863366546029008721175952146355871541559710869859663786296008736525096658376462874832189713872573614420292900877580824693755619244255384944344962945892208958698940140046195058242600754647280089244015540429449165270414482781308627878194925827384564391037635978520267637461570999630897200019416180803471577934791687006873535432714050062654928627699695083333568528305413563122470893389748934601945325152531781680603751728311271825151000555960878877084859506808147414862257885301967660925304009068185399753757860404564785917515960919962522409636265979869755821079196751719197680368991560560319437006149871809279035740079757549933269352057343363819391554593428809154122210689894959809542643318814594143301855752190246125986196565053676420314843823829894645550869013484371691749302968266808789971952575796095386228308467338618860305547744723813592548041826260561465942260924219048915415702018467116044924699332103255638569506388470336178808701085449687270584828172557920520439090877707816590232511013786458131360811258376151015986353123703221557961580815073853078229981885619262526277291680901458447817994522450135483173798873958676525511164838954611897201268334815995546866444713776048683645236973906143426885957781537586278728096281180747264539844912704994713647630486530306869168192082595641543056438669942427493374596262112438077670868647609795740413198479545521660851666198582456811856376570376444370903964793301022879995765661125140264084762838769853433141356268366929105123538249737945976868788173901061756672910928347465972979362976294015041562988794412570084709517475009604536298253735202246741061967510804662584107881747481001959887977429128507138459017310168103085617079600151532329653474147645254282246308327108903316680744430862030479222659294820925954375059474959886984931733536365122543525933901706909255187746819193647272699490586807215185257217706886759002597110795581311753676224961341247114932883512003814912716829248733711643341215092557096320625110829794805540756957083523256297129354187427871585003734120751685851399272158310810848765970888216410923302669869366423629846608741483072367686586121983372235099949560880610443834200649923159904439618978851060324582141922222357322282037328302452383450820261670355598379584613726236761821238432725960112826805476399987163370588027432355944266117621120518250394484555870596776969422439862788494289106022785004559672609184356710493937258999544793971473160321086348867787963428297631293533294119547611945008349472834620135152609429790631656795996592924500054909688963519016452655829883412478277389735150695206505854291336122572998726325473484606502670783088161818940801269287438382657681285428497628606026132866513545836110144233696533831004955204499873294867125664923916770135064326184222242886934580533304088114981535509255666090563055566504430837991822963668321062664353806349170132322591095568269320239556381040968584729077701886903650840144977296527447999167194315012545282125627710535962144396639200898887281767831525843331290542774140484522239741565111648069550515143923177746983827038719858929683871517374230818077191757705859366157794791755836498963057498644892744214221804357697909281542325461289134102763107155869969029427379493034346808623438922108728790567026350279477470029620705938784272828537550093786379744325717216039982044157793100330589583494769267416061278412759049685045234282839119037531915469119802834976301042380626575616610734304222558414254663249899254111731018850224798169549064269215164269678390865078857671914953591043630047319505274088642219379172498909426859225750873361079508775152349912357437226151481311471622025141924712298568168295345435928082414677299585493755213830547684689079420699981425114066633792485082913350416279823322940377276777260450637938240134491325088123544321792857766826720522066854320476896273094743210913090422409188182864656037833653207346690847710774295423789953937203695319599200504894944629595877521985170162049382475421955447044286686317702380776689558763568061364408510262653601151494828601341047765729935007961346914093822861793465303394755111564028358092489065210671679978368106217039247627162775801759767099099620813626503806864208111841684865136267629685544702919218059413231661091997277291042060142025544782322234558598095175226419949808251709030379338947576329681496746352793661972091401992860660121121882005173403140767652587067890675993110864705266653063155987530433789895125815256655090520577372650850493880947422160431622398206302502304916231394871221087558958442527154957540971120656874329462163774559192541328946996701228214797490990278673515743826328717111313692327958150809244972936218717389473359652548594978478263240765080670003958418105316581735637962897014662154823816596301970762077412813201463642598253407218221143759238232223446606234516208734647989294706892959805418116033277819287930559101381049451447900204301319316722022773571675874259181798444883367628822076665466166798191767215890179265110252258096974327724849597662417236389669225092636438875959030789051824130130402089455747316286362690589945316387841107161178252039202463971283473421737510765488846105106552379117074286634043305878583847395756760854632508682177825434063705790942722784813688216441314686387856141643432591477581542808210984995001921246636168842558771596987322535834009781557605915695606171582386638576594754465176091765666850433379983129404736262852908975972411732977420100035077768101950296476040533978527004802041256449030422788653268299950521146958325947046170214889165378823383832161495128135715346436581580221339582142136072801417970277649769583636406621023123756793378033467657468245928274836309941034304141933301546252024082908976259555629503130845882893652714197287882882661044683736770203462133464960792543587651789132192823285794566531484580304738580934823645732854252245024082495521667947703553355760220710396718635651572419014658140054042618535440051708585923854618535027300681556923042044339894097611523671195968279347179581581324447736889119272153643020360341489642326423702958648128138150119825326777950591168895005690628083088567254069078251678215927638289821400834688106094975591427179072781408644433153075930313265142795119798771918397242093760055234601023694610843847694359445368392039880917217709227739306362399462260767799713892000917150626315931437330166924623483309070035199885368555245557725251171227450848113613483865411582577588482977610725127630773238350049375625767421842403083194796681504015736971267639475277102212694883561430642894177603387062020780622152736638272156268308562616804098533516854117117102595415905660997665785676873293836940880569028307004052860755045030802493231253557710790732862339077394734997098131995719414639776485443386759693327045072281391867392160073301058931098605967260055994912671803302655950923710106196209627667249266613317945383593457902441530378401529754318492200170086461679913359871822392301156997610076309307719365163189663045425399975462109694484362393468884447075395066651638866778665274668394308585117336006265776956582599069515322517175122055203077729670356482451045066277033067726356917689249517043133818912156286905951426692321432735836339686581391418353902743691694795675649272061337899774435287212975181554845783138521463472552105025582096469726994938241802552917907241135899033358017416588198737219083181406810805409935015690821984691162939802758429155670134336398550099168236190988105312661987061070506102353369393662284699125977689659193206798254184030995696229511129591351758002625713312334466202433366100301369334349697866982497648208425762374012394120077760087376913067857489217278334797837763788463816050981789728617574341005809050751438526095500186571532334824510422711205248437365696864788991835938368790923434535103923728636388020700802667590046715044931868457724800223295318168293987011012835202610671281486555197139805148489060253103398403466966634064730108915926752814751328841610706446403868264095817933523713565812646083762599819711060433429885695108092789951167151430206156328531492609460730924474243618186686873983889727530650176240533163481461946485320273381335909489308006414144400505302810015961541299336117795816819386374979774148775307719795454187096940867227428991580119963735315583365463624056819408599142065338868076312231607077987913979771727944790737256649322301205571319619647121237947824836838851080094916852422612241973887549005246387228140095453900811171002025133049528484498613255798131263896586990847315312046690588235134174146156092224747473878820807721517149010953764409236231778096635193262916214033575759184811653641135644483006440412864607444535367504974648209077911821976514581268097864096456257412926856376999970902762572476474064058427029477205123337111257209087210825560147301487589284383314381338281275748812491186669346193500991928318810182839892848441452366275859341209426111095884928053643681205190590873023392517866921618267150726388970854515278792118334233140645515100407934630179812041030914311387240530975994066086858726880896638931183274820419456799495567852707818406044824396085582815020508999477140855447777883809031307604067128318941223582471405416072826969960631500042644375168360882054481985030603977947491023002326897829764153926834467253473777332797455523246185830986406072532810540049306492419041702913780612187312114799564628662658931372141166067233086702626374211321274415880762722871308062493042634889154834641796445004404260808968084945752456849371295367957182820239542632626966574949770650176535759900418986244493587733442456808613529116174013991871337084150458140850871278565734197969243182511824726808145875583239821667367675440426762435614350874785316474922594774149820762120136022301464858717871589485249588430044711500461003211452751484410682449929214418928875119477843403928004936893664056892677591037162619978345777741648021423159616304869834355581942269764223167468665710670233103503403329728167000576938184283598513921989006085148114187141962015493574302609955028724671308938421530415217434668740823579955001228359764072271110223717754810411952095748056965554907646160387163690044789269497809928616579369786099612101302811437244753295103558165048269914133288771503958965506227918465499050584785264309724547059741125181902585159914477807765678239119532119031582961785549491680237353631596537477734553538999023073417346057522597251346267429304933423529895747135702915953083870060060123698125458031490739042372639489117520173162077512006169675644027826685412383212894209433423749160879045647600454538922504271014145149439182721688659119681434813543813885875206824699459916211512154662589185537443332241267993562995938853274509968734823200356677713951434448541052436810972846344952744872138801959013815646554308793788394550920419130675984520733482200672424066641542406462939651226714998197866134101864285251725773583623453618310425297374820244750652586709693522043824090113643040788615308823200891976131689510216799568466063500177775338429728462044180908125267843184290095052485673294377058928324832681048348114995396911184289967907221860102155288825782116325137789009505282659247926741259734976504682135913574795633283761699655819176745795235709164175099309894883679776941142326921346572614209216376034023075066233348260812291951204396614144534980994225643756380139489241376992868039776638798632611754032811608971895873162829460457997900217573114577416264557980760945299197828206746606157603662659019748010750323877731363013594254633177446863095957353233474241612133520093316201588580577249240584873880575957046722527028133388617771794919124418334434230739384834965784326215839809898410103474269988020499968364559127219482216151379073672124958435191412828472634762963136791454721132039073427994655279420458256636142680414594198548803076125567762204096225597696977523452325576009328819552059739429866103967047171119429755890904521488642675453091831034254590886640566101840675820566151035615930709774712886419992350018794256540119685457229662627310518258722422783636868503289488148042899506240469494474294378581099818018382364612873438662547014110466428451264858748023807257485685449415972107531369312262754184050274892216851542124213527499681910076526381718446938599548886962692808087780504545409325951229448631846957999909316380357929162938214831041843831435328369238417519349741694680619114309827808366931992441625611681795161696919211233910853362371743819352478629441575611140668982647143275141505303630239511685674044080488726368209997675156952331911212373268165407147462370099699879837164092168674083188906097906393068071922185276866789373822942244925479530408821960433764530703690021140501717182230247430291569699323806848550367779308365995480851522061739719937496835065703277404972942978712794055658360378514080838048634839892786543506097215312614998566347973904762203417736662735639138652516681704705868616963088627560720869107540174817791970158595662004821137890334926896240954779477035502516816061414042380717985720305305356558516984440440202514131588329050245747819478583032659326174881923271159088673938537173270467201246160066050472043053269170275540501751611594957330980365182872252944380573998901816597956296464732489175159029284886130305650012640516550468452773781542538119474740413701851843784598255414322104157538733302028961189710326694725433311822849872778530105127678246556451236326913295728179140089472389492389054249385576487118554401262854660119737856751587085395871281497271016724706242983734782993086611236017078161558614736325506399013579604706072934972033517674224565237805057953764025729283430079509766347236977638849977924348063401981464977758978384570224182390917789438865336284040797953647070809934532622584946512141637365379533654692441554865698991436872069400846591072397200061276317988432840191534823858777419976338391391934737229089962896111888572092321136326905753428222570882606998852590670034164949476866853660689546784432269727756523810579141448155916041124821616333171465697562802416535840054986227694402446709035239178126643207152898548719969543903618329184963154685871338879400177863911612134646239103543201837594117845379900876136607069581704099702839691384133416718375850529624283562105293101369673796576463450179446961395224739093746262417833874931954188246554089889796137990821802253496842869876926360915865572263619680683018601810769229690489914850230247071763219429510762978602525631205882376636097992848408468862775615995437287255792844932031984298183807982908551898553952513761583060995415036244373117094058105454391675434155619100955336227184712929531983142784447639875653420118668075805013310035943027887097799952633314360765006538371167626028643206584687375149022460563972668171594028849809407634016442354398082394643560889987857118705204902646953609166018835153374511338034772583690927106163271882764726512583652952321525516119358983435040358915144862427287488924849034564949160459796778062482428084550271670432755844016215682866040004105799958351085024491329156164844432415704410347239715324452891181986569283875721494888798293186295013925437859729569061495476029102701490459946505413839233230551092748039094313317852137498927155084168508549944722319302689559941599528065589818241489517162534624597840096627474608272843860170660189454185556747585171961723032710998709492423617922826527043894909981379760222865717471823565862915108282563395123278261480786727247151379405213417994116530595322099440234675101770143559936641744028901212501903394465807719249313004882360936740825099174299499897583265228516485569441664951205231207437492701678065221600188929361210490613159974486683141801025002376377485795028159042546537993595264410330677207815680016519922033716466346498674959214312607126670481593377301282918512185567746984700006685827913690585216808985670120667548164548671493322580390623383271386759565685675974483935495373052851562067830639105792058992874965349304703868620160404532808688597455128397782863844491431989000477232927549770752514111160334364220553402258318607285237202044666780526304102786847309003422400569691094666095898984846035158208024702717134984542332716536329686413729629044394835013172805770063433617152770796372528377904915206648945501615097912247855520420964539364878305358173458554930255647116088990310570266303841308907605222169218265998529669551190856046080532264189509134768988170903848279561509848719457381190052407421676886629040270975088692680277676068018279377253602034491718584478929069203923290248601197544642103948188943842539420259772161314158787379164230782761521509380350358098925750082300133074042957955292025191365980595535660718473049281448866038216230631586135896415356230020612591834018528097161354859998126089971032881509627947783795674112385594243467736119335825006040096793909417651009965063328328010393722272616983305748587353616192420082444587016370386711957507764331421003618641044588550305432930946411104176415708768356794897996698439466156768281362570656235199812342291385783811879929601446846932212342125607868961702173847825069680538021313784874262669363772167110114351041721136237408247074680109918794384818475195951007571158487746212653440866755327656715241277959204427570730695676482712630333298506094384728455505774701437385467796702108531984735244413428040190513537165454435011146367970302579002775609911246922217636616925877084622294661518465610780018549446924053139623907898395813164408485468574953267092246427714790278553604601058614997116081970069708825639028705427434994117663837977266785948230117038691328897845334136513686739990182980890772484360471891889013154831425440799851139023944802258997350835181046668228858138132013932617754894060747031192368995434081773176870291034681866045249431226387122554265273700885111331106819867310295719931825883529754527903081797241621084272313326220946751701655974084918080236883373366371131933868263670364365601167140132565013519748663263201009003198522554115331655526351071832248939648505442589459230457533259912341400951073468112705070504954127864522576224725449102771298878800910075010117830473100040182896584271541998354711126031948833202559666901461809355429348715948452951960452479362963032355358058267599240805819718663193099476462584187997595139228143265544272596556713984844423985095709875405539119164627827906915523911162439947629100766719679958085304256612528063910111427929982437897162519526547729002528812895168708861262702703777199898751353807327533685639283003010796862563950394242346060468066831237476543313759409495267567797000059268089429195558635081399603701226598215663238580591582505029894449132727711063088557859315708517892557525311433589378558025632108900501304561513410097009022984876699873876845011385816298688668409681791149638946782327000572870090826433486545875049379553314235820189700015406573701732697367322242260421265444740123186331238005081437767551318231526593559183222043315442078981433997182135456279361358246396794149203530181485639651648672887069568406162578739137908163879314318058500899055860156081075215895675449489016091509613166834093245529954123758466452381851915240668430857429988577580048048228371603614220796551977519284762737845803373154284224598176969143219443281939336907654872664980475260801859918768768709751912587008488956626816029682415824194853187881675613727436196126954521410306568560991919772167928830608577680773782335434862978101996128045218009170500507407648363672345481101900517897818791096957866859781228888876611700554373508584995203948388527852301160530640605131905959910595033698141295164033653225085975444542456658615983543144967374842853587161238400641819553539071476632369350280908037143399228019857960278694115426678636461893416334985482203659959304624945772183050946346558670206080181749397630696788170472350252183806216225173635247477577075554229150616494989206803079565864009581876918931247101129491280603704627201758151460753210665218951731464639979460090714234856116785782419013002644386813240022966656787735264077922342865195315031926082449411418467616125280388557447201298069370368294105864309951064759293763351472430401365910312988008873663070480472080503379118130161204298930026932494857485317263895936462089011066647831584477109859154835536276932537636373654956185375298610643449849858062581332036426982448630472746807586491293891150555082065751918673936182335970315208935547714172402490756786212949409590211745602269489358897010529646884720953791871676242998860647967264594215852304696522120545556963916461997010625075836254546753142396358706900087207392368576334762483734831209858882934528652561571990258089030486243579431980123733321041061284384298698998087007513580585799247396061806192393346279560254566011954592634481116502662353481074781799678342384569671393152727095641166503038003447645050155043803924981677104130462912204554089909613272897026970423511477632137967085282604664685376046359906047228156575127051768388731506944813451722589394353878562733812868220867631576244693212314952788434080338777742620357118458605503101264149210821517949993927041946450840740027802175342544949698882365597002299331005377150167497740044764299727993267826551462533962765205777085755747277931085843751755390887114100684184677760873674303807806643744294444492675612163856767550964687223532018034515393772866374331922370700801536995981663199949673276935642496444790172429298199941967333266808564059774499158732234601279860870692460978043358202979569264617274304126222046933854825557139366521523166143915205308316013549541778247792174162334277786132423723729292100997418482432998299696309846679590664146801973677426717822725849249099970280089371460380520640453484541402973868989558597690316887384013158306182292019288800873160889129954292237133347185666876283859699890320923479581758731289585626599352905219597481257594392172032345933298149449470032902883208647465449611340907305863250040230948147045082332902688448738993714119488547301971415382945687675599672591856600474850192112097161310792533016701075449741588105148919928322572795258600753992274044127729708454915485377593553944184325318120615862493053382823572933857671452315851378851455292738617654261763148756766481435597331706042574558360665022938856509438612222453113684911668511832000545421250015457437649915863790033823726280020033475462955218132381115793270648686998062993978458488522193497874793523761887587422006766379147557706546414154826392683372912947656177037326334450075379834479691129483430762560024968799944767125442361101141363323656935309453294844572631059704322867788140347220408307833074285758637514309376060383017443524975700927887912345820478602793274548920789283344893616076720181498258635393323363172265413295151840532227889073335875645967370137621397308169033945665589629296091386273318479781376068377153193298275578030366603404293893451694741702388494470601581871718807498366006176945664265229347450514969678872529309964712821064963438734130213849203816717286380004621891724051892821204822990349476150579279585690246576923594958934025258587675387334023325465687341535107413423208561754292542394625475461965026223896881293082074259735353276230933045798573444656568540943868350519159066405884674616645933478620998222535786523458147835457790740606541925435915371791655921013077018481545061050779735160725349739009086663821060264521465262020463187509174661571510115510011620885231619640307479825627455911461697217264010154978596462910304547041560527548088759310551741401972991755241531782839003700312727370123209941229892280786210910631676704656433583034454165829654716565277080324244120957220980080857364209025817944380300661941428147486684529769031719719973377504189089741706550761654748540769262020955289073236175702210330620785856141309234316548337267893408761309171835762391525107309369828512507056906633744430281513432154235852412013425613890953231970955264462232320262565106386753234546357141099021311844869325343596738695096927836275913002006472063092623757551679650524827816779787563054704519422644961938510493604421747715518164751326625767102657968268003630493071176772372700902996093172115284977577478566355390567094535770678024294794475503447346148898875238307608150301280380560638353212793600714084594798379934466484233213647276044919905382801207144339336084870967645408544091806946257313254050332114439049427111285907006815378432480976757232139250309695362483397047533453628251365237616075094387085187611714643406961081243432054545044292870344141780047518674811113651238377701735671009813271563462269516431764307211710170145499808951022009450812701324301882886828686403962666809485571554570967829685972106588545948472390501501108131889890700755932185696506090672012669068045170175943395927141550482964303568382051619463369962192978843898013545791972090866104139383475415892290160616652833047335262528207107099368908269098947524247081315990960954756866241972350008198927208378772419205036505783779824325963704469157450106143417038304229323438711817046379576946738563869226362154690323519482294504185355816224128254794086250338347343437442709958367856528964749528313256500047436131123002909629271892260919854435798541415142121861290226885199332753266704465788459672479027076041403458349066227604058953016389764873634171429969164016265828590293152708970846468853490448330290096902732364282553914390432557875862877061777176088670504481594074446200850584202750310224593988938690989865087069912872972588221900965052451334852095874839453678085243604400643973710483812189997536189048053033798584231528888186182148652763663952266785200196490261311830363852134638502212793169106172052524367079913892921364192345417042542037232902546588310594646273855095321881764057087002073992393631892585214681253188922697285464603430401275045737815431301447020978873773501586135583426771594525937879843474930380455189361108549265779301341032286651199099353981687146169411825911942987201530934623054169596535525440920366202248652162728550031863043895984515211408198434626901023581804774158072178148879771534428985881750857904568047217443406292279019525376478823969846039258363256375549376991424850701403636613702666312660256620162704197714543811457650440589442610841349742583482918331350120603672730245373255082698161443170504127103994301700845735448812587361237097428272820762056673747984954670013969580343898337012983401960677986517265832128596621179778815064058056817635392085642101836720703397366627933976855581784066817639408497295677698882694707767702513718974570655909251833644874027077840805465839323333922500391004284728680363125141589519343343382833294135320220007545625942786260076913140960567077969485261587526116816738237763178856785629595800372480020880401204517455089140169940684503730888595151995542846958615620173720556911560548490067029967648756788369961894750053367436026622253930688996338690720999975502325253130658575614010374704759735923877346927677953096801601289662535690746498296018407362310418633109556156948506404035476142821310770567694239433833884674052446576103220161445803345938965028934410161109642030204092678660508795916199529365788310623889304551519217380251428164467730297064236629147634511489942078180405555729109550067115797650284284579224483872635000190529428796327441118654313911760440051491712459310615484397794394233934168610283105269309787794819244417351325335879579955682106819344245573927079730165542438783082138256046026457498559982023081456867527908714750793939569458514127457844199727411745686191479901953882603528278262957782277794467857648775574330972994225649041970588707934361862197252478341493982040109327526163739871540517727691416437341151277450474718565008191492594909186206061921333747163827554987937076384064432710090306852033198129780546259055781877629066983620090396669117614244973380702033286897891278665583031714565366704972282864220834125697599726681153994356623606103620927498287548162762635448802814957535885063325779852670703655592258568243922698864248932741348836495477796103058608174818479364222746258709244723946629979295419997863937818790344094481717289358359663915006879015824205514910781705726794267169746923820865178661927013678790159915299779720378479901817523191949111895322675702979736968749309126898835493209418630417878889225865274003186352836921924542442718414926994597620834345396884525290523760299046803552074593381179691869763485628976032012452644659186410740945243236735302684030247283868012154410560980715209365430732015462097516492881247767265319556421983597084689978375224280367119407305088200677908134772977874073076537716713655840962995916503257554280234612570752720468213218705732946917509604283383048608029278104919859196717192193827348169801133483557220704304700214470742232842402240887621459149196291492117613824342766443693082332066928211903845512534912444576089385544828612332849636233073344243348452340480836768160675676260386049277412264700212361225620637050318593448497453169571304343596839671317070534391787245507020696135354526104802334909487665140210067762456338042833582699910041840661905448473787142790019095729145791638119731384732932142540216719068628388021370420670198730928818178250305628303260273416982356340778850535159173540996451344615584982955679212723912420440541316547089648034686962028529406240255411973489474415992729408833145900893523422781165219333723047064686657200358498080146797266332124830199125367373596388756324961768973803522124051338998563830920815700611913752301721736561285777259321579743812887615728373221417184840410984797340504349905862173014821976464199913576036354799905745751223818164474922432997992482085724956040398675281085942985931284123164868240440394308451907483935110960179979360989658872821029102479112543174805988474998621610007487770130467045373321899416868447837087673753934905791282065240601359236057209862608191464246602892267132844966690081634668415085870834976223336913750306466237389595975013788642253830254900403968264535875825823008382427801175218476964086394341790438590626445043414641972449137606258315595308449801931110663476723984700485762711568444779138255086333081524959147172552761518994016057674364398281755381830202465458629326758137426368786080724949282713350525433449071731771598677017762216471655202677179573084906232062931992273310473272602150813447615599727918848598794577300313253170356052323069926061347586795799698842814821420839499700361528946571618862739385205539325706119085625712807936952222122310827873610831544789129153148049102303840788328958932154073047194201971323630554377045117307082256450572412329985045357067071444276328775642148178883363964132721056215838573847183450107837309343229901784311420059789431599953291198075703413196195522664269503219685204521260743446908554409095703314374104751580003803072075764149472494174275313197324108074202720423034811389592620539737996267937122802203586560160185289295333243970519565586311575731445822529009012500816582529686298872028904890179159576144835336335102651069582038575219080114349822786837622236259956938176794678022684407749808988160906412492822289738538181957835161496816688116642217116152621357850148598723290427496197484750484757873655353909884864486743073659286935694984537708009304317198797207339461031111245010751377826743334034619707076760343345134263832624177093204510547952357432402373621081736142601173950910215351609632480550351396321074266439621879551293456192403933247514579265149992763674247320893548846262759767391978652264168993785513825078689968186638424407906097779626596185919884847802411256120101898694405522941309670390509219728317377557717948135840755276649438232012491261275177339932091770327545611690684311092236011264892909750508666385427072616838690705519015338209656555946303878581025644500956302802423707024353267597053845328807859592643974107180405859175271456877379079666412762668802911959052017398000658720359570452004608065765501718435383652125488563973328135857756172693701994706709313431787585771517867937137489259460710115666138174893002229183706637322226452586187920997969721716679061933982471845117584152450839294198435731815729720920752339318685014581442968816770420456609424725381735125573317546489032578287985596622886332781794836333445362049674621241717101416274557523113654740989951563042574952740250767823168973815051926421617686292842211116006817257873244294893215122159292083237231751486882203729254907685760418705699981438603203322739285065565932876713051792856110576344172021935613138265916052777449337700556849817193819061389118006643942182492480994251651900815473125551700101418721624180829104354280841015352314508950630248764404791342680001231053792845578558142948867681135010773235173770602723685321691930839007085993056657636922700140026099107151563752978399598841707951245217216035432211844381288544932045244019184052355238577339381940617471978871579313729463903884239666532755275256957197934117205224301120063062978066291961929717850437478612607583514616553834321130740018005563024768834471349926332667429573348871658498943938854878216136263552426458566647919691668934185819794092682024097265734554977854381972630166967813260868651548564832877223074075416742217391478232340305632449999289731624028198311346722499914512293455882186277663224232687227994212199259874703355840072809637624616662870429285747780249071820247326373405327507380829612569486267565134701669880372638024454238203756602611559242534214076854002156963669342845134290567343362609173412383182022610645380326709752910444936003926642931655052826212332475349778564412572593485950773648144143738541339279833326629077770263439817804253920423504888675546701224689619324449901926508957883273117271346662671002434363482347847219200105101998389913719647255947526412938566903875262545543357081793004220633609485885448683044268466345587625938372761928169332194370459230653562262717966763795401952820462659529439677292391827483708866516420446878635692817767666154073053950394318175307283430159957668136595608039156021314410893403609696102902154027150872700888642519600628582905255415159811411533933270058727610380595908650604288100971097576414055553734229369000584341581637976664473003568617539806428316044732052141133169744614755581427995766657044608446286710669113706120157983518764342840783792560325454080710729089103614722563594654835237530453507660480650005173087817239522901774503090537240943981508127810880168839631773335075812305090576227610849544503837617716539727495370574594647411629801807343847213679166832448905104257606607655379355228124747249852045147886255917906546530140471659950996169496058525943253427975598609226706264440747580087520210108720151126737964384634295593231635323221633704430177440147736455677114868395045551529554677823595259631466203643561088393872218558449672699724296471011608208874601396791442400072944827335979312629524561178482716728742383296001966839965211466789028953274936909375442995437692741528824212377608688847601101616359475332934417445716298086916949806579209950659312097870521324046267368443021135461962217607102574985608047124586834740660847628628111216246336439980238248955974006334093758473124168570338775676389763471981284469249716915969021190388679813427899256506387204952367254895615420790222069359187677352707772758674392552542362938151577859135115557739813298125423436993173488601028036057911750303937170601203045245561699363845016969345492823155060938207248135210819578424454859797433517910835790067432697740547241110210141782428110135127174351870653843747096126176117722278810763871316602925271422508583574548604542362009278670724171386727284409830784641071452531379946778767762065794249637071132441484500478232524226032619943685855021097376488617203224834837885671135926388175025541828930853048339990650239999685685529230926315540117910628526793336971792808812912428751055307991082108423465625277226093098036919373807872249145295663746148023943661001417975464840769169403372679239840598358517042727607664592125550348863094832836980232229250209607171048599977260336308107027749644917297386548430492768230749210816887917714591627627544962607816903397234808504077872135792695962825975250471341817228392920433660361717188052108765489492748371146641943225127749834050333115062505304192505507991220908402655569830177865534766326736309048382777354619360143205236160359891278209344231722561265995296775600922850918912611453601741293395771804277940404821351334562697300548832994317327742519996265570006817329927034983745066313061251132028115959697521587090191609108284563671333293876468768714150413463313051144099111156856894389718462958173321116086794419626857027963954844739890474646090778088666438503693776779148203170511087355476477484820058737559707152769839172626391288766617383234435917597677421811775077087975928072632869876700617821383898506001670590211306805508659430762768284276567942257414908577582724592441440445927591825639279801063977931063804386475465802281851967281991056019473468920037735381551028015416475310337413659278205164143890681649329518611889109162743375043031800041323770399144067001880739342617932236669672052489154475169628791574140886936742336276657478978254842554296378661586250973911318179629774918995019775727575058369858389085389513915958052795188485655315767652778391591984335915446039550849084795892363722994726035220609281864388363072421751173866400063596477167595809033645960758423121676391167024797388244821096802735586431514228188926673676513951939135988165152355654661743157751063117440944900384805623306507512676992012065654368994529859754192643924613063625390556115013955886262784689151800515710159783497765118562630423416568303739256055725897604175943886599798410907494459102684878415603219648567548129393403635696261293030111216542675972448447925968937624812307382316457860917461350498542134815880470838951391204969912887366090330901221996830860932334087454517742825661919795810811311427954859927493054993370724127671557339242751207187019469446494701116831543266504919155903450090020385593054295225637926641990389463095447048715164741959116224499611739892289183048221181752957301764901334866730630115856399159207327429468354579751943438926871598598724893497378700164730026267033690446242278216508531487597356050951644365091520662385647922624025539808326799400099861979475413990962472476509685339320807931574265992997833917320380851946371453399260474159527545108626306848781388701674637531613695425087089371667582584741605807391537429534354752434962693163464469602103043918933446602595686158962163781966162940488031941799859753918975654430625528365434953640842953371153532778623229285947766111422694877028184564807010991464191111873292149274802669958017643146664935259180247237805151066894219473834047674275707350192259086179450138091345537505482930101073512849966294455912826402325007244646178539247514201035480213343642711621359795498615008537553088752475768000807510475397127584277079987868584546148858848702079815836580304511355424228586407523770210960561141918186506708146525658819762887531449176262376386428302666991867637370057972582146009839448005441132725861660999746353708464707257315581986786047584579630999585467687779390499533219578312603691700393412092265679909702622138291242270375762533650250175153212584884011607043469392207288677165858440512960358991156908600153990695545658474881214509019324153603522305477493931423584881837079412555635075232872314316382964915258872348811015688162642265729517212665760633050379108469255856603624099524161131927145315397197309509678714763275844274300740638691506152054374835004046781177444584270518389776233332173218523348094514602244267788788949703053474924894552722990118251082828978837552937490490033922056748221106434347053139043546613103354854524504856945605310207436329319278583735338864489814475733514376989448171712313084482730144350381911309478855733755095614998209735554456443484219389089699020252933166166591772923038358129985264004161404484225078086208798885817406270133337462298999987558581592664451002830388971347718513391041100547762041398102529545284412530417448733889167882915919896886985223649757350650523235777900132331270350179074991951385334999068475868418684413574389035820827705767261071998553196518037783427878427346556502239923772897341480552935539557803919502382835235766948747805894210854764248328565023938679558505443909924339327126722125726447275446664627392950010904334055588060360365735535931289269508688949258980058542113432698631750762649049900880475759555631584102355603609274814994971064587048874550257474727238254963850059605210513527068486259474928896835921152310533484988084429840350817258505174430933231369593613195681595432953307206211096857530289110068564492059545789877964765612524216879314427137109661264754131813131542393671582027014352676091543772032982601715148601387277366248447333475427628901899928950984409827676746908244677537047432725275116075615744729989385887632077665670040310967293492377301528389025450839930592029667329711514629071240437439706473827933620805909177166219078090707925867261900486108020333149628452462078935261346052793032604947816003951371565459138165091799710341442650367178011351077697608479552094834467400744833473288893243376597829329021693338258139505363141988352107052139667290177264610301812115308082589552681875491469395694030406327505155586178017972886525193313905443829559847195684306965657383594765235668013921680264913840699337466953642538029726621488202073145977388778841430328696521912916788235597964474365113005204770119242408067450380003615911829053624121842347091362012805737937341076914692478605213773632220176555476163511071627886240800212219870299148877912935516949946608687296390419149897192269272968260727922757520756085822653434718324045787479974115583172000936220576002062066971780082684640997110944532280649533854081350357772348432071888352196332485219938219191497878254317984787885128248513472931557121006294766427502890443981581711199067530062378419181754359547785483092998415476871906173212940742145128329159595527113999412644822385581522871702864948944642669458033404704329241351727320739938284581708645827269082422329374269165990643830493603193013138552626683649620796090418810293176256968281956348614927022487788603263565888830963997462926532731934110980253465593052948479846933682300113444948554800331053778596393589747861110899525633435935041306749158179362319834108251443779644190909844508257010076183829273344749706344583349366637745278343228812309833933147405592627289765970534018962968377835765715409035592027673983324258830174527334390837253030963664620000693944064414129693085048313392580984485992834899206659322255999881328585912904069637446219950320708442377839109568222313049319708500948546997190890874849000890735774935080031323670946855443753137586205894847946460001118391298934395484783569396882661409271540528631615111527048277555376447943304001064074366404523687032691269533172178212450859711901815368629966125296154053794197728067278880055015041825689695809753458080278065002902988057523810754987700464338475210974103450711997608417086970844048359656625774770922039379047198020694190992246335546389476991784918656751958435385473759150627630425187696853334865213694023851444167365053370839072480013289124386072746441052788629398479925145912950252841459767691591444230059132923366493620286242742995865090148476544871792863767922977808429776632883535223878745897504526425010222046734196041877389043112551874255282173568571128472557800306600127866346946873370028701256356086937368744643501375479140963106438163022239211389770534421010223256089515099299067351732357849670027682658699262688613927735249957002623353725755597307749390901240465797464628450487177591249965333428626788446044165493967592173909169495201460309190952360685446889698913349435209578046262218850518052390092322994323202225508539668102561070364582110362796784006697703236302019206051737237656716773086468680040518086824547129755878003918904788976140621486187924663978193549845064197972235144409060746485212217668587631392154545510522015774520089535033232993414896177744052649333321019569581880544880395603464775450364812311071124311691012190884649605715410565525723322106160459165905467744266086931081975394706714846562996713413417534456990265180333606764266797144251411039804014799650676092059627330343436626709560043155601135916071492465633251190202508767767332706520837720437535558409215052627633244271968250582056757290143235292304580697547331073115522838136507574155509780625704167957561484658743228244831446084359368062826791019921825302672193622281339122533143332669739985155403735610981402976092047457886382550758157259781062457274491193562226191884138618470990202636774133472831211039094100242555115322260989602302060316889694679817871202533634131171282715038915997518213222875165410975634051892115853994950729616210913742895141731850464748245853579515988283357554732395685578881281588589874750294548465471357184077607948766376750344525308226007797878670672169311278002828103899138430939012421335701982241966292111005335886091244369652827060718380449888898166999326445888544937112817348143726550499025119017039998314902085459684893615622620140507963028891088251275060403025617777728651864782300828836125921746203975949876337781641510573764968545824890165056575539140295700688477443378147372361165995726072416791147543646922201552909804125555900335894310507416064558066140947070418840618918735341667854355705966304483441736592819052185793130493683715029587794105276509882674531621596081955804507851328615362802950273691867536422941907155568803181561325334001944621346136491235381701097606464205125991508755872733935553621881605827560725570730664895947870047017055788923467254215223614605817624024411685314128558936922940532172363164206031098668354396163078526017707763459719088647376762877842727821724790302022397820998425272777308569535043895759095019898684703539557571860271185902752132270303051103760742954508878136524605945365887376683845550880961319340398064330372251448207893801427601179087481226637605504336445630637453391805931976249943308519642987255262670588045932939939886600811798894454116425493840661609134925655572596389930858280491848498914373781778146769388056858025497920025695702137200917189408421569604031740596194103091794389776752723491242573518204998900777333809307089213337440466455129975636929707969543227210098842443719947903341314785622224484771318303381737242359292486926801121961227051230109943749134475246535175320367445755665976324141130730238970802577807273200656602040555175325657191813993498153223833166073613039139858876721239835359442536587009095176678494704933286178942674640112340087210188718943437743068133692233829097105259108527042071168184219321825461815896361394842533327003288163797075866977506092607355237886179434217777819503494545906190528759132477836508274781188128556465531602140275127191762118409959960375279894772964562551175426914712661327062394952168200319410657241180633601758757152689892657241406695098176585217070263912587298882499713434567066386407866304508010292545863682116468577384612252781461187568898763114835935661636641407321188840085935526373600816094011338389731278430236375130033019565725495515834572817047125493268595232888943585689263703401087577103438333876360799375382987171144266942821419547347534500689802476997075726613932788141046506678305494147559719622032514326348181662637813958358004315685225379850686179720531266625887996761032840565883585054712737172601818507604535153112039144932939317709951157170974405543097173644779258072531373787924692747541587944552035113711306426683359971581522160353939056280825846045777572014716365265424353584717192358045473378419363422841984669910554210349394786673805971422628114821409469228009935803749337192549968296645354131659668766786036521219856904309405438786950970394915611603762188208449164954335374679092536818650234557151851651120090552033221603612387798791763419519397995226178677947062234289110892714795273377205024619195740909910956267454208589171748194352568155575855102899303568252900248766532321463335515792011154969294075637147349217253033149411625461161432919240838725567940671495497152815823379188057680397567235099949526331535643797561052699790202946048543526385838240671104215198499871723160728229992017444004915038941079079154353783709598632704290116413521744024399432206275049696176468905412659340267932616512943721580020308796922561491081972284514630518582300893517973626873868440537988029484969342465774196088197781168644986183813194980551081376181772894125656242176620519281168748132515395050527263992642663064358980870218581258351900094466690730818540597304563779857140710883404981047738678022854599235787682439132510525137154185301258806560203427658475897206604819651725269462148912002203769696171841454487967804477323679161215065890073154310742453153042940168677218929750578274921420427448418147493735591598669459765959261419768787754347408531413224872982096820731216934104997462539037355072492669849975153586166633862663357249293928728002057316082286312858524405184607018951659995323307875005387844066779566289315173062619177532814175482744339938949401575893671032608752818265963341354330693645719395716739802536418738757574060628123154881756866031605034614615175290188765766593173853791325505764641220434430676778402117171597665609402816872025501357081199864824019411377538027827678068578682775264231748808639687172978277913640533365111401684828531103226113195592320208868736547527834306870827999881406383622809656453332606349747868564604545842312798338470474448051847063172903711144278341230888189194563078188761368686488322747995913939888191986866936531836564497315191726383475414466342960690405495565514519297818174378543088276698979353377043515752790174302589340916084924941962091082392130910763077212857198798626010627316351732615792384281910289469833214354556709514507099164613521030939673522133599024102852118848068862392560025753159325954513181186413367803609094461388235092375907061758576231055154223134692591192128179358709341292462430621745384277167120772558548188233136866685299848566316371564183938947468602731816301186246510290787489199425148851731548938762221581337794664350530326128543514071077915399534150297510407528293612484080116893329962803778027798478831532615996334628358630942524544189013729132175077071670690973429335496985228057385869549301080842709340023438672866173335553421670407844273795907161063817498527944960679538147626815035790194216457011302809653822380697456398400731663366739951455752765202486637253893660060537944714264959848299249476925734188206985628169818769827382523549077404982749081993934700835214156478986139562326815990386569539179334497581890117808919399878973341442549094272993255762469454820669182206363075112407334266945187799949181374557587031177362729882452289322504271992740867568423477115221340606170642280362430223460719221850993684317879478958895178795177505633664030325301877261045402699430951237973811931055580728953620678623314368227916437471883408953660613618390615599102820234200530642628017690862476843258612373498958876386323348005786230354571897853771638046980599785791146313040970284638349738822261125822350602506333197456322037601786003816865656038530816521421678267206030261471521078735977130675670768813348883325942621624197301751550677965846986853820585040236329142577938289587085723987013194516941441389966667841575836362298653307933159142351602569623422050473439319839034189765307117942008426162319042815548382347421371418702493635379655730741484002884075749947609642086811128318546849849463492543443060264206219140177583207417589447361640003823106976337685380092003607850897655280017103118362890851289230027400327805219194288133268640033234884832504654160056697098767074428991036939760692926091105261644820751321500035032370249262949316840482448913670348636306231022755094041339089707911314992039361972169235385440680472166450812394426962192367585724765603881661214083079454083553737722880084291877358838249813966390817421741768690500584600937536688686286922127201558659469436508937229495325777293509888298944287992774393277764036146331883047492595161082071099645399731768327821031727626709379639257294926471574660834429883500447674388230974904135680472965107645885152285611880099193424120857687705432907624153416359711953435235585282423926389093224301229162693668527010598425920807836465112967130137719884610219013540196695130968013486108893274872002765809309678285478043797930939330235068610734745058532764037309654319077898867981582049037109361334210538202327131896607965757070966476301583830537806538830043725819571125166207307791854733009965510962104707548782613988277328402029243534353988322412532552096264015509793618810479729563142425593118695211911797814548336417205091047004754929891880505433478815883922873847697291740494490752646240361544219137327889700368829553436345262521686343865536631401000783805650430692537473276427055392578423688645306389329758108982240720640834428820541181605717635078334513651414219838596202984492890104119806556982660496671525129305555743098653720384990399479948045583293046488229143913126384075004835773162071257372371043345872154691665341907252977357724653360910571855428715120119495206880755172200885830527914108967057472406478086104015776119619323277359726375305489245235886556943695667848874978574583380448965068168168255188497602291945412087615408564819640154868162735266654256382140278541586993886146234482651777137832594656881768928834120881028119752434594686563947449367708529107624523299363262357007924554954879018446143971997388953279259720578491188719841239060210239952783346819289845299449975313405620731104773572138160665054972317399228366148575308733692676461623073868724782383864757370672431123644102228932310948387246634480831902695100065211734785728173012737312019457821578729773115555572236646626068925930139736997144707911575483325820764194827139948429102010346005190179058225666440697948333225010431162795410444456847550787923878548726293236418770895272969650873977893720041725485257126750814479289698869968470473277426984216742126611656398092354341177765555485431949890638373628008785929278751032927849901317773367795901791109308261912500813559760198607616734113300651049868583512180742187324433238926485929244830240197876725635272346950548935167514472458361252219840439561429636392432932291488590607687293411220599132734862406063273764343294323884854849937098090294238037284617479108368412591317281342822871012674518358697997226775570506215081364632911255832395659287065649717298417319368855764360718450640978915780825253089240641097506656531933020209572165186596537900969131025481622533726301002630301321941341239544758304205776278238998977599424999855368962616951753447390592668715021201376516150843129470948088775845657148447774652483091513213405582043048746177036820394765042137894353893335228483532196866174977106497133595533809407212219655381306314997876339030396217022632906701793900982995700920501065112525214882309539408772657787353675977348857187576836192780083281489647331845540349608407782796747398382261869091601791426326027186664345976263152239212544482102394111078401179564316545784778071531290494335327993607298901747692079224424149855028670963101695302259406205581766376187645921315646809570369995638276182734138531203500204650620506037805238114342277002033856320946852925729998728080120994108520270959161973400520528919684617242570730551082461512917101949598054771301065603151003160520853477883784966764698409129177158346301375216697993204864476320543443778214411738309700632867602858036664704789611243038092012465378006138755140946005237851546396063279875894988988761265780267530729954502641337032683461730557597414960188286388516196144293668113781540146020205251925139444400465213732164590185127177246088807191632574916859062854928689223889062384973942997866910448711561291934144974360968470803506552091943089808254108673020418349647822418042316870991107526276111888768828149822143125688336081031374635070030984763389192117906284089543065496525958245481112561864576034639161124996185405560416478306571654101616164318851503631220331888374179829042234786038574236526454299668664481405355872027703826931898219879788860040339229599017231208704198494264516537893970879972444040291064098614982443508518702158597297922257523776173534458752481956667385181058232569644175624341900761841614240145558212902968774802281337760250479993295895938915511154737706876579785434899051419147372781664787092205495177044972937919428684664701982565853229423985469670438673324598768992725329022883148040208028382014323416230345160745057642058665653745287840444544809683497276074571759854047757641585823514530809700526936146133355605955188453923213761889889195003969626252371861551954781179585880792436605835749396508769722696729606221287366611608129017640161497000472570665019818488652143459096878673587915455595458131168629518098554342286661561521371605874746619582401243101284140524423032839578879012351027420693637678575583242684378507053850281057595900254237988880325989164080830775359196414523447254141135271369566828243073510563299907969571245793512793479681069060766002681264150382123990346528154258113618692495196492373493038730974844868520593273542162554607093575245444981247650715413301273911714744971239891481241924628718451714936251317632518100991482493992023046473861083218174868965141137264326691580595341371957328140004250356754980125297566816178303025991000664719805264280521201886858439985153159576723330630478539978410962004670538151885228178561508872243638012403020775536518895393616069739648808727264266475867720990435042786266381946194181171762744016319715516772243584664258906367999007229537756737969432767757401189800163237571145297007972365308980154094782450038788572170307926949619035574681898222543088135147678042137235601881368001833503610987556921636280929124247952612240018646697989155013532208830612705083082445646273004128525546958700631345997071970875204117868676545011776596774730640832576468323681556858064277494320344010423144059010854447491357593349048905484348307915668331014510410697904153896389234930505493116089944376602712461371624499155391128610585807723578353002662348108015242689923660620431639537221080811526399378516381374480515852167413884446644665072644931973008758155753545649658963313921537880420254257739572793387586361551785102747565156813752303353901611690496778620120206861999992047080343607886338791093587527372917785505016281590580795931921779395703527131864385453706867486877497312356439142138545373184394748048918197399181820351616142733366791026893360861779542264537757437382628013805058718864473549466558115068307985973318523108788925154634182085529963285346887590118979398071670113657654515115525186566988091132452177927202588938177422981569873251783135972210395191343146898844682405587172410812973394673991643615096500012138672591803356289321633128716068237437234381172741734405552464491470251194262783174365100505013109291477793556883615994324047501423287004500748964667032449606134393470912608010231970725819708198156670004045938622517901727741876702790879569349018547404830267336490299350498514858416611564778804315618708242816679391348656991776566930420294092118881569394864934267027598521446758977382466780659268102062742330733454661214520714743523316494087577120680676316436830715016616556310972013465306992025091557716945410110762453159734755283325519419094667246816751830610251888514701997665622707741438890443657165071723458299893524324032522562805707013904567747463375967626681261288466599991408183231742663516578333758795573188597053881962982569994179446800176192757303972570891582172319721348543125589058095321313152739959837959470300119746650016258597684785395759310445070423456654616831684318190842081664768179677653005284899231213277398543247761133470168278725778335704247225484306095398727053023479645299321283453125437767499520970981053677958550602570149999154255679217519654972267346734699432698025568068687127776887529146453388473403504077407469606314126577387369148028258656432045776894843185957265541909574802549800580930660721351833837331640676425770984143574943948104377606702584643851493878040992475101266986990209101683522844934923130265711634805233173128437859271695039169417863628000685183993227208740775346597364503848888318136121530994659399867810066863711213199292226276705565330539236401425065299819487241277313324966965733607294333180737022614252382587432323701705004427836984456624532397706469799168795638863258273864918499923296485129726336773932092128012097766207045308229577156659718178079252008586109183174230679458902724094943006083584531358343866931300905361946312798810216536501660313072029137604517287914758745917964231867457307143857729985059430948398845534494920810542095021315552463319187971150470436361456661208812694197377952605558423107599512205503593332000570413792901015921415316961737774978954932924250934058188736198096415584048858039980882501298020877153229795406865335348697833812416417244530542713865285654444243132546132085453692724453725337273047233109275297836412709045727623755860822556313916379187055895838007324287040139281532170890794199168708279751567776472517316182809352271539304141356212701332777777176033722596353970263903470948152049113801160729053864639325079769093182928351985310365309242853651037471376725193237024684024840488871115737239454984056433180562113627183294042788314284825156403147771672486450225860727242004015532040638363211821106179097126489396703528989366018184312841767325284917263247369763051269054170144686732523400469049979184812524729909929478948309755651410816598631100640773960764364973035978492923303992228835265460323263574467749746520363839534400167340098619727629446566618605845565150394029928310223222271706625691186512162774902923375893444038527167719456836298056927590965709285035812468739949066487434681159591487367111283794819551468767377362463713072467599700957204801952959135083769767977104435701032860001003950724156447239344053807289132357082070477345901397541070558511400363887214631956343525669330436466801058385014489500815867274639619614150048588422354319346525072440652673702639821488460269016650275246707184992252768433717510852750759174942233162305460547664281820860067450733757759619926903348953408454782209241522646623199613934624581450897456447268039292681502780337775146499836579720760970370466123986736067374918136726876212973526854455605628547477220954500486804993925178471239205289064269778302363875555478984367717975033674578605568966566146270455254454668783172219552641874856127112142762986701450761830472755194136461504167252935899300800743504777970950537391469497541806426418407166012467252613232120752558472688781198797546352064749972712896018949053585409009430363166018999448486828897582742831378850219061613376842148888942668270680472126239806537586479870187218133955309131711925468154975913053196716372952629113566743884521468066602879443175846960443114171255980575746056996092315721964149632141716840575422267518793205399660568039001770522761952167215254528975741517875745095056027738820684277925756623697990829385300701749979357457705740139016064222189436620056380769801652613035823951681849738851043843146796469965920121489192185990581978709310278239174529483297635802320998674741558471332649805482003568596570961546922772536316769546553622522257713178953002729660939500537019066733404332443832807386008389005830496354473700446733130456113391789835428432864031193238063265164136498733830358849458636401383557002096320017469699006050658144867813943825065288427694156432775029881504031132916432457201110599854912163067699791578482760571400966614761547517173164566919085564747372149425600175717434824486392107527379510034969338516919934957603925406440222896342956490670793516980532665154645574043652750122235829274383587887250000861861399979473643771119782708028704244255369955521280448000819253158961078932482126904664888691610847598343939889840695331867453284042842504534777444991586853208400689115523469648802332617930988011262097222910073017515548760599405500549631315024839667664211100253350958580729983356019603287316770854069182573395183868213147531117830526399678122169320684842995242379098669396761003246966895780425571259500819245448010334287164451377620401228146343892881641251131624567847154875001058954613447136871384585850348249220539588343368314797866523722599073616643971377520250351077433209167299343855888751054932618746842011411846157050035595421646971299460020176094278186288524853639593120424617039153649095442043277106410617503618099444362329965169181113917796096442371085457632037049267649674470619725859748376918739955208175746352678714405417397923669376022037418193153737167302993592688737949570505556231770741621767216607349740976886462477039696370039550912706781088213267399670681311609288331469911906891852161557312329410671483359485780339507645188238847678306123661694634717386819137760532953314544880731833662570685349230393349247608466719826569368739914560478801991162010090842093581089400061334749827476912605577291053266741165078189961189638933706662285808705506909113485924199925994684517008024176541918247778448212781671963503239458562453339398143836204408289854508300475637219284243373566188314180892655636783396685868295128403352294156353375925705844513492440120505730695252298516447267632288690397518850658186696939462305157182198079270542642115908551798691166837957019701929067389958554246957198814181831312097683530838690093640203551414945476194878839926420093635177623243662086290892846982240317406645866582204554539194576031997656631631473337068129086145333273337736801497555194546188580215857554275402792732748894366148989633923112504513160183901901000639706836488572196521581881402441729389622784500958609711396999806787340553672115386650370719910526217259471351406718147281822887748865520052528934201481297678013383489575100277794355320991175522724314317781399768862765366356916380576658207854252255941373958835142639073265272059412662561576941472648477674907721966388336621165271827386990109683767343987986485949909004989017991999114021117166024227801777313772921303105277841168723629200709779610379647486987493739470427243233492452788111971658324322674876749050391514635685719922572283966121883341658004131041551000386816058283278564859852987368670309932393355436045987954169937827336280093664660419156747883448107220300380568705576594662567667084374241403701855184496089025197001454477384813626383180460158432170403955032695873741553711822843893635548958534094350606652217967905359500121983410679206772201839112032650755562482162477260573847362294640122791097981500432965461143305391563881868878140128821244898523039957981082771431506921536585563120804878353514802062755442547571595383663656414706010867380589629572026486329625242644008004686798487773989994672452971925608612453423155642254990484458997148945193170703866439681035620228364977388737068908589972850993839524095220875087128800805384919737299537189488338715476712584752449698504790888079120654185562083017467937931792035055349280184335860144805094345759220779521777284542200745720505484449919143906334124460249702557290622485144260203065921804033678836968001557785138712468010781093491813110488746556148027618310232073464383264978140336594625657559007039786999312179211410724543313464413441516056829011806206387735591524218385273235554000571389239864532878446558968333418873983226100570623899511117716276474802026268064228993599280939581660151184497815852293165608184294225199599314593293426642067730112940895843476803724816098986000649446895760757895951462353328529685305972527497978236149453266290487949069524827604520815842336533348506916202599564371290397083367755574497791398757099094883324725969647461714247194145438090055207813287786360363444060295617383285447987629153243762499492297224735749746286177646392538494783163674221165771473555167728345449504398739361396784628066741853936869992763537415992503622940266565115726489433960048147736393573710771505958418494900959172278698696358005148963000301568505862584713565245156390465542415591860503985240567886332249339166273888224452901965105841037437168860788311819797248572383318808797382623811822554172296462879382705904123997797471886062410117852112518789169339212260580026095979294062053776954227805613710034380056555413473248533661152220907397086199830426813626039700374933282058934023189416491267718323724353966135526792204468799345422093246291836491100457041390342501817589841639110843582495550333645908508689677049156547805676731871806312953428031956161217944564088641860904648665222936555158030787974423448731257610463300278739505048412322402529157155527263998796683365767843950882281275241054451187164909647789866707369385294750168428372650189545521487060639959469372338525513512354930867038158925039943930876107566236747861484510187162241140206649696537415655303906761167903047470353822073598418633523552553991177702081181789223585948864155643559991974779383243759210581555254102313945129542546065804770031236739370628644686040066437869034910782357617883239125142046127370617689271885343769556319029454695776668424412717401394170904458769496892301238877323780568681741513037675393507909476708299727007739692598451315257051092473089636241702054481640450675899289056716171401218893264643927233604561806110865191682701903353766884148053507518544311968072051415095710885116613370602039664773715363965657707491638621043731786369941649237727816362764842289498070371197369641890659872397159056373089623056905371939416478051906157011692174121519969406238708820702268007818004906430773620527031080060230814651093959065228877767622755634699866334154661814352359319723701092392078487168246957509426023667869657528048215825295286231392282941513158801313322459878459572911686969288913727908365265430178351874182009888832629104537143028372868579164375986776971033743835369739009331076734133910434248029350276553203545993384270432751568821234533655713956812440545939441173146845463462748500179886692408529617668325857785978287067793980058707842962653698519160122247108004960776165709205977172419664351197644106657022450279860020882842640037655630878405402948754486986961420640451959212530026971189599744572475624688297031687386968052587756525739219930215004347713225442863010229505316988271006310264334653918270896231972988345727961051932717008760429319278195549672124626434650184039555559342834246767643011841393010221761956052872174554594797292811909282575764994222969218293533756060732841133715640155242551479929379757479125299354495193254475253170716688702973592278306697750583770891710220403354020530194087876067545595411792849969539757472234262664826850794549349513388003336584644233506747321888586167288339468346178027048885305275821268037444511867102200701823820128692470878114887297289888367633960216324732141767601922211676963494747403346210633487284838927025289118844363119014991501567330555165001771529402945345496783066168445853524103047879824783200403519839030809320981158455776913323438943722232658713641597423707099722605107451267711539065858018108646935910452338093744562684843625265383542973024261998021029406179226860116181263574758369575063127438685597084153616440461674426442520861909442227282683026750991263947972937057949723314669021613181690758656908318207011002459211928696058849706644958889700290977691472762518443547299764235441654966359758592680078630950652919678380126826858765321025418757091617736643461090971124149066361858288242784732987791023660613804272077741438790489383100177550009228709364821487266741787172046938879855449678067279344293665892862222082770614226902332758809743035411591276672087755086375932646086769499521251634227382958249166632665085019070347076014601623190874474621532378614927135562111857389384250252959261432603941267423107887130874255213794286909680040380848897352077080549032612951980588504148173591778779263351948265633218485995269292745418767072005201637303079041365524249037351982293445921865087148011345167900203767547537134199748103933418788467885032672200970890419801517531661576810301844226042615717797103148079150905092502950122809203936296282005474162911326802039648033646731276491579803588518017837659378711608501447439052305436635169538027621610126815989817982269472572643002882535380789102149663618844052994302776673582581086879955208912060988115210515052204850299094021267372816989121913454435008440277891692743446587710965675447174873555169298668962675363368000013065714589177008857331695908568190517989898380724209120228360588305673906176003960535524217437955718978551732249265436220745991398395073807411807969502854862768622750447144879741643707173047535856769028752572234860822643930647788824320676690991339709514750119606118938974594235590666375469372304543609298715971553528416125930601986370090825932330402707374780329891124331380498884421181814791112554292681908637005661213311374710426583908951914136535673805675357845871961157732012806050323228975412079290870078563163183581972348226178049145475614532136307546554358491126476361768196746296633647081912028463970249707794310264329283561080447593971182578778425118027459930296153451145967875169173094532864795473891729575892346761693730165931713899664937012002066194957494688540997312682472676720910022121108472631597345107898513048069156015998753739128698614337160664180127741574952483416268631343346960433781238996356432536866617216862695002694030602666316515325446758066464853289361320222916782553762039390851332600174805484864618334612264305154939160066101805373892166690798121601048337438563496182588703999782299548116746513452192507217940110269400643752220979334690083730222663822811495302453950423601554807931786439924337653353837681826288797174114988389535706672138006750582949575084860483792447803337641101248954428217749451196163801461753284056076645064856661903798789335491529368265544793869494295475506483026952977795807451947183957159467956242734828314806024898524872901149057949360552307844798934500786444178051832370234622585130475778542893592463680348783638119193756165234848834856374147436884239105302810461583217718095160420916863754135459937594468891696752838407529068643864863737012477656860553718653375037560191731115707382691121198387313991153987647056607871198764334146935788575523742318410069781080241548851258801642541896897834078367148114912063424167024132397475979577070738190224052609988070707235986556694143803472095690393032366656895355422565943605537628859772500515784012399795913010140882984994664823223025564876968970663631123853496096229055791815304509952517441954482141437863179539081623141048278777601711677998885109049349344093206708736639060956949326072577569030654833529915053858840087335624937871537195940513324504793484356695100742828361957679652248227365010927117212255926000903444444448525276384697868443453086876573049311623216528416784717474810768533715480186679583235265203685515007710767895144764203264382827163032288716236389785156615469019084048193683496977047379842605123922528930790600438662786880892173543483042918006037445684101695836902794838034976944419517549438996336707155692430099962908525246779616464889886837275329165253673992295327421755751693636065929692580412235605649437218595684487433608454156786735267606918327867455005270539835298831430364203834071443838386910244842779200445862346102312413620314892659870313390643984602604996987476860587678081680414780015245770626404761137543713377914077586048557721435013766220700329027734424511257285172012015812058124080451693217180249612592445766713786090853576203114542812784658304760516211603224800796850040288174085035950959202160107354661027503346228451149611694011652542772924437942179943983703927713430306240030766220724160466136802702277947632103397217503596834825817001509769315466252603736336136565468415992404202683375582414159993119347383428945456414126969960635127046647536243235530538826552167665391426173491971451122022083670869092204399910222566090611543405622379852791611372208191911918245634181858165166564185526172412728470119884018206149897305578984874821393495790892153811267017813782143124606370547328403903510551324344759804838984263559519811339494422890545634070732157977962218470433972902201614362128834722486951317905747239228415516354554843093851605691257787083658334686034804276508374688701208701334181151603738639155837182870786207024678273915685427979273790580230199294052515242979938391519596380248561309639429545069671314675389649643658395935309415444151543466179553324748616646441066515171286328858379124091144325270840804071362058250816385110436386380887526304859243961938939440132992874884530037569381902007800756046866652927900073202196854165692694925740077952653529069554362796611085209942275134607912058613567141412712443969657287798354613393967608181808210710426164450625197466388396433889228344414497900517857235215574573767119152416006546380496802077228627087988873654522807639212326442678380721935856320289599828277459755641115349321620673299710468012312314099335362746596320308341234029518312104701959911437435107941988247481815740185412410710318402244946319349766531251922305634632042680717817359250360660980687604102321641042816317791521342032076593756308230659539809689590313896269244656145506412204077115023326361169197452325354517241049263635963544674847366691757210457742801033459230618160245535239994621043627839214348830579067099875165007713942995424236474279401198850628819864452430626149018795484313613118888913857665149680721021796550139737203368112129682576514078563027035802204314142369498398461193860314606987126839069467723021960133615931753848972742853676121051544659000467655424475619476954341045871850645033004813219396274540033557321659821172132044647056282125982899629937502856981479428482120692254955978189355253747584817241193180876731675546397612374652890105126160449527493532251670221099566111884878650408314936000688472790146067346183313860656805068108123429611888654655471457611455371490102426401132766377350885959110144122201924421651919547068557166335368655281953087754634563154753428881722044682894743046872613831164251934309926480210350394107236700125208305215484075784074178375805220932837706796554713544726701256352933383662220400591576114885719509228979616864575264297519309772301491324897564954852291539834191826527469926730144826839715324849192554958047244327272522721778511962113460439113345433598325267389236109661026418132023713345940085445542953941063333102209964625647458153525548728749888829596848028623001636409790839771258912314054981205607907259114287642154117767279111068060363408518574493144637453820303444493158991618049313197677470732187896037182228790449384004455127500287589265772807802533624306248704078233311025039307159430533851876001976554890404511314330139125354137199339113874267163661053954129619982852508532212207066988810506760029969713061347741761889373794605631462866838398768261097735750156477274120454171017092534663932075570245837601806814970728107938855737150305351454439109382327335129027478597103917125836826738690838615171561410798729393844336988549881619268794775530185605571237163094149819210608919540204403140694767382845177271870063083987027763153374570871514644930253166396342570453512490599669596101401627919932522954092213217367587879491454256832225195293222219575776295924687540700407677224032495897357421012059421683650678165392424709537588696527975589326894226310163921214263489010735414808126336514358555185751205598746577170530550094939454606418018045286353478925412972823294905706604197427996939239340442561028801118677263368087193649755455009101496913570254339279638990034842110911151498801090858229126946297402296696085578121799130575559815514359875177035369027578939553358901865328766363026515909537120369601421655374680514635698169984435113432527132302943284561349875143262055258699384112112754350834211936596882691115536728938983554183107738118622926130003998845015845020813756586551836056813223595910721010356181611760234059591894874890511696321422173298448817492095964224251436692472117414943327636068199717774949376617587229556467895928390724715324515927231802211950355799472807763123521481526474964180988859003961544915475103573481212003718367953617354863175092509864148776416706629408725693745528413896776484965573829296389235356384598643644612420259964268924046874882787505693664497775696843795534370033904535657836843888251046465215951430602395977115303648363089803708648083465075573423331702165472153351042935152536743928774088317005485377377728104128142140692143911723311427070368268294783072235317387715832380609663270080039490062630722705298914618265079211952114980930116454587880350949948366777508585917240036536229277617071911159658289095905113073803594132010665163374438060842032955053767575583086706729651536181264664239352849577909864845397182772969387086653936016823276227514243825378766651796375553676983340275776600638159996411813728233496177948177795527760782104320661144198404950651954544373578166810449740860876646821559952189625717078456986332937253735922576061068978930851545424852903522413438868844661577847119823643613630737669305091977530604474062991307383816784033297094672865803449368630930747721983177615058342137258732312085841537267971699269766272162830266271085799812676260320490438515989839308520624224500656838065052654020756311927711695033901275833751990378140560839251887952473819382266914309189988153795794336344659179297428937983658777234595990244524675977798065149707757364301420830878200519142520855970719571375416428111647092299647471895447905005194719820099378599390541115498963762242622670067483914352483058549382797560129307449617964121442677323709154148421953939734003509900495213512791231494853133280069651134424487067621046572690021304136025364204198643276878788878707714760889123247845831840649852154481959977692318073921734372964814835851900585421829763271927812629792635336226424138774077730578615933192608594933707531009740039447359984890140915087448860183649401017330578234570146515523024352193485584101260413702592204980400318737122999047709719405267024276493306386342298240061854042149314891237682030514028681658959659294147884136577410065474504159103530350296891920627617816117453727749915177478935796905504996104572833664875874255542555497195994711287248716468529116250678691536737707102526798445350038846727454773706351077145660912203124123941580442022094587919939180317649830460464002848816713461525815947340770382647371430620920457382087966819226517322000932753902338083497005874559092564846726702158007787859552362165495987038519576419255392952676034601422762955863141677253239796970429642720041448081043961675639657549092119214762782302391840716770887293414905060067175860713431918966433414990193132846621770180528617869001526379895726864388089060590107708352952244568576112350214700847278443304525378990824365088465454172572338912056976367377589738720578596226252890267766664920873997883358097672781641735754685730334713937990952025759691312918054328198900560785671355576735783322816645902528034787800988314546202327282286789657996029417953520550974688081185386835021705495478095151828598516714747878216898937759463884543199081842883350608966797264083301078733051826849021736740996444674581158080233157028926794112394738009902708894375321397318020222508237441656627550935625145560298218273522312281961433537768453069317287348192576400850239885006440284774242948526618148836932348429882250499412031221793096216236560784575942666167676943739388212081998276387331715835929437771261224541958727224674420739334608755108297907633191403499899053111779149469455439485321083900651413475576110220759206770515223590468302446587717554973486934461993643026404560255465374379374642634694562203009563914378183290743357895999185314136153687318432355291091067838666730417964146997197168887225624376244341794692451897965793858971824762156521571325385827245216204375481734828359299256979784195040324970248010843506304239610592222446751476240336999650375028839768593595918774098835474739837883051446988569375007867889971008497800852800774784210381246767922643304745498475717450610277886533223845434214450622999443679905706080098055114169578687619855975483001813218473175017927952433489758426653372236609949648587686576266091144668423261368532108512385946515863875904416698637791042325607809876416789304454261277111778766640724058168421015344100538589853224805260444699602283284905568816741673142258804398567559197462431781987243326456005709106416689867558163251446394601124911054917406962876958989390892785796314029623921064661520561678869774728794924952026384681705807479996507783517769445098602350428098201426149177529882786322629842457694630021053341242986379266794292015436786547886439698568706554465682067554009663142631616563329460978509971983671324063749503308960474608128884872280577168067753490180519485148186046954399246413982473730689716456198820137539450962911117418847601284292319929815648594859038262933625531995931315495274089718567053213538719866782453418656163629012455754632549374569587071244607704618562870739243854836285596573796010816210308972709336386350244573657716492111397321698574326887181469956557323265710527752220336476551908772528223352895030885334324751476450948329669962691169825878424280658548349707598366907265701447725832264115479845239818419324215461705843260409698964474083085893262992249119584001956118010762475776623698318990406287104733071750107431139273640685877351868308474024553132506226250177913645091993414238574508659085020878674069689823188664038499000951564247695875856617815110370241163814392307679680664195375362277563696788378419728163581127481124225588102599235541904871900184222740025642432889131507327981654427194056380055439051466552387818617139282329645222352170124665151765673812468039799903428048725164153965858279261013737586583970375845338882949101158434257648124152693595295112765097007444927163613295830113698455461089534909003603871883801064943318598478586834466450766298580548969639069547346292061971380126566793819946107667511089106351715315863175859137156961416371471159850371372052868575802223876468954629280098921224741868463356417249411279489091455043530400988013177052883718918271663376299504942560394939162046707279134203664565579945379583714332180822444087338216174029560326361023891446186935056903258972733319348950092455771529206997215002390932610626564371765565905989593711044949979700857108888377667140915059968917607912578475776382787810577634739643382133165996208452797579509870518568354233795537447404415482845515953110535507598101686833376874456086951636900888303802463825600590597703664205117341981824138827122129857678078711019195046382854611344464015212910430572242903467848331622649412648632507729301366347793942241407353898466864011359149744875932305161173229540728108399357768649892120256574729807093934677176034951190253293814147645657560214603343142184381119264950849824980306721919761060154020487009762126130347271187823530973208796177553263617754655903409081906768310263039638037847378219384990028701569940347492144486131616439160685342498439927979373546815302359369839395296069429679097898104747529860829261066880541016109005132520047886156539125773510078110615071553979681419111772397391002554937881394627555911192062434899857796885483253838971562655951049312216786703102327631749156781416735213534215541045382265616667998764405502964571043538811959655428688415894110919752289312502222918230099998326772669551713103069161669819832617863750660635771949188867888449314702063420434556725320343869101223678875230923253712757806819438818954890364116675873234687085012132418586207266628762927502854995976833019743658451100917293483891107311603582360659115665614443324990917903927342951495779367621052093633056941748000017865985864791986438444818016913412544499943872903909067409589584550159521433741771457004146303955687908166433698681696257997365157637832664821356814295093454476568927832804063457144623426065575838955750535789579712139960047199081577637660029381192892237926412330120903497672577117319214512673484328345420826840917471024050524911941704350850884232561652982596893254406964605422953817415289882559894680176343226096478281677188937250626368746943208174261791189703298946910656619571348487448558017234998404895720049063496057934601035114382593485107668677137907246569992083966471841315459384497616935657780114805261210963950719029619779379122473158831605811853078747535198649158181930986047656761496015015461966654862963233045137422595558966474613306402146815665088457406609372688302255243945357555291619842750774924206079094224280459854553606461277970499432480235564825407192655169456554183251754470655527942317871246204518233363321032163115928436703572166697152389592115189060178446066871160959546634138287800046009246151754921476733238224565294762792909153619718283727704044855875181308591517709506663488900639833545871025300044419692935941605361837336296078911404402662057485577378221389120657407280626315550119833421887842216269793931344379587908164260269122532151428256188201736622336699016735622625875508760448563857226527326463640472915582900711336988598736013585067595065302400092259354516030226551312367647888055443884930391335026810885453867407853260035897716943534318098274319268631833630856855434739706078266366273166476659936392016610546001647540105829380816106810601558924295626834895367438787680729995269484488181487945790437676841160200846703748153716587984451814057242595652310250738087947007521090200515287791064203700274940313536769562797880003302230431404794650695858286598152097623877956571403662654461437759293020167029884539260160428909040113996136218367873850877601474429126868278366255984000868485024162818133276369261180368142030378286833966830136711895595320274362058409426882988059213892777759642850040092782638499863512208455017628262788666846864821840266711347639344584292686506471546956303293646551590701888233979303013779529990362431748088358947293256758838179602280791065527454703788658316467149767652339264952907929399044811682195144633612846249828948518631070728609914500248270116390879959307133158269334568475160692291728491835988255231741434217407816209711558363020469586680851879983422834907461356333482742554594703323408136900057054067155225356216587817889196986217633588247020889397508750036200446513574175316433923871857540061865610387752748139319431545696596953649503315056211588541562646473238710860757854202785741621303010078044214197175709962537354202451289266576401893053191876001950358928104583650637764635335949631886200932246111507120679532349430505627484833177385063928922551401939427063129968622516887634832482278048119156481454477020877863088666352341701634349285769414404768620034045258820348951829414549204572383255189609472061360730839181198595399074307701415112468628113306041671651371539399405423986679891380530139329422213045770988246458078553542841551450836377457866567313879879192056243347878790452261102617995429943086824188615386369653659660416338679867783443522754138842933735510752561832932344403143306075818938524265301561736682581434625844850401414676361786651659213294675135068847454412967601518387927081748692066058401063476017927977309614112618053019715315457206135020590816053010297442034820474300787751984320616099538783388107679884535409799217135173749204985597834634816420136608629189584468683499507494709196271856917625320133249801270638604080651770686525614966711730568241130986025546076663610445128399331727735005082702663367042085352383010580153644021105746172661015678323755187316555267013144879422610738603017400035870306726966899973150514844338384993502598201579353845438558014338222926901577583849302695838320368339215057366497417113472108270701437914651802697096308851611793810121270202213015896022392845630622773430242190266818771798929880484454852602031319677996654965843214330376173045370578800124589368257210870790978883849596949383304062680975213206121107999719320182747965806967439234686652858829502218360587728627874638067925301273280923805874408162700838426525981633921820655802091406506636752158388656220827508250436758329082874452993144083781513330581522314562738949047303309425585772548593543436261761352353621031765845799615501343710651317379335484717012054794035511403065899052570886543975080813018436656372690702348627021643750909103597948547922566562086848822066934181686324793776026789800080339493853234048045719147543707521921486967721480527141042342523021555229496820314294926680456836230379486386022156626494608870327296318623128061410180893063341339855944700823281682427115863411833804657546285903735993413509944796938978046709705151755333886417249809314844183801836755031903749869710935526129655136605980785364096563817062910125075123294354860521375477257299815569994404023917616445273823359158257959962564862668345084117504889224851218335177283418143607332545402349362737590612091128738656063109720653858578560259504967019174896555269347210666657192979170738122897303053738374154469729314180340581801302783156419496564549820916533761446833283259375465591697774954645886870181890049496227826816105099607857117422566426304374659224945105432045577784991389159137111584410095213719260501822283991963367224543664516881442635272307119285693435212565402098661603897503377273891547363888742335897573430485335541306509408287389770926123751517769278509042571127996157517859889892398777540946552032201848102047096605995145164227870234140399928374150374402875355948286740334572912290210550222557113502450000180393845894196968522375958718239049825600420844089122138758925451328881929561325887523869467899996077669588925599063963030833602153366734539015571308549601050151886667568881672217165847922271403806928960735470778809455051102551947335828233308212453182356321256328540667555275987370146767773704673403841023688675845465552125161923777104618665151959630232172153704211156029202067947425654679814461938736289905345837805977217363114274793353869410274250644813737406082477347122576090388202080274067197979116335501940414700239292516983498069453873678490975000046456432032776376210275831191556704945307707677889211353549292074417216895758228169520680426317740966290395581930551054939826649869972973747957436826320106462163709452807032515480596211628664161911885243734959933246882932667032000776756082660256985826684570219987559636082330956772875962299606930000855023786623009706371517749935695600821223389377228359335513650540462324460481479931765378263169974443318711966793323765164280618230901013931479727140044634371450743327527442928161405246869807978339892299961620345125887960044388306077871327876217774193983017979652850190185453849870386974136744553586025229549691400856620437952374996801345527852070507116254909627567980107452875192350040625325519289516748666757466149297142839968656499596627461617074550976701861845701514693422117267895391314583473022826095385638257563172799884136955825598159008151582621425150398171305253603140434601528994479611210026618857733340783228929846106285697760544523275685155503148995243024005051362839780847033989849248494870266559509108430734797519999230924970715946935187306522023773691496670762569157928829351320112780443447241719030370100710739400124198100626689894100029537515328460469722399750887645673659218499560773642443999937916127264835149716559439319151976946620266841696652161577494767442823869834627470921490494345053202296973525946244795334299466833202324956721029958529526274868827250982930197776739260037237399237534031378353826657361863517054660235887528763047284123340809583220667329018067802649021355075411724489118110717962145836940386017914177421946593042816225506802620809930340579947451849627603534721706561709045009269054734303203285936104265911361173785262714441110322163152111311886087220473767882477902569772188685603578059865472292311950153011147106037826306842671918115642557543601111530411040779098384196746205715466798181708456911075410833712476095588072201406121691059150314701216065749460353337574833264517371035327865733785468397014119190942251240617056548203185784904282045279471931114539057675410439168670272780073779995741118523549932671849008175440337029901371892631046466695609792255853419077770693008311651519331008702731136586034327222332215834636170686444251475182378312173913964555711909085852257010249655639041534900426009060877117287223037461522078274972816251535851498326099094391646815217678787388122092648728707289531985998145387252734687532072850670222255734688618887211900856915563914841342506637303482068314661297664869161083161762211152543717574277080792587609456579198270590164542885074394162849660305022228054078439985463797151320363884276280512781565195924336604796248348194685928589768556368563274659225226415980439282186767868327225140460179164192750750573471733300792629683168823975783701637955566904740002134703573221342578866696245941185584982586848224397744441374077409871867809214748509862333745517761665350532656357249078724889188773558958964631425808853134017000309301438478335728680948164922698221945853648570976546592560663751403534380312901716566344257092423128103740500090267846844772966908792289188700927101757932287753688760102763565854404227486650352141707502403688187508295150907984899268017348058305904502273279957041315004892520949232810976929165450502295033017868500184657426965178188767214445073642371061836678741923630420570460131489180352327057215139385299939956274674459650331740945494592725835300850443517220486072609009569411017870835615864389848628936368224043297859822504366000531664297536143993470634687330376678204026716824596209714698499499326897349680220647056065383635135322611460749096780051856446481747695080232973670680275046276688943302001751983845725270500998729594773365905593128699547607317663990338118252637364589714157795572013992633829443064239709703550902968604027950010529160385079963387992584636346454743788415728316873814870121288539605914274612895221023259663205499368629588911648691869017714661612597644768984086963804570061467754162541747257977380092790167651722944147552778498273879561186488034392830309180124653723429941101050456567419115181479854274605886196709936644685875427629054477166100035201167585745213871217283128601544821063803107641971926264397514939173617712405852941511398541184990567673503469726166791604791953017857658543959812042127194986654726976957580679446381413137185110183399993133686611061091113921057264681596050441168973606846834871823927041346735398818594286490277171535019535571149485567987501119242497701059038618324347787076648951045410665024783263344047325794038852399771720786092726496605183876468864264511260416485596526097665207394354784752763614567040656321547248251697704305918701564359068593465745860525675145836675738487590447403686784902468822937017023672045759896004390723486069214665972016842540082806621435158007941533984577927188412460280021935052011842030905883418547493199126066381650110282871642628488189189178288441775909721491158776270977814960768176657218812459846897632167647187096457480035450079730852159182181440221515882546163970647081958347021843798908173204712160515334715495259627086657210048816685582414846369515887784266965147965909565626338705227428321118212179068755262230923124350737952606914891014457885417338984948439962660887096938800191293694616846181270603964421604525739006790743397139498505294259084396913241841570149131385087529454644202093677659170658632368629863250249325256288138136306851860262676307939739560910719023149599346091596250820461122350980965307734572839573625613550564139511220321893161527220927789186402829396168808996689425917897921320597290731097336610843588616451242058380026184377413712965668816399878792067856745404586914210044992830951064283358929210075524691672820515246107194117401375234634855952134412380974243304526641254023527130701702057677640772438286911498237364582140680749276265907459881573716962001287357432022256723798537280463556790646605957719647113518077321816436627901729395543054334106060473619437629758770736183179132530217016724710513238281765886483508948871883454534458404687138617552167177370629921184007486212191230299840651055481144470222168352847548941309524615217901416604557152671525060148304229827752811342850089920778812365042778592146870848640955282922632250699893361291805809116405842589712885346834558829003918843438326888515902790525112419347744460161097533309076350634789944230850385491558970201856351345741624371702822312459753234811373717122700549045869265944842368015999359663531934121342781466700231426535593556053605270209639613623569134248875777563944705798431063947507990955295406679232667009983125592047612697858826263074508610275850175453427788651075458718935540217258209261556489463652891061567283350407284276013374723786224178488083210081933920726831978727239485075850220661681520168448993742499791264143962705658409577864880083456409769242402373822583270682000502797507851521979279702516028497118351535464133292034908171182795789033856966681595210585418547836725779460516026183341688258521349440715078762092815203304299868982955944731682906141326877666643799632266957923838653364952905091052725049244460103557982549440788719631500309893279094439734990399187867188608429713272521135472624970665656261821910915856537508083351631906218958468913126111606715956316216383716317078518799789911471091944597989941775893922419897200184403736817967854621995112734401030920827442654319867136939950348944168296377263091737134746994941053792501419305631153119193905099993816534520339345062387934328391220114927680513922168804210549220690988564424199077895554353563658183366418622678778288907679231113678801520320498686888529533486833201352354491705651486872180145139515343181113794672247508583806857044637319542611357183899950589600164169952755571247190153212648184969098029564867225269872681887142778975439757283098152419610638836244775634146572473762990111059808406370357210850774902357789241691779047089324352962215279849270355780722365895665531402326139307535248581092585126069056389915610725789425281847286385913645825436352286556032635871595497021683682320648931441835119488659238804846038160379084738906200543429803577684144442394834732589233937766073574390744772902616772814783576591263503178057576785010616587028639763234774302648054164635792257281790224613421251329949144007023781543819420930837681094428237631387711049044498795429689730682809970893330923104096867016184317177848937771990588892521934735419004246336996163545305368976808017495894361660304083434878240083379504536348718973688450805681476813685647504741363367419668335897852945999223765874067638918804119707300561462175633168396528874705637468199448460330244833271604702189259646208048503619637193402380186841128640524924002035588785912230216124290098445943437280281481143669746186462983060032031826389906193359122292155800992351113241162984612871107240856247470666369968864720181201986928045572525376583482978461356829110891206473489612594507608332279240974266109722320804893052117575642588299465656935266720686934546257735197613242099743121885995572801876685753187228161833111542371180026451709289726542567403032882973933865635661020665380265759345767552544483108847836201476924966719920592894483240653682823152613628963519319315449555468186680999107063452640823595398336036912080337913536709397478433015857776844637827313643008911489008584848353475203789540099255736728982662873641919875607298521009539304661868956012509320548118212181560430467436488645328558309604810044862484550041652449953278966029059838567025202983054782665938316772939197716714630729451305098688066451582145171080553724267457655980151120393029048580330534034954892585813465593588581473415163149599703651313713487573126927060687410160769222155914101021511326380011251047075303320904505262293572656811736348050550637768890207066933015254378795136679299110712099980837244130991512483409302052547977073139113948884309241502376594884991398333446082089804663155720018696597746220959792440231076313024931112616865318510085572015464036112367670652383176556944101817299750081298401378784693050231773460753390745524093831531431659315786089787482825450565091229989152372998166326681693125211668837266700140091585554380100710695699664207082190562940674101472079570838400051720281508560870441785031209687046599395991783245824798605724077647878909080378105326118171984165368041474422805932548998923382956516601779197556118435081608596317742172737004660132765516091709457870289286246695931524073391753242754560289606550621777462643896745199703192034690607330584538725525366987223857497080825534509798089160923610974172459032483660189950035854892759423478925583045970599122746853215265282623873430187085991367856519102491728726798861743442491771355891759436483723475095396357089923752280204640673942432586015589450894633845087774111475737994806408750527345862086157044178307311712702850529451259676767771589044085406133906176547541579350107466253458467336025548262782198995231326299166524020771685316030819153331263851888106988729237999874296434441079437343179457810285610422512455783257260472938382569289417921653418780786772964107226936733381774174338978873347072203079419742768686121734454575935336364219047966837679396361502266396080993639622005463472597423706738866850312008049189686599490099640923458558318405118757296628503279291239088559327735476191978659530680346542547120807606858847768878754138173553418604843654686036923275049108387319238278857475208726612323164121132389450153631237112931420100675083366979445715673934644153471816937131009907654544916025908842713817380239330110281313167794275746800557226703922656497476022734875079734153805502578574374984809056451814840391558524382542682743934317968607228893564754592537580700581614489092090688724695821436285586286744638862362150150835938075764236703548939880496379921993992259447758056984067762871078995506650210874618305801996696357649246144029702563870941807779850902588010837736816339997334625475129675795018225844796416182151546436648201339322625781518236761425005239414589906797011459437438172140152305883205563674742319991779931312525295061144384937682496704862593284914924461732164559916461957720486596817966074704071522022737681112740103104073129480969637277112205335119253905271323492974372062297477334184277520236011879040397756998431089622430444981884542544164193161632280488307648373402354130967097941513804842996451944465947227023561684018968944631283605313067704551797895580735013661207738677605205938599115988897468927217230392776235983956584899209709196942246063532252463770159296106187552435108075152711362799475093356093084866078813794792424366954064549842311076574621246130472711936858181241083411452257356024215354887294420450402333938208648720308116974221111826055840284276922168361955393267847180924141420183849173175807887800624131772547259996940832653182549184043490385882862478462853076629982889596084140711619292127553714116507073412565251574470541012071575407976355445762450846670387293890307660453208757168332533308874442098247865937408906206565889737558178690980030809953724419610720029418844372463830156412553423469681678327408710094704011063066555823151948998896974870674291429035348513912380565571792654248682345393484292619638839017266996043301064176841285205300769385299288720219554737754751588858110601762452567311343884557098365486169830797620070879172062837385065859777194328176051277061767801653569041634534905797164366542444695367786942260785657940506185786564060702061622877538490180559939879921725218544819615354046658850310572091237681547779637950516096409376635526136718098253625503141859841053119551587423445365404436258377354596929600485854833104218610071375819077206147458175249707468868582098363817625703979948643133967361503011962823797092248164868598241614694384529551164853846489641443422271081664550070403233464798109010703692231512455030847425469770728324296266340693335484692530969933225244667385856506393817435363420188666578857207154151818252250102053178646117645422793562557920643664076759462185796379096210189959761723551196423758637267693892453918374991007204262425417303131533565642100533304363867408581033594897901013817916783894583329817075357578880647704335075426322371250497618238161805640146672688176539103569161373185371095914605501050297271204877094087454307089383416749929128567435790734981668465394545927661854609720849927719284838450006039302376252208520076296273601132743841447276687539900455309142472349341668607356843355458466162582671872082154070619998598340405496465893073560756816920283806602287235285510811618968511972917739966792235390310026228945008030080779102009140258277398480008429333590561225553302264146819134271712823738914018841025954479479732966497324967387233709292490324560981773808662072550111190627001850351431228551629018772359867610838603620280219131073612816732742307494794472454645106964088963877343684653074686011615696147092171881097279144249633034752835902052483903593184061665577217754332466880004316614306644222681890822749999042227812411419012282320826420290367457975192237728814193138204251955767195087565808029097845255595520507779133287980786812318331593052407690981752308255611021797654175259335974013728692955287325222367924757072327308822026673400120858863364744364905591389330361948361932304877262012328983368862768672261347629911036367100795065640389217863927734362982878070380994075817688579662591803179553774672897272417621364201321387528725616216915069335132233816750040405793593981391512346663000267954463869166967644850255470972266309398709347176628551324551081658229496868454086810953562848976244728235361950251891298853496581091267905394151513627728753855169572844557822071053123469128891951851778891157137209350214638678178934344699936954765097048153733878094027913987869259992367525080979319092221655031500520450180167200099635296786600908115214347731541431037530711438451168362235405658265772389037461204679063530763023909614788225422796733215202516872069772296945027785154808826927184152810857235905917332868663996287842006456897510298198039045754948345611582987576796506754597020356164550563945117560635491738178446650435504983700654202560019474918650897347605882516628478038606514852097390731061742430630801696459605565781092984757421162660285956158751552745667730514126972024988254306635851234574439377821458554774500749794129566886586706614690254318595644979222757453765171156390392749781717742760187733232657653891037032571965144893481416684960125165408167174845276868561113316068007829689541638067898183050992724155807678003236484630495030974692040352290386780857406917873832042616873171471347574941644242648633834206335269996246315438489705990144294608028007158452138667301628948497281401652053534431602503311594361236392936686986640025330953849728784394418614411309188368137777009889156640146678122817265742568127622225098462892839745224430485034269968426402436366752699143521522437342260014113592181694450945874300102650076564097748189606631525274322554830208719545272204879466934112562515639445711717164195087232417622109815418035790082296275364121324347984639798194873791806475335295826048749269371251601938194857871205836851319754533329591087645119946195767715237869102463581064237994969519306468379930848799670161012648406140143370101076442817861152818372883823976488468816131825842491148021763078097022893838716821909099277348937114505762624057048498336432394164936781732634525909345358367150794608112739267275186863358290341566993960028816424810371969919799493344371739953688484264709793726656724403346319787116170319764125804170520559530724289213689850112227872879011250273133227264237300348382590072303805324917024754852915724738783352736532127216406457443973379914650815538329871051384348160782154545572300171730900200752292926478051570954150674688110857783920088886008916366609155639102887347306051062852204394055221748208286034539495038849264911814668542181153993711012732380915997520147983399351494179704318385999435882097725592521649432407040424405647557690255026109633746339378982912366253472036163727042681740590757806797472015324488784143337220232750187831142096679773339157217304829633088830469788935623186814136048898315259402548136437114613546945188164600238927767408682242654815132225786848608375644804720588612423990117645743523050554835999363014228746095398918159295748792088470156642402044923584975539898854762323395283397690579612998989975597938639722721659071606932723720797789128590090729860522599926028824713813076610673179245264712387944158214828148369348804269863267030962776430771637984711863817713653728801316137956180861532863522302246431780019289066805949639926793962725267129309555794121865800358969401896234283525299713320466134865831142037769635446529111942742809852521107055990125986130434480918154788172334665492033741701192829733284908586170215915704271728585943542817688099888275245526172336539190243963739826868972965656353653770677452478350665477405382583695359321197201790297589541315149308151133193144102137518312796840363988106148615617037398799836596800241961295503421681581900037552891224013768036716483721861174990377683020487554596549132279526558702964202347911892472418229303003193123200610419272189612763594323884967544793334743049740232004745800128989372547593285260897959874295908074512725223802710675062707233110052078697120853632849808695596627690959263757447488314038831762513657728374008952420173760923363697983585503640653759286137188153930941504187256625102473089199977743888666986843422931097865674465380311820118534318431057964191523857614333313197023513260383809562018836887090272493340881481444463629555100989584155419637880082397197444039483607980295468520395099759959382865280637512591322771176025338463248490847797772210570921439339472802680924429431227346335411595270871736394734754473131884664245823219014603788314881855254490174204565324851408067042884507170280618049722337541190104597178678131988774878876906262907199739563954456465132610735856276878966330352950196370167066338121348160339963193694895333390766658536570652392646517728331441182402376027884490312514105093603502416384762651765415301285089669050841735506586846640034305363320079582543598151780869668042564025887309510062816840266700552285516958680030700578958194652928367709102152303728459821397268208932896381631601550654264518489327726028735416166449973783405336856835546802518391167750620203883406160947576815925976522641966869063305575624480569249756731472866924523053059572301761790937509138677572043095239535867543615781552365119874943446787588232967909479788932644548965853819417973591819007631418437230976568805100801486674417671100561366361198863933977656320333480145475988271853345344632520827122236730466741518334742750584195815579186408486640705263938969618361498097672991580657425232653078469713280347155798884200258389421028636611521444319274175619935368916619505103267048734302826011077441154424806744252765784484336316621117752407222719743307886978085735049228543948167218831321013582574024516924838376288684560701189226223957018152239496963468616147116995424898939105101044633475039276945319307976278557768075364014501870153936167120248376950223066959545515004419202490489287867810613912318803418061457719480883223008172212950058046832197939941482816122433523254000336661556537427466872422033521881516114101620866792314102560833063828337146368955308883326083199521444972253470594683908265558368981086289614370737102056417098692318169320937155981498428252955893688390029923911858814312748085418505819833579369701637274360121493692383847454232410243315911829661445078184766167959601618207417863966522400725754215406928664026112734180252241721239326464344958067605276921136526369245419093656532533047917403845046586498385712224853542727282873264245649026191018629428692148428515546770872353458866200100219004198147289702344482360757509613689870239313596860523328536961669872374465536228079831074793602605532169905165224582733276273536837847144987482296096642717039858867711248853267329946147840040024003836886485052618228112257981806397941495586755617510946899010996530481936039583350785399722278743079318217096318566886556661745026117448275537528033981795428051557762672610782272773933026704749715905940677796573242910604517367712964017077698547124334027667467144091255377642264847422590449054950665092690106624798572721331436247872273534333637467605036300528920014059254864175414818714631345161488776194699088505086981821958279684450470110676294180036600266998390980896864285119803984669788288369319752509292380482171775580442238441734944233744314574598969975602922013894647424877999458002438975223508165360889723791840627972707543267013442402649211870139509182246242423023967538077441092313987112785165706904738408141230958350496759271191177645913195449790268823505315976525152573557694776281023305899972613756281509994147970268424931163103621687828356558443399203920106864864922986890595372829921629381132226272828957325991729704957737851359797355083969233801580827272705721624214359616222676525683340921805086356183424913232560024557114487218285818943991348150619723384304909176628953033970305415984777104190622276366009349939892350183582663615716507064798598960815056707740142259402343982931957990130850232558301531055627900650625439551447810343142704801036620394636992629398768763690755174443498820840256078256900938355070750763833643507268138635528112707976533000895995518542530840346903993472394092613715843123877797647974606063950126807801407471753749153074369039356624340196122698756765453982100891394028901913350397668371713598857534190303881063995679401750488835267118603266177613115374050109399715946507313223117025262908995899952203135002668108718068864916889337062715654306501803468725207420305403619200336061924072987258577294804084897515545773606085262704857607295600245278605863553160145186159942526284761234097683813329294527154886607550777307938416629744680014460524486325908676959499846170934569117573111742323258503881831033850043300136747316518662928147987489203051757415767535100888813544612312111174038832130503205790591065061796020925799934049479602602865735837973105620285974212631310058981944236438064301934973224810616651771988592658923560684944120597841916399831991281961318991565987704566568340517293260807595784512245193445630590857647335286644769451895847575385611590057687833527378802817681305457901815892051532015188893711966601533173407915679341819432555111471345734802387993982188976882907919622550382741379422827870007150456668473787375683080694973181727951499393145802445335417312991245901918813104224623427802600754581472001518217107248406608504891731463861411333370498507394336168240471647669895799213611937180370372484239537100724949936782375957988166948819243785396156660060597671800279126426308848658773762083984348057655793585535153801152444349460468843252983129956979198467563799388736369009764235569965021988454236566229284666517397933753948981845928872655092997819009137838292588185077472105337660516521419655767808773752815986002452232021443594085906675168747809469389016768464907410996245608736299162096064880989138913104622248923490593727783927818440303258952824465577009739261945294662784075983448708947013982771227196153208905481798684437042083722940905954417697805339861677789600345067453978146803942638798621755801786187545400238458125265424992470617111212782103136254318225287924701243770868318917456349754185833767220815219787960923252746778850130086134721971376377726904843930797659137087403173274593905540090337954005230762627537768694172813549758132942697697399625932559744712250162761838183298660510828347447752606102848761447807442855128785835174917399165493762401511929138754609241027614466955673972619880422363782721481471918538396593858359123929191137780640014876616755890355058460786082641233263356070766482927017470931969648634737691222406883281664779510459998027860611705734098965447744475683023987224449896242361924363374193279372127187348601824096899932237673275047619826123674380001663764498814813331734997174634464995429490046415816119076914984617056771522791103015625897546601926445450514463081879266481328372997961098240308312680736642761817259511111074602410969583188342368261318163395706341334266513043045663828882838579383514852272959952931162542639897900499718313940863852838336967040236471480970321125810108884608237711350682769189042454775170280499295664134339513102206709352656804163113220545924669202236219435957318446858867931217519130396836174385127816426052700703273820237836306658008058701523169107857338112822855500232711026351184323151990093038277793314988330909910594633909864339630866954813090371382147541522652493690024715726238978879316862008641029413952168521358866598374985588748201716183825972159543168006065250129964093386484578481678466740065451693307741201987179132799338165781943402060145950477942634762067208253127111040308586170698668780413791043741886894187805676151844566653162116482917067017912171275127159174938320231392393016502862357950896124193515251654391471278887078804007941032505997937224537779436392578381459917534812241970223910168991266018503376951555198066239978753488267179703298691525804953740529806003094647662949019295996486378159712964697327651921842692802033611367127586916247690066671482805989121469552373870706345223289932659531940753401668053730483308714192581631935975539883459728310412100710031002601286270921983295850385727516417333911146579707136573370787420202945336186026646433307557666184205934287490355408359269737013169987415932314999056283887662137190679231093280275041451548969717169101816695919875309528782841852418078402898884941231497389716621175244943534425877183802834747947286533083102391582088100495578193319556384954641182296226232404562857077804209109452423050850798529175300829187592037853754193530608104063164062934844506117319877186050064934692310524383402741994857585440411682281061064829068287271640127835488647372690723557365335718269077178115876379060941184996158898469266276620999487617113537162944518602532092014600284307458421629432088008407213703181326738229166826717907298830555542553453694389901310748323612269723403647306318231612066611319662724815384201516207937245585628199677884045334843141220738850183729387624317004217228955491045070116841655481478239984127775222823715868756599676636249874510083739484344114222911731172018966896587009843509948135286242707364399824824345083925227634338929135316747061648404335034405247374917346544675101900819966484157229672397083011770004202252248123673772938280855216908063189148288022288284799157223995001169724129660577365183180646879915269785949715393940196193715369814083475780412710793128765021908092838068401481195463672398590317129377493912976086206905682186039542297824811358624175972426627587185835687340356961375879172687277339474122373635332147545806675897020622703349657244915435949880121622230023968129804614227130196527062434442577873759268414073409795880471741893907522344189430339989413470886696309008219594198116913523669528506916743804344357781818640987300827257594899367573050169463986981110948467793493586743603402819340457425727505825048343178630335790448318341399780376880698076624117477512051896036964362580518565731354483309902856381136261723569512902110988840015399160143435520584289888598800417038975429889190322727101226644224259406317909919861194337064792336827639320095959787935644200862575573821929199105347698463531061532315614619303932122882334559736524148220861702606129768409728230907627629094597679661865694965294664675534207360493323513485463316454736321392474467132362676838718993333859935873296420590039664319175211262367298988273254547379989561566109935839008360552128813257145215389059236739842463622532331904761620202490615950204503574016445330359241671100255909589113180998569199210775978912344944206425401195415971003564652928333824638208149014866670435327423565272277582935520437017485186246276697076296352710487365447600508947229861616692849631625203319446171886739221525859803452009490782494171462251647240876926473869157589191692990475394545706882625808240575012667999367675125919920082996932235986175376997752077437967784837209054514288064228381425048506048339670660113206210811923277331181558873500027028345145855138167730881572670108143872814934885680158090143446044571243914496212310846890803447988461249276402905428519084679322858853821058622194685606298892094215076191893229218367347978272843373741162622779584069655525533661893321015267587199008085279103108993288198944649874732499956828676535183903593917304276885647636761821057326660771924568503550791899721881919406650181518544228439981821721387863407087000679357593904631645517444665434259118981183384808095529928594056189510878094630410167961991495516905640574843561266886270611901533905796115268593647923671704870097440569568161970755158513256125264986322048884327394955818814904590526308303753507653496918491424900634658247701995290708587511605554573887239556309303889743494553613063374828581601256711568898000906530827713326563587862297626227278309764117992759911041035995633448954337677977005282195703322986711965990633866143152254490705423042611406806905024547124479872867438231023394320115133886672454053372409827961405909143590742093659249388718732920828300970992947878507708026512711991079928237909636611864970280562849588069829785810950697272733632280702605714314271059474584565853674429213923012073138476727678272935247647433580639799570237879945532049304820398036863900293553400894106360586733202513840702332685405157434073045397765362956879915101204467681999210153977929588039146364127628934636983796532613534537168319994241576783221400238749387441278429560061011051797025355153711681873699867349868199923886669513206039200019534289666272871936777840097619102642128713403723255344693842398495983124710362949772265351347292156010595469448651384640777279708545984351718823521552649373070950652066214173258969532584196704575078679922213068157314661182880694149522714464112215049464620845186814615847210600166978503408927039338565380230994695073716493358392507283148103659693760150150709139720086006156794736124502097262306842966025464355450181287831496587594240374918394421539654138536171354406671442961014321302796768659902290064924446931106277482534606931341268600458313959916279805627322805485468184939725361608642766920623802381979253095314465804686328747183949114901699217765220090534966966189745662649869291373423064162542531329407071095830063908940036718046342638877151598893840561873922929236558417087461565543150240614473617658186555895261425624854468285704319768164998715117367274724454199026709705119844233020011967785214835167375438648823489038038141553092810931649592391353597246647781562037560728760412200212912362580742889695146941055079165096910893318231057287615722649655504087737702998940858929136946179616074386426712249381148305076598363548024771056984392240050851097869396092607777231620758241314322624971252010397780944627640573139059663500925980189131172572252644079579666374549276089918554567804256724104940864502226588206366873036349275902953283410024625012105039471637398275895936164435293109628356374327353837264401426499159359121293563829063850615744754497069637810756360000109136264620685009453071992720383078794619487236083345094079606658581096458660783110993874266130501216077526479021394776393844521744716538442298700815696491256938376208531459526489665358626641465696608641925759227840947966738375327625840662711433521792792540346598312006002438941031338579655267924378611001652072676985254690631833513970984928897937539020119895126862022370083444748416715805279516234410527412839419185141156687724212397589315445182922767519359248626985197343401035030558453015986331073944366366982204710181087133007760877639982797354922117746528829757357498077189949942404541663314671417181340559289733840284980637771379362583964828430397411592245141141407408754499552779373817647226358931858893536611593811165194869868340116947014944880047839189113070562171271727829939532119265984052431606451417788471303399755702453757138850642373827130539765544206995911584910421129758833254209471659949803714513729012067860122614997822018282702492760257887266608348261701064736061052473797813175343279940117006778515636221992764323624576430776295390876963267303382167230439671140968505304109001449031113014320131336130088699926884237192625765988021607859308302510489153554263078053555227460201868991360192181961007264272338360696323136711621947982922030126182514440597268853028811691279794406547339383381720561917483302650453674642251534748741614084451231675337928493550679402503592089025689104348636680768526996427713869616828806891903872988907294498971208774461545999822999662879541825376364387703745301710375912944555703282474247116380647980119073523657100104933773221871416633047065841380131402121813878175549127456017050807931065623457371300608827267470073055484299008330459713882936302248502656494847579297937205145653452891860034149438330915269896928006223942533520841118770965430233064922279437687363008503938655460847954759481273681113428178796161957404065591737681352151453826061642191847694568523435626955645218780204156116054507636525830359554629953706374603920960989308644091545977904808262339740255231287134959000368793928180985420483703994600414538745705573020395148931733498518471309898215379728103308438339485379711678468798832389604276173004182730787008098262678269522047932679542107127076583328674847735572716836959932103201348956918740336396058785934511884717659716429191616905185905458516563112999467251241408450747670948018615290060046546559882518896667379278160763375354042015361716344599670055054916792591928543834139195028993392051575623232856410654102190480685955421187203032198940916557432807405743303418173858555463535633693708985183592590553216299463423859150065637638123320273424823518552348221631896411784764055745009725617215940718533848770265808260230551579644016150710737136869789677951588376442455155899215222246717969996937722987059376473723629901234933784995179557244894711530256834805277056110499445470570130911690547581906447957829685742178443506363175261404598907385926170589903257562259947296084115943560200271457993562421245590775216750206326025062330789263218858153050165737967226844865211749521161589919084463965208562821970617340200377217414282320843848181107649443776067504815803550069519021475472789845589921904185960798067522152187924932233028385191686649069744875868915286966441486183851635727395450926392659428601719872836012554257094559208278254310683996888973704169812081461657547129498949193812578461458185254362959563562123006769225460616263045210264610485967876002382032286279734142277129968636233072518503741254122201915297035677206910594174339962713672279036715326985420604459295457141394338567065078240805876896186054893802273004309633974786414462620745012041502361771809244211019725618478607441242527186294809213388669972604443646221594213490917804294259606262553288858589166180752448512760017223565712011383766223094760496908260716421697237135075853463757560018006900790142868510565055877771164478197149678287888653044332113737309545695244440988781766708162388491377137214770961901564573574518257759973198893317966881548307226504781006728277661211181261304433725202772957287951468185632621321771749520975166312790709886905418510918198211497019260333951564789919480365853920416836379240019473864582330587148267299697956400920786955023106726307201070181161767005650935038648359628562056841746114949875830131510646860274829416326768557268045858610637793896501211443400455042283601002004892338202778600972777543404632908032815710382243274200920365906203884046347647227503788107222007639893371279888769309735315520544910973745556967236825468518118421492402272911519605517177145144926654586519604949249352229857572748492457004362012339304592624452978496118916542260922264078118250339252857217067604290358371154975810959708568013714454410825963818448173152391381267232784942413170314661445475544613216705849753279174595952828841933026372750952710258254172421977334778963288582656419387982313372032911091072639409065628275935126871056007012063845554381086417046266389466368111539888278250404505059254705042401284636734400576903502815359336174924757909543997547318284359298866058068343590907170514341980957845078153746927445090729976156777974415666873754597191334336727860041887456037271000966106437668904894169979911250141223823336938606682096272151561441029241385548988442683072643510743729724351650661732351624105112623725124500944132836300020220904501665194204884791771443829134185006272990051724544035085087329498833748683998824768434797543330978380201910426388970575792318722755185465892000824901865616091618409194174831623546557249040306117037913490869913636502043727374708355888714072045440971211005009030823222710333888624106037865277515369701908868199546108251784393599966799166694200699983693185878833840713801245744803574067954300830762990320438370853436694802704138291356221230605999717172456629543119534751208088097481274184398234847882828867509338036354863056335217945726984018596772221607241340685117577373745139589940355537539592022365467151983842820423214607807973922114389852217440955326479048625567626516422521297329094685775485064868542150684504378669849007860366784662524675152076975571675845130656678123147743349269319095861466368143635027602523328314983645072000663745379455253363313981844869751929249695744341024308232249598592963189463516711329589624530930100995040394454547279117004907560264851939616790348341201318844646024525021549383034264922927313246474885272839819867117063544229383517349489943996477093148294959270806670472386361487911835860992407297604871842105252731531822183781404257393245241016438672059545246983304661726604234417986726256081508903364848118594509707238916641481128317488918321160731609786059139652005734778657472076011492066016186839418286887001611509417058650185623025618829031133267421174081256010736406922309937301620686659326548132709076151973468386262231487809441851230892774060517543212302130476788217089991818090053710364769921107227720338891561009523156777859028502772659000431102555945506765475342264175875680867126921400751941003700635336271611692855974057519196715409026260036167755563205550587074266722382787372471853435866683700284981535411310546977744229507254714653996918175944767571889929777470834251523800900549722837457008663282882278137269081424441003054752439440842959371740468431435500838872458872223170377730688033859625988876317549931630829909184885396273619413722115461163723243141438034079906009192664084227886532722854729793623535165719771138035315989103868492935719285006966979187054364772212674950633081689394535797621628895647092312987223756020940711724236998144406314518229359820200594052524476992160246682080027361471912934174464051928399902678930021187908516700001379011919574133561225163041312078435107208653698912174578989496831552076891634584331861681804844443528130622288299122541028536411552462872583308938508851096854879435742539522425686122475768264104551875651432202923087483307436635503636494487596736687032667898989085278017143549444081872236041609280381940917221462016897615096251690617554067500352490462275557559371466934807739625915877699151637449039765255164995371653339821447720919225305620688598182154921570819806587799272326918146263107698309387713779461911846576195013226122011066916190915941512886215099717853879996634163127722770764165518383343714234255465480645889914355573838560981500912128892460265033910716250587459754838409061445638867642631243747950046423993409127771675599113356087253813638053218900407253329251177492791871488586498288791607699572906672532841562286916277898605758592571773808986548080331624437698634937008179567746384141763668532739472300345124835521675452972320001886411925458814014384481247141529980970918274514954243293430865017287090584144939120072096371393214294245085344517158212189449977391273769627939150604408128260520864485989893192296561994460145360419313778887151373285972485923172994850160094584253860232190806389109893653064374628421931469681840638861784558295967659070105511856156170259492921944061677472376943209891796918929231815114255162407934560234782538027421390534464659318525235776763378089389818334218940493405286985063981967216035406045670231781424980280519564123339718182229262243602227841819123967761477867381532919251454376794162019363048812528345861882342545310654274099264724025112750429236464395544921483895174513441590940440263960505157452579274399828060779177114277458088118876463977849878041850171436036321323603455353572281033155608989816737070156762562312587350081160349809515610573977587520742117114609920866073813489725651587087928046169463025683219680898825084186978966347542943798617138365480069549675895107201138743911657449737161514488146922617212654314021387603022200528649980253126473834804383037889538738908939068611885711187987614768045072309659251773044761816745293366453665860435099924346242372257566852221017183550021760411919834038395803919604747588068724624299004165605767410022485013509900273602775625319679428171121689705981162668669888004071556420498107635571941267244165784714169466096057496455559682860096137413040652305449797510317783572082795364131905598687419985962708821948724353846969117812483937714128620271028897152819275937148057867081280615045613268163794277364898637118064277005826216043808410758595539219625057744799822974642109979625136264564654992719157873695727665675909884497039867505927932467061127113091726948716401377447868092752897018074897576429453280572141747907602597994884098050925152296034501843692996194162220283161946372882307244531647207213829425656955390848221994975677927319409655654003007659714668420094137606731983867839499140020100419896432080981742656449269089937619239890858898692448864923919897336157458535823432872271202479299867725910260645078969597890550040422140794524602016182114246285650047799484478830684904949766419119630700982110059024921375052261134433376676968322851801219955038047497710535300851769070235093558741725233969711130939779020928732931403562735386564874129943327113980883867978544509700462006054459088452101250563284353744430309787693730793294533083139790554981677009823946158581029105014969426903940272904850698474798399629540204431040757127452481331412911117838813832100641760559100034667840264721980215796656296199684281768692219478117751173495666110851104035478956905210229860534404970590828115970289421943092312545739535616052004414291637448570590954223567559220000940896191971257045253713529205042944990789593015679826346055045936630059826114570233707106218529936650131385381313552736867277784784223340135181235968076191673903314622708604824966738608594286457561053122913142163820020620156673029394017622867321745849963682419344794478749981227629620665306297018610507008533690360614940688346266276469115255287664898558548881962570506164720915472759908494508270428611740460655041621607271695700313147113981607265418702829130080945902168694655230626551005694334050287104128096197706657333985477074969227605750468506196633173085350107610382528217175324898189005774639050863233412324504030453991531523663244361285256405833525918522871273014029256936956963731266300947601924421310279875715135075418518480949495632207553311219198060742210240585366392282743022222079820679229551752150999182706458298053486904525324365996419881842947890375466425161591910211803421801267711653295424090836568172532468398773709441614109932709518416493878769289236197093540483207549097809569619317145204279783465485920919756376690528402287072404817302175960432547764113994830501475887027727321907693583711805013171434259253705365597732848066851308965884272143875451323698508815548880094501523239189246789283387206289094468583916265672140301347213489216942112451018336125229799584727653511110013092196960125118139429021890561947088144591822535214204932781252131285574144810977133003914928059079384461939916016677951196118318957994212189299615698228274243069496814959278599247823902667593298127366544535040457096600528716754883272502606510348579773527375011778453064910548724334263832787803444913101536608050222915462285840423899266628455311715850787177906271805947262687321823964684208673348239236477502710135614620080075334037411787767011251444426004309596774030027450061786120832050736107958358740565917263523866745458420090404282277164791440395165244111849536801512247864382505752403920292497936375075210243828289119312963339664862761824486348362414682770245655255065753382345863246200713286109105580531351579768639687988744113751930379780387892872285617331430789047397594455960607167526856258662746420390830922949751071930763887097633639659490027035392636685736474614201624568254319995368435666578814020168387557104609674785189842229873868219824241251074509430039850230054455771617255437609301257521341444063001540743833729037154977362147458415196132204391910558124811620559257868988120019356978524507249901265444993535711537693439486475939706783915778665930712476521761318960846953095370882343288263751078831536034403651007711870503903509082263663670887713424433619746590174711714128089344396489585189386506843406091843459877283053763816187492342751195898031625961538266980830967130103826316276539880095311139826775715156182674892782704992093121955546119960040764754465831729347554932785185190025644480824766346671132287805750649529681140986018409889023580252514809815966308261133848683637374175356727143600512042830999440908971998641944222167875949978724856793515171481890274963031862520219737337679274346795646396713130272189307536664345707978860714810574312839656319771568438258194122077152367685765149948897011576576492429004253039870585379919768725560794648354400281947882274877385111746375819923481769078639988314434989642491313159673548320895142867693242754379011622453938669385819160619102609079593202423934048354022936396563942418621252184836495999340970305025115171017951181423662757743172124905025907473228238788639657651911493126611923120064346403315023280190348327379204728191040156100903820567686551045364902283319954335511738567077248365766846264787055033797093227282585001211797210556564048705716648294489485082656964811019490326576210965747967671605161346820602101261973309513210812687526424179303439807617269101434395343236933307168779696476378321595092977974093478105093772913172406974472196255119304682370745465986296516057715005969502136250980204437602878401514140910066664571879546106197473457338741064145803561264076772369812150795878016598019382068190523217077729257399533124207437078347707383121819256125649670328150529982313312662815933999223052013723034809570733028927297010615970137722027085115901840191972734557239729916784711618907356171935929290737234022876114074903151194366949570001327722249062575995834685485178410980588978850066062295049043105971554280319103777463535347225205711630574410132793087172881251893557359744023839329312160375222289904394033883685453823315472415387614528601866562589622304265739811396456331764406641552997028961711555558042943559054826071998748360796933932962766419669570404580987905577735126104043497014240361088732378086763911013732585600977673576152872708481901804909180125945465117731524739256027606199876772043073071095041066527726543153232944208750836168247028127901707017917034756016944851706607838669047366926831712460989941212754846474903115594736166667254598000185223523205681702861327056882269516463553151060512492258464618657975832625545792917608961019280893189171812742151467978693702098359250511616389082630286737511652122882737457666800152313888116449022101695313113749588204288348674965927977537290979016241799765281415568552381518302508800243227369600736771716104633643902766491739590713416792176218155997320229487953005134368813958780891932742865170160823973648602227203449363587080067569510424381826822054421335917855204049286910210378562232930192343348026021188851879521738715080191231271540091738586193901514247306047969085678229856176839525427308648773384136793992330230875000375683808379074573725326992227803389006039394331963649192565104665364508280476375862407548494540127613061168719875487652773151154470815940580109272568673553310190388108078827110558296427342436190215029668966025807230754886824757628594676142525397411373011218217804681832085129126519048871488573614604782881910158255107597158454342019938570467948446781190333259208952094783190275141478062938263387933109986625067141483672378239405021260015433352808524837954716841138008841356399567758272168019868006911161346179156241670950923712028241849906182759493922269150779231426913022839729063043737713668352762771480337423015235088791386912814552830926787482659761208966820166516593569991068685291314106588219410379264652387924222493944547727511985159528060593584885150129561156331152125528737284598941791462228497101853098295929580605037760381083979435634195821445535450059828757228643803018681718254086097496367778684337093425503255627197092433872184748880347475891532939772003123790885039149083889906915265700234334545424135353199078684810308621052576629690701791188594607474119184702390515591611793126090960347251227195746036988614616804345321428395238441806621023817300305574859573044683720210487498906180267021250929953474129742202112322269140244249763518567133009500952818839137867338380262622532612464479289338002921762286546390151917131199688787383208457894119437422339024653941278676823800781550488284703665585940827546487632396533193357854779826658455557386336436347219228115485095054530370843368543956515347744926445133125468670388297585206713073778420611983479351043127760710923331226678889622259743103634737968643855688469193040849340207540530560430839817139439899194022562086872699199650569455525101926767265312593372185199452400834239389162360876838130548765692558090499781247586728631215590675907285490628142571271570725562889724133140948227559542406149373716718357981969099383605877731127453473804246536599904409419191826516609731388154238964198194254550858237808941616766195448131804333097255230770275400824123702419738731021335284516659451528419152425052818896139114193599951182479979499870881941224224170360299870031561744127092731202753710751439640740807059733206272442465362792979765875766697565295885651151599469401164445531463482468708256044466166558802803351730969078014751484423485374717813509223951036161734625594170081559225100957506374058700645211183205037208655700164566866806618681337092756571188421672292496466745558683566253671586507976557332161574426829693796794235102830331136589344324327902787264953690226130801553944624152521534506243952026766330577304314690090023070578579050560062185076653086595315051544987881493843062723910737578749845537246020388444776370516765635356921693501118304137895858705197374702733692970517999777236699765840937349255380398750099012809407259036142199210114994509248320078428307178916165683216362000859480403680635367834647241418198574229641608033943428134975027787550535196823357356553429860033735834239668034644819955609841005205860056321963127416276486877972958907818841579311293084678126632013619422564900820744060159790169415878378201035448969955282203154245131711265545029770178324590618059962004147784955078003511690132119771444616622739156637881233371107149000588986867671870277766385348867989653673279435394719261785588496704094798150342047602993651525770321466813904504546647846412927245703359643998586960119717196508598176138156719387748045641008605055106347515411748394173457102042234659482430084254617914939754959967512153135529182868476789107455516203161254519315920273107202809787905643128549994368958392826146161440315681928433769451018331881784389297268658655421045517943567594367605762840790897736073190154797140258186801290296611681367719796937025360362397170530866334352111683724125685633056790890719893922040961722502754967063570753464562532218536842078611514601191247021536380492960063615619905646015976420436265020474087756411315559471038054480062634309802371816043914916328143053702569794464268775868934323800773342486470875893132149142886324375641123574692242603416510198336864694084258016410899545087792110554984293496785034392975295981625584262292678271786888612941464781854587550847437251706087278969735125322869878488109297048695758348791182443197151896604377690464117057274524790252757390501926019891965935518707644481102841461487162155098873943105339243381670369499807948334963806292691251559040165883594268440230386961704868291568927125386497194292805948222548816566928014560798944412688197571482561932345514362712334407746671246834719964897526988245120401481444377062797159498074911083017525521507579122948175237380846675798245184156367978613230838647407014874138710570655801730798519129396488917336833934427092784884938701610687861217272015601980529798701230417114389351505786309180266018999846090088904990378985838690452022953332448910986206267347619469896773477383108262149604066800382709861078911438056066060103870983667799468773104782543094053691688549375838503345659025233096200025650056190780053601046320775860621199629500439318841745686644021509596879467195286698254700757109224637209088883168248236962310138965947429366250949128705118866614436460241963385167936378275765918014557800483520960099144488093026694804236351140591395659754856722649502506815867204634765081554181555930255113182502668416663220084332036707439630707842869437800623345370253497818256251585498970742379556728376005409974117194542724559064657962785898953721273564006981544313824585388911072255369757857780992286846176320064092735849500215602270264940353408962582054860753093626776846425042430530780371492065702432344276748582591697180154619402716070672343722107182380048535887047634665902989001031088897324663389732646601655024724703509843091771408692449946458180439594034249919587252816963164867650907984907841823249434735207209511664142758059198272378424682273852976586553946409414953513146363384462875117236556454912048215580060920066844834026918707748962574842017397468238068677541784017040347470029843308291546296091957157885080645856658097854462251712571838768681354506076763843004814825158331051005871556001420560480733012591276820375287235994333482729520302287549626584365341624530660390859559226946603533589621546100886581061026070366497006748251592621461098503691709472977589793178258484542366264362457989657522580268956583475648483094826435607949773096874955954145628434808756902448860966297588948394393972689508066238778400651261730621401103787949033161986811715704943965311000795024472936848039033891482213511926709622411832233108577944896259018392111705520468374103023820931890966615918232166574503700602854212862314307390048698507478517010558811519064342387717271580208035590840973406027248135873176821220676893066041030949901941966239912744566979154327087852040731482661996795495850615082640426411735144372699220785215591866197033245800919941910319527007383170046138539627989721975293616398781859581838966725620929085096631821697704143863583839530739235863790367122590912951066684327051378448861199227518171072879969291302296904785134153391465604918951348383898400223028367872186040359175363962164799761020509911018935949466992256681578991898114271740380984820488410193826764787114965199423337969121245399406481288846108731176652521282605261588013165946682481964441953564829757169287680333411139204843436926536859828071244125244362721452817325972127077266523750798174970907930639891592202363783341054795077685164280437773102834685233750419950771701903024067695365567308824767588806087562524636879461013427953212962237363510988173521604619275712074814842705903235504778033257994002862707884491787558872971004089020752058664251225151033266382202897032834104295759569922461934849173259269014328117255655535423083428060081684227913938837619317414808578525222540721277955064522109131517286906938437850880902001989805039243919099207750607377276613890480771838614016362835668454982048769272354540593360510782882050531084566870974456035041130651288835466509177748916578586082748242934110952323713288781276943564136504669278180035758822341902568564086573222321442477678209722641484364796902177671912188522574718581623869769634108042671144364471521315809028957226843447698858686365527287933850715011721866291981664765471413974423871723482430283530157435526912593710863419228310767535494747250963218306053682437568214280803618936231730001442741666800636284811108024899428178511166230520447349769595155593803637218105916935938102336028421786603099678825727933859208074181978909662263057187501740661760102479373485064640619631920443609509482187635919707294631626359142886460932062699137027164064188069177056085937568141384922370619389041926459073212337506676884662174232825752658950404985855449506404990025520005237284238698203203718372809042879967101299127181982166895681702273835034563373373153093558988099346667627484361968718711435382947017126659953452585343064085012595696443703290054439746679622998078180832129378560976535654186125687308478645841413986326579107756618723098355512861026502673189821594967454644530268969745949292971087182769596984806405716947004385718317717779155694264136260221665083009735265928507691684424657320582421938409084401874912810269647651140284151974497303451449654050125004647855485341968347605607296701309255803343336186847840571000970555679867604537026967648507115115264669242433831463569078635466647946799644036234131189617890073141780201970152338691083667633942557565393275979443550411238970460346631994325221957311935579146931858758850485364134552703637800504619498437116512917954863971154087415752514544198041210415006648851655113198048520315305934287385247281707583671305249229332792239827713670908669223874462228992273980606240609236802811963789482990780322778835900756118437314649772053594763180821517116830036644833787281686853504399448936441454550056520535691602331971930473551455305514789793709423896782550924611854174978559074588092470758148091534924528747735910612822538728642875451579531610507469509503181920497369901199057612958149109992835672362262251223921039980020719230762742119861634204344805708118332062201619106107328454612325739773614761429210375713948395045057311156744127621501821329688151980386634709169358855244633654489022378561625309923843320106491370590107131444070466419390329944684299078184604971220538245743153369847862147940922116380398868500837821219332429790007951240375764477369145583876325381431972138509033474025398021749343247612040071402089682905385628783546309890096386841885626777085968089465438895046386883227458087398982607301915680603777859356845645277164156402591414881960758103719578005001732023766988886573483717068145664222884118060797001821172247498577292632043820934858547591056656843982246820696467426287820008121676904151210135389536315438271439579128777838074859511193867983764826647763631698149809954317680864218186707191446571345613885950131783003089729154866034319288582722451975218701576498554535995161850480381137030509789441138852948547708471802056966809477639226426810189383304471255797261877733987074714532136414615009797414803931007132513670793104561285214912888217024211981707734469227756152266566243927857448399260177059772064487827187038290954635588288990237672169370789921437109140754096504346210540992753207331807696829444354972738932884532162790595871201864626633084313130388142721652199252756634785803092269734202174621102019702388141316497762685931848925326984599348173992684340050749972949716132828101448349365110662620553151012268408195696819011606183902713858293906311819042484783335889471068045243167802315431593073169672190469486890686117401669823755311903742772307075808254955137910777431588384409651684968092906448723868019973562184063635122616062496611978516753699176937503984187051969736601826711230720758301814339949032100881067860272152421793209559914836642260882018072235130744493507727699487609368412372571527193952325759409091707994127983713061286603628219092031813742293141937782564972704005110057668564949147136808024006229943657500138804448382728991308721901454254624609918168434528672151809595301540989433393662628614991678502612275050457309627915837938924930093507308604554279020990339734297808490135475512084982950806756843996382374491643579418378002395240902431698737548649286726667475857045436861481972186165572435912805998352635944024746101758173565526866679540765865803316324139033283427246366622691208377593124661919518008239243901453292493694444189049104720869201690077781180009518741708167755986060365009427523995651115999858822495386774374444980364891139017298098578382379594533863516064028137860852991089710545348003502832675242992358355159185051460595474642735916838013216140319914920662278544261681806582639621541709919588214636952501849215078887810994708149405073451307415199271810447534502757484134648215901601163392399084523163595661136507422051729700341111984374003228431152449408255874426944137688981849936003722294852885491096873297166245427996513697503003704282284938345129449060586699578253275784846801904579966312255638265112743959574194162007439230919557128630805502650343464778319211541894504314717624938133334058892130906401301578013891547435419797501016583623496138701605798893084372044678388491681747636562600892246837344243891973338574160390229831322194333444015802430145001915336294917385281424076747732430232714208198667096369746013157147114598616889147036632044342128333491994566642142298690158784229277957783773440556170626670078874488056243632104718638272698302784334787056101411264022082883533524263336058564237956807918071047490841290340358023768875915567950953142807056939224127369369255965345315054545233043654809346139930942677119185481339882505873926360437394513783079229993353435681559639018670417169188016731892780015528560235738296377364916843747580897418246618551282619711471592960192260759147181611630179962358534159114235411543140291512690885908826905671474975463578288927741983224285215369672688346394540192531745405317697993062912936949981305795081857721956021338696022596642040870145646097791204158934438256014182794605487863367574711640065190511613545271166951537642888173998662065940457592799092515528814823185906373855706636969229149873083416158150547657626007937552668522046423652939549096982558056271134557191759608381266167983509068917698538014284663159477156487570669050508212221908465391545058200214099207450962599109642405946613337655851197920282139103668973679163300952302593167850849246835448398263235440104347749374797760880424507995340548040254402677846174062008147946306989932111621553561162094377423198312624780849887677879635107610881544584466838039856685868590887212321070171143916087999705710655875413758742066646782371259373547150538609794100311396400716987490867095319219557004453713103225220714403390689522485223095789917071943061995214066808400628156980141610765120379527647202082774826114100601451382389904916404613526740016047100139931794250119444840517682505052586987986209488632760792440978463361060609636212837984325483144648885316155420703287572043159755469113368701962070088319468595984997621611727021953755157453990557782017553962569572623750503576182747907123615635935675103060540589069331306561228475833037299337372092741096890137939001476558524916644257701641239276459048299676719012096963448375806187651721197530654626558924168304962921775073847517133034816857746929369990439723155881066903994830087958941163544354220505066675348396055577554164011164975277568142863110951727962285016979785230256191513220960672852650310367061705346083791954620829593798418966584530861118728333538569468656931727508381720782193192310033877809461767930267451667322953555009761716374207573807826995571848955104852088742177889787191971040550691103049026479236392181305017351958822422466424724656580367573017580011188797035380773820285910896942273152977666357725471240011154183455756364295414697476099824640551379243317445951119699510867408088868062215255507337319062224970984275104587185819154872030369398029213256512242650168658888109303520497971132210897056110446266815607983117347074538260467762481998380156554127806069420912087332708486656045521052690643083106363022467129627218966177218492165366260699968012075571553762844804557295216776860852388890360677341956522488859857539661707703878715450477776244158132836158327537679701731584727545645075850999689525800142546017991757288538898535316094457893660039574982848584917893067457763401456919515894653424673172938628884438023725421732507194914872085723683362695335760911485890517761170257646425558709914090690209647861785802917406282092808720520510663357954757115481979389685862568116014709072888222486824374996574105183249852745439502106128100579687924784361992360504510204474391134082347235226465522172662372128093142667552126050719831903906333762159197809610779475583193851944364538986089911919132332251536079170290470042905109313585371674095424142871006241141138766340685953883477183584319669693165630612223604812477054003419533089434540390041471468643879158603489192007147409910333073868056034088393340746516862616172534026547127836830643535500330209744494764880799662104523586697853044969535243423247436679851636793991251844706690701949843423425388923658976284058451014039218113880463257218912139589869870416317278573098757365975252906535164681549406202631642573113231723428885591260528216919620779143350781777529607265524633586191890739409989064334886049839120678254336741143644879576766325494786107489223547277659187647485576817729699612328447097687687285979844301223221033742995586686339715846850058882188144916551306919196647120097443392536125812577464593730024714401179418379051432821087015369896661040156329288536288111019437872544857661393380561604177568273480728349363252092454811936154844535908251303114791105383038242692810127228920160402472465537440893759233778992469260919179650184754818378478752095875324650194923486685527451320010148508172599540445201711213452155945505376184011371435484770368652748682053639602189067153944362286656839002436285784085886101168524119407118399879176097710424111694270323240808193835041882074294590656418170108935894218281719706784393827463331512056710546889684117675393204368193296788882460771840972944214369948231032454345866142041167506747440861816329721766392671539526407282564846928438487238378690357122636923199907988939549287392651851947249421820653516425961546041421496509592717314261978854070611099003925906955241962594300570805798695860081794226800123977173224358546523326537294879650057410007029298412969729219637318525873030311339597406803325484174981311250910124187371009796093218427093699062718684570058173991221049919379862049452009841085274672745192838259182446597744949937754479605658093796294271396601594841150999195894157817809885955116808849185424465887642193545412083474338124664899176643647811529229685880360414908435943176187627285585147735818451925405721409383237734580625067981173392039695043966393654335810835508593031701374303169374225126067594070879810049137504916464141073913916404099163585603296572226924120259464886661571746425870906878272205276714727802188435564840804735251705023700691962542707069426211379136978032093820618672009816066408729884399378929829300711840981292824542976953600766017044862533968876952236467444390390552913217300203746789852606240759858991969697201662548489263869489084976869170926872132148850909420081994160886871061623040909315399802566179066796158719546479382078607813444604537209220425786169817471614035024678211139342855446403038867724349766220091051967776836706800335394397601108605136022678924472218739440803026585730555135901921460381315792693241739215449138763443292413013407977726445660501765643571199095441528780077860917844201863551273244071569336376471297501003012260868316478457070320930028767039617958989604158361094363910088020902699171030661366976379272182563494571085207233380846552194500988896390936963007471888255534521479783982540350727208348452902236127083316048604128874657756699914959100346720942993892980000736339034928527935937060983671629982865644542341001543066045103333493256479189775694117918696079136897977120621834566647590629296043106950372628673333362093152378559615671561251230363620101511911751819462261063946445961361455575498090176268395677408055925002025231472314053039770321068807218964461727220933312487749330039737990173630906444983210897255767791590982583175260676743765863521778697488290258743095316864966686668355196484994017854750589036639388848752118536018976668572989884507560586790658799735741058296281717302647396502965638054087969614547227501645523394461405620155376765407127456510212050235638809182919745261711435840103376620650617468776888336357863449790425271908474789428328442158950329897185087302775074721003183975087066200408471242169201757928309700039398667072956620132154252719250502741942768418147179994037218038104514445681019969243722399817654043307090814551021841507705020699110272266452596398866130415011584801833802142739700811191797912251517852063755918096139492721658479146972745242318510070506698047596886106173770053828388779601548402792641220254081623598094562365154003067193335087430673839839001772749211959994562725563609037023822758823094020872923150782026621171311659879812354438991558745615781539675656245737873388908406558869311655135956004287933294913545690615917461334672858586906656717057029010873108369197589139343054243930523795855762156853677824724566010666879375507710615033227287859756696902630097979414738889797398362184220200625011654600757502379197038158734932184424577596615986764829254848031108865263978322264047468078164115500033596870095694371350449842928232457869489137900667963056380787996774991590036395500668226071753651209872645359204401571351262491936565353226861428543501013097798612743118880007911520542534031995083521953716229019724152702766436777220662000882002413166717573192918465743348812287798046826625430515240101790329789696608584257511278906346631599602694307218726328437659278950856779470871742558085730507287540403793222518781869205293319613563965315631672806797775786544294695290118668487765916283076455377095767220877494613433067146813167424984003764887375105894495397211440802309118357651246465217465809856929788267048669840216126594418717598012963090918411927886383590586354997693433023392343564421725542354490739237054823190701361975743356532890940625288511047212139803982756388692763478083570355056624209372316004760069800118456563108583346723416596564110436533365095795885803917246606522621423400702181151953498764845235830670094639479905277149288369209267242254979345880470346737993990091521210454633023253254138324667106775887348360690781597807749322107555197323159159764592020123027294506062696561054326701279421092891771128510289394384449926971570371183429328129977526258239208603020933046339698862732640823682876585560794788915211433970973418170380543099106853260543906768118971630924274749193072026548419735329645885456781858775641557480930038617600547329836317586093027426209961737761288576736348354069175591218197575452255630940924704597055976049839495074558003739441342158064293804960934970639141156757950245548852507593262652875846145469907978222433650624704193060346264294234911894229068368164724228229591588975016140388338995459362409623755440375256403131846816405968676472448805029407444248725219769505012317844805438240481823676949234289063023575870854175539335757909899919759321435907769694862270958355239975647290741804093452097397270897853030744340736511354637979070678196891428122868126631178308595901475126402182106696108248088364762885830245151251860062253588243294339584075243780777670864710356648622324252320332244263332753326398457475551432237950044651901947888798140201354106567934866417126814006593371982153255526135718549364534561179896532291376705103211291025683028314399746250210397693193794272440260242224778013120332632541974179242195512619524738070235971400978646618249225342650870559477390982188226788450126174330074450342776180885536944903927677050289760955645282625437715340841598879178657387139013833521164197552870350722182726188814071290599439511233218387888197630568206509310349042283725440644309335643393702028344644349508815955428811451517188044896675211284676565762290067672930122099305345544493598861303381697448279549242423203584493662214899491267917759890940802416764510631988379311777961496547511424382398473797607246771180298894676795768783025519550084555202570039864515196169622615046795861238494638842771823254498102420360843681810310833750458356033952644729104629782669060026359863236389738521772622339919443326736242353261038499463245204619354819046912927294307915816672086422528026602902445757409119567254151658902572835265100243164243980895833952294669031623455026156877303233156984377377120016708456801209914953020352880749638591985058441881886410975825734125422006084949358973783441284067401946701683034016700427364977493239721216470848565112691618783159191358495414066298971842818776336285412921695442567735867001566978392690989257244715624026642778681036006075744168627119818256616309783647694253332536471348675941813650131148753516299771332398725673630465239013342482783596989055741435075208594339494356523184660196858866893337956120711717987030127204029222339344992263310789685833000119405193334174453347141720730668066621788301065464976322803592028360853399426231154764328174443222222030048410247817325419098072197640539156222338688874517357338970886067326207229968470147075438863741521953670253086352112476998527043050358810545893920696553897621096009258044827036993598891013320390079985543241259782388152156083065534761413745617689629900478864923825239200756207474656435741710482260003945036170086990330236317646768510565918352929934384871726237529599526339411775589554001085960737809120216608387847529260659810755205204731899637892662116616773886283911482284535224346992958149346623709608457708950837406326252662874201330475366154492417931281354768736819487201828409836669122480941342827562511762849530770438515225186539357635715826320379176945997742394921292687579031212287376252689934816577897086556123231105751884010727261508660804579677542415170706323767749994620060432558362609217725132510168904617244268236730909263572209303414149325043368414048308851582077444125016907430896537889435531685175375842696249836395918342368110876832529835655645534473519492518907700638532707348092605235885883017490109831274296500423615269609104298532621113373774127675501357629557445769875611187032602433724330415088739527262506577828879115889186053332659045886582515755810817064693911235212511076804346675065890800144961465033664357297183305273634383570419165545631596083622432708135700003833441733386125732194595165888123617403340815315370579929740666791237347980578416670538270540640635077090736035702556459794799846019831518566028861062867580454191214021967709735988258114340033448154048630536882296797223501908042195957437409872183261814072297883362922598258157272922410197287699651582605297182128274302636009388173783282710192272288815134274884030109835354036630464071489388684440748205022595007098224712964480415445480853007919712190038414299076120055487711848187017309553656874153923273641402564125519061214728752986857471818466483435336059878281462606005714554219521083978616557641902023122543484668826905620697042307931228159805653184169487413737349195312901798286428872784862013601335060985982462692604746084973501397828798639973611507797927595221251609988288173389175406745694228964048542382438380378370945930200172776915491622599510966258139377626361828755741573953293386921838612945988441912597620760145688142127971264615255549733102119219739136417526967715217318343922634151436739494586076569184898790658050379366048722588464640588960403979685840653539682201834950539898469487589661795548083153918434145851598816530609585950824839814149564995124948937694739493274721130350105948700066829234815594635692971169675579091274587591822272408680902864279044520061749607163337247159345540888426656222018314745262110412158703124857500873263107735923106980460329969432902684527412029632174493163583712183497076787198486683138837899654439623457153215072038763386961201691170595371905124035337370403112130859240309917360423134339474006507834895995080801102743580175149458291684080274143714028146571719974587428381984851774777951683026481734861096624663536880921071905551907551645232338254859467608301047928032633642524195346641071187844432716921282566982565862015633663479303057476799972318768884632568410012105832305467400738680814246897999597258266016530213354833626384411725497546005723055342255221864427917643971932552727092893734763711087937745571511730630040075645742666164431412235256536624376123702674418090387061714948724687796394225086871958587000888635850256476024252397314330214051406788589299391944392973323380521908706853017296845165971427831907803109030587122099181442367307619536908964992600377316450199188261208224880860199441582469289152514995260055382242056912656001891574052146345658877007341212474716553751904171684054668644216171263524959313709882693838604134750640856504264658915255706615317085113883969411067724440020259135317457818978773579624255518243535118807894759494495934094985130734413061506321196476774573066389620042673904978664410878742663527474415678007760666265929941214158458049886569504418209151960780944950563271168963258180989352362957887196626612495777754133639003804050916141891813042964111317995709556784762844260365809942932510274153894466413418669413654277594460527026347685704837369419389161929277162897547819736285137067064259046561195341360037717297285642702930582412016524817478889251455777205066632734243024202194478227670900239454099996040249299061286712608477523488923666023049009410252731045763240367325958326809825475135050346488587908436931034596278466506791052835788922250195044281851864177000099509741978154945208486654183855206039156552997143548565434140623296457815984494977517989379531245955991180874907998084673578141079496592527399095267517159428628308056367017137945953141616717631467046903669168079257852337240667233469002065334880580854230754583475120549831785008515367740585514619857905188458382173530614357658451156187751254814544033476039817665933518736794210686331607317128474401518459225056686774898375149004303332566274441333284256307292680045268113159452807372057511747439947661588760679725231166655797484607160492327735428178542904759996992721417953228094287182745443546875888503863742344830078548865366947729487776971310448180390876010113068875558361445030909838891601309899615580881499152426939331236652089380314477704882843816546120420254778549844465816978988934488617381918226759941888974853106041296149007677652311969252221785176918762953127366457023721000595964963991373891647452890917542403415881340905793147760388464614957633036761257312775143943078802794738193975707067499731722124632585017343767107837466426147074419107835698020471995808471050250573455846287917204205833286665028125165566189616897429531854012593505687009895928681184524326191419963524448365139133057496300751206285166031809574654577344076037216574082461295978023249908792225656447227877308385774464684245334624281826468149109850652821573250154984777957135567113050080426076143097793206519749839102245947659174802926291477466664388506607237840816286241786047555672708107388610632242614499742037723888368567087006866367232830955118287910553925751169262444087514011460306001095975559447936266685960420671017292468125329812506209657977716059503261143243199960144253556662717957812504377735055120841839593700023338636806981018019766761470530646595864793747322627742535247530220798442169600612857395535991536165366358259719181873294455856243402511393708183626424472381274354458933096436785702031963491249148616327024617983828337075565359150175519638553185205793177935627051663105554091144343630585071759040868791841326378765457990375179454198732824592862959679197971598189942797836637406230767526788006404207632409265327964244952074849170192782006889274333881236340344447232090638295972873324233937790702588662431159976978762380798365875841426263753827812453849191500281526704774663527403867185762042584125457465332589273977981365228434591112764492423449448828441307910480856751958832376933538584625030149298579424339653393143563417633237246602406295238166020227871171601505380954469356442915666811026129811338721663934987022471850670273507358051938822252389201640873761239090288694370787955910402955434594388087613667623612263765398393526342420895065569380686169854402499138708207934970936388545299725557436475147196406953783955468169879543156269523495277739876708287689091518695302448360951387709165453878636758869979848321019033006909369596485076105245141447574561580494720749973189807844379663470181688869080225182106558179595808566170595348039173620619518921130269702653255047532041008802982317340003217799509704772180637593700234892638686102364446715954590313978026736751933490362482881607943645900735365125086533827828179291106248789765470847248501902157431329952845634487998142227290963057639800213010896078774137424211787327445697024092614429679299670518493647728609297932655862053938686338142875606105220669523593660969534923446720513485364064597103276118542019792601781226813846480466459920082848477956534482455501072553012060010143277134124309247046081910239652247239448429402103325471042218184838058156133155420074462372580887279314632634411649174815518786600325353638002015620955267360984833856666804199557206162969538905689375744639057797444206882877424009071848198496240292778434019124713380307516640532448588474800161651133245978395715482871125707552567953947862282646907676771586626981984224999647933940109286352668104756665971257586585485615357892425044614525783945784324770164936789481795824045746387602864533618053680629196397638606767387769990035397711571638789263090370321640881943839118365960875101861762671677561835515695789342695068364895002652250601539394726881682228448027141375616826983414339684892273330364667009910054855613170506485475800801071463650469318361013343488459870701949860975721981442755739069900629842685469752316316911040869958703431546354423683369902355191224909198860624324683635721815426648608118133062672828579731078702303855432214122164293283161493038069849145408807942687294102316246198500082735379677948337031373339000956956324465602567620330493855993080443262247195216096277465787495940999117804332774788243505203187208717830228275611767903833200922732502517455505914239809438324711470901236994718534884911817708121771414252220957113505843364413536697528864278786308761896280345391819483000968849722461202666743590426045315277825286981347334642753380459365761587402074193798661305346041486214550841072780269455417332096739919882089763647051815596798079369321679307568058468413380353260944239289762938156964151621011960619261879212376265410083778603389029122665327506303098990321946991078273344304707211776998941969128514527489622205716808281868891503660057367980721814230436141623361151345935874954147668915059015300304255746388143084258438303912264885676623869378599636184676749958686600749544514196870565649855369670248072903451565343764060535409389646090110381810060214462646793530650895405101952879422150110755765562387226079425576328798417514837805935473261131173799031490070887568417770911964878640271024159301401720578964916573837188048979024329494408668109689869204234367760627664776894959948116761494747915064716932903484588069289626184234828304520194584970477564950971532096006053365208695300833715391512962300780242549397022967890692598913628114433125982721495638095199582384848690899392725922860328867644081327944502766758321416150737105736135765574206772922681695591646160547505031987212421336067448807748546493259450855825085314039787035624982707925434400465511250469080123859129772571528005939399651207783503891439849294455118108374827918639604877060341364724378802102654728694912625386393994820499959099282403820527304790166676085238581075714961940795074829718308364349026625572477106407183488222242302080550565259151570149387869527834255060476870020241535808200250493763996165240336661942983017778823868622631688345489290576459598326347732408537987294122150699107876068740533944412422745064113438051100435626872325460345049927381252746193355470168801591006891765963324836131627807123268643863408090095785368333495662079118663760105718065169845742933977605616838022906587042022261158630744331157248542513052411271286202498746631146576096957087142682032592093585939446100562625311731899115707431982070200777638567373690184414005126922647259760636078360875454700905505854781992654335885780432793621428093843073718653762999758327407347485647260695467830199224102229817518996060295813212488794960862870718735737193885187034426968502571306913946484657856796586750868442664529666542084503673382486780975458024592682840379008746404909604384293550089245696885723177699412978331735431836746094404917551363997845133611695870141470968909257380319115438295810324863338192488120889879180402555016547446339547702461263562519014530895678250820637685491527284362418974132626046859895094858133193056003440034487151051055306363156626774613339260384865162859583466856188966020386289650826578214511178781135539190663038672690565822946979833064666184083269213430584855286923963687077840253483222515881108178992669987073451290759354561907227850776905344790348341340107161217068593189194521688907305098481556910495979700893319491020442623204802040702576138452324517161365031559258903375413671025869144434932703896548240334054599934971000813598802515156066060176832051287371832834205501155647474318803680032960814113235465545045114620563802873882007471977003280788937428977601277090040642599431972211846916708154138383202769958493865835499323563509574731089697020866760193460382804715658883436398860560756166421644446848864873159754757499440230762818667641039244186719381344609826075681949466114908595980484899317921214464817484382249523966578563166555070419972780756533775534934668342931747060203297337133350333660551002174228849855725533718733578574003227016486791365453674229172948323205808202505338356791088721344166296335310546012235642819216806193471991226449276219268671137128115010879376852561662548482590233636744417671316877226031299721556760292533442885405881657717973114018611519985851645800810966389530760419663549317494887527777415543276089721970822750104620497768163793437330771724962493941779853915595479824935572785278100652438824165249610779472640320830532155434806155052729348182890563799088413909316857679615379597218803989017198333167235588312270559432722255368261252783112725188669790724275169931415916932079549419458889343372903928793773502874170980399339504859812542049128008155052078406900291140295314837596824794884253608029629500665045617176920849468204895046214784399313134324254393841150392311551076886922406654430279457356172366620704000224235985653045022297761571180586452484749338908938182603829582747632800756259199973907645304630900335475179998228473697486825355401969092321523049308163802492943412156157322612359533660523384486996554345337592819278214536348520123212314876139798895094290961916418466789914631012149559312938523584259753656608900141509079936510361797076407670885446244750502348903418879704609989397576849202023958560763634358830277785970832191104566733311756488126477669460116051370103618356613019703596070771014771855733886950645026659391110274061697755959919205250526236089751199272859317467229760097400091490237050160686461008221350881171902726084290885238087505943100782781545836553739946421438910793019030503585094814511366587628439659418164382476598553911170146579625594607252583179803183266214570670869520468397853581881036986948372959821279045207766548554442072733304132482752784573203792131718386227560714636424924113480005114091699418700860841632478326501000920964615648518655866856019057779940557402174309326103112147073467607342008981186767604615684797712674073255195837815920696856312046993226916999514267308874400675676401624380711238214764707543801683717601009888672675162018453425108918745679911281612699127581824686562004286413005857190697429881615503179458832488209755702020303685847960700232558756301716823714616223756804737373334000207328187847547333318883298257904179996004299090265943007095798681412939419159880277229060797735478127929581584260119922692276345552168722423900876242107580182513719216302176695997159530612366887403670963510300991710619908852243344012861930373498374146730106417020725861067274217114146902632084512354068552441891938667437869123810387465465468991608717217582365561835722539527252096926555982733343324656415704219638244779584309776629123931259245673590479630643425453687375474118129224165206553568103090561463144419999036526084927186349366389831000871628801551305577823427826447761986016844624610540158175574328732396904885844518240952505341080683476511839694091820854872237567370596578626575798309770808237259167579470398740235523867421746390665531316189364947048844535230471752057088998200494398436328136290304298910700580926279957416123624386713185613744713660216078677005921013291864345190951213766507427909576537547166659546195670972949734037436311173952966124103104409486528547439821168586697883834706459708600323939781194829737374269207025811974207665683430534401202771425212781280126026797540046528457732638512415389521319255761468158688041523282918694837831564130537207080148652563264371364346903006538629725425949333185503778890107195115615737070760494180761425387464672541843103299937547857469039337556019403430913181511587230708892031806874688350886471201732077793626814838022080626611908537802437566492219656543735120213123420673439998212824161072156235355320301041862674971387696455608427163448474987901271381319449923518127018683778699365393567133053818347201098054494131096824102970220690583289026458930253639992330747080778713221418272610229982313474282042247926739311040852362158386648027116289705683704319311890344827224002380960606791597826802092633627611931996288940906283662895844449409222907093862121096893801691029295370713120499066939649190114555024540837894410872774736999166507507710523593471125410354072085248029352753943673861331242151612248751986469256122503631161177381864356199458854004984522023228476145755547223239764897825035070811736099651135988096173289361061689679964287205678822377512262737345739538715486146501993474111359817468865420916817891599648196881151909056196749721629139845744532784989561902420607129178604459960826421798077632880528394851459461969986356727726949321168039965753315827175927553106674646480085707318236129306382967442390790892566278270846756228379918580601577891225940903352292751288526001278336860906863605736920235102628341506535454029821552723447534266456973914479627165591839412198560875736008338171585532781157985239317841416290195120038513300206495831844785067027075970515949509719209225499719733103875974089064627640008726112481609369782081913096261947549258000800874882251465910432764597640599996706705866347445226413426679915082658816547939008930645707419176447506507885936793039576349880811699003070049162649018512359706616532474213673566013432458622106138738299989986605700411002061647193205680459608359171657338631359963290466036048839859474396437016437689556715151461513804024810784439224624419406904008279550042015792758028692763451944802696010108475873598807967243625222116090790617727937843575980308673744801217696024176925664035308688314592878101847494016454002175221694228075951256360438276481207254223558842643710561766624245277415394532204057636778585853909327074148056601452463586527662206974056718282567517525402372123909991588260445001265543917609116962467900674446306943205036905688743806570928218040377113573144016823302081690740499294621959031681525695061283650423939547745372473310383337768583391573037859324831057781324181221998123553573814690608990780480210586499718927029822339630688010386441893941812678270663212043054804676104037495136075137996080225009088455426153043463470702430132579630626516993293885086347841893285877724696483711599562196625323082859860873884159489043555819256044438439087899675014342500543593534562535384273831882178202388981128439219764594246568353217255086354213208310267224022406674756694024293845750512598906482323459942719101131530408319486806045937272216530602452500690691095295941525169157061052462285500416787166741437600355034545931010938388765315579117136796500659356919056468494830103133972175183327925315108457242911216555532878862228106738679868935735016134823794398539575154143647887424111404162804944065286746746480715629104995435862939478777873221619965146467958443897911279935243523039919558280405096599244162158183561074930201193792605870309322450231369465796970926203292015854837454163149625238482589711437332320108715474064011266790146457946171138340937283706442271667592602668863247718496078926823342259892385446983824307753033472183341388697595074066927238463096165496043115049269334779404101254723841220077671422224382881477794275560933803268295379028556787772922530757548315061243434897695043662387571372233979504722384279291314241180229164736140246846019916322097309407220156029471398541788589206314930958108939899611412872427926623975673384603780117220098213275091308906019675238926989467436020092701329222038111523869056638804520129192442039836978185639746194925182802308599770364237202514268316760661644020561545085030711376969292243475539052068737162661493147588545252720128821703872119835995477597145098378827552322948339291656883357099602122556387861008054150462462950039838526177747018569249597945652083102345389327304518225633011342165836008344489264602327533087339860216325965005458195316782707864979372093162608902788967715097425544767413192211752833802558138132656216965634618323891937091159431944552162736922689404069140886205581843725502956895518413833478404604900475022151292314738132650165701295219397116184847930156099512836013446527175306421577889886506027488699166799199200143144579656952221550335946222389542183996156525359205788592373749200525038221906978722856414798787301229812907937518947210902707052696273416172773700389954200560440895261124604488416293702468168851667777989050770525988970595702246382135096304409269086013873892793034565092612939589567769890609265252573109436448446829467142540460001070323099604761316930541953444607173876133402316311115033182280515124230395304882559654450733782294401800519939399569039330944163148599212511096863807664422083313285712244134780781430475712267920038304707958917035689108339928147105111986002405553654328176201242963382293610234044387901425512130134036331528672921584876719526349930180911690668153360343197430680029939448186634002063207494640958723357795999663103561432090814175475520161993337327666704006673531472539297150313526415961762674157564480078459705403508464315793458147367520181485480636788730645610963014505721504084808264557376141930285310661636450207176529785078118571384776886574985325509706911404591563335896411967765914089770001312914535180190514452599197691784310148391398063626516526724347304776890877421380048362391584241456879889499946546023662914203774514266537060598687453396821432666440413664612416512405842332561909785566148026288230717486741011318003593185726951410366293716796047689865403862300198040476745764592257523041962918046596501188118779046027264843318483402513657950902004626678402232051997469615383065551619155213041383801223807686704709463727506023719232537924226189844959873585711259437199179300706625708606661785592106592446990137474414311770646235663879702690777789951808120153443881140006023202684104171069176279716788219298898940456610545329808660840486390559677045366964099765631666924384073402048426790776063706257771673823746100864324631726363756600825508759090080201635087230509688062128585298018972073300005069107106854957207331101861821589587384382649922750486300337870647485734944323925931199010342559237124568811325677948276747421590297700342094857573938336663397501362587733429282147778476928886554283939136707360048954396684285230652646728321748747405046186224534323649401577493892234397098615101973868984693572083909256760662710544099916614946218437203551744697490229813783508603142673680778924275600050297102926821033220391022331983140498985419510170808157781392389283866618847269849754750958329627283212560794967965143269867572827797447152258344227548176466756894473869314044334561181113443177158664113371791210160073426974724812239276501339498269297422666069022972624706908047779687169491952259098300185288949585659807805935676776211166675898495873985324880598242312430077128434855938805603578046704224312536683503217942067376436842539928882740275124583638775332622953309721403347556536649353839800830881427184311397848873533313401576441322849181226334554058791996547968494659164828566723050515532582627946877954021059118014210213458546619251042585662257818088415359724498622017060999906704772417121374408884557455679851682146842855128670996863742390041347800181377098308692686839537629440277656111052140356331724348961083330342188200295256425400256450130849555698223069190414186317820767620028841310598061015690452876211815301188673694640862420948189752108266658184893957029223986158431755619367248515993621530147592916593900780655589541580927428754377862831052266975632256242282282504510671894159494166537422839325900119841430368759422056848538942477512023359261007329023131687985335069040684758213876914709452373586646300229802376533364914743734504475817968680063181749144684583791836158002644426697923166044942409090543809679872382370516719954749854032969385298067892572176573422016756719404236580355951923087916865995566712075242712299385182269295242296070263730109354169321763643332130035453699785763881638189614097088189459912673679592006737026561074828386039893683189035455370420395109339119284765981654876001107356568545961682076914722302508730684296956915417380829635926180371722437968888072965898484050083450286901977918920524293513563417712345606498399497793242319001950340970638471551634587921438886088451464947070201462342562907869245590811046778832180680819159771379634872153016775083605685188189174178372712591755808481913677063749711043129551517692601562450907737389243535793523101443890780687763208641223097840649146112955697363775781777625699079307034971821797267527365350414364536266306903721826309229955408905781087770331001017815349376798770857351165919035043395823465525885475284380441873635842615215996892555780189012848574881381967125816702913000854074018116913501689636834155748216435899748226971016212550068869921071397393363819646780211280915720790806161931580569983051880044831337576214841417449947138667620691359151815041291172797088004416398806869785470261468319503970340284173500487209210280514658863036136054239795475064449835832697727035742023245900398393542969226232570520858129631530563862542000150326499561203614714742716230929278189545877884093373287495978066988730826916352886908025577058561890157845510530149585714524584833764346385579736300838163076773634983027553833397045791682053737976316222174329406370362836125615967302268284961955459742943776730441163099067730686568391641036254525753388988147943197525093340369742823600873165633146121080055080931855814345098696601184657542054472933500390970300629550119678514583682138565350908714668958608448992623990531881009088801914861722856618414172354070402512310379339512505506631467080452131959383506522654745553526680852722119876351975474843055718118060027192732894813838503904814701872423245435902147357572236382482437806346911943713513732996846124527572222762338611423703936116122786263886332827574543375512279508534750000840155639092459104953222529206827510405142952195045224058029959484016399352898124684715331922878596317238481095501616746028037156864570067675874706325664588900358245810734825123166660503265021765489625807610040341691642101591877510465241969578134246426355794666305047305770726429381817285709453189783040404239751946336069907269773834004067762915374343916211361859350877942646464874407771920082217342362326065542544151332672483848034501367549598621167712191526433150935385901128420581008407979177654694014928347120926318256305672295442886486685577463553861760742274437369621016614320300378668813241506702105931425679706050240168856374154320819892391537368905947919831192536038707491011396209689440719325807437701892095647859877703337727979048952855517850336390236955098374120164319472100744889818803862582647267738833758454591426006497629204066432422317166057456847329824680778932255878454384916405965680770662601923411371793406716106276010389750461407126778930123758171009968047377614756987454464746815510266923385651407443282479739562594434807551556806160292683708276376335686139512217881409035464974706312943708580667823503606132629168440853813006523612955837818946776337465896595326319643553190864029131378946180222789395552005202616959321719657055518810432656767853358637552892474118598443162090009461760839680154091424984263684830307780393729048067207632647458682238068272681036812085837926659796259719787690562829301619237366569509460631482043486345365754309619767737330608919249860483143359613889828899117442996315208233224990338683912898869080102211922132079878337808612729265507756503557010836556859708312975066083737040211192326752146841369251815059033566046191519955579013550078606793368786900685057926348125412552254285902676738885444235535097022960954745681967112235930055666506251617909932504843440781542140351113995674827522596625154114912732009001119936412608846221709182404451317481014000109294278291235895639300501221845232672321062311906617893294844694230733995771989399353718729107883630705431287835868230871467699416112962094176684207596009971315820865699982855288565517735311406476584295585909886467284309130452168364931716214530360749928709081838706442952057837350006342158623085464253533357465232945243999752339236651682379811059311372990348422579444402093390404673665357404523967880352027150159740380585772239559527358671671609783634978031106891724982030440364062997892526199678284454858160716837774372827777297717524630961325262908048779066430943024698784549783284188307095107810665454372586949067081582168101510746381272177782451137816275051737665326859469612765605390478304976792044401043652491124895416848942025988395303660807689595252346653035362200158261287617373425176381579185821366460639505871742592536644098640494686522699688402270079299781910890590708586870540347581199020601552201374456726318403099753186672578174789834885636043378578926656306467847163389398033285675053797057964220708013675577578989166793786513307368038635093446904135774532010987079340226301887073753352458709850751930527016003208209230812350742708531984761268705819563753941348933154363233918996818607332787256036649129664535013676681628616732673000998172314734882836539861970723708713888990706189645992923080166429450283166216951587135644075880433778410391044314909350142412996174961456048000912479245233353592847984662290753784257588927497009552048145279905172936452910408373722512358376590415370351399526851165210338343537332030490324071654598931932492141546849765723912350933008858697556113665018133680239103967761814313010855713168692207999090561786375956185476817442857454427118508969619240259760712746008270825873209391813690769138504985953282986651642952922517960534929147897842715093997338434212727731937152530037827661945089579636371434600761490091809939731265758046910692545269972063264564211634881242246289303738979970828940749686306938130520962111806256032771645625561657358783299566215194170782082850849644180809230930245777293021364408221787960545481166975299470384981266611312239824895340283553330894826329147262653365975320202717084467113176917111598201262879471659474750881098736253245711218302247082285140658894365753363499053902884337338357342071938879860639251189227321708522771667631394179915597981080916318200653804146665745676982767751015024957806201785991400893617425734468714226684839033321178016667097504922460399537345182040494093167442771557895983880933135235068342554991402496803059777860987089853623714698746572129411283396450047088262619113519307123113551325450229602562661242498747152650578750210835907861520368244132049828033759026027625850497217336457441373646307386215324921024641912789186931280816901804779914152142205414614275854569160005038509329162205131524869372117404917825296779772279440144278978175909400464590217241893954206816817050559393276809978599019431497280855304281262186382864962649321770655017071331431555912860024132400946372131529521568612670649511086655633430628823992664264309940370438510214049376433775415767891699741515637676556149180611263163620467664374792955597465489782910956945498807171344403678220349193505409174730561035473487064773230187858152284655472013650158529672109698321358560608619625326016810831500112422196321760161002755659248503817942752864682566530000621498146497283017707147188535673150213917071481570137079900837759490874262177637528245459023188358917943162227495463161452659046644992565670390503378653262414264187950271428757859215839309244928162420751518173347483273885460004354999347734639534975678674853900417749200171298018080795333102697672795155896504906929612885730404625861468528855418917956940571600767384444322697164705921065460788296051975802608598054593017541895921449490544865653402094231922858927813318741880942203624921942553238845484883736835626124446280427680948638582219711186988081001488154333793254299573141915040454806664886595160827024648788963381659545637512057417877659285159279919644403541694413342331767700102488607625421459569018858786291723736710358381557894403495914574258350860263215634221723594679587820610965240903177572337107980705522552544831429167596455867917556023393721607875475533094679494570439071655953986316154067337147756583681985752824631520613429148015698204241267131507172376512100157922199399639668353442157740213044902221928476837488754495053838295214885328086434991600384430649218444424498802123868194235506074060402636987622217520394405805873160835137288369786135085651343617462358578158860319778687606323076814128496603870960902753394824784899965778102555777928827435067961431054033888810919456104376594921546841657442283846520072036701869489055661288656302673043019164457360210085644012202200389419686560330857198359908888240787625956777326601998868818947909668066067741298036326865200575569944033075537630377860197706938037243803010026405134037345984841439045896900808616309509537760807143106217089472710956410039754671250283194144124901972761460763671167062099655850981530227203039987790480072428932687005000160655981352654749027447782142467879427675860162107328596376732677363647518107055067550729113166950909952405222943619813934031946124970395272573896549365411245238095315157271876848729676632933077310436335749455500139146856047310087392366811023248589418188107902476055770297961890783140657059997261587398937301159452859876288678081356861424227764093116652193335472775684221342994492538002905340939878786286464326554994075837041046529666838760523178332466231480098033031851697165952497218866124219267288866065322509839701209222613524716917144853065924997794189701972518142747756104615293315773448330640298916763007007258661860319969783403936018809880011197002063227758494784570294675673606274997218427331095656864072738161938833227199683512277253780342591193557657581346146907906954439690407166095885903264449784891117129336595805990298981057864097512543552216288820983342794756012534060528412267300952378628472496236482514630330430291702204139943694596039563610346099253693153100907415589179539836666050844087469562385436808595853632764813039394932789224761591946533099859822606770369861882658564023320304511887136582049699823099635115470418751729933505281732785920735934880135463489007357292345697993351397219749780966719426801965225604007616078171912462007472708677232035176773920009781885045108898828695281627147147821779020450642376855214878329041905242003382134866611909074333871920385358967933153792733487225821260203839665257217762044781842155989902830956173379898641582319972508774833189425327234088581083050602051765804276957275966593132100430507880152190084200181166652771579947895894899399717580611767383851572831495162241527103973893267991646175501162789287765293174677493766350322160724060761852473595765715002430011622478235475282334092876900013649446740772504124962218077942824142392137229862569202599544471350637430419446197280619622842323155703321775514418851258647243819310198861492577026028434653134116078625561035708225024834760189528735212581095716022437358974983583851815339029669013392031592413909196043007879230709636881124836096165484993574619593625141957944496499628462990151363233424947099466895825894076996680090971864857963403164122905567737915348696100496689354629428130121669020631290257584945437242276868158823014476105951180976942316252114573487365200671743266296948390364179206649127897859267914988942765416109540960011806263050077360674894720120121364942349843032854316488586405475465552529358934974802968574018200853657470036820202460542342410888528648928163903314052099378678198222587656131357060932527908541614248233237961315201417083181496917926633766549367549777519740034400737063362569184134083282425532182416488953420183386973059400589794889908359426619414297670037588826947396122014726570341255554517800446319934625173281853904853882535578721495130194233977072548613006173627691923323288765590917655344091186809029215167951016439757042247292742017377996366912276563061797181585138981931810811880925951750814453309479485325754915438912500031585704683430059146644507398739532820837655435640195587430917919979861043073886916544683006135907070280835136086636784635007861655609804419202243528085944204571033755895596705701339309989378816250028259852484764199728462588268070714485297101666006682061848988888613051607640204015854084330173169340675606078804207264870846112972281096875105095152641942107544379249987068849104417271771798045779936670776612634686115678447273621841770536313624841317344545552355565886051769888672731858705863321967231564931203350075912690595290345727498514490119158767879625703920050537469297138207832348604994952062201156379580541243056607798821438931991998339626680096205077438712739727807912469617975582642447271852250793455705741223661329220918075765006864086193466695762754753810518727598869325019401610856054391853623211014422957042014116940818065887074155817176251586798224156553113405775175910008437255803019184939199225835335711994500552704210429409225457946941496527974585350105629935933635833060425833051945903701242554250765404221327503929862410599630844590257723735902540386939166993128675413673492205111380882784148033993650795515414441788331946002735325572938454090026750360807883490034725001457833591322610066970322442757027184880892119255849183362528483154325732293916663981611604754061980152028376842457506248341498648776224324538074668340119725883141122604596390525012127732689987553368012281441714743421562222952489272224970849809351129473153259062574745778548746761401396211354867103833373483160974299008793032724894939768651083901073045664229888186363015953905326591724808339405898425043431237251572473742653313732395045527613645047748791598579075095904791168760727632891177640892798619355089489676988058324754542536278927377886127356311191159927965407011782847352434813332599035179017900863564212621939634643647105988564159090310523512998741728030092131063116555583765312599758656700166797824575021238830143442099873715907240445669520991660032276318544723133264182628826878701293290635857261074775062144011988706522840901288126082492674030260339346060741736839024423311265155934928846246382867220387434027145483357694569091799564999192663922361495302547055518448173237083931273458074080293938650183926215774921022665696300582759637369081734588951098963174471110337766858904046824407808197631357725299888791168390592482996346762685334140833715385963893616266224739088520260299435216319984710605253990220177878099755870819839018588558585708669872258402536424303602671988587022482408086603608941614268684882430282905531282660059893679890942951614398271816976841883777088875578755546863942483995683097005406560549616458196782255207307357230667464834517171235936261208076421658959251388292898370666811656910053132229860648465062928677839950718494834771036013484937508117079262313712104391030645348794614342342437152398431163177537570499484441795452262898319115850222621446430775455440447604571010144189906951367898579663828784818989710651254489675553774767842524657510155419208235488207978593880591952820181922720824963317149674707836964804515316105547008890775846172881603131241493717237270808001160549436227252477730751597489416336323529752563640618981748447442420606779029414717624591794977493975720752744893877281383363733208019607454093167071687500179977334554651805410377305116083562068513564724403236367592298737557173072586985058610756289284479560039387922564623599281769024076937928901720067510509598302603274422943137808430103942799381249271974670029022152083751813718436435199469617750435624814006394460077974417706783497819765857164048989403761514198868906148396169736016891199001015367098302061554150734219366887803536892065126139462676905708678728544567800857504145816920581795085258636646502585542254034593789264682823069812536188201969327303183495988188070960473965671600903962192193845077666978943133947248583663489504641924162910008716321065205419338246908158703364686218122020736080993906066795640466517995621266332922422060251836362417953915255492459383953420303026150427602934604415740173935384891132918365199315265064885064104333528772269787744076093955468574922013270617615369920961098137221069831534753802559003689366155346766032464971570393298730298493386600592763774079982397560049114970016049165103921335947455866982671499281922004125876809504642738050583406042569815681242928020670172125104908646944483975877569540268125810008255248936658844463470048885002268866349720056596005964787386060988301191427172720589433368126180454815728947885601083745568800992986962800928192283795257745105904047588712669222037034854296294151196625204656110220319048966668026865282341122934452040812289675518015000717796121087115051393059331645268050664183549385442571530388415572936934352127164360439655393069606031906899261614089845137141147019630386548810620463078132383094353779744954219735765475733413303030245240558716469866882743477192007919369971510771970972623093081747619516871846747018402013649229152355389284096097958174654505136834484787279613078984998461317195782998044947094566291098080835417193998000328922606936108542316390810457294807011394722062576510785971007301233100143095228932877514741086842106475898525243053676385774388941869446411846773938319288833998428599909682845720187072518082737691640586779993652190709862237401333699913715847500309201154807609692219403642870013550814446180440978039229682249773282238192643077366881435778308590484480380095822835346811741784748841216464838348369937781969503968857358549500885173552073553296706567143893547659469302918821571013571577937751336136432255748565147872727651693107088876406549299776270451956430744168929924007198521513852132061545834501197526653062024120917540998304536821259857274032759070336063853838234040497015785376846630479746707858097788977229476712768435499698207888431527205792877777115639620447627750817638518623933159500355881259217154105903528053978004239261024582221601533646769032770534024590132536584242546386731081980038364800023423498948353511312286797782859341988166486270954277820454381311633570632551225687391854889117485333662491288286972323147098684457874487317274171285521666401425206028660761148110241323706854817356090365656378092849505044579354072261474896581555151887589045720383035704716010629437815466126925130866109433394987525004217406436694867853581725624294543494474743316583029172655514888212938096373901268611356409054607364795915353466943712120936778517811489707985842375035054706279374939118875466351189663612099301591711871292762193381648923430613097358068352812117699504724458516456261282756625939967612331265301504522846072230923638923731567313304767417078654408874426815312038437548265450468568052869169706564486525469872095657742304570007885276758729079635440082915048558161974775825125204632791909906690447408989374878391937847344088145047494933063889788140885238437336080933502835814429629721517303432501714273861119791114743887596797344535263176554590875311192436168141625504576933566170295116477617383030772945346420356931286828165048659546817571378234705271447956864097464155530773757024324627604621827111016773489003759389994521520566909461482090058968015045057651569478785016518235216725783396009839704161566932383888519739812841288810176422130563931272191581090599719322205736049631849238724018642127157708010114908509884083665545463027728095255008704889774688404306178883102049072608819750878832079162094091239508342823904964129418535431155925095746066173978586966661355083945480234569340413052622211881469595388490903793461361047088729226960837833408944938899208725320714371830234639106709919190055788213307290951996085905267574507307652870306987765595269922897470860167051318899430428755328342831762397147731435253514474777281764027779302030841020022918164704947480511950027480782671027098590611851061239443841167575665648909494664196319295101593337207403721163517900238793973151988756675635093285897171392904267383700302536639737504513774745846813858421586369893718420320800805607718372939606144148265998309076652572459195915043694689528945986862880216198902305331585045756894057927698787253039404225342693676753255406856353500813291934944139715587550605734630630543757309906051734204059335565837487429050245727966554606204677334785886435367447414054274143371315846199929525549521667920078414002703260529068815674190289104196799029605911353288125427336932412428896947082758923060527030735153572994792772795655646406436987653859594530990996987664321529239958141987224073831683607933483370528141146139406438877268374834858770125405612197652514386934384106060278322720305911286508934153208396776360731743941502723894883216229200031783951802389666533700660851087485667185735562898847508141825437138353188986835618670021333551728531207158162320125237316820724001981632657350628626031638779488632596459491616437515648648545841840987974448230604424690283751438946254012681332152574159384317085167691596479788802421346088817663876630746097516498153985277023010269036862145117493896872276208842551658028287082313766042921127154112544901074314943060091007806426827398441787589554977878584180275984608761037533056674859092488377543678289318447112183077328974707858901290820014281031804049834651175882032931712586603367280875758926173021619459878223360236315204074268460606327590320392189024814512991715954731370729705310004192627116681451094868571249271067175569997223948230968487702586842691080339870618346905629607383031283478585618812356658487597142795954859908561383514342778720801531065333889481548411839145091664940476746001162318340100884864631588324958298920376692959724059433312703039758105579411065613754261082703897171822304882166923706433874647875878922038444639506906857962296854996539822320848879217988598304578300607404789119503153422880972207346235562228514493845854408599343193735032995734871273772472672902807320231801380642307055762573564501665483974039945241417086942618375390346590259199299381375595710527726180733361117810051321267368515768970112720176146212291344719550815819413044951423423449851649404425858827420015229318070253034069178550673472606922211895374282504062543238032238906903906309794464248277662421616192493053771868287917355446621848661977500238275959851471226918722548931402890716060082241485749958347718750944231542533598279233161448124927818599938904445143156341452666102146473851305534669536638706620676108156646964391442108028932952335932331267355214955420391688334000007501149202319009635314619853786524133700829423125450876795800364696816736438994861191080155674927817832426420959792972201560901053565714016046258130542062462527387817114618628826968935792827951439063482632401721125461061162421151440536397802447529650901508854553980941362916905226589114935274376981785539767859648621838844334239090556986991540533235673093147908975056746841767003070582762152587115737926469283176229362385075279738803156306828537872615977106956447654468293519411934856690548336790088514559760059596474099767132491232316246463230982613455632864574963232359923916632166197820976300966101285321951774901026295520605606668280388034711641175950179307483574435685691791308918244368059514829907924463416055073024671677085366146637748405585805015052353250450885877179586092189201003612013818102406058655827500434508862112000030724540271628087713961615288589221865778401944400452806718950560355908717929625928602288492390528030348822072001037186909151899113521134871820436631808449324122621854962581650232117828810154910757681430879381827442015925802587408563018417320776164686854689537917347331067599129188300247218820725846179945305976320897124318183855445631019640483670141719467130227939598752432664794577489684292303858491093465944459259618202576627066613918408697735411408604253900083668135127492425355762047731682695813526384288898945854457059894713992209659710578852307376828876481668950972363305837395339245640526657324884186582382586951047377289832782025556190562836001485250889912634392019838822100283633059755196624733141834117713210828568162317556564609206921320281772378396080614426667661008217179812980361301606368758192127867905911029453030046126262913705218950674204428727903706990434310967967672688165269405248698157344970147349171403949215296362473332313497762379639876859113082946296809508225160905157978180387214291416663705302620695151708557229702657416214022269992059691316915663416775596119737830892115221138207624204966630165183266498837471314601467226585698903352306901129747418282424572848518550494117504566942095979525643211602695715508173573384355475487382554364965162150661078964376635447141468917966969369692305639610589202267190954285822109389908561571868646356647728205998342946535879927421889007112396023988524934946363392736490547216188287292878873444737009196934760863646669596950498987489390376647805918477128257335096473332274262941469664369470084968273700061108516696304786930334258413574365091874606925830019278693119304665745616465669121755412174020592663834956592671566233371758991261356096723801859070366586024964938147750911494864669764976786116473020399695372796981802803967432751860363793099225689232896865554094836263562504479425813333480161148298199973630143321733381467959382807171496186388514175606064591871060773321660185859364137667619510823623946849541509369131538323042452307005299365778449215106080462226096844998027012955351703656931779416084142593164277200168440179636608424679895952664563196385812105878946705093266413295496817638259368296805483125988244991085553643029595068464091168573363570731846894342553669191948097965091519510738012294487394156770025346143080623963111096820993894549852632359704487648074422455972991334923715216835542723416896447272912461047502178753080976104573177751581552604476349712188147599003795045828254026417513631524035981044146482264076424986419858952236859271711265752336420700878987459830110586128004121786744670668079402222231063181024851885224704978758164571728595160201446617913738247309175073101976538446443963626066230550551638621184919056874122201409923566574107749319075535725963922281687249134472490969235461792220396500665671979101894863132498808996992197612094891974147066614143061448432695219626135332725135878726313287800218869603988798527352474633848688828317513090172842234267799529789979696632105511198595131448554982871392581584403782237282229920579869356600813161990395147221496422900483649804750526178946147535873601452040863926534151867635321313122317952918402050952501260132148150972256346931339531235256957056037760713399065069276171966200805039740351361039033108657918823323699549285981486603603529720168850134724323048532677584867392181603491483636031227077002085424562454012545716891605505527125535265423011146209873998829468323002574514320619163045672011640733814244535429006896269695673831345754060586936478823694220533046190891890762881714765447505932913466313147237684101846647747250443742469446613590529720177014958592062711178980423224462044187413146506837216503737113417895850887083351602053275618248671753916848026129551646888088477080011244320254194675792628344103283909580336137511861664329976639103266235403815930869361312058374882097301111784105386556196716684949912993689142513994317804065486400891619111755298292664958540464015738788235580298503006440030553504382183111785750746827186647746188112938324947686199987222146724135080964430621529383744996995630881737998421017038636585681178846157790806174165955138063391853334768221985377424488184596669201250159705802738769602939552764581873244816831204121732557274478133957510923000708177684668610711104890962255165919030551701472451535155820425738585970020395214003397884586911591013915733975513205902315588689845375167205990482235686183561644054444002849398722907071965587950296684720150476431344298945801562117787222227920278636332189010737855712536088039810831187470472410228171518899071466438446520064111020904725555700761857602071435331932607330972580611300804236007317962939984645791446613876307586330815747353078482103247343878227715939571626098601405116441974408092616814375775230549616376846130288781720670801013449830750762092888022647211670132907854946804187291685934256155353442706349270927473069019913535168093335965376123487407066021012572732529121592643933973330497885426934883356640328595646832339571249160435724513544853407444780879112372791133978453682691300446144544724156225458030188739577010669960996933635171494698156696838088083952133925826226428943919447717984338541932385885630513556231567735656080675090919284601458377432193198019000923667225611395198265352806370773586985024072595471165091569026231100021018765112561203559341870817169185466422725539941138345584933345583622593385878088422382454528619062502743835066330397398183903216549559204261607526555668097970805854138433842363162177590224697512399121803143045881238565713329171143134752579247995158482879277348428857972929370226006012346992345193786262425243489433615030131499332189919752765427119695679456824885255069859356049990764695378729380982590821544810847581665170405853474554251390727552953453731938603628499567918714010009373134983576795074628435511414298584984208460738936156908483215924735340495637883874920370329897502325034153486380350876767909936993112394459396042445793905535086019545631604408735570397646317430112520834202461753554275419990582980301908825342213647805076161809448334511383209770625747082242864898106358531124330335126570409488730519005033297208846428792996973232432953342156034272301517470774795371285011078919044028283329949625292634519776443147052572335081263721839201242136496355528019161960432376126836412656917484871940440482408083791852246436545868395348360898793442175097756437735870144439051684303531248990630021990720424025302850031142102748371166945008488440564454905906779267748253309415558514276561520072836664596386088098346840955783803305412360790813635012337766110140556541371653064881944845772220477022340373220554341697911522130391348405461054007346662948960178454789213855463009909784939376724490052595859244658751536166373741729386089049419225953746500614083370304101196083219136830252494830012367983637859036171454315363019560945505679991574012058001814274691731576253188498391203256943873599792769015259715388313203623170495611485671338038850711751305390920462549800622959652708725374106560748143692071115066181661992321952418145008596787419573594149793162043656009385171449523756303379568420627686527183932037915013146570487764890211743550220705435822157061735439038018037777306115066829786604741256803212128466813516815079835273025825972228948911415073117951805776068382174099566482360554620448549597960770635880109165911536221392080811853367446728292824175961268482965309669183353630057253334960045895859455770535669311291070143003766307742119301476783232673623081764222405221111581740022167056549721723600496344252224238868564055704719946584430094450830870223441776455567863812110926045941985215984773808448678675481411398858535678491630063566431684364568865403589098218460979634523211386049137148255279654378065345889426774902648002170403237910890190879441540091779362956079288094219134359143891465049128861469800971055883751994731795861435335102608674277871745122971639520445072147351316669111865718054379399774849467255037923173926927085562177420261864944047071777374056881678774438359658144378526763018425300427563643844266012991971019332311921430282518224466618517924440461111130352767049474442645420138114731846375938550087183110645320762369764159854004182327865323047327295969152764020685313463189470786556132446614004361642231886145722746631334284418804120949988259788969695212192989066786532595878397149506003529095524898263513158492735340439427288573166634855707019232387744280181051331153918122029703743678465697939511393441615308119895319918593569573909360283319078688965462753695898921296015210565486774571940917268345880623624557966073293596947814337621198294320170225454905219654578652621083365601607301635049692585972146206284631177021039517929083743038203437281780938125060417437172499909920996779620901715248914609018739185585886388856328989640654681268746461743971956411702160436347959560406167411686359670975404183282729973807890337877217435067036986352773960773701240597803953948854781186005087684613947590209616511128686890586992873398732471336123331029778446563653223242021303188034841821393171963811632512887697644690829026176829656693456873594208663942385626867217687028336015832096352359210074658601593940421597163494103834152580933385114144126935119152207251146404523065248046105049255730666790153538949242231837313951282640065865216131570159080159895765468866753378905279117767832548523384388918184182869293524000266947902612586210480599484471586356124670526166427494548648357008241901839523417632223236344889095459671601461004054156845143366384526526890515486577851611859447069011201974410843656280299554209158499258802037405619186895156843332348918456818187293886865957862171100538344222453017812285211577913579025793142548064354919584122812565018532229564091457124521665631217506300029834478963976414070592522891046375680039185917546073860667554736427638308262512025021636848963926780435184418293574783366751395432256625838298611858110728764754788910786124219251013922658919909070935904402967629964554107418246022212826152857548641787100630672499581723874160320709635641301259786550077828650135936828898740973801045278180130933852220719195506872510995420025459010788778938822790560804094313384876401559428939638475854168540782919561476525230791363563476857372061845470190155667677593307627837461579852873297987187291356357412907626547253097986145259145803287298469235197057597366376081755860752298878310462410673718551211401015772690367873926157724091429782742699820189656925634252042841560863312110411490881670664917848283884960058399296607770537396008768802887220830998678162634485508318856549660878162506898332967770011738373630400726266313506745382686455836428461401746203477726564372664284127551847201015505098826732887582360727681264748727636823048599205439968740520739832037401585948391200955732865578422008476383554468875326448259168412895383070844761019716924705063072524006920322192189290672660649785478320490197739991821647392192163578125417067298801113767055468211582338969240085292533815722653950993827661341356710368379741483675102523351509939234823388713218350595528441145950016744864067874687498708309892684760646064120389950516196584779258798535771576286179824375401894341180899878706744557236014337083612640890141398883189746000993495968194634370731551072641900382892860033389069196987074788032658502052739756949483833296476899249992443559385500035840871450325182085530547198740664153542945121042420471082758801251729935311792108317676095328532325886662274610071062031788153891040660249227933064964302306375568481485151886536238616525959350033965816190460991428807093822552677227764410576179399150002602385360191442287436603772605154503993983674815325315542915492561719173119231567918623868743083963859755216346164779257931417395528820145110548130083855196153402914827588480642438618276984556851486028233725985287258839854044618976558632944367676241049362202090113896087700435584135482452163833347266633657785619177520880715081863572620490293337579143248646962743129689345370811566409100166971029135059584138778203570762297299254796411268230298434765424036980463828020893367712539205988803608918020754734208851079463396201264029544165058472104906674095659485427782913329584488865017299193847514483662406372059573635203911070350853664479010890170335003802815547955803855819612696558650433499941760905709010706732848011479392875286306709283100686052914050747898877564639079830362008191516605839197175612081670985589690288441621863873616019936606415619957578201558346996306830674614659405980252086225888307390418093235486795473465514096838694935534487615183384267349973026418940261019217304471643071257452293881957198469355558763350139900745366336176002512960479540374207973182668549957851354949873982656217865213700765161638238528239964777621439856077863808917309601447451438910054750229491104583480797248154948298124928468812548706780169401416254967413308402918237338035789452592092020033951648302610718613251107732088763423653513143297570218055132834239866831052154256986016540124559005872512628032220282167958146981985571517690601198849210821083928935343246910395816432927138647140028861991775904254795850889392764481737840253624944494677971345161816319931796866314707346270888888270653279892880461107001605258282175093761347204780440198400886894770880517731301590302026834724223835292434795326424903312226032991448903885194975851739732331739452574932058323028726733681159602721799319990608822646395301415476465459094429246891629451032441366041711079858208994234652301687027553246628676979682117740250298282968168573941859044227516553738879388043707688196068184177669616852526489806239562327140940546734232572260748713056335710556285450176970806009131268612876252891113988112740745374590828792475951759431002277254149156469470311504674955879935116436032564327582011220174828025005623104826334637435005719119722880310252995023707907909372689800055805395958141815063243421413082363350487746288138736343199360271165716764936483155740722190896998876153811722945461561119795302507785613127026498739115440264045915766880337152245932087507844455317186548966000097170152097240696235962675273540492069626849815890652242380930531503487871778615945927386032366313313719738627361998889175082746439446704239489133481162916170556356025499210948186389670346265479807700061449491612552674934427656821371319586667399032656905853773812544786810180820123627782503426837638128643323254096007369664784812155672583217359859826329475658718810257548843764337770847034348997912181028072205239515416353693521701892588374681975542667164544254481606720661877227905028308005090457337599263221346674365168367172064862642238950834232375345290744061792341984294804814296310521426015508534250062076050953952467878288894716875621327332353668433990365775103383686495774127645278373229623667270258625797682927165907684280980555805867560316143178853508292617141311503277812874962085230948959425765378340148438760863037785262716529449294095143647851036624419010858753048085682898737860102140419201680388839166709240431534419145041458510017530854153610123176098480605906831152259861096260123002859941462437204038180409820417423704400618417164382878802258407409130469758276202766522390755243282307308269503151880583365160503110851064143685862586120281910452284851859438034692142101676240987854665101971528152262166195032129304539364539439937623022704586524208478155705034793921593523873396607123650815514120398972469247857815794455232703460538413925201867920954486192561985149818510984290274451878212042712414081802602751568318565830146277256517518733436108818038332696648107786327739173975019639441223504757123230280913906301921084810780801063977728676296333734952617315123977963477848407806842946164654383667554319870175875574211870971987714285321497239522880541720084110566457059339257794321985821763639518721128722061823962837674310806358300276198033647840660694663159445552503839453292066910393110531001167878287756262306731293518239897942403941869710188124259982747964713215522561142432636691306285656011265837647914497442800050873622524381214691972071125395064308602794618109357377714361834622667391548533221349080744651203364156918979243629908276454637965959048520102802620705860342157031400848397735832947768770110163513313693062352749723149873254762656214864839512206663324119466361318077621000404447360862864454484938193008790169616015183846435769342560539350080306244276432390324596970302551072603532650342926355054185765635467415241191443076006128851048179312341572041408785336696013873886044211847870549595722397639797372641077506313180962602887684746601298900010839286035455412090407518745421256526550847149300875576017100928679997256510390015587377240504932573004451078084726320819560629276896608189631443257406573661208722131941406749246906489724605593836076363813675991748631378624041019353336063542079421079903963495151066052514414246565544832797191732542638974342190645075922408668355582183998235912259776904013645061255886328381822267361884032880686196350670276881612961370758459240888137658813661652497677272192173140849086481790731938934889260377754584803181922543815650623645744085078934135707668678804259306171973946973275819325476891334216246146399020348112326353639300544876921009122579486348182436899400720956244216335649827803884056299811342158946760111831843530521050981406524038633761434638996461836693944275253369529153940070142813832375769014691517027236534095334579018375271828273553057455643107413793601662776706438868632464301010918407576063716142468438404436665593939012777654364752020078007811087424235352188081089342803265511961202099531665620317200074124344546495558485599736430105697173944798637911554277225063012680452710233320143942567522921403890705273478013100428987959598057747965106052068660527039828681698404810662121241648767581018609013639748925464292518001679768357405530177659949285024443027926969557712880950550918693664395834607518643617745382293035643431147814317054007465791754667047598408833056357427365453260362020781319802918619037987241797147200809104524189728142685068265048498870165836523525132312767312812238611262814364171043118449815130244651039586352157404134814370003201718479227961481205950690367071560158301663087067889022986850287658697649556107930841388772480114452020764796313315546136282422991479101033296985468143958672492149733839238599569924869500288101338515554203438890095458057767273743206631201581161893496539432576454849312995177313471307176200020757504243297551144747512156040022500749016047574705077939114731131363897334314033911312685793349716820420194628795751615601986063762014456863957232103465860217938524539545355594165006609029596202969952988103001866104145963117903077965937465600304965958123836061548151629209979828038672400654670245401788026903747303219305399659940874989793479021439202659071914596858478152885506055695127582052195867993509288067756163415583602517622283235756354704463454115994465473227173773983695573421838373551099211309040440431492262166511355582415526306806502576120267945182522350756404941552908155909047927858110530747595142644070055655912573125715611321827642739928693645100877018759173564732459286053105068106539121934996553645884140323289813072225056798331437498912378050756423340403989609095248456385770703538407217309258356742358575929538464312094361475223247962519065940662186652615387707536633827631866992818479450139828588081358961894798592695860766848296556870491703657072013716228839101526406139290849418602318871288326608248115080190806417924102546515017705375145836396205359690956689530332812943897744925747550182496639777980294010679676313059868167603572125689153101299474045609617682328891562117944183002729147968687338763388415336376747803078901592060001082021754214426551118446132231682508236862518258882797671644705376736621030808021853771956375116075874038915300473658025164887801473869406511927226779383746295996056913257282397600639551892920177081089932512593155940571359607233807759558553421969202979789029459998625420620681787598504683512649223004012693026857213838124014149042806955025138949230026344182546476569191374722358476831751799385354942748652920962846386903433931688343551567650200065248156472414024512447192771211335147936873772577517854141940893679211399689588865750523026353769340036893931210494588669791260374040656091264603978813730189326882405941969658179349409735830164442900240115675054822768391146445820815528215021421005600978762654303336798582721906110403836640459627345073680237916479879053148203893987532471250862786912618819418814975826450675026503631004161219448066982194207947551026036282309952526735653352815833434194354885628202681175102444862108099038138666676990294085904099124017195779266866738824733999907625722499839623759156821352800751196071497695006697517220861614428639046099324369915085333667199063114387968367815826744972387459321875678625224921179817495861834069169429280232312555669517264390600679250243343152273973705849376773719229856882997979558652247395291053525748987506758250699776708174132531030156458651605093798677491351883471538538126444132084617282281048113188547489074231234435298300186169010649704950680870332321780753114884961267393725840295353145926049366445221877691838774058349708730655839339776270102920177038492610031063944859093714028147052855341565018761496743233431516602163128684107535557665631406889440363660942788406094788212307293295933587864889065415351953274238465214120293796220715921310322544891741457467631086548560194192150311150910684609117964861048885845803259228224091823909264697553368478160376969341884481036935884077709728458578650355015946477673284322982527572230915483965680070986958255970459259654434954798750548508909644529093229074914018668319033330251198606115802458003281071219888042316404048830534919351383029415582364381874293181976708082267683926671544642825345005807329824063148633783686207031583225576045328192463951832342802512607578424937595755286080125396461755023700225908835178478010644342159156018147069794576744855063659557134292033265126599808192921862424477114960792366481004562098495947495621854915351830462328333641517023362732344391894598241621777794665061118518908808651517993720595621792574046918231686813000297096769297871343980345616796776820947738949065021532358403288967370726828397529827723966682124193667798935217389944315862429122406589633083463637841506378849912837400621158423778941364700634802561521193494945725225626862478289547003531519575746951147974446511672552199283194320587684382346313379129184592363651047109737218898725172223056681246685735042658222793623473331136694731340000348318369033863838822764163158634562776682781029844501394528786533678321411136878898984608941922402362713661478198240547932814376451282484702883199697800303085893925641317601407066619894861227351203367589859628609056128542746325602556412503538998824471280231242391453203463338977677590590678764148667629315135650658447900282167279816594911505453215333658822099013053978422046651058828806906196795059473383436902473503221686942007536466116111124216625310849899029517279891000656806776112513474780992750781812891144169500796803416804935875992386995859611834999119198983349351923454202667662463295609554181918635206935754532644847487168888790974660319404987506896212567756228127305421439650656647545030332524773349845775338792055325730972228432818362454064522274980422119864912508058878501724535192802690191298671997914023415663848027689604547876169598300627725652291452437535699255616148882495450382825074143686340054581558266799322616747161086211512002029711738891183184155487731138249355661131200513375388460429233627890692660397426545132606901405909616972007387772869161240095291615853320584337347442554877025247357646074938458817030951231174134982697364242994995214210878221235278229756002269372611129499081005896031856753646219685240674149522571533006452148372916587125848983727802434863694880959564981084481396139480195175775838812006203677835615183997071630689093521347073117401107309659938472491553357132320744083203731267715656157578644867362798541224274884258922162659024837449239120232715638638818054955969936558951981624698825640810657143816144755579396221337691494075386079179459856272149098859461410653816943331370883507874377345876137962461271015963298179320125621949292734947756793290196953351052739680443217692751226529161625035611979123451028952663632163726472083818771208151259378041302721758701319278990168675692383056785926701147608667717995616515097801048053661264065519466596157201966625601521346699453741160713378983733995977488214942946072595455735117482041155330366652906183813653068279277872008265351225442647892428299417144585829765920996428996804012879904726858397745286287365567633791768915645793591521694282697207746415092825942383405906079031973492634551855981059121260869013861374413620664959234614721376014624252321827491764310291176508761876948849085782243686019923764134850303466442892262756328687866320619151420382814906731090957157708364872174515117029434555926316622243673095575752448811416783445550485179970780856061940292630921000443425663391817248508023095006935799249065905897385373670919189299029654054189759454182554132534325229016115081998060336936183540912350908861745762293311779710991105836501099962241121551179734657083522333977917430434289493560224480016500541944770421879795923655851312469990849838408460988566772142912006176035500610395678935463201334967790253062306533138857798839530371560067184418743469917652064305579512984029307917306455639721823148220499250115934161841181059365412085230408713729643159886569272162656304488255861829209608239579321402027018331014937554182655757061547942001737156900768164650103367208823393604881375317787681507240443630417799238318061836756684197916722155736245220079342190984761985223550693467507729638181459412310369486693459366511083492317000546146487295217412817301305715329069462107051606733143242586222231589565283917801035244821866653670788823267239194985231873615498536779148907956102820066381944437441408247525943847304796036839044437624054653630663378918108404085099402931201328758229123532076343325689880654447626005363205410497858276904671597142603345943576527806807421905544842294562157111814503733249841900159095218735488584372499134522163448909268741452096322545256144692652260605830761809500734992239531585614646557807792004373392742714620566292410537918619494533085774350681295302618068056698501961949516881679696635685967092559213530180056889745228127983793792267850072786923350757576548701166465751460841370545351506061507330612272463509548455001164471451311243057740500595422393561999418904185639750951296364988090551549361828487110863031648167184444001362824857824247772997148968549325736885953502501673855379734232742089998019154432282783657514368250000524723093218985886949247453520076098517814129874111612476149201450533050985747573456597835360859061952359456826727502318832305603216327983551286505479618359850221761909743982223626708584820750785830433922927070545224818366744829600179899869777512112411627006682602403029455139152108743253959726570134174582448129437968648980178109508418208818421756758103757203942386304311764233526964124837590861940034313828366170051516668967646836131073710717982683107586643826889302907619663307949310621440247056613898480532076984743788899050443743224635230270416637107015984300371865391107036007889379001153408960349765547714904671262104487335570683120361808260453611511210349008660538889952205742327715055493774777616496841938617238250610961485478197140087716049459660201577086009537852196835586171808162427488480217649353572581028501875960186509613273921996319598857071226579319854990809954574394336764526950499500124528331923537203901665141746919843592974620107151499344192032837177971045760601123875780327815945010701876208983317533179114969012810206762234847984785688612887877087487992305017717477033439001527551677867104231601536323133593523147347714689626959451546836016532571417794886522174697949224245449559162310617065212521468796004074111343920161111936002344086360290167407978739901489207751940073929355406287073116119336337182922618873446088124252203779418157565701867019685788180314979246446215387777038445529533938283727367234104081527626604431228284613827700442798395678661595244691958527395876923437059245581082654385998330332275236372286593058270380312777851493860424367946298392185894907442998684471708060154053131430905810875021035323910541701537581993210663740520056468864699582579601017961897392821353317446450374940938944386858343124515361841516219444038122630434444173183060325188984114559127219443919524849498062408034707024246267184690890667556749855313115595594431586971868892803617552049873028909837988190606937859082347494836474981786170807344949863761880370921483494978079766116232820973216943624672812246257665532031443169555943056994153248145426819776309869222050519803139101016131463372020347290618538185670015288547447078306316331024560619210737534303742263969634803107404377818012166476356011959830713152622655636429646129535627852418184628882698152208563805997960902437405904274875065337649031789887356839069990464048124484131693364064784004361017813030861783579280115452933579443661866975287441512626321790857354977802647122167694160944052362190175879249285498891914729365724444029992895831460244634527388543864544321995779087691755531981320020576385714569206884470013362220193268949294946419797064084677548755941586133002806326946167233998748691417253125007613078623461811155618642170865280709593031879449366751061605827544642888435070510028897210275769970919348710079539548874650852478498467225063097537446452314589099795661128635324463026889404211127409195386428412079532505750655830243979057365425296188662605184631985555506059217736381853474397674329731466568069042526632495353765241212209859498304246666411338605295216603061375624317219398319012836079906145095045804222339216210278184269710530775505918433201226519498497113920474436495867791367346497168983613192540239698567769112467994908753996436105451048055024020729850668299010579848011551765190715205196851080881476996817877476910051964300995958126970554349370942520112890809397480964297967666352655924078099523917608162596722104329593584235510905631127550115305640858746400799455797005092724565880278800959021987249906239706816267317795853658764350691041559551893916862825968503485790968819456493739167651563382083500592037292829942174797090524123888976963241797119620470634022452951586365122366219962582844336919908727656776289795369244798120057255150812887983492800968203082214068999913651506448405782678091384597996884478919332025103730473742605537550293894050412154359497531798997108974884399095595183645508946691553011820999120572707279762714078154092613541757919145766840751429418267152671928970451302336301792408867698321192441224763158538027032726129909060977703331880786486593372108283809376854337511340719654316478976556897508970600246933272735551903118412824704637185043806947446779436626549025457202600418627241757206362092789772372554305320560981174243176863105263758478925417222170023372431375129192305195440860349537169515442102481107217251679412243402299737142876522868718622756701514252833443324952858341388163041604245904203154334641634440190506116450035842728073851371214521241717545780176616281668878492210909735006044634163222345902053414715798062420612554627021456116283418070273789569596553742806154293170748997271386535324611861529223868144813006103804892830515120955649672549198036077607887944364823781237045417677206519319086049806216731834948253127627755966974723432125985056548939812416245217711176169400036090908199751865667271524655460488483035722063841836353399167118602102316748842941804999134387512454633577613679068865962287199501605215276085125794812334780840751657440068906250181559231610173992393576783018363886436329815963492900382046177628259858885504990141410092900285100644727076298107533105224234433499923378272561598617039039465404760896453670146645543829403367810617587896157147585369573622285589044061547691173008074340882606164061657192140000149073328944813316168249997559168969073811918234719814290490793763600427947299245533145638958535300329838087949010748454677014513233026241248315694252964805667515098162406771182504781180013035163913534052540851539574409123798941460870843501245856650957626125635074916865818136867609109063474255133102900715185320124046722856278804340332248940159776369887782431440519907094626111555906807137097161374011049499120504160585675138809823247813225078288438366942243457495690612958121232741523576238897672061709315043665113837529604853621252365839909655330373729212729949412041284161371209747895030439227633758406572524541271864676363557526723345998862689369276594869395186891631753283375936968528984253759652221455254154054080437311419287276709297593811875775376995902239862975070968556201391831921269915691032082250889830038383274490837992382945539288262274617192243460137991987429763634953707050927607391715065967290730211518276106910331066291106948094257465981538031967417538987421638605737368939206737734169931815932799709601147869278296398573869237651014475793418515681136292575092431475522237669258725333027900046795636915661580848613281397594869017586694705457010997270691925923310059505965961490991773982116354609606499144684026369617361507590104232275802663355427717341973915569731079145256857647276976983088950162986840291299450880515302165027069568915466932385314894272798289761747927526001128352037336912800018612620358497962754303498335241429785185157079791414103716285885504411612789974626187021273916753482843745998982517894174748180164304955294128827716998787776954751684925694141475728919467590636647891163553805810951574247507433347577561827919896435959019218870598641403634848538691462956300350357987396523091718730732136902017693492677768034594640024227161353975531092152851816258500158981333866227608465355277267850711747062601352728259250184777010572160115388457257381714784313627802362311831493608795134956901511081933934717335314479121017946671788040731843871378628642544654893360499104470715602711470156331897392107633545172826423475663439798639316608526504374547540557990316262927946394740829874163576463081989571718601878973204972244436150615125016383358860148769801273048630846350388395951374755071894026633908546929215398507403147068818069371216373086645735452156545796270437093684156437824245198124306925841081375458419218557216865240637944490915653079355736536217201655898582751311255249403098864900081595145054843013796995753426457730377986645383636948123208548986774037763344934394096486734261789718804377001993811066524050542830919615643742941229440178683189316820315256315927421609682609493493926727012752792451450987101285311534186791686446914703254004923977159404295264182664357393436560038023627754218333905839699709676204899682940226343481445558969921727827205042060119610652941106730723644838524743024596834588976509377228426340253357869785060401823412480445746043625986466431437617873275314608712543798527807797281344514910768369387197997833315797725984681105133758783639120511026310082094909183969039327186753344731863258032427080721919395117120120473530613953388874050041434610757341982463046426148212398856864433880883636429712296260784316400081285735994328382720529527095460473986791288481733879141347149834563768540547980012413324588583446203401380727802948502488388553868635519423169175832104515467952141863617431258320006887140188113140231400260622098842394205559838457840797953114952214364968043709097667995682308144712055790229388709435919059801276847190411390628042889461828155758680844878548149183550823526524624447125823741872137013152226310710630298346568473069338811754417144069672168466841800506666442155988981572670934732744290709470433858487616562488180761110807384990164475629139090343073063456187334871633225347357039833534289294967337374851349635765294945877627496801310998265774292560130276742689654240796626502498261667703051010562405109963624182721388850550944999996425585468823846247821159186327344989646348854489791280881516057601356278022862139399604983397069234639518844387744465749991418582659219297427589819020385999400183962633465017361027754120750619744239400083938110540535841110259284674289201515804011360588164855175229392849510507510183273451997740069599414029582476186320702724814897821192161772171713295537528317983825910413888717949105690921619587021459526161832232056825941173441479132023850317621440102481897152291589456783697624749740258911440376846874233757423159149538620385029714298104296719165045420363229850164817137503453737862684944971369108062373948123854787545266713816596971121843852257899402662808948592825963157655855738772323158553568755959681328361952244329331892148736308319534278222612423732490274293190734811095867884997835580518828624040493303115613426540806708666404243370599122498354151480928456821121802497634550187953964511791605648221706864676377886454046920994471588898110291907346783272646675008688237943261406387530815542490860809536582072940288491968024115132662730126073464880646622441077831782140267905027803061179444487623607653013438842097641464684336085911282705244807022775301314587735002196457260435948808694702487049061105957636221935021645636521164597296578211854581128215741023740952252666384234911541727508431314271573785032143340157133152772368411228574894776784186224002252320574976395097291815664893012281561969596302577374674160519819279927149378155809200680572212403768289657959922441644699728791837081454200212047178839740467995658491357511253052283770002571945241337238166720765984421624889102822105152166910512689371156993921952211581960578925865282713167353808693682714769036258921503373773811688604077389547759113024021636045342884955292489084470069816754436859553376829617197382596416766248653468543137295401713934494629712656960697802504817246746563304797304565636798591692582544366462894811271646475494959354090937259578995760344500631992626254146015619425292604194301603405636289139418058001369994282004609668162619414773142846517992420861699250601593403836677523934031034518710334365079365450350961436750742965299245458489684294624886952697088213009125290787458671136590857711237559261236922696417554685891596694373826719434529960229062482667247698957503067907830629258763012357411305790232583188663333187556366290710357931959705109913228052040409151438267659224169904013664431912270716338959040570886735646752517301218681489778582151778321265841448916117255863956131605917178738821072659706320688635843047495572546583745674373375079454933200456194479171738288178018105377723636034393306264901042354218261574063140210601212654456967573453757827058120725905180624694133829239491916728577709820201886613510634547633322541291473784283875868541766360451167436583949824381513992785476020166011815721385246154983766457195300047646715562106214951353118738812865363758104698831648674131146349136214745095565315631362633233868917021228591910353330717194278076636487793115369140117674472506974072288954498902874751898497168922664730262509345066385294525718103559647364053734509553515296037877924265048686345723583774374196290196748943391709703973766121773202786867694279668639829999950297634541337914054830905127147320823643873317598581141320708703163064537102841659330277021853363611381949359334695098466286656722176053970711456050252232133659109202977513431428230282160241972549986370152792909822337532045705697684130324710284646262895978862516160774156813933850706439588919597629187777210074151578573613480421628898604135313437446018264292630542972446638249394856595969642387942790490155064136504686144768907078497125570707031010099070048517409049340551508671556453272791026146792865255378115171323604962989022246497929867453429152198756981953870522409609211957909018805318800114602967812083543729388089090394893113901169692574521113160603528023915745068639705255631626478314538788422618867441525475981193374183254752792698673666239329163316958580931423455093527777923134685915138979051249092856467956683670930928009697053115381257074200996869110220640443408374770192829818693973399354719110823012461761614466820786465229603588046556859304266130848892440967278620666919812048223018217894077792647358620553972496381436168929872275323618064848984509961381715054507620553755067024026006436175096310253467638849555277360681687338521655884586948767515374268891928104297662037662990529236236976283079966144812288995525171968113723991691399112504901926845795306240978301927395597525586375885143122519639886913086554099301452637301177568896654093266320304732393118562651206501935907533105343501266198972925878144819227644387559579678109282683822765135410675821550826450233531279767424768099853678539482137268192948176201826285293438599772770608520325533698535986543470778280610681255900505271967948211885001931965913744490355337395839338759402355320777703674158413995024589395418874795384863079429274671742782732148231384564565165929329782022077263918436216590357887868804480929364462363372968341501279039167787021075666657256767827383030718739954653018033892977842776667729671320564764738586242683561537183018644991710195593522456492454665247406133603189602421696038990261002752502136586475645433671067770016789965844904813579437192334583236569616363087123079127906883378287821993919546384267458972652538609959920854577304948958567363230781714950563119335416928452468199309433526851136806173057370702700737779104891238926125304353802496918524495513873874567732722123517782771018616171824967475403006345458011888052672437577036757150423096398449997554117805296818705948164649701261797221276894152967615829429159450376950345162115020074162285551457806776354404534219744696914632402916468377736780249464650458457854545621745945820039821958405760884695401537181104852836109943698057696176646385571086912177074018942483088413445527619142051810575777170694905945525843910623243692995787392812000793600540357756962849849352066291803904218317572509519229199139025575609564731506268786357330963564539291878341747746943462918882831730488365622415353338994468200516828125273189590927316496783618741951246519533328694550768244131504224226265383344714167447470951800443026282393864654794138182565589949947035001577475542142480877293188713581253673016298209012663189197924635245928063356691969701232561669681051655454031235262118526349771196679047359866889311152303098918558938702378294785141819993524337748733723983977721509140173135624640261221344938003912620288558858138409607315337713504100376638220429451063816098907972500878822199432598742984718653497418954415571928262731335702654013385154194462092827701774941989435077711612090398242115274151438430642784808805179883862781233904254475066919744586076655353909417456186849162419790892946246288233760292072850096471228450553827308891948549716298180747650131200652552438483462819303499352527009269775755637940790274331984580879819275388212411494242437067534084652276254447716038976357483061493092323399699864088317521798654572628024482775078839537492580636676241051440649916091049176561989233681687948550030666000637244143674072571074198865721442138869283483444124004614423457755231922965858725307452717071232600393539113010748454625720075069804244056947660420161980223705555799069077077617448016042366702205273299284134129997191206477849170806889140573070449502823992284192888580787763585107661841471932040841505543844167812112172397596272386432679223725120639815032124769717138083495707810619566109668077543839918836467204912454595870019192237070050969912212542086154198623192746228296604960606236193650930661524896589081572651235459930601107354113243354049155465591431226981732900015862938343856647323769682442439788805924558524941641231400831446152406795631657612185346087119852498780618184410378903521964545980361237751717144303183254431142219887508506437735647146635061047938180285857314270475573643599112879737703627104143795097606042848677855333444107329806644859953422028371582415450105711393277592365832159264502604648477425127629630456835333025950878901366159563540189111531296647580948762711797676388196152181908077728462391657370623867087007601880219054156525901602369980362986173677987032332983231111182688060699640619094909678029254592508130638022554325946689508127890861971867336783855818296421208482557690930621567087323009188770164005907378227309623389604149623773909970674444651548854770662279940266475998984363054825453271005523083550401596145854071375300869736804896486830150064540494534086555194083932773469421460063910366307845738253472389555210406777118033836813630153767999308073151981967466344660017954160024551507850497546278190727424649696655395142133761191096949119696608526329489617524939257341950893977561025808347742756860532616618945146389351200805363791041386726842687605294376298072651561831102653780864373626962121876848274170207391345607901401976864586814811915719263577257460536311857059547383610173293007865080203472846558339545782525523003043938170934159193612143834707302417237406657775397798872900739408846841796785847990144128644284351926542236021559979444387681607995185002178178091226412481453909254455132748638176096843971508011151574892555463734341999821998856054793982762154077726079437243701202649628164394576774915125392337666457162957449219598399759260725141815272459249398931402252553532869322052924858598563815035723034370258759037868038195678407210127030998047214947606668295253553564349906064316631202491950842538504857677105854083997374655325762564981074932834319260735184866485599736672472204413325662424342441022637032709280561351757455911067039531341639155381883011186181872715387928155294439241522264101139745349503895638420154491827747309633960381734857263312209911836057160366581326387999238651701833550589235631232918114113467522997211555065182635838334497299872309980294645644605389116486960343980945085366229422505113658844555821838241824746972936776934585663495748099464965626419118592442702503813151063414735622397421818694850424150653874934920097062547030819436580185090037452174837568965122834258987763087259448138812698718807617533933999636560061252741732576785057765437339959578043449222901596262545539333814078779023006144835451313383804040759831393273855687346055844234798975119161780105536275777960054247429231863825474765711203466803290665835268992369111292751595971214182940886514274526185665902107630699588007862281538753994284991615869042266534581817284488588692188309264637481518833578090132990300885734405927906141562418583864820766518962692362660788775454289930958523717069683384980995044304449428621637393380932991230138335431599427251330260791330866675907955726233795092546046672908923470559085588257501093984145002487244082687172901414227731697746233113431331816554111339784711667675732492094382663002629463806519302541655140484042655420270560880415130885412731925462754916521951610287180043895663493660394629001631222221177175420385061388884611162823633946230965832794311554201029577790299546881241511952962102942500004799229837549839064337372909257352993983189987969581663668668251818477727942568547564525634341111343721533247762241159836624303160608429649947405326801534993934996638622077139115406073353877546881314716824652566019583897165529857345879373949491694850370721909675925195551082028468251704494069604975024139078321808077274177108023372331483602619379121254488862538897362731971717992534872605852306727437143369295488810123700755052025682292663283690360435752976227084366254268800014764391677943241568923632919205936865108615699609544952502407549761120955551585155413432999762271767800678751644471480813879046826812806050547440251875386540766374778689502920602145412885488143982380920883588471906824587133275770799628242793386892423428573341073920535780352455625544468783145006027631606295884892925185051085839926100058279652299756660534735217782402648635292624350954122341914004550193858156614409947114870453933624664592271495476042907100116841639985217633630016165572028093341781376714147608091884006784357253387877445633394112941047504293312542484020194696801249651211210869208632746590811159205009506476735593390103827723325934264993234868954760363350363821684739115785660859613622700212453120400682304788549309474973486177702397048767165288071047575196354357921752227516299394701531589802800398476333682502334039569082610780307588988481260780785084257776017025043858694017845281905410267443208101932583998341526801612371737508511588223957836119855594631913822136954897142163377939442411702285239984684083978535844398652969162624422439839414040077214233942364046507179050362478264256970071797862684100520105715983421114614176094725631752279839470216032683380224432776515593577602640553100075424956805941143710994347902569234548640798298617229426161249599655164392441473600423156173996217370326421909670007981051734664407437320072197791268800989228734730405901035170719856902147896727159318326004292788451534696258054243074468225070977328257919223066784093124858019371941084962889101228078364383247450175460485632736154892246269461349986325890884579432578571282847147402465867703119001920399939552922686368298624391184454653804505217514787119301903252833689713913194393754800520208569566433094186354271664607928005598015198463471235574026632011159213969020120390374591460344119117279620697206476842112239120486792032728437942299854407246914586909432198287931761580580569218475646782146066377496115544882053882366399489427016017870742211482287992140932197676338570128096124491562989159816397609488883366792538966377057363874327040609011255383173030445478355630009401682380383813192278017150031060634260392217083011414446809921035381030564034874679134590371952703739000665308218463023485217836893059830403192832859502106211669452984093014352407920513747099970166093708461062451757364277377614093215081022259698534396144944373347651829575992758724194064558557394062795588942407553312698660251306894001891919831512190873898986695919622076547047855162550377476060878289144693451164636277420223715224538159123856493583530121161113389933237936252305196377892679401929008423781787948951301787743998887663288689073288287403295792627411402047177438870385682815798783131713231989242440865986636052947278332268103454091528031502669183162488116194103070919308519946654013700909319735277769788609297835760091450494029173381161077932792053354326354257058893124512199590320888320896482675480427993599411046860404013222753211498761630476316916115558507756013267294602569871099337645038723604711766378857813004699476019737977536005715385521621038933859582163865569389617946425907940733517177234082649202198610347443888314628472613088119716037734369521389453157131630053045905316159974076548695330847764576308627085959703204605517361527654336371348790051387040053938189861766092682708895271068298092616068776497344812950154325006101185129565242762288596421835732599895690326678723228315280795492843243406039180735454418278234289534142436008774173447445484713492990743719736105621173478438129546459490488339928123968407185444028803077805863550223661503508125665444610733118098406821982960818389758259515123150364404204531598851978696671391272912154085968118267913941723505441039881491971499725775025382734843263525817297836606737548258023763215114780583176710321045279064694754124573850755350250574240514613768646260490334677186082128478751306907684960179344239534900143433612993026657784317153096837817972149564523381966017526922217579973787782867671696989709266769227415538242149321839956214198976688169136472875175281057167512505469866218311463499666699085795195850007967066012824946000063541704288119213153541799038524060682510373373774213911483110338728859998585454038559022547938480285172278965337894926907459347271139269599220324664716590283407694217931759716866259902665713880411324722019969963090097523271680899460194935761391407666346356835460109466397433329637880321973068780849149824476432214318171287224760333524379582443941313497899367313642649159312453564886741375634421743657772487446100060357215796868895472971728584544483825534606509421184864860461605162531344676982517797571153090505295505317362513777626875461639536656316822557401604981117821897578360989155071372174267313119228777933590345063162651750686277509077052145297763653116476788663285871361735091432647161279230047408534243765163101452508539630233992450259911089710279224973379823351899744279461217348981836440967329758623384511950263578954466691861487953941288257558691443509023630707326552790551621337505769620665321727761579487300054576162560741578681789735957817539196074927197449355156311716919132773931855714318050298472412676734491012474551589210542350491674352261933040032530156885850624502910363372183744138031297569415600183623110544932037826384084998600807876900404924612622166800462189746682486691578580643080979599455486399420825467680751645921195736899622564879172067279938163827197868443649619194417325573072473615304455577601691435834849244977174425455890434209178990453387148818345574119658452998549800408218871058455199318312057479462344949212773600308549471912540061359419740699248401420784256202401591712374360666784338781353926802322228478695476561774870481810744992475765280255714911851915967431510710350961145144903494331463402628816415570328606011754425646183842450469727775796990279760029491657628009594824688065863981428405273630763709379531095829990259107855617448823999776173217075988880989328388928010833602784279271014881756837542503243430216968601256164365389516356269865030054209487427070726521261178838921267432712309932093883868213236600438091252649158982280729506763812724858908195987590544473285547599553856103388171299254604369573326769003212693305461695366522080523435487526900437455947143322689124381111187482532726156396603071695033588155279792948065235255100017294636319244836299412253544717955429178098041310072889044905854177802599715805381181348026626806492993969077331436270953112327804444346006775097847456504344830262169201779932486270806422652567168812116889959378485594382825214227167043883328070002133014688001715833747644387294969183728295559829930418373004977741006995675444058055372768187419092007128271014129567934217447092714013932364909454767206710853030349772904074435765946504525068074123348759819246854634541627456801547491472259696489849363134289838300360636887566390559665146183627787735125989863957326585084924538393806390759508424215187755214128332976888810558692365805800321168586342964729609153996683672007070996727342235413741844541111723156223039805280256175750316127596549820154092303685319699621277651417478963742285206064546387166041844240089313490921627982807677654069464476657653796365932803128893395603228927997445146939716727332603240233302546676833511742458043365307479555990409197561206634154869422201004559719168474287284215847810582726513497363695250068254477297201468585854439088621066712275283275710554135944051571439526756558607915348599584185735044613103944024602574495439647811195774423668146420373374175873994945341775932264354990523713250885706603938717502750407424941495067811665907162650149255956626208369211832136171011024543993203904452641154044912039379093544987142150804100308706044725303493469224585514429387553621354379476576092436706727986140399589408548956052992842734264887080624030240014455654463565914541436247368357209059810876079691752833122929110899310981216004402887809733441307410667590069887815660695685133819578284619583995154265952077265116593257796582175921779609534299822124244927328900017742310519460901612021847232084780985818992136577800979194652303362272063439689436220989377059096459832265807691117628216276411480876909939153280486137357755115101216688641943244332715728736819642849261430064747590472214779349432397067861087886752905060472153750784448651349328192314245520834415821029765531559440300836560521117217873284879845616409088068416166629275697431176891934716733924632470046059594063662671473731101440897079785812910192002175630816530310199210969680719530516845692793223145010524979665407748359641833079668872826773371481226424412465836212813187146414175960180146880854454538552182232157166455570461925303709991956652314154246216975397210723682739528419467081556083799467260791734936275652338535328946872851007317740784472763416038369923217044031157254570727903587606479519028726348280394756278254232058147572850122361141122452807649117236462519571995491317733994635779029296298844299762344012425539704093069088444757906381170774737746318079315825700606571612248216917619585578520881989265881822820987286941292617931300732079077669789549976923386851848374828925103278642579986390890389911362638080583609755776379215796962448052662771501023636712486210142959238825356239183054819466342464173967471871909057651808367404611442912961445617374798677389691237916761054442248238134259058001541776386024543513834783688870851752522276348058818089058783801272363885474622482594153950931290953915066765254665432681854059589826667884180925924201438622175017724416534960846587311350102822321083539332660467207910112976406572259223084393190077402217629945558477950213436764832675265151829508727680056511474930431720968404627397833952235734460648304743688108286303898093026028869222631741851056039813494949631280624223443278551769115124022763110103453382011714947493193445753225566024922398915239371594140950682528094774921908828603623778906507517985168366293789527391871204369336248021443182121632919425387982486748625289660769901462425123476676816022640094771620250974851051641084556820282682152066915830654348344368625544458260485401775366602670851647730371615981190541989592251734181836734128064106967938707091160707443861067459507527290305186598597859883748346787864376015262437821833751497860658635028490195733250425716353700487274236171695544148809365614760087383515157567263624615882841511399268105494784698320813823372594510823454552320258659289261033461024034933745725800926070411762548266431007494166762129298252083102919365173524835260868271737398103829006707976872756734641318129906521084683497219725450130258785502821967112723767915585876018794972113436002755340182325885310489173894571323316333151566541603526903419287695457653183520970118252363676361410930945345108613763958988665925563761794291438850235922318817102212974277535097605903229324849495384982625783159416217538590394840911078268006492850679524822653250098473494957066737719465618187645656201797492894238799085806592435435736480945768766503320190595753802718668889341807544216974705057087361764881694365646409183398982521225163046148190775101068964875274671959610904558431660218482089120776383641928714301429726228826788063546525502992651728822635660543488948060436926658702241031936523361791522403518848011032483246275375402474947552994492871585424886213719614296553083559461597577253070180729907465602689388337244382673111436706554154974909252235268108195291254858501649355729272000007749593012617710681087170762292886831835884799122029872026286467856296646154928125604733552794627071518884206746644167722028990862750761851971057255707972293059200061253223781062435700967088979371242295655367326944950760997095659272945890787658480655210188397965780854175426682675069850675673089715389929290835735569099982037131250390465206237900123830417160883528933781464741664238873785420085836308426072512687313605646806325900619083011649093980190367410953583185682047694791475480074700760670759775946527879162201505723711661934589837023637492690605089192013144156697520890871919035512013894994690350912578778881027800932510099834013485035651652110027717282835566181980253287093606849619953176427886256160215726371663776767395383478464051693194712297406964960854728763509128745874411983736311939214780430693640910009546502762406641476828876556778640893657710947767604331258570570871920350441203171639946649028352115093687309606231298585011874969455399691782659352643163009126825809286721717633579060860410145236885502975277887048826585207228167776358129088264685415962917009042234938837507225977158642965309222531578279953130071032165400677407877529384313006975133545165703371879880803313882123893652388793034897965248081171144074059908643407036964680956636220783446240005839889639700971512771445253445029819124961099694526488627763904143628607430794746562762851861580857147537591483994641182861327627437123355537745238036024835613675489983285942555627521061465100470812141038544046690971509089214335111248674574626760606738554791660098583042732024450715572598638772296418005981306939760147579830557968636527138210865280437737651502586462839877996346390816890299221805936125181597227859309101172543819660689004818293736255169317816223012999003570767036700250076328034798061066824294513908247911347991469159654564391025198178182784504037615180682739324634811505451084104889126020327944104709969436164539018942872514222222792657638057509845575179403514246048612171869574582097053222841786810908043978830165030066642300640183217573358800482939271778303223931825798249906351544620385921306002206447381970656514581938368584859140845853000683100772805695083306240958466643064404558360260711716407825031010052567838181994959329972643513068932377514354169946009796087341966778722018970826655344181621156869254666487655223075427607293339090104740631802114541485393713026051107255677642862566455230147935342046149106787486133440950329508016172737606880235616787295094579195740438605708955078535923856743723146919085155638955783961430203161056112538362400245273667998758473273044673942882439868669597548682999616396855754075484139474492364133517898708509328464215604421391556336447036251306435182913492269122915838176401104122794165106132963768466912204917861002143338757156704143020081824069562992565011125266615979105959980871767838710683258325846440270943370245538885457014515746290057554558718925389316293276069640432608302831529586797536882976801333868564885065649937666194047049052981787065031121500024409121289167927951792219726582959606391641032423330466250878245201120317279793168667286411392269237492594686806901314818297077800294771635634499251063251455435667335117622153641078325408283345051621894590073388871351790819028826011535215841341593224265197037675694313945197506337122307310231554457827435600467413311516201843233234561178747756463048477897935522650764134483432754196994468458180938205647016193224838090862644612230188610348659010084135601066338793738141525777336838980629669395395741286925293651279593992350443504931750756956707953250320055856098979465084126356147209412705241721246998428744368585961015834854555368897783142063907538933756841286908276562065020853216968065513198315187733415804369578191810929080913646525599997658857378294990650865349098497329893491614019968272533343604816978119191617574612659087606559329519133084412163962080796110215048644625031147075111091032309710227955045790965366420934722700292391588793356413320455577297896432737777506932459442938094390510164022748861727654916894019846864264618972338363090187024647216536544099872459698712396937119055469192782599637549474980362362342968626480992933552863180622415419223535001123426833301225678904866922370975631900330994933618124299640542373119073726542905278211190797915244002069876988923006311616070047877042907176177093258095604611995520321989216386694718722903530476461458721198723145824218616565216277194154112076581533883523092764728394162642550219783091194949704510054696633063122594422387562230897854431389147276131714677018914952433529671249084555175729947955242048880160505539350449542256886097762970561792898813666394822004295146507391833550530182922299064475176959956580405113403865228146710721485660457886478569853994946841476816142902779815415543867192008821717304314557803652681781154350676642197078256790805211964583086682553044860316546749057364336924664112322827288956598669527637533224121428135617402384057345684265789941978579191821152964305866445184767131909941333441899432192743894480186757071190049486615835778535467147529704113775984076059372738061695458251272089897615439828390875693585279828421279445312914102222767559243214320224136252217290566086837843348934968028760100506809017302607211101210751800519692193597310166394016490849842155481256574047501055416765354023293469764045037508516155971631902549923210846120742619170516958695307571157179619223039742791251262801626743068854146500352637916058332930163490692138646955417698380659792681175295240118637593525077516060850722577796534229252043990475782618651209240727266244728415208735287354392059138837574805299355477474250079329744238370282442949118933232623082620062510917114299176247471803367985612384345434875846893868045433139504529206593828142021145812409117005751091363643193466718446494588850797867156121576185680914991041083847206875898190618446585892672301770760800673446188840615766270525779760723292939489978344633414769848253492226429997152556939842834259422859537584426143240335830830473213380546447040543041577375750680107646196772008488785407699374095380134830017594771530304407576155030078483647506157110083277416123934202629408682670099519436644986445223932758470880999283738984987516157588501862375192415333589679058594706160424097595405415453224509728300012151614234743719399396017964357821639512976474827541667112255517069643373100311620407850325437744922615825693339969420168710972826446163892722195200162268417589904847387258659688263852336477860767881148533718337838549612010201106347520779452433986265262533109478333349464889582048203441690186444044890668010531085421818346579505086366396378189275085976685930504503402982950441289427027201378019266271184538270190659961929188047220556651235180325674867808407909370671591272074281720560276932551047178235734985184712760159273288527185040668450698404910740177575120958880548242668294871752068222036788981976484762712560452259385786607254294323423246563795097989111331880429376240067240000534997574956789524740045502952300304481915129271220029385167482231602170075514258366958738892618760866486713636629989396674319555563194589258924211114038577823509435161321561581237996026190791786089419000854419358335180370247181525015386675408168573819336577942286978935656832191983323299930776983975677343181763274573023336050937964503192028471798116718530715789507232001459943142512050566482133218714674893066516073674988333954714874588368020840681740451193708430464546396521974288251948841454308140350344418389187637462301962946576852754719138158424248574163928458548322728990847853738469355469503750433534690918992082032110701635668837404200103968752431633634415773299231003091804957625404941419675350039840827774724636344419056065341976661127084260627059440789190225891225882367432909926353887212301420196140822094468601786999850392299723165552720360883767422289939869858072912703374668758319286935928137673340845489488798719506334421717302625565481645942332989632258666334933009924638422437580001372783395746226227771792963343404957116866022783402313099425488164217169533997032393139764843350146156547124652272027452485660406560315039139372044211889898878116020988699044925797284214491294398341142827670617531736949205279868107998838436032618141722361504959218918139584014383513372554664877029160681156321076150715919468679688180812900520936825281043264997810196494338722630935257393682210352164515131877260222328628900600777718180467458754798195805381506817525723573434754617496329430347291054076993754728577892474298732709696616150052320545321899346197960675772358903842786380717384196119189493624441158738355380208262765342351792120961146482952820875431473857007776456530293878558269687909170356071179436188491447418306318406530615902280626948450936510999597392060496103215815802548414815792326177576402826834120894387460617776016135696792509249785598661040275518649568326232722351928855494564780017533397931550848521946724708254796947668193791481796113839533502956873584109828584728297666740465561584258503284878862365660120152550172469509735146344147476379436135252005188851002530757775937628092655493167994302345490295965201338179491133049010842748602745109205549631294374371138408032047556419887788257621826888315980922729788429111462293487581560514002563251751837367489353445202015695448653826496122073956315274901051486464943043378609287017419275813845238951952274585113597931837535800043059825047833018920713922396544205481156457544924840317496291107742236688927794053729507107138187662321878739985889647419259907907042457267295983221480032955974687895695545070736359030703183027237014320625855004760192565077691476144529058005728357951823984772203248080207069914046600060767586331414167417930939929372675671821102090973391677061617973225679198425926431163124213378177405581012846305497615370846542143951284289874678803269703371238170286595442716572488044909461206312983552363149709703186970768885725808011694005467912465659567505586804136416557896591456832568430303922934120532683381465475012668503916137902905813645092083558395916611290825839829715181490521719807952674343103009739611144125843558804590355899828528967507612108030158764607578499923164876569725431296234603639145841544214002829015800480284268445332632113336591393149098786545338280557389115597388210343234723761230443990364969517047812322692962090919562407575821076027004208829897231207657245924794704169459372367704685698178741747017061765868897919390562311328165545329888360019012386177348722031940040192138433639050897461682965122980361128233015725470754238238728338568659537648244336528736143464218821405045111827593288596354166087269532776435907720309369375445124796175313788925304511834853552805828085092469769436246484905920546933217217158919464411756649922892308701696040432642667416291533973528672657035097925382154840543473347192654430286418159029102094726380146178121405532917389087853356576505489257984440368728464734682978474450834861404392971762167328301011054733095656369067388946801314133796254733900792918146416997322554017164877924281758687153944415049101756396007725376147970979684115290308438014096651228689500122287176021726187234491419614681422684354133438280474583798345233188860999541093086227913759118863057280577518098132007947009705691892391395107366895777220432461026121309160044031883814758848911333854791562615838590984986400728463362921941272009758663929700178305405776607826849799840847568450314034608632288794609141291077016759427389918363254313883118053441272756449127305600850345803124399877833217555573154765618708010998472964757482806313309590967723122442947401052212271670767485336236654787091215768182243689489159337026071399171117278467525771787519148617369327840113029190471606616284829643080682015431935126298011345542862649535978901849202092482613547554030082035078556024223973214142478524995247109021264044266376175372118640735345185148270986714688211427030799552302463163061327172588078391341195113630458368918406211462533808295347008588475216732126069087137188256828355757661158944261759712231854559046930775931251479750448058276095932788485283782805418190205119800655955141268464361171389216522744218129689013211782145297497424562522582487985640647058578286000255808601955868318082503740684501581797388175548852277030377457166830440973988080109967768150857002285723567782700046860583182472499705542202588480711976853036362575834189242933122168720913013689984234249708587623611569872362000439160975565186219911892482164660246060067582774871305730583212284919248853398787234143139828330698565792967287288502509101572508634731585379668397989144156097224705938323308699634766131973833467412714865042016912003118955581979034202489315204565905464112888230730202518521648024633710055004418374124725394782143471623170743109206877593884161592884214003151913556093138157542297813719726287066839595908573367190528931810384527926670815954329715563088945804816143439214287734532456641684375653617201613265869705509956541136314896125499679773922092180625083522190156737236201629471701503490224408923513235902908983117414996483585800528712740662424471764945464705928408713296743958726584422961877717015864953179860240012060489019969040819953115568273020328616531355134945435268756376181872554277424074408349668603445613709442689626938645598885408346593350363651211817885931920323306292102682239392850625577616392237352787193119847465290888431830462919302796662146359114424091756996921003186936285950506119596443920614204635852387870052795241577178201559337712806584422971030481391715743323775160926816365622938341637286414187066774269985403810578190019825665696230213739882135040609736163832591912469665929149022384580047643135585164841815202171557931426037826943069713193088291163530844981706256284747161878395065423068246641430162728475215883327369872682475711018088094105615634421634083581586833295264998478550794483960811851683105639662292159841969465755781750035580159715593006813588226823164393375434521582094503585080479488837974033979626311701272529314965766267596292562885283763796484220613049965048006998791642587411114830995100653266095818966153204536630842224253721188821594442926551367607996749398169417512847275635979780510123184223424106120255143729152235795719136433077510204700323683921239492819522694076276375497023342852707449356755812464015332489245257188910288105313098450153233950664790874184211543802067510898941758378141901367535925712833472082598464474895055298447803541435723033662574232857508929853715523553008602414691425670484655341070256550901474202513970781104243767790222456997646575239487505416910418723545693739111213147124573393844272918090584663875172517890715387484381431446152439395480658543173913644726207644659132577491504963548436675359803164539755525319013157217661671116932000556869207481815520151197242179779891841179280027515189965936891434806905211655838361876161922825284111704687815796744524985548416841873123287440708602226179241598412117861491784296795993246969055390457984910490439426682684124763347658632786562958661291728975996589189466186591581790141646720041086682823290325792677080433609965271018717335939395874211770501522689388940644268255643146261073796045463789554088180427014001550382736023664073019292479225174810887485842916310490676366865340840166344924605464522092782125763248617314746342424729616427268644742792092758825748494823400533294018624965191398147801206439220240892383147839867818793989683682763569956740334881465221442572155420008486267451661328553267827281053647134030157607325988128977137860129467030038131274661190979463470560444039390736990463575284853004586995321454094434409894651957416816982700630000310882124662529104858082307497425162504061222444825808627069335224394740861051502442469825700013249835303636182901700270296154520489654567542329373955359669805949311263849520861543064104268049801242968957494737302320554846930923580381300281322209137723217127432870622151142544337899947826008985100915835809526108845594228341143110733521045589911094328665180662871416948683562138527505231541123338240558735633540063588086798092256402472041666389908019179080515580191835261702074792234645972937561256251503443616138622965670564448570819465690264841327166163400423058415841927960174783126583130248926872478726735389632884684963977210888982398302126196112355654615748498818383606323827781823650691142455801470215912019396353649996647279774704255140022425016432496512581173785090506308349116401588042060749764473078575858432547128574879650944748909524832924769557636660270011570993785931082440206437220840355854875533034005686546744937477789842155526861388780496308140942185139400423828143264906063544169059558516560382758441456235886608733011878253975273127103679626003842388623609671413281375631573495382492221184795775726823410752626346598281806577590603023243248459289012476444788942158773439225253780241691432430234649072314435196587168047119479175257262053034328794531854668449957862899449396877642423346823556117944056242748385997926928071900609623225240607897055175655067058253146235221428474118367298810394827771833106978789417977927814858056983078367088788920460832162608136814176478469346131461623016729033818735575219763964245297541207868183203207741725391498183879338099451759330256853903543276678514014861833176939162330431099955859979672636641619081353705709282906149426341621947484601144568924465720300947803993407439657531135448214071985031372434406776260278417348835274363419849635994194344575259780591115843811753236221160982721037647735369844209751842797278125595023144655313984385209276430365739920665056116864006727096147048190580416549832559370112327847145012700047843995595489469468594765815040667805289232825036401561375976765994226944602902036034732885493540362601475007306890113004480596739771492840204126962271988872856284284210369532954412918346185105030399803304319892037382954276905163079918378179779635033265721470810094986089803591201653271060972542621701188040382000119932762607818681536602376920652265209312823629513168474704534890880278122903732852048221512262945661699663946548545227916809071766069012674887116615956255525947465395728564692028727795372221064182854787505542825357634810647903133484031685244576763917745627804526284177131122746627519182166057572839113821300061283009027048536646806078372386906237154919597226881846435514710095737645771608701194325306941258513409138094189226632408400947964200592719555178731268895100374501565469991923189658680221051967202986820415677556820287537117348604752510195185595096520042425770208486738856141724495074256871816603233186356623171474997695597394198640998887401663345445240342975675136806203730225046844108488409287694964884676674243614513014117401192101841844300914226364415363643659617243157196964471217289895298316597063820823064990202644222759941397663482614848987536807376152710726205744219831341978383069676926251046220655397337183413831921987417998390247913770677420078135765663748035599158823793711365277210706602149043221504684810684166915115417253883332641756624341205243708636727892945792096750893487551168375365144501540751891649116008740579184567590333923783942942810452258884990685302443294900221841226077688621233532011875023493696265924235016519015956298509504854115586553640804004270503448641741155341238770733061249146604858526617062515130401180261542342936694163159258276991000833167497962214397445085287177197681967155141350187322286096699543591356075885551432898853280191220509172510315587687542985262515272454050145563730152548576037464017836284546707135728134149494986218655402765127310012046661684770421361184203481521311460619258125046885000159399285993025999788330486669806597762898335893179722826981660249535208742507041027519459198926638207190926683531034123084275427482675225390115049823415911963537977175585949932931247742662079328942480593512087167332287445035831932032796046970508384241823420434607656367445453631134263835302148335751349887487094515966783773076004082209413064498095919605421280244921610644656185491076242068050251139390587164424924765302575311071114077557102612262861104851922482022532633967874466362665272167818247974853952406602438815968643499995595897137195008547496599052057744389106857816099577625170093916551354738332084689046518119887293407655752231171207831668848099596837735086359030804554580702660080115341531976940896154966795928725466648611423189175111625313921583388170838201214469453325641001163386120783922563983422240192713339461218558590819180547710988124623311908483948104885297871003783645379198251263665977087996553744024327626740172051873731556707648637527883411384937522446964358119711595626345253368666146600296365827579524081913473222531379100897832037707408382295870711808994279155651467639281666870982363812278153722220672174189514940965168615678357315175327281691552983017268837911016715443696335244341800618343920126340453369642205588330122920655035504992926935495056835539374536454713462696800345719395133029782246341602444807142935096843327679859478053037266538676497425647912694031644373090268908318333270275737149935807540426725957444562135903202380682653640382492198513695314766943445929017092944081075698760465579364474477977401323764637432325014833897600276842374669337119233268949729708189569442618925766073766820726897004566183116081576466602762688074316594753337079012380001453728225458205749077681354066829265558239258015845756256441661753266940814372278634653169966306046245146203169208374807161831877165225345093455099387460557812406102872140179523287729703098461659925464449432206600083795886456343438372597785916089478239413297777770888436236531776695306753052944883381019538113537454100960487437068435730977818556491768010766376270111547802907856588758666925386314130587913810157288092483898145140355477554354303915894226059395897408380311619424497738783820731822468658317727481481835747786831387666738560122592081231151024355728829450642037635643745966816208293663386197056001338147525627203363218458789783842329806276327003291677473410695880442977059886296323613137324126830896364318111159188907504317014547261835783909129533736960181076232807531852629273575823919476117960460300844524916217912216286963266226619467578005770177700848610094695409585000692598374284888781960888247841297602157514248561003099587389272084482301471874134254868141429536083416103179696949382806368522294152415230738348718704988608517849878220604493000221854306010839923119080051699660573228513534570256199234096333840186786030439827505152893921673328909803634919872555920728419787900719451375869176782855223177676203967394777086538901106712986199021702539460031712915298872269537532906326475740252221591699882541600408723534382098792480067846002539624387386201026742497693686407302045700761994421347262515322770237436502977127981592744962779907746201942206828632518253996241675901528528490798233695382954841996592993815514560739762931212629940962984264232413228492757827800117900218422955571084741883233632638774841779518384296686905789561317784716740307993180019184745120112829929065103894986795949292156744934766912640093769074095239778095532532873159255531538726323266745906081815046707939766427108192658919329442885821126000742313191297550717723348978895577600250929098951940904654562722470653078484337800460120799583158403972877931193580117966643849120040548805108329896181799738256823484846975445807403522938737272324294318712142056370543214613562549361656483072308389035066789500483038228898303340817818961524530150294424543292974154691765237497410278254730776540941919192155816670326751783289314704238889259156994892971578250982841005136039827559129765307066085098647572407677543341924237215932134083290564943368559261486544687094160850841330069776616975088780168591940081322912542916928685618757871568258030580480245342118205505910031268081221190395398880283222279232167964287292140620899724242156157230223809364997806786627459236252470488870057350748695408276036018361382623135040525685000949251651715715654622847224486869477689947443137530893053560239385889965330131071512321613082841976943824760534553649191513840696948549137373988652538308180301555182149051509893053594461652559415738817134924850096536101571009512385104801514968515166538863191566680425514758209253577067311484011098632764150983004308420100531890860088929712762690542451769396389594552477024644131734768967990810041302755416263773249498386752510295814398979089397469792500318808195471391887023976622857721211583122076469493433196070521985394666279211621206831955676739753901541964186012328899805402323220829517591764436031157579229895609705767036030565985398826534686866487504500540868448764432488218710316547611642418520891394267793467479107449801948754490905487054974465073756709453546771408489963824823826507440769011568673450854181413860937516236892370408145950100495304963114715581320322716250465551875878317936431259055397723475040579764056425812485115131984865604156974605900881598827709357412989280383639251450931973162711505182261162211037757102016812641247903589714509657181005606999740756283519795182791054560728156433801207150016074959483438420642639397211061142325754315915860662738291128747875935445723839207030390012783460151803315783021933596455341659302245271972026380633829146016160766290817633624925082993690237839532402346733138687944220124462343778157450593863385230805666482119473584524071530593790050424386184772850864876039349792755842771952755817118588803497732586902085120983844180846767354022458724831513358144938794613828298151129587836524693182084236955916735690588574521264836887681340536437512149042171484726792665248398688105206671447114293931172428031321072451354755163365664704857277030117967796834191435870946006406963780360800952696091011926453464187968222839540619180594645574000961435377251382701889878802552891000837124027487195467269983191047477735933924376696403571723016112762211824680629813982340112556970320357564456445902613661940755670313653262468275745696154621831175320773469877555761794679424706524376058037123315654873622597168422853179925206928408406366855698931076350176007755506574633166607926405146360887080682149319874573437462188296532357360102161803775992143515293385264823070196740841721103081673554327049864492954939658140104166121012718431930115146668791477121424653723650818468131002954735698712568013858944867792018194489788415501891261078412341343341900935556038863130046336627582021693257994173580064913531952945749852579678303195955393740225090080613996795051352710938144592876540787800889676094455702372344310187582095227394339061701464717617987097732834548534276672748749961122373407515963580252786605137162467566125995188781083667641580802233574910256920728900448118562420704064827780873178340736071799938282348272384311420020231764017339611703440295956369227817302514626397284780073462464637526307614452175981339785657057781485151855817681247062755432002252634015806498388231438094264077343523076104342299398272140247154004418678294273916317994639722637781240914653748923280623225054767268530214848963822540615594067796390117115609611944736460341997627140189314498910780172289158400183429430792387681808745996543136677915067911876712971297132063793544668447483245634843221129677346027371460631711820561412186347255087682524581990431152583025901345591766421309141333143754218424814790603972560299642098818029835677366432227609660626085485025024685175105915056115593481321218515540251005054033418517073536384781733286332797556407078844154904484591863721705668092302616313515463123166225771264965811860875829211298759177310638694984769280902869283575484979225050432318605613218540561086977181093648753056096025753438618040288177784068679095155270352540261936107902676745306423975994375015813648755597080862975399514424052082485703251616981894335010833361893398915289450836165194915305886475716179922896707858025429654127470985475811205488094903752359979021390418890350948436475860882245520132004568365504456918493767350514561058725229530011709457239322251737951949197174234169286239110981960772670177479052710262682672617917635800048647846667825581451697015388412183251830720652917310249839482336980533178852627193179896376714122288041830242267141258844131740987960870673611394963563173563388673030354380907849515467349973999895290847207390218467274883284315636254246615551979832151278330920395940809347590821820001646339523664848304646863572147413264049714562687308632876128857913205343211104608117910969851110732392427800592893806167816772841702257421473484252433503078460438294636694762385783431108962772433311084101108916789422556193233979002699713994579195126503472473836666914746113123851400760522188922808041473953539194092120258081070410604809069319227702472564668609585368247383984590655047502713321775231192565043485993869852691483343389317463789394173621576831963800006814293425861101193590654570775257788778545236275765651199100234314294009424113440885714193452558657457725941899719889401749219577696568470849751244841626406142532697726902416264927292529852250831248203664472173697548549867861831417922372268578773507378574482040219459163212815931115776826622385827278666324877527615579849623396858143186076181570544813637090265031286490030516139199714939116314265454870038526348791909522602780130202612944734325940876065038913779216814270262440266531971439307767556410659735355862063077172616060950090286806096373201650797673415006446397232582926335212946113592973526450969182653884118538031089896809224581226316201384362611985959574285975435659787385451067358053520941324516180738200923484367945102821749575931214394777406676665966054977141200214693528945980616571040330209159536019978041805926042935749031917081283657490972465276104355877288911158033033667756787141417399226845155820356296370141160192818178210350455188621938025383506033660064439666139784399081274990071758935598358554905156462679565720905482621080663631217648095715490410561780366021810445347728036561995173334364729484048065878163560884683254349850896404714753355689915689265282775181131202479355165939639923098654043835079924485103567134616274805768725587803361020670998984661413182018484368887347712556923314090964006010364287387793738239197380196818700254340835570789311980527626443030591700655707523316228401826702320126292823752232258499071740189965738938534924593089019196350149519973302487993152646271136878756924111541770213219817364191408331139447658319445765053432003810315889599918479033417902775128560540222205925695905323056937267379882008170377728861028852866593303889022833011451996379137521490050992381813346238374443296802530455661745354217171873391906284655288547197767570647452444011865763188551725975918355941106510585330973937216690573694127128340484925782429192297941805686428466082706918543704020276360212266024734972582578351614303623246072364962911972913354644395675855859426701638853017151693389329654017416248859808111812366852420041584192508088572683519570462543232848194155419611976891585117599227395968775639416572257756873020180126497470111460116338482713274758214055602050562511841876873486607505023281497542187443591609304244976511614933156440551797182658887460773238304015946615296690524898177993348570885525373196266975519123694784299421346594695057928863568060864071107460236737327804463169873000937231655119675273479223296920684395833770876547757453584775338634043432035046842218698195735948329449091511368631301553595155871282686752202406341987148218001545850638981039509869952174364059817766707507877189710488490128690663915587707328155243521526323038592611067286217642641980201701494429540900354628945598011161242664184764111848471314785865665893136226560605615372501729403135071412820138622421396478290721037995826683604294527405498141985598597952633090659356418037652497864305436612298697477705227612122544004329153250346027328518375959597023361319936322100085362502458150284024135011005983423456431578282027638418118443136916283868492627282148469926185959638678634171446194934877605247999664039219930158503857582142223389777579743460173496192199577209096476514552075147306575395154449700610630162642058569354199053369986177029718075899823954565567835206144330993373023457780628204453224291338547192098489777316253873399730068442113517560070373251483140482910979556573303517939981489117785949258475977661591139909265659081680556246056177366598529517146074597713832454978360880213623661484474497410018205006756969795538986160257770482231700395525166748076513968514942756934966587918947564420381224779594697623812359906197775554659084682148249468129874317822313780279501050900811499075269972343100383598822188875702488100778010725086243030593932488376992197403032719481547616650957781805766075276056128408267755989338708039103975575565555523777088142300058833417829259263310112828030003814630596896015478602636962909756146127960004508426287552376256181514352917987492968977290272515588573376654406070090154259935931380203225981804255319305496797296255985246364525927404419516680468854184326160573557760924869878223391294315801227335868809599532324639218216885575241998187621253569656788190034069568157126956094195369800102517077682024774536644636053900585340099712033599088666800819045868980491433339388230605162714317813591325608502255760762438046386900190660894258392386032008776382171020936577268091620207467309980710985269931380492702974727464958475039038012917097213263028958990867752964285023123509401463622031043462180035170684713169262296162236437512662580636457956565453501900011899677397297662950246213611411262798052472712060110166805447968139439545300647009380718912960977589178484441362708240657827038512617891770728126710651681178655956257903214409718819459342860224964037413274199580861779812967956114045843542590610204313218497468432113211161456920690973239285532310448305330664086141496009173173277125381081979029658840192268232236557186521004599748837780835090329865018536933467384540768509848737857576586549747442729737128895221347977943238572293561838862096059211226434425974669797492300358369970333062293689395650145513516170005339384660726408333601258515036883782560163689777185249222087733542831729609048824858772216358410994747222863484056382285164081463111579362395010368683313368456168525617828410924230718244385293662087347552814985451384442526245129536995162338349177956756734947412159699085613793870964769097509727905389633453890335439348661064016780707485406108961468667597746604861409191145461947285638037084896108708747299508613864552182851851401383355498422626704560591030733154200796284400135522470949082261174233100710164474056346733092368264480130996064248056546654833680075459532020999344323911371488691724149710608339103242073249463202585956461869964695159127402408388592828571283418858295524631372137127525836124985955341301433699528547031319545694094903646625446127668644773670529656828558460660408737984527112187114827204625295430656403873202954963295636937714525831091156857122404589611242949878827434839988878470130451178224920843025688694342183100406843821724604222857857824541938638324763025779559699778986762907114725995304830385397148001609800772431344377216738262068311784515233238015287362684061089450600078980012798665532033793511716666200565845938033296291468987553124668988914275578639920578215529136623270821378829335676451497862473202601525912863945705109394084125942275688477109026583662795551580726060353660631726855181671214970210951916343565680620903409440105779301138877612646356479016543502041580150143012562866102895176530299396568114991533673149999740247396260115376850110819637560644053520075611348015506513325399835222486888817203769363562844127534830702359376252351322323626982763430559593339420443172409410425384707237432671576947080406362310662141975969577202752358832793271574658451427002321341892960365450429166409626481608540529570700324524177249991780978281807345220622962247440020140579297997480511548411885341099361081321247166575561846479499763456312931299435540889199421498261491709823809898758606970794565226539195186915270085226540500715250673336443496197823415803178124339914570390784359912146424351920766686933966556850701221692674403948753359003591406139991666722765201146286352961436184008714106787188598115701685292033773926145457566077005443924869109203846882146830689564168265204236038993624269322160713053583959696031891082404375792376695915692838178766258057552967441991677611871136928579889010576442344629937170067682367688703066927813951545711757152445850196280452293596701299863105932173424771459820317262368898049381590659530981504584676223398490768308871519798119336604789747456845299231656525031253916016205076344693259404853794915378846977556634199651120936011826634384928100959398392034510821631735277976657681809106136777060030214882007293817608946138756683611136409913650820851224220535961936042226649605464222007883803884026677052704649763525131136595953326491390422458203162084369477517246516603352369312638060854993402229095482750327138815342808600298476955718716420176434538740849801395251720167138802735434678134459309545699317875185349701377580485364508634552394493829026175953906397438968283782286206193680105657849631191511983927277024593530608006237746849143276598884559342389193090540888378915579849079584899225864305428039291594304574002711104906624618229919433681736337856818574128818891739268471347000730750668644689584654990885079775620499655663570597535058784662582254319188401649060990535476144499481761830791550056775291608790638914357379706964144035219926882033016531527345178323563254427222953626384958851407712623462216739971473266529493792827954321098711630920509052494190035056771212786304732928768759383922451817855587496493772784041314733504514562665972529952930545445825199115833842353071925287654873947328303176657295817859293629684803467713442112199404572676677553190992333067567629685141042697061998178031438011877436999539707813962636430450202953276819421966930026210119015847040633656055025905380136304522950637379814715667809808555561535288433613943570332308046125273202755753684107516413168308361869645459928072938810444768431670445289563351146468603535503517912450727251066754052650411411872916808596265417686889413435622404069872308597889750505703766666176488676643720606516241224588191524407409407005817538047524314739260103095572438975739166417513540782625685232053597843100349663745550566807848753326101411843369171973973314063276641983535690713964349953663721506626747365019655478872227826305429441871600548236747325273011981211047727825030301740439191984051245434785293365967594488512032437829367839719119074158211811562846374368985093527057547772796836636451470630144913464340848599994070661994789582674171658929283405100579087213386955725955582076492390742828570156579685232993045719188628610153054163158444184900006540238273867997960463637190318328421139151605864280298221389454224370104405581091979770266418656432984830024272116145395008875117493239837283848210318025578633486930193326109707549799329232118543983191210815524147052515608498114939056448073500943839958935384307530792508150156680965761563300444448548399419310902997599976837379402443498028329871382598013286649729413383796074322334115405533855189035825502673532662077290196613804335335446061284106271495943668397125276219794933439341296468677664625215089459278922398766781562753000116963323978250492046161464357247626929127852415162418443538925072772711685979236065432711112892723760524765476198848892576918029441045948604799136315967827245723574072328779857417060213812992311399023606474433800163173938689136833276595843195786577985180301271996399547846708870108231621830065971717475787963688619964182462689444299881764205335563923413890333507213044091191911984268171208411312678600701775821275708137914372125580085923177419818837883421024864547624221545272725629195073164202152938388596381191887924018185454761121186662746984594553219114890453013244817722870773924975536807225937461796311110337231253866229892330435224666704242089623251020014508485204475203739432306907151424407930255588282379776097469709254946254875806340173152791133370339448464818737064136131985917512581265606665734342215567513302852152102247736318759578910389359058976433712895031051577508603261668715997697423289791289446905583987115702400286933243063992232680923786535371843413339122430751602325606932608986104739295127529484885397158861556654261347245597267668236675224163943658365231988660791221547306092745487797773131349450120789940736307261481015053233597163168359939006916215733940503915221721936320508824993719082729832115921539408020015707484522301880796981344079534087265683361205884466922070515459781146583587125778171409095931566495337717125869412577689003233244019250166318737656611756975151379378033078362539430046311780158335376682477342347053574241659147277790053491818376153713665603956493902411144102623595411012831716115152419950334997067431200379902435486121419395610945186450715070454789362715693785907207417979709440463805887883033532474929841696222422600659134218940236507586403948819389566540989879769163503364358146200306310484771996254424921349164494452853893738686673641554047039154954719781253077362362581327502408464233683315278284156865017412973357897666203702867218553689344384346943768743271972792521725389679047163185014404235037918124488224788364297238760575462694669249498057665980743647225488864896943772259349759795391838991893950869278603617389415983744766443327835362252476090092042519164236208349831778287345389613513099354247370741843002699504150219373125254694845759224371285507740146073274661763988168927118413291036805541008157061804395575912121361440350183196329005122691930263894105660514532199525520915380629572069571681959097866234432292021860471426065325300518709909331815515616505789676543633803847970422422348904689567013288598865145043091819121145657428722388738010619410951705195015765797060909357328872752929927835790789760433287300413260581550369424858108815561533802607362040258851264468803092157698779009575890702899079152153885047476904437939520812842925598469968989721796128599411076291034230338861194208693992438414722416530684630730933235857189350676895480400173211147055848184911251286121402231086731672228486430296420521938443928966586290228927282018155963707580272557652201038831247240900462037383480148871720090323963961895718119430334701815695643897913152924272559369405473289606014313522786558753372080513178970067039718904932940520191513309169484525290240239700787818418677064127417404263714331535097384041811247618230435934628647019562885519991719583360541354246489333403064991470347250193373795029175505475604618359827255769552062867698695784907553017571546397467925354528326324335633120476853577771518020353360884744358667398407074455032350130460853745037777588382093033863823104871011688093645793596283981058339121237340647557010559406640133032227521927769886614447853312079583904850168280853860309356440701935665706546442320526242278906062398770448745844917314040988163611422510866012034905355546209225897485295049889980467936073509276199654629601083331322175498032627944595128216865901320197478476787948673487086084877619256115835425498594489091077999389245742126484844725291849677231848820279126011045811843568607803581050123163471208111670296869561341089078327593565876004458751887141803681659611658493429692603265219730518442000879973501475584444267923631664189785923237112888478925250059952544813023981330804735344990059865854144823771040699142790338771681786772330862574522511049107171813973679122666268247473713282407028242570607890042566851405190097763213759374164636169060556698800003748909914473513689890077958072248255497565718540446568842023223045716033092869997059430988597628915089761121185487776126343555423213842632535173015394666981855888339737947514369502084056968413998922976938602611315529794976838857795700388899304292547536451748938231317219812521249610305809410723799576332273758460349799489915503927087229151614349419630810841347529975387516073502139569238887762817388969783592143764507380694977090780224142493869933894265129879836698944334051839088081173589128576405258708105380870887047297342291256466036168072175445874559706845054494458950449085563656093643206860982011371887711090816524682350222280512961480878308055611178463813946757466517506418493675323585205650805976624778441646748425627663225355433520070667991893062338906062186423826511067356684223020112989199891880899529292428948105984522119509341024938158788930291466524483328239421225934080216576343151764815337465177731792960344989003481717458399706846242856292017826450486197405701734730794771474271870782406425937340245704297407946336511172989581914363086127288623642352850283480586225669533702517074077608135108693995753245864260764720378057073316164654341255270154063562409623430119474871328660544944630027083497380430151659635529829199622897229202378643918340966946256827281837176575271845305940525507298535292726133242994656582039512965804413433077956874877990421703419059482545135359426233760128916636344131279016366318929830538679608828182261124108939561175185915659372338614617731022033640645886574885630731404135273078653809746916762880186399200152879530446867227205672622822622229549286178160194740859324640352880417008165811701150922592061519744004436063470835666626234512497574233564109901342204079505261962148247860103926745019640751170291207868610052744820932272465039395128131756861981231693660011859357819821998474985621186129373998728565935252097935520130988540417709451114912743000146143386810212770862013761472047309900700958981767728759560144875184457564511446280112747699354427636108194016187978372381262189897300545066842009231827480093281652211872548942924344252818005399946265670820974457331907272507627701913478064268052667297986841664778658793356798072220426881441145754121932264062544364825131734885266763393577512531236091241269408202296480602781503094000695966002675875467145273157232772616144714662059261925468178990636892172789445156954858392533058002083960961813437615263698424542145961501261138483967890627664195757920789006481722384550372374126257854570869052406919383586204718835639676765233779042051445998932025135606049000086183621316855123895320925186259381255884608895306433637811075796433539473124428367586512359364920345475058621533603461936210495119061608863527419218678144385334596729134767967106075263495385437096487364648521687496953241998678891522357315971119753195570607918749679403086066558514600338909063524228885996374836924565253971662275981075016594503443369295944885137056154483858950791609897354396425102132037525108709504705831145750040984754142352717816083268345824506434165205895262000907634024964172003948372796249294536922447601457825028627739659464353315221736233552075481428214964740345129267415219438891845926200507200962762836482532405494820623001097308391609528618959452240758191061427678998647619609924665138992312439781590002225883782329397987641517195020100473215926104152834407348409455169661367482484976033175299926933514713063434197228156550997800555366722588469827720556235102236799749757072590402088035434734285340430346537897217468441187479368148186774647006015663119859176419266774779407805279289268737837062705337157725358695796232971714893429816005006090043898042561512824390101274064542839212838896213346044354283802557560619547765749613518968755195746435274811009766041807675908333968408182371901169288714731983701745942427743774034217200374257477408726062061596272611679453146197603605086032889452567185341045073768342204140358670811927020724477059951427475515586785013551044153003394428998559996144030376699754794098674736494287460276049299129757441037376650651241964669398767262465464228814540036785968869143972900483073223189702932962419772561701883574134551175869558578813125428959188409402476179347013940677138947009350120986475815263449996296063594001389488099235036893796427138451061451148745318468637109761251525986363985237888316200878484780369598288217952349107028076627358794579463446959897371555620995154465752770711435357941091550977480396171074114867145860204714138458515958890070548535691559845402224936368197033678262796308665271973928530200129171341932467932319128016406248217550872674479929102003128990960857582292364927788806569920430320204580083239785675978561250307642887851099254249713830080454282714018628852263721766575443370076002331080632856170904451466393985152601183770266280498708134179633933356509637619387063053360880673886409371505342663414252806257453774876135177782613786864817010611846095481393907137320690502669676912028795500854303869651206929364689534770830799086066251495001826120467766269815511029328327501189821470035029546250001152929690161032581203328845248910250208802059094965446281462463639755197384372251249574462166457785239593272995894628624539139565011461227427089300321430063694265550754127374546346452381062766386620513882025672908651227995063458045305299132980231805046691215538297468432192337486810917454515860696817110565862460031150683960040929303611831094252310932332858274553988178870093194966404259967262362273483645902774856681198278605995319355187663955885493646897069023420958369347967893310692172819634125811609210047362865142485811714558350036603921047513527056502908652418471172065118984511971234459414034018339805711826330316051222310749551250244686115804404891784430812565594604139756893855081604772617658853218814865089299998832138738000738370626242706659876594237925711725490859828358584679975375566303955282852044683899053897310020905268282199759597967377019853629005774429583764572861572779867623382711444480993062587182089969798477465184718234753773475324691511243715238430701033025319429861228696901672773430720006374685107047544175499616148711574745854673251314245154377196978258516824399009992493586536844923809108303613834231869727465582292137017638005124580108766237178884922205516031739573928143055949541303346827383987900952371159280377322362774009966713202653921341290509845118191779970192709946407015860460109586675915500862845590182155762897192479645988174018540324099383656927839629884349566869449786054724148840236848886404212578434478487220225688174123465218587600438688903566164089750332751792975259094920097830483846591250676202304738868210199026285187011328517931556291388559878768129342276154762940712880724374584379429033688567421749420690388855472031921222227279199780043679725201114426869451051292713026126936968197274303708617792345080546218813371580214195279626426104063521901383254271577511383582737116950322488222458206132448174038754334489308648536407383281314083712328854701877945686549374676012687131552588848591693018055997696248290682665818692150007885282406706873240100300855647584101864074594607304625046091017579521139270398340583376275811364526169944271818986608854181684633267025526320575837330320542529059801242726396835422458711440736739124105277444657630241051697398833106268170063563724736265984575653429500959404694327643332980780275213385632597268504827675288179683998926741756479624165942924261034438109225813224935586484212913198240078164168210305416047985771346578669795858663785513219923717269800539738269891796006172240605915033416234708692997956815649011085201080260459417159069681525012333976256848492958302379680347390819485920281069267256389637633671083079876056497820602980677830053601627405450081470390100106955056079516814785315042797822498056140885517852435767842248608407291767609307591117080905227703345453422560352004147845020521955717400457493515246728407501641149502058255950485046395311555274595890700712178894742370966056852862931918223139056053408871255643419936849941110519544115163645290420754364775464704513595433150916841041699580855422271579964643801541684555633450826123219260580590491842408246378200801519017182370269946669627811823209637972302122864790570350767415113216702923973809551367047627207267236235616231470318020999104547043307643050290678669009879650883132312846961480469588387309171592378012158853461653154264230477004165303076228004539529743913210140207760001762585982553057530745290463119230112224663941079288820116977299211940004871858184533176278875210333721294008920411653482484620314522601382887470613901705080250252833052445657979212077480416534126970164660948958694762156923815300813670645497486510724517429151069648205808149569012866720417857212817721528627214122801381248083418722575697106614362886967791923821242658974743107928131519256194546950272610623853399427686104555339491446499402744483899332486769941738905911537476251010261221336560331849122631714777023932937157227830021788525172901163122881652766114875669653217816019959664356718253312395559272591333630887806663479122598765909265253229134939414503850891238624843023675201247563894146958006200755178917864704897293940005980135219532558661287105114905934380653926003010339412043515658062379205207324890614840631154509717052674174998398554617595004122195290325410944201696113590891855974448922500891751941088467324695705910570338787119846914498435422587510977299108982852077630076004576590848465577502326739121094597158593113846848259703975680636161702503204605164872030293388087237593254586811902386125819072798387665668942348524100615717231993462670390879129046901463250047717470712456607480350838628396321603148095151858657197898902800924136712101083222629010115669737031031878303853445509651338562080825239191058859011819442127501912344274436007371753189011897029817551466581940888311445381222392314541462590316407796032911390031466949657351010234972009890058295703910818473016713954666733065875919453630265873522968483985206429464028680343005027896195227509955350353744316066393280592237651985245878181915819642741833520814875281915823586118677464667403063532155069645950120406462826864379045262930547042261528835400068224801890045804993176404077066088135612283463333579679877664447311938626980674092565760993288456688587488015736901526937674162738883583334858075376395064990362157308523568138964621686131703317148608186807593373110074656760184943679427124309205385529387969975317231593723772747215586592388079879158810246297206071435601442678414168491768893930142125220541049609008477803384465508830568475773039837744684308348999102577599253579611981272235903747892211782666684499085118256221082637853936226644379603032909932389927130370582037434260051804081754558168423953873589887190658167026631241938192249319084489233036982993021474621917373580983872477255514334815406876844210394130773943652382312202859909164195347693872339943163926081870613272338281610457341485732747572556199671338882915917891154513853614122935036526634345010142464370461441480575933342822989911734975926710504512400399242769826321035420725314359077358041136055401589501322995949147246173257521750285920335128413194378939190102337922032310976785398242822928760254746366787190445598854221194941504818562584591114661775831102278318419441848641818423228250903161730796418437962625370009247477685047107919035317401117268216703675952163461571010032776549217066794529111648246265446028577382380226986917225284032089187028545649867083578040837014060618837198247086898724909544576337655424820571487203460591300356032774232292818064184600683584466206553485450728747575285784283670507412846226673384604104147785890301994230694104584282567481636579537247337594166476997225801884899706753276323382725255733379705833988885566841236697347401638262759980283431375021171932381770203404131498847952510654996065564064922665671527663594596675043072077249127784874101886427062498400444131963437225602612898151336631656470103517889867856133974279458747187610315555199478758394826958398708232352063210376003555282380937869412942503987143028471681520079774211076967295059589536738987183340323602025333528672622636071863083627722060040587081317809490543647522301328663357735374351911528230730296817029876205127688441506659061558223046818454244493743740079241311930737455176830611617233610590131521732023801649016008528242094785483200347936125866673560022326733524438987804218580024557969611324482730491374840998564591944287768348903537009847925616224270993570868702660624759416182310585825455432211298807442080680985699718473490741163093298884926235628164074671619769911781849246403170912187755914074014009933371696239648036561901489853386835450603921758594429514712990446278918602515818861660119442279573632845517741835315551042637725812875394019059760135974892440976623525711537481503899905835905871383162329920487055937234944850945577997380197036217075703787859443511463585640338439041618175828326889495663112866250738385520425288252567398485211021700592191875960767953224177772489982807662220903318656651248042330408205535099032856842355951931495192756118930442889470845052896088492021485689839791036257012338700141052426078614310792211986575040335504119932433966343082062677788197261414029495542832253133851263396016794184242577151160664187218692292352712311604702506052651679238514970942395080920713440660625637831164134737184487212567135767833763539030633659445849192770982029599166489824144436414383665361764373898579273638809734614970719501006167308407769003236804214204145149510030976777608815141264519567057530501239272633269863672055499774934751366236746766463577638360834814316805337004252341002462798715835347335326555993926345985368302087362329146124833064156980727667179886910310053068771665671779395438455981357222230354611662804432964480912339170581414506053102944191368996645452285846003623492751157031319966991179165732977053707869671205715866590506043341546645100414327205145539652352380707586376466750941509310792994236189731526306440854991058551680628736543600389195464446206121914743125362598155412025931511577035843591656145910981063431437356297071175433859679487043280802288143525898089158574987889152135472113969230391773752530342681171405642671588354132016328565732474825199271948921716721954252143222979273661503344828132456607143502034768364448559564869416819197391015923080863127602630478271214075116631898483691711993949010446623663694866076265327580844527420983805019486003683343146943549695158511615435301874410877217817265245559041402017032981672037683387200922456601049297481792576830034609153829044497867513198442638028468990891266574580682642057864354694831095370506157317355247900774251685919429046016306843778839179028009368222529838741189908454421141743820544261876730972196675268693048083727262656048950567423754689744660060334457518628905998387814095276595541464926888842532582809393283800787818789164294456823701636073116982358054193429388436066676457404390121478783663295735389019128965193384920035851682801139796068773534404570463256770213707313082505951748910546924445478281211335511516138832351044594680046620804209099795585058581137143136100532148777392559621489145582980274398901362928022262949242542395205582177033002044134305054753324383449272820559478626475249803515192760685314066015852555211042629622149069710912274460257802677959368639686338513170342911464528083276351664853592695797794941691306568907860733454921093665663051991519149901039975297410204613708647631873367080685509071707587294146455834289252833145637399475238787091411425798713545128127828060166245815417201993136899218608809627622407442447911007516783841135039189207362939946031989430704298408417761100722501724478760375999342409039600505133775602458071326439236260399316371695007573810567429253808940518949638124815955437490262309871034576469158093651859595095724452019933582624028613461514068016240754474731764163505039539533661742542744338803172615789660329429534244317960884407279695032434013215356291737649400569265770873800993724023410365983407858705606204138737594836156490889511750986710057058337746101775764316161046380424359650683079937209535621854769653166655583882905036461405877283496184611223933809930892961869367249875834500751101124815057174065435319806582809275239448572791504405617313036840995646248286313818240988902415389505128092295458671017289899473593573616671960624765143906003159405801608501670103087811737996170552487936604836478978912507933445490615433843796302103033571431658030534811254516616449527567296114913165152149995417496598956896543867775593139136876328387067613173023239524157547749039850357066578981633080169907974718941964557587606499120215079167701275208400240146067946037842058213333675281963855784819458274138757744425167300097610179338593185943816026770099288142365959123698215778443407714127034769177627638621831588412269082668688501044216507490789000111138925705818555589845333934766514716012922166181952663233395756136927078443558149265164073341135553727125724631332253713683753420099543522185378946453791174006867013502478705779098547752945504480032774038282011266523404042943061649753942977699150930408907020877975543275710359618139291301999909671482611466311601786676408347388992898632227546933788104310473994673444637507100631914748959594384449471068761220235639093627136183572729044961279022528715138447693957516143219074628221433120028201703131029301724883196804882448859005084731429076283414655512132175147385674719906264844033273799007560011417090030663456007428047307110250247506867809529420975436757353590765074118230770691127167305199935823492327339465011637158490241058181819585280287052425598217089808968345048774263546701266487042192173407103828905004110095906473531247321721660846070140967155588744033397325403426928573883982265463304394264132873824619407620099787532349231887397625463675350323646411397132039815539830241723931409845020635121332652154420914723164204334727448452111661724229010332065593061297027592425600120987019791865507576259155248965170630558271659213896090055845216109097031313318846127791428587539002849094432407031409096633281962144031211835656628118025316610031023957040458322725366600893175844124320453108276062161946849098938398117812982212233821724516608653218635806217738929115578112698314870388316130733406339153825489786350571245224718923194290409247686057063346371155995512162845676895296070512821269905588056305587946233175926953588739317369285890979143597565889457601589019740608912049917685899236282798551311368529904532829561094298617744370271987121139519231059860139946190444374419930559831841222415159983222877493448768293620047220317674135555402774754533389916654760048278541963375549097337465835183398317068247087394162362149488569942950816178332042872380253541668480367488026683710394624535449129753119954745761875790247128032006095250395528403571746063796762103630807850498404403309869438705454353232460675887845369628288537478371896705828317914217641361063097235380619431220749903050105706951528687959976860317601590643027320565976929507152653224985576142145571420375319379520205010424483520713968311782547126441283446889859076402226107807696787127428737752471088145174789589952930116100679880368195138779276790390494623004039992011677177945421525588579760878415698445579475696650257914775253685106460489435395395744760221525606175001962440208740669197895737994564132868920824441402452968432984226965970603726811287240291784352551209043116245582185119255571034492586331557465145058127073279659959388867640360657110424931255020915177787778155655081455481201818418147855737040780316175910394343082984460582225545086301196327130897588976168045421397448787135691876854240065385729705154764864956223450027236913791698340119298701492104751989160329830407263628582842411160409169395057824957690315200566816552663275190182924237114725458105512482904480181783484363893597042472902900259071088045299074754917321034507596539337445839207954552961449944383063685184197633080933022655791536037110832153095341185342889433824006774898405112716059995967972113793399926866867437100871054698071724963384372943209412849706259601426975610678820720254720198671612615074570962710481759156153191753833562319527867668331657511808120656168457390479474096900779709436224891222983424515597210459900407392257389571210940196049764998574901032009801898368198413098386947995071725401049978782051356033042143917442479705154087993139667870069630648004323837080568425300628349544492756834718261163357847371166365323865970395814649763668051996847964460668256457603631166359211429174280253839021278402499454894064241070970417519628812137523037016104014855579530852685314894183692264051028918841053585391093009716775239942620240103413056109813230540871792275170164447817176216941413553137089139319888294402297354784322646239148890023251601705864818878214874844705787631626299568891489692648557932959036790205902850337009133034254104970353702879985952273729587879758921510990575157597923395495124048788890531578184755843515297263202698509326465924702165007701139645418141438277585134532121543117866066490218846244163069475952294123766613031007022868966059668992825648922067308273858765808021400320032193783762069571670198451733532280621927796732710305986049097494963270683055130861953563483648315263481641281941534786383316325275130722285772779790620692758950777871077846608095049798173309797388411105214326009444069445498407988349012152184343794002007837234258311753230751176798686404452241136743674506733481608152401036847079889672120484775465410054648511055256011603149300765530066723412801218101996206858507094582485715663553742713185294468346699745574638373958341645502931174704268813856123551555892297482519964423791267019575517193400220263754626724009219281495948597415306446462196845887388625466732567659915642466325534333775067589432440384666098697573750994297541828557024379182185854271803410942306804351324868579358826625005172248346036217620100638888395607444838409795906840122653979396348734485811713543689002917256337765838718341734139460452444621391546799772630016877742810211318950396170905428905532793433378343371576146258039738749396822169631569614819753996254878403852583240870958870069770719105381053744302121212181406275673470087623217941642366449857950481656982954129416417821639629242826812379396011932768189480354982469946313086103855032084103070418503178919260890614967555807324743649224616826032937825630633272129997911013503074200819984634773293933262138448801192004057774535856442293546166074954643915270872239003000917441580207072837575720835019193626713175284411371987894025258026942035172853214220825756328157439385655963046388154558078669973572561794200870764221233862935477518408876997036381264224196102077092898042701173379823911976137411298127495738587459760441952060665959019168389428216264933165435554586447033363432439923162261720407798292702112003586596758574528383790382706127998551920842686765221061426127915064953398026547760285662055811165159694775130114242183094995278343290318134247942200060296598167671875874863049834579638180521667048156490490494563984842547122670460991809044549170672111118433153115361387604006545588625074573599552991050642231614228162229732061951184025579379752242740425958680212266468785320550213986686238177446962006195848226940199773309394952908696258776197159691481251380156663828021692139188389620501298100072966991535675219041948193054911505908246130780008928155246984017265306877963823039855399804574394589027963971574578219092939521540747261300234465920815942950575552094355088762501949488704750928197712943929813055926545191811077255173967012325528781493099509364556928192681697035626828014025196703896339538939682586606749975161950580971922231357300136309612548281491606410638006991369497017245781882323244313802969152597555899436054046226086004642495369808481038596838153220661480114934321017855352964449750549348090353730024522811816041066804639947962078819843911199433986144419167376095183774236347718809153157587681741030674196065090521608243227720099474928832317643941313038727897108235814376899198531077565693177510078145605999248205976910271320112187454597479259836898422139265033939025619321128840567122728844319281844504011391583828434687722283723678630692236069113144702523077309179774374709233426960483229326997723871055336428286173648902096886238667800565419313262615437924563066384149315921467402170762444192962520649785069471046587683278590855358788199848474084105412858915409844348656676421274282776783977002317816515050606052520052287451299448298484092544060293527796283609911445636391384506583992600893056911607183776972509044212634031544494912670294289693440015014693549783623408117590655824477461192618459751097818749145125401529035125681333780379853953791439798556031259407212424093512645418424516200043003773793901869791469839825784583653882163261072784474872191515605702027283527347102490864234916423976105924128398693184766586925064759242768195086645604547655344781303293841409751667279459342780689187673275325817497268709983134159950900950833177907762106995236220872951340200733074021186112464854987539938558771760821390611253425750727806336469400553743325803887282565665674577605490224597708890502898693131255739468933302127635389205134560997308981638189492976928029733793095104697821165212704380626741085835312408729226123937703253484140854996231714823074967145324998308600231020236723312347892735149775371141593377111892507213930381282284143333504327046134122750429630662955916091146396811555167112192960467742944379199056163415045668533332315285309165687780869560269767916015501336034019172781764123215239503676471501488203412744928829468112278810906538367228843942836602070972412386072070448587831275556175573270284972748921648931027405293935629009475549281049021225529531603238467545216135738395574226082338226991475879690705309305235697479264095327531595908548914336971478506966308155093105289000987761109999938030861616002095242841306649217007274200472938899764270917965017360648705982425075937904787100129901754175908990764242326277636759443505027075496495686735462999524590471690465751584918905957568319157339607612824662678941169400651491780264794766786197841769474919678250967081891769780483842535855494390493367581772486736215413686685834298990234357864186210714757703409267874193841784188273315143573503295698401581916821681295428353961349826627114853028054497515067187861834084746507931532212213230616378223719248252617262898547394628735810639178767477664164136320248734026197406966995531084906169552703838983270134262018605022558263637990625374790777670644935904257581848539271678111540322666761859470975411294120914909209172900356978956127884576700164607894900303726900087679008647258608131757531179347261183432609840638075138209147275314935613565304706231750720326695442241881197980450404410493575160402822259337717279885147647855094134088547745659881031605521951981725999824513752826531187129717069552521635588155149366725714518298167102158032258763952127472218269970113425148388398790666950185146421179605655758762540521284858865962430750641828315729766843971699247013995749367074841091565676514741852642523828273214463585067342569805586212211226979831369975683439673177420032301525662923590844470943201192241313832305806155093589197739978492983537015036816424017550280051612038087253720666445983540702669194804262109882398057495477041156927822120215501177392591383858807522464325217999828700364864517388994504287760480773476625618875147334472820336695558383979149073566500124955738027498026269208723908838127072768529206946711693399494556344971531867504024477374500538758160518620143997146787971757075070306653539125125262340453251567117969050382982876060647858834031806880861091126736961424335744781987175088354682974228054513684392134136390185048347922639421489453476676472355781233958341574546439776518307532421474975092119345181931969515644627791515192989132555167489633378074505000972473659156313990260785240794547139601801326698943134012281850259318136750118074208113470649865772905752546542784133354352674754045904482336653869742950011256668623506279483814514384118021583804367820118935995711113593224437247035903508402751526667595605703913770366220223334008716469564764203213461163337853588308361521541528000529366446108802510352424492219312725908038226373288112251656213144679873200135116693819309883414812926342949305437560186038753279522329748682791431567015791511973985939640764013268904030149435490678314694751871677042135631273907152505850963353798423691930942431164181647654435186322391545979185929874471071780235849941091649099715879436065375846347950879522107177008182011624994656873318136158208293937427402855801282623663814253858261838955287491862003546558882772712499634236888267663816056939708713919163056642283764002127236094816471331674270846912141932065343375136908428012261387110387163733786893512658774368590330624170554307147866571802371486759330097950974483166901420199231733962338599989484920608845410010567237120426520870227589397355287706952838458219926848637118392132393900199971387605342147606001855328917094719506183073614509572847207658271482619407691643433034714677331727720064061871601123139626320309848010839134933091391340212944242155532476775226464669726602641621730462362862741955539468698744289373866278977405481163943228191006468468412940970857748676659851753535259077291337000950510735312023981122188583330220220599726093890037357622603400719039724457968271286274441992266799293225366124945046317274479440091908446618586399034499291027879895928994289783385516077525586726566263479364896434749037754583857369998127939937023584094783230234244495127815509421316101565837534898404833510664880433814035224101703605847890195988225541836844604418891782467734694693470530722838444201859159100876043616720416659574973150072169151195044516658415246161687880341924401355752533593088991013756181873998571996832396900312387163191169355000976344314061831078593576047146018952364514407334581296496259165569936450930858354182812186692520363514692180599354990414139117346509448477048992860302920521197886270848594097944507039930354469939489187478510028250033672341915097480494140430378137938001278625163304998814485451764881196675558757544211263357289849269054122189387364575323481131484371095746026746241213399454449691936929444383510509071757971814348163376143259367812230830066082425815172212240116629707979313369595514648055333820569527296170354138312996210314273332869582688989127729399874515746859375599629040319258163686936739822396406059891389298255926565507085868456743518094214015324546606867769829302219726026649771997172278119714025334366364828584465979722596094525248358792972514894492357557924042981045071977765788993716017329982496980567026611572373085225798593718734304894986112420832879121434608268612981700762759035686736488013196018733578544377758593286175983432313616752069496789227936139890023484820673070389899845348884094719497774584225130765519763369106340807098906000774358419304003051988469350174016654023283402615254929024554133380529391305199516897390667372809543064729743853690681503060703263835187619760074131943364889019144493622736448137326585902914428719121050712539682352402882889619815398681717451093959760792226341301293715265435093162651150975669017197903075926562305842076695602759276467227217776157914308378615356027741959007425568407064465713729240455937293046302442358444305220401428892862071803060618065197380387743732391014525525071641298928852727624621218622444510407765068703204588279757671914560875564837058545338020690191425878091308144903123856630814414594202934626626712011467105179672668421745259358624082197290236339698305302635248495586998314777724228348827954073566162353115683662087664070988743602894502972495665232839674580789881777083215563420869805907710975119774706138414567561263769932867511232939266713767880996335831894935852406607792655167855319576155622094716186603527633868442755361788820395675748664597425929520190792169868098865563340438366310220346372230787434127732855123357332679880958936553995612835821005755480044394299198977226357539258162056590746830201053638801953439823511925107635675649340247713775077110792703394656622017296699447212004848612942497054389445562143560382797256364741141569312574505719183800138456838967845713538587020948298404217298166708279408200893576141353531155103767993489297137790915170245422878528290215875021205170318642657810710417626019525015676885165487070326449566207395851407092444503400753500669487594263112592726040743954115156362298325903174172059026543861484557118601756498797380755963414295702397576124762635564609297006440542629648621086372991254337834183487985552539802929509097921159412311503957385601221742334268515146008191364361255633342324708248749763430825661440400764599853346278552380504575447996130851749968539626705802785959128269602577821155411234269941536465564166169399791692619796238636020672514560567152418860238019940324645421221023973894335278037754813275436600978829599408846951445765554502384572321830959887340362539615583147366812182262270640229966527099727010804725646149156092522807350215875289751355648073163375051903612395844429410081902415598266650113556294491080776896701772117181986760402667341553288358243118150387844196370438293789876336462158835614200537792271664866577250275697791364712929617498832848138348286026349927016069580037826211484362205538741571813106287376396905050222381649099825569802419098375750933984000287586480350998806168706768993701281219981642078286982475286025676237477537487779874669076939246614877267010258211780748433286954517519485631515211683640977129294100810857632527147973231926580833024739244609281718555036586153303333439768667554966284514092888265848632210477740550505714819089071369115232900506626475340933091056854826881045859318969731605387011986292339364988042270307658901883362645160057086785568334934755022340728278684278524882848651346659072589175985892243268335991750428132536889205970867732853544083406598637540639852264880461172253824654003151418375604783490534006696126323235515130268731277086461886419875410366644935147239613186978961203133513124888535440127698545696584396886634959832226369570314004056490714976064959802565640514439652328445085385373988621585938384872550794424536982475344833519991454563218113371054390367692182523831286610439904424250666940141276222636496750909940296513732408104751510893102629016978382720388506604779885491096007308594839768791080471565770581437527697674713196101403089283427810385636778848183545415724585402969750565141108218171505719256688535355208011555382205495338825116192440964560974301233677338076139723558359722573076727574770875654273829327096934524866496409440497023037172558452804247061314746501516828309908977634327470689571688016967750988669273064365258571266956467078603467849534381446944815580039772151788785681146580933630361563069405413588489943672527438253764149881114729678111651722650738423265309343541196794296236284596461544846718462599256369837234945190921415374518957691307350795868570920125373755776827660626650153103563354347739029500530809617891289013279623559545124571517927441353154299798171778618208608287741948055497504580351530486097811229498552884761715011572909875793267314519355853312552123095537024461224656764078167867386073656514560064285377144817627072930637400509223042510155244797075867109208866888553114543732615598956081548378276424587538266412588629076513261856950032253010692936193042361543835825431485120370778456135922543482659769849633270081540429175840465264726238168092871788837115762937864900381773358035084568800234646016974548871811184686575068029632072358250903822691385825540171410966392015393002495060630906074400665717717689792471208400224391720732354327957311000094360656715806315920557501479454206582744253177108187432268645732603678157150030429202265735883537157790135131295380849890920327266283476819504510968392448439865953462890842330894488915694953670849719488001492937343081050101625769952415188245823631548894007646522811634048885831600572541687999984354931285314046618259860863590374738724638410404623935455558460237844405396921258794698710125755222931207001587008732374979022094945389124326345084389020739168570487515642328763865143687768336817914061657750603916208694782376672089587771729712842277518155241475592171218558819498341552553041631601180593120247845560738463675876544188418692039079534978984926396539630409313686620395932936637327857242281776864486047197204414778343060566386370840304384258471766198281829728064958342885670085790130994217333603878977807559406043703534664779851242971970729768759749716890085484785433631907301370262014063535726165704273090022748352232340957389015072811429807959357846371861401928753038551526199443825083387251523164613008564920996664360689807933587951770623407244624695156608746208430362666745573014023553236115879910539554978525389618337846649894944241824739111407263414775583522297954867522674500091525385531497617296045470683453295812768822664035237473144760026262925958921268313477544493903790717318615603891904347674253265421039246549336820931232962241043327145267970122951828942408220257958970202940332791170612165354592915306825383149246200327510651994391830927585304673524631410954033349337033250646235475847152649479280578944066161412434595135869585809350962707230435076257754198317469160165939189214580799376145652782770062039425979165584045363019285491472631204600000195819499263106144734713320097632951601828613253329989466326460397533140057589157282134174048266169997833669611252792210089759439471239419424761469741269924845301325263716222314762687919806336989022771943822610369719744356307372156048718334584646809770202907758221782948929275346301069955439318598587364462189992659916897231859663048796319337928529010589969438532742893470506138348238722502010865597749826539133511002674382086514458770770990447807076820035590297241878536453797960853544473824029759570469342976364916479681298026106698983074882562333550178612385415700821784545880089646048454874492070727395973778449710985222383423142672720147261997919162757562904216633013306789147209420074732421164966900858734038563979214138160828835359376472751789094449895204195510398106708098833129950859768130512454626292592450837001955540635572147767695559650499673799588855091108337390665537468961251043200437018833146832365875698705857994843949661662376587334679544403659961638929828900228406629035938659660741560503410280512971010847075644533199896907023504273872516321977033056368441983476042764244698449150639348053437793639283763923625635626313200683006725233684209027512092206951592812830934975575057834779729403818598589724990182998007970353157563247366026310920488839874713347758883670001214105944127565552726139040684317346757115790288681471274644782730814826875288324307463909081831276015226919466326211297339499296419190837594985053429705244061736823651975039885888753752417638213590875331836414136713090891935883828811685487051352111488966780066070061094185509144414258750580651087611063362649598174793171037709400197192640514008265611929507120356147271865725240282905244582914171949765555504637252857491116983350950175062840877290719104187089239987674821257726028057426492714389944117361063290247750712793282629247755965913907504555553499758847722459653359568355472825491462959529859926592622792467037535433640754820247523893083579644821709202174582159533711009940205413933760485287509917165376594514824610161997912224758944162540278509262343708730354711895099254429336912648406160120025458242632008500136093894051114260494208820280546173748733159095329229107443177735335206373167997512749104829292467555876841688498361992574583125414950709213214845148416013310557939633957113449155165355821689025759162664765062060690538003923921454163404274358457819298092767054594021893648708173924221192740961309146216057722531345713119644731655066395469656065320663933906855309164225373788044306471841187289874025554306301754696911009876298868626262966706018053098712508755227435548373447069944386900634727017188050913203985653548194620529612976771280071623012186241868612612066670576514907592909930370169678775608665071996805832905302361641352025634299169721891853752121690961998221822899632903141695499618671783762296620788852749659461305726311905730766926064335040459249864274030563469919864079042922792827468900294503451017314895520967522664155725589515113836221261825911203428853600399925203298448345370801520062547801439389168908174043351393054689337077262357548435920341064322404049028926149656422522458815767927706030361158572136835377306312212771233508764103105785435015987485826828749437360852003768846421148321587521922022890694961587089756505910967820221000167779447587490520403725324588607507997032059170150256186175850715267607086954568357093892945100010101900781830180538720747457506829141110026192980482926716342372958745131095497432911170318558445663801518801109885427693898724197561813613961938991732270553974720570217605675780248015166162111443739060304624790972076156422519610288903273786681948275949595425735472998966926004524184534329399310440042735663304539063958470285680729022135745999812909380526520455417090754618845085606964595070074747470671514036709224925911401744139882809182351269324281229233130979318376314880913954841009548299365858726195613704489782845528341739022365246364435377014085832305556615950769256698175624216622589117402546882308805241240217025306359404986074099128573329135301110729554818991296061548137608810182640296897337460239899217183944980341424139567962051408144626861278638043286361387116602309779277979909118346168417598489873240419861001361549745735985875528782558339478671709367708629816863968406563438552770575342218267156954373669221658149372603591887490712828445742605940987528811766740561104495598486352947611650502168898999125553579112529369238763319807849057636640692612712632317863411893163000283282164123732795549273469571465135744521074633004523847431530838265701688191032795300792359026323307140408410283701824762718633150406711948589660925852265164296936833694703599198172867613895462765140729357489412055565687816076247964657888734772950813814157161177940532687126971284325545883307419167276552569708620142035654111632437321360872353520380328421847783992693260795684737485484671689380449650644071996150777851559534192641028394731517769243489173201917715325275743852706509900822390683363233254430638426489016413600159818211104163089591107443604722762534424942900332992591245573858354479172839165816580130646494334405534745283431527605776166349780985507390991013019654423065051191288590494846330888909719784946122662640375509511292461100784477317654133817561958232972055940234779187026423704091219308273835888951452440563194162988374104656054677326803941152944175533379739627293936873644524346784453849304774561720704735885564478308277821036488360845682941401829704921508443318081252487322807794528302672936179986479617868658218547390161192213181671849805318217931951437329475362107006723989549016092695380296490890073033328856060885783698945166628127395508585384227360115116355135852951183042574449611679809429286531789643810603373433727389074919135740255786836383104264527685444803040389546805119573040248112673127869117655975699469640035861702091271536739884852330185379665637982791332430050001814719031390173142275225221182905293111304395535975798006952746561731368084775285451920415106568658286711811172749833337488181042883299029741415120419577583859896826981346385038132039057749125246781098580665882725178073019636069109020619434005001777126764901903874273058578564487431376814679932702912353642532077690574771126934659130539588814076053615874492486027556202811187044885265052742345773538418024648150735644625051637932480131469511863773292414220925615989213659990773432637197725428610722084921208680865472537121199846406094017979043332303786523323188174557631276336722759993698773588716517600180430079261017570955430316497756505499832542333497308746611837894797027008064293294013155389828694735264995767960647550041871398239799423530766705440677536684780651352372896893583168853214549627071274431000281333769686986050033201960659609765466690394197907867504396705951675752140245651737487152988044857078318762430181481748182134153707529691953808944772699841027532611734992686960339838633807913711890190737853538386510573801412857536334963510666133638490246500296408421337669779625773028062171049349730051148960403672993292765731923087478383201073315900258880504936056439337952017981028030518813446996252548210341776158064881147313273765269633228658053999127803327403593246373069038844314221711544699059166156222299473512565577999068197012454371313906646943350675319064774338131352619095790145411754907246076970768381157294493503883896870176439704485707475173036408274561797264099286653861242254071471001453397438548379750867037697944631675170570347062343882205907276491689934266300521542749804068055457187444186139755741225627735229280735293268505814496122894898537095927502539511593035664227331107491713866903403402587417297078889668442115645898128741136172935584605759033407073813883439024028220053815150249141441466358565805997623858983710816725480171358970314147982226938549347174449215966059616551842925156250888834882874157683943727030238181469242780080695401390034977354916792864868537521588184037379439349643557041458722405326467500476679307418045940528904649402928966765358629566444831129497748608930892353232410608945497799637142874332945880756561393760092055899387597684230383473622551283397626318032740076681612021646577670679306218078628481422410363029774163934838388302670962485501786709935102501731513354456420625676683281656841994482521393209489879071738210837972850322742787095573615964134833933027257854697243346788113288547397167611111060355664678140349657822519294488164173706929575580098820091452931156257858527771664906630564104252567263549942530718671732007264423421535759132635463679499803516239606520833113254631098325756540722017734785163957555463150916274578305821231422317928187150387501509565405667201668167570698682347120361333845761683869809582789303740641480164961188531946156935915076085612731174067393366713468228717670307214591969365907796089488120149186333715491434996032477484179352891282045330143200427199821079662641603075571438236156368884467043030090501420707422051346640183190775548297274691216598152308189801035486292422582162032827032840939950241662453973499682738945092809637270833826577877347596469549311141597051679963683746659744827549788598571903406754393942261185292075004198945212319211365312726905355484936590917461155435108785652451972492277554680716901299321683669188330421614096242476360051622549454078554272391889547531893398199525228728026349608463185837308105163790473944127663089106992785305596248389911478108523537428193303116770682699978136328626708806867660006168487155939377584591205008830567547282904546532651300244954192910069537822316035460402710068472154653075112879282529727664242724353258401868445406717471031178376443574437148556804385672025087649696689838363859650651989038846251003121769203256602767165827315741039853513756551638298632501210388106401567511476830396625937353941667560456840732676617256257294584625811465907737452343749931787316182972300878292264407143039035071971209483662153360375194156625587790591328232185606190837804162006889978840354577977618187492673633681456266630178363601704682716890216840263564104677708855651118956224115718495702792512565471997857545820688308336850776769578733330992535034496673171288637198314840052759099207095450740431559923683525412067020713007358031892622260027219027906559552022379647860255416386299944822146959224436772515880954327799794527150762335727279418022602759006358538111573963434337218458137014092372269954210853258980649555417914658799848422675158359531745388795052647127246713113897621845817375400843003455512125714868400927792852849263013702205374526837338531706700461095783775718824880318281560471454346426740301842237999628162974292616713618871164958494423992520567823595115326277225382320850612167345053380787300708697543650939749254123893599846682688108247093400345861678300285916448429533119835320990891417500430878617490874411346271216395456272187903731792844968532829068294938401318484338173738636315393107416931683157730019950167804771404332360429119615513376328304297849655742827727808763718869249735500873043616563777390409982309923141076513299768387961047611526777128395969147286428812078799882061743008491933929507948211121397745302691049450376441271127136172493735811621051921045170503006394379298026405907018023367283931951860237422138870926045541838171421925454837789810792488866770911266518781627005119089672284445615743693787446668990215289907094297483522361906408220925540034207489540062968248950873834140673254439780278159570726375211670766248090251806993197317079119852251835954501333859049740461314743393349503865976636681443121458185744822574904491575215057126039656388076353492437669057572287320747266334454817860579749132979334598423639916092988604452577320184001521590763810657077671756390677269990978760589255714031360992997143772041265449670401755164789368704992747181590441079167684276968925912718012369850711022582525903214819920042189352034402145141629633892148382479088901574333673177357928337142173583489839103312081571797492843935988525357456343917405551313470919437936922734061308081047532007643982687637778344637534944574255901762677849840237091491271878253667333106010706221923303921811925622379977653229815794070109819714442238357619190348151341025360934048696402042841923807915699649218007033820212531523709243311600248338789229045866491668907924800757575266111139539918527633820374485895262999638664625423535239571787543162523524377953032922651909417783195282757154300624089027989327963491697527181376609563993563042296682917877986011229021445241471236273139183787159078291142132868918480214905493634632209621826610814181993964248843559455587747150747325271610311806169853124609516297168758958064164962403921692065448487274513523017671290994971964881713516217559853758299806485485661781725689044357928266245672498262083036226511807958610217010217316852005126102535051444255209947990499064788548283101036119654442577268618860712975617440031067495050043313496302290003762164375471509413908824307820451429527380775066424188794039963076498867165648087133557421058385987321744614852910212306125455677423093161689881982985906647513620048044199941453055614609694919450632942556301072843617769142355168121185759564479799352109410837244020783495670459496022089031176374095664649500519943191650309585484568907236506473755984417685283855715007994506995274545309979662546641129820269492915257170736170054186959561991228411353164617727237328224896905817971929220713967770107698195498697385730372348627959972639046168822835291011798061203485925669456498711545142927446391965574620998486405391415440913392099459505179130734448399358455294311674087053490767523445168791332295834881088491927625691860537514526084986276834754185473444687278722932399516895488236806416684872451146593976855562905756806298994338318858781535720033834841346050315122361157415960669259451790783245033660350186765645914436333531503204621835379054604465753403283906153859788342553680485007617620370109579303804114200692815663953826002565616452994616640536779533510818020760482281616523356198767823658446774558508131024640158259147875635189532781492405721640076430505771577217156262505395467026119030912400734353299979656203819610225083759472444842339324410062856917460902059722674697696974712667227765587166203220112791597824609080729814652944375488260579880851527336648130889159375501741378627386220237815447149707061909171379902016550109414720510763481456746500666483889580558935199985177455401805924133301840345518548653432267016339355945793543393518116321157817366237196243372211831542316774799250679517312822624849151899631814054416901099194687026814687966703367654107543818406428122520941229400009244394957752978157031615567228742873954887697260433434500382956289623309104665779097320185236857330618201165360355671362300931290663105955269433123762509389466046955276903492848014745166795382755643038053399310497743932691703312448366476050821774110718050827680045897733073454878010413188168583108988193458423662440112255677498865834304151657701552462714841455765366923492586801182040894650001324293892641074483848779501881909528778507946047065288662303370865205097074108737907222337349193376394152761269776635343527731283661924987258335230444846345267810197152658090209715180608753133840826532133906492015840859006040127764464191160179912093615388979064632618225403190915052599538385946157723681084015644445730859662751027471079208853219763696677359047901070337087860649792826095621842492811880932139062314457718633874634048102869405759336593551538089271148341235826712156980315864116202736180216156878943096295417302167191011129821910028440357578134730203827317790393310272218504219613713676751351159825743855839100740814627236895292010210226070946883257600301291578015428527606084831574316560137862072448187232611629085162997883399703945128466281289943691862182838728614028414697781582794049485595999375654052363950484610521755110005239845291155840366448671483610378303797928277501148519131497760799088081944978129501694544619457511619556947021399239096818997069949612837545266686167933146064335257384827633868383562101805498400828876547196862836457271321296716319795994105203451039753914194986265678139645355308424711833870522542555551459804882834909476875352559600927943087458450329328892252895946505610373368409152441645790898650646903748589505631925438633305950831021373599359861180768017251731438383604465457514146052704621629149242439997281209872186956207131352897298081685988073297392608953423005327277506568617994965974276934974093968708759466852970821143619567420314264544054337230190477625505690543916481203943607369034003316197835718166765181477742102999782281857099423826448158982202650082923674638364228556543731443904608357671635422265317224839959307249431022415952960244905706530616446143088164648774799921934991016852245531791399425545055460051085099759614995602593825248059566516988692154377802279594133994432591792804724193315107925642561845881798870910187103630796027982077126856577000723470821211988109640312320981277133182307540506292551309255745757278612735536344444919915304902209552963316916362038776138472364073994427068984944727826077954490783083454743968657013595634818162083063242163520064643157863642076899998168016354359310321221757507361085008665999858811874833315914031886056234293465860832576532810262883239052516930266783492661027485969132244156782807505890048767103340405436217880291990571967240305549254280703407051955562361168689127703412942869883421012153764059096746141733289107175756314496968997152741853341757901055832864683734859202957627904674911030488958879944007321344657331108436473463371850056626509226542238882488866576801777250495483594543419890651850135504840277237694226832428311520212018702447967746221679861285183756304434871435312840237436209723287999504925928810408603285396371718724039119441167784919498155826513880551174789039838497165622498735102110636176526164110927488593354418945694937259089707104679224491226996552004243920520195846381143313445859045011054980978488509045307562825819640690477892172863475529271542481578108627682779904480064074192561260337813277076116145277643020005393791103044775743584459255927792634011919855132289738499192784127907160142036472251444644376623382922402431152382391252850971691605224637789987955951112684132578653796013713236083576958538275997578069506001882999223246789315158040339592393622307408350415982340978939369961712134229350896916873734590892411410498487885494709482075175023357851899178560629332850275094414093132032916781945216338794473407845869019515574998452923709174787418937563899191833007951058739649475185371954786228027418027949258509202890468013404573606709065642733172317654600783540383710581966368144969860900393753377658672143609507374858469611620712061336833978900701404606897451271352445560754247382516344421405215742578181166911827840500964210432445457511494418219676751798345174025546753277419996390235969748368686358983330299858673090161796301829249000927255783935166948892117640725445418025950418930252223215656053315714899364500597336548565596653539724913285939422860964689399054308642969591925237151619327002740272600026779071375285331730952770846461810446388270533567359972390420601584225762643347495484708215697397879754048533002097143237552136838935037356427691929441626794134088889166890203976244755714287418580422452090948214406912343912052895400772257405667473621202601735309280337303173354805417941724092466490696053089416737598052557210889924676323375441607947718098382231954756156617646722562382504106091538418690395631207172350409736334094105551756355662997362015949173043849474222228582265290781811357645709567416269696850980132700680449621724712915714139447102585022221987361172600282675377080706738027208191961706312175164337761533232217329865089792836379447056416506185310180957701243464750808493253069939037555431464995458116896603726974491048185063510165637693175968871269102866690466237867948656102945416925085932811389828734874878882400294407903149592209222768214263277753433351575707153846795798927300528802866104490663425742125263567052960486713155170061350565415206743669217880885345496379690907459216681520052014708387839457453989519646201634835490605051115791184741795487022823647964582885041332086433430998031134429500868491214368688790355544030856618224433188836706428550018325859714478646738960008872791063088372195989531593542752116724585053731664384247462686856436069528922906237897324571955517387926754889072592476696564646426949691247581066347732785489657698262069171427437101790715992811110293198430660786475153845727759821856945252213530170388976053049191928468980769921376351595802881039566887999013691124509086807697895935017148768834238771777064516607637138761800737058811856573337161324630012383678925761450923663851192702657907558873065293959688456401563037358091364463004718046152864558715118787865772438756483269465022906595920084695712653725334540154466466625934699708263273424110831526816603106529624655830265364001757636629486445293938137446612928202757981247865236758929728860595578408258673831621006351379448566933840421583139947233194163406655685211651094817898558061786418214726690041238707958615421318579517349030506872837256294816354985739318164636751654582322573561280013983142316040801983435222720389156138973585686334203378477109771400760522402100346036925000863470831891267243663181041554840208416768699321080113069985899779924831042359726767229599718112792840940837528461499416208602523385743684611818911207792672497143493532644082343260127279154597039450253483322697961403069408251368716953801099936311463920601213190038408473486058667427393806439225540036073919289082682035101231195032176554693690732447549729356652474328148763674651939466482953538088701967442129915611682834807421160006323339475076435148110168964196456437800745213726709624679835055933289513391490465244960926872306495929483698660512660978586562145212977359885004396658551160457720178830161550151451155412596619972470476518149298476634187980862669795577520186930500174918600821703643303195265974149738687450394943660699079888633044060378847095938008393083177926321623454986371732383084828493281473065163941599941271626524530420315638034888044294169044894291650275731112436880115766046836282581129685387114626495764697042297895496806218940818422110769458359230184542686427415260771527553160537197117230689219921343988527939988905253445965970141932262478014152279547545821202699713267330573689359506862189776449057098249434054348069952815647722124334288036849268257300147037183792098683649622785180850913130377511435391816891368649187337479405716294447903568319084515969105666847858914212967525759534415127889412234527166775619425196667100291862369125450824480754677263916539240855632594800169317961860213952144998243942788157383704161567979724303106407156978583941895600271176101652714078218639262846442753665733857978006542649628739580246665515503821662968275711659530237323502111014395924264513729140521321483112689179814476028283234725785653542969869506021785770736849235525304461398800357220797711692597461854994719057347874050254293097076677769677759188736120685565144919895556275793246061748377094168041922687695239579349730175493349364713155648313254154976756935660387293308602062900201806558745427759762067708678955699072136734558895645214362150873594480625448361740385273614084253142901198919113878261416353402960913932531217396914915874379636463360580683099145300383074125470266599721611431313453676316265063439572334044532663700032456436476180087692241516044488088849165806395867674494215704333842286357982831069681820663730860714838003954692377612735398396566521395432472534498252073593485069543079294069733759285353860014400765076542915262260514021843689352266846755687132315123691905565031595308403326765285841481546104144066574643124116073436015053480042920709586511678263405462953635123397156812470625141166923152293105870208476764779208415350374459384962112382575689994275002396808185141956024770123156080667376054241368476149600391761293506861357041965180812744243318649580801396090408946542104707362785769823351807003367479256272912842679125559935765828796780551829956334601309815686266902488970566143788825536567499689285072574588495898602368624496868945664652009164881222946746838706428288104465152078002774617993701889255321726389386973657075791601293680397590783233737873957192127343460992866666323880256319420513636259004122130921797832129320433783475453084843493509534090034384595514968868608665988454781858806145342697574702007409549519027356895670477353961566513554146331283777145822041718213078900805224908409306895138792538660168485290535444496941768492556630077294472985604778691219948025704572114660281701765462543234876072718932050327833978103507147970961152535943715401228082529456498024459320613602396283000451366995824002514782241930757471278487176777453525215727926284321123880796459050147141023215477639883417101324945808937302377678155648855115067668223850751205654291234246049768454000223020916881888767691792987718638540040172594835401475115567753933306502057765808570167606194035597787965158117674761824511291483435952251925551332024829311112929634913263225998596745344648083836822310647095616893696172663662800273153009126561977088245746396597565089090866163435853225525597778441944347213979083807131107441973950923570797720213670862442896876938414806680029770693186286309931480747754123892373355890412368876833573105938038758640426229048639750275150082689882095815274293241301520561303677329555639696422454620447144408775283117039948376408560099671392422460719454342441316066880135397409629343456687937972973688805208307770528517232274091130252552935488094439342583466785943908843939649615835627247804196444911843821585802107558085901543228812868453824609265185497384629046118804202690193571765386580668614924253612444301361701692962416076049238809969619006408099791845148014224102516510236166436968615366275657104847838119096972606277153820976291086346462031883621291122127011580411311848657701818439922780089570804135682607058322002302479654695487451515588015638068371698864161739770764720602162493493550859461125389231439533886711069282644279992770245830442986677799104221283560338853426262348190296090366981042735112313906299211648651983643858762227439814089919519436359749055763503259323292154299537095551464968148242205885317630793683569255700396434871248022908920133106056985335897204084916312879476692928915057971499514815015815363457490353664652440009940739664261504834718319456123667637464919807722622694153494548521222726019557162747736741288015206844929323234332418721891120366150034132444540019503606061554864188981749607284290345800158835478189904777794785632550441983712730893101991279095440178440193214917092989446151555235008276318126552650532847222218236251378130756391521549555246701953564279939007751077980721923978989907617223723459422626305155497354437057027170428554933851962259343879495283214021896015281349987262622492381480088102663141540514854137114249138312204319273923494570535474569476659180764138489312438287499121481039088928089511427051031468789730325072476848644244677575731221332056702572422491103247294015865239309731698103936260971910708994213957843291147806339283019191816038769196325024197924361535689620410996492704528487602213152691214926843939044869160849130528844730047662649081534977695170256256136660143869794968440086417934543436568743131530694049038523694692818201047731728226628685930189660270465210886813286180970793862964443014085032322090196626169944288925077323310336405914414504573069103221623510936234620690519593152246982563454711441200846820772889668148003765002442169009361790928785611902920708118848116414802394501028499240846742658144608844909824907988244264908146529248053240085380042464789444067527803630457763828093066217249179872695301254848344253007239656314868039681047024981513710089796900872936873385139696208738655459767114342904622083412527236093487775248587960777200821264518328110927108040641536970689909721118577597566558048861493489579169613658974563875311948443369371195067858510146240034601800607534748316696280992803897416655450918891058380919208049915291981326310461391840839932042364513325405875673854500782496995162279260069036970675117839926022497704704704121764702076379088514796458300813011330059777047878610769244193816205343617998790717034421677466494542012965327179178141305159173598801571408575942547973065813326392088412080130134843364305432894812330054098289005222984245392761061881660126970596111015370991563413124795324268277269912517480172755502598575411250620098462656751664821770169407643209811133110031902202431064993858706143730904151519102738597076401654804731418645836297656870774043195066615574900049790894554941472704037690490701695120260874433246623812443390124935342652308512199927297912955124282096698857498294979070481996980809365071008481809994276479439855980376426571758430043120502919057369364268600697091147291643602775611531951714828887211870110804665593523354810128951788680350886116753171088142978318448113495742484962986059770854552565377895413813490090099582832200469861756537343199114529267076729556270775094863767963822190440030963429106906895993531600683167504508040017552704034990500174733293895600854584531404223350325041647538567277413663930179709264015777009506762538659138062929383512178528663242157786716983749205437517319487050595855374292676503512319348913860621869846685010597765011614133610411492777115105347731864440950602691366603421617752802996068323311718162849094471003105348118441283560345217412371474947186496157621156448340232756345709045173219145245821950127482938961232774219905553052961773183109042120358197713251846503621643746715340900751705930687645627682537121431847322297618452651111250576744038390172185072560414203106214030798055894947446710734919120829100853563435491762686117992001650866386539277065373359363399846337562554014942902866945999785111321787356160609944739785500459698213753540875068742490280282456875846448438337024836659301028779040441132110071286610633088678421233532233451685232079023062214240041600991370286917362106949808691293240929156630927461698614106878410889802196960082054644211477059962690164205010131361190951493943246995684417267391043040922113055282327979111559669484053688335113315465149594180334811072270608537245634424873982702344570271877400098236210304352734024183458147321537457992826591939863038548177766187316347450761459699426999192193242530527091050161633446665320397231985276808806899193203866218702953228586862315110533067067705152197886936799984845201032120741935356083270573686265301174372207508614436054221220857249587814265648526082878933113929039388074383934099087072645795982100650500012759233367759406242033138399778902121087559831714761280586017085275081636274688579532077276882947010100681558934152180935900789126314990534922512722671273441433670083461469870146907451416791243478848750999954080443332695199686494051543255172618606663628591593297530427328327756141502510943882333273985102748765179490494685625277524852952007162573168498362073718003547916695366998149674035840586053581140689260283429251359817250979175126803916222445229059129590664867249366216112388967946347389375709920582506587495608757833037651455581313187124408136583016338211328147307065659979288212003208750672115437386931446628637232396235216511003349228058931203989892741850334989311517606999519737288885557838174076874502849282851485438670191972409240001638253881365359078512762558728906012257266604600789134608339197156610259485419421397794264160065131136293047413427444096453242344227890754573612605815798620498635831454535752640111669657919395541035083110871115402642389379867584478817707125147917025921277079649401063398404575935832719273348614678953899888911189746312427385357012373292207043583040715305798103649015584849019747518465761838728193217561935062468906702257677366881281756596013128201754544239958350322743695812484127585352167444251714734934602704045956253291431096328138886800981054846385301845568442973674782172553457550120710965600689446412349460871224337492221135837522315442014160991300031041431052744769319619702391224442215568122238517153824043076375030677866074551130107143557485122843386633555256726353172796324809139880300873743698441644437030652393344950604134095813852643765442939206149127742070902141360707488974876038699621650932005736859981421617319148719431555081936759077240843938168282261505641557989250737959494719819713011567173297175102611560220645251011627253009127017357264002231599900012094675247212364573162312566246987693327072011014352886725521764937730082586694412941617194895879517087002313286021112996595740109192696600535481299476739368002116624035708317859375718647086168002643561058203448438633168934411285845601769874219084909333422498057075640859107979400738431826548823380359672102817096220622218669468208513754967368976045790688789134994501153522368526353564883411219605247190590167135024865449080962867085742649282483573981502223046828640565068949218726886667742574857760284341902956021864109546508942776236649193146646667085142314928395136329090303530185358907282351029562560106961010872561639728688097530133650088851461685780753340882697685381093859066933943174691130057371790542543447366485923976859238517255153948720942999377032842183331483448895662643556334707464384896436826319101480970702045341145294697102954961361624858464522911961137910391148155821132696020737909177699490132843606526118254553280232642027417838015017395369546117553644109662398505601764346174911217598922423361656220400053754296187146494100737461487115608867814354159532013101460789397951445894642502955798426527425154645447268351978994193525126226157893404688761081750125300569593069250317036744882163379286377008611080124910381467469113684752307505024614615290345399409169671656786661071807772745326976088190663931135401766183125513142806562609668266703338996976616034846300894670619812561953964969823554389532472306389066582956233757322841558628301819961268232804815806096489388011539087059158198899623365113776961592963678909074118864125894189099108907018238752693095594475484857973666960013249466862182239933320492255994356982740562928706194320198915515813457998341304681600752706859318962925048997025470014969781848704001306204025174732095051030304253037025434205190552000850976957293452408465635100251592818343209427842777994129389883314893311776962123940585478599239660943657346471250295885702252285297694966631510397961663326824373212557834132547513540818147370186685890372485006426269736057773725508633672761056179855601083138938142202753730983757504613657929976473996394796961973264811539696646796582359569823316657043822229054589831978965810476432315617763426908460261518825732906995383222722776732286601163564677850267356220999755243862216639501317075328336401966721365790620029637362682341311921015779924188715506304224345294385474576551359478334919460961320500664392447879404299696511602566441556878224168340872725172190578903183990599292042562909954954034403821862200241754933896163380034215863179787119436130863918389332462627616020796165029804311851003593673000268609487864997932292402592776006516564845167453832919753809614350269755416974929099711592546440692584108137613354098093777397103860899343066891635257349426618370721268644891669961497880593812273052777510215020240824467645357442792296914746710917476546337846585376507428899687596394407002567853651330389840826133403736556981674603856592743225677230249905500607674215287670859919116670429865444678171935873329667976823397275433168669348728155203247009023502669545818660410114991874247301215232315682787132518116946225876235908321406235196711132272824347997558516351421020968416776341008583082870272802550134174601600369992331573925736215799742128331991100954540649885822340652638554179009151323934486242260275430884500592317982479656360157274844682006791869701580041249441290188357087136220599716397522230188239709290176028333207531731967903404090331638705646402729549517686766323585089945881210591272137645156829995677125531192913219759314509709121127312923593910552828237452869760393521156909753942600115470564391115179706134820751176082445203034206580877869213924440476582069548323348864202321876333078335774398361580106352758155961870787741818555129181364537863877198850220748784165336627960773983845441685824699537683777911785622624995633025150814599309944833657664623895571808365945255344037789753312953918437543087173974828493542950227798533685403659210942361977785173356623270591242371454847347045037823450777216639029910289883863273475087221331314807807690196347133140555702402136082619503200192700135082154243430954092818643606448604164218707744777031701594110519840690320505047462293633693373894410448238558040119743035205742694853659183436832014410680852665395191474082709783516091070803847155339772504911560012624503714384030474305233313532578326566440818783819045329141061313180149856344685731979475611078920979959269469243607056703873741143541709887513779605035136159038661904392908086189734542157973756419239157759731365337705526621161463858106940227924539705524387445846587311877072127424581885806894291813621226735918009119933029137523512472497030622268039210707328499157410308301080892780524487136497379428412896536170762663345072407060034889869455495444498091431157680142176430992504800455773177855831126990259579491350091682277432818308073241993596282331110928560459697386113910681280251283970404450879596293933057306852661367635167411828511418171165069183186464132241314726384030177748035215905262772538183514778557115769302334239219659168383606700421152087637104722270650054316817793576107007335612251213656258801187747193401442325559570723455609753262766400944801869101145287092060776565604790092856301641155158902844877798957433409654996252199307295545639642977905782975820071679094648069327033438745766508987226313530066924024585453540182116289046695254307780477122416404028163278138446129767038500157880869026567452537724204798945396828520414715253063490734271545695901455497061945851463639105568653946981782283397258811509144173142429288780356757069252802779681202299670894827147206084867558478268279581314949127178835941637614581876603616195667791793946761984732007869118367056481317995554706946741807430998561828830350618573318484243689359506801064906552426540739287512538016705288057418315961522035890698977433954959877210934649188025342189746269163429619607532072436879417292941841518767475628456518437709281812122207055078868830439711932859667025800834081254642353925138354038418558207112805928334597694261807843162235437516359603432715500148747597408931400988123464790467216535659808217694891784351956886617527751079938011007783613883919594411541362933968600147987273777145618120586120990869244793851950961990293683656910629061408918684555481799690900507891104625145323266365737558787290528640080277618440504336331486198013735121049493051748363161841913665978453637252662727003849211929766350076831611827964910220588882339266949154127012923725104955630712076117434770973519881769531322282922684915873735052362472583374946580617395465357580170948848797323479378600031301461458792067824421031418049282850442540216118981864443110176614955993070783675981253908614977941350128100238981872929077926212168959538593864197340537631731673869187212696995659228264705949684427236236834829244557741415766639490472954303035336786341454172354011750711663963954332633251794065307874696334393433129320383164777118071111289370263395977503420526193822829385786238526096560824905853367069664705004918024358405070701177012284242061357533853702341534649244746779435528765785792394608653052741634339322360782242213784030730889863307231543771294934249518371578130587387422400758003707230116803862990666744140124260624166907124205205007573143426970086376381027406603894690787962340533286592504336661433172715576650163857282867649753947197728538840760864644324917969128015337606084503861457694432880420461130353503218892310332712887397889892277617792562382536709316751641099869902448045708082172156719448451312427303172148080130521968888045542883151583605341229393912241993550982771232905094146326419411833806010132949406090319447690096714831394510937217638266405031073791371479809558354861581585228743084949586972638264790278509510704371659030820223796535389823121225070999950509682159349637205835743335429364011775562577857128532337405646607424601073020136925642697518485039827405343580924647626789116266625260501434436833904076236892809559446284234236171986693537276793595160429581071806936781499530260481847020253163892066189214261463105316064196773230463463348760999622626160381546329408430196911227528280435884172010417482114102806046255502976491530009994344973324228868905203873333567503989538796731215071002495550675224009495682020274872649270705424645478738220702207333633125239366089455193872630347252435180098872583511310378078995239118507811991607028390322385832132606439391264896773914984968642171105388902697749656076115620602148605611049461628565080683923628763225482053139216009521165708828719236520779947518270267049615423953176082284924652690912336346755123927502558663908346051490389253169909656333341324000140472682632207212187755306484550976568608012779127510257030846999894897640733778308337600464215636086656168535850927122635536016228591013488885971834770245144766636290660311839512781358787227329861794322925246947457039455352267770346129725136449067381013109339855010727908599157076249826788130545444363624388823230026426661578830054918194995660075817798386719647974531337378951003758268051837583735989231871512584280762481530990204498651721804332520662594931988540205933905060058838357871601568637318994283587026659826140794591629097813006016536158266274293493890529988299498099901924179408763929823213437463208702260349218959758491461334970890360643876244256834329388776086347079784025296714551905498713186174465582554332909304431091286014509410790148195341752094656906087846762717221137730571305016479906879505633305417894280180666415319968561422165192197695800696458450243560826274989823695419613548336241505137863390248749720619420079670626617758968510974624193430349718789755121856404397629908677419932669578588433069592307936890191124198902577798950462930688117002606215763529036246131982122192242655528853613550602768005560202765617241954947695623597892613985151430976588539539860465838055721868538792561797845561131398853769642686808791065605607928406319142990886132112607550209368992282962031785610226411044438578728245720775615305132201498723837714838103513781210492173519535842921042283284455975310670535966743960763196915430831641338638184817867454731574000823584593738074195156657845622803436002156532803486177018499956140526645367680109692064818913891588533619432953264893872644044337546993428511434799494819967116345264113729853427243329464432323979294605339091079450111386403843482518362964415439552788919396853545844458445706686842104643203277258174829448560939947390159423268698963386110710759054606091434048598610436637428983879539273559880724779242593720925617028102295032324721535281269098464650143593176873264483829106887087310745148125729705564826198846071852485225347815022554968530867418725555519902284516870281737888694412201424992806663714622068914496878570827336123032155869909219799366388851306002323436694798214291541713419128049164859331861906032141037183723183364606586939446946558239263173217485272543771035002980931252878801948935016660577025375772093325901273450732716656708053196808656612174658588068207908319846979160784415874081118958406584318592164618696702440613562445887967471777703466986405067683934521575053716898461558332558046992927484484470226669287859129540157083526383355737204431861355058762673491374910816417241773773048657852097915744560007806924701964592923284931765655429832167009651024303723352630965802032273458300176723452391679116352366800579742337703440129132182640915478939687453849727069419888744292336485333914012202021857858583981804256781617548753982472343228960287502571415536512450865597307086215975709046667524474252303686296106300912033226704526173544671367147869588761648542662561028629459474071751063797618989767509273444888432562754747856195145302089222533704077085338737536929146603058864265788191340577165949494280076253312014674209220607478911410382048951637841922215628007939778622088062757272562166649705459837434160013565091906191740912748892257742400459158585179084897134360071465684982109723185913800106163241894866960730502723790578514248452124768766860999106384376566171357782742497572806310769882466273425665319350028099971665532960217215584723604455125056260259182565145903944875860783175643341714602857878093344886368518709626133535786013952564324055272976945879430675127818716564754408431682349684983919188126028837485018613829045313832307580022945898875192868466321600812800703149360898791668865486884269416224232994488932876281109971659255728057119607552403941684067564799857102301560924765334588157295561858023165301952698284804218409546574688677149890355993266693362552730164993773073366537032782221370632261582110028527143889487935352423002154684055840956015940473617554831823181100672543125675455153702944704267978231974021776162935049777013204401499398196320424985715192998474107348319658091481987022369860616029163565955935067931994864269942451658170612472736392204866764435303045430046131015949355501924579955410291433403083535318527951007010269160570003447477171076402995132837635672189039573084063235834352717875043810802249032194963322613956502298158692716292315959690913343200759705222277264244321310678206753482939755555916678768880026697314002728307566625696383006515092870469254403529240590951960759101823070278150538815373136130808458616712912303004001429730035599725421282137517226992156757926548580392968674000072739848269030373289311926419736751899266478277780656283491413299333283680437407320731223420241374239398775051871475903914408140790487486527937451026617861043684691186124536796614182601707780524781472461624128336857306916030522063943836992937719154423246436737593072014261929724857868825067733414372349793994469669338428713969372368049564423871361324460102517998771362464336232284848016180148242024762668574024097052518087046843133067515526189292607316173400871021599031664811333378127052693846449852640722572247998654887450426195646157588579745518388293202212655460666599507073260849614044590463737915706691633795192358049711398438212271838725894046586326299088548734770313191253433404361238883587336003362839402377294242856388634709341236123370720950108857304233385285085464387221460025992276223543563877994014152171732618070312750198113786907954164994438885981137473959507233952261954610287227936589138926501887649932593052480295828855521199405405136193801698326432319994493581589821336263948792416332423223485156660363851524891829829085123118344922107559889373638478848547466594649577849956723213574391343069375958711198138778202087224386891065881533807477310777050671804051209107062501183556428627279673982854767918376990187685043983763601839624565646675108585991562662307979881015843813988209314239009960649768609032223647628153056708444621086961838012110935249185634336905611371969445874854610145353833479001757955833301760561096592496469690519244691714913287167086924483290764957881035007498339986027957443627465135163926616093218056594357626806739613881334170985605108224982869664344148132082711673276024062878809590702916027299998309830454607204002092631926587714279925079791898379522557713796900437232120953562637313986030031734260678890648493221072492470718232905233397672052060038632418881526664437361523153335384015872317776291557666534820206599370762868191788792743454206736294059132275542730435786329430879906142124531309443811251201770943718006459310669807686718908158967233137583766645313661871142171400344705977759180885577558756492318760172069612922863212059124403773789474269005982459228279614917967542044310193918154630245821250615400685438934923538950827429996086505914704318027337911579832111433254887159021381461450050072505912095686126624879203783856614990864101886249384270780165312975346371258878369717493286482008869595344530243771805770676120982262759318378999709297233144976996875792864848222001213995822312892086769343690739752293481568205674709687971265052016501329532076582714148297228569207154262922163945537953294309517913171912642900111803562894972507736644025716597646866358224803241838230834342149674531118435305892544721838553287597139093670444677850367603249325183913931019444749576447978619737630923688388570776021123244904869035785135847356352459833739042098794181367899590022782202376246089229435234429968205261097554914156523381603168718277734085207794747096197744321440540755154203920887109346446023282573028604026907771631135186770166938411443346059890285275969441404716847510994337770133680548769225446084414553396808231319782990774985332207047078048401297520287161608506346920765845518506073956317257267806940440370152874196024956655401211669563133658088411150251298708734145894334131817426658066452640981089038501424367718867099842414080449710610443547781253549271073840544826752604271655017429698475272298551520213337399450063304723309583639225370946673844894418911793652538611052316649804523458850223645569094097028308522271540845188604210511769402281506139414855176706580682583307964387829418024109994756336134700887176735086347974557044005847699570728658675021305330473490473055105210338787810395337599389955416190718337231403849557104915402130298543515670261740643821546327763049954369097236119817549009722284389794734946100700810625526445015014256062700515051609800627601874447287738651073249501317973935561070522095990047262804974242293533358476314899432066534842796893085446850032783619788821859055488471927934468406091122254987296470855645363924179655770198258251373526967386645973436092990762917922725036202127532913809382257630737836103277972734119959814256721080481006525397774590577046118707280065110443388128507665842309373464555890767447720093240710041977441635624986762733648214950223681001738395772175511579444978756494592146416531338526689061550716049433295816120168069251241826059094346042027518788803076172478030429918914227393611615689253250908454162925680780539562290659624870171247285985377011639531038393834377614027508849685140110502084781674001041918686499437653447702314758399428854604890872950716716173464024775388200002870378705321655185591730469375153183743219473443819646041768416312239893069399626228889017725485185770328824922213644526168298397667993118229656525276784034349292750783358236266249540411678521542617158473513849693096690468892597116955754816381023458698298597886492759667862624546170277275576569030459666623285658698020794044827754764514065258462233028758781117756596134181137951714793935691700978049962578321837244276393768558405730374512767609451701687137654863581938755417760528173192908956996439331455025814597807495542317235179313915497766770912444805747418340052781984992930119186002673475609103322250239035493343268446346201807179645301826653379569961038488950986584184406182025836362714247849071031203635923781375050616444831458938832458509121798065532498370176829483238964888325967259566219408392984861988601731694357093012027394674084620796616257718032004006980839512059449161864367197988944596679754676934810741817812631760686772356661175031653507907968286209314971101365902602243261387418739644173893902300188572143052929358168486001673720788164671975631474167915563801803299673360193212359386056584462120541247598612057456261513633462038899783136267176517609638972678685154517024924388351558085296946904831540305320309035606586302081300586072402267267418090690222423738563904646606693884106104479582428113638528075747638238542745917272340828046280881831063607292179540934329148348308945854256022110036305036790743672283988128424148195016327563432332209435637814784086917751000840129881142427455027318600393124563607633670144059143863215009446864995129677206500792667303440189889359006035098426481597422970894875288024539926794385987961418041828036673005005997117405399963423949271768122036440101078893177706351874070346074367991665461428263720087730142927139937200219497864157953370282676036576220684999691501312488897582190370779635798399413990536622267630788047373561149384930899957883494072610657346871318840383636275970072596527911414091484320146216486539629509083547236806124880248996180914084019244189332244457507351905525362531471192869496896352405353344937352048551769582230220119443496020122683437383906771749070849758523915479505251867317579574669780437400422826984869329688283464866064052078481080645850349860712743853336944685987995599134662652717807337561530593793134658231119309863383721057563050750398690392323280194072141954365921353992437440283983993277236090968651089121185565046823200124090936955476945295847991964771883083146287041031877094669134650682170160542361230733669829654412154922566172866208753867144716533212127630828002185074696377340312756024471270664364643153040945432075543959437683958157370054853444923914321658063359193738092414632392283455456393584618199272729091349903474636944914169902085046381205941908068397596137400305607760029443405812097683656143345648542938718591282517182185277126861266403048060109782972772299509352291465971863747198714367601670943788389337245066868131960881795313419039474690765412876186421751324106815335095091487065992918649204903599505350929083970413300354542901154966280548702763609466740407876456403636871764228231143593427218774262515589686883129757164992813395738192380787361102054267725160606718207649351984570920981975427778228273366892181028241540879172159274835601549421663191067095829674324449557504818930920531790465354977180217970493168671563643384162716599944765900596709878412629586798799692350731779639818479317674663895649291014407438096119360010394363830589025480814723189482128360402606022912921043218011649509835286781504130256175540423454554621076633535777434171603221303869756558570945579023761268574215364500522525972698811725278871894652259203537791655461913996818636028851650128596908243750339048209547281583954260117479544861915265362487347035896045447385583574200439712900899017085034245514561262872883757071962564671804265036233786251360439055849106489649041850687106280909775952479489191216242267672898984675410116462918931881066802426164140436197993457236943993426155009345137433454686304496734001920499125509042748386515645382024252413412292553455024927889974359890226989633580047697669768476829893709654208146521901596734952464342628364978549634932556157094823435218843649075089434449485328963935160156886754696496158678618535951912979888172160278476093110852842566051705632340539605306970137128710649839888982174926648913379004126153528645756187792230365403391007252496511244071268995519511232506897688610794834346004524902386905971266056750324814652301828678715771122563024001414526537233699893547977750782239173331033443166027577688265664310486227073427139165603656938212007346393569536074613040363259233373825392351903926709950181740095770051006934389257227307432370329298908805124460155254619892966845211090000835475482646526425898756244373705162227637105811592889939457954146482219552160354400859909954044528246737960662335771388184171842187877122786856820579203200970190981596422008531344995458309918469573262795883453089666918580469713057070227666983802038942053725586142729043787475857494564515549072169137566487734346580605321187487111070649708007178992696783230991076190063486419419357293963106597058205245028326652515038989285310547416302272769364519442596313919226866798644754356046116420427648326635397103534508907458983355984315220755563169674217604584755636134673891269295920953068564199286441088389666525745082175648023113173339041663995774788742621789469417293328247912794037800604953430313424075510514314345121666982833485221769643787827651445026257911090391704091378082990473222598024021949222164027970027727931779088557730557403806550375104141950176740919012515448103794640208434489577461577905429377343191894098617966566929284206886698261564655208395399589829040239756703012171228853026978906633075921418079823575581473742304867239187183544066763284999162929384747041499744042575748071853374854897474909583172853421709318078570752718472226396320133871522659558961232326556454474962106492981741665861170433203405517066286870485638862620911117898817846349920501838916317880822103823343895172638147688815418874934163370319559445017995017015322321024050033886290094697831658306304373316438965850389499291027213689428906901839834314067125193852510913929045094797688415612257479057157860788450311394058999793509928564920990026650825040093541246322704597943198532798447535864702067659387505253737509916783664823402098065868302269215177303816879585689769583603397229996691358025610550079485360819480160818463249622300955569351223130150304310421821184675024302033088311358659857224423219227307567528292892016009486213529280393911611927068126537358649062411220719352314818677267993551469473432516900030679283765999347921800676012003071274548319394092660109442132074188584351081384483359403264685223225254753366101492018796099143876687053098683926179952428819591662179252948368699607941579834658365232557030279837334592522952040585310268669219280338601641840044055815081749507504205615480133363913883029700179969381673749077262692169434149039831947748776994721305691343462286035798737982834309895774307077414865920404364986317068756052172838450383119348766110781439198812609614219486012264535965236765365349047149556940434622747206498447344822409995584916975068907277189083088316558859334768459740034844025534640996110770150093724706925304153601877669798765541904350803057402831207804335462877144429802790312141972923601256200687871827414798452153551027739914429946320004911557041915839223244370989139923650287492608079241321333900925255465649412553094895485528201259386882455167667772072004423926427446608024224213584820910774393467913232100945599890704118943596425400840983255204658557135566871609770002506723552393390478945020751261045842091426600529111441180185405269425190233396082056585165171471931831616467079188687291818753446820427582082878572276180401498124621787263934715953868799999850106748598838570753710017182235406752310878532539981969833579299927920538893867332667852813656814521262739759512845350912403749707229519669050167417022665005411321772812209040907553784787706395654077802627178189626552157202852711516377109517313109720675739297788108116013829554499259747737622415451886142862227572345316897293203725109183560624920923959947583367653003778714664920723694636632190454024364192014557572687136863863830022603981122394820973068450229690922915723212500112521146776238070975343230052653475503335699014233148174918110150040904825055767176677792900982159656015153607735257450528570295716035011917383281028435205021939367022502383123454521810954627778597257405139699061302841225400817992008036947936574592591679774625759810041749547852136770893487081600175762877404593177671625077048337051424943705057807591901866984534286269432895265174747801513510401998425948803575501055799704401785928897778151115875067953090006612013615297751901458155434925871980831513238198269093094507512484214998830759921521141148047941055513441132164500099540856633167410645081013765825549018248364551189564160824518224825499699195709180478315226468715393365431110778659436993926612915579271242368832974523577942695892959132997666336595941847919090483778737012673690317851834381649831065481110436901563561066045747168731563065476903674174966247868847798587690249536253251414518034137469533896970251229174588706678333650528779312737730160023160943484989672915556140711762962152027125569281462884932506911854664328286730527627999362820355783871127781522802704437844217458163083488833502749273925304718531128099560380978203187484308178134620813284710504347980047937403539515206273647554530992351096136034040926336335988088734847047301912058288994814450644889990848491165181625439332027312230078325632231206893350291382031607938302297673622167111257145352049004321108875921058537429178355199158468402445810329675679226924851991950595947269781510182857427445150993330888448813255702275546729077644371671514653461360841438895903459305076043564671391849928674514127661949084040454974794938974495225250287084839707128681425025649304784272941406252396542110962377400817423395388562884585408228170907099586213450589537896298119214692368214092452748915551209824355537363516651151066651479571304497243927563618859997222384806845312073907535848581108482099622298500519809388947707804026306322950338373931688331596820766305585124933277167294667921647753657523308982230179299983295405902263136330780423752105451000254616509372851080650502748476570624933175406366424666857939088468852312657148737398531543146051146713059264701844702767368180126716405088107905920324958413152228942562445328133007397756621461852687734629078867729503909957110785362719140607429411379230761387381934634538767071385350243963247573727922572669093778060945581367891642072482783311857886058480236110045608243695894541221129779142376715392815930682390392573262660895410521123444342812810721224279926146178421098693103017128162993461094603501976688455405466825558243858633541307135046987972592479406128445578815504811055233744351459535747585502997267823719836334707674304515147472028187913787910504805672963580125610323701888330737548515241577841704023392023909414336104691148124856018301059776664532441641208717194554057130680815564512310860514949138423181529316827576319012324718890120533308690578654065232035630854110570410303149971538985390762083848309351886029138182869206322452794975147827171817844838378058985610818889852859240091828490863855379576806828324445178019699440187795209816245572329034430981059037075703342144685985113357021852792253168185319948069915422785049262602679797152693570609250886788487287268917238657754562561607604277629083388383761876346349299082945644773049504970191695795657803493581057697530460794774315340550311779254714663818189014443496688368086448919505544991212488707572439502013892458581803820858306371909861804750291804059320544212805381812482555079282464623892616543588155906199322656862318089274740535452346847586153934323355072566733402647002085613275553402414587957107965369731238847605305541880606452750384348977213150458347879948972730546004643516785370682850370339288423815718981888297023146979991493649302892678962959326450461699741360355308281029882739288502647310995714107364327835286901425648221213771602668096514702994097976590845718018433968941796061630659728374431602433877678045142085370110537178849509803492836318389282359294916755220228060371514521516458829733775202300255084320689295407872887475742815827940285041926226013986778230197482813997724201452349439158382552312982499730481327385368940554824109762201962313056797928946676427871544189715098963703838469656453697740238352299725735975427442323452683674534902031121320905254622052487256084226821909707959884239913449447757527482957576196971570924031371445883264863841724861408163139289588503216582036640796884965574760694604854787803525530301021642132520545590828695414298462692619168341975856245219106176786267112971188441370888771018839647600599182549018154574269710597529496155106384153628773748691745020608902033746008108490916962946297597529573104848437605978997891289377313634480665668214712603230084381762942291634102015139357397743302076150179598076764618396451813638703418798916014183033359795666311767729778692240759404579444383518043425911354864316561650470425969506307444300249080500841557227312526107577258649012359489057179310939384869167235177276186041644099590911854611796488121948507684423303484744832215244692802084690606588570465692124692873189434708328679516724694625491071071560683640646352391136996662209012430231220704702456804505733082031275893002075515242651504465690424530894081577864312569436694331036663603392923606746699282674777028780785194797177764278427738435661991265728687631772666672687388057657909296811906277776187641973019138304102224055769314725782017489268609211356007718861039460240174658575723930498559854757123774778666196547308484003342921857715380807080463609765895782794381676743939618233098714848174618279740070185586039607428116511288027749909111669864587007287787005449003142984601857502359755046644189494828076640881777414860511044185671507857266683616117319208261361503758448647444740494668888598074811704575746511081285806896722523818270552093547840171947546192681297258213943418433906016065908891084720343347510954855464963800119550993252494770546941823054474857409393717846723168035296441113525270482109799070338803869536071809075294722201684704386892162478369697781476756458374667834134949677997792759491309466103218882001413875459028291770961837676518226678978288713305511909262018320720593252554073497606157420209120899895191075607751331986591492592375059535779614821703165370158320745283621123762145528024351656517267834212226146805631739259157918092470743627011995146285201672010772114378354055424333492284586767823045610558305267723480964240082648053257910822049622781140273735887597674979460065588918427437002925241343114189050000264957898315127591611914725163327036500568394103572433516536756602414406378143812277457288341808272356293209217044533186719050060018789899920482289227584646798467573071350930041131337962894451639122460069684314358823577685955895177758894747227397305990053192203744876257021796740635202231105087437229927834090577831041820223290068417177446371483461434068377075855734608911922047199528413116709575876485262396571764290141982411093831602176571316253191423243170518927521350580592907306021441854652840372697556688592004036886395809593570083292000230940855647113670597957365115976299120853914086060071456666775022459323734184184020749056458999213393882105772530772540351476855699819224787540731076727563190527667911907328705694674681606856172289762601077882433799021102883794869240874660607392357440163066103498632217771607381078413992428945248349896692053670470585079837489108005118565293375687909120908481362651502288767522952452669195701042347536838406341243960359991550779265092013677760988899176860791523391616888331626089203946038839097044960806369063727861637772927889471267489788422036233368454209541949265972899438526408024278085038577630790493595194343862146894514671382073416002583378345177239489938104446497160694759367934426592854146343485699075608731369758640162764868507042232826247879740116133014172114736921104456374418840401360994400526846835089624722634315910023382097647147707880051084757209441705958949091506789288446553203155396347569358428107926212663585625215130605619736722582238228486907084943584511449274176926559701404851556100894945285727075802269796776743367943611802289969867664492909455470983724306952745041482643385163152843328052442903911592022273016474889599559228335210710729219562209162940443277918672890582986543848646943422215385288157357352161265818397796630922724024776544809393250383782699283725571850224496219737043448515586956098000160323010384932816802458622745616478142768156690245505391597775350424097867964885801046976009756895966414933398233819502976045479101931973623734480104775584874795417775253290734943531659838080126428697181484791539216547654551070917919308465681187566740422243985415575884593948407767719505998126182933220670024971954566210294276462160746573824706092602456805049054069955560104429054258813164783194207740363084499476954195757949605402274954042298477769531261321127308890338018158227231407428144398047978631399934685567118698574938758374853745919334997543716812156268803767737445847420756935022492656254453264525224600515417762021755740776699096827220720181948706415148237252258811006498945787957650597107863347388232314053402708705880829761317897104553911669588039060669461839181071011412775907373727117289639883269786340555295115049062961314327342036026882622962214574578753841276740752360741726769186019938163761311899157584690609125860757549426979758526807701299196671742115456671880681510715881869317165405503423112411890245808658485556138161906411397655654115457414960131421196248963090273046019664037390069731472752271159093350484099276229861522068076047634113572710079074312463521520143876031659799013520763133507037437715750831605868976151869110380863510286978622545871060189613883066027297171000898932856815835328441844346729488222093548618370523473738936439028410791088886910062847636965713084750684280229442657054421823864718889029281182840918711740383889244836988458748191937983394889798090253815682634465710214981950790770964059375499178626112869053900093862046850686146622174459916678001013991833194639614832417606019015662187578316805444284709172680966668486627256185332596207211033557700376496344655791717472125995635516080036156648465941332492769061835929829767263168038361882032878344560688836857394564738565839048703844310775537709815235047427505184226450181302575925062672466663932391832827577528239845404256317121939901190134016675729039477078482899861865139180610465612851034529226897105309275142513429925316710229255014821396130811191784598618963156607700906922304815907334065917560263601345111916131909629842269374360061536195507107722925688838177911812334525027595580624477703006334457981473489897050560316537109894600070454879820589757216945528082921634627767653323083196479523534604323701848419237355964571105088904424595486547477471412634292337939668554776865728928674364000017313460390120911418935915166939604966045495546606890213514364532419175050508488710544206186550882771768862599255332440001256583964369186409633626388298206321916144141368296116037383034731341772922570834415984318181827642575680878264300722598045509853772032298880410824955667761015527364403119333094604334973117945771760701642180317476105552380731031873125022075513425066062293701717815052401038736499314722287349050652958595240602674840312832341334898164775516573229997740761073299880528455737684898932507181763838551745556825162729585032215347189888279123098296743594508451780935202987559905392498728610781513700042498146497154144234913246684106109108162698970085099056608359282466842583591295137640840338648799881301832864007779898745989506421632412898723964296825363457839172144505270070976618579339227384058319389960713935371354470899490244465349156637666830708434763991678028530589190468063374501318762202625011266354947647704018757005016835713516172715476192286754040166941598931541432021994452617702155290528442402552014919198758395759251966281775461345598847557928653878659568286830841714634659670259987773790591690274210059109698510108149782692573350395446851859823379275324266751124122608578969900066513663292220112851977305203631344647431143118524536864512118603546452275725660635922437435702666073101698711025863081688968444789457472229671578707581961262395565208626584674199555574232485565008970667937578046406729367059615473146981039809485030276892857604225679537854146009106343254807049775077674526346252832608046529030503426274669318879791547684639444882689963707800567905056758347121193704322059070051392316910196940298069915332422764979861501997917898300577619131855531599921590534635540868113547905559026335398068774006824739494019632570553536725276297679986347760663697589375150132837447905580321117565552084551518592352049199482712743435725433656270350252670524967758462422534203207611599302103188215332983366127267474558542335837608383189475305152042751571964402222275606217870226893213264713462045103983479782070190473292205979191093684890461337346402440226210067176525240000852515813654820668798929745798957109144344049481296789568667258727209405461341380831189095639068681254995511403577493822480197662387917758585764966819810760426931380756158654764069421255723055153072934812793613585678797427119096416624044085994272818668188133394904970087819807432204735353870103563906224337671486488258915212270362809287996668813924624428379210620951481588137934720995258030525374079773906583753801207042380476130204928413711393711373537706387878940551907414841485730859733573533310959617650471493837835217326862315630781450358297549623265441231803208287752221181558661896760109727705513056886740922415608636643958390444807288259942566733105668845128384232484425477094940604983404293621077416700121972468961158130326299974803331839215631781342987346708437114842652754183514774277628003611043720938011347309998457633485619173660244887827052496531335828283931288837858820222187864271563699081079374476275020749167781074691780284245219012253977364791135860663600194192309383913480968501999324979098144713734109999227136636274735146869576496377970766982005220988801936882170160655025151503423806281139620730967526266381806637808623583585597837000163972713452224842711259583070048584337610262428803582361564484337706718397508087489331381208826286647041689991624576135529142323013214202172331089281821380620946487794387342029454888666113094629492735781732199428364490302228157478376666364205333895712655943269244564934966161985222745469306675657587984299666795706102521176499114170356610643749975154642794406938888035713053897496336117545196712069101871266315526812168107855510879805367420417292253335436933824654242881601962738882599113409745169439818646728404439746302083685581046893973559298589844220760956771430698446508138086828144405316565553527216166847238655389478907763693456931655431015262259447869290203269831029831562674762722319203111929945687812901020940893900858078075058444862238585225185013892708570835532415713787322034856612948570130898432872217824540545987788510166795292990678995446008473359089794167076055895377327322575481142626643303863437746920381831932251318500346569775796907822855561138269634245995987570896240881437477315908542365069011288528169141097013123187180982871366396567746714975815367003570192941567570717310201180048805822706278537907032945708557551679705944696182211331511874848090847846580440133535521894600130512901333499403911022638114275279469148627962571233204742484410101781114478160974642905711602492129716059929994595074688921023532397750672670000393659831956854891562402792831473721667586081109168666770818657158255892101022664492700850198204675308697873152888118292164276918832837505140507735220406134736194805816788911340829947572388201444434337513524109801057389849062685926285290638696609666326089590308149841958654084132644471543203605328941984006299986544672473945472672692548212098278306282396428282335805063272843233472102139654329889814115716491730232759915009307855265832481015279443348665218615672112136592481240557776008917250975950158437502427686973284047033470416865200550708904328197197597191376898078847703743587150006411211922885794724403542084125701779210465771053001697452581773265393725357210624981614117684105487735514987079499843870983266262541599020069474173184422492669727110614370707892938498219144917128766327233755104796228414673658021639227135417336761530740923100679917188199111341478611054319911739639926702187334185269697309653743137699932311049844405588022191813094639891827114326972353153274223812469057602091941041538537436962583022838102809325036458382489109891540057781679277751153933397627448239363722591936213596184474208329050989482092043330188041325498945698474559177765798784695395505536181038657234724341212642842035535979238545111157767905953720492030012657308305093747106858067742374139583526298454421719445717274393873163254841402783480406016851327745775655220713730198901166417986329035881439905577696967607083891643564880610353750552394908195830959155292879844481502718987144441057124548666976986064738820670921995311297579159701553743440768145887028073674598190842861938228139566222213918735492591153244368802581636580028494241455755644647354276765281366506726360062319185648742958636059934155285232749672825338372058276458111872224660191369332535500411881925653051598964258331583633390192292104229440371900619684846760447752440718372652620151346975928792712204596291113404317925595795703783963998683020553444315304476942103605858691041517302502429977789423431568959841613232982590516544187468718885094185880613262043194867603309473431337211140690577022010196674079103392524226652750870706602916205088487649823870391570650671083174967154408560442929296417228123037218153882154544620138470818611683608919855719257641493390642534986695897612464059072295405171168511277012916571030610948073230112425488570436061543338682421698749723600129036932812939748477972285235960280257762813670832743557408211221318381438250462719228245604429311634246345539296586607218054986141946542103111675242141878307400993630765182282096088406158318732805157068923902860485565198638998470849819406641034277694072959988037087770143568631550259688108536026359110825061910791370977708823018420001564487049544928078921574570141289113397667929453109040218870871517592164094031471771952629140741902482611501100348402173144951747249467646059392712877580727637987885216935215298418568684023411161024495905061378466822531736763529267066048458607645422620193619098566146344361602506361198542299426801163746083911534838302047624870827288589740589161398281621537266725744016835159189546013790351975578311195104890254889342020453807575302627469586770228392406239885084611382656365764930643698600466921272532890949079001834878159196284460237000521894477644661569678326008735445191935564900386745696466449924506161061194041321377154977028098450175789353777540590517202129062819252022949205135292482400941816216655876709622614542391400418413012370576172103183102922099392519855888262489882243013377257845917390318086360309254269553853631408750333668975252731357677172216722639916214301803254847078057515153996555526169944872394386210388890077445452671049931603174502559481207381226416070754540684016622685008741418511638100860060161855398131036997647479126289480244062260564687454979018469022793498845853556953070123467908544298339344709204582009566584276383800005689935304702822510565417145506370755214808480747105750946189066145793754001656940218646804858522159204590815575436950536548301564880391799335228380743113384079511758833623110693672264981376631791230894838234372853039780672085633076128711760944956298531850703421720566502967408365127309488273222297982723146118313068541589049003855994803889951568929434179106896812181078595500605471948984246859816795821762266756827463106539915154787429004471038289248005259527116989308873040960658957254098142018767505411855416806908291768088326401996392909723600805360278601075318746238602434636769655885405852500622327854749472535852977213685831900344697336790769077956905545424918721837753435979873650295857361681113154917844795552583271983325039602537903236044009180208557783236203107722406952347322981798225157262389816251733562910565138124050122150110169497019839923961743578945979814526779056212993418278820233499473784373378591214325620578520399927476473811832641623675419522787572320176983639080556173282634824977063250420904128472925940981170019888582438189788309428163321900609008979532415136259372248546267277768290696969660045331745057380865151903751813145392971368283590828396645492346593034072410950614646727554007768922150436343957049605777581073844607729780120240232235749106916832556540270383592087013911182784284696299290826017960202186007769886555683134518755899521091883860639890529331544046679547342168068268038921110426727705775617393866430676763387914353109338756161463452767104960895542264065918852031119235527702789958684161200452679817299834581557798385016861897962060713691003515691884179541181758247017908410983516823818978261790248349207649836409227436236262508860928661864010725845185514237815614148570835494529701602896432151836509518164728394954766183298240051689711438028547129841980070196631456642269812196939439422321875462580044628331949647749903831983325958626979673879758367745366283613871128046364997784570473586366759403659179790296787029438816386528454023445372742147610013522423446757124460763306017926412469362230354122025449834874441439554202687522293388826646361184777258428944920359373605447207309478093577207772491907766194633042439216637189685609245275700130062480362249040308078663562625836489661345887009463267703035258902428814509733931356055357402038006833594165941483476798009838535631419681737019745892332988474630494012889260167496836544770740821963071629456296465430590832965814754124600967088549838724153755939619445341503639760021083850220506859807999502084590239740012452465086538276901384093277084617833766683897301430300835492655081779806407035784431948913129874944662366790105360241106186165827194001961533378732076446649792806009037576615889448753881252938152374089601847725838701577184404034053757551498271410083764066323202594873969913921916415681198405662238925288869425311828858553804184154682272338263727552689201510708219081167660351988514160430358569597141986726868658773220188542113416024748927458605115910203144895477848738510304542033991472567456862208542892188055631200182193683876682439654165378793217090228726336103260870535927456098712591592862789145046564460030195524517834313849983870255225196588165812559794744010693954494987146938113731853241500807177964437971253689818825419220271129428300519775422516640105921919853378424649359633309752035382009163474978517851051736464982478046380463411994737427603147676995412621828626400861478995385217095852411240879679034313349301619034798520213677642671090563110070217213937422740363197562188734320439366815854872703040294551869801914577626020425499056825662778193700751807634614079585741856504849960500073751584315267844523025186758753060863790072131323858379914499115510898091038898545339291757294547494790008835879571693334659337243500353912080923711544860066794342960088534822031040187658130614814549813487791465654672148945376149179083798294950425646755030708209979073477197779040631325225520396280738393715689863455884277285837567262160286423409478102418908159913496538275193763047261771450845611255679721655894752038672963665866214165040482489589806327468568113447113039826473884351069609672122045839604683313563743069810534867810700542751693167896178068205831053440038446203248870424131449707413046373272802698331465211338370258536507196847990935457773877112493834733641006648447933699539124071353998306238731697457076139309533569353302832138478702212678209186551481936386103992238565417234651176400236390317676586852704150414998460599408618631301541920444767718961281458026052056437059850661590085995769743115532439207640096034950311782283630901571506524154856124850637075948771951372472651178688050706378087562275294311421723344874096971814836474015272812148640644125943936622687212729857990148851341333857446097114815343978433822657643697770562442101365654962475150014431805500004839418899659880619648022270372672962916942545917592933419853820357861653729008737952944401357539285352028507968599676899842455029886584917071724874038779437937683237010757481868015095332224191950886790108226017830479821882866800152725556935572431698658586399372886352513019927279649142935745600043480279063098634589922325365205184363242993743886142583902361868521796133693652652136423702684614070551841489859742769389705555174715241862209174882770388615388499519073582935220577327285821090305455851437738429498670992038663003795203460328958665124415607533512887392809055927505334214149981242698883477957348193103323469301218148425116426836559767352299464115200545278726678183766889535257333816856270296606943923224514719995143167062185309420929892596256221418831645822015612770249207181213236469959685948315049658524529846277879589123972768175168544777881402513111486069911756033317189949176438732672005393932593691330273231189611633533267899622577736398065699717729759136245791322676982928326802485489262406825691091018135262791826424752234823043433365178237750643280595110563196467911904812212155682749393240850179959456019839068337321700451400036141028407592356444206374488630495840878240411585847835934692137071617819162876141676000020510405868611561710233299113532249667965870425804838655650584867858796703919807875020477658012633532739784898254411284328458127872251380732056080259275025454842364803723342271045775343513215797016858144122540535237332874608794685386336178003591361756686419576305456497124191838382412020668516651984589823632491117276376372431728747169092409728099609935085280576740845307113587186572190748383320648709290485375409065752881654144943192313418050906990494912745989623588517816791125757605451490279246876807916137412116472149393819423886590738222996942009916840102450038921006753086542348878831332248895405705337845596783747815787906044416503598427742382523667719573822788715667976877652260379632633362162185024611996309054184110063608936219375342714094629210155977907435184571745651866139233543385751469176981764857668066238899669087658314377991393945600088671697208055982628640759451781916118278789660456786796917212307600367052805925192077323650375782964522634108197557129582598055120701351966606763769056088395518144593097275044502958973570082960591544456348681222340582741312097396617954082795313603416831765782195273271468859398070894864755924001033095313705029507339243972022130319674614038263542502218748363796461745471876725044745580322149718972088154589098754401467435206460807154671890851036890849175056287542541856632638014904988804049597881765984840864681575377232031433897953409956218234798170504763520406421391100594387342968606822938087455035576108480154718992251477623107639434266556008159554797744116809051584052915279002096453673164540405203034308240614978280995520539774449560184699511176109600258895961070754906013195914420660370711677730334824871985978491821939231094166270226420087289339407071878106708671801363447458638505594094145243728502891692214019256021777312715964802407803159910935090475444301917952534834038020084991959443368744803011235237786444115183825072232988323812504259670553431911034572040880627104342260665136517598247369020171160625134548003305434700372192067273567746842158467359610165161874144037708661192141751540828193282575637729269194721268933584260567275164649860055783448527229628036043099624730141796830353846402181270233345118254447177141876410252253489765576206092227271685642934499216592462816774383477519875800745916356978780659529347375895116228696726567331716926585761806024209908108590675818201626088953891906543893012078475184832020493849103267268131474611843403501067176644051273493899138345471877284843758094913965449117183139104810512474087853719572563672482574332033709079490578386762146004031414925906048026474495443495226412061317677643540135909428811654331133418043929143068328411213502391836954262050411362251818988369937683644631471648008212899553864981053428791783671366671724903575314206854393062551216105066358924402862952286259425109033855100300180961229106225724533019564689490536820924395678674931142762892415668543283156400181087203267887460530180079628293324779406209512882539205530661940794759718745086709326636865248804181582921139203421784588983850516657838426581123543789039709005368275362862102838782272472821136407208941519161313116128563317282631684917663885154899052143234760874595773507182807636986771701038059346476655488014518833769279117001267004984299889684599946549750472034180891721891634924644846857662377791467215553173313048709007341482153841227927511805863038134979178098591002994878514693557527988049751414260548449686084154137655693794649712507271877283990761856275548301765268502940452221025875498779352919482940433264270427976948221877989095169556119278096010607514179365348223778853697624088986268594532972684719434171814732425211697580115104609778502826936113167063418645783328862236317281102129925950104654633924995463968696456177412288426618387302207931305097791767937332433773053399284051563072052333041793254495203277570261673389085801222323399524832317989738868775179819823082864255230904653168053272569859547503373432854057899911386142830432065448819247765040439275809968819780876076649564136992607196636352758827672522658568990065532934282041258490048827970897190187602519808860616583526629895087324141627705221677289501262508390911728143063671706508729531236606236441664747100092279270924094506424523289084054808268137361491290597550588114303873381078475991695859366884576978832264238598587132282213179653626329971286056624678870338648224160791613277097115160050662412337811488406580126067964276792695891850930711762581585981217461409081416838837737421768049590167671407566180840280508636461121471046793174783710546160259985790177166517431906252426184706282068721186707972672631817882982552478774923455209748742566329468606961150516775141136373739241059244866417141958691599445027661951519410262965232106587423063413344070904525023596507025869031251773620647404767948000907072738667601028755409605403506192411849577542832246100049670948673261547276686347634305884941487016142560720763627637996550700111873412825854194213609091652379100534115115192208867790976368737329645171508882284460946353468915502908126513958709192368210308906164203593144689101162938082121663340371468057142927696160223545683148177171134605688403259763226656521770503945314013645208883079369277733588133564006014363992259841990101288344131282735304816519661056076906364357088637378275709145621657375937678384111427293020767116329572044499762192421098481528131812858671787383902964359295445225653072312662166295353491526178783909471991261298563656771620444983271092761823120569846555310824912042988091661674943746816373241171806013400638283695062742084367691749876116452586839670664138641137556407873332342245773785204277287610495521529531034176920757015350936280598471394020425468737322022681926296449200243600408110907751498207810372962952469224306566023195712955696676579235241639152520056402227248533676679268826147322920739845197130120906624793585891603703176922662022102804311216078022702116131389964105812830421141832648337378548138304819518871459294149080525131775407815515146769703352641751834967628834126371664015737138867361035273699857699193105501401299027995740979578572371322646150717309479260547385929187922813643473631796509452423001303383677808652010943676940233597051790593152918391950710936857065896239147751650574621439009941293349715283149443399226346428810745299957565330105165501239284654277401055889416613380404440463092673207686082523588569283394967304064100008652057575636327542327425510578910703470669932580558319533437912314844275946534153901036051670778097232080162453798882604183460833806564091488567224566930343664156345787873821250375725626476904677664446745195126620671322288641683789095045695089467727924135660841505846484297793234817165390608411688730208001511578553046853159958242898957394720215870193954201932187985251029596341247215295919953670024627039311173741908012992370262802757466166370431133391845061535971398201747903438435855561099762487894976757664499553374431596938003832127611437785007980181176372163117827601042569878514442366084917891833107445954924790541027924375755900283492522159429114524280466857934526435285107561642718617726389641363710045685423167877545468149025874180163436603098116160426709721120103149395027220657514330911384538391543729113476099867959872321732743870646770738839590764855952513314849967427085373487445218443361624475918210953206031289760504723870795864648273803400897745684821787489964909352669712696762228503636798105511580202318068342768613741667713269817183951747419597522556121043354372970842788484124750203458027141044650089200210248111466598233869165174522391944211186474804534577964873554626316878860969234536824526627743584543628513610501763411105343019692237716618831273471457794375862477465608881654301989449788599597318843001443931370489773018672126692695467010204856053196537170345482292292733416870111562905329930354320314708521417595273467689028473563467523488683068597807732456987196146608227279053481792784361517683900903793772862964962979628959678090245158074233374820733500094864817784697645106293445198880741864676399778132524593424754448091834946530271716816206894600844013816668500732508753537023440246332401550120663108902628422591494623165587641653921501835310150530502083607430711139119230671443053337727541530292275357633456061625437237356428239709964788305538418680216654895782436697017687487481460349267717619388157621773422908504147872600073854445934514370117551753895143146901066902465092109422225346210999093750113123165158662978674507023532158186451825680933968449046909955099794824635961770592311942908883998004896088589858857862441764726514408783018907215551870134132960634784699575692390179956448136178887254288363418388141366738113643779150229424120360251513420847585170431308530748033840867281555945196792808893574749605060355710037509642413307113279950146193383303711329921510023784724433959138298644797282652384191281160601468534407163446317921426054190799570832989276603238948486261299106952435769452796370339868379075379914067828158224952784829811798804087734153342485791676798751281201902985350669549022842391192407349757003408909823983471500527909750571180936682724525817149886049798964062953437908364477694936613292138120727148608720654748965107687133627786867345882429607963525366050184739414878292871706489984168845750791440762273135904656449301163959671227395720150602798039174256663309374475539344726890754277510891989086196960637912101574342808368830474575112797598708638730741055677293133453436285756877296839435204204238192417090706766058496676467088330505415569750601298814659802024389520593844928303940068924334393033713756401219262537338337361517807757750979616112451152409540766093672467563860567959808662446692828796605330573690824583724102438542292218570003833412574453372718155931814020409055315285117301494564147002086463447897230269143169159164910721213812474028864859050320052844815097331816283318260811934260401433324468038665104651253073125432395374341154480409863016990005185782218452596956623765612808164890561112929230349975579610112414000816387567916308306909333688592201726738836848951542648921342660550566080744678889944109048667931892465164582968149782294830476732801199404596938880894929598449363569551359329473163562893240989930528188903086696161446995975449606793974525621023000787398148070631915100672958740126291043968996340851479186791129425196000509842931360728740536366538356930047530377840665785990773415826757310339135894076042831592046654744924559063400986563390768472076402504601423977295254805004508006094190584268174450476214083754976797764033214800380201875668487831428740515509459153423529062302206097281024128797293549351273100292466468735803277562303226048763396218999358886939162420962237057065486929787487047712889772039911333721157072603016308020871588609148316665735606181495755906813150387850813808727057853605137130425912665465957263679682300436816633908592246260489309648229153999053114434898162393123921841180030421872993911829166072363841667565792790204024970220011852004354275723163475517861754963478438017775316807215575946495220284695709868457472474968818549399043508018134159656793811723549197825802906756117650762598387726164221051434399217326122468205086045989626029459408013322944690631967364516292988713402444497946288304524346689814169564830112208187570844028253802960572702006352712697880703326105483007479779056286841075320806106560648001902405320901146750709700824097007261542363711670386149648990026790593615756886759988146309917952579939479696133480968521742279955302656500428800872599178174891042236603396044018071754202187595108554552880575400892375282767430243847698934276755736616671852692789844782824165239723183458631289241348965526413765855375816808050842451020636083102609028560958429233088609301622515167084217251046981610806339254478509910622264284786073132527896204754072094853977324471797602529923444271373605452120650375040309648307557759124096351702220315128257275951142854989108492113984391219398038153449025454393998727989377921036911485682365807057660979912654234285608392077024369498805167160279896139106676242443473154074045578732704865655089814384108983168716728623827433131164913178656185200789463014538267209984127182647386300231443802409581573692966090955394295045933669119019187881845932551836689644158277932364804138455168115616458645498467624250204929483573004536174362383169230748678285133738112488941123905416016268727111055154003379133462838122835196730633506969627656114706763658495248024163201815622956961173738174890547821940415143732772488792843695868093630242717415320206724005324051465540042390754396737913417751833924989533716675849562359185607460719258524891341453290394297613914719690598174977804160292997483266847964428987790313653352818511049640057334044911776740746304990425701638188276901478655627301194388583803428007790851875459739677460408513209420217104860569386891829870815429377758255589859366762153857722486944918727394555452225455466343359332636937645372759696513806963333225610707428879088654612856061334111720616554223311174821101718757984091680290319114532118899891385987260348998592534835898620766281806184248190547737732271241126914753143037108741039360445651929762486406904222246264485601915777693876529118944023773290973670310572298480032412927585620514657773619046716606563918116180040171813725391756963388022065823913335573652992371197000714857293291833732721387030170362674745535938066775436792234793735317614664739895176769575259001402255996594519020785298256333972165440808350135023896235898370070835201304786258447425727992130748446913970026612590497406640932614860741033228655968276241982978572967097470377701340432193096592532577320895663197311166582813729172897683272185844674723348484317749682689451034102355000997099162757183771891078176511234252551492202500438912285527913064962893682018694177628421035821516047716876511243638881840041791224152903522940776186056735499940430564131873192931729329241265974080732760001035791907523277011269478553807393208438252096078526718796274959860255938827250376421606805939546965733432688084482734767797640320060080656075140444670730210525779174154580219762300820145684550058133010576564867955488177127213288574023471747481543143044102687518225011025115553905538231028846771412477770754099064154588578760490776015789155279799435499625884046257213861798982272241858751544429678180589763355048686034469064031499959966139224238277324757737799810821445085188567983384040156491748810861122892236631102033270522942862460301518085765428167151184567303700731466599772575741211889801312610580229721811971035812292575195343692987895260692090540324309734582370482955985679665234348978409482951295763798252617696091867904431976603336791342543752717251611984410284082644307458288025083380676982906806447895095328605280084473783865062403607435490461950742932774841209317086514618794187326400454321827414160089484717533107897201554298316361583192633271939182636481762278241125351587509981189481600470085050927284329358749629228223339212019427494346438714775685490660998496173749006173522175965592412325398804590641584308606435671543934096704648036332520332069180654533341024248787008507664463258152994857167457815137533950355860389164091819986551363260846045794552019538577963137948110061735226116698457510565274027847846284072382229305130531546121397647950798714846460688042541692134836422563692958460501940389883355806151849345440192115446817523146947699518324635200816573734741467956203084867505468781361123751797952766408661327983708430959047821006189237245642617853587046720991083399061701943000688185115538575137803782237780467618846519031103947786275901889256884829880344131391307159599612421988590798589819139087255365152573454487458372894980864590218470836460666975369648048933804403714754231218430792868591057706359555286139442845328543058901238953201370520362018588876032267194599973905351158046689563844175102246072956453464927463260546454864743133491571440654498225555189132139932283130858262439592016601662001129911109521949546140120221868386954401776226944021825787591267352155491215590674781662337574395279777560756507202757039962081635834971623195709524145582772183561043377356323907109212425556867702813451445136388257124876973931034723458276115164486105703387939529702233392214720955187627858223834892332143825346499506074020237976492543518924151290381925165727368046293487080551588902749619997757353007639295579589819607660451588056395961182960385069410833079671008046231245829553104153073038180744608283829578043037835727551770969713002126120025654668128251180261189708247926407599417397905010717267074912451941343510374464342096163839040609988055330172212265007527503722868541131095818657196438545819002231536676998207351505802319297719060944065540058701344320820559274215322782131364931960396858924995642654644077157203961275435610550967094238537125929537943166992304094094670392108659136346470095364981046097822327768042462816516960807012407417398620524094937190334249504551569872490706904626314374784753277960958591417550423097513616574856039753794970115882643949576135265717395363762143152275636935614030112126948194699564970541644624981686122364570509967949448893633689436405396601520217150571862336977434847036099625230852689406965312294034986891702613879157465455551199949485317803321449223821224649180710687197911066376162061234701683828682972933348202200840175286239264588063502607680744819387483560503741989315714487109097173054223574872805203771391001297972744647465344873857951215863489913504993928982110936275565157224388293963692332695691880322816441129900726737440351646518806072354186550468890916497702718700150055148968536125938885875763319820107547566853970650444786817450915708428833059690627168737363772025563655101808550293057830044717439252262172455565050944702432732413033803473104530730541299715081629552616874617805308456275233318836433639950885480709330532296735354131894050841056090316103479673771722383680033698565832129651135016737920303398267906665007266340355188528503798386372751803647182644171875349970874784671525351386889902666053310024824432449196114275637318061869668544371080084570968892711779860475299024795991984370401310281978331216248725884881168896605655845563127406891851357062096102568923558048507908053456202753952671672958704276431154474980539171732777182930507844246744036182537666926529684365102430731193273859969022893826104835414802157776789348023974422591898419151409314332568408286982548319462414287151926176094716846421805483126029242512504690682560743814834744290221505975922163412760812370535077556125547023477465579502722444890954692637568583582251974983634770415507944274244238953200012601975189410402285352302018674009311470391674817242488327847059173500928165953187742413773555853073808228521757587979548556539371045686877035210827161365656778295514747973538841331662081892939958773720910949322688807863498590275191586911488364717011785142837001195816748005657380135448110870697406259008802404502841199220517434977077426544988795038945852256204118741196954245071551979308568862376270876799034716988996793128103730018703013840335394776641832415669719807226444280307799129049777206851070307642257229936764675968568379456118715507230054154464869761611571179556639869541357811653173048668890891790023472071244416676602608277654143403059053665300469048729164758857456631098187442575477722360944597881824634690568781013033082777222836186678528535056873145870750173969159567812677896516696009527077763793735328367662711846896899919776419791424571766700172496579564285224602129024190417095119995163545986111435898633275592754447687746672993662525330874006945257106139244536434347117138424479131834291775890891251241998486133634451688126859869335697860521531039918227301745107571092131676112181734199742392773138165524112765077860230434683469482980347610217855295985472228020534226339227372541463786048257979769386154912642439279812310349415892677981110948311214681806823137944119053852593290825428361549235920641339161009923319124403068905334612087377977108188247134196808641195441809832401239520839312675265750632058819565932060814247373617229956722427601767525888769732098996442654858399805374529113652198834254018745228592374033622392198055608416610056627709500380880375979252446738285254577511970375381314423862487951258753643114473496794177530515498054921009327145262512674109713588092846087024976511235659635599596051617847684510881035010636578140127192651189461099608392230911387685538690944915494109716913851767190854376059875324863661181696375439942885801684611163723839443112000546794772935819984691646255109440187439649254367653020431124594990317645629192333589337982686730107312838993725983674335762874389521319722914108584212273131220090003398756732179279392772440393305818384154907918948624073147474907880085088169509483740559635158047093071393434379270022669993843731589454215573410981388556120659419446941429292333010770907536806417395386568304203821053603440820273608502039825864593005996369579760959538262726482162499896959245232802010216543852812088267503050635180835202341006267848819053668897801738605859736990263369916863737300071438236019889359121904268156598570328426366209232639010316927027276103084531634520332876977044898173549633915857148283524511845025036021397577449108797800183549163037807210311664868969792782988518050484665429501250571345325918336790956151850739793814534536918559909163123068127166439703058264662182920325529245838569360174087657237861072571836805023825701854288176062133991962398672057814449011224313204635535047668779295615222089079715593078989817480994095217709589948258774738123258332266072263225041903012494900550813708536955407472425099042463642036674633798905496352507574924312399572890721885692796649773674794508120001296330635979065923486799971704032389333172768739279622185517453946707146694660480724214598822463102919919329761866345112650837387640310401042653356717871635547274733302870855471163683462402379619652962144512273894036664564635196730995170065341725278751457657637787422333874226840862958077271820921380666949106500483829393882493998382185760909088116252010168014427047046054643845793986208662371497311895254225982819267921173619081340189286337934525851996165892052824509417910041357179421927330686524234697331060326495046212815806569967728641928307401701891464145567194008589250523594997888422902139530966768357746574778795407966205150106424498482875942878321999552065083201263298831286892980122916508617505572713379250624662262905260585440351901040982828833327189002065439000443387106086364943330999668593790517208952130513985486306556460300730539281198376109264108064491837855136917821896444657097979247142624476767413929543639474946727631062314515178975327499486637238774640472386999946284343048614331293908450572618053756531847989077740909572242955788259491902232794545724735372090651732904490390246117435899411760627971210105373052632252307070279898116361045484561183522155810332373055901366205751988217253526570845963160836538547223353024972341002309799900396381370451998253328782864402333087329871069873362949099712383899166570055841059074953571978668355158792337713634175885041736718335564214869094921497243891043707381767666227769888506086123978972308347544050985665134311239200109493760467086165632208054744653514226864284723508428388911649659101411125266384496719233372728355025676941379432686263179117022099807012398409253886559327628109529095946304732091934160775584502125706123750171838759904822769671695655058680654703054079837483205140141220166489940384416802529053200003052791405320251868483293387250820228937950157939711062063437506934900010278427406004074865016448398598814575366210546085272340745457264063342716857960335359165604413208668320440054704999739724893898414854919178979929038356727961626398406406286887639385820185077795575463596027636417371241736780406588729259718789559550484683715663114104128259538961032929782328481855652889349037509897665229972213413069929536543780045939404408413300901123625522186959735369531381657274094405965615293450629502191698682359896974514540418780693033361628114680286436959948057886234178086627954716667596368453990648984606236559841868716009226685483762283430583828163322074810280853887172976225124997343656574666711855477043960644975317861942601579315091183675851192869858372521017035687681169624007721851235938474148492301294819414217659640574978133809773231819613610404711843318425424401112846323568872169601108981341647787980318527037012216471400601443335282333504652714567095309085447165331006366760153266955163377964466992415939965786424305390737816661778799375509936749708297060752344638698030481189840242662458211458648497490987134641260494403247740896324912077510012494951013943278512457672774682560871874293457209929816154625038251107870120838400386721925707727927259253705805080496722648665065979447735454983873633050667089717922287438149449355785266768108835210274152334506850304735525983272710622397600562652375042496019200954611984420129108882992851722120649025668196948690292198808663925989432395622932538803068129709898840799661316094948388567062644563241946722727332720538217237519818969260079702676072457582784375738189856451149378449750489410218546254272568250374727101920764769412098614949921174138120050723263392079596579410928050692055365174278365314313806325378652839085592748045943081132418301437133846817751526252812604452572424631933585151425340527008866499635145540965350593934998566395595876016372438690246478858759106241720457178397586130439641308929816872069678989058964286332077065055145979672999915486440035159913366644668526647793037787050510202450871319577583182761895383293010375013270174853941835444518123448309941715045518528137131231834973733831814814020662761782456019831543786694397581027309328214772408684282128793085380094214975725243793060024542722707451837189237606395248227572537049716418510160472059288537100127967669301873211795436065737809489218337577964450540573235791891294199012632969901845422800422398920342181963948599105862487447923940838003817622383516230165853892912637671955299867667768621439094547156978621011728841033358610798473861495006970928644489596809941073431847659795183613806174349534639585022643127059543091490304994405652959396413977232707289932601249043591204975861022287944126553624139144681948592985515736828795182234857263207710303604502478693767971380343310098437761072570964471424351577472624581428206343264916752410163809170364850643323347533348530875935743809749823750663944392699798389543427696438571842451688449362432078166836881056217123348999315840714592040874614327135137548359710132602589604723000518105605994560548682843809605321007412096575908759226980773044394838174838069746458617229640481051204357817286430997531925655622741720633926126727503392368239665352629098531908433320996392227950370398121367524605667297777404658842804073328344248233329577494348520709689382552001744208887020611501800982481698838822871398210097276770264829945487963349022113822965674808513146442462128653150280787709359253878553429354901192453746992412027913641334564827303712127073319670317857310065172341667708604991261042741696315236624702141811204790248414283828176558837907517961114733764657843006462680032894968808003596800056181703731299039228246068005621156674626823557275174556351497283291120316535755025007164633778905202691576687550917400138504478284968667349239576812631739347560384698200410460526015898115146547183921791928940892302503117818525845355249895047499726147906474201809806608445076913035323443600684711619258600509064139273902533774919136257570510961517929639590943714882776034732449034143266693490107538968401707670368204552358972281773184212521805892489933516060722359377663686586800388359958438587176706686265435832892511056544862842283924077224689703822069671902393026800331615652673267462694946546774129314482918944455373746067514520441175423514337094728276565792598017101676303845061750024839393190892551220688343875981270333284580888992122783651169124961316413836261519744631430735713292997193452020816789947573382476128234086031739337758601900762755511720541093896741747723501232446574497266095123985578232614815974960518286517264564235909592656415711371226204821055641729727701345882905328036043941531826613222995624268504709103754371478793911223283988681773120838260054410294333581053061509302374695729113864731449674328815254297972935510366316239576514183291299851531626087047293060915542014758422933615551354648691608467216276485236074502260495786680112036694370530549527914922685618416769435966130294037473684767034470243596315206219044230220031998724661056617078631886872338115546914898777383734312429504420435292978404148878348923067399893263550909134553780565503327781203586769365375012242931467459635723195836654422259478310733552601094877068802752087521714241703208456649831786082604657677175876612844117699005171968081224674172714230803049300534268022076647052031747122971522200304484842711588461796315907151697177043640535777719990072482746818534734292956236109371393947886791966584950016272094940200051831815749396687478948336727595112427316553860842440675794827054929555452020350249402514278925131503771806884725490750037146743942647393465407688776214315742136052509270310808707378213090167072831590253889051177298750025609151661676904188683989204756167297733464980371833941760184283072664336265044375757500223458747147081423635166652151357525104470548422144228434291725980211703229689094605748507312098552945013159773080038569945974861199356695468737984299880798342743901881812697792286471582348281305002149837646130818618376889571845353587982570095360722725736631640736575974811176834465299088658144846175051416108024615657247048468310472033874951983882019361081788082695532091356557961170154759048520361422028271044106257042046342157871555500004597155374559131491470534324448595351748830873155525140161901589735181501395390395603287166929433687186020613236994270705530060262692321199119660474588360816545673165769919935404742707408313170007628435098241615841382462371307775749678056966662874685761688940361410226609402107725366783806881165711114566060681243372592269656255824913619744396300069206052488980093931070942220150049640452274801451754147229682479308650527351148707248240553701841684200400361485955726644849940512515875366334867226037004934792091023664737258916324031193090078108027643301678405263934439775323807893113294702914812166097159178171304030989508987779812507535217954419309421178047035947941090690085180411845359306127267115986358393709892834875910364294166177458215448989530999834330781922570312497836576616259072698780755352236273704703518850807442309037148692893556961234148883235857597917442232687376179355109789226715114627665681935653214682215842660916662037141559195486342055837988778414066500600951200328107622543214945379903993057238665161900927809453292153483761343402218194449815015207956820753430384142683926366151503932420735734230869263386760598689196926562872760160190137315134435359316129840549175192693631921601880202119481186059939806792101156670782106647018903030364278993433704700936772254480401027662204363087592450270281089202688830065602443010934701481140908059193285011398499848083538968393241082398014235161758871332866177142433545399895747547197229788695590684252595281383668805406968042888289059100847330113025905972094119059564471316714684687022537571202634543332157187662437824950490632313103551571425014564697494586792275431366186336337685054655221781915214108705746590391253088533191905940157099202074197690276262303174038784349139012542610197820275225646946384911793365803694263577360086050505651446213893656290389380770674463354245361149077506063557365401399072179734379942665228809174346917869374515055346976498497080708739379759847213824879056105780276294161439531749429870242344300708457883493736294417926335661043079141425697227714807427883990519014325428596609274000371800881681977594124915639562444252467739960504814552090754223232393215890723358170355849593878123727072329169037902919719087759240894457048216523038741197988639074650507569311303253630543853872072559872366742807396612305711448071593188749468715511184329293372457794857142679347693867685489461404470966544563651966188370440697398879662423559500780407640510477026675153634893809542780224241551708716908613265031854065110003883398617820419826224736431394508402112716750344923629740421404897255365280493196797320049538322544235478772912989621285668199399868433527942706112415068005723633751266412125539721700419063306337052898557704561134416875551808983104372509743029169164710349190830371838143674387491585012007132220476323483845447116559436934335928687569348847764254391192163086308815145802312846705382368742069913323702523329202500644563229724118956959318999772394468066730640368658816852320865711341906056306523024243197206425089571537001235758779571022205829593202286042297168091610386083973142187280304984208796211147770185873218776232543319251845387662634852065316088401485263296031616049485951152706343862187593473136147949244798920515025190108807598093317468360209571937646315024534614774821772508312287244222630729616242927711497122531830409604034621312211774091721894386980933750433662456126465878162079415433294319401406124415312366379089886520665947967488909193560194673720912618480580087873796013693009324389009882412707777383552018975206627130078530677210260716006977135174263808222148604544739874020580145684623778300054789848399961600050513116337046995982024659970159014236066726331656320866015297097461306835370889428865738930518780408770968755432664959625883418236669139913149906115435732283252314302048365456037201985267900127841723506815593891837332068306507934364304336371516501085418280427480216822948691129309649051468065233442777452984049670892152064451379748470141679074988975223242251571787756835691563172874707841911053029433321431658818722356517079350497540461787711143038620067051320922897463645878707684275614626282617700044247525467633012862907100363104336801900523213775683292419517673176593805868728870422484080238759776039091942554925594636620940205765389927353300714001008987178291757836005526478967559127231335164306088089409652088138171962863895408641976834638354091691518550695737681892921049759230995947315405483410471797067169665928684090098060150253754112863833590127418830326951400342925311665146998974298019699949628699318147813729337469034832339575806782769841220022131972009628995576175797112928852366071326032566029107363441033571553122868391064168446080429654906293618829580879438392321486463646615745016086271066399343459928038822325472909353402448433459154622572938389379396964320010422985094048272664071652204974928289172959708485459199015427418004322135118983883344531972531632183141211481470979035344409551318723082434710308207006543749395834165620445895835646856868754051664117036425129350239927110510610023767643837086183563026900892774419918911736215037255328518017062869291851191768972710498846368523708176908751277515006221875838364735121433038032749587916864212836392011056283160645421356098617215720167623105306292200513785129065490557868895024982722775200666220812607804567447874474946927049636002592007487061455168758528062271595306688972799621202078484613502534880901260423255114860338632462998264264861537386701188505101974259916137780830534700380319899338964005280412198266572763512629935696128812477776717115369441923388590607770799621022832586425309225741199297421726511307645691977809015311793332573679442312263513114131100779805049002911115377857436556816016520692237819075058947815806049949909204400273874681719130313164720401472180394393342025891271786780613965704736401929217367470038630894817275983995746904547427835154038746529057733151180374785669699359443498131633381703080002034539178751435523249235394910323226443951613733646537540626409145742307865853067595988278930327889414298139920474174182937733719781225684001512396231428132678090602424242715387087268930389880293961582973318769880942019113259908810944626751208976626208169169668594321234701891344793811558603452110983075831380140612383648929202748181600671233191819859188578642483461789857360622558846828163860967189637321206017457349268028999417541541455008211281123056338688530434639361935931980875785760211845362338468492767476063434981852372949572019450139072421359000105709562132149068648700655442046911915959148194849281896124073259417792475665077406907721924654916138883370483421543545047746329436141509994172895311074458746538069249867939206951486429282222113885772207251438989569105183248975733238552815048250858785874235531959161680617062737366790512795348585458146611714921705177693639243001691040729319507942035985445570773074448473101888273416152636304855145686278665824276082332387336590311795566825336337570842282713874541676499021749317303062793161112383324785019874823280900185167825924095596720047418019750890679782271414581638290757666932588982235702862913622756509668580577827346808421256742415685361075497936434749883311624327391935960259394999701441887170217409016237024923703189042975391893963960565916847540680617818639474304058710415932378005999095623776615478401227489979867674335313137179979005744563929358581975696658347333061253056888399495620415649074865369393393526359825169182797781404922769060783203584959820443821134216623022568766583388313305893463505866667566282428330532224631899678175696343949283862798462184103635953339791912026687663113086949190400221553507292235238069027028005035245706944899235842484171411264340309450044823407391929365524396807223479870632632286700966550554411697732233503522361066648170824099655362960379310678519999084459553623934443093553343587520705950316535408624761294044101781427926499111528006648423131804097060413919677524600500183633495167603531698665059042478261387316335592642961070421702368078213865266063729753450939063010323249321412801549955939120776867700240087017040376924063862756630148798006662284234193191918135117344305055233686670339180822178777937021519243258062774347922971996039215532261000053548648151120939797379554962343280429842903517276450092745916653321103397464739137693044363154198900652071449706696401225238919762478709256100895749800310007900524363956044013746850132901994185718754945903975218758779607299821176257091898824588961190649488402300347127974334659531224477858617938880407297285903253810366442957676699914919528377885806820807780176801102249753766744761862407753342963681325932263349273581667092588355337850764741728647413099821945521248442298814342869308793125272565774143135576667693982701000831458433687288412174402323331693643398630582537828454708659385624978578769613121746923205872189926721528881677361923629420195652181761105913448735327623207544097933893411613658870566084366680627698063972441889503397147467440882074879574305480375412578726694254787940919424244736333163285365035996280464256797180264896105299277221469671115456936416443429665425653590440287813052799688158882795879325124500173807009186815250445138606592453018836524910198801603922886753945679322679204551482723041624325196877330221633071115752102241416973951091803619117436888018342907599423826757122934715117044528401594867371740074817061354426146477018447239515707006841341525065259240039588341546161424651860450847551159118891056428837955675336110828565261169059168402267913899805645525974380667090177003008571221425858423326126213381714756546948033981209505824494768297471446612649322714467582873032546532258817809783854898071826380372033012138996449651322747485199820810317727800952734782223706302082528916437444135823621861135916986708705301561996720443628767953175364766547826895534886130751651401083145649653597497597480023947024391774603674120774830737138995688898846507916971684679373890853341471019576944160544910343220430943194023251961768209496119294478030274391242722695831158651040491136945643805418634906623855193724994628335227087467877697644508354840236540845564387209318425664455280472601276368732883462310116797918237982538026486492861523014293564145223864738302624953061671598355560217588538363190698103924582715481413827980547177775386120694869565524409179789055505859431166056256648301663556144652032574063612668362469517960908322832371343132753964611643243874107702958324437029510378265411673451240968067023138288007679708639661309179684790326309754931835047699993871696956092943855497478123437556508513235414916072622283194719538583486459935555706673419092504394468804813464036128996662216677265629796058237057962998250196552231882524915473173896902902204851388993009709702409480614235869373661505859707609596893415644333491004321876768001784612077325925340358754047615193552551877863052441454201882633680181635486241093906888692217175986966275294974891752105420452437125961559616426326811066494431925455525713573886717219828449808155589542984302818474252822601754256321347928787469690797507098551657974093938234873976490072610672203096468167685161901404442903777027131863809089938348617414979690734653533085502323068928157956307327759290042862736332396320220283831011928732592813899297016866928876583731979703241134195650572434263328333567887922704055137735286854960706930047346380973958842314748430758085779809807972284845514238109357643621508144484629490601113492407727929553554292044916313310527524558304060410424547717968111380147610817147473110410763527896221392210907987811384601199559336501507869001934307395399648435972696171700959254678732952004141952770565351319178324171476456470093387106961120520059874471483104429254260273810654848255226505933512968928666733968125750779076467036580403421173297334249649068543161251621232582188673734968724976553533607179578962586580006260686224004163170110448776677213245548381249255051016298652025208859401506913930371844738651665165256825336863801586129090348473683775268347096562664133942466824155346238334136026104644908264311926574238748729460770607558294506000270289197660026645201127341909798427365955641228410479418566116807126111949217424984466901951399539614881990275757506277064577070372508491065080929922809042279791414083140426916294841627083080425848559019750523397565013632908572837804934728780334483156440048090029108100481743934226012277030881097076037238300992492796633753092998523588745094039502560637664205963380740209833883399227118651743551109296146674408525364402044789282627388686366867326530378040858461130752098454059184634666224417620170127143995785896381655961848975483941376071773994635115200773755697007592509237928052108974986321788105277351387863658989182486022454712077243624133167680559122218352758093068331667905352268153812242289164655893100522496725402904151277898940495257578954747383800809776274751347344860466044239058785677191876205727372354675687651931240419219681724421630488520982361795275485469135084163863243013891981799987250978962238729153086832049007948347364581573301998280869300023343593881128847701794882119872980069503237296715553885629251398992870004009406070039306607995592799735389243379938680063650500744272336015913637230393730096878032252242884651688397907748632315831274865548569225438987033139265237510432349236508430429772708107505223981519032168259745981337903765017185441237279648722708218438246477146132017108337261570275766052967182719338478296669439108428435449612018630349186810420056497723100824361093368555757868932897882009985400904352946112030419714927950637981747848515480144469716079734971845277047103058252163455021075489352850310698400320322993653016200247412908756278209511497571076600987404690559427827974169067899916427679826388532501968124153528154169880133971059240012339565365353732492700014626330046030015595166705780193058711775294623756405009339526778234505856626739387904561500305548486091625874641452832158942836802517412083910644911345523571399659623906124683491037608754208127509204718718495523188928546107790457188246346825141814807949028963868002208884226119153863408505735902143737803405414814725866700215763747295442813488300786855035564936357100905811372274310148366872251255625286405676656374104106952083263676214046782962043059786983464570838336145093722850988087620685102617187727116952714115082584269442360524734834355871868892115679125824640761467315649627581278382919011516048916152751550044561926901575962596446026776640596640457546634287836765760230466798806391263877863659550119566304982695555310556969447471352097265146410347662775033497824649053893101299753444939393883974297330418277370868836998128873866003557380718546161912378777816816845679909042112118651925692392681397360794059216112272999223944617824927916963083893549217029843278258886726354552999215965464843844423756159691133601450000091604316006876010832322817065769222812442880052203699487010561866452681693007117233405740442012933237743002990281514273037644435296126490795859538762259667907053651509785984096750186508955258403669298417645992121184976139814514166604800406480585427286624738434581709563677617618789761809677386250177217048731163017790483699142438325351618079518820061608283667852897917867250470288973496264418765517174606086433452886864341250723069699834096742620582072069260524012753290552121094969357575429793966689821667626799954472821954089670026322574495008167660850933645710530775490172473818663655575199756641931642798781230742430205621440905597462084907071066483084433936977070959103390984749322029861942217045104041931310180476628439815437767634563009605767691291073378539883605551419216623285608029198595359256191008475463320565833145987670023228366582525474357931673121753771797993394531966067211515817864739189627880251968532261863811140689402651414527082545542289303853596228678362383858578035279338757101333014991339783376967539525000500615689551527667865942641661706758043163956101022929193867482210111050371639526977326885234807394162408983687102584090109803768584265235438533352487883795015057997195737446790779113697272524615798495920571422747173229435884721956981645839494469649067265717786059855635304084430680178759224392356687257449210859347236218188426006456763953144743102984892733093243407309125025001280787333355850377318443417876835103497735791547139383641927548857496997757312563339071977771870712407095706073859437237032052369084637917688325973619557591607388776218713466693445490824631283907451920463611759644499120383151977828235096468933496036296948925803449502401807158881168250215314282157823055398962775752520973829585256877537978048022809101832820387304888313009522718203397792700001292148585562155476720316429208373414297879876187772454581926291756916287176441668718865432023338358890366430058816939730648253486456393578639701370646205976429620326019188808067854531912420430014099810335960335432510526989337431241987011885431854473107177297307250328521994957399671785240250643607507988667461605903500062963149857461480239020174825465583442443184477031655899560805442305673669894253659863188898943896266385102792970152805129155075775149117495211842290916030573613756025459977044761214446665062497534632805961244310475341202436217008085211771510465752126798948514953375130124510420290745410606037909113656056295037743078719930809774062652867510290136888160874030000183900469292256804718017594658039032332627964259792989535560535402936274391365334458105938670955204244062364095407678074772526461006881395918336315019529041226729764449793400975530002648526097095654002633852487704644854440402759747464414052995068447355388266143822536619562771405600736611722706157073720631116507625752286370168422693628224000937540420901613487006772631614336627930336454296808402254621135406441196864203531071117992574203429413039260517278339500365260473749225762201075923665198610396073050693796141416740353322448952448757195450541770484865370371242122541880548431305204403889296574589486616687433925600421458406724333569081721467281268614236319049018319276232190052357220668070062650100376659124240079579731779453634585506262820312143409855640073528347797571416057538550472850954175044214152768530088571419968385477950869121418220573584384102602601503180849899943665264346255116656133807258445337125854858862230248003193718003005974896525243233854878991437590280960934857070963824973906304410208646403730375928821161412414108155250591134839770553653101273072709991482180434734442576385417918746957627102886768815984679626814815198809712213608054896340756165020693978304376171824575895943934986089584564207845977596112694134141131053282437730510821502818763085997614157803522810062199348579032060224488385332702453289100230183313895000328425425201214833805164254266519532791301921506855206092638820193921844705103509047820584352272137415534212668662486456242108954804722340734604271189063626714509127212960425365732879493711691498123282626971976300217317749909668154464637514933332354043416667032713373774280368096474702947605396983087084871564804573116577900709363500199017859550381741337460273726639614563523996838152104450826402488506265536314192348700183971045818084207867562101280504053629478584359618765578836216803946057008913998809106055238530274721391178372306762145928282094287413715583526854733407129599253010803105556687523173898554615986089116379464753406139702289249799878032066488715313106357602812166160419643496034437859229861699046603622290058244979022091261164639222417280707798436992841858694090892546815903588735668208955365355411800866011716175263643484603001345661704663433295619751547802559390368294433493401635281488466685466044684303524350481465238103290620407351482916851062438300406840529660806691505772006904769773379698154847455752409129989333209535524381275870599978192347656862166280907637947353799911545373067442209122438979417056679335443873906185026836274769944308467647691230850877085210981038096651579583182138893327016983253785997304272115065579721522656784460398188424462460044127712847181662216264388377389174339824643483995085167476634957746280071710505616422733612412246963986400944828945814294448122438340422277784458934583791653513212356164923657979638265593399711827575939374157860850189068638394601172156969833652988354925883719132942723270134798481490340417287540568650583485175071864717366945735495238923369118018618809407674923300670927887084729736459487399913472803111081013914143477975788363770987684841240085121631530358592133247144531713323352779473903712900047416098472429220397793914860009712279819598550173371763629176932934402135252334417764105582084476880845712176972770290310910305578106815682823311708660813911967446736261455019400089113376215761921971844354913373469019938152155681349613102825693533271739185784512295158249134640977662704228420582667248708488588452951214160965197172906242094298972411450518500468513710070605931519899959302481126662807746841902094786363756191240962572354829350452242455774289802620487749677793282263104018414923981011168408515480096765252270778766435303280800211494014096977251772048960362542096629237680443286329168407654340692767720628715327327157572593199592205932935696352409243150534413297297655424837330933177519400879292133565291957545023190426746914346643449200980858831328540006290685731619531178852668048095591648351631117964524470827706253861732564528786876948588849048917202055967003517104724242258065941392047428006262913194248667226122891561227443392903895006130276411228453841501392041537985384150165767755080565079618175607533687642037746001057916627728027252700207787132724081248617414716531704012632895395053117047650829256662838793610852686243098806968581969356759234941616116673122393133758170379360303470710051454028768601568999263597151531021720801387470713082003860651047479985068345728847782775487818905657677614402029387836888300382621288169619814915803307873980069768678163486149370552974416893809594496030851706221869103018080948372133134874558711700848557998875925622871981919161943764951391737841754393529987859960269281153785551863969459377292084448714330315458844954561776482742245993759119226749273512127213436701034004827596896972697169595442733101040158002258606729534046332801045513478186956795249533690119414756485299914579216758802410794975921224707728027953558918598477419665380505675526935820281626388776899883243030626745233829659125361328610726099240566634924893014541148623307261482645359638741688569118273847379360203505437940548789420063010208479388824718405907120576016169179025277820466743355815809371019568622439827263505523576610230728515412523541979925200789009873492724124391567107684417851945597597438924739198419631820607659924208609161003524455223158594153528856993021829907035676428127289949713114823305098529427542862174658225228187008369728395758156912324088327417308067330586496958913956070356955634789243108416777481203433868809887582834518454240614202172597453486870712995049776001423653748433150545367881366568895090523811785194993760443421693103850159073962272509188896193149729057673764136180953358793530524851696472303039529341284556805234137184801696825417457235684081202188191016287516139549545491494239320407200598375887149083385572568045979678360243960450830177005545846371274556261540460987538509100507687737173784001243280340069215516954452045067485244977051502944540074032428452795536675144938534287177606310065887203536123157068022605684603438661133118301231467804794920621676327265410673366119053235077374252570636398722024903975558837585093085880219253958950005175100131293930094022041276506217723076879787878878446797417029478018704445753871210278531396478951415231740611598667222707401008846042818224170075961081229715336460440952492523226020310732088325067165120332825519991504884630670175934339190981728309873282676951856984053756432076773670070963594529343501835322607345557687258860445849866637927002217828575138249269969721467229964333957849105065465490111419123299054011409431409802185363241023184063571129303979116919886678740562038553885666382513542798314642426041489828640354681870556237342348343847330138592440912935868671220150387813676705303706974918522076255035274089171740582513788362517935972913626018356668856951457661468883318134422390982515620151207352979860089567430745196552380879713363066988490123490724948534699181387105135076621868651029538956685394486117056695232549325691730231429237323232291414703651223371860431767957942088389775760153993387134584840676521889150767210022540467263010146013383001185282784333324354418132988482904039744086941789598508332007887468922348586340457971262820343170325546179073937488415991178395605942088680247629984131083633368138341952554883566291768878915039650871541287799338580703389026212012644552750171063038128854728381914159649650052110873253601919016384947219851454931371851135494691473715144082781476978866876321309632200820956408322811828477658113341048036354387343377845577786495805443395576728961816971889370733045459284536123193067155238526052898852476703192542966357244459857904173311016094715114225796796734931293416164608887878544788167110065893007930417866825402178435203414648987871927191317635908292591123398840903678182340808181665840323166502895200910102829620822202059117993408907857017872638484990136021179909135858941427898104368347570020075769706213117855102512445613310088119224789471837462748140058635516314607134279944703276548978762115183285394929632620072837893174091817417033112149093914504317794224035061939045164579119522691907245870900883084176361509937979971509620304484625807837599932662892784400160042595799330422644195648598225672775390968062149475892145096446792413555685288311465077552034596363641938907722272566781572621856997995683960891766024455187128541261135928132089851306711633025632356263711765076682464223707705759241573300104335201640473155343341854986398550017152626001749679333694667117678314754106232526539357064911055365907733041927933550324788718439430741298053134602267089800407598284255648854920356626668928798893110794462032628967733021036907985044952071732526044045868305298224420500263450091305711601764861077409390502496112970632044962110916112534949672863898572899744723848101397798553366443278161542343078166192408230931361622649804232395119287999166261015212248255916578516983775929906159312594417992688738722466621492853158397157192976154550827214949418670765520031234414578575384888294471598981149726174753920746028604547536086246708028541791178321199552197561405158898401464375923390708911530875370320391051973113590914160420769309455754735012143575846004612925210553934916030542535106275620909990334452396195269461852460958646478660836928695640784627584253124132750211784731651066879881399552536401761958043006504332442806961429390198995139142248269390033584782080409946971963644663406148535845839581845074289799448903230778390094461778094907259759171999630247960414401638814315741819841636457641718949879038865687443346310208767651014518461765800866835928442194755633465433590394850491759644687769478182445740401191027404537187718280755294827939260331639360038471220629345758805672654076163346278174868417368565311342218903862200816881129943156556220711980572342945344903858383919775462402128150522202264956810571541785503868489280805094839824584995398257345213990085427120745261057576953029707503808289876401831021487771388673669734276118799922020391151909662268249351454639616930812139586683464062755398965174506285502413975892441853016248516597237172397629570239856162798190595636048041099651722836409541978160615729621801343615557053911463203948333558149144283622972937707948857008456862271801157163989692984987442326645841715459588493235465668440781521844364560927511384079427289690603351460783900192461691362781960400885027967392937044400597464215455699543720689129561433937868063850592214750122305916754503398650486514224384867037860213554480269445075860545451209145563385752901620935662711398617543382093824489925229286324765926694722465780691913780363666377755526981834930517165657940226183915043219776960379843664586799284092513376191231915203270493002070009446571899802627657269754114323100689879616315209240658979457901723901990371274130213547963380389813368720074236334096374336462177424690947047030139570716885668504929959409457411376013344702627529227568463744241019680345901182883591902001313170449915640314002023001491188843698362472194007984498498678914048000689712245676218203262515016057747120856852813281038095144352604220293817800808967039624792569207977042181377484912797913067167753210365288925077069463193419500190532226365958653610940378377596511141143132201811764813745982130584314251491698235094509712972422714729184889165239809817703708458405928304523629066497078125054426179456938979975541477332448478865984228545181542076594520699980818826862423797680785760735431759249645934886771485165996370262975709698547899878166398864026540903661600217969144757998565345908479276988183661023786933221139403194986527794358940387716104506509541849143758338930382005424764385071657439247916112972950218469249628571635872153320983323553109159752733533350932888672908183767154156302702601082427649108749795193637150531879629245046995394408461808251698033153821335431846846379844331284529538398344469666277183882153874883535364282447772765294553049671745731026401651955515237846742627993887499830094606452979780141181631919432144378817592132844427859015835668213820097673623588476283883727789814997040940307647827241262588282403574956507689229815917153500285245359815353166302311137799461664044067683975299941211309216446279969636259828599702169809868352470733330714566435393544674491125775073553571720108081820944216749321049360474627974770145070915744789991597058493643887167190293103595736021441649021424475608968027574122790558036420781570122677631526986519694954709596404694918409303145196193110632786234227821432315481912389830052095427712723146949503464482013754265308637584788827648519246883002891376181761901178912446920754185281471615774330084061710771878221591540175526455869629570394216882578137201226421234652893673560650764305840580698067603763271880375425171143724577736377813676468051119028714700325501649449637036620407832620819103508448514652732509625737477801081318477570628358725115057586791432020442698294623217187387318949584787774514424777359453136441809440378017122574990150078226895206672212948899741994618346957381719691649171954480784298530721838268243745182080649548010173195096535947096593721209885738571287269765277634914662551038952586180292525796440114845975017567477222664940445029680104906597908738949716750942198835265179554668919906499886118831172428845550906803830791434762299808680382755208819958138705425124855744307408354812809625033713140946740099217011868425639180366708628992297646161835044408450286839329910617843519831038362788222538459873008998496719500164263606847317730123218688752536879128070204772285116412544717059676700056334948891175664695820116584557037494048492801178168753646685995480400660626828128855916160701511239639286827652019067444966978572797389280405721958126933829665670586407601718963480433348524863422935410607231749636459380628917242285967760911037760138723574597089359664739870409887797310446014299369693846867741800999405092520859992790006684589856662010123025062659518098057523137154920456540062445785023066409949729587520313272509048226558842990868986000875467781158607727075523188092397925197779800154445531794744871457266605556759027963602185688954413091227362521224971662019047119817320159449956197177896935498013385529428112652796681948360934244506801830028703704381814038098798486403354391245891127373429376649184734399539184500211691790852370027979800676547419181792628505179645333494219737400836559922322343673673967148800012869441211213997431204727216653994661236478091817306209843268589531065810817207999345118312163492529460538854886311774791006394139695249517314940026837643640341126911000463467991515325826462036607085466009775840745329888841943332183561717585488618046298585053276538457457176015133386341606105135527340401961958759305936109412356908799879331907712961752533027706272211456947295571183306232368183307053151581119387415272593189782220961084106570933477899855481411842217753979913967200943542348640751958345408128131791852477097495765351630892640025158500040136275068104817094645232385588575211495054312588744292999641030041721879076626083544334724447409557047390498582587592624801697941422309967949081012070530788844230418053732047859415520810773028708568395643671216300238340755585965389746179736812937053589950211852340993858115752566908834130348433138288656179231516581490993417475441565627272044145543689034801430687034362019979733782798169206815922143309040566603221676551686449290613988166184327643740804835252080129594823098102242706305126233671993836491429789809053944886041439064111437115704819343277135901844811317665180801217986577042030337057340121579834351446903288085989073242222807946966786370930205169642442735564469600296991850296645381059029135034761916154811388530844886948142712601717700404656313481302789152717562045775887951139970825175891573820667434379910471309411703466811566942888693044418201076062134311638176319398870230002410884202293335369517773402801234049607018478021900684834640771313491337833971452353379498658180957185950378939669466871893099635098110844082790062605780433212720251118520226891473707432731123354753955404551210597750378284309572422122789176581347303744669409704808617680242978664168157198864493638180697840947472282952656346168726777818223267759034383788954401794227421634912523543215716248672788808714866524698134464391172749866343876754029667568251469502251594148584403914785499004483892118808135620248637362113687524366988785633266578616645969836723704078002616243851493766627460761574736251334190706599420425732540590829064847270545438400094345123381232878635766223499852661451718194804583375082736814198882302896475977729029613514253024136644740618795845184038559255219098581338796415390989085406081538093606122651622699622198476169294841258420342660928237547723665535621994710692750077239243414981935897441097021712392085783764818267876032407310340755156330629518208115655477662681471143202035390223470509632812227918485505884360107207653393930543223665859821000244830734959002687781485107405519511245019900403459927578967543800322029261114455271482306764353365658218618611601704940478818661281984487300781758641917900713710285537183664300870479948609792107361740881433623375009875982214773430298438044213345809490023583867737962253906494924661655007343072441220370296645183453487050764004253049639315881502405068893227398607210554207619300599168826791994465870664409246678858257055597403994881871758166481974994958715779228865114996674792254235758990661500976641714134909665127222010372714119706777823313415878695425904984808020433089213591380579426165026332016426568000414958520706934440682521941750303575446797400517204096908091215472397863898666050740345209728770766478748393829287845514290975186856352456589077449433335256606724270007527696137043873059896283275615373122922169157741797488552491696506149960878918231659722668791119221900021437827247940408358964898136100922722091157208139480173685543300030641998823280649018887214501146120734794148876803216526213949136086438123424496374987837708265936006245251902994645567492770421605148098809337264853514680454583167690978624209839778611432158225627154919568992710987468908823539527598606894260171387510862017240864489388836656942051860735495771724002676252543834119766981426689751441431590363956644359503598295393624907873384167613241332883265051325452761958788341382852235411716639284306246290622719201469942865895057319796368939997265029734540518030101433130365994888907257629392125889724639965250905305701533098468807711813244252634417073688284107324502864522145792813312432879026177590032384524003682602876798226600672681071532988241271950070548851628379980104040871946174633100738357774476385469535279691359841550385162835537589840166225483910083294890282103905735972582788919182232746433219882669800104561852133181328270747184491526944317523747865663678691631109936123530304714633178786243241778981629652424798976094187283122603340143301528558123369662073698677266634968716940835355698577887076414448045239493076935154666583791498702607169479794920872062959256930653412277518137623038666730160069980398797805478358581336815751411244449225514535871203227397837382210897263213505521330467992781630467364621307916191849828248297432833797490564748511739925839275534619741764771802862842526741101512259902919331749379549403901728218470263931820593231509993169189361737578419803841737826946728267952437897340554515194832677968995292141376969145556153717510701614916095709384523656849785410875617863069887620941091030479016462507348295485278036288997884157558089937169447180378078643122711602289295310515775091881619897257884628401897566466702999785660781630457204038103815685520928729753931992822202329989417911783902286137371214736401030087107599826785304774465580857771921099110500403715108126322578583771798353089554255400947970401098790828289735285862229818969975114884876418714187260657834999860069584216374659357443602989164863839476073849781104048769232477944034566946204525512927440516189808694615970151443131720003076047848256257155747189539025246695976362562761271593170982848866216763666965200695090088008796006006333979012647230085668226941854683798548966081655482289239228421243420240649490131188041857610859833185250974361757667313591561992444208480266132545729821596667874758149599343456604160397098678041453655985806861757641161871446447375646355112324054671680198208674184123734408969930992211929378012056038213907808907145759335914014278980242150059376559308469468260716194464912989956078651551442050806375560549182697772192344997785587192605452620449103173668928349352846603260687201547091221769875450870356208544388562710510573101571951492952780550777839594037165420501935361573825471751398324788454525521767629117889860875624969744577835835129110237383513677370908650750069442161699247417661169047862858891156306540670599593706208194228179372501095693451464073865217743023029707101975795469681745357721869890441032888645475491581323143609744937504193022337363955056825665591023831207146582120961692380961950052618109349705845974815580041165478253269971896659580796086743324306443273243664065581226428250462966862701929895737558277336806307837365678852905124581846633477054001736570230798728378158367326835020963888557564567077412719001476657543155709380575965457701502343119780394438912863223923613644819338522911517417556006593334451179738395379236812578726161187841943871955442621126980532036846465250240366461499135043550976257711230893848980166837947561820161787987393709728365761711622094043361951463758600910422484424512365414186314052911277222928029080426603741269374331805468782913509345470197709990198911384252912232358707241622058789439022442712179219571247005151008568765989023148053260757549756981706062779742609475095063555102232958239740002624396312293831150154359556080705030949136704960169982706306963554511713603042312299071845994410392698658826028332015042342527964742269228811727550897184684183504282876256022681455979191589866955732176985347142722553297313931122477634791479632788614533022678050107518980515946103151717370751772246726873886080161979117306877476668487610748327171565936359536349822594706290472379714396809996918409550824624070734499415245376750836228799694876061860471219030584793482195670818099754922548898092933441427444710420755611953150416148520508900108406167189797978415433956979029319567467522182959756667748307478652569673357018796000184730220166387024189347057119442287905099717621878170204649783539433820229428727776281178554954866053714970436365017271788639120578114483650549727288602959798947538941078553904116977425643552199649001615612194090111459340508074247460007238497191030586809941962651550589499007355556884862544661715514779772832474603863097932844784907842958070886358456205616427394758184388097038196606599332635874052805998985679802991640870607803125083921944653029699256814666684746515683838180515700661239111492122547743973021883240319723487124569686977511822808132443865622204814865623899801686188982186494531532968020881150932925766140953016358954067292020791420645847837902420430840790724248077208533706445904473202899466002364981654269621774772488097212031853019284310768134328167158312109116872760692346233891358907767139050587691568899997495054175202887800194496541933254837339281147379323267779813052038216342386027227792327452943726959738454733378231796165876178556671389833221230471146034405666499787376057316606034396065611339025914843452971775928347265956801897304517345740052930332665191459936767473042559039849853620550630832853718075790753071513272500839153364075510322491549500660491038519227607030953451019247673509878032593283611512487660076502093700157512638875886254044763229671356442474012945617404509456285631890965573751723197258363537656545601918120078754511716140949425269468712527876060366842341032111809099445378412681521736550970236615303943745576573057762640304483843146898813905648737405990659753987838756230910196824321476680226624014666128307270870259277016542706530452528389370646300964211414485593399938296634687025998938804782560390965291220915362528161454770339326391740965545553556135077133090190822385582854808864007210693282340780324750191239347186759716393627194785223586780064987539298447619533193416740388842095355301134674334448820652967265317268154058720014396298037752184438765482922822556329126156283123873635576386680532918695892829473026668052837728850825149248796550353563142860085338579830524952172807083089414369734664710446248043691694968036685133652375792758540236797795147747675863050125010811637170858109509685488637472686268910581632833074782642755012357086862823353160846816152682570563233464314221187711482232515888017460000218297162598931538441054427790054217353932332266515038471679868763397922522590448204765225655916894532966724124650532104806148167843103472459959371902018637916528237574951871138560902551330970000082413299492282805076132412358265468184141969476582423737428637962664640618276255072101347952688624621655292358520149645649720684608489455012056521628179680023607062634064579425878351868666665367098143800589584769783666251111397157264016645341736909499793670196247324654397096530912750509506113132509643611208891771593874179814681497413276257691374858330046854496516650181889053740561520584086136524468285847090332531864877732584733381512893403755833956702292579615808274094442143568687653994968999647424274052501871043430540790248482496075763925508283996011250303468139573927780709493227224017222780698226984070358917699165065355189356984269415813449828188194716527064665192413372167997563453670920840184555004034681682309246780044170490675178907742568667529526578480846186699224058185765987099040831394160643346064307359317894707435633308356004866025924252492102666190486120407357750024017524723008666142886484034202845036836626870568703208229427744149270781179446130228464853604377974940183646560328117264866868243191777527170806489859784653012993609446376054255781543494066242696055187456036019981201403143971761719602495997549437575335932239486596344823906813743279738289403727699856076511470959122318079913133449445183804815585446477708691902162588827568317131315712418611257377832073916827770521132221743760585448319234099886986412753141913219409512741396810991684725452305681682980026232653514197079272054190419220774223267850548388158011920396058062428541224158403724432356044883931611613070143436784023636071417265101465629991801126052381793439072691591137678019089562543218422474827145880168747840048285674397109830702747531148767637202307899557848125701353064211947092374414484696377468533876954134415428356123299412990706711468803753438765648049023061732700531485815570999088420582661592773009642215290375341255679912216888458465698003185939119522230889468895916932640959864370349956182550268372931265874315234414036827366918338654205964550583132835200331421071545189280751441667299056279840657305700179837578898979084650663297244718641229180824744247392040203345145585680878009544544623103778425938373728850525676664359246859516102761959877641725259281812685490552619732587730126899490170453064080861825607854242316301488125559953181011701286388541733263701631391317129046563537290217919708734014727758097136302116364480973257094116179009382192874537769056252933682102766286210208473633594960607108234220458584935366431270934108834559658420675195021439728272929704695691870079665408748783476654249086356447642472711514167289621907833183451475064781165188856446024214428731063530889483274857336401855876463509554656002108332452070268572958143220727338499735590640192011631793218526662590576155963345441042997709596591730345616662873420016166514156002966449751604980828142036261191870670992352855881848171769944306252730272339833619378192629779078373473384207925935686326970619377190512272554232710032956628851061517698728797906989192754470255995405643684692354093233489315955700005206972016509928313161837025915187715096670843163021497054474838795903460129116490468926731735003902860787602838441092003104586699354819274415750726980407366613295358103681461644580070601357657923211769012323634116447053381422126976452658069845063081165174015135720075432561372975687630253937316994773246533724365029401864531715618708194036979813801814189216014305968620231801562857154585016506485202876742646440937833362231608146570139046214374001378047284190948367362130473612517250242750156860245830140449161762352812600758109775712043659454818099238512429152891828818575357885643422739775040254040592023826163804619125729907682548319884411535976202376840072270027215240331481385415089222915829015922686015490051349740242370758483120160238315990528396306008450806253090302086013666092069236470189892434587105133457120346479677124984242756053802194917604538589778081286862319873479129921368918717549441738783253379098807632936143068995650376221190329510838125456026777014821388787496924100171007658861359324368422563868119599291833902816808852295093064979563746282712842804264936685227340333022592764977845757672236679116538177759279803602975256675774403528655438120296008245059103492123999610186419049257139887644257929865343353113537875602254140245864691837846310042066210905924795598264145386457291034826437629886662702218510285992605274554969568795691473437580927901970730860338486591572347026021451822805269421758759379613662237481177488941115620701014744273590580619895576632316452075543113447342476890358430325590841953189344601533966640032809717999283213507169085189013551622783260815982173111002785604735834674191516317861588309647704894032338670675509470239127231950760554383690440907319614745545187609661207564689438740697229157635730645411595501040528264675104724274416016887582317763700518176533348978627907162893626765177516889396147097247696679380033798334385144614650833068534110348698461157929630676442427145161933943956466649962987073541605962031124072937318875227082048085986134342619975389352984059095226322245349927631985678406411635062554528478395896052539591320278501615698249583613106998929010090201618752594173047805269543618842453438777926030222850420803626883029396082132828757475436570900274800434280481696356517305392139853429536117900834274215194821879066804927180863176556273598514436895387802373944120870322069002680914071775250645046149353739383930952690859672204778196054745458247959212332944348532523939341652161296550926417193419524567408827669421773432051972365831825143469286585763788685142089557753994633904674382420318853007455795658674555509681444003360645293173082559365168864152892575303319874638660558146013394428860670544710162590578411417632651659845352785506313083357178765317186466075777246578105481380669031245471964551685049883895397486217450726039224187205421781773248179097660559629623219337971815854036247235018286586384380378689364765570519523398560529990775659204657565825162085518552977181379247874584596828174067016555041463268148481971010521077579534434172172839648890137196991916972439197503105854563285262463991068629359658485864112266380352200488692930202035379649352174722190368194818011182027377830507221988810196783932530636850735561556920593692501320748011624075464872915040638280782653878380383016795355981286315474024093952876767338010095672157588807290870673822876893606382418815521669435144019511521122804293510724199083972431554885259917637044999340047477265821730078468010098789321451471159104262443481997866007664760531194976012658412385555073268661100137383896167947585830563689578246733083568070102221880698243422504515386627893187510079706715016247503328295235510752890807795738871991519468463070643270339462777588324755463536508144097713557578223913279988010127179038067782742204702747604907218922617984295294911751990755081724575527634231370265811169202328029052570661074714166952094452837535318951309885838593261415654728547498041098016282136484038675233120898134845727935719815434332518008116129602262921424447217919878759848985609257283353901149715991355235209067267849589734699656687235454343936327063513067506517980333309546594343190853001835327613283163421349084089848709955518049665610341662494781994646597351827937626430050318668729541955978837580339433869690351548544793274290566688712636899760685185624194938699365228807650262280969952622137761375863778488549255613652018512457630148484414919694842585186156747529451280275442087858835003407369770129760204087686656658191468257411837294532413230078606754926870935680356122849363370373034525857280969228124595198926148577348633723032431543633999022320353705607152397222003245686210692785772365713783213306584250934122413373213287309352829669969594486192968904295325465632522656044302692294077127256915864156342879760435849155852283463880268913202802027833282582946670942081775310170225889051611868014767454606662822940702479973152981783450745253007915551144646534207759669625069906591709227905335986920401344425781295893238768596286514709433749485628683793148260861810148351328343794400333304249918759916839814766473651185774973807800916776670354277043823992337379496306961860333799139823384847839005360162240257973379516693622359066772282647761745970873875523547615960102243308392534060183191668104183198849092819018069935081268388340026231480168572565666617609745383689458471346298889585253718587222074516823942896761987727638999002153008601588176064372009852880927115360122575856567189977723164422618142832824719184135894605523249547611919674109821107045784331654311010709238692443240369230226093327589862520595055362208425231199017283387480597918280848679291067484190492435032411019973131429832545320055085103307531338760022139946339387798801433625317709489137941533220457325361094715003361265246026170542284964142617977587670311256960009240732876377960512970363805945396058846546852473910683113189615301127569081746467480559170753616550405100232206927631834303995203635349390693852456807079448872142928347358230846257203456347691588354919947753132398839099313748121109099202934686947329917021044586534615847096830938973427752357218425960549095568174292420345812249127129138641417384045591157301968564430854027557924546222460417848311781285119151935541690202744463550410935060138188511729582152071944551756280049606104127059435878962613226944721923610292038391632975751243635256384391714150308064779762900108762687342880328752858779505315935159626415864519995242459090880750378246300428242146993373399973817130874576004609389625439233857756403088150216821604677461018541964761746165257485426414603035163742908304487698776338411522241065265715215177161607183098069033464154863346962494154909523399330479365053812218159052414367695434524683292272367707499947070085160887917388746505420778385399832944049928713613027497475846754000831568239827227543597253514482248668119607280629380995872190193698564832010710642961880793720326955547339786263287062843557174658008723256714190774918491443930414512032693950888477692905808507186574698910304582782406364981452642749685188895659311528073474531392624569723365668806439727109017014505646228763229477672684135457603389037221754438807193646214677516913408620352812747524111505900687538097312616303016873727073795494677808135522445572458239359110972887082355824042538320716200315215882831571793112158926478558467980572594292095139644469935431651981566200611551773041844879963986010204424238235837210932061670417562258547713556975373743039465568564018008773946935361074399274141159966429056663562978671769554764327337543607305673871599880658334429086107117460789029198391357799760665618946549819034030366604433642774102096019616453062004377473209717112690098452855744556552369511513875973775154152249875816483116694980795054906024790436425779667445628991940577236779488420531480980958602585392299948094581917434159374472595468037732724975395679248871664734346110108787065513619508855657143568185841553596528999320149730182513899553673149243377114359733679827912838919563848744129759390345481662171333538275696714651567467101879682619382645117962020327472397509233325239977875405838512229373597068636280953841276817600797089935173107260390893763217909627746373508312288931562866728205971044201201669135926967615788389532938800140693112220426531650129988089766468237107565590353372506765226302815387475465283661809625449496807633964108793135953129603809487368098727902118207953780561847790994538452467964829704744801513262863115317422250284864311819899364636128211217968374229972088141657945389914223320664961847182197847026558978403076442039964807871097377350831338724694140945596940133395860382738552345446893399710885920221230494860002187814862878704024386510140339207041001367750218202924124024914250829487904666343834110045871291074180506331703523056422566711329993730810386854036433310135680341476916582738010989541929688630371125488360147066949749420160242848369980308040252421824596650454750813557912156854419735557762293758902080473040457415714344373948317875056016816993977368000376073191900961746442286799215146890557724087884081580129120046355917580258159578119020001803522691038051296701506737303036979433703676204453162209775527259300589099477912693826079163893263024508124172798897255923529150725142709802387200432395442072099362497903298117431716150753557321855651887035667069225090622310879169038403115392883864320929641320288599703432938404833440676664129426826959023565249425468773617636604307000851602123448187303421171071064008944599222505115891347691502520715452834240822209583721092281565213766334206835733512384362888910470670773499941772747383911929414769787143657732526346925580946134900146253827630801519332652780066196594692369678289597308637057880105926257672145898311338118719208651176469362095181940149123322001572590826272918947208209169801198573437854860825130742166086793858040319379168324045768584707225651394548894298782499620292620313234569154883238064411485634266981968726712191878538850671280009140781941800712298322886449558168772859987908296068417541894873633141067493974133075323964392951100213138299658178116706365070578294272162121293358747498175083183043841376835696404713534937045625914087438041488825272091027975364907879363788884359773380367428380234739086563328600861599411007158744876198207312892995473491430378512121573851957182149441572027031506971576519047236002657876249965962074592516842460498174546699581622070989796038537572537469169885486884629866051038565673355868933312488854719427383510729290757627159891727131006512979740345775762840504183868430706841441543983416974002786561380844050827864729864868836324705924901788289167693012133092642246319249089525740563051167226809257838428251032424547121523604724334239060370042181073433143825092061400302901301077073134889328551324219298857947455564256496052523671984319314322466617984981114482957532700244371512612518033973356894653488112966401500453897844114174263597663349131402668816885360329009747578338032181953877387919229198783346128023865412828269735861519657542399603479271500904489484583885504719558155108894928895115767094997360167429728085377262384142817925443247115217358572249299177160353116751956512050752873397890673623271326316530582024254019598323567858616578741820560393270094186048836603584713744460310854391091221595364417203296815180774250999044757710927894811351604673469596998928796120630279337148827187612555964197794540353810693727814991395599161044776922366012549812784951306851492225089444796341510023500187592482295265582141619132578624069493094202443510895684854427678621393689886288647140948370057680283009140363940205549224135743391866363426338070292003896900320121744456284130535161838751780412888957011533333667682665843479775459326217078237347675424993518643642641296233979774846368033446160629687898487341790887644999926650448390153994180870046296102324567818695715238967625569564946252656079952029737711425908126689241423003646215135964555482468293056027679849025701704347126459820447777352175523374671880021456535813668184900108343291884251506879647281251621492074402780005645656986064737421643962046295459980936168509132432378349257487380238290903991798223622262946440478023349912077832583638372748486835916980472412461808087790400163848556574576009064927865817510454380841603797536251984242256360910832647709602115185292258674319503665572517699171632424623886194854377221614801289675768337833618924088999383117319869412535072388265580583670605514752424566098573575923001078568279011269263869308447978286409124935362352108714748581256506970332544440071819712785389526906547631810780390521170532811230289666855663842974343364082803728667426477089146432793809616274686253007046137160881714346835388118141199993955421455479636610090482355930116496223274128436041887451195836942003368338326967818445123814259168838556199731151992403471583714258605288679314820849054049398368357632286919856902666928117701087645035679284537895916372185883613773162656563690490178311280092049621347617966225716210678028644168309143908350836213639263559008810968265385822963528641597603382614404055813659448888688569603675546450204928017665002390323270785442731588086337624899804171194246515597437289400645402198640877226760063438109154858684908303826661834005927362033310050693849592039800747540727237187860749911536864789264058786331209370028329587006615692131393420118508856243761462997772436998788811855684548502742996878037750411938518214305645662365256663353999458281391748754522859060524483945135966594721488367736077903400374511725185006581982905343670571235112567727156722029259218451899042946200040176714209918368523742836716198545449708089967699233348900848555956556304159031274088344350838620918877485153755951525904064005892303652569116655617823826424907935824933958476300735988385939681525694505829454295552816937537185711630384901909705111234750150337547445013787629799486138743590412191363711395506982898888172513469734532447974055349708995234717506858781209617293876717448880986484131676697761173852207305946833180103732016572030789589878910848555677632117979981272136768071071476535900127598078491947664387980295534837956194491577869704373518252995905153556089002515992245402347277843608349755485084787741903908316427979830993820051632890207889147560651586434183409242845769319692496121361760569891142675129521981957660968883450272584660094622294020079984568673995428465492561475683541232732098888605595173859780461004153329198140829665422475119569771759238323738189323693549346946353055588754332777535734615518149707899776311215088678263467832122102932334696888406300163898998828917828074689369431532965952993117420132258252609992925202618834307506968420757955006431762027156596297774602383580607851218844716362253746639541915646402832209569746548845269805765591687284383734348344981527176310860967879955634630997852828501788228253167076380745729353513709758628526422891851274715730854212601844017866970745523823935691900049501492643310021198092660664519420290117114372945361437524613990919253648128096616670303435166296703967523833426279585185703834765120252185117705215099391388657352152896975661829800671201322195662147327190717636468613484094801723480687706047014981968920753095824945044828752147120787757195330698178374958195851948379700171098514210947639337001387998170273166613325390735211221432084896194118715889994953794368515587381762093375214872404728599891220345459249097738225087187773209802383643286077571514045982400111202126890700239745765603774114468246022610424966954884831424237751144439703881940948873876335354161034925778656263322736177453704073787372806824122453265837184989214587477161246437048639791928552238487857636646655209357014873802051933396416288877573912280722855871273192179358004720878581959181823067004260127902009123724031918554531675787883668316141560364327915954529505876848804475566339484570143290707844099607324328506377838464081593383940412044557434208223297378160235364055083920037213924758220271321133578858659499909307412908769723478207553966827976348956927147763808329727063572357867472038050184199366309510581325509763553275844691589145995466054389529359219596325220265367067508005297916956461915227035283961437546240408191175762225720926505177905497305397048446360328835819749090340733436714140559264738776895372492322795671202943736742920000749738303343177043975970143732465694629525479588337320948592800620699481719122867562731986414940805048646405093985943002443446134349507503760960899516727948191477706719852079505037095026383279917096054942812315090093071890332159189068366292597425861197747214422537012092945690464601744183774488561405981478417420818014565763639900475847945529216603607228339656587126684072117769560479470307576791238892653924032167962726979982912060762323949127006986212849916485076505021663898039489684536902747424462992694404525028298781379596461939147443380554657601156228991907811936051258115592272005651740970244576103614763264950340505255102495756469673630294880156509387578333820379641106642892030111356861606897651244862195681355006836576521366261081994668418520959380860283485850209407065806276904915470418122245757554005503162104010312602423837425137641515889785721498524257857018972546492308599275735434951138368451278443432635195333281745903874095266684990377932950147701318558783066383477248344596651871122120078754484250078266729194384713519758743102691521906165262078483855735643916019679153893759909399439187176771740963048755602914712313696747959222205134722520704858012504773854651523113657393635692458552980163578812521641648363576730415101514285296097246793698233199295431053283407737692244862589332724166338565157643658286352857373331127551478449382662755032110841945492890605827537321249821652737073277962364862810023580229640718217615543569459717585720723548326483771750418068535717525723768613675376020941540345144015302468356201993161315624780170490236383323592956369646508471521486688455674354321777817000004251826192346420613012929372572653213941236966325967676443197885203632859399044986879729256343766831178750768634204199860935090155527782693256468858401345199295171017679789405132220729024233386744155444698030145497863416679013377473904004381390296974120500715900131483562083880676445466499163009799226748528894086931622356715376022181401046514207144884810159383544270415793074273285491472525306376516819268979674053730926873205337873128184337647413200818670037196778325987734764584803665862106963216086853651569975013465405668039585834506316271253042215055982269015116389656358341740134265869178990148601769308107496035573843487649527354830668383452485722249166890559043480559185998632619892274944794816610701065692599483306435330867219054864244986337537556530243377497696823485660450245686286738566015685529492466509482320542137360378073506702799004542213099882457252437018370713994592859601468956976515535532828376806368163063202540463374346465729857141090131455329896381639553311026136392415001662607933940851450941141005221933933802335054981177958259947717715696429753486791967400553636932474721092291362329761396491657037994389307864373390701455060638140660493163885943234066118283853739290561776813834228792664820905174064804641571353082315844945988218731317286672701799646545375463834461227260456094284214071939306492587496287380272888354239271663837191940310751753299763432011849415402721084790342788958196944939220022221736722288633575806194798209115641941766857751688241582362077944625936068497760043416733260045795997647694907872128410250500372790443867204548447861827091715376592486158887058764034418960493513210190914788430601214949236547763297635557869327243135763152774047906089863482779623313118484618547240072594940796929413367615297888684487356596027520570176929272204825374517664252626486718339339110447081019775289538959687443158449583730091395814606538746285487288351975944091328130428557620385230272583337849999867532283153665132865246573100034466133486994017327281096289337550826445241189378071454481938192706805930919656165749446845736473928295628829097783074155172227723378117175784381163944443001412401814282136266893757003452386254526320980481796055705539557120310273463903149287578516033784889510918781060661430530441664268269349625095012159984135927868945749161810656723815656332364711794128206223204540539965503332915253341162025529903508615841638645494303273569634007600247394228172271541535041135011514591848738479501630523371675940608433546649790349280902095425175186446943431629475541611218679730934724106945715679124651099867939845464375973093902619188473775918408344909281293396289670783071549669774642325973319688445830912673961645305514673773170858867077324389974047316936346806047221871466188742977586357519031898263177129389916967982475158255090930873953960506745727694908594910373701593923179896311133709976430769653381660103265014485952747537845035733017887225737879454648255610311906975008275801290217215740258212123731156436060366942917478186030019224091250983279269659877743521292163834861281316256782007663335724665888246692144982978464791859748296382188275102997986536759865578655696747367063336924097999334515014059043220867065879615630010453613698785749558598480116376409366514717514730883108094673283466379351111780979384624269756701349286805354310816153238818518698316343770855358030661397784025525384698056540019342300012411472171965403784865786556488390970864018541204368036897471082873268112627355277586720905141462683126587089545702424612966750393511521577592890787283611316466050346087995976809105165326868465562513853630024079603965482021528748802462570143239546093219583969508779358595580276198963259810887609673642845820708692929962918680070012966838794887486583551899720722968799899098473524278905973668305898362791217534461574093317378717580636512531645676689711265380870628799568682612512758178317199183743193456118791916409685236686350894317096232582054576164105744397881322537184698160875114833596690828958462993274343490923267346220890684211260264308123420578596884369744383470657764715424693938001087141339016843337129454070459673974082278768284881190922567331317521055248230716476897264021664840029914914217502616060213378606826278341291719920783008826145222467604082577446407594217440901859686009993828873688745785684703174293698851446038923863297073016823618224088656015079578563796845205058168877125340876049751014097639216499023582195765728400558416779118058288417506354489512483369590200556840506710547296734072579758589703431415608072525816938007415431816163453824182651913276403693628040108891212927827418250991947412916562580581143258189761641175981039461467770366982474313198066042813754716865984870954609430119426458767529594023577623355512933030290839418470651241985864291205067569182160956583965178626622159321106437870001623385812296170887706503812011399005526803702722338765479509394723977930673927498405187488751802182311403207922045612834821378477025054807486282376644485092490569193156276963907733717767023756674581195311341191339495518731892596514685427289298695123315394911074505225536565772909434781494219621616790837318818695822568940749895116002393959726844843144637265335573491080617265205001131632985728165956665751532567959775918140717204355932610888550084051104243793726901544522368591455513237553272736664028914673013641011096004941512453204565698335587189897606754357643454564265016387589932547679825353668134922045438521954830316053951253251667411574939156136286456032541340268166975985954322301944242340726565661702828040917267042635053652986997221530464785313922074616501983925745689386756902156449518293219632115797149488171367934161727459988643866799496158067063741639410250170257585807130973848640009782468600504708128020005520184938063906779804396374052121347754530886701194926802597807929512066615851434265232478279226068091125144627627637608159785103705251334359385046109401988846181449469210370788373066018382599755429120079265868683017123687082778847263125919354218747246715911460940597702407444013117106650324897495821259303196728417878047551222250472643794001694896682278550779555842529545109222701589940782392192587490427474667532109588087118377602883107496786236835325133355774799423101381197790330983329458856636792317202170858791188011180267763922043085505299514847371891982961462015780613404990691824892628898286194228228565594591719927920084308280083115399441753676441228164118491168100275239718187194130874229683268338933490737366638545815000127700320578371599373634214919706387832188540138085858646802709876248728646698852774977972697771180694441915108647639831266799458397955280848876507456189067250792874280297955032638756767606107569581764602862664090154296633940668439997752941640793072139734308851383847460910762911891791375093019200146028306393126050302206520771309848243077722260979477828668110537494675584316942214130411719912143425861664413678636315627810110329773501984298537822564499931130764723620100061358629953215566284321800054816204156158611273517712531736397197848552912145460057921563317476246894490932183576034781140891772730674036657640384742362213220942226072140250259796499705880251996296775703984746942104923542022002105103517981065114867875015747333557070139729402205796610955208267938745456661079839342295739158247578610584185031224515255978607935125525590654284497204902279468239957566970762363891280413678591307346323817077108425003860929179695777205230329599347144527558949416852017025422955299886634087833493571779678721843238411725772814080775548447705290527346759069975236000538057247624175253939342731945259218955994094755905027660010640264217413665786252161913677500623341947601579964607409782175583783046956096169807805712843694870217334968028968752104064841697177061125211702676617370387071430795907113962589015339113086468766066774177967423126070815763133857150336072124794380368369197919848857942828142523861266512073743389160226947632866160293040747456880149287250258194612109235397441965747758945602323241528601184920719086483218970518852476759786158913492117394613416158737320179177254294602882493938145553405190679262505596752276802211979615301775146709911862352192780733515389916328969350703845047718691774817688757990539841212651881559953503635028483489166018067408844996643755256375518226186932011407652952791606437780815340369784368879880310029816127915408977292798234428463424324551157488854955462605945060155248629681711129975939859090602856469869292973251407327927226639258781036963867719897400930115164031849344705638699037670280943706928712169679232247215480984650187502541766991721993326402388252499760286703141591759410341019443539326266629747523571799651159939463085917337342138533949564370759946739452271232586424570436834087136197151802606593842466058064665782305401417977861547792729660609569251424294628288594956291057628366006797667708161240380035409324803871320231022250818839218326113464162484188747799569609203954458878553348651756427539507425322820089666742256520301198159535867820389196894461656822865348216104382420777356117708598100262846559852660542963034050704576514979487749753210075325966151793815940468848482260645188177853524560744970222717013460708495974743893764381653486048618681525886544115956387594834104041500226559755785382244358114701835997009551771830361548888846830786813597470608955229564462715550868788055269508198079097284470971907550661575749496431661642182498665775422936817698682544550471567775622663247427985967328921186988436269153853211223576044472946521427582534298787395433223890111922655228222287148420363610004950489314167090585112848105671878258560026928646890603771694155133427388449918035223847004531154812189537829233806595620385255955211542414757132129094224372515301123447787409249164181077751110066755690533347846661872664492759832372914968120293625314853766814067397263384384029572760438286929623195688079896237091308302724153896769727256867472758051641370374341899134577303937561135557671239047604590397761108095377740804860757132619368107025740620816158483738469814221048950621818382860995693811955869404856135920170928543144246050963275866204681527047982579419266323705645670478381598782207214185095531479171621657266457055213877397834127022482497649141923332740579091097805882113975784332318907894957549592146809823174403904608022618358771380678399491182408288383141703365630456998880311477258075977075969862320530517453484040635951725773483164846454570358777299892161141968046502984430392889374085758291807036829437978732065861989565108325625129971131953410576426577370627013485029179262081251702411964778938095022307760984300600452451215173620182511618051693780496961785676873984380271957546691759053576394032630496189943480923922028930943672692983037224115040755019868109432810785340932146266364597057166810711887219277627328966023828662788570088098750077030054290573576204909281643316615808493661021873915163982059929123122593225491256538833785054558520130448933141500477436658382932501984191420527284395994565037015518141336484094303463643417753004004481673157785947454720677055074961862898897880045230385646873595280934421187780241515226037817403472089751409526020641461851552316544239710359636752253182108120223567659761164768828819618145161760445761056486154175392097561859154331057365498660704633303537587478468685185286036766286893360298129032633839956314088707044966929128648328002994596496208470776807625904973082004682367819731273359843645651632609131717997287966739230050276391458604752048059989847830656729742163289268543453389948494843761223573405020599961702861923762164289090960746953720977105337294934483581815063466406239313717626958211412870664927904300443478147613741006553306739843639813416713098088435073116667925221211603182575640525534907431713098527918009155806130637777364227427077801135761680971491061659871646595081064533131514977903999986940573683541676183134805753162324336794045101022063435450237232291098048397258678787672422851604088642806681299248880470841010553863579906612676208658508340148868474452531288212829826245580453803502638870305876912457916884512132315212247785342564879014731393470576004250317969326367005688790586541536062099889452719316204062531751041500184135913314212340983814689803076158577920546603414654258999426084473096526446552148044057688891133020314322550051933116883971261674158722367807522264740414478416362134384381122457855817867271449773558924376177963725457638462263786078702238283599558520103117362758347100757743335459672331060709824481841989946939365732447012319224189983239866531917360684234975086478085381512177389525592404886690207002057793783064968730463288509630708628872922872746028232589301428802386125676979033169977181621353243493827532721386444252247011005765794709376296121157982175777291142179764189802112978001640400820205691198722272804238091980944852008300018071793450242723065617838404314551527365047944253142196399959253239890704378085457984886867778651329652552711869696645614465902672845537762748984915557324298073146227635620154660429406277870283070189605117468270923600960946616935045677079343881804912939809828374350119622836726870387908902994124460567907516460639288116041893175526419349280809204777843406380476339413610778338371869479727302325341588835530846974456158630649635727191657451463566455863686314336155183626674213138372976446766100629607545282199615234226670773584645552813098001747883586049987227536235293434688263744149925758304805108955772512317391574233525511007576211842162381245288631867109109019556187402101447645190153938930775043200651606332123240810796849335216252438426549958908430350067620225700646700743186477398319479832191714990985746846958541357367943210656684124559002611662493284629063598956324365656305455308932043423735643966936275737064074682017633193937893416121198289799335671265033005278198753409478967256893799956456067853995423464582226154447997602582794822490564321494375332251532094073697808459843539949360338293526400436777065337944535863975504022420350839527653128691884801661502309586447808969096691902484405960061072622448517858959671297802508197494989905519093900184715452303634900036972518236076036584635771052329170026999267485916345256108467747147136092380215260421768669594667774159534333578353308766439618515713806202603243708334141495817688758025324209969960721085914123292483132683780508606760866073212842814795071373308624727662572098002613453550566810828039305465898311821082249430241945246778867184252418736969637812819000668039022041863139955523222592266313426967404992541410064824867916906768666499413286080829490592357651980767657135741384245669265340575908091791793127561197030667808096347984107916215081830846675735195257357201682453753458762573533156290512879418061773868178739697504874029439822143669087799899825774684638651863824192563805825044034375892478224971474478121134666785542782392767851681013851168172754228169017735619889074717190789595592911939199552248159957913168513318850970265376105236208332701839962320643010767060628002899974492398121916152480259642557407431543096469644254912361705943769731787961931760624741666514657552980129691847495715517442788127710419791196188297819424837383044118133566801472268946282712807022919416882064792396968880559107204135784438766860652024505500841486419760504208502291015762775895447144840758016876890149381445933123219617811746334466212162583308096710096705282465388387617455157497244289923937828304849358771000801691648190298918178950020319963940599358745272393817910979945219783626260163294163304599387471525725632875947095317481163303889197416690804772405491522541200935622078673661652193832628349867738678373567705768868563031137176856125075326447355874945910622399346841192031230441900224564132106921852136667969993675643253434511838820458314671731699767201835387200002584836604816178643798455692492421657581913954009177705086786343828504880435831484859589791217991312304953731395986300273544850184642259926247085158807578858176174770725878680146002713310664818008379548468745462248088295128259435821742144147272671252079705109999329282097512900902409265547243411166574977873084892121346949778012775478924844099142058922435898861291456412761867816311604208578578509683869435893178939263405403029994244105206996579054450479392324125218991330499623843395092307018993673432836725511097466938284122063207929830121379854696828739709057959482412869397653235439599262093486292805702619823055227047697106517350814712249961274865441339217789078852706368504088295317276988133000646220700795426571051024461592467603862016323734436711329207661526067071031113037699849595590857808342662307381168654642481955543205482904842541286424703209083940919831827350121605932709633133774392278215547372978640261693373651739996544015348269842162431517878512867010893644816324623394575402681465077025981385356352503434547588490470298738658066840465369874107337376951566130236481751101533476006006145767369353729147989554018857246115925740111234911714199557052824289752727706206733907701873123545598824167739211241670009445887579437527789449412937798128468380707059107995740894314494800704810577344645891473622704923295088606063627920232069688878104215987498874814081794180614911167833485964457730101264252610850594244078475632236232026770651564495729954267140774335515652380480264669880756494614473931750286491639742721196578296770372037183282367234410566901592455277353403501552937521223009766143417034382017397516350875728742248181441525034788637334420638037623724457435596202997781618778622663036677535489076805147041152181010754445321103077107730981487271961892902465704645304318399373558423124351561588856190277797363573281598126243554491866119686790683064731166733358623669038093532791831556255985757202078589951847358270228059022200752677514814131137696807905459005823440535701289397784305219577988207797220300842438313577450090550745717082669000898320856542794937652078702279327181879316690137302889676849198528699322839531817845949406823231287222850489337490919506709649250969795897161560812329504344041568920874141871740977615251373224513904190646371721394184921077099377767212882040224624045392829907217996123639534855286110363137472152504769039123449379110806804560443343301089573486938919260522697598693623289906932206578648098070145590174959498866533911711772742633416377011409969660133995328752675440956349440182040758199362278876617403086466636590358892127917847143713943836919014986864939111867825208871833751565462204913953231069156362615695475762069075256529710252108850510131792832580927891267352042443003203530641036946517757461018518591551170702883158253829128352666012155666838719689609467395222943935188145459620222145718875376223224433381743007688942569889734460430406548605389638649839049850039249238108447053712810414310877214943283886859554810069593190844539157443630659806378599817013734922529122764228183743618194370841845112176961830170751075397886691948596687746900012959430963180212301214532934126102283817255176386797683961530629159882245647964473038803427277441204584462254871554846740010986942588737794527564055235410263866073713821569048938497122239856256282543103443916276889397135823652435224388358178782199011890580902518912058120897154775001603446279898682096159481471652735418262941959585593874775405236978169008686379542518828558748777715807346333294826506529658390629663687757153220187966789539311722015304685904174547539175607478284405357591363643350497945541968009401507826858525413172619666811424427241092337318257454284149843280429785119639241768455585284969813240042043460346456627668249727726957160296937694782709531570730395032072141243796010655514219623638027070615992033773209678066023450659114993944518546257133074657456715101820218822038315343522361749479133231621663829332890824761326523917941501103452111394999292810488363102150186678986816467853916487886780151314116773103590789546744141393744654110775953465344349827060454166788844819559350261071480345140024252134266916031326188965523479110218980682780637615711756574006221034803391030242772645962052872973341551288926369708206126468900412439631431074914609157788646507461099876192515752611649273654070207074683925734635684269701918896330055334078971128465260113421178307737231902445327297513742724529634375086746255276401043426914135076087910972411718384700556080190369470239453205299106787002968390542447932501009814247540676309516256059113600159222454067799158810725816250596276321761942748928027656527892248175610124022134731664790707721619783686345146766977047260820075706589809180148983064826305046963629027522207858325907138100750668588402990211606074481033074255842675807572925510743122210388628664680080890207641400355722004855973777127524231917515355507041081362673838938015215501304774375943820231173033397355815997348701728405167417972607786124103047580787368165654396899233904509536228101559233084861558794847937275138539593761543860000070172045467310071147964824612548960025428582735972156807037400984477883299403428480175548572723152192825278412165164598386461057029814530652305010362248803042677822976796928236978579267500126488308439006753904194897490776605486438762655952611366789697067357527579264053367321233686793933186068500347435464873123121654077903106578134833122678287643295276027970977381413364254146535687160288870879695809328156803525553281970268544854702386728550772864771422015227422188816046040813776460677464478799787765023428529414094352559440768410062589305481681489531018029749269371897445492613501526958572976989770112992321107615986373358179281743512694382975669529292223625055499162629036410270161437463427786060660164916970062779902146137551467129860745945042611315887063154901592630829768295827394446829658023158696093922271761460653386773302258630840724216931341612623842432892347533097813135397286661101312930111536338269318529856866006693189271875460426706190372005248426213677485043701961484977248105093488714954069597358222206751981512413576489491066178861907273437498334224368423908927786803289746865897558215045681165127292546895617866048929212516543611415755181409980472627318479713035523446192605730670527616506449984095298494401711467933127658743406067325905056560151059275712279135048656008745520645616030085051026766653253073306497899688744082204514206285746622728913709400421645692722325336604008334307823874942726542772790325469260461862136322042479313874139788792974459060411333781830734832268383471754962770233447955737208081642631316254166574232813243959824440819000987910637230297567753257072484593483259446714394600981330784166653266133145784648251215915226436472524082940385124396560093446070683437626920921839525779531683344573820156157406196493547322546246505808559822738769155796445350481748476395010342027794181002916563149492355242758395805300247352193353249471627028454680277874415224497697866047256665059295798318120273184694054313935580032480622357372127484246703475645923783039902160195533998957856247041923216369872647736673153607307177972030232477499354966154761145636335601302754194453874482267453299733921152816947079276595055193430165749750442841953419402927786091541641917817427723635101658120727587573397942510605257838656779853160729146405493758543750936070537843025017822814829383827620017953091752250383935942299916799586371986586293575086908762220162298426122678989080330839048427743852642727150344910456598352222161265755914777346060173644134160175683286925883767789003436461060861764438628254782849386354780534360173789505174533205801421163858023458233976980468070638496863454571893178047757669232000394076797938766866985108278572907648132171483559667093276362107625337804910327847319961064100800323342430836431991816775652521846579041428608943529203120568727171580411674821911330032552305063707282240371066936521535764000438817309286656569055693191048781677084462574983385516036817819958356148359194457947485351411541544973689814164980917798769536550984148709125971044393230513740617435124708909946854186118318791763636168470900475972004570785253772432934978149814214933300799126430441258043667992464248464242311066941722520896346067656256513576038755962325707591256986466878755659434429183552632616095182015109997430362656384461604514978011112325969151852090778304353174364896308322552847881515287618978667400765891152747012836710673672762162489539075457880622622722385792667712161298801680835216740416355801342609429563533030543441584063896118200075332225935420075192586315393924982360960663131435464118370877902748730347320603298003896489961683357365916518536090800160265151547112439284594868360216804727953807088238185571158014000441752139612909080831757127702811316973282055030606158259040864601047886346036501471168647595094399163331612342963209151165982123683830671284480594483741319093184712026922931077520305836362480363380864730955968968981659589957085901927609455175281439784286870639752641973667467756549164250262772069824665763269012363188746721344041380641140304009366256770708117136176061806315696111489095244823012966254629916382437028289043547794077639286148359000712960768580574186930058921952410535585734545690968198191124215345002443836713420811731895721255291992053744309047176611528268774142090447529882678183170394847925110105435876232631633987088839458899334030456184145380232115533834471659171752521397380051859286492173109066510909434385486910865436286491027333240215709300380364982099384823465705276554350262516473332393775686505331397337185712058138966742891569823128014221360020776823813952469914616009938702194673110470075112048390458732098461313069540710699220964568156520561671701604041669188537879335654833950528471209747916251237174868918626054296658252668166597381594120204586596924604439485765765312146704085865716720173674842901205610045619934843642780764982960827052570087594921456737298480040902870384582604872573412025607373689228882664063057477341680662678273916046759283922549442222595694108135575237137123070167868420656893886598670577143047320137966010251056629698650735582293217618763639839080815053645793223536446161225328899912646398935422361963839670660280248566959888956646355319006064818515392429574224310009483876870937131944492532280910407900212110857930755533455222859165762736970088116168673020084992752432018330586077581191148494599059091494909213357319137117865618989829054408903670070077332090656680439778777301309189967641960139675421862144773547002595156402703576854770690690115310292954507668985841234757913099203956555013867645580325824957345406184884908287442068776770742838681209776568481323585715571998904796892016028145062282872181356413352046828589929806150153301337404872699715587866567846531072718770786177288309396075397961923998553833567352270324269692508049193927304182747149322174031242445482603933633355616934727122656403292869513837154891208391497016885979431206841560721632241465770232032213789700208728322012010889063874610678186507987190979269008796607493933389337650159250435116703912077838538369865968168863413722036909427848414728577037799999194091175585543942277053311478806316035464292330861732382980375867041637623098326317594559390024187592833176174776345680678792070584150022385154841942630553433342243686764841904171862549175786000711953418351735561423732509776672920002409827447942438081156504596620806335736244732243806395150810478053811522647862100790563412275966907143320641301610714191833301072991532626385930979150789404819496572785066825019938232287676979470728579282195077937933745089383565201544343526200329965588527543577848450826439072272800871603317245613435600371073844590297175325331961747640359109815236995940078086317122316262913953328447948372247489642920367099863227006296291627553178510813087437477413029071819865736145947354838027170427538222509816156402982489091329044080356086770666415226320318829559654784599337933597230583538929348499820260027724618526276523854821039946464697528778048284765752626449798037869346713471661800273107928946286095685075563241747659494603635744527170399578758113230155032673896466261152579883360253243874505653000655086756925706355804801749216514790125395703773970585036525849642860549605419866130568469950290179785048835942778375153110128778958971273223231356729501016164632587052648880177215519378032632878005249225044017784661999763187390241622968027140550421127195973889773422267741943240867568325941905277833243479817599496949275136675432917598638961920918651914913318028113246224984257567117725806958316586077506426172591253044537608622631441983712790218604583937688634973047232868872817895484393468267694704945880934297874415427188143699363482494249631661885617957398730275228284001187142750068052658398962202231573021559370789724081159813035198545848231220881738931137428578235098674997076928468066127766999109851264533898619433919697168086022788830127468439493183336152002908697850910603026890851679619851831727665466906009645793772804329839695725983358579575879536089732831116722703422816801808016533292945108245452299567159022880065563669814364289959100490865643245256946412366464529932313951048393860816955215396599492570937733421938722485955911091808454005032052836724655956431586068632883480053204888212698209974347687446744273565592551169427123028389881252950897790063207202217188338392459861111020025201647612855950996895321020760263967198525940580158795353798277262292969557912169052108503121472373643947730801225879258530217647850202284739092591772016900489020200038163714156323454922750053772351130297438379376031582056626934662458306535971683055365293085034097124163631441910251686453838859573431828085449795794841602026703526689342637214026599537033508113962301231877239742871755892914906660139824315791965220897348979800266313204460643016742298126487393828366539956336979133444170514113522520485286429222206053017236879166721401965209396186798340021482696372126313405578159472714097309515187886062015779366838395706404063913996536145385980351484385764066906347620527614799568998282666053464776167763324337258612739505981347916457095594865926036600502482282695406267295986323626885016823026010909730871622577562715045419309440283247731535116120621183903898488519123400319184398432415787427019428802267684662823046554751028548763046602062725273713309772259861679741865462107492880134009394638491733132132452825152259742099753312687758226406912702346146276547737435458205917474970868040006759489574393239058858907504904737998535997178749543320680308606935262659826457753181725861911976447822814638462024989121035757370641242339658604796787037644039716564278235792694351329917847562443208069014935202533287993796772568293793113378253250290193496010425082628770321997522735425487992556885398446821073784608197141830077254065525301879950356772361951620226808111234547793895431726302665247899964964029324120141902172928634689069901907186208960923085371187617614894217192333059782663084001465938649571667709258123125218829482010494459017218959344496259088671972022245569701530196049768484686678464703612966276408861303222385562310474081354836324483413626931418785834001268519107144172701490196081749157252960484345266311956404437521492227245314396609171260020097269797190857323793369917017253330459894756106797750137566772621252318497266541325277875558238049633164349590669952067028755210053065998551966722834747156719534658470090202597342358854750633066405615521115155744193408115378618694631330561366813464904038446022009888548368474768619511364816788383681314141159837911154487404356968295011965924807453169746220488463720858703438766473071706359468451086543382040504966045551986329780485459432244568097612913887145141689147593337046497957074381965094654094481236143535814903319717928486367312234057639459212881437091879637548505234999600212228149993744327413673575739065811243233584563483517323767285783985473989720555332415692935246611400539241170009521673698244827058903508840009553469519383804318986453822188129117515169130033123742259970555596058836922978219344173705018968679925355417239288780924487075132775135344481866474725156396991074755717519983600360044311535118163905419776624563661339001478483919139633712452176944473608646572068021165665570615786204527795173024324058787821307916245576366444011860694847928353363040325927238196086527894704462012722494119532520839488955412208281837066911401057837106864712257554434328152551964630150329732781150413144129659690667154364023687544458993996795422696937938398403700492158006907761467885898049908084617315433425337653302485128900569699142398648320004877744719131127515894310111630424054705946258836994207838374311534610529790364325250776016300978354262613871179412844964944659498100040992673895216091511153238732055853839943486535673811153827000958778638298711490848324658285019789877345459826980437661752048619498118986229008998592782282871690547928849253043896872670988833995283172015667746068014850083998272736560210092308334903702868795532483119656411618456948199622628956423930592545182553660059431914439390976859295075781178166376598996953726865412676833057988688900315011317008163324223225864750970884117831244463544013530944626525650099692643350711387067604152702839956746990353178126772902063166263721682220754479868697191207473021647761715348650269332008980126589731666496326449107851657445714189270923240075183120102297513309663615489805813785455846285946616555027496750102695935900586296420828529262058108928922562082713732734435000574672110986771497887009814839599805260667605380528119661792650472081477732928665405668263515281972828629417238477445188246067019313895830776481844472496034285397934836529076750323048711511062522622755049389652678585216628932144561978526817858565024936358447657224303230599226591918711503799338168882950458073146808607975965384284706912220842964148932619907538352581339247483846573517393416319876293197299013979948485931098009465547650801137964450533964742544568228089224198932949295910100291426152557877612866580902620367877185854452912114916442737620857633563382794537234119687863712239805714888343765212472540064932798396812768136129076087604085448276849423211145807922669300180225543645886137257928599581194883080992923312969296846850585924559354342424923705222475107254887777480873039623500710940652893747185774681245161405509435721983601954405613546406943588790616779857638488793149859711732062224097297850296502143477244747031786758425252490929920585252949957501842715735223772739127176391206681553181494320886928588307241461975647363133051105518890389445059732880826332343893159484274256941898750408789418819304820890598379532369790687295217464175264231454665917157677267749978415536779343532149621558057404190412673343348967557287477591756046653325386934330047496588212016033265261978204542993058345223692502471388396694552795317850844960199379710462783191277509356135072952448099156218283567726009958394878189152610284900594177517748161747309900316789279109206587823799987049148138509422169044801541540165223566605608198339889992367358391683739877771433392324735303002091967710842274813259751849303900057471870882070015885769525100665231525668233972657842348580400802370154328050898329670987227178050202577693773041618642561701133052225923422106210122632239762118013350153194209024096328010396001864110763144513625092230555709783589792709415433960217287389647452986433662440401232439911774756662192067294748505649310309662686479109612123723677753087586464996260373576738532507917915205971788733159851075850761930946597124008089707375572957744720014544226769005422880468781811730582118706024564869135408569700224687478225243525441399972250954958570596251737267624097467515496414325687715195656306036876567640508710812902879531430811913964131815336605864005949212418474720459819960318134602218877693928333498612198735387534334721269517702613446698766412753880937927603849454216939524969249971311815901702897229548500208887209114959426103541548180818080607037911265869796856351759603367362156957655741993588933618646819637343171860858337816493961827989431875115216508579392927337292742141577496246035032708962007348393562519269796704340699834419153489314841194079573195760114267427242911295754669270037986385669128953978712543347771987681538097690418308894123070678940859347268889576798095366716069900254983550846151003544600730438754247651204337374604416274303184978444620268507232094656817913915807293034615471545880110603594157978267339146274157387009929962806982348843406626491881143360758178587002996073335364215985836874215774557536832097396914254053733175593136269594466701028215449397271504912679526641003512907475649634272369132462277414049602729742061299023125824516911722882648018631642182666245424739942074331332753641419107303118736425781406273622143777107912320257388647840235171715235839951340105314846034563692001098120435372389890150934607685060463654497552252374913416699281848476937607999579446574452114165275855800448644730877360241561472257448535716144128458078048926173662169034013614598437770362242493475995426310010496407978306772217192505815396898281738510814260828043021570900124364705404440026475654835525519317116366766181046292534747897313800332625101131186543848369032368841692566157838716488678892150733951312698399936342181710499566234296849181910228761292190005409211486695303413852043188777325711448303360470130716536246147581842506139950863929165220102202384748283811555476540544688210434312202396338156192901038000106908729149442333180138065106149790441714274912984173920246916600372199112195258723902338939975467341683271263230751349665864038138034463626461375688099642629663578903498619147319667919959490531064656611209750136777012460332474171278296032870616851936789013114720406118118360705340893554202763299926638137564734872432568146491014176617695885436563494993278911853619435254435515721806289228947598770165523531462980743373085312649731974746951168700046328683420164142175484665451267332932419800743816067930448574074984896523459913043664910755416260038764706470522870659180330230217679370472771571480798644089745125442808951231451960683269106576056470266310350136925060882973026234368288701355017893727281841368753575395160329501370763363230746915687494566292555128994276904983602329392323938298053425849552856791732847391357412964890068505999020270667566141716754567967048861026132159468116194183934857172064997700028386321592225135310213984231285661879776749701773437296666729197659944745835392620044726388903694691305308180449102862792346529038901513657210245697314793004133163794161732434168064842510717057552095180219565639657518812904916658693895547401814384083196486531377964414291149495307736901951973912624485965929137123932615183317956779993467094039017322069084182458772026476605219793647454860256369484034532245823744293747096387850388253849661525664861287301409006747767813740167388059053371963503512504396172561827725346573754968254337706502534933159440044692808119086374281457708484550641381733094936815919047332152821865981266877284330570679911696146234485417490234304653829826472180893419079691646340283736704575931255912476164723917086764953759848301624464806039240002946251772593237170374619289758868458694075951812389485101529428933655171304978284088642669506640847750540145891440264360212043346489512204873597854533169697889010088520936803577045734615646133071701703135921519387886729480535574691708477606275962787027811129659450379693663044578208902740680356215979243192216770080559482892757714481282542906073988169316473321285875272611399056454929877762710017165755450606422505977249818634817940105504708735414541392528239380753463398149447574851673335417629332368633945123843661237705807812363330371842200670607871406987228475948410606484616086447301486288076978701121430902969131757617999026341857912278060024167196891703036896633037239931368344680400988818101869531995388925857951407000372673190947973887706409120176340104172460606133504324596559701258669414380624928681442276582869589453650821752275323540923236378303167652382966934572007984283285832057469276094374199096331719835177616061069070847947136343214666837071034543302194087149169819827580425350259076497785528684703284623120004130530837214395042556147923090300304013568914675958268052932671689947266017958975209389007005580777920673594160005446085042189652545776720142630355026620925801851482687899949392064446652435264450342425463244611639512141639804183035364267822315103796708405403980216879535558319248607764690693048217356912230118987339438958020241139424793226486324930629554566396439488816165533109569911420952532602770292072385951411732510189096253192913923639271002773839094636603606037323458084243726979072870739454111384125280439165922449775152290220767403638749864560162332935644171595675869381677284648522030204278829538952347326122419925099404111103656425820484398376496394344667937477549613718144005005676632115707128514317253726393611624787804779866558921135271705297539113963973542768919167536999860718382774153650258149981280059616497493760838820183199967994072278616616061643670893211804807584343624374230862348811809824121227854231635608825139843481883112006749413046445007626613032835111371916872468853649818859011694540617531024052647113436475048732779019167092658209735899499863287090071992814386197035309428286127807281379318485584474691657807575075488189567520308586001898875974478037167685339581223944922100307149495190416606982653261169609245395756039287434608632446922839801333261604988913749404931523792263610976677384145434791114936539578735930585552839173126050901801215700917423228694337137840014931078609133915888584796446878144299853404487328575303505914044744608937003004622721405544079043012006967702487010388436533052040967403915883769843030370188525595019467935865874176778459572252111140148945748714539245520346012817197285956554261492787585478534158700219957962410857251062926819012207985576107286182500576003114169371214052701169995821635584948478554153884020227480013815490821787852757181297988236685527849253381043311809416147820071906110726760571436275878861662069176063524004618218968648627544662147541458703126700283075911396258859018303221345721707382227420995035929287889644295967474107150383159013259541930814108802084465034687029245355683669883210282411733343033920979758549731792683849376330152516880221847385076947988381341564851714687813935438046813200679056051694559880345902807669409082433439835983940719856133936907580618675937652440815536913938872884551688359131123316447273089797553538808307078142603947679234614795413863967518722176201343868969355158327687513571373986455890393349368840352511408348535370436436232785728603717354841670551717131008467609367214006495265912163652057401200656130601176052031132114163206560549480282756612621307871309196673541544708404587680506709633145425477654140870292972932184161989405808773961125811692488878607757885068940178367233342849530007453299255288726136673771343929705820806178808218368099956634442640308881158649360423327454317551076796926394107711041830038753817888690073246901333781803200595823607135282555755645137096205303061913890758853661121337891349486309589496417427198865643641049162809414972235395411017717598286414688894129280255072858200717043750098570576020273695612100261148280533406626994101575405446969314124207580859487862940161562509071580620025110500209862560167752342131084928808865299657985753430435587326857858784086003119336940318056506589790496273527768922998583892241643298310315000363485413911188554269673098267715279392775148509020454695071833248317058872828143387510435139881601379760688400638135374671997747358201616971976754020425221071116354935337873178551194145526715000021035347427963299331136827717678108621799433592498455766566063588298710693407519128357991259790155558519165319342569271807905829531734140191371467018243476076834739139154854392099918372653864064657587844562531865528671335408753076841525390296858069978767958485422902972134006506258884066942347288908969125080710212019408312059350069250028457420381712457309619991492264343613192228471223279226834732191975684929711467503342998910343660711019937170753596472966056606123832716722329598083505310900378956585050102966067929579486831763261928221717710367798784391118330161343219912103626167375212091893100964635159539034961909526489201663642402951860649930979273879962745365015960802260844501452062187412590157983161994338248585718625698050454691480637298384671873927596287327550436738445616114608891073046903867426631126996582576428093157886130712821390733095850966642568276470918638660615776740540556049628873897059947474878667593628864151538312330242036965769704520861173518468687812679003872969687619779494010569823015876554592513414624328617309534284945395894158557441147006071454676176202893143996187293419930134517906079949053785213987085803515291527709235086488983385324984788234222557213788435758009291330772448772801663574694555480531550087003108816859261382069494234019054941064660381617988644041266954882277701737498726225726373728152672196702259915525719710913343686554314081979788665413514959579107990293762115306672970678705307614598108959383914603617689086919223681174589244620873260084547432802659962515276918080673363234048282038766890675817386864020807797594819018302735532175576695202100654141648109813690344322815992728132359206919091097189975320193826685766948250565887720580278087463181250455568230633953561445529416342752377131071459822929521364222818996453186545625971429228910806155563044466362060544217416426416399698676269045303459561361847340546114037467270639962806658663121771818616163174164981687152422040679293577140306666865912388893137942758734376273695939161269783102415511047805363573219986910655600930891470020327772480481484336575918500518090157631861981236854526308858957155471206721654171246350004789010959580452287565830057040962881521360265463443513989103442657591672293462050154843452801231695029074645599407097581284889869746926939710779932881875590810790639021690153007927430873914407644702026163413748863458014863412739489383177057297586762303798752857695445808732467149228968280357287450503703519663747905603181056623653959353487493130167476921082874160723640991994664070691711178598634768720728846607019278719293078588886400977979204459782113055331218410659894722087613129185334581809701564139853096329098422286300622165677182254197380577733264363409831442013959494374788658802812335874859777348650192965246624117096948213934459972643807864863253925042346511807545048307027081248124402358900135255467490341744796143150139566430939129971926865214327955580002636314271317663675307916939095099796960182957947382638220357659281845934655121292463263433936556169182852696430467451923714274390525315099056872684439748769448623617448299665195446958064227599425799493850837808502281464652022452695148014085394525222984372279406791259358759845190290007554665152762068276713769045939990740586905781231838697748839073103324171456560092152014891823175889445808055287101484896199699978965447989595190275575894061890441117958032040766055555605864079254643004186355672476870413857556826981150618076383640444002240261767214004287230133285653260107010521456589324954153792302771770344884427829921875038392475721156538052662190547111509478183941731700635952277619318901336936140895290338942028737311788969538418319799919278317083069448193873658208172499702196266124153656493638118286625859135956008197039601772453891015468089838927466330830333951797220478824717349176548464166914144850881231482262718060299363801215304703553014087641332784491558222652146326957806758025937703874950142989957152007185734566514565361852574959928688619408093197881367167419507655760995737359555263748360675571547124954406971846363527370718777377606945452518341279887400677759716719865846117327381065940932946476147986527651657751550346620626247779096831884986943322473248150745413692509617808370613546603397937837296629459779270663046550145534683376712057787591330597485133987468256134913863299315935152444577725602135737565781912352167042377175019134903862705341471618731486887921727087597330948360632567246833386110619710143066544134522723285801835522035530514962478523435539797708665436316292161048338562408131987273446472372936297556039659252357714335454755037530785634028597711385431304005719834516702341300529945845265436580634338945543059051675099622755923080548744184431738612758700861960195298349429850072970115757112830430691628698233401389553977714644649812159583814463068021491000455842653674764316755151279259613377725897384503780759766746418502321544580731211949490394641278991763886156018079300910605202419556089178661153372688963174310795434986728237492184753361642122219216854209869985402075727142140557924201601072593335865658555396059321676847939832124133781271170416672506922273055077986965780362152627331617904006265648075737829136272316580522997385452139165075156140086313920955779674523859537396166530712931760827384464442572970699326647577447437530755931641211898380616493871384765195921989112183994043376115086421235940904760242291884827583243976225387611552494463078585517163812100880494722503958482991473111752720125944992074753843352064319252510274621479709833456867407652356137863186649483513897349208419941381124717309115949944631678987156367839110694204862236955099395735873403314204689316465637988717046801955419626791972256500149301548322068238626484264698351703865413602020722667672071704996684951399242263508834051639800348523054408891456750601768576962694521433111307598515148006571827789463567606674076605660927706652748194878889655512960795143073535670986804288455111884084395488996786447139602482238614597369189460583219104444319750275365829421990526811064844257634735986457464595429546797113603274689589764515125221776986252146769422238667530481574410735924624576013297761117327577307433345306880495417450502648003958328432682507175421414387162493472584153766338342471675201971072560265923788993077245321831095051915018376262323946205359293985852312708579467088132643143482452695949127506306699222292153367308424443082349764600755148200050928337050205339500745738594269260261047274343317256329091728770789169444814516039283165560402872749793696808194815397817798658821553886701058153940680193022296680632340015979520203493493359159460878882726073278110868013011953658373641269061325691866512406369563337031847808367473590481802075730683974568638242445939422520217645043082980062657550740454250684581473690710486967390324736607297987787071059148626104276366012307417034455591473046020931256478179701091719022173118264899302902106587640141156642538783863812207517654994127344558745988693754542161056616875881094340672505220001557756244052994168827079886738089974041363846833299422782673023808580855269000971226321059822948769607348657939337718481235732445038132038782470423826705863837793692404492516902256922444550182562754420275538344371510122206407861134944466983101525633463542716014706006795132259092298128317003853577243200034082542112471785593463444985637062738854919433853373242810576427711899871478286222911582429130680860849711417649689297692780531166871450765260404165360028128823230066901210773714985795245691755956665283893698290514653439816637422418585104370421226264943615536247163750034611751652873813011758478062004136406376656798156731464923315271306443682244972791838242109150728811690166620254273355247880135154715965414818440579715573311378944331462713975313702896960444757343636505178013832323757222947158816762068420139605395683026215027401017044677423202849761640110641842037183807536114936127982920581903961549477772884150141089410582633711850341781941566538825191905237446480457533295464937469689004889044024799749336335006170527175087534494132841235103894334818571346976031065124951959467767133480853493241770480225424420920701952948681450623856838021925300769603489401468314554521607689828097530215059708361771868593117835365712317519173442573556469519127014667839003916699762630707457332678544245991025780698223562265752086838788568771801874667441529338333669768525213031316770361588702602338662288459946882702971147772335531148543485760151476608798368339758497287846175194779708650518627675210405221421050889842941893014517755004141238701684220942149356292147772514426744183074513242744935592139199849919269173932718348808838732082022525035970451446982121909534898172199030474368510911437019243007754182051480502087796078232682471638590244730400579389481903761886111772637373849319041848575052012141341732340822313489120371769339811693566769054352500173945300494275581126322088540620126537530430015141613563920019713533255142303083607005461794918767359037476075326021994815222389635566928220065269621606170084597197152109511442367212252098716039241867215943070185221606297312744628371810942708536459686747631600964582954308274068941566178399521377075567116926334944042339921281589857076395232256090274029567921205475586996356438017594093745176253531334287655152171600788808226404651287189441072139182711654136340582626364022899795031950744602995030813571677679873981802067785047908067396016786992066864692407974723203482004673900835698274957455898042143167547841524650974619482411487079875847483928820693704965449952297158399866195367794603635486514237820846423117238399479280929230624589526998067337590451395554812663820375032360922153576657458439582770178471323884645965124490746477246716011158024608481750890186922021520081683830697447737855455886756974093026404157616869846403082399780013337937454906599382101627701307740462208413631625210951596361487497101071163312357713878981622211222146430513583034704098496636616938321348620136621114770543315335140561942564951762435077253327036633196082787321890168589963035026478945389876012621415937054391442885244687020772650046260826452753470689372091271898599595480566629871376738987912711066090994228912325902161519679726898973066178237715258930750534392979184645820373059835333267733095652313791237303511261258874807665126950915014685468469159355098729647629614494834353822461124094576883672380789646872076170475172856339648908066230706511965484225140480493249188162135554587328077665908379867139020528055764874750918075602518714219187017895066744304235570892811492272202772452546613995043325072464188584982734008208754522450272774218043981485448902134656377036461719297197501883241096315622278256922928905941788324076199374168637282761063664475997080682931584618083340501029246835177832693113093722157664461774359781474665679947021869321861120973532168717575094054803731232796825966115821037728505883349816191366342407341775946707638286051126387582642152173176752985800162670189473436315521864091322225867392609126764215578839165591636836828758190806440347864516920087629485017149625433730960050744723895725876976082934702681811838290062161158062902269689876757360435836221676037020442791259511368307822770980366180862439612708052876522399381285956638716083283253458433188288821518847262737897902328783698557251558745897445619339171919859648315978136591258770692895340951476878001869099365476903879423027740471226950658594739608713387274308861751308221880240808021294283819281253244544493012064936564253187520253690504583701401307971536717416758942763832182621231673214296433275867094058263513494878256360085588752445358031329240604547470600306272264196333592566622416042481769730856803431478417559875419417917653462564543789836967620981405529688343587232270182618026500246649203430091248852744783677521624165832251938668059028512352299967336138705968016980898169852790811974697678145847907161468103323744350407396540618682178652428903398434953692303666751256652680533248959427828870472101139186560081135814611735704437944876497320218354424410837783022230954597255845425777446512885748891171267651530419628217196123642111942850850679379060118769853470846799477543546542728924882693914681298524157633765900776001526437033509045871718694943150380488606707960405189313779388992811454938353249450338246444381007824579361184928862689634811552443702764454229804797151488691687178226074691959545325273245558506855165748910260967922720997610139607440395286832130023785622401341603091831305771149908166492034913239877337272976112807482642712517862575162828178917882549074218861553618312728968595106499448347659712149497461238106082735405544681365700486590016333549784698015062486831080880003437180684123154703437990453710587222095763313972635465731009609205026276739840736893550712317047487291691009004044291019341295589052744646761243918777119367818505950200545478925026612044486164381554654194314688204229959371146781984957704553262589412838857714413257503299760997012463431975935335411567499613737940963686851373885086842458050753372128531117692810994758284325376855309852734476202514664298847469187728017549993289335554183078799974138821275044630610130045763693383583214389667296770812097201897742667869861962260760520804768666687797035318156743112799189944559093907174563650432404124065057787376916803032181716033133490463752529408556634330385555925378424415983302116871765716757320397238723755410272040199997026398857164530661219640297988685867267428242712283554516881096316302378562645962071917212679614111165429153639034476512643556834723922548689455534960089656922135353316888356907781243953889295086461322268891175826689607847263033004990755661646572178542684634318388905321609625304558429329808188248437175441779777673660774176269336224074495211149590104609974957101445378172014837502023523489904507333517715523075910172702851975735574159310994242061002931977571500671599552539179744921082815050055868722342457757169047822247736615574529457022930353385315817800390752115694081688361059127359646034208375135312849470459050821086847072414237930191186435503852345574748166595308557559595653162664997848475861130952840626457250485599710676534790167075630412468795435298006006987788293693592769651693118834935432645916190679199320115411972244235807290139238205837662951375829209626217986074503644462830764305476870607696796757180106351186862065548627129079840756269386090990272831678712759511286756319379259831035669646312738282301587794892336697605846093167980528686006988763291003416682049821170163863329149571380766112268606259235774564673980882675613449718140704263048879951619269619860746696482372061434289846208808161538876216564653387761028909299051977131708549405706721456587168812043228099658384542197286791951771398607656110290783559914050115764254540333400500210276376331511365686143167343203542334578764271932407014790679524291594456565342688329150204411588479255090275971224838888070607893053704765297135668449958718695207352207402171015528669379718892663737610738959057823020066588436698156945779026246637162932179667340970861976953523094175914864728009057962676263813709884517441856581570277269189683202493050585313215521161610360262353568933308130290237202135699601628800700353532172666739874117595144994514886933969183152914474914360052807269861592511696911272460907295491991649256547208791296660164536228272248088904602490351218700617765586050894994688588021472525227641999594218403969009834497149908488302963390365171664024122284459529703646994675810288367984731451725031031943915235949429633641207457199036104363721114749042979657911584426097974564408533163205617598799186798921350209411950585513421874809447319219258141312795507898560787096829246826743712996860103559352938343685308227736450334042190983572015931707369353750051230504312428348805775610797037986681469784109499061630566388686830017019105651388195867593749036605165836950133501906477576095491071356432687310743733751466135550359836046132989535033128355172837612035410479787458062699727461909127930310516348613799132286035511148275041295864646862443407749169320863887419461486064289304029609954155730541180659658367621908652030399308507800919569370921916090171735090251183931610205336346619667855780322142857293430240961719283599153210786979533699908741299163390919693823185724377297587162161758167987355271405469174527213395472167427626886747028647387871737181524019806512264877745148250918754651743165791061682343193166988028608423503321814701051096844444493666468500914938389337249045265921258649402009212893208543092027128059753744125924870559231448277462457444786415373366326070824742247417573210398021512284963880455683952219567060403105499997862774138030149757782840481911305765602111689068489414390554788435292016902803035989092502558148766209020776119636646496758731160817452627872339359804837870155293919320034206522520378646726725447819407255396503058731496523871435792633947800365596493400018983195663923781252433025355940560562875316979816443800453350325796132451984698094113597380535739619570740061158249572415951236075312033405217215015600215010091403824874601202985014131423261451137124018502932546594972732385805153434952869137112893547808113997568890048058413324372167899156178129845594441219362076851839967231809160019079731680732090549350240049799314036776507266600768718687504094010689656423312040579373745981530650656104758595281420846534121016591003150707658604243441970217878285506278043643172707324950607717315780989493288927231805734851112350646494224761200082556935618448720705181671704440439654668574762624352783035375860570915426774560273386465738097835235730931137816083398088043408790151022787201991058123039469813889868473863665859190698837766222528215669292527097657248240983598157803308474110561215982329433958034394310332719769849263417900183095007273264727966134777232715325794151786530123413482763258358542934019744208925487327418176635625490185664040625661276543717740839959460935761804144447257837326788194380598535727309224806213722068190721240311565644733411074886729891217952239918041241049771854743376539995136810306524330078654448222604125135874419222033931784395677334194907535882443997297594628393760211426762133240808669375101786102558259547965062232871665077585742081696329852350205740248335832730421432298770128909825154355818778222502957960934813789391862441325412963514050129726540348757957483089823702242959095549772591026814589636123169343308640916061039584697296454991000367504275402107312379494423938634421504800339962960668737617240638185020766598116303491599681128779843352170529412496091849878616161596449775843985987214614449863120042518628980564912951766648938951444693317472870852692216655174465615601711607636599174158227953536621129932432073372655000827676144749229315905045915095831790245590071941119945803521555383632347656061733459036855642288791804431251361691057162341026972291002911503163614423941952043384992771704537403454605359944392243750609766690940969176961026268841408790871229576144050115207213473934979714123214134362872735178329895284566023804821700533643135623415058653113264241944678667682417915183870586905805228279902581034144957373907909668529869022458755534963277170414182808978181703015623493792666001662255156671999718378969499864664427320904589019267016340908650258921870921837268686926918500773257120739641931981515697048680763372311328082275352626193109345962983098468476654420208335514311972449652231369464183322205026273530128062859511027623442554322737167220812121405177190295960441647079145864820953271035603026849401345112477764593155540005946680016186917122889904151683274341802971289308935349909155532328967912462964473733865356926171338858457264819472887464395538963927626313926799875475376890474693441829949341106480067371497898843802190572996642959157150954666875397345784979085445881932366506383032234575286631933900830748621810940431856763014046931637021386763781627948878714571710090508876287904925259293007123208962872721523754911343041812602716633662877244987759490630639021143424529322869396722368687638966888927937136075389176429074927728243087969626613381654975678365643196252236256862657328026138901560782616264144717669987309299955177615356831555394080553682517284651325678946015541366255119410597641435403853812981561333191806953200795137731347741290190089770718081621985578859793526586478845037495168086966243921348912469905462826661626589323215964852711153531767963215784649964325505287110435792409968618776337266113063287504960565423569757849982371582228502709526335694967632914931710905257531260833376811140479024982586583966461515639865448776018674458690802772303234615226845468526953829722676636533023878132925810836872685135181819201016754794921625413794980246050886129783124684723263719519222245140137241705455730601656180497903036759210231207114336811198392404665281639433503680013088552152582081135711473978327928761102869647518725529839562079132056454075274569151391001866265995038933247713356696442043840789541021959532278432058704073162148741703164590809392819054417208093670569095037497129476517280663280672397681212913839563484898563776353362419186885680696039660598119592061984341680809927402875043213318060814180046316146366556387847640034039861465712479823389412209390902392378169745964071694743559888814544156081526110932988627354725922197179891475526848981020431888431959237582559193704945801587092086664014400649641619606108180449737765082648244449975747975366291193897624563000967298105817411753741478536071676429667264532786513440525770103023658898553822734603382300004034436256794926273718349955627266075246732161062485860364167294331738646240571452986752865381441144467093485661755844234672909902472176779327169606468495025193625329972060306258342880880000822603261204734732955430612080635985785304097617970557002524025307541161391219840032843321415024900909956631104268029218688711955492089756721363711161103670084648724113626831227950636437036970878446013148464851513663876233147296450963612855194403876009978304991789862036345915949427993032534970700026744351121107782177012122524842106937352843707673982207058401577220306698974431455395348468389094851087212650340982861363712507713689049721632184296846018206338875686903398330471541291197530769684839984700129511345929774803830210709993826568572909469701731697182166225243396990943402566450134257094685362246800654157055794447013714724826050809927391761778223065263453698431716214529569100312553478884083043721195569447815371889822472871551611144045450410198222407427557825006008555085082930087879810935527266134217191616833072706302886398338174914804539700116265340401586100871539807296626356776046252257106435265022345675662517773889562073627580181721913543294899982766998332125614997480850159069901350594626554740760287915994627514114308792312750841870713036082719853449075932761619850653198878901502205625554279719816041846887466949827359112192233116809657654698614941376526710181792443590461342064855853030461320636584457335328752900692722312199509037816050010500506518336018280216154002819883442560667991313266117049382509924606456688255748547858289349410563421998658112857655092720258627578330605906691077630559568286572779139827111184408138100994883520273709216566143193578775200444256751315368274527146829973334255520984426398111374694196190123919217463122012570288803895092577969185926952921641786755552271723578847866753474825323754839725045587105453613248254778130878084205674700398793007081147493516581851764553077854227286365211788515272477292846343432088814790083639435496316140870995077696061018010327330443452856494975409328428787033011991839013499144129923365507526800798202781643123035490728594017374176598507141781269602379429192695323874045603277323080449718610237089800831860599669406748242972043262783841018029523151971617254800037001815846322402664864082332286428990601605182447265180647862097356907752809357752751456979927175439046623589951654038175736217071919507155007600767334951308203614168328274915117702381324524961658569764163586841184283691485539060893195740025142180627333452669799342013499237046165853253320855600750249261442895265477463069914586574963755503902307179173205187708049093498880370128106128650061537815164872176248326178085279661993050491137508431832238723379588223035606014741999029933934930743815520024751339333670385391824133367129329071746331549318851981414868261538447391644808475388730395485466722967037834999447882424230530734765715409011443675188476400374047789226719501284543645044303675540175889025968912972147515316652368206953861731479950276084722744646975701805685598795418692364719573365889449506831114743522498657797986720400912243647801892688723124030668588884711698953702579164611041520479858817553675903685321353253249764468691818099020801659218676765117640541397283089296591407004641680934284712791821335754714967041786073177631181013390531809999937055543698259344414652812218332390389764298368438972262466012615262828425992741524612711621898801312697249274274165449397799454183113901943661170450148320797661885434890232991375803859868214365658499880900985641897868592848985648375977458547514445467010312362838185465321536839679352155016482820207770593771010302250845576682111773901960805921810845235331415958202215803722060058076365176401737211209103156741620566864141753153157620837469940266768302607686477481470640949125238230948464020999177870508591543082339147618117949545890838246511209351838571404706520657071272941070950642464946608562001238564014919713593943104701912443876223925518648388560350032694648002262862327065140124459387721460666367559399423756673980477033955389858175537172068745790559410692434732662207947756716522716423372977023893769540380031266623692348390091370828791899888619116619820330206442680385256056597368126754038631393980415039490583893186784467737966237341142875665218306800357512410403150856703665889791460098523561886700572758141260831919966953442011947732602820215735623873198899135413250937608096558489688938818754965245231557476111568894518372560768261443544776857452453636989926097298074821125919726456075881154747443645717647662494750613812699438320751470053559928757113575666541071719760009382763536820313277202830021870303407229990500230177526827939354836138066263209771000670560422654911697234549182686987010944829507164027108137399040138684069380028601879110884900707983112316519409983240074322680100310749106904960077920401139726029404674209276671400381103853867466895378574156024617098415652244186124561647727015043818338373544732281947586206542406955544734030214992326973077291976884897425251855991265422661420508577677938531331026072971469658419019614687167421626760585858419869026028059151740336653557284607200141288093680143395690512413631105784308071150973738826230227118781546433523313011531246027329786064579490419364780787467793011421128154422291037137450814157219993858255270539986433401905904485252662838435835092876542453785082990870253845650197101952985964490659354758763568779562075374894805201788357913152605689935028432914853256368933772214972720039246814572236952717237905767143001072479751606221530531204489048337347347098004492409320523473466181148218446914072041418570122182986026859423994420283875814096611888565731524867891467943513729489103268177423303199589024111142832045451018038150488624643362744364757701942178586121978219250859948280830899263681724099411550767818459628763939255626778649175420906374816534925977709318735830298074828919972535072592657238444964505162138200973300927612139469315681308273385319831659013389509056346532063424826516412218375496166054931453770505878301784969136046854937781395047108697934229139067389346584044874421628718722573215352504269002920978376648749590334912213680125872844571955592543795028998451560736678132278572151488956255922844480735412111386683290328392873811415656866071832501017026406260649363282591359834258491986157939588637204963691169329111432899332740857232674850617369129796470460695336043113371824182111132467692033455264241187888365693794989630693173808712317015329009337328958244398304951808220504150389321250006840232924791782286283038900925934403422284718833816587076608091232700451761297559202915397772137913841692881446759222618418524636753677254804921343151243570450929550996792681380196078891926846520092022332653259697627723671710675874554063481087396719227426610013518165236488621618100936251099369656152305526021708065316879588251468977903872508095677633766040981127198136553328422568837807145675503013420086748342660661188439388169935236419780326267720799459977188652717458607342780843304996766271049052810342203930678417255232513566038151274207653232609273296085978444526351188565964643822267716483329309750672310472523543613999455534530109669944319785873537986608762329265830961253087530518455075650138653219934977742527662051301738744277189751349610856516531453571203174674359081713367005483027403376535997584117181073230701831289024908974863143147496876904348910976648895728175969513560723595454600622062394565943809030445497280676114173083358738491723882137391969902579979173749716866096263757282079358083177359613377909102478479257308225629524063958840324573889964928455644022428949849000654461272814708663182780174345011141956727536900984838078845535471569094441440587443631722101029074325236449200717607066267691025421690829789397825084322572759036926730598071544492213089843585452530083281950890669836068813705452438957791606832467995993466538749504759474764534417380737778604666723859806349902910972068564700509874782306640359517210090729935367501792644322014976966088754300617184723029491781409187652071343575557232873032633856988300454181199295477281619350697439402283393897939402265191336283381138703861449386660923411758794600287938904571288472347484760771018228659670080450975137500545713353316516196750924431717293198237809162778869509084280037505136130342144304591244660247756692281837832577327918443035810734077967683911054999344875079297107461544845532092288005936507633588120982237965492315825354134016500868139653218671292837887739188249942881091523127047960107588477673455180041736165455954992060274741500397712450995243837600936760813602959642523419424353046603012974542534958413768976277627229479570688508918828421956316457596294930580494436166529297807441007640819809784903088703485450375599577933598787797046859073142530075476496503128247127710028789475746748851507186794016112142758518764363181983231745348789519488618334600194611267498600953029847931399355430342785317385061995420420046935072262065143713353194944239109689340286323351267535326343156960335856046857172402774636233090457772513280909679550076265294534643931992849663394029733905644419840603725933571084399292907055606234226129204991643663558971596349911073146868714187234451227302199518943500074377930918597235443447871145075374230444368234650063523401708795872288502930019069606734752468530319076595986543365429676582681065988303686786374052473825699134069663533294507855062196142322460532254733562618148581860038155284528384540424449943230660039691498628909682678665317399072465396668589932863524698771894167526080052812819939886722998937693192036687486950791842709610753785491094918379368302697857791341090818530375236695193239072425929984846831904736647137344234878517860070577916740337741598755213283815960953807720453485670270309948559243077192799789781646119685138337746611537499399136916789646521931374172074577340760849780253312327614734240529250696758940522583378625648306835908100025684864480854928085584221425618982368243403635796397687518505056100553483222431156960466962608728872563906583027160895579419825939827026496458089236375801329452694544055245944172887655639368450011764901183333462290389229750475874075670025833957768632607230883400717033661618203879434985590156908539326953428522858087402750014283382612805512621559525353081553769818946669065304041452223692695831546229730687680944734265009141387739559306040202137215881674273522194560414769586790179616661839716074314402820952873009650988592127510724569203075780600462214358837684642662280740580543156389031991365897546975023699127408937915225174398247079791301951052333132593709438642618321416335242431729529294095176225981590301024277392109725551538627240787471452690842753613167720152159166244423237688387853470559989376491163941994907390164333569598530855637502791282220293583902016501120731100470315619800974731728863233148038016309884181560891899750266644278479792055593927168054746024701695266746500291212456557121779642260106919937315152243864341803796947376345007376907027217627620609448519391086517569967020341231371481172271654987719662472634106069492565257529079503084226995435819202009409038272145367309585199189664539756392409888623200293165092226121436758944676585735034254162939367200088196224194791912670387853053060334256395493146277102779555215110914790577759491175855181123243730062226564394475200697732797862076875461079826655056270742748893223756396245908493684025438589147629314865075285945976051629040107874825017736456060718619221785529733478105923654735536722560423583072098964134405519065259836701904143409862340557240902676071540151939679879763161154799851577450153596978963001314418537686545361153053916613320146913534593521409868996529166290059997107546726667265203187757166150066917570720149456548301120437631435503825603105036818549312564143086129756365024789871791155621088550282734741250165150729237753711787101252103059946214195694452644745639050254325538805948829965396004221924322206904566127849799853714640489344701714279745518289284145667122267393247160772819784445582206106531060746153965476140274130755728146638060775659487434914195232652632393827152898527376014628150459376906149191027750758028199689111507568564314101853195800708250210932753677262097317475310007034517754747926581840342559899206235600685673334098044663993238508350179670940620384162351923203358230593516199951138209100071717468529443517318246830724769916611072067653257486425768220981100899084900028735693867789056465026976285435201682603306923365541664071635009333866616403829213176579304200605278305285316498592776172161944020346278243827638722857002584686626015337492192453725794084382821274500851457416137370436340001577682453563239269899445427306243125122931798200574762185537622842272220044925306970795463031727979290590323069199565877772186898999323983832262168037941999371384667811009608673563309205284498333379114202584369575730674270850752223738971869343825256785286191649985919278524651206868767814005931868346366941598845507458940248588838377905497556379183614384384693875056944677919299157502518315591569706573831896313970573762612154877909138162561587797324304428876732228279487991708705843696740139033644414868478660056205802098626814227761312315351236126873636625549662150616332334958219078188723472139763993521970199989799414791376824993959350995511627758549628262229590351820629881862391771830148006682471054767903567772049754962386274526637926327774427665624292180582500198788821603215802557147159004709942969488015951417687511303664021931203174884306746674207219488065185067681026436130247956065158031153746999527972668426885620322148017418910790869612442927403345561196903516140505428292523151691805145358441413109913207376482113988408763210736434340106297599490830280696903606691232932807409940448716655774391251666793691595868270227437416343906092225772910254028424197927938201386932541123715970333655417626068971403386299853036487924900838035015657108626547161321436059094698931150287144965199174655624897399110087274553205305256981030569981646200869305495047657832269159455513044573477876574654754932733146792915933010164343774764537231269972867800250505143257771344429237839335726453443321839230535193280743705796491458332399824310335668877703585971290315017727004377432116939850493442057226658126369815269469197773654837741354311753090279809870695647018812966043982758904738304689727021141576176797475420961587738998485528680110770846998845434112616096036865507500054324764541682736998590798857934756209653595256290529624856203080946340707647390170140262986157344809604415580110627509308275217497955987530685015643498841515189975866967551915306330108931567848187144866782407683587136649177951663049271632187607344409277541403475341786361411390385218760756237769140600786184630351608990139609210568115693496853376154813523567272214495088239199174813030699619441059656641253193654280227116069034844828194482755967963017981331560648395341580340715161411786036979468684585196982262713843096063967082446090337748568462509055256395752953119847300755593459529723588844093253805345589221119005792216653275630194998831757816525576083908137344378734290830822503021104002085001784077689961391385048133609000257318063984980785082998484635378368567839881356215324079305188270106581966930901320653090873636107631907395386082179617249686663028360962775287090843441193654326289733673622654701609634921865168474235936060880237053538337068123586199827967779585041293622474164736457089140765561783962905674905801015136527996163842222807530380055652950712664098816083590918411793233054618926792175319275238758502228240736081820153214502271149598674895380926003973958037667710939237333181709316120634724581984077471792317721447925659290349258506846416961283574634925605886052264723047854648514016560075200364059226236335812760094650160531000257834882547720350557558793610456601803176223734435539015872762028019386425210869960489434259437337497916851338357683014722674720306333285027418239477279684336486565807713237224440274007951598536040766605158296171745840744922555515934034436875717271481812125845404276155989413044902435518777295278071860685564230061277361942600700279377377571846245357278436150270852391958597830649278225092827708949963198303659569678579944973395553308375010440740408367230989261879449394518636513319160845184475399341623481854972294322706944171990620415207867334635374885070622735882405889414169063695075992424984427313389277427786850785908545349953312736477814583528697655659215387894147924981331297814911292564125045333639229127937618770474966506337214417507050539302076131516423156828340649672161669595201345897246767250300470488356688788803462933207800910349601024159841881511180961947830140956497731984420190382284811650829483623158503912113874550962209684089696412658274116394697957901941555328499974472846293347251761453996976622504478743828071193188925835008522068393798826963785049216158672903789607965873729610581286926390251784120712276814337773928267458407524265399509833326742239923659875717351922804796733207371970869904070703280809933335000159564543596154247410583999578672710381912196497182034317940325743043596844370448244467316261182095206037322421489124213004258346482731347989418452111406908352388863802165252668943155186434677832801931731469350149856698236078386393406694056640917343571695977241365572227553429982260487471049840502607978603675777501150041984556855699073773734618949674757285065181041324093158860935825357475183099154716967433370939471093292330926211267471715104638082187145068214660106084894968730080668437580749055555849704146799985272485428322222307903154178803098334879866509924411407515080484939353144896835500814630437052396566941376042829285487175762945434337401263268540389082615172729580300836983238841759081716848308203706208739806319486020822455404266086585998896837549113221500753752366211677604255131952734024435866322985080191523005638604968223893966535129321010516807820546609636309570736240050920393722145731746219635202101028658422917267505772848711592086075362696543757795477905096591974787746398474691144701266314768104123529199892670535634606089529290581979183692926052774379927797048915738208528583579747403065490975939319134988086415331374706981598067958105108294177381582257405411701836789175259812671988915806428538353002913670255385523654249191195812278270522010913071790465405170948903302271351627020278279399133798358801454880574308758722416377082766213184003023911125048252251566119004366351344411904359328237685981170909997840636245534046362971530791664161770369970940729544509176839661069976993813120060142688600717644506579513474703492744303249678991305093430578748797735283329733880964228119898459857420646369441816443588268428741963115075764829654333847295482705221996182525926312870968338373433085831458724437863559961190277261013967305787388071860213336702435026988951249968634463039790996092578901263381988326247755785031942449125100507905901492183072314511587172881948960026720731336952645170618163594045438130735521033209271667048865129411761671683060305675281375230267603102009360953836516297873561456351061125409774922139759041661713808384652434791319844548391289392459613370768506393869469830924451617859319694313941540551175652686927743697481255162496098078565595624590295556414924850302207124754612263266796113442733005324433687885468045788044877723674283514169497647331569510522950339444309407073899422622093725701173619771371393447114285964684185539614054215827681043338818673522219403466207289864035781159453438993289154301681797982290211440703564427723014831830464203330707936620824878942949029818422015926283949384777299372964417557907479236936993382140341678915090685975427219491678335792355007826312814592498432624427925649002557755727840065974455978927105710849816796366696048626367546491512101225986084869383337058222142388070881295763765543355684949080620384457195739976572192311531890594553327845254003388336432976173275482737280955626420943910712018157240362312569631310413499957720840316665113578635371780098559632305654253959606853231540667475509504161482711839261555255666962682056505647144869002536790537142314704330331998428897943935259086370041057815505016415642960185545373089258470798206413124690775186497196795599439281141929288035140015856164575196335203839729966803062216919386168960297214054914950546440882935774869920907075230521731125402059217969386238819240489103895489282593698686919056705436935072304289683192590822427025670898256313792643582298234742210320742457892904288592560553770817012340646862435919156306031807648502569185245503873985354768735276716594666469971161879171588023549882924672070808230321389714894624241367170829559979025600444697083496018133868289678045785641094920707038662472690991021091614192176738384030943170338488178276159010429590950041167019358106550034656480524842154050682223391701402469682931671191377151956609922638241310534756727039501799036117246056621648734721516569872073108198755927859412122177899710621708732616128018219338432299513305353130978358093705832251150213280164299935421893893178618427366201898313117218925968555946483769737930428425749390281342377878392314357739135598493581246754039594404096506928853219409121366561251975009792711677800769196327238180656454216456346629203048748514465395472849198877837420938144275640465166752839254194767778717690326211817568898085243001693537303999413277810756610070905427520327762186667163796393813931420811405062095996354258529436387050039423916026697167975267368477400502959480330155475145840268645865505254570566589557190670695512365699854803211707190271374490200503254850027141295256641515763968949986426238218158916801065220628075056679821789523276907188214224227160131428565694763692574949673344833811868767955625308972007158201405535280922828166615487583775393848023350449552605108826127622808340496919590898909670443061831978940566003854208718908224959757866730166178241752623068433174362025131292496273045899252059632719252889375477113152821456995743483648990303906827227388202863811758342527864808421522978305406897392430198048794065922315726837123236341563055622162244533812215224874167064637232141159959411330100750053938156641829072212225920917515417973167628416876167767962624120589287939790495784836894762094839573511775666930520485548016740960919245181492626863932698138289883162362064318335968243063311606648998528108439316524662341638080328457840326603713337885413824547114456714950595470296848951435140880761549024732969634176422147254255482328132204577481646148476454590874477136946488631312088744647786901443782176572450638933933760859408066334594680169087824201697167695433409785455298025451052634598459933111952208281001092992789378325163799953559128757772421123082371211138376469448664821509479548448362821831331192140465168908739599758473267946526370903395901979689989536202000996471905181521522349860745119915675369426755873963538256165159989892835304824409987526027049360509283180883171580408313566404814211447852488273756865223586385342748505234079748777897108487482071109300968864159226222385911796048003165930169483320253189380561389987016730250844737193813984631032695860870649340070470984813937966897776632438841194413821649121873696898070611145194813416073091737496203915729157386219998185704498346765258636179841300238264483061241758909507022985371723907111545716464994726204251824041072131102860011600539278489811799723890277429098442939402269284640157734950166479481394381470073994597274525660968395733745478542430296398006033659197864874797545231744460105508604008123129742258447343400444317838668006076955894657481152430264203955769252559713380792442072203377671670431344116039185530097115624631110375515650098326793666778688055595380135805705339195729364800192965862143438465610623736031093373170697732544227527387572900481802534898790916195829147047089322335045587495468684685432169032139729340655325820154091199201861145804096045393741747389426689016599791493210415141564895836488593396090757086825584105811917167701446861318838569440153336583573910579902292347452550699111671120486221604411165406170947673407524325413298626457815306518332648708618827875622940366988431463030000896066667579749669100639595209889229242839325345157640167304684305472682806323031638825740996318979607540635594701295219416420564406546875076779164074557616598635571667369301630052824318214195073635553749749538141304211096945359405863711743765965720772595922318918905747285570526830404127775417937042867082367644865086389919924508606509790389687331341404134880054929493528060541142739451284322106510405021191570100881155210333664420100187749439004222921487693942071769850446656940679426887072168725460214800334664749896520141649324823084719525976450091149501096433187876916699218546087526146855102159900629764500267497648637658034121548893353865291420679280604979120286584058253460870751080525091156413862940132753288020702694786297157646642208462419710552595949250624639829403795903316466539721732358584250592745026646411509723249316603406989781584888467163485148685270252838184135398977123805100343799160720016439465058174971878514884835874013980129826134223253869176561033296342369808635561288462446573321945058684876172596717984646106827276894237637053680507337673187845141923539305675254028247948240975838888401704739661232856997880277136683283416927109095491767265126929888948970598233987106384251655261608993346494796858416890019399142852971145572331498890682075398522704583193750728836999075776230324210608262628557346827086419153071881525023190103170225359023611137823789758110905210573393637186834441825754784517066976614396094623395295344693729086482427963402877173256979948423444762592340543879588801092189554721167246661675921285968410502429686857155641082814771847545713727424247671471692824559043868130331807699746686606958814321197439018026510305671917059540434539697466789118831629443809519383349715319610236074130118882562283747666039559350926987612192864857349174978557429971878992522894492263822477410774855962238637783435091916276747980458017886617423614099116837709978034121480693008567671283969900111128919661317782776529404089008659865542762136098434459741995855378245367675549705759746079723984220689263050041350628859103451636515185708784270795807091968041822964352085874425107527739906830834463228560480038541231896561914997521549411297549765363656840122454010317093193942410467583566530507271024240140240474350144346419242335044975736694728866340443806643633973787484308086909964247948970394784141952973524362633962141485344721359739724246325220495641519956712970576431598906382106438031351498150557516873424052002789524992758917094973389166611656762809590125849221422717556562718959927408206087764394285951673350083607118529969657277759868427543458954861562935244975504116768554860922605937102295541369292323970424696099454321145670053468326938965802248865776649734251620137433215594152808256350060696367398046993340990374543286284038396055166284943872717704897406012325053927967801823187996294017334552956507583884982937933698431982975716169296085392232071897068854238240532945147169064831666628876582488157252855299069484049457090211698127633711982152925471369265062243035162892854405114101000901870280552523970169061477444867421404975546608092853080443551530427781106516457009121356618214363170277971678963409301382288907936239157417157880576741436774044762755935617258434214487581044889543050673334717144969737447760187667956883442743896651640543108587156311608375110515620935247860321411538844941833873321225163691490137956157108980945868671192607591534768681158168414129990515127024568790645969735605448544093370493904226941863878884998885338930511293225530291351637372678651869214109967126114145124209684180030692403600188973699326563931454768753497100501054231115239900031309044195192307004115558501850062358903529540504262179919536928957052072401301166555627450820445842267632347073833000338431191555681521404995653924777876154884844415503148070060286035314984692678176201488696320847438362021661240246051163125612593684448753756569985654908516462362273612354196259740099782930124503270663967625680474049092893438982790773971545499099058679530878808730838544827412526211544999532206868671976879782783478759059060006707642908576852757343879897959727798676718796764940245432048973226223428730626163603941499401202125897816223222245504331935352565455713796972115881426952895054893658999315174055192738320911771122187758063104341744305316859180216390694923748778142838202930163424933373354603122223357658021565699933837736721748968769497304240153073601495510565242248141823006213377183227240731339738540414344679399651166343502771614724617139950371481069181050130011277536941950956045835060964756133782265718113923973921065156757244222736171006936213512640280432625569348893262899962752545446125407320591780687018329205644275204930524613031135925401347770908845873429022769735739050151100245657965215728627491391249430004279001230772511813111673618884276193708959074040536972503379520586909553034813936988796483838512692886370584862906331501666411898861976666524361800385686986822651227804889282694686165183265708575336391775693166433291168680284664282537706548010866507239939035187999459071879940684648129953562642921357011900798261522197947502536368067836067328975327141567558784132508042153879761533634894115492556025357167274110348194403828874051512233474591673438244505280225932918646527308651487676378077488209985354717913397414255073527340068726225462050115013736148838963266131801464160954990995233362622275824052987752113889052859138459562155546319679303132845035067801527406412567586555328039447279737053408636098712936044680237672501283048455306824636531310552597845047263745878485505616003950326372515212713710649978567200652263722813968523991974248169596851596147371818416862777411729037366855258105399103700913643954729820860846040212826009563664197991298880162301649714713663768533917692864340697778871121425806406747073680196150435366692577812425740164732447137356556879977669298693876125440931758199514907776128402202717181995433376549068898369115059808393979497610238707145251478789244953971108040459618550531454491378467987717372787246573910646390212701934526733308897680874598474181078939649827575049893365371434078473667345429189906047480137905310116165450853081951709010972594181956077957900062856486599353532668826471099447510107817370390942660654684932541363599877433617557134318576831425665484217368977718189796714749929548675655958663801453916042984004829770813355359847213028564497873897313494242477563348112250567674116009061182128868131094736570377821105242986597159110181822899356398736344406770612914807351377528124393805557082320904108878389649165922243001561527362979851897305029166853931260778601683191825708174046412435415530094695486748289065090316210885988795776282575379451808802330809899262791652934665737002192288925936879264721128791709859680017443895729255438382363009667261842705194816229225229382888170642520085328479146166815360944052390652849068628166359173315823391722807599808963140630805628659973075744229035697159133110784449537153373393121868728555776034983245584368813761769335846266736514585771452165450972257571388473662267764947045314922276145405215251731919832488047673190300132148984046307388982650571685862168605271165772827776398671759224396287051905134195227628725742503901875629673962396246291213973635265087153278675479253826830757336805057632261246177148800326525739472695555087782582135099276045378909112749558743142876403395612062790815969492573885127587505707263892274779464232571542109014736169972416998565271492751964387439672875286715107699964388121349778022645566027743541746831081498089598945920634127276228163585938934345616386070343741473426561893751652366250025914877290357935817819918500172999967831998827972129742626949614014870040654378857488970129305895606966502772062653909388633459903649450648535544814690657806013882657119054950271444104161200037873563701784781459065118249312319311805160754413855326776738421101461419335890802053693763276042286479105436158970315087115057968013068948547405493367446985193348215796821095040928672735039814365524907406095900266905869308510018318158432565464968834754102322453122501709901173462321350007646797172796996322387657378559406318613378769797055544363521598137620972309997891090291816554269506462809561703091015533801647483397208857811013743090501822491677084163591503706349541536027517337041967330994033909587033973086945930743525307777734539575910803133010986292005007443168512561667728709769401662434527990745987879247348553426652288215352054084603678667070952137210164364613014520210899837630839902545981368443916480878724040964702834190747308930822367101148199769585270143264867592702502772648660774633011430574684183739305310789446328125227616562500306939391043105608967697697973358016266596123989522389034689157071803791231352072238844870278591046600533720598893042954433799142293017995271311440753498844509522892810344297833711874181801114466732373320272311028904804822279835512536894194449272982232279041774771932160695830429044690875483651387660321305429846193874120165803207697483330781183834472100020079417302825452168024998890842433796874857245990366349817481608949848170598064852608703142863987764632220059556661304823518183862431786339783289714832963063372982450264916189989719883285270156688036763246438205857931616555729173926559291050832140087663507140155404544616371948948196936636927345127099601978753471638153898318832374884792010873021459389810264106820258707468592839003783398981732237552076834820749581008099902636401307050110660618458418737972899360201482865084075944369613200906214406997395598395533273848600988587634102507580571180007926072011738530658488561632669644145239778904949664795338318724876677801116706684319812457319016722786235279693082811931409722729827138215991963166454553798646847534611600407788494920049432586533476179159855635804278841362531426661665455048851755972334094748588863218135837258116503252864035204787524923061892648294861510593834614731009093327581242487319063638305379099746280267123338120435590875142117324543125853660534543596825769219002706114263358256018694728868858686911273027057855060953389507121791675881489965086813510302645881836200903733981619169508699127744038588493223888158347498164335229311428089476143568947446642703899387212607546244530377370860596889920906441575513535453458295773717799080445412903742180889080273541459768752626048635685879881745179442175441597533577295572921754599135820384968548486816617907355111933012301191758282528303249030901847722335128847438460384311787956694565565947624593830994394668823180981887301006726212823776501504821820401167346852686236667362731134829187915909947078606543668571728804976544734084793323954243713091882479989988948342628804006373760535401873759018588136866730908506133447879091632347800923297278493726159680794696820392217715920656493070658183726856709149072267679373355548800474664259681174261971284039524612800798905978871381851696791367782822140693471462181725256789693100496175435461580244512914592659769104576319594224505681769003315549215202469382888955238566920941619903609288170393665599694987268008388120164095053551152816416154201346224906277116896101907757692261890435757756597923209115388150746978237712633600657458523835605685931990663132025447398029532702569852771054736394707210663290263256969467287929447466884975842654692101457864305836210041371871529293160104486275691033445515472435246433502398470229880252871949245292082957992741462793012590395263591940520395359279408444838937937959263328254480903646532008252405750993163849578946764391316264044897648526480021118497593635453853354871025647753327991079990921331064296554891487981928847907435746563348908891254143366031816995680457354914064993700983975677709106203915752914754565320467055814722278829795919096433184325145710998694378920886905816186013288674817748826736857746686610817477190907090185390595684412818676682662748159147844502354919307588125883170040194225921050468905390545711742900627164128858989960536410035108232468871706516366915448666985903907665072293089069707752368058297137265159195062966776435500523579330269161277789653270831906126473400227787893853521705972845749150572651730011031612252377497470591333960941271929326353092542400476535030621864806934565228944860656832072180479061003587331680221736984657871976724672661956194023589796977833635910738216040297414532310738269854529618663154915635401010003772113075321797856063021930715712697932772908603088296897673187812089778254986044311503818667315818689329003269152065740547326673947122414857398245021257017887642468915561304605018865947785375178952613301251584469837796878279054312651299318889730622665515288595568195199735949409531774907621862307760578264955308556649170674976678181171662155944402417657325797224836062604861435643978400706573642339925311313135368100701236111064939637708112527990251355544524020097948830026825363742547865121345846929149928389097818131563860756437140706101744896990927313952879993111636364533687695089621045048860513171570424674889203033918015132234597995573467619407166634610209198107368991271802196985712800998770985112211851207330567514444537368392225870207646104624503420732186597063452199123276828018494266153838173964849681843512491258595679172473747099987824005052199506480726385411631836820739142180536156838721664659691167591672804899700021826434036748957260152083688342988573279108667945224279998874764508691582346895007233670383636173194526592366824677102774099645790751735958673381479942730018768281950652895183473303005164192177664996582254976124752548538504706173848641522731397386494741822753563634536844534014357638666573951936254864311471076793503712711243863841057493613979002934649570994584299442515310567920924909434006173280534634115060851707559634426588640167493534003762927799440953159608744835813156484354184461579066571785308372058875208960178007822791693632917529675154597381547464427322402325254315884041196289858735835704309561550454400908826135530696064754185859097781967543947807394669880527927046220790299332196232780352167115187110456920685454122161237044906840485078572762477698356142570590190418870421824093065484106789982255519586489666020685397560894724611583118580331016717973558442536390707918508090210880451948348476913118229767282718322489958530497150289026855025002450317274179103405131920004763393799314316324678097292480369808593209808539398901667100097008544162834038129875809293272598562887823611279191606579981412018929030347611603134239424869833308786513088018387001258715234299538380696881493689263896127910604759844386705803830169130317405498893104009220587988566920251465215610379643217657350252857094498077569971373231386252405117061370464869758165275261232277402211026310444571491958338377595497146275277162459121023001565024942540185455631613147432585746543811804152354380649379157574220846660759812863394437828601326934286943141580210092462869190044601665321414682892073018394718571987319241565040372002095961719653070260975039061152344728686679776780689972177504640361631515398692133038882285724509373816383659955539419117913249823556278960530957382117423719610911467692876830597216050118519761930456551550772089482323562711768188118433651890377858868590847894551197644128691124000017569025847621074829576352568292160244782306294752450341763152985219752912813050305255604632967074264052625782316769028637781237792961696107876704545043008847282720548075000314326576409598885235733609228372857163533685882890024436389578318802063834340303079843299030453916543428880504542419110842676680356052080212880526029543223329447976281074930611197604613540602698731082745654013843892230832707770072404170193179652114653677905400831552031975752187974653473486203472066107138608808947456273238746910684511762079249235703113261447041193819286606409348715470435076887084061800691368117557113841425085114029632765556426976952815919701336499330584865770698475490463370524357446734955787304976440100330736507149829018172312922066783018941227440665698627288003681059649516257850811073235086606015725481366212657534910992532683883982215308717617382788568279670256819126115541577014916761379285222941035868885163041135154977039155567620793695645026136026213528009625977671302644260919885954048613177155953789073963204391983076674527727297069700156856239058440609360051829412389147594836091236143635173406724569306240760417743068698982799341539662369644582982439104583780448998368856085566584986311593842736441068338248763108403977745405545221137839296712099463176955954993437194781633099917805937509158733938436377082957368007444497842690948162952897971560210818987358435654944643058457287728574973946422278771351266606964375047735435679255173260672851151932662051656050213798924749573781488298813593304072124569629043641763296685410475713627932739984965137694544307038740532838886134347906394393272090102319820098471137021639774567348630619962956416385042750935595881122692586142209113331802674988424714811172340761483272930631874743913481786408264251856015458686839991633009611576764989517346092043276542048174865559502975594858731204608697181303233428909231516001382747047918636260831679277456438306649374957080885120965752197361638026511239362983593312293575367113534456749994598413089577864462139604974290728139762952529350926519591471543629677474586301823045129417675891977045238960574635246609375990768864572454443892335050760470856500231784339354338811857067024861191261008406190053342484775613252050586178394017628341148663440621731864746466438227855350127322301261054040157983459135103816858456360470937625021029763520644384484367892694025860078405655131806010727876811734838609917627600521127424593182433466378053763346408051806951420763263359487574770407517385602437823283616343469720584375721943787059607796208592771424506011263535965374830818137532897158781623402146431168274469350429060157666898686940750443614896016350563804960722427010264963734217526726191848346197419752105692276951705537993130570954904343701179151702493154975860670465132287644394042155107186703114218649402740173788080780376220546899546379877329020222540490687515001159818947947728900891198059320022726464193610191955345039576880931043791089277185046556158605279759570735282557403884651395372129676085146822827646856003149653535213123099301965986445093373040491363016133907110657962276417341589730550659055715323735966393389204162550768556626369698124406867635416822536233996085151061633199105414988833184570505666781591401425358811172835598225749532088105337677846984140029146260993622771210946386936206968277382683658663388778274275213360795875200860430209638554901859537545833881462488082564187691147210256163372575283683319936320804541434129288983335704856303602772417273005894184422075674356130711414898979213514646877226210279082571537608000127372776097780589375324551787066556519573145525395148595610268320840826876026479141272299682488777847833859296150570201659884413034988516861409799277300697731624986686045357549174845656524418109707586995579152433636688839833852482716238647739035610993910355186969243062721240346839052771254906215898258561650395140916227776633372975146138945517513577324069699058377659845467807031805373583814940845340979738026549451729823538168678385668808919090605638791460200178294854563888941766849362408624895882358351777476671552062489259221492211254810137444860127404731677343649946778422150754404438281479729981789305440270680202658751990579156328639177125912482014960375508772562387854260264677784200381896804775373725894346775959509161362500047484577853891561121561989610794974509889883185541342062701395429824404571533302904441725811907213225441489099166157771286997599141395576401002641275246520479731973187870550681101309973072062734173558774144262285659702121738126847309476795132521847250786178963678046109468547156826311285158441250789836258344716406272232707143824419092250182014346235049326798031838049673160882386600566166162458924141510280366444146061244662143806883899938419534753878558919988588959982738209695619069511100517387215299842933110233666852645530759749232513290503114690762481674031724155272066580487480259522953335514137532096124345098404934120189565009100050795873253058089609819050558444366673513775153297976459278285483327539719729277568017054831781141068061691419961040632572780683093201892474912013489554927948367115796070527592259220663950968580436251841448940489926668626866928099108930013994164110827551225055581905244252947336887279824640636425559565729712660290211049626123198158161596335289150280209080011605927268082457363477690783061064904767243502121688577656357130240754367922709093856605810445633328867095890665205071548667172536143727697441635220366602930650846790749348388497987529569698413487590650825083919057293636018849978319706024204626427519211107887996971507329657385357652706350984357366978737517982481346387177412341406886655212346037343259710927542517616614666326029618004558742486988811561909861693872328642603686687905645864348750211201210592040576580814817443150053558900485066786820162595367724120228126007918266424909853028469381146063688265425093140837803034739374154966486226597912886087362375791765356971407456427711631024589689957746725574685360764650944071895160045656948449945522387314084295742102558819842828701944735944600128543842409505519858825240633026836336829491626649116990674409169701297489907490315387769675482957328994468224999768287760949600406109068095825167565623735706571970741254739221971098040888571767994242075739801530187216104913534164662363335723576369573934369218574424882218799624594119772189436302114747075459999189246492508155507914086459893446678720043188431893566879134935888556916749302194073396983621843891998532389319966053831729788085739989821336929524754230420902843935175490807571704051068601902679955057693744908922528322964470478119797618226767513109035510847373331898044319089533796988968539702898306315335207600652458478326567909543321297249872834629907877910914566733951396915721432710595152805371998185092550037413446775890829739977373112133514773562208668173188671714488622469996514909096247193362248761441551276869246069990064737919836615603975199152520932061184301882190784215607311031504891090518589523289485847879361421775167960475633403745641668322624479857746881613320566325546355239448282921662438571228339631057677513149459905275646495078366096023310687329031964984470965088385472093856506089744764088139078420999433002323009393785516385031818725301628701836487852954171071536382952989368114589039844633170788932476528378838362705286038070039599273315770025133527068747446795723478137971310955234341307693313484112694955209485631566742582545328755223662555708391101484783167927169245713562275902910751581786806382509636379573703797499274500643717919521294393204799030007413195012569658910271268211537042582492651433184618649735597461378854504027774604373807706650119634431588227724228321718952956057912399701759393350683403555744960780054121915201284628737796560145725276424138460344651380349154493216302548108417040387417118891780196676205556441105407916828950905670967325140710619195044654046274461877203700378526318272860787983632959954147945994190771015747377889259165765232512097745652289597930786505759596997817071434716655980483477065773670297675642991438793809639677982815400495933737199464006700477349349842401573915084731210728856276254239932449364800544344497705111621211909512735684119572009306921044360337617782872355789554028751810697403762252780803951014205087449390469762481944386335591298178746353469724715780930817985023878243118672533515139423296972333047230189342995415400711162995615328124968764928472923219054769202754900112434608203372135115999715469410363382643070188922934263022088596627282881324740619241430448347347955072486622834111449702965546913833467756177371834042202271047657174570120281077747924550501612874562201887768651905342930243122985665360910165761083779396331637300899973929840535739965701327729236494247864285354776095614040064956031833085575261189250595804862554808496333194894370641812083778010604308880058684443663246279027732495334603939212089241476695555094481297507623836883408141249028884262659553822898294047869032271746754919419205423949551331147499915854948696008171282017280385260302535119338977860741848474526187660777083914352562552956270456520713602998923379857283985206012402749425366654173991471603453628415285449479050860473935278859447901768468474847628244183623430922277563067567199336014388497461901873146327833604465302175454698126883525899808869730263605554708751758276573722055711639978127495302303489321159185831838036477930486742804081532913261667062778412696145607651127038919291877553201502217134399521041031493359624334963940671138562072579807343335992124157185704796826925421160317096650250055295083402994562194223887081042382647471345258330086039293450593491620177588096912449614758693874995216586050744591242059825315868604480241406645979070711491292134007902364912281192439210742510432571637145894842889736211761842276222609117045877520794681340061383240265596474641829231544389618925858751066174408997438475030318523119479561970495957784334475273072535221191887515757205962068604058752280878643118053024598389704988561368937965042791049112326453486190714915666764719963755567453758251917968224857584387252362214327969313434601241765600673103232492830841360292809173557562924088587695636783199638152511486664403082011636002534782385712647824567837777837854855633684788297412937467230550188686137468343502703325618053165611792782751876033246197021752539630619459085943868026747059397810402300158826443568942726786831794130911294673699165331679618239713223945925718599116029714500565982958255414519323305519214005711245452926787170841121381754448444036673458129545680770891614327041386722192881256102622726940492018702500358960420639373275439755396985312674357529049485933246855508333347778307700971968166419889121988544847285874817323790512688863820639120064355426868148915475985336898722033435428009107664238911438979333699675066927806337070344965265152567351927571382972710135338125174716015097538575950794431064316250426631679613147186840858468135225062286472166069481520515099740760483654640701706070762933778110249813665266515532089638880590741640977844694302605117322557097252256520304599236196878718824491657018371542554880253288170594493414360960581505072506563353713791611145186888587976240283006165872894845630996596721873624618249932613075427187953097648876298752968222178797778524662232374689664382293187379226069418088747486302538316003774564906208188415599851578619322988891778276781888097769594715092736260921098219642794440518151410746077632961959813606028458330107694689276724643603056568621266801596719784966126523217252468110606596127084698933413491411498165465303849273474317342238748815263915267497054118688919933525562326725766215644244245130178943400513126791026942737969569100851902150824597962779034905222526382313741295898978768807940940843485706936096993734734744830836392286892783570881773590462028022263390155056088294827886355768424509628925130072814810854190036781227852097901988166646996697881229138672795457217221170658916804368785013779941218244212013696571264227178564446951792727290361802432896401776763188748408540163091045363906678211152863439107705598881750313063635111748481390160723260770138231095268057601076607259826522305173705112913527956372463515141697245797748020301613307110996224281593223878763077839376656210409108326070621330045362112388981699532268577999726472681489901973048441126872721453253216863366089629612873711115649972415406403571745316121021335220509031765763185250564989135457322833254464827438856063131377875057973285148210942680906624046017919897874968635130505943019948013185498459645529034466160594045100709511354673898471349682397183045390801420447735276909557356031851064391163066293382195834679065257676364796766712162439368878543705644330455367157415614958813635215980383988149055636229762103965198594016339986395227321137289656682262095466260758111428627023267267280398942404679835338407529126309070959862087896986513801808242723481966614096195152139775340774493686582406589398578764987609209787220338337581964594330337691409426855366436902196886321568962227965466766496203603575057411301350795080175002464364545834567041935674450457215570305725473144325999335475134523153707972546790064673367427897540798213937392659683595631411774890095589606093884619774523644566312249586316924626947496616708492875337950440007698364499456883434252714203169363005639205552827684589149877650511868857295364033977891556162403555996505661423556948117297425605353484570818292651071809890605705169535687080800513824128923616406636780279894946607522071291710354921925301776143270803974514263159527044002766382404757986375598633343655814609969456465275212955920718449028344910297012637020341651236426951999614332200115740761848551363687762919352966529812656585466830250146878371967018307287489229486858981989616668139846941433065655207238873785308822928125926379970091228366581714749692432188621209156455941513267783109176614774948922558082732262452331065929059026913335207036425677787005747988850457089233091997465255534083497973453598162183938172192901938046407777482576130623667961544559607262525959856861939132507601065193054662991766385790042981418082200777309733970722982943263364577412879119909470856575688394592417824707959960897597688699023001963123928828708396444525699013784585588949883367415004857702811510725494287649892406342139184212707870768331893158455957077577133608878704781818370570213653205892867331509254770056921447463703784629474949834218642579317036077110567891358257675185339178892637030734118621617990603824823061229968462256049362682584748410306468967544236974640393733534306615135317648362598005345556463599086546513896748833427294281174663158986220340401794118434815170292961357420418621654389190045937590283420781636434769875668994084315592899027041578646695941716390826448937177360506849242734696701175300760547320540767835684977510273161810894856154255101779519570650521499493839949497491844923245965799204870190603618469983942157944966069997058051863273663817813863528401212891076969716356498562463539039263403987938844879488452062602561603408500120783105732177722388084877579056689897952266947421097931393486512937077185984721623457149097060253376727420564173542544808626940903048684791476095343686879253207476032548433492363520588527222845377769964268883932919789052310311227801860141214522742738368654152979287340586388793642776569575270602683781309375020437963283952787742125437146735495764742524984026790454005624734581161863020603146562048272885927593371242920511203785201745392751650579364595148776734415496718853643960099762591689014676896972334114957203600260697367202855042607977614806048662039857411725475268731144378436840313940464880403154986541380821772267682561025660860330047741393227334018669514901114260244581211807586949081641645879185891706364341859647209141357201280253415091514190767257105115749520733056973125695004421130801198212194794572036025700433001273790976676105593911045048798185325921416958118259488333543042246447791941555233126627366699043890209619241378741946604526673235370685615658140241410929434823997808436338285420802096669840994983430836357232557862048748401218695934304961985531991426657006128573459771268589968009333817476615364405438528117438348130734381942243859657419502580329776807072123199260667300257324057897538279602385772707588261965428560280232470115482328671295754312551909205737451306311074506330702338614992719218255371241496693859763923317899777536483573721998875177699794119409766858303574303641158400962906404759671915488842215600992964748151197599826067735064706721174950771148771806726797242603806205325130067138429930606305994426416825743412673674954808468406578550663156549923569271046821662883962406088132673729797179357737857944995115570738551980724481544926392901489533471211869943047689830491895893524659006095363240177367452356547153520874843091399640645097221997846173060745534884422623811318971204640027642264880573273412934334992374083266638497993546743747518563186324045698091696321008565319012334958381883824809280151676973317596531757497606735756870516057247653995557498546193718140090767841912162312270233456216281521751168596919257211883743527214575461047207595780592336884509878797291540172038976561233589524306052645958331200532251749247499995309325130388280907956325941566260145871619685874002321375878972512435922356608316649985169634839376254162558984119728862168600387566805866809465114867016067348784980022622244538094183413120494370388660210544096070757201334929777776521986729169381934320672223104491521444459427566486856508679148918073685460601695614487356941551990722679468450315366138289952970442821093938976409081216111026107764668403844770412499241310951500648887271947928548220901934783365690049920110096974287779495248964989523492288091266589763866635080044826025421831847173083073548953640759137503028490482471689789863865800255450429046230474941608062608614486055250423305584633088744804986507896165690309130868451726449585771519078967734977418370264729276374210965693365391945303192470607088826980102577975923633906800808819301567602395920446572490552455909743635303783983996682687570556892202842920204481578891084647173348283587739431691759087370134505721488695082262898093085448295213418490457543925289858193500828070682001201074992629999178584029447188107517791025731974220527780655607255304712993725750128839280073418268597545239956358554852477842891978431165456913943639472878112759200256266085589192140182667821828896421959094407395445251822689774903559416027742160557166071287950934152225035167624024255826520831389875188860782496672112980423331847027884346747650221793880513418556970342282343159554600563577448318221914891452764365078632319419126503486703801602500763852822832594819531494572799457934526166982662281376811320882375341504764546715220156147872134140743979598500985249011374715082995652510100147931719639354428052371966316468381604201823081029802360934961721554061017242980578117666469359049472335921288757491173392514946964935316440195228823682384391884190980095892738401050650714503687568611614815828142455925292239282657858142066069954272661675090191019811564007688867403945546565158843560083260206433685902982931327764259417870489137684350139349017783511028019101171782503796553300180655529671052125649389035416868747534220122888894303491156099876598275130648198871306904386720824710400470068309012581805938589121247807026755207510354379633058642693766602284985989496467261152173134832565755798577897241579652671910039587348091024421956420032729788232025685377676888165382966782113300021085648936286225907445087984520829873022328201276635879479376661063958762597234758200488602656614877544945825355091355909421617646783324871832369736580294000655096541620567947629271496369579993382603052509373686053811487127068013529019018572342388898839669968554382392759497095604376966798869409432825949182138847689887931131784873092214781562327586683067601851921079059934817777267391611030655201816751937783250865748973614572908203871724970272454857630102171375089435717474625867985733375017518980540498510337664839055481934766430136775067090862665740043340289023844754632686657459477174030232434378923843472783357448427591452185825706381272588332543495219316376051223496706856405773113683689062618209090484413950745539590298390481354335739312849016674050353625112847659270357466463097405415808331119204950588832748800418680839181423971599102704402809764232967657506643922418613911268776576856315017186016080992122302142241549070157467250414942158290815592785799915562356251442000680672817227735385774209827667408992192019286874285688981911324972852386098284046801261090848058874187645549947992748619610207529501550170135731264349536217780998981914723876074757316313137774803269852001606251482893238922609732358140739561690169054286144278508394798338953274194962499095854097585875437917965419702883963763802792329657971719039911433347240598860407172946442690703060743049768237014313340327825376410688302901503605541277637076131043408921670264344776391577043353689957680194931669574120347562361141980417741767957044517344370436825939334468816137565269941205437146886441311638333414643566553029227721979937439077741561354936048534726640412994075485019653744747365225708134815817759145582949679724012791479471845075202131986378693013368556382007706380485397123307626638306005060427468394818196480429463712041307599494592407684433790803891455425376046802596132280816924228386441767733161304729085106899401202865507212586624956575109516237846490090564418926697508811833853687055039305871360155921190194364793278770814657072239308811958692981958693667077649799696261343907856612393300169908878105391444266179541360659621587333787962694063429117037593213980125444605932216659650740521746797908121434996276428453643731156783631262249831579661587590061210576689272288078104404374481186485555120267152554281208333108519327959190023267803592577372331425368471059052920505685162441233730447343088429561547021231255521775255346782573049207940214417653978720881501606297094808561663489050859269720746822006788823495285682110309638039400142187064207226236072840713827860693865774788687893225072300075837675638712681431359030433098799217277478369306851134305037599349906208057957018275994848348265728672466874092544649394330521276295345045020104183706354969390562186043676764376215934147373632596198488505414973460639735238578364510167499128901911469598651431620207713733084052615905714934525285393105237210969308256665902765651116793341268543195368398583884779276302313150820929298425282136706965789711849199872458802549388816760942541769621536462332043769367915369894717416409150201173106442126177119094437978701151519562027662586660828475504124951442100237642384588909034309878955250605652520716646619478527165522749999257192101878669031626336719858299646925617853709906033826337240244983445011083953610066370075021038441340791776693717599306703631801833367794035234208174049190150169919931146479945792788786741012089377553109431798461490210715938182091523971275467369202523913887784802280567970674819317582592268854992002433709143485593358787617074188348121963815581454944704413995765648774115652747692617121632307775015153661978080971352470454348793299075366292187920149839087434894508118115261978550344474060505553762018723698572664488971382062840650502477810288944428021978498009662131273198797042871146785309397628244530179444531710453471056791287059762898099157250403138210330044299436133346707178327258497802753646468964098669061621051142991782766875437963024527688130355136691556471545338934066048570918626587113605629915194446035298097363093739927154689203617830207678338963164147362002167840082909940810543729106084816863562390579831139119134430271434572966680655008185074759529711611936200438089233849891537464688550420548541866534233126460253281334825528714103470653379049463266288066356560084810788004609061135119410569042710174695238471988151684065006069561925887672364573088707382582923609660761415894616777300476286811419622080460158151495602292791323319099347417402259958132577986157938982080320198513970036474842485428330633024778970712795196438328881619478053249673997151722292701678031801981308801868760871699396214783212844768836910698665277942563717297225762004309658662215438870159848726316702544342544175612120396655088628660650231573935537437823028604384302395362257995720845699793972087908987412713468907117216855124465866237409607090750511982777392479884522504087898443523744438643046914106011817133380124020674399284136392716426089988270740682370202140479806470877978588762527141787992517353599450919058852176071070486667286440382836851961501877245919997917139013105438844760985664918693135831870776459590130580355099216950386248006749106256465500103752434684350260621830862191522116698408197176525566948003751773910672477421702980079079708044134663901663621153626846374836762237624404753065265020559300668009099341916872278771007232609170798538898087312003832023122242251204997442568593513106870421239272081368496320714109482117006960470309109429204914944866507797899774109148741701733109081022260944886383483505994477506899066468605497532902252441978178417513605163372556325950043637357379869353043762266085135996558819915367349107125528171842908601574662738656041466244887632945770821959600773987995427524481007300823528518008514826459793511575809787531316255874236655936540953255602434136590357048014573212872389611169303913766663374745886693040748301164290331845909487159230328630839098715518973664677828564253007190696872137433614529303944914341107180284128330690381502211967403023851090861443583741084441826262614263918622251456886984822803858877631418120267400285192444491232145619549532936674576095500553650446449168825984772305826055320171804679214653765838690034057085592658109533461184818285090624954170775539879539664932173398839449329213396756204052976380157427229908109634011496694412607581204485619501428427835054915524596387038995391885488762849799137565055720156014006093620394030296922667578045463388077337865825944106922850778414708782237356392304539968670117294889101877811550374924722179479807301234291934518146718592555629137704210689438313144711238766953929973048255611749953314133818961694348851152451409418347157034134456475114374131823213531589841859011480793806147001997819838546877119374102970551632661517473086229096103759635382310879892714609682896521721275663523339351056860080899143610767802303497696850817430277352231960619040426820071182684062390022465685509933858492948504355548283857995453091458244270092556876096344876272409675546406484242750942554644329837374838951324430090045193854386490208638469987375890507957505324607306395349462978351535894452719834222180175264579086182394058846864058744980565314879123575127314032899061434509852074358968979398655875885210700450629612433945096068614780738345977331606977099733995670790229025241887520883281212646376031519292075314086186602491589433509433085544968311798249968251111152705658769907613842648807460245656237474325211308847536277940071201848919769034112202921840669703373095667009209898134205673020400724847094834882954833244326649487296515901890162125449447521759603572144559993756337769161373298153303912000401555368218094724493048334514477236345893175311581448588765440434544358447791697539943102024746008683124229649538965733794910299810330350303710972620329251365929424834249909812235891404701995227782012937342635413699232268791702262830194711872481095891378557278234614378725052616335361077056653946786050658618996350204465469526967563106153539721900623590290887171923082577488685660835028890307453453701699320600715538016285939861774427686911811326298180515587853701022141271235312734515526063068777998639907559673931810164812180326742339634018055944735054754368381588481837710299729271937566044387290156005511247262737660249003349920941007904402445605378721285602212648445142095213356464159926446629673990999419294390785532149962944513088867303510665608559510230145039838560285673300973070955326188707146456248698845081825355587975606555434369485614072756555977390314783557131032083008486241129600805504975297747671729204228451348817418800542596541624625412026335675852782558984392255027350216682195603939359939382783070927242950851381715808543470445594607947264850243964765710046434124861292226316665134205859424224044252372778064089294218831031888923596648621964132571220131532023644209406071630283927197919608482318553208177101129770345095797160065374180327653602402251067291821066845265981380465076182010013681525797517413430343363710669567375949088786123493927074941691844981186256628660233084965826906022909398793833286630414217286724451532530136700191548549098393880654022472992476022292879987255992900258122341609258461312721525679922609360366820551894241709326928857424474945717002210388032285865111896386512226209620611330622801913370299095007206015268188987048245819077124064737173710807591122751201460044227450237737057533638126290689084651173528335004137956465420923623112524011189718946249674477841042831598296254009996548617267439997644899010575499570679178010539759756261145149245726806763538478774257306319709523538881319141781608838071577864453775903572441855894780950058629990909621710202642458498846658561284887356399363604578300948534379101114929649140453187198204877423925150310043759213781734464916782052209424842130573210519456086594510654632798282311626966536251711690379761726186056226050828474530654235430910805458580669831730104215093909282914223308517885212963680610160947097226943558141767248090998818793837345689861936356352371189990968110101253629818805767878501186414467917186657301965986820413880557472748463221696443560461082793185012317851601778032998806574721634521635555550924370255327893884904534766598211048694559133385811909425200076320435339419396451547873457748849846545294107037492512837044282458777688315624240107366599984550419792154979550800104549100463317280829034017031489570889690016550397282592377300396484817473892790442612807938945950557939840347910721920345575535556097326231541484412255989474840047261980069440286499777050862531103989431707619031160946475572006700089768870301271319666460264723022831678828777295698645227318222570646033477009457483180718694724300697153407792884249672659200126144349727865624611019139158342731305512703006841063672779001885152944934058015582555334928363136424591986389967881367173150605837190700914826137166480574731954254167393200976392418473769341778467909874035461590486179474284306880082963345171111332485891380850238731810977183790254143030434094882979510810771482545343677912758806503219432261264570720569088574989377693432221148794161294585971096043065458094655654571617699921305885733224076780501554952855646829473950335801706646521994917329056459795587998819702585852903032559605819829576756257276556025786975065642531842011112787455913738687725903659173572074450854453546554236991092318977509028665913484537110290064696201493290564046934189269625560331599370820084651134761063200264956211031218924710059587784826097464624802322923383399043088757990171764468103715576456922851878885133288121194313924427203973960767724381613640251381338362040613328998094617855887511676374544690655880183482513301317540324153513974391723466740438364583694410402188057864382387399200850852122734328889395457486133500731998518558122884488644302192887981238913163421819871331069914936584553678982714656924449779935278962162942163112579919860685338649918785427576609114775936054717466030307270751699495328061349822718291354702697494667199964778640868142752642079450163956409348399544120065707804341064734505066876506490783623084939641650201820203808024989490494840436326492939697727329900417687999505902387957208661022975592849245459579287846797606262527455565772499186670228506044920998750190992453605985513388906528048722111570008447111973185815095583533084481799958452039420155817692581259030763257952149972056440482615946083445184110859502503713068949170432496295199063857403889447021484119348691159287795340653695523761611389674660895819379741802357116730943566890107251334279862036155173434015620800888979359052117544609681590362102823176577982365509003084726514788572399820532651112824163982746436688419165217827103108873088061107763878483030061413521810397479133813467939546931661616425437937214943890812615907579715633779329761709677899546503024354077472775151844393685740490418693940482098285238427363083011612144116222313552495912389679973673982319934033808006571611011515122563246083632399735000000838066105926623614312444649744693429728386613767870034542975603294103092601706533000819071975297077831333973630955302730895165419481673289431355331421511891259943422298831184127260853431223938339100438144736971896452538496383403942861066418424647421030834627746042262915401987537661950156426610897045809106995720592094349796928464829352823242553235806221334671758636960381305243482249466906528994407689091613731811059142884276945219075197968248339187556974475518941622024215888165677952604758936289948916334128596415453525822411582820701543794891512927210620443704412773257232857324190617664946608757363239440241917098970947533373326920135044804689221418001574175848818156549438011689559448554773169181377982490940895718089260781637450610248474679292080529117688882903148363272094983142287291878934466345118715013892237372756617343929691180134463171687221059517880950824372373368193962760707583018191441141387966985356792460198049042951904010288793520541088191699890185833395032463918251395356191576410629381012395316532214102512185973031207936926437744603472337740118078936502252899665501973075589192356660363028389985639412235349379476116905875287487216643992179610165941463839002127997453275523903689420252214117067801330255380464413454470809207723758378095052743551457353520363943787826287267983924617095945204117660646248797084516344589818104798297047277202857704880730268636225158528171059518279746639126684457816869652133205231708879359258628903073768675364098614999237063040031953424011596066897793159961221580515245197285119853087261119256992873493636852069443754736024492772309802654071472206350191981359547520097104113028306826197587385403489514966125068737958224834799667100725742254937781986766547390486726681745833445235010626069660797757944168615153718185800634824398507569832671308147366506238772333508949696062842653412626848384274529615208857294582982797895621914485262119408765933825510922493554676016163625639197868658175590400378804332599467764190750291916939297452717800853864901091824804261837752031615858495121230115458482873905868102301410409351093565200100304434786600040617089551241502595563096302525954156146001316430481826301927559476716133724949339958036616109072287352567688531181737126548116200573605959889822841426440934451068579493135819829980115359805612685785303260589041969785784099327615842748229326732380954774110685447918220480074641176324503025301989202160447895267796002457100431356784819151078360123791594791968114158891933010040626086901931894431700963040214889053375064597496446238201328611602624947173113738914848724039493904559668972058611743109317766084976942701865493521892711504246188671698759783377772202593096832642090016509206681198775365593808784436715548656352526098906252101767335509835516655024877745636184557516246773558738659265067170064924600459076230138346740644090613124277795447516757795873402042207357813795374268904609265418275567692619448184961133959705182996681595834738330633642520110041621885472317325569591137780488458451243814581400541317424529926053825804483729061276617539558059927788113956221983628863204544319811431315145109818664712631166364287504224371738958395637172168327722512420175259369683249805542688587322254642584899700647311888005365394375838588408684669333320320558451513137547040119987943890011186277057858962901748979657838173833026620940871722811618465554954823509242264102344076890656928726646077389198894854405650307219368842244113442733499390136790874082446901066833465850683586128262187470786573608966387427055044560900406194467846578547362949041227222509858768824234652066872283097624685262936500047998582363671938654728374583204419436694920508092659406160955635316098731966142638579642126479096868599404172431889391004852072060680709510257101064700345234099526723343311456819990399950622933872678578704032545499771261498566016773363412415878645914076734171404360887234532655623153908931721544455024003020724572218724200396166060899937028686938828720956790477477176261811280856050814062314197497243053838070987595716870851905275145838452412663828177739900545056483708303535947627556291420761561963762178773375472760369828301068331863106671673644193740884479741497135325136818802912384403913949163393463351879703318220819332530767713747739478217749779643285940470063122950397521941469665066763192338480073370735166821378546587157074706258120387745801021011389675872382345946880080751177597298186768829284099581207234081873312850640819093414582843514172283771581708902128498494372671394192523698655029508662798467733765180829417696311117969258740426624534843202504099464558954368313337692141205036710442424985826065337688943517183456882243433756537014255942186629963494401729945257796453900396407149997861255407462927963391493132122420604445302794856207105778020276191104541808761562304215372909919577443842723652806092271658580399933262323444831494516761187489755836986564696161587050722995650297695208542059176964071294863163864080019727914192094221430596435394493008857999145881750409561067445145992291962264132242849866294802792186229300592787022193463451336675224132088383694343731755058291592910783510982079052447525847046147538136486837005996621221147005206305333550352437586945614974556278424150992024805476867395745441498627682032374002779570618065855102755852760733724714117781065065969182639155532020161991425750048496705776912866229625909707913577205191389349480826329551615974118519895993479792868444743350509011379436087341899576613910880148827503009431547507149198423860234507297950308872436323069061700902128563462518463431507784883406127149478532651029319682178109594614042070428889901990935270793840036711420793755054108362097563407687446567212384410901206530699282376161807140119555460853492874160251346148674065655806747352351744249481019926434061874357855488577875231662302418266056886560425901131656499265634074271766644958264581909733337004197268338724547193837426211772046800624773792989512659683365648097197313755052494448573617088127875510085771678942807460402509594823960433990672539549104214836254947583807631358819327136895380323644909996435367603460574607131876724914315417558092827237455020485928464970937787679563443757253833973364023713814169298696152971785768997375776114930746902890400411993634960110895479698560016662467187386349333385451958670837383367584736632861718276622040649349475115312390692920674141203026261385498138178836295952470271241988512625290179211753305909855988410760859156709590773028038205216331177659269752932486785818722694465664281640548077154383293350841578853540779906595284272415011555466743681327783622437766542466564809302653099991174477730782458730394296797132174126122510906186604557246742251296314596925661648929539237975411221708461432291931199606428701608725929587564718254951637815504814696591049451601355220227578796336384326293302994527894712546618643686966026020182282654019614699082793024209724252076211668106273615243092212628801477793634567173334552855423726491211098856066012611806666247139676846433574329751056012298102517702409607940880333505326872777530237334209034549351097168474311388641477754075150735943771212448675524363144268879106343999814999894660347542019436572481349582620222648725463278213782402614226258649210270913539427932681667104969444157517455954347309073927490526929451234182732930265845894190539468718784299658649097693388912357762614321323718940911261199546483670498115990700261445362152002811691113341645873147308737699310262109272741691329931876659211077368451966148669637201577716352025944146291312774387607082882575914830923434192469250513480606993724233569667037337905294999630428195764803267594724232579764818313291928111789489168996738254462175135289380338399051847386187923920453402755500802659580854919414899612499172966557692737626573946981260442482457620478569809304216463691181056351717919365930199775512042294800425670215159374407319934616540475225852038221089456029888923305170730872148326402649075384453750599803257845074571389660751890070408937692196282658948492845973024593206902650384328764754025358454963165255825660460776820186210089222013497929538329692018821895674572786791478324963763922988853234436712311902395129799396823664363809542982447615257954382333022616908823747132258448670771535419165328718600149428985930091993379464028400441637048207978898762715131661450651659684748162677401997611485162756627116011841411475603760126517137635610959104998896371383308862438417087094995907155203033678183846121577506887088732284126088018370461323047781541368018059210419111728903674531350683472593164788669266019506116515716125328709138742016405793099506356242729845021754136389611536699116909751458280369000525460708328349107505469402005580245848930448389871555591458763250571303503727441790402871426818933101827161524866465924465380624156851032545548708431125737183429897112676576507572959427529156154097352807029736002861810810781741501635121053891433931641344052961049657038746091058847695373716760836992340770210211855491741234446220227933924751555054631009184612425095456179511391573386839862631063488795395888039068024236161628746999562566294331969494517615797935679276147016606838179309962486969511326242687117565443100581712708699486966418940980716603736106859558322789145969658166183822461993816370113376519159389539601795730759516664147544954693117036790975280404767374005912249812189430469325995610837501097953873257870434290330793733232654546309416261949400020255591122934787367753603166211906335705162488829662973005652814495093038587742520228219617961037908170341043110066978236098722622996998253902729195105482170854237105514553573203564620075500193087659448521640556668327363741458746926803851657935996670491871025570099341549001378571484495497901203132622233794071072370901045313081575204768563776844721442595544631563283478135169204887536147276639793290518216374564261506873244044922085507156407043408712766841418502809099126450234554067086124026171941819576307682813469802609376396911326422619675953934706169318554506133208997949720968578877459303523647856762808553488327612783317805840085939256146031131128365394396416312873977862119296876646058989176795885554270577332064526441336758612331850285935386445764731444290246552691739232373086330548546680514917932300210819035506323937020525809295124467367613583147227672836559808831128336473995845424253353163888176338024113589129736213583613823954242292718769596853978902320064625614980722221505263035828192321741460532664240228872494039964916244347061529546492581173858082550810253263863956464009007772374977364387570976703533211785641862128552761164203206006973506521928073590607928517466811747930130464469766758608907108218581463285110439764459805628411904786953060529137566937541991405486260072687922396896229623225063026178973694613152057514640201207512489321325150142953492151987168941846768694235414192827291221786674075961892456800965703215350594537543909072563763890559066600671480506937575781108432872590487897867988780847044016939828633397600786920500445230687322294282076971693832945819320469591382341902380860389732133330992378510689947487140460633535300086971718685437020358749340464272857546539978740794873301970579494168710806132702897816807484900964050921355684846687821181721283623411779341365130348026306750537851216426835687599058031052566678255036827713968582651078549809774948549222928352380428092146662079302620842425659399333125230084994336699902499177993796910694572912675760581685282146200790469266422696576820946514826499459749417503403114877382838879923169038831341186607217692922555677192650612936944368820939279926468007622572437513997582846131737413279756983377401890404970512283726270119849061934388781136216113899306276544008516908904375864457674068148864551867473774897127148775739256983798434800020261223595399084791195484510806207179794400971743003216649449562426686911825206205912035378787213196232913972708390994216811293269347214893787311007300270066225289066371347591034530872193544720033460785720432074304806152090654301854504518795284439510595947364484667426220933364836099613230970838582431355959893945237211964358918467486686192921042450482926867694097510322806343899662120941917689786223307269105241585551016164718106214285765531601304475529461481785890613148891135821020729731017735540616750788893738369250398072453121929452976092704028622528214152806862581573307593655160795029436382716086567580450025091044746035667216655224423660533444598863279277344368656037170508753325258451963841582779598354317299002080092877502806222701162692200899591903501388512093379522871598873413300739258084500807389738506633005716044055008792230072909109210866826510126983267217621551453124195719414873058323784444456934393617413119650888611222102293139973453895364821418503985804777456648275165131675329388362793255714206630450821962030999131857806856772980632532370692584025959343171918247334850838619669288888480594753437315276969441472859798959425262537408201777846437033289899934592222653228160828710205117154014536396686419032435515563469789176576598476143530244185479768033042447772482273074837755357988539078476818726332617024056069375877101499744925858956725490753811074598056859988343127128928945880440756715650060667740945671202859456580907385444006943024174611592322651508254820301431645976013179783414000673709103762327633431186107262909881635098373570969181890477269421398727505047449482613559412722009135970390548406799205094243345841976984887494933967864369478915682532829955603689297081139512535393454928157445651243359804394784635999997112012264445345990193819549667619414131890549329422950783392927793597422050357041472342287411550770396112266047214037946576174723926950045069802821416686275939390948851835485838297087240070168657666983048217210465427422097525244003148829817023770389992366015194219917588812903366409531857559692682392956997491163959124990557050239476357073076605165457354094592224680396526692339384433332224104377345246376078240145034330821997367284502881250297196602530990118487077345976642335382575104145508401159970336145053086128531978100212576774511004989206536075202506258313845896445447630868373268212799656514139810348758429380739208517261459837408385802775500219051376439137897004536083998940524539912048185196865646456333894326196925612130434120152744681871226054468629619738606542266922783676876052406948045256577396085929911675868454525622285614429079362752926479006599692012444410563368708046685602921653423823749422315142481172352600732085886357495602432773747130184340421406742595253710839793941031270731280564549764613754504224715677279017432401981120442472220919212348947680544198436394526405480557131963534856598762018353819151668509619347981394166035703224361385894365404022991673006151482891252008959876835955124514701303252170206671590184520194375352421200950896425386477960389343688713855085257282989981826093859605331220928512389143460158232525813217890708010980455986676508408948296933038205792976580871882597219826446525647169677134298090890549425628492592300919305961117946732890362829863787336084545276075685926523845112171977037537390126636692347699766465971663040831255311264474485863224697616450523992629950426373291727264599247633499518074552262663893354787826619358608446060581076089149019345090851983898517846255267178261367533839813395744340491728780176538476119492491756477516671634941025067577161539873968213715021762620533030621235229559297697713031531905576766113963747264212857882917900299161275112756604270350131747312882197533494230662160999163035275140953645154311029940396516300288935576003346341583468517242900426695295999760683574774906095063719710296857988237478223865169545821870074598404156279060404357724488063596763084235489003232434128028369532207844746113774470693671743978566596352915875567371456931471607121065814006164263299055216641162459916110746444377254828527738443517189971380674182625637178104847291638696121168239707783956264173719790391560938703168759747240292288233630487930656997669154540742226809171793594387576496139516941880389938366922354628900617965769200702485090196779925049646195569880090512880327587584498104463052954237639133986182864777416519192927364169703096437151464857274261480375166178549562789116651014981683826746750792202985135987526521979765226362473502194106835883630210715841097912941810897911718743451543011572848882060445251887605816396498636709552608142041315876825255851665238637900427021269222658935957769854593414012533842805343617803153082526584434287873692468955254230558001363176943734713136289680183412247072509156251362015161262066459722624311863592688076101461431897815184398707150206884872928393973080867230066944687202464058373905772481954660633403507659653668026832128780719423996749268844303809423354737357578083854149105566707369907840939679426950116829939590909054017000878616012107862136536708575901408352311963271760995755053633554581727736899218975445858219536092419193021065280964766269709564661632962701660007483971061449887568827200709579312977294633293981129747826708524616616564564779628765953466274509599298006597404247332840233192901482062571608077328922656781821517513927783309544646246072848289185329801381027593152401942078210124392817763045662684889948725821462152693438801500276651879397876681329112348407776887596337702772854941752989529902342840310882713902540724012662355329069381376139769084482996348088147870446851356981045145528903013208212163285129137020960364528257637367636904134464130229376481862652636846602158109341319378635812755993291636630833585242178785036274962487443645953385676928644966454788644860025526109212164491638614895709783621233161855284419572436379011807384120662047890688266559864749787822184409051901566605563281405595858507648681398962473081107279184200080886912969386639937093418013344724094673771985331360840807833374554200097555752448895478131555852487586896285711660842976908894608452414417987313973740896951989838222548431640180237032850326405774481507448130842355302040753942265123778073129888953660523065928660372370595707799058087755544924465312160836682171358433802723204570763968986965202857862393790085913532213714490207576788580516130229783903924559481142734499736808202139010065777203479339441658527964080207503095699019277496615189209921794665061328624320855766558282364751362524725021746162583545606458010380616994776207096934203532001600439069154922218079485947376110144768319657849070211760583726715695671009695798357075573777122575072802540685345070183133079072940276937015853351259663960691320504399821132236289349666632139277445577612056598878413506406407327298949148068925066122478682610403455576228940113117377441415527762965696282131001325064507851221401057060319335923950589197660803219930334382199580198597456272566295713160026636051952006419548424242263968972340100681074649980550459657867681623863134279698549702988998534122735283857324984809997268768917882213260565545981277094895553495085474386550015728277472767633111805515181448582474448367500199273575322998953364667963799786277408663666617134597722535464540076129008490145861776488130204380541956951733315975920529239385710373373634460029857853454345924415315990263368573767058841737290035853603585251058308534840752686389578301948699674035583964180967361683292283282571433907146279558923269827371073149520559677183282296294823420008393209429115706863150347244223724502687379642450217056278659687509463396262973440819119682758656061417333715575326343444823921472043394459128782624378719524925612641545762009755108580777496651472277745276179233340247683722612916685356280628862940649223483562072142828076437670337026467815772435255385098927285702597757930455538071463002848274500688190588371481800937733540583900873046581587745552888720821958159951534318060028552876885092277635054462290151899543604936116852612296020929019804070743927993044490188758173124370090375751339940251860885960087821760818471255837769059315374678653411174080743821654269192235825842947835612619316544475962084007961083017869240872839574103569936671923624799467972217280068817950850435271089961637770951666122658840635878238978359003292425706604434514122378240310792995661822291035151442572758693822340453081643385076710659816409254744340742095831388245635589470703948660097260778740637924197488428425389301103391909017141225047764925825230584353429247292186092112528687691307701409383819314967268418265343999709763524288251364737956200772019164444503394968692534234923465320404339795693105547417904816835725979134977792905133967959598563841819093825866063206924183727924929586588235541404722484522354360057406473676484958434869538244425764285601050543047134146881323123782483778880905250062208571504485605867149721132405498092650442810089200218401653465286066526913550110247909119868967139656417837229513938461812558096091037595857785443505263850333471034086352991363325960430401804440223760988628040302784981496830518577026394027566528212211791779628136571673052152793467824962874586950629515297417154216367983911579207186112288521611848140144656727938792172684791866613813563819224940871135355595482719916397393262940520161712783971978012655956149203364682265287369070076236434998709497338921353067977601374793540356729505199560625858601000532765852083964976591214362021955465984067739450812826662564651246543855825056072628256949378030338987813640472529282491319222809179949386012532363721454676941181097512944421366795837056455480664216740271908661282945322691783927829919716183295253687932763012135353725303346415455190861390876815848024476583947500643654342651164404731927785007711110643681315371480189268262339501329177172902611133018945428292925764713599301250689072951372505221927331299619598444872607388458863245692673034577930599056363962596227715527422591100372098576110241932518670527171774764905919880408193276285357554080002757449088537387493295575897657617234745924088975467513385883602524184332978388620383881686671044643972172006766949772181335512531281437010255570605712553944955721753713856962909008517504054192278710009980726907034451091184934773655984670254689473822706683243105868747382815376377805771137852111380315743899144707703196036159929670392743095050212457673020781267002297175376071878221150133764095312016877263498881116268909613771942331537587334190184429384459901373181651322178105797331934055241093590279350262139720984719462185742759229771115240763653767033402901042540053410779081387068871615453374354229271003929066039311891098621755874975475750843964742596098662019473657603504611230990854092996421946654734392215583945549479957720164166626872651988896195292709450726061842751497792337833683946584970756930183758609810446999464924448419742279967211957274329742010406179201405344366299643291122411366060771015119997418748399590500352107229626406285904554085234305763049852703445102819587240324038106502281346958416689657616424908047195952269594646449376216703705584744671342832359865748358809711182856442596346597518240028971032702971705046257752220740032097936529366205705229408853366173462302072082011788204028527019757173645299951924856524140095288713014186649600712229723775063218829355515352175816145676481205376587786984984370664645717462194337020884724702924482912019125363061115801845169119244472601428023727483483627158577668688281189061212610681925417924226802205740201142040280361337794456381268643040595912713973473966458890082935567443056599043723302651406574334232844190997724411010808537705987841576886458587779965097496864816598704148410439744522910862107796702209948151770323349021818335457279013860867082118427818260365211082131786662258348847743862519485901634570289073828038696615240646976769675047824906213315617280043449954968617861588522050214487779806236695816860140710697612008830165040763811311977724037921975649249199634830449390154080590903566676145272271639116616726471636607813051106641268470348640203841136989666835334430497167966399222561198742357285161597104795033984328010747506241752688900753919922903372160315148196392673532392023017146294620103112305557330630348350943168958373235785229997579370153124820942971016390184230801165677463933864960137505737887406221988808294031214791533506335436270055791835505378111330722614474662013009677645344107156953486971173125308099273756316859826467609430060135622685800135621040396019572297667668591314174672859820563994129995608660115710185990502311402605021097179874675978777248646419049099016384971810252736395497232048187115299180895649221695166131978030544364499085180205648559578957209720772055571130807029380079666940215324539631584177070606379721981062067733014974391838043488425002035714197242590780943393975674229086258167013276039402725399390451859707092219774961678987782258818162220992059857104245207304816068422623271165102303308552134602102755113911665395313900042752518314596200595402420222883767265684067248425375735947565625741851517796226816287231972752071331167514320844700007010405096174288041276378254249101488398979725144170154190901155572124525386181461197508022021778366222694987133904447725388139950519188339373754492868251261407176127573497268455043209334743336339282351028761258086932095895640390690899986969211996888293762565280020768970683698051056616340630186783084037501666506421136399548885699613429197589073405635074600632501416494315517432603405718157059060796501682125722380335222521973382017378436565106403210877121870612123974890065736951250008210993824776853229487398623241677348079912312300390668197140141970747713676067579452086825622099612013939642211734175443352804552365201162243599903003459206281345698059307485435528794596146840400699814758541231782142862798474436908558086317837887405648087538307387718343263929173339390798457141460080628981389863881760662574167696317876539341476902196406665023372348897173419189823883232076211826027679606499830218792496274290070970292609073667345046222573774336785142686021439770508496080452565333935340586826531554145358517433880342049915838816597551078806107497171682663860313892715975375246317053844511246654782903671360309341969043756639565332992759473531426154995511804953714017898404168273980339655176500408167136198336054062559219064244425152225638878975997055645687126287317670740762986230438538198848499637109765029963663314377492881262485706544204851948318255918832612053843508978268982654947236977636622962824153676807701577873554278391176125339715816813040850551770227919932178271202492803276458454206480748435123537731669099913095974661946234515692226003838534416104048151479671449132670873506267118325123414760753367898442421334695413259446370331218686451733354621102887128565871139219820541841808023956255893157940989399023894745372025966436313442007762304684189538537469407109417196218865121655088899289843531746995069855980118906320630653869454034678087160792985099450972230399931340445298743123386472610258368770891092064624768817086266002050234865481537110671696108869134059186253950951326035799655183092045800954907354713092535675193333962647321034666154283458127293426276000528385605170321073362161571311289274617518009244586495225100763199435438875622581927120072334590677799774790140948193765706209018875762684063121995347746035952059300006066511539976976070247457825653768256539585026522619984822927217464777420501449428027516640480593370946895480949943201491123456655570219032539472070069664582257071159084453751378310286322135044511886530067497084120204440373609984764384936186879963898179549239100434556551468006006062381998895638789324701568978614092211467211738162214880288242770943204743392467531322094504146610638074476041550507205032079655724229377037927785738684038943930801175955734211543539897915377083515657819784824504478734292775437878555494512586777167197363364496496595597474665442554958609235852712184144275294412994617071834621873239345616087403801023676901919723248820315489069749735609076061985483755366287387209680239791148329391946598594107761429755978063761595782267247269116156259315150509123171187536545409700391780226857160102100394315463916871812695641322212050925355109465850648085801629931877014770146078694391127162609219011681834906831626079770997864637847990661699252799283710550734538191555478242908153593282776610721190959125670911774519112375209115294762862019445597464672672657938700437912273523592127062750575412614793150818388384302164364145541049387546194535420722251847588208911655904676197613951934694435785883415750877909386350372225024110859558587399615488213574457641626451729891508183329361545371862775270482313983731252183437287304220794004259011300186391725677393473849538829525704265365142247918480496997029322586274732070502182901364396717695105556008671434569615307449899998290983822750083797497818096540267218490149496702634080112321243927878351902887982186198104191027815492446489861190556891586844455633994153571821911864789094973938924874069398449766129048955722969516723518726105645808198375814676625617380829091130818468783917134632030772114392850794092993392514522056107655768642738810329113265862625993155682714258294026215409392070283641468211492048734965883686624902403493688484788322887359723737877754646784868577951743938107109051751599316573571359767838682276101189740103373936485835770610391428611479150642427753643462079348492515750239751842433753025647240338524738240025676373114764296526202307015044693655065356935271654756263863931974113354467271987121400566573864685292783541386916707112799446350236465461880777794511619531257478649770503371218249102134553139465682116260250791774812248771852905719731610540107499650976063636150688176798283178799684811324877158455142737760182164640334744695626096400913852192805293070999767935533999738026812685170947007343497126334259072912593490127452217725001976047257221361294877775583275224724611145148563558211576773142561698392355915313515535926008268553417600329642425341762151532680861029675552365817095502723871262363113793473280784661973897306710481996623363451465904061470829336151006322492564450080911895305567901541050119393111863989866131601987507976197139194466991349415299312390153562542539951683731288174407329916911841471793246479084350430419734271595021513453949902696704629461543285696860619471414101760490578524697451689594199855645937701369489438608578830186026561226537931520057661991905364715374367832252346580355384187281881453861263141800392583165138466281200262509764718428846910619887425165877034199530458897703874649854519445204764768835670588850166297059126805988650659865579039654157407099031087176920718606412634469301119963358788021464656028807160994175627398904611192211811602126025981616266755678235442372972791067276569730847999552014639700520180377305385208718117760675999859024879340949438740899184419182370259281984129149699414262980894205067840006498782398095584965737695426082267105306522456992497306696047099627171575165006253221436228965916104442212694248652466844669962864836086343772722909842418287688151425868608824224332783966854114689376877441015941970240507077633266009057185158879024265325885497995407908963355719959170445788310329582877226123892006720443928601618776284197974185339185019689638091316039632547927073734400591379214925335881460961415520349539802176693194502740982321843513215636987901557906976353054570477089237212561179699855069136015738422705758044861449105995874891070231334845307779313090739188467095591840077507837685915148684490418633271925741140472522435288457105049724745858994336297879469997087708630610309412785055135206999484115508600013356557230836227510269957139233065269805225073549250201659941337388371937372103988225263092529146902441419493685335993769221833634722577077120147494477336752284438050677763394863167379613140729551833745012376611981961379668219883643269759952117693670176786011250310378416941412193142686311436707795233206303404882497587785931490514713742936330362933051476696484300979460728232546066465693798784529477306165922502482523402459502603699648737533199976811668081220470160388656902071583097827765417540326893553706536496185688944545384940474085430314468419381577143114728241865481789276287769707353747622266547318453012952839466500306464422450229771086318816330483879539009197800706621849712303910004145144014962390587937642842416250132980155996560563696688691507358813000670317641698546863061271621047571935366086548306817136388647299577306567002879555952472484989837817379996265870626253969660991478885105662909978622646006907145145594539561354052965810155090096108777481426786726195317369299338236174297035417707725612205296901999803558662056069933672363595715356247063412468051339628983126156935054523913280127051752172553023004421353552873772471585236246940406867930923020234813189421291280145302438696174715380620268430879556869848073378393979908470341129317340518555183246890438945072865926211427205573957477292941078988061778281338657155245624771624276374357367867019639067598592637444278237832915412866752275664612142481177156512948426513675641660163906902758663097719204547221927718631996169532631198664342577527218172609199467637697239805314075188011588266069482596659461652559204221474963846408441066161854269530722175057864382732866112552208209146517045942015184076315943810935582832517314358984956551605138252395937490755202550959155931969062040043968194467872840297946521355564212486900032853385049023715128337395630107582830136465687402820174643947239257257248016613497237175693675984992311372369702722956452498073359989801845251212487697320439894403171263702294231956473723439144950587195500330214212073604633717469528222995834440712122409348496674267833210836927554363236105894725459230424283609334006378003448823131690157405407164260859434869794042828169855559746827862259054455235384996373155210410691435538082129914777546046999547426057803171585224568841125055964591690878485030313430448598465129384609214212600416430086926152265370813588816417793260682058845197359066789241425800776332486523344331430487410134793499023908834950206633448508828621044555035401010862585800826295500183864031558594077828708229247483331374960849018506744099533042338929827616641688108912243318555818866643022339146747518204195361304062701802759122780726695060836688331622439014023214551490809985354513506047027415593072813219657417589099816621215885428919954953113201440623871672256550608324496020914593024553385518579923597007059813849190281264733208004087067600736146344896631016552600053630451792580320902739856142917010621243201519225711491017697382666621630560622916996078962686084499995138516780136172364098622920886870887023586081807458819697578036932293786398310641850719233911686903986421225626708260458290403430091315544098389707235203467402289309379667539765575707512022327207076532614987130708397272956097387378167431428553636781767143905241518609126176184670446816624512989773068888617872189941489657286815100215480919516635488359262431259461659544122599386918220178368876039845053677733626629189958084332219753561091813837828590088551117041843417591193119742165420850402396774283939564480840149168012569725686720466103019821747453833342642956440882685937702490653407981439660227043752218993760948550395520907502075947939110500831370270162313179226081388652478853971237839495317177406515171088564910114157888945484298858783935327722184825379766860072274588853476297570180331491740883594828804684703081971895458409979077372412314726550507067812514576188998497729227645512006240343681941035946235809806561910603092329860920751206428773573041050307002360223474416260093222925539779135561277242546267425993925331567264215752364755161502196224431621475703838486316942084957641237940695134849882445379403789334440088878616038139057576955449173945789093608937351306733756177881094396973218426436666616224683502002502122750544100116956402470219475977891687977876995098776358313956740051423311909682240977569789884792476325380309267666480113802839721225212941877909324338150814357805893658151204597591343396460904802389820990995031057238774416999488068378411630121267268339248788570046543807198396524995806083895419657765889081259581254959936108572301234881196326539139946052401295245405541579051882058681890510633945787176531475980362483604580372697453570598552055736391180858683057286145110103144669169607042518392475362614870416860031717213875661984354718765327875617018303377319235649119047286442443634348637086680598505052778607103121455346170202595020372336875151098774901858762556790158486659954523400780256278317545007908371258764269517787299194244571097135921006480082755742315792380232689918819607446495003643383106317343991813884139127923241156140977192345735392863052469302493939881304008064826008624059471835154685740884269149060183995164351736929209471091018537670385714173247727502545219735385865483996688186038609343251834691308973815401871510902198579444340299543764795987882763606347478395281201519912963387231642309185707842150612531776500126365396092019205682576998580014267691681211225277210416007997748881364213539274063279920038639150623014891587252445981326614728403402558457319217675802140112582179132546685586895366468004579012642269957680056631391357364235089678126835029715705408293013049411422666864723359759643456626385254378711371694843482318106963561822252611126888918123415983379745194270032606229277599598866083629896004681943948146132713076028844457355700652560381944105860034662908819414124956760879055166078764600639101410372713198220128159715302923283666548920825720869004110477737465898240781576703842026110540793294068802302226816306791950505659516359033296629301350600682464813515876749748927392001157745289235928090065534354624499376226756585790995346601280494368222341641656190292782585356020476644069585691184100415915593166069038711694896245427587448373118586909353772039401575105892741031043797325424073000487175713552978154389169308824617398959307724571761758858264068486019454617893928599651238651048806691651117454751209835788325972265767632269777755233428575191625263036828925758459309609524337158564638365275809770145128161211260023186445092302716469077746462988889030280241522434022716563136885989326402707928921611027795274184548419738126307474557097715494582532601587893283810238812188751144128365507193571986643965033288940404330077839588140870224174029380164929551166611314311493694213261893293794541610156527108335122101968372695523567435228272650607926084790723644995275840814525430432642640907770388837935375738870351685844367131233882408180820580582539754032410202283410673142014229356869809032596466484328572801345426867822026851577148663274713265081679602643248280082961368110662012316993940866729607382437549182538135339772028023597439504504776927874650816937884515574072969602010963306577503486384983185042215085591199144849902270877593074867424646676265316254337882689136849247564414757210543588544065262830985470331014281772714116264337977261492204518000068922003591467237086287743439756668348195306873383130446610051971363409512780831444917997118091698889049602782904450474485144663045728606726666412278657656110844083929971822654382229966109505345631550374169925164969801784917922291205949661197765182709266514928711145061068302423021117802786204770197020185483430086907321753153196106804461240668902181171830543052280061680363397935022022934052746329290436166154904761196656223862468284082453523053607354961649220585409070845750160634163067257620412522950664936199201905758512082732112870238461378243492687031645089458050211654153178876796200356168781189798912145916841491025923580697429370201367610706552302150908602843840109019697999877750358615669125006540676955628015278574921737101894667967113762368917569748888954930601686438640112513015082778618892592759101351775057445427043217199963053388092416806261267816044641293886868481763331337776912830057529937466532237109310722944561972188195590909577678765161919456665575284502871524540523059892594776616484649242814854563070015875011756382684511825228078068852489061244060214899224742733031627450386009134354377210499106275126015586956807866263342743187257025833886013551827494154512652426340686619312230239902508688972729643435416180747639255534888953899197016311807889323132103494301422794223260157500102427081006317445772853210800070290284718365418743881767759857483893600290625150303613938067300208117273609989526754699646109605969501137284209138541504560555256648361169614066743254958552029915786228555595293524720503871292848813913851021770798669764370317791888971385141246663802700093392073821122141506268608472928533682683366016341598920538121553906183218010960775752156026296242822340279961243687535503555549142172152879093834344447993244635141539643430393538295234937717446361626760365897296772418145013496069985708555412727791340431348312775516947754077400438148362946725210638124325498383108592765514344697031076020589472627376787250738466992714674103631254065344262600465609313661978035379064434125232077640060106142582221430271886037446217236872283448282130934306166824962152444158373219281415965547403325408138943447658771200532213938928333154371078201601449398761114767512560544593050723633247266343347417865318578275950225789698733993489062054423912841557891395886250273761512282028752998023118132433928316183967059556545890770283323272411683987336493133585883533161818707435658195254640929812010441852486116865488068759327095802532689257390724926857505789786515348548245537425868549635781988759834264108458156140295610988792754051689337163643474762366132520858934763270317500689088534054678988011833994535231184963511837301454824578945817348098173116634047152251613444133880264073588842012444019640481773881117479594702996672800883509142040538734640660940430925179427171439593450392770436019161810132166921286487748516970824857197881770267144820459606312925814677516197924757974966670786356597188800452646546305774550946853392798434151753458426299473919724639579606928428189135555216304437708983435136630795068503787310954713420935282462932751633477382376218671988919384006449614821328728532476625569346045802304164623232254189858713426679948072575526521556396449519584684869534382863986689798444812742347412346503224676013519123631504666199746031136979467798083143706279092144279599230458373584389598605643227313638657614282982209237962106841448534312587910096262617418120867472725726392007603985812240509182278677318476225233815628473967986095158358156440932507699974026840989934339107880932602600738673394075599263832639915000318311654084285334663046828035496025006253241833678456529627970067471367343241845656130793303320599085766024906031120303873802765137852363016951133238973982243049755643160165345477299047709968867872462500494055288945811271302857564033246977878645468540935937426383457696487312496236745750720038188233975319921405479996839238575197139184975544736817563056540408543079352786995814332169222098813044376523641020138324302619999251884571552977349089559263723481598551424553102813618835990265932668640083890150886029726523631560764921922503758088907085780569970379825028387930620336295076861048358684112496431383205883203997714569503117606573766756213999780617352344031222452905934950681761708638245199074619797161406541423117456353516021721805886656205543001877915152260315674585968411096024239317425838578140857279526825304570510566745349254329305813253442052052570805318026455247264873080831112228318860056027586526663400117350599968623075358605911882631208464286762145957695360248613700759615749117266096724495501936858438982874249061411017611795257087123226857475400375108124993019549239631973876189475933899317635778078278074798445648106954247168711039729651294146355836648195739394578094942757064885778892998692983705285521177217465402765570377975769476011373481915614500448642990246999800520024753990668429014541738261262417048324254143968108541489384646124671330050311363280257030180472985332788903789157762331046603994078307795233337572833049513637531552315161344151545903916030362910536984601354033047995078994505362914660708905560724085961765907191435856146696870242627066798345831632608348699450891710920569910710009777585728870618699941095880943119451780670122375912310100326420681046097856859432939865787041799171730524816224246735021038681341360187212413210562513550621076993994383492389954252632410380036808177082169261432277685679938600761909400980480032120259472616936672112695231394849707063998250459832470464580350354285245775268307930252116898320011131153959612123754222202657412834807546895170964588942887656636407260190179779058073689102660887276384698104354446113422009235654984352126372497634931336017532099182201626481897128670918550059154997937561082810480070666385007633441439161094281228250400600058905831360097842591995536086768812347003402653619894338365752785606581613623020243753358049064934913918732405523225417301009491653250087197323075670575575861550389863470088288105901975868666305405593243726320378222315199644619884097745425936381815245453340522520072309617287994111278801664868075044644913407992651180668117177615292764514604923227325771382940023011424389276374836502239092698598894122820536055373125155064535837289456299795612601631705613477170904965032068521139297970917991131350436673697090235859696045740103795550420743705603880690301374295512547247889147445607628407252101133630652348485607824856604470181353577866489846764737753938452198534088857734957020789873227826394033308041745188141270056662005442343475743634680160701550766994040232219830943462924949920785558722183473507161820133319195887458620844004288982832048393625330705460523044937331939511840398227124043211994818792739557326424042678115955027990323054126580943084394918571581431413826694420847668674025188888452969905361946972452059515793218233202093267860743904847955695400465897028304214631997370148195770778306368224388250736359089841543240247902545946972866403388407160066495436869789167022535155199756031564926892132945509308752338151446725757275518408132863933383053302858658151041774918793553859253075088398409299040236601014865400316120986896961947063692998698831303029098373121026422564671141882461817319204322669466487678482235777719858789844320052295039250553699224111976796943421406370129445331537716669636994772886615547476168534853713228240616786922624607715721416839983971078081872540934676536693104342144319058495080351306628674578797688650939360663816642024827640427777745714106701574749416157722036119327135580515800966539040747397195302884790270013391954535037858666113123051334865176188245875975126618591208631795485170738982301088285218600279572913442520623482622735174858695733004221085325636584720611392709560136192025615961420783179785450705303671480522460015216262392758695860924430491332433739837931753611199850802628631881064194914460725657826748229638134032265849076554369140490581757243281962509706578782897420815617374168051764502257785063240200963406993417089672199264097159515388260108224064651501169536551769966677370936707388136179646415404452095195029065857292366959579747901664677147602786913116497846464444485719331502498304992300181498870323983923334176187447309031248680343664830300998669114642401917145708413259289705808632488823975579261696248107832246077450536872334626018044377255143813607672073667545508493594661793493603619210859029697085666731370536546590913895908597713389112026931128219650569771263431156093187411695983112291797362166722170503639666940300854991927994600607169803977466400952982130043991964257981286157096543196053940322655285915482945262199131205297618896956290621491794138016945375320477317954349829293338362912346932221198878096487431202207396229155583641127186685775774343729035825837003155426084287568620640998218125881271115609875897683992759557792202642679985144395888331540801448011018828142674914006699762185519215822345949618526278573328997915703284676713205340064464547649659469502373372705377401392002384676859852866552799446680732315326645026618788831955727205241267412543423330319085773462014695969525234515545056690985419599919591554738354398806957041276925702140190168317492189069039503795080399104292896714616282903043204980879030302189060027019097050043594222153771168595870195333936486947888248262282285495896554925933912328446799245627266325599742787894492150964978532252565590958101571091049601649919933828581243497748585454485839327520548281716183169996317244342449835129500867325229203344977610402212273172974014477436379352205330378547943826568117364148930697943374334960719628983283033437072709795948057819531426374478579818544304744401877572589938888707141192462923614280466766759924467451026813648246143377395031341079900919492894765621864409101553940549314301161911819154541219465219389189708822941899124735711945797496727536100185578007275945112140732933132848098092684643523476745682043886868047409705892319093370996322617189352721936890794995916091286393413258472345183707767144092409105029878655033323781626554029178414701297997236402982427278533387541189483034706721543840690857539247957100704403249798019227253840289025344749193571776567857743717484226968207173374736845135687247877826017917003625148761875664306875237603005898608573273508554984025267885380196797538032630910224584343106694721207006295638114789310786162015922825654336637463623273425712635565853054958674456404973166502167129831744655328318708949222106209471040621973363178203648183995884356847327671689942546430923979284557707633725624659208112966167529883493641267892451410830082878648103645837247404855834275492423883791117771139693782442935126695878081560613939878195608032099158431788932795230828733614970847759554919866436702573089578784705461013587086937418240388112703398485171194035819474735054163596215493825309547471454189492857112035271636810533963672722050750080839425326022489105318857551700904637653419714899487114807108982382876391944954957042453227554016341517277982750801506283871458201562363532696712574006473524093464113535247145856779631060443585623857788535138534424102363998910384500036153208059822777925622109218507357208960217235127478949146744734895208039654221812840735646855678390398385816236997211360800445889010299609203265750538408845091741447030911687199722928427865681959841720627668792644718551904816249896377349275872313149145125474930091082099638319784226818142242138761095217133093428119694319631518546839995718319475604606307417634793827191713996717575189870239861498895988825125750931801673586584652219056491841951847261069444057067451473628301377711987039133116986274747741751241309608436542885628574258869057085707766362756764869132869083055280178188330319868568544604190052224915795314131070888518161178064548561579508917699395202999081976358222151104643032016975554430146005640650344911491591686903634290567222989312708884677325137317206739410417832827435466432303123516769842524413192227339854643167446785721638490060407566524973639444272689774180134036882321077432064331818060466503102841075462423633924997923386114177979501083524295111475949943990049383807314549280499810712121847994132547668381085497760341596685792817317273490464086272781004235460104545653142813112451778829825091508784719810630671827138077752574668579210105102662355921823392797697549890156343388625175546479360022913867256420030641417281610659293313658195838651433440550515926252498439938135592468075007514331315125184335792717013226302043859135800851005832776426418584845949812165181315024742599440306214104223471319535226848531539013623691075670268486398107323421002646034710890570045058216598801327478375523265584480859964667731890221447547255197203432150187129254397564042775181304640403065288746856040576573155365729616847119378890313398699804979515124657989338845153594243986121268169911973555513386723113109804008870947664787846142860031210848204030844874767851057420004719360641396653144538493845370656081864163146374463721896215772393810258643214692384089309911046355622164506353053489758009054991259454578326495509571269624113049176396914747102337606204467710631400998047230191524907264385335800348977862677744706080897214471219803878096860957778125442846832200378774920643916989206622915036033433413530770216616699380805969285653277328239928214042851292481084393457622066286587441130064488229316559175187661008682669743976860108066395658501271145487039000346296147094025342566389231246412980315772680816205636555709134396072309786285577229482710915881764169751616446229945460538509441460063938783504720251173764143247552050583584575313285718283707169635532973548415370437372485441906192551639021299036373512590730236770621509118841555694322441657037154182781674111011041953839918172736384272760155512295123288897204569506298550224414422565371920043942829632912590101685402617246778796638173709984640202694629529688442821304600931530421056389492133782003634785820853139615496214380729614819175575118764179287479151900994735732027275219365283562881193681998904459397819857363071441430298492558513666544376908100098322672328335261403996878078125920151060232043137827394130426117126255538229735053287253572408709457953085498104717505801501349550363230488213872549705892362689709302131253825187767885028922461499464524653156865381506907138605959504869108283124955700633270268321907845096433589418361121948732951192039806848270972332375522504180421634925513807855179729056784584515231294126812322350763185270196197472181073083321229151879827358869327409547277984754865247441528379497443301789913927819636373256034856885126944033530738239081407899772917112818852865528455996302398896810456403187587051560518083354268706861207314368733203235678441112416357112679360387822566219651134952724708250710078477513454155085644656836785472908252779828730673905356555314163867766311793096613730745649901728572086187011000012592326862842515897069691353517990956249493833718297096119573933769475372343834182539790868226292792737933136716202734165784557652778202856902828190409328581601661991576562148310194676739422595318977568580279803248096941953712568719521644611051639396469481077938103542348007809212958093167814277474108418068105626112354663052493145380853881760491641448528735776144539887783447325705668853804607766320930158557420269858949816287684675722806264882824655814714314500072640484345295353196104926533077132267811180220685113315289548557745218102376509808886477884108056746571360462653168233059214704610752453412988512152096028551095396298707008310074590462347848382351965341451496506018220386892897747694469541162298409174271650141313876373872277868644622498076741841549481161188474419439085646343684309493164340159454014800256516297071476271477256566244702319678784281052732556089623990027309471148609482084216516411139771022307129175016265009409536308443912945773993874743307674298648522068365580692637400464697348105265462686970881043872885647532338366672157210265457732171606891166636051550799535219098179409641879889172966023201258007748707130524102311942741467237007922663357710738196622474841348867079789780324587846939704906439512624897510954659769042412007658877144250724501518759532853790402727356762921229532120356825389240562658780738819150172072065062569473016677285080745455000388349356971790416258320352996504594573310090245902162828574428532515451628270266676235939621435035726797799361281156533890682383489944172032142826874401764865320915811840397172097422723369834128256900165458446515875138944068112531586625986917493400278806865932935877346692498577553351877753714445922316128476794965542156944568951973462935509953073046921153720750433903546464743830864284424894830881179413265739019847664455701499930008972630153626047818928426506062793445835587075905727870385124218760717517613225103905661471257976255294482971459348948033440959155600381765567776599408202904657024663020003220497700693019484792650184794792994221930872696973752997562405325513848318362638213408663674001291705958987907807612492240051750864252726353714261904732094788092810849537606810054083309406591774268631165937398955035190163266099322450362007461081147211279127761769603774134149727475842025570704045193144701236242975690697994871493197905728174485079011342733426640888025621432282480627279524292590671968958799438247517154941703207868448502067057189294598772251455089488181988749040245764092284031004569421913537980434893720219690296000467552297884398889146473333032262944891153916008608307735737194642193158877746147146013272326791772692501642827477526482089938053747277500815704136283800592009425444673369658358598832981420463074226460485230563653380787861415138142673554834971785098497772581332339807233094741170467149365767573301910258251516723776729599906597639237120018506776256124580002984780746097517265573511834470297874712783212101926738977778435207372510704210972702840052452613429554274799017497489432298767275813960220398095423365129352678114600321146625129075576940274687418792961686702078028425039792328497274082478128228325110093455572062671208114711066707104530933816074437914616195674610528731259885459939678448967156810694291333618964003651316170873985083369234533502013831745321337250429000452959817029348158971430122947621865549559727288633361480857997250696624601131702001431986154627209962040826256600234092745469392075727459833168489806789388181487123261007193380997217146581163224874252903042005768147300347955549656901657963037223384304923244713386687796305997528802671084442844397577218090653241250787732476239453185718007928510999679489736293777930067246157975101591509470812562486913957953791812746370625264978904134848186535760920043705860057705507737776816696783474218853709090899599837748158242829953232885965695707945357742300062091325499908600393877623272878124895517368563163967092429827747134890093237297512900941771698108671873932359144462476768090514352628913509230954181558384272540726451063651342790926525760760964088730593616585025784340517696297499282766249912982343935562814024401201459877279467874636206027421689097178974964480663216482565206103616203916631751246192390824985395935743211832375194348577117602100496996114124927861464849936696837693135419164868427826508675853782390175075643603536596984642599401060780057870323790544762927331838019052661252708017999326686138786006608367148277797400478968899415803369216613732142589547608759123859838063008606513792391193525610814824612395765891061973054078183367183624864513422190209055463529666561657652633326345916380629823129759292829282975574225659556569563143534563963695102820820001569997223935550112024781680473187936388099300515995276621534476924213219725274109775967835902404219782323571556568038719636582275753607343020134177562728141131152610527102344066485460262194163177886177248266430440388424259308110115068756210836960838278340550575862320656229578219096218368191289873193085148363403681444935327851141177543660610581610383730760843637324315927519692677950903349245063034543955794896142113112296163388402845224106654359232681581247354119683246086878819044351652377270288990057401172800863513986255246195572577839693953417339769032086417664596886967580057495098729045824513181238958870074071058993601521614841097166509795487284290834731288009428610389424314517946445749790516571770293624615813130729432257051230596211490254653625943695996067603838700679030620279166242569561214677250093702384114278520243332603270692469549712525735385785367422404569938413334831353224401997369923801749743604951817341459401469381509630152978708209608148938030999083577818535523068194678139900534274083652277372447070807432554781985244938820541216779799122042036952383659881146111814995357892169636058015617398531290023673472666941320716219634674336630052827484956490944229797771252129733522293899389573112605907688613693573782389214851024113292733865899011417001817800334739904427656068204791852537917521405371172271830320192533340110644689357502935677246076922983542902542002190829641039070419603114402577153165408839627973784370188863716697424928291010196929345859372552265958596122604390971580375893816609345678515501000377264617465915036954427547592794055024893518221591954281101522852856494479090404021853354041997099021146918006828091245921378060089240686147518981231645087611666663697125468345581734171152910840401452996138904612400352705365982147020526291679484059006441280818674717899522381064671017936066968870150919306983588681435860198901009660307497708419938634080928201700631648889218237386160665597325629702143242235867235508234758623998024447622975768186973271625119102762081884488601066785623001689713931617096730266362613332074983873923392727034324525783185579272775025808120526348587386981926616922815363726774818751488250336505118892729184575589001396170676781183118136049402793515611137483435394461033405803452585953582397951373538203377844316954420946931713621108846549279970393036964003546737400448694570046146749621169037300003770596328889495258050921287919100826286851789628757709308847292798475575868397332374043999744709429837527407222999301770278216724283853474895113453178287984988079421309795518856489042477234016619977633121764460295941428982648930275912881856225798507169250647160226279803337903764199647808148305620678667498789161351893460597897532131662567868225567139867443733813571138123921601552571550463517084504491947551250602382261909035131307339551728404764213315851814541321526878349182872209701388780508180675459503732703032451969000491279359297283482627642532005455865162880518418179978961624264398344210284702197008107109429011020373652850902678247015589947653838275234144517666299645967115336792491367650694902643013293872847559662677058100975464066993422681602997156387243048510259928093309644524880467753328061947448275868575788078321179434500652940673425750096580402369359627138102160346371083049588930057389267878369736143688690528679299444492158698923457267954435889234530064943177420161814701573911888732335753288456036471515423556026887019741309935242127086470410909587200752854902402067242504378836864173604097381604059550733004332322635762806053139917023815684887000418993476736613618566033159906893972160884821675855992950997753873933818819108040685091420514592237171111809209963059790527543946697103151977149777162386400452435631152992789805478174096888487518688962292706956363006655298553977710678442650371113472938431262627171846015900421026056145654679394245639794556068603595017060397802466483133185256123445002386234287784470563465717971767517220205866744156478507814608504587845686469180303451879633924970876185644833451323837998817806321561582571595681829489507138820233093803587913961339642747797187166694135850043129319774410121878158597447905013664223282472699404508194293588977378136417150413971209027880598799621280975518342213360007084249796738687919842469694551427881346911367671757525714652805450720368341623430409199097907572809555235948379149782613544733241659993754457012417278236291713476730282752603049266646148790578903636419748463434515845879690664694005783318241686062114194936144354095602592847789899124164942057993943656808882243324652858461430335248417157467025838522185893540701199747107598724932293594428187387583518389415921802830292487940708943502441718384196646769659184734890218779889251605258397613533587078493370587950614657952966425328590846266003356687399607390604006948242902596353100750518581487773150135140896724716039517395234719330161102899542472598002519116000142875945936315673373008073548579117201423459182467531070931818748402322221675383842506461092613621549056078686381207737820589751356083217822955978282881938835024478066802782637743241906444078922752573380721547981599685807556168616605526267749549040822504592449804895021970468745018205329537647708583053681365635184117131737964534534091444867862419908379869525144597080804269098787962321544439438169941020625581393653451344384821696954610902283183259963306250373052435768856550516365552392993498177665801837265525107452737627471133745593565971300235136696026707048284839652110199110709704585795675337833224371366948740398935376488443980467052039394030279206349076007185352740212244909496433494313468159308361675950956655241208274300244635135904379899488632915892924966682928241687213816141561614597608734464961368136922362252241922099135900082339488094404045888991648590827556625898725563391991303971246375911163274122386110809570571355423581443554940441732297810686276272221372332823988777491121519381807988695024555078719626392347758854720163540846194024942735042333144055593792861605075564082979033686299772216693297003617978865470977793477643369950026957108401787222785857443336835839885184352183650571475448094168362327840002482978493398910730597712249121205148139929176573405814212988900254694180102143122995675673385250341301127400381663333178885817710489181585445218741088731601091304858994545365193793999994658031738779957465796438297773323086217136805698660551295977569947696986696268386007306099659861329680279133818234360231896230464649761135991767724954790982872746560536580901525243121545991990626107298230316582069340525350499722169716085456154804089437470450105565798642333487670101281545328337369175372681435375713418843934363604358037627939207465652912541695972922011756765159431739168810861824042251343344332279633552890761642424751167634114433011877440711933239958006073233932005770830479991889880092320618375324362646733624212631771927760691876070772128082608517841520109303927891950292548663371328982272846828359907095523690366099975560704598939338265654696076924273828468147789051044087135111439055400800256286163160879552809581498840863541658983595743362894991252528343934905469333025328155955358478662373251695118048450829479356669667140476669157131110106384322679452857525484566208697001656413756982845498061245752645611161504205652332865881172548445036298299140393694007842574343744505460811942567920582523114604611359528720766783721779736922180350748625469147790933693349965498304253068097804552371313696621040614774514346043099148841533995921701958656837077606025835114938796192317500413543993614305780686983259145845048136781605070331876700718092907702404298896200342198754401733881723253895486138834590900341759041143154941176875839868152402196844913057987526491308799046681149033488764617126736835587238647466227650548737559703459153094219144116634760500556794113402574603045525540656178597212423459142326296718428281024626326703788234320351653400515683445362290769765530793884102146152708382753401645806686369668623348748599886088860061730152291947568524840360144548367344448761429748413211556484723161993532578682867444435718095915279488003492918391361593060146662168642222197243890336069600572761739413348349310325584101826469098334728325209259065317359641802992906937470502140483098464942883109305584600759782678751693883172622762048128523623277712245413033197915600238055528924226903658573354416958308314497259706245227846125334988368711048068732374016913412496279910903785406488648034758808458619511833661665841093390891645898085568087585749593030364629748353880515950138837536284162633199208805247310325546763740343677802714551742408143258847431427065550514818145521185474389294648501108944483934520333452624623272846022363777057405510515412779672211107864954083719788644592040613008654312920023566660187239363183420174145329698139676174754459249570891512727388523475345839194571504223791965976447718975791126651671877046802944337524471727283663092080490148530537197685116455103473589998121203017824372525793809518477128274602799642725727763030906994575852173211880629413265811452581197405776499028407906657219682082897753899418491425666090886610210147978441954746779110442410771606185200076885719434800572044649102292157901880368552293855080027408973831554651141112276834048221471153501060562683554826698459420435310386545035355704328944341119070941981290351135396223633113987793322402540009733406396519997238998178862843574896879430799413586698317995966400418594799193945585825656021173020328533762889970033404948415282651887125440509669828546630551967878292180288337082422485729573359145193840775149059098405187404954449032803921213519515210180513294164232506407166903240818156556226850358433480775209519813968044338313968216278990762839357367139353977196754963629580629713502118658156656000345400570227324898880458494177693259172889393640520984981116736956240504941308073333897286163948056780067282460632768202259895078240818375054181537837867150074155490261484203457229210301539393578003785740339986029373837444445351703456318067567174075647909375716799220505481422397534406250709003131957044345415320833153210633391293456228282063739234728015990606300479536187040069175306328363866952756348480776318088402932296689083110201492732607156780122623778121403976481334914742483826763447519181920941439166917647013085056256100742061202658204443332595420292687089878671142857734595631828473032253843166386553633248291066421730473853831056601187404403636066397835004833856677462501279649372811081513426159199200250540621445040423930523268371464946062777083288913684144781956364325638912905112446214039116495347196398485244078900092206135317442659924354825886412430882957770356590141209758988761270363350939849398172514435937466317556768815751478228739810233029518838245418616510210144834167852891621437777894532013573825044029834389606588213798668170599247508812043999975305825321530039065548921308001333784971038761034794007383625309981863547974527310458498176460002984630899023585429300825320784480073177099971419885671131699511756014505760040146860875802524520516210601914201214451061711278278217135131523757379000342880027410001384344826871947229548045583461146830926312074458232757979432934381352273117164670882416500148605938332995897503901299180735006664449508999194913466674942184930054518683225996046893749557438304813512032435984646210464937718978594785883932865071420314078729105234602554669885261267991957062565641658249846171168529070240393405875962971807372078657424491141929497427299056752471824095989037089706992563388263225898348548458417547076405306992487043275487384018045139453233052979716705852810352993274662015153962815700424892121802454256107697051641065940469270523376173995247858808513951679399400857940624957816303579530055198012142910388344273597505049514367010672885542119232282482627195996677369988614082791568327729657939552330140767798291377312433129059727049775655948073506204821768188646197872198768767741977386522730802567931530271791400169529497656413936042986215943476057475252440698548554096876988863806905572113474381444786028155629891523583828783993849877528289568204066240084397826603132032810867127196379595017391568004189595736205397127941994342051025454859654255964568794561378056359808585731491753545883167616662881877828237526240900092121228287242378667892820044002589601041674517433718519813424984065950276796440724620134416543426972391486521690041435949596415965413745024129201502351650351663875357862618783627022148329875326383208051686204910596134538864020053294892348228901011381619453093634279686027644600960508529621814456843326409907711762043157942017939829296083303304946123492694971331307154768202417200559952860563137122455833173597534798989760517175695689917098413331325321882361862424099754297399063839257789734683874024789339233536322474242603910575369393824143471816158597605365140548429831726202847162692521240352000150328570537217159230544270075829408697951071744989615051514159397894439472580541663256811366186015389410025842256518333403172045757472970170963015486777733667665305789671155492240637963342691241943905185456071899632508740032410882035876856582047924767400890955319010770463028785693861535791982063705426346499051766479081099308404435274453552862992043607416921870291907160769939491054234949805708487650518616737076670292539849302406908340475475932453294093898125805294486914494993234099299911626674226366983424342962609772216295379665535679621870524173801078397853452953023937594355712467948162858128378829512375224097651240007337181784487425104226375371298788881552295357530237483121222053957458929424367338805857616966157861050915144092921973342718306901510939247871280455384655519183513083997851681993106574741410680285692982455514831393119695363312581274126790992682828172835882983803661122097388739464053527776655409991240588420883998767617198375377057042692386800117943334846083721984283726482218150510914249759306853383736371706954336631671539100274845309242325077400979479313272901809576345870422027898993971190257779729314071557753679202773389531795014637946923231066295989630070547167446661572245209500137600006775994177593682399438916425407422970205312950842835680453407810879619422164126789756625251944410940225112175804261533277459112518443518467136983602537184148107171446937811214474178171184187853216036634262530459775498140201825944958784668256671429856596005625602136324593891184109837098368887172789957763528815186241045004681279130706777649246418026574347589317413674066864510803296805768469479381563559692283919936736801238429750698915119137296995426643981450969640739995592371994892578418831804342789042902083073951481296652819170382526216869938454380130247763212043558310034280110464256176256522163386990572727859769510579486321403879486314063945560844349350187005393895957458128059085889107595502671508207218336341928981248110901434962962325130335772411915574870151896352687094277266165100677149071333469422129504414334285849285750778295539353732559970588604229537773266389334747128849449582077528098310450749646982758703500931315064120006887211714291718855487094430211285779323941373640415113438249639802835985037531939467998779401705412958418749773566932160126179235192505546077053875816741587010882974236303483867210964030397159391627826940878079710570939877883782558451446634447329578552980660424811973433097384531498125746089319857664099803021758961578647130172596889731696852758176043188312312098925250652720797894790400388915672149882766484567879144623217522734557239991167414254495625987749426397558473820894303817216818510848714798700317631196912377683498908642883316607272193753548676144300601139067817135122236924287255155457714912120145343453944734361886172755518429654586618940937326677092449637228850131547503072420926573707573291560794585912732961071067399758152849612442213964206699338793509597738625729271661525734693013133483764422321287417926310332512893175066230100588251298533839301923217454348027522182153033112868552348155013328953096847160688972047308618341701718949244687244740758833139149539642927412594409576929604586435835547813003922356206247617653693648466295017773718306428505555929664360979635761699747535069055333908323304062751531802802722233487054240167210018295399497296657989112210771408418217489088980189301474037027282700182725993881519346578243880692635799026979246944411542136829074383392419348030010212667104961586677797321355840829975793750690000303128255639450158959985203372841258089765277271222084909342892223803371813320938401411368101243298024435381122710320301018707144444367405990369104638742601959024140277621084856874176955194115731079474993940341720104959079733070872993018729686316203465920940885310701120522538517277275414141936720002994374363772805451612659491241282875700603764185582926333928569523009405819786828826456015220308058097010137790586710844532163399692604658739088607545678161778768469393735363405233627257362970528625831592642192775063897538499775688148375456448690166943271953740824838123767456288157058452390650752789893946564555834917429638342595187241755986563189687116925755938177918766552263178383677922526008419482036102105382907665976477260000128112326708313763662890649299912742850713624688281134653075096704096094957823605903027109004627225030427418284201218351465259060892837631750018310713659303214805051014561173963487342623583951110329669993794753777207769890680684154394443686041902177208979031046271071001770927907317633232602337678442592734816195401280881241811053379145812916300655310946525797406625472078661254182401777357829070613987720519798098607966403685746997105485683102191694828332750069555424657406121862583536612344118282899035694067422076437479955972972784263319946309609154027458450869736183109460449194024233925384215802872871630479377704867426332437856961963386208096425306994469822701426211218078450330772996954953782810726652195102223398260106887409879401937062365961883457338759531100624505452439521600109373527098798897001818514981598800116384886929460764565294794432800972846513038814728397408562373643425474838951367835255013232892545132652311150525706099575329668835020080733476192401102830260512334294111940646973391625906628179621313380069510886835215018868136149004460681843544813811828829504820311114560984619869936273932143989600598693755509095010868982975420216317597040518799041432383893871728747338912067596417845362508155276032100374839266681315695855539789776622579847846095778475134315188527256869719700159332862371078821677490920259928276082455456766706707873825863038924824851542699241199351192608852483579198006020139696670112844453259462675195393722462272083461361867602759863868668810789807788775486562888185280175136685271776395743434477597821476828086585653587267575554707241111415380105564265838177560045094180691030446317386388362795432538252320219616695894211575794971758688432314405471803098841101631073138849718463118785460329670312271609868315117839080918645936484459164839438034749728135545271747268324625849724243444240460841364596282278465971406776531668262108939220802713180543634527885707005501062593145227262523877714545392941252075487208038037366795005056478861724332709087352321770214345859784735619727368637338513528324108340102131149198521663831432432218809479308955822778098304398519587884382950104305583970238391451603165492649774033480957336486358170572286257081002548619918548016168831715255151515548497435463026753711339594160666416094483422744543753277193073758654847519805620112760770925040967421712547364562110565255452368369107768256908268972377685460668210452306109290414124909049941177683851108826985561460861334452084436645331682091597878793475077600466306547938916314850003882672626071541017598668626613672742901901724405051466177002309910102964998089986766800487176411127793809018097448565040339301114176154713104316084296484727855259425574303052837167288787552761223755296971598433195272339839942724911259491350460902734022903390829625707049993670265455715511413436081137522600239793876032405787367361261264554486737630976968963470193752464289385119321839575451455876562859351605987602577101729261858388299351525645610437680208906580899181489158491540946714091174256783158845886276382810566053138389752984095542469040676827190126978895999185650389646011254760306795011881285329913064787458277883069278819064842867247233383597121385492579624514472615780615824838940807250771221986150803753608563559726132646308926845790407875255084362112297353582193162446255938203916122553100224477042929487446628709444123969729995864566419614005525625256743830471326569357303726588878297516062082653249654327824007744843548241388211407958822568550512916831149002608141336428031712626880965172635349538935952749000506647839429161414189158919654832806374300128482735620455563874075440941977592501093921290024374842907751696041649392563233334668534311797669955739598921464146651242736194591086019131849467602628655080097873866407992900388036210134266855298982374406118221511481097852055545593907209866030602911855887204081502307003642984921220786553823230458217018622735264829445011591915912384644582685200513273188473069478782924018434818361865276632441072154136695486286154298828939051286508235958746891461965376574383441821103853653247096553963016380005485677727710267721799082582035653527330000165879074463838275568300882916590627737749032882146124595101196991877647904513054949764936571487580792451893268137649689145786940571532545594297732899744711147567751431372538217411100769269025274723665324083261966596857481139935649625467147922165555793221020849476788999283229357961411213109011592109320298425487917079533239827273543615408448812068543799703365457954639648476458390994870880483290420028599007049159414933679486400328162927250319508835333904682284256559838773476423246887431230987722655498637499890135411227948856178249388711244540450862306499113063860520853738231794945057477876403897134741613735573399543931407259883918223841633989321416730793230699601795374101607995545255085847831081966209646308846526040543128639569961233753124628717525023686561787083956136545982871729213190380759542252964883067925591085974761457350642754665637751635864310970052279080606116012179231161884868339807786472258287026374484634827655001489822313270581598457416690446811811419067281991513702010987005540876763027341293157389238434348405750770437352155816959387603863362386619265471559072374176279972014659194860995242216551864660023155420514964707830234485358247018393945128142305375817559994065545142599118306332976316273912056625717160795687196911197886334074193037051172916280827321384133162446369209882004123640204383921051643963946944872865650351001801012380017417354577670977494826618162075682847292025694309527273434517324804671594399650591439234029225644151256644858370779848705404964747380449345042769993350804040508321980594777146969256158300092124841784856956180046622878872032676073037319855555400052549109904418748496066710880177843861322779730079745696626775885826771538915777031271273814820099232676381577509262839858479391884986640125142608650323154499039545131955045265388530207334877729644896407252612097594598496338096814031857528786692202765043269058632043744798141491210729551538358517143667259572008667904026739223228421688641512833661549255012533420085414785540961819265396956147706985603330271824986931475621368264662679080916957209682950280723861535476175298059421911919597588048910082773210532963035801923553376657822063276685685658101417287400472335510844052023052676729672298328155063712203673214366251826196051913299636364428128776770041637840916808648154287995130871403587705866485736512208784107209346810401463436091131034891853169144200644768170861610734496295003937979498193565246219483281187156645722165555939799378370094615952767702736429889393719493632414868333042996658056973048398404829275228371021379763126358486992711662881131692470484900666967216351504755551134641259558456982127371515182864787365182407321314211696518824313733218182806879987875387820710024134011515531697390295465799414693712264006260117025721633908036071954677290409913166985879409080034047064543325183336141150756797627367001407735942830418383265835215943292159987552893939498534390002534274623583817763866158811975491455284132109102315616850592160434208707644994993758704803424298659439501914990853431664201663671202667453478356491046946473244394907583923888087790402127354925758661778703066669492450212510890599699952412001469609377100626077094439641832205914366323620486230436683853750267037968582145453605156592672990727875343928493196277962766421531535467510897649126013789306322142444540399219517252568458728767108216994371582565288621303968955863710903628083211040245210210591172636359084779549174067820251774787864005357608532920428033188311568764167750834560501686465060745562822376929950191433262947853835320865825722514078669036421580810747841533930628791418281769232351722696305522265345793440545412159331067120367484187153427726421318907053908907890927188496852400481586603825396219695719463631454714258453645633180467901772909653073024735712160453274438065070960863416307683119301532022981480497621340755527620594548508609204809616226357683480259286336480672464941212531567520970158784585694151409495628922040943495295570627527279856667264978669425316929829985037029033340086418750011157063048024543675146463876863417504682493431203054363542913642474047285766168472419604819622245465651754952514475603090681315785184291204136263060695600389395244916543100230868529482625365128011485867331792744760243677897902571549797926496762156298182293253776742973222366383167743400884927785446484606240614040568369948923967082928634507748135312929630050707402994142121454455403549364941397537580736515760598755230104949364869337441179243957033637809500488104264193042862003048038905742288466449125273081550534919333780432725326032518874707021428149927433694802658320619658142277346448147022161766176814610498620923873710869230916064561278448463359461922877894346510646151751037985997717050197590024252182299704906616652890940392639783867982118016846178692530770404354032619355958856588748334593629519899833244565347383925444781255447722850354685194640314567634060945891542997786048869297056323487934791469816757307937436003538060681154601334438541319503090762409279513641016045951157305278638855061917029310945581273034295425177404474053210541374704976990673593419887732509134671947964140364651964914285793286362575323478665843513279193824619117021501874485294825265404186686524489619783595917663256846247474972743664597642006724050249183867675568398590139778860661494382153351682617232078088393173512716690865615927122806492253168494126282751024286990076715486268552355333635327811978033053796156160507653921628212807213583317749507254936712790464442440126588941084031975724672765724117030572191763697546131674355884137793118386561950799517965877682788552091009258729535765692014853196442609998030225675724505700440791732035023807293188476675366483959543692070762403067161794482803765231358430052218816526203604102549958114346814647978601003270341113519633984270263034844804688355636708656212335260366371696579790294691826704015942672668685640554430244892402307732244994786678570929242507524831532985676483080018499890886198625907482417422997040435938174738212237281784088690125610890474582404506370914879414010217028966923442072444940083301379546927455318017133489104515632407747907190322748112434417547781448744460485844250135893584612811345347493161688942473817154033318397560553882359803076961586557786526387800982862229167924333049606132225967958498653925870562711055401921491929422752554540951839787608506394877933405563962858005482382225579891691786527363647915490281253533725479810695975781483808281656812059271014913317429498146481380282556902969149847383568854020663018262862432646016646375588493663708200342288672453348629506657000464428834883054883685520128969302141599968801102056514116359121146361124139054482712159239945894375515322691568663849202660998756961214765321506420176313349286940048955685858480030260577483341549918279981569695434116648069629366492765406216383449406352967343602465463477041780022552908626430245749981272269433699736755797000193602542413817852434018352472725816563900365735755855214648880332797520590955889058254995721567278809292148833844463567371531325908722766354200559182439171600884571455466625299971544022502068745747916127580885797014471778519858139395949855661181199372320480722968884112114967646646711141798108121643388433724552476522453791508391306312936104677920865057644845857417121340246841902603363157669195721212094900637475758848628737771108484823395531762718004127841475476384019008856456481810524065686136192478702334144563007184633959249881503334265655042404850902329227959674233390844976978659093724725676208235271044481395574903439411262734585933516513607781903752262136269397133696341449309201543530308172084519498546559100112346422226357543797196364859313989923944147100290280660092760615658197678163382962074762091172671628057264179508796554180113945678124254253363831203228124250636916450597067962966663183286696038617135430407091297259178021340438424977023651835430001589704137411546391270764758142324429408657855061267174025774141585979127902615391635614791774540560847996787298177245297750035136950135020053831402217127474839589389276106992834981543738237366021382023453477376213433570791693031140249738048144182526676576619317485168932633042099291649867558494796913089397654222491495666079906884522382675389986726581702484002741224565382110295918072403407273361197024542772282164826596440146085370820842951200624944915399158453019056296940560147416545760895448226083781038503743033149174974106869141169145473547827484173248442986689984918826479712883521786898079446500162492191985106534353115403631772781346761161558773974713489924866201746749193272392092976235783368041059863528834255517811652953378634795054772283262458235202979899980548158496594960122711874119389082810628611903656124318319672123705784862670585873775126447453414579021939396306519592543872125282214480696586898474518525965805111306610718450924788500404367282148981166285495303029918694109679893399727927423441227027809742966561214131275204292792633595900052440111256791844421675750063765503578327986954275168534395068239071989154872226791329733366641796825604993105768608230008086534521183808928279996045283024917314632304368616774157758223754276104564916751996974871110635098534555911610977982765895231026148423578332280991554498390042292806658149374111506217971522451211272857230342963077443890308477804971648594999838516213883453424730560249032339049974060389682737313276823655649260229654051937994953404260131409187585896865930696724833840339995271615803874848309998220822877842525978962593053859486481976970949476128133367091756211942777864745596265595740783809966452155361254673475629265253004520124615513329950761610575052778430918426508287964127458377348513230314234022167113416481861584406504879476294809320937081351994192736404273714624955886356049811212366397506592290655577333758087018351416897464254545149832521836194551275604524837163838592513180508327801060856787070144458185686105784818833526014522034828166507646403347285597172197370442334618501526332721837099428937440949296744048559708812342319722853323538807418561699921275101230621505214969372947229982579638766752308201666696115941076435505087493398146312613951123817346208747674581264415426003699758808153589511375004933870936267637823767464075835256197278460621687170314542915144046042015899701724899449160765954283220860390378075259717201533062198822961962299034740124760189261188219348394514661405564647799928880820748070720852385904381770186891774742775840867412764591541155991123313544500803455917521497314574839845237149302619594120626869746647221321415471848795054526756800925342873128986502940106907058945987065284297912573462857339758098817639311643622019918879572675857172476229329441235564406517953622251939266391084134668416748738776487811749691171277170302166229196669038861784852243341976806155550905118709050662741118505301849859386327480954848056065389303503557703521253455107107593839931817139975633292440159266514647932581956935948790868980275194297406984131599174595193916383441456220652447138156936279920636074359791596781262165875954523473869495379290759696621369873396018067832955720428250275133350909676001998446048770566319258636539196987127899327974515461763102481730991930627705169754655826995206767319373758266790371419507725391701270436667353323758918630718602506810879279314239847938757775856065906228462385536998445348817400868956898784638051847604945947996900107396776177203192747592300649415103444243784378924076961384261538423906389150040565808342158508476708816447118805621920455406733420302477734616428616242030945222658776238176601326000264994659424883937853713820124351617649885177147011484915031092663714161492755616538541119871781923175758748266568143198612674223676597835563606470922167479663287381267539947273660019660161820290034024786605242379716281564858455868240242784140182615269367529562649152951829464982742211389418597935486038539947698245607401098799924216725199960868667871031526525714635758647409100629581665427141621127923366297584785698786326724153783101512298004446425528817005192626851764304863623393000385109267433764346598877303515015533115719203430654110728164444339656896518308663271326102562095807787116350532069442210815276377370814751878008148323369371531574349990038329495383130999476752348088521286968064404539779132625595050323858098486244319113469455149486597787280597575884486134606784942935726038764457271845018947094223054030323643113366097118936152744873819364309814303349045073666345867141698770422033513921487736412724615322708079822804045819462116148801580729420468963889955219235392981521955461404974776405974461968713498008020841038842577939734298410638185246466780337701078190623945732191775497519519144164018591658781619911430929215511341097090453368430790687394901362385812246393881213167506855133058766110850482306433508088448134266911106847867175655621448268429683468608346837385242230084849242164323485086918656710401326515051957964546416157410429331017406159909795347950107715116369100645243404530077397629396414125506488786079173953518790878349416840934749690675500533319228872582354517024595769786322620762180574808832619788767461172493553361712259252904359584412569667000764799757541993570247069822931398900424171058866388359548769755194221650856974578267787565786083223366628320629902646346780926922534967354374897635338251512510394404313016928390754372329773425223269542623961561710999329901807888267147563653073344178677647160639410909879269523214885487453038305673673415012061180103043798540623384709322083900761299966653797184304787770414483106239749976662469559564296436428021713136658121673627970591981044127594545595232006500678301583631184174759500332424723043028372635314658995549434049269014011726017396476850463771942592380796575476875909967944555770180588215211067964074479445456069891108452498641534402092480737290829492821244157762069279749207347961170118782737763043521123264910740693608812908337754837389982618814843050200111118613778845143446287582964199442230676974810743272673091561641392638211390603752698391537268491856962903352492562074690991078799321388881160870428544431406838974848521406222169102239300699716849615727537027221712691802620618081700167278249183739012310651210200693901344798014512564858206688777599003478330380052692695739101784871635635221465336727442738652162876736590005692697165937638200371993436465348313203003061820058290604777399638210281632409389600253757280521428727066407163871765146232381919215785008576011824362903411095129876716752993704121359536930010152559470540684686173149992146968059814793022703719570457695081440528740890371648782380308611333815545278733547649658337387829700329873440580505469282859196061277471014441554857768025191072963546222873394474770119559077520767918424840585271541910132065042761527094053154326642032241047312673301991568192168596103867260082736943999546120654816436644308249287119280945162923148782652021834536015520568464827995748160868778553542592918683849816698407680977075492934227873381214645840976856272826148692854737585553788919128327480714231812691646150331875396554657790976797244588073877339668071801215361904108378649940604426617422534324381680613851691427797541490937795170760976558691312177470184698409075061466691788055131332239552428762396792871744935854483617571380088815728051562705776631162719689920059199648135783185812634176205360239483346850714544342943446034275330734603584564234409036186109742588007602519409264196250092449785174343655746266793158217986589332658879339139518786200407678860451866513904698754163258021120485422062811958508720231345337521566913634182103002569350135946369225366061841530211866466219989600167826772873161702973365991142128153112555091675392920625151550932003055871441366386480801205335307508399045021475073560873554342871824699088413367774441161340211490520733321379377429886105528009853278425697199342142042365083125139437329219733575538305666259949509098126934804423621028887649024135387431470551164788581875905979467372608977601639639585761067165338667606964693686832777074509985496031970081422784027781789868477639297940744969793050267560977222078445752119189202021128291951598989574481666896231398657456761841607190212192451849050807766401427703919680993116071190925257051181879597386226297048058116829943177826885258714046545118234575911172317158477362074320896894500197778141817112261365444314334847281888216761592778617397176397252797178252982064533585567599670400718036150416281750114581568222776154291069041253852846410664683496698683393584016970280617462232761420126436948526377141410923267352330986042207469643832282490409413221062899526875372199081688350059667492751634253511271078393085864637940145830430784623716741958160705989783499541768944039977075890046538874680036540378452475464597959550064251123418199631018080078349664184382726999840217588195154490288063243589147814793331743195175995764709279628614475270360560001511778367866200292341503840197463739140964363779739531475959617978584885109172324082981747423806507969779095558229941571029204860049302142231462695440409454637602795013624493708768925871922504727349862651502694876578015910049443606369727081463805152814572572779440326383802730226134971932606665891567993240492841297084494316344052633368574419715939657717345787847064492826503505096544074891059636812469324503660694396716755277437880782700076749676783915369251743864796852078840805385857351950151466085428313912353760182083492792374247544492175495725463891109122723682731236400555500782613016323157868141549915138185121276489018187062062005753495895470896724514680807473668587766732260658916619815504257560757704706489730009734693900930956332323170879492714767302246250267438110058098612335823148927972833215628708860953106304647962408050258160447663294049298859095909718153592217242769727877200684626998495539152610349965170022209259447838344850420425804570656420993018161837032993610039984881927949729082686313820784303899951826740763406656392794712663790130760884246852754590573325953758727203864868944468790056945353319123065684629690504098133056443149760407674178378494672823555540619400735608268708481734319067630231516498779654688105944013464088701595448731664490214469826785181948919143410888984838354716231645318578021044409429032272938785209554166106766541753925689965996700028173734331365879588651495612746012817260715137710429939840491063927535405017784764506760407900896392704712322914519070074861467194139474120983580385059735053636005022913173059159790247415164899459109755683343727137961999291614380571023092058607664795935809327845860303828275567203608938959647767353501564649826021471514803052622948564315035700968732653371152809122627634272434110386170748752324077008524838916001057089784467967484212160725831536003564467839864139970912295729699406692284063768682370966934194399555626071374310974139460350937397108028031385388101233706857753904637673003636128666145948398566698130061812515763889390726416213167124123713730672969657742338703070546747925729250279760698466733982669448805518070630529717922739252228385610927791529758989759739052664445637837012279464946648003715263348734448019516333197694964029037179395878888033949996525528802726836530851288204440516470241347939404516727736083173868355795673949794046742127651837761763098450070076449670351048418845568284821689114235020006803185073994286587017083546123990239291768770776858956608684703341706588005533784056599355721510907005344076944741181159326191285405576427106251601418469586264274133348142270101599891221755075206561194421992436547271162055170846709991002757257074459754617487428011691935854930024308388380038823625573137952672955386162761539348954353921929928005123723251256191250222260023454523406247485652008313434836598956474538513360874345675654139871203885243803753321659932181699944418543020958302374646405469257314609658819133764036938922537857586824122240613557941915309531684192295615812996775139422382035152196567709751260351665462690887152851105703527489448873889680773610294086322630578064529213350373830612212090931094952102759436479111290382278932668268465202959757904533301921716603439383300749682214024924246130171964738110553404038045130002425609143915746867461231659363643932570305304041890041095620109870586298783425719127815606094634309276236242269359367884712185671716942429323285852940757298903620464322141172260507731055698461313884578857940376249490673494158765600942267198953630936534552963597971191044612808945823831353832024897605328903704480688192316591967164837965759458821771846150403641598967918247379731843548515874532705360088263676158399761889018062052837545493020892773301790214203443133522952788402064062182732607492713694997336133560128470561851873813932010421709468459277044119117456319263307134609247478827502440113408365884500901795571704875390689805798749280325374647459245703221169954414366656536679929342064303614859328464797313321189180783300615571658674002508587912997872240270308552487655829130203929051622849132878086422432082817280859354356717997949948108961188908339405137531014812924893621907186643507858891901710360307432545836898672546869794857146422642041012642263392079668256830320769978207948737616740871341247757851451096283133641464444126464909669430722573366337548927331567316939862101079870448459589377060943117016254936726694027864381979361963589182072067596815658588597139234716379201373180662926431937469109667951876851242376944009862170435698712012704854372464865146552088787466841901489982605310641105683490717803834678220800568045257011550394264848296742453428955422619711051634431909635034013588967103756355509167687269975401745314171123732913626535037393754841699384962575747587205825687182333408133202011599855743455804596434566328779451040952408709129650361229028517916035329842601348543440950600047571970659230342366228774197303422995284047767332793582438852001963085233341545032814911455896782028709449912800204430054054141782477118307603761394230274699633242770375171901307875793220188956897851271078870554512581572417787117572554198245734590892150802559328932218037564899737004895916366421851506250751648340456322456798941141937263999951196211609093965848653411833589142898357573503127544109089289230798418664926251795763967994059237427235556802841187969730206066004121908395023971262112341402444545011937597279171247935404685410487686818519226505922885162812723237472887143623738471234442607902279028972524375620344465960591164118664924093162912237554029758229660030338682177164507227450789861418153914519944631115415631168297673760670912515228292803377772599975672489634233591994500931067914143578640907567504654827447394092350305206119939682747536280189686307183778503639807852147780775027210482440881364049014102366982104859561561225207377561316058229421096789009288168753659815241381839709359973376868477043203656175966050718730955348383411644140554453673207823428011875386421176895453560899363323362807594628423443843892562844425386915479641397220177145692696888684251768108681593701404773408741695224925185251871718082944372838188566408908255667505238795791998255481829588781442683459973933579527861379362590259305283344866749842214010778746553144899835802603479146045518715498787800261375755612446481834875198283338950457254258516351494098676035924318061655151299837556357446635797048271966120280009585601870811258597245252770607906176976538640671284914241073974354791174818320231027164064647573496062987369595746221705155985441300028483021610333491379416235096620928149902008194849024586795860213719560362718935088266606265282490049395494990474509319204273605889702454582003598417109817984078286852416316254662358151066290721098710222320039792142383894592992848680329989436121827286886929368730217577331098823765092581008580504639817625100955869035931536086402456912537152076937026407685406293420679027373219068714567790163185340526097974391339992233124671575485447568529465234423136570709280096763963542144205767238807624896310603276431806203020122099218482176881123362707006213696902168238737994944289179518318095116825050988403137008415106913978553526920255384552356794551413903626877772886124315907631199090635676317042647379430138533144773380266013133642178257032642955461056193610425839796137125944038718695057892469593195434965278039613537524993062373100919820813024238603409348240885554166727878339826261294976706154437322678055958762086903591128594959008396116545009207696052166071055978941887184842269304615008630926918921116393699567967435722261251696028761599362202873283231148439184086273935916669298041854893961102189135334889461047203544365908600235310842965077875817908048156254283565046995084343900476493480989396126811640055291619990512512958856820597916094171939161173765673099941423986156167181239375215711790803632472902247482981569669033120317441981397977024092407964732586364806418694634216617902520882453379537671846046981073054607996409196005376171883278983203733184701637016121954042825485004146548960332636169639876626758050703558225312341851651133451477652781830286632198289324240632965387557488553991212905824661836647407334194776272221613676489605418311645639750522699620010831257877813630950968659677142736680106668667648499823375970289883573669416760973050414205946573122514441496602588560947077347080035978728892449783515736011405974159231612626910461285346032113398431457356671139598670931117943708880925446569862659147701233546345794468230411548070428795651935676263463303863507681584357103754178059921092896444593723017806683476436063588092990748728658180409957932919854610755979393046024579330414737107556991732014943869838472838967139767148888639698411033274290736810371662909095420677601873142186792529228961390699487416845124063357203334355055780708254327693711216747380428504791840699096254989186757842334759162278220406300541366860484773307861148632430309005714232739839445357616702517529980619183971428112722081859427144097804358269516473021447036088728937492734873408491470392975592773266853678832007617332625956659136464219348184998988488694167606895859485178775885881544080852466796490581722925926358898260160445287237075987062206740570089322234771098806890414861921627989384013710825798670760494425969550790290162391911948474678870091281670743878928372533425228262075450015856301810820073455502684187342763086888627460762532158060920585308345924538952451927416716276408118693880239488280514425876675631590917976381726032139935433636202732003501083377979165947613567725728632527766755314106392947103248386787049554385486254202589950083650790116450716126000667287451454385670692529622330338664598503833918923839814766008614591843709191735219350205725549185381349967909377751505428648680193818878323036880383168700702340722018154145658218868297272739134944203528772247218287845268415798251177950357326022768463165505260199986884367330449500423458117420438276378809069900979069197497650626658596004784010845234908330767633713097133954407424198486288857038281107182524830444729667770887884735172910887425050345471502043152238675297574840604326052516192240093498794460801732929026041748227964607745285778093484736333132035788507488207613482792047099651699225828909127722324274909678656364649914985262661024170709422018822127244013559765498300145144753334602155779877964256342363611278041965408023160210396639723650746685377244234881896684228016641104473127695912208166610290561683825070277978195874206140877042783378192854779262835232167337143653248302655925892017336953166508413504260596517334556098519870499943300758392111652557762526225531675369424665135579076719764842253670554588864442909776868344995796609516763703009423411380317903972700662239381175406789215789473780575926913664181722304636471286517324995520536402209282500969603963979825295101083628423030110990407697278628977736698065288403063417752293927800883799216171768027451415840259466779699901984855034633579608069908245381573400693555726092856928441744001410157359908814676721169489588989432398989779014924457963153904644271000944940985931965070405357775389454692549189173111427814996890140271350704223637607654916891619965802553268659510897875115045591798493040669662229525953352020065581074728492450124145711147900787569476500176931279373707427208629419609134985832563428821748543171390273805176185719537534570932734023232789887098791611822761334520438077456674371974031920421014032220849498552173011472762354766465870755535377610123907998236764628776099027078784737493452220324785209145120298041303033634972226609546583107266819763153635035594725662868916629373576472610472401258655667744380610536940628216418780406024065803431189019884288130846386674135083741223379422154087737909001973035821509288089580209255940890043116891924432159439089606373407535892331872336168130874453199581339600937214832576096764641238517441764542907393067587186248943273208676887505796907146171031560353381739468878423572015780931924726131217210660211158750469633119481349368270738892731974057229626962162608836563938179131491393900131726595496332849370494744713477326931890365466401902660266075802935369317195602950305536069131926282196242401663050774319835673871589458166484500778667015904943264171775483874137365287304272032512135130930900627157644383787183451315574138980526050971452812520266314743166977286139765906595636725638746541751292622174316361053181867320350084264038336740243706873833598346270545211148823679564371773008451645388204632496079015497076009940267026504896583801011724147767405751232373386206359977474781557862912319590585727981958159594938626937699339200863252895023032906670136103427769104359787272002696285256965539309192444118804445816998650890918187567870199256567238556051685058299908597340311111353978463471324222560725244767836026687549883558232746569968864699256938975244370398018671598217292775813654590648001330982986808500841657992524505601635131804925422694490158160086158190022827835747276641670977706158080514938392267135462355174817651694786395770827260205132485777375490636398775316753962562324512642987561493388396346348946911915681312762553584348405150006398115755747669239360662936282080774697959817778749180289382223323280562021261874323570185334911350464058031348442834847691220900009410065786547813422772272477744586320599580531746324013795062912686102564758920296193056962576715514999405916237931989060622102081664964936352948332160306163847755106526844807206833613466677432051398127232434320538902176968371215477330330246806622907285187193932714193788407063793761720003592105658748098863793431872978835222167172090653488377552348699460921183708315031030859167066218566583789702031122153253372819838602505269393547429261959556921421164458219754989296904877271403705289197453545187531618798333031118873282290277503755055406648941908495287779373674100600069263804548961224288824021688470680812623004651475799948877642017685229556230434920398181973476427616040869424412786262631829120130950664685542268946436150643193878435332763968284590396280866705924452100140316306110696684901916819758352151343754075046668153103321431784379738902184511471780759469272513202881913381492361205242392060814423344856084249632857084027201388130417323642754701663256010393404645999921753886700903277469542097981164694010629236502157593159019846011433784871065102308278011107688513466568005259149444865679311673470642103839519609995751992139663407434918274766999331813780349597627014060551959274308616791729856811438184245312799782469439103221505364209369743405334928805850879777127367087346948023537028836780856546627006348937010433447163430726106677488744859874294758065853391165256286132700449668110986271491359957730732080522527001585031809229211771849529353991471300951387107448879767710444293250983762573700928185511148984693396730949812373229997968457938660222495060332779754300981501992890481441687631839945094149341382161404177430205134136052017742867674206834068709840551411689155563815291013596389306097551316274114906373059515772185953516198705200646115582471260116262816069899120051444259729070313222647108436377461824733957505081772554135560163262678847205138990403952271772003300733360333343097775013067242177390170163967629797508875022735886883735389099528519383731571972842848279706214564626908991745554523123307709179391936557078000775143380003835269597280558658138321610804596810985835376445002619110932875139461425217404433268536042086429355953169368748093499427536240797541341216906133498013922972491154428131301734747811688469071618668887465287581416159412722809149497088796478666260879370531536357072654919019636881037207178528271713745869100186194436164927443986259274752650168224462714700558720968736012729598830597226071621336890708498206300322568177377117371812675265401380115372801456525716086424860354592613678704992889168134769635748610199057267609083838486061729142003504882236296419730751375114511603409217550057857464151532097249759242783219476005827480820009959835837451292557483763557310689947167037426887671056942584755168871121521355726402901330944497953374060006564519507899022219923894984706912922339569282307537607081822073438781080919420344471826805864096403697945684254352116200836062357175230944724303641224955332064471370495410737863394112014132478569836088775417420636892060104554542201101032030034239990091832998989062745755687714655503042211711205111667353974397851790427515020235938369456455209438886702468635861767395166129639211699729848085714645000159093049703803949512666386730617801710318412005581413140051821684861448970793967095415047654311779453042557536920240943799475409015411460625345521810686116226413062090015536232513302468026828214073792737963102073590291689191687545823137428954525388333864574666481437926171638087061530031392104541152927189719069616766986422245693237826452860194433242321191543587029342765805552545162004146165257841319747069216015407821484528361601209298333941317360842241922423084898896697636957813655534593647144548010806020175746866173900255985373603424500008359812244991955436718060624672029437791224347735686927264385628804175588075569634433039213169953389693252948670530854133495043658975727607533986150235063245744764882958378257972977538108634812080981607067887408492409765909705155699669099385992703577036683739270988671160333690002840395829316068507173950399085123324892946524120814470833898388424758116300626004905900380076813582254755935653301101796003312924439606828550808943306344806520725292827608432622273176979684637882069324257415164442846033863856926593160031765830873198162030871028520140439651225089935203231709046464458579332355834499518880205295019430837367454187721374825413105747009585571274853164615541327155318626309093078250112401750360672003915744779381506900042811326925489445791305316639889816477436861458369698514117969431084279410695913872270948074835394551312562606128577091400702573080737182727620364209289680266167406788841792515876386433606213991724225521918699082307197511084398554971188425424058020579445587324142851679011847484463334559747854221599932758077845658062540244242585074618137324789951365171811205193729859133106684973572941242929821519773767006799792664867998914856824146553980757922019168628842358013120289019859917709766970355529814921565467228253082029380328077565261106217073304083665662850155874622217524780051904862743280610064135115598195247924494696373449697495259187001605992071598879026060885349085526586967811140992159625715167646050741897764863551034067789607434937797167300303703161789209147341915389271243346797493014502296519121419639309803606730617131344078469297295056186371365913167707110420713800927959793472965749515001272011646316976978501926453169276027061663462395930826494043956930217055908314650315243028766484216673756049113756207056573883453906342663841677530485373689498479557911271538736033028536855877373058972515891038677418142391525582503316559673486106690876362193637779410979098153372813009001999807220803751043647425110655187844962475198237949494286292514168912507630238141418709984317964427830301016964215030550959707095282636389231924107409658953973263254767861950735669754224701098558299618339932561040771011517806731459698670267385049181321009711694496722559861021262008860238362813987350750850410128351562751640466387058032288149449088091977433470646607955495867132154495958419951342325630376564574366169727126010544176570794582624481009881206245555442929313800337517461991930183467856602887463104623956098781920422538942497298173712927187728053261690938614492873654597642810298220863896630232601391430591657557650298660417726626769037073246746902593803209818717818345531302744482928153427491376898324822304445906204041581520223379777744767215141585970055694356640418756940981248997499930538236783844033038204188316698142651086143303817377254850548080524313307458695217336357725127533119887853867698320224380393653594690975921535541086333914894508692201932660568936396028573851794552373194069946449893350896231737395999421865071697355706044430068074658456599586576399534727119303412652069028490920597480040054370116888302349735649249845401580602920707659608575946018310376598885273480346466752614662361097700606011742793435513514462270944632110456957760054527623821242976048522615932486170340209954620831084925866286085265641607581973379482818705614751532696544880571506685530010513173500984534447003820595380731116962617786809733510350204102475612560063414576570207366645231936942334643132733086411853000492279797207225745899644840000289146910123018195048675945547032729971115031142077758761515630922333358369326020619850211241871764990066545732467429818993003846979472131998333856526128605284303259981967770007907278031616122832877689619099911352185359386497118894831788226811686193929506168602345754634163846379351223683080286623614819440823023934412766310751694308908575899192753458465645390212830221054458148969976751575082934567266667329722377440010946355369895538755228757244678586503314894244704708603157364962346427318863983277110134410326117775493049580547465818091937216946630234582001195114726797910862574989810849804027359922597562725223661189168890935949973451946791231870347759091466252181368873375351693590112498156902441572300798233557849718102267807013807660801433695805043994567832512582031187136103452951227429908627536101949696446964250849515952031867052922637315686014352450820868921342521030143936643381989077779405178235446782424141183719341707974460205212297307627489404816048570337397467163345331187688277852817019443875161583922894627561894909502057816571675793822297721075292966073705217438947325994531504875112231075230930376446571874656013033214310153820931979129081417046068475957954607180293627849123526118080356536775829240285104106159971500526494039290879444004490618274210463248518010209308871531699740104453471540163371161015665639625278789521904133629770203108934642004894261551292525893141372509370361568167075592818724359439175866606281857798848124853326141244512565033059776507647803347537799465705358255315728016345873260210812266321061321375630132050094197959522400724154349442661588054998897142947920647637635373013711495923576966732303191022330072229564567272471135521148858628012588395886841171258174100377990397728771752265627920361806105936604395401399330709633054591945640112674594129548754300838863202927007909706352423557949183489514230064136838990703130533207456733019280573204783458549324862966638471655933149008971323464624508518652144634365203638337499760375805698665844329016033875530857555895699679168876260685886801274500117199601464520010504220339410694461881875162268784053930889567885313949866526831994232497936091185799327023757375100850648987738877201963546371774948629828742486092518024710705479338685050629912943591956757795900239444305015936375306234419412681707397017272705177208783633435094610813653222804883907657581998325212903490250766058556030561818938172350213521711008463958882798301236216760838980136508516183015215901239502462787743010847801748602198694419700628261456208950806688418528631799610329389352280773308800311696130611006043614499836482851939724067079445171281768291155396348676838969939212274809834409894513080330586446040156863704721384642078716027989730581567335104832917307907034881055786413367727768039918061151482230641493470247811549018031915206998303105931478454946034223905843010104316751546723865195714198439451664895252740589958453802411720606739443642953316941272366541669024546697402860548543630761027536447532194643370640392052617735784678729313875184030614719058094504860655486143145691053056834471278273754889893479194273379414111710798846763099686351267965799778129051285399504873385827580685229035205171622978693145719106360558819435822393821380157276524567501686833121444992220488744426327240011248295975813840487721073342361358277593074113868772205367010040026592530161917849152764232692420116664279279007175329602361668060483007574730071133121749890514797198624813531088229872428912077888437426938335231341041620090408833197135605720445501800172795621422646955055675439646833124730552141202215074023669644857886006984158122727636750184388457207816938241687297906784826133492405218525661646550763600146400056898581681999318256671957004793588700895128372668560182830520194359127502473257186516873742142485172142003279421695095357695387774803778697864877472857419249475524762396739985140168112564358474740969700941711670189657450668402983303315481836118712963933265876547254128984265214138868335492016591652754386761926090601136952000771691257124332077806520886176195372345717622730029490215149380638875638160367741424832405964727077100728395661853096349698688234477126423978782343797696095122339397732582588610758030945679319350331504417104707422199797447695065032582193744832706236030298971847995046710498311486583034287246736331500597814944820437854053711920229253754254011131283456064565875850559727188702236635620439488991477341581837770229591871829036649394191359682773519085588082587870604746616823214329000426175555754907763832256461707258071477674472898656448740688366521204110882901804050340553668655362029566076348616449478820770518604550956046562099026828312704789687439783558786146265369017435117000881007886145345275133869448054951293208948127493697229142738894541150082212193760514284235794063073131766536974767248012705323846918779969923619709993097608907081141777998693771799632095337266343661764704018000398294493689874390438757515503494592821436821351400574022259774716134824473424728593218058729689243593558088120153080220389766143625393270837296136573828490001195251151558088548410654311052809577339773988966104996017595831497436484833799325906509217316612287811153035216371552235111653168019465995561270237769339390114247275508317231133745153194798973700658345547916289655414169797132751369274733091780878266164354679923817322315506087801322887192907718941125635576444433445506433281475542727233839657489131529030434749395660743820566485588156110406037287766245288263750481739397400175055632924793782276459364151004600455169409733521703563829176763227452945307674278475918650212511237016174286093699181565779554445351197903573350660084740207212940934836594636045829776878122079554087460832322509487954355106442192409165454666048103861269772038125770668011839831400266900600930194698727483000012257090301602348201215877412748069170459952887800102614666419536346169261007058956624793326886912637199068851644097050474271097516395081768754309495207585981007484948637977261079303878793686843652364756147007337171261081257681260972207685575708961253054400041772431361291307526951292729102723817694644822593465879478427476167146286161549815444619229012382898780175754829913134044227613713945629774294053709983578906996540114409653816467895240652231962056802990056167650066145928157372154375336194973215575411519511068725558278877522939722428191607878381844267507785505630947760624652618639064912286076696749791060322351130332155218491152090189267198945096552718141394106131387991311594700577141108994118518767994798958033316760594520012223549176689510020456892064541166089809148944511898170859154748842067840492088807716074593065621848637139738690734975379382276014882800635558315231755242587606523219173372597876788400499996460014431890036359778653514817334609036702114048801122491010800087870627377047161238614636204085109776479692963665880319349992728800879044683703325765078989133191164131871832741191604862872068505435098980560233185572344813023079633274013660750790582832845636370020854907504027623989383039359802911915437750135337952693117817018875443613280922405226004701048234157554013560058731157746711886163880371793076356798586855544815879204450882041541456163387295540201313386766286811507658640464397573729386610578552927940951039262574643209641453696569146746209995102190883579712535059200474219627249261687651298491915955945836186941381224093938050042508699398043259587598620875495886858088395337447129767262951891641901265487733823544875365176657670531091291953012331661219062740073493727498201099659058739934149055684856172829970363547372627907740813579744231642869413395681245602537952960888478319388058394353841524260799545367459019016464394050826954205039406364263936801187253815382054593261170535616328601953828293583555144497085556597006913506717373380616287766966627404308692026822175226469712557647017367773268242275058316014686791629928022006302549859887488973751146779306424433012442356796014865918662139441497974352166716922337123676789775450783189269069403629429963469978963300813371084007427432456750190424892055186544731372294426638792587439271233628393942525646636667594916326078296937060924464552571922367249121814032656820485765423130836584947480507545062317339170977787938164232779560865747516871182565413708504761224445728791283749625168360011310758373653498910368341242492257111198413230756585678338834720357972540942240906252367802779238878357201310005528298141801441889347404489365833386710181867549781640233448605618008447965968103336729480928520702171985379433499370835115892145020160992927925039579494524200599590634578691797681686488610000390362882589171439350179062988623027566700737315076177543392870532748961622370618282735671106552360586475143648818974208279384479601481962256602051613528208970051163034176691677572140766075609008538176037967321235344618683679808003992987508351832761664071584919931397077989894515227247591428653553365948386461135751559839206236239404669176719930421800978921273822055542040461158233260538074910897320831370797643095433714207950757765766870868437359058379610829300125935245044331915886112025537418552643960600503959580410060240929044604952089411918528120231960980355135212932476819539851033622626622456853011002664365446828135821798953129438367104525168800778918612197002565622876517793074680485043314940577997717891397706982452794251104627623138674932006670769415804264898718482143182499677217864672691374857235141978663237642108109194924293144696126624421085204993484608886690819453652479638660293774603495297058911009899182435932587242184760613504616433333273618025593262027086699244327812524581034244500560073363709489528363067513357790706565209983505307357682577979407244794510168543520533428419845830040290359264165509902664715416477347562758966806477219727882472247727473947706843456164987529097064574304654791606775536000543021364168476285814075196158081602037666849551380774707507857679350768299575404966790382601030237206314217413475041650687544486294535899568440631155120716467161050379365995255659613853620619834099074699002878231215546320621911504571482564290951610923888574813047616257661106804801356304227399876562736805418243874987231879877703161095788030561713798122848307710680941833930182242315639258129750232509786246455646554669779169961057373205897675534879243250136344908745352341044730256242808271653629232211281185759082070358393002804329197023918746737597248038341562053876227741259525552099980912703705242592598746904683335237360431462960760692313657498123076987156899623617578363884814509897732975553006710743123708700235146195713485684896074109083375431327050084422622703403397327411187622794952376271600668551640947550962784958065512238019604646089964321312706383398741302921427901757896476559014438142171346388345625932146011819463877858398206912119809379112308359213637521186220148659112839172429326781684010604866266135605279167470118192598910727486958975588200718572466569918598865934058118797394537521311421424210812537954269511141328348738554468622428615394349278917071015808288919870215968567600120445789959824677539417850744610270583948071237560079454174091490431569446996102518596977764937286155910894266659551735106982389973947776417864685721886644492557336326090775407261117530345885410754776235531828187450859910090715957413091965966675718092375335403656343085374795703618867919762304994145920387766828284881277216989327562302491564004176369584346740512783166889265394418564525509685601321946748850621215448929901894957383031265778402150782026798352301941167410924915521665960144708301971354076890085208047262640744806173541610155612952115734504822464145861955127900734332092761123724312247111336240562172039796452924375051816658949639234524502786257632867056988967121654721078079571719518025868433572419254671073317772720162144599046573271588209568744578637974055728877855060272267911691029869427410417565075079367463081416709480036725650249134529507749938567370927275279965464067913914217080058362938746756279632283215761592514456444721713849634785676492442343801185288193068221478179697114754779298135112189961928207776464327430089823062239512160899044264354742465166936599095393030484945389059743572820891270826217997532760116651720636894626996518276897432878258506740913209851367939751669264675868162145925434454968580935216927044647611311123181619867166448150968115189165467941125074901174161861294037636451838617063736338788720623806406887462054338087360974847690619018525511175527246219962965898349134951249942372714024915417133270992280763397650507232477430913194285270819675892964494919722615726795851619347436198140643816599721064869549912663080936143744934460519480249039289509878507768955537543222450681133197079878171430593780369960947652973855625691971048898719100693764185592552525576807823745616977579920611364193841467398602756660085804281712367447952348388878430043287979160469877498272050835897740737208794862924226667031621433734632812692298988799007554608742038491817819544022435670286786146846151433050110032102529680588174436306088930761905176590660110417855087287369745842524116932442784214693453315031985724739153300814187127887858986968189540994325779720871179617030673667896016723758662057904511271597246267317400227151668363894153090818764804750332549027935914067376674535784944407990767858542261684849261337868562534142545025972964130604402736199350312002112347525682834763520407711909876673806183122829779040785028837536922628002846950315898581813028462070001871826473368903793154423788744948821002791537016059255829493533595532202334102683050546764515761657300040462037383195244550306098466344901121447139136425805369792037011088308389455563678167478689614180048869238071562681834162268381629297203254920605035259993718906724030267389442500014556021039705077999119371374819946224193437198438166170572477660211949262217980474705572659560159630531456708349208042069028809365629783710883989598124495022667166636210452824427428160921863577705934430138963768623430456313552815935265243825609389724953075430720224828024330601038759696483832905357632207391352934679493343353812030815868617688468852305439284225242380792751802826245033828638105450203877470912684783670318064002736200642142901370685676478833619122455652285119624702545236939967658298862479722964754750071317784713220092640212664095099769076230281810270764268253321516932492187610885843570279600316686115262564988637609297606029698645623909363142212185389785800625767865637418729144515138451355693061263482055677514450658563134690038670695466965407406242910403191599930768376585185165821619179246594054543021675674593334916984089535247867083665550928411864139767834281063459546632579165410966213313104256153758053608796700464123861685334464083282809929466867684113726662457315485714143334168351636135528190279256567819106365218687888481950888035504070540792217464785586120454536762853744983302775719075842151846497930451224410361379734586803466258708457024283799419604825941863148366006350274735213288599195492751942849316778738129260120824229764662444252979160028998576068741592750370081631207190130440876368984875129877166103418151566063005726361716276963538083179898274707891425663580082572418879107725895562470624315220668518202368193950693749281458533512398125247915047017990531232775176496059833612244177349477891622907603498659398151912972257083771991580572090670055532841127162350945307338739270885149356532412427309386337533540315422593627176744527063637081747375509521496779952611427431313185132044093065659176451582068926307964168293987648736928787513220452969067050690718084544705219481143590078695669529646631079004359944268658975319580266544055829493458930491946541437896667511504870653716078778956417774319235446679083748389479484551953386055435968629754163184521059598732502689591570129356095798607950405737684915654615876300545717385116765239299282246739941282844519731556375453308164813782948249774097998250694002697179681326012796183860429882763952302914720283014982124262652351179954974486053072835538694241664924232759592632269245940752139968880201735626004745335084133639241708388190418742458745400332858697624548230262747660706927866297500249796152216478694248528940428143056668117172853206896691880975048873097889729763227412080853232644633342381273721858754020761320900126167054702547425557469807576077603277700946907304549865776972361717005044260642915920777752497318889506509841620846280091304336382874499547571450070371017287067609029194042372367674656981914480924042065244395284513711121026122916867536099990356410544031811178323019460678178100586280176105357926572448594300101676539335289913265422346650123147056619217628441652419541915629763314270910181017390231227904217456983852951235831022184451065533280521831805658419492990745335061863061778397443543311345459591021941752390577387323647221485920599016148172142914335002355787356423464571532820369836944640403449023918264965275243700619984007287452888973063302993343600760447108342279766502896577918789667182946842774676345985357998419452018952049150315033161643367289069426717292045014877720113463003539816422770803468115206853206308699806052061451975194932769756816795733666917952732825484728013780470285903336929407726412383608453885810735693325154346811690735833808565193090870751598736378066467114631970198998704617528820559703725458387492439789960639543149959942076693042465728935349386647190898176019415947863847818160252713228775591975331034473226745277649075999534244454400504899540357338397273620789390718431701976267778401618894334186672303534823254357489697134836915594166098182476000135236358576818927276439522767655489712361599666271315015944069043185883859825751101728341290984051934861742730866424453541075476259033319243751317236364153347993448304232930795975528845374657680629418796256651898655006036955034462466625473528385184538582670513393891581580619661815371668094343652424526040899820141755219658582483097450880864331213719717888497941496194670619094639721178693302591200444471448137172981310857449375115938284778969582611190232801875258641340563196323223608229001361818545413706962989199612673236195878364039256133717514433947105046267188388358302096336318994624064153340923491605329867432445056931052160957508931876023199552383385571098011841629462184114958331936211021906380194573760358788910819021604258461034403655739159191258724824919994051614962190252311508922871760929942073348871415934658285964461984155618285803361544358242798642148125672967925638063096173093511993468679484360729297577621750809068057742521631010125966223685557545599034770959578041316989433095849683152021690306319839414883380745989994385780153949447139676947203154996085220173538392128043822357671636779120882040753634979924538535861067200599329887799103522214583160147106959456077169348018814331821106810194982472789182953582816417384106522034520664120544332943149272461794044691404928327831696734213010549992623844929725223765910854298438369034744753888221440487509129706302803623795556501173368079841197583532845223815969520381471790590207343577930035983219814649025953944572643343190621272997981254974012709383890647766679218073670812607919423765569513614453435922013106379178740762791934452574094690376342298254941741209799071143572774148525952802042920297348980242397844438370590488429345478817039968533570628904219836787752107783714876292339762206695256905213571414602030202401734677642391089233579119143460811744543650589475983721518035739523414343425678922575995391092652233199963407769104935748285277047164501960591854162576157481692312677535879569383495456960964096498975450319147935579326263448479681455921938740682165001758396455547441629358754062476105493773106735859091027023862045549155354646198375419824575162705991247898790340526247748244706720178813169013118177429175315621583238814813726977902102335296821746781949506025736770351760808146546890785222035614569814125271696368212050223643303712872977613376133655884074969813250127079928008631280461683309010640737253068316892419442316220300545986543693588843371028665213935282312699680099079137963840839536752421825596238255118983293292215769060150430524401496691624949094396276464516864896511000582570837887223180097134162260908957647976362043706498285699546324934266974654849706601187719138774141574134167323434108839345375930098651444318504004101044862499659140808869186447483165003610010925049166939953271916828928301533732094182971415046616939198645057736918531343597764644000212601759257882651341221328221211145612341725373322817921909667011800296092879429581414973234742559294852503224810876957611972204653008906419605581840920794081169331682864527539129191030572202298639951151109110378211646109965879387783538567107032907460045413317551219295261703589750676101933640865404327912819450745995354914166777458103563141897145775960844557120618042338086891858312504422311720722794669482806194575081561183381506879803179244811163990956773232089763040354977671301437142679779483512612792554554925631452203068661355733436491500545927986777694246234900433431357168235334189430476533322696939371802283697130101119414963005180051063254117050355631968912981140908920838416283538486182007570039858920178621694757731482219330530296979839499912001808002661574102712270230829818491043680460975090209226659488714797252529364083134717829014045539799127286912183613755725219085388514695234214956784435324227022468127391324361667598975258599723617872352056704085274023561979103327176387243372119215199649017876367868750249672233266830675042560665599293289709156541499157982179862066578886970088194348117621874365566061604378950782719263045683839123067469139729162286979115028981874675298877528078417374116861328576305976939249559982439479253114449036733128544622969802684842550057814572159623649782119884277160692772985352646689343459363893289349348394149357240903774839242772487247283577172624714915170831443179853934844571937447783483030524082107967006169852383483701385494310459838647624913180511884644539889043546375761900711374043031521593749533860425356549563065328351430502812943832135783935480354763819924893593938521240618649939928689470999432011024992884216774077179929233738016605957470055333530933845733898639401532684525779867591302008731065211585691450192778059239038069619097512742624722048673747817842970701962784087636204834653284733517862607415614990403362048159944169094698311669662223260627758316691598465312006889807370315524589322619954138797888875547255237046772776287705444062923632009127095651669972766662720406016162197242067878150624389375061973851187253656633596734018557612599542732605414945863425321171209723137759663668947341492880655777242549131711881335464936548443043298254999287759487064416963459611333692068305523329052827006934596199557469711772464744067917300195990559364554448234690886024359482906680051792086091170807438571430610706729235756118246743138699020037530426539687888008029779448122952020057769644834030867193409058571913903132843838158246266621002125407341356762887420922919682795653600350262410032201099579934034335777174964086534551489013238023726199377794463577365632705122449039803289755949749880602250113908007972881764897607258081458615393830886282017738051314526177269253000476207708476824468323767904425241530947046616689726405935600402805413984539541118153596215689969130746671445364054510034948953226191151212030501451413942273826389706597821087058253718146644525164907040888601058061539454155609718519833716865651485667468191587445320862235033485550242646060340304913833453660413245634105414689342833086062950420823942076826961659705547858747572102038163150823781021532275969395410349845935187341770424109809173806531043078241622303105899747665058510091733482000371828661404011945552191905308562486249390257075551194599895546036001675001522945505065748710565873362856378521113479902796437050532095055530104888283809187106630740674764391127184436644259150696687434429181335730316186189371892325598497432947559342302492081271071742100104202845624867029042782119895963004200504627226253229599373840942180383316642985892672790008404583850225961477859884714041656128734324873978435333246861631341099222120346870680598611877157637353140631929817151239319169347023995918534524044784897560053519078907397259545940135581174858248884219105415653136668016141750262761112712181536629882179705339789693009553272193301475501156404906556743565170317838903019181029604088931156222059335020852824215809504067397274351624781091572094618099367181279571439700475218428791959899374718778859773530481908921162580216231300435134566794976618005464426604155595865908769261355649205202811910008651089448553359305934819879430891143123446534306613452145799491977888289918290359570824435443626515997031094748900595990725673509128557849314664287557439891532170214947131428448584770448868199928986286872832556691053649914954816074833884155351781060361514240133438321666727114841872554214066872908958514934286314740865914482890923115182489984096745117399849618855256649247893259936279798592739614891429103189509672389910321106692534386418840211743042277665869912972913450196481964653783711818251594296446707841189094248798484180012387927407842954173095815523061355996658093801238125352376780288071190231566989469088954408631598552809408197195108612677082752509849734475557828891616703198537117351617852837071805699592254645150025708850689246730828834094120800155660029769185307944762684908909597377088233567334180719824189418283060152369524848875239026406212356928500752070295387996960395623230909580634942962888712437822576130882412797475458287388996242830062603644108458615703078364404167221143428352593367038743034783210782746036066722351196660793631286264810650112973616987845907392813222697080052959618172151056742438346109306612396618244824789125441193510652672162493815345195653280427691432302965012205611119832495165465006620842607607165363596109487662691719521420275189443569751936181271872659879853818648491313920228487587325463673748353072807792475009288030588401898301300462153634032053907527983349244124425369513103343080113819642408569972989191979149726503016893782019031351157732877973913495634462753855410725535207760840870211431849803219483433843641829665482695221789425690677631950319010428120959436255458347641811572072428987512009863082534636374299321503343127606631432537458446021796230460667268838389435824740840326524337446441676390640631376808395177859681250117401127691175044071692795485906567765187399253358602471967724429482575654618748014828353757460149344257398142763530414234272751176073335097202633807851236180446395212350087238931918347972966898492527847806542124250377916566740368236784925524069976933802235931927288639573844818234898479646615324763380611510805747148763173025494410302611956682063965527520650600526930786646424122208633441743014695001793959707528872458575778979073089306718332195190431939848289962269555449750250578435377864737345894469676782011609302001077084924622054493651264031551020503132514909625984031840762074975684044492111876924313565500794247744927898933904369159836592256004064845835009129378729179009677386007693501688803180596143729860381150469107012720206800199786646427356800564437197799995093219960635815191046274546854772567099481188076034582619747107018619998365457651051756178616590976710383386683982350560264245599325686967672751244399763209153947650093323975690036425150889201733650677422411648788028631227346511592652534343726278815087825628488617789639635712730248196888756393497801040199378895749258586172066657495513524266027127618926094652963522389808885680710260821099742627409164117764326869523515705442831067687764432256819350980382944187990143358551647974910090206858576240277448675741096425610265524758184995712661913175316242431237503382896202598889418524609444197464395400444803331755140909835025025696662563971134903581692853245057542021011514839916473705073607756919556202789251447466908216090068899123168549541591705284169756665744379412814054601315271519884533766852839203758485698111540179844658298721569356484233671384724375796884697081723055972615579229351924282201023520313198878410612458263338976038497129942214792674070433378134977851013933418680737433703626763298109988309355478180704521920405971165138573565430366342306532188137316626899618299279747414137167053400339283468448074599993287979334250852359143087385453598852732467786195738263082370487003856909080810984622366447037336345954549077906942538909790377029425206042945275363762579909548819792274409981439228364132485216111408918936865444248828052225537302204291516681277856874089255212489291160154917093302862673488600159806997539181140274597188986095496403296227674628930034512216246954799497487000900981260503915799832638044076629559354963198618939914029045320483612723924829729165073105088684435593553234016502995884004981668814023634186644925609467889224090232709394569786835663753886670718887946848687319886125015985912529991784892809508928349605275564666277798425238494760769661493965802472068431486859092922082310623913338098009220253274062343670026648520044861696738391406184823726566545681476470722906336710868088593692333060745104798515355366860015287989134555025888195672421131684645258727353974622945342093401285021420019252986562320720221368606020630922772848059976995591635797052620182324762018989777011829941859010494378204382419430060446959440769621083461041005352018043930729126794025953872331695102334857782290786295053278162612792315070399343691238147556982910458933636222913834756950494761328018784830355559258561651660869236086230718696552354438963074283175276107672818554060316382421901306219257560927676196464082099383106042101570352252195706072547404666362812649286426869338894357619622627726327297138749273918490249731983268497237154595680893817061947248414231568785785771234901807863498269385403866184631765247030427484203252344982373786969426391436245558058717777528091549010993260174370491361464032066202271995382220364076974525849411620745218291245821099625097601946137587014982332523288278336769917448353645564269833574205728788834177185040823144807150719938412574198367635286439987042005545782121337104009703445420520495485774040543821524990139542381833406627952238571783080769725435886336020801889876773330588817701095077322390635472506442699524680186277813592793444485975420100062798860164720854366595509477582207510308321949119487305852116894114290922412201295356047606220959663572521662738452402453587651080717470154341997644031309213695002006533481273240342167448685057771911144809827359662107088328789577942427112338573005521627636661034039082998738431456776067396212059891493794651547459575858856803702230084445843387524397527376493819793442045525917114225171797618587405105035379186225003539174119464314491141468410779253779839646316326803079325423859727476956490637344516398656724074295132328213840239689803485710600364623647622381446471908561584636604813906369445554770993568367509850466406136140930167737786175077215882325339456218672304552775087783643680840906589111629746864127985306035470634079180124193186649039368230459794634415497764537148914981882876324886474204516474465195189688373860111429119093760891880008770102679046875387812571497200073007004640996968981617270937617874192702799974371730596746837724389681170559810993763778568441373138891638535148782844192323993119992896226335063377677697575279511189437566618233793792702231089523404528799995450775131733120768742932495740975596712122913521441000437752911335660298054396909987083126428755793231779152125418638631844864796179002085411849687961966122452808375593505317553696698968901339410099148583373488155201897290724375904448825664560677971957431492011105818556224659031413155287224380179634411130094472872522098372690920629456432505266707570231055589981859708484168713004223922644750887312021766031965802659044059697873727954716904869968017541535259214689002738973789743454338104468095074564699992825281165445203282952094485870191966167508196938382449260871630576849879114815964856409607557823538524960958965954407488335936280709134588866679136058242852314497670809186165111225445261579937818915150449897503502638921047544239732767536595489202836735783748164982286499864587323841393146378016231153479593469807025013953068081348199061691553213718020327239802053553227982762457019536270699958698332336612337038598433797468946466764478394360621287039803049083999155767092830497304368492116429640573026912348070684149094134601556482589355977474934179176982201626210835394342947443295497818235459814425859424033934901151179442739454200041154941240347029873585349699998211935974687605494922774012878784141159120510865643453299603887286166878598228339192295073373921332698247417678772143983365187788527929318946380532415097878581680634850052497462689578808107537650064088131626951983584502793171570210520756685403023298133891088411346685979837453102946489880238670408708007790266804697840574297815321971345624960083897099190604675332612108546405010361678773142115138008503185398368171382865814401664235046541104147647362652267674923896460421891663908278527722300208265784200508515741493542158850410024759001784589290935285836314377903620257269790988211723161381297049262332349609194634229484290349869720998110788652050682408591206956290987548039055859299517668127614171141906774770901984025507137963918325121162711560749709699903444005333214264027443249073928274717240649843753199311775744315440825058380863000689874584381488484728434938512820083400584941252093130877894815626155870587176385587036793167486070388833798649491315908577341032841266809207479373205036776363625875800220722146153755380365328731365421977205551166507796396927449626523303288244932442230450709426321285744706606574180878596990011895327556186115594562471243638789224142848826060167388330158905701587761668939320807953339445391054995034483835141741135246342500492089535028486871604974112211445006360885665217230455489121667918987964167696950324724190155450444085545229600475735168582880968203402372357600418140074603209766487547176649237354826508465603155633732860288919767505670350336201372451438072499866202368683189646715130847686680738884557280564838103619893134350643220202975556740581991434705424004846194325110493219501771739327798045849737767745238407945674114151125549063471117015953099918181748049946051077932786574966382364885347083255771618535106217901157770595808624633260954774121126664437116060665552104774860871448134927089613167578273346564246359678544160370079399159764225178682743855996818285381740134102945562028670265625385976219170341333625258799855288039288017293646198378264376648135548834997970751309657534871670267968216187144042740047917165742855353507757345808415643127835774261907242135779887311806324047862147261661346052579419592132976407701272200369686050193705573415320912941767490696787802636058239607071910200763667796428836470537749311749595715757679537971281124235202174545341646282304546917310555376812479847179762063931474234189717130812874124050207857948214726990085914439926351515110981569620218360716859545108245103063404464272846388572893116773246577115477078453261493688724424440759201557266782649867163249208931687952686598965141031035506461755053788009837160421778447023458770446417380290963053783550436838612722078613057242051343025354494295530625779395788858638554512848453825125767362330666218959936529497754376389902091185889776327591329989305094685333945656621578575663823169623721158340307518750339497869140315579026717031736646907546365128228475545472163835404327032848474918255012162393633124074425126230380531293019058850855175536350560386308432726691961699326860254315479512790906464095068901940615221447058181906066666560493185904434379462523557734821389706998091423331733619418229099735343063563469863939541774471983160177315396719050361063769707929173999834572702458596228785768504978536261855452217527340500500622843268835586024330481901844374591197004907855144890155242365309794560708936592996380430118238875733120006629062253539515021461314389286069084502277558101478325305352647341098812240271455167228501665503284016267612380294932708829017573002892772605827881861613484474710256839748846052680926489574595732307775621479539524301679096951047028043691373552979363414092829374033639220889288272841680777168696589791459586845894544216197605257647231939637401841133734072604138987831115181090001762376971914638656685476986953243532642816839129905733375952889446151370970745112381735596581173681349942235352655527862680821106681717640013937978955924749114242303371801052577952040233784043374959030882821432447549430549667171015232690189295384431082583943625195089056878127262712078125305163345667720523108389096036734895505814126190196225382334320544999362403611005520291097159792488845601944108756001284081884903040728471832186168633522451596750527610977914678091945039048102383394425478830993725498948237211011085820772582620803404794735689880684304182898091304853662426191241579846695123297635846416951255555526887765885307432657294601996257382079955878665698532572044173969258517424619518613696686568323681102938045862937226719474272089004614449416310128506665316526658716171305062048622133226188069887311922118227756129990317755297944432722164131059621565189162329601351393543681372325090787448318713732473601655615698432366861562693406158801651010966623902412589771658133842270260922717758172913934236928522011245398339666623659825180451043266086830049894528802727466931770615691553272830806118101218180653122384123257807127723487096155144726557106852069642139836036588546272114566633296845687653195481193996676312883654432265487633667163591528622075690249303955536518961376843982828174722818060291018462381316178009482137138572724209205775861570145088114524303693377449490311942309896857657818339582600827093337731610641031091548180282568459845574759508798624374929098129230459148958931339316224064215124500643124712946991602373087948821653730336280524236935891195271995930766191167045410816756692895962137338721588192285951633532173205381058429368308327088412805085766263856994794215236629069258243292140796195300682765503061386715705622874613252395616973214425164231203084797130454232156149605957990209275030823049329293110110217204649059594497992092627136814218056760858526380674367417142668492497913106228170487597746680253437690238461861597586957451542474109833184203412776357998960371551043989476582588119166635176701387675547225300653903194305319754493009314837713273515264224703494292816487970076111429172789771382001989292749523066009420335864566012861778292870222463533955511938286412692126719084323817053540354560538568062632902817293019291188102545566557910641900851506598446939589431500662914828047027154704325735882349369571170796077439281933381437723277830561884589011808341798359698681428638246406363805882387592850447024924070374396448525473650115274626742308319973408603526511408472100579656287418973002215666804938403771024182079913941106095720488605769887293757463624856219707434975333590151857767768027341488734889459494295346225073056836275918714023640853665740580971362268404326399867128608458711065488940272638289234787659183747613959622234642943897272287028205024494552740774100704599879653777347980011122028367314035550742199270433736729906852504914153848559847373646717461767943997863394187921869097975065684088755566425693329582261079633633153981039774609341796222787472111565607380310836400825254316517157449352766810418661960940659770301535517261614215223244438095300213925767042030292970205340273262397037909980462176167298557051973088406846456269080548990872879974541598499364386964357371203610278120124065331161814026538011300860668566428194859812179656905737510456829549313056112240801215049310981755484612717308419444323844742480136488812261184144173746669168171966037088413694821615861876427098361693741841186652398163320404584001069649778048728410840479015759295336276985298013884379098090078354955884917889607389503415146659374885479313638110921151958468805232473647488320361777452686164066681902317039135936615512541837306843263806821850735182444748915636318705528268767780308738841517946960287710744267959081038652476293657103028990274460505478596917046253959677670753369110229685750846785625818835542960574796111691494161558053022414855965689002335809803990096605199158140895350064155591120018894845145991159901015868607118246802002149287089454508713608197597068243728909917692288048347429840232411445016038116137937420537871100675020326471094240492035506123009985663919420004013296052239083140567735735874014357960372669322562179626493369888930567098741915426537956373216672094132626061499303164245970323622469613779564987136647852116696149532028068616422754484085123453364792423867920059452951751229436164658791769317894820093211701395061469713886537446981988763130617714204214811603303442788354931227942648143016993110401080488054025494072885404140534994126062504535378741374256065105989344886620925299235923739055788025553471079142114949056931719204853181235110664441044712657036709030282353268590402161989678461964441399964529161276030949826558435501165636946529752177160481374465926106546606563294849299146608204287747748079009498405407034554736922765631823482160180649804696021025835906651613037631071231609874313010292368095227428793483671412221497964344317652831671474287616937048270484966156063826290828231106835584306018153803996420940528492535192735004306226021989800607570633612690856378678880456756790037360196484673624938495165053637755346526821769780051449987003697080916408638668169518646913237241276695797692013752075898009110766507182100515274775938600425658207115143654943242579045417845087364545752970273563560200049351584464463839316422214048926780678513718825390538817994507746764984635859913805616547709765616764418008724458536827939886925656333358619759046728425991713124196697197319952115851344426357093539810113531053409245771179163085771129378437347210211281555954039431579375709259881947488980944564317102463620575477968201076095042063734086473153987336066694173688674173738349319150909261878422072046088621558855258266443030429250362805264733229174956831950398965206104833012005051583063264076084593792467463678792636698403013314818978332086577330772265685674616374461792660375198324527890087231478207466798068707230827503757767746697045837000485770041180797163280438733695932664789050803669893525836027941202808865862261135625126789982576568206251798255839097705931922295064001207597721004516429580176684234125436841356234033356993782273463783157084793444224076741993021174139766362261445314867606219417268808943342658893305455931496947594115552428854057844946670188298154026532581110351821898279841114274649982994943824335741939467677061890708656201489951798757983197197572112899311036050302298688016075514482717335971157027337310587849287288038882272371109861540147517099752565832890272821387300896970848855321376794958640154878685029727140803686795532296203071724058247274541145887879624037351504449362704671041626008228701865573949176594916913760938008048869870135263240320698339721924493032289263419134284318822845333437404568887922701383823333460680379934667930647405875802015608449666241020188223261716626712328275520700510872538662512753128868607779486908501319726340813922908315374024638227429405098334071529659389324906646712336180275231133264754926936767240820313959402709916168587856048633924581280859743632636520622936210570150224711993895078431771945923806117276045290624628669807269846284421340266025036734453033213529173886135096092148418751878562995430958074843154107668094730805540709413158047303005582355639026908564772090814184041182359118431655240739372644373119108305339166287024015503896782984821199525793398124340368306833934697968302881745418974473877995104796986115140560863597278937504407653409731837504141476303618558872385381806190136619342434199907408101486494594218247385542678393088658435512546997859556083010770803450318663658497221997326174654790518420371565976480096007448020006112509067883603543417857200289418376656064061709828148420728669228657934763503121667695733475145134749708515518879977329872865129533865445123231996298851345098317594718901570584867217001457447247484399727670623028242245482669886441989683793077200022453687678022068783210943842975638224918042023743360628576525059347038674685946035983469491330600974826499841323816112127567643009638097226899431156780459807578851688920851086990757767768156235068163258019635007138074658357501717752982149303091960497958874740377553430103449676379411897552321287373071364317160121796964156195817491851887403935422074730974751465967008678489374981938018217762199372902343488599414805099875673748528915474982162450413850921037084149507032940237407945601315534288984630672822051425532371648034469157338656608005758978372440788822876503408294785715402384982054610030687284771683169665751175837873027083357982623046619681504801635695350325374190155843645562876571453626375326528156249565228675887635108550284889677104262589282188342553945398208763056328724680761840590800270624587856402986648909802664517599668533334276137685331722534833101390111848402023998323076697505040480368389591255737068617950678653674468064621710405579001614246714640326673495290677753494915049221558822581573456101901606946707536740287372599927133322310083648595751944200709198405811906884796651585719032991491512574883566454537117412716305511181274904442718621263609719464906002808943885219420454791865341789032525649699867362009490911047593985709840716055806043507289119321780824538464492478786891214291959937073636852414365318843663914456540570289437583644373331752450979579457869439616502855690399436255803680803388968715659525960230455395986488239995137467979075790146973229842022814833025561769969993265285643895582173310998396945725345839586873149669818177160872635968209953424689403060702730168370371348793457904833675513462164085468936402441102800825000090108041590986133460618201116922732542828001308829956198445771201912469297559383103148363045156773942474431869324867477477001931439473263595209698184566210322050220052235556791849832386558697233716355268962708329006720343114954567376862737236062662724761387716078510627263564408915021119944028201154978759691601925409101948737828526415307689723861391358080536476191759038099006887596282670035105928609087127963652878445154209529919080459845900148857011149374464305485509802279932127269121666864522818544921394353707641817695220876590960062005969512617478180900565154618268658274312230856324100239273803150147603640505220292636717627504762856204223908589455738091564940718426314289537222332471480889329805112490921707631315440829883958813486029761868546922144154925813158725230460625376751084051569500607523211459070453914325559652266289598940725393450141662403861506695310537437756231362793881686792418055879729719624734765389574990700504193965420036582201987988646180104780702411310583198896646205913549274998493606660049754258461108060530181818002793620544706826330902475104155993794129761298386307613489943807064410126197403269019807663357632911786075206770260682936355309795928642444258069265535317054099341072296120804688612319281829189128916693680809764964001537220463468052230510063357326990607665819728084087192567456055509887736438983996217842476127749471466071130832423976330221574712257824209392914090521214093784244809449515954053152407462304400329628538552726708156079623045220265804418030790355971609072294735587576570815460348822641729043217047167330086165701140311257453487257517448882792557768365252015260022061330661131866515194269747260020620025319804221093583027506350826221641346301237102549999997412183972876552306567814672436078512739891534259667683038738978005881072289917899776113679571578270704259485855003822590489812337897728624436612120288759654744544029904769295750296284179476880327896502054832757740569649944467460752758014104303745082005270011962110868496463819770400398919144531664535068481296960384779472220323110494398878514943791724937354746525680919757281383359215147232481998778411924991222452974907084107333074342998980114745469373941111181843858977703701876879846231868637817626507152061159813220327673414985458539197923310257378938349743843958652638363432036625808461329080114139514205033359976035541100578775496315726169675053838511544237634313674398533211162037860185539835285307156018666584014679644116186240497832814887567375370472602664203497089429412928424348369175285983979551213714389159524863640385719862528022457783495060142622644388016031715544553373931346356232444299008426321905032915583450891679202093978829300233264879371775876762371952596158501772882240846888095494380120774420068407207016511155957099387466993234401631361744201965436317757752795215130659612593493540170200677466936001863434838512410269212723005849553198870803551638311463699396793015777600409862101544063040916343417400666196618066289450139189668112581072367473513045172982177368926591226218913076224964238523156399036842967796849985959054051819785886806787075188837618865572423043096930201093854294964737878166300080844251620583642344308415604347704160656248976425339335637129507672575034848800370341274167298961700738613738034839062635385878580507987800618844861041791728156569910192243877708873682917809414762693989330125859793203579196616062118550105003696027750414137541794662638799832666060530892562440447486504636084544677875521025115467345144570474036325462691485522992998323738387132940639418963921994164904233897705491240278255165575364145233859031588801729785577619599419275758601993849021264791883563921340673206183015966023533515513748150775826801620543519597419294020249910899533101829142613890255623942818126555094307298997991751052261005340877858186299220740268679756582560820451925364047883615978676747703785063463266703618082482110534829595904546023160913392767468831934663433997962755820846319137967307801889877881480066479093924147558994828498177000712510577062789022878962981545565606183015078370029409277277841551296970899080367980158162843025106771244818023847971974251728719502408128067933564233862397848359061085504357659273630820285382933416453669760120614806082179119021120858651449731125608004039896834004726431975228269646743448600888418322452746330537971076594477590549042885071833142478910036334308295058027630444319138518485962185789310579625843281598465074545731388123800064343057228068143519437069516389630498688181583299743854684692807687206818312822398986972136447825686247768078587361219117585348416768526884628650167854857678063066638478787344760853464715679062485104845604388534372271187955999896158458353420855365778946148286479520254879685387542176858322495738721231476523209272495301535069344116374733218822215108419026940183131207372586046675933955712420298474502775354390244702268929273164473945706250416591753334190629276163566918486083143765461862000645649254346734948454481136426562177062169636146503252584011703226795332156741777049656668340690998862359303965756270316403113965391113787159428395460800677020341472877129534254953169598641130677445919170697730585280136147192869867472758508801788772297559089916752284894451303311597303820457726542113848027522797196608673400682114942008225047931431023794816094855746203420572436977555695738206749483119701188334980365292791638033926143903655586422204725664881848404014335474648819202682189489039660466099194570546874760626944364729797679059552874336545659957305082254859936115219152014781433916465146660853398652837342453924874769944121399498092536017868185853461668569129162789737956054873074558070639046681659324311848954380993008833544331365189539536664573953378796248090350860174330391903094858523707032148981113764256679877225879987973721204902809030331798912698216415507138679525633011515461563081619805525332908542038847044548165851142010609570059872997739646040080600773804526695249159377208707256078459321170561171834524393505797095669317147738223760613259455270811973938761559551895119427345704138569712405940064042807336355041948739687412681807929744080676312262520462650047189548292445742722780890301853870455762258890183407518945824693618558579782986538742720550115714713297191837142780165378999613590313393677606470336762335764068449938492702341997465651495860391244489256194993162027817718736035840288597526150147245827316175628548908607259035181237863449988439089778990196882828261826757953745497718192089235622696900603687074102879012406333463178959950720161558688028996625877970536044025435323878698512931519232282156352457772301506396614655100898772644918503701763338593031911012395473278850505216513542459562447383241676873528479562692167967361802046063103432216087056238403166704446974733205933753411434441446067205193717750966998150652442751698205421327171842697837150704394251882358173474570593343231977885063314333212757562910527930058161805542523080054416676748753009530315702516837265498846903113483608004567886766982098157520598356135340988618586909640441155839938467478391613976147771482808643765049044081396861410190770514503768049040639795071255316360979421277071141313561493555839488110479938380897578108119701601487598789887901760976579810386047727372960941468575733008556338388303500656615343864765257063637797892040048441687776464690900936369103045303313633536341989082623464544209008913813153535537496480720268155959486614379614340520152458603010343032220694578333142315465601851526683115818400924158167939783596945515242621369344891331527743697607976013739638070988705209876647940198367686326376587883574519471763830584586061654994477049222095218869245375031602888513432810544950165323424293693108774234442460011854625846465566429249810760311028471874925590306202415062965715663143355408698748754333644842368769111287343206415327937811638815297210602993786296936266749319883213851486550470210244007813466823193727390488840901338762466308625928802214977480545434906146871674622190942111605515535641275209721376174766557044565275089559604124725886566931452774249392875040200121933955095901254072425636325391617979021119045193967894496057349688545981756368628414330877907499725678335243413787783657087271000714895345185702489187208428314554613224577024518504957055334001605892784387108942466604265755992264367208674116449056573796410778406826287163506496320843154490215244379456967858421248004440281792407156067270255953103248006925375010048712743456891178809525742003590724380675457752598525695199237265463239403416647121703892172027057819786432005178334894566767204087558996336599777018808492313118461744754530522402469224130446168215098049769411100336658445325045748568605889856640843770529067672481535638744060225424284184474477517355218282846770169315423336884493017387096360265747441948816158332180279783287236926134505538906125892338363074973815383915709154837601529608979521608803537717076855975987017407169948681839764011260704657438974120778938524997826782844754681447160657747024524569161498637777030144681395665247941609468426608437129518022660735198612255333634769203547702491770984504239174742734655616074180050509115893974869283778777424553195863235838608158467656183403327252127046247489877280532944337220734555291711039131192523653496728600515696429840842861035005979792591718951814262064028889418292936591842943307313777099453572313741079781412892189867605577575298733472264434883415494151704851606793521293768426457928755061080198555230973032725757992728832170193504287359134825068781284362319535722470217981686003981553534155948688451685959601989037729805224714907587219317487792847943357767623476466440921786203746586273034395605281697018107899114806172639815269724172051024673268240950011418744934124145965544000555101047099611123212824466085830651424476806261362125693699336313218897964866639800831220956147854057784776502183271540901885483658905271635875294810297397562442652208888083784634715922122683216063877398774414055013293237729750412960856196088466239251004514126760696054388959094352642279898583457298390339257219284179699610563673110724511355756030123304473343901824134545143802862867731061504899867105608273080814723931505443397243003685137629590808925151694037545107529087056015907749217682672542876216444907005926487782541977622484179153304003137906863652275354980449634271238695080175091706397301710530231511137444425711490692201649355876787624336415178526847583784728258161871856934961227010432624936557786383942697851747670750725774685479856466117622151716243164860555600099243258807760506654627468940633212849392296209277804961884739285032957979956911835671523912960913145656514870295699541107264126555306080365640301484002228924037650153577892852209638463351917649930420102640230429710740790734052832024430585870574639507869882906257461858958914997350552594098381167614075527668943410091741378376757160822550833811997282775526371328614929155778030733301138557846323399755209060768007949935591903289019697403793463802169487230914498088199022968315793280161640403823291697654266749045045847416427488097298651342019442406030261616172689543265266660276182706871917784894859904832219841988747420651488449399868599271318276053663074158559732647450517247929480732906871064779032125998357983789492883712140121163056720503468036878338396694676796096228193552641405932919314683677643330979782070824651318999281588916453531610639277022353985334344437679829950428552264857408642876355974006413752336264650357483809389441329092331952439007797417812165534835817949722433832441649051450550804074351592813709656496899769279857875495054467747232035321977820386110270805959212274246634462004928389746697305510448095890203753233970429930015282082118250860698748475988491313097114715001594747621053473020015929206705794308511416981038261255469666008598178243525361905446278197578120236785091337138980998268784998556266156112739349350347658786706062796599979914645579500148968514638731215908816899013189515172748067644967345173018711707874463917503082426559946965327368315114223174350242372382488274495153509865559908354308660786175792896759856547718903394782016964236320016858966606774300358430125007419738902756373813474592613249361816756288819407622893336636524272361477927111499658300324171754652256983462059601759410480107040480707541807674517794068689343986712290285678184128198939905935763403150299163959052074087497056435348645732751182710605735286663497957619186764028766168140126723804378727745621524433463452240682120358228494118049996745373373406761668471475778279723796959824624127062624216607027032149474727062897676148252253484649878976491770468542634522126465456635342975368747570250856661018706840751732365793178022316184553044631732172785660625947482968796337553379279420844301328893993619727197262992868624480732143391513044334935578028947569375338506674057870203111310579412729454597313201811023772017668861623385612672234246285027731656271910285990610374526643817919481650272741016229480918968668456889716588314148694744940176595504492294343318120281409124282605787451305660922644353024787282645233501638055150568219608937336970313885044835329269059569161461983130188684306455293187839196571254204980593293477153074164578565760155386326966143907904849408752897393430981358427651419790493093286028112421090179535756784103444965020769266079823676856652410589684224815668544018733055579498727799779270345834881344256821976544146054639609079039995737214600517163095195205522364314200608016784647758395446047683021600871666054805730724817235164439276416994134671697055927766570538418157242050070715986791242757986764504071638723568910098618577276940902097242325332448091787432488883401549926438350689720078538897177773574186594396612960861453081136681027778721131618971861303625312132554131554204201971747302364471349967674788307604900298922591656794007346178989587233877070117223086669251578582004432697225003102021945406096543351880873268246604952374116851258092884650841975711337800007680770210515033321068472520032926388808031078783794358229734958201284993037167714632676186179847278706553523414329116083063996788448986690517779507801135629665924570499181755422828754019684771858944914660997199724674490074215139810738283946313315819708595399029071841207059059037868551831548893758018295348824646210445485777313527357918559920747749260078501258359632154014439938795129631025061455701891499003370365276192408687447906680254151642650401233898125983877072301231958626424432647998780642056397381804736673282620588075218888791025991768049205003664366550985926532376036074712803339750585330996321829540854541221220810807003241684437220286161128907553714148919511878856847809670266017798350276049411887270965990223526654914968459528813497975214470146740993793438397654954499207428487340877250453166567374609910437722777773840149050010812010755945889310553431839229572908721685516334637438392024111793863379871080991724395674450968720617373979040947248028209272659749931164238762267968027118586332372111141849579712188302847160992323610348987142711960046981822124842874687292209508762026634701932451991103831600044433169241412667962949180185209767185970539749741721813644020334680364842157223641350062769371237560400348472427481330906110542198730959560200898595599411384040352878081963894184952544135756121033987684656775343960225387376797880498933855570263531196577964497858040114412232428508355602433597124005257444778039554171363320738639496964536555489892714465900764936040317956236997595658756027081254454382968329823618365092953582251234538390083470744676152163073487551269818399108776571052221152925136666192528912118878429059069078084099846931024444069482557842075418690929182486922042414331788350924897544142304342156235185167849916470476362063495630718282936170291019581484822955321103899590316830725996097337526676412522823245513398199796893367658986214868564848269704298861524143230325214290092110273199881656816256968503179592329656462919730461435850319702134691385715247739786508762959176686292831238211541118490080470273445253227166767074061557433813677785315221790979095930452581507357959287681776831519025254529260072323030393850744502469882942678952318338310460796472051857565736844079742331152692461191510826373311542380912589377933971206015666825946627744553970355216543793988325704601705040195796300712846303791526015527596736433922984066063305798080546745818155954516541088097844210864386624885912886004529843450859356790956182765600729312507971033923703394606212514577049673074456506916972855471117610088329649636807755215344741720717904622555188800515226445419338378681372130580919433665220965047365018614308625624502719095716159458822210479751149115977636249645178772362599546369729904267998316167987947087861820783854561270110830327086889469425550258947520221130587032282799207120982178505962647832124046486072087228840709896069332634349212279677492634592002958179661304758337612552284371890101898095450221450082643759159907644120740752222253013116165486363354493382773452941791821831375747508669635503267024718989872697278779719991298176532792387338680941020078287274329296153819973121566342735951388991752982077976095462174332113315837374012949848732090398697798170193276241892252481423534228151127650481995016775976347692105351152189290023418439643522091902208357167719834354296827230600760371695713893687978351643504348833984757741079207643566602642139940190235095520652011029542380827788388859874195602245185456956841373165391816581582453269621490024507538886191891106700222839059015053938283778855211211182541605557873269744037601184390030345568639047702744183139639946461758738203805515045273474804130505293535989591993912964053228977156259654485808534380577696642998291161444083152118754662554611230191094703580631176011346586169259446961478418544658580575961053006687934138726842501262131765369149257182763288536808657758212818132540988126770431012449149359458748574055178759582840409549494386615546463843833926315037440938934093130254076801971835896103881255265331781570604664201917105853106133877987893472203521736122543761920127477580762670747111818596935353971426886930297774626785933745736028360448811018228345554020859361817618385572329271926794062702654988853137896142534032435475925846540237897076007738444723201300046683997646025941208229008633274985261587675146779491933338021300048702708814053049924034782592569975918374338031606396587772356956088429901233077333126715604767364441819951427253210616191232885487107740897819522067687612731840309832453255044585253878725504621579469117695254989936987355575985814472965169095619650503437595132617763983684748874702245314413687661947550823726190331397926237542778787891193851004044184571763621301430267713465185175581801557959381121353610001448994253027171960494353769616876966713998242268936239963057045385149178529523878223686703703911318078255976987073731400352542237593260448398396781086671291642819823625319916640487500081543970794927803184318993915937715744375283289799484781774032939970566686002994712874134140584067230327450958656212178945753284946450672093989189565517707051511892143163161803867879556936387996126460462423627039386296755044587692522000508424494486553935287018490085212111272634533729500678770026522415177650160069164050149578975783197396928247702546642478601645414949756244784845561956560003441147338865357624275114772660058964616414469004018422093580986795815832654100687797160575656016856935477723601662841366044349002424454415127631741082353172132926154950442955958395302985063348208542996380139839763275079578317608701473066518909009240248625887020427373634090761225810264437220947462604839480604691616207966783334697954837711597697586488282429677932381218557673438324763549800368578444966425241620208136619773368767747763722595027503545370757101009079507287117538180269924311857906311983042081775678625895935174818293086334757901868232019816235825417909345069100773072554612489137865178451939094395108139673832348154041371217980865526281887704263194047865190050779377217522998854252614158670739718162748423491559079540746438485848641893273847947143600961012682348988240404797292927324815077089314047099365553774769548360724560728952039485818147599863658054738356526579132232899395997015339640720193518114214916123895510270992471033182214880333842825956786817112998877980358777987902941345336481705794999926582492715047023861204911646707435564194059652574707238321724288373784356201928815294937863647113342168199486625915899567458841341206536548055208317450555663990480039439903391681441875209076278565710960950695892320535291919742239748272337126770722242049136770144287564053554379339972695628372906886987542474885171158113814927024900738929670912469842820521249221673700875862062659761181218456397386872433549706188170424202770844596144750051284867570253646204523961312741170971211450686726509826558499594436775314208016014562012782078029347906386933107996496963322354339139089796220544857457575577748387981761250776604876580909259253356881754249946330884327776291446841428053136432109088528005580669873665689087728530018117314742986027436179200630606394627874424811568368074875186102703705659880154097231274000461919863949167669143860226514489241229087615579047507392076675154547432687496151642839690061238345705506490592639825895149197193261817030614221962833657638539516831048149347602619190260174347302615961962037975869923004437926608034611868042844861676624974136712650359607063390225302252685406609162702576110338951215010119666810044798872674406866929746293400886952812942413688738990091445375187827164426814628467482249899095716497129779255344149119818485768834126108961849525633877081814487062685339930751863971109207800787538258978130519949907988529027249013674714391596270575622122061171615332760378278436715661273088856710829230946997992000374600027439954108032361424749034845114559380218531441565747769087680478642043973560950769616874351984050610578796113468303761179316890210044956583890785666476434527241569845122045272218423919514696183705370088655279013015434054934734950652851127140953243110840201467059123455976480050715696527356598224692413766950794316374203926393659162361132644293592719807805967595002500583231176597606631710161997323140738316424554155244997165896562629420525760225312353420210949162722871171970713983077379005413535183191643626682953464904183817555369540138943681682483509285826238421979519822316700438685230457611806377070613527669060357459467960889836549973124287867221217187513086280134778509488143652742631461126758416030871420814448224663409435147023493723545876394572931996076862541549012217272350947217257460787058026755117789201869915765590184651597921546332756383024451340919684563244045004966738542049992684527368782132723334935806221488643821906178169123754228997631184383598814111409527739346140905092833731874172133521038848298622626748695118913720340676819985736252442758284460685942041761187717074266146416617821335778746066874583108977847454482138620407708716267101895608377723482066628846418404510300329221613219903251529815811334093456049708595569124970241222205739529885658838862156076682239574484468367575132830866889872837184331775613574177070906703341735400295315858567754049384991588945479884874811260974350357693052947875352906287594570388858342344729959410013275116597981100840594831697388761406369372967034430955536271701843141304499162672013174097176336551740748876761775147585191859996357481729165987516527151263974495376177637856712497738916179504138253567641662021056592950592761368101065325725303881613062977030661434780381096690548872798925965493903000818754749755695454471575520635503031859178876313069597528294539420370686696151010591284755279547462370266766522415821287124174451205050907176298770539104256183019986261806284957553738344206551816235915432896261413579205752772633964557974494428015817339593046649790165793403049583145845406700311966830940299077626734533223546174840234110680500919686418140845418281347435591122515321396057482279330412970477975909946613001969601226158194480619258280808448930835544394255884644544825438196566170322677343664025053305379517893668127735696678692363607655329423033022234996054604972543159612574491525623864000048932734541864399451358769323739037412612787035324144307280124719635622148035889266838128219767740415875121895339892203150698969289338541613958581320433305949768899879811715931530553256415675318264448583172067170509469890907435912378641255812043138775443649702484607315557233207484820149793926252337845027304359552033699353619830627268939295369927833269509518031618449762655231387679392095389055857181920912256259503083042335275950248904447148597391279661190257222661270275263503148588689129654131680887565154247037036277711659010204042577954276348040443997547584614013360857053781975856513424920699556707984942243615647471974692481444915949953852819896451603281837113159949413871554633482471691449772516079269884276891298446180977562132407232720191581090287774527211311921359226686771378271644867556095322046927062058677537108441575857319194117865254856997572617096560584527809810176849699791142283009514514082031784217541294951103369308518603146328545066713022959321855868906435254370707484716464555496645611370404733369731504228861293324942843911824848004339167862141678256861677188847648492007588695822251538084835239215947128146889647603173745666116872170432885436872374840508996010063815442964073341822152660331400749728392048936022953859960389449086904763936281771436323092028342353563842025083400104090611159899537840733521926963473155295182124256068607839242127722364490138769375756124795586728341082378316399105618703407308407609243500410032653865346003037845914545480309099500105956543302036614902251972807149978799046390133611187263954243185070733647883326397112372664755410574205532538034830236748705798695026427845919564840680287178100571533718879928464992332661423367701509816657946585460862021213802354554563371173868778703421535993003528358443201195830154590797602704355077069421149217324401482337433869132413617756973818329788409323369669967808084549019997085873398955004849416408515771156560290813767220017245827570572343446023151048930947149911404238037722828024881003301036050808516642581216361065334241934295741636419338776664580829874033628519344268481585278860937757351256679886766272142635053465280244933646167976619328022283133844323890404055754686711819866620517342723880650230363474517000189124825628994988434772812151074613133056172404498004989859324558231136553544505891853845283322459272777350259574452060923167160504178037104946598300348198469601902566069671227424855661354122374430291326440702809993667384150264876029782867730965833475980071804496324855186963128389605670072207079089670005331341151661721674993412565129891399203470044995773432333688993105281334279017460150200412618714125433670050441897483878781764465831459858070490898284867042290974798544100410245086213416513084778871749693408027560799958580040961336030671542520695319221950718809349421924191486239496767782071990013169371524702697555947556274046708377607282050337018826795501670737962014424067029933877010579365750395647649723567506644988610322188469831660588728510721523753588666626617965313046757422274952157495083919038358435008495041961277358992787339998899933002935525074934981909191124152322258543602079888649602151467637278073921215783798326644239828044349969350570779078672042606279850648705270981199418747217700754565847324670757564857408270875013860417080402019113977587386986622432448684910680083049673621066871333718190430302843630526802657871396067754773575067082717927292450202587945220478107648165308721577996040520571429728829495130390481248387903585783273738179817062377441439190645096947664045424106474918311505501704597465039456581805732806621926769167500594548373425500684772540197100565353518752477618680214916305216483801785210081955731836238908430433056688626642571207748331627971599729608803987799128592724084072240801648959600755054068951140959857353378870857841722591309248992255341911997264748298132740164815210063982609895986884094816809255837029690172918156462272228517926607997374107439960916369825128644343562026107228725250018659915486405873363884558757913865876948066264707464530390980151543213094710712756151416516960887633355244464132413328097502881708282356514940468999313210722438053437570847128582083770696052946968687090772614106641918748452286632798324446472211503533814701194863496957293772481962581854287313805166506663270908987789391105130641746172553398464383076270780147083331938181271600841266481974597612386689684930442436098466016485627507114106118788758357531687323669506645061832636530548377044839508432958240055750349806961915216169309654421373993692713333248542398096295483824209519751182304814201648345804673822297065212448847219006012359422873518954682664954534155054095527857894546832313478228230021230464704959026868710077711641520934652902584776937770547743750036595715304381252580884101234008170717069979813350421993092256471955598031238973501958183362963066151310215702871408327638528975985078186006451011614286931699326270219555275193636256257067142727627655098526307146887976442103959364770071569484162556212322237108284954420230941961297025415041702570098569502624674334084275567059025926362837854027247502124938020299779140102249382508208719027614819771897649572897700303469308669439098550357816826926478542303799161087357168881912495320092661933348107418311360811236583214577811800508408796565092618223863784291869952014654325230104087027482676348911856696019029403579430093571972771588382491370933756895496758201367127107999317980018889633256084930538229995721191179651121893699724431928065714405231101187529238120204012185002254760881385621141515981403742251876827259069624759153166195613160679048986335978994178148920963912699276950759611653746316402076930771900475084497239893890635200558316149686437159297135639667213285612341780997475669164321478265296945499819856355709235793975950542363669107008549130406363487979404966475732506436283195949234677167800413882842118215015824055938919273006077743345183128033092009813115922898735850428685468576592938258126293924097707623854499425915152708589584253625107912468829803232147712477933698685212267855789134666237504865775961309082106975240066981400135217345314333746307131519581804371394198648025541376854112100053211752658990832528012956336915714126028892304427891126749640702775356774058763608108174206966411075124411687435226722650490786751042377990260968782412497550834770529616408197427533712214404569433851545165191292223411677748728137466681826629104808191967887296195154787696097102573291091543683121568726434866276816949535133533396252666825486851771758291601911532773986638656600961831840584596569555582939342516565778237237855121835928058832033524419587225455790529147965080249924704751469081670339824900990669239425645761103349487404397686376346650844913402219908575837589514378934196697442555376840584897808749163742807356806363487897032928143745035479566546545773708362284449352431521613773283613602041264446719611440707914519240012827877992036894201213989153387317053988406463900616890378939253558652721387998050653989288438024155437460762977522098295806428966728930044915838930079017528690051496701220338572103630825924246990836423631481349440572375570095189940098372449881767277967399448216896865949127910899590676121708027840482576438008772930958173754523031458304573911930869926982085096803480461793706961974886858809349327864066763771580548068683389750739603890949625728426695604519747085526119722263669425899354399683911036781655112960575246289481966940609382605223223477296820297997353355752986831627163064820124378009362799519536689979831566405745230642527763274203024076036571523116145265064863786817715032503507801984334328308067108310447103108388385349777641968522715083352931357767157737702765727458635133452686524244520191925723498930947442556753729993995335592508707005195860003438657495361736595103064335588011565221443597438150969813272214005770183536333034306660864947304759091822241038718117002305138552623219765935586364955882176622662517284861279845204927852792819509889558927534560567691962799749215294108653025367049247318778531518839993248982756883768184902190487275252342783946050713013671184911016125495327849539737775305268061238956349410725186038425414808329599776742104325686296593557634807293973466394100086472516883662698035807987909723333691047631807506908687379710884247177057633941287155811767705782376947132413526085712669101035647007283615852919510570006111941155026289391727424642022196899492787608538872602207319112058116872629402592228393355884681558206063272688796621628494191225613235792079610956251107784487066123183737641927819557315213513205135115824806136290196856049171803767370040482661719507080998010730980211087294264187652880894710938536713563001875000839794518409884458049753905375107478885843747979242948682671554303729658270286767390269024349855679470795584773484290600505178034894407120086458318651825657892621105225806551893451452788553365569409094274258367409364957448749426697342933073847799841138132466932232802487506687497105388637490032879824721378419884846402759314228995058629531633032948737908419555512437563228624927301703286481541580626500825481167592899877635477113315034948573194436114858439053149896676868126594758495776275575120032824543425635366646904902477853255492957414211399807673992360107900610464255792677098817151698709800759531362865457522274195751134244274751429947936027482140682524345916498013487924575452504265392298454249202587416191298656842096663856952211436028471901744429957152420506808709932085709785879449226465305747111260469526004931605399238549187212374187383538141176192474981893712347272802954656973917590891557833040742447086273034513486433078417396699963672547272117132470674668289869386216626682854417752847726490199836433680754727163756192904157592311000499780694394417709298701146771926011865993539909825276881747981785570076406678661617608211028321805824751667623006639280852560881752037836907657281021052003339068913204189269815751015162731155618526750078165159288706295548801473658361986549087731943573483930734426836882288420166300639800085159746943047519126481140643858701228877466695561709638391507182232639345877088809775485598327715073972573878292650633593347728319639641942314181668276709482803462960040554246371590054329279739505823020325599110504247206335707087161577080338076490124707928604637004957216605518287753772074853630438095032154663735481504114463320672158472277890141861455969920730942676478122544348721337675743568874004404881513273636335950195271251961708866491230380572079379836758687436169305917829850218024689189678986401174245510376229511257348989981269157372924428931164961111176186292196728000189688772716119918020377228516803368685016172236404911505739055041891085775147683371415249545626794874717447403046434563844628498993156265571722314545766296893899047958813631239071185035138613842200913510955855560312290266122357606732367175370822858708637924964722075116476500794923695045837453407456084080319407307297098050003900226723290298115480389921696870467370775903151892173366453522441912492846569641456878529616733107222805067192838953432206071697683152638025590334466708250905277324744834238057582586224991192281636038655656057897127196765162833136593372278452228495182426100057549174166156185799814997895614666663628110911516864239303237004697078212428755781888192426026541083949185109478527880733929870615435887992584828083089605510809496831269880812353872829223542322902134427950327285265068535041533291016362032681698619882817096943237633137978796651583751441710938309865465705257902396372544072296075020985055237812913922574400270872517021744115745171423935669004174107579412583635058964262016289484583917433149501333772195348059581153235096273360131427078652352025680750884801593334279467213096441740225536772001838460222764099427621017145971581191147540482183493470796389711890481490198192447578117465601981187280131675600511316528425843928259798367605216847410485335509494443767400467873134111036480189550919836833379308839234713571064545634103851096376100460779557448879340295548667346014133824146025286026481352939193987042712960127105536018221353177724446609215122308717999527421178294334484673957088805577488215803631957421761332075235904142085536113235391206905268776536218503788310494466344681640594757761216989913498953327410870403281217834179385290931781540979021525281868466280494054140330155692088801502055339412480963942683861024067685384093258838798456450632891815340234796282863562158466777156841065927845490475015800839945622191429740546070774148219976865903580518269003984269708245750633041263510576522203999523938883987715919333392379264931452447786569543722864236819646729268625900424014528493888028501145169422405706831832633021624279803066587349360732012266444543232403364746106599735396639221803760408419335208114520088531031637469382956544377844946495039220471236480243194122944786376153954678585281444186863530359431080062630389223854495747672463527807621124618621436734042903326779271729970981560684480658527916925670623627853603750760810719129158360369370733605347887667658341657833702748734119879352487507359995521420385679949718499119474604986985462670346149545635055535438165300828046488526148712122319861116420674090874127796028256420221007801905877137343437491686738286774717310381900406721594817428445939094462332129028059804752100603327866393089769464083225998031049514864968080779632966170832371173553255710859370678871081675019622635493331488038929960818490250039340017691132330644678231559936904021825884102679113999460091766901297666243243184613855954582652128266982129148682776503340641503904130171333916325718451660296483884070943937180523126367914563709768251258801487740978173661388115632160714062489987873168464489770287558972773614581829028348060175441342159739325429653759108095790831260272596955483437177831716368110704528326402665584541362924705718862930899022079768662144214976433703185836022323538512306879031022824230006309875437540857994408264089102072599447136398420976376655581956874695725906561120275353823798500277109880015470531468309334394187166921200396103418316298410303193630126477452768497355216558356228942850730218676583234769587871990904422226675660489700726141610042638750564044196941177336145955265628622310858301727814475878857630155115029832430172382687832452069042354280912942844190328225303052055364812500057512672224599757399909861533073378322793620320673161345944136598831242709647880398052407010522076168746760331353496038247988018437319104039928504477058345284376167596731265354710024899344681879310539004753560695281780398103951356799229495916861820397876692533703592406379588559139705892931149370067355879191362360307844524474384094344742793531943800759703942013156093843880883831750440820261665217340129722567862383658708123551291419908768500458448885386774500040405210134624967681860361727477375110412665365423601857140096155763799895844004480640447765488539629366426362124119100834806811541131562405450920231387023191034553966215708203676028160896898124778654886942168243173035164915861665428795053636130884436041979354157655176977173530754771817149981857344591017625181776807300424140346386886516602911615595447942487850774249235214920723261305579771640729258417855445057295297232282532703939216183596786696891493879216104885258413955930438470765280252945724057698881586845791330337658683665669501074612903830249090302050497642303509017648104884448222078072724125599474251111172936700219023610489988665119999773804867784735030193505529696232755613338989925111408482912014958732505019531954911566953604075147874034873243832238786238680220925005005306166457914478950898283548202997327931539155543238785099183616987671812122661644103504270416265705874571648339138313348798858289845467870565978025430167114183819631761422355494444820258083176730554783005502415158815021370701272010601458378195856838272806125909792025235149658497401485197162008300314561243308516424593618347435052729869479460074923759589014197191648671421861186982745659363010758077990933471294865945063690911637705242767848197064410505707165168066024650635010594262176017452222183522842408975959438077199975107717379808291390841536420315895306673760952544221817368868205281633401079701768998128477699132451527863560261241135942277454939127798082774347040261974520609913967715537460194169786863171447791342546626856220832724985466977088637368522922424552881305194724707857047624913257881682416426151606953257292864083224153891815802426676308484246106194328660390145236219129779241532015948366792498973033348240963909658907000986488972487504876465274792783622935542433340625040488108965722695071141952485090920719353057184279294903599723715090716383179927482597792142033303022640881196258695445531336192467791892899823754233352141381858829764912825871404113057385916745958036226952676863074946807272281129578698370617271453051386964920745121305613112436745302814305185026612880004704766871134744212716201076360535222933635607945020554060627267751676504380505519100166755137745614452942743062940747032769214603698964910857570852239976193703673527750295735328672051775023278708163214633720366839713895035954826274421540255568100040925823804193713624458805196133267330305323873775286491323924997188262185735590718521287635654604120668326753487816317387852977272278882710432443426258536338115171882354756167836887849078919277378322422730607476542985724127446877629239404335567494858466667814017935403135543717116850380968276294812642676134731664798780841794338469878217157984650122714290689933313134743167834408452686470160703025208491409096647208915298821968304739805530402784146106645594227161395504544964884170794984944201690614639617830627374129443139342300588428264658152999273406776826535832764065125081676873937243794561429284295692650463567229616381889307572956942774933728932236707060250863990137801401088559516563984140724549904186634004611158084754288144166522254167821426576628195358794681512882707423213150986333440385193347596101690769679348402311061083486124557647067833952091086595617698976351268287404807924413540967662727299616472002569205641533101600438034318337177452683777832332233129486199835659738619569747782248806559426761616886016069716163636709485281230331324026799694880120610509132812809419341349324887536318287115921709541958305462514715346274439607046054118934664723271138439003276918386401621845137037584543240659267847547019667713281694986100426599226429794920370667672647069801474218090759021340997213471345820216881009100720817292650943229151942230066195103290378907810873022091617293226623918777958725920812101313601440381272214213011197261154323219674060337719590687270809168463490267646173399396559769503590906495161802617807850853792774219802674254684882655168993097158530655845292036044882515268089297748896252760833275447167099793284472349844319554920995214071668378681599603079879911108562232084898855582139222019637285653505281390558267499605831682530731060428695679961072693330312172061600617724750312303988972868176995900716041788975137954732962964675051533233702339972937355257981321649921910563661239201932139623962622434450843605883426925349465073150977371218290899677627568616413525511310029886540406338370245111432882610098099186097915999494077435727258184903638857724465046046161286432803638237187626162584292156906270449091724580643939659629687685226292643738410683763092101046604943872112606175080828809348370981669529750933247377665726901200863230497336996133177230761952754148851186990263037300872598796252325020921916609238792145315563039706487063598427418916573555905871507583169781294743626395374982265334872757187035382538307109316289733959350211737449485886444388416756167994805881188011012336838118404611054086450158672900315947942613497482891545428445596627687082291992200792099379871918657060847041793394752577116876512479141019759589932629867006374251988593142251076201155012232574103468617616766029251243851261526144539646789304472829450678950155728466819932068756888336599652159980719755839472035069851348408492468761649902258768919983527346861877261034582413122214493370381084834593237576034097500344943989225167071493202985265659391240922954996524923965183116121712115037613513340203695339156609639727524924035879220614499777525646684606356836088792381012953970442158073375677969916817838253496664958904071262263196108822939841705254893393247601776523412492449369057594206743233107053353887755881072612112230675952689278903075787555264911785995720432593585717090522579617130111226248176763321415486305586943953871653152457468437987823650556203095595380033418057191587695778409421721444132983485181570541236680613545784801743447730114665416453603513467290908522833307755198018495616851736712214769790951666718090889824307441010924277814057428663134448329018781797943477856902180845749623440132275196410587355663079412896842735878400334866882127210990369661039579244317402694965335697812471249171647818260487597120078506011641099252512700598210682433125884290986536093177591685371268055852891542353058075214065465205403655663305239746803115768605516157999220909665927762670721359390379980956226019410812811833822142408483686360765937428272513670133810269109001164106127941693679703338029707822860977935211429406001549776507376472826337052668957391316213353567129161395219100460349927956487640022111231978752227841868709420685832872470899480892708313065404561822561869693555228573882870265726798433798807188958458239773885291362807538525224787729517296243737194078127470144537162472347625469859343042229781820304989031526146530321432424482860049905209170769551216837855940055053864534451123038213805200465164344100463974355808710264310401375918498985079646825111594765966104671826009419783253513278294432281094384502320484024941191916274435002959871270960415372775251936768309901911121669432068558768942783818744694714139327276094572102631222838564526051749601785314267975595775847843625395542983370322724501824784109654215362273780087357710950399477341060931989417603816975384868193413350690115914977650268731049982747204538636330464390719068620583893018945567116307211473720849849425488916384554176059389123094386194008735221627104247210693853577450381141039980403632740939881931183871056362805673921692963855975321017172604877948163518018995285019733191808988274976584579875369605329565093854460300329609045887782531617961150994945938953945457990189765491512255199661726211545906249985648593197234015194351958815525613817856541229534731260256903290790321393152884211937998931040449108854509857019039534481220251483420346758671436575675134537662755464232431964411779035280112842019576027227127819516846479307313560454494925744704982818860174713989388965752909240123618889282221996469046562933735381499471165380919163507795971763685328684831686128978774530944100864740760067139142377137084439192454166906899170221901184770836254075035868336637650913746510435388693460161073202398005840779237394157091987408870705034152563837280232753118706015722082549547275110236728726530385560201825975929758254497466388335830818041834601485448864920361952576631842751115429034282544253354374938396779526792454549251898003650175286654526354304269369385868954550871381676716156556415334384030941141037915859689577063260067522542948370782140006897469302318242365038386203998754584619633870739500455811567908381946601150098427117459545188485501326487402389618927859873781472849978204769356807679552181209083760979367116590623119121953312672463931407946596582647167971230087828193007262561654575074276887493391476166035216702171043640681758251649633267017258866945483343426116390422996338436002130728315706374493357204220888857299383485552450830133246356335201410813890432290480739640404822960132832576670201216310218481342751837254791446127504307913483166202127796782513912873468237007048524185562541751631601726507091429737188839054116171379088871639772776783140885827209300866802141388576919875625452024496787422077497354593487292180885001091840173034768327653902269816087679064667997205250359400316931425323104776656137869187545893756350621731307270219225250884465702790235393112621958619933155376163216789059774099268749432877286745955926116628343903372700863613850312784279150112999505928343872680199484352953054855566803066112498369417988947745761226362797351735401081814081695357447250653300222680947566792165808483970259482253289771995204169568271053635884331451023164382997119545857879279920177765148164326589337105888936201467533153071376800959266147425728132725553059181484164050688139220190349023759386682992624467637639818632463556793770175409300260873932878500780867687452002136793396542942260182473428956480392332346047190713494160672847997621311240548890174767207786091911275327980051662965553684293339943602102053568847993760215864814146983026380748008533975355610796493992416187967431710974022126231611710717060505112126060705638243702492666795468191350579319573487225829229416568506956176805542824070655658417442995224715022508852578276383598428647734096875814202725036494940935947955959792756401119778530528034205870798494252163254789851637497557363112448471505900078440196589509456247230337454757111281011827931201172021934684620833164480191354020237477392931915233710148223875701751961887792188787806313027122742080847058071236227916871108169563195932872502364856377454715755168074138929821754702912281503063234093321526512368998158109930961093437431135149429491367279839997456020613302786243904691136063310869145019309912410870549974720537450244660291463699412553783655328864472488019792624290941020117613061093356669076736274499748586240573074814706083657923825461568670422500742133478952171468205903533474619631991430143674702578113818669988304785354567349668760287011146357039746883821336554547464490021512474839706459373992048229114019449288415778438579717729365025573199886480671903427680648218713476291899682979258221317907531409895444113672854242933436696394522067438842268825680788588027376636354119963441853994664357226401773190032472096614407948051254491029931199506990212805458193698644146735253339733966289162766603487097750606770541542345613840534310180924217015371516305561456748201725274012918686440974143769474032785761320180358241056372325988480782176436231293685354214926440981463648453089830243046085653443609517795154656393881815214714056786870992994171303305945213338459664881491603729086436825410465777788122973737023767849653023748936504530452589340613867602334428383118751884116787646262949173293227026282116221765839549413265912847564909529084632145487589768206182077241449266435750905209733295409137730774492577011818294861293365944081686599965018853110028405157132818694418062189900066967276475915934632839453991529486207767717713395018294675922127305444823096575683611040329451567527939111722225257401484351895153622902589844360551938477549064419913824094944106143542485571064928780963312945805398188492384928449426628900252195335425543466750701346405557359926546184065195067128696034887863705076990999563014518935060260830864578320787651059989591112590401270810486151471903352957425488495905341504757984947019295784308843309599301930155181656725376962636880763046167942011163493187824195600424946824451354759008447677014795793580411034224741139065101807498963873240569022633151962357930337771053215377840370527991955685331892409304669478998819592723163023802101524371945054008520628414076137840433734266884801537533262696557315480561880211974462724097212984875717088197906664411179466494853038972241541312093709248233925827605062507782326048104958646466602973111263065805399634580021733284923391456559127375189539729363367116700875123557531092491589347558267611777247789872373374884733121377036688343989234601967500742338579462139560521557744405484684789065457278938431777949375925795377878042668162805966462882072894085610503261288701827686651728778610264647112887043695705450840232333181080478437562135089350734306426638167920400853318865129129732236592585969247963996874098582727178688837793155016161155096419143670452751551280210078619634221627794324488070565694345570847164662261078588088523046918596621792504141374423802492971182352689220021434810015577710557487407260429836876181561836849432204550029165633325010940861993868120135919535815812610461594002207264040889886963697346428180516187570819602945145567226926252974756220853556564122900561055358125097981246909615459041970432978832830385796542348194729792010363435472604084193577847658074353340351657357156266056553756308685782690899891045732959846889028017599085925350410458413765536876890036604562712839544297883803925641034237288152710674233422089425534848712434304554034021505194809999452638186481886493381676287660139256184036509333943700958406996464898637801824836800183251727109090358365810732189679238779888249169236713771201152055597386714514874820250598000211208699322319343708813948510624201429029263575066189018599862523339822761838546670691337121737623642798529722566842274767623975860966679665521077447977852937926293014339454175917385753344403391382875965594485154720670219448459620112921533491416425742294312831004411247009070095920520032940527223280224562894102998284013038611341916707649930835069206686533483917765439680400466866253197640325710999334870878789377832490734463783218804803262259038921179359906777594264157321419708332508450089048644021122777810631329796776276091906242008740012713822253200300534713609201927749852134085102078636104004586384722143238944181346849631460829661409670938124189211892865183356781102832103907786506437338864964508647480146275085159412899489728902470081218625981737265426978076508952268985038514869369325970721678605556720479457944602708143059406978914851310119953059825694348893496425700445754609785000223906020830890061917918566193061856023573293863142723590905215840264569922483847315767070298012264334561254637454510569462088497443980881391513814348448991461950267712118507995092475541127679079034975425164833908411195603520127143176911349736053854380291963370384636961795374465784400490004688434193205980395915967304836630107225620830996628425684764636527411738356309488580874574397573576870649272815253558797410425635732996416279000973704473009333023174428914620642423111454982079129362533717943390061592542663886787279623624433488497594305412092395801153096523284289818301708205732595221700203112939550964651169703074232133581948137022886850248271147256072582046833593953649577785036839908356628127056366957801034965841860651707063522169570219845858874959268031696559549376065853150738153462075040915245424894841376998341929625874982146599542152098523273709484950178424530058974616680731068476041064285637917477365871736431054167333834790724802335396568615614097132698801925915068424421951494191273456345227116219955563400508317930623522521280272537384637281899374801266139134034434402175767294320843893526850792984872252232261386458237504492152998617386330094076693113281229171865346262222078534320807716208193041852310462602755731654677761540045356567608826899622852797112002197964498680041712208632633711510514312828359452188556303194672550377296689530992116707786820452836064138130874812638059966345159222188267954216162981178051048394416801827214186765065882682267957817187298211724015304520635421963892582908871024080440750156545536381484826845636848002060026631258037834664093093219414135184303069289685064121969560962203766103967854758475462995373726663938386790871337150942055120843995347682914745865310924847707432235972917298295897532477018928356043821503138772489293210987094202405737677026672573599323900900225520588926079710154630562767878813540106326807730422257304540077514425431209008331325897116922433132312318521504390532068983698426866054742215390450703268027051711420941660761177005095414925261048518369573591798534219659739472065132682364663882247464942353777272098417603600870425484840306177429235373967615382375701170443467803427608735081820529650133677755107120862785146263161587594383111788821846607014909782104085784036688969027422226578537263644282749008296977048858467936726756068242981773567131651454864029781704142022258901496405984206519083531121305196681941353675781225893965674641816724897873567077730299884830985400171693349842457639685041280800824336630742045106913895934701721566164434164530939387298736997437056494210448004832676453719060893216425585906115530829822722961966493497233183855827097210144845822263645308075632464578173641817178003197489252114027086113403974896557056093309702102704251028723207494840980325639089404418277798953940996024186971819611760256103060850882879500965251173937749473291569273489836705221072506231538969209196086155216580051596086137139542448519973236924853631568209931397382785587232378148444005529944777136343626231681040810004977174533573795797022539653499322356872634213430520859415111310187060053338116474641420701611869094099719460595904508605721542754539042920065154343806918754519861483217235226034658293216693095701535029657645777594817023514174371885233985936953342459789655341470081780030044491894032939378054356468995984339058531128693905550066094957833467417201509378794147533762801938411963538305977385706319611017093059773254766431916260306922154456275079910753895584418599791142824789589330759729288881756030376255193237454963164101077818625192794066100298485603669192951911896587767924369448905750048124710593883915523784275857085024784791000150413282019998715570780171546122772107035028760996198053291561342994102269181718575724131282558744189637538974681738287607224718921935393807978512187397009417032231415860259600929108852757949866448630770250160667505320525138079305013680668441735051381070299888542134518389207433278515938635033007485576647178555539778898089361682248639959378132930392855755016087504389894362330805652211897694457144866270736574276414521663011092371095605061341947065324836705157523650181289114365315940116575427583601561146812532295699240680400306990116554306583089976472101239365902576811075835114883603547895258925733559910332110324518289517633693526851046751205630096282669820183156661525962649696182409301475050399522087542252541033539528576605385532383564788843510167362836406987010666370511065491050835602578882044895199986657465418456900129223121903239314446908133396227582430957630270541241927766740421110523378850146447970714530614492077763811531375445921138348271878797511770964490440275863293951108914537111590834030928297192665320589075991660108908592529614048918259658235309770471819185695788053864394748051728488422149030875670077946640727793253843611423175173246508266398172135854865955655201359934881166301755806283445219333012686281361617918456751023967576712624045683292262368197827352202939220941123782509118250739166163128868339709961836788539464116738530395168316469383385067003119619650756776374644134805859940732909128889791151584305421740265012035554499697061239160272357811152422209734964702757941298475450034145124658757808539435405265442948137560649856675768673021099281269520203123932266966432036915198165158934406493087449878150145311163082169207836701010974090801952813528611312077388964242984215109269329640084706866626226974799553647313420685280997063850788662069685844321276516218259839387613967248719554305564275033369971462619377102140250081965012966500468657770557308617163390364292470587522928306659589531858515165784544484102868756411018319942856167878570512412200840460722562592976850195083062007123992982973722909514398496251766247619336228443671556729157153942738941713870106306596842702291926415787458525665268583935417925101233714678274071597089356678633326811434721276693006590441261190945919085077391297523691586402418053486520230281398459020012501064237838612942176011287014198286912421531515863974731415954084166492137524006996552112861716109631869807691796410552686546413318469558580148167776194059345349517579729723687841272411153470336053587093164084722231731445481974991946980086694314673643687796313910701426771678756093388008338573465615481755115972208777993391860347612841122296859961963852558189738791392752928260016573702725873314271043112951567284136028480332545506410247693518985348240229408382648580990936828860809957699558325692656660507213018952188960325917338333778078675347754116988187553176764633963223136935822930992408667947296090372351931418389214819107248267144998636566584534059054311897982870220942855981373724460125118740071799071800897431248156352306952525491354069836570808728608614748729899179835682027028031091190106711296121833363009294285069968259799047241850148102955556508822596236326315571562150283038306080113836284130275100874757701541293612009886414714432819591141229947914673325924846067148745130328902968060524650182178495089360493023254872029420564751634994681799870931537316246090555178439493715795847613404382774060841795265814150198480915064157701184240817224194314481058771694505640225596506705597498232395682164728074473834242320921559433479820254009367551379572741738702064630877963904809794584630432321960132565664182898134932664692799664535386623107493611666975593081232544463995804065530332722169089519649963846910059513372188353852983534510157762635914572093379408797463661361005012300059722396042241790540259331947701473526970500548032570973742154432928484292481585420008825053753613008739239744278592351751317781522879369933092865906976311370413681638565366696949470019027904119110122698779195452901798247848916165122190567283917938539677252602506564580906143127935228127816991648594893219391511743297283992106664429844996578511504857357474223868268495174219635377799715929641188853137040164053934736182400830521945931859418939111689362371994877343856138763736606392545266872854577356338533442236085476049631006059724411975922391636786612493984806495248595709813574749760568032026247902674166500741958511425527110152036710511082664455925254692536331313623832877793035594296003545387977280412273807343231377862291223656217361876934315336461355244263083441331439238980393023447251180316636035218849457502055586184545598005602974983751763347659452076613720813108338746337837342581211289516497314627553723510052168310858099960524329134635200331353642428969133764072054466263466052629404463817793677466466735864823512997668724639637319493767218580482625748825563118281171975406374774798197594321457685478555140466872651006385724957767862824139679523699345431274917398901098411292396144765095719711789448875013330435647647661067259318988147190303648593153913861255911378570433494979141421243922606056489529055391515615084480985798977745448704987939779486408811877011558884783548988303860322719479608084847151611915174628820239099326469265207883514932092550873452463042475424150067909898001471063415877522964311607259855189969532667845711461076800807156785557038454098981075545301049099234623519029613406937493888843757624758752879266169833433706101618346985539362671980107238902893603617069653442511182490997288938231445283079042095021060160484428947784486065484279469238740613126003308256094801781193286484578234730354377370103600600178992527462815121009157629910284479401097499362297314567780666713058563246358604085807090426076546404398683661983485834639773929850672249589195144479218825792817409751329731051887660814272198270799102571432585436948260061181679912334585720982904021889476335599290908650259973950773183289470665127290355576027427790229288596013381406199865926636792822294472177067196818088602901909230187362576396525793343468087870382060841299709108653495390261507965116470222793617601799899180271075930854958803886441089777305454689346573643143152006908103493042345258740420391627220300078283797890083927581577286873715945343879772130209076533054949260295789372598984289280787276009080596370234952805357201839543683117113357386135641549649575883827865361544038594270861587297749348921080707134768374591591653537983180456526306631504267126487302747493219636454342231864945109936214794800517830146712683785232598849182013050622804729482896974120915591710794602040300131154392626152179838104963107441553531436305778852616976200045241122012285526076903750934891056702572941992021693992749341632251554400706252150720118454556575532321967281240470340078682205527921151468656821959914958406959202692905868129874023395915996828924332152673082197581113128652163518408970999886675446819228673409257327526768260812054123617743473778086341912875670410799528861643375058641467235402906617204915409176922160725165315303029728596497948334241013245345242982096925478476696823716736713797152198528960364577117609282619721436735319332755166812346794817207123235255612269655668578966948665299896246027348413845342204332789334262294333595146771469152471987027405783188350129077789274393176883919565189509921930501558069746004916769954965014301398253993263394572889553156601128312701558932305711494414178210534533217096267613030225527999725149072454368948926638484686289511674968521984395586997380040045432449429219653027210809685709008859285991560517294916943812267190262508595060000982028006761107266905527101936491967981374832309663180705535008561167778689684475773691150680271974980952363510707349510559089266563048138896361452945140781783028266027425832525569741303534099136819047394060525800716366499116198864040489418300462144454027064836384285193422623053221974972741561003532991523020350651155241876558484666696958989911066393965088237522038255251406403357947567126956799474282203075933773908797039613434094655495360173241231745302058243150879120399973372421775160716898730256795985439237535925507043607389552649688740001446102560630401440184066753405647045776704252427338274434982046170529960918268103999171805612813951907593420499695830724722509207257300084765928593743580095614964446270178962532048018291640173489728928085095942965451735908081656402307689726202939183700624806113279063732537003388023327212968743709855269253959479974871972482596208939139553790394721633808405099817171420618617641324769661882204078097016265370995006469949892519409176653879384331139809861313135098975075381064534104866814456398874508852408445011115516057230416110529524894453915257819593685735275619735805257564715018843727675093832619948509283194919612028474224289003348283888055142020731705854393263478704722410582412592706456514556899905547671305431023552214137179716927015587811490223828277121441480347581229274300647648102718272975885359615665894155854831485032792588170555457422057106521824761040323746239985432573059731739412231447556036300013250729436875853962488600560098654864975046852331769530191350017051322098257240192844420470259113341130169844333906314519437159508022109796495267684710194998971540643412697398374615178684261928415446675283253755613724622720474790651249119395073878223839796499784757743006876589315410504247012614210274194816601103779923834605254131633458531869541155225631003276391760384725556233430443542573598773186956059265750267122399694159450112605130971324392144348447607591608370705788188770641278397817669332587810586989359955357063519193460992042871849104711703992224786990617115880819684989250861954445841135750432097111948346665570091719115845767038607809433930610017300156271706598591061221661854442527966486641617273668226729834843019753647224212088849315592329124354875192076301595663769675326928532759703852291100349820817794833858649820497012544893793872408206192577040712716226051144538084741266687320211918124771673525002942285569989603789148612511383921881578716614732823262909466153069995334847479089459616509635423498830697875316256320615816681976461265676044230878640567714530905778035670330173728696164000125589044459053518073815823358597318073273806230653480628550252132873598113349612278055109374472376233997684986863835253007194106664126252113313899792885815927328390960363595393065863938291458198496341777663237688010453007455358249405344755278058976036952364706027648163670424013951422268530058251338499944820101889819672403151793342528763420058072685507215630859612233286555609689556428179813944887642593450649683457289690506333738497601229322123803905580484418992269467834786283509985745281023584677307943951753634542798723677390101956093536264917395314671503610525050207940553193958747657993640341873470503787543284523763691007895989025010919385264470883578414179438442190236016545212217807263562296432708529711581538633735991289164938118221053166284302643526830205980082637905286836753337080444926896399735186256992859942975892639323136701150279778848787667598358084778693711980440613601955234049704464529541769623923535445680077880047830321531189535672482170095498281499484799549411176584899316379246364777885146346005755124555512369003201496090868417226466781999199482067195636271505291562359808076202904037932995025904474102509962699037664370708924468945002825643011752213007939263044078223713202367921429882030462164441782363217951240876416502522547621233718631113447949997938971595468695694106276599940273127004666742941387567057518213036739845630418538251421624294817079430291903608152434234286320714339804375053536983228374747856903411113397216554973937617093083035239110730319960852124926553250296554313489240904700554833184035026063138243361518256167986981837922514363373096272827825467367124763629829852202867128512364020662940739760768897005318655348803856874915644745633982906825963156621688634126073551361174579459754920602736245879873520797203594160354773134566720354352963374284567493500502878385517082006937881972048487202716344307083409233036500063847258862130713737402834628115614745089196856102255527099394864967302853074864031234364755333333081985645064383341474167217213402222292640240869038535006324779619729329826504917857825247257489464206399930393230914788492120909262915056999676482877385961093476885592073249979866111891720898978383798956273101963003356646248235356772751065323556884673642509811507239016608316489093456632995147897732677111692721782681771739578276728160339969547454528506073720589041070876706236125222663728490595693783796937844954525009954113214146346193084694454262744013401545918503636977768157670745076422006826787566761597075757339956551351105085850748759908539960894334668904080569119932693830801839393588480469423379549666023206137739781782708503650119699519492683481198452976971781075913723708434229686894828076868750538149567502768572835891571966303320062307114861940782804089923727408622365057238405617828030390460841694023462209182635746925982350838234270325794065028700457129268433015667151971539755083302025367573976381145276442984723886174331052455587971004565142652375509437229899507765557819740357922034109872415181671536138108635164786272899279115279157187690367718552636921610975541050584237120410611787712696005180344670512035540814421617502549868918804871097445132468157993898658528532027625542600770509745409757544447478215136837325443791610151490807312464719005341692745315441402319205146713584857000853194124487759967962657565373496579975423345674311744195392000408608392801281479780971124965759500731735344381455686981301586215154611720226178919444776307740634936768247548560024470837619041158830480849581561493328987547699827505388972097481040709253295962075884347229259785122692990574628775081521825812389153431620069521055798964122552506977266662229408754025875434062484091992606868315228761231462472060097112337914902535766106625185065134461502970317333802199984231900159071152322774730787079641345285264341072653226710234108129386801815230590684633042887304454366652018208516531873317183867224317850652848439731100631509810534278161266216564539327367940401182358971133682049664911477274014561208893986542075281895874397426970871480640904297615268778007163625741574320884812130763089775660383401097318882171402723715822034897081755474163321029098501927542680463760902338771031739621182802574934013710972091404698953027337522075482582818232086060568937062871499585879305884330315450480567847019754390804436347357883685097338098653239351968556118423445372216655509575588169560624127903695412285056068532985746352746991263864738116040214136188492074425627243649879873870993535305327165443032645480991900868407032600570993244300742034182098382553467227544404975995716525969670036558263158715569471518656234201454295228056574486883796846319667352486305658613653228234397115828070163808349158387482787882073315193000523867528781674985128752213031806068511246075331663189711712452728773783563086582527218881616199622563219393967697516810862246017277966652488290526382613712393788083442012468925506405393669086471182422060661857748222818076943333154457458543143145070682922679704946599358359695935875628436283563076823233343883508107050958165781588460775884935484145280062689164909232695255221276004813800122765058979248577718092430761601092973709823436650735489073518195972705575332049355893951711351948866906845209668028894169929633232957731456492902418702999803858205024729501307664748137173567058595060154330853625092959745296284247705625414070464831393488764730574069515175338188472369973813667064102619876529721529972380790101876704449414196894784263926267286855651499719249360246689092130333556685104133978842113103577556483835322489889617549495754682828807601611550627606263362987056339040648463587963914172641259698671353286576186552688741239006401666663907501113668685020061000026860964108072590647563198139674516992349925032278952464556672089524273361964464338564636572237139142478520570538661072413375406258837096779895522544740142841214602858847744603107328977574657358936950174201991942142644283859789460137034668065609463884141346664760375035706129460584739304842054452339205024629669966756394204919988866733580988225247444550419180964373116741546787623545557452414709239865133027544668972985370904754759264905061394697737342020846204167344715945364487175706916508293944507542693349621512434854724917931945219447148793157657052822927397594210539651091819858714604358882790699784042470343191181316040481532389126224290668391358220751325022119948737704949030183603068033847114997666568978496223673412662231856976628522940492557283210158029090132673227171449358698149487963999183387041049221417813838716966177981215889985454877708129128448134316826069991717410831675105102585792632597990698461568135322011122353347620902828684587241788151099585062611742910497651652536416322534500798007274115566275630125228312364151551048114046424835858601737299816950872892355803088636002995599258030032963497392017248641408238844505342104363950289672900454213909193791437333858335944479559726661606542885456693118947023018772614052927279308261403555205759436042022587828560088397350667640046955161622459205485790862397681792198522408951721587192821142217516551305514026274639146994385503379593337805376537224887891418911515864872678515694614065788514186516520294676855262838490431035072879410266560028606389528824182801741000187291868297544534991079132405454680971476237009221101697689623701277178911850332388250852029077551517315061813856038242293963803344376052312953567318577819913943512512978341062162180029355995874833974626761264537422469337079133530311354140011817480823423006563519900845144940271239579351115336624328912048847535297494762078377371522707001158152295432556843415955106414741002680516951529437193650829454921599876181130702805780632468523974431520109631313676901474400869220796864001306291781292021566876836204001204031198699021487920754445551545092112524738836730101430523001180510572368837037848147472559971486524209191044362005879177758701841928851169509674368244474518630497035755336043017744750962431180193111434342521247808838741637083343817091253830371305541852329429204767105885044885485188059674308872414639468759145347738765800069854058627928498477204563756204839324962633206400346796777189091218199384245953998424039618047727181440571770006813155050402000598957461594523381247689614671587051273274332720117894952502951364437391494496457687175855489888856709207942717158812810032964709219605378002577581193148563503112027797024919208114626589398463031512970622250312726731888867216242767834036852709553393525874786276804855388075446391783611930291333922432249900574238522373709120475457624920405081117069957934405045598587482320991826471087252710196593856631688805520514966347350451449387215858877933390914910276716992673607728950263362933667692982988900440975654526902562521205874443839072682803467579569145134303268935431524333083928225823823191343035663026593537655918511502367968345697885217719213610390742890180194921477095057520012425487880180728515871076513710859592058575881692859013864700411707408937236738174960369436347895406065798987187294491297826071917400215807130418799099188074454934017263796537057457710667652061632798416971950321092131458213809644124322053100502916733041848885284046276644428760407040351816992491585076206357563245018240821015660900085551966056108760882599345191104215196043266357189861034050981565026704334171689226332493308462891160879658760787297051549127721644242620923400022918948646689878981504023439557771074381651901006612044478898032119114950166097218506234507132755377255859920044606741915364795312010244021034735558368871089680690909641676836199216321138607604165116773668920459713447642122417022060296978368461811796029811722709019724762617956196417262758892785811971165796923418006923129709741619857329422321800114523827579015613004207888627583269732700465062353938702712225940787505002212744397952414935050309923730736233221257245739824101270233038863819522380508127378396840148202960604108191437760322747797432091614495589581611236293758556000981193388573612238348455648576914010117226332166252368248375037032752236122796097361373570772176875353191041004474186245578343202853294961729132289920155820914753191122159129264936842781419198277545634006720415524829005291030828357772649807001533951795482666623986700271222015007215689066446963568800019823017556289403268448734502484410795990404336729592103601156134185688620858912160704953041265768785927582456438443673078941249538723743869925985722236240701777130276367802757819640016367674546168264575320017691029688411470788671323835138484728328304129365922684763649792702074264306039138983814936838704940546587621687793213138929823008534636722442754168177461774404171284834855167607004584210451699875448219554299822237897907649219206861306428872375019128988587908266522366110186294532150124550381301108010646584550523782197381415619178490812634404491724292220638465241076624266354430949232610245641606211579949056003841043991435978141159460361938510445884775303565954342192566361405731756957016962249777992922354386013573828275601574801437607020985907762682458784576768065525621614447094462173049339498583512767532990241215884598074053296245943374515891402416032759555189527309335023202358950668374062186739489389730602925560331909678468000430843249671089250266152346433588540396391147472628718215687352353903357996989296664762006142179336073465055063761856055185853804997964486787875259629848058557368365324541857394816975302105658414557890563225233863672705964435404584923007358195175422092562087578780050203491954981554721028126591434709310151018587133019526767576115464797087377462965897003853696360613241738020005305472892500240285611017780724654172794539210549026538903678110741106074248470721788023285324640487212917664790621418561502065842989391446684105552451845679608873204127783431999268721220706741760595013276046229072843000900023503995290994506211031359311779784228245460141340725142791718647430423012477711680640647857614654785000253621221682083510423716174891358028931140381443259736142732017970184357804867149990900114807925653786410359132284214517560448985463169198001654401218329057348661090737300838348751971863314927937998100767290767957012390385466614561551687292718580920749317457414986135978600912793446572061502843136049706469488120740206163089823483209788264057563722013526691079000388428042083024486997801218246690490784523203125801603347178303481635916203536277278975404059985081050078907515341916934281184756918534583713326151365166564978296684059488548923580768374441999431429689957730083110742600584816759889770159330631926487560337429372019504970990258109165315957019873367964128984696919316823288485820252703150225636915838436006373471310562502024650786113879473157203675638980402444154074140169468466484142636312733220261527598710813427511635470467772969536887437140431830662679018040919370427973008559069719643586912633607790197387844971089930569122873036215888760429650544952606000467428353731620868309991610530201421318863187298198137455082870570786179643917727438658659349092052920518378662748200621175830611132683454575268637931708962470748870811865597962258402405738211475618682569759454742104498165432951247695861697061009048529355403011501765477513909082972980581157002085141927123349767250766655224638668991139715778921443467447236476698447434311022310116712347318535940692508900733238660877149286837940578710489712807001959350898469925181814699433213115291602706407489477371552247812934465203750371810095226898594414038096235938274161900971913185671659389530914716058308011664822706082482714002211690639982056895200500735880546928063345322290318084338750820807998821561765328867069464106503255151719482601676869213417086712291569190526579672072393947963085987353829243852899308953852568332779762356212493793433527047911670691963011624670018353986510425073127889740299046484038791141398376418522152645444531550868943177110279575899188368328788217586235370893243477723596504695896028772586256293435022171771571448922291598191648735942146913755857259170863028449170422755027457633052185443296770505054917040436901766034730471800049027029831556635237288604436964672983064532997798032425274020660179496620658791074526376464434715535432363471242245762736607955766683620897169883964093947291762076805633846330572715030598895229365510685496529350624540653281482596829510544927667222015087047672279003617942707133978058684431542419094683106153962742743331838675417318900034738110632743027051367095538171126600044712497284450023428638915389345108585960289029972511956698208001866514239317526265912595856272575086353661317425256991417378593897202461344522102817942827884632649725940086497474007352580161360556403633052783330253575302109443182508106657710414419271572333782807477418490807163417793483472409952299544957952838281456897984377557782046811058296574476045051944270975270047567717557783120434533520975487055856797882424216202254932233964107778967775796577465045924050991501350553532646713660814039975760937639495125937647344673823439684121214204880642898988179357595657414486856857548213856440984553657047040510364171458502415815510528067514754696307701226584804776953713992255573466133601036890911764209059577231628297431893229794215246728242885034610325408260548274747162371407803626360664559629927219225054328297733172449294956584219004449689360321013591036327544875837552433665675334832937982517414587003929576488594518608252259262341166207653690986614467238768592691952405745048737514624143638176532305484088652457785181217451040219574913605789297253097294565315851840311994281280182160180880634755685231127252463363677258221552678357723159517729437409946127020857008692918431203469989620482593428549120981993108184750141518977957732230969949029150100566297819679480006926586017720618901732003171741288053835553621531542507230764109917307422849180901124968391119656895725488715586933218191107399639764131855522777040881489765238413845170991271634093477495265540463819468777049280427728317056025879596465454222362712487885463741787656213338502383879361883883036204519821551516172102245517049681049196286861500463009535447310156428204060835926192068750194725859504448639422213569104499709821202222260497374774870993237738521401243623041106151086972462383205972734574294087881811635864474476523028446837880687255399774946053060295792449947679266597195485841277482428762055272716284154860693982230850244169209355448631222604033347498899924154599246430645222651608033640278750872180708721427077002241498619311244412669023852451980768735881028856946948953574635704193300025877638429015323845697900927848741017467671017149464731261405215143485844825954709979458778409655997382930315091307180552723422373531471102134072735784043318232362050735060593605047754803386936293356190441756327527481178460528670137648170226566586104415095479057719480197416450234901482862109558147818504511623200094180041665914467474398830498020837181246356808705418316236664474319843144611429256685194969245093139097620573675254371107007860849964670135524331194995813495424405819098761443428425107311602072926917771846180893524596679137448946986936147040078004065106480825240593385883337264723489569531922677015222290300517363867126422797536698522052911637568480334352356431459213560458061312708515034640101212705269386233355201113536878147858422317937013676281194946555416694958067899135770517991887045176727945104667571589292589474009564716754587525476435886954587679233797077588278064477753934442469488527806271459192381684007751236497239265995782183185569505713759163260354802964885248914662829157670638676540990360624765723203419960358412232274309301231238766634125246614952011917409002023625116325804720991546498798174382152397343578871084900506060709507039373876463733625953161460882459136637882067315881607118715461803987438652753347037197093641731521312259658009103140106780508520907932578107772921361905751832249888584502586712742302069386021515011011214017565655726436572779327997431787949594953940978919903589880140873870011870453865110022054310176540165870711853449577017996549127531790562689501218714580326383546603658321809488778976545213401256210124376354083173724626601492818433762951227559649910473978224236719597618473538455742725537378051432215061745696016441178196441501221140228700576634926139467212892472752142779225792431801076945474495519753567289053286778090747951645882954888182280832986971550548116641731604237718635436796245127727521015817923894967237096563393693311348513286905404584214847338782998661500531201325589855342712638195281086125439788199507597269741864015054623017551509505576408317409727646998877538823257084298748350814059456396745642628241482346784724214374680446902900638560914206290651094145767364534678458619040308500893236738445465073248413486889419266383355896338665021568646256105492302698464990209452032043674361722665315946854751169401439502912714244451001827461157751656092127158530646700690495605838888146854212650571406426317124294467644582142277480884807994494939110161947709124765910006427055662882473244471120518175598042495181376760102513385011651005100410958249102394122976963230455301873340701747015026630977979021675358102243955006452861967962633650254585854263114118660338198489401932992028146824101518159806765170576479208322709540102720788450202461915240361279441690028856886929439192618459284887858419111938565263083625942169405810083138399542477745730973926780058121466099033687798306455674519961414354556052610824289693016728545850194835461242589869393314311023936187660916669935685204378337601526430192951446836757062800249581442511820255843847572039584888854219124467585765609956143540347349460312004284209393867169296644464134735656533453352814916946559655902455318418375158508073797605505876426149939274393376128697814374345345117037877647710640708944526165648274821669136661200707937641141593180104138813480501515931709409524485137934200438539935648535398378826192423211525117824766662500631967270743408503633284293840022082530342467765495784264484682950989546771271902798927650383270857550056750402166881741337783604187821119462467262690260002891902132811931733626790647389555502429393218918037158839449050838623545051932443961986663688210502097953326681129622079554816613660871184842294260997307516474376400183330460720212148872569097297290131452148690319754238145788740328387281919835901048564256299406631418019932578242498180338577686033483885436803134481753003180490167160444775782730331027762308189757177677987060748275787695919845951798133315163562451609418220175053480956298059702442082412172629706056431177117572664436917954828220184818167996810349165343798122092300556204747904154308215227456989482173429833092550051008352369370925577279986509130587318120962471148882205410996565360540296121376018443682943423788898454334614549368421490660400791378048443165227802055180279319777141701894548719547864421753170775124527031474398130011218745149562838527941839407317177419616802699235814415475006359556962411274042503759073207011706629795962494390021654047886653061604625096622195289766007393433865402802928950523472691355408603396476785769364368929236972926915338152901566510846736232889479881532943833362916172796545812774156279843581429016636022519517896794733601848457563170219407003375042176054400963038109803698731946757378435573109959389265405661283208164972889654841706730107232111934867665693343901443398562438636165090999458588281521229293548187739466774478458256846285465646903022247735644798511102962515841910237363912119743032656606382160812478931439787693730535167138892819131991887325319647931933353181533243862209264400333638008751360466745512636891980691382526929753601197354615908018832467249151495207456511386137626893260967870645042348813715445772806495497121250892401944027170706624438074268757747458955112866813516275002593559087795968807696956546913248920804728121532828333882497531833900858414391551828362823882968043288014522614553918601627868969934091820980047987055999286210183311655416042328495124383592933735623813511984633371071660207598775419780076459943396410798292345950351474697612674030232615642938811900433367883165665523194093919100071968052889307690666121198262211278138496218521853509024058780054617878540950028818074752273329624074481171292421200256231083863524156665996771196534709977745754449532103837446207891231845260518130966916269670021053037230672338077642549565337357968856037242603821162724168663363699115200384443249679640929311863048092954962125694110220922636871796587545523326188974266979292997282028455183301856703142785371581189282634769156711273779859454003488989440611904990906396392325807980568390511566809095122566022912345932243008116248177069497169190275555190108518561670777072177080916880414618246816228890128788928967347428743619609569469068269029808156166721868339820502787742240743147595365891363028980079646691517766645754011650666199742701891296647609513202900029073558682856130751794453181173428386963318258898474127307499496267458739442804730681016045109958679384982429130004389093883295897611603444329641731957216391485898027119370646269784901115181326458677004799424329687275604845337190108407191361047956485243251537871977193678050590668271232130479475131728255352493117988768530763707774342380930934076543739916798449604831376087827148393849326758644937183233570413022666579214417878367493524081369627504864324764542101570087712352684326159507844925792359954846648700028604345558259354719770547972607229038884210420820159795840379255361063485421525275766833038740796300767907121730703065976288370735703478202329106433453702599701782722496014410804313468885114157609733812051986145221969720623192091063492839191224187356797398207084553520710716260969146899760168084744192345347008236991849119530418415543183833192509927241915011310709199243474930111254957056942842860123479838940882668705801901729732269270377021516022883089889377943409894779521072873132833623971057999179280698111583821335880319596096863456992792317427568350013272790658674007334342487398521183768817557885788423312414728519663864493660954882957213614873908091004765812455843924657846144379925529662039093851357228526802753594024279108103577894124080438620430679470650348125473223745244079641528705162381682352264471999905794800521936776459693284401941216488796402810784270620801729339434293265309501582714229377557299709816355853034140666562475755167539579246408129371905825028957209695042185077642550933963749454027248842988925345448921500016255732758310840594928746795226438027605914994074831376849971506910090457068653757363707398425727407013509195581029392984117423021142158283655959149737472736927612017994105161925542622346445482626609153118780896445016216416382247534406296641062950439338817121724359412034567914513513299752959697326829970434228765777113994935702642693130564495434877539853446227311603555100820889760349555195383444385220023402721225782278845260641582091258158115407793962194678814943509931995110847127175506445252788086236437663637823385857420196157793423812382422948276934128773818992354658392906481655069799648095102569030840707552244074419649506142856412012097043373832864310477501201258498598026112644784872565378739272399287309495586142077724109183152076187736686732655040287098825105522000077869862758042262261999734709064723633228635177666879990213146536012154116271603097277072658140107923139725499897616634224786493677778767758121896539016992526076829237547287063326484398976867077666556211732685248827727283657635613764730748298802355551109497232505692022880508440600333049728656865127191515543230809595066160215432749397863327815471455345196449506098741644513210721894963785774238163363752508888738364905098941489076255765810087827134602864656009785325534432513107007008679754681525048070373711387050086206173108149917700955143469665475834836097864339292271853388982339704862050841639033827702250578642180728822966658477037269307890678042147335848321368672346246467520613241660491879351267626430769036114223412459907390967392984104331536053602493775457166647236313437432280708065949759929948768905975055380740928369655781744285942110776547554127758944992423752060674034003961320847281003559654342434602911334837214572051556388599409519978890203644681647597368241893684030889364163280724737705926660554907942626053670980997419105359450388260555081064650497515569516770592075444289989872043324416470003498418909793034962280396945706022205431819971758690234214813162769378634987815661329077902269949691067386895482745112606848990324338664000030431797273479975770713542470841724490911972318201954875435857282207437165021737037445582537656381908042650553033654067455474199573529281640365928230426348336938036925506555030474072618132141371708941044220114541584523180034245350878957885338410293639649940891146586746125742076738403348884574364191624792587544217505363624480547737428475849200136602504675996459306186795876023501672710415635107390453669507612797847723445743894508963109719941910514958131655045032088041654317055930783884901099676604502379060344143088926414596462000308940734874395507935329391218518008040904593034763126077735553484665311379760294983747425790268671249230023666891694731471602050461884954894376789612515374187975977755333102845978199405253357450571277106556458477919375677946131859537985905295285603401699400800823882231364752618022632864308484159764731259576185632434660103719867649178653364215336995742181150732323198750155174087726781853149184125682534094898538391158870882355027102693369762802121628211257542992149006492271133194348326798231304831981174642215424565101987672542156933970464156130762994531454122799867406772798097044822570491387792301986746848839022552417937584327354161071130261373738507264192686256700667483435828363165795962867471647526856917871790932609342205216412649256993871643747613578355619619134861834907588178969366887882898895586327274896325125748871116024062489577838116603288820553172477290395684676789534084890183749727758955698618847265407248998196961902935014326031333679242715533293413285836776399978517654511007342588760273278547448839532397745748110141565397800284754102962461389158319311268765658667358820233914210667253006709741586243245588583643282179992016703711669973236850315174667017362958254220913495132632496682378656787290762391546838402165078530021769005160079256106860439708833781211652690628331461296347487339300960178877839307438097635412418191663225984041716978399606197164636502849224949874660910187254056083165342044114908504478649983688111692543172593160988944854270446825402142076205764678718931982459005538606233252452696452731218560486011953597175804543181390896987578585215783457774182010593944274158967593816845053934024213271321226727276783918903125189163406837026520427085447555747731865500146960740668815837781887469329076792040716918259797446309410087225755636186292991569399339112105063869602672452937573606971584871428274211847365097482923517350717866947215284720930988467858198717859042004473504071932400159521793381830826349484595754645490301716888243544362418182592736022797327677726088153075528472413494556708724118827766932906365130669432461975389585717955893275140469277141327648278736153991693721782846074200336911976091501762228411942382178584038892584755329506718675402245315027118858028833579366724277132759050018827318769983839859375368606081815493107875267036904972364104903814378453367602365478325160858130605765856563032173312582802558961042716564503070256718919675248283946967575534648836686205355648085968725766526601013940122933391769761929514798019578652503223502197804328026961266948633739740356548033481095356052967541867874671320130392848613112950899638475745834324165615099811966618380240515403081395018980922819332852895917802681233312579796869313875632901662522250668926937976440707777246057696830577968203925338150944212731168316683569568324462837742560846639132772692565231813350673793839324533943495426034284409731019279617794289927185201666334782993605257221626696449917861921106205422699584698654966706469319666219093931371939181566150691724038517657815603679564818219898469625429682541047432772390599663275415415090267230481968407427653387146964655507330234916447395377101649743074326372946566455252322825030039180878249028328741768788414113430029477475126340596353416993008704863400452747533498293022142829635813539348333385399993395001332016413714554973850271863018927448019737366864508987566487180846801270468635814054851305901678309586773953571995946385592691756087407806907565980670964790455238108844353290632366717458728460465097123710616836923528054225484393997829836709985605759057476966573808603769004924184087964864436893629091114656004229880765962426510540950888379440464997115578501157520569885126982539592912519272778604659024740267044952218959924528481866424563100038553852228296426715888627454488537329394388448669919265419564727547985957359964751154085400671931660887039652495356337888715012373620295783223929001424316887540325366986601874295167710232262077143460831046828959892046189985559966216330973912930499333240272074742588277016732425388709062357166010954885130841249983105766466110470508291681164910150207775861639423979269526861293029504820544295180546776896302855880186225395703557656655331886245790061678227963580445097065880294923608742395721698725492737193713256737350930818131256206142665242725098748563258220550821557599078891439785880916118002855471902901862581848521047053948546430697173318259542212023617228113188082573831174682882740786976757746565652879302225954808878974239049051055421181252433863858948386934737988689473954801668536019793975779559644127288518319501714015408927624364078652812684531028165466777325618229190314596288307869514194770034315970874232066559643120429585759114408409724007056989319213644390401471931450175238780226222256923863123519543162956168361096016390072682542778555761677444485008579371745241840241128225686632265813559970511625235646737741899350357455065322865045650646263518377327232243595303096583144948304550330604671723997220305694648367770649027101821144669813729141233659199528005949072679045428063277219969455308267894445332641615650420664004664098050634392269655887174897539459279506057488834118042599563814035498259094585595741977432146960750058273035244301384046209714174476608487189715664569661845871086739555106610639357700023937224669956657716034497137157522039639725357043565987919357725902555152767149294093441347826018540779135058927766187387115244174663497935932986779960916855849418243744937835998458783205162302687355036960407911396148656093732037792073285003781611563186324811615661069932108595012639967809660077330087578038519270224137687537204094627014775188720337352790193324009218900078293527140591630287810528399571193141591973300968439745254709008972752825282902865683108967732173840928882898273828116431918331512051481860884307743023230939611920134151992573237399122727362307052892518113329451150824663259101391083912975759192273928757977131087564672351893113118543486132016744717521762643541912774821074972446408062421577799230398093772434238665333816866816167945899179560259290006525984765006495453626233695717711510166341237393132958246707443792039741843906720339192614357508755264932690723699733679229876536845790149839744990516070447342553095857272503022126960854481040609753626251265955883968947917734626193864715483724715304311498094490865012196182892014039644319588836003983034938234815790511223382859893184261950808864262734554942090513074249429222394724737469722766838409616509171846952801886410862772970561613094104804213478346254749332474018674511498625403167860489225514335292750866691160591759532955969422537080961261719265842365877411032350290944416256994029449830219783064370373532901478805464477756230844339625766912273711305234916572979981391363353141800459724736134250024119199936934200740328954955142567378810741059291803575600322919673301662515907833131491276087425578811892934436313706099731568547102531363002920694570764714858002982017904006104116085230081054971796721336017372613996925988343193188955942099072112855960341968507378463009786305807176367092923592040623660208675423292081916221465245385892256628726997602505385901247155782531770660241278661016002498873483651199587510004812099200608629105697926818703480657264262725664793638647536976311349970582573635671196884887457056721190593251203346076266112918332364494862366914615060967961967284380778468568519580291204827929261876455738708436727478343106127305438050029845200385045611489462597873959204417822884461042956520883885849718441355281997112777154315983079151186593928712699904276015743801406721467641031916984267205208712139777704957539192488972991193863208779005769859402930168604979931107939315641563666953766167608075032124275722380452523457192243792568358603775867398365281823637372867894865438060489835444381316215352539617908117090343402682120049861148721403277699595858912980339928627676361325148953234590194509394244911896644701500932207890509497014049347733161112815515941802424068218256089228103659990505272460073080779822870254325565764599760834418882026716168150290400636301456161892233661989871702575825062096218441576112618762540979093027489762585888390739903793146152981495426592941546457839928897548206519675559409082159355859816708257307897041881735225171343555505572069737689676877878395735161640736332087647762285692546872667035895652584540999779231033272892072828706282208580033140636150509639221515152661816602215634944393554590143673942561263848831670694314282809396478157685359797385736311830200625526220428782366749016042098567973631640915877871374312319492084506369952786660312188016191860064530216293000959348985299534740116443510377413937289066293578704758224232070550799318727152763900778922957574839567892967004718726776210691906479874456460200621386836780354490057338433754808447025771780371275662714060848136571402899270207890844453281554938451937234992096349252027216452717615008439064564218236946743051711985705006747678451450353775012292046759839093109293957535293036028119013836330217305477166280213760135234713331672716525669221243959885709494076128195097188661023222901727984208958404830281449201669775644372493238553238227513679804088548762920619125648431538737081807353627803100736839947042909041394735606187452615162406540180079304422087589626632599876696679098516331172194022857439540772754126620302821103151307240473697514533303927474721271500684085710408968516911779090825765677347488011730516591436692897585415084223617180913490900872386322223388214356806651988282367162226656701613141023766184484212816237651387554674112397152996380144434922998805102579388826343059385828701672875464849139800939454429512600455375773647175860154084619422913348724041214365795712192602726758256099458659585910912972299185005804200387693827731822935876189222848288390341833164149212266990906743223619696479724118758435392530237180847611433026443852276611014770212988194181828247511935657470514297072142524758330712240845366194989559617642625888073844169101056703500875250268820730913796954290235820633371153828975381697078069764685603752855988230390497536856896366824476634378229140642610054302071343705565308143613144497663928492035891718262795215847224173767207655742893197718224441079321172817673740747277999593722519858816586634792199155879756863032356546060094479633944291423160223668982307066062351877509727614001942020835052561429732850233371875816125221074367579254745445391280144739585708895573984023084618704236295090450700901093114152769771642114934681038099858633817934760887721234320273334221670521118700630433490998777573569528504730215328818305339975323354370040651518105968387163333619680015124596536861926759583918341767579471288041426806736572859451924048890596122629126023968007401125373997689820449272950207625663770209140828858403781515131494937464291163010294944374078444124882986281393321919580553927120116780796151621773031280812454243273507769423489750099349550717879248581651971837101373283482018277660229438852040130984870869134818320252002263683014121203660545832676753108733560427164280737061597685472998041584955417716553148101238835436768306341168323258939390841633426558799448176624441609939814273472544889938682776479078695735908637763635778745727173231551424956259574210907894246808167386354905642525666932351185051627804489202192491396267290085361697304332518032644358179078473258561338485136388012862051360206871535687231661534464861220794341290111444435737864151385939478655547782682973870421165971527550389181677155403627607873584894924457089080816566912315331874865325292039589569852059135050543766728184230681641848746806693399377701272614793100122349863979025888297722818437520926029725214819022051564414756722798489490396821436820348408156890795885507112555200122770479551109210340909417276758883624159754099654265223344422602175252922010882766254817974297325296486511146309810678276612313074420739310052534961672106208830054687565058041299491746383417200246444143149509429195429464720676226502965820874568251950462425324920535992475938574231239053585077502991067213377442027065623666712893388918736652262741669572334528324510919698761797629970016056618093655454941987639400438054470846138468881396475133642743341445079132697878754900675157661458698037597129549909284459000621936305783143704588058795595069661053496186581135061002886771538446963731134269222501539158944012769353651884270784597711371806111449053172772642588909876723578003308513838754696604108662462328562085229018796352457590748113304154270117744913543612403425874908701842331673876942666871339895922366106683512844855838514150671211576371948262733109977811042732394490932960174157341403511556390612520077322917325262861145639586972633691741264910556976433236172036658317497559171106346269087633311255700899783942608045588760281044877430661136716118076386618623876665885896277431598244297755947369275981425536755435482586726976884439408370499733967616392346547409686415806010357442622532043193442811914276456402748677379182543784162897038923382130393754767359200157977956942925590247285383990337698804625237951737030568520819926528686620727526901663048522234800024348775762929573277433033653622881775331669322610261172374605077498285605763443278018733470239916690997680239375279179213259227034453675730376167737733574537663906265932750693996354954121891407438575217383821154595791476653431700033447651660057832803515122258375380387471373880599790008570485381134692863638870823442803473885366973601180354622610649873569563664568662483494333465563847833535520107928740653201960453713317847228586475543226803559964545373899764493388967900159290148441285389191798939861720593982223457122144575004985007459195800727255551960094201642391572056835806396676762929904440873486102411448289560486306447676929852086383540885443059480895755088476003178119270254475393355283409836551652453026834513137821448342680787543743969463013762807533075605209909091871458880045239688262850750548005607739478381021348393282669059046901180310698942988380687983740740510064494213109023414812242074601152685594395510203686851960986051051668046227583308565348156946948847925452208902311900949087262928672111808030281644586676363700937545944123248071504118558338226063743645540698502037799427269647242253675658983989896840890169445441777041123880243528564604528101381480860289508036942072581763577795691563463817789051944276445927335533572292124853600375609969466941721896517417668359581829328876428188926026472363188273416284982646346992954260779167914914453084975697470131775045832017032992947433660264124880892681460020612587488734192301886197067057110859916757771332232486436521627934482968833348973661098585097585492909088644709138532916665122848218268688887298491372248812493413177558414730920990196161119182307395389301733733385746199673722671472572952587676916217012341161853496415504285681168889187160256269375354953677212829880443997956698274825081452479977410324929304695198564796058045301733770075334170015577055005056679068464378629411019902791190539338360629284575713066876857085546120047453678640062702846473325622863317817867391110999385426568097125869071933202988545597364668229720369931126530131445759755782749857298668803628522668528175379426845512385503093617315712349201592390957079477543305123146919040692278704502129192626427370578214321794105797665730250382788888557614864865261724768164317465366096833297617130268685652766380660126628835080555799541372896533271605880954577639227906114943664971699646796639730963025576907710147049415719418978293512231360315917701196950029397297321641955028815385330209035140347004986311540466527866755593560442134395807133749379833233644071814836875959183035030341111182384893656390964516547038591069063364158377051926086021224007323060053189185852006530083674403915649335352354253185613268681997885985674962857302281764699151969303016248716162406995823842632188546827207939392733876253879882404744094856137915074883492782249189510833847344778981080500474007759951305427159597574048183622646519802095011428070408501239461015160919228694638281377721711285784792240990565840415438805376959105240379398865584418371821353758213877405065269066187453293168379047302013240814484735368376566549073900138102654812709988226138359829478594241534600449101641741514858950210716482559587691183336612356689436059391513410116760227234837383158672644674582051225364884833767212266174443587179140112229614193066680567168430134016167989368610846319972741610722374806325469219605736887231487603908995167205788423384701024400484817436511730906348650190005253572701674755053974107312615897850401670936763135734332574478868212553725785191164671390529076734181661253387199049944148656679943736398012677809363444493774274271645272045910373926924487208901069966242144325193924581523797915110580042628908266241372743430778824080986590501815601686839150256820613600190047971093591357167493178775709814956878755352846373093636381898692993610276485450135177498928695719837794201515182151068647460679496266220295209154322446658020023203504007227891845165114136203345511434693753306600748550157574394583431412604611887245967518791388575625497435824561406666286803967973594923023184445445817283866955222962942217600881858599429418029896960039781452730507640889921137976104675421458957064699788166163164273208164773417008326710542615733802212390557193511966282117636709126480997827151247957798818514391472727445747668278939099883979533139134336998524662213401551079747831599896310580908357828515358102617432010591345017612376532922787319334928204319866749444308187612656481333673407594794115402268363515395378090855147931335113932769092635326669738944102904439997761331449152068488902086357527856492436087713615546613340376523201171471498310856150293061080789457496964285409048665423727522308421575584656484112450768479838691278882690064143712927798000849383125928632720142985161933973996529103504462110485151954444300649592468596798579948010658815716134804255514679387132313194492334443453645670945660692247077603778736951427411635726986561502406629645699445649208454156700138663917851504619733999811190251201174263229982337040451887753170718010861280042382534619837479070886323726069998429614825110597022079056176074198937362263924366288679710441073752913623827230130394281920135290965086917887149042090551753444497753150433708393389133115649298700992989157960074234186664603023473576304956959924137323961834667718311659127784598468627398975586157249179363396169954699028883098852878879880162590663784023033586581071822904328351589711955530036093149259615874433647764809254629858797909912327272130872488599875708448027878444307092475405987942519453628258528287009681418278787872914016914990540478930717564445415044511434628230871657938362179896237844091803023451178837695510501002878277724411157328738269369745991938525141564627634636462848401357894842708233769131213972291778902878526406058674503306861327847615620054083677183919786082554078288560779171583473977674426311773888473074636159521108209671885771698603586728889396051257043085294992973631119660084281342949593044501450748182974347560103739275239172409444660234332276115836032507872019834902163083108042809652835195868400606197452877297615548283232524957866948418778386768855877714079046257087697015062236225173479909068476025074674177103118459427481113222988824254106030686838776724461189495994218610323916815674050947721769436343186280696602615192237823216379190080019408938645478419004343747539943704810204560169533645984333489673821286315967305642210320544288005214857724585576079755643317640367836106332057883331258885609107429819014554511071509336728326601573643536678257841691495040281540791589640812551847017069775915953109294204311756466557588946171112993297220248536449904091687599351662773462883144954953666754544378776195392830456847497942520189228696416239598908175122855944842471234537520063612185672414999286188349345210684093371524780410505570713234825322912964275883456926695271147186135052056569675082924180453302752014401317289534654454890859368141984238590280533932848032203425095455622761281337892003971039122133343846004398739285381506365178527712805455284167933501072797974001933951811861493498307037653130725233291797080590054771208032538537020362241243421119798542749488220268302323915159202214304219975805126895787266639870490821391976710715685019902433830014744790000665199143628696051408895535622228648858808306121394037053270652806946927183395747674066172100325580040303477773856342903744302705062139823729664899045095669145163157717964166767911800728576935710092056961181063052546538730750503963057725651328180122131737532941689851305976626265003180691637111214310818269411941697705443566616635267071329733441625307831262772822959747421796608497859865937103754851177523272797683900718009305984862627878538896015514955332747132026743601778549042873261825523467776501937301402659318134896835061994290497753672072815290453871909838161622536058725930840596800916118775174294876646010252047061836439711210115549901296230324636506493817340903499056117908874489238689667796441230934345176237946719723824702192626630067733734178610955736746565655277912213368313864549522494914611972047976334701194184833371971825157502690843440313706540940896176675272210909013279707846865947427101615689604714052856410963022217439805976515537022094889864175856898839377933741349994401941255125379803683881618563351076279616000872143350975371822750913446857144443327780108466144488027184923848352396474853147365647435867539706200659117760477339142467051775656195990290451753461075406033697652112511966031127274330747160120388294668094426143732339881637744634592951317401485473731553030507007082538664708262335670081186694004733274997675745809418883179862043978849352517099117344139600197065746616558770067686516542125232227353550472383391707890443516887980612013939832745281584929153739537424400451732698880367069733658863247007518645654032246575834155253339401364266078410190367134141099314017674330596061595167621639285041490013792805792823096831058060551693155103379532536953979539539206683808394783799731292849903639671859371243163487458585167235718263756669309271785953518408381236929186567852471931275460963822320728270531115479948844984244002648596802297037291509584230289670394876301866093591157680169369781169223075333521326204241374493207985067869536971906996279066878963363930417209033145970691174812220686016730651246973893704365731919957265926844243074022590491996427838417261893652300637424914940983465104023122338512416831667859850165988566230996442334800277462115852436042459448475927542088243561332823351587541165238448669709981975769583502528179758582392222709523653964766753102038512639192673859822702989880919095025450884655821601330827179815491829611382174818177784735960494715986860236077203812196296077501026172144138686722370586395998599944996510572746960164451078655338947020656920913507005458502504011799714597147311618175340157671820843380776325319015432312536136159557707417534819184176761124796238722039555777706146209304182816158868686060117328833825040501280755491822661046525874538171006054173919794463215778642336078300492310131958977454978423529857390327317612834845098590236290826586459562954759100755110706520285310114777426520123714872320633839268385582917404808246092603877080510273459090306519688870200811984805905755216118438236189781033049485570711847317101686043048463929288290322594759449815859269848228216326158395047911340792215809359076978209111196635338346195339600669166619668629810613468722206025427385080189147719041736792587417239346183470600308741732687742715557549426940361076767151560721234490565585644284212155989303736291261497049242718466319499737982763568051244052588494780355138806545550840225702726028809755021679762852718872718067262451669912213026973788849222860964117878848584321222244895291727351936200354675330404762090999459453652154642706450122498559472300872685753903190021259267267627340136274791309645171555398230947534635023316200592268671873874664198978389667546655144699251231982552543107517947939698632721329435311321638328830062231342517253665379190057314098753661327751486041707026462907115514168357280716997168106204870126835099038031470081491236131641074026378155291067041481971970027450809983244084721740914154675037031913019298663797651503554666924797854788132550706329013733103596749397020928670685446403668833316310936579017176782801568412259172945180375403329986331144934984859646791103239385529756443372508752525290438878649049192015345168952281384661077970181169127989211065614517223409572605728333927681342392786835623097878853277555480938484719018782504994664479811523656210535003454938139694513428095139919276842631259245874160708587691459060514962832270824188366932630362695095588851700765081276720106260810717016881282020839803134531725595851555026571663169661138054700043423418495875017594490211900002750087777614688145569651157429365190229122646635394390060804439376894734749196133741051512902863548991394995884465593920754134758484007952596460935019056397932087905200971309824153993353684873567420499954986778935782930857379712845221992461928270514241567944009272072444571844057645343530819476477832625767244585338688416189354368514895130256396106492066993491940734044829801837750527161990237653450191353296200210696472196593107624129757085114044635400750723722516076434941087076056318618927691114699508698418310588267241226579719795394126562782345220991724590512497535102391518752216922964127082958415752886306059787165064472953076943911975951684879428925415432542817000588619562815625236971036572158828641808578919253673267346090181436848370264399301190156953055741999704782566856219145297762902152678373113156419148794500636115322959174604882866699952271760625704582491501089776615017589815454669722748712824728096070692139855384370411385593892287524223879998435711150520897079960467940412904017045454627306293072893691575060860672258121068550536572975472420075308359612489776381925035176351934428298315258092273854245874578551787329204670560876079705566627164932863254861859928277725276418998414612538055975935814758541303786559499225393414587915154612593989576528953150478887113420796800718305789997101295482795948327587417392014012785261786663001802088047570914933784830270265810554322769171353570255312193612124751463829614944910265913893220704560317919725715598380492008470419899206686959395978956092238340741788798570241669546967179983997476223701144814680523307759458891512998909400535402919983758454261341736892434011904607733228410221260936398449782805590165595981937981295352173811518118465783669620000778419380269898346719768476295977138595505601085339704606062933007450151934045766691287844064350946882921510454065748918144843268043093217035923517561104403544845990145299316426945858949807331407849716507369550041988497724172585267655520167009668349844736628785339958796073296127321702502596558166758887086861895315140944653533343634659284445188354277982894854359566472310597328863484068231275172426097017765777994760747612965708118880354267518075253918780797904650329337220959898836333086042510798145825268688896208338508630589997379421361138140923571180680016716041740480847240108834306128654102656387764146226599775801363186208703244344832696242787566700841140786016217388710463769866575450451804250949042394521118659771094178419047698120741568690875243502730714245396867172785797569374492264028743503383566862294537577349350450674308007144061846495613247057857827077387883748842220421856196121846992365131281330048003269303397613164897350178007426308188785536864708524176365053918389197507111370950328838212869502265579755406198965976357898533067021668438096450062824194683299476793363746737702834062356832120233901201254814518036461836333900579084861787548224263923391533903858978038501366733823594294337417311692571937080481976600365141535893191622914774635255699600055181689737735087417494680212130555886782604787689314977140895433407793958470561704034662295994177596425888479750193467829195672698451044236118937361291045756976968557025610475780312124987152323911697190689089423641373973784853344435187275653978654651014417356644093938857972789020733379535784372841656677124281513447378908386985726489579523838529812849700728862064941466514784167446804980021935061529598782050354514503730733118683429407064929098077991023591544950895965326541764390587482088692160936512533417846529993320698065237164665763769693239446723185033809186948277595915441623051721337700535909305541480162447741386724183767301237614095416275065141463870712144142967245482189968632668911588053460603078040997871512183011970077110821673451918324624489304116692408109851927890862406265395099724809676256844212143571911470404431383994220129934371542325129996623558868646839190609158193632241113484573777666339615015240154940490527072339056377486233224937233555174049611664708964436289120270630704160415704832047399078895702541992474250566809945118063275859109185471338434913814702499867065654105768952687673036031143399279366720590850495564176237218997099317223062313425277374283472393408061399056002398383844992753785198220358295561812803668612508076339278486331671792547415808398182061211869617747833500056673408134341882834863101687291028581351834306480648211471046506972339588138961488685285300001462860443673501010965017583986422816721524750412747655338304199737220452089534150020465304225145575850138557086075027751823678966689624207549863576422928220543689936287060835770036429925030050888662384160389518766984570235212481002689839157146851724716474405312896365569083535686496616459352882852827928084159307090245789839807777932845108173868559869083282306992086650372292151454278804789433257065829205785891772841978521133435722468034963893997832798064634934506787571527518296911671164400329296114542687068447978651389934191497150018233258745666672787102949785740443313992555459806298644536684341618266514384088151616038838170893994991939648424621738480325438642932778349985069657868335647620155327229676970152586951498844693508229793391605019220754479454318914899680209385337694864371486418749853247690526219255635083999076710968704299688244338616522874413687529713387352854713723886703463424153842900211913245311592974990757170265722644447394685924979251654713153019305938957128118784073464302913333400922630521113270408239361237655358992409574629216960997821102012555591577179980405856918678155439159228085414123371688426356202183437634240260429824666825930341025577146907310162087378332067373855208809493646112198090362142661221457549727231577014036240878808730193809842078078980179813660397747787872869016562221765524486681930086896622489438934467076987606193155526470945544079636819583720945788480586217700629414681315029113501604544106233345051347973783262400241226644043010888598371055648737593625025754450575555157520134462420169489564128946325879810342274140909377892795962781234262950814219313055440695301687834946562310215544561363459424063203888403517521967928629046482362183430718378027258742747472390894589139829289757729070223853399733380333542184042467611110683418390235718607861702330010217562301861742813159082158884456205529370770862583645101766038823834883849806473261733162643129682901542900040055313389028582735880353458621244124103494857252630906752334889644260567868065109638114133922434194806286002825562553737786835744896899323784626372757117826063011811251310790915982410771352849152528775487013291221297436893185871372030183618253921350957520776184452413691436832169436928656349935764422273944928755897309392599821924067572429547848848718347384021050571598232847573094060044331399785183691468664613362378935557499859192017624308183712096889520009398024059444524456255147500113871774652144321378665002417957519050700994771301051282871926875812679720480711272848514776778001225421677384732754444556052656994248254287097032996272024031147482864190197403065919874011155478003919245550288390965751818759252760445819591781162755619256657699684623861610130409514240398754942142797377073283701462852814103616346728347161722815785953677651651445457779405547243845215348123570079435181130209706706719143866330724487807533774435419035644424279223179621289319756255977104815790671267551694304662142117860835900654710520814709706101898247621214039734045973551840047476091113997029548543533440357818471382824764366783268574270102801718550046814313277722501202760321193219092073825493338586970764306470442265338178322062740963894865613195689618548602196342357155738756465526059168244680987641663563336048214990288344172209896319619050310002778360381998946924251808588195196385941435608526518182362971879466368528206617304469680005029289708306362416404105266394062216475397134744504419840739780853878813636122848190357780938255099738804013101916491537432564795050288647797118427376197784806037969839161896460635622596611693225097700058587726658273179044988523333716448118758395343462669204372309241220961672568878162973255668166582775613828707473598209731528582105347451460379414032808665709708066229156343400876628018546668094630301366108995061746471205001648516397696343831268574586301510350910660455044593804059103312780788352111830837543383896889817781299745391552657549533350065220272987304728911002703908545916182288789036594824702152255008421571537654278369293256403945148091564491607054687552447095211430846278526432466266704594140952506243757434745865105052253831054239623192615509318431756649113771894422157598020484703904066992602100857856307246154507303941546773904578320979631024180457240809414050169770461287548659804740340656966407192748814825833370617520608950057623548786455295297902695194812383443767270104458532598362225134587356033924526936052478043949241241637023902468806264280569988729095441538184530280836034394000758530442742070509807518586918219030383056210233836518436557481148310921803903009864257714458049654865391165336420036664409935742407935099484191544053654231385625756826464684785230823286072503779349103586092044554098180457699523559524569076911139147887034424156178020381409516814767002685339650613662212047755493559885789342993439009377067096099145703998845873557294437692064688328828648247745148986867064470246353371337980625710397783311501363451923678846814708105065769405106409985881033563798318220749937010600310728964590777379735087873287489759718213551390742885184264711962215940884305523649600667137126665606430166236304832410556511846057126439310380848020865644064722188428498786220237342444419140622482751267981111005897665781673133724046318951740628173679862629307823120736490784681331314647562243026439544973610336586267628264608244633300161487695155809871287065147581074232273329277702277145380546480127972997957885500403207358689977997100799309990240046841330504477712756896147130837643137223582075832881018777726395039342156761009190695881125919363401873565203987626372427715029584033522947836596318509037368879774317201663485663043762883991810229720892674908688462430929240104918016633768117621403495476658030551617986485390708369067581634030337577810203648363857576968088460969309466347674582419762089813095481610622815178813880817087810616133367996622669963707063948709768336902345281530951428083520252766746276797497803838311236547320236948449813505961344250462689504023752597687464391177007784894320332832656130743503108991531000302469532521829058337698953519840087525627751972863771851273004032297572092313524876329953568650995365104935309667806975959612158590701038365629452202433125686533287931296230862429667886508679305454491057582001076460391761621725002905505793915404107629094977620302451242302678056480769743964346279767926760648142616020030044549822278752450952857513061610444249506926107817633789923367167999239094945754694733476640297537462093794912721529066435247188915127154005950615726865280652658840481927832281042535042904582267294727719034509316092320919366742999062735930113882034999795912359249445055334757436708099266782763784727175531381367893143697330097651481629027111381103777300974414305272462459273831795779306952951242146193689822687927036274707443559282400631195259908085380561853169508789532361467708510459325130242113250286098018929900483461508054959287424440583968397954623473502896628841732164274343316682418498130728784544325218619824870084540418746411070963993133733559344865582348601572426919606745301166369418077588868695721883887809308201095795753239403052037910068339640533292359968022720264452528971147158338545188205566080930189214533289411294101034357100116202900125575686306445912013878011467093733629078265679719620024995971537149894684845428649474324784165919701388364603300156441872245122362662247311837524925458577102326369399303267827130942891634865307969786592353646988777379836106181099825847622515387125892603188945890907266083752018938889493301204083225521318365858703367694245308575218780306256370818549359315726140828779942941666860899358581096966701700972867940473487939413697204353934076405347393449357624701522857773253353920788752282546268752455971912167253707895660705215941205620724790849326249405590473338180181373863291528443208832415687501612684582891353084664157272195743845172963550918887499460893917096262270758415528527194603057159125209596278294962953739089706814182935329497070042819418255849465789837129919012176178181233653185969092817546049268439641389222699515171653743022063047109780954814457533091246728360366963536654527104094184235422608145535526029597001977087375390892568927420217232594631979981580678609548045138670058643951598248215354095062003236100642778299028348294381727607987693320948078381829467031300594861737669415145426281625022050398642517146653742298434720322133630673795138912207635239794892408789938892992402023281232120385299078523322137144230526041858550524802252015396468599738650158711335221833419726698635105136984996655768648852285020671422782981051273537417755993201680562125730894381797390304904729122083803513854313503824085611111634103156157915001655859313025368235266746186831984134426821770188955867832114285514708748198724030334272131971107579582562491140573779325451309754212170856233239192892106426052549073703566239652463237692876803686789585399815444677528166995593945171905305039963803266071858401008941693504550614112481333515794318416455696959916156079741673703732523238675543652121628969967152904635241198774123812827943374609802229282375139300391160005720891513088754705959898915294798767291451710637181867178448854985319050804507087508743834403316692799242045299444284094331501184566806617099191625782192333684712975514353347690973682083001439895922203086844144500606217840204689612322443658108337833272350434290383294920090200174470810262623934665984615133293475935728409534279324844885856553024220906058677518746766420864217332774790617840681191240600320396029286893941601587042068295389052168027178559980189804321507825047778603476092892999745956057043610620899713455030176749968968653722039780865864462930545699187057542222477283985004986501794028266549461642256152797052270258189945390179973001624077105759437539044217099690721759419382880441507361222061557722088440193115610270591033526277597238279493135265450517494955749439084958675343861818186415087404304470931273119262815008750049285552488298035496845557111959842534653916619463686914930601905272892767031295462766116445770842891483627339319999325470764327251445258390429047054520860261285100331715703512513597223408132780450899154831653262832163256247190365222175367441153412037982057618217340838881959945009738099468831160767170789063714591145949107670876656941073666408742721556391564103394998896484178048750529305020542897053581539801006263901503686978569902368680974441403612939758183441022354730852207225825379626695605672560788486143528673442269169529687602030954687627344744538421478999779188069690691422901088201152922205672864264891137564741474066756837937646724629936238289745510983157532684955312480895257808493431860821861981165811761955655321672780981730279241082471079892137881919090991634745480136636401723164039900932577622287373587823269703292605473300778721336363309545836565293781643407027987358689965364070517777896843248817979487739085247422729507405288759937065113100222012870583112852921940375816713371532017458598095519674265774768985702351426732291955912824088099840029818872952886431467719216465788605384027817266430513665071204635984764549984853281251504563437283763383997571903578550737551074416571039541779643648418677602692591550538173358208719204319519682231235686761238598872154778898019696579419633679354841102927818900462755193334968582915626749507760230693783910756478166266547928860039593835061656507350976136578477434328436548787997797275031313262747684616997100114757981600271816040544659061154627014571737726642262961207585652558149010736702852409786285797940452800083864354899427103103705627265539201165815544448809253844640460075028195123923085429754159986927124464626971720621962229774616612687736295945230556605412639217072875137876946469286638031319863964529024722005005683961013018601481992047334763167583560855315652071243107939845068295282292485049507623031896405978363634735965772437211926963021886109257466867956851053231032649371136469996098588250723598008092346031313425796574277282235495472600123843386754879734414418393422643204006470646595242482166321605471017549567198355686200727720341043684812126934593975139310726693972587841451846173067703517826671152384172300841860421471735352122280849923807290954718407716903560034482466063690323870631959032283069916224164313340693507852060388366233270377456132933840280997013141017486524195225241401867281078471695827664902028433961498446762046746322146105822400434331942287646355823624519361438753103807274895152190255700535924198862685035726950198198659242914190942797411368102296848926948144976927342145872937212679329809236461704385137205494548692245843574459016681530588619200215453222461484285380037355990059282470049382804628388085367280506375189286554644225270069802976510663252110089901345307493174633410782286447599202366204936063069609349629405908667023804503208996445214044669384912228432140340122941310222113903475241966080844789104688807750625976680147574546401336655733556014866328772078284588055782250427689271596360232486295304294561500738571004574546903337173126205046432258154836883500397552777404751297014924859901935836507533989715271714212971776961202622523455260137597348740878910874784627413127295162706826158603637188917581049557866722452584002540303067230276946662189484598308602789401662878374843832876775050997537451184374467918155771031804266053903041044257875740038984098086602752155631337134671008971031893931103912386193066234806732112700656341636258115842019491106926012336701784719903713048023499388476835287289617324237550999986358180582049287445521335205856768383130446039112321181161853786762992486234223734309217720714233978095458727255659210429612166489797278346617348964486485320142922983916458381904014186105220180260006007019921172611751345864920675152123955350261921901752265007219227474226999143923812204806399578128658559223807951882033296821950647478622779399214740467069696013354246749791835384418758510739272831413111570365963426027677605213248969887567981626848504427279589609349384784027023410335084565404099719663551849141569082925112857530967012011038256741217838239045708544596898699837958348914930164580131010773835032821447569174547144957661317008060955517499586890421427319841180690429553655021229839641196471749830305233009678647982444423320820133605011695523483886372363410394044328441941918930926382575331441025908421338829780252262538304555815654452925005306728860002168008472960111004287624626322146315589782468698102589058986664947443887708249753452800577445062447081520611357653731341566983772580269660161126233845351489973585504961283680837479942673809002626396371140290048236833166887773057956715645847591035807181688767295793653565498595352093696364881566030907278794449557037255918521786592338630087210887058822709653343174418090140129280845305733672001164719757536156758787150887576331633689919444401592060303497888394612940596498552828891452950263240976434621755397892918553981621660560025397609629164859960499569213780775809941261293632445031794218270852237224573681226605452840339667451465853742863988250701225193548688384591005006236556245689111165340080087991447830492351047625139778550173509046464198342171340633130447575095996038145080334787870636331011918217807778212580514987511804122926240979921677384398513189178079000091249978185494612461517091791591115088718334133533053000082676143420399306413248207993609430785346245620265165971601182323539688720394119645362088509886933100417372254543696701080430137373467601431376641944320367496288095740016007613726242131908689067010908062382283690417190174424719030239664412500241552888003028332767824404379857445464020622234171770130775904586271012342469354853519846220485246300789716674004935460730711240357876761989592589593329632978193242384066024741605115409693535991360660308119727904753373505032601053895083574076176929899813368817439323186393293701152226416659667225588220796968063290545680026018077418032298037971525935139643072935303755890398877871947075760977163096046608715769669910172085667926302476085901622509066600520010539923886917231721251087599177739408445529322430722158883238633856272755648220798770190740752278055640657363680247257698083655358780825170328442054229227343036759949800176488210166726693218650560155046750857572020072354161994618501107568221800978443774859884456510198678047473673348998796646343117501156948984780931809347352489179200957248375176449954271316445883526595185946532283331045809139854867822995109061210562055678894022459113159074308201745405367621030855233652798539023732867437267459622739279992304849455525687791470650710928691742044710074637961905011673442389192966591178876645216389082694449736252107049355752197519324025331333781760232497142721623658090955446326311773855583716058359171115811426058820513184387571140439011405838838300071279818194014793924189664348778842794233811785605644362997827691627751405566555116738179424352150721713514372385881396147661071434436174007074093171768101560510895851139356292162274943333050040672655509566724862644360782400418072173423295605850090886396635343089186644703756284598417971952814598693340235296081665378155176082692545329513046447452908024909611478820088147125719843661170689074181619696755967223452525600213116692867973651741328597901671788473674487685767246975674808402710927656105890799267453048581549490837586913036593034028564768905161960159267842551970743086127292661606272953527649946603454338485026178478887657608006801561627323782465599604287113039725005435886430555178574154679216877753233898725222734845973189615611144320777547822537293147981947836707905388229117568374291265615628721342461972221902310906071561846870791056005975533845218564815677622477524369508865680475747390719655620418212265455488660442967445327381258787275762404062548711526351552394218312460741050825446734628652101035257719118700122546676987664962371837913919311984359760059110451745692271493566634923511083838034499493333512448467394314354750589421083029858139292580609438920216091210215215240587912117334302692035271164135040909891231047700605914151583649018860155549912305248626756223575520998991306843405595134342433732459285060058285394833794287888912172532406258655343738983530176391655674303644238439072381215891761683125552903930454115370880058001182601443840385366302070179003723060691834478599115589821378740899896844394027687359968631911701817998290767140917476651861080849313756742579709972978876569197350371991100829521965047159880346884375969063955596495967643213902229864763940726223318259275112633661650463848214110158430246780742860786677391611133239625434755284096416348524218083418644566499895535081253590598600883211785862891180845723618660335990539464423700988442084608635716227858486305207141282084307535604175695105689055056087742291923656827542478711663812209083042710270442969097905749437032406346610363971391458598598349134675713952284328132728998855815397613524307992102155901450892531196207177936250922761202738192221061147828538842964943969045412629344118330418651958142571394223197988947165436787394284131160649225110189443774454157180535435448151110622960480305771470722416196409289944568335751900371452597439813321586336004359317506571729037374366106705213222653991676187075882366751071520271398485135669812491143775879420330154093420092552652586312591853186584777287118519171724026115008567250375193622537587099755095232250551521696678942770222462344111935149699208212604209094407970682683277391731206391177654381288481671892916287459824249615316999384899959311401079696148749135119886254982022261350910692840705605465356170397133749389534100955975868247244746545962499158681086592685764263704867958202375356695805808075156257564506184835262417352594396929075498949052199395729581215021107564398322074130649972804102327847125906474001682600260501705749603971456009604146442195536642219538667235860284814388164635929609270119031298204605558981653683385209538550289388060278995934893130355872221401454558394296962764267888793846634148203732559337200737432271908785480819314121657932355402370505349283918975194121260213707234652829882206838107896504930209330776223052830988811321424360584435477606118466395710102202390148696130534429286633647294127050727944228174896085274029959365383192995240762385040536180427990839774817002065955321983749730262805196069904635500338443201787032723224959600277422271976164601126229321207981829024211415907493521229037154990931781645733057666580874571043453012099609901630870709385374984010251511919733106939466336644376154036840331324809296874519574593053033252168779795758205391308450543978730639005952332507365116344349746142671805301715683950790500570125075032741499420157628422018801522580121441904723701827126890449555570850945907411914885727134860358488867125550129528550930584511270627984906877762236124683351858924844308299692920768512738281191124834757554195435403007287316112493924573814014558507745433086061600475425187644788262656680742053838402465120668330327626215096264732336017549031020237582899266072667201353785386507261419750526490460269619143940350814784528144641264677369001855782792128397276633707404594383993267367487589258782960919007413395853554122892159495764254173060001325794718898074080767514982773184929708012838346397645902183411698504252408768776266326736368895266665662930314361454790978514820354240575826175594710626621448236475259100732430320076344310140262241273454734826567120035889319936954809329909374124952702593975299504295752332724268123194342365941013951478018327632431954342788612585929281747416848443673095983523885788734177527321810570853213180338190012726785153030847408533931429812864085421010850878066423334870580105980312714484665128459505455716338981911185048425779897784221430687969919888194772228756700181624200146404298214727401014163621463926465358357464811985586007589961096102391997309547112145414908104012319271728663531563630126741082684360631172319014429276145510753418247685274674613450857948816439901440610533625593960613180304873720994458529226291708035187626210783607405472026427630783948471447764775312565727223777878742104657300341704062391357200345413185700293177853057542151428991134425499835500893584265278285799682280783214412145946127368557710962331101750042905709543978800353627329297860122573293401776908531500799823161915515686511339635995474755306174424628358207657098569600540120324998233316769720335721285115517454119694109622839178587001855280811565235321802588059532034747211413415333762708547050483040966577206367763263731474207677880977938071134299846954502989734008810628724880885756351146909692819865017559634293584524521993293563424124465148556498586854848835656780538551327443644338267491537986638359270413559968693297576485878491133517099651895570871166655002014419289904151418057270300209822987211242316107430510984497274892524100307301845872361678241673918256773102613018351019436567437863593874111603162997952897595932540929615097027922599213543540432785166303676711369299044613713934366144301426112820680092416337923856550466425226467436144254661986832540557098472311719126255029962323748635835546899218055553634298721576224582382711588169416043769613965855267923101833361433504056947143676433457172668680431148556336925127498408174420491486975417093806805075180969202624023484765544536395538198343499833878054925841614903923057620616971202181304776380529222188528710074248915125485339929894754704526855621170276194855706002468750029138042244038281171213246059921305305021482262153788395822428284720513656845300940382762689155025797583838303288015673889309792438235949190633893789398532106884904046748770672559861138095307500088718972425970232249550441394532156885176977216982968397430323722982737268252272460902360319537951704256523376451444262211822769919974232442574050201894028491252185173284323296209836278919204804237206445235052891126552526041381799708162969296738393656654624427798267899342175856325719167702366103035694608959598011088541450472346444236310784428035818388359697074772124422933134984170701748815014034262450056904549429669870192942133674318501380233906401429534942118415958905687291098910051956203790017111741962386113004330848174808710255658151732649382522706598191063843866846337248041803519838185111193643224916987883849874339247095530679023903832120284491673790486357234343262354727827009105535189713627715034644608464048678149429543699857519676963378309424863387852174723026066302951208709954177185619421663321955900292569129996104174245829732621639240873937759788927087297060906592787567982465674494288190759927092467338404569831555622261908966494696472569323262547730136864943103915495830183076802186245705000441594399708918014298006438118873462080239528237348663105990326889029344658459256990981463829951488686560591451353358592370653653897756056713348833402420974869150009563771739969906558373944360199223162302443382893021259257353810151222139524449828387719784681026883104245056833558524146803046717326375524150563221768293463937425840097977106123029752949403027050437129605165845044032975858993369734299036224120431260646752265575966659065983465483524773393290301448421280731149144668781121484586345414906052981078258123822323609201056359941430160791192682345958724311810952665688978159615165394279636559898109613928134298689979815124522680993084432555361060125560307306002049689401763722306668689023054881935473896116846748827932886899384954674923744330937888845462875254306310924940962518852184025454876230053288049728131109735415332375983798380464272291115924805467895708545034446174939099996850357824596990334724701245728415041546586624865097577751652683319202546621844901373495733321390203744954981749041271371612003313072091781060324740871734075669540656918383465662017921903638835860128124234996386830952666206573225054864711736517300973148893196582274711336190230861370397846214048560155417105343456196248643263863531951843859050966584479726875737487825448389474496583668681524751383630166335678491226029566679675889448414388776538348362752757751861415914911475943708117626182286348291633739062840220984451759256794864188668890266718254339493798803161987211099395818537317496773391962445107743584544886366570531274827185917164416724419734182495372627399106062538784957409032759278903435584770370965926428723661065760444529511748962983909369072338451795190212545809825614805204952205947617892291609874231017387284763676202950819092182544378528157537032148701517273583265982302592246903751467695451395914956438782945007888758550185904392139793361055265033951717634185645761048082271624705481118057371246253578842421205070862213299624588847694542806326587356132338143276462107908860756484449753104123954590674914025650218982547677386443704876481169730087880739517502493796088980744041704407130668133113774217588643608937119556154088148738252634524188044623520395952070464340097671692896507099739495956727331121654817228867590678536982869012759247733999517572258293870719666429754775820056133595616004958517539878575161097214590241730289005077973464394544299696503756852487458731454201756246314255352785051203912567760782200065018936340065135698087555672867463867181418720396430319788281724454798135454820161462768696380170022860057158008704042763450228530831309913031762178052679692057810551749451830642779294664270712231054030444550795393175354384277014648968302474763056341511668574152362309170976279912406989335673735897180707803531078015792797215933729876572301355719251873408247784760815407393029082431593557180314799618556961690308171042670469583667293762642250413707972625006571978322637552703579155311787581520467834442122844972934991005986670926899838795546579649260885745768647542405505359212695957187955790243831792923915091163833692760069501879697126568619780004264220486648917268366357880874223917441865232039703553747409305629132353772408666559249120062034951237062253113091432971038390213316463283665522721965407686972620333005234612400954702679403072490282473041703530596631167579776580230840806110642160147801140835982503278223764900285467544319997092887096533333854901686668956824323189635659820868451955159118654091566103772949256958996664099096229523162172269254589122116226785336908332865610149599695821664906485243093909242097322895460234860213119296912400624528234521948249209744920478028087478464818819657493681032884178437131282066255866582039533320338381290242805500260962070769479102445232211578492265454522485665025212147261814969108071615801573649484657614755780659701627565718739124691957091502013630639755650541703328226693992143790062462662339189199535561889903053390698961491146251905527608806523139467891572141033338925671833979184944095995687987858486369745246956024413768694441682978967968679704986884812524713968555804516612462839424569601989877372005280736947781153193631004232687400888698473096028374602215094465403968123970788007502224966956131460964865215630393753174845889554444899343324464432981736295574390999597996507870113854679804676142537704177227925468165618782365804023861303016389576441317631929862630513791558984435514156277549857400928223066885479441368912753093930704560541611963471158305674779550175827090333855649573891533398386632178593322812653706576780733444122554797729430972401936469017442543384411659389185467334912660228254658796433607302705896615206636308417422669693487908424660575982759753262263502023152255867604480362524823879494071515800017059589087789869509986792412292227690890779838247077089827542902766447069692350581646230677264751369204801175747098808667870482692107312471618758021097135855073369096284075072473460633191898964553352823363669027117397879100031599811185835724905831703110179276661519704089619249739242039503708501056915829940385500821367989261195537808958374604110052206875941841348778868310603719243666398206218267932766876958189456614802659722980100394730638750688842054686366119381771043489360393730072549832184705969015149050747822365883773504987959158407155477377860119284771307604345893284551242458924937489331236152144401005269137735976571487757292312692664926178903642082514727042987042884131615417786182910131033112386898271390251376023764203692253140700471315274637219667888469390276213424936221720639750430943312646792516930033445269272142185994977055817883434783656895713188683768373265044729159277076789504130743672730532434748900218066113717680455885897188694182242284582836243885708625454855599985140629723192787814122263071102790539224515812348767435718785954529561197274868263929940330818740157512039094705535736850393778485990192143714242417685915615746761312851935531404429220184737715936005627715950908908750016506650867994126747198020963820346217695930733765539035641303749619609754681463409050814331134750368918741260272865537893224510376410864243016310401861008110118876933548645124565221046385182355258854315621506983879962224012131489852720597196474226041496270987670330241307132074011728338575114222585223990328021520652103469490075552134387388675419563419797876472442119074607948859586291468716601830870423336844370684544444593542418680800382005955695134362838409988832485642821931927796345668833556038932040069990123035515672311724234349744235338738204942591352667530659781366336707210669169030770806581967086753101579506324545527025959272849540906437536943246440444146090170494981075560552640990270202265770244944697588154364020962094686104289749277167650780211631775808083062865502757905345837501993534974719055390230320487205609366785923428688165806947395833959189157137686944415114538047775462281726789069548920080126211890602314319313956264815130941060784334685754772799007905641015217139189171772279408250580836812635683276096565016051052056638942836288628173577785087588725514532824427006844025876590856837868548356974779209875335924738867081998973689307068520212956238738994796318601453927458903269631835649871316358411846992585401323403243206267877538752983206463732786709177272094219076727810423574826528466664909423521333778899805124063319993984268216108452261244839378586474413163635655756879468421728356430081672444100942220257980121928391072832458729324931109299358495998792858343386523006775483105212993836895334385142931881569103914295378573630506461626243046360551228771351484684834881735320443794849541630858644795346883298177742183823679420799884698491156379325420909618165756837688354152882114898053780068242756787997270820163366948720571409140055748381171975585536531827147191599105613319736371362034316585545697311076589849505973480210931819869094499972090275727106240128225896751391622912430600475573858216232390807843810222726739500726979511464097223748985904580057972098918999178273893807367705746539848063071267866376305806912726234510493104625862709027325329117197220768731987664177497050028059201912242703115537045703465429592586136357185333067351607712430945006837793161998467113074592923099396068266205923707254327645154242002365865300941602192004134655545590184870905500044116481845594395213781888048264630997691797699225073869939710604158640689790627834477765324235902883500867411633843302325982557886707908766234564891454216852138969856833672683261571972304943471683050845369137742687508512323502997812269930472200792014559350932901009486637726921009302568575866624084735063064305613447056118582375937862844562169848429160525882451861946830467495208116157714770870261731521315650214430752219307146828516016080017841307185698623054665729570126311531722760643089287734246572514965210760380796712412028316647056044766763725262847708716968670765775755609413968874553103236831881216697141267472746606557972715016133091501804011283850907837629339529118849957534898724085160714430609623928259386730785582052418421526798308844841193624528718601751033762876901617298901544727656324532624263754050419548146682656156771555699125489022992428218990583737835365591426135033720857209679943993441454051653376432469562865814692233712724337494447082266460301742464479846257331686218001455167450812521527852764738980412537379870447152119840070410263929694037816928538181715773846954202247018268888191596110883897389285907212560649881340716300687779585893003333604820002548635316158702795264866234446016200695238306248579755376883861458589595752676855471615720593894699240292944248589848962249662362906845092561771918110230562635951536014772548161022118759201613515083411861783461183776577888516189225755874953593703475551369177807736183137590513734842556932983026981083441714106234945929686156458017655084003232784599709561234909641559987009375347917984837054664232981620244517335629954681924514817891013971541630844504869094025869492216397317582951638398974321498059605377961620304807201614742710319640634979494709996390335171865658303202381120612673642977558123942651868684865296527005134100106438195312757122094516857710080868012503524512331580055665803195035427026482133084253837802782634575210624870001369181037610702950867273415704204167328377992070240238492318350852750360172933303532132536802043085761057739327138094740420882646899547110173092607373564626833430300549900557164861045189058069958030229198408646691689214996038497783375439760456249588078833442925575729013580519109780743960224116289111024538592268950408290323148549886870658281275800419256419037785022744827393391808290311637334627968148256054287569247631780298158886284922272221838939253209330692484997758945404993313773912231068342281141335307027851179170440560065395939519242081643215788195711470406905949555957155617788756419909984305705066010289943543124837868495852207460531364947338014890284010094668066694862372867382407266353187535085432405901929941365930794512307907662369346529407582788012768578053434660690357501167917275851660390829574860629601936499618887657100453627253557900961846426465206806966827215549093765681169997649350545503540951026441613929782044555185068498752928488225479694884481139381344312810352645208162432308880976022915709164320115810160151546437372273280173913357753515431951385930666289513948189564510909055363961644138008995953077272782937899492535561817953460645921237205171545116007025876768060210355518545953197477149099757201616966026503830142298549744577851067715074952060583151468718128829682137926464866241717747160442205239804992847852878334673803986763555239834189185540316038295710637340478368055407945378758012217011747582878826788413414504875963224611109933722980345159228662648242100070258383705848187971195922275037860962229086071108052592665613382279116643052742610478595081309879796549835530087055006113946519087458768970572792364384662090486203979941271113794876762381825479070710313332325509983091322714602692611102461458183640567592732235694404246856092292288716139739788230107739289995378430671303636081014109347673982796151856258926811441874609260506915199028557309232452512383093884294061756359375310852668428447550936927922294086872662976183402613243667680749656465170688776158655403597701443770928578394342918537587271008418919482008261718053750627743860890648884685166231178645441192311780256794920129794533927926721585538371187426983173564469794621267337090164970582101016619831964698590823043381120432528778398923942167219174643556923469156198957002546633469896600003016620822112868194742902442220773351291055032361363018690520233999310014285750297513358974702966621954492878292529973087523048534037550777684349280698036346607854925912318973282834467187604524886396779163184803080244464204712827500569191598497066508102564049987750873234030708718566078894883299480251318837300055717327093336793403681021318940531618772292239985399315507796230507765625518978394045586630248353517891412388707183298877333005865895659612329827774236700570566204383038344141314924892230509618114452425621222523063095946342295525626541636543347556842442101654299014363249378832088187994761018162820235438300833556063628627797560890263840787045516401179357062278662550870835130540291230195777116653206138102338898832976263586470136245928081656077155105214015895390472970781043531429349397174659774266843551434419651285914445463214387208502782995705016176407985254307636420422809245286123402629063255793782842470907239382018314263568742507375723556369936211214275268883083699502810668533646623687078300947876206311489828064447991347723977404632110150874277205925386954959276952098991416405854502226991375512837945413335831832493325563626263194711583817049343230862301949245071969299437367345617325761007259003700692176342910640596264758103639905027317128509897378356053232167704880230089652352383071932354388549280086357529718592868013089255450341177187080497655718098341781999494849320548117041853216941028528389085480436032399115093715997910702492017038356495485150657671883635128718235298557662311374542397132712969912545921130477257838863693949454638635970505805886532229874157715573152098897780272729788418960404104626136697579444854002907024625687555459168584537082517815933101476707669240677004423301839671064783909958115025217383578288572663235731747333359182668145681788272471102865540069486971372741654134329938219959893561292973279377570188428598891152257508065472367040032586902581578060289378752575255107987582257491802055703468134829186146048583584178180838523978885195770553219592056739840718257513088399640183279933893470792442248433471047637761109299956375852547564589495768513588908425666638597653854365671834550855855851493310702843243120485952100150013063167677141500047582508636488402188430863743408441647817040548534584842624644770025433289074046859244478342866785863097027937737387622500650533962749381725253142346600120844507854246658208232378839919665369436209076330033056305708665457016385943667615940720241632025919827625999545845633331026167053817293800273781801647668333121261145396083244247212857163662863070460091682166783156376359982213247951077952328276681562834785225606031159766695100415130344905430424166469473094864264408948046733490626258471474626293336593740131514736889987915841785686569511937432851271928045586970538439611053035156657383348593045541930179608350971586462177687926862829924113586011986765545927390018730739252941467725589092082146351898628839479910867588545115656323002649198210356023520402231229253730769461088681171617310094351131347596041750901396189265791108489671611253430777857898145473220473953676938431855103137374705980072719919473771440534257793890978695874682321493299747147274028054372549863755419771116114748624429892845766781529066597588363654805982861532939066192232916533350322370152839351025194054633256430279603512498194896669950876854553657311367087244609845518209272477672023738055011494330677676325452579971049188226110502134402501293174666892173601360787600182845357017856853023561761682077430161667756530780389316309155746275315748626019544603304166975120200003007998308284307337961353848145470828072963558081469866902326359140855413307160969411182238036161487218871389944651173774388065863758968525799515350541919510277277757788997210681294916585776081889840687608355109786616796456157055286279596922524516973953625444429367665594565463543796916064360916282771220780767119689646251244782980618375442202191769221493325917362353110883680529786175635317850708921218699943845723897785377392547310458584101771418159062000933426316421234688151025505915781538022229452770600091024222456788529061842614190273280990296797570904994569700001478882849301525234366434215149496874032860850575117440679036826767597986106947784516444074031470404153472249038886995820887029429962198682068329861849247147893356631617127350229797860472529881304898863499231037487076185486190064634413694692775456331276292188851029395930498965968776436842545799622624271501083122659556882853584881023519723932780078358869829439263965365085818250355315399013728024056378979964089224213108020854142978485476295922850801227421327713267030635135533785861582235514665165440480014972625286558857285536452379560761984058329462935614185534363691278532694538250599864026174710771944320942558243480330239222820612738619833114311209012881452201443570666282920282560941342941650793567741834174001179436027058535398787797240524676479224188676365765141629440966694366094370052017402442309688976940542709512793404163196211242301355237871047177224902577836140051644586947122496628517799825734978068004088266370078090756911782060019935336180286502824975833458350714414024430159875315125504908533681865807812192066476898750640712980372736779845696691086598910489457357461146218911491236112132130029104042926817855895370644502576022405756290038552129557149141429240968415562137566222881525521372841984260320273686197613579231740625049026203194054964437644689486075010384173731493708351969873311087054139875595402248806966678994939961733121016841183018234384455639320872461533176768600073267539385395495122210399703556305136115024890107318333249949136030553860313445167756234380913839414120947974501266382972547366050270670783614955703875830251227519378716878737383479651457141694666261538974328270292961707133863600463425219283283157227535805200926930022217226083876383551253461586504130156418620607242212570917450828178055670186399172193642807334708405925896470889166119067913221175076210567181604298866064114039532957101045312875088427225041941975676890117057534184119209751871164527980143522632396734416269843440735429270144357471213980520268535551377773577733481463143675390149788398827452941751413596913532166815897750822143095693484544227093066348555394971203589446211783285181063165926313832040914378303619616058678439712654628427147759518693391063052131993752695267376885562917213889984909430780683128124379325504491295485449436210316851111326103901360526826641137029696105302992394916840880554823375115976614318697848769345242149597023819144033023206383042456224980175336941047442750673387968835301483164414323736052279975638839916962602342797637790845534224441440022263244488020142701255169707475382767890397870163779502903554868817433454874863935881401205507867140316974566603902808036541203518759078607905564728253018900709106856803246921422605224058915640828474431300305472814389840754428583532973276495155105625110720093600418921874471445947344490089948325887891149530233931258305808653117086263392068816712689822806750920832580034115346988134269084424836240099144698813103860209227441529883666062207021897744859311442024708954546910662988799772707758771413184183769951282129797551111627395046458582565628269626822139829483045421637014725733411319369679554680103240050545169714280120535661898219280932664207287037721396690619369159165479613356448139145872062287773133779660197820541279740159986625041138655503273531693405188897882152856523501093417557009679936476965847872213681196197743057338094790112272096886047764274625839146177299226710143626300548466224565026815591794337273659877727561294733003657423606041028661072458862685804563963188915609439065105217388748574389292371278171150474511692180786617408280655524111415380682350014407903496348722889779198300661998511810401451221041440219393372589178670285230243003351549225151603599731200027453879260557491710197842929428025882064334617006288206210177451644038238298537778874599034259374772102919581905986363669275684764846963118872078277395015096517819587275157211002703011322900147916422591546291170782488923991818406310706668835852820142675187504819275540026304374620289641217348257050123987199793198289657773484184518020293791350924093471611681845848043151634266909828448998604787412958530722586610517838501188434752153142022272200951926036473386680983084020765953880116409960825453198422125571206880849260310845297884717716102735773246189128565834589295583505162210211901092467542229275824939622609194094820112852925500423212607780666405003841511971123106389820199945238623094763639361957091137908139928869852653244487402928287245078940346877036846380022739674071137123195934955324549077751057553540156706824453788295513953630819702810790429564145678653615218188845547341797944129022926577457434625519677335851277190678211947911333598050198708878968842891387962206697794262766327044586985243899830795450589711051845267336370517062577145849186752368941133801742442686862732354414642861247299649433199325876277349663872973824998773618773609249557095958262977323407408116612261507814812428153176844079757861566000393100919885460663229788784599392214161177483279912835608627617911969722147190526351974279707581060732018592652548351670283438499721297291659121239304690207324141819842567133094517895179725858310248554929449535708460022643511851380966167220199458483317541576288977861514459783017258033667235937951843328300177592805158217595521042586570965762165771894093003008798462354552434334057415398947549264963561969999397460720587267566714061389281578210835733267917485670645832414522020120056030161077050459501747776417748289718017205110818227859067322887349556087485259988799772126283876172124275189278865715145304466663719154795347211629244606066290690409291686731621281458639461287674807834388343427820974976013581360825626883797149881030209852992757636607076274453213247790472542572743393255446953340242556586796270112887839816551108489726299872651427931629676144931066080648599056759621793329318281005477190784278075866893807309871667401197110959718571573525572958588987975567619074109980142968199218166172095786343044951933352375337511840458703575809026372351188534308126174133328457707604274623928411436581164172813395032384230297077109752571709475416788229368960052408190383883686937683250396062650505205961467450737805375613994732215340721750391918523144646205199973634161045699071194354611844862247540587756861017612158078688710847360691763567922530936755308922653114718248743668909462241803578972311607914087085567646476412745309017527513660615177784167633660991406901356091301958833385662167541544433760249832378982863532384695411996318954576098906587230477219419041803607563182228419202143777315901778321273590960020150063176574585757141929863397614489631431824840615914898212170026196610844733043317014862126624868026798345738843286420006840215443867142796692814415410039104569821096062475088755888491411994185579199983476896837960003500139521982779922353163071856944606633640240838326238798783248165778369701856192855784478297204091171597863833093620511410706802360476479157405212348111203956037125401681484954575594487455813204678562481155810006787189452868621261566410790939456172282789012039820779748780501723381273624072117106555864112250175744371141764551093528065155462871865856738638338718671737191771338901607634958873673042947191630712169375020209711167345171371482720545651112945141257785252594471433668730209707674729986957830318929663329629382667171891681665023526161551488592740619280479387728018925483627746240037478961143374733105718175883139927208736150450311193467224118012808176278490068400272240699615782787889818350485652861269369430242786838550760623790498735480969924341505112544014666832269502903700589859079169790026734136728856149120006215967416426380789413493597717230291667236583148428082824952029485793530555106353682014824536842848667190023850931766132346878220169843556521709402937071815612015557043443231123232587100576383299393682043676827992242958727319789089062363595186641173538171646155309242483178295914276544290955719298464931865306513226686466099612728417922461400982545361036527103700600985420151983186550063314763556286850317347463723609798414714924657384299690949839182619282869960576100614690692905553711366468513224470756184928315002768894357492563200858926711153174242566693790213204235544798240183587735678134520131891046141229503643055503392315497766161228575332937239701954055970243363366347776627449289085253608791420102692628167525095705492777908868153216358079063136830103249132820197796284330195426517563412002503153145526592763122374480155249093560956517358440758853305019198083867583506174104643639231981642755108901082620126727872210950486791253398065643947363894760881304577432815434246947740295963156739229768580520676480449560492316424371539014597486238607292700555043132095418497443140724552401852660094852639133271377843901401532157507819508818419272547733621655567020288388032596213956826174285575687389755115391445249945397784973999089132873762305026348159751649659611464794898759551502286978730624864713953101575850264938339429579562972891569662002534914145846297383831095740811646678631982509892541394905554760908208372665756344379728530575022876324852986469795394505162494238215492360385027986046408321703277478398762536142609417426822489454696504178251131128509551281053034971037031937513544954683532834496924348714871899842475919795804921661851943135223195802403794002738525581204986999439936948563681866680835430714610125012602635793081796068184919663166083245926066495877925829421801765099838539795766973401389526947931313571318681038997403253033373637884119996539292055840166474063535238260006077710495241700116208071126523280634699988689146413972428413241777946408623170866244101202769308057059751535584770205180796673826196268437834880711175369448360058161966155071629161339461693376802638739116035771135533767027545182822938050772833604216019158402905612356173512963235476756046581562074499503578617595940288718172821708448583681169992800874450743238844376888763478248267851733303652440768756261806809612595997078303049253205412696173023782038086204026868219136804652952057903482623661224193676722285424703837678676620653099283783599279788924797757069084394369376777554550105714433000015573175501961894425306939312301231246680002971852215440081867047090483680340582571539850746245029201194143681063903861229667263649985714004079113009920573619379909790726083747589848638503977352119004682396575031876810223051055624592287715243549879131223445285997813761278760940107932762624164869443079802274099908337168285119474269681782133994615314189653354849887438575048552469207071741185122156192426488093194326151796527660416735361072596843481587849388624281697204406440456702868487944614213783300702130210158543905483788119584164897982218206602442317863453952163602074240239966578013188695019699452316052934547451247566554365727481512092718994175795419039373012173540774965787477517445517427446593584622472015996920158193341835397603580833479444758315306764102341460168107671963588847462242113488835427645903302527209407779499654574208219444136103033010386338694770178939377045984912960371751341833583394165246792875453159337434692926503089470148596449326393882661179023992320409957296627634422360138682632494899229944687930285180269204146221348829864855871047183467907299719070281325594926023098441180938360322178492054730297747585509817667637026385252467475685963371090613938178672971265093976386824687621243388428638200917402636584398932988989819220025063578508594612396556589617934310465423480172765407098497886368776472749791019181154144457380748561920248606882338070225743228699020435236282972535002767049651296856651713719252041910917814652189688787159649151571446016786706692805796935830722971706152475166553434212282659052932279483456968306629676941974171274770718862674506771309328880908177975804674099843768815888439426366255430798926543260614344851868302746072438622125715413114672540266766070792046571074539562236630928381663359671366216571387009048557547434613148169930954183388015908976550429423497178723209607056018173601495149264628846056087750276338496698506899670361252731290544284838367075645831576909099442328076508711376238107284169000815857300503048215153239446019527037961046501800596827932522348145782369456335798635663421084825716680279773033446122022406287675052382430290441559202774891274669333108363639274609106935403490997340228005233310688577102623002839499634785271671557823252760587716262525637012143425607663420435140611716667687004208993440949692279663075742260392683919100766006045378233153199160493777807275612994154046288012188377019212617122562167165074074017617932622134236338071692170627227589085203389618407555507147775907439834842551549153760792156877302788501767077531755975503504466842575354329124725238947312592335317038970363822080862164462492978982315474259587301593998714415722972603771007151822392729301968549420640107127136305541878725569667773155266709653660998663880239077797467315026313724938954240924390778027314447252245049023738387902407053098521956541628025688947747295221853611482654612312940322218018943466737759672618946096877611539110300095412390378118031362991172035852736953861857520827646840703806739050486682640319988363130621223026466087394591548983530601784235862436537482421856200024899853438879216377605192850348938120143231173292907774298571949603829481905411616767842807228845874747793775329005554991143961627077155258817354893527486157466581769570983507352193953221839403940694291701229175366023457199570610944047629262392018793267931539997187389665461598078480318687534626137676509940860241150801066293165227325897647801990743595507073728629202193610206555623369557020214581648552328534096581352301546668141786564365817195637521814552198589612673510332837476454597964257059412537892727626704401296806204407925290560114140899778834699501481002129133790739978260749584156674726127714844905490701044157532268608989172316266330096523916312693490483037694883563051097948320792728271032543072467686083315573524845676795163000547254639745713960403427576437761162271951148604753352020700118515708758767205402542425792912633731326369941155014068351086601932992506441596758415563356447575103410270992172688514626156778071941575904154059715623927835338599088681316487600204805851610665569324278280569332637910025583101090846231599251748133812137296926805025353214691328089154142321213838023171185482398123450574549156566602368989702015310658249940596385623543455748699255388491414722033768608465015213698417872081091521361013127403223794352649726126954817041283840872201327901580179961517847367716995287528427071982882534517929199116500516186525483849593601248457309433935353382270097096080360029427947666738660652272449606078830045293248901396912301331183964626772509180267261104435723903058462182767583945839373558469685468826786745297762561246629815499895145432734373065994713631185564130986358767377600799909711317701275339842426832585749090840150401165268384754320402385739963708693193542366651271568912800189135283728858019955432081428009387618855785631631385024188291749104957410073536722541682952170621783698057099122749091976960877135823673253274935847170970306116955214140240187994320757876317686803777154511506743026706100540638021158421688325356362408120344923344659652766128633689095428757502960578889887827544202889298274435266243436500815251260875110063057574151537228011724117981422875397697046143944060926178184339880746452916634829004680826475965381858677760499043610443145460078892701036964410410893523607470239167311212526308493136641197124437915903559271281488888446470376575761368912624178696934681772971161874703582211996180732176621401060903008405527189638159631560484161860760297659216712566015552460069481924236567317886286620215093644391710388381543491059747647663823335211568511242561126447806331309219994334866969306868694835452500080431471851342066980493437623316299148165581589456711876101868628971615711594358147537701629607402289820818872813869002630382743649976326929926225627670174239128734414730735928805670569867763514095759262139838404437064599746593496628212622205584411758078487988156293241528267312000446835859356324796746344665596688337455503101363292524812740459135947070673359277159561221926830520780334247086201001087082979097572611828953946051378981969236867953320330097190236422211409804542235384076500429376495935232443070009730376208031004376200255691091858317036686638153939323770530196811948335947914396826248191310121038217855460197770101710639928085287687987916801599995834843907863928346949806127619510008260795505060148197497279861570485402306302219651224830404330630533029952128098197474359240000042099481261328152920245054924299631981542608753194805438256270477192774802805900501480959764681133819734419579653327049247481015434750894765675201558781772212990769364593109722671409511566208714652103482182706157501973304930541291971375563957186767882680897071058918662537053717173004074214817529303972247359723617108764429009672690274976083210613564882095383381607373556024991237417617235691653370570452083341588693252968253838760112335360157879410963471941234391453983397114018197166909387073749636179065404400173013157675472665814810911055085344630137623768887942628477707632146489352520452554178670870976419280152132528999462802671990088468729868819757585849281705285016611344626661967069638316097020618562692432435411398924332370675761310137264577391634584901245496495964647247687488896322967601741771953127745853527088974959630067866976595516202954409741399810207738847049215379568888114975518329000510901041594597374103562714823524401139304352049022081930723161189498963681492884002684990033121145566617800868976622528648243754963191623762907859956037293241090846963686353777214161423991675784723175872128642900161903205726987714011630148048608408077762803976712493147167129967089208406831054872801093016654205409513492994650890350216555354162927208009918009058821697269889671302571767979621909804913130823133289358146888132298332478577915327597685723060415492969388137833448770390999157871191750933084584044179125926152952835895663900696475752602337520283339536640226941157453411220272407546098349696194775324877405699308920871998556780992402970924100983789981416861191146358118623272754248662065704541696199750430256131379139681963606288478280173331396760820221090100535099270272061819277329908081383310212655315559786520042169932270944549026996227769059645387215669068585968268632889260793984239830130622360941706265097926103071714097044483157853293392863923299511458739612240273680542359880452623938998414237144180534504504061162225816855410752183391775098074760253294429478006857454360760275509617082042621283196161875424199407468043775944195335029715845726259994306116453293922852044467067629123902304634515490479095430457818974818815958627921524980868481313744113419818299912081325831240878054777707329648824226316816481385214790618543588822013020553668801920844595621276772574614823413824378065065607778781047019329804171203847937163120382449152923921922907499718799099410016120684588567905184477319870948707295651593460419878008502877029416844873869869132013780112548366180434879040753300307704663896194329813707827243924009068795118405835985679696446373888287860681175052712141631592879585513519785951201042194071861520728844623940196221693439749421033651058677680012355607557224825457298352816083339470090941956182256989208734779842229671163012494758149148959678795136570005206196248092133924579240796493896563471091257443372091219062385531027548448143412168377725811000432355171329538141093768271383254167870358775219313623000523353071190578773305276409196091365645101680501430235015090657159089368724764647656386560867976566826021377192753096452324174458379732089612442101708681277897426536721053678406586409912188849226697504464805918357304242789232393485236787557311037838975277273788520331231198505176417491858514189365538108869802955290288595844059489150050634196408472311011633542042814937090742148457451497465739632408470191550122957707965306450015166919565477618685168906838832856804133998599703366832176844119495086739571139390387431088451143185707262570794347458531629011165446187214765437350082917139420538055186235324393866474745016286743941266662346665666022607203334262922447331919117664841278321689419033169023561631426936133370195632803933705319682076124479531425750204891837930980178852239057276373421914917777881280167156490817427121155216202792743812700868333935035756213284201534971412474718866744258413173871449819945305940158363517994833076594041124521568241507425839639076080964837910679078338922299438981213631305939755544780219348699357114087917941509848334763835741282307579558913999118733513524338169477301682395577441364983759484179312936430523340028863079532374701199830907193861947253928435720687978289322498649836925337672191809551267617266485081824213368973086078129839986436394113953259614152675389511684536249231021709568207384645096165549142495264833430604345814470731693102252321166018744553103234571775078568397425117629942686534417056482808521669577791418121050750635088834278306889864723593485448045993912322238744698772429359932906595320814609754965692443148288742354769985072019635835443899604745280373594105946928744946579582925396123223896893433914650206445815380631273362224404181428498274949289588276911613888248611317909378196137246918417633821784338805438308269380960299200217358431924928221215239216844622039160281307859845508014662366237776040181866761312371314437029783806504499859844621567166446710737153436994281894682104789959467437704767552194045598881986839458773109444457298656566133932096922028266020458545159778051745970149633432677380800252134373649925155490205268536703528117328697121788712778631702556923733873056187381470896534096678464080011817243910630348181966029611815964428110921364405930801788079609786549911754000343081704659484888438043590732861267495002964538447427323126012906843719312929275024592133735574914819040795544793648731724784243001508672509990371885890938411958381777512216708301798049168432540657185341333501182757195620762169890472603681908257143073025121899162979548230424996708343858734561744261452544492524414234545935230149267075614883707732670758588720758746176937165375914198062440026585920788225158090559281043654243281572092303418950105322712607740934631401082569902835367995712743886584178119691650170183022930019112732915710499689564018440426549644405651115747908571150235417171897445500149216221285877447158561815853003204406260810533737315150295406107707565210352170192417341164806248057391689969631039897561483091380702282055361881158425493852247390571900057598988429387163897300420289107676634952824267261971995242542478412273054192299599322563889473705963159558262687582268945762139702915117448675774386239796192508011217538954047545197016826321174726810602992396201528448554936326027552078012854630618295686599528453024893587215779152019979823890269378236761017161563927367572810575259932689987540822989832685803141445462952079290051074202859544134394735577835782596984970719090661653476069337632213921603757980342007627939969439691602259768230798108192473016877096843270832209515528119430713267119368074503855009019210224150933357798431134005812660737304368337871837014277256963135961491188342190946968579808233311746466432530397868364129345577369988972757339545823857668260851184280110797619903714773286767057045659851507434293624740249732336238157471245187176165429937882923038010708451416260112235082403332657936600600619510936628082366399492122216520830603608966056499539474085089125425307127776611077878420016386535405011568084582584632358243598831701026559483749838405783151147067441906933672326708291483858459203718957851995722253338528735419157874489106502486675917783223283544245843739909538821942520134301516904815766481590999591899117788184116279142842187509901537897560898663843476650531144443205589679911026729857108427698022693531279824192542833452447860373836095180578895655121846410133797006300573396660967313961919818976869772577863133803524597070387283823766546190670905321522490694687302858065884169831846701436357825096058627682121046590521300702267627491465140535925523841362489201430769715359502255597604122721700850965073505712649123305706760425602512071279055940685878382019313184108834753436986444869994475398399734159847716131866701655282979433665882203912911025446619898956816002505811449215768512308367152885009753258451224219949634160988034584124468604128610868602234146203193195069841103771990942411713837715539392313682898063782233237062172816348899036437727530082120752700530491921037915604400411990824597625709494586983679218762765185791260363854958726465107665942750002616409409204203267851571897071998993734186183834804707377037524762316802406799846669758457647743685621321852042363853448569926910571054929083736800705021189494165079887461611219622874111076411686245152493296130797410728819324160362815133801491416003621597256540455475189022820327623107833579452455341927386817940492876765137489589289661930906627353245362129353545538146372837477245743682950741485890032338476551662203824911107500307191138587655396682875095869670041047974541625124805150133435482961044753121067572954068937805770815789707503874247644376188388009777535494086694103664686163711905052001511556059532295839909208168914362819677454830068223753556452618362080626893315809951701562173237338151885842713305780619262339929464676920233129456982396555926258613207435022458409310937517681586691532012660625746976927295668289445457433149026146766547047978636036784697680016306768533976807270573567495044811384584133144146611914820454838763851770409305294125727637913877609649597375771016915317895793762795038997908103347791522844112152366838560715038933447699680137032924429555270891152120669912822831051994417665931245407381796318274363396899179306617665571239989400042886174413809407140416023095700448856291604923199701035790048821604496234077745645481628814696243323482390092778351618655957919387037779867063623428182215353959985284171048284224184779122397801543269370041380575717203120224683015219907536563928639902580942636806106185774809124175777161392200283661868930793443942957121383603799614053068986865132765065581937857140455841231169188351302313292624426489417839028825218286194802870445606648375259005857862858586494049283730617686522689127020900527544086100269407907238181695151673797887961017489263611355027741440840848175765552071473881593402008946430444125803620345807133905432263366328853010921762993291788527113028354778118055213729212065827136799832594431995679605028462753857319296083422651573544775857575659131213333044496634802856775144019908476008959708649871746160320516807051530892515429202672131738803977909155261866712394112810053456443970587932683230038682955450290884857165679897726849333041371459280502637629242241283466529116368389355022671917834858939325323106475410640431719574442215800870569838409196619145071113044565784099667638628253691641824762968272711274085706595917660623518324609543904425539344583959120844075186128612529935762210558049277831573006666549814183853519572121842208897063964984669433186665488160510161786824128718424234421652593882354094956620520251082628363679685599917290800790677475615571249606146745141123265968259483661900302274940987161945211293819335558963679444777689163824509084511834966981226071526543875074502583592771373933395593023391514624032192106928604920504460437487114579926713723083811418656082716412509370785910057994268129151817310533228961204388185788490218063284540825824350078762438036115208282981448747594196112140255318606963314557275747616702262691834528262499213913409431832067110368293541399122076463908125804670793311634069724190274256220553561393474792840692502420182728096698036565731982508522378045808327782961868225419263664989654657924600877040405631758431327884245366043658422141311923092445625086900361574465678383148577070029910762554042746175863199440591547842801706866032765017018414545705936796517760334967245999526231616146728065173929193467374341238069320709151430335633961985904204558248004913937905566208473323449356492588880617352315191376380430188937537458793928044551819640341105534479694497231107388932369837228799290923034702743715764478924707651280826750612787525083562719098098367047276847988168119514941178122656782922474567382242862789695331583399380219482589406373484510908071329784109531887279007568001713819931108244319756054293566118859009031193040557908242527186543359073397728125122995202753979518527117111291373657296910856859786740615560693526396619115475875559798870385202546503043637479036564429750257243064717521398289257573025743792366826798829476011739751056243092283709265397199675013439306282102024277906195219804774303950516177724298752523820875695223404031770242320296597803552056602403625356585548317334626136511333819413574585286530308903027386409104858454302013813853510329761925058026857472742934862974548570151366210428283688599114842128258735910443108236688160044664035989726427652390737389462845150182344750575021654782807070957270620363062833180827950210372533440462124387924072094596283227569336908161741785732081886509117911618801074915348994078169797544501352509221601302367218397243557371079539353367162267318376894304229738478101237922578103337870513830793223888681796640698830324629189297783149671712533876082208378500920239554815897863213023108805334728278925293607150216679368810350057377922180982819108978599537062864148257858286831166773395152005987106443871175364330448022807722862006231511995650372466674371960425515071106374025723397986656754203008526723787407925721292383377097444816035577168080821390404789244414021589865725271226568714932669239848850993595106175466250883672302685973288643337385514237882963031041786256738862663735823693345952887697934740581359295524198637334420243958656869621003173467381169347903608342139135316240471141782204885350948856349523329419088673100501601073917740693724102952110246847695148574685087110507039390560071749520091379980119480832010039288329864825700291044973353931404443443962571383657633316321019147491449776887608870848816452529690244234869504130147212003844060317851557599509861202176455493082561749326422805296284126518019227684983887035314959028411539956184748482502636878266467630497680710470451011904823810143769199829486090568149456996694172680864267860930826675493998776794327774522354016758401468251136095994382947305622957773613502249522179698984149361349943079604227358665263711716710421891671005717415694681615715327751670409165061540187230788446273655084118560724511334825151086201463257672220790581436665903683571810162321430650591138348594283848175461652331895132533765609731770517720067991104748844893010950937656567350300776012263557207339620513171778322206411080070156910513528635267405816773245859966768146634257706132969825486936823450833592755924137639886548135796576170959508846710478231054308984466657431403931989560085145581286594098904466043182596277857661869325818398874779399093037141973044547868779898063565614089102244889818673014472328061747111996520213192297025226520537655637236240423117825152647988801933897849879064753419437381411781011458490359395744475962034385831052584051257386504552982654566562625313352107817403716175617718781978290323015705301127036580994386530679734521574456914513675088650240345602543427687578257091710833480861169785419946168347529148220216621239988779682970160810757816941040454783048360594977693825313578130074200455658876558374283958975305063551657511753800356908492208313158720718509377547006214744686677053086076965493076408505372963817470908356012037403710029258705412530135528577759189645032633306875367867469321124215028872267052295987291605706926890653833552824457283384953700217564903189490116163849022789508761537007042928591113023191665466029670042339656617677317904822346273878835874147215345148501355575727183388576829778183245214644647684019040668455076825538642295374552792551697939541173862584130535584895924101300696968610022442442217801130240871904695789746602430323162511060185778054939996869915647970673638758112568515187407997927238862084042454420883226115659405106968679178853960899618560231872915405530749655344505457131313556552141051069160220103179281099976111420909488265247209593044754905865162772789123684389628876388703319823079991125660055859721522855064461699113327512459314654499626207988237292777784671169611256714714954069906593682672312851540115466770864089088493729712086236980103596213775558372760280186571219982520645258458448118388020237692954268167894571419185994791979570263468268404783132061533342351458019055591110233259563253893420088665617071402846881746411682066939230764026725289635767656142176938429831301063758468875068952692747200079671856091491751116548348052601779337958106779382384760799760455502552006930032849155713067223460761873928902503028106667283087556867650089973251946084772935043022575605767006014266789654868384137615794365501154077920604135272642991090240035157340875005379684195329840089304550704379710864288843099287755354215432364631987233737953623113765170424532148591497372977077241105074307639541304463836027528977808790583928097607808281695079467473295334913772158777027433083202418305649909389838791519798080076882426305466949080095593024689680032513016845693533872067037637458044993641887977253303955584041277814188849522598766059395143833542373876073561708194593013282306841291483212914208102731502046000562248550407938448879026140128988072242000969770805047438648580148857092572638265607001323298715113129347828561318852937774202591628438976419083965309977647274424221018730462178350365325272084846731272731774072952896511553504869183039039146125661948358274762369059084766461669560991830695259707747005828660170279447174144188570210766834558227034150275641610671782218459311730097323061781204674049427785827459283745410714764201723944188565671462343593153852829985887768587368104415253650357872194354065189605676543389359638356477887571790622217416351905829465427786209070403437826107332929675999919995755408612740042758571570960725705262604799537191332767294083269637457192908471393836804728116529637157431872857086529245931665246687994580206451449388308157129022638061849522867094396246136272784307479230129238807291901675527966824282652273751777871664364590922568967511929269227833836130775562532491314488660722259079436001196624968612315783751849871235157879800681166314608319493452761132075540416517504980508268297356538545088252384200511076093335885725782427004922069693505989191338737985663814608660191296322695914636616829876700018972077709242330238131511211846768201696029913590153818697690780179894498252621702648050090758993404570454792568405009364285962807088871308291735121618578795802850977934862021661648335343305681352695539852753228059584418950488141750193889314396964861094221667845673585956424292545742022406786282829799458426366742124674665151027893573227257039122652816588824465896482236882934665412164842059669473349413354482605302116505417079300920752384676668919486230004548082744444661874240272138328117356866576084906496693945841836776692573125102783611467256319180334377140044173076762215751811187936321507383724249868471165357553443296039784059458851171311494288776225535842825271869889600246798282624217726228094121575489145739634304928068336292368663786353090133488303239689531326529907038840225367974045697183860058338863804924108232528786764878196586841198003379714841738732687893959424403001586480284187093728877630900252802347463843743440931614692293202926694308548124770412701492003400991496302348025438923908582841270021731092916562399468607322913924778553427292990587322806032853520373893337457353077324090958455679695822135973517458655829102746925162243583876374024032244077998327763268618306595606787004222147440858745350705753676201215701210153434192198606589143045967028485075285537826325263629168104349065044536463149193761271177553756037574684144869425223445620486513109423617216246332919962300013232326182154348322766178061742902082615857620653967771026240641541168354273039254469584053478604042989540444243557278681683082678343420120651281841446614227444794855169979106372530968226336858771139311067024932736376455765545511174434736943142820508845318679446117827557250881328479729165405370478458944645972741463511813802442897321021452883049140116524483991197763038691724549407688572358840629508340941165748122435926825909930217353312994116127667842951813629563662042404971283065354507743619623857094270905565058534257916856638482368888035424299004392780574508992364709815153371932986963583100096882598230746246988250412013029777158318553999120722882459216081250064604396765668733156433121180858568130376458591642456022300943401984249859897896256838981893253195938959466514892983191423203052524542695494698333283026366961844850956393550880908495193215023580570751103033590487341582324865699983259293979901686208651663189108511094878246806547638467931384864079854916692143169025285469504538505708327346430439492295087773244881289321220145440007639846565114044674956857876290014210234916602669017074868041972964833844821651561217648247136737975586502268377566022559679178303365958688409921873681957979497217320396874078600672941193425653102374759642534701702930726778069404927400222613919365986486287544754144352089100658706508142901755309478716474861454519788472571468119254619880078145057542319303822439272781935530519390395773890656485359709414988101524612611198913759209774134556533068182310816838016461520523632304953854275206302389605878761401791388143994379098239501380625567799744498117091643244978574986615036878984301097413964112972740201796056788994304395382318149932436853775267643343242682875311418634670628536111572799439089473916679050889263756412159652746824371410313123133971297818033968284882113538784722340319153928261048406865192785507588138791967028461026129550109346857287084687752967327236317893480008392557450032362797829919517182077671355808479509602489078071518382677649312997996298095185192365701324856338402951526186088029247779175189243902911283988387375813045217128976857606562339450193903452263499106917774705975357972988658817676145544074194878237503206365542685916170057832928649110834055845486261228188745602233402424386952033110609190249787954254053066972008890805152787975134212581586309950235656304488990082170337135470023135665501428405156696141123365996540864061271652395796141081775228006014025149557558760577301240421483012983981591505349121440039177525986705541397142922631494810509725614587121671469489050075519698385525873742765382254423941777887696366241934335309788276938382375731149681827176486925443183438950047462902756565657101651447466337545075798604622480360527678765224115209470742485466738963556112059328837527634188688159914018783993195443979403795721775959927790986999342895416375083789728450636778768987476029812043421251798975728646648062612583327623538220010251259026739228433066552678278719533968490075851531624121797106401977273214184825816872424207249209657713686379327711617658159915595831943333265423358817860225813931037194289488076519988093546315845646685165610508829975992403180573342152433017374229701923876495013099951509387341765877458122883103351896005876326382965157240217020466912378467040961060108730212021867542130612903712781724600526956256888201192117134440043804938714465490176375425069479086846503699504768338176199775806339149804265668085075923697692408609782360875540119394577933942396491941373489833316396916948172250482185029700455694444077315979024592462738488147003705530427286805261575779179921025767377574568954718647959514212549433575042584500975400479544249789263495932723495291841873416208739663456948414672261292191292293447277263938643890697062525407120331020585862265793167456526244261878817766500638427260482441611153858045762098171359878047959667748062966251627882306419938073806872280030006470735892640801666383123192020510731100591941738440468879655075602924893404831268346445572315208549879777561673347465345575111586600500589129404723933540009222434502801862210403187036456960683806271047835505954811473482398039813969685239670752359934117303357094977834153747810891872833458058089742485317280280734734682917999960861057474241320935139121696711863811365359108467496534553431128195367908606690217268880701384627917416706970843802813519535162488820169414379430636346523070935683123626678314132815955968310558586354076468109262122987910834055483848296558260401702645464364462065141684063432286284623335354278641550792888775511674285430730072406475907704547711143078147499651357465282794927977763602179207145429586452027434140711163834505614072048927086985117008484144492336769664546420043956085579083117675305597246089617142680962034068446587105563925973721610190684336086272682282368314853385635415425272568548782917537003860693885754371026573696742382939229567426696442811340701519772565473838553301598999615108117148016327998668782842884823804126168774980010941480238193709051863984989208133511206293473081396318931947206746667087746343222251311459468337944754738427520843115947180672987382495010648185842370176591712029550910007246850236129090730237429150827919061508982261274124181507539243023570622981419076596156089575888996529919647937960720302221318314594877699198643165459820493564847918398737691369264609541050565715767121534672200401516647200481575872749129550704407606238065629296542611771787901282184877915033166433288629228724255885816002097369096936749598218307815711626031990183925651463933827632321810257089421669773288147365003285821758719298418609957730966286836190278632118327733171969827710418903492273622000700671762816998230143039994693073668461667893214860578870889396946560823506897962501100201730687698646956206121973593174371113802335436745989705374122641123070986046044301598519254880323085818451156693278099078724819342508419385470233168319827924233277881346758543844952463731684159050447655421007567652933950451034471581825423038016321670811239885171504900697761661484450330447046085236641976628391409464473135282044716378491251936301755318304942330681092228249476884395851116578787513881006250639970153622791984570979567197493074718556537192467011997789908174257927799334476374268235214014290462874764616394459704049924237354678787072946431098222833978047292458470946166832573946907880812384252657866970874197239379943587920086100558904590064908527671317523283056555954722733846443457701014477724480694326266025899343879995874490120565252199677270509914431153454706650905476923097954417169415113807883700690078744484191783348425515788513471392325701746294345235827160339835610908305629566065359837510304231195896665001392088555329698504088119674454327422413432490925392176488952663182782910735445628340673756092333369352116509234046995978409734138691652610466360863070322136845127674292611406164235780094202448943184562462136357575268549046385406215334641010465861128489092456188542337195753506337570004994324850245352979693211978500940512833167352548393718026933903081212537503862624053198686455219125593884706271133326003020359384502634376499613266170446894343720174276377074001481794580234030223848474785476639149834085237224299110452791650818268667446210114192365163588989790230380958765097194883161364443516641195249248552512215034004889584811793324181433317485204214546458855377040595402873710064208519485884478944171151997630650731630353812681331609097889694914122415854312050561751233133170482649001046141380160927035499115800595348835331262996238951064528482275625602735576683021440363455623399695939605544273087947565867384099958627068209017695333735341016446526328070667901065763023734825657758040193117668780797174856859813819447593577466826309806803891677845597860695575252566748807399095938491038796996898390705498655864231146186367565682527664471430636306826231260967439787476491623846241665483144135209458080043912377822052338939907093455309727238697883135153059569922353020907788508720383063036439347693147388484099493168390510770208514067425830625858058496084985973071872365997988393724797390896599701551533876975196397572668146309048673578426205044584745249069355461451160425184357831305459124307954301282526917719523154418506317542170137412640934533441847463842401510167283413617049195195055905664286761712183408839123215688835462365507585896930952214784395269320400281239026679792633981262301877213540368243707588815292811685613233076870493853175632499018773620645843887876509067905539796571575033110562316900048589133769932997207646119652723328882982272207917395579055454306957015342787132827531619444824054247516141570929404895087431646311238144710311676351643797936004915298541302076855718111006296669623159452537880161113137927197368504764542554705611588159886354638669777710119331428715966806508803518474564828980882275662972616344484103453130567861509493860654180747310381727681576433027491072636216687513550161534704998510752508422216872501562569016245593514877270715142893204231149019812476510582217828525755924795749424322495519218455105328029442056948443767637428683752747718485726184004374643707132786445789249011499836589301837501211647797503151081392622550667758900514273279679497799074529914901396877731352992116980818880042264973592465161726358246809405163893845149614741846816280454037336358748523084823090882987550420347564733630195878911422289151085536145176805672670631907374225110717088171155799130362823800636292823255631732937506057177380082811278585072521067226023658324417560382224096905406367718993233259678442396373322469233658768639794992897306833471625073531379310375535566389078582833994953806080252247456966963498247719187480865724895643352229442868967847437993859915348575528441691401421693305405639233346055852132116086451474736718734068068151959298746242421254582602147934318218402153149219930000377685978054415305364940553696608940231598574204578491782397095022553194546979146874832650295033347055397504087530811193572062250303639574504120120423141856417993650289730700591554234252147004466946541931860174344770598283417524008679743139888864291376590947779068529963734540710046367535953444641454374031567132518071649607540573425257439468951532529707571297201124928563630014003821588378662411596019428505685852255641916251954869029910621501516173974598600930384116100913798987769307712622165421276636697122823220828872687630195667538871529064827739477299884382153144440384779275074689911487659979513009744313209641952423164827406091881313357701586243358125027183923281149243177334873793933577916276708147477132492471955178989819119134716117712300059260989617014331982681468007771393210170502892588158918464698843694346273224992147792348975577027214759791761914188639959735587314947324788897279999421064368857683002720712247607504148430477192918355785747078337839799392799673461163396980542651011962844799971137943220122491389634510981640793985106550506920894486951556277597897717033744928378228699007765864362310504623429005078655560133090394649385712683537639174351042440716419071539397933179352254966074099632353215083019547663539758522349397719209887241072646433642820468540032991208207550853819336244664554175167353537548261927121080564744141378162270590269318820005364220172639514296670065378622558371192765593465505707600711809125611243953525754381555672705983848703511265636774112806287231909717737462624857889107374902889129236714113352515091468068151843209299916760162645172494306023397160936144828427075510670359787173093353774189682227824701859599541097097530397433755147748840096840286098656100809449765237249668784259051666324824160949124029569980463306983816549702253636700670105893448971677023168235284493038348775931958163352037783629565091064212146915646705043829376449920457268105632708818946985720010716179557849265887560122406623408376067343792475399686747361095212304880124798554890081107624968238597926140932110671218076257382889229454801778582423841122455224469477757121581301959898019629687168340002460434957230407787064543189658165779345151928429562694897754566959219418095744062569080102083689251738313814756481641484495404008865451308331025399181995804549292364077393766660493447219946978290081605662700643736871289150704044734110239949503608399792066836711386138659722698139002860492936100187507353862911668140486701373797108293717157095037477533106919427164792689176276287066797148495467743902462110662016310741621239251029824720581563034687538662642012899582663232438343981078144662158184996551327961791546811747556869904037459311470029818878479679141502670372468099090411816086769396987936050449356290475394851131335039182299567731296199961610184440950665220382899183634951320030594313396750654338172056857654369958593673426169235807995575150861971326431934980721560073155210647156549377585791303169912074817905970169226452565002126793936307771544053706929295677099563449382513098207547878770474635015636043790838241732629442246359147645305567119276673616897302913862339168095036879242513832160122744927425441075748386918928706136741953242649270976322424641185057854059468502132880990256239304550999124089219778336043032203197209694057612712030317884705331367883537017820432959374411754375799421469037294879362564469419071897904523757806519953934592708807920566457644699215472291389808448079480672133720709919843928351402437994144911125379721125539877586322236542772450430491720731845646699984980813929638785899758606152299975249857225117692557859748643313986265332502414197049223547007818679813244999155482178105425594051435442305736905958991128819880981805354144718422340059258840460850504568895158711061020427342319149758740464882404792494251957469947854694508071429121356381138601588725950555719405224499093138364472369015727676167950340086084369715006570629258114060046327459433153056985870210854326656353672423374036324062614771505005317674396872620082495128036937425936699915539317370360266781170705498989234703757067377677577233140113314580153544835332053566683312099568431545911224343202389932288854118056826580452689250450686507613284753589027775206230926841425045203833342437157172235534500202435154821169770026692183369595227158408201467163680758989776162095129801536439636702318067917161356104442976931040849499986776435415614701635509875471280614319646264757229492206579857326795919207285864985593642486006357084441593975020221499741150609236893352084790022953608346626549079142876914741965115204164265276602747699787802899624538097376557727821162185794705226782028208476162907840272606377684024800412842077695741519451122891046570286058345107830171769199215569380129378860612446688903573664405199769552943928656740034764685813986175968250628198339921924714617520173936626839665934296281607764860258664290253340123165122292940021933232697102352174947438915487681030812564002626243557867967355525071159218270130649386620782271263057381974747233025208645692718370448920711121826328297470587190131008432007331855495297229755249659680697452389206004106847946774639745095516257008264412140084347119837296320747561093253924827687447163698052677679291584647883972165998367680402733680951705520342597690976809822366136627105077455073087071121016687622074941440667946475986467823951836062847915857053144957755995905559946874469587056056748368194556037162542729971509856035536373517024680204289185200555154472839374183568836725147630615613205251910854207401682831431474508685895862634604726430163046601524664791148926033375655293008761173438828043304461332632325100066048921824511128511440229299392187840111378979177578349824457126740648768538162516944605534771690414068669568376232650228698553904009096806347910758120194419274919888379845076956276446592931196312006219564674674601624513174562006363120110324434584293965347236848534502975832691376616514009317418549627432807231012506825218839010217260651913903684464124564014000846141803450420162340544854202473886537855683980608283096095456701167148093876812835717095767919638487535809083381148888233510552655027079386977295730161383924242845353029336517204610058754894768262062987733426835833659290781256403625592788868202597245755868746365727851453338448930069429352555080755060094869233829951818106109127873049768860850405585907041203350114512345811151138640514612381769282121197920674307757675772277930451016049051079369345227722083685785669241148956150724727167994738087085024486750291254603875383040885781495705084729822708258783129474777403574828862279512343789805636328615996025111868955812862582667833269848493995327062220074216712785499750888604607867376821652907179986307943340629508523788324904613275483359953375209256502130515762673984727350108156180987613127347926253690308326089850685653871084871123157274110444729439558148377855240254187847738460943157687161182217087511758580628583980506127106986042295247063750092517344148736664527785758164686445628462753993035751666574382601010602018438818164459422115414900625405354372378487300952899487024577146275443245149102696673798844012965042849922096392044370858226873582802149521581665175139823112235087806839379866435166262477843255487348975042771864702120336096167906191784413984492655441397464113555143303118767135502329050047031828756331989189501731281283986125321107365101313641312553057567418859769390873748971804934005056320915724614070954612043860275967634169851441138104316030806287920507131142227406103647540917931141305709838273036624850411166225965594161701882822044279062517655103274528039051060889466589787587960059195910461937510798905737693190828147830901946445610225186648864983758757585748490547071673790195625603046265155786665531331862187520300140631202731762157675147304260273142188000307926034742647209692394514971490945213419829891854615033964757119496965006637558469522840948502757835250967054591433371887970680795183298039881447037139368977093604348024898356575979665454805740066587852107271834420200405251004285905133403783098092427332052364854795879269846316625618025844202477688203608121216082778741888967494110837622383603785727702226569783889555863334435633105322275035972204652983704321877092237444867997787936635992017322060836145513212607946199630359399148265031718760636975763129507928744848658453313330759886477136039773932143752414129706588232147381133181400370148583878828171895436081152317571410804582295240690143827448332510676346614287471625330916914983045320034071567030448528567301012105484870148063259243759919189411611067047848941716038401493250052460413251859910771134808909261527354824308445857700991910514042634091739930213232243970202883889629582160958109099223433075468946666484923841880666048085428809123216094586471148084088504704916116998763210289842254397336035085737466689917271654664069680943896713024183129556078371035540337789838157666156648504779065202955839095582666684523820370160282765206501913967118438330207752141925280781116823045275943276357440588211651748934728466422458398428483273600796691642996178258296586982416268887023849002372425242430640238667870487267993928477089179271413601132173153759252536970635310295274772203231935517911043037246293400638678231649922687286543739965607514152273744022321630921912408568035762327221753763587986787497880289657711083468019477885458809192938774154579979784173995983844077455172501574367210348923680594116799582249064576838650278339578006137088148366945150330010472175886303344293359666379349447919246369592185723662951774544548940411971921064350270975904500680707366651323089864598199858162381558345252737807620647563068615944800932162834407470867082662650903442709918569288588761290518768730211972700460729679725472053719024698597618486382366662088673535069869265149301596770760250417761887084578547773299690643740819074573864294642364447277419958535941232430981146395876868717350163878983907516179677013817453277736250578748726296123633628861092386484984336524768867712115545778041988165254638388459170046336397868614652688285770198099400116063737431119107582150591776011123231588530036189910989726901273841151587803542627887530906182384787412946196494874068732398393505224797654181653212060266693657023807296952071424155936614256208417060000491088096554928580275439337986984175181980241067027082885126682431472565760718971148327813510507206771010854402484139574636695256097433088242482950810125559538108887107023749456682330187521684653709372106199579515406218484595529909641170285551924432708975711377691202177765827152529493783107865798377299776107068809050247739806974310096521364082953596324215062617856997612955318841143607471749462767681127803583411872125319284833913754115121992849502085898253523013589389032945565040684890551550728608488256058523928402617829848071540088153815392096581440576159201040504400182012773212830820130050355668642000809553010126827826837677095267014428028887520262113259325930417042875180099297708353291119763979676817034101903376335720828826850100332025101583299411286075712360583414967958085507192502779878233121191992947340616710630138317248881079448903617262511106729780818193213291041638487974151141403206802281008418865018715307855171329952838519853750200466015261716448500659981453048430463631039532491522670644815898447316011644567568735010037902560031467859888530480990734810680241159154883718254194367842185994167023891369490789229378729409089385906824614337040237917587738184374226615408836601930392846649711407987808994503020319406793647572263083667370490682051492901680665906844774426295098830870340590214036579969848657466858262278355130028491700118670855841879285633171849650794088258339573837360232084728470325373157559253898398965167685645518604007685413364305970141234432968843607036383908029219327390903734073720988624518252836821521150137269174432465919806079742078125669468198978150430443668455407646232674087542825219342261845665411352100372281288756890002386250502272679210716496716090048017566972837855226494311494608833541611699215762039383201278994008916394855135169691959816472340026495059866833068655432925714752257129728073240751784132818287487920557020343440825669351673894024169820443348093693693306860214109577873029836792596392147601484171275238718299845744942438818430765412064506133976075307194565958548637702807904126344650182059564892546797241480436874203781532861739222394214652080465962371494714509152895525841863622074655060793923404949300486699332822709298986957744632167448426641260407657544822263531126619260300526452176174920215582941466863174490515976991674665446930994716940945128427537134801033517723225791543700381998017203546674874381997913741360337911536447300158449720111972536676292389491235850384404845875771065885651293137011384126380792733680665577132731808683135477235108560944038268859275821484068988137625149449090059460526088410977225145790037535866425450109186766383571503396624021874129498808581691954218550156520520984921253485629701770904172124129207617739134550967884334900923167331839918733537001667499568829846565234259635766859021182528398786784499265299991010984345973008138025545035171100492876485354813822372531589825227987676238792165682881360826163692592054841992331563751767602335075311094636295099932034113690751309632239221765810853742810563594204110361582060527959342289731677431619778179646074838878847911954626331527860012522061316151383574177366707685129969724306442103505980910552800677533405166875853537304292577212270581045282875352798500871747660203180536143718718458139070355395517112324517206217933643647561512514211097578797646908946055234583033070201523284889868823255486562797974425889593917064870121420501262252497590546779114295113104882246690894019389579325152859919749854819153691816451196472879812799752197090705849975546383393629841382059326651590526202489038348885585534401610475172755699072721353294076713016057340998511293215196574568972703953806148553790377737025096289915728155465547258513219020383559819903118687716631915473488565343332996888353326732809130716476636626515685300732730908834460248829080311818015731248027954507173101118390052602630126288735613953697120747670987700185618139472172171957965927514543198127703344411700351324584842905702371929003264999380651153861422094356887827565866757652713128381694453127713698304883178459799738079296025228782555375695449920519100857304746881752631160864950567975014221178639582194918433516696955605321425361212405970843872024415134583500195575695225340689834837669364663103662922739655568622383114367233008567156232585655247536206726069461780205546605949473150366955957974916395545187336392618122401150859852918499182005145631557218341649815131075165300892346590009166674006615914951908415665050908316165789265519141816689129489151744707445336361067497484462478268658448333966423944571453062234431354350191412976929823997748138839395630678474011681816190833269919852472145946815478779151694904004823540892226606423359259549089383793072926814275468803604936272221292766059438887930431288209742217103671352709178078400092600750608637028315906222045509625185965143656186297977786861594793233106571744473402710442266304250225756491598817510392409981892960191344601477996953820605852966643191943761739977781477060189798280571780176664762308700079934525498568987473826826644655209036606543738719419946994803374758927941021944619860530190668574191433377106337535460364584567162574207051907938360611754275115711626412184838891705983174867579549725381325511560759373325193367605328197869522617455680808095158672220148177130842214251133471892040241157786847960429923706793055171688725388168206389994576855750901741998447236122910485917491695897202070833809539744939891048616042050762539133455871060208687744152781564194126421443075053607846960391171558395527406456735620466509188166768863560855116625738079277453179446303984539033980760537667162701719011127267338188616230565146522958568521806040141912710646915752609202451939782229047070833954907835704460534532339171372784295486407645170857021681331548964252157953387055028648319956090474107145627962957892345657094987708357113900610614137066872612842786313629705355026073079561277672346165360055010959756883041845602842626931563537919072722418241557816946500730712948445391273230965927788795842058172473812882249822557903889993250584966930480987662453067943754030826892380103161213391536850583959367125162585791282656658757079336644371296785188260849341606300396704127170061068169475362061945981944325368080555794841832321548068640083149071976589880719039389571570802778778802316177577211387069730524568343509903682025641147996626450930246553016698298451512792610919833266111075853156076587766492002256676068474928868694590078455126144663909685910535011329948999852783637872216533480112207664774580138539279795006696641416145491740226339651367211435629840359817752359615510548811028074749775721708767857684413461307112338714255822110440197848683768317560563108506498414736692776577609809776017183199730393554350482218936617860752831456735291452347685044593962270358791787622628050154780718841154447879704551346662894905881025799882053457246935308172017717489702510623059296901663495823945886977986039826731852017917071938999831193201568403055812950067451981091244447917807863310752307825414432580236007143009476265697809890697698417546486239123847116997236232355526784279106985156896898542965959493716659055654119581207508346407532100936753073125706623915439489685530736648783494645770007002594749886412040268329777278375421212415643579738613111459418598184229265355729267714946563159606252253572540273095189237192983975892935979954899811578315340506529480425142738476914572370802173260924272376832065062009117576106781148332565464097066910251934223781174171283060626643031358194741406192308328929579355137684331601851709393635621721162072802558986122528369057468171312079223228074761681153048873521556249401764109092223657808244787483615680876918822498834998905977926229576547352458957783701082763541521759195776997672270742191232735134011556137524755717379059641693860636760186179753106155251188600504050395001911767109703410673782115727481759671830396730148432677092150175259782899433549986702040382607904063688636093038717854144734829095340952916770881667065391866277550670492954787612765327938481631354782666936248009560251797399556348358761860745887940707696604854145915289507932148340063587108032552947840337327414997665200640766464782327744856518850139577118266065216659604242515124749029130895692120414966539102370028449967737419273547308870875746170068863625815609097751409189786172628447491624099159796225327420162534196141890359781818428541301593022975313520875614577363660112128867273400056237673933032333998945635123132104815671317969428304870138454467531456911755741319132703188348433317753808852439142444617470103335516103467843205252504613199180414887090410673752376143324491195264539641398042110281077722365525184595598845338506331387725181634261802631287612761483727048574268397616265981886908967018959129552818648128061983932466252099901072824781757214546669743281163559957429033601945717068030225621263791895901854149847477541543603431488549969379560407104734205218500557596055571657395106657952638686455958382899759805933637822595295237010986544846942475694720071100383215825447803514938407411187392810903873856680743078997589624303365230743251363200230017997901774211186755270112888784246615397817841172395563003322091480817842216366340605131759378455038352624449129114221400415896876645297320945590443570440033124190611307051529171728835427119204403548316102066561928493283483554464974865982690655317658838539395007428781732090766963749662022615700962858070821500398200201231679182674126761824036670582789027348376439601565955216759565047397427467317183310335502733196117247635493867254688774430219910251186082077224299255351174085550831130302312930915904920852983154480201350991736908179926112577991458743626161086997567315095835378382042474193451833556940529304041405401652002418499231335762912742890157807201252579202977451685006316870766127522284956624732275549202305073420952749688098047236042005305025175712966810533462968912104156070496589034934491312621733820972566951671555068632217367736847892611147386399565425125842750324302537077556011074396722255862660485107114624759345751456181358639968905066933052845656642755282678627627939488697750452492070775203739964860273018420534413676631868042493860603540484918064791608039891959202145818136904780159378114354704664334702244609752633423441886195093236802429169925474558798783874166260537341377228216380137380060541910368845778362360026886898375200656749441006101413141698614221048314973636018618859417051042745644882602074981566192365565147881894948540096744348935177152336021677422904893038938250949010525587536822081952492047904521572716920647247001813225452832344879442893059669245676151864614961462853271985791015796463631438783149774257159391830914504677523719108386170310138323915389301509995122811349733961415963643540903131943626476815179473474688900702168968302985004620349911151190731827315853855117545945712975081511512972903383100334125415513036201496026771766779133204830539928323430271160084273314397517027731207997071483068021499910925761749789735257035951825103634120718053336064812404154771394832535129605440638657720863659875249875389751844596494914336929669816346578990661841851612869315713036329476488293325507260467763620243295387512471494405735058071607100029843713885955207397532166110603997490805735140418065276422633428447444799709851356186018746899028082893210760345279869008280834546897558723665123859398622478321216110425242865955324038803231796338488816202137892253577556999948550111119741028469220211552925329298754771800027644170145443080530155046030320343715312727655346203260376604658320509853488747660645167132846723386268275458247306641985780155030771697118456262198985084066970572961262516366376646903679787677326141141699813852848999237735120974994359389507869328836396139848068995270765783032976365886408587472498507654322228431229229712002785693795961902800818649761709386907251640889279468828289081177369808554238518877785895283978288131320642684318701834309299433185681026662095646442069113235513752290273155658868736946395816077822705297600486504323609737497281701825584543905003984525869886817736665417239972044745740883654462310330890511155707695277137018338219128416257662665790263590178475270470385972472250986446041330562876503590116735981444389427925063501109924519236983788571588990923260202671525844130695894818889396455240135642740928606946861306946863110770180549632701729687264982068105545974340528970207895256879098507722517610688328450239987781885520862102533295621873155326915546419788463326887739752117903236873079058253584324302533856069782378471298477386435984416002633258189080503444392732601723084824550591920259981563559814329642614019092878814921730542309600990147645538483086210036999302851580534798444517351336655093622541410546408959374717908557659228018966690877136034321566945847495484273458250914353899961833267667534793158028429915301518271069960289178712434480481177626886545228536003716358114716912654782937393271831002911852069730996694570814643197760506857989144746214306514444446996704061496307436548461625400569319058240237362830475039850368338344313119227838173607510249532445687357898631255575450974667116910307278364642428005057588751545522628191445809699602719771650625430498444146074953857514513772669671875936072046580236012602906683411943185253056340365148891431980767839059818137765527528572124321792814398540307794584252212246936122452902574345476769909687786098893258196136162360840642881178806761022760350138078963103545122537609377899496038513710900767133449088217588269510915957243763584086435164326630826561505672915912128071969826564748641889925241066511859359796685400543559563100016232727036627565905481503362764145741633426180938919722629981208877021550389518016057956955626033578807929976353895894660175705061359197278037720399431700186170828737751150255642949056161840240093958615835905457439526099683955623696850262011444126200135010520947106426559098443823767296190231969053998273373180207026319148605220681215531713625767949323977247846065440176614415415502742903186593479835295742800847575653137571173724432046565558934877465308350526143293142137701197099243678774480225611541496675289009368473462615411462148138333904193012434485347150264574571458244310676231911145706536159662401915706984601432994133130625288783381680063692639530228787432840027081253028032199426125781220814865405630009456184327700437111005659577689480563266349689303397726238000741966776896364231631987067217264698260791496017985408590679324969372484074126223899357567744244119485899442450434350197127061075063961555136660609334516867260828492107824156015820151242970258765739342007615899078240401714219292341722587365121801276428568142261389523383773448581669025928309471301150776016160332542583220448651457011837642139810298535418464673794580508096248284959522642938752252361569116183343057055775111741954876071500135152637619712241667054030265991457599504673445720672847256911974315885256115416349539469629359243439780462571701027115870425693828332900682156001011724247225549919311264232952235597521200059045467300958571609169797749113117086944740264158196710174962923931209926254866803175057958380428443074009512065055736359941974649659639335538194370024037171725882875976308261501566704436327645823574011066031922363229507122241960873048399855297153745481509647661295051258936666288020405644158061661303828190990954823841148869462214319073700323220679061734871741146436810308425889671006757002405251844616554860698289859242285682833741772199214345811772866850676997397368688905820767213250256259017933925958005094660446908580565539620948353571504271682850644357352406112977562453268623517185386836301099589771027305868207163788541926127240787983559366112399942642637797828844444220383810969745455294268602114105479582577325335126513234771392902404208955052270459298239406588562649544171559604363923984602308371860544540523365785191259130343660632793433994319693988454573370299910536030046546833357771759248096237846913798423007005723995356055165635205223017771230265158486167572231844655659086199491246132475581640273672709449421802446825185113160157784793412066951575447357516670094009682488909779622031358347063719283261408132165538332475630719344647933392271182039957415786231741714670866177856885737978213927864491710749058167934625995303672308586682258718722967099385598991349627756955440914337872483542610001741176563999172070674184629243482957166260697306784516560143751625118543573779813577095124255701801472124091218023174707373472842366703002280773622495932799378208030576957854982397953835670404054694889549757206795252619218578700271740978636194217885423448599656701476375785678264994506389153787078010773229996684907992848259405539036693904138310804106376547447564426920932740812445262246914841530557815640867923181442099842880455063279430874380912081112584953591513653577702544868666885301631367019777121264378731147648706389319020187117541957135980941357853009106729086456218247258961697103669974161616737210122550910054007598004585564315968598352443358686655671252121231435156117851483241956655846817293858562129801947082282177355849318253260869195748715413360304996787657232433041883683060290348213289799473901669206230015749800900890957706961561939571766842815070922247862638801343626482792884092428962863253014645433418519615902392764717325232234950209439331227718869994875794094460982440141656410681368047725693908479546856542575792945006813923905669825975907015372549683891685264156097653229779661875821330288500837568727454293070944190338106168228065386191612330546782821420508305078604300554116634583705842315255019281540486756605167059594903133113362694573960216730838932235443073859854658667721468074705934347205818813766499946865079671714954461013651178745147147961663621568795903806173869514579866304482337797313898522321296333409692794003891582120628238903849439472688550935776311404348530817739038641443155861863287521896739361047173808565452240442252763774727472853536240350767302199895498887239209505127361364488593416310325206666408643311709511199010105002481886977085788879946396156761122070773859500321895848748873837962630747978346454689735163768392706147617792374175526093622314665896168787547518748626591767010907843763570476999263481572298982521594724723504728114406984072504619192030216182344995723633565167743134299567263352764895856839326404352427544158686107311080369321088898164654823398985221466969151459959831875939315331789551776004601500865764443766142369255235215296346649968651212501552538233283288952690735345432802548780936609678467177164605305653790935789678874776829512806859216695348309524802487270119873763396236361879677675543072591396083823483475373416335191604469417299388925030497763517715320687579356740638796434327662369245744485789287550902443038053957265326273639607229051020901844955780315027651668795810362217759940584552109878412241831862919534712044241754409880785564434140419999724255934972372882351746122306558216137475436434953722681333877673318173570901721945062779419968720638257009762592294802092339301667008928697950634957753046093747958150177051102187115277731703748216665732639304668165127160189732088364929357786159741382753646408130006737551735553350342152677059989947713623959909323473279019603030477463333312584062154619317715518399795475508838316490724767659160579801319572312764901993950120565434786679961138583475346359075614633586696873580459747152524386995059161907480085460326574835039610705230539347570863490792580470174852464859483863061579318262466783560185548898433560529340792350105295262931296168947936941872759242010698690044283562264367172970403372172712025099767715502192259967749499289556122553323415043706410458364146880514813906559135759088510884218293216259244196936764951466824044109588390038663698035289892719933546278388310138992103882967891143346338002033616121535936681147135851651842776449893328310078625770649411137015061795878470167961521563426821116436346607627289121866928620612682954217914148003477562146770284791619329618202081115182273794375620590239319820213426075959644819577787659403732007543847957115586944467976906924507262921438346349025193073279939778653848021109185708218654287039574225921848719978679658530869163001982652663786503322629821267451603677215007597018843558608203880024620078817219339847218065197950456783258520596364544441953172144172080213727533399470003830290448591750360817395012240590007855240952112376721070024542596865719342248069051402403922983621630971456823396114366695573800149567412918157584873379343809897131857331228344328790237489341977727449287106408272736147743545569331558190034080036786499814223404767151179645008883007937021936486127402636629767919277876313323016410481738079688484466550426282877613679717982237019152035309868735423430369004873737469982244628293571452505496672498154010902536737095819903849890307993393762086305290725847771566653431900090498426877626546104029862086401150575782549390059374379729229733493117283218527557714292089284946047975524382987182103478880010931865714018221534698595223153768078079583316999023791224212324024850498167342620548258654335284186673813629726208739601854255367675805056714151424144403032249282643805080630275930368760763860308652889816371632401453767710249467251442724155487367924568867262211546700210280282364928389774785738201385347475057740142245961727948423620285755778829041947773020635123973626138284637127674951452631241333211488390394532226232669414648530476488846024388608980249358461890327695045425385539529264682259397199958076912933802825608373391877154525201377439310831775922985660046549771931431869033497542299911397201054874793748921543159093584595487881167161878690483745318507078596031929971346736099738944716019030623613415811721757812834474206922317958386948918934411023328211115058995218879202963395797333918874684810473498876395973407048051213936086109295622710219525266919402578681489624843890903991690880947998283157732775834320225822270938490369299777235557119925751910189015669879483852250052431736262139120797301178162099081212389287247816167800394328089914065926539212482566601414863915839499432588332161567648892738982175500294105958912278226750484693850259289089688277893340666409853718248348846577613515693856427070586393652867762318664184366797922213798438514377581035685784702784681504637300894838739975078985091714704639967672225558691822051751780726635339865533368145061375424799957833512306634238537914473148063032150574528161516153908045424466061107147861697278035750725064271355237948783184317968365132284190224517125795593660352435710526320885570595382409884656020235064168807062498445289378340922887628509981661395495981061625288073765557151706356649877549226825418206367044163361138443775159343081960552090771969636753547043696004251889123250873462409720960781478078713649791092731991931260563103445316353844471529359421890665051466047302523934916313418375287357213204092727175900670721315407302415757643099333158397920452579052343800291411281998327442673542022485873432359149016788783832655635985428962937001685585722523503292936945061346435576437494222271753376459849326489936601799649511273058507889898541936655933501695951098468445322530637935010682138753316546150638396889753301070958624210840739599325601645189919041046522790433430264264863831887025559311091246966543742980961100986774283751487817587580084913801342345625350872967705315146345666762951721858491130581023931351844121075641092771160419760148402173054568785435719516444747256161799295201357298804444699083621384779663958560896605848714198403846762446101025489067259960740017080208785153865861305064715299324767047593931152628514831898818358562576122296280816097062020428281604901894134893584651537419800784686002071404180871368569931321466086144888475450843496466278260869087104525108161970530717387533402241327798965408475626212002968677908515477329124423093306107307570145174732978208750225523778704328686403795499186397135864329532479149131259272224355358522356973644960995030729087447195598733202145103751085311336393856439626691136933405719888678347410937601372337268543958918964749889880093745726395135727449104352673946783327387889697269427102543593822830026125648325007124371504395890869717123586986062714533038890337189004314203558046986597040363775712145230526922693728445675794553077847741781138459689974488047167408882429279890605054309124055858735871606555449234348485811185373876778386395721030830329552378613956076283152813008939188587616106365006899352224136485657228602360801990854227379324721009062242940847377611769073745853342691286649777549818594915653511735770777285342203838044175241363240435586261334447814024270107255555351232112145882045078108649398228168083677986599451189343346397072789660816780701063636910773717532217559686927568135373546948017334311924077935977751365282828762510224657814208884460018838888041770831673862113187163951255324802787413596402835473993466075473479545355156813511564712645462262116964315380492267429326571433210083802357529180715854160443410173416583363884520730653051679735952286347531406313013677875164454205195058566644284903207209863839772913458480398999556194066129432548410678132330734006295995954939921362204663500197417549251000179939486131909433550319832441642043595607761593032455133462359196690365509868521145879668292642968299523266077458016476575880589891797255287375428703566341303687699394501040842091149603830704980526961159528319855899465095638383937454918646194157801834984704908781068228936404548863687412370384268307810303354920401676675636218626329411584776507625636756493643024657035327082282070875545490067723356117979321332096085400627951159781827484309403747927145125565585639246649460169022809109001988603852496763028151464086926914797382400851174800627466480460084898186098935117000285489984890563623813129872104450598490074613952128101921157181165470692937495659508313854790706539334079461714997669745349953104479717681600962950481415731494722679105394317897417085173921091614064609084450874610822248446335404062606001480999750669774717242123989987272850311732027198379780071701720060415114597563397652071335788615655351076605111963461693574206877235375191245362867309242153554494742277761866494206469588155843817111418117027960604827927063542196421868143015766310972574835696004017287941773879567336022222043182337123516452176669392327555228823712623980926575729987805608320624589326668630444479570319162843971558569633366339794887921003693198819358129414134929398575255694604217812792027857077279611642264622757758142700617290921925498833454240339644253381208667577637346532684003419341386429674152279304250160336314177246684559192810260694049979681990161680120790643785343490941944653805782776499995073471391052172433605937733750273036530249752374505245133995209141508811440156553439111795581073951297790041685788540574310414056472775069204697696487413142216201719283761838745925645887040498425603092682775272596258632662978508464118610328985613492273062327648328282490764338002219816876454223396122058257542618094578402537156785681683038315489940618777493665404410812137295688823092742782252798226414410535176876013851630346078557932990033980860584535286282355996035000186571793374345286860486744455413554920741387138508879596779043991952074196852927590325708978519900599828689915059595134699073985679759678318257061386155119669764700156275774091271721913833766369412254233411135732885918248097129201712471379971390760126186264845902560749435654871527451353399052914825887611777200443213351415206274080152401784554657431868206355105152769089781075812403874158284039213590589476764647677583352894314700049454154354433703998096261564985142828037584071017260415100012470908868405011335788298808256943215773396397747695931911007327276771128803890499592621794078353816610035956288634017351022030671237372072946822601942615844802481446649827168266105692860922207713259906788927619373271624130221847786229592764187622777538558922837330545022429697022723585476210200422169367081115250274607788356787749336751430127373619048492515460782296286856797574420280322484558858711382852549508893413657506709062309625479135658461777671135236933644292137218192735268425455070363596041873400265827811419387321031305435889751335147147483815649210613795571758946311924440460973858255175654594173223422174476190745786760221662001181581598978047141458780129064288534713103709514304810639090002634869892189232336028048836906116390158298123869073618507151448988196836124456784689666564479048407561412865249784749788117500850128747246035584691433166564911885007971989867716202603693013474245491522225598785386101274251318287199607530387424370739237589329415791009410212043903349217248050503958266405936396520108171494956514937788794405708528330327858119906566528797820617362686144749277990745001005087673398052429670598211972036162416237083968073232573972889060746231184194429570468907632041929699818343579575008468759305133068116797168477094496673265909690974534978762385714199429148960771544663644453840690746407047524015446593524519167400647969967900688203454986200399202878159278077537609718489768926373753212508214373091662857152289250365687658566214340826418905003579901868385968831134191377271830722386715634331358307143514440644953316821315471143091317930607718893395677344531021968551518715778389094047084853946670552162136529977587218612358137358838081643538612746725456411561272912107144911173259357328822818017896568968253039847604658880261264559081116708942816083352664428667000773884930514447048228095361268330964837658487482868298794050572033979476999490887592606575266379481924518357405039608985594475955508007329725619204478753225249468903899695389860501388268734174071838854336631187259652167499848725313081043987234619015416144505656140087402686049808284883851820423253968198673193492344918344105035191132161033330944769762859947659765613097876102927736368170317473796978456233808218100741923438882863066159982863091384205485984419153779969548788414800035655442666592919269812350352227255614070459864825333736322733596978130357051825806946664299324192483297788059657950329255026033905571109267855495158751889076489615646516747378837809029576514182962301452641917110829361069027458709066911007848119411109443895006016209652584933558258739525777145628773264674881371350623335584397215971863832037841701799248176200698153333777528723119949418568371159937313612601944115780787313457559931934678463959484125370476283027948576764104279995037251644102807059900375888341737941075230300775211849388280822816783548031506711148502033147038394732895205860901687173358065615729160621068209205043731551221727350877992166542563552823125549125914008672681538311230769303800327536785092902656854179338224451905064697903180086497339711903907195579093384143622419337842481302939315886812581800397811892647138953230639625897054053791404480394291722091943847727972125523766069540578323803844269365311019652822232017108147856859669714681651423273742207761328629473878459301632374322997207794375405203199819635428291304692347207066256749108785598633270309829104556544306520005840601353446745140934105396291607686426208615747896806761887658152964783710765390853181666835670435124968711633480422750257041514776723512521788404864592893504785530069542196206458899842454748760417413493209610491286360052967140659829460128440960268766967354803467962165909721646488257237606716761354620709711431081080368754651960305560478997340065863251946231381813264035228731413004455030496386745188340698083059525112211451955730682537384215168036728163032158870108838834354197925750088687160361489261996383322668955330509204443084235219881062053123482975689415653766924858231931102316613719078600250861187811457898140152725958329038907466641217050161297784261223051237982301351552504441373504246285576129387949595420805022587806122700284261936146054466951665384921101947266134800261155558117408462354852553825698433201065920286781695617900750794981657005059836539234309316597842464930258577016388334215247007327456569813345600713922886230647251422201302939388048363812147680148924717865650748393920860586612508514317603756406840227520392944039553843895540334273906236318212802365705987309878772159909740021781916805202194269172978026736013429503221874043037534436160107573321620220121420879196594532909018799073441428863794492255672379950979535356750365853312085532802220840233222332525273642476063517294159563760156748276860356205913752857338330340657136964068664290971279212144014972686013655863306618045314622123008508113021787382141614714846616130353635181917859449061272113793980177318613823383589983524150786522602310148810558094385800726750899965392822454855282573138839922147798510992285347829764741985850613337217226279660951439704672069048874210216782388792679442989148184636174067976786334207469553516841651423439408384533323727201197691978689588933699739333896332265074396724842029006905015141684905118577617606546962509016171505170061050443520624746146608187918864664572306072843604315623802093952843400235127003455456665312664486153147204227241999538566060876096931371073162934799753403454428432994866683563687849522036663149837325847442317491278604942161653314171126871152423469351082346085613110755203675082586258895358134937162049278092004682558461969882424791834739724880462358168525331986197798863274373111119072729346057835846958553200963634678403486121738934345008047183227260443259462845008340715861572125582564823841812352500407651998502041221254127819786686412103101057667579262178686247140206278959708224725257861516815859814149671187899433195880840479822918009567816693318286964587597381263459095809700372374634572000265185767316470409080540161232514659961085938151600672285362151083635485397023796083251336116013126765709284392525255656109893584357130979305997850388199087200317274195461108211892634192596467466549196407145247488462944702329708697728019256236222334350008031913102067449936744493784441142740891865440833000670775791746477382127700134905512072588892333911095705221955749097599018056535951047614498323962093925113549196763431333578878666270371212237138296445857728536090842131646147186669610894984324460470085187491360162130923182345989831692394780785023355379733295139545990018231583082377554656963571695044558982714937329705860125228569943751067916967307959122486731425478726901553993678768505361695018693498149246082953125877815451841377148696806785593850167437149860402730605681376406313466677324348884118670245656083654591712903316631010162289993363009041713049908938530055498867531254968542522018301971806835922914715616326614351868553503807910887044328706380064062985009747555352831382503520471938965202357926851520915472512418780946920217868981027647219534937950318522596328235588942528356986891620635937018535976314155527532262968882190960807865291466072683407992527667112358392722585319618334459055833424556744455033704668521403234041292639001628466582389316000257672376550064230607190229485207693167055669485341464439200520790648610082801240572998264999684731300126260769257829940883959285071093658553026105006431983337008737181111864965603720100029328573141721210923195134765265773997364344065316861096692762984181964670421962993144610725819680840918988627906631718084665395258848329706886033424643902278775505263461783287299247425811549702541746207035044415044173957503095213877451599651678381218700923408853750421583243143575065452505266854248908925251494633270969885957562168005381991147026516200747274023095441875555584396318956192802886266139278499928874798888831958318023450101528873498107826524510815475677243640822467245132667516930377125840195350112866040428970112824010732081883959171357226236136620609417964103203706859243699941683146990552284203181493408708598895335580157035747173903548762978929660204407630828358953083658400603643562476130107934750132095306743425056067053388262664920181529951342374251231045141496593460611166727203787249321916415970888510531573119551439048194233157341755496532316497777091147086571976034336796868487551386603171447402824113392533596750554224734946597074200496532179576869411481556727199972300690230075660887370508748727414055688200828065920267282741259681903883939196492465644032388541687581023347449704369477038261471071681579467133182443580689501434508274632335301469277614451350241897793560823093069138366968585598839872279902004106280370729594031403841670400724977198868405032918286336358766124260146375008138192645255066712482362949284352378219709992735933727714444468364164928790178199922007874831534006055731629504987958958780785151533155984640929814949778054347921555661763200259755320352227325685310289344149466207236831056927463160613014172439215486832596198117185729999054345365691780767823728745220445063596994226175211485001564948779468098300858630732379067748269047996694897612949565684782375727667063272121153130786164466731213479208389408997696948964698757392403431671322529540154577127706825102542555327722857165751628646226003356443679950942331816863260542482334376989011804637754455973784597771794736266966997151712258018146680258587814990533982943950639203793880329682922216176057787848489946547986694060922600908226346273032868328456388874714012870787245900464615717412256223996477135765182666933100245147696698660288395837375851520441633358348159512862775639988898087080694411085120087165583576394394115333782315924955650313948547359881944461309150494901596216389631396096105434646347442119022370984577858174048824715555629070808541733798124508657952508599580819222036908443936254439906681954848042286511240858875150939009896435205473367956684760465598807829004836096293631894712183152504503329486668933588587973059126501888482193485343663586584019136178677842558407730115895490269259120707875883545368212053604185621040125587123291027241254185816464875239714916083742397529984533238036521975694746683003937553810102251005401847485931841517563372960550617115489034244899753881331239150765402999339388786649232681614647490099122895203398903817693779398377357963889175808990070400873359380918580446874221877473344101521058581481659265014021670106227165840816621878442950769236223579152790489406246209867893782214975098150121076319340413364162807888915904118044011422859959352441854934597555376981585513710449947412170531081269922481698225234494584484939442827934454832345162544011835688916641596108850655770164092499178287979362875434455211513915253832808301692471548149182450067590535002274843228970783673510667670647974721035460498347526504732307809471408189526226061001241365833006552152702361405918570402540313895411697436586066146674769136966289096649115725239764862925620062675481682372395576737657025611306020113088771728984162987764971393024613799384837549861197419924708797961349802537909021269739653279213254148825643407111064198633633470698155444250975991712385274595459931895620858932785764782249205685381621670639942924604811760836485936880350909045104885344242130495897623784151462764647576817293804055632787457309718937262264135639522237372166761321809346535786932614066255770242066749886206058962670662571783254723490660090237746888621416504528861663942033919502607389379111669478684749806573156398090147581170417036031449943474944470821198101241359313149828267452158383927318694675054977863670476119037960661731216471930325776393752201157442610747104049442186816143735522436962919285911966250961680205606826033439228517545443681138011515641027878066751744311480833248037920829016441093904611876955871712940407885197136889233097787829669939389145763738051264695708908963368378841466186409795817496797461925947179597112654596740968057609959744809773454276508196595055934842386413116801049488816930832561842727400569003162132194291590412699422982121111037022205542584948697497703400776460971394885987705129406325896993388812178322520149678916668127343156800587746040043385101953444296762977308390345994922066225548998516338333748928756294092164319524805503199988326744249468930772293206016215790586988190153297880626113801709009834165940419741620699230549924498573343694485800772644037141316221232999779436429409961445337333606395722118588712090950073968828602691061217197201046449975136933205096038275939312668975127611560055154844578062458301791441158419802523352702205564230550677738960379436860409317369209457211636152031129074232330150093043272583437844062621073021960018233596790792014245566228464478155836272828923439236141878158507183002515203005459976668230465310098054234147425967317552502963232456190522166313750389814395142411368551549452135257772615777191757685871204707738437963225956721555633329350519547586234991818668309268522411722425164265530643812467281392405546025123248900743371812469897250348184837877838028593413166629837793807210080914181356228117945296854106291790014219424972783290158435732100961363706277446500477600048550865429356779698679322995417421584560594129528085891784924013054241070411180297717767290119508911994366012602531385213706322788391630822607565452493298494911963570268258900677491364532936392582644634739511795671817407377861178942902114369573931278357014033095614905998394944327524799022394476394654888459465514508590668142275693100726369875000492923975565526525324496466645124332250894003068225919865722157204842539115716422006534216774573223857269431910819527230302087439036065945433578157740835539936269350801940196866638499791308763425489064061042506202528227425238501257882311828692935413393672973791311608453766757594448758555452352182796217011649950286979715090421081983729981843975413816445263666639922234652789204527725220719202021777983477166631976168039947060851607574525065669690218609237629119843922591273931725612991207199052619276013680108490924186152976424530002327635903611252338501422418188050512810134320104211416651876362272364446197490580368720908146620367900249331434993543117185665025822705000065570659353706939776193370335991923760264646571913042094321658704907811462424617303726043361303500954807145533194737887488563019591775348111840859297690595128950832047075974582972331326285410330585340404362110598435597820699991831291444522119360182909177163906534845303861162887641876787623494487131373850102511040791392471055577437889971366168022042385399267635069122157580616554436783300229772953884845945070424580494399895961651689535171527880726937190980533506693040190115267939180071776534958127683703617187647754943313883289780250668038651350057945378092295045184034208991537469828347689797500966643656958141579470112755925729028117284298852486574330553340013388641923694869750907820327808658950891926931282539302185471029207042904561918509846468905929681735888549005277062487218341996728407843758210436977210868769445733999905560453078969819409872798253771873142213457261386893491936975876373637808753044089618052172632188977899319982847098705346729529507024074439591931964063798590769887380618390133047278353969392843325891173270886392749761674067762794381336950184857189237012231760132422119050295167038685276178815242340248844891917242766511342699568564022830698422193813970269311011095062383922008808348367012275016999351004779746410817886450276935285776442635070137108710305046104346460062265061410681149597370321042422017114855777972290074623694965960061038557070881790230675519904008220182678252069342753972024832930346966044137092777815719896913007795805935530432671571124415027205936226174608119220958606094907354811998240392164228561036130385608879578897194234092447012761807230426944395289968970200532365599319921655683711349089310764786959889595825441040294488626159413298254856023627218186463066541353631838438494993589000375955431459501286118655940389891299462314572841122446150916866185991182344314980481116748501120955570807188393367985276939340331114593400323107926665406020702873186738855800223252735315989862505880995428210103806195181826416261385274213497482512440438216511885544538371513786057464955851816043312398573882957670697959081199961197105476722738984398872532686342114814347069272635780960586384607675817819334970937501493921657585181430553259358474613020422358953694350074437121541163676131699735130891568310785478689243629337931304167717735792894625511151078165224255016120480194128156577800348590261071793054875284957239050046747995379432440662522589939854968647870521905345990456360685955771907003734602478954213678633279017479082052153401247850681679243133702165881579781293621276008730801323299225304644675464665779180193645435538416278560769758722309931792093303947994067329520914219036288011634826027736183340370868112411527004225823111191491805481377910273435096582186036231062284625018694958465328479965095748716911395598741656154272406035709851271855327290821672593362908708509141444581131908198906543022484785967407311353847099551224806678573714589186587875450878710938075530305300039313951161378037860588961360711740942473183467354152253160355215589391094312892263519971417878231810324725482888399407142497001421024026842123410175333674737448239738413444612168372994135543350382662783119508762045751831241602885298402527967307135029122932084280653160913265738141467372009992852067303981429172403137457349337051666261039957786936575560446337194690167401016050347857189751557276085833602163956532335143700285840819174577704025191157883280806479968854588081989687946151871075057394755418644047007914104203817674620960980078276820322214602316408442800995928194788144490407244119852249211292369758497103098739332038370959566768074122943148544384983049703067788462670065051158157911775889719464331785102872235301468537256755171108621557312923167499397280880980627037374515278155283840879921797751904148076939100655236965311937036254011118354835426166782466115359310392059257571541107722365331583892893949109721457303957838022848300204458377513939661965588839259001002852152811546186550308619567387606367238106245991577570926752318858145376056908099160586850238668919951744017296974224614986647096110976673201463721295180183263325858765738870693877528091909515503116091309052929199790779590323294739151118148894690446054898241109475602364285575856400796121665020515625274362645300946464302755504749675977476711663959640192850091325414256780806766009943273903625252504508012828551257233544955750720797240300700585277225100441874821656277531083755652606270715468337235241194323158993278174895592073320177963040520827015644434931137183755636828309761472485565953013239722845097040850015319835953314639895085199247622011244409258794504437399110945971217673959592063568001986759596955279866224530068117774798873344184658406665437946186022297156445549519263562180371690135360348741955234226312939370160984858597579330191273010540105558936852613385098110817979541262382982588118673012446171988810223361342299400298305574175838830988906599172739778224698657092494699772512134784627469893396169693796311759055689587876372325645709728942813782303180182165834154252303733908273068629718958066974160455842096949299114450292197726479184416636539249270624104719673547116394497327855273225333506655412670883503299921963847071171606486710932418957281067830860473638009155499514748835674439365719538787505094154839170435330323379765575219301716289620790070541725725202213798088731737109573551306065908400026724332706995430064838000784590979384818372492068865277589933493101934806530852846555861541604999053361923186452947001517263861493713974599254551797845097038164254342776354911318573916300906274502826252066744298475385750841615571194131306300490737285075755073233601612994066979951508017568786852554548935167590301360495368610730635796463461112303553133169294293191291737813261445486148189277954320698085175645606162176034662507725695151121100004582110901385615853919439042297797522890351638068090604887620366114611852590607150580952421322544757524879917138130412182585190371753637954539852384526724434517320050704671335994977864364214155270852674628056038270726448950401616359292859461339583399412012537128752295297152825863232119513837094790872368141394075241093517660670789865817628035913103674315324304837113138903610466630511807565125659707906817345698441046274268985818435496260857444432505577459050158066314707399500809179155524736055657982351593931607691422237214626176325420772693528382210052658340106632513142164331192489234889020165793105843073510580395002554594817642405398515547210672244249440028603552656250048669788607338865138927622233292517354150905206537533676257530633254788116565150431589594866505173941120488861103935407895458012352042132083679634380141196985439561825939131783296280215837144911291443542062167207579501714812220450552888122112809521748703980710702687480873712540438126445100642911688696806598662395657705562610587413641399037689179904205347404936189689621054879906820821344512612856729977760175207036532721545727937711504178859854449739333219048925409696234792678004272504663416097703636215656400784251236479888695884534058496019884778489845725909703653315719254525571128475849357251553867561605474077934054488843426271352087687352385116175997985502186915013902651017835469267985116233374435839724489504162953659766659520355448882319311952494065994183230902820227419585803879740791236420799513384341881213337508135327280670284939399066059210895557468621688828852350036248205655006994353009270497353974078812659943197715891074427487824466779131307212036869555992545132844245057317421041805341478447969675213349851733255606828476417486668139975623884291729486913345033906966077515845148577911959767006092474425659371085875619297626258165329545415179370980619829710485461833674546258967813419181201072372783995859987286161303273315542924778742526751020097248065578246865413931539341673824007440426971175410282992870352106192682654140220430301771472372475120065247182670695917286096068260692322840907710244998347630923854173094856197592251058443036460737374328528308014747522656257779822210834954930450502914833893770035974767334516302824291017854565779900261277360727447651509725313100691495768077738546714247656911623899101955373661165798378861994910996937442717610528568339566361397648291356367726933610615097560274711246691202567187192134724303395669290343482477484249983624020109357249078672136073392042000016813116292756404618133412868653402534048163997227155823315285249816929211830541470521786623039965794681870080208610458332419017260576638795637593430589581807170745740568798057289637877984636867144517529015372391028697786523755358471978710371606711939087144323192888934103511708492285330557867653513436917779209404706970416811812743990089905439206476098521181282255950225321095770077715524032826758402503462255298515481280291064911269328543835327123246323719059520805711426544550236310573923871873720865239201402990343646404066662140063850741321034496427551107633464378843890170091865763355798044656774463912764099420231097712533753453464458061788576049251541985591339411694786446689496804758410006988784914502542002844477387027131107415912744016570547580250385861265531260154429696435946444374817400998641359939135483083263011317924127014307037962170058592480307936522825001930177655447765871795457382324166145867752509021065051063281550478764544493026632274797190975322166946520607237378964728076234445204753695864793644778624127778240339752252990607938454044391058083096973906285485055217205883384757549817058858618611148122688527746462617226813851358871088636416025587937317868965338728958172614201739931089923760799861983111580317964126156124364112565364029270552201354268392173628815008246511030526004567637281406921214554337678688965164431186003139592256504762259638279004816999219315804755225259802785242621480924426242119235585399295807643448530079071151345267262488909201524432154879932131137618653883915293350924279495441326264737204449542738272121584617753560672549448910309682642780821630395010593506157745596964475240824465876051429483164419053795535089926303809333093631902643847550247243779430415335138639027831948891826442908870099973443567836935814265108996200462114715604415169105027130110471513303056519474599367803118037761161805203353215055532903710292365846247558095308371620721075824013026841826139261938332206909450318473817221239425424485882807167104477109245476528323313791749621785745807118762158170220300522543456290148338030564408763389189710801026947918848787495855856323428476114030473717477755873217737617626765023983057259484835419296188181827730491524108898190808842767894322870017431309413039311013884302299543879690137087596809478412905475917753766180680920254196638549152748501957186980162175824420259305756827061761497961869274986451080450460853297337851479631705718069607346632614927079426178021447613703379041422669014547466064932109291508259340219606403956622910162577687227233628386517159739563311226557411622582845955188111534679330571890575354208675190108631262958867572156524178167949184940962933738597930166423456949125434192788307821236373148334616245518067379823187806895508030237503989595744533035650874622879220007949886013205204074441847358433346120772816479711767647646577283417264978090872636922214995104796132270876099376491090042107733692711694032918049800039918866122034174104689843574189786665995188821617960100135996869026592800204277557993363684859894940225271608250900068911417207231465774371654994549712840240951493396903099767280839016247224778399041479855875851811915553309007867125959211393688659262851697536983738849349392944546191342448011450791220868062295289005826074115389516380602523943701816017455774097684017148951397506739603817492286112796346426070581207332008081375468467968369696956686265652500195683923441842610092611318495816400294303360796509987097697089908525466920182954025233446496785947953000675505369832024952313138080320926947893012556432947639114297601257550353668116373138388489336702586378267860324897248389729761593734430186490333786027800896005178420741738827245358045783533413947120432868077184424263952955567756311172249217484532646167434171148095351497633225523275137592399021299241485109487528810027980469871675009735462653670066174889337089544453463190994983478983827264736870873507412868350234397829514365480447467092689620059573069025161210658739224681442078245560052282782735580641478903109597493294232851012594482456183124876519926465323696319974477286593522724280673191962411954470395855023287579183274069014510836174340783176728993102145191341359602467491649205153436041481628674638145664649234011152916871055706961907858715052515986607358353048992370514088525754046809839580530384514407338638650290497264288568011154277197106398831950138071130497472358906750685268362923401580133981361026366664027645021487451649730204357436907038764407010022481251130657879898881485978949551408371420455492365236256687260363076896511910392022546153622989840585380285168057052607832900049623611229055987278227066078425837973864508835581614369721012472397709532159920590626308822219943400751632517177447572700943782058429815271838142451685514672634653836179148583162540415300545271371755800607529183532690542239961851803865006323866880977059354641521381174044937323118158694066773096508483894085102089010179130480999667861226369691801454601566809016370257013756472340543647507308871584801875288128076059065888369670472612319524354332133927106921517145491599139452415589996207214670400307134666498344676477868899878599233270108119335096818710704561349052079567761115317614880336739480122979605625874527164823426666345255724475395978813807660559267490259218150228209650756765136840811429659636831530617987717400404642302718990309693291630594436552625295058769325747868800091667676519277073117883716478325446752819963529936842000521343722521464812926540207741293483766254352633674160887425700693182345394773025325491488575620001731715785871396446326289462299233206385514328004152163893852510223182845156885884615320702442826354195442573283838239638102324444452173975989107713151141066984014299077492601062376727761377921722787917638157193516428250353920965023388661777954146491708334527016961275339130150841578545872108820864538630377491542954118449103899571187416520260247498337288712781582279899803533799135684221948172499037787731494264674130498818648527490027998385514336802179996506885749454061411027618785593924882430450512486906274997274906641368399971540650929857588008978000694754112235264804087800446070855710096858211541456872428610947525274038045494796526085215180309798010879900361795245025703905116958605148506763522532033210962368081766669501954754530072525070958184031147218747515828719515360320499384000888093593457122127396909512490321379371074650188682636492209158244467537820306015125047157562826267042451981986579045677725683379237247241976910481937733456287741458293969907061715562103347908670255111456196759276114809581682076074893508276983949514809285758692431487579576063811116611336624155191200588189570695456987074669567775387541560520858620319627119162011086659379467282448856224800362613205003335129334148735945932410299221867218658858754687941922685035340754808620592788284610958087841454302373834847885677620311179954095538949298095737222794135020546605161811387276712178346862765075105821438960873690413723938831762346628066338743546932562275717403158070729902511209971216941126342223626126982841832417035290700832641192453111941746312215668860871233589091912043950585102667614492002612762305657551933377992755941247321443188014841515874699925206413116729239767863836508867658119062136681584775315795741857619223122019931405447227139386890146769502690056200916875028263593344646071591519453641207671063503664830949853744654770411788095855408505535290956526311090003162687761007757799547926396106861053123889131496321446226262051646117457107512750835189870063044577283562340631974426615366008572338099092599949350604464073124580337398744257441840661667072252992491745218988448661551110494675189210842390914563810014480531410981844097792988112026066346829593473246844873887520866083569665566715997731958348791729922079321932307070872881789952001947982127986080102004337589136696391977014735696201828455076968826239493138370819394613352109738297066020019328571781002770568477367533212478538955840612462562843237212817980523673728890006811418584741627282044296018484506542836916775903775190047604466318263169954225317745522986937438023224356125627023260297859066947098165987280826170760418385776626705686004430466038582455813925593500118390548573618889959649962298926913233647612876827566047194445807725711683494827480743537578339524156055606927222807312562507063174750278673457302091909182339418483300748233356660956696448649547468497859753175623462608704721642715232574658338178409447279206151740241969112809970144833901794887193079118174716727995027486205087865496443908855778000003748086311182040078338339641647176528622280660127933987908719777099970829602599110066820067156572912022525679200236923150989223639489145752085650324197642188728261068153776918232524933882904094476599892695233423138685291189891507906528330371243132686742097774396994962490200459625902986024081681264798678965825752954771718454514642241229116351982986686641117092079498996107381255792916743926247222452132504928883842395275430885453979381752508151442089215022990993669881031563698982874524815257064148963856812479569489850162618631283264244910424762451380679332710881425924317144251607242803581601937398415656745834912541257810380142292021058391822859987293649613721085283548567594647957043111894084143218538597191064039746988830943325000139987457701259634932319669830045819313541803821989335624904925598944249716220545649591381003454362699484176268523429255954480604449889570666163618535654938465767561542945123275301364563008781869838222310689433452156915504097235178653719532035503653498882064242217156293720083135730257070677681207771872645189027603699325849021953590821414746382619295893989266350763636790462181219649329563270853424181179330249067169373051095213961567512025623626493125555476577494496281175009507729709438070492117729743317762938051452538097989231054191211621858835238248028885235867634215858381997208148587235076540828480174482978599912676891046523021763455115791767330845381433279325498690480770490457929007082121308419847958404611727148689989190432575979840768192835435931569871369767274404343988866067434825529962052902249081202490316575297106630762856722914815509136075061056858114285082840667970062875484441643118504596313017801873306048945201677578751320675027827768514497188329646374830580341178752214913950643186280744127802813212646834547999326284002055911127898802550863262156497301896366517605872804204054370160669327395283366852967380619613654637983582258007675245608953386851712606441410332136571820560761010112283588526329039179203591652080689171885386171998349086146156521614176547545355873000022182111781907057991930268198326401318952225417072072630568566121239721983561868793650614046431644314577823174188020514154843668407505385798677511046314141424261900103426232594939807439789419191839964276712559068367904136741215100370969654073727790375261590140978320562694123258321079881753904155151806608083236446915216639985503841223369366483420904872735660580887736524570443669089352316858855351193826700362613769955078672259239065832227121335653515097394361134991513932245058043808170567346734360776740395613028587269138061736919898889512641761784066420598570370167199235732686159624057036040933091100603721214686147115719996769992338858841291710735288736149976303836904502912805154860687669380832313219952994626025422619440455925635869603594711191991627686617327677438933662737606224882815427589378791383687936240775422118605228915841761107956597624885551536373854083822017737133842016963919509404985146432937706408082579307917958613767641121751941957886713088281714619364914947987324899934828262948802809149072612145508055313204321146454371381263101731084781405711341395724479210400336033048496661602157648853263648098170612990576787440986781051932358420625908376181917516404135026551396186600445420294735034597391281981352460368512807136323373468080926041247133586554811231149570769872728424034176332063553227882931074930984125791052764935245288114912572459869995151274566417727101593226130003806454870463985859905630301823446964834488037890276478099697057140097069987259629214180615051076097666201307764992891057703382793883910793795997848034972426069627286934466722868836918757624830890463025818704828629994828255775202889797918411645125893872068237123804159289718169060387346701055385107188139582318555266416900541412383682062174501308799420580678706601423079475547493407721317121770736093479483345684811476761316194056151264976393326117864039703832469289503445588688704941305352978745424888036138496168336467609436654372650383971221979806275843376312109742682794314158667754100466724271224467020920270734296568879731396433579806837533518485049684631493282219388587600644545761591739001289639726884249150847660812408605004019610825333895391292336357479962432937597637865932628594349393288215913947451799919795508946508764344855881822156412318803925009866128385024204919657235005736027710318103522622839741668788485103143227690082654159255516286909191726112963184689871382532655850793596515813490599784794154860875065110219885305368458234939077889344488435088374954299177211246293890430258011089432030603990328609617442793430531908757892860792186883663172023165642196785235437342257344184902601742379303137810951469681651832032408392999793774036386610646449222107444007277689737349751919314478605499419352139724029162427540933094723981208955950210591207373811988289027507335444104901995163551754875592312761889856412389579498214266148382221876387639746815618406407458864555639075358625156600866444819330756866585067082585518627287723868155687522638044671000489161667060574165476628850431740077393466716551776078226009454842216225405951159661459694088437963284088420458647326553631618427449291972147703675021187767070560742264181289930642659526406724345857088237862597855970521497147278665540535881383880820612686555188430224998479670525952015553729302731552582090598968410542133839906815243379479269071665335804947807629718596622004024857648938926755517390542223904014222258984464273073817384296720153414929558630149109103122575379888478201733881891702202467480833276719891817930037653906398328236006992840460479671515471034045511237457708018101399028929577385315525856485545505934643510888317084128139129946629185453117394345627795459858525069899483324398639124192656287635944657645551382492099101127050794131166363961808381864630994597794649209789987420867103615703338898148369181594201655254193736986512196471138820456745120654173924792986410352408516936488109353845743139113636889030516943086606248348320529994124075493877718353188199929328332620786628504517031051827266063438938241756327650130316562282637452033495630823100329188627720032598683702104201330011796401399299244322030782139450152194799214515940889743010132555432698053098501629559355652679504380984125391474879018677051534017499375153379852739076297130267957250913730769349819173013942557406192001170491740196644676244955142399758199638016425586797556076927825918164789725251334618646111438277230986701627522432954148218729703785404255934254861075846109974691536762953834282630239817736027274648171309104999172010998996683521274725737383417304847038879679650626735873729528411003820900727394573443534513552655706402731353413563111243705947523837918775832224820073970815686950809376010578195729137779932433810021697922966064043969356544509366109746043920694684994259135203024338842477283242175221743979906831035232817109830454096800452861534262909332690701140209512631586065406693407832227391510605115440233062268027437730095972027879112449744867945945803820127278998423132471642051688834814125280898178203371552686217878012858985443702093304527957582513710246794203809926391779268584176189568516127601569581330986829257688748813798035923751228902529017696631419272045826841157016415878730742635883912375610244943293791156565939009522967936364478748184099876551768831515484154180681542010719096968775947650882112613209843623124887683735935042626699136176723773485820334928952707090891648888446954440722862040341073376004136293931149925906711443957809761407789195865770490002574902182773603760628103817542487989162827730273387832931393488695532923501322920781755877323568541159160685380215081171955402368744980228896748876541913112714746536497469264785963021229679097547900279841309001210099908908001963029414130104670298006819169142584159626252158046957270915452104568127971290183335539993557111711371696949932260464806334999924966474869230893465102246828734343544235251326949825587636033028840209513506704494393231020473740629283462476672612302067109538442087080931198905699245839956890004641958207977010407791515418361408264389822300875058192109168776688653068791788867706442627191135392668988562583574957809502998622804025489857675385060775162151128990549005568625942645130185161663343538006371018542957870785052711808711896040109816608425700338604046148287367548832165599784356423307691074567157821748255940431618348863402732119157038163964990624119274939065997330042666165293400439911123584496918070182276349325429743513576813806369479670666581561506973164775660875469677711218232233623998525070936545950550811705540208270219180147215636755564168971605512198808337716680897361820601273537002221544129354530141915582375592115219790087276943481597079799922303052415583126310285262014565004487090336763806106195072814718453505207718071051042157299389518098105577959507102504212822914576223469228769528731905770041868921641238287290944272082139385913757377753553721809014883769840692809926144283547378584558095950730792320645751343398672308441191612249705741998096058613254463542372763352250514891384981206127254029998033034625390038281531629289728482742215794611188571824297397415510674689499668498878141317822575560634685836242556289627522474991994328257395432964797682435593049707368981963677040009375579990336233927070070432090879661433354555540657256966364777096369917292153414483364976040290979297731541606780845549936071077120888650934259729665623295523884820639956461886327622043750885541097087390035487547282270143038378419013590240637812657308067793074678957874793821638019779943403256502723021196304826229800872270295297092592544046480487187293700770177241608179393657177491465984489895484366915049686230976296611467085735922727162983490589876906152065284324621314763434318588645241760858782647754138253796238499705579499177986470492596801931438846919744690136985107758816539291522659420422012996779812184059647669757113493219128336966661686601493656809215403054319145007598006109315145848317508067841859905918731795088718069367002547661153850225273256786179833518225783405305053800186877416862647348033885355385402050001664163320315396991024923769911772589075895286095680592496988999011329752344719966755950442113916295424829484667969657975650175733111399959977623242710779960249689641770699225607389892720532390811939847658783507416440189681988146623886669918361123271785953763425246930948014465396664399480242103434562098443081981327755765775164129770439260078370251962425317742839086479995712718269118481900932737016482751456340737872860194910654649544730593495347698577361877311711580326818498419582162544014907826418102960662700476746636653690345647208813375336272645771594555809781570194368290561354235812456414500896546589927751329435597150278688756791784354127520353915104543545256670645295153572262462925991511831985117275822142937836272373964388810287068840373356412837542593605728290167698476423553503069435739454575881260228818461685852401412207965309029858588885590887245252953409271687621997269601287541796517141413315519130207634236518455633744797884210549300476156263039423493618363415664993285142438665825957692998343868161148470715117145957210727788094681160249401587330698962224905120630121335561031038391050973206330017651592342037089061891448603135870763731357525132669270495788974318124240734121346379300522179316000697573023563333489822703332558714208376533869531359414964108308378389766490107474146547926121015604591710063343887489149847169878618319537096915064041067039317891440895736000390161057710529662076069874345537783997449548412393876315246547144182988134330088388543217027932972244802933650821702464174105745429412880534796924215648644850633794472837469501787487218923854585130241792444315291238203985321183393260570808502779941432192216188296499000741803808754306355777557827688508969887115655400867481679050154398447910738020516858769514862416496702813961273861720646624885009045970848983613877112915041821607708231088168948352568521930459986574156114337902333849333887309976772314287981651347300033087406834804216703255863600446956778724055077918651883446839845125207819862405435469561978126880790357392191615397949470831975286455877047650956956625858281435210580498590374742735268474399980349213864563210442394550699532140949397577830147383885651064983039250321483008527814204306087980778350943830967147526433129124368662551994316296209221773895230010764097581846778661525611488226053062709792316720781801462428985008580647529014586682682797124903428265657832592699033664082627008192320587563980778301792446234615871477878500773005498443398237178504096590828631734387790739780003998603560606717959829125560238741146720042391500939428928119475335945632236928699477750264085815670846090912501415024623948049257914717494762543811859175801117652739277338835751047271184670106807711132159357073904987919092231190887740819772576243676056059661665539371864501048063224874929302172909254917753189832762751821589865541946963221112757241236503263397729454368344928824117831191561223556057561647018125462457074309631497233992582966407064214387931716130105249211411487159717826432344034100204338244116910215621548733945160031914869723428871991500341233073262391914961903810943786882374074897575345267321014997489295302928365470293065836603569784915107072647111380565277617509264017454425976036090125142858409706853251803747085281246143723837430211570501718736297121745931534840702694625121297712385227138783484889506776275327468810419298065217875448832349359775520369202392827788834679405803809239388368726334194508571026479235694710765715986802154835491570190165786017563192976416396917643729805558066470138464072265148950231948951141938137526215834624774604447094521658977035737608122692836466786739143137085979373644490686553664292852270902582085197378814217950667890286312642476823977145812398319310006711222247777939812327974794554359288062696136788519350283856212427296752812705001256241511719601454822969259609226816730637194026132009340053965870305081619276548832218149434979773158051705683842121615129602214359429991699939437860935412421501742820165378303014761925579492943417720902390459533106622957085017108365609519038257660076514035277857379860248895379248999019360707166307724351900205031845228672454014073690392512163050647194387562181325054563924109009315677810408074097195298434095288815745739747453788341700140587144903666604736057888622988060748423942448059227845583193360912850241457536781200523858916144499902974249668807161769024739804742129459628428506868837089613668189011454126615856270933466353227127472817492200483518691066247905554856372321551017263599686209247480638690484103593119251529118027334473233861994965939750383463749445263866970557867629740944166909743596054501430368452901209773270020232934337791250542396617049719561803853026909165508248213351914940891759996322157280479339687905701892997661255550208478392159773346408398049962412208514306684226252911895618120210227287723387709693767181907661498591271470290040632900820195104890887872094217770670782594171971956375086770630184698967946639318794444809598841854704070529704809848225941093665289387495571182409238013822882916455209369493387318681340117535457712366995894799974714583056836612503286892832140493554411344385601292611982812017026005977116578426716724264249751628056884868001053329363579338300931953318796289677299420181486139835250151639257302360227755025556331336035206623760842156462598190404661285819983689516417100466087302238489557328443733013257103746262058739520349240402647595805848772030110871304084714553517975098604545247151914915012585272703742464509463585144291796273838944015184919529977021757313510214781345220553385456341842165033066020060682448376911732259774066145218178859400239504483750337207764918910704755051959079901785201658549598539542449694004860636644602240616142395317874886048417260416117074450981229825732736159417667274807585719645010684959447785692462813374542721647793449515983507141766293171516034009274308289555306607619632485114965191280540691015209302543687091970720541224187743759248497213842963511498184029975486900106925764583081982884943957053137424842866147254681382191485456051457719281309149866818734905693973734469353305219784476912987416304267735597983933481640738199471869069240393144472939182105641438299768454200249048375262829280945182504001452830464829680589342071525679536221188145603483793051796924271506453836217495671750252193810319697418964787575777847219488371694472140320609116069998306281334416569430863484363803688540068324930347115879187426227428073871146607976111145804098755342808427191367431493287075368111491624649224500187687375071304535565757005574809339245726763192039502188862999688723599047679588007971959697474020645516074710970262892147948078752312698404489409186489500245498981750393375359341403566355045311211147742628735586616348153673074389550636024946510729316583099041858645205314142229887546233352061686649183083559925163291773318547427574355356860129341255005649174796664661937094481690248697124452159853794552012241972383255779085930697128937331993053774486182780847583838169448719044397872645729138566313609889529551328813738397789474257356594319845417844099229315488032757571195200010706051236520154486703578033715639613044560932126808116470769714488250878451429967493226842915252146099678703400344573730677203958299449518986777936344882566280622141010429595869102360430107596564572711592289220381597991766928825933918863426030741397151333985976852895387168086503488149645396644144523811329733464211341194885187099837415088538102310811065034623617114065948170110216725205140307725046561393355062597745252623803204905157371530872208804758582172381288992468005194676275589198665856292465234829431040483500686026101331241841156979533132917899752606057765166481326345022521870616372859932090328218469286744351113719691746693728141187168435090722613225158661457082022800377373535399446914204570976263753289121951848960182658830836868369225535932969723462699909844273313116660560096950684493866395744400444088829714649027143094754812077041410600411789287051857621122142733188358902761443637291357656528059877970946983770355862140948017259717987724273787146204224133476824814746258298289037300971604163251524083602184230937874550405357611374653731784241237376288642588871108556048625178507799162687138549413754745503559413443735323613923203375270912418655499053803578269952002588057908005921107920962061322962813477615115517938398214175666775037509795762706765283851557370901019139122952787779039002597467212223771371001087277434061407980744956113373555348241461090765313434359177530661354706086536517087769738923716816543169948618595785917961615178803843667827710574774066334415111096955667380165962434789748308005898239345627514098050761401425373294976340277619845934538334942049196529868165677516973895544793389245827725157034875230108089373979263718767451330309510678702057529185580671542075916781593299036499921567513059834987604079063164687366361871378099220914028722219245384944876489248676699939637201520000301556824746020890499330923266959540458639571098910506622619616980434914813564379193150339252311264142444171589915148078465003183073676804572766718716272039442098664762677493724923188140522704636952361130156398813380188563667743069240560504180380216976598235496757943321599080748938807065072615105490731799908657657230511201629684796995098519840848516326063529418772441973901474554748359125097059360452401809935610307127067992933590536333233582847234451724400790832230726842513167496180681379719958726201057120795556422481887905470689419006688263265341296924189760465438159197208588077010063183523237725684235092537100387716026250388304627169942861838338441714054810074035251752992397708891231006165085516918818236666489112558722507583684019627159740136016380189730689275244473299582489745912216124812098348036948788590989223036268512172709334460419406865358989896516948914904731008434611272809664219038624973315711384810717145043584954891343483499351308421700181301614258096747628787634642751611902110112163361776947140628726329558196701493079195566681926075649499872474884437757643496885278303910440632967790538279667513187824455653187243550527842898127089043812992711131265226152734878130287797388659370737695729120920132584382729197675660949850000406755955989555575482936166438934944821827522615195458764061478031220064882865853282211897569039032396522550974265077977250604006159635127902055758733481900198349847978341331262493431990399314161390135049886698561461496924190271159372128429695668691083788452022151898667972765195605615764185325018737853815178920050928467974528026104003176470735539351631967232672434814069641771820871683367508123772586870638492323472304771975700119603776745959091548865493223391115931202566208822142418051987451283656106278704346856573278135581208618468739617266543694606474225322915310379455407035839431340985453992018670284342815300365343928062488204312897082953180485502593464356367936420629712877846208521985274714802947769210714134680953912841281526644046283705595079479323516043598045744684342052036530555762092514643701800978581818364940674650545468140106184852191645806256354322149417464868287863709884802875469751863301397785886163306220127314070479623932057564768799369394429795827877593451790021762184524905311535388340425968098801114304013225567392821416976500649152385228947124535444218711198926623769950274634752282588380508988171481156522857997403101875257762193120938896339828177840488133107677170127808500243153565515187533421841391511357611891299565092403437397810222708372036199162577881913343121904311487267392114318018261557989004810277399009922179208046022402433646056319850151554764433454796425455763368324944889993573622661245472231189374001396430132839861042541877945179180045295745812504206902812258101241604557144224058748856615351701715550753066907225448314159437563824494965008731656842846277181566947109827368976760225814580665076708889986219133425657197788998360226061888428727659896257278786190173362216043632036794549558103931190049864802938141451757610285168835172751396315445413623497724026465935899991772269592856423727595711174132569257830232430753388761962240761042516797246241095572246269113712597606942748862945755036715686526235340506609967170916237598300166534549121633914821450848322023202992343038578574541729185237416341216158874249962194530283352743426427744915617549276523813853829423009478960241078947396182623323161491984571681040929282319640820575343253247850496526726507547534248366852329183755610746487672593415665733475013542068600748723004581938499426936359419486106731349503513387497659880729791630665214252590834496823321975667732353154426663939031685289255229639668986201244332141248569049450879786542644854687607247885154898856342039097064628345652027059451322190059846231815727508705668777271999948195662739226397163741927853100917590532044168852353387541088270718088710521878325233018846974621234801026818907066222447661388168201664552459074646799932404044805371117689956085283458487905685200076628414480213658851689562021897271429469764049667451065871508099173227428367761534968224298186481927825735692836302057510939960074439091309613576131564800930636725319949396990486034085043355990411366116116148109122469499139965922471406579152677680802322130415158840875983705604284634242220850230433777489231055272068140762174454389824007117837794482651969194982576584566618050704368211266969455461522629816826107021942121619153993638642658595780047849167717907587284876401735641303404203692313542431435268070542931776010588433646963431010439991588054352803131294367410996141763882138229489382107427665752481455279030063926698918699796766394923257677102368112200345973251951039744074406358773648157878016695727799947373263917475322439292097442053700576579583309674052582276188754850153630952689828917828755062896734257059390280075603847886443620792419866180182032662342886292356669476197949825415633461519475252996484073991333934941678994980143564434821158390439335488290778343701957956655002252781381578545703597235611440976586902963993474396449366239699627603284073799941103946403050288865795461083643741317934455322354336963847102455724398752146302333853536486093801160691099857265052583258591679180591188300018921436892141718528391149913245448931191080618216692464489346418296122606735338300681162278853926526337106395723220443084556846765811419333274828937013993356676038518284012560694379060880032078034065729261558829414287182518219692552858041713554163443780547021116630611834402307074613714746298560561257760845232475193153027909724413374569127212137307090484364476974876416735319113948473417654240918660798109512701613217756989012248941297786880070008718311063995852445790227583143733309420024593382072847416718784471093377643207377368947733669143860311392673397500795273745722436557717382371885093711137802027711791507501840743499533916402959339283220287900709959685138068545622033968332851973505669200210217161098011733770445865270687168261397833490312262210606329722482080070914335919859518706908115420593056855123582270178200646470845848419382334247674873645949428604254110568986085396099539497931527905781244566092636408624118384768825211356726444345348126806135343810590810317437214984812465498089403604052096517542115307720648122964738077424263903147023412429745315276380497961778828167292864891341466504138528454617269262699810700306968988931156579601983760868914153936187468578611326153548268960081866665994302471589780202716950096647162876065749493244868082424492410565943563823353370621874415431625789801807930055242546799985291453547918657965497076407603702698101566037161822728700441523956887393693419385337389179636786124983207549823291344218202171653313349177514918083636061322516169852447255643302181489191903903335284287640153082955277885787005663156262991275034083247357238700137291927622757659473911438736574992112418309750340493718070628107218920912667391984481018435040636615048913907729653487439979226125312280888669116154709047486441983673022849604706903678595112484096909612789485666621096977167681094068823489369078774255623526608027706283863562579250581198445195942251992876467495079108691757230021787072309376569094031465071315031908378590528060648584032042026541492361575558826792891416139121256310793664237818598649508775574608765993071969861933119019081712085336181309165571423570885832834514769692485592632902443436219415426585573676960179182153196608639201254256570051865430435369018816023549374081704219606908244112056828888218289919332201287823764544461891010535134695317957396234825996381164566798520711687566621812444371623495449261890752762143645666534053721191668666479007902438117748288596431412648416121521645177812612970681396221927127949795718707672589943211900135475766024776272236448736955284949236223159540903182808714299106051213712518367744075904303584319776740143623928452445769530690902445463966739487763822016951426109227034989340609861778203744426501005786384059980381434119704252027540603483564703196501296907642993152026757364849405799254968089413713038581704933148872269648181987138544993020718766324320372625838219408291659658341693886927337676180217230104364255328443054835386694670105818843196992613667155917260787733390078530062087527765253211875773292836550009171875289193512504167266704874565280791432882859161088071646086186205410953730971885387698537264874760561407217613108219305891400122395687961226479013326146535496308965849371634934397705648051966940982904179201139832762390266422104337037548224809848070432539225752855401143645299698826176354811424677289121704247512621465795141885965181287399326832811320385783417406613632529460445875661203912829303867791266037678718603447564977079184807386867574820343226347093882695902352000605010934815868607338104627652646308245969328281854803830911597522278440111378577049038405894176360683582265028543433097523261911916550895239103071336253088754961667265641827134897337914190041643423157741209839200108278404703708546560555042004546132173521017652918974708115355930911619339461010585314019258128368281492795673368433234640554906461387323389886308317342361841745751949501462951800504522022929392155128707665962265388034850814457407658634684170569902305832663774561898458491310059013437715908147696759211082427857158960381993696763569118373517798822239244748886224473471602298235613420419116667782946471133485431100035573082867549746750301628815947637061893732113349082594601473300542732698902605982895085661823848363024819126359516680380337482157950893229567775779911997268035890404612393579501383533799063091218016565967701814531862232806505242275457789677212303482620040149427977951601848064898428853160883784036313925940397248669661022525978658150768658300813129920185164959276354610763523989763805169115961753751801448395793744596454576755301850294420620264787267895856295160305032586131789573918502689564660956371566110873483349414946493337680167153821515459770451230247259799185895158997599352890106547125772007862452023191518175607571710223411212838362861612437000992321162288667878725471492909592850950434106681462395815496428171262325413630880354949641240249737231398622090603629863150629086152819474625597384087870368523456132618606973162547294841268452076026841695168268119513618514104600954849509823006786445988489039178500805433358309355039551597435371091540010596824704247996725914975761042098284740102021388210564273932247182528213482698854121496837220709556339177094670893598096789667383928003473872352689167514130742008829383373593218642672969633237827707515164733178416941518572135474271540575989146728251032630160990934832846220280253888175939310053686086232945556696253109026512322983456540732749837450272881954864837466875534146105843184961586472988649382400093000232537596152035253247630840219897797758210315720571797037609017582722698659411694600630127527424472075372823319412447891359461403842164253482008080513585294568651178470687902421872026657877550280897263350973038389471792804489721127740543359753347632662956248716959539185548715870711714842429192513165658868063629614808205475394682794705804244722539923635997033974742815351388770165880547241334407657040635279736291834012707033389976153877604300716551550277059482468302063749557501592876133944918189256714020929765840185222176817696741012240396402699603565122068671178007153460519297914500774847560676711853891007604414755324929136892105674415096690095629750330934388108935492127946899216038768576758322143898620654216483617642073296722614840959730490108295204407572525273065356106781532981653397548649293258670055632228078610212256830598556912134430018747419054243730317370778778360048773779102635818885500112449131177550500191421801969794676148536626516455325029180485941372203882645835887795335439073747398547675012658620387909312733436706244964191823875999748780956533192657521054173064022835688448073942632953921558309712007815812175436387365745382821375689475186118183959045767671589251869735075539061733767739540141876638828096196892363927259200357152210021782300170934593531752303662103093529384877881558900391652675575730621257462887701736037709009298157835123608834381898759032273077912702643171294980385848549216262834542249060111187011156224607073212017719355750095756640874113083986449944783909174872904870014156165432482134068232185033361665046416350235068994246742338837500538738623066062502263299421052182611251623732970019367319943423779656700505061426933765035677050738222539422829700057491865607664065200798195656189741201160071434413567568947194561127185055359533558329670510150254649638327462221031335454356647376105918725507100854045119192759770524535414402268000713497581742756440806056701062440907205407423370118225155696887788672920201491388544490345869668434833697986727995099512896057330675435366324502704771857458324141608020884644823950133730833320792889132539309365981760542703938404909543982741040057793061070455668026452021038726565550818870738266718401340629720389882575597520584595622267466670204534551763293352453702770056193759928140369101924643131714616719816609163156212672720502731973072793593495826861513274612797173139620307578064471360477839622218078751572609553452250104365877134851956218730117883344237015328554015356560620462407588404642603345597239180362002120588409301852583742884823782106881965322370714700191993387343036120269087199003938674378446489727373755476729092410302589524728354991356446062475853887771885691889460929774967414013947114433144504799202639285728691198453905345920163534784235863788103630962510090660891465960116068151991597441363418116952539351312916981478115130730439774966246354831406944780620558056421649436836385271110429102907159708007614775743033016599389541441128915648155316878110613877982503768814300641332448657918700454272652329625729665278013556751345977101583892788988398567224596042427763358440271143717230574721247355450551314868189460887484135211412760914192242853019528337472017866525199428727683840543274495304973330123518075617370470414408139405718844991305200744394855209500933910196134935472166336811187622482513303418583348980920675797858828974842238457370605114697043236212763556297436103104291913988001208945774505729496600392293939881641956372136465153085499327749398484980767045721286222998641652270125710124073984444744609214999436675859135003946010917344324714117677503087478851241844287072883750785312797037619461698841379148460297563274516970627185152222956833328984441119012807104319750037737018853776954431364775525395546037835497372700290174520478813961278904007209117430896082468816509020471510773067848659975622223284601704975644079878366716040417236227528483358991595159298658122034636392397026918374407186196660676633564784798559824634702664713403561957781632621276792188969368205420754413187992227563084662424256858638453372845171449125758356314333206835000038177121443709277225174926069521980161324843784840334753414857504302080169823566002725004571667197439145925852068323144467179674315390045351931016987355760273207867376393437636056747900684850010323665576522195892039254492565046831704067052020634254330997385698923730207066191447177061232185779348042077642716550710089119480778580130690628208579185063357863149203357681574763374767602309664630505122362137235479684880883967247417111433873278496303420258946779081350337089895782034978305970677797561874628460927828074005869025466094859842113003766933624071389676985554542726914410152130953854249741455670088399764822924601107442858431859031234612396268582434326825130622567099750485481103354542455246752344204186048100799924313194608554143188084135311938798015012525868272840488339164953629924254584875416451328376560772059040579090858980480889360726013765329407028919372028788368126018327423267635732713248420485104395755957835510452112946242164107742270501424607827595756395681723476776278367316101778964714883244493907744081785781494228552115955191767550560179541058665335995765395947837834012971742825003712465298891523423895544198394508555687694503057924690305263802400234514374942844854006906366556898821074770729961145850400386581856758639147400224862847965102319429408037066983392377713311040364177777166489266326193949466154759294555537829913388158191389097963410853742548988792721643881547407066659728081275395419192089488924629588979028126723574606454259556389780768348315274759383385230724849883913737099061495479038312538178210574699593793857219047993477262831320271746476356375849370856023820824024450120831996970848113836528913866057156530239634779088762154770704070699340786188726314171975974681639869138213062182369063088205446866860189352024432644297938228023533139380512316103196399161567808967869830573623545462164154661552977886938741355411528915693878659306601491506610676465646932551438904377242879451154262925610094325483151024838726712069397107647534592611995042373991192069310418501816058780676349566820825787750732700812509513422995137564711624317699974110509083639973258449689007826341227082661494045848781178512928484209766489357868256964286601527479376516373995564282448631125882944048937752128563418271717678652167381281922164758346812325563318682828614670431090613948295213652472836325851068306401008763393337053684018304858459028442374609434377741063560215996442383914636530942822714410802714154765619618262284280995291141032713514679609618787247542340335823203732685061472881467705739058797621724787360819284232833299707713716763445723728270860991024043720426638114204394208904864689647028828871088128387278472467749686003913890992183030187954413741459478692390070224924716983982527148723808804493780361587660601869478611422384106088731450542287944516907301492834353662249345970658784006291223915856273697708696183761424232493597546764390096102284133820355269114547571395419536689096017175878583848537019706465477557466623460591420108360774103590442230053910885322987137960327140929556898621683397733440120365741957238765529685403038410951264542614370415364022676682344959794794483397086733465505686207813177217675015286160189407597780282026718728498263113029299730984934748510774023999869226907137568826695847549590573243902079105368436569224548507515830936824030484704565305686461006252240468405801030808324509606564073797085619603170222739885103091456194277791893889615902613920962763363956867402257561637157541025851384237748502691863823189095137756481797307739949262053969823116232612711449485533256050430346250958949090071631672625624242330331487080725294159039981828985184201840704474022705010435757115085489220987024590297059276457064285824310581791841574229137459846726209742686460109478496880404644253606117581170419681125075601831920176453633117407708076647686970276740427690122057349439001503489067182170869886149967250023492818895954786752934638044150116049047073443990575503829355052868712277952971170875180266334342973219827342556668190084232869618569876354513264497554775872482582717607344625550786464033111759034676972304599275691771570329327592197897931713249859232261171093894851617229566714791137486033851555868917987483130359316886310352098902874097862495686496226652336887780898462057743396655021511317450179790403368538215258109666631006563504963225097817526758233984807260161443021306637590650154861967296225637165638844603157704107923457093042523971582573182470067312243270009528932726511351486995938322062622712022860005055062317631750550964462312807006566810029211622879999864744326090983675011549067022833717481073531181604048919784195497600968402506209487749524211074809723943058791193785099648815146887132768926143204700810007634961183184468038619557020123150486050025667656587879863039828345919791538547438791823946237027089668891584940876788228491925509883948954262638981777934465364825166459527804384020184193813610903893232752455829798807533446251863520015393766013897054690878048829856122742194370859326637964960687465906450759641210688065144200675728795497644740052827774420034968633680410611770045023624590063555053272303720129705643533942006087192878482426919904063342122669769288505905421378212290965186284317946647651596460468707751949300662490078540251304870711924354717903746860891505076951560511357705520915896501594271029972059918359136241214777292185598153150460815998249743649079618572400366396518120017897282911434210594949278668325507466741306247788774986091780230477115594299368992796870441828417787812128657806102417001684045355728349484317068134372023172013563499312056976300633770853200691069875479085774708096717575850977224915064368613273180085102070823108951579898131959023957465948426266339763153576528889769218554377919335645247241576973127676578846510087751536799140048103383188518835618271344029401813775898540068030698466171202666429384118765299609429101950218457475836810559663888168137191465071119263739416713235614280841256938039589702016695525253131269697835264893036479106082324068544805766144156021090126332828921300659070976752395452998683597356038989669082956268157760518629675726150181534245641679155789771623719389906711023054350231453980606475429887547445737386917414139302258367258759905461983334514211470643073607406456602910575917928602469969207587215891774337497795701317568149037649197852471783601237485308673739208612672984979997316273904861267378350559934079112207383576578854250306330647795499008626696807777079600793496901826353810931539806507990603306460079511159457962097309938510122922916224126158214727731262556939810626576344589188779708771846018018573465319029180167046677002033211057000335956577480347940109111029827539054635888759142068164025350568717873251754155249269620584281024476091795398292987728927297879121141080606064577459657357461878902697328381769867194967857667605121725196830055665296323092510817470346945681735860302205182806549767060555066498725436418583457029360053041503715006111022600399741465734413038204823152403247791799185625134800579687198004183202981721493270004515892428803334076734557903162306192160899230826410565479723860150296882418997025563524156912540667442008102354039170710298811924204301592858309506769352810818821390131063441868498739443776902297121188927846876104905600200669874597666658727356273168317848339137698719222057746241717397043916479115408102807222198492833187090715829409189230385467883195238443725275868063515382992057138258456479978538433823104111267915883516909410356139291679246889908660699531557375079460224892574742970320374389876519206429785592249180522193158805187219620425654808043042953690840779815626390190766313955824022608936402365905575523311108342573510505072051277141402193694427221772413819045765505596754242284006372679738520884710415987992973604891791138540233909927963598739062297867553240605246840689293415022928021882982536658587370277555433764018653954597781139352646279074634814548421139156506780846991669838592197188473068930452541588435774320993138888449990013395325731139729115190523443327544922147026025742977473910327020151399810341758830055909211031385030100337884915698649612500347836213330278544953150685738651781123006559294370158648541251591504565902316815777452634933193965227287779631385171184881008996684766742424294444195215138232267304823593499484944766877938549194404554570032586117923362331530545039256480114257392206625038939212195037466390599255719886321740569975246537621942092655341424286785002808196649778414132281972750093951620776840450531981546490421220372924566631319856912652787788347591906248410929293358364528784977384149135797475720187750976288985380604089377803369389720702625000316309473059645440447309195850715468401350939368098414516521491768856617343866291666596983108575397395467791529020627760351715666030746491828693284523200737093308190056921895475291852344416852684022440946468706481659772470270096351001847865986507058976209145906068676690027735959482746508467049461580543180050384653980829632800927921897556630998883558187246593748343839104409867426627664795148195172057314226590737584600731132512452344610784458725167817909995005252832893818265829192684539578538434766177194298654458846583882902512908504381211919298115621536910357249553081389196355638256537855700359447780610634855909936969600330747496238796145626236385852279985245672443068867419412169426466689011176165954932660250728052713730540065977144949543053480350419297590281211477808159122686781309990213702180711334448059874190110609727118082384471019906731112203404768224868535133457506950592672035659019367138450928667211770878801609873094910824797073347713770441331070692859262760661877189440242821828709776136422468909477511320106850535673514095015990497663028874720407816539618326384246828193662589138235766096696945861743248532401403677521122677424596216688495691782711084728543546636624507022979130906860599354849671858297563593535787371928678837956308096818862918260821060654339124448109655700961021616750092892733749748352868990425760946966315982782998510849795627036631831579190086289592714055068663231213318319080862016931178390833766364319655529172346477136681986339338532863015736758757063493814326496835422341805709271606575786807305562405597076111516568846706122840370525240079742291764431653319932402051681896790409418996497784991056378752473449708584797460567896957254421030646021572211870034821581971804410264932094689062085790821784201084014811874089021387057237206340221941808328381305148693771058885328654717853121229341457319873195292136345912166849579677409041706250222820098905442319784212970673267775750891279564560154641444938500636031161768277707425877192132852253369130361866883914695538473959058750503772637661616414421362427764073235720250775492783374339388325404710627916577212768590861921692446186136524880644242640761271858766734967442655913305116715915766127771482104015439547416543704776068533541628168424564508925859869285704318223583236991669879371864446733388642485654180799179406588179125334570246231249981536147806491551024888379822820176817136311270434701769524414830395414354408359845859313063315863221901034589009586126770132048720026890766676196492408557426916691400910185291994994675134849088447928300749031963852479723747425470808744308835056946943336465093663834242376874216333552108867243364250198165423944745915655354882524395652991911405416767846066541123748141680295823205955840466652238137336814401558972689965548650181038437996118280142831084203890329489545569707883464902199271938890320034862402569118443938062555699346424565034813803259641709334743355326158199748572349484115557697535232454079964638875359026335918511483843229008651190013892022261664041004135277718115391318593369565685488002504218358858240288027116005763137880872071308075415281690125643205212667846129826814876287802566398955323901282301663863316937368436957098215043709606951462006705793465217353250750585032058921755220969251801958436706240312784159998945860497062472947795846450702642362871259658858721035618288264222641201624003889121535930907229562289991553267573992925099613923823633149704786201685455923172607287506779455238859379699609176605724236183778017890222944919602487059301194506438294562768731622271239058115789478388187302338956869599584284019907856508427981235090865276681352264004929081254354899145602479354486252050276437062377337421644071126709534737198934185247357003137287980418580791381989222810919741311754680755215731550049068981330414724286492606431104059427093899288925059174068372772460509288911438511733372722681214640941993164371195828459266230115606971328483025789734120200205282599284706791777112427026174035692189774336759744234507607342575848605686170709588625367011871888306274606723348004468932809124719201957800741033588173201969273978861950830408524164304561497997335295727307919163443315218155299008706805210374680167172083898528278737582781520238752998370674019508386554036263144218115293697437736427906350495667831258812359393955145669180061751227745652308747005221828081565684025608354529568854128840348561739944901894680879973567885937175816783438677086097986900595327863621142588418513222897704347599596179030812154186870987550702238680913877716946665455569256986424603685812203621156142210832010779194264265142536752933334420967270210527262136466452173676749966745178277886618307624748550674382769331734811576504837316203290961041979274087468964780231027497841538410915290033403544204386512257037426853617604375726528415598432932287565790846935857391926532284888876762602149119894276969198958145282575429835143411755506900990987864272196337052618726366969958133256620169554095274782970693171196726928468196903953549622971335899320455427787397521686342291507170326141724429768944447754678950245913504397169522877673454904388285640152583572279797051062208695998124456517092884806507254759068331906412688547985879682303799290505510223686001671303264031552530660343429302501151592985596043231591299136135174187306576422606867867100383380537198347953372143828658556069921382489417723414262653978680678643361689674670030700137197596759377132767550405555578986457666245784794620469253709672572780713058539337541024200592768018665543536863490828134564345396312325297320778493121046688628530369780377441267347679669867998378640678406641310427568963365846036710560268972275971424713756049317132528348611037231062134222209207849417239948850451896501556438397347669109949405101720084310212382008588473986974529915816550747288417356526741566423649204779158769482197579836301486699339965469408738531614426119243589424897953821994424757188202332248006842326859900263334146671828310176706805356903880043403131087585680342090167710355430208775943114756686225543346798958897461493616404599580234099991530924899393706877987680024748068219939232556046387608929779567159047773812036712549746701029035834710284119592153324263281290626307565694444663019013449548722693247597927733326844799850952374401728797362113630548093939451798953522864575948028459851193362542656669073712672616455611446477468510862864287096255136149056504991199360743812122334711386386614380182070401516549433115084324622838563289561262878067273195566035466237552472060539005902689440938431868834684988950183942804234850902044390648761189142959664138983467583061376575111864380122449849294051622879139071025101041871304963983488346101534173646311607662366913738956793564781534850201863071160586406015029607815970081848526840154325495323879178854188742928887819191023868628702069261444891799455526168139303811311224904766283803782254246129747734634915076083798980271118092771810236344568285351554772162011273340310434298655785575258236577787466399473299568564217906752932509053732356746895293922017964353678886779444912284993812613621402329196337169737333650639137138748456466995102702596801864080478268019936250350683129861647716889497911227879388974872535537489018919733128706342085782728898599772345328919253035591786993381673943679599590698826488870063962102394886435895946838686408040123256456442354751300823684361415127197117095871984917416222365580000025048502310843416758584267037834392459251829000726782258796356970526722804884622152401811209842980165913138218575946142178164644730610242568610542082581034328866859646769995864941160522445173827246640118928890782448015516616241836757000325078508616897521815908234409594109767824308983491768427429073950786324489177520913015447960667328120711113672160333647733779328661037345980050430302249663209519261118241147616206225825812554447357465808229566261590541956187069011209243720133271563077929211677228143279563896894976696047887934566049109564474558789908006862278545931352973064878423211007823671211299931955881893748808033109140818022777304264957674979449786967827365849415144998517278384629912343008885893325338443673082803823515991114962358050161069075323812088615836787268054444448693914760141135298909819474281264185322552629428511079452965416970354613792418008160449475171339069010891532982676276987028231723507760870140833333340504067708635104408125136891246092972412612985000493846801101475828296701752143030472408133914322623348624090762939629045201933039811021113372783513343748610256211396128785536506632587052269505310750199322369001860871051729966494375912676717234836090328500296281395306636618139946645230356685993114316179065707524400302195017286386996429890330244391534082097075033285929286266581256207548778196402910934077185578772780795514087131392160635260075111730427209906678742434009022732314883205355625073243113654008558100423418198097123984809054757693986764934296688242646154055234310068689014290174190843160426036900040616982842916921571511705391573062338191106822351878442482786735778708060873731566137605091387768637130654218733212747660547167555134145342384045952744816193644740214507521387436267314168194658261471151716610168396261576885438617827547565163699495987590523880262841781860178030853122837540385335997374091031138862912018349992344951065619082320804195701731024829095136767088157763581940462822992625054974226306509964733865883573452287422640862479605124675300047325792908103339893480456236040773709925918293943940520411559470803667760991824985767130521756103516006324160891307880151686011627708050952295893318325097565226283157841891776005117093619677426543761388188910433234618605430025646998696474370798344408102069244736129943260548131159555637686256517327654700331584258335926558937080939978613247304433360081244111603444674093257358634492487101789647392634201184902556285350651591192088126323878635999086036419644934230122133618817065999142360726994630844700618288986526369687831443659060150617294596377784990111726915352163429015096257457665019106656637168332358049534673749127354681102281262475724708252209093407935852937181834311942833514249277268866326321482251572328396508841695355459117359457221991722535520758967118545443628875109088504521172116943008203922858653213053112711656770288980733897589632550509221877257404591608504571182147014979460464499012122804907461597284719506693724535051067712837119040589659427745577414179854484912216200093916751976834688774903908982139301725477054928706601952986322072603025902863301202395743029287687014611846916299605316958561611393165093486043498903779175082608981637363810622407176148835356346051277106052636291091941389985550185406753549303095273754950397637976208234074572071049284697496079823443526746609335880588164660199399466632696603865417098950948078918658492518483537555035901531137132064324385221695321179380188709908157222416457389301582575398807524075143200243302796050254992088498104408077004752138769241397196546293427833474683194463636729911012669932967875330961065380077145585123717546267989748658200308552056304528186246809308887160468653695431695817215591032260094573861061818401768961206671950864445028722554790358700541267176303220356127498905962434313804453678300609471757533504069657602294986136486258484127621069350606379761612876399962967765337501862453855692024770563528509725051034519892851596765628672065056466829517560686286384341147716754751728722984901594765665534702329006107101688096334390993723391891357566034847575515753852292302221746101898843882182614798549102764637458477226208162926959738540754205274806696984011781289166665969137178320270007940382567934988225387786476058195538824431688963705946052930424619736514082383883153463658252714312577312621351666488517805494474226990315623534343217900343825778250100435877554151671473006184590991457873549621586656969402392077656582357259867666274003290122989960377464913907830769392504687164049552983038443987443802875929512912845110172998937041043721154586862853514237236208403078908601968504285796945949175624327827728534387865466973143049175917361253807111652853898698949689274822049100540768781921038160854325186397576710580066149645112929434036836630323041748736207358220087411322190609231777303642995685308668520883936184036432329023468680251576637958379472199878190788139003427359861841737145703414487935734984201360045278260694424575277238092164283030278298730429753226284938727848628647419352142361179514919193368766539909479213541140584605544520058189776987663603817620516662524279756303905994756572384595596831025611123458204676009346697781705012336155693999587653849281297541502893890553654486190853434690831966810367088199146256766149111782984549660946028058073198211289047635847279339553317529158760400710001932013002136355468510184394024797384135322675697533761516137558786668057944310905881836624407602381213276637685673919875294906840291251180591123929989075038520775989638949833003800446058247683114187761675755813090973716492507284490668027325020864534442163051683962460285271261183457703430262840577650219262406486662590279160500216527466554468744803985437905408872957724284429500982007878357502397829024854596551937806170443784028862566473201564223153348563199638357286229605025589421712070805097159295319893035599640950157864043848291022236028581938437651540371063762853558482503962479401895679482775962205773011769930749596950637232798169544331256346823898203246481909426525336707462680592904968814583145866573394327219102200467082106811951375483107160925819529610583915344663781675758666780661235166123813017888233722151012175694482574153681892031280674672530335185287820330863472492872485417455156437641268813567856856022401207034650336915590710148726062511660354198264169425358240899638082396902606524881018417200985549218692402579650284214615711800300131263538898872430726635181858253319804058121171539752311360290499796142244839541740947848421086002857730671968953724867591526202780653290058734294081844791030254018661837918162955883397978919996310987123356750774264610676959330110994073757011073103684305492647856692104545435846070796723961119980469242531231914675435197523877473798882292592969260957553357212426105545804686085109129846987325721612706058586297846053012141160902312506515554763898410777822945176141541791320166230053899206995802680940914569869304087401447762817490817865335188373282388531338858985263401784936000588608703011778842278328013118875188614146919975701870515819460151229118696639416524482361973572945101579926789130286326428167597953111231168217553229472864635404434233670670627067815560256768169680290483352423794410886855458086735741239996771552026070609465746255310733449534362952694111078392566912495907095161654301347932281766490364938533321582371162913499677892321732030475593416281837489190988182697730119940352813093050496312997435280704804956328921850333892784371340145778010791286572947596302611417543407339543266046499638972801908656272101328520547906560118136063578851079081898161582061861105605141732489554687064806660336951702837387349824492395193157661950855952897149764589591939353263983771503277891727359955656248198301836470498893908285434367939375970540732751218905206128692943721892639588166128932373529146376053265121583515441059458320978876339702027476993555068694646486866328764811778216564963514402794413289804509674288373300202965793944703352703640080376403006121277263619588399183241662105941096551662363087468390592644572729307622661768498560080932315082893018690873117290563758585234783078216201257978959921546801920040095372764891206357663413815720496000299661313411885586570785665906055409251278460354811450463938066500153912980664090677200705154769180509928146970663710716022218605876284965038393774723588583802856070740320179246082929852851318924479762929536029852959967174170985830411521312961855387030666063125467632029213408595773683538267217555399383516232717314928498410640563573309924023226158675170569412230768117219167560674920142037225001542070877856302060057946074609097678851113818452240020444757204348453063290244293459304572424458411722834944191537351618446115274316170029803480899912116125086877372160475330578665454292234281319233809761416157820515003232093780900701727302496306727954899984464570652246382529862845860887736463578570498949196335031658709355234547865283455977719453267909040542396094845209256492175438513395255886475721594348258446308102894609730559542340756904436824098560845952168586178827216704042462509357912954854728687039946508062915946882735229444639649545649508030160302436402995597987526353368502962921431308448494639160262021917525721594494702260549912424976052586559471733700389087330805488764861492121698858080987681900267669873706330819143089200332747238930832564269348501414424778201170974013262933361985845086699212807926764930225206327641885917101273967783260381050710385870281191691680942145137981347453533932489309750616852850437722984982756464848951987786994158219523822360461692182780227259536624155272495450266591193214441029443873563598205754990152506709400757273060498803664597830643612263510388248795920308395839933666448410908943346812891908210165506309632352986724516704661278993057789886921327099792594755372527775589223683007657760406987737337309039283708627010731127400140801063145107988101563291487307152329344206508994299338823221078260852094092590716667890589664383200204952518269824544475308309388251489971222836904259892650629571414013820973073000497290106219968323444255682892477487655369453061748606726559944962880964413281098598272408861001132963024659327248771961868748914350151009063680822451310841215114334299492469925144958624905006509395799477823276208923063440281388507668348482789783035028173732465425926198613400190438589009996892955768954087075544157763126903773575700891156893647357759176118349841604486554840386646394206045851027302194786277251425464602793080992253470415104717574924225396190667272297199047397443396923778950364353754624182994988787052520730900276987959554665544201077596413382107121634964017263871649404783270753553134827850629390886559190911507918917903959371188766741657981768400011008227353092388525939933177476238795983178812074170452269723686514647810730827793397649921430055249227140730487255304885711686737612337285204195847665669149042956541289399618559284089629407627422565813790318800252913452560357727578596383101502135812254410536494392530010858778724413521254301541728187019832543125101299855498839605470712906797406576023353239856274052293009350892731519145075279459627145916980464523006594517386141743422516320632720557395016997859788003491764653314161940837248115887400255991813187216502747260000327809795643198982537254986972570986226606232342277125854821599823019830428619939218971929174574104103487545960062209374168316425892044006546605792946584902769625011868874259574527200225366855729245478821885866190476262316505268317514095298584075248810983839946718087996870834094353607647409460115667803625985686826672156438820771294319251420920418481235631806438571741534793703888929636979041824500436335008349589946461982061940676146706200278279938331125163638252205396499693778712689980949230633936153060835985431553853814369372054872794837228880356461026538881282741876195849576957993915995075119771768215202878500167252856510905854972213583256646677822446284914233034327105638397399398114571624710308300851013755839721361684861540448291013700449463681275838240614941707714794616744569912377385984371549151524121416391718201334680489991350079917085371589281896332954934922512491465018769838618236594682187895423217058585149996929528914910908653134327115873355756493828786027503705708633893713397116597305627139605664154828994608736028860993967865986242193756428907999793342047652017553701811536724506903563049324074603851566286986849022157395744181804378071740437069464572867188732260832696822867621122478776924478612855823269646758965026398087473537766516711875108973254950068279645243475306666767402518719037133577562551358904998900286661176227103858683310131581874783686176419122600042037154310142837057490221505019672831272429397158399194792705802949314964133995184827482271173903614192317375700516633685092951355393914902666803867381388571383250881056348587691852188316780671224725289366136752614306696574587245689459024731660510409418680489413899569956853522927846177943773416949389440552882876292927549962484271260174188336544423204634186469045467006953604467057884700234102067299466106978183498477076921533287321944111772773652171129042572032439329072276208080677490293057677365028291714322772961914496638416199854175441551564322492146550028585122013895363783418317489073554939622210986844612214264516416557390923231224021075340073812752846732649780242191777149225081593372951661128907616190741785775534292558528710989670242280539632348202914743749810848345376556884022004536848042548679224658548232209896895724964591868020746157934497732772303778310771746125524487866470581711987913984363301777028121669554328247660831166980213355547009677969793039899543004334301844685456077141451054917760270432020919281145591125692749038732656260086285315126710911667768999704023478859572882044118108761403123450497971528667223645608433056785880601403588753178677551202054925389388988859345740201617346271559403090617195759122008918968176091975643599555523065458409422539690231692252221012299259436604200532299497728936445312167708775778576344939445911280454767106193618749425626938919831989543707877163195789623207059056742228720304135303093452760062899508021100812742188614335169668758761099471780840630335648968630479764780151824403270652192416125503449468934183417113627627401357555187450407862914817842930341983741179711477856078382106933966789194262260742367636144105671860645480781607210152957728105370333827718116896816982359711728269879569173340632245727095604497932617763881759401396209735481216830808176160041202768777011035643019553388795717676359753588365437994142052503791829931597835122249885624203041794332874078404756327280244106664703499109060846399113561745222683780103694462933203928789857100336988954421682551333922340367320209594567062971031689867076255172023603132259869616637238829840434374344326100876956932201777854614901431270574433284803229951142545218346511721258177725027221699186061429955307854043508569042506765238740636438651208149651810421147486310798084246670910519047587145004190439414625170128991978610552303292188470173694131954449890943971567597674468863397102419306986010499315526802750080567424385863697838432658189937726685726752705188695758135556447324902069201076423397648469372690517847232052674767637918000372584574778882810674768689807412921178550240897588481436976769728623404744462445928444859369451395797527098242352735975529251890456727507752992851591145101800275146979649309244203171372035873427798257296407124287802399560932336605024368477993345378978800290866399238424176773743330898813955126305868106927323894592573617688666481164114810132062884553993659625007643660640796920995754158223227105253616303536187930554759636147676424289491641749020571668410312630541161001349805495682016343365412525120514838949341681419965385552779087960572576105672827880217842063608935411412106288598648186371646839271984897276846429304377589777476002054362408591046450460314976146495716703079747206261124567598654791937568338065504256532937033259577902877002724104790854944359868313294194667353826189197112200670584502901736476718485773072565993587194061616684700235785498801419641934778865935731331288186738556591919278654829599284631848443402740727557283633358642975190515906666495196333726195086797527033986652943773400406894926651162265189895860982557774057461442443915985719145535355942245887596555270681172591748540678443770280260212045678486182292524342804547334631493809699295871789437424743978646129920778016053313132547303998519020733065218860961615615985839383255119339900457721576744308937739507186880931800977449343262099846587748881781653185965379250532304347438457686707917375730486510478691835330760500422417110056627509723436529795640440469877424990441111918436559360520025455801497066053870073768474540859547263221257634948982587459195022829685871758362335384355266978662074268600728837816112709269282263207752660938997781428971500025929629919308194900118105201731179437920009244843087111774644576625156974489642125893653037677132334022269404145552730043681147037186470432948130086187925936742031743215224181936407369624402681349204751587874407880238288467350342473969252529456257031985812681492158282452695276005348166324848399460128324169911317672806002684373427950238371282908676666776076265367373473896876091962780471433823163658868939648384982271899710976424357834616907076262506644963559590808671999485632617355128853732221994280568798692266415056203521963953477736729272193297118568953965415701776157609599688360505066625773987196541078570941890234575629390268676491379989783466805053284811097140112734123216361321243964172570531184275531640320709355974120646438630451638373996517022882517388961046530411016724597356643926514451451293484091813908864754732245051396444959641059795546785923534288796094858003761513947615818948294908890742048847801381050417686704971245527528236033347994245172363581927173248594738232755074041074678072088568999122369551326748780356018318225700401024891474234378938728049324225966352492421968314388680328603697344860411881877156505890477458583504741668430356002475478911062258257769515376233822341140393566843944821275223343687616156211633435071482945088281083296324643690538489503908346552316498753897606325323622895371632344762916230790405794039608818956204399512581064733379474728794349369112755870732110050904486050495751958618568675394472648326064712442735265179125467553024022727054609164108021304996477628900638795823103480926461956634530803918387903550344890375825406284715973133349960868915917094366082839503362083566749487829553779443904659706707560262345801930797122746037044933846331338846544049745783158466946883448629480394891078328303819260087949980428752191047810904791917824055070101310239213336629312831073349175366472766638643354978007927092524576108515463200877645047762186869607769639873538639110166302160663266826972114539649232747632519061681037930290163926084656591242433839132591226111485622963553895340046080577653509924689642341669693302132478213906722488669197446111438607237654920199866810448175833604614086975745407902688300590933156561527783916544450991658444552308334824187852124745675501186185320783598413161803017275279810896810763611670538153700158231907848783901017403779201812716512268396272549053014845881941161022755921231764495680857266709705552399405586721398589574646770075319136607965965173455969434743267422420930413490939992940708336191769439723011584811433786914913503767092652557504896519784666893752050093945260582418901694996336059706459450562303309099059273052285808235684443313939396085034810357890684394459544333311183568615488365157544382279436991528900715767243636247518317549272102313003425746336014787796435787419152266865427510568442569386220257480634397422068227879940790513689476068770380079881001357652617483340241642423427327794123593820051053761282732141915009866262930581559162864406474390744137444633684724451571164671396001731397730021448707359816540822755178335266046206173077752425302079676608481671468542034021073899953774944599529633883773829993209889589371169901319772643601483542017985417562809395052488048559268646217928569194360904488437448512984369604194760482639133733156705552944789937909067784897548826298308386671783515085492070306609862111362384072903532904334292216484948355942111552995793090639731962503134891514943202986650364573347316974644401754444091040519784850720650337518027556173467798914959531504797365019404221527128401252412431631062667185450052600038630659311566259487246568856481631629761608065794352809347096705980694655874448457356750628041780284495833442731931881379070321487704823772939270524133886830185892678136541833064851169365630773781714756074778176314610332832062569915999980050035947619798539974566608288127624070150016811347355047457600258758326901250550364906983331575478245596643429429646436314778055871999084436701832723629176027191482246819102085479226051169986682870644993588682704321179139740434895524375214972195079867957078956301978720040632829006278163279473513762971751172732298319679967166706094359720152062752837097585298119440250930665741216109608481472777459297230200694942952661105070572708642809450918015063471051840320935666793648846103869927638584912947043487024014698298516003458073245465406398131251150111669942800562980873054102523106175681147518425743136859125234127986275336181675760979969252173837506325896286602324122778975388336189107712037306033312554524767374375337869451578577027067570230504357683051739042519258654562825528367900556636609655410107649438183012591056272158563683356963390764356972811634400766730780841226158207923688274061896996385619238598022093453037294102283635701250805495615896975825387933533347566455608720908769033345656205129133812264079611847433388523561099347616559168068515612626719609944414313387567349347826370804872042923708264785428833990753472591761930471352540567329996531613162995810751129013954132514081106036271048566910537572497105216757506165764023858741687680342918098697455376465040109654167297007641728456558330365096955661006858389315021676450797261622561754868625317970084535255312866370330996344085925662479910767081052216177424966449829787875791672394815803751035151955173637607060181580443327291006890316016726686183351790403330776462885367990530896095734401689826785006129403837136918332395680914526342744494404968559680814111610189042508280239468621344481826521206909017812609187118792645685703962302663541066545180264288797287251491595817991598814885153015299897439744381845602176124933466184868169303679694589653932222855744293989535601349632347675695537791910440080421668891889118797647798316622051121641981261618567871131546970098973843415239893770399560456858482864209758387740500273232285251777359558179651108263083879818010183278209242079984870203657942747650843389245243672088122429164226534511455591781361956936044865726770269987775782196641629956301092087645951215880348624893584975735773895116876329165616960903353981024065626640410046485149151089518528813073331074782790869875713000677088873999063837671529221295995833255554339628796335958543754511590716356633472718693215045592783082863427324317464286187597046071504275562201464775068328828484779367743216790303762586223086614709492410257765337109172564847977406104387651449199396512275623806492429344351454939884877345579262160063425375364386928560829549196382221078463288014981757465894162860663377837719520475973795035185837150197627359289562541951203182038888000341715649222606775942710931663478083469843060476890663352870369942590912014552808062901792924625670890362467065091034008480693339838156104872656402926658804526618445440255361589129590499675025683512232179764373500819766797240549444458317554614169818141237538454712448175052915721052484372442118044297453922578410457928228953783297845449641706839679733269804524001181209393617035210072115788544523293764077602224506084931077240872003103416004219071879043307628498178688988932862669313866984374375824084199485157943537638108605787092349442646219420964277201008004684350483628289763520049210647948170960425198190149372464654200034465620004215023341308050591563288904708087312291587675538315433896612801310803487880270979710451251020794626904479116159721884509752390921839249076849280073749290588043597645514510666673499036763876852453799578307984557451073230174845813384976183510324249681245486429733036771008953263819761767677681115381460591456794064682323059732689799522346346545200867219175804017848116626035875304381242195307096045725041222187228444001540969442356031987563029945504854078165980928446995156523753424904211721989366243950573427920577774829113755605476371033954147013958432223665864826252399211455830022791803699601386936841844602754312947490489503834130149528787205901415992535291891111943783919782264728741727788828590428931043518700621735581109461413918814895369762105644499415147994657366035986910142993713273564718649743774786188229601267405189830285482941335953392544815497126124107780612679045219509152041028214321964091834192636283284789281679923856034932771797199385664718370896805713902352507750005389357093235515692210758029519758469189825372009388271057426682280678779811901907061884656227517276138129001617058771944015101497512176470360410450998913404663662898877391680582035424047194436705608138155321963145328821732237686827389128564738310338662164191608246671771387665247903881423818135243776066229586876626460701952846865123498121369671059113620576281103741290718037160017930006771933314509487024711130352338472931952945402834715834459884627166826000532687176410484300878589184130615355877331272831618396125229653846926093687975777490816332207268305629960394635155116076104383751685381379041378717394448309085671189517683375870403296576067242555822611226453823802325002474970877713309906901495944290583257843172026665776923337785322131916959926173128082961955806539564756383615980142061769482402073530291489088661476096185990403085106025872660058272417299276998110974074514251266553519147315224977388702894200471996982134333991561454867089104236646952698284184188897292908229357903852349792867295040386904765841347015636553466375568218342554297328879376247481664865276405348927533632274487705298571547137066049471362310787798096372809549166350701165916378835472850060569363526875989405803882566904659687847391410624696359303045776672847459319894019468034752229216931713050051183284718825347373700130537007476745697899629624434450065472605850580373348175883155125913968968152141639070851254777054452312381193941753470422743642945685125682628077612931066141545480464116626095558123331993354661509948066907119861882164308897278606583588153137884324489860613831622226966840779745762512207657155017182338653013469607597145858205581924315345687578715152200186432302085492687183605029178948804193956026526483579100497026197720835295624857181102803409514834890909597430761796385078433533702986105347082680190475338082343196769477630142464610249524833269041324847787948045574917803512758227635877278612992040341918460650610410358973666966607358803585368332466113988656830206625905514998363316053282807859640652575268159091905612188082172387655028418849094066252466087742601183034249149978309247181358653919320658004639205863847027054499771599463098326467001018480321665625497742983710231207743067136501657438266611955000924447871517664146972656010491466585908961462480878686797689290327672766987946277011748588944518118329936627276781503958847940602148827789249944101628559507524886202116639085548668491660167606083649135666798137678257473724674370061374029671414843590918740072389403579878032317630447711989332069262580334888948764334441883352071520430220116363121592893020483339627095265632152591022851299151187798777662860395682643044511557474463631086943493396315647475081618674481653782496358765197163197915813188248663472408660407071971076451926140291405701314799283439025458961027503491865676070344822451616541384034065295087849538940450335643373965826859336683294207595045373809628609561016519141598956022977113999542703005297540455297579611778512764083561683208679108869226405250580664228074046824234686950073458733502607392236208158077685070500867987920645316149827386517418580187235265104485785737271977931447900599883422310673011492111275490283217120449884285972470380402423460450658566053627470752360245489577217314785518902712543566878713064788870142490733093766670417042174707795294468461136376384894853620497356765677302742539876958144906845704248432444358118785276108494663458936599694123846233062695741999697737771820127080347021631264337811093266223260198062384702663842996865713550993875047744732556768266133215908445648816814522440036008410300854313730067131313236075936527700116886261248758564120643360304977315886207923813450944935285197297930717429267360931161475892947842592110799097503597107731286143307364433270517192586753812554976263094258269436743953236552443638846136121745745844695468300769312826051095283180562222486485031946966060311528317448372160309886550422999892628302431218955699186237576384355780743184491021886500721777906412632102091301253860514883241585081571434619288768735638322686192701186026406404492576066691596752991650731220316426649478799347695352120083283389267791149623821255568748846656284518149979790492149173043830078144342522519525718684174741460683550981977117973035038871516727416808926588955743088465109631517724709957703025773640842555515334543300922688274745955977791646474836657934808911704280253992757904726131953606513581528062079828272777826351564453665007548421037243126519100953331639354649400701639501877693337481036131964760959050645864073217140681426118792196258222204834166375669375374269780098504466320514520520405753685015209442170518193830672422280241651914177120606239334401680535344765679671163055610978250970835325399237047576357734736445350818313131118342493364868852496616734971468801063396828308058908015993798251509658233704623848013764023853583240495751735703900725895296997924640940422250753232831599580841338293696994126551613517653137265640405914297591346889858283986133622760312395560762879070132561982026716680719818314048899798237054044974038365595104855354816172721580797054929531878997959389027259494625087500787278656450043922915799477799742441401015824024851927728790127792571657637692868601819765932038436913965252826865118486385074064234916749272437060380013937582985383342488058580087813583445957330380491555645009309179443940117013748776436234734976031111935486758654390144231127335667746277299442087927933312878732151566144107154447794630724703178001709213885732689972288765066402287093948878112640646539047560595033822813951562253533448959608143999397766938421383906644681429018389694504360376995257862541258611692241606514493129516118164500919450423635667207895337371906687669872339819446154524434545709449963395118208047354469112459688808313003417522799960638097189685607419008077253138448022476601342429723713037431493139407090924056527610701956996713053298309961883124055362623945611910799129672952911609933399045641849743196633028449202046043942687564580312924509534735483304732672447425537878304885051752514683840157886265144486370008571913352609901107374028508195089260229726872359474454096829428528249055571334525604296312189855249888108277943036423416760192772385355901982067289656688364519930303260738072931494417399163308052111132825585961241651190913390186801864629585566253642153397643994686022593337160717535237891154906044014075444472443140555587191694727239687949276568696195644419600503127941526212441710259134271856313533847558457357812919458662321666094838045675889862743709380854516888645337014170546888839487973162973594945074447080680415614913674624812493182166994038377430363806492661922384839191513627768588946699531808443501152119672771715954010269612336356749230144224818025867238785269489349132740787322364964789018962805694006406272609663725498992651501942322598361320607365910801468496839980096298612108491374785798226174825814731082861267305251626869324192556718356651508445363972537711958987631601078791610753436073000760754319716789175751131335352945120463009000911385813741468139166015033827010009985493831344148282027158452440390371690406776858870577718885843709599287680801160062925620864454661548950340324749183385514711701321988594698900761356741719329025916916645795813990583477344550900752955278601507429317436044582632428409914892978136146651897420659668208156788547346044500057543763130185765253363967702342240269463753177644155392060792579476814552753610493666411266081020588045840561821488499731503124433358271503006525490313902934218503263816698577695568769779289370678355677158840449902268385756740055774979443589505606770363395294374159430563029484686721269946004225277625244223378613556471698297917674027097261005368889660492152613456975800756807373135480797982096841630359728829637844564438374994335255151509497407761737624535723062930232988912216480111905047145722621860745687329129649685048730843972396749289481183432837077907139491873998339070103639006198317706024857860884078402297768736307229731927015922482367762622042132706684015477715064841279544542143079875960482393557190862942897347482474860450580307284137811399394452075690694058732666203548636027825671348674993757746988213616645204636384226591601608644833043926645935230604226952789509091816654774059677951442227320390168755031786766554999210908428910376736264282380563421065093109687376248583493261300682678323083643359170669355123845469730667352815971193459806367585898023174133819281415282205154425393898899379995739531224555672382302021872172300491262632124593390694726574546623052226137168447696231747670508905047025162375517067726044234628701548135290384698945676056484039363067246850960194393351338547859081081003823522066805480149092930422532694617801457537587289013737508999433378148071306572264115976976168077766953517291404944345743940538979164828941494829721115771351368112346185923504160481063213939081390631175383847810605493127784812456252631918493462428847047411623621001389120957193129906717278279061955278578796519313618740346530975150059841470348364898129803441261870587275651146360524807850444470439027760434049646849628334682775574982841160006460538191917144059685866360134958773389780655278245326321417699535264784873665786274041118785024337651561828744640905944023772413609123199089310130026270168128948948682874670854086229994035180813530590624373031700004356540859364533522703826983678498456148068101061572869413523462228938276958915511795148379862980427073399558529149997833623584493059708191005947370950661633685759589621077682783266668158395319556639508421753076663015102156044127511818237570021144496236377715774299297048262519371251765832995441420913632015612809070612167676411921386655195173062939944940014097475324889653499946477184583819416553384516202305249821366072389422001301543675397085063395421732252025322844971296510280605901313709866056091697613461415736087922259134215864779317175425802491489001591754002022138696910781239481800844182084299997482848540453583496984054390573277567838418928539975830343868874031123583445888017508475221463778069425059482327627740523274527248029392246103088675113347854868980814359262416727583956446601463187654514961998755030669385061037920505724311793667718855245343163648134379216563422401739702121446526381382577335910089271675862604953456803398491311047954442650226852429973329996303171987149337712532666839236419799589331878661280530607664257031460167796436537229635662776756501926263613643574026916652282225554613970784192247719766362215066016069053176712120770949139247996034339879640489644300562344808894543395807554240723706893093195187692829753686751747949313308602296095381860593814452897762809751871837399978755190973558567512530459846489554333552538750198313407710227623025120995221234169975140662855549035954665085611787867702369342107326583067097937944415859701010787243335407775999118869270099344419764590921097562317123489165743335424263382402446234955884613620213734658571259175017046788340987480500148299611119239745850545809257590803941745569957695674778016304595113644496374289754633922918323358484621117778112227105484732059664218797859501057075117039307660939000813093658609470607527174852992590593383589644999394577168307477603976523624421864644923104010586567324271167869410815752456254579141195129344711446248841871072452160617029636324584923570689084866544918558602936301901433157414768075259455142025273267714190399244885667962530639597474975079477953563048683110468880510875001761221435573455084625330558944989195180513534748146134264482397458552832176144197522105703272102380614724085750632206754634120915354955457809020876928722116070275095060846259150347650497181547293817547749578984604487420717776711180168739505103975164782370541587540965156260222904588921270565159074963281451243640378322860225081472660540968655326018045215116378528654006213404039639309303854938359214274033034748069215702091148005606105093300481813352143542761004491127545863155797171438031786101697195909846316972993986666088392391599945447612301553448394388261840402561207388271551154268255661012648121922903561497017353520905177246314771316892923478522366963651339048600451665711538907526782006678658973508088009223390671177479665952778038599265886505590793709030380780446840984563676191136339436814510538497109788918089570150222497853727601063816197489168638410358543372518079355813325337113827079750376972469034319920560506809650996590166138662924599504902480597681057996198381550116050132096201760999828207351644322249648273486192827772778697493452577029265003747107112976706469560687512789925715684771718986806018170357588225658368554011235145846524291131538719314141706205707938362680901465243895977214549257166007563486825031720556497621830712809714736702808553431229931003797930036090250579789165033794722032490994348809680824508812858208085087950319923180003336960742142977850951647395154872108418276167063593911644478996364868847448783921468023218372368449604875611177280484708904296595691930358719624859406452204564871955351876578519945184424817192243971918919052890741196579519677993686080025739872094051808119737606870599149011858671322451752164098861538639761652199450761237649566619946684760651589941715335368437685155979890876403350708041662531354278253962979379258537142918221361789956535110516304992482326173872462249345571610467755570269914246107463514974595707534801425175244653004272391695424544735458832929161917697212673560935615423184752353670485749027024860732559350357281042282145770763711355376744874704424239842569001148781747392785851397456159373807639963031296491236532630758459481086305315110434130519667567797420372708814113909115664406430346584675870016347159496111715615932783241346871002089699289363906921330390013996512556708273213677365506154197906966972145481176301721713456224241948779724358261403994867573332034424769052777460736502194147164862388781582443566852035215552159050826863106365141983815427734071358554090982126882169851002612693447314060681106679847669489820011211109721540789905297271478517862089285698066049173362447414265985945510779137306382267051400741353662031683883922604822305435492675632155817709776585363625691637916354321376102875855210452238916101294865780928925458227462407548205959766678259666087333816729591564768928479682866816475734513999588557372748892295805517822168411652349072660695469766477146083353671475822606456838705776815906385267578201906154077980664153356697978636928895974424306052517447411816739371241357733190522510707738162557748796569606317582599357074256646187025963949037126909208026830509621364086824578574764039430726012369598943992474715408279595927896640740235129323289027463270018765024140779319387494451392505916791938675171582168486686548336528220409524703346168369799816219157227041882720603995772012753604621123094112829891548389436207343671996043215882396376882932202663261205444609034397478137908772612915126195167889193475562946162100324382604976206138777094906078681420953190630729198614369864310121288040373517006744513615605652376633465185441917810233350706358563132396582907726633445026926316565073712500705152182639337026474224999681388875554836194408112966132662703176254499334121172962511902507639355862061033009640822184942273091282520891046808147462633547020770483569131183243176236403512254069261934882232858771365744659586155229563978316181850852527204240478094745400984647663517866256428685346717558046599250833083569288720471223070108155102305867690568811304106620136738861042829604649564623014331317936220196787902402990838351440864196703910115599191981731685643264651413933882128005947058291996074352793037601822756718302953973473052848383400577636275637228474360552149320649050075473924455171505221894164617957428177524541948085401409923489686362849548188155529311981042268683622438358850594051421401669489139360519631946248460148001043553621218299913002685543294872884721077143321802573223471493752509088405403590582577949940043512811177965188567098056448800332660807672331645678726739659404298490693833049718791312121835155377298761349244209639449863296415488008049453501567915880644080090315238273714808135858521663453560414556255192711210588772597744014333383115957724454669542160274603580682301237341479033410716465151764603859792997574389907156768311710253318188426177877596306897460289810572490904729257977826734816434462188603423552542069314794154984637414804299445525238654365618317665151101173617968925975474874417430662259663130292103541018289175156223593616715884027631788607301076335993516800545015669050543670333426798470918372341519897382335444200038779661327746328491898648777583779858935796220940578608545612751624038478632526658259633262497171792066851336651164777838872660100676532545145718629090043077009872425474006406909091651766943066928816385886870404315374854679237618172273972375549156268853904160663747757648954343556593021926641171540787415722594106615168476434926312697178445350441128072425383022544759365054426425232136024667367436799651133908263488582669417425815734205945972369050670279263416990435659720287371907226442885060056640971094009383123601381318531755837336758606792677833619980915189113208600523307133978661376334258339029165258909416553709368746512480058576457091311351593126661388574415436670536286699659375947009050814528663919809774063100073714653487028614509521115642500411321168356837629156569752234493715985339830294402804550755254459999468658977444844212149262151149399868248109869641603752379646100247103326017566601744653377711175250814078531750715820223271506759250815340837770516843866107286792656661958331465354074196628973706355927265673763067369145740150331268974889305822862748446582231111847327732631799556764525382203068402179978146295921591763246714077720679690810008804313420400628877923970335187206209890662053762348187081057254520156186941534180092947047494667530937189081878722787332767280312033032082541485586424999674339150774331517909182782035427794426799453023782727099194473606304691501410372458063802472309692819092859355146134685765037853915391912089709504512955733969437778237072308575856654768825328955090579044497696644961276328428302944502498714029256331979140494588919610431860842846814074181016453844178674725990182574496366764111303635974451825771450313380241975382390463760365335511821601349456987930471532364739980242904765860328791548759844596622538832656977098733183616947086056617895509275104513651442941964670862946216639024669672612141479036888672008867696763238869752290457125137207524915881029041841665547993920095697404442087119865424715468096755823408675972426946662887842763893531394382353247318983470335276923477851515010191638762239107653667783610163223370025851128566228350771336096260576410955567964122367894812013598244951513435167860726143911279843147032805811114672675899293875827325339669677559252881524605079923869963284294952092973639029265563224554289332578207066972777876458971555323442686078101957681713608275219266746877763332360048322397279871558492123752949478644102784424103380795340905315934002300091905172283206321193358579111386600308330076106748793584853945843206448402323543143173027002624150104618946426144106469898065030264101774077555755368478555110107710741637112020777432394458137194806880823062092038589003273708580966840481901797999500088644848921468207899730959214159327564046076594906593334287057548785708166248464773932702984001302185864795950205980919411723053342808399822447051717691085922291499106350071212425969350940205105212463074252545463014359304993228909964520547829566783053203806306545810123709568063329511476830399518682820899671554362951351302598677891550874192399705868895994030040530637043482826586384661090945960269118900994338520398533266915859944860154938632281797762446430833579406547998415758279036616687749506626180766490249387827649146066068459826666041768009560272002994071591624642010962892466640996550613156818429518392536429829082533716620860815068126453196466290798496868618630800316330394060275468138671809809560388947089277640747001271269312668693377080662433644814301823761366243919677809976328857993447159160244930745483451810700405574399120393010534929361264278880819864842069756540941451457304277279924716234032285291794314773965499891428849920470674681775914753566653490650176464205165178352077912288392235817079354175801206975930707960948861860909958903914974774254451770268007281194284298598676696741056138307443300509680332964125278646415154844968836744207362228426476347816693260998147535928884320131841640729454858668636873811089409218087580127143280348971387673635088008404258551835064676451631797050250259966817004081592942422380950409035830561143992094378090269389066169118484982350914909881351094034742982638461722968648317507325672036756996459199370912372497371875232812573499111877296679301354449213651389042715156312077844627664737545616314451218605269287816500258688258258205922491230967541476307855276063489505486218008167005245245114374426109784207270386775256108231384495563186558973056907537523629061562309543860297549778883935505038269527803130060423073731269823948338434021927630153874263672600469030997437110012816865324612212127726565840092725901875958748872760481059652371728260520652161991373272141677878727803248297708646025356883527410811520232015818921214780618199327005193069321673048859957721906063057056720771608271971965462934529212323235669803351432674503935123423290084881749080724442134377177629239284026561154559339846598012215964645530863958899529439606906017100123996750425381946984261579036120432264120545895112951864556719907003325304533716377160101620094794214075562230027314848186000310560703827123178994976009007274817990323087346354192357982487640999164582348417909810274080300958293211742964698944550872716596482128017872599643333662517445960700044661223593945539869505065455821254969522363717198775402006356342319644729283528608132391858058527843128216416600061672374468212552951615381997079181380925538210360961317151065706404631346566509783300977885843968808561387864655484927544493492740297471915684267911781017268475932063998670585722972539743867683243344325834926160031662489077758641782249865869771004067700363657959340754984509222722686474470450571964294017703992454511097626847672202345754281865502623629959870042461841788053833198990516586053815720607630995715582082049230689073916442651594022716238812011058160834348627168059016549987740457645536625950001448966256457830461173834959636867996708583605625329657189856750177194889928861811423977459966488453985262359044952103953599395368645126261213273693167910188390853947867101638142839458779782781860624206309527592428159023129353522433547873910314939287728855345714409569918881218135053393969370742105936776920625795226635062516975709986039145600968248382617196010134649914604877053389078003347308145493417755354552073906374364651950020506944345196042777395466865989533734029744335011666101033089777191579809867138166404095763494168807049891686083110016754208633558760675003052413282061498549719254588635542245364196691959212696375277128077476203248534406161982596600823811392490989504919800796113834117910008667517030533791795634039511200506627260251247085785659155455134165624875020832749087836978878638309947420368642122625713271927521608813493094127407304007706712234486662823530192984475826413024640532951074818430274941448687904732673855487146056570116320401862616734656878418789039559836181516666206045457694449936331454654189979564822876457036016898217770978441844551090874646631805868060166987111506018839871146871524336543260265699660189251562319891204814841079773123523220281408979913794598254684218232388093924929671257613586718262156880523356338261758892894042389660135977737978213198949882261581790503595706896867253870916224231519689027254506941266904094539996341308881123630462776421741281686184671478420222151330290541034610839690759541869474232942643035772118106453625525580765514183056926448074860693625123062949294757516044094211546162253459176651856367844119303435758669001830352297760847325284416346225425232813473135207990734836003549511571646035895229255098337430629830002072986146269607268726287720513345040666933979677040727760636426684702223209693900673748347559141101527854862506282265441488357142878232106040283180941219723109908906319506067391604738057416012485530592473754846282583859368215677544830690606967916694945690935370633638075466167757357033698259711041419453754754346301517790385175125689511205534324572855476306388886249413350542212401551329109575467989875153988811206718280672341034094031881285147256297682175811474270546525625301638908052225174003129983474489077384842681683135730268523563170549542746691267191210467432146847002936060924227551079703112391388751447769063293995974240745255914955053966625674584162429095446527462312349840920926377482079909319829788121390517944251750221070598210148668056210243177026597888314968871697142331045697903653958441768771430711699141427089655158456798614718274891773802118158233187193806237651275225495904424739877149786038739941703795309280351119983305695962140505494275735778749450568604109962925879842059083638466659091119615626585278540239837729953397266539036213168139844156125369987201980407198537729296902945857044670012862612493770272789941835134496599707332231702437460057903904606947775379011198781416965679304141698782401005759425417750089424404242363514548888001369655275737110450309588811296800266283767711066201187837150266393442725326484306947595449761192075170847434437284616972689375315238329275362687399853927618893361818617573821195882382951011119178908337789735437086373237555123067212880692638582967811876341881192385566046420985996531202086262126513626224935419362413577959527889446007065122922683010329967514177926232508017169511130006437499484927142869679195944479230091451154795551852495168529478367201830154628917598547533766797350881339226800573851010357110210177785264680054848811578394364526361407328238980066308511997477457931047699207742795814801683879973644780832826009359153441236129452227464144430119596634121084138079953378513570766618793277500388816894161528765561398194604095504557688354541316703965003250951741856738448711584693668393286200528139729935845240383686620706141929099859917197199194546681609949055539622284044652705523412018236734604123405441393860524472103051555247449769502992965400838270349999880709717440993745263645946822434182128659912251102535669443989199787012643413290828906486910933740514440872149827505640375952174187040900335010961654739081164468211102760243746966605353224301633658569880150131984896407501500513235733348667327794169695184636425401289112700010163611373362323792759987963547488521794857150681403161244088585894315078830530027853782026175844715399285894775209078917051271012513564925644990414836315371168972536181212815699736256244598908183407320304505121815973207550988893186361170815495926115975923408855133831716264589742307158098969054238305851066718342653231008780695696415146871919082486006507538516340316167094682931215755854286585465618013674632314852981987072754720591844072333128023455163865704409249102677631383095667623865047749432123583954526255853210959544043333572006810819403548547107584971549550587962088440294201709284307478825825309522312473500782828000814619335992564890128263194490283199089663991006125892824006353192325932264241193471180158314426912480456121743716290564383279487037400453548324126659456086884007700195756275684071989952211966424652418972641597566402595626375371855360742314477302817056338596389661746928053364826191109464307917768299622200900036254001917049237010101396141325592851313277520322139796696906638398408530424904229697991786654575926604294109434204877168488281136161617154492387740610703491014841296361594023072876278248881507567006066185438160644971385493668123888029875560626632082291466062268679400067282821867878276356162219455755159543542662008246366294555277006574071302772785563624643511502768750742266307171918154080242763003852938584710657699340971808360976864065274765973950913346473618796693544680990825824470900646977546320658240111919741075455487357347775265311558854803159786952756809159495894773583594625137041576354438310187731377567453212376356702738332175302643715017138216794808400761043934710284251371774009412567143394471616669144751497251645432443561500784192967908357973889520580789497925060422187967914060232254500917558314378199554775825640139401150120150562149711547780557458408493865452387175257143671579357365611085233603600073162295546186523957443956786431113117242251929405609827770517423246358275311402776405115710950697971665011866021160806888734226612825698677398142063977619947682202190490822583791714603586254704728928386196768149834840108317203808709607301568728628666518731067158661608099526068606314261618034552807209012344834315810456182619813746472933779594275898507707458406611718465952378602120458150106546942277259503913413445554908300976522804434349217659332714403961722759957464963184837913649911553678104232928709834144219880533025135650801837402125598360807880029057983261934693429315457603217671469250337500908875830035588590770921002110074558540815708237683237617827038623579585650447819805947900130522430983736394348105275192047140969518586529302089826517148455458855084877995033872264338333019277353718993247186350311252708616723511296220267730041567535820268834281553195938604098054077749561020227401188576847382123551236169085370319904038396019874633961550219967965703452356050023136907036223629039457890934871052372408838455026639788797215632267217907569161844950475992517193079995154435660687620227773607493719243885957436880766196126312122777872563976757915857175578844594169137931746525394728920755504023699764401527826375721547208030704275137783154925991616270658480524800330826265759465525886003281149633951978829063425487370325679578250299268703326029385180749978419526231162165981646052911704514651293636222970062337665235236738887865744059843269474888988655830136147813930265279775968561635554180084383339066809456689950064835843045114159327592183023500734771515182927509036729049267493782446028337248853960985232846192914976115769221591924709991095044449540620927588708323520063030295130733825762670935754297718381223607657427576117783938038264560209658528539769207129886826245467587150010147371445288603804580062385768160894448288385596907505601937552297685748282609814355407087476078762225860191669213256907053350303191564062735403601834253733850483511644569235176213615731332678727703950846519638015674090244498498484067840784845681296486289484568502886334271447603187759961859982619293844393250632469755575988268830029875929698477899111307479875834645950157799561632614279963558311376796961307921161594428554242479753237347782369418847866071394121665196321044215800039301916984928564453171543024937689548855783841371459679013942607823641574424682200566412967353684060098213822780832660354124582864075443502343865163630412570656364623231555579284024909843063060846566383251547903302123651712037135279856394626346713462072513768402962530767931656078818597248227954104020973387163049907921698931152864802816230957386872016771934861095802137831875749488641453597348717529583846522854269619920859826720736077063355371778838165214037468243651734207107037142471021298649037281086829190797056211415159899497246655004091124756543113607534657596034479240416887724302477196941481055137053789204192349354671225353946548797055531080630261816685943701126763556605249991636158015519818140927430229903749646114181858514012187390008376896183861034086194715170193750342283963309431304784069405869341958169575417007074202932323342406012683517309683406214687308062615327930444854125008676295232346335088097699987574604602938204956228347039372401517127245724496131509197920554545211965340385003681025613761769108495382254527643520296241112633719890977980960386375151969341412147443372661393247795416950237253314722642915795354449023652621407140542622218483872749437343274889323369145189581239163435458561880201670574888313575969977681716197074906668472623631019734529983753631164572911550046648236188429727243895306796385243530491778400407771353964301129915541668025737812854318517137599300420125457675641136636781303615255829900084837469389258640809568049812104454909870543592343173897647770143784561556955326775013134449561432440828012952570412626986341956425956296422639646678412812137587158757029549658922048142508930171230835472625371138127315972680966615133886826928456367269646489392290427795499550431319460558766416258993332616969886722167784471639003381086449131221604965562653672995004640376905501441130992085739614369296092794167409500648221564598886324239980742192869378307826733558604399265040654413530808380357156058555054225473424871612612458364509069833901579631445946457092319324504893172645227586073919412660150127862937229217208934246511928171804496242410147683923776273996887943107391096443365159433112946045243618442881534932419679190589045542801147008681894094058643910690412345981809129342054094952044835122023527417441816593139253284621484356996680241885212278128631563420242211206034120711724379220750949682545892627354503808847783503867201545173567228398866487596131722548214240271357432482676451636466052520569427251402011263725707120188846021024377012062140001296740735309906728014153292143696913377289798755857761422605008303083930549359839259003214799663360406174660451725825582005903430407159233402337126443894026880157191648059568661413879242947969296486631643841222697795560712202482421862276990408584603983458653180133076983179130736066941207020531750130354165885817222953343031442707751279660315166946076276354339092879316072665696969520840962145140237467519430938703914139885382117484764246015981003523971528153632152566879673738193971778721974103433455004513872120252570857741539566530928413480283827807756717156205387198630328293754747015041982091631560294535629360872013878096374867980717178108874215705589673917014968994517250095170124043472489721192622563673619363161579790373353136979432032706243714176094133418760897502287174093334590532849238246466773764278144123343763199807528506124015167422475582437202694698409986332145493384224766816329856327329906944686538642746512154515639132878735850100451907530640138625316313950455260781608795692973715509837611237232643415173979242535082777064575731473653097460353262449772082825090975588694444746488786159743518616726195466805648138189406107796589220331850246089152349362154455891823936676455344044969657964281568278779319493743825643348885224675752612280183962530255977225737784560846090372855607784231629501746459707481216434167046245434294395531021145527263245229451582412023497037370530945105691267174287173661192911199424165457317393299008808326944558180744714834657248557876842571637539595001370318474716845081540521129814825655550493043938168388783588152179241426320991576473733032532522403435769174978789626138681899035390206180922842967799642151733492581260732090741703414775547661623156425471149009915993862683028400830564768747636014982727401385768775380818911710679195155765689313551166372329067777929318205651242451573841177957091355138536933617848505601259480550670001428966121620684155331992813608153823615507325392233628356932499083754432784737986674740124144206757805593624209982303955408077944406487010686688024215355298884146601614239365179769862267398163734605193597146640453414014596829227341232159296398953598159544357767916501180458651942628968726346383756512639237967913318452287367706205585549326018115748329109290066484329661872607229408215093071276616534642502108514464540303367906795231827438552093960343555815824032499932066176840664210550725793865552976956590727501228891851601629209640503108011137140349344670355249959414334589390739522169145603069214804511592615621122822644695445155416423403869966991247736374320461586433120760068438665874170627922504823476404505890294546330335085292705882466609059900377937330724529838003729615891761948928796811463016106151302295356908682909464997053940530677145034639700425385296025963618114364991571003806090243949924345910455247096210934581018122381577282549267596534537198585945079354288078206361279303829471813761597549110698534382836070922873278761672085465676931445554342927195176871705962020679153581109890589941164558563157560003998913498955455748092666699798395874096136127311204925203857936990869469625084832352626918216966962027973229600890148108634241602736494909189596202734820476155675193551216332481283831454349452718137355483487307904556230059870874944358740131707286446687820322717343346403604169061765110099195217778125514030278517371605611791856059467341945951117857590521088801434364338188616700420098964368305765192884723718760618683666049501260528468834674480780468197448953964493865632372621096735579254681926316063604248306072890885636751547425618041079106727121061676283546233741378646938877517519514550922298455467884377760415562315164513536193367932535101532589484724588083121664902404973235121596287235383401929122836055450167360146438494414274327455947205716580972221604275757879180170518990186122337152956193981964352801703330042713269964148812950549300113450658459989027022301059355891557856541292567973096415145747605003894863092616137707751270885160847602758015101502645414572627240150304830205882869190860630607361475542491972000095468703110969754182134344518009698792767451739880301202475717045261455609197892161027705219532302120066691395613945331354340962437613985467102557692938903990689323140958649007679500866213538738644988746904814825342935092968969736701072525442580530677492948900782962959231830474256696700033573213575037490840266085497090956177079194687552071722192256262684440875176419860967088482130616364927659055365857362930498323028455219073249337029260748010774135658552386113529919536197566312712069606365884899746796713328902540438663177337519059176597716460548105245299861114726135684629223438535946810712960458177197865738823579837815471659423890185608435671496768835760502433902048713801394892635388288543860428300000326644298324134707615907941380483031866664434384905381488923536595269770310620749658129520448551232789107327810856293206452839657211580989126636872605587917801245935748650604267494211371038167447056185416407783048501080294321126071725281932418707639419111301516947820138598781880405063138309692251402253563827438986674493598074112286865590730171882995785446873970441925748896229180974914991889056309804461399863031282519529490867937028926553308706022158577903595832955492781130391780162227051386561171493258156970232331071362580687725962980614516435638646333580862097319290070718153921485224315024933805014791443606663225658976087922867249678197675532198166708582656796733162725736451463157840497683527495791188674992855893077845736925254932289945585861571514944114021180667858123006125461860217881689754555366925633543439589126861452757669697312633682241039575909526205351449729647901003678613378205855859999431820608701398323624499346831883906657389239109546242441471820615951046200825990966500991626805018068412173495409081224262842225374309541791948631162343691839959568380384160530987521501938304135779867631951956725720317079819337984208565702408975836180993004317480283582306049694134348042976167326399925401378823987744861590374053297825742465909301793338787037762832867725104391379777461500763848886257577223939499459654716630673948942301977239988475579219516203189952276850050370964565149334678830605458936272099332708275659064024697663991341756134094883465683009040804660890747250060504333306492254179400510082016442919054938173340432422249861985145511393879902469569853858718484557210465201659316140807064823029613015836072341929500590069522420338252295965467248483340634339310905313958848752760063718608032482509358461345644965478624376887920557268591977233905672167800142469854696354464619318366763395412897400961521000826314331389529557387105679336182577621874269806109261003073783880171284844656368041003461716686394068857789631653935096999163579079668267769216532807819488309978685946163790750658613175650300194808494076868632924016232151342122352375993512308072829912575360977616844968287572164489184627331708141644894839345786612199178039533105711731774409308666019025447108766652554607577785616725881701161931373145832461749203384265891156751170164347779036106076036884366441255499228061448102685303810828822208067055295064188101133515853318431302053034565472329353145967040407681574874988928127651516514949475243835520792936883501114424161596888080253893579429850378126028949054458274330216250196489698802913331677790746106530919578059523341873614243594063113803170479597269805880275338048951133687572178523551672655528864136520838829333224970015933980451886898304424862699722046163750570684955179139040818905882845046300253209277772667714644937202041320835959144570809663303411528073371335446399228330377438852770067763938040295226474745821226887514361854664004976563029348501582468022530580981312117409238053246461570250109620299352012431759674453494160427927783472576059715632396468352345203720020877250042793296594982864683446196194224301505273488487308647255608779717869063868044690120285551860056076641287376466130590704470394669588214496675842530595016981025111931163860962690339613788898605694898738056247691134654566432244537277997335481844685547969885721095552754941326008318224001045428658527190656004080234564331465622076038782789142602048016672283916069785306584768592317433376320204172814621904589412100349032471007208877749884634794158549927375930487949092211761627296914730315105743905542895393896226221995594892625332430062070731163625039937938891520309776913477514978500574730198687560029017067032405292328015144609155377705482587919144957685765089999648778526443976173549273052666078988307303278669061358434563997232580013564456772789006954010707590611598044962721862449182963362339573924906071208619051443565123815102383796642905463567628986525436155945221390940343252510978295766397318627968551000471125695036542135453072168885421398763785547254748194611031417378463913477993378538334657128932801576253671831313546805318247627201989100498562475497985879254436585633484525150393592723062299049735827823802498398228331766145231157291659910847782614080174270940779381243738204286854754101375887557010230044873115634657555386382026547936409927485795664273827635531155132523962244669184839385940085403250777170778099114550638925755385905430985640480491865442266674744138601522817497284428428641123366387699523347319158167486060484999185834072593683143620534777941933920774320477612038581471319622346620926264382733447120223368142018027489810211375528084029508395938138977187681072075412508015323371960224341756583421252504606663602958787294203647553381259389729934655297775541630824707437112341829309625717725215755703741934501962261503677499356206788436126392563056106444158389008735222752947151015296509944985391205622841992182612393329317379469648567230857752778748014954153247403105780054119199394018505631510357103785700605131206221295480554035446264351486895180796079237483008407767003154004200391085674563894670477022179740337555091328085837447686404437335802178455461547838011379547308013514311013997201003105584379181612255145046185175704565781120029327133295683250065357959243137119917701657076513801109425487659992472206859197707985792456345422626176901518851687615165092564794550699559366437188226053255893357560017359888322643431343615563803245974123392525173159785620999679818121659592060312947449325899480072259058575923467863918331978646194306204453362429385532036251958656163864376958343398362598871512716418278040808677766856272452593334238698339267652186947943818292832208733446142848122531868402136227580893381134514966525682372449710243597420177051473790670172021795004274825914020925591852985432218952135377065823202148105785739859693974594962221270071821976778533165074792797018215370444882348252957910257616209156411799610657333619948754656425511148336347162618044320711577266489816201325073078545639648672329361072309747831362264528360322078327529172543551226846970664759553676297920990049113219771915253699106324512734777235492571088485102586482013220546534641639947563553980743736375759557383251555049617378311850774253763957779793615111322108668200989735003236874565137327158276020975568291079347638843264883477526275453075648775529940369475384093282552016315248857560277752981501516426971737807827259784695109906225041046776692184788206721814721042118812053055264454111098778115018320188200588433597988411212557866173290987622779172113610577079450853513543721278071072295617460150716603847415200380388045280457307711947131500567323188537939746568704959189330337459606256940557249652215010340287479496219593179543194190955044707636907432884363174392438165758145402747486576772419964594247697662315593772638385615597441110054639648516079814666826194506745097030395763984781981370514241252328933035310757293353675462912962102732378480289652253223054181565231559053018487903782263060936221116382929241383038484966909768565961963900868840920210660156046931294902070485878631027693285544576822805376500104088727828336689719150265284245097272160521962078740855059075533691294315135982316379135721707242476347547923495328162691153340814135515285017791094537269799819844617447658785966896886232102411673447145081296591619748571089198617842539047161173640565803604230995987358577754689375407161817388098804158773928895274205741525080093670696281854131818755459252778995555764281845663555304044669598236159116229796425142837710263359094212850644237450025304753432676173803396336497523663826904407214365831893690788008733571688756480689099853854712172230573346277039259498454735482184004873361596630757398138930478246808049572590931118554894687242670769581308571175672768019104773377303936126990675569821571772848095805632077283078616042169497262859983230703922502968186382960634773076984046456211005677949729204987162070929335200040580289167517748259506572377738165674203000991583713734766064763214344273786629937564833776353382190047335298384351501534249956241060370762010498134624770761385348544402639708462119254981138058790466958832195140116403183091906939316505303507205889265935210515484115249747529603217246109655383265345982628201548208747526651327186825296970076291576459485417487608653466490000200946609732632680213437311300746311986749663353405910255111138282411263769104782805596885813952187092059324697212733869267001516295908781473894536768739134619090457687273780514382795046861336556929121873050388740109279753997649267714406481795568312065140334827792186188645011447133271752632618679694054160738427434608995648586706426881170045583204076042825883813172178292122615743650015920168479579053154333338854459926237866143847999288702477882126210890218511679376115593043235170146125457020232275685018156878234869033084808976796005519397496945661045729300551647195936580241479221575965437573010947688928052507948628104237230756439416863704247316307992392960596343999161685342220681832459680251786276686503098442215710542718834543488323068034206279731012090893516224475408312763017480004004452328213482184019787827309025067896319998489270602701339399727638449814704533393081092671555743527246674500505977682462363881356430651756362678419036618332656991301728043866854818167260348366741256124453772890385588240302501027584582326399944425848166181244418681320199557926352445629996795187898250323672757555055309379682086694268037028011581382620109420873049517751149486092228609789843903737208128620852238442054512406304213454092475850929702074009500939514286885253300522389537386159467225676543164288393519851824233543144048831807621018675767585992610980825746326127876258618373257864685832932058468187628295755893261694231023685958616078588873584633978621553406298089380716796960156899944647777256432981119471575643547873916871149712419912674150683879648556545201908900402737443546483752633776161985450327710042431654568250583270968957712182237438588963677153238301657563532164609026837965189954883357856479107954099064820538957083067353980421026096402289771090545964824105692063158926351509061709738045640409100992588672988074668869115093554329905452820283490913298616052748191382018606397601323043919905689208718629737748235812664546848778683190866034473990349202150489195776584385722308730644940805649426720062775556064367369412131417142856169787864363937825111228856255121077467776086171209060361115851270074577888857776986266033084911045070870050260975403424925182008563856030516099102336089907310904502843700921828273498198037818138613456789633064069048253378911637095962126992743871279640132644846638454753115131500689959476470458439679351406314027907060814804915104206944949409310533729481805390325457913929433143819704800250434545854789825923709106682666896221591830636214506825643954848695978258299080313836920459154584528229007322345146638808384724334844047524724973984823052770775514368208805483609944210184368898231748541854380629143245873737072611609151342314079425595534028692930751913778069533186889613359402803328635005205749624614194995015112663447330976501302201539515690004078399861067205725327090523344853642332668331052262008969114835099247435740044982457090288444231715044290815665082279014103467489937863590082208164012474901769144870332777690916767283833623099407962871241428624190575664217087613020240488885002932083472692441886862592495891150279674920755417395044492325744506670377218093352230477667297770128051694774153231817603982842484659553493995946481570677730945018160819998085457553434947429620741705684914364150937018123090321592748588196307249309652702561793886941220266666240327867565699268888285624627295823575231717880063200375806872179944111880681734863371816467336668366505279312017326258018134792105756789293159536362385152290997293428981541389556279144882266589959283034102653688094769413084896204964828343664848708685459525045432724611972019111802973384767497829580981064027727013813491869235672586478353645472619480919622200903251473411127184864565259390679637215263965568252456953227830559294689598945448546746890426180116111080439795493764114854425241443323485851974002894135230064688717875765146641262039300798059647355186800313685281164353634312379745445880412624834518109750107759313002693863748628115623502099822684452942058683244991462185783524637727206408781839976523360337630692283432561966795337664486763876074154189120917824572020088048485969525369043298514588597652051678748989661651891555704837433851612203531559172639096850308794118927019407344425182912863283691360619906273741592125663290958643691192106807508164546626080789465602023092102741942373937311934039470663623403476526345883444631535149888777782474553812187237492544277116277655866057384031887860023878088336012619902538058941593358665261682638453333390303776869379496088990809170171554244136096854594240330862164626005208434556555068825210887777795156369212877697398337036754638128711483953345832881647665277020834904734948498112937260467452112315636130416851228740663445397475871922911169179063633426160809704603339849047020301417332217093330822669538308498703215024987899033629129743071615886408922470929375252323558438256764214801760611378244531140848764458933850679854381956184821563797749539331050796847144574357153336918372331066510167433313778002287284854939487474719549641536560308441436610264154252055979724929933744864277020296349017169830100907773298793593710491416625289281017919696733471950868998291808231866960795205510876020547991538041171636206377125422751522572870974268938972143233481999938659108837150634391304087486295401891740113770058058586119375126524179642896601834276444709845194872548497255070495549650495158206166672778364801000265429331495578232962009616401666742110051819812496382166461825944529985042626960108455564339484177698926304987962736010492439798034212169467056711223236394947169474861513077104943314408195470396875657480920209071814989957542128404290551161794304220821093685794731171022269375745833878877917010678622788684065887520064076449258367314990267118131264139812721953060064633885460405723125787993243661250644931920451642468807847243463216929390802702433629070255080750729631254366528188381589223600828167910029500161463681871534576179948850854503686974165895237307029361782041333389305839663751909736185433390952462079285941461972409941409421095212265800313530235006512736616866752905954524413797398245261447320162718625714500717147773387270261356847609412350278619642813871906693623660220481862794167301253049017233759438463248870351263841087774420658570902352080806482416393819292786220864731949706331181590862695687521013005249021922364329660106568794740120759366063493006266601787628531646137607262808051001992403514673571113944742633078225417675954701688894751342107346583438009286281397628494714353814559083470517978103176785529033607297354178562170374518817547089763910642917597080775295549854814743810641051112016560387414716179954316091217001021682004641232592781081297384248855231648655145676813734104383411751515812324514953307034418547674216568338348924135530017459011501544281790762812330010337411801662940474084676367302388380484182962284910599320955194074639737895021873769568176890256548850499115290473128562612655060197483544733913045580623555501347293025281641000132563863503921868339842767634219074063085196061114627533762122160494300481716959674350729541759290906549737142760325540095636695289689114664310976344854564000021192244870461575093465466506864551741406579859402434307843274244662266392238965478006487468882444517350660878580429508688491204109934037506414160171296029571536414109360784603306723324726197126314719936440190986813173184681068876256559664946077228805301783978754195300023099853003788281947429582972151895094245802915923943835648631475871681605234212316422366104368367880054658383621482920849935514790842736151607032662210039968710746377453827071273012216872640621525646185090271533201007450334077516138707221260591038035069040395525401217911698492245416216048534118080716828897655781080944425058476518284567005713285585786124014002595392124196800802511232280222055250064603447700728699176431520873840895015267724366691020691655632930643091157366205445229769814283359036126852348938122130450043312402831275742997929121494914481076321158140055703985205457798327093197077637497400459941392543355750836296233819373813141373381514209314423977306082377320328662729300824586044561423939653247506161552450589394513443798237816012063796110470718155401773245875251997452657217706788019914720110193597448964322686535982099921784723117769801584841242208289233154754844200320856385183640765016329508979506027358449928364823798440331461936398092857141917884732286409673986181766891268158186031746561897359753061536493534107434179921112322804277800026804144357575684299576236876289629741798494629188353207727537454216467438970409807902085132854572317000011110374303335275601091987325480972710959826409753156484795649858695561659175481118450698812721497484598612414499732455128289714038675864811605987013020239876257812238800334110823810646042230769088821290995105001640385698790887838789494776290406497699719225786464110034372764681967033790950812638634508861353123776636639189713762883677933532810826261661074949220219608983208806435451409328201698286127045217274779621271205289410793032499106940598048650756036404921333012027280535587839863782951044577012381869358020235288176995193154411433744490901041422149048107730716123056134588214230796663156855084792127712444059500652832076140760711246136408532671796462055148551388817007856682948590361818107021931143395142431688918547273534688938040394634310565890179245868336423849422450585751817078442900102734420843898559780744198827811669769028125236865530234553481521730454188083297877368485457554655819679627934102966381724346361165470701906287206422275030161848982257503630984592943826703696286763246763643967442766722040629843442528893606563637634692196131724298844850590234080597973960076961049890558922481086395715374490609829016964522681700444497808723792576059636813987520873719532567582949480742084667054938261532442026379817706880755108217213017139283450305902507690467983439801929330164725482111812847175294583372930499956365476283499528631645051301945837331080602121384649726262630466914932743188218385648772120102297466162975828695322181914851736365964702356735873638507043741424214106985928558152724774889571344267974079679539813102491981102776371103804113985892013094578203174777996226360603842436375624631997943385966234677880079667009716564403176194157936901517322372832120998502984233083094450519568604449832640861696873798968493339476699031275406478838727040220214841304194688851412711444154512201503574812509818658516584065590809432452431758510059844988138112885967318723669647332027700659593457333833414627778943537024116663021018283133952655600919627514740626928119265798001786053798722411485433705955606043439741110320849757528510179646678767132043541422993562319365230197643783606301849060316238537927202360428507858437999528467029079876908917563105784707910592054581645175758135183168629819246245985311377581186148167475247892651725942570084813466009954026867105082942567311553118995189646644626734665937961460798809196962303025872283564792861991938996814253690162776083891025352344342395887517478762622185286615401905736265042461588577633483017784783024797271312335327286811031940939433519226864908677785708975382474468894842293754363283524995652200440649678588053146420526212872787896280331205779861649858474200142743895598927447486392952194516908859021654929388168919711935844300114167759777869571437352872683198044819714618619315528917411086463648595175291356593508206463027738254701152259399973809828265508061154403624699689759998718852472453788198024484240583052914944461417750060719888439276151315690758617258459334112732859673661286216280129986802152588123207537783732498754035938761643518330629539018798189086275667282326003367562459778638353035188785415488526427402566543720774842583300301232167980975597870617438502871772459433427207794347795146265681626657920854656762162684263139254288534883998977853861578167685096975410006987635454934397416710164051829771248190432771782265530245192921670352938522099216926699523407523881931301555007150849156321041902548568073987304593850719272602711455866510990765038689509505010175561006842636927581529122278432527398392474320907449545516761028909443733649610585986287670846394021504594173543290208979103088504099917703493991451666217073557053436755626368936888450974002231617146741944751988394007620359609166937395080702655762178316860385027082176158325349612533551985445002022546052290341809808845500805452261670611065429100016169287487811980848329828827044986165589597804506766028631080911621536344503321736673823948423529840467840891459557330633447626287098221324606806837317586263005518178082085597168240092204013967032162821981111936927637787853703761516038344117203031258321780578997783205885779666759107102407287887214747947555481709106036194077826691601136482137622200334996945938820643689624702025819933324011601361535925563905553209934872747144611730857080129753207825331898029529160819349155779368484276916380727426085478661918826502940268387979249004721799605366308909786365819845224931361625164007452988496658075295594778717664656922289923683702797711568123837889112499868558154597551002744257778712184102145091196607653932174575102394946350029479905452094394425254316304950010138154405787920015421842532231901734860504652314598810797256143553417587312533733064535107403709975226811700139608042052173289232314187016932091152197190751299175161885322053035258629395880974519635196348657138360949943021274239661879061836322261113318878903331931428724834889138713542941668400163901532205953422398916473639588780700779422239451198383813568624843234738506376967530853691237819306109747550142291955844269845879608471704612286577387073518100889489069762940098818845667821178363707447284553543126565462899107790667837117067441292912492402681184232263308832012916890275579817594195674522445326189714134079855766384640305946755296970029300083996267317741387302702552923310675895275330944046437809881842766648437086260079133257785670483324981125312571899867559301172181561410072941668474252028176586547916740338451752117482985841007552067612489864240281436096592277008590971214445964841424784977180874386582051234685810984220898820220851342043498295000334529427195557081674187696526626979395740776566496161197108285447305774163811722638580435262590599007316622954027955507742270062267268505759268609496570523393684755160382332474202448816537052992401414644861458854932870288959233893713024246255004397416189194911262683407490615139596265554889771779371681690764293068115057317595364403660639903569057082944296619486786407653645106965654120217749665775650767120597045777180256555688587481696349175856030728154538464953037396206558936081327189617015217488889459191927462718010581770653776413554572705757269019511860637004794798942309355492725447181995853453855993250472496753566498395081825126698807355305920362606961528457263476615357687784762409967883273615606729250939200385417743937550947663382243064907491542248286040447911062529580266901733736721288151694275903733699507277800177162533381685553168728416964764072088234879148839196819212909370732350343245634700698546433248446451572709197256287009648618359980893455131610065018692668184020254776866327347399456327686370548168354087340751827262725984426551245875201109424163763863973322503087408855729737605103973248535658414436801635766325233266866743692722865295360613191273508556977895676076844163069910446933995304092804455877318835020896008010787508275014258294733366669702094826699154392231763026114833576043620046268319071676264820174370132131976177877238328860639280279698855404630551441817490415707779039038053459010874541859116197207732171838285901031633210060671420248082173152838613595036188213039878085246357147972583593499037396632070825104756372455132323894086892357607573284342578964710075372224626884401050028939182294046159939409388963258887883700306126872487926583150260094105552186535500127111834092819998332162644698148292917651092739299281374046934722138706398576351681929157681751940027613263354652181384251695836366581578161402244847508583488900082254257990354678625303979691337769989794638906021471104130048882019600375312804292834712025081325367778216203562428858714133823553606821338480544160030776045244750790456613836674234823758034427412027027575248529337865274204547896258162311150507712720787076659315135564211589283987053579705949399885870041823334632350988006531150867277568994844519934838339956488929465205011592365758444415352940660109627811210476828818456234496495180449496083829944920874166772619492537127863039652589235843882736901387129642814545640234890329845163865696293389707480522221141754868131394840767781649481604138889938356235260680346266035446719705523559461840706330894897704029275150887241293837321709151481970500421161470985260965358030646298950972145277662779245796479648400512309646250084250086216136238065781134026087717098550376199587345652810002500215467134117924653988240056191030578818380321848657987971350124310325053506309333145282465950477569683193966528773107326874138997765442343976574258632397052860863728055256692032974526474142478845718334031477329228980847807464201222281015524147751754016661473741580284707318609784616813677151344549995829603212374569366682519017445645879953258731944815489764688437935159582148067846385084199212503719092954109332142067785810079123097832203397307176943992356861240917820784735922622608562286367296865278859144477284667503296221160691393269690038659300990261363608299547645547030265401321246097875465658912417013499440767093446950774767815667408617866712860989634955130449708153913939751628166362258085709794481843671616252511957028493176818015410730671500867536380587873038171569048751926927175876006790468446425072669896578277537833315140017572804210819966397981213057328041443320370863539103111397899952750297205034784430791969528941431107517078757022126327979616624631058342364812565708165976721821877787763084672376230256611488458357564232271932284721616452782054492834194556104878402056992905566256150889926384316274665551182000489323828228593273586368465395809043970559078426091615732051272165492517938219154093113813976221969641817151662074561482611697055000645906986303012531158108803806155145432438375447824338055548105880853083684969935744446956695792496234007937800725995631019830272362076548576945106030614350944103799925301453510028797639662388947423031632217124558044475858205090954050624699546284753270238605567357869758369931215767253611893095724050539889904077750039527423721913286430865307475696620075366669782241562030946455400907468245371012476492497638166455195863712084467899797455885142552595993457931532760035707969269240036805765350362797900243153912607885558141371113144744437443259676326886321327702413532996647018813795197431398586191071952466213331594750901175259546842379696347858044280460773807915567038483766010579558957844312624927042131399441071838701345186422774294695401130675865006187560257856024648175271151717848675674768416612812798794310997357746360607895621050159655039300657934982373244562690899926373881056806385842189531515572394535981589990013282076910105397997405427210562940785063727726149543318114668457019654687424852584042619849642573739329049705353916022895973650984629100585174015298060418816724677149734227892830623392640221452064895409604425579245795466852107984299551409203546558159536463660919425260827806759607465691267852889308109472827794674043970078792940204672561287880382189875374044351276345425533803215056328547055860444990434265830965623895087020015385869983032674119828757389501321398335130292293525468526814130228739893563343015490340880735658594461942409433477860004914886262392224085745803312167377153448724520240375196960597643589218994243664617770637262839243135365459887964189328827914892745099423223328290499976765648786643170971286534648776424707592757733460301501125685247481177765413294704898565758545536806090744144548832445019623021340100800394720011195255306968272810496526860695539998335725610453614138170814755317867549345334460369314948664202144243867522745044052893773988586570441842327196069540875354461257549715109842125837629451632188731054237509245046649778277125651495361863321649408825446694948810451546504049151439120382825305124466278289162597971898757475844810721699650345262065397139037262458469282728515846860496829092420063664493209791917941620139097125063036349176699574063439314005318979442552641788920858357020838284593366716604685864320719490120591404249260579838199239195479949202804075819415830398108206757610137609798815816524772902958287352591992452441088317601602418834583343874254566792037511355249869282384364515291058634461153663805709904015167776644139015778430934796176224761824910774834418142472729234994756679027848203324372299263709796732953747108069336541878285315845677056651494990783794030832277830252461698674275440251751951235034583042976172499907343281405400789302451661983484502924050865154590731071176170303188154443732989833607518690890258442735440513641914972580741724174502442515662909563236656899153188913866940813881786737846125907866536284032710382385606715906207265190948899873832611274229047414177076070682906052957774368747300372144451968673369460774207151941749333737396823173307212536150639011787339061796944624674668700525608963556488054530862056767658383827360453620718244850430617767418299692174757917330332227306470579166511571083017201469175178453438153378007635962237428054240882512977064858661309377201231550485463332657147371998082106520447603662050173300846721928239287018657799462902320179427220743178294474165531495792049933448969986077105754604708778442928087860976585825872403114749489762669744654590955010741754628806134899475597745678151420077537695480835324787346396671780481808236674059012359680576809568150623002760073092044242596288405408318914432942854333886620900774936098667569096981879234892407470963387309956628218678339044967550164537309613979904465868317408099355354669936162806134398156158360435435583680761105519844189361986585078011876898829147447944778043161922484070558192885121557973004070237372538046275169904406216108440106317917286123472531516453171815326076544199059641598499482627156217944715247445359797499656628394587000106594649276384336017410835698824483312766701334507115449013986933200800161661831668753398333474477504795877335544196530031745191532149973362718274635442814903651431492868406945378444369361245506046234763642824881787693408573988721253345949547457697617791573235566742437849394542898517238029214644057434335659139964054241918487556300022010358561226996880715973977702740848744474126569650330991643225732629737769073072344154779903802275743153581619488120963573516324383078607023623694942377089558338950656917527911659923460564884963639223088084874229778505628464913616833904754297425578885107917731731746523903475761284580581510154678114020323818336916126771001459487824894565295847794239027415466441412189817647519955658254053050684923113779067134207688952428037970986390058165118108599374230884219375003619962430094266269154447711963506820309002799600284671250076968897664906906382287303871889636226780266831087364884225914225220760064617563402705987772491985338088827913379122968047912267053632842718526538529012609223743722330045561325886296030137412391647159704100241730608962764874731356329561114865160387288233961591991124315275799683910102154580713027839986422831122613061502270370520601249503419796508534646261480860041058484810559539304156921221156406437317737119635263002833446223482900635372233726221309967563476941358032097173013360122790717645610680050588224319223817962914066303354494111225046743094876931429879505867845620335223195763395724212294270023295591341871244919422139836075199250942533015300268559938645251379512375370670587754113895376079088393330901408034940889602047779876971351908752538993174642183782982824880385806622904957279464845824562891901265721363494391687545983165722278568307156375477288446239009650551568564307175053526064218564241626821070116377178575087068445600739381158958829680945000493132245120506457187461972151362929910808701277802439649421235303314696586970237130604978231880881909671890358838481606181715920239460519657344923376936398025553314876733357857776583601674195004929207204111662539305501990050143839256917570300075935032936123215814059088547764486761246075941750029822844470399959258726721823886686329610581781725440458244636841582078333354939173867461156224460336274579907852032793065176577163440110712561991539818808793938276936579607657105968058316211654383951490408175022937417970502578896179007200397964471016396447765393971516038790481977141519904040371871284778133078341502320323251386074925065542110727588575818943087372053835471494793886901277156756977747265740035132051739810930479386383697470617514026836199338480198129773571823668521846988412197183930582974216482389940332073058306755158916797839569508124148986399173968439953346906534401791340899395310105952770124267362537651060966551535257064007900260375953946767911114699051099910940315963350090354517115072324066194646870356613971623821689910892097560116700710836060973873705762578563199405424575402136902313422621005691236445742043966417552016834975914991674633946242557574349737499496007343265815474549538288259034277027433062169744330090525765092528121572911492716686209673832589652715571962357224854150208600463588369475315588844303226349854215453622483753973098120172638183851574234117446935269937260197154653136516216690449934017502526775197926822706583611464894745389355749369838820919179100456375214555335510561822833673604255589659468197951581870126822335384406065165416233207071750221691091070598714847342426316781316428656534396954047581971482533703941340234128473388893283466791402512405033434254091765877693002853649594720997856409224645812475445392290006538348442648001325760578989432063925407078587021814175969185030042294682401957012986817812928567315497364428923368251939822805267157143122810900676391043435716430096826192024207629788065126242045831709035703261654706938970535048843733804640181877409290565111994677303055035186345002842316566946492750071758604123046969025794180441846598384595235687756088741963511294344342289690989813821613027946512028035807650300348075813224644540551350138159504573663138179716722082220577482798538681202597784755819943347533453519304319936452962865195103220613797198657207348774615936127020779520461651072624649553138943165732513930908560194667327701287180906032719664249684074373039144249795135505769562702627836412749853098006237967394590609022606016419103908681387673181752623802849235713344402861953902001163941173965973484417030804171904475931558053589367279640234290688802250057886239651600854103268715069864426226402712435005417312570161456720747926908844829548567134348813358727801755161804510449016606562271928173176086402998660975311144596433622326759120281690324810447037444606063495778087222783978444379495233885244115516718129751211653338152192251067733805897340286665383718733350930577956585023542392303201628666304451081083117981972712138935257730191933938010432565182762790371749797723609733367379164459246068381683877369750393436251935928031909626181021165909825992684354645879007074197979068628296994031881154700667989354467997940972584221918785457327499851852506613700294160893340691107075382642864077354414243991421976361231936523115197749041593113830782478530609122354849146062129237670907018171813283752188116857745090869407214720965206274930297344012142573929692898884376023928120901331806372487651853247237729695999993344550741186904800115827494472569328415376632369153110487801440967035397578869274755288648806648662452733528642552672761961398490099776259602827856030559875876483159978384174900400678491717713024119493331949526527730449997567363224973075198525071506287486374444084700486846783134590605271928677611907583736905398047794642386253240743936235933748407655654403229758082117273800799285851359154904113038621485340071655433499176868239195346899724237442541153501190948635674752906214131817150798249793600110396003180135225362025956736967404987319911083664643278576730457783717896413409033184692776488799493522250384699359616414642158427747047561632181797030463953089172051171602213929208897269694842225866776880771669784424323355893965740501743067116797048061880138447064949453505162085598794548799797839065393498937917123234582163300341465027092319471537311497279713915503336182345614098570522042072434110311571969969562319310144025339775282888104027751806692732994040991252881915404787135436888684592402573943581022005050200912457239458739103436861987590797958068098192333292329724525241486216456072172885079611159304699399036482487734546764873200882714114292779883842320366272845954445014144917344843701307728549882436799296114966353807220447117188269889173914430174961771115777441628867999233741069368228883093951519195383471660077374087320499498119108750110674864769905575924000316686972384545872221511635598989061867916993154596212187187694279441152509843107374484984624878553634262988533476183408381333128966676981647244401559054689423326968213798657221113175544556799807070828709781035969895492104268400704068481358715744545623076375969117335666958589189616175856369483414848534529884027469832449067094693914140969095400586158526395604146329897473855489245687011304404887192545043251038133821923767952134030302903120885995586458949657185066347252291155831602630548654405275032560117522740684854543712765755575181364081865755465438733162224468065010209189057296849757485606140878858990744165505308016703027509924364708624697037246688932326926289500713080446057165762215159402994491687442338623306583753684425607908987097423175825772141807265610319022531219508647099621373895002957368351856595758710879691969131806717968041143743322152422231799858159618497449511802143810054439662611834913375445124147760924092852279995981398144569403182409354120312029048659172061921342044697040960660896743095784742380397668368765137498651999925682970750999659049804097938825235094933632455333257588389489339505774251829132158083792328770209663882646654823156279821374632531221132683694788868415885220963437028536499276253879729681755136230664696859996884864224407623429813731904200731228423317589756433348998100612831720529203965336701077495755131386693131266847273921780973183215539898043060921214686003970752251055329035459344027645344804193439580770292550097145493923805760167778254523750784690039008515218355015047438831598058286908221178049698490076278228254596695311036140015315088639921579416304452774816327277548868061176672182334895880461166950393450399039384659559877728130013311351326117913496805488814592512997327044908000939832481192034426336947613373207455246207394329808259257699240804068088175646384850479559576932782977686594295966074840111800710698987920809219398614090961500375383433117172050732959403726254476008083445890511848197207494754941469214989896133023274294600768517159644533325313750398498147123222722578406372475603097760657422070134443748968288007309274616521811272297296953288945729163575099332714728658931346278300853678309192157196670200370482172783405233451838680383209693475386416484741212939473799756495375805249598846342121967243628370282673165447798557230334419478028806808125292504756912858075856772409076720573534678555140235872269798364325724569855032213680872180880996548896371656779533302981798318907879236294532692753059935109329778759784737901972770859446885652020594126637727174335613035727570578449566789574991598240681387729617022362979807123914397449916458656080307856104944125479784181885064309579689167093455983118698956772741334768101233000945172419989618066326375967817826969524864203764937109633388525989682571879018878248868833173690059367812730461187860493640929415278780237389074995335378113840752355247837084468037972095012304153824975169851103845702650047493086897004744151676993624208278103889104500893889869779371753796866866905356866958932414034346623884609599475782468174987006097534532319586133838200795615465702714128262148001061150833730543855116709676943585644627969322567284064357443764472134785644578075432659598854279829052167836318296609048588173528593008711147515234372836327729666257007549990170284529346125222768097883954946739848889675529952520536408204910568169550556694554972899257669776807224155620339504886563548600453969288017663463709497699742745286897787110797441845704999541050927318458162728192250107967614950514069025691256244458310556160676775066622485248814895590326911560247065450399431711202002494807542281115586865942725085876671696968294629578793440084528658445131676896560264789475294152662332126122027584168334857126297961213141065014975680557186596243644119050570766554799512819580836896542712826250904982324154823182788764431715317137393158270574573204990141381991390373839346399059566452638140528418175252357564163319906764445730876414330021707686650537288857581467537278291327687489962957298524837813463457926595792917304293734274760032176379246780835995155942593748254321471808751405383288150318574147774561459532354707449065754030222618414993590718874232049587739550410255596032043811818750405096114347711902097704129831160027822801582182881752353448816329048222258153576898470773841260255886882905085935580832054227001179459941772342813756085792043380854916312079944068719090363225339817217269191182545922718343969454822041774430101638659795939529835749439371339176258186633271171981280570114241934041877001454155843797720430825597741770503533987585355480700009842623996689125196344785887873043783206102017773081754967567959802426715136678296438119946757642536920027399401368722915212555238705648249695603225242594120254891496401785301789989625098747817128875310107468065656320837040557890921555625319279752845067481514844734973340283484067200403853399046422150669743349647023789118422395156753691984513883469888164866642444282196617597052322822702279290361406346780125388484894722732975742469889149948442083212995663597679519087039784258770002464313394147175578579839209926474405542450666217417317094559765104667628889789710431923164672996227456913698552861009099528703733526582407886402945678430469054836568665825681132445994219592543101514657973181502531995917472992941283864315987142205495202888949993748961232604052144094903151867070524166910831193861612121415425180250548299744137826001625065500824814858267142565884833046088759139717477404223143030072313988312417394254907961412556090983406295592764955545502841525847279581268081506577693671674454043256594140201741591810747781372942734305702468779647459786931143182939661376444690239358201139854246686287081324565678169625079783479386235346800941583572184744562933561901076552635029777090336574699607117553381408136509985831071072985014251398859871220666743333131302900247479831738137543354094109964650503980066363516629698559046910064346640719381509643624192922304809812057746737064136641822546510626395048488428652307409504726071061277352807011168148145860998513118989646458937493724216382414846368666090848184966744248670005619993282745126736799912102699964294800686767808085335643047511044688800243916790716576165259757144315736648011234563771946813205712659715696283311368958665855027843937464915575778026637818543333923081629807678297083685272875960371366913578976633086029227649265543276607104524386784168731799632939736093849684907070491951724799218990774221736690244578960207008045277269961006298401964683580116967451225778698755852271822330169231060475818612377611915795623113094836612113108342947438140887349431334537818192718622222143767305840737491937697997571306263459428719559443630503687744797315655036658883499939358583623658031903305410035374874427076870653823999009876438601187511548890674579042113460212979735455550461279705800922701953460803881358266798909527650276427277954259563699045762804107710745701064130464961503052433218458971338972077305119860048944549358948579309393449292486432274757435854437727339507828907456822926613494013853026536974928217111806667808068441828841834823607131072689528047459588553656684687384622045752072056501164804280610692106296600360220346706584168344057979957329986647523484072336932451207446063423053256356416893539999267939408403039490936714623635237989339861799737411599921213106958569885544448065636436076341318490746085790505739521985496154838631564665220668799255881296213458796695901025502513193085715011889795566074266716543634887570725959693076994372302946053687532138841776015366555472935197841179189174881822321723702885429915993151504689993362611572266703731791421069873505161640879848194480386250441026995451644808376625026484243159376090733082183830343217919063456877407873977874714048614283517113034772687336217519986358111968165234623996460220786729855433465457196692052259736058014981891609640263370983946462806153443550738920680320558125242920462934591616681606312238192376685528524556049856203820899014466118111863538193357424429844174132264996785480584769872097035222346582309684466549511452302755096823275227994641841312443615800452146828937676667922007850124244071769775957020232164049616493412159299731360942219485597162720148174947730244561788822331992053409826998439689774088283030682606476636704066666243830844490661766465641911872685462163474421781688473060486382220723421225888857314967731064786605065309647630770706633992742803045433004092051641060505174775007905889958633109736079783194549323072216591175658335046263221687162579650304820090607147324644124568879364805995572703049326830321146726319135976337882799118175548141044645872128252092500216597364402237859489314908456683970660134984528655176712236687229403866624771484968827755243646131279149086632272980896891554831339975342984882727043930853555844332960295889493416530858671532969646469855305286113838395014305305960008016090913381378913919188632890873200524362611247826591347527173942076671747814358614037890152431974609353576104542715341939102467235742909789174128177106220389950173494918482330994989654448274620487849481302630741922856020046971369497908477243383319899667954192536321661392078238808947437815620426758474822264463325027191382319697467911528496634155535177177110942808933971976599705341629890769013545244216741123042008923439130116772860006800981645682564026576696831871628616514569205505987630014811173499039464512991417274830850249493708257037938592612451522028401599450027176535981313385893749839565726659228184666473831906129355997415451020630571233203780398732411015475063337494413627143933413423596725019156911804912578991690866840543315786153740036247265835544341075925944446024882358252304437601311008141075432073148499576204001140643231917272990054244484655067067370551391877988765703991731407166953314814502944147391053166022871565383224154493168559713850392702972384107822407652453950773913351572174680105281282174780038531882703829838658237964743484109637013569667276097858587413016202996765339117806304611078536621473479998760018967523539994225888671070691713193089187969276236645228713682452079699312362197377367078230192052889870675280612869736113982667867116318759891656904807525629241685864267751984137349374941903275332355841968915472839226194781432307022908631691084471657237293368641374105635054481727185970164475928888609404981019799420820850561191785428184191590155217286612579582479331614224688442854621537921188384885855925400949343746989668711041936736909887395737013676691792229181986275147412419156863312567850360910993167190533658988922199962351295720064846051842562318913794720515572102760401292785390293133235177848301108771814374790054070663524331756014888515804319978985702353051332701848408921091348292949356528467547142172915127375173812158034158034732421733892052293912460514941754776739824734533401615606753055866731483367128033022774416187424915001309236709525185453013829917989046085069442029433670608146002527993086605174032632270954748589793955594325034770201282185799569545651608499945603426322372546627643714024409043701482379584693012204693982208878043762302343559453869007861503756886701126356071474589883313687637524258697657037568993019750140022442432355517187408494077042139855578043310928310988199316965968030821034227238732332720949876131424101496228157080592869563119648763389079113820673484487079165790284698597197433251446127126143797232169332600575574392959373687734782071736190956632508474735762646129964152808210674393118420552601045522833105255305579633456743566727940015496249296390203643575199011658818339029967814996890284029873982099373056175217100012621715784668968597718379870335659853911776505197658728183094013894203458483916210934614436747441086200662410264084423075168373076857986317009498535765766825179016582688931945919448831248815688450759732047591622323240329074195359112270723070859979283483433086736814667959167799276422842484226181625012954963253645754448008321325584232350391461167179013920042145809597582105389277754821351184702995405265683872995551337136502310120523963712759647957105005724635433605975454074406287453427928117262784067676932118660628841237113047500553075050690140065648228505062766858556350771298555095033807339108848487696802002810062842903822954684016037855080125943864155267515434340085113427396113062542788623479789760570165129815169370270006330251940327759550447530900761307188776750306355375093302138647945240320115039787219750191372516117818437487032256748483208068864601785792317655813779235980713064832678823084578369582397997941117590851043990181857520640971841582036892743050406280432179050272499604457147021356446238979920062529692231173178247105699444091126611855744410192675719733360048541313724520476742577736019617363889307495316161871717723591895098816330477813358974641303049577482523546335054598189940256374264036824451028484008778030414632456441779889955307935798587065422435099698946060824180006658222244312082016890759777941759521740313640455682013784090272734614294922658855165975951029609246217209423646788108653015005844214361589805822890680683131111639264845414985154248546479666859819419521235172369423117148908689907342815459078752780694463749172936278674019550469539400442421285337696545673335307023408694113692863395658117515809231200209265362004671817519223192907045391151284728108899101259633720345169648303779072146690912574827857751333016076912209643570546808778506552984568338900507021859609238059889039572229080186306814440474934935256076636223706941462306689304173039094120346470850886127156342406432291614342920282251354067949527232411054488480027541341907411505768242188930550928896547154104118339312878919707608987218958450082431252908087235363616240392237898719913018208671232253054374478850780024902793096363916552206067988149772324099557080005180079151277892528701726961168961294134912970679961152528516550235635016330821820273254109338286509164052392446882622792405221788681981492326431055298798279912792706508924580108026345198773370975583392333540410543986437522658853713141173764883311414001332254509463428271716222660126173461125266746574724369184773258783529866167506852644222832248930986176336500341345359084244556265112633844122796183638119715456625313243007829391122286923597032546679015004220563060791788657215692252012732272478789823143822992309073461990623734652374770929656752760232012405315734071985091740686280120322033766817639628849759387815596589529624506671916277871014863834423937192739329546952799269753158715116603215722163479352993049331553591266706463550930192142147904939865976737439294209530274284408826329608840206478886326959071229157479326050862547060617392983203548578160119597748920143234243095974344260130855375432402792783301058334074630720928857656472360913762484003199156139790852654641140715932336815974068981796695074390682839091640070371568056162783978481007439107933180413351145540734218838002247200789422448653107342699268294894603238086223994363031586627611468525577211132234055515289362364923195169850779545264660754834875965503071971420336811053427029661137434964810512611158683911239935154786608318072378345553085329342664189267620300312528889656822137679369390735706140542457059114571031391427726792097333350757196311785404529994576676634910312146531740375696576453077355821318356583836536747336633825298740195087072683800633579798149451636441580767855084365715919560989569896692724068807550270518293488537491764848903322983962528081962916395023643258673708978298217379350382032556938124815119641517995360733496423489497528566954019088132625775881761498735272092238179221746522723555705337938409346769933767412667777049958694827770551134410795899370163277022241905165395693052112643853675693599642498658641755169764426058103015683052066013536887764913900768516659658817632300101739570179924939735072176732492590911891128427980157487901273179164135424337992646313220607865337715378038976731279123682675562576991234467935896310288697351788560183650003745420727445253195019173754959204256579053633609872279385699514805625362537942096938188661726222133703479340869353121576624368547662775823751553548820937008669048126280874897835083512583221026281394488012448232195642766248050372372827602154173136500087198302296653880177603287175321075663795478191458729364779697538212071542969342261403731862036293421189174536781638628793217555537941872837910410883815205857343945002294780026140464986397572937933392003318696275497047360360807139725636098338302991525560846325011756796376840070562504919668495484812200184333718190902677838016313208908156121138466198233100802818593404792314762826144637134469404052356227254516236687619724986948222584817373575327640218689361584220252869927589608572752765254738923360430954157698394264691596564421065456277041352309313245998031245854213252301600316146429630356413746465379856442144191554360087976780234976230663325183095499202127355519597988368312193487810312955449086279742512539632122168870264663797464975518568222727729746270155498853652006424155731168953477669286259165308602146582142881439518677345356797340766639968205956026329489954762849242500465177809533774605194085069943032634224327958294217700410771064728367655689603153856106967775614763798117002881684525209813537665356323185812289883484624183799308923330705580775195505232505604727455607135898843962963152650896902643184030946038860670248227858194893802413927340513936561948481322460980055727825014080044298665993500722031673034037865210782321332420679301184520500958685375918541572547599941194601257405458268192455880433256372506082337229827986053635759750221313812487338976439337193880922578689345796589128683610067001137059580612589308635834286952391665922431778921143591032709058769829808200398741335549920283043320622550882216202522041632344483459583052173108157449826866384672537406909617681204737239537410449592294127120062743232499437415590864188946547563147898166835389734621174029767059678803053634532043169775972502840219596170997864153261161848376945990785404817234903211466802407893705500100601251004984857235892646628750870162053802293484907655458795312691416373976385130470958429663763615238219418756132837628670812833901931832563711482052751525677066625416194326320488697696933106204391821342165363179883880141612956323667309602289215425239239439420728972700293330605491272745000453161317321846664581948085099072789573874179288594134395440261772734394185530575151265352772237669509602955924819118375952010549915095085522831900188427360889906212367739157666603212017661072886416570688995518147269882092683312496436358823134796966356363859446334712606758457087581557911877156312252089708322419419262708837439274689396744886179571483449424045673838114733163284180065942043231389427592304794791860577611783625516657332127711156660506151549716087390271446611333790918960650428334202895792427536926278336058452008123085543467454289461273540470191450763938519676918102859491107550622833369942148994786263644792899091542733694762115032311471235698558782175683758315235795159460692825679030960764641115011390773395423114050203662186500871297589121267106042749783760847882538147185486569664540765095793298828623404336085371910263565937116944766880598819665077595792499137369942103480776992800719592458662762708875619748432117671255528974810591064737365517962755136990994711037942384809332941876356009598718813668711721449807140474259667830223359410906258132369321600457571571246191346160371970716987299852485930358409154033684282763997375026379957311599320946166079628121107724335825363134891812403461504856396714308926675941123272683249852423745458866617190427779885652806918518546843281844706102145358284081378010855606325097537764701361156818754877235525239322674517254918161969215519846323339742552839957159092991911741316437274724054782495348297800638534478260557886504648518059223390859963536440868537183903300389956731569756242712343261240766301165654544936921167414359719983478904970369170875690001803287268992406521621816392779855942323218019220442578911715978332831442872167141926124973279260579143625565047037698923820558365222129228725721386033958668351683229767679622571024551169309555236527618041417895358178097146328551369445482376565949199365217944284960746520383315654116416066335664002598780497625564706901012644359977741419204965842126908659620970726643667953412770380125437928807970078655309642597186997538302658245359470774808282561368240355597894062601132722886917445755220207149231968257898290693807381144574755365476608629854878859614812794602361653110827286780231333293600127296181641847095696031663294812802948784901027778365482446158877573458933201480967944520772874413803151123744510031942300781254319131491549747730944377641539023877675579606805094471632892134960637753374488459248791735830647497773043998013031589353530807958438119580898854723342817625035013399901694459745442585083565067299904058371538401365185452071557006894961144863642087856778405215182666581394928153608613552802031688768065160241516625405260904523206248300215304472599384742705524519686029126393703827825788359970358714852356597463481024909015881115947060619838168232173691665299973037102871223269570880296459852038615391866506912331455384824528718617328865738098293766199693293947207853737264045187327096917918333020071462367591587225203948409841747321719168611213401340282680467942735694804758048387020061136743519355354273316254305517705338660762910736280382036819117292657909219919707258180078355829185055700639988690278806769125729928155414989918808525033703405452007184258915524438438498334512351200824613552141036623213449448481487031809591128733891843298198738617593369327139413897124946357332248290561901015588487278118847540035241606057225709404566527394012192918943404457050117814816305521161244268053301141662922883003650564186635492718340193400408469394849468767507135721825949104514294351112382705875278766736680939050261648779372486663634786505717078883025385212880623570198824788313724129688162296362004328854484842607014417447557926443836462984702674542897402443636627425454170856246067484041601450599649165605063133048889451927068998411581891877344359710037144548442540860987504060992468342994275023524721238507711878191337705235016368563022549589639935878703816220606033181400270180517540067350547800904332819945646263349381846688296208900473109751008404218054332764499742174882739818614113678730051788451338534684542655869752236439503877640035496131008186212008246945749379092443676596152767998840318170747813830589677251932632104304572895586525891136296460607208731146336197780807377664571119034965904099517258691310893589821572356629061371535103566727259540565526857931672911201147604079247211956504488102581595529109443911085403873659776427057125672035728545337235037672169509755238453070701010530371250418918425660402670721075435461086128575228563829491760901627804735197215386990904694205075197928570748653112778823068768497145590870776342891362037545283569466858018736130121762555524598776264027007310577204330532445728421030400813268331675789994213253451627603928194237974007187227065975327519157625898445059363005945683584579695739011466929717123408919038847577524278939398792850480055901542331172881807929910551308900182790579118269409716379131618158839260962285510001766695990946703471095820384607596856946597813953555282641201195301003066365165027878085020495182787873350664227108656373960572874883041427691180138521214078851407945018011414356850136090047773670719277077664671187305937974813245107430697447504236120715964747459060669794719432737546455986537098191016944167343118686307188903715078501796210701375609745409302091874930004636532019676923298004855846715195018615005994558284908048715479525492283062759693962633357814316783723680975963125192978161818567985211095401892596976113682902828298388904355648671736956550326347683810188699591680920749419488166228755003998740199504034854536575556452047484862056108403630152880996611257528915769464165962646044294279327212486594299990967951457144436778774328117166179185488960210548230710408610896831811263376801428433532675242199136383568620790911213850328837947991736570131011571120744070019146605815288643819097353364810197023127010765878734308698411350484856897198439299959259113859230604936530471275043638758731486612150590578580078351774761988985163828151948522512247440436339248199994548417697472471983564181499558601163571507641009262896280715120664723531335981803253167222563200139583386836950653221308432119386829953477190313312135990282972479139735727909695948848692287361821676048140853974048659495058002671595914206695474045286232816606498952453501152442228991256424300488221638423354718031613144613520281580934864974095826895692662083588071610262674944961980992576680675520744821378219429329824117584817901952350846328509869186945035180926181915007796176065245406316182422373724610859405563121484215180574196454241937967460082912523156814129219768503089513908150110665521005665497975792245802088913545502707763552481002658366279558768604348902829229458878328694430439625548677849202334715300883229722076391475456604213402399037374298380966039423376067525658452977890988572944845522848443324375820179483730132403449996726916207516978247455686166401310328045359575131340203279427232182775257308590018190577318647105246114566478568304177468382532814260002807791352708758327191814410060448220804516290248676646635493538298011570992210061020335841537616321500300138806923872914504351339749618254847530121807870922116522213644781892068861433456971448900355441316650660811677634210311014100854563536693828356625466303382370400657021173353183160335157786831021511612603983000514775586850905558334410608768099696541336685127720573025544541460065666114959897523017845322218240298246071400913642025307702311503730983400723216425077551501344242963194282861641743440935193509208895893352984953570226341985255489539946947631351002644636550582648350124340781085140806368190801879870440792791488843028859225903464500070133219067972646542339596810828858631913695337774473548954670734450669702859930197951815641342216383319610428983971473787181396883880900232588896545348377822609981987470860505238534932557553803214449460530243964170209379386409864183164440043200456245325681709877887528152612360966479901583088863341228204164359473252373541113414556079256914291826542873208715742542653896431145085068065607386538166677665582549185954337704129004020192623957467957231919271392724997279069716380156164102714524298498002088663072653745825187585160789129201769916674286248899575920721445162231543397110049292125574184925934454268769867168329064895601540735526747427570069665599889522158946794952778489144910057223325033583334286021539045963902048774847768722049758301278862962573926541839829466480172925084843664109204560044617657947464425880054919398501803364120691226936568024947167186265889924988988433470265437289824086273476640547253104804261388916162633968943893961177990737219553543527204411074648781626936743215128983887112916598002081641390576712831119353070846932687751466125395743731451235328795929963458917061570732773795170837763711715780604585866526307878805882531937671030391014007503638319237882251224551179530261601749594275161322051040247475368317250402455195630959387138580497758566404845960257916097142608564379638630912873509092181562429206917923669863055391546011519681920376395518759272872850178159879061452375549647952855626685710732191246644987169419811624043814373029240627834773303643303529608679804234934358398757983742632629790369248697854969017588951925978573020072619746757688673320565047344316791840733846360345413352009911408303589674130669854954388995751944365555571500244184822539565875599922835071967742045694990541205879514706567821354885487632214247037609353906536245499937113742059835546838022320767755031925656557019014201956710526970459250906510351203375238810530432787497883639106422829170266337205682547096669658613943732352423569890083839396284191803240044903730825536722311061142827198279748804804070333484372617292072569095520075119113248961936911918039284255524886700310845410029096926624660158618580659076251571310247661271315817278599843152906721313689369932396358121246349383843972660015416501106405940722834576729606870620144345518133785566627698378957197758637175652836672454817773482271155744605413120213066905765826886523958045340720726067346395486831807968684659181886187347167225038787429166531345017581534438650294613000061396130284152536217546618394657130878499950665863407130751114031043476966812987236703869421471118523892528503948825994475490408293542875605746085266867644270556129748103356023026059151772077081809845326754155008181230226229589660153281337755977537031259086097049998438764808687511287779417733277873652755346665057914713471975916354778049974123824968364587360060809283547171562200305934235838869958117134950136215424350342913438478930751547827105942013821606897884300798204866370310112704401612367270686946626413645700850729041335987243034549797464475341913433471916561787319242498623461609632997552603353548593705157441958374464715665149225327584135124173666522373323934699662793823943061148366128432452234907197663233733248989992825800467076114946492392466632815147808364803477973188159076749265545567406977694466225144733261132486121684273804796179099531339131071476611875943011554721220429901606904366205385376619995489645546120677747860293419210106774783764643917333624890831798840767739625440263147209444888999945625750779152771291620847635088457374714400014699525516699537949430991251517939877248613433994272729945111030908300138985390393396070191000489902750951863998980291859878019567441195795814402941512573495923125677263491861824242889590101489739180438211625417660545141374624281505384296131406616631554002915648862390475894078723636997553789307881572946952386036551553614300320173717458271527149014658703147348635908142421075558431656892174241101772313311008511705048994685131614056265405732101919663728867341053487143922835605588444414041622953148986451289019249316248416111618593986353114022621226314954603034275385630960923555482056209729589787414267301829640255016090970699072728065420179316977282456925402264203220973573586321095070896143221774057267714142729329562634587094638575766507551633551073992843818584532669600189398518615852325878373893084714078327224986203506199536238906858808738322155302680645197527493046396225292118203140104409824341696986552992315769441477420994376690648558250900599283833225588136349352936483175677473759178891449292597106282617302625052255526838669333943792308484431096744976175177577385652485145334835099853770555309559730001690375685417864121018129194886440548450919685062167751618190423940750184287273186046002772775587167892989358777300553332377129481232294468245698470873991201697034523780910318007182231785119256027582655477188546903326227604812804061281080575200219680721933796104602188142176209790947364315031557656881677249605488899294198664458315843559792425285131144948151696838768207343307119048129610050642810700607497086803793902813476065217716003676567117214050237263848855894751407119408444385616286572336839013579246697200851108544968101112876451228294248196596353522793821272579810882467929653044173697898273619654599090226524025435012170454920214290789706386898490737609264064822362610659177108523079784669175138133809236410609555380652265123191561771865141563611516113703977319323762229430191544363348227174801781589489715523569180787755917365278081208110094899407325446413209198007700270841522258001399124609292970455958468720761911367406287076418011587479973267672805670618687325330163363460173216105470607526575837893882929645173795829678864290771300848546461883743131766313014892125740436965412214327751378111599260723938951165287688587241912765049788024471798892682973009398992540297602942335303812175287500043631049036509224970484998819753334600234302510659999322780597327613746646306363678520989432082883342050326311178892740759303285403009201600391407309453164242476196342532339219752160651234077117379947907707037025623645909550070195553420933299678984734202764501433263928697501571889586131311294057791902934715284094787612229289558495811944645894508300703146700207152782406591472497505670110153274542016881503644205538668995207300761878966372500592856185503569715672528856644276864494084369719964995925633053678518787464006421763072499042646953866710481415099369923919175183798913303555579354663486872352180914013708193180867477225392780586257578317011348475759088500139835803729521037369046719302964361163335877862360930469817144930540209259466728380300446217106610046355914086399528107873828184214465288475082862283936453055907735797793921268675624506649655992947584295195923796934509241852252831147569952836735398835807997013878628005319285703211679968289537611588490686342810641526834527063135829356815960672613979375796808486997851840534031798120478838568447115858794550165259707247162073573075651241752387647376695688542202793943765754096695440367875010146149765307894030991213679993566550839716707838193745171663005603483248701386734674614934847893971402807287561100710028506469222933869092536186564840798101635444511573636500413789352526158466875729507893697963993951897334985669005840490467821119204310282147005069794466555966133410540258442819039660674567490699545388712487511756836346953769419373252126024888319855484225564513681622572047682687100821640730450094386497173683235116591369709435325396045562332592227930767862392226462178159487134033795059972213061013946935425369103482639824745947451858754558238368741378585131569540357249459757109731452887733766413858432414881683256572416770518631735526255359096510110298959613602490688233732909215263397345741473399705033845789228909215602729564473393775659645672677887072843012791963928707411532850170986533504550188322365396972599858411142039716912313134828392941416979458182132043173471343065301553938045976539198267737665217644029545127202323372149042597890954721005135089486637836692179849400009561109233622901585935292873430954950197439666397261097873745160926396691388893107487274919689093305769062125357035776788893667694828964635111318870435725012969693300141160500014479771070287939252626881971613505115144461364719343895014547138686376726908700602159382546976933736517439264461181052463383102128670488730489390191050827254067882236516928979940539360696261288224735665481191907241188809693306146356166905237108999848891632679262293353833984083571107218890672605714612505133916620730471999372925407990443372838262642300879932570241897240341596273261858736723548053915514211114400445209287810377732026061109272266883814296219565800910923902861951683317800430610918857719566582517258375809097062535655533163865531220546964773834037265027867691691580667090242297526166271981444146267417336310788025270230828866934199641355448125452691074276083838135641809819162057899736777191895080373926854872289830900154895848464721072459992032653350513643955839690262855276510594553694947201798332476628910420310421029745105497816475708579049650983670066471285176335580027759534442884123328044497987500825705687990286676801151993161098171773905881761644514011905359974503456123652020644605102788240190451997746115587512971310384644318869681878436317934833564378059537189437740652491851825184446606938435970526067248457839064928421495506612272459153239410074849205259818986049198246524327724248352454954221383297679713647683672225538850165202930138558207673523767572547057907792151261529630145058208506481932867690371497606387071622941456199582711490017157538633962614403663979330561787364239082555086151172587134876610744665163079213936481295364206148749427854427599163747660585434548229220785466020565709720792495284900215168581328224182851764255700320603872880323151426943322092684453484508211678852682878645607968881208143319484179939248707636563019768437823167559370226953030270360268391234876276836073133640712246405342335706450520513977470663150520038377866365194752904736522965966893262889907911539047226554473388180323815563678499230291174430558831591133948122193786289077604478654978372586143583675660003861914949248499206177172762541489816059036988584311674616970458556344500553943759894288067355959079588093352639300560827796933714057247686284402230701921388813775923303166425219178559688780301695029755539521036536626775301409445624956982987227454727833112976715667070217669445147265802694759044410014005869056198416614164368556208134587920454946510006245205077424623235359024394222708104436285028142363937872721844624246881364878744039759640398373416286019959482824909765836511624153294957562788852183404645737262986975266386818159855429368252969882557654101535117667249377277330416326426107083917652939793091547706460321384821619188987659391653249909824656712547130927191035844766183580408902597427119604735215521849353011647587434925690898547294569739374493299241372697838363144710083326066215848974790716187222232198879935542967445488939190601846274695769803597563459591185542751254420130199062823633462485512348319389654753777228101472845651831042572736630483200990686325542995107968234283879696193652351568955597424878440474958823144281104391619798040055388281327525212515355967796555077346318268908841999871672906788453519040230442346415117802436964067950882082417193691975044730830011533987221222941188641768075250678403304290182609674338768681085018561165894909605879811845664208934913405171234908266467814069436340128330450846037062887595670689643513001611984711153347847020684686930905283876588979416048517630227456647426514716200530923502819461447210400110865480259108973369720464910035497934172920071751036654668823353680353685627782555851319113208768808783579655584313245260546855240416771597501039791538524734705263911495668888433925497370841876168473346046015514513874469412841127386521216545539591740481410751085535201909868206559653319005223065893531284541692342009380546292209751365023847213613781511165849689884197316702891532991754335857013564479876059355990968374082248695920820156419124021199555532370951602990478590091790070569133148832414844970714894339984489200958924321626172389700102499962434901877138570385213112090746683792633643929524961012565208719021613813721817138347954152375584698357033789752492220364429996529328624761707444978683131976601153928729652986409884097539208714121573010190719295783418146767034447356774484623225178459849695342464257883494235892094614167658084565751148256494893538943056588779049112769816614987578343880690628726612881985998551450018013332051234879158056775976693692793025160285659141192304606056565149721325315143859307690560036146579869878638193128121187440844920974674162081247791434247887188127885727926273697322903260694838835885120460507044334369982394504742694621222404368617806681377786113966192263352203629726797959580995618984429570056122037161693520537328301477242483706879248350361954658390346226817706408945037355484001483037910024185571907868310247801612215376607419365829699983577179581258421226112916931736892889355121060672062716084000687491727320721962765951928303152839810703634587671527788630950040655678352568003667756429476201766972624263038167933909943289361956818053623285010197099345223830231701946879947311906129748552116368602005847570443987280221918192392707147603162637734728027796422242785946028798004880318847066625345403450380805020251654823801585944526895637477899422095040093936019896749844802219940842488562916753398794441908621507421792363802739414193113516522063176105152648346170932303062971783182115265116117872421527765886837388137407560924482037531121666623553180505557831222312826037283100552165874551207736614448303992493061271564105374779489084242239875345599085589641557831336161133933876202056378528923906542596760854901666224058579490805426687443573573950975818309465519050073372607673717051868016492539481295212546634981207716668940688996862715857697329557315413764468338044804315975218404518198668186336551408776165231236353168074122186548003505121921440348620581512957795498106203171694718195368261188210029207507561289854250129812445443221526534674845099354289724623781935646987465743509972681579901912779187167327277431859841145478582260448021109353059733975507126952974398175425350234440578246280091328979035735648176252756969450692680623986680023309302676768648582772822538565129023219171124100083694859907609011122321406812540134860762716523614328063983558049927329317985651895050897499447928203837902983061578004567015798439601100394508980170515225147082084783752974024544480884873133636866604099880973993261346217775842120129097754171388611013031638276945218592423087726905762628182063418261467038191487077991470287109804260071018648261233211948707537053439540591648533468380386990777408579393497392565713447789115035440795608179359106626733223024900779979643812829796457184813285369249967478362439883070012319324236014148126103464840236736844341044514130944678095418903075136404465358890108516649933136051761375294917875944547932628264937981528855027664204881487445080829494984601128223607361462953985719696741040031121170399528280917471753241600866029405189921549117871141179665867669975805526566355218854720087928988743042729989988424345562683927050801526885731261402698158123463115653248823908726429285247156704412284459026601560615163635863537172070945576192951365540776110679175284245655575163387219110303637373625029985765089180777849254634624156022436139160088542020725177481680783306873666901420899050613185657427635470114814062188014259918482630514370265421512065057291848905255195533375575651216180966334979347382839748447141340210137851052197096251551666529368516056654205551051043857951495810293416483790425993599337230459076925666875829266807068415863876312893941816272795607772068566387651148908118960887624250500540435730540941703856859951681274252671472792381740804412013158560239553363848310204889280116664676339290266693722875488324728556890055749773366400829169572674105314932959199434077544915847184029440937703650515846450640387731805966333221815817769556640333225642233901826657974919830847093058981984727651336605524537657779768217479853781117023734846448942795044982493664823480436709693181339179234888273504893127165583160582379876527733055524850957513687542173934923034934334370449750510710367538312984713761316009243471452946976565919188593459852574780109543086293081608191165823651081600328057501829237819964313805654651601692392466085272607581202086857916100621959635232635351932345924152867180113339549715862225176645586162522854360634196733002621658207365172337235199269851692823004511327679915994524145174452975211719195613749531159691313621970721279723689936404707434833060603618616752242962961583027387515375668850968447519724075012082460330135254494852119511616490023262624631664190493030261905875284865505326020003211154030031829220761567058172657634576718930668561796024262420410154687364075552228302020492034960695975644620000542241729336916129848902084818919081698941627487896616643618159570701979408718632559983017177962316245863026012561007641979429040564510954978475087167562686917105716120469787988385999926465306958603830661257037916186495674052179088756660105706571200820826470258452284465589776075822856255371585366729326300916097504701035147063897134962962070660766345476178714689367158324896651203897749720071754062922103983290579557199942275815149957466858502452517867689718049470298317750412269221782016961243972090597341256546751677572671606160068485250829145726551513984136273587745476798637319211438010949466103068388013876958313058958498748036826934790098363413464654160837325479957743291482622560251260154229888234736398577917442965100682070465173281766660952028239067176232526132743431116474665519594780206734667162452535871311554492348996228760721760359059980358824220713744749361906633669730203366771612956947873825492746863661300525900275791555827062759863985133411202610279841920446539268905827612899973881897003644456881630343492385343066251243135233334310560295009160556402999072606348434986805415673769198964380942858353189674382256730203717827807376644149824013242036735888955765986737677001112155674703131672423200975222281362136959351801287617938411371549541314078947080269106671596440989642057098172426154989388941413512153348548374460665330496702546077367719630820785400206018506061334226399056845604523829658251281491681410125557602417041320122483345693713396748079974916612244713877551810010845273662947132036274193099833286811727139860382274677458611096668311296603246515506289387532789376040258957631728341179092140655265252794216488600839998382595843014581743110523314199070026570219986540144762716158030000183279351599588243799496988352716174768137223079510638691112946606837295278808683273931722160480821103525306041631777006043423115454259725697598428589564567372623535271907598010904021866432181575057336135238892432453950186033191733008141748186477807571064407411848646739843948381859250910404951693793132986782463632630936019081715891809308452023352981624346865010087763408466555017157339791495190987828997348306413259992207775151238769439926959251252700105290478712673637875679960150365741999441983447516415374764526238715241631840358124795784136447007679194360584207070437508719534019434388186074303140816785412971589940623326817931315345273977363278722179467565583752571371847651164412877848608586546438705978400502203533631744167181336186678454190702837742852791840927259501631884597531230262749120174045853749593491013016067951970921888413855564637643383272441630790528911632270971372621190250211238129048166371874886660512866091226433369400238205195740558365077512652542817010531951289355261813893484758575603930645103807705162301024537889350662427406113881683693141188122647391004693221763951478272479516115858024492854270779378419542716814240915476005178606682028607531584599264507521426820787317018636249535115997870401963130959704027021347949311669703923392468976866341907526220506939732708631763321370195922037128752445884718816651124887916017560221568355968313213142829765764311525635801085244484743411830088946962153784639877283893862332466374744821638972239000493870569275554969398704761571995602586602173982780290163365336995474794165932372297256955721040710789985792616780280452037976075551050567169016164690902655959250357618088734478552061130866692888964054489996789396984874474669260226893180600533027681305465497482711531070183294776223549682196504886373339024139246354646411109106621246069129615074231178940591314431400287149586907835292343154833896758996439884895058800148397933244973869495301530043459554459214123923546448621822164356166631221579134919787402616673905893887214598016117318971834127608733743709061230804480732023877833445732070619881881329791148773016685855670865593368057451355676204429038741415393973912945176492048602744130301598085386169391622454782666069360187141262711134705855797622357702925929847916716071839393269622941762084977717664754100394192895400274068630723339056670274852623794963390612221981636592361316156933636839638841015676770356126398980276313863629556740525793587602053914498869162104588655153665954527959451573292214351264854564472382400292752714178083296161349533837571041836441436609266611032480727177727937773992807231757897588733264634198492913130516029903030326202775572862622549880989791604857127532636976520980653077507992949608942549545719005126497736835981986990200483129976140738177507523344920648685639391346594425010340910576534432062776934937070056841768915188453236355796816395846555853159465289119577564721562254889223202111230675276570460928212769780797950105983590544339297625620626129791523209808062512754608293567166207076370389775941431490366807258086411225398860276928699634986794800844699178585547750193789475563071271425463644740905648577508101011284948339049805933512816665301309005918379752072989301878339979828678575539629163018462232015514128709460750528855522545459716026030574413234570435099530344682117291628513450124340780330302396488963613696402243385020201027565696814600246014440378338273759203341300567071786519069152421197674842009375632075631484301418795518282910441624806332170809332199649325793816120072433761949810775777805467743592750497405291196218411250490181670147989923729927120047046782163626714049921373386195760789684005407803403897149550292243770057959921080266882607094831039465009594107309956019710627101899488778794824642817247753863842479538697139443452005957025097661021990021009330294975965003226606338146437832180054436408547499053162943588862027021483761422631482548424272284342932416829803132810797857731856276790254204398157484631257906086604889448348553153902805209785505307975946063608554119080776892390980954108996722665196011509766888296725509302137692071369476384882262230504756272959232255623423314759313620472224041242331396545986688488625206664527199642859526148638325286052653745893719879622529125559113226682399810145260584334068898992591118008717824010239751456957208530437630366765296319148731864291317581557529714645707364643448548237305905243874222128869365700579434264136020028243612869687292302907214412690130662889904228653786102102863618972578649238193650490058176183724719078511026920689211931474721048078665074238062744348748206936950915072001082116157531515259050386880809992752097243123482654935678483035050372194256111742804919165682450939223882319953679845726746443311157825147601700918153778895621462132350533796037358671733345468453111056028643441013564490226246159397521107975402504888072584737096360625359204240237399999828710798639150983742938908090447051234515318918598396261842414132960046578865912202136283210024829832611020497395511315273294489245298941962079346368770835271862349088665250038073227218040626743997903838849424901317211576894541064447959073025726114850853406423083747904988473555818894325468621877256437267824552845980944624717457811836995735134380359626845191308492304907268918952912532836934750923969884669238117342667619936009205883064675519399996445909091677706369284045519245493941013660920713415896626616571105962918999031861084399651220962968137860299561327392704612063735235111683719101655779266616248748130727919688448845848522104356870855616396437755379752391088004842612812378000020167005149768130755505333564162147583135226617796538038743954875269788849680619237227082320863136281164808248218886886464256440304837385976754818108820125562037937036685977841643307184724569911958570463735539431304607234985031836699959457675953759436195664188690451793972851105518705559763149848505192405915430024811911511262656407451174298171174429581415069607535302302854111340018591349729917451456929383192975078904762798087998451493763510856257849595549312124894233137923611506290850901202338325980836619242060858119730102191392351939772199646051199897211529511840385768607818311179531864683024701341835769057628016613632073857056102891635656871966638195376183220902381292730160638906154369856854198777830176686637931661635785179306543202093191290560428378314508149529086563371876931426822620560113295255278725198354689992788909993261391950750173540878292131870599635760202124773525033905375613889396133418564084115462804617452339180544719094744306413725739951882385964987433210471084644336275206250878171780299754043074732024782185897026750191526445516013049324426768057915302788232510703407005915033717562485201624112420473063851847434282766056420605056935923198735019954897837524804745463849956172316848574024698576607930840710011496872634317339365232613421932686604491421874123849037928378768352252658071977885546731443271354317985426413723051325403540511877478871012292238162854551301279276461028191391732616554253143593707665433100686240045045133355804742491618941056447011965790405737866588242730144335749827439811841721928733117845236899315329902181883243107018468800926205763669797039856607349537485075884375835973873119892770261545824675307339176892116001997110853856061190237041504053364159907203575210832889968801887346004192057621141280158455394084381174730344119722234509536916222226381982093810399750538180953870566120744679777319257633692305424140143195010079996195306476247351229762495132859255329059574505178112099321328312329193019601202889695487752670642965435702726730366636760965909683785404263091534247814422732762632738416914786183630722073496590630180268627170403288343249515212880997574076298330587457094333737629119255244595643478692495820445589467977264708218552332044957789807056737687686737129070842558231115367858265633989952198865826008473458655851515033699165397371868178788494281553837639697212944441386126110356124199220151392529584794085507470096389373108524320629221309886980843328305933819835904614384254230407228662615842849338006246939810960006967659094897714557379254096238457996644156512878982809035205357077778302917782602331103590103824327005102464984475783817226264374826454876394075712693276348210445935387310631505271620997069928538823991405632469537936990206951482920175143346757612267293806276362423115472905599458000543338648206368448813611307277898410732689872069314147886130599160572328156513809150540282957437229149877779117798150789913330804897436593143090083883387961965657517596057920063716242328616789982165497083104933010666553684265363582983730498878135684128500521799688494575704186609201527913921806919589200208553837779250629273920622439839121378389235273675296401852908384035688989105472311880497492728715639174386895415430813055167946726128984319544391402257640376643267768968879723788217960709699562974557448696288988048822957276242958338809526789787462518266314108674651691819692809046447937967263748336901910478911528024322154442512454446691040122072035373458833920560502543794003516970057796786928762771299322195697774661252703899520681485666301897666345816183665029916673212822013650951056986318179989428787144825316725505708147658062375247751941937488297766850470942761915771514563665143792870244210681315836491527018556064602544726140682520156686870224388261490976457735694224766789129164618690038985271846159572823846581366362398273831661692531764161063375912582765566123275514848533807506495218818317219537971443125595513322400851749346310014404927467151656480019879194477290300217736667563576406622296694702339491499984545338835504935896711362196636078958653123541564653789500111841292093729134034327584804237029117137581794054315312477379490968765269834957066250741271464383407962758894862665640596228442025483201329445764934414054940651654208943686400162703741435783081423691969374681514112082603454156926149696940981165501212112364049175626415221840064009205724185827248835536546796178869546137066271387347062514505793525169624434489193526745137364359834143647091339279654683695834702160983199100547245798783597946733071694559892251253606850549705751019031200515921592200370797332817188127778456094026725760142629247148343299182780148809713845475253561193019453411489614709518779662836851812516992992424760357863655814254231640893215859967529924330892959572063071241003670233160958547578158378667206295840928305255316893717135945473725520684777664171591060277207191123118594004697761224286185029770833944599765303782711829994480845670979803363429824102381364435879008334731129450678611366470610525077680610279242744262595916288116428837826912387632577119714570380572374829618271116497174285210811598479443688089150124655207571721795611649011341913594548576587194565497577171807199863398379190678926941074603011472195055486282218815334915189821100052183155121997538898559465633463871382856669350855689708376373944486986870223644814423565895167426843166740578713529977551643595611642511404092518503972091105323886964977207736153002828847020526012428908204648675337767132634389669899730590482495373856228315776433321088336382250716403646406835796651872110786543511118238680022775900740421636691559897033094933933905378968628023933466929456239927561535252181555400697013647829083532099357325748773608634702847923133688270777209648649113425122025105703677156042027390692903365552657574275730937650057039672815003561389474797922838162999022455987928655746538016083780016786432343631572435951076015700025869216557152223277195944170829493726292889596012854575160256615373325489297850012076050433297660694389609428986985148427894550909594305590977510193162647730737899190702259307159334783791820814729696945903250300940115864582127465186183437179205315834705744091217590416568909249149981534245157255265623277066017385772902159882795478790839273809938315615167345299773010555914453292952065831548561007238665074617913552215512597942937468220834886930906716190981798887731710031397479126299601851005209614367216070357721571392364880942104995103861911130151794246500918437303237112516015482702644657042227842606037294733594544448481414898585691927896215084345029622238241933776577893283196575539377148787226281893947719084836372068852604195171651761714219211056873366709908129748871759878011420501068769761596162880058140142370785004888202904364706748654680078881933621562053046322450652298820133714724362311594736023419669712152084190195933727057889666439387944501469631883933809586016646114370616629531139659221686262112963420253977064757721343915796867335490890884607587536923405004751453266270386860444012610943673289606719137779334716219676799989351420380794202689621990500322711366132785442049009107138222745207836016248933641239456891688338291410391993692631585784527024101861550831813997485516574736320270213485275762001216140463706471300804043983219724524118135413074297424647048398925189283806203149040315431345077863178107505455441663346175893519488357562344456916155009464861484273416887119249353647921518478039501363465279945339059153415473192864371133290800526726815660702520489298994619342763273030951104959321192134816434260392903433276604766451263554606103975656473111089026495940613061963433199211649789998571571832319560785373362287570754731933368486101511907983584028442221766540500884146718350540097017757061356400341423490725650349074846336509657958681732993190205827569857101448842093737549736417174298356616261869138450232054470811143595463971288156349501425537564017825178076950680637426879671293196124991669962074569419752797108560604091276984472403291897442939030175158705174160238695130167679646418941331259088611439085925478313736917614762944705787575144426132043658022381166882906443352709070563599716410926657125742808342410531304786535083588100158554330584781817699989488248026081425567237782678437415097532400025856450007543380116767180191059765246499292246816423076763659941909462912945805151177325702861910032085628109313429850478551413580837554209984039492097597332984726587844767267831549362452501719224824526339134687401172386829296338489888659141917979728439247091048212871980022683206990614640096739614904009837391565203929790663132275165165096190135457334261369769734583616306586354988820695080727775868802444205384440419793835703811328519523139887381346497562875976996450364288642122693981018537349364607568500285846515515443268249382320222687665120764916691867209012937383350637980908453754710457887352599131073819736140147716326874999852800393531429504509815088156040687358772313533324679885080129624731066999361964667803467944739463373156047667767101860775602837808519954053757600980384656805435474442703746094287871493642526236316809391215226475126137375864493479481335084864235472490630632390601508363173568651866865703099905065295552288335143062189731622126714731038649727248544952388292224421559525838788142869372631857225037241635913404922307333650082259656463072099778215579254837920572286313135786618853267674379776684336945262097567427933959265408817388499304869340040421910357028717102732388014404791852719460003859849866649011925722063557400808349316888946747031094601916955528452791486292205219551005980018646661029900636674649198748633274202225294260157584278747965947102872394668751162722538333967136143165152858285065989609876833221363468726800973953871269746824720671081840496350983845298086566010869689322121278811144571115755938804630636874894034270808363296373507420315663884570567163975722188014119723797152414101694822294336952780519861141400254078216820473481541967363359417258372256301162346320579833229828421812936572146234646439893510412160468301129558088842414211429185394506396321889650023324950812348512457135999691198309743324091848376306016710010270920027839267981743978724374812516761283181933915530138679401857780223917992777332815519741078466180854954684971818757605942568287787788088343868801813885595611022819433234871938357197444128494573648669088598242046743217541308223555969815451018384126565174673270777886375373470989179783171043998359724490153001695357543401177602074801469979055301078908285653400798258086202562528041391908995791809171585393508364991450932263414681392432431675936896573690140474874384170533463823576250540611813813895183123072038217961050279054190930728344253315398503801221834064056565296014352211512950892544566966878998496805360364555060326252973268447820132129443018155213378754931298845262373336606026929432981588832607805217566933303050306640422243573000125594633716248635210053098991769346923694943014798274249997126070396878156695941306788116845089323086388494299818653049954642393307538252643966621205421229782478810115668420679154285932272732607943686112331155477371101677888680655220505860269465460600058268445353351458045164688919415452210300689699241289019236396986023510283012240860856212257786229011214369340327039829074729746348355368707603346403605573665931229982176239468291188021113004658186571543832736404125979134276046816927494791668366687910751931034445449143311706651586637842273726340182438230279095995230288341012423578110677424137240043890773555656935712128900111284301074906891777647529082234818483470468085919728589298861567088331284717039191879699516885269913976527954481762642037466056544619654052184720827952678191274471397264820638958258638466531191144697926853445479306399232223609826466631921171522646152105464191261400914797995228019095047214489540935226924587840442507726083902201828696548403337924741025992263609467346181193938961096635434420721454147420162398912509262833803299874997870302552893661688106131518733223066412849871551814739551449432232490236391154143907534087399836500064936437749144804127083917176866354681069119089070479529505946839922306321094092877056760277460337689138789578837495851651650049078942125509302958863617946650627758277183204468224972763768509507706020350444267173031700845722682282311430173321717735247533121784340145954670088975531833847427211508746920944458829540965822711370689887428891740368259483303992302430689645424378304722304902055874954947797764592670233054941144500559292978625184275815653210151739866998784625238005584101574357876299080792859940406102335200239653493351627367978074218586727162632347805327440644466376516953416084660959330251114477389976756953914840633803678931255249379367195333626759825416940649280677131618757533137316309342948382631288395376134671600684710316607077710934381551047280769330746992679867715631913037816867898706332977151479939682747665159407346280382068658364211990272926373150376768226647213736975695972279800855164518605537702502308861120242385371838728616083798328012944817289532507616825756767753527691857256096131444562471189324026552438334241942226161101397687349647128694910790244106689090238339837356465193086803711302902039272328201967793763469900153361053767581066561495575072393830750463129865084176079649469774622587730580307660645344623221052668211321236938311190968098761301932834812406925015477406173657673571493571478878370943767043877001846800983489063614646256516236465779152172084065355954853151299689319344223701922446539292171547913272778031635200309567683135238347798611452688642604744893355729404855737160633392357640543409909358595177274670681021088899317825797297759215812228451087990372925273813846836509248831768043995198473663806036988222016576070187164703615556159063248674188886174750159028216286332484761971868547880057161405911750053423936285963952342145640703741661997343471352888179489854029373699755555443746154887986378174171193109776157534876445868222839874817958878120090588399577489058456737451383416838380987332119405034639959913347465444691836493624378834820427710710994305410200979486380644345086812982208174585573150723295123974563432784250971766327375126310828902445144188804894530750146439597400763482841048175216760624381968602299947097072591388283383947310420111234766482945913297691125053525454332827989532307742613633905711919408005985417512844022391296776739009400130367003608355313923516527908514555847549549033989666333531663590194225513055293289240013541881239467038691587842706216886242867366360328356734413806782967018653876133236882504424436111776979691236426465814018407351386855353938621825102880491723996907070728226659085563994043046165148286401138414727829647009334101678513151899296551523832797450759439803089333627102402561375750926753899190924125214272880722123143289791955923804117819991274985653133253251271835368664392246655731880372797678959466469555992654614851300793444493881499484442504714672913970273173971130321435654109297806344513514178981533220419823524078544887053703891666723715777473890532460529954542664948692000537624002412666088238943786657359897905260254210238777289170156316238712633522263372521913903299362517340544250971099561121405598726013697246525211541329989486592519666066409810469883864091655874346735966968139626397769651106183348997494848928687191694315703717197527404048998311870324314398086729114900687029390095294424947778398209589673858546267940068018858005304482140412727060946750008841533590439259917370192595589867211282946739337210147770199852724544486353763635809730650802823834588876339601934709742692419814478526888598464627710725194639458061743315192793980042363789574356238340376127137801445026614261443750785160041780861399646467764426755499584535313336824709370873774457329209739119729731315268557335158094257264445372765367200775319838925665351532825002830322962501686134156462781343980304823894670048031511912419301034606612010828935760321281713417732916741605572885877864802362020749471834436543916379038225985324939403105822904997359669377702068892998173137630187513080641085221854929193797602762220056277025544640613928686535961882031395964102996109208860887739984272400111938134692896868655612590320185737620355887391732216251646339106186741223044643232634584391573141274795544903552578377483035572608331730108480845413567583643415489626778402775225406622828244240115704320122020609858186930237686216837851368058398959676221218554615457531791770923586539514368312823692752840700401528672720098314929305289590620112829176973511912613466770097568316416298000435294981496973131077973303673219811515878824640275595837583251397702257222437653690996211155680930407443770950350020026675609412287122990701457993599951058204474677119485575459158385251704114271526063188572473907469006014148392338831972513734131487840475489979473989484115139666720208639838987996573452875137328384175532157746986182283006624776392467073869072449489193045258532193881204566727729039282686264497787073776016760352885234927332945483511742847010508137231565608449129871193763136165250452486253810737283086236981030572718750845368619279304612810201873737141649568221705869397634213747845293095909747393165886735757525121669846307302029866161909451789890452160378443640485167854022655521613975953902027348491134493745316195917056058615142790749827360078259506596219643300573837015301248922492249247311244594696489433633102924873813416321757183633146652369923312375799488641745513075130545125947393318149720449522929534341013895815215501848779379776949418152175777842142241354328497630532664359072376839747543408498067635508395721977719688085665262118618082059451625232685679586697873666847260882310062775082628901972743059645411079483666712730599282629094719968314041710260430475127507174998740060259279061819410227197168340034396505987907306984758978712869856803081200355647639858345036320493616476124003836965292993870393679711478773146054491506007405610614604982147569108216082439675538696301714140495140951918306580487812774756926767715808075474694650759031764000807443543453432249055859899464680989560866596264724556773196868954339517774786421071429420026705915422895251070422916076600603550893529226767502123134989691910566191699542976604526640628274309131657641678760778499117536828049562431668124871560344930551061869933505106559467258956564053747394645880121615366554717242819836913934191358972437804962756511575920763792800983306821992855140260245408171746046187915169366791673090073344852542934878515802828042009745793649004162780766585519630206937319896768770362755592511507695779096142921968948348550973340806503134763625932508643759681945267043523475346460069870124668839847628409394995257364068267051285839648595047423198431632388785911674015311798147665084024626390892126817036517965536813269918591380598463413532355129287663878320714998685671986986598764751408137471794217071068920982039806473302335300745671340015852288959355224919331085189949767282431187692976713219275223393401870956333795700476976464591139331333293091131370502479170374592483673587314750813262643469236096994225594404982304035604192410217286459022364362035506618565052479301682080240543343607570916173066768359238568139413669883353384779615902300538875742795901578231591641260074113375071545821831736031247103187064409238613842152414273024855988450348635231800745415253382452348163951979845488727956123530217700563119523231981727083539854000080450043019816365544795238353154464511896841904024634674758820889980006318790385879653070046826859814376022383403852534908136197207251376725837682252176179181874179640550187865893602340388880581846252470056556096116781622127564568382105705445799478022147199042971882758998584633778550293281123975577531770968891998614900946728264508502162300137392674145417953244729168118785237003815713233873090564163820463854466738356407453114251130871598004933302266816687967768337687735765198803374287559195699076100725805282176599820890583028249538997493277731797206433654152317540593004226781690685576883195491014254748891730606905200403560178415918373537622418816489015109977282748610029681294155701760423580384964061071427236018576812254111975789871992381135398841344273011404888721859447499090636164873567177758234930092399681823597260208010246477170584903120267728631496579881195277491556055128771134468982436456360107355087855116827464352547184780480339613261666615110158427472835255235570367721023774374143232906074883422106164072378279802929753432083085562236086244853924029701383123568594822945007277301727417174319838845097792270440085064714506523002680928573619836415986104262905943686365328664393878200763360980468329131371041445230313385781613971431644499780476809476200927719406684931872358737072965952857248139457491023216503170926500765401733787471527556811763712118263080118084058453230344364158665898317806194162379811045600138475753749675132900521060751672140923387637366756137069919177470930193190338592847959570031015163685400934536378361265659371863429737925825027329164604022577047616473790860220655162186816828943034095235305771548348747001910297279983301269252364350401493358146411120383184113306673616189716497274036856577286479142290862538009681696780866472817401702085852388075959918195388463786464264147937758349447973470935946850977175262379834695738745641742516660315919069633624078958180994421162094100059743715022115112196425823485170161583765733051900487223485366908411365951118321206596475941695071007472966193781147966524286153662254830611525073821014185468616919617641025064910804280388291585833330965328294984790587902336476323779579817410741991304234937397704748150781581420583437855962180637747065472721276291270777122179286536353110084813454380536934904654513404498491909128101847252155747196726683372755743602650320230711980979232371897118749085028626713561088455666317931562946817491758440222632783616973527687274656863653573033481146021980680380886955221939014018530521339321332777031483890245441160629543558251359391260592682180618240440475358315933901786358552515271408725360605072648670968871581837947987104194211184602538695888884454544554612914239157351387499647548135787725262702353779191906733870615110377864435987393002277899502106594734496022546322236459764568400675445273014244908617123782076037620944729025741245936625104158956771196824113890485930878626446715736313838759681990318980539947134968489813302738164554224223962974549849154037907838619340311849691411818696885528051361330711600197992831595539154793841324612990854680637426299767152232224002183253420099815848032950560592212506977402312159184011411724931425352431157182611622875593067602895848865464840897711897250852267879835387821682449713249242959861302274233400971013422589099590813238289924196730624788191742466646319169626123371586389929329394075569021657994351432156909274695417553722088981192949127830929171009735845137056014376702119251364141280979416362695358374602319405901690972233606011548460254324463112222487129358576461976254270539150769014366557819541188870923164248760933776832196640571627075286405511523439400692456077173371692151520374986811365341190531683649597244141887382307030874484687340520551773637923373050683644328820004808123240700388211703065651883248665704316523674339569596374292973342280230060584556198824785568241882113231110533325268209047491979086609016163681313497058162502031239789152784974647278803600918268552538944498785459805552591758569856726296334632992030164869511457017612937462402278317894656435946734423589484558171299308320015662313199864482671549711255044328100335742718003218181615950314695498792812334848366734679392720720138940963392161012528819502743615819571811052647575419648473406546278095135934849623982134238291109312901874986883530736860044694062505005614975941270932925425733798248666272054528709282390435471321699094504806230117066021267311289336393148103069303901344812039855927244522156549172384634610565890463204751285051756784559326670029574794216283827677259083207194309998048280720399289093882836697812415011850583193446907392369988226603330455991546416459446170103185910582273399266138181956116602313450618971196194141962075007703245472598915939519073221041219446002403526084635467395396922712705594490074064733925829109210426249057900043698725206073781766589824729495250900361248903245951930002212894368413742152932163827037731655172938909697588246324400406969599274559344719261843127298717610456497374266288557902874230974976125764277075402301682341717052193928809646107252391896668795498743752006716450498238482603567633420895528444401461325505504329540056333996718781008670286757396314125157071107236955857653010814336868075279583733318426334012041654125285905157535888051486156147963176470568940108561644101132108648787364898979492460186502660565582939835156929579164542709698482162798157844162589492211643642363508209587181147702152839609818265390914545475942082545135177610136010792415291744754545473143041022740902483179077427825686339109526371498106571669781361433675072702648345151213852170289344608860812496694768006086222119686838828973308951178057427467503413997271373347876754049467853635342498921253946386569573443838837674309615011583791609843285562242382778279949778418021669226708281273598661831786293236221406854081547564283441502667122558498599378083786923594591830067550219639518068309744837111486632611240756595645655346285579677768243769437228362583977670273377082842670908231550520387467938112337582734498870086467763611605868450174658810662504567302183387686027135891861457122372597261339565351173352101380205198574577517438657720248132148273202033976939848675830547675702301131723013531647346777647165619893067842860142787214178293951882329143325886420223334521490783038430812979518430766003578356745720077580678749183571713590446618229139425069705552200686256724480707439173137519587165754449401660938467222229438869990663857105977658284443167104781064610188756713489730122823024401136384886822940779530794592577551672776429963090122189878120160276424484814099408945184990582204003503233929291022669387819733354907980652954064914881244766081446327408567678865482983045628265731473110499171599224905935421823518410778199343646537742178172555304405915498684304052624036196864151018846490371361313278196707041299373069151567205207574206278132655283891927420876695416051380492080606623408727435442253623924267288999144847271424722456904790658036177825219848394005767879602011177997384319925051200663757403021985995068343116241619623366730843160255144684042020300756668353325838034828380746719490954874113455721008348526056411053170404087801150713641013129510716706618437866980364667497073021845539041870081360890795290886764891389761577407274620292319750500607852449988237572061208656696948825903160524901338896015299751252769916672863718026260915293048562381961209569044267314551325750266329998967748002239650591031337608524747196902080493374239951877617916349656081180433936928806915715464288261613160162517762225883537855046823625095611954098918448482977513723143725898671623339345703481406542907083244735585394913886533923156428084734824803045933364853859567733453781038146976636541046415972728424908098073610532971060591344142813896089434810328726846521957208255742893493331456036011386135732545780534394696902525824535350736535902630224594116434332831840551372847027528990440332275811969067209099686955757898208954497398272218102353636929792938531509821804753253930347649330881423742860812460400768641950632847885822840857222550435884263088937966416819181241981198518527052222969811938216008493042161336125608078666992938998082006354426952472579315474978580853525991307104155771029353549825439815444667018556965216469402773049506653115870675960003198780182273726560815398888446620722714328059042779974669276813169716416898103437941883657380413370584684932096442951701712823747828277190076839993429829302753475115181013593702804901018695822951042901740937070686608704291511922354586844307098590338946080205240239899771315317007461439014878454149242953358406391124454071700957761518877771709095859773580623585944204165655033350965356160737410690784581228156403183482250011626458123992363539522676209663632904032634978030903188032458352656052024791373647331613014546943766178565987283732699739867135817549183414757910857195891248968847233423944921543212086831852960711059542122252609743391522394431712099760681082669890263513989139160355102001391933856779812634079208628573605561683927036612274143744408845063364874822740488213294530074914877244333518981584098585244174901933098833508905799358479569692959036037226880237869908061631815421585621869226447852974591471653182263815692796425269560970265527410042160776135181961476059557806117351516856637791059411297152493320604815175649378186229236893584463700680827964048979954252824159031069539074552051855090266226628538376100737635640138846343760369384160792103743289442736014752209769559622701761918043775496212071627532169366669107253770918667730013149894828299579741187364791725901472057362313059868766419688661185384333939448878321096622458601944898719375277337081985541476663891024671976248159213759392158568877339875315723193999076078204974900315407234273087775750637961029834411684609793423857071756375856062260296668587682025759071271516802864515035763664972366447793248321990780655554394113186118492034118154950061140407447273580431679230633466228949619446639791441174696517040176182750387084836460149877997652558404017445016432672862991902971331541095345989467550982461530996902093503969756384458792604098237666889019116401369004632411752156297848792502983904073783960090864850818113703959168568010939247749435224055225756654851106002143292631943922599957677506145576408323649165945860785860328179500575993953491183544195002637309488961571377561881401783694672098781969541758925045831728953214349780773785761545807442021670755362688973955752715152368761393888996438624335422653870470643426521962734544302385621582326311169632794193872950550275291214550189940162902889041303273087265471441944624389068477808847970041741233810309210457003570701746703882360450797583957351427338599251667547301493510847304153809225184070931563568765205395634052650564072544876996677005687631891278191824716411279462848985561219776539662002240972184305887472550306999276397722814243870108141983417948851189116599058703941518695394399196559539106475562819354826507779718980943920975042863046492706398376503241002805532017187397134506975766009365706260015942233509762812852917169769317925372699145949101772019674715477121177357655800711517884279673327079711613242713815731310600960495863280110779671236850979312915340131411976485385755309444358299954093922445707256280340577989152321900054355647774400699306834113987974664400063490095270936550120157361409507314664099071978535383525098728224746447969528110931492012969077818867166379649730318590455263755134699298510874508998365094225056279653309055927563367346625364395960682193110901872041006057918088125317113340202168817697578719438647923064038811750947654879324921891132807357607116352493878165465373532756547966750960593663322542149980652337278817470687334272803201843624535339098885147984368613310769918511148264333003000427902276518088191345609389073103187839923311945294694524666381624943301098125662548528479080478220202429241325960718570929056459780987533880590867380913733697342866448299092389106915255341711646518835849968043201816015608463564675926160045849392446997602329879965187457303167433204957116328208797458849794016009661757525195170332771027960272238525623744930032635604025044822901970431013626586677255973169598450736322006113093925322222207876401544130035720969775763571334031118420783467316441008025790185796992959470525376429036632082594549237052571969175290853022563517370966529576219109398995925783020977893180390140509701286935639780717974865893833435600050405364930396505536608813934923107185945026639449633483515170577998893994690684110668615339577041702844399097329312928165026268525167125152858583086974543725755288807507557289322749883289295280727954230030206563963746173169190473218005721116459243173715424955863166022747800517319094956454193478413530863662917811618000912754651203554862409758063330283004781163528204061469823619969031465792770241433022527365881941071774530033353284946581296861668256635789875106157611154305068347048419362435280985948712309367608381178961130799438714463366371296498422390272624661248931082761947247261256290938209199070940656695222388868670710769713421747010547333118089210421484715169616464322376066231226542498652322731111148382965501769733258046442660885600509499406478468843734368099119052846229163972168230506155698808268799872214218993454569985247374709250416226833380503055828258238585251262198323383314660751878490648607177239143573304334138985886708761177544525388460604289150315502493628804232650651952910195426534914220529357957534013122719673734395720505178723935396108276107630352839610333990712101073359823993993701303350052495507871132900479717158515473820029802395271323703839040622029515505253565602118696562739667965076132937866612433551969484950167341880167270639368000013783435674322786439841684536136912912661917296224992970727158622811533018892874787103257655874922019171931304517399328272342423456456673170572573322413287532483412889005760457771102215614782771593026902934756035741456313103764640175032881102684723716231894223852905810039611445664710354553604424499747326771747707725357387912193772375526781183598895686429370586069782931197366417772907284949772810522748603289756212434602376964227438100062512821155125465602440748725569066674537234969372641926613953823779734693107222861883137112811913503895038191615440727360917037998679658189952622553375262500888672356032957097295571804032862229546451274219951904274467515962160955510747674039926740799930436461159402435124558165787144580979210916681723384331095542438764444937687640767277049300741786910107591842597533122880192432611622416080647094058640165471872903033230562962819960647622113883120522103571405728185723515970298104014024340013147213505056931723076983784966362026583874771651780411296526321351271528334352384729969589581224324000102230823195217905632118863337472616953188380837996180482344866623996442015149839225006223939884359481208922188137652200841923716680276319767143431617666025552549625932653956141494470064760396849778531933456593833640547688813561917401919592914109811614253595594404117192953451499245754282135019984479174862888350379497350406580868277199351505053407969063085295526299998925488140734195080281161766918896303837571581949588543469803729565598220692958640710679121524558587683269045762737354531286171484999791615655822702219364369709812126281516814480941293795432822036647705684613580498486455024241767985082787561472587226158438207307679610302597936216387289082062716501491102427636551137378404317085331831791129280199991403276423027971257600910747247878752797527451863629213732532179589095024644650055634666009865079562632670580900725860295511036563516664385753692332228689621074882158598563584058671839490895273629763960159697842375167381084779255297063152194156702676595565041762010685597652679794626917398790396579047598569725761793476463756346437280873508981169722755375984947220984948103888104624227833351598645453169869431076731184083777301234546345826091940635591782197954456063315155272333560751763100768990558204477842411608223054182620903150407817773284651226573174116771788162152124700198226550288760079095877929635590460990018379887969805874639707649448862878486032486277161742265639523034005389268051157724691179837869600315412438443112697026982264975564980988459838172787802151339298287737245369362758920220621480665661945384330180118749016467135059154627782773498664219939352130181293295332407023164554649118259656256048900768909960126173013517560179167222222890311241318330001106772301201399487992682259702249618096525517823005009203169562919993882466322523649204473572738421570788923986621205230439366251310886803334413505458945669785506495861488313132515055419603411622987348866694623635492084290352458151315441730444883218222706166560461663446455990752691809498262561493247861089974756240597176113960545545337068657517549531369681657028719064344852774318397088562192647609012407610230322273327329908474782182572993625800370295105849943799322996572079266394463429661517923120347077807408284469693145357920682785219352227567173725945170794089757606234140027456957283736473474928133735572737469889648373386091677024314744846072733412593599596029740558526894739077842711159326680890887781992717868297571700211656311415050319641831150405865770680277353105198984254266796471223960763875934591584204384435954367682283070095012812814067648760638001824398222134384345448321793624846441704023225743143615367500118091248381892756830593613666406953220037610547788469916720427319464169773214223837638266969920828566509097603827288436391061283699631007322639491027753676304081816576977518151928384553750904909872984325369746236059527767992461258722998435171300847099818955219906150412865387078734679563497883730620390203899626456657413688998739291701018163125451165200374488856728305008889127499248442942186753787654922689330846531990870348283283237220749974580513825934677565771164334401662403757724318305448552419675183196598240049769585837940253620072548875642526301796823552431559229460220449875662712137852096243668588115908605100096700933442010110939153237249057878311237500371282914621367549015299647867682870149449278785895774643089546817131646261573006701289376361748713689254384038208415880291522995109874978032628580715883583340492644372121707500545469107803437225653997090129014689360397143895427264471974314328142367100852583036377881949233752198435297636191164195172278511012074220483955993393877864794147992501635519351498521820560658913321944338084372843921159939860410971365320964184689377785257006728246785262302720901615494446963077355732726017935132176895264317238024908586281103987193412360677324901533626163009073342635447567107333627265593990063950893683318745183898271051597609367974061817177677596136530548142042174196455295674408108451936923742968997559834240910777870456899584127051777948763294347183011286621505589612849692534023500493487041065256236370849456943619697758528283051298548569921944759200462171770112084939876533068605379098078611115977516164581759767182871717641632389104155372137673267301756540643901685051850241046180644326353915944250213170292452588446333120521508747070150646625184641146906582283455367060406743038811868749777179893266838881898530784120449958335317418049178438681179028720270740484708132146052873348324286829184752715952309164062823847772773388969493025304388929014913049418751258500415309710342796036897483567390209742765605710677569992020117428882345206267390350076427524896289794836729261907479133412784652231078805704312781491666139969791029249962765901224806836188735497099914929837599085153871777989779463470671219707547829199914450070815405193855790158312437031636406678059985287758870288552236505218515032675796902362960284572774605791673718906313629346436454721456092414760274810893694972083325816087299137603790288808199782136273728543642753212120616875292068521360800725588441361277924382250307293116782560496856811603224142072820815403857820807000476450874040710417724727607331815552802900658368073686508462361472589149781702417223786450770417489875119673026730320657419516317694905473474861388066345965849914223091056951717033431131995509025451340822297776221353429174959957515410108848843876644399476194739654539751234434802030398339666940279422999115762357048980253231232178421518713938314738215930629131012145551573010989763743152924297124981812405142905815141396691228233782938424949746766651168151677910042916544202070462593092561041524078758005031404972324330509419203566946434000033653707005640325084468346770187954087697553151801656526239449193751411153204002858481019482193183318573169864287841566336830761992994598907517942476237029707670510383467243810360324837600778640949732482583830001453760367933086132007350895874823933427041596098373810147455745114627328607245431450503780388332938571450881183272169418311088958210288926722179938357034204531212070955043294708555934625713772900458943554585845550581989928603822846292657886210139422131174718740488150315427980300381829141963160823853547741212831942005984062645195369570897713500223198357996034474327438488945094010469572332399486603585221409197620420792933105813558529756812955372247808211588650222417351362255119788424223099084850398434667491389710964116091729551547577024053579535107785956737357047331400702055701710577010898055545001024132324258740411542124583979026650893900226759999516930547464432128345832251595861816977430353149676804045766936666904017545631534799578753729365718013347951824041345864283945085436109219675742027886502831809841226290750639468556714970140665152997163840102689068392407579510434913205062484298036049180533235714526709651103687634799408590789800480489480968509456382056754527739275366192580878190546280377123377504696362387141804978433932496276672257274896508885117626740617537763463662227356452553642893853815946644072794143265086769292834258168609288742305075058975527857296650386275076705699896181924037780709567848539716246537485286516045300476392119504105822235422460578636542496663107424134408522511056386855668437065903628666654751111069728687515909882961950730179836227505486863590393522329194415353452132398609958015813138687255401296600062601464095593658935232624164921389954947286527389793308273525081682987422538554085462172291368836333280531710193257665984964149933002749261994265096346512515942898864562264496186406760084622641584108838782994838507487367270140912304772297466031881626022142600274349418112499563150886180874738946754074149415711309742609040204035631921494451496507339228179655262224684914688219490870356539516263475427680899359041087565266894053647319917794792850897994896546101666316252850271928039541739495189936259812054430854412368888167768140810344452128524267563338962534101716875661493948188159042870365462839468156653473944171490522069423846014549074416078773382549213148236655029563351417384600339518287484288859090971255806265087517616778473328060592528759274714473631233178928954681473367759077633620455965730621388095067214276955138501413114150034648452877344181852501631836863133718656588772390895802324981596259013279398542783361808570487743713440531264354845462074275080850395023490857895276223871976777367131131575231121698734401489648347960444720519599663508423277713766084085408324859689981244454871513009116365016294413625514246440633398687746433983025763684535127211537080887465309048665988339835689424137096019088709774328759785180227651771815355084048089673182688506215344836188196740359229733518002247345564487993594723604025822908029874325751503632950128247792169950545097394187298873584617217825189331750423904162865807097983200313077743918505914959382848516412120994944521878327054049003804212211518969357715574684828731400420120841872708040192583786121919628082964506340191021107940109112255846976192318354131822188492730829578035158707128334519905192735879976133716179413127600449518593387418418568887891063675636427852523804334119041792035054038787208459710061433834259039050969009268312713512449642201834635611132586878930237206253267531686379399604938640671483076962208587718452359016082703969306339853031447710851016276284484210913566317253271267848932438584571432554318917291805910055938830083285871444797340559436041798551215610398586989608097879954429054841180229675310680218914772849595896398744288215596943987661688089360724191663225506691394825204329894566525317237199900558966377439032532387658758398141906647649247614992649878099155691176865069511230548336717653506694236606302352248525452261053796218442110665653918605774916778108479706420892129004837201627550906083317026774501190343209090686551613708270543292783520967573942808145194243152511526065963003646270469412163275829738401665685598594293389490105450363961087644300427691457213389762625683833009146372265900313995259928432397863251189750399705630683843305156581832636868696302148359822858020203072296364511579437861507639640481927726594682179742200461955494446799191330857944546476610384314022322609832255516026166401091173210417891903361229473067865922192523215156052911760720270653999700531638300689755643980518629833480762976911248689259920719379305641161975391603455452743643844538492982583913003058468724231013905622931077365863717965051069335159481505022178754665591534385301905788187235206308471021032452173937763634736840976820438936039375218296566982953042076753904601566438088614971984184193294394692150884075318156633871245776437362442089726855600462402521119215364135819694385588713663482987947125984428747332511412799188956907091392388626984688754933407420093608364734988383192271565477290292114406098429165647972056999339821522279291564952266884269841774483570994226297810730763859937775276651074321307520075129785754982626757447412560435644680248420586617659733257465242829037330897514269895831878968442522682370940769658998000526166875735592089433314599033630380139124336256303070521571352122633483860770909545985968511616000923059932852837990124659624154635889857746673754882823419777396063241617142948142831046925866856015314777614317359466974575272301002810464079651304234589838196082256496060321657392842726519461711085261354906287293874898122813501038161456097145536898480685522903404979773721513512633071482251590111477292422925384313745994815530224920105702765603649940943904318138018570870245158176282801450931357288872605338581814858962154164905212200080109603574089986481622549699784265159626963158089281724750369384098168329577386549130354340003814529199383513091952926854338341481473572567613147791080034401478196444425949406185468400534070376852622906516504595041179537572361827367554087022840144492674059804214675224033702422235837644462322819745805072412651831509901400912348944773360459191150571337604690808125293341832354286997866105346910907624225894179022207511463425253435080569552136094194418038650055833065262449508452918896261026332919447861691565720715489883405553192137037275043789215827818403761996457587608697304758804314281768109587994720804023145690157737309834908141018855825010865175075012566220334912211581038262502181052686190061895273723736609269827301434363291843811174218452368175122157314708991205930556975645240510169494332847406537256878118495985095181508436628958702633824249185517205161230392131235429685087710574313669737705897805848861112815530975220254963385858941752246255541977105438637813892757251343328309623300906543906381277275340591386700470606012039987654345787617004501166462137554040319606073540617982295879031681423552086160635665392553582708598804710133854579327282441595751835057306621252457324134593302230641510560227752192771822974046568704267980711290535437954855531775621798461542066493444619121272926331224157690034405108512954037304923439385474605510501225771026505315424080325911471056104471099578166612405853385303293815591550221669374154150528952828012005565677027666759315337779612396511623350135898566522539988367357798437611036434954476847187355218794183842375752651608794105941748026904455032344666924856115172069002723575112481057218721132649035418916280177685200377101240494544813576993022000329185763644310976307258206865128466257911780398487882176793283578621203638275601484085873142266123112096515443294612715373353566041301956696024331972523247450187493454637437454319162477917881910566517602304467822409790720429683310166438082490960898467961449971458175097406030570741813109510906768138262502565671140684603207537167135732722171278104868333242886114297506637890070374127906253858721750958135381401561370466161718596338546890699877273030141047233006580979934406080831565837424466089886274484002876820111507007548645933802696538254122212913473875455716145287567555128343834548760317474353832897137869710748829235217334824711373840668876990059608866803410214641591483509345342430830390253891886101987707403738624232172697609757052297383044116296441317161127840237847917565665653487893431420602273005780670285899137167536980235163332938946492293525221283980553865004921891485053213535521777201072892063040964649007418292207174393532226446932107492627678251340830957143389658125434715578795534920616732520213018141407295171785094918327743680917230304687872837079115794044435109210722732872228814938372283986250128670067501121510694050981221330367425835141787507286921763279766162691969698917966099869887207869540911480288602208580009331820202558676022417711445993697565058543234825858901445271079490097690504078472297557725712411930133916575070405749829346957482604934525352970819618590321919579645225221245390869436632865311681947448700148386007233511312596683316464851857703681116717719638243017059469369707971594109743137324575604950788647372852907099971240981854095795073821767762691443776325563295790903371020638797778206939861117776088367016535476146140981595564365852597956881104247427850918631999229293098229740182694183520840277690846612681708724928771686942304139819123355905514708269050397528020057145220186533835877630753877238363157884548772195200616810017478175439690005267582098379264364053052600776677012703519171856481262894199631841728851321540485802068788198182763080850340993631702756403098798778434921294521276521873633590647062020255093303407949508697739373173577675695743236634139747717961999943333149809426327709430423541865887847433591739269129208190775231359369591833959599176010463346231357781828263609824688813277132862313713840138954827980223561719760479340599077925156814772452184047822561368893597982282520413729068360983047961021891352630247649468504099381033403896362936291315953285953850156999063608628339487783429433897386777482613624977530665044687537914400478814933835804920852122808076586074066758336095377217190102750226357237190445964471222867720257480450297660480194039948978950870527358832315534174036302166153952905834322187429634367429387427518475691920937140048081486878583845628679138600124432311318863902113988133958493558345090141463825268160161765501437574654848186136385050206129823461365149316588657923952809118503931429270009577962924096073776986480533875405731597318446371497457711125304756817557082088781363356187235680620346440487879289205604717225619344378122208294140695241134555325218581559494411675887656505558566076039273398618855556516627970562006357816233229827956080038704813464786613822474765777477471134650338637062491072012765610502588580929719839513394396694042755146310480705345969104895719846972433644937040960776936400410698746138500438182208606752221814405402098006424303266811009069612397933001968299344437192829931097455055885223333647653864384718596001118053567478819150680970586369587676686435310711133179837889884660431024227311111886817225796535106373450088877955211280692784483758803473184262584507504798982552272514947936367599248034598626957782280780839044327132144355119867627180036243363426831645832745521534413899627209870952516534432624015394425379944655250802117894265868842420786565186027321096852436352059296573404757140713427794809657840856503594139677129301244729222917245766140487440480678302604092117094231990122785827721527936877453044052479406116767642867911570832365319427427036580179209804789520626809224217449262663683260788823434489069106319274511884490605129617749548355812652403718578256437434694254774826575722561314011263485634511429840963417485455137336167687248591380883567920837918912422332785853493862554016761464390754855512247115692251132842640112721109075848510339467206372235116611163644711364751477962849020373418409366990682928037280642944767593461038076226155268590044158414140628769145325165402949730702547476717601838773716299283205531037287609169614270555533954228330899484461617194210560340863078547720509352846884264439353917593493661595655033585673278174006789836655669088936142503993126036174797018134597589715475987059497780726579524668102161834562615666775333551181658294362180416504569624233023478416069201131984815262172560454048642528288118274967171251522654501231096408221268012363725499169200976624675308408795199565549949576558582953811194039612440322361751431435475931886359869506387254555755754014671571456784646022579172023073557658914389226454316546592419422151489814355972266192676856820678165487585093595308143334719837615867471494933192495481321093025156165216331401193520590494598929564892478507852957778385988066443280347518344445646114841054188895675315994713679230178530419954075420099544924081435145319095932486693787973317631845018976350979585672746169701388129764599737589538346070751324628515482638823046400447671862209273519705578380861177019194757168102354732754539985945354618073047122885376707086471556208422547516067089290860044087925563499081482941857864609100475861432665863078231131423021827449121535631328391888647713703530446067302475775465976620558685347549502019152024810233785063189393467529692310636765525178019481298113939146715977585834674413708811788792521352088506936329419303722712908151304751138225611772154540237985315246872453243295950070168471749521927556687725372601292276069868591080343390554174643761797622280115037788473043373079839307920286326369992047040664966801151255609689313635179991509233565605328454099522099501583257548184853202425746199733592381620482170689758792629190813374658785676116891002335099671419911285727547099076131388294814320764800714275960956358593215170814102170342625849321313007243300875682381518833191798013302199490126992570162864900002006739196410601014522129380400284058914546419763378687840673116753383585080624163860448389935536644531671114374999482618385924519117536687465702669807728764523490470042234777506744374966019580667459807347388335804703539375055790084357897357027395970359445551996857216694263690849412344397444154939893239969896114167952202500889095360559659568152187623218312277193536360110725189808783707988180151974251478754880644682688225155954759229833602573017927935782344065362728858470539617650479223100258620775953594405369575096973051863772539237624546204797937397761735615396241897559194205443399545065009994494349387453676286915423833206085620024167778797308735124633907029453450957055619437911381462869424092880931934964210402302987049095755283034807749890090849309659526876869772551962390840676254298182505028062006424228982515732629032063742358136130344855273763788654064317957542677311478950327704593355418127170375191458102127998014467487874223486028998967594479618955119599238415481054522582017838184318549525708006158713656756746426658894874163666158610440101749972193405460129705595535596640128616770248263351873793570690595312662523386636035262304470420598589906641102341800435663817897616037471710732582590334671763979395543743904578997259543309396839518442890297333857600115889440407711153641171101184372413379342035358760219052328371597589283070945095925230115558247507631964848268129829414627106334886804527912904565611053886572798214259549140442614154736039177664084460239419152199629471428900743103962823058728976274278553470709799133023029229163263643899971818107940898760944932614110277609694333038295916974845316129791019791395311855491391206396944924873078058118622636126940646212273049166446176279942739885226250637875226785755638046869864790956670085833228422619206929331687010122541213715402732628656619625027995659287951881932792389883683615913240693338875161028277841213219665907730763909082536083619009071069999716237508599881949061807619426584291897842018505523873554380948024938422243248552058602439720257017427260953908058485523845744980278741376803297608262563450283017515886041317882981783226308887406744940269592306617279263745493330092124199995133615006915257166955300717514310219044629240760564958117785088368614387680212009675820995094204436752528646792107901277397050630375776742203000385384225743250824376563556250417978534675818820158577259795280975379005345820647761295746887069154689968767364616724876827039560770792300955570532209258282531292300334361979259756854945582532220969808258254021309621376121688507491394477126455854047324832703748355208228239076634999281901982379491668539312227043052377628158521432318383090378645733105508823711455712605175299936290188516403343897594540103566331905591281317046995362944313412659637526973894041182098845133880462550331612268169667315881689114130911271496602301420358336751823763635274198397170263385017432791192394745098349141461318660584316194827477415095418536290258724352385935502824654921549113641773427116346327214206807159920769539496424399483664135539737915062736573494394715838232603428755466953276406895058156672030362339460295078030436999525825781575364143679972007066936433292244436886351014961086396445917310090648837348739266231767504088109459860497869821754019410632450964181311516994950062797418181878573794196257796798130524769133216115729177218537843986105482666444425626592420280108461273961924445817710345959294964697860914672507528002328535967689811863769784146520767412586450948872556562751345486358072409403860017673793700644044500735523276276016799751031756460727230153784242070872748196317609614263148070403001187206058351721578375869805288237371685113952674084304779735936765389384642329178563384099366895767238188317627020293795311133479027864078455628935077679713310974358114379896544484367918988680438890078921021277624704043223253150961516120843707826955727601126242703536603878879557375480966316320907365798294250047100221986928192102842019900248367725254010778616502654882563598110894356484431624256901630994257927084076171474737033509175188073644462965528225368069833972677222581135451329676687738152565499806588491624820513965778866448954605076961250696714500546755519432450931414214174925306100585729722675354383620620904187464199339820166168215043608966568556345284478534235238078596264262061776388307794979594847806945343302038333416018253460511664506025587258745886917691035377839519855038457103456224843450224046333041046872156609102904509024895100637536072018338083310575512177022098097425865924420307423770112480112530839796711977460396513980558809853438433861387914430937614027581527651609158255388397604378903794249128551533939728932368122102176981111889988664716852957157531428539449221153597966493070645678535180915225068901688456292700839266609645198559985851585985091791971246260350045952968417609930049601716652688909067107122224589757951524132796074980069034539698820091730961208661222943957748244931921903672921560921932510079689124956166214219380978676153993777158714811058619556950097412330726358486788520664442435606024081461342290067083325750869810335647823689303651871467730300516884317888369083048376240957556939018588865346301321270542271754232265971497362473100632408024392603137312995875466294764025897938437960494181901842774775971577085896383674273638569830001376746224231046642112556027753882151766621181639057368112695014135359987263279898842342051602336649535173225248655652445376476659305914646701855883488297499295828718944581979119563950366663260130933750904180753980323629282145787821892043249021507375504586330638559388410980551774651904685482563283091154748179720700219650154733894755408272818973698554455469238958677862739314186041866746994321689852793541645605762558502658281874895559276568621381577454566517693365959264407670578084129710156151324647683438205588483848985184804355772119924994866483686097190142403170259854435175150604431061081850384446569974262299249169297602916244723613090071563043274994909412987865837563229599374727672213603695883525407277753770480252791613153494879364493361257911363486138387484895869416451151574248215991795048301495752130415628973414832806692052043939430895771626951038049854735333390329100215652550038717975632194043983434637931554869465012336084622108212558014760980039791043541181049470755009582086940717770918221128720735261570891556660942404410363571088158141548990931559741614691149292898036819059276388540838214519686420587201295876922937720121255498549224644674934422464495148109171992587238705576106109261087504861273178590873533444507053800246908353496057412569589685272901612398225575170987722375127914174757027226928612112391569237155010347631593386543980515215520014588052195989337918832971783265060391216216397177706740798317722863749944423136640335453983401010146332818476915490877994802782837233197101344113038305714431853883383902166093362616965805991357585272938260508835216430638846731702083041616058175629265132724598393479860466968032304721417895422687087847091556536572859285301147133284348260591804003976695283380816633933198619662978348442513031750969522797636407095446701754063652441731553028974601333436297508803351684233611159267285969370229398092693356134966074937869829958125181746371342587350565886084268337232163604531955796952061320707171708287786118811515621784442509762992155320317190169281118055979092068550491359762349735863698074265845335176325940402507857877320037009647463319750243189992626473640040285857576674560262977627402666763212100870836834741889724251558826094700928836935184020451069121631759772233200163869795613199489644227687491289555822475079904723318110218804690793007197438674546728142596049550604095234923952558733007317803945764983559896348222517928441790249103260220305719325767512336511389203604728666388698266996034756987773321656852621882455644008539044062109779018622004465204544784883083740224023087807700018002835635179137664547485395949273360587918992288075936983746169535358573452155087421115799412736373897948646476832529981067154005384875996370636518539389827902059871226194860329372336661802650796014032987437780455949215872325843863613238098889463459675738643270272938670366073155213663645115892226496419522692839529231483683810351338259227294772923168210113996743884912854920393186322505344086273930774631274968052558052814653459295943046089807625639636318332900122481310572000944201186607598560352180439440264186809364680803463111793091602435413556901716540527928733799067647583093243291225316417324730659904325400480386113716479540865333446134972588366761900138002978629798226979990017988274174186181850174112420136117460319765314040461706836857657773423886746617043659428500502970416581833645134304118154007417896200630625283442698098762773143584951970872279066500079495054361652008552892618899043690328124238671211333286256149233097449381254595660971611275630856000923696548833132681545241873852673303962779902243855061214506409145412573738864290529797237734900968232481580108017824614445599712901302096257210649866742899290050366876175003140640159200358907512178001389049680800659422610679480526394334367334545262742386334680163542318640505382743353650316997582172596521344360377399339790083036760215118398214778787054570914841157141338014225106734682296027914545840961565236929672141677121984410632049555133783514949900166766513965951898100543273563374059705245622600504789730794809559877516896648099393217901440898462209524485506687105316221779107252132685090086758398884160233493603779193135738447597404859138398455513561659268054559066403541757825881365690127342416958467050150102289178068941104941720716835478987701904164000176381016009514596092166483737489077531889783130728591946568902487087871171186504554299157267074789744532655325361078198598694486412585406917242568488455189142953821744353689262655914769213877035274039019890777831669592137883639789500193233730017360023529881478495211468142412052739038559305933229992710226341287699859693210243236828076941587287004168459583693222522113161373855539459310298584745277667601739638993750524509787948944647193179440659827264742687415583315089211768746443336572024010524943670421054791221046180186746780080521244847830929758334441728257478899124383983947686489290501448067422746823466241286839793431212735396347026213655305413509547679483444763150043078365146302187907303572906142049007790197810468160992972673779550344496096478304461713581234113370500127345686383382868009238464468649221163174086303982593470013159452848173071459198695432744905120542892520920670969949771154877460134464694205582651278296718130700299838322134499818849287203506211508852841255224750966840845591927095123765939355882238263988213462621114444649687507097093471516313303946516316393116837040276887084913783370085438039156801715968663357589678003789047283896108119123461451173156601056173003389827691389671389081904466167297272974439996608457283395207169055591138967528090334328831002482280022427249095688548883571239525509492808040472959449757463217522262159596830073655809854660525486869344760504088059821736723747725882146796544554028851057220528181150938458599922829772480017692875058928394784607694907081788081116674717883511828320950860967649746527122416260405051248846387466713271005165499853832760379410316520313494961217964897742315700713937880770126891282680906695047971769980840138347795635328516179644777017656620617600783465421056560937514585930187400987715861174622540701662057972012356028359904053052852364703152062018508008078377627267795277642502552819333272634987634037285970278288456807032374879987624665284537882943661661270763351757007595128601082281564307082105792778804989112251649602773834806411805967959962236497362375747133711844975093836420417042073246304019650902174109365491968382176228036838426654691940837119632764131519383350629105678044015371370553240103623011604940535297736415644047277590806314157345376811232875272837021390737779463254933456621359345229153134963012900465383280331058263817708027036452580821381812921270081288741788235057492378309383641346101449567138702372379352064468172680958332114414951213686294884684151087469516776749602099551344572611696170033194122994747835385649242071003036056500399937539558125828991069476516255873810509839310566756332269192325057978488377783483979276178452716676908320878017947324900200970576228835758850799910240843240263848069418870227745388393232651328516750395843923767453144669718925779712675671992931317743686823035943947094162258887999294689187115497469370130187325434806060491767595073562579428754189208250479427965820831480885308672117640402753265473327267983681765464774228031459415360743044320477325770237005256805774864435989132822684948157773884364027395411906291287342115812487965091677027815147004252339508612808874847760461028007175632414510327084824742359005946851714496809482228033206457898719825859504345716693405138245703311497343185122169384797298475993762736431950573674867405149939442572489536493507791741575353404847332669634399172246401295459075311937627147409262683216592047731937493145123533405003860484506835879905542640450567861354324726130748050975147070032377435180094638481874413070662190108472141419933249053123232352466625512370504232367117177579892292276514028926194389146952720390201044020058867281094338007617527203526859374067399876565191223337525203238678580903130888538287127576858730366861570146069566802400232109269316814840512036922186005964638615177818863479653056060451656394152599009927360279065226307470464627427388741595433866185123867801341288151666311186638676709221687513811488618228196467556554603147735614979262759596398344497611902783866779245500438421000533485023243163616530985545986549441419397142883480870717854736364683211525915464531784886368933950191309718919176341564301107377704348358319170602296884238131237419422637276302269026798997465578650705340135806292453080997253673240276661564780113671495426974453740814523030384083951731197527992371409970574015635700695147774247704512748272936257641929055005995623132091883447850790242092160783511080740477533053680478411485461287856740062249138576568301094809788787576886957396845228290592356853642138439236105547230803214884266027317004069567004181410474846722924336164700574325123652300955871206146981775641542529445280056633093770527567214600826480220210409565769493018928435360246466529067967397712776894449428977375003967077985329321308730938803533185913546955356757275497619581645007400031641867140453721310590247110219350050017527718833296768921368181987632867132015203445051409403867707764848563470464524829274889121876605787247491973262370112310590330580061923724247877133431714715954508187886421277837809502878379839973276256582841209104554316485184675883344752764924353127075324763739350529992787299837128177919411002821486524755540002655151134993038292382567132078867739485381028652776800906009608958381290381241012240275259035210212585396867632288702322385447110629741362433014677794373015901310112813386555930303016478392631105376746332821586431669432183662892035977102576294406957101623954811543461248377452009477874031362587969777266459926572614427747388031181331725119680352931135447482663428169494287440854413912396811411848236896966033104679525171178529723554667732324478118304433533326401036872143419217650101342334792727388742452605440708201236859336463426017639319015030763764179779367722521398850296775858603488706068878154345588992925394758764145939291999546709418429654778757910202973151785800516473670706682055154407727525384621512574453126504730185952905852613702631796268205546649127960049167948541864707673491648720756578083693506439705443075999131239642944885979851522366635506399415316607812227903169665234710958707097820699259260497619082908412096674101429358068415706383087977192191732033912807774201190995592869756153163082148305787895686422344781154433161513020261681333302566117422603535882857831018631506542457015042174325388915247655761643685443609045055781584265367460191399484409286892940964898765902212532619378672609979419597054173471861465547235170110645626063183027277849676577176380429849585577006606632918893830140644054610821862656190016390520626659417208084100077630652950178146170706872568017210217706853179948172910051155158664040207161534771380990178618441433930925167928898769799534671851388272166970030141621686536159808394387853878584141020513729824930495317226794909444815449871462905839853783220892422218945003749147621003350585549575582390661731195266186035353254977227347139705783079288335915028293672885107872957385530195239308211513441536947087661725480769985917440063470947568276550509918542786039571801328548067700522365720401802441175280080175483793799009937282602294765523045448796786252789106661675177893150864824282428397843605762242172486988501213381030135734234010496299531366302882755072748122561995140905053863350353514944701729991656766233756871456412334743370415371728354140816891514120360614468205789240065352350175276037439500407812082578403317504373426954720738607408558341489740803861205574719708122844009609689602118504409466351004616918035680303286529186456931846932164888435000932058473394560823068542568881935810212483813775582413054188982406838775507028367783764521278200361866990980769134968343490003385784767856373564461116586687863314568925113332901672166690399200038188365503983445937805207979121471152411268379904005754494607621081847732939938435670049831005553741173212523179962197492308536037100531092717369694546178150065026714935093541972782443040611223198128494570620644823401672123809975079943590183600280911157149230591517541049537909113292151676320220650568483572159844711716950694513841055724520485084366133474662679100709049114790068671402269264955905432950282023800408321461583229428733092505399337011607987378945478431994967827039087191792155213950433158252184666854293642287712225833143561406084845729268918514958047359722002112784455319293596242926526310444122901518785771643857254228451706538474835570469080497632218202229108389629699707111912924096087178259356692091852840620382058137587579543243179432170503047995057160142811115332497785606587568969464360371465320406881567142598739815142092708013841305875304890238343137385469422811011527922735763239146901582803564181461082351450727265976874186293010165549074843124083747953870626245371767707443736925717427177420819546686467614162220661043191612305656633295723880643258725625706138492549932431874269020667823636048446571703748750561997684692871850914130688570595996400671679864895819052393926218444200282567679581293040524547372981525046722745829228604912380726150928241779262869954393381130442418118551036342284909083996514329947717351815988694208051070581100410918879637153820255046432580240666330024253811855440314120156145875167565327096312829816329296113883693396491288539201576801852631968815878803764455918524640250167283207029415552249890388146702099807056473774903195438894969916734569160326853343185564797983146505648526701237339903099369010979458357342454126407045612765025067721088912900773933283185293075605131059616148008819022799976949169416142704000047330121332541442646531085835153995891497495295805897599997320932568984341214327235912529770566775315144733153764108169994508869414586416800914361552404107978776243328919163587995895991296943828048410033561087688278283788759466117520597417306087942939080745427413051423985658014237392113241546071211743917738461696080966576524055496562086038122357606182387159885843274474730975309441632004880023916486679608259411383700612697198690072587477510602285428180704002683261934956952309031366013582375817490910318860852931153222092132093139868038042547514104080705841029798991504586377214672499723349535338050903771588592296289476332281975479939680432246921361805599425497924565094519549871083123259307168910110762165213352037108710718852585694781490721249308992380757097784338894218820847300071270766711023578087187545357419856177032387740258794787940957892874021238272539437467340533749773490281836116697391272491186014619280282230099424563386914594077099127855173124488990828693695737632226018264218097647144565346838852658326398647891552170062024926749700801358618090759327645866811168778368065977934690772606921366324091937443851933249975261268848516461371092582184627561624561251121466523337433123348980346709543418394121828779119267060392816952710836865665828943863382243844252298461811062732181029138443630687482222491523311302228005577080217051712903002490343861324825478141361169402022562726122135313360420981766381697422755445176174990575174732949195522283282432368861820036614290756101231382479810852948055685585227041370684276404010710894105738196988806376745057057724527726058578157216197064765371545543679052725054537565844151566330412564180252745137711915735702013079934592095815297326990571762255492263560970126888207010038020581422948880492616712792087755694238508615884006098519232226147445514414125041602307672662252137252716846051135889570462404093522961572668122768975343316259422399573028976130096050102177832159602786497711679113023421044455422769329964565812505965029760224161384808266766479571068175094064739713697895693646098012263178271947607685420133543820248672413263168943350338037569432793277200653063931372222270218960640887911427836488982096354618743926114964007465731648436025743272489794868573799444155843217994879121891939573672576834427341794453625205808311704160817981140942103490314542553948060757109669166748781175270068322186181935532072068598773315159833624075006091266620068089096772893887038527948659255284237664250685389227153832646855852968095448370730546797585965063968288538111931421736732948771661890027316677329331689453482856632880718632214044772997389606377956220851162949712644197281872584293612102034082286765868644783230159102927244122524416749102413298525097313570561666872639902685417278363118603598400271236746510499386978167528422967291114293573878113926310923705640398663211940524794165739126102506147826978103833261950204787658278655172111594142635509544272186239553270148090806320748532944377676007142709569505292880696663637071263571605249919650029387588175640658187475738132680976267679862205180706240837062425520026177840211607908819960107211545253529292213553888847901530784517353563475910212459030653978425196933331663971864181386062126424210576300401310032866893347205713050293101488161311992517216588543998366956871257610332552398926677329248232191117217031544912683403715126496640828561617214393631930563792991232416685265754361490654928284055459719893101665112380508720599362644876151172022136024482226115155329542962123310581843703582528900872716201480714048787795964810463232725428966183245526285716052861157554219753411257488437941111273120541892350390379480185790384067984303741829158381101995441881613778831890306068167795477539796736391409120455691766521334232348191130459705209897123244809920449226439170247643102958094545840961480913370177555900928820015482346589045501953521761268329003373230836038016032235054483897226072281879345523218368762469239286413505055524311764946102992720687572767803547992040599039636406639616682681863013894665573119784330341833564217389834601577895506628180081659196959052628935092350468131520192758388164841978819562674953613521489406457758205404629097903769890873603611661382193372932315760934601662664686323262562159710655446180619407587095908045125285421578679168917148071756910098053673052519731609501866416819129037007739837079098512534807378795429874025814323864162353469008231231756875181812408588420094514343489565123986008723075476535906679324434417067551593899479346539898427389098692947000300547256409101187519902801992941894973313844689713422482103883934899636541681092588659387867975745956327421317267092396850825535779921361420782001473801017832988574654176634389877230503351082812904083067610746093419931901647080066704160075449234564737845877646813752458003808021449851000919200171182280842610451427686748062733444602976044932816996249128359398932432609537854300578318375262693470289725777513279542126941223322413216634776529561309470779283843140671725348491139369400221217673141757110526952365235492772024114675709298404525630553856397180435824383068061882365845616303576744491737785113647734603530899748189669187954508204961010984686779752553757498173663256908254214131397270926794974728187445725479800507432551914074706516643729818786221556224124138765672752359422504187881793676926575750269303763350308814234177877392399789219254688610821855509127799636706882485453591505960695915460092632438411059786419259854326866992189364262384116095832499891610147539970346216782972196047645852741317262050037504556799513255871027574935296090670053873476749268895913190781325278903963166589741575409256582769919215279050014188928689166485671028810331366820162963316491349853972999543310195217070002428393663218980816056409970272966425819192629457278966689300689925716509953037061061272195445485863588712427032317572937485298718709538905052950925263602838853313122785820454020981145788590375231476726295880287690087999147604720316720281282143949671980886978029227611113044659392016189117301526704124564483972122726795844630698889121446792335612139927617302632057880119654461561319453698717344879304808259640679327090566040927188367515981873170761743026324932699822540668687693016787806490213125578787674753096492390186063809421044177856898674955757914195960651932398858444113585417512495083022106811949353183543527802090067518509020379001359863643623168953958055713693721078993412353050896214739947396011069725243822160773093586021720084303284666287400591539142074412013253488807956611132596219232726996644885001319159868116618468580622207677494373404385717973126951588197739317873705511421604849059337837992076274900639851177977108539764890665336085529588220450181799471037468876121398577567293128694923811494023873524933797786119496477804459596664465454811273084958161039274603996923265757668856354634113819020733131762580525478902781374905592719327753992254533368213053969323526809795628155075870781013169749461700048012205226180031283744158820547594164292458192670446355708218074096575394391056631583953749335847357737345201928460182455380406196137822718383664587307803703311033392244299390640549458203204422302085689203691191985331490209462982161520641947965159348813829295937332605429881385611878354953495483335394964146344983698012739768047993115551477554560141727885532231346547454768392438924462782783386046118217698633413341276584486715585248761053564767703656087581996025011559113360650442547219962173787917027532449161805740137943980714890139719519579834585175482133605033121958715942047530308325175690133168470447694764104307022210824540937531764698380378040360516202857488457996100155576405513870480008174246276265711798804882066469294793938641311152583451865410321741023307623272088834986319183081466742685542434511964420044106076607070658953049774861154219112853672479416007169702615472421952410195471328012209207901767098385296208828890504383815655020714995787799121199090471557207742206905028444511167835632679048034884391119251014373558398092530459559386975902213527750792843309571039842589258230176083962763546763709425936253140249224397655229002162832835050859261813113934411277324196711781976576299368731256792147937854441130156960062092696107437835106698197297909065919770548489682777042364248574408403676865667501895093656350603161724509515486903334209766176092870636258525090955476522129129854184560425374971380402647593370421793878381852008253814506263786704044390638752126911590652771980519694806228416275079441036246330303439828915856066407127696389890517154134535118039150918869351829506554923411904538397559966136391641587896774114677098936405343632545583929645841295740149339576069027436897704406312397915790972096103007793531595972269880308096685627300150109840884862062656264905102223826031610171243506569498270480257650359252196182251580080327990779778032708264706896052392220632129926530336082741834145702149960214088221699003500674084846556937280398269770540046536167230126616508644996256357184081752680585599986209298107911548964895035747550270046895546012872022567188524566754839789483874679229147849826898270405402778286738322126834244473831708860939567722307552705793724348153461755181251364519444073525114380163904320047124479327999966918336577163146751630325391230452789188004622716600360279782127530490191030633175217196479804632115778087433172015061492520688556858160057576471472062073604747496295988331031536727567197098887338345214826125608974762381197717018601019811535672176230601885313473975830899551817348232411447546281046788337065848149933437917720804872909076762021384910077490278047824206528583905139442134607945820386511188537943017650858997285664185887732551178578600255031774670676430933573655983059589208413380218511021784476519291025636477780507648326519109898050212168918990262218856864499350403777671386970024866038767125401989824775895576247543014368417039323345269971995267685861673858855798784131140786642896828283249521882821355018879863801934151168107392500209120225510765335993326683957901075883877866710906465597527814039952314097393005544660759978303151129636766827903878997985645269280567540991358788790528541269387322752497344496272813630947190983532045971044265129640894880319604185098171628632920193459266070431429773032053627345383226856934731909418380927350353190521093500391875943832367055283646030336477562362995171762135052544283609311110927369515949164261622850192989517527260372931043243569867560156646344608332674269910808005478251169100962272118553183777610811382448778457626632985330107742035559669089228674395451268627381941734900463473227298648411605502991126200478608629071804271225652515317201278652491233933290867839938017863229353909706994468250551566034911538339099869984601773571743083604286554472600120932306545608318767323937970479919300338655857472862110362741169905247745170278537452498821348178802870375402377910431197768714206099098418206353711903286943439347955452359915393869735951690447834563919490426016295584294953955418912014366087447254362810635861308374787580145411648242807861754857590734694407430998402861025952609803405009273025260490753896763966606755857885475222056224031480763449028641395914416023796987853411507286002356739995126501262718454129640910987024109399812565361070110777421372486745278368633764106589454185266189335946048123385878344505463538332229809209089429952959367588340356693905363893986556439881954199845088703090125357559291367953578826893163516783633949779671122674400332450807165467915892584504327739591671440017923252967500154100731231702908925106171847066790901129108117138605925749895261898778692502681653848139656871760636856757457613758254537154933813095895109230386864060426488403028422402311874579808012053613107460258690510436024423972368588195639438984515748935582466766951818747305884519417559969165325359915119600293502110093261468113253168642336896177602946988087963871398263087372142633576989490155192303688004613042484860728159409097036452956281118940437248577967065498231567526264099194433220548848203375998825261338747009853528207701653469915153843286641033911153887330465739285650138581739993722277128727010852533524613526655260362709806889264669227703575176306256918783511953824669493351136520534206928590061515274055566151655513152873453580540086091831860101133793159040417266086967028401471039627510620775765641096636151525712433244391966529293166327379199088923991257944626367255298953669573209080159224580677353935008089358660145166450983059218154364211289566253348972867884283525949151498055585542124540630572699551923597954279814229589003178087207809522857744575240790867469126245978430791090950049650072903809894722127064022546914682014662501102605158917232163073146316813341137362757020910637724393717669192258354369330416478128758735924833053450252545737443160334085204929201411660532162380935032142936328494862047959905091149197287588644225547633639529792614889370597328872203814205868556294369960795287525408296557490000935221943278881517852642147178740038543309510351146599913313530403141405373478720635890977950792827515439782405949419653854924724931818677482906767064117804404845004600021844078035744951670989623792371322821038284721738324931216651151076661776490226243332684656606220677994515606804171202733093980498856904271283117439971338154240830367197037143094684729371410681187243074711106570930511892231970032328788995843142445917082045430708899746128949940878461131601850278838803654939896273273681566689856970475103984666256533300719552248019925887719713474098806262999618291188936181557327283547185586594056410314341216764823049729083584074563833358995028164737445602695959701045346379032856457188965881187167857434289174703360622456098796848717538309781550698572295052220057156806507319231836780999668471103275525803417804837069645687917272873349090874005611345450500343071693975392573601043067987480198487454455639744640324903863372884441389760460153495142635240666364771748601119117698585712470667245838496839059224919201134780942839085032397899760100767688391108360284894343167479622813362451963924278288914771366024676101548611677299023506064055952097084214682274661284767173393430749750927735956226470538265084779882729710464317029641395578846850345049096712771261847003717156835581501510065288516141367206919186423555731091044193668904910655823247622469826213784489933338078332709841842487333292662805143612999197208821408282411486567514764388745157130911900681196864703415375247799020130559277759198363990638815868533474460337217915710332539052693640894273178276569328360591190849428053872542816877464927037932779435662009051806682455620514435177916271568723600187040587642669531882522937123836497955926843929823526741336795776187632209138371510333221756074841714505689311384265695014423491032061110171381420329534284358080540151025485616610297210967555730055209755916178307526767521065729883282063632336599408275674064636557511067632273865988778728044725792942512889953214001124663028714812710883172477337846992051028020385804618770667589826821660171017090586215918947767937999730791390111205583870655636842767077534926361321213187821408754593741351161076226533921403047437350831325435665500604760395441447529295736883679834292346651538225629328643756104241122551456092529484709043825942496004395511179880128932814538326297924193332802718180839066390336173936582224472569545043900278531971203042486684064909044543864377171720345982650317881052847453767966142845268773085601866694178452799685247771760379489020705063735122528367414365312295460748508248086112003348115059493895141513226351578284652856100365095519885283419707593864546721502713446270344014058240106313019875318865246404232942739960273628873337665009210024998953685673750687199864045190424857776105291060779555084280442808921430767901129036123551554842098229060955581324637001797345018762521253491963531523780275046269455780101192200929450922002629975019385941232590146126586486445914260084920418786721196086928762084333772836304277502225592667260114902780757571507887113496288007364685870040876446367670289784347739078661781019600651079848802825518762973896470495517254257349189677746353823514711888679034150570101799075128594771942106825010103898396866985682992819233566953810676368949945397649365781931984430176762623716475374776231166901393270704320673290888942996869179313929472861033920515992733364805710791658458723166875005217724042830359881165437635466239307427553017981759739508982767415819164368077258435619048154040925211259691625691101891188057197273523319840007938666361409088863161640178011839484773894175628956661632692660881555533890133940023808461706174486459086621340380303736313002386707503526775562629235102700988108069069206682625252361489181893192371844322518746430817279076432240624579320011369508636788258368551947680506440139445394632634871440139713536546983186685239902861309584535976707826994503775175783893584064324481694727737628688265854005015601715768584791258941551616992594116818516561176946189203595991789455282561698171305749811056615733682398927009874053230268349665806899425747996489230418356187551234825562976598324806215486067900500182912561138957079826033408637741287983311192124200077934891675793324502051448957998873213499742597353895100896930299464155453079809689178737169841271280161424495517079181457674451581540681479803743659326078821174132768040304853783936846899989236653018159615788136457296279611158899502445882504665850071755740851280621474806371659529027652043814358167579679965198501119248210677331352024252166501760367017758565754821192520603510468341799941438210164689620010561884552395407541001661993538756687585385522447170264149234510765569978010936915343172145582419999787572621266236704596644802662072954208949691395155769132603358793795477827036940547943445101916564769980862258358847902301197741450187864692883158364171573099117347618395632095505820415402547511516425865982948101961393866083874215811321737901078552791807034612216091572009094303766042572770932595344193543175247960424492260494448629128789024331890419195019702417189606910338824435261630930162089901412715462148375720557145512696147894957123289802767112153223775369107284719724468054677528827156764021449424989864510621498406432628387482471496178812694288369360833149486795982447969560888278150965515988835328174884920253107445528027865904559431417751180849567800846619272133376305520757845533169134780455347146487312982059754736599635758557253630526104474922686066859461803864815464769391259361097522874927485169536170916977325968653589145893046136875719086040405095515533207858796119112906913043123430763413651451863454022970499708502709879970837488360318150145159860427328495673494940956474780614804058395107099960799926543062211156240429196314793458179953527804441550967832526185547288574453601014080081516347363527997591222051523153451712698873167572434466839319625298488900988452493733583560868737400650175794827202686320018162997437185283328321012902745461321898852312413670020794201492371966121479660209680327066348316180501083563992236408449932962126060698618818871447445960939161212547758033997838193177359662963134793451110906925101408951181386164294263982567128625439857791158062056753818242553141772824066403172968759924516858392505481737084147826150464429225522462332242081427340511909190778612818279391530102383977713639912145082937537165293722767210259539931209688131321496435466804531461483086089535337276939497194685755600474473786238845822993944466100815505534691451281643222689265735919478575427822946561346816084358679702346244572773679621864454719503498727165480923106280837556830242179776429865844875633351921551132083107535717993449899296330509445445220856903407003906757080364126514250799333804113536216881558770185999350586337383838588594212366774159094956482514207204787229961330854272173832188490713611252584059110701054728128464385551509487595121380928402156911320960331963787845930653691761543692746820417983805451687114081924658883327936855483732415561032606043503306678071378298682586826154712549291250246554681040784289013165728670712984899399919225368400280775203612028117864221680870122168780091601654300989608056013776715542593490630676069866709782886391313059739707400482130031169851377334242435135645744530398162896860284122881442608495654099162395553726362491041684475822039788771040625063376231051783329167905753867610757182182340702425219487059068379484318809809612153206063089116914742132382360223545120664659808266479696344739169637226303300071186945274885349349376013711262225533070934518507597862633555547823641986331981085735016498467343335597374278070702915279360348393335978198771032343059523369372994290690247257239076735498914820072027138826014964155595018749681369584156704266917013365494420681432305472023766876477860502646698731470763790375442772711403213176542454685347508958217813446688720520030069250103627058550511562157869581842780803027605409508027266648859906236823578402199743955675024331470200759786813324331942740518860681015273186693205153270277822919759517797673380803891720400817231638345997746457529117736817534089332977839090828490878594917720804958509010198712712338469239164415593310565345698009400477396254609995725189709418286441781953781800951632647536482075489261357417952728903090892946039547038922741972440586316784678184061997867320247502076288185456292260797785171729869395504790243533225513499506787137813688708974562503368635979446117979515106126883680148624469711680524399274316353033336849540320638500031295032877823241110123755789497226082616703047594303579528968027158993865989345588575107385795590482907419252353832460233302688353623426125894179142076678056729082821890284728900447098111669468418494567777675366565156084684171993266122126079791963591828719352626241539448381377762341928991626573251433249045810510450476730666820643950461211496397128999481774670688055344001573037636464438792617710201189263924098380887477325065472246637599753866241154656047095089823411163981714981641341761189290107798504744204519706494331532011675819659816502544590243409556337071473967953785893305912092639761373944910886121442425758313211327553054904079229740715342568377062332423899133701348997918247351898508536231487756685135240971787394185944987800686171875651301260216925432201918539816770804342277106745537484592566300495862436088195909396937778178129676169497314991402411771101645241819917246767311248682571464704186487401472590191821026422544175659849228399421736476717429575159353666455926423773617307173810109101384788819681861173720013874099049722122236065419152071306138032354905387004132796275526021431415312376716124011395625570904557711443625449365348293477687431184662410702922488822598954539162647255257396552979939343915768031133699962866582634699253535725086772641881607437282494963748069664535897687273629125590576412822639628774590586597649980333249507536609018891417408725725193436831570156767147429337762949790385640343239230393282551604835162326386052388376002674605787669234178397574735766778759837525696324419017300193570220761792212688880987518343990152055811549763778925018387308224088533136780029189860461509322697620827909860105575639947690856454548535787532526344800723184694171827920872661310605255591162477303886651618604475002530587272516789454215636396609479624871736036090360908308484877697830208589968294878689224940654301907102169708097888478174929323858517480580541825269498518577146206303829169140270752946058213337579222441674262948584759084763731539794638469781270592771068646891866938256089062193303904227494696515702291928904948032058147156485588030732496379251628871673272034357267250321565824201218450021298024997208703809935496151422065014659343951182708651804995939997075420861695112338105481270230521518758485877624055481282158305726268436407908423685414948557025709756673775158693099762306473617287494557922157940003820469719590677427397121705885043814840219803879748104373341351111031805406423424777131921922969033948799887669179739274953322805604367920789226258373198081885370784169622044976495045351993121814359806575471901869420257915412925366933658984921310845466551077577330336112811152825755670506105618241806601731280820705172875453586411052345078263041197960596825737290022802074604735346345532385088482443772228131262649113132947881188634244807320012004281470078989482782244473041212190498174470861354680895364160145731025356307480299524247755446963755377837128350741215315686414872823432824452805887042186843071848002867024561151806336153887788781802686391197661152308551591252909466192035974325266462801110575862996539458539963545072354625881699365167706632818959093350970676096093111339987864948871511566502655693018825781688005572035446886946465366959460520700446166757568986858770785166786657577085265917748672612847080713634994816174452620987030489673903471985530128756139647447189641496621701246744812336600308356594107322002876438377052122649962162678206898448483021715392852135798239263627424902674999779237996100615109716222290391546371254179596089908928945047647600028560856617686290761990588568646648013678010520907439883355199440449298403149361749607905397138442287561976856720647387125281817804072595940032335399759717161997900831338571575157094134909513276454561673236762920242105943065475846699123577600480752996376531550665961949933385489952470398572199083610217169446120107603547340988598015711768338590243675807812345164354893735747804321689234936793507413192390513711080372066672946488765813262978998186318233894008042093818963755353052155617382918980529189824580163581719663976729013826679673709128282118254338181041892721014297604313765970259741619077305027365146413543262439649828139213850049191258374327461473021724872757283903228013384946554867263017458681363045481445992699631327406347264496243248541031777756271291062848783429962428902325432910710063334452394019495885865728353688573636938338241347398469336191113501876507951462574074454451107049069216376349830871247182234926827092383777212883741406013263902905541491001925628612835865111458654473476686880887361206933355475867471412380104429769797516979025985519637264717510081630650876268424187577427668370662157762250905755101146203362596241291285846479199171924689002813992373829151800882613084355376377876923948224229516908389205586944583044981075973765365829657408863406860494214394561359914238057361041547110024711471771167490586226983095444691644887221092100300976685227179794539870951008927954912224319350805872988200106692272825749992024116200851711458251350640689458235822807370853762479354262660289961202320217654499477403624034801811238044893669842821287718633089013507567293359559550721649684587186354859895508197932421175128439340453149628228900059235268558435722470369843013344400752065759896646248795472191255056656297989824486191703385551626852344423902151606441841783575087518303666401179627535929413112918290975738985422824310836546238311501747310215977393333138839838580113053395157783405372718216746928954003209789474165270382849623264990851777570683321249795921200525012425107791424893715624762976726959862383129287002719295263443383314003233064038704920826786243074925846638967331911239713046650131214465141559599795320420971534176043591799876753461427126647929736860123948621864911353489732663218646034360221337718302534697943276864292054616984518677159655659908064036403570429981723766865285524762577864466998006017043764416738869626718835286064751492544758324746639859562088502256255156068380533921102362648043789206717401925302063693046997927575049481095743132899851820138492259853351356685300045948230233427467839948958994936748963106385786421831564056106974572442187934855339182495092088895772848485645166652591832293157205925471772371405263711729596429790183677449487321894469679934371356538935896279720490122314265525302555457916285948500076996645342302602978866213213114112180398807732825518720728171496153585715281552311053513879710200646691671390855537432004682465019436278824222044194550727409808835363874802575150232280343889987887936523901749477020636785119650101277996757874535540493179752657675952607566196240482234685499994071687431614610109678144663313037036542757363817671413178888173640705951068920020813793541808621936877279355932031156902444797467313949513121571383620711052232131037505845983022197425969273766201153962469357586876766476505417271815835408665482622006044281810989342969070641941927366787011528630041564321676142325423740810192464319243531144667443789850196473464408981576286912398001116546418208179509645175389798856184562863306725913978296490202224842689179857701337434304115350219156388504677286801142454184632481114116075985065223642487666997260464854941018321932712969603388437331824608847466195180941981257634661638713155276820323065418806582323492295227240547348208546536697227745461812206142001529015658464142193094904015545380136468534362902024525886495557383222095384593205742610840990858798070669671620680129690802657491904982408855048897846710864232477890233086585224974102872643805040529394225587601480650461618452000975111932090457372058964821282839675939543053842825273124216915158343423677067550361184379923194501808430719089009824906223145816753183080770614260794057364470006694466150189084442739487659892596340900279256457344743523824521465838908701100505952231272566544114031514641297923099529058383997851581910944863389724146995925328841378678176417254907065387426352484595471180837990712555283639233698018381973668150215441182143140322114217013179698837254171882451466440358745873010674086177761555283788298956267052507323676040302103899301810959545644443462024909707291866009772249240907630332130484358592998567797795731695754178244034711613416765583773452859748786518837012080052891456421947244226107386032462738608211721991630755516009351071592779323692441442672267645018275237329655662750530606853401849182143602379505130607375349005592089819200082610046218775257582360011997619381926221752112634327391813350408286410924421951885488352082527908459947035298163515608342117278788627640233719230098203703949109669651064609580979412763989788658262948489438233294457518499110552102542727529791535356461213145690462731888193417233779087370142913050897806684524254374329414675370560241445764781340366627273530769396579907499697895308524244052914196203950423134590548165874955039535715046893718714892757732783512637727246210350581224338524082738973050691515926886210321400914748338476569280096616122218414462045401537892101582611313708406654575546101484335301504189351024389150123807546947503030541996204588539332611289419033891228715738539029522534614724904836530725642505135888964711425987670617997972505681942770190417262613581515985329178003135824861302268898012596533230098033671633274648772319118767265240855340072288958216835772229852876504742260003125628548823278052981386165467941276605341687240012393508578886425323711845418237264289722960565297090406098212405351306470117601883919986158489914589648383036342116463576527172757783427142636543166759808619270646797712615458072094817833321791357114435449612939816804263838714034395958838727725175775798379137478827984609092202230306311171446835004015148423944079584544004769394362200089124662961197058038544518961085171989190842406076429800280060307573969105355557887192870559850653382878865439429713496446297033478853692538776585983080639991426363837673404744969088110495940504274607994703974274348993016457758471394695288675358108639704032050619226371532552256535514705241849899197927304224312939749689391458780586030946523666486444917314422224168228362471345800632518033720648705764571200586133760714910901999770030559705655036711008843619207636369721250643530542353183158828335801911264997695088016361789743296993033917499279178736051402715637420102294316808758993953829643393091874176129284449953746661776033897871513601032541942183000661584111582244730921796971987998504802814440091582232685776343718077084863681242346982855674061526118576791640515117441711078471696823322672248251061875248615231174167937568543190433680488287355751559328372789572760629185338589483527070404383699229360722679249296624948666222790836686302079745850637427353306067989595058351584160234654180901875240938884371428654673409248212821997030765770272495672381195983302708151638562948513029522392051911197521732961841049897228106173494289417546944114847162102833626215846220741307009992808923906957776752795410267413037338321568522955515810263023105071961456135797566064990414740322980613492610711728582181039232293096367890767144630163866842508958383176377887034448366986550242248541106966390981716505224074397255874962098252999952009270458647477137971052270055876136637864224997866969006400037913453932108498254803322386067521772046271398416041520938224221511723049032001954118095804055604667497086759780702741827122472398863099402890980297125658872569034963269624206269631979651416465681524376875964674142066531320252797134546234818274312975443576323850211851546909164942019013733824441640392429012258631167437843661271803370775551745434869050274063262360121187820595134610751331528529694580780839906410073231019372849864460347693441824157102776482903130078002644828033693657211647803767025038478052324636457901563431996065373780939908368641789176792251873529459352849477904869247764079972808819043337961200874514984994474931514242387727472654827934538697597058329824096597444883574437974798059007209562192042636082374827350815564780034753554079534433858795821663473030474834787885675137361905788403747838343396422955483735126541938381442300095084056676002860755143223696827316472071442221942709494983952653476383147737036017949495370615101400093090981067466156658319258443411057008950308135179147915255071005659590270087290192710489555095225918948918391615336445824938825954459444816708699746231969601159218057055053705965710739678870788439998960514854106769093939454750803123170587534385147203867667424584895298711808015838653166323083137382160966028301183532340835090534754546249288006836265628494012685508383282105039753493916733864865588601968226984788941904592008146179536852638562945830081066832092690992751651913194727557947251995250999172626414426560740929111151595238838361349771852980898446286583123641260519126256998427412261581964374266136305766901420077482133212899964479642245298217974785392926201388305968653683844162225233600968105806835307919199410784866886093744730712885190638060453957682378021842753914525389921493734331627196124739011271930578855783050332564867096965827381055458766937144000344684294788021528589512851648186420555186256778256265564641374874497816585370489666177542133492719988265461071469622816237535494545719071699399368077173217480049232014040832332479449318856206030790376130781062683666057687843679366452971518227161415183288578471587370684115573029940805153808680687162922329409434932860381704803593271419976337940083982886360249180278746414937153819954479071900667608567216430475359795017972498504105953839936332185980115553666138956729812088397951353430701702449460896101122298333345242371185815497996513323744528429301379053269978341885829203256740749372116817528789258449988448230562013417767383798006522379807258378552505151228914513240175148260457280023954568707679598555749863063795069997599798710967370449832874884228798107527893607593654997863955759578833036511997850371181757056685605183864929551794190412352835593654952747224962314532081891238968763506047617152432425469028183179415049474568620558961760378026150257318477440462713275557220069134815354002436598109154568769176165109003703196501398831637828116939174773252224284990142192345132839223233748894370093915741111088959587119223596155170385960171266607756843308868519271590487471083140174609460433329293139958963623635447969753045559231702242107811920613568856237924697734573785718123559034154780602926363071824973782882484245543217218216566811499835021636304872765136927775436283144068392313523572114367605430589451182734209708384798146537770301441197447136662285612856945552738168555698046888874000121630547102285688580795943043025108629671161073400488648101951772497341439794165617153188952428178500463326115905680337489102620175385794904691650141859364025208656364479823780304461295742645757934268146687329790415290996197848751114639083598119110564393783916295692805926119209667867453926483656738417146753490650715200244425129524692736732123536803035450449755434896046053250914194006230535921427902404477709691520623019178669738141543850058041220268637396553398859047751145399193684576363341388002876881062975838684391121306174930066057925480564820784735840217507422680046174568853829794177237116863188765544504973195464987789969357833275237677096803912104901614455691586186810629676890689486497057291272785419236197067079872365803908841054721019234442057232694944205037372961270273980596037310273269087660766997686081257645513639143425345808294624244945950025443933039890203817586389242988876609764451391905885962059085344738152243138222138226714623451853693052887264885710645519560262749683177004833762795027532511955077046485100012184715215444480225931596997795690699110919043112374506268532170367141174483013074581820794526404868348298785300524345850181015943383830226005909576129442053099422558924234506580975143419471084575606957264119947013667661425477071951196897249302224756084567499285205457342946709151602733873215237075190754216226558137834992669087847106235295632060125497092110055199224881693077408089483846049056638507449666338391641967162871685311927897596169168793926748152690006940470429045650436749595246368721830136891069346815178434469396699045713256671526272507707084889597871501708771368874510833768027585506594492058895064278834825260636156420280244694291263263016658710512121427209381562321133080325458052686993497717860851876416817254077632194328181654740087795378988706145744751241163939378934355388229419430782941778505398797266751613316503730205883999934252081843584888400042100812536196594683759867019852554454656212307336881802245771539075301718680147087141827044684096362827314392107558707274862975425287876380274106596160448728566301472682122705644829291753980075118979073151177599514860854562286151128617469786046762222757566497200821467826642461303050224319828251189332737507450321464366826059948785197070818226919414109608438032738560138177003728908619926073290217415656921118030365928533575445316230499529127376185916207989170128072718548082556014218480701873127483446354604872798438518899062430910321382273984269660739638136488184438272681222633294438630662014700268502220138896712384408069831732610671950613229654630266445679887328344087120353514854583584639209429599578715386182439127582114727524008887797003305967423091621243443427209785152057201808111663799451239808077464233019547091539827819311224951278066357099303315891045217004034951078216906326562535016120053916694922114340489113163815758515288632258753877706243239722186871417851458766319229791357714949280207700254513456943042454628976433248234368345019658470126530832253584627098665498792120760712016316095712729825635184442437906350200305447513784489649405433917556045797416892065855843892577396304717893665619055165645649634720988130899470443985575371476527541823833843200553987951712876951664555355764965179994654316125469507904225529960827729534007171732181892814569151117329180878132815056331688064924708584314005026073510803424742891451248546682201338722235783484749159871110690247096281706368087649993431759499894353145907794442219909544778744777300516167136954809372994162250423866349931232169372838603992811743153955996053855553899780830050553170824629586831747547586147704955646414009286166318659990928188694264575433027520475925697498729249791244341380218588759376910682276782077989505388252020134602795766631988493620300531313416061979171343597657909916075567244699559098720378266397333474788540984944657325513066048672160589460927161830923399591454164112422778175809914300610094315018303916687539080785007190277738335442431438674410034744904640093934732301217259510285904803781289535988818641790494119763984823986646968814865000281792134081993631422510597976215130042047444588421284808982372529656853924598774988449313376447748323275637767811920406300320932883993970217499213089965862376140809810828743948594672916394845495909801507792669533572386716426686116880789435631821693350459821537139262292416058302632628161758820954713172446789448365355115440974609620485147412325274643723416806380232147973164168956614104562237880724295799731977285910390075599238384506664371011302653341565407627726451266317702406937823318592590631123084768781778118668439762713364101267127792556088014487109758425254841069567369649284775558612746721008073687775855164120102850264841903649869320385320435358111452082759245601860116228083392902292553132439146941705050802768473980528110284908141862825161461329828781176689964938960430896800286230584376751330606411164665321607809788735530684046503117350579461499257133489206007471029366283283347600930011142632562219621582004801641664259864009464000772023028999624647417123754958280577725437996567050538824566110607299123510436814284356116185288319957586729638899319895345936504201552695670348418988820870626476713827743871036599189670967224292284496293358751084779070911799846940637304112196969536224139697272491737557260752669889568587364109321819315462414024445245490373505503529635082896677396894670429989640030834183217586898009164898247835602609479528079124496600416504101612866569532327082819538248484226612474585639939255011129528000080080127861090696308413926152413084380203924483690193479647080342122073280559151308421548061892317776773553911927663207257123437928755949555466100835624865425675824222392982118403372382945437150887178012961818120645458330069915852482482562220325145985519667792749614418590247852571910877187625021087859515545541552309984157096679895378074511160361407060343926218011534569257996580873993115107112933788697644577026976811748200801677492221945648230770416295925532807721861149409364753739423017928456142667831644514459859648978702920007950837279685082207259290984928644938244865973302259745388557240906486145085632038190945508846393681742205037040937087440633976171834272276870416861914374653138920634373616687386164402531883175325215631579475836720288611541436702015438394046637435839557680480121573636965348081824395328996201543997799101577111617103945065612121541832612561950001798059632074649340079463382753537125144861037026442874352312447532925443769901818070923902110544260802344436026729808983008857286800609863770896427600311844159123806440781024349109891562585253820179636474693398554552635785986689980419193089951013518996977365918734376462998168293778466181598565231172394478468233939850448845062523270876629956207119460450060910365013245527723062163857634795342813388144432953353852623568444799714354155051072313208484577132840752311797946413813595715530844822688634122127587649468589611066834742763278402439892260879751575131829983646198137032990304529444390505774126763194607911757122988191644706081503160040796866821115730977050546549763724040233952808780654994267258544955289695830566669404651046528203890692264193673972902900737844234691077754117095312905864469444301160137678667552426554341452587053346529310682042231325961517698497049173548062019630367763087456422731983379954354038150177173652729748140322371245720807857799065489438941077526069462315405435746088791710785322891214485507135128931392202879356280159491559124662544542809001226509457677842097087765075594747798932917925295289355788415791366726944637359898118224914225731526701179166685802431827334881319545701681535736533009564236597476366974989625897755552356748279913114747525930138851984087194167611096447648308473035209891465283242102009816710003746866749628773180778312498886679448719691381219803158723494473506654148808637435744636252304982170346345298277701411783387621663264441589239426256195565921243835579172253755259390432447626547639894457414605360738541843016832577899051816680114827243524044844099338021850796619314894341053852510049479379683179394438115376751985086565938956320066250334123185392029004871120023735113931993701843088984507944159695840390747838031396818883860017302758635374812188902843909970685165491663102523171365753504310770143522531606529885331366145920438223423485599297893021567012138227488932835984120765854749315381876291988426866175777923692372846695082538778150326809726359581322833225707714224012575085659147188412266968861592079128061385274729784742960410269703951934610282869737535894281478882978520707103462553632863562981178512872400103129581315774365282618097260706584149196719734835404260970473699254177129747908431835374464504151062977121008002782852059203162758353874475172205404367365118202201229106525637605794618475454843345551129980130455540823111889707551001810421422807504101219680451212453657546962981038763526098362327597192378897050283768637004136057160345937685582253672744709641337777786073167555737002853703218906831589336626775094987137056728068483130656505277305863031745135903707552052616960580291170823210941110564297778306151488930065578199361040181241262455620987751847259667100166152911952392358830598976918809536091143949469489457617194347651648554206107067084737800113754758476597269927207342236899052081950118245838524205044072866631782187644031721927910002582803731949699852190890559566309752540437856271982609198716879451022873487161549038688503532629089106831718623830823083173291528254038170974768415947171222804006068296503263058884851125002855448879880460466269500280083018149504529294327110679622764244940662412028023538648702024678338373002742039503828183460836619640970729562786594112289050423481491032245375553551501600229672780537589072757983862456225473942075001000912640194344067727186067159708501167044118516813724868410306807884490710319833488707283542089712331653272153659670222406463741478090199271562643381033858864125802792519827327933065816030478049496047172127227748740237653204433483509792660486532887432268835548831031735524290989073423952549043146237486660307814128146088979388203366706429843081307685699374148948499594112016706030690161701109547331443242082237784107938500267048234144553657313235936795620919360157382834001526947437557815868937580055552035401404114145939495629782349252573154896140333848884006443490025639776980238751893766083882351603751332354809675526905491265574552298336012680340317162738450529551903768976891014269577807325324319744130694714183029654040789432179255767465615295427839905992599588793258702292901600521513149424451158617198789831229330880639525292618832700838038806649408833461217905396888801069544802825606936454826510504345800829785201729792468426557595837447526736423552130505497909295818059398269609384463019363460566317515685284532580091667026684362158937525311797227492359258765277024872575310429318821054426884864540546002504347557897842515491294110746393179185141647127025843754804678071666311001722019348515401522859421787789091004270687365572643941462225311494919878627550362780945023420042026814034939301502489646486989597298211906664920009334413078328638828510029197836379738496696151040913419911648336876000890287776148215417439363062987975335953050713182685628746196726122406140250223248942271058479991519801900871331489963935539019754915968069829912383200361504412335126279524589807516710836863745531657608866066700464246565499978292308530528159705489614511070436153783298703071200922576843208775621619119727865898362821329928339384708506678508456616645052106358612149057211820732976761479838624418324913541875384286064708127236581096994480428767182904094056883217733103410799470526762070678276376589951559465369706371234388724377263961182969867716868646330483451933112687338357024619526368204722114029610099588248861489166692501419035882164591303063279026597651537638886232439833268510224876982785385290152744935430164431563259842788130425935474813621410717107740631791492056411259198701433018954641001709377450075421755379892675052753479077538386928576020336826235060794818374693040829039726602110636288076258672675490935142987129611942131761036596923412136145678878185398208871519153534820576020950844705008341323248075123129178943985317664019113429014516508982540993942820195967675169508970303343662168525208787808156925428105058452322158405373278533009763709672729262185630176772936817180849646985980521030366449117655064913610506569049823569102493097242114524347010472821535129832201809194932148213192690308263277132726252484000304754255201999262564854973693164327035291069654185779281368643103253174208651783090186176564471462074385385659429857522032782671902859052134505344300409936168735007418302200396012139183516383853301608944947359461288740023619414099776778654558996513204027345798473397999595941934712479358239781798703648445985530018546785576084256376730783629802644722524884768937113418200583175547382888542713840336308796503998021112730240664522821202051717486503705021631386231555231624476974028779698464897738701957113852137053148805348501171536819004355971242398360057592186523792383610459869973649315900977431695010592397681574872869088328710846629583641719922887220454818648961220407750572408356380042200638014031521415126368619978086220720902207259980760866134502937549013887649908127181852761856463544684412865245515221997483836720319593348257282178671779889327219725556824208891722573795656329138198822162293663194940084107765100922015958911548997490156868211232136070444664782686431621012213539380627711070852059944564625905988073225592052186670231722308889485721174772615279981309469226427587442089236508013009385288800533452304982104929222099846721030209885946362104890353470318320909210818254907332074072153007573687415376353230108500392402756298574580511039871681156520161126277848294903157895067567638522520049166075692519066152673202288687387893722373415094348826624047654662635989653322107997308393155654312519639235587119015640311732722404150222738347309666582705768438881739700968612156079386851429049008966179199658548606714449399502168882875118614018928031354338414545518879257718574322058899129703479074086787741909431468845564194825734508530182641202272272000711922482311335758791128173039933823873856820163504477036148164864404024189117332976647296708054248593473837337399753515189348625911991221506443201899289624152387401146916289061385461815823494194360617352869858511696298058857746547253543054866846003586547342323512667072776765747601401780299501589409257750974083649219072859804340655081834719211051687780367145209883581543822957248302365601842388111629384046571953027678123937945507390563566196259584748474926324069649240410987335281435822531433821545829767412671870108609057040968020910642310115171838155383221091357518563311822166227541708588033794817830485379334216090118236324873456657230289198642412720254999610254378007645038460540856459599022287450313969789043401908693349529191927926461625169918113050331525516009568454116548671949458895278026999818552767707730870610379108688952413115597511534592364326004042091650586838082048984532262783166067330195834783039395510751026438023882148730895111905843088175594122183011380212077059484866820547859406145185584255244230466293610353993100512725523815277977530092353709351882589398684335126346205841885926723723709076650291529686333233548404254659543448735292447796212994325516696302395398477845808255012975083577511417068725882550571673974406483322095987827938276248683800475019168802427196008494086035101460985393538483934897606865203586315798125854476305192425105136172583446146721275240330727482646847656279981464795492537789297921474524565049562764699887229881660228855570786951537427226390368948938994699298915967312064014798902873498892284658392270698266014151669193143679658420413954529772237159068033403848165497726534704730532899398644177926295178736684052041132513068053389387242843550730590804606817872095267598581517150462002706203951131366249692484407008417448658361218717952893863475481322608948539305275131771392119101615815101897130779040178999769993790017301207457168017449598628897799014787523298707206916737752632020562481526606878057854984496074863594349835323474533863605470850098790810409879906854836408471394390157236093129894031703653968803589674431760945783978365351589789186631335007428606239895490634718128205941924236502139613368582421506141046195326978425767203694362684680879497425631990838801590016873834546506974663063090721331710026351987316328764414025752038274047975688587145702836732926895605667469833115097640679040508252099336461914965218551196100737098802657790548920530754652581234593006776271356647657164385715377432086020119195071252771649710749871158759631425676067154021808288398658623919663536324178115525377116404609434290317960253767455845658648602079299334017624138311094897946847189819695209777448282015662820038716051489471323290581961744528463605971778168902050789799905501060635992284241726984031289149205274285795376858588577782193573536660485726527170358441457341262762196374727886005915512164443945646670408195775002989886566517512419225386306004493806345437956578622390700947623434270465561022698012869149277360290060752675092162833022983273400244272394001005364531316996314525452036715191490468431805609490901449665580371945018834080044581316582226281670377456417084466149604480834148988867401644088905078419594695981374613229627186540574200522691602830897652055386060152015705073720577882682843580986615521318214188362419999970960388760819189180477757255406517855430525199502683289685399974792584999700250271318650166065949932071826796537264337233998440217840781302952225294114011372671868275299363315276257433804415043905887712625078206247574544681894961652394256337095341044533347040951599325461008100560784904523535741917090237427137275669727114357721557917623258441015048463342756516277712657014235226184187595036016305736569101416477156359795865370387659107075240705761934657541759827058313072872794518107527650380663007146573087835955997540037836437912343795522702664142231615039757564671241521256670916638538293055559839053310321151441797900246995235966380224088090320538506194677680695991687699122603880927017908305748317995403607053064544855566803804147455640729194900945850411965060812566345934471047501818241430272894654716507498907154936640931527247314331014520991089114381599440774458424331683979706292938344641197803051517694622718345565045888344816494981263737843931889066744494063373171705789583552146975326742359247092534861365048011921986519321323985296067023697122530016190593991010619418441130268641185987077472865927079637732161191326738523525094584849444823894614572680874942376419439612807061762909311043860703989152361224995470825430145573190627027296441927590442280809004064392758354397896226660090906380287716713479057228310077329377499984299358002855274304096658687026795381087934635386755783303669234477643625605548764143340611912956672248484914366088259230715589043133992683534290487438867520089777197871936528748320062451542154119956418675105527813323289600339859129406622978914752940028757145818446135601760681178418492431108646388389965110540070850630276267591227126118452804339987997073954923352533157642512025478447104355366364093417549334598868728255614436129435763041350327933312807776941965553007302777022755320926167064044667440428168717376404309862934442173328592330662504928267499557922828862439942573698904979420722740035941848774134104026577306303901489157369655407131422278558298231369870703769876570331663197605561955338298997837158810568028958410637699271634486690638923868778352345219009837188964750414548737007764597793276683707152825722507887135655861267301423963820538741818200106367013188087794220157024693165874163392604077232833381425962736937235711072800034451226468605591841573109343026190600210494262110871645502178813322161944601958049477597410345536881374826032703205739461706817473339126461436501417469715569176525122394056479036817074497383053516728281109776289763069698949092646777818102717052292403751791365204991438621472885779403149617835400692579768796443685968305964781410956901592836078129989199672934366072710352724889137795549273642378598492636210657199395332328090644429698621996692511647585667566923859266775724045241202773284337764283648407953882852792067393997462022566367576511445640201128247091141758720533648798107944973547593287401112217435139968799639004502810495750139326846053869813084546993156736190959100911160506716577717471661603639887422029172006051836852920063752917949892843948977955282583374892676390562098828540387252856519493595360051719049309618827277200035892828591112585887619974624639076260751304505687996733346160550323151660061878325114363285164047357506675922079952328064304289023633418848637371445905227651568961960547530151385010227133835646614284023103147269304958382927185230987097475248517748638200974077406125358248793870304721805859193908292794798276732112942202455571969417108642441578125683010616018469415510972268145557724032362487188435777474860639096372750988989047127828084317910005217291712999468164987706089095083834326818014315003037702036908554049573483873994250768784692883853012283027121388595183539628919650921759521283446644453106432400425534366062645506007134210074041663032407845981333631405076142054250618802336791694849204027045710180864634356071536490261654211148871215737315839015452951026382248111782256371129183453925789357353143857795774981585311877402123988988983507012559283684439173029244697910367980935645592174977878089685101917991576976127449507235515442420104180934929410467476419222901882181653386204501476293451718461351381278015686917752886451064333050604002861948591928141200588189329651672048420210942597734207233343240396211950229084195256649285212307935116188427133984880327303191578783695925849513711837748769838362277924411128934667951117707868503999511179071042808211467679812949689151775994532118768439660689888139488080225532197627895628123464777627986757358924958668532052720641355870425580366751315539273810015690909432770475926677566232310423082635600475033850893469898388397869283883608088670447908568685360006499858041883976176424965694157451115632673480969230464046604505968367390777023444918127525558464325415308577993583809026134916880856828966629370761275967319228819886675548025317207279846897618847471321936701130675976020418947780964171204408990922803577683227376340616034429866959861058401941969203975434684629065118383040812659022656587786463945428011097319167116608210914692975859795466706582769402523586835968263162111353726613457921273760798568764934327613295529647141155861294016041448230152178610444037718699195234137407597054437716586348682117144828534460643892586268025174082810767051472115653467800265470557176885228239313712523336758214629575914495619627007942435422349312264133933343820469224536221466876171082095702418755760097090383423178613322027551795327654330567081636266510948219265566731868037214976071320289560586905482992349756900384257483985658170124695052617865411603699574974799818242079777724632908216330902206269011005607033401740993217752826995418855387707912689024635706799425065588395151448249801920138213627909558580334949756030923562516884368026636555465289679586335161359157296222502251350798954009461111517539911192214878541642665100893899252288683034025267879481262342152211703346356390988418656936382901009915767029156955334122543414219389506971722300919985417178019314311028509162879804777913762900582308318768530327739113753716420902360831238297334940341597858313103286214884859141221632510430692495475879191467477246460406158008485369173904880084678473971613807068750593394391099980271849852150578646303509780831893603619458305016373100051577406840899532359180492940842081170043383320384152727409605367838394647121579736091915901135107396018006377767993632228811075075068528429240990488804080607352749606081492630250377827816520530973673978171745271978855092496257715449248933882298036704300002311068341330620026084224685661603730701844848172645175612799708013820985149796947257109680470500030343755409820792891026661720859175885466592578153648291412650635333485452941789433980430661252695638898408367624409031468796049087293682588208789825939175880738764533010485511281912281778808205012322732935950875885725521227942593542474981204310681623866186634824374584947327243814491739046348354844690862964790864555678256803761111576697454085690130537717289696221615660821402883721736761148347729307390580319902198096757125947083060616420103136129820327343040250456927135139716225296417416894579073545187773417050433388784006491557312347032839012688239998481212379054790881530358342157554063838434365369809386530943617526268740971465351540664454351070744431243088222215713316976228744884588201809422593759916929869067768680368998610615713364240783903473732909615595143541711220534626247867367474024727088451775339381018797364077467469279868710534471928383223612257186178476100229951922525884557891384861085568175844692478186438694149830752573848966979823295340154642150709190239466504487748546250617997347192246844496913668952348769547743736731009816360749495507733356851228097296054859478538100594853618608015794503379974292007692666481400707247048341119063184408655310867886069336037697549938540060647127008310799570590044434360480397585599668781921894924343097980286353732690557543193101297561684278132270623327192204115643312926479236712071993617209357710365017116929298103950960180920742118150262859450099828569110665814140242009988824405186978008849776911852611058348428868070527671642433513677680180805014108023530442922289965962615994323006113405793579530537583132358165116033832842106367018879499059394238723607410874323022992283045283977069072840737763655773728365086980359363029086350547514398142992666977742052359089960332780442773709268352076594774700479785948752627652787132681543591129949716521199181989747044841479698205800591103903801432152013537864547601512786416723976972739478470704894995025795284349939589818820513677588671136899809795039265349306215448565800346226140833976466260712581393554794009343794351207832572559663587222485938405259256339823123979090878806934964565467591744263652456852727887355202235546660613464209308941317304268249621125414271186739549159882684300029715523568949092018019107156684697370478709667806361469671002441584772624903902380177916536801149799532160343681927530015532392594980706391314066095361369798351721356175229639943478595307456224065100485108904294166959122891791623421339014277829988784603196479073541917553127301474829348415352613530537696876021863973379815714698883953826593891485711344618513404764067021545131726807140446324127234203976977848431438685876484635541009118360515636296001998985479973681683708973230231447286658436803708226408417573993902803091463455217339945886679034645143024561672306427268732830871148928587751814861610254931518765039365127731737694595653627896103767125782821056062521566167774748951887933248639418739367368331038773217917835278950932315353758473464947044249002440303628240533410939754062687113478457990607725554370131582748833642373121268876669232579396859952542069800504673500776245142461329721906976777146711608867500367890446509652631650203560994530203449348813695541811716379714051178357892051054118105196620924394792221222388989219985608780116166616863779616455151991084216671777107509989924868943665332044573189867265616900275157333555988930754835893245708771700640409102671136090251090457738148460950311334383159589301066527903702403743704001462890530782876989129419044639756820184884888708747779277736047221900661694688396460093862939364664902815102647684554779322421747062275997912017732649379769113680198370863903252156513015737278899757270173121582458878949649043599414185265757502966046221979984083763777780656947634865283450399999208486854502739082185378041615038150033214174207409019995843318673416356243907546479409013628707585093514808247901609368255861901690630418112676151408846961276764995681379266550677232164707932291365886297160020286363539618036652589107180814041546324547835548610124523119963603747224155921465036713399686385019258834805274298618765770680612861951013016462290099762807286687161999813431613338746689387973030649772107542711685565524124472883608993284384569732475742106757882328924619672879923967704342315498261177388294006284773831238567686719310508905315234032477820313327497254109637389687007133028983429445663238022072587264173585225621999295210645808661838568272126092387380583454424681767437106723944228319116788458072065150161005517740162793113500431841864116072691994323786374544303102811783659872301953588973714008443831919677575321624325279317611810626424230589165504505452887304152567344508016540786449049752234234542298671303029625118431928892776778441491613279015417338253601702875180544013611678602274591817382371034174775294705439194123696193882566623154882640262588620080865080629298184678034915157857242321109207849143616617379727900169052542975049636153080922650995197405678139565824149779331514576477036501145063948336903149370175873875578492212269349363921578484097553694326803640232867338044529400226153653978481897912872799555259762363200805586144721920041399188872865538707025899310757289871614343496076024204456515044336161761011690818379958479845918933221222119698943980819204423011204101534586429113155156342185588908915830804684401277928934492318325006861601219233468048482399071078841168899710889201323664472315550876242729855552427395238578577530924519931164304410695986623661141313685379831891576403667682920322919611000427425078340309836234781770216769121011511821114899563071445422625903575452944065038732419823165933818087928888817583443488962197556764202108274459560696278717734424493218240971604262731467510578943859327468052096882467559753642642747123915108505199579134322070088741322485626841583773628102736387624988663618433510431784273214503685500444902840889124996619094477287564772894800025455242273685404994399189680789893632177466217747253517376265459689936726317608535753470809960189870660809228342277559069883455145542532773352541481805706199395956083800189844143380699687066584541359530091448986037020342328808778962407096057562857545680266633294755240483229162613809850398724758869132011510102802794255123641964978016027412284858775121447126320289021034420592630012776902615651817381003899339219189188400851531992669649549232525304364356004080305260045788427617703550436471219607870138785728972723671888938325185096981755961295802862542821254404587625613541971428267453711084575515120057075873845768547891695532434745811003249465660393993685741488854398601794628679983038061916250582277234306595881705107300743582020251704010147417648687113776690178061765552435254200652971753943916838410546181081947450044751935290195370459472127020574105595760676134289981003875075835320923621076218907543835139928693283469140006658743159701660580179035499093491924958959551386491110370524231570755214826329699211515119549137673360517224292620709360444777655667736241804972965583038813069754882338894240926745227647997850592402092476694353597387375661946633485392918533640601928470403876402401623599119140479497781805283070822184069534184257961052002324487109514943436148979715881571361764866615929257555262492684817629748042096933521732021796902429427486112816554135657467104536687447895678049815338888523526321251472840000420850521999679574140622254255432434145206349077671097627109663964717936720545142375279223867493397369424204236391505312924887636999656355676836857329799688847190232896459508695632188392805695460325963525304645750041625192213353789997594449333731109252127433208994800768150135906942483976108901181316755306489815414012034568761745452184802004792337182902791037305995920542880998065467336765038458279148759835748567832301244914176944621871465850212773800521849498771021359326378751798456761657279446572574300135093081926364515463953851421796066232026451443016283251466756177420768018576214463383926080981273091872827514997409217229047019085423190783348243601699075928119891611041616037172120628169409393052563820938375317919762940787394318511567074937896900833015398915651586574913610106356066102143650553969898964048972977880339483920412914593102448828249455564138915050472729136897221706903265787789921646385720732197531320200043008531323988243041307461857498617657909323143922583196929213833091094986565009691603993478541194114842967363595099857765929916886502969828111323052687240094995575438771996358957750037402320190395916156377218824257423044629668342407381701740135391255869062929238639293226475924164491251832351386659034026608767692112502132970304502920845516029321495869633934296100017602541120921728760784086943170628132395190281261604562458389475860099336363824210455825353009638639209895639595678185703302579828219017429582852722071722325020009062423237930133676531866926603198295502097201130702710717150378125044541093807481519075731191165822549478836100036115250322649716486340659985099242610650053971761725965071308442237807621181251957847896940368461669666214365351043697078792563239374294296113662022322834227765214574194077322140092681226903904554587076476624589664037646217042268958517500166338948376493249907970825617161885797159312739329243063162444236049538764411196073808873943046171052216239280377291568870951002795191034535128646148039992593745750714806227535167609453934586711970416755576451956257715039366086966441768393628337283341689330289035302264756246002044771073778153109977982324528383302189477581445324439513780516845555909434787329612879051674282393031631303189421023187746603381582720591150330760587020001660133296055462362495406851031447071956191757251617501260034613301457460176569917680441213839950111623647830606447679264774166624865422849521993434289653473857302114400452248589302320224118153564060352951603916728821554994120937710295025333385747096420305813809144318033166981032247561342076654625076209684058396189542437423663768437135103326855940744619180322206921556241193556163893027768046578026630894187136659250663439615089891089745925688630679908822683268932666108661889998405743144484015303780862877464687857490722829517088767832947715366233949545520556359983744833787309371371114844417995170879155398813687736085018575279826687497155815126137410181167184511356572968872130174546463988433083034504824419261038102874974981872601148200168348834717005436983985690214430084319978292403032817156602262065942699117799711367910435023850642792962404230841307094253074980890718109415783190393002432943769584842137105092124805791168408966788789470262583940214700191378506014085322215887019144862729828122930478641025680387588949504812423593316084245499159949633693921803671780186874336078839395031002702058751144054498209454613415291378959727164400219055254917261272214508133325541112532004636428168158313862946335664006701230151806574049857558739413848374248705508411106954167020043581960483252038393744237886986036565079628225214120181243046975156858358348834806129551038006953691595694799647437486665255574909568977198116817597194511884802331145100367518720300516525349832059965103955957052641310322451295282755836513875297454419245456304083622772907551742209335884832191422746898051371864042383209804842038677471420285914720282330279573529540448550541716909294057612187301460979925916679599589213984890783959084300843640548056872667525577426262573196035294989104698355098443256172335873802550878095621986318890436543229176915559058534120293201343324583522924745188673636041867437528664550158643298204557451000196358572165179722227295437418950492715825649220723937921313002100226984917369511114941464313098297576433671223226196997740230181816425341189191954239865096595892898043662438441229863584346279014955693853544468538886432929136390640317692217409312680951631504112568736639427058417907256561695680915964167234046220645404938273196509849781582559639349209068524046689342367124597190302997742086907258018832710218921656520186440523381202505124513529084610987975668150407498810199219065541866349846277094817557156666673647127454674560570419411331024409378719084359661354598825888150398102182271620583555058055729197378536425899169563839692316665939716439622218971332131174276222331392625638473724936244378272290057971504948950801375788916849294662728864798136033247825261107022392711841527922850320176625555475959534042355037933167191989433307691716366076214675945935751607314976399759920126921881753834491896064542815638995103479587749596365780166322827526551273430865260109309396281219188901900508469310056135506607581438164902210816026636440407885331829788527434082982960282957490532318870434473318970731259772322434363334167438705582946890425342485152628293996638286223095506346731752125437703965440080428304229997428388369142025087904182305077708350367442343263795564277457277667741576500295648477609683685021459510161976040924705886282989192068536036576043111661142898182171515649523209721597383915392282044529114268368336207063175104340634703236640323309426570496202992694784244560783278691584462155890584715812377813172240984499787351266774130419696939528746121086883792675244179375088853545876724304438871595125613875834135771799699938298030587753289573144477485379654218293330463603562935577537949128278711833971130600145904944768090067406857482011776248418487338069728988864917601808799269949716595714351287875309115830415493007978962855813282293208418195200901951475257155753900623389211448084036618517073991362399653820117877922914156672893016736929123997178773903772551477111599695450082702483043043807986178813600339627326437710648765180481264535588972896300810098477498820734597423891103778356964270956823140779517443037648106921841261082021283103449585870075456793499872382074158271209799894380385189408338172593506745012864253802409279164203205917890985454417677570758648983983419995802563242928820100624987931247594249566563490018792341156869873946453035040148452889149412701563418833843766983353679679508883532154286227133419855789885905882118042369197260469904912350209960999593197599386331429950394903399697413272565687829086856379223285463160285837067633997430306306519350261561474501118387964557219355978648342801267008101394023609085846049766582555515527900550795169179832978948735835862400700188780889948065398524999488235348793978700271025868322463997182497196229143392805564636498777601268727395307032681525843574700619222784191259736154122122454623768771669878485648245176844555583425086103394441027879231060420458842829683494421706970967311642185342336193787036472800910593017297676358665892989734440603187112797079197906441471737003615443215397420215355011709980987275432437475102752758455927695702801081902405103463203318770905549141906244912542461475627573754734266917629703108606190734344399824872386225824815568226088717690801661740801453335859737569815280955848144248789381857383804466603839204277999981271043091392379678010746425653831628352280910864765940329066253979841567248444415210644920615773670840482657034104168677666808486139481498247280373479628250865446158801132661540236575215526902338609778690700107934718354962977009892446213456352959472618207890837223304494689706311881211494693958548666371306052694590052669306503163389281268217848313850074509538923326707719481500032037619296933972737636938197859808448709604524958984600616909761560573587516365524479746983493021122473364531327289835828546310010019642858369437484537138751808836963397919897554340646353946587555139359016954500623083354140892195762988219220795256052729502426336481721186484164165315006645461392554928716901720043201023805062150304200401102314277565333292709361127367282416773274328939633545610916727255578632414109174081008853649998064646087396041295315510075781983381156957662133831867438647950594763535565561413122203385716231143628764269373353885674608653657113220801116514249825368132186816982620398818026016586303073005703978671991643551034447997366212856504515373719234225748978906025624305575366270431967396733104341639627627372038969271120413136604915596961259336657828162993587968103928593444361796902941462207607265904036358115350083537052477688310754714457078727836723384213807347380877973631148739458244947305493725674581607931924431100290601947450043217259649553403217503023842628631609849312918278761077053366288754488062092803113088625545102818480225645772621543174865306361128092523756288442046396341476674164779582521531488443051527529302151607005630664234755655965316739811103536097719596050500639056867769927308148792562099247892410776317880662740437091092484265182743887849827618817740782836208427180079860329421599303764938246975963595863848400520265596379964040495815640689792868692336603991336073711408113338479322132963258623141009268757833492177934272880353665798148726291125541050243134838615958511342281955587005192086172377780656612192134572069074696406569534631966346284665923721633890253269822078958910774650300641379955112723998215479367941738384411798961412738624146255227385652052364480101923889026162228460037506437081862210303638982178890458923552039073477787043723287659865550178263306439174098652732652810237886319794367664269853318416599692540538503003186001945614436359370719418617315118829914962656870384932233616904336727964602072517691572638833913358106268051976001557781183993315624209449445353001769699291311135694588044231039275959885437825042691149277106662075462716704800706595496810597273026517605375305184305709319378339616923953224028780527060154600237050594616667823404248383087304963294376997635819089787674706095253481909856934656063196732758850468478843346925471945658423998380237655825989280795447629512097579194748211757870901058122320746157837978973426679425615547600882725909588196587219913250972092543698831293122989397071018274036151477103782765325524401460341295290812238131229310424682233519646760930829633908886971326703878250319294903531622325955323448772636356202534881089222519491693002437587475076609175403552526248707152806256158714182515077802125019918962702542263352469207204752552106621310823671775235131203760915795517975645852322216419797577660201847936225451786666238900007154986562384421519746302707900704713490942614150603490323621560609226303571357578543725471165876996886412734337333538480415122893925348358601680463410442051111049628313275215955332449361190831653057805414640531898566741378491084608993428163701886671447237290172927171462373967825271556223120214907427956347221727659529244345485977425364406650342740643393177623731782623658103475328878480521642121324329899806998929060651852347843500704181750212437370406132249330457012829490352897411089494528227849251697605132414279288407968083455548675630381484641755193749882994198340000638314699282796137262948353733570427706968767933287953318988563148425029699388569369201133065797712316509548649808119394141359239895407802159997496223142549895986192277356385431821473017278697806333795664303043264595301882261384206139803864389459158685110108156128656699913500937376689858639282941843528878217575264358803801021540306272388063657254444252110051615428722472255772003424189455457662426119182987946751541027966038491318781354654100388472509098624931640694570847542751142070713526914160982764070224095572423764545780886113764694965523419619015982324614536822940830621051185970507789811239826607768059236731304355143246304199263741130926671410127065702402182269859912519077748997230860773867498752580534395119830786881440672117132688666535068200201392689861588594319436513985758889874320210716339433106992625644071074958274123267679682292371293287081576185829194345612847336499993661643716163838280322890241628220483267379411691669368455909338075053048709915949966423304955234175468738670554825845559885852157681601043989821487211242352024694907024385203220003659673858491802742091112129948788314146656622134557876551373026537816723116307458186567192177338995060542159255850475656278199617535358541943979328462375254818319947084398913813275979232022377924423202628309454081303516005593975414710332517804145300187311889705818777763056908210777049589473017052534583248642694548091887474252011279618089459822783656198159044644160992659631248539251195850446805081066020219560355622540554377155412432410578512792791381963961756462805248527101829812591809457898707908568900013601297281444025031285316907565722851240992635892636611941724301522044714440790638856873153458347916080142703749853968203566537064618489535295446549800381486067004712527398735119596141520067944735874464684882493008066212286047101505651893345158778237503043902166137107741577204615370182382329273344880555833460350767198106623762427270006509535364972068372879137404703598987977590392352028318136467427284825983102142948745860360224662978690262172644429978774335937020708161055379032262537140633329329257288877916361910629269366281047391903249284439877376614906950078622533083896229948764705338963191092809715318282867746627201531345286551093539706389988268354461454014774888381314594329482522760192574809288669037172474244233856728570044808492319376894844198940019718492653624383127726066141239605896647136490174113783091144253412878856828695996324401695259578895187229874657541597971528420693112109634243631839390154006366694710059087484274328500558658771713976486453967288990127642659442955202893779421266485519203111979342170826150389010780436909743037407723517151893275524377867378117803701726484734732778335720433728929373314271833012549277036919808005108017320821743015038797852152465825769882247870333237630919505395422234597689515032426103452083685144487471895409157493437567845423899352803791499414392179241681293955274145555932852371296444530728508576421757819997875537371550640644490811964143945948688424393379176369997049325998541385025817867083343138819001502976911808173193620649929442269012181522168575684166836222933535095863254956488678649979215717257158763799035962946082453778579123711536630308033344450739032823078309973741499728602330885293648774707708600831963053063915592520054075066233465668016906409783653580271607598138434519501382705704923047716569938036061292147503937048289965597114107774198482213588207197188891880724822167129913867943238604292327737096022563016112322758601411384732819249463153525153921788290748770221127795173518844878812567467650428534242152208941807545794198363197318185467835481365603351384266735583806521077979422326268799325325274432074585045655464524645746635133554048693317032291177850479605189236296186356524050277947785172969573644467815330359778775520314172737245242778232489497675260698154077020395575489218923918099333383975199694585902200165385711107638918614618028850390777098417008401059740797130870778978491802054529309691205863336737782391075748242589915592191704579594501701930133543674444584431800966241381404530559580932729065599125635609190114901953492644767635779075432350692017239849183825678529843109668360341876055283668764459156056154011393718256484837189998503117274447507487676091207575107504883627635499929584053936913050539279827151047585220718437832177902918332238746624811007433452712287610078905061694562218762896798181470220090534581013171324049924475859191857394348517485163544257929013071695565119936304196764780466017458126442360895774275094482711643052676159943996179962902680124005428019231490673060222033730353408170408301572571881824236291318401487654503669007181185509516439336286641144704714557736178414426258415383565044874802232026026100749936428204826594356864296571765695771730082845454299626396577754572902748737031385101755380548210774002236850764531802244506785440637420421017537671125555887476621005921609594215294342025057973322111237056768726065473140668448596577128437248288061666659100387716007268977976386237882673469296663433995922729050204771633260628461872046274202276264921433927638120564137267085916231094570601181244148781335086315023980534506830657130431756949839152084726443614387862507861664622533168315556908840539852826169046418457027613353368287123602632382471612099728832039437776440626239874944541945936321655811170183009402571533390499042275059261087955174176046147568669797578079252819943491511761920348393177720605993165930444707373596722391888537562245677532144488467697731869126665381471536828887019647367985455160152892359390992359333369922816222049058797463559904966949351946846632693495093915078305943548267105051113151450089100670715879854062936806348054650248072544975266685301067732252445639464966978236045279798229245118023408415676518048494038517175574874127056876455458967588490637616388883803162279719176527296736235986253290067480368450555088134165768253050120508337983972594317612729845018397094758797358380927016730791004365894123325523950442106879981599670804387173190782701957979670739884089443488318044429455198336926197819727870826569681266883639173580997499011674981209128908156020225658379718808617900239636621912580832804443506582273977580875740307868455351635351263698353822659040445439863604552618285781073560359415754911109424206437034042672133597734509259561143442196595298131940918848785028612359457697408490565707568559922797175054823147636741966156295400776425343070566213596621997274417485825304798985339516838048746271877288513975925291323570807435667114613457497923956821374376327127939526358075759349986592935205772671454269560724754576071245764789002747929318930609563304233274270073562742636664928360548854133334196997554210054213336499827851879401509112441848787525806945884934267638103884306175913316038454960110247551750311129394377121249902488437839627239707683854631027572473663147445874303521440944102062461987122423807573843953898253225861340801071718969312499911520909330317509488783747582479610907424963804488960541299583794628998905305800266896015038724172346522264112133172528065407947706643978003060204398522976584027819272744624224644439169570057367110830246670552532816661450141329625974672383948740479069442581305500763046333419704520614790139119067396813626341039950043066137298095120185352510168276832238969600587339944071621630433740083196723034266573515212630171185403794294639103349220783375743322813135819159047039458286185695173928436896020089152185714651729798588744391709107090696249593363575545694905292778850752960662365350588155697357159438957111391430180738525897689535680007608576598669284422478175960648366450558221432400323521747617475956191545734543348903030356817160509370155094697248382632918918561715026824850646350360201266491783729331077701565788849111882728411691533358659639161392236306793184151721509589569801950981140902197265763494300374100752543123160621112684272668498674610239980080785466115543153443689121894385081933554140883030838999498381404775635113625311929744472012232290692482554231021614816723359661420819509780725872607986886604418914849742643773261725604144790231763148309980969026038699619226263512082508907921735657252131836906988712197134637186293748076275804829690539977764218874375423251561182684677583508948229628236080108844677202717009989330761079833015868169361457976816532093710699626552744164286810085323185927421506455802170974007659754464205531753122291215767969927398251672970118432291696497498221382316619514659689634505906348133444584596999942400746459480258212634955045248203533431192272599243638778099642674732915733136111903917551627915338908898502916468980358055109840709706753866864550097371952385752321055921416529588425050097524114940922627082351623856347199826193179997089393059054482537552776833274759473538922963772622403493422970338890263108038423323747212653352749085920113473511844024383978694674181958409583644844793108803277258309020078961387819306569357861188076259030274407809625755920354417729699981711074551086618764764852170529309230434178098371846963741185736189620797000904213350453195330910726316676456967744546767723324075321869410765572798117856571650979326666173422811088590102706044343062519814828564267857876140621456137129791550557107530735881504334978698382136120643583150875732411923349962245146691477540900001415270679342080567329511186084985385899103955890490012893723674514503682936412361639204145420399795885808737965122065565842962077211975424218580131836752743102771486568741142964320929630750031932019461202398710867197221403092850353963756500836654620077952526622668706279874163638279809806127707002462954565000390942657758697406904578558114157809859118072809473215150833283061318137396095922008034458484108669075033343030154551538101473727033389788817943249026658846366119711562380909142276650929752368599997688628927378150318419707110973246864681428097721675312754299394920880985683096919390383157575274667151058075390499117152480842410242798191049165196876271139186554376516796871669244168654114025883497278730668187036610560556035756712168168655191857975885182959785111473637407729958971138118581435759633084557607846603473317147682476179793642974588021944103960093598950591566322926970704857392829072893207188686981091291345560813509067210933093282580120590996686174794042677474787630426904890436915367935185410899376646296625577391473711365891376042564371251532740186809923222405140205851238417976244273250996174127820515525968439936801713487145850893171690607223840489211154104819501157628996302850894589407973740190153249245416744983581376197143026773657508692070501114449164935969531226706113306267768901485311348517929394488060540103538725975407238902802318964591061273111887789232683637735938164250096550613233922986143103153848752024234429623334872346198091310970575290204785128906971940431870779358801857706639583339408503476848958871749222101095405568745781064226027548283984795111438200377268620941758513056873363310105136995676716411169692797204806885625974722899051901963772898624938586880583677738801360159895701094913570819658775058472279483729714232607796221748666679965907487726253757191541871171024630177504438611686520579586361763988515902542714995587486707582261905660655867749777161989669519287340772347592020074596484398279090804381758491355727136285270536307305732147627354328199162388719914324721300107173388999862655507418831254164378692851688661511299008722038923983517087633192773239857809009348680195444909493681849941685313653581439725586880113110022600706595424025731558846929979896903138195849319800577286576564141559382245096043228654529200128936049924001978422048559976763963426156005791850460168474461498503154395177484088424778778361693647665786122980316229296600585865960571365954973965718123841159704235806784319569940828687971437579405227288570055464229255913312552901281367052601518691167761052139261829003311245741911936438351749739063781449346966036879923738005664716199419039567542339071684918406338475993197952551629529163821509660571477230354589076278100592989683695014834405914831857828347479164258751665745757571825250692240383029755683386849761586618656514661774089086975869229157062166710383049281265759166590433870123663698738635348668670096091017746525347973130648793977305943713286123159737683646524271453265397244968615121849812724992404946788021984727690174157738126265458298632493232550974435259268242792382716239277195868887500985903184623328045871801706162022014226312331514807163948555540629809504934000688893133243514631522122379750674001167565470782560533620540111765588674623658726314958659535509159096278929268275356455362147060272547238724690351009358211265191439304716974590186562711899121762747862608449184415613956376931349174405464049936949085096395233532313528461879991299230500025995306700989483000254246181237233088280521684289437252335909711565968908442015382637278187145751905620804580503556088616309073410010563253595647516822469027965373167950087128094088701603441851760564522079856537494043079200971064558561736009114059836027821558388846133112895898436221594496238310357906086815562103479427015077235710390038637184375618405222973968503977447786880211670683670270918302063346117159032184031706438103706059541769706964813451616963690004796678630235293584806218717247318092299637482888762030775533958377759516854101715052669019014311300529635217471628350088883885772336993471558193346563420312612483507094906294824035911170541953686894765555198657768809721736410374287218595959169779321126131323797162076409249207689498272862359587078386725747925890634706566466902442351244433291298322351069341431247185382567855997438482571037913377261071832057594685006098926391370914342777651716534811413205918781335029311636780674878920874934123341104625519258627658945910069603161936623756763980684113964874510816425240510259909260416658485803642399237275659713126947480061872593410843546533249488634438819238201273222055504965316943890179844103209439563619114093508925704566892832897916429151465934514428750627304348797070039012642569855959342572374282730075072797521205647670376506570049667738873703412443438030906137518951301171647112172772099899718795348846656458403674927617445181949580162512077479049532191268288725483123751092330602449974217063576494565994433590978086208045341862618227033487159004297993117534546171555108196932193987329532931766892265726603568136955775444825156472811848551399387181418618926338602873812211277086156588450405509140693835483365608724856484274556528045908052687511509147261781791566124682896472441336199687054602437118097041913578476458645831331680428262982373676711414815819284650017873321892040570750361832502525358586857210209019689911017045074703099173869390925167515804482136063194971340619414092564724868790068419942706729096369733588347742068956339871424909284320945336316747118815320463654204993625084557939292492020090946133958420848464583247074172845086599478299960350571352611372639244057247624444866625812591963792930511527147048035602767746700257990751996809633814555338377467614928618531560487627511095341620870645579995770388065226225710806952864181886248899512321082515839763880300784720926773280082588126486575514423045975129287186597189907096149968840281129814799815077754022684160191150088753944677168594061401909687303843068756884512290293432559804702922098156850689379289899879389604724654008079351338334805047962016412852630296868393558092265108533835465818545572112821403869483154198704237767657927068114753686835565394321941559486328286260563149271292058623317489169486180102614328030175296866605581102748256358778503150123815525093651805280912721444126157747261450654427188317822226245297285856242088762124558390278353976835957805338698057352434323079535329632947794045495623678642571265097973801799852613890241707434150934249735969573670200506067642234965068675392412836002397208961073212565910340002498194907177009749368594341182675765892448839445822032979690286115329979708846207424461951445207220866838511029725004838193165135853053458660705246919066653398412987287302785914364691237941025956863768414555576082113590893410614892062231523373690184774630730092915730789171685277657979889843523220805872597864534081426891681892567934925631153961409816021500085562255714681254632070252815757281610863516467089662196278597526796236719013197802992498694787514032336082545054403542416743051727162050682873377841139080247132407459282192089710124014272020965572063467296729892402598413605932193136307933402076105885834739586493403235820165490242421632936629310101977005966677949400020659023877862232997923369749300027545823920732037959714284600076434676017310522547978970857100514852398063455301668702607612716401146036805454384274693378653299626817081214175745977134748230175892629708282447592692958605311686770930200409209855827637736378524768970431784492052723738918966302576758584819166818671696722035474294270896184116869171543044346967092556513225792759202212889878875434808735423130532743251709237127713018371109281000279670220831927498250744828462732561676017546788202965492248784251780046530601395327922852812641321962887825771141915519321085889822208675096346913481411073892067787559094441536351702294992405305245186753042810700386504661053015587179545962576412702896855429572959795721191477160177334120029829554895828275654381101547351768863296071415962445843342230144018005737881586161735865994820944665551015605668722038088811288675066945859473747473675534723051682909140563335979730662877803596780400485967507640162024798547349928249781138970854647035644867309299395885152098518249425049595169390639548942587722026308039841155017599395099049193941016707210941459706649089219240648135540073223309597547581867618264274423049585323852760620675863782871494394174261325016928581795688056941053398637303434430484788229755924747217799245282571874146988736355030256026805953339644663464968789578713469087882752486108963849501226694615220930769790151311378574943998745140505902528088061801953882949381491886224949817051332434018581303659663533915433852681461008007590288538725994773816996202546707111709615084465609846924428027972108510006640718289841874875819916884644125021357767371312106014485328527025302355177718458165798591253204383771986016060171873353105145044104208176402823293714469404251847690864457344787215251173812413777500112458175560690879127056861718691713070062560319208944805067739830364606295830501196636959178312960385341119762450402991640017912986324564498920310490129465136842967950289004031924403276913970531256326574266095070234163552164474821292306445087332121545315208343083680523822093934729179924256057667538116689735580143141369158536949482824615644634209467823930956990102134089036791908466770571752444724877546326884317510148740214489329711723808281340000314562078859113492419393793262052690066969214583965076438322750398158194858716628195269876557670986524971041798685654210539870203167333774210860527611724930060114582897188678868161231882564373545458543929833807083570256995725394296208110136281530707333787494521228649381525956840655765518639836085565601131641527660653736659970417035325989561734476589975639778937961022411199235996109662416846241162648979539323199788460241909323703195108008475778636902186154608643463518709875344441949143689254159051726073293837835314031998590048209467656199181701451615883397006471885355885356931425309325494875045218989705535998688639103965721057438888981955358127121363686867421387362222958873666841321271014266218501115728217342324906935452401579459983634671026567834998918823366452236848630530025282387419042581702973548736439876511838148898840608662308032493794215773532876609105888312069869054310675358044707109711209214610209962358561779326406654361606354167213132487640878801474485797740853430599531124552510011270874020543648877480215279897992830696103842154092232358720701266519883738879879621325249606831384669114922275464289819007682832173078500956106412226859153593438782414254503804845927819934377715965046177468855924831613934853390709478671986216282074859405019774606779612306817474931416842995225292999226796549438672074268542383323112958157332621952014154534553401513786277790638412248880590194880610834592129487885064017876350089019315697703774796340198602606847914266189885275488168404925904158811497484100156069747291646838654336186102009689759753219752807015675293297809140824883498845317466463063162645797391765514438993766532605096386362581652396622685382811104983462946317982472860018030862376627450593031731465142518540202131940507020633992237565876605586857868434539949971336861811892743013184012487067776514796152290917430871970966646609962184930754069434999182071124215338654048832648725876642339874220023489435017322268647210719736592584495574310656744277621845119138100542624576952715097485462470397455380850736618582109430179629754521596543661130305481453713804663998900820542111588746490993091654914583392365610055144941006052811105167750018097965302431236726960919210540905279264412664293274438782498690389372929893724092768818749226435082117936814468815910849637557836157780161955788963425912010214746887917427419103351179332699504710296901168784774980599754781851910023085384902175654660082947559978407689912771315594251114275826692043068618981033865788709339033721382387131882794721449116245845879830087892257152200921353583535257898133696584848622944860488956678010099204516648753533781143753692697184619684557465818346867250814212347266781566726311028545416037645347753701873359865244055065391007935269858655342427780512826327829624926346661363748939687089604453584714267765334893961029464126315976625155248059589685655124201539268915249226163479679750909142040601916803977446278337402589345244579906729969542799632640402124047218453643175706583173107132820956037356362434243242148499025813151143153892942668561623891339386411561475169222586383109698586647492044388003012854981346985126238711902431419442520511316047886703025474493093802623653766997244889954639425629652238653948642805952815014070536752512065048205378781558950381608509645627425731942674900331030672922116198744492594276132012411634991484998270341060961908481047088001540867446197670366414001177376480476075573386217078131703230474969029094873173427791821306275508445642192258454418992817744332025120156886778166798970444215639019621703483132582661586650306303651936024619356722809132755339134541418753938521162142170599703579294455051898815576367232589011748762114742113619048338869380924947747961497023467057862959761708102329559649742617008300615415307506802638097309133930152249361176910295633457000661816413944497064846354838164150297549355709392651918359178626271314067171484844186527204796980724471688312215487511059394567977588611125963199847920010141539440454745329735840330815065290194930169391515191180255974481729757930445391100513368729517904165928375246548089466245053958778759787530545498843623303517023326461972116605197810976269895676429489840773977439121568243509853564202641061305718657727224428160297860971062663625166515646847710651838967083594895650735201481505151040575193512996876283929063659040356683000489876604310919885107776824186131589934675761224588692037931263353073843806289472419892461951485509315836160411632722650913062974857036316416293322173235099548143564399670156090539107916363888286932360512876233864068286065177879287471899253438395181414283239940212302962957808277778353681571822341832957003084339552671429930827301055992402469773334692886223542835028229066702446096265856834764577269272655028740171456455740034440303681577150334762218101210860259945041938358104127265475401094250783804913193325671243582609332535499717480577628493728190364723195260325894925780621874466159771598016746225965796373396210520816818208373486125041052738440095429547012220556717379033456611758060319104699692110288110821425651259584258004885104133798277790939936642233965177706972880948202013202193370775763367520505518511697042352139145489756745091316874855526506030602594195243527225613515300248459848107189045696713450117608841699271219877895505789166180713249350232637215219429357102506209969851977394754027486069247817792075082026387425777113219060278581236282459824363628505009650512200210634901865484857311314694716060303087672163367525224486615907030991613286586121383199148363640955894220673447098874386269586395891861918682687670304294707334801402421699876724706909747943385698169505238885614055547893169362644754508807270764782718869161288149078788514617733235920743538838103625825674137565879946693980721558883414010789058171807535145792656004662771798638498467374574158112503716132138194861857925893954052303848579365193090978097217960785182331741796168167077932525719642071982385390152509746399468379409086295231668932205880730151034544268616969983426798509110227179069931403726487557072534291763584255119762371231054897266434645009044649662686898094288112335873545051063293579653687191529393699998759869328369886065959792360185846588639896732118666150635132408564833196113102641772535440505360228053170429834730635642141184943565803258543948692769854075263307667585550254370429382086074105653013581522110140469090738563307500837430262578025710627031041939694991110551555124331497903693346704961291435752027899351329578534706712947056809486224904711024093646978451425285824359476365304192154302808771028175924374601764659800213150874088714419764334744803850721631535287074037162007071146470161740090960041928805408954401162436024080448385709898367829053679682119901630248901693175062285830833918196936640555142282175298132502094824183975211820410409784949340367504282491640741872450092364736602076416572938787913248490575911675083662555393132254228206051718496527716771885784344358364062621449150580993315036008411571158450623005739409303387505228689020614692059014344169081223358249002577592983977242224266195189619231542272683604514722359657929064235105950571631531848641156248580438633534082867174484255942398956208429914164905604016208311379892651092568273641211698181154794275605485786436242629516052556212451964093654107520420046068086622382593928468282672653560876171311481034351394417900087672968674913848210595630056047260576665901354903139643720508073029076001643157868124071604249324216960533042855353092841456570750454305861380962827210578920811461278115505398771534257227813167412974732601269007584072262027639470547237412353923195457416754922433533690838846789842579376810897684178106097581730868309084105832967843272558704950445337024930802006220691415047213668057313466986384708630494042806647302397621905282020091615195247341276580205311665488556001182854998593804247224192641650132220482624924822713715316802103358724646420534981578770462734292384139668174645598370435136334281395224854218435437005602529164372796012369530557200509526643382480565956315953696816307966483618832391661201985342019877352529169092865858468782902862679719406902065336633884635995779222058268759343953879499022589402326994010479499124612848524986751998236005529326926336096444582997336867697280549416447929995139253916658314754666538854844402165508550248718201283867595016911621644414363231784413683059139451327003938233362346782427417526520072608786868443183167207796620471628658595340545923807584765364136526865491004671259109141632982873149712493148866245227697410993788064730832750797128975139403479354125050691820429201485828979787330054929737025269175177295840139183221593342385577249465074124308652163806078556439288866821950868789784352524373326597324197329423636568857718038239969838265949459938612648963145945141048588926500905304708922404155707940966989792832843622061245043710671816980029429005188527218970497107030834118796432271306455713257487346671998161910843377287991433123449414714232938334534187090088084960271222825629697913013529055762003606326579090455227084917630275907394240838217585022712861704462965420367716669694041496499806207001860798414276299457250563651544956690515925692765403910319417941718746042316813231933279277737512279124253021010078784922723492917894123176802040726987316006249854730419637842883796796358770388676624680881921235229184998185715179762549001888588352419401985485434381017175312040634545857250609307927816242981415620964114714718947489017621258297487875230556224224000324207530189455435835097884320919565147842343037544112047988696413413246666086002214611786576900645081630362056648168357485569770865542110518005060370823515663401692088982127601500575863509884107455738430370528721429997830430695260486961351847215430240693840384997768994484763593871149415999916869442219583425304425784624923361470298608666250720083321027049953927376209991044712935691764847251338760842732540625341192095275479328182391507050045040063343774578554094243524692413486768148618294573003180633623875833782598001431908435860728332602644367982969702475470780822040815684799127712823001606543602675523775967229261188001145143390709925616424323749852723048094170879643284137548590769351977611615729352533288041479698326331089253550869665875218131233622218311376560762525278996550168471475269869778324708095861841627690922266649876095112170378416935196128557793395192268162565949220868966188506532107909275362797396672562717424287910832941475456525319186373257905364895679957771853732630380222281752642885882708774677774888343831787231349307602702125885973279200203793410623931205025562698341412298895086841232254932532418984330847071698193236009289869648377273378774452964512930356432213070401435063067686247471656427158386992698526992028766237972378866518966789926904260350175191798850370286108963452931417929034542986082095204489727521029778157244983805883677167584834001484965652886598138355775543851602488716910808671440662241177980417269136549607071267565182841014627913959573684203519942398328688753551210380833604546030292277266043544477206288023119085253677354399081597480178928791797378863581085617742389237860869534116950582983679540896588921592137706428632816829094353484640910282889886488365331550902925893423464589102533117443711918368259107426517667983905108391584922836212411616329649419520432577228432186836947542407483285283032337843989338539461817823069803462427753357332963234169656064787142139656166458975478817887977019309445425133185743848112253284605121635385578613001580076323010574960124409581291253154969091217065543285362221987574322681018426937988692252327741475487026526297948873750513898149113351224881009968571707417733157098266815772442328837408949319318847078880833171242803736174850171239934575267208327352492797589906466191634043046935306832272379413397136228277337317936120873007865215109731437140734006054739249897477403972581016688197781322131245360663270565603448039175611412479915577905051726406881529220557161912453534088347008054583893482824945027884906764260873595312243205433240655010333344755808077138865816843053185397471225441950022056608357780496699668124179070590013283793675739269115421108343933332050198699146253595209653714949047453438859128064266009823630465966020696777894336399100728573505757178828204497381820489231625431428719064162829890128303195502845144898648056981964677572483550081287909558331810297421010846430938385712534404338773150594330061190669690011283931444922663812451595503500529597941043199343625431109834760487069774823102460283671598718458585768004050491363096651751429836484112819238533544577312836844116581679175069726787863945028644654284482061302181992169082931876271497585162593021932603164032709901951900444392556890015008834837590095966043312296552792629596243933987723215042169476233566513853951195560986486126244421413301809891019156830510386605735462834209715112098156545148708907955880787706865842335269293606928633648868921647822936909339936131817516048764247627642004813320542967531388208599639767003568309881678435915224680097696945062017768376130659742730435582323801992481402669813006144870029661998257588369363759918225313874017597670522402198459122254721690294169958263344125917877807473184362475973945169942007699155844463155588179489606617832571966646470222826162310219617290784472387200178413440862758952051328338057095453616453780215499073609603637851522286037468998532831720175066364803496153769845231284457900142472341064845070084955460196671006209153788423062770697863651829566501060575128385560257413233520684650694309726711884086881663746194706793193954909916277245414601631981921455093693210004700674310046701300393625932745844312116690113146727817492865585352735636016819090053009698850071804838794924143490653150702675386764334431672681296170344559594873216035936472905841853924472941293020716336488977561238253915623793352794739145328987538396871154601659835210319828318668279185425789911256335059211194002836356617532247525474325296552818097187542307114843687834562806955872760663246701634991459095017401652363862731552933746851682358731757896168851238650556948426428682784207100378111740714428497427828649971935246408894525896882277320354039960944705307852451680115530331477644278174687747234329489093778552170119583791159809888714566610164430573825424530258393464229584036379040972162087385839879322758595953801779878654406134215503749085371316708083482071974753554163840257427329872506068393200890660665836707699182303174384705477061471647922846959362345911708380749942453794504887273478460238670941651376024028550371938506819816037886952161101691897482432345659665367934988933066098191344803828921977841294206908187567237143008840279354861708350140542406952024897885705466799058092799456440332824786454376369969038847089959365375616603959794752182733053329045692854209107197700644566379661326160154516855720945331550977130870241324100914225720261404309878916871699354856610632272263485785842815413774347670749174146904330407064817019605244862952563931763490326440073419219661669465241364891712622543942746588213044823553286300096463293473830774823299703897747297356498016218359512265533989491756590512582691651145613220016401651428773286813476022100264527992668506088817759770929490473109933616382616824282507649964377223156811968656545557943494943496233346942973315713862982565521695743467883401582615743481669824043636697543808440472353624970031349585054918191963767565649447077995733042652189620029190463344830214481139374887064541967735478815891894863064859920891945614379106954721917045324568334302538809017981768879916875468108935674049723767278416224721767457309948077170303499350605084931057086044641588988008012708514354068582680272094724508695987243024754219502191413796365444403512189435845038519123177262351707590733398161987545300426448590419004255597450863611746750696761957196719777334890166691234759939100122947629129203474593345761315549842980554618843548768728109322873639479100983620205001285104277637013282107381476432868106140139244762533674358886785914882503802922410321424565158131092274549552268499721921800732708441375130643938955772531420366683453498996558201783873345857215196324328274208904172919508308854231798279255391780754634806758012288629110779064998476807797949999372209673786712877194222201231983991162578513028398080424430373978824281277387301339772411789897359115754318658735513749544612038269693617905123586140401012891986933696449277855825133469967796131962887242935823884548699999366511640388440231583946594828628263420970833578250377608212293595600409064835864378036895118644958524827301332018435346682857199628912580470291446929978163701188117224866088101915235280711650754398002130336194323952462751216283037071897664943915511715799367014110101989645136709006636739733713370017370398289762946539557006439703945990066172308895489140767868958384436058786372400541316274972139996775611437958130320412047332353627319787074000798588956393009991830351616938963085104254960799698697764207914982159170331115409509401536893527416562510985951243201284990298603662209217974721469527200251362943808031435121443655263704077191059873867489819570646892538179019600372581878390982656361395632839918646418249067333768588742847872847380228399051951794163123170494326858915318657987642640195558169191660632343326303779479669340205395908927459069737231767196841377567141148346665285819858141825286228539674545345445353382996599869163782692218501813549362309019624052855583735245743173056693063949172368949872837604063917472791699948185844917989272408737769388751638495155599418459836811346466634769038203555340298075899708905538337099593782277093020699036910835128584553179156839245200885808359125395678359187159628491629739817369117532478701707327026680292245275379021889985901503146661135994015884196680743344969942913625062039189410509932720059342178040971189542119576599288233832225070672875366966676241209905344061179595221255618730755321726227116567185279610184291032986281249504348570096071316532766508830551974209670897886394539491216160863927527473960608395100757963626121921750730221159674493923225225189833718878186835618903323150091980617023111594797579146155594002853941971940628570412124496558312925302560458145636457568009417831451318137278812107120061829852384249017652054888264350215455817378139385397274055410714424282195715071785618875290174561434848132140958992975259030022218600478423103891310689509417238618531062575147370202800621720296528734532403968778458461445465708190466654805099899332640726858979335288128809191506310407333416962760394482308220979181881699184351642220984638944423110226974801938770360560079272836071179920444766670365470369998125877527145047883874803985218262735345767829141534759087274523423359862470786565401634185081547767781535361544628702215644993600923675014442411833252853811729896300875618232190375146227852558873456725440715509432612327682276953442408500947505012096101421447488936209921566672434231480855664658841786052463676511199686046935212806786328561831699989262188744720651198053505890895500060175342057208080752057444420469760794080199766269341262532498532543604334054462553637228851636585564550219513058148355721499145198362464503160298061078715885074825288655682286081930215780115820120963039315553132257315217571234610440427933891896370944299045305914597514559095634639358928195484359650649850203816004269667394614769863672497701936961229348722973997776001516417686967839349263460992579894681183910958193315710169172737588470459286860886415420095156000221330680495765343069909176466675227417937591430913752529651336592756981975588963509512490124811614511126768356572798304581612090105590722162325686917539417861931287009912363485069147950222308336681568431170908589692471144153145441917596261699597897110844872269094842428770529458493169091071688264045192224611322770537508188320991314273462319018923181429079407181482121666345491970141193171128259878777890899580987927469974784773272630489113643134630635620921555712437725784574780028083496114871999996126799008920257675293586227217946426381935016657058284505101616397087876497180811043258984748739967822837172175770344424689828613532374052918616913183638777516697905884744613383819736477007075661287094002245636018983127358436327951581132520286545093123200221826904308596893366000321022022528156419218106071544007052250592989608343942440343511007692344181700107510034208781418324193319527688119122339423540404030957165701481561822394941336335730151150991738262831672301878915665805993195733113048801930169167712851366482440232613689960398342667637884642709737079240344689186236998134632597762615042802856397636115804140626056120512136499595675897579572807044527978005537581651944148323348096516521665127213882216990585637243503000726325832624956229971507495095684344304093607262985043016785602642826318903131466162819157210678827796892601834487731447624768130701943175856702301895334046734073611115945187103681843238476895046127678047129829446464455081842176294158811177964243920742337055025375732298850987846850925825973452106416053767650202375909293844599689538222834390232503824596747397177737836068361050668553575682139622710223787590727563080751888027359040739214233745993361201962665366909010490477428310793181016941123609414269520685515775451074706881143673894599128673261110749720124611055915743192472756568955621305609132948891232864182111107931099632093657221234279741586129402347307322916457459126234327839047490202141941476700117694760764789480164488321849295516846260300786315394985053082575405247088552019742007578064049865677301240369181927900026139233444845159160348421793045552539607191464163749940248830707249018105185522656197113912182240290146684461563872371125195875726529385002692354479848974426884174381397873862499542609467746521202415782538839372719917324729331677599125431890371007638633065081624600594376323813247055912105449076825330203889439028029580421844984856422645351529865411695218642493067436728245586889320064061047145668164957260432163619374003065622379422532213946028099672505283037185850285871556934091034051486951149846389152023036469715515840668299917813813368774438108449287719924407143184856225879973968099911428388051974941937556925645699353198951225430482920439069234016224870127353059978687290701126434368695367279489256149800301942870801711394695168943625903488419187629930594909221975828943364048046611153056423855580553279819042399752997926664849044136523772197926296163953602534453785555862813294683016272474095131320677895796428186370408367998826787494516423383452926456345426372439141941340735770988215106410145995858995637162446609020967619527040806514519630527974372991951261084559219508934644770952784899803540458164954396743877226060073141523428057072319287514042013644252914625780233808024245442458265698756732821319868124644531851306986329246792671105812412699983190135356506847897936579928429453310090945789777328232495181358983210235173693553522766373309542741421505956978413438067343972636353753000585841770650295624690321904342146266636505977836426299806222388146896275863140074339916499907280861749304362937684831627626401629753544758402261660888040529718993796852345674063991174374239948904044694944438220664402385767836241783475149725820921040167339185598563793193961283680121939417812366475287729778693523155175857093963949419082826476258111280315005850828349720264753391095486434389758687175367080317861840233805228425124744546201606858219684857498138751825875690558332215919202843117158100556529838255972953597676395848086062575308762624278390803605104802611280802904250406314874227418371501810467900534663773272626337672846229934594826700602884930488324190533246523856373035601300607265233076704112176748064907292135821490221774428750944912459142392621452955125350821211756424102681661958663520229684383886058729690869056212182240612637004657679317125839251411925658661315275803242050424266731304742793350921184787672004508520071087210934518912440124124298768516254980048419309538905641646655899659053944439049878943366251167509288361212053703824282027068346134903225749439669138019265187790753330982560717732005176904430242101982355553547166697000414228589640352532705084849981530437758587229765273918703502156497485824155182401002026665832837052088969208431317490781494446273581739206421338991964294574932072488086416048751409737551299254266481833877084916256861233411170344377060640139530747446537430140189234121250456585096938483808811431358738473922599891625566857922092239767832281613508883705929365716184142415765493042473677760737430136499489291273338524402880909308508059260214059095281566515523248245219322794461783165408728337843663667616890767352107615318071806653893870144492577771884686895350558337830179983915714699675626388202611664105626286250829649575867591526300303806967529077048666958068591708905728520856275760423399745012224411558009775400136708849992062209443887222968605866870533317216660634228471881853860661382943290790688528559798911313198207896866764313172894980405182014999074613679976858119056007015733857065552042806714520468236038091420985446209704649162001403009993080668278138186748433381668649179114782086828233530803568909254362614611633122588477492064108609654592968499422374797641874940200675364888604338358442924927807771909075924012006408963183418791465361525287132456321237828216499932195596528065124162496443455379336345646226213105424831890434913730202504755886072807793629568834339280292120193742889362880413043521955005199985727143208472918086463312601424415820741844772645514335871123198804240393779127321833692832156987549283374993440505849017060898496297455451265706503796892325530180497923964389858674929067159571091041103700189463504270651131244466628486778130798156973339856571695181134220105052432155414594028437041929800759658132721768733008178738465032367971428638983060567170240114453969039932601452198038956771186782372802054679905594666292492882617808824392695784174060313970527385647581624912933069513343495568274770912137325749888569829596284884739068921200339638459964827398710875898412850817451115914050692981219180393271202449367380276996307672954278735049553036423886020485126879859054564495806912189032773848432862572353507839960986305971614408412236407706338663846682843179760216987086726836618569006944015441915641820093383037487213510587336860938158026756327752739649932370119289223024315264689824809586844599279458554454692042093654829607118995042740085770194011783933936669805417983496331270621887464341296290808139178132220288251635924170990839387643395419732527708498651923240817127267689760561280082664509900514196848353013253711108868067146411436792814142479084703119220226812031846995107092573933315577023952364236583248750458124907021768478955518275163010778233134602078735130053444891341307492898610149275904379815236400441115197616051468118174317539465915825047024532966694445676217380413602353998541537733097016739058811753579261150453050628403920830372827974949191716424737252673847048115329446991682495501427861495468216469004181296141459502472308118503997410620903200804492687131279022396189215675318133276190816087096908213828323160465107215752314818311513120111976443017948235763619940783407229815381828668946077874273425621477388257815993469572185712099252127218313829543455180580604710370344821304346843885511181173720844805145941240183083722569872810302784190666232514020283011335002538515193484327672414415530286831299714190675527554859012826343546226430239769983432116475245743717699940462559821307962544080669692751375472737464562068765713303952380266195908975414315032817670630011679920683440399090543179454625615365807734293137164274364385090860801027946494305739630417575514409176323796247837926065974164644163874975216366528068910748916790348246263971089326702686107612890311453582086180351572797448983038023189522419103183353807489844266932753762182524085758444057526885728712633087502398805194911379802653538352587943633813483373740842515537076673027340676649452167517660526315327912448737564593118737926767350645110396645787942905452635348722504895569885647812141924402650374322419688765903529643140723063241079308720148774013346853604741539682388786759639417898426814412145237120362043525598528256746200468823112796282985346115749881497342886281498621054466370974554870120614848233835590475395898367479015077339021337199539672900241106092758312816738508268453535252860153820504864327905868475258330160752539418172811980562936045469620207536873340960084043848930793432110938943212010852833310714801452584252174072843166405148684124617998396407938811243853328809976415270053269788529737701957890248293318642874399805288789907246102515295019209753727919867964643891503230189211008750955006708733188835345133241322755190228631672479106900490500782708819835300579984770002530590582974116506856799605054927263355276818246963170395063798842791879696178928991319382020333268285023374536161837810839697704001469793394176690850750326542518566367511095262517707107176669860624964735044095426297581807365987925386530048245546399361687749463493694561998450640227891347063753529940812148182164932887480808580682788828785599161049770923147492848671922736912776129744729855111590229989812273545671200137507480993208950413376834623200216160529142750093448642652250091028048351324292324915854448825727123505779689679730117532263783016382683057443637269707442106839755005940960967461413783025182607245370669333022502358074720667645841969957157083867939733508595635008966542061290126680362695024175969461802735206576033487973334544884993226291378504321087481428794670948524792708732109752197507021020926011922330301422339218616139883005537142419755399394765912204796927987023707610422332006153335368062620848624734110712110994046602578371468325778648753227598136986667222151578179105321005665432868732156016120829326007481353884622497899377303238573447597123121253683703332650113717837720223555087171412198696651085663393275077885130199285769233249944800504303509790491493151714802157957742351890907445827677617957497067635623241844556430667234097723406802258850012697585637417208642403326362994128758144095545380433435691629429263707883968019105120993123814078767970783491117974382202755667538168542425461945446050442912779807808498721630611812527327599601483970201935037243250316147066983264444474148156495427949409982202456145782576094053353287230374279987893910566725549870732291300635432685545133781934642861730631277786319232252942139632090412638129545877556854925381935103903151343585549065993575401857312105619912114331920636276585309809361756910725606119045813091553688829518508291122900031511542872158843749145038138377167612762330987615701252784411817522666691508340415812429839551363042901438933826317439204904951886819556972452735413618431242235923318571630611730232969449601770868450459649337841786780582952280813544765798739210318349159645459010021531227159184392612356640259752558803264305098138158583976124925153420007173089514290560257289907760252449220362610214122187749877524959066218997948110828072166784552635071436263497608052878906829829770471562114068646871378228697875732619301362454520851653710753118080836063242119174176406125674239442589740468593335933117516151608326505022749981174614792294284999909447217435409130320181131192373267470850193665446336057106853385146512034115470160531305356890006868423412214535536522541570778061806641389253758646240252381193366052886425251049256929449520168287768155938772105730052050144997143040064251789907867248051310580409233396264365547172529569906770517789280229185928945541728795782882459722862240438784661714393745206411066854906837684011445314233344030586843447140717246885138484505973018205170201418209500714301634961597232359267986325829191642918890336180730163163720660722571636550429124315822314021535797563188878185377227579254190283231994821821713700874995906047878293640672517945380634658870924859215546211914606931983714637475406315854630256435564156617608482665596029660796132356911246101452839034600236834246989805592589239505414858630761232867405183820866839680800755996668058729662898891690471426237675136764847572871170831319244089392642982842867596659873245885500646594292428842680343969952251977225629815974416759048343057061557047852987221952813615697671438298037711058760962939265479871244000914090142235135196195344728610552409837701497686102803123966625574865105873300969226961378179864856540903188612546875276987692839397142023962102177218615658940373556134336995156123857308842079336695292408368409300409182053134233903627027852588645755399908066465356969887310736766487975343991056090616827560174773400856836595160191238472349131481885043902412597525295238495840573217848552714415647039712088427907812210412929041694887656935811057525606003751305206124695099789251143287031300849005508778646106442321722332823380815076686576692233065305963922166514028764804673860816439432599502558521393431938246906871464276417875710662835916959491475532776292689414279528726166268200074507639382752024396636027905848957537460461626588744836455598393964486916119773663603047750898973075636968608257771047413551695726524986688290157555456606267532395131833385074992481041515392908359573751635580911799366652831335229581523766381547192952376604020333155004062061911710491299181003414956290943048022846612667875380322838415220746378572911076436617197237574896582139946689248268672597368052911062982914405285119933700287346236951400221563487166623787332509959962313947810578014649502269488340366310760404046670885663679468230293173672944896669615076824686302264526452465600541575954262223198173621851041002339306387543136685506181043383439015247801965198084700305211953251270073202356387069318856897875903203968296169843230441513416543762538624568687470908044678237876302986432101469397747686044782797518860003448749080595926778014703848448151068149251507116752663746537998001734044109900708443787338200884323057762916251485540739178358778671066168365307359071450755470747996588526598361402060153451429113134407565942920032385487002285995957983129501388163163309734245610443160000975818778174747768951985511882150727862016270217980015333276156245799144748575048788954810019286412114137593653057834629114348675715524688923684004097948163494767777818522843128239213387533752480751495658535416999066536262841774217582952407248189746207443888366697133247470011238137056895025695136264712773404353293274218866123233093748059943484534914137861029005787068107714382508225862906020872157141042708846131270893079205597258427002885036342734610630262563741343892114023065813871610872732649106397473699703935098469048810550187708811400366526252361680759553024931136418307021078118114416480635130805860944428091177130867997192534376918054105882674349638969260299082520780083521740768513860570145211165258553653056088496085347775839326867320259114632233963034713033354804350689830479498344238848359234560021068811561000685054104731878750096277444574372677679703655710375801560224352763943929420881852729835012960779496422869089742823370248435395634436436983387096635361023545109498014592847277209611356980397188036655934672535344970437299835883423249410710731005420707665033894955967095411919494979846930348689700448314209162119411936758526810683346855401042628687970231788819736438924005351028798012897983903455281596098412321459564549274084919047105401128571455239419627592371907497694110560116275621097436495515929745658923445982266486988809128552808248980979904479946372145377351349533104909306781650806372043159209003335460654581188447515104966291220404034932328211742335881495398429835467552177614272196909266753714833154648580450377556670590260155848415313941382768343453051314377028351997768187468477706222063902124227773602770374215336149191231595516081684471165495903700945790534489880721181299358951664245170560074945644945970556646072710865156856807208851749844878663907592580322590177110396035673646333053341626347036033814356699873719469929665174857501400344833855662629260341885159969817591704250948421771685441156157537507219070703614610076316450554072857690966556416946325712020119817282722341333502975203312078478153605911799275572666505207580148843574959357639467390240571089911657600868248222906080125520006000015157625339577036624492793405728600620194910067334048338558315683876704963565755518307449233468602400273903187147175204194896151278528198712486765999144382634440340022033978511427247141836343312558003387298571045200554027033020974485360241843000871833957809296268435785596781178540383975638853237334815006320841323202725120572052634909755019111691399901580725330702021994368281560208201621186321926875601952494684976732674663391622519956245719010941454901278467962309420037283223162433137921715337298960578142300877190662490723066314138107732529753346165618410088209438198560224125542925179935093690951409370296882112440067010865703871407221764341647294432871606828265346993282695658099249479519758478382566021539230640677094449865587010868289958536765819661868560084630008129079915837952144339400412287388383701665290859960206783784907376179354268705671694867479087408094241859506850580222565536650920626598696630110968927814911898130861026127425725572216316303594514818071728762062321371893946222378469469689949143911472279739554858992998392584483027844531762431870151625940520266771872703296794395734041960851523717645054661298666406738034047787276273552719346341565558986349550970569181445307548699327538056560272116922225312965939313453672721045648581863885332557339414228646620247230721562425096459068348935883768503495782343695600428229004973505627876222121994024393258673311765574790845380580364110807174077271483904047648773920372022375614411870268757007924397732236735481002217246621424287438734282522221771828491006802003394501209476938479435770126553771805269485066421171133631699869940639636817463392165179644087162497332239834570584487064398179242721379231942408675164798722703152107255307887210088102076443306393044377377323565949781705154758189315088042611810261693048542172673502314305509393179574542572556782387799951423696496894920867974011286267223751169576446074143539880081945256578962452707594589148948907485720486833953467908652722983163512421956927674233754742746701132191970994240332531210840631984853556776916113956034356634318629205275341313585984232538832042897295311652124613738245613698313811373847951642489966652464547519559295341006647343604556634074242616788022871061204846409047935820062382396141478436180960621075285868356569822805461422101534406325818162472927712988965902716231619191594082393821290855514244339804614663691499882182594513988762025653389382894758931406492765235922575712102473170830213125893918743468946122340281527875220306557516189257924491736474413053603912958928555635607314108981233594975411060059423642331177064355050243930945181332557940530896951122141336898218884958148933435836663693967192573982454709599828645868645012236638391620692749642156984068005299464693333284542188346057909716862757515485058468306492919590282561289046592972835885127115583768234956831422209141403919628984538996095233495612280371269511833848733656057636512080745357130589161628355221499580690769752265346949913684709822927907058362457083597651851839155234848696048191669050523048575699103654495593478912362059820074379723508821271393004924367743929173751520630738404880535789544330000565436246405841664288908001538789979652301910798701834928157254239397505477502788201786462233801137130308984236119118829695068079620286976385265362089035592283115596692062686799562883952155754745450528986772803869040836144486881461640692361842097464515375521164929576436314784788378544043126864550363093407563378269770966468454095791546498109090257062663807729106037512783421795206071719978921056775357800159504321150807987384825915640526098452436829383694459901239518214446735577533587429843464453037489701698007685141899357943185292042539099831071472601045120561580381578647511431910418851946875629257634540060840304065862829983180966922952918036938973429125134900619855673891466003840567000052173026518401075733723102319366240056164830428625687735966185091079803835102054536383349662708412202870637348791208144491662980782369198273197218673449493867200928246645162633096966124643477194325571518220847305352638939029701734610562089536527859220940782855534057813366338857499694773984181264645254530989387060090582438554950827477287808800201735673536964706640697061133852032893878803868290713271153092438330765238418304476025021336775552006506446551127305919506287156174641203171452849280033362042489320856514857424050191485175344268227763750839219697113901972481629411666342722921193849476190242666583270763967298209972890407609660862946960281849719490241654013470846878437109218051120890484677274094151019542132734571925793642008619915260161885324643273576880834428367815264316956682564235352890482638664468983321577680479792129056929006780027484470899554785146433968929773647371737591311252888922593027564909214167599530353978216110092048209433116369389829025381824040808194776881338672644620181039879780856826562176792638019261162618706868624183779706611339588621797423655344911956791661548934385099344810014483034757362930535676382892984428095216285663115332854081719739651458991589335194948955781560707702022119528843938814085283363458931792461151466623775466004618245839928670172537842830240426916986895381896191873794954642903359623552955923367837099050326882355130802169471963980694999951229956140380330665262134687228630585521412292886661434113761164160375210308753434575443873133312592918863733970578466178367449276993225626548695019383534592253754678648227755395340285475484341210701331475497208694684910360294462072670867886328510069903135685065211668980378533580712267824368757830923938865735255453790698828820101282036492336523130215034284856830447553428186318510823777689880608052285714667342423748570783197248377798632939144011450491758627411404637255881057914359909395810825308615919615782131990453457806393376978149261411209787410181499620632953126698962775619071636021211880911041714807936218247907796675971488360746029611703138415718333121114453905026283138850506628837949618677645960666270320555583958434821935626594479953742239606679228067142575745330981090504299336363859923184750150869973006422849042119539826286165595469297850432935619337686916942107967392189278838047608109152892617490213996184785290283914579013348102187445581536592940128548221554746854083021075760769778042804630854870473119308779596584967752479128606997764349321496379973011796005258518616462942155029123258195639763222344835951958652109316760837938881704967213153580298161571735934530449613674738975485817417762290085797963845155911651650494659365141421698910619375733907632763291127937580268518264563094414322682427938656997111951749343598827547068614984874199409584524279943718666678271947163011472719712318921133946269127931393207119100149678455510774925026702209857179465976566104387012001300625251779182124141164743202834079996082978306764348268071955338070824671459084459556461114085951059444858322086690127451340133357919887822176772704477761055369839117115127897970210331876439546934300358212408292725331849623839428287752928707347650587318955939299331224196391574091876904695094711261792546598176205417942988828856125243381887430034297430849044029707318966890765721127556048502522222332357967460644090945533303875906789150488356382026777115026149245595504121787210771736214589111097953445968993984936411439868286678480153963612943630300519512375420762961097875696919122779918210115364117808110025020690340304583100628606432324023608473318988359908856763830986036394547970154911995850893120042224185246164603684204881910928385833826792138625072060071968033696390679077663470788829342849641286349329313104757520624434618818995146359519199811814741084942635423933467983700916758916846167846981444675991789868616080558651492504712017174393369760229380362413949671869116951247399802933155983447164193204959326381159304820325637468647126052666128894554771971918270739749956254148049004733769176619563716628527673026198320553913707251866315217946622763250756152250988994275042216794326272930558077689341668452812541337183787179229402481915473422871433134060531392785294573921028366115490357481220044288196682716082106250114814615922999551372324603849196585285540133291898492154981318845361381442034757874553239041262406191945914105912023322985608096370229188998320835782376774154649958521995129632323368572877441683794903434893487786967708055568885465112457725262941922471320830926792787667531516527874826368332420299473867105770471831437551083638033045608615785279165813033081361836649407665660967345241487079329938994976706557436093634244225088038307981493507410905316879169850744331383701687976185582307849283139133447370598418634130135759480047879019803217407464308364902355982179360559308901261341394792932508616154758933752835096917900127019368064114143207184890167770392604708873774102071723820332009134721731406370373825205717271498083705751600161649889541019037554437208181139321768124706035734000608899125956816213912436267103298207191981024332761841696551291473165415303963577733822224584932233966306492808327770784096537389525615638973201234790129617302483287124925673262152784960139837679234994262197388652144500250979534527879168453163027103245556152970107642643894670932771834380086781151943617578878010643432158738393430664947852582098809928866812134593928058680044338562142439769525972547113308154337424199877400001021280533235207877156171281661612418726032985794620250938410412273280376525494007702719336281189556797431866929443410409071600296957304183093242629614056387077810564238210613923114242297865725359712706970456607475290415889398682213596018903112956976380517905610217967697753790540887784721913793676741434096979696289530123006814257162136421130579480257896819071190990013595080333142707291694030004536920971155786913255960032098225735619572646505254582704245313752894744171993080276382034850836547917696233233984927212832005523199237537284652307227900025103545742310009398975101727408679092614055545581918460690260253306939659454850100070510603833578985624396308440854843055112286352612846416376043852437353199242494265035320060883079208296602621745887502016128193455487269900070857085225702937097763931700805073906481682373331424115694951776223292869908573902056421074276739876827322166984528783689627703126685951293149154820581272702599310645153761648215623652048085412498174154711147995186367558393517499041383077623577021562024324862073779640050042779128995239760111904564380379706432287300272555919494310500437587429212487111431066051546487130140928591484448102308061732478270718459667507821764302592388914353927060582131544884402456450382835524899382381752969571829865366744065593433076163880392443300339752534253778297580654671792315998235664288102397852388695706224775872110429539652255500352295463159137741976170693609687089862838498375672869613895584018350762270610985201678189695198237908625960289146944092910429035494469922784680411703175126184708457611569892684223787357621289297193815462847581876037617460383533719729580127638982541493527081741340907460708352867830022374224232523403418040154848223846279775482793134324054975751119549776072156608406603407042637624869623194135849825069115465477871165401103549825649754392557206762723312251706390066655521145935917270407486672377649914445924404556306980465052902952824667029889617661695251123461019032936168777199798949484525942557347989552546969163073888421541019318390159710346163695778782101532838622939496901537213765911640579062096266522868524099854126002769861408359312306791420257946875476339961787624773581751156450154276212962206194736013915573909773555385965977081307149310936759944718312815294528897050812731865049550139961750150002912203369739397349373560487807358144733416382703746506817581992636626728397494777230848318032504797575070786649212931633685089911947092881899052405687067841364998826501994856949469296628452780672245258930560298211974297874374555221822436795319339366123678816650669613394417202103355102886728899613310075527736233365421264391429107237013216713365474588832619080416120978163827716333195259886573375598581315068997748602837742718690339089525137557838374504691262034795873315797197820595366532607710056999570079441515519168860487605560807178184774276487884478825666210715973973945668204718841090916763953859619141677512371164182973542225138419420205856701033182709005331564112144301471990474143135967395262309589866996656819842608112521275151872617260007610976083646487446603430563605188197975803923861069569035949550627102021933268229141505647188839144985978054680928593036719323399399382721887276729454264061340855264566298123623465492977329820801443604813323341673874950863772594307468962603691842875817072224747804034720231941148601630803334337120301660495682445394334510500565718393830930591813053538997764787445042099720081605895085218642471249069685460315752076474758288024165828967936032995587589794176380822491718684299392752792519708248044670061536785767728722507704176063240686658584597293918683209599710625088220161514762519147683436799761159708039636629814489984560303817875306949620715810653016953394830169007548642923939007710544391075236512295477517583736674797766654907964454684944195528316527687417993161353910917671701030611986977041451760761704421513719547280791587497812636845274518260308363114689009136388141394661488493097629802857059254907051008991414783092915029764008796373740381581760046380775997173749681741797284558478030669319023473319160067994171021288711236942795414347097402880672972518587628669665698734903851850881381187309913736083251998664968949184546750695861756426239750753632502698396181207804546246986931717230305585643674091148394417926581847085248569686565306684999131498761179212831443788409400794513110470873061754031052884004272593486949026403504439197512254907013581091104181694548191320388821128123804572889527357641547498270564869612740656707633677762356225467946872309958696016796074993309842458550614914663083213361002834162000694626769468860036494601504129387998016622676509758719661019939738305901806372691622808430672874982442752786320097274788880454525463821775796464657480215768109064617673365801289207472972583541572470608770956998287310076745965106499572191725384124353453998705173374597268219874239919380841123368396088537881122442518262222785193906186678564278700730198183606829953376344536068355528596465640854074341127965672118979686195713753262416658215511332299742160391285312015240908383506346962761121157205586778436745132708748359299552457271315249143312507420486972161418837358895108005107743393953283425812571450532363013563097646689730635607231685939742271592248467838907198339600813746481598244219024909516568510327025405830711115228673933684901014379986109431959153026862659169933439523298293257762561076041996973052892209283733175489597250514658727454071505062332061133534323449448126980137881637380171105955199391343515737360716589676776782540064394871955828343032860372992548406099429861909138995308904890179810224666525348866939477485247949858886323991963175511374132098337072782385728309177927293969401651529127237001527094719161402289725527432379046461774609051307867245693782535877645747764596581987596803018070281329391651499296871719679859330134510305666438510081332875511649410171850787394561341018325978619516358280364818094417885744430217257768859677955037653541189285675432225828783935695832583028435857381232618371101083178802195459266516975171572984842817083720181656704228553426166378457074362158011907654013429217918502284527291132245413094067728634793715137396047848431042958241142677426123226138571489941463617593810321021566220259518413135173955718113996159609639814595930018893453583617083965325229862973537397496715254120501625846336091022461253080556624184136703987129028045622551568260257363742569212126613799294201566295242674751385657692817681032900801445828996688283646457307215426812262109172192956653861331963040605354256237930714182033549580402726031295068609903942581441808397441590206470420778110878386487859251506376937991947856466085108350927321651871765183275594303478966753253018705556091483260699616634030935678706965969331762138362148507968092083899740732670743155029426878652891816660774218395056126192360542350820799193706355885301763818249806654115820076187120615048041109792698235874987839582776083928194748003703193629231648588096514869234291485674544206169263775580571754920075579495742656389494700576662199202106898838234719457578437451174080351471167672544134527182957243369867391793092899120133477670706943539625446528429071335795765275891261305507372709641885978764526688689036522859341815226852933519947437589085444047732449214552148379955866763601889868142484714008736090909732740879152843783358309612675967030138033820356639084992454850856229932617494213837522217347621874670912789947594438935058544293452450711738079762941730553120819570521086805261935965908811363983663235438669627326032230053031333532748314664902952152468454379393288705173887334932216527056157152328124956666130889032189582089660449095572739959611327499540016985160740637948041782033096101057097323659283454795280085791111862887718108019068403159530323366896681752694184815007524219224843908885851254972447472090734046828436446815543651859903506332006932046605317861402062597825032774209283673247161716182640001058745139144048215328668766396763278956972680881946536037765746684747354682969890439854025563390056148986853584974602986104482169708637727296542724949100043430632293696080364869210808344988467209589616781476474458134124418964700296824946709834749235072544782147306823526028023815274590205776647435440772593890412515657286003108047288882652319825617585488103188219927012006376166812189304289783346152426906375780934657512546207588686175752897146613453085344572305624837362271673384743530918007556421034575673639939383953501987586346315996510211208426630451077268691675571529439354728204682844463197166995871700507330084887836883091956518702241830606154479608159256355505633459473804931437570677582415180495717499211568677822342036724496506906919121022521141330796595834673690987165728675678280560705594363288617807602932548921958151190945956737265977407117269302226661274638243666360609003711313420365632036501918797670412212272732824476463654890783253531607391125642197101631415507792777241325998434714089695735070931866002983950874090414041696236384693444576966385187978392414053167829738088623767279776423931588976745485677028666820773608923675361963365907817551579748858542070603009878334185370364624738083125826751871538696471116173573358391362633219829333174316916301995258028393208702263296487179921294818312489667422214586629500728541500767128977149601712193097371948479434438412591949423164112803960552948700047273371039351375899697022194271430625396419943627686242416755583047825533674550428791044757944345016676987806964527179935042864541470613710843972019491447671558887461572977602338098080693331489461846627264915715955465522636973458246748349446984672471031143771218484773432978473648015266135460302304837502483317388772725565915960487300716975599606926702866106865368583091090955033812247422856949319636413660053251269265049055782283602588022960516995826857371423667688637399315803021377405643437748336638780955008878316751084205645298374707715699757804525197833875076802737903171889971211218555347183285834111538941270055285446304817105523856188253978258502653321039378178964098118845665906598639070175160644063657379074814266879910175270121224945701739712502731460236920773614506612054593200172424769199539586906634557566527220174231003827550595078795025787390009842130754980012077762824457353289268986772170057032024087052049606226940713677280636675054559205213033783805388517000129900489342551141967475826614429701653736433958630695053109337924002643142291441975363847086686453584349970748799118623711802324019659626883874284617722282727534372850894567665038698619649863138009786034662707611628393893385225572068496515433916211833372219913909795701070135566021559970256107510210209559931005078153750152127476800299220449164818809640626985563085092619276442547571734818727100839564888888116940582872656605459847652561185023136708556928699767378601882025593172711113620662767601515697121960231096188052117315634107903728762034821826500340479876194139550871492726004556661606371037317378182022583590430419162983119324513670540595043773721535016732826345732221435741678769713265887780423058002285423059230485277433233746956879205363806582152346729504619041795133500258493327865379090969925485106608548415404485676754743758852293049559785059032415822067561308360736038394297957031002128005279220676100957165090030183631170236614164513175013627827775298617411151426183301613203331475363717890655242603790595562493130674174673873651350040398103882179245354793758175836175107944589604750104811176579407003438343918449802838910277448594599125635307161660355274555852395413737097154189557993514156498028610537781405611257254095580845881469444039287651918670079070276701658201910078579046007230859192327899291236455120082244165481207454357759387539658004742065412819388664863382366623620689822727135176752313274274207881214750411479674908420256263448667526756505881574168314165117900246220379139560822896188858061650189344794225162747149304716682054520647576424058365257041421161768957810044168329826536017680462743089795943563018895623453109190900627002370531842791066727544252581591378759572575032421565655039250895515653617192336245893693974463878582303716297603748107857572255185163841410275320012818491774186285001290011072856258264331801208665600060636461048820615285325810481985925128503871274386104603335556245411372170589992667865041990095815743651580209750156751671195423887358081520707940858712386050275026945299765062226546933283368619497961655914187895381220720375240281332013706388111029708986199048583230005667102604174239500054621672066577674065474104694440154426034903340234427682042396605087769233523781674112277503097863966367369916207590498580812056621367459583557316176781578972691530537735317137814411153651798697847695320192564360231547345825681311568237677642843204109808994858991832999847594544301584802430253957683707293576643409853129337810233107009857122200519051119940263161723360555324300055753837144388003752711317337235143390169493495238646226174796786230982447920986545281163839378516693937361528856869035444583428298129639306697660023407970677473446599100323092880498111920372075097402404315485928284606520020595317359671700037640185862961847817320969942041587227223580636828469866510477455799970870521240673296404302957528449668270960918500240162655913366129708408345804638169524523434298822594381528741105577186204354241146510556367307809983035326297324660725152437384610037797303012641926519817378375269863824747836978989687430977434942080113625873186875723817029818702134027119007150833997384931901885147099254773677139691918878293002982533009806568610687924132275436646704664710398150364809471177560096535983577279894244848914096385921316245065078715980823210248425546628602466258843848343049266391723610918840832435100046772279102672228944558104606010596791246688068515193225833327637215504234753189847502973858151781449953474198904282659791876546601726071957891612490427252840215662357810858704530962919862895262162580850682124497910863984046668851418278738050647585290094200624175900912446706151052204650431185360335564471933780679464142642298812361542234678709250446610253163334522642695564653630376048102415355474269590156711894027120737805087740137888217476354405978168059620899776831465096009712986763477850545583291577734949684196235491133151275906569699514732673981156621676584342044002280998724465249902254788805548550838719769875287835202554820298987405177438190844324525686449108471335723543810324100935747320524860223010869198534553631286870845206903888078898823968643001441037445660754387134997645210962485369879112456040633376326171840487216504987178146785850263330448071975974919065988048267332028556710569292697361158925360397515643448280264921219238725257856201755197724209889577680907528107945313976578129031198482763594298939077362629160912451412471357534207125282359204137095235525557886855853364268761855123914969762916126516724105478963436007485262548165691930123376610184948154905449639171124493703321114366046300842561626884900737532355938043900492958378202690672806090851601729096240195793517111782483395013557643644890685363227390053338704389174171609047936303424167147352971801446046075477219178918291745322981306682363101273248429032045378485425021842586778095818236264633313873166636893965325676956153385949188663115442969650943928507177503140136570546379050117953872805505699664752362258134491013493726006339472781018459864154356249891921253743192928795002501074098617365785103771140430465219923995972331859623003400749261583646469850888766947004967989614663107074683217421435530206616967708760424772066255450426284193037099911994735666100012332703880654413901773923967075148537864677451365018351555947172505447613529670032113452468879426171786598874294186819739825136233372021957999264983266098545473520736237725135898773784902967528519238574154561882424951931315944868009108687964529174924181593260218014288943056335802612754977046186115780667802753492584359377244145734033069795641037092493977996271017568804841292784706490405470799545087313532011369708506070710182597897650861503919234689867362851518907153212978229050618811278188647562913426977278516471610800170010918085766694727888167574149719957632124158249152734736298513539574862801101413059958968977368997139473137156318210301782800983425440043430781812339491376765856605691560218753372163775178654337151640581193048347029540443516385963953025365820655561551233868469117630552161224047488673176238928225186056146350921377059031814116168163191882548773510692423978647969723260175891851611419591006715316896053101468013832136184442237577175224146845022949766136920300155083783632289029866433049343986693753559433017795794371737447176693631964586931490209939756374438584590646994770594929606473966335987208193475601374475435225959384684470000165388635137730974476506480590036804911261333470012054996199143758876909574640687931157261440782466570701899649277801391625718718741199105520824663552901333289225285330025045953466904410285904957820191990561422355468707897081296686969302689869221076541294732993358900908764770708287552948726818648533026520015854478131703068426011403911659338805972067493361269726030818816500231913986435466276872803297729518529979028894456176825888126284497994832767850793664369058773320794922427786650508564444498767305959747497637454604443653560936048236169822492799540829722956453038949918085893831799916415281773762370357570796696798968325212664028515650765837259142728897358992989841225164282832633175345886669951757051015473126066342909187838073394870567162983938598177236960862654184222328255895789526245205674008592112359916006463549590972402291077843191217241387931346761685049312498174250674232473966643179469149682528013621353590877740938520098628791207667569540661353078458955726855901582966550632994594741349620754032763988214278535427662667271491001735495033729305754955842517546067036229400066494385293902797384161275872550268039053589528952226424040608388110141243731971218422665212197102489632367803154084831845956990866959223082322583626799356306494205018550908365860482590810609684067257980905778689169436091072118708686212602352288247873997512992876860119913612891478667488655829664055865278469413041189344404209175734845331155583633244705178134492116060349847051658958263033045099639684414311408077511935906172726763909996624816285756081506243508360003990662752934834752825339057925130870339393795839579296571362466610466118179250507127942188026262578585348465298718247793111162153216628483310644092896045102369064791916721102691692678865889262669510257553149995742305558099320292481273798093733720447569813980105400022869585084272476597381677936039070401922335931643556331945401395435600193190529382210990210000736523309122348510688318220346242974659015876498491010382132785587526429877040065156440096955449211690668278546182360580735696811600415275667071823890568351456719775027487895926170013774711902880897768278293564977450299402813438589685143416284025591881651597308855097219066609923789542847707735012198178193864328556146169663579959365904401879383839781799769861575780861875033805313315093765564463992394476524444296083541732271580796846911063594524996533601823355095490973996927956580774894450724347399555490921745136022750390188398481360214065262641383676067293842157974499526550289258375305466944928968392054731565527234461020764432863927124537188347413002189767299681623372480593389661053839680907753469379203503635969775601589928516924018323890251029478681212254177023068301134360014495109866126251946685586474220943264369404377397633550500870205418249272587021089176388168021585410656697270977759920720320445267371498079017551469436427965590025056058734508194362185567815432952252822651704870313715194236280741617575405709830077130520840870065747075890182128405400600629433961762567616179480735650534726984085407757327107384399139959847362922811153831391727819553614074594115628350174651583612697544538008067823134036717246425585561857813091360532485778682572950031544302821118359476837339967217609804904619769331732466535185783247946390214491494831322118929656772249423256512590739997554915672023046662830060918742648984823247626328410637810026715029849148550288575679817268254665978560272066189189414917857804505162756089654418598278123384376481549204114025819112363419144487509968527111950610828458787512979637993620792272701140411262097667673706896647824858775028054232254977236243830083802917753993679962748636917599156799784315484726621842142012931330383047658216397040322073483115491511151948742541724574853297009522805887454684362009540496592889904245342396121366587278622612528519891445068232976192100746248583277636303010428807044729207751942466290825235099866338321874736004790385074435897272199761166248010060039001442488526811784536383447942945718741149890819040457375707859538716395891967561673699335004035866038920384233918847324866438751632544662137576319064490992596511590141231723611112451007284726121669693401766382063285140105060305636297251990369583846585284905284601764761200249010166437629541238121890344213043915799094756777220398417028140767554948844298417310468345680389644635634525791327674059211758007614447602182160496315156846707713374230384371196311106933451954846106491430408702917224956493285185466831162213269394856570192598595842326030985441086734934426791262030344449254930011862152426406405351487609378847586347045412460064378565948963185368046069614343397616555646446267202334503301134160755727350422718252216131078411853791458453264450414631867521407967503423409809694251578668345709851409629540755159508277234591569271904308836619492659123184069611929752458890414442490173898968876496275174293969142833307997138956720354159072275476540924023170734650897087687648427858263455959987184182740270509415118598216224474332209379001336686273224106360196474370123823971883277780687032975850356195313745143906072983861323081346502034270320981394541435950420996333526557584428636621476948189963823195017330059846561302975538418959604173979411950767669622196497254059501788191786750465820244118823861820678979668464614878139055700620037689001447118556059496310324085447816325851806625534880178419833383843954026870092595653745383860811166061525526412068863552644925329869516337059987578571227290037889941817521043632426580490224924337454458799324055090253658498275225203157748691742217854407673294473748073386767881275419671464140609609223534860844346085088005118034550065589290796602476164823963526457564450098549019160737079614523253780356718645514464165191094924071731591898698999745764078012402549175924317689658084908600025884473752814026825769806800269606788880573316466062309263674254196014709285928688930935343346520411534622510026535165600523580757024375338282720740689665667723738204345197829311869563839507249076233182288434541043638531385013902941842206933992777689237251747151862478921899093034935708189731069842847823209522318297438533447781527537184518960632872730419779593154077587553552195288840132933154731515773610316425178329094290314951701401342386700855873936809710881547724219654018574301112776144865198683289137254111624149017760869259007027694944444314220897445488601011964592235489620208273135452814056093859918660133295807125646863458695928342174708700714022422379155317690219954930556869712974401940859535420794318818984530378831819812577507346647043314114788844962601084929154945560214122997542293337356633098054812613117938467790216747550773184471314727940353984411433573680428140786662463233790488018556908923915076346364612036239896278734954043100225841268275622573083744043673781143038496030337778164927752843033072044343231177096810415619565569353759173849620652646100608688789407785876742093883890742026863613517106601587790063443828997606931636256426902726559829588363915217629288905614724269565775186410250829974483778428094512741124379297458889045411035306282033742244879028280948888243789144131639334328921657403348231458482578494712784065259968972893673678442725594614574426396843018699700814385759109726032317636101946903663898855637810054606096530399335216582011648056864775300949137153642366665005051357606395990573944939662025182415930720793351480975994243952063125279721112615338210201222957603569603828624774477140523732176019601087508505246477474061172397212004048002506823529665626415726673732348920158928702044425600166449430870540062965286022828972978723496910460137488880860297086370478684982857287615607501343741517479239376603601157256462535666175988807591555118446525894993448412092616937913253759516896077690594995635555422346366273217032916109471392560966776574472761187345433871547778163277564109081230268552735692184666513589510634265156839878710329641282096211178737157805358443002931101302253061651835124357578859740457599254127600868453701707794622958129306248711365802917998587224448717226151839712908751423272723781890436105307587026562743311974988885587883942485185185706469882521122848641382408417384215836944214865733246814957751781076906369554523851396500890814534435570307877852667520640008668893838826691911997460495802085773739101398077292418400223921713109512547211568267754286845112112717222346940910970259179737658521763645767020856273459186565457905536465149280706939240201803170016452694895180637231093522719403947584872062328441579817553112881784295773032244939357396356637439704219082444804197304354674562327581469390067744160570367157498360287346690053611644793038269234404858417859962479707319620364712380300327598332221281357241228468999681162380358328780825427213363631857617365201885485332262467607513605346100594743215503338520295084019004713433022982538763501290670410387019216101466291479483776321280900254044436681132597418030533374473044343789227760672186880790038493799286681912396257309845441141977349620997569199184819478222198753793106966370286514979028906151678375097885723638426566615422332662788090591770491806230794550546668208500752717161537907756494194714161883998297239434239171580381696289341720570531303694296539954800346686673154464972139540831077453740205538722670285912203485351879944562719609979785450635838797560475182468281440267869445860834262964621757392542738279143913133882371506970061313448229199862231838558654122350815305641088372688894453105691716185905251549636567738067422726153668893832118913674827198913764516313278914490156037328522273109058328881596516250394207898783565394581795375539931124487580640548237698898910998986463056774898118485100530537888977911881101715277652961684747086032907844824831158686514994637071774000970368059688952374218697319063397713385921912779333111438400529443810681746523167224970225961369494375848616478805332812334534478089764910076693994657847394477480310365616668405737221747873120033700130637438881021668684149149111353147170478474229335903884461103466234870592155748176366829538608874712418311492748958725495941998069644746126797263572659064241106291595163013040259720517857155697729633971523392030844859497203815621656393109325690281996637455923046293783415106600129098065521229909155122239457121720761483221848657038956436824739548991216562382673774591492747972624369164308305016606476032640467954899608565687094041512154798666460361635627959340146659704496333894040768673389546419456937679217135830972266051477005407793578114956027279490317393292981765781543833582545178243616564652833466418087605678575337260810584801360205421146031656438439460934900084121033003615618170516488609904078165459830832697983557389565239109432608240489782607715104646399876089963019531050043203543537852370506668079733592441520613240002614876698198146737808879329837512775114732828640535683579394347640898169663799274411866483390995613802260002130696286816718490300661540629455072044987194256922411976932916887625902645320052427240509480769752656478270512154804836727888953928810578638785804055329275167559910591374972045711253066313950011869029076197819222424137337535426139046595611660404130832759039139424086054613822975918909858449582457968441388930897470870871433149855021986130784831113059566935603903472656741050538901112658491666389163649767045166948737802030423399152292942527058733100752701381238573188547507079385682334833997006251002411292484775415525398399862705374930488819058128260233860945453099324412565230657354632420806345402155790356646299789383364523265917734066291341292358450598509875526403771482232710436714928221356231805852134188919700326007326604858243925834660919320269672452126026385521048289516486501283123594796120611935261964051235064782297727645405159069405143187567041402320239060345449171164136051692971202871841932560290694331759332236038408784796356605208542440960328839960057599226056360601149287424513301830216926612879359875221290258025960271415264123864264032768039428817291523107301586761010873453655933087979227276296080569413878792396493278004412644776027032754216134962813440608881033899870258094194985759478693672802201785900268513524367231152733816412180063984925510967303802535162993062321781305124922922039874715874502933172948642008155297074904072630035135788277202787660422890828734346349053740707036789606046532108848283579048445718763784213951596760230584272039752191786126055540046875584569213201244276636076880563960944018400341939080850199057288147312612969882633835033958236928310139161982008094342563547516613661318158945167048866754250037126490917405639665071304514677613923137907809290156558771059094664006718906099788098884956957768136818582546683908996879191636952405592852497063888343309265354496590700638554856563144829220135545200061117676836984654282085079339569494471442274845105570531634883442179360669650372395686808223663810775621926843237782788327199362831730348320255965826797221606600589396153358103242197037762560728130423636186038925776949204539121120135344400277499324573089691421565631907081475939759204158266056195320800506560020401161785113781021006670952194540590942747125099679255007597461292020854255979046681819692010278317240868655363288891499239869173059056893102785996650347017778106152342635524355579702743398980544326076075206501413898284365665355254124842007546721776252474402130035708351310735958706965710142596661561666621167191407805055132574329536881809281191318534585564520919494968231808415175673943431778957300190748056143123974274141181789361852449840384215714316495191114386209687531969211375903565359618451832688196091523496082344024987415560610967340169600418730027968042764973177914636835761959952149117292902072855599982712474070898061102286682908539090819515325518580785828237760474547400984820031363020021041282160214972238151476907790234663539162767981106795324929131283031162978943998054555018149243801102881619559176716782135654456957149781972261374961347359455365862910019425691809683691861220306088692710323565642774974585116052607658844768743228255901441163787622015166561606818686066474103590838733478328255506158516225035353298813299491068487769750022300139197596206912647329300031383616488046647428178949603202192087483525556325727909528322782003310437244966119285972864164885839695052648025928756063722021284947649907335527229308516971956972786016170959758464093427067716832847153711643370705107137581236300485550379832597813639973422986923848627640994008013468238447800901646158870495233924329499838659341788426474090916900863957028157190449358952844375401219747621822816696372473911766894405175017384963611481517555985771555240815600129834565713189365828368978491075510785787682701366401820834161466888527580478043112771083704555588304881652248013408433139796159747313233754846376742756083711521859874159727670497787995110454095320562728463122864864097889416093020800041934844094641382423324731843962486944640909164462034329706777361908439844591962289298165346104765900823736290492655649908005204579557360438984393233504960818421401151505126939541722238391339002975375115337558927124555588246845431087413453655792799452604603616242400976436673677111916088591659359887198273564573485790797372572622413755231109545267780484065853600869279173131973909445561104480987544959491974479759303348666376144720934952209596952750872447163120511446266400762292467808673190336967840414240222818271726013959777267238440823942495803454892829746268077914211030264693251294403776850118939099998045404977332344163936313778340460513719945391416849520679666385093666260636814512200249228747344629766164985395810379099712767948097372722727354691475500852255042064145574928683752960953086312595794326696892964752306230273722454499548971576576346170489133832871654525975271201540040662377202668194861114636419654801820830429751835530687763307291038209259868638781096212254219752367280270207697238814945567922589648120036717146438583312696722507740732152643610026717738119784243239871629690411586052328481521057979879916739027291463444051643984150354120080234300486530664438736708899753255796717765689535461661701171168450515745510963456108746530875864206699343173847782414010644238921127981341557504281043986822063692933437158015819771517984310851457585948582215402105649911472294854209014977878569912159022804921432128714264563792635032258088804498813552775436536399002412060774680958348609427185252360880133744511401250895798736830886589235333707259324224906328888753910490551242690289637058389506126587249812061230893567437114194730946780745708816106820562099321371624493908178192574121337074171159124406860922534164103795258335623764282456794529161693607852946133535466017224737324486566960248567481087975088134476038665009921509172976207460155507667558467930656406428536744879313153068730899084089567174335384888332355209453677712451857282674901517321038980868473416596663074144696191272064301416305596992144219046742703837819450287829642361071989531084641175788478359630406352101696776974179723635687648494508687435738520622593934560960792291121634785074728336063732348775647452270572259936615270326495720025821017757941272298768855144332120328908146770995126367897506565675584112118113084499988732450943769574982681254145360865539196348898739809368574881737150276429375086645731905452532180541233796055601955091984381175180045433507629850092160407362759311434672905035111906620322812190001736736072054908750590464136109793411172400091872079568478249214523367824338571114481108683847712063356538353938743429596887751942057195870385214518100607450029195533046684442139851924092222936627777021764203743385306389527955147083537315623356335868116456336166836469481574653879519492415716779307406079935048435155741723011588803791856912947780878862344953150739963649307933860677659470985074742824354213036864114241878125100766476146143349232185514750393607406102957443443470529995557411968200418409414654657815000671136584615689179303443378398114863243289964720010566598358959175580092968753702133536425218278130755252694840553144197683878863970205257735005842872326779873555095577359625561278561518102727083607428172348018093434679569082261951041002689490742815059224378880538457636915170836671817699820297327889863313140412935284970736741627194736456550237679412803008228133157609365750706336855087903891967008801627071676562834350677327071535141137274259814202345676283280429084189728848211689199020754366115326794745219052237871681212487987620582598507252598381022027061993472274827216878428080386443230430051294072363840970875452463895017220228389340182669122189854094610055025938760163445777628678680714000760132486366794325296782219577719090783501723661314242903885420108699047131725338612650134064860197466436769657106002690193508809714122879746017235111345316637460293659007903470902665359286007399754997983943111538429462765046678337637581243421491506836416802339653867134773500657927406392382024822544182123253669856269429402164477568701040767808953573050128082483682548670935090710428209545214927187352968480937769380770416819333686645789730752595198611288101210556194868399976669879428242876092906146322244079429837626759595132895389837789194436681921530739912100541292465358368517416633931066020390399600473895136873979330737587052934051757197218987489870222618406975423372822123957487146015890069575276098705176222686450093715704812219697764495899926159166654684702018129172442326034536702479321757556164802950746143734861398007808737039785236661585380444561391984175957806239488811740566086698072648144285975489763609731220153395768596027536808029023025413125709896580799536866747950561136173250717795359502159385649984783163654460719286679396352015888318006010439248908974255767331900272195496666617456139879795649931400612931307042833157969403399833944071892262844735255888331786738179195343137628303109121772420379714181399542456704604858269500031256409928546570420387164843629915746871314625539295696397868624624395102068248241506161129080818645540701832640585095451157527910134910571884159493953085693450005080166132943177351382746005447794539365441130475230417267700859452610854527369959115085148719657142828620096961741568406569813594140838674023559686941534627377001694363877929582579805601373720039236423123064055660554952375304064051170808093072062516173123158470273274774112524829113261138639039106371634281058780189651324222515863276085907707472411157208451132241929985749679322266264977043602164346103800045871954666723805612656841601667470219213841254955801706849730604467049272162578740383205669261380262063177942774080361576033013027570193237089599440231083793644992302786139745776417827412905589486706760757074992380498656624261450767269892271750907247276791876420071280532931197999158302144885118941417849408844274414807900048600024869077085184667411512483731695830503977805327666946591001644822035748367686205685310778239415572100505220749978061734665145904580233914213287155659761964243002712592258690366671609683186168674164169678048461788049301462731451326772850106745835379747209204444340061852980750287273267129188187820226019227364275439202897942006709731788358793188594761739174870108420389308056296387184307614598538150933897127412529270193631842734120333721667429523558332937778179754302429327547979937041500527088253462920609267308791544717495545155329987687458844948578050980086289398944578645408195725227158478861701386266850481703633532189562535797598630461675350897148107232580886758667319085307703542206366537540174175601988750509586319559169196920711982591020982100012913124881923475141283366245092287142173021728283428083989053654688828610757193925609688181294804069027395212323763067116082898451624328161209854853897927460864048650767278192247892532468170462177355438356587827289316922520414691212276674648755948806250725930973527118056710125586833193706549048679693515462683791702331836357025269149629401371666365087547994991235156679680983542295909338802222110752682930939095930903437816336944345884525973216049476964655674932594971278513930668070422371300922899196559258111515095528493157925236636450675860413302662061849494262734707396147448445907151573427615907057020320615256875233255376251710380382177238005881750877681730981490689540432046439531563998446748117509138733109460222603920653406838634019538682233491835713190688517331049711664348839252257732262889131987876372631806898152137115882546029282752048833486421521692890078104570959197131362339853154065497953456718362959683101194093109954219727930721845146056962551349519405093533651352999657961147136308550263073381327366517297144965276622829351163952988758715622438297247594644705044292208291175233529615672659479514966949871163077985797160710610504602929891086804068117210374719376138586870034079793518718667492038051999693167414517444573702298514819871716923749798591803861622575210444807222905179738106110325449164021640499285771167971166522264021167052074363852199058732652127477840359270187996236951914040710981367543707441823059368392032350195489997160582148410744557043016192584966005134762024565207781495695347897369382185514153127590277012331484904329603635544984431293995970667788977687322195810246558405320076811421692613569178111544953085852165204508782081334816982661031252369764810776919277237354923054033961794043857269151638849489306683444882105773189671366323044761398438242545302743356797621153590804786529650184887334856995397175998067231202970487985211865633939591687992292846129382337426046069263853927419480295173942073207593204953485951105716875417723303847021668812286030374872077630363229941655795601728577300851744400778752526303156323074690169197092799741327233330017025444788497759212983272510557164571943998421570339731805039145446571610723182672775976627043588705251809584748050713109179600563428698498110394878257282460558096015998393647108030061645380913270869915529451176417322764523344865819910691126289478911215288625421395713884254527094617756496104204230350950743442966496090805539599093360344186117172649111620097164766107916381050117749930356115905021672573747404078066134720991986573420113643222310146232506366917779186524138535440098551429106211428902618175168184944875179260970478358367821073578766034688506817645068060011651680832713329752240551686775978726877918156302027719003878549125736249768157351203563859040267591790181195999979525558504227911130278835055048568688145457098936745452212616437428073088040458123979833998712918468665283943896945719047123210115708077554529090189947117408344535166220856363788144410924611803303337913843863018049143476101139068724356290478672330455757717143475840997551763520992903526175594052499747779167371557475172190335478622632136431991628788573430323590523161333740810754206817096921195619607103043171001031517896985502991478272729278612016431920303382230307609632959824115953846165289870844834433590197273037392325728723766266129165847817981727773934909168040754455331700575283539339642035896855406936739792045023202473858015730008106639558362176062907060380827738942169532047944709991062752236637862966312135262692204331294043888394660908752869409383207244920338919553810351159579390160078011560223809088233639149409361014930212222418873585994487272880333215041672176416324077784818688269219294375804000306402236489783241945001537825928591776851839130803733901041016955935848846291867948497087001377560114815977549037288227593939106766772913824819995261045552600570919763202473136046726056674114471096771995425671013126375066696246149455425713579125486803186888452435305332276850997628070169566968154776338598283738534755463755006840294816729406887412041310951841994192443391633024081074296161343511845449941411638581991100204618684940540258842962707980297585183358679077617876347406881144280016322787821529581791247488609550473325451428032723045839949395119973250168316854185007842737384454697008315349272960281519606877203385328016654154032808490446217190500643349492989813502235247206510218128529351625211037593325976596865350545047516081487843941123115408457312661834882433801163503176985930261444212004201006697764697035961226460723043385027113292712182166318453491365119749487102597837279929214670434024239473393958160692490665814045096319565076879541511509033251035578913122936759652370610264846585715507436133190300809278913325230100438653865959600015873472589438465392487763889112172056031349855168758177265018523148498150122306792126980406117289118932689320711270803116516670650356591339396377597749283478808378041905193659250405887686814316683103131750429427907967054266076162943545677834829624328999073495660029204191047165708095750848898866661464531457300218860789242866547915484689367783929363521620769875797402626287995847664495499177687263306513176617767677165729804645441350101080950783128208601450736153020492684565654158742186518705166782248627047299740048267711527332275454538707584331660339139036050887901698686930882738106303728796822535453218122059590452429084227678285750582976815633964137208803024107048737987079608191966769752701158684843414237639387133564919640207143370421788281284590472593962589429627348112991188855006396912415672020125981362640457559535341194840428445304238248714928211236337050954570814264528136026517315900699073371604990889979396956944711575924011289174280276021777350303104100298927574198959946283658895263897457111671357948162378147537011507194633997139418735230149978613345992279670879798829441749995799546758261055240258880948228594455863253135128212416241841652218454864809615705089841927186374015474067217651922556290406296599252317251435798381707864200889078014602707785164522913438277231071309984198021293912413139704373988007799681320558896252613146451718309716463848894012901015310695656543630864396744047744839349226713329040485711413154132612277016731141897815998921268572037928700602904708578273232059329367955475289298487286058407746524201867288162167385118932336719572297529759070923691991964668526777635874448142643248859145021165360138686126198973978541603766417728762449454302786762223602106214956732231102431790492001741609982297864273432033677471426056617711609481561989577498629473017245862754367402588594826399695963113031582323185966140410126676594484209016639651010500749883240668168528046157686924772095145243817839306747402229679269660537700980569688471380764252932589492786688207031398460558879064032755661681696467452141973254980249957445083260603855913596272388699960357854859608626734451237705549288860285756693668930558750340016447432771245891084744611226729875930169488190665347952436147827590293020351190259402499610885639523320840742946950541501957037503865584886145262515680510908155808502819194423493245984602395867984173898217749494865736166297653039883711628457406968429197955979715595849162635554568826135540622824926178457840904991470806289645690473268935712852717085804098629362354357100491293784717605412641454456503189269983832608841544412632930606949740995286372170706445187259167694248201535035794282862193031944498291584546885006544201800489885192917587717464097781390148838508081737596910290674234881209843008669555808618009551174172514742299420753534746933016448803433403081289948787808472955198806137844094879538424104337998282203150214926653341799698996446063075481492069987539252566536079254768516891386179881250018036819465041632984784479904984162528138821507030198525660676254841876828219417684401151585275645128743704117055144828572044225376012596593847126745884542866017518651209160515989678789206329146835335251886312625497233663729936762406416595303861398085365580974547988042921263643638118316696759234617359126952572335375040184994383470339553005216978272970038392933862301637259976169616579603041807628757472114650646534168377380243099368429195663816294852449395038742285398285697057730543449413884827726438779934340569934727978693385399389041319729856029594852508677829395101311129752698804615014465594059249155477852112181104791079814022539405999909925965994429757824214245548084821366115073969526190211988827019642916178683820438524154244985786658996951846793150402980258564298292457402012962350128544183127411391219349525596733260987968147331239420670839011774870203958260338943561016932409433533277413558992034267257475025622898833544282271952973411161990424633158400992029580037518684160334330259903908365699654345531196056296533319857179044810442874422251642620473840400605745410811763511848670690385555167334558105424879035471766690316789033982690416471304741010118860761924471798553774083571919485491669961203711364741005728659304297468100020321522420011089905991799274250596667305475573859647406697472431162241600295564941312083185653456010429522858026909296274879653791854290486612254050717494728628284290391338643074883796009191517679258774685827099813833382648485952723724887580168023952726823183605220556287487902198930877636973847563867234528648983115845055683111037026427698990502262749756870376374838160417031216813111673326314181263691395495071904600070934064568868609807006636311504066313647732575608391071569948886306020188278759968296799308149972961461587774905129730641274898067121621445564745003191016327766737100848948822434132618737515077286862282617092889656940829618489138247949908951101781679387616852730832382686214634442251774394552990474654727907178013534978379902036925688092618593578914219030613788307952629048641701590848046269855511385198965865868790957335872484825338271354603498674775002036812866079924115941122016292641333292744740927280024459143787974182630385710831222346600101359031530079889453508604799775922377317458206676852363915552338038996713463777579285739274975337604008807925998690026806744956220922975125204184525561566765864137253014710727693162442969100266393249912664433669831473030032970799224689203701146094001282613360190914711167922206497028515691754044540984141704840094556010368082145131671696943686388823710104686734770633372940072807383857914460712278650274498062830489003111615094262803192940605226200792892810401936549232760800452917037223204681848162203826999929680288925409106680228202858907921014137270384764831173981715253096296673921759383415695749889460762793943089032867457599865611413239372402632900247162766015069075213988161479339924890568641504052263344758336112637745719777837848752783099995930282820821508615041725936842193872677179060537299194926448836307705143737615021494302833513941669272074790205843763795203948401684781954025989299179677430364511157656864214043817064283289470859790859145445613949005169171063510737197748655887521234845821688654239671316700773392002629728344812581826099572764110233042347623157380252214519381131150734372488815352225011802594915439897147296427389805905135840624825937170732652268450567370715585387624220804979413856873407030606246961263442086634109144250975816905027010846438866635990035219604381548336870203648340068685069030936196184202098601672074437772197224545967867415721706379913322673029309941915264925235646497492705239228846104618655709398726591473430543559233369734520882532137540406472521651577456986663391001123665926096962778748745350416979738803373004442981353321530508540764307094619828298938701278498384857097368808693266248901405700399893766429145772317026985723722721522459995990753898003515945201568687336147328645871040708565787732302806037640086554288478602158151383120698420944174337216112975293760201848079232034039021868368232181741013668107145176251297346741392003760328598309839314225473471186935543978648919969441419529460720495704697893892545294376316875721649274079781783106879098210866115037547631753157043589846409766937601027535197100839857577916650697305489766097746427764615425562535288045589626631042189763605264213163567582167706467054625609662395840069836123074503547878795743535087556918128007828748021953400853634748279109826971905189968273471972279338428365270681683691350100662976998547652111105677158711585930183864367529239536109696603761498363345087379383967368608182482871178081782033628461424744325952048051952034375491329791034294947343384637216894141561649978345114513976404872596212786103482930695653429504261122370044190424999976988510352575115442268569248925628190334399329077532538288398499868451550781024028801973321802757882768507432793295042436741920073284339001472992055711552975626776004096918997282092928589128301208117354199387540591689469120310733592128999616499900025062745991112920000381330554529525759785094180262649838162151591309398645391665957082529172223797572425394966880407110228041279314794205846637662635204920128105525339867215425376498734386647459818417404613989757289896541726605618285949616375202578290277657447907349530648784003230482015766474577150899031422038610463023640849933899090232689947176187840202322391245632908694535630996915274105446194950552451361932864069063463758587882491815058530310521414102878987581949981650509807075171942723234756605269076084238523706524389926335518047018207157420672730101734443626736570403641819790490239960605541808325630602150532255850275071220784370451774418414126906242359091534114107252124370730039997395085637104834373724951295450794591764685356816891130805512635718031694370669656639990384386293903745715390624567398198014753574749326792724872214117938097004768405439109835413414405697943493263561877047233486940999955236498707623432298066259936154696078856064635632859024805057289912987296519337696184660690395764617342750112929791699152953793573973658665445190510445266058062204678026092657533784285087641739513712264121743674431585598453995862739869168987220258163924286229021443730451882825785326827099254682922633491687240015905578368529282435163740212762713272376729366276216818533739542921742813693280546644405524460425022999714997127752128190972232879904694452122385712191018528074123420062497579252391312408023589030526785812478995072398567565943821373675302744174071922426828831376019166251533922759895700879607330775673804623118438624376986327380733962461336177371258473939912153621458881785987284959826500313704734844877656021430080471433065886090883412005976484239470915923047389084828626194901626112863540323886143734816808844788053473002286695024452480617799998871422689495407148389069346721049356915716942361740725309638336848224241965870036271957599166986276655136939256851449893452904861883663685876224592043274903410845103541976282325635627074267308519556755393596569317837933600275412947807990887970674270967160900518962094011736085263218372892553867561587626404634610865669889292146279055253778153123979101666851185116104282083918712901347194128805534985597924709635783242831729913893384221300741376185151331253099655895971914107937409439940211294827222272888058944250346399781704812124675741806414291027791447518848973744385291421494144709917037303218858619451867439999577049171017933839109209196149243804931405979310188668622321659236823250112043001876712792738290423890556020277097481956578437223430685926790766273209191971309091704471505677036455063666687102424242976476222316836813369383965403905410619246701643028827918547595516146896794089593812312130896922213793088264049735230968544936512166396694030448680271546756205863156169670522589570999442357956687149172683468825457320545184801331431236342352250404440896045864110130693661936487257673996190937073468450724356940831257375100237235690906559956574234357632025505293942326444013132371967972180918175740777098477070365006692859304164736337176841616000683329485750346452042234897551658702370200127161512689193857471420888030421914010348559109968570365994238456214270642389572629880045281097796900304195138418489984429132683705393564838591565596460690610821808139328126681799942633454258501319124403939476973724199919544289046181555230904413967965659026889615992720308150059716858946313329183633053927470712549735292929778156819578217492589719438214191904832303658701197873735321430033929234534516305101499582848362360469560778976614347285773337792337252917447715612057853945790466696563937090996113324625299682917314781542156009376430937400464775899195088966442914724401684713181261890797251577071247747156874587515206463276466683092683795244954523848807537044776337801826622561091046181832261824505528165317166156504441861647880317369824932495785228589184840552903858638741382971391357814903676258772380477023764297149594674894113860976889472739779487461097334648010097511385952409379417239285502783117763529357021735621248314752027080158199606302394979804568126523284908969052955541598274293994034870004258137019165982752525769541531514534113125282757217019106772748595881659029917844104707512177978662992752630029139482359611510508275894852474700376559627456285672698505907565027203979475059367661886467175573046771802518227046082713279247360446156806938626437958634547317486510927130486165305376174426500118197994432607601934404770578430717981813010106431261838071232625343812359054815816945239729044248934661037426205939017932982586307722737539697914352652596990467010009171414151604820683400973213918260427697895417315541500520056332901965647367889349350054959701299013183086006746284173238982749039503176500192593678348152431519923762822829892202998885096934184968697458593593354212122069171389336311328799946799343329437889812452623084292538783042537256852058846611933706930860999713777216902213942371252447232917143847280179686793072343215159035196618155898683505051247817369139120816096988798037038787461676887797695152885107944990696735690113706497689870774715939907452928909851593384763498854512382336367054476833307831196220865057205730122971449053916524809997995399619579870205348676393533552561677354115136981354012721437078343352729297460573981772120138540134289093404465749354524972610255813559822569751002605885240120414401428558782591532459344348434269014073037975182522508712763860262786105451400925975720136515523835824180371472774477330574360188538399271252429014396324285942408583751506953989119472000486179709586955674119266917585644467071917704075207097475159716385665049967632049426738724887529242999631839801691152624581337069925289435793168589914383266807292094888077917071196833354525399894588636562892710721276814735525859867571031745090088179886176975382367840389265316230515095271069764967965347874966872197702053990103926422082571443942585353990205917937071092957186811710479299280016953623084251137813552209343600118417515840670640051063332197536891286183726834554906191206283231600802358572575705670755594594998789276133618509249759530986046417976501036536922869454584323378935557325123845355486954824000742679532036719026935591661683049657136614967070287016667057094767691275984607280098994472653694171280481858211537845059657246544154272755954080857587817104864961133144131317778524554523982544797523860299269986498920627672154706841511248468436426472542058746988736900318240322052931290194803271183968704899034167145604383941098102160962035972702438775646901456497686274578138617514627433206807514419555498891431141691506335687932853459037054853268868249816465171255355795366440170189985748471317411111515494031619572380012756941983284561419489756775200134908654422812075817316124843895387455785132858309232223687129535816792313113091917528247342523994171854972985790061458110531085884338896158992100906183915509431196176213425128792867003868357530059846922464334394416885312932721563650160697207944409736678010058940677121353830874498260183710029570179003850637259466915146093386247369398597185894421723085763482931038280094766415112717792737006390367797351104614508373109698983762960286545454412401526549546148708749779129782149366104455906633666111717944612496188999674065510328597886369532245590095532784431815473062203673323488437440906692770651592295743530935217530649461865627944851136053185126834163169894264738203701468329805868196032053735549747325380209165930497074343383683845289775700532308202102036090976131916756979379266487086901541605295683113315320586358533831423072923432735742028320735352829868886089047974922658121106628809808850926023846505173193168400221464315379375496948514449290881097243505945170833950295651427954793577014108048585905468544342128123538522572247142387825631573806070586016272568731606171886276271390805110582828357036098383434589071046650427517926665396683074302764527865329709131919211253947236709509920790628632635604773710321309610084401143709843473892718511971708267234098467756347328486375923861502123345158801798991199375693306341826694596688956822448294185942066019365087777821125588788667257048941563016385438768916985714825611873737515837702218533604061803173412161817963627052851779392616045041570770331155273831834956826733819253194115233528811979617234247734222147850926717174480883013877975174836152468982448475938775358527985056506809145757936976587232606304728802380746711085088296708549870450470597487396081950276716314465609124792942734176881234313566249243863161830886669115984445613246812265508904900798841443290049222482529796602097824218212414763869364789871960432785988667311036472814779748067186019882791208395078077210993197366636841765827845275653368242441425448145760564296583642018286756512956268658299434963310862933398423459838221592396568069748646096078431936322331048997554037372303151036156216581712734308244330643199262390547489816307396156147238237851823131728418305866590833127802828137478363925753043560061533476289644332509994933088334862691932389535837731756036380835635973936971699864088185912541490151816592145781284074452507874598173710408194092785140068454344530840457565366766992253916313910475103893039780822579348518081894151948847098045398033102397662670513552261626670289425438500022743867084578336605398974378207036431350556263330134443480249296801743353089041331968774666438313386910301078729117047715339322714514630029861794343521273788550524186694807539404664722069964243920433246948171413286663002723012370316551058286408561118785513568891123465725427713570518674147989269986792577511512503313489710325841991219967762376539361195364624619010868062065253833568616192543552666660430823900565574178787543068387666552921435100125597555467565574478530060056235701766636164397167647203862268622306855515276708239149630437781485422594814609477402033862276657948477391991181942291174683216962368638395564817140890815921496989591556623454864054696426592786670414351045635100704250033991222557228671542870558692256299028794047294673295119618322616879395930613779282844670604672297674069654881734004808880662657170196019906056606078023600512498718627923862381938608839414770150251160466463599464013991269516126958116128109429055324066274313829463232907005538106421359549301916361964215652011700133725678859328904757811000895815167445287843528565010684916039788022719565064744473256288706180297339240623685166146568173572274270717912111180643387122192914285066745273892113117930450405740998554844634648411307599814001133582179093402790260128376433731240737853061106091281007056209934064361820590376346469288709224991122873002281867864143198836059170825634637446466958089017096023912620915262385232343333794998114213929491820313882763351550204371904219269170272866256540022096183120112673092681911655938056342786100023693555594137365660154593219251129165549088994375042985022074542178014674071505528246070798369536902870891010411492904735823069094905392393199718603903503863132137211533387963347103041517951914382415294647968539050732321720245853328269140091144643151186717020586559031058140658311478802271800616400778467688062830609310306945521254508510910909028906853328892268629647421032572714324879818471519590570473912944110529514626739383922971170058846540665322847764483773519791715818028316109183527172450719076428889245437985972295677815715452417133956825161074166771895795581935721796813114622729829347845461210545495652586636707535637893444093278902021168721570193101590094133752726705750696706762543978991366976098234183930876831150547919459972834400512799745750281595082600415412314873951098145627626402222010916263449844243513385957556831114998836459157458114716266517174536324707555094084436241936633501884092825933062960421975738218687204901600453526176185265301377558608655481395396159744230983557106791124829447866170345804475454724923587516266325986362144898519957606491057499092602145168587110926000898881770230609378603275880699249944097733683191146820198361984150594314173270454573031692287836344193209089783129048402702678988032561582857408212984654651288641607195648131122123044915046011983357168243297874385048001550895089463080889799336220025257352661404796831598300133651706525738490435120451518534610883769908299306089138958034600475306259303320915562456060348908788843176798719029539372767309700785359530154248459201327151801889270416367447101946371540424621531619454945931275799702828970443238399568867715087176864860828035944975276070057298496958689262597676199415642116267440218760262530949376902677334367554226835625880928966596446925099823759098440370007571124602377980838373705548903061564067708238168657918142312461306265764263893957026590650360910161251929852246424386837188401098880165691801242884861659382535049366394775447870397421393143698907783755979408126824862985955564920353263527304045314572358367884854179650705898851323670501988095308928547534818942063424532458486831835963998431404463815191964602685055776507930942336921444294420763593461447718676587798821457483237381371128719717248903168209903878791713373877293062031518754687039615122587373199557374275714761595364823069121708236438501555413453284827608298421556361259623625093723014844334924127005505430402295541067455528389710679634480806669625444885180115997313399571635286621764061253276176178577694782917281054335601000281948124673008813322054882603288138824445334184041102910280568744725820799021968383542633674777015177603805547671815039210394028101217999062344461180782788640811705368523320653998900001034100846782386922295939331936226346213640366163684662053687338948558562579458402997758866692234781105434581875223713135720547469780688050652978621620164762101264974109223893181855889525988554232087042942228263505446011973194726587093909097475031785288211869023783221551243349644895449702003133754273031742175812045595230270287196426204775810944466629078588442838350432875818896361602564916341137861256781948969790857281201873452016260670739222250315054738508385189276003045084871267900613241760302966736701284976575544556186772081206925835472873675391463644474624999061477564153184840019374471986037665922675876792501496948047849742038553317002824865906424117410225466412516319759818420270348029273750555573899407614769625558684076204187793365670847140458300716694556570136887259329542203672852121483113784530649381245889000459282308590951507770328329641098067676585219553712764948322571019777821034802010831721591405648007647840932269618086071037146667060670174183269300484754891477069673673904029903215280262933582312404592219420544925627120395563963785556586948199465428198419792922175641140517344881215494586851626690261817075025364483069862331072062793323499087962333965423038613454425449851014048005074050475097472540201935941627500710780267963472693144538611188981969501852866203427885917254892428529337560632988208459449826399034985428006523739179421083273256457130584343880433128610403506694467321017719208652750547475097787686879801984939653113225911330727838336139765622091268358180181659738002541160958031859167188886962135470202483650329964248982875753108772404856027391451187019198973690764494261404014493593833065547445425800652327883405729517016301527786508111954362426321074559917457483715071815380928757609704996754303016630431832923583013250272989105460006547235503003415433363844776888858234265034226816866951813092973750058495887107057439132940246482810812881436124684610743033757862484381303948682248945135155751703174157519646790899707852550177959320110076434248793838068522372568774371810297131793965481314080617640849059637332418596448358851198686371938970604633688983831250465213991011295620477949005044374424887170522407139389218024461528930833597094171144418447375184575077277373715149910531989314447662157675055373054655998829875786380889692257740079032986884445916086599942764722129157749086373994037253653974276761817356624404782254750886854106459863436588412026975957175494245015714595544761644346460903941612736128708367629723004637465008559352754622016950166993105172533791628896800615648574774519435080601780234530694968545154055572021029621100763040086190153738399842858793341692554321680590223857914996869354075666868451046090463302950345083595493482489222203703821310313873405289770090732965759380083404596012667287692324661958052047033753721215363307055932956611168473548732134695303814847643455760388181478308737045083838593883720223566652780945814133397080697193699395810691295132435982753400977639221267639771283168640364642410621914101777215242275394007960839809332429933786111759559511262491514935133225955331258553997998863716988481686922316719766110323358948897943470944885934194197657484895322696751643724153810768646581051752851513381891712201055600125804045382958449634985636053264770396956056523768854763600121487678674807165101462697417052142625354553035634284752628674611926937190766426280414879289197613395052263879480752331981846540123255996804798879771150735842933070133912215672091344130319602056207262706093837976793986998688007254370675994820908212047095689825115452061827340866479075814474525297009848781171304179607260752848425511093556794585505164047632822931674733764938051733196430946638514904022020615579942338393208317668580980664170287888247364419808573100986967129010454305066762347720607215682066832699310248873981689666005774342271213929816772757031889056202208995744294080613549419287899571152661344974342675304729113245217874129444922267528677761745125267538348626005440080830062727579038906994610080475319513005000000960206799026507330579001090972799321078874789812306018241307171668896780268674904183334868794820469891742269743857233147559896401653061428101675049836782495651621591981388879338685139031821077647111221392081733326592796454598510596878885617215780801530895041344641550806371629921666062710647139292879038523654400709287859128542212578907089595150150632747360965560617655141807682436736388591827535904088612330484118381986381459300756736509850043880238020867459184238390261834891907153127511608783285607250079469367241852681306692657978287994139753251290386309986744450065585849385658606895228271393622330512751835915977712372125496659720255640253125678985660541853222403268232288479948873842404443015415223579621046122866464402146759063773834247847395903405902457302068723171031192928816336172987452558650143152167498791687971725109168563448690671798136393260826158731331212103641868993816846250951352827905202634640192126818223281971576409844120725420890396761870705280956591601787592755019262177402899111860755539434577486205620444904857635693397069126012570816990377202762022239919736278191206286231934196499891880265599449020749814122546614250037513423680750252863831634790709632143471794311246062131629490826327332914743676993967770334556588934672853960985753291826891109065685587924911454903668654203724287502007957472838921976479461203170189510781477777419293490398411870882350153462608172635751217109326487877374033461736149976074372572439707022892547157600332853240588442436900569037233249412682295083176885506676822567048339380404492278414107344938732873171044620191173774460340909283502495937567583168068462281760702955958957510053931186677063551262749033573553456702416471820768649295702321540279841805258163462858625654576599205429538136093636155163492300026391342494804803274959173601004214128631352307439546430543816845286391657471502607077172693093415202428678826802252331225499235827472298627933084467873430060029026157941500460973159470275877451417701498554619815500824732201755372940170843326987226170010326563310309239405836920019488953974110919171157461477773204879631617325075519981445042410684906972495520865326857378065008263819409269889751904597323769249213725386976662774974460143345120518787319422160208044090851852764869121344274457884597413442238225184884184246723968495178899875575587049996319554084280420309480878356844649146539925388192981724235684774870642682369555032862103941034560370697351433632028725655332414320173713632769484967069397220986630462730426985230317662762229787151555804883586819484517088517460317665085330895992117488837273559331861633301255401979584450240879992398493463052553451109667861855308411818938929040177144653028892144766738054638908101706314051648774812835633002055250781668556367018230404808398999545288295809526445349920937911341888185271901618534279163000174704484750885891278213342423873528610862233833383922404139053267203195754575190604104585879383871235245919510188359332939724473083055974751638727877409111812427892293959789512405670500172590932824860705579774096090746991975673927857972119242771216602721492298421549840507365852321355333252993843387753619114983975402228949224966868187504395871590960591304866520371336050310131584819516023356860271762343487051351170525638547272027518865457432008337831293015771900233914700442440714679416332238799138832191759573334213285918029472668769377162939844229006492593802722350479009116303828608244588476111026742956545318405449972089259418351743681269793627726516716362907926323657420223400855459634210785542133602027013667649060984425254545050833076468775482565587615326299737268505990641692654589256397542459292979969151269271395686936552309770988047245349254174395092006686214352955326250611824062393751990618857566661449323914337045805403775233726046143707285977887888873317975170864569189452136358205333573775191339028462890040524050082585286663629187884605734354997662680531425303610303689526823634663121272272924409390940433292029288150093031633542753961519401037717870971613387659642299005401268043606854631867995362470941752302095405737855984360334460976878024911231411873086287008938414074373268336069061792319822726713271468898631587915889806723172748120226731243369775689642084750292979639082243165931970427117101383623570346813675031436992927149786900060374172953354357504131495845641213860116667058603137204296880113726515537665834861389507033708784314007365519912634340413415982228391738732125753080337881257218660712091620911322322560467620326142531630961174232585328369531316843924492228293399389999578820311123406666130658119251125004324080192979388103112269172072181984505383060780678128936003690143201080570562727814654860891940063572728528198692370639377996700385600885654293001612012551477695000210656821219478963641165234308179914645114132176206052779651480864196665430125982226409434320378166824629218331426447780333632012498079843314408536284189238296502559348330430151019916331876446690152384426487335191146722738335893024505234215349795330754017558537991069812997202638749098050387397469979560533253935817495862531889905512198126997304042312627091905992514153112243385619429466064928400255072997990357926752519971004824454401738610538292117133442689824338001329272555891694079475360174361540963478114212504577442680467854392340337823213972606069493509400398614152579946152298337509801301359929653211554091534925453096731629719902233757102145069000935428851548810909281606589866146856778616709749142415286615379538578404667834381353346623254522986504207534135502036711155221815205563358546046261456762634554302744136583445020853445599118858940372109422374300645909027502810631049566754787393475481898850949197402189493128389930561009322335205611640202901827303381900865801796412043441297052275156982245279577651570166177759345769828843259407180666596743393659979846312023220476848920212844360310443048735867288845534254047667346968316315297074676598229095726142214294937917651851757460309906250623668835333793844119174024278970189718276088975068568230496984912104274893825024385324023005670761666897257070318853713747505147775052628378943301326398824017334489403844419044950308254318183352836491891810530023103009802339277165125964634287987980169839928074289024839590976951433269904623236465715759871243222966678936485095278158624435586680412429505351985042273989751879396157496014128082268103445964988488323346529116662523415894435242447071688910408964524211228611377961971911142796236579207998242518101212991715311611337821560648260241448861322169033876890940416004990858147623328242567782324936291364816373359466775018751356376526792254171174979449120468844095321168709283112759404435398245575402700080943532881042664242723592692111433847013181110320697553875916007274570367417633672758411108443171913962500067436162215384799332019475314483558862621646962075794098855817888363304153118992217016734811621117989261916304524065283225232313326890835471713322519191159401744221774388579782589216319688599900675649095703861443935481962327950163714339398637411551741509978678977900254689215910262723037650994166610031437005619571823955818433222820295881339533609564847644209679308029155370018072775904281481786234679069675970983126316357693810480893236784693695786071224071466830646804724757994998596994451085860944682940641409880071215721497718756841988095671627361349206398591323728690263221644690460564261173013855452300256080654715082286745240878828084311460166462640775732117488869589565140439382680173175658239721595612888065219591097761586014503165929902936952734863715272454384237908553408161987200241296244958767507248159344477163842468249848666375044146050217828693957683758354269922094945260579127216415683579401206271166733110605333758176837693255580279953851212934925889142102603396374723799391288708406712478543888064708173507028651458235110412170526196573169639939985220791633128519050528401706243009539784487947745380780661561806103793010045550188301623825763915539376758457500639170996108050420681099722110641876846259350309034020386044059322361572331641454849949093028470363542817002331918877099879206200019083180154172227686038875935639636401741548025139087836350921516832249812327770473838570748312642240935699703960430805188808008060168080585879515545769640859567116639666453098299942812323623127149026707382198035505895482879066577272886949677772756827183849333194974778003891727569808935555765810780496336956835018038728570586753964455502391986565951875872303112617522170151341506899176821261002979433300608938480559033480955268690618143873044896451332899297259932071855675576276669974358636483059009065805066047297237419048247475259292251174469350604803839681418158670081425519951474124051140949320495346739944632589124636301205896828152477873974842034729260323100068010074840821484576512305527221295584982914083391528525048991343120784082212825317723174104845592272937099669770405281594219623391161637306254587660987509034403350540649621225644416503158267362931573723244052327237026828796758036347178081194368529591632098507504619382585635889891381286228396723212012415567835859831383740952076921133969925376534297182925735749425270595676401836239856739260658763343528741242434230441699825181114120771077004633530066730821859051634761504377945228887548452132958653418283966632807451037649163715365972009842309055219241556632599792576544542138685662767674440525042260753770455469568049148637461400117512681421405843418792834340027065811870491441404194034383062770030261601427924692666785441341238068671974166356170309499656770181235388843637510943400837562661962259430047457132600959338385795480026299812910171393638105517803074388760778033236577696951710616800439088037425348653919856123963698616682304673891542689286209662816366968821406889271643774148632771776328337152098279402480539721609664199674760993048926390453120191584558440783448753633441583637465331743242553001856837106047595296218626496365552052295112393670656733050434858572212945117622706230225930309166963988379701159019578933848712392350030456825807620134804549368710743938370910899287030795582222461399318167883294413374005041324127724218275908522053524482791626728690664962362618954728834338609285271813629068180342610873276024500346481633228197718902920657627821949281581351241118537714975920114377956644646853454027960109046665498572943532360109511672713389518546144606499828250213211401059796863206142728586802795486304576020943848184983002875882810356229187114497250738338464269141933588662143988678190743030540233553732408286360547219824825660106646514692303244559015335216083233076160143340422000667607437535969677145617977531271888419092232679283199866230065576268210262283216127823288371280958432103116505254460308995291652076226381044762670228081667473659641917513733457017827099136734559490659348727919753045808403711799670921041607048570882809860221226712071158809444552070076434721237715858826614762805446206303364534438659467117238244457345740743098487711698819033321803422337747733445423997171996795476655531419161976903793550664505418379213121050439999274100733703314578035351138553622194317282241602179711903093567484088402942701155521519485196433193451999080996304751155041810675659698606750873855685126739056432638217940314541634931050750813806907760557100616089106245612118574401771145399889373263867056559191867682872602837765703796152537104714200992588553416032010509352843845633303193642677689578096433516343926680434345731105157773694400467735335268748626156001774786437179393703817666177211321851901274784446874472186016242435393261108108020436558829215393245977690306769651147164976547922203791601241980898527099764093146687143793109616222934737120846153552973001473725915030934455108359823578618090312225466284001358812990995791919786130038318898097642525340024384837529591539291491550647602684336838206792544855519724799988347690233343128779692429871373823027568439477551396796823428010998629183050419275427624899645903605505738137978144058845015345817489983235171039068188900979678332768029491573999339397066403802947085264371451159616920154247856838524234127118496215220860076926920318953388162199550355559934173459415557795824058070063950170927905346752136049796730034402973297092072730076949411541567555406574642599214252766201675386134542898578276114377226552477351061335555495289774700429616162677966852949716950229570919406837620855764327714377577087695496644445766650659039659629232688703661628617736364527234088649755147530521933129390991467065015632065753131254919567794239118026729357331817864380490869842741770980751922427512869295384136635952532240773274111885422486214092253548797167728807428571082215464347013388059994542456439173301462673235789679772707456286782798560030278713366211681657036674009256134536628900242914261020827608703897782954419452199222104078416898630869681202404295184134289586981593336510407877832844534170284270624866342223524672266715745934277707359769469042409886172931198121127701536025999344098206989660289048492699082209749885917692215222383412875652227419297636972979327813740884372981335991311935710165868486173330840813131668235656422243633669245917035815698399883569008589953226502407574283401947148381611593744466828760012749149000909657137671103744402763309959432654219420010230656554171956498975644524041782632560325643894275309606756070811362006746660963766309974890837114189971377446896023232418746789898750765151493213190936347786965050991079878810957282410849631351086112739829800093068788429083331762642893284573978234285671111331198444575006778660068482225481411180809624342459789787811657028335508600229679525020862897081604587632492924586257919412008905246563039303749293456409864405571516900504639297474498768427618334148224770456137250394805654597453232043038851534680193238878155948143137241929915470733761233068789701336430350618503878620715061363840191388038445424203999358348288901764031221720809107542786031274672444726017702313254107395803599809797724604125604997249691691240191748771496221987061097003925940078141402114535588919964910062526679937659095848966226115777567546823418133936620882889001304987329685957682673219666384964386781397614645750615316264075397408744071698470821937369556625192183296649763117317264743229763437066978825904754598002121050393562714904803655713354198705434455732180145454594887694826149839619491398619764353494367301210398459754305154742002076417074566680838898691791066208592466213720646912161390355947775810524549583642121730255939962336386203988336734890715620747346912074601832922587312966825025987824234273085329785750286975930821418298131484055432302629193242418698818900357805344244747198239384933318146163454602652678224384836973878282236090549783234856067295979703979458428963375016486501724802807266591284807213726206281130418337561721954070760618353406919236618447591058254497732388026903729444083317000148427199036718777256746364215593309845079242907282298119296104982584461177150647950106002369433597939753356587102365016485276167332426996968544152063272121470846102992901477993480805799604869400563004016082292462605750154788685574125761542082079264674684648445333157712903155597290039120710070453902179890792516149881327962924135146661451737289622499797773302801288981741036389842249006083987671509230436225570751221695087475484923301925763992093409205172805209001180420097319765653968746371190742822135173477886677881307446474708736250837810676860505740498675811125092672094350003048643451962551576010467365326594178357130985114457502358125996992641468175793225988718601793386480094937738080637965548028793593441784608309035232458251857922395390167766951160925521767025440146103870163668497759972935395637747896781484621981836732380667097025895954212588808297555928445383391292555195345524912085609091499793944157812090098101574434408784330059726561223638666045861167685126951974559254248018228791287423718044517351151998475161967668103382503409761254333463079690997058967882355717289964747445043003791419017035630225270402549221837497357286956686545831832159075544048063934504804384148891364135308031257138123793211334764338420854406082349625869126291517591985831173681626956244939292621382277680979670771414596229307634730283748526791044409845817791154673821977099738685737057197004618321083701790444961642641006578612702295360332553654962282154170753995272862448817734723612241616403310888389462244323944486177932076257007343156467819061532529828999430879410923497478833200968739834381156108529988090529087959015243916398379687037457824932455586895998565188484205350040672781390993659392155375436851739694061817086908083735858408146188609325105274553601627994889042857488740269974115214273650781480381538909436613610606472901756052671839145253378013110191198373095452129708721665840560206682591990024314446236172873484837263356906435488945152975676327406530330158252618760337888902859496162520189363481936997142560460558304574065307051360115671722743241050151224367606130600227476779355416100879328083933523404780593726369458555390389318974302028306326136335055104861000822931049753645684043617944395154805249434594653185524911126036707080531952263462246061337572099315556735844783812503631086188360563277983144677395604904326857890595208329459309613935550642100673796561825960361981009774100978966969781070125987003359848465616815144653888777494473321993013272483839600393124186209648836373621221588708198273345276795107610244103476978567701512870296979768504421348581009335172574069593419413965631977004486778455355940239923770873739386163985824310753935394140248138250997506862680701236109472133958036780747238245479820803434373556130040806800395502659774453464449322933735048711178463221866967071678536967157264798358822310993672665543444616318640578958776034670383572324438983697708947534974942525444477780435437224116977635972323417970311141149082298032047636332059992763158877554297587533997073443123174713784291802195579510114828814929979756075015541171788310703299910601052070182837473410858880215928996516475480049096630332235592505419105819227826903004544232904339191715256881107589203027093844823706157667203368478269753959664947992351056911775356694472462907244788903097168975849944186804095667223697374265037589943538640916380503157518201476460027907591211171876070692076312614869813799820076004851737794318748709790097194858208448159123278929277446274657090672860434609643928892387664980834464350453459372663714842954539517561082621990897192719378531321339828860884127804575127328496498684060967494041729577926586816967038621297241480460602452607493525577759470208760665010429365710766449680550376849526472125995084191397004460163910857199424900187396430105844957636368987715030811686358336107350491119269782758152848235489239059444679812387414683771515539171958913750382811451734826472130414508357047537182715884071879250974820268096489568058716214499149478320459826504425261360885282375746736251296438784552606121385546872926319581579030456285897978238125029363682457840580173592076882327571578233869214845309336202018925102099452595248405242615903718377856237679694365337677966259068704897573482755937354198427664149182619594416897460949034622186985942531897440399676865593591509859662698745970451826043169745435389995711657920229690162104297265298807506897860194241061072844210232988677744710510209134229881927754496747821832698524377172611934293337186652969768187327900340842430322926602344233795038451279223859395059275363292803904599953128300737665549900120249458431769980995567300625546424980893495992700795382235866146556882015706851602271218053152897632733834383193190326495043916428427965043317755346314950110724669591566739843928090165677557226698235645190367957248664542887816923386270120395473133997995293395338982844878753679588459832760617498845922105764490361775772072525145868093371839366007219891511876440606450216481566500358522917622722424309764432161056276432316705576442104904882515309927556235250428498729960021171964834926102216932052012191839189639515682277498360996196597577332587093906642861774814949103621188807556516581417005842365728439875108716582880970605335696942208145966318388782712551486605543266566360071207481022120574975883327006940669605626500701299925461007514845135722447822984854106267481228475538258119260911946391964980862739774659733083623210730089799653678308912368224977248707541885841944613271138628316287513739034098475396097254758915150249831723290209747875465046205646583009551266565597239697290392841885419333190884817280306210204759903995025842134048047338975619310287483955563190903514262578026775245165148447425499473722816870505633739040183253837274429093673607022650190552997175422221506863833645815290133027229855621124767422230702395825054012460257806124561768592127399910584234634428633080424855467680779643346791990168191049148583949975101659841924168780894299625991930638713594180137960412732827522195048590983709097604797595229169081398578190562722673464472449302910046318856030841117423845425092981115648652903226057387075723842259271293743870045485894331044981469538633500436124381817808832231638010821905913800545926528673780668442332983985259705528473310538739212927892897675496492367466329802864337642581452592338513583644627185661933493393131685986226450195265583304798538369125976108837909053178370609086400821739231051644179542579130619392475644213711336888591302875976261197802879146791331412995111349381511979281927367901638442437587528185511101467020301909532200899412640859121255724070634718173421036263750594510687633804931484053184740341356155731967566147613955762774170498008214221099812076519392222129155941804807986572027748649183636869743123311317540452919151616151483253411360544523581746160328345059737811073577823948483496763208020022578029633238936910525283891894172526396247741348296787268331761562099278969713473869814099117393805080159100668724643694490796533363277244172880562457660349796767910795996243919158347878286373872856980421615120146901502611069749076886674206729265675460976841770183879806572602036491792382854939630422910255554431694084308634833105978361655777607483619067855810925506213703443097569947984980225903516579181337640332578785207678785120464282089847390197924724591864605983145692552427092668180007047880169757011122194163862806439451859180066330001307929618643740181017308360668597933064839014468505868981995682220855066841003021113104595756323323207960096128515041351047586055377387595351665057016674312593409129010868308516025065563894132915016123294767018460548853179052907410839327395607207634988975252082422841363320857933849259352902667634238721547927733484254642630483535618538358339096019435399803302572140004773441105786268901360557614563020659673627333058891580406407194148817964651738463705282515269916208635175163025848936831223285558021892628662617543908435215915663279732627215054461309225283606781298528203091749346174832030651149452414575965963052349524965839717641414597536960783456185185725646228736702708512617504530456377061557451920512369489600937138469008313134040156579305864723441626662123372990255361907916043975130156327692151334678892094690131635888365463756201277044242710436375569284883957448421235953849170907668540127677278065436970604022793024247141874180878582211365716045837040307817785306217659244782626472700529973625869214901723941297025753222204502979329488866360653113385068460498209554290390848077026763311753332573421839923282955786216822530347743447558318457469163563289648180277771047477686966715250821397653939518190208259837863448232406551952499917118201208563775548414539039898007927938129262682999897769758554581316267668373600434047835840182398465701288974727363045745668161586178040259293584253729809633211072504798389500644904919307191379652332927257911802604957191411987173427141039748621379186522192431862196487023504389547324807318120903181048879959444587707733262290323794995707861179488998303979618172326345727570328065007358384718392910449569723668602042111003795721388710082161194840297391625986756996453174058395844675678321395549897484903624624694290789062607844063585791848600003635148617064403313906352853856537126252807967664469654597380799226596284147613304596384726493067136157279585242051872578339479942373161238398017539163090493262803898319387261712022122119960566460639509285616251252112698341218202867605694236257297583198210045227038188419528252170684338780430614781930628849954169840993271113743097513698273338371037878622661046585026935414557507181245207100831967352015572879476646339646403620037027624870614058647272643290164917920490405911908469020242424679943822006252297819403742760393460855315833727085964428507994894752177649009120637217354107606046962744111154200056993298579494146084842737167241172790566982098361873516175746120534408856664095367718288768328745366780679189794691036503670029667941279741069315296697844510400055934254974678850868436786248350117581636615902143471309957493575480031986908648980191326318756569575965338409618559183720263388296917753307928634664957850101041926912851643522808866150082704727699434590970175939162066677176001364657482260836966595973187644827350965065712694262027536798817383222092465259028680924015052941914478639593287718405517484074933955139023546874261822922965125392296892945993559318681872026504461774986616772098486520302275474988445288590879996426298979774981062770453425971597022391541879626572911410748974134490578693939143010517602452747959731496825814404236097455031901861516305445088582541996668754392308475274793819929178734403325733053209722134004670094181645041382990939548969376289214323343289655212059096825487611311224607196525607901885404080570847418743763701032814545712550865165409059385488959806800106161513285771643381838277470137161671441335714180652470373680277731827534366151459774350480073274943962546860894141621931941446068090403709808009864698169657336537508167334966372637439793876441185441917472334724152036858430854370696199974315740311762458424379664440876082364177069142422534476833237601847382948596182582224749109520788817492950866554926804328031683154640491737343975777252842415995207377649054818358347768666603381050621613769061397188224012125376295865941605644451503568428526335575147781742327922356563426387993954293399874331894516772625053938693317605945868821513733899742024218374979424713784505154483871897996769527530717112090022845728460059668056901134507324692911229912214673474539784781239589997815235572768146036950620980991745749902605887369484275806505336200899560608690390728357609931745532683135201620186248929118259940270754930517443697039827429752668073341514429653396802963510777957554423318702972495514360511549229691695912738239911636251677721184887960791429603992767428100256159017031133529772204805023129571340030042691721082432368996345722312303945069047918716244359098558975254973606547278740224091987934577921265917338742415544237336885731380624932856309222468212476448662089481609928547081104476016552587980263267663205728256641222549482504781283878641353822163387434730626926908490616710929385016883664729922271741853575298647008668179821833764149458281459486712183237473612459903372250247792757543145110118540570719093471414252423224441796132592881212688738449668978803891936681508656140951968924777610859082663187387198863275331772330681405280158963360004371758532913976149292689770465299517452545886228232057861714642600928616192540867762906805161279399850572919883598512107302685314334451042374832623630794931263449496540984193010288721364389465319154504719059959983137609717607242211455548860200855859519675938999993031498537678255210574772772495686501529618794848898769662382310364010498504426198514379491571016266322163634615696732302679377217840913042681295003135464839741036037974297550562631956444241296690854606507658032363833059136062350008463502331008809136433908350784934348332131402027754150557851503169705480126054221480675924621151742994795954585076573469483920985124220755381733725274381020215426513665106826513105175007910913586984961968630848537775983467859596899561137050074797336171801548514892581702879046219919617861498174920549715189175179181433777778117969756132503284648346849086543147483349630802708055272311882111647974033596980045970372085251106971554906062392645152256574976591443491588667964077471758439697993295516805756035514613319954603828355083525885335412097753897481200495324299841005002100523410113096788953746619978720508493848862279449233259685151827857377981265231161432800987476255854614876311089603277054319188809437637792083279284102222567657137154457107172724777648162745775310520436482398583640441237909866180690469765262862715109737560474618532936307477769932790011560968765954610507909106860021530224664418574127523993002839021540513370618646637961560345651555070720973843181045716888990031248064959584681740959729159276441691803160882557129566975535208121270052571798602293662641382038771474165204776253807452356628871773201902955258767820934559665135406530763286387835520793143098720898609012927339785865320958046986794293365231877893103855096620327818768317276373354034891653099400317039673827861711401948022420580511998955283641956088302910272047532703523159342402299886444613408481221310048342895264406761696185024175075299605716542618947249718237666692453859276387035808133878367799462592673926111275977711476799337620582027786348854833126891688144426114676327396358701933088842683261292675201372890994300245450576992508628147234918237297313866288165382169378959915239549645196831760572643269385066127466929536849139305949272372711302096630088754953372705902642828652860260817715186211332024691877668972052189395957171920804636547400037304268917992929538994483449337327296885469102098185573157994604595717960352850725453853376820487790714446386387434448034122891357374006711046368824994824395358662115808069830868393737413907142252210123271694027912440880968004434636481873278882321103509790733659673530139203081763599594560598988317356760736715224007971908146560031878990540870226814254942130267690812514686972823603075877533612500700519677181056301843472223105891853781539482435523307131074226823300317849370765736043001154472413225931647221105386932698921310622036912209699412463189179446806690084256444573331201351674235632980043852961722992351274264060216761463341252292675215667440476929726424475750897106692552336862446221534284816477713970798651303920408624494179467952731045230835703864075319816353943628892319830464300384881429546973812500068617606469016408832630429903009942832057989368338578324524266645478876827218946441763373551042808055859111960615908160286594027247397743839806763015965312036749551632671016801714682686705422803710389235634735005482995208227167794286355935928854262352902572240708123067958692278302325100741410607558180485660639969614180493349569168905030658623659385946765150946120446543668372889385741637628643311845420032209019477460824642111916866329172002139650335949085697588431524786802774210093571650939286532284231920204854614510456537717144248934377875917260780442587723616958252087079334957430526314388904860926225547271012422439779102780043546211234305224855687947431476369582277372453917961424817526041051928528905867702150206977665125340887978170468772524047498413168797016211526907076053300065654301220717793080384428530961868987488085831046803244697494141747367858984203335934688671538950014155480771714247515145261211326117384536806913971244769184140996849128238283133356796407404342412076375067779742155710083446255614478585696806345156807262007782587296478306150204079860581040861344537981921357665211431138533907815962038816682537446807518813309591856137975463837411449826263451738769082624570230172309582046627717936253623159810472677797897049263176205438020192669427198377563194238225917509699578590839178848905977798579753424463857784466867272043014443472838339042991370648899695839001632089529321475171414276158812004893092813083702539152567235733803198103068749136563023562402991422568591328664538591520308373332598957098627631964247527394134422633919784705152989675673604774299088984112123888568086953105195686282954827053097487524363043860934346781229893544293663103589101567625154225420271866439473700367538130132316423975052341785119420387971728675041392931886740800457534365721127933221715593508105765040014423650684424057633204938920314190074660259485921757344253371912511236310529571146976637575289282613574138283757552991841620768168407168290761666453648251750822051500934171421276915908364558855528335573307053204365691778113051166820742017442801734455849231019855849028460997039900016843322480658291518384169731051603168502940294922684031402685611717924406399119347376777527493424119739050632834254457707366319072878544290789717764686620181266350666144457425666986386444009033446791132272296047107884929769100248147886134431054990582695710343609043383461005322142314604311215455027529063080782021483925791367536064648441152580376806170339552279904750881988492158830093660477497396413288347594851139316402575600087151798412125152340636882161160126217434590057672781233917399750997569143629652000280022285407924450450914198421153657233000786885252670917497442962372533116718512328491812239208561374750298499746073924099997053048362006605797431704641213195550181650975376730646445518230604305524931449154767363569793034032742790434265682922897206293423607950438157913435002226604137389537248891633108855875558708154364239696138825800566779457583381032695505711075699662082515282526519742931759226102055294693655437245708129857911419152686890580768826367501840436937182115043539936294724923506190495457699853845186001728681149604032734165120077378205982978855750202102355079247996628070055724624137099570065698608627885198042394724529183713827713444763297294693675074581195183495942620722861743439687857660419802284188136121103815878132106873971084128136782660673207800030289479348946388004699846341195556939005470383375651326552353073268652848976022442832894642676533310475050893258593276662458320514305697431030605682451663367495565933695018021219936009732250981623769780894372672672739304824575815930340472075285293657281321036467110131559228173173716041255993830945706427923443343877026919609855343874928732790248184656406522890060382627706183599152418136671873198785965038022917313229813550451756465104043648546429785629996832711835570576995928389014923519522274991120163162188234342100209303623217411204805695114837485250106334945538937730093002025294211783018910462461946438333953809091156796439579357073493412921270922216009568210909495613829471459255071527358141517255688255120104025106145755824657014145357215074459579218340897335450639563996328376366027310987185053194853367464811127643640088837785059881827264317548111514850109064888577964982746315462304182655476059407447328511418997219801873186927762081562840783356323069705532263675952536611827460217313497024213032919186542559746205962019834962996185647451146398260366533957552094293419537068777335564806527694210334551274487476693553026626290424365061641109402234779845813029232885740662825652675581923312931056219942731336908072731159742212296765346109084780563950442042429888861918519961797207738121368367368882811020701487969212723563592422236897440701533429293438515525054941880199127751934591136027776293384103965596780379957763461792164672999152208368086155276376201654559597696966856065800936842639427935249627661866149647063977854594754481012424102325534812421001863122840610164559718580187668553912329885598686137284075390957408531138661561234639166000883928881833842893522185913383203884304621743595185946950121998954374682318158434314228825916772051672717049588054525374266803760852310332877743299600326535460008401870778137938591124986950462994105503567205164250197185456815277510075137402374125571704950783389771034278140568544700603610724740913665805797016991418609915596920564165690626182770439693177076237317756961757961689415270155133724078753341224296777277408868879054177317800955573374922073481675917571447997610358435169633652375689771767480766623559289237098280214529214389424885277406627380429696118252579402742443934928497298335644164589285228594714702709025640080783720704669365966339564077925619092420525921962661934343795195908390882656206462669970509795590536486857650976873133542000530935486402360103025002469295276899765997435969462039202701122788063098142355485028877795988200630013278066568827773591886480896209713988848233061920600330269149970810532965555669352583201332919493627686555171768441613374297636455209359450829924187420474743204618157101484543649466187116111252902367877016044081079771780030086890606620338888689335407422390638474800681437199712109519542385784024597192886679766083942340141926217352234365300934628144167561567732645604912622214875038595668489608875164176077683335435261065774030531248108363361818035493838460840339888297882166782060811739714849464009122572547928836195333324829233837184735833589663210816279572870134776984079222278658573461481488493279921304382062117289569194209059520242153535286782682427986404807679964018202428566019433204084033266431750388322789014281151744747010810567910737484669477933800098045497099580595670227137021285212690711380607391859000752473299267838466791949820668879952237926897574769359766342643379991316154406106815475336494608711751370565290864304033843372818902697977237439151450193056710921070289558115780969406933035152074025953130851835705403948448098247197635047288495696996377747843200764958703889804622127194150339458383250826416327270870877494663382494386134433995154620930432087219887573067299554350400592374580219867842140838960948446357338041073888918682410554518578251494119257376739922203767839961431061527798631047553086694085007920111531934406827502777710651032433813331987594996239921234534359862584124824940401920085714260391523268475630103549714780585145478847241486612079529449503160365730574073441672362971123780595615294544710572584425295416707949615565824205328193348383470938965000375424324798460001404566762218710383874579973802350200695344604550972391471004923249673416711648134799335859153004803768940490857649162895233356962908851128454069731914527469844594395022074631391128747309272410577755748377336702074924180980282212118952542684003394236883116616090804697835075734164148416572127107303995734534781870868082070328140787042099414240079955612244044227708539010658827389480542151819789859100136659524797626060932614631765556531498324714508936175576844153108692147369676074842994075016951124579176435812837506082879639111260263543678459342899705831639456027631974085026944754773339241042124607000996501194120652222943470515977219566124443965185317119124096552521692309609848010939832109092269401055552294965038093221087228997309657230842586576131028351605848246165843385245873485979092526635976722495575232960040428022227971067729721774128413104109053201995634315203286735651807579769027757361453399039307728402754185989175158200664632551327357426830388961062221327354014544721608601593386064273638115657200952509308895794429546176893114556883871842994160162214729451488465978934449258927567109558979366465872334207297709624305249847071120724222818364953673785834916294269353865860866753301902206958392359696519729665620834969361601046103938864946258092701275537908610849641602550584879216366628951627892121035825057806791057237550188115586522075568456726221490678024970032810980725012149455154891090102144619880744890227305374724814033208793330095042009720553202713057008219820166290969125608211987585599315860827879812718222987445594092997339311234982258555348829587932651950718519399388445303038341261311272205354586081044600748360143098719106490184784483043107395128414317192512688464229206693050970168127531706998263998595183887291090682633117685286206342905258872417718274494914616138907940405938655213003963960496483906650993882599298918187335828664324331162507475844990125049470844156408160180927280206459479639930430914443026421682337427012464523409517719992461642419137202169587922777199874862883729625715917395377816543988387038172979984638612766347576749755053137417334071769916069067325920646035095798073422970309784794413611828799316335799584419992300504828583451274532090984089514342395419923482092524267565708519446523812871247356435564801089919853648641016477965833223673213814872599769866792339303572087698165254011359983318244958109176004055879930768784262730813403808850266018519412378904106849250150121720433740243795379623243148684498151344200306262075256070857327251595963138673242127765930581609356722142239451260167234565802815402001298604142372022860453179661647794863599798216640971144267682558184601034733495911296423509375939159714485226479270986136207236701377622714004763789252151544201184721831950597655189876243629687240441328440328833623181837147849366856923383822315498740026818617502377241368333705001576074663753698593537965829607784547534872176621078861665283305728530551954552965942541835853077543180783642886243855789020869841546682975669784918268035341675580172567355802519984512657254244741704145203277224703192359094641727596155673195216968629178916138027434964785184463007553372798363597855451062148443236435815472785576757095381667658022512548260449460676549783718347862800572531624392996546486056497038638699768530070156607776463034704361360800749415625315541408574064180025287575330184316465079957031339647474633488509977395983281011076897058262830699735163754860156813769077905220187990834824367244953043009389227714762644829232749060265172372259168445487308789256903650590872398605630957489905300201561308572399964786008527682760789156676437860712164909967128543387301089080185319962578672288943683695021147168042630445406132295045558602770525499899288515350548257541454675373942519199262107180480996428487884073572621940359870499631361677832448812382535770532884561608756469308546411657888155001512646787693261329781352398067620045331520027830715480193889674664371115957353512627468021738848938777555679776260034973782611311225604401197798967707923896337497873457264558184889018393124787978115106400604161944657455216690357988597606146434015108864128075635741279444701569409034705135651340539615736150592332154656048051141094891006971316908641880901208083343514180241397856811820763094674279404291961759612560644460368932776788166124856210793966974931175625933514034388777059950799225448771444092720266699046012790654783780452970912501517200927043674245183127682533344868083112433605131217169082353867488906628527114428677140740067536074974903780604787396663665761741831153933042788616377690025951605266503895349154616884324698565056275166080913618655041443122808750588868789614524299637993393196207763220765116057957118703207244991283894925555290462519193338892336546343469705007406033811119588275031980842521296068004954240261211255428855627829278788554144102469357498609182570023515299603113176017075565451867650489111506014592940332104980248926826638532844991680462435549558490480384776596118095647173681960959791751731867754067515336019028386927637561119564125277508947726605613527757861036763820113723437569429199367189558875097943487507666189472670271275283377987964249491836000565313044622196582315370554146055686823197022086984505151590967697611701766702746791174392140189557971657937306098853662104251900940749707193767595561512245597569658207266000767719339863401816985451670555577084382249637514796178655600085303015301956559592201162767562220847390076287546847174823809667376029656081641337494545342655944044655085673772218808766588632042226968013094780738741921495362543920620086954736807885634339104291022006775020411870399927232930966242279702383751828170083624372934646653207884097832627769414648765062456849902628192886354974920326888780648119454136838829583625964520555197184556683804675134028544060847370830410006672968138370775214365707003524246558405352845352902088813130993048401896775350583588466535374667230824675260097978702530304575459209296054910837874986539046269021664450864470540831467791192935865966721944209452603591166453634054212692807200612286384507061364514901099331724670871220201586713942987556099931731749039078394366334431278119950019770295182902949244741447860447924849789760616915855345463513853083003522386838325661872954381741525305513985151254574260960947891838975198458297965330073293065420076521940536566288223808961624796100020247312813698826901536995778722608170565886247871052882866332992483548807762053247670711916552637659794316220240861346249816373379951224068013038626427803915091926294778633647830294614838895516477417914411328517052299751541220838266888361189692216642834334203472303314212849072573108774103172553576835187462985461896580152439783493818632060620757513523553892039686798263157723757550052614114917173895489032505179187412516866011790432142121854515139406707499526537326321653578674863374105184219611659502167033804752252557853590042692920056840951161416760086791805816640806526439763934720838535884695296297711753512122593309095321724785964288940631212608474026534625493767706775204653270936271203931474889808170655406927819668097847940785265941914828917369758428181694381485895269016049708540503998977997796100930187658820354407100638004243021079663641507807922004161646623148433337572267308249599164721960419249625345285662983038215275538492900346759777964011285950492116916683109276029215367233873279879643886778549436140301613301908587370643066428163015963999440612219934821579148879596030443026888042635472985844178597736575210923933139029112957744273020280857036898794650238162042611239558803687179393458550450675011317341050567121659673481729070717057730558479469898055085844815689784585927968217121750611292756284909220849965349782191812023031802800542412703520335734887894313958559906729429572457133168253116303232361025715383501394239597716147610080495772928468533593673789997201134407601373621059079302557915249687441185140262533266443752469235310139183662776961974628822583186898987401272314831916514112570776422914075459442613378553401769889765602249454844631070086938987201756237034544074691833448884497953066004273806290838195680660554724712401484498163463855285316471683529137662175856441042876723653584450483055428281907408272166040661491945463557459516668226955891576607210384964898601864804929827564784106303117738806404013783209329038422854856423031366358634253418820684394959729584138953560062372569584319685819570752890887043457740219898540394602857575708368669951392308399081061757709472519721384109818413207764927899098672430679148593341254797056116050040457359149775130640688531260884472796064130131808495627317024897623540238846286030920714974657485297574015937149341545499428091056573882577998133767950652176923429363797380870368288997779204543169424197389301253832130100465879291832854789462250996195899271115317170231343987454453807441451248777778182949215693395757653426080589102283742206748726278044725454673715883163529431511665614921305758933540598843715642390168597002708605501472137565701506573543461876399542316946783704001480829251785408625942839314607586802936327285940856502047543321546298914192107865547286281793082661326019468363815537617906594636171405535087145924617435454355420044687848069623907493348257249766022042359686584185550627098336267137232937839937515221274187409303473998609812570727184075987185248811769441935650190570107581895921527870395656337522032348795357405959453258912266025879071896539433544332002118948130301922516561267608025643822234269282100114588170889278199956742151165350755620045296322428725511594898238888172525674602061004331660540255180662620785988487555003788404435518127610325484734062465195152206539322794658641034541407544057829626386875449548390658882801578689818062321832753212251653129522220740877408877108480925530268347841142183446528724418169975727808041439034067470102702030933269284335812942800234913999084169949163867543321654025986381282213872491296855608100534490186720365169804058203317471555734929726472130297010470621460674514423780306230850045190197065688174685837255063481785134132365494731108858909467828343025517836456794962223184112465907751838868109672415173284136301825888909454518245874592768082227422805863202097280867378439211997832437191146156911331367839906451523906088250933739443664877767112148488260877835874534927148595453999332684949389696842851253800961396599173046291265492437242749214887954810448395962725332734194386687345945790632257037892704750852711368594066707608168456278037012661310034516209188727446272110643869866154025791495986363327141035261972356405903916224003114336233469048140320668421785247649690429914859837766124666851780730059908798474069274781286456447790255267746501293513112625171850776593090414941995281812313842590043723080031470113120400614030668920528518252350508228146689402032674199468084736347841278979404917532784894802110498927011555663343668986951660291374166866310582166229486395739724301547771639929981519270464039447593967195434003316540391344585619213260942218624518035910142634905066812526727785971432469399038580789699099165442229988937443044862859665473962323263354159163113751693479715484695980715211925555851986860240347938468141431273740785144820172491815127674449269700546558285171473794294688865066962616385326729990165759515640859665321551915766130458201241606162170378210000505687793122445114955294071508913543875534796539124600458818823028472845847077539855042277759544064944894288622231574444017363137038083411563893114989386708349066702334661958619782659297692349246116077979707534493052681366871473871111982083079829543831166193516005413636912004872865993590349324562939233192874859114356294171477756013798619595377031486980142944031553249240509127460434939047504117108803214079914985185117969981795416817300705232747441120535100390283996958063781883459247654311594485424571607112006578810153984418748535690020624469001409870407989300016263319658203187236407905115988875679828375005443367620275718430363301129856970374164281253633449113792669487424677830356475374547384761374667590022739587163644420707493705062434598248658173700291110443742207495111417148882050906520015122952720086920804473469651796837639639318143689626340391446900286980326657150551093307550100134976704552831404586540867683259065390186159221955948693406759046216550341008242766259353666165331792039221263364354090453941698292232219316290338365066644571419680558363386478883508591563784607774362952680392182776380568237811427416713184423645981796120822793046980112794481296631411835614997198958927147397339543353802612833742007023291723931563898567335419306364336747779302558475633266675413944393168891186286290640290854260905942691731056236141009464675992160858423994247218391200663391769987533955368203579838595476445588971950557495054861499491942101800754537672029881153158461318353166376295616838491273381959710267285166232948105222011750928548033669173502022086664990656855419310922603090495559453949721324732804971192076058743194332855696146824626558319820532947068296683990390194002617887033697381937473208363371173781360138360542749936750292422137249621232385638833498052318681061200481787155444601117020763759624684756936858370628144654747273245158597580262306243827780073332479490890503885705384982414423034505710822038477271738863313534445415104332898429410439166190429454053552394615773026652104671905550286656844011928776484923620889165356648512881929340744466733406677850346973351972935486480812021508183273119040637522806298306709076144287015983207905260853631274971036190570971280047083431976173830174180316284418628152338674036890144740975752421032132004742936456652039683517231409252249509848485451138828166153379175817889458693993048281399516326530094737959975356000774604167140503128613568149122665535000061619568030760755187459097951886997347699005536606087148321178992801415322424677095226090094366012506427246613383247163740516895633377309160737389299321612599219404544526800893004217382135365196909891837651734765610520229672181725263884347013176112510029394093966280273691005190974105864662511805842626192468650095499766125225870473335151136067510709131100183924316433702432155268364059419826322961705546930068726692792746172680644566798969613737670221405754329547239131601486764046269327864108463335385232813101548429824091646117534062378434480073581962970886981855979871697143414887280123939112070714105040166495355271297181029357617797311732026449981263925519502761578549056250282080024922723005245184611763914403855409661136674105755462886357795273218150792491032500461630638825861424990864601897668040863102930474969495283134364702014522278806118580490389440952541956215933126734505104208822246298233287249783251008577351370644381203452803504882632568846469430363024867687368793497812508170868954880197944504628496548499334223441609930314637926498065690668948822218378006140152219292842661229791215862702319177315287692945968275578257940753202310003701425377660790953634785764410609950036878187687339352785739721519725537790195720671146454556680446126921328983132658417224668659126937188176138117533747546250227661259041337560299093103532953048376497900332986727312276069454753584174399591060762907886808789077904299646105572537771926849284484276856700287415022445522864014551499683146288429701785861389636796142208013284224372616912142338557753061537265461028199639574547329712633931013175585086442700500201303225816584761698116760411451069477737116473172338482878264112906907191448112129260771907848700063333878731452211993670286503932273617635639077029672188127375912385257793709372216510909676971259261604475071664109979796928330745728953244340406177905860580781011403044187872332600083665944173073581933084048636256012659414668812752465892829857491856173754573632145876473889734982348009780508663969438094363568456811260944494076424158393313142620892020984936782983434003529525645918401090439084508229162610341850605310756074766306375392923506669134581863548232889931946194056820884806460996590110920097637206427235895883085908653971207360326538020599625825577461177583960824796209584726367920304358135180658254663027461486537799028799877148067028370964511916580513997309013541165554011435031296323493271946941694596569392654720929558629200273987409384625414005103312488463519780606611243240515961351057313217064031227358438950458187805190599575742215898178978438339228839156435424914807444330348105687983193731102565245101105315725935214700485610000140304633269710100567178099038415355716111134248726515282627964069417830087259088763239863572846747214622161698914290270825598466055314685521959990322843197745185352138515052628488796254627548896330455825208540329258822997519347264496331339941537346809428205311544442065343949699957787436654978781129096220734612734582078913197794366335699290972550550693325158662297205096090985155379236322176084587989751336999168621333332468281114048903772732242490087597655290572832599251364869985433709130890021004809787933171735809344694041621174035754170835196655417141546966192064310324906468581487339148673137965340059665513624852941775237502260568913478073443896065592318045343507453872037355412171096491429044088523197695727379522761112496885936362991105205259312151161929622461881210292379183312368607555763290588867702383733195647099591806129692230697943574386879991466220788815621331894306446467923232085714916956893527666096129940689762513973695485549301793950162923755904281457078458381834540283521287354288682104291899400140675695469066459905791669505190376527541805813714624011024277117538059962219778075321967868238889965133019277245137627384333280720592718451226707737715371481461005969410601274257836139189893419395625985967267930351497469470264956417399238214237070116670505461702936597821515358400340501131603848124695005277728650175836046364623427827914247596227142768295345856649325341902228933084213665664150645091645642956751866491912979366127884564116254658846491750479744414770429980622056339264151830697615809724828203532921030194479965710051026038299072737909188338877554465776056064117243690439012533627991536229263236818843002026122605041289399885899749639599134445503666741285495413664618160789555047359845904652733921678796502619318370443310374362955044398055350924209693859038232890579166391992953897799079780766497165324392636715562980000081745336984663274293305874321830634843223962762368132799277073641976024944210477413994084231127498507899387323556973215519712690230879142275882698120270493569228820508262595627188678196336596265496779519960847425214491965595276854601874789833091375337588056270410466995973937941074140812025028455034130382721662272968878267924842352339060781298165112578162125218160872388842284863192633360202015843614060328047446596347443570770809530622285838057178973832133615038439231332323050332083835970662900871973767874885213900603688037989855689626983429772291849440325648166841760531162243774244996268706342065786790821367242775772685688332146951482324061553402503843742087472809412020877717250974921047115921254552276477950395045695074331420620878668596400652603906723653786350725333478743780202888616732684902742233668646357056446819099178909459567001896726570184415508339037014042901553994850573562905991267379645197798978438112057123264740507314954640833185861901623569583729922294670429221798181640464283583395883907500778800143991649967761608260056407453689773112299523545593034912067541087441866856445355204734282670149348736765943637617399058469244970159074707618288004623139603228536091452876192839354273183764290234067000918056101830663035194657870850222731432291796427890100293669659598929297014185663116435509230863270141373185419257341653838057399519822324097936988335486950669729566319087716968376177689823181291358968793427903370286389608796616361124472808052362365822654967927811030739620960844557360323433627602185296641319916997337935130941571448665835719708623803779608982181860625442718574607149421142773432421557131092508532948580425060366819060669538453973352729122150357285999646889906133254552261153335236883635207734177280636249919861104452822235412170665513606255701339902723857265481690524957738581907128577450099444342102657019767976489578341023585878703147706767516785356883090933630163217733000000335069660989009658950999831751269569420551003297470454556050288531329318724612204330453711404302297742470670355472873341693956276098318780057118592017436198581356748975561062581842889701992815666046051191764600545782309376495088293283264986300958381555960500969999551801493620024838722067149168575824990831840058578071542142368631092130877417822182896561783191672466671965030056667786040229452833427149267507177978477495891706941887494977104847465448447030001165454591173291010688858114950009749817487914456611721655365382670139556640654370992363571704385769322948118651693049226441993951499590490185088143070358475595149407411219452185311513986619162612063527320006398033888290582890830228701261697528731509455356804893824329350175200595331660236127499574026283798201305294408038516034449307993668105485374552778213575723021401905970365717495254122274489721102671825521443302001822128186399596683212438823485568991699845125304902194151904855797353708718002105408563957756503164891613234948172132160753686562126787617557120304064436414575935893515900796873550562235068009754708628793309891736339602663934858963616841788266862571012194308711337501894203471667737271516636530662958648206002307681952743753426393995969197304450096018433535263615793404422559239639758019154936882035478160482039292881174007666338632183432311199963060072251654744594081689390961750157329424999911467032085595839799718362904089107947464056498043871024137700847612039781531972677936544085891715034462574634024664410630398322038343430860488590231995552638104776065249162163904808096641276175297822097283076416971956949744843559674290559963751758588509887369187891144368219256819074106920117408262644969027297323855487914168057495870320429003620582161765124584838167197132774151436361510073924899656571165145495000737821275076268382916547520975963426593863398077159708045230260117450043296687761967637347921327791471907829839790179130486109051493368924920977909334579941898453195881527383220484718530598658356855727644833828061624233860472380572828733935622051511987278764952219854128434213523500921644229097830919300488228137916942114410771838217196314401812675004903236343713846183263895693426900915130650848012543394296512710995146947066484693970857969310627824303543433315098851500377522954198944259313532531674453819039576736353097848605453951924521393440137504736996917018596167967346002541718250685598844009175976368937049473171975844932424645442631567659966391022835316953696139334814512328504351250378590732750552231128597817769468575810212636689601160538839963868759112464569385748137947128144949709455229080019813387576533359603826556501554163462929502062307627003673348607394611361846872504639302782223225827703768742094624100549617573344300045125047835344715592832057540923464309505158877461844025473802033059166981413651083876635858165281193880971264624219468840121721152680882398520426634462376768394421428796361278563628020057186347392229354941319541996898970469818206391480171782026683185265816827997172570170204234419981017909425447742403383201176208113510118684422080381142958261574127427839683706312702982118330931072839091072453998491463719745799334682599239057166478371342285408512020546557651925656840618807594292776839781495380061389827653825089013829226977655543302893000790929033245146616985089442837118508296545173926822696837768775559805434608772800195909142508160131329227532663662423173950186417760136756163416134414682473253552712203659308208221160537942160924911665320424521080104274372458163162615233940348401925727895614227438190927342552086757041945024420019545758359575330011116069663230417850671977633341031594598688232348633996453528614660375776488438038526147684820269697673654496839137155082907256809993471168196280955590913284618374559212136227926810683002053642750627089255851464637452134515216369388929561200096193822214252644549739074769291593140129755725631032328291037888717214480122497001850158528425765151753581191873802143278725901344570886745390847513589172362917884679562284412749393957614920116378168976349257395051108612721645037475062475659721302020423356415606007677577022339891417731461356979760735172142847696926560622238454819272920548852370347153485280543188744042584929478792114940690911059906165238895635105330617585596467177727676795783814903933776850079122986924526093720205758102935544818595118692934854993109694634488318060767691873678969957474505228927994320379107708071766118852800691585357834917080733411050662571311058712242188600959869542883718153605750628540021018129337375328300613051281343752454320654588141140468508726198119985275244966533277638269865831552457514909475975623961487075989992880863173769319487455503028065735347649670372572067075181262603305135036473671697356775032599073069043327530022144563965759541572001969771228472881337716871439266999999259807715850638176605822027315174244690485723739922744812142118638539056776208167765804020742748178736471862664294194585822160811740572776741298513254180426129833112964167472297078529717109477256057237152291631793070645067461651541225295921405956559315754915368673131633906747178671318621693634706636429598388264047191723737293069676991393116359616301800057681463097380826295510873249676122327749956062208361757068270592973155592279184463816917225105409323715278314998846637746912908061959939929675300336083734674841990012097987624671293305308577256576489029118747176849911855579089174062891591503687251376812452671461094295683767031614025137974455341546376576473927027172526686713355988008760965532108898800904756506999132967222998064785461355067715808474535152392361657115966850374216734122163254352241491132276197962692066526262889199584411230840095631015279740598061058968490631266360972761149533098160554087789675269139081272947943314323463105099995889605212823788516862498700091314788165160229469559039099200545004162290172035031129020203767836541861577508737070014884026614341208600884545965032864133405960759250774629972435154199592484969164904563354603337719521985012774867563626119967731383961238265407812003592390846581889228758282459531981826021054445572534439072421573665361945435483443332805463845960318802967161184391532748684477892332160126971859154331127020872231152621288897967896267652345182558833695094467971712868628460616800203654747905634605903405681076610491495690218481189664055860170659378644653310060578788218228418277004532507708032627958002851243574689199455499532390581763957473801047752509085239708205637035668186371289721603348553201390618525960567354493707902494758001556454664234773598272512072576559133716202520773894755641447465917784721946591762065060247342531897579709803294239218177873861363445406002014126017696168869894589089998598130879628892991494835886615145487657878831312836483142263547722106452189748678057892315183028406282965575156030005299220407772808603148028019482891896798753804406590197339883628331692436360629674348306677367995251219910213374244144279551110427095565040211624395266505734508454124220103034652201436437828563669142493511038876807824687857646895506423318248226627328341646237137282821931970767657021848816905272437165544014623372342952768630913664152635886941572926929260146076449267474071808900684699160495841239610209638258912168275974198401780009248734854654206901033105527972861032204166208709371171371517535108201314547580431399682459693497033616974749338965836852891066016262878448990673594308450958250586190573705860833398351863910997295831058811925857053876058576291836128320990943218410617157293199207606158335234131396787596859649013762945736562453487133395398852963567082194730424334956098053319026905301142617771962820770287566440421918128022061931841890129122659499460948860136232774352437978872104988536842007906057639341393346416460230171200395754519974352723423409894340303579613147279554146502043714124414109960982594923824315149333397243454704753171452793395036573820282975765065022597291376439743699176211484829831737478350746445953570561859770387830702510792496176743109351166665982013409688676855021682327145809738356624522256238855090452862310278170850280502111892903108382030663462659203561651526518555884512553198326537838147271715654944037142780134538673771486941215686020494913484278584032086757547587254478033037594563310712095640159968355852092535717977142264983807967374904488489102478359116584010821943515277159112318186994072035609417300904665077369680497118826531684551720164861506807555608707993006456715880089679257193659746031861671004889362994933038931961290498226762628866756201350952949295176659359779418481663078518337457042528422177960783661879924895522543870121538069834901503752064393368610643062643886298408722082873768591287956526923269606766104529111403157868915938509334045590241838972824918221060006941117846856289286234828670279655181729382098089799869631650248537931823714304287458840933746693330882628550689968117030915790349454707781248663576088705471642838329520286391443361241701879018935194376830755839710387135687155119652541607369593919868104031402417962969749893074148203652444615832184309779356138694776858290825800421680078327503867278761656622536178590800503412253965348810199654621933341507724892374568214623696719644742139991796385895469623692130078527921155649570773134317303121628090142859092904425041758856511861285261780140461032244231151591371154308985886037299397864494144069269586027874971322810273922343283325721363751180048606136592256249345089215301788262852241464822332748059654044926771602958983529034758101246884995438353872133457693914353756122481913208540398964933273775137752420947203024201418080189107295290360482315692245656859270108278278458448077885593150822333322853200762555134960024822527087480003490668801909140812159820412563987342221167111747375691215427051045756368060515241199740703491312920831771133735804239241498564574631046953144610695731871719039340247877524243823113045503804807890304368006653518119263062993381069005870389949575101209339785438889715010226943004667408223145745274475083516951438629302996753125653037698751015681612903523647259199228208370816442456965009611780274139058487895185020552212418659007544915920967116450330498366841268622058618231614519163974163850461939044328616713841445307556507882636779199114766030918323327327848476299464609533247300151870770248736102645282486805265550330890374261531770467110239818933969236286543733753963675950449282123996732742190673409235647739465773102124837420991572952287666146654274777593873431977071057427789682736512413438528231866626288105666856093067016638051700298791262005215901969139731293696137521447503626389649552297043124519210250521611798213033517678938465412716687928263431963581699759603156114513171040965021570041321094352128929104518124256588124405929805616509467975082042489270369084193775559933396083943962070022773397064300541953342650607296767289417320555710989077499099586841331056555889286016650056222906138167895599688170729141729961384946250078285941653557285986860566212631558875177518078506797728126443945649779257855220526422959442834103326217188713546666445542122169086916685240849103917254759536766049459712843458748306271056121582634830413915484223534396653784636020106599178172291655120368910674523632891952644782833432035897755940337359754260667126674364206058456490600607298395414161716318282253567002117691426367758898882475470497051763187556003542198298105966289666126285470831148244021551031961038554704710846862747692447177821524088723232084110029389679270741539316501935906606719007614951321299022626457598328949519940186264110619258951476057039624870412161833311290149530011336310002355905577521322499986792483442755160677525786842243221457979882031513975689523582264336580439974931535579951135443238344022641606351807828603395458266007953238876652709377000328850006880704793861513437336336011420088250631862556298991686057913422393431105891282811642718291673725157625232094990607026734272886203601474328189217636578805250842526212613274414740659788502866767484474275339974618018859196541608505299618036958256466051656327384662687629724276738195198341641612081364192557326595313657059603162055958379406695794611849421471378974359234320047338476860322046863127783640284698485709909753712760371295986686397612714312985688595558333902392887567277166311008808373558774866360063209711749604211825623276879321410371052496652552962458952561594036496083368922429544431690432943206419166877857864014358498534622191177496520035014939705415033006603755958996157728984123788806063239804980824142562493883535614529846984211639950066471057702695592012949451393552898245252312415466966650160967092814115033011357466143226918626457553852534834010878859888848904763543821978414984543300262496742019480416785709281843083804289049992569536894378254099813638560027575882813347506480057565521150740395413851826651553113359679618047872055396579386813221325844790637739757829452425479450225689968101842293412933175498905127909463803996906308202970437509669939096109586204412701110079364971126540954676973904830689945899049538462316050912605747346696669949132061120091434724719000936207382985910411807824665355301339483561468444147151056923330387949110568171779537275402067755790037476107517646157622477250618783510548790615152334188467095257834921729869333239984712510153632762083551884618255583258348098678588225554495601751453919098344480631021445149017033423850742376652095406866118787587083036958514863586146081046777021923760083944368570425302565010981289721266103785632063716502749189215379965095024395854648297967671924545796790132739577643336678764999234384945749628676134342076650147176862259765957976014291424440521961436484334950698644294906752719413489114602088835974061460035972344855895133921955350833305878380638655051155036529321210655571663419833844242033590330396721102423104090711113285581375818575314966340510133144192689309210728572954948592242832661743423903200314200066564870090862126201488502592130101464254631436774517618272768327613356366454402974825477044524885660730082847028260403251232888652530677999852613526608231978653280755802743629755742519325062519632224163067403248856755859462933151106663203646793356895470564719537249201833453922711115187772547669811182765523898206801174422699221993109155925182105440290151681842013388688914731973470011235496641043879511716817389775172390373727522287957651950642636725608091525237287009360429256557581351168003077041484025652483184265707439584605723760411589227307237206653840227703730289757483421814337158765781709442879458559056150084422448543044491478821444962227214968347914435480331363878935465712122891694376126366648889678148627801058979872548661574422874488205408409382162168407299696224110376602845787459398322082317013901242803608943070925088737366119738438627574333534684266862736345762953479052007427558683375470233828021787649297394239714585353418787077069777122856852935151641576414557728536806646166141075490798218092262344906313903846713000984317086443067959058969395571387771999273596267269320616272971455809489217449635806081621949202247597398190751635812158137716439560702136115799694889096479525383340666553539688987658550462776916099896017823745889081490663046131270813545561497211081867489772714106502487848135322377195361956592319341859112964956295996448416450088991566254827845335577253775738681991090268419275583107006612221873772824248810531446238075575968124294329982271600624853022104574660121106713063393423138800325821199648927689764043339161177208161666774274216856834475150466890157515220094769523566303811603891584992159726661006965138292346396907466812514305364633254394105654897617060405347693853655783530564952770288087607911157982515419603501570145053172419805724462505899044815009405764755696086637740455931559788884962197393808767289821724195297057597632075717815358209595161976459541808769391308013135050802798216777835332488163002622928789834500749323875362913919260196279412568787908483134139766290394064285148275398204773560557130477449403050218744921840446702434763270488190799341043122080386010085049803530187187712876829987866762808206357108874879351954678951170912769730891323737327514947494018981600942319940513708455543586510223896890908133096646069274086526639390634362358787599578699094819627068889471642742683859933672336537209231834007168290168209417116515991863451834953339599620570516457763318674817972538122501479753650656040184608937095369651952537999028672405974412011427004045897533899652740973414324296043660914177176875524647781802291774326449707460966484547334409314540538776208353547616276974821902054510452157504778905754889472717867377196421183245148102036566242471429774233894167487687327670070122875941136224324017217017020622937291081018742091491068717221918643970372945180385222377840133563796573952411353075660284691532990720539575776404902811282397020015107014574711518069021282906753056892879619396325170621052584388761536318067947219953437468353664060787667078796947686059210697997374330827331382437048998858670790985161687986920086482192871076290497315090217681313991902817449972498443652468100530349550328641184144777137250787194440611909833282963466128137020645282500478697992247740079197954708175726483911282322083270624484174095266363989368682699678159897414487663341818937415168624684383269077690817856848272948552598358303680227960798887970861419188061888994029005679833390522312558152476189158594968804181780391763049312145476620797866406532487034594928554191477650663882608886106438108779709617500583634147743491324592132052034061383659764495235755048005517146701348527994545840294942889533619447236043652492688667311405070896113900436244731681470667757318053417119601498300141794206056236571646434037313861865848530428775147872314252571660213363805779369572245192288073983235848191706662504706772661024317396730615341887916643275661999942854803085320899476039013577919013930010683924272223763497901959175866570137303920900332310980755830701821739114306713499991021501725680625912309289096552087497655506696308690601193107170385660103665996321680426055553850627813026476871574945017440466235897772812436302536452290236406545684648888996040073412528684541227243773794508273496893590286373341805699879280372730751777557051777467451447852883386250619925689697749758161466805294261350396777117835245551964672015359135232702461423398923201819847958646519884705816626490097383297971386946474248771644520815753641385458504648213275275051889013008650731904970791203952643855676596873341025819029257356523971397620792870546598308618438864784730661248286488961586698619856704943624647597934326982413786402261921589174377782763902495673568745245826184562494449793368887082372486283552254626947727099214779146820710371285291868070322418525793555086235425281573070491623326293682965656469437272256264169166784315403559225604230494215146123397055751208012541400494868088532868197492690157184447733802179251521647749635901044950481353733690857483844460286153840136197499071844489947716702162686910486070707293164558044230905226180614741115924700961787088759922345062095960715052225967386767838313664172912340014432577900301718222805010701259553023686230956716519080791316070672557976413875362929887984668376951115089260684403191024877273563051422618637266692644671159331647727750662189084381837540087566035412136426216784737806476221562080299551492224698791152932855509770103468092090169655113239513690419841068553249926675330444251781846327437414910628736961359009943041808264193862811687699431086827328242608420839451726484393682812144564792057684244945766280193959015185837049115761591756726521266669852016610273509862712774466135199855955070937382991344686087878822151748876981307925207561060130988646931352644460878755526921170247521220910513755598816915163161230703381109807837493191100926084364210859286115084062338123237541090771267506594765244342002790081243536987660492566654913491007918887408550772911473596663104164396585127628040702334874210917121360279613696393877490288837384206597748832965865796393092171239802840977787216299430160100407769288180536887153596874249811348615113834861122371074676949350802583604100851544467809116218996541025132528815261620201591039183421658112075617747789909690822349894002390578077393396990097539045449186940441566015558118719207590509568492485618236895914406675048111491379486298136282231014292565688847557381104377491299184935650124586274078583278534580257882088302745862066792616537147909421978993337185580380156649860648342872873000521664633091198041529395654956336024513081150092196429476399413143554062947932838035773329929183695922054202126208535060726451951917742141437798962585558630148319879543355714953876264272161988435652102268057185088831368923813854880424937476263746629921180930469416661870439842062604360467088631613573339915486952709973941887710480629394958961909986384297203608294677888946795924746410251319630806225700093898976656769041589163157723452630756163152423170105362722939401933880669592882451654043109701040798310231132331132834788618639950535202638182039593008160246980565308740987294379386872978159330179197938106295573015320952370680007610970255241996266506951777071852831883800812769690383013001770372954033002235500802039818964730173234318928327001771732951276581460532329871999462616819323747618692277874696487108707501919916706430462695708132939187979984403270762856785557404795462207351412248038949338379040420126181581332293946985865683455037690023355470682544522964782396077302058948745874518297052499047964598188015057786015758363921468277617472983510702179594606016973146710688879061224298862528105806897044743659666998579323629534895419268996044946195943760137802027383147668154269677323474703360682622714098458536629264489992854310880821430236149136265015978371667724485661727972972099838964317445697281476410809244406287936477436374375188728530190266397183338459702705178064207832332218486795610778179926651271483308134737114376035354297275687962720830644593958268009765895392066271445876871142747509503607706375534653511792050624116440702492067853409264914362665164500443378352921624569997843850750761933854984027153583903402126997273803183161158078868942787921658637433108202072869853599603220035121270205819826290839077247838633811203934512954452875644092091195675041063406587862898897968968823893151075878234471155935808421148844865882038113718813840471613771449966547172607763962107062913276218869722960955083037069363608579084332213208406122973409487280467877003012832094790564635902723511802698506036691696567164396338900078229753172069442554175754003920751407725293408512184636092255099908976732361224606659561809047898682878339468597114651274142573980103075482973012515389706769730980429097267975659467450814513754353454097981965886419980560271502959314312523860086344235151402274003926616278621251278462605926171064186990327649953710017635793500707927082091795731137293399322496414108439118488532610066874674160194530781129166532632418938174064962531885786879320914020045640006139418378897337853931360818710667970096928145949553357750665567435854280346552607120390234269983090256201692505975784554749610345721157690247462376867749584088263243186356995695764305341095067545165873524704597133693071247151075805320049293696315622557735063034353048260264860737800356506976740003338791436084148923456466635038142630929680473671279728894132341378452196458803673070443321766416523085012802970766560017776258176132373443035161247887920104165775827640302484357826123834732635447733163919878242155863104435256726199644387144272029768290997187619091664084587865953409376281755406053423817552269012789052976395152614721255971457069277697660052417631438592707124822475667359680826442301653999961661223238509966376686639269229835137319466014651441026126276320252909333080314626187816663900029467408886092917721091601895050685850920818096425224785318481213398126986659709473002819144372247386907010617004679482953466427896128228706218220162989352580247894189194182865445091669347302260596766120742338463681644745909655103731930717325693400487056881243747017979388797676672280367286611742451217282736014282135058036568978444250713126377888276297763342691298997006947380674189322292189632248789223554438559431056815986816753978877848984836409177172748138131703076067745778554120192789919663256104611043652810914824512511691353037028238017875240491260043938565745596270292088273043130732640954590962254640414935129712004552554168162998521459114713809999742016409401719481982558725370840099445125995324331424802934750301990092473960726930685859036727939594065704724221277244357145586490578300273481793566153145209980223330714987281473886924116206801253488713228812158109342167309139362910335167970786375401021379863238032522993400659309476449299500018124976730760908644900020135701051981607864027110336050430073033927312755117028066828866779251537369881066156244425504683342483753498264355003282330526996123641590621605419634659100109777677677486672291955716669918189465661317062032961531940026160333844558165609122224478329190239514062054238918957655681119166840411428973514693401141117212307494509581373529054215276961286958163693306098598631904295846076800067581510911414733340143889472539494365055409968564693055074670852836421582658322028803899582131048406475448201266139466373915895299793957110634770181145627389568650776232807092841672277399693018608797541785547023071597763491495983160418223885278048269287856676939891789201562582236700705139749669266050508573518821785501749650975320540501272146258653898996880174968466797527301997119792370743983863797472833714664633323607273990876957258770790466770900193642739415536668967358986769980204785401617791404396585527747105349039234773255789395527958049030235561245539589901723276452340860749260518629207172129079822016141423711014978891966056394680467129698632011474427576185247416826051587413464016068296404709393304536237078655124228736159642185112668155592298370870704784047707362267751706418738517911456253941383719730861724477123686273283642897693069166547545111825006606215054289022224737932927816633945380754866612876254222386293202067068820952035912612338865775395744812406443770707828195287120124013098997797420153377126211728670910560144977151080559942742341630451432781623652037205370388839772693856035682158340657430888246887230705713573867391643201903295772502285557556057429793858692895478885852021813267243145428509793409225450537030928357335426257652783725133950164560834812069100248670062415993418881139738250393785373978356384213103564277199689957824608094334277065150383261541533426327074315766612639685289270684414625137124164771633698341529338590187458907261969518473513072408928780968214968379519505381499008260485283918180902695904013809866735888370871432013077199917650668458753638305001469397519242059510194107066132722417055267604305379924340118015157919088992972316357667953372229177363321100222894714381223951621290155696262016968873932646415585821531517648924953066457451827251912948389054730775703808348229727718220906247320740597404908460756142986465233138588739610354198454592044289192533068365063336655790870049253100661882322567364926882794669921860757952938991106900574418530546815504766760876472599898821854884020512290771959167519848916462627420709266790939799576291952198082270838842633416703949343131788955533589112182644380371999181271219221485031042145370216547060887380486299764049382562340028589726909116715164292140636325966676781585341005492634724855885246607767604576827627777595804312973382949986002189737421374381971535108513497035111899117719867014309999456967829142043002288355867228186338205021551766292682045049795054948402749557360084077582466408776612622549534619590823866970844480433221349755689727532054947265656517255606145235991873073379378622709163594892213865058221170678644956435087143780223781112685179653473134971348099108711948622474435226269483439798684774996660637118319344171252200519325093433447235446698578999098876123494846683845539212179321388841632531525585414035941981914269922016509668008055491783341183889593896517070274381852321216200967973292538235083501200273497172195571259983728051685172415374136375238372832383206670761468136820942063480648689264928346301828746689880859391388177979842182606087992720008479505016801591249918568505694842692608588524634562143056699563748024884951541225713031360600799547998394829535129809361781916345047174069006553646586819489190227385144443134035427931503731465905600574192655129960916922910885616991939273399162731286050841046369659626548500542374540526654013896215977746764276720232755974902581318191411691697077822247581366444182978846681145173461519209342248959821342794738317464226596600647383876129257606782164061118997496285495320293506908564646471244627925552882610054688827769654699088677435670064782002526882419807218219834133121918921651763778071012082547973383991764577080271861765334032404185595493187166719630406785254876695720459444156538294965281661108502177073586701664830157021399975006573638377677781732661269512108703443440953835547285256305687646463354701662175333749722345032627332588432522335197170315613651672946950935179973890870005217699461300920846203555014725331619932620449587882532936380908550183666568634660099151513334368940274645523138965493300341103640258399731854490444566317762244739500238802873448572304049662939705180581038598618530807166228050751449497139581483659870515501787124878935541182295473439533548334171390506800055957822604943363259820252282577891665634831357850881440860050173468209975144443753075053539768964621374006126949824441630785579654250618239642304385850739567298765981312969234172537344943546287986385528054295810621144576714000103736522058038835995508403423294691176890565719826895945710842681446758186696886364223102217739653642146428704613260147780710827654776838665009243636904082667209820923573946078120651656878633978742697184729116290016489629505813862316746266288790915115206530236508809122639323376783314377257996007308745842410229506410580806145808148402287085865508656408861907344278789851840356619859000248387146408964200254300761144657526197795991814367970969189669774832717630042118969378362921816308021306383935468435386966626503700027416987535410783268529090604535539254055280910861140901351443967155820012263767340902956757974678053359022569316146435007354172384826760386236187005917698781039576482199604017122339384760928440451396444084038902685647716132553162029321679517622707021405969539885660638578647209675337459756536354407918571871567408044437653788376325741861642743808046939555821561274117641950185968120659633112146194214480534371954052763082677982891444699840473420769929145376185751551201455432043368651529432588787636332639825914935557655562307092168373145878504700584858727974339900702457808504406654224824607411346962452841476999055782330235483842463620888606933157574320141949228475926620872869395263691430631983525935028687030548628227561800376215079954018927198855187503196324022167048201797410149981903793068523689766755623289372296205259439195874237750512751742251725086867196676223312089621676110743335345913546481649253333867397480309591155591413693079201477869028516657294603663243208998644613987557939143611890110943323257030852987067304538966946377469996406956007607247131906328538364979597709345410220129974063443465601852138970128320899826599215051940623300135753663217714262782513718436016363815401931564412221348577517644622368015497340056178927018300196992580907944883812985484107590679281205982917557826037416829461317645145246133252950744917704365285307899789553279413641117442471707921878325254149727815158020399390006050882041840084890873288928150726632742767986894951586496305591650762397481304057805275116649409427799129856551554456863736871952799531037359373310689362174557827060695637631327426078827551051478897416648110948335061489128820453028211563966266989457384660857893095637614899144935090046411650218116802263456907570507780951240782794542131170658302250793996096616394589881754668562647139316027724648043730142255987051813964515195262467314419435733782614285400640239109101203678328844036227302088627947752368257212827393905839550842324804493636655466855935227711287540924455946141902750300548359446887996426341170267255910304480748024570677696998395533412491514991416000777261525040551002138685547138223274040012810161615015292737576044293375408886948646930426923994536749724512143810288430744848448670655925153212890772811050351836660096396332739908345606561494135155101132673782138053400993693266442169261588625452282426269085149897941343329871144466532562149713352971821408998928296851799454030089507416873610938083413066687670079644279783198315603281075665501334907262295326994383958308469140948257299932567326010244655472390752742993100919023326239539104652705725803965244608454925127894953840846192359179768858689954071371373294243109448055434946959762790675641469497507419000350370847240496678446540633160604453040460403765532689929609273501267134458421642084978454703658203808226979856459837741320848514060813214333497251476152755314758962163147986144684110422839917517438070882329997000017402794136222251539611403055377889578792988872083804289951420740330216050429264987758715640477729863999957413094240110451748152221051066279694242869964534201093080766516310758747325079026524449055442856194356141280318342963401213975629623328610632593848366931797470113844169811994450072610290142583517015267913509890823424194791405990997570644186719086295261563885566257230914508121355481213731480921351139778879194618180057757612799496418509335186414863751942394335142112738224490685569880469139092326058613529860598642283203722371850607915743328500857158631415967234166673066842026206732195178554861767215781940887719419951720295584723247254677507554762041858318087354520860774524406706160486059450827492093762755774610226986869934687848635185974596343881903615737487241266858540495481762035555488833636166382345544734841169746892005282654200994880294280394791227731947433618897200218436406801086273661960186190601470430974065583122986912052252666393744582364791388356023886968030113315062520197310913558557020849003961791417604835925144716371593274767008591062374110039547877385283173761463966312011177254270700733368807445994325118229128731040781356572098562812094383289345400998840247056363263246472948994733238333009739147838322950567761934176878838133450410951965403371088593147777768053994489438997037747585726610857730413640482036128334213445198091581122652263479724674744193014782855789408651251333133823873372421451838691912621178884160326981920498240335678502094411387243413599111987085615772368360538867382953974185707958706684129402721547155274700850275688463628661695980189102870073324395649059597229726219468531105081846666721311534371489760885886986423431332240061020342456508208483407099188472630432097477330539289314486575569640996314845190904765811183973655413657378438097326256218056756081103930025094022747661449137874869993012326382761809752601709420635568396274660231050968025316085479350053181774627576422636012589781736872755056213467376586157939513148587230853881418463336201254958200722429038684116581485460220612167851894900614486634041086718383743724782296951200628467679432950496608167797055130412911166920172840023673093701306857617108817844205100830203194162368808505280043218839331379381337998581134742501658348139366112757783341656799893195858383655611332049490910858113629314810754602777858726138932884421634338989922979483990826392187998010353432844374210492351632317296668103993637037653454439183135460035189801796940344064498779821466530380963324948575301208892128576676032031436284829580877585878627712717188493618832864807817508334405024992345305487449336052599894695906635345421828176361812539464375699379347420404859116995854101312307873652048693756951579725817456600600638608212483832847564502714692488805152166447817919083681929705881235271978621790278782513002998821067725628818119520972563701921537447903259346462732280415999965924886359265920775072125411069121903553509221521212992206229865825285305851393214203963224781537067631266823502404036469915154048138623206165350291059306749049089438038957067204029901822795477814421463398096510366434596190128387035693235156814324864825624259515729505125801244566717238164517988716691186900721630241931171013489742505621613936247143642310173341397997889706307798107232160822207262792098252440858438238704513229990387311759380013517874813916372652739196431881407863704187597090152982255631431354583350122683314425069448203264619590176366303165584593296642926564393707417292182659694464437832534518557357617003168531502694297414551638654940944663500034083388885421608834257156490942188496815313716080942521055047229775983954668873766390944828769749887421606836977618088270440379938148441380549316234607168936098108971566058171406220608460140915767863953302854617184916517218596378870681177824939909910889188595102608761493432497299423351708626216066579108457351961581568883743902426864762689392046948519709354894984166057672028321942082646811030338016168457939559033123206047564182816652804400510295810284570351903158818714026620655222462807325479920144762739800324767116965390336624130381372872963950577988680893180960176684402789591707711139635766101399078118081334643181094553416149547632469844795721104270589109903906912003468386714768989680538732210271941860631425252934037375475136978226584158932642505225064474637630246597592436178162668717874215197020543249392692635469605734243064771500865425227144164039965543634000066564379588037825186602541053285795167571795545528289898218681483186142878266539073894992787243081606094962887259623069673561853936240489698393778069039223623411975106186112771367367071954775280716300378142486601145714649428038382802213181300512540880724246194861394696408785356721519563764184229869502083577885835316465505975434939576634144895364857030216418829689541346222600772764513749488386085464633164134413686620443357399003472264959988275437846186544022343638973601264972816776247269287375820548311416724136832378596497525446364758286259693273935349164878239860389475279353292174110355543315653188335101329483471479365030316433375196385885644803885078963859006635205029824787102189283002685591939050636994880614471259417146208152442447684747309579932774070761278369011613685823556188921560356660940843869560851188438913132352452226723561355190314854752290330678434485272079778629628517180492560435159342227570934527664221957090050194884008614886073713492059316707712689362290453558460240716047972745040355213725109419879711835811825099728009549847235573508003935579193360718779214582398707772343488826938503770689398585011377384749581878906049514675847690268948857298333113393507099804084779053594822799271530959386910758024852881142040679278103504124378610812600926988902043415526848249579113983019686095113642809396981670966553405682458715885423932065898980604828568728577698637258389750224353160403217663174890152055635920534047488318027062962655558781866732036654457865410880132039344207340464531557391491424398806195336674670777148531439744016253228706622411813917574795219976043348650589173322836505333815692014508101150746439093719894625523884021783975993681058748715004904949901259200670463773643248559981534863116860152178906157726049299580352564357998959631974197871407033578378410815159003740643635717326868627009401789272300353809826780976092422915966056097751840931749376923744320001382029891770644050364113733433819904022706294505260793089381929417800737670568636160093653349012643778290702013013571958808574193242875397496255848376890306386931106577709739253291969540749781273843461185354963174578968141142320181747993264799448918042578852161737869536840550697654831003168798223319228590385853924311829784518942541672131331401865847477247286756621376093288467765145258512969981392940305681669470814791923400872195773251287931490965335181994572287760184879533235141821935259546567165211620401192812988698906397444759438682671606293654818368920658019367887252496950870195266816818929732775662645801491029916012978161870737255722191298230622406782945972776484316503014107692615819876291935249107054828408345272122037946988423902715884026593588785847581017488454027442843898920202895350018364142165270556888378985108563033360794105924970901778510999542455410622640562337231323690386676322141691239538587012429755467929100349777378308522867235013049247695459215409783963335886354219909346522632642420466721584043320937575020155907890157330667396670126844722527612148388798511520938587833279851572140178062094789596201111160822793206140992057432497965090917845388598814820853959479405820217133039702155610914266218958340782929753385666183184365381313532761951740392969142535120760323924639471868097451391202732191700070871835982284378216651174731370185109974432849300967786768096453764727436225143103711668976453553938546167768441520592557997310462541319667237097791802216670970608805816776333502906316947819984458891695367959847076000680040028985725249562692605987053797281301562982325746047360209335558554611436752563812008222530957554469575946599487959194801998547632305928053660987595037627597767210008060174530543827473441265996179637795132517966841472379114645120545361487108859738567911108331686824689234618841813857427247514972908412465005939900883611160012939327898551995384756600460158743336292096559183784845811692845184665374867541998374649964656981946176133680405884557895242195343190860318465963441311214917729084467886709268312895807578209366719485762785439250713979689998796178091311114634679151816274221096105197781613472944548770809898148302459000739594017821247182572497217962807274117406826246474587568536598188370962439758073727470575820327220946721388513892271718344822549845286256846082762563102351291391555900694977054180146007156432915442891167684418481318152386761071155671595590993415754493728211920803485950479587883764229046591931666317379077126781741021005741877223780453583827337936757110747404668531012103788659076398543432148739612036895693822456828110320728931914605820735966489746427835184072674233100022518808752912562215537641195902778658188315354873159850302622350569158182081800340767740806045974087651669658358878106412788283193728981911336919618224219381678990123941589379735424997189985160684980495802667910550083235109615349467442731823045632359268438737307479410192887756284378087998185717728606690711480386878490263308884412739673720272365550039901068420017862999295945478686114212122117135251707809772638075427763839018895755612199290312344535095558351258100477216227803008531600406756237399762141620427551621910789298220936589135607501541345791021252379781083625338475491748152959668899041775729217370400231626219247904566248163227175278599269636899368827670111567000832915059954687157466931529780143068204232915622398373588221437748832795911696075694268061908909183225311350532675877710764788004103767322640392885513103136311867006923872934004396491288522523683009762549658193612995409665051053032795448516196106366857477618298160153181861640543622455622300522290255752743078787711858841867929024420840387671998820992216960072221762108344024712035076372747641850031965383830227782958122909711400357056866399372014262208147079250351043510715457570377075693341352559417236072986306050613959062129285763472878888339251959819975086840349580020136350664075861843676625762321846812528915555564960414785095747077387639233958636856791521381022162411190747340650726449995887951289868091294017207331763650166399156526045511425425110363845446632055618410630227585713566118151172038852620940536537996081851230931357779952208099453495974089542763395278115148227669598169389760902893638867831924551510545784045203679226158078338966486935598317374955372134186472259360323876870017439981178303924647043549586350046705106024270719153218033019072636767376378738333763171303815684374004847932631079549264894911100075735551887199828202090958390963487043260746733721093752565959144960016141416761305307883389131755292793538164810301488538939232147475127919120893600690793518030808092325763826392390659591970775597816571642557167087970891548185109907675540195374983508236793910185224277471076843260034223362603776618244315175752285925870953598184195015095620913796324203300219821069722724624598899897103037839573444226833506245383971953032831476820184168879825736713705682900885579211245038248322587994459861706112583070946789506149912534955519998811581148809097390603045758987524846560916787251760281877055500784196649893532606919196531067602918522354338253087047669365381524790007480369556247700978639166593182094084105994033928622864776483903475673015231440895928206002759175804771866701095066876513528488912920266415799686166748893530065378586774243019944261410631819454650683837554537258025659011063970006943744095051598509506660534025509438755245582109734422824384699376391289551296804210279571768655095695949759522572805012586529933179272937243494320968266240920485649872567342381019345687072841804029999011546445544769017510990624902155865422461291354866399565196727150938400774603206678112653061062460384989181777222049786866833442964844443708646120420715929383073135589222314132826912980638955728765309342036977147020368872244790626456271481617781326330294753723103962853204083659285120740832340391341765341690477289849013272635640912375025838699731876920058767719496925753737864654367908206015122683746574992907096091164105251615833407362095912936396137025822895788457493559098273605540725007530961916663878995933049365742752829412946798951188222558054515822376019330291260844791019722067484980979609149844772382913605759516095994372597218174855878335916377862232725207445279526384840804251785380221650580111606594692191478221014974032499742499526003512068213815270141320710633977059709483550426995275943671184047297695348938444554376113589029599971082943307695740306419477077681356477811745533289664631280093187986464552765025717524148725097940987437028846288882135988816735837654618013943130134163114983641025782674200165767111552496602547888191052754090769087579513519853035657298401099945865474917587259082938886757842494204842342688980957564852456214327748418937664502649903166758730946395219094886415050698243805332950621185767380109660583791042160819519600518882807945072120587604736280638378942346343412864471644628850571485010706827602210572399739709070982884431099154432964465644259818782438778589054881296225245149916136347238569190227343069906084685813352865881479941628330513554110909545533482021115269513881494647708332944594530276638531817602616890720303957137803800045950346623343118082745508309424961359315254849078300184835284674004251344393920979450837038702846260151574168805476220459889108395547833884936816543747409115738601917895202331074115591880468452412298221425185445775440009795315597184172187403898308725518097029061046170274131921578506796508759195747984955164230017309872200835277226065037661903733229812781796089260960434814256421474684447725134383694947080471626397032429253592495801517007143144768620402306523332639469423703366354621567762889751170030168827553932684530580298392977900311898270298075742008579676888921909292926235860941339513347037506506853347273847381918089385505350362701154378795450304114836982489315699688420774863570897197644190487703701299188801326354749808018385643733252235074369703003100659260347015776231454339591215070760319614213298458200222678645496761736281448184566569644277017461399330409096097811058255579792106032574142845492910560616473327863418018208425899358988719679810727892093884003276710409960167780535483689988926429728470585732357501264414755138164047881597131781509864093708356038764065023406756936282333478482366906832036413942649711187898522694708077242735260147216348770724742463130461958100844151357852514579529179522914014983759831031615047816904792107823992759978972926957035333312167219045649876527527752680163686075678210023967342037187862752747154116565425589580819381235830412151184719607885674735141757449927559179472107298842043468981190595171895815264622985280214242211285645523990807830119823900084408314065661871050321254818297053361169827522055463952788280036709029465698301821509393065159131436189039875852284048292568138164918300541350067941240709242462513612731442590651015357075924931820962786050791527857539117620417749307647514429709377076318491832094573006111305923429511334858339592857407649301928050531841336177096729617363869131830481636283284110118808122281236487705507828674495250242256580265315970439490095413036618949840407139452989001490065538577828758280233852001241911295694632518875977192521667223775838523428313330575856313680101752688695598369261842265285488946728180836982436034617898206904806471715184081629270329955307395203429235060101801066759624672764416953713072667141708648339365446551640016777030959593105460885919383892780097228663744202710008110262151482234876091834488795266917158609719346022003009457612356868287867154901778398752459606684994500913918675350253976918487190006960070081072031969136526835810421412857553120226471200766221738643023878048490086218266568132987514985428013711632330761070686751467144361181379894892770228614614639748291874944333905614247819649974403354117773133178671585126476161425205371104300691753446713623705895004451289688650289990029478889133419334724115987190064727654882376845314882377612561376266313054771500204795995357462250312365402280827727347732077290553303652805728896664213284272090688880611605991153807512643528582091170514930863131013616658378723516736834708625996962955961059263958590726420659363687822186337225835873023173043921045297381521903534242548239112172455211924372811730151566686784852714131546116690813905954829317815233754929095328027024728861072205394041209920977318524096460308328772984633080530912063735762264088942957366960264551661798768414146613136789356342191454183341167847860751288295150968863638648272065187471652961828704092163382290468662290433321349329867719073994605553860727985248894616564964769855754507340701628323017186878978423912626216638090010723154873886446638492975493908515375993336232566973503449510830086354814133507268478297732249574081499859003617948569827434705754303876746656469587330063053852293766629946799548649388041851599401892583141126177145182806429268087598553908482956829303744475387951327266371238742928875693675182100803794578338025012208898009379666398810632796215780196459814023490961657847290645617270647485403885272333340459798174972075454206090567956642569261892806611440842415782668209924164306543572652741166657792078839443204337998945205475182285566938747244951767825824780558673765113443183634613743314293823472363240173185478142213058841298995712973681282163043088671191650840392309721758174926861228099259606651881346217132302765939427623206774525672857592593524449439762607373309167240750838560161097504929174117929915308346599286408263996162788935058121177083434341301290063353307194345827795418571159479545946489038340452959820784081068306876355161231955489376916323042401129322563985449725499417023599588193231782680242415139560863984606128721121123791721734167149572400879368046669208046829952899777895400885253065276934220842252758839323433895991054478261131219458226548599412766926415114879061464517671588516410907229178531052036662292720138707987567730342901243140749862363088693108623984946081585730285244653399460780474327979858331386291339089431797284845844864948149413775398464192065470986708199543642233039153315025798320134064463651751794898822531300929782602203020423772780190472708138483937484624738282417258442962214957871973019816565292397130838184533032620805900222051479247625946384387644888792084478883326712106442012353496458296356841064269621252556581858766993873587459627077727331988788181180012928150676368854785322575709725940718967755999308627851004701824733829191945325231971359902381385964226777502964373393048585824725247223895071391670430168229043340073406636936571642705237953328813119294135861791519428122556928833746097336206758746488357973374515480419693864237182807994941437789806527667254418751652737635834967585719626138482899284144291908781617563476156067455924540173016276196067564397550698791975536412359515473681088863297948112963630427101767368411728574813036012901627098401514393610336916423761501122020544300967590269404607928783361140758975910442009027180048676392701490640769412379415097680047577511647100724921665524627222749892285565786707799399840258517568928805077731198839040215513345213176959456585291358946148006699254704970373301426534508907773684325182133432109910530629744491324232157948257237255134621727143217094688675200585772092195786206572540100868826308835364910789288626137481041775572850183637714451234140676877227626315242732079242623400929184077079109831349171523017096782561506033660517215419981371973924401103885908966486005014874352246985487338711296723143188514047769101812248359139754399082628465668858417932374280364335791187414586159860904117814250032593027490359650100278057260955241179039191575287076149350871699026262551651988221079662576680285352511397683931717324043281264566657024037279819010334202434367393097217228832828050049436223192395824937640900305538840522225816933425159852897359970473932184667425597166027585225754350290596734679298439866062392812216082806457759578260624342509771128525871973084651138914349447524160619576783104212609709387386725998550321940512697542248213937255731198036241987922762281351077166270379846856864370849714228358274021621897011596694061234307845630728629845295894133067716861815629742147949088738912009031092458183042218609743776886921757845727925876002297312609258952891436059207450472627206360104672690909691500981851657583953215342835919840622293715707290317195885187936301453300321600569017346568590533018512026132788010769561729355032581335620552935062951899751018152466417905888740995159109288037528347939367123897929352727731572227894806644275722752206321526423305307686176275227314065836032761127704825276811789325779117964759916453952155915341492808113288747238165634548292384348959293048396052939586734368367318703634103463171803858020208889059347187984721415917740764104601718099323297606128532595191218770829692896076029798529058448486813501958134312845643433267929307205642729297596065439820656333162047854217538449386124580386039019062787892304900301776025045764308379695820713298545076792722456086486969670083646562721220262495465868270050335384484729015737657232136868948093240752120717352166428066982386506331371525386711749476391879948247357310864869535184606282467999394744145639525711434490702196085002532359136381191636417180265835685754184793682465828819358442909720885642390493029628874879990314808845134163365064018567980206578417125000071647759211272601473990301211687582618485462993589917184180329868131637259753816362979518877144538676376204716108490862471810425510286511627265346230799909522816198222082865067332066074821491497513424721713828168311153768181620456427681462582691180214438922810003872145153329425614742582039764517601256140097882141834245894707700758558777941932320958198877857607197595314503427793953832903560772978477028019243330879095512541504700401203520111625828446326119946811239090681647782866981500353166011214836611603976811769146076956429008681250094791040754058673099268706106711887519707735387722511032338420012528534656024412280442218091227467792342238219183638462312388516479432744646651493378159248178579765712554312645493933012821842248252091750326740778507701654648469283403190710699665458720435353341587612625180865809843403472484591135057917121492913956119895625993938602032899354065158775323334351049946369053459627334973501472039866904534916031007609265455526902315876489106339724887618294220771409061359415670383080035627552933508895879870549385314467095850248213106924770715857557264994675918527643393136799238108615816378966342001643290038278834363215532681737844018668310833956549202478659524958587946793848324032749206512705388238859736534726813178687627815426777621731320637165847724864229040987143606682231440183001667224893699900113190676804261233311763206711703716560487784104048226212465312530076412011633210110061216641004855814446771497893018884970488014129369395203250832770536692708971054347827406483851542472950087972547695457106530008507064909808260688104283912558496292241016668311162960275131521040217023714808099394305949402917414857212573272150275548919510762183762418645595795156075335862451529219240556142700911459571951363068543064210493690677063723016209229030524484070990087292485225065686245377736602129508474579018343412201744004618074564715520048289298233949236545618639750734344931993808564038738807776405656376056037309061142551184165820264159413529377701886628034006913465708181066849697278107295783178103347132446048121080427039907859006920539784348248899840562489046314750052413829128953721366610564811668895393396524156577960197913274374441522393077668253020751075733234682458708903836663527518912115239017363298539763214921656495479540002405429758371315274052138468462491382753353744204059201809599211031901170664047285574329322875564033356710159506402545337894582322505656419159921064305039383471926052616691113883698833988036752842425480515549840662085689736746783481065455965735915164079910485758557391826782008467395843205713263873225399456908770309858701482936716481223526868084880703683887209365246585310605113293236355582724323062443171641762140067721007408786029508525540003874794840920684637423361637673132080614809424015428369104191011825762121510247235771559921159196357372434602320171532170261328042443568962575891089499231644582428171098575456110181477109851774476460565895903551174772322847773911879296703921268858774618507120368131355326503411707988273701570763791030029514346709284097519894058198543573175751111425364106248050946999665769291427892938514734508993766106832292745851034730047491724015448348349972704940056106403808886354734802411487792647588712112535740763839772021579400129376855698920390647546910117590037923613269952349601688305458089481614386233624213710219108202609056404369650059662416670193296380848190644050802404671712548831918450603123888385268992215314902679738012957231776512063066624617174159662557436176319795731303809525136226210334931890555966268861346272031171990349746618903077858028435003883655906307535337238424602905919930132017656652503107033138981376670548472311132364979580203198028529143829202707279455493405392927215464283983694907083171625338668546222773829905002421793827019450966567954663116245518847295681105599095586764037460364159418760613320778593569603934962332942186203395671487448498323123594323145541937050365213096337088218459430526502106182745965048342049262823621406555378947525795661367862125379859153179028185812456148518756964929909342441515146669778974302654725533118209674956639237753274217061055324826368395929385010842961088122779289932756445532457338809046333390133033946483729082697573593969345848476873283644511723542985566551276675117201430168313660447671945590562186600241450356299304333490133461645732050341103333979829032334125366119777507109302907681514394832633597385261098354404252012726500502240232456194518835400407587788096045973897167140085297094126720361440859933695972712168090260569902940046351671022876789984371206707381949685383079492730390572840309839899292293304508018597268717425853412803288991230311628131681370323928788724312443501933843694362846539356459213514977177932282665240527810326557939411447412296470490027691483504643274824541927120519371077569868196838569317653153765814885138896318108554677095452719846815957056881949288555678508370193850316849648310014226829885235465645078005267628141727435091124640031922325982161801933723577068579025000604143547320962755358263740012580045848745414297773901129310226490500586912079157751925835371012604739303425653981324473845268457527224780930085703329732253066260303347767416997981430332975888673989254188134163819104875231458746428034774727046700664486453575111232488467289526664537849427156187717266401596021942556596421087618926951026202721665467879291565620612911741912326218141150287514135219457827423736337864613326602451685357749197992042420335548851071712651201258823549207608379705254778726629542775874269977099898740089201208198277583405075958698050064587380038982031817696867107371918009667867470812721842250940300898843240131478945596894284528726407085299631476193610067004061527822373760297036675959217803026424786173609336198004045031754623885329588774566232485329727093316384884005509528522969666598468613666981065117379065962901595280321458126617261019649576512131316967793495474474408022332224616260066573338648401722211194697111183695885661146652632961163391627502420908022237460454968784763453000387219046506939261307599655570986549884698252158015814056702702990535799425777810707075405166957565261086894448416948209422486625250253704258558724056826111450188517129365226570064432497577149396221063357594985281182803159120234907301826675466313818871907848456472773620556331718675663719383634739418887123193510612461534896277821458661597611592635974522709652243543088669787974274317672019650313137231285397295520879728685127946888964512992523804528578114090924875860238332551088685598350165775667695348852377888464180965156324889648985769839312889354685353011447752346725760782343116564403329943283658149188685550691587783652031310395588124089770951945768600219040284989644522849091625436109200854888394080002305084941196342378304186982839998401060502731572473218800151495554504562709596178443025949838983687482380341248484471371598337302531875773630841334718819239348302985738593117698806399714855247920194237417359257630104503266492308707252964585592601461522176734849232251254842391063709234555255192145468743034039358523315344001080337462641558832984624737111301070786939538651606159938067415638319003836558613932556529648304390961718827441791388416756312567720558722422684509858771353481601340918246211101270338094884409248172010808501329525323305855039723660711340599214523734093652489781153235059631030927053582285897184307424360807037030829604644407688078893819702718895420764208658356650885095388529615912876498070552242827249384343431837687751938257813607682200804476388771868993674738617952369806248796479730451389683024173153822570814324247196313089820011069187024862477075656849407165832943943775948055347189030665752530087773557041007670527450322196644327530570027961101984170364907619780472878391407231096308009802445880173818070758524471236028571663170900614889265142202969914754967345375680187084507969583208064640261312151129841384611680082651808031502617003541010862755528269522126028223972739089733069662136079949294057815272868467593606368545711835299918004843994073377704833161289664111794769874178909028530733026114516836821825430909567923727815424694161863010356543971672365924027445436637637954335571701029252740007487900983389590675597449648819353577151662465523298168045708375512476401850127573790470883535733219914597099998367237101564680479568686240509676892420961198933426538065758700804195746752629685419060026122626859128743994585003939293185807281309092727285962047562123889743433663360330200309571196226132368144502491354420582531354306541979743912568345673622326969835695183169821491708710347292237374443200631077029954508441992633771682601590391216219858931867602030749382226967260289927782351961698647369033861693709178852435791721154951721644475225420053903710214332442312245188064195702209866733698242227346054539816981582191219684285830411591100991410963990028502662245045522420992808372969991788027287783817219649159927996142313475324035681116215867900500042193486800385389912218422861706349392214034843723042299853530087891786861161765694620534439158996748727345654538248651382192972007069310540602882385293549478216973647074884591092221589915010722247234630268741327003808904384802457674436994905601022791866301876062862304775278354000791812319777697998634088903302274280657824110251948910758470357117804939864718147665263291195755533454731736427219189282850634064220976049179792322836900555699251444469704343462221287813310020222113297740234286101745108985920886547423872545566024373452563106768932175989271210098891051089796263669015713408092845348040583363595540050118261425940642583532463480386745375766030866488308549568880405545146762055420348248026958702300332757326543414688484500262608693335047275933319863927069030873330239990844122807882633889986295966132844106446861949156757166091717318137346240317009496916719661430898116718322344530593497648932122322667132992989560667486420460432425731517174358509346821047793817083800053803256496071882506386277847001155701818023277961987035119208381598249756725293484360038596278705562176414819566428141278776424358605004410959683147247999118772530647509740769331296395332948477759904207709709536375876082466760368895286357655532775876243849047934430461964509177750884807199725139425456326284402777093807304214901569608908322720202860181463931725522494890176275362534828493667436233844116795272117814663304789143428763119131845403182277769234812262333508309024444822111964694975266309650525664297799522749289581901389127424151440272301434455481406542233619845440766808202997348375032777262688970874694046386302383007695163061772677206829948220243932758551726859778142007641172045376127286404705660383335106921718133301337577756357103461396062181807691100638823584282447173715113763299859378609561458329268475140205238103652918719548016024977500306466340720373199135731979419048837369451282368388794917625884345209229080038608677038759573826366496500592192946604651406151848474784167266230945063564732635357803447952330275599507299187387810368552841500288914595875071581117192367904531577059228847330449296466902401365075155679990934861894242713576553154060868013196116202323481035456946554554037491361877734225062514981248548376118033896060679148778420542780602696065508764746096312152964222206205399960548990281796167956725851386574249310250597366456486078682744096223963698023671271477022317801047368049675109929428869219597087009516070058986862912909332747022962843381003177776493229549758564739264101559811027202825553311164587991227257613450741587133340567141773754372048130924017954388747555921065207386547787620199975173157497995576770023215761787319626633067113343217987851071171633918725195105863204984830152724044918870785029909875571655508554228106925487668328115417652442655477491683301176554448771059478766629546681497260508957024714717626256622618807972436621672424526270535943046107379902809665021738219583910347585223490749047981061370632311255262693122208519024266150321356871970429835742451646137521340619241730976100066829453099751453823843312190769825099378550201730076736983660907002358212320565693751181060116230741013760003127301615907028930236374025714921470394444207406777368925894576920508305331698657580728463748037291270954868103909908479500000657726271477903711179829151571841545838053788518414712004915824042297115823643114114428278521014206050379074191058136435978365854956287682279252269738336671314610876968673583184554114207796818747935021099914622721257508223563556399214344679590051747459742982958402778848942374293482728705502459758340922195113729368264388699555823460132369813167389843178033937672140529937169037147913392753981346314131079830006539207076081687236309729237897339079546306896728806429332108431384187350166026070737431450388531889795223620869800210590264397120650292818124362233753829062645769287803029707339723597691632936511048574367192468787739913721095761841550847906225164686677260671294852160773663051662812495963543143127251316204465760022103593381115970885100497815279554484877696047068850589129748451110537473285674327463188514445067192708570735800646243397676233535047508813211280875582286706279772548917761465269516346334257847316698811570242341390838816616514772391334384577122490124024490895288741426610831179650813231718108595811418520727478486276603795363013714656547634327173532505616894378279285317543435416450990383611858829406286863608777760017460077028375240657175520627924487029726546959662049028662591393988469616634688664689698709945747826886981552018352855818786109047960468983454816481610264070407209482147965004028291194834817290436603047463062695766572947347882823321984889861918433327147489916354189415180035589628241385859765901997156853195192433398266077305590086906106880776248153324266091218220976090506140197414931828174970866014493004747511366495783687343238309126287645470237256608963535013244493501069068241331747613726549835307864694195715716457013291529862999224671319187835702483756049628220603297744871581801991626794355448290960271197585003133505795997237115919391346823111496540643597429446558686243523310256088538518880953905413065402487419710923889521534439915852325882823292290297247584341389624154158740447988178569919300946441742192472210547534694124017098052644096569960140517244721191539528794789861676475962634109606807179164714670481902431601978780683699105202324845399068756087916093128284660759992960811408558117344563245330322511894480997573361847329022956046384976359255896029163691026006409120191544645226184872872356567164104971061485500902744558766703894899453848969403173805674352646666033278969514058238883283614823263368293473451219195883090732874086339871422462906355767057237152505854708947376495840491264996148704954319747317385015213549189576146663013728545406428355905807559067699118292750789898850989210825124094203236267449702355194693340288105317066373025457225003600538607511632580078601604207509516912475470056009543180110379568823151429678826447276756314812734392221138056445492716493104212201480645468155868874372288899484823914918244431300962402461444690361230963393035886745302857230319705060781932433878587354415834641402940034971041259152130295726426264748824608287979408850052945743642108199339123886578163878837682476810682133063328322051315186546240719718692763509837645547725353620884252746765121886580696453090145148175370922369530928224038610922564251682990396370526349874252677888550289054404822267150803891173591976207461641430783391760289476566267280256024038873656976692928550963831919265644851480771543696511503309723722183687611807477137841967885416805865677093554782020034067646414982356945631362032125925263214741645281817583227463421987794794576705623517876352313179174317185546822874044964092150004618157753600818881517572942505972108943425319389161665997858909507384859315089015149383418986351692673588506336478865662758129064610092672121234678533939757680976600178069561717954436967714390905997545990406170436121421411100514966300012177999958526475290537764737513802963138471381747893960251919447789784775061169386026227925814632480818492620004192494860053807982943703893795698411275014087438672018605421234194363578755847839111602378957815679427879492803857362118868826202820009770775843199378909717640109980177857296365419437736614247107532977415987261417427489650074424281459014103679018671436887796730977100768617782694678572954948760288438438809419038464362026646004917484212671566758000878587490912048974491981076787588326388992876524789907698883710853508687156754687753388245789571979089807371033588823263240578759684104102991775511371899081128107502279843360949400189681943694423896062527142464676605065434326908482854832863209963727143004883033773595942166095909785830678639481382377694016067630870506208795090024767787732913395971391144057754537480271566504205131760272911353558875260585636976010576407234024231953379782326002895491137198293323856504466700305545152804727101501282778511962726371558134887592287761202948112149519202300462603795780450070351769804990655076685141781088215845981610532269487900481956676911371969804598407878710153817464890600214963641607070165753071665732731161672093577639894178544446505113767176289712714297944826543203099506822980314961516523525288796955260447161436486762518972555736715977955075213436292138932526212186020445322888779026407770457459230705041879558929738099175937598811373681762268070687495073501632755302792550233107551259033530189015531254222132688812339901352760006123878511748938976692749629886804741695638572080615002562615220523700139514351770686473562128785532573797440340359083491580363809486943255157050389174530905330915012567128589303469513538587764781037205904681947903549797660094250259860721881648978686785399568076384951174604985582780774078808279393854476987454034114721689718436562075426580330431275087376185056825419979443686140055276015320066740656180480651785950110480233990105052248453431241781447577354529473838003042201386719857229431120909024404409872970566096364272160159417159122766158460318542288539065006477637336699158858051658035120557366380186202943615126206131535694466740489549621056085201150100945115386431426859242995133731605984239320784008732747735402573852096012526092077151096905118842586404674107878637735223675628928113340533348093540171246206220714329429166887661565445772850548637285859398854592379008088631526823359618215065274744048651991210263334435326438907196226593054632329815884153589006321001303450156152619371004817598288607188616854136302241311880859452145613051328104759133570426200918140555681948833260349775376965532722865829422274620237402165346264917228794108719567456257976373448516769890010255649887571183466694473321713488954714352568039961477534311617517682663404883657478506588414556958699347145294993733686868417480156750846246447473683769041822656744844030894661673391619073737906855327123251688058547597308807828857936330063474556216627734693424752455383616971998305590391021420939863074498911851077303387983702808410609909518377131916600801996762834695853053429549954859929981253381869663277654302644910413775103240945529627831150297912018106900446168318405008892993622116425667264086031121520338881597001373744681376065081994003839540125829969828518827940301626463635836761697216849806124945533114953961671479054721101715856264792803501768282497535808071673649115322943414896458649996352910836833644290897336925972980844002284082274103402594915383580924568351035853828803678031706871591979770747699433508886991023051852786349811104750743507430031248659305738446114591651296512870812746403058557981871526544196922447544191150609424761516828915283603944321969645864056403074762214560161385681278240845048567987511024612363626686364601911720095584212286213608119045338192982446173642328579371282065788093107513262996004011131786448175447734684671986133077826363602004593212403375509743280607653180858517853676375480066421486314971217943625168346331574765161641020525882254792203660134624291804372559965028684366659727373268866294908851953848549460343904592823161472398668269322838228697559894898624523128635445239375078505663983861520289242839992861677537675861878559068072058241754084234825299362755889220405319720882453450770125435279186007355588876722130878612855350982171760349567254226537796261896022775081430689021029865706326128774632886203973639604849003007946714487744534944586012676236986403185047010483275197637143789491436654276000787210970322243347724047273671006071824608488386572095552841796737167995002558505952424944650714239443655750809794397108946888486795104087595285278639869260116417874261685649046168888771452611728423177218840079452110356568353343737456210259763287702330441635284204867532350402282087125562040909939576790320042700607297202354741134467573217881739511630903800840809290849135245278938134251073050036215240384926928492009633040410217837161609598820168943460270779028591329768706568329462234483618040125296647934037919333195041607940775604660069526000385902626991377769946070075795823530694094238804606025142040010298309802414665884262156645164463641567655957586286328902541978790161013819174099240525839247156114525644448677550372070424074807235379732798882597589941284970924652904651565352166544710351852324693792336554945294096951718518500167019671167572180780264847429603877529151424281044850821188797835993908836060468828027548200380337043504353246688705965026411637174158057622165230430194417512134220834679219838050623848181566097258427820232030754216090637491042295504310084845411917882888952518802555928787424285544876297018615936282993089783280104914775104655453056333251663601265695799287316414723527255097439542962063945981761770494569887490353660202741717092805810224702234726345703827751243307492278449963222025513186707060775215045161412718100939380200790982721804697037921785172163004200333605447560423841765335636877480645684446635149303200283316453682975329400557860278513119662625459726429140933477222088964211182336259669686685053299669556251214144742990375169277459779463485715282493724590247130692913558752113588527106162760149793258277897868901970459623930261273598942316826122124743084517798590088319105372456746415964980170586493022126861479986202082920894619139599339385533347075882773711138281504671398846088376904718650982475587775930686410326193733589218252909512302110861747987451732352896357858214439571126616705910510456172253523647584982500700428550225361552607138948128672612329138278177763067654755721732950340880163380047994471581054242316027241207714263772792201670756678390725767467049016918156007275630970056813176573505452348270053139888683453515125225436946404977514061976835310610577744499891410905871668329601850359156948315065567463964771348647218925446110056891419316500111581967030370849832828403442738177264842020238702237865334782959772460308134083584724408401476378476374928903741002457240392776338346098556205722060559654913763538035355903372564266656285389816253625591614469951711278978744819151323544358395382339974355964847258560059721527583543774395242941980328217524559936999733839333037869515056998387783220481129376200976874972407074842356576749990234685934924506180603428486823111004860566017432211004490018798086613834195954132567307265041422989749537377733709815085572148574231187445071240162964751794296170153937945184358086735027552783692829440748769404791250437363939969041323142693570541569212661311458157214108718639776455186884317971014063613996749985161892671477997472097219634814602339060181365577986200457719567642813702661795265576488775159275668501629942301224951642847286964090380379231181835336121464937801473963311295652288995297683674647905936211905908854049033799058664054745008338537934448805245423011477057686089432866827879388177913790298514080139211073020131969474733284274817970931789235659048624416865017712841433510722708218166928633608679291264688307608739080123120830610750162511641205449959930849967512114279434891193942276496163029946356146223120476962046019746398632624125954483877897561556685503960997192831686569387663239438136467800350182113150603668830801418851334186616925459693087192804973431924223906192409982436447153843022081477905317725694055817163724277850297734805197907871485499798920983655496009979764588450255936446629085051858814305864631507381755142864148994749637765157516696962343334693881660477687997228957893166331796402497855939629771701945851457692807052326258407019766096336425462168837093486472333746432430159108000520285521149477073458191310170378156730361570625595203841630303783083954304359342013604593042453366267040072545789489196721685237990498511059009860605391044708884736042252111420377422847901968109398509675502765655778203935156766563858062277815669057252660684543056360298571600879136020037484915715427652843636696925494212228930365220113688086451701584186295894228119008498605789228235725072001080241333267654660050559724042888484816388014954388942374659065824189304934085092334330741963248943900566548437599123557122554104156285510498233855041985335040854941561698400051494717617373218335748890289757258426507383549518013745997105244031151865785496186371002553248088678320545932748938208327126688129582903994471574365181807067234098897102983291774595611628821172411273880317457393824049135264493618603710662870080556323538961748436466109083836085690612928830512531625033317939820021850527772232736874787380440071725852666484813884277082822965573342010707968252161105170888082652872577782987527141438571060475172658891500646933296540205154833580830576987075636499821930584236064988226015633125350693363568341793680455121349919169339492108847014030327359582990775346424456626846100014944968106797624111737915375813559520414628824004419327196850656812053325906461334130334968401934237607435503028108181951312911300043331502288342437330832966402929619354828598836722421801992110262880312246632455821698168240533896584042882719834979093172034896109594403452076699940306419777474129433465977009165454019027277041786544246940987932052170512954292876844607076802743721387444240421842233843191613236878878461975244048728919443864594718126663025946465964444585566045214079892633183630323942897349053074411426247924330034969171062034306639162148102372562205818431467535404803764674798183627363703524498868201007701652731113492906646186588115134243551873296023795997792198716545313261775505497893303135020153746834956528493328330107499021169513125344482157548940045339479672293388395472886858256281985900396938456052747570234586802061975783135887920224013677418172100602766579184346127549720069302170960622782596403548288010629644081616996417623965592149505912635966265183911910762678163820803880973234137467835120534112465941284358038208108857372115295054978348730178549761469780335019869763954047250733783604334996771603222714763882336538205075718962552582949422419289984534404096933606939565477750646239906408413165749082221193356336458789990518287248240109917229586019607189014073921094747422670747690123067115977586476836790788192028862101097072816937640895423978384262176974614588195336985320215979061599712173859501763910629914857745407534534125918809425615864888981347747701472050666741963961598954195300954068866251857983207953797457918669784875806426504571046104489503571746386050438298710559611264880775893265812374443570925408431639928692735329464639710021750253177980006945276903091286909441945680726368199995331761364406221354377141748920892366832577098554437804632792008173836393647586670113433015070818191056376222625268098036706333315826739284735841989224894549845645487290757160762789189065600206815520265781775837107981378112856399592124925241616047198338861150973403775339769963985455067799863486630969103900924697814439927010164742922161260920686628575771255235052227214290781639622815809523274166928937905685573789925328691847006106316704511425630001267059099694457744350464486132548444577058826965430177948635760210274969959408056764465029370243315218835847217437019354967299026329709454240563014730992414882217025482532921552101819077383903101610129501627820974004407981790628397459258264794997240552939638855958218322943078903292625668477827016021941238216661850824607280874006683717980025906231489447985279297187288105803641903417214921263194445588204418970368679665498296663955737126873951972567439683830597058576260872053814642635528799662066796500058008491119653204703039912422540616079754540081871105655298759119571332855070421317036689503016934951788377844939636848018551876444022786265993881514885111727760518133429344882630325437368044769295254975877326843872645071303435954758679920475324074148303129295788577788125833472971481203211366710132221937858668665686598359877759323744123148646040767731949736443780934976120413054761499033977152708275965126546648241735061738273861327830098917916130455747662402895713959876212098282161580377440758635460577845925826388850144708598102821952720701095784555436162174006154387213583559667501056294805940055182885510379571061896344176906888522578703585772878247274805708252362464192277615853917749862517644540790604227062697203499611571713205246295974423276021927616442583037801598752053982976110532721686010466444191639744201078280009280604077909362837511789939597678339933968943780178024323692675250888271627199836172319691375817087847722498821697561321400364034174739919915753883589772841870081309376852081931888569865526492650662383601947399240041566698961229087777841232426967291745023436882137754215575477727790693522242947943169806741964713277676431722003508744972193321929433458951544713184149815481748582002939265109559762936622978847868843571310745842929954367577272883577866912915371806257674232969246875580208806372823081013332429074406879106078105156309976441602246617840983400542536175672993964050586302247675267188021342665926794851342005151506081566888403753238073254948862356568202248014144525993406130685798790692920797854040208270052272821629575776868957745895345074263855116126562827436049347097784849881977058637427024961422810915125083824536581108584423577514793011716285263640744570846013809428009991539224950357906055139027259263855875586206339985242756764869571514120807849748995697845657479097063088472086745673444478882213035697842706645123675728662551801590380311023475032419358111739750779478181531221471994900700854865229440151616374765679505847323811769034781955409272077237300389917395757742498094579103753714290388911182246002346770885337288796629155932020439903148461786703151567366813275403753046672703373380576776624443569420375967439938514674699572725611236293698698026845053505774536547334701640185123445164374102933106243596320736845258801270327139686863885485502517639256176578924753345459049115039650115897112115326341912322862819316812253109299888918659978598373884998521656571713685738041873520080426507376844428443369805656412239024120531079394496400425275581335542714697283014315287830571726721314635653730810727859037081012816421191122434502320273307129104188844514625916302099397174218055943989904679911398217395389056149444029075149212846078551948520316399972564115317292228433299888158575689133338035235136535105960032131364681566217808001762406426328984025655024882395540978537985027375073553376109102617446305431652308367861783478161086967199298176458081672730744469666180024321343184137091665339285711836844103764919658300435544695871425973756050346638163076452289684361111873061406753566823222322074263636554209750855019109411783748341181390079697153516324571325834634498766562087743688553473245588920237816051636972671747980696793827776454691355385285651757742132479607141628551735357180081764189853771627568996064332125772890227047296433290810683869779635381416754238388376554079249431183630691301709909125919778032944246297932147052778051073859347281496582853895581345586958145680999175216384979787565567107524716532853861759702632568560567637444382969719145702733446241588277690515096870702059525632078538030526610128955443845742963526952987474531632304986041388610092691206394785816027737810330911095208456240426745683515736893366895497367688959472875740542613212981312261650081317376899777260640231426030314922715544948112158586197404425765986413443317865573913329094264049003056781251232076545618733783223256764853015542944999377068378644901876854593271745644672911750205610422397914749525010746382650794291309651759117866738440944256253351415802301594876225728946266225752138262710973894367729039003728875672256141240097612556636833669433376126282079038859596259465469554539943986686160506289047944543750187218912281510052942707991720733666255509882935796289048475025458176151604828422759773823257472959596276910718849636978144124304220012743482534682908563072972790226153404345188271643700527719718677119468778088238948401868484805403651885501603857577164164098026424767674546936429899949567722522490251335795223380696529234401597567791773679778445246855759174565042452613716885099675966319964985820407601912110559675003239374289628453627919761694435211442191893650948331531964104547970544878556110194379908163607472313885033865101124274658427060451677007173730826225211868155776520237869412549445435278037925402321739046900337211569144425560941121924749986922254141687342288918587700017288826778103142257012793343228522507701537326031178818462930985394762121246624028534536563216766223701050325513716945014486236153733169632031014190523495940641773556548537505708526039612712825206757806539131253242739314968301664156726086114835249119164569380931135744395857398574918028523197888342004741948585200607177364982941550225409611671511954531281025125099226242174427619164552400126125040665931900796246923725921743726100566331368079258237264923472547814163718737748917359024123345809286092254127200786876346478844661772354307380609338892487265508650500547815104135514005007689704406703197025383962785697557296679082931290948382840288124482645926211258409202939133273910029954611852588036805352582475238674473837548223053092468395539820260748134152195097201431226465909661596449281329663913291577038622978966795238525791173142292204663868930280314419611871494259611775757456799620788421333307797862098435267376440305140172100249282204049970818920509599454993864744911911743792585303683233889386433261267437908558163196373721687474832470682386761343916934705891649776539061126189326731829106510682326794840933870777699599189901893742505044421449251535873970513583825290973289691555493687680084624053874534721686962645563616064637499757306262365207797068041935448509404388629246890974228561157134789958214394393997927801748694350093970670847843442861373611281358849002664622221178562307880012443440277407880083988800145969998842574501014662747190725661960783897169535293021719705882192783780567557250455975931046955052052256824003596611977071714147443568384802136912787674514195246191758065467119935981210539250045265108699070079410756388222706288558296796394545176108522314476305426751061588505829391213415208280527460237341617079364102331637995616497946680168010266856167305882357238065602708691363335851351882687906404483588009296018254006899648981530624342365480825644140810374378039851923913650615372115574710144855382082706579654339688979076771649652586261793977146022816908142834988809466343778542101901155490236717876442531784754490231158457543295869369167196258952176003115031438123219186977154386602341960936969646371876810279241566815694582150828381343715103272562903839781327114385416339323873505458572314737652791558345935715807635256416494230964105722961842237937542738233120392401798934350553378063796150594299547939984473914020587404202099521806701113892356973175594313865719187872989709574171022975785100189213620463515316428661004298476507973862088804344096937840380741365365779787116453163862095870832030266035933461955752764528243058440667070275840006672984814910165188461771030707801413859250151912403296675829256550809042983559797261677617338975032992864515121874386805197197236920180422223760012715890151470251099961002925568291684332111827826933550900089145146369960519690166357872445870934972040235815287597801557948911062257355437236403123812623481899692674448211977138913760405815055855504047371298518021316296958134334671334546801270614053175994224545442295565819668439707643072002990216162425156825152912409815441348957786622165243335086137769052227762324464487065364892028755947431336560448101460224297976237554804893311334415871132433029135449190315153833085167744485366301371752046217627111341184905128295551186345131748999180983887241328208889474737828049163204993290472717935813583468796176274735718999718930240701611120259861424300154117794417079961491572242803317371876670901947773231210366115232594423265320941200472804178075266512902130822118655326523775365637315369961564225306183996506462074338521790914804932601589844631534409981293617299727494392735170063946994051470623405427419886517247194809331391478590524092330619642830011008577582484854726164954711671518417292102443874589610867442564879785519327657266216096236816858069769361724768490132455198098583962607089347645742384974736318077326591832677358135537529416350573840364946255211639885481234233695804238675709190818560867815127369973615780983431028905397683118218915392035365106517905276984568332487358933064041756853767177819493831856716776647496559733946656619221823996675154056667760993354605818884623170739342565202588331181550962349623501368904076667023298301150424711768225033901579903533417558538794835696213252878908314210715798452572686232210069855234646979202936078352683761999723867985100676346608196720946191798514873332517015668840218583672311366586255175671063377712661425071642622653452270109687846929077764071740441447684086208379674652750609746278986225031838412868248806464786083211523601107730414615068842040856876647919528271267783808678525947126729182868291316241817351327808075295516473901533919481502472880382230108825482269622120587460146958652021058514376951979320235018743682197567264725833710174934864432013408084839173987365887727569317407659681692902952335382728729340972409514827030983256953756174423286752271593401112215167915635421799272504672901151367371010597814877858557693560462331282934633493236007923323913213201849791370809231405814550561909555004060981504925180462771365702576430097621540643741413047168806727520132176327990636936259406837183264292104312248586350545839281738171679038148988668081941845622277654670867886584781109281322421662458647724797239913584503933292501615693134726161958919964423608363954809500789734434267779523913425209680542603575061907850674647036147011667576674124247657788039993200287842675734167794157285358180028299494462253540728726199809251503209505779501231112144115925108325283181632754065557482019502149049967830607065540938517535760512668128925591742135368593909304199135316073461132494937789988635391611471756215301203597951935971376628716007394174725718805539734339558342665777944876785867511193012783652478993174851689312957152536821066755167546253746139508281850958323390050431096727163947728596198612497637102946805939220441054062455787484217387320564116136276674264130148409073723103221256940751298996121616711161574093542668434843655489448676865528790341634815386120835213262344815069691851311119874267193098619292550098351777613534810221238311688112431474658372283277757057422959314935946656701359548790883726701929517358492500399277295798165252263451466470869041817873297316518476147542451288222278498530971714233777962726075014623421121467262538354531797575801226308895459031872242063323683616806827907450191194187426526849528031671979715611063376853415677871269189372944321296475460565351984090911974887607968943474300126751171478680626363838123660392524364314106419451879386030335497977143074615368514631868269835718224693713058946031719531363718884102412503593652557768488496998608208017755181661536488168109546949424021341377822197684473630482238782164973533029081684473011236091251501748946412740548232554403652677429133337706178912122461357696911304411246184675219894988567174157921988495926536039681936231031543388071521448978131437261418478247121011074869277940832014557388050173358127996511335477387099616112267431926435474818244103420290208275469530244170357219400654354078972109386805362095552332873403676014226924187816922985729823203536616174402385740361244150637157010981843581609776700323175807401792387431514364192411690319358702352610373608255588985366478183190431311034826601036090799545744266003073699633027487792074621870156229027023013361670367116597838834099736645349960473337530666213507623030191267913866094672995954959974729740651571906131300969876563946978543250393556336472175314896708298911097683370314033145170475972320136047338410886413391140090975027519419658370367170237179991817942882407178571508899580470626003267471968408354395466435939099083135318263855544474462510379293685504650788882777999702502885804819104508587769839380304352029099025811984607263039247933472261345407021705116109891261991804414960767422372016654241732691031800363142518620348514170309887438580653284281309865377761542275403651878775508667388283435287058110402560260182862792553019469595113315011158626993356136322061454656145026135984058806766725825260713429788161689006519070971473815339482153527477322723282375056896573132660615590750703415893579192875775473473606182312487496720396831352746751768560890538602792156864826905361629336288289142061881634775574886336282864493474485158735823495315748360688136855356980944320273558030613302347490463715648648230373751226163337713732669324614474662833463231440698810505508828631480421291604547188820055065942162969237360757051828984905858952024955425129344151503928856272707647183858311228212131923315879142001998275477684263587344658479252633199372967990230261306428390077188711361213051021677041155312372403753573173115309416205932641279864107546536349102248000966366083061164422732311266054639432733763073629056010054990018772061523593741398052662099046890886825069186828662058479203680460858200608053775348939299176839808642171432831244805223009245868439688170482504337983154308574766625542311919830435778827173174881200100136771995827025626842553589437698201684849205534941477961947367640694335779686544774235270487631062824206217402234403061308040102263081269020325612886124997446751755344566757807580908963858374073181840030576983753842658693709826420855576764650808945701153145621324690588162030764257305951119384458838710712431338198223784630080798749000668759261307752186975932150217048673855060308828684862526889100125585093621174430635382595590628441569416788710254328595727896410733355316796063760972150164967578890366464811508512612113739617553088390132881023253627744604269228112358663660356314611935346160106334966884221535731432357620152849011390942307366600261805641185706650397530684588873532692127488617333249618068996877967644720782643959838644582246336150899653481455229577988609417038161768500320760526953119690156130109607438741222385647932478292184123057293871079117912630656026513024402421003810973894423161387568028571209642218975433197890949333792536669334803542553247268755011281194700087742102723587458474690555122906123020720862379664482978948914125478370487534080103322205037289572288698726912809371740478915393634971510041715650501367581018314599577909873018479148770393007583958744318789143418200227418656719936652198119299709479634649424951368885443168645039515418473271530972690504083807853647476169235024723324793170954289157235445787816422574795472975615716650609972808544567179110482031507516419377397887948794787215126171967200605005721706262481455649973974811849820043851848115368031421606244321687693783661860114166127381045066714718541790554178779772279112731900420242825206025933436099768733391504223176740313927916386814102307548557395256947894660928895083788230061744116140762905151511742881487655036193784550136672318676162013982177483912169791257813923217089094040037044365327706855603538972871274619878882748332058027635466838463919306816254627257091751821262802378075347146293618297886672391563703526327105677458494175387792831472163937456908558368572195163819184327637472193731137218483127570342153418876143864960608292009993782128083147076306819242895368357299420593975318039509728321616806866320406412492571166623445874130696285358286945084551363212185952799674477239263404224739228853717589681695505221565100541668433111277798638354602343274823918657574292410660385790997244467852602418979607799232373649020845446069124035219215333602486719920807825255905690899762436518317380111660089444334856942733502461522648968591920129560168426766407471889368392682816185815482933100362510645412355080575890781426501501076624975141170200507542447983104226260626730895667978238396355121437163842172063743357914735248386180339353170780221904848493627210556329773845614863872943502142350883687246518192934884245983528717964941635719885665479277763355102995255119123401684149984226799087155156170117953603161535878047679548301694513153007459378235086728051203774429790834854462929656018677739659376479295195569054814030335680446115731285514752654672748631494987414396615724411945577943197951779394068730849082422810749081721984308246397016802544215728633905545849218618133686628998234719748661609499166880889204491868056510867122119760505660717821568983297507871765692837779700027076215151540491566720812884554651713759559076834099407921967333352155304767141885587728289776066221729640829565169040788270323120285740109676534326519295081373039139833143231958961561408969646213191762405236361770818158107642897281913273477991766227771357895524422287783503586857361576080113808450541290328286791674445378950436101112065178958769281166793314620862302887406932760224953064705522481616970178563807280030430464215529762435710703087747184278264862889105988188289482442364306729166322443688514903823748187933523761390855137400524161323586641201832631200192474779785161655165054091666704874804527418335937295581946065320233324106195538378918073105095588263007144506696854742468896883644917407946978664419476394452572590898635257603084787299440835087665986094250507339777742879860457481011776290282449053022986211338921774156886615338904676650089699936597915341427358530097864096675284871414106786865034051441584251123752744801154106111950383314926472725708235742263865105411135297992345897814008109070329188139460520221145763997518778175899654902688213553490282710119404645187071908112337232003422504256364805078281915997447678863055610048096957959847907267161459644099371867248880119221447715873823296224183004333898296524126014199817020827524977804089350915237201077424857660785902211457404148593156859064983348860958692465793163167115813966888155940827753092851688309504166638468694057384473282934236888631399543137425680675744601424476029861584231566880185220137181337642786569546044956246693708613050451017413956295799990959098650600597223646648421668555839658520367310541203521589101236170866731641579881264581810805034838707083639892509203410070727017087014370389658198758442926893491219830100029955578459267030579226249588863953658103161443037592994722843045233145878879762357163821590993811384116029256311309082100164958102242219912393364862432213188497080411177719205637157956862906721158371890119082337027835161222638617020300077287487546256542834272624634569186444847011157905768591632312941615781640393779734754261618840102787956190270580582105724468085701676542632558220547930887213623428923533065621974086776914407829533146458250068088126222792386432752078987712615254032440886860399659650443832771531958547182364171813260207798600882318433737792333846017843196398291882787014545259123502289533125259086023347842111360745390128730458141815933700583289917621749843375379501422234278363853229585725976531148281334648476636372381520355506024981968179922141506013424427560861232459701777185191322705720040165684078935125047081691008553196096488262448322818480697691408469236472743451237601798016375041762663922848507132255178606584572753729982389155117694378112535206725248505918928308933120727972671039518548761247448295315944456591274346299691202276183774738494420201517743411486543032354523080928359327509431876740648948339013846602271704270911444756717829640614657302583806298204245875062317118503617100961780489276553079589204491517560950315081900062888604978194045970239539538902526025101797567020379525396878491970960300123566311934190355509999931982429531280977176592774653310390973450804763465032280778697563443997912891204888166008326537338256464793186694365859169998574281451972507345141302533189563287333778934485579986438357799092042965472973562292592459846242174268422398654095364745227059188547721844455836403540051431825071771596836968325653301025656162278115086116553463727499943117769851653219262347924595357355369294677857292252200044626902655063610377485546699317203046184980097098212272169532483271994995166750140785869253222724339649909199918472104628955945763835769879818820454329085563773581215963125235324697347424765378821869314107634301390503269624850353946080480688068817642501259114186779558985444604966405857529104030248566643816323417551527650292840891142440069951410587423749396512482888771689109708678779168981039541384047574084281716486555478402625344360299041843881384566478086273660938390952406894751440511111507531402177946150526497360383085653971043382807823144415145332581041058218174237637889847228953617993341707558218604515929784285677529165009438822049334952107003861187926938608721226404281812184195554406225743140255162837931688987802289326194544845019027033103727663774998627566737727920844113983404998045350192824216617199556650801735979845643164131771761780645294882638360957516958041714789971793791170535514486170035048522198113858336244921501691562543452381385237038811982876213911908607411460187370651368237586104438155716410620896438043039537232579451783512687208352487932244610219926768320152066818573124730138799002468502553246505683027892232808326259761134559749729078826727752451795870633241188178972053293467034942142665089145426789105150155130695780086456713169564535757783010003373253809881011650373417683151796516695636597827775007780441831139071601208429902520110264704203238521836913950231000871511657708170478261866231843959202520965378558350164245674975049355336323672901795830312099128538031476862018515804354749956819381532152315641758674260394809080322164195695658917973287940127378904660188711245425739798636855710556971266462197483267147344337636002569696603548432556378763137437350182840764544989746826562818215232520990483319886116788984113223630113995954971060209989822022372682737482999125587518923077248565128741918189925417542432185797728756224070961414396003062972925631943817944105067284957217123173339304644722254494879045048538534192269661199891295061804409694580626679630318992193010074851958182485542785369000701402502153799864290362234278312891958727762084966621242285250745290053007041591959304253616099373462214799032140077739245999538707187318784412750466351561739942637245630404677746985381221229839592570185874204439751029225535284804802768180704538690728830267101393434857662727858677824555929858186924558488837123568381692034149358414222309666797249851428127626178675814932140972831287370128987606186076468630990857313735601173282788674598516634652017232498064328395585820973632422352579823904175346305740754953561823708966008723419860341475647723703862593003685020041344876468345181721972844157747082242245146612950309582546575341729406382750537935267018401598785043624412459988912229906803162919961514833378409726217651882238285160520244469802659886521925253529123485253548988953729578265328570402479959042660280215742340810701447429005058190595425688374760902716968680384490301667248258631048373871500156215173099774317915467844872828959036136274380759323963493237841860192520567690995250602591975724870045705596803720701971897333069786317629031454551366929431416577371108450191197086825772274986794282508983999057874370131625565346199299168363752814000868282286608967507346700631970903775805727277686180274785595695259886769362754938865953298170660110078626165258301261477791839220743121917973630563997635377700422784441815152551817512166812182164624992464849639709748506680159803703245111066741431772724743756160121931143404836717794023104834748884408858083934434182487444270980119167172859476623635333564507406474151088135194744072930182103191982909299599507260216853227745385759891932581672257909793907023311604440820132518754648395590886571530649169568320635145973071629436410257217315953489229820130339347754839242649947583276020432971493922981709791145337430661533512711379698393783256496221088564370132909262551494553772507737053090669369403031699725577389726118635916804327627632011880532225159506609767261402067609221962144562369218849432391918784603732985871665894316437470011287770143457726806841248038782407545895650953704234926330433913398773969754417306382439873151776297893346368775775941513416532576288809736617932656729137663141215740542638410383548895325451072516351381575391775210146302060683032406872523491285028275713377107153434872101286724530679662332499071753523330262035375646458941001759690942749382805916246648723684642388937613723014746228951838140632033172718881881407753976145911029497000417623216768873564499183641215719282510079932407123227249541128010104500402537892134161215208996529648548231033918114524425893678759390766503146988934897568202151606949924470335101368028929082009867299537593640921140819859767537983947417060938291779638454851949460458597151882327570010169593909481978287244449380436538222636041057488008743703933186825365270113771653258057580105733720635543656555157841683946886802342945089485590714798514379897803372812800734001299169251788133099765017030607166584535974306988406444228275626464453773327421138344497444408040854031080223443645163030160604782084085099067751141583959115309598217873527374373403995487897186068203742592169562941419376972069276773054422336660178063521145498936715673555393685206240735986564396909368766345817358426928830274635310564594930572646372738242797405687409489339272864309421157277478533124618903643676024002596285536065494650531184519700408664600437962628705490343834991889550470070814904205998636153519433043925605530443400135135168830947258824446480705329120969764051548277498502813443999929476184566449023427322796971471483726295598544420427038140691107412329302554255371018410503081665695145858904241589618214894499437162156590327005778623786051151089404494295406767884207162974043595474510711783480679959779618172980761092631385030690936165416526014848143195072207479163975929466281433886000884717173653464222475102915903805496809371348950792286835657351238896557231635428036411092620742315102626189166705673288049890847559995613706966546168515214622752509210342721017948477528053525959878971939995165746404034516197230766190123565814286514522449928158143258963560301389320198383034279891684302579345739074656382356670356141513829685633741724138177225659423800972443799829669899238539547426747692358429548599818072406901018741305023778954475862568385466516556109960202422685501254746578336950567993395115931637636160811723315234513054294914965975175200515641104253155162290730601292379755727605440872416443838663102778169630386463619725818524539547223925400412655646766087133226089577570309262141786406018769736455634363159180376579735760049571781732891075843949585466040877193531018064353923470625061813550109491653652620750577562929511989320262114070544353285980012111464951866985264816236890215876529235746453536706374787228551927749887026670338370880651599641652444903908118179064623580902142495777179836689225970224361199269222597001148015716923189029406984136130392918039502595002677912788888326826731147131228224012120099692375423156858596769945159165448579091546607976888324610043768717456277744244633153349488573342764262049353450863429251760901071071935866010443022525136096726910484872593795175306750039656717610067804574124465837964174970446123061011141923525739838894279297549049751650890126376224837561092666499015109552597054785206601785470849086166561850197179613031782823540214825065276693568068740877420083097279083282989700622090975667755583427037750111337763565995602409062684076356457848739601776149223558328058353537020536251434557662196155735327057248625647265910570752439920297536923461849611194046693253790919128982307619147259281453399226041592064293146805198059687078966214989555443805760652201572513326696075934855637468086353423798152773821219772727631362817431450640436680602961523616973620049868696880218760541975196196163561900076514190001398666128411837328329576946143783755581911701086283090714060472306555351782962198842491801082248179439306737885851467766693834648242048003012279387429861647044845329804042001368409288394126029135166053962083861130431510915520585214226648178047377175438521128717421053148583099578793842292052284516485187766498376938136207966045723105827765933189776357169214196998523601736772247894263272363767455292424187136946957492881841393386257394199490176755049054190440166678327390919425380286774063533450646729492188705151967474280982052021733488588207814761086011769750979238769700128043504317068850507443147223009353663609924054634268006889640359831950737662680522287252863486091046459867874955867027973424539307630859251791751633159984863988120948186106365092831617935880318939003609949979369447923903222286028639394804947377725356129446240383227270482033962544150570119824089321398808422210365295343380245004208641516025745319281805386292358586098332640579634996488992212462341478135193879194053118547322078827820726163011920073928950330855839971778448390632563286218198803646044340184081538665046039499474918629535213140908970870070936468874133599424672137730866754887433465540783591463701829324259594228589486719267506769705365941749663975602825708755949273805334577890094077149039690309734435060721600360063100994362661041980329123396708103715621519472954822353542871735937749703913097417098616649100719459713293954009254440839121998707694672815992561401026525007174830564184497181381950600976824722074624684658927922938895742767666295732846147043867389929658800749261103485535494589450160755031792016797945157476496577448520367350526879652450142501142097443088973030425207889726853040729557354124790024747459078259488253256785834021544724343167768185723379868320139574050285601236919892324984421807185143164143557359116414658238072347229529235824606470725572201616418934218614058187472983532197949455148409864059043986420704503432549146700520273248593391088894892207007186846509215159639241749991766529922964294043290425634515640365601042745863067398484054824150597459661869301692543875863435586394466842560586224483785673537004653141036825139065342149370952460047450733971073648117628962683494861865318847056420697659173385684503426967617418415018168377404237588275615217122385238895714717765873978648195787722028411204171582959398993153900187632006644331040731658422140755176618467397176511999054507802962402522314602015770869441949340788630625581242647256309380617572502911390257772909734513665786850405343849430061441789917925670038694175389507196430380768339141380323790717527727247875234737637186338644322367792013031758718763805922257721954782265123908869575438920419021854344535201159866481793819100517002546138375910411132533853643609476376948857020526943595301448746039138102681277978621333206692809477195436632076442377003528919580743815816448282306486241962290882880858647725144380687640938229634220294390523170419253843656290529975257912911440712001358687415218746378812543555955463554835704225534705774603243322569904241252511559407378626954670489158003125391825946102221897517920401497856634800740219132263130846238410438130239153536013554729214167814840335083326575106944260227794835053959556680688730230657135952661899946588793727813346668792509362150539262992192221536470086714881057965972631168686480801348012626258212808200978589525116869076654952656943685009047493431590907175972181407075930004865553705155164625640961227904347125697757749696133893414374211375676162377419901245239209371027253533178625304951230639017476152402289576095517081744885454041119131572597802324229116000773487375404624568479227958914117775462813020000572936726653376294609641381820416050418073682314051432594615955410792617812269901699347034675565198429551363671034802018404765703757303049139174645115047039737742808309841521086625820678320430245384803928423268576676671979736242310378864080383095668576938944732707514533322226357852021923035443748171576535040149191690631928745716201218715307441745300460652164423431937532143721528635617389940060446634506976719682597467498394307192199639991249142387164260897098735935453063101859810086752028464512664972624062810285187729882651458987001426128865873218146240910712931358491444532855594198895677998936989436644407637600345501989287450554824992640823612608460151533736331202753976251681648993423685025729888355390988931957450516536488096254097456652687323130167380391207811030253769925547045714220165223293791449662209300407429902805332204095014584845260575787159996309227356877982611663243044677095011140435107770032154797765954147843673881645841869903973702886120814581938112552564590807314071695808623476337327964831931682724515119278143076108909925468181278489685872129762264410654650340886729481414590686892392894266076724342553845491826267893425570833798429143645125790054324616382372085643954719118501142156621077136519586693724660612780133639548351470667753225356483975795511093704572904257971164892223885473403882113142436273326423869448057628422144003736347197112424938470151468142574762264292947644720896075503209797907527771043775702129113776454654997205999176378244403966764285591320741644073510443509506539742136557224696574902448136103076837116694464108479991556953812056344268377084677870159135028081611917504013466458823354213271837387932631409455607193180760980378095626591185019217946721343538779976390058039431558681322055497668778840753758064657121767539006540413499884144971150895258944496980463005330302198818941138333629202013927728799252385826564479362603299083276973013548551488286571176767056564802425328399116055505457285117461903328375897388961278179314400137031737940707276729793603048678949171495088726676684984505059071260602633227652413957528958603605151787328011272595539763551057724195694202662301315093011470638401430858740224495068465557749893459188791483513547401379244793723860028428194454766554869894936268328214053802103152905764338765648451799077426690401311022869723136954556791230947247948416274812603756922108625264273151467754548202079696483083269784613833633591587620985523657728891166470991394993599709515925252872619944225208346403425084721827369457306478897683288943236606345829957090501908333517254800277088839341344216710466902078921130394832934277857407064556066814917060534442852009932442558619893730001290983470361129865510263631137016698727693093777368675221722027337582841485834931744946601438824018739392336467655626940428248255351784944185594685298529156857175962571811080449755365285211875717149620063928902985696476942182712325096557134328108503446549180309623524250098668671972806854844981590991458442492501311941478242009435981237386609265665466697926108441168830394751577548584539748488145414128954747443010908934396115909223884554514126625075999319832385779937823095969396462714264534610875102746228691861203867437124425129471501246030744067096990688554339447872629010310958917486723655617576381303612975656250752619702182683968591003161826440862640133719782052997097878654553377876280706252266278438452969490281575723694199141066522398960990613754281404526246412487065454496331050622236390069659096691926184839215995139203919322467373910953502468873468389731327426612776787173343243619729381315363425513386888087138901343377616573916160497078183154800404338483509321828691856877098096306750421306549394602541255984617251819407415888684578480680201777726030735923914327127665697803974127539601296040563746652801171090899461427067631629496599614380249375731101999298981629989680583353819416688004758096977267060754371106901700322382759331017213406717974523493987810644997138649639707283839395138310117090171039280220468603390899419775497990890428404023103478955458396369243516667917937411448283002554366079250212028561306742696065068311198381687573977718498821579736381040943389623686602586469616644283994580876473772392662715257557444632256922873277133075693867429469231892919088917088338068906243893048190577998208720541037121692280777487509584932041546023839278102593878190187576899874288056091667563387392724079979479934808231609233385063664823756872872289045337505009617072145462158395274500714363949153416341166222959140799891460306204349135041532040419575889975696296828173311691568425008151190394373182350845543957601581278763234143386196013862128028786696281690013432220649372456961608866486830979757031907132432626468866610915056705161877925626026814996621629535411141134912593203176618177276173067997615478019742054178534792243125006845112567418445156579055377763696038094211666259374275785648068589291281297179606137314244188317875222772670467298217026560509700259942225620518702484599174485857365203643612946509055313414591834719031582909457523340533862851147332916566743690105981785307042482860312227465208487136107351707159317444179311393179257210496916118476053148411411783288325365537720860837738979365315062365615405186025077645626008517096689778637655235402611051877334583168487848907181121508078721779130150321303691597549286158858011981820964943569542397560779527842111809371594382455439278916975131889572679559549589289985695071394440874277389627016997329321275365361639564644864504640321870799630285090810399553721750131912968714981674929122168192630320225862794908829485363505787324587377508417481162530179730285228828966839848955427034963136333694642162100540259744275154899819820387294555264079532223735166563643837331288478286918682164855699521597809255575458767714974992932238343877207021889288426347251911003394867182211381040696122028891708641133684951688293256556519835131943087357059793097039626519735225938232433231800721047247649922518913800498745406099016682975981989914771094393007376365354373474032505592483165603869228467718988923372138742130504222896584124019578819691750260963565095006784525296497122971933174875319790087000863805401281564884185659000010230802954840119469666900799639663843033011390253676546054573441592457119396414218669297843354220665550160655688702758818568442204492215641474446818267865229605675456802415732647841976345577697625486765648531705027963294131915899851802693152962959091965387503568013676796155014590161929793583766196496852189676780024923564756547616953211122991614249052735854031215401348148576536445615329334001632349843320310843790221125819097611397185297868628093579789167103445717665350552330667190390392223966803103043160994978239444067687613110158986851717394433844451258147128981648199689980648205718658193581885386449715655066193462228496274010111781293210701448231318895759988304828425761003449182024526221519721362696083328012126170012406037685497608500968015686372298562540246453892110511640149811716116207694739546833465339209398542743740235447592332201516467143371723412969828470998987669929952084413038688317343588714808215624437320392933775297554636066225846953099159136314645694736702552365683234314974208530039065217319012381819266756983917861786807611676604654649335653709277886571913876455252383003894791844164088691214033806056135699116281370140121379136469693050564651065579767523655573030695568430674595017015419610296804200446556045192727615513188577339555426679465036699568667587591749417668943540758961877018590712146008079887602808093068011945619705987395693915407677344012171009350334655105638107788186492944482571256295365469336896216063799963931954778405209901831057507649378756174421090550290505324527655811851976092164836402012004103793020970404943120026081174573591388053733453605626663530303511384555642248344338900015452610136089692384010665137056425313554761754698357846499305760761329693694666232433201691586054683166838584500059537384737519123370090575695374746278329055769772386514667638988331892060501640282881570171950294098581339891616982156045154528486099230402483479848510941002032301624246559359505921903869040806774794966096512698480145981918121326000647660977423030682778588437040891851403833254583808558168961973626726219150560406603734219038381012241785673082559985732299138387839752505906913715191340965420711743079697474591410778777284306507301418728119244572791443446111745223717986608154750527910756168772549475058422836949398638446505606683488255318468148612593176367077655781972948012073845671230997239721638866585309652499857568083799722026596683230344334556252114655646251138129372981425824918388183497438854116869731918439469588155415994463628780720592706860360022431893920312008086209356187070203057755939100415366524701706681289130565951345827963986618792709262533821212254916635371028548821659993194142337870165373186055801703330823808984036911035658238297536356115154541798492559286567524640474398517837908834556594180270107495588304002452389498647604347513394297376105711304046822747109974443668985958389194849266231362295718139056178037252808031409411466897361423346728478287892670479073021424237623317063232773186864378791656611863011784763822261313883197155609803204851397412866900384200476228933445199673957926284369690664024764325073474536002365767409467377107598517788512272272787640996396911748246655588896462743511833031216778373976524822865038377702211008741253218370376237033820901748421829686218221881053810669642468402711010147850430602579071683458991198998728818525438401663984761110138668441689035937167114647835057990381360894225951024208418418922012161041270637746367888912776413966176302906514848280397772169558810579102544839606959159573664313143047951983124509738048642284048800019973165656776700295183722050391776957403316611111824338048065066374053985512373876416927323153964941174306871163956745551165032524923467221648589580910228018041661641984732830814522638189244468139722618656589626157840780933895976277981877789560584413521880616812622813341271922914204207402913047208422935001495143903054560069773084522377225213778661420232247420401945609572450893045190062399426587533143282315554025697711354838922635066942616454790353761443493454205169512899603500270844312142767546411137656511131020768656033879696756345361482304801507023784682915662885228013340990015097356458000759944882639696626111811717722336185220270402148213085815118439136694314488534643331712612786450022523438709370256613437251598281352458021154923790431633984904120649266488870569300056474484903847956891430955186006259136440644565156589383942313536244201344426393217830165162871172486393611364156108375163013443736227417938607409969830627835789283810010529454858176325762180638830687954062867249368339099269557170812456474616361554502764991785414400336044065725951915420418258321603644737248052062584101606716906860075316064735383376376929247861157155569497854107857097906821509644826785967232308985789742521291815594325271436960701999768774490217753301411578351368459448879269647978793355786805176545932506790918103778521865452239727968404978336646708981668383104172336859967729088491941013530061610945674135282245000546508660740226034972996711818809589618669306574788264541062400708680510821226552649509494709841498537886845044375906644261993557080320561340199043006213533531332140955155205494735992817654049592242352640585916694764540384008076997618780614670117718106070015367210248695985187869307754667369517542161625652421895479031789884913725013112877723851207748707398873662500924008238246855385729917899153125251874127828667137047069397033555896907733076276606515702508246622775164407276510943680241557086875106302782900358531204788857171663318968868631478482397922472751691235686006351449894652143978226216329510792090638910997956535732316713222353777469994366651447006918141752351980488511092489655498897336113220150154112078761970418766132344027706290990759276343050519623323316870393284558895308195230775573666721231370626199980242366045981115436940726639340055609218142191114521145185516250648613983792933565398585406515165195789890819873315857192548508056293059757844330465200420099340024520596907897167635083046150344792785087510306057612725477381385821787292902602789396484943351534670547933995847286091325430719461915088069700051660548242627644585660632820474142702796260605627285940361218859428355305103312639074433422956626518408507294290252166898058786134895092513203419941489492501210669536390746137041962435865170743189323429780168866718667887065062303757964221413665042387104618603030829448900494900919585736353748113731964127540504197805589276266242654358852565698504280991277999642106347848985009921890563983565892285183541634156662945898966701385238278522276321737375830223844487482765971380190202135648022694783027619489982612396818049669799224368249301566908220653803083014706184773790007738819922562888492240564991042805584453050468708873401288684399385833918529660728881716939340329416161958363575577661111338988255951549926389615784643807781252849059503007830092956160145629408706824033214709080118288341210591755471640851145704286266686925756286625054678981364499661689233797367421303633087604859070728439744407021363648554853048312891231281908404453204825318231353311132638792286367749071921221348406916644655102021107601662569780529510534074806710503543627086909096187561192750256821647428935929002448212329854358285399050200780731301791112471835999033911609010626242550752759606175323204626080318131896621471530367896631154807554999575559370106496751168118342356156702276005903977054509353076194648492229888111704174796963447743284635736270964380054649684319253110327182425861287999222583795466364905455214400011832462197726491346126791446206312890630576164053902366971610825689386815231353560541338812122817018623570157191985410622294026331294928804273071100517626799019376159969792824084525349951804121317689872650436332177888999357374376105440263444893491972673214076311299009618736066909226127031056795657373925087557956821257048000199157284613499100307780519331041939114779577963203393324991288176845548566250544303268323962885401004538656634068823454896003151297770336005559806206033135779644745684786691347523985952519337473487917259118060265134797577769610316408679767153704868798610510727274287943517441358797169926621464120173147605120753063640060289539611881488539881014073432196769583380296270137938068405445606614982880483778734849256357565035001160476504016538057459947004635120336419959398491633024120812852076827215873980826282406450507570198804436973170368091357593233870496921675201183650960130361019644113067547142043971407881006708756392402185699365211632552616462472612704642350128522343988894020304485713990967302480620577209659655671661267611068005117505514273165282332331160302917457576697810606580208557020859561123065341498589626205225515168443240035434713563240343420334831995845736070348228424083637485483561084444503519266755021329328658565616316560634297658600777103005219611040284753126888434628362615152193674953351746826407676340130832503797728267558236882121213286544396705469371438725520814939043009749762254587106900341602356723026662841415855232764208498711673548641020023520381454775933963827356234602053330368314783120902152864776348691767366487270217318930993772966928365129421247011783837583984349441103646702963014036425050831642395218320416496678616920883553517888243897366800821826494291282695601528823167559536462559915994586351087629939573176945262390035164493184821081295241950366958949907824070820031964255283244158323221119992850792949668476010019307997698664893703987244807074908196279987965706655263468091527811505651733576110465622144749450461091484042750766455552907377313646996500888588524865356860014278559067298280626586775511102175878945922356004176371047944564301036029981807895225783244245284854977796263074929203337670710717386422573262539770997848110759487189907694215033674475230010082563663887271123629275122961539523829900169898139414955242979325227102532591018262344248082832373489296134381882413208092211239899893185911626282665658914373888083392500579732108221198649911707960882003978318619402858374389902688394550676984068551238373355396393622327664439294587012544577505135057527233745386525525226598538905954502108341120100967251274383371038574452195254276423284882346301201126576008678352173526068949002319976590235526219273478955921263726563193038124135396706265537985241403665369343171040458320543607772694613294394347807839549646491858775521237968327569244101522464656396167221135636605961183218858931411297393289159451902577240729548717447179033169892480762496654925275372768080577802847078922334580939697274728684558872719430373510537868043215534923215090493611431535548794141396001699542611369796687792389901329310865793357935458165761084018842851778065944116805035766416585673407599495330106946104028035165056680516818465193390558608345156177466989165025894874260586432661460909983540440415102213363656525290328628841959351574826309203270570338408383940406403485410663462791719207385078682346278896270273591563285670308222982128044744733308674231102562267919505136812683192937129817971026408686040718525443336538692131959605277912111412359056994634664842695651647508473779977643343361902525069431033752720237865379160226668550646691237263807627442252583872448255332398894616226110786432486230865830495595186154132679337179548394239773987657741261045295682471524348459556310984278627830673982039547302801101524953155010369318277468795348534658338785283822869090991999316509453236000485635790221219539133642096911880861155314017272697087138346713404803578587880188666673175259015905061773908410673448878416492539373771274619557474280356112614206231388596804090461538692686220635524644633968664341414329521067398585101719484280354710022537379848575151357499211908643051143998932716878985347159704214927028445566434825013071582988201388837058657656174734470517572566069975981167143200178020110566987786929694443974841437323054851044837837878737135730742254407044679870862868244220060074595043881311355491922805873950134613704701392074413408311670110863175295277273412715583349086647176843303100819466998729934966746578879519273578632286126465010591876775325893535192778357862810772039928322716788306331920790583045723711653250676459566201939468566030743119298786887482957014612236827790681551845316085301575410736849394774355334765847058080918468031418803122454097400098484859114984047682880783965904117605491173471795084351191689032046052060650509565078779370781469559321261748934337613943159962728037623856363720743968490784888309330984300440530437366265364093406843556868801619509234933363154625951352488233009040586808762350011425812760962226732910967469728716272776340568385244004712379624454402572206116077260577026611536181609439029790798940478987552304811532969720649264476600791718940946142004439919985816828209279432506168724974110083784733592731032595749424188406636701958462920945157082270292426793970352253878572718912853385744948463244613373689270573965641130983159114244429740994332584351359462103750624712295842010722888767788808170708059460760662709303529695122518903771829356321080010923715319164214234867461142363867411114379201322372369175974559162929933712754940840499580339040059312900212096842801727282735228751414813739280263356017287003257523660577227718240819517173463649027487819651177402893115100799006647962820148300109099628241770270390230665732279323284868311944125471680298556207391258643769621331077810444936682873113871974490943557529847275543327467190413889645708331850130275429112242580478595394125455969475193940848274414149472346949782146195748821619388302520160642838862846871639456002115787147076005950938662994404060800075844289165421834444907612746385198487416464370981310653494018272964604796971746714452077845239885395506289574995536939520410533883547110963021899369693533837034546515700963398969930116927510795936181532917026958470260606572373468779887539623703689591628219925067781124133712191089422798580294289653212619460389755804080051086631710474484492778807980562622847765564841292029733947385811453772044941856089399380446693474691930947910557974107098603032889178521167940088290156137182367027033191811837618340652362516871515797197683218334410062160583296578008563789557311197502701698404602986975987678629435204718578270423272761968650363553440102039550334708066569546746625586704246376233951276298372623208780171781219041380764634077901056610934770896264842791912697663161494365692596725782893242129387836456969964956707116552167779404806213340660517126550900868362668371460784653318414222119302410500818975222032957295593105815006222115792852805039197500917479148822031373761130903980654943995110504948091585236947584703631064464224354620291615978797673127143955358520482533289356577496530523407051183408312729168207778340333090950709477066060854715516353373433116221748520054148998873648904346485911854042940903945890460973100193981485536757895214015830989199385852093143623128726303304909912567390762977284904286663541040261539559982182635510457400497591179880710987264607124041847310619082707789394222857239324404720968327348180255836870974126543051519709218298779736904072063418093463202348120532084910332136609073148023949637541747107228230044156768102144950861146535931638300475670682644696496833455138607720907939878011401295913645501138381652704037923946288218907858119113728504919224075785411323586403834836534040511006746962349391976702861403631130101176691840508816888622368332377569604312192590394582796544390370825935846066845474633530075216495566258929035005736621497026796219728316974499202266867590815967170139839555334452750588586898063272510428833821119958092336224258570850184322909610924331107091768078503987514762934596431523953610556788624862676308312289641227055022628229711742100356099165384590292318422826581260366003376287361106705730408819924010448861682300916912513401068292029353268556047667225169577150276031098146595700657760874906666692136851557492036549834967906014928956836523844176777536113117789439426951523352792474865858888596799460695018675178299156006848190072868190017477050601911173445542730907361380406020765526394162236629589611512922053001602918561707048125116925968733139380363358287298341837605422183178270205613393751372888725871234514692291259318013488321262546335420059355774371709030588804363957721880557566961925191894444604832461552964038001860113042049019277429990201940213681779561685906214018967735732862035992499294276216895241128566068513621158979580933280449721245320144961635331897130583727980158216768710323441029506609048087839896890902481754312897840882394815479731263979949221032646580122366043617627593133407214398748746348456583972655373666444632525189311475311571213497774948116147134264206372149971560723661765980301483912730002232676264362799085900372372274116839036173807861358096448091237662197612782810882047068849650202084963024769662366736192876214822120493667088791255813098148774852916730509100259890222804009562087689140090248294519561057416925403258677188230415531924074021936105639175444716740407761119076909349874733470488584002950256897708426242161952799858759377952703631011824000040434937522329384327534614574721243980777491863935739188924930454497458156596971627405667291214339211929700050216436822580966449466923449282971533364319646763081833367372470897906076212379440408747017198257778087342670249230987252977785706374271831674050845098559952367901269716438948007024225772922843316304077162705993030896015990425638800844869579958358005044894318741641188913861016564923728273457642182669683407324672932377227986717717651915604570881660093259938704737746573783832544056706583576565921223435029688578346438501490569629887411820587948248052120979209024042376901230647811593737289021308332317304186481085622083836613105426217553877052446905386993148879692697490292983344019932756225872948654760601805384222881158697903760389765270573443271288592063535946272036081455839748197157496704079854063461963054698210833991711573089319334568669228396032426201208859868639593848039530941159847415186161930851176670725843090515445782817030911854765495975210798407994006072347882600805633433183912516686624817817855671150151757931860999330951561443173454700556935381621864607943104342708345250982818821968293183719475722662791032417443096212619296263528695008360157856373788094138988778321291391663414503349039715162375624249030192137906950272514350793714601105783798692691592907297889418129824993648844891190001487258469383780770636673219346390194726064862390338133493885551087781356570876586226675007377481919695709059508117877902690406264612842857094122136434608955248734447561266762807657936947482513839505834989033683224565534938144201443973197613035010793905950823670672355102600553949873604897478100121301607871421181107700251449527547507356946593888303797157546721061965110072287215129724500281653749925846914634900160746530374773290076454689832460518119226875439771053726863550447375532995960199362027201609364162111200722994509966956946006578609904635251725121420483088559327598548978250779323852432728092945646737386307711694191843134737427398116560324406797093309771938738216339802030602162211850300933125943423586706706627718657128635413828924466925018991741525249975913960353908963804893872555838045354479002189844696790030438646802827245861749104868131159041328175147884298592035674716593612888881398005816230987208908968367222132514563922478156367906215411797714344818878046828799848801170190463757763218919622151943365035262889702932849465956442029722716376638253538489908664365837066687455816781409872565649552871796309796324845755374192251236897542506338524923091013388518179650810852384237695725313343498076594035726298154194780624646926310402284944229774973090611721965755262609875870196198856802483037000567825541956478871413305492344854393082522850950374501094033238788914562213365755363482479190860362386816293279300617801021597719915228768093979344408479746410486614367214072302198806536826899540963365031773493642773761263022977832685067276603843257867200367681670642636987160684335882212620531154034821517537108361766010380261901235661987714580636664551375916306449062941774644737610768486051788682646547208892494809196605600411808632317299760226633532126189895724762445782350257603447697284316836381833735551863536944195457750679336021043615241577271538187149289705238149349810818334366115778090229425406498206543293929776190125113568273088621221490711782572169221387505666160493643386566516021696725852574711106309190949356931610150826146371870363876964371081327843298522403758389187996605055339635837225844379938351505884438801413664307545576985452288327699193462364423861949932536726466915203997621325676376284034911108067370082790330364516495300027084140149532001534387728914618309430598743647388339671375134314020915088374287620828905609837692607902101804889793322936402634805165176044202021520934462596852246320085639631810808443869638843286376141389791088936253916188409390922537603347707041288346919176376144081075062736714789556365411827166188433793154622235996461485228628384915221897713806978501118236438860800154859907262164527275754410816098650533259071922587602658870945186700592271175694814638772156147100745584561070622018802403061282710966046647755103793216685371477475687624301429969765371196072948470252860382138062463873992194556051891941320383915363037304397522265732532457272868414393893557508052207070189415168871563071869504671896156137443608707114721771843168661030920076776967348697764101798770560528639143391305513816104860204497525246919530838810627021329869519811974409356337594306390568782367318478821649278178642578467093447411185687598149435453111581799464290535630517179312856724796253894653868281783439153678605377811387734468536649902860240817829343958307123737966669146397391894139724859602840160777376936183584380938520040402135807990518776653778619785144589317220104686162522311499594698468060515531983872363234118099821281566778147359469835754327473093140605162913548210149853210876947409937368264955895454813299701938306985531806215509624517843316705069529854701195922455519778858631202196650252899342768238102843219739015513476554595454197897548019152937241825711285004730875036093075082131060242153310918628205762643558252248303969458247341835876546414388333609045623089520643736965152673634640113918413654324639192133084018089786581555973993221488726595962551820977708237983864828102141868163857097442452165118035782327069594251060276075166220521779825202776558677372996500691401610022784549207901667862330482822016297821996096950340295949213879013270318106501256940798055323877873612772020453165050478933863795008923419306110396231415382816301802060618503002043094910207325656268510301965608069205921759462050325340490165080226680384750144967650369840376635604109848301673648232117582089012730086209780282036305182509293358261662152538587996048247515032117377984150213943908965884214242726555961556431509727624963603057415152551911293143021574875210097652602653580646789364847939752879411920918956352974166911716441226672756445251930335349374395157298183924554080946936686116753199984508503725930940566967338873119889777671786722580198261242228390722513592459692246682944037636886473097224377871792937278966765379654488520617718754534043389310050764774650720666646209390966292685412761832414713229538923879986038995942209593125168327304512617245968458226475357678349247382390067221204581785456165574671930315060053564159237521786142351320395550525914025690804527046893728519052914941945943365185814759192932644989950473860810727752439754830614806477311638572410381669865546761847922516063123742619961728520987902370166022676716250515547091096446152286078201333579763097646406606303594270588285231973036059692113009248842043473629325093055083577962772383162897578142545961395540000206850489632698443875333069360990541126853764013388420097159224089022791675798106606796490436689643909254698641252778320784916288836837368645692485633825625655148056872403524665910583996664722196313700309727795625083904125274723957566407438998169100888731523779195986100463393829043285872051687367404785718318173060977485592781581493256178098362067229847855247295419744660466048466046946089314285094007042415248425526203008050822184662076468285349639699433515470732847801890754144924399193783802690546018106486935001169834032012591576317215798495300812665954992136308232600311520527688377465836984319309616744642056078188451848319254312935501167821181997002659183033449776535513378112657905282542480480315970319630814323729218218543210074034078435517548914777064422663515681344430193559879336410078656210275725373990959554639549422681259109017020643716205256314482404889057434320457130845946254773344251358482674196039929354984227681595018154983407482916985515896522459566225588199717445091645641572476688864598087543543249629187244413328268430916068436365695415365669668822005304207080390690832637123764375782845619607968041883702511126147179502072144307459640201253985786036997100054567466192502434769471221169368667948838199061995747976437592961907998807287916521323441112123813851200266230727220584806304647306802943228555321202008645373423428188614615796533093931166583725255240651691775521653228609877984643072113853853372678882467977842349002112582532631124384057984078006005008167175963718647306196882278396634800501708558944156572082594525567338038563413318997486427158143017663451953457717598960377388066411818055334966242351869690563987161567758717027397791990634180257168092187109364841849365047186432303104576058117343973527273837330556730534336393759884013334991828278296936796910594077980222834669862482798389557810944273034496203168016881990383243505072367823740227630130480120130100645366071230218919408468088313004216649758588402434562970844887255470033330057381732462679902178537948028367567045292373102975975779009624982217047240186930978844053344935844251576849737430542378133971423164407773348012929669618294380705270992918285076998357887912311774937892553974703209712849708308195356047848564628352643442601426406881362311184595176894925704585953823109666752023307064373285538310739513596562038071933652917399512292640403364847332019882213143498676433030512340948406055242267792597824015771156422563396971883768016518591080794360119312308241420484981327349837774582801975006377091320575296639630659127128497315455179909323438513941865489339894892002106468661354067537248340662918077362102680438201699085708209371746404543877790687938403387829667932860743288957377167334656213272275333214605890366155283788904808016906838590559914576094464426425464471692871856156944088283802523521177601127483001193635641533187027858836065674863750063297922848825174945271567549005041250387310045573695123306385836308581870194772090108781702024894933275166156455356410288998297648052503332066850671836210749632393856020558099148878261690248409003287992048535310890727632942661047619595810089537194362159504411917711960600850510467836858542530288363829904079513042208178529119608546192648009470075782497875581824655857780570970402701154829213905971297468887736000067300811687783654645428386058916608569230850599564422788074252844207556268006311716215012716286738952078044111015248808592576787953032494769265457926392485814775269043020271006840058371710569209145316004548540492128563617139908217731984198514404155122670739914077085058780682276732588588073275132363056760643020009682323653717760065847846319158759748412737091548065812090776479469481536914814288093555685213296586508848369742252389957829079716116975744729378526843899369237647816890415877169211798512380710978420866961823910036333411320177525194779454519262608512250131084828288976494764547066226148513323960963531258705612576356006451532814224396096209264439524699804453055494174649850869233979067586078537973475063535520695601888304455774907079562991147801735585500091622231714200055161511462101675478655573394939504062121949275829631963337496471347931485947936570057276787127841938741976462373998111359723957938199325140505814278715004813644553375423485016047159257129746247245997935209707944529603651724116321261036566280746544024066940602623307432797383955754307321129449945121677909312610544240953816471178123279081089944644907012755062750844983207076451487904367123877080627071461471068160754835767867408972491481368539071835884721142181809538583764194409864713667088876186219189017850393996731604590625581506475020890792044392152362540909415978788820515835685500561710038154288584597511156965488690465061242917775024313322141957242967944721938826510779646818337823196567871480769681216879414758447618542892549049122514348591370206193281498186150983443825155265901410079855841599434028079607497644533333793614499897979479185426205244151703564100319796896402252230651871912571780205355066105460203857439648241427272564430448652776086339069539053958813474773146402910822828026264791722403451252315147309935906501932352683469214166331451723738468364903791705210219485566633071234601242490126865285760341729708738235982601450474395715004539886137170440631406009372789680306716782079106801447474823083730263527226884509738359577170246827771868382512028934371813812734202734030296730614063605904058840685600689728711285019791145814916434677552860765675139658345945765963774691796398773422398590172391228304671984980476747109830922733052357090373274922402489253631038011099983757685010177419720127946928544169379301911761460696991851870659497784424224259439323691452910725479977726637287401737253458358733841318480898047898092499858631489224614186572155400184609210939174907323628361155716669979303295450333090929327899141583485103835853907961231413682811624361921005856734453067699189949825919289462995526528176126783104556252608548204066375419889614987874597400003328703669103532881989396601084630991191112902426258004587570949403408214994932828426040284731717565999652196403774594259746714473865837424316278851197780432475517850530121174620645808600792350213788687623921458095934129644543455851381264965266643746374430704520081627329528987777720555046570230098525978291599834511957472374150915476151970510659039874241957350518810696251074839006626688263136992045035573081794148961875933273981040903062618781267087280316515748439192763117913665947891660393601412948207746375903188043507060916792317256615928126052241354867615724800507674265804165003433273883256867146627459527914108776777260152448980359985565925323516659943475595485268227831427951142305794430034520685450574436330400964243164738653332003035813693163207064451301224643627248470138727539152529136118664893330207698998156957156855151747260309889294926644240546497174017280194133779847732046493440117102658246531036611531144122214461291097259902285184729743702781351701991721409557737233276832387920772988026946352300202584452266681797574114356725160443271001223239183867068125975346679129439779575880396098320661372739413522293794023527923609978088995067074750043966751727232974255120248755148785741530003737047103130989198846209787905675495030048422728640672027400249885968258613512149066779200128701382815371615288569987792231678305675790097315034264553604288914418818964371007586887818603188756519863163084960360001630887392661670646050147724893448758717351144458935299676259227122237494317187040786571721630377706096027998821821954451406386025959697758605880027858638540013379618043983138962346187949350914927630408175660720917924498399070685779151774425524378953162068912669069383623565142288720117128498592558219184850614531359356337384594890336128458227670977213844128687487207474399798206902615799895679852746058019602727362034503706078705187582590719461042541647039843027595575896283589526201382228180056320835032260002735159278078611115751341686009113690656960935750072709267283628367981358288409567873066187627805354581713250940760254797387070489057940279566751486654580112437986632496482959566278034351706079892477681534786694342486277509699489257823006311854516647162198689383308729138547774552946617279941850398993231518577598219024555872479073558455642913453396356480698711089175624342298586677848410737269912776103119548579426547822602375017640154373856670868711644162161620395615598398605021021212062075993886737905856523933616221740641205675590958317162983295074921643615637710627258326996692263223898095284598375383537039981022931297358733072656790547290668707410792755640331231644588948118879883248815703676719739223273076325187144075422178982230694634186357539864500549911314386170963349069539571799875461836083613332208262743404867616038366816180647524200713202622186426323122580100805044189665683738077521694078428540530052890571249231173273549910862041607260705203296275684983129052899130248133576851335163546883527569442908327008591244888208722994299674582165400556349826586696705524989341571669307926278207286089374439292515562810275537294683735807794620391722340015129659583321130078355504963444193612124038494376050071441947979917940296020625678160392678279831292062195630610783592899034621760906003106024909339138084462623216407452845912981404876472247547863076119576494754115644817690145207946734854881104557106174898072006927970352350700988574365191683078090199704362947848444479791693464528675335560461280410918687332147383306606150437442029509888488461655002191135201356407875318860323730422838148752881548985314598900325900775050925425112983008598902850561654560360991628396565115008846171220569353284557107044227754283692269735486609730782538479992183176827264964202672771611078708058189270290479913060058973230917596341159858994706579637099858530209801921405594490297821439233160616463407956494872630619746958558742178226905121212815114207479458573139527497306311446536982500509535365743071206394397415426228304354360628058864892862303885977684426818079372310444857984986237756769622848608145735884098271457548567744450624836533157456193955378360487645759187270362828402798635889402378753618631259431901963111198081259855592022955373062388405018444042116686952559350638004988435063411439902438514237223581967859630953218952088041216068864117105073337288279450599890919085233295539532995733244194330455178213439463016259437716332234108964239830463898569500968093459240014871129504426891325331360046790445977861055413841898904158577199471565060154397410834754028537721906420689212639586040456207031780546942264602493105336478214963420221086489338656822293809546312214507309092608130514048572318311317752767724940375423252761295961570799622596625112008460271441017394585952161448874105640196010532531884589061166929099587193889699138115697772499977471405086614762140573679128486014280135929411837716821863981457902244043035608230021805641384654739066688597705176851476468570516104973791994814751371984106009553316509791612877478023034000843987915245725034079447242178605762897943285498400138272465542710334679917284540356620004421151102421898747717198773013462896689825469725440994313885503879261053504181968255277444681544684311196881622156654276067208850927707850761723857720227129013241175973347434853655356493505325627647994588721034360415607562260413765798586749742272639879385477797582279158523412429830240624472652844885238773925299128981078509298665891081029446079146411066717824442724197492499075704675529694269514989375961361907068835116065443522039322186789262748198550085375448003564591971362829698118191021710451301776438330980825986978143807348292544847465062528254649678058850056743416953178586642596627956326318835771131397090836194266037945353120771244113271104533858167461787942504054088821169426598491004017575573665421645439883444566187400423872591172227307528979931473333718393871921650977534208643300404885675409290415223799898324414333317695278336612029122265338902959170245959254477605580586228265087120089766819438398560850797767323435611476115042147066991461199957470584393017581974823888231433530264565414610150711892514831155663673287511352821703853784933606902583310911618476454439071389288898215892475300757519825625662769921540523742408569522992586201655120304569941318815542016704992844517513138233346583131515393267011441449552112346764058331422437229510561462357278548804080717318521534190921610454396420829228474167179782960371022651804446298398665009094832121101782607054061461336271774855822926198193065863606510494800204388127420444139017707745133034206088714581029066730905272021459653757705918097923085049612408403369906949152522992349074109781522498286155276359359315283327427249430344318869139429244550709490370808454680700019718225709080212673778015443688513442994140990585825928360006251908524971534669045789038686752097161634847368141389206165710225320844477777859660484394953049637922954258508164320230812738901903797861770419509539219739658598088882809626727131157162938700281843209402207495803643893728416025099048773431743982189162705769509057636584687181973494620244388632192341819802127213816059938385648420790406690442622214390988487682571320410631535547710376030939794172619082152889874822067068938996420388095773634571025713814306359918964734261262624281805109706810250471727504482926520892123386439090372227455236236414365150035091878022108056132727548765061912801858660364453664086766864209397345768608033466557943685345911144433077601102565272008166541550916533489820088009029091722787352121554271636336207329101719793373251174688092230562994474634514897929380601542002109860635893356924310605428506492681362769004546190779231838301696895623096502430181053173151388449445889240064842686662231941816783116767343468496144127101073726233612737450695291186099346342175628939187940614300044072448723877611408924647691966708984057651683858787702382933393011801534767876791235028762933778438303327640843806902409773169804827169878769100701938065283201410431463161999913127341566205670742349324357738951380920530172034369446571552970801226354578739293373440753988093202699403769104329671283698398567231302606089035870832378475336866484069182226465223452297900216235383355500532755450168205722370091857308020255732057708942238031540252051884188843665087234106531170259950032834809737185336689614626054151560116802714737128640878598568899641018215999892569283711385574034224087678222874249437990500221878508542174932959556138023173160910442571730441195010658528923836087716506979245839596109323999453754646926142169207266811019187446156532158492289144496643195568292437894112648710867760935867884653367843733399417735858067536369994237953749047624837565873859514957492031210971857763751365619952987497416824791609000812985613731388589961331688592637801235382584363955732083304409407348725613890328129373126876775968432139017587341898762538198497067735063175398160822781562845392894183765286002907539171029935776502008786616786218255466542004999286223074982073706991426257867260774465180035981093838801104054812232851486173938514064452807680978901088668490203974222534016038170225837277222584724695134571048635333526335474988338137456381956545918900170483029079624746688147201195036184656324998844960817061857862914580899185775587610370330185965231336081090613851297661450087239900048301769422209470184333311407826603626290642434975978032504349428143936084401694882793319272708815644970852983295840333058201423629981429966658702704484445709903529609883197743793990892671190179448081088553883707655194848362183276725359218359404675331948316348999462770581219776776710370995254787862870263359098752869627533283699473838375742686439849294680534002345209935572988146959713244851899507367480711551580829857905589595536318875014686565985524553854968712000257360401815774654315603049753385585919595627602458741838523268432248510784464082145732373519145158095043129399774265278179905887763929057024628774991116036124288000233534613060704370693443077882295897325656502632620297853648437798110005565158576394245817022470136223902632539297574107601296585944222714843731779956561201370644885606251781147339520154576261712018944914029602838223419734668788646643679607160266319039636423946008688036217927214711876254096065641503936455020652796541200749358387429033397344521324108541119382513287920412697808461108551078174341492882189820267701803305361356982551342698665482761069811913418750400140328334161614632983842897430985125763490574184170876490628186807625728239107023423925929986159397032584703662851713864402365620709392198195261574648787350765264489979659949618389387539183131083641801518765526664314767222556165913436153567864875813128653016800388231189902502836640203465318156146828880599256871795236289294862011166545774141060229637983241451300349352998909542682393066806986438607683987802552169904809898441687886708742904717531075225544074913334733772625963209711367112482431307442546412347882473893694717003794668188026299188055512165242284593203978378554375887044862675007111205950207091730994389429376791687286309823431181059282141051808702574836791745941917300497086249029094600697305793883076472145754510223795644558236713793214632097517617555738474243375564766000296597718851738143166549695139223494629289792024514824765729870039942187487324840030283167500465691615652109764933376021879758993019889248520943845213751606110437640134164387740448135241437763307659713790937145441290883940849263816984880147859222340428110783042252261790548954907840647813364269314504641589590250841946704908721567289300842397077622447882837374475574506331940528923350469261007593887597534443617533479487647921465948852836698107128895599302789313539837022278366535639126345073950978273408891630312249036153923543825547776219443360430650202232592281740798236239659741327929009354899201394130327095927113499256039669393605376012779153346089029542770896061689408015022245937766819832012218368219352362981514988563308944828282917810141639210876863544360519429609068332313702299747423488089430914610032640873488280338733730290579179467599444466451995803193837679385363494326853487232543657182527980316953509923368741063568893212942908205200724924504183914920436289036753304096996881243308820435283202012290507540706623575342993518888134458378913684101501074266327426655796889903555995469558434840887973530050045558619517678894878074155413611310807412216577305738225946689885964767311238925533028907581579372756264015850504748523604708202173717105728810252579864919526781068088284383866783985536139510114320956688110004421655147437929565398594844974976907553613682999448135638941946016161518336489096640360430486056415043545369553734359646113967967265894570484910504502344893795931269961635624004427241620711198558231350593205575126964503977523726166396818616254185990587147793184534114512861107001744473321009174051218559294758361214809504180064482043998534458364608167199022309020041761542432601094028693189928966011873211905736461079040581094179238059241711541123096885578666288968463821966944834014870784818230427593012829152072186987578264320676696580674445704969265465449889176676251585844863772600640954073096701745199516715372574957396615964767044984317637095616438654903239706072542591695855111346229170556244847605961838885548562147476652696189537893220035825863436285970860535748334244261140566876216984518295454015682788921936032407280990137125094782644212139831750400594460347539003756137898204236881524131594698793236121022402327988494679165457044487256657399941369222426248003456560367912290758936499107551581166276187796723203055013895177121373224324284323054524405351438458361883941848410666236527971368652279239677531259143274141085806844352730965077297857331212833012571863710595489374001053172049730586467472075684825115710130681270072832901255992054807106290726756480553027761582453000216269746703820925437834592576170393182236924475955953641464127985935966301085082121694829646198067639983426096025195719218138902497408937049741307382466810865417952816826782273707300498393925186130991499427555919243162801992420402759595937390536272120974082144728955836554289361968050716619567533805456158704511414276288459237712110494384992783358600212115490361623928630942394186407881218276254355298389209043265989549272869919973621016019972694494871545230806081885131760593518937114792595615843388731991231454387511252665490386627949391352840371382421445976266253537610728739352538343066132178762476478273410587955707103759212847905561720842751732496253452191145750324596779244458943911250971065673158501286370965021604283832378964958015104959909392120558126538815464010114835551538105629748572707845397921564465497184425871823309967492057387326552884366118040812531654967347770530823594826581180555695419035310964095513089531797678999173007822201431710227699598911950195415013560088165720519599525517169198776433734744905334975999953930085201210132852002503556440176666017943297252585907458192283373537103173561911290428761023148146721810272217546696845962151578386149855815983426579914178065776440653229026063801956923739935043200286444382086157533305976758191404466586902562374266115923867348313189332388899208018343040120921035476149445860348460791656563996253457793417720884798038846952287450271560064050284416686207814948115351657770456688427215998677536258482476453824844129655095032992273548558181725439190459031490660144574999608382474727075577116183198204679008010559868559534821776283107496580252281739721504882375563692215057355027378704306916959285880789694408349914087473583864653895641756580789678181369415793449464855529254648036881708742802357984270499960248765503311937080829249622171976625705377081364114733565479637300452426832868405029251125442219214208216564128278878722097605416513672749801464679027743274618189933021622368231793101899648963463872776758978143096049661762148444331063956177247013357873556108473203345682831756155365624285106991514682576549265376651785165742353174142156798833384353085263903095327884086460284780224429877275470294452181453779844876256358131842061103977411579999073671011389677854209533374005335826352392748453403013634490949197905244746188177050601893829401408827130543458968430123871560237699904094806088822085224876011846546801535637804275642541030524160205986597538339337328337874700083406513807646088271900312312125203525569711242551830662242572586136284080101622324442737938480655587635650131478312688701124373206672697681892892914321533908014220289112888381746412909592461901384984838181029289913672737818688985092859104041834572614685649385983044013623141174036095025639927901253468043763187585955520208950294910204435984241552381670802679577383106353757673624102784012428336620027604501217964466241372233187151224742379198673651839740581789086061571621050338798852543762441555934883036004189797318650202486976464575007006297631133303883587653913508269583277534710025591811391025358414112690269015691888492969807671270558858023187601985019769553810081698420120150567163857866878120190234963288412985851215484756822986180653952550970369280991424579668227759381976142900089653517405452327958725505897605974437153609235662774236582185412250298747752773366478721519114685440837986196431160399186252283943480015118043637305705617335255731320385405662248117300239515805924767578614737770157704706914165125527216483774443297289664152543852635968620442460454336638657717889012040040389170841129841707204591509980140994448331030600163409336380004974992250770182513008608342343305962567376622077300423252653512107801063310682759137655021575085305308437702616559904841353748220358764031191612136502759794462799536663750895386404795316591514162558798049052654918697429987517794799421561326635639700018417163182702920153547425387774120476245940404696633730977968058348125006263051281736224141478899916189834919600631897240671853476599069578216003027235771752937606071864250770530981318849585246325805237963909519826383663134831264118150279604963137233713776588933383919927108204109944024355586183210182321644510571004132368481219910489303597237323113857799929605400095107565511531999983453604921199665218494397685068458579351767385806290218517093412288999796368009425252493569572699322101067661778619767196698549708394098308132654855770919684519786839215939521741336454569694266469744339812651160918854058950549845347831709668599874050478987165552591320842096364734371696371022650165462780966901605972075196294698634779016638492641943366042231915725019833676569962445615006081512040054645075462399159556226521502966578966846387685726579854257816589422619158457204993827812915232553713827434391438497419727262108577830915122252437586976894072653563204148098469523918377514562403252161525655003959759666565688814093341473383733740810367204614189920525925661623035340173175891399661037679557243813389820089500111724132380137486135447477291257166089456484844069847235598539560367009758404953136192260786452647277210839255011383954693712939922259293857730640071693028141752234284675551434266154961291043730030403403996128560193165148040082134403703011750257139632536211054366924989668594598090206112029746379608300496337032809406532953383496846829267845833535563373980117333877425241764708803509008788303575420742416165914921919023854557288075926284222400878703030897508025638445978588227661110655486492059912788825602693851626713518864757078387505692198259652898887641256728049561804116994749754444345457058715453689682023850421568314721557232255007920249084086810220979024191289901967408902607421897432806728844955551283328786299567255656352558454187412328385369082337332364143026764163108753671762652346079908499467369192749118405566348546706504463246939722376519535009480405166331941609896300773896916414338728110343601303734712467423649400111693249342805398318892832988780739163132022091239353154318743953421105453227813145666795592409503603909461204238694273650971327665722052295643742167170868398969651112019734932776269956129276400852139261697885622441310006224011911250278913010583772954185310818264521277249530565869708323997638664587081512729003242909459600737991690023028487288471407726597784461791706210574684397649847606377595269323286245242966779855088896833378012084623885569225282806828536275827040037963056411035910177782105475239927526518131625287790465938099640628062647959044704390173881302731269058064997142163336140564478449622280054367630117554718026808188964812741562454127354825194699913794088096889959715894176103716495735291238828548258936900993487210423125778132332909541728899099757509770526685988939464117480380671117120130151252684004164995675302551128950162277312125849837601111162926863874077794726620316785280370568137562084376984132589395309902032457838873564178973775831926350063163540173095607503543649711241030993319617854382801217801281545794616184479632477595407649448737804619094398832282785962113195497536344040328145338407916278757725299880761280920002030317498365125310178216507878410446723634113790726441026706807709414615936545780780187736341106534483384465243890938067966288780169376475297654640967358679243585795653889490721061032265026757871893754246383131030576274130804427016647248174886798954032369759566547844265245404377541588499113055368916840297767697508224361897066485981946113314927339384001908055890860474104954689254821096125822662296841762115556408808193621232083656895220373746569005329363335849753137505324056312822325426607734281503378032584998586642650557001683061232656349336148431645117648949795628691362964192594761470672294013723916856047139388182566616808962710498557511905482747883723917057975685609635155050526090793822400323652473575624927252087291456683194355517819268998356905177149125732454365876284605656829620882430920762557545347705237151375467716932723150517031774422213542218286263075181276847698100296684156202610370632704432222743540589967537653866182454867570845583581397233197841958616074986678943007249889088336912629036386435929829722359210211925678454209360259939896146688020019604656639942792436465866498365329394311052074759578854153304126021472832537419201798416814235039338082987675056633031253111745069877182550257737916875250537418623372527066393331636544560072236261041882994816086187426447079951717352494997228155740290193545092683443645427623485194562829625340581702845226022661912328765395403241497935354071119145556987240587245452079660480314937791326592152589082499126984439805180493933147704875984350900823188948263233399860263329546427556151085320749528862941204979397006155673117790375804469625011438070042379694772702864198932421058970172335208126381623683277402191147237322106370526703664221659946845443749453340191420940128004622902952941398091333944160811161818807153535721722603588195174079480788128970688086755751817550088192988859704265257618669978294052631388251926696591060050451561884310802199486423031187631195225823425586079096547158006851745583385831146539533532662109351021205540991776414523150955009775874579054594703890910780643002109483509037789251408041824683775630337145293756929252603480125055745854113622493531057808069262954387758532849734707665108599521062474962005634134834885874076306622663999287458125102646809850191953630988595453997056748494980216622991170319761111761660531521481483815175570388190845174472085824604234246789392431783628726114386201628873438299779565083679157004387376859772161102627651468492275507860512700793402204863531587523867194367047325279721725178563385408237288191683117124542830558108333464668600398047671530414574974488927026499484166500776005828314896254436692835254272030341495531315577217879690665521343317153201065245038567564781100397441636406597017123642779355677792225928256115116748865510319021568256375962915281036946060641251841322938140911458583771944094935700106936435656194077827522659616572264441705393904482540594504268339913006577177868811231491395763649014336978664750990509283219085506445515506987124297026258457876886946979328237710878733395265565998883674050769588394561972475104516857487037605912266282809840773892824048955462903116539769201912055688849994397471499122427478679878671639863511826212119029070848399156778941270310495089994212965967322327731977583678217401396442333526231525692526937576514651590066668095408173497600659804303276629004750461399310222660028212784887331922866927720470657141337774415442867092418062754301570828099341784975584437654698260846418121445536028962326072494324660014964766328701611539975326636341149233811365891041514803143489226763162285226713068880824321984198927136553959229097898402617913752948161426092208908086144079857875249063935862325244946754048687818245950770815286554663119574313225415031282418447331315356926934524848835154207470555203493180292068318170266595852365447395876081214379344949784015858347929554794204441061609803290545012271709762049108725698297249224314508955575814552355221183176314607750366460660165280020433557792998268164484482579249039903453056819267500969551115995886056065348596948816366047067217475138655701206685699657547461343269715958420670711701529215250140527098327735644748364337957562011634585239588791124509473733199852252900161948531563425425315520272466947499675751084168127322724674150698429913918829782336865242331736545143922232950229989794010197949028439001899393613152813395399140731799699686701082706682094181118620844815572964922367010470419828461918821305376389538017986827149278352179173715811313467220053928461405162780382332728850579350520129791652583279434844353467060960949885573371275583295664826017022372839760804030986562379144116508664777075595568807789513601660912754860503284637666449488768217774331901726716157005089706299721613704754825580012976123220450060964583803060995309149426003718854661218088302525031537054217340188404435245958782657459581338616486899680016110826684201246444794598334070041041442464502827576890141366978899162652940825535780021241756597551588190564907256025862329695424747993405443706480943401205101275425366700986352313234350868169730046128678156799259673158947473183990575093561275111694199161342523626914345283896827818208410894834443635935723707723788893006936187931888962849184038901700739942566016358559605251396447198936044641775830612703411429510685053571082136070320550149611141884325550075054385899680919307781756558322122234027174208603652691333202629027560162541851525631380971011234304756286057566485589817821422610496854079992904743636156948939909335278368081465256592154397432592550369257709007570649105991602383837500026866766124248439242020175154118207022676175941875445454530924272259038662407526198547585707227949339236545021236332767090921649122023880955375492896575404637697402514317329118326743310494456055561117587442542751512307865914697627032519650660332676676898757938892788263907574570489129870554924903912720286626627471345539602860938700572682706531571487991187651916314090244495115890871361378117335533979886162428659729276199124135432142409064013981976002247727578711996467075422586858466651576124416608953591134351955197034478185285949267491133109023869431888387477601275965639303316192369709765445242247798997931973943261113880629760467001375330986108794218411369971790857185618923092986049887040241307267974475516793980440680039602125987904351428316028310647265472397758768858232160381304704916543896671392419946544955090579354217657305384883669356661515524876667752479590544947019388099744262618567538583001658791176882522467026735947469364996670668438610266387426790296648397529544939819295542961276885826330309044253659759614073552195039752073595115575631269648078240081805192587880099140497035616303738344496781277590403485183871092408318829222388680588961519555857133096857309235526153086757663119959071995807566841211555224973091093163500149736226087656044145405597135319676073769863278167009979440599532663392628918324834861775955346113699629319803873361768093767094511520844037220264894391660005053389717334768320395416202105018941840475025447559235657757320951566122415766369135539351973550502093348977505452363332322099637943190076597113277518667866747132044576608960246143413462072756421085249057213626587141849421940368133314821474418840175291926081426336500810121212110849959325689643980430211112032924193757301003907365594625662056487859623951211019251362166284580952222326682274008724404714903845470024846138884036760919672542613681729381364493675423559529527389863352354363062909867975144930593611673035545190721396953294321289902218556857170139545364907594323829060691232343280425157761644105619257196913041226244344934910526979501051666401817253912421983389255291837678288249694921863138522236573772137668701591458735266137557233285209943504391228925147363192187047808455692305731666065636475053998958527346126033046251423134212548901274612948222328989723842489362781007688740686035739079811177624383291693765010419814027638037380026784150723134058081119425786416649158896253095365091120532620087089003087176027041311719307717715593826919267837642628729303828120214785806096246077122957363856390262023744324938788803663376215218892621625648927302983040153311409973656117563976497452200097132207917425669580933838789225246413393378570809157061055923756701896216212553627527168177557674728463112688600588644436732429026927845914800032434005404254013273954792509476029384571712322862670830250562516052101416835238994237825343419304217485301004412444553960625860357516469188495962329656790438922798430907658121575137809492710498263461744166602093052248250492489648984712380184709229915238967519180864224713832122939041991542121345902665991841845375387745899339498538452470316946430274263359380796696051163883681373093084375649704072682161417190959217008064318875216943108503999894834952237188891412618645286764375389153162226233967186316978662804804845864760323354262159489609490880946995446293479672629331511957155095003814020717572101140266785798450137819481340657177166780329044899978541287504756170698547895001733886842345648561642022216586624628529972509531059112200149778675769541406977793028909482245338801716946996193294763821191705610276132719950326214882435032469236770108501999067137263517958674734126383997699215176365722484014382612514044398769574281810425220746792914783576544336078699559792245963687160484499490789588928125365679178094940016453483341382675442603329274598157532338529463873615321313982157281340261385256827207033202547981689128617063993718048094435429507501203111311275462042260419498710007930813195989147702933631106298480079057883103384512715591821037374265887981454483866952377079602597474491538201539346146290247664194774639587340701315252967062832851025850001469346894770688993023125667600427904081827828364289467243219566560175881506798918814145712669804831068226678685529071715283308728881741543016232348957834260887900801211247237946083911929270135222181197857549149238206952154451902986839722476691916307361616110369851373710173018131708582551513375240124933953834271746011708106834442763370093714177655955472286943363541831604403151858398275932870833273613038099297173971429021389920442776918320310684497274917974987960070427549369958030746324969922875397438758669372611790519552826636142359887297507846746147998722601140086613760908095249525679413671620587649033535123564980263622367554145078142700550222095663529277308875985399193762373102327652661718971194155883612596910972511290515474416670154082185897279795620897710658014914167978041015417781664109660625376367985672389568860105869075130106263506277052593331445650920884493563771967710675111422065567514809120193564916682284102864881858507903209150200792074317926769648801584073768928497917709874439542960000614141977240662071505683293389289460540057580786487754574623541505885320992759326782981325446937382400159815870539250917814531868365450204351301242511061851477374605715030178138567037813797756585761822287077661296284308349907757035588428130545762200609570523603428117674838937240946931179450486355967185070558955569711068563278757736233163081182625407687105234242632058085995898509897185271660321867181669316486207076637935064993902712718649907945240498233467339475749141540685316578384675071000285691457739248523202107431844458009716501537912645495146544622571229587905482493660585335227437519792158210149482813048667141570871890625694719631092927307778860070551071129744737103967940488305345816171137778762453078993752332097477102712653825355275980573527055439312921752968905736410816340653312470401282791747405789692211946872012287721753626144776500737749507821549925066303022390804997513559712171183083203114386284501055522903787105975767207561773564288866763067055008859246413898130135328656074160141376519754002420354420375121205689138944315085034950035712376229467770173968862786587144150239676498653934133639718303237602259101309499164350758844105309400592086048842426874101922516047249127674846609297994361214234339447322847001098976394197614045119442828267075014292622410972153526433864117850444437915342410490871237330923081775663654144308537634831733376478161917788185876139887602546367898782581853654166093317340407060410213060548685791090609276385105747162672527246454424872902779304565152014499404690474322318282277420164690356578331445370541522815356911782665023052845656487185596530051547887088668162331310640961878863082164519757542865355671814920972102456213152480722726743087551499335181261567035207022178961245818656230717717508656914060871901781039412050322136918298120394498541842839860312783414871528354717984569757410088615050387831733056550993657741523065769050483131317571735178048187317445220114928214866296948893548845965250199274789429036384529849687820037219639891325043373939888447961033715288921672225011490352594067725115636574914905968817837142447261938055707176405022016032372361340740046825846848609624851523851835886776534125239732692084394475474049605906120237067870231969930377611552318695846216836010490900991586671278053205023280645561267362524119358270436158225517159020609003551332717190558064644077355170183449345893710408332496664439871987247716519676579924525623993313534614599936997902414825935602446204511315693238422460454760477734743135871140683430365535433212263007974272771814198295049220864897020977557169677375585920986672436832098179047213900117863616137761714398292019568763250512577864055827631693626640637839471346355065306975867178408568375221508690010074266536893798439348953061265395672708440535665481379245420347835672347252409933332926854745266246748754282758752278589794572875192415154676487217435787468452388112607855189274264762149673735475427207859521539481836910330164769917007235335321835296085362079219275173433357431348333632480357849515419003471392018308323174124756780997055131216576350123013873259696411881274266665815151929021731933219100798832145124416294532677250247340595018999685670623283463337022478637462057936888399075205816180197495006772523244261501724387034473229308587304427525297244126488998664340961575600755272456836721270083192762271491346290061824452637673001352130676098442606513860652647950820529743981907325240632191299278019266751058826480873665847865183938018039883939600657371931674638456598955961528997922579584207966454999072535277996885732818140418832827810995569790780165171818384952923359118164090370078045491861683722109240165129332554540301213993015652068410863446406999143784410317609553035359398233260551730954172523483206530984719507930308371389667709423985852489715668177069321187201639280343066492031654312732158418769533465679589908837936959380204278875869561963993861469220361416033089161465425016535397479873639167811923301980321721965809290908828432622652114406844881746657906573955331982587762415633322181989091614368344618727565503112586820878464407870713250296132091068381615895405556346857350605558711934038764877839508130426594320522530801682399787662411547346438287433932495701122975365267181761774799112124165404365249862268210109957428037124924438113772430701066780887590043781152704510228662044016236741638023772773644353846455900110862235119786477084679028702402058681329878111522729596346582536645509775156673319156140214689196390543342247831733630261875153928987270315401209132075923034109590041533865334638920721133547489333041607696941059920646143748232948303524359047440273134907332949860706422537177256255921268907004673705143199427431806659629293903431928445088126930047509794546645616533336888571622681434140729356129734035330927236810545690797522836649588574360450754511280391835556991090129910609005484081072735770111567903790504508116048629644641450239456927082369686570168742478498437517625830220514501322820831636727274674266409488654646916675939486217798544113669242181580003529932369911327737368151801111298249594382493788414426811531270352992514078430224567848639806669798988131506371131904278604682617282213534430275275209590743680271580999572223253778776030192891583565956094209561046248148319329285062685380903596322140500718672681718279941364266432095901178529809111878264934860359191131049155641071573806560462453521525098722118854866098261592488091918316556424492872339830881313298675232154490116677276039694094820311110323936891286029756048349645562248350335652298728888213262243239573511861522359512601736940419525044612023384695753447074765061521526593738322224931367099968858734198481762103866536783476935486737009514583790867364826641828139757393319830665231645245610980690680815120243887274319582344536515224269544261470070227467950691834059344570193683382829495266820799379242814706862705112569978404201839765038283648216018891584291658001119860721389936133380983145872782368784476683050894163199253069822800494457593728076241015811391291164940067149479927775825801105302150475302568691767729594043663613201534898990651182778114440787515638189666500269924296668493423593644868572297184734657137304889383017980445011437368255717823955428038288710380729652355589173014385089126329788795774219058031347164640631004432108127626130147087638374577228587899968420592370677846096146598151631384225942864583397425487988564796009018596302238486268223365321854710398983398920444274692527879839144650446318450873452896158794118782143174539049217375147049604824377620275007477837194847195637300470899534942983908583147326158987478111382012834139758469701630502295106978678349342189114692319526440115773890078690812643001058143810258726149839233905142334496678411274290008523552711428015768824287078314564043391423705787805397088829967326105733515000063214738187045648262209445959528498132841182070183120387928872957355579298956676536096428234723281310316878713831520293845363296777602906365391883195818737149402331129929705119285049875389300898545302783286243837861015306856439403900099784442070998016276078215523108805813858161542679290680866221338332639457511948977429929649232421712165845297887672720060844020616298401763520597918372970931529130666601417089969993665765523143376289192161174521858059468862810478936992698229209755644393892932937970467818870312621200784276872618948239395830478416843499805279063444472940769323133941922253875996990230219441511501069283638326194203845272491350661225835212314067656237920054225768102495335279816133412992259678769153098532624159021951978450829139263745481871183548757230340684304909567437568850820154502864537353009984588344955658317522892397724323402383420350204207295407850578340559714294284137184474229380623361220073360127003071881432333717357415204885768952325584336634412854402598004727344626863983405268973446401105604441440565287810031485627700800277876437820512764240186617552043443840270531882122791879572011022533602363617841069521688952625466444435292125864457420223639263852398162168950801405959761441704263449761657799133017781061091321790689689622355839309577772919578040976883743177085933092875029692259367887326288224998825483262754967735544513737068420870676565215666787179418545075931785133074481667489044820464540655721250179821358873769030062899018387780914186288097006631058168590180761868583914982190533527175286686710347162964438049989448180504428197500983813346355315877521196595146492014426963950506838758489226791293262392448907887816587184431617419863305366517502261907149364338789004471442637800716830174863218107568675302468866047244052988163979209530121053945565021447715220084070598887399749240960227338066956877369831007745977885182702559550827431384448188697679198268491645020410698228657761859141336212508154553018444860013138675287379223605954333213534825581822031949424791891643384794490103536804797949277800204547271974759138790111254211304361993875594131442672348083074307295196793621240155798314652479974996712453821620568110339894093163163567378457477949190116690100626208033542893703296386678350820165248985716071792065939254423147708045053220257211934989332447389737208811384402582385700524001333256526279114871734802198371549768452983623698033893224536576924667867847172625735273286577175314733500271253009114801573199582513079196901694193520040900162983053015686001910511241915416979201321846491503185816921610654341337289090022301350493508525117861137976731170469203147785942218079894061316879192547202628256176049061479018395484171201770095694322449861704307392377446324291047376908993054619729681273348639941292006180175656307637383445156601326739228091405173746471026525272683516767509608092812528078369144349813166424707230309937396716798965873040020294345602663867861886355367788508841804255255654671698442168951443353516209452862774050503365110114440121064649633205656963377679979759889071412616795666564709656630566994065235069654838334302110615590097317342701101668581074344591969325179512264107674729882779818575358016302151609504291489262722436279500206503559730285952070387697169659621874306691451056386032666721836981839496518491073514751527851116950635702561946157551177690850344545762322324714910812760262325286011586399114292624622448232694714842402805759931991737246986058924022457195712516314116960734774088671094552408647123105265902066627648669220272552570299577735077532417192632583065765044735362111659520822026168225350304722641380833857797489710393998980285670149643265451528678783768583941415478318533850581431619304296501811343819666772988440203720478271868457391418992540329110164455284721273643803498099781322381848098647840120408628504567166460121211182388446806823609484497900067077272663953929501434097215700012556406644299143268764990959123615198965131162947670607507764005497650888076662071702520636043305986435137725389071441925787610723878963578299145370212386537401085718513173006267444804284183868419013171380925503868646282964225041437039565444972614544881219993981659890194960801917716682047535458402608274388238633987491283823125883526445651221265429147421250196256863574469836116602078833908385052853416770194693760009865802228998991572991620691395733339067952767728498161220347228149269672033946528168249075049411501095642308842865637697885944694117813943412947666173755028558278585546791550014720923340632110419614580485242545611102510617306668644665158532974514544609857381734030685290590930877910705433484189586305617875418294803980955378681474155032283650173985229957012616863005233899721076062749736627768770160085461664748127307221444731433268912553661017394036781276741352901717776793614472375348390710117223313809456668709131328065424442470797681506305741368876457691128253545971628809843803444617919930844050926552124694604112742419528666608655619048077703859433365662308759051154204137428797341172330827010838895367158775195285986283234848270266600319782661013262946391110319054724101787360423750281336756752129722636045086502512783770625699010903399296476684575584881844991469320292901941315197178077994297039755282176298138058249399203332549977828795617295354612343655358445863320324779639877716760831975610937032383342708963628827798569191275756854452347908905352091108817102891000692657497679615819233926265426707281851036326779570703484025042779662759869486902180509022161477525054842583614437144307382015990757253736939049598249168119436480810579576925652372963017692620452824576089983951154890487937054938625236429420310876802359662261094484815494163158844203029420828479268363927378840364357956396806273137935386819532404613193302828413928406339780636914906930754438136960315890306781966795615899532491790839346630180203710062583866191697326990282739069874032327207281922382377343746960131112005224150175223394210625924985693021678648955108569529729806342012902576730004925364890001824693030238229612994201571615986237852365641556269385779948753361407737255504956192026947522608195975882148943186871650912070479195306235300654191525956736984775672243622176487707022198734358689246309690278078242125938757243657649713863267876436023387498430284707867156518821990259952319042432011224097391318221146302960046448660754490376173019426782065692582221705743226499921327095856564177918458194220754197450167644895404003896632288746074939971639875204310348178309035821665063727781338640233715603932311212208126841373678717584357421416201449256513027685844656426127726460794817280483625835609012890925924546424301058820198840219460783975402336504874259046049257693441200784329457790840658300041251684335667318219773349382841771571652662459060224676929956647638490247635352192698633435479896398245078275420344710092766021515947188222379251089597340607497138263137810348954123687713210576127748604443424735412339063158347207338599616499805734887211584503968406037670270480178233428357225840161080528716608924272911018084418991721472744507442349106714128175361986011261497502255773070405812787334155699226611081275146365613424921911054271837445076280579912813081494384627119439794400700335117989244047558383534961167289675346507072731074991308291535695019446471047884473871335379749119119074265957831520417715679049033541898431579275749114830015721521244818599200373880907994505506369488538124503636268266972409466193334290194779644025330825761308327392647321246182290777599568439085771947124982007091716428351189270392219702392077415892216255357352016879318716420107203946156233725671727479938925784477624124154347185654449732687472215920479333208920414751362727835777531552148546359486422381997932883719031981913789643079348293887030291207649415408916991961929486704263540985879782012811662933089348720552301139124982812991912370420811476513603068189866273170466034058562239577339091411407056525483118856977881957763132911250716147265739988735259508291085271079519721016393885699529282953270471894943072728881021415735789644667934390126132939953799505769282210168871674731614577103924068444100777257662834210935948631053544422947187252543298701388832012965145703123196986652520799255838365001437459553425281197428851532791491874374964952699753942588564639284047148912012895723440351623560415407159166394807029386212624523281690429055984843261711672546229130015192822268385350728573870948801314650589523853094481666948283633741629081991495147145332553753170930833313736021944101248881795623616473266445623638747794714478828573221491411886849541776458507046660597475334456254744648480268926387152125360336201499011265113421432982677781397955794869438894273662901515648934809734383234268487066335136255258512646819676540292808877201238253720034737127867825441916672218021124622834395004803838475751879043239200870406159259211319032267235907647578900870782139778563389183253731753949575805837939899504104043541583897366694897759376088039159556435526533671477955818578641881383774369004742251928242591859202639289005255957376563948765806268904800491750554874732966092835819431113910159084876144169169327067072643199759582583408678577586037815710120293341899539945563298195475297188700006603694547010004995442498229683251232059558977894412063423054519936476906668146898624574076257315999862446278657801573777553508698179236675717382635788256991209643767289984039881235148107320574217224255059642433889451328035629745660294233097574583325150060054076804042740180688564286441088133672696119206393535454110813953639556103457296123460223214120302940086877701818501780688336567024221419170753986731686942247009519256927567420578068747555163554231261099133075813976674581193150345803192149767546947710214056726343906803501068637196292987757885253473272736419968595572552172500473911628473695847429647074544846721956613504042984653503301770613848483549066067585596578328319268598004754812491269194170553213032806402445953036492330017247797580915534389018979858198450246337254045734134026447499404308925969972533751527754703617325856823557094937266840402265825861598710997044987192596290834973899012575514195091065346106933973700365373494164170201471609756053467519917808852068202831204277345239945366322800969516164932702751146546843419513126727444378957640568613693306715474498699197080102673368979492777951431519505649478472147057787961029750193476232734861459787667748073297377645021026332065151762805227627186548556896305586748647136620626026405464191013030425959078302276543070201360640468103653042343041970307186040332258349857258593046166037433180041392775432797887176894442242238727403142015392182504039354734574556368281101389689954683385651444208350861364072574963547028576091122981177226878180526315116568764053877204498409374398849872006264471110896044210964626112242181981731200021590286291326699550091583964506850596772993148726922538651756677160270174568531892079689191418311144675693201723985577160831887471242579330161065130656870796295640367281411420481208112335459527835247584364370383539658641761339540808970249540941430792810719605486801133304581985307476705304342993980407184579225385496828936569285961501799071120422782379037713878171196302685773380319896425778365092948728989270357993835365653454662702641951180180217567080718682194991371053279671098037790702016652930846407426997339506178072317954421069793895328706336023283820888374080682555473937395255292237223220662238159365420728550062699751427187150529685693837992024201767187865270047002195272681971961289249443680759434065110515810206305319493007206326198548236763628987501575912266300100858877197123458267787137297028569493203605104894763501199747755839911104232118579971578265536021321435472969369922661263172997407496314156726835194381153982262613039969328392694476937013656834906040496995224002558119381957362663235660896155158750216338307320222685272965263545151284053304737684526711034335809530059382621314851097847820656610302176732052231309568442591115218886797729040721328971020727905920501666228318450136900139295161278026084095545714977381641826384882005766329637860919264971664690835038346231293332158337032954058799386167438979389770261892029940417124005836621311280973993314631699123263571745028911624769105182417745091255101168764377127611441726149324412823089710425838982358906831880599728425024843708152120632041753508937118200345666572498880020759729961600189388539241445890575936789220134077697999269481607809266793779268086550022621094870514489740368639734459584924823853088165930366319880295610816803636941747650791177299326554922994072705469267715403738982138645027578572369167936445353920583922043914182784811419212569417779007492393611294707535808069130687928917588327412828627921404154042678056058771701318918076836705436949439715750307395609550789999004380590306381309716965129589464061993282606991866728316365245736186846291423250456169060000895468700960346566576342184095761864249735841239218496313973858283919797695606974276790089389468635012415946864130557884168235125970007565381667975453448537857387497147423337816221308440551714614875211045899908857095926761321116487366474275398638984208125075148911167477831086367225572863709450956432288441239377940374204994792398337638699193177330258147453099886399829092728913260793537161872686981001897658037884090637167950588099469047655226402892009324263150522404231435152841953258262834365209771241929069269467570386072677978114935956261860940185226079162587384915012676913196357629396754553706792492168319866121990275115375321401185724300962449180583246720227743796094747819546781621494638599555941685839718391748315140163052950509614044213908299240554848657937885896912889114146876967339608207429217439167909367141735794259501715761589096364431793836100666152949919166643159810962425540669052360544188620660176330737217134615803104202905994891326443131732327486794092842140922724555587926451358413277018119780775149029980382915094080643185864599198148520671813352985563157167198037015471027205311096597602540936117922410768944139472595856061623734623569666531771055879684329014965618784878279141198998716703789025090308637755032303553046915858188606445886131334193423115060352770624007139668627553686187289761984123535975610198972042964755541309215188413630966789915808529391607403272639386567271519069015354978225528403574551089305078101140562151336950246835879337124580619558822369366356190280321481150182731855721921500525462275543542581413646225686953736002388079883395187148326942630427099898419427782685101395166985619446062448989245475141697553625523184498919861855191982375179154330822317846087448742711954460676684231439256413556781060082560055675391622992177488986435323495676533234489484839660686463173603937885619767283991492122296156735981184077280237259244385765566088184284872990733611105835911885741971185027444902223931309606024943680148504732223168179418975898976111842259490088077827308676504166618542295682434105452301814568700678965797313407018876078656028849367774971461134650435079868184872379076089392720699879308847020306778692095469700177098458557803207227242248612893060281903671693597104253110506889027509817508343520303053689654736387768933298277177490425510727885071915832986307768590073768484108649131700185854026938436944071028922493371170955674587461242575084332691634762398556446154014131537629145200025323725634339586088265049698503303772328783568063743121568916970201770099436693896855874313044253342046754330782824188738539322501335057455455040665130267958667423262407884470573505855411289941055692878470410058020966882112631443677578910369515668893620571296956905758034974327307651180448048810389511270108950158782966176343819106669714117985606712279555680733808061584538755278917630678593853297387114061806524936332198577814903374247263737507637036623277860044851660277538624898944889350277020885949243855462810909562200133095821299773490980537095982539627402857583095551998002922651052567105174283484578391169776961628468133211942800624952936613013907709241463839605930785394041029800023783396791891543220571777613889566734722724327949712426376102721786331440877242688390942810167661534898255046499401206541899014035791950230392408891611076089243188066870663704091234963188704284027066496883211553362324550274406469918644845606279175007407263383877037465533175388362082873601186893547320070424067506982956960399979682266960924146080442305581992129026132345788607279613779225549874211220532725395848962774762598761622904571359377392686210933639193017610542334982375127943208294603550496452835901462276499955479207520042241117296867299710293783743745094301363921042832255899915033741955823943221226609258896489549727583758739890067554669103475301123281544116170316929470634615258442751701522360273582736648797419602752893608036382844976399195004943263937274408872423854284406773749079147326082077028288165216891069337612292196197490287624719425021078608900861096871672459679036019896980052945252669926126549971469835100945876837383820572217639137621112671038432986782133106295300360886437567759801067929326613853756598820765367326482477763157013323244420998071406597348541653451358799402201348519572365451763137499335351641815869981678850940017316638950206654660748504374914039668225429841785806458091485623684086050522197691220170927752621803075149044320668682243571121061737159026491742482692510125082319017815057559597226201578747227862525072109314934897234752293791867184259646313854663951177569668883126041239275977689333189103475745164484013741257377272805253418563714900813263949761833040586174551740678870930149210891716201616518630739697767714457345884209766758154634692072175283279479969544328123521932598494575218964250718641922470424192731464062517327580326177995693143560676898758293383949811752576860342391882103798860403041250808352963596396846215710922015469087179778472991282578951237238603660944689090913677362335932697331547229920393935182372614086960547851453086000832915975409677526713875099687747553841543835463008889585743557590816309758253590386504714108461730720799904503974523539180305490909216922453219252139093591121511845143388999900806280092976589277744102449184824267415413367287518909382697384606810989465208425316919961521791581910719946044986902831998473906022292749220001696814395125650453392406244988928690638453318550543163209110657361530189150642791630096521736566736138943189584560356392258712498045544250643787882319794699240391131928384931967111417989648545089307247958904470889999176777173497608331019757599160244800210215495283727349427824707403842801536130484002171458709584613097536511981869223323645644968612956619760941123369372624077764666814632212529301332100978485415879526077166842799327694100755863460795364280152337758867501371522561619243840667345465087124055203375118079850362879738370519119055704237708795254329883480585758470914577991291927662468344771534834486182663197610638978668602573962118128757973092070289290878488240119305444525142701029092391536846983072615374373431299167506394653572086730392899847806655830073585080441046025863883276330810224703112009178354760180410382200469688226464156446337354881728834609187053573005913768382258107046494890869221297155549876477028696302852735647380129630829985423154888853883044240092048660382214265804085058585104692494236732334489372416385175477046613620193142324286674951726708879965984711776891611795354747094178653010093942579805363026720064621128967470949656531486912098358951445449374230759247794206172881386596879533940357651469653168993338756571854159768402023408225065943064653784049181174050073661352449622819866201521607200998888362675895963719216816508505649361848528364499231034523557780839852194294556641167740058235751892073879669099832311394246054742888169015084389926893133304719635940526455496877680378812736105125315862446685640913907553458233129383920856054659041395796143131586714051270611412646137815458010830789423069933371212533851494499628793397844784862086512810396111853230450682035170440387305612922527366538322602342417472953440434559430847607927210151786373345346205957858710042234001187321943291859698183391307134199520515226224574145161781943410881635310105286807981427347526585404998111357371864447456390381436397467190628298787329840908330689404107513955851008180923571606853265524992479083044494934819736571775149750748876257262051044299725599408966906464409773242806257206221394381577806978181439527718440121999758493725421108033578933748808006513301680822283380498950797833591555965702901542308825416461688215154227060342186201279535068772650775846694728352287486745458582199683839710757724444687514057671280494080794250523473870911454531459612335033288281460520128189460437903682946589472963771090752303751218821865938383520332166568469238092656515162314603776652037815821947577146730171711233910866315179831175641293745094604446647229366295370660774111081040106289048391915865980587912283983669581446409889394016537440816666638330359682758574713301422061387430005747886889906357169012908770372579323415445545409356515063344435241665917543029812139739188106204401533698879199974564890494886896086201228474753326376538197352030683544808588348789072339940729119122604698717417078360210923276777197450991910897738779935487458788323041272096731941682656109503081015964076537061465502314913498598128067008384530443805070731705951879643896410535910037732288105801159859820769219593428822615325396295092300277383808593341853979504886885034906652314688777906543325028154018992654126297535849899978063538461737429196477282198306014954184890208867137465309047262219472608949755754610934369815564538784483667340715459259344272156982112956297270899014882067942325593022701615993091181047272689121803938990822010463773182046005943704842919828858102850857587324335084234824903312551197442255872512486256195512979213493822602402776906238208201184744029460090308129742345052376298076538211362699364522310259447072117729377690590079805241814208956676729072771692879549665215456731718482254011302202188010601063879254822615879167765802336091144631228107210160338299093255821455092159515854270300961338514844323543230228229846754517360843550162647137678289074516648481250199965299418814634736765344365402346974101201245238502047986772591005970728206334466292876540603471427017672298403345046525184259044464890015312986905641572505859126837862818690581466390118581616102789711925641755182225508248382784305619321173553738035500423351205699615685201379785979394860207664605758239307097793022601682437283915015558373364405310084155097109423957309520112774417889522403320709181471778033307334061158229920257038206155685430078329503695560472360692732631496787508379113439351551170240954230683833655108828065885661951276728376964410822259073892383434443735703228378887935117061997576741352212392140222453050455999288978870130165876326528893567511493836712026971495720766113210339230903315338442714615573263486301077540548051075394847379620388338642401986559919781711569670791310346985048185584842399037823558686570737238654557038277247384685624639186344247298811272665759393233832084004949134442081760510392296060725202452721247594981840709589498709313459209974126297692522548376078489998647552938688408770857359865989361407366522469750102570240172232776959888701934006522457761880484674103666021497028937192222737624645626119391738349824484157225444855249052875348415347597170611550569479262329102578921204346681210220574758821728053992233050861176315114053980356345468183679169820653763476459781237701534475255118558710552621722567607293105358524229257730922956075884333514345852759596382631281140114259758102369381275795229949740585713756118362175261886338758220210478930846822581276486206228065889772908967668023977861279752673870241015663726737955710337183800118508402131380726675298755980232696785740847314017040739241333362971190917072274278045634839116875128267915278090319862644504189166416252787494931130179130297410360018369650069736736850884823277646746536340421026831878541949629948155691194865299964592561119942847993751357596590860247840812960608203125315758350075677794044916880624657293550215005980776125448584465522922031654241129027959168158757970280630263054842986076979620494022923499115850635367182325234081584403239134944457808422603782267111792381443531625950985264964797473733818619639490585614233192868911707567945401610555736235087834432225130823441129080068926140268930302106902367584308305843858780544926778676214987033048130668522111596031564732010434882133274816584139963484183343964739142009055918864005554260083916264060184231407601775057101765178764804058009413991217583125853357895777592407041691362990252796426911109824264171790303602502007854271346179356671838076146077297194235243143063465890808176714537780033864545755305417511167566512805343911280244030850187678202404682007085956589778419908657427995201915906782988581523099785382080981542821001474913750489559217252819729982118341424631375885232603452770215507950391636777941867380805498267159504682994344118170665053802437224973210246134168078843534114935111514306525572960973912733573381349763483874356637234034578960792520198894048335297873507854719897967593919682171019123443374496534084144569388065467516595985089041480803880541671595573631364564714935639293293103682267400737937626568701813065276771925211860334810157296589308989424955387930434442681088316669873304822169525164083544753990558508284962170732688843038233626437159427156400193191997134127316832561635234899004039928007846023126293802835652033264514359254155037397611084748423111582700842597566258343706715657830700147728845110775782777415082524692272736613621728090485238406802744719765946578673693899535252010181605764063855637615995377996940233116642173834433889048315306953547733290103954750672897385691200509323189185745868140018240099674895338523985977028336661984257801865144207358878706490552147528692267471597784153149471775151267146429741890325360734266176369453698275971041322205815204529792085073667449596869773144070623322676882773585048181057376409992541214425599961405962606824079026136704352540991246413328793725033280830108133347139486433137881326618347589770820547081524423593724954050108500659385479110163736129831295461049610553863255119867735274766623266703073556169212330917721723404597393763296655752377096056971125877034831920770884592122304433705172207332404820516589672558572060290080916123719694585247139518983483726580001651055149741612416250238700334739125763472360369203618018006706410556714466757144461071113835008991140465847746747257381758309562534719788808329708712995307201948039360426298261714483905963932575894079614872591882361607878594376300891072051470785408782528835276782693333463289600267980460120346365944330707610992006396242920375644067463777671746431749947592666029530946990576709512611758353035849270951796532372833253267530576817128621151059834067945250809868509065450402403937978843100425142057624442347533830626678347038748036953455849216478761887950584492135899222313909905064279283945707370924853785502069826671427257907100381393009118681230964106166472705275606659131265724022117135372236536499487253511339340280777618416360372296470931079783797286192546544250320252226540397302716327407541149158761786322194655424296976802519592631615863820491260982252891131961626228682313122343183291957322759591948399185552928055552061657703374884940883470406504760449424813544602292744873130305996423147066983724617720452049416501484314606371243301114163762538981455831636335185499502370860320333026965949501036535979927062776068250081753725059452153801076460844048542180178141915396515430927150482962393746186376669016244214817996522218786141566189682391579178058077695057847474238461161154035731089912066573806586970874744777913629542397572406262974240460525139444397474422626471430736653687394513674463628826667522939608512244162523471428817197446071946253860452631633651214581720623187755359928690106663529604704802549585486812233110497677790924880393751179789401582212346640402013562589402761118144098960819048355381685523123326332080453023709257336231802533409922414461880821977905550166004721756163274430905691354768299282765048775867968526126726770910649941833117931562044095979880884445084897623712791716148739589237044096080551358462336233700311409027007039616418093707404452185062192249994650965392697592089786051181086859002155041131151868228518820164697277840577758077091542371992487239734260924868504875591303465665131061153038190904135817713575005598493013169528832681866606073437110691095019810017260495405408435709725065540405232351027521787324864855818160176715625286777976056641951488409241012287432669875486592682511272404104266986409320857095151159592314847039494537004373580312923532108270588730562137887503442635081873878307104950262270286151937255226894724633354073629113458400698731534272699638671187682775811675571852702695917232379610518512490767767354938038119613259035315109974211080802828347252976575281343234434895984589239109125522191935571578749219473089109870096394797243779296575475109608508599415022402479952072767922857604076771443112190920393634922530447667224365512981766325738797134470300971248409622171545644153464622874236748835672451060867369067051339046230544672220527862773897606940627699171519257071225221687976750534626240566789841719008972227802288320813680355535446737939753643732340153331533108388257707192307703530135633859175496476975502589056575403383672442735158571082131598837332085626016272644724705495775922827577973535122319471151166493780104925440408256529857086136932000539381725932164166699349385907971101608599933468233106540751593467087546733420464394327109725088123863421778926781804839518411780082826286814213448187661416897930607740582613421969293310010452748856502301462041818275604741114562622427346533600453192378361069044723205612598174833662235858968715725880235463261481200396400282145347908223707818665079107048449122147475623120565864706687219105572567158009040107181220390571400945521605875286876972213282497164083180297006278225209111219897071052226460299587397832319739911790752786855983863097053122452184426542150547006166370524594941087344653732462698835373878295299063642832349039590254946411459032866362302435936730984102576865261333531425097731455403307313589879030974864956855634931630844911876260466614978993489119447172134040062938041822867505970906884140278866221853594871172697712828127453891916367579690787675143352852503277406633583991806347413018058104483045854053139357168504664512025979945544527359959061478528765303815905632456195615716947825693795812556420942708143036118814759192517926563344761508377967238380007119121419991940100831397286453651667647318988476931116029616125612255855499821247844852554741379730546963366933331714061898485160024282920260340016649622567519253686026755579763332860716379705254650124162927707971337836713583184148421221011545312017828712522264238448774714147273420037709375116994196749260265353238021797493639209727463240815346347630474122318900652281092010763721853663528219084574409530370026594721726200166318270877065690241667214937785405239292887400687144462832639619267058920292695476886344842926836703296912293666687226585089964525367158661897780820837818909476123744212455296329746265587682210343068089629720818963573451695616105230601693844404924535372225239379930291754326411542373761245009442961876824607286790698692962887593138282115049837089006809054011509601625387565432596339457010477636403918471288002463532069851039190126295713569804921630921245941869020347853453185415220862318662339996898401546684883320899932418469737256096289660798108446142362753109117014798018491372868821830747488189860718743064544790390919382487665403534825757725195804398667941610040235951459933761044723405844890860971695278586876124256843443994266808013379114434418474025945075316690812450875970489002956714342473655024103893511839098545085078051756475113352983289148132541476224323995874299072953964717587248582411573726729708709118194591781776701531792644684867474630304785249373601592493670259197503482882083622072002967786939903382084514192978241299070839373400224601972130926870192510086818961590461458496383255290838354493272823026307847060198126360355994400684526783220539205349169661174265538510291082100029784014387673059426842156734856738805871166585636716894663295552927738181795770553206737461509636746894444182406971216424682125385908511651406398687817583576819499835512987587375657895627096639091452256241761132646707190544768205688111509374825180943539438116289478588718244412284352410751071793588525961614677723544540703808084323230941184654451186710583938346734205165475154095534739081921112202119033492940242479186746472114177456981022315250207944409151731019481523885343712640022812469025292223844516679770590974912895810963765851176040948756444030545708960476736538918806773814821605568585126769779295045568368123182025382039996885653855697623878881385183221367822716853515783006865190103989447355714670279936499759309228044952095364801410399279552442527276831582223158647400115794413461620412824824277020461212455954328828376858578595933220049333111562243419535313657984038695973906878732272081662588684927309168630642546435815688112531496454238334423546632496526441763081240480652769585343134351715542966017855970571639001345022654152859146600014646377395723146437277723812024864451852938406814384069505078684863120503137151261242051637984077043286179198732557145320826533543423895236732255484039989479799245454313322396263924251107320545641645888076784411500060058485851880182048049231185261444211012948317508060465192219925330740023086666285013206109266955115734348775276710429938054687927185167237185336743905611994324718975363740949051386364931321420642300569559909196231756216757420216596941241085429357602936654367159874244237504630031379843682884905515228879825632649365120517475349974117080411468058618819911051683784985655596081641594549792223263273686991160016745522568408122093269377358411879152132764569297701907581055632770453988802185234231458109033481678483801794061985082395235547153447480724839771067664974645281341347565895608543169370032245003373921020708307975328788510666177528928889778777836932864926122964098622491754892578282485613609110475813321358786898152921789358213473983493681928968515452223219513708779701169240785234540199013642317019238518118904611271259901534215639702539611288143405321253706362486133610789456899927232286783256660130941583670652682762540118683541242714264167381583098183225369633389469813140997272325611741369298270106301441085783475455975098484735592910846750448633743772902482652388566284075435300048300716385223198223870552061713746941528984701581211925881866685097880288827430581447755471811207169204815368309389858681820771680647500425666770117534043947494113608647898815322499182114555960743349614245702598464859280862136007902720543265292303355410268252505393814471549994111744322604633049976249019578501045455908602204093851707456931223580911368766443118201158712497880273582683844426445797895171205128213926240731350118964280453209258173318851312951450334151915885228965738360720441515318159649811151099800618141159498894378489834422754249321499867150025413661203369454918157687444621512695241009097149069770475874432379960636236787734948831538242710522707388407001273985116840876076606897275157290867064161244241175490103915317739608364352224108221313147661810035201351638671252003103149847312016032952573707672749719696047924451059438799792171285584732225493116569786623107171968973718632803232080783915087758475729624450638849283129134175175846629769684678408997671504071406405305718654377839724783531278661366080934573085614410245961611067544527007484606253170117956488828389789627888424836093162975061901616288536783692934826765933498098262651173933053309016052245408331096811792502742422790705360566461042208762962109763373164226665595139852755106666852319448667717352565646092755874226088753880056046819000562088783101906073754932039185965833134238233580384857572538071362769175691981486101567352499464289067314060858145687978907344964387207170125346298188282808176571077999200365454576591880260389439242150271399415118649561201014525684581082397874943059703279051019250232371736953675323299378961125189386226605680190312986284105893766285063789601414694748821602803746967823428675452345538714606947751498908502338243132799860686236629729657661786180831835164235886961209393539752856176801361048656853487718056053681451003891721374227488290011816890389045367427277298221886737455949666137842455283583045850550780349315815455300483067162811880648773948704709920668389658174546777242127025226268024549607203325567209845731805751308361799457194887950247502836436603701091766322755154943250554802048324573447733263946735010740071458822341848273199216304225436002905564829114086204992752085795483173441749379052912164184469782438375206529769950266611398645011002510472222955942075725591291081541463017568599424771474061006462926404409412838697951971412030203081579958700814204791878070340118151829415866731051281465155360917484692232659168203989098686157598720981967015492654277568230670837566375245914162848321307606395952931579265605493300630912589946660565946758546814604148573565051482721460065627204666653172860602317444853680983246880604707389691360086940323524356838808201885027145163213750928572894595598935939571422229595279372647279119198999735866689399638779439829667202938360435734024634827842442829236013544659006030404792488717168394061331438717537720010015601772940903069948946542733620514925212591777035480227264007287796253474829615101626538213907882830188132118597357416095393162799246310883337556961323425277975878453578869390111500637829451521627992983571780211416432541431722514645544354392796637643076007937947173908768388547473568750602648772206004166851599805382390221754879712140223748304570988466110025950369015885306114180128239273543809780721220393165814093227896420403446209888319395111114991930550818022016556152468814929326527564466639257692031111399575512699850124200382359669819656749389033382113903484669232283973988223294380518922452159053626693341371162519602504566621969453309016002652919469326187570129418944352484185626418008116423624993773591950835170954424038780070629903882701516353949101322692156416731079428986036080214154461475667380826436220249265491664366283666897704732460196478991492203081699113853514662385226117684780761464698739122695177844255444351001050208764341681010318236487265337884627131511336636148394786721076972581808441547364415249519482484867132863729184725737074623919381944902722065595263674252038517335863750024022683166313862723170019670876286864635133105846402251739461368552441955505848518341763957242566321227882048926818964372323524726325588511841288043015650765473514429849736477724549300009931243377996975523198644604944882268061157941137595713568977779418638742636808243257334413617319406629764664788991841152313675892615756176851311678322886155291795750394794628636247893747745800710462924957655063726301984052417378236234781439670899311677519834954692185446985300408191015770449648065060838363004052838731998050254633054655154159004683806340900270258099091189912659363708814904382398405602430183858958541208510197693316671114068013619914353750439255740710676158716270624754514628637489007075610162169892143895408279445016169725668961292203681733324453734610642163957993485563056934584673231581859238728983931774792443943508883294826017615623645029752776955049036011583989835201076581129375119395983174943265990713670030107047378928115255433828581851994260930559183319809465872725315625691989997356496829272938058278200917221413985262357277373166526203549147847384574674154450474363595574261659792907580769919084190856728824483115267618583795911892208498620822511774490141658099725129080718089231547107968119375562587519061176363137027357602101872060828201746165769149745497629863922169924966429696555463708812755765918585472643972480401292662125826323653223334409296580319026494204575888025553426269759627674495355370176627724567852281076447575087072033574365550246305571893801108143411054056947721442666537801478984187851393831703077676199368767204144712323025035337820741923276569655278977274671540520154894357785605649737081995545965542152961501134443434790834938333211392077473616275356901622129028541369429182399576709354911137301542983365566808873411825110674801382566469200403569132990857054884238095580481529888847882984476181397384110994367880082966456283821082853117598565062979574675384771013298844392184125473949601776962195451283453810582546500521481781850651786948080512109942504357087047496489638422493137669572015587614510516735349822997739540373016222098945295663757796795770855520596687940323017980638029180564954096832507533632550057192559579226413123340037810770900916897648205062777797001007205190596713246129468817377056182440236323330199363471199748550598597346392735519087642609049768028737110340453729231190411855105930052221867806340546136374658739493818406248037434942199130867278694583067745994672938447850547731562442988229771966727710110524363494652741979643787628057766029687386258235519588271519120410487592285869957318521923502560587181972995961810775123745850749476271765832269436887608566746899276618432348463817616711541991020950092010214521419728141221545414307416642633385368908930001668656677547936126223847278843050929253554501484952635439244336060757424911293388179177544368089926135070735252495886090103902095690062228979581216989461756834450723597388125964561313862098992899512412267916027422563161238408686302676719900582771922360701074423919683068117532717316928664931947679375957635178498264085401591887426029184479861129054149601324650888681970148357091300838018217851512331469255684469611111398490822967782812551878339572025341791480910491062038839053632906959930593009575353300722293905849899296317541986235381612735677607953999308358599050828428540207304242149816096034445435411788791229830875296889974431829214373125144069304929324360900339681762494455943581052261917180085460193017535323545789557039187577393129555106850351765731066128660672427960623978581780868754233965969754846644065199188190515235903460500532485404317913012947346545512783388506684130836266088631858240875057087633509584152067525962652880511054902878268774196286761986898317267589811242026500877786757692278186035520595838371083371796091727272585503963873691447694150689515643078700194021833976253514432297402061102579582324299616747862846836005880264827064418908262759649217953820916272543399515922980549182637120429129572255149269306035723944279051584101206134868170700832872339879803879600916966064380570176024619851423135252344140503628547732810451430616804793829471528889669424221947106680606897326234288431400364330332594060453661344361688847257879122530363464249603189285961016974822444630217465235838576866431431296720916107792239172731998190654303233690720982553902856303988317752216886288547258607475080390215931506605162694996554619873652300135877166859410484092390049940538650250455459190690161232229800042152946787884099125603811636829147710004815481913664225371804794944796190503258732208912782570231744038577045930672550994240315671124189909031264271839830417540465402370996595641500812568301800400998201190028633215215168575951819544993448161970756971113458555979308278746251531167826425141862796138229905240886141420340059150766070044866171285976549410876722066563738227302683217571524333530431935893835476208488107266484099520826518929725250150712679871025514070658302833762422035694275703188073169605778436493417120268768485504000637959547917491282575811433949520921512946835967712317576862353103733837448091248949986913917384860712468081487705778079942672387876557241652725369814976112225062225891794312019852614115970930149350894168845135672215193732888560509177691685796171665472990813698353583455115109445832399078939771691898329212172819884904932749771934488127281407030477929515502099753691200935950342086100600379243090424423693961529344226266187394591168285995394850658168522929002613930612000735657479876742497343271785755845134909331809183936740037008325610579651556139434211247143044221356785001362372822378639346648868739233179333610505604420294317389747248962207114799418881049894866731224949278251527174757739657829716242703726480380164384727109480845096961463567598585989137262347112211203841086962440343153419952944639257638491416219172029295615205614100978936123127050288244809088679291717167202403619312854717175161138839204656802767399170689049031811334272353379542190185278521997885571790404812150255211379053656969599054968281729509954445212775722566506599497191900780879174931973602014643128666164601975178007506244942270552083703703891443467679588894989079783813450285193172662983682669909653332637155523142970445711995360255600696934429775296880579241793981551298566791882873542607372525230355255263790081192415454802620227918669334039697672110172674182083373412904276316915633527974338145328966910766149054764026024954364035059061284557757868332379498447851532263812490060517567527812038720352465858134672401588208585072323620961320239685523925394794610700118202121758893872232308062703319295690576265845337787440210058675470056012650394718530786118380137994516782331839529562350086925666674684583830720408909546117744172607783747796364632444540619413890431743993877542385762127074138326386308982782063380873478048073826779439904383941892871193537741448583041140252467025230794014935740236580773014960596456965799852438281810210157121048613520299218814249438138202201078025695126209489678654925386160615550170487715414827318461374435068429096844057119870565975888271740286716427364596684790136958261163658143799344149291195568092736991182144189311849807180518133968424687761993075690428285762511416763809001227195122294952826671514758231630279118297258216278535002953953880803946452796079891306714533503858580628407740356867987843583848013560650662503209054068496831891646288433190971125889855841570548042491700031835699306493332043607678810598370108063257244479219530624150863445009703139997769564523441671422679365349710121646604596622621807990391636499154117360771046505643207825775528092145301890458103584183328711003278787355110746348971313061048561531558580413052632048934910360959082059433730299180163928490291577778736251043694423263265422269511082581348573090111858514601657433196315573729310472524526909312067622050011318304152768551770693781280099062838761489126079604818019256895050533572884107911584797506818852917673395547650536231108941399517165162298805724711065580145366546143375392296991055694797657994142028451352385281248431392082653758763781917811023712807956235132476107388937767693719111748793493705701504501375444710743292732246397347849106621483520855665539050448938624533745796043045373517108495078311508939643615828841439091003626639322342338933591332549267623289667112407361016621505538197989522715060766948494341187975261656145619171092263577223910624884397169727486126907524000215174915348329923886854564399876469158149672433421999005850459562937454886420730054380464618273838166229703113511129287906121568926296716976656569638439877625583699388635532463667401206320968112779350530878673572681941595232738119505877488218171367243199017697936104358663906114290956626829744583117392125415161693349080152343172258169498679338982154051541915970739132847040135862099307617234524629943352273649813895102378507901342620006853630745291684459623831246110115331653968422544014860850387559392755346742760556697188765170781027521630691957559515730881077691646060969381394869200625332809608295372431894185749577794174633598139438131634709366245213557466646677118548335560589247591029017351687695841444900344916654444929613610813135932225378211471019404873571598785725844371611653852027523961945187595747893318252456557730706023350076787614675380974759252659299901809791421206673136306480099430474262876740588833462852966986405203554382635733373015592388240546168507103418774592707879818677142888156974720358207353114655205789913700494572523770180884174209797066883214031388914085015839011651825876571301292963242957086538299695634906682608824421158772218525570263147953520382417861047125502091405266759761859209462850425958533694516872052212316293080870376071402258170691087669407712106004993985806596882581456882036268083041327008296790931888038971731608384018359022012439548473908601149235097083903868636553833526626446429210806837558611806207493279361093865999077007107642218695088944728334570715854101058159326952109817745329670817864691335363346262406353855648286156719354409950399701710666247776968643595800875032386922437192258271423835846096342838453975357521482933321342862175566015856287230465339051393720663392229562042338977310126734295949595521429471853031596675214822441238426982717036066342333532176932927299958412247997251549042592552739757712390828228455946532330462420118471032733080101978453814201124161183160494408356271261743275079474347254632902643893502977866883514384307353043360742630603665309342471646692459759324852550419219734638002204006195779458943496115114286648251792177081889746581343003256695236432439611541255660963490508985392188935628909505051763791270550185579988453592875397379794207306408562611547794172239878028262109944735085687945647568559698429115105655817195769976196599658659501188886923271193963060008629686252358025266322605649385514682300561449916135475621683355844375914704736519110404449124130480882706887287576186749369910212148953489728878091758626392555095549723164595657123840323876001623859621508524369777126605118546856233809101450193493969804525538834113615298112560118696032941478802347859310290684073658493356730645640676823791040656513861360459708302548734406601617267812140034138225899140441779333469632474671114369103690061967291234025129365170633773393229244777734935262170026976330422248060170042264930741280863836101550208752036070549742190535159866146696373643722380631616073773397054655482893685513959578351939596081297412116695903037605910988128337992356976696351510427447619575272769235937268658649827855651408993837095087228977116744209588007690576970018234487067675462630904492685966465957933778858889523174550463380954571922401048970021915776369653710815851177411033680603752438087401271300168409343751751418399162690561699231939175004783643169595879500239754069479436419821272449366731741623399517573525568224255088889511997341223253483462044581653715938526082733321148823254303509581365214546914456981055934718278406348019457371188920020864186929238655347318862757764511084044236473998088253340607925613994082378365401519037107363400164272725307795417873246752005284246105501166110754548928402713370340737006562884890455556216197503267129222140580815729951005910531680851854726576719494972897401803484526773098647597070598279409027453256346074514348353077647189156900647124514862111625937578625213508385137089248981068882065851865535262764527911098010009688523996540543521858387601876954994688341550809857253641446494952786246210488327638159645824675116575600637734889629350613800003916733724551762571321938097932678212187156647009983476611040979776902681790588177607714138510729932337581012572507844782646927501995762268764088887538170569161560068481416471099701372788848428043409853183419683491632545405552047022544927497587109601488987958437638558906493283543143719844951797363277707885475618416057177156199082354116749858119045134909023835961734359059837682093839180818127831030509750983220548350138766618239449464058439077784510617755004493771908940384314660127508832570377102334872598954744739751983759593551606886025421189774325334594119006767414779554469078247942791532242688443882036118478126672411061084392844929998388569313803216565473435443424349995842233563240524868075755819162404037187106121735129819798147100997339117089541216959646125440779919846975630927969188213169989864392104697276393170078804790173459456437243207051687147118068010916990897144692881631235514190909189768588023539426060043814474641284940101689897772825401295105566392584416393010959904842508796499421822861715671992518676043592834407511286677362346277720272810888829102109318844266601824165508818104880783539037748196746431645265164515949685877732940850069691267797800615287381350847148834363028767906263730089656375495739823152349600215855793858511688299084890061783779674190694932967488937888960855439304964425335415212175610419831533305098784247570082241304067171795298413231170161011222313489928969663786490138113148810345300296723448199992614601540884767897893900469808590155382612527292658613914358229699166708349813884721113706514316304225521200828592229295278354062406303232341701784089205510280593563547571751978454854762784973191267862987133644281434036902911589962819281785301442774010674744411279977852412227619390221490852597785164673235948402562358455857977105130716161272325618700628666804263838726532342210829146970072127493803424103011680483049127680694195339088015475564415916115298740813810595284979316525093755771630611122650400677311637860881666151804766354494381241524956136692269536675806129665178035022535867911672492496065824250384170256807847062100284559621482208240527950154552622670564547733426077444692752333441188600143261934160121353840682116069830167333892814594035032676814113991675885027909439015566489367981982957058053832950628944922456698950354716979966517719578997285313887214538260213287278757359946459176628679350665770815488420506369954188587181758471145556794170580801254944983315158637639427205309795472448410351370809805264333234342004078650528709530301844763272168832511485782238675980266832381651812217980901148171059742950139200764254009152172583938922434333116198766104791084245421960928877880962964559893742404750175299549150706250455491688973710191650244404787908797399059266273567902657799874260239462852309933375879919566054587437751965973497640969652162338368182276803509818169059701764034989036493547823070501279589402595946202634890626043282144635465666144287824920381346745220632172667757450465885080063469042602890386397960240252051894260053341327763751722215416082186528441587095825990791826332404922157948301353181515845988913611186112999203794744727911773530271875819600847532819957728421363741304439174047876140028044718141973279040505428152221527033974402021101207732254752292464377231031938223783567902584771375347828902842407742173409508405709097091804473156446689958977750724991901725609232517283725858969525691361584046768581933763347635400763552168798240070576903351708127485327077625649644152887113662933701678532385028327434014878781410933158778204701431220880045615658665438864941439333972375612037002654631051137830899688030155511260756373239236428382213324057448484181506922128414289275829394613234586175030578285660354048109218783004705390855238526735234504287129995752830848095026772206012286456335777187127337728535750397353584336117803207237037364121870456720659967553339112568180979867101017304391630062002140032175081378810341576216135706346333926102417332821282162104726146506950792113423717302710374659436798342169692505951080120648350178808429192778111114925933495051118455651011981737391146818600170462258390042215209416591554191769971757391173041293595688612389734516216474843637222355406398014970833024760418821399572216162929386923132813746684393184479319355672408153350742170742369419285144223624304155144599566689107214154771473213577602790940867966402312077544981717941703062958384750853508049627477866558832341156752543233019428272615343317115847594737211319701573991370926646102066538079512173862611777526559916576737762791947748761169876967690975208136667989702556768884704424943902587699554916520144300972312715631547895476925118479424745134439034951398198362602068427116589540781711182279614605213072147342691652994686476634414219116220623477768475148567644969353185615193983623221177961266735717725617342201263148704875192179112410223985150507621336525257813158038022538977977607309656502927518275912248739306936931432043357092527063356409196272914455557785903987128026063507422109229816411106455126677963279372592614970540574749158280485732103488686520191264600640720537628303772077383430764688253214321499330328772178155979938050167650001867208967038115628338066467630548876422410430494770169837030381963929330354630633897517801856503113183057010332758837707777419483551526460478248518807730556143332479703359283090041382811673574776951712393291619634639508661644361544188572246072277865949822178426670731370266844939001489146251438068730520149057512350702284349337274840165086155916718313047392594547898226914210811919587198578877685081338799891163817792887399944279812105784631030340491908296178678478171197386167113385566385458673371525877489776251104626591554059295487483356193779174280281307865268643314891235188500316549064943888437624862101276878280693869007321494065135784247564998933259110763117539733192967310213431539550940838338169498455398654111594329824675842854168388074392993187161906006474982932217139119837031318095193284218364056265206657601416830026590839279506609653385694116343389456130358116979524565477942887988139105307401119404937081483704784444905968486012783056302312332070114073432957260193515165943552605435897724834941011690361644146599432561920300897808185668088533377872689795938026745437557370516411049996215331002850059969999936566536481749427982877802526024503606194310698187982373104341888944982054807316373088863615697506744805653031421758978530467731408211789526903713895454142034202222755395219742316640723085615147265095835940584699910848209301997811132766212240769075706253561485655975085460361685179042914214367885228651739840075553782089986483505628940037541663984361209451589988480293583079115887436355527776770491627685341458546131405781145975407792402666623863223751645527592210247636029209276544391089310831551806137110312918187428590369618719439966727327914030053289881803200662150465190579670897502589976815146675147894332210709163457504852893059513244979620249499622190138715174361371467007445022866027355232836061894751814329916466488657939888964666311003328747913047329113032537475918240664987991571264859857962494675617157631001952811467194783758744819274870644081671696408019631558238757967657374467499678638550030248298533135133804677449095329115096774684675477783717460184192807007704483192492318515501039650224395082329121507629018162307547157753779546854962630373236642105810971670181525903888489642166308959758582385961536438390645060528095319128012534845527413665451293354603125072761055621091944693512748569441037545936793629133056138661130524346151915423248437718101977973193762240007657652792382220625928977227990394107539407112850650945091116359246950687654887675828849263423286696547112206383041416913573734922723631867379034654084934041909759807198944095978873848408339431795079470826082917456793400674260199483939845585597510708458418082495931872597143301310315829347348295548069449056143856466322562959168920023162549911037930789628733916130462437225560551333877264571446406609248688251452490090848625304981897252112553145140673947791756753015558094063103928972495869520647468024428627333446106500833995253637189975034988143061200148505759966396188352038610418433620573541064843613540271513690949904852101945699628907333975269605422989154938397231627870813394035806256049545335174534758272102361899960048240619187369294945627507079791788850990283107891149810210724227683468621324903572154796328724849990881574180649256141512235769345094555203426548344838987724116311043913809683256566597556919662082219536673864399519345948017155010889488867928366184872260241735720048642896098091136518343908533066566005644128369874873541659218044580459209894084751535090403809466232508406123419844103735948341345141743935965418420167665036974654762522158378983191690832285939561838173026507430382449817666014681244593632195860353020402917577464169877166590829843402653390341151665843802851893809853863024279389782327329164579577306611388948241752595406978663031488900574783956523169676142787552909836403177466964830998868175993317964462102212177268853432036378081830991625404299991266908719861369154370165432249512042172821554135887913360756388653587626043302792567979218129635090769696336306405121745785201317944907259010012680172279063214555410755200521819565870507856693871114590755580302041156530522905634913617786509137889353137444774847030180244269726060100023268092849228439636402889267005989733275971263757524822741961282344862979226226000681409237035975791637380180949986205628449280816671405774309156494593449298436782912753846264880935770977443517561196908571064168603454278058577430271617856128219993879447968838602374803432275408962185164691528457858008054803636411050691504384838648273537386734470614414484489486138844806811975581473892481384377573500225380205853927585979938312288769277348937405786434787357775581403486326802359846317433807927881509882282055477248879842258905382277934022422492843112464772354030422320838954526408904224010788417377287986286170922928944153492070034708116432422606303375560649268664342277523554852398107630853013229472331115672510218693018021250761515733399612329241565728343588304507274306476449479288406608507611715132860849081669644741839270284835120929097102934825957217153333329059634137995196100531127880098858998802044325508197970480003386841580163551666515226322475348747423032061928879340273293599733024952774403918321251408787853320462048969515491665029554723479975899728048434730681325651871881749796643524338762872232193824218555087054776645102950965688863044031323611605402771961708220427991626646103602922238675751854526969859954157346507882312420592947288818933239514353060103122918617639795376842112394093625980849536929331697204955928501164412218224446306727266797543054324484049030429202794766273475298861429312554516672400378493046501502157199447289277789842392564750928879350180214128700243550828074534447419562069699042056062346839024178888672899648965567296642336422467087092896865154257458588142285491184584802479784997841711093408902115345588884196656636855797345395066712250491059924094181079287852868413529651520005386245857466031275203299341268784566419072446246918061107553040172028596985754134599188383882708978124587035320454654640173407750997111360549134358311239414024596533921151084537093185836264573481893796123436422823633290891477280844659772440708225909116296327757615810279586042038095254626540592031120627903473636229194080195054458899117092267077762289173481627231943584391445536447297340274544819779861131860384700209110917295112963177154754283115489910540546705996963287297678274685908328541879545073829273602494294313616132304832511991424382372365827942531451174460717380979513467573579248458103360234750041105541295722583266727675031503329018631442439037846452581513544566607685417787551477491160236969338618229392443718030451022817316386913053532832389131263715364532154079791942656254915909432171962095115189070526384160308316474535502276889961588207007681815145576123330110130110952367948617841842525234307828883682541951017513663913157287056761516421779384939524111477093517268451471348093167275717411142733044350620087561942449274318455084199810578338557402725957150537127450905471267665833453063370737108316805016102560269167007770317698143389821729414018949551860354213383692122009448332574593932476451849347310777980264229661237888699890792993688196171787223299012501477715181707989552335766611249685211301935313478633667677412781099516918452360587517566214911714448248103808278308526439091943580446088167247793627888637833408795663474811052486935440719351902773852515392304495144547166118984586441503359536787813088981105371824410054784435399000991144974077787241831675991147637027489377482102186557265674995400675478756059686535030165588319889866963396495819009829046012884535948686012456436402686815523451530337733964050387795127401950350199677606009195578617003513685563294455762300867719898169103259070232233263481740919807982185790029282419948797827806550630677408672560404436097330208302702064429705694252150417798896012007458440165929870020850060153374688228858280144318278482240797155495825787067129623250890836657632344167710976062860698325646520236262653423688894284705258904884281003689277919224695636512859379793811410989394600672186806990449791553256194166396106067601451554757352547117002936271898468007598510929414298692380425230755533995706845431700128097943540387974994579355855474825183684150689458726713568927820253276359977199542193542930453031959229890463484264295009476369596659902044388300042945817575424829422971175517052389404102143335394159973916298386208713351161438774653478693301309739217015518212759762455753859185589025399390292098816260073035597601428943523386057131671204298885139703763513304486789903468988449431901813175492441291502076383427695430379665399870204518326532185312528985308882690495763422228266387489502776402062692851016130305947761222211070112321917168499672507230223566147613710691460747205900640004346420748285197262888111194808336607917053259364039700988266654643461341884087771521434548299968819319742757646474005029264923079833413248819034035631309561123104179969427008016135883319386726337102677511066357851131617515098493701302912472928679204563797215824329159212861687111253582633217429934386738249434168155801354041133295219528998225742691860847291321746446296006426493826352927740469934131974276043389002575098693559639548355679468326722673783796035923669562973006020493777629125289004218705028704250993693606744260135116018559536327605140982138544935619735922809003373263101753498710033634098454687185515393804148928663093138295361423493053722835354193794409507405477063760316176622353665986499779233586940638377509942869033057856358471011193984346120660276715599450820252043401254891584029472302889218236452905312577338111871168248820955633059732749858062490305315353010004894156332005017403664848276775935672384506531659739252277587061805584652120081706448397875597905819821016329720697733616863883645346903476460232571170461943338975309598955645911273199835508114445924677885494503077959801791915478089756942254832280410802036864062790983308929891020476067141149288521354607709620709248406634510431646275801857097524334133551536853538346193881467715638018567590084144026175727167435773970260227256229550679933442124266534386663875384101723460349017410130558159034700461682111427176005465337702334663150194336827981064625667506025324335278160270122210727562235849809791749015085201896248448610656806552839282535322334438226774404913614036955352297848821267877567128738449801189425897047069368955985472268795967518609485144285254873820907271291864102074601309775122025776862042027883048554272385576655831119642636802777714193831074478256489953672276820729523381587912261023532784065818865112641404837765457179548713131716193265547448207713957603981377418839455038486173946388613851355097259636372931854618466502015468633248721032131928033434356340759997471764980947573361190704184935266920035249149202516735642508623407584243992507145889194942934427521569808618487374449910209270580184682566242002568602343440557974301185752695551571562543371188505194940492647998802407184173493033505144284894004355118791893624455908162236690008966602074394441171788349722831322907502567147343150265263875423868423935361997098433271574815339523843086255523977619499484527404237070002067758555391888286252620464519924351112036342791437693085345487560406988506689977670658234789019408534744222056661110672985299083883916586303086829506043457263026009880723317250350099184701432497980747819678761423426790542304133093594594061330058313459334038250242155769974571774491822539639366937605941217063443943687048006610468421681328283120865127233664620565680808180428873984778504606038643445204227871331980016166842666743404998621355990903348971363303663113808384309736894525440880870204523393882438382428422083203240616326591420523708504906801009905208691054899039119469371575782575301488097173837295908363316970629546689487278202543975489794705147045611161522084281506714644336806612776951293790030356786527308174749667487436119215175764728444612183969393536843186403684701343219402613864030373252808635067408762814846465169814779138776070853701596778195244093387456600572437344188512127990869606579460436786991603926221186927151334077151615774929906730647732977719042861097429615245467453121152325739792079969534815203665978063369301703210191349219792264108132467187025940107272447128617730024201465564139130868522445305659938928142648985358819221753637877954728364899159686226779671217385390387270149510087333076466141058353441022097539962504649964183497020727012169435076114426117698112737956399426268103300119235021674043727808947205867315261829554347732425296877487635266339394886207871071194043837541644172868188369025196344136979209659158339169772364639420758730200292031244200525364066226703068670144465686547822669506424428790025866766244054659971201893645065991581895111702184932405169492024912405328688900430821409741851083251413199555760877211708660084641015345705484341280534689265227657992502886955958589549527220926710219559866712107394145930701873862603129573585210542015080235974766047616326325167533284386617503705991054100416902106728029112506042876864417721371764481146189472410527059264962162678578943247139011096912575849181006540952617610544745484528633553271845261802394399286465851847503745021284071872288185944803600596289635676702144594333612225590483989777292803435269742140113335472394427237738061997091422836979744919159333247881410418054952921005353982307033735874434331630261880524398205331974300791010831918208935116584959901624179051164783547160592327813867092481264020848915232545529982506752628526407221064280049667308802504007084085137296847859398261991952519860122313556631624253407079955166434366734509024254735639853179471583850554716084229529000003232913568722232834309085038986900759897564707784561148201461865865282863004949394651817622012639674434966517512569191440056611667827122299732641750444071590657971648724474431346360531572850315790806734373695709070715895034242873470644675071140113321568081037627332965587353555363376643905341098483971912220720929726523103913318304572675042788229646056586464389013532514665794286230226012322659012038119308905795343989189187061425178697683475192949872746147145101360058488008938866738902466844883339126675211305843360397043973817661549743200483571419020025217631875213349784285063815252061862842227408764190582600231488944370106205871308380162575480350878268090046266297358720749737500527617890573337952131859638887733075940621229460116182939908087957273199892622444108952682193614050323419567033231383534647380173393704888185061944292862496734528190169237940981783544982522459726789616794758831248047959591201233622469135659619784916747278344373333454681705633429394816185924974314139089972713176577170205407672288037116152413698949525407893980441446123510220052447376023236976066919580150708615700804090530189067013942735822610850556423807077277581552177411554501647429015829200596186434595993916897493428698624425264929904801673721449479750191726291761571367824983486395973280636520133143361937951998045820045903945139543898461477772576669977001263149876113528633419691036928733181734928164825604308680041561583033602199498429795468923863490297712162417665014826905376725793804254142437306546133969880144375336856427907116920204863069232906567135092061890972241357640701764701766670764365565910693907717199953405336299865543212899795596776411294300925000429225488486516594401901592638304331149348370028904296806630032787449981655894651661449524470806548987962646609183325304418525486071446902484282570833628224429754591790779842521111725711074436704343055867665078855506248413039239970060025927613380171359481723848240427776805931034658175085507943635076181957975654709847643441461003330259897161178382330109544650737329544522587308028141451435964593364492443407749343125226742288403871970818672719046430789739918390458791919149448896328485898785945520146990310666965003511229132404863741662286004050449149010504755931838582673391986818032014103606394994459862082277321830940337784187767903218038670735240269447435263543146178384912676450591003997631469729528793305078642952132338639142255545894099830009011501483182245301933969793217838249332220651050498263700836786560515123170898707088466217825030567796145976729790394591648033688419516797423094772478289313959758443849767772491101652526352638836829553253554982928957225612853853200953949384639149061414550021961280613062113878848608303257233111769759389155469853805253034968322920813753827338689559606512000053660433968963119842674534167020353831299818414816777128886119630795223693521805107941874058474001143016071170050745987115118139505953982954839471047745835517307500414352150029832200933427010455856397072198576512996614230754149754824771155464477614507317741063346682487401789604828305289065840839027178674290984556838816799343109556684192843868298949030849966128433942933204461874795897687148449686397795603336740716598366330382547246298123731274199569639261106228755869327403787671621086452437280242059441005917825895169062319992115110779734076749542866585686878757685409055197537482354214610322143308127991557620170072917424381456989146214228884057406975907407169778088826946242670151460223817585450869420874946440202302724709860330455720171582064528805240691722505191686269437057311674428524211901001686691676736805848320290346937463588363559875392740270654689868370345169206980814535813856795609347723451755698865104679565156702527111558558006364495568012464484758734116699942514287905379891972052866317445778033100034206428520479923264792173468083841712647855548784588714474169901476064271781402488081924992921607959794720252044338876020551872483432317971559768222640207460848945281252092903025279901461639470551907881165969133767411769388444818807173095578487180839942590354101656934562012638996255902948653538402459947246686125796835712289016123021777963764942843587630831128411796721659543755949937148453565107742983235825980768332663465121817744481411896371918978862329126304240630186129786644359246295764528914768199558818349871054767285132818102253249578713239414078958082882421405949990235688293834787531124592941167812469410504307493524389029145082146971736111682370605880248102359525462014037180904343746024434719198783053703594433664452422832481709244597603735301065203566753362386555890872753418307240209882202109860631635930197419188048918257600579376474443736503707080941696327253423285352273834584857316955956806300269462962358156950688503540768519757379588462218539952862800310568651120945699106170013111809501868760776130176960001813562591594402034946055716528098603837359133325492936127133427005138062941052574091013877452371877996561333679424409552482695541121703816406104993009815611692428333609440827875600834733390305893953453847529937972488242580724302229705759933596519529494837841319886554736878033879066006970977228675037211058774437284972988161280606117772768636443951699823117560058362889326085474771959768136416745031024804023175984233358799506049345722260946698590257808902763446554637213501088607251187058441984206542373153471006943782034100310205632064553377894308037969114295267491248824059652458671040777633902879694412804181518813434371396308312357411845969918835169168216849508123646243945677339513449428727558607934724708855759490810802232675831896002380629257718114655410946470616843280744910760135262601728979961914294521959339613560613362130274882324906005538427061743660745513104278667313094350648257536484090943542616549903868990398955971166173015449053101836494010313177911905812174500836747408819237882060724001408761090302091624756947567246153548179492588710271078555806640153422596872657383332582465130087245695099511692286832677703427818204440463884288656984892644693654996437934989439390838179229394085795259654340186974861408025146228180741850331139066081109433400456621474841147512535099220648446401763737613487909132200417125016585189840452303354410708406324503333870897493869850237574501383163973059354565775816418225087553202973747204522727884155267519694835196441040495714999840868663921917288042194320642584543078130793913629643447155358265110112407901326305893341233427975339643756864744880797228403151163881568480931394329184124267268314822195725976357371259894873881105667970712761275200519703532258725698474008525839633623050087233349845097609299974381673138228005101313536154010860621868374150688440052452269765430580880213462337485055832101845245932940890811197972298532572903718186638649575543750358751720681563236869360800983370387331795579154647222147426412578461392413762931068479832000124347675736792988001095006018084227120403488044332456067564114493518199324087477964952957948799277066569352416322786214923383917516050383044656724751368471111019881715511767201523838918178272341233020158476548786392083809366969957737149101725585694106144310039198863573921205160216902811405869287113325678416958997507903283159012724378446614581393793682738528836271389000410616787208616004496472080529880583212719996689185557385027146102284685348170432049801093571982667892089393023513371117301471532132322356291793648621068345645244276825279832259734997521889659530242649833314784102994261978676855572985440823336418067145235148689460691935453501738620830855016785010130221626965016209081817162658316721159251482229445516883059765237596390880836986584189203068432282201077312368750915826087523990486509237288059189276381240871341221922260181298145047762949552377287362894293061039156754807157745799599697554489843542182053267049219083340337968569010780804759142569166268346760104780619086546875306866854446731867737380185549257574658162287196207609011758210499373132157176144012612712590821832329272606821073986513487654598139268135029947129483650333797950885060286080551424338477110316692929720242144410134945340856251898859247084510859537562964593382504682358400626240653224211780108241654337984693107121400777703371583905402592349818997434876163093880750121954173534897172237133601160779491165361507513549392105833774000893885421849500750284567044108531159047184093562710817553625376791225127577262487126334749131255067100495478010752410653536023596415947684777529447543331037362356771637878360150737756879244921052651897365593266263828428687215458391447375532195520132571064148079125873672780303433911996455919696284414157254429536023978753078235670848927247230158208678315998412897535593251166170067540470054085215940191947930521342294639705046837728549645454700775139352504114993112850697424089728035514346018582521653380305225856791660999566763840457260260473478492990843130925698754931251297738455333643253003552188865243514827952247501627519495937493519761227491387895553536061769526891037250382971878798020885966016901991998448423150708346926880928419917594691072779132492629124780853492613260477230857449968050821468385733438776306430892371909220569031039033365183274525134748274007004550885858391896222434986596198167133534001153768414663182786340020443560355188837425195302191377001638087941020846158304928423328274943368398820992211856702515019260645098381540651042387962052739004902905480180009922350185636752878670260218641059119929100342195235696469007919517049856072187336347105142095729635286116377445821364654829024743179057348289437203182292636698853540309299997971201985465713511766749373119683216086763476514355913344071597233097102932296711070869455920847326632050744187819635273934589739214032171986372391125369767172989987552037705902831806193230395889568793135218900508648704970252191361574856717369973260392611317595293608770364688829329828147112946039610012634897964594923211237694967685507175583092946417366784080436840528999923765741544396890925144662900994295788511072530611676977813550043140485678497218329355941154905741293688981564772970928971842450305875796799373514511627998040264723358702395671010450904738391412330343201102782276879466912322879162440173503522206924742541884861643075003854502715520304141926292103617229822377182203615759159500744948772213123755389980036592476568340251160226139204514676787203324534485711735828508955891202798889931515683091549687231471634043551892636044542885396983955941688797142077657904926287391838931525584890432692574215255624827405408468751859957016738490526552148681331378305485450363261761807259256716077020672638902235726380028028010240849074532322320661047015113083055697335958468295089188869078691294329906423414410915522238272221302485564392177008401261211915947944693641359823351917454894847890969303844534732875089655363980770190776355550931965623115214340671971905143785076613055274521585374521544423935258140449604783499362164349861970577948879808763448224225626903417326934622767977017152833621445264663476937200446809219494737159062531230196921708864307108977780076492207628100179876975477435899616501647150219688413471053816749996146880729930195564487756845827696146562648569147880458732319551302954164696740293833141973222865987227674586695429617604273089547589725523142517794531355092857666101919162352931346372203185829364365855750592996666729840309444242894255135929123291483910850124644770693699992265893378046578830107059324750683966330941187669509451862304952837379606159509380818093730064066961463981420608768631601933716952333211572742502048783401883388511731849070251218449944607029625159691071567887908652488832753337985542428530809344159641649154579269941175152765937577417458736656224331274651936876165396625790450930944831047818569708681796188414526380593922563456226087761160540974890809572869202467644375490897576915135434025454014180173012939650187114276266065708873599428296967264372805846874426945028483014963371397985840104534570678244376918774445484580476980341518428762944696268767040235965109941505697696611446572807136734989826771447334413655742119416921607010229295463348158029048229197009544913734574291672345563876141154444148319478462129900397083284577691769713528807891792848469550587859243662999713958842819735562489688873670796454846163081010466881275357554298210060746714572777280618515101921596532406562415400529271788593168916855031155338152242004793655357847683715558659627264510251207273116795536825807936948884874733106137847192265937916656326439976917986172583140216974911977562118447723232427811142155110352167552021040799212914883341333387684239293493294215407816970893825832832232337315605999738666718131156313945232646568280874183850662546729756941151658686754096860660929544381914713642027222475527671949500918316424545118486132127979944193311127484577534159328154837781802566781187796290672606259001536201692103412486702398485967973950326530434661343606185184828077487186071191483850477249306148504616524949965923535843604090516148188315056157365378302076155677546550229254847577455930961315889080050323046566911821588419037332324949473631462763840424303067883335356826709899193063460839758986737072338804819278430304290730853789212999880830301405260978514888271883997807744718180876581916478706343189531707180064795113530343655746023693894091857876272094508166617973386427869578813945059042410213238174744662731354835009983617872696551834107715301124302796769321596374897046800375090667371378328962365079602935295669225156299810373569524955693581308705847819240856120879362318162060222553039576256883726596490963420582193801031218285674980585930862808222621188267243356851852258596845734134935299480674229738803892359510648004026912907779888827226401586017679282943251332407055465289194089036164850567538602370133993923736826453979260650522082522083533612980699221654109261569994815713516661790054201485384970923329473748458649024577106824129471912355725281814446095116156952033464893411487346066344094078772779231235693388755818583001685558164990325717869673194561704620287618980416079305829172775293114378449944999500476892206510180443624393877876264794379172883243112473174721343969539577536252860297823151053049678132201165226888466479600368373713610140811852173610866590421276686958160424153332773227125779480441706303492227565274268324262049056178932950640816658507524475386834996246198345052109929489101158186951933524902512603531799887428296354301735672222497635504796902505636594991198176687502090054941888013358551692562458390860692314141642664314356866036954175114760337114372520808803567128069881632954757033175588539520681152928136529697878237480575644730063692040851170714161479278602370399948956621432152571876153585700189390467318249318141888806288979715652736581371325464725435351655722880477467655476074714379496606467274873737691500305014176343258858864396845225901420001237624745091326623253682584621052933265020501234679565349660559295270197829550740746266180042481083578975994141270627082697957346222828391518271443030076826860632512938631858973528739286554644068088498061811957275938704417470853279527708115516529961564912431497273418291843727301796572524814954716400638213385435061946443655695588204688387352614372648087392434221599257806647368658805658498324786320942729082915492493696377654995336563306129249566095413114818966441190241574586874769268510014705040607328851422765733099262290979510990741088096487069187413570687453810990707979662825500496641308857102371986423657828781698512825667389999501766803335308399721305675179734489021602152472531192173785339013996236458696813531946940297362595411946688789009692168392811568528659213124843383326006974911914864723031014178784785935433035619934627748782011348179074094815414076040852863274265773597706010708995638146796547188511485339457849904180689259184564125865569182668792735582276288454433082347604346336433382319342317046280970793849644003131605572433407628372432828780181448407139450420475465856093616188668357038178840556754880164749445709753548212018120771373288880396504189952658135853585007805615801191891214984954532696158634460686466254953684442693226135435931657445682573847142458826765862467193159506401349801927146466924711128641372131476907191179968711751628374270000770213929064062413244962678888038094151064756090633117761883653197622350907466105695719836904226479348670935827026688789659961691196050595192720321571315467603851205213690100213513630388147530176340081972212294934583472544085706705015542256140854110453371912461993990210787209087812825017989875425777009456600832533627497779796674024475493781258240164699543919992053064182992623544765582493061005766747143679175526589919629677999044968285293619335445408818263028626866881468082664941985373575132027264243861333123512727387726272970753075442809347991543496603985551761499391057060132342024372154202377917539491953761481746750697791912034493377624709474865394676212301097705809402192765693825475933079499735542687801502952890593782759389276643923441524083140382174792807961292836014713990077564379488718851249065322295176812825552796908944534976711635710832792517808099620767609210522225088595981619854348463471984929981984089933090290609086559763684713257057384548635851003656622910659551349207813361471519541644163430998792827589446714577898419829533987359165435043789763284744359102868247146818817854008892153622738274948639201278368021688253871254581249307934741127470483648183792321188766231414821267687526559866569089304810656745576556492652612238654094941254700860823885415584018097795611921390315326654845075781796669273477888010539636664246195545606127088718298780386180510105276462034307000479398366085088274186440124284448277946649075053556407999115354375762455762837247825201529292407416818555669139500859301991648119722087426811354579506268589613697093337361138348731819651206306019246556726595424584292217946404877896101941260308530304071939415440353414446962494023068683851067234414858291512960661082474687181174746598314526280644833352330482045974167147107865555948398803158077030594129214075494682251870693163115849932757423788248181655845150481562758177760490414483967147868414524302137288882740509956396683705683576089847858305231784154907075533764852343710937435060066115625208132674046243952864348915784125375916915516945662017746687010225491736412527412252417461852371657720486268121406836464980335951749712386905438075392676370545652756229280167584446332325279093601234623563806191600520923466818655795101634379809934843030036922087406311617414231020867659106314454559481745363297320053756763683222333438410987093826735302950261441369884708090272949618088853980502200687801806699758448388097625998135873185905048845253691477989657593771659288798645090544334359893921671225740851677529486163677854982717617908024058959530206341378224415438161447436938959876085173924431711439471183021702640221637680398183813025395392664695671332498429168717844131953029345815001932561646978119509232473788801339081674863854040364239240503992508127724482362385347003337134727351760665945092324956745935199981364778285922557531310866134033585048722413928526234183009266544547968029112942804488697386056786870858389679996936763392376272379801105081095546453581105026293357653540888009373846409873458063287221827878061170869611590604507982209857606898138083532509303361714120944407042410532004650355088470206566611202814580931774631035035216852476483502959931121981566196380003484053272190791944221747091980737521686072352279023450555079324056510674837769340940512140317929360573167457226142775425923586505008691804298725887571087441250987240351572236831777573910483753132935021031545125940920870147913494834990263111419386564968020646908326017611477280625079843982896839712932488661798074520140408086306025292373582045725926733857622414085771655000460086680590335708271686183252732560257996418248141055683764845503693313498125474393543094727490973762902647596337359536202502239343071638548431614433814468456939003519639693774937103122287967206294203865351789926911120960792761719869395625864555504459584831912589752700262555675480212731428784854009940903673526720720124996650690895885405052035157864767830150949073777465572708016186510691102402708778313992213331328906000307126405440577956747098777862198164132093168173354737641376280827723754222795897721247848917462230663456112157454444192216525992625570986643945619362708718955356942430239956062227058962714793437219407032381824226450868788731672617021717493787837963674454963991335103290013903989950190308961287197469108294669477910716297296845350036821562220221256117818519644152943241366476675304148193254749158171957052721116219973814823852424071652843022518122799442726326112250133155950159868874458194961782070743845220612405962915727921962844611033157351620037265659697841730135385689365092189745852405539613147977027179088847350012471485905953148611401302839145802447723018192814001415919834073499410978572168022707558873724153828562402502113093078101269634455535184668120047153173885164268887436859440205614825017748816140688563276171125091017858446897596274680183090434422996651569094616873581674458962073789063212274246914626030127503057778571293529877285664800377620708926540903553197672244548555846091407438059286290101780851050713030707878414725422688025958598337763617510534940031454752500773044163774455265211273292214116014286082671969247860005666042238128772054666518243259966684481009116301512631412929577648559581921832274568042602041630720154062258368595689027245491816420987741646659335959327605962333969902813815401191182835290704618407814971606018198063198689312573097173181381246000727075844085169150984673929161261034736687330430536431089796348105609869424096289174149833193430071757527348905110604422895002574208831310600615282369211433291729606116203585359616383208637934580478614169187908317670786369588623437349951380130252838359606690151264699838338305550204506875770981241966743172445085385584750324655575074389734938287728762919107137080862893877804518084214723888219605093657065320512457417196974018914036920377232293752518052701386274723873091846820213067261982003231411778723840380959112904994634644232152274923436712562717071849320523289482568233017842418362901361165984960077238646046923692324175890435633460280168197975753629676230565770320857942547944723135993227709548464019234069902717261450218334490076754270271981635925060377614727200422335203541668698993913739273957265633096350578142372695315720173684949511423046641078499366224642465805226584043871219075714242260578624923296937870274622801135371203678672974948147950815416898810229293711592692600512277409712601737710637396840821692904561961984276121245856624448229793783329349553312024488382890547666085263529902392373927271234713200910654214363335600239227230163191344755021685880986131723640899252027911801298685054127121377711882584466523139192559891353303931386695203108589937798110199139075967962659382010260954264703873389429220681883694543241403823887687101579214416804007957459351652978999884581670397012869590774821287752002566893065518539528169342914522200054178342828989273165225660838524571080511468742097736760425828214241579029253470557049872490558324861050599773557257997949706503966288317465632068180038497853982294235401895558361831870408839532441358812454750847516653532230436103106533371507451679989203076746138432181575448674749240277967093593344004149022001679000810250605684202818495375672233610180285848097179618365496771108989141828141865638824912661344650368290070228026997671438537141061192604978273885060290730195787305980965930722556394952859659591347843522435794430820096530856353570860252711138105334191546203999198152371055907875852861100644805769721868515053784652481292482695219919063141238390512248437390009274612843550528142274499387865494313195732892965364464406951087507273258106581155249091341054459268894865851860420357733937222877358347469208819841398549147125294874695119841225138882737129581844020566615301427667043207668041351374099253715423240265813527565699299022305270695331424262875213851886497205235652563197430741951268489170196229365254174994519020209532622196837101423082658737101528529928477471073652612228242701175356967580422920183322652700506354043970214602402894311846231701292953711889907156045605149353421109603173991625655565373003464216100453429769272144975730230005782395294620820247715685995138326102329012350029195908451045480974890395232468115049321535925235470391064052536388794222916928421031362166187896634067866936702644962547313143863862027927579453090836326253324194106401893752355678340293115457653782410916948633767760326389669997183275759745221901702701250393957188424032892391562876649774025546208847046724944842925306535958481049216460372091235331518457949237740496125836840294156379640625586816381584228705910561301461784539512525772028172664233392175235039725332303541798172147063558658346103511866020763381539282231663260317006794487337694791236114050282248559159161254048630263268159281849217903304654516581429704545989997411554767039364590541332566408512504660743976977969051239670810918573312075538797198227092152229129512251717975758967799800410296471724675550351204240867620821679769571685784998717203522860278626942091767075807371830702213844659790151364555517976682880329859417434457921029840649092210710048121030279993445952219296433173532473833402818526523573797429114549726066097011638727161840037361818559002063124452920943044329410922636215405174797631515803036154860955467963926724087637778398503139565852089337186351909401995254095441152066349004549606574070621149798821238108993517586077284855071761355858727292306042662891988765343309151747526884773741581757338563660294400167539543999702503137218465125655924109412630132188887406412289049907412346362251130654517915004240913552082697669198246627119227064452244184491954717683489385334168797239943800243676696386836542632424115270158530612257323614450037203270016845707859116104218118980131541152336891740586532403990158601976063844378494236404199875916552603574125207122754885768918802104922759951129641343985243654716407392082952534541174984811412515788997954326606661140931891020863310833538416415675637935540831416790364766980827364688952319525225261186333378858853499474645216041715442834829178706719123958824198544850803851492128922058847370899377756278877685110716449639507837093294442104937644151009038277388561579428200191746207831744251561617867561943665701183312486142286440636803917958186256773529211662695437460735810929095939427477594792462326263851768608439624682068403306236418697843513962946026058567073214023934423899212892870660997261098248842110302253499138880312738234057777532737388939542135435037326136909189460086164809600555431210320274560804185273853585319563254492029358180861561496389416716670357678938634404895330710901127594417223204922834159084600874987128302386666975262677305817845415619649819085953003285501099522239621003925911186359374854567085303865573341529518187757795144799220914457533321146805606832879262547999081363328695315695580423188453174483749749041811858215969930822386340155980793798795148402198012571978903640781598059847977174842848204874715570391098380497163428068147673821027666589500937964519940617104304236387433401336214146326389202036787355582328691323895388298049253828113488172358212772760838131117031128217763664731620786695330179141575144096316677487080814934890109523112219350990040280075829727859791498581751139815126227343718702333789602320384494161855276060101756502389591930722758584897104174095127811051954860736444035642173857373282701353817115801106006684883571283504966429763860083853550539080865695487386907344248924296212839543052088846127215784882337443598027197535910874416210800781725436101890159539387717500898219777619678647110201521454703568766240358341471227453499518013670007015005554589950683853467028954981541771402403995445346305786366945603378984755484190401015075975100334423581266835144436556862712301881329414777633610623604314379901647967297955317545618050598561302652888445138573723499156564912741623027934698344774822963156694830202819216140972159020078016978400166421448817572919252059668269825964528576952153446694401899774122682810043124404524119764100464187940661592865171094277666605673600972302073684548334996490619758709928802931778215059281337217230654973095151751684233176454799361521208204289265776690351328708983322109450935631580253852721913552391353432684971345485566756234336437780601307403251092909593562678408023315463454828176809888327792822612081332402418799095947540203074301631211578469711842360154620801885665556813285877231160524857236599600115596953269188630548267431072471200720761221362268628283641046282500449041711374925552603115018663609518747679437720354603315853619747666728165171756866691296621304614205428442118590934957378464910398034771218409126666100187205866520102056769161312353612742872903575633402199415418094974395949696771686404324099635193408868926833040193798712610314853711220521677115401911738279518183996137000493841965784687764935135102157614959338178244120856053524550765071656012321570467295612726415339263182128938417560477780751247906758409003147514414266548533544277700115748413030151357479440412221993839291654951847318772271837924675268154867651952442950712009622597278246976922128572462144262984317277367046412795182546994530656638091291022517218422256337473731385689663208672414670274348999438760751436716179717990295788545555545558610712729940629052823280830043760973186169776510166448446785026824896906082894602869583141758388218632522821718990052089100910180187155846248234700606992088570535805605098495609564923047962399684689561692853522987564517167562365028025113631245523298180818621545934680274356971574015929400972895124336649720044020522919953756317516462543819126132018273677128870296246687617948204782304270549765872893200501103859189124921477553769887030444451801473004759599814759114374206090699037787873033073426090526703202211534446241023707827782173875211889208072372878918547030119690094526399465184081531851531130278226667377989253744098113839292167337136405764712479795361693504098387253465629406324407487853275629970158686298591847129324069559837440150109222754532242116185219646276266961185466431924120127027916534408985008839825582275094666962057754472990580136894255530983896902203593266964527886746907499779785446178844514833090045431072695783703052091471279548011663600432775500485047196245255020272741327798204050145778497743269480371525276853475090995709279969559181667337033922113619530690062402517249472673712989362465991497913061097293634885293888299491886789114912712743768766045913357851804509042127566997532760335096338827078242762451786805095322087448299808132240242228681169288249502128602978323086315639370318008579591327272211416982905017303366809353059340682155834323166032870042289329823128911821832513537495726607186533063057738389144349556875575920648549672068120045870722167503985665297952435213431287946262813089034851458159879714780837926447915610467617150153304170124327617920715793602211528366746478642596450801187740529398945728297595708683410871722579256966793275991565851678406892708729688092093220676440958172400338575096758204463898346146223634890373918296626844217269913934622131380531944600801243879285712630096949833743960189227561592549936391581507829184291570532192662828576615173830779871029192148312179990236599918004467674825633105511721633322714479190123788930339260030306338988968679981996540998123718673630178470959247489686351586993553487106028100298413786500321580866992301225621076691310334823769004621254179949361209408012774768906020544614119192790120977085724233632085180472205640845151575309933812785898853986273513551632895696612125127804046032262244112776278633837766679331504023280657702715986031685355036144241901913710544036360795958779857813537101514464757239752902094068963939433869681685549434957242505702174682282232677881261730238570651675273768735936909777333929416655585383632580100618745917196527003262124774537900317874662442457550019389906271454738746944570530666115733985938888649696852231448792825287732384960586125400951644907147381449488087623193565704111212027626805805918350678432410630607888955961450454085043397099233633151572962772497144313987383182533712550537902544388936566486626687853705422851368234549279975030283239560594053016610074088174942828384652053829612678722386107047696388075984258687132173666541388396605567347914267803280134130454817417319387712414168721115030784030418633566368042993658850942364925935610476388684518973000503252965807680038775762040443576042396062990453350007610691481222964043670125627013334262981186678204240038619420350326560156601420121343251340144156176432944525216706244651980669674726185224688987404089216325415763947755369681419742365932403368060154741792386835271107013307903068162950084145964614245806673022681772368028762435738116637236683089179550887314233628412129370399030949235392664995619583874022621161768839559627065157781358180525981258486840911812403493396703643809797806914182643968808498526439170546909647200071265317016881857292598933998613464960108252534450236429996077098112894257202891361359782071139023960254207524145858726509503879839354331389825631166279541460339586350841694863874661769983089443642612177999312894615154378739822520183367117228948916369047842927232026355670282436462428510366659587275442841559162832619063245963238342316053633498470434512362822334638646483927066081853821228425258430869609744463416231246707488514435029187239557444922639995865382448500604124105938689263426276461505395438646329949774187289840225898179957934946502163208699281736013857274852743914498091431260455265319480898256759401155419064933673907675321109268953346726661771370746781879943652919805105080131582311866056079723788388843205950216372458628040123927704820417345535998797538136556500084420818744073680919743632636752916169569506300461070690794954133121084321081052339270944517358880851876631396086877448067445715299426318671362023629678547191451063445342893209004015734930842355366432755813789185052485825703516192202604115334893818367875942197444426741760977234746485013298833416155457739148078692388641906154218096398388219992819333957117730219315474380342188083737783259704436899244090382158424811353577431734629547165388409745076486098571723380426129560139026782867026418518611373477041809724607758503376930918970767339440867970064948516860612253975520535426798541275260082799368610124079897594341279920179939810445424300673788211129880151269952403698275578449416821354986410327914162063526636870600671019380892062554501596909247035498300180512839857366032700912703884010844674614477861385342771876740338828619105320493327042023354878626519042729440785033854547963763724718099111006361984191086198313469112741969229979692148204348992848032490878623343600818700696057629391263250834451681847074257161116036602569028692242234357683457929599269533355135502930550245487193346006334759000212341016663108542729447826238271558431445418771080956732655749926820518288405371588744597851428725068268693562206897568279696988432343162743306870695387774949873828487543057585215239439219564446396731684472533721400559677888106605154226028638194103945194212484822725467101564564200474269072157508015890468967840776662390627535061336222418865996221525279869147576325177263124211438845411083852166282437526548385761725701202533493935576700515730678300554403750811087123703501862134110890473008152485621994286459052665674837783810015137390469328622601312692316922206843491324000277541917512840572088182924525388977754250371864322648072767354105638382380768921088785700417102901045418802711525819194611104131985075453782833333450810521602305828288519215039988908986053709963964561559724945909143375259389969338026826027197808733102181957467558277508757056294161145592644626373033896184008296539429833244439454585681790834936719217830394586699238418236287666390788949873899750399857612752750101668227908456188587565394446755681336070957464762969265408734386498887726594205210278887457275399629928762038203045769252017817048278078438094781543872704213426400297328123822887525063865157258200165876989289462971950062975741331983066895580594118323649447276797495600441884605148466422260200817680925882821492274185587827310365370924539057292059858162957097988187117847994421250398744754259311836081694367840263325444876657657029756377612859439939928172996094560468556221441349888147371011672486844135225997069986551973098982490730306851068172269920389341607577598075159028522581370195691529341897427960774890998645110683047268078190995527165093532737616079355617154923052707759139930623685066527532835952572972362116241252503970342746843047990425126132123977073512592668931792807353825315555486123223814055794528408335000110029650826161207620492417202992601615713348369595378577119265627377194377038057681093963103158945459345594883872351245363253018099285283289758491276523948000322727240287218007885595149529431349739935713067687937486203523622682631548317287353964453173390529413192941805154085549324347621664259523829689894044317849702968902797882990484313392668995169022615078112418376300073684597793162919953760408906047119970690990688414109127032703150238861826068335317245521307684045139283273716055538442852671186704557036774729943917527133708034765884168963842642469300032771844654830930277280440390204207370345539945926557489270203705913313990319697526967725021986614928367742728212240949707297880361112692958893665005986260467566785135618558113855390031401534942203168111798184218055950772660685472198790198492949041637528485326519763206815581320611317322654486493786579409346222120281238995991809439778916174645413211643449152766624560037596519197726422867989540000368051391362967475902071670565279468967543938516383718133288302950336622246510241393040955770194279282019136365327818160176975942504441447498005544874250158801478606274540454829350881739176354617185628443927007931620407170962016483250157344544492463626873274406644210455639478394464964742977107099584511523716096434799766292296217616065004159439833183631579663627481921598738075021268370589784064156436960316192713084613697697152699468704507760935822658880233679674871431160172734809187537628574282617059667356235032835433253990115196003697103233397150403820139125313589387326597508422075707956041094923601210699001433816437645365869680052883881812826077521423988466253783969837657640601451499232939061974878509467043572871113969155520383965533747357515902951055373401353343781244051802499133485600802427484374912308274310455155215694897465863089641289255802716842899712742232481462752414606773785777381435594416395497873939309484760156905033764126312074114844265335914474078622706805482335347483982972141822427087887657053470732606742955653455211394175334648210828972417767846747630210985534055731810756741936219850452056716108304975830553487071825867322214548147642572557369224021214287143378129063617163252707759713873953463905322305993171595332230928256901673119227256940914396381386119684466879078111943132125762877537623105812337412002098770478819884481599564390723264728378223180925098806754240348278344193456289787328807937969035053066878935996240353307017272324047753643738468962568184316000831852544028714175330766351979286036783519080925837193210805372976384260589715377200902028705743625538979398083772236925880162459086766409568036846577687140402423633186706570148759545168831580419701713097432903904238308932681618811420182126587487554276160234920504122077918392623367453086821216994936916989552849967325429332312727952988499421062549021699659234307617490572373532001499812971872412671794531791058367054298705094132489162296752907017286875850992353181741178641309506754948977840702842574517414946994887504708441846252108978132102853977990736678556518099663874657131455717551437698095925272440495401046231503093695745965966985466782970084060073511724901950180394196173102245709006039735435298702476294800135582249830812139162504338805481686165431368726969312618765328455678506529801214914773882864534905498523578346378152607398706554293974057083866034617954207433897821590890152737129731842050143699638102653201192263006110038677641743829082531669487400824144576790914193078320118660437138318302292752092874450629784263426078015355854655151076309348528218832024252795380131764658425068228415520723101877521071956041758185811766201981496798842711869691980914789228216574223351934918923516170594990084335669747483012566728758269695906695618416712454053469883420254918049255443229022714618698417547170273110380386685152050997683916599862076108096828209134324168041530604080203329216959308569242875651098320100676124122214119950433253698549546858420830903380836942863156726723682818294098197111101759906811243990215235295654284475527242001278685588361369857840833431068487988135925341080518665648337511421787193563285865832516322042458195758355834684558414428963885572839767791142521160924910605052704460059703049383880234154114731033237847830982010439731631353336324392422215199228743102152727867800254460877394814711055756148188113637904773958653758160109160503723728393938861389829660336795911325866784034704193800005644150552051366415539926548656395995555254485181181169043751834276274837230906071628230252388812128011871470382614956632432672948312484765243859901320428878122956668223011858542109436838033217789999878524431467280052872139470761754640636336641303429049427852573406491973732794429363937470795511671992253981000220040753389198174482449607778240805193947511681123617413778580302369739818178957991464525078743872261195757988758399346370159203821831233653757099566510135654500425316063471276796882767938170556197865892141519393977189479976511512750859407684384461537978234787135921467587766025793451937394361626044414925871702582080554678489585051240321416079029567989654804434405665890930121912479333026556172239611415721442294045086605311239838777206676895006630237753070106482758047296456798681991544091523614025582569101042124633395032321691376027932663849268339182595197002440519231823193798374812082161904193043847577661114825532464016365758756656206977742498169579041841648234582524798113081760865650629722231186365376605481575095411715910866961972940330194455936232658709944147607322376743407691791285164664186673458683928286280872772114065823448045852040732481871600792080114184759080758877701844226032682417928811647284040786513834460853822997608990912023686613132997622199362742460656827376864246626037868707409330539611072904891894431953796769931771976405384054943871038038904318363035005487089796059460599121820930296192698361523925131983847571959831464122167028112921884990646715446508549082920398952836199362378131890258131788566507617362481400597348162773744888508858365361911945104038257455440069420285496406060972995596096530788115447801616159217600686721812952866704922827164727292087406675710400856456599627485063845905081617888423939876244179456215011532522654117905958727470995102240359151194418627866419329514751705827422259698394523768580091019712658190083490966756326210386579669813170123538746086913587089286562288703589901401913879229740275666907296712409001436081552943364782242626201489922479068012398807389980224674488698291904124905338339416503908075404062920886719052966488582478890030270687732197787793394874422617372716226537308674264060534797187013267031317165496528072324691582554094876852144849425500932351706641677672209550434097821676521914187420339119901930798927357430625405369357136797847246999999762712363263057145843392831527405848647597343031720190392239286768855834403769561633063109698997909991266566819232391617357281567820214990846711367307249599358051870949653971227159227051026577755708406023120776977546774315685294226138998154420951957918669449471035036830601781962985774452705953029017608783767410752317119775695965539457037280847117413754844412036807132862763918694400248974044041682619292760989788257985090284876523525245391765290153294229589733294082909525552251603060454023126427979382835930588838915203157729359580308626382511873546703383665320547258575867448472813096276743816257767081480681580571926552342527648248899075077421433025790576163269949946839718642460008922594481310735130331408963408967963151688997888586948338882645111743367940696582292760640732060053850346419589741959298609856264422747860063227720368532903592796966713060098824886552309946069407645413247691004404053380732936152406302268457664001700160887839355341342730843068225581774559308250861581096193769861143517248378610680184312180698309149392522492075037189842175654603389034199555981843781167716420171451702415527332376437473682477985934027326381862001945261284446333463366148833315415690886650330949245722637516071380904721393285317918477050592999413864152546813818784890473413521171594601610197735302079849527673120932523273327477096358267284123187153539599384304696703243893580304672285059565200636184960652859215346005616422890681836763286163949369196757264074479229003679033109812372840967748689598196357900296228173902332313726396907765123186280927287953653691034597530454974904035999387819532462865732989654898091126688831995564013552531161796376233555266961705149492230627369890974168690386366698410973811081748402917119073170745864266218640426981155921964695222327946320445709527723001743349777733156784297420486498656851697257400252024876579970040985302963335737277259436177092094944558303349466827524987963126404531726928634829809084988727901914087307123445945199779903758158349539586574220783313567219452276282684443474109171229898708969585960562560640362447613056267665913580084269899870331283371718977676109135749706068552503692890596853140984984532021176419933590434816689258778959906953476305051674113730799568784277559617562695595157856262911694626529448028821832012228929778035566504487394020489143055766831453431398031228996140057783422957061447028596693683160965913787823349577993742133036394534404809097320480273156704830488977594771876991440494223072497405431241378951905834482554239697911396353994584471265843006291539076447142713749419630723749710366899900210631280487259146412832193166359734175010286151962821192301378699614945281732724656208551646631923144242967843491797184049085336832265057104854521782865122377836392725427515963941928628954649057294205743650058647460832217964100205161371761821333583023798926537089003910422274941184340804018123784732592934410566652552331910727863245359995357461376905084965989328227410747728526971311918724652913359578049964765747574809249341279442705062413097269036997305566652875120748821695620144340036945258888970467344460933934147037331343713790645296090331364854514874474813827920016192723609254069823870620018371649078475186118049317401124580500869817651898873739903144121899293828979499363255022994146332965612931710466976764265351504676941328758445931603767275762047985587704734841469758964676710807099679452005360503959251757635008169845101530276704010060997811812240152661187817289686312993707102763947984765062892051524377804395666097241602919118423990239782225836563175321872174130855473871361009006460532383270528143113592011631837130869113358434953642055839671378068486134397467055719200935510975824126828655477862647872985930268267361943425704579664022001751437257217650266961877920155235871169537248739086868468982640755370105951866234378472024497484048746924231421821644950538536711374533552073497092168425811258034939775694140188873274498183711262414272441190950833959328339662785229291054379564098246810898901003156920359726428354294517709709131449748185726443485897556936495752049935685017223277944535016545477353424986990295198580541020754622615394077030969737582044831411349689141615668521999460449213226411453347038993453122894757293202456909425124274261414842873207970754218717265070010244916726291625865827135376476196599934609365165881412839223467296883153538441031270988664417141716879872521403004469893788551584909159232162262110650353495387239961887655996848544767186158468019744793585965678506684596599897665049174117218641508143130879482051386352659509779451084570444171673261046625547711198968067594501216920681413869140480775369614088998668421305658930932898975461102890571704287451961132917314416817901439570218288479162372971097594434690145936096040767863649630074736251476110892706242043734531737157040074970915494811393706912613060822162392148033818013355874723447393665982794632873775452697492746781302888466120539060876610906242862716702755393287316038018541500226096580969104089073836208664364733962200899112232575804596712026571935234801360732195294153386769387426635265036665933953602214780451532446930756841870836435305028885891659713229869053047175796804470022554519773841434773105403325805494318076130132971602404534242311715945033251877348446384456497494105224954931114564787356076883033544416638398450367526336933364482310892748635332689898977233717794627954562797223093067557340682604270863925720622267142140871542705213620659261226707503327428000104395914873546422631731731682844260566159482342520509354796953126742021157088254095971101730702895114848465526467262855655933866121068483279575699904583017716623747154063998959079622252694645097745893878511532237729899086070344644763050598144730926014158509333033445268908084318133529625927171474726961235484817360563229945142824132695452939783594329931485460913120607633202632616009412512200466211587857796496439453381692782903304830389263183571383522857066605049447997486275662884893772360297487536533555752117967991322238288692985608482563255060303728048286368032051809129971232296326510328845246377952810545411532066839671102409733566216480570569045821182828219434966347456108832224616804765933705467240921273406422767125973675742863101380257430478245442619817814398567847224078564091341294623252742642026261121677734038151487814520245372976299206941432431852423592785001999395425948626255431962471743425404541871271986622048274876410924217396920410950059250332897266339611343396378684261791838807628884531317323496831974887149757935660696031849057649804981087946275079808903223840596846729798248225580704459994515196734846227298110579782546227199169594919973525604603352327716587003451560496414724968626154579125770351244029630783570157684842561369544261874980708036885376243554739032480180974543062588717410578801399280873304881851751196743474269982878334343811984885967342990772489513673585381109124096474864914022520969160533936024280838329299946353736566202128671100167023051526823873081669055796863634123869436086929026486172245438715915787464820179057108838278503466261819163079812423446949544085036401336177912622007235989904173966933419642897645752241583326958846606440526381574000052142678957278458085753650573427363321284720414941984573603019608983619083477451527789635576584552045791669658935945572605598065198719676124587004397580190380459823186353592285461010959597365536427340523645370939989670637361975668868427012131912147812131908577512538557065292477716889221566955109944223384216343421476738758438052966631803923423712383569126268103244867615557217374076805034702129303608619454656743652660467884172834240520853917787342165228940986622033071963995751471203170159790415470231389315276287440350869491022553746919431729426482519748945190075408594185156318244322766527398558997719302395024865104925060046366969872752172564732724384505704682342821907821540250001183617436292299322594653843590840529587129657180586283186304810390920295022869270500700553176005492012341890570536221176405037396255490813598174995040591897977840607276297981165193582506255956279510629095097850092411022309836828936321056338230114745900256531842176680728821581496293770621679381630167190179388822062074780674453413946368835724033427093657664462179447888170901123686301498448505982215771341649978689067136232089064819445236632115482955223004392727648908292796809520721912962189277725940714039560610764346494277983303607500226918100405494130094495991638846510542965277673331240343135074039063349638324248344446339880769230095682361009592981228766948232230490526005343638925551332714906871501128788466037798017595671708217315188434767776475694862629291950922095674255644973972366951769129424291564101159443785240311582021392016183075505999674321919964386199782143226170942835285158157056243000323362105557542991918165285683464247907364851747204752334439780240097167851659351274215452357273708188822813726916078569451304236520227321803170051969213794065360207224978547297631211637283807875160107918758679949409771322026295699227342479490289706518111950405128077918006799016623586160549307257402376138898198211608394371237632119695864163200201448733924864089638103299941483704324697344237373417706983421510704602998355656806471946520059540296115069724335080854019984400527555541762620497600070357131681605001733878192185927380545678586988844147330490729933826503524511209725691278176926872720887244972001958029863479448455025687259586018949406782843943595153807473635561794625234168088031927360295049301975792127457534299041565848735245379324024426399936838142094032263297952737817430466892776567358847307257771730523127830676561579504678029611498902303134936201467146360996719306445064412772303030130673619719816650452255549000474399333057488541747565594391875452771992463064090999852964327217412007707891911756588736101560913414442826107551539070933491420995724985882194452274904819973216175432353471798656057885402372954617699451174506045914046837269440122101553379123062277864806692715469389698473051310934894302022078377409758399457360454359103102251544664066133329653852372218249820633339914449634174512347112457269304383506389206653922186378850389547358628733439733602674481993884277462482586090151478764989248018974844724273187590437703783910429775772947510944866937500309988144296159619027756851241419571661248909406525426147014393158794979396580066786653767747920089793046424979259772372418404629565302727095200793118791057539825126914476255509141634236744681066178141616661030369424728389386023843424882534021794304907626445250371171791195582514381662924246398360264538678992172065143427491639321358028285287220337991850242206586423682951503837864540154307853454043953393076532262664107426543856675943598012193312890432639207802670645922149642052470471536784715508197056962129256675335696479213603386003061133873326263005818963080341654045859680055968489034069709481029940952339535166070785587682441210907332082366905072857018358958244108172960447287622213006289298128267676292884295734379917273022418091431985072769141494073517772110959137329933103171679577981676042597092241377417493248140102901997928202439749615632047512857123376014924451892876762215451451402935959926551913898059839968893071812997298556359091363859203130762551272274037237277546742033971009481514052518968960248076857639768183138216210698899491770913753321149012917405902936998567661978560180473066839514239647152094227376677877035405407669032023935599217702106350958834098738986787647357764625325804375704962403172004724276623760381004121504222946072503042107230810818411718997192330782110461105262381707171173164038177230832443578873470295498356548314370233700229222274012024431806184680996822092816470768763575081759294060123646644265992889094825335944458618614371920302730777997450544650686214104884143919794790787907243230321852268152659515075332685061666765304866868984441779662626131886584054269128783863156222388872419710310317050476483982238161505725853302789948390265965619635704902491818629884796469422628963452681826570836822142659382660708283875329811484512180364358450111576497419391345607933438014176107265143917726465789372483932617418196001728333686643451296176879895791264990980525541663787143275775364000186325267960147801002500327982444545095193651672802691137827855837106445190713479731350761514751459923114308494380244229432310399687428997463400917919145239931914034027648242408718845425799907193667777054961511225899509564787017393739205277831616582078013134526687136669167462587740475806844695455532391946888753814189913523548237332918551663062063691888959055023508251036315186256081965679442077664838224578712618873763751848404713807146170482377402988787007054695248440467933737690175543300167278808960033348710511047516121660410752730848685977262811320508261411194390298436563345069118529127504071071414143640040107957729694164005297259696497346925207574868720473144743474639684587122775110805172477145343895156200784210978193218341900990850607483554958478479965480132963141997386586201283374529745424044543127826594791641289118858675458508761554435324736477370496306990789192500482463030803926077345321328577073068970994616342268298595506619530032848538372324344256212565455825151386516853610601190285056389399594518733275079615259943452167737647201737396320059022115456471780788021912821893749350045583509802500439577368525421342470814201319137641598787021626931029518428061551068601518655525134583353806596298044986396493455114967433651724134299024386045794095367702532961318649775494877696417979535254492039698589832528700964393752034955159789500160424518551065880796633200245086034748602197506578021518502311503690525553306701999274121449567172937585259328138608299844939122451909772217541976866973540844428168290599976385423115485300464576023537771707032662345784666365667480422676333214485268074382053863779606265896378636245957050203194224059726573820580113746350950094834068508630894198759624798119279239438000045758114923857719970055946945148368708385052524507743237046448094220799905641919869280339086262528290556308257267070488937324384804659445787111625476760694813518788399518261192312410752688408582075725680817415341092930350659060964907454655525246288166075740047714973786792328132177639764842605622529720313523025282975101721900679735207264762253270941796389918506303296120274397453346277833596028030037020034799056414395532841608554052579399170093195729855500429155253678394631343307565449746503801174645618580228538348483082508219848768914056206289067486924182642106440872237403613108960977537700942707683067063343349607618384426672243389067856789084679314893246626928356203763105781607349785684577910879438483243046112624493982311937405575078714873979125490289633388738975357330586721540280462644605572775404171530724164102373184924695492269144688768254695505670515564697214489317234790292044641155767709078530618069160024010000772641558841792514037723662481098574159184401090431677170781235328506171668512501245373156067261653977789635470732041341264141231081382187447656825357912711788124237844945999446511088553533133319829219996156397861358974182255560554998063968518522213570453022080064567455287619679485228060760864595504282430030382320811822644009766609592198768769633870400010250014131809289126803313106953566227010492843129110479665293290751806372357646136892203525288287951608307595407576355120780505524976887360970373125149989268261175416328105175210105653434581017411835054962573355498198856804574027112656766471121370904546816696191875819275514096048847711341004056667207220374032613610632329721166830401180206037026263969165797433197243880665021564145743804217268122047625716201532405080661012911482448918206250057014220183577004671302316489137313948039798299677544782925902527415370892807952470113699289658017487375239885563857885721583482548471462604905943452153407810127020770267675248157028555807659217539237088941140694656851121497617286210270269146883111478049620504680053229756405892343367128356083267285058065124915230538375927729298506265830867821614584211908305917241076587891778326076643095672505396910023540369405542110827828346686641871681768345734125799399545015006038292349051989752238039374204268202872824517884870282526754029131588872090932875490736591325130254189532730011548991014180669268013678798729528900732180501291689587947352704582775188266946102448754442152492379901869522002098705874383220990296756630480477874873122083350327834281242585277915266506211420390151024518214086862068264054898225946753419614989571275331271195285322860784549634828562270479188022037043364662283737197616991229117093389856128859419330978981943206012743835677354595422691728159648628633245015492207914707733975503708920560610998308919482172322275613675408745399268385591630461664949751568672892500154099272312663910616429284503678432525799926034166917884689644603857588880468858721318677224966970635843451222451127902969959959182233197819148482204564517587541725994421685985747117424771761683306342104191184948826765987711713171169710684124073297540140960577945937520256029669262734949479308961666917649239004513869028847562659425983368120030953026029218163179883273692203705757694874843087899445981530391213871126898257882309848298635829771991429105273685168614270346092391647304993710417415614273618658692487337167444306711823050161695404171714094448314622542310763692579206042377663272404454613539547680502056864329509478827762934336089841841884703708787628137644359249514750272461144769078544568574277957553254386431678095941748604493127366876907215793843959538355833730724256546328606544145840984245301809026225323175910542895722972477429543186611907853114311673340460725380388028776753741817729058239361072203367242139654745601026862988582155177793772902584633686860013815762264682403184535301979883451718878468805179686423954669464788394354339997713818701852233678254533156026427042314944796300835009215105654611924586506725443152302472762288447863362421909209714348565514158341311652357981383096608696114864865467558356846444618445466634611097747543094245665280921112625994547330217810177369751826746043199104102948256516233096157347266233146495689957498176053452551690298652899330275231068162256169966563769428624308478534934391970561909203648993043576340228798945493924182985866338109615125637619443753791767324856150911474656074220505907579919572522917449858366213671189305088929565392908199920501984858810171262743000604895035797653659418221509242471319026472103454073738695757239423541348430433272969874896191720927074362250930118967455876486826310353383485898837177266305019638020165262397746536203876808087943957106790143012248285197995019783535148459455754709972852084463007736487638927147693938101705158299318377250093118225486786279949460503567031867744422580711399869732135324763875206555295170307008553645401713952810866608152542329347064312910765967133377662707591557659024377395886834179365715833162837684746036997781434964263790069539220888621776047385437001207817892510505969493667297481772550893955675736087155527241599567386866166508138890716339256002136163763487496117246322652614604422499681751733250312070718210430520482985713165141326663120394690821884743114149853205625221116464050024979304865087491295624399298785145125288687487208067276992493996783134677593430395307162944795882238561023208768224730689222610851088290549506799395662257118710703852998981560991584905692351801344901645084373749936121296546795305122854788423455552845459346208317046898956255285213634449164908197442162427135881908965747951216389631753813885460102015958914661646473657250332545672232458601740563114564628487456870633738423156521766506674000475912934681481119299698293245033968831755135251166536492226557751998775157571060916484028885801489525051327886626170148990589788330528681819857678794802523686223705563876235617920724663617643175645133862642183019631378032737307613695338322086801607417134165308088017588946379522577277618318451467182414387085994900125145275189661422062880167892275090194805389471206712376955309028444145823467366888984162675261609348196377809958175020863761628528299222586304807405853842780121585883478357273136491423877095837577666976184705034379275265739085029718654456814350353233046513797161402160854074309772278211800542298695554919351170202153929375376181832709571448708214187392078151697508747349937710781450408900703376132736935808875402435428046773082778296494557246479847669680132793832365242811258996710730914460178256469483959193979546769090679002704177652390938395790359313022378085409449557591054399601303316538666604901660877332534250957800313560482444157688951750823838183399727600781925841153466879424952097805729736412406510350788093654889930034509134443724217424808902223671381923961956473718696449949906777840801893592778681280006885139303228393217894577716089241915211560147282592593411522378659333184881936877454861706907615243437685920040930515586050133930160973277924579319529966140700788889214497465691268734654206889850238774998370386981959799389396329780464957440511706420501596867611805252407886438187335837878617568492105167898208031918557451441659543515535591217622305970344364352306777250052867516094234777743368581427855991750356556381458546048771691626992829371772861079129944086696140092119850847509652398488280305274978614297792407641172210347753757770628555583965317504187492873704372997077510602451227539519538230992670037635094355568845785045620713387056870666009860700672222914696665671849296905265960864655425167020252541601694858608936572260106791517188934033811590654071031317578542857305509246517576224559482721146734531888196539156613291417576308192837802931727773670072693266390034435293583736314485813747204085193469528327175442361255074556463679491159318948025366730167824016641947658419164102874999893073770872362680074639132834320003864896758407952616477258273843147784431315331967268553591863326084212406554633261774000896741801018145048930176596298092759760079049934051910420677502744259647978109881467104873138902247150025881420064623243540063773482497689877020235026279287178507836957401740811872319697711569497222298755147138497051971359865127802661946040127187454134019836362178310298463719277873974964725253398596443268503058481198208562055580920557778859151803691062073077211951850852788876443012647145725028129462851818338450395590141263167163105540211020387790599234060502838167260463956646116123691048320759396321003991285064390311235063709082601226384402549258554072822462096743549063945013082265068452351622321422935054640019823257822328186187107088703808219299900771478770988764566004768938043580576347270388326001378012599420251056543615469596977880475965913238014651415725910554643701971524042565091184740470731720547138260022646995923295255867775533711440830700456454201246993959539235965932605555630324695433268396858031585957791980151108115853135751526572677446390451666225281430478454899278710972317059951120974148885729468777715235572921065987411343953706306417215631912683576333027615838275786259066330290118885749711498443988705120411699323336922554861498372284731094549500318972032461809217303901062371322483558571505230238539975078480582293983330612606121267879569994965113200358419449533597423860379352202654349082343570511046657337882089264353479920233017907316897721817014073599090847837995675934462148774025995785574828589428296913580423343598693169020534619599735164970632586212272256364357605955185633083402175602469038262841163295009409051326107329608427432604803358200759064827977845655390330471163044382653672206654542956004787430502662868147205783992310160500026840188698145473967275410333061157087219795084627027808969448463213343818193657053056438031075988143229636832513411622986663131103762282163153235436946621048682178425489125019575740925036719216492846945228940997094578151965973870198054077109459316809643735921522773287112008527868248345063843792687304087202397704315073878760886327783934316696915670987878523233436122655353711996071411086035027244504400197821318201573805322795363117603824931263426568268622919905520140082686652662704042570662314817476160373995621202839661844722693867333203613144080112564383671506306090125485055042502216278502929401157567219909928281958121637066921290246844308846527589663393316933631333754918174544131314118458957402626688633475326801556185489782238596464606715268174808065115934178541302899315459831637448340737267544545339853625277617252815422721335719733356707226297814167804717572544077791126700598845628867535584347454347293511859787647746386741419659493337278806866460286726177899149973620725660788404746028268487984266565725649160294580278172568846290938947861411305691169196125370166253207143478978943601959680485524789164634588497946442007129418417386060641188685399645614283160223593386989986859441744715174821661725700778537953996262620772486918329739938689090119365273287341812603602487936908457221960653107529892863276804563697664689138721973916310239903881652710912738468554887674854059002153882977729261384685530582440197313959999789297995705862599008390506702636541468377194613549621865000280505477234332445711855963554913942440997875000573165825765816900984056047105969721345933884749534169061831541392345263100427651053858674692475739064776009500362203124339613520315034812154058463213069539509080689004735334966976013234288707875289356103921554108484349408030589738151397340818149832509733085651807749335019345972183173604879208034262118566775091332367049294526233269019703291542569221235718657914139500548735380150117984232403144786605863494373863938438082962711016246211291805549895067475012604467462306318607617619716710604477805277410758572930098509665608779599042346055941078861925747587721483106694359222311723825893837499138110288616244774618583188782608199726709107000122527250204905523207312421451371637195022865278056819844425470715173267522166208009123652252992630342156558586283820425015915613014842438914584625788410643439309827996655428573032924027287982097153119719690956195259357683989888301084913353059335953135730739145764186122942223369631077698638220671245631680117944363393526943936463923628598527719834321248401577875804114441425319612905823346461956921963886756790910429681679590787322052283210161913913203187027242159869124774394518915994265686149699818543528665501268157208358122799011404388904142155614997544393479504289054377605550906105454571532654291276117889582918150085189031181891170293488719368735806845132707178502542791428685299334494218165966546297593323735119544225094626059161991582753992064219864574118697005096530450571616612585099146622777754959172470058385019816201229235486280454107386320416703368229442726591136863550312466849168676432442131896805064952814178224383566904198001683827841839528278545223632335183968103245640781796662537956707598746299949194896844703905784859203527681168159036360629660312972262379772324336154034728392039226429971024008988025447531681878719407761166511883774810729324180080206758808820060674070774970641455747748494229794886227167319617065042118452826692391686482534156636152902788174541535674868746417353496731105454569074370472010906887895389307037296636453715441932276332823676503172908107004825058033272943670072680637333070243539871594291581968010903710851031099633434305889934323323389365444124577175490231902070908120050422787640290597969407155009696195230459949179176920489948955049401095001023068033055000926566360461948562459256046950779365706962298835757575345421743808996486339173166740843443529986354140593165189101233474552681531375658190827774073903038536046818838624336550997324697821888897046708402024456006987312898799806746708673801996554698967182916310986063010958931709930930782756049377833098493832366599929725487530866816427414819156239753381754421447979445416273951353925000365606512513918503222478718650717563126231415587234631267346636199908641191323872072837616732816947550560470315743474397589446802745275261496492694353702261773853685500918406553188241460653665649843363998204504024807314844738278558293082231999158956776329557866445685501353070611655910365485309182477077822470064439494604751461279522990915910198304395511316457102803255500351003733232105838038277829935463169577933512520906731832396653023924813607353204265133961625571907445248659000728224820894648324103393587956861929083340137394844545823705406715509278131199273361629254444798269629335551536536069680004749745993518903359188542265087495420791927998997580322627740309797261445178299912338019596350207821977889544479149380441872793370960154792953905348025902530469420133408716322373436855344330513622500446301883179758391178802230680327617873362096532206744437136334463949512543855228654304390238000232836161734717098003007337721000829665632930541383909826096493424801568075552673005748371282063833048851795873460159644355127769484965252494143111337606220409444073493283511381767138851691548075615967291839230509074906910287407686385238080709252791636262909995459306846216930651852996124903877112798060426152555751685918754359215245700726699265692185428548583632954977042150768519583635399173844974974918130825817622355392741092196296894347911966395598110381286954468312081680327167230865839470545697171310552723754850133878344890665286895159076708764813913335569366933704233989906129793578924869371993209490380720762106687997299039324220934699923004810190416587014937166260915780979370165164221108919154451529856384561734564463665077694967597464156661386567883558097701266100736094052292047857915952947323727052255819199838034505094500183813038277249470665116962889671776076589991046629226461766435970091205752413862275015320867351737130055412751949130565325434553493618506861546848467408646001953957630265983727188733479046384036382964346157988964066560775273769540744057052293210025612080452627994966147946615865920160178105059546861210747105098118460936342612110208222348697038809682078687917234107720847491007306364588383084361352755690881971946739440560059844640871721320921129208701349658815434505913667492481966142128189080326215393404773426492507464412222173171627922551459416667484934789411743405238645911401388561234341218902998707946582176198199859275993808821968990227251326765800923692629848838702631108466187060982104087695124292045070162660931403635940061224368597975362315006000327662839578215953521192111681501768267069422967249728820470784739409238163708544616851150496963044493631983103997119642473464517585885081925234780809413601578860230796387710160447233778488977372422299581159397672834877102624944292771833477126019400370095170558570417995444313739642958269150649973241858057949542636271069990464577308630316640788692855746218976769935291409746671500244612156111976726542617046236243222065357767174967789753358144697977835357688617200772532465203627177889498835467714617215411147298435594395450516070310581901349032727309381116064638191524609304892239930206074435711446989127615418328599930273613588130377220029830354204150430382991934976421031816972403693757797686300122709973038017674650894580257507162532620629694498415605977461551377237390068675766860808554061956013080923672479626002376765972441275187733249416746384431513294548709085680561267001477905015443957624658737897323854420398933379297152850214327712506653929527050746023489685887761296576136003151601176658693676607835768212591729541599456631053939189218553817946902221128576616477831907447648103632233131541066287263508824322692035882569317694077098418276242365033428259155463189415923283192195217082611569120164487488563335052976259610256732074723840341970447976477481046817607740584170653903783553300499651285539297775835411680776791268755145113139781612424929426301355834188232406074845884749918815913258335993613352869049975614453876325928975597329662013462719458200275420246420374425777833490618039332341810862230716574168302113199610084528789898011397807965512803519175532714998491750914683813192632377979199792638046743563952035483884857274810296824535353312333043741318130411358779855820338515479991735701301103319456858143996269062875211092405527895860923404338603466085305357415353525615591417645485081342093011730307716055853075457806916693721069849216221170752234458737806792978618267936948904477312182903143527612802999473359394440592373456260645048032878809514079289254141464871922015126515034208911635845897656853591488515903302392494514756931202863130381257861429149280582576677762726988402593902897762289147708438468471525997246657578860943902906731245962584873985682722589209648243683381579280623979036329438317677205634955691775372208627966291951126958946219945014941678978889040201630739855953005417252400714978413512579430205496592481779063250298341905942239573606617368451942096445536943495217298641568170630240164365115816063630365273192567860893131284222266475101660482181018465065324497630907764454164265101694836136904744180891787171426381854391386617809923768788802150565748921116706306185681398921417824827639655832817190823869190342854705656221354485101960897212028397435049194359299885165829349604189980656029375617871788448738041495897824159935386747458847858445637934988331658363568707914690171312844627821193537461327405495583881502548849042158374079664641714514800508619281382228048120896823673309965608324960855852763356278763141705012311718753016302081541003327298305252698624512298217504438139841958274270452827261858471244368495290184962920394644353588547887160929641700681609749158887787884065963553149645946661934400054252535751258318337046886184617193306803764627727473805523139380905234591565885345482600039828363730911498072920793383959927278640139429557418463380165971482630641137034088422790399059834407167527010954182956501170135691029128425437989028119626715758112656156640719751391363511943993860542022556153675540579035416854102526822181653968113808209736663872041456417794171332699541649500569042108661046096693758670113884033537898321430072127915515896270223455010668021186184336483578953332537452741043312960143239913971659237028773584391015993500362227020409243101238494505287554954080025093398197708064586299603875054097785417716399557273990204845475050542098766686559535365536120407676524916798966785702445383677363720675310076885516090731141452196785202695967367806284270598790223312311949669645152915764095470248635386168150794018823248570052753377734676091614229161278263416914832194565121626242565775975860404014671933937599510324334470043685764363526520868831204568304304485195444049072702684036764641346944817046702127783986033596482478600324644509181953052380809533086509733910489828002141374736641307542009566108481529379332289474927940132951019339103990535076412672936487970797772599959555291539696340686402663453230362173811510201212001656548160886678697784762887997393747162892439139523497213091935479077777568250518103224698828102485339531043453867560200597840786107910456204515557725323216802761971537945520653463669690049865783020596226396833770989310290242778545318329133615273563210401648414229026978093712263717270703476130759090330708565514333944975751134210430289124573426169015740727860855959835317755430295063357347502724252907315389337884007038642359102427156620132083299735161705247660810190118125635400036194379237868882531971180570808766705599503553753152988225288577102131817952204884815848224265102533156760739568824197104088621281589250526802929640442593306361004011398779507030759749172145375049344472065754850939801627420509258347754090022277823065259884110747393008219175021234289467408525560866716995080132101091564402883408518823395726850223705952030295649825205267100089801765993697537162074179359085454328315834583837821278292678635047185386944037461478611633720727436041010831380667948310996176373259401952475416315800395191951954055269484218841691551943058605443042110067737923069163847766352075870049494321407074988469007322187799171081843479023009384882601743487336968264523342583985678028226308817585034775597714985181915652648510709059032261876958592775199371487207701965558630788831294660754690352438135288589046293027463960216091158904899910437846835107247180673271322179087961985592038606160248833339867046554245686725884132372284543146345038671890157430129036826008910928726193642721413674269522697699611786247671397646785205380740635233755774868252135467814268698870411745484846225513754649084703248946966510502007819178761421877557145373189158434095841456762206631226608260804376626778435677090724422524621095249129706613373058510344631053368145954309487083287773781146945348064019820974938378398652357163723816209813915431234404487112471462770457133878054911957759252579348585734238217144698665287122320211116186617780549131954117198398611381948563721593805854700330151945557449062995297857850626750966115400909732768345576570396601053014023237762071211218493980299876520676399501652364792481499992064715237971416156114933376796111091081065032565317537653042530437983909623868098715586229445661003791101589632941957400274332532895699369155489447356575945361112777109769905647616445772783822432387806450795011430375739662345915735226970750957810948895568488594546393851675477953985172778821550065939958472716814637614062440071308831289897255480978588013508374033357128127381105914532453613680460284591862854753209753988295128455213841509713823618085923654266593319464426551112603611001637202557055819306830450046242038644199907314027948509956258303604392656997849822078514285284427403773683292660657151118591382115674043878645779428692890647507151078973452990543666092585912642099255096891645321805876935160645410591381441954551231762607631700208603501880761089969327356165491444428356815342594468634524316156352435735611173021440276591858511381270188708784128729579876163643036907366808728937075964280097099024413063469280578672417872073626358396540564182357515302915566674802774972055034681830565691451042303333755987567870458321526767140600825153437621935796245651835122189066661720967467397973505606453673261849654000142143012567486850216488272538767041035660089392441693670569323999987469975054566952370916556125909044211139361025603504002314825478360243018830057862697866965055662226017926595369799813608946122448140830189876629798955417253960672124145490624117701853623712108267669212782430780290787589189754206594337808973620888745502988374346489096036019131829264724841733850634095069757061178767337765717949149275779821910126049459992543039015022190710131205914575874124480578600705059252724548712871326915597342643046804699147108260159982225143205073549475905088901450062388879984779400278621302551120355683569680760941761841046094105291977178810588297772595967436005896269663281410312615807251203681186833883346465521818580086354857610253160428402649893296980072421396522675858197722150478174921672054576589845690819717484439378580533954842800548442722094392374995506486610021373191029791775651051265049041924242239749122076744929860782722871797134203181961043751996056729674397214717418691633839687859351606499297662259383789822427279987991507790598266495228208911099223976331855258744084064351791393067094096784911802459538259380867040429746508245729653257750776529256471221859935789498695262661806756865868598904934051687470664663607088262680182045583431750070932045828807378740579698035658991957707442468920642429464231147413071977000698239917061157972062729573117224588379851176076584654179210428667241497832901890569093184330662568978349590363827580150037534577813812921290660177856156311814343915311627618878596301554165785764791498994349297706915274888687450359577836681546288427552953950319011181235540609713347773658614470751529429174525590922865918269963931332596822084391096378224959989979067579489644043955917369925636110166135483603858522126967709856061900854060069566146520752529703780500136138400175891985132427781972628970587209541116021106389897456994150522025472725373787172261078113167196233379112486091433825309468008473056482602508111568280159553051830914948790550297770157177873108880270967038242667205815935933654824562478752474831896602663652193324321116313188006890533031393397951099879127717432700023910229709329954497815419769373200271691785664759234347299681519773539056088649130084979386203426649203199470581391886474591313550414783800589587757791150297589212313540024849392896273627728020377446552808520568267188659752851132233517332950106778109754230171883192131649914270262150749316638935554961994710238183749467433517181144546017861488323115963612878205754661268080039829439610584877505736478199322580020574068237285327439553193244581656186472456528196970906519167834848540115354139232333901297718094852889708244916762110883342498624043893893894299064584111897272469191158994928329468865438459707000523467182102306055247551816726441286375266944556138135556593169339295750540192182854851199987333553000931254173503109799055608061300783782965021468130844947033636955569553947359292154525431710599970636808453473362427285905509971926038396004145035325287795235956150850042044844858302957685703405050681917776253269972092222019594952371494778042829431811079194318463802447747846231958928594467487293390695046525506894332501224279491224023450290564164901526993112412145936039110680288671695851093309552812017126463447029744383616584658338318080013439326006125636764987031864455753366776102242488670293782694296458149814736734616673343102221750188918614679463220830222380684761199330268883889689818217925389064754095435410568201041025370109807784118700917608584482194299852657421052313063475270336971992196797104626978718074179413979487362892356651840669596851876760422257936719604766902180426931460527053145587062092144563325514468730057676403614693101924260073032051619032871078945647884218839486571931672588647651264110850727394065348043801460675289432136520423753084411758051446744037453938348755434380167643752371419122302608633061524741114702500023802538534926206137924732414841512933076846960147950781193203261416107742140071995564637285515560624557646090619193930748684960251238128268163898709830938448948841661143192854601038435652663618092944814719617231226156541468764997430890719328232981809196613961416030650043973027883079028158000886816406912964537919980578331590245691430751862023805809698488864267553588185560802323730446072555683224888200587118317580347226023875546646637190335147906124559765708589214338757867231526246735459584011959680766651291063657122018874058900717749600157293833135620788657612915852766741014101721094436540976600723969695694183415028806992552845585306366874359695797579745405388125725628095137738085762140223286375890275250038451519589744526793611757609082361866544589361070684638691411952553038494503257076558881110334609797973456774853431661243593123013403608407010477333670142165339047213810601576001745702187875028106296673942541571325914989057651973076314918559908984083551629252898485143613311960543575051987181524121902576413202754328707735506878364841436744222732590309768995362593257911642483169423160275611534818805654797078948576085342068644494500555956279843914433125057079112212308202882089893529627147961412801788585830034196677222723541341466144308438995415975481027108973731169381009875987743791326187066781667562105713835475429362013057683757301827951284172877056715709183274393352655451066914539932666466782198067630879715783017564081771593269681438721096541691202911747526590133319411838074850464500336329685685397572857042709479813427185963717520876348243332597648061038997185507247368917971741745661224295238359985757539076897552344719485490948675508856388464277778438181679711889532927446912542374899839880783032919170879114262614056358685436374318690207189368458357563984356782001792332546696042945462997219545659553762215776280249187931319866782891563418220868830586991162711217254758349735757015365554827647224498383639413483782943363805554953012612758848739335527141575756645013298945704704530687046267758201146769788118073775272917305584782830970487726601322896833398593731538722001198131170607738242300665707012607285546186329217889371277343685128733066458560914534877761045601151133729539872699045862435293215011700015066246239163867338400956834890297523724342330106112661448388790492239441933309857745972870198209542397103792670002417651258482679232942278079411882328131939053718306900703717415241222280552674175845855570684655793097352031222549086532437108758687690401315324061211893952020961143304764544476870320392866690398833897621166031304829530678472218036685664733771730805451066378032262329030351891926976409742094431564587713325128007050537908198033136660840624166793821380300230388920792414599486907144049163028198235028742657887228162743891119149892137190656861345855136751815183802715550796723992769225163379916839804448340531712153679716416924315456478483146065853173341378423337093598264395928416174544578274978861225545118541576553927339507531089167753647247291665517271846314999698250116470042829499754133954692549562637936642469929550169156245040269008275945322366740969216084560121561145880641904538101623057730607473237390854261580141600275106595149483270964484667865005493389299215810648499523299024087913596344283222657603669619196032352191203709473838181222301574699035529939239011928170353578172135762777709716376818292154742539530663023853217784887003975713829653473225413169732465533672249950319971125852338796617908591013550095137005372235997177931766780987200788703239644421547236276360417230789350970937428184007308585003463446251499083291551266754197115204480234773675472825816021959833328688334524861370419811618387611369820419739369839178617627769112990353472401121657934521317536154956350454828327816720920851156909350025889548378857417904738628447019368620894477055516027345447073024568882879854499796716499336414537549021206001531169460799930120716411801347401402154554664774921806310368025985432760647671599173122258517678218534768538057232526145411414288688585370345543121637173313408530584376351786522297918773831420984270422070738262495419956052836495348591150242660958199521698484322163156884644695551412242202914532258747773727729653430406983750912574857804625359250336110499452492661374896538047090333721340200265290995333636571926872751535212523822500809151076119007642207094323083202769434974778701089132667188276825749559991092734334158569320643669331777995362784883357074560657656159072265081907818748032198874928743311299281088740950965069872365842290237628118296033521417556116809161083996926144177293944289690682694929541458081616174373195261791945594751250861963313969621911501607685020112969489865872213427527864790504061379673428984788047123714456124339846015435426261221562294246386412584690107908608421893139634414210279837316728685172566497768518919864375207875550707883849180385867663647409695723552349304524820547404576625387482445594868439766467257221034991637270515804796241073196498964103632257385162053213941987795347908187673948148997924205752371753906001372613529118212038005658256565246236371683876131837188027847007438777939658235552724123670056143107465445841696766659301771278583691668946002090579480371433684333158675720446147597085320972189131616025856501118803425519825460560221723199363648756950606109117723570493126547017621507345451331751647551348782891566442737170189194325368459547114844404289609009303424812271105121828397549440952660209026315404523044641904483573052404745259795983301733883174171516205498525412448139708152420237900630277348514071362605351749998999941691295048507115977149254927810755228034201773141821611170722471802140820215822539393107357405131808945090720454308984281034035304097197844634026370530220400384396137357914220701803046407394884171887267768610881207580577651785550358894095062481510412397357449242535232053043513791431930914350873023429471431249812545613869519076508060158090666493889165978871142895686674229409314837120403094598389545202379644761824584226906701715435183778122846159329012891315875243530748652535125891306753530824823813194460690239934752130696725559053331853667781544191271534577695285057032043627444393396832313574517652292165675594526265312142292764068133023404730053298143788535984094947862882106894807651354932249204443471710039732248088958062447202040463981114426458835567527643174606791338655489906089704099071206812315214643479491241148170020047766750202366741281668422204390292608349913230795603957056185700755241003562992267502287575946680006315694468235163224202164277128324717829879017635928637484105673539476288120034654900226723126636045346381936840973510809942042289447393277944636656579433050173110243111629859776092403832511951347444833790911170733102275192052683437504069499156706497516922839830537239443818503757829467496338705485262487303718435532356864440950840195974307244467719970461101536849145388615774660262421686180729117661475620128619962064732419308634913410056590575669934460325807969720294131214970199831258366786897282825084287927766048185719204702551706538609852552923278181419476372283494361552916467128812783080527219628471790932146803162965167910529890077047722601372070259442324098622465595598133672082493544408826993103004160638281022819167967682909855466158196748970896223232152433560638250756023769045293299745693118690518071558955990671116401430569735925033032569841897620545488138778498501745400569438671445282930889031495104785448842281076653395439867350200216781419757710322752533397789719709014652981672204074201835034119650498654533195950672814939341399210806774397712248288432425814033358434462676620018051174401499317582967334907810799235975203401243722101571393737656024338977918785175183323957044602532056803664820729901156588481907877828936260374377459337427655828155844580285374893281914869256214094589012830895023816136829661538704468648460372963823541984352928779361682934014753551562410376147428538854714765851350945398579387132862190214552124350378990357968189087683036977749893029637837232009032085704811911802728144472889203513327530992803270291892666494489851593395854709881296130739778411155074417707414954050022075221995047039908115678651166868265527075439677189771724006717187253927698495013373780619157569555871870203317091534346825115346148795574144794961261455606063690443468599604329330868301264894258485490619802945846855043612659522016923744926428456606877450911849693823732214010476675391839805561700474740126572647658461132957232120890429141992054902025212716303012162058044505806149301579755765344319940618403696315531775103478525394570068143105292750127659853911491488252858290899450145573235700351895853716641918923822278904118898106264530137406539958764636779204841343132000176386795684633016567636353413237013613772238701905794179946324587352890355489660829183980441867641312943822176517261333953549749629209879743960276169881967808319896517774855030896107987190927995223060561519356278507999040409045748818647592556691235314407962753997380190794983645800219340362317693056748988776428445987053920109563943743034343384112667037349587236899978285092324072090649262326122353514141919210326386735180647602104112109107636478647267580517083040841080840983228775333447743451587944975152708174408854490882050287992844925188118978744737191979434965679531691262234868231318508409961402361354741061037834182918110600418927771942304480304277488145685263446179544824038117324323353867634855590883035967632714543862014430987474152067763776750611192123770083207092531524419176702971892542371010191610402574132374554891064651934416265113817233942935264698713712486264370515136070220755757713026178432361202474083478260822700159490391463627359313855232314260925484152954499295961246381210648816363570996544307549468200414946122024871285615017509867237413375892871952703035176918447596690042259540899205547049565545195445926076424447958826965177589054843733029620268729596353902048974869480303716882032721274959647737711019588671004141950984476783250788448057384056985537631764534106967654255950874301691596935156209635026972985914109316271807327383994660241360069849657926181405583623173887774924896176241728477344764539185562030141985005532812264962017963840432467764985944530366908965675740627734002918491311297707814024755144821521001026822276104031392771591463713853382881809896574436876524715119932764718637341094753476357865067423371885455398099588123011892644399105891840610648673361132515703863458415033873479687422367538003087360574042829086759470975152127233856175454851262393606111441449932312627370517339647143138848728595241802558773645393946071218058938826851687916217005007499587864074873331200321512136927202393763672571679419399594742035199284000853094556667917550720666787656795808489566743790532211957746153772816442332744513183527802156548315825286397343849346922334404318952194591122750778272510332534469955880389666895017986048543922659060723176855780250399974362528968604604289578399321332512076965665843039573056865994264126238694253507514821758711921976771438165041765740636819717752088392118419881968970611769901038389410880725404574375933065502263975776792470375248889847200343967751862286958894604700129132326497260593452107747813770205884868335889892323397400446722907409420210305384103416802930529784324690746907178945653005206755478164534649471776896276329049179919899767963684100672622911709407137252922962130170554052224026217788285406442187936088682736329690118230690985296155840096114319971668651880722918583642256771409329994943373103225141741392423952637653192039837018558795750719082927263386223816539456485866456613149335025072771043830465553897179481700484776585699047966788971457969101678262197785417856604916775202238974109964167706954187122900693617669671721973160540376562774125773401514204236330731596109126192136325531405171307097781300267905456869403772578342903213904733741614187011180123481601441828944917281394047283295352579676802723903872182344664545380014214458738652243048855757523351826175670351539388165208220759431349688998083770377305952965586758211549464194663482630217439626094820813544898983000634615942478308744006975052029785858894830751920579230568547689841061231397209412141091516438390895732162088386553024833586664435294390107855037023657786638920739503406155607161436483365035908247504062648749598604387290913206719241368662737916654446783332266968514142816661902056368700328029444176950360904495327379921961725199001482297240962660326593366300619410855642641165410530248391106439898937255884012056868636669584530956648212483995426635239859618965585254882992868241780344549640148172611622971228309176161792417937789223077526606847124282636143229206235694253565999343629280774366078116076688484221538225103009350924802740525781362968575334979542640949393634910094826176523490087214090980560885916772761564515803941254392971131859901949712244092142246321844973514868338691721085642230711254781706500161125768160837504094933893987152251340866238762460319857631123732757327286373817453957764568580303677363852117578160683290282566936745429632131363956631787813607653748360986010932696758696625114815323766147674125049353840996603815698679270362933056705600328076423911868388546050976443452371132611173864403547481404096817855667420773611133582400763592865739600868278094861146225991394997830619843586983076872179982913704941255658974188615848601032343144030262067168247544918943651274855339503812698940760193201153838423204120465284432694083742679705149280484533466556189049056839588132383292227156140512858283661331818724004823964961370668572874253452564134577363056609339253992455401385223185227398866617590938746815972399531647420553001696280885124240278703739098084889732962421416844812951083443624266956170963037281097546336499460035965368178837430237166180190388734441668253460500817256176092915573160088884030233239976500520766297942053141935337136179765775770156806482936674302750555676099117014830008575415593442317547282749819377575730010140155780623466824729555070506436158215261968455065925424014112581335826216758305453587311891372963081947872215385828855994148354472538277717623076624287001308643489103389884827728234617896760752616672498039580657260121839647969921984073554804430738469221914540651504867722651714929330535256533861505315972539925618199551869189005649610264123052421391034109822424571089736937699280388201482387694471071754419788558339014223557410187104050377433647709525747039762944942446987676998470853651258017078936295224318536811202085212179181189423499332917690735493778553130502062645431688719241319805987326020368141662403381353098575617003728629845754298369400390146771255142501086739650606227155697244941755985170246569565008870814956122891157666827604774387922988044873677703852797354950018782154322446319531248652310999411033166933365253891695075075002021506296994597017318186293852833026785623867711821453541765593081018543682907352202608270026826104053446091318816409276763960447133805172180713628151559949944760017189076795383363117095065836129387453106768917289192712889397247966936393094660711985275374287048753285640880061401972193805897890966931193090792004555702547531604234822922641849210277222447860328809520124589614483740043545986206699810146263533316800854880834017378721967661078288463313371650761209615102881599633438478611435172491271619006603239104540826000159558117095249699538910245176878386911213462472771091930217533248773989310080341383722456088503464458430638057544447764825446194596467554000298035857057464530827551739852392132723129620450547848735491717448098169448889907559568077469468089916130011323205311968626985210224754776839891773463928353370101563955929798712209038360275906416112887190485808172399975028081364615977241093530618316896667508977695686381698438803930624069830820151652277090797246108663287839543175611519804681310170435333989335684517193420731011953705547418984361435918633346750982895075165797189364121054708287181071486139316304668329671546432846491995946609461326642673841487453796442908965878838574170612702342564275077658142040503279751085212220379741590856933022823792155437793238716493564612599105024490854570374813495121896430135393219116082636212013933541183520827488359933215402728025696078931198707634265212844613803718897412802509076294008356872695037361574850586255606932988125397388572180204668071401166483022093960761899809452140151264150323948691764377486778834332603302027466273896048831989791548998608774301284669825761755086624033269251374274580774830429824745372571962480684035537019054271854081354248322740381976602093175454381915945630303956635917951483453639767915763397910076604228276070106803061980662336544443025047823431434102764698314604292906455878807924552127777782359432674129701512852333454861337889136158722375905410788200311772188418709261692531938610801564948828432264832459519695489360547884136328203528965398332507475084820088802515834769167495742207531407298649348548651343822994304261954270494000614932767850777287149508156643061693998234147085584003796144297788168989196441006485360864269685568874394108489251542390150852615781080410426051187157573920169319368503439547908327787844047320402968523788558118393741628277916125085244869931123974776383987894391745410953443818750494956818328858152905948612773209489562146523469180458499483055491973146685917422389736249295665369656938493260668228356274055496389123336519066920202348205568286629889011536288883071762084588641051313872537513207745681897784629309291551671060044339355977463482884993599303718804214123846111307422076024057053934978716174567254732102388506448372709865503712327917831464413538312040863948602975891468713863860932362551538480216301217261173935454366846371301242627630644777067002794744900758949749975023702637737778608477789926113888315446373191898861951354793784988558735603821915196779206802548541703082122232115527756763628046608664934969233756963870197332861523815077657755230726672336923627208729243120381500082236622210664197774354778001597180605690993435671875386879480112678726761840860450249896738405420562894940542789582367973125283456291993049869829421484996442047565841028963437101078232049101379930881006486171897875429743585709965564390300868588030815665218442560973134742164860068192508517937128877824436951294622371715801520584866126003667457335232446282918936233792238778177740853510256813471209654935109347826957182180766251714721463692388358138612514657863664776531732931986683739280977515321657500085728084389892385727215909661468818809089641173115542087404061625442656306639056091224431451777086657803354062585614829914100725190887432124624164887324618775720282891661088353796185715997527993840335019977553326228007382187739988477904326244280378333425703696353266083851817981617044442718755437344406956568474880834928483460303495811395092145279898542184208499739154980779399943883279979835023495441801801897534939299840263365554890059449990114100649848105407527450746503055801820192689603679371518922008268310809606142891547149816017350089774589426209778305629059607131578070373997555826924036611413307215233051115293341616070437848175234911353315371262372719324892005865703668779970041620204561701580963608978146040083288281244775555609120136761698081465180497331796351688639046490828967982189893656630443342167110124812677204312635556049343856996661373753979043564242875381087382039953024256462511032435165208133860150968959759380557974773911177492788017550276809432868166805932612612782992303001010192335141390226902093217523008991639570862557606667231749612969990516230720272968882873407923369098408270972513379319359769612732916109750470877466978972926907340870989725188280355207424448333934155508976057915756467334202799460421307176949079469890673767842772423604114482681547518742509582023594361616656192968874001430893492532163713782705088403517154762714346573830504134066013080473717820726895198372579740447892750241945057787888206400032551727590688808540558247124601687683700269722453090355984166138048058519267114075320752183741419461304429639162310319493640506786704682385492239929508346931349602589051638746852482507050898069102920346670851149709359741713789443863552190302245910157346786118339996380842668160444698962708044641930983057213998150310081243232494270460033126079007249428555795670216168774738515381061605326421279149844935744215392112985648844242323562841402204382540361648471322182559263901779083722539053052364320310052437912112068958164088028106168684615006503111941964453630253435310160291661111861422132737719744826515375767700003445417138606021204247602686993700181461018530675793553130801081775688109007541604622296384179196637025309013708852251534415848416165241115088280329343496833995785916363841117453675538412536137632016736231689115832983768705371092346274955887311136315306546001448770792425707208891721373524744193044164809237659593096420795097358375665193327374776049054215452031764204171678519001093939797605738183669133044995696005258747369409740379969195827850947699202048634553286817170579970630811542772026976673851274169146689406667932005528770187836239822919624420303419377532331225642781012487538565716389277843032061142441213501206459019252769698466684611567901055393295744148685074234143568132562502097110894406155908512519307059498226155613162511966809282173290442101113969969079883393504420995146550312050939884481156773142284621259668279574689603275165988570711543505151058698659265567833623565359854834362024487980382212317965738859879616554236459184409688209464492147464764828249313950862011493905448101564254373395221103410740141841644818779936720046465902624983332342210544861323379925288925185964459519366334714180999263629817909647355247915548299567134823184689007587233970304620360798389645810674661174327425742883147362288485287813191162138000457856714914459078497536984573768610973313519780472078294420639721754171577801095057694148427457960547690367263703157018958556947298271431414976015482899889669257522945594628035970745211977353406200392126029366866831149317920272280057361227519701591656321363008363639901283172606904079580053635961847256112981885621703497552370874450095928869369548432034951517113615168525221730561051131943770716238374544526590414914640217956503992680207845764943586028563035350893091477329414151959572498991749104032156943547840323997307967466218859603275540968589392384065105571776632086818812944783025028712508849705395622568999386443494156200866394075347123279035262727985495516856771280191251542114407642754577438846328917079874246203828177426442397762205607743393694331156371544140442072768023878559828137906308085403488920172205370313475403762278239557933183669222420520774841896990740377324791471313694650637722931215345967932734666847985191036812102962726101634711778264801620449620392117162995470771313742203601801572071169022896383360208209681363930025629882208055711765235772457988068995284398094574295584205478918283837167126596794198172881522400947782052438887088095119427041868042779243860066574493494023665066775615402019602179121631709210711320967448777901236446018435981303313399821488162871907603054911113653586124583410213758460989853095655547412324378094828724853719424717027738687819643358682929624357559427157835789004714706210197663169744684303892558156132728616364165369683342826396059508929464698588850105403915161569792965673521282434481033985636452806515521404781861248836235839894971701713865912865376620755411646059303610210019570377356283629437004964664915937143445826127271271093362796330015603557265455101679647373516703825424512586342277079346440619911896697436645058218712249909454394660346561882896629359883360150121059689406297357650274466791048032746075694676137483891613414110458855787519028710671593693215174843842172964668848533505065130976059930294142000620427457694941255159427431739644184378893990517860854196760528148251991983990802897530591405549151878391948990195664022685728183085640518741803356792262501571043684969407605595429411872585142069091473616325857402872583097598176702118518052666877946278883924587975927013032577422136098741241663449896727948167473426779225885650444841553441860567608723926355446728143330167446398426201646384666690599408443285707481535010892195848276263892185406688769971145073205580753002087729796484539175632448658111418578396286859603537270519245512246368396383002463269667041999444577180640698020905335896233311584336967674360638813812904468905486629071831545961938601107033994259867420892331766994576571216212438315742795766521298498338199691378385689112901782929986531435358234385308082226922483325840693824634750800703734016756544238433865207661613499924559666639982025678693093955814754149414286231972161374159374574875170732326317637284121540110330102657624792930614870490236083352749570050777619662419152324628074002697469038128858903250437652311787079152667493142903110208422205129400869792557578339453167230281519107212110867003491544391274251011522814175545468988067445464960011871675632925267763946769663289982120943390290119419858142668920139885711220479145118191242314844083200029044398415027414673669888847150187397836237553178390088687955784596710829093293201296609935339173409917279362854388457381482335768287803630220671927790163706051724216115124014627397668291547134511197684788835963237014250989016188841391180009460876264243400041631892474224425343376735238262420554189537691841787346286968456111413860808433251036725995890042089410264054768275342226482017275080312464200776530723365604534265998397120940789011080109401366470504730353810032580566436868634207646682844292581960946894269439055563215663130447017308828941155947570824171006337779723830055712401256635232524430017498358082186268230861074861463689624482863240769427048692457821897574150118612070175788268361971240045563847448592581226042044018541057674318651505843988708173776529317434001767040560048389960979457601075964632555785988425683174645158842638655061492576866799547553637250415616757807104861169593244706407919837999234828236174662509256155448962003990051135818132106375632674803099437528394258469531247478453044252659443577936692110250253846738352536795161774138030115562557707021934201441894539210039935913459249658596221378558189595939433573644436137272023422764609158831226561611014507568085469606239683261294458567822283360325568548517135957464927708514205201448473785957207314658875723562401795883857305259861391081318734848748323066786902675436384057425788567172959175016809959400023327833210125107680893742213856054250852879950353938081958710790321020364073330027178180093836817609854804650483607294047249422322889852276207376434592403840646690318886199347595678611217764459698038005352716916832543936478322508510568117711936975885515272110980648458531504692009157493873644271670860354781499914135938559930827547226576205737589474846792184525531114414573669275596070810753404835239423497755629384479719194126950294501217813149699961436270925796931173627642248366236918252434091100768248063447878349629028188010788486971386562841179321723736063092698483878979693296173873076184173282892234357784177449921944507017672842977728275471934074247226666220216443758397132391273121034383332220916320437313231783814507587281800867496060831047623140051024256259317461944043651803437685384072418270645440939719774671730714555878905313718663798429555001172270121579735390634679247277566969425103158861284677337636534173955371879095327132427161691478809541692694724839281427207119781074830592558502171721825263754388105733761311829264103195234717122755973356436071023018857682168012910122503722367000983274595235579454412666933975680413130127141828842962393709800555959808895684384875648092281771132892929459396908558462810924707798141344468096960648067569050914106204470821384271841637796499942754852315115224720138498329848199370064872060147498234829483280084353650080085679533240309104110276104589498494880681798392413432735857519918583146616135612843462320693967154078787425146883463834399291838524321212776524776376423273861174154738790154529818527685667766999378982825633941776771395144396382536798553114538445743986016127385710059966408997601094204263585090110039985474985578400758019528516907743315253767380830787005844816389080907825011026728220987514784797356999598442208264622378776314683669430411048898209603887410866242552569482069146033863664348056913381951700586980662062555972324166691619240924545747658838326169868245758697485534103082883062188094506739111298262231072761371864455477826451606573282159706850425220818766881577155433286270017140952616045628455635476122979922093847089866595707929211777379078497358133137235532359146650677769761827257079073670457728187588200330308554531634947410776912169733171560737646204922973321552018423276233086828616868920735399300772260660383259414664802541337992389745041934203422041450895769624117254864072041124054760673788749047250996357616577646282730315143190095463934436004471247371546250417480865936428388955555317031055441082855946739530644957376145923962730696623240247197893440937162600517897525105134637084948109710620129613814665225164743430964349659560979401049964896391918220661113992258183834240129819344852243477087179274631040690476871538097106589622633516743847478582150149893679581361694814928770213435913798665314973752519421598152715487957130413509981235951198390447404927882524545546471819691995962086861101842146625676642881568234942041498025854694558717475381465343132613047197044559253157616870410616600109335522500164930706480662237133522079867539758901823231176419266884449443419300868786679771910967587117672801380113114200942739827399950976409740460600841928116488272682238187138112582593005345155420475756556420732710320406395075925723631438615480249777198643657873354325399719341177591916470599805712173731441394135023507928763771457044344196822934444137199636042891783215252676011500468012368349782194815455172980865588443569590837711472942139466976776603148420530846175283134486902164223483202381283775208745280088448077515828260607507373340272694678631386289682032344903444330189885343599679570316467334618294869421981634114831384264819282515800150946654542660285509951914550521509691533235330190669193013058811588472785366957445324690652285920515025783904590398385298184941657127870769805040536322876418993387075369212990188610059000858891467314737815428784434491828763027295080088754764579671687839951184300477942942862173453964215774855462918260455892440624063261580357756995482206263022773435157069354013778292983322633668557913256064203928734164405035330208882883177719112381738107439841859385361947027240684027824864256127601140657600225074141677379970781193409022963466878242129296490040684133163193321975673001416337042231441414380384691956724475159041119039100807236907087566390383765492568049795685448666739276267922959188339199125498948542808274771010305932111545348096133355193222506156285042359383814331709035934751379776175062352133379404721247784393532026167378030773605119760109550396542733628246069976619112074304187124909588350959980480697015407774202356354722068361654676772367510586497909634626936146764355128462829161796243911349243540659742920773868813291399727406264706475365842961026325562262908029489773837822850558293262697289157918951854603679870125410644880084699876969082052930342871660118748451164617784915993135012279861555933578118117490348165145031557894910816264601950550660597801324280147681936467713000719651377138343757472631930990407632664370981069034047641662991781124304042728554682825683303802870170984090997058619361045547206590720259256358142684424778397228541963251414845873496893918241907684050846104743593229346669442526079971472697280147700597892047152961807583381778312725186186023984879508479746398609366463061157856229351211156284474340178896981937996950484533664616450392369024102166797120874906875007489842274005358522420552619056751405829041948905637292541156708792758341049705975752816997993706583182617030414970814218909509230162552880684109367150542235984067982028728941306061244473171529369864609437402398522066006226642094993794393302006686460052160200800508167433238137968062794245183829747420345942579514168331738849395987014082927532571267159056306205428803292047327833137999570914938633199637278852857338448858573246676625372234700357484703347795088771995714775879998034109179134364263325003041776534078375391763136473509574219876635814981290868947420570761958122689792696421295840002887249583460879248597248886754967765054964461467209416313743612471512349927140563736310488281193463914019050400937633005816674482821752044424605321324435494032927271311254514180144703434867599045629961575621212800499027699887816545202588471147914615645892814583420341580237843368350419357744474259818802779561038896819938275673028538993519480275539712891425679445002913534617275916468724776511345740794808394844359251342300026826166295335392263732480015012576970588289015974231461817407693850143920273028932185134488792218002763520280853090027192111006725183640787757970948049892133285842024045740558606365901222373265011292188051831581787067676959541763710564554733100873017443768526092606620820223277327537779800417308730237825061173571243257403587858473943174639129326177158853857895790952614235238300760517641581376810054519007037839389042226059678438110289576089607646389503785120860549581321437695618624039177559032451948322437368940968892296170764658261648410931062215120864781941790209297088112551106546713927190996562389198894941213416997552324298464056196008690913061999591095959779356364657184822724349949877443293380459408761512034984681584651070094859847915422751147496550155440855835122841840428392785565155927320451186398419951871492002466192530762886226011026098627191024209933760197840467411351223641495698475017447340859033331651857153211100764693875511271272323938835800531011357819750072436108179712937883528613934250678954455304511583538871965084587268404600136532059805026083053303412504101735915254396526410187685568911964954327144553082626956168278165276810503940690200932589783743606348849861311984539232802183770426386924543566312225084493756309320206313586463916266325396039834973389698339920033520611727154014241621999255525976291567483628420119427503673580001274329784973647994027474039413856073430561144383514965084907829345381686872411817031193618809518063953826691372436755761208400107780892217824782810814275581183959192339630135225914740311617505861019822875425417416848458076808286536832072752030260964282632892303132677965989115711111413252374787711736738179944614608251035870098697514296715998384096217129709966562461675118129889112128254818724935690824515003560075199791053626822737253278630656731133277184659477548408087219320576942769659641826950260355293930456317145446570309956621454086422758722230341811462462836771376611728916644827790555709490553948981659897266490790262477439138891285120987406299639729779269058031662209570850726331416235928655162487592580380728692235980911972398677830367658614916895928238353851059209814610171562037112733925836017983769856177620500799019034802127773976500203562984153557436870255935098279413938300459383596736300083699005522041813773585299072685935805494896054312694891506795237271773989483598961921363740842974961433847145661217569427062158374256264531630924262376487252431627766593188376120326884133685041099404308244313264589968784890573810175750935794942374944758157572253337574636165918311202131566965763175000994111162578163514915045921144033080309835651631106937032159207629456609004892678230536367759575707011108477313475775718007519739368518999133016705708773007154245626488586226495109544605984289243749149600353954821939667635211455230201161458620509680395989624050171334632269878649711175390059925153645626405382881975140170601572415064112812033404206947126512324251997899501682300214409136513546531047679525704692140740405041121003299207223983403002999681490087210525787315794536579308124759504211576825472606339528901093239107257727106406097283242100929348770190058326891051415011518985538345493848277985830893840286153170770235939548675181489861649559895091511958830873947489261815542474896308884608234778717888790580709820139815634973490722713585447198092779972123793459320900701905381281800396537059014147619601658510667219311061826662929129918445548767281113208466940495499999316293346779199605937833282635087347987681357548671976291949885722023614791576487084136816629181906113679875350606146877024723632106051847073998295725310276077367117705951769663807691569007782246723267580256596011120466209585341566218403250353538254016694683004957313534440051363352574659062641462206197511162933787768020051776832354601907049055818447893250825183964028806929485729565608855604880244081762863998981404516862729855971607229468673018145920408652901485729701819941171119624082353488161741231367988106138151538399252503734813689242312454925101573118070359920858832785077436618818928575537223298525459794752152810188365861372852035623838574386975541771610770637403072478781801191368821549202269572001641100019828714174298104285748025325804590576041125284123305117806047495500842938736622503270758385163866695404821574246478294250932365394503688824130477382383331033236824683272683560217421830313931473774732433618262477944705083500652944634524864349730773065129615817387642158969725940423036785308689852603418073003511275990348542902748835315444321946143980410713163338536912789920349321170788882651188510871483482280031361206611068528486277247506133551073200367347595531582843925245547619896947653752368704651233316708248878670120766112921581113106556807531667989562029516762560283251036965034393406522167130475173854228042755963143342637811590896856050887034742300496249521262968356964622553316341283034617966360150606205101195785539333761475358151063780011158677413263456933306323090067669115835875262568766050557285447528872297256667568175777937232321666840318696556434776800940352945770654091075335063697849986571021551162812465800935416570874436380762025288211344265872187347345650713163146817350461295367318403012725191428862525720860289046655485847350926754644103428751851065489776732004362834509685948816456930601664824293571363495607709579309116716790368127861947270994409320824591482165477264358495100556299385726709440055011511924735887276444362376253875034755445660885050742574243422915064790694597575414237511965536613370865546368096366853718909595491079429069625663582182607430855678122593413766189455547828405380091799215980393484753692557990662602145733463960669439637461307768681948550423191683835233030556632889251895041691171005386553866000549591400364397706667478834116955514694735295730041977805402226348675841959597999304079126189010131002684586690481289996819820309697930276207150263683423860800695839437080378586548185907018176793206636695262613854908540474686799872444470723676854237721955536911866829336501671435254333560875872208189797876265735670293674194318149916743465472485620181047038443200223968144670357441610676169559660713445378321268488992094349603563940359702998435094092440303948732602319447345563852628402238717655833534664837021946143171874209909691394982860324636325131054716514684727599171008500569647497014963286468131338181649692885269261201420936323109397209284343847857456699991928501837061201293131014182487735474509060800320227041131651032551764828711733031096348049549254783382542380698836982340968699916622530499379746410126271516330601687640050946983261067124419063304684090314270504953712121417131740061365067642442061753989779992402352302411919037103927289749495987397169241909786551861133339054722001995683317535380563915820514561005964570075897858321788740790360310211123961785961441459825660345339763431136968640362036386283227086271008911067120118354541827081871737788272287203880399021893473121089939084514174286763131440948293439402063922332267103801997644349252549923360570212096216009198023779795346638518866261004622896146796979329449544266136367618526000854823268968168938974089362759325047045851933010387301408075498416732587209054487250278932056722622221165797764544803135774000522737482439495292337951293768746448865183935516041609136322268333948527340175668447352496636032807731141290695290231515095962800396542052737306096625322511503244238622681753228273092298048402707459861140587585327255968482005283043711304951139869714071530083789178494898957077159048838486458961980751032353923455192804921712566851862282840248299605243141652085679227023188905394447033664787278302372393691353275461247079191404434059207222042906798052663320787786004167712616130558484292515491539718175638724401656379021489991204422865762594252708794990917527057247775671733669781827602537449367714863251708430941327937697785652509051443981687589183254954621428482442436304661005366820837408331138762186528661597051975971377080134743317868056879224884617453443638996275539795010046072435423077446508464794133193070150515893231395476301039762577218097498671984152104098988328692168478828658732097710773040518592753074620683231422744705383682983972302280672863187473695688471243299147950993319894229554430609804425263991199395946883267485936030433599875927778579642216149808320834600531344398829561255727264821630299881247843981230550377769325838259840322797683349242561655839107983977945936361589119161416053190826694004074648312891935881405544469812512136334415679731807520903354095457799845911807257604258239400189098787017046730295950058542896550069163381547405033546785847815048885757761647733009185234784864132334465218434423355682901502113413318280247067395549390490911862438412668400656048887163214714644117000019196373857500171240137023563488120271196404813242055434878574929083530152969378831645525161046535554162198874419807170737783230561598338841102179888821799581243333729666901740066422523973776575870420160422916269035284414337947017303364874926849878510199788596619775056379129886844677576833796282769408188632577864572631831067896148664546629784104252392926339992453398340238319728070656291507393750354266830868316585785373414483189165306050915387454535497936352430226794193490493209609494315914854878233414029286039788029394243225838778078222846003834129701236429303515473715547672233278011654134913506167362658157168833790066903021600124545328485446137918990728339685095057107424456652506420975057826082883460069914012001878948969093225211638960610319788459598271565281792724526955422847574560128655869989123866529163871828238279876109340277864922515241136885864003821007115274245754782481366156148476949914975068501236164568972221456128880716298254638444246963583821489637801041734661722630301138061466010478589586050963606882173207398083742074428033235485353421909061144317321375007897209421433152306510515919107254046235971153562280815611311399760140407899640265969071889390989107714933083206389983516658873064456068039965966874407669104668290502749396840480301159846759103066646791491836282628257021231512561291371347016471662996324317537260432040605153608654805575932615880136904119345056093934681809119262091618847837155726040131108770160203689538254065953593838597017857222921262609150979539763747157514853360208960857958309260861053205175969775358715739337945958270655455951541862299878495562839969546568721333922523725500927359828169851309474846567419538131435285471249809127347949410228079927834554862341670257293794237978574861169078113402348940551721667442174010723501921838272755094943006002293538937415604830417058053471602878677367308018385916090126166484100042039002616458736079943481955820923063823522272230415068345915256153003394957116036698989046717267083551845493760169381893624001795300873163940853468884048811379912952807267833956634980625479186820243469717574789031792599569462228296432879517856254376770945707885054678139793772837383064499016474425126810875720118217615003108835821353070964159393715488047951797962682857001072652526294513054187122586087078075770712504269827937801113049559176556574496926515627217747430805390689046940262517174757738894972983621961301328789375815488791689975869431660528185863569269376968250734089584149300436501210261303799104846352339913676774886776102645766100224855557095106713977314939713348680053313821626653951431990121310801442205460873026548189961724841216585786185502437710657783036617629086594458877476215098588571359605751939667128272764186776060593280490012041085148196938814812988359537415353593974920664924093534200545532396779916828585657246828753633509351384226843304419035227926446301374399780950224618737679624605936136161598350051600260618009566010198769557257519301048524056810941109179152828863931156993508614108466784554957328180115771916168685824708212573411113525186812362219920967159637050524261512499280030550631322106867424858895802150677729373848051660493214856716898958656468873304225896161363335805606742976089038514997895766401708305147227425608296562503148373998782297972460714497708371502866411246126441881613753415527193804770401087983555357985123650982324530740433684749170767527031622621253493195512071184452691329765858208295891283958318699301010474243347469865285589848268437954369453992549827981633507038084996003639124963789781553300937169384003656882552226771182196956584004462706125343991192984601012302513395328455066113151414612471940948026028764279161936592875227904611313634002909208826383227172233699797641860640103727541003791670605474397911181182003477354663018863556728000669880873986467338453913936420954762972600376547670314179294627177353371182012221349611987019260101909616684441060879117698021124108485688706675930199227998672162955191972111698586115946243379537163184594285453242061547192929104947634649661372379726054577659596386226036350591317354132427076238400246106653673895608459449585333697480648972935367136327012876980965885545217667190829550196919249176877908979108152314574374802949052061973656902200632300336589757955588981037444821160505266503323811087777992141101266555147347220147669583185589574718251726031777268670575442875407986213497096864481770576924046194204051713424900053057645014180792799790553937095176800281372688127779486127418348201883374062299865951382958311421776526925997999139042380612023391329449470521569469857900357568903503710777048043785465253056359387016519191223129976380834684676178995031726034647582185588959546189635074193402938051799603930155613604060319837521244148554571550053932814300144973282174016544269496901094526869873038494606461893252802589232733253446717012817625100379386486908736413049305360556504174838631096725184035309343197010989638040271675927924135143226171725080040378516553652183241098806144254810769323275324976977065104349620193851065428738528584948715905380207112588079654543780541878580007490285181266040743873483183275773856443194872933911953485546202786410346034497039209826594383939520577391616402985792755496598832833016981781156814095157584706828888519667557414157242342822373476148972935995137350501452225028429261080591253318756888766978359307045672209704184988621338953650446829594176028948148642647188162484915440396979314770033119163724083972175434033073447132745644513785212218935668896360809466523000119130544715747801101475981933446613100808307461960848025463902777689671857214800521513098218553588032022926127339936377965731265357400152560224458498780773999409108772671067939721016545024534057432521158003337389870317102084860895169199508005789681964810536351585235407550973980015549620034228578624206456604845660680171345827895022293696343525757178865447537558511159300100387630471038176555141901352457064544205179569209834565816688791623205957140311169253828949755509540110859189879567358685465744706910168192907494969076923025660150164320060798587688625766086044401746959242301935101625646755735583480842049572209727953768987994628067059795799901575729067069397974667597922624606942934578989099526255037698866386451175739737733651605007112156269194716655817708460371227085538755270981429361832647468130282396764224592370064410381177945364080605637674489734470745366859556872065792553242106832065384454944759208590364252918532676526023144690306608895099081118725232767245680055749541856298184602399338377392049143699620414940575435568801690232534659911643445622257867476043290923049435574635549515674914666438178662133363625081029806838822223115159940465955742243041742335676845794535363503574578350908538529978974099210490517170696978788799641679904043528173010652935251841026689235032519846395191398296202227819754471406137352642085554853821118635631805554073878789624599325024286114295872013991375608216145714223648700832056815495174496277875688068899551148630976129796993533248204575779166181730368501844225907987553695941653539284084637590787147180594191820947125629686100739714878925745380967733689467805301716943483349489560707035533500002907223817651080693545908680131644595928391681839428839154492913807909129955885583261663985338326575874133837734151962955400606252691832374925986359458379193971783900561351104953426758940475077893084119996507232931707502472305136711571848464157805886636221385780370111494415348400102052519534470773228065674032201261281633047776362527248521286549945231922688968987697036256640062941888651419640834435033675636704507838966142745931056128209901091834695106611230687390001683649787683662826676210113903772090321906775623426833034033706858237931895537642719530625172631757675617120336612259494982857554780864167533100837267794140217592217883571625358036502055998428689946801078919230655513331539178597020111400575424368434813479298868314915958082335524631303160681180641617395292785524303604296642473396582160306253086456524245489145711088626129555376343105529006216593350428321976813926994764553838779620702060183710158121867974115834349692994999579899462419832782443214735522984613651011264277348014231412339081754056853950151568582066097658921872746194107810704162761077476457998901514959009356588653501637244576978604993150314970949071967501841470521196776764051549684064328057838135980596217405722408431308614361745197905836847420045261849678163226998548130558924494075481789327819126900537293988454273994690662285747316307093572105771640685348575373473118395271352839048500195275443188248847868551844886310421972406665190094681830091210384194439109698121766469851153019632379202709384240350354130352211105444481848145349816332354913665477512071602904098651052026014059355520424365469467642078328161750919903485582303775434792329725391970619141337733373783465157029281153109257228589366638645681100928334135315578123975091853537713026278845373605524098639259053131018080123398521279042530796292256880213816588032547162473452221175998516137655042422576077789607648464218203531781292067907614053473898096867895517615989240257564474298618318853130736943963767000272792453077713729490048315807434146593715960321649921598041913157399308635863867816831017868583584755443389096611991236087462955694620608042291769407770140387686651519706885671772846444602415212927652625798051946598460287311634235007634313493644168259628608388522881271161411191690199482974773961071397841369936863632217164078028312883140030888202390192518252264479293759064929713325230724748215352819392930650783073209876346510733937149320230935285718692655288802228259141496533155152340441449030924360178586782415063769745166157223062921364870024495335313652123514722660825030835122668241244278160310554110962066200491577243804783376367959277457272764579266000099975111163592745989781946961767629282882111041311037091257637772603401236104739066116913855895441103790069669235939110194451872860772388085626879340949145818433742772465106406413809329620088827724754085184825335882883044527753785823304371264133512781626865216274802061648867803238662218465601143154240970545616662745225534739766649523107447411768703363078141151654008877130365493609489733615468464264865483026190231172528921745720887250532424271606749699847848809659130833436569643852829219496649337856865659023396310900572664165086275690658311003729670755664511903510462112305158270553156897501273115164441915834052362161604435792548538283994652178814675254216910892901749458387298373819957668067341069806373685619680351121417106129704384821415334102980845993146732402444521029252570001221396743572875715386391322963046609114245082859210684210054728733525570358580646528953940162387095144068530341330656288449456400369104919345843974791985464195928224260317289497305285023377545639380712381040972972998475301747851768189556321555531062581916511058163075339795746332803838523985757965605171308939576450146071708234458513685351339739413274991561077673335341453485949984069544413689842604999985127156352330210348079962720628504155005510200761055680448562730438625621132691115477944927552199143222301973912398607764098382158817620390637931838031064885901605084111056230555185718462628849707299343307003731672323423551103503126632523227553100431859894763479932351715750838695584357081571872196185777885849593023993686022920982770792576529842380223018079396275746006315127674721548775522136909380694153683871978042215726924304780482721135994015571610994044773174069444661926543184968424756591144884674956465795078092765980378511923453264325377384534103023336625421406168849647070423824589924376190700149294986695150323817686003416982948530216176547393910612670843063711373960708052842730081030148674307271313712527513340993384033920213146194511411557901230003964512026165821595038341011376638335206285659660491045534564399240130072606205927084691790554139825599498702855370080243365518065961390979041269613942696574854493038911451891528344294909216905922299030686654352764686554728836157686699050564012237766368573491937373879303345984075882839338889062348649333609943018944567614028147460570259982498588387862442622945286668672513089517981664610660106898894655316547774574470096872206041521954210859431218036675785007112340861533238308261971955326918715476879725276392428557744282495894897709286574798619441497123448147641731036787857234649156331036454304967183033857165240825449693765601397419953360095823674739029606283504728507625558067875446882140082646655908825516951825454211021970353495130807853792042442605890836009126265708602373401956625651754165572622507546091560120295102369613721043690364606027480019860491216011515558005268068282386531987317783573223184758387302594572250411697080991741936467821195854150151642918591810823460838413663388560721126977545770913175928726185924575744230808562184458247209817349957692727982094471726907816368538696034762142074845642616573289395292464454088927756584057697274151201050637972042925797558089719770913676317033121821889066551947270741999704403958699525181507152642284998876935371299596639287642957179249525062959722584860552029414507344479177525267105163333971975121852537187275120537785351779965561554651673380570929175624794620460323537899183814725638749019335060749063027163153215185644939610948805711157007992358855517399143164966075218854132788493204054385162278314138747387111668920949085812082363618582567516000831151598462548148074618992325324865921289190944321178719417796850216029813986382395220272878307235260918418405620284152876667994720643100812542780944455466626721713382924395428272975964968855151162250622692607923165157376567879330367450216889077515172327157561335274022051049881009863994159430849841704679792675353501841147270051211868507977344264008304702142471171360448364015494096956343649483204960769256190744289895875022841905011938466770642081604100466271116334289121527568478473853706168339851846279052514525308412379958651509677635067705662531253088309679162320235018533516083158173990437350699650504240737761493255219992587414540916561968134000767568007102705632243084498840822035554373415592260417696048419762032743806807760222316923921719410292238784399898033486112890272823838906819205428239624812580107393366162360560986770788250668196337363607392264105592091244139603103627711468817233106271820733265218322094242589109118494982678332846808277939843977701861056200276505385583503278712150375426602716146616951556180102284756022571008902276830235928579590676503496778069256309744775324993932338042967522566632217378114052543952793219239295438790109753117636694231444802537075059783393224997334601872018643459458892813473593245868332785559721300028746431139700386493052537869123139428414580619935831733840293615309111764026511784727847953192987420772443128178836972186184379114033345781734404305680510615056538719927501779813411792619473767963130985610301789687806696523228566977804205022731542391150399867627039209408474250295192137021142390216403618776816694856218478492301812862685028936147804933550269920699503917015482118740899334521529498296545172195768373386225985646241496564482455183223650660019286829910781056156916416759682037275562577110552688278271588188350129604362776230925041841159349850553492550503868083240895472673807377306388813362883306747197756384061868483494043479882737543464435433884054690757985674588267165326411214191304863178908769935377133235342730162801813943018947361877128006462639779225962142698309318062271494478505205854863367095503756815044369768338215606236699994439599593792714612145064782343970250499725272319947924978180706884509714896819552681245590859198245459572618682264015386400158133156115112033871336221963705383780019081866713185747804152242869243261733352854193997560767102374516920421392953563632881134675347951575776155213348835969422083588810185809746369626214703442568603346197022511748374719506955992668019774423347722546964612391407043621362388355583093919128206418547994988492868366779187176504992354690732214607861581459941042511877570652899999527076185800407934017801958927024139624598649884280805631083395252570420188632093979974721806248980776978626782649971764778756859440011534612204205654728967676371899469996978346052801376196026626110376204767850051151831807355645056265463151494738490637675652400674044614329340667533953817740410943983645443244928310177796114008691426855716925109370310880153031737359543970349864556786011919362274557256865840466724174142919555794748367747652783948302200249517172189186727196869284765946703266903490333559016271853213624764003861607235843206875086074545231526019912699303210469986934907122233145834972088938066866167597404086242383092943928579684612788122078335902533016178461534118508376516451268421529273317986190270261093676508029693812918583400632610413755352871556227881397809603762178550569024756305493740728734024991402602153249760840613328541138254427661595823327535137306507522257114068217314515151438373625463279759605204781822860439884104756032674583509309864380333884656324923642505174817366782695514851844167579718693142337536513524398049355313546850530866541673109040256358596363900847893542271477549618988474600392478011092323419245714780343748986132665915163535103311049866668554173342469800836941084426509769789426593434864243247193195814086887376774617260971521588015327509727328043482067873955268344158357198769562989353333101104250858373352786430534329361344795771666899275147564181375652167870172961960040989461536960930198853913348958301961691798861347409079178284968557853503566697379872238471011142610197751740502445733265902681310623303933594110372925957907515195851289260600437769965252157745081521608686530405509945738042126511969175574715720139624037351779175819989257329154087986406085868287006241651600987972201736150875697544377863693811554533862411555253971476041169396827570462394482342989669011011447330997298902581678545312923663987114106304863847879073275008592699410917536394128323626401304648371019393731966297874973224982628348113879018516589068885289779062181504011948801553609249764028582273544573703897281817944743275449499692549278801607242308319188890729365441203580539984789851824655355893973036241364756408327468054663566930704673872689564330171410683946206717945983803875644114855601836654294194732377393270438628604470177525145658788902002306085728130478118236721242590312835667267047432668253297372109192308860177440192181854619970672817269880729536486004482795678882080599495112154899241039557531860317161212331119349646805887601511006575404403025589041447674857633610324145584962654706206025628033439896306191864017985068381843726331075350416717091366439554845030069622853258660500733599436328078044767364603679518743514292439424344464592710993653735717616003030548346920709010279445688870168423004679982862283113777917716794050211962221022743986420397056719600282200044783091588697753797558583653911554329832433979307058435846321608705929645702270045708329734658354569510363157466848432793711622375999755821105859795228177299096113447536492560284235356667449798834065158327061124408481320851524602881732375060649861309734217943590572290614571967224837473642717147306924525272132315284912742666063162434125185512536521690005049852578170158706824411335737615435211397706715274163649508078335136003182443355946712525957172713094355743058611120660760023479018969711959482376370298442281922862951267259804502396518976792692021409801063453125683377946239843021777219176341799413064765470866089329858315359241401585207689623523088573349928395448355606291462353648837442929021139599865719953121842589849938876713813368673417067767835050103563730399352509391518826885910434391312748937751231603942355593169045591863353520216935308215192644847081660429594187169160144759614504307571457892149823001478118204503402590887443754557934386392096368382307424891517475510064222284591053784209266373655793348883800665964100228593012177142221026438612096053988367251677447056987725001182051465262727688343490887540045623844860166676379349573646604240506362869773002577143262948666027155820834473213745531564868165138036052695615244391044915602169795319655902582027120183493558659804053248785221634044917505671203579334985870443752551076611242262102335057941935633290850416794909960611588880027228015169002259785200105699503138441359624303859783338551448018368793997237759511971047815611445620474610417197636590555055970116003052320662169091843200381316905217457243258871577623609149638064215380141039814982814257573462666493059843964747457088617383129848736395888862955916477391276156736528567342999438477193471468381332822563913091601862264936423677322628351804169908598602944176512955877924218500605582775645443350622807428854487557732617845579589105506256284151415070902747226471898335989519588417597347607515184321415404803546259618482818913893649342066361283994650568397401883485956460353816975439289097257965305446092508589960394121865777528245386425287740743821799703654345144385386526030894116925479595057061002166912286386072239343580879339816585269948532799899677796113902912270755425389283498618246701900824356119088231217542155270849601193607372320161386223767559078968091070902572209639056027588732550300427432250810030218943668384380018879789851296622587684377322068676161102122066899195397492298510535600952458319078754680011671988816673445255830400378046184702427859419806950862573080353265368222995188554194382762372727016273321132423863208123356830390468588701962459305905770865665875874672067630753465478957591100057134498360479194462255515411092740968674147225045890442298562450552358830064494616661488703929840713662716681568280265055493036546371496780800168843035035388580313252736510213721921596475143010586326699791912828177210953958238647636187153914022918707572043320455188816786225933971709486788188443706165238269569766518658828862804886650561137877533847851050100602439377296339933381075427051449003041287951682191696993632546291637969635807263163481639841455916414193956144707416973439801766688015358617428044897462742086443659285643143681740775719949038304277464678967027172419067067030369178558813207789722816880404949918523181774760667340781251600406652006487867634593411702747017611885991778055405043319812841073137851281682705291231386510672635426181783566539421127106207749579308181460040049834041016781107184097955739855170064428772354671811992264100625820293032996989480296082618404204140316892813055151008184204076899226746996326179797889691447820635802758409235074963599873404634503004860005912875145639069074547768190836537057944345417962830622901030847023445661297550198708560142560139606350458591321422432270441102183587197684807903501703515894070191284166853184867390779415771649045763002655829932827496320983962443786965479219771318357141293104912551547060198621411582804916085678715442906229211299653298481029004561012649074318793472580878179615340264034054261531282476019515661197772939153491571354235345884577664216177009537835325056519035285919776816500144912775379146622168652532195881838682493155696953562147459332357429961734858501110333527952565189686293923033472975217689146081725065368104271337809919456794751289363490402655006037297345231737472581322620862022313880077611375699485118289371231357374153520451611273089167550186965690805631632627495532363059643194115131103045856920730653719307099706872607954530515907897954764373940262128869905694084479801279808054792639832206003267263168778964827370301234551414734843290274784770644259018219173965414755721688113228082538392118413201956650368294534975157267288836315129791154254869177214717741413601841235065014579233007350465234251568654040517828418106792291792247356680949386562525442163208607875163021056235516227308220731720551800636740427937514678102989012540233201916955385292178202148441508317565469829239761787115963800728038819786952383393221490384649943076244087420299867475540875668204943549673313047506790763751491292901928945616470334698709959961202683495857976237119746837719151530405930493172727720735925072229878546332462433577393962982755904600726861996537564928283085293204671764778817003942971353634375766479822437852166817469189037568747362236533693453155475680872788739755620584921463210056717577152106705200729963337111387887624498733297092593258041331665163908549235691251576770902916001199031995547691082958034244480695209783842923446024252371128540647348310859461772405685041806762923640869201202854177597484844720648781542067673113437387365217056951040325662976931265736861370163920822123608323204293401859259307202067961421003314897499707556175206500933849174570920056958430889933950504200991933460659558878006269650154501041142015713664835935665802774991330752261225559958499293116754046497812921018010706848755407879358808651815649881361498654188928565022891020487716781398997963172679838459213957708464014381363873145736093172276403395487823053031972318645505990060583050080365680167318085843743240220075110936431212081035361073691765634917934693751565102725089611738375175434983041097362092512043111936737634307441998691647987185201856649704899281968550151863438040132813763427317657221534316470372571088924049192171674181549115427832588483931995694607172761345518960857654943361237778462579765356480666391962928683783704033449405520747820766044698534781046333332624044371013127140896302455349838324881983394220663434543143478011913068121483074626078292535923113920457592658546242497690128433656176655254237803162093488231484876233655038650292573349892607627629786889938384963161489058157927310598176970753895852744518923499386283813101648975911974465750182939484548463714557982649976218685105881455381165701985984004416222462013349365605216871831123684522602338893391068959013291741978481404722518604975089227481472567920749237454348228085207746948762208995027614130069704526909454783606313082308583406298373002589714736643573311349701901596892925619936497020459824792122188928861587624724521683367388076230139444415053509670501002230018611194917380077599768268817612352596731918365399201072483595029625600211977275294004262708904471531507948797818341586855051555767364090489873749454538309636966338425117001688909189701768685678281829237264414829175725743830468714735809312867685096912280082132843009126190827175712373731934924866609191155884573246809155192346433257374866801845699095098657611253108638178427150009471995701584616533368648127766645077479707073911203993566502131817030073601702975352219389328734659641239795586841787510576414627588934448452900760855090533969190182342213847686155567152413547142225070819153997335809396583681752225093782845316926792720327800819340938639293485042371371864401850986385807133596756447768457785410532819336986077973077421585760257141614809337637435262237482232719000250745341313696945511287541216966682201058600881277207585404361522204151487700538398738405815780490012994928553836926027968924296626431102270528838703368318704597410014771976310945623080588642752325296665531589544599604689225331114934970105245702243064774325232155829378935413819171912150795084234777452201822953362317105633014805790525240354009628829308856744901966905928143182724529459136812158286310769146042960648550176815647625327967961114407568741227509359562354006930206653807936226476003493437481463977435972463637846874553327792066888344677126141893493296006216087017634350254367525468370887873212338995218745092905906186275657714727536275887794900857768687657862812249647389199499909953399463377719216024133339493227354099507164019939721661779422926341675171848939503162291738143103768359107613807871437649140776148615229027929265086997877505643425021410878214140358883679918887653026632256229371276303536604701876557093255561848035028102135963398061993911150823913600109856016730548300215318795207685798474541335397026506689961988516828375937793462144441507602314951723364395408087864587147159999894329588049261323086297049143123479054458955239057560908673629358012801360027806585792732981475333354046177656024684670029960122465898867804810714836403947661257857758939656908785869242735274676615435058914227717875237667842082183333189922782689387101997617972242316902048986108470230516676412271760177931304840421856870919161697329151681604559900392231656697751592185497184226032623639971965907812854852804796216472315761689948723075077452095085195094946962111993880808514484153346434870297620760247124058871559784890167012338730249063166375170105666400021883939423741605683059650155926605926027778591934320143838674847829460978648028022393968935615391233378396226867912036041999981664288817240526492651093019779697706945605642434128000582726439669239075007439980585003531356313507074163983823860046007937387439397846869291244222071746339281449219776459617740089591294420512296904217451197261373852804775478103141617099875473875116125522024316937981639902219212330337942570597082806135132457004155410592044704008749720548594197954598040627694265879006263190605566818773459658364809149007520617858095388525236782663739435569636249012646872931674194144893341174154710425925028892759233815982218169792729176942493429338941800976894424750372713226224712425529454869562764234681358390405059632982866841433820704927988326457006223024769258359569512394037658585450957588028088208204531220012139322814019268664474436820479549812265272277135258020485091068139494317237015251835980821856109365363313893823599150783165997053484761728254339356442787756933449878899028209641735752773597368568328068562844586327575212540118762194869024195434505241471871900143316297878164374196513073524672903582879298025543112887580290276191727986984648836578674563423111214912595121933703178078526780049100266460958904099802882483521530635560604879186581416119774296836588241963342804832789636796962249019230414028735616696833927569024820785469758215284997348911524050888299032722923365096826085986835531707267837378206697080815275400250728406641842932587817703067749029375367795885099435101622239706876335881803244830150420429427797612980621841997784780798560872530076177649894348517984138919377591909159204807443962795818386050687904462821906777180464159879953488205149066195775830672660737532018188757581297553852970988134552963057474396990383414867658915588603341219931833847164732476014199800389148734373274216278059927563151530978429502900781205561927240525173957849135243270375107955916425093391138703529597522432915227529093525447171627439124186546466380344903167374572348103212294325464205641211704186346013057108379875783234542053545768543460137685754922823583544962925447655772873908102846936451416982077667978053796666031135753291185576000620775824083694631295434221305472739651573578482783817723271753720970067743962714541431525825594148515156280776107528576688788597915254360028837255681644300902777877440601761806374799868511882426070119002389507022554898330242773352580003579805156585294118294094834994156847519901660954643626943611609704080868166766645640163286532830631880767861616519096429192223401209401887464807314452584690390146689167196753710823884183684748129340252015146917581237099093527848442078310374476485635961549806469463540012595730668180805093283710802141648355404028269126819517944510294608500021558143929574808479346626436723579551289381453209739044373379464842688863286834616909321571082200455549176423619681441873506412538722231518118237216832914829669700843652762132830227087898681024322465893449608386092959442497889738435487867085414117343752717049999335663441368738823470720402864774311022265224878731701665979215335197259934912338416335496683962759100995678685533600380076462671848770860083014828274692994066919270019337643653818457594848020477827059151087494577643924636204578962971687984600371082432970864370308208496720138618808057613031996550907855594045374739927898326205684662137039277495903443501974769713207290405963337934745672541790135369687269191878378026630435128562644388804121714222215794872263477851565290021861037752018655474121890428433841437001510639448809211694688824785299188861971190645761543465074580804485962267603653876169591562048628405999928680906833642873204964888583054923483583394644881346326300005089396819306808597900080302370042697677044038637386070646494162992203981849281884153740901563853075047329996929222323749774296948933499594388583217661458080066969171988391888661700420314603952375570087773056328789888040700826105069408089135316488747926317387089350181949004192092000117341933422220973508475394000373680696025274743306690470589191573776841366542145945434404526158010937135830318592345388446907412136345486483382258890871872738496269419700590882521464458363226611566482967387893869801205675358567583512556258480317061285782857935116077809979277277126481885741724067543584881287706187964954412423820117360472018656553911157501413164553212861379738477744603090892835835078864574452742594781790407586199493619042231043325185939337178740787138090665067183438660884712072541166026667937704991933683300892589644716376899497711736712043221879059300761063018114309479928648041829944692003185602103824764102734787064560285983968017715255532400086304432723585893502251109619214033222425515579384150970335486180166074851735999598070324399987875141947967938332726944437735411762404087250992948333112362628700284985634335735127498057807919882708842513800492181561663043698332447798744560958748800663628805206550204045716354132664798956127010065437101242676863974403781040700217314824157711552174589829671466908467348846636745192474835316384539537077406877278088666314619569382182176293417734612214627823506291225444895714574778420569001429737578676292522227514014205763868349100872883210101787285305666936908932199020747190954152070978516244937338472608303463784456953284946031579021125675533565800096603520253225727802611911518830019084886507510922678377083305766922027610037411828450840258524663584308809970194973817072851132908897977743461062917486857984349135613582821408349007499278556663673781526257120156379950424477655278472883144057524763077670402523404723637187929329586906948002043680541635378889558948806936785678587733509951953902603970037893306864692910885669169348683804837423298548187587477151289141733874479710643317868330180073841936040771553103013158562125479585265520527506393719050983237910617309334814971681227814394752828997073371760417828378193534244194888805315238427669415859083553928866917123023100844811186812409848833473528829651630014388876813933630096178714808676905696482142024455133541299508921397349981762025012479454726807537007904571489816581801446464799545379151138333896567335566649953325766580365795051490978705603560251679984410276239921905593970504999766052414293125444949474691255977601899120720635986296659632728587605594881657153941587228062746022400252049840625800307922376431849280549479478243808816153891330354353966704232506215759920914166146368478743911670775977825180650829808929425594003983102140330046262589407014033901274283468977266938582037598091468931460929290108137747247947149274551873147810379479157344434743617159152816575133731676638498282379376945464163002378894351421255842270543455828588382120408084456500297144683486654938129505510489888115957342994553609023073141841278414255309608570970451775761137185929003909528003285993746416615422034886535452955005372788840096899176750226894383746621032970535972958720548187775069463965450138447773315477355718793485626822365450853673589700256784388388588421849034269199514571806824219879028447100998984677086561878259397909129074982653743885161924364480015800742286251204817437261656456228537755346737936438334258675442138712463233816816256621572194428997221483768463519095710651974335569629922045823980255166267141601972064405590496211113549805197580776739066991675788254322370993893028643983686102062855230614530394772019801516365238203547560092528644436301580115675606363568110153272690320480083618104223881613643286577520237241502652495319736396145264872127250502585784382564959734015069169526342861758817698066619767539453977740000638214317248623593777182260026634934068083569765472064498742359403020585574815409005069020509399208172787539722328678048851873217262883744400642877654353677814785640510078930870973606870094500844581074210187822629788054224981357595103415464758793447519881484723423612244055312229992155448801433507527965795412614750553022198603283434216793954029917256673659238586259704655626004955098176892005380214536797689876521196605643433555157768739394778978064721156890154076812675557913361331713240681539728682308567621215406298090695968251366541083267306406405134526324538270186475458582471993219652938841633915902282307084042619099897327103662343936576984768781895935556024285415911612257070589834003979139483253512150934826416784501796252092983130640230456644787139072551909753985057790698106941681044097404335693637868964701359344195902466367159507789214931830384677614661935434055102203760104823550669803273771328713725618658892077816810556263823033073167023475220113581299257846874156065518207863514880301053242504639008222880085616933574157773473401107395761868948113880580545845051908508850677952032157305259032434176795901466524178035106208197587123361126514981350695992914104741075800357172972182770515632106861091931971881819517998156390833188427372493159780523162741926842878255543520965741859628124421173236143694444292151824479888706196165399660907429288260830479546907253678868478052342763099808723234042968713541798270704252660641198591917107362520208854214822118681395128788281499893040095057563576403708053943289418087238196209048650515138781797728259619925716065177424056608157276393089482833114053673706583834705717530392552140397499910418198298725173983512570708665847316762540633454468911005199194029548145858145742126970347895726868136126568777031733903954809624943819909120003249737682564491391853304433289174445492911567500502709706607944073590715093265323943803650876509623925595207615570002827193762205727726333632071667884164706643628547405916700917132355680568268812707169450258339973353050850208123321594233453954407675026977335563935330092960394165025849080941277748617794092839824521244804886111408834305268204531470238882192810682168996334099897417593707251957460950705145646481546489899811985834518349278534795559013147617567811021595520658511265567488010424514335628265954157022838751686756945247259750573827441142651444642059826302961613455837692052713780988920655610215385165178383278666089389814579099981326300193118876549840023200237324450274994940376921754958020319909778976786062281384133102086990787817018760298682321402253228065662332232276741814619040718810404163391470234174126769757962497105564131991808557052512897758416431344868839696721433137494387152676624256433468642639556414423526564371152027181645938534515818647926390990166877168678506403078200731733112642004081370118191838705321030451018700718024589722821672422092451513916249668809786279181770034755730394571354588511145091160800388844227731851984064942561423722953259062336924945091808833871178247343609238951821007833267290776566635241221462239889314782814892635301131666025928281224966630824405687192779327249678261391331975788422165133582572623287185235246643210772936532842105151020398290571337751915222550217514903625436285008045027291252477275956096065246190320693230447616706881406814728662332104450528019263853530220739066066609050680100019608091245449794032637679645768652433622530897236662528771230272452465968891265041731176408259779748650370818610032102537759036143435551808597186644920631007984569646031286051104213412990982947167693648449103136346258929414676457211078279308699545483654588042757494037776812773996218068628845117772060800031898562784138255751491592390364914186146060958447240917217276931854310646996692531292488548512577570095047274400605171381989008922582013926872431109874556701676761054001554894132724729706447161156036143500103525538771767107632733536174081096998159692206366954050998058669819813332860170404371934815006199353011387193444413511908642888529178663111332878390420304518188779324812370388194426985389304209709868403388006223054716520563735004099472725285611437783169425572486916286737193480599315590870294692678253068760742533273721317305979781230068652548394890628257085126736018831834440441552022207579682172041460350601914117995507300900866945653888008924864928450411859260799427592533095140907095632424969909215495506400172336166940324065949033027269547194088741663767812447423785673880633064705242064253530528731788109717423696830803422448965521918465998317340675256702300289131530135706072052084031200519653817264299765105768479420576886877659179329584156008090187260814936019970315802956146865087736886843935969646889785287562362093660421634575098303392065634108463860018170782083131777040539657377790215163815477574188305714360308803418233090631901615774271568994045788060082385293045400015383208797236448392151490524379817899322894464919221187443783759563536129871554750929413440690822719234193868292848125874762846428938667142950515649333022525637537409053720008592466969760406706734657419734533761785618216651404668165155406668705776419729454287504737055157612745533624543286286452411349800899438499512030764827389619338304283014640597880043591405557270520537855614762586208233176599053685554974434645247202977648645817096232438422435643495090360844182230149407144652104180475283486389661094022103574063096476693677656317368664781708712033638076484541162588231659586495934948189900680290583609161405506991757498191215149065158181245511728314119739372945114682425709570376857417511191285849403865043945327281453060192818790127181047995156374191206981020542964537051235493910518143737468597278530330209657195738192041533875766702841577522099620052799361794132076650555595914147326621603799314607584540529871065716912977504183157024069677805693826571954520702665661585108676261437349177733917497707305610785029238413681158131845339942385837319619814759410193343083489515893471569310037557473225426593912873745608598907215267529099615243780432753625756070586084933439417591204901700819587532688473863930013429901904520752462208536955398959842845895958620569285933025479471480147577472620828144634773869688310113906161395988368446875696309091591535655896729179339074844563351632717882912049950775051698344198455050562649684791155930588072151267738303360599683532803983147968454489658531314278675035770562249235045181698109588656081277027659285385557010737164073647289212692789882259418445694738792435121930910232265632550959673496465304297799354527141542021102996275473952519428932822449223926605473032430589032136486012663070924916443956241985465462716678619853346218438908825920834543040631792217339969725637663607355904666411287498555516433457254866566996438698022352804067649202875632485410048509262060762966456843109687742325255686177329896111981409995932584490434305081085942745693520680214076158887869068304895711739388226278794452263964041079768870216451254047703014411388130304352015399151098600352804121360147230734327650487630452476515704566530361225919570782153850227291669320232713376540453056688294790471995706626287830721376044961858280163303071327809669489501348743340178753407757528915196026233490741728755811910955938280959210985302479228573118582109355166679798927507815780615106630332019205818325051620871722212668968497165792584506349551283283788703265146149285479575717832188691621926740890789651430316832796482724772189034021558788032029376450655728110388103053343222641574533974282603398620432822607999768280694362986243161218501229376779248078247994164807866605841335580340031359471825168236639154746645719514429944264819567846694246631819991172187958372150740198696107143064871723448409690033504121489094585617207609275022316270698665984885452541465964226729617567762231292727826050547468079432140110312233312672031897625368094785877874685405490446048410658302840007286472820548666450049798447060618459297479023460954684424697635075883170581064894099150645076461295128500780512781969900851612021365651745232660806301896168386402785758340967354651991443315356927180754410743176849889224101455967765264433418808387914580280295000287856705917739412293899199916615400195258036296712763307890933523970922741191828825079443037659031024714612747288417466743193363731451451192767012073813307603107366114262393199598835654273907015834464066369426032458790450243026246604171643880433935243854808323411963156665466070372124024251187882760860642231239935444051742914257218077616744401738785410938393950319593791597610231575348580352415979710109458644286419167554031742189474033583439664588460238733729472579666208502334774142050567650490217282730589266318070478841110699531351855614604201710496618462439260799839108972617652115345442841789398808952439729561031761851149390993540048756121554840550319297393392456319092622644426947293357635366108205270883163542882548556523419108594557880205377314860253875771083679793569548097062683387816885938767130471083451848857083232266760190892361227661126854159310690001142102000931075354811316971433621638268292536156614988308493654961158075872302832657983674619053491403307110620989335674997795048501266731681672238309932827497120602199609623462868607104299406679377380279553424128389646280761071338858348291082641861299517040339906001018534752720984658883200791088261382033652355174532906837620224307043677862139206516509597234474101696920340787189958877994881717472497546763748672245320343706851994609798630934168164799488318715523207286278229556135886253854492939372019680259608420083770774711733540217609063586094588374802985491355425726423784871211006599753069867251538936690960131486865137413787176927659006585930640447598507770470366495597472978139882082700526447505441458866181675830842389093716064645443825403787956434482798369266987162761757213353316940560611248290803256990864688579985441426549258640956610928570223052961250363525052887660617080077110205601952261189045660678306508928762758120224899022712394241575534711536673820319538104465698653469611397909423099306195494126749215936581052528485635481031860882782930050502675382137081792274230672965026436151669283657809417929421225526213608103735271615069775013205074776226901266794903518483158888101667889837105353596662049144718257110386520253916592158672178973515705413189671896578865553032191455002571630406064830617266497862352277464992230756438775993573309998582404963698368433422240293704935878659549277333383461274617007693532016345929554016032268849334063402543247118446794772952912135384812934596397911614860596107008235529276964594421814818819863785604445632484289902425126042975366819288157313294302747724359681957643569183859302052112979083086146403787168849752082080620172542498041781355292878644895281713330763331316879340566438694745899044566727738829870327421934399034213826315450318511386351007811415463414244923807742838968624691287657524120442319561161028700306722233787026536716413333236439370407049694267477035048167153732977862838622682376558133256971305483359632359953425625068129963417348888808608786727003171208554950707352624661436948794796079012294377611844758041377516573239651797720825048958618840355056975875178396297014137236819990643929137430629484626705445896572907065216718016008424029812174957056168791138057779636883296184569594081153877766139342375115171749457062873954566132877853620805909583529475805525550256370113150720037014937296401773974451806919034701879396003313101976034386346517430109924563447889134629545464360222013451490402258528315512184520344297603115791635965043590413367639946955121458880858825645980604579303894277405459918951168633888039629769072178372253780061549254595996365249495672105475083112180784168442566445361396033504413896631822797464692229575678067346940498320410806787722378040471796770231689500276732903331059471192230956216805954747795320013676145537924868218255033458774157640843230732997974360053078771471332845999943755238147471908589980585925653182409285131713202679388371672226611719186752653363930684622974014188586713604946943226686960421603421371566087110449476446899293825739739186964978029509828831378004114639667115539522123855026694262494532300368385244946880438439952807980739258175903493318947645781437776767718780600077567520254153486161733718892482112966662375796181045941352298148271992888329180458806876338277031483719495186133829303100370289528930083175365504777103281546118195812727723974827059941462836900523258624974889384555513630596177686928688330568157015894423276442094085680930904425079645695014246117654056602639667106670497784640781878705686513267419883744125497084909730705154423744737739857801694774113286723021780164028904011764109618102639069596644046555157805363465893573073751661722400706581140867961560844489188547069689424094333638292620843832060001100181041419753360119186366116692459055283596489081231738221903738825559048432796511363663921110614129063265141376193392594531325053152324505051186890193940858342784562397002639517872390364215038407035438273251799695592253550912727279525655764249329782148787846830290082223089261386124125913493538433011482938184241763449193343823651541881731693059917958666040758670137320103285189287203495346771445316280382420915123787103028827590593872192670909697550020535969207421721588449733975184086701507226874498865657998320493852454288176819501220867939963819032611219832818350249019402387390599526156986527511266749996207881542657973317887384759296337222829540958654005709348431840277912602679994511941184672523431248627030488055619586061763117424142875579755252621410516322408803187741839649604479385284996625790486898342453847295818164731334101173418650570415287401998033464889496043302485983663013836077234716435503605393890273777750491870596173377363926738417979950672391826483677834133583084198850347113256110840414705686784832490970204910940033547639910395971411506507121457562556012827855197074699335810095918423358244160282070071382211377674367511863496148971979599050794703943484166101336888914607915946478943789219857601521739217402473360612076729393799962239813853902285393680476321737596815194191611358957858276390468398384813375379504510088310551173129899095968056749561026173775805051409101484173249315936460025412224933446362373191318464454567127371912047645168405305462713665950913143570209765125467000356259430816128503378811488598549758735406417817029653436240482741014402906886741091375119828793445845678243114204966930556734061637694009621569328022616491907790889830899831182178147797989199861147586507664287291729242958381781210964041324094692150152925490425895944651540945633522009304769877741342571440053239960279762559967391295973250298441888036539509278645765869611226856450289213453311013903572341550759712950518571466589797745832515054515810441671274415628335953135040528543652291433531972146190096447753887631298637243428470698964725530146302386562004638157962087642566844907176430756351864511297877775992263641925649258531639592097039593582833049520770944575975508986211275994404041864554169787836412025956669287485502896059404356830141560831039925665662451862230836430533707341339273956683397780076812030044748248565764181227425055790265042800236959658580796264434648346709878269659040677237206877125134720787132271073922684301379310966710769094623025522462589701058093951636101807072412945850631909221358525042242242885420840965310143328926396617857514964552897341462938907544373681497409612808843006536548821617031444086799222668955212203149979381997349993873613078645698540720881454577321658025647100521726837855015922671994321440242464794434685112155948068963332422270446151795766314967464636285645580666344659621835939377111647150132927610139191966942508671487437138431911029090782877878921003543468885978844655998106281423642347758955086271068348979480476715762350583643175289474492377269864358971031535068968860021755572046604068320183677276770891461341286808463300468743779513285154944002057075910719955366169678572366909707220676363267366044697230524782661581874473326085677657423538406786483792580278918804303745841937853745604540102652713755581893736751824866341431721683562616265984250669000120748747940698867521469995897580694127273850438750678838941885883460030345605973732423471623642650440336251900794615404148547369482267837562084104735975939841025481274825374959248221459805766416898334620085663177674662373099615763116556366344576931625064473173934028540201290298730856944107422818300687946003079408647640231794970960228928467448915872071987109940993579533328131333483589624718537966586175157871368920875477436447466560390654215759413167711464544044367833779354025670903324175370947144523718804869119897506822997542047969730828634356256478788447343760962535787278039483119088588568894764011743597641857160978488356650922363815207379598414909865259896693283882683385674818162416773011320538205846026275044956394130472391950930233555230188923166830018875434860947901464775097360891074057221655194303465675868912977498710751078826199434653396452932717349932113027036086223499400147668955656595782359679305093102976653075576748568696283667254284416565013802211675492560106418674674890173257791209553602686125489988121756200164381005873547302565398876610886458472106405610210116866233464353651062806500967961749073323254814356906941074873900448076560039103571264983084523924166540867420317924805233856954285611624324641335100063982429244126303497610237908913172904864080299501943478921924580952501592191124155663786923915262699700994077220083621388355119785177666962616973436342159186549333699943005648819214229215122399639919351030130005339787747067505578486227845330368353434316578406129151316208476384883790796571164277549450555393671052881106117099100617278562666994326714437198018693836311266297587049128475164826750020114227957107128781253677928263789595373733843993164694878594487522804971808959027565070214821064178286430335437779031677819643589236208437714550936917749719776113292763791592797450606067801776641503479429767044311390658900566077417117449633733580470565827053350028078345042646782886775983437498829520436509528527326637753576876392969401751242463313357644289890446043618546014037669044975496668765253110758583110827807579299911678877724616440377787117754460089269833686051786412977815342954482809588144835799582592623848215852230194697743974167997190119988464353870106434309325715675099734278047561650440993129022254298894223603011896001966646401604746287177571738405800123061016302787846686225503097047453166409300166519565507313631159464767291933668447746338512513037840694373394293355272830969781436605311118672777872520963750725780464914661188508144283599617785378012674160462217672037122777233441317628580237599201046898155251838667868280581320091176482888617613833641137446203343025057482608982196243575684562222215068840976224878107920282868063778132321934997094612522266898748613304687719710425448491021817104718364904828797066767253936438627441254032334309981735464270668962088522146561560344961900487913642599091172110408666647280347009408345788260227349631937203747725256571473007735452590725492809049635381311349814369808783999175193161514299820089913972460450227715585706977003907587549288236759072855738376331219023896690391685813884637474269484342122717710457994979303363836205637666768738855236027347954196627201975035119318539883658865540231251566530013544968162567478556014887187403028441601376795882574132529404856917868777325649313190208067270044476598410701049698539185698425597533018411816592380343964220566922975494851441808241792342164999411081656176266700856650647490601051088254285676882196819644127895667896326895436218653792388426908840284051031116075071159284974877634474322621194941635599116730369105935842730947130682142928649241948055312279826484228523509073964899631091899909134577591276710444798912924317105459612745418247550052652044550578877439556371101716086087382504083383069462559579952927436597230913145475346027543788093266244190542656455791543882791432963311764313696724677281300090185146792996295853313756774270213157060651564828498139636786743429106896252687872084338782378865491785583443864329045336525123025227752576664360391134148205751843014096106138621480588764773246920620509867798836623501681745435792044690327694576178280309823319741802665865416876982945964213757471831869346564274994980548962187029195895233156393605193507644985653738100606490769867745924960096546977661391394873634366814494694486198974627178683675580993679926915241048580209442549017069565959153150813012546287956867625011088337811764656836202908270950580734339012153207592046528702120493805048821091325274484392490630757637028080550123132735204347341938712112415263553351742721157875504681628917536052892441124557245452573967116145838414614839528931632571851616019376866189415158856345580126009614823783010709857425553797783308776055298489372074202031340509838417165999781257324951346836234020382977618687168602395685763543734298322287768482072018855684695713911329949211098786075761536958227527640188450304774585641292132679299001691440741201445773642517818107176204811784979454007267664290134993310426202386726517666570772462230020538554923569124390527405757028329416190849938931366493267589181109256519737815114879765247100212966555892436949168338965149743723998724971821904734428770402782746253030493784025353309555408794436755980395816974315903709913014087729780570323833786299192795100021309046275505612664936489276902413534124321939561128996764415133943943982258600231452179656015936737234555101714550878166939554576986603903184848997663178350903342312346829813892530982215353217454759599253674762622298372925121252395139815831997099528914035479860440433471890210616633672598985520250369368018495334249146619990782211693097507565258431250857658782962604940359315776894460495154520654313888643989648761393548100818123287652014895004278299383680120286546985215121101825143463436688278760812855299776809278932930720831547487685932798950555521553852501218372933737997689653701142678547002175065308892312979777957356723017123923164468891233702105693884419032833725297469137004345779357666503367949301489548669528809592361203298882945575558723031566275307908791243019275746542926861149510251122093836805257464740579047694767726037986135632047590075488489382713161876528951422410956639970757574542542680840020533807772481673902249815137061622345577770447694849486047449640573920934577579882797165763392496925448363966799008735714403500883546714594804363667677383824361374339277452016206309019566960227724295902473885595587021901814636246763377536813257016603477733002476179557140953226428544122080559911855612694759961250453414067515721923008766168300454614371623866787198313945105407344200710585903248169831911972579395485235479319792078989051698839842866760027508241674841034414673285821313502835568472842533622526407302267955039636992150469179979320851688141564700037362135792460890522764999487334286183168757956840600121007662196516434882320747757307609864440382097693167505262745208450790171383068913954061388187427378249918094037098480210098336652382612192196851678247512231283608999809414639656793161783251017129596038995521375236415465636110429727355301724032406981813057438999312754915957462108761899171826129580200184915574380809110829058561515527952470198403360134804823765737891022092293029429490527544716111137112202014079025608386155996563805137628048435402332942518105194500841893136668581697973818444140545020947324422608738466949262453861650467401578177409166538018825326085284635079177026943853567714205113110098308388818824959297121277914541499346595776846357800450377248463994668436508379864332840027807401618698011573631738250833137506036455796425834457029604647540988998401985337184991715105461838603172147525763815504568469430529915481757908881971054377316126003738653856048400037054519519338952931429677277651703528607812591270059206816121539807921274481319192890795382819493227728859109473139974499831248266209934256743146196556421152895223593031376599755242036078766000159877021741998378188346329881071787816757259996445154722951393786342335722248409663245468830526389748640089348145392265363862891009679037772597766469527984028920263339139860328716515741024195551216788676276633910401123618240718796077312547024800712275146224505268832275775059483249515623216476864246917555748628598521487370386444369481303489061197300657914730262934514172724571960951851501173369342463097313739534674534809389779754514599903628149678912003480965046450871056013309329891838405494545427898245513346907847365530708855516245401335619098697187702318792203242154320437012087450089443904838866910840328405248846563418169516538471247372213538014226831574718696908803115787309372495474674306549627719396150825316298226574671830303665317778416083322189694195972166192776694505915548202027190657335927800995174941256544578063941974006750424889425796268818605439540839543300299003243342834999029117540379935510607068199005485416426389982974830124312716890581396633397318978263108350861860049979888292199577852743380200630217163852239672408910971400351434640793839399977533226649774651908291986481684514007054587286107237971805043380395509081803424913507008443704164970797792919052397110434627262649670810891627121722401734862931775508158291337377221659722528353488961133968094837585763647909032854742290744688011270878797624838766817394336016538961056548990888014638740250263886460023723128293933421107104815531477338625455385880077275157924066994640750645040815038189529915468687382947252800567138690884532663763521634770035711052869548256391517698431255282218416631482560072184653628151291964573389070104727559572384709858228712760843034016126461555135611860704344001252834643650304015552496158800884429639683422362254649300784088102855455343631330307373417613976291565120008154272638059653118063204608556397101337616108563556185555468624648911672311071536458393270196638546879255227971002799525462363080108812434479775976853076696585429259239735835012922993632000271524353916701604970393871873996668958598541683337331252974436369731238030508727327931059675886832937871818237527385378817687938394130328995045875413593704009482541852859467975360337108918642111878504507518923063414981013244519157883477447625851470585936202056803427495770155902832205705580730429475725638598175806554309586939791856937476366859714516937058673630227718231962032400644133060048289219288103772747195688861545890186873644931109393272865939662825310849802604479365584592111055099441589827654730623541926722072694528610330499314266546495696506065899481758800396505275338771070038854548597854055455170291831235139889671319632447166933403690796119588220103266525754672664232260954972599234953558585795990735454630548065381438474715408264870089561434268828189882527866649437393999295632430731009378221326132025219401165048121745890865171958337187920817434827717291665917017736715711631564950868106336824035996776967511152023883198731250017782118541384387499730407413838154352826113748350826047713679262791367177929008272065347319284540498861256927230633078350926287217167555615380731850688912713875427736726669948881637401929441472563419890969643735277132733053822804766208719094306666122380587619197886828110265323509935537664427084488664043215428762153353661906292703189678645964422685969711154165144470353621662391046808649108221713231182252223797976767671653155099405934913440391935396471986723897268766012394440797265764209310994706791939337756572102210802301447899511510543696171840221717927244292697247963831278229196623870971828284240349389005714653921499552469316983859534762205615826939026793239527090607240536901906734035164010048967794974868518153292810604546667815242391751145286785374719256799966583074320523312635556860628639984857698969477634924703414592212753329520917344876766059477032958937922853675961864988823962062291925081534700418676501475711142828191264444585668939390252557606903915347148943386293432476557664227169788052640338894667788436516756302164709361200352890429542932467150963664425399866123044262032211177578062872656067823170565892754886290250524060687982521560977366057622654655937089575438654168787611781130659281763144391795698889739479033335337383621308068571628260669017050611591293114991770651672316318295553821486598930673474774529551361585846713494681562748441479515627940258609765419082461434839994597443301716626583007510471805345691234628951692639433132615457785947710752653658991504501095707029780877671707534890354041448582910569625070851251333362685218802840175837927668541305678195386111581983368802265453814193049770406326005940265347593018080894091378678999293093451274521256870766895601089124270273654489994797641480911834976198399338729429583636349640792029277333377508414902835526335204239154958753550790351724857941897545218592141279963039773511759083394225030012894255291121405294599917036730900314672721781969166760110856584767427184719155137800799657182977487189105875270189585339400948924319750986805498933308204271522201577921410761753115542242640591281490004827918677078841665444770911226480657300923403301314506898128093173072876527492628689412880143560735963536214436032119485895045682483425810972040376442355602342677072254699703083950443546669902580152470484496323315553299353439869580834709543113433539605138097371591847889090643340725011233147950438053588328876402007722735999926061950090011868987913136481766083830394575853582861614937282258892736218926111311540475175201527542309047496072835384396133562496223834012035294905001019419053576216102127945442145626232797133595033093736625170672599512324215767334075046313183321783981351762904068767728611098316851285039391554086275005007806729008689192503214913836216358313690798918487045888980398366201193908439684344251311467050447913654077368654112392780861936812702238894381179149661781257885927759820953334297751352091679233315084833173987481082595638193261887481593118667503861742891778252031370715004905121322643582979139355772784752169818673141086909593179328598029308928667542551673923920111614819457485887779715764771338927696369036230373893469654919727801265612994380185116802120449632445434345062295645278848476991286134737620383300381320975327578713873557694472133602547079487478139246047135244415733337553398197105211934659199934311122289180453618390760990410721207876563859459471334109840493021259126156423755080792063170703928812106876383095804990718434979155915109253440866248050342603997616152749471430195840256201026640938502406448895978675319630756556977706042427829778565288552225745713197941549282139947010767679971783144305418445193172792911463340435635617875889011601637004555376404179304518031507497558734625663406459025646726493421822737148090863343701806929706149985323770405762003067875720573718632343675024188969126507679681884230775594925642401469911061793118833956659954309223365252474743967591221768434625229086778679516944470405673145838061462846702724786557681304159963645866850305987857108869569383109969383585042389231146886570484298272952361965012452805452968438850577829737559310345062509111261566334348581910427931942933033981367825087244455386347447235009924413140195645366930640674203555334201435701922767538056479951726251764845476783551278498033658015385174591120599090991599509324688250196640535383492511862199233452638802631878896504915592421209810915773630957841607245716758521819700814619649981490653929152090584730215981345926131750035154123546333413822647623745627689992001580528007446166174833554502826859267688128532635906864956561116500245161491041356000863562023735706469725479436440959145898005833786882073252362371701953054183670299760611522575980474110522337265313656085480245781377658048050693211274044017691871515671632782536961019235326308168493684079066177092141347977213996580338446392312091445501460898604951178485105984140721774938257279282089449277329580744942863670715381682934917822879032078716964689759986343445436631519061222496573653560050619666044071169212715920412547473780213340042354716321054962346126752639896245456464043213231151354433318987663659939098743792989658386804999800344492644251079009085478004410331463719596643431118758274178511329677921745771588189039462585560693583616353485492363034101593627602783111326403947710128884136205720135104953937525835523662451961931397149799909689708776874200969166417395412467910482768092656324533531776451432724578266832425713795657941413632149908274237857639423905218879821046424717466406126663859506673611766151032466657478877834832768547462728408232464721093674289900498832066523838962591108813887228573026642311929392829862676233956315589921568989998006867477676237658020476512049879076564105417565800794230391544262513047993783511796242139216345246964693592913058767226614879048302253688230106269336001194675698168721674416934021036309036960360442989676008256433100002260194186911006395070358688621873525106108072901505402260584142914899565204632227570872675795501405414327278441617716057875955576557093564100606065690348465802898752041411983383931314598994257447973820151894798112716588289328089349825028159226422880141096364135443208329607448107033153616061282389426410125632614583899745381334824890548248427026318975848819792748754752906424318912991897499141139324517637120034437992860856193243435154463443081395302048570827972826816851926824659743201058163322108136755601784467051111834258455297191255021695457327707329632353655434626188500469237908097770779283761395275901626042812186669587644569742420401768532300579897930968625547224296063212945446482071014897148313889609081880942869743306359767061243675651641098010890545278101176849218398656039707049292859280007175125903210859541923226665822404624152133959292039277949113485461761476807481626986481779598448526004844293706043595242879198183866208028304928152525294332329824405676826593872044750668273038295871895796218495505291478364377571684686504556523980969868978962872805122071485092065499594254575353296515797574280024769821021507331379689416057092921760975176399882141859529000148311618644551234308583623736404531533353727539643788287257347533544359554542640321557634231178985838293959679663479959307041671465217534676167832080376172462950913659187705759539068988542398651553757414481612957542379315999456929915818791519070408601488728261560359693132426692135424519383619096969539630023583046555159243168845379679117267945810334813646009371905211058064950247122066675610894637695021151953893898731948055833273853938456639730426709893396964217056959173632678902129139720619105692205853639789423219919478884100223034251224985294823077764491855428454111056651925278365158097455866075359743665630391013560066941625749742206571505712824095499519769655279755902960322829832898193824469090049985045573840460660502570474334341567509147644686425649395320510591448182984103962491214868719204401644833843260953671956461084102032065922904658122393829471836341044905073922631132265160062168667044469463125817991767718986407543227635406097454690609357678701761720304337537403692514926115834353093306029719257305449141925159914853208813855321079032943421136851619642105481447307707513169939274817764445904885255224080764014875609469807686951115078024553592316506263849787323182082342464827872652622850258920911743713674604724861916421208362244157601332899415987312635515954032102620706557230485933093059102461058211271845275360798169140368289064448525669412364547735134800370935505181504605294243148787901539174364162634967177163958736622999007867634359927656521566943932608410619730681881863735540051357685450393256190424751168209612729540885909844937977361898931522585358720067072048086324858435024485197978200830606176929270880078854314478811570581500409809167431970748667429415561612429972934409897682186713854262751626221690108026807683019412146595414286026653492862394526932629208861653362905439980479633284080957675018920238100868196189694127671422059515679698126046198102023399045045173524978677264165304359156745016454067780161760400103501618691791340101530895053482242536084385614180293095571406444487215674814710240089893695495496446150331682923915742234577698755882095339000739418743753922953686540912253022905607536577615621900985974561954827074442383139665239124922378602155784147000094409006548589514321213672024309298463754957834243120920217118386483209955745470182879698125876487584283579649700083222726693655972657699288772829190183718394422874746352084064841213641932066940690562825017805895698047990904767463640289697335799418707485230621627964475505580495626286551201218790225390711409646121559475041076284066372063883217780690926133158478699448963603743458145246009880063843654086363031147966865034836497582943349806872734763949981893846597251917663251082730365132776945225961796267392976915723286286952140217882225366383269216397929779219797218189694676855482139689078682102073507704455994301974796747481905860842459305984208112727801987640913066605269361847372049825560818396894904234581776716182988767685394756936588396655961439608405387679858296790892291714694547353127172266701441517898512348382420300739031861948928198643561847281435959289270512287503233647055262484616100133410411446300248237908629465320611512599235198009053373047937247446795363707367327543014629402665698070823440706015131223893109760038310473872393852385607688946241921862515091823429590249924157264486348384080335561118102404896419476705806006675094570901190459081633978298027272260004567584626532175355105881971130481374954568978169570910636705743316706183577995337541959007257708728158096931131439291836137391819366162366113733648888301159308345754474090908751188687322621786562734311982621969101910658911880381000353061131292285551407518536376450596321295143264318241000152723811305814627579909163422160577193707737979133597597185997764327391654203161943494955892536462289175887160978115171062500643045503038758477640890803094041534324797066743349285999494024563738236004100586639235081927176168648600823504840336736849197776836276705932164300253742371881342833248435201727574304485279531008691108560832782429652598177364049483213620131047509693601256635596827629269587907631242232088184240536683138071329260554685623509438495318361054387677057690846189110233869377666697260748373469455268064161302774551684396008064071745858120245081210284907511981973961915922965744995415409481880606676120971025241747954672732549926048040926397726323455507912466847369815256555646092682761954481253183162184369766519949803996418281314867675260252195879121777396480216405458447690263017648425374456809517321234646499976210235806291926005551992973951014889828799898072394168581379234168285432782308330123580089883110623345597444460999980165864260268253642674961600130694297451891509024517578911180730117402254597926422644524012652629863238968219311793712639813135361144563301742338449502031232542524859140943409408214856233892107940113888209550045798855138367108742283820147979068311488574395353843853902863288368102920094917100632475534050650563651827699375111971135398939820350665246724455467624270788579531939776613636127236042558584317658131352535994963744351186678786166539470813801478542987993268907563534446329574685444078127543352465389125293596737517374536968262245067640313036016864629036823960056240529037256557951294282383275396208955144511750248276571033645415031119428618825455925688366599794556191128504570952029606653989604354133507762332405244215180785003049906640497399669876549734429392476442040219906209595958443424322541312925465948902229294667150357890382887708828328458270042234696787286817422998167480075063515167397220169192886825024460153264724608683500345565685161081336903757929684798923322651548181732882339667936157044892566510486409229806251430171292801156740771042394513351270703878435499426719375948219711229933079578213954818974021848576874939925318139820468954352039455746573263008391795427938672996083787117689739656885845865426312255658410626151177207459451738815103607014063670001946529068102318152662831157378536519858273364019405283018058301884600750377359147571094762922147428939211375700961347636284608012189145303828581624193718247315029110758693289203705949212870285377080601651293404468088563881145768126083033472938970913793668588118452454115733286572839102254230407828822106289403647837895443547711482990786767839905973136833462611517640483077755211940807498686584307986421736971079238533355706787043665828339325599846150781614599760712368832549664753694895929509857170767763888271931329403180274882461836360321946713291773279734529547767890645919320104846577349426281822775328922464571961234230840378243138279359666600973952723217693006680627321777936539911445294447628155946160767616480117482961718540010752946708109271550166513980964428083952032632769233570429808226676310900591606360157911625927274746563678521598415262118689387643627212730814557482782249443810126111456939750444690898396443232821328081748927724450169421591687405285666903048305705880319579080335788488377206482199938465969272186661010951576699217448886415479510596446353664231077595379991155882010335271586593888912695825037420368686897081040318881582198164184752154295246432426780795623299994517697591271244966536453812625281432517646879628642497280520176125372756086100653147180793344601575497947797598180753553423474438512817987007670801027278266579275006256580324592058842603508254490618857215351238539200372428506289920850742079522721234646618739298126418957138361862464132537585963158774954471605844277083605859436557786648817478681737973627219133604600450085342061278068244700730507505687282425215047185902209621335748710342092850934654908173276715162082956254635977385575487575118680050543911354858122233782811457761186700064578549652259303561677009498694744656189212073649265981513823192185739396047883698293270267479923518126387803064304196124355094615429076438564901256424081576334152194682799733173495374686356644315186081326479958734949112037970313118852879738849816879051573571992038195910866843090474476459137616799361286922653939062403820714082011317175568902343869121279964366134778895690308207704427149345485110619269394222028651625840696860996575408620682726544236038281604597518998791274889429723728516546829141160600835362254149136237266725505230048403716466814092365027341434272147191251031373759720780561933656553594972535337583091959274333510844913420705798382153167383198985528432759396711608048606063901032850831669874534222532366479198740858035501450399555130877692989229815879863178939161597639492373977621246915181913186223869687614604575351062762125943290766151557607388756835549765261523317623356002706200791311064583875236238328381255599961307630564322428892894217644116557867304826124023485877584431953492155083457232042681457489654286900986063769062808552731366291007372640189022616008262221068765075312428845779708203813894031828533206114072511324135122327048897031452774910019479139376807423044112537789705465278890324739303388578047749992798126929852578547963907987731840857751600517869732608043532173217019961871180170252736904466783312236155671561905782635407784447679082747895270011877256723358962850421143698535317625273513497829792527304902823950346566211715605453019807734682435238923132601083718172141277078364199795209725009292747741861558162488362382980741159820377888853651572112988238043106657436530644224325385517303026177721116193324893168502879349756746669765609805333941002208702760930865231379052025373020490203051055820753058639279697255493145472712052986138747073942108122473381556495151275817099542322659766950591725344578987290487013483855279123497810084340070016210983996970583330163034234313055800040381658010619094057993948613062934855016389944404778212538910719522986046325819426651104961567285378533648339868571138611780522309616610727921182155432298252553313481917292505795612422284886913579892434204405576750698172732500977185846314379977340073572837549596742166814914468086793583433196882427602314458255927712592786271335270877936144885589056356081674679668394444477837559442646227745766181924322796073428653431443571603619862443211897479248700610049108877251753666598466054011723464982875297512427743826723999702153985791567477931224967675408708534182785282059766472195764703324484642911163041490392681204232331485695398799617976604149295655220049519511714487398969062207220010794821689818237071194250720182740655028493526753041293781237014981246102150685082801165534969243157175540734593964597304874737786085055029076957463021465936920673976530209564612711363190193527413759329147666430775643084544880072140324634316914649431619086537215982065481997557344160871737633259790315700571748575854303779028319882626834984198234758686112966538402808281840760255215463701708329519244168888907368803794093705648325896068008406185104481577583342429189092274991444345938925343752173549993738841546069412083943990360279421368866730870331853724803178397368908304452567786156861485279714805672955514251772922782614867030885648622135674548000569580357154284540644007990374895196973742916468970840379423404584761474783701835335636047579817535018339280321410164848372483695122400798968542546041747493604200985940800307810596936327646636643580163257624437183413835169256074068352742149947396902182094662340049875320997015004548363636383781011480978081910557535155710763601789106237693965473808884082022392879491886603380401776275234491495478317079920069850998855101040405770212004462308300914954684646422683436686923779740161761607530892962494187251780862115101111669856370799325197516074585681893032841483463983103378504426209426643855206668624087876004878197101276751660080634594732145504527385171954488647021350423151817672473471146503732095435389464619999564245112090274638794231779428650553370542164998145450845138227503631244866128768977139184818478608886819835383490017522508702153671915217259274095047032981550986391721273821807764888256521808174419544810568077241594164146827651697991992904447520803278663487570070042194652884075287268274199658426432606033950172353851398090495383537678000870024244545235922510734794006160665287356456221112774356992852800259377079101047150675689365179327876145810629615063478998220568872075806971442263129712719288155374884704585530943243117534328584743566433310449064586914695899362403840900756376490964748679403769174949834493578300010673218383270227852018314081872250677531016153866557561440112209885361094188631500705583506034290177868251923422241430430201010236085064600830883881696066566040581922017083236229276161455684681093603237466895803864651219967509599490599425697685441655498404035073455898130853816118286157819944760161314863498538866434155739486523371615808730002984248167447560142524819947282719516028695367707922704792801723526646309391423658115273949899609755327925627176054507952220670096765381839680426451810146689425869253565883343609467745801432291709817751358890905759237322760742356208494213294633382204154279838582049266316213583531328288864794724911418499231701210164386826883129420584356777848459039612053726864626968462514241475287239193363184278447032124781400554814731609427507054116808586611749577123154173576674141337910637645841553588822134122508810595061290577748084767113552792418482145093620963202798290224708586240723676594872260384129567456624394912847100958176462639663778638023071748754220509483855454905807843791144032778781481103275154806768866515207007629924011681505357483520272806185467781029253166226032221009578885713169186438607563508227458615787753407616310423696417112001926226873801617638038142154271943860281988836207775456854868506027702371291305572106295838812476908554622786578192508948376418531332156219926113226990176975194692164264405299471373687932787930648382370978559889320456521399183737937236647585832171867704147008365403543884237558944674270694424814940907873170316922720013788143901882266661976345401796884436658305865025510195764447318846534316415547999675804354161453569489610541734064619738444322547521232005841995017670572501765225062866363694625369829288113318950649238694909670465319942760295767597822490700327108760272990627599291113386380322468818849880895184582431557989906778184891168430292553070693489132237919156763305935908412656584077932400392443440532368956407861017848950395647248844835342366868440704898312647331524997277803058609020925905604941083472662636891553365151090377703821535297356860380547073790903848541510869740301654713080351303179158175361506526208692904961416971383283032649304326171679656856583505067536720549188456872648720182864425968638115263118552819536227307542877503069451730334879493715190273238255695105001636792545920831687186195971187236509806281075197219670583035799511246351049182257681305801059162675586421267752744756338404597720393813522365183165915461000654666916309853846431008586218533294740253856629927448111300673896515623947738510115846772753939973777748701832033821892981462360837561710311014449110565654642640400538591198159303435966177638011400817647503859221207846983796983901320430739832944295134517162514490711658874841518125364373736878436300760556358097887673705521963813522857207400451899481664177132162145804024957216523330749651835459936901000710619088964916986326843494091335093419614119116590423262720933068689071573576616588504086405041460426470591669534468757353740932955722768922790355452296513637840955308057911887011057645473965790850221113091416660060153690965802611589054120230286567582907198300909258974155205191557604819647891218486634073546581365531937939802049861240391779026749875029504876685673905674783602379096160818279231031003837382778866160243246700576065997570177632511611098543473604131454397588968768351032939334487770520424564580454826996682905463054083400466753682121415121932087451628174596539864508263225359432210999090668260692834875744466472237852673659412045773199331533940981645023712068636391416034326621633770046798371162936002407017370332101585636197863647426567233488255663839254321172223616127308731197505661344015757345545933057592659520950206769187033801862624683629582207323541408297609774682515271854811938949317893815375095590452247707931506101830486436576218865867904454988634403604722367622272891408904766917687230994707649679890690253001510087833759672963157748412780018712099286787776970024818263037854897176294458940138699133184923100120877777457991837984250275754702945130090292957019731481200042947544229233144450480282874161719033888359112551073389296294608051682249872417030607268513691637716456472511160545616517548973939043204638886020516481570597667421443166598153672921856073996697402974028841922867211879875662986845221019693154248782285245536504440872392840028075344945353374164192141437802360941598942070055522954517017279788209237259316591961626920998260386550426042018515700186637878193244983083578662442097176816860408706536252268621134467378504323964780921040640040145275461098093968546456559655807289069916661708217521922769599231760606420674804211180785217174147746180189973254080105166458586839164264227391443273292548596148038718819670742366663712931366941485025372060177742987015832794895311616686109272468976704651690549302341100574729535237680066852046386857543435204635294289123604293091480810875512395505850232702789221649879686563942303769910026110484926166545797624102962785406540954110107368603929448732754345354265370408129644951008764656904271131796913978441773267801229466585453409028304427810202171901306341934875173321690508050209067304168325137248505864056049265847322599242679632575924895801310025544000346166042013395405110240523072638265681232237016559779556439837905585041682219373257912402594470893952737771745808556140455839080901318158815643192889741936069500859718600758173830633669497817748836435841643648004287339265017878025253408371990382588119435212080900377985608145937639903365015344602182484750465611824989006343527930200781406868917493782722524382188125923065637475876425724734802610829424564956899297947683965096969317998772833355402990339096880276486219395283258573187184238941227077004802235236895576474405464597457141830715996931439656503258455483101793326369315325781576123484698477038298542688427477594271756655349573680478007997835814494969430712434171786099769617466002137160774351055048559322560837105494001567230612011383712142499275352364083093042141610662102973213456719785669880982285526437617281859933739995833276410455956375077642955523402675626128243443377433885900085913494910741881558219532563558257900149964427238822645830739206712298385059787997457477699208292805723923379358416910121657959811567464379053187119919502090144137571581492398902913588078747087484275094228040708049662652157703932885040490206447550235491857576650457779044965248026625161702925963800434721411969138162089595490627754160380071279762352857491610043579085385678481309054310830560863837370381500064451307887958457383633640849501858275566525725459044432276094439462037404761224872610854680202903109904914037112285062009528930225156796364616809863930052554939745457300451608859544784768613480891397094062057247625249655365900369902179618889557017826273681028815598705173931672563489964661131641778140286678013499257914609948908173765984935283902032543558934848172546969822037947990165763551423639138783362098841476747408056490374695410242038322256750776714255050102688872493798149455203920406421524719648835854766963826472378578932780349879262461584111087169162121989084251408079459560898766808431854807660827606732425867236266155914331739631567578593193283787784661158749237502731517115985734013207548156605788023622647572562948235893948996570518446051996215854702283560897956781261890572506122069634228352604226593085380982869013348748512260005911944344756337547962080803768435430169672107197547187803425250410732189735562521700853277518696154064411127335060911412733360569103719971225432349479577905247219789070401870371447118961382434589662586578896641202398120020188671574602879838531736901200276036824046536022103936813887216624228823000762177602846587314890073547492917323753742051851822644127700890875621122079408102246132648013573039889074859947109125107040926695365478567268636107249258818718716396877362748103205724577369755770514183604368595251448722295313741772954344436931058832196519693361795038197587515509794731616646966618669739059429118371763600836819918072028409386397298663515980816966930919842799230548856472374208759025892638345657130012859598837591079870487702292248732308879234461339268710859616525542548483192405316811624428723016145738918374448727786961054060542067992266091878560622769616071259877115623610686085308566191281715902461461855367794893797225377990532003512858974698879747452047939004564621397787549107533924668555134070769198159455268217098192324070428730535401314747431804580914110647998412907936724260164691103075934495646569648597376196808057921978975484995032417063605172332158582897038375177695547307108286002596853710685664922516238643358305687922279922272290620353311506584511364758110349310979274122911463935868444420817940382719299191832862892779645513556534560642344567718062797386899663497409780151387235997072432201015470275358208764345498811039254097019455401170044323082775493229696942449794220547351450522345834567363732997074205811590291148835778437027731881209453765036959089216298708020955087276660706174144914554680914789790515566368612030021389797096846611584383501802047497623481039817693383881045621806615398380572021882503424291234508344359834154632444927255567647453075948420658422648108995755918886971874832753309242799895999377057670378713636328816378441442793125410467330281608792734367845891274641704641437604225844156617583624974445963150230772053602522174421442544895687421954589652308701471230192848479506329969933882241738231023583347458393342140728216552365179809321252754745732798567602954346210214432009040413014449417719869934243310265319471572756392380189820064800883071599868424455547776263380683755033833220294601318415518937033259234494904292822124395475601530125095923757110920618585863476287086906321000401054828309880820349730242134882604494100884926068694639532498705432623133895720644107564517904662963758024976713223054678520589554431563667617413292860608089639493448558263953390681984425329447968266919552377446513408686457544637033860769860415901597245071204440608619022549790316085401961038711181099068911438214802620964804966920922470634779387420797451049728348478788766920137788211530701474761716340500216936972208196955602307053439984259541428781232902227076525518347539816061830056336198025199846260064500271890135276421419708250063133876518781181769712717391163819685287299676812478495999373691838881226641517344839256529150096058291131363550397388772259165786670007773087938444942344564431715632914746240128179517736806503613079916886457094519885229199644263561911756846258646934027038012525629712307649930002582899067642440211571691149972463313519091129867368246014973049494527651642922803433105264803471837317128345897270219778460202081196932458430375937235198168659415720081042346928865676091862480672428864842831182164174370502096295504543946079307631619991918918976717131947865516922637565138584110167796145382391018989074070595738698565583336480826693218038109578962849393671022749200612440672767513922609052319591693143334487644302215657430759713678111208746603456952080222109527825347070541836490043340025315027693192225159369318483788898999812599314292927866653571215920192554971359424770418501932182148295004151163337393611156896666782162419309745308484902782695355344923202532848595688406179943060617208250251401354220361706669908293444182375448711508595068979045737206324264180481980088461715578179620004813134278185613188357973384995598608454726743397786881136854469254825884765405889313267713743479571178144960820253748833165115342043613432855400539417197690972157980327926294814198943787030128142454217137303111383606001437317978726367690607104968376909489191552188196208886773520510068038952532885314300743972368264717938495134288788905169578498444188045937737586971626765461645861546262416584185064567980673984528504179306745141471418137143991748371891458954413986496106435452584041043141108851882338328345056283894260775398380328049916764805199497966993205012283640762300158167352893434534232700388304070525114989450234242720272015821585738386203627318579283580664731874755878173029150702099299384297629844370844476569374569530989586248661223775815021029811049188316828020066455952715284398869915804859110307997404874222240389948062737603802217382410780961985390362454780359991793529076777440686157183969019060823604599415618154231689823896446581440864286876643745501206382693018007873306622611953343133712688866392128713230767872658956029926228409559309797866560312323332211283319494197121337377052051833716076740278285968084493148267459537243168034527789022579886832639737820142001251547710103853175694638551837326668079609572093426983973389428947278620759185783533397650446311079636308332928645103068643385437840977825522678028695228466315555315890845931219831806898166439656890888082920494448926946340558036525183161260797166158108903753736073304062135085455044572112054835606065351377345953814262670806901908610216093959665667711150214104919536544244893580159080348624970308839276524202788759636278473080731058910561564443596327456803069201970772848417530254448222782901443616552669232295018854618334073725844192148380917483948138640620152058890092026308023094275237360457931599055533388629526320384188753402989657159793762084157516006367390533882841521870426848219958096877459300245059646635695130087163766261090245445276315679670908392736870291751439418659452674082779236118237726511615537676432334557118199672694944358407032986948079789426043319328382550780565291681859932041245579012039382650694724996259444802196335983457405551770662846636511452705831366795049522091060554648617775174268035131849021262726562367194974766622243600742394874102713536338968776286757764455638686447663076792758929904806292864769983744778476644442083460706512036572272942299730649173761224512814935754518317319055666687326798699301395587712361498356280386703411488546646435307679762314538394849333239970062798761721779175910088186057195005786029836092996281560113245784397429082255383442088313770065414119215490880866858232271057624609656318299243679943361237433638666721903527264775149262113185243497825816912957440810704404266237502200950595581414865518700652400622510573978774557722093836716997867804634238935986431790527233713053695583275416577470156717165152455615066865738847771488496085314270784752521075820051656856510643634412451875921179230348183372663927036770098293185853208874815582767366624712463930431183433013211310677566704554153540233901483111421806008955263864948116789500795860306959640150618170446710425528172292161296341635446476567039556088225050725706523046587239873461090654801676481602627375468575847158545751403115658398631775698833448383610144468178721715391067838160424859552727781759194918218478904209954143449698853916080227166596360520532749354001468469780389777590261143256823945633848960638685045432022908341697596033746489631246318238063519393094629031513541039024709741815252096123152421815837440237107380472046305529770917053565576149925643905304848476483574218329310144602821700795716142345766268614294917433627311008703375464431046889039382584951484154115078266328859462121328003894285725699098785643497185922519937774779090395267292833421157711543197688940169570292907156858477589572449737746550601994180854384952549791145094054847426548955747250992892236225670569026949475280999737574353053708926728633676427959237991291974337037031765217294033542896306749345064307796611836435478241301974907249977817534317561677098878757143424887724367746292380514276202295166673303998256807704564114540125539257710793592919246584790772109403940109184948054598516765925865180114561813933974610315575204348334753422843176722872459299674999140327256216681690371133831430755409749332207637610625471614963905788153017281420193126709114012645929020208311180671851934758932500129750350153231108756141356369942650058258170202763111026998625729768312279839031826752771726930716342354154155383823926136605519302730271438054949974971582976839490798426913288407569300605704667660012515899770802398415363922293710554202140183453221843942715265930850585528975496133814569177621017523243816811800681520243789884352401621475117036746119030773679613591629316861979277850588469449322331704857361998776950829005826950561921395800139434619343981688947705489659753840721521680897382076643791139562338217287194393183946065081801341075391706815951921714071978764705764995197490864793657203233819262388523057076054178833852327131978043664012720571552039156045949257759570157008407606868368118364071230854377936728532811738564107932987741699017760972548252426049029027233824721116074159604340611727296328776529390194072860342048407786442301442183369048314257648543595282910575401030693881742369211707423468698724265792930448999346227438773656147717112079504754661692419901099457941403872700392619413656849383947906653879687596799151212928089125148009433379967968821668618674664306882417849510147184944856655007517080260042972033008248364170242016006585225203176039884443271536875358381465200888696892492003105430768144765734250802348439267072221911326243543524513110452042050189143404884724855501492891823757345658874591978090110840405654837428338350342801278548931375827539614819537608990164658655952143624827959520086226139036226436884663898600065548755601561488235770630503726385703964005084291178320458228307107049547775572530830313965772887779556507313399217963573238820273104033210157094880660153217498545773657746430768332515957273781855948576365134241912741963514698051403931330808150694997126081656138940344533147101063477119367567122612892081472026090404672280487590215722300690119904673313404828160093617786445131245977593293388426985327811564681998934805872265994964664806186352652340385176058051522782639657640748591622472128723146661668482708438784431635253992583502956323314996699496819321257379577630194461306173164104021928213801595998241094686792305869080793959732313870150665959523050211152208427661597983073063307708152458412020629265085406167424720123162503243492534536660062304609499850176722455855040226695594398852626832797041212903233293485255257724497687784449328792944851495884299041504977585959660465079233088614473307292633347264105826061469407100598573038703744049575320776997206509027287151516678969902661377347093355228836968060074762834794850507120060582935108721045926554981047259693356126211257053946038844550993137935423635563134597941993761045725923860646437716607945807793553482387824549746675303431223056892613743584698199520965330674232032713409996850298062113285097541765713102923197933593808069074674749692252586214550459651859823986669930540993658714149183548596895967231299001701446871977990238238199954254924442558742532720542583332897852577708239248972225427431149618650969022951958349942147581473326323371625580660496316065450238612257929518471835372199558827863735104044013281268910784462014251138810888580246867130224356958428901219124010288600346572975129588891993769729200588627627428650098206030456039602032239715986362677031922836936551550133923202792636313328714278963352531033517364013904521340592870972903651376780826751707537901787791021791740539383021457724867551018788747363852983380060014007734702311646612526444787664694926780419762749163380314271626295883514831191693639984612583308924889482151675491086830951354812458089236031373824161999841058766694148892766331741994215266782183358625241450673101693668597559955643893541589908091667845265987130001710888666416405807030252585214774091049521152472310290325711445088860609249855328677857702261705001315851492916237937317408269420510976377444227750818466109742830253926525672020884170337425142116799252453883895669189723184177967642984931413243474203853030697907103761209088187787618744887724735864857376660018095212848309741451435214087046159185006189980250313548058138287677090949988589154355382137762238391179407186154373416753033370421890670516022954610009175175449760148793802111030193341324129753894521897513294881538545861665897305701255117457408257110864155358115277475173796764059050331612295000270009320676645190642479113577603528522866124561967848810971620255069000364528467752240468112577796800632797863553205692741776530234620724284077578817982260760810004589843438558549425531043604186635889190439903434632052230506881480193557667226726351046017096024027628160938423563253138045021510903829188512089368231171671863517495420629828010839249031205766487227365643968800816589494604459933877678888366175537280955322817519589031589740727456864122741896905689285914763375624781426423178703279328274386437413305626447446809406807442941141693761355161433587873429666251006142720307647458391187960829201802591936479442512213178200078618685550090527712114317965566665354278002124764305250726078194667840841332740906687809305943707889733141679153169709158135245324486147132858677344643954027973278381809115779971166973976360543418797127340732395851167883992755971709955273984866075101255481423511660253513706516526693854051907458149315106945284681635514189951034573534588833083152120860298387554685679025471472629506416819572338964801176665667807653124962428592767975728579972307296744280569642934019068805990460211761275222233418449199603698186065686267782724222415654622323467032064648492053782459188252269028884006406508069399137018775488603973388074703091623824749814074664968598336648913850529595495629223872824111640489278302745525098207210948809902751975258235633578498711852869954570951982261537317956461674079486351230433485057180373501670498899327880936648345460135491014927323244499175797299335300811070547304370877518945481565605556066830751106882924928126580941710783093771977753814676753309460832771689103260593701861790571154402734303156838212867424764733733555196163583356226604038324682557340408515919844665314640326779224764732054657042452506504844941762383784973390524274237220094660647507067668424906147832749632863960285121037793497250666318454232438807457607075522955625744775133970758391213598354132022035841445623726222240385965222091516710690335221199610835864547502858229716274432190178879236637186526692038865535715508073781285942487006414317570903172413650992862353628436248051945643446091897918469928508493015436285368898453368050463758031460189203797805583124112586256088789486924864718873882661008901120365738005058265317272632944141083264365691566603058696558711890723126168727476552603150171780889886511407956456986960267277534715797386622269475685682836012539216173523621282486908067312627316713538634368921139227742927900145966022539523486322839734482221917234439974033372850324603928857316001179090243456407662601084834156275728989128758565177757039684007257379634919034086618283324977796148143834237822231074425140908092804551689452369762969904741781842700684333142897745533250733505388823055428431852588161907363700684710796182169388554550696660644677235933206025401184792963762387185300865126572560483219051037832215955797785238485056645374784974651540978233069407022632937296604741143089069140373029974680963709217524726523279457083591985088227731379676008168293088247030451983842818892785684945057717270540275972106416917188706806903443992484105375742594941169561690834453298245726093236258502938590455694082428882057943853073909749045461483184463037309918467310036455364907226868634067928627666887951599622706917754067499958036340105201342647908205278762556480632219329095005746152473357961487323879412934902759455013168795732200105118913387079963225773277594650051034659170130315665361675451939677522718707162814950688715423754096955616372946340993422835001222419643179901063389478264753037252617578265728786329612960661935975657513306565463836225392931320698485410695674504527547568279410075764056214296388351564126057467948464104701630927716732990021090321039764398509298218473153526850827920340379890696236253964222785254577399554769523395909381285604720438496442654922174665960677429003912044863155546608360918432988902171195062322398502137995575698133072945226019923404138072878332948945282198340768843109851923126977841613288598655427217819330910778027898853485094248019160511933606180507012824051918701638939384159198517340593155465512806241501870487088459979276913459388438471943534863798560452639254423448012518589098011644780570241893221367554990131434353424582360560420564693207396235419004382278846275375740716181877115147657625437005856392889827019647005894771814319684481782594476889076768770442345700071873743439323152109427796914682198053079973833708757175213103750236367844511598426966673277665857039911579095763323932315693939079033172412766296690383532079447678320523764399308927361261496609757509422109025716326472716366706934843253858061920595076963679854061708030641518745556851346369172573474837083384661792081247057728058041293121535838717113063185214082703257298559105083581498831143180040801433624368927147679279551573843955613912486272188516086786738084659203109882891785928083694258221027838441925044490743740996781040762454455804341538911019134850420237619475076537567880267620527610181668340187546034037929094549566613855161128302240311912033446422894020073768587107951651943833174658634684593054582653650154746558486751987897840291750705492462710117451618148327169644858935120616429948064419272660469543085819178378074020095868613143613700123272108236693730911867966970670149646828081071685028119842177963794292908521662912747365488632538038049796355658548284582282464197265950918564204183134448424151284399257308189318636082491389187915475916339219864226336151868198208983160775635049094000853725770538636019492901147004180281305970654537750127819189237116032101303693816320771387762694519929591393314564479186947119433857659590713790626255048624387386104250271400670255839995532591496054768705586237077667255660650125068677612907453120375682275767888060701916911354022149766410648271888665638044951612920833716352931852770195617145230098963195557263942241206687082428887100289809441578789680268338608011557796502226766244067927171217700659124012428992123165199430632835695061187117133404782874127239205885949826169470270007154851805912068666076980086993273734234934536950810541658981890115278138706498214788779837207875140576341144793510726959869719362048758278968374099706066373039262871950584914073115027751723724338076398392309995729805418848147256520145362767696345193490427319803002407159183876626630005717896855618709438443288785216223330809386341891555462001843794170630589001077547351328176230501538823327184084423816791508581906801220569926667925184744041676495120446390861370578799481660611239192912839082982725817462605599287460649378662116559042573318085970248709106038218532596785986725603730667465894977582856658489790177415099457096890144500770090566062462964176403104596407187656346353956963025339310493381069610406866409149195055008286513582302255113812820567662578120190017457203394325737432377804646802985427249909210579885421843721752489081897353181224698271014065667774350562013175995209676415668558140428146043902435448160465846829175002494909968930762372417178338998677911797611473618397320054436721817578163567233154469097207700850818622660375648973464866750665040139273185122723948290058538660792083217103492686189726920417455658084430960207456320545435455674631481048081302705157185635312865197571905578660512394153911862155379866359937178740872207229631202195326176667601377765175820247906145989126244869603313524739132621234450434288106444908079248565914645685067303686069515625791006454447211528803866755212271437610105843515438532897394009255062888322599445190987981364056107506228848165195198429064547342578582681888898703412146046905907449940320842052340080219199334829364297771362124019640234210218515451451479027170847670909529178070072707359511517597941398486518597280856877867928157951172436611881858219990120194783377465490098819520591300862708488097569020295860393196578595007535518549467116434906653021941513096757431259448994915076937485597000931821132831300605386810125617954108690689919387823550021488028646049537820967007694162626498038758557761330288580023399725079319078325167902858948651641429926558562699051720926432807071308029581769425431895496677685539021309768126058351131037966054493838394749800030498245362604992578191761916148573556506719870039605751985085874571284041340172314947828711090053823804436315533150296183771494048193173101628093286403057129409782646266837268389131313779988218977930994552988924703610936203914073827699072117290774311937485305312504528239138920746648696348486719779021289762152925487789560761829495073260946821110038190305639942670411771067671912991578567667649943404029060823091347070386445742372710709381343479262401448722929409472504438053417737988880156341438320010795264943033450497794527029281827434102037775788342593158165292116248722615044422257337961877740653143366521388645081627995212227972717219883956688799976899646614925644289097104018326979353653558097420937816501943808998111021871172148906745212856774050140870785182260339527121232826421048926031577749410155141072403109864078315295755529762070453170983054978490887729274360913435926965405476342056347717619782488041664706705542612290790840907956957302706824525171141407892997640675264730870825646257749876985663242399992177539827910536815944774160495599241870114030209300901117208441035119695930874483908865197077430504203356830560979218686039674397259963046441252874185749791179670580163427664576253159190442811666972074708974640538281711793440079887670154794269661761825461275190492681888502116441238496107097138524432776139871444429504706824094923068142448608135403235293341905341078179253999675337706328495591023722350520492022190870402612949306897824475315012282467347260379772857413510470566806733517022065911910479496384217150948190252749103710108147429185448111518975023879942642654824697063562442538053107585233138583788631812927652635440116399438568972110706227236493177311146990764129663254581608511224195917600373123590491706219134616268758110464235387963522567972267969598186218579486952206250033591803847709555600920446046933196748258102548668644932456868205500841311089574021265476251391282150407077359124741331000858009158683514980486801609230323415134372422970073283724939659635297627912699064702290846154589725982390584304152808771197724619885329011962528888344129342574794929199947767230131669270680035290361290847039134382380420424278304910843540495474352306192075709594093403944885265660336732880871202364549152861255211703106398950907566666161599928818557599647388002104970645350986760726953636055701913341261265834614850643822695412018129037455752239144306115681555266476971321789288138588648514078023162260154270606233398380177746703383238207847751646155802120422286980442172960632983487019788567530172102460272349685835348428916496365056502838014445700535398992456957278330155119061364294224789638643418553057840853234760945230236612534149984206634922939631644774689563554673432529869139504891896098423364886032036124733621336954942866533709887548661010568514889311828941741095854494631606336881285609213616122946657118575604483095804892751168152652866995873573270298696272936006780245161873717917741891970436166864550841949188996729987494927112439835942471084474436365273909623108736733422576230341904331931241776609117962151878989214894743814868790102515380967967747952686001928407559890114647348776203622998021732858246680296858177605375308701524322533260296354469118595037397142081008207620714083536930272182665226815990818194721266890037832221300580018068692384854802912092374560593410818253057812301574572678988174743775422301663036012428297038167623385199540389227182947588463522060228447235771790190264410633056042935835454098613782470496362377818907923544516531520349105313986137088249097651462673036815606695332277026334795553097997507679436298468462791654484750497477280610702099041134341838502435140535475565554924149533624830051770299454761999174207871887359810978525925568498750296933492278650712354773213567080412662383519109495133169131215506553875524355513318923612281156552356425466085586654463357788134701747328183094345856650140405070146516069484065205842089604233442614527919990045978103620629996034859813560391637528693615054609734100309327744366451579693752532442247883759811128848805226388819550197884919363302843147424450586649275190495684615886584682351861820289263377473187212775768872456796190730692838598480915219176651782748572517301529186199653836651450874873796269808477636100750132902975965245408388963932756587777370580410071122447779615355490707476005088277859364769321609345140979509422144053784679512380920287524302317339369382438762867558942037796304629146650982565086464262064620477660566613950444624431382789633987482616554767633242482919725665894010809089163255596299690263826563553733350995488979590156638828511922176386720970968414288528984104884780796845676773464941963416091867381123844616614722530951634641722632690548992810313209417248484516824571456049940883988602737275539085121785224246610396157887208417445056963666878809914924831341581004023364047898494991208710758702886217141742781974602879915078161632844741660156422907855426642703796544727056138590107963991580460113299302548102144027901292379753104661994810475499041765860304867782630823308867631177180503899651141071089000696666946885669171470600423601384388827646665692700549540220853389860778777747955783021773672335800142937166181714017274781740146368359891130133087868142143354337847762780162026297482391525587896913201447498271949090133954849788798722161251717123875348893406835803073862997932191335221894703427119841894207883488162163296741019682742519131090589061552129823426566791934293685460997557680401591923105944705627613147890480610809436981812588410866508773594642061059159362785054859536048409679252176794214046119806039928526363836652191196494048284246138425156423200475738344402189493807340932088673532254231957485219977983220027006685769625068961839540267693241865056206002047785140484262428708493765308264673106617321487090018907818833745821411944922962277773051102270391312958706390151021335687749654341763985724789910237078457750985224800557547400010919976872119623505236245642806399417348991782894990944115652244319653688816577419687219156584624412052052931563681230849185433840290608312835444848666191246842793135359291519469493484748509683917260262161281032585686729056867321322142745410782898769299670104822168705339356738881355027577290766622621731981484393453965959531935312271542330299474830319946912966657249938125026354263138907922274945661832582192600934697248856491639421979457303657243754360374420302253079850031636849120280785607270186559945931293745577825730009221428104220523356377713642118830514990925130007018217213359381920655410513149602252044725412610401926973634698557700621478818917471110420353119133525112236109711360370052714461814211740309230383005566438566182695563589737050942810959919441883330669096408277197907880812754814283289156820585873446226972286349819982063167599098377799397994906034758564161852865009795137247298879449202886405677910068099407982365325957210284644281216520001831071541829059230195084686363269975310340703266789567078781647481183894169431815695560536360630574608600482587471486952949015980402093438973443417207980627328692140864468264720913942734177593717826808947074991944766287582423243869609152753276243152072381975886264767911065658111848674551440516949475901223710948859598816441626611461148633945422874366219994436975090655357204174920934030407144969764540911216707948255634308962905427745697724514826845593319485164792339898516033710991936351357351159123109055205469503155583047749684400583893471834574735326831121318464514409687184636395875905646047515242693733107029973287291260826148999566393362637509612730172728181132209277981696970491748008134337743421708348842948463632179955513242645768962189824047050831846069105467657542364761270279281258133917719412047097896027400096432663650448091416939553879306294525969644951913573975896054443965732996225771820937241164458835891323683005801018103613930252952351219432919596455203122081768167140946277126756366767928043845713042914347861980558365016223909149303119323846593604385286483591617055331652710732296079646970932579778584758594742029702136943089444555150493334358023286100232414090939317165524459779060176954761960995801479375852619482065896277212292059107147387333156956934628172786352376711210092807394416048068031842690642587519625195344285336224957083917860550201035252069394437503571422029595698935638382389964765442046624435397523775494812716585990053494058009723477610636868639661550530016538544602805518947947335158178468696334798605510549467829209428171643294497636598246228290827323111286469926690606154703867642844213608958658458411344916213840366774951559811364394508500694328825591491088357774906730481867070298135200581451998294855373891314233333204711361575484622888960518582224847193951475912971925143260324420035933522976944696126689066114060668622012584035952445135796756568178414981249988765720342622081994664314438813743248968889641056151707139528538323483674547590532538963889652170829233079416608641891946901523739531863065424373956788676281768219450609378788516710461946539223567257456567310714540658611208488281142454190577295581600402640040350218501897198112701678814482218748825852544850300150153791572355234313286294454969494296855994006592635072423013388078164196482215464481471380998134130687894208265472816807615164667870590385470924343180013344086837016713315153108545330493033986473537643746751848549465294846605102899286714409492906708429916871991568659987340636992525838255317712773398019457949874739648783283334760347450453092612463319693516230510833185364773103923824490923469332219964052919320790279704077355355733479741771440033283157929592610349037906484721874137601154557484947491781699628427984532372652414065138755366781357940507293035625218539583446496478370993575644608313391856041538226502953869807382094454579702091145875113940884372269536192313820018537600538873614233613047994835572262059356256961313151160503538847456824900680345194182077857184060422230157876739407490166246361183746546174037681586753254161322944357166340621767066970039881436869351702131201525482046395828891075690165795050210654989659552639915701968689101482041611373982430985004143750882693796850287728771281323068318548303566491958649479212499968840172320769494795277801268776346243983671512413353603501659447133341578636191176292731827354252573224721896006516158113649405009763721802190782353310432443282828990700461859446643118707232503253599884960631727619903663241962906611193601605271951049130135673455739491021981996463737110804644110585574721249058580784467510996853343976693178505964116783293159651733223868220203454899685492723869373914476420277494940830464256250751401708374650842641310241761832887530053515395802197941927242340299659598817065880689773593259288689900684154737547331477301842282706121378491418624958443992780717008512565408483059549543665573101884110334030096890290545801053974511485918079232367934567354802197896481379628492762805747125818591929576983388761613912308560139130871373119841957373075538620048310247831282801594407786788550597870729580558675110874779654810480537001187797241118614235079761379274159771356050832184096512165444431447210620240788183861849909329364024123595278796425153295026252547521794131984069788085716824011755935670915730026592292034348120516827519287224588616084761829317193535512205695763252583479656618681912923999543709621900734839052725943002231269084424132237720651226643451207113206110070969120727984849405584202530903377401671791063384353040172255861030598045379535755772836878084853984555115231497825517464743195461976609295144765592662289364965748185265569772430150972358396943664120221670373085995180256465301594742895990915331401688053176132593727917930945319147692247212619618925006021565349140082273953933473714476984675673498678628741469146089226058384982450313397220096421773001628973545527944669425940137789218151767226856928629716457348545503785754240484883567180624947658234785970988082295486960810055576132480694852178501343810708335042168710921916234288261530280036426293596434251363616932160228093958258772680142111152219276192418544468929513005954456939259184246514398738138251085105681390426523985237155536138404886880304622485239036338077927154017183386490717342713301281196703540914950775192604895764698220387544569341746668532589315263112270806894586871264664698354166756212277837449110394841025062151171433258060088387937191877705277554698482622839479182944765624902194130005277997543978111596429971667745815339168924850173175931336460642048435248726023048159527199915582800031592360375792559750574297465363449760507069922480729272429907444000477444808619658091218441402781308473440499335225890206319916770130145257740378887154016889808748429279442784747622710707571883374170403296954574333269646874305484812643938790918084922410481556079569838690890668334253576825806987864427820394667325682875010111017580077429662185068895658003700885917686836077609308037859917154807715475058161611470787664125824743679633208252850248835433197880401980336370090868064575852272319876250760127176208737965600885466050169044008144401279724749485081161043088207710285139351716268856914960816461716787679342107671220513243454933728793456736830321263118601869043134261509803635429912619963952719408471955377202327008616030845408097494850687809504332941877532443227810194076648991955852356235033345520615770091533100787809656667133171435031522614290231777901262016498145090976759248614697398502717308956897798543141870977489525717250435705733290557363776193436968818426660962330439344590391203195807572070159673304842636112731849695779433215156579352925214227715892093199604634441248109392211775244858139679082151274682853941116559034722088518848751706826350394197953987410381257567513838951648520690412917557413134896489478324934389525921935753565550985673854890632310767284981266943021941961849572102683315689579728033633070762508699976318307140682110665873644422071894993358051423750695115927329767445147830797978018603551421454071649212739157793912922514981833551543172088391254165333565464703088478346312798710110450142494725663727123786520133766997035046507395690867264576689594103425659176900766962424863293753719669931619456043639943876058499295477457384187078891081797918953394681008283586409242943307516390967595309228527385580358986501437970016506548433533217977402914615938844396927951739352785576278964743538794550750124478388083131279937328199432678242910273871985060742486778406512022007354863774537203811561775651703348069862205922023308464165846846372643715972703316057247783432457353339391628961122018283406333663171985067481443711679022372389856520867654262707940136343707756714248927740479993600677222116140537559452835328870751293880255391904881229070094048588842406461501658905301088137657050392563283305087149814346075505303744550629673651092554865968790260574597363517288723091007056428339812697892986626861653808194519627069380034629440407368661688482865361333173043633780222441874320935891700493781591873332254643097351391998734213709573085186268042303685887759001532576911995203754852600028702636180731866483887992550690115111359038709975622981070008724534506883243201537963032180097629743674617766544158709061349802253633353109378117481414112063912315942340364313491638610853347790293094531181471333168211248130196312694538247195774198384772307829965585469285609739737212900853076285589345833251793965575662392011881571045979723492852195992320313758642064923470738693134175442963588831570939952533425831112516624727451841644220446232148967924045153565636919918112975484485476431429392047574717903801371350295711214493626780955305596918667665189843807577125248485138841999533935178759339650448015628014254468029469467364418884971890455202466391478701905094630179454954985194066990797607189739682463894615006441167610933640302965785528069572145167736039951987314885307393428207696407573885230526218130380811376121968852696246575988972049704520715368444385385437669969974251622473283399186381814076769687398661889894852266039206709543859424698285099520487615534119268329178408982215421376552727002527099119659025640362918932914073361737274769408161374236035175955685367665227585389866367162893513314763670140885248420671430021332144235497536885706320635894380504172886547215291359732053955190482981301490416231041344582829929583832097058447209730094871077153135107935204183497088219837781758273030700856446811284122782834942243588918017386405243362522595395363184721546116154839513454343978445800784363619821861706797050600878065986939967478125423965532164574856627670649831516086688514142084477871192034848587268024402353537610953455144809531557625796037780398851134920011456831223049179200683834559361211666677024748020039332629808317926103625730719795149688138016601376002164820259628586469003770627882175068441879961894822123541453492086918810410536600222080514119873390765306528114603732739001654338329901424989974682995938645409322942836420813764886307622864624380811235916800858156146075612847620018196335383786207537977508080944830278486388502647772953392000095446107238613292190982698254938169274733482347456445357793425892338405103747484540599727445483385525949751867881457865189637369809667157879026527210013931010840662466636885039190847495202872038470940134112281016780902775746283222544022816214610547299606499284978123493352133375773945086333577845324999952984394199114872909751015550232729824344941683854668994621798397472742381369806389659478699763867591373123673628384640623144474988677471151482156690177323366573200079987270293021699868006611386508977487392133874440832960263747763460384710123872122511342914735465188536757684916670152601160663439433392829087598337465444837108931425497562604313021883938171034097985119594920100565365311604221005466835988513620143023089151590363148124092754122925665584112080524507403996940673798396375803927395052668108610587271301820642580978085703975581755692123070857721867002700816386873176233302864003609062576852798285828036870436282138713996007227630469261614279604894058806306817986776768314746470274018899095069528841220390421659282907143783251094272254289637093939275716769060619606881750870965243248638278892613978188157168911559199017266037625896706882218781402705625770490959862740342170759145763533092498530963603419870339313471176634179635180628093928092725333993059412706021359124594519435952142472719754897619028217616799289542621876116360832167437875042019883876808456853552324845003820379079517729506007077439268900368617994032479515957035841335542751361066700879976713919480419003725345120283608379903809803006318533167390910299478089844917394914221819678238254067370217968329723444650112332579072216937941021157510950403100528883839617359843166809605731886714793462352681008446546736098523629625489350458042588729146136808039115815058615236792418106887371276106761458083123797665123211505642836814659349455956081893473244344090042613103352995701613632081357304161461257541345304590388745333572251790801174566086459998521512789460036528691126071451830649462953396911224158241518892758320135627909809177091950426630621308113843548577033801403040386607072285444779091694267404268116996571054227202192843508003767144179661685590085300522812348628091299467348006799235630648195979343468542535287870770641919285490953945792887362930699729560550521185228749922709836916571766835547054372732947546994242119088672930886420004808021431438554732263236551290022139405092940365537149764029252291022845249108265083576235864031482984243581554762376001373259412002216905634202144970056907839829745355648892809306350498934425892658793744012238970507969591741838802061536169467602308825585734661895209421990933529435487420876011859366824397850840231921736826696184097052037038038616302221549857094204071337776351032447476171795899944300323880666578397549553493434063324673666426120095512061229769265672828041478623453167003221766121443028198162645396473956794020567993572180924134571348616384387924206350216225562672448143360688097465804520383255573291399683190879438900195923993740445119701611221696893437989597706634792921013656482293566925286999709064855650425242763910632792332752676936994638386019231554743833350813962238619884326789166018110690873260074609865195377490888603132340866007833642569589923033713384691547781422551062782246909442523493488775311538219306008910413701652437567223865855464697120761888038743341280178291083430712007779448407654126421642367010293193990227259093843640545306279433327166183770107392193259240473854924383387729463302895366769618274101001859265737398814392853234329727538239347531005798209020333332857323858971408770284540741992814005808048352176545892637066492715227119216095507765435514433618158321060622967142056974004174292012650358400675761283593062989115526998548111675859579110965381908853364813500884090717145271464063847137023569360877440352015502216301992716491834433039612331042675149496091497413604641234667338332719238323935744907616671168675504167783286459087652052281892846032156699425395385205206302763939701988336662220528874319687754604592610581591345301594610456089615703098876729337063397391911838684008118888171575039886137644938165421626737067752376616534176803357920883508902329374996104461344471444753122269222972822976655280767864287937886882831183627146247488377060093722855045989112748793423240166565091950678381388095973606366596332444281926259475274530896009300381805208872221641413193597712225558287028193549170381358763072093051321881619232332198695441602932195285701760895720766129049863626805296777525303403260728698009803208278993572261448548606614869397585827373108532989816006218354837260246981663037128563887670024518239449484259067247057041434915664011625589272412462851195221642791303644904558186185584774915741966494116926209532747866188128048747118112583770871578931254827246968748948689115034451979055850393844160444436539609541385390908809783490492959135324882682477161332009013022225461120904160391002883346024267437492572775787363466799398134465651961177742616762808779305815947201045021534780271763985106204872921513527366307280874877008151994577311348435529119589575336689098516048565871256943538711217261498987545440721437926478192217676102184790753505074306300746994286540669191650882016305656310972198288720962896390237085079689064081825888545661344500313458250074040157702575763551004929664777219326003612299512841106195535288090432100957922505697650495097877644874430386116010099720600946310821192296385263285148212431513031459134399518929049539077876851901817299720317458846623015149656904290832064606347518350252600628988191756328057024580474427446608122362385470563158869740840170030271110145415806642646378210687204848373659924690920877978604945587084022243834956916242194524862636769641773520756601783519215071710509245150975141827560649840900412757491488800460939037605081606367829390798814905037512353932519563881572739265591269849336022689369195044184930287039909517750702322148113049321682318644522929546191752849243978560083188230100990649834663314594482695974134076822009286549701586541631788361389483297891243143331889504523120484212186063624013273141767966146590521631041295317662209138519753627120650693477147972228315760151141149342415283070975715532750274315564107114731539193250795882113930061702908468729960912714184794802085489341934876675369515658835601035847113056507688195261158844879911454078154346258284206880519389353189009408244947249733873944176909438725123115196470078294153464989707315671975634882110562314160682888392102963261026511139169041131812396161008403059898560484187702019465555744610490159386268793948595221060284776880873248035259878290981641562549942422839134340974339401956345449232894199260696727496898940455004494409768014576461919334288124325140369056223784625371137903936339081889288516772625101489333170114013293114343467239554008459408417360365510341370969321505406787535767081123238692960835346935037166680999728866481955022434211514784578768652026319179266229492956246822300437113573004789114594135451994062552821429096796327371100320905152910650137240952972643951240739808166158128756812110782038890905784902533370244591288521323955295741341322609005577214853834664800101495754903943002115566934643943478443634980996221595696952158336158820906412541274714909511316328183090415740617251760904333427516128243211895334688713423008234158634326584031724712176821430137021175411637309785824946085607218495934558008619686684339930397816378262948185349860890295809438795860530995171910035073460667665424242329416732677178678123744833915862031861961838568389933662721123545063699551721435864996003005419524731915164728527478783350118379721293191843247920468574326519856902176806290298306068914235785471385289285975398053558534581442963200049849873811125907764226554365087927019075769972373949847516305118587403919773583180646735761438011174748829786564805944106301349115918653005415210787033827790391207708974205233353001002697972620624278760485850804402298164782234250119129757468794589680542596308896311525702389959449336025942781737595444564057659730829084624488916175642607428524664552080775779967721867223918448353875689513442116673572673490772245406614306128300605675403919593404377357613995648456858076145605679229035650968897859996661911479115426312609098107854657210129473839150721809744574705737151917128270184660166394844111194985456166367965174204706393873506396868589169006236838858093026885249608015508430239806555484646820928874742057199601900619007618364461239031505620528339716977381512850430022226807418209035222704145006009091492438081348811666756608931763257708109938884097176514660642118493434704316054827037644818471048866647191282875540007621343357874778016184471672729964581301949565834895194687647576857716354968464638997491702298323750535155478559910868481100146927974261882387760849817258834557518407093272528100265212871863696746734478667376049647060884880863598506975345847077250734746725034482738381834371280336035563388318547037206158747141946056091678615317246444894304425065310689505811393663468000378110286158345726767729210617712995378842183595694962981493258952855379186627508239551875266851429549342094861048119291509958500490335672007653289534360891183949805770989722976730416907805645546269714564437805884220412498910293879231776013050823014052123463211797770255031739869945766718876695257830379753031405968397825887541800360122463622274270085640079544867371230802321091097794301513243071085833926320075082047247788826847188476751020778970977347163114024870780138565056572653050037786258596659720867107479261818903305531707540213317197852468115889380107127420360303887634636852028355168660525297165315331624085812995882344881760727551652009268086669760660090091463905452586732422059808021982408503835616577580798269360364503634767633953501728086199712263651918818734818330807838934854853936115487836795496208369940203155386404076546928075223363682000913832742825109508581607635689782311144398947746318409351614672323810787197663430891827662423306338473582982508538840170053647369239687909038700047409741618833326856743985445893880906148223718489590166284597156445909319514211967907168107267711912376472073293511065339578903028463138856854356531692774948884533171488627240387601879938418738582746890285834212681972904052995245308297062285807104980899424572890043082054585543251870049751134171087096103968721274044835089333799847238112804675538978816670368863921354977947418702747590442577944695265372558436619947283097511818355965646103689185733957359002780099836470248969001678216517541527455059859676822247864934257392752195455459958855705554249029390136472032367037526290356677237501905244135842265415304626481025366501580329880939891097154310552411736620543496359760809732705671998826521827632278743876560800078720921105796393863971374401026647567741528316642439467052362855480408487180467091713824571801303467930219028495359065597204026498082242659761596809879197682773454426903450865170286427659505765640035331044895684631531835264306412338976397839275724991352332241417595078628726187914505435019626234754685655858144640444520372854129474561967435170509130489343339541254651375713698585590264417356158477991940002361156439108668643970636862578314595566627821061810202373105204101538136482778060483468982897321639014489020915783204591805094478655158085470677332413857538261935344512765479008593185023092737800684536556648550462562409667191131589602246650926707912096525482267775195170823617275102185320824879195847608655300142629329306072596387471755661734590028452495197232494347872355588876937497531749556066848900113846134594919163445271419559128132367795713769437867013217147582223226793848787476249038239619128838316189729157657372607569455787666958035653698958157782025018530225185087945601210536665607923466760980548450621939418076768924572309435809044285887137315454932644770403122651995748141187930907648690902429170648908520634986594355859156040166981049513577003085283289557009548697788331800417873011550678204465332559624984175990816407628365516633025575584988128444076919930249820688136929203128293961420693505852543369229223563352340026333721645615373471464895444432286080286103043964980718117838033777585539686371513829054649921975349719853634592015699417338962323824292217554025927244452839170342124977995865544300761487232600968809711237282440158264443912000400030878723860607111110876800802282503965235361923904466994672260831845124561490179338648306329163139941635108686548786526727225543891946529571490487732390728798785606230453038496664695896361542648343644258474770748988590461877484866341902372129438147085974751466021116636532881088946853230472956287542197307849517827834481587437799844575224221078000435003952562223609113622353726219957119718862789633863481241104945392350322775469658712585905142045872770952563104515274081128304800520148909054669795174488769567680399648298225682198211852185421438439134689638024759389399459052417128697602622418072144507639923138758999568588341263046929480456614979569216817711377049662894313089177584786026587463575080042496415426975134927863629655796174672621019896652654164785351501665403693614230106111912771581716902577747190524907546083315292891108712102713834284111387464349610054788252155914462370561371514342261417899812370643109928822623226210807448571751886100316771762768950507566584518325382663767134647017763139058713474142401581790815700385622422394663620885512544415660699814092487804030311559767513927511817934392534779711747002616964659197656572546425690900560680385333834212024328739192491896092067439074362533571059554530119817517698058080714332628747234567946670162155177596061705487086178110245355319174175075864502465483080830391564938197215273637822182378742498658311299729587833326381596529434125057100567013478219560639399396926337862835785736209053735362374673974077803687091145667718549572911288636430555534125244363573390397638960139465301665505744370819636279530183209052203023755168556100460625375310910148042433709301354522367082412591905975161645258060091793626190547840724629053973584891360581239101815370552768836227230449431093190012262931123953848303401018891439192240590482627799679697448181497128789608545435492178919538555676895438264965076393987776609183033593414532897152427339418397500245300399079390062525294494926268921805651226153219465911594580758046817776701375695857937671015716662956690664854687558717986772087364758909450061775608379261705990192801041035924773427171951727018539405900031482275617567234939278145692553512060442559810195332550314020755606285468097680185894410347969718173958914614354235195038874951801800817705902560669319066306715147914864758950369242000005654272748396172163594383829865117583863507100526466001568886494637778385991478931729959200246555591215926222337403210909481436767244070279529964483651212984731059271799977309616705929247050651093022884736018839475739466512750724565121574391717921982057878193169770008897333437582380534429124715806993947808216142543510679064596709920894800671738350372359634138599688153001523737549245199662913876827219296992961973274658011254633538029261311093204646470276950951379043345538698285277957420729527005580530090328491281390501634142337368706852668988016270625612305022305728168799569602437916064529686952368259503286175745409302921013461793148594442462543692560170489685359199858142811416572579767043311859298646974160261119161369072802902371177196828797642209318880181317655540646133037936507549298077088900903742842514733126943746837931451667721177084438532544021078111250576028984775466632344996090811034741507092184330459075201654275711630968037886854687290518239561043531367059356017147078089094217897311345832681098276612343081448564145442976390890577281333323534128996331677368571524325011854929223034738018445820784414537676170402860319498252526949866355518799817729546396445674512552396086741883732459615895297180304766875709825652756583556722693071021273696610751945501207272598399913776447589370413792697861123757168051691739737327254949167403684324350807701791145724896694106989567846820921632953804105624837846803645809544788379190761522139526363406864762320596758879898656930926395530730525280150418423262159177925944744368743691966598350260240813514323754627703163903271103290902722404040658696901350996020590089051942207053118957411836641809217755771527360389422831490519256035146176181787850988624781386763613694736655678941842051372615122086320227634967313410697007192344083101153421331932197461700884173396062815028436924823282007543435259344670690128879105025080294357817896964873486258201013947308495876138730085107479965216588192448757591712481841763508036781959403964351190055056763432386018901649115239709168226280300743538699403532094085559023672954107012309887893813110876838298953776487059415617365308190347452311275164500958840382988582993842316705417048239366884377508356239737471727242187168333597532695271539062708169499064801816874766884826938895291545447402589841919362130468661745854381266045283458740850631810886271695868435344304526278694257814909726552465987609039301114918674433882574933611364804240197870609963079971248210020463242325016336246809081361749168500812089749746787297244474937103309216072012671659193396792499926644604835784333464043210566144850569560654024596648080465268550144876662987644179675499223636097253559569306105052442921699905019507882798135944671258379906449385568794319721422448736348793598142138990986443325179456671799431593547006916607235496153000994357894907776531940421778463052694991308776377836818660070573995499832124226290679673767382161196967424623700028225905751209292835287240276930302917580899390977369390054720914732396094287033454444827498721856976337195386834513453494295930733729503571711872304656997023554779256526083210557587488843101360029821046201970632516439801916555932545177967376086603356380230034559214249260819700499905875872332730764373964172385218105505593593203301751476992582162068451462283195707912701091125335995514422261675803389524698942522005905554324142392945058399840954128207429122123361867416039135525139148029306914088731347487604980418460379839279613817473978253649698208598027279441684952477597263940194038269662680217605964842057289891592893987744386384224444926820899597211899132960696701091516368407632363139109794445189139684018229250978713913288882690056224823832828416156349010370285776571230850856186624202841905036651187719227290352478124650369269214068800903093063335194840847065412299906756243181263618522426807223602843924072242407493609531907995245698478619463986287324398120561259012810723655583140290026165764664940991426751147012344472197629765179257503350060340461656028332251648135581617564607810775294056628439279115805105969489402630054686702855321468171355245000573049339208799123081485006232611357818054906869187858693738501547708727109443056449658546493020275817995472989538975469065740811810123473646790003576113630987801430301975415282163879741623955525903013498908680639644043863248971388813108523768517551295190312101978103384669707629351099826128434454037799683466146686245340873648296902589972984105415524480962239185778076469171811826705821474174378867403197195796527692883006434014719253991244646661055984053806666884403892423823079338968002769685071939368836873003771151749004022270389633967904069854696496374610159104345269506963176926941117763337565620682167499789516586799505293882674975956015881253009123135445263634821857817238254157242265841914703976939351679888065477268502026056390747819487621530480438335726606273450025558863062684129792837148741083892764830598286548753085171327440809748153681116464810528530136732262232835039439776282793080256752865203046296104216802908453075922293011418833216392510742785222617641281178941285818995660028369826846346924926310327893324076773942624455983731961542000048590969671599065632777577334205218996650446786663444545310760023634002284409177053410830419000488101413849722181781102350207290964316087609314439154631296732042420398786718605396939521462851004053028542946722228995757492672424649507064352689329222477535625294505090852014174663969742867713812903066854738911307177246062900920964279286746481997978638750002729577942375509578832178114399710191939984334487424542458323648950143081001844935218141282530488883008989943278770948483305325161908780981440063671418339013434794297356143582080390851462780763930472691127231441130508683564167472769804946026725236428289176015239224167656251316920639950410180320169931294078551822991726364739960220491896922925082502177786702956834947878434873936986561743078663615539385903441991811874858907929025842201886423984448820472584421639210930797702059270778265495769801348049989104923461023986399085074558578665382025342732468982895463256845051031799155484588736570472643256928260469739806333149489168482198564065750940864708089585633733629078263260817509251044105069971002800343259595485757239990672585546457763366240139754970450181866596024690736298601925204870899013538031777979494545254041136332580914588415308697451074232961161509298716966593350924901579843753949060039675139080287781243578032714243306516567260907906313872362447799522701023040446632310911539232881129707950652736134716715259807633302177049280098149196125854824771029442081764617128085291779956872304265803863228880122436217735558631168528479179829792264637763331463949787649275440680117560621153791111959796819685250646736672724573813678076667763981829318545848745493920335903427270273522333010952831673166945259821748733969232069766913184447923719149899482639911448737437318163923203278545760031873329485105828772281592823946203465386672927777910393406164463213706054497096835416860077147705371212338227774926540060835011240496387941817844539531442615176941112053984297097820382905672318673824740103878327410134668064544601948903888673869933202737922960797483633505425048916552163981057863951095628325590930598899554504403776823324307579417078341566986008448811326663240319911688424504797528428392441307518527561032117437547479940148710424156784354490318808475718028831986000598086453855551074384776426055057121966509595034605532065434344935963963439807375473018964663574781070430860252612103871441716503665730343979022552867008140437443725640848853760691516323233877559359329277025920436637573393904481297311792157957124125966341710031147348499291315274646461281458371109383664939433830134836391758376141421216206614730137228017824151853246084206786182233953042333327678217147280688071503590467187037151728190233106117885487121310582217705119893537096611742577624261889714082621676172574578032552724459349656998557207070797642183602996121005786413388935182477108636797220418506398367449541564865974161230170646695512336028009176178755173851162402145742454401263944151541220718380411224966563178693291426860539428235903160885104085946600733390254371656264848630370665519874647471021415134463037833551144829062792601570910355389089673082279122474462318012722831995178599757921840584593511122462695736064713337537306194693740714979812765328921616507828714028879896403732818339447177434723316775698743397601403316060951293522829955450803269754093237616944637440744645407009738309112464485720721124957409530972761548873133709595622678201405190653159864625643696303786816505365528440486703906739924882935677880385207551226004147437832894801046250451102614175185264054268534230431163442793422086487227421382736568982855263107824195961141018909455916196675730545691832671053519158327256343785054901442356592519713529535217419320336307440600641048995570637208785542394368408072126997792366649281616114836967530272753150869841561894889599992885260516864132986205349447775733004986757123263642715977025347131742959476225864334605828738387099370230618957893624372619758967263576902429574301348628460947367482153097936580460249224640853885768713183937290066032216527332882112326427051362818442663976265042330961109028940943135066073173231203267855188589193841593650068003474394716687289521679153528967227165070364203231702370831649756044595619955620594163180207066044292583111442827161863049342384918245161886123364546212034931452511264424942312200974684064259809974093023718684887690579431368767973305730920588311547214088475721279517319543165474249764631741030890914421295064737236800701059523702374597125870767341483520664634316029811602833517104675952317176623834690354809747866959809248103407660802493571739828136159282999576278446361068770056747198468827151119848800973627271568421926499173327855413998900105803933851619868841436831940620042443915468774829626449127898242629035418936280366510667365952748721286657035788778422458411299248686544834271283998933405747108142359481305204576110399902924058553112297716807558520219141885458065653955353605216631660031046829856395757002274349955654094874385148496070189057198923520507141249988860794977629055569375436596244693711015484407342321576699472527627182642512161236072990332797371859186269790415369433458088679121994944175751326521250388432161082242471168193509164852086134923762564393109999848826498660495201094980157671277101040639502425410217375292156717304853121836360060809212653617064940318677030146040082001409384846966495092221092616445035238630508322589024321121961324215564525554878276183592918670522027469257332593980279533362164386975634314020057001726144183050922724860899251407080590144326754560634240758889502570113055222536866251136569082748803511992250634672191644552124949150583096078698139058176314919541034537744108987506728229173043110406385339785096867907401836192744873058709428281411517077049172484634026285206646703789886959801147212918478315204439554381854461872838028602265141465102928527488045541658495380360386931248661069458821808768640848761937996632162714862340586472599901964521290876927614400307451596333908473703987908325823608158929366927497422796216547614222808572268446905744888806565446402860477683670041529135313327320713875004327997031261021766772761918269043707127443178485215948196230759383982028555659839337253752319445308751990751928913761274377482619649124153833448777172629631167420761236862042685403382695207202250477576472196601836621315786486004623777820247165228327679931375302552172171558213985282285875163865154615139374278933912839011727765034691799010435944968532183242502784975099258067947951881720116936687174509458104492545744305834613429335073674649707725886417340052524957971045425432034895600812247335790629470461784603051350412218534688637243431554868008299798547636925958244493897400193947017005045386649025258157139393051734305153779035190626910391960724483711506080690031750207187091765573080626454083834709466670231991415653136344036258008827878745682105659119396215806111127811874228905391132124902238494927864798484433702218705098843030304320368202850205871733080391483946827824536274093240719734289501136060904610330859316534662566231115988508511633427559846419829492953921894332502868312580947440264850145103112650679605025234155346517990256638470522221429787491487119454518594588734833911855763258946999949609509776495909098768352114247647772868324534883230146774676273276444920905101104281379968635183155502839113967535680794538804205857710865273928123506792715440109002740126802495658790431830425635632199142956233421160055955448706228598013391010445908403669357640434351555714802231407946038716458499591328576122262207073242667286372756635204649924792133472396818260068673859796181450534053138273015728094447807774399720225404813396442162019364115167182887157608784748421233823842831284557663190521462117281750284659051160698378535410340897010950004530187870091343211559099642046784866262092405675473410935995356634719554024128563433374441606094008192374926690029085325924566653600225331650170537757475458578669781864382535897207608070603130627353755234411935902379718833221113640200096288642068014836862807250851729213978042908980709038816493087757172877694916320256728957309751676825896728343661273953008689997591103317904518348807019458466014792112642412546175457232894317228977496861148912116102564118919782757779297238980470734753504156788132934535450826663317932227393608361115603728189384798644764121028689868709856327400768020898937091743608440935114635899302613073832039882666166255610156247764230005277368811050548480285838796331341978287406347309817069224702027121969601977389620349657074545788750556356318967706329944756418267365531015444056971674440379688127062517716903012330403183756079377130070664991772088972161420266548415442405919009150885754697298236005627574420487138010321943362216996130633542850999639731446011243348174634883109449342549444268562533718314663930821246592557424873158841998633782792549486804095511460117187736606397072109655802815727954255205860580474625561590744080612203982804883064657001054139806122158506075337376557720993146860318215801007290770195836830482309957692172501071830976373606034319575890874427481069759055662298732076127023922368042158039886794363900998850749435059433321867043362546035708169289060289350477937057937694380476753281235672732536795480887734672428210538323487229270017379060922293536115340290438750634445525302302504842379864940341200977985715260898023927814700172204694386941368031108468514902229081583980849094093640398862500217248112254910250428576313792717393020429256644347205266303416358054534467554021439829945434785945908908571237685086605329569339424864154837083104184302980872360196231102703185258971974100271400464384375701976644093790265065994472522552547919959450348241726730161484286834064767810707266368229163350529327925092994976524078280103666369920338603827479842465682900446797098512234796042540485905153235898434950790867572335439783699092578817406575292746445914774836518580967176168511883545138789648854641245932779047713380609215340526213111146819605949195409454345300297154335968167919066945968583722709393774327964496221955305112766291213376080114150796024901896894322221529020735765791004916763376280804237257229303946261894902564539350222841360861467064911874986901725949045092009974605281563868293730967711644628475998859464407751598836879881097243935416221920289371851702933083674681958067452621381529123404367789000247716711908502051275014507111864249030493025474001849472499704870279744260505401313356373371376828348874475083332690490370777137364789305231517165813307115121554042939446108173613288374514905440268159254218091707237060316568042298078165485661383328011917557767954488010661709823471051687921311392441874347553576383018353230008770775665909264698314726403623294208677951121384063587575948791549726736869401154457557576376345373967476255726938571263028305580533774392881348777046771322536390854658393688299228096122919549436674763393534869526398470127812143596012212515115925570167452333269002299531248078219856831310736452182859824740008752424810279276665849219799072736320556964433230232639985806562982845718370829713649772883865535496970230245756612598139872600834788132887219096483731571384029028365437489919323163831035486878451639684103330261338532187521463918686017787339721635970065870430086634830306776233394817887271556335715855088907305869156314913865253120862705029430116876742182534247818966108899134706908940316627700261376288190097171702203281628566993439118859068599485262893541608860394630021548832339465848917278785183193573764169389013959272321041659452407756227125652860917710932405272870881707540242231110721220014181902311238127851988213402840592849424546940724971131110088084776327811457292224785193344012886645411942763253358840010766767539221201396682971638867242192299307157333538142146334163112023046939976770609218848308630120292476297659854289820568917575682751452543352019547585842745941616366847591749338844838551499701153331188598784293706582308064337782138377323395068216711248373333146238866798589110112055412579507990527079413748853471944285271789494523969718111914383371518195815936785813953833412294530082611594559263936758343371124471916905891752513849637006837476288381747871415654841782080432995922619997777003750913809050937295161051195094872015524189784671115649179928289840027973278556984557575383655692268902853091792073376448413493883752809939152369672414769363797917634839652836941719225406446493184548313274929620659315916487443681445349219103860054014952837110768885958922794619208470599825484591793625372740705556988425724395559416131734052782509161533097067840683920571286113801010581916310507301135863439045577960471453536267281313015989211829797906857194473690646947598028207951405622437195319186982779187404876909005130739849197239106684404750935038374822507266034391225428220378683972874616454914268361529989616057259026757399331591693211500630929511555253423597174552393581936251635776228825073874686434469681259854522375389423542237195776228012593117581346053344365180363110799857381563357492494327665237881636544371800756685415769903892503148452662739540893007551384591820300665382117535332853607159300055505564479902455400766636363941921568933336950831527697501232785382083132154261228581884442626084055753979133164586925136329465958837186915405486811473617980939770371783304605474772133014394494828714303186992734628129584194896867805450365042729104560009328029002304300654943190009257135076323245627748331615882161145833727879001396605442635893861522726519351729067325187964885564394983296108758005653832687916742077396091306268751751866967164804543557938899648821503201472118491308258758416631072589016286277126057950395232845011574705750537112483125398719537047235319096901059030191742528585314673184939062524252875751822599436440984521885566688059063418026360736008312559103038318698842093075280779064084048063253482796099856549861754603773702707694358850303393573218185760114035200343638833517146260504795763787055867129395948975698245074492204554977690631588647212116470125385844676473639399624865591489601003755831271658593445697936887647955224540072283216104494006164646348240418513399026912785579666425129193393648697959642657668485451773857890535368039189490016917626757986534997434309529009217247234272209357944403063798854410046810823512643973092324302104693574171851905071085312834137846295816856078445485052688742814695789984036451136758213668973918440243813996876974091621349074027639177219667440920383250783286251185614484046729759827720075617289847990684443894874033818703848416527721333461587589041664230893233591200359489216708376696886065338355859132392083047509993205777157627650184417465934258988609311199097993323223118117360698504943976680861928777183669116684859146925483964217101561030142162353800927205752682244233697382725146612634960204000149110882910664641102743172743984746068157645544440230068256724602962540289146335008188862086494116202066303588812208404477124549384475833352904912040235844849633798434808571624258739584098079692618079593248535691746090418883598138195283032701128462694858816535388674168670734288380323717456502734156370020774737940631971520604697069682224995708929261351680623149547055137180071336712210334413572693061861852011988334700935759497543935155387263155614104092872978665128757511584551321565957737609292504073395304477362749912845141476279569030350123812907258054074631168980243680713288429356072262012363148132237030471548811193097882154629896977418977955056669738375743090022291740514658728368034362658542321819408826994383288793387946324162326932096061893640178126569667040184351647443476970376340542709767331009712896202886176818423911143744658054584515692589165208675895158550821478924363278124484489302577635752899781902106823914508679145016866414651836775774508933969669289453805057966536865969161687246880833395531063340364570692194429002991237162274568710033267415555994850848552848959687215689346082051890246790962064451541226692057390618781183811125447240097279534337470594616232673300854495102832773281382194116979554702309353091587589452889175259510174161122083771744355929178280442769889872209334553918206836367041537757987027505605493481778772962437252281806648952565402987137521762070115489397470839348770863724903231418310716822724382713040927580095324513671090631030386320300335929528023912408022615449518042156519312774466668327167052429810401740449611712684581221138329842949936921220174720001472970095879570253987450112558976783566265172359551803226581887922241752961725366883901686754808233247414193125885244945066292886265386209757811354072288577254773896396633692778832289089055584725211559274456011721930120016766601235529374654985159852675739020307452133671653050733905791546490132781162910625994588979818569068779775222945282433816038654490870652391982714652534690284705776802059539272944149118911034477718858738342754074755489506916671974629567373433793160001597279624462073388645674411654878528086422228321920916393792242325679542742283801329499384068245783094855828714643199034022228609648234220900350657216833412295013750142235688241886863928941204798718143206164490215865752616223634720014323663789904850333784237581704598684921810868914064397349490885243738378850902225592006097772664747579116400010708355483473496756352266911824216012355244332612087812573613147619493862567822154870660025103698991779545940054908064510602167761876462222011997512204740927908998546505028970311305933034405435970125432783308469511225752951522321244396543821890144163452680301284619496350946498969535263596863150193037278963933590940931642828188148983130779937299147757216481211716664291640355281928341504048223667174764008066421625006943077692212677474177425545813572006699191816834131029293550134784785246261623818948183019589281057816245980207725335462044753388910921095286832379862975799851755130524546138295372221806662538848196364230501719787743338967592552159222653259440378838039430280536980179155486051823323612301993508089133289045681341161671189552204537847919752248568636946587123625819579808368037529566286794180734422289701291760472593686083806442554898254921999172409203807642668446951155965891899041872859031069831097058322816379652471597868671363457708056055737022078069671833503886508687799181058469107806122771069953998812146906103840427539483116702346501770738384784989034117941271778987287556548216364612081963916168993165054125342668984412262888249378279597790296781522464154329104849657654580030333974869816950484937166932239100691153164087838038063240309092383344180263900911501385045732354312668843500268181058278524052891119658379439666874676090541066163191343114326433666987353701018635492763245122188270391001696198988428942374834284103477518961080401468162609631856149361858029599561616262947450123539412508475545812435956928924202962728343075867840319116737028094407277007120628223904153884938047712341159228600069228250394373959847250534852761438403093377184999702898061857032763724705859264868288143006405820136889559536478471220604465741422457756758261200849415520727891605745920260955103022414872905629259535738625484536830085106142337078912500602861081550908603772673378483704704155111123502251849744085994294301069292124670386534602913844635252833589901721059428669577411326571214059920107793198914661195374494151362761357285762072722822223763551499632719178238190885445616619378460959547739614635597109676236022271553839842824490929653154398688186758053699724481018711169847259488913349667666917454727362768407914330075921362417182239459620723601248762200510885414033456192149070701116462043821763283702085934661704084041939935285805633467235214814785690922513814106963086298550517783815622498894837018608007205225861425893629629309605265428376521968089167287590570966112484608385973740994028399313957944402392092879320765990178268332410621396972603834863743894880517655083981916651271698275965173555535325394856821143702222065089725564559927864264240746260128630868151670314354688726054701585628604443599121463879326672010543078471460064649010862272363409953060533380302073725240659138127470165652244457842516504504273736036181257599537202015668937611775600934652540496612310751694126271333240250585744537949686516220015764539758227141451414154897614287986474749691856266139319670119950449907561559034307198502038823640957502334455563521651660936743144354868689866849303913499520599043541555990954054013493182902595905784332088785486817318561955902005415465551029886130563053882922975624782046954469342909436103370055353278410929005875832046080821925327931743859713352438007322764748916541702006866886566596366024243795592359108455765125915567984731047895047140573171324198717786204179905320877556099155516266370836605178191613365509984223660477060135860782828873299787964314580901688537522158920399149242273705485212575255842085960411941861786420981920049868740117687760930247507124353975085049743453446143244319124171161715728128825520195258266582477437951989157093986862671104811376371798854628888236348861503392924448394811087022792504448463575599534085859851647437091506195772662549614185260699325702195683572712115384551813770783819211946328756566186235134449710636531608280320327865104672615230416814195181549328691353897202859553423023286231828943800774561735836756477521676017418503657708862466133937531957311291402181326629956876919780777625398583536639211466744004630489226053700981063273537770880531261815573277508667353381001664052293985452820321756484297862662912829903276800343290899459440533849762173657704059166501282692710415816899800279423315695421892072052750481150927127124743199196963369627338526016196559132880916899082893887208703702668784243663800680932406726794396305568901141360939749942256620645433698421794263013978803718883489775246365902663148459528027225037066463301736511382729487016509105054860149300549090158124740274788868835959440269764988529503277614808501165109083156364888716661526201845527285973149165924015819963168970463865638252735887727504079624170595444288646956370714931745776594024089124093577195426933707235304580078685155339972114656890854919614723598117266847763831969040137858735248556644239727905354259266185388443602302422434694428957040475210428355992637059352382286401270539821220560012826144554334893098707193057887573205520360205072426330518854548879791880984478778103777423540980938481258769153443200997551253854694869106334228794887666681165146638058269024074210484630229747979053660134088002033104420329092484927676618662599238356460511664376657131625470431038267816020336734012121154837809466815396481797136862855837521341258940953958946881085810827697856871780298854819858318498135933576260050088561886198363624010359523634141563633266627253535267072585350918442300753014413711126391012192394780063068751620426607466754478073207362978722848873853874763678760911489351453329189651051998463711134693601460758265624799996951074454765748363467455651720977709570819441606846404676694679593167511013250379235755797148782323946652436911785747544381692299036906162496946122295254809914235085753175681218218829780517489868669458492350747972516507282072153552567385731724080783686534336310862700159498295405359908390231834806700281735038824192839743210286518664583073418047282804641272056365533828398106795808840714316646309531854068888060646489981403028115528916876947617184351078640956570790734308302116106669994275010811334651170429034583914926039169313696257083977595361001730786792937149161711233118137915790723958966567206202948364596422356908242442126898018613715333471439886948287175270525010507384326038020304183898322361549783379029146271401885368434132745833554436358623687686961143488615002609168963699740443473605476308249363566627559351318706984331427757463800782429740887330275418368814297890715751557436255996798846862557109069753752871463222132903863167766033553106659035126688919269007592329817686850773066443416176798404236101048264744939658964379666602751468877328295329032359545421341960698150761313458483026008689166338078280101925133910557852952038394158559689476169312992932272371004237262452615376145701142326882684767684110453387899604691752628715258946331878807073226642236031255248361278033792390863151502566781464623165804347564275695947598283003522212665204413817438806913304335413438526295866545444869622081602315899561371189837200888730064919585907699021071595083125585208529546002255492647948414974641345656681680672578484007991408867285843766821903686826263735722784866108700379264950688757317004619946910772463699409463035728091899417611432454074979861971871068820164958638690796444088491771018533558180759728009397051221533051837313087895448905038787364119421260949721443521349098604983367390010923043792862768398841596970105131068992188895660602505349683265565351495468899848504198663228114065711900198644229746731277049379285326680137788990597692475792010613881782466792678101086703128338897974549568404787289978510342482439557348791467803015941707040817888608933239372643098196751415156871601074839962633909663445791096128352572638908690350309517273476208878963877860616341727954825704280968120686941317359107894219317606538783613690743486159427624750114075607558993922199277659893406283305981449632445977534122331979048994275480751312531257545509804684075210168232775190969831230905677042740419946044466635072165040162019632088530916405549364261650318552069832718694872031105269912657947933847704815598772653403251113080573790186232710572466471980745384531340927344700110434030123681136818416569099318975733754314259431995484129297470489156276057276512528186572185890887730644552633066623099317264818261970026500258161815063644736918828440097982747524851503536759130944972608668182800416129361045081408897160812281248704750575258944069071333258170114380438998289007299621104230034218266360771812026693703273574922500735861357381580441444233376614957542566328175218479819894990396443775894427208662664730724256001096478794350465914109382921782103606602653291623683162242340137478900136982485862235852929876278415093957684208392259943128271126639534828522435931100428146670411994131852072751504306697445048036778267130016817990879608166008660446960869295379510988553406907379886282831857290762678070923059710229513472686056320136715909165537736687507061398809782510910577327804238562444062983318227433217766129114425602674734499951447691015388883426075637782618614901357079180188543515881520036735206664464214928395670770164952641486384675672459208200576295888651075100365863597114740547987982776680216760484458679826350814535766042605937471108121422101206517437606816608574962034033303574362494079930881399185204672770017936546047600514753788122578095407928601828850499004510717687148296216748618349994215611395306204536914294050174184576854120700241041401483470499560910948989347381695682261788009996724594028914035819059409560310984416003612132026238677447011483381353679691128361577397096702368881474320845516999881135905908020465568187113470323541421839606020455162126606215776991736634427333455927257918291498182505938669623343303790207678772627070603937480489727268675838791130056623454899604910613403583734629008324599583344004110798813328082120514863219957686722158849393993821943309707072830889989043240272672273732105095779212909525724763689095424780830219990098660664600000759637908782823152630296067109689993290129545418191204427850129144438248146149624020676814225231863429354029673213533821119449122634230992224115525310227093385833611350538361411835487905419675801969456966592944182587662738505959084582941816477155606929712210290976207573452693551568025922066441318357086329981041239244502572718955798893950676150211792357066236969689287475898644362661037136425755815891351796026921518396039990171447142718034294130831608976946966593167704422689231038831275041746368147660709584602631769074952471473598867466854998216944296744629318509260875618604063703798332191682828434727542950670862879300025126141009474047927423721541520004878184745522307017082809218141375159488449730382308536229155184481621582703491821104472666899370098850442023989224503086160818004894619649816688630475407858998273795725308618420815883798683814435064309022027016813817681756835688864690459030653204943120326622856605861097003346618147417306733315968029196846167648488812479820596366848867506536479928681872164601179407508380588490739796947037865444397362575120235658732382344147007474371571945785616981290744493616006894905558489722939794309830476598406574988120975750067321062157736794760052062865885372640469092505655067889783907188210861677283743741802516237896787037599055436322664894474208890403558208965879754207372408804880569416828189051522102410426438230838398905776476401184547399626462892376190308650639374882903927611620010584006706359439908626849685850554403406004054896876393191849159501780133884286034208302842778308837065649898864597511062182842423776469919890184662664492349265518042108711991524564733467888463701512992241973888804692780582234496800846633217082671474871511598533116106731764997487841100248423652979381057304777398823549626151829646534966774090534571986537636104862265478998917070368035822144762372220104133149280729802052379266366274400472110591434429194706212203997886936004061859335491935741879126352221395934037099215196876919914204618131582692612318656645100152899204951207143666868095018174766800174335621209082718544130418633860346536487006137587360527951258192649201167711485830151302974084450240399320998258857979287516750802615634136715930882052574696887021064696319478151480733917124872571242434142546968089406958473924049792529247149832858230204570303529121657626671545943639013756881782869433396419247785886124990336233760659588315396578362008826881696780242488288007439204318779049637892350275171528151791755246960845562809371229094712020161553047206343435901248343911035491645662506396887033466899948826485623372392326564975263805337408640927918833732301919902910881932984500431050136450889126258754661602160749859886815274240579148568816394992498201173993015565865885191371175624511266899786068873906441777310202685041786002060731394453118785483701654078540573308982089806021358038545571508077663736130415683051116280119736439460136109758543789918356756861301033331593652702083495932909879239521207082169718812043053916265958479841492600560559180051525405076564166122352211374411206027984441048167144797682611447680739900768153679497347074672096054371286901542868072365597462932474856550115503143110865736587794845762959815852519129987364014373973877828272740602109261856246971655070657000596315143771585553569904391718898817641421886480466700270917214232594698674834227994781069970426548925952217120915932850246383162726255820980960534255978238598912298769105942832380569683363523850098986798623588703323425469601113736286564977982195182265718710860118812111165678378284914313563188899265733643799230411400477255614931810851146292637398676895897594326991050813007184025590303082902055246347043004951499508813208714814968925983678792103094940135777686499489819867236680176818530885229485577074724985538219415397121723836610227503456796132078622046153199417940705672288559685163999480859062580924006730397087944188028147478344683946565344208058940362927484180438760189470648777916308166243281528017557056604222484372876714913407809182494225668780362336230102422053257318469386054542772183215115315127825890575873577324026648837316217351245782595377549913172451741833769014599640496260751047063328798495708903101290236354935368788939217112730195644826683513233809287409767119643368875707133171330541994081988969160031680773936243021760060203506838063369052396367109154005852903299368283157510053111337450347259021512080265616934907173870318253084726688557890578239775438778936292337790854301454219873909208301644264142664532668741308101614557378474607891478086392000232675507739721541414563430907838769298846548900367927253054922109883321526484762696988275268073252416634470282655403884778927382283500753902461819326971060911005732012776654614378973029587667860162098956303132155818312961193788653860415997446389560164471155128907507758816320289480148483332048661043689741366277078819053152174301166438164974012006148745881367617602479448361841902800226260323364994355555271567684024389378690029264515345521001072974121060069455941450083427916690922126820162713775831568097071930932371709105704670651012689421219461922517971047754320567722255597022259685469234392926473998864381521548875618888592538725722768948886435107840940819743527111265119160113121646354595878951774721117811278572689026314404886254338896568657847395344553200510365212045811939515427396948470745694669007755929834987269921173857969217811945426077781053700148188566448411496286203709105174688519008452359289788497805639385855814518665015163447789163925859982498353898413574732598316407124904967394199796747235485678828865654603563134877767071391516080967901116328623756406104817007469952404460514524750637021649960619217174497234846166363529740670719526113949473003325497095350368059121460657181954136598190753719991562779836308657157534515930403180263436672610472647502060370703973984399999455243840073543623312816256220277540349538208772625570088174269532532088739643406507755332500372514791558653941614088721120313512572522381439004144014229760192580417919677382696628165143380069378306944433914594848342801959352487801014741364941483453738380026506236301152102591067224768834047753747462554692190627152624187268157343893821567109840110788144460974335956221529699376985965983792297123089022189634355107409283037447410515534436838812591529177262199560068020174399818368490843109300559647097248845207224260548817961577542456513940137503410406733779015816223449568233430019367486337726221201642295111227529678030608982721318715002105245989863303351953502561875569599662590725680387517907492192995822504092875481892181006909521584683226979654826382316751414319483573046680584585212665029948517611393880567320094431265743603862407675495772040503783116326143132200656809715088056362506951977473026495771788014998994865408243463886898910354066986479915136683487232123075127930210866988696424564252409863059646606341141020664689732708659992572314282912519061252593110700236740483077608390241652575602872538139987772831920786019298066175030058436868591253587298950618695663250648210128131881069931429357455951898807155849076821806162189404663085113835591934327590996022723657250493531401895781178685236515118333605553585212055268192637057603552059587070043071481680011353004360212191957694893283406472755221454907288955310635599958586651275740437542277614402669382208340410915560344197721174312080546416806858880473652811660319378101399657768147174768245850793522200314273901576869145584608728437489057524004516545788347830642642081653328756925202626642852457026518896727726662854866101125312801110256766654571169070945296970336254131676741288955681104459277091326893306062112535506763078246823501749799120589098876858721885451013872920760016095883684298882307335063748952836193768827516289774784843292728164013219384090627514901820081170502958541545701184145365549706892160319783474627548887161504556147606374644027584966515367324138077127046916572364465866035881737809632019070650687398911723763172224641399637795465195774023975545495189180544017947293743475842222197528408583864658291451115135445597436163035534633589445087601874593339962369731537985592197941572242630196176851206033724929060051233487394215827153820378819839071394597788697214553370203802034532509191754583870923675073757641646398051750221592936266795210758940307506717219216052773224798699866191485630607754132485147431267114933803497397557000409203217718416929578772856760069088083360315168023005705910766267874023018544623142833263731154696962919839747072563674208269714325772776523194640573903899961983072062737053032159794668331931065253838304453051717145984442044032934571106041129140189937050214131049943066511838640006962098161719044088574879580196662157130275985613830588908456255774390891018656539953836972292070940441635732731306056478652746789320050557049156918699530050211590574504670253512806734813064648381019594736912982029878087980094592129384495615052357107442672440631249741778238213397736436197286620012394313602541904475672369125994360710761252428220897204751842563120633887924449402239780394595947391285855861588401089740321722507136151718318652031683523600895320182759820175507796977728243278163754987599837341235538309971289057762804261874049073662942055247804795007130337959409503228824347009911855600179458042481816185420912514180330463084027334763388438291792447003535931299720375808964224017965238775675170647078537155405357075462244088889821188800423020807816073174371927489856562424385097775888834162216349668685078326351013732574833607960987196750690047547804420361098509430751873714448549448265317251356994418697804321847194960272927007435629024664713099672819902001814772736629473500267384358152289939499838778639770494021642692070200130487006389578530240584682975997148152996369349629296837913137313624235903299404499587610842028061495799723692057682822274967424449553875838373754288220346648848359763362110629236059494499464450439899296625804333648119393763607309364689537416364067869637950579926809117333570825123541460622215693106001948003685278504985620015324890468068015500291171236619949300399563697849844507809843198745237102575209280070935866539147869847053551062387863910928513717541449072536254313492981163476422718052233968820660187912852844739665624639573938143809804535192817068447239251385172598482498807785126143701167362740425390569748584195412570977623698783160561157515552713184587280838825763772977130231360252879900138077406967215796609856240786571690329503551035999254390692461052619867821733943742564731966700443697344294028204104002549962906391044462372778893861797461504877465473804096403088518991061375133347605385066928714955938793234042621373128394535746597288661742798644592909073091836733719946536993260621275277287831854527105163889078457055299153612541901943366091494214582525261738903176190888181693405424211521313633983431322945945385985420402350776223266351402963307512957808656347940292944892725465153554443752355391324406024306431757579673342646236569068425075737782952529240455062965230232283747927150861044517199184927074615836151080736155721599419301383400385851136678436895524880915344858854528041574950820189375715148664019251959609445554480175845329549262318561747943787395114399474114434705811020651433599242742425752185121047169598056914677667405849137843566526941234860311418146497942042765991640735854108927928697564335982601919298871778942212526311018906058880188917485525967442429386486782161758634631555057156310650531665892444520044377640998259952724361198839980228988942652055448977814983719983258306410571438670951100406996702852742509086941260373371932580038971537479660179992412888892891191847019221551402220533476824450478854005728756056162691716311161319920198633999062337988402272972778611732374313399042701558569404076801471973419081892221326007379528986951788893217466449917075565220725446254756539380307749921548967593396201575841668401807387927893288983783017334355118266058857913589582892655818330520468571071435197063808322179175400161909205538937936573225170768532479819354213654630317076778079823921871618528388829704481197542405796151396529149332039056843787458786051188049408115668980508874994419722339876016916112423727826476658958418176270987199944286625130430238210579214351924182701629913180311459360930937585242951831220331895758767119478584176435555357905211516733590960288219192064565078319055923787244482746563134721748085118748750833501193645359655796739241030527256123799639616533311522714212400991095417558289230500515548903547418006680745421193811453941324276648669395621964100644168561565138152183919567870703027167943918036091398294632216055010651721253405190782560269580460241114315774765262802966990111316756066537468410147340009488216309556224035786647446801400113877307262417672540847291767928663245248388068440742808476272070517861840182373623983376559621547262252427683175290490726074707638020589369742433186206753461264605608713415881847522367220845459299978964067267953350042780953773477713027988485108144591632290725558041117021588635739456566883389002530834418401315940306635332265733836417866514796557228559083929231222497160724253275153221031944323803136078577502728372870749164795974012525774669215477849081043839736729413126266506319324801154603588013577422035574029968198913326968133060605480744927355222246283356022342307977231145714970472857932030586249513313664873602933146261387880282015983143344225601901370998480501298777326967030693608510739836800209263615261251911524294793977520062223506204844924209469724348887461982204354130513206411119368316159733959439894802154304137535112335783842774494702871738943430536102320990332926224238030975359259538675809630018287543274531079152754273429181459373905370279857248373184375892259735490723334849532445566335858160197498713277753705039644143436530705325128547045110977894728880599201925553771226606251186181941251226272044626748150994421302318241819202797483721334366962148877280687467686945778276512580253897419250835165933918796343638866724582121517981712524522168929377985677799307962424437234430254347263293045265386615668935663360410362188520251713451380730413517081865409225898378500202991501799464623043172430825801037684417395582447568459657648967459463153494009346452946193819491471362620524936963575802349255636230953218863853468927324081963721418806569312801130066762711092691212695673952578232201874328246346456810885931996133742022378864502750021102897091018083332042264132533603574115206462080874376902989863515330936728463438373728002582132854344588803165877223000063253569163256640658256431610760544228995138571501031911417689345903993516829890427276264862501463778884269277756731442143119483499766190757290173725787986456231475801208436140119181456411299532181182013335655854239331127775738781865897875103335743904154219998920690201867947223360967438302848616418157103689197197657367962306210496381453001217015127554737602761802613503897166933404122258052919660320899285475592282412110166293254870248636034704107734007290814749946604581696803801573716632314470406024389255399255254415271260395991273746857547456945053196529875326933513847934077370081209085492492221477671659130663235253559414123834143509059492293197576059685740542956421014305242622673028815422039993645547509046688472212706042304207678279633344466492885198265121199781502881560406867941796027514167641038580187075211128174477870771972337586187938231365720237701915786038807476218404765068221964439438786573410747015720820432066370243556873096085986530174759058149261169168878910846354562524337428745936193702538012980483085914108782016764398919711606476615009827082678974508747823597583914892738902108918045610351346242274778071306276011742650179163633376052706637175979102888647051087050229348862343619314328665716308616574641897661097251847458836253497775331946910605988216467329897517311063571316113047986259191888402914003308533003210909912743982619305812772597826520031793367970342564213157111579710415091335121454580175330288642416181413560842187143749230875172538630847284365527023384080358677417518029211898247956489499467136027929247892382319648511355089820264329093075832570436798925208950631677514659535710817165895351817359536325244742329793884128397798206236681357180413363503185221669042484808678247917292022919525717824170719457067689662661472738977794310109068186563535497633143228567998396097630244784105267588184724258491203678421530251061020262011446513294461752931593673965187559520045066816358963112711769081130564436475033071295420783230178975919661221839081663562844032577449004904279037340032759060738375121810178412429896389480618032271136695859650163244558712618012247231402880061857211785169085893550835865464842905017998199086406817279620247351941292093787682954857797600558200985506357244563073204766602966026723927222717195979362967363694716783767155459686368817323097359034595924853325860486274278274263839706077754505386952078601305056784887513304191606371956518330249344376131126148418369699327159234520756792163169367481281356631217286579170377195412909173503289036800791550835743119669482658956929754987419221944615766470923651926912848243308516480600524801209318916521585622673570382416461712735466193400820850325478122686811654278928438260393395313498643433568334776056474320059954881913170558999932339637731808974712714768546630084454395074845186667863735497720209089416933998019534991030976436063936920203583253197829855812220770307703734314232290876733423596360671309941672508798383604916357072779825405407270777973052413313729282180487946090812142468769698534293050840404242954840659190129520115734626976265111353021438350570599900300328972748868056008667312690200823047664258790043943199202309987622325222602516203319786882660464137119707718643443540995550667153577216370149952342296664147234675571798920715202920995616911002839346314646070912001592718796222274450958858875806978876052739929006022704399922107449192144308144850030846361574629301779018451085748483884957818803757251115867867332278769799134363852962222934377720716454102409436993059211438138774940263571012184416035034949321827719706124510962201311214352730372279243950465734871535343760290829375201609280077227803957130505924661787279446604137349975315258934572716022600414850954249900924946889821809618971298497998283554524385223343901342162000019677792658692977327866705004770546781728060327264095361804727517195973926955893726158169992559581388871540653693003575214577382382572554798584029889764129530142948995113878073478703163434783115866353455849602780007826164985247121654142349932130061057787164212457544128276764651514131765026153232226772660502747635894406958032713019364667753108317268625298135190917163497701657264015612127330209844062043924657693099040510114639536832355833262342571224249536451104521210396701361296189655726976546407186024555238135027951539892134935901580341396284368844122032094651669249209077034654822631992266862013922434385231284304352866802422558171697440389453016274376810945634141266449759035349344748743341922536342407849582302593709418283448673189043231406047065280209364700911935524300653285170976128488794319273799294961694446736577539341718191691614213599214643223674840143466062842330146453584386202581517811789783329912181306801509744682300938463686345535518089187608112222739956487249013600678254228000757377052334881067659620551329309316845822943305464226071054252697811890753111908076227632346077088576436092183024296810952103703490397553419019029063110051390832764105999232817883516698543168791094165179645396955722056859024827618374636932951469071978480343835777849322369205250863097310883427067072114726718806636360744688470023433536924003447279486577834388868171253182392708325969384853729164001266881548326844387062078990187896077246561849345454183912385984700407723449389268916083671566034470914724493313633479417593687497696206916905832849293243359651461919006639484144398493324878687779947864415111972848354415138897126686920113036591233005437406587285198589967103678260823010043472098246351806827195802940611411846792479950756380234338160109986570705564501061842244178144899006850925419023465444096623220243842024763340023301860918392777474301529491832696501678129961234402897560196440968143980617406028677044218110992705571611017946398325163955341026906750116381506558781139619463315007076328878676779866712208534918741513590033947833097385051138573835986463065173286644859240415961861703386054787969330549332230346369379806979792730948386302758132797021480480703499603860723347502022831024294228106352053106725300092344229549518117532959890110506626167899783815070663702442469085362669954263783466349544976717659895081026719291354839241933215197277907591679704024981555933971176274122041540713126133057445463231416510309310178824270680368462937145871612700250906982753139789447453895478206927519778013803572124591252290031760380233313676524048702858280478341983387953913495841903201823840715700520343108209439192259526811981133239322375779805616225678272316876537331702194521087390507804597080150791574290883746402114787628665699784333790924311516509085197049159344606456300450380810070690917839010156556458934927909920077481151538670178022634775527294061884485122649309422780387141044784781057548082814395430184691915578743861062150779732450017060246548739013974453350347497161004603985371225325866598768799930530921685781922493647842741257297959746905290247462567323650178579018359700149343626659214774427245939078445787940182641230701917824445385186072437891778955364722893152567122593260065131818136874952707966681283200391009003978254369642812198066646571601748516725046803754027546215072693751488752998345772619684690425306623270663855246322369631268345639235841742876763473386565498687345663216198559683190390834949478644058361384210286214266278520443806478401569538346081687014687959549941501712139851590825339607932568575719066898688014648416305967909277822338142590965881898235165226456602283374529366202760603834440700628592035008745543123706025119557956816332476371773717706799613199832258720699087428575744714562071063854432202390782976634455048896323872775598032651430750182736713203614477345126314114341405454832861546300235039099688295929446590063269785199521284144605885836162943878929810714092404704399586024443436328669318156343408437384011438789097635954261052517738328308769932491794033793329068906589715910379786999845854517786414727496483820402319857069973676634236340093262882180280461149683398079185079826451797208984292797606367782631315426690465418281200483600159410161597324589906511811898109651259376027018502876686841845306758428799261387233861737419379480622706081448597387805842081187782402261358880272032428558513507439674878653008713997687181863816562588884408848155638241391878639875278804992201457294760577515191797853611916965169611707184630433505478945292657725351484339925382248791839217790835559685243687491429970760748625955387265696229282331380801104593579269327728406932456561058424533063510675993556478425764372182722287079342102370827105445755565467147456377628185922191797161519576462595677038356620416910338562452462531046725717981475368176443597743563112327574545066027481401458997254134325145449448698771587747513657155186263811023621024718086094019401986751630150310734167112536471235616746960794039953604938800015270513967859007223752266981971648343106497530585939882368474448963606664619514806065546125915100818660111424481646746582427244115052573333620673007306916818645678704648410458888683075190074413140806564453858647708404847104114055214601155602095712441758353177578326368842372486749886152338442605039199993842320562798856589911092948919060516456228099906931520454260526068468602125500461189821819834266047594073491621437362941013154360415465075419347445597613834410376291210108637562722274375546637970841117524814698175813174634768633057076719856178731263773320199429243001450339646342133474153348813669634814063517704779546507100438440002889992172757585363960492207160354559565405080814162897650864565461943850145024838349133252600018457293983286580249782306881967182032652606667599498795493752416347551393239787791194900096298885813978241908768497100598147463533270692629284027237942111693445122472334169235370989803884037216723571344387628227800714300215112807654446098770251030893892915043638579089887343228564239495058134230684389611820593880331478835504559700124884009705553266543891231915818894424361969928063953435899267601280637547205663588238003648048897686831635721282804530278772611924137268873581412380237730493978835715766647939136012280402930070818702203547153131452838836074298209253524381402845853306407802714245940273172925902390130885893860860322903592930788175816697002321654230300077669541599341659018643129406491319500887520759772401543078838510615210835212847150114547896831838391985010119678466299652436193075425497633757963720872766083154193371798707261162384100297270620688946134415223921510865299077568207610278150256089262804735443390576889110426005760466435941200692292402090497198759349044606579182158663694769185395972042992371748607437642982382446556761282017215584990275718202140230021061216561770769569046025618855083904990095376520075782287672548028203010761838168035497452172341128864444131521314381274059290050509052216229654764218719255223837557025405940599107445073639179193077613323000161795553388986100939897659469042140613629430874067179670086701789174250554786058829909068537001491245663910668364222196166624024378989635924851488430194509285956180962999910923501930858529129175811033391090824462852259168832965599992398375493772723018498021942965906673837644901621978760844219189749744479691481666913876891304990750817693564866614403702702036734458190815135919556794736477422170482743547922783050997261190466272340636154602876057328141153292131401435425269328897056852579588525543248016431953473720351882201000645559658913214354837477916296824695190350203940225014390212965199320123437253631608407792239918534217462034515994005962429817363067035203391089818502299053737136259515974184463849136051392753730068958002126772828650917539217852059323488715623535272144371743740998720022129442150844060234432811709687664083393654401937931902999460396373403499720517752384249235089171470708155632214531424103925745700087856657397352549165992647549369713745553698240759223531200612745354985115399699163279643801532018323614677258687950707020492060635975824915130052924588080188851226533126861529600828854007102507624642336521950603571137121890135183934320353903382436824307599223104855400584708724829419895244574314010896507587517663277690472642064260764876860141970958376074928994280484441763759116231094262844929573657056873208627595202519295581598325190779689419047315257025603532761892092022505813075583111310408946085961049689535737718727337936933834762179798499332723262875186704373973412607660185903101388010955691890264449245720655783041504291397166634291113173465358455859017982206775318882790273530604898868273914826724727229692154241271139101144639778814279137469543959677005903939689086728910656211305406268630647812914586738637293099655547418539744186353559180199004654336757973405242110434249952415159185832998836217869413001602765438658443699718521422681579826297306590549656438377989034928554192423657104441554616931840398566837652454921087421800597186607276884673575191560308348420111120162642388921823352725431590024055562457977055390611094432263139003912701646296411860979065113435859188391246512397731041963323695855526419953035980365328466268571277698704904030893362633439925899615346731570804727664803652791503574253674548502367778510218071315720063189394018067010929966426108934874329049384244770816319869763819747762709911231174782664520858954787566832149836900842050864423019066440747526457996998153157980088375702573924853290868650397024111147926731920575087777494345486543218724171662616809354624299452644852970098717867149928544526139846177062770706504253575470810682813521680919692461741800609832421429765237238903862538872994005591663215899115942025913221518566482605064143324851962935109934132257406424371919390286916614150271680931318458794113952549570881343995137452269994449070430569642179025976676902658310010915612246437994395533587439657111599524948379435953871663591690418746007132254227245030428451365813420240945394625364341814201649821273423282681590845184978690338741441069146322483950768337744945413678509417224579678269770479410975107551074762655539020915244523582061599325170007072176715719370134235398108220894435869266799517335374208812035478769634575701114083630287570923781911344328196322966527439535697707164740997680788628003390786593917430617470965312364083148811370978284261366485204068894498677130908332854336750425877633923222089908891310708125706912900858047175269252518723361419570902544359958946852456164112942581698654473474077995502451643554759750025632536261944218400752321335786886498578521600341163917297702955474335704717561953446364761920078256970868241604828951962425413750268470837374438851598564833689651055626606835800422975176530370216537088517606486589878460155655499997746652407734076596973665581398589993051896224553919646575635928416780251446450927778925644384053636119805555725824656535006824430940376357438045843563733958512135607601607428084198549760216495903649116884410770866773119742926438106930337743586103984839056675694485931218265359867513797213233650140029277156583375924246556993773470886920690651751150538804474935968191056339312165725837781213415166557936129361773799423821052738313400133422158544301991555977036471493320312018331307827975393065269413771923659367244379190029763835880775696764936854351790562296895830668840094623189408433510586799302734522148993373950681431506557195230060214652980644897858317250230141747536426455399956067860110022018784662059249501347475802536643332124845628311151979862877935765621809522105054279242902416566511433939192378062963733488851706703990148637230416143542120019887934617023666964205974591362621264489597106102429078482882412356109855037793545900681364971018271480865415239095179871727804996251191253564321229492372288911940879466654785846167923720560909078037657243912054634431618569372623538391458041522717267072557904692035324082541860337824729668545668771681215338563670938163068251221410019280707944366327219559650984235900248196205724404449622766611001316647349199488276612779503529055891346891824034870767007506119827415075245893589892567650203749869950668012689124528706591232517949692206233458958411703411273681772412599732958403748013469680161252774490779730150628606681786040595860207036503365469483334765084747660007706582710112283182676338260591674069627580080305124322082123665513841667171013645260317371079113851437836783491277229350992623668462319255882723384798569094279612866238064402060552340430168271609896279988060396578071907688405084073736018025283050465816477398695557961512341612494945055815828663066650027095706915429121282217502710072569867746939500775354670675038962913634579026835185779220878542875609835599034472000544438762940932212744816784972824640685611065983459372544738290007556036574713233264809079932876046114827196770014249341824021703841137062036939292528826384211854947455332443397306918884202385198072672210565524406913327178502188639552010636722825675500024785392399411011206464797026338786389232788574144599914928947192909624591495053325256649061549911059918198722913207518491719029465061227508462003798094532212637095519465975927440438118746426060464733223034794553955836766237799499337462737020817728721733086470085529746807315835490573186169239255132950978832990249297646042638145337693873620043245179430573496183151297254754784191209010493430371071756798613351659721907330358190111124475130690181235226025284221071183520843793895252366649949323614891552990586025257358237042134079033630350297885422670881915488508876185027745190198374590049226434842325323616976896318922483084291703582838386621865154994598579287929941976356923207366736699054447851108836016433644613420502707443119553458728917809771004320386122302151345285633407787127538697126073992436649086574694533372541648104125837080804333262084973447795099444106988867266210160761056601102314933310041837495800577850840975802181493219703461562648688630445675962035828355295712766124044802552897807380003651322674651782116185060682816173784982306803559277773922369443336665321059699080603000523576498428968909388208417017634023003719366019875270365303814699258521475607607456136485701968553884288958715715660849054790134044311794697018092748154548294524758911350815563429721397369014557384559139538927706058622310364958749673162160114593432101334387377675801421759054585359415416027094632490138704425760436196802134116509608884813186767072782823594393482302551019393680182242891707928707525782059034606056679595212222325087292242141665887759933706903953814481135905787178497583703792053373583422028718920258679867496988810413180581975753278557200701555588382333456001971644776101209845788953614029575234301851051297310503195835668367817573974379495271413418171098624078946781528890752954994670072612123932375254858954054781361632705387512981852736002414787034402130511883083360415382508004300580089534704269741714882645279911767296420340447867278249037410246506645737880590802031723698302474648323270847980530139855588626366583602414929880875077172119898784775973236252581682269678001535224428907900888559469579576181684326016120401622072987965166935641179790431370577993145086735617912060138382694496465058750893628755814093069115988352093130609847654166610728229860596989520295852005788268956784330214479182922687078158275805760086611069313985537194274211358767163047548620165219264716417710742890714720679124635759905082022509469828596891646050252820067885627493323357726751172812238447689105696225373338629352923968336637128802645300551390994753874064774291415321315804083487981547346198902002074092702997829335128729828170524249755790271196379015028928623335196751501065515505721837546577456064366531573677479858641722217799383337110186471963766568553092332180880841196273296054720944575816073438734178435607583268973580879961938186013432650355766232368710564987263770498638036676256041968382489512688127134313792356678125525651058289652200243918018681727439374628967535918705849851361559401378545032603271697515208666308033267360411261743098348380905915745957113928799385081110607634802051091586188022872734645071505135092227158316753217393996880992813176127092045079322367794989009239221231323256544580501871429281355741316733455003126458664789680137236173584895898579359174519274945939303118373204426860197182166368666201408451225824963203564108186451990587386962235384278340581403460316586231944441173289613645607583856550355075640937047686823120778473984306257950282479384819022977503529611913959213636774314303274106665414524950204047150458682166801896998218149080235176001541356135938445398444769771836035927837080009097498455419843604749276912237054764150398415425525675502941629989193009512043387426379635254979162022926368055286481837850740485986002305459763040477256625167782099593788600414449337978833378874500101257630403274783356316524283499523609770149563315045067397363164573780169316621837557907968889139036463953943296538734345104554946060105043580033634523067688552985490486832198927033239347180147793299896464228904924073023152433117673929378724399501641690535641370760518901311341618400842528206918111399687736327711951067034896669711565886967368995682844696153904358926024637302715525325171033225900665572293763883927922260642353979442127691658467749375200159285207199050501892160603047610625263794988601747193955303171243502803084277321347266254251933087323253823414504700613582491633461115990705914292501676424408048020312900867864013962385108344750885286113960604611808476728490050553582118817793421112291144308675645051042239882411272997716134488959336759085031620034558086458529341519010797766773807066410654693103174737410045641634952825389217722949028635079190679880820218295811744524818152701648532540761324206913245431282318800796438528587339932197120714477896104530733127375411063546823222664734216669667103927152443497627607851541673291588045596260235445964341083498411189641891748246656030564580329860308503769194780932432068451996833677643870410291417478200505889102212128585933295919366437884700366992125328126263798650357873875135831121135682099452061950194488488310058433848379366020787698362761033905885895636228809179224845030018245259567408066411046123751478369877732211334974850046637470822339961528530915442903641704692564197979191898840551589016247265989677594017475140115318357952276449024683101069403828115298986486662294829025368053219118951561754421177465239923089648618298382616767772310358341839034339552029261256531162126720125268279773604814645727825845827276273959981787766417362367987474669257915325567397508269599770832794234550073447721440814378485652937742554036625475148274342560106876818614955226136594617028837870534067991210424087059124679339535542166550808523287687537969236815292358251457578893854219490432489876877729582771868313695583610566980417260784051855111804303688594266371220634673794489758690963736000555409981027439527347291495633219428336456936619797024717889567978589270634532081815009384897084742142071500848872149568184838182424806949974891054333155882445704979688907517908096595294438727241510440925463159435710272987893459597256011231671193548303188811245262908316179782169452860622788503330066118688400188431975426394902560340584536307039296256673918420047812596008895969222552759894299297346110647187598398391815236251897417101925141426059105053253480269903290180131503091763333511511846929062618640874546997336062858670962474175976037731447279481441819832629376900655021292453108564039573392409752403743196780132627486363568606357623529725480768061195077083829321195281898986186370420529143958377061282046576247066737440201286030512776347050363571414012364232739723530984406376596769388247917816108996358110081752468737768616853066275039205270335154928608043618210484729681600554538288198708287899227994151830568231379448273832053756847553015072861009459138993200983965108477755986100111488663479118324932031332342691279997227241743843358509233144764252610429634333890118113659136517127616988175803906780510193700181939956716029860725360819289661974276868038480970546029814512207053224488466423302836280214977398609371318916914249142590649919128703667484092990966399372302523200673163823114796909935614217735595619982219362733930647633052310998641860346112420149694806001300547591726266148651470707290151037235980360816957243960683023620945816051004667715691508632713621670770185847413466565598303506158530933417317161648338267766792989294458080185588853406314468894324204784043900998306424385648410896869439010888399806462586170320708733345123330150054153882847653391138585564820639375123215641139309050494794869630196542425978863502180266808925221882529626606450905816338238683469416119796478295869933256534733315047084780651107599513941996624411688177675210462469533156990900836784638286411966181407718883276046839618576031107698938024485460733258068408776299320880635054920818221789417128009221181471176182206667007986695299475636502888600583931872368291530415784575846011564917424342116150170561663811042103380967070916731648198592486682634401619170088866305259603626543220447861210884455596368822688208624853026471649127401186972008947284489290125558342027210571674241286872304129601196271034269396569960498907629378407493158774734038957873025559862313830120054950863755622855638129763978692767999613312120582968362046342684232389930831668832599979829309201960269879992559850890566654079878008599108500233367534570151737725595324969359481258887627199298633298911342358147300865470808883245623579842198506893602846874376470447598739157431969918389634142817883295978417544317868805359649905982282920321484982764788647123727341741309513426431918424963580636212522118222179745815765402148974760842818045082161483945675366736327794079034304529726060140563375326992209949824241266364082321854087121455504802940954923695871408030834839406379617486863626272026209770393498419767219692441807471979518305099602022005970718578943055593229202934356229200217730885834021881480075014118519884286308255420159222208974649812671001463762490199272729061192980252932375411568724216901787138980492277763655510227844349427863986959204011449466855050615712182486721839507666902246055895480583499947444709809371295961271990875232392628670907979741656535592879068208919515730780711126055645813786224566706308713764789122940083065094637753536061491666767372284817831070382806991115698964067942764702159995470425008900141354548946107067679624605845338628343745822660701337180617992769789262650483136872215137171021403190373733975768211680824584350382524473116703957679138129412503797118931170880174292639820612993453539720727982751881758498414412510265379766711232303223809287752834210185213536803219262720752888694836031769632904569205731689902311589209146501388009090213619411003937131910794822153347966411962480299979431720972403482434389209649610694045600247593716434529199968763846209784900390488452231910001287649114768481350447493184689599252417187278992464713665765364794370445191454458846777474403291060684489807467586807921538994835368446122760686317882108897994242511387183369744696417073051191264072810722378256703745463165100523471795891595780200433965665120004712346669980908116615770977268112881271690611655907455739346308997815047458052169331052044810942171097477032375326988511964997659874200155991474703092734206293376439477975686366605842480474083776412714438114558127244083048268948896185600952855153713031842160239891627609944839282623602615104165703460653418828282439837604159990078224249405260237676511371160974564858336912597861191512502091463032681691931112213873564618644903641994415923382532198377218070819467408719957450801177923140657755073117620517423567222769565561573032497774267829624771219320009530551188855233796993350452350220179459781868287752386861082668122385943561610749236806777241636696651577450378468086762670545629023978107465481067826554020860860794122172580931956126751047208889086881532880814884438448091401691185747938645647856289109254538851782969623850118688097326447149242994155519852219684029785538586388718394693407726820721435940085693938445611939730747549466691070705428267733813205701406684514364720492052898497416408622340080800708723645839990704683533966150570737830732852376654506143244775577760841380245530647565745813773401498917859077681413437174085860147845684899133982997670751703701521427263882402661919531731218220206625331053018320031475631477269693740761711614222656605511810321302323609513687460914537096209864579771702247379996177236796636524727007877607382524770625258734940622439973048998859182377159327397787471052837608464833392714724364749041675899852991903884737928264295658066343257466052570662574700443714080035022436480046286858272769241476444637374466693103867461428641836464261997501213419282802115383506980106057467287532596432379277650957150833340181544893578059709248889606430837199395577448520417894429718242087150861202615233866963943749772801246919960955051856379234248071771065536705012263919177016475120617713204529563247117319308513181799479898632029516913387466264109338004701699144488331915703790077419269493790471499752869299152916705962845444473488075041255994323968182357651470142045480513555899793132740890601309704058678248917718227926379928021879073137328570970495309684962041253617837292561310509510122114610788515449300898683539619151982082549332119759847929245427718329905842986913395101048651284352724011843724836727918525746475800741902399026282358461561936574157285270410195208628757529341901028943208505186680344247241438041667522370391819519467225303447477613919903274945359812641837352028346148210309106567672723943319614550105402705313706692790382984784576411590871254661204491959330301840238796968446843324846616588015179391199085611959436164917460679872701967447096102892656078903539529765927489933216218718593855105587166595038066915875806015287312730662379380575726728054034305296632673025397694870322286660127271082347268979239531984662724819974366768377398017561075575337790462696621575903312504437206387496989288421758184523132738290093801796466969881678602403745762797451455479580495611790901874895681832190097968241344486723096402532702583370061754564753887514754582595314605510313091017415402241445920118754827021094508884887988052039275221967230722449461121862289940514679386675594975864045592820269344463357241857139278396739340533537505055156543686326492625148562437532058319397862146501510329620295023738592671578525419451210931307044115600364863675789870190411315259747151406610923966625719825177947440609167625573192228577130142172153701090714705389832266642484491618368192692410068739971215470001961197736421319231049440298487903794137075589059925196684044379393158628400378410797224325372422536191850744488090864542845187998889693872046880897211193313217919337348254187129792300268331723234954507030916124085928156618924066454314896460317878636423774493420662143430647060963220679429755017346255910647959284297020583954469796295616000545506986051035192964041347330319501887882569606881275288047975639903975858147576547979330829987481008284440909481127580645204608401177360655681694857786764324119186029198967173400123228583517282755784648713206878693153488459788666951491805385484091721877473428968789349707021300270478530367976280283249567276301519134920212363707166890469049653730100160720271434788636314221482093332390535510809047401921274282623448729750072317598352524671610647297761243885328811397773201415805368455771809186093444643371218558930116894707274847970298157309882698491362040247158709894716456365165692850378128412256712975472551703418624470577447964518307255918098862449483562769464226044390401082234662311121981741264373826890611862057754916325004124086907016640413253601476959510989461029561900195194878131872264953249061247168518472351838485672295974501100776233594286076513595978999550981675025563383424842240136346377587280757231730408139752759023548705561263029194272993823673996326397960041866022881825569533293321201537827697314048889870038135225506238252639570094865972480802919959646371618198119948910687744081477064910557682624866944440327929908697674924921403853287943023930686738219388645754399565935087573797313632629473055037062207578937213227370601343522446335331647722469867778933225778321572781043597583596300853762092809443294950438939037440650814520879571448147648626476122408725551212140737456056915299592843320901688175424018784733270578815608240649019558954724792187592114631381542908347065283341616536611407352592502079684374444783423871811941043445109410250934638250240921724602671154773104769729419301998486028136115381716250595170809401908713259141026994429562449477386544304267361552707765051695551013257910919415964666963236728197890596590687898834823919593074041342988511291274135323097420939571068913668767255596680537033400755488524879115285985307037427585832322815438314618589050161082101844764768857835752631771790820109554564605852869090351419247527045494201350665226155939226149876827963609466852300152835972003065802883573099892699156064581223884263778579827280333284144533835379320356441021025234911662373760957494738433294211044816311200668776876159992981851014104870666916511456049180787855964930200273250545971397806069464519277939452788451526470039881745716484106209276228470257914005718378319842370591981473288812842454052681544367715683208350203882560204544731684110462129673917696062586698585757464956200337648496151924624716070858078947198814961399941882390439939355343336524517971016507757887177441116366564087462833282781078562592651861670977618207751783435683248914757398121056999903112107379554549874534282772920341456736432974702949717341782619294385199274548702174478020568645290690791634853347632975873663378982624722215620374551337513395606621974806443541777789717692337135847311897097823130822366642993364486715620740600089302635822050594042292096460283375171829112312690086987035658308376867504506828789795829214142913294449847288196269729842507981434998692517603908158345293607031800902293356131083245513599598886269982692729806673994649685889587607742605066469769043496694573532010471300769459284895911253931129600655770401558757180523744159404134102764636649416031407076146280091910761203446463304816563185152615752325433266477761462081477026403207989728905325918438889358675453419579084645700150691577553446799266342283464151277732635582409955645054680776948195105232190320703540822972980206279388088858280306411763630988816963412263314912119754957279806482027634863937633748454976597091427569671941996441641758824582734219855974976446413181851671956265067904148961241600991392408229712248398948548241244058696429335820418980646455256654033856712315380097972223231552426106251348972360429217981937321211272599470129441133896451214327091010621655230928300387893594525086786273862906896873645777931197130438225788968734791405950213062886568383234291220612956815627675796035936590570211431107962871473517047808532833240257438936461053709236384234815868748811051097344849662090839332844144465019042014933951093711063177386875255915139199009826792165119233831959802944718257760560330637561972902205489121682387807311319968956514923226024280561695786466333368419106903995738079805399684409899549365823033817612085857682324891995542211043151262750592558795996287123804699888595879637274179272052100849060333981897564079525157745637137954025729464086055555950624677845066298961938864068895646618948762901824480919904027114788932961918340149741294105989140582806490783816487828904029275344278808133325096913502597923840625502651568002252160711085413433162706714299684264476373055566927145337720146685494096702289954663130249204638071720695199057889290299574945152026575723169155864907110163118009884674466577509224868133395221805913942632241950303709886831837650658320373435151203247694723936852811208703883264132494554981791298116163355199869288998583812350370385412115868517067794927979990275068830560264069959396064845969614030688977953750995742023208039166177198643581670435485392933872011261450136067604886385982609464484841531318757638380028554114999390605495159035735508717851154087379817809087169028888401565738423670675806292156966556236406808176255148142806309275816461084992622220691707942088840783855999940471795615926234993247444606712826780861651588455319506379708583888038037167016322570782572945315189423090279424506528662887896471158361304809186684402986010150548984659603020415008657611710539591459241258396045185045477662797805614176075511242250593739871667719791559767160829904123053127659555931172605813240984675482838300148998335424236866380270675882476865650827233034404955448571008828441190572149647693361608457856379944487422567644910741126150384433615819932523033104609550377567804581360484738875006009162983271637312192749082890309175328727625982557428997533423343550876585058641831257939906437569201119221827225601374369502074755540935601629633363986930077901163676358939285880393755833195704027045862337010430925205079151506616458417675492620931761496017426525964537456479613860783635740182812154750428723858079275192360050333375023840317967586294872003518036390701727285461415273890039926601290141478315391937938971711962714983573875948299429246102721677095149377975863534012900647778269618183201707695098204898598772806439881070349410228920320498304303114228646248710179409190026096542216035649124709131964381534183371420924339253807994769618285722338743181994648054660866936131380013331483126604296882509276763127998292088478786786721377009555851025347579284397034447222772067355017788349126039012143958410867340967061192857171436911078573630414544922004158571799813652731452215843254829292311156462796395332600270445945840456244276217000794068791543380742390194276567814007202626677100523335284405865326750711021564908284645644940577262800985256854491258373005187379242626475559704355109760341658800151795239006251792057030702040252320092485990542703752205250478685421616481313607546608493694435549688338007468655974320406096195328585193166376136306042343508792288480854053425934007714756783741973986874089284838727488621690066490924699965344643192962296387029874764831296577988461223593473485233036965663876160911720776570175118895632997554590332424489667035748719244109978977670482798972241814735286661722847390712760014742891091858235383990112440556105286016042503714888462183380924833561618556224824744051857038734820609703986341606663588644724122838519433902631850476824619477756606811713181178439931956469686375584662333482647998326937212905200739269679130903840388877655362690040710598856840250977317690991373153429762971730300830405054090159694819003409694731083664648551855016322958156817886721407074689598712319146684502176544022363302664379059023074847424271433085919947372774748229489828071876581699431849475211569727067632905637851581134407290482746796461986046641567536804933652130473065823199468539013571228837954139910016485883120486960234806314817451100821533202524941587735184052551046504880443753633652521917768200860762917838448281299188086722528521459688227304817844581986415131704354953377142599797738591334375657355698052188098677772263354656757947276442355440811239966315914289163653401899292142920140464082633099087715725180801550413535184637679694127287317224919713032983825567492487612392767585708508269973728556870323071897727781131290663001995948519437031747307292610793018814441786002308109062063742762762076161111128360941729376259917629201881655120034035336630587856549139762758471216148261087786521487712928480204369347929891319611817313138141388292913604411584270020012910036465876322942399463143921473856185157367291422458944116110869372595325465193054331354102096766793188662843401354369116486074003795274603193072761330057276925669052399525690972615872122534419803013258829675406744038128573365349130297644678192210309485934330800722572764633912390226922112936370746298038389870536034003503253470338791328091652521996094449335440806925136044819769816890959676590218271471631314467751694156199877413973242768575519288579669080742557429061237690689803036431128570725217979081574304170544767344167736116792066481959177485417943742457144572223124146490599685531049970909526149811506088265278850480924409716731662691360997443884520712511652761195989737250981280100652914030281158089606109454782051299587883171171664718042277528002299736062167695944032899299778537879070706913558771316966357569028600800430022658477065029648431432089103669653904321335776660984023837214422079946071132362203342775498073472506741441399763864877314901941776263041479820737640526161103729537279436156520284487377582681910092862018176728726008441086650725529885259053503309286577675134026491848388516205238725329542639415493828819833392063648772985508767891458294024520900353414732257181906157434534140572043425508474270508736947272092842535185060944448711185811720852551448979203499960360859054251381539259527303900904799935319093093070748441990591832563985702049779973319231493283319518435103674432449066804081069130350549134173433533076985426583888365048733820437289963139760458570051516408642065467628605406963074593996685107657953466800151425031755095264417819430709432945026252657353814773061874107955301730140050306929460773149563784570856816411322366382486563162651661636667950663645370479661366375868778784779371226188455588601951188097975410647237319943097223500326215350654964032575129851549806398605894306858647242012979566057449551444090925237487083061124234978029683715718499518913848685574220743956920715979421583389023994836811597403920868574694606245220353582423855734609655113466171711401503122113541460227563762327927716465512095509444100935766928124094304109731124428682210624053484399078474698469294072782054329016444759584899513137485840546496363858252806001698244383658248100857113340284943980493734472369777920211462073081785911288202268365824148999070443241250146620143631770635009330834342254818649640473032823002346985255643843343013065307279968954460419248785573246010616225312542075943373359535366636102183836296784952854525738413341841956198464086269958617328030496518113679333700836506330203088247168847581271791610177139294528062054346052893817266768864015070215867406454097849493480228130807634033716199919905915858323609557576007615681164952371542398498470772249154697527523907026324005218203838897376083678708375809328831442169169546123606536914827198679635873970258550021352914387942982365507055768261430411268242511272534036032883593201169249745560386041987893130158932860306448863001018901388493165723121321233368152200961121695394435977352356855105317905755288247188449634337307915604211001523408609484683301881001440957176961469617616946282978335798361926023989107184169339279258980194106430293961812252514320515346916642489604896601989783560896125314080930862161173857191301360708048134372568588983429821002818122828779150556575143730532563677983155698342272230949288498074066068292888942859690912682863781231896743830903497677040276864235315823411100822831810275301410088677333593721932979858047540303017652059624914956662989710767999839727676639416479065234154614643156537708708947677220668064386993008592087254701467764564715609952829028389067872749570150973458408493395286012765948646001444038099017883514099459093019605215371630369323037818295625029335053911576161022431792820132170381397230114886956955408725981776802313056303346985838917227993057876460069140869815542037830425267309216929943089174270150750510861615409487492464708299865730990055898903892494875744165312710282594028759932005445068225038416352215629953902209568077492925163520190281239148129112230356383639459299397962536249073002416255565941954214539213790140378447896973715166589929262163697508092161911255927533241063682845031749664972428915366279914940246503269880060605357928900153413174544509162233234995965508215222530366859547638301939202261638198484669094456260564907724042943173557548559011452466830109202456719432765600009065957093278209013088471158374610436843176979343047924062602804425835675539192547229312476213932051332248224653896486963474495012627728145717394401709861207486461728067822981591605071743995808759470011395906013298172129046644633447506261102088360012680635154557477041396765623424292217932707680589057681565566161553159828224027419043899944781329741960393300579473661657014492517664745308612856784710057472553769588280987868652204776077620319162573416799839513986837334284099067530771356003609268124696055410874517282112688741053526414665964390111638000085659996707501053844488538745699331314801710013542195912330789603153796296968385872663285000332253288149667090220773396067755149883720326909382959654800304236825288980330129587659025958096582201917369182316087808607972897614016517902653175606171234533001931628396286050889598449108033809855406773647418915614723376735352316873384968946998892103029161624557987253026366808960705581871101044257724151890356928103376960898143495155517109204451712595336992633835303586808065068856969806752256063882976291821959894922513285648691841467759912818231321024907391827803820925703717833983669403674510953548289829483236885080381502401483467540455591984811159468205925059356630227919164015138770959785447229811184394804322535262060461340215452715768184919641314241742476006893744112387217173928979725660571795645890817080609691042052588793183996513059231414833783534481198120577898812676341271177575837395370515465603052968036451182518813800786102125542076209847097509003261580179450075936954781668227346908535142729095638066109461590917179742460377808997841328038482843653842279606476495270836283075209014106562518345260754374750846211955236853413808818634511411455536299551790553140301629285182953248252477678063892861735939542631579503511150589205182055986524145342936763963977163517678961982826972967192570563005737015667642809140288343411318859971196443305654123101449662178265687145361079842177703501142698559430112602320061701312695898417483322716718336197602353880820464355725810430728690389430195645453482656617630401350331577521565970084512616054159666363720426887914558182337626014270002599959285908498838630302323264050188330321736298815496007748353234235076342144778095025559236494678996652681663662596677201670229606710549851183259959898521781386661898978085282094127270928748668349246757379078028633745761687735470179073150607616132832472623910334045586230592051575862290019917011301000620865316027628067841578000746623140645285113190415134208165666045726828199654912458238879528845994097831378568542907107857517396358615891795039840845407986064722580524830837480862184683059868650439762634698970419495878471636730039831926518352641152194317211907796759851279126639083959496492659537681885850409299459598365966851883088532369678223768489846689402709044429498755337449375104693548297557590920358882502578116020820705393001967305222189071619000949428230126438403790843592380035055985037712440451663128296131830214924611586078351263511667754357646310106465829010277854946583792836175975448505823596112930152762911905916108001668935761393023055153965891238723062102872929484923705195233148645909171364960402328314242328534889897901908305389391065240959248548268995907513345297897526955111026042064211567682017459777547082023270714606480538416074045886265622401864945701468106884213381389405745249802304374390679277490136729034936368265515521005236223896987760976825298560970164724738785610432955687662126719584061700496555814846658447548240940443241746911141873745854898958791064657711117521353580630873540730715332604069791332461709039495515668666824862169895158202384414352199553673662613692896374595498799948718737757608861968344727096553540777096761507716963899033660502993945184767757471436816534600002882970209324989268970937015793215943141177456741064319291851813394497555964587689163944242030440451126919893990160926047267705914563705712033100524737210447309086723288891494774158250857987452959246130268585720180872112815092859277963957127586965148077221228899774031931091602842493943583493896967675990621794419468086424959887802527547389305632594308154603412721851239346741340006952386739165716054247437975748435777378411140494381072936632021564170987959697777905577459012388676474108816303156283914753445793079444838759408581270654866997392987225796003105153549375886475795282999155148577253166328124144167554499467854765129860377243181087104746362179511181993084186844477977972104548955106508553792026623323147316307012819012394338576350228579687143863504203786975005891505865995063559687508124567906361318761810720522166293961899349987480549508248463477756385471013001043836847721244518000884590533020786705817637081034988673299465294851912677785531929462916577367791544289887166994419829409154860048580231341857911423924515181725683261493192454352044621713897376174103335418175612713231492810098088733486011219575975490306661599696204919036851907876045728301276996332742762223353354843797446010898380363757036851473403115509510914069435939872011027976200015415576431891289044568792017218787047692622107656491000094310985703899365624060674871057233084449248402927981368753990872559530658750411537322786695153731560589262965859284120764508608054441919491762847535185087303566308615152271256786383786264775420822815579202986229064097690196123813101474716806607004771664872353596963457822835265906457475014817056191948425751187894025781977127748677411717111483491678441231489984768368166066292949893507317624698164328173142371228850433677940296696302150778040251083157983370843322454233984423364359538825470254751743228777216316384385072398938812728012243986488779255193453652627237632884277852944094889724683101588238309214593519166466412951595204953883577753003650312395839421794746257403058494371508153690997654680982598570854072600371879701403942079504502325662233654263091927000667212952010585211722588301781657238439353301005364374039023762352253824331281033564979919949586248010787832487668552449913523958504680230529672034035249283370534171496707426109258924968518221456231871304289113362613866967431834069121185621462809012272185139247278095777712701244159742471375445114124948607946597263894006321386044451412804721545557194519649969724077265518172118042319608326383519467752187742912190175096140154386385431551993138828986590175695184529172138888813356379371457094775066090953628531614226546771310774981412512779165694461543046913810268325790314033779992275184323799874299522672666790194345489442563669001560818397630954538313894664876312118240998939362643861567867755219215718983229675062973356944698939394523456030002682615942009397608568127531306720327074832318874111292704718880265023075780556958106884811975045833248986132606104591550749183240836267647025043980164546705416217777090347344438296082452842995849445577047796811781515530734538118820071444968336368739287674051922396557572303676841010456087074378156643190736236326775186736743457731102625378731120863995813324741790588075688455948728638607611138864734268279209286078040239390057179246212389181047645016788936408192335686528017823940970821908474312214939961091455588812213532994569876223817440957163057326150204856788406330067851670574070341252988179123069073395915955653562085593043224713815557799770245630726943208747032432479005916942307345683628886665394542206815462681533551387030590857763334024048520040795710765849613618889674245806263884419642033461617276155337315840114006938628239203932390824733164218647417744222987367169599349665827569877544606711822399503410119072105416705528348023103737144221195240006507617141191001196180533431127148503393251245789755454751266454172193319482760516582808976734221294420448670534080358992390793867643482645606772459744369256109547027109359404576439708263509319010438730505093572205916759743941684886947795497941001371900697435584196952508359997721492926509977822158729499675621313929941744323895481957952878500841829039338967436904664403333512311230620789417347570614291004226726658986787520611227925935204927488680937888470470740806977484613891535578026851113596433238212483169740942060950172326436411655019301112916799861501950143893519917952736591866796834966266401861288588952443044296503766372595800558747048775430562049043529186002651029684370657978629245814202978861622682529830801224614789394528563942998509865093949632318031304966273087138876472093693200594685549060793049720045400310911617672934880790607742692629760305080001450178117270644329275431521057126904038676357975768294873185905667675404170904773879746709420422664814108026438754142845713742460701918052653197222188087984689303273680828522742879520939817040610922723067830417766990170031746643071692565207427295629423903641431270696205651821852393702165959622030398525987031814730573684106719163835995598201130573327331330513319292169197627227617658215850563668500493017314067193591596197374111967056559270894622199256947079862699134782656541447631625602164978919950424948884069710427650104133985201106225149206000245031186075198203446060230997526814587398318275469467334003738927443725264419056710409341781440053140418762129277706186801363138230262339653178238130545893770537332761229166668786598491371094716023286086976722044910066123214414442844810511980782624718482791716523409840710059658211810252391010877150238707600949082412777210461000559448204863220580972862757714804501690878784990229368679844701459384226783493842746529537111656509263199918808854090303254711765544405737125221691381718862321803203195518408686459725540603466205992322670861747135236351395166917572318535451579955734260256890053129801168404272535806120131003614080839751703475657494828563087335288244802292534164846612454183509407625401510004972865368158421941792479922059673151337035607027432703700892900601093201660798195862468747807185050148605841970764041140522157743091593723241678894281050737526327306397713085000428572435747459155053452809259484793964338889166252499402167758019179443777215332309777184159201720473432853242199751414443080172577142510668811002718026705017400940710066660929510157539644556390675747722142043761921657508578551929609893859729858762448650367644421115681836300634176536622691640445317894517009368381742820629909813201655696673134670529415739126790712864090624505646748343237330005366438368393146215125014097638841145487907132220607312223508384904841659505410507328999787839899583824150892230993352904334104705410543490580202047500387377234096562386237447784480019351394616709584290076091906200782009201966841149456430857916457112320853409002852317766487413510669763978141698939697833992613640425879084456798820796572303684422190520780116081959079923144237588060118820232217480596330403772794495385020857145463052644412374125101109233596379921319199060670877810778120241189860670916989980242496223570474352548315441091385926093672400460305014752990548924051170930237395315015178791924063276849831615637005484072677750264734738773929667834556759597040053200946788221223167641221544143527936351386233380990586963460354899852116226303407569278490812065026253386169694341204358097332017882287772020938762481618607250978431945381440928547077368588302726463224957143477197350851911449920582662385414894879196806790479755885074263569161676983198733215481252461854198521092675200663339021693164614150686471497893544827092921094633323211758421869722941900560037371108310413160942844397786350190179746226042878680506830888786532280294080765680662385597664404885804881109660055736392185037158231028874401604439311827447687785904782255069485211556513244481237631526292778267080576897499869042554991376316337500127883916525450931270860692307579407591484981065856227665178113120823626846202818961268713338443122301228001454992033317235099522968608523977380958289017185757580298824704863261327969348379096929537283695533126467045515855022530844119176766237619386555911588551367285582351105583908539237506157461260138901495535966367658338119457741454759811254913096023655436618632216850342266845678870776506873584601039805097948163103829696735967212830495610223251858165341975963126957845503517912834258540290602349430449139639806063069023796196291344662492726157568010397731452661683083156208265132888773953599457724788365699306339081615787903333479603313767986006291252492327245253139343900605618099249846646311863056644938995163850386523119673964656994438680255881641127132028872461079160438215027748979212155249442424010703915048796580444624713376432100635811883342250759167420077100253346756442490515349999711884452032412026820464626462225949807793811566296323211162788777045143903253041104906819383000044850321389835417768971743784485835376480274998888582864074005169342718126865754065350408967614117614700722516169323277296041720507236995355111957804127999985751281370625462159077693322046573989326305889530231759291161061271460290183386779732734433169413984389622552428280934116998290730300067640147440966090300769050683201956041103138564377395862434594503356669670192544710314549757918290099116104260738128085849264274033085241526587595274239398861133944830966900028816596737820249657746994824359380090985767819311125180957701694353008119248684610386434155669902938599357196022116643157054672376445152893921057956669394636000061478428469017601876020701824912688241228668558112726549820477851804500118582036283265609529336471115758758172028061173098344148065153569073943338241304022808142940411193747075162500345909727706268551570715896651868660045256479462936165813036391846302272683365070889142013239066614448205619913976112109904042416353835959052686834159739570360829754347061915042494629627259308171985836120544730076222129160278688990283415559492067301167676638986821377926783428236777464816086651481278523281672589934778924400396380693854043768121427971413787235799118966814467363385100860760710685032189374538979746931705971306139326732433080056138232483866038855206439770592096914175743031108635595690422952144824459821375760668785233967010138356856390783060323231190468715724979400837006952156212824728111610201524317927837513270673287744803498326167772931913454048829187107122954679964625120260651858063082787845449199913909320708183462554000101753129841001070649169549035296011866041798618290330284961758857006210584407359750293327178451088137300274522157223932496746100743178661478610348259103865705397152455401889801850004636640953576440681595879098971163585083787266315302080572633323513436851348856384597609810722697916739084466369490010383345370370182958201317836029293406375854301279369475472410505162542252006343327342664865257991216383941692228493142517943798968357879920259264748750863700414149821005594168653198436844503277517147133830731542037882493735888766283661011404999586310250395662976655807676058040255851590570063396156541839624892436254313063456387768172941931462055613042695203133483022062772768966513367076317023599462664199014511203417631839037224873823592560427016359121257945916213420411264012568857890333239100663307881697226037208798090190157575457883643524469230301100454612891149346476681703748014245768784199931042893199815374492593809190873084990755893529683773498047386104071055497125562399169977684332235394354901080192927906987909470758642084699248000035914835057950549299441790940534189143397308008517111347306253702525769290345046031772535088278566930721890524143890712033430287031927323556111348962996914144918105370205978345920314978181425793562777325732496782513277094819798396095338580491655282356355043045295747207190268078478873269454135707990554200896769170405522285832724467668549148059789829588299731873318112658480466593735759546762858103016477093301475054079873121584373778472173522794597614478011121146937411658137858957191302667975943773342241803360118830912213360780649095736716388720210451254724984774084200400970121087816736387522958746191600094994755606717711828664338218293706550257117550261870500792761184787547648477074277309231788096893877301358873115967256267417420911787615768088954136262441571171478600709232682733614011844295674665213846247650690686934639672120766133678804071670334641797878920829290211588701421775865219616898664033481264306192091189528680281594350067694918336197796723684957220548186757612034739313221243288126726421723671223808358969311662015967203392181299117409335037194818633847356242482895426712435942517906331853636968461363343357608826191215202116287606731135409316479371953061749774359135672532053083404195553128506716934095904150157736100266384958887714265225489794578151536013073159013614613654658802503858085679772551491711949641551970594076321510406833770906524768428304265371238073819716518974487679473306128984132582966012948545191311992833214647362066863358297427721648638514883526485750295234366244950144711545072094165006753192736995568251928448647206947919160541113485044576953390118386384353492347459443876551991074918858600532854170775465119681750833360573047525641562996032153726744700437651128081175791851437508966875600592126545830549023916620922453011543438542915299682972456776931522706629665938631275085145068168409703278563806959086717968208833531735059098562072388606716260797457337575080822884590400301137023915265511924641179210642777493002549382259055497309081225225459426083197542131390380166237509797840244716029820982181574991234932202727212560008117278326235671278732464149436529612534038052120331873695361899483441831794033569489310963122339549362463081259628999948154420487407999874837289436628798835207261637067594259448392451224999957736291418273255571797917641586885837963941209281399333941296647571226214910773453480127612625865771886747761959174814502531731521502669221839019699700989110392652680284462272147241883547869861475440778331717224405391909496036255616985864664311589613831883727805946705634335054656676790635092630218894133180937166599665594834356575217112579160081057072687945386255669168324497950951278887437019983782364056711394021345105689960297986058612022208620827872189474482314791625542246604334903328820791293657968458508316939242567286350335284497836412010442543765437688837733043308991246307005218351340804254066016856689812059910874226223561871494995463862144510790059169652868401325805357904437919392413309114034283644638981044776201169160163392894096579011667571398190396356928458281986663732911623953804455927645046578595734649346444366468693414925826446038025502413988698490835602568900349215667490353330280845313151399276566708427719195722237171822205842546427471473646980132041586568749308978129075822547693745241128087740964704316351195984089942068490720455384964249265011971386867309996132355415111643183973964081328177313896356367298108507810680440970617515767454079574064017516689040687254272397565198431966604117821590717782738247393947520939651296812496459595729864441738286203670308081474232230605031614663110855590921881710573877643251203222956015998078033610481279696942771744877550841418084000718298230022197128132958336453358919175134885253864360726370138572324732140690329054010207967012203286319373061665388734804934697624715393532788582166938417108842221955370609986581874825423715373052020466045162452483983729913267130223097778407020768188225736711116140195817402228067259139460276461080001289698407368622912592602115498499084167896299786255672420233773806731892525411027483796534053439533877543348293351525673312588712962820138837343408692945499493728686777371998422539110992738014372071293700608929448214476570411739011241020240472484024676071282623391201651917147341120235067027610871479241372232965027475851378378981434312210869189342676444294593079458591073471444214244369074716741203948738883569815596398158287806305519161897286475697798263498384308528390033705112483860931011868295859950993401659085873034891437113943252943264535906666552295938160708797991638393399314276250959991810188170681206017630890871060891805026717327772940136091344875351825736738041164851045242685098927843894411074248650147024806343325037777235525282798327100427353724377942465102633029804566054545458762434048138047839410802459645453966128796478255498340310091705528924080782921734589246423294802128171067023058703805807990542564048207404732369316540653944694898116970536569819165559602110312903010071549141736153176369427844469764486676950043515029312737200845838138648785709330457290304476355105847424557240637438628639700329733890758269798592256833798817431773552952372174147530764994829609544807153601814874015627635513277015688547360315831013265910875858107839742056035172045633684348113439437141725210020231806862478490314649285311069647355704764303884217927902557562241934339938277244170760295341109065143953949435437855027719662870506588081444817286761337691945640963337290882627899486915334289767673750731962611949679344717671755055473266780356041173850440731943506606377826211179818723116433629542443002109757494946838099610945294593902747856721675480331977542968083339198191391964952040245489728264271261830685779647982315071745572442740155429800607201701699879185137331105357509452525810417925164969766773675523633452595942999889729320410624392292113411626138420335595629497567491674680277307120713267918540810232273166736407885447389842861035594028984084468960059923573085070252371230257148458440032139096139565080082939729101707441935250172987609041445638304879070926874856450834953017905575153980647140655347381433822834444139805413555350239770602952927222676864313523538038900711221337271118518986133293878504284446505021231715331333620703106406358233120174345555791773980215481258839666454490078456578560995307990509823528859626230026372003566432135450867408119979829672235634632292044970059085586399465234667815058080238876781333032109447831252740818771608307897279441313571792801774383450617902966128745317668672029136880023454746664241788781676659577752966832115128982685276165958318863812797449051419723766589754652914271643902085829768192104325677195337621720995865635692990934754152121765315029314000340644913181477446713264467410175816669328395211771723120608483578004149738712064728093302268885383156675625470726036402927181254195924022371535498595952514878479684166334040878484056179190328998813580590817205777687358058624073803493435567657297117548047828373032073511073755787260838135074593817276186472806192346392941123592162413247235162436450663072702564611761523085623566394329153770913201962574837454500932404963223299368134299212993637283874445142122510729233830976728002034171263261881475907200224928990037836378412506776620184411953177739045392407027653890105410307436355839669808058611272788150020440744905241668555742308226753091368909616219310221964903992307320134762543655046083728552753167334791688815413041440932081585759654747133800452659762244933681913888701529954989494840659961722759510822981007409183961336704047099403023709942318785006985842420529639621161359089767262903359459588751403106091827560915105824716017153315724810545947421997386366483822955046598574053362657520612201123676161286370095050493344524690715949893574957813916797181500849621365937169835403142216842708736579033216094442994359070948919481778026431952649240497615806380038887517350397709491435589307544975740657441240063692499416152410567992294905723242056712111965838389401022231045209099104754691345922552659444171891207801283710104197382972571506408019538717054549302114021117242851018503259923947076012147352778611582954461518191192945573259418136008506416938707597275110101546826860243750075453602151199840098558240668068898118510781954628532054889548720782063945969608210235512099838439787762821745670381706546647856191791418348476173133472688458505637228752056187848219552129249982265203128132693702157663189948858248439954165453197315707662685581661622491324648790776907841341463418490340797454429511776426659081069122923196635408583685258553656505273381499508258882839629549608868140826855109955151157433165960587680746665578331764934562833014571999563333639088150379599253198424561082935731431962076335878618067112417516473105027757688252400022115650504818353585980549159580097818244700322473646770924698318099423483145679234478964683245564318903920528120934462768471806071384054993625327409885871045917185172083210637595760381154174755911937276521418765124541657058522915757610221418367640739125092915811707055998167788754387344834303364631773178378946057265126096508544994318980002010029612987851442037129072756507115861899852437661169215479349186984961162791030784768956469615742663951380759518935467567993743184556323720960686822527762937509459785737450617242537615925411096091642979251364747281831945052021524267894190164609489192258889612227432227133751468281609792187569196860486477875076504728836757886519130521525807615351178314396422097613022081314698240729976315802195642845778398818579262616802498699640101235168116291633750308654660165038915699382223628692662356221737507444389485736504026415679976392760392850051885229023699590513137233051191016861365519538922040582215627735513426498712592638183138845991833469871331260343456349447918571887126463996012697401702210075328938311428881024234716287079587396423796184382189653650601068460938342016182561071036714532614566047552122068364358477222503887997954312923794976090529578103895719519816259183217991629939034707484434537799594309010422055782549371855896304473791505213520057093144153108035710503491897857925875032063201860395354312687741806971240542638092813835889030289783830332556395843333628595520531064122619104001838988931132462434342059493204448813769850438236656714647027334431751417438228855448534759624422763061829295001518450564909447358202275096235761092462021682961064569464196227855558189716021433084689137521032020948931421010669192220536048349904397583752113451388140514243183160016548418017371441275501649783967859214519592080473983920291426329126560399196447294142561032100685452987531930635034814116252318452641506586692126454594735542459273635669963590679307540345172025027928168190198310646914393676380117861877952787872585511370068180320366287361488971742486527987249194868413501249858998671735518972343275797412404453051420658410684640661208808388348221590244405805356154929583061898338407086522147055297506605799879091549804000996971797281114851034353345266103852823804409332984775850333643471209988906703012502315734708581183158349348003049499083030054436355828243572557735918498169124096870681809927623157993277454430596996836423620825703467452968952867445066641637697890467179488323150257230010540111512414522504046666962981592335697666692744550321128444773164526984868213625586740440064433630265576024443594108005552733547156372308011288686529867899701518197568147890451591057909591775445860755488129399134765091176519616948187500167725735782687189178582114717248649941033793991698148632583792978685130043690057670092683990435437328665531056621852103661386863780421820334545250380902132766292824971958306504503158520810320633311192961960946424289110809697758174622664236554201522117498465378604547153676564037203179262376704166318120295390655993594780100936462269880399018920883731432843246926644856320743595504782262536653615242339347467503325983085799124295836246221799613179057960078830148657162469874970850316419491811738517404150931160671815327954183104437893314919529559712301489189304978740494039629202727903586185532400038777651061002412410273352244452884145823021004933378859193691257923135109412070800742104559385371929528324403614805841861246495551854460938319790288148486554743768778993211224580807818723114416309694143014292191850150231893362400501363194176968951823353603892345296653802328617948146055954758011196380735713563711221221734071926708152791069018322446838557342920467630779605175098947740598025686667781205066478499223379307145160502476992077658730467845632027620130566424540345652006505432479361123787684493409434138181865286730426012090732990039837918073122991889516620657764778954206138842132446313143081189534168232490595848470413156715519298030794562055914278921261064793402579261017988962935595906783440034815795380474614310888348354964987511921919613609303095942876267950309814023363380170327504254235642348071445814889307465506213873138254379912610441086108581948867239791972183952295665686720948577573522847976312133686472435844046362735269712507435427130886626216951050139432417145980153436713420573840658141032605055423592471997741854129795886001204253546908205713675580374074202318078946038779084639004632580843788130491322597387046514902722919815677583545737034379720621698034382129341958472843560567933291171149968191952009349491314911820494424431196313773956534224751763932422290361937085018959389812638720676566824995657204045132100503104855749963426717394485128139267320091996460746572718888836116952288865493008417303950525854615909648475513372209087365552228655354051144856813967567500372174598382025032757600104817085779046402480873037390270423126209752803023917761262499479806513121095563626961289244833622838161033944542114786293090071790268952073367664624123731936253434242022333847850461801404385029763417440844520769706238529144863281339359929068373722410732387257677076387571652967907129713794075963633834177159304956586644394239649257501357512785417549156435666854611362740436924776352728230136132077349587699763852925412679731571441838100118662528675281887648541354548563587269499614184429056460536864310555791285198161927855029202754213993068667174604784241307095477472662372427789696111532975224749110789088348327864641600870471729268435346092185772381782037502232490503552863039289274199246455634398235194931780871128596219418027569923313021536168420490059904356052097613802649125118970113358928528341079690731891590388659216199109971249433130567972396198411761785657409551208544250980483259480865059329245545498478281260568272639133934914885040299601695705639775669411171199713662988559216808341486875867068709092962964815455453158702410694675924162608062863467417699314016512825653434017643509153574845669967294860036560645492013272048766777695537966888032677197932503008631245064126122070037754884534903264337812023715711191739966126954810788909816668838167448354449568683926038903960569049431920362160404396796739284395338654911746478308305549428534440402753234865399601140979856492214453303460357691945770104375251053438051118332361291159253874960663136114601428017840862572003358480664700049097695555414353727470845791420965269669746146500744407062483969569971340074567086234899334747565404431941037041303772517792287885980637868597422002985457381232388588198129188175542915327885415063505351081890772783518932409233317119410278990215598734207913696207907198007097223873150617835475352098042899159781278442880058059424239553788155719950809807383631043956133437408459799036792982750693386619259845057596714866151052738867329572554652833433701155541404324444142659846632209614106794278496669329599908706642292949297940355522696758946283205668496966621058698143669741349427702006936036941950269152495816767064997939357891974580692920219766044997809439264998312494762697703105084503712320828837568939832074742327243483517863510765948380851684657394503597712643478020469554014846124295046555363567923819493773787429113079224622135389968801595019572580906190606011670672020411811314638722382831575724616646132003653609612456733310858977775634150489450224790300882890302772003775699851408527174824223298134301482759576801033734806040260090077718294124433695602646994052936543691381985717292762963117404428263364469239800495298164477617606838860181869691036392378223366518821168569073866180948692279051122199054029133382800178444754993994450332608909800000716186512960793275957598849183331716061257529138629368627615136628177846179771835930062863488161295132991328737401122014334505869238714795840337960592654365600236879974233895140708499376771633619643448907467881803339994883695965308593137552642015199302636813275447011750277974082172370444435721904197887870063178968447809204700239176977347202867934618405325054546961101237413538972657654158683041565631991775513565074028155822480549821629373960637646430397843112351679761580261315679675560930895392636737726873919644882411029173388765660425341723521967063755555285150178829560062859975589501252443343463956913994860053704835799219353107271716393432294033254808261028708376596808737685315299568417104370852655106005480048819264222782071926188008424102702625883682271765175539747050689255610656520371057384414333019931852480578535829772110996869285994482873841493675385167461292359858165109010527797971660242494173208942633315909997940608256210147812848070279345645798068190882007506501845196311492962544740472220775140194410027455924660699888306889113110206271260411706228035881502393038405640959545591604570519494037014797760492515231125726726009498031822588278864676289565380797648346717148864808576965096622492768960118583162022185474914416158838202744828204508022366619657433635865848610386657265201624349329312182603044491722307667384778578718330624418687546109896942797555203103502941950355700419111299268959060847745873851878233320715657236562408505747033239177163741198943767047084543382546088050327663371267209036243491898399182961140006214806892660228294494729770268292315392884116353042441592029161163006754811681968637965635794873251419428362628440878662999673293230777294623083019775222633277161989289025055593242919337579931423039853841717319576205408951169382730011310081789916390521276931095108523934713068402375232593756350404524875377926354383272094441482426944282053661753400643233463299697379992187662034564676374787894222210696954978327800782628899824194042208641361422354043515917116998270491817487638745373638605227403464750391208665165246222508362985231386106878684373254851358131199635790906569315753508295728911308121884543235199826566021313922773587756964387395637780336987093803148210645012478373023663527469070331005007578826822174001326598215120323195237363025394718873269487002047527112733522286312857523075534129933059146760273460820490563278534396475411344329348960762969488867759003386678421608592390573614701497241050416213389120768754350623619962268267554106082998572126779417537423105061626594577965379159746646498783735213437594552749955299582256635058901954125030591624214777168796180909283573237550199068304036854287609238100327546117702933346458481921369126392643540777458262695733608495706890909269531998590154718095482129389292434125859444652586257751106749384002866309410165116523614761713170339130333995998651180867235110863339452155706076034077954063526566214170455816899799955013270831310278695206958476585699342572568491999488461622488681155573851683438347981149247355421361043043726466556564166361340124623740778093168843075489783236994955811539597625427863606417453916443665200680429003551861024341935283345400552292609217992444303869319147402933571107512777705677002579931515469669319731903036532146739086531348932297533071602277549586095402797600128987431794770566898100624017682427480379460448071931046406100370640004055780019961219220952882424041640255088100917324838197694050959936651710256061247242844972558112747951833681462252826717374773812597263654300220624003783073329556544027079146706123842769312178454480747801776349993207422319920187735795347037834814512296259613258623645641933570185542861473944192931290041780406748942145269013081875944674460980406231721165016686289604926784913884663013810726718536799723317847067500353508402336415124341669525543057693690493325921930223452053796364869173403261631266360782844350105725974776016103679928339665890224392198624943666952697932793458004874220187400177458414360870783157511018919192337114185096986977183116033623075949202850509362463969118819476618389959253017395688427059238272150800650644561856543539201300865067612707128544955689283642900125604813668791053692472366256042633048815749351170939591598912788728313748181091813228257954023396181584960609520099983808268024621184865208635211729835033271837883451040375419299779158844675433292859639151023744031361731990184574394747942381317445712582279925341208274991411425261559324912973317336852820213777354382364778843353330683100035991126853598902145036109480623783547039226362784304413285525192829629198876538050065732741748953192457825683481915002189790571549738265240562333795895157185252204366576699407206795171264542938888643596925619422731479956846129834467462775246431262035914437014653087283702420325915299021631374564706717705318448396355312232143062075570087258112991004562283905527048349755068214836157982386273615686850098219084383760525971149818063637040619974529809809390959024815188281596583254482928811384166819705651624095742508024981781021046435084002489957375123997222786556084295135892187530959804448359073524873151159861670057351868101042720679269160419204011142966261891453393695804681403017332292102967073537301043316619567366243623040843720331355450865357542099104140800102710857097062963189069586521255482065405199889907451886996102066621238755873467711713302485733855597922096461692699673613358847970730022485539161090095414281460538708185035369086714531965987478738015122463980749825826251422097138318452274057026762892205127449332040686937246359087455720457626893547960402146375825525778178632811909151430125017990896768272291169051944307962284529061740965328228093559617351570533138499680383481418009517785168874994531815992249738322206793951389841516606046194875463523324945031485445581282426067634777505715994166802371103753364009804917340427540251140578713954787357246585102035664064609018503882251900680023346001322700217433428213617615812248462471913341643183195027236667289397461785973522030017910539224753659031986248164186527822225997998805657951634645973814949181179591808400025312811143659552255755839504058233243158239705289062786020671613194910698716880882008378045001083334400067173586828413825204813554628561220203062722699365816357108798363970992979293908128102452013071931356086465932491838285475754265106672510512947906566412431412903034883991774685465207440928456136665484039140455030159782690375553250724592979359643795469093409882258952616711856539112140875933108951595576286477503141513558776241206841234582097625602252484306862253885574524679956781138567294367150330958734939747193072578291238755421953042263149591744943028052746311969734821439072150670237065245169815041236007761354521494783184359178816968892112493809329805576400183317995660758841276983747912931814394201220254096989311210406650449251515082522674781491796105689582252218555533148431230033151523001322990946742611442998254686506281532730566843862815125222799382426148298450207897191334212062516972729712363937501191705383835702080818207167571139720794873532963194684792236964681646765327268073424076142625684738825142099264046289634634046405516041128594583056403986248442414855763714553969839905801145520253667014369086549871154666305706556162074520618982332339034398209040744662896936589009082045320590305390465887609197609106104449933187005154946398559286757485255264729573729211244466503916507867863019069155874018845435761068055439055911187804603413277338813216690519845992312659720634927693202110528712570309576640251741343911538249907866546033258557332841126505935005588080386823361417007746928121328580865380648949478760656047274451698480988268701908030378895507098543966563634498657788972173733259294275573992514190967239081095523598228980493331253522453398475284255668849842865377819217581758615782919114367548371978587360051142333681364863260961970241944877222546652044441466685597160116809604212707923710569932156666774824043347558415556489092816932125182566241148205552730104338890901991005661707523265487719695073115590314759187598231083623616898802732553394753828161664908097639839518888833691417120828112812101414687962885208152909717747534238883038953836328304723025790834154658223109394605292019685080592512417387125794772742029879080456693573805586860546129491546584720228547329284338332274067737123445743039528918382276758608885867551620059442276138385127852082870766614708591952175725269173623500783432113335113029431574017437939961216291848642810878776892830282456985340146183251381448016539079172551139075107070010224109638820095118654989535996544828736712855902337198490533128512799942698898972364923314527982631206531695368918629322958828770127357950646776343745186096010953697889095131403489850786351292140436211978560986919217750424349860200929398096777791458812741626236607261798177461105082147643372635565090555214936056876856237201193428303387268058015090034518119681806641735494205941027552091521683854662375446207790506547636174207262250357897263321858904120206463411105828953266552359247213530307749396727326422933248096076588112699280841327229379221688358965963629995251206961182077191234044433166930832322328632235948010890930529238837086414857294325086047431194154430319554521948750775775170099746798465632936588390501227202742455219317936597789321493553697270687262487364274620043221483737718347653351185565089432805892769973942423132505480426232109497625978939205702435528987630748652784678779154686500388535342791258480650351826999957721202520017107522188235235114100042604441495987667303524190427312812234303339833749089973969288852169887213923556273000174116964149086418594343440351889617727754691469427113947545315636477103086800325074152021493937555038730853300993940555325269427828501095103828112815142319949376460428850884688706057659165853300439708964933964664583545380052247405477673431237735772480385357368009910720937622432860646328126123382949391699755599714658655390174095671205397546437697785222796380889514051946585168239985385042513656643211151622121975230743360833922518697917646649163922543621259785774404917936722854211318943668400916849648782349193952149710867677484848650658904823576228177018317550185556781311912581148375919762083540908124009889429860123749195034084390505409185195200044741132854908308966719409382124071765627113160096737034456235213043118345378394833960229545370025081993364292745029610133686588849028056970050790626304620246547887532291657249428256977723766593260806842711335716315431823409384501292666026951203079687669336931222542286318494913828086631215017399043688006178144741625607601596497519291660074209583653763367209302160147207013614020296196479376866866963605995986760095353513665962393332605169510654680547427126200028840261826781749922755543451530403348911300372668325242927060913078469342557387360461328815253295939966312858162144681782791275837509798239309844152090132170344988698687641311490602033890468237827776633837891450278508986967378848101874309888835770442029500035273893582086541016915909312348754387183056757178745032084950119810098757284627778423353898416272927426150020892130153048759053610767609511838122842638234654956042403564661675732505444306474028397772438495215924921914391871416713909737556282331724026220435584715594253090590821826834486436735744944015631228086767048754828720018058367317010971819035706453695694391914691568212201095683419036854639235627388834097939103359683524846626894058725578568000185941609992544031202854108278149686825306970019195742210149190224444130020766478599690882545761060741659798504396688468886627342744955048699474851202988065187160999334445756728494833638111080580766171352524769870914612135543449386472973733888139528638699486556747141971916436917764603860269446376344315339126045255114686432815289999815044000700489477383353578109631616575594648214942478213195835309455869594304292787374569145637696926302697822147791849133317698194428930095777527542952203682570235470611466285814637525220292820746232575914368886406966426417654128032683916997510624901990396544925942540317861209366422530672345181488350442643403296361706410461134058482260527161322246441176303154231101140669712707811657790275617513529413749798999809487692473728165774899771475869080399979708702773068162973559538001735840697764542338025720880622794325766356386740812171397223039988386753503041986404217592324393842711272860675968142853924869381844126844617186021575191345968812723440718296832976132839505756004198855862145202510237867017637460495238488067623931100243551268058547225359027797076552820227141408189149461965957805209256062266372182323082387631159877783838792468823527924871070643257529143667144196322308218418334502536470042383177152526866963911224526698647924989273953465667184875552584190504564922553959799705469729345512280323270138895296959581758076459825035342386859036541229769321545257602155245610196680693688329812081664429810259466527413136168687215367442110168146311043785947707971012849798555642469909820034524656406310064495113024938701416158780933167900238516074775433341089034372242085814150428113572394300123691778036843868934576591684372323739321818968435035713240811280244502647788483610006855331033723125768307157797209692945422288468174160159086223679295065902102330263154222023587932155186625010031416231862109504063789227709070854202287570813476347706598819864166827608163601628975621360746520843859085011609425014535812128692672596629570293544428152372795139402778588860101891938855840317876433346804719783252422978841637096775162022247869688154342678692641288168204470703968947599746291252062914732201942740983486021119688423623778122523162305768011837888286265941909305433081769341471773088714329245313194911587881680136761695162798607347761061055138559076950237127568308900660224027041519899009040455383167700642129338703695614103529881434381908008661444375195487363754918218990732249416279354494517925575456672299004238365599836581789605126054823747094848860876509293711329251543672095024170541727668110821117875352349730580795521000440791132187820040463045555971591430241810593727119326917376851609348398972838010109304289844536968085028313680440146350592727575089725902008756082990138906600013582672973846584373624048698203655083818973265085658486493906188937681617524809104031779533526990088537343604881596652425534877368694331333902219997841348707178174101397064058349039834292461475923030940358678243571491912579107624688817537856472506761762457375365456588193112102159709703894781511212749664827835671237293850581381780015056430146094815160975992084152359880715328066287696254533481563705948331614414405789231955903672321401151325641547976754638386900354672369170930536315681609367555743371649609939125607040370249359488979894722933702993166183894014125723063337638140222710450711151854020087549126743349959958123175161388952958605258367456339326199759808985429662998982010955243605567377268798237613694854188709879730083678623548823735816754466766213249188167369229434501090667937640932028717753388528418826354505275627230840625182410788816911176683337793759836216953144495621760394153416954542381458293297588919237843532839090752678085130694318878277962778126190298992494554166264345290986442618228588561614506307979304985762368059634232761316235170616582441253407776465925147804638404667908763176429968309769781445561143910596823728398579746637251017083040759451293836021078782471536478388230089909370109900216961126751379528968890707579448069067691037788828964524539149234174882268545876319116710832135043309726134493341308699369473612781613136316654920249553089046438138506630697879900481417808454377620002642866666632582837848107128572278895671058707372661265449943846535485306703503828318561014365722981858683897921400794589597626635046129896633532795141780101241128227019098194297221540151295359158223369151729904057273291473910443255059250171626117727313095635756190004359173512853408956711974182435803458830683023587790127023711047187513621333727317071205662079794501205077018929756939879093504002085762894171998923957491568470408630118296870678463316603398487323996397635836992265184679065350814482479721503248801989789929234521252733450392710533181259019482902727862210155645171790021683004372891149537849653059770160563119549633105823177580904992953779668094001775070945464100632043802651067908641450589631685120295305169889983840401609727354057298692499704006757461516415523591639333794686931050720476928665129972989085369093373157488235550851484153282239176874377757118145391418856864022688984946977743670246566654513341959433169003454945284077339680834469170066681725478300993592360301790943928205447256177374260546641718132680828171692450613699571934477123926755096727862054098267966239549176437488926424476033131625151035961034236542172803329582532077949331917010024515366969274223693614341872286996904442313344907449963885707751935664535077404137555454583235392594929058721386346244075464637407227555196285278757979220333703018808129964202352493343998904772344721659020856181829267655460801411833589731416890678597070474567234456536385240153305040842351196895873489885112611764284974500834130611334240794655902636282057496873155770131852937367464362156475745322249550068361657332389633583123043510775127568527270411177383490531450472090973860698333332890866593088780773152314102670277336982029535468882055963354291140415787613352254753826476851392648276077397317870355430181898152694092311209418750995126147339572194832052707035173630130190384305375084976583604404276976887778788907577445371228662287632303401257246590596925995232129597349061876480997649899420862182613539834797028415989484645578038138715975534924326086387003423985882813705737956953638952777749342931408958663966268371634860751049590698771637714771628552561497585915150503221619766300365503237747291668821121522598816169103913844578080917535033190372345326152532020288568858445591146097382611967425038968887107905652527290573108477989364414862155234601732464412139181364342040733338849248513456209483888281167152569030518239505359045885037463169630829040623336173468621242862786610111520346256587707801928206664952043365363403864433688602200355888082407242429203317431213284618180999285529233793506523963751072558966868235568350233889726197762622698615418327173761666826402414722729366064517710389878769092789528745239339709097312865049980557138839953261971449064349403173364287824407065316955435802531201489260169374356811494162530880130457408980648308239298238737509546158658928135968554346964577346793626063691122756099776481015394305757340904331175037478442168839956027059148404559401178659484885210058453275527727052049511092873313127751470750688296139364585965081566688608569624119236401513883820526907738830908896693238541536689615258366322377723267183253181702941646964619260844816298630521363023746684014810737672124191843314523761215847830331851099783849269572072956401075933013271997472535893679260770830152497801735625658004066601525026517454555872208858845795654862602653256560252112544002641537861636223142141976432022450074486345271321057352283447145575577437684835413780946204625200414606755050194870310979662729092982055283865230884468541362734733162581662513277604128596944211015380825998280325321500146826515241142176865324526251228412769884986399920082058039267117170421603920893323583370989411551782506309738167218108690859654106220803927323840156130514124542779573373828189152580027743105975667933222065314118174218730846841423913836192192489495667760824615239887328515237109165709802969690609707825465615843422119711947080906727957894187797703498656381575607579036559911471384992087704422550943571185738182277543969517804950770773865436661391519238974241546468624657627311639995235895225532426927065559823967326484268391134532158764742944097350306898934996771323571910783902907427589215015795191220207135587410515412205204946716911371207752186638188972653747835364477769233897282975187393851114055516285124602018162340853335116062050656328643897399546542165655941680195779796764467523624366748592309666094497479742516304687859454019114143054212740119640548516517852340331853666395000823382011961757402410726176734139184259905848416156600700805815131990571455456016347850994080519748666193430476028575975485493778555981163485659716816202998572162547443699519074274053046355309028208242174693563356613390543638515388959036004808737280735092981406027314194585716364825416945555922661712751373725232017698265281256056818704537470618247176172141501040280422781299988886923765438187623830619918040085884440901715808559795013556447812305427830215335805687675461909304770282688264739491781782223718038064368832294066895818630288706448280013967937867582576168001331117262960665313226705028236518568334750304320944582973137213192302615103421546560478148780306684315030550973794868965711890684495861844405210915055367924755822877155625628071931681396600139423425913353718013910358208987005381026103852458085760340048672469837856451007652882979141393831497016631642848200435634605018586520323272444177178604463217727472039701205079976384511832352098848180850171445022243714516617773784143459017713670530698665710386005165244837138326127716275788729707890259546419415036834678168633193262237507465791010037107130548417696189355717028061842414043226367330918412148497767789865307431006032918256296300726070871925414828987132287021567692426536271378257566596683406060371948463637852375941222327343263407415687079912760964938702423334870100395905692910578785453568393002341115791244861676579755163527932974390113140426576793488763856557160349431432749894639385124999053701215142334378066165247651444135733390097687088902819078838009052225733940872876358440946854913498887517132573442416147003709177393176499514001522760645111809470723663099774195122748790243850962103176553207078292690563929668349854862939549776056788768514651200956782146343682660497071702707932097658711574636084136839587987006206186815483086198419302785975756396821119288859621668627609943198346385491641777794100635397192948563824601026555363368980000222121943102831354862759179106022876238285849218995333707416277334193699979733358451758627962270581072600742519469655584980258272466006670026917489821251083483783566581859153373573758075771593658148572921882819841075269804694682079419960376197310134677182905064671651239533352745275523009537125862313292839625774659775545256563424223922617222492456090565640001687138470910221598273476796070746410945732840098522009935044227150376979021814696671643058512980266691750579553290655238710781088750818001000239209473476953989929400286207790661928934560953791004047310662568757185575244738181809435743537913750674813266306226618215473408690891233519406439322214711601313908956612317123055302658742894093771212665799209628302675096167673639992602599452915155366024188531574605895596770984898198366853775053441823896795947028220973579094982960470440275562497812344404728119902735321431382044846438741442156321919089895638563660621366549111572116298153124753319429205992452155561535988887523129861734039771875619046299869669980186080442455306074179857951824656879640475745765812368479813697378000198146281705900044454588977880264856758497542762361813151856136109792680715289869518316915487202537030451813018189196343702435980807682823609895183384988851401558851248824228431133533420010100695635895121103700642107725259120842586899232864136290792904512000125042265799852991886748139031202101284417728882746214734131076184065689013132846224963946063264019536068953183350996954393352782075246553831163409436108775694410141798693049158363575805055145942186908682777825628355990255045733310275029494715572485801331568053971731823430321313124891826245341879733146885017604010335820701604723356876461483983583197618594377016729427528546374856030213144728973830466315210504826290663871488241901030052725069813254244552678680107088872368549232358187683498542369403043979908625163419489111582814681776555219047753626449014555297138221182250980623610307155899314761215929664056113106686094558225367883876159077195208844576038322039197819417326620850613661095834344109300880447471981412022336720244450328347163516851629223276835584077110250421854012391529579267569627580178848349901906529971866361731893058517727621307433343599796191483123958519941859110528055922262676455614607711458795787878422685398493527973715592232771598676739063241609950685976305776078620019508668373291163923645294111068565708467132342705443051233426697297089327706464752878336930787011570636595120114490999788410530841656019877683041080721095503095693098986040834818731862803902717076737061246135046843811548477180849144143513773894161317615459521558426482717747858258706268462190769677143830913874747915214724106348628179015523826323870107785488325413260541731369350059756603387835375043845366695132625954006274937214553622741083879995581242660635758034751569420720074631993820856071927115186699654169278397531687313361483041625257044076731351348141108332853270532773550846334993148902845831215633268702065843813095190061447303965332623742807741079834634763758257565789530284078485665162718855688070834206875685651785770965936031583452039498080906544497984699594074573144005596416588048160623047414003682971798155827584448356179882225499350187986699547041201164485732711920327839252718538883320055826336298913880198659648413298438818899999955835982467841135963978716870254292924987456127861280191857923237891505827152049276132991545607389157705072320798297526869918332901251921774068656654902222384955441377836144004417123647971567950556350142880559274104991850784748538015844790729676738836401008205898841086389438672102010242382417298993429956872324537490717505856368190091939805288916878990866557267698524658354188874115526102533396741623227551843926333468499648875886502401358269670800862824478754842060045972035828031652901507785598599696995175419827150781932312866856490486471476625868164170686043520348336826261186624505793168606992921618322882852015084997243819378192326788597400349104484275269951073353652630249194738109462007601992789104100017868294707577653797388612401551408651031298411804113530037336665607915113847592267597822950973800666228636353932123724458822930799401062043460959266266990730004905860351247889003511192781000016083897954383208904388092218413449137320206235952114656284718229137328443670780168151077756817426411148162087402767408947713875409851253947085259607274145618867887299688114748963028935989256583039273046460327423402251028851266515821133503241155541668688188857958481000693441924251448637157449012541412325447585488566226022574154607904373357738626854310228528443884222124697399285696634709600127271955226155434673116515974686927753521095509142029048592807434354922732861035127205243701655032409165557829742764404645610848318508688794610295744619859005616125991857401609016019321192956750076102603060414782918952173320521102939788752579271960211783447873560751329992332815511212411758393750735237079289222534822693810057849915587245434785627615926372961419429172759518471541427378801423145199286750419363290261711294762367113936206926205523673886521198296032408577531590099896033801037609587463861341091023562656630517004870634749597716338381735581084509603780088531403549068758074737431154731655098618470511536797658688150326534252399056675662693250947775704164830100516885069767720949591140468476786068592373878783068347425950459622809627765287085153807926557146845814111510360271256235441449520397821714460520728769641483864481884737811069855168609770261872486887915650600259319239777536344664536744620286486983484805045862654795836423799507944837266034751151315496529637412043636473631589643852894129881082696426053352111333014394557620873555258134561991848790031570490491093343533524072341075589203726372009787296009928109769896406989254726322697048851867356304345338453212612001967088540234599483551131021845414963707320407216670775756501062282641018699436933119449230848320382735902990081010999165841770047815780023371528669007683645761262146468054347172555888499819617286420631793870275835170115631227722302814430638740881981387104399015322017085950455970749968995312564777947693663485695326517093945201721491680082268181060525948615933400304429479272141631227445665285758311624486600241199694416733901122184669493035014369537892979012323327683095445232892175636304277539676653242760382404078882866987019081344564382182606016153536401607167431273684273462467453325592146822778695352656437027438643045629863713385612743474954776579487707155365551751300659341878148427404461127444659413813634161815785342917994455046420755584014995744178092091505388951291969106146073956662602275935834174917801382737358407966263010620155778634257361898047441062310084393173370175211414818270939442094454232744474123222851064791243113483253099837749059508394164517031923365056985700333071884442192250186148036315167673562735903265766640426581687306389378395388341052542550629884779715158162445272264220214524213261104452064096913179020160797359767343238383825808730936723986910814612912376970378516839961607302907420250317692821656710500871870687383458847085283020710273804311357334328061266320691861599823666764686776949640366572231984024992629650923350377450830233751323736290482602859389197062591127615151970629403288379957183887235009657165780818660146503492663630734988139817855102671916075571543445467694100288501122893531603602157348986483042411835507682509745304530195895728171332151657977154666212374673775416076624160027053225291014821650605583279204514248546078167775452708498921899645543651142277232081235736852999749414531127461566819045780051746394549211052952135960458848533277654023075759003328113323993289181666441307567397695271016828220690391611499275213731123905295383337931217153646296255105689147859159430967839924533574180097613601303870269069208721856220772281044093210676202748915011070951826365296135944308747977310466938211342629912225204591724164672925106741470004362815423427899654086760465470900970052460602287424359268011108846578287640264492040637644872601226911104846483701385819483684119703491165698160052804820993888254123897961265904832644017645982378629740018954949072983752403820747771076385510693026714633298596245126903580126897259480161303609726140767960051147742696813101107988027356979899796255770969643193262864886313890367066568137804238688638866885277370012500209151518886846122329110374373841870780660672868326170909507851223021561561257021321795854473825370900429582405468473348873255377281692093029239494165309140954642995632989513028797576194601690184289085484577199891781787605150798536896651746772364934832466054012228879591185980249329118304706339882797065840797843280124597363014227424596087904409527610589987918009875493431941863833619322735396259066430519557586746697539816742806681651668292809108826658023515516061828202617861061764850404481958336811607072542397051115733251021506659807044377573524632589420014535212161976240625321584226935544956019194256238857496485983094960341173956380394218081185539833740616630512363056922412264604891528033621227918757120588286567516011240664744784065194878416368184440881095463885948279107686622832377578751415436805109413983127178227663216066677466078082963463511950369891672642355967662549145599755277415727757895496555679633701419929495035100461334086493145132471736446335663026661389287291379076724676236715858134528672355068508863242502173487017872868833868821143681615757166026334113441522067622726411356164899054746503150415629087912004419443500106491013731134833089027767386006078773968076251343637686728458911919768506850777669676628961249060548121140726153353246739656485199127468221593698698102568933702745356529628462265138935565038276331938026397869881153624432038965858595948473378512870697668484929982813497493583677771355874045107513165474437975833516725111155625907496257640421767139869679039466887755931073716635420045158871553255518875440466443630842066314829052588158216689510633613905702661796868334339527846888002347059942985656305019840016840254242405903280314804128515368134986168991958655462547179643532788625526656859384869829547925716716900454197211239419928016205212206825684413803400442610570252684502724033349523826750098489368300583175617109920780038251146295548289749116873408320803233855499443813433327266552834574836508618833678181492288141864373618106548572723015195489244802164676891508526732281740268113027382058986007990190686894505342138439462225800297535451316627154603271527626261672115935082151050318839300612782357589866272171638964574941480287470395848986896190066238771202214224052844194521430993851416195542135520995839346696611294793399228775332329554870458537459349394076184062699082332143906085370744643351219970070219402333644985768875599410960051344270178394194509914631165898685126149662309930236507234611863625286670552543703531990175818195935037368218421681614525245466321072777748034356888972219758738279497876939241569454475350535038469532305038502357343098751036115002484169202773534911681383898641259608113568320310030020889781132634530001582683776435260981893796510430238884103571459508843303087687545579004536499194299729379273584170171801890217287828678706610465292660946909404921924802179780950983084081683305537226647146326250403355354883385926327851060724226466394608437442041961900162224641279378142172403315202870155433059595910542584293276288206453334797752752998825955081952477278875956206661426179713570835507194556971946159174793471348666227965206825316568639389658856769671675419943384725640493535337484489279464470325594379163130566235186376319390737163720328665473870617946005157254219743818660576797692885697925606998442164374375785552777749285866352237260624549872244438472569911020767125526657862248773103336291864357123314407304641326339030762391719505095106176240620028756196405036643643086000292925263052124619721714642462879621967507848537104656179327048585602413779365701425710144095316195851189549241797366975837412896383027479446712991224634755658181729633874604321479716327081066546169258001875773655683250017585638900278895865101054743044443477212725599164846952496514186989314534607647720158274252523515729668098747826225315912915492758116164248369571627124669937301891065770528679161666528968197215605702665489091224432522264218997672052217701135555816843030445615046038188466246213756441805464404823942635248095309562512126386495143999111984701832963352024433588669128006039106032913300492160060739073646034818769749771652590848776212734727527327432219748635531702483920058572021773506239353318845437110477725146506956070054493646498958511675075921878895293374264797093728242345869180677893662947664993230537123961426264463445820335694020317510974695456303748496967127719592494586923518144896357464781872595195200137295033125942353743821185752903343825582372270337387609774889950149390232508964836089852083538080474524126496681175610836962801837483780653194563606281992122410378931306468201852690879279536619006683810745470920408246479738796623192192411080836520399510089942475940357884501772417475977867787359503286001975483426168653006861342695792334316301329859378308229143673309699965227235596388667787247716075697370195181506336409972868846901831483520288994878609503517808653503901340318131975203203357672801073050190939954870545771132923399723992346912385546928259225031186706048989398315495364338582668383584535344922299774493710581193697263406176464244880627034349446077068491956715998359405496144501746003271602841903739078104361064622096893927041253095103901538891508731785138008975463008439547065593286003595969760573605477278776782927296313495424364569350242841407485756507312866420159883384248636519426075680918080243839244012043771328890336850211052194979269278059187095163302207234346284004799893754113064286167290913617545614478981049550408645090299001100315201039747243164878111369711543888873452365655387931882658866913836517074953995167203859852227935832355738818838336065201949756294283029760302586586354212254712545876903494841444400948225503715321004445946528366061451712004386536246403462629154301074057282299765364379622300877051174249887200981351291847102344670295603554975583244160461332835772934391207426235038876667964014527782450037551580135520618417105719571064169266740496808849569491725587918908089124386387748555233433437111331521970271328777720740931602493572832829322872372487006807467787910298450361919555133747217142080232114901511315427800055250557954918358814472639047516312273907612385116270274835859473924223608790895765254814678382621834082650424101474311244746609577907319093244909456834442959399750842393529630926309999185129656262673234057030992573876941610430146872659265663049635365762540554893211899134886945374418111958201231191740921203062616250049458839618621134960394570419907592047910013792595024640873968948099870042300531382017056341084701923364243965995064153015643011209451757372366376454526235028808959898682739810803320155242604151441546535261552223085522437814128718888766901264302362696273134099336044446349291840137807139788116661631648194267447738119999110195414080676953781784976406271865894175173616895829412633178614835687854916246765104555784718879437625218821150283919522578658156087699012885066256603708047209342106888715535059323555257489687329735280034697766916591781339148434669147220912105445723756194358036838003554613304434174219124100647942498154555488124637112791071619227053396141084154661627422229291150393891410931437198995758894481229743107133475138769482985121676276658677218729225823800598850673833645558511034547941719944799323985281626302719103619924780335060311326005569530219445917218354406572759481157313044118118106295565627612718236592782846776506918870772345161862568348032935802044408828609742631934203388465627726210367697662103003557828836044811138584354085514328218654405123872934545173316762756945387493022956980748663539996402772189132618091668243402711432651714761076837293168083975733057326658948177395582792650545283543135505905982228083928743973892420475134585606428579283277746313804253623161100399404183956355139352073440881201070044472276214539958877388988185939989898925093430079561687646148212952295268390176263202654467395635369602489519874530797174260219318240411527531019761319907259635618385607623684303201495718736646319084972136639184838170134736315220488414880575512896774610370445074138103694022775363761576343999509276446119156735444336597622619586022838063446520439010000513487158874806386258421883669625838031404682697453810381965941932054598301684495999630860457185450767532685441431844907811102943568864456478703653777948101515043160036544457421018736676717517553855513198367903448385513161907245335070694321586703985615517200040081320582244073563027612556144570921802006919166632316685078386856821590430594634596163818244938382053565888403325230160311605889445441541292319689213768485781726476582811885790545825705743266037401580785269680899761614576236304323932711832465776188661667180074875420008627301604953372038711666559211408623698250156389228069479129996127707866960052824933368795418106460234787939432709007100313768669661457820130104306013314712253017265377624382053428475794594006035866403139052362302368603926301030807973774482500248459522156068047370995675160331874657124497416927070344417016919238966826059009091435809513887494850631561145538429066304105360547793980710680265518024419015937000625015796945011774677918916097594621879756382866092143505229459529907670814911057870245149810488681530551685895220422368369123008446577144990747940701401807060205166697092157934390417102771546466416462420915584070663992434052389110776968848595091640921777727143512112993510729095923120613112681306627037045302444402946845699880517540410185496109987247611274159942136138956362247752453197925819891297053755329627948270618105498941915736825397741576558938031735592713644953122528982040672880627208468582570027583955165346278589730432551684882164677207766917552478471978224801680842825917691318670138274655587189480975975360136508687124914442087780797814422124042557204702360585526596793631785059601754567004766230302700605027789322197164271650318752125122904250118833546296356975918258295308471975362932244305804208831974640442098335207061573505973341693749757584301304425600201114606258959448470254413178364917535430014135625842023352823507917021790575690688728275240081490960466441033156804757256229046961628348753795869089991213447320089645786974940081172403756915311127739639961571827845438708686706566967341612964039908891816349918930461358860800055924679880850531726037278926703259525964006914346341358483952413299807241722859467778229922080142947891768000049880460677781371381322959511801203321552754967521903655818966080773357954651773689786846121226771830310206410668226914089682148677083207286830267946097850363770546503691391418641822155401652481304587806014326813724647448668602928029720634163115452561915485084654991189871631504243151086356863772678787884995906410000460891110457562697782174318183822759962187801979065302007242754935004581617162604407153308930576897515415000307586730702501831590880122305415127727872043039210530677793812101049805243883936023048344417382151232936297351873282106364619544659660437868019032004328261206099329755273742921586204073251805959912210377598897869835452511995034336140053535276292976977484460450419422758799239993078372339408845612087528499583801170701516858170771526385022330596360332953497064120580972227392810605735779549808281216524320660942989278674376836717359265911434717046106430732284641284181885955147475771094660002021354135990677661866498671225090641765310601685574010240506325135929712278586843528749893483999919723607411068916473554713948370063219049019315435641748353346194321183267567144537449966630224403196412972878126007286690133247361248098238893106156910434948009571039342495441137812006765238948236913612043082347204837160750604323585965437576209047592198039298554044979456945047955574528772145947942273963296653792910871320460612231475085149258368420793290625862333517358532594298920217659565752755164629885052807252221022535460828608411284661040284046683605982789914826113457034279889908295028385478357450497373003571861673882931571599447380820063498711250178343095944567791257984331606557040081696092516470065265793725000035488708499458032063301205231293460174455774643133781357151007687662753402850686504179672318733433350688568299853232132870195417333622543046637458839371488053242699554911168421562202636328853950902185356323682160777010884096779805419756742118035409729080296037053713395939977619083829903515930123233424021075878268742726639671756956376256574288351002475613467517459871017364203563752587072534378055956760946774373327751548502926150694569750895883336133218198861580184198584044446414814597754305701132683463341452547189645487891310860712009881226853153733008126985145699438950933781984505525684323442458610285059988521706940063895479035175456783295797425400100372587502180596390835812313991253081634173359134404392879813681428177426364976329758486509253000734087391056865994472463712039605277775062804698844227140311788198956791307135111438209297876245773807263323393550436569409224161487626610945922374797709281213821032533909228996210930528420987274276790050779685361564681220012731803991320452417025925283475814613026754938277539052724471378893199166220061174022085407636707135883615674757895351212830565012921521710304133974849564537240914591729613291909786094650433968110133650118557666986362381844917886846506286281358164852162777292798107441421334566709091574094297052759477824207360791577254529231378377443472821698542634510775161297299548275126436847881346222013062499472067008370484985205671710649590010216161279530747490252026403184631172409324517541404778706402839911588753131462560068833705113708189077313493925276042245312834202702781669933646614084045320033758303077789585370432198444186668756402696150575881155411633771866751741797610900747364984786000972166071297333235534432171355001163079975335385717283292518808000778425036534109645697740229613640554474752967280526447951147926699489157358931893332226531779164517120574729551848655620342488392442914118255541807479586282460136821045322919978685462879770409598482037804264139608765401957970446393544733402809604391939695851888202902142816010298742910789663519275362618441907760676108742383245767293314973918872041932435796894576575521861596227847491867321118712810434492532621826715757485875741839136762422066808165245698252790377757891924314397991338635106145124378176749095170505291617751044278317440806623752152858047659755839239628243983224578255293506626746280276181477252490431765610129055581728231779157073940282815517724424503914030509427493248610587889876047914444845580886614467942880277859168057276586369629002687076821200859045421114651029641462603133405445796868808785848036734011090786168446901768325728146633248754195538296677627962786483462473047227485184350087023576783102410983807082039395465476171313640988071415649123869906784640814627632303213260274831146734566992028084258564249327642753030560421530972042017886638295193480606038822480792988372140470509672693039981287842437877856536707068660994214510708533048521580778945237653468238274014917954666414482053175451305338316344732378834354897654755269632163631591772432218357305220412082456528240738985726078645661431089812270644755080723677009223479765567783576014458803751293357102657015102892956023416752028445598941847205609240332622734291710676844782509641261582053952906692022418618367597849852304311150892611456461567991964688935993136961827460751455370888100876438053272437932611923002668330646956346951021443838127146939371835296554826133416007104209631018409081541698569453666047811787514644849435660775221224355586133896533143735799313963039178029833351567351705417719064865035875645136749562833363978141991422678403582188172343884509916702946243448264826144625849420750843999010844917717267014214848158618812957516178888049027188659551994584615401205841041170029500329522742399271360476194446532158625137171390244067378430424180822987679686637611501007680985360539601216323733497789350932970414830809777277888494562359336900591482170311078037830829864571715504306336610690422332561226029512948981518811954434911958256883357938002304728723620601589159511251783263091713161537589305472792250965540308639075133169922301429850285951930282450361253624247749787731093474784607417666750276354620694615493216601675331342288158166242729982084507381516277313783375075376509854232357642738945751719034745697248910281527214675277655542888122043152077497938040103201439669745805001954221593244106112403593816118345837096045305662177552935120352756971629231921477779485618481816614047097085851112338724917134561849700000904175865802437236382693255367874240502105685660869125060189802082499635619577299130884902972481074071555839423978853529318602604691224448732459312503974165141242248225050386243570622901575434074573003022654918478545267302028415746410656086728511131905177660098893019604497925777668358069096757549924340734103364134845332389669988571353269382398636937391110634846059982923689540171218426578436396084392080028395594981246837269137696897895785753458965672881550225988379739118181683824301998354960446109103793619483067893048659692237846196895775599206101895291047636050851475602676510401680886685136962772590716839919954070301659563649870871823830455532502632298771871950985343810614229929973723679848185691914226529967560727235011123942845847032298566443895454547036167849884477287037627961991506660464980701996378316144953824123995885998400099239830324190695165387493177854336859713475977740248823693826629832724438783139374278189910691604316432031000471736356420515247499558584179723360411221927701609562709121265204696912537696006085477008932873159380770411782279972587884495544265782913174915929002988126537832993585611335797803587454276061924922874014301253473801434815106516496400852186501995728173454558361252865609404323714051582544436491489868740595281571205534602258102928838887637524214500302688948347726975369246376260713970984556654425633565233922426451676662876327501068086426517332398094540245452778253549694394446053446502306887587253140157824580014904138414474792139108399109388747913213393435854753795698804461351117859180791133671879882128997109159057746574409331135729051710227700774018232294773179881803316090065144766111838711673615732882884701772414546735872124836820602526515710120354360029518972796198846559724779531851170274982435784423344620283683199446375024090140415572749161637761532859838739198886620301572042654894619180519256186745928132527737802368510608351525011404626924645732761423183087378145889692379851179659909320364227970709154844913329460286978644051019478311989476607495821604715300171139170523890475361932221527928065873792228411670405634433540416042673632831542392949561222391128134063866421739224555574330049478351412558846897001890728265360054128003325755880006667096688731622062887130840561033263775003718930579812980398500761311997625638418567559179936075134662642045984500704614618208968123808523200106882860049342777645010702951040035053237356665969116335957371395297213550222242062892461763213998047852411123576664611975773764445448488794142010736415687049104604580115649045564649098695120957497054227216356432110053358640472816840361802044371745094120268222193631918017582218882571212488270275860941477759145615331185489380996271283293271433596152073541618328332035717901094088665389800508473945876171695857532360579664657347515094850477358788395940763408452490642599427871853556078619359623152401735318334582549736079112136764899988507776967710468715765019125342741060825880277171124398981040228516780909000393218115087366433073876408625217961154909852631744987547385790532703707466604282921885917603423585891473631478135466681576519822112422500631674956035601568912569319899721946459399562318366209669720285941763370078002258281910959749573859638229578430579975524302879119716062397147372112778710352039534022470536976718850482016625048301644085820111566207968412353513530205771831350652830589556379680796656627295186831787642385390034490076545495817388130640118263358650100154979386186047135600325157441429529204672732334602795681244946835695238326473468168232430241260472655203587140608224047935865961872627310491832478114030665531025118605791548973382778924474197422859946900656668986536045502734221866584985370774645627969983091108412005504173602271514433794730285592420481599509097563843297419665283251794287227853018587696658744426232420756046501441713064044080315621017245544223708668694454945706622078320396873086535160006634068423833666015921700744324528822737094719751789592746354579785599991454412770032004756249111723256831581185964234643140991968146823142668408248740553645898659632132289979590459191824369570277329257864859503538492367577758998845262580006796845555357506807696223151409140319719522284623650870545925146584313843536186146381785431389897639361850437620236907208366426353435285687696835146580635056806527738108401963337793609888666927857381596389299123953164776136917736824221285927367311219429086256007317577233859132524058968326957202778920329498981231460333699100964811253281134623658971356533906622609922850604390651260954496987231391428917644582983369583525596634400845115840942008167995084086810305772230822194047808116579166689054041762900044093813061367621650575064043644066364710988931856926455004618750570484142596662613150763224547772190480183282799409264630591593636135021759244328596156508493983984813638435985840438707755611894734346538739353053097935541672240005812465347992291762498312538993371902168680340233235717682950753592071000751393319311281357304983139343767919180572441394054577768950734270315831944794630680647136018582257089370280346869886539815639541037125235342184183963727544957157153190048670010738903775720512081144880065562200052881528738254270332706481636375461465283509468873113251551940888806216594244258440603852364402369572054246375521150118059637312014851001761559492249844799576056415751284743873314276349679415053134155295470199253473097332627251535411593856129737547629611587763827597101126855536796276068427647934145529664559094821769141003395216076745607688917318233102176128309494371160564239596428015276048984263218308397662526620153058336104844348185874826175105169928090363367005054279507927624304895876655557838507408134424832219273841331973613312653614401013309850094234091358741899568158797925554235711439511717029922036287510924737216088805897543799504108622111466473199209636245713790411152495115346499009113025100566256731369432242001762745769774554517032109451579435206030405103972838192454753535344223291592700871005111967131325753901933906457196316989099962252706935856399611575460653061244854684015236981036789484715172422283411565352810270784686978042324300240432161558584354769186263394511269903413304897886125810575554938343362556637851032326788882406457484180007136657340116999301290547541094919412420102308424449109476147031543422348145890820977226476198783808845064978247522414706152239963342365586329128316991138501571139079698043442144428047236217887974374492938205295095475878163729786969799651281216209395285723563853024788061763229438705586604401813329491457939895528270307338919800790801561269786785196384130002293670237746520891192370496265599478335562164377596995087399240998546328771160663363145121051646082214183775584490552148387794326010193154062925996949872758665025552164473389409545947646212712141551624119289486669026965586536564475911328889409414662381610800751594158112230080498985140802754040289720957701567276213854152363704132259693322223497053079876346584835044230706521045815678538583719432883006929117318941218721069673436293856786126262077472619106329103337493406038727177354467037761374138819749753415573560654171044439754956464288736803865457534264901601522624564133759122929971226425728838769711262059403715386272325602725411394162020335143592207016001104103122146094840006808358776585409010263568415194560789914199013516356456114534891335385093375691015279629713724059594860639057622357999768805887342068520989105299656029868627446830455390008318261681348800727752077343255312233424869007120746394149554935295199312861497665389596666718218299211006004127395565828343549081155836143732364020176159456846659415802003460315862103128337481656613537895215773119938375834766031721829163295439203940939275444388968168584069163070470383669984801957664157519551313033221749399438683218943337562664568738553698086984177699724031615717079409534948851651066081616301690168991946539264649643362551353480813330821577699653030518844033649230263195405585795381849686438301648645394172272328578363291942545138406574975076953468737851089215844485552330564556836132754663774923006902975993749080590060848011451689272073991136456548299112430305373205564913765989811272468704062536617406528539802966219952906938176290526438477826813213034193049737823335129735532924371556688717287453050424680536038434593550471403627574868659895737472832652937095033490742603988812230506552017469023869351675365432682586416758142534408471376085428955044063779143017648361584262271839455565590744673301251766933575214177708615849166586911298827066066296726072064340377980798177345653225612877074706010488150272156396969324075439281387218080105732758898934107357731695772716988528213819005823760116110464557769737609931199510470039904465330475447091651954792032749321143704252536867478255284964631232024086601407923404775114344827332623033486226818225094942476423959874739239111216024433757293982852278624098698197708588359840441016844457681091574293352213745627062178818075597912165868902907419069355235750719563156451520732876274828859604298913595184570753478756293640609224391352499097900773849648612208357809213963065087923540028712789611872051766791477548420249614133132286097175044811725913748977118390599213699011551344892965276661598450382928335370447515982977485454886817254035088913845165131710091665549846523952998238854326637263811984520415198660357089145714546394030861443064570667403880748699662484076895148650722347281425810574601548236834663644539513307740086130231209045936709049798055997516031239158566419127725566840428215889909837978322987850942987010511767930112188109120443249761798292552916422226516044244350114157938931723336782439562223597230796518754602405753495204655745669557152250860480869534107916453350401223379454862712663011281948123007633667679853433884526107540283028783951141944814395454587372971638345263063089943745537638328579961040064405848004377049968557460394464006151380350096797934303356556431534474570706920534557892851119904605453079572429796710065797357015848802171383492696900344757466948492120717042782692482663179164546887859952637717897095275758863585557252798475942606404406560986066392234851665679840839435789746304599939912345923920701833585922398137248206115386814313476838883684700658056885781831200751251662290203824727409090637751022307962073153122838432355272484130538669851808265707195345960071353088137082109102737107778545147630117067421456706667361086976853960321132986672174712265066705475589616117464758494649388623412602902721033025967446666462184030177988828578628544564192623212247028845460092362801108372751837169349454445221224641494585580645196282283181075529460055584560784118410449216421904793238845160294166461936766261491525973512128599650964173637541900077591444712507520019873365371324402961876612875332847859702999282486469992718671186886376050450829576976221197737410783236443282041604565684400570265919771749615918521994157277503371830351181316294126276604144222194052523055636188850291535570373956737762791579328688826781258686879843692717868508004623234311427471104691146214380352422580420722031608492135686629657449925479535013159200106396685424713052808989877752416990632332087937480224431889824196123046778298027203501327364257285278595027913704907621811297576993829235302905602078453413879447219615132144680122451761148710885721936424760202175332723931370612379227914785315376342785835206422757835526949322924648814177749238527126148123180319933585104285867241774521302112488698826779173767306706800878328358019844750076650907086135174507886754602080058366705975843301542006203663911212911892489867322537779877042523054435565592332235143746041150930570663947863152330112212525630782827434376444877460040944736132471170808874771318149507839571881005035583551451530061373378029562140113502230373993437167276001821296824685163104433480339985054301731875013325932242259225197748169887043857593076025930224027086237382158242553024101925789329893113890890546866278178097174329970423521393405458970485155923805279486340293566157608386431391518856892690680776715730216477331521398663836733519663239666176397633113536423531017506867873782151738314987327889405262638103307724207310140965991551003226604698894240203294669047625883988498570351828617336853065250003047433323129801916405834966661993982833327502131451837041483128365548700936683691448678723554546917780573445213112596296019487135372156731204610486230023586770222073502889569629780529341917297188808567726683948781293649603917815546275948863270728453890542194646945776053917603684143212890744669800386246923885644503996865150870137044036179816610981725397979078961373815350610743906834291671101196878477736411046439214654358585957333566709795847683766431382811859804394200966692042269360189786854155602790434345669907890075508254866474105043402295965837329248682852979490512755169923023081116978056843858728241344790369321042996280889404987091219260174565712633989701572234804334740449932864328391910951826601555536240859678184017303489063601496314174843848908705949658067569055247516629812503624601046066041895331525462449494693514833699943916203123595535673966764845418033074727404114613031995357146617165226670951589630721449531699901685168762932699962252347925899887462547452763363014065751036855024780945206140391413656376227539175597481554948417191247719663369127719298346058027249183751467669651401806890431456992155823676943420831332068301090980655157034618535865180567767502197651818482249364095214116494125984293312661729036577859537282448216303195781447076778360118889942640207332392053599122038851368135435021340030666940626574022127890288093065792865841270889279612046459345827979026410691872181400585715472749910421475270256371589750684000439254146989511392096744623206370256394989365842612234806022804729663111068562498909881490705048560543699389204848615771014650796762864582485491651843453630128540904390427471280139698076605802461373080469398071816940406700296056390958682749160223643528532897127869588746924641527881821129889148579383371926249409756700743577599955832428095477238021261608721187191175838647737453016649354681233058707460331955403313650324518573700087558346510737305946718860558294110016568162685046668512535546111509225704503610804928020153839285216578024298008821432355433541933783901182556979425139218041089714439069483819977207042431336361922919650097287085822932626777565027625555054119775415460870892275271306331956623834438266523861515066974631350909808156547976971606882609722921083686838243713446540109620664961224901871806751003983803346431976600080002576162451955064477128804319722747070847434445662096615003753913169360531297841092102179522610965219133315130546796102300206046118858752933838019754014191414715458810737922548751329316940623019803790420704645301095979384711941364451094539613414941722789149645519469616570123408936987248620191511544621808881305378898284390096467014126183978626504630439416396628170361968448555013641943385067800694394995029714354168918654335268257706525249987337607756677344271995075265960796080178552999628823980188897008350562082665131301955367301454994379228105543056957932948937160552574633869137327926427769432273783406025501304084026787619630805863113849327755929340990551093291128229945369880975095208641613799565294547603237612421800245745602116024094858545544306072631644879631935056552807740876466596023408196368555506542428684105647801404905859150643257391760507782326280097582721053145177379526051179457007646667316104394343306020045444442742263365402216316268964068711916918763874675639599547635246533229751636304601618665934028821227769926671068900694968034514644363684670537562044778210614302742194100665134994980349510505361387338265515538986127406210807929659266815534377139842528038947022305477540364882315658007703482360642043952362770604954015153881165306458812988112692933445896001767035745499167578730165790534242650235299972392011801169818947057913451481343638534026003975421296877495174861238643188411103559088792865207976692492326753056270980929513120296320916124894924155323093480267098730007247378976910890029675068056567228586732136048145023840780215221884868409076088269651826998464152678893544361393091552173110609036399346704047270237118751308971397794048414365660930358915007805660460154778126224983796311462795559280094781994771169895422527014757495074706011114313298315292152685498546497259010882724903708655694160351789864613371751086694455467393359889254358005250009007460520728641410574047027884246337095246795955670828186861042274639662714495159658747216975365589693962155022392829816907024677361851528885867260741253452482331452302302955249415699091155959970495910836267860242262147105143849362709649990348628138959018040924461840719371821607784957814682556491018336518758136809993183725748089937639618799740274620667513604975270141032821545111094020609519763263200646686978728774751758935909916230325916527324624586424564972604138655210278045953275706816340236777595767956663059624423956019636484803621026590133607906801767918831126711984165005743335981232164859407761238144523983014690854882139367438089698007098415020883247575083232478510146465112430754358080568665076413320792786567002251780031808617269409987763654823716701597415150746101030150707878373635263821718113441689208467169861446279649758912456200536185690152890186969579647256830100627227419702596857433059938977741950689236688212221079595604101625288200143431392308610154756042952529688609642999273076331932642528396218986644921657477140339572460153746797815394463479071345272132827133527808525637678251484835606248945037095264733887171690126197594935260176353750213929797500964020298023712382059256914837449132164505062618633784327897820977249194282845201659188316174774411864201046941984011205430532154578618688379763524355283379352642542565763467045819062643897965440441850937040065526066558384454179076031966259754395873688230036940849112488682304663325301717311084430285292856388531535023084672651840627709091460845947703702278170464757986698223585257460798120391312926419303173283779791582997510531014051025061693278325345111474720823633395726124162585399903885121357805914031685546243866606612330674670732624115700551243456310400154080261744889618465246419155955078248561459013725566563807558182164160810699364758696128198498277582538655550063544284516181518238105970448114432531136787438285249977763077724510886711327885623635591111067868386266761750544014014342255474850923150619765772946881355993473766962196830271007448535147453588830641761890914982470177684620733784218591766067270301077309299602566584377711802817247259914343503565547350358757885193360878913880678946839829137975441352449057686761561601040769070210683724310590572065791713968808970063311709027682651631458214879603423139709012192383000250108103210281563153655295681688066494638412388443288543987382228533853937633211384904237176857813747742906668591409581968935359661274690025393061814755018205098376306203518943151346304801260045882380063717762315057031870734880033068966795297831056462742272312107879928909649747085727251206398310949976309456928924196362479479980328303789475978312918581286090292112524680536282154065237861697855784007402113781663534265781246987030353830003195892044863167059536568767656236885710722550501272052657977128998553907694436617807408778947300798221305990940126290869397515395870888528484740401367967346529731613020723254119617850781674681479402902657184783776941562939827208540342128236523146630415819674557623469538805460525288220273114331372301457242405701690417429389811827191284501457785088234416603275378848988207711026123553372184542877012029626355043652650136051346469662902989393928896588455321131562298692778755751169468377770963139504989117811820119866685221939918949737282319377916470514757849593716905226830229374170074951231651482773772221158332076743694977116419857137655227774556436937523736395857989590321096063499531004084101501947399059330753633133024510790845318578406308113404181371212891337075635846239333486552240479557704712837945406728042015147289456392296158984533540159080307846198459531919969730350830581169872781565438409701378281732514113736938919193769457039210207473934699024400843456443400768042283282063189876708177576297177737972540124250770824834798653348896199565802898718322645583453320390804220301997261445007310561708120553419371137773029590146671931436864016973482736187473238674464845802145354223392442812987765469644239120581025752682108416973959347096567974503401532176865920375535255992017859176574747360072144073153842615501302969043946026339269808156834224816261630017098952233453791524136684437417053056223168973277006985194108349541118611641154035942942012125550112939764009177261148890631267745076693452814729709140025538980959877018214109507236139104726870625941035770885154313737869250534271165591533390356213781661478906529242516011043478248501969148521403411911505894618595052742712742962779627647211220733909599901223510240443543660541598769404829284287835890161698698231519723341400125750205210831258458578169482037492084178148743053699008736864372158495643809095503794357283622955169142552614102653774422069637937211533123209639443129492189766999554105007900945300163623437090379751502315427347620450690915986495123744232006756210732073084512570929299069903835877458904189247180943246534297285723213835481224291440381936042772869107084108921020169361112582729547183155740573167116220009362645889314551427707659243394897441716220212026507206434063010838096728071034667435334277273517675047973333254433419746527026712098017100595558772873758819971158370306106616140697691888044218668032053544805429909468375454851601000810798087988276401055028283628552555020214069268824318259125787520336135142273505723627240990804852431148456369551407205416316430266003049455055965584324607945419210737956133032321372915982800078718264870724943585414864554179159275947917153987633360890453628374064940657143386232655276189044842432310126627179146925460842341115603890558349334988246915217009917260242389783361315188195495533753743281084018157295573448051201922483314902129423214807662091420489164796257149200825451601368264472910176899016348870519390262374164006930448233784105637389757785958359270104730668190570546646523120443011480561508412914884265759594559273808305945266599596481815945151215493447313166876082278434094395418210826619943980969441265299168729456681096371980062627204823198465162593365762094234141405020177259798758273288849199792198465899518457509867047552007343690795315300264025480244812029571391386830657373895685012606853670496471342157213093829164850471036795038514871237126031433981103721924668587063697912326319877465379393588273063431268934162186593352516241478478666727365000413476854184354111428667073666616378838624076303554846412925582389123723505822419369962239010523688124307259617555426373122348074275892358773699844905615535518089754682355948051247198320128084388900064164188225587663247110436303872238273437246041845789920581946685225108854550533984027672750368093896720955506180221771826467651976139359151338047596990069572558912445035665210247123003166457635001589121680126605409883596278817482599846139982887741262009154125124545621714700560495539806544117147328031591185381277988313377152956357502790271867543379416023680638449314031483977151566723029365719512066118314176109362480581376412071402061823808785260103130856719805559923177665550382864934889309898875495904125379693023686638068510309051449272711420123398582536820524258527603916911888668772125929540494470886271356393083932921456832737669223170455480133287234138843904396808997650155077482774440672864240067260457153733919174879211973511906203995745853480168108006303093983415091637063072699693705601662841014078490689011288611658217647386957413425900209591818002962307686206500448987496167168263843239811720118834985024211491154977623201345432658766968733423940833778853690027654392434727419700378568389817570240373274111659319569546545558165635309094344311743225617838145924152483288558081751788667169234216770945153624558732828487678203833462910268771970070581809043375351577577128474602421977296742389920043169815931792909029383755357424802048592211554564749410717120158615170273201944857450483059502573024127461966335607773170979926251292944463968256045051249640493452825773758326991046261665600892076711363564397942717179042232780640028330232035267192668962622986482077507763544242463554032208905064480301110868834777137392501996356203562684900073584076892310620394957053304932446665011037199055348335175754558633028887529937865722300062499411568534220554618876098793527512327937486588271403198909665586787953901675981057608900722342654973251391666412962248694546950886976789102230970342905447653578941138653002475396645990470714653116082578520911897612788873732099016385818893739710619040653346417219793512205883554645645157767821406720176598739853917870397235598713057606149762566217325126416411307085519266244639593126796398909931603446898398705886404799633282449431508040891090663929747342246079534096072375147293913810568404368500880461827898912717050555617784680718233359898952529779241684124207125856968010331589874388710046018495876096424958835465333952710798797177447510910582413117591626960714979714738885403945707945834571906432135181077190281242579644877618217539617079635739033916257565744873103253113033067813390573033141916006373503509934991538842376815948725431280364918931394229598372941587247911695852948432247207655092587722258093108831803761789718612243679381484697786888038452048243675428107812168454053527102123193074521031231614765283373596657744392401782849218738930145333507394738160193654873446654264416523466590809069730353366056708335447484458968530932976622977636743433954073823633200003124880934670161870274215767236717037030894019746405083009449557099268501660159990519590527837221209529889490094906482216486270530722958926213449394899385350152445083556922331896168747758418160867982862908345741291530651402266994790268538505341815984759546317365438359787300140544805261099924887910147179289477999730789463181411977613276754077759883314379381816448509400626798704957060958484741652454024973814947532924220694094225086226971395968570198366460964796631350378052855247977538407633271675291618109027097655502256741947900276496306685293765191604554854318499786363004653539856302746747900837033020208101167835744167989386356440586462817040428879248116044440904145823812723645325718305534314648508420484239744277971431666418408159179550558265127813241253531799096717073044240203120649240588229654845429893876886116718114496436063029211220293506431004862801888906049769697602455621279586059583059929743848672978577352778733265921205332588292957745998507539211128323652609183650644985347885813492503076441569435393568387168872551085449574790187187684268049542956777204679108943405261108798838477809942889562824144745340961163077257811429315370489126347164566912140647226009693600503606676373162917097952158172834840176320720064670799740283407606754873916086288488972019873423452916347057002623837649871424291323083840985015042189629214999737690961274687178635608692362957508574671686457698501170521094386642525150490275205842014494577405174468698123422377249277064221338369747734211979653620660414222626539821537528192689575196240812931324496556262952282309981537783490336845280773753055895570061569917282636003984854727110209001523161388327985510717024667736068256207531696324382511644071084019347003474521926521494993624748565744637523516773542207987785383211601256744793211982889332853165697994306425977308703209907688109641466672766036939822648637452583315710863138505882192719070507707083582185599098723973152123257801882321653513626392223390092417115774693770643063559943681786211484176943091683670618663833290934677655493884439185316769467298262191445398833674657358701194790563162076684013563782950288979543104204178067951946917963916688254996035076573765189926582868550255809949763062826677794368772572111950021009349474173017275198508769075222448692905709095638283587562951525327034770852538927313618378757207009052215705679163030954647489825020158171883083000695812630803619937701591430518216758304920690868059708827341738417405594297236541637694549114511773046453841632362639182429324685301878802515624622433948833965200629028670268311979565121793516814784755979440067984781553942145337574146072069867413450908837509205149224893557326220385092080870440505496865960909104932198970011231463646408122293816058016737060664087166819720358371413307192257290577160540750737607565579261654462604976620108234379522302372647825829507321900925944948872922425928220662770139506584888253932038062908834473988700458776211703570515463959709509858587268713483461143713315456148316152638296368427234944731311549188260348211219266428754194484565953330319140513782214141804079801135285070984271137806009624648755995327661935645612258339539858671925694447906528200835263220084703971719327105522777256222577410563490354984425543769486282969635088908851784567989668907097586220124442417443818445402840987119269422659636229686740549743308509400370297071485039181798062065415380296423688295740040460882059043271980047356934459457957239203218376595161886773986655756488010591396842063642503991890216575518245312486711003250305135585833064510800239745509724539882718861260056676081009212659761244019208828729828425103613545525818123237418289915438405752913623650168558023458003245474197893671788745941125462937726554118276881934662626437946255102803917900620812479740085066457955857582604805859617581334907842427990415817885879708131545891153798225065484363341807682610022353784478417805998272190010119949277473190510325349651174058723779007952526074370838187142184892978618987081509516619882404552556171723582563926126909620136684649880321699122231513232278106293482134426081637454411685529423234158458117736096703286608865253153249805904886183449599974148509676382559975707360073167144949991319347557711209743845285742443073327197599291171171068707095543304156309672833240896922490866952856808795306984755150748796923213133950799831416212869494432461307765928650350246150113195846829943644542781713638940519820748424910331603186369917932284697666134293327963485949641003773932743118593889105673668449116222106781117736874122427710218600122803400879428648062430562769617131915875715126964970393921495610429193837551007976859694773399230648851677830581214815171030336292610011281027861130629891116589560174598229403683509417326253558675736935762336014008726969678699456069184118475349323491881558069175619381955674778047556523781577590731716693157783458666039342811658578560122080362507080363765970929211087808336904887936677590718884552576907558612304713647009291134172647082016893005386677945265746440802453479346480100832781582300328262626492882278681498573235118410910970187492952231074186436386863740303039343286171910971241395361733414526233509600129139450935257360436209333443192180683911223009520972438007214896905847476563142172039403350779181923205168710990767434845850819396454854281469518864848163901062860617702746358904401953025329263502238569779269524433410603128163848699565287970762750492473859722201259625088213997761541314593374230474812123506725970273042315651109334863232155102352391369450742948497111305347906707949097521349816621730411405852461916593600232512913233770017147199981915170791132107218276443214861593281395318552950560557113924003749461110856297831619561118076784673869886399983602869433586709745304365289489695752596081501918979817235196507310926781585416026392474773604609805910079800649534481013846551826193670761312690866647424325735032183196785477199363940045047338115110537782948233145749735948354383349933082883343660092070971114182645549611338492279984643665095541538674774476705238984173420065257568743495917622569840087943340969228588786083957780543537157288110172555588361349411941260987118306522783089386752473862821191810468590164637209226305794150247127283936384557563897420347159901658326121674667079715124054994183571543356910138431597107224744217057792090310409136298856577177620473553083991473661609844140836737045696999610217020004103803321534390429749420661268103890670599956113908768337269432339380443270071302146871627214281878126540220928626369038586014717991687946697467114864808808183530749681339754177641412026219645036883912524734167899117505348283651865966740972930282616577258741226101608846188131659607340492033813443127838162987935297972247830649133695984481912886028798584305882683411828126896656427342885725256451709074164215973387147490091529714795595376339871355997267291590834074365588960548573190525892094886856476317069822293949529239175476816486394898226061878032179187326386927548230863846632771739585101983142488051893363661822250707291570888185499566570115022334616629329579190367522958425499737694401107209422818291629439851155343738123521868305417889031481398944635494529055187788142884489921427391632664107212372613563372291134286662777123632034973416902407959322716432523221510920562491455758735138562750650314992577930484647452706913335750170824446305986848628736167625557831526647899618942012295428685784659172174014496387330403215878712184571161366792814265669601860628516982864247708689219449602019283249557672379261620976941084487664987639306018239005991980207219811299991059213428824581838740432672512027250804213054365405954827772545267869707912944856271642883487356370979994609856417622987715501107655777406186481027907378434798890544302821581287826006859128276342186446391017926056186205210665102185896186622099061213403456217334463285988897342368893642468152849379736506804203104550614205880577920236474507630516418545323956710428963160645717365034244289352448797325996272397388032514825858363250163404836359789365036124559413107138754118457564048620413143421580163905704594213630884902477356896075217965197263014796457362554316874963067360563940491307738380753835147485397481985269204384149960144904592749381225608740010543082152643708269727838410236055733480491158853090247608046178217092993942147180935073927311671238169076763704594296047082420912815447669099029492564578767995382462850659879843967207204867766822485046721606236550511176649964165483811393639784356091223009678377556527863391217552395687577083771742239771766151523285654028318784576786957222644041069706517068182664146460124155353997944733640381290821055421851353867617936413602161121656178014690514769055806777115168569605548494892736058759741667368000483638794572597057757313912372043303179478879060962037360299292494522119068957724585790008275545171572796284621533790399644704545794059270952997264002968711185315378119536806174004974018274361240417146920634189715822427531554972994920021656294430413625372488057461828613529573143390271243429834066574505879800114090819379499717737392868044485415337831165271752699641948912924320761448610395813495278078948100960378084763897862823869804603409176139915934126986600054307910626205552338001261230730335992547287600638791037112221961865617452827930858744214250961466158660388511543635665872310462290410433258853879531218450543627653737426659724956191995636923972485572969804615136056749288713869489420522015826420139014483646758606465269444788196726454585573992618703788200160789922167722426259198141346330166484852562053915155941635460512878379173569626407633155577718603338312487254213422509567898275573370090739204667281341218417086988218631809457011714572488067930108589670353489679684571854521321907865891597258235331401988271714654445000847020704072559576872713940435057726960826468178201061402880508272550754597590529949361362562787727404236198581647887295765061202473761301640316245859464829638380865442364600988986724014701792732620874443128530038992980885855506113895009927946872110231428675214849126223995927719857998223384268919362140691633246972068266364007271711288608526180690077766878444297871424790764378111066383467698508129829148880634878187384371705197788412696607189534710612013851086502289123261102621102762638739264899150407389731930815149356487332893476146373118254841082671491839710404278491055701227686657639695063755197901851609288410664401827560281181888918639353538707637211394585290789312397835211603545288718281572309772448821114209123760829519278451077085179703338604721580113997819015516131171146204061108981731338664496630621368312839163507290417895491978252834826187735599643745269605406364861941934384096016329194965321328785227011385300959061265994556396955768354182643457377030372400439027223848445689001838972645169435268079585052533336177879173072459259187624199902628831096116748217951630130926455438831383923235005110660285982509736277122851581865275100976586258670335401615958905142156439056725667093951019986252276668473693973432955787831742866059353477490182993786256852255477863294261168262675772363388272082873802374484277779078967635064866442279195725931610173755501929889755710767167364913325150810461447812857684655111323430650205790054167003559982309700609223002790613692956141651860509065248552159281303552019404950147444339520371965578386961528370123616272856396630877320252307340545809930018813209901321441474970475305743929822355565668115806635232116201643218168938033777280305407682351946790834844696824385677218269605434289061488404478170153251486992576995171055967092396683636758135106660736906345008098149183465930383705537984964241091857695568967683612357302210946142137351952356541665661077496211803860256012291585758807152819263695319666688127658934962163489102321545715281813276477086999490876551707832309255105166368416708979488880822912398668298882008315140529821067535837626897538812085457447917003520178675722643170818352875543030179776994444977671568531694519854648437019968831683488824341549083909991822652759114352355667830105881174173642353155939934534194334401054715888972802777953260568471439581016683680672178876866525325329170221743905490604800246039135548665155295110987457665229389955830437931730935758282575416954838786720012082228288148310896477180818657574636383550438806142272519250755572893120276883824287484908617074000251260041185043661877543898986350575626220786087651266900417572247322262562773377431778113668176451837154305745703271557158579303845108993935078174497186006464840423165211995420093679407110887994460444398884514301480593801056298656668804394714811171065718767101474451798168085066091163663557843275008097214131440271936758296674631688622359175824351877407844541142276377605240992197600123967309858438888405141800957251108255833886236417996879405927955862276012509823784439572568000733659866264958123688908145904070327598774536518623946695987307853271524672389902090168963704340315368537605720020271523706659521589909703386563607807420621077982902380351201533144023208960769197365585417124567350888741652129776103642227812197181545237658550508631683315015224281476342342426495349405750082924766338989576968406211172746487325278100642146551265097394102168079989049812148796789314124207440851384351342324646929169929012369463301482242467272595792470263553479918489587045724159302142553094088443566440875752478733732690290623793047619024147757377390086464966181020374386115051441759612496423078995560533408900907808455779954737226232459208717152686500392067006941908947317548498269923583896403325419777097013529797943693234212808800349493082282421138257625767838460055236108009660003825023349871464223865849136397433093077165302471098726757940520101697686458978619948915084650113088821452391703918444391841649959994621380299345562234438468102137431140933586197147218132271455469841127046743204098334384051805754736476363076633452853409172337042120469482189010544027002585450169249865451512006926144766651600369684518624386946369064872497238273256295986770861901010293887960628613470423929759237431176457482395201436642039787899200160480265754281839352334284749750837655479048205223257813324062798459243868230854685999920016664262738929812557915978824386504994906835427702826178723057262612942044406727942937178756002853892065630544218490070999879848532901122642697620783046715835730657146944617691387191750991459561585432403745146264815285139106456597970135188865828927269455723378308721322039139057471903454960013074405348454308784336378173185809981907714471245270974691187625044659730907695896187370959612358174404359039157370358789021775277376850227165373787079941544195852295660889701642719911644214201258727034090301969021950840936163243808355700940298458507225795437236416556998463617110671991992894719769505069551506892949771692922610404168196383958808829185705515624768487816009729560353588951097810478006647904761079378529965400375972813213858459339530316934835602034401587181426978146966976475483812213152291075976130245496152890204406210103469474292432262915228746531489185262429646507410387330663723038120512479637091622311315136911704372463397825090544388509467178125382763215001167324864280593209630312242181349038492980693165935306290930911103178285959521228144953853336440909662929238471810711063155239776263188936559273772484090089808351225821096373181293025293370901500074999847302445634313124798803771945611339744977768461686031585279534986757022126419686107559004584834740149289726925794595008837125453576466295299525975967074930933027891201519788522146402547367513098485397857916542631911435939957242399067076957484117412394478325860509984532834762906605811050202105453712914279546331739950996350683370378400510065308912206052821204949962628662082298053201317356999679500947091659738162075166980450404225981914472683799070406642000037126406146078207983051135617055796345423067318899683924140846933711146640958143172318484525048498427983931680259333549600625359822573257292275974512963307075548174676900056042163714451904048163781509252594452073314756137902991676465997196819327014459505586237956919891966858348629522363457421395742802053366146817001033617434566689659288507024472974538144897782880231514048908450301608867914046561871134308708451260612373561127284349046416269205490253924040027124114628069818181881686653959861073102283206955565990360080341258123110370765236191179529576007562781752755937316385555707822813634418977718253244728259765513214405717732496394236798379420848786411652849707984306839593437564717413231555723384281256012955672516851284697604437182394183365742290023804882352086038903816179385020062665175843067666517559507922839093481791210052820874916228709348933100972354906897951119431840518710068986467305072231096359563347176572898188313707913259224554291508481186308140931739350412308471873553699635746391804311894634946107341659808979714287290983496933669170142295114424508413337913816595743119546154487757275641055807607127063195638651259633131419720248852920884874700187412938132167919319109380546865921762126837599337127685832059645987972278227685332341882152552959069256012144004542567277660934337596647849448948632151354484839771410581438384683371055901240449023274974780038864943679981929444323612980734465307468582760692721401461145119069556857839423632096231779087611250757177786206948558028281556724877422252524714823674886680309639988714479341477887793697891662327624322596475559224055150060932115360108566287424228670379863101980323655654942691617828446054780373433586095581900675528592127635355754155105295184392664976612208683751401775454516964934703712977127251469608520096070368039605224419033911455230752470783765015904341632621520338872250603188073260718330398375100997230106539495761591784780890702169361273626278809988376533286991470495344016279752489589270032502561279729797717988858774746029755821147528370950242294517459122502190667105263936954032866766631800866420267926928188129508909770590360003219901029774234557582916787308991561272896145892686336911440411930067044516058424644543985893202623381257164857920881054767058338084310000761870917780375457471418578462606307486833463915700372050776194929730753921025436708302757776788041290063527567960221869419889863694814878910273422071817999658644967981625930162974477906613969023689136248826392514291962873746034410041178441501828412034896478861102912368996909402952284377816582410756476338487754264183626304618158442532335241615113513075399863635620885991653615508980733151722110219467173694480090372548039023726580432497804626466486545154636463826754097031808214292753345914067578276434008434816327023668821898465432668210294156345468109789875298708832350462099437844839166897952471494111251163141242770725278376189758753512471820584414714070241456722024433834481324602995130929842126336714906162039765649811985914786122435395305158457653548095392554942593417703009099790794100739207498489120607312451682459227308405417669193102163090902863609393471517882475654626550536583738437760098868177398200464982627145805106819626630560036988918919922706358928085468050749675548931136851232668809781513943365928544259252531897868775597839055128013778730584984500440076142499916754515879598119522184271189927683752496578315376675385890624126311841484194513844355530199822182281353129410989880290716541612994304813068856065915552372164733864595993267450437348241015083658316403397260723857228973116860875448317452901596909266519371033422668049513454096304314409145330033857237464222612699934536711580530339686110193761840845114350323236380837297396378813188474729696589877670970704117160527472362075712707207619084933346917637104461596027143852857546406737073978163641043740676882295746538922674447504175129303667728959731899159595365740162231251221531265909565638017192983109929642720757430072611212697133569739679277948645175055241190719619308377619177888352199359196855469277347699381507510327202885571070215102114569893825653787869451124057826742003204983379766542299518423066106963919607458445371046009868121096110007252648145293258745545769465460494874935981649632452862994294283857558919546242408274391615491141627374072173699633589341671330389764142069773243247255416055759326174566098387871884153309078066889122979409833063946034112043772128846380472046842045323683451918130533087111935215846412951245401171721472132266082220106223491652783888419824453887895706340444907803304843694712462216707910591235850918903797889519166332117914199040038586151963548479476362812128058496729842065609353919111089070321098848332330138200449124698379373882304405637947090482758521343801773219623610659905058020700789328876319711068921367796649081197839100339525543839880928289908243888121171119189548973144666550576111548611667473164597585541888982209457441829842369775751979116618618035489731249894781807689084603653817895662779310230161761673760247917408291152705745208270305992656385577915390840688060223193136771253955670848621181862537841502961350222242979855879742074259059007891792497572545348197754862660819266061968517725225903679561419499712648279522656746139045155180560815315001161800462442038750257129826133681347734411667531626763455492500882537762489737850411928912583641654711991541958442801599938723585357372449098114721063076350054919198353327040202286992916432901302480378000261975287048621524011042592675860187136585581077934866625144260821722362528918800797744546963562883973297558552971215858769094646314207361441032672532248453639457426020898008923820746625873065091077425768706615692145654092743300198286142316226073526264870619179039925063943155627391148515359433551767993718826945248262178861907131013268216710370022678700731182076741566380117292450235890186954743334080706017180699741566870192986878732585522720558441518631506705555418868803022511505673673799315992974607907498261188844258501703483510180936909686814445661986389305696038713952673772019688393077013223481080641857679614594583599374757279842052623736937186082170183290337519004334680190234827049032700123106090251182323889631529087626228964998759918348990349983154220115712779503995927859950370397874376461552946200211723920163032243582700768775557977679047078375173691652079266131816940770316623543404852270452871813191232378075145905016728152712749984371786323908589747218051796577628980469179253429399891563721289908685162833286665303893692013066059669050154971781308365679946735372796273716991499677751548167429801963101423575450848232842399342792658498856238105218861837781572077937415864872515878551143257053610946557552989029650521824885942975422303164591798538169078716103458474101263236702896916674623307039961215020223523898515060379133463631357936689492606734625066033953910552042041793627576451898975000136582588791258447930481063912274543203748189999767822497935371935371816629215980955356160984985116410670656264163687387432435031155045215822377540753848503522578527449672079897176067512248141778235283590432925958801367080101354306236821296628789109205518651400839599108526939786269140897748558529759401793814272146031342208406176467412775179909533023572412923785245606600539855311569087126888547929193860411261334813628970711405733141163656241683996136167844884762827765966503035032330950764884998904988806159363881239204579572924051463762533860313191799956595631174139241279268950447443002828273091382264618998953020232069981435808208479309875060789567202610095607848327919509021047575255671217485847648400863184549133456530930157424486898599694910634360204682713519970260623263139368048785963269193293982818442993374610415531345490393561979973472029186886740940456176744135610633265528883294597324112264692825432934036742613121555049356142605303189656878588510632624160090139558858142525794521796064313014186253465817671241590389289148581465884966694926954362663889410292461826725514542253974259471339871932930836220413948982981258027437309217535741905045339746749382970453994402128821234035701283259692833947643366564812924002262386881339984414306536161842263905616808669943922177874433261948149862677892140280508674297812370601934596857999160946623455826322219158334814487843226190350988449392502414423941013327884814847368014845375219418074948839203221317885314793038850586138570955493494252058610437163709193621729643222900520492869076352260851834263432318894828230116514576797962186947197685930178576626782037318033701494420083487375090723977650833096682700833296825885837674753530520447896588444932452197562580893751743724166311456472253475803101288458810184719747984181036239231350453605202068537914772209787782684785532172886893006405109955739694390511626382748646951615919269658369032337250737290394465554708894099951922742612525197887458398930107494817537453822071179101081592738146464648242427208669640873023655675991461557350974478101667310383555572818190401264778196723131288686879816871589957653541723090712033703592952317246639628433354116470328099646628760467196498254528416809627631691193047923779384399531542403717889313513194642082020239080128001610765222124497372952670196887551055755012047206723271148640346086586269428753565024295948078762607729930558590913020284471591405181235143573319969558414487859585422873968549417787362465392323643006501542268698385254368874226123707109461780506426218455721005951869243054332589063209114275520552336125585667991804912061747904188603539752847238172519782310991745849808908847266947490712972722765881409671398989021163989133758757095744091295248369495017348311643024746061244588845133608177538061521684862005446151700690384442242972052430254888872574526346561797510156395410223639469568672873269905144461326364295699971376455231174386182383023000039439814158311932726670869477671503463291864737908237853820541197765403767754906112220637733795526274493606418273816916241161315221163839036195708371348241778156253395438808454169860427043129158614916468649624878557016004435640973197304254480164919138824636271658896388874028909029726232315478412328640568706096641747216809477854514532215999071121780329843282548970111356390991622529189811282402066629952314471328084946202214321835750935525285587868948202406790021899908284671475088727780008571228586112137861394418844218597514416961055160233404885870488125918701093202261815657581532628073439433916976641247484888301606211978436222023685476399154184656507186980671383391309348187559032102981843738909344527520215397689275044972785906094978715136313014251746882481802301970393915468118849318131777808440544364853766686940989833094161487896189883234928851176188223331071801395222681375891585282279605325094875605456515405159072826711662931754189221096370283509950415844403768802447509128982486835166185298073038698718436935207694699588600101637765862219261471624118654874758453722220567681204963063510274887821200303512595230603048123774870512956774651254141369215625313077823294210373585910461250286679814613183031336046482367327839268564220729691043547849213371602648187141289609924984943432807265857845804680331332057886474707852024874586078825351118206320855091969580368733540185940786373561213012283554342255892273935071884802145455388828856522150020709228538151355438397884478992027852544562474398097498992579632472109221598603532195314531787522035484494321702300826804286013009396808706077505718379338155614358676339633983161909932780862885368235020160903360014725692988210848565852696876794334682844976748923429909416962268942976337031957801489283474393351607137075620477163090517750325100217273933247793313494208643013573323571331233444435710533378944863553208079666513185745249285295494562748850535342113809894344013153053315864228533425803338033675298481491898115092842354072451197885826227627160550838440867602757715921480929792525451946360823659280752216002245950501856529116732847268995721379917130609975084695134746240708388297691938879234530852068828754874632812216426809351292963744288464211223539030205432654786723590553165695019386739077592741010105110362874888966905872258508137265381232706066790501709158214209502065580216885416016488637596045792253698888886444924877352571445640609549048911006148467084797126113874456332441321205282063131028808973836930558153431426906874805963678242369166652079778601494180128626333257182847822433006692670786483069486588281155491122802664681567631210123418112510210337793901841956346021948577355305281065223712065893089064174664325471406359744743941381109806560445562284859409242507596672577693497693459663191333431225623620473496345164658757014712774583419846916566604531633517752561303802085949360018559989036319668543325934048625315590812520834382203637697131444209220962001563680587228395632813299584464079431891792994895131778048230242271633628742077342342110393986409478857187983363616297731480719765202027202100833768451956656384138506706596608926312960509350235420515120960875120077503799333197618948829666874389491523216824622705086431733681586850056791031273379146636377895015220616406432736702862311670132983907536561080594849423853794725968789526127741936988543602580987770756811481608898066396141914760200082832242464506607826419595321704565097218824829223961651908862018874868720321852866436590088188984056067364724034253385842532556946118603040194045365117894580102325104276176720214251844730483106089550367812173979823295686539764922712841001576872829249909938012701484440065386048727362701044926292726803753858340557984517693277790250079850472658654117554683561386853251503851656780791134686421485478950999103776238804229077474112396115283206336535680125671547590412906732370198861864554157938861194016621443379375565999850492739113236264358469897302011076594070276120375712756611401834916485542983257779331775752051433259953964358548000281153425654238773832301057109396434918322959814828124976662741402312855227632557768698852595144955943380366194856544789401351715869132329394310035337048353666026214652930215260547173391662859511930456606560208316386973285589545904080473012530546902865951275589752587046549469723269968799511955974179453684553600936992855449504687139829225701502619965565183579956273112447341246317549416252061103901914113905196038967420308205480482990526027608061716328560902529867131081245754387177412181452576362372346620184258773923394095574589374655090092379115883837244784266614890282099563157881572890490110374610052223633679147485726543389119916543989201939067483783182997101892774614606230077685836396966006788301914619277939427355563619564207310257004361987346831008069582510560744870504309839299775852782879351679788666231022424072281111224942203262812603475816610902200183654203802991964372432876526620047822207849974883896237359587308130120403564961337792326029309801587645634538419394052636790024277990125052936430980207667671668346651777399629831074036190684812876154412641562088428237170458660557186230192696727836576335881238746254580156633977893962152258468339855881585287055397979954368676728696339396528904706831156327971400174715401804660273450931904041745277745559140168842432672416632770401245282136450275690200793302535313404606105773632948852954673435353874400015156624669945178894295708002428347091496507239441784350216458141911943048101317278218095716326873347027692095351215966083795360238142522766628940240167746853163571543745009325087633606341174571514695268449560570286359061305741303480796746584148932016954028445027085035966753260738023207013527982845582822435869641990878325920822030547626063387786320016518852616115816993151827536796097406466314843654111382971840471434168903588941510499165674445707636544349989478207717761515486706383937542522190160970634557963016953691904131968246810037914329745001832226139245252606156944914729045517450823095010510043764935189688422591954793534030457396083243387885758706822032030979467394846013369677332254041265443803021216384134436786124952846258301352663432511481162982337980490856449244954205730619685560974063056065210619516212209777482771703243719251216733226092325488970369844800710123123969019195686272902951208637488683479884716578165533323503949762997160723637476150821320095075546888130876781042600522081751507898114288770414354359490460710988482614903018942417106872665881539475403618417937293380389855415629501624889009063816082485422643931876076331554721298131922197419373820986358101745824533962527315841661888821236536400052344414788266208921354900747705807673606589003044995749020616838335879193442387349357988846639845949894754163313829451838071075594852118666848493127834884127744211406387603882555758379821755791530495094710041605513783415624649885228899959410222363617023975024547551493749669348946186477105677598870068460649754140227023796508900304714172846642236088195924891820547042249443784612449063247986873031469623838152432810661187024999360285615798820679310503615963138649618961645477546329246337345094329378861223680855217568885681148297509442788761194434395791124093922603300252541739981362389589703918826394412904545872105161045697684973503659800247387886962747267939379227343773443411308282946699530535743681705641597436220709373064458574550321842535539303340611344952997257749852836036716986428037018617578292725423193696187367628299535193846905196711124807179776608052440881841863824356078160139763900209274387602416782146938972668865903712784945297728614904738546700504325615916973031644176964385191363602115465083949519381430002149566328357857325506004345800237894317865938000458073575055410607671578544488446299333194095287234095827622316485423134662541107188465078470319348770764358212852256837764562843656426571382844268322966688968521942208542113530752948573992127254959638355972500598914383879953824226586147414052206898761596379110662360522911072748855656403530876681142204556028977262629158371739945560929690059756973112796352758576552566695630336919356185598809084258724701071294293769872872879768787724837584300971474660498398448987383085182836810373341517255013918993973261240453999764106631079709048362782226756277544893733563600357653401353215070107887578105834102282593275803611271973486315564025617476717014481862021826065237209340456864054735765513152315585155754290023107571250732658082559803287247235148966915260820818515201664353564400530531027428863306657402320105003575835924449465975891633162721241144143208946977380274011773951973814068775757661261061391982265537334806013643507215711217835052307304518222620140890799330710723981550544207192735988247494214082727140761734135218128551337107643533711867275934501024818224141951204496976886671316782687419875900798967253034840710343185509993621396009840457369727491917898441364812483018482423456617826518631158295359903502669051050583217714295755187698493777515408546410316578651655774010961317012308586838010354393984135568459331094249267459647733987373761873750448284481143113390693288837629375891741259143152725086395902929508131368399163888985274901784415162817747871188939815703857726743708298631044947695269466629642467141073925672444491478267210182858830866177631599696158123696878587954653440613269770728336471420604811966943466363362411900796997478678715352074866217642564633229116706648431448370142647155450665171098820766666748600303302024487249566284572478119272752544479799503693680174224197828106318911938928958616533431681559813989204695138438812762438107856710868173147427800642745195389415243490584882464775399419070511014543342055433135839380650677693729014488269291738171433279115018108332327275411565711473596929766503038311152867021112711546680619076279933263065382445002723744507878526614353561687729536483772793770777431509799672209808899856896822533887360984528039135986299829448085886127091393138044972789856511895823002785395745385687303642342150787343303151948645405701405841799923049883132325942670221605797358297166629551981625522765455564787318417538171841033221646897649104067807316945984561267200730010287725793886609559988675103013928717158331745209657525602957087501099065762814256522729715023371964156155749667874818466241511342193239204186862659871663769588709044646750758297521710883853592267015195598073434413184833535553192415147283961375512548234807541983419017900965540379752578959500624241964733325931143891015342905811676843832002066142912181999763888467257854903582088606949485341483889522246176523531391762451741840729358367702432842815765858610611637698415397360594051784085802150000489618449275583320263485691435339881454688794664341975507448133017925276687508732977941176032198325275783118033796452228036786727574113937058344968283262469784540147919229480519267927648918149800459977930950467587065356883133192783411658345765936784839832275485656829327632612554716847818053676573725686355609261421343933131080724774881903925265203719772817687213438803683724004605002359771366373197069972695904384380180639556626521699632799484755064140560290338216773461780807756483942238826822264904498889986637564492770082255102999018972871031452464106566448470440439517812892286421743985556285817575536133121859664853383910662994807500037116941872683442053976974754202399475714342388115720633848489550586429994911198021510598144997646786002166725359420800835319674916613800349483817943082604882385468309481365497508931579938427717105913346863036564048225123753272977992089490307546772933624324555328613541127494400809717417763614496525274150813213898211574539788514078665425350904370144610877982986317530056433993337568861550302606582149159346887160257446297131684806005617643979894656099004345807754003182412404266911173525898720657516094518893009443759541473438982395795454489062202211441180663287420318950015589458198012320227625757090021901482204624943575485022925470221599509082358921231787172521915352293589661445651096837147922537461292222233377844773030626765329325428480559200977001402008007773615498881379718145341691468248772426797290996281075825727209383599576953458541302908334612865962951303946370649054734117752420121797586894348828573817354365178249320809870570021740367595529269228653485222317196043505733006343808380770938652959866551239303508278696168593184359894455056705131099957914764411163553110482953491840414790096820523371452697352473743998621657823161834433256209072791779389379679935947280035098996483745371235552031212369323915093677218918317932247889017650411478485776629835943823449773700528787233109463248637198931413185922648288883284555618674169246023108387358656521195089759337952393530697954955291533831722762198174273811594588651912783995675098363767880589120892249848022212491447144562658623891977487637290015013955735350649677350029372666194998938869053311510024608837381821567989635773430142931457095562936990559674446248158679750107081627087988575565269670727410216782253172801068648274895145819952446086044179082633448366675411155132160186184123943117221332332594724203725062289687636589373432992956038635521881332602954795169390969056155861454413930457420389579511283669718388813431321008061512648796997294085436175943310506611145279040728641696442309744044116847294784956477172824215796610226841210739543047137296557728466510271652544180683278167308329329060855423904646556272706585952705742478857766111552606638784140116080885738583531090161240415513889719962085844803234625043035865267420703145877038345585976560358980337164870980419900074357670878340517530104757160404463089853413774832218510421015241945220524705291906128164294181367129981540412551704366008157095187165993918111500141072966075696221914052818467481997234524308181997572296943427188995333731647474187665319773064258222780022785789529128823172287234645708841073447222085128417189316069749508243212770388844121512845029656714258453041440913374259549439185524898921913503571256675960127979514565719773539216057942669012638782900784557391166908554233499821947763246773569814588797705665767190017361885554204971813992449651466367899632762597475506531347721685815391909660923576629440440707734860936483475171664263758410577082647765321886206365683987498664116358253684189197864565820381423195056369459195377705241140029352832930643264487144210082720982880497895536701502464566904803667729580025802427412865295614250696908409471604047666315217018910509690549487455747192627336415726914169876634501304808482254057891682431365470215614883446841050889891951199704259560591173455932452785447435373833050584701001621345395858325555186847426086421138445155340527568767858493281785013744921577628259298417567845470134829411292857517847968379014699195230662415050493025537272836556934235569784942799419661947927259551594720674745118649219432584268389993162604751204009783342375905808312979551342025313838889407334891567981223594767272766768939597232639323384477955201667696443284437399810499003275471295065475853879296254319549007335878633719973753690160138035704017292627216412403926829323503385407015936625406691178556768792837189365657324265439389386227124077490970717087666331181423022491989245960735745499718939892712007747603198061840313059478089920208798772306226763101443838723164062197495545329368371422479899935761927221530384251423811714691359523339162808844735990295653230403282853987285147350155039850851547794889423610446799419445818049639486822165428548692649787904285853819325625030695030697908807311126165172455608204869794322261575088957618308522626503346636486925103407650998755057040118838106393627219324466511600584520558638347347948721211069001754563851444160844085704637352033390654168064506404221416104494014798777959756800423196430520602787904459176340264911723044740901547435494405842640418493663326557721077022839835497221924544737218422041130457735368470585553763375240334337081510672555059191386659047181899758211478019553198918984173351572301530614319981706985863297204512549704975523652371010130896041657496519300993928243259361833362252865544975927248049774585689885853067883285501029855397743020403356376797457972397077836906330382205676184131316786995865097404561052774446044277684395266521939604417507193776329688243704341637663070298859223057776694192024912571293709582636830530744502280148206172583755764657637024479792870483612668712353617507764191195934490676794056152197111099778507593363605638590533996499571589547317991645910188976849749160364069512105559848717078804099430560307750372343340448762829849052169363407239969190856591446381093548229353224027458047941743264338359170267032245622248093985007473719986865439468824857588298613080061059875312649634803858017968125392040540825821869194972641467786542493095895735451932185385969678767482297440427427139395526355307806259202861075436510958782264376190452819244607990543937942590411551069669926578678197389772704214247810055226845084339224715702378133799114605953278093829683176517008391121870454958447859033345058475629589890258693106588587252871583668057157771158337084661763438408558633747257575635753954623811726609236361657483319854033349621181538005023982364919885037180794698200297491768686965847271326777919622600235161466867371468834556760100660800359655766950509357075796651816877844316969015211430967817192104311032463876668534568421778165341330436297289641396278465195407555886003860979985300424792708831613895285207160196537518348965491741597884584401870799552115209782450016927821018499162547992461130368198056382251077792556271582692829046294336993856813506316364762708432792823463699040229092009711366556917449663464862461685627279121920000573462214334861661314654450424383207770269864441893817709526198043178549360970736012892103019896112021684149753529063436803575605306044313073215025780173308236180870604514962786628283280803908906617952395430996783749222705738527530193641867684043444509145150828175124616623803497728482543538568745413803960055892680259652604152642744978037429099071080092282086247675871091713386645421367258875585724430779580349993058983656200282874100205536186845104631265683299562993328882866969431452079204896438396030667446917122083153723485820383922700962882377697838505403664460939425229037596064043447984900179726793363153899576508433396392511368936022984358357659990556169258834880414784833804363719053244620748621934365256715839639483724931593687377550743978567880148423601718221104766643151752196713262882203540990989266178052594052748155400159791379648698678064933778001175342746983934781010385864479085098969891541541394329092143117262477281156499832546875140825356924713682644658423446787770163698139927803540007213248105210241230002246119695964459223200385973865542034634662207850925260476650587648000408127147770518011596446390028093323236632681794187806969208509939675252207809028319325734938325793478708226069317585728221835820379209664836879840767837017605437154673557525735131966876818947226071058036038076601911255142255327088180915102012623174287111632929255129176776849581013130525053685067626762151392766271989566039687038969536107551738284454573330387143618677772844892967000598385250937605117553165938907061631696492560279296318007357088881646295896858984177003735817367609516793991555551259112327639523909444701155288026702775688040523108013724181634933356453128735019066047621862035181873731212032425620771161926834057657354338284825590436626717582535006442091388214521818684514390366084555951161168861013320492017791217421954114623930097634493794862204731656067218008699710418028702415102108907518726828673861544439022552133954092412559474060624304607839226425377335248650876976063526389331547500978373440626920529237470775493278352845454668388299551404983757554981917155918908148507575042489502886715589809711091010103054696737984817511555722239139162591857762138471197084311523186685097133531237850031940753057892031617406541607963203770722453105856121051696259552241488610472513407471611139573654806470732602181992883662645441458770063071962919837123239403160422794561298636538553524687281035728269154152618454019372383795941563035388571758944284239354585903974077074408016514679962687353522015408278753210502314089155050454463705545263476196596527141582563114842548797776670047358491108767508467051188712978942829874928713053712129689472003214335480401838268211873929359435139403755473065276407500895415369749370393795720179579890314058096553839679340592262573259278380472733583653546078467194915969138430900392927403802928220554575748677035428146660773217667954335830358298273007505213330648053338175952735953911700363297335873475402767363419542245232500980315784890520590779324343337392696529405215313906503762050449370181759620974997345226332766618571681924500251522219094556000156404063569303417694576046737884881809471046779268305284956547535877432214047538226607576414631866219241322545703145971392665549038076857271711749653428063209673331561755325112578707965662352610297968077543696547586899688015270399722876348714523394340215315446355791892572838049223101045379413303595323638149387135579991288108912937899336453602849138897848350161370499324645340427370398539106445834798365714211005422522868934160885279308353932311800782410338926127819832167000634953695148587588814217715214059446360152861832466103841751236632562241156921303708911396870930495994623947742833701648590004859823182048710395046665239562970728813664851942008350365843999963410800633385682071206534538370561493209061638751266570149059689310540425914832074143684882282829919248519299955382792947453418046677793112633011385305098118085112116456629896096466543826706365545410071501823509071727506653426799620501380717555118127506733804523143669031957893832815371985005782620461981756821764108346886033025582420718849078036290310184209465046832903504223206966431380637759917990236964174022950532057381916304317268297802317472426400359951231433662376661795945002495460227870773863732781681865154063204298887170109055722277166999399827305054351524907206965242482347931119939258620855001963163147071544590984763607511112339385149669803264333267048381257771150766315457499710802032256672296218070434356859364652072473982370115805822506592925400327318204450288437330084060061641674066008716800279094587843662621662778364099121591494166676219171412239209440195748767003062815010295212669688636873236696044976353887468090732351775085952039534619304492947174683161900401302543715827807915740780386470888495493989174546698939903097874548542552724117870535298211217777727674188145776643653637758899099567255168211384149691944365970896829446894194663613118328058766332769447565623362491032862473091803449209551349319820937616543866246306207318376522301803298929576260359480122798510856828093884281187143647467889209536099239071549327683373918149910730664698350758666258291159743698026511209039951125455933611917478153743367015632378460874288737080138684393055940763649486974377541985677860653148803561386177232680710435854841780223574620896080770940617005266829987763410487756441860075548508949185841775764160309254376501535224633300437306906436876211471823566354720600318865103592747027781919976343344121595200199196834351800528546099393596022496238885141541748116577031961373797391299876057770684620548531608121365759688071252357296349341578329713745310671957683948373866909575515407635133640120890162057511943701992445369983897317169860565099481281438305146413906880603631995693324721653812435386227998012202514416362731036674088043451434410357727997544059994804758035960048498492327363348992896184582657948877379110101307479463299501739573527811462593107348888812767610800297050166505619486509528066775534313948686226040165945098332204345747337379077872958950366042198289680889476570743887401752239580698528686563058326579183780213658687055280896628384517543128590985919752026838437245845575212900150875259036205874550143483234338622024228404555901166172092816676702229229058528630591728395107187205588200375431027635379423079699884368996531340934934366742923370663800781834359388855340704907710740883750205164687657635664448810789726689871583930724266547558275286189526421283417114665686079259729599165178498595347236197175310170665046887962213255895531969635190514152573048646782818817894409689433441499078180150760778754184847793050219231047330988734596152821991372636912812265062023428121499303497276720648803068481716736026631546980156117544316152603498615188658633784415006311170700341490914758716698796925513897169136816192164676920678583485368890188822146640192138901116337409091522090635522594957299073697637856095882530590104005370533572513164601063242308013473881390477642981046274226467689207771962618321636028748377608545336351584261786203632629749997245218906622495332898625532861215197067613535603372172469570742109470454842684673646517605860270739332139885973490173768530930528797864425851904433156551555135118224619460716174961495597539886810229481714714413179918456083976060751022298873427341727311071501402018112986623689347508523152449478802631285331641731308083657686648632898137015089988819022914281124732796166554600873241392082654933541661344373985571686556080072890608513402426573419527320722392526631524315347900821992596410884545400514386929810561695751269646430248355268804329490646302003591353866854928155256850226287591620253901809717012617540970536478382054303143974383599648579661840373438056273414404818565859241344357330520335164032406977500834962775624746427585078358793073511196700166071243608510239831532126771235136236423867794992979918809944592322836531811951392464333123447414377679674922247773049633626027552054203497118602017591069341796806440362503628120035664921031177878487345629623864466608839593226976691241927220981788547898448543189232313991888111931628115113240671891451061945696545900547804437900056747785113412141105310085978087824786928159417865751831514828388163267137003266301188971374880659681983115096883802764654972178341829738864997309322849031992080090006447066707820118885737978315070746901764063646734410178122836118123473919243393804288911335156075473584229675819050136168438579707496330598325108327206660895418206622629722074608905872839883927085529623932843571653488684162738487131208934243234574513125929052123489067486361706059396776963980609452101094249111553821260200688520205768494475940363105626603702748933120336594269664828510241331752858898084413794167523366758346034942207564790228415704911514168756002507672010051135493699604164472882730689573771532975679172424944578928019795730315997091826532259783350564624645742205475118722371258435170936546141536595992857511744490000413862903658814767620413159334002499098990035090786741061796523681737681529842234832007019854875247995451524566229216621380992655062882846450799503659132055719138209384633178228566554987638096225437989240736357621260453093736056039165297698651234145250697273258842298021534644126226011339064664640863731611329051692183538498386821957505968682038670028853147410116580474146497287894520879412864705502597997307275089961075077702680192639134891140222163539030906834214371007453796780940405554944705852296399103263041924061543408282021179527258930581689323762266961751388304364637397853848227902386501860807799620132084615247859787894961708786015745766067671722947388961154495286394972531987696075135244320432670161318163600034029317465165202583419023517051039615749092439887542810678134240433540695805600095201466273948968602980022987409900063148223463207845060771969034365963758218274187680474414504144976068020992601362680637090430896913150094133276125861886326525051179281627364131248992494408560518760419082726950624949749418027644879374655632155310162231887916478701017639421300482177925432736143258210549683852074013397387506219383725679918674167670368827723017868600507684167999745051648669129852045956453961057518468211828838933960506069134436637916613403728872368618654893535466375878331946740884505131366794299862554650190851204870985083076808234481912740996556812462988605078692324794486915615353306244795602654845224006215225331305082394859439766514146230758701492155056666131639489987769131888606705070701143164229299169821339715169583386407720772686030561212418660319699513422348273538264234191157755946448930414509440036409207973392417861230475196320965269328089732871211188942739132454126136184930204015837088157931735748308998075963406148016754000822450623262222911300772575482494718523521761349989716707655334173838558766316974790465914231883669695717590914046767044475506117411969855940662813114327325252188309557928217498599820206747358327464660954485373029084589405124387756885225351593852171479889353211788486635913402249213309913943131120230336220945057656519182970257992548584779382265028770456905632100119550746410221412465926081977978675940502833976786793184128528474041473657306957141350537750040009380339118537183976039367546019782692163076739918060693378941290386850442296928130368487920552586177659972393440801824907749130210926877422527660452121071402434712879381841873231300020999375991000193706537602463996282698367270288420314150590383938543423119211409346184964886573053889119316546730924033985600824610632643504474566151740907992567038756205868453290579024901706623164121622616825380526579923679060310802307994690994636973341725225862898186504551447321557952350249915239477820987289458956659267737354620452491223387061497049816138592217908148359521462105361967037757762683179812544382700430825164471179995752595512802516227774811950297491966838420032986301920040808859871074249017821504859708360949197511720199193901532260596594392070313278611320189159114010115238444108312285413526788982720374732188177489159185133466151472258819369818482642474113553717536350531176777238363067220114425298923043724876094876887258709921774722926024843613450228914106113051136540144898392880507923208922683689727597293756734780542492044348080764202308418100190859145154071036811520105202889477135119899314238127120806212389852752512876121727647926861039094035010413291614182115745981381102369723417159315119424301900173229084576414616465152758084312175421673004563954813217919186910980833899522343759800169255646172261109662301796198095348687774317124514675983252790426258722338471156460209357444978550295105923481839143199267424105219453882889469013453670290689818168892733464904213757644231691814745461027420686301717405318768200185166232207914814800686022647826954061435650225617082377707339856485854270108321477221231946912328286485027200060609551634055318713392732426780662232879827266352344355593138280384041921425353545668990691870904417126334429629461880341152635019836644976331065305603228385849508943689074778812811789634379357924556289286593414687033887617548135542209658392378129228864529678807517678446724955111870212725729739874663213310512643879111538113529596108001669540547573765419194916967696936977359634684405312130466540979800126060310723506029601102928558269722746423858447777441532934261074426212428526328661909127130989191352983483608911036504500785669334261689292718105532668753650344474807150693749618682225382874460903137834743522004062966878493564232184128641402341256784646013752638849737005595118221200863689699051427084730249702084250290209499913083656292226966587167683265828025249472696322958038991758116478726765132037569014765365826599826778290201950300107306914867095244231775626197813451967136237081223237322116887007865892673806884638787258565649114618447389592300395378288953127055211806071667474938807491109705669103443464147132788189832396394132665858466991957448299803152864974898394007694797055194574242251844770628014970620416806581023181573033025227618815956287900565390406855613788953059659348924481226357918806776757197269286302503559087961498252433660520418396868701799882455519972627642208280067755121832995025426063349600580620189930584151271747592933686908618491906227095953812524053470385278683777297609298692475680159280717338940342062969588386793363272830418549346436041346516502998833693416920224786528935420643027016932327438145038575398858369254169013581266503231887523859447175986332884124335273672702740366830183835823943440475336953314008533220206262103623576680527530967334530873945971710514143539838380678658610141624412473606721713096464046170878176447725883112967950683621006802569121324707850577423952282871978724350306630832255994167216119019742830338786582364072868872571307682398559498349046935545435602055826638748827203152408134115334567380141161061818366073479415867138984152531041876860250236851272224112301198980432031368037291054108664654443988296389075531892172916509675501817606524819139258422807827068724633604715023615113210329223860658755428774963110221911581782501218035134230030760585224462630198355501673962435985204742422737323779112745123007684833385686443818795378397022978900263562837813996884428527215788182470404884531892078856895593692771546322561902691086226188262758365846016697747907855986889206333138938410884285306052946133537785950857940807813072332596074527429255563350960661662011549111100962501826213822983968234803686344529433564608187940898534978336291291740371555801635106027991303695997780509226407975625313266708798654930495154444688381810075927166499688936869507222942721577937479604299795303509061137903776089060108103930535093439447457547090423076294790108836690508859912501649723120777451236261347673774537342737981402209615759350597859302997478190725180224026276530305393658780739081240013618648467631031177919645789679084363290379099590105433669713637389748443234064857072068457785491519715966802776786224360368689597440734784259082407209037079380738492507380670875759538232510318528357110723386910684853966344095432062615067208455852399678807478176316825694203258525454541641121913882824983814550599691580406050546840186078048063183543641546194789908783194735951880762194259898404628192759604119323800971651775318300556876886909372386522153952342210939252972193179198979553289197718508756226030605071607359790775400611835568145939298328409217870284842801931972867723483379070064512584601897187909303860526996166672934379858124835968961240039207184738480133587760425854127993510721334796705735925067991387338752796682227121916761193648778010997626650249337072303214822685503066902478550247351137171866635914570795507737862738197556677823399073403226599884621559256639336527053204529388574413483090013306984789145996032868291108813647447998141855836210618271053754973525665580611813965609202561682330182093194253580293705369554496490943998804594536679810280401889631968305265060399755344433744400154697819557980503898078621641386188363811415710151537558385166713884571369753023354595780997178942256796493395233627857702406504954582109092669036169325874129481623841858259226574011320826688318206348312858338589267621722669370296291520117196451565171059581080608115010848436647175056673315620234084445105907962372667207423654067179736363743575845470952214071958468980859261138909447638622717814681992176524158565463642220485064073392158386385404498056610418361449043923795418975707105089841906889985986504565544882738613198998940173632875464249308870615834580920744714347009831608251130178903448371912005179128340443510790213446463600094713698701338614739420378052059723025866260971671538066320453060656531947729885513628709959926859091056645440775435936573847087434277801457795788940575521070360974387441413721343416304898401088493463749902212106087189786882167795140191415390156200186948084809788539985623589766177122789373471827558333772705447272065390862826940284442679815837646014788830750868046524352597954320169593446063685620242468177453769169108800305970251681494179239945797815323863653184601438497236863106395068371865558687024992519780607641097468904674736194731647242370795082907198159079775669395702240646125679065908669445635597094646877435656125704193450035584455949637264378813790351658139947932439694749408065695628720505474020358834317397541563969097142277722869949209452419282360833389913699826461536336585930470210088759859433935557861763950655836300748327588670894357877195161279060902011644791133655887867559662851319501792311896182085441373542286447638976715902926089895813904462890339514699758179910375533729069006808781319319220217662271720537705262960216816934303357738695719416307666354980497425232590237315474025530996017889317086230225735487936968260887968230336922975981114778911134055147134111230626323078828024246748640220945634398349046472218621016962861548312269589406032998018756711292687771106683495318605689462192262276623184207616370676933438133611007525822795050912292206259803835794818270141022502747669993945026258541913648153569217629526809894054014401123530114834716574563982898424001706122965898725690824633001598120452926357617979073185420735585592427114602999074714267873977509113342255532528577189674715670515457677903970403394619196736937927712876820824176281814491610785126753730611591637275278993948448742621684362926332703849791715203287223179266679075435583139705766672000042200428341894023348171442844228624303804596813936600941414020678331141932868278383787406602589330925885753625089985236659095535236488169606188859386499642652720178235566303523912027192609318380161439785320629737399282230251509336289178477316215889932155927781081816122204368361062488840912619441908296855644891783675079987640652450154766931318736533531168826843458818999460885658395544390656728725317306399275480022600012355157633951584518323864040316992579112653455266498634915394824568355056773616495078835309280043312987732547015840139107847449911234521343025945830498919154339663424983756297213906427886755021898172096803026837733851487547417057842558643598797771644357558066093612970650629161090787948756602975963649784922695438555552109482806236911188945275116607900451650924497058096925127205049971731773587103049142666576312388088990414542397988429423357724791730841533490957403602694397759788291950030390825177897426271649461816406240599762568421298438199980925802544510149293180882564573089707752104390513623474976833375580898259974053732893768077109539141809048552331426159403386379676746539766750709973264577591931095673263151828803778153305297764232671636217569279444885637332754046182625257899284805671389030741125634688139552807589666514881278135332910984943549420467501119280881467078418368364148806567999524528391080187673368660557506689584527290127268093887945146056754275210420419397170811100111706888747673605585810502900609855391097977744795174065468887787052449529474076085042478628373159827304902614422422995335356143984669391924430730340076915744432811663208025496119410831007438437101010254896085485094154637504004247428123851552870469166291442591778292376634844734854210290164137471238202030121362619887438340645372553162543738608587310715336496329983048284024245460154478700986817985360342937061432602936937068833047733829553354041566690890916877986853286941604209102432080009355108041143350883381611113054204564690461804153255074922777658972341674667488333856296188415460670375000741295719137680802439435429602123816783121396697393081058633790619232712360447402104403337743826070974764570256858429358414854634197880189529400877058380422060738060269672903731065444113055619044670880299605560302355332675553908244741007795520430934230666052852486749192753756955270470709213754100180339122341637292996924244080866303146935150388016666650361133072202978929789638583939420390083484351437668608877014683969453609714207288657658066396380358745027702376459001678707834285896551260933223832603921349471853675877072793666754809689217798797370615528233873422794558567790086660818730955047204679150951388292903405264268113531492322468207364946528616141098049093063781967713630671385893307036102189369457644226212405109932557992768461971586931740612534158028617173404504923692457921031146592295941645422121390492368522520888550279134455071540655874547656448944776258091321972673643625244217035874032315185462255817468386703479780482089546271117071553444469442204083009768615596030504532878982113033251623006928708308060182550187969673547091880641072177813416127695362193039164723935109099652258574347183579195059195469864094128075788534763606246580944880931306201068313292082074929198234636327175001959664042807058039558055893497134212473842921517769095917258112165634059456049886535631148358995563641785244647468347773603283040993181182854679633369815999892257813283300360818673482974683064189218935012156621386004294986750745068949488544775478886770813261893708824332049214474626202892290961504799601423196886818897068081086873706847197426285161320000150283862676318249650632738137200514310811681834797955793270132012327415629530306369192326228488825846817962014944858987644665044378588151803996750765049638046178921732702575293685841132473569418544849452782056014175278550487473627103907562600825588737374818923678641797627576209770308410847516826759064336604868093392095743569387642693645954139203188055270256750679491651163816515662097059367561912161435063285299725523333722315102323219624432222179506202311230797781721550570376833774805547558837446010180042705561515487123610588152463337356558202803814700619912993905161724991174644023741250580565422019146761941021504824604588784108841877196184193081064760340543248836321607506071335246146665036338274219645969778512565955198088572509427552017294051471450007951396232732814831300211115537453454313617284529214440708203483045382043713956275947500404597192218475169869768985051066220522090253607530891214626310984436977461374163511559718041081300096893387716254748793942397751484998777884323120383646433274661569827708630703696720504284861642976918679177202828131295043588906911185145411577171191836231624346209107540267989738031661244434760826468242016844574477518961644224229003754886414084724776335577996682161569751740539004906888892669972310641258431577631259978224497766041117141811508180438035795480789659531282632382706066493255876552771619567694210250116118907869222980755572671090636833286323791633958964209965387592079111180198656622123176223685773481794499033036056485997397601819442138266786610043373515087850670408937393534276786948680397994027518360532258222410023059046901017966161429604770019241346635041115034639709787308385940092763090854547082093091604220041485944682292440072697072447913869933577879820514146641997670889020015851734929220164603330815383038605873659199788749657978508798473132011594170584103931663360377655308386943331200571921771899326310267057529663993923440400874487863540481668289966176539608783192258929676154324986766621051649467530687194328385135900016427266009060802347593884578475856258614168058839970464221843059655916297145133498896786257370154369634187597677643234470279410321042539482167109969051429326984702384214850752672961013072303561208354162995125784145741136019570231304490468869412710248977900352815415442420499155723124644712964234382157024517881129155367669638520186804722484730733333348087567260812805838422081197577250094787654711254199684306934853215074915826404111938702044272070662574051425488504126407538644542015616776068540657518930698468113981911214739947983560132758764834851757941286700748898917618084605616553228607911517259510732534435786148119906139292161279520327006902439686537616886615617119335567535044837385424788675514999099345841510477043371222678742412834998613373351755636817390047890514102166881171654053782413504615373051185683479942738018713963426475860055086067561315348306078990131159678602184469505558226681436336399361137431474542225468101316568782385831089735160526294812134099608919298977361638278869759125032923582226943075051894464380978437613470846142229266308694048126643802763848725988402934943231963051154549983547687683136403637006182113381275344650515337394952150821699131102770615640508981110631897051920096633159559007434275129347917095885702518651583236420382001302945090541276262976935238756846366427748121074675113580349805150680972148920484098043435233812660309647924794951367346975400254635721019430981688845044591282321714487794835714529940646667099928706220397071264526739254861164135140402368170313504713234500485284798477452681758876881024935762562472645946613804106795745691802182678046295945082403535909045798817392070569302746216808552803504452733030424467702168113638442351990601525758862578115631856252334628901696133175584384643687418406103431379745605411921032903542598688995509375243928768905533335526444883244641765555292392686120654047132388445340396247505260786807496840264719090857873727224893564905040391423385801548106426758967175233295945987388919611275311399991617504446698892848198879901143988757647029605983394665433403758186637288897570259908716547682600483045980756427311639515860313138909585317430614804309665500397408323912757336084563793054080871056973901463042418548298629821560370361865406541973748381648706886178004888987483531357095978699351744633699523444776734646537981105199845449952670751876344088604489179782969293116806922633234212074755118436486394275090522922062576426679594859306745421310357846995122729713167172377850144940576023931011055762214908259751472809988138170219237441146464753019226460508805957415108951805673395923195334068235985552934096438849743161293003079419842100146615641987660967596159984011566238123663290500149846777042495624685405313034637635083842992017069835175054423348834287266238587533733562811118453577018833576308635617790608098307789540052512234991719338312745328781551274127399984390900834678465703428055973579309697239185795304083367561886266279009991618108383864014947406966086995738580462286317076715021022706556197391512613253055521691718239526210335269580092068069457562347505426233789118911046909233815118859633836041180187724980777384074797032094648833376074279842071851191663603035758972555598064835385461100131539766389999679786009065077017176007582371546330307352479496625787093921815382632226498244000416233549521658764508952444414081923844126135915813308071735160582507316112815016528201582213916574558782511654876850962230443156360742973808277454694361940242559991256143258933070991140513480306932154574875248988096756252234470474997404725535977389690647549010861220135410949508146925693997579059708615470929674320399723748279984954334338599428056413263652061470059006854838994236287196782372943435649333772740612757814858104636604519648558447724862660147477587909031087209747167867179077675862455755323612186807351672170734523822015297162836291163712163723864694263523205368027849748311534965913989234259948945573587037118937771933315706873366017236467794708473733039372373500844759408512878381286281065014834367826784343430458258631570406309687596654241079180410139881655014178811455623992720654922525198596901639914608187152420783087512019325448002571436839551409853523151441819833764710853704274675613064540021674607768546172111508829727019448541905211307512983391855285432305209835032758794678725057986767319404695051918993786521911125701154994522540803486288765796156662225667605434963463823500818994321641363663842277362082213659030266792556076314954568970904579005711826974582216097155436349851278835269064942938280613658102348371170706295193330552309569992982191846493581430700116552413542269602298872379668805131405855541236587416508126899649834844515765908691553129236261627949399989632226628185052425311985678914411384243390711394379691433365087694926292126829496587563645988191164065248180964308687025799864756433901305385348103751065544654214037077806022165367836705399621094073189631546687834520711404832239734821002020662712433262221417477214130792479635604034552154180102063429784306614843363617437307135871679108762520406849158427124030732595782913053780981234207585043104522842438782433426170494406652496917903532557669025073866543475221683422107442064580394641297921224861117793445413417385772432838742488844755611367008547650660729256182793284625259397522858468418320406757975830285244287510268148370419331496394507402990474419346893585696142529134709822241771239780395834473672161089692701937453781091012538576702328693259892632650308623030687683371173377495627265206783432004506936966938243155074512303767915651371417364558968523384994995396898134069797162124864471598202760330931645786260436549348235816643120124495522944431233928410106844246249940643004385791391372371665176656153413807838652105588790108424018989081328699977731869658844880885626588227186103333427297238177863269742343392467932470524630418281894282477366815167800969510186534065747017572512169154016631354820944438247098180323819103464984820050427458217342100142261310240477261902601899168983881501556639608743733990014730916623312795243491287763600119311564577234966148751079567323860793403445592634658925789371341334678206005953782378160208308773546164510267335159088516890402870487062263440706242695894271965837465923680756540641621812610024760859634955384998540488381254410047313312532946789319897379961623854734869488968487462194605747035173573861576148249042258173965177830445687376783385870792194341092147123363248293834725173361694577272507992433047212667231763045151595310628433741335297389937599672375891172099809207424839845066776427215045835734982005900753099669815193677410741744638627846543963654227483810794978973319845305376286829451193279891479639425653896173395985274759026441284144756173720538855127535362097601031803345560892791039110761819158010284641412736278703535226480874658014693957928781338263371067926412925334030025761388693805425746527137532355142529819816598054600288784839859847133108876205179486050444827837597061624940056894473126751282701480016616416927270646188282491526104847348304275315139732982954391715489742027831169052275055290473818832120362721073067427449558057270748970679391189359392679579024009046376251934610862161866051037094989396084960934673670931061592216893749696316831856013947512225332997302911958362475629897169265416334942041820346246319310666057682515386559873658609947216045872441673455845757795439051158749103071428134163893607033639998439944474182508162972968994671730834671197573878800574812494154137357615984404696192472379050585717223933147415368778805104507922738804061203452777754030888181814983947277357111483627496779721842052852982554885388867068768642045891272246433042359615379729293331656438777938444349525771572377886517693334136349200828065297987366422869446093718502968226530096958827462174821615145337419667993340831363306263182881584095548664561144156466845390507666308302841302184807577873548911026092601384311243411478348631755251088584537992702320126755039512014802864914985434478829936309247724774090098524148123359213630891045656281231885983482106442699215772962757438860060209199561929185159619336914868072483920100385825619642510966679090417249164527142489395253532736224835614120807106857668557443440094074688321360504549834323147278285911541081484128268059588184147643774212133164356373520782499423534486549463307834151283196770260320650613789782198752507300615085401346168550299089831776546764210418056911251815142538331621513008416325463852210822411411011944839662612247217925266378030394299603602652337395348012314118992063952512961089206886198096791073441740303600485409269448546838562982942030875426297743286417065739388185065589081721141336808994933615613701689699820656921589207814911322996525124621367155012506331161685944111739710384588806275844498559910592817518587418800961462452849638021461299257158366255815504953691626364042636455264877487543965406134285366614298588017315022258785738205761106219814415748836331071580223710990410225347740552091587348227261725419857540887240442983565901791175431014238574155112485956128823662382377132256696465825670636064672317016416713290581967422534725069552493400207301671558496764374871883403711285660668034381439564191031493242593809440841676763957175869281479908762323520005570799799492158089109960993882213106880742722745112539868346717727623898540919835561737752929926999861970316512893822753201502503259660596515600563131943607315577148833528734428726269994599961330311562298245355924950868375373647345936102398416467937722538207968837869339181859361250090142503908472511913434698471585892992118456746543092542267871601231931419459193309414568454015442521226027793638380701110528456827902191304406749450249916518560409531599463188435931153444379536663013012972728966079636102347712464872098861209607575377981117827157072509733414461881456457791164428833184994699890929469031449135060035986521992946268748651167955879628071651184165818366257849380709611807448339156888226245501411548560878514074392225141531253364732796220090039484193578710690734474978703221502688156150170523963808023364669152063601268479892662544345991205182720338116520345562829253003896158309796285883356002971280379732122996089199853998680141944613732704678706817167319962096021516356681567741663239505375977985081026189472813736787793756017954628881465613878383339110516040801988919899465112704985557245802447240061370655791689787274789511138606678013815985862602343809726991465669361399870761661616272442805545149534478925208180098103730597368502237854352593755528835567766785983481650763596460312228100767667349325716379088373341627614636422114729711320901242663269773840197762387660791058647202942745574079336525249347220094456745232210725378682331763914990929020687022872041318043460413996609396429213455874644277968903886635313523278625277704285431090588771752077567113469422677996642733625334942076527288317268986994290484305899783050945569169419683783740891211649863997286672168173513382256946078982904256166337987175979218966092798050567794994400989198177911423449373623339498004136351095615235429842107174010597717359044423961905979142200125023678969641991188333734914911898357940927708424787582183827837310935490845532855483031855602154930819776693079436363479405279642222574496474729231617483659860416707167627025354910417921555950857142476469796419447118570198344591557165194163511974404572113357502701113565883158926513266282371454065339494305303616062462044388095625448113058931957259381395393180925598841456322178261501681704556638261811511195829819714085885457331491702746910380754994915663258480691674943555651090914818119894971534412224240531169300275892099699662202888543651859182929514042863759034464581279486720307418892034404120327428742058942151349308982935336941380522316922275065692660802491819930787806457418444666329833162012438317973741117446731413174654991464264728321919078028955224168848477915728790473420152525747361847536593582199865430339837584657456235628737979487077391126946160968890163491113002709976196943001890265492179270543031673720169678912562593010167607870539681270281097590279565203052406737371116960206742516893350414538213332859960337538222957998074317012756448409990656772020018851796783192646750085659404276190872417577300004358663398438792002933292538155117692155274603144748785981653458702623466920814183355652913704085831977449972530832371999519813540293946496165603315049815821775714140944460370753132880126371032673400907056597227880001620960249838486574030563347050891836428030444636256859223624953007662756573300787092466187294701956862734798791856732298329864610805940150303217919424511972523921302600540829747125260400245597819069236757909006440675795822658250891110768766179706897891417848999585961382677266823968226585989714611427736358074446133670096388537142849568787922476461378686212766864678054750694131200548497617060825812309869713709826485287375684959832203653065638509328331987521199063880051710491789510550839209997830225495821338218518213457210029687000246719494997554801444716302434077819017793114371557254832768680454404798394261820470279547885132510544501589535974894025682238298002098726206083761116692913796552091363001646145991772127024273215976028399335447484317045576619201023898397437184962579936696558352068224776394117319510854988378382289148002575365688204072516657064770877498125357102632329093499866030278424813252407041270911320484097960507844290358293419885036927031796055185652686723558306497748883730014939094661910614484873894814155760871790837928959483973967073182907690026369370912888656955293067910590473495675163380573209167926509020881178759238696013468098412918438432243155939463468332049176120780179132395040351914863229355191317976083549154333532324377584563684160989848401457530780128437227185680326504625250995491011466283539722984049013121811731139828532849910830813441161226776645771801286611047034810600572796815145628451178879292156551021270639860354194390576288923194936489707426913470212183855728201779432730905512489477040585515134054688479538521263202333401074615919079061966782379304138753530683737725661481575483019172559466122377839974601460398211708276994286575241708715593691873185516060340966577310598524084675318646370408009744128381504546676375483754986761477069742502697093021250101053722868132951575478872484190883122350272472621754579600280376795248857422133921004015774903106449257654056867318216958404485841728713220654813739528305507950370747313463138602220013319102790315173023439810197777680760607371631256123130204601780791510339032960391922318809820704754184717400239285076012073966358019173578026270063798045242731198987304651331131673709861765687683266230988177639995031281671358587319502287467397319195856027923663397650137577051547164879478734404985551086515474559453514349468694789321269520275178060188961298234385307649768426814545175278729082570323096675600992827802818243158198440701432706273629104658453810176829480723300849577086674399576034690826996348939179862517357714162106054859306060785149720115988443120117113605016370147461793390266893528085473379359455711733765320823572971016272856091793002611333651149421690338262041057310156370685034339399504843655959324787371709499666186893872959525057043173416131494541732120301643929288148574064473925233023005662688269044918979638112346192042819891240435824630061768634594789323261468889302119471502384509915918113354141799264100302246353333593769164785838107951919371925862073960638855183293028688368606275755533290348116336643654334879137320094244681161463324587706353926755046529989082631786993446535285088623446650827197871519839339444675667716228788458127887234040586876817048886825490743876378816893495043537736501749491960710435283520373796045589247177052984925599504263294363042471606564808255792265856607444493867951520006102640175491082856342500665712173514898075603174276982979712390116884638809463086137145971115975108518353835907610955787944321921188323866540499700136324377166377098301493112066273662114244807488050296270133207537332738192957398032538193797980657699279649922547513225127701743226073153083893203147788736886462365700263999706434423003048542848212061460793011101493645699949103273679580680490202426877541327461549968156018570501397957824065530216965200398492179024057321229463061919882397444582895169588160991188621538486250571326816828553968858596789709840971653806588598125799356718055684303942316334557183064541768408415741970921463871593860984910092333544550933807679161031185115586496203342889259896956201491150367459806653260971116334415381367896538978071917997837802870359681094564761689026935651637606141893311951137391339335635614123350632444683783477698684546511066102326327146774051711513960570792995784826939086684291509808267417581320531985889809408087910062636520553597758935984141909681223064958713290017965460660001411715786102180792199538865159273969263849836900600989981894923845376135522760642086020919548751990007949112520777754487404411540485334864190718212276675321565420332031868725838353291201328763456888667524997833164560459019722388567598952962637877967958392826574335028973771156748371303755715081188963481733334326741500737231375724537817386510790979828276378548862789103938615112529886184726548008619218536135504389976163180743147377977592316957169489644381753941728274682228686969681400077710499960832725205367648763273113291410455531665253259405065664981902961052054596528378340408545829258629244273039062690446393285171748932228467316074207269664872678986968703475796887242737688979022765297198132505110930970913727756630746568859222698371527934248202391865062971618040307933203206498407959088794611168648088508125835477936136612462796404515108025994756809206607784659549133018647701254773455639638816803190860804715970476545970519794289604165979536351001699139726477787473469335089976943745565962186813323945357056572868799813301357238607622609154016952216177567186820678157206171262376219907737875715899746953150088472675636524787529279821686597547399957424525342947252835474779399900635655091521894618990278352159401309614003879934513017736129513942281025453608567789581140743746397597032240832224514137380773832688390931432056236410953006522325358673304085989242308122076940940910722918069360924302399627415846106077490737392285012850200581627927147007445422250779417989716558658237641732069776132888099523232839631594642889233376400832320317257528826058131281885670108600551816074694317988933257734775354210542245053663871126026234696536695602681425579070595127359581198589419841652738804985378468716196291983634820564434512989508797422402967045895743486218226016712525181845804761264939342557266884416685228528152527702086249967147888835358474317524586472587791524997925248824523146983624295613173304200851853819928708666762386791912753051924189924612999218440406176637312675949839160685541885772760183759834798530460562390391068713263630160487333729334063327854919323739720788776644056287586593624595560396990171353275142661781332572114717180930157739539154760329043368674188464889033640972053598787883400501211514038612542097155531101445144436279270338755937940330292560798896616503010308349384202898251600446531666171722235560134716140348380258091886026914187677966371483379634207174719103630962360698013356909389201943512187414673890156344036563089191810195641766343748182564399133106979947134427212819162856074239268981353782370519806331229151377515789037047864440428588479941113695968488020866560254409155269533037763450437587363244560594436477514167672241066601880174761021031127251034657806321194606499736741926815679224664131812859871812835067567058385406057540869285672627376265448441728247901231780046909798751459190514208020184846025875308051489041085523001002665584561996783951989105162779862832340583244544630421599800050801243467710953900752650525866332494736446214774994907668813771064796549249107344259858633119438696432032279035964502039982360288337992953253421971535300147290087822017829568463610096220395845435137827307175856359931910259171851743718863133328786723425932145109322503382245028073967991200583492413016244302252035908278050142139976144730895771690905764396598926909845868589902023340627677461067043830242236975916808589175093476589872476401722364328342670352553268943261300143620591423722176576332097773296593172672421429912708744398104155201316049844907286534342684278027157039452492107999510858510505059805687507919821744332739894433008714973817019771057062938582751628063107009785576189840752029209484888330348029494986435549890732532353952786635291786241587629762145520732227584580432451181313786306081475022291230981256021133211111334578050842831434987206743181954374463021249402728003462881384158066515391038368415410547039687908832640072501213999404338873462706679180328210074181625607480464017543631506114510674540037386894777984802152359308774596256555140632548500925943756595258089681717532409681539270402725420934731639933353961847375427423467585803217133542760767735643294747268019065247522836988171622545063957801766250697869600151007430976908077525964522590912596232902536095634027663791870217482291305655068974988067995456731810924352446250384100239105411338205749285239522892367922383006228631845677614068514683330195762859226789182610396901458864609410515610867265369886388834820766572200644297623481385196093142645828834417107264238804150325062982423448462751289697066281264916527753784680132411915343006062062963738436330393180498625784649197617932355127347393411288016841196863127023749420638390462143404410255347688289992471749149742873684151239602935359150893651062834937501907732472887415641631824035679007762172248120185985675165480065129795918591684995242243997329155342412673567453783457967578829988160987881250739728579221480928536918551973051490197080764689154692001259906993101505640201034620061009185179617688353251623273129632403714465696006653739285672116713237510274393797506618194336698471755962013211889142300978052735545809279261620505069233624903653598920441182379180578933095964663900914032158993531890737320770063898529717228289254881310746512910899665578514222787362031126149080232766144996073154682301958026891316465549573851385738695249122861950267758485149564620457919837630036756597540530375377528252544510927292132538016186426922306187951145075116995692870917278118244937072439616329605432212375828663629322771459698974370416818062631815831003825143747275456474782237062019360271103963179907381592385056020647919986414303482362466784917705475925132763490081957887128226310605230914634259888808494133962264418137712676999873391749200298781738337705464266606160388730765865998633542597453563567976698485443356454120415977518174527663490191352152536028896961190059700578498900768182228038723446303651288797389513536419280288370284472901107652589258827275767554919202448088528332809497436554755739270104241660028122589540527379955139085509552665470821097804752162285971204480952380649325766615118593181113850842301482945258695838414762479131391263024433662882888916691367938946023884286179663826358114929762128946555540720861379923415075774531483937566554166262394518264117335669097928076777313841939192189749757336703963652261088436040644213842182144917568629676125248018020563481642663947496357683785238892412093954532728224821197794826591697618707162697570640803286328363809147246590044698941017067925007178597009745054857088234510524680027826992040093189755652185302803695061166229810065959084517197457416690890645975535533406932066495031833660381083706045184978193464027026635997370947989280516199137402409802074980461281534707063068254605202336782208998380892326161608838503694840201119795769335766652997312761363458476604355172186961807587186606298154971501034653754597609701224575215180109285250274604607600260432029008776654189855715986155268089698077503884555436305287404653409934235947644877332552522690797736178275619263185059441841363655982845849397232546743165792236610729834592275494145357558316766516471657925739031324060432070477983882642451507948294897676968351884121587753784546985570111322466694472246246685376024939855390921881917517665771745342201964658813000277516663294170098089530097391536936986510761946385166827831471131727471221542141129950074743434470974872356801423530667650776953980548309789606795602912750993135648954010343912962272306030122139112958301562406254530371429024943064441597150907004884574895134843308472612301412264445259878969002253148671742165979590963451396577716684575377177977718171709981085338959023994528800416831508678814517184403515817791095994120216037107380115484104439543489667631181696268200328647865818735574966192939023026395145146937574989584863361614068034555658680368367997134219069367595776246056369554829478002106326485754829097681401326273712061311214509918094558114826035885916468274358044457377551127513686664766913367195009892277887967526404896279248638868367679932506257181389904865397004215044510912069396894439734391541218568972655222297794505558937399233972219595791650105090147511022343023374177555698049019765523342561202562848029490417832196165059334734904899427401893651895516492169762660770046946691870054663165673604385527368256725297996645515694621819834437291839306430182672743745898505897750650035368750138762071926325777594631430856952105276850994948016062865634742721240468048445325861883172566562407063003570066842395639802247906399710963269163853491481115711282873751283664314849783380188302503108753569716370684173527550046718303297718338230702027635535007759349776099070710146704589987454470591330715565005320547654691408113022149875844997306750133972981761500066608234508894115796936463620343844369151052515771831975964187481171348584367074727963611355971008885533831264068958901480492094061857467057736243821821885817270624482682243151428054891264128791842883710078964804195520062565935930800302310110671512457916984718396398557806215649196694575207620012709105597535952097331216076410446565714873068108164631388150913532683434000482725885562089372807807113089624371797539038074644948720883465687941587265844389593726000213419524220298063721577003585106168672279667568578348493921790624951664836627653282448504339706995531735581531123392750164907000970060610866305453517369288192979824373679310884584965704660511761923611564688861320059209947009996945076215758934831404753819544753286457024167864850523870145435967407279050187082940623827033138050123266281804602924892191560616025709151102686749790341319946237988033573475086617401269317177227206365074042935948337712805019071281099620463486688447737278962332849379654026697708579290376587947327610982060953209127463813756736865792474707068323900884008201806826113302866517481645102264247691017315815830208400468866736077306286449546958559861417374863388467887434797900554403564267729658063367545672423365111155891395044607312675514497376937184630201530774896646492637292085044409730557679140822181138459113404708807209903235591230624827342429893556699913656666425981516736712111313082285868767317428271398674130813420760009332295466159331492941422106003591051495657619398238789955604983377210668921482313217254363497242709983116579700353718013788777010616148589537793145876264988423417179147404725571706191756143285338677676085083758118387965931851902118983653411349893957540175394181850545429551732882695350998945707793360348460102232120838552791355104758235983659981119844476976858241500375286724211017666700451195795615343927499063488158922945708761570593004656016459327106653015691284168693125315248058804981570849627430315583958458286370732530078862295199499504841795790423137656113757797845139148441572543610821154689956392563074797425512217069950620832895613637730765974864327202124395353692414896536348881311485736774259208106159594670037102736765785900583214239963341030951366904129605501719577269634980007924172555831320341888695075411561715889838753804068278759505853959209932258915185629392210701482032512186947766392287268034637605559805973734373349718192027691377274553463926923970067132783055783660446461007649585895088467257668325812837138109451733096162283346681551114823513787035216354595466086793086404228334372642049465967733152395305567800080795930568565814811848551580180259295413178967519780485779312513445846666282703031397320615514754785867888815378049158648721642508835312404587387054519027393956777626636242740159869055139000468913237890139493098760970502693764979672028671190831739301901333424418990295223751606352547244034438059640087383318473803142590392221286935479658579873045723988829698289683790188104238232303351474683857101550472346292125572601973090071408865487203974644600437520754410537641014470243391868373394324472416046618750050233644940754068576152361289683874117134808409319443293743759005335075239056944075462049624041143772668787410826311848723864789185686573842285263033977166577975529695113026460499826122608430418408890427623199016491259303301099841132680403260232382874044121486962252757869091970940203735818190769735412682479366992152252465655855494768914468063933520113588030327997508078512267754370573285061527325289887087835942952798801763076725280162801685686618223888968208028259641708151379746428984816579312621971012982538570889364354909217043373838257709342913698023721597988091323009340175326319863024389179884083909071825497025652911296072830722003912873837164745125660585914912887304236794354098913581796043378936158234289256636313842472140957934443772845375161881816889100833966799814658658732020537789464500945167392281989966912841014533747325287251450602595267398138841984948178101268320375204970951373086155823922328673160464163877456612082892955254844392248369358330256591805215450719025223200441775626085807651121367896923599409511295496659453680612001493556116881861700986620330354559480226350047137247399508521543485935805099575719434894792272006467407161441522999372985380615260325555649877475636416096276327036704826633370789649187938380952915557277155060032367789719445039417389502013526550887055672520324322535273682317276326318691768717108080174796155672426486964123026047683676383559156000593976628948820059374103459143216456145030248484111367541700025183345451548441953017007738687089321460414231866174141757585905996708313927239812643706816131137255446629362613101358096407268590740858434052722130362353924731653975797532143196755837513841627531837684919153942381709299717275887036620524163402785222283184741183089378603216360877403967624988320596106940656895333117994710343900835721406216973904280691879673453964291406855509015163660615354458269175753658378260409025504146015727568641114231304016975024255508480406540904507334552088727919454743740919242842528177489687136780955714125556736387992879035234505062517628377003155499281040047780870444407972346845983811248982466826753861050546421375230287205622813770791347550618073617688564973731569782225151392259856914937561367508621111950414100010677241912956519718201608478772327993083720423695166333744566812583235710531119668985722272024260362643300201974357515901121732055485497957914268128099888239363552185871080554672240583306061792892795979256657690588570011558599612834830013522316377235805954982117834863347868695172476156453163860387735195127060669560560094319353250661694503013113148106236740723719448171810220668339626152051785838336371930372271762017804520799148720582699338353143027311167370420944989062675180196041790225303662484117922423338108990126694645987418067575492249210093303699688707826437800636612968375836946037539078320309310516631936446439835317029668934014323592521917756737353864874030116334505434968031122471340800486613631541620542217759453641937497807087342863126453426100506811393776618191589886796315681185032717292686787575340526835458174208878805325519338118649526767448604239943628895602392182809585613846190439745178949124468609548830485109305506587902145997156890027141828418011928193522106063644451777038285776826898537858144843156999680542862977132801903806249347844378955016193672562289487435955663956946340905982759617445794982275316944536728593434352250793278003806977227745031950070680010354951070632090221660106152708645534938891696551090062262198312677727902510144977702806300993246171617037221225130310853650977083137869856888855188415836597918309931456812774518592062102288374350305025884155835990616712626139637504465122156239707523496758875092873027827262284003541578239971803454026412243628546493520265152283697601580735345078211229391350523845080991511979610818269740996570106246438522782878077586613535092414305827967728309805540362257594568449623763737238320495242706268121504820161711420401451152533516684878554421848146611795321751844485788854884126681696576693387627300283772641738785331242373070447563379323938923025127171675885131732897789901960195174467487672356527617338496058404919404679220228924888125649941064344114841160669941611253461791846189580927544192588763866807496528398588153262773622214588350424388013979038159279398441900244344480055356348990538736417793804776706239554066383368920448620122757070990362502075722558916566322209864150376178736042252948574747746494033848974905682805643707223064479653130619077973848214116234645125756350212125499125512546882395844040010862427527309344028091878745866553488319307710469121553940096608523509709680711610315442415582511153896852286430415712514129352359953301007718085426296147283834693085662797265154516098143543644933570920496911150422672476580182235433456023720172185735178485808176109424637996870828957269307015084514351433161955550089584499591301241636401745293406275403247578381770470739793945019012120110248561361956465664438825443424605206089584610204817457768177988541341065500022197097832214309427651631655705184890956444721376060377168929388038431566502187908574137125009840916252894337198685677498470097015441647889141190231304323527618102709801297555321380118720376065254146770989164656189570838166509527009860433521305707159703984773458952744828923585466202439902575811810514748229980228793759990251074982501159879184959472444639203188572401514481440726537391645558676951586135277802573614719641431205343450327980322172147741922237309287518777520379038595680323291244932961903283934805762101548821182145803022073300097824255197163026207782972372227492407995211648862629200578960871407143917259167488836896509436879643492067384884192138108934576877798834508393380526912168989129670550883868704329623895477303977524282481573458638613755049190917413237595187214353351860743507369154634471396554599645487856235519131507649385633450563439032622986020622845464239641912224562092065595039990415498683355296503044442896341053220973723845585398187413639916758000814892683768072623782924912687918666800728671567002437933341553000995282821137023614249746566838588233984209980303438869261350643907165413699489892332648864732097321700868127286510235446015309072251096918166110910782820661526953931521952447061738946135197219917859450754865745462176770360284814378909318128406504945027909604537017698747447497985224040268657896441151291133160394549074313499562028468916905661882321032108684136338836903283790313352595157813672717363984614512718390136280478715819499128624712488601986686372182298273960994061465942063600935359125004167054052829039478801351247242770464285388689276362592071394442139696112711526580151041170842610628134321309944337631649374952539269096173820170928033569576119894919007733969803583649687170769587624407422330992145485813288400051117590729581350050049613520406332187827793717200337352614682000468910220926866316642437815936826147413432048847869455136161170737410504169759938644906042060262717295967427113215958265381373388838863086455419857410967607708918657314584169290175028393566704672463131043370020814030756846583637758020029926984486118261455778534490092482821662505071689348413664843624455761268890466375328743322151273802743987426423059136100589188802054332717903009769381840303244105921851358284711122960091193079583352350967692292099124430645237037653056876781810844797208538289141452222739682576850428103048288018812648507385344378345255354255092053306258104248062684913834141915587596614396535695543442793153928483853338912840447562005619349407927512257906337544004411977511547155223436010025740510518216225103518457586799969868059070834205234939510998205753719478775733715871400190640917111876482517423238972746165645177601079526422720478463140790655856107461515587253184047686597262610342117444152057232709689861724422298423589164342160207482185649943179253461743048982005654504106040750969358106188414119799346509147972640032654233471619720773355205805776620164105452853235850899737642309404440296179583476767628253310811460182998499338189731064241019012697566337981763390463924074534400434057913972092637351563724311657546371121630834693490283507451657328608181133771556696429456870466837103827713240215319408389086605762087743065294731498609445852651666296243458403729202514423050889478415952808484662507583827527395274602458907758675081518347974014641147128786459277754028620834149577144938509787939934132460234532547229158322590271039288566838548335882102668784465476817008661403547663263354352869292199840308033022637118455772952888416115542500014872214023529351759753954089933579316844171262720758270678554593116179011345568209963749645582156334244396522492131343472021679175492459973168459474810464586078542515190575595658393381492051366486851276354831595068197819247892308279042743765110500636850285204649917230908536946789607535615181364953928722821593800235731046008331351781894864868608681268415752759626443670489961434176247931123166501963697637819151094746904048390196565236705974838619378562901197781823314254959580272338686801206732589180692925260141771729164488689009618465750464194838813235919609139272938826473357768012791262757723586086750275386990685145771528907639542637368197578865677217454894593729208504273974531273795906636198886522859523575611607154979449262971453236232028693172356250625835140512771196823691075997984163988672227530047469807543285268284498546455220161576246618560363035515056797988939139557001749218020027446131982657471356177419735600455859856414947169662135264262419077885618106962533270389577447026490829248585395054276882364140666350932288468052616160998971344630627010875151451750926129767688596860591297273496667811185080308027298746679401094523039462667572859162172735797029820930908367425984048791317733362947888905012169458538374925254309195066232655758654541762677588148190426073827442840276163925218523472150869282776838036898070442171811838958931426257595997216721193282292063349090142584083160369989210538099873373758285676280411735424164212650545296489714666287517080810057451150365776726350493786622182610725771945426022687073577734284882511070941814938265045917378350606122340108403146040789952129366197833176965575728763348607621527927660641656444378185963137381408434725346248464652171849741293217984403228024477255368894127826048887082208092805213430522761975937275667833282125701355193353208411135609947708067472426986387540437344280526542305426625383154059043487602239436811661950948470035378072147081537356162470447716143779732081821090872241989063038938314054031725572817320331530236424950254245691792324747450523464929755527018682902816953932612332729950597865229031870724533134701815573796227527059710342327576912265473426029565113508308710157293804714367738889174278302394273546062410157798882111101729191327488648101209238728286520757291294846371391214321144195695946093438460839277703614745917159870195707878050693361234456116458925911186759592121830710847597316525846974609345013317036953293935280706375244849521879364499309755304015322628446041244063432214491038503850343791356902738447396025763975057231948015690299675084288313660631344039522547852710771654588001779490819214974474216843707663151477128122767869617136336110003285494892849696747204486587770361039951607346568026133705986138974915608508383636209084057477335137046428721489398269630432169735482617569772821882995043683652227202302805662440980497160523641377306281291524236085746271960157424790483755799112670572492411881012365475928746873997576845548413280315089822547191459218065004483725385893026027551327315559484847581803006214823217303274612800829040979477024367898390340773356115444943974578377800627404893879076313009511501524383362563079729008534343527143810745297207701686571544971134858531917470961424817599882625738579249384638007105688397554738465217106026450751966046028590059905165046555975729132955985975431061148154289173947060071107970662305266145679195961776849756962775132993146830166658696049478732931479678350569699987872960405829162349915526780244728451559914241716842552082554804539964184634509964120408685164171501037062881875203371962516607211223161375928335868733831445344355561665364118549352848754355931124661905557098702392630220196443562582511825071492253872958686096240559663439862003143439382899955357117949797594720863432539453537912110045226808568337192359561767556794431850982675500118416922968101118053728844217293315467161260041728246048962073680439247425877021484935842988036730327223751078105076589015755488366541330349557408422012321884488610806445496945631396076912040717895411728150116112464667005700295459801001857756254818121765983267897450557258797431442345142960647954433058345260406386937871830425785256587786219126778835702903892348249929281856394993908157218668023509405894351387172241254987472172206565596558322396525092387268690675060469165025496109071545370482905350853868915358567426553447323164064928895292288760653056834469891794414551054211279383925899976882084386614506946865211550408006606729765193840753365706329286151616825859365294777034810838790191345146225610281476564919363591739030832637019969146731754406531037763503596787078558323364604228434735160717703670187433563772745769896347606908398683307384601475329247607705597902203137012316932945652745051328483453890478097929918342012241139351849060859176170468720914605205801063183221145348953503748980588507950459900849499544507106635338043928918020189558977460556423519163124632241911564259455213812563383926247498456175214969175386035402147152372188147221963617057224458791615480808410640690781068719254015574612595514463375748063191381995873908453966848935742552901351527259247636585880362013406275949605488372427632865899370267671703805634043268133652439739068339818244057971017067418875931581388053468352846454560732868485055450431870135226040017441328100249369342046831853499226261020570708229704674790647964541232977124227408106345578106449641766140400229615133372992762229512056868551699675721997980165253911516145550363186730454301631734136066379977274259990648835332583135570859982659035735047127220341120331891101089871419107148401592987759651287048867720859868412037402097712058008428611969115315423767228550849476124527473388778195882661282478054152556351797510684622440414976336846393039170524638734377591379081705843000921862266431177828854169636453515102474333319629420550235759232077003494811684239651863733981924346232269774081688861473121192358401247637918020017327918992214785894745663759519026867660041213786916421752046650626836193964687548617967704675702706112246895623884924647986081349776915694729930243104216398081412832624030006094194312052241824008992304909854152103348672792832343363466063749096269997422086881054456944931942633137581643839052216063722787428740181168225743207767265681313817630994029693639357672715523311772524343941721249510455314759700094990772517277471580469905549307958212532305885026960198758654630996842683619415771234966095676957429272728547023152355480166606967884257964504452937500319725416789866071358778340377136092799943907065906969891721605810923621211759552647294757612904072287995895968566647653567384013815212658781443969607349706040685311035801111507725801624493987809302795884955612269536871560699777042272173553282766365471269429121024876314416659844834394374617927618172283607889894294054266188939771744375753747986233157265254138044059890573145385495510424412088855498220123401227472569996741029008652687233300699019875062878394578090559478934142427400999444161843365254275570876337163211747392558988315206964321844345350346774233928720822823446499719296321429165155269017540247311616743341826769971341682771531359129470565827043314945776102921953817748597700842406587147490963448276573084218408143354834813790805304158546063469873381416283425591492525143061243215903550554636945743621952506657690276808153935916871986549653843403145910419726276718921902120053694182647222479442606012146148960718191707654124918248113639592934282522414421098456192401204794458297103705037891045195584022092652365416525881923841612918616200029477271560625229399932351907772858751517430104386469677791699646533161381364988027298049570343163569040990755349371976872535300885024971775591293901376710632982629663631260851890977594004415695283227312854862648657254098662935720175423128330372309499375622364586900114381292266435041841531625725068489367579320265532185746709561306480887766255554231655466291384010506101030154530163947890687201851045967981973591179992567214195679154570198227538440312404664515387137030088817422308512274674603093078789839380721265858688461440814742709118215126134864061211669203291001921570902699448757135034136969722841149058250564974749341484286922338418170460914838252512499834300224693199364219151503095338797327491676312866613605643083969936503048968681899286580349242130893472942697547046544753618183444126437447269117002331508351116935650125972440424860620859207659202903853787631071380012171413769793321115542957418869099336999397082497153987051927812179136630470994011312338712008210508943993848627829328005110097171017751765024166735973480529370016831262885295598110124191922356058930160335584271111301065411078539091657821162009839959432777150057321014704348778873776360720417595841481189868013755979284442797762446122796483530303159002206315534376878425777707947387238180048876866981641585189194861373975827010806080550069450572423313454049749939104530329087938222665750659591786321988152042935180840480582938146648082134099109864753574617562271100127230927319076303367146379931663852486619388381541367302425069334892638293883720523579572433433081536382109813273901383689639568068942841195289627473395191202438653076762504612742753739435756271576136941060082151563052001519785753622501849466553129279812207446262718962467749516444827716683076727533230951796524623342601166426865860916407100769062944236965734757551432283137942103633262855554854755028645913029805748569432441885892340383519275616955434578314032874016764069928266570852301736131082582142724303150984172921728984889109902124785435821825419604617429795262338617657250787328139109049337161823676060734839779322291792893008586854205138467687237452413573136545790531835965080280925911044478193731860754285597122641803286913159553492362854428944070951782570746138004730313230070285672299905037538170834456302000781986087615637070177561661748532852763257943126394316502983278678813354576528737186708129178467450440692141854627890633451539681795996847049000721032805467263977400729979846956500305372457729719565237989298233374729997257779840129220880759639016917054258567997366886778906506594444763664886315330558687587068448334705933557981946052054716911822910334783410531259125979358292948978824367682640609597958189174506793741791330787078213025407117934805135896398225089531774104908713571143817863892107983501256204261648307530385968282199184815259745061860090581835413754248462644853241192407564835811917522382158425611022906447501908969071890715249182293222102648256142544874964733713926786277603421604305984602462458645290672027783689195071520713543116971499144323492449491883082124473450113226231805873873588066618512434529265904808452885007436770686712889531638051334528579726464120780677693032836042965782673989852327544318477819116163633519665961443339328827531477903187659926258236247439648508368010597289021523001254460204340782500099098455285389418193489051048175253341898283350993155712152467663057814819534618422387725499395856404724117008781502337317768788678794641113306932651847133816160215686055514495934771433244291399257955323198919622899361766980388390337567413290734995582619294752142933179806552571415743252963443520710622632117024268083947149713069784515812953881211574732952204634738750993145782855653455041656815062913040431598228909484124384845338215944910244703213690946231709818878285182878292012573244264554647226951663115970654278956121110413938857068583208178428755577118036828892478097921432730085360241939107513485315684949658307948045602146928261486033982940381459226830347280869465105587657021078075546276649736779405377573815047196416515299066510966463841713360855291814159709155757414514323605863337573016677884759622155991235594543801678157822781656485603987737431057697646579234553381230092284860525153753761082688899913658903343496573809117995582254345128504248066422824105931560904433139743297575688954293789852070847332069105963427631690093177804057026455914489245147357857483229189768969140859529306618841195939885534919642231207289017069311271958612061571683414232293111195679708340739657943844071267625487420795131955823464424353525679869283238717062237916338858834457260140252008897936881848347483125669132229427817758134929005120798462389422809631317188419223399206368868088746490875250108642241794221709854210708640970390543174096622138493708791018085848647063940225686064830088298462405476979595381379865250530447756572174351812997169671198930432721600739753540932002511932833129539268447500515514310192027581227761365017238408875165332899518181574421119139263225030879977494346424293346313862394754401973912341305343243539536011787322795292841424584924933626885226021802674549592152517456764150892945896383813337245882093548420366184501524914891898164983055546447206445110286714127161790537040686250280918782532777686577706564084290887611603465128052685738867961513553910521118181545000036219945606265777740372911342403756774405148835796703430024400007517582523690025163674596748046295873875539749038433639371800270220670002828733017719900523359689638946152779532560357393523180159855881463554797708463042162921084086989884293461941362008835188667891056285470698286644351438455884751439310042889274835448766474204690989554098293623857957969622446001295185647638908555499108540886834928007041961084774430099006707922096675080042838705505304965082079026841307087832915520007206998456938604713418569654165296940467759012105509451345568411470197327232861278806891731569695988071560231980825157680904960776005957427897754846219283113826663234841917112879431132821166840917687380849078131652125186235489835973483723523704199561033983997368854696141975324506617239212669730468712045098365094985495012248719936935186686227634689757950610791441042173453715361668569938823728387577944372303342444526441473312574174417556479517652458475687727558158589299898961910615328490513879014269759671661750189027944869046488663059795173088177382999868461574677906502149077180700048872197767378099942208580008749201232312453541002582973130329170063944258290863043994315686675658561462845516885535279737883609816836619900289297953545290454758378179229195683976884014779930595124703859913862067741494723933063679361294051803655049592090753680919338619844493844232653566848617173553388839233738497391969568877912973680137378257343335874127203676196186581826820130807325647320157991827311879574161005422433662411116533519551665284702881873111356866713374374808090213871255000036266897087137442093117537831670995854110788443563063119316813135675823368824077231483295850953678142285860691658020315384265801140765867751525080342078241173114212477932977304991456292788617937096244142798753847857537288158972720576883018800177000285687642414817216497862487018300027784432563644161459256618088967940759143375042414424250277903987951121094596400711785189777742695618890725048243147426353202238753549574918494390965540858094898129944526963133342743049560757387122910913707523247556186123181296051703787041117359955794391587130391736257546387479621405073962404892579178948258500277173242770862561997523390015617474582081143672530952560690633384292679558910190007335196030246863210768409690760668087534155378871507217464756456756571499429135321997317749210204306123276820606707938019136949030164896590040194466789032438323062623000645463912150243182807781393934025874949227700479730216135647880413639791582393499632711242172317189769331297503388911520250937364639436324841798664553658697820908874237490979852288705214900122976331466591862336173207764611901841033397131687368407453121468696101085739680719755097703499669762861412960054344252024197095268854577060292727777424150850550400989285575928079945160938303407469864071526077325950135093341967904224420495245563068185109846862776572462864953356529125075453399899182456739697670559049788401612660084389616202733101103381804737524639772019142212517680048285705278606416798127863710743419054967775399521134278299876485636102737998130900423874188959466020621827998888667059396357745139304020032384043792515199752606172857241044018619289726289319480382091886705719807951535369993947740757435326265486841283755527620152931270047675659923301093191315953532116615207820595492089614413770007458841166656296784526711828911233965093047723221003607306324129277556843501142130365318459234363584968711037615696310360663411437090337402436352985248196944457959234956074989560185878289459443940080968873319660035593631564613453516652880344526221121255046112763590168630594731600171827640778085681440054342900735627445834469623921097129131938313540406642341912289907547964421822098223038508996985400844825100255246701732037163758996748341422863086237056547226548987938545042284419852095126093783858763843946108713680603780884181159995494247838030135241913392825132897346386853613933336382111985134361016781883629484967284085737172833921325189287017249352118346241262450360998973777082374904578714668243847214200202171829266600791590257895175707490549651024341682658210101860957016258230528493053335322411263025480474183690048192890571351473653761676317455034725226384289317105488132621757636062407571026442965999348001654453428784746295991191804339982211780717239953096546463276855273511664959896401243735314043243042833994907772229628676094950500615959673339580861222883110577459418640088944133863779081129768791952237883726318920027032197307402304536368564149526023458126605421873156784645229191842888295695473750064493035921625073735115951568649357144428990704896351642495205745253541579568054006906713120784970761065292336316431807044024982010213833164556939237482494099931840465051593361682514869979285464862931100172465209947821117929715652075101544511320571955709765279492791320318434202353042390436702749704145730863244066152167865096409373425401372373964337503004742190620496266135811123765592486871023582018380046631770048137679729094210572567705351374175644063813929219695795020134247490877033176453442692254935666888547547140502703926201811038020252819383946389700225985824529357179778303927811065593995054221168805219720850688792815960782769192130496827235235304945638654058988198119966166909627392959698590723440182678175455356917680704640524548323239278838614636629661774184855516247177609223662429442441538152427734356872432171551838911342833666026318347745499038144907547930036530687479671279446320061278989795135472084877747861698154051893027842688103735566119667264765194469753374757152699624823867688015642757772191726503525422231679466512685967921094112845257888081216585130127705471423346930383409644606149462652099986965892901158134942311582525796206431408962893291281863549945553140490979877481632920003566096262236608714500133083585008270577469947167702528005407199862347024085126235542310842109056473965262270740685541263943080111039615040298819824647343312475029683131681491843314361099734532320683689868164751527529267301461159608150210567764439873558725568924189744149991239486090802871612087230712076060062264946838468492948167897558407793818206372022788628051640111122294761185927393858961440778183172585205383496116906176058064214616072342389278306279847703490154883457928970497760909443127601053475751804482234853148354541728930125766249338509090755212845905688918755117944438338971936384084132783220045034013634133192546285560952735932824101761807628615555029542927484331636264461097733082948341226551364270694976773692943620486663487888439517313732014099907112204065956730562386509274323197261460962841366787689673361997663415794103302381672539943163706012701995918703679876118309700706261770551801872549913672555125255508764713047192767842788799387603465128449476521434286865878625638270245250891774462629387409639429404422184935378160177027169320385139884607959107037202854250241575643515297051079412824083517725476294919040106717438045016865912304750008955977861129710382907051617790608253211786222771247240516001989291179745934662261272905260933648305824859563460714208181079266425635278724411158128288675654341558376616440568941718066558786004444736071520441532335885578162129103903530776221589042633589343509243746400206800440065765663682606957955035599862450178836848315937857177462129956579683818970712052813685631872314220101424652490141112509243317149439784546637838890486364939046028027697360780650172725989756843843656230408330197649790149134940366926622642975122405705950196859499109107445791774556015702917859501959655589510651675988925449027453943337255666048947184464196460909913351275126168701423242824801364846332409129873679170969326052280619221591965825624872183968518372154274871093789975806557312619169725434582128989115672528678996573997650749696410298244117014692460853877755943080585467963427472779319082372837860706489698413779781135638309724606631231645030744380653948005463123048952253351731664777087494118074779781178518928772602518538382744868682647138594657488159213994077763965692499213111859220170364549421471813988071725459298272907563355433756824844513995501490484731603831197940254231541002636796140121603550387232567032598184605113399461453337045965933495030969534870294177527734848075287939794323406725342563164153627842419491311719814484305205361986934424689542038367825310800419411789911013983538861774067412256928825065784421323453323042126814567359799966913068123713562480328576833803569134243692149588193332672671582283577142171824086034253693301366074117292078495001350316374049183230219700123239423681222743892683633000583877471960434933058979266939408130223018086263677163255799794328309866552827276473302600406232451550128995536916629674851825799606247041339294681764507437175023668750039961611452889508307274397359066339453657779528664257346070320057010835069502350666786265965422920697262156942422629013219124229899093546999791079115560225546257254198772401828060517392825768627673991200264359953961204165435087439469765106332862006211470372162782450846679648423220312664656251224220370089596549702797956399544688505272280448650023955864473024942955573101786076588258894543003627268828620733760711666272647030935643496226971246292749088470617739679908502817084685090377035450293308458131135385201925310528000943817761032107219198005274869742041177378091026370330374615696065300876851473682141298526382420603864893258126572976279233175990319835469673141717330401968174045816772718311939825895019434301489789817802099164429567471354841460570221114727685526299607609803965765628074155999147693052773741577447757111633699225270677101576364499916007063422483054614820012655360455354386102259116071424259456121772234239364287080193513892965492253311794720493502819755834942022063449331462405574837020330913212579510031711600337479212504189327812659016167774797935276484833888312927392065790117360960470497483744895439320462599230124750615626159869837016585001379739749967313865215937213135046706330009867259078378925798865178701313331553447045319914067287861792125317644645551888233264628400068728541694413311074097061503259164923042291480823326888993579035107416493924476980659116113342292797174460281265040591239982569635416391895121791948811083836831508620249526827966195506120597946564398176237464185614974757227720175104877947968246727110025689982886524104191736304523363870462038929843195063773847256657112661026095089104983514669139166776700996079129933264045203120291032595324793699639981770935643288493738913506988571769416144794260697270232026944232070527676681634725393685937052823547480155375942084786757169883070048548819799306022809000681952024453688989336911441789008545015990880825260346933330471595735445260874652686383703474401988798485819349187996602609127515720487680399220734176952564484649949864370674777646228141721569861120186833001161617945531403968695675493862005128595490867362440945213646867560113255344020630891062847946732340576013801232069981497821864457277640059846733925073058316732524432534971153672958622023860479562295843606069889213414788847162817996648875643902297788653619888649906711128471424507731520636275464531181465960512116384215341837719870158523321425042948522301085638591786426635469813833598710589307116793169545506229956045751408448180558810125837678045421465516422220900289749350717811090097284944991964283134572844940010817076754701915251748573878765722000551218315031811749826195290976348377627309244496755676428831328997795764979186443980081537200751207722969254613975676044569623931475298298687928354178516643415570244888305191578148731732759023215237016305484991543186403905877610876566231243906216825502027163979513307563823955117390040769212200055357787356026345510210722331739343928440945970838094084979070199788531743181017216674096966584340317089987459120770377745027124611608372681838082315562798157169866972669037143774995030882956303055250911608836927735160224588583588960741644939045507365049595838977047670545017188936055575355529833249685850529042821466776370648717622592154417350790565258456445538918555880758862875133766112140356968010417649586884113994372310222631729346544706351476188843964007041920981883636324979984202195367629173093925837896743550699163655663236481012647925392076312498471205245409055301116414339464993051315281329958941534369768925378709760949134925041517833996251168123894883228741060344918832097903408492016790509787320513713668032640008120943434918570818739695592449179191595005719724295341799254512849802226901130799431548093761356353193679540794679340878404077659444945077904921844888453695132969905175710193402005779248522892858642621485699183148227526744059111577555736474804900272408249560561044245534849580351954141712677845801226392411084271237121099634134029708978210470076612679291868150187809686339288620128986005458817522611439219069961890570065836824511562543495398820928418927290226540308527825400719478999183037992063976334806723260760110721330726016872754548128447169086390319381422603113467793789168908530737154546378239462960885277287569114076397249716246958413532358210687990047346557801734300449265731732552587487058055383342264346704204894625010954799109214799606803967926483295182578719863080384904364075978394093296620827554712781328187606998387846436013740523537815307148806634813053775324692248908902804556950990256518931304133338552133813441569305479118819974232621625742903152207105321554176474836227545963683636511814603129799492682787504604174057904544167584080856237853215834134480452610439554556414583663846191311119349024548508553995199984473037084018910468087297124311545924042514933454581197306806753455989388753420797127315628740504838467373506645373909934053860276138795260656563465955828254051609662237703271063551592686699730425800600544220942088726019003923272825711619471434162340181729876860323062936258354834929472533250064227087150229387185118113886447224885316029040613575288998739783841207733602996596841768674819411890866471474148390207059796536166563264708878227379057421840801336415650184056510120886071780530550990698487523795937908660382682769459550098115723910973607616900175957415361531951345281502449062802258979244135320876753444680052589444877282875505899041740477645645966305920681277286586624156146422979918658961017822491655718111488153429141168011158663380733291944819129496415427182138277004299007070695871458632682509898163893475838728571805748560226660174367091000685801375150025596821146556893017566595925802066066381157507916502913548948610910524916480262716754912779905946324794954622469835936744293176466024433498156786399278754461490800904174702172671615994531154159323433323057436277022364339731178619994300105889600880247985485463048337628672056002301447100442192496567790687473291499821177162802270961522390617122552412152307095231376259515580891753963903840987586935600343050183882639065703184333220912030147308544340528959700240990225199777166910123808741453204296412225439512287298097038480765555057124149641883606938362250666991289554804648042445266058447029805684079147542562831686792914570167303003398433139075776174520372102377538998523622384113657913312002989142057480455158132325816197583266045502514203624599547698109934493609772993465346490827026414778722737461254318270990270985576555504321012420143251050639196049798170442472319060030990965725380493104679250907836986681979458230320946508878583559523907088869631275947717792234074147360306252226647353731135236987760868896783598136096431102189790221896886975037174920071417260033703140512491572722854268560776167169981486371410169970352749633463245483597364841941692174079400230002538318161068309676859718058421550665696471008712896338803352756337965392830856441184219186398155743258157048345250225533062629242016060624809519658464847489686572154772381793981365576629321284925685626263523305333555773598424806080005436179646041451764747778817843518287608102707079721046124943594935163788484735118461790123105018639871075690073145190458238007665248915786020740799585118423010782749202772428512200020910529717303138433397793187311092703568347379351953719401729711282192189359875128413213944013849948027703107183659625832541414165705451163173982280430750932924171319857188124227644514746218909006524868042667226129751123799289180872699799285084745230770123663783452067204993518321154497355605754266113423402134563979993162611319811947670745402701771109245392156575310042989361890358989755006900393581251833716096682016527781828844204037306065677473233786623043686615307428984292834472321199603476837290044728799488571636343698313225501304788843004263128531361899580861424878406729082761332168104955666329229897978654346076560306919717135476302466104398172937793362206957350493836630104468616307790464642055427017344266132357760108115648363918225389566912934962484709321265665856335083893285917715270793161507067713992554921391908769103749618766102607029676756751088265371031904988466709409175053823140882900906439061620807901939041771261742787205865762981160613360241453888008520010853671481257093869220410731514412794164292887232959748406123126765400289158458865176123523105909988818819571975813365723507955192616040392147264644118095553922848446188489706323990237448240337719474453192091107222086782194961115210986051587246405431389736515763049030770088105233099991962492211090075217766249617313264700018672293028248477488089842185943391018045887288880873000503384499126246886339800364886197699782837244789055449484524575923887491134885336605764167796382446967107605679058845295724707043819218813148049407629921191636068789619947940111366448181839861992241302212263069438118177672985208881526386616050068928554806260974307705474134348493505105291751623549639996579380756145183185563797238683906480246937843791393205697030891883391406148340763077097319830969809943736759475376804643131626744048908557398843498784357462270407619444678628369226743548638074575987794257231265451654945478443069189855543658967769042222873104320981406407348588555716033115523118633744130730934684254531826697726169198288892203269268969034438353519030082437255702153412669478690720071673208578189795426102252227949372086905270993465932776889775202239341455466043204838780334297668365071672502324411733831684791600592756424641306063936563230790271977888299826209792027051424099719692565961935499404901211879736145549132654324460392582768427127373206276930355692322718469538080334572534930200239669802677977312342456879293750897626855158940522901908270014771136379130424575201186232537561823906602062894726970419488724241642562910354440823516802807468255437808911781109469241262073967903756387713366215048046364862999282385361994120623364545070999521163357963449697816257809432720930152157790154686736863009401963811059244234285373246161792769441592359516885757259639617152113981304445376583639658605111353680892184070823836919551498735519476005137994245807883305217022008036278734306978123591223790188259537659563553048843514349781209517422508469945430958473893596475052367388479039314599843187289403188583716098744487801160581173974758897406514189870925445514562347805809285391466299103316110348709505243070347506634585678848672266547321797936199192224373030488384594784340234811832674359452393898383744903290719637113775796596495032273638775993800894209772441122653523647287708116592219109983273277392460105033760705247671806975532831025633340452933310744794283990499249840611411186845455278193946803202458849377118656088297424788797295326307920972858161623417455855287399991842209590778578137191145245014148325732647928909301144251419902484360484898287203308875483649711166025129421975907164351907208428470649782171847933161658488716061369243052043986029943426620813633774143715678797017762534453353243850894688127325884903245042923471976457445230923026648555944936143405629335056203057448516241817227644357368708536355117011789073074579973478441445129457068178104513851043562540218407810124487418428861692886835469067694852812607075725445342754836848457397355852214859873178006672148195761046609291045545209914169795780806418057010484946614593699713634579818663566733766863951999994319674977849843770095634734703881655407704556635679752138952545376931812919876244451544622971132780404654184841178258099599542030771162554473391520747980530117332610977217576717824643532781113024889627767605172793145202577943994046068188374140041767852071691037107908778041981423121648711451567198075960696719054683711744225373512253781314106399962758933488646178082796207040484984996568501443116958386917483260210406987967430106140408734297484106182655588632106249872390914053098952145568964624420337213860428017126343091332194950856404935842443760570650595153493964052763401904952523262400335893303352909893244161426558314493109746680286176177562898167806250812433171460064809758326814095029942514728125312963136014922013284754043348069289769992904596447466120364998184448819937455719544314571863998243030539314827041865921033036799845371701615298145749295913915370336534067709943916715442750172131207703681052002962001887357152015756510336521242098928987741647105000517106263509546817579871420951263272054807230821084771051179911594984800538772733421471483921483977481809539959166601239892133298591036304866324398063672252029663921509118880543144111067549171096938399894116741901840086601858031924163080751540908154648054742033610942982736817869546446603729971387835270383955680597902637947929282011682396894530385474069054042000499421915618143413246327838149267515760358025209485747704229955206258196785569554430994601656688838270214128424316188386126980811339949297169476659314330882427077162379040405655375808123218543560607777893389145730842262156103011573709513964635380903541851020802466637463202683709871732991368064652306045957223414284490028602356439127919712811327180643805165595132137285896580739186202932532174635536255155679512639303991911402411304925491369230666774387354280002385401494691962437093959905289611819849100798926087761196336772798530138673184614658052693426051379603130837767103066736394348858120868793056976156907625787091484634003769311011307796774452899537319945415888366678972510338035625356658399462272088848215807816071311498521684595749817188432697743867832319103188282210843667902677565599380040295440996116487531306754518274159829796412258438739883015696949793621860520954670958081847039475519595077403210655508427232517876009287257626253616139291386080918812520005523859720385821335864522737525329623232380600709272844111917698139237349820899053111697440709351188046288614474251855499114239568301413845333080842895445789195868423638938801488503307363242285077404943905610400139540963660626951856283024837252222283884196212781679022355319021777259803209367101830467947347308379574426525976137324165168121886195245992245772369992673709052961222318293531319869890466873745903810564259157061232013256744207973744759358716260188313617804261311319984897827572285683721014148748757820296124067284088642532188781167091153543166980681233121683028444226852562420261402496416121706513935773968766867028622834336128456658121852053462367191730746895555145819909365835115699201950092401364631169886341671081227851465413781279116261187004829981313917476763860742576338164419141994823263417520737146708707924439988443528788384890911426562919590724521610494030285745009603044821692558481215058120671943884615660005570518483123325810180643808396257938359639683277775972446323916201350535898568324797097293877289571108213200516843129773043711556502334037140594558901319753498974738963645615109799817181883444600069915684462980095250153604795159417379601267513622670562117855779651072623467336999558883502181423058580512445053112817567094981161367110987640261477045345644145415817534047820832806744585502317486882608833594408277597488879470228999246077452240336135797833279465366333590489706085391849294337906352198227867497499951055812305622826515044902225140038451422966748163480538559659550879888146970385395179642580407029382770304580877762111791270652828283018547800743655596006655767659666155264935801150267351938868047273860756861810214440811313039696336393450298246702175952462684194402405468593154484062964399799657595850546024972443114282054363352765831110133436439921808566537800380354143091116631276521071351535028422520825955087240022233062358430183367837332209428850966125809446224270130680838996653063966507109453372513763365433063067230030008441884348150894287868837919555371753502323798487481534189524438907064781364452823692050098144420460933623132182034865781020850907422257828217828381450069429981526067731387372147930528326056572095483892749492958328117839188413943378283382375018924726187793595979010085103035416447024797005923820028486816714755120474026077802872126895562409910699661893799432971399628520903833175752107273996949672867625323289634692589404849113273196052296706282953351145603394070216446521769159654732993855470614048487725323511543054057653696575719769080233655733323572827822546949576577891843627222281144683221520192894194547863462240528710702243254044100609547714290811589906486034355434003703906881815400788223500903428329056666014302127296891100253966760243820357099061940455713374230291714180752720496903994834207593925703988779800957570842913693230929092740991762847528956599605437825713593351353702896662024834690389980502650844623799245221246244574428368308659285744335172378799635758918189470728144824179662010113761258762198414485443046239084236979163913216353191525918259891107902540460187939560560011537090554942907154689110536695395427349971323368178434382337251241686461658852544046336687279203329304809625542690894454628711700815697979925010017215293874156223660617966850043135755115041185498638156426500759322035748935123032631522421769826608673566165531211881078008023508515448048035546524679915564421024234564757029339591880224240478684286123710937434254964259213269878812715108676561210613045847492422108039181811448686892836514186261342650922288614468622667997286401178607603404339116812202004113203091224304815192520829042366375909690301225456765684220737961118040381635922851943403419301596089099163249524805565044766418741194265771990684146723377182319672664797460300834741741491231353513031229524790671813827287033681488197780091417573839517580664682170833575593844555778044438097410041930813586033420104187420962313499676251449112133633045213023589753474436638676120853127129944200288819218325851308354636218748208508015404866797201066964909238742540250302684027979859737203135280308315941146153937628631033422207267757977823903284892316938373075527695926636968638961388791227576975918686995754946531981647404608954662291936177970931572361214175522933219896494400645762296356287302561550320124973315162799949310251339780920487161798980973996243935819737543144727846878925170503117662434785891113140883272813348920525496975056628225620202155439371836335313972672340103792796992639334311290152896909743761689955295966944130826016131645609685673896217805927152796862927304054775348298339783843264878641002618071564240214939370157372589147611156687804061178561118556638902752452094673485218651809044501089439030872240459008953174770644250473131605024529765993019619866133267718549308764876811869047920307653462619046215339649122097579296423090557293956554646614375819335609785027423287575820353934908255417160890325643456698785526183866120899581407510075351109911342575814730011457091737604952513638348046862953282882834679585469831974272920902794400360939788304816376717447826498946145338741402851356370902418396430723681197434040335927350585648733130330132922457578791906889451832906566914627381550915886725842494729664701288731192950770814123364701044328857587498189879024052764465825278409311069110044656799428668019487717372756950754297600512746745477735852111935257915526701688420890018550100900141971279524404770737908877893445890582930809739805809048495112240048274586473561675163084885554257978818750750953508597291877649303560861781183209827417952056358496821127367017915037012133687349405128171197292024250980000065748372474361412079138038743730125991984483312098576950560993345364208178865341617488570259965040248406639919757556326608320044368678556107054222046409695625424605057991861405825517605614815660509294084688586478249485607417533329991954223430550706023529826983666370077767190626644793881454632227783765065694258191030763086521625542398643912368046663725246434918473927598326218759871456286814274319543318133076583922602746722281943476174279159277602096975530222519691184769443907475971879887020126615390762157243530837897709027104889367046116655430158568658686779274579115889186489092886407459247287482266377472310346144354892054368122642422609655147848782259956128748334781251178477571051892914406635821558353715611901576149570300644829383130388190159965847555922524142543447594938841822509106040232548707632249068429805303727670445699070578348019129549331411502149297949988063205678128825204262357556615068473491755960401898972640219051147825791092506206868861131578252219986399282551440014162807110808875027261627745812732906155399079071819660758161920994715562235064091400527345763489458474526682116973553025027393012351364712191018956165426416924635784565009232726087110837140490009240002784227048476346120345340192633548761072676324032343291253791076641003464189904818884753596302854598400521066167164076307785244679274356729929703517321839711779435956179155439227955280180726987200216058672225626281512177229921150420061909184535043150684902963355707728609660051151261084538434362456002611034733825931086578196955871933096030164535418389182190522657305203527380407407386615041563448845179804430493434040742732603485058824641765844119006042360158954308302679023631479864296876511263382937180352954190677065967547484767861738073016412377207876591056534992368600590292813592653979425491190906338470917145053298934386689185112590232448238418422620488736584135825583079840068014037549765499066137488617344891997703353787003301107020327087795591399242422824263611135604229240616756692712448986665552717234621777632095011585617209858799038209974540685804662432784670565538609857242200308126002490320117985663341589688450049395994074932032771541604452387359152233618047545828769855554330223208926240838798400282220310652204583979054545229266799440362428535475488101411584957246587176408797207047964888467258182758179208660879625905667020803665445604321778387357086052172812369512433226124750784958060297949678385701328989985397454784660178375506937207700724276265236286171958230603242827916088353720186221584447614840533969113440679416099571718273819091972145800413279740723369213284537821429326872918626505772946448304384530716188909612627147377554156621237187080064071592315975520004322727733988629146994403528939870604938303664860760968523516145651559064161385571725767457602983412742000635872627961042856332813131672408915681515653441869655537152523563617436554839494021491904693419699588290229014560128936204577180345214465832106791387870674378073691088620193806837008254806718651973330172129228687967649721321284609059533222042192731302633018717041447923937487956771909598240121749001252359589155289218661948007398462420154217629513060372750734966680156269601962867617130654851509466171044582920824395456589151507359880835212930587458318230767618022930295537327320072142880888042347741610801203998195726086940639680904953631946209286615888945695399429226898404039805553220519075579971187356174925490447117218107598071884733095523972817779547306606658028586194981346196888522755174751704331349593014723460420623518540252363768963337959167262611470224829210575800846687952467249487307626040051268272537168223277476931909285003645795253364333364997356675413983427898357964033377234201046502195834445993856959879447291433557460486669532457307928243783193296380402469523141897516258807069230081517777959942679343529467211347389890534521167340860267977396116814021314424401721834427363621714473593393235473504366785329984345217816130559666786412282519788411785256951221536434933011438965376736704577661429338343673082673561805818022499955355256294760586492794279246334748865265685146402680030757074065790539434535387584171880804976399230489980104484659351048460601333839282750426545281697146821075532455681815013114919110500140292837830141624739247774060547086690986323196436342234581108144361723720854215395189106294820533151739633588146929235161425819805640122256475797317514323170973277963978703515249617810080163840814808357171049291705100049923456405402740825731401286595117220878306493044974746883019269374912204311260065669469069749029821028101194153413706151987546737799224871405605517089261310629063566176463832620431747291919016187781136025452512570193641072148821771296710334062040756867726029685129702595131182490763877580290091328675990735456050536370008846248828298617739961242571282385263318912333057314940520009893382532906002293582372444849698671443688815423294006627324465509796107347615646671637582613991558247090854352000719607302419031506961236262547222677876330784055992582815161862578467006606149570062074225606038218948114212407813850369242687172087766388366202562800796082300684284339532938642944501079283937671750107572181829583707128203607843223339029367846537533585274098606414538833999617579782253162158523626843014776556055051429506035202429506736820287930934957714379099067862165317732940230968996458303324715862553568488232161472942494172796917379674589379384291909342994406053259588389052129936406858817223395079893100316628988786772912699330521754683606700971412429379497476511479461039386927806454848077960641852418926680219401757860689335286542535160506632414197812562525344346720721415367306235023846066233663648921159189212720162935618587966580100933315049354992688004698224627656852747186151284190772296805920611551992615175591240666836452099300213587806176107308801726708898742600339562750166820598296614620733389552031351678627446761380469366401862304735734174097202336432904853350269866960180316868331778043140679510908604754682855983555162863196635534380499889161521679680895298767876404960649895912907360066148615382441916261073666954050943412846387292181511870104730594829123141662910152896887886005926923136351308794602449325775791260231722396373455036406665608125471970066280668928989606526955574617891958051426711868717651825429981323613928854554615773325282505204805073835947669068511354012736865065995992639360856003338462135304021143619312600183334912734504997039163031075145252970270987146763189810126415730391630973454693697798668842686091094781459910680781926623877097766151907384927161640908377547953611542937230254593257937172470048534763567774715037323079973359022936224682369194615799324106608305867021801609016750182983409848299649309653993943152715964256829928958580522735030063850642217128838504814555019130360295545184467704047596264978404700021578215455532096040791550271181812700391458200590631097170525534125166116460392423752722023513070888161018258605692044658305440100762241059131130848691578472466295029158272690966565197535999501788684188258461409931547679031417505576879760424321960353218234218910577244500419589079175884721736425598430826470425651890812162615401937453426017209526290681124503030328431302101690418781755898905309897950828867018246825959983404852958295607102023977225076586525519632627695213973912749086322224564925433269390417332225430841497368213006865815591516341692644068340506115490275597211584384399722768945309221124338465517973474467715977953784881120112499611009032773956666027198484254270410388248859576831019351268791650524152291949997010299275559959159912345028646542709280793705047442833451891053035510463179517594611830587048466910121990680784397126867700265864786371636556763842507917446794250766638747000659112800906099355897991193576136092746295062396322441683098989151000187014336598756956469570593511751570735862621568881272153401541992746396926867570948788714618357388780160404548392521588131684708888388091602141342279505968435197359860497801522901624283001917323030374952796393074450782697315525331326744181907732310522899641146684874591539561094901269055702428193216106358164653007234203313028785197581174066262411973327958347826938353662510960633602091113288209174047843304009879264708824682125946415257732098755212490259526415531497195050560274975745526687324651903690967632856821544388760672706359067656398928016860845396080298520894828734153035257428448940187607864674739923808148551292981369860344003956896383058415509007866817022483444149237641847181301736309048788730097661646340198235628704393698100737692545978753700204244366997557438755584127180986446803975673006982477659217997407311050788124928887473080149610928211834122805880749914478378517022836560507450284037283538209723062380673590342889574021970814255060293825542296109116326259026431150956709982922735560765429003499894194951499091265391218435172593489555652080662237078405678538442868317151463715898475950277960379033036908999293462228592581744306834337325725024636272394652623467919675364491456766039916179291624334758039123806677557516021274960502738916345275279772951483554220599218496319251930645677839740146531331547905071659028091534596848174656087792302135046550334997910920722445602190723310619219005994585069995090678309161660738532784228718502432690781919092482974160190382936911167390654491285321154484777499839820084479105091635366851073336181273530165958595384263693162869723367262457925964158541681217082315137797378967845173806200739141225782782752168749071546445288112429809382507482344340436191981463769673059561136313849539945070736514005213044657530935337945444539701767637355222082923635966012384272078904592338685247770476985733892963979483422147068936151381029906431567238363536859606367126933870524181810175397881449513417623541043618267808196248261322477285204024760446100103363288104556940487260346384002588944056474604870035875850934877622708995798121505762586215235106480055727459864719423466226202720513199602439788998985074503578102161178048188164223045062709130829692174887322403432372836575335378096826754673915620465900672783512423867394390531810598299500292420192875193913527110911542721836903137509519621511956383577707407788208155534738187024768496196902793069098904897506211830679948203473566305176773982868389059270505133290630967833024065498852179807000702582356724675097595848769436307874134771558502966126766486366931083293845180062252484148369935012028080383976869625368433434377440911411275415302967767555539137240623689859927708990388845038833035038839544046262687799196647115159805370601803826034102639641285048044753951401033311455953392371748629221725912262896532467479501597785056101106823438337424270884923129306834653833333708794875730835110586464538161888544976761608606007329989055257832562599825721055883704362329625736311565755473803627028335433837019763947189221368961968673172193260238859681675013818167769769932986280402151026726942293028967628138382717440375181561269031890022800398782110554783285311447067237804544158473483820792376581333001266887127650423681569158861185599947384065272863628493618416958830348181052726475422582644418472417241074432487914225373677976273334037295522801144687704464222829568897425940851261314600150477149655211019444999049351865109152710179096440913532032695118505566657739646868365193124830938362685845953649088838157168311089670487900576608211226483052472602476617910681426445395064836384710592777661960744191135429397855608915303553302140432566702047126620267995740679413368357187431483466561370061063531387053992059615906671565338580581720595161200863756086854957226021980083317763848632650300836585277020875075876783733216767322447747262664483727800276009054343249854872314096637856862139229557793914561758220806978271081793353204915173262217215866648072184402148835645196361336434091978033332852707119884833405995490473502484783282361428792328212246297554287430397298477233179513065143777540837862536638771112510610627563663627554786786712320055829936154827926704263445646376566236912325922178934037828220842742685141256849791146453146590710490568706096729591355247002016954870677342170118109022978668985022084351388495688365280658601824383588863076736880830658290212029056763674808660273615990012155557199571589525729220590694495020565053584819617257228272302994088437532463246564788519108955291309917572490485316345059461033048348179071220806265892317551700450186125909176744661636957125576381498937910599447151367751775241237895880588075190949174732439773364242205042176529909297456299455280570063164121020255960319279930563129855503945235553406878901654405152077840728138353286323860468167618161757602258846422862696932752386172663864512757938719854199714808978456117277087024865953945768057226486615897945349681684426449446416954292861175578555667403198089049796567310812041492906059639975843575366424125547554360548642776391278761248841840556087459345407429385613177756627509138363393614808894714672286395604800341072189699223461214291674704768188759024718804932600105372094429931699774916120401376113342506218132350379601097554107745170952572865096363967063280072176391315573362796944439804515617051628117722257783835669054846873976898161564613162388730497146389106106026746777815410551021661947686451950722066842478556118967612014250611320057615282476547121350526599408504643878101469631874873720281903991236872149753185247415375530883805633226115994417957609985641050056965014996868971495583697416289041546679602665980750489554371266735587823146694562963245029853072274708203225966538643639367640008536396864840689974470438927190292909156010698491477088889398509508905518953958741167475925664810090624219958236340564043569385554440004520789664506832126003056076195425679432029017362180216954198941484180160702584615066805833113865627483827780423396204317177036527910381855437942670407860100610629975897765558601497881377959623109538543765824916036123778340262297712075285781989562878002319468609852188488780995667296228282054349091850501912417668961372331185407268932899164902366387049843001683753421496529835347634358995899609287264673684227420640347723686404311520712545556518699379256707287627301261400205889541010526174897191868368405395719205544053486870446113958542267850689344815713937312007652394642445180155491254791779225719204137494849117735614979283971425461695364199408426966625710717097877815888450722129913353019920563844400927449877362412050033051976828986853973118818517230466867373903777214538709959985945681854680001761482128785702927125944527950207266811687227747433427610583486710737645518031329389740694444597893577896522052850972765507849997777853708015227334297278827396816572611994297283297959820196949513466260871796827861853985899557088449621926015992602032147383396787478473808214238966824034382045129534311360210443496529147665600993355688493172589930928333675280261190438660917497499054092844503301423692315463785353508313894612797521550107730626984033580050971620449386384921703526503263006479838079480125964935962442785898494205968174203807306761032816370196005371834176882988820771020143146530381270687694200305197126070410127571088861404750555246231574086834966873900430745533807002920429947030850947861030844657158297170741712716120211607897950921590969767371974627464145774560920149048095412673634294008182112961971017556551698299574247088954439795961907052268409794587152283462610042558958780282429646938505029293472239284160023188645516403738188647988987864996163766817796721111137316729026375743694982042849960352072134800597448419573667515223076418083147946665990824276843920487341140544732033212752863789861270400414308986212845019304939021549536052609222649041336068546792725726072498501137688974762402838385605170241420938425884188599312641930402225186352041784170601552774050128645015831316949714373955953743901589700187805196686511057881212549953049795090807465375969506962396980090968800109804305293613279502308265688206682220503840328510882676590774744829456325044303263806431274249985681669228669937629756157124018267321069327560149925809477012979241073998166239047403965138651377005346777700383369597169489261693559054630023358893388437811057567706552391773797807461193077366036141919738123692176464724568073719005717725841801458274333026818174546222460524731984780102322307395158397132487071109114745779795637835300638751633288262549845068974159878665744356792442563513726217800367318235608059960056856359262003064401623432320131682318322158797580728757066714698771449174746555620487854373510067123679874823929857234044136320638105097106151456623394871263793564995132975970607863721267791840764196028919041694386884920302362915745491232810915206413817910543957220321700078714945686853470014790445098739782805689248561252322060713328524675721004588160153123415267823286927552381131361805286091851936258809895219746071268753606871207844988908357260156070724104313858422235300991003538373501639098166288594854216040340750427178224727579445518170053243311362821353929026046716063039794122021118462923703278906164532960086634762075694464936369480835269594750505185923553405005535281258558059034066697626593829340893291282454200650860276528942085810589818677515866436240197719101527448635018829678505059898607738449986281722729193672623429821099300716472444230005792019291186316823163055303441771037072408979344112788409915702269881475340681608761156789557195977975505287872818289058294419747926630991655546613180801207518731718642542824298476645827977110807233442663216272620180783220714630261255325455918774270705201680217475117086803752241954107384897220061958276897807138716537723593299839581462682851966668267964760778003799408499648026380459426750376612160660309982096314292753152830688599477721439198062715356456720446574513396544282666647692129385475492106743905393249149444711202883830755184344985410377124697370434767393133031409612670698684442069113162732606150677072098396444169153992971966673528241265933974362817771233719330067702132081365137860157811020027763843195376772022313056998775964112060351150798316760654639449884327293689137392878169729426198634024881701037495363522952853975019740558299126482014034829177905932559958342010291129160037057712920718228978350390169408559826248105867121691963707146466816359079795471332347617202293278240450518009589674839812279649399361911836667663253256770518650916406997438955821930563623274951718746018945681577384122909688886045639161427668046530956901185006703084558475793339465300733395568844536335628530609961596560188539006779815089596415702426393206879084063853407818398862072121416097878388366739160893809755676865183439929614857695536179339313734989226245074499302869851976050197452963348790961644849610885221060420914707013330549660593457626972470323902224141055185222113896042768390896827827870994796487298545385350300254099907184232243549574495047360601348433217387755195955324889074367660792069550020754690558514191769990075267077250195226942675208337532278800187600838341167598336224940920988214274025770844777445587945816632251533681084552461102038555963451865423049388952149171168219563790460297471654482117477925031303546848898352822827056441766515683402601838597912981832687617875194153598489345770654791530485788691979400432469265130928668870492943014268219099601336854076600180013580745747980163503627655319107190258731800081102265426780306284801152524950493025923351385290546585379392812836090764461309492345212006353313950679895801227054111280929939845701643837761641927128315766902920935870666171872926404209925265301221727490842156531484135363805911641166977273154266804599431302588766784110002286676662766872407491746330891822926023844406954296967036996219062884146474812228739605927657055075320358620357512003566932968541759205607190750072642024788048954675428752368141397923340438913620911869570112206555436341634425339807843114811944501132468617724862203593662891538003284038563491309965993722488365254475793763542236990491035125630261176980467553373890750515646443751206304790449700909153914516071283061293873100318868327595698525381417121482047698535989401403027788328472537375115540078681092689449135989211244717744457828555069857189236670949259221490946131693950797936067509954446278546677778992315524431369228540455343504034655418114053952765308870431163526397954976974133501609465857708923045486395537594578252192488024825358432242678515027589702371262178085233702635918902933300725139331186600155600415270827040953702911587417922517762427840148646134628518138750813119632352434026400340289016299488743563518118466192772504291370683099876927249477105329719447410060001609896910102413558732381748281787075499225397231798263362008162216898581903038639833719744223939028723949168147114210356160637472010433163124589401396658166653859997632471998806488200219089144971104405609832810077041313487781529369822934182760847391356667444725232464599050009401359785033635966401174631776014472243516674181996588760324206213957672855985090614787203857768894067632476840570007458597868280833187336495928310168555798690398864044097383737405729294835050674044315728226270074724183261065257628812581892200875001744822457941766251692740935060965070600885886794906050455997279119302532613067006799794793295015149371333155868065334434254481253436792525203389992571477574296820865426850078551914765110648981899244487881057624103091233087746150296779427518634831283879825458488332821479245092719080243037305985945034699729896797782604410821774073535276201430023197403475856343738593580685028026040646296532359236574213077542694707880509784108679835597201652874517035943883827443093961077003789992041651599927152014632772595927827879165514962122188254919618006445475460013110589487517660816387733857375107422702410650887973397279667265401307542309691695878841812742653449984580819379612691089167001894957290084309114985008560936915957319116540347990856105375436015165509482141636025135039467793198686105590814721065199254792065478420483013671058789216565657648393178770687147043308887253339553945656235593021755190529650989647226926897665258752326958839734655170125272165799952839044400691802799944559327199320302443317149196977904746548508839737359330463728650327300990348749674182780868518822756081901158075891465677629783026728191714352872798065107305979558455594919592830861176079336309241831956694026206803308361171135546295838446825086301357290844508328590818868606517563490097072680923081529783338596857832919162586535949414194250129694565993681015576207403182902713423966292688826216066871338075382453726924393592650925418295336936370296512413816918292065670918072251269735393816576733858956362285179880098729917158804034072073255427004609869860652352751433005078133806830278540891538422711637882674703313227381954247083988534945635841315351131987167361274905284896681145933463602851523644484145649775940896514578631750601916674651593171231491819914680711351475944056756886574540691945527433917413957226236541765605563337619771480258267968950017308424178236824860747332001494810410696323488640133604505558989179942319823944955567095856291806741648856387063494785781660028033750187970541227384293061388818316086895722892951650565594456414542108592956781417338646266383631343285566103105654382934010675738675038691264429503168034177655543718004129626471491342861244600632343958049100694776172258159978399866321137408699966566034251572069550065778355092012180405750622050848170145281020828689573098842960391000866310079399091625359622211792123555100692112633574291407572578638010743641665448579411601670610771617263267713386243093832306251771437611458284452454468268250508354055512597192013477949027445520561839780928287341563503581949914506448946629692913402498908315848088574060077867131344111693233294070910948233825238764316096123805013518686326081258312675820367557488392010729636365296489222838291939141496230373039325515867865855498921484044970331449624221525195096940452091178980146126196618302852420007675733745142785618337592082408403053973491568859407069201703183740071232098523345215351329176907842287865962498600609078223165257502195710557550056981721872714442068938076839645828822762915031425257058131436577478388023862768535033860825907558077765409279111313402469956729006411707146884594214098541039606413704921981715386255883207506456740184299315746067880787934835329509112300660805325866255540697743523458332233595283168339251233263623823884874587900732203580219720726415570302761488578163502396053256424347923264814092023952267227502523666152897366459102637901680328700682875692227983039264193663310660899291650736414743575800284147932877678924515148559059012249765014601214556888616563936577194347240648161693484216060573865022655590237496566124146378729463095566447867535569756508075309491179710938939931798493718395386686031951006469277314928337186570793109458059006703725641746033333622336526639511769865431232713446747214814002485962945714019852604370129671096329573866186167416819230082552512449184826506181920038176746269160465661802553576402834490279356076010684147616760891175326823711907812211750401413724428794013128109076955835264774737812104281745020505298988837400432197448100026591942860991679989852169450752439753440716866610290972684854420293378862731047479033521434432458142332119322605077193584833082968778239387604443692357163045532719119482668446658802268446158307755155588022887973697153343431238880172045851069095270798675557037596831150986394820147692006560521542563384001658398802045218949899468170269624366729860518871387344344030152666424497794656416146418242981771077760912827940532115025635246805624268713570062268911165239345784139030940717772035978448350320488704129268316619423803749732719346800781120713689610908691478814227462642339065461071666002768781148497846421413013495937080058532438736778855832752303854209006358672413805601421914624360391553998923827734083819916240029750420617193115830446265344541500975054453613781684691485712223455200970722277531647443194700752830420036766945376588070580673342016287151959854364247002099885759225914330212301165963382702777567368665250333844660033759474883819960454355345143396372989055425543439936582148151351184266823826705297657282010197589312876676776666595074861469508342339122276625221203946286129426823498825081860851865643219673922103863166069388627207780104703728738969118931564028479655497286676633606120653039609275097743397781839743982767992284468916899986107478741133411929043851862688342278188216171750623858059779066083307521915907266082419358099344314289970526438184345506540272035341453502799425763951547989215447387930575180103742102403842819177987297083995606245176661745164993489484466294679573531096679871620818856407350215130590728239090350812589989546942380129455354541206100973988324954356144060860182293077894770286977138849079983282301276762715835975921329063268395368322783841253938564384401175707960045525888284655195976974738775293159760209952766735070760516550922720380649177076084392763765416855459398684951464310052170228988840323822820939162215297959609834768396300911601182524948080248994541831601172567089084417177075817796377437958829417503895400176903077809544924397720803232620043328608951631904163370697813868633071221452141692282073781840884401126024986046022923798325928095512680851086102741370037513297073520132341590628072638460441808798092818525904517662047072214462641752245156141471452595835326688085057740854394407674492478053748690414223620009664081241090359669546652899798779906405707618096095542320525359138350453241251155198698538424713318434197011367025399904064493365237683168920953957259853799177679341305309794433375901783260538039706729487224554698275504836718714132496113932611918729943520525733100882572140640588469753258805892987117127810412547516097695522624767719548397893829380492290735730209196774232193199879312085396575251107834374056504493223007338245582529645924503810714037445829735244145322687889957778272014293492828066937086683242113009343589128021207762630971401052647981686671786875885201332343404289490281664711093409057424291587029630426606068123315880139228618868083120733762617248539556844553189107412946391221715276639756726101293788914843137983280876543358200141136566203655761198697718101592225643837060172533021745860986748220979829990774172588467530433029505776262793977350785052938418398023763349355016758670110112555449216787603439504867823801154570549125995399287136842272546294129277893520142672234869018864926170029358732317542457870542631805742191619949981365055123293217187849061438269518569736071672642165125870722018956163112179190240408010728047057785585878176207458979625593433604358952050990957437124094413873671952939256720753330050277422569458339058293290603092863326696030008900070600452761059207241814631048122806494151207163246442477810326167672267214275101839984126683569043162424176210356503364696257164638265634896769710745402306471099163701524362112471442481238617682174850248189483774231483820540521405029288438044433823532302994808541325828401920328402723133455267241200824481639640159926051094306159938243221711617057557233463306108484390693627920534687735301174526608237129940412824815862809766260062038442976403231499852735850886958127235762552572235666122476447689667322610613023174003431621313359355892731051059236285246476899028801268417947910101322023549215412346934870506096605671335594407005938215238097573000555753128214724954155702536919105879283822880758741052943468655526786064931929858315750074230132676491800041717897476424997588181995605441738025661196817780421406467896749772997368187663918361404911922237121492383691448867234612575570794213301246277022879423374415755866028677180836748576854434150887520521833287253564370093870322252286201003384000616311473761900517278024296577267838251578022806139197374250301472761332328195738876803375381197562550922300233713251162419052978150874928819399155079346667274788414603067037100145960259435093989631219699806433350154270269917401959021635041869399418235779386239308156130632850365227813117850099029789968835853633403009061737744024713845649100145801338713518036704540313085222294441512410685583561919719381132535286319758228908103717214894563627476501224151762762842382696736168716905114902949996493830651445263008470008700448952168745252382644103117686450865293442985230208346204615506402412031980460947382090793251208405889692387689525312094524672913632398349211883038075510422592881159521486618457236063120211068959823605786785451231207392557287999281613625298140200618780970299524667120024900100679659585772028558610235484594983190449308516217080162456418329341677970625843325248478053485004459751418206460504748856156397214629264257372533139914189980557912354991287192658812056762839900837713465642143997201087057148635412162643608701773189220453460867669254241863367444178257069355809558107326885153580506892494574729831214266957394823229598465105302287408203229891845595031397172014051016935475926987404276854287160999606426792975455006102760599110391350831724622082476940747285227793004955187093033972914579478655573492666508070132387885261898366656256542649506651587940110116859145385136759861836967869400802934921119097681123346418682702646542645323912419248378133989190295571830837484067466301399675887694931851649161918987595942924389938076595821273386225795532660285880252234465448354945437831874532457569537248637257744529115232996433019092388676439439038473731885613117764031916914853038910435095317322313296065534142697961111271163732976570552370773979791263957352026104635999638513490270201721193023629760836051970417546214072222074476614042569246461305561468260543176627317150045033317877972779313142493757088051541140291603289605068514065920925576612626734897591736683839155627464682545501712177490799192765468964012607109665841451835423285002790452053304489583814781362280043193738154692762513027671424065555780222159318949457109003929386426648049852594935431082313230553233306695751428190683514409549255665215167102360781212504368619028541565541063173597925740912450034461241510831705628177346504109488156693759864467087161108172648249257126306031757620013049477282096521564281930430991741027634313640559402176540921201825564297626205558087269721258548717534025726583587432709365565179926516415054164384364542233644100942151712862595522207089678209098080569621566077287654174499151944979891607635778611211464678181754952884069866091119012755256276588241018820832893912448070614354416734705469815291391472538053694981971856271094691986311243194170692649701747804620520143414287590718790809748381942266049341353024440875962356901243954581275467243306553900352971615658728657454362598946386573190457106356251743631967482198224804156455168176333254652546882209134275866023253619920271035923684936281093044898304828493730749061543483673697488525514537467428462449687802274486311332086516087290734802673190150830082462307369023057583683546290867638421031151923042263949225286927802514420878640682287238846694726522488253353660982020078718276718604547511321068938683648438993912485220020044162695712765285982764896163694449846306234946555478303620326791377614571635763607560880687741604758041645461020826354496307857190268378245977888800969506134320297627522689385658352114418145888614887737309366647860399218437781270593441331795793155248035539129950762135415650893321767519010861349625218194148279017762215854359678719143993613527535897061533459591138452558081028295700368125286093640595968525643514489451633204523460079978473378276781505330926979534990990965538468398832434666215358775907486272010899886512257685925426026291349358575219430332399739468374764482777425831377887002959526264738976409961934413664991507058721770123487759798737321384254647202197700508537219838316810258345304403212954032974140640463310816083081050761077704509141509908397741956168340580661259645105168159696443777312832622600434588966053658885360841594290199771225614276238925736512820034418305494093023512235465800186578625569380149972770534627696939040967393809014947934454947867303812769408028032739769825830278031258838138308674610973843054755083748547477813881835484470557494752151726265373521889224318291470465229439816925402585207889746219132922129551822621651989564124193555584003060483018767800322260530555253301368631731426845782788507287820447979325750957634217619758011219004320918624086997031297729345549884603808136778512565978362107090244105588155744153566193166831923302958101993896838364217416152550049273173597198697030373577005272307307422413010088017213127542432546404829644885458311158088623987981234276255770420839324273027923758172245393422969383621640301198911624603909777871236854699842871922252395994793159976626787468384268895399093961593535400198651185686016881919439366956970784599318584709034911088642848261450216051929288017931536997282274089535363593711462437477695258420879154194510102408353292017025331166204666795887641189150049500031100048707718989326808191526572257331308101881570036702610536304817472006608647994797348443415204991576684779537880756828859721609288351178370774120401509403135939797684557301320937854074082176085040896960400205251043810142463317662190101120954730727872529039232918972503530727638302204823871298137775666497786328245928390143981553854414208873899443238892425911144355291981160459345154424069251475328763265209322148267131810674429319436068482983363287564642669552848569769751289406578417270869779358176575814767699186398242040131956278755478976306940590908359775751677208257830458410407391401948574238368423385492778849435563750128783253933009167810605745044334570097426063534878876424069409677365206608343635860703894489997864640193480744387187851411993351168593530264610333428502359401230384877140466648964778672139704462073318283433621862556117654790311639670871954638541232268560813026386455409605645791114694806221730903093593458521127501707098654093953852503042371803059448805016782911109597108165768354182335252766962069544814505427083413358307462900492918800262088682504882420783494511539626464725571692297828037756580376100858560013024177983011724224755423651007293390112969781029784830029192440059396894358102524359449133970304779702468161357463546135505551210325464375277422970716984979643473092791504180791277072964710774859766254735693798209638117926811075181260900908757090126660729867703504473712252899176204862487954348973398796161070155887191335445094174109976780942740857362526788867557848319490057377031279948562481590864516531004809125531913723639430646378503600960982961347728083444495832112681062885445716820304108494562860145119311408274219358155983919302440706829200582513285273292519234863914462457804515181464114707997492872776598826416692347359862388968947321560640416106384050485062236807304501760847121062341141256024835784381581775768293332843782047001479837727073047187280325528478023569617987727508487328286737476811090723274122908883412006848536466089710614690755929974816945853374263570033183107464665331728218020123830328582400550968976043544202972690283512492306050694361591090813584731554815558622682317728851176642902995328141233702786158012853974854185397427460219059419875873909809041266720953817886037292367175703939859725071134409091905420440647147176808254405170081644511259384151914309501173317105891739456755590427277685000448205973153445894664146767752545791017330166983624584300915586847067651615940149101212582163461081729497266753086332532847676650050823381137284968917653662278057981247153468427256643672312888238711719129913752482975552496062994882926671358329709624596900157839177168054262607388020474155112240524797575645968508425667895699207273265688063042131038626372283979596487058389314845253235190111371648237994180370958300553289477661818429150508921098709876502093222355820074912509409332276804196892044710204092853482882299798472281292282164634116708408397882424719615925695681138323327578234022681232183209735778874652115985327136185702288627287643782541252634509676667141428979824524100470880652758457533353236496152423524609716190228015700092598119852693831130527909404009536622263451064324849542285624315048492809122097441532303528937625694648140847691195552149922605798226160177631553222416665678444510944600042329169845590383531067295683362557972515450115033070115061230315411091961742503399576158778600901292620369497562139952701013523333700496553739782166616435372399345535842192025984217667095412115426570129918267090076991495805286507516705697365588304845646550244346391057925067418874873917838536250338667726708633915479247917275455278241357061585884133101657414282445896161524747501048216419341781032045438772413197662072423310523549854838362025817759349865806445773647213093580452013707515524625963051456265460433088191455974740566847919683188779238085355134911324600898339875246776558210313525611120717583888455973918239071465660992539541266018774186292484230953836709938937545902077781224558706509780300704653965449856336993475831353313036385028571507371233095786416575664431604988409942542174866471489414602380590772700038914336776895462322994765192885537321916829207311646012458494441376743907240185122610670799403352576762816219495149626709949133327321673453308160887756165045654512762561690261951263815950195169523670990985655777302887374597542238931429361869049154494971871786322779184108083632033169459620309757322634119128227924809458795076473534125531073679433930719089962380543007478578579137473032402428905907433725432299578294593947753344636224340037418567222148037216213451998844363045516113761491729072394118287989401366683167450009391072776757809017938184971250430716120060143334294537825773776432905751503947769356405262939347772888070851729687056682157746231604614841015324166183340494053177952166477726990127900625403635467431959907184683637748088466232659820522636607627882209234817755999879798966170741399336528262787750025713882931443655019341756822216761574700298149599646527367800382864680554170470607375465358529337380245378578675699605389644747849048850069459330690775579965128459168983727916514826503536413106999302685469517090836131702901909962672526203122469815416140458751709225040103367140565927533919912361008273148920683458250266549310087395964046456963670560333547003532524300646672629140035697309731997196506812112731638507213025857648143436184967562572581826076382593877131455716416060947901030451122581493203783908305405062703732385825035588939131571737198705164701294698027179747828806588681372820789621791335142385920826743766768400983239889558352463856911553237925085343635987768075008534044677771100489069082990559496970314426874706835310014702736419160458439631209521666380205539000130804113505240420199280775756082123493374800273031790167550636617783126846955880379145754202142560836381728782935743050297927130596146306731173325346318728369414134975683193409180389609781409647226165091248274297851289234248317133433787561940895542220026860579961270748236107998405464650229752953249203729864664028930917545244508707443917015485971342559724755396764717190610330626690179585365654298654755950883808364467687842560318597064057824403939333290819082963693267055686642070199407133152493122254310617139998256763644232754762440337166934241550373859230166030694738537602396517214356688083749749232895140153006301044080877995565656080448145002725274683359173591797026924612545934924079464336755636437195051910102731700520589872347447837515311784214820173187914656214130656242747836856176678300362109015204275195631176142307920097649660789898393499302060413956756362226325556087617111123555527296292780453920045980298062111016462374944685852970443933464631743995536932872221517870040426894652791767886844193844622677261308445017363748119891209199676737122763435806333205514781396876252189399694580379441325472392610326302397295398695912954496357990530541367203700511209331262622487983670085560302379738501888701339340475000344203214561884634454608851387593513926887558944638970089176173252373261856479377260637752703272013396219919562740991640192666942156433921495839913081619834811345480699051330035759969051026457128600524417421820901401045699948325290023102630749411857761124611427697794178920366894594476776746643392564093098363611428641021777033218582827744690984339743328423753099127572655760125653728800630219260898048751302808928336059810727350575944305249733227071439503613514067251137482941142622185253796233323104939930236088820096039135720833415509512247378694421523935447796129253324510667403045760839975576665661241093574525580788742215945434286465195053933520515001478592772624739414686121043985251517014094062578953779830386515855474544518513679883787223379880101771367765431180677971159265144471797480288578678947649189531978338137589185906910434882263505829495929714377316190590128433075983018303725665071100945693755554318127345636256751955319354340538832828065145451172260240430105027075386257271094982205425723203836229970580565690234884799889130436428032820876755543269031635973253718664656236939191321649693458742338622013375325019177159939521997603023719786216272835611511034501641947925908955412902417330267416844978401698681197913907090824508423770411958631460382935433485920973045461232713288909947412314334169742983069563228637850346457037132461309745070709160476248862490580076427245421355462924732794922625966254528259552424288828136464555113982395833657840331361802241857446748175646147096980226319686067254809157260547264739189398080868057541728419040923246748661800543059737728545518337706805652044598448529803992313427648627393472723243967567705497798634518843858022491355398172286736538935799407605571212387145864010458248255929162919277996211367454609647146999247599110565469842182371018662216711613947949361971879255542011432335276069635676720937147263781893388569668559648063679662339049356130148984126425898616943818378289597622952757237673835865564542065699988488444113423870531995067696493073764249682823294166002305745386527428300726119815361242696832144072182892510631529614507809193391237433958237966487811017022018419162927628625914780012078559321752325220172637185157314516259857824773455052438431909795327795115983926994141793587317467667667093168370368890166102661859491179213418630539424271731596623585289983945037703806410200150075132517032869513641849597524235371856357918220675544165576065176264964726528660341766129936539804095288283292755220383081906726764567286818254107234990834026882315939793157836067823633562178818768823265309676727162508069666753781096347675158310526220606697340586650753171578022099757021718068641829725697846733540426096892244888931235775863412187289940409381185386820629086913061973408019856194187937957393297186565144346604159684210728603292536423547311018666282526040264524680534885363254981499250810388991262432496066202240064764862617466302407030113054898857381787900765252124339378422542549454588799867156795840424936162020646026548639336284919019422697212784461624061130886215841013833033877606029365658895753431783655084425654606713639889838513348940960716662561739257492832950800217174828949247904366567312347134658475406420323402423343310911891472650750390361355366648977358402653970953837843627689599864519684633110154374638908728533875867868741091202495518006997639158902014615096360343907646157639978169342684353329165352334927053428593418818412235902243961429012259955456802480546996367201521945871313040651602518223816991196576126631282838028288105372944793231301253050803351339945972748532752587857828471091168031950529330555133100728909320147285719485129444077174642581677204664379491928959050418249655188659530001451554438697212024323083790903452170590420940693706854921626715962807141212481902804630931371944153845630051404658990165451441384915383163353505063344080434658253610547565579489106399652554636313141092301682579106355971753106121974585428275701781667804672008414499589577341417833129473380942506460850408290839194415575386008049898468752956444320830152321712837028874463070364543148740779539866308983384050156068988429583998766491659952015788113522275261121852364148879126375832608558215491301472639289696298198878715014482842681623316421405259314705261419672545203351173777689143049500240401153825426636953098070727060926274318974527180779483310515448906464878245038291885866610202802516646751718876073955139957103524584164297642242921510039504325454004333963492444124117347214841214304379881874605423110766136987078163008378836649711502592871890130808752365247750318239651203623136229680093337088818564905408497494298723292761220445363161595382135644483415339996841438978254425045759505451744384623042970214812739514675505491768451818198858783737351279040599727426792098265352952969513403651751482390927895395905433409668413412129971192852777269016627018898397665187027284986389450121349168011995933281521546462487941756027931426727098794767248658140075881555368478111244997370656926610145923326859075446222975562200674337786166083485941605431853905037099934404301997550540222725498639950285119711779624335930871832029405877306585639398752767778411797395981934736862382772440550356368931133791011118121743165389130686141174740244915309366393802962608535532737237693866711983742220959927878481803914396853940798346943001364838364364098378102008998668202104323118058124063651147838687287731343770731960148311425424908487091418612082666029573699976341609017085730485774514139621418104255196180836351725173803116847881515080068360043482186121485387239771545520729797155413925196703226716321664492770884810476585361046161718175773675265438467031709344690095935226526712761471535858286302324868127710752660381151675632325170673751528033644918869700449162469772293548867549740956667090657309478928722127901238392688579585523309074958985403174280636878013663815170303395688060873664710959061390633838342548724366578521908257083263742274797515078853175828960958800663462824522540095058659401991171186069073727783587528789799587614274918625715506446457572772334773223045241431780254860410938844266799711719470035148729311833473360892402500381858380458480453029262223779300558644386375056921226630519177252449388487382922495801169569963251897001726211814403001236655267095985311147914352169508785747929494828800424142146728599074516860159625001490665065871163210091993862959533188619036878776031001925923913980907450590269040715461881769695602150222593808049599951904936934211689559003574342234354585512186916718760091015449250193462403257755711566418833793217339389134812741415183211954059076059445516932762819297547337072381434726266650067178017159132310339434824921063586719383798843841462105362639300568976170621877740331644878861741549635151223805021404142943908758583314031104019276598855224155135194280777160283512322329997612286200085367108295278022319244560011438289694025277199427024797035267314784640682997534233125798695251417856539227241058116683676585930444491260779843755121836011870072897709242026085785653497526191176503931057275165525992051809178223567560482724373301838456027842251717141428030889493826585583384040062410443217356396387452067442859797140201159161814822634062575232790455666997702303780469854676856620838992222112642013369314075619117012718948166193972999824958202155567333745815085630891710909812747652919930149397872943115738474157816719423495937865012502759263983695804940508260986920384110158075636361539970612818386178308066517277816227332016650705875274240162092523567891489041086953074285283067669760248679171450813919998107660641750328965714797800305695545367329196908683497348995525807872141917060631665957408986001046091241086964191295527447493007699133943571852547424071247938770180011324994575585280938648430589597604669088446637085008163778424040807776978551042942824400139118648219806164133355768901657203469447563498502259225909576392630764463234541988325686747946831774129674789258834248437684118319642355041726361112065616151079729492492408042758428605129278501116018605499097779921810222302322396021328927723725740822436981531829105850111855431297456452998373061705723152599294734535993600668468214598952120359746649567546352355533409977776385954809341845040128513078507918680820735548700367751301052605943424093729952688969720220512267070980476993564888762000349989884772791301300501868291981821306324749371906351348537135686520477986278354128332321015071255156320106526532931725793433630666585834888942256648512618998645485757286183080555664153104777713588181811358898911925247851782505517415325680631998918643926413070863923752950695047818404985277577858725009652842267449244030314961099754271505856071427902481942804432181952166518632218065879271388049685754676288134023298528213257530289425842701044189275126639908535911335275848614666367011050634906159015013088914965694714521009085588181715552630626577274438338236970377266421082392545766076056724810219342623161922066888684104525097532700627746903994118514069069111476580832867784022810746590053762009061317111706868727300655613901347580517401441686240911313970833220226144758724172397932807329194807108570953952858488868816712331645289338976772086816221621706628439604707867969191472405161609531879469483424672665423412063400390140056650164669193067193859402181393524572230300039175581454639860261876137629246702586759895165368085172561554002188994203082809103607943452222379291452932884353536903852346389340638230562850448452681710676679133156900911153245629436858625077544016070178906311971595914837635933648915304019562413520144120972239797791761909668562822073491347981834948221194045504702461907931194493888508259872970719487912895626901546455983269907158854498016336163913180370724062418148293736391087393248010720468516132017289699006737899583721295259028513770283652513360903341094038382006429224576795837342813002559004084497839204643103520950215368176057091562382661986247495844854721614623034739165654630935268807652826066939318921777739021435042493704757173551043988874370217751443685629070900547113181621786595414046221991130989034706281444570208734470085968193395844585878133551529194504280572127824325046080061847304871508578276678955208041853639709243491844996420000356669537693236159742272604550163677215381692624765522944585177225230300627106887964057679069322432715991566689755445615888207851867513037016409238173490532565964823046132318404126464994887000548744957099905984391400113359200031155237625571391290440866663571991341070270465068224353507725020048916279280885695974142317820838883654711232888154397961300859660413295930935625300929047185453440594049500244837054942798856623214077843099955421762588950981622125589261904019062791972432727578554045831961145144469418987151775973895974308490634613511211189380292743775248686689549476077413097220883697142023166651273004097300721937516763612131432949976108013809738251367688759502993742737969735210611962426736495144881466650267846639170331179275546959122632912562720266644756856005629492044655054798884287753222659101684558778672830389050432890203645113055040252376120079634378930509237730498988860315943670668788263735735889646808909425791804048501218223771831645395466328306895414038597289265577272852052778873135360411595709969188475583800243784089793706414443646079255936630317195586377823044490268330025012043228961396505313481160542046484846677953832067334479329701223033545812059884879857916530515133708362766081009750056702835864304199772153159423654484221343777151450812611257489157494366463340616651819047653442319001739009469870315240185864159017890905691925942046390105494561447286465892806240303869808252405004894442250918490134378230046535774665706645616599774828065254874978963758988103109222829040881243269989210026016902740485289965221224930328481496406833492235342685674520588507629889366363868762350911307162085999545980962469344740032739111154094356742339507529989722369394382105211209172654190626191159093696229195309205218255590359960614563163626701102446344373827361435545071002347279673256847253440827683226691652773335250301283551780172846204543035456290058929618274974025122431609616294484798529327347748830031116194915431830562136615612067396422522242705142439724911022191910057813622976287527119156103889801738436474546595801284990903648621005630443909897692031834416108945884482666576951635278615329003165218328978285081959773740849812704795081911746296912490852012318816841817050782811394873752065867720538983685756675072301589160808181458696943717531512299534353771734544996619111447822985617695675681768736458382000316789910531418229674362443640540998404521456103194397105069527512493062577307761739632061361668442751638193124728492460289375731520981778049952247950695212865690253082940778532974122702151895386808827471047880729637117066486334835299863761743065804704705711420081747035213893650985299930524269812323733727429167449508532984517020972428541270073390652705404736087703776661169682706030942581945262834389378693879273268384527348141413560821762529231263578890024751674907008628688061452211109678868282700570972062034380306882938862930769681730035498736669786551781908323031504908046386435331816362986251066971825977592675049137749136373689994955940173662953960660630189413023740624491996091218706824364824883695064618949353566083563784014980017844180913754171576402375420555002899125434455969045638641238855062454996533768987447904268096516795496225332041898709313553698037230692519354781979837627012027496332538959173536639720827717482094278777931198403166875611316944498068081626552341704440974265348197785715970012358295860664387826483990704128076098975571817151211831709828699670925773451145948378897541533871643235673885430035768113139842680024861346930113628394761550180468175828541735154791269016261578014826820598080942148107900429929723867039167071346828794045980691101362025001429770701830750305076408242304834531650393326644083116733817478410178251227461733343633268129023543642500330408326750752105854764906300646608605718801156252987837755193923420626645941375438236741454239342228060059857223098532905136271240092708593395919817818243125671605112705807668516178028180086452179780809560481183898694266722695282755389332077846063657543690615146081845195668951309488757966803248206354218317364773492385828743587703139191875133168609297971316701623650396648499261923046880242353136049832012776152500395057521352475400121497415396223002040419465242457060234287874920638852927354366167884546873909074961127517350755046164386411641779464200028215740527881650756743805926338297722107429455677443948681610450580185117058242007994069011831955227373062158685517099582115745380889864287699611866365169644758719626115516548779899004687085649910856735190486765900347390053477022206409286204686128371428567014595976274980501291881523814249111168797616160303305086715052369424716536244231923228089917280182368611780753022916105584811268343322487151399624376847797143289011821958696412770571666777904031829946281578690981749173870798416881962084287348321046838245746124269368654305589007102706741350605162586877963569238617325640592769047365607103150800225438494766215764471478039231297835381559571634437531524089087961026584271352503887066750394001281295542210071748151629689571294753041940050310511004358012025171921716551605507731945548092585627393373420109079520902355142264511299638821829015705329066934405924016777666480100517900418996463937850604094740632318854433742757517132668316705425439997781156409620382539009723228332326981510756876397014909940405215370272388776050785975932070899722121664454780676121687772509339662564329959151460012678885919724805031967098693965312484860273465094613741105257705752817021599302100821051012211894906786031630660853523639211590984432256367593028050122970445907825563398130648216923509398428433782407570326216864533038824194530807928643484536098720618867294564204814818086848527765946077124022821123094838583049270860729255709147467443172710436070393221345978787388227672708077478023997739733815048383006259590892447880165853229525195114282481736893519335530660431290054879494127598826691219889157609742595517671857202306843168768354978468918528714503589727068327975173043527020414432473347539360405529470849143661482232010362737513639502709457765584347469724925790152810571741510942318372295201931422206966933715069677582932426252092945581492749672796162291787257638679904051363854567226337169746530790056291553713308743396484579392935469157162097083213619758539366391197974007353004677624946371246600030117713021203863399576711339817324845228060602533415065811071610335824170038094503527195449003427403600259058511273290302692168163026768393652553096603545471809945097499926297117636567262621549703872393893142599388173204399318652331738342299664975035955578116660385950010656085530047191486934405610689604041329393332074674275151151837163845238142219801730293674877510302765568584193772161412666893347800305943741608129541171038471863085456565241669583769212607746591161782128514758638990646096860081375957127991749773743399048262093530250809586682695410755105068235720614188286375154985703881638135336871558879975675884853872054275886006275607195725376577288542830045741705009633433348455660672578167772891749106826267464471758721521052325517770613146718509772374516156662329684324829259437105939986735293770587559769783171650194347752505087517233646947230304298564672136486445119356949373481097618666696914858082209457706637814663223965326817382213167594894067651141655672964064654260152309058784387883138837354462320598102661651351291744975089693551897976620313677994770747938459464773779629969513345930079520771506544409301145803813730651456089250773352927644257625382089295563256859620291225896721342042746981165442793626170475877131929168544917842560512884964968560690548159973471342148982371437850086719541628761560509792624680995750203172581204682026971629751574682295842270377407834413346433488953757429010019746065086795198257486342516461542980808404084542123907210074370047150401014395618176822852709773316868420566753406149642712660250022313702888317219815806178261623022324497003223120371364867775209323715287804224814141678605764796629357251369049785207683595629469036301100121093960588529443551140710591852201320220950357591449780666868079955316987991755334563635923750023779155381709110631146116744932385734426553875964187988693231334205338008083937632574179051673203972384078680729018165836547040938863982015528578726195132324753679373575986033450934869316366333543004603942402426521966596920955630430337837215759379443137776512148185404241394822485219172062603393909239830109650820194175930769588006846923763506782030591702089108245875803391067829739410703144599461218682003194405857272044998997291371172106282734528353754194206185295451138618804284829913614404497974991071229317146542507661434889837033221709333153331475729205040559668207182648046137334544467403182430874822090404389460693097800420989195008951720296102406792983088507093269347718232896321319162422601964775375016347781508768084203952941049911827371594988196071674409882946950724209213775518902134135513827931194890159044140701101306668074140965566549005398289312227832838947930390382486774242040813567334737153875414706715204741921206128968539504111737732739858822029510221817957762201313615625535508542622820386983787155990192005756856212755675122258945683091306331230697421085809308189285206566759104162453213164883252416602008400450009112931211130070618849097659194001430586579297738942820736309095152915408309382196206469399638271124135171717555035856309585513668841644295366404014120725263839966088176834694738657029582323950619840585083410676600129567078933393926452034898933878163715614780169712808936315922428367565851238172347431886486585137612378627419929124738522560302856353381620058213704226904764452008378208095883812509983647883912348946417269553055296207935180142699003032511247942215784058538361854085853839545697371682530284231763858179645797659482451787749216890656349716360592699782066219185625123650310611728756525481948691735822181807325793836442897516108225414249854123366235067743721581648580223889520620347900960467270573818421275765064069914337391604250441116389307619848005460722024457592500938149710493598563486187232694155144487409001996192720731705328211228761859079661074244678256771964871572454709601362977771094116261495866783907970763454757254891364954442441317337197917753966353972795528858947729916293435604811812171748760014748938160377256369951561745128366174235199241940136886742706582361020574268274481160967582811750019937984108541943946026563518030005808747397818462905883592865948846789006207072079832136303528568852922135212451664127090054692591836420498735460803323641502013803209107441062533672909398258926582342732012350130765707413463479621989367816820291235253224763118373762944398865580782558436625686907436924173150052033918352033085942912095524684417862989582720439745242088964989051281822739946670628301818444427157622303677076400701126271814254033256528499646556005654600605237231925933060971861992856595866466430522544368496569740421234140131363795936541364224613063551115058990390851395963741785848657877791081046669055051417605386104522527818820808794155290105027364408177094117458821146693958802716470546695426607638386969900799146662211442055071173548678478733817471930580139198096034388193819041342480059086802332974081482236441191290527180934735652989655753505106137727559726306295068242976456468420984468406866533249497345367740706797647376906204588441090905131213757280482677062994361264212965484837668582263294285012860431338997683359558025588686102326187602186283151742755356424996394386435705493225840866914629285249120582167360689102116430926162124129412208820833606166058240108258295771693012497032463320250042437176027756269221015707381683247126490480109057019696125194973179097533107311189866642181021175563604862711225882165692217558540662993133674858585463149742685272919304832005672470184170171953670926277779524874732005835056955558022434508591794836846190165391299350980847273386531652204369393445248731004427262917963819978663062271492671352830449487777027141068963519755946721145620859304032844975657214723213276397611323689079503015150302120441012505395160142433355432735402607156006627751107007411648965054554984886061857634870264564087194806647821906444305287023507460072403827739922114676630846255159792063480805855133008038783496015614274949229582059633668607931272793605066020860712537806271052740473752972295632782431458724238840834091955350944093548082702421475538880684984959256726207176890034230789393833677024143828633800139263482014321611108773806055040183494753789295597932172093263930847122328745142700767535036603833577103986989410159184625029400365644605375944275447731007797313172870017017274158968859635336653803771968264238666101507674096104184338016809213743693459151783419943344963498604125350314658982739390739808300147410231162828496426193186279023143673754667748813532593357001769903769964817253478743488613275802376659982929011386920298439539497211333255522288578719889672984357625092290267808196513712006310783729581791419042180293891432632688711977844380273372415146283223283282391529603565204746933051364785441363795858396722195080805887525755907098796107914544117266407915529790905363174022562021584872295430234637390659530321317125131390740945253877407219264968049052044692598954234743333453943607542233777138491977059228650976485906317149317676129308403680098428658494323311414670335980600917674536491641213003342468150717834842458448233552819614324105755126132313400831898643699190881117370076041460772492897226215841610256743116874713654754198096967383100593784645420207200676962638294249616939910278395054120724926113280102096852923956527613170691897279023186318560205989985096126433981074517008227033795274878281943505852881994335086280026702554026368109013164195708396730074442799284252214347792842784280343000521968502948265179530361003274493844481180000892412884217840883417551085020425562278463875197380792962850644568185563479292065934920084670590717598957463100164333539644589819494816401057032987302441838273457250884231823501994320219136608450561761372604044990653029211086459202437766201297332288356910038449391715979387919544469221183053389086633929293630025504457325500803262989616628182843750444145359676848528719452678705891447586576378935250449426300569721009367818423413734137733211830625169123776277662504407371605716849399225683002377829682348480440010928736466412564154573310646203388160395538701013466254584198247521509797881445456720307717624776083763637132183878855405741594084284281874580449031022854041962448522955672252142081660508804400994285029985763766681027952278697594790760096388443363908113945169765736129614769019169775559256760053838831014864431457646349794522788482790674955687030413189685433962034506162421685138613515259458313618717240109418490314099012997629502966340296285975158465058669989080674367116253673097621934319782820375314188997170632968485063333136719347461619886157400467768111268161001491962196774022421270536007386336003410920026944368840471584091562903950768944479128285934611751095286429724088091712127133328011883109472739128126544786375796607281140356481581771666823261002165421344075573502084624016614731875611563034348145393585150750760516679359000779196855410924158173656090421547401442855444637525228420531471745490542477606736236028784209009280397882467365771595573148646899610601484737011645393955480165247537685385360115360727273220080964345692352025140243455300588247852271545648111667517663169083494802855689472757588294293130492532234760068313850063560686120950703664600449685924652310368464408160721115380543457436913477106409387526387004925092431569304240198267999087898052525684128520940251968694390677379516362564889085274149926378450324816125108089198349610491742165693027843356073708077298086680125479944551986622722358066446632989444983721353292976401827368148723646145575033405880007516270483285216205218299198026476144256882665236250752796029091445825251072613486300050696677542289914927884546349085461915065507427779318145647194386747784573677007843147387347378385223822266578930785953801883381124176813336073148545321666633250756610280404551767260808754300561822739189375583092829783564140966320660939850700992543216562092572280671647076381353683906373246679368036296059222559103008129655983602177176055458917975298348883910152693217087339926174470484095923178667201723122716409411216391342594981378056950659567196241501342069464467969543354189117629938375476375293507076406687378980193828107914417294001016405826115073627627351028604513376317537976436974126738460926435523401757929565425247719925725457746048666269223615685962788660128762973482915649243638258742579692135360097007063015847233680588802143856633293526490816278789255204681436131639814511524061376091259237627174780191499161106154487302525551152870132670265920331090107214728979945756266683142718246338857852316161446297119108841058665773120458067163139067852829737260481890871047835145866750827744670877892158416382280159486820964078917188052930681120245845747723927389007415227333736767612563327986287105395471075348821756823591464781705695411097923595013484882347411665506477728952847827369029325318232767291136897598343540921826089168590114191922868003606538544601686862366038429443431310520005742016567065738662384074043655898656754247280657462241677803414897921528175556067539585783154943493147405087628094255304722099871603128815119061651376351777442328744206215288569178990702782815641736923398102728544092729957833931500492720005023705912931373945378966367354185770947353095138171156747064626013411723865198476913984670928126688179113461932815745861947415823095240940137870909814879857972730065029834206826026560864781735689974366424373512119861619350359354983249422468525132181713884883420027383173856270510032014519585153332369263891195388171530461792257837143908140155657607659513419251649088583808284762685336751043996545150285709127313704419807520648129071329179322489491463469079505401697624599606842630902383536291407341290031950365763834734163926070643220158446536955065627111057349914746406236472546781089730643003832447833809934183423552157289832077772169989234081705123084054154056354793195604269358623959327165122385799488353300715208559503002164208942627806043071474040114360084354491413126633651735691235288543713109733151681490813438906438184372743269627706671673697750238664905277871148551499756542379120903957350752070367771619149293018872250856615168927133366754728127727389031452430167517942994010706057101145991859060021434362515971756384877918822089252730906751284861289181212613995415026861762540532529050270649105084566050995942844203178125983849517353038687876087304436940841663619249786421647469390317733397680708580783719216406667571195270150097493558227212549053088564136937950854047567369653356021456229180415912178052299466515385884647094066378489161455492660069607807128833571709561522545796854860995305248362693661323587348141512440456852759951716530170609336424561783797849227643191607088891152669912721516288547421060445613206428501956145050585783242339424960394041987929216311306217995042501051884168559353927500252786789755613694330791387784605910117096683626819067096657032816266327871641732781316614898560976566910541810764709006949442621783364821194429723848373665071645803271445913150479988410910199139695463591849870537255379030867356983073757936663521511078117600338069467055861791627104336885117926602593528886340226593301698234812336906205508334277097166726541429721692342948094589452323234178724790428583412705024803013055426840700297288839528317280620232588263971817554122970136686965349871434269776055738379603493783394869142722515346375192422235359513132307600768238457447212829541902519647974189354255126434694526877250997900559773862169271614543970042955219072484590244183705863620822337221150754236201447450317423952762139489153703043305319221728078728188123596967008979761452421110414587830014193077108327374744057745549663338243971806857659419881610928511203380110747998357202099663771572944896142572246419806688470402099930235834814006111130623262059027210103760554904071816319501578500179974051163941630445491938161422394908068274754983947541798825025378852376479231239558803409305901873743797187741195139618067959657181428273305991958250143540456980914393578559115292023481293293066081606289301681139992552324720775355116139883525138620583226214436112055596396639495371402545312561508408286657230924875797312513927916547241469285954077965725322447193289115970955038765205374916659447359895262195727788719246185912336252999593962376302809482454883825803292190406835461313225498388516736813665513372240620485219677919550729813352400701426958976088851570033272876048984578901327548460453236640113047566611029244705385423641462363714316699435093412081788451999322756819173507836532181835473273963042566428203268285999685781209883664443602193241442016818817831214335206645046245869975453855131814138072201682581932042567179520813095451804694330108256971910120401687036552129335949893551429802089744295657664851328121185288241350061754123922359916489074832123161747733536497076601873120404225272718251223587211698213741155335229855610843179664932117012284462566926361234279638640748730381727616006980274515560699556267070101425067655519629901756967648601461057250243891137010888983297266479712425389765137290460362077644632366042499656158478092690378212288077451062892869038683726954337018843417456054865981587604490455049880763721461263413504911662419960073583788422553599198716320903500942844828464425463036722458339866614948819370990041547406007635414471506144417618790827419281609363203830095856919606008064547365719510921925946770492724156331851753006911214087139348007578396582912898589094836842153851741768493738751682759276077005274537700921654316455370185205621575560373733476217734917091404592047658748498748360640115597911238495921307573446584055281590101299066905688883046254146602673997960067876269369280717788967668266825349858755403259171409634787437697687458941727939691409355980339741083858685309708250248103605006793774907335306533416566510399186603567207243256526735699670062583699060980453396741275806678091225363500070907303957421885315082167477133955105883893923796480810581193356230193462397341120219480165038266859743664328426908014928962735854113430197991142733814327544652344790453898196971387168404161952053534449160323024736435917589959948061046923192100568832391541354969239660109524016195625527936350842170330122971406840436230809131884024349888864002646572879640843213906874475173093329784100312824473985497085897801655527816939180430271074088939954356418562854408643519110420196706218533761267050058474692547134653647368426168539913068876124210249105691173329838665530350407670205625311472782976701418737378904229763902336591471367654616995120893667286416429939499496432646396348265082777571479566819643019599504724943949014900127578042754987000401374981263597216022839896000262619733444249278667529989668335989746205179661091507722729831941340462579981492087190874440486595581932152440391912917411018379032001943868049085597284361034484337807947246199526789502888686495366819413435389251340150357570229909755999148225696218609793660253562253167259312710867780485263734745897960525000951351303140663505040923359158665264768835112521593123093944581680794725067827348246082367805809585431961743689577953705523308137002884394714691606835948379855486060905580896148445552297736131780269280852508130230954606579912355603776440926337822533621349321734512139633887523101900187529177898757770384125192077673592540930166402809926183062947589248045775575252971417896758254731067496495798786330501194789972215382050869156018408323414599595501099484257049392291380051197351449039080916126737289326388022223216995934944168044979735201068556631451195839533079421648132349700835265371953355045197044338258445417320084855070236624586997386621257923252322860972034003868471568336766410715009354691271921708809020137432306128702349511633574418619508101948652131457706768977633771048591415506408803403897928430800033163486909518995114232046522346708887253931245354316319946807669921158640025033960627078689426287323599667368005452699062418440366115093307171808256501263547840421473061427856104589253335897509451926656595854751516835745712903346512651765231229005897512365354475303165214309294361629800873993909437098672461716836529844648325336975177062230937296673487801300689609886165165311370100260066978249055766482616978336533339796671353731969215472604057008927683638345077771652473165036196082749264743152989334876486147283710930144740891081522334695250177824460318017760580819993192381974213758679695266663054208704037559207519166728096561612083675222935849005934646851619914014434262773941810385402242626461954068854106838004765483825568697654914145744919730103964290464595757913913228420940800032757249473451828267424020196949237861666749651201087039213946581117401584390110454699131957495434112025001491178290907907427213263352038964268912777476859805840616257266930916047783955033518251317068430324214497270987748940753815834297301524586934346127589944504021489920297910686688378403505539604149694734443616363952974799334139256816164360113727023478964736033312608777295485007533957845801564063079821085084475416375575847915939622062671328614174755476593991181251828529632353321253189837474916619477062062286068900052314319597327710249276040167384889178706249718715196759939862705169608344728053725792541332653703610617298693270239270885529013810600893386417953537328162299254247536760319479057278588711625237882031709020908828114700722728989878919722956528184444798386650714730697630710715825762140666924833488640256196452172157053113219039200156616043385268935789042052328011681342386180137339828929845051600577604860777830119867715937509647113488835049670161431401608173772548020347949848230846663457232996280847501267710352563320695565364447710365818434920031814847785353397711311267399009176526602761855674333383562794344239421455823519337174696662911328542440908838211228591086238464209503953508645302614364961749838657160087105842181342706048349129226500912237917737109203099930499630418836845043987886381448857613566556271491762748675468223504513867463177697874235636038945040471743202472153034375409299773289692942031105697636464010702883616867480601706116100604818491505222101538282179577872862782642460875336419776492762938720853736903836640496018275979270283459106281912907563629090244649616948368748269342903090829983092625357959077803975754389498600351052403274194133012313851723062719168563067927512264210512367891634763583188965261766676256676884084957347681277130721219982812797322289509006667903077945526670173144853372600940700359762775715961101560465716247036827909439604436511358379815000545377361820377026342039356200710608406394168928055808416354218593634062275326829905637441951320903488180435419443544790595694036585625014997664767208434897172360465485110716615720345087211047755046568246122232930841838155123593261385542649059643737169451772971398816113206043987787868341251130162248284730211759610190307407839122178260217404197157230506284005326606942199424623276571664826125356814107680902390084717244640149330328979599448259441867188408203563770062593726224962136179422724809410529633068793359396187893804334948982396130011882167345858662977194621943843451850283826910887380179313311668841335267617121670585953202766436183885643843143219426694656225836143951671971834909951806087618226219185461047307427386123169623617345167296244080126362963183095243641564975694242975378240163883464212909607401743866376279880670586484551144469935699299246977349885182960355961802886958397740130096094601425597819200718221935602082306906309768331641142197186670693511221949714809628815039143946349755158593668596644227039361052863908177018675417194204427027850172785057444693733877603207049861095198091044586087955239085617727827721122484065196554543412410213633388899808136552500290793395577617104521380729168689887462170765538424010933395963463047596923165475281661196899155188505336397962610108659429958132182909709270369799711454290522725910970846621106226460858371428694335864595351418189393182063732080433639644829360397252565411301985483860722010281712607990493185026752026923844369534953116519569005373435399962662363492634323344462347968368901298905388602792786231081604891917981195249610536016372642573377059575435485872905114543859067568121290638730845390538416354373719932885630871218277897115428981986522507961622796167440647246909063610960315894749470811395758983264239970858804180469289215118876478101528905607089020267467835204990279976743239816341980554203256666580943230123153270758115643206120216364146996258870494568301759993469516142582192775899555420472255719381190008323435644120553134805499302121499530115511835034132286156260760488287351733649580571546675294900825624898781509022626472209110303761366204531629944640950654455112962763911625095811863838909100906715336188766999642790569106105626391800756437990473241858823092916761389441600821265590779963091329571521106226084840596700014479018423710159801990296020294990798820433381921586496273753357484531917721714204747299091391110969930902276919437491315612846454670653573006207204008283179247773032148595894313223080109918473335418262490433053650210019392148584393819236118900175892178822182432624205409509756629903843632239178433414005383437765005114976694434131580933936065527821536686259599336222628507122789546269746866321761531724097628268804528612374440683724774414456442340031297986025478643773658870903299544574026141577031211167619608443486085570053067110246903981773411902043883438625588327343874074560415759601775247770893787924139866048717123290184087700682684032594823468292839348663763898187504728708257963109907455683365375690924704073235028313962924368707038437004004014709650642102930163049969481350090121214166713809119361268201791927176381441389669434847659059125082489490775489318417493969936614445950451441827670123180709451898575942859855453690596974439647124024240302013801731861426378061993248706650348122506695731549512393196120211658184383279986284344307508236400694286291757272013977075877536579829500997707424129423275135601451703420320901839810664065936414983247474322418407683458171374874071508763503720088018800628593627708476002699116778174539449690079306054744123315693932025295325646288829624410572735471410304299152582034144203300107254723914981471319147201393055827635298578150811093827418074537288398395604943062652810857381482260767099685809906776644510073417724959306801200672464531187548049498364398829881259375818858679568751571069721308384578646577175320704224308076130974514526837524938893700098862199681157172319490918181123368962350592649396463167205003347778434123224443945150548371063107577370776818449330883343150049394771985681470278480835862432902361262763308847311119456107564533452236303203223223740769239716360915153072262750761090551187738119735376193259412785345035842735424268454907073135451029853103596971378792571465811866102476632160389824200908374608930636281632690317325008768286467107314028506925656246130338723891914203131388367025696635268141373243389399699035764986021605146694856073294045012108230939234791674327296894232173351017932433367901702189624136475523891983367004933363227579621519918273278746060908006290402531414290153915611992634924027848780054096929684499977430687983582477657614765521365120946999329548108206756994097467612073079047810487284246971663614296406574399132700255944913900867027839847201523747364734945657043631197893766613832768623609377960643577567584490022710729401429866027755726405417812402512534984193299733366356977501247460172393118926719654942229738066788449286906509395892276400358117575061316762046341972212854812263188294417645989561661134464629071863174412568180760076827708352161836447158283298053237518810815007425873816017846304121419217845454141857703785994723656339905011855028822345176060112789773557147168117756168321329512372175042036497827619832940832615223579688041816945448162719232959076533799801488693498921462941808432702287022163503672979280662484373910451035039222376883700223585789634995689014836684972879554539094423729210036770318047840303615010909639683304988277041347536625180411295206413082071358585829200230597080769216466272901591439359630286184815653831606589277641242834068517592026200955993386004431869818113110545633404521105371908044743654209515444438954802144984842722128328132293917707187915827258797634368936348513037836816050752001439772564656635085893164737610077129813717830461905270776496896513776513006065555166827257070234482511855171224145001863006844839799421144481511753207721431431084093257528805390183371517694749769892346721163969060775391263580008838332997166756768186092573214407744511356278918287501324979925179305961240332420548351183499004770458366251171374309906068301901948210079051229865219481642679797272374911801028316901226811057976043476040545693148573261116850031009037181517747808589431437263193071520644963097315208190672523090725079857743284911566897297870905759172411792725014721420431217204158411114407945414788076109998485677388821589836835193194898022477462898793090587903747561372711393391553033742653942493947389661257787433305031111653049412168268996315732780046983185505793345302636356969757114363464308466425421048237526470275158856258275641853860673857056727244016804812561896984568786706735605047619582203705723735725782756374082572444736722274061982117164636469822840871346593770093365065614967039239106477357673402052984215932592935401414446161670174994619420143224135431056446177585168249438964818244481009940419566771229075950332896266141016643183227150992034993676031731142324392094219231945026678477950746696126890369188131897154932194163800245224481608609266444715140023067722002619218807021022697732646866431190198301596739245621062180130818505527241597810150925328259961087444208181488699726214931896470787114539373257828042217533106490270283311865116016551990212746233919278468465602030233587858053382709573292366252323156098053232919658442242241814323208102210555915752867469904069508569702832090435280398430361849441565234092226241500581937497172868096328913916033965960836169545154340208895396446686973047699722541514888845054213064036490106670709606516951517071046479327125611780413493684748997221983034101071290649284415930137763326380813887697575464256295914005272915861453674124133317272070196538886084382128316519698710978323240077381723628975767850207556494539664353968177027966317205924010695353313950744900501516454657366685676377814405267368162585196879918154540722715513646932786516315700939345851249943974852330645882195165583340023787234918157886209609426715136177564087018894986686315161429308686084830248160913206290165293239403590805654170153814598568441606396175268112296749320761088486475022968068702405807246086094406955811533338093450058426178077428070515217587432324083337598525236907411742791711072909702690781289347458805469179598126552341749584493691523531336030096255483121613386016112292914527442648650140502792605803359724838580495212914618261872005312025022734958545592275122366890350507887897485079069303191864083361941224559143216168677689615057238294473267211639467335943456465069142969771761211921309982829567550966616400348402186106139947395886556688103806212166686424481504614018623748286430080235287086312262493410747678605906451201177759665526473136859353459176690545854221566657938326104261107254930629397536799381452243839190617925855043356525862704928528464429500360420837141805679997529682376138339438165887399513139877120044341306701977195433361057429461920073187227382740707596878999807974077142341987999784026794691770784824338693863618558307185163243116946098452581419285521593620580613698703363019609150285296903238554034529607080658554131442747363500538789566549399153633206004152371560860463937630249238527745539434762582322169780444152374825662937223412606164298933090233772723847259677564491243335799984831049674394977425354539099379605789810987130268337476814511536366699219297633309285664788348123319115749092748759819477860670535850773436240231668695405514781609943960166179949148942956542046529315438538333221664896637260684918210271490955873535583457252023579402311971740674026393767406630182666554528644277427809648961836325238491885363396413463722831190353249424578661487148338131097542111871821784807224322529495578008336171580295985814771223789920287829285169041973028006757154743343930029174942870551487699065600457000370411404330536606217958170375922233387022165689924834992001810242382420159508754290496597676063392748852759278744315971612018027100821465593070809482371918604320441465778732137575312294875077832901452933523777500815620393047920856748134821239309327143640486228108760704814998583855905574202820228923922265030391482836073508084048809960797486240604587058536533619658739796969023552376929760002566353481465288628442376378964904759071343195550672299202031846452737780457536212027899693185533051556021340282550967237702440301156610536044007856213679878730109820596980231583831044933042447477149010109319337880295585233760307749465947092841751733086984962003726394859057173685509080267714521488213903684362509425887773246161508213206089567193400803013604605431068424485436260242264205917682404698593031288293752067266090687474813385880211337642893834056301867945810844756070215020998038331562731652842469025489401030830220884604176585078109127500306834982188240278216901016869126598416320433654451062984867746937146227662515176252751074995782431734811678415709922409286576552369463992296643568176957031461618804733982096466274602968396971733573672097027972065704862305413970951794422728853444590480302972089828066941111090992034378501446823283591815047091080371949442574531918680052095079797926595259803355792013036223677183584491776282694085588087466614309991898834886625978410204416833742012436634120171060946007759762178676039601307769952772824797218919218370749876131057257308837062967901473321014107076545639606730570049747818676528005094060208763016336586794789018957966539401046141363651601304025665815642851707821394891762646175404147192208524775833052739470308322421959458936145363860828686459692670781113152459696152436449458470779938003224011889559573165635985127963559713165608571342243375042591384072707232791893506996139943488444703329530596843825912256907779505423126120299214926648956164992889811438497934076410505933714238102137508936516104678146570008449781201189984995718986780335793148857938933199585718922817056317208530458253707287876425227928058558281415574266750370046014497857545459444702979189426886767362521700376170001980809645681610378235490435180906415149017896152141091101900819627839182083771047411169925101325017604922464959655385522756436180106706616246506693401362494243333813519412763612541202522784811646045146862943643260591738109651123359298731024611886312947540580458110822098704364161844809682514230230228661565688600851448317008621343010463461976477817684040031879354162360956406094726138542098202808071757499645320449140201506312683471931802197639390516717812824112709470048712594266869122395190322955181600020788841284435132927196073198876034759545324823997135333254009502261484393451853432532060143867596557135235226982498460794668744219310641186979862534464270053222381879832805899375480086446628128769305007505910069616113600430306595626135308772968775713964922776747926130562918402281476882634369781765875645863574938021771166737608726581529091361226539992164067464671346065950796163335382440479277635811550935921415242840790054358320792617804080976871725360828388510966305914638860787507623319674835503104441993941895772748712714055240773081680538956601582320506987459287642020117780682005287064586966286723732592692007339569933659512991453808534068734159905148649334881532822658673578783353432365376643155067248970607699190881623545684118579706696287136923206268399492910601865627891342180441569945916473041399999439447883475050263063968191369300850307632453305749316397981651559847581285613229127292319548059184180102468805693554484032635750892033255161264637184033408303469841337018372428390805720622598104344299407335537362352710220508956148267818742929527597883909127393972649947539190780171488933128885194257113190172202950771403827818156675096936244756718751174199720503224559445166555839764393914148959707313855200112165964572368812653520410510616086733601032393420953418604146375711918193977445671110166071187448335638294774633007077426077962564437275448828998552789893283194597229478527727201894577482107872063769524427016723054913665936496125372442001603102299429803974756643989493222292603218459462550108779578904204919251342723083154048463104709468898592442663567674716804247939235334982740403503210686113691669627905295841767929577849840307150902312420815284845937672034819630442681542408364636975368422111007352875860711161033770198365301017821303838536611873739077270413836418612262542017810595480722906006708474237983668252366328979662495055976924774211453591520482741309742193714215470702140385221621348897576907136092492856241711214438120175640617815624817344504509989485072962335750846654847768271788602139813820933017730527135075030263055597700662704893788809081983224810445858915174240283767512129988734224803011833172073757451143708400678253262801732740242506142744197132499221525474802160937140833545091275494061209330456450198507730977857153679497732614399011272907760455302147874053967821742257578569843141656259482848221179217962784720577459900874510571808433304113404414839203772113305255041112201219014715587658555260481108873850731363265957538458942473146793748902401066840297403245883838953802704006897248534404244499780277089323175529544406033778206644344570342293151253559086261060718931355145523104010099653420839294575755219853803326087864856817140380320184383935275511083329197548772399637726981900430854441171981194015162748668920207091595125054144818552606083784728565607509615900948132636001721754830093574373159070834680096568438082032951902735187609804973151157075875369383353883112306199833611666359000293105474280613487772014186490209065858294462075507512419809824988183604896527968249566763213407155188957503974318676059758328225376489580413592387288576040058439462899878305826831870741009062329155114550676296631521449496059133529466046273390995087621973473170614026306156472324222148685428811601812477336628797591611235137134465723391084065911349667175648186960950500129556399673282690595960085884876107844316311038864069076674723758134245749408336534226677811608433524372357883030469848920324072757965891385508375848930861076251535208311971930992156908480128485911609891071190767967755567719567307044453964637756476447133692328880029952972537042456044535135534208848000723230859688995358722382945031647577839024161306650900220942139582447936577547308240646434018636080452759140000245291624168849234993813832496970542261387022837167351583368008653221263233331568636900085467739492785021653380720578243622012564583290281782731691778902782262498424143671372245317678385356244068974728211784984547106306945391359124244558808192971899549240634679995667990057943126866079928800817662773921824876954908682413210839645162058083551719503056822671847177465543513747442626967745082947706267069987947114890691761437116260498056925775887074536244167856300007600620320261454036850850729597510720808899391176907173943596786443779831323515384380291015812595114784446062716969183824696044060726419570071912973746040595828331184169299818771022201142420506234137483320804906848913553323137438585589773436763499443831756771791720418190261675267739719056361930248925693655804481679905733709973792337111906912244304106964442065821396716693560521584597460352972317160812195372897451274562422411787093767063761062492908192748114791449027734854959297381447600196896376992122838026927240441698787831022086245692208784117610158296775951382512270427087516595431707278235732992040579051124588009146737966845463059383236324921122338240034109977872388615568450549268791621855927979487572548586118769848802449843238103302629654169658484103579946347973868195773937558417671892504970604125284758129624110853641396348477801031771941460017053938418691293518766624339837384724391767376197085553609188300582916420387330054345553169190950943397933847256580999044765337571251895457603457677564019591529621618562943015165491526548053892973256052951196742109913068807728900918766608416756879818350430298069673309975393182252456287929796463604258116539843169650074091762964522053212256366296254800334405291292839553569319522258617637046247069621065082141512188556251738190863413120267225865758462649812987701715396907036576466615732747323982160743599627176461955016422416664552359109947290053798929717650243634538150277530078777815728212185914083108400699420578143341600322969559862166946979350117400803056009586762040753891255609188883402062398564555465255888196472595556214579638365656809843667029871856120795203860301614849940578740953913819349217536230387311319424855952605936383644299922917019743488353267493330662376503517154572018415730133074652931113568404314969950654176413228122951299701929214038407560747502392420875150571313354066148824159378625981174690379011834815034437105792700161334919830530476806973856267930886091705372432922633633993879152120425946739254843586197601240414820866130476498842286786982750872440125310200608983758173260284369999907404333734741547419150481545586662195911826424769306049156798641603674208341401411907933740747773051426126889140966085517225977016206316266654844136131020793789966621843923196852857294123001358900390750531857458233300750758157054442072735203229365493664012591758657284251855818710819219059625043432794032753449947537167500870059819035436428540373353024004577745564573331759997286837180463561612814107785664376365391946929081882000669534300939801581305360921412148002518694712881679877864274448044035546612583910411349395514053509476158791742765091976131858103460824143279628167913289649736725683229279700441966829839260603296395833617743778430372360120415024043273881915003372745126296667340374256474145339371267733110503155424441323989224193761490648886723202786424132583139188895875154156475004150726817240423459400274189073833140624265154856639304578448228547207500887853357690570123917841210865379056618649690068341562399741702676075365723078970519179056853751555128685133327410304335562153028360550100493685342974386042499349062131408216195427130538046411238657943476038042091496941331636644995446983275389265182439097683473560411550665330119175302954688343398382840618353718884386116455293255706428903159758002617072365080652020060747132980204478479095743083807716294111127047033123668259818135389677277187259143222330736548903067510183331162898556602415590206711032588060608951192592127079929444998022262071516980276207935331375779803763596190659589714736946635674175361396276116114968703979790924248085662826969630724919986717005513730665926554541850965723919512726944954768455212956964408261845710078260239914424059069216283339285264569868639459874113451397126429766591990459226419250463576786798162340312542943696490317214502355302504671090411273850782529101010732704501977557659406800295462168357166990531222591091748655748538398850272287208327778886458419669305487002571919322133222118719776077770908569150788288816767592622087579682034340614641815329044708920285049429699515392432931843746851222196040017409471897737671950818757157384218067529474542596576940801965818153457120688819693385175765147334550200782817779504902166002857233059693860862889532843271005537385458594705090735381660848828218799496321796633046452053565910657651580080062224960692320717890261804407547092162628054512272570040530714675820958228652523961080823913980499589305402147612667362394208146525843393044773995299150305915260882158218078482477240879888320530297244492948364641458376658824696832080335014088454333724071563753597736036314419903405134887303257673049792667440701281826708179721573268287514843225208149530614621309865491023715899437850593077405687522263660855494917081735807279156413051757189919636719045672041573541067618684690738627335785093024724688873778933908811478006243051450947981649087107722219667299757077178415407779388183269416124338906002844649925624305606311126783200514375760035886273525788403261589086114181648959501945520677461459735042279699769973154249329234312620296037757789626635199028276740219221285588783359542101231736398871891455202595978634579308399333471161422140443545835615321808020831979779145198801717253685682290926301510976288039936602155566907325178598310833282470465391022614694149934462825801303371428235853248831021911977757179304043920941207321656020963747539569025224304899610035140605142679396752019628831430275109670350139681074556455164112446778309385305759140351731358206253406207507633897379260762855740027034492253851254236272128746477495300939242105365044021681195836418409637366943242390422046726439766729340579269520845424800122144030745838500253142756378063681290059980393378575251134046313019860465812863207478072164221199065499173618398992425386774705482729751985830736270387280971485402216227886677352289873787767214316500827469911527376287252868134751787496199961877514539328370820181990851601414899794514088702932982614200280139389270055757186236314365479636020402140370562364737193626968187959111336514557170682999289720504510006514194599143219334827928373804864360834864031962831376655806591173751560892004759018576848495177165442002042280029172038121114885245322216295368371390469659059144162093745227354230185260384245713736273265704839640449787188162155165398070059535563019187117658407898382722386248226077133304072473533725758176895293010117118867376528049233028099192469995568868303052169698356070058853414490886201976262122780805894234011848084284895353388007854511967811823846051175213661930675952850484760779100956932853107089091242805993928424690483022843329078048644172293355436293458479750093085672513599378070946108823407739318610665473650511546138243601279339706312022810762975898869938494327060317392935464709778871345766764308335992902869750805718812727531491001380304530445444352825925318268311792523671056388496790607047132342706786023120206672446531655264673863999093018216881235971945644322587352857227922959148794369986894584952971637879626325208573257045374407989889639148370241327394704326728058847542810208442193637290649905984137376248744076168972004649950605716198549476829376232336665317880380791864579155392245995291789960452688404994457763380805986459779068120618325449232740837494093964123307187386633536409890970088574675200437965087372321327284154633205602212310012874913335085485643388151158471574563968131660043390210629486536056397544072223135599712072680871421071806571424192317097565519839368671933794852401456225132672990606151829569027018250259370072318035902068368657495324270200089875016337681983887212055841331825462860169950653477803686434040043801935306807010442392128704087215444485637751368990733320025635118305075545399454955791006662341435902548508549619135571378163765373921677333815806676623259583261648217780838982857115684761760804785564154813624986629701631442058802994963086722744630112345226517442062571745929490728079988495399986651012915378211697728160424794367052508245518578004064208162458807514228201173469753639752456401506098431850663383875278576879236682947226026995282435404856725928370106621983834345443002682108561071965866853631586093097332828077964388268976669992664725310128532582837529358667357220970457430825355253201007102406196137260871286213500004854220556064107458281806770916133727193732763630054013162177020791957854206505259133649573893188662761244456151498426823802367880288007523201262672012175964901831397975774509824642148706192656379049757919427015980013112998908598153234118582908246821989881589824677565470244353579155109245748793915191550711180287068524744857670975299519803284194912873274385366644464332203300565235191369793185949487549701120200375212734035836807092870534364949160493428345786052070549937800223047800888835235663254166596711021778846275023814371617665291878244499604736663983520755759938666221859227728244821870670288146786970488053856451071282613307438001251853492532607246283686665365109413720329288091336491465317757479046051547870153382618776970892541272361279231239193680607882352609673231976447984486447961365883231700250158376166090627560043596110108908033370161785478722080786850640017285010303651950704843412602746920194238292495772373864256187338761467854568970805369114483448595194233931652861161147193709831556871735755320971679172428345771013846238616522955153859959528651752932609883424320195624046070159827661381919464543563829337134037679315461973827364083958486832088147523523289200643384453551600574958364733520330545763171214438297354135314013093884688350672617526544572850908129553577884036778699663873730081463701455375617214438967458276370536697588457418919842062523549086379434270552277322048870299123894444133758158607187729648544992904989606073005634515289892233298664563978529040770333135786036541054301598384854870944110896160302498605542476999127339246495086482913878314789976890616971684095014122915462179207760817855231031275467009761904211348294504028162015466292693233129612113692401341741363206590401171821465939074825626662990107578478314587985890530353707806142238633263589755876537017678443887611592936214731730517791649145215578081988382707157436727778277173648570335615560001574582560931994298617813183488248927077951956500191335370207528578091152624115178726954574824468322338648283356343715574804105143196785062653864463521888087565435585673724793667290420487220161233481469520697677563364260043632755583675604435799474934556183233366619494955663222717590653886678425198522665000888593411637814211264748992077642163995783583731633001783783092276869066983840320870135283400523032403774198466317262088931525677418503071113135818562635700341083802844314509664679521978435796004263494475574605338566169892491850699947849992050947050522890421543125216268593603919495545767307894134917183267014813571564785067909446176951943144339079807063143098450968023782380442512499956815752670871560946877823284236664436090749517155004002560530185466026139691773280635739339003320995419028574731816782639790737026907388061593184438032998937063769891391559423982823493288998214061186570582330040624244749866989526501414609905055092985966744772363564012896468855871887632049815130398700675468216104914245017159606144826984683063265854570564205181890511463136976477342242148368659856071142518970608462627756938126206095122921345720801646870658862744962693163607676984781451614742329637356635987495068050473630026790367840970374256183049955901180491686823411402518617750138604722014401157058785029389880290378558344244094775674657259495432846057719154725432545277933642998235294218427911508626651156772973848260806294129277338226069386079441551791744681727580869523591555898650310249296169666997622937601164640935089213606326489205726021561360157101202205150159818111978877442778942019196555503741588624370551146282862675197595885598950104627444429060144880669298264874720451197804258701530785046984573313818989225508683166752686523903479790596860229769467019894003230831557296722225100994102615090771535193872654932052595168008045949745776079938296047779952880887684284204481624192802859944993905265685367376733575754846142706387385254271196686620267022502180178099916375348716893367767579948543651096292794957477748919400040706251468342101653492709020518131196658084939329964684350512712201264702868080221974617158713521513292830335478468580836536831814654387161192714981058013478362787531429314434686750193126980554157406511062728468930134980921986750034737180049592852053914635602724542205924172808079978277339299529505933648100364118133244138304170406215699271429024685615645955587639659187866676889162706813311391772435487294539051273902189466133264818573115846292689670240385689540577043335174171570880445359753729679108541756766767760002595538828937362816591200163110797095017234742470332015499646584625955440543257661567352938559426009618231593028843809466010502939344328493791112606941088651958181503457387610022562649879872035048011423507916303304146648136674334411268107928083943869827806501058415658166185212828256866547487429406195748601344571064146961044137049206756300655193378531334918962593273053732291189560374286541074114483015311752037208002091163845654236304673987748785515564962210226536268279672056507379973749740311629823049187539722793483566209213995548391320585147565431693563955918740672816678119521841460765545667919881382817619312849467923181673373224660726044398249701430454553691458098901223551511677524389751908041404076403480693549245802370112568402288551142455161947944557741247366364639173171584911386285263756629502336810338748439313158694309290169733078512356305365675941061952085413156966028569387406830506380040005671585179178791899820934717117633020105492535659889377335670742842352860533003070792873834221827539518453169757823396372552786919212100062266243220425396169052646209975973542243161157517106997018036615548102032017779302828397969109798475503265942849771166062308572695253592462984322383650016752750562663693021992178733304221633127644598715190159265904015227455189916503897451042759807419837965633363279082612257687132787516522144734043460581569876536460718309256185137782587844986012300011090813078028587711237568805821350948175610864061378095801934169133268755954803943175231344780308061415502093514455674311647506646120657106379910439501474639824689396740723557163541365562557078291629738556794718453443536048405176260323258325842445482634659647222512147195102124934406166110594565582283177413345315667378156446930192624423029052547332916205516705396749937662111262882618562677804414219045638262443518396667760547854346766496292495131030602791347072968831423126965013888476718564739278734976488264294880646196025748570817261703264355463882970216286160368644901029752022658379429987034330024787954161743462729002547406334397963420722397834542890558016403602535956351208624451990631626058226899655880646764058058241759411866073255368025838467799236477191445171267128596025486934778043561037733277645213531050373990304512291368777068555069003540691167638953181494838775308815372008662109720372975794216870906748300833508964856712852414806409339813347283792534469496763269044264123790002982191720475809476679776895760308461307503655442483747223828388760412922498775142266613982475830513705650292273649877422650417892357182695087865916653797370645798359677937498014897542972599737075533956135650894692596782642500933071087239784014585683094431177694067843319882406603777731592064794502542368283078469143015364048096083736335327985678965597508210351857189630074066923446933730305843321684361017424451103008523852544136752198006918075551155866613847571116952879889999913568439830135085692069607316009429433184155676998023384447023546467041079384259721249364305727699832478805463651616496008492333140860260531047982969716587758307812818858055492939614597773688253965268534482017311922890692266918306364768373961290325199765155412192901008388030496566462301925839430998789907048353703846039658451857566605664987752120461627471957609783644507996854856446397780511341794030262701345399065302867459824814962838093521115228722370281384725252310564866908206606516932718007578988168821198196077990470347994051523058024937374768898802767406165485066537607325560275668882018560947804003473496880549236258040447636000489999541862341700247832296350320163450490871243145757062385624509771469508993275512857673001203931296632395429204685342810889162397354509460706185434178807417824172466707567828404695368122430634144454955437963975468866751237540576989842579375980127686164290726983054831565405111782275469691953643676130947169070016940322939383572238352363064741247003112701618687064791106898345172864118091238658654668246242237735248620694238144237725918903074608075041015486409232756876572737430219077865351046563559587567903642512067527139190177732577957892516430174368414600390405984055812216752016984408818936234690260227120551762586423147736879615400067999621694016719587765364165155379444708174044964258115757641589633116743745538949104002416196244116875093635518903337566318364613018414066118595447826518814163462860354764484348628527595186033128617578120411282014897716088531253083479776735252239921065546762008733297261707167517207070999672872271581152512501665355798265040308545078494843120184376473412683824166298431080783094972442647382702303324765415043120153756377687657653003551655467758959735407872328348939753700651650429124356868303318639554880584070358666957086656262568296546140163573630769009085554024680794040331980980542597679373259548675860461363510363554690906144727982078729622495429793698671778228400079005167868176774246168980741849093952836924785941016006990595587219721384602718053600880386808745501847000675903365664638375325429696755148026719524816240285351947831973359920530636072055179862672774308300252276574509685416684136744239860179565976117894576951061726029067112850404098423203944459465968965639025113282093316020335219570683105359582875709042904249826950845790993782047172525612482847219439956474140153351146047267838376720926848193632481086025046883491725167536255717890588300183076047937773161013766039612078883599443688357711243613105419558290641827352078890035434263802569835603555757810304558785712614965698334683565304524417621772903559128856758034011626080459360537997882163816726407257246339770745419000533650531660049563191909196204132367566522291740369302403608906311455359967281019225091460431896113182076439155274045546772772016987422806334391934640789646953575973660800232367513528145756482839856223751460459858798208655101074138584312932871356600869910180021153888112887119315719424200980850856307861630107235482839254637978732070102289078285244751114770511558801829752489926697042053778422100690363999377759332703080863646866987264480374158365689143248977793460059416248269192056942565252699841931099149045691669342661102042212535454073322490988766898748166762384266276939356116343815366735968119284444563091871786863952613186274034801465695628871293508708311918502690684231370890896922311097604307143332780226259710668467583659715770659408957853828237093407377831596434554685907974566233625913645455772353003901105766031347934510990350700306011801235230000190593786972703226747757823776491640879675804205875395982979465422006446091290276437279411183139039068583789286425268170813290856280865514964268825583181287536504808147915195483094615029047531339448126611207519481706053703548959156590389282252628821455145760478645208374584218267193472029534117051147070927170612265578003286480607363273818855219039206575065949522199707185390291684176688108714062414593327971177753281024731889683476404009505249071802161042878605818443133318618111503959519667490169622348265743486096247042885125440468911210237518355173257200465248765124898252416498907007102325872496105049205141010789511448185359603603964038850543708066143305524821727280271441785936650467586318175223091800209949200565466129219705822942121643025306576734939104849376816699232966928246820083417498276166891211888380097281701603926843363818601467835533108191530862081237043581242319681341513154254154436050070795380520231890502799680792430533314850887036613944575754217548449448093974854293692396296792144614149616266914617437855806727881690912852367103293294139870241515985744259987655356992760625865929431803938663513162884427198765937334890346644417055745937402663589441678653460519840583915087408545788779024289497786311706637191388020760894900529171466335945933896246664964693872504431972121638404836432176413573929195576162245962086637875221798603851756775815157119202072195022751726054076471545910421162827775745051826964017833899032954430476845004030723228143717240274341246129784205841982973736200306111465073248922246267579876686025277837982666414086415057875981850925907191015512734038174347163610166362423469879920480213707009046405560385456110388102876100279483794006429720893253047343103412558507037604221769648897893705900649744521409805632902605179414669377412988038806433957086458422900659675533220285661748148247255443221216150279395319028856262190479789712731896832262750590912606805724903955393779143763781142176800042823426604348664383039896412664817594120447185468414792422680667316916002992868863030970727437764782684024993133509074310937261845479338648104905994574436295348870001874071486952470209738573381405898713283829484966754944972110118791182986684185822429614921691158909307665352153511280755062376397018040143822832519169436958043968815123473957740928522274223342679116433473711048050101761933115691296953901849400909121777751082260002624391151997331599032068303117202320956193515886562763996902972023025005511190760520653859739647112633208306097658259633690215137237550588801356994314346077289364389203350429961643642116275716212902831581985611663949101117680383354772104247389131908370961784301613991928540954778919778250237212391096159588524833095710684129641607516037835005653700580895603890522316999613376186345239481954789125456764679595910847972475739036179375218375637517731364264626193105505157163828048522075016210148122574018618300097179551656219477077482520900408396055513827027298425859811174528722155292701825859526909914968528731505244880883660645074209853691859871064713476485437776798643394318116471179353226053715834264373466666733725113311984712958955485036980877868890995101445752297270689069952013742195894769778833253181613036116061610481724051323681546544203381619509182581226024575369730508605092268209141932657693787637006412013300845709207131051190955436810237554348045455559485365769648335659168494173549677522034572421853831483185687155485679852991096983803105711811933109200471411315087209592961035560508571693671059850599146445384456747450099101846662789962281186360772700816201236803310640966330140445590837492811022912270688631178485018337723467149009673705895920254280046343586038131278888350779576165890647763457703916888379103006024953008818329744467881858809262217848540865033331665941950619183343739686374352557436196392662052363359057452742009489967999688161889399431450500206349763153314194591886677510823654832278539869510618899192005884544335992189247297322673600546047497569868135915670051631730668451808645336010583393701860986015707753481689444106696963958667844766382912639893278195518790914305275319739674184176758966623835685376693696987399418713516691041037533324822984262628451300187314032290143579449529167151712638317903287860984051374518079042483975964777975245558592370164174577508958305324979208851922099101262012567137327776049629606103788156920219487183575629822306021232398053205948234529345893929371982174583615015013287483483933661515740118668758410787547766969970528575708689967802820135690943891714324838931244155290737988169236861495885400215993759636350853671273049128747368823916391341089021259700028676518055762941240535461471891098472338514376090844146581237608347104742100786135882804345899832968815628066975733871985898866462491162914608728111214146430246357380974465161060216480937618085949599013106879229381825463936011092417211893138108610031204983703604680311611810352710477264781184046732193053052321779867197134858109995821522798742490106340930952359429794085167182625291877027803110051301245859727945485193829190203273879699464713446097875620110690207677258944812781620511090440409725429717815178506209768696866738710926656379431623488769777814446556843359343336726627887569595018440027896042377983915525868288662529629945678127323370751046305223164199435005588523021063331744661702486535061080347579979935937770765394412311661118270856696452692517814580677034810228730158006334269601517478658794163037792963464230745711600857448720959034605030201833431183557136155593382708954095653626741064949720719818801853702212076804719201535540237115624324828565768023436760237937549665625096499684248155345851508209956467555144941660152276363727670143577155746162940600297937775611377142489572714597703201865070990584805583858727546439719515633252239836497997344888981983038445688048458859443681699635732688938603491305701967186200500244090849782565132217988361779940889956470119108139262083272598644772237172158395150170436194762028333629877110145232742157232253199163917037727296646828417319054278746640868745946936722641534422536305166675811683661825765401394182957141383496710735470855253308163682117873176338870526267195419461987301539875342967969700685035186396253543280952098387788495680315831658463452560713918674758806988359331275883352497993789570682132603687043383076503946412921880932665818541561092907255956627028253466153617343662003450782565904287929321782501424092534098211800430404825340062370110791947997767854130064341612018517900720357298641120671039121955157739342146357094426691430252138379653335391820593422405150772245620248741214887686771611958498350858053037925438298619312530856283407860962821642496168364687063648592022513881432754768061603103208482334547475484668696754037713252818027668059813621989031792523379012636236593888824289492943403957345392934138411225582353779223271648134419058300536944660210685532670550344427924197157144512740248855543038029941952208978423105957451631713487104856111747255643254020767126656417539020526266589495536730180345452561658388970544395576081185821737980835288387009561134916002024257885715189716618262111656353379809287550296170055265148407768842865775203410115509208581237938234296329048549351002920573737029080582841779648321270407829593360088401907445026575447335176673393824534263305959922415821782323834700515630373742488289365866946506852503047245256295608992951944308276152980291508857916803382971764896064919082960437816869661030446436297054505047110695871370497550937380478180542310619103496977553599878496357198831627341898244355743813105475324608425412092674574687108571227557084154455896359093760814248600308907004740216670625560322511052258133952642978078183366112721909540624483451470499087014414879044023100481346494747680897117506240951819870266211774522337272569190970793906693270995136735196463705741852658911303062751892278212753861064986173506921231518507162550433105531088343155799205272938134016996763387661095250288719620008710334347622383249333934518170694317588049938619624675625171346386971454237282509983626013437256859457109276364158984316048547432297863492870663992386612558292856652986103333765882983316017979833078673807358360244677227754749686388247635354969435933018084284083771224327708335644604639761408790420890453399829914936478714334408639998991661245636490277127400912116108239873723903724060630079780324779930725899290223004321632092800285489772756286174809677743258793933993592775148652817877254861917002087444791098267040875292417421525836680150062261595208027086244833027868876929499570879728154763763138118400427205846568386381036050651920639278255016083286777667455683567134847817800241292908148352396620780918161033968380466011249124218568591474341702657553803833666685052744773152379504814172563255779143438886134025298064650622136392137851478797911535707554232094414527170959219963073432396060181985586121134008160052824902115218473036427237689040110739806262605725126886659583260780441615087274487284105445136969424007154934570449330989042573260793015108918250401785899444013712079549091109465025642082661338917888852854994299711227943069161845121203025677603871186789356372481911145251589660482135701948261651421697317970155125401994820340238798845838821302221910559769782485580345576181013470283843130564395135319132839715165119814110830870153263862896539756073756429907246803258388354402517498123312315759602030225116394429392236859842666938573128102767701158293716902526124436250643430003132838857812183264872589095213797292163244721866113695255015210999031374864467181697081463622537807885985575238099105852911935856736098710889436898963436719324844064709814732488942946034594284142459955044957390277884379775403593195095194470645562415345260779590852772815090059900045733828841429059452817957806776216552156245937309000642660888523454163499184268621593034448034601343370166632224692204348651448978144431690783533194614605134652435195732651115733585183869612879424499516303748985994506182888165778608756150038878314984847902203770533755840407103940775687190525895947708525004566436882212214324328800524604275323274209778163556031468809806589173055052255702717303735232444506292759525417836725110332010479121117684981805197235148920488329722029237060423422475259981679385155950469837209476587015384813929058736133443358152367647181567597704413325669220907858183399313634095302693742459537266848141300149588266693623471546099995490338768187870438283536423031322416522653801062126984561890958353392079093101365808041920988843034353440039585588745645792424666484477182224448410844306845234836480223542747343890712618968595491913627133294745260903790564973011972186581392382365126503720252011286824003618666046112387218059421858292889122504622728114649735288196653465747101248529278194047566541668541861666982270687846733051790135574000584949410072219775198717216328641883139581549374622281540078744214215835751791523606337039944209963950416922379113300769809899396906331351593269305023909828013272827397778837680704908395067619376125688191451400942614485725591496641387410194879458418081290113153224589712399303716411843718773558175231819177380074956574794273485827199082295792651698585785030020364785619123424851633945147563903739508728574795512170911350469266627834449170217103412231503717963879512721095042539459327552169595535322145660780909725802312907348733070723659240245783968068039659012238743365865888341103259095692221156231905472796839014503126264572637539298181797705411248458504620886908603085590647719790510125400945857255562073467856769109475141307461361622971138286642077906783277225716861226846633344993754785787291779261213374063235935774250184988825779860425666829474445733676863617064842913645501256615420275249057514663248654493074503799609853034306129790648116434251192265249809685592170538251122374377274009127580373375388792896513040286135146306433708198785796332941469170673456186045352243325626745719732011587831423552446456031983956154084703350025227773118780693718232618734081968200113127868655268262353763123715578194178006306228697277679732259498468260009687272275432526994178316083301438972163903303308966803589981601478721468486142291307679810620521424783978981107522421994654648420339801768955688341431450675806239069459147969536182453484797533116346083393684012895790674033635742025703944385226080793450445432378158674357751869834464079880715156351777711112004163224303247365892667332549974655074079300394260845753183495975394948301467060923326972051970963549810247051851304042731832501655728247002416605447180140865099075838160239434203333204034582926645672631563949662438575394884212207020476528635314451253410484949893672363332093816172535589418231972586351612569225580348773998941444455055181067503920802775207653696884887291917196850869095348152569948577326647803412294689819135051909723164007023949653223817363552720610217497854378676113260196037392521735721180608840938934243961117415842725986167185374585361462349034362976440865802082562879488042634473912655766777840727031412999272231621703522991688177142156798208212637591815706708210632602798962186499638177362333455936995312375772187123432057645466508009555633731300189396013420858099971828511984070580576622414868944919662941868637265267890503791657369171126917509644273777604104257804564481370870396369655110230534748685185837970638363551895285226492163104913440203909914207462048757688135666051975084298049129311198640456256212168101258783045574063718601628282772649837849635703456338593920832397156293479624452258543398488234651024833347385155166549400269706162163475509241076185869486040008991969797854886255798182150239734424236524131041884993330336546541413926179083721772389993550700167949052856010877659122947744956787003399880526087537718455205892140092965770904074757503736700365188853740691950020447461445102286627682499819462374491926111248257529099535208734793682396814674071403413965608937444968488238066675714521315900912540200578079914935759000462812839232405982142275169433198223132663236676391231964004644408829893036977773523996310213568968041835485574233375676468850846758891721165464665498354063929567060671379802823056155045316236969336858188290436863290740434317092394870073915847704624543471699849202370161065740371869485705147736850267835466414957502469056434069012058396676918433437994458609484862261221480908378895658000548404405485331050337448563272021708215807972221950129083623592974468321801324178349783665342758779225809860528262256640721114240815193946748704666120476902462092742199897479289437911429969009786787825993493152514510034288987437914154257695861721022624433345794940592606179957421243139157597785594895369120387648830084521167764507553904076052988259505409940056458898850794576964998342581078467668637798847103910464201386489811017794401573753666334814225764370224204490230919114754175029290272581799832365629420343729940086587166915834829176407536189084548328582940430740804171981579608605980651379790385914249086282468497280099727380571330436466873915579322050239386691433363187882438228928622266757929569802552584558947723520014765341200413104268550712541755430018789246865105209701003853754888236689635183965017625594354307651578973703262053608288093627009149747112279219643347165212595469048522524752094739459881402823673289971600590529246519220337522215907553069773249337955633301264184354055269364797571895188567170756699236178915180206312451194332532440084676195057244870559745017323804356786737070262963296561115027120163088808510719822782517018078164103602122626699307860256886278801364928469084799297095430636736056306822846784654217896245046574675983824787835061696265777326415962159074457924379834825631250647137938824614879211017581614034271173205504702620831645081041291276191249892662981523608151448162008389291557527626841182238319085738241138906175120174550961280494104718397492963146603629615512972489827904478095372027573212892702010419324403769968623634657704406723845172962233567442529638302104416402634994773098333064838982624924595851075513885574309912781545972799727928700575789872698244552863048919842972446836979320089774100042756356877475191910932358193263608220089601428836499215609834151771179248093199095968297177096506545663478290275253739428799575822179892721110420000990654927790290383588614571751032769878878384144270521141054180622727123916241025246119077670547504786112273930535715970723031141713278743409573725058226973302286280133331274232316268838888548985615147090699656314629416650463398135821951289351783059757051565515442261237518558070015050973048180539049076705789980883946079582864083301691666681382948790573118583517002112984565582117612131369272764546913505905230949263041305766876207938626605404046037175841215861350787101397259346839449154439324207200407216214073744822223047244324218260972763650640862921969481285309331696383115360688786482939268554091050473271600445975854629260192560471818355584341886900631980412149117482053078459622614481035774538819791439287263962438589016116679738236508875788623602373150244940655514758335612578031363071534953218451071105902654505970845975898762366166022013365106626969601664787135249745271554669011760272167311547475800252229496577435601573922420097754792649579556649612221822372209585768566390190914552369269582525418182561965571646716097052147208012380220102827337528398549018472529506161857151663340429082775548008468562271770394428160980564137119058482051845684170569528154064770984327884825136119981930329462570381968582226217971620884743839098158106974508278898255482039826023120920072710040017642193193653497006500773425581646378126206928418823109127191010540793746382059472486647844217104649966990931375117871268828138301428811837916267832744867103431565898093158037450460147680970803211294261990141946006422165963464556731187670954797532012823948485282895861721243403427700399201019880537132710873291308423142702801840238139390700092097285342823924187515675263589218571451787870602580272571506230647222436000620669148926394014781624607175684564199094995195162796136937204175401941484082015691960132361814715663644685636662146425862043404777570709036070275603866195640866949527955924048772924598728906408350305868469942684446852814556411806005551667640856426045079958637941596833124922846040910112047557118021757102135343961092999755842485290685931080501874424965909452690167603081609310854802256665583447311552163381650507489495609400038434749683277729962783791010188126393125692795449812497430906207212485350891108036591218873605547528681821991914270063339960307063461553042257845354176071064964602799997073916691064101363663441331495298730552072340325157091229049986790124475654844245836194432019220666257526746572537397351161895755733281540260891662643686663486089663510644187691541876501463897695528528923409151194947239337663154681988542152866708857769950280178594957720819571329975130765854524608970946180882275079301207114616108701948794144721320204837672565668196426562955193792025036056439092839542406557040314794182796057448285530099181337071515371051474794489490972533754671351856681590439121357825686295558501531636384891412596099929912512538946006280601006862303591697782173341178996293301758481108335837135532039283469741539814511839640344527552156300805676389265179026748972221939204489212303892218414133997340337987259532652538041138638082219995789343944865757055842533377507820327117369097391057125467702191149020528638241060030691142009086208859585063654266506970272693702236272556145627275478802567543848438048341617878531532462158663353928420885847046420685113343615639490979605381106771067034166846894897607235146627205731998974723133221232960487742395452929887552690170092079922720437752753957252942331848688920539236975510593868814572224724654027844774091412259983007462173850978930205184635748262468748279185530945190240747710343982905667015421191205435043375665856205569006250580603665033779192249411308120709917242566416743621932662939738393676836288905870208712776316708381816800636113361335935894996346871197783979865290736359474963364763761918400277285671667748653950303170362113537010756291823573691721423580632536966861774845512113941261625706647010874224008227391645767449560382148855145562090889178114725934849726873497031587782013947342686859671686998792103464235865934685439969078866265722841415307859259180098302305136841938176361271505505772127251232804436521150740748861828630033060737799984097849854305597671670234363483359292497229519782926396706525612133850204546793164316544599058399344241658516471147576144878981322583109631720585998995155392382447265118667574718518691053415162548964320832838997778390830256908114998226708186803870636233835819798857203596393918176878425404314691342879914577165466525537001112186042123632557434970412490721328823098342306697162014024104265421546081302467420134684742652650489406288427317571022164823562443257684800361125425772092914154067891045255909851652175031838674949593871536939468661917288832418569801166983462751083332649858264203019374255111455054476075941130144711754763631145183935305006636326652354937955267567283629312518155981547420594307572143320944264703782103457320715896744498138004209377541617165104933034524125549377043539208109959049069067921822615076722652930976337388150408421246760165743332628475005142981277394291894865025430423455288111164640969049995221245839215696935559017309662263719958811890131933656139110245712494814076896770499403555390740828179735374434434765221945736899846021155839494616548522167744382927751581836182165702257383009809220655859277303928652155739654803640678222555491972912811704871518435573510660329345048544487196606597008116494511384585242861770809049344105926550991484481147149295855042225316064796886418636291966326692060933425662424460728729520620825478633729255428956717434639301055788610820309788337692139804484823459226696172460447973894492553538397039938998155815595343645383493324715272027299346597929692094352420216823699168102446783927619542490460326007712187270529165963176189152620031940547869000907114734097008644202246063404258916174934013726393098992477436095413386160176805251898621317599826143064049548259662891873459592531640066106903333321906914450085564975020736664472246001915493856654631178859952557621061889627785044328410687581797755234212588941712512300333530565406862368523683810816820325226758860301648363077428929469163197549533260084503605521798689147948336503391149987712470726259507246558631202634878308403262951048890628690168026670980826029293075825635661944788966517417221900237338735154422348370659558164930165152793433957460640719869071345813524939582454850253081179377511047086409549961970513603897656786035374214088497173849461794688855758927784889846957665961407107984063795914011807668359100432397476982745242871071175777947400773986853542587606261814626149398134395882830909973316125152402533374191241874117559239238812376411877763090089764128172609992219662694158297296003890385220511141000672111550976875892424480180358759332063219540495089813156888555329349649228183333177483897672392732896442382013639410398493113078069677185393654661407409732227391790719897111707409336900427528422873077237097818600002674277840834873826184292629199888159556431682465122969457532689815023523308258702978211049738306760927511697816643570321457768340679570290161413203576000003540127727218541153264341796898103382142885092472152598198231830356708887392568738981806278376061933434486080851540441393698789610164981586239015585073543983880806591899103967315878665308061854411652013220298744053926444543215712738453190730406915802328032264150649988942271204772943286174705502727802865735209552224901710661457445693653930487150359320845017111357373967346786145568751772651204820900960220754055345028540420839284545189301573962132210733388057622144602223649698473218363867339089940526781024207939981609943293526103824884862502488998021995852471968270897896013098080090953593876461439090959520548953822056718456503487866898475291065246824986734622733098745787278755611063339592149367232770379918957187229968557127775758760020581365157387464226189657175404272840764654079522608372213083830158315526247811195948433747117611236658477603259690865389218305329898077462465927823775297357914917588033854575792972484318232036160965791948161599936161535305590769771078468476943873436301295668583164405017400264355381921712487512652213435231572479663738899458740763400602052588047530393585422557085181095646306571400142411749312105399007407351270372515193385158151763205471542125938883441477175292925436780778556201604319394094193806056102599313813210489576343654124980098844929798918304175957388974602676350063138793245167955939600660109395138527320922346782132823717141257301295330558057051864738381861684960167311886445745295028953454571017704325896627356374386541231187973709824805581409006512544791857969672965353054774028428095684313664331900478679639062637529396809893808173657454228599810421471107560549284814258750843718372220694347705879375443579672900368282943712175696617690940486952192191649334401610129358617750351346160390420126044573506671114232727991712231463735710737254679660555497189252157440352877535153384076135617328610107317313796083631469178187921607645177227709784220016214634000335461921080933027932903243619848856225198197034350622217444213537465460709877284347422960835633150721427885943763989757019327319443737587298557738882512895277024837102682867377769372066989018521803334740760912055025034108602645778717606220651061807026584852384791910082352839207002616345017490871299545129928450095061767065216994640349455934819062374995151148108108881271351100660766848704198145673481808980051250348692560754973281491419264356278153485909200534796541613975102880351108898008377677207212432988112523800422347086034987357754580912775157285500856999112542812421289748652054722090313230244510100249244902682450109376652016418296014717276290869698308674218167396960800120539519196587627061581762863267279333098456635369015490817414262428393697087117721416759305973568720390205973891408177175369705165749965750698943946685348364899956353691224828320572791365617410799851430173446272743889199525693914054005546231668852208441403917136759343563641563971076980657900384176997318602534795491286593468458148258681223091128576534316140383208399259379583176559783184763877057192040784744701439318130404463432647138379392817099320791277995293991100973702909386500516260330138846449209310265588216413991610977772263163485387267837777905516042432404195579692224102720748614551348712392883180174369541250688826179052077011222634285400121370591596667497770806506199624384764187034432037554786599597462309119739412478419843606215440222677214188162438461203003884135216569212464360498841834566633388088791965880156003453405613181945228942010836647424709434530783730220543080781448787316624120232916429621463823546091224107090667241564487179999915900419399641297824313384960472485101649737679952897041825746474485868974663345696592123607912596862520530393977375566669259358480615512038276762000741744209783895024764987684430877949286656729161915935190945259868780704522900218630120080528285388168511497914387771918628577655093499447601698288342965576640058700184642568918469206433797026819721851139249831959079317024270725734046879232716447957131750356120711537988314327327476916723151292525313215085283852507448673165314055325997610110383555334497373385499949996106111221315253864084901980845108022429222413320700548676139433067443210365195186095472225483632208876556071312751461599899350832344050971325228196061092616892098564960945033023465687084378667383808132083743604875803036318584529937662385438101501671375042945147352945573492853754679294967500513704985540349899398303914654208971811013019762886936500603442235018785469161810025857507203436591614237967861599369465224381423572214003551101006388325396606716438151424844702481574443622296700708285438316978961694584634465239620420186957312354433482802233176576886247814773860109739809036046225301631668636644683893918893290130495863036302588758369074100737764747779160847812131557573674047361552311622033106625402801180446213476754957951906482991277434255857497980615960757755037064477976609970585276864792231342113123952240943309536976589902491462029874227582368474315073014733384572620732054812253339571128502960169314006145728176533037690215151678094824826876048770013286213809401149649530053948854798471690784439513096789726332811687005410691468602528284879062623675485193544298503443145361434354104985420718086953247787704018360782122256334564995635111507711364203350490574542921313065546406177858919088074189634422918319243468795987830707557841812739671848758807670098483462544312989556905418414243795545744166427971229372402142520209986982432046227315046229120868781286174880941745642453691705630560606544491500947709231664965720704517738603743387999827314632328589359798767163987446965762553635101174677475745903752239172174690390083890822185758166893485468710012487291962450105404854806151422709003936916182135256049325822783803492974417886304517832168313648437521826468580358001563839163185530792577394094253743745712859531278484273150214779881463321624762896758199346355758136614741055451225049280538595272302847521231497261120701896886760295413286877934456562724062901070920707866058065605588000121314065018552713948137950245994416355370539086519048121996932729450384867610490056544797212294752418198964354710370985622829975599713813772372599903181426575431749744436721279568161365114505079600066994508197971752278374782035772301385151487752137593958553620605381361508872711081043835148858714448481941266296454319297975586537177819894515651075815710866264450407560955893419777900599382642620985089440434038785684989336068887581091538646522059965945854944912692201922636829082689134237993717236067762705716853492963328217728723275460682022439738714738254058425659732316321515007374824308703568405333318849995865576543169843274403011647814217908328663259408568610793956453176007614898213414246037051521643590060127523816437242440383611434196240614983275179993123914128425356080894491361525343069622706621661741439710649142449591984886213686567432938935747879185026976307297539944726840043903960213195899213337993185891147609432403100480612673738760450142365647785602440801785300024352386162942065149548012814335019503540116435282096183566551360230239633404614613471965235936928971827285062331145438317951376639332641843545213511812415965548946318297271801194404789785239811692176382640353567371274673289473624243245634570678959028549268816138567436421068267712079003821614878226390634876147985056000373270134267554458929912212628907591139258202372867390665491872254510617165613974776864526835295684590892558699582080410798040798016459855438008365565943112916157689359198713739791174916718717207817097017669149797378558955774084874924940156640668458235979664590818438322275487616946197829355463660788040552067126958324487753322968289187560605065976929397311599158030061158349526008780988677565056713540645543246355032311727134702434933218337241753275087978198857922254996494320354866519524189035867440960930711582111415910257896179201206322588507026965916824293683110369711923158018891550252394629325815555706916261587620570333373590798505900242577829758723309017325916873698171724657170272897945451350691196324483303801798805190320444560163396895157281270962421758121379890524693493868770846572534674748001588221531084394042111558235280998477310533972112940127683535979307056693441620782013701159885075161741687500305047975642005188357863172169418455387574067372943152483220603337500827275654020018341160888136038020782557417768222932161829725651257485249799377544873437040166742417474180342797414250980033665528954011824204872838064715188025847847208641942097770129738131495560886868789787915045577864443270604402869468666821124212766808425935277277564926618467088018213336603914087018870604430806244743374989549141182888777169728104130934811735771774863037334459649061699066568494793996014044022503817020099396770380224223766533796221849790991064588472227178243121428794624491442908246121756077132400657930321657676446883957888442864798711652395958156679414791166223068270165085200752744337587757036265082693351805905016994491705313235033863823287603301677375422801897335630822636031285530710694669340410050786323576699023911407351541547594134968704095313820213855033194216322289626486263980611496979935971248302913032733052220925923778077402212403474875234384257922224108759911055019982297144399713683187436689974794384935823431793801623641565377536482163270838400339877455392100211714187114011803672093776139067517994393531829866620408736526278057239453650947201120140247764506029777588818522858104225952872079636465128647312359891693166891893205178001465539980694676869960488531973416531338914212406049549751221453855691804121834511609758331891531126805084380682183229371228202262638837708910008534789268067920374755698165936963308958121242017019744604217211198102857680336885069364339829052798072465977707928870750967531033433637301643975627544366648221069299313210210732104291573399806933456055010259701793916495065549320119228811063942690947062460385443184637732613359981236847933084637820654732930110548776105908085867980186425485924124463245646718128890826308855941335612907940716443806973621474426945920578227937460773805872163264375566765547498598494238443523452938859267632712133317977493750030540988103210738858302980959824806782212783197755320697807531449899865574981969266725465322959618991801932500873599483507601092631084165864569284701698191718478689476118198025434219088975782774221753401365240753491644020638772407173761366134551362283149607710643791032220850664258059983709526990487616170305743226003996824283835379684616048781212120615182500022123088911066117563904701986671725969512554690002135119119214772958996085260205918202822315308163559193428870248661395240403656003910124064715670331087972517214000433856348284646736756501164592842748782490179949898832803623087791827911009853874928151661128828506182312532534716723805753090822827554331255191902198897239065750425542632407096234237555264115556512247006848922651580055635494898473196884214018229100924796798418206082287775879637359053291256674914505273481209724365497932434403278222146859862924849057811439237445836842841289159537195580845794336967076610178457611426029214635150134071830468931422515001337897226875402397472765471489502279545469766918558890324800185299279266505638393274937652715052562412642003725835988630528109096357838681312779871493641090896344443018452172900291443206023244989693003037194175274582805206364613445139585483498335711155222103123356309335954526622193426656886780006236411737442245657547407567282748774895650819938186889689186150765849980096143873321940244834067356964193059032660395526411782658063410944467682064661079732012453120285186104137947230385848785978177933723791949098233032008563484915989475268785935631172269913007000325922833155287594071010723433535773872447211552340303042088937115998610181299926901865662135327261048200615609113173175862739873501191544816581109688188879404485522196125986868261599919109104377883272041377220263175665869338348483625283054457205432451415510565695583200136572243089345583390540478171075965783229060870423729334519967496175199765920306155277557199071309006565469098234015202654244785115209082709323392814143597209785981726829085070209651093923926241639871508782110261668496856197051956488483733809867701925054887538795838576408741562116853491975769309707693374659604507967340876650295276933477208570001005182345704418859428537509586469254675626924782302922254966289785695661510378149349952281544663342740366290124063239738630872179124065457799423557492118843292238626375366323965124334555998450850393838069595866070562653260930910037810726396506862288826682241377812654034517119889988643487803649014240276587966188158056518643859740653818953594170906891358034624898794167016762504519099636719723435086258292046320314911495320755888170009790747120571599371007037515827869041984171841083565943176069635439731566301868725009001620096215317101560129899598974545613037701675908051250929752347534861905459335499452413815422645020420304830867168402624261699278527297953627216531690080068053192871151988899792289040539892368409130906541057470578712547734656963377112360833067277614781501001701460461847965310590463052766855861487465594739231307901994330679116714277488457716509555621407650125147733033582216527508681634647139224762460911077072918453698115786148774607349255977871834205233214599611166712615252068045321075545565767589649764488087653838649112402899649795151879965940316224816132709328124052865685387179032492131116202423860527155926374814921172720308840840618618666410121003723520171309381009869633426210865692427072472972027812984638260753323138335462101156270337707762735344373738066242254570227588583804145572346781690232463111933985180379514526194527871667160401417974855383749457664035753366281762802734602723433756987042408914091877412103335868527657425254181131861193483792366856668278059053638468112304875733623345189422596872635425121807775626989240054841464337574458745086213238079971801540268091773902395641605791947185472824505782405132653115996710262004322786182942726420564792125642312435804177249748075998690082218499500211835863952478861052124775539922603750795404474905412412185358080428847370556716268828687695719768608937792879384332676577594184193171951206308862577752703649759480488403524580240966068374513979934352958542313082487449250288430990258928972149662304278804722214882161689650227712052494466557953718014988589478176688153126830695313871805344219733503854913346556371454813909340386961293361964884389949092639888207154412298070293616768245723113453990776307737328489935916354525884866377833894841149307919455688345767773257401501701295237191766522454524532585406816344457074994926116398336485521950546804175894147806091686054375386756058609264747473191090004986400515775765928737232073712407453049421258642899280938077630521385524277289933381170762112990095251599701568938369541458663063300216766736595792809747092782894344034425212105617528136515002087480846457974743726683896985672782194961020228751369247658834743845529053901911313582755971622217284180747545951052393756125483139016976302587590321247222815396671596922675507675920548577069085732689008967850177785399717764013853696046444149567484057146902112805365328672363449608050868839759651202543467127560135283634129303318656629264378529776826771078994522301558556727354683904223418110263017919627778466697014781652218556270493439526351035331734398601164783286878869559671350355004621936885893782649755668070113913011358066064137106168309841099283099871407302506276011774195870888955050962366455376596132537700823105875355500079747830719014046979043144502251617946217736422547683206945560843558635163269200324272126383701440713016497926493844317182464279348734980398304631071755153180915046488233114549087907350507845341588170953956812932762785581368651103931770670336378979894259587645205423471485601739495603670995262013648893263496406604795172245796829266973980140120901507613707463938078009851882928664545169424832911628854676155167336125779527343262614081977749952954660077978524703542220453913483040104190174407527641542380461398225016846487173787088620075160211405330733220889132499671625416178875301687064444504859214963413876917290002733450614079515118561302501828208450858133058311246747813753095531929579361508196203873245078367393894783254044776537709381300649852263390335654826068702085069903418734118676426753858590556951142269435487762844379362170441093967778937068803659652945427470135621518685597135170632897529745365480432586614208780318248445868662671784423970806070510615987684575737772478970353666568110179993685335155143950343630145069574832544700386328619738568378417310265987457386271039057640365414935970304933318587061694056672801503037731722980441857509175538451915489567003715919440538610363607759481521729785518673537966054199714020776554928417213378055001257519196191380862756508829807122061283625159347422124175937502277244624153545231241895760942672481490184040622091992238328433141433112933348371794462126586588305475594791536393464711254134125580000353692613007493647982075169498001656968897201048776398693721904713627531781555128131277213211901401086265857451803515180444270196712431385391880096993329911356194160304986519633052881697814558534001414197740220256078078906642296768146865301281024778762742923638765467770057505024036162243756049176518432958029444219638710563676805645729473155779069358858089555975325336598376351244910485735811017639398166412645467311229642761010387822414484789770742865177583506294018931025575284771160321966186130452469059959902051473625539231723281540240772965272018868083131295867091443485090803588680705824967874262122308778608683921816800834263181993975582984552707511896322730226723626127357404511532182982678570485117706690385631325763640955034470933306001957839206548616472926992679029476916687428614443579853160647028314523170179337089518072927286009209875934199365808509861127762324681017062405467504606148554836630020851704348639560728758680399668722917008065296816030506450458185573263991748047769382264319419493458374005707297866255329184132568428874590794632212313445685126980458263848920974380693633736232843995324634249244343472058997543309993559750693512864228162827358090637837048821604571811924613847186627062845105103859958561587281445945899882445733245178633773390103908030054816120262931758625343424223854048816780061178303339283816274901186103983035569042915509207643969858870367132634899681896110003454557141292445226931725312770883831982709367344790449159187928285170466792288255859992927785676833853548583291277570740596854084488324541184457132634273684117064740919023217281264517314934451109918068829433240426853190972158573604327017235264436609388037223304837221426932674576350718833551972809867077611820380652684655097346991071858177355262744393490643452571970571337871320795290375349963787566169528941212852660456147091530751607053338851216622947850853554188325066112055450846886351361713480698070791886170698498625147161820865374263143809230534456939928915362748965133708662415146936037558003323580795463775512410393744428467246904420830418833841751847835324658912145806434079496770353347383120779308988443528279055991159270578532073649078568096275629529309537727992772887281965334710795976836590951334442912367773019439143097893596167202992885067556034334189065852731663295102811828130569469106320373727671035536953437430725364049404547107703210670333483110804414652441654809650711327745034067049103257165943338810720402915283895946747870638020662527526289570312029098735885093697312808510094887536264301562463143533039765311227298986794093908912774174503399784402527630535715452338567051273338952000694713256930741162083966625841206881589226165084517684207582856381776133049690646346051373854553583521846814402785479417056989143433752727127720068906623037991817616995101665317969768106300384771643807121187960808901434341487186960965542539134444137869797879124035337843946308015157019133917741549412562660211181671158069157374492368148929008038245584378452324962666187907177950723858478275654768751965845728898816336842604923648021235306586742551762197537068946361746473939777975323250973208342698975155124981919398539745226815065372005532358883003721285063003580326985678186698962925758170742745296884659804014561898744447422513505872447349453458678431422981426211680442153130329623543995424131853740891031334208031702308809368092904535694870940590177872545083182906541605074260258854358422842702407276905298362178344329370376303652177539099761765372454249638578721295844058880521189952963270917759805089609046498718242559467933245243202655444104645585762363691232081078681354665352000480739270930627001961478517881771016066280557879342919470275239609426768706368876692312647187457995361212864853163622144038419962937093934343863188520181467383198631794271974025752068041618280385530014917534687772813870712524125901518542548651941180894868764207062747031924283859457394638444647137034080591609653803912553946812755456987125371224340786564108951356443209676431866870764373540202483027349496914164802337767186940636318436853740005652859567525867011189034566065451219761295782533426689961913127119452634226804503948863783575996612846564329107304669476049483841197488363784080741263167537145782816440809340349017625768059411635971428056595646970209159923608603664964706333196868395071789711317311906382413090754041253644945101901580701901950133198008527413263568816574820061792630386381580741427790445593517863789152426417651690073297158954187639094033144094663633224312569189507032775806969776906922900002511796419038949538085200510221047927301521624925022109194911488493117792322620705124352813318640553190160522163999939235301647787593609303905455932515109325173541613818305726844222239344784237655496406991154444560298334815791915791558227331894680145561558576532484977148681912661390763626893104899006412467283377897404879333527049985493864272223879737449242251361723474448057460975707252915745274216151628699532011016426055150897820496254427797500392038396245427328859411730648637205297065686011106895510195705593699585580956232375769382276192527483179761669815150231643433267166671967440354839838432840291642943035127630168466302250989394271453670524558059475947359873759067962057571970233535550250179964767117956312370112460704397501926731304083934924049984779922796284288876422255577611004773922006281410560591070629025904495441062097807859236436197794985966318448116959607077830863345696186632428666865894452224782647414872862343086980627505552875412856737766447242447017499237487799067397141622867858168235880549419867191766243468442662625333139118142909618966808818489518448239968518393012071889809378607100807702105470263898357379930688904993439693223120046658765533981194169680608003777292878195986315145277678850571165385313384130863650210227131346671610292361660696743833228263081094007366165895050275934290459028995007923755296725715682323719910141650157414758750745957950551461272003793431888653889138547632842354971046533323866200085911587434228736670851564588446990342736105866790740239747032284117089742357309462614745346036336511226769960028698923180438473161398876095729688777216901739300416648255820238869403728466214984526318465412605260295853555303519320848114495108170578076950692308595028278082132137805828278328779058440712295100583877744370632174940988993005296864837682890079522910017571320568966173909008784128844144059996500229244808574326988599173282636566270955607524970363211007438080005711170619344848646074110134698842114699387707504631699731072786373195382893305099648308376490475935289304039483256267465791051762703442504867862577288148983961678439174192770592695497978579853884362051702797285161343434047671587815609945320624954277002181204269297578654849776256075344015185314911764786637920947414295602263094431829674999521419447147887209282124104327408643896206711740794904655120828948766675754843188602985888844220142760061900001837251394377578237386422076485210832207561135943344063010070537705886471211880269736788414461647561966766818180038461616915249462121220003824470674255516680786771036492164024302991878027042066990521170329093280707577454076965802941275621576288936889238728211464426424169980756846424688527616505098923208362659813495180926713976362251494004408678031053501914654225075831297265171334053179448075152032407455838563173734990615827659563244535361812029853170950059977614981140561161131446301458612481489016031059330557516506553625791644581975795243237287699185992760879738433160848921685614322492569192897252964703215005784404228599358467824469883459321337590911447345134312960342713426538235091161516822135849140184905173630608516030655874698234205772820608663155967483315584144984303829407551750108326670527348505068169783397257882191583368846537060648493010841566211537980138419315809141988899500252766944451699425418094427468347448186927764439287699946209865989479766901427373603563806196323696899476049253771228255084311597805313018703785666519349872535889677758419258191425689561271815501333764990453212734749800881713738217721832394461170817316915522700411912194004958522250346181188196333714323847512939308638295038698715480638644416274415355237383093872877825368414962874812145839719341379247666330036986445686698541504052074264963776644238178877802201499380405194243828754416419115156994327615092612655378757833819599223196940519808157726440615938042171101998645502710298212671568499893448970194834615277267338146773965135967405872531262739454412559276834905923711053788083959098671117789852630460979235743851418289511950471252586759747403604930172172033866308000953018893672677025040911373586918201296174480163605187522661015082916049193575798831652226060964815477896971279777037699249521303126791583332439409428169130178746749084018419463052173815906333663778637428667234908678512490631949917804693727782183526976103974400163084005715429659353480141686685204279578964534219504943329213725279353845911337510581810188756474410627610221797516272678898978569050338967927841576542600217921771400275209671641691731823420480484811828888967477172162651071609994265387531679486211084080288136203640615474670189004731799223857717400928475078284315682879451514061307093420010479363445082743420823177955382434678669054272370267154085906634597017207686369639678891966292079645815830648988365478783797052229949250543759344736039941165182711401608478431021976317456339314760811732210199755237800232186357543701817200838646136155951564644779490049593037625076888766071810928668897091110610082071058885142559955347545344330134394341925886969337152431392385288630621978418949639512917888998278733037163161424058300173988143331051701054879983867309250345535511481596013268090039216577235601955987189932890113162179383115057467954758350143590456903690783724311336384458314101935388819916621799556358765647301221177857871085221291923462524033095517312739948164795542348509964680214351135743819911028985373671994316940288012426911115920862680434714337694923498247649911433062665741322854518397525323638579983522287971789227276291019384015991258823916053008782968372693169972976483690617040498910206578330801122982634288668295962270588971700976839729128393556872970576856709643952013040211005504476512706815589670080862748046782766791309503345126129672069088433327498010173127898361787468318258584457730375646781401184818591878583763696066360267851658608942948368412103340844922862896759614264422224783292989072417030777328362501755588945602306361177552370003981439243524357724903708636706515374602766983624297589511044587105882979298306789536035561360244300054479270583285418309524238302367231864883116430444240510658055731005680513939689219035940812566668726035158075807241533946202364684457711972418456459140673648528598029299643058038761275165659978118551482794071689138365863708000492837553633879338542129877350756519460206623858356369514586980835154676448616160623556824450427879360247820342651560171379764852128107979455889613200281762632615803289178406366673454590295187783240825245833838654794310854681891420658165990355302023710435773879172548481254036113137627991093435808058055668881579138198464092322809294932259190388515549730932545977837020840888363535733692746209515208253308319802893380751059027324749812157316903358803820994910230296225660103396959092530794249357292396851996729198276205485419582244698839294479995646817201426638546061332669077420776940933730597957592126700512867963041123115589505222877132872453061509568272063115440986762086945670565216410556637449945013458969101111750851825607386172902530402323384971918733915955186383669085710070658241455640703055407238629791349940357983980878738348358442809186128701069216969194829367459303921684568545722440326414227932220863045793318725808112680383256741385650072320409700148577512405421599654914939886499532800435840796752334638882226891293769515800306154392123389023511531120911407488136051805740821643742100418875103519543683030070014556876543035608486571464732736025251068578322747642526234372401607033419434394582140505022763296089522583076540379386632539953251257463337401804769403622730130272266463564427680566410058548338721780286374496967688002660516109832310471249977726268942937881054469509091712284208601951638692273894750095164682817182185957522173961037231869905004375972051160489777784105289185519907776705422284667780309354622179971734923696903409966498896574427692607044282870608088337135935498057215572792111091677708560452527182591669101434220304630036669262972483517140196303692409380032930097149670488327327172019496193123268624425496697876719732116704377410778659883512584166182993285620579790435037390589451856300542654137778190763192381263209765102417482803206377412777468559197723627354833662524583459475067031798136715845270191680873115935508170929160861331631531648801073057219007083586482533623509536764478950018703645036303226185319986926119832113508399983695109829874269364550117384580418984735464770094732100225191645984885906632135464991676397571763065014598288762512806736260647320978326067544404963366176508446492969214659689376666902821712946993889009658427712675232520224980045003205286399166508652263713931939907547395864027314599564112362600493041868709774763485497587435099935636795790133608846606720048519344571872102478394672700404948075812925415495655174367679277018387929979769340370611431991047594770648120476066551116427118080106295187981188178076716169605117883170085329316195951873230686612535536324879411430048479785874836769440835835712185839154072593032311574778830944854586842684552160070537688891102281194535614753351955916860926376125681995189174031117834737087058154431169916563501293935332936947542911312345431733140699506127560162473994489445722594133705810229044333092354965278092043293918499160986393873318278226101362268320678723834845955389921250386945966780780520286680607948416480397858121573503905829828766723611770784384923353212160687847768100253855135698167044484007684593923230484772012243792927370476324892099085523780091380737937746467976202991748462637400136056247436382331474218194936514032477090029166575767348385102838746795800838463809430456179866485173287551170834394080302737210313841636585087761220679728797980925035322097677503197970510225741148096550069863805202256646074676997251956445399071072976326170708689191862263538535291186256743522997996538343725332817271613537790459087163471395655134027977069466196902268357234588713225924256800649743288240967545119236477073964127246817359793713470557524500953190331000628405202605489457669801654152973899042312849800872783931487766539626117907960179721596905376155552110956468952768179373100935459785618652106380925403463723344698813515959787974256726795873873194155582760997971387808383683538402014496793910836534966183134647607849344385646420549586153287006626322685300334979450399088014003866391069325223733647429327314101370536920467606553612306149009784143528651795231024844724343072924399146385730926286733178413872168021205552505076500646503249696210415451804668334116787634054547039019498441441612026956426600523705501453679305645677393942899066415458975265418641917168420828212236256214042844040380926431948612485667695424735997201742790590248218133854545903900438167687345218137168225619319212001688258012595593157918642711212471632284027749799163093697066964690445843066937817728724712454065780372738531751800838380841466800716321154560883487458414179459647780645588026297466464528508722736850218838268664258291035688962320924809428677195003838077101358814124656225583087257670242092209452250417129530805049636548557478322342381634433986671118547591444240368347428581072067861275312313901449580621234862355197823298267130901231277933416674313342060772652493543186629906884964078498758209320443728453754728042325249727726270332941405489283773020075952516046118080219543582669241094901904844808171889548640730126883619207833294903324314143776209392457180113871824883147908563535746150270204223382742066531198480383739296697288998152911469395870001578725891925466742576244758470572084741446994540778729539777098040136670201830346687432134123005893611933898705038384532327585766639447278652334325311160376937711104058192785186824351972281764475764115107606653969433311624824861823610345327858226288631610394946863657449248092622955451769936344566509284869957195446839996711065228207978305601774857014983646081938340412970918673881551809928473115779409184547589008842081640563925588365737752262674009713635364928299327976873685062255721593860987340523238871928914526412755517984135377767403342342908095980278500040337670785848399185872334975060390558745745221471800226535727499004745652018627560347972819072054181496860006617280160634877724968102279590818554996364379184130604675530878160362486688544201894031591530486926869888203943517205348707968760814180016912536258404028542950617829066441853347907371084917285694226932650417101056471739945218587620714161881454790511916849490664643380442963722585246245571299020219005040462931750502646505818595473353598367620205377014304151672249104392603129044651661178032596073131783547137815168406992165558997965184200697309742574284672059687210655664614919104681656538641527864165992410490079150864781306991510698612620190707553763498826564754561274782260848932923558642511100700023763449429269717895067820956365530674704656305874322026840373985287155627323324037604287085424153664038043587675102788633460327250688660324547547977155291638683569801700032729325216097733760375819935971508374694973038027565980323376545209762708097643258239384764407363839631713979318425681376031125266566065544060065848080112693440166761333243893368640293821381020007945958449405283353285710652874217909740882981353395681847496073878986074576040268303776202120178552871631783588280904975036809006888097338451634527797950637723415759773779816668591530604463186792932451166618586838904923927654119117260604472736629166323406351008608851432752983602638922558375080639783081271246280579474954353280021827694784949550901184922642966561757528533495701242564109911769054665961771264587325574511059150172756442664310770578650599658310178386014018781431435723280353273020261202761888862719700608497947863984725916461099969885001472560436188156425825840937402622969692925427385154936747930862947078685312546478221461615150011132019163259968405972425189489693994556339511146434843217728153350987167047906926879728550719070624470988541780028640103168965615026314182027772033285250642712509757640563925356389612171249186673243443872323072724889284180952451200381824943850311360396204443874719895752729629709928929563914509482981167110039199445146232274095427920177830231452488241713321113523096909711140859986835004153426712314603063250773511908768035147331784015459222338135211468783336401073445418606834754592625836411786612777689501016750024687543112752963118419586299037213560621912909558552353731351250904741773782553075103983799055313508481547431632705113971230344535568870274599586573463780026821284913559237692694270628837395867849674884998021715049419927719030131312508460443345136143880699960741541422042795399181750657556332670454913100097002345685907740232269585509713316271172194904475535971167426161053557844320052363395345583296860586061898813310682029628417303494595714919211280075675836821514973885484351305933615071775836114130185321374844429885503888538543491447958904530570942178794707555824054739107493873964545566192138793344296609822834762825132217872330438175533557681967337853552747931422770139049256866341850946555350905351285307005457744854907947046502487839912161853265589800954027737675524647731572793178957717888074845113458888495954570713117117251588702004799116599043223379237680887730552045243470891361391636885292177408160994254526770637272510938553945304346067124776898962014888430028444013277776971409182773248186440916289108150895603972489265635183978958673702813033677517122331975048929098906741640012872357205115083198684936036991299419805881696077191276286536542354440950256568599197371945517388784237384790928076414912418166236129265234954984581987737509253734083009815438251850789928591404142478191592381147362845539122199761813307820048602494001152528891391308155322364109542548415958921130691290170725020759657788532460534251497983975903457447203704236853926705155620747393873269631738662435711339883955718511753661650955186921558954028590417835410625779355521849171221039912057422279207937811927583670611144651791282861941937452199347209028445420758712683556909533855717124753548589212353405072884929347651029327679680837117152980482483895174856616591624122163357682962053524326668776389851618168732773171592333401038911216342798609317588333711918708060686436460342067468050965459230026971664552174561998975019946923045090765448879318470807889877637361100934104717860155087423030076707258044159301914171129649669466750917845198718756658908803248787341104528234988307355133670597296878338555098053205549054286293986488967497232346905499584361690611433252991949666105735583339928863011611856547641987947466783604648671549624287461270510137449814269702746664521019883338949482527796797063348347900212639928540771763567776860681322721370300083796724786259865610729546950704389981608264839148542763606632536571134792404300596782864032820097127023420819754633619640269413514063224836381656473659275374904206305364627151846762141965699714046444273714513019648221246724075634564746763363338233069560371227836112176212777334268657374760274812978277303568464547962461017068624480624975348720000510673262872249370523034428141807269691908043529590964715171305243258061273614821482367968904228564210788826574655604995290405706733041891693256040427111020058577349980341580123927285128508735687531404271158248761415072776547864670089557199581138068403072970298769587324747558862167503810938216281895056194124809900296488510976991590542892837120740752710948363122593025722421431699436081557055968806368445664683453662418289276685321484764709215148845318266027726043749406246943959130783989051047559646054944445058531659705778340663946023318573341137614392891512630639903677094693234426898312424260863567403967344911179328605123427521698274169734424393021646296579778602171494191874638473690313036725852287160023318919612978804808266457738757856015104674351042441140287175303096527922219176797039757952830421807417184676940243973335312036168724038836005147568611664236502909435031548755568456363440097197107179012940901342291367792665800941818940594605694948728368081452093300418508114192632140922689515710822470095996077900507999611405930035328320964793301285360203864433735325612253962135247670601496086838636544303380823019030237297815387806791647613621676038023312309106644115335473010595824386212973365313944859447542495710049843720355840376908250488351518577982673501776014386351816854719048397349841448003030965898839065825867689627220368842492095682186109209835362769536504684963299588565248690613691747414677524557198946908539217442605297959268728358084326311290384199431315072088939191875999304325399920087887885463940647307585196572736376495070735465227672574717402271960612330957110846970184725858017106695823120758665007386026949778189803780536358895560325247614683249387131885768306518609547920675072879602152238373125449916564446256106426732830415179538647046412989816372672253586568021159452992737793626869641920543677179429766947943883088891817269234210157430940434224951605541491120264894669014613386187424694481899925621809587159410240328727154053058437786644301745432127192796186313277588968799880055340239009483444604131023219730381935076658877091671752221001495755168223683474497215638324583776928454816137856606200719396233164955143382132716499238731536697878336663789230977788191117171350070446895263455621279160380820409544457632349123906643125374990493871012096063382750994054657093257245458523013266836526570312563434861829779934581659170152906680727724002485495023218781646920225067038383643864369297525847164587504017043690361118811830844217261517352015264866814799185723390441925007756743898289387732356859183938520163607603296804489013381096729524493480958593922503745175869054069197702347119377020415490103142527684086837741399846744201051124011594150051346180268155861462971123407749588916456440735628940696062315027014203678732962564010312082201386682042130865070604432149466412731665907415484449346841851581727498880462802112374242034442689180488352797358420934245620745767197385985683414142240452421486850051133821484937582162315516546541656692802012738863832627290541911332379812574855020012344378543084136695583649100682502510599513321403550267925274635186573688610096656178478933898555129387408020742116530066625152270767247663023760494531747073256834898923276357441675933322093922845908451057463751121599423054727774599280616326790950699693215841855123356356646428890116887067263150111991411701783424011344459781120496956223511581498055799046989288358581011975403081465814047940515125358107658590365280938519433505847996243633786016597153468113322994783668534417661004358894167879754307316974002942817050768478021605208257980508989642159214073769715303077667097027709713192934319708997896763038704167186055459909473625492942935814106748419926601732406337398568854725035081456315759164974532685697744764232846730756974352303752556732759096413074558996077466177275156398587013491394409236726820091877789771266663209562261045244182348462337750988876180007448512129028651204406854692508922205632886805447820890236483213034064339661578497451562273057833869452553866261840643825182615176332087930839961845589446191022861688567373809728027497274273664177936683266290854894329132966026502737494429176210247870645694534532357060495953227119476108304941825742277173673027972385569508094441884184051557888044728625288266842846077724262722266643617380089781797856114706005314847075720944116941388573562881262789200367835612111730199566240456482408973350507825718652795044515034933479360885916336751772488642151160819268282552524104208811195934790284476435686333047099911834952597415945036326889143116066120461549604193808580653907843023758378601222841158748298799016068694918828038307403780470386233319482378558173081427079901962202068915204909377029201639635990046702878404496922246784672794247182318898241740855023629038625344775706297030044894041855107291160701197309018630689248833754617440055055728483137985705583857371042108963113340338033976940717706060498286456608604977035580208713201968389088306328810513174906704670414300791733603413047165703843631597417538022963739877881809543484546984361042530903937335354882240047491942217463776567958256219703005919231133353027575068634917939069696146545459757343522867403811010247437451636412782300512990531866206437747207522125325319313470953925034624029579684687750495396562588522791656945157501626789790929766559188656257942104283703732012614576955201841426344147540935055403723279339465682161433632850137599067870357913226586038532739067379970531723406629668280661594090910160907669703063972986896931554888846058566300611189263983035328631667274678470995081270278293930325925303022042434784258454211656682049169891177300124120070211772374198633574652476192649127020964220018877455480305589804264280339669619332620281750739676240088753395050320195889778413888694734208604255534278919901332712506556603833104194507579972353377215268530971979265828395510282503909171092860556349381300557385305420806926715427898486859179892862830112943428642529278851078854491974197272222683618936216405000796255357932032016993437805143754063603735265642549897131449986265537916848976320744662211932019153419242341419520341311215110996499020667806480974190218945944024084394307060562608127869518731087194362401397048798635703425488296525884758128270304156699736023909381042822780540937116664478485442051031693027069479017320675208460686520589353136087093352452277252188930490278681464882714585064036908569524372570317784820681614587635709854660667463310224855009199552722379294849802574783610852876945342380233742762930734354374352661967752353276369609670080699240335594983373277082003468808675898224646750174939503868027004008399092087857551122861700803991902630423029784486053068886097378222879236912327388105672358659716144257368304164250236039922438734307051649867058935243680429047860143171577710187109945143439207353973911675415996593098035301938682339611636696922280189823348054423917944398647228519846403277127593399447166763355222462364061465532539471443802422385460791404260275958936035128259453700920377490802438101387173474278196081685505048966500630124492736048953245238648636655628651015358112342602005506335947224357465414376010570463343887335569256001483844187472635492839812957888475803305726724222936832682170206061944217114439603740267392496915448131480385897092476799396544379909021002316429523727214683714260801133485373993190196564085825701125883387370944884649640964273015556935412797685553591595278805127118322314933077926588702787190198016315939801174151076409330287258013385512722764237022250837220957538385244176831852298100232857170307942334608136096310457271610358753483523125796963648867060580297054108209124725441617213684983877543057559927171811585652509961985764197333902230168438932872584715583015827655227990803857395552324328250598733990971030668081432400764275174260575928524207263714938311829962994926523651270017694487227446512919993523205279553161989535895096641987929670886983045684748868769757321694035196238701434745776047967041082777339680159633620665727031310089385083105781695755551346888718107588310223111964456978684512044539644639605891922975969032100986772087752753350972969791164592804968033846177302529534158428631422732341514165960908529966750580700596505922752909686551418326412923716812715876200228943168853721232410316512623343835819243461725761233256707107072898949518515225343770016202568356124313813876714372014912810691764994642372217589732114132919237915538706165006234934742679316404617168224312201127854558299279684750450983371920477275034623834566361521223908150424058329390289796554664631142106380938345069853997878938824007721428661875009885902609721679833534966679063052924983222849930253849587788974871328699692100823289475126664398824059005828582403846526877658485065840341510474511815788131536052468894367593586193668432703771315077567653418354241176487181226217079813999795928254890987857409362290364538935971135741777665771126045019956595856149441125595032105258146397272731610732848678443715631416796310739052917598161991037868573950670568987976334110544624472861603501285269602639117202568454114157867927891499312998936274624742519150234762863824103072816313758034326649568117582146798553918993024860861903255205659035406389415792092516627372149195554365424989617623812097482286287513365849128285110584089541748013863252182135331122648896083311648361128462363453351092472131428554607210664986207427966246215103905287022398010291013102124238101634276484404972665566266538279488818709663168569306420911390842596911598793581786790336899770619995198422381593581042893407349622381046868798760121050333726198775220664803053577123266245593072593276630758238540189928223927776795852956262729968215111598922872060891762568301729503181968248484244860088774814896511114470628158627785010116568177288084635926343092018612313667366213843040040620721484393288310611035601440941627370210276811349555740784875512355166055734749643666499682970844471648327482157791155579393823161280521781027321952305421682757136348076126161992173360548052760085965299722545651795983578047598544612461938229156593887724355236246318049685531589364857878108952786197963948980551607326873033840213480322553980238140407805341421446329877226278105475654684744594747441766644846095703680401781140049004540881556992163877158753161152957945605927335244419112660299619194431671314656298590657274426484373470217996498595939194008247146104577951284845341079844346108684303502415675190801175256540937929231453647195266595267491970954042645714614692980663285424208450812134132881921461962985346519762249983471432739697354695880199066232321331006413371515949975545341679833414689917369141899625687523645076419423412240827088421619477148759660158911701786853646744206593612075389538177776560213579717310346600752839553576735935952450699514473548812550814442166124224963375673361713507723619068397281131547902554368949751574903146853674457455531788386241968199969080805319897595635947838734045858535154710570724332725719618841383575719416907730494432610552540926916760152482228900630692481670535237191992727737547367707961717967821236581848329348279557411044419958190564521572410652466703629321846151633801426266783651989111370127336300613203269980594834278751749168264219749576824015887860956180707201584568526228251717658934558355090357472492779332764060614478193185769575403891511542747665214135739847063153291228902463414253223900146748632360916400604917483891762421926145231867196507534368362877964086613994362474875296295777221452906949053564401206890986528158659042815045764069334651090713715805718587072120358371070706902759119935724532028242292149060821500425198012789842819198939427831707469882723249875204469492684655217621579697974733950220337149673851409297238484218934812308553336624104550663759105187424680322591351878994310439376224985566136716361643586442919150138210689095898841656126338290345865172416025066844983131337788410954339309199016557374818993094432140589635064752461000430332565056271424426956641165387265967744779848810742391171036067520798709506338542585330673288462189351908679337847916391032011273260953712670172188834717294911850717181545621021792512031572660131707773068380780884746848980835045262129170471736751209872082069516611373119834465546347079270972355519933207353191176678669401515151684583749392476551509741467433375311797154997955843828005107372765263018122377105432312232185972832384718791525086592708372400298628908432582955419526018907636508188574953803256296056081854635218460183349429450763975629453547902651276627981047464539874170951046261767244276541820642990504691232456643383618516739320543926144668732804166400632356371536492646533710203712383877602397379819022476466105634266386377125345229884443751871828822893275209332662887488071967277956206776609925109762946311202363916893724916094535666630800416873784276593391223694791037236288804042591579243008349468259928653537218509588169179708663459543856899150186851136733201878002896664884872936010166315261743844878704709368748791693470570875300105611406595661559173050801255554463752578386945161216649231227034205072893986542162560399962393662311671716558131818972285130987119918295435370674460180888607637690784659772778569463250864603339487123615055458740783067512673973792810802663354058312452852588400036992254894521291395200829937433982238925930798050783799924721265924529488986423912380638503868184128450049433123895583774857643038647474100071705127007191257758394131564780257988913841638812398343164209078168803044236789168157565208878784391983582635679025658238101768789307394703334740242890590783689804391772403069507577979217835731232057934816674051708146336830002370453033410715068713021602149477237824461884550811748289741820801451275048720180067572019281680476653964787605650191792132307541291753476226334440559334913860073490556654323477569764419714328515457173044807799123103909736383007139645468026470321495080241816609488989746159035478325270355395586176423899578125483018643486208087369995445551015970133124914764156098358567823765686356983216205346254003828941911920318623483255249228634129877186454997598875744898239406198952151966218922799683053256411171519338694743466791598848710584051230250714035762508643933478363810904190451747223448286835919633590890093102756491558733039463666430952957606392002085850692558200439520758231256593616571320401332527133459188285249125660716628423943082033254461062155732447006540091177814662466077142985210962123455426983331336537060144943516974027407259155800612428286644241283344612684772449833104725303821177730800184939109916548144866871136570765730423823639311989500508995801565796309063112878465756493538959146798122212225751619932395859114237060857839016673656674860498435189505870971836435826882492587219307088062127146374090158239761393520414727476652736618001852454028601250191524253917220341410834604379234115762663765063789700175722372115683656429510276976254604853345547827223233838146200090616455922971758550781371197991238392669465618744064118487363831299149768697685023029151189271734758279551959021053480979916790611478961017013679173031713784163842046803982996593000700125750565716973596857389269450719183128934395142774361445900851804271785826221496029141270267496555351411175846645115737506770315713455194403348317442098283176610866917656851490918653023775709983311769430930748608858518261261421587597421502632769837396027446736322764634763661276451611605259305973514051971881870389219694575161289747960961446247315328869765411047272531656001596010355008479796541821854623834267694447933379261991981451850614293286093198138637778913109859694036747203712844698391959332477315592730311301501892138388190242819408125919990652228563398831058232470693635899050722164025231545039872132200153318215810202557324535257837493953576106261900365730794941320670294589297280887118390093425111897521076847295168724697882121286673801203450862219664833562368883779320871274536183990704135879943831799318762501624512427861499895476747860504838440734863867386117538309751567002498846968401368739296647505483786448408457353985932517166584614440357421037745880299135838284622012598269155933879612646237835220799801309220551044921457952355851647600009002973329785455235879938085996456702375994988346666085021168917779772854839026013769047486532453589377640554034986096369895843575721257094996082604915781981541300188007325645218925167017263353376438836575621606893605872687763430491034986702967739709479015198172012193597960954134048300583909705520147559893243944794864543666739479258914040432689764885924086464732293227841904207329337054884519955805009995340043806817608660412786604176698903390969123026753630558980100276075837021882679034136373841032411534574139354685487170822730446195816474777150046958783086429997202464582496109856097430435594384300779901655459120919211450213004187868213462723333825567414774451680550261673712237870320239697744811686495304993804402135515719535119217428673369102202326262951558418791261229115385598105157575269722638554203098889366500776061996557889984644273425457965952545974323070439693744527612718687279576301505401870359031592065203483942127318796146747501361116798742779508612800141040588899526277626741401485031952686137963519880900705589918750900509543199686853035916491414395433948230139369905427138744303491552939234804330399867315255863992600718619061583713638420501406059262146808271746111349594008855155184020249862883896856374128161126948977657793181560608793831716124254929212933120022727888916072206680277025495522535238437102663365069885303759898120626160518865009679934491621347906384987598962558451145631763479619642290212868167233660844163664953421294295244364178236665127200616856832977026444917150418075113525334913465926996674108702288716580920020533401729711747423760318185907277814473418308608920974022372068311706461650103397033696133073295707513594253983643742837995838314003743416166448929430169903023396441223326515597072357112392565384856197817062744548577463531594152294233794851914021370041490850293544504248970063754185196091450913307805211832099784657941697676406522519001273589341173928953105494393754283759225103880667727246089269140238544170515019754888725276224160964124232826510935908966322820114794687243291956079074522255975042888073997890062785469880317947733427740306562077914846282381194363560830465068927934664564438575325509335611223458400402425843571697449162370948279935072200194713586185878126823846428406567657121482514196056901239899568691843170525968085844314247658279080736125919288495223015188066682902137484973151877624503031004768413076278433907133464391001212287574055562946477389129345858362790894706134324939772006721444607890665572407229443958393040709733773325286753318653805745094466605178745167659540619794068321752978639228309083331474803119723352766840741556620733939234306981158385595687997632517543649924597422410314430332583533066048785437918098845490883972335529839244628351671216386385652465670074409227401048026242302365513535768796522828658282645290634348506237463148802998348717301600363437295293484514008788474922876895265658955525950876875620793494668777264614514418756229215966130914316654754630051599373936818007011328582449696380971274440746885491839031647358229329779973094740602272943363842766843034619498733123882936284000657029812347856708792403077734268305152486513067861737755111888803919856145320926914987060412691191023894193055642858829569168616231688845135379962520364898761652443239160111689585865598576062972032058293983873929247031461435426190361874865192501865528821553988887660141209703188716067180797053406365460759334327983254645630747864894743376881869148806704751161593333177056396870504185614099755862812831058259836528153844242628512453528386761566619232572027011117852774966317933839839437375210849239866791065488337228730593496886847807819442985056045997859311274293721737159966816189176368502943052498448814364517563705910302074911753475439743807273404997200409944690549781990790238647572452693374008550862957190408234737877611870995571591529560176145569174482486778660514427259016114715875146169702703443881898606530679098198356384991490379109233291283488516452436071286095045746418898821509349857675501751497689484778370774036548974356049556618168963286241387378213724715996742432041621700318087395716996121596025712728744525177534360935870845807304128582592235130888148332473010088903536718418985966015946133766199648926346237890675104808517464743199367568542456987771827760360332606488455382881595929791251305997905713337077351755989186399485762221295445976669274908476763242694955910375023988117878090469458209065448960531448217251281740337794139767412895600257164441402445016604187286619920677837409405658209133976454494207889946885968114726928792458227739514885163579097812026663975855204036830642299505139153889176375756184146981840006263400799731913594122638151850622466920182573201389715536721152395355179519282436923941883794934501566141881937360865936198802311075659710477368595306424678793870738128177959381296706050369750092069761065112803255017607657614682653967451730078556971611324691139563051353030742389095233731342208019105254272194207284217555989235982666538281054878186437933309706518619103999559783798096226738016880253086351555156213713255840182992946156058317055283347856479180093081334390222593149975180597031384648187394643650380327377279459948520431152640288724942998974138464940581631924573702214890896485235599990226065340291410226847710872173421025231061666213073668803703529412818053238967699102497213636659457461055759125457681507628558425245627554083308652261062055118710785212577663945477052220836314594360081115212466590658027636899661102195628359931682560018302991024123050828158112650602803774850941787289372365205918754490881720665854460688771741153988055901982158271359309840161151294522494547643634982597214114094814018605820853210386207926879531642338680945781927448578128419678410807689202845156236378531658552677216251568264550506374236969269733205325333999819991780022203204935120269484215074975632560462410534319890096392024493849127958560578601307123499164202601048547208058820407742532154595534916408592778628993072753282359209634424901418834267061325028819126771187094525601965839039678314831583463062419911820771394689746698202424056871219510086627947040331617350310321953454209159687170656255407812195642598010032486622734353801263957047975184946677704411485524226420312627436051798941540833935611638629588287946950237865466658849901684618534983270231122308787057274851180591668104450408742645216960166413562875960245776387171077894470156777180652972126268171010396580432053658340869680717097960152683133263558978909313287386102539108555089209271258154232205077057141363327709795527867928462130598325721211764498917268205095777913313354379253675019246846864138657572108612979446281901610866287552112448737822120856738780340930029374181317378371419647355838982903033891481356004766039712719882097635420108470943672571097949918873174801220794736504272933375183919821507088703175161673770155174381165858613335067232314343654334275215844397745599438773971091927094315113603496769110612174406919747515520951797672904519484618011057672773292922310448542513442119554730434002649703165588722000425502340393881628061248746697700811878149518192819705724445642661738848428567287187927198581631396888462760457020988037301765501335625628542944810389331058709127909813413443146262399251279413840880362997404523112788467893227352168444345468931770087448496643252125195588825902557136884807576304171866522015978346561728457108776120603718326760750524299420824884032976190618308357376238639551245364946490456682279702288843692641597959900042012877902553835201355732259214561477842902119451663366764095657171039627630984508497977792957032021562770859859278851044730486245992327970384985917590464675924977096741197398957524121668994751624819506209260018183409024432724185743037963567234924249487009054544565139715427551324725572457169076304309481623197091450828375405654661476502625438277823883304038108693972125643695983403993370667851356167606096211297919084621704141138726482831137169596028531241861370294157007032249208474134313100824129754797734509019065227249627094946811394536444866960755295220156947457914755263029328368521996992618030824136324000464681391392094217627599654962859363898110263327977927419921031378486989605513912189040083835634848315962401364933514109310142183974919471613287205354539167057454868695604382153099321862172076309747862629220175122065171089215858467715350933387677750872106035143049757920295809112587818704652719605471701160423681103828163385884387145746281653882032582481893902819058734421970981964969650133410220208488696856934344589091718851408577761825240456223816860106663898834286921424274704868431093664839815111561714284521317197801743951570601816745807312991921818013287060487100682401889241255069166114819151459310911598512929516288604227421934164421979961463277583274071470571187672542540032942531697260745878680021282745450429953044105590763613187720113011626094224367401539615982332725037119620144617658502590904745384550249014848360788537069883302072039275038342704283146890586319170451988369057523618772674301441743097226967271293780956853249528927334377976090901780085826497556051407059265739995613336360396879379355357373017287755931716220731748219037542013356196643107618609399180480619729573578342127277421262906409788209957215906638272334736021435703429809817606809910623956645853291658489014681385620885672782639255965961479045656132465146184375904669055246922342094232967532928982823128278297651898661061846129819269157586158944369200522253262377376721895547948727515072415639095227316109697437828739493328123014506908942152878409864014317818558748644055506252515999882974388189969830637417362901818469660021483682859358885443752115289140567396730818556109618832239054017503837401162415229325270699210553874646680741441025513965616682863266996394170902667404689769731244130424309293190157110954991054854335093984452753257762897117256782423321579172407717854550158747474098833180813467985722686317347114947210363861130466679432221295960240480959592893670928413787037985382710983609548026092204330499912062763754959907181417863713496948606853699160602435584798999019956670732844641776729640736272723276486069884828078073152330564533998829915380879883354931863967323689219813581003009528543941189600429673973512375455176063997697244277239396450137547599887183452215923431481682660343681282270650650828500754615889437403493959466410973334617304872234023644775400861741190061508495876326660411802650415842223059634110353719006059141282140257203982595881275877391916129457378145881255915965087095586456174636363942559478761496461679465027013164750409510477151686322151819499020962023466239764077034862575429157383770523887773696531258256806527680414528282230706665308581036607869218154412273128008435197077578875161686184418395888210148285752812681896202317564997690621486678783625499797072624144713050773991607418926619971842486179642648736091710292595603013891868507801431760895049984025704517933980987950820230363484262091526478944110836598519932997064434607664207840496498637993633376641609365716053078436800648059309482092478391977480946869412400064726951593554901497590286129876692201449685738983722908381196103282947286146809022746981778227589935042037232059411042105861683573928488441988266134490557905337464788086219562534594870047977873255588541396450911615369766679852201570084551950164906052306302111496745656974912940167004624223194919534750629838661650355201780423756459832637957652516050492580623014975051411088237260293981291797082904669529728013038485956763833575271302440106724011680399161314954477914822737607181839706584009316541055541153978281317950536527644585703725074316293127823599211106074214313492372402104036093392167693514398026307703479720751937772358896384430612099170938875016123487033700374635584008515382006425276832036643607021613793928465419145880228287515746985247655348684660953817562643122905822928730554339935506146409854125804164487173350257398546787406803331164315915729104987060763159574878280832522203796590057919906397271077749427707859142382280818794958793252498690233301329973143157719559090054093498318222338449829920568830765397678222985680473228392671055690277910297251804790629102824312440167840386313200387322095992537463080970873510705093697972974369668039538189656476368423981846558242550229411101120193907830128412371460442933018774305168295109129408486037567954832370531249625722904688164169285550573287659042243976397941584795830436808758242612488698071018473544168494576876672091399952946497582143547886892293222879352903168941135513697327306028344076940965474081100178699436184449368580209739540899698643906334979505741001454980496396150355571722481084598257982313625620610866970359134047800929618113815889069524566712776594692879389744580568965107034770854771685165806205962677557022040935187955370757216062523803348898756125020615648512314487770274577364971161786102690133919689512800161120475559261073319034945102618367135590042757297763264027900028054022628014611779483955954795231773661219086910769406792705504503404764574720420045201703794655278238781004292471368129933542474332244750743290020701294108689993028777331336076304026003427673425840532718542751766532104314912765930155293696529516643474176636061947611819108844231754010728746164347935312468886073882017495947225581422261109070418928399090020084846292194068831502094422483164444457794257753896983462515425271172981929594600694259898385350791532675359821508220229335022035763521260222285887391519185338041310963678094645129977404623276790212202657352774920744987870838039418831411281854499665391880526259037020719605454592456341145540291607268987909378059050685820813588793671990143294505766663263182732113804443397215008475505164433691012421715223745966995889901025513228333692480054624680710677212070734238461900234920585422580144708691266030502595800417283956328466180797642398124770847761574053225291564840750030322734901509689434773696267851322264700791812725877390750040647613134306759629624180104465079005029947123602388196700720137132854385455411920053621044122250690440911923818897254852633024227096459115393396971319160439704258103055252593209595117411407313741401354194458208720390493970891883736688443072485787610037136488772011840163157762447961352845262136084503439673373515994215448661426034414471111752943211995879526875383362341851201477415725412352299812265514458952138553739175688392700112752879354601675390161390557510278652066196076436890550206138023587402034494732283133107932707868620640593625624081817866172370269011028297222116606082968283273840469716758093293621455625732966098695425389160628356089401137371443188991802070212467879928844954129847448458807390000230940360993508766568093662821345761662989973739691252323808817102288437067615546361951201632558952147262298203564216644621266681265981027250073820853324210531503962854751384607862741264022339606237081858554660542970589819107629742804674612157293126953943546147444109102025891086166765345998384061685482561527001850236225016959063093182330244903012617309872950980373265639672373749551878382382246905403663514547021396721985668184799624095575556906749567795308205703235462157692920633022111878332888269905388192926169023722041354204403822486332108993674047582040957045413070999222854418322370682236352044088267632250869122872666016601871460024339565968305490033342415094106209454586210151376375581887950901229547483221193588446681240936954183573257492792508877994428831572016199429198531387778336115730095130909275938347472467279091678411544113952339324117469460665123210310336844514588559148226980265840168552561550898571227186053799684420951661659046483741970119241108388798922163362168087674766503814722954068324915494571713045140786480625450765899073511432466914516367089914270477124624455912300023711607503936353239109859232718427899914320919790904630898538071301971409076892829497311704845988851000895868102159927308020434754665516941885209519150479597256621733799534836727371616431995003277908389607145969476096689857569300515965013043190217783697636890424007219063713967320052933244310026904092937837409796642809144121692097654088639829359352803694512224763248311994277778804303980624422581726400564103677363407311661040543305742519579305692518726461210728794104674986793969278547046843575146016547564259427018786870502979195722481792157965623353392586839503962059654818851416824754472441532794541872547978910790314747125710370696998970981578871780509179093629934480421562759703302191654351439949099981463818227606797553099567868898783511972082291932992622327269358648371096269965621188491483808110876223693298244826455611403852167479420507090236165978444906029124709445010811911798923928856654583520052009365353163113396319305974239666719079311576444676155172695199178899397312696432539924415138798767595485537408311295249947669582106381814600812082436758015424649716984864348159080971784942096970383924627341920810138275292191522430743461828454361826473418866861667623231399338141982317847982112448278050355382179807576202106142393411863515605700878229216968478153896618242638745990764907254270118428378590306602683371489264610019270544910923464160400562389799648856325382613464528070384370197816431828888312762280477030192229165988927828785595613693521214443117515139986094681990162018846172528096552209183747669848148894291468596749974440987996169951236876231926474117362300734673998602722298119516265215143914051687529004767686069542797739697767650989464695375895744723560440027701796713044313247452506964256111323340880434443501905961891205547772975623871729186689003842383900350604546530010253809127037128140218204169194826621500357874125738019386341148776395634606476913086436296377122239604850868126451953479837243996610478434660020763408716426002144513493070264799880821940483864588072261216039682449094550668760793666202329599891386767432075908966299621761051392234245801908082366101714773237809492690216252548887346343157668800402627161819008209039341767542552180111533045388050373962398492997352877432880059240115606386602513234464238765491179016282287749376515854505360916382417715147866921312056002268841352321687208354253332366175907398150541717324049561682380166257520229012084728273220723963477632514397210731400369614329501904616089004316028724331662079231943114875554169382180825544275679840076822206392362617616697820369863902193365224741565590108236099088237994226477478261178608855402962229678289481969954751064664016921357371060680902489297680817196820257717513749498409180071243384863207268655448904441271128688850472873195409260704883530386270144985545231956616056828649996501098012704556906178845218526987722565628075980480648474057619265829950108039155047973030166727975765726391644150626902799126294636464332029010998521736568133548693165077963048016801789194955216204521517360908032213147713328208773682515978060663536916793177435238246498155585394760725474771788338207285959572704958176624108680786220944651326126290449767418349452025737363827888999104156477279283738022937972619231921614319531715444679589049946853649565871833726953495444475460285775899902545517923407411536269988751979319078366684893761756486695548574565733437240043084832930600766127081741525936557484931637028912134393879261240417681553617676145106551900369953752256517837930771172986917645898591265784151551639295083273960395452459586190121725925996308509676572742383568676183058524226998514088974888452102400108825274917935403388922504511632627804980139705835596817240744256494104887798649103387012715657642958922907054721050228003067596170278271630008081907965412349513330670325448177563671951636218508638057740912274852873173162359027028692871102807224409058866031112757028694537378552551101093678926584164521541139840527600701170874083926368225047623304140192548510089958831535930500632572996803868664555974751582467814404924825648267260527106649476579846665899933025974768418135194255183934797873038251196634331988410293891349254082634507797224076104958285499294257956501147010287072046488228602621073042339097076364527295342724863861270574952752142050732388996750343993504279703916440455081226882864870376540485648914239764589681180068458266395581146933109928109348232376139574189559307763928977505543548810250807099011250022398041617438538132896527223360113603633675126071258048874366870093854025429581659598663275986737030012026251108538422844849539142061682044648499647298093186435688492582702806062482669744522288134398095306973413171586841540215787030267369915291467902641244116596735674454505800857674421701234250843342789902674716180602423737864441454485926010132717100131407659160748390507572919520191418910675049195995056887799324499035299232498873526289151263258811478909761952201498221783391071498690089339884215351528477435308999566596417831392113164435303221502153701378832791540752154019723172074573386052697480782111174692014999956065430159142819405728409606694675483006556895480267635947915920092060003939827830664400058037230563835651151112938758564609208148009180698071175919751722482952278388355984966444207986657014967504196049015751254346673119572929472653770706867434939598431691078835971565775412767621146224219158350190595795684902692098320743413191795495316193373836342063564165994235700678831711037316075447676794978704611874409235779904626382104307267648507772650832462076260382255610631911771238202403544401993188015235589185786848782132845529726860171654780283510811189353199583534203358080059800091490518859929232661222330887858552154951258777504739265631286903602236447959906488819383485345352493942309869785479318625592312932912588692800409223154870214789248093019297661169844081931180121337601811625362258957650182757990828393298598185665664325046817631328692799687538878001394643714716545034402638617177543952230367275703049142129961370461852009462840904175952323995192771077765699784768837603180938806737266251619088455132066839663445723391945201840301984701369775430691421686525533090341164226880780609066127140016470434257252196258564400007244323006496506843747570272876671464210586307001219929225450866549183364183402296484731730705733871510926134707592327558364064880879101014002382174328500782580068498983028774866521114045711433862489486802271945024047816037730908304232318045283012758780016674270987337762991593660865941809909981279355144833063000150176630224776226129888721317530895499883709990066325063855061048756812370341949633804738880251806902836480985978432040227312798673347377752184668854526916837787227842780200538036421353268693533619625402707438946368422494877035340338768194079332817067317043750948717104826302493637623499373610808064921159101642541582901192574621112783595012964334036127325352268223347065810111339948391555693498981735355531579545733306890806176850725516764274827994376887071436507506837510779952248435565403454282423437112760732805899129559195019963175736608926109472304313923859095179340713861338924952568386487078765524339295447194549702857479428770074017883959279080269784083633740156425289437516748974044382560054941603099628163149446568416948953690183192124130942846504345162753653901243031642518512245088413530610336042033087215869536385085225077967314896247828499109250198464203611500795332689014383324249951097799219837331294587107327055481825824523430713847434756919808310748277662576865212487228675153033609264552772831546626297111625834870410853936519469319839643212783249685819479557879415194815421227428414139929134314549642249384933784427180062047216479854008039500212585818814019801259144189466591680850226062430450771585335874151052774276071523704472090095635311256387553766018683571177502486069645144160519513633880309573303979568946902143135058504971761238753875743706313576512856879389253015850678757564006367137270917627710351101513856641323144821862864059157788043906815194155729932362814730770436435534998565243971221393608168359973796411569386846341693631614474462104678452427996857239974692205989724757212400469737482411529975378785565751478933237279941714851215655215148982443813724823378820201483126500149552999795667454859184235788004297696205785632189892952590159311713415496108467312910446135326135090965722762488536882326603103132887203183165692285647458237714996878898027537626758072128231831784114561327403845733700540434603187704074437178748815614330980363944811421093997449049985477344793899699526023841571913499285594631660873515748140712765804727703497955191843422317017633060706440706411392504475160455800849476090755372629524705036310627700129087466034241400550433029938027711048986594294608459677592549752750441618629084237963435601706758891690710530082060112745728442806647043348536308944290863218042857397657265428474435972854053796835667137036251224575131848739789491268966941609598795441247438374202243434615384303203497843793614153442137435390411956287575889851952424605880610509541187904471973342104747836708285259000902300640811950857722054214968823618126924066513082837395249016705605353143796589227192662384925983649178227491965536605173252346653060181604798413404539044949072620154615591262311561125188297734259603155881400518570958972286045235237002889843044786339206529198303019895591126286417030707823479598008030998634220514287573611888061114695256211380228404665456624517204434148407991055003815309483190195844999557949717921690128827910352485252406901987083763336457246517253928302711020208255797022377437207980421064862394169061306580790940981922522445050608910606491067484817093453318166419904387107788655051393049426005315986839238526383672873527466791094812576790000828183825755813315632754285579743810253486440417579017201084111682109603055594897396794418657921049775437104246497498855308681365699500759078934846789727313334743377017618906902644462636727224235199123795196140841717042348995352952415159861810392142690879469974690615379053496803878709980601819457241372586598317383262540698953933643322534651248568603777855119730788659146472787976077674212553211358053877890119348496155922828505400517616200726077580460146206331072763799759562273677888510637591292217383014643219220513538402130515726652778914050305544746773818245062883566330192957440973572615653858615381276056095851975873992537590001773196198241215950021072080202435558925603278553746257331920430215747821037965430301404966591795425689146648216835806202162358839895843900892230050058194950944199892379905065697115172908453577730317233811618433338875358784243650750428724415052787013745782956727927019055803723483817972930763344922334248010585836805751806244190264839200509442121276458527783992847830240181410981888895524217952915101897304035814444732819933286577700762309804971998093237327835087764329155254335394413875996434186002741707285808199192638947658406184179066435254698470096461455803123701037740093245174678147261209875368686050006396790363955816636729499615538137611502882335250961688361369442062349874004541477920724853069455625427264876588299214172370410692882071699298031470263144852171550004316640432085924215252838839172232101787815373625795199748396725900636091251491630041318038929243241803668816357244480610978260875530027762648742794769843084358786069902853863880543578706445797801398812289216738699381930297096167089715622712955042806314411955909428074063004964348458217780287029031653886729237045204683303417800898489009693712399634311577050963268531929112036137768157993332067126847765204990019840334287184279800901971679928918728544238073513988268916683898301712811834630426727120052648429986302373295119149909691508397689087660506775494682981394563129458106295332708810899478881121905881736076622133791042793670781476334310606887286191888014239466482743584229051059506832922036109731729371729085888097734539725751733020051483222545608438507765800533834086406282609011091118498919986692500301176757850615580325337020250183880023679286413082318557979068310854785163180882754582602302668965581344503795768573473357888459370836251282153615404773237870771310463516265461638211342124189732881239427829666255416063376580535641510525180479696650631802139125643969560547531629700287470651261535238284908462049770263987889369031808475396378582388679314776541726646036066443757612546558014743985487560226923519126294232682174793078546423143285246844890983989008223568917863256427939275082903263002538152996372823060727462945460927619976990260715868566368487527468477242825001193060880959600929397686650396238322268575304174775706520566713922295299377511663638810433307898716157424141773255280364236839281250922177972993005484619259022519182265848428185217477405966807999977604655845845994699398388335099420737787687283536017379852277243089854057329413908222395621053537330534488001442068090051302734668708394137870602644926036817238007943105680662958527054151727458692908379114876084045523361718739006144955496079687120965447787159711416575804234819332420805689604368878740780692996287321658754126595506154204963569493370754765237412034048374760771971919696125500932061628190269347484921868609848736755161027473543313666680261555253547299833684502665742673840199004235345964741609358831012410557934655777065009676893696019543035893589101573657286106842618366430471388847125996360253277740764926683211297103598253239088409711456538291707844768937635490441806955794140384965206954193500749249765074516674982349914645198571565864430002476660077405246926600785179086640758438589637065244716416543906295649593404596285022020236037628882665273322502894419345821384036340665441825390207702483659760850456266703024955278823546539242875430345875786732877031390626876403407945627967877000942479267858096140547955475829061573055421827619157066052386252410716525200587549631784010592813902132665107272449302032949236022724359504678500230358301600601318054804935739299770129797446148896333910833034402050155007041725038632682923182317444763330898011267613325921435446959096539935997410466258090287903124858997224752161069196664209938008991360605932422764208225568646939037626732158218322871055386871928641620329114073116353468199179889367471450848298639362361153149063364070667280661736844826589622626804485855764309559447243761111253961121586902863401172181980354816489932081291921015617786156776497443039408918148487536738085900703272931480790982243881618094414723802127389215070672182178429046317397701142791062585040312625874193541854477408796196011436533403005872130524961807581628105151606105052133218505239906239410492580957409171046899172140683299047317441133310037487386539990836367301963106265257853366139819202106051931458929699693144569322325793008561923852099155776846867057434013516540000060127904403871621887458193828892756538167639324889566829883831235994130790350183188551256078368626870716662248423715946260863471926035309907281152477088922474863087411834088764063625154636471704590269941920129241692032903568705834532631379037928984661843938380379159766609617600066311265945824397077756896699451762580342975710160880468799802901587824507387064074474823552012908211830805875103010234267279037197792186327712574535333547244282771648745744105328266146203958626498483689325922213832688581419553074194997410182802038634986878879737890687446730496725424951792867344336247942091302070732506686080903388507757777970585076689957151064166765017070863955867628905820404045031268833218379280661224635294993463914804539791488117699702490146602162844094278514453413051864444717894662281654236689166688900829730166149552716603508311891388698140439523449221537065596809614917764481575245192991028061520833324200098065402021785112596278819367508502493794134148596563392082325401642809108495155179813719125695857618612484856374776150206327700527229038508319648224970576730704006134308833391089156466988820095169913112612958458178671651622452065600607182448445466963763932556043214693144155364705310862957062030798490451643486284944261927746689219847238286644335749510853543282452804236971180680927173748759918230938877531411220909896073691900314506624490726614761209010216770196575855115481750785994306866755774550908432330638678650208585678925018212349305217599604328017048329474393909322621730038752142984790668049176134382305197942109994102380183622857911111263450898973385287329237719733761086735186597492284007075285896053469797842379009476983488637568978746950146764719298482724097742347413810634030412840303185418780995293337828093290620640180429130783960226243951114411111137326742681170199881538287682320875985459536887411492101128518654927137553278693243940490974397192796584183219959984077151461460995580790434028520042853458762130996431357144900908431658416194585564121272572179693675578622066409230549814680944382877713163295906189308969060835316294089933991335291504755432342410360680343672210797027274946611701022472376021856751373383873433782045635360212685944227828260888702538903368842031576408171169161961757343252820764406219369199186881065595993235378268938037814887945521774242945465672413821666694787188390709216091285975618547412235729298046878398578352565080520388764085737041509531335377340533435659488315197555492049576492112374450210406136653921876543134261183559947837559187323778903166067594570630077687380658780361591506308789224574797059599631254396455803619952138966556528101089426695507016237627802301724230179789259968758856519546351720079872630213693693322068966063005976008453083243632078311373369403376606778185386220998191040508067276031764489352492499045793454709790754522043528740529231573458774417592850426850180749491582940735543773692378370544115001827462757989785808286913995753884076886056926133994693465208508118737766428506864575820417362789534794683094935098571192801335540002373849791191760277993870284779947813475009186708513157324493743304912626547699503062786865093408633889757853340416187786621239698668957009301836181330190625196669168107115363693310095248230355269029555553042670587121554807105070083836438681724059781536181164514096344590363744254409786150426307740537389872059226796776625807161048537897075820132516390816045634510659722096668182726701349779286029179654077807131639656255061618660737414913347411556453392068709228129560374850991342696036725318607784468142841548286471555582849630551285410298289593523472010040582786624591431368172456096602180227808312290827465698043434779834508994102949453646422262107313766722909825730320939980608768627612368011222301763728255549470062109898973100704118646704244234496946331843096143219239849740821465777640728252260288847804342049728635050865516561776571802984083740628586432648174980272652651887491302432816045136954430088856373173898402532556675019824245609536730373650536236006082459273108587464470609284307139324575557001733337866949302737580661650052910856385846577181902850752581698946375454255114548000296156751182440282471922238649200305103526740012329497847106982168440934877471482179915559930899385731352016370842787774663124485018241419269325148022285902542287262815884818981579172139893212782880826615256414001053283325747137889954399724401174316607025199316290250698228217951261436543139151902971218771640195939636235286715462131967110931426134480701686366264122329893078391637915286233291732232429494958579205534968163782741340486785980218168666713829624105759325491704908896031144613026450016212417302135486923747715183180419396035197336022174572063430932328170094462316251142218969992019198230986143843779083038108596104083116966160582834398700795545261114272283096786167051732161133972780106889940035661928416973553138955730962595105761711368678525509054796333415557647950357098273494890872951072586274603016970887910574894279468481472517761335394951231923790005931517155279353763464501027376243584379385577487778043870492598168963383469220799248323089441073269694305765692295582131747000175889820904558304827084362036479809242237985843603279247906784086505200505468437144727402307230368750162564777510454271387355640980656954088132199347571199085300885121850990489172841042149350741355531333731637686420264165499696268710939837636987283077056546176406862476285864462850839283171521943101273371987508962537852377991032413355476410874673931547955742307650209548032108585136003091277541110922301934842483748608013001815412691363540123993563047015373690574793275427505393904252399180660114012893143287150888914913142783217579765000032805412161660213314087377334043677185926712357758397268612504213897236436476110325099887721233913769344436220910543853544839664474746086343514717627020742055937665447304339513552074860846141124768018751851571267594181918786565564813585386060154776059573636995661561071770994759274833832476124138865233730188814659625507069471386303437333253185238668716865746459405078099531159179670346320338256831218892933998414884824765567436217675543462802362501145534094127926393038616950337058530087396441100751170505127475744675205098924452591280943552829757420032883007600362644354747532985612201772670262083706251635578209894691580343697312729626907866344244401188770017779743794863250983234271029977062079489081939938100124116359627036218846897928568894697248628531187715641313349557294707826622798922552178000508005053310732722372307999033704606201760297787506075899312979751703818862636752449123179426682816249384204929042702254290568197258155908379572173871214202956995911545483196308780509413548543318993880119300698664830862850574185423614702325200232554837048487426028445261414932742262796719478349856126222831402340992058970096634544036813029520018526125617084939738472039972452235215346524497138407205134610209925381002653910345426906711966942096517028146451731683039559113041104500078111445847697514587189123154462965038370263782963950086788000077806099294319150616097857909922293076873904301463304190477569926823184027482201352942359623812677337274498560307269040663206288750976315950286017782024180245871688271507735131120692634071614792140376566656358263611839339096678442105751076263354789605472299373938449311006551926944414651832479012049808655434667897393170279146994400581695754637561515814298216757967058759726097610409228143844812428596049390549130230031941801228453293943398987032374143709733258872717621133182534763113822503508537332907251712801726291279094369315225660645307663759177060413420875097793967169807973927928164623039242731558388516072690392727850301360964879113673003917454943255548425848406211355995027767101946682479560693134731810781302167227913091550291303566467125426364912408485148108077229186463201633440673598691162875342694550870688667006441146229891074836313555598958564061979456340489229015598163016240338084727769642678770762622867690436254617059167324068808739362404998665772715527804762942052150935536547947712958443793724606369089243287263693181501565709800717130943406724523336589551222140203589477263675900401678631201203420615760195571451168880088015277779884746431807478532491707551810039661849444845419390030135687541806931329807792956327712078245553933889225228411919782447559567890340755187989660652814378915975512758277506353743670966190649548744750969077239080600909706166486663943807021623402636438286332648890314165789688676660917677624909163328337927370913510430679197149394668741179871478094203227555653172939899877617471061649856420534520889182639202761985323287290816857326423977685045344590103951250554166212328240090403572816370430098230630036505927517717810785887430632347543983802369053201464119279561203230588357850930954786455583251439275049135201506389455322981380378758032147730157350940844245195360685349523576500965588293890693370776511666553464791470952622956237480507360683014698517283586617163894908246058442973879204154840117087175215791388447028234745927923521048230044224588673053904712514803057536543065840924780542510559349239330600122692936526306302230129945878676862865266322513700030938700361618817300551826167876060027974217108893810803602679018624125361850328564631504545317025099168649416414228798031874489581120081099730348834055029200713778703690295385072134104946051774811398438993680216107745109250746098454498679917018074498778549400346837188615416608900991569586406872058645419186928563079262406222539122710027544468975571382770642995102970194206501592399582327570270011196591156942674642744552132872998439643427035184259426902609612326917884775864354097245676235675453813375195511974710456031682792955072931475278965642801176825710245695054951443805974693347118513618647761042564751350783422051443622568003267724452985386491206958169526183248371215326841742192950111955154235319874577942852028462895429704167056188109874603371128967447153843914079404334805892239845281566779797391579505242863437516654759130556795589694637277547189091704154037369880290893848664244067881167226736781865993708168264169082666785976587289051014409224363235073123127453397003006585984708562592537813622343419671665631061927330226936095178442562144264794155410877147163933488249881706866076719005825889896524939613258979025593629577287297071514429896442412234808541384731761843041265748679595779623826192706914844004836345460850605497869624414366385969773976440169092750518071381230107333210479114965869061425306162922939328490001601331100463782156418439999440613501639700214866360793504020493168916234455251398363853930096546629302552215231850496653004026392116332961134232268931197304231916602226137672792523015953548211064033827997062941711177248504854242989159604406267051725862485688695815363048124946463998022589685671211783058561847121601811895170497725978783976480710371385964050275035031136930491847353120346302653511274734778904453819048688448700072098741795631421708139978573764588138850685672025396133043129418377670565583341495814657721100938833441022301845756089077101470950686881219377953962976423813755824741626309935905329391622851293046942925474020413651151970238494292536921831421547990939682080752071121502204717498145881573096188342574991096797166548375788639886517486466041291924407372971479957232447089374232894213014496700007155790115621222672640143042798565314565115016065321565020844951374346575535299305649686405957385555765991674070112383986587100459149085690917963666537665956570715014682626771675700414934546990328019706292835001439172012742452035302745643191287672291475918321039325379508715150962462525073804226392166795659432295382719032020902294663911470498180638001957120181297967543782470725436980422901880256822740253478858832341300024777547184039967374355283786814844781563020065741378966528126507799530674338241774327376521664565254687998006961132449204090401319084334894155275445579795622820281683375060741566945709203919237413065100691872461285857448824725435293140994314987388497126860248673347196724138628901799507495079386754056236067373881293549249692060634478396398286580960058877571708428962711128366072368800109187251284566876665746418949479308340535346684827320694850834187497478945980750390129885844169860896788040473294346146487564175677518381585021342620595466374947360228484916953495906019916514028651323124530755019708494806377966363025890268792595284569959983594561068512956136870384679770919177824330809589353690172983473096593495415406459642752907377038057052179218338574740185355841020111026773044827444896602577832223627337423638700641295014592025999064105213540880305899042352989037590082368337719149177798409842711947508602277074266010607535220805499751013751566923694343846597201721104455802268785785325908624750449964846475741106939895237264444116173393034270872266371011759905995799564323917159992293741069632644111623107233313802307307860741003318811870788474080862273356351257381365523304387415492382601107272171418791166360237282773429395510752880407332328177992057150092935869619603802091981525674454704252575717344196886829987817240549968457267462939874962898942696020895649647863803732853062875550233380691891733065989575295586760312569504156085383005112317628688789735742238262685883832770804620059885160873694363547716468338318956570480841848434265677771016328989845238906823852950982903328295913309217000801510165962516582023118375563957963713527321404456204931446571291071027888455357046862181510367711468614464488119906172672616097158698723439356474064463418679969010970655885642942258488416637107036901254572209172561224639816516519862306635203916099748468530049429528943169055348407727406283920525940250638936895080206282831539237626191432815472116202708345637387242111151500975895166155783868880825761896594616985373779306746765654143145752055912552832493597571057983279523952930602124076841181769617184176179938757822526840762612762775738558932352227384952949303906008558075428790374486255247102548670247707252481505693829253904466758587660403440634871304945537317952757876982454121995279160317134021340473897777655779885998097959182966799021370664058683885011054705999276755839693496874034021304394110518243201094321853886816860630366781563173632840193892603721597377504636416790261101041333390129696336137952769771542485335136310676992692574687509382568872554208980388302533438968370723009418066456446772245119388955866324468631919248421220997495759927341335843331781374293170714924676321486092178685755873495529472407992865690955610960016846611224120799853092763892832387224693164561952089348550294368348217086094565866966050321049551119430549602024531205773918087874528945040454128272006792593951557495524901577459488113531586603617773275681034237000850542803359299774642886181695173949880442253284196649102431327108503820670202720622775258547467689901389093947951192913212366519462700333769599501818080322376863600664198891073866943948613893576758484611685881602191316694087677424263216503919206215997087999563863783801485902132500590284968642408457079945164045505178256604417806768480704980312704338470551431405140606430682983914722661023498772724880289137776131718749282372305597934744034706685261198739088306241405040603855424327198275870210760656980256091533210542297447116588734417641377003943799904356837455104483177781426832991254210709100806562826931382560719059493575487238359802072892403021783524816614342000729007422709695958722433510545970020442306158028772076167757030269978202862788082475867335383436190149510890628580027693291193332410111883754218017941642004478506462537730788146070098795887630530850543841284446030321955549360350538181495912081285237260037421093500959684502348581260696600613390985549029759197265882112489675977210540635789934629243159057511388497830481673893152058224415193170116960762982452146915736989793234266205741713829056926741574112901993331812287464473696541917195746743170774283323430804804604442827302909886226820661560606735348149271761488174395120893441857902615121160639246166728840891079561404417335110132330348213810863513242968633681600540999510765566185327426005727351023676257306278541682519510185421891085172141993158984946717515096345691834055504561419024129041313870474945933588995639023286896669054472430635116493854589566990298667648519079126815312351779278717271758419062517478052035468745408559767884877245058937382208305487632104675263717166811209197394083214356593382456649835660107720919722718470709841887558085504783998955367159229708800650166362205736328782228733870925459279983046951358418345783467975171246288489314313723845618901424395302288196660598237344715139845316242826852785092210153331201368639170077637237209376879315143513225731039554386754271791508370914520961098418895075935607761839090505588779780153425240507662260855367206920227910648880668933210533643591663112017933019017584251512048237581105024306812103210598214407386166508318940885470684697136492029181974861707534957055733359023278681577468100991145912370453407740226668993423895751108316420124299950294479007668878100725796828356317677531488378606739254785418323826412606381097458730243670763072198431163554241660417904505679079778416268782990082523751064827134023389755684408637937432392646475951437491712678143307144356182516299737360311677920186981940307504724792960300974754633680003320905847084666873506737132515228494116298604663106798099852701307782915312924477699165532151310296306833825028891634934600660252376712785238816708030270864205725547631564383337699764679468028138079465112864239099909318467407791119888074806481899101584062665426823153678313066473145745331347048586332740524154683662740811095368627128665802049876829178767978834970433502538701373332734341065605834945594249292468966505994152294966797327707910390195274639583122876434950058904733598428944088169261108675321748734645281357918188665547487858664909222574843107046940890635950716247840377536818192165873287811148201704304740363066050422246932492274441635753978243770708229295041359681827370423131066896147060271161949861684666406561258117046157389772431580113512968662292875566872612239428495509537010500621038957581344443725297887694745605929137667958206917589071064480002530355188685157034747055170175318838724706885925461016691074915799955693020768281371346907025171669912665029774708111214578909301460777082166059569158744053378684663208768931791304737649157897941479010441001593215709128806235378418209560163711945013861788264220711009068987335070038577025758076501018225913577075500178968051983082682879147490224926271077650325771663477192362581908834232782441398198873278545184523486656194215586410895032075349048637331165366860691509381789744174856460950346649204218594113633022380928778564473970461725827846181821883284781848433203348749303203755243545460624476415738740824398747057539581904804549114821376633437298045275279661396946904505806071995862115503519582759364576683229902500171975920825275129525126817993483078552109866607190818822462049294268279330333332636648444406586023104285236182072002563840833305864200780317932013363219159914231125607948002484036811245364920295739112905713291646639953204277821806617989138749200685384472536110103653336359789994051178844692781318914853175654074819184516518169494208217876077386200688041398440097602203992161728876362747827550033344772531664523410334527805887976547554532939503636814522268029759954787687994932809737296145342855786147500022774127753924972435010638058963283786705511069837384270978979484964601067685499031914162890494472579019041714386684947740304586155833557323041096463482077273501942522572504571986215005783928221783387648203785421341490522822295053664280329823282352493729664429594394085646149719172215037183620656476920782526812455894661270408872256955579124285138823372629879897250243534260703643496752832793667061203140141090729470886939954759102679950781700369134894804216166870888935084006679115450540377408038346940658865272717294479209488761084339796077876171940219246788194863352546425359790907065530111548411486942780322254361462947031442417020373853278687898888747601054660334010526111151790524711413327190763812204829504497030751210816787966447067255727108974137686483361372603550669821829615341423380840238951583547412584950046047574986747075865488566026408717888424656274461947967511203698934213032199890939225827367393062297188577914902029633225074238778733851897083243311722159031810495214553487463206805737229021596153234599203437700407569032689443268346289687926321524611718625374686124644201666732091320634214565191585958284608440132059142389584620031304533234074670092463007330703798574459838341122445764753200747917643801784120528887850956223115434106125525820098491327769892765882404648413165295760452594529561476858501823262329657510953076834346018871582015169862633043084480912019168661334244446816803215621591606670039934617893403484851962554889712018871600554081390030388980926337226283601239354326018546114228645072595254744741214890173349782043982709994092579919977494541166759843107029026151095066430010081056481259602074765227218837041743846421815221059176938206695097157711803130353883633090380861116890473376033477743705977778013213142276684198226616613122445658632253892263911282521813630264943368708606219523359250584362642338957853477957524351993420533747962362622169704450528483596955260983912556750069833860196758022684538983948086662999883382984835003200308280422651972049936753995454034691149748070134549015951719723457996407505926239495382714667803875349727409045934160414350555408226407591407627110962578218224538778797002797360033104349790769320610102190789624594449973181846971055825552166386692908879287287650847534046442019360159492582091724957460861632979840631583583688975045084513182184239850919636468339455328043822595986757130913352590135027842246417773824881215664517632995512320320303309697566628904503520817719020188447454750900071329802522484360745155115078409204166824949813687025621247351453103943188027805634566614704480003279824796132141383524443771131533404778201692826137551070934946150803726424890926357683345427099087294938479344287024081237281062463940663227256738934389092602847184120908280655522924269536675076174682401551426824104350589600421888873757592735844246393927664355857406778175163754810754791811144985632160348606239344321392242743173610322006589605383639160490171130730220846507154288642004595546445266217774908331855009584970665308454949355945417368127240011243430551137149612786801781916115405296375803329212738715088446630439328203407520484502295638055374201821888037900630845488952977327273228730343269933707798410294347765358287824488399091224557412145996203650715854779405298366456327437148934177422131547804515482430569769768986637436750722643763474350553188166096979022124696042275534733466945459254783223497917035597972220031118320322263324516582198207728554715303042142521282623242753721548726404643017954973781021650246034958616774969253401384042698690090689754806121674995218750552465203359860629371890717548612921825050573026838367278699026435003250130145337557166064464204355083804247449858274519901591433786135095480027748585601456911178046225328804638830601347569213458539158385771533162168571072717760750533442703275265746668290811327882111727353418214886296802304319145320786148414585517732554060768842602016022637385741540146389574746562838470273710535962804543692569273344446697971303504477265630680506306498977253470562563178411446966202051952295278554593056604427774883852733179564428405436802042666407394017691613759968152108534045082376717923018045812284888319012672214187101013059313081100031125656390421805280150808810385506700569472088420161017581380054214666808266049768169656138378207741967075469955535186389503627108354378369179952271820874833355125331009297201925834350563680545621299880592022096592614225363399900117733272095319064716543208048029034215943413550371676073793449299170314081500549278406925976061509570323341239939810910823847125550508703173495130918940784844904536805099361501684304710409710251644011593465923575931533555554391362276190388880212405948598117446774734170638738942056757518553924082974704955059840790784791853543079899943664361420906383406803676150038900135318591825272615092096502968422461837466986677623342332512332546997137045086545135161775528669500048326933230233514652487170572409102430371926211403536392664355186886849069643851268973732483012499709702615116180436158505187973723796859839733509713444174240281075374181979131982211447453293939445140450021136756510123539007285098987610012119299302023746315426153635521881584304678515012845815233521399819982669836719397388974408647657695208218880185241941695498428666353203108952514936726519958005988206809649399078118738848916970147259831348679945129460418412891178318719535365179173120408156930287019164781207353256111770127089950683020800327581278751551519586528156348240273639663455272017762873577882505135604236317780666594403984534812885243201492804915105411192533803109416059355698005795386177073997488601865536137990647180767737832887016395823600751592555672406787569791570158858548889880470980279664644663704209814519616717451402868940690350016699156138349254427065382590223852736166107379862145815447826450972069936236569533318673568416913069597202199904863183785629613973867866322140247518773347882277590834300858661420671314634642991112039050726258413059577566823114805743016479889190444466051456425732615621626804890808721350789988781893639570255491322941215945405395819038790286548641478596974811801391882405821199536825849191900252975045318605027584427788319368418134399555076314881899553249160536734540572577695742559503458484114730452653931575675579236159444229627820199987442884665393457657481491562583658696586626943911559911607663099210365560949318415943288777298543084140885442332787457584544598945895229552600137790372525751367169700368645693971568584135803416502760038920821807115125544370986666624245395902228796147051910093185985779829745843186395358281224950450074299031287578283015203142354761509741046731978595603121683026705769912463272796480152766420406390214839201124218712155905284172177212440856669719515496763948040556295622362765286615779040175095313902676299551038410185381834928208772465299983270376736290432247195425671303118569759766864869704576318143149268322669043149787377006309580268482600695824861206823036811958941893173216742614895189561335315983075283279806868480726059469667274849064103207215867805932926783698492574036057375262414201011556507234516200708464113494124274766620748586649631099963159044601185117350336210947852615385559703018181630630273775639041323395486535026906098974479615016225161810595994998370250438643258554509032876870506631605800349739436933306131176095271051634860394381569777658627794359208433218667576907654069367983375511533173511219393654657652617342798134155909379539337691374669455513748123382457194637219792159410163517240907145751054282242616008954799659152264667561374514127345230380261218927556190931289421492380319970497640635065929126730925225837220324761314950272334214995670705621864156033521786168926049435795161618747661862330024311578672028940446313868199829375242913967141480276097399501425157374314758269773734264654373620776034224306536948461201713588994129120449401626909902957630522546072895315360959054778288358011055743457643230452601932453576500318984581225836622199881882967584894022606177010679932634943477524711593241126144995813756595066660243707589160537162093672253934180712063632459787345035294517311374628214664578848888000279058279439282344514671703403178095255006502731387404377345182961465288071414293929726107681451244087358098701683530088358322681418525581591564170807619066327865133650290482936145696211599062749684845768026176333690563519178632308473161280254813538802143923180366193640384960303013016741728260156041919246514007427011562492075789807745353657745623323187258577551545828802239966725050414090826600075838742083164931437588952422716849434137899903808863124756858107000913060464926916694230314327623857293368351426953471262999607164349175791439623244889813202284823756218700980456215196090492634547404691444741627604213235576868282420788049140434714095168085262716388262491670819338303823156643020138520931290810779540949094636259101428971085236281372773599055270215744226375035766427203526747244008480172774035061504685466161874269630928475852168113494463427144875005109284667049559057444693670756672990153127409527567910549677708679284545592981995487967210174369744035346016145725879761006221108583148938728565786694628934868855736864011925662620499158781715702924084047473802349457182611445384584138109600681607210672369031363792879403668044619198107122496657461423062548472230607679451545107168280648135868616361964968157135219710632752212927617337636162706602607459375927912647814914310629642023968709628142531342523027339405579573065830710017815593128431627013235811760429444743393567152407439656321100343740543134972173331959934703426166205420608207144946011916531023449611688422727218603516905400398361214749887268238277771011804172092715682213431656805010177828877520524980453635104985078248779892743908689176554310318955385998555320355272441561203088569221700231383697589403317731635433419919397207266982441993559452645459875099685067944487040523744923819144725227538734582182747582184945432520165057017342877882674428063717898108707212336982902629461711605486343130641633697346181616713450622799888942879142909418356506759748825239112906629216865818058769981110082455248839697840565581873379718257609117113090584335792793175812111510187464899196275856343471846739110838914547239469272584507316064101148050828313367464158645156371449912637047276080200844041133788051039156524517324364265540561693402624814857995801515175118021220454991096023531981419833186271070544757837321892911706133576329269330666035185622320837137645617675989785199234772948676898348483596955099364831383377637451699568963256808376255106787432008584529345949853579139412157563493822964505365162201510481781758143516852934481866521647885403196648974640637890769181098750421696862123039227850714779076348192050168956802335712482513020283321413798705530471001027016407675737653897660036400984996569677068985263799793104169258281480763532572490167434282835795737871710216027045206878872906087382292259879502494328420501689224818601762692108235372984409373435930056357544909400203222838367490927443875333042335072826311497192307199373015470980646188052544645118861910227783465524981226282288079975113084545044107187759217424482101666459213175130904636914293428945348465193076124484353065787013869543247875493885165107428279213405283172309167150277870739829654597195314304745324711986436511031838283177323829207501117889932685623151225419588739464211130680941466968205939487615370178743041925566876097352613696118294258994388484170931664049611453301227082674352783971092330287708126731189544555801145119832620553923055827155128071940376439971463048338346934958156314849705748555589735506658760640102037840059371405259070032601336912253711092519647517510554704998776455476253579899704436897395404867276521587127268796675292973499442494481399520232961151898160223415984433134699315379136774298263491793606792420939972277444340571267447387030924577918061008870323397564464117754763406263071924831598171768475567119900936058694195353764911047390162981194787642210104912550205916137908814171160979643671637729580020497982625604875668680026745330636444017811418459237792806035746771717311986674915916818323703603700406134989255511421280415157056528576849427536660113419812264675692970538491903197926817843574754864844874066577571132473430980278493837760451171144309453897240222146578731791347686272105566339686462878092426245687683822170753424199638565042953280761474443058479048699681105459010907712852287366891162452704022098655913311654365945121555584923029337184857022323896642056516862087876390282484563346087858364625188789332432294905601706070521816385380683099665397536642557813041920094382435111930417836154777362106197933341778330383336343030389048605794774500230545355847703521863058843881551082315391564073670405277196649700432518625288726933393521236552516131862140192694984929788666613710907227437882718565982713733229299620751303548168082358177443139957120877027284586889699108314155443447393473540990235624245507256733122277328438846294948471574529553916485824625966197000932703858310028811235726082310349434839697276669077793590495318177715766964673513177743772369034149240573324147496050410996455431866027423178212941670328134036163596188839140983214947912025538892635809929758248849352540014201952105494637437119554909545052589169929619274177260717524879640024954463945771647580937419288431670378336346367035443758714957833328424000440355535792863110632808468054824919346271956587449269680846271654291096719494055474462948642619494554966636937475986457964930668625799078600175545692582516481917243812689831094928975673134096242126808056960184023601358888749729655580894190699186767502290264893382629160622146904037461209240653584638358210175882411768316167111692837750031693360093082506370616747749428450287611426369758913338880167802103208312144075382614034818561445087756336982045995356282429462581924521161325292693698604743556086326767280380962702745401068857477571996982267081419219010921614000212036122228840371220470988483359735553736676576747606925863005202318203531496160106876472267477439483227745031250563055583201767377938034494303541672168937678493057345619489198048813958839221391993502074544518715490300116974216576232993705001081974395482912149163706534877014333897963405877192681254806501406434787583025635241963682679971733569980518637448642526950467963982915577417499306672103149484315460446280375844012402346317537920733217033584695674950055417094884208387789819208482356247411479855699079878561645332012038448338926687103616613902804147437095975566859387238348379817180114209260914444901486462025074756045762238039779129984206635177160832543471715631351924752877818185243545809446017742805310447162897601605072839963907089610148416348155704567104806384312781053107007934345033597799221356543381022030743795242513677327246969685743336520343836658681854400421811191000732113940617301553274861336179715389035639692899707611549947775339059956544672260402331229462384450568867460698026356012083760377980734377819970507817414459280614940177369714462992191067128693016469094433592887010266026733627239740994070500497535819945478740569869219540876335703316900307857746506100811240829739607887380635540367363412040739067392376804600676695053028789032895710158637050640358566936019468845350536726975207713338938217069826192039962212000312278639250644364782393972516485274676687937825043219616580649994109263277396479620171249490759702730762267168819555011737827419192042704758947809727638256350604100154175616924874802086192663447012455802509453436286809721900983544064525783235658676370219743186518425417518783865341128744548798157137693590840415985778776956195448471605116924816589226127874080402552729923269712625879008994109585237750987355425423891590705758132649719970132389048040509057905256195208679829202960243690554252436334989480848013207020259622941999502478070909780914476973959308482272414888113875915135494974810815088501077430610877054412289944540379208422574836951245702468012399901632857563238380994577054741185384287900923160600028071246311543841173357841768852906386899495190939514759868643074485104693586172244328733492328790475310651403966545229619542214310682044334290461489559057439170271746575075537226629699332435939944396837841372781266196232985807613229536481449669295558091353405824000840759652662492706376404502595151541454968028485196903954743065737302333117065840822918279851943855869551937140129498682095365261929628420585034562732892836360467771602978289646134130539253944862959348918942649773241829187116630337654137230481467104961565355357079761944116463182868995097251542443575427102149981074037934699351384182173430038857529647989415451413752534513689372615359428263345786417942952348691727670975283097330950276679396836599397813707643945662047768775107761510590917276627242597863124931856142413352510304925045648379309392292565309261723580630816804165487656415394710261111928492504819648371905777998313863301140144201688216000717792433837354273355943113202100015080672303763103569650502550073404839812094640853815943177284692811496318850452229982860444081360142048054569298868260451098661207553663021706009154732665632348296853187825418600189222784269520186814077873205107950655895741141214740045475631945670258092696679612081883710996147685634067495746989495874046301463537331675096903470736918209194903130973636161336981670638307943776303567375258859447529246904995422195027460305975487948744477825563131915632569517035229405239983718362957295146764564802458306016089730264815741214258133216546881694021287633387397490863378947325951028119875336438040484964917432878938244552120315034597044637776667084436264675473038615620890855703209176594100421795555444960613894795211355788323594620948569915976706941341451956914830033889408234667027444755278460335521809814298258270495291567831886999789401837828086326438774831589282433358760067793505221406980888626397149816758133710853904756011387410565536660649959480970842012496565800220648489567468874586235743375459812206548751457020521633287700786058083101518798107729589090379552258785058702124427404189929541986075012336570345079371455849598521436812142968525173190611118455294869497806614810884523652916214886568084651317776532730387094125077449771575417991043495996850406529063275423179928286325284938318357789779903992306609724094148220417714368545451352430207280103047242679819197450862530501054145359217455140301733029460699665933834795245717167348482556138345298584150585167215935334701199372652392122892375644697390045236698428382910842025363819867503931962854076361898515274455063420152648392547509681437177923949428957400167612194785028696010549176339349894994964123820563344924895844679380302417018850282287293320430686714891285951183429227251653273006904888553323648454245877499154416174653247907818377584818339429964037105920630762102526387048771424041433420078873783854701971638808234521555680436700163594462925762644240589360225609642962110649763138886224712353855149054872451752793182681047511814091280152141614704601096502380560770505523209291794547084812552930927595320108339491658068758510996483818279125045261683987756214811985396148028387340528827785054211318145554773860524791291384107870171160097941171019367215662019922447513465272787388508020983951460232516399354704446156798238399880492455908257523623873090601987595600020577144351417881369387941296759780010330299561108688164117286710594986221948528355399726289631333573383434850752229329236800401687575107263906956085238342190867832262796102435695160026620107624607430878695515268613973808056596690755370424615526540895953916477538941735051319125878871152359884793479504904393014605814650265059069850656720835853520961834275669338897447796577775999119365896593441619106770795953689724961664271931910859912945421223308835947074562922548122931199532370669148647692521604465273382912044861603815669226276958807649308763952810911945940548750475114104934212912559432621405087165679306141475619950283098656484926724149103810868886687040990793494878261282630260421836859527872159907984427916137796914414363312155787446605058355221321119289249691814116469205132852491099913995663263604057694810149173381665878005044746554278945119121761572046973528153548061645023235963166454116113301347085529536349198176339437115954588967029161569967801398814028459528906860032911275239385587633027196675488540444695654766402846471604932838366288643749915083524570011023183693378217000447103232028621105169433263498068795216965604399142479845525099773383821935463029265126520341233886546269820871952995870025359715717132889173795096878792056475706287676991972433404760492335817157948335740084530356842136414526730512239876341595438360144613605167481118028966580664116490232193896631998858639300144282420551008204673522138838716721330734831715534449266538089416847499796170752337152776072459718734555385092975618834678615231684916521686832436084032749298959372444507241804065243685959187217275329039312931414481976136312676320838730844744819348569499078153100582846036261541039810421757207597366881209877341166931842091259964896614497675194453677905686924390777256513994872829205972982565541543980339333099695611825331171449055860166553994296312918693435786322554500829018411091377080989035615695495249011657501924511500728909051771082901628677184941005540226295418219509370998695176070465323004686893616543277110811265883205215652632729825608023006296645939922862482782180372846095492760393698727539715935444575344113861857846712794694058609357451267538687706298434018075374944501699770641718171121571023154389558836357618287136837037294174889851003839454709407477146804937827568485798666881421692002063326073425953945551924561248477201135899145866027381712627313180858658684152973072984239984814502018463533453519168009862023312653119193842365830679059472057329202249611465513781513534308984904900671849388503000504072317990443143995636599916053163429730100287997016965951874759022612666073099038013746092214224793201420613128507785187989409568748575491130260777698455129600914520258031134673097401705101883265464658038684276958033333436550730924381027848717319013064485010375604311108461092784096971329095558370325061349777657256310776575282746804193973312157636961419043589617899640945334285900263718201430716234283620532333774862875312984821970016572371803398701416495378341979791092018745738234468969826003722027988024253221890463044419917681740315010491905771158033409066322033408608655315726686444504639322516258120618880681936050491844505976184183968549814090719339322133831588544882400351323509913965234694351899061203779525019378370531318527499730735174460264565948125724246015733355407874147488422050424612972072184985132604125290553653379915281445283532931894697002424018850276292652839726547502465241248613718171279299021797029784935609602912283124897394846318025968920163679075209444384835650589648918890811754829568019499368926311834278758868624302965066433143775929345537165355710081016657224880584624670034558274425090402984293796747864597672699316898668390467477307825561895786710228939889918305832685550121318987607515804649921476232649470225327898718706050318244713763138526467518593618628069699295434486807970468164147069804982719350935302679944793271401128537622490500699299900556947534125120047581366400990257936214046300780416509838387515058471129506761130638993850746267907333555158445028219613255875402169048851936369132747214822001978516177573698787882091536829818335253463090155684710575022393629925928882849483665637295784243100952647017626691346126828442690736128963694479278430011184713690341939016573190896710929139280139453148584847270181960471636271834615962226849302539828969886300967454794947965211937527646113974276867673870019144716975728158897348796600791946342756503290026602036473467633775375225483482221167619985098119589223394581661193886978468012337255860505400891897645728255820542707326110084922907689273092823357770699106057059354777965391228124443131890588336356241455221397067018686619152939819416517465497474613379688283814911177271241529174524425021138890849305017583171514693065733715844326033053249770460792972606060215399380192781892422673479087510020009742670503192129407461597785860955710690089201416413490177708927477736143666444573485784061103270519482521540603942293164739647383438487862375668530431642975997961202011021908321483528641966018139688111836494029458539244755936459947275031084296829652628089824111746594667671247088937940592086342597338810640617806474934107651669559394179471987154087202149945570681628939879827000068787586258859177653030222083421468590238223083692137108214385006035829803469470004542259171697841741796672849895302692842109187481566232542131554084946717250336650600430318167509491219965064199285402774791363400328054558755066008573887637570561802853384085398173457095636201646127200922920540770103780730576531795136337876075616546549564176564445205211199492821817557090609174203748833454964873562304037479247070830275935254575105303413380387422142703558388531024272813268617096121872446380995817787445119699106203369577982353450601062590210935242302594742090153892780007370112787341452572452550095321760131657703279568756045414096455863687870959686291818206911394467037355253329911964422532058082729245020947715355726495977857283010290288259809136179252097389951380097624534223266376019833377439856260598308237509369688049554425524972620382068885087931740860222953218645070035515593362640149513127966006377189410332959541507055012079889863717308829682987352602628142039130751170850981901289317886095350412933189443994227342107914792313355159613388106871860287865918634296101245581228241598542481184146946083293059881299787045324445523555066421804971378707013570066888383930200382762417458553747454280240359802444178414732618606294538257124233667217586545520814162972903185506147723578136038881395210387077465785560648661901970352680486564869711406198711502149593189163668158393151940370412758736406842248661688390378173048341336480055430691833972214228586716716251948311574847342363449368437534995428067234058576628557066382110100770689093462442039359825326299257135081356631313571212843751026970543970722363379104052655695972192973821200770668266051523018232241570344639812637986248389467617691347202067336824883588726644204651953551904120393563407462385046915586843751016233307681965512936051315415217460551040778020626619425249550630752435848190684067030795972157550457991745990198946338041256410573673367249207108701740336593588280161114008916230670614208788110850406675456221759040516877914791822460165432499755189916029241234508316854708475901881785834984214613254617327941850081724488980435353659133556320237596334887680472939112218427859055161068659509113547042370410846187983036015648134330691413859862540748654986544841353391426164114214387696870906505390590255873906602739633348248879627117214925805744875455499793483799352589579033717800682013383908926522730694871675867351307459174399384244356506815877648157930773509244662653141737155891418289790021863614300196173263921762357457911721629112939025985171116610800717810165205071688546865272509000737334579724703602190156274052296777475117973950939784272994522483196916831440098085631044708127971257830982785587481501137881912798033029810141288236124551440524190386965581341055301956215101469448032470137768463761387895294890786315986463070782747538209912584894212019017946028110138525428481569299369175453850576053143926344862315011803780578888005428870277425786293318993767601835098567843105918231721686298743995431363732961459925629114503545946296085577312406393389693770441854975534907610193568894514072251634910772197866613497403153143129819303634851532140336512471338275992017989653650295693800712645061211875863794734844337819916159259224827075378124142702952957358659557179734376135917060563144325700472021392252383855967271791626641147280703007451411935254243843037939267339479483478426583182190090790242920845146193660486534913796498016450551481947214003381920659514728485579234504602689318553644044689769988734977276818230436264959751781726019010722736462207616084572178839128700007449029598498484503680643724699028747405693161212015612491725155606158939208147701782421628404619757510524775902009567293473541996357007344038635426104388026547054440787575172766140698247557457140111222574643381363139947700935665162092516871495285120515900427706560392314932518256285046839313624879412670435548060298748207808186062719070394897743150534348879510914216805566643180442608734459465724002467767064619608308051381127144881209009326782026058590056517918350746082387423911113956647204928164896217156077672696861187626977669545248795283493984396575176920703605980650344825911101113901622775814462358556845958661471886801834509530114180591683621206772835381783285592810064289948179691885969761496445235481508021437177594776488361436170181724270016878972465088758832388082668544150807919841397381185547561872348417700870853103715634332991462813325833074189141079186153488922529261432802286948723604501794128509603550362600057713701296944297830783474587119909860525573496048306487313412244777697824739692923470983275914162588101684834488423455883412231057356245122086474148696580288119588401208164686233413817658163330324103763215063525297582772506239166646962614330995499064501414348277011933377757990091307289848753150127150644291536204203637690587865004316047797537078339215499222822912233453669598610214049372754933701292238241854854174622493463263678772232969527326938759185741454964628679499330227571152273774247147821395924978798191957527378765224884381690204060310480146686920603177688636831731737972379444162422858336922953224724105720554065054476718798099835234343568096148113971254307480713989419038306211641762285775608171356881240644989294917114458288661167096358013164538744912744500744135561771371448257654086679580616985169037419840746475929297284384910051651426905735616654109080640930055477335406192302741431301654722762847048369686620450486754737217627798660594300022459129942088269560787368797042805647957442109349437013314612054797777146790393493895368290530530806312495418771942401848870428925007773293874569609844272872674299257912852598239402106265976714356505570883785222781045212028417801410316233295777566436113748695120220121627927942843490923521197347360787291012150973827573136516644537274723456559901992514939616293276981443335528308333671815141935335547402687964425040753489749009776165087987844382920167979598953040325702436987359062254732334366866614553409443203124488760954085548949520508774639169353634745661420691248822719643942918968709721137716337919795372957593856587451525944914792691090238370719281795469995711008398972484694248738605342814967092897154666538090692946198595288340586791071497677808521462209273147933614306933082403189003245704976250397630414528992935508898377140062276291024009688839331433782859175438036309411413355536783690850224998580567253679567805908798240976799337322171357865058579072375469508681335895404517191425098266848072243793614421373488669528811350044287989502756150471242900518147214138166533579347917251071809061628266658685207052867883082444904970976556621224091763032186974606033317818337103582096536296132882931739629083200514603426395117465976430568267395275536582018813035455774060792671804264651310920492988605799179058609548383409717341988191547929220091475368588865057880040844194094498429689777005190052530657785320418183343678540887222872409299554616608615237069906111369055220308022750157531283624906285587323342863240019484593139791996922503546734354540812109780270761683213453692377567262860678718255858797417000101369777479532470744573671970409522562697349204084901543438179217605706249556044591843497586774107615930126631265837147331599646662932672593290268480126134558681680910298599743275438893406608166983244063119262980171071995236675478464448972329216472371409233415507676384665845699105886923427248781585599262342727714359950404677028488099601041816696967937060541201805793661147836117905186889453740804103478128911530999167269573625449244708716033782092200834021718557306636117295261915900504219797443638925691329844186126354670104847299831689994958639716416313228978054275293730123856345023890348713417818246049647772488997340053954121943241656684638121733030068775068726625252991402588166540996144178486419059843344906834358708100160886174772821368562874554961079191047941330912077482722838025621766733617640598404073349562615848934719651201057346513973641898022533174841105460074768593590684198511794708491121553214930353343587924487072704239694900390289291419296794048932544973135324832280585970519156326104293385794853912554644952015895950579173164205729553062485815344599397615042174285375891280387993976471794704146841803059563749769363133437029485018258503473603550698118439242304098062524005951521504822340623307564789462860342870425004796600982924090955650987285331457155238001018527316763313408632580129376995418578677385731935692836805617553056649537174381144580479900274816220718046199057912527618596574576655964327028521980739462928653430661908231699099425423806776166646307839627137635730799107046558060252532793796510213473920658278196285261972742299865035773933393149106228371102550351823919657645208580991183020871689122022057366046148357794957515079809415192547128174386744973428285852824395590927434298857914639695860860570654575233728520956622771639177650773770565249028592907140065609013391735244262208802517056325820710670365240981521271740829332254188258484431625337488823361181567732324923026219718754826686343601069655661632685470218895577759927912061567186585669161566916603849036142478009787592224532312696273793378070521724164381719796715365135412970274509638275517729208375547828150409247528783605787742500735358088433086643639580926927135976541835833961829858413251872352445071224874100593097378655683800746985646594159808043631898477220434082914273786681816214491785470879294079750115080185234635743068078268468812484903181100246501498793181104709132894531179146592199495318707348071855879239217853201471275524948519995654053381795140361357081339753684724165486581908311426124150485180285468815210593227980152290381155971438179214548208816310452920390433013933864153968347774445857133125053030010801449058914365495938039935688567839867266841556532702729036306667142382032410672862046388482011880538363538516125413953543534981024032164453793276459933012397818171486568180870109503487587341633700353650794170114383498760928623823442912322538790080260343661149107129871522792296052269443561042619927465467316427700470683966235171086636432598207075986495184006573864185779591522449276979407877113495716140416881223318992828609572544711719013919230757122958827999256111215212722379354501491760536902850244946261764399656869134584186275509164161896585175421158974849284729535326631745299363579113319917836423562056959998289991139266592583606923682206218606454671454578314234743125424801714847170023104454152663524500578851435175419754525967480495298426571328407268695564740990653040175756295658705549049751879964286398982832800404701344363786500590178087243285036859395444062212632767248847579536487084237611554056110236573170546797986811937005027357810632965830337835016858803833971605238343464222290702015072779745062691424354011625748289128756723281585629840093981637845937425855874164020707749438973738100211467027515138001071651082370737314401391552817612834694637606644472139541107783127547113620100719726618655291123181317647906732475778470434880777049390200495642464085048313399279066389983781206208526353320295363696711764625108871386218589070605365530741756441009651400032500327868284620553109453587202042958122364408009066987971606933457561249269102825427987720629671170859102377747481371804697582020861220449893565581927823563215388671142596628589330278124612605350781319176175618194584956168906262957637933616794960350662512044906615182003981407311721883497983721900065075962480802046455304407738327620858518898601735955500417314595649157405580529299423161298141481255310512587692294114394877440183084362996487634807917671021568177305569444613955508925647542132403774092506075741978156714937803227291336059981173487789379367706016733045310406977155601792715017922263938943347215392391294714848191571418465547811320256425721189664147302042888310064297640917359104088669844642943542900777790815494459438779262560210437855105358218248699084787334117394527936479929890872690421698251549546340737028810581388828312621698231090063455967235092789223605432845820411396311710121116487904919736734254282966901677473057163229971257179693247865296687747013872999132319855202775804324678229631605911157754367926602638047671041907303440146308728923283515215332730307975549825976864442402038984524222962335666164053072947103467478385417808504185515160003718348161862813096990080421230057965135361104688420088574501902435834593739627967326385379316248883749374177773225807379781527364716392993521534333768796011356470550605956440013965065353353261610712211072889205003924449513767810695073308292751123126838556447354680825442236932766348036352492206297893550423160043676954897091531248961188860415826459875536726649568271967422601953154829443784749229954064745991810205831868015115899478258702835813663727345051424630669615674009125611219722684233211203157019642797915469672289187199429630888689724732347636517920279300315966809374420540589085288564802556254184193069023180514077898964912655467536847590072108864889509805733716180163377045987852700211079672876535792653291797344844400066975275896062356415096259195188741002404892911142296627581546260853145330227702408985401819795802783111193890354684239382897231821834921844707245255512155401375391614606402824587250195338069317489645256887623932072095946958590281460599516634795474225933514892513729951178222075854407659790521686988193058567786507651888002058610984037971048512917745623486355054093303250156859728504323108013633330535865795459835445373024718007962171988644834988591809883999663406144317131606641480386007189085230271180794257513850370174498648141874564488476098633622023878172953183284262100354127664340911828794761930945400597857342087518278400234980271404128845114721528057792251719561163544137887050038670957437333526021813370347970507323465923449078718935375869521274188461509764152068782475225395886206836071597809375495186825829958536726424068272247909147855719487857603354894391202233350329930930830002490788952852286688989811277309024433997934148556848309700016980532867581224405327435725644592969430472255294226296862714179193848231399278833124844545587226371819361103067970511990263729549813634933122307856549802570929581393271460191160065811925348450009443070430901275483725778214069208918047112792238399256371387171723284722534561894694014558916338721106120810384413685920802839464887732120951913833669619638803865507804952332640163511452101079853118769931449261919369755725339567693541626900480593640329380735995524874079373191488576616398666036838840232413918405239686362544591729214895539129315992201394464344232293610604305729833876260869357798486943674848318390118785119468667561110013233805067748083380044594613228749069204849786122485765164821617355374976869047616808926612790711519138781874166808235466578377901648697336513968707980061288085406738779128178387050716500332903682068214033066912507457170088262967389477374107675935840309347212911863619741033436610116782494980322045048433305345861844949460946317648663445876220330591582837718067141366001199047808204367132520958461103107716979112146718988691895680099772795326443057552374931532983818725796531986472537222667175406337180370856671379017077214600697710991607224749383220127771504450280729174383870551898776465640751827634254561460888161735787234280862502350371719770437923275657255366617749885243536579142391988082806704285364136826210169368843146625475087632219789132880192658528734658458656393186296062649594689682529026548571909885727194067204505703057200829135049661162504669442204050197522994879208051943650145718453183531956906289691620694651202031838785759340961379681033881419291427866864874728005198127248726531398674251415443935923530478317297049230007354462119538888355307377086828765662357159685377962362199209618987813809609370250647254336393646086241458957276160111384008516235607159632222176214010170051578820577394574789059079545600461140210564047469110159116949558431263114777613515270753003454398900676338061156326426462557800488013024923772721475098633952304459631782112444659974792723085530312334396230470448509496137739975750248207084398420380388543313148054758806895096840491072815509519316097418191574872758558367352935633440049981474693817635036365522108450877962512616521190942856452522848994799190754806347956766575073580948105612815093744040690875198594681978695436364228730395236193527591361047275300393376227002814109549016573756032331044870953078592117705509844885856344096135086705434200121814728710049107015352563853481530679630151071350852772252909391111074596065501443487069967986178613687496031662003837861675820366030338653620168170990594611315183750725209481908045966045187574534446067480492740658677989345184275681345102836063331400000912488930167764345915932212839510145032358361637993083238350498347445522328489412611995482737985361175896773215273703312157289518315333006719535370590473248607108357694114555173054145465447592881076479858193991412263967577576065849772772800852272573027058342993367393178313953004250259064351818671795141051934319301223310235381061955913982318665196723199416351758033078556348194007452769409419348888675113559666350787433011628711623891385728737473900628170087771265264940121886549443750501741224067226517159732881811582433486523965103032080429999406182615153483308175876237429879818717505374069419346320282840757644972134949415724796843234818536430609764425014298003212555128354848085172885603608204400010780867943183693558595675187474199802822379693370291782252253545546227051167360050173713205608181993398124046431026688189471239238292375870548100233263635927356210105967125896267869214874595826960601938794802920805799351747915273527787871963396609027077693898124610748790103694815715458952309054834502355388272479343279853388970512446804314218327316218203295162204416633528689729479755813847318341831713529955973285739865410061282287777672271023469730293304292037242285633392414885821568587210030658161160598144344319896955139530684689875130866129930946186805177740128561778738014736275768165460171393403396906145999302238207625514938863794007598497659241781108931974047998673597756540213084649379548665999418271959754450080068698496346041517230609500818583793805979223489557886280035320192398985091795001592408861657685460650133323939011150617829973050505744405012723734698599488108054914945484246078692982009861825322414971638676012159862716856734770073395451697977575420200308445917124270237319531764176892210243559223520226578045979877940421798330807374029226062135614187041492732357037766416778501304772203257248281994062505395837151723003051820329431204632214906937776445609405070370816391945796661413154494254032877770449517335974451080389458909020197265725199799342413151131873392065441045405960872446358753363864388627060133194574022931873573525547524808430195977949940247868029728229635922237324808968408379365258276053197736289362849417321674164627716082185427174762327748157072664621380266671898788547088287695269455770076458346638151084639084915940966463859116907025939659352911177161326920386057532554101852777702991991661303437301174248252287833972452271801331396199232642853925254036766381688069973127002903704042366385867617837372499877048615481652486424545773136803539647173873781961212509239691299056269825076108678753966850823240382709355712909462153183436580171828729504546771016032538106858043709761560309397151729410380469348217139481247427505117003202785635337552147366698677684734422634617177351982244792358409526376659087912031219228323609329426101189096271711628492137066884905504909284712125916373443785148603097071907802229873406634745560857070569383306036770938973257098023605284317913602804895531482318405284128392439955965824717682328930069608071207170046408731450436693211973175412112287455845783967556085949269265576338912182240897024090438675314332087180959536595655893933111791837918462581989310025232592100398132566358539012673818260749122709449727581619376221850914336483675001319039453270639643843479350505681684126073732444480445365605340730385427844180574410596623075907421291048463496034232955635361756449375394856887203831147598958931813902461027459127413866513563912668872699539835766622658598262099368205756702320996999706048015675596142408669467422413639181161290414826629386267495232688199970645547783609117465050646303717036939820354318047546212220515298582707318347193369493804748628949018484747328657218723360609204496997373083274367834437058020891506052219095605557698045962508868890371706722685561935557923488894182766653554599829860773578932232272602741320273183887472553599332810163950798942766968601855105965034940763157635541211467586030858729019872072979815603820187762070749521444140368888570487613265655322643419471176172778820839996757897367184903070096726454317564357742493127029512271510215932525320492699150460684482273483607048610410197600837575958931424502993872592933640115958396298366087349954954316805011648583994474491308812978806501040843205930125256946993751760363160290433359216514110335250706637217075749651236803953289247619055798986222412367833520489805904745543896105438581981422948806175213164837820150247816799693214737522228634097477990794936169472249634423323121967584150904411167181736807458207761735241871175135470410425946731705777711158762490338774909999507656770908880513089760635070604878750570777331144159783465796918801880762181742855485318011806571322970794817683013350266575736670166856106933853383777615604408674736802589265537902348393412213887857737036546688625409809248724886191013840736910466610194348827842539683804009969060503107920451955681643427631434680829724542016652436906756086866821466575365801503198315320805618933122703414381054282106268109166676852311258740368367309317618279701185875420866158041793217370395835833956743258171105231860936440019961834978334305027126990143039695851000805708211168041469455286230749999099087058562591802830696700041747861034200827111524257161310461856749447446300756049646699165738788975254620421179358622718512158590705284881657493731345171458088689118667971793814463358578195828132886168813433538259449784873569082606413754318732426163595011490418495441236661522332304723045964964321359896297738975617600827499302394632841607318668183818226895966788240910739834016747174878927702523439005899052995426504018528803796870277865893145879651911328433149493575735568182207456210041434180618485226291840110835590358716956781967832808187157134550304080437817207589311382233822557094414410221187688177232877139369015974318754205219307656091971569616094625412417167513816474226427335997046485937558325695353567695906222424410684468687788707894321491710755372302067390711428953889349858303479422814655003819757018047090345616663395354085925373752670431684088767685209868465659060692667197311874594673803214916425696228738928549983307883498326952914707342296885160817972253164829734602495971731956772903473424956291871470600029009036184740201498622522832859463639522233734558309754380900297164232437194298282717076438015106808000594940338154032425987890347002125386283575914454655241038802977536424579297312886946957995413534133223290173461751226955999968880655207886747794268378797508499069425869032409960284616180864479093953395948329774218854260665196092059223184089047573690323143513138842037281682910445103070913066832867105299474425555086760332583177780885627117784499608225927924357266947394368195588319995465372246520739282174842503554146122146851116306739728734530222521905504602775609925608492835260672119157076348830394661609713910676348919226733503073097986147569000234501607067131190123144859539138498579885231427830068699986593608000574696582414841522588674964918232745336887784070550741912562122495578838014237451074167548451262236364891524225487818014776381494578941033652196681505339477841535066957291907815166997437025341515498131443774670359284573032877169427732952849565032979607712750882769959606072402272974502452790421374015173315509723191188706146810709140048735550165292432641321150058661067002695520026684244716337865100446720399903596174056160802191127530358513325334840437897456558357432081438611881648424104874972256285885236945366326101754338440410913436986530599697381548256491658712063708777528219869875130692392675702081197742933009658385569769971926896672620606360249625374992514903195825320227765247478272433607767559468733099279527270322310667683762770664443849543081125773218455040103013375896890765047302066278880422251924876899660177610668273267643506663477627339312151230859434803979025817827888664629477056847167524902642577185646085327241763069799792662937307041258198143457658058019830333732852534291938925325275323755709010295785732381466171013688009893923553415134510532849852709342926110214074674457036187092675935793344111582978549906092146557466394343530388036066882667812934129154866577652034953607466520508790145029600100208814862167992858016954154624070895074113053822944359643341317037530491275240281980173283265962665244431819725842192196920323909125915332848189096449223654422318970082174972838791428755420744375030763277102751435791251619044585335779256541988476785916813224783151967721731883932626538275638276068707785634717928442953581481550075211885884517074864827995448070202991794844413075163471238048720200720150205669034016761575549742139869478984692669507139475228564479825484522057587290807268530377979582180595156625859767933966242915198425480322636138650966701058915869622798351567996298147895270560617748817224124862699967526437525384030499168976196472174868212990394629935048788293170555379704711411384172597778572071276213941172387133862254554883112443568015158981324111384285831923396618453442492034393419235645092677034161449076438701548919532485904931713892187986084267399292613392379457067737793265340799645571643014022950310316127955429243626607342783680066065578368704155819436328114630399028331536860764198636256006697029266611382390353173418401383028272407069843047086235610184052058174973898534932173957875107062759662501005577630105447229550982634179246451517419912169255277988298536275264600510695764126084564895331277635658009874365625026696255627817396482814666528721958917393630828322225121603501872178807086160890132707052463761022606795772617179222867580375426487337591631928348477398157040155998991018894820908148167588498881111917907397597780335939131902549089608904981608922432042218313789993547109184067300177204562864654361622079289543472295592790064853038028192976601373364466261142007625722071118785260828036226079863842071532195372686714851147272043635324240714666905444463699254672420462114302350582583429228302903018180669740191357110661872043442096414325914075607699183177439546653224741319376468810662151130860641997633380375824112227630359571554092116854046041192653810689085543971231724808055847942810135027484387725791044121289339076130541616384952908925675991904041498355972974578766157457321179691878159240744453912040787270857686504753144431656521658108028464066664849259185720169984152972375501585302995535071371482530317128954211251010532035681574738906230906182145343466789019257332039525403039700727457335624619979720025660697663269283009684771120245356867748031187841050232987645417320369647228042947389444206306226302370688664398999693845204620256307716705046229564104836991981227817827125681382591472920167130910004991126163129622706517412141081969074566868024444100049829100166538992200502627417949334103446588861587785886965311547018744815014228710663286786324457107214568018764615380901375278849415569985559371298579676328815656822664374777629677459077979371644731623749958382788551603260358070315925363019982320230875683307022140546209614460456112096924679972889380539843710347850280495714972740375021597652768000244406140991178926031219150809511779130299055128242959366027254648992758893153295752954421410566406756444336945873801880429432219963702651567907184148065904454399009067660647396518860276708557570183429217370611394752491962836215607217514022705391504861050682219878226951424007321667515084357702364916151543328252592153712274351984480163138078039683471989606973119294091055342784742875870341101088304436326549201923180052376828282433257310047170635601504361747000900617979018290937435203334308969739955780288748479394068627079786194090883366122759095734200319849533207387394483233187927001795784244443502887903419085545664273357841809765314029577470825278839338645799028034308524032853199693810922032178522226057590873160831401070474710102639320876811615466271963052921549664873659170934890701130433210493070736770049044825997685532488628723689785303255225203627826562877269581902286410283961937189300274851936929471669786408586457908402553175258228231617399637778326357001374541496086102560588595990880155903255075502159313475676591456789695312902756963163659509677202086613453647180900452472295727910711166746385939694416786581855296219080254637611870867892786537821526769556449579406579066319082158440530749584264580870292315153308423082265404361265133136733097126824214691203627666969226186709668419726941156199166390885679479562494713286587344252403405814675957813987086388773167977384516657926879965734584407760891045918150594661234331499020836164724189309027789210348138337277403417295402473873852231437052414746273314201618502403638479721225210731450078050545841138157039650078435923015489534371163251921271078672528949734809207864814122856888974041188547889939900260627065225303657697209398327186185629575739186430282381882066038828379881286539944713383602718695065499421297555787509205040479478195797837772456311857198460585525764954017295450700913588465435099527246935260110201928089387818534499938064086060943992457925906266926414251390301537386936988056473191967454617522378652942246286015817186020561135649602014883626268645864771525001294479595137915216682074453104179792592180873976141839232354639319930546579407928482941885161507624791932686799702304078720471434904780334438244173773567089916005026127928093419959704863991817435341986185948662768779291586682312513873950514011706824796842602822643432624640772085250655631875679260427675072012378384202706783707613511772356513146101587529663593840337706083180653011569677076767531718913965414706805719839230147781524556078106246914755397009179592823524839088139156339971681304887103179980299247135712134748090837842896831733678385186608929290724718152668264539023557335117179300299639007300997245404283644985451405818891806661198431149449785538729965204652592977159094105840056886064862504996928295542590645281280301262272980647000494543253920542139730514590040322493272491518585240865994058560061115214389363532406728011793580214287000508618764638017431443483919179507469998440984966425705052842504997412788932590864929368137941769263828048130146949294734470457918228799435538734114060673327806023113943418723586235320370046164908086002861187511765335827394432386465251869759404310156798855896154975682099306564086528682261133818973757941672190615176077511180513462012311093885086161753641277411010774105028581319146586063530185590168515632298382945344094616289392251023179583307752215518078295831200373952479864383033627761793386366149918688574950376143398382842295409642832479763270488563672422010865160829296772053880789651624433686170221355955443130492626774278838824195593286616653122985488215747911887917351289849681928319782371010218728353514753814621531545048660261970869111027447881841320520666810074139908270025282984143199396376772235941704282337231997137450490629818500035726355351456795288933648676240178324711465653379566722446058806128244176748362261544168769777309863922989459838705954866000237112543884925458520012035254906499701835141166290362251135998579678101383321410064144646175591444058655125369046387164881909292177990776046406808042217750841477732876762071932691992629853534950593135339456197246582490885694231959064812869948918586948851452783640422748370549665219532394996929541453787115991073612361979251550822737544544400832081124512395539949680314084067958797009556490899513402720019767146991499125477136008768304545876539023959980285159373675523275208451939481828194547077731311896243226016420843762713582702165154512381102018490164375648407376176867605725603664555600089048417575749322368563933177630300228663993953181943536299581030466072451699211966413654245297497840878794834659799814727996200792285608587678545680440782486121664879384229507748276454745619589771752373523149415617814455884981248522299989300279512352307832302144801399818426570752921920886882155898573562547279845700483379547213429042250068792369584424738328050995766121152681228448393187414319508965479793418216080245765376231658057335066686329554351802510617512758055477123074169871529700056590716256151693550770378846717793679598912301509491153756536926329674587109924658957084694863459702354372959683546441244372225715118088268040875083533853681273534076384411394016004039150366444084550908330902109331191436819703423898188499994132874905987078382447231957185453768807073524986430859158081986708967398016055585917449627339085635157877524685217743132521386048101464187336537819027574794293605308559173780885931431403245873373979602330187633876035492961533388496457510589406279801288292938455831210087284370923040016632431225192681677412869702530570609230045910428841964339534556464330859438437869425991673377009005818224838715212448121416864719158387612310167959638149994878282583574453621345235907414627726255511504372390397073431103374138877532360362510452874765700599945005283690841720797227647867398270163988725003430038759804611835832339406046322784823883560976650689048771447962824150605784762935777919182277616327530461740224365959268676466362510131647837707974841534035581549351231167714054530640755616966143922698480398630575804088083881023993094191973837512334288288713544535411988328268829345925688824299975526967825499800030968388184296654904492039366396560881557607970970852074025177974489012913127799220113560726670490413106214574677398401469946937725566056410727379902692025821337726047929721870914195540902829592906785966059488068163664406346124661020629927686857719871603469199120378359280870561326079067121267399177788978984232465179183699014475690397896014693018872077964174996804720197387462948089287603512533517953094261509568032263874314678305356678903704269671387248860265384287583136423626220257757703904606325077192369363838938873258285683857520473833808176017198241088561482593643208309289714430844583166242549540809297406338517510780408478167995894250246792482583144281533071319470252369302279797937307104340764657634387164518807920396371401762377662309361176916438966842944802942756922955782092396711910332343402867148676291824934697257367337115779572733771565537050580903239743417184100548933853148762016649517432930308087395299012214367215160308303672193614665994365487846241611204706500966812281556062096141215128532696142388560533268011272931252199961801775762285675501715963157435754756386476097468075189301545649501234057812761902992927355106904613119973962703092314288764381943714848148275093595135934841733618459139898383509467576769321180442336502464524232621479565661255974228814320791573274380075088664949835880014475502049955527015487822232962784068657023503958389202052762374105530443226517882067325141761160025979182845260900221906374688225083594468827642020045181682550155822216344349705183709556247231618956695895982712666400304058756584429017399491448651943255925270407601303263120583044804169746079861357360360417352011098358968063206518632895200591886669385855842544590811011862169929097368438860832062658279123088804032543982524292294262703936544946735008432194911668906424653077862490466192557165383399077270842048058784104641844267168956899991872583288255331707285129363555670252738544448656468727181435653520195768559628367624628417603663536090209312740430862435614557924032175941331957469168378928009386302103309370762100025587094094154434822109551746398061354233241864198742931974342344736231043389229777649163477301679209236415166691056481841004368944767691150140614686723004537669395500328118571225585648004482890621694864575889007888482698461455230790701234628436472252457641695574008336313368204555455853047265093140215933554252203451484618238867503167540184325533936671564046593245406992201673569258556449811817426863221056437609990719327415480194483720442081094149847504783064666389751437533841976341448770111602340593501917760737757064698532751927766410155133991649774502217151109283542397386924526925324804708078473224966199441270201782203700758874145479867545126871847254585566046805583011708071576430249509432917214188470855093181093203766213594954658145998182534633355945575553586291692909586288754688105086421526707558400936798212111773200120273174808451590422103119156501847842121418409363723744672462585156931527857649367865455006547792910544714802451287437065008366756536830918006299210508411822583532763882397795596177733090460100412106790193779344465871099360752533469465038385759126970238067128449404356735896203933910157283631127499338293441298058725687433381441831502818242592432496200880270631655650414029223086404027232797821975749788407408784576662308986052057072579257704948358241791442892105363155880696412466496287036412341927912002833370041796494019244418708728915831000568609751380891999926390635720165972596644380186034538444840917651282994244200044732152687252418129008516845879324065523711318349050403247064268988618193034560895425100805826910773677130965057792767642562857481523123308949821045862978767340627243486524881037868773310225010201145418789941594905310980804153732734997036145182074060759310272967558171361366529333022109361395024772628412381517568120732071555944275532857847922106310346765601848638032913358970882210184219330740942214452302070975084024800312342238504953030490186817580608900070147973216089300237115812496137166857452050808252951961325659083244627389403787760765846569078147210174205332702494013280790311291223015739941405410759765069591612390007551860719247457524697635242866252397264204791972112091847572917852826252709814951383489631230284655659993666068305650257503393135405953914694965994434022297484746543908844513168129388892966595444945761133573740550693943973857322090671286678152052717446044254638030851124046770388269038027741211852173927474283335021954437128244020668239286327858569239190085967672842832266595790072394384635959991568663979232862888921676965805860259743725459690241742446714671510226442139768909229900096317113633646443323416280238069500388128163248456235929471287686105907648478886267246754000471008517510358369081832512684651311881187007658418159838790141299816938689478044732572132756114087260037422287695694151036931924947164295858713502661150166377972660393920240016383810142553418699118173545843257094986124348038623309069324280043754741017345371707550093989785791262547380054326926075304334366379930188603395483609004644381463314002562514781369235128747887358855255776604265113679001350290169595709579408307413955059792012173620421333675804176242241360855043432534964740796942350003571151057738219294197499170809336839595731970376936657872570894880323988029412176997798173487087797808910775836608832874890804369062380149972920137540613902931067195137431843311952192880248998144382360600200526148173419397384856056036458923426221314348434614796890938319533605089686571618366700731746173596994994912194341601143488629659355001088881561102885869604443617424561358669318946626989685594421452641987627458314449713720781581459717534113171530943707703465169555721705435516087067874705022000384964701823355867256851130671367628198150469580877186136318404945396138292775396423381351395045531925701725869642427932162826745523181043513483476638376674679252395555985251241513576081061486132508072373041714796215539985527706876109008380306356878876632477401536724458004633393172382614073971284549119140866885701870519578832680949154846891525724009708277623775721678380618082781984717138693583950075508683771574871932643045233291390126712948523218521899611884374172530749080366601617374954752611676659047120324648601304384206598515892348706850866952217583454044350249836466547003830652011806083728392878046833713110196115408633595476429254056311632581177032793446824419560462617402528883339272240341480900877783938121388770791991896516403545076686971394354846014654561544741337749921349916296173657801357335305708544906696401091277056271056721216148018340225724642040927913968882036308391298451812380421504098686121772527779578686024302071748527405698317680384862137721632310631682190244898466671858686114042353854778619533215129297070346170929940487345613298582182649580058122691800352012421240816897879917875059394718292098651626694858294243528101447458877660863799963709483512724817377966064122667202776755378482160341536143682193567433461218237007181702446972636675651183737397368610655108489987083383930540187088654928655856636095669867853377732890181332150577689875306917764299056649677987619831538423815625436943998220840649452118447103313464015410089245482905040274313906767711437154771753996981739224448851625728753778007590961189723571358904145202008883511541035500746967449687063877732737126925268576475831665693359146090253770672595626731815152161400145441232180980137772224742780393606581411244783019448724911490662391938565192022588310099598496757923294604699757403410849863609793235099981750232376491270586016140967423664905563493042822502168577129665556506619073058522287680731381794880975718827967718244850123897904534106474724922652894593919545907933177996009907191411455885760339212079271805783044989773313985000307656161449492380292512534351152798454324129388263454326462090627584147616347179800399204620695101728746420470553380224902295376302775826022374493111940735701951750764320026333988451760150316294429678517381356166850525725688638718117130213155785127904972972999726370204651257627246653504171705487353500826107852875963502629467764123343360858082089610064031969171492910818866399306744286335889306922384477001343435312683212811715500862152382227206753186468756074101150383036970135671856795364331383924451944085240201522776387479437706416275885531424928515637840094223157174078629369456297032687136088079991562662086089826489373463833396137570646513113607294576540839441791029909963206497900724175290325540342102122880605964557861337722997994742151425517367597426174977216257952025318507083843001670823718684832839487724209760537800388206435903520001359687037916143404116158659765418568112013839588748917203191961169716553098289679186132167433913888986971192000281795920041754918496624208497148578847082757498986032508189018827203351022216481548575079090447443440558577939551982482035123946487422818046054092194770685461065953783480880403872905557824634246827921536565321855333490833354071001947042931487300001128521223161422108132016194189150484493222168829195948353236413204203733511924119383698754184886238260477594813426870292085439478144462836731789354405459319501582191946469540845199174112634874919420182226069903810595688901889000337242274915741254372397721818647958450187996855461625070183335297787674260135114327662179150097351970057548121266182899984777267408303208450042654233859580294013633703257101147219923237954492393393219126964868912728715640822615367091098784727273181628050118208797802381882602996674327551179033509775777030624697281165837905508083688131807526498346159873730475518658328136699506041176674450326966271440562304102648939158991121453316597190055753110848794457427806103427036757309022925051349415567674895592591966536118864795179946622983676747163167344959869195329433456984011613618098298172840671022670107310481329202264228681151332120101124633608207059650345166018589113619557400497581959446221881478597244840077782523854147281356282159435902845002245077181058679586727787817939393487265398503434729825194936747337413623054846092869328328539489859595429935415389341919374332800730870956746698086233722570005424284821272246988528413983833077917029891591581958396315814569308453834665862484465131063182568196023171124652205741087779452313631859390436453787681460505081744242548656401878027433987877472938251497466099632282175884263083369109159521315578043625001256044299637403979514750988980866422674106319943845556488934371918574161179601300742396705962699070080783807637767418133217703472794905465475502422387984177075159291870200605037742266373699751496916528223051488127852419228384328990734832263314850779780595201882763501143530065962595266603163735350895484206475480994871659409673792124036013664565130280130518763141854192641459065782916855092436970713526069914433700519563449221205414323992979269799889098724687819438596185182840509627254290562630503314729804392925066521114633136760568171101984181402635044354883788609485385048074156575837307495923076581121757600112747634061897171867570440526531642706707681681321167629099904480505209244289036645141675505506745707421380394123225742504063305573244373012425051214231833467259106520475523566913360985374984793465266968540246561525020435831463779638511296105377893942119447906452991658592849651969540736545845642551905676926170105412314162770214184392875308739174058154117147970242330602840088021200008156904883727446905255667922750428073946341931504811257843186109496406823201186833043572009385104224429412357489886242889600645077415682970562516776945711555562170092222087627868366301248999387028392202768774728015309872219851290494755530119290693411961985798137542072190774572595816140920710310110987106099024164844013971823482678817974117702600567196523415713715135830603090600067552229561848153776940606975676696178656753118649565647451153363588676378651739225875821100554332915712947761803309371986563813525116497537848963564098556814600754641167551020680992081506645619277874843973973101150359820699668684330409050997584934985470835467197095808261980145027002146313106696878531410075210934756614022222175983485833519168680599491955995316897187857215313030216100822933859558522265670161513023071702979624610310957605864803664978828748874670810524179271971712081341816644391942122963682211789903844245397435828768934158206155971340760211036275832625130435538370939988389319444471511168517459368777392942896128861044434548490634627077596641893730671353543379254364957197514899437883926432477764399694789851537176155769959729111324573997828164078785659220296742074303238828743024440036582959664801400903698264522047109562544713419329103011794486447044002581460216726502558100532280624798772360799907837381032318052348284218930885923718814356658044066137232900287668909878834982502708903135409362239106368652700167744223324033985676035233726430683169918197453462806926578715914469742524825304072986568821086426893081082677110852606313430273459320240031875009938705424360109759142539935415887000817889746777407467024900186416249688543288278559835501483604735542210094079272519692096220857275128023144453669926121979355030128498788549849501661677832533534492972953183150584002448692160077849294873749275805854976226062107127938801805828162450740686963839534009712081757670602633676972868155258018294647465373512746566133576250448359869967808848588662420263259606659141097824574198966084304064350777238165953811030012784601895198825141362957984129003674256888553402402430339173874312210048834308474862949751005315194747501953726084290888009435535334621236462756283014151432285322578615694119209471410446860690437440892392005315652396774066245158531757970260073028481625452191103722648831352598339666864515836258784552917261058401541992720508463727116217625731862351162707371318173886998808683562321568760565105256317020559554298650731755885739675468775294652653611126144460518664617421109178572198339873841507390983946867143838715081548761734167625433073202987174841532174148191427122713733668407214385321744165865895054863474344516745507357921666698712797409812922419600883824975671631433386041984541441278067528250766269976457304567215350922838414636546389644451659462059295777778259511465850176830415447300524872179223908198004705579363139118224992656357028710254498911303105181804861941533683409032838967313841601879837425737306694422107905223226729743787500353021454226973955140479775399037046381388982285328743370902549569605910201954919315221180633622615749610028658594732924601768765481587116792957562826784227392000952345912313147421231901162813002036856876375803944374640289481607507854194889348625650072103798880836579583722723438137058105261133060551742409693550124988701684773404237806074552299988109466811934993882797597446144132192060163994728224230615119390180349836525901213653293565570990701823657485858303704579520176322592469433804446734842884628748452924659334413853044007264742170394161045669914531108921218236870267540761429699990271125788551452081770020654609900329890706936714485045560808520668883322500998813197981373397536601640360667252480976328617205469490837445923926250744042044202794126996120288980373845546984405552512243071656752598436106219632819441153389276708124429895553154739461491006618376908987762120590439722562227230600878031906102625823753047621607419997980265653256906398453415117648787543271806892198823681151231829602936807862625875346014773488905382889151261843016942349914447663338457974837605337810450410200441356557946292355457935471426410029697981514682775109558377472437883524240686566961917569756485671913311856726339226880646330571054715610181668212704448856955371872386733695559655671372795722121118793481891247671186018712339479465097087683287310034218216196044225050822848133479002693296942828477011885798817769594461335115065675704270025919526938421552585347315814795084752713168815374817610337300798981824858189976485523043011857752452398104321286817659487758036000963188860545310399190787455128778209229183137468963341824772669277089727349797848500096949189980245755370858430463512812790895046156569960126852727864896444980917866260875439425330175859416742506864967164757494685457884997856666999862628617506250490403853628847632383014191129600078213421270297048920267118831146728843551121146538952676331708774627074471111536513787937818380865101288127122682364388621964805033430204118634587327777039916277068837870063291091568336178472688157617705621982268964344078717677459028891490706729344513195738765245453552403500484615603694843448300323644259275218250447610667133764236006711326041034671600632981726647208984983370752535669440344199598254891086307839650668668964039309067828931127779357078795450460037266188341005441099281023826059697647411356601665385047765428087911286889515519320726288644177250466499849639148814966834956342480028539653858427218958618335188296407741237622476386401258044781583018742830227672525997517621640614075446233228272057587156881835701334165077056734002979077290613211262979292506914025723229312048822936280659510203208926566786164036714774406962550906652143481619143993981299035059232205627679088393875268965323287932798367830955336392321089237812997453645471897246477481213476616769309023640309323765369831945548653150957516021942772977695350061260423214050387975243676217860513334116544515036842507274120657978866419919241054759129112172718875494872014441483965081679991290530041942534989454807756879605789044374765736730058564085862328737479458189777122759444406081889886397114105909091356155602204538078810837885906902108936180673842905292700804090288183890393395563794552025925952370092594394496905004065247786197457513483330171364240499203932409932204033515216100640090964867050178537967339828853622974112478002598820859375988713173034674339783344782063557548208368441068079517634103288285796808837088146967983697898642456565038146027165263434082617967822016591632412592688614810217099191197697266832161389928050747572686918589093843378662399435851007102625647071802317933735397647653744573021011827625748625871368713352839122039211303274274711329396282064620258916046356922784695171337893978417856292635177936615073234860839122741095770284895009115795584805411228222049291242729476477544823044026229818650957444240069455168201595373031591933831015062908816286744282129103956879544640586729640417915797593652962860822682367765948655152455201982191193658611156014911431120027480028326074505793964198259263132666812755820765219536744987041869282223011231832545132579173977240851957530382080449650454650394825890414561827497480585290534137834271352240990323777131172186187187594666181048133002955448711794658596273765911989039184248575410758345327928855521756065646357451539779533343150443248068371102695617097152420327534387284857449683270456889580068028588516224146805169505488620354226250831130774584860632440550866708121576028728806832150694146006240867627320081640125497616925940996867480105357775669097178701082472607339197756480531371549598888508729726079824682864698327385215455443790933896033409940519280229336771134881265818833112548398489997166444041724100010546983938645677240766052920011339769392077633990898647097507042408819129037650145761762837899690818041786416733630239196111558938601917219849943392427874571780154688242085577002758735484450255726974916667504464055929107660590902798225841363136244414940646940205838838530849958025870571241484517061287001023215833576722547720872782917169654617556932425822038881055509001267481031738882386935224059991156382841879047984893705781835859082247802035587710474699615450604929322974848712717417714730601645062485397026875695151182701058895277953376344783508130564023100767025362828558405641966630342881060047285794569876912086743341612571399285269030827942200988212460119057174492308903770880445641348003946611968653489497581074273738234280466974093990689844812477605945598312800173317051334858144055817449856214076641820398224648248381801485731849201642410305851562576723969411150328375551005402516986044152981884392876151567688249468900133489125515205335395746225301544827507028029368894779322315220946460948768359727681702560483582901463788457630100840894769921414342182520525409294843571806547186382319337194098788709942699565912862959998646764474426046024867394461376528459295737586326586377080971711729918468750110023272035744811963052845529947455525730526447524709191078946867606207617982269307547678637805392688104228768023125184178269430497003862846331285073141712921641858502515775472783394206828125181029640061238392228010902758428338452608276796060860166829742281489400670173766893139977299231337637473206323957845826773240759820077326137356581697030741450566231511423372214831562386529472167336938631580871461422804207241887570327238356998833411205902975767942662359279589460615945860117135421023942345485524714028586499792057079517518333748586087495730558343840468758886676097065978198562971266163261479145611359314175482536538095417560370436721800243102182047684035976863159701350578925475910414658124068036102604479470176474206164312695067583637943723486249451906340938002274792778867090719718870337070008070764452816157883242512325262186358531866845640783790589734002898204479743724206689073060086536053784887306864108571323592663376406798279572318923794393890940410554349446070576429282518353159806501123156221554125066470231625841880790657642616255833758396990646289978549488683627521850289207610896100223187109509302468666335789781427089785442411346586153426038677845156386979069194732060793285779060996723991719050821659912216275058402365641570652847890389451404598615696161721209602729646331890641472668353394011779791926894629968091361195577237341490580586422756673418565427401191356138918101054805539010318106191019737252246797615926494263904727650633131344918837924388386211215849257683101235846191023592951652542006458132224787499306782495576572663835519178331530292887786182243017753495805087467094777563206883748430699348239924698267395586153534148176426762406073768639677164796650361423879710156222771789621404267753167861878095774422514157485721012412831742261960451173076539555595296542468137614153850494469398090975550098945616622954356568846212395011018452727282086031680788073823926618792671937134179969867395568256300462368731367202710409707962282275253431465904303480814600131918255548016441813173837656896615507098187332796782098342187134171192934859734725644654948785810843607618372826337446227541776035991598314292927099439144765045589717608463924041071357678106035014637582311426296528512683848742756443152560915000204322105371194651629711247395913333650852617747240847575131800386856418376475636548341682500800476132174335954444285486161049569885966702780253345386737774407893472839868558545897893194379169897045021629526451723075018637267291981381875527488170294235946143089609276107564799709630222333454136214343371575749683212595468556809342434244623330862253097806323720840986999579334502260710474914232766770178713511687609364998792145002453672855641773420366261310679862247892631690065431637637605025373558031084368378309147976647716923294623704669885479132496281248740244519960827412901377613203093812805093986767978841717258609454577873630466570309483492661040279273974700971427814123602352221182537104095224213684647456435664800043178452989957232764860474748794073160440834466465901392049523460838349254416379005976618472342603853127253276040781088277351562617892775000475114417249864263827425360896199636554019120330479919760643415469652717599216971147637984438671039157774043558260755484225436787280500023705788428140638241561174367844334622161432565233689800260603799617140601528780012581496453180870022422710082598304333919762210831234603199927428497290856253156124324506348077358543736992703601201677052333177680419210481780503813086257302127190584984118218741158038200327986143859683125657442832658172628946661391709828248717997827991004350889482621455026516145292764745570565504562938500060561573913294618568682370618326541428697906228292579400947505801777808692726151406202565401713224447914131540319544117393346835068399202445348434742388457217344602717777890995024839892863941307357361017859582927626367649831237680658085824753080231105910278373576978906790857695168278305456570553283581231995619388734755840925758609405108963074329645824126891611130042303172789846374643700232467770134035480790665064641711185967290859579243847042314441165759135253865609244501911876238165302764849625081722464775192624294229017935704740935433596354446691963547368477147217624367936660998026547973730683085241673628424899877533369169445346173075307318242774764004895746335989204420300811877010216499503996932058767869065007946190555867439291943358456344681192793984259879782875266016389269907966502075145351773948701939159319393024780559485014337066988583551131396299896435856032572139298119958785031023250352735955861830755931625593291025882190755241748573139513279586085411762792328614550685026828879317002012991670275711810836829804986249126196704995059271028181952615147087549511950006902263452285390687725941823257143396335168894312598067144627725397301703162851585679659279989267948365178327300965603498942563643721784557860151597178513146229719654092385476578400374912777531286320928524839637940727430412957702321655954339747412855485404766957742468356466396846599029342126153427722302845585523169347998602863318445294155519317643784945768855089457173699447075269899371167896708380840177861160442228845156824614527551271579478150128603490393620224621478159395036339762019171606038114154198460990212181834480975807551053550908359629220176710977259435948729431051385220243172886265541967635577784299972816709126442933345185252144214856055273174535463605585077628782480798101349478934492978998481703820209282349021994798987661813941262757823144199853204357038361951739861115442138948044281346360813029879199745901965775431439408904876506371806027312852712833195051941896500383665069659322842388867973237607727058893643439941311373721158578332297170974771138298408026329308890703033434587168012921030052793664469121867730296112040499010307256700128983745193343829870355125538821503842856263968802475796462524131813676096638863123940364619069324387510750163548722799593080955057029002114793152072340679997482988103975713450240452019086233035003204639279351975206692817122262483547703966080493948831144372494999045167980001041265473538601355845487703218391688692470650523192325379073299689242957895840382126077380743458543210443713433112970687760365088320245482773821373092873449831718077147156365179585207123452977362695207043400215528800389434809685765549304644398433608189324326650160297073515057140445086538130070245605372972200580269001174048058722644570093032204438872847439236616851735526956670543011396411590649544682333862942568183370155514650335940163054749878267703105825183273607885635023701948758437119317839932414893138664298262866332076468344090695884093000077201818631338394310381982574510401193877998404895828062207838114257043029331611638980926971193698785194736726863867780092984236124795107617130127997746443685310960212736061724355403828308937095618229219511405987374875627044801321352261060763411287432154806804626646033709821229781915246912430563443407751123116136202164388112756532486908146463303413213859574297584798491945324248564763570481818164092848789073953147398585104258398222181705626416413899227264391894809624180381375741480385512558116383951631674069142478597428255059356323199741375610274291253652266284647777067915065268914231339005758429112681231664532876781699550645252135300303671680815514840336478067724112448954815116100576552072502891648432177361701644022286836603678026434114997545816136300017823646804264261875257226321520804263120674078012142373745800142165026391386260710298631168325723413891008684202562084800860007629347844979637303629818038122313141298656590726724123477240187537312155880977094923079120776890399125146651513352993911685931060085410877777438773774658669516892917616116443058252908171181786337899033632457954847694181796808653359145299148860364623599430992522225161871857763581521265738617044979743698831502476392378756796198594115953259425684249594002691105554713353891636967170274033128970719458965608878180006857037899524982437416317694495045915719841708853434363772220457927108150443672715549159283276383926765844106931740109546685980343214590923102301800041876971086743302035846860359531278358054768545535498187709418467612226509228047924671418754993538727712316303956963065668816692279424662406568110970364378703391457769479596077957999064824989233914413124224715736726341001292332690758389261169729077044645154979349850952853272769225310152909025533706736566534322654201097686526499712962832956579875619879984042474190695460670606483778853705110186965309086487039260703331605943274024905080005970794405288774928737800689002193158210628996194877924236291715296233490153543588091386219162524881468669224980538015782213887367440453270919478942073938979422892425897307326526643221038309378216469304851868328498106525172339906228293985148432643531619230341605639698665169541653650039616431092405905710663337195010005444994464052942253850177783260685923614904984584002011406877039264570415639421797118605280957060568241531239549174391225821934676484854508255538727945827772110380113728266199522682819893180246810946954775715625825501619293154953477671548806828634821597803455755783033429531835063722596846354198270378962887473246592675348404585116569335176854800384147866464691121617465536609080372693298135671978779926546173767458341558555642685029381176802518616211701946396034554506189082602477677325624745931187341932971965249399424278520773097732906278859021480417774398669469690270312194237795903962063143347784603068794913903410460379880488864429658856708921843935222826678721263501674797467938275422617789742566702497968376347324947614642916427164324648629607955917936842945524092419711569926455724134308125059423361368245354731443395964150562011547833346453563903843030027494981623322789791710957849403822507310943869350873874384337907755870777023659399523597501530942237471156122118346939713209783098821486540872465815431698184631812500433044918618249188492723925351463468870559903843781776829104478806253993747251028189521022228324419788945933896287679341344692039686676714076132577430226465679219209908499995954639606268774778164322501210101642441724747946272048102968547985723508351392960328586877084398127037147350027394836043426819766267371245422081937794442360545902339202779006434584821241744546009253229887459781772673636645384481880127769197536214884505763827983300655546929786719551786865416372636237896315574408058164464814551789560015918715870854290205633338464568054767619383309570252951147902183955823471890075411672921329175767976443337762360206066201927209702579219142502885968817106451859835305253769333598776236059850151718048834409367041363130614103442699423382876678960341390468652396368792509210121635119871370970301984351082653442343892944306664307700734009580246936475637512600726396870846598683768196487873254153324168210331002001479123496891110699612583379268946224934430608793566761715835988134242598443188079924244621185312819148218627466152983648150052991402920747994941796741851945258112089935845014696686840842172656195327909259316974151128381242007755498614107938405844871535935656906647684796375262387393038260382159142255723287657485731730140809170432412445657890660894106351322581540724018143820107564402838462257574780631853110684107420809781077879261118659324560511427776875759989451584089131175443354904607801326555265074796996853324678156290777753766969484298567565395996490562679108633193642215985968065694526683242071796665507959893328688917154843694716587775481010775753849426638156791610943665482710684426445226587272390364578747424460508315325414453689776844467825307865728560181464363374165186741367986098346356867014542116955939250588299179933520029199512523078980991286778715719747106808574020540903835651310947400309681149419762968270901360173699750573847620235527901641906623221613893502590513924270712118408498453458897425749350406129385286729496690383454213799355355292258347452607843482990666198099703867407998877772323739056137411038255356283037633158429462705099963226003076816677946801723275484435267014798894402765151447824491726765947740625055184411705613956048451561187038503032693788249063954371112232205739929004848022439702082337422411539467739048612131041232221937228528183670395459635212591349672256714254287652232273404566693018490882607097878245944584818163648208016774579878602163169156865213585190108052045434505507392607534583886522271811495808147246076792817317605115103573780102766790698029713288199106192745012800298462626770889764874302624280649489130650046632434423845752186004402976473874931066290289127408562192352811033961638089106488996073074063239004744275751517046767151753230434472994658589305870280116834319224713640563583928892432484052904024468658355958097230874778400324606647345949563594556813191117521511460586851228127221626119953979460884201835430418739674202801847394552593538112455110965504563291381205027643994458082995509508414679226289089448549961969704849025804608523845528510491204269865573785345758002732892352748836240651467269673944137982762261704973057521998245139841182807203848868526282869611469176431956697358400405085705329208932881311026547510616213833058600321475777694445847794545522475326084286361232896604142572298114243872059989792369480350822256669204021903511099566983798094863839232991218712307033278033596860501111269470082327388805705808546863355624836349360234329279538671989047153771282488206698585582222398105771637885576929735158704279264210437541389126461283745197895734671877028191092999879119297411280740687347450118817943379585305592320122712379721260197050868827684448981723958400478953042923083223040348150571419657233190881629873077299342173002013827637641696744947385133435992662496655433942648884216231078848112659192335247520103891068966248770398683453349744673245107131757447058107784876874128514674500893200760261645575140412560461400856083463102708701174135308738617664080831500210206280453794321095562789335572566693183730223472044140244069805587071331324652020062101146021678793435623515375315423752265815231487717080574817350087625717791178437103056641860216656805459428654313957093863749401537138515702983810795193490160571482428606562404220113635419433420142565125994425031299262525007878303516445667558635344259766308306841868465991644083773783782447157112252569477153033406614846096107200167382595534139179208289404400741938425614914289339443604572390023378457527153304515985946772090715261055611655283787174390856218344936929823839900825765981685382221646796135899658278728729763789311110272400590951945371906217602362814243559542006690599843797144835834244132965161685529509692312540889627984851374804445697514348563306119445950132528461140043610613560552122536223124427988535641303098175579888717961214834245431013735376257638724878550912944709159702412990975852391890558807190648645159077865905802516328744412433825990248514567653112774282198420781334119804873132828976670277736864835883272124744547409049416833194469619753211748077995869493807869415547893984618425689225848344409858872515990802296777770841257831924285243399577664882969599008270359092774598987837482521440686041595601662674691842900610184833024133787426716519065125756145621219302777887252223168424204834123536677906348545406124239069025418204471264454488272243371495878795994702800710591021252765083020391850415794413620564858840355146458218810375413173047683817100153087573902247554744151854296188815468177454048599308605979850825781518101757738033545979589792540346159371556890121449401522513005617076712512254198485247024879447016536392521012920192981756072347591380004769912216776364140595458513238929475901189172873784483697526882216615889077082915861684787170554509825807901920649882489899753214600678841729868387394053721100694252484950945198406891729029462376431140075045164216716467213583381269574051223816749589345413434266255567806018172732447696305642281970217118024978766218400317641581784402537800097307918427470382315421065255021266999226366518850732894995823021024279259523848105763111296817987787399592185185905628622285749584186281081506573099616487137605661386403689232563690236073939432352902401754463276107139551577432419303437130711416399781782272807737785967265511329328814031300546836250507380487833802790924311839571021637781735636416091851236329995971671466702971340758461350924612439795271981319588157529327891482904920190030187085798848929266103105198199428455112774454214752536492578323425649095053163323875620617632426095109033672193042071816422542985179098578267401047055671039134330849060510313618184167162098757935009075913119690752849262310759712339225377719641483345416696264326653066934080032473836863766199671696540999969289149459310583342658817323465654749142872161898000656990606146713133682720618160983187407612638505739067649473248748965221822220029225626869585284212974550349106184599484848788119036933551696771174395058727675033511701689279888068122764461349477062989041776654945839677524922157737127541264170473546744857854456853842125144863684774769462132330087550312189029271399037461921493578076023058052503478360732649075586577915863323211069508063772235531625629906270045176186745129721564854110336820372711664504075176502039488739823253163068647959346617584316934066709687990844904792133620857864450939956605255177531090502383252225692757643817189675893432510081158554779996031572561953306579159174019981238297455929102542854489937991584631769581294497820452312863236625794942402291297669713271227737529214558105210595752086766525685839257833491969738229790639945961624832484150497674606145749206079447965050636963484223392929358268548365528957887911742875014738060230403134452449094705119057014319427195626323605499359079816122792573663996688623685693814896292423762744527472903776012918522805522283877822488947553208884687932491378925566495611286884632613632507564620374419438387311156961859505057945150829595693713725522115335605761855753428913842102541929594911400536236316422929097208457207205408131660471394889764020381076976590123078547560394019508134548615770164371839848763711993811030034960448874225474020123562458476382612164047635432714360170570328841552647615273026216521258597214809941540822056420412917783731043281101169922395581635631028634373373669946593838717590934319231668910589418946231497996333399064089812004518686401960875014702180529142754819444463655795608394028661896020880699736238930779095342243914461094059654079206594517988248278885875403590643805963681939337876020483762584458899957811868773341083500984461621827268426022504934036524619341778627162450800246048008210609071890907377096603370112040754846074020481912640937648713397392824030576874868614470918431522626030716847834271122106887102597438575067389131339078495892665851483280463587758478773197282798405889581836558336861618003931028682135402599277595364826506495845860437881392423626431291419191751364002705629975817715581490925814017671927125811413303656771090887675892949853989964483530526540483212692779549193921088129274498496362225956708440519749530560411403150521702678352877743632465008648296706854835518316011162944314274519691442888629289885196983007290667553360259640690229921877696606669152356197483265655662957053129778268478503867818759181785926043378227244196114911164584388921600423296874520499876411658185662536086744139925868066916988302788233324231808900364188409458061168636457536405589413463129048543829451561785718312574857842061402252277401970051633680548968068708094924214932459301717504145457968702983980322536885023755302435230658610045394176878536123407985139891459540754282954510440936563991058904782763993828619715361289054022601993534937504920982484081769073359454335880177854821646044719388542249025348742949220157863911919620515994940274920436670926410106246352786007385627398852833401430730646652989717464867105862909594045199884548616909831447602661202305243857149119659523548127994084737919481894257403933996738714571036961070999646233408174736238481411100091487301710575177751131714427144211155004828394171678092415611177964330715409880525197465726250568908982012875112570002852966087592692640082616766703653157742146859443112333285171479689737154227327233554481767192995428103981728554702725912639336427009625595127961657740544437443212201371687210391016667583608639694229206214121923858177375687209475809894152586889563652797502933648287118506560654998982821266528727764118209112237408715385021299068599530355448228038929701742911496849474539032779625023602713809583140365118219170389073201024309798601083510979533029937232683263301822945248454326441027442595604644649216893521584153006471816170207220538818433507101711453885268722586559419304988070894358367864642707884721759463115434012646742970416767893199049503984618859779081486319255084775078655219716991771485840985963873553288949683776136075867761994990872465175831087455054893689067184753282699782039115966971125442108231700311608241485242067488294630601612670257125516088523147735020914298164547529684744688563112512440731117435957536702188094078763257830730989281315769582442020672334434420542093945216597156311947267738379219491455870655014026987102722295947575136659722548716792983094710397266068225217495346907079690291067573919485823313714179353577622169563806232202026175215231880849963457411728500141659726075552983742548529433700349324517945446406773063435322712519122188933610458070758236561347165160966740775759493055388920907139289171252647169041258254093808407924346965363473791470585941438056248388280407648096240236526684702482289839000433004291880911198013407729806932376284292416127730114877920720143535632692471331599821399209696222531000151127935224311547726111400500581393704203788020138159524454054134555308132805810953110725805993767501043795477640196140905755127722233542336447640620564279285474624544340548955549234431747514035121305189940566820156050211713775400239685693716911367798841332122560861805087164150350384154147560383830163352414020154184731286081309526570015084978358618249441408819377630567972382264789243397041876250533772280235824351474051750929622102271091881801395084482792181503107363813034267312780027034368260335774466600983752729720486976204778188006721837631535647488564292109511405112918416545943816490821710762638605918293706991317125424000087633588024516612537927742964410841471408432573644974540270918682799613655113893825042934786396111559315652491208815727258782141976373393119336020320090357986277033264920881879476516451193953889172367014743687379988780106987498670424189225743010388540659224476246778432835039177823574747049181365467571379068105278973415804410663008150704986295259814670489174193483956470825995271780872561352197992361673789979797090476706897520099244251962588423022853025860331299443014161310356099567515179131614719551902242810964742239326460476070173429873280708123182758781202174600248963788549755822684346037564993672605913281823797007483028885652923535832137327979396330424668637693445465557417436045862437802146613041725265695666895178988593925282727654788345887352168387105056254650339814831836825563932564908207150668933439717703470046955945237610688867610222225635911573892586498673143707394932296598189249635393317093351781845911041147060115597738472082320793854905788309457526018446852155722204164650073753936846363761988209183574595600291978041495200049007891516419174205550957008755011686891883356043072818361197211885815471894034417610364415037422240713916182748701661602339521438605829345957932711621743182112571574983253823334049929910003869133624820800686878051109781951317377375502870169591970586741542728042571380038393479584206912681312084846026882079826635273017255877148957591283502835817951898633425054756702692387869785620367861052002915917519410568482083029406396768944662825441931980361557571934570688147721960442180391478877628395266732545076898118281822554329114760656893863999098191531228259675608271050053711286572539670830082699779313057208754330000552942704601531713989910033349280840808463805048101978673711387041465215926779777231737030347292168120417692316126647844539262265165220691634195793286013809801281347054537494219184962564516237189456924717172162111235689371115593461779722684231046319648172856270297664444511929652011606465353437937868933862033144347484486005338442375295674121637549889151458914767431130375398427418247819617574038727217828227787330612120745038915262727313376781295665092132879265255302540003288274692041754742378409215434580066387307070343774093085216518092281081908538969758901546527915705019579604282343882259807682434350136456972791777529221894140220779588147005011366407003257791965541266691936858448199296160353164485955988160239294801408738471497026238916830961225418620281986166894866885078897704122196979237102587097691081215330528535143222026962441578575512778241103628920288334599060720896767446862371853505973194826441497797079214886464252039608782201081202941952700211223131949827236651700152253802656337981994906244591026534793832110214924095743483807749880516736478196578000462380791333381849712003424952264343189042308689177749653232022974557991314701201007700463975964769772794301454074852076157602254378587506417100920295263666721867706253472750151418259747640502555341078765204616854155443264120643076270309268815429560499100062779851498328707349187086643061251533042222186636184373153232875715385875192920029238590122274862421018814423839071444339000365308109378941653779219222646960233927635518717286428086755169306982993920795804828543493496434494626870083158455886029354678136662576298446121928455443034751485002000666438546217588806322456920153768827530497968016480995227905914700695115908013812369316568176254930861441815859762676820864405691073958224052085341723901719906820681757108848689100079696226832786804596589865505184584699540759038915405404907920594650591077223421140436494241804966555880422672708788243385274839827348457991926722387766322471259673630398012720178789127324010181630310808364185040478306615868324257399979878464850804724563874919166095523876695497642083333369746610040904175975571153140664123898636672872851246247925413632992808962343934925130006794388428535280080635735313091712501549617250577160867369303947989523803181735428012497415378976843499832823244565682554168776001788120499512087725661131593593836402563181764655155537245092100894867889284753284331295680536829791723795335366434850519764555061107339310088650570697424909193130488174659530776599823262448231478794985774727715659560408599890351996493030334732720667663036255769967134575216399766264342921749030571191309789980123444460746639958114680683614978425415673525808522719603986682421136002757147386299804350834456530925534240568180121308247417047170475811149200699602470008261581685017881603261567274211587922737924461803577980910510921385061018053045610062844940036039233322808097674393456895368212930265951901098785485906047515153390917969241185850007441849916591848933540806002886728196678520737208467651271093248661043035526616184718531805213878605416324129066226353125707074654685994461249127083039747144359292690082149991481579284430661602710878790832542144949592117001775661616713376210930364846941998001744864658911901404424265919883486639278101630152527797105853664185972452427093104866411856744802678416558474335819766836063646650271225566074922204412306150280146972475729728193106585977337053880546246322170496733425978182339545676511496449000965705669490952252113640665407664395011944655921345728688286081462536518952339575449192577377663791502301358343911122035233023917931483942427513395434898501647311006892205229835942450222697219965167326963175623923422474082614481631802452485565127124539370646735674090348520917208854045741368938781323348323939098893490016258262015969099749043389599788386080298441311243174215704402451434446792532895492327542091007614910071811072404375744866960872563781487153767525583760499881863403336377935354170478107555949689975382564731906463015314440886274571390443928557750901020056556357652632537458264187547090734984633528163338233705121546084533080750300772598308535869212110034736366112858308744900943087973361299110694115254872467285985105534604946983180480315866537888831793526907364847000888020982566045049528503670210588183118137149500338949434065152450274846117482690632417254840636210638675768560893610799243026847989425861668515501439803082012243007760151773241198089097963479165417623479006497170311045191089085396341410883817110809342065945195246231869490572980002275209174882990985929180391073328180018612505211633689698305129463286801606924881677478615300026782204008930075612886914667127787180138029765352995905624810205203886732020024795327281531047094126863952796418949769071589130740966161240702533800506956413343572452472814122238827614808470841569694869505520013640338323128727401143145509610854471802136844509009571702099659886280526257756341770504090381645347368589910556235835476244427785106276313153797312709246595064376386702112835615256496500473533910457989637510887052772130542112705356686642735526532974725719568025385466442300717505318229038628369219432075141538958229633064648551101640238354635450104207322788983811635824132387415817321220598711778042857704043491153294656261297333519127642321709409373854743791383368488352867498593332361180588267676579362577804965047905334663501156102241799959297536530446172578301376667562033578732498147042349297594558550847560131933728318178717955356769632859299634229851659998561377010798476629345283711747034055293629761716272331422283673491488055266426261636493235379389926812136241542308823056391445305463931345910291587699981939219262709050350283322691327883108906448003544071102804521430320013708109596770794768393602324018006753656418699016726450654305921283710184815013233648634350020680276079768941820917452340202501393826274468867109646900826372144091551326529706558944876955108913123679568403804672935410102387755156917797875432503907918712183669254273452941042680831524330970431058788661112451341301238126216178224553401091717419774309748510174948735062334968743696853423609146295231598761380533779169742622580725541296033942405860410386593650123396314995874142814430624261856121352731511733007979078377659784380374136020097121107014253169912097136475489800464494285883638319740057873256878405151687544763312973058735714889108258418787481124712180847895641407677078022930175499763123221419068757462634098459792616843997246569863731981354733703772050622703230726981132008444723148472809314883095694520301097100415581974668687361386112555382546473376853250211821263006895512890177132719846616773423811196384931216469049679954977584249316324028688566269616945462543894286590219816175580410254991304446860707095316995633819691803318698893222067746090674043427846523021973266481143398854169820133042865407409812574316258868478625191692350951186697318675279778316692070253501193575128457354380179087499219285705089420820550350611547933579289197733735312197699930855675200660122228280806079546289947890305602774708058852896537215492634813016844588796306280287603369510348093629658001015911181656463515006456472885225620451177635470993909165377354892462516699641392710119417064416458513734226907598479091746813637053681523796966831126858035192730277089173713226320820264333959163561285561105804022256475020593953475658929486388680813328126411225230681229075573196890507669643478135780959084521095491355209684805994253790757533039126696047255805183089205971630512676235357041068376815458407564389867586656927238343335610043499987423915017455892183670940955075909529101433457257017082611876385402521195664289184540238221993768695526040050829707812751104564619815733934705045251460236750727736461585877981865914203591596265205424536451759091066395292491120242007355911285586457787237047322836876869137646877930232016265739541311555007821685795083784112409276437621308554388552064001444420994234514077555913626342541977084116655419677330311411424299339333636547543860075193420963011830343071597539619667246574629464346524979381585172072317726965389799334112115172258808790983405557122634181025995238457240744255916815241139315703232097188299273147213650903910029768433524983949658176361782238600732305506836825172141489056746366740568695476615979363012973542752271839105764757840750081554859292332636423795431421301042881304224730697941494799967248715887710019722795850136117341129364419461426915705936068889495519153092228347305368971652960600242883852314796929541460840214770260476169673032325316019991191794018742525275984281773351448493763448903571148644735425250059087994032501932060341872275131331107426704417416142878777382035474225458674143425763615587468839762615651400811575650034635639673969627844415697677844230122668433804256900434340992038358949262354117951397222989369856801699723050939386198824234098292832561836491402249579426829764224497283940803358605577341324117510069026447765452531555373270262181611246121742310464144799725323058891940482854741605285833029357956946493661880395666895909524901006629401274830072642619117419335971974692638327782814690871994927996117317928715277432321982632931344113002060970574355648438119959504106673100941200445374224580100530493762701735482561702557131690128646298737181715353110153283153622062568229937724762781340329176051389617450869565727749058215787198556695888024794609585497503106944243834279900653504143495667160781157974981161528169297372744834234090850055631698687206153257488433315385040766416062855599454444693373358113361521407533789570197695615749296820965260165940569312712873741906997928838858608160046948530789369856908597146839349113700781411539146199483937021358697526952582588435932185237549994252533756937685161321881138084560431430889913084042982273755926856214367821317854646782074620678282232798626650867377374651693725109564072659670682961649061098761460152973094125511079378616161338603389168098190160288378162453745852340693986004400375675032438228182717757130798974706159854288512641895133723695860327091240592098014395746273043966293732182150027564066069281695865267760954906851117279715359569047246680447863240242724439655110652230183006861238547323853786483513727979538582566173791783122733778987523612070613194447160531185900796442252309006771434515999871231530830356817489086289229804145255497606931915192365485836728939446842108431295627503734252779388677016892608911390269300559951144872577219341614140118390086747830966757402709710150680300563460564813359991246176488708626919194463822258790001403483627242839578840498396280729917334181317056456422526395968263469959211657105191482387086491277367469535146328678359363068684816081337554189725384464539362507284616010478892749020414934073467839291010298799676419028003094542942402862223424723391081431036555243250405981623458739115885264094505507884012554796997556781501513798942726671262162452251073762769088418607318252290417847147664176092299275703609539170995826074088761009353566511665292207813135148833494785556207878711518318339524172109563150911050993962263008974875127869412905618183222839863267777442495596730920644391621037794737463653167484627750293306408761682569473849367170924982395121377048995997411422223158837567068248408496651270559051656605144847533878075662039475069581650243753711348175318489631008707033368305656779145708147591885446401643258657560744247782070053395156804832156541870881397567716462589294811315894242903021889522208548619471910745499891307371836750043775903640009161284375515651061482592864818555708143228942658552325633774475759040846151800995012977316095748218395091519209538798052539436167281087585518467784854334727470527373627475752221607420051712178252324328261460468679090021017860910101414045343666776281052823768327853449698128175906876003785866603153690561979420330129266463887625871175285399540785294876387584555632651686640214505305911180990323606414327532297288953304094072424115765817022265238325341959379674245213593141151856990151060330022789204017715665077215852519545118327376968761765813892413684462405516306872450268159076100954494250090436201600266531525917347238049717004987206865488413827018636018269135325893010830428625015967190970696902961855577913761734566256886407844515628590086279595108460764369435706692309618659708312251285887251250102637376957393821926543065108744851080821051876070510887451335148949593049167119640418785365895450013760948551224372573765844074433609630650162115418022042412859183026002009483806772956973025952820584545493929011945907593118977157031939657751267127892338593308239316692121459961212728996396866295890454714973849673166616284789852169958878216373729325817664577333193333249519538883174957128363925670035197988774916797263215980796273841607410153865013808609666987253291289621866825753958560396051570133225952604988580565428016107735396710428382543401757536908645124024581370873170828395372368755242755737241884628755339334450953538330320310722252328197675886810201717544817443085825624759158026692170649582963671677721355963685660769461803570653556045718056967418409245953149172615776674463502680197776042383144254941998401201675407848335399782226066421079104987953404979088928533584976649043023886537159425200651857562567848980217613462328453358380018696217473606881448396056472879419793060329426513678516863753431141205244781261291310710093589501040447890704473370361679861722323874884775834319472331930477094224319640252162072915689830500431942530085025380519688320758836936260638788664662706305533831014710582999923946358959722349756099807760278105592050802916251572529382084393259013611960585613309121269795389217580327689714640476182587879179850052311191839358064900667203647638446068108168482882426596000447944109847759082979842865856706626286061588215338426679187318122746636765494286812768970564968083155363897579355134858250875495624816415473963730881214396479508042113611363583654158950071090096691672237994545245643076686240636583293256496180779525243137513168135717609092312274203043694470006759320263464003161515923303463693945885800672036482475213189503394984835041082261383281872712484923701934637018618132564714245473592658934273497622920206289524439591788536596774191690181493944667038016045297931037719409760072372200478204287174104573017478065239408611933280094084816512678449363339007154837943675182335241589942056974798680065498256919971231908867123508850953697345682712087428126079951058099928301100108057907283691212384413353338999615383320482658144764972557483428186778908112032920802197423045100285422348543526480388578134316651232864977846577227181240301654385620640913476861735439468799641924209231453545964945645689611909266011996811178891792974984131580753436796051674631170748642027166575108301650485984359140836772723882133171623772596840198525067448997701516906535972303650149711945350363262635116959566076250051303317846053769987623257711557112363189867913099814765951787900068469536749771126408588716085910462902866870529211566843338771277321518829476134394954612471589419000816543060773347426419290128704551642944957863394984936707499122366290822901179506056358448804362217583633279082266011535955509586797671188060202909977525123008523767820514634431978847554044584677127098784161160848342769807377030311775530009511348448297007857474000267775666274849037984872127896311451187929065384232578775442149293792940400493428612184869266064812022559983022309403935701810896228879607525093475333715223539132320503360983455776634211250454207767807933765620823800921278738085301977839720701116605899722692756343661940421285189581093718880168539352448392115444172202755975525108665033787163019816836207563308910057059636892190111404222270267964550435293218493040892625679524588801408750260325624059971675680135209883698404377364206247030151875395788929602014149620664982743353850023477841982991986817688677702498498902969059435854041151404170761910744809237205762435230452727951476180007114330466946842061749713295644214771027289926151040457947382120619062928186559425226173185117350753364145578120380149820207797775447192998012016932095600966766629523221070313856528875438907706598516096403933219951874663203878795886870687001555263865394083627414192428928261409441643920035014672561338375748148465400565024342759217788705422916618504083579805402555455114320130291836259275779952277512085667332684771783038455377725481374983198865666645358147315028261740789696984526881034890906075897490306791093607234002698329140909653654071187848038443572032396587478551700147336246954891531517338816306358090949487680404150553134665046243860221425239870734851265660322384760034390995619707720921324254920650366280398581074503035096462005480232692896536385718986934743541219060780775165996338740298685064816533802634391147646228922238290185300134867647072647406969450356774013612090906066331689838224372151428551569634494233163508483958786180032635220915022877367941397757936256402960131647392164078819033793358622851679853817232540832773517472095067620442007596793165128960953833792933691165351704419627767108474557033132538614098584158373142120140333449589127317148996529301529198645485256177273969094050207967017198335135655428570432093133762060613184683288985280437886571702951968632342868264385759624018994029581689762639779468029321051494444406031102987487585271976423817706678530909172996165350870013341208463026769422444917102261302796852486432684572912183691295645084754299704791603499535825169340561903083933342047203094233727763347450060892382308002488126511749210716412754329998910547075173811788646703452579408301109461696949969314077743105050170811995436252234905550028946599229488650141439285694005648351607344790690229175318175062325548996890973393658073281861971401186436011698970847762516873785008583345024463076688342439644966122823340280345751933667166374134231780901205160860695482290954796709681565639426452523590929635249919646028550526273841997262852792397579743627895094137538172691537723367923289616447209116104754901090345531509721005883965620461348140705452053401614707264691762513825000867110248099561413389936027769744197757604102890010174421249569244811176872781487407456242092945283230105204998472322622165710849762159973961698585348742063536079196966768647464802518777447150782956648612127098092252099813877123009971214560882539622448322531975892828280994287016460667134651831251672044899333637480839147969956054032431157233366321916347541918331001923377644319852696856298520296507953986391604658020960130531606606668866772266553880703665914413057214667099420830937705061220968286818746811745406097699197298587483622324319321963906224964244371735486544298552395753557896785117139648414209935772777406294357306381561654978785739853762503195248094883763704360260311663898983383370519289071749474099059710476316556978436960661671465932336127807876644344600551275849769188967714184677322076349872404304641963409014037157902652389805534167485332862629090189809186410067715862035810659734926839731233556383527040962542993361331696377018858463011071425453744205023501753507761018037721480794442511036817520104164805559879994191445797700844940536749751732254747193296483060429898179498541846422059839795591049221923563770053710604903691392793600998315048785893257719040995119916729407787945749118310303179153007053322034044853350702972465738033873026875750227222700889326573033315564416446909380382178501235841872489390976052945014081666335589001655968729829943524580356629750058602275445905493837070596929910319709212142134591648905709660346551237450812738878670249686072766761459343575606682658464603847510671434522700387321301769859719828107462179232363318852542475069955219883340912602795418328495486934501216124515946581771831737308474985788587008192281604324952069981989795744892056633012857833825149488901891306257847404535742279832901332355032897469062296458156012506452715295770412162957894809644919370749364195140471416496499910275603115239723037436171009425428044908359794983323059966261190969836900012645640340087074131773901205945940839634040022828173633982781809408175938923223583001950815678320685200148485757755294140707490539688319133372865301746661955570926055479026923858096946249246988282901167782934291601112619448679105393518221670518496978869994024058336360671894777112692522378589357011103473501823736577820054780110841482720103662500522896302930390019918079446235614309548816971168353435274686135315278496880697462899792113113897559432010339039141712670593066159631408848940884403790204504345708944129998393719509663950469120149943004053087704215397806288581711656846724728673028350804345775879306774495016587370118796512959220370192490079814941383814091398052793770666501821406546441269389222583345277477085467977917315287542326395412634477228937333598237179387907600454032068666692679410241453405094561798934048036006483363767256630989599216540130176905737642947334105850448901466303909686861786008873651117038987309809487342162338947173131003766912887915604439345382016641953504706056079142472716257304646353008975106138129912585021639542887059080505190675644913449071786866189276305096719939032532204304036611797814607942625920670440907559673481009142502099120253891127040295032109467316952397450381240847087709651028133915904105296788792271135174588017932238207430245009632752245808944243384072303102040773543119036603919652454169739695432841629639027762035910862792376493726160789870753136404400954433232943286936695176445496763830730095444122447296022205474410746323661889564412142151141431044476658850869589740024847562291965549307027604684904947978533017698648625505654992962534868513810880716214888814754127504676076184672791641254406860406191713621067270815127046955335146728932771819960979701108061867080972152920181096574457117450452005763217521026995892809809409921623104456441231705024227053070087488389937265592021435845426635485871539578850826071701685580881254167053013081966608748155876227920137550800131473241893627774803509792484263529061965371507798042354451861698267293888049053348846637490687308601712515621822839037345812960433281221246028857341921301841909186393937104435971952401522187664586704314522068802619082413436860800855245262673461308287187133324435161198071153129793436518204623094600063467671570394237960012363336584429642341568792207285350178239115991583152874773209647346696852654730031034425036977180868113358068259071322901985371138724692503563153910879161369540354576212609535399342353705339594440006218680037468065264747885286815853224263897919278306397359970335342005453147906832273004265544356534037215790990261227388437859767030847872197839149830309831847670345797659057748971502922995915138718674377045009097782731932666546863865204128742240142056630059457948885710661327025821817030760487813782788855193453589578448794333455708386504499822333036729297112068013132475987905484952423321087226708664453877833648457386441030659016345523555763792476467529117882504122178808608706717413450045517766366947635608340045490425494702815426075480942155353757591232965819928565260296533636274998861323571164923012464564254390125103133086667877448888329438196435595675841723785492158562100144324152769441718328878543866168154759766226230015864115383189316959197250660160264578983877043418865557164287538996640908810550167063490908631993383880373002009388290272764609252010552839377645776379285401178911209421057658481035385230179995625142381223123223688176594444931733479028064141191855831040348815408638990055071236860945291380537604868209929398814249931941239865779648651918146980616064960281727408889730938721931681724966143032862005065865569849297595776191282018878454537242405306407349189976243116806961386644445080363912668099444631827437090041592412919130980239040616030050145002604490770062782654019759197775196381270148557988221829393806699529049392133125444308485076368415891854577119299376848265661346892682692364119663559827906917841273772922161457913529472731367097628891858221198733812127369694925590911920866111510875825904217066390961822720023458731245220825030515280332689725022558498448219733937445841494016469932895600865561839412066732121478474277669817635703160143479868644892611910543330798951357273126001192291391520285318130495951472994683925868642696123633097269417668409912615144226971478081743908088178548826476158458552465329745595483431780860868041779214380794803481448163910483530514472970518576876275982500917726347303836372909028949734524472237453438753790358716953277067517220886638918961364115808354903051254512159846151607642575104105679776979404385685571887026263732883741187424038599613141198431241062924838834107439987864866997146854937384175246687939134904596104456251565464943934276454834135949039261964809365145963667885379441929956697165214622097928869419612391962803343874234798675256909017247205767924147280085706670544150065709986022512261309385778616164197524867795133472085171167246156150966410489527391620146741559205424513880241612457811806535923234140771637862837542765834294475283381620301264770413102981368646837580410128701411886210104133306032450046984202406892611729727912057453146572806671368596819552328183984879956628112293438686777519546569104213178673705642569963825099435872426752691130712690446372884167452442133423068049218800338119379108075244617142396316535600406888596277575759956205895919233058181784386820665829229225185438753764107919508375725706366397244318950757768181625225969755468255170430879645651203859990627239322562439588267933566902133962969718305009693085346000315708771141006704930760472969317855307970933172643583969672227023858144793306277681312804273420120878410790456859721642724654112740691660287950309750228955402360250009156150267562924307815280495874327450250313745550249294569652640392204375595004188330870395613109720995855374518958551509573804094098281188952295877350035886163999804333192407111162749208836795015123892367634442451504834198693972769916618018280404059399828717848253914038244622619122462750015127296392688110950865210772802228359628481511402992268918995146889790706556267133549868085031265741789121969470565118287157345515678412283062381815927078630470095596232847726553658772955334283153073751801628567013353423393057280213508134443129429734024596559968105817451982983932007019303002079131343257871199600817409124722772617032804014082604404521808399161699130788466487602310881011651165814574482554346553706895909971592077148355090815229143283493785334116189679202504334691233221148183833733962718474164966605152211205576227425003860561833997861208463772777525478500491126273863156246619320566878249980186244663881075668196103289761091025539146533946958180932693904468308163419373439191867432278177563045521076429778886212852682339856557077968632916500558673123993972804602051069844748353813010041626955918440734986583629499869812464875507228101167395839416800291644554764607371598979328866999170615875125622248448279341661162558164435300482277905364496382693714436895266485505895289957566392095956416747262832574616160643030253315259545654761589041489149219271860263313884999218405182533555904187330185531897798541956904301514861862835238283197230399427819902864973069841742936901743959411063702547499910905114323539832195771075504576220185983958073392319239274106684867953625845640875682582417708338944449291245655298189841417667758005849873965340939195153696246504210720720609288011825577078352252920413245896596032558211897315389735309176550169071804963244243797368664667191754017198493160290974778698809617577526261600295358698435315153108300619477030525826575390351468810875645880224680891923694927922812715049354746167028411925001512832747764713676953172216626940964650465255694716609776538076515353209912469624736165044437492191701935083987163337868692693622788497279797633304359777311038201646814207003899098354336759986984786972149744042905888375004186208917424354679758548465880634083132431619172910074915195154431800339436241869783302901968282908605983934386168531239583783446982140888430394769866458677296054506534285627540980768438142782142988078855262882349791503683201574228209381213415125383242987070238465042472294902769559740110680638512382557825124209771980447582956539715535029924736847966087636499143135188960300801087711533336668071332677410315697119483905736552578065849924568119784120538356292284094758378380914912484722191870616531493323273320110282994006370746567621943582824535068890213796524101106243762175426522908342410071843134347403557647594502417904352957405904066627372094781081652890836375212359055413700000096170670725389354627156282839366934676483909495817352553431403971333586237890934167911376202984602801370371500317966371684991696586328775293821923859470079493993086328494093646295616380409557570841087494085056035107155800486051137068608807834080558198291526475136959380880847444290778776714705619881873524104101272719317176620074026820891258384232653769387229602403822112391265855840708793297536864153765938732786343490343190705368476074202934263862233938914970858386714490240439604676969736129597822319747859944362713731927521852834679881950911825998828837674417991797871838497357927183928291271064531289549978101630875823548248989653052246250462907505540895354976092265682183670785419062100598610511549135292448205027341838003792331661806081036736670093189647882138537579011385303265886313357169660131030538881054978440533673262906769828034276982904516562184905098548398073760032483871498373073364341363260534401310475349757176560858746018000684086297538061897840187831264726808349527203761079955531175574842222024755460162219447816123671202439737359327551057944610469488414389276050794304766840656062034214959626313773337131518205195792083057694382666752801638000625725463722709906327293897627173474421848375477563861664290277848484591288733296481251738364115638694430741603451660401878111194047871411057632942200078368358882903844554334873373877479195440542691603185625938703447131570494418779916779508314040989275504558259784263057219117949448537334238486896487306225324939089096536176219909006465244620252858273227196230724844125061576066646484087003498958276144790565617717854866411685503177087078153182649386418599175172860475994488875790601247026027023887412098169088510856705299027120315063702771323089857041348461491361127856272457302994728139574284440277660717118330052889564724314360741018304128085360822392417874762336265399529556095061805063944053253513045192959714062830741303148717901195939958128225533503155234595506769184934707107454072379408371423786656377515315029051067278486600092803423984744715659068072350423445097688801628149944061630661072169022849616307794074266598025450317723901816754311608152587965401973315949033497111807121853185310668275065744297091140319401706296334268530158784948905338861567088234268266731885681791041547674388437567105366433447134650001684838505618600705680766973656278848429670659435403660765492482206221233891840725380154518275785033210611411438229528738501354503897803770002333623547691774034457736153151659881645000665577525744717581470114437594006871898693808230771022136915783041433355387947040573310912124820176995056454195825382505636742997546272396850133748323933247533450042191568801963285369803846777719850564831991970476607846902116799167292043336998830144670858257887527033321473727989673663854206914595371726001365728921333759605937970308279198315609298604373620656237255227699047619614469976856621510039752858760434744769869710632169422959776937877118458972907680100574671189690729976551873686799480723672799959773439819812701872887793360040340654013734797652132708495429144058292438329854125199854200581805407556761684123124118802941882333962294160502355113328791772835299784752952735582651111651926444325904875827204184308505437867582269613273804699231655688631952152724023012781199623731028464750944648244696129769188277632751289577108211609114340208252080222776326230165844339565101514135251116923958038841708723385056846816049929730801451482439004912450215159612914944358036983066934010740586831262612769843096227445471132842731974239616580773619533060928315828353435267171472451009154556539305593777873981513095973400347977231310950542887321889712914958211633173963245328607668554872565514668421592978331585745867918435160279065699529936135806324462544938963647722730821320050710775386191658645702042934051466698883123802774436430563144903921880379890887174468598516146653670017372735892906499875880051899863721437142904087892618299198379270904312843876259495629095878627999360854262443050453077722276752263761944017009037773106421755576765577120791118654949137442280180631479739995769756259237329964461376979842014522883589003234982071519072541552027657570331144479703514516742183461428438481555464562445128409153349519491294928631488037493459606106666774440119144522732375512161732188922886562088556395719756717051346598120122222991271778578491812715169698849503977187586005711621446624441788340461557167382734196510210653017796386227957043630703704002405708928955374505990261015948047052040288545238200990396570028718374797678555849661999947762300269989167942026535770687774541730380586392819609603949644511887368522036808149728333802208039031464627697991683442710127251676117767559638165396168170738934846611784298791056220317314968059481030879764121771898486315585457217337929834643846862637332104985657181269546820428389262219348235366133274451748236177502847223427882232966636420287215375783204530671706492341385319361995639991095215920853546868877620766945717401936489118249871936215048521853123742601073098639813686123302076746507280191858422958413111262495864805969838584178584583339196244388996460066881716271778591370081964473187726820926549788972671100584930994356171705500179341556524372900920495511761890507296971601410354118607335927239447113002073614311595903965474718699926561884353137901797308829291338544062734282110024493466682722422490279055003111056790283002752818655081013233270559101004292039736829541928249609614730365623074767947542024499754064779015688486830647779399555717927963704634228846704371305973705302190972104803946103874941250278640036058207341419397744523912640758016195495126741034899120169946042821003530773336621913234768423404048973701560207571791709322048797968654730443291759317200249106336266736741611346240440064340181109937900225468343807459708543010302694023177205709850870263426897826843004983146699435097405679874295761459541637648298282063555066566511339141928558729838734707484285796343398738304948707148693160035515458443331275201041068606878135813105240951839858747188446606484763677314222501597808082536489207219180636867585070368868691769663081173615627936408843542428683883436427388889525474042013089936199198603242959081079539495174049881753062809313685307014535561799338475143273795146029280540525122104254037329738116952648367581396228308375735945591828524755323476201028991179159058035987523974394574517029792070213810077173364103622538360147268035501003064279607305316575348002529925547685219605246374406581862979867551494843341008725065011320168176322293408366719018134650465256783376583700510121850335642667558972520715151636131796572600148425470729588891586961445927181464633213451111089818505872028335580295317731839652090313932781312887272667927106432307983252666278100436934158355131708909094773657509474577946842692612666679830919898348621242978554788795105172073020876884814666494287936817998307027198592092994462640143414249426683209426456002459744550700673950750735670118147993719964526280933207615259045141387578773794414426348181267858437096131897054889144017327304914662440707773276932015672192274660408081219851971077076503329260591226143927326765787523261925125757210785722919740023126710085596893364641978695581873134398424040864157109269820266391263664569921000111600566151149699547485216291802586647501325730362215857993518465916457269595898259094397853641676182870922964252738398766565133968231383326532370475584582442275263309156057877640989805411394657944448971964288573491004086416580992542636961071422562624409427561835192556686833573289833044333652997316004906090319669682794431568322224290741181683933123158058538480439781407285168944836638979326792692656072313678691670129323699624087617514081026393818924781992358424699393150670538871526420056310181930926369120143966444406544099521935469110309420384560342054500136633000721465999163041467897596189992382632551218894761687271011490458489990994727646337933315282995563224781172442514267673808539392400533069726194393399748134004507500288673760987941882953241958544061775640482190830432563149859118956452555713873995827808797878486583138137890731841847146416727285399163381308610882909909355111507856570076451386179809033574954484798525650807263886797610828233477830838802442072392653670533709705145721270381443623137382374810488087376364112803384753637645768103508880316946753043662105060646150448360514085665339108894804129848363869474529136158976366957661930117609239006987011985714133258181917431888027812932197406343234392597417160437732902187399531617310664833336536857592075302211656396370679901977412511105692236786631421133981553049834272789458600805193712702595308065058696397741857032504196250922754676134664683708427858748918258976191989587651955716844943439402506605457952979091030877652451386653333218239727627936013295760630385934764083737888279478166359710907776938911685011002316130157724147775847471565138316439040107811593392424449347160934889683141957277730983650665390267471581905335017938851974541417872413286782082530143013176989991000658491622473741221888508238216227206978073874199946922032380469500796570525690419586165465561135207720965934403549245401397274556112449275736161899111254475967746744173392743538779056790662923931630642860264071146902010866865078456796933275080577520037420127147007695592127608499098568023467070651043895582737902327991809281629265575860342308390679200952292228668060125011188041501576933834151452335438694871259262331985022984965635599354267392103901484000285875869636597642026720087262856802244867302402728389692070228173055883783412268504404753716777989885941987968618936024583518328314353463002546016234869641090959615414441561363169719760348123831454973285298685115935804727077560314239144476964436248020708223077047218916593757975474276872673978358560631327941297686092394287866965937981755312082951103722442797426292327298900574212071930791214155332376822313873736756978349531631524797379762764744539423971671953109570920606773732104908728627122066740902718606341917059952638835168586371473882007893516700843107779436937976818313426584651026237118281078198393433952104444130788787410574912459836783879072671322803140515849174510544569474397213989546148913522293154296270982170433344011484677192876471297582295540996602154318638684643565808231932652162808099861169326661864101290957825035165733619090762641601194141142214548753635717468392731462518953134230514347580790347469215273918979225336206540841426179942144453945130015276063228795849077819035671764189863790662118159389083937310683094940339500684465820235596393333395895807380574150253392709901928074312388665647396386702097745579670987789719597581686525013274480374499314339796717164320193317159157664157134262945920789672475196265811122337731572191639390090234656838266587161107478136828826157160520360018143403903515835459524973759850443055488205086479518107894380080775454542395520761843158713033752768464399308816086370443604716260586201700336781378279563884235417293213209495113297348242894141194079461293581735481324914751738445328294031179570270346442294763092695900979524865233650751798117029892212883716741266177044610449129238989131446244336681507477599337498846452648791921511333007744366004605676898891508976655266508318435253356981173759828116166006413000419861916652686715388815424739854086487295354979808823966159283958175973813622230152595270005119160251587967455433000985540332068533089023734841743303491903011916188472073096342931890820281094654934253825213138744262903427780665517603270792942867370269229913071782967935455143266140165842902311516670569421566550065525318322462761194724180737999224632503901526761946337116830192999817111354043611576396992644951527685769839956198734388256729188768110087733386987910753469277648659028964243565535859452167493839683815235470274744701717416567415270893805167414448280601421527151026377897387850344648113124798375744305053906859260499898306674140884236993473730578546314286424891820272118170966982182888066749833293777819085662565591722415171037241235114307617372641208504268636229928747807937325573503616897851056372554541095199916461025741402783256395525979397217274535899231074802301467655585792425954682828762921086778530237109640496076587949258393917648759969854563405341326331640622148953503028792413451321678786840537005117544975230095132674982986938014235018145060050917179510727110471453629393128251647039236793658349860682336313758888299189835204870888457658502495627713946454108098096653202569613413142657840352051459971472933681597010490252540284889935229221256658594722156421295561611454442283813334778158211634541844057290472232524611161197437910411620876024191799608556462810383281140125418763764754803065356924622478501721734177636365235339120124815122272066750152247014676643430220619904466948061879378579870729384407426003243918264866468671954454189686187637507900463161246281439450658223626694551806997027273259297152388713978431675665314018940553364060496804739183691155711297908569354568582695625639278783753578380253536875148219441344691369007403335987031124967069630908699416230786738269367743195561963006451702665668921774147430523987135436077539053888960629777525220347473449117227627394402843063357700680969906918782257885808922449650540201401061201224440053198967041270137883046810334111117438195955734339634016751568642083714738977879460843709194120738433292723898189603488214507315626463441745698601385680273605417804435342674112697559072549427241826407925513385060071568103235771933219666083502479386981064946046565461439194173137667274050999081568122911069133440934447613465337794184064083303841176235608137213645182307329287533734903245037536712478338964830490416583270212173983623091576568359354098942668579721296131444062115205998347193449314174802611961972594116625039614762473454734093818484237407112202819912816205960204264219339404653513041849403377549430287283513034080531942141388107313147719750908390730212167419014858011761053758330408288027644005723664116600956089479004884103960562963146907859475427882551900121067885075413644787415978175193629839181888119065127496294843842285908727187844247149039690795645249591026995222867960266930762806618824107215649031355808961412156013194054362430382857930854393014422466001470470444633780108178402565878969959154712043305384284299402996549862514185528226566307656141943025540832870743569187322831830908786555416932257426911460623732360496812057086582841043757935057033568411339733936452046103986615424358679205255744947023250849388682321546858453367500543022676126022473626568486648924357387041198589645407969303281830962812609814295285197250331826398178145969717336186183010373453491682683667318640857135935529736658454675257608170430068487231175863397000571346833446057064233843930250693863009516838324605098221504342519718269895440145178408906309712553037194400691462799805396684108431511753235771405040538109970574218211956761663103869729481222958199219416583355277308893485577537863506675223856659984567044688092949403061985997940117934171900549465624760201554769596602334576985402248100266208330609834904264232946119476117942754549021448287222003586839018642271803667727832596935283814108282234457393514190484306606310778703898076522392341220253255077007658569955416387280152967735417691374898234205136614270119769699234853753235598337736916877424569711041545374669071894622453390628290654400834015161257310428022250083019711120682285635632824333460469264208742365407027122180411992295171904240469039766197195450833291682254014529209752933031339499598075527865783668141678085593510318888234280742587612144419073334008756700276936682505860847762668643623107874265970276862992134889919373640202223628113900624812956744521750700273405284456180384170587600777592168725923392515021417129666426620722594020123006435849685045454016151511428421778305132440702139998346572457715566835862746579758203827276087046501565927397143962574129163729301678074134892350731924161026554522062039079280156745693283585342573195585015467823977646661818185797858626603460522351541333091161034843613390601854062930231580515098419965837304679349573081113426700210819551895492546102167135673551972294715978535350033669922338221940495231854704083630021890444770178547644958742675177855425036078251825202842983417156444315825078655669106166835038362186555112501969184543730432109441116995176954617063391643569581805180848239962063599423219165808452400196073714213433565768947076215727223765640456445805449491888669677613412077368301657532758722211160786871405533178714022162663836190936479163559048429929095929766463521617079325805227927628594110164049342812312739850035473011590596901760652535701776352613997889112068056914619057243709526980529408105045009535319131894744892786669704596094930419741731206559541751306117323259897509305033841139307268275584779563211801296889521797487246699159253164690044668254659428751208904436265728850736174423003041460467600486968172399776223356102872386875201753271851945826957271825976825988983107520904175859085346908406188140449371634754203209535827566990846348561836983883646838008686880065187040688092402292595919985148152543487584852422306603674365639833843599119322595906776793491362942198185765824368306766176306825240423216162783883071508957610598874529592645883968882280731990870225717075627558566404533971158393070052788297279595381534829263751755006998264611256081922099140100593795783235084420040843329723800359680660451555829946397048883279562905803056449175670019633872145591292365080023480191224703112891520847717141394957230068968802548709997458001250298715110422636736869140655310470210398341048791522218709372002427534118513186220659811070228106705407834642116621302698384658981763103968184237315797227142036111167494859887700210980344236823122200275486527600966040460567837502642431356337766174918307419611703208287081318672373335610208054298868774131082955650380372128301446721116716419867267188968357653229633208158800200489167579387865538006871060742120020471330904133230213095951362307793716708254582664598430068495914835534755576469626739894758362050455683583684413334441112975313192396821612472632757020226311624808481614883846028062655860408369363751349598827944698201172383516293712250051153456803289667933407683123418815699992156760844979441875081032734636204018134743338832934174421702174545748609974546808938106599894397112146593664123308413077922396586121373956865716786226624169587327240234582639965946227958413052011516757207011635559495175334182158069807479944926992728983549753591151023200672768145053169128823319405377656623149936481091752569185882079079879466479774191704870751861811220093025931052020564770783547627415956984437008536209138447739690277925075237447177675272373568417478184629783915451644608465890082934978646142948795886428916892976985361331965908270645698715732598386129855906224755876603866980271994824672575955462087313699506123466931403648597529220353073402054701376768909906274278920029642700880326624257171550250767627087524264945738102890966235936245770589480952384595727414457787900998518771836155327903401108915711824094173979199514012195079528152543451115404138759549536770472466319769599297776213544249737474571293036144271211272909457083489378502335857370688467769214175796409276194297605855021306745935525427333798183425361644087056509104480595067369575578009936661028094240989881945280266301242357371657260961558207771503295797835661919651045198298162758560813121832240193249573109964126682459081553803530865124251748545396136928023244355834293865321191420628914365143265870627859252495799267250831848881773013356519349180380350704421154240963298695846659334706238228323540054850020167839642288069982399961343681403340230220728647782093449497003584321810747593932758631441743451808181601684777511835359995788364887476087754636833337556794800181174237910942355892404377031127881025615857687710136312779578681707412679350164309372043811653374277563490296164176102709151674074846044475595882072920363458183585493653224893113620625021872293035023177542882813073032976151820335440511882683853555495410318885032210242896228532396309833016768234322155800856813838379296204853729558987621308794094024262430172026312523753187704438905260663571959204992641371130400193202045058373482746846974639153783805457441660444726976220386232527676127897513477933191922822538053739467157124153218971678196806717918297616269884558284883022294570913430558194799802788832275524593734150688029697123934954857426647972604305073725285489300052282053460690360324945747294216852641574621715525607214904969237070707963636811309164013852187876261915932621093175915768484555747785500527007360684458196660823287725682248766303494364172154747051119806216014286105543242100615119845119702506284788996691982071939199616498179068774535925042970484551996842272247775438458097817607289757822165081665708752697564399719574772279904265118318287049719488601455056290695815196028504019651723376410108474648526098418162034363742126967734615802837443771969780233258894793169454830853654415706977468747335544779460543311902507776700647020311929779572654694402688383740548579510129729736107759089563838842467451572951728913119701911538820572803037518233668353716854745036763440205553030221741714006504973403364256165100765885603311918777397724269291677533767025360771643128356629876096302344575590008085928013052246225972193980487028271174970550100358254564380078417027710770940499148861104549611681637822713754674905365238185026100739521355831215408245353894633480480992672662826973741501492037064817450772235934706094854751563243499349881398097197988708667828094724423825649233642387849159156127666638284791832329597127772442063392177256663549762449838820427314147096127526991185374539980040800848863854429187410526583712237671247835833098487206354884810313263692339203850784965498891110705777221290801704125744675164681579950248334620586035649205482110992056256249980017178666674145149171512997671225790441702441336918821319212754640993903248686008278332746093595917911581870981788794638137932327675511629310578634597465361577333541745308004078606166421294634965460594838708004025488648679041457735621588534833237301040107563897910096823654261688381606073199074397189677980446771094392463323376278469326152849515768259282829886138352422455502629148425737469198390117573340399774206612171205511741499387427516075967456906726929393432067730592111761141663665957905755010227218747040629694485869815199701146374785324715090870129788615940948459494763215016937720750398518412380779742385490204940912304718772544840478667450804466136705437449390251403870864309888598416025737603532641409049489875563765269930139933979135380980922538871150601509006303881097904055177387354870775039545272215923300568453972196211157689497285305414568124214592209715391457797151995221244070960159791702534528512276055041359663861752879179808163403480653965311820627828406117050090583112212466839071073755929947437497228709288928380785535650049790965854424188930063731211396643123983277336110014515677852183420640822676302137911889302131555996478772465339497061755704371135270572796238297047351322874328182052516817748867684370070327055418710853587423368876427325321060569228880542896529365511116472340378243839841716871496291826103981787674873427763408949736690102209280156537160359353418894189750250473087036302671968726905357772889218640694289656840875717133227780241001927638601432026521713499016646863910022605581524118986597783465013067405868578143396479361524267813399106781236048169361435059821814466638199871616796850385205985217277703904957533672511645912073588110307906526942529530769074936834582571400142942358973100039430655098057745289726143942937055749244800696571305536514862868720545562646100104985067016952196601161617719119836884212975985609487513674541634989024062063665626563302739080037007914246125822345049892745651551488461017367553071809007684745340918037847492032541889157483824839353161846932897103040098753768447406122516248776045363558774130381690015233485395024801348185514212739412446735830208765285464712119969165544137282835258349531789176793408902895946351289023731625960988149704510851721449489491208474137470703778544896958999538949279909674761680377575441691224351000106266492757825242573644178801712993828001850628475249401989657085898474483527513459096591168171892879597021011207220679063393405953811717534805682403269075334443043434936114525234013886527585146460584044153262050417292160535442703705769397567041946374661186419872340280179708104332928619757843793002487269020473609363310850031248408851372684012930676569135262696280089153162600591567336137529352375819084826952998382976020090796269446985409017514786678549203656445659818117742653850066953073894243718966969253680263242261131427896656705465625375038736802638548446016249350585944573143147242596829577000688894433766490087665867584520552572190791674584061655974184617001526206263621091705501627843177054933223858396461205323359952973342835490580643403418251106744115494349362882950767197003162078946470976813022666277103891755370573560045485775880153708659522946937313869610229614080264685546341846683996870462150356966965630812838834689600583423353940522684363049906288814908203296525620947849143287954190189521775778240653816586617723289413932557006611219842819776032245429716645600004083525130550329639513699200173313661177458723931382476242361386084288300108988150384590825208309948519657241278237761972451545102040570487764658482453737099800072535395169419731767431077194892361421360691707501058324821659906857022667299696003559563768061877861130643233560099153399207303292904276328026159780298680205772971219862764188771476395616816467917762550381708955593064346324313203454877952072441329851807294739385156232703846982332930047152924654959224215905570355949298877395471664404656621552845045404706592879340464911836307599050697301284452708179394687131266065948268508223424136676857120798467983023662477351781937546891681881717433061590151379445500941257527953864507105380564051747523094890988811811721932909122330080961586070594871881508572138487532283930136228450387766023535810420387832080968283203845756603456993233022625974966571566151276757117770365263858073782721749924739221988202901032212975019140282849880816814401891469784078241894548001659118946564733506293647052960977390509144432477119213246315611290597682246974079240263226937141224643714591246625741510383841261267391671316660087468502549764704781898354469174217232649043199818891489962038411558597930378984358628059623851344222381598092256897320267534851699011968237901459971825476638654559051221136111508757796570938851219770382774940254708312458617277012965471693760443307908189627384640655174342258940000063058821889559125298441540784137761854135891529750752337762246716113484687040422678304047622692092103855096112292818825449217009997609099801601888432512428848085722287685759250677701937418137700297054239967058713922206800546039985662686247437287400407115711122321850853595538122542444706637524372241676491998801499055364346986325212739014182334039718675270613475108407011274253639661304836109251953067592325640313972881811335844391337575102744729305918077506493502160408441353088953014963988239135322732987597109291427170044857480320044140162594207516828492881767906374980368744548608620360783582448366349919004464172161408975429464865426374298803969655767216153536073731244480127161910601819807185746325565362715601786673687069670457825926264260842888766512882308557670893899464698346927773136286224164214117013973609707700051407199923389829247616110859134286266243235385940576478829318454918430733803432199839617111050293062481490996793364770304589755930554382549122047403915352629325934843159260308484714288336192495057911570911202245267292332368560595358535492533165793858434494175108517219239146135884954251895800133606465183124128364208186784034098474388418400044951208412421163391873649793731229752517988019783515791620615799599596080087927123177239813580288912554327860977417629210254984067346814141538449249965760594618762867112552608887840784501367943185642068563793550094888662213716793776548995231875957922311281694210570972717027496082258455162630584087306363043606454253461013235725747231880252587154042565377490109388538947032813106560900301667081406805011140277018163337698508376256049464126350044576524163976454305006566371904620029037833276230550517892949045148623171860643367410953833549945418204756701355920127605125329299510242083996634933231553878538032899991781655293776896350783235236766224196563773235535460616592110042903653417656003728959442335567479417057946503911167491943142884817833950824798283505332612687467197980551846983056518589464469721699089737335817787078960043271095530017040170881174855812407890067985915753632841668024961522528359751802962628467346739852947113043673542683932772213730367615292278657743669756292287856155073609013032662287774119494761271067478034843989990207592614389367454092331881847659590399477760458526111936958591995962499551574214206893641476067176034768586231428389429261268798917819798486333458875111330102871146553169379998451823632065916644319813702210475741909422929339757465946428447257155847475470088103995724179377022947694695122483889971197535245759365020313054291085050534521524947568570350176758005697558743488341814614723017804112044547014783783939767707621017175619928955175550360784335260753811944692842375917529595405014943734181629798445759339710202830450028952553831787469075741977819997007829809462926625059361028864145166515251484706399375074739726072850014287695795953583151095994096879752468592210451159356635160000624015171997209278306231288313381660439530077125335460310074381909238394139623927414852299726369279012075426837400761032883217691239996557997097449479489208494306514062125154783269108979799367974018755657681825451835116407486963914416523820058295094613797380845467181397673954744483182303425307098301387944209339823610973789405071129684275976401565661128484945305793201723344673812286339051521383445873252975162139003363424152222191164140164287076748950780146530647821349808030773279021331574204282826491854955106969483675564553760014186298431838676893938079542817795211862876333872536276631431978022501328703453701951259098473003757264612224022172246250019394668232307196625806229586582939452715198300636348019607827800839939851294137110163044275980894708937717830666119119674625816100723012129491120003904478256054942229847046044613648211190080190508920484096516130596420558855005089103300770717211975161738556882172758178888921480260300346506462197096710091643623403196932306777557739762883670333367508860943565500392100990699836260903829851253229842089985157119881833431464861653367575514990857588770771054624931338667236399075282560875177326953219243385791383926816226610911745127388153724329012543692905873229097135312468709980344220120795733534721419234353929541758828998472673106612150760878657223801821959469129667179143538616915776849743954621849836506123713639021358713907882122058454198739571579904670762074291315786487546270476047179548964474561634253623567996364288254271396303971318699123802730467358284422080817459057418512344268155035702364463239695862542562595713105721567169465573965089703823655288460968013598496767098969230944732261392127144622420814161068597994502383607178035765318943420455987913850181997958320653788407025331836039486821544068489463700789195941035306563248616340300469452185749492515346567477273118905020669241846294845435882735203761148872660986891918848114322938115289750059050848655500488837277106687219312626626112118829681403307187361494682449331726771079053580923560790897440477524304877890074079739189514639041812128292104614147489784748592530832773622209869925894895246721634083066145396708491312890271581940465855902587341347262394270846243506044157435990742937209047847186491241649257398953805312070853477927193758289852278461223625264985738904609553839252373996549197365238007797981538589916561100728262158491504469910939153859489191461485267034905059678805657718987899920838383312736949450514957888570964696881228744895115424347753531546990418808336137596455711428884711806744378703827261790409435080141082304676451543503071853559166720121992547492805320615672454207051016220964742956515491736894408746551556810102226464020460556070650832318767871197902595323457352298639472303579510664059254813539192086934121861822281255258720375165959359813089344007865100766636552955773220580965349433760360366495482150684121819888238538569669867896516529830940228363794181577590021307354857423551593267950197121813233430899536252681552939251040676454113405291765720977661405624346909199147868862274448355823811072767252509502026226674114734771043578013715420562416556029813035466192395061829718273233732250613918269907420610483999697940074564340444599970358714178445329589468414105233065378319200461569115277724886610119167494227435913271240368034774402447818480425917778368750490076466595266928970658654306759678143645880783466913426841819939189219495917704182937128914310752726110086524271624327396058240398399509882481751322073948658604786160497132795078078781964169202837560476420384609493559018686197308823616806588911294749568712379602181777217488284300301300701111980110965145238810133394963572417368843963018557775194526893552089950904910449293487187084945471492476475981946694081997404536120910420660889343484413817122235522881039013929797555723387348031072123456390463811133583478106287658824399338253874662055037454825444383137698603876720997868055268927728645924596339328136870169585521654489235478970519476099139687733522754264202034475345904605386894956096917973144929049373058578555367685851756030219563666257989562642268027563749717093256190801520114067968271441445566815596722889211759858475723449422473163917883922982563390783033380428617058950074257050620705392766851345901016883633552760235723909033757252819139244150477817311207535747891599488047968942088634048021242924357878911262449667356380541671597943877513009504624022013389674158245415702409792365047673912544235992920410280034661046169311148729214390664443429237687173419414387936233956516075252815762555907314881598249589854265448828372830436021355324565038919084412807774748308387074608678998176130130951536572153248691532971446613728040015192750921404104644156691346821091465266000545020441696116285955805450219949738691208940747864409834381633130789315313905982862635609887398263495222611350615495416134202538661554599314235455126673455161172637516093525268931819108983762149506113265306611583881573106776268932450033526351999140683576036384324009576285555624944428056473596120469164935854717585401579681226803582952502332930069054315169036581248267623790755915860701163510080185902816859474554165778429504587881861501306413643051522029339450424639760488608961872282222061493076395807004113480482515032122202233842330534657800601194162222007553218273124323084675891418849875222698081953346688779131139345518871692684576289524894628930473240005538710030816566073762918745143032377424436074373247088113110821771655560457251807395115769049846329023171410361740329929562130097208134563397280474768633749510041849252261035616915484304243901702070017953697407324255195537284829508533754199389274745546877852055157815198063473606828407875985463080561096013451033990316128420060503835476484674884377778916374687904330526120697137729180007489412551602306729220697604334964841529961211010070511613921305592704135669940155072202544073317831448636924964735292405678306274935355632530516288762814874584996996207982262499283077081807005911854342896888677943645363067216487433723178888766422260077904623849085604577047626587315585911500742654933370615800570990168593861596052579755691818858711214125266570819079396435573487898248325280244007079692384854132908088281962766710556874937876265021467069876526795501972292420709160965182190425364207316819999834015181945581294729966507038876987484454503248547825308235874606297105895028604921507363567723711570831786534584399319226457376221949093146595173232676621863894584432195606466149994468254139759601117791038138475545477562069839631608883197657292635699404243922255587447220083410660805259165305982909854473323406840672253273757840712967564005371683917522190950313273935614847979995756938199113428561404637870642432115267257588259102245287762430448786881969676689230605744526255979002480600489890306517712887527585093357440792460657027391060543200327824994491074448737748340587446964600852029880332377248997707294929373505968064930114356816248586508508799578410011979615868778776658130504773644954646217438825068782015280469714837454628947823303670062447452606875004235039654333306373168464752231793661106298101563396418551738354212772583377018379156070392221703277799121717897102196844066976579892857676561272973918303474863285694819169711318103324257534250121134922004632859441976918339878737912369479047394505713509756748775900848663700499999879873323404595195589757124536142403913076086758278810286661227743560486799810297714675334814124229276850467480152408312823214432681670889446439948671634149365298147870400455210140916964163885268440793988441062730904051692637959846558109547049907050276398655460123089119934215090387415471391898049608990896381679860853837097884374183972545760696478664819422807737506222119729008289454184728209099736807184226505337087475670943706445434703503449656801448187981367164064939353043897898890791070797629259571715086083271296765699703556138626898670558886132785721213035770726001978846484363650088609631014368037390983755346377543841296458709666996719456717701198427938426429805498598404681640141336646304374889873547675697704893468074540795104897245581621362590679260913458440849631294643643864437203033665352733582695949738775868119015840956957589436708789994278714245920647117572814261153152442978163365819989985856632551834304300985832529164171076917455907092621794977796894180839039673340493904186557686601553883445507165169078022418481584624419370561613191563876589359799192349780601042261185973087942484999286849106460068166478478514361699026728497893451287384160112906781088851731932422137484012137809526457059144249427533426612969952398343892919372651778749547546559469882054911729882471078718734937683933513409791370576088311093623157725776584860333536445375991813393688289477752799089322729678057140473358336221670510063279883774651163185195120417021957403290532494840972277815318715160566619577370149501666878741411328848574941824829477474059419596403118752393434931048153688894690306483965282987944465183136422626378962322582471889073510227217217664540788511013656115013480452143754118057549503875222060314386673173718602235824857500017564803965823101943351100822900669609538992267911434762758724024148807732208522160664018640325805972381705959833847679428996191573744884516996188853047598601749740709407707076339797761997844434129636575842319579219270263561430106442979233420301434112031358156991115603685811676848095923194024656423011550235992158709530320461649367641671581316977290028426904070274743783329423778293738461591450317153065861143584367447046218986001425979759177146674706433517747502024397865705569850705535440242713396872804426507308829492149096303855208893940736743624939939752748547188704682862582975841326117099680308489241873551527877416239994716374379774746640907815947178842923165976899599647886939252992777385817243867254445200870299262924868101634322173331792706487098371072598984383740905558875391923936653164350837420124092292282721490912300080916804827915824389160218082893047688590933700985723591062116091921454368610599970969487212662781271073072440775847115321803041229610212175697922694794010444195853712800836095220963616607228159592485458864243640264484527581309180710619423494008800055444303137983982095513762830033277450477291253639522424451723827000470689275552100276029028177975894655716750818676684164239929934133985090709635964262520314879041689658787228784062189846980478299845252672287545952688901943494740491505435910365713618586088184057767211966210803283340696352262443321416156862828501871779445086699670526819538744946443479890681552192529501512585428582081728402207612578887207861265273933667245347228267812491468316779280988974049538683199516280725004395490523425907466537795409590074657679254812894408869902113660041590709701600674056419868456933045628245585945588878742053164179351693520484034781874568919069522313352920375646390317002619672920950812485852890353818831378898417091054403537062167675903568433528401471725912593405879557250910768673051277513864429029506448169109629871733205531197256627858635898015342182848818487381841717766732347328335300501281911621086810348270014568255585777420480536831007475710765155219981353249016777235043620322496020361024661094694226200120804645164128161134978148321772556093704052520888954251794383907297847619694805241786156501679649567257461538852916136527183437513059404946258195385763934392994016225972360782133535094217297574842618391172898592617622001395709087930269267149671409013362145612968903049395837396648557600286752704592909984017084096244200600542787789808004325010728091772059599103395023020196249328250585870171959215512312949902640807213853605612264204813529837530768971278938663327714775494402783872253864582352816566158653006642793794961254571488599279577668245196840858003998562549335600685147848804980033468346726437597371391540223987562743778471910651181739958798004244264195839482856701790061903617088095713343586278706522290188812642178145180371181511446004062066432226960815444749740780096047256858694790520443843593163575960607109670017349627562612495274938093393669500744747179784165163473649001668889266362650778553845566256769431901597614809379360327472084619050523001230742951030447891967919687506503457922278548282145662771652791633846111803488424748973193547489973599617778263081691879394150197437670992565562807623525638423558748173068692884771270723267238393419253782177015468294886584676325759718521240785383199143165978242777774900661403256095266468799628493208680018493831467876999089394388805724724698671283266785912443965019960898239232056240418184108987511788796533910223343765728775034431316993242838148423649407151419932205912928432504868828922110196061162203663613171888632305406780707015519592345853474232378846681063708438533817820170840544524880334927585160945849806525985573747841456278011049663726442846445096373793051295224732008904850520583436729063434002699596095654148759339166571282714573464259964881103132053818617758078491866488490809763923651287018081470374209945530630773997394914552182574093090712059869541747572314190513342338027549633299328790956890975031297157008275301086412970726422655786229899585449251141613015810663990279845550818208132373169005007665760256842673811736014710256478850744296191329628649508739434905098353219658743764376548648712033488890212649700784110994516123737361398526625818378143468518010955409734550543881390595586327313963240341248597951816232959451723117556379781546339498157362004721964532757166301620775908056197108077554659694609205965562725088755577819967765508805658868978748775557928282327194170822506060465990079854178102953855718067668798150216584395568311616492388813587004501066834071675123902449949317624564344398113007055358982554324130411019642923186543805784179752147271880558350911922691925463574338587544999941662776296676357826858475025160696217713014826889372627517934539092901127242393653132893199837875310763184012796714975522583527237364624070105108308619099072557243745301156488387645439189230780671865842299087252987931496750793663374346766548075430640053371210314273592728667663705087225599832445322341843420804671003485562519039668250783416564672076038748001165592159113285826061903209436231699048036583937874670488216962513276927639499143745724012857796504568938939143270789025752572805280724109642734923978837619039962930367747512423415161897919260863245255014063716087573497105809560310707345248845783792509402454084005416053447735605859137826607347245784844845590928560838340500624587034011615260859525669128398218337484748725294965638813347498720988740594014355087539913837471983001710676376392573052105607141033152093254357492458716342443047388633813093040754488743346689654189438826485613400325826604583356103513185878372610652827938244478830843299140051136223955799276413507538662370579382540103575879312623942218605599583171004060444396014800472920667164752181786244233775647745688878103932484963851104346168042121508467579887373793155943501984159966801280821561994341153392497377057708431132082476281187566995481511282808573432083166047743339769137151171063080273833544572427669739609071641713386267093284442562453636119010996047200360803365567008901103298411048466369491428186799608931057247560238096115364428790055932846768481828557243970925365238013280966896615726019812464323714999963945791172236942855079763711856569581172429849630306272434810765420466372003331187041176365520118410837620314326878157852432251293463128944756576655570675882532634122983703367881876857546739757232950711746244923380826742478632789550507241625473482747140405912689385745128069420031192411321272241849971825458767162555485340119507153387582489953686929882526810551537325493527697253789069084558754572365884219761954535658497192278268302106300213348705135200856057866566443365059878089468992064482865429997191504999684832564051016815240211180760469461795640720138878793102446321857149826919245498818392324950460917176321945462079331002004283514980438074218549077240803854020868964809351098507878156903826073625030440492535661135403813697805960646219699241533458903284665482448912712196954977612364422383027728603081878891984793015647587099170086785285295981119425088133557034020103133279337058592211611456138228164650305239502532689984530729674992497413473982227812042792054843729498740047027568591898510513646284311416220391785107819798409167777391952350094588768439521305540766273913522066230496626275891529129933807370006199262056619164809682530201589167048674422924094482501253723287732440729618473145488790926574453016382721312801429384441379697491825418500937428097331918489915620987798222858078838815647688114244228752911953253828060330204704355259679907154617036587915599779879510605844181831370565061107119707678955224595981472004918867740864052383539954050658920129140516093607137185537224167676292822793817446616992820009660450315126814495210703107558765666286272596701955764162675460553418740066640933116820715373275069197285515211974332579501374628534730470401396636621220947450003174611548734156171422333690769528374622832174681120883811300002477812378159537272357071695770029602220945580701256985468701009762704260700012623007362839499108868390169545486407958716842476380251955724282438936481010349354505101029319611817743274584064938141356755454339112811908449215326432174369231308730507320210107367215090368973974895212558612196656548989400466439366251321936142543613088538265672888122075681343231925832466788036376626946783494969107978931578853314898798958087981928071054537408577539550209406731992754652813805628383525436366255020205720589920962431174219406804081232234023161873056287278499514725630429119096124779056521595698901193567044520912797116363136703519099108626330758176897480832377004618340765272626074297641765666029816171664383225488255737011658070654294168161227258427439123632826985199667942156537944025335612180936272974511652008989677142341608829834133245447812738936484634204706781179416958483697019853673104938906283646688304162510798051404968440810237319229818451187056504729342959561351708973672653804607903549097762390464251626153362038982372995453065059599271650600559616578628639698573181407373274500546603082871614967798194352483458279490658429961587933978631580733725494060768698075752076939621709340636943260150875926145891654475856735625603661617137414941706967922084625869640019762472150686472337064816927542621717829459991116084623454389527381679189241517140500595611174547198072015300442190145111237821573428550403319442073754415287482686634171460230185077830880124600623863418272805185851552396832609125123580355397301030894338081115156681710632347295267993695849097454629468776434703696250387210999970823206463343539072007864763030178589233467747566602139295453189944129951383061165501979248762235963930023635038767651096899294810697471852721592770145751047139483849602226167209515097249576586883696838009647777508554888122113145745340987752730824653773039480925446040943680408521453875912810503698780744932441104037200543713551142765324827431039756783206392522140331325924154765638987140950465433445784410924410313882749163190100470349369940715077720464127364792620460346532399330023733977745366553084672791983087760441431920608668426193995558725147117676990795868331519749869174792749151155049618975420554655194997596056161335659506480361987828377466886653224372578538340843605158522755831153828533619708201142177651839679401997092605902766269756849316698411363197048317019747829412701103033176569844402232233574808371718083472988918658669693301460576995444473125537381622892279604835176358523856566394779631577562337769111579503125416613612852709172151336285402193410838636134398727601159539320236544319903698650730351628922470219488510256087886224409868732473413655021353681954282300218858731301736792067161540465500518264079369169344403851515814782901478229524756025684846345479347851609736244192099044021973917743449500860297162282789697946286350104635655172476183648184137155358086292773623972765846670256109029791499170158105892988278112760340050600598379586035564833597611540330092104517169916232086311866831506240434605502050468943082998446009332436064111655483469654775582519691556224343012111172420649934539466972798649474598017520035519094784752678278055270799641850273877854162249056382161205127381933830522513121672697658333449861644111312709710405572260325687681540238178187170947992847828793622801597865946750457300640413696291745353402161407763735463036329344853661254778466948919062458007589834064666386588432795363061075368822457949258872059427233964182615100044065123455987977974977743373228070164218649258386224940700107327173878855342716159427420546785184324245447719952039900572932860371602080806908118298273514560051749190919827733133761721777266136428238931203360161473638045260606631400196513955164582227316750709599492170093452593902680521632985683029419212621304006437226021963294298242380788574786367060734031030340355924927645239930507871562473567743983843900673316708741480562189784328078393000364334138467122925093240882297575727435828448134075071787367377847310567642849274046035015493464654253462560478388909039819239963812294269645583911343246355858739812169123729249071547588531782022746729235703472759129698705520621038051207405323044733201941755721873727623511477937722144989987607221365860061550990587871503863995115838723853224498761128684114850007324869255149862470572995386023599507060684058044729054883174258944361675114472361380652084570885970723204499383294698848115408897226544002305114979791094590109007282118315198574925850230423385958885836244914401271935295474198991624570206841744695468828410725626793181218312822140458079011953181908939938198178339561784618403137971546158274039432107507595813164918290694532082278751560822044391336438396251864382792345897640253584526374849421626347016690325170097030127620388752956622357322694554485389252941346290641700926411370092449590857643084313055829822749314631017639912080608201841284130167737961940512437247503302343163944219083409033920263580124616522260077702757715258767071770680054404450160149968897204007150960389068059408611424348678468371144932902845962771780385055500076626628329452156375169416037358198644919958393873870181040845636948690273574882147950254212244935848405491939934306155463639943093817256552344116452713141439546345747334060731506790484374393144272893327438033458915289644797222508283098445504577973305998093075584224875297748102997163080575408644960262622186557381161451268928766727595612996306820101257527496387746590166811018428235086976979760267952055522892069064380079334329990375174582038048171332635948977955843722341583393131580745525356426036087289638326481058087162984530663441416240156415207590415844083543573975762238437542055177998180100738077457439514641915784402884723667481774917112924975137580088255853234590265784988806526545231732969533982067522334515185633204196531828255245951078990622956965452776519289445127098850494042837470881396460903216044186803083319121793540859101866778466779581676067193098408515896368338671224930234675798930191676893183142736107945153588323092649511825968327404258383080763547218155454105505934656387011226508815252440946784349271474042033184919034069148132923025604356984386971930761827102844019359334617036733485981383140792304758499620204312949666110718396591039108704151158708807947333261338417811020054697840123709303622465029765969833081588375196636694133987617858756243494371893887760172513812745854980970140156362555133919993061669460869049834973580177994402829132503893422481646976151796030173384832368195523634871218697686273210926840441508384134761295495728045751979933409665967256721099846781488063724703089010027995700070838544555304070049437046142726878071571652085367593890370490798433140751131586964849229443503732072125730412981219060065643753448924723783889918381881428568443516702583407049468160412223405099073943850247128093966996938312124585865729145741877544672137054399277721386250904860145905330585388611296883664201326186549647274869978340877599103100239822931244514511085794796095603206891598568793014435800867147474089203999669904555405527361366587509971774094720075162801026145634820167981479118503129095158402865214906933069258404920538873600272218760561322109823244387588517888787240226539453921628955556985769388701519024791846444006422107359331787621022994025021947292803060683783831401215609668687076988462395844683889144344738968252857869343442329567925587226516226364211836473826266459464845977115158912494571936967111371593217693284543576476686992743491980626136000861589570016796282072002495334361920649606580423942904701756282956938002793601712847061009329157701423800418613953730935082409840516999220875383984323935079414005389685117407337219814308681507992762634440241203345829688706690840172068186082831134754007809000769263996048089266916471712064396074155774841884110071078579806807222275304898158587405747840371152933357690411697617632505579092617518727488395905074519650286704311821685804323471766891513143861894785643972049750454186563396781995181167237511496610342081799560908001739974128270042321480033708333201764727292623781947484143339359223912030408146342536558942206875821950263021582868400188954916112744402484245645833956974736835981296020308190346125204819727813918390832807699428354615904014328417340818267557507734468374839925263583336931224892032083871896441018245684706737484854744558713515446524194779891665341143165781846171976266179057257263940924270592614249813185641878544540709613596966280736339192153460634127115634691677137026932694796600274799524543661888289121417184755372356861214224431986022662295240856625299027195273054738388713386055331244168341560020499547156061604666715321247974715042092134558176816839483562564346079623045188924672223642751426111667939374291698314145648599312549829226231355908595416448618569011322580198863438652014233279808940924788414747501396766122038491541229423208115292461674239356767115779008328630812967741073781792520147152334060791099255092637663810054652933975132540428657164231156709089536526885190335190791233848387503457120945964921460621528186305326933286608732315367876100447703104307902822157323389335545764120681123712327386948488794202168674690629447593299473046171268222872685869640137745567621238776679802072919649136598827341228168711910723074098666844749934445336336648648901564201226121925100257690186379914898335588481688663126080356179735051777618423226766300535400695889158103587024450217196349226086536987552067375577180841631880997271355518143423065214108972286945584800535831727863951653148990314207418839013359962099559403626389006282352739528526223662050749595348254014197993861110866800121218995066224470373960452590529889863606269545877334893203553045840255941927199332822124159336394306589085900551807653062306865774112260545045471024265159574959028497163209959407306634459635878874323083398897420315225007556406736414849871011743092197418074509721612211418022795446577046464976760679772209884788034106968412962673316403972817597888860151399873739062983574915765670855274932257907766178673021876932945968273824579560262166874020588530852307427846762864050249753331259864842729631790257512229259674757185983899884079964211575950125023547551551421807074540162146764419263540646190365248239741199490778035615090430820880247065181030289655385265163515795622806352621434123503888564195869280707866053388248673724140368868895889419461881922563239731338332368636779974368337667232815742564467475079408264702468379085519030001859586213422144774668142184357491204279828994828343574102684961541620875362053226876169256008810196308992085159788440645956875451697179729532262279875575132908722481633210277867898484524321354450841502223195438820447238393591711288283632413575918535291725020671135077752023494653601616553019633108416987558523989483850969989313374229255966375873825666169069192242094265566348375845260711719480507235151309427629361694303366086200673289958078426136372587169541633380302106749372412060521439268730995714991971774575820321268149544244356661612909278646957652802734554574158332894423204751612779043159179971060273195867859133368225853653098705272242679304137087327050883803543055179715916427673589910093900710566398692203596457526766498294217755942818696336386055506112611978309545800420152937574450597878227713236712106222911398362493781358668306935501903544312687905927940693430852656262000685167017946178294778270186387461913478332661669383134332184337455416271687024509791706635748598746728873401151559272218031465009844665512416556849604740180057093909187326748400456186237836535176335591779217392628906567236542753414867334620514414525439540741260112630308135952524156135980402098962405766725700958705360766952864878695938357867925835328689201824006643167546450120534485027812942426512575642118927899352250468699930681674942211820478114299818403508741219146358120185490781786423519650991802028274535353790099421297276761377466962922615219433815860390664651005710598241033990056689177559323820597527121123908305246569212127366443996826378822375670836692265035493005752034307423745375721693810403770669587697218667639211468606933307602397541176291534784837730491878397360727513372947824906943461294430347077280327925140584382943657490997155463948978100510397369407221510365580329663398103393935117428241787152706767694257668349793004535460398508280148884378589915144106447506458204521550954610784504009919460842884635546004456765341780368283570559603219649056015888250224021578482607318205547773637892993983488700754331355089496971019723126960505496716065095480827709879293431975656175261335698431201084273001108768186728589877413020467985949797719128021072993513354185804902095537375971151651690599565064359467927963011207098662539762128741096748455768112583444547438936191468171854058044478071423846531308067904543839874835607707012362453926733648176770603599726517620459791014723112416976126025070525124839618131291405024450988536088397438893373403037417539009352529255945395611935063655137200080337163493754403892506465853379572198213491446000213884656394609824317016780084743425173866681063875035574923019605348288156908411933041042050154357726305833254036939760756454491856861810788394473951715101917882676094133601895570413106112526588203031334469209180802202998707873572062829864908097903582917345718666550799449243741941573918377506661616864295683196213386398354383465158828005030653350821136985213259565935581626267481940662322787801655450514091540703878982500750912951786499429419051119243235379121599945925503903678824889317221543811088508832420296139723118375464756594806872922311718805025115034999302110554579202904137143303368911909923641528853231994653914366927079535907434938771341807553073160092950164463132059023174543517878752750496473987063107330208485828436276120601880084404133396227395337140341458160814457881576569218053547703895178848906776781798382165404180409451305997790174526126466381842610098507160806917891842327370417407186221268771761041792595837055433050953912136231713507019327675003701071469823987069150474845113888923890700238612832548817671706800243020379577412482321971256819699017236612543565431741960576688638625797640654528784283267874177258454674462131285479577921587176861758775972300269724393153955006500179939234210507255972497945207000044360704733249134796807579714476998208730158238175483891834640373337039850003643244892558596950371521546784465225044166261256311680340115503810823348197829970224748676726232796321385349434483028420212818889232675762609659922708134288720521170851969579088641575393958105038447226755704086090548267616709988590679628838488878580572773947788488894814872201262320582423559760420494641532469832347696006231811220061295539820377889274179058659361806174224183213665622057956886985103375448013630328719625927591789920342992052474911355349970098978001631748824868768163058831262980639463966306246726701431522877188057107663206704946507871762650681960754623833536208152764802763101779758410864523412286425738895829971372863952329219750887285888053474978380644707907947363604407810192332920679401649138268052150085077662558064685166489357411130080908940204396529149983526036482262308260311561552819692710047044416800462449336928442202233302908354530025189700192751784828865603525335811249903213795578308902389154803613199393960828856686363080664765273038379043593947745999622950831038945702635858100008263821290985057521783352607967820540948930181892459055145422056456642117376172158606225530985772995385873742830369769122991735556244858951703400748598297921955979628315323496540803462609073802350186320139356187681871441596736188181951748658532576299382307546869495201643912410523766171234628910243419168458282339620794342576253192254429277980212725263735412381533532552286585802450974835638324815496906664262721374908637508238230810678717389829304568169560042654673665039984189100089033160459065189880048974187303855059127034826261877813803142799051577108396307628613625713109626800593629901361653392034117240819461242486311100913732551509271045281200008284440463161024687396864934026821474038554372976513615817994061628398128958195671490294785465314949206954362749732373071854964140143841508933198609604402318578291066551420240497809821509195562604646037050366182270455833092694096128823215974410871556911709882201071944368871263828403653480825821142371341261278280784567898264462190598599992181160758263439585010830602219971076325417757780977013675653931514023991199600471711794006336597329164859221747056970417913729996010471932047142336046693019808301970602272302203907812050440826335658827872304263486880481987122541066141547641410129082052098705487251182201519044192240184790497321160411632508701920197277048907834073964506894170852051447954738002822931796643763149012409853560187414574641761703828532914831352290768850474407447434779487868503286104547294012525594705103717009747903758428574491240401011804832635567423970781144009128708391336224447177943662936826446811768255368971397335566032710148534602223981084005685221530171212761702035080384310859012740526878360545836766238779695950544479698529832812448030130324410461461957247036781886010918288853115279557997949019717249636728036754650913950511854275740644564466635207360257389703828330712376045273162851543494481635555709277762426044870670339064582994485480439520596667660933295505398372464690418538778268946940469332368452233880551713141287556185160481461762108977907158607082157795088768073583530261503021370443515250813606668124493084607093550748280763826167537756633362985742675498104325920353161117177268494760590936432106675707982949180237558719133624882785762609991665680638142558127781080345235542136040934243937340490328328261014839263453835556881625837212146324360297445791645201570947534192781449275356788848111120015283145444686075664651620775101172201958149603962174572887121115620365621119521904010044543815386775537839188467139560310055366432587503926166152731852921923741881661213326496815036262399587123155295546244239016188121472275797980346808326405074801596299574621266727965851622407409501104540794324851336784773053526642698332546869750586220158063305437714535745245067170196678840819375220680435503347780426331201708587673895240278659716149152182904410647434385609212438584484650201001734254683887803362526628504738039154626397520799710299380027787553782477279978572123062273932113884107107247012870337528913787031726947665264652016267569917211904852156642483124691773372455670952933893901869695427353731238093681394850256882670312391808445603886351806122637567888660584850952973238945485113075337183364600264498868697504198080127527197984820139967742243689893352043138791832039657435509218155208164367309913420621673786501922822539898498691852710064182806460641721669614901008789985244572286721924034533092582428483212994994061853910701043539655196092943645553076720359223363188158866261404940795231182710067599558117521395287901560303045721192884519514459601250506840236037094750126535057492629072469201113547344892521916124857937123338144826874393362998000960288120058797917660907664177920572174063689094076661796723058541893136889696701071409808406921002645842461892413681676837908324586377354465652748579404513752021714964301732420396523196392246218414825418273353324373809496457592706186543370937016984121773620383801805691970513382826065646536258386479714478494472851799155790074302550866898082981489179045666797488264983868953491667763210950865687972029223764209985102307923531140205561831877544866068651146809906107600786633607860561323608190262802770785164455658459865863318683098142772660762871997067849777078198616222059723715129973085033513358440289125982030035083296164056233073182966386326333814933448683648841671018416841754736259066600750906693361931801159623364746318381985261852365776127277225654201023687698253989982339388047917994102101737030101355892762965065846330223308317104233718640504515209356378337045848901794471087729882898446161492820283817943069991303354970942775519255644078178043099572616949007476256224713474293691913918606559014028997946456893803265752728955925601279466969842285555992500687888957198462369390625649122988994409499057056400329849918527723137301761544207519553293930386092728102020306081412904336029021457829038523322937544267279514808392196248233692032995866715773356237806778391573770453612720572784054438690628105922058702808750326109795991979772883693778223304846125548678114848483455093026617161836874950037872393554576064500365528100677497569017638862109727310808568547133321878183623302761058412504668985426346196827303098520549971792900967570111288051707534599745389796578596957781731832244793700443332357923493589422776672321020364348157307474901808340919262140186447090186312714862251096111108487471827998513859995043899726848038243347831445414292613166066626018053275342175593150458233603927761370048201837853575781888962372580017880726423273067992503526006059327542470160163088627526158521073183342806446637686517194881466356709313651587567752957013074514290661250659844214821952150267039024302880232616161781364890362376737208057413737452163180765009654692344269649529776176971683397233758100944841075519743471590160762791450653484116275409860695049483756525296027555124448070840356858178335770270630918376372448090218892578604018583820359267859105170791180458179645879058192160901179078067330588442985853736251647931011697010191785098419649563296764138642010655507040326157298333943865429111795811466248147465908474397462358193329707349452137778085747308535103749001436146840522466974590596743088693243487048369132505121852747485021472144996806534222291806312357103774900010356003467907916387743574193544698527183469459001068155778794613751405410939631939718913104683758773624974213784100775143884456479171691139702948162519677678241857254831990667218984999624462823228636455625394141687524432311506741248812329659434094010425098873014839085001716059704534749553045367495866343944821557615820575029942915553700049474619011037770005485734560155678204333185237082179328175930106257355491881438937820010103271734840818235975595924940258019474113986162727075273639563500000842745587411699449457849908337947900521742349769734516911697960131243294869582419231528984549673431772914770560245029955579079201501123733477476867830849121736965843187454151420280848253383715073530361009667382158523611078125193498506488179605995565427504961658521671025239994510244122158400907516691395382862022539032727480916225411260662061268024138071472472725751098533280317303726809402794785953332956092192943595578867515383877085140441617829371949397062248129011361693455692450415844241127537211719716493148231650282618351290470721147920527886510553546220401846383234752048890975835341644560553057303233682731780384233742383647469923088496564237025568477417500712572392900380667049381996442536334391662258306897747168386194695334029245356208069475906007625279289082795217097992738749998445170137284101108184562238118939958687952143921223175526298421416964908261085649304541675179565554947133474299266224723516448328066903308711809371365830029558367609245383125245030754322543876940494857272579837931946381659904786999468322839229655606409613845044045892438368945788665028604157856865783299644386845612592327488516031943098580720825738721636633736975755511714467921941498785013017796216202918753044723688740542443297573489439261985731357957421896032077935927253610773397955666867954981499757402539182697572630420276223975997657825532199912207596857833881344806878486032186768561406413029377605415362328317918005872305432872928692950501402530530927759020752236126848775883531366647215550490111953096540459402797177658944702843278949985316032344885235401724904627069162667055162474930091303186444122606336137878711272492849371158321519289378712998547911442266376675525373231725048925811066407433169283732462080449571372625570914391115221529934537185796016433140330337376715277333189100974044180460545242374381021927726442629643458190143215188993097961119723770052788039806173660686383688963122055259159994489206145039878172217403312325194088508757416384750064081518624161146443798051344833694064118936309361591358146907107847754181247707531264917485586314922683064635261985953219015356808472838299626096248807874220678470711764989595065249105990476429739071379613224955412773593994656502673546330061464030179780581720460812843574187878742173777076250783653283975221818178954933658288252344559495374871471656491065300254567680498350379784857392809274411262843218435533882837560373482234871721136969694069685097510488820963578389696835147415608125823446137295702592710174719187912593623133409382671703377706577138497812559524614680040621857349373387076740068919037929259998903093872856482772429611437400597918849242625172164719038397403819979078077698918712411285316322242729022591438136660236339222112765730115572970478430138771208748299681404404430592546926632808775634966807035378058874974040994146735407380206074827188947070741613866023812230993812535291938987959406034597870028481365337720416674545733495694188146393740680102241752761288016018706543201290601912968046109929791915672949735941292688162556572161528634722445746992540197797455158529024800714878397315937501175597305194468917557058777410480242006951290356039276211878694379282370680330361022850878490536356280326189485888214698679108279808093140253128666938083191372009231373581322127613100612157799186862967078375349582743238831372351807315280909766730661036245751478169780643472094785538106425466057877606621594015579911860191509322863867948373662811434667216259289421610886628367002319207682375070863145901463814398461669165974269338347106546564863852140022805431385419919039500931582731207266734807534428196913157419340977072898895025577291074714557039768026298377750223406032930270237368923908861768270299774652522036184779429271010776792346494188938697913154323748137974380554400211131466412000257084435976183293556602254224808560652516677094343203214089764274392284787521146185712232226133006201444861256141487195759692682080943054023943134298313277153905610641906976266165023398144418620337293584320567574399493034928119881308851104837886676802869294548255981457052418867796618306512569524240986473382116048091970656058149918385428659992255292502222347982590106425134368188931940751726033400039811919157929489940312238561800001011095871347514274687050575486237536040702224771378522252749936682746988797184661180693174577160295278542144802331339793074048651792031733238414799745732481365101682421709000415796780591658577110220717053180234156099249560158577356060058846549363005581117640857042962265868915925434871828093345674189571196490515686051602454562279796029519848756527923747299371431593124216154335942479823207704155871678323574216950119322217088586186665492216782331437373333853410220452646595024425617576039514869294314749394563917495379662009852954571310292514668740364839673651067461165417693404373354751488348161408923690449949802505257715373554078239194031759205321237631280206669269268165714805982118803300064437805662713391215150545362922399195912203830023584403125554304991436653796636893689877932390158740401525308464622591415267594487107770156147011437450473716955745522988413197861727277717512410004330484522156923819994787525607968041434945211541583692958420310448327266492559497505627062498151343832520752578191837560353776179259974915728625869349510452955337222715695782676271582185744247950554228806211507371582162785805362678616389366543521789440993031760894817761467706949603860731173205737263564496339195766827610731337867087438292751782959075491142718111206342628634437523183092462782396015113713969222802965853574077173842036741523148198496848103857283370769247978707155988865422064268775370021414822114698698436710995220290114985271146788174753939332573653551762388625613472106676860656996636727604370725082230932011267715680801936649113803372534399452998930257925415689679180894847682557134418194205101521224363021015509024920485680091307928548376106742342875965196783560351374037034363778046235874963688095910821329875828605171706459687476602674841912922677207528144809274408739604207271268877993357857955411238006488176246612645135022351644605313221227815576342097875754118020757749146333165504860034256138864040279271942070053204205668853892046767811137515074601664914033971031238091604586751198146476864563902542440658149680257355468934739397912958468081962512231788527308758460085249846074710455139000878339545471826369393225515939451846320358620592811976274735260927233216786742188259852901858089230360571320594825495494987070098202252528133003464766250524775064690775442003836483084021733443803795785556537011863484950182136698515716129793529533014547229095428341927400406873447841802313984390722537190960168490904969296314958383872636458080143189293681841746183836970396707076587938176027007415009958599342279650121174257738309050380733697127218864154746810549659202770409456872279764974757695535704748563362177842341271399940895588609544855482358209626810254855599096012163186048006829218425790062102145983982284175407357997663502485730942650361677128125638926127609043229495770990996017508427552158518598850475335844772424085246268112911050115232893398797719706485125019143222627179739618331159451161594192309849214433528529441752071991918100021645898018026588959390002980797308009783586711616843217801645079311356956248667808340374947343803492421450753211413609373882301763340976524231953587921967342884262770865594420067290573289586825309564815191159631769009891931182967075970796756582229336635418179510425673973427789413477591417304624294391656616124184721444710676998890299501796502450202688486369724651673614725825719638098689458244669272935129856191121062923772732679913734461011228071553846027096277389744552956197138368376203651816862573657027968678342875589193166957615105733639645666135252874397488840281036116960426079616442293230030717147037642109628093774992574115495643392119429863445843107247314297368674961923752362109004102910478154479193733299764592380734907440714893454166148009405942392277808895642596229592776491336685091960215578754784206740545403901618277125048294187085500057207746670452066647835384041518025424651635769876075257880633708235833861125363027125611314402475144886780499254034249349956990064742786247695743639081951843112135457507672951671621763412468903735310402624356411710272729048018065418318570207607846737497738961295541662649966968492587276142513747582095247471129125911849881016979876575662535201734075679498922194893939718135458399927665355587457858535656295911934490717208292442358297754621196979897713548504815937740195145854374526265269528524952142023107162858623444906995493715610558185026110947191360725802980174435735888125039032063453176180201555831289647059260349173045461740605640963187232756724050053161999303965484263695799448533079813168372908995245332908586223415891659263865709437727597131870164146288211044179124341108953896095496756244547921965554410567622026490445895757141938147783850680562038406527860649006696498239763197915880856803078252025964881310769576842718085002137292840599114115780447690657989645777797075849908227127125537354780337804995048162444918901879275159292731267199038799588440014488511274366349165606952159286385771863953817361753787366536354476672726097779991267791436844824134394351111306233932466990014007550817791813664434041239759452578889192552559963301394328627090487586763573229203768981178994317982529574002823382227036618204138472048124277642396934710704079674570375565482203490467993605833629733916711727532435879895564117773185835443215895529997218160692032262324697104545743239435360352960672346834337350069513344261193025801404139104254487132199495594267412180967899603308331533172224639665971986380828324675619350626371794745426296133747144783894345022876897922631065663178770292182593100679969126099738941801354899993937579872551746197441752210227926348223218952513057343209088094350701177126226081335601317662402803438502503036568389177652863095232990814238297213631840157995292025679620276631345311411677335802227175057247395351662670574375847820400473356114106346514474870268412858007981310152120133728989950984525402684412882857746473638492070803016537489709771472434173956070762384943896488013097134026739938842648738838596190986498454360761611479176417110733595663145850474548277600878489993232074349978176233990596474173349084242498077240206074973664134371291969099789348633814430694084828209127199115386813278081196036661790796968983251567396509476493250265438571830077364781913322909809484828235422896323103615042347249279671285335143731485159904480346440708115178822100968698747008785913387732849486405860244118463030097534258013202852147661163013097526393458740233486418624001011499137654552564381091514772888906877442046069091371925949072739256368139014910433753527653559087820241855917446805736206786540946477884306956889110825107441700879289718296819671313481525558458489814434232560279969448315140659452161340815428315850262183371185173306689651451764600354669047629181745855172312220666275504785647259093392413038014213013591089955511921277060133277261774135140275439307496774321233945198029153261048593348138783622144861244675090907575735161975309290440825414542940232579626469284049530730543889902718391677763287799943429847730141870086130290725706928276210661583742482027361542300940561302177240693961540024527679167951098373079632774561976236650618429633396377212804730399120675132526913109388549435184551752155964993694773397223621602569056486699113377890164155473380710444300874443846618768354398049194224481916420644567059626584733886183105314348273138369189590095471904164531019454368256022436147083171983003600477741804966257721998210265963246937357494216530445178370323544851097073058504815074848116501054837075499098756523196176351503280801674894567678538095342142171021346092972344337402330797957761715415566437055153336058606954637103717167193880012766606721865247124823594382479123502340556139400836025706689448307302596017573791144974643367750542385059565825553503466739589229983963548986867262583362942221866914198874973512829213870596715599809500607401570348399688717187293419114935882814331602698934919671104040590098619874749652087697092879531223149527321261095920140291740130184089052779276951320176240827400250572006318408680755556250698176966956756133319041636296265824543212194417355869596822265841038802911732394401681260688474607679299702043432269192653482244005769625394497726376177092969489775954328107864932360052400104761861619502536031421741321389742053022851524886064960160560970228988651488043544437663026824248515321527915944214398042465635674637465733650231917138426109102779179161545512311809916915327185519413909059553398388385075198778891480560827577000666271709096612900814430010570018281513429623478503982344714214701682905728565875367704611091095352893725679011240218721172571951560495866615598984551852706334964288645340938286064925145282128088137051731455823024779179897931175200626962367454329126973232123901999688156512885068907291153108226070259959695405592038156301068682808171045218501022992225243031223949088531319014029116571802484938513514986321731957221768396263387466232987335203679808048717055866909923482178272586719822494107819139210908672039173929228297057151644593486976267837075015937857715873901256811658521008944789061309102033782697837306512162197471273734958824406123130113391067548391217861290991775703286323334024070119029696184760482069136907654742264627486362568709728796439366106983780507497472639039396041960666620732190778656724956336958316761745137230011897885825168725793939867000960800292232513018836981194532642856106122554753011410348523546070169110719677868359710696212661947827883053510206219916239168910603228916263745596886298919184788069119668223236817666423277917687258362571710381714381213032079563314877044352849204996817975565950622858814697301962918272832575082871773770282932324853004240478216610675497611015567692367366391691236372564103105421172769914530476001286958882923856716329139568307782953897943005015538144460300918432901266928688115901662925701565068147618911205970250933186377726153375218714047758740888373035936318269656647007152700336139693600326202100445540639826251932905672972084557769837820697817533358301648510016654808928855992389327913956404841968765589627102340614834113547038904848591954272761734059148657403123380205118147063741073523206587857643116415223713369522027836951792192450995192666140806791047663089244529092006234368641235609818540210096983153274986683313570334949780200669709037643182552027699349973442995376522177054470384777318669808314787452316373810580819423848717339176760964292979124458442582875196461729076150307870104509425285449150067319568858588015311746686090301481821466819139374663505978468002492023807158880948426040629585485459801020688159632629401023854296640497166252608822735433204784210755162709580184118908196071432318285790371308649668670198008466853076712168391831002881302952722340404428001453377598334554374595834329733718557545618964729951272525922027527514609683982230238611618059273514526994781642153483859477691657280474400618302642375695330777994233473306469883827156070053198705695748411083498501676611002944630071352934469677769623059162174275068594670645349904734211442897809112212603392705632421323569596218273331119884711696429054953104338340960226009341137943802827134314609903386446198313312713233483856236611324692372207547182041639765371930340037449706680214043614603484747185053082084901083770552953874385148841377995050565096355134452711953779644181768651751612358326498816477170226100776402302668681440487767633084371639286416404949270143114181787574147474208707557591053755897802791894893656088328811235902360051844930720608373687625916616885501034184152436592509276780627773824356956360456883937894290603156316891043007977241814051980472401104511586217053905041879072627001237588308174891161164520660108160188656555626858639776619777966740374155948760137267207571297331639490188852693787612603796872053698451871102578309645691758153779570187281801622177675439050284442338424174757490154242338276568972891855631356247893855972408322197392308968162598855331172935291214976971454626163418728466594706339457800694091054114375345197630883613695180281032569417012405815259371229499521482553124273049539849719678930038456571801834095732355273789181906226742407973860425135820206963374418931771015964094808426681725126098444158620668309375661040517201246571006412956587446436280884046643257377180428093597264290825989081609512224577541504064319596882725775280577695713286567207658579199891356318954466436784476345342896499446105476797446957913138070435962247460614989134575300904856146438687813065182129879139256687703242354086275072679930114833376164107689571433795292878257449097719028746790572901263395173618400114583696098539878163999440793177482136057909075932688153140771343063604512464926098484803749309864921098956274373623492005778682771918464190622917308282062091039863341684118791713595955646897137076554231665691408808615507561971875920946589550085107971006329735035725801495637459483913308080717251571892114188845116421937086593816033732699375280916220801539375162761703243140818728281130050873232116971272875047102767687151734895166974034406153160570383660686360087017553348384735081766495268817545195927292873427349543010904652694823673705849546482153923457166776024963844357234730257960816350075109503056710299159624304978200586760991227769004307515370654239459688095231312656223676526770925547014003407414697928546647587928767408550307381788032978621806865851962072743450326876163323005409821299232860990259487724308053986616176275797655696578307216294305067952365553835294353927489702211704757720414300854048525498566777266737576547305922421032362308557264784676924626842718329568980770965017223558678574447825274972489153503044959091405493055792060541377751210189653662262193143354180911574884839546634375056934960532158590482629616193757799274422356794228050593589164111093700317850039550381606553065057680536525641675545823774557419978846064366612567384237634012311646013042442304209584919713059971347225388264561566632463817762769541737887296018513220022035096902749256153240756186425383499066808115174865516407952305907831916848141722646432376611633472067552638496175401843162994633566417400135991820053048493826703024204681046106027112695511408410991083710274071232623692557621341659300004930116678766362894940907879241875807273394781050875690857795990563772272731600906289008215022564430020383248418663810849047681747960876861770150685955816341959355210836413420344923329365987976622459084993411960499955012586679492280365856138236962982709629895543311201123299763037855939551168755569242810253058452772437601357470433886373064084112329951014190373362446676516330932280506720575369321210878319999043551485831615720726079747177027618747100649662409050436333093517626425852141419264609145803886084887440167651418082480824119606749537310983508707985638756316302672854776775596244399131246656127095315866311747174016341535280209463663369047595380358813414837380672200197319457659392097658952435119649171605786125365455419658994253782017995429437833516463088526832012717270712774799545252213566280045601496046756939914186702497214085889054665243604223614231711606716359393636676372247880532791925031690322594961132888811243269038380030688745270102627395509672920893958583195447806145886558649031236519488918774107723482936631006273339757251364281196108671384100832967611062227242367979574901607578074022455426786771533429313231476840828132520728276316260722737166276446838914065941106003986940466981478396821957441073227876003996881014787385129388286647009521603256065856627712663815061525068296610995837341388867860480689982721032699520122073327299701062289854360816645510336213830976917850238225570470088271223723336252117257467133365601945814567908280678113287238124302456321148906691083387314323395584448243268815600489420489443043943117744957029248115702206005679288649394971002787622389676029272064077754477564533897000093635457610868472269097733830017194774484171429703404947719489860156175586704855641416734806075992045279192495671983552793090027433651041050436814914541715099612584456300432276999503546185032378426722961841413770451592035630219225058285994447495537252251334120855772517693203434537322714159353444247649936868730793423831681767909014397825579864358233417814465535159368519732917180766786949855201797733958166290618124211996460367382342835098901801365860071992189848947594794667035894685764427292480359453151951249441305885532589778709562089704581142703513930215283626354854224078808241260442148910583731151847464739091983544546530180739024924684559174258120407751477969758459476685324518350585769727186176418334854535767727839277486241088642467071966745415195488553964761160855806675070675740451263523997537450298763392937498791497318596460294453097076711940409805889788934997551488742131254399199151287614458018632853624149708249902782225464343266605621551051159385643556298164136970793555394515904989277566511318547694119860185921692242407173512877578375167081104692624307832456012965837191444217440347175671408684252636387072006820680431509894326533111863618909619225861602331903925444794030923993462627338613769112112379095856274151827303187811731306389419241692054014396683174089691951233219558733016250049875750707618634167488541036300455592595667317997932708508108317315098453791731415188604477021526148895402491280395349111129460063470844642400331755783475971412612047533756733475191612048810242561776469895019866703155321972602469563646084219723160666199830611670928795457810130292471529207040914640805211096087116810017216856702908034063199276906862093668961586409192790974251812447568089071868196361543804874964929976944901456109172218732011248890221651529644406600472583003014657308829984102774007010357186012470397713792322841726733899296057760157439961652032797104559893350217228386519800987896473409991620917744686320982025818412702730970003557637412575025101332713745708847999587938654502865144369361077776393820846937950151798072479564759363242082105255363157521658354422249807406002632041794572246861507278791235877979405086540036039071762419954592073264225528760838953801766958180066149435000251332351026928567960627239484961223228033124842462749423536961270095013065780740320884330704243229732409216209367499686835264677407881263427601086804402707646131334309998444548061897548366983974919354436746312755723465896490103768606389513509391425819298764417483182874225493943632678089828262141615177369715921170044064365165630559790124199416101608667762923848698533309814002053190494760269811190487742516080487961313261150610037591856978129167709284462493726787185882712541914039462924980067934077524344731330425490159762515535967082084716877755921021236963247135226734645121414499643263065349258122190145458319915612697545832945021410470174495010221465173482610482476320064854101597151103140425489735847732522126296076380613693991240831110232519141294323075403595935635500475285832211278879904973528233189225231343906320888290670403771012363228474656225944850437245342447525221878018397120276052393301636715281296748640501468133250556068237464413387148595942631604319194079849924927790760755782508622902157457025256227701795371189041635163745568632560682839939288793461669834100566113481288242669956934654856270342093871292475698870540538074329834552787733113371390926204421444967654890198766234599021635595822370679412743848393613211311841111608158982739295396682472264231269077230772633585165263295654720681403017539632027323155657203494258166168581677197623593140783322418633387744941129300452423395397164738991143815165832850270262743100270454598366047005323450357871475954306466069931718983875609147178724050961853358080962988808608308052174324154386282213774566561314976794683860904290156121116288850181573724080252615230421282391119571516286801690369885241938807263429770765586359300342147037465365524558018222964466598051959365514884442597748800429634444116474916618546255401313487697467478479794502155226923192746625264933028184117640569460133487047531997339309612180373763277294078473986850713537088890028081402781516543093454533277528960670883008362870629806707755115407977616996654959005090321542600133831441590131566221662959558407326904972375082748489974064425108201280781548496266923668462806040634688838809422132832521793997067435170676789510084481471042218139435359572259675254789287178599099589994149063257889893685143763941333164824965187596272226923163739635823196454500338646539647228313279346571882827387865682698073646350632503163449903899716066335526743329031464590563373621787291660748930435236359587649690957222207009328188712962526445210910542466604531075391709195127397668279524542746710636461611187959402839169921050166626083354593737585128086032072024881889693970184650529673298645684753158703491862297897026635714913011164111657709943228334337564063461733648684306588398791846529432797484803765383957046433782424867511933116048398303519001924656086371447887550424400340688806674410548852206039204665436387535443384299662873031542498402898207201698398153860163618801373889389157893677430129791943625292517958699199674428351135676134223242682645521202108898956572763871175391910725182222408250792406506129150915270989405767868375166541630350166266304029274281996428272160581384635047343693274680505159984351610545233531406923563350514913192033365628323138139777825852203843228263205749607050823875323201017245704526420754819110725097497138997187252793996635871645289998986094761086830060521884679537936268171155898110100626510261425639964753057053363713206648873735575401244405175842220373238271981201511575899668003333149066950107036619068185051758233595936201775498038662107657543090551989826913916053012360256792673090511026383245051224833066631437985017801570413479600069574617142323712166399575238851081270137350346627696574277547708945650446756306676913821511695210637685777347444398574695562468940663506565737047488824184821366864387689747476138057511154786345308176810256765384954130561606327256314653326805774334775239522255373029649396989246265287749657306060574897565601147740087595654002195109336562086210181738622125243977621466614680003608412132700640469708771731951171463356460613492936760065714420827094927116678230538617995967587938666132056810081771811310986397925308015615708899779658256541261704417258988189492617892738878423340244891310596357534771862785396551843165524471220934376004793184478838293275252332513835315691621990006796855188902651476220056923938288390652048763249526230341114102101029550956117150502360799953898597558841320593731058230638882329891735610220547739806605257157776731192722017762056488213864761575639243063813202668947105083904948230876089800062701485852659745311655218897606975687202238130126255886419036119541235523152510329410981717048588575599055373981509870862514568905031994568586886114772211953021861312558536765029265571448566498443439079238274816222325414641746995582972316657784317934183597921045678003175213359652339539574370922387703426499460810871251975154634973697800840858318320869829414598946259882170925456521695452684994185556334087909312586497343980760327679352702527562067760177743366939187475223009972397352517471240795305516773879275345508817572180223175121926836231518033803103459372719701082354346611195225587441262327552682538599727641587516950532043587419466055555400110311418367502248294611517948800679161819712220295696348140958107355650468190704688376229349724715574573832437960148003205824804007167152232494424530612960689193509858822982373799460203383223707873515229885916091021024840751941704908937570338934502021487733376256704381446907719788830818216985861424536378178747355658284647504022622191882563621803498054226903081498484194852500339387289092059160061085117241552972198979376579057070306380965986373723625460812142978635816457126066532071686225859864793783570477215539916981685848801185813103414707764989039054711425456406010803548629943952082300536095964437914832028272363985376043682567165209387470325805508041830687988005982803942632358558621138191715808739113767047905117099108474705782156425453511297053503632204036109201328120183640412944754091889960393247994036991671017780316613214377526711364679440030508190762608100103653925663252067657618944015785589740413191623292784842847366575963480318615054479303161334090163290975200695014819325060247374501472914660347642293829708716620524925555788202187823473299432135439022684170015356646429243300985840760634058681403160688297279312085911714129843594906456489446415814377386033187699739278035206558075424985496591104562458065246298687079706303822651223507994618814278467386137483175722630067889783510474848047565703940093830436672386525471935174738549483801042819123297104508124373459797828425545530697887141823450296817466459001040094886454718102678598741705760096568487116707716762611873508199006328073214013595804378043244345212728956516618058161218485375056206319279238044757354524714898489686292381323422719626091579007571513865288607425963599956404090565085944300223421061379781005224523345633029183070229400982329267099934613361835524263205351201655640739860426515441988738155689060497784630743727828500589889001563976854057451782593068474939448661968169317705362913515548710149992434302394122709697004689972461712667915745232649699321862362139222786313038615533140832086717214279047325358701043688640182033926019360164087304874543379877933410588389643909696105532314441366538868839099197690570362531973213586326936342923312508655916560282568867503619474349593032361657905332634762567388350164403573326324889839356487850135114532472720085197564073970589356710167309531244947592535628587613939111428187647350900940112217969457833910139402975495337083992564459637007534122979947997623873936771438245590055937431181897251037722551672838453070959265504890290808272972837476961842680696355550923437117392084624059453864115931021083875877247231968782501365667569578178877640122427604114034707073795794333046784555779544913074936273633058930865135511181042613429534364030144596699509719264312275476331614457375082691207754359851887796830967876016953116103140483617216562388512186723838761300259806034636083444686904505653589092022890495891616866701288534932273329018586443260236619995259954345618629727329315841177186302707426927558350755630711361324422172246465767923450595529294876685777873120568006912652711383905175615114534244871366299621198361704400751197414908570412821824240742825750348934702911866084145462432765852599327561814316495258830281718481218660692466087733702943740913040268442934829972923909247351852539160648994233963809637492193491942110300667932483123920040997470538541450263532905795492797360315377910958095936420307230564997024316536046321306964066020537771615573160066165152132250947042359642683457083519250185231970554730046049152820407317731109563888287243840076156717683076766890999561258675157207161451811521367962524273001656565325524623250112822275756562752776389143442549049363355532211601797985513403479866064804159777130786886950487734409038472009526072688527397610777903257376203322752353058285053061092059800893505204620517024797529816406767116767235031506706427933003656514360851110214424111540390500055407765961533329767184273297119633689345495755108080314516927837607737794335871942444518596820223209593019703983038356083343155161443663245594055076687141842419416774949788113891098336907214343519206574281613419866992980509713365844030832194220703592760520624397305653017954191567755539448134978990782349027391349730568226260924250907133287075923620529231938928248822248252757434644411313436771733238695075323872130587537720987498953458749945403217164060457548880764091611806806828584552074827181569212511072121104778867138008113828456587041906433525850277197777180424790052691038258017077844377970837947529264249500212161069765656546528053557675207574471126940210213526098286784045233606618340932119953194990661711166103553619728578655392225090834679231256963403969766902339805003531742696597637240612883358971379076913495277684794479787741817112708576628798943450634936269042369787353375485267357737054284235893716394448064474708769886222058045320170835792803025117052740071269693130162395062233143674253545415614393710591132769947882290426120041809809020694783193085974926617689001969368082155263437723594127385493190104113172680291206207569927507779073962208522138173696601029967622197815737512860350721828510196543737550059668289820123527000085505510456848279727797334376122666377213043952397781082805914459260833061567954452041532171678277795069327206028633827303537848524495830243990945287371570318206894644955754761156550036611643256972995288515974222069760923305755496760284507108668048396670831747806729866265825415973636602041284569304661410696701617368810046433713498886387345940595762668556752274013731653365780397178165841884871552285945372323678884172146459439931275953833098849318411509847958401773209176974145456810389957784930480888441165513666807598312135424765361002075145507488859838316166392223600557481855321623883290276994864930849072498152835365796516106806242111999064447147448279430928413947760754150331779249380401005525896345373845415279450584925082462737883156947052562674891087316738099081667391927765849273594377436006567982815165288507865705714167909909182915848644621460385223144536935068692724847963054371349423533983241744907823665042963891844354899663750929899659388450284421320173752544461360923038321136877949731346406495843323439123324028025044936687232968031274515883936838607336029580296974275489000380996322690128209510369197896620414188580351473297617307784245306513098068957879809822638465512683058708255637826445491361878788325938281082355189774986763995994242853481673585176632327444991697860897266368732171415961296768262372236195331393639128011155715861018522083765647167535804162454160060848814908025282199596838781132933745132399189148624604701191632204612132945851862756798826328530533368132603462687105295498679452097737990301283522686115356152579528798797706017962780023880879167740413950926742875719051552352224204289650158183547111180439674098919006385064777214580132033613885870680809711066272126580012678953092685810791216810105581490813293445822365952633531922129898530125280407597847616357913277060417755853558326470897212482667169060758577503561841076651692261482555908138189218279648924091847253234793297608649701269354149644498617654009430836156198287505593355646406087254874627580456293067373127724042176248011546527944381867504602251445528713165353118831220529666751994328146203465094914580753134677928140226192542779663591661771017080437919464542168680404641114261193495793600143660096429886380239371427344865791463428379596344201419206883222274244164250972716887836628565078735584507570559394872560460872263043143636114243200344746513559574429593017924265835057802196316212779678685684256045278137122313769812259695691565814153937957359347453891616931035121509352468143570388876431530637447668858316076499903175379686209459268203739628718733497880035210617791015264185551668973318461173174152046399263729066485813076887493744479228033563971295508664523424355935439204419564515649628557459300735689466036974900736068108016660154037649794568461920246943511422165283691359882484245745619664987418282642088902321601239496920492437057300507097743043631158430093330672347975636854212088078876383739895190188189540829638069136802001090534921594616079507676361151758319492365266946389653647882663687436878015910015547275149832302047162708998027126573166647892128074216767031167799419500206863566150449854077968767610777634176084630115812698123702584522131229661537295691903687876054265107986477981503246338118957839587876068608437725529744634730043883737399753947215952826680994685805590561025042899662686261363040264241779727092674613431308686854666919683075317990081364037844654464862940673239925257916951110330570426357990134734356244531408053171293102014128144157790357009790865238562740310114591816891786216294031002154193361073455716335113114208575794178829412654901658905461036191787487228668610922044214196734956367029834167071660478141785542675410734492563872979546059895656415953305756575938023704190512790950692657879901315673696257977246966114728679913062680529810388000610090477046548798362736244245740729811489137962296917219774844017081226898661230967621252688586340851985491266916536699630430468170990299570450198069024087778474447815919273285448387444782014491993604392423891901431098908590383199077142119799035793589226978444552031191359154989616452689257315411168442573948326056918884228484596881480211374210189311807840202228095804570950077929350534745240792304439739637254354516011581061742100138474549895343417278210264258616528166031966840157335338508316516231695657183872443334283345542033578651229131426851243236321462250366531328519717715017266519239851823901228826884853269019893552517247610936177500357093115676362411047484598675624759852166513626014229863538264747593390013657181179506787575013766398289567697381142039884896878297667304674706985616286732800258299360638072388654225757501668273329152777228558313859208678933310427178838611647431921854558343622719933382284063628524229948810539111005277671178395561849846739657992119946863696592762181133753901578101199833605510893209337319317806241571448765606262451619992299893259762387885542023535275204634965220450162095803550105680719169139022624086871874028918245090052603848418516981591066994311014736207596722255470659359498242704998233460558573538159091123583501010868206091403597256360288624071051466966225764802499362811767526635437058613558394524518134818448103426523875147849776241604858869262110522724268864243135745004399874845747146096421028483464068911935086673923335738014541506867668050776143694601869371041503108968767374584095086465417533907833728201046361109413952225764841232041909309023362088938246893827644960779847707646587523669444939526344929544209866564550365371633897327764096837064337618716788485488857945298714403899771507023289400986868817672368354748887533516483560038305074009503523494868089177110543881051253948518104448995547043799143508228912024595598523783332114198800267133872742877583275357675755722846072850617389397717694012047185884182096241465062112280420792395954918419080021380357002359665055677225269965025417401212798385731041703281020566033876918579121270132307408635823143860893014959513388948995552078022963280777285287480256941041901098182430462030822848901607445320453297744850560941614296168235642812156573435055869662953495088964057501638722416450787248119075836913734721071938803721250364560442602620550100363074505092218276834792811822214100306297854763118714632800672955692070593868165871341820497695062901726389649213592067325988628042267618505394733867205069734495690667254120808346783021397580092643529950058364618040771681953917529933369796819495892651353058032985799134351212817496841241145241824123655626075524570317865826620626563286557522297750835962106868766236947597814767751216498262194056287483696023705499992678114327367881716685861995674036658266957081055562125214491866244217322656376527397125565205150678262473543029477665458782367115002190384679694148742462162571981214536791168931045673497146600400438369394705976520176272340300107930811059364754457661696797489737461488717128630782739077119206844291475148380139280151399241140894208779026955788304350406791100096233313114889109431238865083864390738129801746616625246490179980192808969976782714166736872942326304530849213266342715298591012623470400406288688134936946670971969525509210372574261140878440119988626203751588578235051300796331915075518707348341878303474812815175100900174949287436692071504687345856839477329306384073034605789064012213262201468611682112785254212255703890124592418150098115400799282662085371815612864225839037006085233179915047841540138558028615889696335171078902741013036776894608118275809831590297615038584910292226189194802284738172077620511333798925235902009353474743368133093463120311518356368498454668871213897876477290014013569089366092817181384431991126332683697704674140009348287067446985631959361475494926712531245678376795113814670267761104922113773151027726567347333569198443600396387296876187744358290223507511082368934342624873610906820295805106954441499439654166471879592027190742942085059417654503043166017506757000375953694454078852604268056895580843869217935591525839454839700280676455169516787929601748544447679516662829477560223032819831354684034583359613997516759624866265093386434150481594625853852508834628303517911458149298672629665590435160596655761880572003575045044918015797583999263073433056861896670840825642851822358362524277452500663976733456834491322090462563513515205750210893978896575777150763727600515443566409853072650606282550384907820879469878738508824631823869387992604548067468209164172368425343435667365563427547539911121837646569969928419093773486820474224103029129871882526185255125742138902243614966957174776820120656960373282959884910755829276947701314456307962291063695014791489476224402900290336802695895383697273436240275377049246916166089105769010525938917334697398063506496687948497371766442541012482577340328275369963946650272995695766096552180651210417184076316637905166538089691200240619059836094085732639520352363620115348402403934927780548086530731974231267487371806213288254708357415685146037964223967026956973684163803456505937916515540202146258998146580169257968968388574055980463516289643529006214654686533983016213711882324850775827328125311581159061195849223855245114271553242556431514313812409314595934061191570954373560981597154972235642182803143965890572252542489265702257833509913438543910189952858845823864544885295628120955086218261790892023866494941641196153396515974898290283921497386737515406423688396394894795724289700968486409559586625483644677250180415360692156658278856743023457252992791014880969263526859606628429541271333888751069879503868339278017521207065673437554940767883285613209654815141594971803557905764140800782460464253368009438127385321832886276879847504764232136795570886372471213152631657617438283174670535489939704843216560849945461338243971360194910600511640380169626233555779163238815683556103519065488175056491641054374416354237663069767701745264793368476059136741903545110547194772177613923960286966276546171049712309615480898957925183193944401617281132752892297310137433832196530568324184363229846148630188830097939010979644714074486950457873442605827092085348835610993691126964849458519121218957861267122154369488663681397137732716066062969712259385662720179485589978346034672802417577327087955011111988549787601512355960673225738945119121744409107135473674431985585728818671446763835297920687841601310714989383343497108463088976325130539211062264178967628081652614770299298783649380543224568055449290391874338657105008632740719139792568257307455018423161705829568303561928495271931068386462082575242007080047741850657967382228964532792733044205765331757892935544940477394812053919229708158171235095225729100430318776259564629275756520483173232697102059263600158078046545900797220100504484733640775370032301570509127416375116559569184272877064534157650607205413549831479297300103247902414903420562079368331792794968821295055880353114230085998791219900976370595344040991618708112900710311334087081841580251810676552849062813117468408156639275474724235709471445674544401182253763989736209020725934298498640605603589759616059322357108258661825514122419007055351977051986553504825494056170927362634563056475547337232262129529109837572381519891152691607615046871628416359097509873608537053253445312056814904587509007148028420125115154314176851737849735619834384715560069237027792170391005024564302670397102096462114215628569376066101129774986951506527109024734033986698014719237332479948983674619236105445152172741434917398742188357081736501190661412924961174219809239965929338612289375144291109002612621046585445223724311456676586912841898971022052156418264973467903946037207874292228661429622419510408970962333157495989396456081246701119963228004318092626890072138099034873852771981751944444898540677168714817237252120964328876632515614924974564163821768942288760913445938202260505902929974395649740975252061440842092627892799162992291558638595470906090140501558732892363397847275664354080439568330555639662261708968982741832138644732217722247152415351421122381240983361796969178755962828729043824426056617154482214901427934548575480934165968779710992824030135010023295484258530522436992377924284004171917115562521241036189112772501761466676932698448994768493963972922260476288441507261694743545045422934868874585262948577173414172619311452714251750948485053203512251206065817878063052005152628425401071893622081580141105844546025607124007848080320097456116399658727362877850824537854172172114568973939564637241328864880992419348967767024649352838806158711888298664822922729939388856206035687998092807573455946512351066694286475016331538861373119972253281200108239463536435032702880673348620177435445586788068644144204801650179922293510829603158944158468833517094868851731425280594871071941705364649833375068254806559097210737732789138139452553662954972538727634792362547777061262440101354689126263441776959559587200921148486228655771652527087129416518664557218620739590886782058036535716547417653296972013033455507664271681578216532436623081953466918370256384831307714756944418137652086883831974143243807744392211219544996788537375860353953249659304512910865196403462072365715548348288463638753024493685749261499608780839020990084715977886737148977443698283986790932554702755711168108106666754718514704556348576340820175121704566562917057296133814303978529275803268573903454225682250695693935594485991584304682633249550618619036006182088775603205452794466250634717848412505120631023883968036535596853638888976271392177245323655581068274763269402399254171339938118537429592258373979577308081807981411172333852026461127698738738278125009940441340673499458414304251371813116791940945033258647217364250064988514421221048699385683894531554537055961690384712541322889408489380213585382263447554604268264072870617153285185524664167417941938200456679957252907824603394659613670970237502849926404276798191474562161404294104851496883855316639900227108684337906460222066973935941293223068570690032947948434548108494695640286842074767594054225963220642719654190548944092007726305045708291005519116512066782107554745224533510554672073623932087577608536731641733669283567060119133159196975339116634664748957831164995854322215997284312621584190564997642897864548783460340868331602119738605698782490185418509164640437039327549103603202788545772119732392014114416278244973878431313573039089898550206906585225501353183331537584569579089636299174079755184569026116706558009903804744509514376665850639662800829098587533026138577148819203383252686755488980589413467744579505782010084849924336423011412660479354843972826970851074620282318916720431949470317408797218730526210243164120724640051810979125767689625020808672195809152097804760801643542574841904071938639177103833712334027061312639899071867519030115320770440015378962982581392579458623001593701440219359822833100137481072351520868632674320003175296931908528434614706981687932250195276878297336554399105399327577829736032714736501114691295791016438768860863756179370035331417658393184001016302172076317374180111773507464410394039849850164607419809956177520707178823981192671708700002331935068585410871090382959586145607474924125686360401865990549678498962462565143836373352849039278915476607239663509728087745970300729736215299076334540317890477348244199786609890578805111760207937628430696707761054573307603384149145157434502754471337971591446653401106757185341469230189962934751055321776887495382292809291298398192065958154472280819534782017777988597348069755256673029693859992991230410001470601841799336164525298391070118554342337616936557987222974154069193637265598231725696082393147540549915215036986196466516079761131812713285199681042336039263120044947727957294423226557140369122811641768454552119718275668751800183413696807267244259044344950423663592326915758688461152222595271410791750058630749272633208224690631944208348126674773667847366452871669997132669251607104512288052983227776607067601526391647056714017202042416057261128841126814443057606895316104763388450975109118830614208429021209406716581424034445889376141064244635672097442199953972939379019711389894096287971384296822335376265609930155927720486674235883710885311978959369836085499261261301438175723139387897868086619175353395396550850826221749871973728607186805599395406555553908302742751835110045787038753610335768798047798783776830511801045656671428593581512719859160371348229519053862777207672533926069903243685411226590485562317000906103694355734361869931311610694457435462733604431810641860410205880075357886021758639021974852942232018127496929954579401372326836949741523414663253189831109889648194220873829078182432534651150734401096404046660970728976924740086871493381773758468703950473369928114914370384507541998259711766398225015662855429248114692497216568013131054955677652527479887980403321197007423765702817508157170822123215275077671005494824738058015281935481258032860224520499354949384135178109480328215688457404198927518661788262458228925618401946136435622563574955305682736038499781961094407865482981005694780756081537359604787777608264065258071093880188039997628045535663049827177506343304479342442395909711764491192078756476434799100648600247736473469852514817075405219204713627349977053044846585841174169862908201939492115283535179351534396798765546642488054024378486271062826705769541425225826366557910492379801531812339924518371028208458695099146795215399235362040283136773035913664224591862407383039924593323327679896665773892746149734912234054010491549210864008310724346253035093737086051220258122255983137333272039040469324674223163213027261840484036734276609928454868474453298951247161330432563064509265644787057264797879846066891367096303923434932430713883696138848774065173149466439798082582745064306601733112136061689901515961645467556697634036542638347075966511533262029395085342174772689853975689916883446676990828826508561572119563536715699592868791191230369939174746454243199850601456318945689897718752713899634296648908111527546243846889380853245250296711824810955163825042966495482271349316972245007915220765779513179971686982865574247999946219677695190845957655808224317603283068962408616762902760888085688653267966373219894688174903877369803323305338589374051980977833064421550719552831882254977337343144491562535625349735604067325155200890859399363138208465627278500100742314441249397930211785934077248192823832254222024849242033827542121880450368888712534806130916095095042540385872061720934857215093206646965979354696056423265922028386197971086120893048192160598806188349857201941271720785286490254696609256257121465464941120873716230002494175170291564465850057666877730600379854830425269804864582828004179960568257661744315142482427934601878374168679630125607174203248174429946715997587298942824652161478311254327558080197068757758414615054242198106195744363967505526798356838681150677978116632585718617468901655502788513671243873293261344222422431693234829303391590468124858915836885730573931249072894171436418946660199398076984320952998547306582220794669082235460330130880017003578980350632026814075862967495329132827274268916145116135632929306730413495496132013294325227069658097213506821012626659002701734505398749645525138133968369839108721659587227961651292588681773132685828839940306999250405121247595041997846403891365858980641147993077744705374366581732218355326440016024845434982526320797350676204808111423845123544889680747400017307539725894436821571489117142908516066432557880522650546383930603425905724356191833105628118159621134982287488593556085946388813489362501675150557046069532798474101643240428304481265851421669327565232176187185318071576967394886887789280968349473745138932048779289605122914391291887616278725770342894696451811463586247204305994882090944629496729852305378985339859405251774549538972818639567913842320645761533494007163049998208492351008278521573928529710162046371020785343359539342766744883355519917831940058239705204124126793624237036350695798033201099845178970262598836801483722074317235973357360773945140723376611127978944338506739180218627667637125788699326759169100057275009811183300164562284295748231809977822007041495989986357656067219107772869120374015908896207823986107237007279085636864234714041627468378774146767480854052200887581177444368031376938782498911724810635111066746653766290970831620264251212276396829860042792565762906282242716987565184325245071724339847814268407675971949227622351440532470550118226615930433575128345101957720721408457822200377048710220901890887510916561956501684090446868299322225780826613623203935962843432669873377049210562613886536502251721031874915806463276503367633438980723613773601169164664161298630402663095359508291710899145071301840559966365902095294965295799999930785271059375695508840552687927088255134417235289039454600388085893601518911080695729225786802687740632500548915273201478538560131976985561621295815261850622902940612710224299931338614033547704454541077221756483036526798486204537360997629316245565423452282667048475978433550778835648554437620720839452174423246421518905592200681180935370400456226008872883459313974947623668121832401275686334342754346218385017891835422714896427669066141100742116993362194078745106676420837025217109515348214181096941268337483973663322864256578665643680953603451683852564274638605907607105976023730791685902271630296131560139676345264646253184303416700354401854324491238382815634744221861213141008745091170134997957122779996289395434912712307526035272475828921276979702890183012611580551592911288839764048397100667610393490553235736963256658739362344111450285590575103575824727650369577249846627883268760378400842902971853616413238858502976481201102739279553193807967525395513057467203072266347396178515235981896550798858868465545901303886449324048074963564218794885590676394769492522269611578263149298028948361546828386191611350892494689705398844377900124053836619206488199834555562377301198809117262516322891925540741319900580211045850422199052617234546825680421385387011792565932430534382550618478674366512592490681697678554473524697668336857024434934832111416953947759062589440507112897832332670471759451518388171887441548919366586179057054835418900871685669823437640488787841659537201620205251402038024712215885355541112968821667260344537643228796758827470605348648226183799297139171746710002319462037077359375652235323166447800705228019479853053153274581360140391985278031003249061946010870927944205674847938664698819011376052381584586628083488534401059922222972307495329766072990560058564606496731989194340755733836351168433618156353058361843282295406656028812339462683946003418453750737630188624385568031965279674067529054817636763797819475494576359150071876925038878475772536989352303412187140056952225639516617132570279485553224340789685978421414838772222719767471659698405474298218350845199695716389144615588303459641869913040427142470088536286183354306413616433335587752478947630350311331441970704247575457584906049309177878434264013560451146668416721070026578325567891833016896270048308041189582959906496801665303551867814848154707151198968885876561745691260560892824727370798366770468973031246602053612398003481530613605802742969772837719539392675785277377229267543828766111633217934156369794831813098474447128931654446456990221039298250535091007698366113474290322041477169180770680051944460626014484048798791315919476488525363637336307322584404004642699007362097514090689161503661502924405696111402980962827784321068956207732915057648617119259852881896912878137020737008370649458857958369019481599367758884129680732463909474172240893803270858569997166654708536590975665917307036154433454727943064200203385892342916359356929095624029742751358463630742420975448674996037131003207921221069859172439773605445791399090271151951406866759144308030744684875633927743277485081057817990507881343046230505521341299473952843055335646839161217052448003143899446624607117168687443350106818972391422488893438554441948196947264986151622359782896332069116089512067210578939580735893603209638239498764659231131255623301465061629840918216251455642819962280506950254307864471084358896731981410805379949517355265551694367807053756186399018347082477762705561934190361721278164909644364445388832032968560249399372855954348022050834700539380142576904834481497184909719275202173725557437198000282898434525563886858064400414097363634852402804907422900298556418677112366123046790513289027500139857061092445137084771750318418181806328828368884037969124707091177251406752734287242393127379050863410016474240282252437769215103599393704813723499605709805381436983537020868629145156995565165603088280193375911806592753464944033322403119461289804108853645998908301717855839972205777399154031281922549075620877345230066257854113582723613833032627622301858239165144489102169520213296439177001483649415423379446682390070412425468105822567563374004616069530355894135418446261592280940173371366535915584447933835333893360780594906840918300286740043920636936948513974870465625705239263247439866569290262629721337069672220133684546371708147335921864940689100290418141797368777464785754941286953305400471053695862461537808061569822670052458560615774625675258844856671370343945358904894600156906277548597748772308867659980013064054528667178575046654799899394448159880201984342222580943781802634684534933340871044946386902580609880971974864654517669012343589154321364732418513208896031315333957442986771414122973917524197627417809941645590017001093950452138135332444640660787249411448613040364725129073143095762440342457370940069573525098838402907258620713572453814091423991554665548544577830513430572488529567671674485043983153599324536911985140456187214617098217291723173589051735232301123814112537155893442367181962280778805839453741469070529992928975996982075505023291411900927010457330977376694570455116155391782074243445653286271469686624346361017963565298118795432255132734524834869497979149281851340754606883663891699052687123266841527189172865308144550795636696346317774952084135480873620709171353527934373468206561412112535281105645455593410406422194677456807470800130907956508476214314496562822566874739961679298477750187185855274202332792331656521045794041072496756516938447278317462977769326352583331300140341014021186562746506312703882106296767847057051785928063654551760521883013349229017457567139993766729654308571937791127863510892096095860187606215162079378795112708758437732030986274361546417957315789041057415134091714490808870665434407021661074133451614652125656977120994778342983852509097745793983197286583182401789206179515707630264732993033631344811789418694975137702735984703280903047034876569612536912453343873992245600421001073143088827360110295519760036520823993293020860849374333242414188499226044125156566187032697813001072157940554978997413030872432081440232876212107681282450770910590355088135510191207941467604662575218855379134135512770028825108573658666681022001562556049328064217652435419066862764195711526691480838308024122699644823421583834722739007288393725797704801546860827549194155177780938281162846225726986697499617983120956693316563590737150906722439162750710799642750246505651166300372014266182145818783542523165325588151361105506384311267872754602872994933767648398145850686446386376067698937873903525826732718756619223543915937261104232463212379335801281514768585539389101270791541416390069898826127262002309196870866573186111653693499904346433190841668270059372070809465377934279431442040532402880525129433544254101084093699343867138291267661119005797410678137437341943052233258263844249579760325696340950591698370485270872412346826771817210835798584838825166438423278328198686115279977010376212943728693224452828460973547037691452805192295423203102785835829703123916675941472653724955724341104296545117567309405894972771244498313439899818970848626304742731515367855332825175645694481241822637068519435035964615701340818226911566299882663870018199851897532500889187344689190900005069510848633312382251986769626876577855109539508807207840512395091172125513090442795542056987372755126132023127860180720975014895014086387696183712886861467981944328480109423303391597663563880859295722679862168235042352660567843883861182003457768613362015385421079731957634773898706142300719905088610001392004539732391902314433789405502554423587297733617508012807659344316480693760505244560101285794712619768111291752662450972841432699568277922619083228023133927639437768639316691493694226670548737297460318689811624448873303367023259167574841063784317926070162855778905231012492704691454512505930764647314406162536572713838903647694179915700293626953211993979694926428023999789629051428125566676716985214438827701367827388168390594394652005608784001588970278862146842749761269258084640468703885645531932832406105552425816078730031164780667457687499027985723077542134759747866852756527979876586356303065401471977332804368716687252236330952857522879142414597939594031031384267307309076911933137009230520517043279790837852955124013587584646180381595628784769583185059367973896495893265369912764749001193612961615651028828171953023621402010821088659805402474686436851992561647075719216512316091666493451248641731627673664148835073764024893025893408151335463769413334458763056727509715737964118960364846010379689759641475201669892475172990996049273923251878242021006299182776693326668489459565004273695549460530324285078042960981800419442658881599937728330586869915562926021499499441218940276745025518569068834845633900976212486320350187540906134847027774115654023733646204868684872167385513560441783901375427073233917344193646069594416683508552613404112557665737645361632999054202109251890279871175444079898004799242794126375110692437222420251345147234847188585663331292579125325563486720531887741605784163637818449408370210926814092451905578088491014234038050398210084283903654713890918847297686203218674732060991910061774959563534054589420881208284201333700069932688028014656760251836358751857674488744051777113269985102701385030306326378531328141350712568493173410804777569536077384788410799928928845776230982701654626181170164773656426216821300208387288902573276311021840328471058897526092576047262944495363644583421475141042974824557575063072134035644792551179695655622475208346164375507408942822074753861671335270206081431911586305505168237847444215159954527696108411441336129636186964667286189000924920784929998081946214391318414915997140047142740316051928507828451910958437198918092736222249061157053779297294498333337449726409332997965298808390118756451606754408911880746561782189691984126274846947811698543176754297774184750307951233230734493737299854130571204175929997293431094956338376601346332423799814332287883885837880112027853988298896110845375461860882566916268816361452621222018211964405971174076598495045796035450217798835713891990167381697181726774949148409844644325940261004233248593094706529798360764162805663236462362211668602489359439640938424118136534209915474770691041685926539926662358593051880057166530217665629282668377781201264798756707722253001940644650333339218396932135343023550192582629052266701222777798124577226227395498179400814166190337448631459223661672007456468314385498584534274028135209713643686243235759209418888313554200134449879376247911256380518934105661323335885662957526854514615521408593269586270102077818679271182411815239395258564986799268534659417228565229110841228362107844408227160955213787699333962894539710329921019244392694618305768375567211517643222124022028671310310466499928853672225594129367747668320159552476866431855311488520579495785054194375259102613528763960806189447270669697534167134268838543187985302065493862386164305023257755940660788491274691606116908862951577421345571602040255614334827333546814081117209198295351518760980080803154007471087397033929208619988445096889833878733765128895500575617079937887214768274690082235871146366539027828170116033026839421040811188693553453483088959912871280626772508935083621885443418386352928546923539350229605409758631511424654291888575897222276300387185123689927839220224948331765237375571710286273169415053834743674976939137722298897744092639198745623712759429333823721851728590361381326413206047128578602778207579918527877096375290353608976458529486173293863584216967747170641309103288197066871335329432265287116305085632083118335338310367150524754931608879306747637289586748627737102272699179953987480586684823855122688668944417778070919774666267015901333625833303855310958378681616976107354322984995888608040420612508229859770399385311056088051712092585114439013858446330124176285383917721735435898204093325861059424835842197311924734677539298979307380675138063550684910016182679861020802670104460738098466228617262906253385741153000339544010497751608347968712056670831936320500931072795197159452111480209454175624466069239711218560577893293593813035653282933019565840654266171450507635490329520490715576477964669366113504376752711635485857530640367102865169510131848257018592683701353981944882464997585661124569019722239197900021999697961554083858380200603175776674137719608493375037934344414947857992095423821870122560065092923738727465650390510844609144892493754463817427528088638051324383937528104282404022475981864882460185334070952994880227832149246554769712082651341997859488918842473261827643992507799980350385987305647727820631190434965560551532361835210616809923875907889762192738564251238156306442042082237007611328757150032016785531090644069113062354679714830830575479605585702483522177780133707155881007498287965773883616874533911285080454365785419116502086321317972535510783877958112535151646046620900783306835031453404224207615042956412063762899535177490099858810960147537217102903591173694258101935590071571151155881846111808132026884703865988094749746955867132471604479239132389681311391831187486554912714302654275538383930426534144570130239694803334676751566026452970670523956112765393526884076210548441544381733916769042009449582976459338952894192720836834447667023180800737950478885253727243137905349825425259553400633242618629841545192270789988117966263845171354452099020034395517782101002011252976475139534875343614348687736639806533031882917066256394090506933476022007711231369633794675347443969412406843265020246831066780398602329139542041295834119742059617549059958504220868351632021865337195323150796540459498729542465478911527277891257721851020204648408361042601286854279149719672426979047744702196551818884623682647327110040172490829538125841679516153436718508957923875690576721758808371198166630505636043973203502691174590269579260154448158747308794832360645065661850015896056782112284143391183115224593423482423943700749257876484593859959781654452574662664658199844625790701391485895110344907470777834092206654641068189677183535623806399561495357416097058670375454860226153824289695275649936089894339855333690516704417699534130842590693946302827058849715833243984831321316973129371217625839826532079613477641966260035309632157200469803898428575096613162201940407554003909244686324648373242675108619001291972308863945260467480429406958163008610866450839836064061231140821992029777935789642024136148329641991777268406809422521227953936968294485842364433119710222134651022150805667496881452261306194274143970205512866866394764046295015288831122196891697077585341082849021738181879334722392365663157726020432060314467669232925852360321128781569554165393477257754242272613609854576986902555400174173371553108624822612039513408953296285672954439326905899462777000096812022324342513013340345928786001672221226287042330259559629444368855238904219640828441157616519011826159533869535482853653822632762395517108257149212270612541608732037187745719434132777847792315242426521151045288035451134380601394697941681262673787857397999260507532183025741285124431587653529085009900106772254922372029182264332945870125291438878443801436145148802880265104805463357331417880212241390108074480530191316457357144560154356351780293861884327707168030278370829058082147848427250218636250692831048972160513554871675246841055590961898869281806148181478534523927677862412960955046309609724857351143241484636130125011390138157156597307216642683934329333199146694313305194859506986811966780495069705782822296396688665332194511335161301977795523538978083550281832801232836710197251895748566516452340973744514266066227238301629298046606125807857255116460748377657306470724937484723616979520787755161141161825401617420801392283885720922374999416501881660975364591366613875820466702193367996541017298956035597582903469690882643795084175269441427018967564453673492369849570783000999188867889675615692117934853848697413792555938144498080946233113840879902837219709638087768904008981586038838915240107877320549719630916443800690191601607331858137297945685050866819235248280434810242066431933516796961134839585093236544875176871124606067340428001115234378791854065220397889013563373680863725231914447078225231243938099526934611838928137872714626794583237927875228815834153099420458050003960291023330830305260437716965727818697288506423471155315018122712584454295722588956932074641107352324699850517213625505389766895803644616744084839979692113010146971816267997850274584019354381091683190679406383866662968448822126295938654751492575350695835797513562145551217051356617152081702548916107656255016185247604552997388088368554878396381463316756162922330919208565298486928459634629256355280696086755489402583217263430998515889839304771791038639403910314306967090121294691475255971051331504960958971705580994804885189949365703350558629634808506103862485950402140440779929831568569967558224551242189012114025555252247246696267452721981745970846024369428457996915054412332516047847228017790936534617584242211776989910204470103379080218782488873213607195461535465147717071882121095787243308781827513102674547629089118337819123567679506682222129370889814598015221915884498572733478836227453201636315913105486815805899648268106569154081459238762560324335839438261830907230438800127070429891602268378876229682127082412384079353883372867235177138036055401654102746871817438483504577442735327742494725660553402101438243035591214753189894444861537827505936232924663865217653939421415762497469923465702814269097850567896896986626828559289897904105582117737900357846452060023155196485933892676673860894385503428514206311362214701088844816468814841257526710267966926201058333178986481920693745393340868709740619540941709443027457659177778722669702638109229216760873709638613860152689101879105828103549963617899576818345801254554346729416342059774529324971413040918474655147195059244682762225101578106607936446017275531895155618934973069073952248071792699005118934674913079235788813775954465134788732036978400064590928852933681804479303828007812552403220479495100332200038106903139342762837638933605460224094204666431962840977650793651253705031763800851875864579369023927690451946292019353688837635461393861552591423403569058861720877026428677156737713825077043174829622854797672047225919200118655321977725003361676244592743296185798550539402113558639841148955283478435803219178798129623456067307506859109841912405941575075405765534674521654957843568868305958060203881976065364912434833421381738528119812152102967713388669251302830741489636272487319284469522233026916140580436840353541413419700168712911139702209048117731395875769743351000833716086226553398439238286692076270596227565941615729080001249397507447826387390516072392786414004358361327665758869588841049906869665647949487260766809502232118515070806042557628518697301688052574620988798525095642717794613329969089006529590636682032976073152735119700898159000199730872558194007333382086182035139618113376873904989449492324717108087391962173663098603427244252000922677454582165517143901957439421390822066863294936549307745971213942751474691076946833573396432000734495057624043381768840057669023424855197799230001121091820876072697280319810414202375599270999964291328366102004363109622874088406673810911462173845996727435994029345395666753518090266719134692724806748109384522951114487311818363401410657594467167056015282205304408983350701613492869986636692166046789277685247467763075644081065502848521182686706657918872060273811163077917258463556585971468233462859668372909859460484585596954842592150617291871479903595426386063881536068939699857714246590976714693349182573860321990757763770132898537302961279919500633804932006294010344849181950498480424841491850029077297016509045197115255933183405877027235722060967777575386057519980407810221983122613890702754794767775808839746287296599707952427362071970127168108974025990746571489404126558043852658747082020612448601392924263004815928133138239124063078427506680028344058199148069629561663576122934183805336066133571444955237162049403339172852465816512806459437797341091424524800593305780380600394597690238124927169959927295064892911107052222502041516921444734224307844304545671719147549152075076170597224243619946283135448880548314852685365184547548833141694128257890635287475892795486878325559781269649959798061341842142410441360347319176076684819041797084923693993957398382952269244087789858399017536257429425340249463225363893645966449872087517435303821512143839117126761788287416325830179892954844437555254440539651626073409075882473641183181652228793522201566030840661407561670652031693749890477898143900130560584336802846691136339298512829150705238052785303147799589762589430867507710668142008270178885241764750374456125354820450937344519217507279226747754504820775095287391830876112612936576682045788732144928663886528569488075299986453729526754272554852414941029956884093321533631887976360354725252452890910525174350964750195644972103469486296120199822254373643942991624200438269812008996887148593344820257727670220963419487082763003763710252341650600679197707511010733376644853079716415380826037869222598105637202863878126147489428341925297438263056319388563332428949168604202992793082125349359923296749711804921287043316248893766870949836382479339577927189170081737905719316664445717004185080668420066425829144127339858930948094621008694596489300760031262171019893017322122090946817400733872434806666995773682348971495114986787822446508325309891687832287606492537553876684241853318863029654643491713428517538479306947771903846275879792685795151289863639866193885013579170037545643943563816334889139317613709007412423770255233601004635028915255086200832109060834162676426102707219299922869872738060877965506832781465339954010968713871593191313505129303941224493922421812917330959565983630000357021558898993540446204203637633164878984078332549096460193378060937129571939751041232981603804798911713283444076674080256144260196718128497490989654085095626283858204142483137618575785264773325066110510554611661036886421557475505545963150117378151867221225717991351216681990736164563514748654783861528938040514023989089356754418452684134973850829512811746595014988351455115256911525343295057514793062859354375436985719217497330191054283183050173498914177975766671016535740694300691642495852924348105656937503264339181057358934632923447106099955702693938574742275508881637973326356578642783895583831914698535807037824749869468995279386387011560883958965394470779635175835337737497357702136053155049006144445988718101804364026790368344268540314073362996555802176675334815814992502645712172903923508176626914446716054636299801485315494042297905948533376501438865682784444253836956449168953735874473963350273804394210342109726021798559350969914711293732464979926517154359931633027455347737800279455478701397870707406939270182941005997272706591522736610035703234559564715623925293881099237866508451760816458197975753052500790002812840414302980798495170938661269078337807940537495824908290653140610225192482593733398384330445426559746176431894462456460044957185681976854768137565279431927631627036766262200644774714131928293990452785089226960591935650926247340640283484222417606964783822636364952249161396697440860015903706294189836632801339667960451303770437997185686330634733687375999048109585726138452544846240532672019062065731890982421064979286156438139405875940607107006352081675102594003710161525595679638204041873654259845886560379694753208322664022971013711043460145607391093210508405571643449561507096179637273854767402132672873241410621005266073337648319550770323193414958676121810571086237519476530494445986506662622484566680430936523001171325915680205220838906390417787520713737914947559518120241672381163042296811008942752023701047686977073662422605517753990470874412870241561752752828247377984638405818908919331122325400234003024549921918731513250870892155592482931788567283830307422240389507218679867477392485436807880972917129787713823682881587940630683727583225349093302460839700874364242546317669661254164250964065657912704510269285922415378583681118578546320234424525927400932874591887792579027280310209061802851666217141648948860242558204809084199220324643180748870436628700915706963308160983167845128594910313476955107571318143723784125622220013353870971073637870103933372184624517734770273707817279203886960859152007305074026304788159746848133413343201048628227654607542342531795969671376092647871733465582458489925540316546873142410439187838821965585943943081797101723382401519628808655579149982666174739058494316425431870917647850471871397003656813661094846430676699052159978275291367293311492391898568091282436947608471918835763737212671219980113533283735186944900936976526963489303182374284924576782157947756860402082536066376905689658634720947576778926694624971723759940839837996747240863040894620882811667174745268340852142563868212021970138035021637668132883456659837413722367594029060334120286988429843526156042124360267123703056919293654927071332164623524504264717542391254928816202900693570948189821827236819854139645410282490170620093589305742808803314606551469544993623816906407532711520363575231551890794858204369811610123360817873442214320836345752072723053810608825278043670415854770331372009284212613214522638425511713763880707555281256387199400245647904722133968464270548128380545963524068651972268809405174807060177721727047104547775744076538688378698100972206935740788396417615060560500388134864312327842071330876481773613089988547003930195213750864700570359560540337359583993355268937682950570830951153011353499081804499635412718308055554533844477385323033267451195254001800880934697805702362578995606508549745885412718178502765767639033230737476067289721773114382529868245207922910852334766731080324862377732178778847354478427476778384320513203822268467221123770586418809409403076599489315143158198595258884135678603676651172692872390516521107916212109411675385311319206338042443750866884435638359416842182763794265496278771032651909323354348970493979158450657927921223406298343531897426926109069359015777069935450199424661840860353566684982326640141155662390425063580667502786883987349739207147994335430216496077201371171267508422444291739789655860566668057191006666871562467720223141586873385387401782168621771780963377483376742253780083834078312122910962031545247821252662882338843637883409525037268245091271258383200774489425131837032336970562945609476671368514811429405322435845092525996839777196792979797856356290888114052313820447710397025604335907183544902414067142345365509436135943162849489104975205764534666579818822664836221825157797843542674929676116590244365665326009570435178133156657377790894032007555843175331149160406471088267451936263845395652658914361059453770716061321712463633195781654151224192478693486499911741940451606044622523208331363967093583801552223721107104135305831584129601093408259108927103615235719333454961899704206501503894934553899221800062832146453487698281014412055463891802972950283519774402668352984489342242549859279986889399183312212572731803610975938227058263234720033803876589534749422311356123565382401206827136007722204568019753197331358018809813782019564009909362103464134540679194056919779952824656024649205061173760567687127384249165730846542648291254840652577927679069607928227409498106051871509343953895889280298145603938637019810749867982882477159469289776691337593903941390948520770784553413984968956625149337353837915335836070005209433919475845449987155862806540078420456485609022684570163033585314865005411773448480400167058292632867574146602077746104180973186240378964462032368894914197166696602158342766956830659123382101345072952625042380971923559469744640495207821428935728997030306707310624625680655480647076005141385775936964351238875727679513672106159498914499700633106115950639059024079837473705502254727609348737577286515188391817139051916269181381198182168899746109264083043520443157575461257722782948532117850356039635970744927556928786356212066764196116827846337281836214521855623255151742852289135438922477502200349587910280702709010404350944681959928261763560364393383620630505658198930220795530526787479112083996693321975358755636395608411043954332417948790396157352185140283183784914578453228872213078330361490073275877813233103777372492831164890995035797518700240426669288617369239043114154966820137679854246954763586042803262280066694709226511463526189508750026135792062030470234769190893474779828072738174548996699717533058567921157606140326042103233513650017534732310350164946230809754515644930357635086736845118648188247036541081358835362927421654437336130478914663021228362535055688931117359373411026357189011987821377575800650863297302237669104647322246110311807879810152466172188160197336663159316854080956830284113295156774651853554055168377343828699360623707692751048092796035907958991933735612203528072156356606590244392729021346866714341073884605666928425817544544714755217674867630658588286292938619485097363765164065517593340773967597947029823589869586127667783139411390176593515942462380695124306057666188274177007310549036857133870741828363493547644314314289044563805509981310194698443392158552223936334926076783093331696718400825750760630608830954283730995201367529024580443070158157932623466556539468065699689691225517788855217742726066472217777421688867523549664466856860785111240821937543036641401779484775274817738082004602776986803187942538326599256072191395323463340772071732503475405328625859726195953257995700010620248021552082067899918596643583613242532205464336866293051702343240351320709028416287141921167651786806621833742104296739743416813471830956569930480992365009177805492305797128768855869993649512568413793317733440353021585240101725387400808318701968202607685761026635283322047140833314653500673573107383115133989353369387722863881418743123611316711163860707463500250338033818069856387128792183719093259899499136821860751967508577789585003385506631943046234468488713436603832293621722063787596959340245095791086207903618670591851873353178900777296603133261441142442669174570549885591206797767200392317742463900707534764211355612258294789648187970551086482537732545038286698621044306750011305632322130374990829525186741367221565851095907366539432759634023980262563448969369389248598435985809894226581448583355973404057400060009720223928599895776177932637972387409699422060342617558367572697111039199964328642535062785229679540849518739003493081893787716647712202657499084411338824575175601318173248191245959753771355857704177264093584853779327310214303881449084690949499775250425710342749635082901573769430849586053181376885528970026886313168191133422857359420846771372995853038043665537659970630896176273351261866098599754882562018995029684515538602286238619269569841733830021492384135966811057355423950525153288363734898783333949345101171367302210104772602723921042620531527869609067749201334341445176576749540566254031774681339909417625480329279586466812073125539367732393010523511549482545705447584285401410580014571022589929216511333245619150025927598168840883134941855923583215865360255420329688117058891493857815357644102323823264594612086984712702271402457412982562226981197924297648433129973291288830006579317637580624185524762234204441858700460848144479474449457373907019782442302488028100106051299525615227953859393898821041465554626203348959823062439534366267941595876342600474502137874144078649711479775252800198429505596933950618054279773190269043562969154995446305629190400682472124163396262126588673957679232870168973747140788045640576031865540260201134161549996365062020852532158913567271698522488190188989390518273657903883705750865391495552724194539453028764060272223180483651988694581791143549242592198908018453325304261922071280834965079685202106738472402548933179602604963913948917804138623499964860873096867575770803628874295141307264955581052761182596346991459444854717909489033074002795536911160298187233869758101755017163927642193858076570945576511608706682410446307733328558669041857476008564127497817232067047057627856093258751466580412866166446854570217988304917858608881234483913936203281177756960018268343634891886086395728416354690664158353388426560898108514535947595882270581328817289340624657212799314801826520999771333087359860118235336305632440319082310657059259358010088612763366274476149842751095763236670483346898411736905240847611762416419517147015430489521296751221369518798721095229220661996806492334966711410999003641235916367311678094300068226412675350553531791441421736800815414068689847583217612314306981323737000177554600289939671732637683881075867003213504448272516355005521841225843155841702111712163430633051594251003574644448554163680841493160475916310462090262477127912041673379304333767519304415946361672577850958371373348483287266949664304340618695545201961205865614057709970325851058066830389172494742865785219530039507189547162153291036343122878079452580792679861023018369338929327422237938383519755811498828569320822740951584619260378682758932930555351590526881247648594481716346552798517173866088488683040636907231957549993021581319979280326188352996936772946054981937930798243438210559276436078433046942414444775175448088319613523212036074915065773498742300337311266694784466628198250285281219413780916392552927705680983868339537998218918269362629626142535723953169115539380199675878432272428448900916461435685977637821852271354311366905669990274748902129882516389986966583581841500470152264568476127613383378071200038332684371307004607100475906446568267180172720199225635509003065817036230799314009887763953790724489834072301096546101328093772421693563789190650289462879972905849277216016344531987792077960513586728774952425969778661626786024794000820244372772127977396642729697575826621762708778378003368490961424999754731301044714934061179399406565564194532630013121222891848833250520023484223017108363465620408990021167091585569975649676889776563691637953269678834845573470300429680552132220168794427117175221360526324031077181515275311314437902229868017618951853637340387930292163330485016513440152727233462163406984928509658978962167280743292426731302423306046693745925759248392681394827608013281600303013113524837936299687456700630270145336319418609755146738852872560796487073905494262048833563490070835438303468761913043501221299724496463742476901298349766486856606656509765002713775673068271697728832395547872353813408574687459019785481713329581621967284747672534421288283055945626178375529629070946204881350037457516193015149749416385494764892752580010067543794594132211699894946500021572693241750685511428779251286434529271109042820353748180832385741092729079512625637941678563709573183835009308897570679176112102099962983645382512136041219631202250026434424126102037031761468632738351152950335340585356851476583150410232988680261296494052115038225400589596518850632829964570815400091713234167466090698366231367019187677053324237647506571776254877875909456891768186248191889830332949761073756291696033373351183008630074959853577013341045902921191442609208629898548120502747221346179569714517332995158390436528591913455239938423402546563757931372110770272836751991424986969077005993967180850140898340462309680910688798343363769817664249754669324387161362622252028798862020817391815100285027450173586911456526501873470853664528909681543287842113689501530250063595372230837814385708455780783085596770139459236587347284674745496231208823327763430177460439492395392008630822104645014745918620153515293633377777086748365924150751959987314828322940857081912944538680637260320563972239520219473812534034724633850332859273022929423980987711647652067263597446543725924333384086807736013753720076734986043443328211278004729799963039326775307623253319310714615288105467208642635214991154149991744480509068262375118298008957580639211002189005907309795344947876509980983926755136263793713790317676047416648254003330706652472090758340504597773839882391675607572557476330086044370339110149651029852668376878075725048607224266987898980441531255499944672059426060335727578160147745549270922305952246695500031246650601177623909360298468171545514780800256728084314499623012830952153349708147747359843887589085292224867866293198847915360404608755377959206689275414829384788466695214454407922569218406444452527439052408245904483125526318764454689921953015367788670156187255479618094817200924328584345156484132677265613239095963536960106622031164622092555257899332362367417102370420488932112292395176229202940618522705000506627142100574330240044857660961155985006128161343562530061797437545105093284441161588865542719614400300875752681989900732551985282389214936786376260873031379143920323023619029771572523655196414738904342682684426492766778471967030455111555392819185819875364682324233824879809834253787501503831784931009769833969212361267716895588221857824062260792480355683142686439989674472657353570117444086370421489029908125970234581960007234267411635089528059013743922300235408045150089757199535710326016686419254590029258408696734810821993800781139201966950341024076062575559533896805912983619367241162936886322302759003802392207118134014063239546208861911153252819744425944473764664633616559177349454597676872045253100306575323015339654490057826629419376354551566916300594133267256880300474349270821430650603671798268246013661936676276694173860132354194778301922266305561932867851628120537321796531064291301000842951363348075764485405472946928692931759634122516363738120851863836632960602275695267477605029197218015329202588407569036393662838663605736913870571672045155712134009460945954404347516638701032684176814096094969933935771392210475744888624309030562149186988259229475650291769782507706102525549393497929686773462763230599007219296537703630377093100741312314249261502600111839355077969198671146874098663111501977682109597005821827330150203921007180078210352622887769492263238946066565160165986312611023785683256370541918317555513482309429175019957944303553929831448056219103129542143567492535685659853288630555723935030237226509118330519066363481742257919765321398452860089286167459004243099693247295972804945582801245854346656139189829372638588564774341652660004576154760965400915445092656016530019687800588792342926762214320938586284318908876505970915989863219684420072284325161196283342996960371271734983314543710697961429236048357639625282595169820123621872494548243557333885886082570619000265781172402163737810284274231178423191252183720214939308528161742470545938691774684599523739884212457209760821093423550079735993715180591108092384812946612889434999209354260873037340149383464570224812066559834019463268764669228873313070181081088857665112372703991539231708416402600020909376722103595765983120480150317259949070206678633527895787107368807406354010837455000205604918516435281956328460479266497158374348036989586372194176394718823903646144661705561635498622723912276609047116655666425552272914225227098326741339230263713634702277009754464683960834801905086432086947138336475589337280894964472713049600478274320563722253844238116424372617447306154120525244891664116105565177405303820825412264863248936812651168754910208256304977862615868485095194230597126375658498534037484600253757176733614884631584959275338725542824981628305303893836034712127220107998627398371773351286677481050820452597404668303038668976853054464596705083931706430369134039937637117025831859639239213200050934553752931255861929252116091620112391314654715267950712371120852743963274239650285307747263522294024179153624736386289151161289870681599814239049667400074519293601480887823065691111946523430330670925125045930434833962154868212278238737447973499754930652716754197153238987862835315812677084900491422382384680130453618809801664331996064145954831678900391987989823988635526631981205932144312784584416164298873815682620845487174139799729786930288590541606436611186654826132480406360204400908487864207341876069980137763424690830044689507756296925934650740742597270700816250915591006669822360885358669633020568776260826236423642245749672804817442415550745042224767450030768518557142533439198589023992060033483685298049267656436113629591040064862433538013803146208669432631342502995093772200981143471155658594839208354284147972978100216171256543955847561674564542110943618362897024510964379879206857261855543593753016996830831730539329821225044598450974233589876456758178062149221474378072202759006134179616125167182783575101900468483344757233070520806792705459238331424112952070017640606574026959789687258388974399554575030629728814183845111815532486270869769109113840421056460358590445091969714236900735511323046635805543425413690520786681175978876667162097551027985167492666639394644641119542330610721290428129665200478429260402244019643168232590575127069799801287248231196691276526764133897548645091685912511033962544620119770042003462706575441446334146237323429974705336707002745020775266936657352979472591375723252277540689844872750414467661118744714266560459311945993029751734810549345336518019598933870215962185915786072080569556192451703154108586214952754456943511867156706423383285773992069806653248326334831252437766653839672596236666856295124613933151419225083509665657570075436298416005393081380401791692485258785660982510270662732328054680742626560064708861562957892150011618394507245037435519191384907680528533729681832494803009019658607726986239685237077105890299857820312419449271549212220878206868269499785798679297645619449166825781000405399454405980153477565460943429574767201030321455720385962161144026433652980728336546501553205498822012505975851747052313319789591284750380126093050813618224435796908676639212843709460115345313162061816057368474063571468901704661455349889030938385656212771609045300350434999367415996036316339983813287107732949079414318842508564469749002125467386187891095116861793869352681672388565024326237293477771064129946463414103309625819248322452006677883331849595833609412788597837548656548939812660875198840457125371923692775730730060345244118127890707668201236015304259232969287097141152036594364384738747416847017264135559676816494800846657482045600598926362234905602595929763716435503288679581086412916778167286318934093765694158884155659055647679911787110857917477221716699650937511846036672435872899642152043104657596777246990504590431455083656089680575651252440794342956452487682518600943234698968899551482454790437387866309751469347220330866489246923195046727824703275032723267577694207226140774840285338131955267362353023668140359986697243311103243417638025679711567756619854500203499505268065776574544528003193417783454739759524745647716819850565200949537348019595522563874360273472870113808473794347524112747317578201868492636641860829246177989631633917839774258913229266839344554556276049171163565519636505409590209048435309669977030857352118592032366985421998866705374782181122753261855806202975844748459956139868528870530360198960592054579895630191577249964180828026042920607623855197461447346798742722678988968831806706895441432414758214376177050457826661899421418614970219925180344047298830909006621028903469817209150542326315406831548830632066808944786826259061783193689662029229714469788550378087709693287727030716208297025373219606222052115235409213521109434430895401459340753905158795182538863561874206190631470585812087243970934477024427948198449854502680015771537434183764244249770344919234063096959963186061983323627522450444919759544187572606025040483017130914998965185636031615332726638485190669240739371274874705339381182251352999794820717841940626343870271738837859732108040702033632740286461212839827136241643230935984740308939394656948257060989172168057327696094455538384646462661089800084541275859159863535581177548307235452189873613662947139065532809748226576289859065789735759041744378629183284377989401103664627026074679489370607300232037095587941759036654886478879379359509806794403203649645099577828713046067369631404965956035956823555223789928006722428902681354982724954600009827764604633021903478823214324819118343017384952457488047610867378288186996857261417801317756051867250671968606180531463400485067261391784483221953688969069172332192539499221163859468839757801000369066600266855971104863973652910856857801363531854490953320978633586980606719403299611195465740049231882324602498317219834217050827129664757786618669178284285552344058629278903029573407628801406489232161551546732817371445690804222821453560243427202682583099462868160919969939935659081203891668854075684964705983217538142747412462204231057988925709432764428381092391266049687008609018679031062845524079075313364359756080963801107558245127450447642176148919446088749304449939580286308463744076861070441835845720472435734068208404517136121366916430980833172510833124338670251230526747067166889318503900428175597252103155188786934811949477676755366447868839826106293910402970938571251830938528242429016005919472527773144270204678328435708610442982192911234931456382433489913173070004388656334840894237455028741129657264000949119615611474255386638872173656673575824477730848139159996460802225236344820172279681426037433398662613970546206115021936642030767014494924787255273032045719109698579580459329437709237906548219194095441208341071083802531262842039205775801393262540117941131111286634052948794390141467987443597625473203549165235944750761080412178660890615198341418080786448911214634306051735618767449967505637680608116399701484852060375722573574481283917087392876191676506577224261309165017962317249268457373561667539684041612115329143015960240965086926076296334528724802255054931304094095231341460254444829054469835688157518770050043557512883077810574733299406159087590450329474596157380246183054282872396683667310473429315394343321089885626893903703401924776125098079805938170695268350490830603805898760600603957234414938947631789703455377321867703505117132524197854784263193177654569832391510548380168318734495779437920533902691934446495459696381703452080238816502947571504919917266495711649527419599980629329980927991520721736355018122435234389211899914447544382053904784865070639276946702883598991160006658475246392994152069526735217825105714159118960066646337619353105889028148157425746324072324990993245223577231275472368048371055458938764040074850360806266359502534108425261359012901828186801309338905172540802581496136236677543205160679537431013001483612903610878689791685491092681399169320125883377029207975530176645048400811092416360195595260566953759821694286953765185657891059722770420874669089451222568630039955429894476152409325508377536559032248069858439726765748402734903138373589687462124924524587767721089814087291881733770561918850245602247698175652976419437389397755245676475345508558569753144349422559705295761843519914043995741014167140354930510169647681443561660644252367472247826058195323020311395688886074322662509523250190162340409711234450580849982553741465600309266219753536925630136233795590566379285138140989159839150748583990633286704553350844535089340439812820647975319508498144319026437371343478272955646434316162829124009762783674229055648260687880402913549382984192543533923671832997592243507901839670132749031359980413273074401503242143478678880843347756750027243836033116150585523022908563724996502589830955284792928919537707552244786489346341901533507642927348752002386157723842626293981524103536254189340096712443671091509746349173185535331717758426105735883857439282669026381277172117571564836400129952781207037419899387011170556979834236292274728478401139890384020223835134578139099338674877398109132624800882382575346055942473012222126846027782130132792315966080889111401485437230680446678566553852888603231604354896422331802771090105101129893333013608430365082825155044706937131580294433569533666186212286659485290709311218813044323803676709077165311283230999109296734574064108581408686461299693080563376791341386401863650044203776331215377670511159972353896544861017101522625618412281476896153273153517816271968311931374043036410104522789079497583420850941230750483835291964720047152952729668019350041496067510407210881988195340334419658546163548557816543250904862469663831676159545510593473710206386021591182343727962225176540397377287598306277930842761570426139296365670213375174409252951849535605553170849298408390603219453112810953617091525902505645102977488115006367862759822094587653173140050558343761183384977342275405858662830472884455349872782947416083824183179082631978200473831407532228620244774948548499995063719396621577800784926084375666280980091642053519194751551076865457470232975322964946641063931941422196298290340621320544888172863417993849388764760442092201192867733188044552429904102767072404706409652537830804518224979855707667969176176114075492838251439519526547954684590528997950088184842934966508177147796421995756023523504144533169028521256737181205916916256005559148267738916333464575525480337746185973861433502453821800094390042749142618409358381934745478665212868599545627393291644084592583137250757053995239850768577817929239740928416030738635957145619355662286062601534612818663555116310560627639390125198284268357922597080979166762119508475821893349060866128518189270927606993588003110942346945101393284696272644937441141951157256456154652692962330560952976940561885617064036068487948366461233390241235284136026415226389553147721741630772449783608090766931365679376199031097961426627341344450844021886148708029100322181986210924939256220975558788554952989117310129777994840324672590588503080839303132507862234462735889557780493230425896897835509696236626843692216877227356910480398425023860860637269071030898333277568030630429081765197176286538220126823124080750733914678424746033729953916547506682130069711355664699500929518977159593146950149157576266262518963627945977539520007407234276639655971447831049478303568638557613400019194663423084733295393875769521684169579365095912123588243135358956713122555115931901315388696807994247657276117649079662886181552736108012234716135393954426453723904369082527712042044299569544293444916633992340747020358992421111373691309628379197543652223684462203501645954142404540326114596643048980014060771865095771004663498266899747804020138044635499538696362845937415789294855400522405022665994429100277576740338659444834977550657601672359803640201104740183202730989229965672471058640109883549711835399578322854470258631748700676919712123052798742135671854804323831396583542847126018368190303281930548394641495317475436976684378766770560039949335609385443917428177243218513316863466187773206949924476074344141319485706420539918332130901907321204755411474192184291236465612957707158266581157817908745792718364802189441071253095075102182098949587657425438126777090595351939321231166023786104875397873443674877130317093084673955481320379329161413073285952505123406687890009317119596789484957731574290048470616622998564785079110213477343502731446001704073778756332111589431336267233717875556157780545138742768117436592401235531903832216087328521931680848871958566467720431062615102645386733267480490318566475665270221536241517564269632096725812770251004255730962237935354921675980135599093397615319117253097090052669717833687969646115567510953058983101863114097240963592294734793436274630854597809036906062442145988746230312874178772315955817532318659573097409687021914600850492115645300579562175633995253060230014198725692967820773434128541671041115935875777330385536894690524692850196188708913302591860082087105385473870171507978542316082007598403231890618010372947637732381452353015131774648156410316030972744383671264224380581415019637469647951714894088243096233411817774786642364194499640507773267419014267226997041098527776353971335201845596088849103657349669745723012428994011895876400845471545480119206002435561295853410990563723141711239751008579248329931063126142372853425830437191637502764896460029990616941384807109521459332974555154874606277505220996156855951748856331259549443766145548860505374547072680082711624028407428518725732785856845631254223488501597783826796028513529303746185984560338374065708259335511508929825402750085812851048196627669072505642165245586149559875014806730120334649238822426130804994294481016110369296049869331177773730447106023828627731689497060455390617773258226975942827754992715414692638697220316802982235603587297849798941332400178902735774301080633121620167768883282676482820105651038527128328996195542886347763717232549309793764617233445161445844629257872197954250224115959604692962979467343887385438788435924117242472260917900804566878367988167538215588364045007854492229018221564275970732778127228068588861601715639170102559276971231627337715034852639463723713342287379964341091843597641848083463191358142140271647020193426934080526509558851251122761685564229834109494417892104784036897975587515059932816814868156643321677815381313400948635654043816332838422428408795449667646086234866270193028751001373304118856404234419689038227583776012014241647460303282616717127199628527618703844403148251023634965494875914341013982909651661231583785785711438481842338053853297990516144282872259052442503414795216856411949514960425120430330134511314637961949914425231146535875838054503896484276994950776228290101378674509238281865499949889694322694259730344207617246170411577319102605279420363837175045407179497912656213859745125116968333136626865729151758315498384885462038521693769747538145554750107283982661549720328608932571786131695567559243678911977942447865530902959694890904023778276971996140142563510706508008692706678517505434696270934051281064829105215430049968951777836364750934995532118250401747884044817135699301893268112572758330722754650118032696060231474665723583503238591125149188748035430599903805494677579914785114636126295661968754219729226959091038988532107494858021330452037491746171877349257720152321670324732693066268716845885661783714906182833333542725226596564657387511476464429145998356870990835931507417678443708492310116635701889521739339931091888658839958516538492271374870531255448973221475404245648837246352689181359906070535800197528741523605633429267073220114494404326440087726401572555196749188578302420643979366965617155951544245273678287279409232879478426123530259985965124043719426753433390835581013819115252483438723217799469431102348284261132786533942605775893131563641774542919786163985810219419149092682568139880445525933622649220490455358836399753673469489344121445216166198743526394120532963304557188783851071286295554914664521668613876456596668059681653013472729384329485761056307532049669491608998542948837791072876076501448328784674969494052603154796027845011893239784331645961069050124639624608836085127608983457480211736647402411683238674647843669506357863538113112565712257196138622088860892833657582269312532389957232759494319913895502299346730075943912532128896076091983644721985219684515729598385962601370715852542481125759690842812824300786333672596606823804026441597537788320414276742759299206777685412300524492541700726324427235565621705112129673506053416997450446264064498740872447401385401200548927329482824723501152258344369420287137342923622804489097471263867710716122723067579731077930313079396251636811149145622785538340997627046153515222828632181104688998262841064364148937928836526859196672263206510004512646768232871703214448050883457697353823974599088595954724252094279734072344620405178595582312446502357961627644160259839381627979521090234474233377884127134164816713715050314732689464569634568262556368780494617337261736651091251459419058175170190321195406038106406153877907056730348105593401650718654774116757601994411251655150265487330784409027818737341937555761057258699091874686732390422287364017318949745259765703768160039822126256888988006619704674361176053068208920617361288587512680699631467341750378200831456180578725433287931815450170742718370359883354776973008690220857993002249510395758063609288534482361317076044594505952586205618406731032942583841558685413067792491287204539537258666655369974157961296959892629396533430322475050100445779164154145270888653096469511113999902899872075871682922571118408891799229856042159007647872661756648578290958532989640614514394044428077739096710035438079824406900428767870467104455741414412115396395313856755354403859863879631512686999146344884614841779456430794694702858186737866806957560050894179843306981847033467465105531014854220062205336322453279560058709623532084343051212706617057380128859885640323750328077237277665338868385237721308437334009170669274144205505949261366449885944851587084212505537484720442957647119649940797792860551264927956397414995367078765695083304031560128226872232867321624656258627689153242235018810219176289749594563353422423638011906090924775052760321107580166305687378155005298055750105581440740278910207320314770896429210855202872444788817609517660658123206481486447231764138152493622837220524398501611466778762986047295785160077418613412794781475208267190711709200809731410935107461297795992717513313095759275698772568381951730407265421347692640167215788724917235901304076373464030669203753187314245507837660631138724470838377383557699274591507045593770432289077843142613287380856050194736973331443506335533465284180518386358619951263211375082183931631632942356723008125227481199403264933631922637675173958653875390850860684524559934319364094457416088891250198527273111016992496838043894869836418479866157813160174361332976967478301474427558342437718671838824553494795279837919813712833007227369513041374181576365014258309648256514237482557405907574459729401102304330339930813367798559691224533763515447883460209451447484854821825535283106730647086904877522105878381563833938917467036408173361326064768072151056426489197861756782453743285206970896349402544761817745021545179001851836762831075010072472259885433380883962330095925583454678100154157647758467276444480380429580647518233866415364934787846261191826722195384216886566276667093602428345854833904040223280195139851296305373059022692131847477122735012954605686122222840081453491400269781621238201260205323812437798060520024915963949867911346161349474660117526450577875522742245288115127330044184189830467266418086133720081407835816510356783804586336060702320958857512461124748866064784149369158064426222987805765283190407343960785292137172656617124212038818947815363498886685834579225071892730585723345488493360771257818499845359377785501721454429888503265211945674698687987271158519245185165612904997760045079614982951341567495688119902005377165482927942890487027181607763623064259365777402068644446035613346339898701217834212288570334023902184733886153643875390121481648743245855259471202691168194556222505433843682844904683874461388207111424268611854041611550492765506221050396109282687979830000836797283738689239204781103529715208566879857146751385709069502530477602416442580109588548346788945098339418614581092812153372738930481115473543801602488360953077446398454766160083402807647980685884728638235576787025072386641586009931187693829254192239961661042182477371889633278391703551248484157045996198644779316221615946029996495862158159255676139631509949371444384615346170255809589932933782573323301144838013111248621225854957653957201855660188117457244901120420309905724373761592923855235388181350602215281295010829374956203939074490124449711295572408474800504659416395757950175796714685587487096833108132715533160470117496740364961133270727972788941016831983352727303091362681237507606687124121795069117970147775242581852442578346030938085778898644576040533319335358537979471178907305225126018171864591369350537679393744950051943890265404962948634587532798343307345184364304569569517959021903354097254859361655372509686671683069416139030365578319388413459543846523835052916191978633822724437269162008549999213794286335672982957223820089544035027238876931788213502067333526632287548125088086447698354576361965938490749452216568730692458344074784798889386681758496130042654292588502695152577723623221658490926173835038793220822217573712970709110515173779958159942216667719000318691134553824364155271891605555414694230887833634145629685310494007007169323371013185155313316176050494593893286222989592391960257232073782421931573252439440698360546968740846533857050614921191768997439974439188544126649883381971210136150096383240750490940833215226721456004604322421235936803697957104299257772308536624721203511095257296212351070559089675840257123295230342304874879721897265863399532664898887081782386736122610801446307152060081356957471654118949871321666462624874181382941052523563225440067957036658595307440776554518275147441088778033098176657642272742149702347439357926255088175818096856428735917510582974765457720216139682767378636070803044730349487728876685155996002368764399609264241550142230174257672880958675792640517159231097541819557766446091254419641102896597960635963019321901032648250184155484790913986734453411711825200128327858296071039088784687290412935738638555463489752302033360875505951083027999561087256181478887801462474535663050366832341891251581114904276416584981825278553027169979816017793802137569449215933393489632761851618077566392659769227100686710290306358710027055221843442450492293169115055843076577496984085754947559660980941620364132198965577277214638249152360617615838690446472597580258638431472288434266338813600313635107500783562963251127726362232091327007723183019939891614070941200941694228834079798158001267457035752624817624406759214370294975699275141321829039562960586058084517422274343347866652564255553305464241130678792618723150216215293725050311789089710618554634205920915414516810674192035049373272021444160247437164260445452572401262137209033096492096116304682545610734470711909170486510225604782365110885469461032934040027984023806368123674646604122911742593287736976253404336503101238099199264084908733076597673942497895174292285537403610634397701160709179586571179967899278950662104872376243786545078141196325357009768141263517714475431584929397111808392254035634552785476866968686799066951269912322700887859214502455863272096273690298097825358129622133678020446227946066218858004230823018033000842348084643001088787477557810918627763395316008106346988864388458655471024058158010826287643809321301429021903387061741927543385843683527480526277788387352007698682519151964144512382797376952067019511283764095846667367399744784566997535523239354799792437971435821878272054549752034175409438857740396731655403132360669753724647082545555627329530832240095935194344052699940673069652330120704909265987668817784008314025247467592987602867787884638759715371478281252054105365121303628669922568771420948902792169135310494178998642161492889292360503275036212423730176926271964186826466337959716757192234872196500933750130129829047896266446728070709869453264199699092009624513923940771575439762273675753050559559068067593593328745633595999873561814002858004862104288867308146867864762466801473546760125896564081929975235367130967451773164668598629551780310166709500108933164639407358168574007166267611536725218120178062763996296867978424432062616483579073388448953709638558571997388906123556934580068234598233998111489339451432447070077180325985775508035098241708385876287961628577807983627190205796291779694461749180822086119722311008907628115421432155395392923558237821937345866198148418332121331757439343478806087739368978852770373593866769268460613704952837001488899517736133000485220852888809085868674939518037832094437805926493673698308972768012883756498407688225629531057027445931133798489497270594979458613977506392380402285730971184770270992939813770335335014860768834924196193403593520028692450932998912090555243505903061263314597006344675414057797666590178990784156740614432052949911218982290427060574582208730323312728008623152617877317847230465772040428595353099014261398651277433901306237069519810666958273020460339440604671107684147895905890362189077697679555760167114800917250264605927971885358732713423707401647361099187745153548162662344139549938840724534851362503981792717695547968935650985295949975337130194904626197710895781478777453023960250624370490550408550060319353821623795366641747958067590243177949368292412529886129518917761173271921743899456650323582878400579355214319747545009702699948482430799100434005623691193749927944621348413821064220330557034669385665251242599758697647049464090940966891273356120460271379949966896294333561157812006611047013494423999257932016249708049893410410566100464561194523181964001574995144282738872488202710231851723134989503976016576887864931765501338877463088266466759505709510474204226804131815617296160985070798301983716472345457055937221315025316879554415362942983201501326611421192249667130371066536062852367447497570672936747588777946852231239184806714809940997730471500199383174989283660925593044973063053440089356525511251298767549166258299223437058096725621252867862260085736644331252640435470096478681912784630597167876017120367085555473737406061456002190721495335723612352425937801846130539293106969938824065433652605266476029883889462832914758672575486737478202734130093499951445433331129195844482605598512918281051474856401637765135760990907350416929423283608244056934442984777234571103330681527451921803315161878430994523206501033188002318943497838498379292446834549740393199606017794796192754103268135911761783504084051349065444029543621300035729646556950343629713258142585316331941008732342090742442740630302774308382673421176493600493895047096492722495640820172485461119237259725282442715600443690494119601398062731630731990753078242562656579030866869612317678365947356647170481589839626924046843190545507483094977226931053126366047501352721044353970506348050287833278404308087647786103191278819475176282995053432178176707202557602818736685610505962190184515266051411408056483425282133019127072311467729341014804488315961186845710973839503577124075379174128831657975464587385336788705733778891397119697454101214374311474120696206902825917557739976849409708224096348487974693282105827898605035684230081608232005687386515068500126318879734390534220556557530092091639057109040530749965484670939348498259381161960046190615990503002923250764951604414140791738802511080321334028082315408529446184448226006512605864771234734890696993710486629957367088819776209411063851015173240487316623204140796253408382633971868431142440668266173982321652898691068517780860665531002287282335913946388641935711020782492756578117350585477549506714935864460273200227297153232271221213971236273102264814937376418788411299442955809578425334866639582432614622645475107924440142110857128683286520735906831821717650806604851688800919933698414293966061696801331623872989075306600777543644033520626568585391975251544321170560818519538807560039274117914661017544863660643689464287506879060276231747712075479872788765576773700706183058981987179654416626976136568321279906213430126352372211884414811436120761343937380846797115646960735381304294210313316073656853918656076728957733322070499193743145498694132355460479190038168637433765736439865454148983175786447423509086525274855679937925410336332188119333423685544393753559892592706192350959811592723161619745678286109673112466530763153901365116939502780716245155692255819755979479104283734416421548267042573763285523023405318873520888169962735660184620464169968131552857122627222553165168868471866949270293291242176858749509562635400687638635893936809701057914897516753296053568231136906519432813137683720401647031153565238602750495850903911802980867374976843729090858040809494335769168680814376229558648733332635556593969133517014802366585756384335753940043640709379700792328988406184157505549751280185206044691829969391749897684181125759898269348100417094368623885352294572463035171973753174952894538037720358414917676710802443650110892480194218208255265406968792396763878555431464481023485499050423865348049534761870988399467386258974633535653988098425451088045724870818148380191318372825109534528468959588071093080220836502752282605199233013243444616146666830138326225206906159529447346913552471378327049843916440759783898254421442511988607729952663752573437580803313013657200274312640646355030275851384336470173685933818615781346914124383421374946072769458772532344905256419419930189078172566745297823646479883905826105290404909619220833282887372431829460838399307767587383752886528760532494634079395150521467308145383049291529233737870487445846084283310210934723973386838627562441159767203536125113079158047096740348610449228232807930801538004976674936761990702261554569436753858209215857509058920628824327644561770295262221744438172922347140880589453676427956653643043893729272574579223093911308851052401961827164244613600563612267546652969171505411247152423857363167542297358284775658593807884262282918329647387341972987342109844719549620280041135876392500818726906773408933520844956742888560281955564007743281806733688386198600131513920298016618912312219495761555141013742130665561043845064685834370651686336751967156794697778962373979757308377929602115659627811166041949098416951234559471634933002304383937936135256134529299903718771940619702051343238320213548349569584627807001468640660075641615199365991042180049945825896995799615017380539763481611007822191934566895998476939076844346418993275055529074048443499831942584432557495686919336356478050486136766761898046176115208434893938597270806526851280046930933223421405988125765573690930495653644344926933305577205449911747096529356122333634406099291362207332428703365306310190999274894428470010177966236992799803912597302510514329847414660279378639790733093452767538479014466712376945943727424018145451052585788977228810405242088265669372396779521024060302389777521403564624938209441087449367627684088409183041379859713336027933241719176992025021519442492937335300481839098716561138959280430077210351827537535972323241295746157408627049273275447519548876017290812134326462776227850010880862818816485314782361801986982923946518847523397479103050645505999971808041585997847527439652902204855492542326177886663867380979662310949477788863759795546372236927571933712930690446457412356444602028954973161072165169213783477503387598399613298211771312409077036341323893749165991296824950716203021751921231663729059924232051986653434054951922432154237020276060825894840972537772158005534815592933922573415869780853024259410824986517707334454305599910728818891242773312037709351698113164463208250586942534296691242105289318617849108416120202434159319950422562915959201793857593403695314216157830038247918516347470106409540923771306615538489373309199172942511041697964786002330334559317275140543563750281448422235692610487540895338373585611911698331368447604834292831199759028006102572292738579764756105415129491365191048640331336144741688842503259973175455185844519649730813559321268742812878048210739140418086171926170694856826337617586675171214121919937212811660526558189921667170804951877631242876735472729556874492610695663518082737445507409172066405717521610707665740848369211035415080660447753582445950960070555233571134471990814160136291213794619962697141634218165546996572753045781934347568238509094814094099822530098281896797150032558152028340296036615072076793240315220303570300412260734592603000510715598986999957003413602326251087504046124816276688554615925290169114078646566672546075606106154504811571044487367395127089795016752843882930563697160931248002315092578991616545872912476639148281603217748382822774616324111136206880084290171718907960445620501770916017966154660299057228504578490802683243678679579256352917958914014356255081633123796064249994157936673273501226026016214627427460274744394631715317848567598627198980525901368628521323965177181197347541469823801358532910977759433616489102560919664664232356232799299918981067051206721709580371952992333843645233046241027326205197553709273661955357749778012165744700390463544958519575780597507544811149830114799388471770190632418813818713406542886727968580746922289680604378896000403529503664430503253506116268252713007773919608092289330007241196913856319301736689336063689512969645044196793524035539914046613713417166272557240874824982940020097397516321339044762127561749483627884808751553926233000717416821371442414023460248032628991464643499873861336368621210043964226083892495203329880566722995280139165551702807088729655196694694528805440350491667859815603958082919572415097315976395141942868359138818983821674662583723565480021802249929856280927497847510655655037954370742382590161279712168926693751340735021964774401824230093025603084862953886522686016076995584235927418446243449097807756634120401572868474668142775316798844155285605811368846427676997019548748038223481317227568409481606881996918406178018705332591157635456616814060555965125956029742321909360810353844379515515806561369632844729990928420078109044564953639346114043014174829683140285461369577034058312173675847047976037237207304922277397596506880026279907633233697405819335542005892138937565513053823116439227566582302866427021354512126071645306970632405416049102086595413190372388231351830011612491851098798846415759096992868898363508574136516141243853281961897208316210569880059947702263598080406967643466835642875651680244999461080048367833207100156507340623532662783888548142131350996565739859527060799171324822764257811604704077477106972332855463586604379693689875877667158398321727604854846539799347693571261016484981022015982013820401061212099550666111255077453739991553860735774307422934392184657023435560092831848601942843796163561298236893793393252751775327854907096021474151061907836126328234931824296505942989735372674339861903288847836619370501483490868021093926059027276927776185969861696341521400272367054138777616287179975010871784910783550906864908617188221131433918579938372577909140264590922944681887568664715834928582001759173535672445011656945406790144142753100397912203301717941223185595883934120817821640068746815331576495196227950027890321219511168266105691472747081215197197471268554613477894670712935352497916621379723193851574595691652043449863920553311187689907437931064754190980653404089020900540577864774390633449522462885874773115003704437682809220614625011193805263428744906310767089563631800321999822136164652958476126151369878567732930792989847560109411083646730397739226848957000707373303917454785876697204596098012919969437881068108958889488334048272434986412156548745295591671947262692640096770452134021435610102005436875723625247462646674744207882844336469585940925749118448046541093617466096830457495295348669799959646423607066335899140517499270723319241043000550615881275275975389856924975481793319779256429983503262992018248348951700144480263672949264528800078662549645949796680577112109827645810522017578130685938148501696517553942228462510563652732511251900935949153412677323588771070805130319972843320238961555168636626616803898501324992637590923086063225305176881759459121788719264199981170688514063271600598411357250407095303573139514131597126752253674807352607412227160769974397215681518764650264138872181820485808508005204409408768678083734641619235713046642309100619783536343327852409964565332725979344457778846507137182015350022974005124788295812639596441742697823748097886721537304261499537910284577453811890545740331459558363837335171126267090592246426610623149049904296902800269062075805094295161037020932350321503173172091613438433174667665912929000658844357061597103672042294016102313409041785436261246902907157482750229861880921270845145547512279079298985377355208313448706830872830583495107556996609096734014442805450800047826907129430184847520958672556640309868524908731668567358018444157813247958029082766113729815382773944983616456698291459332762706882878410459693956983059690545331203587262869057650645096082224171184355995909042888809190472321607485436824826476194879233247554830735405517339882150644534337047214938326306765708782139043274280988942212664913456491525064828595502749907192078526958698539328964761011085571266907961727863286733349866316677035305729331378081836926097375207603770099436724416061368390563396852813649137019622801756569426851079566515847898679853792921692161549614997548874442434348093489319857336112209106127703869450597631723760875656621192084987176092976073972189911634910461281868697497649141752434175488472741405988228496463317140011268583655322925044179153125984249930753461136433926618783114974288618930207482241899005307031698956375061297254215175235849780751556617858502383389263911855089006659055612037400508146432427160117643864100322196338242320572995090571530613450750732819141692343836068089015209511232423789415197490557838126031633691976854156479508295798693641925476176332580911137637747063596817148316412040637792777458818578222505218474399811152002909050433194000407858016554153858953889375871987217919842664601633234679380383440165923821197129333529786406755338603569807604610980006333828015654432243067489924388532646668190173895793947477227420795380736208016842485524650576778466785605487884756931552149871488378749843814089854232378084586033074568934789411077439510903330931485222373510493594462322052413741669593729421874343165460158704061963987499527587237100987611993414531095860311734003004191612802973258994650959293707877139244946335873663852822171077330901772950603426485645859904096089802921833093921798932584022226691055798893302777336070012738679991542833682033350342138613987128524444339099058637969006888733977027615099547164967276228967649909361749228714593671971817734176843784945768519616733323060160249929534682299129460150182804969138394615649816443079339531555456680730946822043101106542483587348136885555738810928278504733383139843353055346197078060295059983781865039058597908602711089363006372371017436390858802735554416340054859003568718338060447789902253032742863032477715828488906256802706322570601243498762646012145256764645141943768095902688746699287251182176442260898217363393913285889607907298754184990160484063847579680212664684365947393535872147325791781648673181235199770088753045120706613841463505131113318397305533087179300718669806669217276995474887848760708862339446413606587936377485880916437495792815363087904140048165735912170961445160229418271898445274225495382074718979705390174611593990009415482518549216250036745788133344700872470325811611982894699498345375990377634120786835753542521195777284080848005933356352217460166165504607732031846117826534697599223090943591485901552980302993705883472581290154407492658367175506472210946159993130378979902684162305738783330944400740871930933605412328540725258890003273902035739612939863715789387863562380976215646221267963732588925226772163845175667891437806428734688411195209546874243944115813240433508399277166662732690791636843303913768724608640373842241271742333706586030271358033707825709612308923139635978227549577598026221222155059038853859310930068628091121481987853601624420778172978481756789578150431203783666927198712580968750667835066125933034012156874239785415949878179460407822494692953731955962400909321553745736593055850472702194286715285169750045030864474646900781204272689987272174313105322977157889826635035932392849733616069688075795722950978692984780744923457117663844853996235287812536576022548721746523253406223782519546886800924559368306779556551252433270772852440730007929004504983809615362624136110193701884001616396955839414582293462606883469723389809928049089545426381680741549258912311878510439566488910370965035029014566303409243380211280573644752705225860472384208869074156611126276220952277435828605818332199338136382025702343564054271318810621553419871394344662594629718211137624013003469411479814978509768874048181023243019946226454487699061542436310887206699252753473483115854230419121725043011128655957220048010209144523325969222784208966908648033425793646820431845494006631025285656167501104440630872881593290655366355240758709992142670408459255957956609304699275168241463889571909457333549416678716542454357287608113127755387983722491460719742435310528803655710097560496369052786017229502593240006187726715987551755800285395718225998688151265116879257904399673389742309851772311234882290221708551668670173773917552994725691291737297450696446335466322918163298143847201040693854739155406529131663805697009105526310291492229128731495853611236934839468850581684288187107274362069141965893309701025661033559360488826389371138793076450505975277534112657638722396472028235905543477278406671174178746523207047307240615447796145313012725340128093040690630407668297292259846435380602396203651512232805089316098745758380373580087970512998383591316060733193270279451858544497850267618423542792052403999139337757831632296975423555714664611224025639607471623878949417231703115151015555935952064835825155564239899182849384520298350724386054001160744450902022892126582490650834591174887852859390731812813002204990002529349002821560660546440565132027560554183007557682557126421339346280586068137529660835023799497692410856622861718747467013404792661978274447251484913526610045450249117479891214268176501508460670672741278113074027258178296358848991491328380198294368781012841444944545260917558970689523730483273416907965268012692866130251792285266277388468300878754231374663580509181893163600277493732757481702986389171909059440413192463818260409866309446116470129420127688189764891259820812939323841505045627878790639643950115237361989627434642226134181241217918425158639964597853173970288206067410035191061414994482068848473427040255931597550856994410275260183606780034893592166042733570597807620912050088220409922591470369717549868562519399713798672310248008656820401180734599374610938479489612906802311989448107114917557039189385712391538099557694026823408390587490830010893264822944930110844112319752316350408122002146084693014368972041618850849866717350678255881145803792969141832658740703910421648334395770215282209061142281582718893733691204041018494808050982383365735798767744979413765309118522005748821166790330613906101386663832134742652475140646435514381231742935365410193808281016971851212399601065495881817107404205228681370011298162526023901392529346303446146196670121488592208968961335430241340382875702085458318174981888345669570151490453443552330707690026528454710930008283727495844792428149321177161225705836943065245408698368912513363815669676116810847878761317491644768012365443229264787424735558955345669403774920157386089306974067448349430911681024043990069365838753495002122082856788605018712883600494780861004663559418858265879744120699687986055010668979135904062333555215521774031016988586296968232401397125093062243070723698109489390964917197343679891549031861139766597014242815452939168362789902079934589027606450621293324365979703257009774627007633035006558442819791019067802230376773122268058257057532772420705143589133402992687620017722805325380981281328926556742792940828949777646088145769170342867160738935559874435319719073143418733946371415113670453758396657121867818404603950760098752129403866956143396347272598450720768098923590616238751542680138187382025112710498475438531049119671612582349698367036278504923615791207836674334812615810640053126534163263749634723132688621175181379322108433463603125265701108998767030739775759009716771490480467864329473579072820012717014446075778643467042827958278649031068458715204507242740809983085401758984640628032776023502774975499070547914901126145238887443180650686011478428356920354537905995418916655051399517449421816180020254348920059958303303679995237233460187707653231408840782990869980222974719041483349838760825013005608533979927526313051748540880394496333468431482299091698346542927355507689796487428861060571071227414916567325286132904769880720424506829270675618993203477558750135218457445034291540641512275335442302214831330746798754819020485720350924196056165333592428754136242985420437885248102147165126961098647602182003080968653090890707307122348747838912269594064436097874649203701252619113340700255288403257198383918501584800773585565396506006785068869457958951871149957214529734248347419975061459480696143143006962725103096949804119181046640011864791279745948037625496385745357836899065567466837065609080754076940220452726004589258372801847837945482910352337187637731066798068042382134217676050634706210370315713133121836319089252838757971061834332401930281335652031292423715992919281193374209124725166581816897440778562090376600227389823941387675003034916641288745551760585012599105575161868724872412185043117482576660700196237760228265380388271668243397308982267809414852913396628454443033828526299865901502819323516747119811970870737075639726766390125148893957354687580821656739904962309132242815749219857538182493102432542431038910350271895664961359913281126070077960950339765823110425315050045175259970375825605235316133281973902957672984603582978063939355511199267433004378393629272348532121466731431173452307167352668109053153200660851512528205361769097160455743787056131543627073577279531559189488028516087312682833040915313127674765457162476889669554412693096153871216396054980260784660564277089012943469727651673001546639750191865931627847841843559316380551524447738706513759739379514046198648390791288514671060106130511064345107498200416565635461303964806056506995340051534880104822194701853348091729495267856497357952870642145707022179191854710364682070026964999867681743863978460726982775488818081991508629588806332172603263875569263650150822783155131998676895580506483876589948806535977958698656643785268764634357305418828262983035113910342079839484023554429339112665719262537004420571480943910737524362614075451319200422259740268097678900313671426349265233935382408303292624994711375870646190894473366297654252801123757709195052451767221087348384740233849318197052490487658845886844283728706029890086738300663958557732558055703045603628641197672610602025110305657425555287738965713882808789223857856580611672963393458012694690958726874338710955018087290398419344666624113692922356117828970183576150127391032883356184378504285177370962029843341975161746861174401735476859184579659891665312504023504770524193755219705127600062004949714542116986600359164652744848170804863382266455148104496283460209717666433883978302130073272488067986435259055215445193739585587458168496346877377135779640746991284743220501615226616553121203907005314624866362991617656955978635603709692556429643400297311524392300699664193750145230592891465093575243540713213507114150815481719755247030278899074137860420802217455995384929046003883471797101081342945176570360454589659589317454160760703814985458742964532801080235523564611202442283340532359497718788836719211082033451728910520740066753813950851161829145999329090512380666385376657870174588867233659629046021202641588672790710067526665696151790832979975558477330883069617447036582487223410144138174116314357059624966550276766255540609545028248027490564323064764890497533525867179912341191769987228230862156458547827532241773718883033207588058718860869908972865917392653296103200808179718680432797600913374875378943372636757596975437588897328589283171123227271098410966667647857659399646739262396449126039981550263655586868675813434645802860805006257915148677536167504796691278047000435923978612254487881649583710273015653657183014536465145713082811263384259323856083448412351892719569325440404361944339865574267952490772397375626061992707722627504187651102505898045890483301390916325450642509207947737286201573527987603646840211893584018299087775661954570604892913131512750158800223938133523074300578554335120167411494188559947624232028289687540199035318411566625521693658434688010234747056822563856325368890307893760160341678429395462724403450632811293777119861007621538514286951392255275808875217620241926184362250838728867573490675652692222088048603500772651715963077693631132177524039025654089448275563163308547747093186485759008239504428216846677107359343088491162631422667394648871848509348368241811007100142550044522010295170215140732243937553152114970339344389088621941619439019058693262349474629151661172236751404988897234428956772646871308257659741853774088452367388279635893935243740223765978700155295144078561532062018794350434455102558249666946957247984183541214956796942858341517097876442115578566079583051556404236581663693500005114729331615372584661885045910344360466604194495030173897443528048280347986434230738027019035769020896930265507115790399503102842760252566004598756573860650819466157936250767485815953251183635314890751502930779760012090948627914404892123489975117939331454008080593452578717135990532435920920532022954504097365299083887877093346523059289530869630719675328195280480242286940217279083132272232286912198299260036010950689116859083347597883284878609013899539756568107240321858972584813102452999429214513953006301920079919956474576741320684643484128061952074081075638140691446179877618221148858167896890011532151732499782505418508620273462909254007691949154036433828974384590538260286292168740935007551743734653978037832118424222325492082752017442077383353764603047180342456713891176237882911200747465651283611443965583184108820952317598436678267317949136770890883284751232436690481401646995678486451609405172302800994134071410739242584659246587465681722632474165734672331678809564691424316095081968607176380552842605169250345286523162352682898840246078145815666167920667572341504419463156374432060816462252252497572755744442147781491443067660223237159740752499136375153777539536461691530478927572848941440849106518337372599753125186918369119320306007907067762870877840954875763658941443079818814715921507115305849429256697573049806807460379627336777898281634491454478224506173596164771696837785730620780514944158157559766918476580776489530339914732909394658179914924947782389250103542386307697727022637807976429242437443691512490543740043027985512574000799921856820446961927704475232006299795116195751830929950190117714392392029406488694479902602386616987404545242566635325349228224318329551144768505698388963392236843862002071698339914468431025755240416417223618159416717135518491172594585838328798005400384076481465322236217504146391127907443141946004855581744940064056512030934600241491733205345185650372323158293378779964518911883804321566161886300924692929783039510830795368799416656778463494738307753668197669704442992603360535135063834247856745482062652414234000452633254805400502509842455027464617297382540811999722859162126487037832763063972985100837517344502280055956763731244336942236678877403778942836523442250325981430012750384817379844039750937141100279285847437079869916420484073476047389242572144941579258124957718503723458006782669672239748431687329557474499437170146670946834648126754580242820682949273725838774884884162231915659368871296491241209352650260515455101904098063690580340535187401512445277002883750456427386815773613175716649681688669904102756496380718598718820404782619771145907585372579199595232779285596478819588283842015636166378506162533703681872431433342600792112406408240902862738357805781764075267011743413268608674297978366534723491915159366400416638014884845717004083945584347023699870620732696619105345473953270899572213621387875036604188648285420027488292202911500463399463565201731662147801062008136251623284056391000051024599770684909977382587239801068465200854013486248818261053466674709987489786247330839097544744051362163214097138565765059387497557876229989045227435846161225088361355921272924785950462069016632277418961833015594265061510537402145102508603473902901712432464685173452695829320785005765669726441238989663273830885152501398461379092135512471205337344311036295924015957307433300781184130841492417019850078321862327332248481952408232963820890553815295209997394714979245637858306475793638477090251215008447508493433424538769665296981728691112727613988806728597158389190084383349462407134856877537991559572613081817446662824731358967165052890969713082292544230233072647916027547516461070712441715877982908416781054977021501345308551833238400556696533367800012626435486819324613132702153658734908025049532592505160827161591169469709184452538961175930742470376039695115876901787418283745331091720818026319099000343033298057611911882302107128165075859108015850727764740646924582490263687765391838064806848942384085591669716555246945754915194139017226636543815387580965487250498686633257223119059256229027701353198515483186258316276340602024569508024080461357067253852923082068681906203368268256461402254510231649731085847648346503604746907991185824075691372900607313001712626706432170026803672982706652229292160793268271111264813041066755295473081027792957089040640434379477895437273225470536414269454803014254482098346784387679161243104217929226239226351626818699412201982199603218519307532073359946179377309753017070821616515001339428649011641853073146262948971751695259609318560279977886371158556255619933368371955209690674725720890733261754174581726414988769049100373663129803798059798013411692843913576522003339248979539358953082241553615652868684556440378193157546740528148887332032250642318307915558270491472948879243493012574994198643749919069607915216593203120509204583413204615086376547376020780106085841285675018811845959202103948391008199080182212987183229378312555453530302090817155908073342271185746959753613593546288937631816963338168723728359715517537714365700199863818274571725468514620997650097458129205104145785156742882926734057719894955761225925546902547578405704065327911163480516938286070348009256308439781825396121255373697272141324451903192739149269984724309379331268624188331407379872904332481343375277558489351872674135148108690552328897171352029824140346642024047958751026301096390801135944598921742060439143589768239031286681860959289182568542171857046612286720127166587092957559922024005575283414866573123728332815180344987946486685433533164797599542378905524916663888916926901832218171598458394536312476009306301381355841442033983080378694820155820489589162131892952014710162341815914173890527103502748826461228571663100200938745588493518847207413985562631921111734801932983321535618654756994219194228491014698783954778633273150047416701611567776520889937714583026430986698827550454738010552446911111556760850702990061866484810083347799374364101377524150119077344640867960478961788229630833194291675930651983370448608197088879285823950108551057648203598972789624890936640022405399645191111065850524115700373855188640584178225464858532641565058209614787497521426994333508322873397332816686210965337020219408952630293275069556328353240193423944362622559566828671148654612394325649418125451414909096747468328522768243254237650568276680236710047161181175760200349303107332993913826841148331708820999632026774879477127166857238564476553457797124802744700467294099871650425390672633214716048720214974268866933479053803303467382758043089513128776756846519652582890725971818746656110134302055348419764004906577613287349033766272581305218092583504436748974126292062119597413510234696140511131059526895652250516915968575089901216224856037769828409635233589048501063345690348293959666118100344572485295125197409675866868704436938188004282342095139537844511161257002524994938373691104095098165551148801600018724711135336967227647029695556084192127181613726502311058283996463339833807764838339017838769042618750594398904204215837376124150706514443649947837784468119677248499420882384592086195649729756859671882220131043805530165855838449820156167715510906160795794329070882965088752972967672325589454519993247154698326503419112704285079567903596270312004700862661365134417471445838612710540603063633130864905888557301217989807710765872234590249635513323632648701000856367830993929520145809656264063370218784027805575022173241953279126798254631964024085082838040693414697380813277643820243142681947250737972789198974656296148966471787845725853999059356111578055562160437647748128079506188184793537764676715460953624201902797729348613989628123718034513677417112224553902931711666694356798506679263352143378552739921441378255265313776554702435245033369063416003953498004889196568373719479496089932551325676458426994559492595927888893054192649017861326650111050442749609392259893805278927978194572019007161885864903952729762969795764704334499065170539650323127009007533678425517539840909044834835266174317097707698180033747820228562994377653102056799232552401827012612275906984326033939459540909969532643792054563751995977630573878783320030086768222940036475890282543990137593090972092556691327550162527474999416507465960252461420761209719189254960446167702842182395043037913461237202901001366069585575287044555771476840156253250088274061746757295282326206651720894019273014826040306245469837453476493081614601420116395741214041441019410458538199274877692343269243309933272324987596076435527910916921263702521203452753499508885761134486155881906925057812169516380359147273812189834740280189832563951785101385937753735230099105326765651471235921179579593300896455136864186426188092586541168200820724366376596055932685569988425629671256565342233218480965322718178037634302656841361476505394727956891127081316694358276467642276255262233686490602362702907190288498412548224645476121280923832502992072875875209846295554745810802575990433413778914279505194533926627878749834093608296590277644812454920135649684334864000111186830221995428935608048234737126439983669142593812800252833993907523375679725526183813776578954384228152604812155439972536924734367055049893315291726682586518866265959905501319645931029684529085554709136424204479748551642606207362327485425254532942824276252350999161282323971735171021567710596460864699079067056768265398114728552139289191354567649627564104873354980327039350532779257547830542274514907662703129629453626238213863233405884750699976605900278173700253529085764604632534709673729858992182578653181469648775557004707533010906519226325461743067454075688438294190658953023089536525365684722096389136382034352430649408418311422661409151991763080976809079014274720070753383768150228738151046337665165034258288981400042153148229410486047612693862873415938481866552906855051246240659601809779560940821247560136920788164241621650807599524970177825260716208368554825720844222515443390847140302101714471974335353638941377081765045163519826496209619896177799171127443616242985675282141427692386533014281683336118158528702497150419305121814180531234914880147324362211770367381265671856224016056674881245295046691525028160040526056404274654494423820844381649118922787310847407344926373047039809818268120363191277632183066797297845760824919017591374711795522206541435028943044327455205153518709955088979512128348718098613956602094184533774861128936834407328689730275231485870540979592964340596891566650942788978954229389511173991702597898020731738780582442039934299708408830688043468099576120419917875291502324903106411431564472470819528752075103115656751565533016981114045823844359513352452459619087141183536008767927148052925147093098998875869680319675554656507873614337773274069339706255466771477947670245906319882307044493548807037093328026934798782824882506694051129865591529561106629257914217104633035392300968000429563932848664322532108665312992082956313725539496663857359924662239486493217755507071488970861866341308391477567074415496281147009139354295896569609457825767963016894594909968930183048691575307929455591916894983914444592113116525471069591893201800247899405489021708257161917852324812206515891854416866083615612263793388850747391846462839283061855095359681160121916660830164872850973174980853867523797385344284279558435089451027191058870238852309498212561808383066416402761578187018131286969559617531662038158474169975156089759001536827615736178548420934699080213623529958925901524332336767868770632637595911027321665879772896776652729609789198930277177683301632266614952740982072447908093903349730418043114291540119788652441697018133614454567912786977726996700297955834482184446941397609917687793496380169071951460587723140488456243880615587825733195255960202707896020063464631899955391569938684537597886723573005703013897932919363219151823936703809054397236522423231382710026845063288644599975714601373206977925433763686404860825289464070600317611350504635683243520625171636973829542243678110609614114407729372683973940557786252065875903502581904175108321387078247945793699039374802398415940762031700559142064691421134545523359196163670486234375384812896208035989301082510130005583297762027969668941768639453692271299465974465567583670362285405003692892411405161849125824760355933112129005165636611667777950087797428646756320990341174015750765256158970065684954495915274258472234113017948273002396627905560431886403563519332187814923056998153805893880484948298914230162681842963556484829508587788432959980270450114707067912925858453364823970265609030223149812246641420177878870764211127908636144183472693912018473124884242551359012637901124946327717126783808438574045277565658117356654226085264932476144728111428938978546631954138505246857376339818314764115199297659585434905230849130902353006438126777833737554792023311322866297542151285852389036548290734808788934486337792732503623128696002656562142238180838765649994338109646467508620910179966960516478276654174366645919765627468966797020547365025442261450019906302797919556192146477283929583016477785545305340461986907429773519947382501860400727403644674775774524777259535907553203499946897640109808070542903824813896566882421101178693240638216591383493216606784037203567592832083832146271831665285204946140080736210646242073905889467214063966112380947610820558307948637541275198783451512502540946669559102468486668939835417315338884351766040567777867895695545261429277765778384347179392291545018448339407023911571120792675444090236005206186779597798486851538595559937129057443303098454276441318518664590657735457390244368332037148718864792201692415638209089843321868608177252985229983698597226333097469554871210514824319058319317547488255223837422180175422741913045044976101734457820656756296409062967332026906452298529505670102972467135797587384517084968049276459286932170301841372357314059362484797856266319415576726011535442066905619872759281444524067054562611661410690481440634078248312517943925396440676688330115766691333802770978005759377969970313238189832900793167777132111234357740961852900313139532981340154645195829564703900390514531883576461749332513320777504242972544290558110642447551240634011034604978458090167129594377718403059008650678437738812489107677627564799315220867628029700714783327928093921837145765836134933230466491848652695218312609819456788583735965024482823036476333048502057074169877012449365037241410656777410141549904931079087842576070190041926679631529506690217687985997144395387315570063180954623029944472777978161887898601408586181714871298155384133616816102652900811355087848129952830383499892929219119493093930273561682808933862697427407920028664145635820205301775968941225698910049894000595654381509716241794125225173734021863861577204158583579800345375410261539772088128934185790124790944695357962628482933662107910133714705327664613894171748155626575948035048810654135527279704666932743245013647899697096533833075868716309495166758172498462499744164561142412817739335755618224861451407976205193814089243368325907082773353678972361117810565431466355516760982781648477364482197146211470534744783841771930280877510449858548587342470837031602581876020524788978712577524303714483803811392070918718512817480638548330511715509916807082140726005301746365178032685047595452592689718006824437481194619082813023334584608937976029990309886843947384238501247212268442117630005577650475445404897433278031785832086459045668977779767345638151841044163467865096625815573357450394366167296102299494046070426232176244802362213432917991155176507293109244168956061219325748105140971163577989272061560986206059368185793818276570639548556249811629131596787577985975548600511437738866205413190963956556097323859944141625502151945751126580837061105201993804146124010554382781464916735986250306929756280035516628628248633817022125144579814615586243915403016808178685084644800796073581530378171917242713057798377805251302767156484456512724269824891734078400570848306753144827624943658220712652777162921561170399866271633483241372694645275758763189371615795716561609199892331631859500000547747785958507036885062057078481309882219050109485842804767268412324790774709289105606625521953548716880934565248915917721428056368192179583740881980029503722004146384815297705054257785839923287223804595707073275811521285707587283168042890489907129202878827989627176677117683812251957358980818189525536677898803007629851989937160708725593146398111803569713504400205164041158294091735242300044642472995381660075972036217916544220441660785876942195972021613328201329965043524653747001980665355721876074725708428330449737597191886478548846743854858727079456980376081884717377480911721563777219796955999946793037611828822893551677860788903568540966047836726995654950871665533427372284875689746196772951895072104610319159272995340473342013658597153975534463604587796535392897554484253408789283210289375460237734981201478550631070072042655014583586062766532120632429327189021753271083938991538125883829561526246624296476900188695576059555381583631921746776123612337229107871272994169052570372796852762428447123891111891816080162408579517553738543606108884268871456853553291082326589887791497587705099506746069475835684435036495463267777173111899511977029724292959092269484077627434060757234049909192751905352942368894247818733665980688870481301874704768275946207038846045322238781708524900714103183417396970650088826936574825162366207148292551869002399470462354674009265688927117377338341726222062105268542321569848005473503037681164713563867824927100175999793663806145968835313290149921373561993934749327329828248307945915835979385611604064306148328619304885815353834669562512741819116363366339342112321475107586657513999521229330220088739568210397158218949061378288049292114189128763746487717151927605028384535560670015962016322832343235095919786217159092844596237654352826155536511607149187999921406031418018709806590019075578235658214187594384262490136756039145496337833102315586757983582644187633808020375613378963699585611291716356265216276881452234014713211110054937126098002524780500641880281216839819429990332450354305755653391962650594494911068063030370974965654724088519579687740237490604166252747505450113303871685339964714313847990339832568452948189459196314135433071053069381522548385090533757913398252245908484813029912644715894528643229473393930561735465875052056015766918047616612361288138394553447453672242528461593866008500950996061133253927673979585428327851131125768019652301588432533910613370039769079592873646104911658208483226143675162466352368548223431150987939590719340484832130410940001039582636124183486424806767263497150828842595377667945039613592851318164857954074926448280688654583075643909443717414416217427867490148748658160659812932829695875200349142326204741576256226494376870462882068284753496588840658090369295438836888937706034478197552657167677367705926785794892491520558299233190700970862985333243377339876916689035402812994174281045614151171394922979012111359012198332941251648729200335248000755234009220325376977285629205493449086576147583296477112111762652414804598125327866475458470159239237613495566128417483025374265997722097357483834507653648392326046505424087185987351938298836565790986680243198388248738716030210152936638543706290631825427859494528838155060223701798781155917951013083973605728179417344949924269348757759138325526056464903267647005158938923918022319623885952051366913382707714445236985641513624002843202427502781334202384051420099367985708252665870981788454151672776829449832556851489133345243368836443433868576127934000488163878719971206710861899674031782235595475287791528780838511671078504470574178460471773341627008210491051762590294476897060426259168428697883050739838538760704336535619513643424060942952946461018553574333961802668902350204678446969086843906630838910722874469069355774912656139412260740746158620778702143079826411493184691833616935846061298229402387991965596408970748288362270687755990468959164532498009287051967703529755039092250270079147655491980221384630728017353647635501855819003720761412238291610932125658512072727882521166597275962723039712414881940001879934277171259027968365797443101083855793307851033178103075321560277524381856278758594429501034859834126155583498373332728307576358570371147560382360139003114435273118345016167100113885672721365095584982319456815039908868010577460039462525758939983182897265105949488600371402302773702757432492842410177740371524967631916935414977002917443694591238161879117551123732007700279839514230319054110092513255315068536550837061344772879611803700411484736362444876210516094876810341156161537163743830822280179994752454014005398689011504659167519787883293245829563445727817145997574048289127393399637356633258349526915036883191510647344385759868588777851778350850845503350466511312303034928659605040253292137012371777222639968659903393911519381233702429192081760006979838456010510521652829028614787196593341904521051812199147948749604115779745197011978696596612547992656883060910332681027568437018577719130121794015220515962160830141737034479292975755373086337693231662628566087409136235748048088772168939593224803696401905723043615404927215221677687255086841695897604037898134413503836931415341161042579877669980633412552654861307814747164657139359753745320327165140948153268486911819314319342550214006294329122272236503591790095635278272426223299780232809486808387885327254408627940317328975249480825695263709322657753040845686053780913049061632534571744851220773561620594077425217510019058803137770172637159757753388507642956488850892266654037460784842330978857781993891737242145861173332746510099576225324487565660709403972541388097262458304126383929120513878502340297108378517172945322144085886799196679305018258169628481515119947940628011282001245508608144176881881625923813839504629910284926849968197892998839177144307487129469255189811522873641796544719236278373798175348822948939863406123219263139541559215215718511969595194453517930597897245503964800758945075683421053363236554135480793946431780923908236975505956949909191933221277485583135023171693341942656433154238268830048913155644297162740604454791714325004279965771119348202526510678373765355029851724542574884487785087037289026385499583941988738876129476404501532793980806619553824246479040030943055644090884617550621543156031252701596230041651356575038047986855960247798176292213699549508255676877061916178940984783460924766193910625714576835709362652263349066808258031957078438552936379958362811221363067882519713565309889937182317067896459550710074745791199162059432291648542975258264749105570477233226050894035356603648172285895767467771161873223903797605738903947381010235406834533381003743739156513260344117977244160555059689919191769655785392690768914117192213751233590888179412030705082536634761529220485136860058942002368211029685312689457699137576985432595352703300615007092077011159535495657025195932131099084973839138427682077950885220805586314285493649599375845232666566806482358869604898899326100193898938643662912058330475648272488139892767553519163039769298573129819002994424269747922335070338438618345534848673613370793464818438777500533785622857450914079804579367183332899330302892567659603414070213021610291971721532318005067889780863336915388424157589972803787608603935876928404016184069747435219972641215554624602416994377425198949375053441173039730256296273430285329561555437467750952303386026000285719210645240458744742738827714275856562032466401496082054342673373612955117052685899692460481877246452477296925256496320263436158094634044773743657345137604812021792046838341927845376720557938443143549606094863309357184795399743063786241721075082871472560484014215854653846014977056746567736957562854909260769371688422378875248899722396889162745937007269225578281620488111647787228538347321485773904814896311655147117753686378008667364068404625137406591963839482705856400916978794212756598473173269457862930638652349419085174887681264749095629681580107877851832131901425646825620363119530061681989602454367994768310792129489594409806976876044964343481012041006772213615186330807842551719762822899283256311189626749639693014037623816389587541693375620790764832659704087809079585766499436138744391449748302272592089531791560583903133275298626936055846576307066780854622496876608466783331791549825156524239951219115644440989347670443036291733005669538341644065370618508056223256403741874314823487003130372015503709964187376166874952979682837392986705613689968305105957173825953221569583814044562960013408868586155373042841930182031027418124691551975243199916660150978993736154528183308306138364861105966776914612763267882996107815017519717848781374532763432067760820520822599616458961700475828511030447670296345514316007466202711531765056514415395289311334418539297971995802818916831547764896267125414409245401950291087576304415932565593145822696596065910614487909079341290584785054835751925367590572337046522357404445089747174679159664419918313946609086741649211727921806809989881395804613826490660963115519777141461500406898103544747261211101159357906056023015108628403555236818517810007017033628279872018465403254318648469944458944837482248416553226426988952586883723772531667334015126420977808443792043553141067885589123691911157457191440653020837910268911566062583358281209396382482370580895101463452713189830701682279811639199026383225640477467172249906157629875436917069379701760025892069026468047736967958235696051026318374152641871967898986414347837747036909222440391166991726736605876173207723053546876837871343922273534976033136751057406754165455947469017735562009310495830973443127013073579363466713325114309991848383794105103396091449843582770197787502797938120756750545659481874431646343002213151342135131633234279890634647919042723200300592882851264393218529636460337451322281267510394211997320490495721741588914707891507538989473266715418728403881586948915962983342554806017273384854920447431329046432223973296111610873333497731827283718404292192409815878096173294818542222275980268732277721916325578858785260712486773140853476094419406178721153993433243006651432452722976680650863922332462736913236021924919212065860800523783142154227909692518772928068958115441158713806263611634817995080463200417308259471133043444286170103496240908837194380880041173211577450728913931747679222604772024884107261731162629093331401188801402412042121640133419089139835589295214356582906244832161032367105800589728113576167809007306008855209179419587261437691847280988338474916517719350328732562677141111061197494857806037016987505306519293707608543692443055292890662541035173416568004178794796911813966940258462569945502553014619071839528485351348469030763252068309460064420687035942475176214539268345379610152726330266183905510135571705485432090072773693847980396472004416753341262278032521839498755777813836991170231569549953487152418128363002743624848513702141715307222439366659623645878393143822200694450535969234512157468941853062595336077882270451257351569501205687447195624599520076515747289141602133543738236376119465817026004226310692621889416933225058093428859964880400794725293251593556929230103865306054611055196633837418938046707145600574865128987114209781170089594750252941269228461848081322098680402972172391382133510897403547806324745756725125906641379636570566907920878550804063549814376489346115511777097422982671292956077474939292279124830678440500491132697867526592530603407945519811192737614350162160521768485384267908927332257838838852736823283008970191474400807337402102647809165527304246660585270437049477267685777907034577442333756061372040322111501743847130703762263561323745432033436228689136533215266906918499469552232091984975018786381265243227028955373152417935057499261595471571227071118224464473625914655882986279008380993020949301288422012827671602358862475060573055514848332780646197846599832304563953106370361513662536593225540283642007433648518374141216021679191413650573692356000002217346743257557062067449333030309015880312978546435973948450796185467268430222482581181468480258434399475385330094965660455342257533236309515499913092779862423095490817601623074088208513271967715073310650948770309121131624653672150985553988352714216918376613062514741623482732990670454583477291147503508426349122087800523945772531430898329607243795525521603921720030555505830571125562020895452443745317826411571409433024582043124129342851434447177584472280039563853659314710938520751877496547350338785748014164683050038820689381839761897307371271190954807967287566155634050961699257048720129201789106327617638717378986935632736374316995539304954882569059288397067148153570768370361080821385510412297185807700054284227683725469115787412551576677624878998982590120148610733508917609299246750705476735207903662184153881260709602253219646397085163737668802688327654669355450374155235426748985872404564471800719942537403879236263111535150963213276119783945898569365324302490545377919482306823340028714498919981815351946704894746153259587505719409187846540045144845803743875324275791228867964977747311647747227887776230437564061442683741740217867128580936271394004385119046846370061899982512163963406279118970769077303675788486736724931859489399092452194563847570219144994177065140804680557573099913686968837281830090560179531350731746982972857980770551143813496071057913795787232629293327949158659410468879314554383526801117785574102485083721219833789285188374598248732874920658619856817308189777496424863785682035812611643446105573769071950044760066642337513322612211619783303664397228720985004634840608672644718489120668568482039523464306529827205575607538933806848117849457669637122427301208464532260981762424026415925964541251614730264678656880584404610113578789972105982965330953069006028412610804111852340669652879249423804859076029884259992296123443505329159197276031810443148057038273237820454591531678108656174836921159269321059902931876670102379029610768773337485519907927563342027947949811013716136564400971431898042815485828952698299320197397037323847640001229844314544244986176102223321699861782784847901556612076143883485550250026308344702902961008062739578538889954474040499047924715950783772092008893859023817711265812145792519728023708129369181829386946155294821720985004224240359372643220128994876528765173776438790511076062770752974558605262874521194435925535476255893347124593627879392188750223996339762755484151146763368919366179258149470254173250784826321863207280936974155742241668945541221149745841581759969381272212952747327169442385574305051365525879393168743748489001670291777181559560546717186242181574741961473276670354311592665368124404075358579949427941488698555704995165965943173425718386880865013912131798596199340694028161405863547067507376125425950895898361358012724192954004162545243089608014386206883909178246279969503896183601005534214808454707606908303036452932218434663665546224911866958114626860140013444786027116887359256628294750557088120999756620197600492556637972199186807879374107238995636732775331941029702031262149272682232256392861747443138833509119234782247558537614038944747106288117989238418758852108552778504139878520060595708439851602337447304960929613392971959725821046953191175083400129112183048372789876505236598359663206936728348137364124495791236252159807284042673347466550995851813556461775205580013315858287953905203379110246163589270252303988419056874847346862564730920276847348571852866438114655325113346782148470617174712926088233640326555240644488349734022156716571546535517980462143167360809746785300988047629095514974636504811736437731229085472922383413520075492061437535648260164727060025009094322197933438853145841642546755853618539369647919625891613438940499875086933340257338497027704823523999236439605929345583114607950914861355283905599554298128275976332110618457543928220910106488023602280085882865699027333205365044431729964255554578607005955486042004093085542293469070257897533188311222710695302829893327707598206450832308174522673824172377204253269031129291835846125913264786123661891192105337555738708455753942752953725372345011992713103917480611525094936152695506879425728273399900934564415978503642108313058124495466275368039571666293034570059002350045316113226321766710732651724738012357877371909198550675723078713419775857651602632318327079276991786030666473107196364808045512113433929964276498302625518465043973732291541599198347278101749266451554950479751027891122107182728191515185460643362277743832691916215978565176683849875893067746744576665318322367104886776442895562146065056279509640435873091547739627135860383716282832239001617635282496776482977638493589889585022776610798604221884802979983483537938113355343622799404164574579180369794600273248866201430854768948641754831942867976358948875339391297280759090384089401455216309870053621438782355825250062901160899931365293714902738800331329288512421077407503636602665435605264148480362988964566537919786719807007180846764669977970313558156765303270842549839559981021731321154939724924617273483175924610532926379274312209513130664622601052260455811716534666888212607653889137873994748244271522745099290302159290340915587190237287437257501877391576196210353791720605771612648254662652303920149082075465978228921346883359527173756257685544240882115014786545940820879842713050576356286054693822777314093544049750245289046447458656436278910884676301284418923420073972786520428439621777189501808846012443838061555073374000253063018849447377112310308814299500997301961752279432007875432661777794266419956472968163351401542052867127852259611666073990059882069786694306347823696414151043465710369709147445956350801454819942475012081821417660311466092693752702578684453652865068155532302213284218472918098488618582943704688382173616127707818919067569020358452470588832378077136474230963256442322885092760006451809694886216761462186773243593299978000643375009777588163948842376962332292985502009951725177401854983425914903584463495505840817965850402086018856006504811440482328195309812459966537029821383520338586352011510521022806623407304362662009172828325228795738902159663210875921434876523838790172192054481872099288320072997550099366176443620748220901220343188537080278466242133552574652849920255524510648106049535032437067102852819302446391126343441212037955873905706748371530344404280556344436250809120048754493856620902074012894168935809179741327675444677089470286871402439985494469808894631978500110451952345694598439556926716188042556276300198983844907230698648298299768378255493671046847545851414607755939634169286836117900485792453429790882623481928647524508613586624940368035250065858223110734739492859854854229543063925453394346028117174368092599975543352345522614897807382208702232993483283310554275981423888431750695196924700907326290025692513317048327052896588087018582593224012444560554735196242338170351455900571752165886970764436599288080517986443408317254789464453977800039155446035736208956744921456907068258161924014842021524408441300734347781272301453819026873459079099611140560798008211783826140503915868237725337847578574559609749660280566973324509758354710196425912139634231969064984556746411710263514073270988236322945028236442503614239543422360228620856766342503002158902807714015680074856616681626277731799827771890360284589822687566283649921331698452668824011621917447492693489903672022529478600601626501646709916591083306999348102418536430053372771826591607185691915591485326166738312480805234196755416033071134586313750129888329850626248000753855330783575034507272016582261001292414856799367183882659386026714755899471768035166577622263494942395310015583110346664357953972598667567351390525551698101110091449644264793662456437062526671261933723949400278459241303307503509017096701456270513221242460278723692584975002728965473527323691886135545812866609562350062510040469675265988727014953670463825731634861925114890790027811440646046516039112107138890084318499793048058678170708080778169544642589164071293376314688012284030816041123101675931618500604854430831779559168560617309823054091405679986828048479760709651343739385915499612414930169730021790502211175478208202672369453263666676579408104076763625762407168611861951850304633807659580885652421006217236857998751234727837640569233636625322328863669022171019253589625515728672780228767387583556564609361131555768007957884334262537509780815338917459146122697258340458521510555491703656620309811218108748214357486664759425810623984163662792584756927366831816239156489924793129349927740419340966283164047573017336574773807560317660429952940664546313201972894794557045030146189148844816424719360387129610995681829797836085070773224904226480906424773646683538790261472483559181438401838689662172505815979733294450201047090544114274781326036781265572405542149739398610712943105497597164154032184392897118259860455544891188209657571126367337069105925251235501976819358153783079531279086235039506293273644436976567130763546527341654508885648881640523338948708812670114143848178575106662569584936957787882382787085291384311222678041245270573364174132060013574438577823206284704037251536808790816575161002580640240064111337823391711993781808500808576955713078236002804586026057105166697868750173814642761639347383510183038167614432057721599886993595436257227306687080045323510320258036188853832809703155288174467434269220365803242459893937836737253068836533729608462601127155359688682797314156028746328773471267768956534219838967195170774318135552654597177654748374116381142401337610206327905268187232849954479506442788817429677722786281132173377670729144880151002956769357849556980374533695944602289973909216922543653792239834336544757328453183798776137484929173774622423809003328995901780810123850023914987518996143714515683621610370118597176421130322524787403899552553087461750658366607291128222308839736139190926022944513439039757863404364605344165660016026256411849826383476464534818925224294560098707059853857363866441046619298655833836420287988376157495421753881888358459032348798831864236137698057470933097516547696039422383341900228215513451043959870197682071995400546548178851719504617687532004306111188543564262246164366011879221707727652263273889185936564334556599393380953168357440450039120244886917535230382098420069299793868700621122704959809182561121010119575414685100792212175780859804956596608937396623545803579174539208373681119911214437378613749425598761000062572786364989816640220392156549331521968591606214773591376096419038876350775349440584233945643705508687824222898114114673350976972633344315757832176018789237396276558380937494259903691576233278159064705962363580814083222772580150866070052211614549458536191080803312614858594164262067807385798654877694385458822621213913402511697322248473148010440238664381039664511590305052279014047300740794526257411609603478425198074319555600653818181614419673803140461669205641466380918773627038636480161401351378156117223217189243242769333546398359930312857050738439704946206549977417195168726953416218087925102514178273495603691762663306621064794101390165229754819959230331684304958221783142048034715132795713437579573534822579288285176272234682343158236867463006139596013015001809554222691403026959153245441780564387395665875694362047476330761550055121932229701014508321749995570898069449372711324005752095452238190140023574558212475224078562835469048076975676546121097942152488069081632653508734417943148487656402724814501197075095511388200146459305703802385347100008598377605429276284710109895942727591336775802755105480538636706471929802160965756775583234687746468852847174230383291680490908226635509834071017208198927755219710217654228261157456839899161124523425076732224485471113694038537144313930556036083132168112438354993681384347897029257330214418804843888134423803679839707978031685322849175774645332087628422615863489998768770641457428062953581492725776739399559099588878689133189864577139264957557376600410653690350340454163242451250826918765615198281491749690056295350843181425788875578425282866966891137417880285387675897920116608448224746921434276578405423422376806389212120682796701724932036172150838853848438398542815211117011277839591746123256722855678088563893231556631249368937875262424769069719347954991445088201839509635716085354875105409327863950846443345509492577930424825003087663203387017996799569032022848017982594747079963416632034226093494836536730653559461526908788462337723318572620138781819776425412668996750261506382272565720755810022296053366068661451529407656405378499296169391925098733555061718010329446332972506505112019957970852505199605645903346944328529512158392276029895415076372252719177260206239862028328772401331623319957076185492023649853699949537099546551350298268267445931412013491191595183304031075235151691833342292494647449291309056809637846428207120837620669652994144890032705987698035343408993074092583339998595394754387305158830452484042555734207441370419735030625791949127177388614510881625639331806662889039602638333350602360465129258868526101053484121814702015662580319840164563289516416975312214512569920015303946247769747142341653559801604276313392287116480141808663895526410405322979487395752537439418676445827749419948722980514543258437304210994096970923280068067900703907081705120329142207541172520393440757609507791849895858456067059063597950598114458118910955013803701395494139264362172223133658693756067611831498795581258023494025094093301544521167765085341872159239052717492782872611827278321211514816102916083225691178340598503979996249060118264452269217523108425639726750885734714864720468396554493669326732019129309002396329158476193638082239744343273760868222191376617158139416246025245612806879840657903878824267463770811842473870332170285769597365823646586670350785384795453603055421782135678575994667206699583354806597706647774782192550500585157579475909624846621778697982070757851932853365253766555598983007341387041904839947750851702790689829056549008923050249996692195356524361282445192007087377839298599004670556615654511035981401787628383409728547804107124509823474951602361436513283627110378035625855927772928431494951169206023811966953354803114015472591392927878445097986242321795235740970743439248197739591529539365345094604885773474748535628151685538781796054013297119577155643598846092092412028365701423401729151875138343618649697824250876265035933742561460160311991659338663701818522793256436618451485197913145702155939155079691750362513139115302496763322906968293806244218594087877749855601545910948818750412090448349030306827464164474451254675918211941012951598045317969501222744065556005910403374069738195895556083706326272569185591828383078598522212083284464871705365741797913737869786384271575473094775694743876156355852477982554512390216360742824862422694680835596723522214318164534051865811855385019044064876116463204700538031490320700418310673330340170484479553378342550331415118342332411432214983469019062889727545452271906937544063915724937178660988750032522223650220760538619041687485080491165185600799799915675349421633736083067117678670563183405279624033898534093027037609679068568278672291158582154246227789493859800304143376609239153928153769404112707238723823806541954408346976483928729104633555818556610592120954753727736362792382543613015453354618832804175279820776285019676622155909606071270750346034669966560625011987309013893467930977105490089038713925105345483867476145046743474640229999997233487821732174954492488246764574786797158669591639263856270374777102084005123189613780513881720737214723404326294716990403324016835810181474223524191674322689693677202551289516802464313305817907306415630481982031080654405567192501584586309946535212087040244904354090869538301582680273384599064270905800571031224539611976092586086434229914383709991064695898202344660859240929462303226768677262508282075483779601887965664854231210841484124836987503607644631379685568686292467397049843947870064485823228232170841501839319022068796362600532096937516080706475388089748835958003389776625202344389127357035770862519387527277886271632761423280282701352510161809382067527530194547136318648916661018665119380368041459936207673818645009871799326907690788262592683553989064761446381451575718897344637037040583543724509020326114876606815941132470829134244463874582202639710636460457620199714309856110426518216827626158026876823663649001293681118153834438823233833708557325729207522877145990536414883062319721887611148637452342523173359142394120641483850846958239251063384720480593030955792340019443490026839448259211493621380988576902915324695103837614793625067149367041971419138027615611651386521146170348604296010410764289507399500695079839397863575807632632276411994693180825776925058920343821024576775371881023914991977715389905973472444365787230075015343116543482095579345455271014983269406493459885669675779630265085483305921020917637810119960752843097956625985925357135330672615202756591051466128007727537181878315216994621124557133047167674738188327872125127957384775043745929238356731314955625195261665468259831922314242037206112861332757067323385271928215891999474451694561137238073156282042995358886941605289397733957991351276378106397309522590021992402848447759306946569961956208674489230107193476165160374015888647816875553725472348774667966132430552642751523779414691971113868546259909869675261425377633322272698465810248663970276211460956556261993550748810756373230487265117743745450516103263003370042266757127370787853427756521102354078130586685151302248159991694422687330544393454335436912250387874313309837916649637488536713617155074475159868424608344613908000691715607467223848053664553133409856138666483565176435149842880882743755235282678691247288164473351620411399293480883013812510638386095669484736094952227736105739901966797106010956530710103638563393033799876205143835785729318689441551518366503164932521505062655066517729348668010240729481190457157030224464442922233291338131568701254566605035281690780175977947339597838145669037006971863976419331492766439079886070952161745995858420074872065128591313497269860542259777607046387655273409264718360979326742895556907520157323764660966849872858119784414741596858787415743878462590685304270087335105931805340404506962022949036075378580263368980160515469248855856558198431610581624547577857650523515071147216612442273076066939486619313855468368543419936088961268416297057275450642647525896051116410691581197892613213523182601639973529855078655959593990000227971041037155522696516209251942213092119876121352491895883973934907515478052948418133693248291778484586642512745083882975906588774308529116800275931234177749610457295497573618936911543025181948261630943798840388391091587103114592309419384033394077034936567488614814201849317510859922579401795292228835465147880491246782330483359593240192864432412624858095703167987035291164104675322105058001808373088173213883410923315006299130794665991636170312861081641926775548306252393582809541249127288055945515313461819522262931598002302145789102931195049896854631417954481156677503151303223562121041920434771070455852859711909319181515663115718230228052387238833248987133349637724824552697671042241787217997963092474719284133390843552977978993050492656675212339936064481195592037712841321301285782047300477943159460439999298055853977848511099357200614472374111457061455944005144864686330033534672649378639538252677414386662045984236134113967425867689686142474461942410984165974573372717645971074756358147848535195691998946905139733748384441828417675739100648460135648730753653328615562242626445259835785268350843592099206630975449649210219992385729434287881029705586244532004948988471117016352892567413937855295251498262701287621861721563573475030971116536719013331957449689432685855301773623350003344514738685244006279879777936387910541825491242436691095758140910065391802429129209834351363901295976068152494404778771571380309550158961573061675140290510812088637216971360410792553238974156070788010428848518104437016365743284103930842184768501113975841534119993949477895326793678284341926787331423093063228549246734548082938641344418822446434051401227479208215042084794241322388017257714114462986454315315028975957488779346107757699856128920984324758795119892551209747343768442210635175685659876107091519184513995272320311955160833196944647535098828426741035408661181079781825984117619903699296603960775056596750726261110113610846720291955916591537560801641423997324697874659621761275183093146143547730853998141101630075497620634059461397271215601609276844536087120437353650346831008633817802207824816618123667690774913416210821147211400439629282429573306994413495159036663187034846369018545090108361321600746797836226180573329581261220581375872450698831366834962000518852920150050350946601396646143995544183305185651958124260853955739909881461951385286046526403890404267620132235016973558904704674900336493613246976415368392166101172919264260714574058313799459899296414966533656815833372097103506008985035126006840848279333978453998426798445567559463033561856640648040643783062055970094398298500516270735991510215751573215409432212745203810919113332593999386729436762495115927644579251124048188104825737055026493924183227690999005539983381050421798123749028047200370856962920602382837180439791033350219537269257871987099197821811038959149353600243953235235767127347512599389212118360648743794961104232672732025046184880524250009409416595748102468168325752790749283184841675751493696004705879746468871696791912255431748844832275279349609050996792683563430489543580853749300675168686727447092386805927876525463566068232489776526053202644271554223424106745741439773896151148948839177160369498920292574522694573465127131495402085709794160657198652770913835874414625012736673881639349643206311731841942682153405023309039349889133494836393853326962449126555933016623360524358991948057388272416997526143660114793286385434778346326814167098067107844491984117055519131364103759738977112672443383637265390119833492032439689649587351959175658844646744324093176055905712028779421443961651455383454287386530532213091355573621390766117752023543822162987043120974619171496483143357391144572625620552464291111022679226049149823075464023029752734355346444289572806931798465896049545847141090215762966876567053730005807792929172808992628428610441375078415709748083175347609456526753249552312622995291307160142485547154690892235394041656509358962485478434603272358778752820720806029829303785212656839815061811131793356788817133122311737842289651964376658310779918643271982039241349765820414857682366204257476961017349376779782874287978873603764158421954035638828282656852475291962295867060785674096677168820560738989941935505846491333343717456384445218345922654731019113199312673735767010504493829082729641004927709977052526788086805580968624245132792536160081513931001875136346911167661564183636994778771086047899561622283406915369549468553758361166777817233763777826099780636668844660194067553796967454956121891584576379684780547621736304451832154140497032172285491087287967865187842816406871001541534312128994405595070317274100047404552215899898297998014224466464780287241046388801289593883839515149448261785468055660520934663371760316424420896456075680218276937876992250905266355954208126924543818449020564148503251229872609128633305719521548076241061242614685993326705750445269562691124048735112773615677064060302937035560061715970013073200108860076872947644143438413154937240165900191368615383364741447480997410520062229312592891663367293403262295220854805671213640530135144470939176224127516731360390597136006511831342957402591709412843615058103759335092683272104566940862843920193891573851534306084757520348877167114472279238028750533050569525879333490329740845533655341892943300771539874045725363080273808141604426826940550061992980569665486340669538160103725801942131560946397515082116640379638521202241944088407684365240682235629214081058365739048528061874699010747988811991315851857508054650798285420623504065931741558906652729734489498399332825194782542734595196549425535428217297343347903133481220280930501043319491259061305724442999984131572275261220912060949479280746473902635000018532071038184231917836414683431395872476775141342955784788085994770325232842408362773428354717402049202902881750998753630465474786860528722780408263055381593450568978513929921351548418913194574800307912490237762237103644582225089668053671092344511262143695037166039878108993723495796405184513476353981597896238829564851951194021313924916591735457070635846706978448113382781718165268463959678073669913017942692136259494485139402614637085603137837618435527970114100332169285493945166263121691281806098480954932331010071018470804997475736846420660712588879775850129964542575108999139633582598885637135146658557410479368131487292057958143799982464733393196278661598145388768982869836565756565611816353754796717567444997006809723938661681890874894059546113635960705833226700413402166190776216982412146025570158986966805755486559121090826607026778173468635680103124808442137180463836625514786416110045980433959248310928058750264934126288388410194077735700126630724518646803006600403341857476167524826523872037041671755204665672610826723202411739735405639033573941125028284566181692312632201356529933257836625660904484436891018032168168190679996151143344275326222159080259859040402492010745548174249808573060284968861883832482543697368964907139853168642854285011239034286358584361370243000988208160726213228369393398206235548866974286702927834262701438301371689640704605463758588211604375385183754380240168167493391010366348173420816774715625623350435859259124501261732349811001534488270439797756782530183713343466950713368587748905860365521203960129349046487539083236808800501490246358457658056989049214632573153491797067377194606466196138037034839738020461368760129406676576773126681773955309289007385188980937638294427642079849797642346745443780730236743928222697804924712576194130301039925628664856348531717579453673612783827150442047579937806309161312711263396057590868157870978453799747862938647708118718595521557463808855299614057866285519495537267448752225547852525831215174530878333879940907699634376357260187799530569184116219680921594164935755552640883757638110962135341869069368003719777438474774177616755375758925938631423456265597759628468318924374397712919407372176233755815965842295187562916354556646388491192064148271584475155412928496221524557181572815255050860758897314270851335547604330515774959723746758031437284938332928615831673496488355564745141058902322286819837575966783438196366441684322169348725783596051707454479100615484475041493351406422904255027082266410998653500627191675017906563622775093522973235081967370273920430476489971259324856038502543715012648042681024836513956771099762998529483220458120011230134841397991466802822869811195769846736529700717973175284138701143527864994004020112827123577959367927624127689746791231459220155006491190054842891373888279127522015957072726913352316714132050763911964149083473889506824088658170517350455268426554864816851247571984350860899770579871530749628441614102791484567580493305579707384291875312637512617807595129514735629285306591712910505908297912809838958477108193961827096078560635271192898740259159135235883333386896658660774047930121492179878077806504526647029416226561615562744712512274380759015265153272092265594921535733489576494095115760347870576218834126165609746100800068778341812015516050734811988171896633622179099503060534745525985776121477147162571321103380606614541604729566772535231832018204320034884381845743454718024369558404177438324419779921592267511523365254078084059141127074472617916229094298143784897840974146533958500612025978332804418164760317604511182682335140779716712118040723960481711201564051599333675785058194825131111167833151577514046094478892908591626912026474956781748905105391317018311163724056211970162273682591572506723098614098323929071571558875432841585156467627109411756869962731990997378564686085451115725625767675201134067135442095352562467575665074688169937612422788275834564446456608829434127246005136053939610620336132839170980539161726410639540524793473168073032515788411628853335667296154645351406603386538593685169632358760352234438978071307837131706213711607826878619686677001714884526480189507853574069882447724201678594930521632209512167535040896768485030952201337975539621745672211424337783775143769192328268988848832160361530439733121797598917795919991566180228897581606917207275248695244976040105706084513442506209263363261914735077238110125431670318573730228800575864770263480861953959376734879667898439286820228711155460647714888079040290417474157713462450219363526258052662359449504136973708408172936356397794168924590871136714385593663320591913314975656433181134193101984999086613520634992571690636121739453085569730956811619000040855539575796341034437087400450750129648822479729266388687585538621094015976076043214121876319369763835373770391607596351824405983755793228545646888919714401426322770143475306099345431194914979888043787854286884265511398883574012463072998189564806037177551007199209821645354507682538134569048058052188095278832628528226889757630015567641905660200237385655544194655267898025592207849713030290604989761743667774366377766100332816696465713128428510399378770488988453940652456950401350505163353027792975615551326724165644688092138173052182974401763786427705508413150950745166187778187997680188873420568325387704827299140507287611516694616154889984112722250971925573368459481646363455600044556271610731198910946554272606814044392253396434448594996149051194423314750049588654609852700134460157945834166374434005136930470580586593566133201652157287619602113930904286340018458961825699723446380881892496165432963228547694622528562050552144136451925877454529162197817805553556914176272179702898722279762412425072110404402054517771242985105822669206324617289348637620438235948491184678542997286879299731891507751111243995463833658689943147093123590593663649380280276412632213467045814513970230006742254734781961299232910928074784367744805551503902411371207316124807795208516669026778873996173552903462950171180123658614433643750975527244315030292670672561198959559729682802344916262705126111143955077569808252804789528601055052058380844797614992954962692094901991021218972042388798474955322731030506922608495020023247394152072016596812344605220120904052978350865114414158147064002700127129631492262333189615475467502257391384862393089288576073527172841865616766410882977972808799428665936081864083390995710237024301192242778823953143986038614967168188865705471243300431447759409929080744369854543248931017741616963679102371315174378523612609941394102904434394202164354990310422561786427017004225526521630660742964551797131483643934673464253759791417674426350245093833004818894085628770140927851110359056120889562679546131325891441549867652280911773366142088582021308102259587578418571905781005060499867663401266313617440535075625045614050803678256307602469425878091890057137284933805724853885507809938435025221430652660922182614335803675805766670971705797462200038666782787819782708654710732092235213094520212816306656754464587358238526104325035024669534456155842143218870265292801348725375840344078946163127392520127895971059674197014372438680320332538109127310552662958420286302212824020576029892386285902714975745911314106422433724730348264066055439205831935940402536063648459832250387740042774404346540332803410797610881011512073117460948278499153989628202338306889257400353822386947172697964079891406711761730991954802023458105488767778328918819387581869569881970289403115728047770635561545411441266068632625268009004371939155521967365656565127456431607487361536668764171667245278724034701933900608778359978145183137970459766858365334479050332055766620725650115015340963082776956747274973461506690826300609813106605721802693838954667418383700115092436878564918881135664502752330168769473947795543628399197563502154085082796103149345234828164097316439965549467563586345416671422744412018744559223673213459177727041242348063911745023296598602041111312571854015547221268590158936040604230589989710262207387475464366752245751853571162300170902553770466434766755123196328211153121153499727104126919730053686558563684269003264018370166123259310244256681708381640962425658405828953492614547204345432430413565223177807351414412605672282335262205632707754398640623974031871061969545549055802818171519144592707816438194137972591305103820487788434323173298050648270757224650971923664323068365703746266089507038211940022001436766466753475113273329428702950441751865831261802076546328425794774164496958813616968236168956198050519989435948051005960157713435422655517336184652500076716981548080558858276515677716631855093863985922503696042918466829073802383387778247327389133899731978737549877346852125276157636656182152068409742411607491821587952388223196863227984023698917342108563785252944495358595050185722181611053174170399063760373390314113442251128405008037406534505888493430995232536392646197452631460136967274047685393503922825145233405818144438844763746091906381620595664754425229741342894130908648027469983459289332736932539512312771949756172702008613918089774196972973767264445437477946239198544545660377802404948890773288981887060278868187888070680781813368897180863423587694675604616217830154415983705580337505124610551606616925304807529685812298506906485638185341800325299721219672296800000919455125166406601992921445864926167644201573502329367409449732459351131243105663296219094502538368300494045668477102023766335227675986572836534156045374452720468356666205156719001057900469039584443751519343560253562691489717880842997518470712245112146061422040493724094808303363351250139427612687511561702052864522884040726952104383363473271228779592763316391591731181199036059860395829411313565101479142142029580973874508335902516280939379000599705893640371179214141336575988695624904338430025010410650509096375130790624879640261794185318730965643258852735754605533634463902925151323438083484851579379857719111947427801537128694434206256231694160619135497137197034995109656218241719637770241814310547899425579357473814791718706048772414961442292033768194742185607072113055240572478121528213539684658324683791711468466497519725731907039371014338222259799004479924836282789793863649347597408702132624026631319924084549712562661229667445990153402674043658882496840969718820792569753399053623155496236576376981513458831786220175421408584204666554503393482096611015427318312641163494619342110350543409799723867376791001746263863919372722777313625742913435259271154826618483792042208019387145490220615720795756763100910694017090827330663080164485583149349067819553460707326342669077803018590726254987514234235936994363836391092229581162184933170848758207861708296321106499146875330088588154156932789607107925854181507546928743325304982672753169065038143318127349131607207446591543846329833959616333836311223302182470208461713318636417834481746728072534880114077046428687727750318482752597363310583679295892225578640601055985256586266298512852445885064797608972275860359908129048117164037713154844165003887626237513270415340496310754906121997607054460899727263015879584557248882430801693178149347935763647207727234532026429701951153780681226220004026699154592947688208462053310288172318808606203853918027926346417880174094238673007042824929974235186870004862831454398201731861489032689850932867371540557081694610459720619841771127696208453782378231029382641725071514415155201807950589074621907288367964085518233467743305476086434664381994717126752062584863266628641801978666087917482582969652105272022759797523396507156639060647465371268268212956179702106505762512289124076665177508226349630498342977071641569883612651241356083681492152072428461703311752543882966398298565476117108299484529885860447682628418630945522959708762570429130038000427080899607836344148703500139322492636530616351422883857817603483367965511584598868308216925139385893139020197989261666015887903717696539752483519312786287497945108148869684886148619282354870155983628221717519578856387701934261828283697012484535634133484234399434674354415981637279210597838449899544072309203916133278184282339491042093118498139025988935949544963111495285705989241543521954790069683555938441367278360367972849020452952516279566937186741634258456434465606467709402156221431668925357886612984147629406824737431648219005280975373993528396179193029358554511106842748896008609853645118862229314573427204291520057610104741536882767025496792581610206815039200048683481784925030449646247943982592319142695527412238755009314172653539918938568014359924303409035379664210347205517527394017965120220804350990638943251721045645603832728628659164467357897998678706882340685603986192765967706715696035924234532494485998019277867106433606502134237508645006435532571725376750925703702996185940613026779646234015294822077136786390682338739156068448618288881964046309527695355378488742469050583305732626178344456981618986190966980954180822064776681625814626730018669097200984965009623958472020044857868593791805033865201691216056038952050377102297189801309290303066747834865951914810720422267904837745112666257664503196667209694953645445540830433199522580362260459610624815356258379674992407654390601584965643422612809533589217473388540203135827859075405159921031107926026817211298650670610144349099498249493450908842973500683705094405942783389488930792901981066019825178454060111372537667230591329242255631628547417905535685540246922832521898963996831835563869879929369493741386615586942824958828067928994664622953948077083746884247463180143214851516478198715167000319351465043228981666197226518500728658008979831298849242996845356441275236771458994185231333241386839039638159953647146687117117214342346067001179501926801818838895739879570285469351502553299174681896315325058495472059322765296877279998422200581409375766353040280000487100161962038192656983394583908171969881909322393537888099601217824158002567335044144323242254547308028792896506417035873987684861887134972350034979833933882830451003164473802783620877212402982066937094637420682400087114050038766197648306340572539432970748262373548968853284265405547679359566624972269160228324771692389143107816054814657011185593690182078513767404382603128262119540724557259303647098682278532625847659339784866894230586819651818207160085336288751330232953275081043607456923111619237285014668651274997710462106540908748914318451034360197758699002566349020969799674459344619045487934353933940467682725056893916645006027235819459751989353186698247264774059449826866182079148976900713161589419583828152075414715714435267398338751180516037760541988476455629486387174151186173855825428876201901313528134066209722229259078698187786735112873407481440490832840023189250606103929428062778547577990041603948675326814333279320036669578398183080488076393992592604962104392038482186869903171073379525375155301408253652758159738616564801376481650842532128204086689247162881430298676965980765781494536953546781577240443453156774449068167522349293242888482364848755675904291972169745447081801520909499759822148384272825263075087067299649879173706228520688711252578430724718955764930284871731562674751579769770164972482919514714273759408349660424836687378938309394413865693725950164869503106902635296327880184432397195997569562186262135360360301758429381367067339247511233641692548607599927615732803918520066438999748232270034102423672435043698955691309565662917674491715703778363141152358847006281905027741528233329588250864630646972901019162797607105115781533855914088057467680212995654111995773668047270312355499701028487478659296984741710519627886478752134682846145078845472613444509960403127875074979965456121870922635295485502679184081592338097970439315916286761639165154352154704432648519887671799566601675564159929708160404622226783723510451577719015299342620766573894760521595683125834402981364036974616438922693950547885405479637080543189070946673949370952184708971665788065804069208602408106802751457633506983738897885876843055550475235564542698852084307981025671216363885613527537215926027013982195245055915166300185511894155494401190653952165634405506184715608696123698691678655965625876671291107758422630481245825704213362214102184520589534735004191867585566374500628839471903601908652892744609774014279765683238441683891349384208411427001281937803394394664384155065051628458960765159251152876739167613301336150410483045559176311167905972170551209346596990155347241196036255582092210795894549239822622273122143719277705393753709994694106759287302564582711371385439362354592460165985926630972517082659295524251192448849435059351965267472923207360103069521161513689171724944255067792920267489622954714403463363533290420063262131537583518199809178957171323640340132863362729927824560931738736089589973856431275568600462982256402501601695833427598524383776611376810232033091796812062164290239704478436850666865180407195936995799650336769527795454213290882327794216128867052958073965519847687547453710254137910002355760630468924352829699301998376364391034536657003522171333505242967026146188520804610781011403133499636421936297643441123098956378833133433911524352944086093432129158121179480354053397761035839863674731106742377703093981584333768677619429729729093665827993675296992697088530628102228876766889769690202578459915170294920133885342957353996284902068454103610847062629819656029410321022281059690278655257766166024526438440610193553152207408802932672919194834756103947189869064742665134261009043913944210889791223588288774483671220799399016770977691973519975904427496189746519983577150441829880970565364146750660948103605087796697399464567870648407655637228481925222476684499678708431991500499661677152747419674282196554685198498902687175533268704472046716898418558731479645027787865684047918032738037177893157105102873432499928451435535863195696446063412775377142764442082063006157845249429666554703933958762680616004356741207544999454653454578622648012478593820795989455996308115463700582157076532602110184918860447232608105698611169459605819295396505560683666252832970650394423943289009710030990742989371681896486031325585916091046322267729223728554935247277002861490736446977053572788638270798072994188239065069166577386635863260254543151938334881648447201901495583692792782666524658308791120255171294058458616706129636331581529903889835593296634214286157621198080529801416225880817478858464684634857254479783018385632628370618333361680793578643130879009338700319845176149407808894417341990400943837337918764147283178956734054406828443461315688149856668899236145730582117185995443228484847295774444791080999768315826778853487125069680475134071103981447628315126589845734004914884170617928466058330676626721596960187755507764285792974052896858990717529236961400128495153276606999398588704254271022551185196664769155067460003916159198334206063647951387135517032070857190032386251346995821530600773688343284832648529016522987527683127035407600928464623048115660511350565933385715919807974859352131361789883168857458101068197720536056992361145536205840796962954547060022970934150354025425780082946155784198071027620707615695968031422726007167832946796235675632549725010982688721515980186776310415715535572840808341546049164773790232850326646801913024177656498499047578353407749431773168570410847310859403091757804102536698837419947569939026715375769661787628278674031092848673642252990090383878307962066943787923012908873215956504812037621726977194005789322529909785117763353689521844390041778993490770123779226627119029615213225380842770986451669852243969102530284193737295045619020510075605600256104355188480950289200476552833864973890521323375272461027017844536811599182359871744026227297537535979249788326974532733272707614029247114397837297698074731889954837917585291477196334352678970768105546891165521230400460648960734080217297349944722910885952955044176036769807465286679858787062352895535575566025431811591078892439427747751353127456684655096943144150179799057520634006559528351327423274909002549818682394587115686480290399050013140047095385892409548855622224815729878134540171302217681452090128412994895766791648653643652454399418616395879777556282714615879940404151973497346853052273685149577187315933476984265215938303476339404541099171119962881983590949691252952700461160073062128660381889403610802660176368952613417758893884865463078820667666572977861273659398124813336416916254456928448033590786490039721050839368958181485053052413741455964637002509448017002950864739133671554326671166602090136118179197732737215865697188648114840545913217137389973280136005406558163732310821738662371828868243617852559732453935786989519663747256621956976855174573941360337175146504802850507192325802788291818692846759714776780032146038109995310747527783626224009830088201406110103980743611678322724519897994493832218065819469715942952501223937899078629229772383220098379111874419807159491483682195703748721491425838457774389509495244482616220116889189213733052040759249852658419425549952683495550812644898451363992059576663190534307327090498581899530693332438854144957567696020664961751591977880072881609244166833792417638155560184738615853903707592363487597310801285143736739387606717235296406808208677734015403249669588256782594612128196357993677337654263303042237023550303871264706354157022039314185940659116782415878678760294626515013975538737035689385068006057891202698081113931674557710662287194443030968302659860037636818871684581588571030236582940822794245682486789841636392297107856976208948073067307909160705980510776851326808123085276916745155575460266037542836283216216850488783372131805345945489629420805696310699447456269895296337557873447553421166910445990855323246439984487409913559218308175955558323713028501489725319343964164387471680066038146801143222051709458394946440545141066295454898871281409724234149562253135392539673042635947958233692137393914310454366861926665223044857768607831564128008347043430233258056635547487645439258156163134155032426883906767280493437197599559742211014006708219504308369548496688528007326252886516908238742772135087333334569406395361741115038551440580587890948495496887758113804541637044083418249313731194151850850796568877577205023315725768996846805224473872454311365583780036832748607882842798287632689442759617343185016655068365882027415356662154289775024147086281668141036153559657652898099630393020177882046312370180909308422403454932662697941526630541006331351955441825016315406764303006883125731349347762368507486270380716425044047041799377149835482386283671805292441321828657443786024342750945274245605891344200889508051158425500257847230477641023485992169390046836420157616202048687659274916158323989918244533335893608600349865498299834825719930674631349162157619673793595754191276454818153233615663544533959645509397325585207072759787710145646402623062817103489192043843293007942037104147375489654558274081137792726236247472725480715456052004495659553903440849849728486683587280500494705859247057617946519093405241080262440308591317129243450715605681300265470266648276930477454569236096087201147137031002874775231147243664316136091025180649020914128981211206519338344784074581242767082672568255868446261421324272062631754184465572540226962830184997070729776818668154732208254372906481157274252796951692814726961711463948715407840581873479724699100063178931667003049980464470218616637898463061155661480863374971781123044522707906427530368638394629916581909381020204881538202386598889395309628824266840666702264403791033801694942541227834001064463361408483330429881474843802274450971570910579739019970537560531517524786930175829809523528321553793999969614775185778781257085208935481535239603928383833439329911066710412307507834042998537612396494152497394019202576834202309178405676651048217281559690640339903170888842000343887093140596751012117441634576985896137488074289350604005404548822999259762500109748380888357623952713629295390221224605834039844782098700661554343847395788476516607449300980748871802714012357770067559321094458829840667624651486327865622585247434284498991095614355179051892036011220143128569934221159590704188571409522394469696731585212702758553041728140287084009824303807913259864961599436727516153956088515257232971727535325599265344975736980624604392862684565751792761202610759350435390597944392796846416088686552840783512724673995330138602549361347254491001917650239563197041811562178546579686856518369229714834113233867577624323058315495034636335733366811131067723812909855016683980860159656579685652900536332168507345166344098134346881734241160985134643282772681737890602955744813842336694158311778057809608717841147552516074785753799450995129356600611857385614435099200476730678264172692996410120210948609983299532048013365764268644711697260641508294007154124242049162837188400982422388637779234612217828275254814357000932197468015092026908865135712854627608018385910528799314946988790075552639470191275474958751455980383219173819780084789557078304767132269631955062056814925322871288377651159199433185698546461295593262708387189796208407846184858060993378956570010147534429517219364841061807852511250054450763545443380280245958050057766891243013240786164569362466990134843021733823787778016315091617502688423771113171163098230785514114911422623128788733961737727559941468519174027265189039779085387151027411360677444760392061042561979762423731926815719051244611677014316765997474139342810752287249061549811002045125783869478380835047525117219855069955862463209470293470075243908711393365559812497641672051962613259221615973039468155560045443765032190084261807040956376554232382592460235368885997055763400332314117584914181844397678571602580728183011448344485546647748128940021757944049104775679281220983087680590071677109098393929325638284927473990337662087430954299516851745009161258572557964182812901936660693807067841639596556468312020788906937538635014712406817541713039121859101511603585731894952206136205999368190565966862267281704399981175304682898072942357490733636403369935540827403915821735053290183606804047678207809287039508497066129778245054404076823804907150436086065924048479103829750237296629408985503578577526226633794565484627337854438599491768796443586503093571904508164954073950996884225645335659828043625850901655923883121585889971917682528541092168289581651185084326091923908118313126145549468302973858661737293808545138633552753034863903538167299158292958052435640399345662006592867659052331741091082014845569403623898941784304115522649562967612168948098373557254121343198878889165568248877393433311116243945220237382500963105429656789874053330619652347327468304843287699033015132475657262254471795645580501519694830563129510676262741049110281166533516283446991011657714924668405095537247366997046906011397691513356798799055919562872157816874108964890246754401685014170137396704458468157497457430071347560293184324653637721773306591622666068644822202181199392725538095796580784296110830841479993016707082777847677943507414095455436898802308534552363712979440845447202189645843520487962286809396177527005330424147687753557567884285271476769086279091737464323848302296805724926277575117406642301683189940459119290880180610369129875308879448627584357440127838877172653774249109077060665971776944965740310734304922489477924883436132658254230459221311150996526706724787448921799760514713499813221848847218824083017171102583948274168158878286436426394861186884860268082946838095400172515256097627871721340590803779464536073426826267756832776661127376097668601022268655791148499752167318415651643140921929671748295037565167487825311835356381284978995387080227892035249799332923102950024100714224141887555966300234489664344097189411265969024695847220756226185054960024576016037131816911488151951494637139980171723195025603850772422933832793839063573437940737556678755014598127712888083141017837690250365298634300906348749925623179573303026587670984620658648690697330483476643896653910675666550560688406357543294875783300322733793061461715663157254500131672908108070249152848152041166371605361363313575424245596568733237648005623613949542042663900932539938051482716903594627123724976605284180740980299826345577042221538431606683188889491458787109033624811594687102159808106898421471506160645454253451360902933304489190624514525783580804593815280606378652028927621274266711347213472762482805005178875697564257857336256142194702432587952922750698258258928644959931985467205171200421198567515784377709216002342966934155783949490198082286535414024261900816852963240875940419180010138999448104806008952078406892229230907653518928223268260651593196182763929896438447039207868586861347410193746168813311875515049276419464417823723244824838776249133422064956358768694930533467565183401365828349130383644677128348176780926440812057256129060185059021118973651227090348344450376354049163238902955305394627674314769092643366428044128506059589821981076899117738755719107564525510610855526462161729817403772796071727280198600597975677783724775572364300956530043692478051644752313650195606767080327138908559096134736340177784029542039155984122337382528984804271268364825470494696398464929095373001730695871110260737221173004803733495448658070832391547525673711108317307477128355960841036509494541933016736358429741131765085759991296658865058502261679551603690022496661525129106272534377654774616079025879747779025571035318037720471096447677785020471089246879327878873231462580013206467772672319187021776956872969283339676012822590659635119721860054694834401220269484392347695666218804165665824389400825274374904423122336956715099738638542261464570521123755976749901919414958774980832284901434547997424420950193484040591475218056216840291018111374925382357964160809070317474535577238044215781618453083569709638949893793767100453564782903965593500433401106285517078669942637104013998851872136872910186706558710119934324117654743156443863302009247576853936773546241582183489752941232271230234734896168069644687308704840643529925593647016403475478750168257506201978901680771465878604466568583241013025231111455452556769887242905967808177272947622896775546593973260668167576547364528091844930717430947421688432880045600249174999590045571791583028708076914967009087335237809893937804493526253495405020557516201039556406945487420905484111181911655520948823067455522524924301307718848149407006221654571737648810936414934397274567469445178993987448642789489169594428363806470189427780217385289835020164398803700721174351969400230730794738268182316727933238121596559105625390801372757152249182937051868826115134862358298850793512217968313347662551757950398777954612768356190561073107865788216207283082492020099024849063654525551341693756229910613015708982713788035508884663584563440409682630020757256814453279204060976690350533115024873023781806610692735583968334588084353154559956704592905074572176391316763152393753915165769322125761787444887419098233800614080381960897826848063000351467837450912506652492996687034672142716217962413969180420981424405179206892635050647141919768310510922002865259921658433106506517702975332813269973740908987947099053373010513653386552729917456837859654726171264054761458625633137817249156886866085473071815426888932092377019675261083600909822019114281509063792169403865454881816121189191296038047304843486207850574149903592747612034543701628506421169380003815250883345972833814585419407307245642597553991107261941133806042961106427942478138851827195007699860895962091165606458462722730566345425823339658647703158387961344167475291019118680058714443331361559960722269701007890438811341469253404400969066848220190011808953566091815623582605637035013578259016029088904242027903608705697459177350450699898376571722568939032043994767730646834086467901299879307975058570718049882904700333680346659275556710470126238947969877508133732311560854313039899577758034255921599132243601130226364559375728097398878638866166961414103064721221442783718312155855931026509629000769062081594459703578252979197436811344926708201428379505217001712941231829442644793407313038972829275050305661282667533071451635127464370450912080606922444859257535597639433461751450014632784111559339586282463838586673812531045131502221021508498986201573297676631535435029499422203516588189663263094380265894768039727862950092155488243642879999872508998841778500012090314470763591103170278071401325566800295068123165989597258358021285282717035144066528470372162757232224342428998102358512090635398125772652018156483403827813193425960258261910464987407930989748671130774835632962692288878246829986082495903846557802364671969855668494372587132023597203318427226572537356234192696158002528491565855912736077527464224860406878042931741953697471717204064633782466311299652304890890329562570380442372903074971605405936545682280522763366477460247442350367794987467613460580100763781436244961362888207929426024547015337003304685142687791466396508808572986139443504776662876490780384890195478821941360101822976580593303387194318488709256660584420920500396740064761830855980811538695349322065203049046781930025624263764459273477843790288771840103186662049524084311855536421710093284714605185570859283882493405606693728048807816209935042027311944279279349181014704352417700836662717443533979656843935326739090772130427515944118085031472825056181762920613816277576001466089438772777091428426917092214540368123163500692860246712964294888271955494432147185228323084675947522422210941921321427920329806888311153434996676066271658271322717832440201521543557117341793909257451899879759099669474161826359753997211346516546586215142937682124200183609188765376369912142207691183063277003996681345186985407835998742211722471308416508982832931886429281085972207472755960247486652749260743445836216654547980926453626606708336973927537129439237306463887736396168956353291074678903278290653629749808280287147852449231793819329788953891322659830813280122725746246484224208602998937010662322676364491238915031533834759569768279075288032924825786755274376932122463561691915306372902497577423424686187095863500796464825902259507969911427186259463663250086274691873786220010929624044417251252735600607236395173737299703199670263336065027180788196428672281257513806665936514459614560077484372140646750793696487454746340960078768094508027880865832758113395462310495238905823945677370175980542356076796848328512071760842364148166493181358768426426261257808161310850704553634339168387641177360453043419800612990795457000449756532258659852575127949900453674581316252664359333224930266897461033710736112524307304733110736469240610134620270699785674240253221214288474418972484820754081505295265729025831765549062321122361575323191194879756176047166179785406664375496197233950615098856601941928741380075312837257079900429043828461302509113714792520570833375534769026671835047053962878532415240846649752948982728470413592952959130504320295450352845447913451158446985743278996814757344381561535438445218150176970991509162345730518111903722548650959621366084444779079328565335077251285029767945442597409783163905880316371761923633753569001013736530417113846996766705444193641252742553752349145721820170248161128212977911424372370846881058683671421500680815129724301009722951029310025824019207505690696761882727837792327926818054998941062931463054485376401804513941593761340966058168887033900212800631642253204208419234928083855171044987956591720212849445558326736266271506596822540331742795880550577570139900982201345156138085980951181750423439315012871337361947230072849675033445311799086152725505939769152839795831709330377790372300773627179822799596942691635743830567070503904817008902141310444023779571126683688319789208565676146491574893608541942311953242616916804588445757889515133837384230618845107991639693526048171049484793421515537543129604363699774673670171626777252531077907495504177496787030508015920222717673572248790559979931633294963949458436502061261316013799599888538364209851205662330162183071814732568129537063768944491810522595234426678028461824279650798976799855789263962594202655886697320172673040535975111240732305391156660204886000512573123050318252337625524087971142655492617410587458306315574906739320840098516140985382439181365351793349546932381447508049555749320010178615452201555597741853656725419410172178439797249389300483938630529645866821605373235744903663963681007496150159058981822632269916821423381499776404093825745850635414287699855148594483437936398812157538647537325285291333145325904340194988648520347024515739273708567944070888092132653705546341900454456000317840452206353969490160888829073010965495660762981314914093562538354342655961037874882868805065798045223639407256622354191616875302881689570803254851516719352130491566626300993705597588030548323971938015886343966783863352154785447888601316530315776680954068872143442336905224298793665652626325305245922284488220325333924210036936185032822691157640599956346220721778432311725515885740991738274414051205914854873232343913158142517961105559032643068372160076814428081222619981381120229281954988791346836553639942368507202593495285580328895768014318678155703815817088596807762786665566867069641284311140540576902120894432606147775937931241827176142646998960941756337489101588418921699318597093689414460013586107513146445325479568296994710348184483306371775519425418239391023782161253023510822291314188566286544594026808128170818303357953804522073140150376562299083620510168428581022280867501175511003539348719628770765711288946151934807082290168021840576252420685108731645234308877555060942883124875940790772023461538957895243726506617766746127875042809606069724581615546583730351700486023874410971044933028104546627599927624728817499801021770986542754829712532496326756769858883908955226958537077678315644478302980504941377999427548254000347829069638759184118945595156396850235416954240714450272874514674169887268042357330455128918124773773542360086197779320593791599371317723569417671500727610723655608549889205697320279251992023839042932334894978607273979633018375561714132376815060616526142177210992686368010661589009781732213203730744798394305414282793139631497650747604712888840654706011580265745188693721231846579845319320805475655787940815857910931241997486786843189538231958898321625810941852132979694699093123318384833572578113810327545649838636954065906337930829018191544450466611485949795931281705001720375235796747929874224369108139553167251006685579879048031499934701983744276697329034067685317017444902145328104675549622498918239968688858399425134030515643524390679847461834439914042920040777366247970222877580942232052865207672825454490175319389369854043237457546914681707775210115942399954506206973341368628736933945332404611488065437337225660826078867831559588218165562008154354837754985607011341247623270174347853779114515432558327757519033062464648748215157340260324325499393373192338414252815227349940440706673374826851320968327480640722296147594675535726220188330930733862155763398764146850817849730125133904193880829163275418667769934151151810544787334049367206718655774765065772081540041609563645784415516912909581421165990338312426533690021320087175825110227664437858533318416130170173469914463114488585622007783990203629959100076200587870381834595587993718938784907727685878962342235506501160275033947797039066039378652172049299462946271344891129612726474487557128001303648891655074816293146028944125863662573938568545987184293653078882467759559778694722632727765210582833975926084586782853110127048296551233754419642409144537587623290581621772602993127041200385557829431662579545479809222030237375610819415342930430487054533049742046299252551414143231552443215577497368772018104395304082283773776530326246174011751911475259924299980927775689016577572603174092648508364153972910454429355262869832956727731343017595245998208566341011315685468598867664860041241427402965043870370973168502205099670262444161069972018570068000728037491230104332097990219986179788195001347614264311748793229328238465332412731311288369828357418214933706974777475607125904855888828043864630828889293395469399636900739076534824466719512570534516133422242189466262028012526460171500380419966302611322108307953435276041792100090690967713356364562588173740678831886428475133423450640629876436583683928784768707072869342283662224206195414931810559428391532801740885162424528249458569291429767514303267203814772764130982894032193501249295236117736101444384744866239514838938325587460854201807039639195471486072624769121362462357242373166221256557810383991997354820824347687068603965498359904081576864338633604337239724685559737921773744836463963696216400941456087478403717783853853704933423478566372768799911701184808980276603382518364220404668215753580975140605780043135284019523687505423353735473466271195079546335265192765120502276825335370307241168865816137121643877783355911896633851918984691514513592168494844839030989198540275800583221963747522548045881239837383033243032085572446318487331006137591493285763752976212899740709641758029417897476189568376445267568397621410285573498019195433378291950131961021421833337176778424628155713957709498927430135984149172331053711886315896557266834174423711752211685942736316851135026395793961158829657511879707686291341737492814177890927280693648136526109840557691939029649184104145418047212123537785747327303601846681487138044258248609155460756847956343958126994193540271639736580928066700356511243688340049034977431457745867465188247603663695876706231413232373666249133012045939641387668588201612291930792512245966782535074363258522496835300973797989529415411991832874913322430682263592314932070638338684916977562592891381156683740595041052781600011152841671557222393543103090312712463747283759657837927484908717344993776520802668159320689155106468672188005506602487895446786404922495356110266916058575540476283210245251623385931965949646102480295641856613600707425718016925161451160786504167711136682376541922629773970465870311002307229145351035286744061418067509838347919758783395285301975578783398465523768235700499909714303195964048512603311036523245069293224806628161162960593317365429154834518589870737285934763081138772135918668104322831390546985506133780715502982990380354740394709597359677624824220250562008685967953502994146691481848346963004196457668646326574924801749544703227710087715611753114064507163826968720115759371146935702183709650699123744216568344988210870898433429247637752445018928564767378613643048650670389542258314191342629729070879399704855687883518768072186405120576397791899366476583413887569666038148375891449013222189821360676045892408146043468690458785725059947521549467417427117117860348498680315896721229603331332522941169912486783781915051487445385365374489252073865606331768948610815548009934792059071382660736813048393392501967254784587025491273154681867534983299062967225939791134596431996121771985116513571967820068735410738010169164508402973186637542005897542966712896935939453985040431010256085344775562586915492568114417508321410599647969210830694023347271616996270835872765986820047770735476897438998693050063597763752079408423074570443226493347713343293708000720622496586463078611281416778823332553809286638292627321026355998529459128587581137020722744923688497940747340989082837683722419167522066642793447080761357182673039065824936459307783383206913810972386941646621736758062029346861986744814521370697857447518849812220914542435862681301945024104850234473800304997007542950813099094682075390908758561938948810879840092235983510982642807445401274230226950451946557407997886316216596347948048028562851177744817462406587379195369580616017407077121104807727382531583267347549736553225534956440049553146732600013565338415244185201958159210966353387225020997890636413139707405415386282874830549391559534373511216748233855132011605202964981371126914743814216681741085442088143892294677083024907215972049678258018167463366445430158255987218174980595372648312162501874285823397609600062413365625763930761450361400359262435357484663964053798866334249363930914325900630066227986271921771876190562658816335529949066476909276724425817742998539523031514797786490527348428745758603119899246123729634950805780300756232826265767860635676022740130466898993552472614272819437130644225325795329210678445406344209385235369233152169367592126324702161037505309077485748556710815338638610138753574540926702720623698345139572268803468065912902143326440167502281010910749036375560678330319193466610516120203584039967512054219728189302652794403720751197671530570317172953171861692754565087367423174178514511136263326188153603631095446433900697707837962776607001196942169732484152330810103695316067133744186249283392449890922490082725646241512634595499644587682610368399603862546376947318819523465582827037367961717179832569519766682238252737422534342978574481257399991945150614080930507177883742748763035656078968826531780792837958414361093528613707615230568959515685634142155907149499935860858701144247109887304254111514545129703888768872840441354882369715339459808165157677472065427805690003923245988499304055305915229492335391709429518478288473211868171289928274136009196329330168338714816828797216439059853258674028885550907353571960890770763560680062678624612116085420398916393685456424473136163223741381852256073628796056880766593226112006185332684833026213967049415031552670286936849713956830601364348476887436748010189935249156971342171392027572882381693207272375281195445441160532636848785536542949353917461716770760567775018591853124858345880669050686518018272603299626169750562335455153831316083913280640689116069256276562345536310729436990195832486689462650905125700201471806474492343742016649561902853317496953506963987346874178649875686156943376159952876254393283598108576901669457913875236520576523878975929715768548132382515160253445500301083797289771470036701235504101598501004107925350919063412818816242329321464394225828115902714886195458829087286381808867034562689224957034079075750209099474791034139007928709872924262738727713954571115592015546850407168064792685989907363521444149824238281738120024926545269363845822855296945224705245392911006019682957732058784564638016007747534638163523014149696095154521231667712575340383487167786689134773543231717954112291753626052960893971850828601820089970443918949741663830691517054261560958312346367884810793375551979321509615630737489501837845779345804044576677961696785377956442020466949544282526744971132762172283176429512392757741997135859354768824512647187573816804383843603485169539365612785702716665937403387425765078934717616549966052127727123222012477063978022587216360374172197449251358031498873491237662658258034190134483323773232253061596693038412653091995330253097477337263161926305560761821661789050788991770536698840320096850738420826563921686292977195351654697722730276311175021874382885674685915904686212473722452574585030600499378588227924216535168046730492264447138678262470044551412068382371590366767730748981252576910638375292593522815565295681876762985899968040096140288037894976741390025962823356555546628264374109716469063424598761871190902195692947188443954160544727499045247360710948303133959131817359065416166866816459697935878184254803956927996536297163620379765018121180970265276414629726457567683464617094211908603784503548485751125935696183545302395446327277962065077484475283241633706205545059551205458287938844244393778504862251094461768938874861838934032498812304224951126227701759374364985040160862736478896672958245839157761565619421602156576656953547206377865089443585187445023876395535782929803861137401558669855148622627289716503051671107502439416851652858516452297299187958285378499850115437444035158347119313040840266884115422828435413822712400731222485868794656960326688064560945821832071501557622202618446740816554741222588794481359605925253812988141186550251022878782980151559608059713364204640854037360511484536295605976975127918499050598683652835924785775494068762212231793049144836471256622095578174120363831723810982532442774073021596379309013637187468663454865308659347103374021269051170261120599528144574321073826468687188473813139249680431564544274221034446250006971406374016018430573149347326899095882654810341821029344604821374323785983961089358196666084744562914920144064857673549780512548272689014421380135509619885698058779905476486300789629629967374053714650181898595465932813842220738820102880027340286883388075444735248272425362328986514355773516849433317444804172416267645350314991818752100859989488845817457788743750427753895661089305868890587653106417264475953868544928054939682853100320479032724303517050033277062323837802991824588910499951927169613040775708594246799845948027058004008253255453729106730270828053864723126079186621540605396183236784726037331403406709388529220128793598244153488267899005616989529261087466487029295159827635429054625666156316377772936155870107250411357148299699906371494306685442686659194914779628297339527819179555945666062445460788223910779218729385230049355285444630161958540887157421470295272735464321883347823941470137620378547125125047806679258885469611596121821593128143578901494511785063089366449239281242156191156687466844890550765029069137724481193856307166933052812597255997017857952076061066160448542875767053790960896593285252152173893483501329384072273314075999207674808839310817558689816909429998669494684966192391426738376620712450698219774653708467889579912067635616098639031785640569665427263786986391284736795290204622912763452890516447639475271546035119261921850510579376038544437177778574494990849181571026753087324399300953922753570831984198844353044928799896116058304274564251809839866481202832271873513946451843969614958623382196331414807307830578030398659140541434588148357976782848465049094351927401696327030731467147331042381004920140805723835630820247369071857008408562977585875303338625975646926138382385655021900454943911641548045809650520179879290423821794523528835669823231873103397124911403766465133555535517761013294061351234928598601832452944654117373074850385639278740007873146630972341937041118031013602179994307544201200540380828838994137339378910958242237243164920778991229578236156890434216149499168344536069767278764931214373444816385370056037939168766916273567784043368810206323987087235242466657205811166961074638303615067311905852884558686204427768991163092375641505082509812426797590700932812227606879612155985590918113302149374660459694790296225908928486365839366920098096800336408910866958117990112372558560125988225341139765145398682062086849029044604049394530436306734846726434409986144300857756585662445672620738729028438546470473376360350446384022602979851340671042304651081623502581030348859152528523861431049216432719412354460350585306165824502879572007908838650301567942098614386460336292660091061973979422705388818593360084815974736065093911313666079852522822298449048543160947228893927018907694308744189609039686098778622828194268261225355989191427013204483160218892208388937311638828775281293300970320058609820397927917125223247346794992210519881940798487738115460810365600308863073164640381675880496481356560726098744215219222297177914153242879386187785869396196672297705496592189599169387938233751723792564000055266258001307459126334200640200773686267710487464760249020184287038850345564642611050924206896406144048698783865081806721523314312669664075119629519474885999745085150317766430058668224817628799189121673437737952762742592627873152151956518131860236384798631839925839365601312041159649451526881538044425980063128168381466365974285042132880832148942124862323181886816739600063765408748707911666001102086079109645330588006503392697116261075842365537865655277673141495127651000616282644221545821224749195245915581310929427118393704870145842387249772905871920767831733672772747313130878103037683370427750896974774120264624387448716117470410972933076348605090481668235121714282951522092843262798360703309696877165993717979692054887233543759428511202479494763834143731004732307458176896961349630627091472121900031340640800150487741100378289408616092919207060361121711066565237315863344262147120301969024703619369807066668248181293517713739301256167273584949240150980442514851184101808490005767806250628504530621708110408215417188958619770108798808696662977555664572996494695701154201877351241838991554329092149875804596164283271789564203983663113960278856448546256867384474770244320388623612279100965952673075284591939570071690857704145961803829566100921583040219027205712976520870948895767749641272365981418427128123710188624593591741645728342461567378019984555558529453458462751496225880408204489313607215277538463214680822591146507147769672223954320960940189459560124903184243338844582831444535609522543191157774430776790409213096329003491799436717284558896864168963184098529539630753476947751220474744244296369045513466102198459447097840029002857313295727240569252974865274627855021948919146055413676185248211294978130359756982497816619403606287561700031894081385977994403675262794890810163307231480679447169942784596836437452621799931252275600022164650720722985988191645666937412503844042221551321535498372211092369736943227751710161428477113893474821544176516437043481104568171227444924087157899052851980156358254010895233060153040824705426422598595207375421866272785386611506944274374515297227428744050122850223599630427259940999291458971786259191500811677828787300602272412363957816191750884273937603371738766227838919075479579463970114702259935289523539985171847279666665860943315393653340849441672991118901959211912007530722525308708314158430983233910303798476365590573094792042194126336114901187874456986096242194566046185106986888754569097240605999992328788432557417258386362009668191207974437358490235727334172083161969218405053846703382673027365089076162501721756996292249475039550227186418290024211781562942658656696511357435487916362831028921490656546076369025779407516517124718775794761472680825440542453846537283868468479355862702821091294293041210115462662793626923986877904014497401933521385350293585472603728930722560445751008574663915642314077315222962488854901481395780031935232882384674365187487940920202593241770717469626307927971747196880827896006714207288363158780247165490629655094798015510424717187075603568538499600478286880362400480867286961269575803682140947436034091677256843854396338670166844469072132639643025639035937810902137130649316865380061771718088260888243436200392777929853518589195608490301465457878073886595085301641649533915047632555745093913072523588844230264456548124296978251756288833643585261401797383225905768748572034315292184269570764391671542640623811841670262477356569882154676755971381836713281165991614584310091793065550689465751209888138692880653940499547089418039824471220545005079370116517664141668818460990260530508673059413784460130847069515102417700730568563156437212738913037177650121672755312852016613623860120721539071225436991173354209244395799637559159509249401422503196218576874436350168468720577033761869560865377369629078800845708484563395363248916311073512496217573743365707881054545208497841297197753656378740278098954947922041809594430012450592194451560141997703769545262842736462458401754147705076896905799388535302951370247403704659442054477742227782740118281011979134088182025203216078868947569751333514060103367393873613661390019990037693295853677033723686509331261190541185535058645045913886655846630957292536935002032897127547615151037961090861909423530462469069031988664160923065302254237782693764369759741807367993905052901127614462335416439368348738257517617625440498923502960837609757935483059202128582863454920540152031758441464970926038913342143307824087247567243188672020705432553819188349439637652735173266160619274165525464097066067673591802214653605883663207130183825734118228314184232445712016766057251650977648672786543576044892511859653717361729067727569178262729231522787687689713020505646375054738665679084640590080161853200074152943219059991621397784333639125531477822518708569392003853033966681683469938545185010204818805069795328592460245099661324417684232087133800198787766932707160255879543392871861965925837208560919523414258121072531955231576867171597467741082598152146641339759039205068973146301053234466142414783809965214258367822643751413969528291192298252419192990161312905038823094476496333690654584186941174556534652230329074885395560795538644271118802134646674942945116181039430502920445712403809883309313111199025967770011865084142817916410154012493057816333464510087392511098657454745638856686247388038602518418471058374612137779948063201843230903428192516543350501751500226732776287000017515584231509173174503842271388741579414445808810688684438808296417762047260244045207634456951250869876708362400824050752538365001695374244657778336833961687685152922709948368092455426227440549353669620405276487251714957917527735858659107592285029111679057995340539011712847533775303969046595847496026928688235367319123548864659498549201194315280818728065186019880309275679857389356795822742621503483615388433675505816331172062295375890843059542517467216937107361582628181875347863806307163326405694640307818657773579941994435916469307323743065306943410017040916916572599886276433170299023885716841891039756442356998440895834787039066137432574346515903718755412642299753903824094845971734640392320697575010578066266258704617441691644979503836939585524246223491540402231465557418791104668097113764970765275331816384563067556314023982004973245399133120743110577220485719565003485002016383341456837903243523383342443403547398157453948885449816442660301662108094553920793281358234750594206556739382025776685298308792108974464576174737051057067792921482275232385743873255576207319055141100262427592612293338227120520391362077427473094559042498361486443567976448367069503267093686935218201536711714043245734234119985348880210038588927083964146010188500333033775631303890264007568448113821990788103770815248640770734852013785709301835304213111183948742800341209603806773790760904874322238395652616970113308280369476192625851912148820518490236661550117384834058072731544294934133227874433298756511789153364501016783291372520241287071698560599865718918516461294532777026862581693558262270465117282306844891036603522577131170300354044563695675850240985331273769462668012440296733371435288598948944862345862073919601196334821742932808761623060171629517101641528287634353968042957314703028833866513822386670116762423866216800852176061177613844392186535935954284249334065485856174534510133867791525265164390373980156740047888233654679621536023506426077648809634612140593125514002198859354521389681461808879178669912879817836650844016287318904736328933343361383725948535097827063533544510845892288867323910310683342719542880312996649508835955669711899683404905584603668175313479058156615544400805474416053398448349810098461154897149715141683804504151265020727330097365447547162687977646992487421147868966712940645975263346601033126763089485376271992348659996303766503592118776402934550698799707233603967892926169651896301182924502254036730419498179862392853692056338791629988000628367898110706552891986676874183887402916968454633760596050925697814027696575634998266342022663080859769170054062744083510312338603199991441374431905423202234793496818446721257873493916134050596226776533373803155144905890524092424667848655272001238561699892811812007155191938529701055980828705729632926319564568159241769982974703519239555208155697257759053016447680732156378422668204178841379174522603946852835274369478041547688005836735301570421074936707050559566946816004274535656551294838114903146623402092016884297192850504807711483052011105128318363939183086429041647484340512269445402601291892419927780987993657857666903700411539474731561955483229645684847075144200952449483304696685867917315979634456091309737531893270578293626839341898616364998099847856570722332814486229444868526484316180779325485537626497856682584179921276462781851410069913798541203087499265363479189915876022678708279968078125139289536267264589460240031924350368829440997664423926428862633988723452147428261253991979710064243560483551800678764536345785313801562320638136488656852988309187649342907022436023349262383606408400213412102196862016563330487356100825891986562854760982628839006743821439336945507894009751469285055832969384444778576115848787519637828968605217954231198507467930791076307361616972875492784473150782765156205857229388368407274365536596424128975513516476643521308438262307895924121463358973506690530221065203321032437566974722585597861249243544655641009058751882698241747834251677841648326498547895992633815993481918153681584207146405541718945725906836550692509378670316718236626794421509123241836037071515315617319920006675555043359489559760366161474297552635361761969677504112403821152201464734118448571035503193084524313099822670340243999059162569734639673674638153022974225385966048360110122630110241851145211885450666524272679145666849855089680896340862864154646184816303477874149770579758450885534772383707798967627441865429158333034180966833182094261209760184872831269174050161614240566917566348273142282251360778600375962293043117694558496859695921330485924351531724652921796905124506832248396645636145910046456918423645872366636708780372343144886172633214232769352481192940025943994431770166591385111043239976546551842475629887206319915137483048198384778549975330039174686359179846287136980735922009964107040158260572401011286514545304461586054189148361907046547781704657034075202710335292138741247417642160133092690899670924911485832851648667514088108186242698184653548381443248571036832030932342466209479362542234530295698674877327426353541092430767533958533332201537750276567470175529010732427949564407437209824157796662340392553508182571121923888303912548002013254620256239143330249823460162473210054296431004369466963875685274816019641657325775516749718350207008205729708741281735825339080875207910698001004528472626009085620280584997164247934460855332234624848073507526660363730046545541948300309658198765180734847213468142146599655238906201460794931506974933070139495184301475954568651917326007423298839043787646607846754782310274944785041221574762432078166672831426711155506428990113235950414393749650132400911449251244554684893100107043754513143205061181359612751213712451468956149817279132965784875566249956125073677865533526918404144956423160896886069148255218212967878422583577990642221493158607424058795938451847154039958184883477462753979266929146484513580386266414620299390744847744504477839542291071191969146490583669224277529918052858371706280919288120153838478836131833408909129967508906692415632244020174149800133264921185347500787184082756328677549350529896766432033198482139165161860918393414701183602781647556736329012051148053400494633691116218913561833749611041733439838341895027254573937212673570298609393028424625722116029636679512254219153953364972542928214260389946675873290121001169826947923512327417917682918610459672436498060689503340576344912319504609123733360287117642155471724583647167639177039619071352422989902602520825276598022003867678069013159107736810344964134504179750358902699619800503196474765860536875595181472600793076536992344255057732787382659403856728629857141310156168333262493299131809999594849242397928146064778363041523169070634934559676359531715412724118371905132632189294935430079010404603606718444706648480470099291215780642584970992679278318534213096543956529032347604553837577323727550675474450784050652179209755573017576669865947129913876533974096804575641524593251922033600803341771799922608737919632584177561677656523484633117212227806889373831822889992945622944613669734394064197822004292512924178558136966720769154748232333832261333330501855650788119481682441208526655156092928843435085147220967859168736766285132874428018747429710964586627213963296632218178593878173881624509416482585447414240332618263148168493018673802086478076088923419868700863001193529847741909999997276148761830512072599549257707275134297170952459286582665411487474171778292060613927457746105415080755714137644839699918800631990579438930644965934502934301639959518336142802548579145406795990011278238875021614393346989167246576031432979956676154129134216935491073415874758582148052947579503068572845388834462382293360582392805087678141924219230504059833189583307752380484684694080484541317074680175879397969105191961084537720862299142838180346347811231985452137973343935381244591105567147212248860529473660359015092614743054250053129920589561439065977161881027440422644645381485181294704278693614165165022376207737814154457965134355650508200853814018329504707573839344897923056715387576777791865673423257158371582033580639929193439938674809994998859812383660664572321475975977492140131128204871893908141900880837464569431933429994641939972643778280316090072307183738051659930860139687855765058667050845873654892944893159442316888198504328430074982477412228865706076105272770566187666440849171956923621321650741416418347788918689378600140309297971521167804263382170057250984319575394068776867461194095578391517332903287103293499255297357918778883464303101993127990787287215414199101258181998617314487595526133903817017415530854780626985142332730842256108884792646440446997463293881073536226885705354870840650033752438977948167846007974086232400115759207410015078735777523418570755659472387370185519059137452924580323725677010139300921202116666122880738300877377960060157223964987333608627436833500529274780440027825664826452676448819279832270367999980277486479834781285390874097476119586145386087090668246578072298360784862269345634889322918465010065804810958140436040346782191240471052941555182577085389723796990427184124053845136318383210815793208147021842116918717906921513015416993480753179966163791479833022379498084601011652663390806467696025317068381110437204893957665770263411593867663587970159248295826951608655410450706972743444231787909440879280862306115015281243558400955205896737489316606125620988516779572608940377180258980563422438963149084735267374498973203379848785337666326919363829373305053017294597644551491189771856843546764026487982604108495050058815048603455589586290089673409779294677295683925797484982598211701112385684232099583878090385703382668652230082062349286456255927110546321041927285996928845830346967029456381683503569968529933060725360176394421006855333942928296542011425360750617194471523262395133513310612019451272658701531813669217079594485798656668837918894960064064967064577227030013481306512518845889547369856175274718670215105366450908237915427981379372372992611832730574159957084392939686429835311262933517182041556959770214878449303301642778598216059870238505199304323600812463757536444727104923164633224298418879583446442250659539310373525355843749765961907850757133163619281048678008991792204388036294934196679636471299173103776402810895267736681092349251514934643287677781685205092697694765903295730889116708783296187558242273411561978818932671369106801745303818444395775448318018687720671988855527166253883408769530976216882454595900787520953550038013083235295017781406463334507490196585185451980283207656545222696623871689326703479703069010967943565756354251112744490268721883556835031725905107416692362987664742970527711418571474837302313181683547013937598476809920755794333068700341725979820078898293739380501782030174712534920887068533875860839875430030080446771897802970146692184680345930547895329252592024860906492784621729051050326058543262186223934395875366445157486611520004895062461767367182998386795048841806924250957483382681552026701329883948295787452126919167610041730438474119025827203293386049828326512074357935338965805435960779608979713160866154514242885008777048007771864635149310341953839303093087699539057101423921961307258337672061042883534603480894057175162728301435092788502318048376066799411265751451628120012458117087227027979050121180665214911210670521478381995536273292491996250711556714264194423707486883818466283428939543827551713207174144135771724669805146488995200494720652885311975865608214054749756263176231564026237040578053864607782835169375201399269806451165455706815923878498044445347338018421150076008055729452997714473755733731460852520510275826832330112313699304908767272151866402485009644823160799291866978339830100337871207339685239159663889190555538627690149415968906318290975931904428492105482822792522088880908407496220080115770234475650425639432606883638373904327542721626751815959434307537113331974801790142137151849674490655864848131748861029809685420575491249890939389934125955433396928186426049302174753731748439572096262844800696982331186929515546340688745657656572516528691858592410645195976560843003862930966937955800164048361207331689535605580230123646307227227194229591949402431854687951698548244354408814066321195134496719310831669114059600075033728877087545017180967097624636493873799851298640518223964407254191624956957719079738693885995702658606809423983056329048497603050395838220538606594269729232610143683984730020072682442726034176549418201534050079335007350371979497452069498530576190836397560714529912304597695469370092000802708879073229382429278577765489175162559198585999586471744286802969892261952429249945631930007265721615976283364301583755009047395574941010190703447301498800281411836651047925055403764486490557475698298930043890396030301947157026399603668376767770114426375877739719693133846211582629159170540302929635098035247843203767677987418994269806674977253724667458617145918232066104929893396595674231566558520800167039338673216098683686240382445492891129861569190383240350962833023742417787052267337619082559406392518291201149245860156163616893046707176070353277177776535611040876073795662600902010557713300168800813311272532025534571957072857643164969475962011156068010106877318683541492244644218702013217271851366557265981457750205695322161491615975740389950573481403261510706445005003212139215422159085395135459632909612026564406100788230777143524407469294905167809707813106880989546450787102008774524478873706237201679984793869149810113087943309499512424652858278481111396529245982296719441111976549146230169537701354716320241047787878063885443152750411960826514973591635497652017385183970825704478037341002484008872822861447538773846964320412068746284783558046102669527104093204576393416519284714548559370823120572516443538744646566859610231623045605396930172870868525769966180066181912609549348760906349524934712046937614877420959124819678479242285834653497308398803326286600775878774476964391063641128321425463021280256727807892001099963389113176268739968972530250410555074421661474747214449419267037771970479222575022913487802614480849871052448877476523829276470664319254863849366993385882545285002502682981348140930089890172794040962869955169023619182630884654329463073042270537376199706950119009768868934714279805711828066043936689664529782776084355099188134904491273316651732601961828978163730222121903603145504613344586437200934196412323344659840000306345885005540488242219494777527722803749374929618740808860268950110928475952924825306686476527402220590506824897920154659922828000525096066139221352807610527402816772175559450132470727510413452822718605400322281458518158390536132680369011648107275827104973699126419584466377013481342194572872176381393375545299618898817385444852550207856305216243864604920360882679584219870537117114287184654012052395471597295662971780823759003203827063821631129031674927635449931428137851383655589801153670218934064719905394862066946752373060229845463063538955289967508918543986676716081940686295165724574294110107415230449507765904922969050483403557307018107556051750702637123895601637216762119173858656264388867650580098521293560092651290609333086168436720999752841902994175237483773414833817504643287068504779460540867489859221181289841860894941651470443208163663710297317859192468553577865695055819928014449281359844080046762997963337561589165902656189064895827729076068156363368988377294974888761866468866736586125395473106731913770087235089629990128249917599106224439795539232979686706410923209099232686168514484159973816240955837717304558340230452084874141491291640401172934262611788173488768777979133121633036443505177903393799506081489800095525376502843906389187486846106761317469588678820421404041664238936173070831245656516854133295018406443659324094802513301669824215502840930739444659492550019035608742818294378215897888316599539875817608478545633728631273076968041179380644419775308777778490269827025501615233396197236874718083912250222983797354784775243206054495945248038256688309006718556103133842775592202036877985581499377080906281505733355370713722411178855988094732063866809894837387066483170878697504767462929017879012260624923880140566576807975047214023466384947163040971169495506265085279247377859274186485717217753827577725010197345767400935606762826814170360745907612847124985966698601141299304577103163413149657936466090059793584301015896946008501887450389855648380061467781127156755977926121708958645310544093158006396695254734706681359597602923591992757988729591053460544513816803919904965798541887458267706925018316085120604360341143745861437818502647356920552204666355918715968492471012837607073924119495054075955825301956449235446382923585978983284765112993382423866260598298522910381285592170455640444653194483912076569898459091099582928010240124723218180082666850476075157231694912520066611688500920646826377329391180845587440051951661741733625336099381531707670251126939340935119421307561011714816394432188910776553119959713359999459408352401708695141229903733552221849762596160904238078416509092335105013772291362404092174324638031126464859991828600902445445849629791528628547764514685570422892030519040152340763826180808575891611606714337215780300888879241076763790904812455586318375557896205357723031889163056873402967049389503473830607236388628211613535776748053467573182754197933009002946032142185447606901899904711409580442024991997538820219117610218463914833029867480711802520882887493109677215543408695602194294188420937737486747382018039734901175357298263925388073355918752150454442182417912496022572386958422490359140760758319001214850027261107420434412675398204046523717380634636407749689292960591345053401557017972474651782830610026008700723206826739567526000770799677112066205655464825210301212114967969373997311195631944300791332529193538622840042118630976073594971606857081302369077584236184263628842498915023806794574152987454770005627652967655401265495307924216884909799945975413635475207751511176092590714766331717504017848122856043723811784518108296696062451674577588672471175481694883960331810258537292390825605661086463820398391837361249676543170702818791250245651079792999496769742973783857491648459101146592135302941502694748881099695452041252227464055752924995474964169448517912302463129358864008087315255170199347252740633124099628781698942777038404625812823559277906281857772379426279447842403112815733693408296268258382119550867686691745655280940085802536746827988768084340740564594831505788321101783499094491997522798345181132550036499675396543950897665760328403705184675766095974279892811375705822825810521807494235839794609855552736605378013658853846551333534723608310842233023759836405317685745862696218157662562922483849389144997105426824604021985349295342635281196851359878984288175110077379816364426427819490124866832843980369772438956192508963291421365584499029620194705990893254371309434066462870172522609713731097992667938211320257160845669713380257177304343979093875097227523110794991935883086705664819732700220853131507763713300954617110592296177773598652944300954812707576025601945342783960651530311330165609466359337224467728610416936966081394100439750086365089074977411760824542056834951031242105829224720275329599631146778919795483517077551129492018224943915815170951286019593977428291991352806679918250413753921258734556108464129662598424055936528663267077245358257863025557072953726858547018846440053734349949434928745260255046591570085047958940693597965593485634793831808467557037192695048690232108529429792748753373427895358562045243224268106485776124304652747531671237340920435931757863528776802731941594867950569706832599300529731499520040060719252363673743832011620911728557510575355008464807716783316066013887703104103836466721583763433253342945347834553665409083528846919966782875304388061768764136077800025494113941738698713131014973794166563145176830816908459248397415314120226671860040451409560192828305534677613322623850014959889600910838635196684197422155535069379912883966285219679187566417211619646288053313840150849981022288542764933933400902312575022521480761601674455351453038630019761062273566288811994678660993879590892471797607204325073868758908380203347539138108524765962041219818839631310499152349212617420143858478566226085006528719881091529326018691726313781720289845147425728222428548030003765033628438101084140490745274362325782472573513016818494576878894300649435387859815219131627851199199033744067822850509226770834016632208420832830101687340353421064445356797558991723713144548360223375145202287720125055427006757172756218755489727591646482450256201459899347469031201414002665225869491835797062002871098496320204114490976753676249245448431313431741881771230895110622114643450140910844539416085524862022155474580279166592145516879122651896850519619761479450113653530821271083494895493761483204492592989960374792865763470176136839878966677696705315127025439020925520199924015853428527852508417220242675150482404011597596339040544825447164157334644797179789784294248320126946339795962511109339498232775248075326718456318006976796369135531656734310433785763716020593159911911329697889075556965654147823183783979392868066565399630503050274575499554446895097709967551547630719429881105287038460671167461427428326054107499744113142364355791405564696293121351672059473690370891895377395257747732655192673609886763382766333394590414622850140138215991208080312192834690449075864972166623446443508931997441058550187108137711528675582541171894052125870990389342775412685092577803155583819732997403070777108029027600073522168508872110275795445199509736464704581371685164724236149792290734986978938148413363258230769105734120894789162038725044626772983840053808582666454037170818023180192438247459956734524899113015948656631459794413709273395523836362214218686592375842866531373398238154383325961928573148568362381501049835466334533007541332870739107003993338581741652539796226250812838828844014279479549351953934600720621875202057185846176546906874765213792393721744883232291675132048642608471307340234376373671465809465130745552995160328685223347628252866997576889709598463405247168379262602015693106322007809555890719744940916231541385939522569785280937866601528041715570720853296769000209640948829037335093158721023031291655089784708290894176944340590729341506065158868899647289263887751631629342381538757279707892339281736340278473069004426809245601914426574758606814871316556302395013541635694782205513467840290399395166131338728009777893674218416487085462387383844317850970742834658912157244329553805982253641242420581627771317638787553779869688741292762140308171655577402371540891903948448784653256800010313156547881611426774696012846569841237986430241644625494520163100385427523393748604715145323209326712452701479250903958484202444035926326947421904410613149890341219913477363391138768826421016082900440467262760720566492142770292142447081962969201621056677938919314794880986084619122773898992025014668554819960012199035966661553867438158137479721388794689691971320456830186531408249125711842680879831414377333373316849321259027456720348673916006719429797892115017302119596213600168937721825772606783909158333005105126593869287750633229693143302691641689703792951508609049078905900973212194988879439576209928085468160840932423133778518574986936329109294782472183321814854319215801756292215798300371868033914904974334572928424460506012467602264591328216455215166347305384913856282613681906282241414390074938765453081498192680435771046677275053845924754736370980472926028843051355615220578693685562673478072959173474944985485864833663187695008019781583840389785370421270933508040409874610356667144066581300918294425258080580769356676857848968041422852587567525890243110678143660706394601587032000281353782180036046812499082674443563111650148452503933402443133833522499130280689282469932878657679438432303194654826612074963438741767913284796568632369455857047175998912314336533579428339123592147331829775141322968007464857403072590695569170599162210488321343857773519358897230409728327333994168454422949452499439736562428304503070998939813432576568235661777308102775522614330688586594413284525073081271630359967207262440260829307778856662206960830808626791495747711212154942514458904639708563815811489037717047162474140263178219544114731286200268345515485129888291217108728323839186430585555523573997346246142751663455586120121720954673190613448050477511661975627146046374718464468801035376422048217670707868266252361294844166611075833826886099759908501841742179831253019072184077975877177041196054804555187506482086051405333100417867155585661011535416590465191829920443032873311923610716290033756218915586415493318283820429913344114184455328960319130717128967938880140854222478731772365900442383825471027623595424597718856242339274725903639737772637387695563698981560695244995671858101778232577833205710404354513311239675670506636804666953613768143990017285108737157462548015163822848532679079258619541217167986171025940361789859725492496734626155491058385371277956326153078823085844444808652320762706891640102308953472889058970353898852742416218945233524478738823598310395074498181271998017882118627119887948874236521901353491073973037445685589774007156958280456755672314932443285103804087063780038524329331167202751516906061089262992095120800844386370705170134745729232235957776080032588860595646199119304095677600997949323010513192944726120842213411083363709779637458571875969992345391447618733959976008474304996164392133927591568073341492015242119508453173678862169348392557105264426063697059886648583617713195814077128169563749201590726731525516158936537432704713965514023161728966183944539874550197965146793578498953126878462865092605009789558304384353869081918409636426735696516873022977191796673660773166116702398404041555565527996740267250298049234454738622614134087761265844705913869337670271779128803131787354009619918571449511966676528626854794320066723818367256559378804870149754946258199406341483929792809659239117497175029512074052380406760338034718572427414704538254337693301648989413660444623414241427310465959453436255950651639194346480881884460731665317883672209277828237753712092764508931305330126805388293512840738136742872742182668483955730143522525600428885684903496199687702004608203857252739093810638175508280203009529126941957876905016167206558771407082488673276123712119334495304897531936224018479809948690201246257478679403073198617978727144726786983293441270208284857673191684695966431008047464805269153558364257476437932726821038800795821559562320276552658829787356686004917618462288998089582411424455004776054945931835497796801500889086893222525024856007415566648817066092023358501712985677519873479965018241720409584927507873144534856335001121859709103201085009214767751984901289987775312178800652379084869525745769856021047144824924840314335324775973436144833120780784364884602280137431517588535319995496625380144364291893777966675512762658117145316580563126094685980763383891795834023924078593444433883760961661448016377909846417432938668323857938750513212489302795500490996999548499285635830345828077147006828651302676898370284826501823847518706518890138877030870751894981554984416704321033038669511331611931270842775875875589433297491656110911739882741403777030577338590115225298981681862772295637810036902333493061689203214624065585545084478993751325876023953363642351234950474960952265273717370041864812647679293076173225604600470438361196965243849226215855026662828624152923746646151391269720634703998674390348228458575516697768429290472153144591154350913788909184428660538830875989711733223913456324466163043424985116064967160918300986010264256164709461353236701351381125991965766220458494458791822744327404740719559333731112457755042969677783249156145211089851103825722172865871335519196100334445228291576515345969002935015317290353965125364031375041023730125144156171750067409329626148387241482355977547724052777395619783092463699702419514617057726049385923519473172089325173683963786847290997132203584936540875714675764756839225407877314287219656301310542129070100058949404886195014408050290663900236300206549156732549255454553883139729988819048146560767965523556647278204383311032874501521385242581736152376775879230622460047131347499052420133926027760653137032536195123529765403431313336447683379272460111744920401390142103849368971540941891543378928642941866459740574517577724128566137181324023172508874530307760437538663137824229804928612621713537398526252108507108740668794155887760596553520129123708958375341648342158661620243969559746920563841430674344756156512123154671055338141611410711283339477860798931801275525159765433709112070550255528305743680052409640877848645972963229799790061810426410375748802622121190692761318233727697298987718767313625052692730587425053019760574111051729653796115273868280271279342355915864440841131142632838686822757431478371226314627634182020315587793660022832663183270602654070719284232452968742269773864675454151678282575473465035558583491084528742775864057798540610397271533895942212473564300127179888706489460237312188440794589609887659895215706107190234679540423631708128424683974241281786537242651579546118949747414246305328447441126913400402769482461409652487334563131504562382697155955429982125925366397975048246075482719994036309332415068640359154084250982585708533581848908614420677575366577846431302422679648954076888600995435444219796069469294225486396328847147732548088070049827733430218251283655187565368540286112151781523595874824122323551161815203360929213580017754842350683637684853216351599143023355224027317459936757213705883643175970808816231401237978033304262020002969738256893313819427760301055712691764267165658645764697041352939238312698435869058476322581107436202709496361975694424240299807079835478413573698473437319400474705994655168509551930833911591132470188649797237405129560096715331975963887906221357133602164277445617647310488853016148681773951175546793940480781924659004512626912855572137056038960130470018963982038692707589453156366346715008742735693316482543095355420386808924425082484373430153748179937207771827456619739610738823725802833014680407935830554419843853696804804024190639507601345081064716761784091206260524333227455532137236535921943267144255181523477111188720966610777816490588944305632821421941814270264652404221897931563644574402939612136160229379554782800161536048633592403672604669544196774201971898785532570478576459634287079786170922736883795972050250107528881432092485727666859539038634449855800376654598531989861255399754360192823647976555185256279226978837436625038252189581537254464943123281979755100384995948091025764281973455748552619559653195611027966911597789871530265927715809562046831278275641816301306117855499619390663914934986169386337923932807409799561057635998643687500081257337980133189142583231968046559545021422127745172798513359609048203387923495426499559006275501029436067569429203435876868850393849326579196323695981679897859470161142603733530368264667776719914140125677862965505303356191085095354104080529484752340776668992639015996189088509016145600754832459786966731330271097873559604222732563751989216014763170727787562862186450218457299038599787270007516699311672354148287681612111805430435850805342011119607239433489027784180018207947662952143341558866822122495332632190012032898861205963423527827819376607757516250286596344158344155704078141141259771392774787069985915716873435249777479890600658172210569855952250540520782522871517097080330567090191816402348190810936696480006000204036901684120401032396400883855348213073707255555436888453181012708476431122249178897810002078213191642460946614160230332462568999462494084618492460988346594692068539631406629166157352015216978844645059939398641157465740209296471049148465510149734734670282264668179097405580273869605105089091499184120131069923539919671361087923378302390658712964125467522082424175425442157693583235579180854229945870004076754484567905387477707386049979186682779682485045516828904557111337899670971766229053338903597315810558291637689693996105930151357059380334470552444087660655049777454010961935690268181137360448628263745445749627136330927891771450586109401902952792601837927133522377433555083156762521813265749845536814373978060876071543292967308588719960514911716284582024806887032412063230486900106942100581003137171169562922455537777806925608569869524785030868518595783091103828987588821211028499503125960410963582171761600083440782590475923864848607484851762411991868632617257395524181819767026619696927754255174545784325997005238839802747633286281055065771382395959059362180776097013058863348472408941390094370849531763551158977093629361771373342673544728533337206821617727172455230283039323382137678207290561259632437624572170794452109455140859146256546878874118960050832670327567121253594021477727129675753517443827354166050877141874390706028661310476490868879639250243856689774735113565740971874684333734683367667476193514809032171208281924120435463713300478666006680341343037696831392955081038082310033334964463443624032314941946256959051897891554958157492719893763071347052588478975021721304364464182008192960690838888708684544830521037893927128855789823948658789161259930225963190686386790798482600100962329890209785454324910847738809376220244805523113319929365139148916717719019686430430328009077793704727648089774687308898952893969048696796835982280200333229009829845597549209350001832701035026276562888877855212933576366519577767709578244311247082024518810905867417642657486679575104180416107355737374469943516715827972337950195966722487587770506342468319898169362853595140568699939911788767700753819245222325474418721158367052869640799155660154754225690329473610875806403057786012311463074105727186382603212766092950498241378954831993102249243492064087684182635392011420350764866169789843070770898366166855924393278330848858492807891446845518741045801033965639226925143986950700402588756225822376450462110500699847842922342575142317528234897991000673908297190075381355749889255017728030052821671891044169839263895443697212113144287712760192862258548412644281692988705310979587829894015287249392976829793811173092634225360181931786197808637184804465214651284670611877235971752349886097407351376320696839684494297774368663317560277153502428082827548321605309368182347824960574972366613956676970321490018476403081037027320902249380429883802326673443522661663664075964928515411135046378037384912738334627958849474064998865665564689047259534025340814370697290044215792312524356421905121330481257252838036158707346498638240082570650694441619647035735731421740730720281039376051602311381738093205833952517126889334389869589933235532809932661466192880764778839365787325362899226233772025135672995135266879410992311382032287969936044543416852809176017481402677792374883000573674304383001577019560113792413601791259851448775703961405233075676207793470784671832098594518927897617977882269031744541063375746408766992969272610921374901168860424340295484207056638827638699248818300441440112618701188662502749184378492531065710690667224486567323980183972588546647009511779178883326725848157670330768200881587037472645657452553634195972343618485213942485136890518694321353774662024812089519708138667807297486102958606156099211983910391897414976426853066705263149546777171119130319546791909341868547880423666814650961857118881632044423336132620416281013094950673247695301255129653148707956272486152315835123659281940976011608718525080534687129633130995964844802199144454490003955377537260803268182103810067741733948749406369391072092273034235372770084735083917434479468625453040911729521342311662524340050705568903905614390495673390893481686334766123088524573453032231004759216627620087758908500531240860436950994264051697786104609010025757658453569992513646490700217883733401248201707120139959905593717944077762817335215439615115569952515707489838914205702538198169998322446250153914213398229713990089730745415981028268698156118672995464174097890275261784492011495091395041551600408134569873261962778996993293238921830462442898468841130544669659545515047441432976248269108208972083730054340679844507365196225439922794443532400188637133026059891172694408800431912979277876330182452209968603827758288337612949921661942304021605024105093021177449109730418171127593706044378546124813103364380404715911136914945779689919973929372331083587070834428947481628534181364533979808361999492050921726867025173933674896079771333494862735726277141693019856801244824868946474924684877930356619683112325554989514984449618768248841223668632972665433339370308574606261304186637873529177388792681040776406563235599477466783471441660073487722886344447373570557224705308522240853535768350825471652743267819250651476337733840235066604774784910979875755530317263537671426875802603122663126199648584383716079879516566883514495603344700499750393067410679857139926288816898449997005095665296401970560482944511539330079122115532005746985749754439604095269255728308640477437405754526723470622843346100428806781036194148291470707919505962900478365561918669259310277659439603388214757372199485848850939739882063160089159898125446331878319140240036868849815874532723885240665120957732649799132684570023993841449021642591299335943725495670552451433402771198866188236027839013316844559028428588718442119701046304543581957066241731692042034354322056573886441659092263818334936468689713650709325363064190424695556014172572060521710252429276730268960193101569085998368419024190223438668011698585873220036614663872860181050560512060961053179354641907778293297257148545462141702015323558963076830083022775680366711015160950631303173839415789149279886662454132553335480356989673913930846104240088015064547158486224731648765565780606409403643773681151630965701673267753235678915833933291319373393801540986332812238940321018328075653788562065947809841424681097115996027594181255471012103305705141063921612759630778545481037545965493151938942545917279402968727907853766806400671891639408261099507940574904292515290842215667088987552326446107132622765833833860186679906627952564358669554744978667344781427780788010434324416891653305347328932214249932960551640842659235863939308094273812460868686351142412906117466702399268348071033997623884811515625477891015478687022189215679728985353951443604053737107442290571980582312185611914712371368701654684763928912107397046041616763042781364723951792363524849169513556757484329763795575714403566158043890112131225643447803863021684817315847368079296595976253908365622487173789753867425951889206942703736961591260446542936023607311893358082689356883801024920570672077734120105686028727870781807331907231979949859404434421208596514050703933279435024219789827218182664698249607693600241159096516027203766826401569061944003746940480979811336465657901299206292846405877239812735183648711909735891925863636421297234946323024747767232677926673763068984216617639114562827508837597048715213807051026006113792012158277399729857440903490239659076174186153201289882746770198140634094126902791361160056138713719790641220275500626531391632177790262977314340426458725972808352674578239715511136793023725809035924286513587673641122452494724336750221142281034086644508390525142160336243327949516383406410129499021086622191972159917294616265501020548657013874578020392500910531232826123134053558158296974740847102657634329307869117320020695844118240955088035273048893863178054349940086179086479229654421192443145902504672870256124835988426270741064356936237547515847627244101678645195908369644181856449751354848208145267183352122550783284557634180242010727153626601341042482461576592202467931303931650077017483730252127915865349069176923869224165615841718827833387834515544748013368788610544433010111249045990189907404963178584139405004762439423618720073298987943032367213916695496553955566466920271404622812526002703580409103104666909354711699439385328210220802635590124133132203771679418265709016498049995692544611566083135495735367589962737759057926202432609309210185572146180843079691478942618330735096046373772341910535661162762194452137289696775424904556863238382742376861573295295262460316761141997383423902614739193062048352888852359029261880547810885038036380591092565901396119417787528190385568467260318186669725824391288796281337900061302038166827838251810898350817315441842771572904119377805398951481584135077124260829409574685643133579133980034000858216026290723487496168461868307329125739713817671134252793075665262850408496191193247977895873942776038258243790539290510314128872030164142939501374756658389770747294703900286991980770652928499027084926829852585889996490427211551668276725374401222473770411586735212876683762957426015543295581562884653878588458394593446498435461982841424520804331736639255813262338251627981762782379612538044689176960334885073056823965600462586470010522537494177929749035261972630035447086454555536228700697248961022386460864021734804024329936829900849761490320038345384657758670416819430520239831201005398402051805658658049656183450097384224406025172464112440262193681685492364864408598226268783866279354587888236918451567238302095388367334212698618411973311152306290757825759741024888328436401638166030539713666669618378639145654618721775398451262814064542552806500265560550064355900786553460315374603609232918568496043377842436444904289595027317023180822742804407125968030733677848194305805563377836202455314252048379429017936827763244353461624222267737106804514408780449485875456479519227085503676661457356613436700519615328256878269096690690509932422803425022047372002766655517748151276023179938058897005263037180471425342383113108792543276050054801485973829514312448196243721086119606730240204054055810312367318531364415582101561669613707122769086443623286071444964262129023791346786956911853853141354129891577449553072126182215712592341016977955863829065949137853328786068938288429599406681828800081788677065612588189438436449012116991876226820095210515697644176697820441803906342777304961500999859876341388947125087483433124221365794729904642215547431957033407128086751573334683541872832862849792927256025608987914219165759900825382010757205229742046563914701842853666605591507134385815146335037828128471358474949904172226405798317793973734746346005966347424575811342565978665184336681345860325242657922167123096541162332614599363837397740127292806509390425057325201366189778322464817819283080786548265558539611799158282581453221643460421432771970596580957593208233473747238522317452764084820790344722622769267206207506649995883335585760009642300363287891218793023541321930332711408607213339326802981820925066105422886985797143847919476911429841358484671643110963479584671966504094729154978302995541335598522706545146895939879805557595425734618645167999065880615978920993703218181158237956152280367212721232181382714119422604153203840553775102290666256393131170308378611659426677657108442834035001123052890683616135471191799497860130822800883671880469064743922435685277020720342593684642891240475691129865120844521692710060399563794839424131252060841892797611694750777705001890704108715343799420776986762774802615900930144999011024156344816822756955183007618813116041846018834752154825188626405405702678728077970902143805590742429126474208300380584000615432329876130798274680786649243745377862023715504783290264869192921779733700456623120848017079004498878213112205792451944733578116278538544306650056660800524471083047210758058057901960993082472620781591493083944905726479334453179360848273433765191081532522651841498514476017441157437389927087772590712258433751911313015612678743953201060051078112647333342275257909925978441224456595496625286027925881865192994919325272096133033642692081969641889189925905974743628494260886493543993555777417216967226800660617237536964164891647289676047878956344100013437176898632350483266637712065254947196511451566941866744377167802761548586696309692866277651642437480214572722945565149508636692082365010003208600581623363929660601349036088213470749527518061215112303761233551225165328372012847498474396387216142092621816288205767535045025784821890285547167588234442056408847656997947105230839432110968040888079976182830648962930959162671337789835236163978507951741112310908604943794819619618115396029415084330662488130694878460505155508847622740544145599796010726512171733518164660626237885070232345982040186542859925625255752243347829676802605516978979979173408131131587220757485180912133610700150039200295159845542302844861368157690123349746775638919433467404175035103563528680583142003629132068717567198327046605680520734671242688852569348773018205082070757599377775970412861501470210753790239267043708261145359368181925733760143642730260878336037197991774444683566743420974111673167440109350020099685242305827999665132948789719617871334019067005486508527261428682182533857137753175129354925945250000806631128857046402311566180661856334722896968660681781019670800941468568842229952879365516947590121570200037219388211503141158954902206096753533115396092694589143331618963577685646298503291823079850357721058385834020292612755205240306784137867202411647583447057118757111690869038861828059327635026935130221889028422540649066823771534132150582562006860727612373064803526236219768212639511449679606011529941941132636114231216267417867528258166173148093404447096741356653548916163565425970939576293622715863744778926248690577386337039453543490020328787483387401623205932043376274330966406221132408544512028579907787389808241372885057698607674805603204327924503926277830333800654045230859038128465383653497317489463538273536346371739962000243675058359198013913069740618981093942886838763079883679708793249983249954066066449352087385982673366936034011142512223581701301377921889357973395224850659703460913431511756466879651458803731909410573907294225320585027605359814504730259343273405742561659731520182653147681502221734323806966958989479465094418140262190467465077822769717508374740236356139031239284931805762072913669491080932608388802337485020991632890743245107295164889248653009568478571135836868444908604892246434549405539624158215657797942223778134663080756196739151004219299022037949797396488643567323620887000471445934566121216437998877881332568606192333881920225588024343762715483849126189409211471978873224874430016327605640050555459729670169730608576655962954979252838297027394612577779172501344201731902552561616386290520685155756333990197701363078415690881051974920726286786861141351129963110202382093977368669692322388111704697507142455877242771228450855983051867844269974212512623865844616313709457097471782181249723202064841527828013160407531407407967226589253371074037251605112468433411936469592268447615133539252002390435069362333509553968290915939208901299321415254847030751860116699205394363214014118165075359878517931285140441064505132509426842654325719814160630192097372701759823302451817449748181035033028128450331697121925495440689431474522643606771172843670940124285535438338101332138289382467207612176170615594152719334529284114047339066975091558028154696606689164994358271112096141603478989976209799593940117858662909663552825461468814579658875728404048398160626304151517817677275748806941022461999880371816215209990126833311322812987232813005647473036678865893705878841784118252359750426878930817752654476338385920521089228845686370632111000378744069907879298567512488165685068319391629957602808804782474940004358090430679858837807791919168412891116962308308200782413534930634712756146581186156637625261243573911042353051625279647079995694958288796154951929851135511432135689908488134826402700785067462565150370298433413850050333872697264864484443151707944537970569655839701773915314849571057959132094062021424155645949691906761908097295938081549166813963053981170680221866307247341746623703697953335243957787316085068178321306123231718911382454320079968363675491675240936016062428703879526478859194910902421353239924721307126281275969411845852413836330298809034484459067890402798421535882639735355492158266087799101853578222083869379697202828971243916235593064140062453107986116089929435961904701163743811058671171211070211103878686284108993664348378118213486436893629824571112224678292565514862437964045982103463093935338007578986527637345619263676458275750715437825653916766322517201707138521978275714522242998968622901670906532797794434670841111754425770731713433637309557323259339468600785642072855438723537249257316353253890463148311462016444684093987176502972209736936523318799607722147841844767689894595115141575048365591851437355917254758179918760112001732022145696781630395508285059392889894301512966293097719320560306092645217027060185939828285617306724713525328186739123746697315631946442010475590327527868552288592633777340862984357297229290721552407868984003432264890904826818559465387719806920916434823549706616111534284121401193045424685047584102262708286667194284463866063493981017928793063054412041536895554636934379918902243943202214507014073269897464895946277153123087002251628139867873279716699648562685395047131727329510496937128295899239432655040451002972733513123840858289282329125917902012397443239777190290473058393975944466925486702561161333216118661770619819394218339852266046151397410685294744502019432062442461611403501792726452098314960083121822420457323511238578872048706199399017371531052827831896971254060654461783972324486627911983107144113556325191324922661215262587495071339954027512514605858388865898986087449147926889075357032777010966805351037634438198316829816779118787298185218338047142092551187174443755554038256358037493309590155872926905959754429836579621919739299160342386836517475602013917196195154990043396672982525054473197630696233203871741838236210913368294415478666379798779441425634813633017692718299894748058730918857420709581666199394577129073957682069651082783941575966070931470645596050203616262612339735287064970174096903609461362506417005048154272117380495032012352934233679679316480511564360442748819182057609932916489329195196602094167345855193329093614702326088050351810523325317643367203474483413035001567793841039406982573277002845191266330466334355466796350083187074057491298896361543930268601526124531270868263379180890015219639346756381072218969195003855487034344089013565702323486903697713873285047580988896349864121133105887437154558861440257161502915687462557361516503317780962244491478902181327367755659187195140264300967902943492487088316813074580341349394115714267327186604114888854981300916697806227316573660708554216348977077477731147965828788298426361039041055319262279141329849045159787041394414681832906318551183529820769621798750175302076614438407247958175134019869775649507911989103884296679737532798837259799076317789990227703601795092665615690435759894939303377150889707147856347790623351075767515557365420292655703646237164035020744331005345051179405905632897392464339897908708803184638018013576407224549165084986187921321649720409903933451801024120271516572341439659907323643316408145731737679974596800360939654837478107061926997029482710937365773115489335453508997349323573098507688248821600707632157572150400237859655815517999130554171868286950996093609291774112176245201349354389601714256572506551167970869822412685422999833815768257711886295113512135693035696484993168617180688091345134499291510495156335324675558098733228382811234290674523773062148880351405018645833736571066918786186452440087995261602981974447591436884189976970379491801130631774189795680864083704351816257663832278533536870110107250226678597212001564554078369413410367984683082271061336133488719800090135067015968630279816028635296780304681586680009925327573768531134441909640383552775079091284054863586784427015024335063895003428683443837747276767190509501351961078968690712657650629929972656502552640556431607828747679963555715268082671576928380721525665535212380120405868213238684602407452567403668220332393428364046216488395419512155904682252571238136734856057421427955144347186986387243397774828293628823607480643112078879890439387589649806489309727889862980440459441553076376383990946607885838211414239156521135140317553190920102221472172463121765480592271106378614332134747325786735037934255176069566442287942710912713576119894974633285567503260171139358715102994411766058362202083378471969246016989002643876221953737653095121266478444938300653479926849194702932178048127078043069489898391711369397479620135225028565263148694963443597499396788647582918171702724829238700652731109330273377236126469206719774467604177577346657818046279718661606794222084575016391155811793011953611747859618691193705320050824982118637631893506917369788594605588929808734241589709492499040816327540760321456806526009491153919884253208830951051381862525845574849139960323376841955332961410882997766016154836806193647359600210826038812512477587310977941043367293772296264192069337081857559025904906279703040704047541500643643814091048146103538655561976180432612699327291841969209005044659129028108194473097084687112540684200322886772077273633773042724749243588252311812112294365142451563381853360726728146113193737977419095973469455006261592520733297064195711737866333903809036764472426446784892024179012168809095797419123646053139640355892911960668191824325725678563623613731646302549622691156231821650583821198111592087558993740734626530949555846008364055505623516459047767839524131107376001480481014173459234006479436815001729905283215363653992613020070668238496914202975336960747942991017448145548202239766392229032899992566172083927760957847238402829449067520287782174509859473908855505703151660778550794526003739995290184231942443544514869498203855014710183592154448756307033710190363584629855430807775068912810371291074113933801164940510102546233212733803404137491639793483379129251596989242361371399140903667631509361676971391415457338410499536594344702707014198734571794796705902364008118371379701491205900581845103296929435750808936751049241255603359962499876266955114211194438611913106568149599687705657644194327142991713415321479900203370539184615606194908099612731781685328126410644168243896638133260481138918997732535104706530232286405413234116663885969013969903467270301513222634752636774930904674932139111462285396586467581093699678614893057660836164889229304492295402800478372264928687956520955556373142322767231609769972402842361876706392262324319346261255816688918570405258010303840232861678117200130263947750147562233490867333801906491477522518423176789990605178963598958358557185580194991986028101676612558869512611036226660957521724573302222755113263417262704904163629011015603722099781749750978758546449722923012304615871706248033613134303665646691811909369639647738237566142332047325564712494022254245080404486309331961558366891566588461090098572503050171316279055883718297147576016311152541086969895868668000854806636868226139664066661401039655064237944384746626153676449609471605682165251105827791974120992959737954242110298684759246127086683336814880246439855380711057437903438890910597357482037907870532558977659989386914505619719601794055380348607991248463465324337033224847194857003534128715800418543050483615032269049741065553851744586183289159567575333479629162686253710654462575470174134656779201149514936687132361621496814651758589527150120422914949951912781031111215163750927784759919069870351359316839390604402294778405720274562746739826427883149991365441798258772877055713119433619316490190943476271191406956990647652595213882402196251442876792481706337230237537783434041417918610790178168260661890847977242509927776175635980875433046616582997236406031042906714958633949415984480344549068232443846923218626388108068591454919369395362628947546505082478935889392715021034312186256536499657555666447388167739805129269944613898736862756988688444116133385947961425108605552990860611835028596065303658486906670645374555068155009691333737533273642674816374508565449533420302526890845958421875926467140789009353514818138565814895098315283859124211561982505949566507468120806800665890538057007415994235924729514856935841104694139721035497146412674056816147861421568122326429920417433232503263877067485381817908925347452970639995031464353338587515498910227543102549638300269657505380154455892481367011236673896738900390473591598177040166234996752894941371881673384388393375429567148476513826529476607125178043998487787555139921432599851133548934406501779352780065290985591076337537236814936582421853752870394295207377657021954034474118226380128927313776719859593457575589569465316964190357279213885031202661281699031335153410198720350295735150190276586564000349528326230237467721902319251439211702515777419128880720567217042594879481667168191803382707551960609021678804316890664820468197935980234225963167221594477007885713452916762620124241657335410317018711401727118771065510732864039506267708729055609154579882041699850326678087652626100235402518192540347084181388031452059734695101575094064528771415404048782774419077186014878741913152372294021390493021918291739425636269745766874188082017593441324910487561542953148526162258652177067098518783828841186781395376884278670012661120513541009754725075739417569445525281401017454064007312314565766797359404699480492532171048371871998201082674022390978874901586582684175219092587530167903599188120836527384448056675251706382131579858767926105263727374379643157462932869049631086778545973453445981558534478365505106423148049575168112514348655660489832209026847230240924005433755297250730805470991783497970995717065990178305223678946668537581388671992447768343019760054808270522031299894331762194379100347764768625156386173047841187308123725529839306074738524432871333853766200580182828251056967232496323166605178911746810334896521762740308855955031315646963318778503796274458745263725341192219423330874984243107197995105507963772428333257729331620601808122201943606163516528830853810310053925190274971779640917995398337638275354378864028234265845414150671954849256067723061072451993512655302706320061190240690080917299773879222157161269670047484064859431996929727117300105273105182136653941202139145958017704613507368659798467316100501286587316622317984242053461154746853620709983383176292070717738428443778076801240253555875210630874099640548297896363483079226148873432102857560641796364553604492435304762116700039731646069904950290152307648390785175586136647672229738617670103523688039490115261357513232361874917150143935013143686275590034542520158926515246427219108966760733766612204754458804927237256898508169978658493599506932562535055376435898155789758157884319369286931774721005671574079420364909958980798678220611094894074998300056970142931296659034635129419474789314195435747530959073245279689319884690360119107864474449367913175918274181787324880656762342015337825752995403918884312881549688993214522081800310945651688860670951148662219359769264892708205849956276566936178876031259570568810506130884729600476223015249024769875845114073957709671981821593538709896881434153800951774004193465372612395708846678166745751775688940142320195984993479265181602038014410394205749346906099134529916316268822192451303012046275482082082752003647608626208147383776172676457779635688828413036899367504295754614169188632201773358541547822552327219221546948089987551341587319773835316520303283529680669353643073770032482109827956203420522867467429232810178883395548087384276083481393946163353975919147205040828856761475714417849601906913847009483657381358729053169812529704959478555636314008518584807663668502196662004479497221991116157578581302471212899437729276586315498713896996509727913986250072529352476888170837484457054792210643486494677389745884100874069271909070711695503492051202724204911588073178296955625683417731799772538636109158067613279269444668647165446962438948639195213917899286473720089339121610159429214945572464599018551865092477370207887795043433917827850635101037152472788882648469107651786777833795941444772771448184028695883378948681224865886432610558905487722012339162166932138495976332046481608859500528789087650127975713627624407514344349560546967785726874626216867228735611029507523615675967179713428069215200122537267791085381733627094743687477420795780428129267357926975166936387582150442359152194839859276897038655702152840007684846388679975552614376075643073256093946621535978358564559046969070539224720733616041198949174517857293299843366798851939479108029785392735716139907470179010976632262335508478097297903512270222895534869738475984496296615921019721869938188623985987795323728162294764485585556158308680563278933926951979676240947714021250309376817864758126583840170931894298160180117005473342830363858275228863780265307203113663033335663271975220924730806658645102071911815129632830014393805641233888974783344578780911750945785982740493664799922900758344694326967732616894030058311783125678295912831746105145421231415192217776343602247330706750774048744996807574673350518721006896898288409325083011044144374294003645472267493743003640743114059635498546918753291618255016511750665815103378405287199044633263754197069964105776784166575731177631199426023673711106674218687582353925695042291258243676385547401163699834928254393421649639087082900063562026958285734428117671814177478125182925840507200266111451808303408396540982694822417821007235511456920499750059310372513014232912943515476789125600607404447063094616625470165821811503959400000416323229643729491617427100372461257382704089706575275839766145938567958911166950922318663729377403197174847654163979719951030957224063296666115589199872337404146776421348337638290740897055526232457742190420106879067863377533638153198254002677865591066622833968982189289008486240064081771089020981798973595054551586227560017098362364509206474550018833029736271873266230730290118423369569461646677191546356055926427850328814215792469924813151891166303513461548890626225080902384762225947044865274331355611121314997980943107041247676942813143420211667291091933854492877986151632254071813491273246294431976486073701068830996431659989266414945777584576042182089470466450942914402993313943471018026854281633406627413752400369691922201837755359843711344907407716489062920341973864224374212938498181360381381116833635705762756407771135888167721076053573736004022820511430993195190394383806695758925948146307644251352222920458885881748110546991294081811360059475616041924712431127431061511164144194087057650593878134353515974311289276833967794572140785182121717498570867652985608625555201127492321822353105034543450077581828959287825009472259921658918618589198658901412615025896086294544279145502906284961720352762997443963415493479872859541966192324395120077270836292044328822412837967859612073942539791662091728456927922961396732099568665668768781552158235408249212900074755481081443019432846251100009429372891565934996147441594415445642235256891360348728133323149902597587018474457429831596380024665198233494846883467571492377285813567257352308079701993496708972909262384902275243008526404632515945298711762603408563267444561276614675711072791505520965160679624192155739808323700688625820103772260420350148881262676199475282235612725531536863773707026866088157372956630083157327842156788739708289359026093743884101816990997364275507600119371966721061886052452419927213839934199771892253003256812371071883152262346781236174203720994251379830510348636038947990544851360159062837887227587776510042884713230783241296603502680875484710875217325912596156652152720959160372138953038807264092449973569787374701268636040300349716644623582147927703904062953105999875053233501103254600394247446597752888592670363438301962685601703393551053555840581427757764704117078781561744268858079225107527155973651755607013189625335758459517211364715237050836935295905098924976054348283366488762674963321034222352192479254317395780241692541632261859870415921528918671574935186046581117428221537084156729237360261904515163140458502904826556794379191943901730918634740119915630521822430543031247807565994880882798035986967236184467303415921806847137317018898009823746770162348876892054573799323219923077818273730512520143532455300246915856745807298752366133374073166533974990069460259548229215431012928310518289490101972319757573764176117460944913182316928856675875240338691943414863685237389459855770844110048797294402098768796894297154131191032581039992454858073534679213319326878804651554353148786921095932953886413958105495889752259405981742583729219041619724381692847924026825902175294218405396922128290962921746716995349956132020137969616904703886605673265591193204921105661227590503617874827873038347464894878599244011565643602505817843787662219488501074734060403243105688759453374710233469021596504480712619536890139759753131237758720645553800775968672927023181651119442138800999255172909181526288462333729246741454606505220535807283200748382865682522993792262674951533002924343028576974633615717149752560120221161719241455548566861273731520445869389244853935132701539427616669927967772523779828622215524155134564946257883990495461760266494474299096891310349183156871398617319121061907891544694943575475715545852955092303771632026330720177736897685221256364532570126509645952297164706866002655238439738251962518553020854389458384834057438228778510250894422875779147488364988892869614781241023455248674138361470632832759122306430830630759422142772713315027204649076569002493445474110362233386054576398598721580866156026878860497679425022756358153512616688157840882510968224821744345131919590551363815217970188017242053175227073851231646096101696952891761228594590854597264538962697611475283019616308879882581902316711115694995990464524858952146722512587087764834559053796149990229372312844751352099198291970548811832078619508446443705166060312374636894457466081545961977224312255117350486714536162279562484088775950148832655769437104375997369715089888368276702293245382285454157493897453037081914328193638160813616950792617125217713971086915954232150442449474916829509604474799254750173802333030341429940446293898330799221562271689506154540900415607122703164642802541607573677698652197758483441686364597975366070134743197512942150449411795281607848417785745859069591236702137568619698846039993966719660192638864078366993550819668690697698762654372195439809041367552902596622270375531390196032092822510184935729175144440103704014042884549193374054945348337772127652129477584965229254245657529865429552190200273656685891686684841678933835613448297855671436098732595362925852345735484507777094109006482627929323582858402422216690330126364965483207110768414818676024315334766707188334373483361000330869371776363422314467716893154796647341770941663488005329076636573334404306944807260357143727954929511241631491676936168742182835190572655661214222232806098485126786581317359993331658512029782508056238042275758567124873169832121787908575522819122026551695044566788492082583350894422415495433912853643405890281012908932675649193600259286860317839855225053611933399752944744427156289325990766345007511035184022045985040605296930917211590164767468934370695873818485691127442970009335499435620832231415968878541948731367525826517192143101822374239044779703606647901057112636733703254594627749087901682647498704122210672886384723735031381766844928084712557372394750472116918630158741682629344943282223240611714216086583806078691783834324075811733773471318868608421484754637032434230086430424982581780411829658473240299571386646047247627557549660584328827467982842937744275883040740888293184339615123057825654939407756371183690855398605418772098361278686033320807054677781594500403245585855564351011252410750850141090026736734049503098682340811100468305207979970009542191623404041316854555934629324664528634039502155950238192273081780211579546390590001289602756162487959015216628149890935593537250558551537677155625619198200660992261459692161617232002038548713656338230119173150675606287079304376508399948113178144825025004922340198844010740089663593504206880390041442010298455065795229287848872146887246709722708878706220665015403736717218504168406818846601386132917788387876981977673373431982179784696934630473480523888522960637501582341518925784075768599522588119385012436852935221565243903656058826967823301388516177015289586189664273703040273585857378553352508502828018518623269694393811018387709342242594174440883116064886675996587723110756916695890162144690272930159906154689961389148611759706306348508843495830496515003673460130622193198987375294042117093068716426230997968309187557914385695530403031082430974142495010457742086972736823176238791798093399160683824487422297411876438544118267625288979648424251616618850195007197169570847018816769865171995022734316704038482847568509444452693535124765552489862624078905921581705417889329445750322035343921217389238383767482806790391505318010641989978288828808716083395893904749284309776212552650829431757349311988098225685708824078141501984860713416333226215942631323474045954808352514210729968246413590384015734277437216420329751958202796738627913194807906422361250629244271675610210275628641847162621607731670143575183280739489908176549124487650597122104471004128762376943643598889171349045731773487185749875366164111692801619758091052502795759080167871952676356509879235602645028329355283577904094292688937364978066511651826162270239460521295733337890549571661597910139980761454349860983884682746639179499157031191694560810525712122768949832965458098297675008000178508403065059750171525603035894195620741065946980474870379106057595309549828095610670758132538588813452033776698080404290376982798160811130625824317698165485877046583604943825038773526669587877814702559797176859554870396092211734611483763793062183540129163299409091687783137238012733895517191610639913504621339627312109073517448844637098796745125178045798831656022856028521358609899772767063502685688678222430119227720194461795489566148114637875743509487360397627978840557145148702400273840524325306447521237274185929869164656854802439670196733054746498075293736304755646056822043248052940605325003866875891024986842364936269331825577574258069633044892665609278521553579824456779124294135860308039629444783613768396980295224492264411332427845298612387182736349618354956418176469045838422916523224909721685155032062428646125315662020059232528326135711838028528004497891148790911283355123605555354126164862180121040753089925273890716513432746444476906372396700062303738514142364663809005617812220599089106464276224381492071055897812885090809603832786489085595259033733707306145231839454445722199749303217963258385411037733120911025740009486019443664361646523974474778216366096974194832355354218243605245451748252213877051100985879888873906614235061766703031700079843359593963267407058196440865933471376148862311364841906958667741341280217065550190350477327868636553584408772064155039394714444403814357270754037832090704893157245139899187062081875010991998870461761954658683417008982371496602072212723672175449936138203402498864107267623606640447286073406311228359512279565316345486587456671971971679190781281486715970934547674746348480140402787083155622224554474294858526350101785762145794734727517572432474578346533900001145264057695221400794160931755116895091152601477953656281517795448965058196126650690269439626990754301385986465978383896748710640055993165597081008052909848559469041412176673785248547670667390231488121041147832958466126700572829082034413826631886773693541905408740489438428435064274200939855098766853922946986073239314881245117835260024967728474584792597245971268437169516613937922449130843271850053576741623191494339264221192178184474780331589015027596894442568752375284284266145648513248148741454906827980493794617129250012567968328229624475065795374593019302027851725855537943075082901613459391407961594446048789125921850099503489879516989342266950511017069772218685502067358605844304045181802501673346119674909353570054231413171683575089074584889834520879314194918952403808932745584406991885874239197413309714611575589586669762904860204349567898139634409292581914414856626508835144333241894952583793744758116700715982647359444932660413650054851112334820143559080920841937294684844754072358477560654484849506248179927425568842271870048157845778733488444467527156097462090296852731929360676769276560798357417031144632262176053099535982131262627232025592814064888465204939257334852506835527778074224224207588867198089305684525744574236020363140431445154079472233547717012238820104539143639519241469390024441600723441613090197787255103395925936554975428295269907513914054302430468920059382909888463134683265781942479500483686312099142440300625267617609661490327545643764191107169138235854386745027367374390833620619954871994099458515893137122320088425153242968426710848863686899605511561868041665592827600045725148428158969190032299197028374212547022672025091499734783682048701472189903521914563548091082688745609677053773106718106298699344177670854785462170342879509768896815231548136312510982818165143886551156309978499347932045956757752409588516096600050834499748840564697249587699367480756320795709013305335421804081717583115163609242688328783781485460706407259225332531264940509563503563681582405748691374197618618553155977134545564235886351894585062238460967770969863098164332991831577600385364384856938849648174645154510443774203493413921018956588393899375764442626599706807112976981321372959179366111033598211370740877197881634452116865682298164607062701832739101397027382259912709750036801641848430825126342085188645282642494267100169640525725290863967574196446019961026911825503296164210049776304115921241573144271172779092061162026683980965886957500033024010482950378975486396435272148732434137183907627532131324798725496825219737250725633284812706115830225354903075020627349252468706377766175700270982869121466413235311263699633712394908911827900480505499461317756395190603775379640810861057638208791974268663155911807136162760408086693519434216618175700484909779271152292305178551957755462324912768979651093876848073618661104039072513658792310945704405294442523351330968317065984149147506706544810073538364121403762863000391311037333611028071369748439663001125443175082926341893194287487764203332499028100951878764234373676161981609690599595035582504319270150482149903861822756927989887223775349510678609520367372076456425336683236318853455887931540964416428012937361856526020227376266091212367317920972946559185910485555394938340920775179962813959275526257721968646618556385662851601454607209561596374783770491999460360355130044649295016342782371700801226395489520325725504716199031863896561390261108695073951724168518319276211504963923576638694702989069333500964029674533060697074953731434825523214486177462994525501088885109032510435935053505407971857255347020358679239891102987613953053129348086953855632551573215039584471771656748605823723886898673359549676189970298883952983254926771175376020471226994002426276197433953015776630729194466648235263550422877727876302806642408729371151992327547367566116440500119544528675528260856616012181610924337658424203198153592507379081989204928375874489381853592488672629304383415489564808197558174166266967483633007245556751927219202406030478596487013683046853813306402322950250415439949299693254623405540167230005588900440663178764876067100113187691490591855498303293547562173350140134883257289781758235060814474737842651973322320593831512112735644942207289824213079224241162469175595856517076543344696399762730235944597600847161185004196336208025528953570856520395619390575369552905389402451073900723599220434520114151215628410948221686179480417498494357207092013932643904794353940621022673406299613888992574584368367281873282724656406478856376590217590428660188589773924134271779600954366444033662301523156004995925450177636270994681552175232649615585094972965040428856023765764631653260308101855678597151507723758408916304184170985558294101176768275117389702675449480640287159951575513863309021476052457226305836977688257909155917222206656571287520073831455630287056669173392906815188227101386460670878727386099187551831259672099201811230402007955454931051626622412093657867497626910648148546860670073439175206712756820915773112238031870740618530452940270627297739989386166806529321267517744153752880087013898832241843178813083224292128143516318634778044326652691495433082424728306951415950454583999646974702986250544861937383197929309168152600556156820842069906429210835702012375011069360584122220577997280065672207851666323738926279761790040823906674845970372451860591529498816041450019221894443704810994285115252469319157567861396097951133885438849084019047424560842214968456992540759900045790425988357404210042552092538537701436129199771372381248726894259798961926458459722301084073030706386650940536796420203641547038698314065129541751322836640215386563112437997279624133415090999097825621696104634915922179275233713327432848985066021316454828587954150828989104550471698975732157159752165733257307345089845747568303706871347788984482477787132335105732806228189810882416334124369640283414023132068690216926104387766114666502655462970025801459083000002097092517865729991846641876772476180216756216206878076255473612536910793467539695651958070762501454553471097499278146561312571507160552394180501473619465434326960444032343929343997686189020408052751727714467251244977087783655055714218320636722780457389410456091160480895492100242827382755503231378519956400873920057979823228910416001165233558275719219412941907890578033727775953720435060175415142353912750607430920033646226091653521941375051782447350780999240121479669097202781245477548551157940936192985073579390453034008749104436764633387095488559829624138827998825016634314996396847630049376838080472422434689033921974960792679125239145878475982954618961779066000943634036366340923657836637041122252183671241217095914370981249377430535151003539607683679779246766760238825631563383124435572844279830290852581913636656387843236556942885707418903071689720355079301692555117802412841088779338915008938486544946236519360064488237256986228789452657037016814752518980755915107920543711450086230192713911455106967094524327043279769060560995603424833876837766746269623395074455660118323120167532059655518763660857799597568806016901085740363656354938534500299082037697299072074036779380353197393760287352874357877908100763503108199932557881587711265714937805206903189167996518813862852329482402562165151412962246094779659516334622871255875637396201472439768771114498150169117119582771840566774975577160851791099535251488667154180673679186081535907305399982742592923762963923328194740155321124628289863310652482790918790482097841378353439801343549625727022789022743184128887724405637165083091487569689388979665623050787563883777759947706328941239800918842246228036778106613122155286494379771927741373728702707223732765885404286875711507815970774266505160861984021372662718397529052088772919579451079310494554153318921337581103236978771205174547191767068058411406817939548461296940417589019135263160068841859601947499465992132587888549156660720039262368911269884535648904139875602266838431751023094095144628777211254052605977985221174609836014869338569914505691975338102102264001236879782012089978485452452081014492232445893032614674243104989003728956209882709652317428496805929941892867790643580302174731384268470048478917777630341438476541331110395050581396964608557830901324136477445637171148295027165795018881850562794824892080219071818190575077712758119437051663330635323201139433518146259402995371039307541137141031737019202028027905488289377608131729723592006165329961461153235606732880974731825338598547579300437646850710025606464065725541767555786793687184721894301943102915280334865843424137287281552823019523294829467679072404811324466630028037278876548691477547683573329275952714764768672067118011803481865712855169334976751850007044648702468685655717843199532691734527805317994247092930657284455366228932014570456845072945380517708474189589284695847747029100468440101930727092891346988036975906229113504381453887263604091297753673702331918178878187354192912855956673924504215600841817396285069557473764185288851272771257812781220131524522643660155931280154298433820857366349121630979843183237786400964248792822039776993055961007174033701952727113029986698935199490465516133927752124473994731515908169922201641102113666462023841673215398989925068833321883089294901978524801077533635110835988647183301517140662390701660795107385372853638300425041631893327676573782145287619152474550238351405774581897192275712192977708022625535098458327111117652091640763032413789285227014215680686050422823241470995879801795993228880380232237854307850174200308467185257247471480368654577529326308451821550292728455593618734853416104290106430089917131102809222992160979454963593062460193791955140459798978860219782414405897470494621119024758879066024175514954410315469602626265428628876195943116196316252071200966577863869593366028228716430810857696953020176936545557656897369254786245845835079595363861483929686227892767321837809883289714334173930337978821855240471603277298841512058763147749740279978035400185245064810370946767666195108660599969077115334292866631800017510353602274206786976090015186543805623634319408518066293601031057572052990396177487648894528105392703423866965630387352540899391739087389451619142354352328366483762959220511212761633514542093602568192780299704192238615126749761656042812617157251856129498849858002842818076004641921716078545745305171080024320723764986150234721501708888540965300454602325894912660003968477092495524982198882971785898652257996782096835427450776571835518305602168538553494866405458272179932457277485135943581193804821893814097068276815289982129412544308631019627577455942385678523458194667340648866084113906170848144381532100993953642254571558769547816523587225434651696101187720897064762339416503760343523115357777796088853378056267996866131357992915359836133533780456444233697804874610431135723608612286963722777037698367410018051114727789450107946311032669981160758236740679490172184666494032619174777193648447427831134842466363786736960544601616326007784024276906559308092531029582066729183597528971853248375784736465633293855545427936726962952377879311262560017686914277214376687638455067874372812657968234407537619462062005329111691086613575035374646346324683108117929658471538161770153264786544342333877621318893795730223438628681115403968519627330941720967576413792135852800512148163676022040845628009606738685220855234533613857396935702575550901238882443621548457577239605832524564341424207735780075214141441956845479219719069603985792019314382367031380173546713335422735236046228286915293867670137100308768553390649330343500907573544421001490395830216325455835863182477078842112232327429856229530778788404730184888160645034935022935481495556713502773672151247807689657170923189985655902011082696728001433203884423023572642199151661063473786573715921522484426633095536730304888689204154141530363600565082458402348806261631179897174808418328607715316027583765108793757495995125030780516340786514289013826322678029239173185824985522727648771055671348030944779773486355084581611277093970608562093429822837732069886509202051022778122387072607634908976989718383464735895818274860198728588706396243284024981954918575581335154768802057829764092663004807366181812432028697356631191280185142249813365500396283261950955193995722834511289839983752083541519779141112917608983226988545206252943265099388631688751791812567094594675692033090867193084768806581730878141949568913015432213616675780733846653467520719287766887722432874322715074641643004820778741309504269475969793942747980926531653072517601775125746674376105476673616871340574165293370120216352098752928840612180494982438246030253521087882151780708602311726674839330076975392124490447716382768876090908933127077580765801809988506760419845952817049040084196799553482452810623813539926706200119205853904910753121747402071294856411861666516515623334434552653485821873903889267096788715461026997295962803204686910511617013143980012434747142626804172309016855962155083988595394132202071412988562400244750127368246419682911548986121628703016812700762488804548432169722822906751012654516005054559506334841581114608219649402124164155304173029658472194152554054428306416858238775490713943106805616203546613237452400257675744615978234386604643456826333893188752189917639623967535914077864129375295144267165883249055885746021817924974068625315458240536250929509799257508990679143984178672625229869449775662101968734147569386991415521493237951119451840802168876970054362267236990599667411923411403190485425577652412865803202950126984408977512574132797152487370605370417091952365643381457199566267902848900736270357151347032654987498391454578720460532386793220984784222827916202543248609475756513520235422260216714626944244061847586686639371820236728305244566354799111080884950277459602592113968715238957108389150021637624012250854462757855919776609053583883666875234935291502790837025841881790363610737157665849770472513760963541834731282859299590367130063421283251955443065755304237567412462858006558956053174485926495037284732031030580895358719867394200985132510067292661800315145001508393702352867694690707635962206990276379679067631775164416302638196185621063407643292704910436472050201452422260282900530689433660020275278310207148528839121162885931919223910534044156602971553088613936328123549679570454596529719566157289978788209568393184821117905708192224383081007777938826104098863569159113865260480306383056732399750758800807213377968212804517990360497407568928331032414886740054008555020203494686361169722504478277805611789349700376700369353378858353987251981963121769987918387146882571205867424430804678935912562522099134727033993573084937284564168177873774715866744820971843627749204573618618860647882195149461808842391101228790873500224427477072565629375979064612986526799606179660890722852732831142026134820711754264527769988102578295526670738676832486229385688560790348805461566638707355907111616852960093069071301654155297687547322726731545680975825579980437875015988249108553432261152739301147069937921605028606206989365073377262214027221171528937894001850052439917860879428631930237103290539725397508378332846890218427802829724743480597549009711406524532832923008333678370217871205151876962439927263387816274534631303463978911339721336761082899074379483927973174936624764237897443696034106278275655439908684835498544891965059640933262210467123161960371725198225051537342456839709183811012867072727076603061346052806884499869945522461897481074750073524837208520207024482684536878419706874600337249251007573657872231462137428327528118568967603398639076264674703146560281828430001457458527174261663438641220759163412616323617633746476737944986275280293638647812457865856229778151470654900044449808821654114114296564566740650654439652475558822343580602884797657565352834212968324177788147534129620515672407941374276476523043946887231238387881706020317859145180046751939289431388120596625135622890453058790886879459935500529547309853783606056877585385304765179178970959757565456770522407079402630984271131784499443993425448422313300185920012736816713313241500637293666730859907972514454542344398506214123073964158402121164965640407663942286395509256010035823533125228382627825228231901297280829869854512916526675659911422795493470706522039242629687686266373217754219572437722644302035370822934725699037888627045717263319792278333396110835810317058337374725216734524729208600045600872736465281867517476745560758327333997237080968631161782146428333855454622664740567600447591289580383720288268899969822546710437675896793560608644335804083127167541896686090802346757068615357135959263903232607944257863671127113569826356631253250221431960173094228105256048346673555087595975115922360028583568818340295320561697940238419996713879925585077109912759615061651083728441693978245136626817265716248985370747069807172982882037493110613631468297528905811850481978848232196515809955465261605668442065728799382197522671382383511414198339306295196757883970325268182391357992737584933509766835038536656386808302769348660709994893555070762742476809732833324335868973003319606400706586086900655164291979762141004588826734999099827749703692056780478152113710066990599646672055117842605855033665447994343263328708106260791328227169985747031932246766705107261937364025929323711947535808882947341301006531061887436270074004375162469799541632807455887950188712070817266059809936707098460425679939806188695599991024666953668261259031112671766902288688548239494086923577802318610749819874895056782711751774069965530847900484583334816376231952753767798473476526997392361289493460830474192102514408194561047318498680086551585847486519691345912802574272912512971296700699523924058325697173841414320411391023425790608523871401242865496662769270172820639427575061257904230190834655771921089638230120527987016654910460310436544175172012330525320007599242400822245561664475805953872810966967243405925183467119125006591976363661903063241947518512965110576631785890862331967152804207219374455534583091655371948963461739026766932684968372822198040878226429472785052192353696248857828769449104964473097591190543078974561942257603778047520535869667113360932186659343739743111566827998703036204834886170819665224631577634658516481951833437950161091170306478949857640303245515084606024652048825706446471811189428964583219808107748443115854347693302130466743277803930245333117131354854377745854135907720243729889651014079518497831723998989569734294120549879221570458006106567689812637678781850096135767771649632833149820960034114883063574629238394280806358901657023409210638836974874143305680326067780641290676718050147127484521559136801420680414980197657606064872608729183011477371949530174601110536621908777855466074787819138928498233408558673041002834731577465713307882284127294177112355043367737611874646454890241909153293324304356027149693177552987560541476315963814445799838884965721635563444198591515900554178065247204387137177070664359400927437110164590307992406382835589275574015018653251076670136962928044273297963140915371198525332286239793104529301639045338721211986079581549835254803549021236866036684483732922711928048737859939858079511785574007727013924222778718541079790132668669967737198017505261154859549550420010872486097601373882439581534025469558014916235036057074241866132354953651697271950252848091172069332954902912994921043902028378729795938773813389746964301248086134237598019484703758308572882793042789788460786557899381837451234716964328563964945572467937156642271741870702021654792994203008716732399966538652715943378081335864491891397124839652486149985905086544950440922334198170017668861036614428283884222582869353460018229106584393078926816047886413466740437985222748524293494021948602953093756999896601593175779519554635430088472834092481264829147245262127334406543593775630092011616563826169200681328618480683126116230919369123453876384841903004170553599089455423626043087665997505160280881215138346499103313790322505620089449257200055214376040586438705608668832077466169613052852817425414125710642045748447393190337110972422921370017535693316966068916672342835529426959660521914802401117118990848531305135210971030841263238703216613382544813522084939732116676424681279864772105072128903216074537205483455015411541018841418842230001124177904396389601390391746783494518314543147511022204135252132368966374022325591670232132184228046998185790929788004728882162239978437410603377227335230006499859240946346462629211841468393358818013360892355743517715137978034511404105908172842867964738573549202388168359096973718541067273145202683535776206936669683229343583734488240734605837836112892709444811196069692315041139077376008208034429487227554800818281271257225683025002646132386545512801066732143285979056135389042509514772242816475425172480759163201287663652312900594320456504938530163519470354446322628754739074166229570078919721556315249767613924030278768535968549758225200014071978782215155539857909103298853900126633626947167256245799701992008299315408804791976064590886368275688482652994481829980272713356869266026831164158049101181503443960012360651207899914515274187928874101425106384619717481587552192746327245650477605166834523168987527588198989422659159105612213324205862202077221219501533571410867959024634349641091254529865265244798436086966916876479349234642163654858387511635965948720360808483808941958582439307001720787636151044721595695691120518975042954239209114701905064992550347919772146887398905378451930661505914037244124956187520895612755882788262603967933162136440658672041446056428012353331788801396664406916389580528492121096787663532170099328103982555445679225317114078881584861777965046638571793701365381819713365460521611379675540411815395009012067857235381551366989336503939518842033702543679605725466551869830336477493017889201132400317639849665302674022224146537472834269144632258618209308754284550175015856672245828517300897598008109289457257355944729104243696109268953860043484430348969425800298406897642634044952503185395415608563092571586645041843330265343441670788312506345200014732669811176310772346680617748075964937953901500391206601727518079225994151954021424718204974982057549064873846453838890271791546844323011444066789262451170085145596091825780605181316197485898575224403733492463467731382934334072993224080481332238132079847909623363006688969804232284673147031994538956911155726367904154674438892739262181216773746681902155996752227576694969741606969639409983281538190386429991796982052799945469695906833395084527867435997262913390071531825857034843579948847187334207666434641518705854066252457433913912742448550767932522375979947838257146324954376908454767998864342794790850126275002283578378389264988248357865646600985338805915218594395264559516704015267609299502586506678981629094963087118426745804510903341790064301804865090751395865661455634280118211486761529821311733405024171289653225981107810568541234752628368018084364461708060928495964726387336718134120503513993815659200857491688624587434473567851572147553496468072911420948980472909513803921842011907268533736268410302679756369382726540166498267205918827494416755570572940860352343516851710344443624468360122617253845877762526824905586105432615422157686355562506458984033728651450853100544293194863141444020349572349955133707325037260529266264085424191336211995735789916121111280312398119169172025995576060146512424708674643180781848494326728655365549779083247443777627734214611774443625889081389527748173525461452974545818300834938593189752801621325441358350447771883048010128893218110251650002973078322533292025256230822421129127531947084841080492640584627513506537713348717731203445838603289072598543212393575603575874461045901825782728330253949447235480842310929882661006226552525937390279176134544383835267899047047103399691247419983073763768996921955158963616646839279552899219424522970591994410763239549913183820212479127656680515425509166603753532064079346576728124479391405765772382176060220520513178170096153275026552459348056192156750476167877418862140465200353753119701558121882514768255542753879457339068392083590350800725109864119326654779214821762256465947537358510808635459054836376566451576936627962098304040660734520274326742252544729107381541523144114383850560461953198428241403873244408534122796569409700897548344272411925583723458685916437344606812041574923664578309213700384326257245844810772315371480451796418401895988733132680705407566091120244357335513111303507380971149541029707306564249223595388773256500378979625081802832466122856055492218009609474025142068510124025562774908940291544300866982138834139412470720774953000919102369742304547569175646517071410856317112690099338877051821473864595476190010529680497582023066746161168928940617064411752361673007305807738950236914695844330712385200124384054938671963579574444165064696369578057970983204026328140289601866667052670172319647582949869013093857435470584014028580801355689446760801746769875017568468985459332326017973493778629270210575322388139788242985172636201510984590569048223403971053354548199723708510399531143782668266453480920603426717346758384390588120840579564895553116653205488482286083410998976090544814348657522877320014900238419302627021327781653841203096058609724975610790979201883117082659698500027837733845293264006291035989734398683496884435366444826561285462442921603337025721278452207052229153996380723968637235700794774557213346435999771131289118816672046843696053298810080015429364483095358590614808787950919934085101291985044184804336309164681034684247202507175518546930810302470933483730775535297492578726652885855964055989127060841927417174432994742915855848253199528407150748138848061512809509759171383649075102264448702747519378631410548981902748640468802939110224003606503630299963590991142457165361799025380060599431285265329202844469876546478204245926470730660353097605478923027168097261037911003489468783041422404000474555100308360797225757945024818482347071061196966047263280736022112695907668476658190463223848068272868197433779094039099716566502978292596732359316534878479456158563748867162716759997016326419949594423224193155374266145615806619916091099108322893293371610596120303996661315158325341391610690940708813014062092368694981286929900980347827037201050033366160122907002436681475207832030620010717135464647841623277683118334154078965552898408557780750323804388296395731930975883595676570849807240680051442339425206861372842618746989330354998521015449260949144800427839136348613552050130278196518443250362964886890648419878655852433849780550570615293301765604837376538183358211730922238570178017488084952262624516006350824469238197352528257830020638342049772498750848597743479343015741794038532800446279662099130523105124447731922848246261189933149908131640910231853518082102909884797647854755305924915229169854449504552309993255992602929284221363108087817724616049105822105630797772007387028698164605532903955724382673212262241766374520463833050522743998123481683206334417623833318602104476408190372031695818744847345516853529740020270266487092926376913949981484398446369210210698200244305886807339658667896707883598299469707422407771222863482440363672112454136710720808548083777553312546457807902775961161920636896199518029708765462908427477865841114477937791284730850217823395705455191964478200396729595064966970357973157467781137354399655739446476273095553484273449109320230443296307956898168520345155595782383028461961018453334853982337800212173580848956372257179125227047322265872310478851398394186186812940126493960990991639947907412946046962482173607699440122804062088420006250529052196540744040071454451373116482700758478068333485541743500022419826720979682634827897206732202755542203020894119250230414437007389206847013869157642875078443167182290862437529524077266288564508671864926667450363361015006953032439847206907944305227705390724502739948198454645949747893198032016383375945467963715701762571715194296843054371057516949250603735461782527400762297487139943347869007648636899544124210350353599543188103641091913173654224527271409755753379854280869002200449857567029007889258423641524963543028102747354133332227274671617550497084044409285438663413088918560367068301900584353336034530350928906906336605969748401196100818113131175307279375813103797381442076379559282364180358986085236281733820044997235628000104827769352375052283030434424547346789534943340788745093129788353590530005007222786652844239224253385715806229132043147806198597799336943854385562526868372842185014628492449712307941095464007896768280814509699020879338654988081246969789248585689562934786021000381183673784758723436448543010016723514144980562194951949329352353391898243987090951505214112954356208081750179932552126392895794492600586738561490323406588373252154726529068617690913690780373358538657775048612062819781700245605687455314850337264308360119049055718373994514425544220886752223068306309879859805967306699768215045394224546967398890552660395459207203446313196823974109969309057027855304595462796468971762864645339128870125276887874050307995819137593200707636992135023056535571186065477877085343594962524781767555392493304458830590498101166628545207781172005442890676845390420726547106442825603152057266856338817766891007138527158827568616475195366793677216819648211600533380300500821483098373695682151345656259133340567553900485143397933486213081479809244529150420963935803885597637233744162796294926916584285539541088218178276563321018510758444671987226775685917274639584151506293644274716764662957285099284853706360033946508332620176764474566119050344569103976598255133031399396445292935318841723116363896441695589098262969996897684743601764259875315144816518774901740825599494847311058164897581020910367404104997305817172863199526752576025302854761473258069944695386130525050271112983658434057522596174291329179100005309573625794743209402694837801529416204901191594019071610438116988132419411241596690736390793052615499686163200185308546915417442907279669502855696171197977794247060095847708633053949181522728476151571873689935206845710324096633531713070005800816125929096528410807059496849669327368164514878802366588770473346282106133678297166114372797162483286596025205409801669153436254805880387668856982189436943464983439656459649805856985917107694494599084626991767241549021775038652563134355895419538730182641669942990713929905015531473923845136951993619289714308207487311953093350119641682985116240273874659968275233142338368951620309696153336008587833544930442208818190295016610632033916486380145036313399987796679910028454676513368537751109984981831780587310300318630195783116199375320460658617618811879993933813230680494371065347847243299694309044586167254906858787604609187524874286844484103388646166551633770248349933765367794131124742055843375961933052913185709250583313288721010937487456944601622282818601160040544798788264105913333480315294822175388237578178142265114520858851434070892510581634304078638208908523044231222577563237304823773225094991334198212714302188159630332597687221135181747159702997981301120770843629545293057132296362586594480110616991844583573888243449121093849446342827752220343893977911919649989673143060653119174592001818262547919821699990287521788215706199361332260804305931822338761160677584868617920435544981941995824738917461165933150516576442784982939770612208840499812916462366420749508739417673529411462886200925689968200300669410270264390755494834698233112961619799082702030271045358999952448071369990929864380674743228115800995096199773204997551361838018269605702383981520435104426609983481186411946277724639873392958926525391530110882654339579224376179444048669276065953385510543345437213649172168891737778420093498304334643836930530108779558831426379134029587933619490988910079551850315343155948332159976244114828866639362487556236159866747915766693364270445239719726111305260661456639359581737214401446715173175040661501764721633447217312598520373896999395614047462772243978218187715132922011629151238809519326686069270508521118173467644304002107248474900114167082247514879810463702202129974195096844462590023942229169691740373992096980378434616171245051604661841455303934850443022803787992995197576095515989811517299549310235608312971271421903134127593763305887339929428777814008506005885860690587273559150876946941661611773012466725195020975703821211857375684726714447804861622293137906500499888131982842653457269714775200424639723134113451934796815215723056462808225839407543957302260884047808643102750602517253862525001120271187962053857557834601944703158922602370425100537493540558108155139291297461361918367098096808920930826937811583744638343272103027689929191015935046056228478840852239468651172306704866789895421558033391495164317895701323312159185169268173796416596418521049077440338623383660117287956042043651549136862252712660545492156437883047427279846278520031798001643435001628820976664286838971912899857529157581684852030597873560537560706716976954933093206469067401098812495425095096184176198203157526871382545902702546170695886460228418571079870756095474955607392016747148208043723851014609093808483796365071757852571350523995949837949965097834417281492622839857911869317144086557292889111619396383772772088522114023151685334013925730173836286793900864342360799999325463251635381564174990571179312453903020535246615802156390060632308503635650084272018935901935418603258517408757300501004690422224757237006228886807242347960462230376559480491509142780879570288125604229097055093014283061088520591769031798107130121664053985344965080851904661506792347660687633378162290323848452088709907830309903900836213641173344318084955485077592847835743695055887168082386496912134557221001847809281061436765842550553697736019473510873866099904701272139176401458143885655468035829068364950277383823402444304766325237625775882238891038784624089947776265001002754762351713065468157804724176620706791757066462006325289976658456749922535619334996186111942182502199391642334754275216476839806279307327992272480471150306052004674387751559458831336797507138816492000603925081894992852551310948814721416025057407107210279760798364069961643949038275953409298819636242839550664131047344216282981753040129771866494965973714548227508560860405287109560200939840851068379296722250408262786104541782537814519433377198236964415598303216935830545850053758598494027773632239894199902354228889161399827244260812658593379954655394248949584359443867362382413218813596772400596428034620168375620007408220564135872309502281381757836768503724689910944171470591847664417993751513295773687633513726699805678075764681302465018214961015709046238995871095110938615635228280692861193077173967323738907935774840514743111758701628787771996803850433650549400686057225600537448924543035031034258100327038548849961962145211228375568115038384359061993537974844075606659563891790262829241967974298433559572227158724485944250251086788979810168468162929198606362966207996589492638447000344551476271300800878848953915661519782288722423527335246090131246072022852561197487330950977274198909109291536966122751888269906643990836910534525841852141754468367945951668958971696408750871862032682949069329867360136639733014885684314301930563778669224010010896409118155568500800106678673206238413137306718766239527006679362147535627414965257303978709977514963580943218874027400733656037574636517687585545981463925211547968140062146898038729449114074903347428249780974823877203800842290330382360321442579231819685752998039368903896393133404817810673484972127988376835722964082882895329070309091921938675884357337689630828780187943508774814332557299601717505387381558175425533491365233625077661201890214369502303719000306084605984782142653236219407826925456377412835555168937047973886040113157003681485391478782037720425523891141219097766816243145989947711025315578358839124008069601539914420531695733717843931847846693529151485939733092438865141069381061608695913080580377894581948182694526841565504971538738268689482042304866018543410339048132650066244808196629362207822418525386492587924410689483805366076392518710881891229302914591536899190830550345414733831579572833051275173014432578826436792272238411947562786108089606312689124233510957739453939454490452396440730752249678625465029158074120091651637637569901815108623980806140672409948653165799745355329767610213594912183844000773281265175753546103927497512064355710315552153100536321885050539546934379962759033361369864905105290349750434293780605526294739434197985239976947223847631221662173254364679134457626117008528639704703474343557627077483486509349467187815647674606739484704577491374266695716642234857080968250670167108400316949807840364325482893890026929364484897016056252018831624835456443116367073001917936944867497949688421680361248619841188751525566920029708354810768582358527734941204231173348056940684325118164280880192203294172269307939323667279966529238224217291387136862861762179691481752497823703325280894729015711731842713985217946508527225175926247354455582698115018618095896168714406401416230215936302160077445759606889944792081592404272979195708874400320430422693785980574184138398403000164921275281222104367674801222701070037940161140478159889150486255053720371076911275676409126837106955625812389317673582110624161280901162590739303628003951573413185364351919960420616513582867878520939606517062561995969350138990065404952687753796503791867019861342049992517276140194747929627957795920008096060074510541939522902722379644784101718492079986436170206866634129543653937277408064214651711914346872427979216882287211186199835435829934859802686341718331812533772222438370018500173839272859870472428757977828391486530958209582776088691246280020243406809598444361622347510180949541960994091663785688943337889267479891396501486393743537263348661633324601272334514902955312581634658489674426652392780472386765610758270080187980454757057014984142128848752121086900491923992528064967822962646452376480692231359585633753236548642963765891342412382411880471723500900341920133340278975682713259427247597476372319279681050524830615451997942579445828299451599191788121336660758834989798842263359379856121635620365093021430829965559340549982808956357550043965800469826378966617867219982225749555799370781815945191816848295302542241093250012701949832360182392198626230618754871402702838526202166794727855238889064378328285383682040310020081845687607433100933196341746505745810757783226708536813955994540100921464754214568891957709981993745918476440752420009536663230375258718692536832080874074188292966883747953956448688828044722593653551467062074849322810161745286057780229480767516650010488553863144535927933296394587325961190742424521633584520296390173685472429164877443821452117583792607712388725310832225846043170149214322453463532298018861191083480349499518933608305707346483460565668403277287853046647159884436311107675450820554877808013806416914038131753279282763688167949003118582815958985838573969553036317816706894957363504076920018843299439857591741783514643269143885001006436142240789181359041975068358044746613862268006035851787463067264940128611976110226395336452595755027926559977478758048533610499499748661657095315678240893446843841204814717333319832846319716246464823136500318560629529662165525383887957102220137187293437206301648316418461356318807503903641358551006194653849088614103114169258984343107157958574198394751225148474378983593750425860225644332256948824264508436171124421006171673022446200743085154908136187121179764561611824928395371932817664640275382936945825813305137848233798044367908311447549231236880615236440525951200962183154354593401791111201844181633649672640351295543987251165424682869009762167360507317704779725189418270989249789412442413065530816729385042689500015679284000131846377095461403908178679120465086983593055944475662684146045181989692863183144446418909788777738546519052044765498754007655492967005272968531138240862713520645735615230325595134567467010303670676156174203431899223823475134512353607854311040235218002433647303133408560665113608417743332654527019473288335739191368769695083428753437909707970612008697684265224389279383450874699484223949952268673019581992123492628523718548170909787614213045611274134919537750129456072369814126386000848456003484788577511518176278391776047727744905689675630303600079469100736082188486311358208990224531219473725324257092136696688428768003810809953660732870533230897967786643579307928036541369352702646984953905707104709546343275950460156743413052201161418480358339521150636996180713175528889243669876410919438189471252624780925905766220194798313879402590378294476581489448900709349568467923300101064875705065443298629249772991140512747406437351777749482149781025389037128677758706800392450462639004487949218571341717934330869122458016449779290028419841851777013134109809137491774215557921580239216882732511583242199041742041062683405015636675750223571274260175157630057598678623859108698670691458859487968611448810289736739743606758023764645305025103811754659998469519499889660545292867130323130431867575545678160066748356054539875508343086794866888830866742214148996286485131436164742696981898791899287422051179825813387305554437571611369507745208741513915365215760234395851472858531377636301083048563313013782251150012902352077367809820919807048418842144151840119462038261275576205582557599649352246231629458546443075596687189013742339768093576474183500254166206964025585405931725577138547535770024991213538650937866191305841528602816621887490460819397572842603829542982133404886096574579218927158697533863231577021772363540139558347064124276687490309913477579702507280917211253457806040868137429486939852567164630228546276429653124533795201849157490679284492790690939075418131312762631192194913994003048497879005231447743198180278525273632614672932594556037529684247581776166948328545812062284014835244909171766301167990368674071441772033391212247440368095804678668550558300543039671367491100242350449071148592492864772643333028673014016098720879274432841039235403286541526430098955174108392364112008867779197244354796484539568572273512790510945547979754365576639616380926910431025520245081185052246268972317282999011733426816819884286374651588561871709211965500525513054713017937913679966936970890927571481714088618413380586811948118948279092319666112123914342691814493120527162184970095950923402715249470835963554088857802955195078658041896679436277584476807489048585355652548659339722470077026773548153945060867449309542106099987850738023999727702003398146479630831491369565395587836844037879785393521331947854619511685213214718901625864064051919982194311070391730134248928432482138567782088353687953299078103542827068334450771904010350162020004518451224600331388160678492503900098268193680705057990051542174872345068239267733662690668739467912327247146910223595319110082755384104460335593539069530804686121819863642709135745952312860677131420065852825142984342854634281042395887120804646020334610279575725737961235466012771213839003387237308898978096217907014786625624671592778047059688689963954039082866248660613340485757351507646101431254362224820894267847431067466751363199369869333721019164104314419365742046882314250312247399300744918270377656499421596274024226985113726027480397733496819769929113407521054585984953119602924388884266857231332792089380033582541588917814632191024405295468071246873520988286058667147245499157279922389633749788386470689394793423242089644852134814050314098727342634846948487942314879749359626782417302650429801447245103991076837131203914020237497062157389326582984015261069134088529724823057095406029392984937360436563046401737503934834908716054978794898673822875264458299733349743317819467795536288112312381078259452810144363532316288363697821326053791575131994179574605878113897717708280198520445068425877128009376783978938988197937410337680659853544989242266005111953763553996207853832989599883481813284852654198333889019027684280520651981550924339340785800315229131867592165065829154619738841087872745827632870126314500192796885097823623869568017121062989151947789390009959400414733337549776870621049712158213647014936797971422705682691989848802583968640613771231295643896576406209536845159725334609082476977102345866060182132790207061222285032806025675842720563382809235130107613283714130422288991026529662179632614595753160588044379259563707581242959202935020336215288955537771506150961008452983569514473541253527480378048933102503125750972385957277859109403828993668305413672774190486299989512287623965719997299691225396572986830446972556911377825240881253219217736023654702018236539137992262576241909195844497984288978244321813517696671892750658015812044627893797385108450280863337097831471071992223353968727479009553155764600253002012430357248988008307310222963956092951109059664727871283764502453138665586370890348027221106118384574257923842328472075814425295530368590697971892526345610177135414726327592518424371196179424878771835558366126268486363458603498913926065512582324369597346279750626810333765320646433447826844467566692399501608480357106332693192542582547402055772303250059762635180615688132622933640873584761547341791951205589949935990995903765363632632234352589865833215609225503508519263487731887896359419099522533853656350018889261173488792018680544316557939608533665190222304394546536203546816877387134727854383958299955933072364604792391434137083544673675716635532359641760535349701644494834746626797652708153597807357364964068323482566387617930180843368678790625571300326946679150320571028225514016583710349497330966779864571407479365263435933986602980259827172042025510817780840600536353410279067327805131844902212622346850686774051065909751621797744339475563106396061765943192895201789381211321543031453171421830470803637664327771023290744247240113156179176188716889918082958635075440198537258048413016907183346080938762885630816472419832811085753393267811232695844272446923563185722517473018758855035936207268476343592282012916041568508926598259434733169716935665233236524691143010528658018234369057523615671977153434703427705188312518651295244035314819977021086152341889914991879309249582774133411503346048769638352637672076738740205468151390281517584414459867509851365808185034599329130453149676286185914206688991291681773534301320146376950729695362248853601512237031579530472090609393010350487314488136411456154805556838699316739988380522656103852907705264483716015421305215045978585253276299802780903083428058748155466521642381055068716267713079042883331003171239492151561929512601360854125747630971158215299580362723601938154540182627362318342743858494162087474930616947662856049767518318586409459590222073372852028517246422320259071740169905847673384259395289234065286766168575954910434963387408163080976446620155146875402073732912187565422046450161264574194079546928943680600808931302337421713107575114410862778992118842852428337712113596713009825691048192564280174264093444423017327036567233263243534581660288978216854163942428973220947963801310886479074998095017249633432911655314246575663478827709876731590150341806657881691076763982523935247942331741504052507937629482364470982748520082962940470099200511491505189697401327620548011852438044703694348941166350517662311774674121564896440313038409636330083245685682596190937884497179118300976655277537241750783266287096281198104013555154314834158607204820118916959969776728886495442843068810047067246345629842913662170587091620761016392383907253571099210120766706256340472135097962386450913327123081102150412195790137827476474984205130851019642139061657590205770244535262430859981741525089412534605390852795579476299065410289759368006058044217163607451813638083193252376466129140867967337226677861206739186357340092580327362577301260525558402343807394231682756750273683278372887597528538539628869292976952949527475874631904915336577138215212794329304019567329703412358917802242723376711947066526888955529734628369669615376716059765906111748891730905734988127975208603782144380466971011912859781520537233691134936365352159348219647450160543839370072912064562861650381431546179352409429097104834538965392124793083601076647295974953272805739258984985407112008852838062326221369872092663888347549495819880442788401311721736386116316913473321288523032601125115385340784118754541635793805510926199093826844197592819470030177695262824464229776091438855149566181675213234535945127949376406822987099572126257693683382357737385065053642257434904218030567689371978726767313273939288012788183026302761906539279329129363905362561029789900199815585839463739777552864735237098515266369535155321824078734794683042738565122437228350209095922561258430519761739140800803326283600404827390550048881606027137083327664702236075937018062423861817765258636679974258122630219047080214966660462742378892177454334650733404033263033693779404548800153665496296925492533636767917684172238547649602440383893309115577162008303507647733309733980271730530590422364963003254230363837767581778347464282104247773894675218300304743216757774152411247319845168167170291844959524548452506138029526128052937220912071362764593773273602113558283743090976298282779009949327843044849799505198033449482555620060279557362807181110390582520089257335177869116050642366471929701560636288178607199818532350753597534801346744627338095384518296338343764672638299934950898771475487923581647637182123600237562728442783214109328052144291995027050385329427696644368691173148290745346117423497470877072573209172404192897957041089407244036034640880495561895262020340545951607377806563458380701308023131941132521270187275235753237517694074272303056355879505645004135085827722774782562030050130832922686571318016557798267506779371247597953356902330191705104929666478488965597752066887369922425855670368558592207925850595096092518473332969526221180092213109332899174351149350261439174549239306399701013388188456839045186309683365901536270160412186323228545432605853804153988516505693777715067405919864532689097778509425570561935585569247715495611695983509692063796272264689287405313081945704003880864604761967614996880121381664719773614852279014180901159063154621803539287634800181605667654851811008181951532328734416460143107362299645396067754415847784863813748182387596358894615870540944824788084855469977559423214149954686101975800976007587489638948777729162433276393481677987701570032629198750699872343336042086419126342070959689175159776631008431553150296868657268644038310609965095732264866062956582040905380338823673843407938067165333231876578894962271472325539485761513167468845129376925581228827161402324877969812725687283561339447259601790197669653346530373754616015355062571503228500994994204440096704167608805646471043489859163656713974162974262412302738579128092452125667201866799647141598310700815655000990364357639540466464008080830752246071914967447828081292252817679759898428938617971600715109256263754609879365071002684897848820263351750653491549780900058451027326801333802573317588597732844915305715332516574558457897383289771431142751583622770508229209929557469314657318762848136054336440298482293932892128081602057414129731726800198492845329370443701521920803089668709172054766119902737651806928247287539003979003795342269641944882549154649128879550937005070457009077717340175263600487434884575538015517529184250841990616403208897662319779049120917019870983533070809165281711182527138835527915968947686031883032457064852384580957109747754092909469948162244769128983244893246103167518886706422827927106876889089161764884215837070761113348364352613944172302241890995510605487663393591443221018129258652510760616059077812261277520778783233525481045327707054963448939416996454611871709913788830883615798047313382149171355110904235286484956675750291521093783328772072705317084547966834819039959186670971207304802812445150927541651711119780394108975345038011436108372501892126120539577014224175319164423593404925795520824605404203315668061352926414718388483503663385428771456032726900687045762333459930565305955545825419956193493215037378396044326400695023022750245546596899237570975447267815971027016478466049213722826328195168242243070336481784928499722290402766594940632718073993780441176147804491078799078759208000337688663461757540403173286746159892466985337698009372763593722426296765166852063794357377405300921310355580464384648104472427628737518486690548273798655248207881942412874908197732817970640862984668724657288872813096510730068765481162897337812929245683269911714256487762917419973045170975311113244247542853805779551490181180656820842375593095676198365244809407889879415940902759573437203547426048739644407975525894222228262789665803923000960209109227039057543913675747076419721146474394976736000921947875612377732801201769276209221161224114779027749773035228084313411219264395157604070873957866986489764563508845060752549904144599727790961773107888436458929200910204134873918849717768792389668019541098833978947807567694463615898322503543584635020838227603893404870330142797085859082485431122674032787826931944457745223437850961767457317612667738192383147017652509519249474809351121708912242917795254587474478433091271179614257746252409288156164027671878755745526069492540063371054431045011348032274870376075229407929816115977233461458358801799753897518040380436919360008657775539146650750804162440011087291861886905178182964395560076482670560664684256464387769068287901830930856970439435080858802239111045131641866789484507694599830334366265283812373287436421467724972420236375547771740683275550873180048429283175834147258412744886508668143022295844894625472427189896548333357052246514650582353651034304226384912805904382111925688566499942552236926740758903423508320696635902481047963958398583767029538817003993751349026635340777997709313590989822111081354778245015050806819035866932552888303523937020873752346941775036625822800575473318111176986322175552674046031308056198178244741645617253957041157433539558636627788492558573298984937366304042593415140169312297438389393895282284530264762875444499356778606297150643240019011483975119443213207704622876231126274428000751250531741012342590532095445297847476714602113516411641684766759811700684253386130427158811123451755121635384644695835404072925447465955534194132282903570313837613843393202590066799704217004167072401242008642789482318467155206954418249040619199047127639878972498799895620240934825255202702560859412168790405241211417496090524519857711787424692196927677755326125615829337483455816743568490616294245578301989651433782393729898789984507820750070428279755126680671264919877510849114075794719853769517078580780191984534703675405482928865978175733098980412711096748431796940921539473026059184983308345905560061420877449330807936752949441908531394467380615926981408848339151002413580618526908610495274413889918856546512798938663062019007584518249761827645702595928371225827302879626784854432591699563407819851255396765257950460174299328897790008167530453334755360475804593130032742799551152145932613025511430733000684776174396868738632988802466946705782042811993805931927853684538157808499981331127887359387671349898723200640624158354515226667444876875347927301828432287168959226700902063672846969948255509828697455786001201939069118050065220929489473185813499657009490247060107486872870377410701026135957153667356125644547592768301229603867474030628635955202902983254854292085217737127942505719318193301896462890982059425792526093047090807787527654261111469100111919006050636122045875639903186828824898064341955347979981675866942411655876107816015315698208047047435057989562977328596666892216048085894970121303028416115801959097438493260099920642004196452908205668385626939913619159695812824963816307430422350912504698315518907032146105683074865903192551473266624902810980665983617324406291711902874974972622219729542127640644341686766021078753935903279840597873176144857267718127696709958018853511003443973170080838288923724067448866658064553502752295528293468337345908953278719515246805312889008437612466577568404300208763377349772110911098238641402417211413213133892593335601446276151169901592320121846107919462396125259921191870807658244568850368778796458146056131644517803910038525554845048136930462072047739535591043786261758640619059898064362421372335274045067485527801528978262147664189105313819844917943218679571372927063289327716838146795941277113209338591966642276798908397214021953946102852041135115280972051221877164212685699195794109291232419529151008994135663438642473685559491083730609123112163846506978613040854533094384908437450751047079472336659013335709081807185850747304171641419456204390477664587304294404555244446935629055644567785679483896325797515533173864649498211880564717424110875400817250521012279359154917721070808366328533849701765704259999939378449812259869169818055171030947006563200409593492684063865104172608737004229265229073008233584105616941181359338771170858833196881747190066017015983869930542476624137380770174776714908173202700788521762452404937893124844718763272392933239206094170428297597201475736456800635284164519585383514813428518644314292361993811893439183902012206049461341531082497637256585540869400476473104831633742698574494903165725366260992340912701176386143731375638200442275737117832195213229747103402312187764516452484323768141919815344595325559655800825523335713873736437954979421488973580116946495689203873800285015065593673226196092447301255697569298891889232828584588829412193561724759192057620625047421768304358680550475546528033424484602372681693491340332184492608095562300197622956300573927939151780085929565287549732666378446687685288071596097611306986933826493664820756461061861400926248449323483977426478655414401889296744783627871111219395980589772038207359114215824453632922327186698229434429655767589338328008611773097875949347455652260667274291322057051571873502837483815566785606329233915170869254213765782254530383795607684151544449375616149331846024882920530850036176472114771815759939432311640856514488742026256725967311357319303604616225441297339481247729231972266122574817181987128722964420609469792201436587296644858427457369172328875762335446619327633024339796957042066292912256502988111960979891014807953964737439547218482647277444286457567019753718210600959701990598497662105964893842732560909363987540552086461761537101519733580001622833166405278445632920561386056237702771277433634641002718837547112649598687291601705783802957427175843904526382103955463942235149220562313357684870223153476010198063946450156471999848862240303398329596061879387220805202563727147611604843918584282295929120785729910092567191346023768828447545383362439390110510649665130960630179539115446691664643042961579708968385493667599264011055463940663739758823457955711888256895452035831092282453438895711605441569937894647442644647940921555694943177018131745181236725852993217833112201428764724494076237653336980863290084219703135095133874977352561045407059156819210780539268866414669182440294468304661298454777509369493621128222099301474920876377925524674236572792649623436354480622264430179594707661877464259452838895498227997848786316922287853081497275717431905193344582592531936652205286012021301205896545153946249193769987781287734349368017586803996556571515859159595006493103584718799613572145281565385989983782152048474282106754704936856104708640859911064694391818340925873197312766748149134024398439842139406602198556608345690097287785529173762431288678724304030473590508849242639525389400591099385281243648038417701668881671088748194004920925437160844450102030031882844932725085316089089695012159691395481954949875360079054821177230812240881577323715279725202692176201369400157893354175423569198717966597923661641730787472151814710858689066063682733726396372256712674404198792138792058584413307749060816364945223577184908912320605702656782137713181718820426398843602025549514452883790622699082677283323394795600807940167785072432982687739742389357645567956217511497515725853365267510058513448323300466282464771959912363336591340462942332838584223384140522801160993821420664068689098918576782383812346080608644405496792505888101719031713676417700976727261895733354380189587571174148019606104526570091047972388805375642766770892560666425726389372132327690748136761537173278152810979706890385457039420003640748870335006020581018753562551953292761894282513314300542899448785986309402762321043317453410638549130282218902584709404858336745362429308674006021543709526954312493388777010217823651181192240576029307545658598138281591247364348722946795943490272456226800111701825297280967968897517170496882384060466565759029935744729423269605553873991588887015109817388102012109118465936557731138183039955974574328419396128741441879819940583598295082281604975412799486307524495712952533665280266121799171111291786536702052090373170723045087142843116242993576808237490805362469814291261948999963463036503131864355684523305129742532152311306249917913881961807806881481661764717949149562857550350869685270002326712778305867007902894840171103975819105996294778096360280159906862428423311480308011846620459295644880979695538763205086532957780826113157204847376205940754011439255403193301864701168110471816340006233250472274352055069623304272812377405714297094598738775776989128905880046342562116020135631643808984295877930560108492054283815574112534093266854663968607396440910552046010774015306193965875303228381169575397897123971848068637400217784198128018377305962387941747887933633337711361655557489329943926974509701103644247301689314151533369482056454538370155478852096683195244261857823381707956071034354234051877452267835541594405900206797194063215746189555907084675602359897286057350243850732131464592461106358654648796304872686929709632913463034038073855761214967979517923748961572345603159626608697964126653452610062340703745440938974223157208483034875704916186135477530030963751491859543122153991328802032089619731317386134104006318257834010349785627658534221766094145639997144231185721291063552458885383622432026359673390635278694174923364094748835773388799892695969264807634573850802899009030657549891391443466630900076067199048101275533834394204382093835223731431098243728060360131065042055817095299778318985632486915068885213477022557771558312948289272608368358681666687549864417555646638792528327973293317006385262801114881501964165184296969943448805374415338737188151876781721488318092263911736446191078639636042196580277838594023255963357994575972043190241585835345441213696141670999184797370874447120221415092063288762130043550390243370345445357190597416991594595469539989710164003167997611089919423785862493760593280564036472684792632664437625460756585933499812379974107358038124651207575588030125683141396996751048992163538232755606895865675707247571683814413086319748495057178217687670437648115085670907589259717371557914258389830168618909645514753841430033105584572037427875490702778021207614798018704595519153784822379112569731575125708358013491343858303743142926926897575937614805248493914318994550814455718142179802010867274068407263488707528305116819448180533684442211168863866009101733100254306631666371551064951577327999573473793859526340851680639799096516572439813011070675758987700911689385437921716322870994171687128440331337362575207622609572038354912075944532846979755418305325044021117649405863878689236512778332774047928293495475473599194794000968576093230944361263212074216114507324702668208387279802508903324907086189979951598706232460672051111200245759064275521702272529309225432038366645612968928486851315500503170664583390514919762889152274460870674934016625324615422316300178803159160875232525068746946702314412772808286612737169184610586072578408823250079873794486358557883846221041394689078948280774579105159955448129799952652969291704630776289181083346732127426054878881681391064150408963113246296689549924545212451566731133369897204413348580472456190941731590007007756991025329332325116973286609051255106492353642000068971777868335080589690987615854417230865123664089709903227540039170232943242707495838855444660866032192901470412334597948654467657934067511151335344586992144397472178256637048838292678257232988980394129487462458311874836401649251954516605609662649274065046326128622978718378493561475704589546944804576499075602724242582960740938523471326689725070612386317518609302354507254828500866321406059754734445375509666024855439247246086884146989826539558746873827353031841122351804584399178170706329338342534985569428860136301431089968799304882376460246430485411593694692728402459232828074457936930297118219903455375088244581278853877356345765295703956896732926901146311292944288955587823778643879692939029476664139343078304144544052215588871798993510983551705623539505268451365694080937264171092605202861602544807745382972685034366758996444757946605882661235231324790782016679254478984204014077614248226881904605578656687801716992874072870997636868767488540571159989866884639198219264514283895509344041306015528263517067933071532469864456004036770107630668893973270552543586017644627827662759494032732429192890760274461453990632027237259063653049358146015227772053720384946811851176282527208835258502899895270901696712855719577550196721398645636135374391964192958518390848099580878074691672928018801729739569248402465384598332732215139001169904611127011035400561712256132395563751146780175601056395877333171998287812447666159522849478546497626204327198391850835790710707142682837769624955523066809047048709099141584167724027677992173590832983459802010440188628340367534385128135845450390863497652321160015129535673146566389480012828323420355194656980138684190788466657849805400595077024677435904678018484141466123173381479829499962698346526395716366960423125580627488634319203884274761140305621651642188976681870044574885275688861221985747494542590214578553461284463338248229041868685680925699737426900096612610760343349959791060625940550440766752764451535325021591814994974947137734670628965883859156586961467740645130741016830882335225611417559025311555056986626612427551195152824746947758307928310906453869090133749861373526485449589940047490536616746726646597528890161045776958106948678352393940268117769092573181858019127225622442570682715155286401894019635515092123668301972940692604023933261985887720157661309793057086478789067668914241715757051254491543840135818222714255128553592678382929533271988750651936165383465962858467230120683655209996821563886610648146429958760252200523876007572831206917756777614138882259398492038427351230810487226496982403768211772905869039950298812903712684086795370262571874634930637247977114428180863710425653606831394299832734830186098627161123135664122021807991924496174570553924835714677918828786842272240183972331269356796929775741908555943908122419451079067620845863844572359293204304412269186935171038797473383162741773836520443798891876763792402355759180669594851906739732642586946194326054080595903579225754264927070379755799746453646101301492125180292702645772757966061452429740995885754291243189669184528793739953127672275952077423041828612172501851713335731661587013394529103756934003694424580943667860129582837363122973667621091848693864448537341516357544118991438573598154497418283021098933970580357006935821042582870832980003865570380752331236207470121842159256300636164660029162070497832103519594900929910076783107508186459706816875366837404841338836852818268617755875213412184802721295190829290116849612653776789881938653293824508125096833753320762791855420039002678319831490526367223753890789726472965163043941341679516678134457316488854919700906541182619501246290716237823136328052482059629408697355130402661520109113967580138464697630284718701892386519674904008889501341993360410025614968328901604961703168761056999320003456288327906025474597683971373747931392458819644239539445531005767550668089145327800700018287833243306480606818846122348888468173636279719591266118636997690983985744716140955386059344735322237799960666091638828481995107643171350889076097168599734385416789930665688089115427928794676340653614965300161473433390889277925819094286810144597130293028382233910541256933950805041883692046301168642950670917932744327274113669274709442841581592788183042702669144646479892980653685216323178087226017536284458357212042016481624597789225476658324735780683879503061294282605888833373356396918751398153281252300416676262976613963485898510395467436102939888936418265469656090038468793429784226668831169404040737380593263126305162895198927861106021735107063529376926265795016294090206035199715029655290977348979487138867249271083156905517950235451891351742410500153865840347853128225375816322422032882021710263653174586109593543265130200239405779017676739167049249022952987183567278649073199996242904437933314623580974210861281379790653465255380484389367748564357318966973247228637438170852149941709954651918653999190429720655295096726378965056122091089885452415471979770139979381522150074012516211988255505938012102981520948315932944318949043962819918855964315378945908376564867302721764783322679347797007343899257154409096700686013934981217703776925692308149970493930880340712000648573518444603961241166843495009796573301816807939262077867449718342870650617057600861742596399166170463134641905333171058883958949340227802349572917706775065352657756127073642045600862356132354137622076989596914514890931465752125595842847320789545739738752160723179369715514157547211028843272646297524426203382944625846844516080969125851287431887684285642767001483076527206221447610437810612108680631195181906378196943769091326368460455353441526571958054591635665684011086940391431569947631618504730732976336341971518246584831200126174480792101947534911381191745566700280987949802272797709484249622096885652028987828303432940793352945103257861333757614499907983207797067842874675379373304179719066209107391695918646521679467801965428796319827979612500342670940119554588611691111672545892033197507853533790585124869445936463050176348539151515328949147622261056663644628946266889580310309104861738496241910943665954121148103826261858791097543402766246463195528070577149390192603509022294500254682537119360540521362228115081312083301809748850154047292747390958292750820975811945168704350014952619773458856610373678118448282028541072703263897644909623714659250375111315197511818709331742786082833122511443341789555951997359973984941787043040410519932001157111784850078940131245603126159410681539989774513792223143838966137280945442039760559522243049449107013880163497741721358248091609501999741403260774202707105902811975407425525705291491858011750416215809819250561001655149038709653301613079823268427977337656228689444603966441542327773775540905491273904093396169609793702495197583412559446581960271581310958187183567344146971671223903634259194006325275160240338380044504293236139130121133222313781158457611285983500549681953496494482098086999560059845401177441225920985614622179462639361931127851705438061608157591240675025603798941369688021541761738452355553341145277683685671124900755959113759540455190221378737481426516662911490049423805024325326845296627677299908146626909605986850806306366471678567052186937468731160667376358583950593684332578182816373394461843318506168547311057833491038936621101548909433322035359849101888600370593005184990497005533174988369074789533893261720687178342275810221987529018666181541789832509780698651519671986752658669581370320076589816344289760489071068133665373728412276645420053038147010711931557330762911750113323467698518939359023776877951693159171648970947487649122845594239800356497497237808049220195222744138778664139765108368195519311938633499998730835653838904838998898592643174520250983545758741712209895532408105098211237507427797285130429312205855043565322486536659306250450157660600369649945162707618502333263768137836210125803161670462036740022313876675868086076424559580267493995787494390102187777040173104451939789446666530033638263588827678972097955155432279438758768073985913160295465128639704309277224005739397577307876468578359770322620443483027736220906082835997591517995533528999980942101328046289328750455404720054086356511027645619102618179907786417820269306945949697191427651172759193780230419332493183815053315804456006327919466594932497411725501753504131398208919277909339483306045587643729526300323761133931060846858260187837564725683755052553725236464833444630109373121800072677756978454678983705538350408224503789315149252844556610047050546797678361562334742384102720486641178432725748468087648703534337005242763241433627907572868020496527760186826660669922336269861910649829721548532848563052097306970859252564144865309924504546278314723505762556867228454670785556836887639353045411460301428336738206269416859962367848148666109972604522463655953631925832524089378050405431048092053496283529811513949590161606650086954481125881709294971237242473347603918550659652362617451608644344121552083671660551254549793061275032009454685956034762108927960256679309209662366115688855836151666082371046523580163230254591831458279570744336335524258256433300809907493997374618218282787186425146158820190703017187507344912361555667947271686882580910976905296638696950661072659366367391134957463568611987331341097196817854777258687488853074452243508085973086651257110456544151055905772980194743672117504425140132637920007730921555156819732733017589162515246687955271287963051203289234961164856484895262555724688185285222332086143371676384215573145954838948560356482933390043167436191382764852918798904343568571591714781626856139797413557737582747715306768267957512967209531390482519108555384649200853788819133128182133234279675656497219609349926702461962265533444267002859818199346235519188461969529891144520033997772288269625390459397379962637758097117758098147312666138993295265291753077811105799063136410131719981870988425621646535575966338693948683211863117669809051396063962155340969603032191025240790621412953497250063100777844443107308801829722854895416132515262206181801274240426403482188295099922276350352808701959439832647562834141349038577819774690860143060526313386850845207670655717535035714160134890065305592647064609126009170431102180441208809291125386304765933851608713801851403049443290783416834393750566430724247188877602782124815074657500055453351738083383172705529703663270362914043432391083572277528073096578529349883501414889610015617635231904283795890209314904280707834808977024347574795427616315511248267913263740339373423827672728569018091872300603544614797492305111269728671620266819936366256730339357596154068493262080033142683235662760187312521694277588008866969516962813928134466216697192209853520694879852801839006540836752513478144095131444939108572415680949252038880643861225763857943080881610433965029717868873347714658991378566032136033132374680273991730985242461066752182796357468385852696006564895358540500776236726706548046973768760995725349817461020205938312116879769957845587628381249514431539248681571736149706624406244456513748041306694795191205806252036308076512965757617191580051089324088366056673847862671703127340010722892128171372867031562127695337970552602654050647755211779922181986079557197805089408710945098130616683189441978165012260463828814672370418714759616036998639738655249631051937531619875994299770913918301116409422985854469967192510143168278352390967955347223090172360999966407283164639625887433999384531111461281812296144697047825757427868143256878637809210700194078093935970068267148995191671856147221736351778636743213026372792819882791641396441645558696209729531266000244941353210856250217307290799025341023141334284452539788504410443236989173850314170199718535354176087100679668054471237440143315679223044163540246236607067635564588176215760046701342583688455209604626358502857532681628048754757984517372969484017750805645132035976929991243681042984241052421705713567971389596596330119179507470101057197313520512983538126579723304501387467789469310088361406131769155917822918866707564080220365256493473387363678214756667484945480925166744378754627934384513543544330210552883233255853889650686366852408532566721844010129888024788988944715080321264904000601658038044386169148038217317171795297542077127033017155302118832770619906335866167473799472306986885268994325250326536496186217814700771848268374980305345938402694241552785681682524628124671536312268911953649895059920383477934808935331186118022291707356985506083123982665558566906654574071341134049342841366213265334066385578388612264143482664875116109348605963877220539923478183704687298429705156481480696826598879593035157681022279640418018482491552962597473443003319226646308100236925170971318547897942930115966766055061090249284789632746485699719466380887094461317641018482215795998991181109521149563455576575980911570936400083990087479118563028157545659947276919545169018733497445770769991636826891719930845804407236373452638384005240733466885154679487810212632156841075670244391896745654734892987308745880757291352916935859422850601260969978126431865179798125975810215246557952102754724543845142031610185711158737132422319888787980233068834749045434383481976753399978652980941233726004599063763327437991923017650035908524480317659360776711499955666439835865038733484612312264652823514410304763690898369470238193157783057613899460882319756189417436252695552569168936808797692561941470756866453857989013404259286576718271874542738744651781334449556133990217714316207401393107299540999466512885390040989861449861933905693358203101663404698311261065005872767987493863444748655405928617771820856001010412187847194334515704799743950771560323824385438986456055189343766248090962896498243332712154576803247306909107771126599155822413300803025251729617742438172496659170038789883870949242856786832420815015476870718327862487238197952678229325526257134608005653297077168477242923394320537112405806875975888360780527361870492444939639672242712365160707029604354469812247273792388350560549679886754759896596542171960537659748815858137057341427039874437197988040145861334495883527651484839346450380289945253793346115262067031257176143343951297654298487581909413038941911878740514371347563382743903213067817762730894539467659578517366965812896910342750855513382274029165407693195172779838930603843956025843874195956027948070777198407502947858384226022132857369772100705874635399850652793246143031529651327142725004775857257210048861069669350947197220632697000973550843984000050666325154889475686663645025126014939604641500306562086481256391153103299409188786874262306397507016861360590551204928407130232467524478502763627976354630605233160334824807070851892292527326539326452246482623556823436081320798368613459208882989960465113091772648005217254101815939956934593581149937013112244745611022842712003130224276411581713402374597221683730472414423902167437544733283768255991019127629198128078522846535286403031422086983664515118543732693568417911287267643790374252702625269175506300815826234279958158668900500192611917863690628683000910133224660463598070107127378900576520308903453591746402940051678851931072297532002122406046672431368379599004585437400416874407187764255285631951775578780144019637461461950227502416386907263486269634857101640028371298075372551622892153485769110571896481425199458532639304670066096641042112923124179517200563686594069172716298430870737084595996008784851139197903750453484672877232689214771419088554938605110741998770649563809800286593577485900436319296431382298181546314853043989274937507389141915609803999179408281228046163790556327797627205562055224512025063798998557588782192824517265659815893108625962837925775987014775637042287030684352901605673186212710326457057003596464081513529210135047960590064748354796126980968530024440552409715508412407108459625750000811721736905251147465079024939983074437885720702234249767560541887724765745698396034769491853064410002088843757090292928389233146379866784074215763373394630334454156331610022440634995935032748102913661264033047606099437314567043855493049841485205574856542673743837733319608438354888200229499879018131861149761120048013717688310523507037566209321240845909571130400855430851597920593987930596867677537305086886980500110601321078933395435087490056598460062859745699517032889086671934549719034806343403402619989485214577895753059381432603970096553800030431220787749158875913421653339423044202885965843340908764925421244917063775289187038726915878166123368606275205843210598035787981282561863827878857763069925403392718485256669817347044959767280335125681979697548627063035838573544317775621082308689757659041924493241884911587142383745582203375864604636616109850099009246653967269699567816557661740382932974977642861539980390399637833075335878516657798069702298352117267629393020598412719167662967152393076421986951902727646314317892732236925416048365589849373376405127063385802237087662585091349875351628883241233776624528306808421582124219440484162747231902595163874884695570388346714731165586209203985294197764786531442441025168980936287293112070862130761539742625306326554319095519550162343506040652963533189186545768915083169481626376922889179577687130527509173137693351760972050289726761182250766068645600389021699290610702121319031602816236037563277584015475860740085150302451742994429911514652329279971565354914151406865195737110970962226271718263238197799872143966521781014599573197479292207653324684421064082817128222541220853383225611663931405783930294858885478939768403858096524448925557525314457790886737228464081002577238404321039767743156822271510391779009097059316223137053696567938541799454086964679929934411265350365348724046949446267620959954652751268964777658151516938574274232916572499265715969601135605903308201970346552130359536169393395974953746547795203677962891729353217657861246506339670112078518274808792633040611032144147086658858325263192323737357613635087897403716714444879736266514489537746405163265598567032286641748766011481029555759663832500340981099392944248344500787759925528781343554761994359718776229211260077537398518869526171068914772940588653053450091080949761699956865984518393966726226613163778663491144622722966395612539134511581497492958332760199955365697332864326255500633762237962082006536664846798677220359735333060285011442285419248053163459345747790157009484003470660729247339959138218351390970516568643229367378145740730704234558730323134290099822089251371277769023022574650219883755765935436658487028388226097618378396480138200674684076635778342727148130647555507779615831327583509776148547825110799617189239449735914296236968065171462913085547384464539328370338868997173292352231669606121347493140261270723728274091403920429543806213383834768784631150391643658932153954280621570200367118065248544190304281395137971723798853901552061811194344409226097741118391594090486684451036996212154859695273040582167579117204157167644968773852846859528703725831371954593621048093108583545076554248821280351106353478138952503625576948843786272756615860363480074102263743261892703217074075013968499148804526525996333621941581729570672631665646648686062763514034382035528705676285959289672664437535975612998245731623205769902874194968324067557426458329665518655433508033777083120776274815000331136530369653127599312112279407540625526386321286439478610333383377916031476385865163520168730868952613958819229068383615247356151869942390299995844712721748047140014315064543409254249894000386438518909875420690117999453170371846515543092586926076220037367080703869233438395565628477991855340857090947852335177484514350333127105105317746458644300076311568081152058962820569048572060654306904565055242927223325004027984008743713095025472407552842118665988788481558186172284806436960364576024959820599912146551706002372643382322271309377225960793884660942435593189661820400109155211613476039936031144357433277960116286074587817469955079848437076896680240766082193041487652525824393275946917800270725172241008871203058142429011336280069306097150941523253674258659579211605423095821194495941018175693594142537624788744306390092252554344890392928846512805334515956614508735400187718346093901982495509155792466967230791127915316272679800437110771545721826222574216485954835821714854927652824730884412692285123769711696955389907526293584535546742763682071135064013528886060830158419492487219014991539194183250566306046579302115106168978219051452256990778019728300777506375968615494417930256101081251649429739114785012931629968399687090658509851613115090681884373263065078750968359770950471438941013667291256936578732992421652388421543021574819972824567868727386722315709986907004070814916592654987166578826705966489274003499654886322846229847277526751314501065633558503569726294221937141282411474134915912755367748330132273623039370304921668862797178240805502465120787473722206151498231382616340309047735100596856805787027621910328105288782894672061945316641536490987026588995741235741590943888491271837887437552269924377580948778624781720968350380871139096612580855301535499203375076802733005277283256544010932964011765500683652981168593200210691334583324152305291020610869253204564667046136185670773405004727711670436650505100988887149660320040925973057767562839494259268266235877987516816216592984738013410626860359910978833370313678575884853801109325693803656198064874535453924644690941297198601234838937783170299120419085334789137056697582295957375308682622460997178283196617780134713577198137254031908616003265586417370151937826715836049737319621474610754925687498594275602015758513700141993502015243584376209995911179870577861434363798305722204937452147684002224949266946269026868242019404625238389624745170870860143863533571351091374623159433007672050104309890521233098323142278453387536941645682289325463228892211225795451639433185343681126491323057317599749567696945872423039728457910047216465833743034159114397729859051985679471136738428861676072900867274664810749178584614160136941135804788107414259085573592429543177722591975619271136358716480637950700801183116482897091583219797592104080853675866558199058717860205989754525164052066408248175550866625192924386489900322146191580249563500087072382975821114368896781122095058733680880434224497603631103484175307846891371594837934841480476434863471109243413680474195677178659382443892463466421416462604423767828566654540141526847518206719935819568547019888177078836882623074601314802416915476005522352391455855367757743360815356442466130513730717400357177761432246218978337713086268491977033196787024369358711625915411999373101175765336265160259819901449757691916066990862183222442816466489926891610430670824861683123593835399840019123122824389002535191350385272538630399003307962137781543883362676456019089490745600865766909447631449974489777573341832651454662816440049423980371732063351246293859444671290524336028122006286888278657958145089056449628142086005106289599743463255693924106475704648767325545449087984921179165316590538231287073533525922704630870890520308502226053110018093911288934672377724368564677425043565858469459988971148478414171746201725477083092116474924187481006281914125741999208929842893107014072918462508168020878565223155851745100448487100326946875566709721371847357085768448884005258935318837685550530738911580644349691967622882425025834477886034760026949230851984266225380256084362725781067154805557657663495113106344531765834592346621201057342048956123353817502461358639473787665772049288544748669297175410263776628330078934816857766112490817382101905172034132967737164509075225391449761334325930445012202427684915054795060125409915464424834821325551242009104751051988427308928546723917882290974308212588234079005518655737986001249071214213091491637763769526161106695731932771014223545970722946782523118484333132994851876850998552578260995499043999093399366649364022984595579696928519292501738680983303598849422917674175553416482557403133062058413360516095601395978585021080394638262773909152465557486112589111081277514866924615411881742848364253202309119852966041312121299061978583651783549143363395410771826765826645346218561573732306037204324336330525109819337518613845464699427583896838155726773834363213559014069015359307665359565151209676082952687815798890724779909386372950324255810748301756969273043330206774018523998488535021830782954723363697098151588189256433032804720130409774928186107288597216075841065955090663392768591396845427938316732044305228336574347769118076654770816604644310184057642205610794346633231507019795159659129915760721875218235072606104297157359101243913230811524193920413485351547867888394832237922137005203555665707181153516224324658952884754366558128085081008690671568940067054429696479846818167973923022263978862912262346032504263965273881839876257771957218128625390957904599624867603116642852584837195506261737168972676339336103814735083334342979439450126449073470334340145166183324799405061464204943341507660834856080985353398111870861523615589512295660026639325419979271852325336229720374993599745665799613997131022898442009646428010220348286092548930781440940192025554829679719334421354978152778877979983490937559732407149064321477931518941504205716143013586809668894393205928073605237450477663745452728715828226948768230011257990680093354034254516059850750709881806554695207641085866976437134107472667915059216572306845945733102835862881900902167428071139687075916327367983079867804574187265455447166915838003246989003513050416155839184864420956938929996825247769021165508280811136022522723115575997864583447800507779028244149538845365024906662087891800392713633746431221456307899497387961758132825601120065676222121049212444945845444374652472862547788620964544010546240877823038152900513262383361300986640021346263839610596981895827935801055431490374535467179043037941591239603809913547407121420758603618003807169718838000310853699850910726957114098011551967152877790330144039684552619138574941280184546616991943076677046288431429822930785157697307888194209146326281416768467644292670677736761869533520103256183380246806663530779460930217702640432838798499189865507405609058536222968300858748789120071432596558608136286136441244910691057700277260120325435861481607869808075968887949135586082363460793898491018963397298374117617653056041246255242102690170397155607717071039946341194705888217926319513713092675932079386019551949159510590051769449352181355890730106013492571535368592693346815210085114723606332152784252442008577477936789130636683538786040538151756860821948836323290101868372149062542038028287671749144830746777696658598406596236410983216907723130519143309460216153315946987530270323784786392600291870499444208543467272825895675526201144294535105278247783092818698900023234525185357782558857190086161287258355233735051952392749992658999072569267759995153605614117405631983341093308034781592301094889207275056434876897284120121065420528779538023957485388503333217271644436390809066755995147484616352926890239299519938779411038917045813666018343829044687055160033718452291802144954827765430588798677846115290580458860178155218324199054682409032750454769339515269634919745471114299849305990322643503139586804128496330036148412144889051506514625597721001885864031160406393395409837197084474692073178936764113010468601005934167581271015395526634101416021297704789506465697429992670413067615973755231566708697828799908634633701110034797889983279423303657513366340551689660634612148205051173848088511765042450067873852873832922616597054373861120008579807876609220233702442755449437047144988422683552588960087552998458470836023981895329613177194348935926309177890167479698874836006590851823429135617274135042773448921606144818871316051560923861951650910801040374546026452312646657386890184985477230105762413536441927729563582304822276305386277187390550316288184657317292519097221316858119206241262318497312319438548307164682125670891171209149446844916503817231765416867780499454720741931942749197483304510482140996717982353983470891726930393844069205086938746090585318098602768653189309601492075901149292868270737127687487123993230593987169107507750860742838144824504550121105254115888482249978929761948326710826206769022577435336515201366348231451965819779893109827432142427183934723347284713232716561307585182226766542936924644854989080460872227359716883069573599968500826675140815647953483627004777505286642552239967459996272063076316670536208295490395646676230523876746392607126609782243087892600732853093548729249017368546064622231126391555010660565180055937078855760120653975181205200647158211338928932480492287876658607113210696370389527547648608869826909686601178938135131263524894465917270218984720554515980188055474996004036150666398586617461628477508720968024000402872205081992949884755157600312527924717396763484398200431836378720010285907301203539295427483013717484203693718071803606018804970528011952131746805411152118906478733891116085766550082052908955924118584035678660824297012943232638682184043415779629161326267322687198880815283766367229195806154275304999831864176676656116999441862131517337726144857175839803809816024179375806669901629569616767578501404792885202526535334927425882019003459711663062625471194573758758437840201901937217209950522264132934913774171332236614431987446981597155408415396044649519774692266189272357943488810611487546320208894070822183996710824570358937630911114776544301589405060676345372147685424258604333121556760839876223001656172524360811989914908229240818795167998945446609878282664394127906334151560967452000511006759161562472768036514866723603291649491435151136984185686890584002808172777039719544061819367733717004076433406907778934547916079823578065513743835257277364102441829830105246794790250331157488549767254884702206582954268442997373470332172069596744216214156661014966162691513350941774296358138049104042539965059640661784366597015290755723373238106781753349893671141972851845950415952615560649305297199114672933037603597915719736961691866408445635433683143897242595185523400384539577838999113352266851701910529266786864899129278658219497463689136227156738125669198952198566255385292137796059258439341541192646160375541046160329523107777719811457278521429774920785809414431329819622278847543389875691317129957057766672142310475606399958537905044920595120557750638251166195727376519892187254629315856401297791964166337175965276871990644365673993737046044086829984809664629200943476722760696676319253159105772499608955308199781552859509725368168925022823205272311004424584077098736932508402228530946277811143121371008591752089205726176076961042582923104311559521011568794800813046462085856982095008197345522875027553059974920539305993054058640714376283711032709032800619754180765808871323441058969310061341962509699786088386645527661448080795444338862081518841418156666364566819741418442841646798811022148596041657380214772624598432426366099992528102487679017663652425368385295338742276454310343523440202320070579610804066968648684152589682783763837384386148813696475806231619924871359552702786999770981035471415827824758858053858750252092127110364567774482731239103026982504346542112549278470607211683540920946813663287776006673099955791741972949185205159750572162727549847264876887877143733133756532366179740821715581387809402174474105143032783404557580839780671749760497334721076149233338770600428950921338670053467523792056421136885677049630007815196551804393092287043524405397267518308197649623497183031580109288375331975031967255009301250610385889018578957723952301381546453808332377784927819215509540761397169439321494622530959119883665150400519029199801562113631168068668846312142079289312915257744434620135341266564726836329344752078611366906837280305129591626116741938152229754331031983230568219036438959523320662112820935707698742365156124892695750427519692284917150498476748633095595189543015595511904637723626110854597104737287855405093539494466879067581957992433221454953358068117075298272830106108882810522000738963736628235051140819750960136189543491862841537045682793275539767253234137588230780654657956206662094855414153807553970414312754827427608362741398915025794409435540537633896642892046790937260403657087755438784991013083792271772809920458298338871610418684170329451575146533044603744473297507612009857593073261009139242973221813743286112972253391434328088970318410293238444520431306261051253107997009027717671921256621362431586771079060304977996041645540300474549939364745169484931246029378555397414737319062728361446516859989057377339841724644046661856910550725959021418060672042311020887911585329950499424989024772347757364235735670206967132571512817163375988322799180422687265253225914344163572042563644045627308467955481060885300489914688138090190990843678876816257343570608348771139956830070068652690705566152112743801046097992983368139528117446068348102143034239325178202514443018353148535982183066808095022448582461069122787496614142583092334718934308504342701643967414453030127520077379736177168700451469143061905029125443241489688060457983607212333094615795342170162711666747054860782694685888108112413551188108016899601198145374382009493348615778306675669769513655478414231788170353176436745407356273000605477125377174474491836456339360663185009079639633640190896085581889882179671825755992838050816206081850966960524094007489865620597129307804137210564060033536282826786050241679831330493818563282450396547684676594155650611817107925688521765590726500057914931201970819820421019398774258097865546367739223894067606809560775386024605858656294918147303483724044767844875303844007438775542030419255650006309805095745437799961987149191315738817041728571228836009686993623476089372786260150318494729728376525966021534736031685661142533987310481537867955988300032305171913196465929311993979969579860692334477270750842668884628508156777646337964532640574950534442202643686028971875126167945651808696676165417129892302208747981373491728448690542351656106380475727468688722860036885035690951795989516968986400573795120729648023598852535061447245891821484311118984842945105313527945630521538040733165682829008843341668123078684149650197848300275470377186028424453771180526089832447448165057588085891605820368993069244569615777479375348699892718861772865991724975344073444684818956418329843449085062874534141119105846306422852086137711006928379812253077253467619126788746430452947183714082449932696069752472294401512455335613234995644808390916693512024464034115747550287585510604480175239932537835596258284727470171950163561170816967007838685726961836226451008272426363906620965479886683769584327645117895529756703056391447861739741943169422694129021268229785989411761897167415190853083868164861845273854087010053627760562081418612868977996004480075321083153810138582870406387863692476793624968248631754792510847376566636379682442747145931877995233229694853853263180138114414537802778201861276986572949410589532188788997589318923272716272755880711014012685000993935698264096265764177086472889707949336716834775884992714465116125505394376596005562876824904862726062438292188417687962988806446595134898175235029865735120525829105239356935009356008830370955565767310413035708236637972414049358598484260193967419953695638100096438580306197573582182350537938712256109822591047592654316359836115422138210242898562716364022421408841866636773249826601191197887270723943774240829394871226238602803603018255699673658690627065701548672837487407898252356886284512799611412376840212829699476207227581177669695681960165399485497212967343402562333583700273284524796967290205227768352384402072227440904238057925781613992303962488327458851933282171295147144112824853335020715644800580635940580678985271748806013454167577396782973117864133151550042612974334863387587259969305516873731631658067511021101108578899934446085660836425058247160131153881858855750943810600098192317894207742408792384717955182188506257581326218419911851908080334236459946108224233003842922533870738549808512221039848190810357406402904751274345835230395576358656664783006857577809198080755322540290122999985401335602015297226901445735904645283738770106247751285457685102811601377344951679007097978761449315078494841426340330728484985449000639391000652951340853197085659427468557123580373910564116818781909146327476084349889669247981402800432363826428554927320088356632692824501180384756922700302760946038188994053921231553112051966135446848427600015919135498784276559766033389169575442470070314580236101357060076746880897673386549576944133195415205696994217508687753980451380715152743127873538626829830096520175320001895165371284398502948312202539471578123083280303787417078081644680685561108643107845641308061738220984544929577700650770435907496309134353729444529216885413693235517186865637923952055896645487284776650315352546544622077537020068131631281902197417211226703291299311410326624373791022062101751708432645116079864790899858390207753147934405931258798055701690901334927105332930193225947360611259320331390165410416098874953910421488274826605420114205194118647310243619853519104051166747821325220278726819700108101764660885596895424938611428008059697825454968117060968234938873789413178930816783110913943911556375141141484555631876368932796045709324703023130540034986283300632157639187773617416226342548524216728054328668168334256532790415864069754142594309481870863633311434762060196679646965263731312077180303082738984494846684549458057986593598439988013633255396934572545693765714981482794328445532420132310759779562869063570865755076626776661853884921489041422449423005106532177135261529482015194869343793776681847484140762150456887719885262133486858919998803030191460348698700486271109053822652694758265235596539716272882465969892672016818749007612581987587240354998783823896273471064658559398567758663474357299863377390723721444624946466902848729102128286833105472627197865327547852606800137213540029349782191086612820147506151069690556824909214765685153779578899204785889915542821515155689916171156292764855059476048534395181066390587841877974750140816458792435049732886845098084121779004134657430313804717187290813768759487726283960411274224804207820501306561345748866989329566704780091776575529905597340967399012052943467908386318759832353078439076591566091732303587372055227763631179601330987787781045253489456093869132510424870010049780549343325237104251087891909539841936938043494305880813594442501790830217016702683557520005951515565249727215701741760755687212218360187777400350601862736223630808292615725715903665793355376956529328951435612651515778422558755511265483076844360999985014452335851147338704496929714704038005035393930508608414117442624547431420671542849402429731753966100128179615469065412291125560588844211296368158076267300289147890652529562570497254928204297608358462505792392939837638360190793624210526099413714905783707049410141874066332516514470518704298066812604142250157967314876287915646974023044464724899688580297278266208134208121855300453404019006980228293325915030951092017046581815253850115908322427799523118977235797605484576051279523917795693505461867400377855527652482935342430799391757670458795628704265609237979144969930665258123659213644928842362261927149611160257285287108355191189178030971341305139492344995379063501229174780814974028675707000313738121144211450201050234512249528902387195681290444667998988638758909318016462301164419389799256995167786003773333977164794820910179447542537910084675533784167490084796537875864860493596041001444835980676987677395037663743053399125542534213175732260183869036942514670535075534199784128727320345324010080761786360925065607491445974815372479762430344488168353613449929707115048762770813366216118152716250292374912794777322228368367966377766548005450661464010001501624217803703415079450842854676061504372260440317023699158950063088464236133593187555419114428086139901541038516465583939891289524376860769812274059028046989991064526133454757071705936793685818331700609347156527942809318066616587274018395325987890255617744978996084734037754854306829076001306726185742826184591016149347399529731913846617443589007867768790552473506368464795487581809979636028573974133576810174048579898867684718129810953691908432407697414954888278296925910264340815153758520828949814583712390164200154165009542822350265099556676495479273383284757168080827656820522251982505937047341027691558617081767893298898816454139793902451128261020016358759775432050691517550829498440742095129733386082417417474152819439305404719923712708377447217619981343459817133374592789709078051901806968859719062743139545625471693494512593040524993450431539029685453767165900017460552986473503873414297055203468436220313509799012092810030744346476905603662920246004899992602295030529686922729020962149923213788195241457551893676096855441721204567501971873959037712440637237485744123511388098819993265634645406829682388417727344752643359411682652970537680393299090249220296683530734223383188411062069369096711798364239850143566035551085854870387502978958914077464757010607961986208213540330561519285424678680914515706005769707382288361937864982186956102485941757245329496698395404713075923373572553124788746002389837156999731316309684290831554155958642072701768740659733483842432851554119871076570251042387017741587591612734963326780824559676847204735294714370034837740425099738944361931233349703430662504463785724258889301797382771236498293563049275622019888999102051222650581869909818401896800125514315400451811570850982039113365527594582510439421185145498804190169333197618599577706935685659472123454110951365388042748504753795750479588671709967084922077818134869773826271180189561716135933356902189679520708234459770495103544078237467230340308042326351358360327653000356032452334241289791074629216210525963344224797659448528860780493454684929020726463936475030350510999426256546944021444102847657226114456332840355829369618561220468709026626301935272456236842615423644199541708351753355201310210127453671580287184791023435053955520351785510099600851508991023713050852699925983333977363606183601627575232883575638296954949169984577448167680015463554102411110101323857119498225468323226965306530926255721729890087111059045253571291669763483197587919487319963683318950587960437355950633388116688715014408955616185597312712709649694295743368534086937916291685304418286832522933711403682236813105184101692419839550479172558408147923591294594406215079833432311751543323615036748240532775800726245418307113330329909544987231832157818478764344798554238625337537730103279804551044185713409154072667307722357715627591776722274899537593446717847004358319182396445286878361975870529880998485377881113093270685532077889260576193522896531214146251099290599036141227544629971776323195116141761900092917951304841795856968072446567499539733494981377756647246047089833730779011652302595658888000467432881492076977671294135635883297637617973100976375867259023606577430064733293839893401264183127114581991258919180851770974965885860201459807381236362719734525237175166343293471100004650461909414332638513368587007497491641070952134088720224119982282496016488243071859324974602511273998278288667669752441998896383048918961736315644257846243355997191125624355428185714786919017439160536368430577902650879298497028290921974356820561408881653101683676892438309576372589664292226739441162475265505505598787002914517350942515681898368982402259288899582671866716292685370348593499902536177783701912458250333707856042772023444515208404016675841379766809781472101804880705684689359809369704465997455960045591535488490075994571302658452514465237539866993642399448749452367292609152225553567249669952829807239196674085310231465112259713238731019588185536474384164314706275234732392929294623584626633367385527380433666376820897008630934883844592781661556174383097029272500738098908379260843355547271124216785718935648924669183837643637832310213534892035125902547540542204883781130788649093088406953193371766561972589311531880844225617097559209639703132626363228047809930501623525488200320070348112130991710698370986925619867288933394311953661345859679392966413770958457851044643041112618144360573470079395823692859221345438265453543633751124944695170756857928226740119331710090841740877047387215085571814071430461997849949971435185784618918481764994789388019116980991263870112094466479691670346531002559885136969914031665592972862077281555219509732837882011648214486044540134959845546268185983287104021252591938412661344689128193625688903614824393097060527320944077128947987941048369401151808002108027017280942401714062114191448515823374370032439381553890987410766421869052562607075203161300505615559022726365832862645621747340635122262234882892579229524325352928325263764961315742766530249535378794774476459871212855003739525887714565441820679480183282051129902006492704895553570718804250968623838602425468878877046904688849126156171565614736354680263461288149234028645861862169094704797426541251770444865477843687660899085479434660794243247393760998256521153502222456454239771322833880677687792755025192077656360977651245694159669233309121207686550091619835195773589506277408835100796685596505633801915336986727873253031526555000505978215762218999514036577158045131510379955369839091855290539641818843761660215039674523017267666689014861480475214525631484911451403245984015095449819689465188070884413572522279877887317987858644619886232798871064093225497886273051608134458760341444211993187844570032518780763182924006262885177556741071043906588234558662035421497802343040658422765598999823716499530704846492903323106444812907545818633626715602552155477808782022972768058231513028892242104099531588681772552547518889212230840258277862945603140862437094962604775355606694722224290794115767326677980979597199656455102484456262651837436242747751493014222147403449878321641978198384678773110407556936200808013974546941250651244618488315783068927772628604605562845090901671442006071827729338834008984047224930625132833898614259393605836728232694292399412203588554089195932127416304704666536994358915731033662161900876944048741294375545050134312648981015487720860907744325235992656584755526682881938246839291504877166597591348025934047318387953299937369031803976601486243654985000943507236983448459946770927991165599252097877210248219076281277505752621787812461958882161427601097088196735305021022309832105715584137417466314971093746398282819509608189104798402846616146446182014475539137102523243754594720155398437492214786822277731337153113011059365089978691234457302856783086318352227121578173529919092891796886959021713641604609842207469811385414736285124124406069470427397297045419296767029320495586568202792288000794355043313890725666377367393960719455947777245767694614967410439415810339764254867296947373097559127630382399631535077995219487246522414927086774223667425650170087766043971543969365740329634248127938849451482723005277923709014044833235994966279219249505909954078421776964708941414648130215479380378835154317078648087796543700772464762337131361917652375951250600392059948223417932289023913128063660908074661657347409502174770438745535042523583609652735665685759722319442051594376070764539340935870629561983847793704512509770837146147990699792890371202957401626626684839842175191115144915960508629952814925907531170995237857956939547822690441768143152887042162489823758761053535099086198060209597930366815288731960372626716064396717028700110642109365783382432695476677653319804540920203722103572340174364260069155652121896714227543364077194450350865747787213764041307788643948197348518924436329350637759011296036559284680311476444420547799796953175762598044879287870947724774831500870144987552228554935021583634067349341787749929711773128907480126415028438220995950474549081167487634613335347276107255530825284698382453461893206571288839086473220009053671884240364546258245236019944355340024535809485356223583083385441676510715132057136757604187253675516156162107674739932035172428893968638964808657946965271972127390074795692367472319927430976576844290763808240026855343718416951005278511860595861315395254575005885041028530075040441317836094116227458223370342539097494147264787790960435437039739903053224678952841570925018236231340370929162233749239562262801551612969173546428480590382693944235838685061289720325282052298701860254392522894943963294770991242770788927882324277151239081643835040535663170449353092512290567128901408624909743807958871601028969896340164639239471381978553602169948563219545552221487972123795952675396710858907885657573651270109017274686549287270339483315633186899301116074980122132853387881961897169609119549137456995626938747317269037207960824652919390372943468367156321513428635944355077091183991237007544399831492104890479065080612550134734004142125541063709009529432447710100551324359270891158499781197825574327819343153273120105030268233891608458869911694281397086752763638741108961957389368524917516699978192894897475872913016624204494776575989815618121482153566951276417522593375538922292426928877525375888981767727738173078157168533061561268188797532022871917997282553278499063782420103081832955715965335446741510857588466435572747611399333849065827358415204431219097004363740933359238694418998676871702003904848198915899836537853556461363796529681866870179206952459148603742158029509572529452257233900885198529266192851127417678896024586813421582233874916347713772721153104277212969230563753574998383448433615824589267605714530489626869710616472102049948339931411167554766469342660274635643713545491155858433575265671279307320876552463073968951468293269810631117909816089458272010428096753428546011248388178802284420371297299808850228689425816136503414806940051581147826862473206515925044424390088324663310834999006489299848602024465366038768042284318900899573741198755679101818375233782254141446254774228719974554968472683316166996139589745778400072079764605757077347108725344984443827833823573800143557791040484134506499343419920997273237823674709348712545524300716475866591850767086470608321524219350062424384020302599463193501322843804432492136690174188452293922818595320716580557610807962679241034397975219296731246119499605036417382160777164323742036569236752081843086353194016396956117261485997047525134054363144116340180173397942557332332395296016166388955016117273694636880753429071429621925777091796496191818807257104429808459405165700646800852993389143436523303974769094930289827183612536733827674334856259456870966078989738599954401580391014006189283457193615428371449997110197475884248432553104775077294816074925647157252455172357333685087385561540003067862560888777448217240303239596817980135011640046615305135939050995035529451244722902733068439297791022984104691383823860639536598717890359812308483042885666844267870331566369425712343821928120582741808358843524721380483671583318079881981019306978043908963306431407587032358464545413943814001153606682977034358762414986997947976292338640266430551865348220581587695754543645416651706606472248055100572147799410931372174128954597659799577842977813622285424442526288238346713941406719381317743486019237719091616454281200457240595532095891215149609555067147856732959223082826089378286389678371625344271123574250485715593915501749246503573473186284478202635233686138103995519316399470146738681827822321352039590450018966131900652305547614671183517282346426785038460755178873507507103473851824939808427858340082999824788783831291988744986659243564976450626372464822429138488283193085821645117603346464263406933883179808812219075797850250766834065951336783677665066383904160230908131684784183221012033749792274623577301952845563266761302738861620137887823360196441252842315150528819607952304141280722359865441816884287181220685724998427552890648267330961234527113704096224613448114179346195832819874357791910235523297272126191510242633436066017987616549147944230708296012909657339541912022025190884834513998631907328279813392817380983736988451649126960928019647803731646213892883559749251242592577231765509206856189409908804593694294568307240829320931383140255000427871714134189091280263118933412677436489870074881455150593807199758561793460923643916335430459221252738304800897952576874706321870562969725255595507488484820261992139103271739896384671307423836757524752359095316094522003462740989709300448126007422102725027082510748321048899813496867540135958429320752499609921449809100471509961250429810246243087945266101408981242192275465553388699870983334943106915073253692694390571716530523740974512664573042947284623956612163754783223835285560372654095250920442943086660584601609887963249392438218302948348328813236800469054919968763333290085237168317451971007136914688723089241418301865243653809568528677330274589192597428697002873764038164307783813213768054618381173803376607906221351136197612834050094855000373540109612120372203543988639523324925820976996491082265693721896902119509378698297438354275487602799117247198787761987877377619427828586508951933654689498768167133812838457917689879877613034737234265310268777862626934963241268121470314278858073588480324934593147779660127774092615573353649993619496488516035520173876668505581153495803475930381974584471526735763878603441831488466237165723113319594623144967312404747687162959584855730999686374508093265350953081184054880895485250735205726952135224885044987189832855810180789386706178855541237217016115689385514295159733013580935565890920594531963587360075022909084178861185612495352384586919460377953726512685731813982257239464579217505893561157276465855253991434285442291800932260435860067971429746873670433117896050117155933856555730028937510389370745921753071883512818000763928062730808060731416869374335827063730347696893383664022412657251410993741515312219685131806021002400408748569411846866565080251036189869140243069425004398707770414414902983234829922669952927919757468734619904310908408433555036133036341588237261339393439084644636633486783021558673332330602313379865965585978974434030094510977022538658289497501665145774186114121679594547149387752383558226105074102344947928338702708853592209184261835056081016280790407562396989018054571713198097824705413119506292940540103101865176579960838077625134295999249267128133935888546005114689610810279683360933744402057176756393042928447697199390040648156626090459543682458062712917222089870639743804779599329430118927361320685249958435792544965330539213208350792874708586712625229124674079101318659377504354262982162227483379229761107128636085520831675681554371733744746654597862605803780635132838774821252680923470619709163817635092184032652605628526820834155657053882418589103841979254407568245341046309437308093346618150313538698502551178724410351449076613745529085530607091314011515734103359195282379448299085062175987332581702319709002383145276058452823333822016818735011257010095565517216176136982822502012991323903279578225413986910243184209826497906801871847531283363508107591217360500384432205969738952731722325438781541634349057473579215531461781523157420286821127034957240151209133560263849103514507828563182882580559666099576766915242795595702263584691947806989749093358615068319731292510002358470128780084477592561279920432635239362282710255516233968994502870702082823064148244188159700483445916341518164524191731614046513290351561027368345715971265508398795396878006025170690832049158113798726436079197154329682131812774683580127149564670743638996158145891378999565429620430183283908002868612057564454238249794753876140855815186883876263336484662100175127348408967357780807175132798626932509997760153774726963405567720945092037412941888849109260841467114069730359014237531037492349055820911422130359615273776633390742177598485967392746249442742220338739614466142185748713473361603534057357317531640081956576488052638347248336201673791242363523945945981634315433211499210734775961829973220223703928221903288650027862404672240078090038220252261016381173222827037362500940577117700304934225312351706706388690333101015669973179756368611683109767598323408739363629442170172387291924359434030035326726692222377749852253222751557850380951352293531209086551707637495611700131972786474317657540341691611981986259845236841139966563183891494292373428731535071561790919309157749490255445188955864762043093531668935656614439622539901759588640383359469431938920655655005830239843672573599810255943970212513429654946881048854651065815666629605894371972422714670728154527916559095696918610131461650123486871618828247556267914314969904617105183157548824520250289169558632911870127659644074201682138539303801080943772499932984474471273294395969748932449789205876780668397493244181415949772373767361665608310403503729034257279953410201406113354239130541522834828206120119125962858856989326318593391284195512832806109940696003259178067682085285795676680101496030718403063283791415994065622347034640950441306099293752313749800992461633198114129245328892613050841310992019575011500209197758252332006399584128876565628729680052221661776281748027468995488884355110987133167495378654216484713117788996802401866852454542461724405437474720834651867923072179937060851307842104980502274498969610584761935034575500852434734103639701638336009363905928789071243071244139067451410541778932792892467703051282996489180519182948809854790723766531525255805851577966602147260458929296746527433864768129098350033594756888251325538293659870203470418109084044489113329153658391777066730390464581953152184917925277162389485042577077264041114817876921120954483590837398068586212992641524551782484301099881795781511982191372387901504884598572288994834177460183951921050042504687807357878537372579141078328424291546468252531384111108295076113314989304925948321953976595579439933431955060289282924607214611691219338716741885433893121489635760659771120677869811906295573916255157793934528259403254626472777273861419586924414491266960306566046857366765225802002316554149223859570232035916080983360575140672904392146767507328404982254960456031645024157344676999891195417098430626914823746778514070716085051227374606554419508724412013523888257814770682817593818657217942661880235508394308908949549615086946878422986302785134707181651717936464479871867817112364558780978049696793995447528519691051671932283263438938342096488195085754510253989095822466325759159826653629702294803438032000335540830733883424955462093545556549295319593539274363455456392240407363195269281533789624725402951490790468757672437945820949536688893382305398573508236156501002447589830232350514887986277493162422852212355354104227703765965978940151128906506622666076548286391681990189773139280604004747455444720130308481854732692995465660988770610944199244777908836497845428022611692899917899518321232762449195565427557527143546135356804983926994037739145120046992207972314562376058361396113147547693853225442231792176435314066977042945887546136976581389489101011169353503635402903321950844196374543224103081811133058328952692919062983588076345163054420362819380907014982541492575679289264638459312461782546588618003573100806351727658082104628615675220207071684410355090018850497300221314337394374230417425345458747524608272708057526735736743390937999214109963963974964406826779431510854129510065867493397770329716317938483685874973711717975884568771778499619780614578067180779334618922111844123467459807118061519158815291295915879717163426348483628112954062731704032635709796959553768110860865188698110168617827094782713945487631108347646399132558822905047941818632177601685914364904618315871490591779171246879903766553499415418289716685169409930595569297087143717748826110013548310468073547845230236736950428915964997445312113531856820649931510752683497568616259481546769267222890218219805364528030241891791178741978555085799206611828388443791335963170919023842246538913678254270553427335741454201552430152514257353296983548654244960727589965120691019411296643341603179243509587984649322408683811208023189250318019221464414404597039595138419572658643428341455005727710582603983320122675455265262160060367523856724106345235083171344600606749177963541122973825970565152471081150094814153427641950651271534947752402741239009679864597068278900463413072360737745856398917968866596256459198962814936846515022090168805318582881169647197385486269057543938623534673137337259706886218434768420812916439876706087013520237099405155999796071693361623920709446335974160383993778997581160885263445609063732382955195576111234166765557581143383478889097683922559296169737443147943622663843300969354835377475551335036246810020539596262174399337943290538893472150935312638889244386537977204712527788854549760259328947713698263129153852451856034017512636563502803564251810848615370162157644933102067620320750217504117175980075517310682427671841173301260119321158739511774058550935875732721477818381912988107174751957396316496874447034598976890590461190146013833168242767651072091967963322105972575996744291729985012466711286441975964807917667100743622246222724011869053602596694784746550629201921113311499401913419009725826158764008523323073959232204811928510089763355739887656928844976707248377631928938509555878124397818127982105856757754011854287857862149665732702193831133169254137612872841147548419575048092170285887092747658027956005840290832985198696716488569790463004874280549615460824367720977184026992523071558798627346527996845849314330272787537569322905855453611930024084070045828069904310575125672807168534912361779571312256621737919069999621770130504125374626679104684204835060808172509163691799243511285936369058151181936413814552617159833144400571629869108919164934247729722595528934598776782067501633347539606385437939542218061292734156075201214987187897708008587929916465097491447196888445363622368466175460417514871070246736166648315984117552400089737359048068275784095170432144910893074551625475218014820143756905813564165347464795635029652138557577836130458681097897395372113871113380789798138631637189198775723169538873622936860614571366038008444545785527000114986032096855958851270433851124868044781553141618084360305068004493589049599978005908717177320581126687347782787587674257935102737917647862644136555021498177889146001291762935387562644071694625582875895353320047260796736094901464688195304678427755669336287506906271144616527787950657489347996660307852841883884159253211517588364953590299329998794809537370519930660326412439241077390262846195605964290118595864153757067036088856253632517036959288634662266912207149908655243727929416951926405054319827278462469949857555540877183141170331108165355941905895260244997067469542600456602061995690107638227344158694156386466350637363397755012088583817229530321713700638644055515969799584783208332069772898696281753395047639859310401826269932450367985027842509072272077192810163870974164407701667003431768622570162259158647459120158093627983373963859092690070362046440640080421914512891401223850864112267373855903865296425614689850353679868235368700688197364232486705361327612958744335178056974529132975590046846022015900941898206736477009608742860256142542780537183175948419840677663606673555382338744434806380641708882274571282087966679947628066244348195135050252652108555910265210371016569581009131141760824482921072227628478152312351987532586933655529989872688493079943366808266754042711222872936288252126383985346670870588179486468269627505806805265721292243809231607433246734105285169588423347103558874958215119588049791129825342265653111072957956905459333170105748287905646657074332401259996461032434930975727054037846515054105995121924550367555588572617354155287000794323932014530883100035349153841027025194010187197453163741343922017363990512406340800978220810802691773122939834639889651488151773584329684985261108456108783075593893844421946225636096431014505453146142697010643685024539524855140395784838985374488376067966708881496613935771946382088493160150193438915571834284332171197064517825046694528602957076476600824700072962583826008021343252755706878531569089490472824759787247793854126686000393952648771291072874949998457087742983878456546895855602548201277057181786459984240070039029902597521323241502832244287296149986846355725657430582904730802046225300285325244230453273994649410883945717630095977872720547634390989492574676468377440707566263946138837526724636636592355372531129380878862801066186197274895025454051564834525429718389163570105930121972097742249066787914261187331336512205177157819993092851341740416447488397036159269104653517931339108023963393591333592081397752933820968094161294975689560544513427540167773058817446144617025885912427631092083745675382653966496698650997683338289284586476157193605377481680871487647029540004143837200478061126110012379148234416623990182501161796624250508528186986560508439702881651433772146389623888378029338868750294430964592467206584024782889478140780643662401078698309200524055311203241226755928909943613924539405649597346586669907008240876357296602475498637144666669561679221370870983810558538919598204114570650573998650741307872032841864656522506031269003358598302297962428475950906256679774697536080320190752604544822082651885125189415386311962938346938796424458805840257844656782023301595234444717814538902399190044563451664651459698664975015606666098879214021273355713899482046672075282771325603512937525756792575400137335528251371179494581843061336548706562413276706159975474277200891176015009024384745122107318529052243171746824760279497515211677741093443090545952359979257837079910906820215297628311033653163547925982319727912066570176674632324458392524146344344309868784529129588212883875255873996467744928576993565580394286137117705310877249818776298612033935866677456159877406565439352952975485981328634400397791789952452663311212115403681447546993184245004323664255409810671074646718293764334215205301948720744464911677040994376441941967575212488914926583132154156058358569922698541983036794145003785019821110684746539435605633001094282476423537261297735370147788963446817942853223099395941244472227184528431774391868153938706496610168224356583421795086869290793859065525754379944621772162913078965887030153998178289621152084269864045780201835620112659632893440001505774314767637327434480397689715626072381214631767536734205727070896808182218933531687048905724527152004135783721054386650158932605949281109593557638571975545594508275557538983822487887035519156732570083059495017491926896002821295178744774354047319713704026539151068904358466916041823593189742277303888435063048875875654002343344766349678986416309045774047427231484746077569298816319082810676228942960580040990925066815670818362465547006982399908159077013933435811816802467267117626511542972141044892929830181823663624445808919492741957233966256776706988690698397829649978776716551019798599283010266865439857162569256270833767074664850165851405295434855493926440338035537793163434241960586874186346554253449246888629893761591997951181719078139398020260338494217221947703861961138667992794802023026492619011186034276370220643030429965512989469553155163341603143805286922319340935597254091183256204406161285730419367118926517790799300013883044870259188621750574804722545749051291113229261661038206270692599145180622623121711006869279451741035525963301821511547028598315408146362414498740398788536335607249110454210703903041121131758689276073460786212086705606676488176957696596239002454664921972219960800301696530554855583085321829683321953579075811146842227964293169885812803203678899039128668988846135927699881147278147414173405821453605531314092569822851272677101114861842838021180699741527962348821798842184933885515422471903903199989948592850694444882088815053063273053191964850394871741233222460608574487946569145727729988901663042736361409275519123521417499036571322581946343106556064846634256621673916981912014244676494994033228272307302479086358563164606586998634630278027061182921046127533917714676746230317470442226807315344591516830523995499873815911417431683756403326994322448984047463041162711034753168045863985133299743405048843076996190789056307976688307138961874840557564883165438042562913914585735763014775596376650631894361788134139272143952526812829309660035897846460671070680925852432702846836728367370438493594689637112635274509447563888943164653122908891927105471868552910101136018003912529205281565825597068603851017043592015389029650519299389485729772549450499119438299380530209214530282040737921312176025934662313302360111000426293620880180338415187660695718632282078376598443401879406473114312801531353250231745756820540937899518742379250051394361321391436501757209783227495191416076466515099175253800291053218635795871524309676167316626583043585358701320364099820043451321317668122847312206740793317959399461524248069554206818703346420522892014903590009154540623141556268537012148673487561341513549386602316650663866693335845681793108629792320910963667100282742594840353324984288551467352452184626531405646062953831272095024485169551236577468592667413394192030314395133994569184365201162850038783787716545101360073796820756348517242058096855491637058280406729414799157345719543327774129445694943555006729006210240098990607859600520804315606278889134159147294309132280894725312636163694595139868851292012917354836380724480790929774448043649235887554909229017037014381035566669988579338650961089519301894796163316563705507473033537468880210355321543696218247437344369277635349566369973848954806404454704150789336972250361620225835211963066225262113430425876529268199023844242219326306977145290737106569519750254152333233581090670343516825796450567656396901777512807882569783695279718358041846197747203339839905248121133577201057463999769478665074351100544881228967192554803857821375447294089205103789618883517824167532024942456803254886993959038438421330090385127176994357466991781079949111681853468503839146236905376808234595604224967751007480991212884765921523104576815449581794788550395274759058881217216097354997845252381853226186266551826612280806068881628498370600931359296622148973286608351454103161784622114887248440887947230492662880568486927572699647546427147991619095127508747523914328860464405722433310592302752023562403494446692814688421831188894582453907353444435485748524310821538572160932911083758802054482135257465052207505185453841051749242869644288701163759363927633200299376968649837547200690354421476130635755849784383989321766611149603800942248927439559922323706063868022788952320916318498549267575295996216165342226049404134178318075284660976073063829699441557026793194543170700538571648327638646889468600493931919825706006433998893152898153398490891117476434792301644565316482465212705708928159375846810617856614408726734565423753107480951398417799829484492081111075110396901829175177703668751082552398987483280114590623181733716712206780896623961566398032680587720515958861821360494190268005941152007442733259476148150646852218070058595776329113997360115061020799804881973553396784463987209079387310715067599723683667744379258536918381253767610625804253577470565441135679030720345196586458266279356504671910213761051206172096235585942964853097778251237685427559817596356081759967807346086206985172165945851609157557588197648205046980185483860329743314579822030557720458531679047127501091950308819506355429109450547397779409861821038565717208445887790346238596830487587722522255785140020229598082000429232900472926882979867987091937710581198841084238053336416001265185724321070137969937139028349970282938499662129952683171948941523302589264076070066826457801984728629272573088423556499183472291704617420069150434558487081832965287239693334593936894233323564281027423937317472334210520166920548819495605353784803245667782153698705905194081032055172089095389640842835349671220743405571589608644151889957162336536762357117808278040381015722416027363553639292636538359923051680499137166632047955988210054311063273438329808739555285791846176515222805737023947403093806396559746233228450471929700957904617459302019339680294971355929048129032966139561143189993180885227387030012575241119141453483311250878969250245718464744396850372657950858969517320780562826165755804620418302997861824522753525384103247697267907135194300309471749623634394670485595562704224662536879579981176521412674827957482369496127038213636322600778576357427484788426827623786311235860583692135171575323343014079843835518230581582841742845095727460430957480555357965759463044674224543884711736496816376473403030084466532981319156017005945260430961727189463524689656589580001367826849910899463659491360458323501341179367740552978062196544004919598467282934534957834586602770846651486362504019243609397477146208741891161537344091380974736744483062777204436299372812123963988567062974683759382468311435323956925434095484615522179889290851727706453334017777811960979668982731158287732679536368533020203185057992663266889567683087718624060390107978885904983003462484021612142672722120730644741084937429961607971612649249313343496844638106161892263785296094315605138400266175041802579226636720992384644326174380235056601256846167800380102250829440761734935932612009677000597108540681230720451479757774185351741783982286966462175661518841256493724326388670822949520124553750378871035263029583758656174045390465797559094661863520557128142427675746514870815435052419068493805010378187500630927987765161468206273574170921863568656666606213866081281306597301956002233760723391256100471137922319291336715038762386166904838320827158603509355228972947340827019446771629237988815821659751504034103353590253075702714318095566935473087041502479003227540797139760205139724478497384064779273508912580915324107489776407466034854809809660254200430798619093577186714440693095702876579221647912939448420876302240637952407031259227215790659356854271748110287640342098401695629545510656946904660389986327125960850204072460398537865635931625342277798449701388584510009286610856656193994222319228101331351238406529744240586605352316357970055422845187185549722365480691535609918401499831838183395923671754478547754428300157651238886249247303719163873001655879548468254325662660952084456591034909696609220238786867866077079045810324830445000021820627303828439025959916593508040721643088201662881956870599434884193263296354889841188552677754632576328082710377235430708431659982365505743393839470306240551153355914649425109784694556981117903263942687447761197096800497624341607454983869666865106129594722219268651682262778777601127913579484363326038531666800085092589317313967864380781550158609005976630865818002497705631776366889915646143141274877669559571013779766868821950941728997768612743391947595122895010571481243703430928852693431657010511499762546515085133570792856887166802587275940778740692415829408755687589881207342409563862833019798432895034473778161421541193154970259849194412217511371332862053101779849543731822162727426326784256034575713855786726859377243840189584959840826975498726903886945270068856128050356153336275631689256558596906113475954564992806340076836765825337730772188402256330773819573068765537302456430148032785325473329761926598012156167106275623050578289254878531805762753361715819368148718521840910541807526919363414322568237602758384630593548218514343661719297484589182362898989790230173500635114357930934718504356868313918534980306576709293672136234200150065221358813044525781631818557541902025637257959089609899525919268902302570899133798181314793440921333873834635856136582223765529222978968330712680877043982862958939905669230795944835741744171342418171588497436289794209946661628998317850306683093617248177499099210907297153830589761791268693490265527620639111776230093431030545977102360702628667325258741213457047468685962822479145744751918177259387157157446525648014195235076559478885336258779411640409954878936914335314009473915983588470648115653110040760628541291537841915851393670189828230367969427205780083017343330044151888352455500525148041907191001489839840691101895632424709966502171102846366744262491966270349006711097748427726856200354864103295692657752482805594437622849472276744099098169805806758839376167018921800641847738382391588623933442897354757274455212241705463644506066681252951995787276795392610626125909803021593356682140982039782999027982482888853486753837238677087091942349964648539339310188147648703279956913191679808079721910165486298249814863813338717923034837170276580107691740840496544178110234672344931979912945287746106639203734894434645793674218529301760126087304577638724265596707200111571508856639972483853051798568164402215066103699791076050536575427501627386161943988227903785494073330909997752931371306525920984014823320104285235687357876064856698140398051995398731822627187586778964372955056231324582407219182842119315110723280703148697210270066994021695105652877564594473340278835835762482440431964549095479286382418935336346913403772903310768144996077944130963286622887581924881572699925396056940208406889644297300459597242549312723583051993645289739280792533934368920497404064493183078247104528531224651857840559688649978981393556009891655647178746165202536678802518994229339658422755899803301628066972556006603071567183969639818410513053186334019681166921982962858993133560001319752186661009367642432155620587835493476662310823251848372314293295937994223406697482045347965518468257821695355523942173098786802546842945250787609582946408622796255900829543821746357771167358435457540413633820539929680905137850382920724127483109185134720142757877062024860890464223900108909026407565734487591778276928783397090559483262157015698447889947962389151305355096658513063926464790177847413187275576292386230095153209665807611437307671220263777235450840928864802885560497008722334959008990741718615366794563962423788074968352803953442763827661307053430646696666831360629687347888277906913340167981196499652699236527607464714241697109308502560300537675518632062264777305198231461901148464243718338605176356772968840667821218239103366166956670890014766767919315024412924003458216219820633314492736920312792235603899467574903136293418640410988832967787394346488869976018860666010615254713865861367595002988442178522117787812337595797872835486741051655494269327656585678879771899789268308063396254517577593531267267535977973581685364443475150217409529465434965679463938563371405047739454330349217870502054922413772598726085126388145840800883030612315450712378824334633179464655110636103114617484203478435032590149308116979491953715292689998212151501618902452478514502216689163418007513049982923683278057301952216571125660754607604169071149862602218165821835024994215625644341250873530332254633108605792676447898163157013781633256761642221891202471577281565225647251318592737698710356244173893792389951368232435408070062820549028608590649743593741366807688540673394599526337817482023086302081401580225291006067163412325344138739828272136871645117999586865565622133268740645974123639351016876381937323237138003128680254651255906409031409101618539439862805290153815173636975758083438607762958200182854092013245625253147339903177066899200212876051868299492342639741204544582038499767194485173982331990355004084859990032935355051271166269094466853953986258023879794973183629744279457254234543087387953478966692776049763106238134075594956663063496674591290095472946121685350872663874650386662073673564046603613709402284102747161265237794956516943204995071429090841883672527381305085032681411947168382089804280793072252186981249258887843557284504754027529109314154204039840344200771186886701461724711666036061603026891698008976800871496717221103365654247517285776693944004346844327447414966496766836730499647873969209226007524330832538398884377908292740603553478271448111705710853527691011078455464834808243047414353368893880626349339798121610495641668929826708398579150995332921957550310301259700484310871582004965532978411536080460917905092423372906001808979741255407941836709400376929525311347309560731501380374130872131350414752328670318879202286309794914425645352227481605498064524610663950580450953545547809458856185279207194907019038684756574545895370213356851802231108194282824679704388778119581232365025119749276084339839483044386981281209652534303267794425455170806524240937459017317812965354626076861942077342100821688399517896407268617450248833209293369807090648176372807684176778511701117385803287378014022035682286014889260004637567080128163941625607863731296214391430183146537375311884031161255840436669183865034782955176811515271984117805582148135048688637036772957978841415581184559605113096851720482536722068981572328556390478459773253513836331743959731516072880476251702189547103321963781909803813784660649941084352478167082353246723240816744352311901947854935635187493407690232698201717236657145818459453155137119168250344485721519514808478894370814820513207514460550323735000136112787355699595673723793937895560931000676227561351323802449883243339157962821479629951291860501842676445207679653718177466073881738125403779665289241287303022212149921030605217031057845596456768119334991013547241468607945620550949439885859761966484658660062877993556435505144244542444765145422099553397988362768107641095516169568354997284155438457259641018878677318137244651842926027815154178580983907359585072822660834503008603318502014959143185119525622478083074526077854290294598717193560838074235178545070901197369211376291692626069179577289526981726629882531915795407937361321192499535324887035283915929941856907867445158750064343664685725531871061269741564868048571024865771804052777297324243038117204236051806550887761346881946685207987494163316918926211736272626156427695743072670911403200407781769980653352436621556649894107883487912728185523245539683740113816169253313382018790746527645768930482493593778647935813530697200409064415805229836353868395810686150016404170283451700793999811154483540163556370058272566501230372938831655807495682542919652251121945521349391475957125065855510150832870899548813619561684416041026763365392507551263971061350954109514731853769082138495866245430812089970381688391160955986448373334109680049634158255343700085624253033429468088815210968248215834772630935817213853675464971538103002107087721557422438404033439380384474568771618453109810091737299125507316906575221150771286810088210129697757945927041531254988556655464023275447112919693477840922080351726745751374630801072914800523404410565257670705655337222899106295962451158984168141781841312936050248798184516719140881252566609792257396600274285727817694202767549757675530855659302709696508130740709807148691387491353786448389295591660324200260786639957274917083601715565116382795670028165204613856023150598587286033408710266590790832498404362163649525699256703608784673383178343588966850780085301874714129706164580011358025332119336821276268232257116644345084414612294649573940901817112069663938898752270996974763752541562047808488175363984092785808331197051725901327814699245093563105807481386908928644420691819492164976961184729123893229436647824658000797858120367592292304607319017455856237393437477032466806615324783455360231537964385060980811984351674052736945835300254650773462474472101687341332684213129393954819598937137742474450729613940482579421593888653856570347115216134443681549795958085820008171021752444755134167713915360272453856589319001500310537271883828892876730525531106393599211644636889987733451623186095418031586619240102377059186766568625691716381387734533883109357088501122793824347296150170574946390651497246367715159786772938700479289949561315655637623533361062908310163040302533360198308154291147258399356631894210120666062314112120561154187825905981693021366375427285992536036860096469177882284447519389360145048146830353193740771560639098045224379062093558897342709906795281400716999814124284012615830392967024480584537834700687968785385447495659005023216689687360584828843777867610864893285555457217279264355701748701870313363154873740264285915743415156492215030844800834061577328725091122229666976105573667236219434690122619922623949652783997356413501786927810949202698706341066429510416382838642737630631114080207678898032269853773189921904242734036688108449225530817583448371004241436226308696898986011961023113797385810356255589875355836814295348150658657219592934424302906138721053385881895551471569745510800887483091429830963686694644244616614689457430545119931351967855145139285621825160926354707954062426786204320871469447198918738307812472003630680636536830695487206083519893287699336604416786822575203160736729122442226792433861743882163907854781609805997469435144824656428067570783864431833242236302538742004924775542225148589936925942902452233233308262639041135193558572691173316535447363866774649869532054478987096536113867952481375049575426300290852116113152604014927440356315450139401320047741477838016020406458275632137007844562619297968523600998472834572488030194086695959564661555385315151287838482468166967879482852022161988300812686495021906281063227743633545327044954960692371256617823294647361814792420430982542637105459060377646610222102608991976679238463335835346086168915632978220458307889580149932148401682142762072185616657271473889110747017747227039244379963628743769562198094414698902599623023079681293053984553381615520726455509206925181746294886581275707191373137859178072037304190594934784127562664832512014294150040623287096656286568296861577652520933015341548148819923461179224677617791377038294302466915360942855853767083799318261013298347485249931461578873058515226074045783699224945521896778862963152896505286384567930040307984787538186704203236921549401822733443943636440927399439735883843458621161165636950263565176801833332020365522466681521421421106742716334726737452650198286501247399958360590779660097445419101048725638387418121207650220007209571500261130209464852420810259572960949838531161465283069850854018539743243411389723747564386388270607617855082751347125280074778335469020236946862738812461535447851515568156518782412595819774740207877704808036646494069018132987167510334603514206849851909205838876247679428581638883256062957260054622542262266036983143342887543995770908005619672268849530703024541547952937587389334776182099997525897226044212474001058902152009193183625342235585426966684115426618262226804203724369891786621170014614018144982034851767064855539252673319788949180813616360753288779103687482082567941347641567123212076359734748309308243576721367025138433078619466444760934679411042190527988978428759942477196581750223361887062055603356667011646013149785716694825744557935621187467658973953005763563718908839513359269710206082607826490301228993667960981642402071040578532402415372498298017737255984741573177451571348791481087296025257774756315393042971610965501550328870896227502336764168159718353397515591815526421281001597059889273407127126852528462518811214774752369399552981787682385158638871796818225915576077641607663125409530117331104850695541189808799164040014617599465508079614110227098270786165401626701538487072278419053417392179088676536443873394655430926068269799724521153521272797267056172527106970548473815006826706703641114208293301404813490869922371184948724672927875690900599692635310217704310989714507386954084446120410255343865061722702452736159363884167579612986913337940297456838406307813631713730997635998363253740112168191459591413543954616492256637417892818097818556249245828125414735098530476503276988138825314065184827349507789571178168819942540025595004759403471964440122364448284693402974574521774496939231242584434650476311421439666186531051257010766565948705880275755931589101510546016588354120951348588079741450897979960402653633942565032619051162316010481222935063981951326941568850856097276140355739509691641928676323471143114876754536501345484756345128367794520801793002320055689992527112239904277484846979497447387592562809427319341757925543550155852397895332218796376296615355678045565749566998234750491917029199947548051604365082429725678715129186905120867440959519637393041732039096086512855031034550688089204836852203947176296785688002430532907877722158821862017247095595950412095818901371809198043595083383754831992521841590060513185227254852969101916786403126052104836156374521100714605641166500644512243081918720718086677547471820803722746630976868586678950376994977341776428089805226449603084745995812274202269099209882297988809662531162332758005305318227220606596222625031609843289841742157201990701081315069568427678399189682474996284260873392051711181479880452559385779408580788613141287422179832248824459200068168107443774109118345286001446361148466002112178982649096666103590073348016006329569611196420796208773717866789882703048949272156452799873143981692831674531833183765463805470621162675832531856899202767208646866093535423769627615414587853943212479041520416914884343793286938400363813796522854861591591233565518524149116069833310594538322415833379913282169663253334436554136026927549962490511252931740300946884275405408737265658919181292644843825765427558502394932676054979901539275815301911544219478656060816443058161478220678240247880000021331139385271512654700932630691074981954714273664300465475410342637537716204216177521390943769862821173649568055391928560155799846385374020932510610793283023088341917275540450924632822150141647230003516369385295773018801664511642286643078348687787297377937245293049925278612003399140613808320688419359285190491669593020828364188513484898425303919821469906137738264973976060154133186419931277871156587171915914525623064140061614518917038985316321496957510535942526558680747405262763711556328886430071138173093693677659648856477260056198477277124305969637267890552386109324687525995618885744752023686590233403639677284045674721991645043568108266334105853838826704252228197165949354618396498537696207666079843650822336718429909695141336653383911015039699443758396832136109965005973072362830600285832886462556570905873415551969559581201880715417132494607648558135724377190384695454703099032356847266626063161389642118434109610848483053709961434193672975987325289547206926357491008146791685603384092672694212653063011007587113537975857101692885355794305826943847931429108039872504605443715493587210634159455791303827744193888682105481390696310859335815038751236823627700710228208660626514046091403111140587443339280223909125181180282762679161013466629308031526171733567227069716133322628615912922916753405599364224206995218924278658772481382854231311932443849198373508945018213160741470110088722769914971149999744959000763294102807700895088150863411187020561487612131553548693245585680803615651401924606309099207250152126259637382383497865281585925009335465010772293207192969604584907958852317860313675807281691757722335501284961613983587056900275419779222471979736822576697120047735681181357002495444621830314067895520176336933101033723267438790643299334066202424675556181095323935186346482518481562686513937973603357863056016989599177932463276448058195087060083608965488439071930116554539921788580313770508872811067211131276335160453684949537758702057802185028754662278140954965136126756862328073694222968468139936119441759202026884591795525939596475425579373697634092852087818947218241791061209804911338681317467943037824340939376462562382777924525183149389538100567039462005533110581647253685579169503980097322675255241820196239794666839623577916602309449373335067046917871080261273074503874392723047564897715125865969286206757287456552922688268803000640221458512296097542170095446484125295088142931224827880091314072002178486872841098151583767763147211464754246717333517856201236259699715032175169705385666246023574448003985225233160273230259107585957082437626263374014550925009775193826865558063813769621768051990479303766639136220942271562335477077035793664576496293390961222163028529949337044344254607949558822993927054801233080011831210187560882226106359215521656798246704160080016776813069482841358655067318057528464357651802559249095271334784958855725307088019685655879723278108808721201124949893645407978231079936414118529562526730390585780124204995144689527353106529362611989811020465854076146198433164816791900788718417526354236828602744889423696241751947129314416408203955535483450141909412179723038176877085965614535667007250445092266515261888303623428833826787064911186061696869278575852338674586461648334301322008151963416287517334071263824876777211161648426963220039834364390789212871503001201616045306240234779289249608961853502692991966263969424452404574747836623832228946662752855816866139787460753322186353601487580769189686370751986526929798115131480775105855780572115761321624627536931940098729158856547463033640974696733489213246557155265589372811867258084838654083025510227340711899651557469099256763144715640629591396789616244749793621736005672789645644804589643789841111848919781560052284403967135237805768478817258391770633682937563212300076024727465279174144569369375061884673767993073774593759331644213978636766424912510762353742515192134117869823828703996807811908132328765729251317352444384832342542435571518146964474422849887079283586268897993112330202935843211700743904142575820060598141613898511603623030956846592011009806417075806600540551829147790474274342451672277746988381299611863576584372055011214148056554853657629565826238210486720696708749082859561926864505360802858690519463110456851282038389045123662450649543413974133045279241077709997060491243890515418295306873890984801189550326385851458761291017325908121906830848300873227603614063633642892813470961077418000514996251225933554046325972798740382682036132984555763578715676103152545652172566528957521157651646874794721319142399226713075299403742650981785079682074457658293628567537044612666425603527636427958207119996347031706397563903213880755295263229963665342524536690679643537697114234376438316126382923566438602349924177813332659825734269137943239629925741984630486841179718635085251540264724921539005515466244920145553594280297995043541108855701975544970387655532701569581836966418192644921480426262329620938499599643593234180139265230543842690675914524328155922636440410079368887006756328806271226029867960701955505142896774194175432756438066070236060484445959334659312536683751742182151236560730882544418429173543250569438777509020356024592699162123317269410028638493505238956358697690039687662758356288417763389288642708148495598138618296863738560481390619536211821721633520552066537000743552039841543870324012739015469494257463130233803421833445223237301861855667090634380023464799523793599961378629206871503482414248907271895152373897164622777643304590610255664541881603197480189718375921506800922576025012669472284226944595611702888342223829153938840022559569309903852731512451818644118787997746103895850884975862394614660469997594737177943450844360734228841195118467031101757689537020746328351852234451745483801447276735725181589587491269635104674019302739553488923838531927828125740444121677575638246393137100676280337119789419636559553220022815183917475894735463561702036363821460232019661840493157230001278889671330553684543160287147868021333142269364819011174612382053916904832679965775861272755469641251175453053473177793687752637522748965552909164446654995316289956336523610444009585501250328325025949537679124191894613465529847281915815193538487646910090667987668404047051090882344655166508974854016709334651627941427841444526032907592088639151484137121247260632444274418392823481403575874281744228572588908348890926302846625822878103532122927826063381928970275051495396016506730357371782490626608484827533026790952470240732060269320464200264308408371507839168735344891956659669829864084422944571716810119954937834737574701843047731224547559227116985048361534747512478796087731362665009551585870397382767953866204307920636776107812986905707776498034989281412180468852952076957952583850374519927781858212445217168431610391841331780239675920656188289738665409697803346811694948061889320029227112562534280892340434482896487993367077731082110754729126603884627560733417255933984348885057382086412433560563203731533772365735175713230754060127174828479728602480810983101375269056742502738450978082349157401319601369507665730041248937295734555408381025765065690833826099320935701727956025632306871443114866131492634112496255934619399063214411196074766299218666686014159155665469491545703511998738545057844407856659022660404242507314775574131032780184788761856555212118662528651025467518462129704220563958526287321579023713977380695641385066969020064657360985202392099061913215899469159262520069873178310712820084473197221666010513862719556733984260419143733913017137473410866371976264847087696229683394026036633837264576448064395912353027932158610718761309305530010583565337451502294888832199873783863305046825935767017486556985840087374692568541292870878145548356151799184305214342605093357956250662272306542807235812469110667817117471462096767590123076977206494177458499182209742947867601547004972081098198153002987028088989102183229391451641156972709672629175701404970840218371415321550910892506117436788410845891983929633507764305517595554909888595289257702359051049311668658220659677913749820898359442125662117718930998660510689909297129268575362238549482612842391669194880235516365596129605380050542990861008789434092304621339143178365293030762844713585362065360577663856854384368079265921199107081643028612094246901148278847124016398673672288749946683221438690625877768213060600172596691983960990879516721664702745935782314646469962749326061389032873186771123126637936929909252156937916667203002459213235031835865115915681395912268704785644889750379276388487766148139387640253902343686397399468208918094147268264536254208799209066720496941953171552417359234610356020175238636131170981649179323417627949895455483821260351175155735880312605540437987796879535632385097886544068968590073850431887394525346654651823469387097690763931140638253122071295969014215471881719673572118585947408136198290203041333041749931588809115125319209433403957824837261532606244160173876952375585842908290802230547772034369449121821335906542178378017912919709690667041883571604781158159574099524246193215121594252465685066792635272288800366946361424740487916544723976699482035013237078007084128850034740879952826631054540247487066229301836281798746263532059823118414077797071760535959211164933362237545413100543253892906994710446623461067709772025128878750672965759612483476327802334290466141692816866107419707555054311674800984284679222517283671375360523529124422048761683386710814681610080791967078567877151429303815539642889637466291316956839902221802085367821016781298241196771602062495860533140438351058703843162601232164205803354204880438623767540816529896715323313412250456370422881988558124759327904880112690802676264983626176821588218110521174130322302280210325678150779083125526563215679134600047799187120906738187316518324152644868226027938970906664262407900169649975054650732528937452568640822397416316880235262955557896622313178745236751652286669315293328800921165713396584631489277037317088368362485704828026255381477991306333072946974323132259817820492013512150328203167876478753115091159254652789853037090065749028137267758636599953049389879446464043993279723779851160983820134666417766275750909751786031394796655845095950115126569620604283185987595562384416441929792606756158116567439637185913539117813244913337252140209950102418382942119392143622042239587999305888375470234581200805755022017818270733689255686387274704032054894693318807935216302878460676243659440516993651358011221161910278859368238650305065778111133725779598063330628080192696446180670034317653385404624726024944293244283001350198054813943203887906002309463901781846676868379647274555004730108666391741594220511863688881042990971522244326344457828350566383862828224117401295476669735000996941491392449205034069997232513959756984087740409888780602487236272370974038340076968808539104934744375570630420428568588181961998447122755536752276821129662244104512719524789189439264358859584049328288543378768624787157379042253952761603152862968968371004161764186185262051816291671801597478928149246107790847848095191756094592617728906614855283676130385393034343848790589374582886097308865893418394937954316854407946811171192148852214232589462647853578924986488701693507421325171464081390290085849413063096032862932619270941692496968625062266821107099396679219402671163476846573082930492699849583282158260933508716125353886994117118311577683559826304968570800280217403110166451279430544622988474541657050645703141425432594317766063044506603301366198858696081854405148347544632124504938783443135010903122271967460049274603884227287111551062288621674904638439802854060713439879714172024029673111261236123375326220243303207287583473619261584655736262579102686014495015094565812420112629443316235988064520899281974088769099029942782404164440891831644213560463322641699768919587077602112533517750025495327114790745296423740363200279765747702226396062358661842459783924207358788796067475953659827967281169365002463022953252118041237460029264411670459949800942402582776236335535821685379554174453912421780275992841590716748007118078235321121997230065431440766144033814018527972900280042532862203181164165517012893097787144843511947706793682229302657713482242843068480921501059691916413777527532173125160972829966386016640497080672497598439952265726457788290894567445336731300287289326449029857840998580191791094387522677875627413600795908123760685755876162566044938460707817104365311100992506920002673773318248053398134673999942304676283128775063474269283255790149046114127590873232173082745493808119075004903396360815426289152756492779286243072099763516173546430729571001212445960023678948164271263253925735535081159276527214463239165696043781670789538724638693032953660149117060442510886806819694970101589308241931358243751298755684506094969219530263788845694479781879914433895795213130458623436041270233066504842384090529873712728154639216638861759268808519810910653583254850591508622636071725990915069210923036595415508921606860297568288585654804742247215256807919824565795234688797003150437505302492383773417055493989248862382298658349150698844739237821822131852010397301934299563277502490578711921058818346814502801744773339241776799125656171883194141353663625243622356766114876910589756698395529799862381133859657079703299801014913106278953650891915852932377809846466865396923982662896842418114873821517303732421454158301476142586206500885340723072047187773271376415625737951788357992755813121035656553924616968226972413628116709295012611386008596562601259561441294931805559437190385516870816455347041710910067741613690455683075707843690183250701556360427817055291502093270278373933653163488384471475385264984636587998835070722406309038559986869888416511544544733269495837685217165614454837291532096002764763122661436277411089764636018637408218254115599358460706791917257496060032605383986238754467922752401476509567539888397946768603208151868398941476387903495395119958187402089275048904674077807481726456532616427148945201249456842188843285134631917039004247541317262823196950800130624497086442092077522924503153125652130107189928216700583645093415054574767183445945291865821532778893734283571705430887663771489072944855840062469731147665800429432367090197195235782796017397791042564469634234927865390449642812842039471073274668619152127387401203020460206298019112269189871310927611820160678125609780355371589971404916023294429125306983336805953508539819072875041955541711306145910287690751760926648707613127456560173174172474069362596586505983575760383453782513754542429447188958366662858187211921702313504851155055994641174203447060191245507041823189619089887332752374701759499383598704767621527512718014067858849568654561922633959935886743655222864350059796339698737546812448726731750263347723239181539770759912594770127149168859835975115578663021484414908339019321439026385617572606924567928218403517832641451556352695905644315548838445432003989895585838690348080634228126809726767967221870159171759634345769970109043753393169521199864837143908707949971770381702736942278672786396945966181946302720468230198732669926600000064960090905966012888865370794998660416625637751782006358520420825169881124001975816196471792951788818126992011836858212683283791038188431062178180732909225279433130955508603497117309193049756290427058614470798272520766874483452768071238069043357332862666294977196938279173924721019661133753595708647760542159112806766156746577761820855808238123034690285811986779931980790279195234324055416278014336597936315145858191821312756082309050929749565855144232613610935707541306426181288591923042706911321089703407689278355354150710348738250509735360764711973514147728647166202109941838648104165392129521935105004814812028909251924412302044077670150701016510342759983778695651722904609292427470723325766993963822339042320739514476077597023812757579409105278230343381875158703783576961089286761282007428121630983911114821219621279404891310499110848113644192140968531762811961529508045769729680471053205476150777796410045528792151947367905627301165154917869787216670180111600967925267008488300524836930702437394888009522592698497336082346269986406387043563473762166547326790752468807901417852825984559086245051354407828578625202929484234781780704012458690262417050819121304597848044930489542560493502606462989686670131773517568161008719310801965544062101923654170488431559189134816742546315914124850000843428889737241335593489613503951805700855692455956268452935192363349876014141703702207550048934628182310100699271467988492148493064629364336454015247707386257542720204720983252440352543301844168191179019953240282157831122517681545586647151810165241033122884867690192608423847690315924320291381590800770302596754785732509719924499887744207914122272830073911188157070251447255933696201231262561871819019178398359495158841477043047567449881375268995623592491587791265897785919308889236808737333862361820160131674015760318232669131584490216535797785555694355422776326955696397502565040451083089437106603237525069452244938943045723245263314090737011453323770210461555071426912217360653112411143778342240257379273384366232230478013970611362001868917432118819297397985102882912905197385541415492556841672255738444812934201530445179343771105007891326183354226335139259590679873143934207423911789122055348849141521740981031844941012198681670311594483667462294845034709180687073275928946907177950894715650867910849188575516978806400566467512567731771489363447683728849074398933618059619110853327729333086672429411723513718992550995558460821725719077619953183010731666062484740745208687551964517700541878410086564770150130194743167622009970101403778456765177580904036525954303724411921366526585790527426438019865537822830973362733425720700165251434097510876622685425296374057021545537741896553597669349187293967320782835852345865668596269216170043772000548505787060693413764854941844177461501885087457828647327331690717429127284589254914321884341884929186925930314335927691614238573743661569266117642844788693263378633128010867457680482524607258036833895929280810791488035360665168620234214509192782133552345437748194488987225817911032650461974813963723037065445055633819571075680207485189280479623551454241172384967180008534339840325727070859753109597450943978400553042307836268563147114829625457861649274590721720111205939764831373099023863478718792588199343352843604342088410376386429867430792750642230347380898237252565258834604982976638624286490241512780379535961849949429850775852680299440609248534962766769535563318471404407673117417701363940745766229675938377503148749569570889891397018334538675335003755008308851108774974633962039759912305577939435188309995990860753594183464487507865951300528187760883949456213334419497890074237228462111344255130157851050531184311122586827959372287794303700509138010214548907339578239210320107946445289905076420692755517712604389821539375054193740184775179646497797345192436259749641031399360239637946328272152693678716806318791959012545235662302464735624242079941197036846831993127042492075390749135169072348168441023704111263970174975214906971850616131553888996538614005168274501890261881795806466648599086135733303122307081446265041514732607565712046775309958682463755837476578696076561912752937283020929096802520694100010955313941756573518357334201250829477365714842105851349478052728410157225311026816500898243261405485737946334530225949542487239772016089288845071900741249614945493692291446249947433115279226058169375500027914928331907609183007066189809787382568361372899555341709490086897258686320819441093518924668871451834452351176295525156119070577700791261536812989624673218520495572183840704096478591527460741272299654454570374811242246849572798991500470166998426967579834624747874513610477691797738406066519576466457175765816448485151678923945848772909141899741539273963434277656764006431030722029633956095014117232506724066842677205632439360969702014368080481580314634533498791686019846241816750672016607146486743661334254593854997822450813675942552004696334671253893497609799923102612646630378313612688171440449141986086297284880754526140493692888672366246386698594475354053644830389067383472485387975295991246927940891747485720553612309140431404057420065942743358755747427483169450022706683298399735979681198049897284795471254075310572995854710760089232791920702909388159624050748334396172016898021211325136639590181942069015392099667275282291248557723316912564237009524976578648056253559850981370244743406739560709154497171293886004959496499084575027530337447077786016885893495273542580714998792082898935023101945003613475369718669510944476247775165895131276632768667866924274915359502749077866463911394715043321164241076436611921061743313204804235376462355949854067053309081068934285446363475400640834699479010064177825691435737823339995672568717734903564483583717450615992921521514252192868661033546439973097697373733354745045215182769669212683443120078502587030731007553958028616002601824658833871216053142840125984931678734789916656083029105953869673179184340148792492370648528727806988245928542537572734978872080284056418532253744118456181576933678699087450437124467323757205689978878538111535295429605462366356422029536160970854177134438173237137962526098990144493143775711239845444235943175520436150357106700575642781634393351521827562551087068370911517033046232807310782026354846670136125524711391954297767140475260296232190827864875770223364524644190729159535217175678407129713184377981857574076927033032962148354439222852389525994795509255208958179538847907685235957231187145899784342435172851177752736355505474144392316686488396513930465653940708989443949341801879447838596889836299737203568565539880731785438756679016959198228718863872582726004721775548900924080710151992728910760774744760862426582963071067038582785708149423071381267457009229175403195494984230722174006803850492812260159575515502692906185954977971797972092538319722963816442162978499252333406180519092463200940004679440744249548858010931370432933604729341321403476799817621991637451200460131330896857580544659005234671597006161854308726816113262366806735140938127848854341266503785318897396492694694571403628868157664790304512347579228533964733698101509062740188753184697783775481385211580399753953475701896301135599932639672916733207779707958901606106821715124008385604466293391584392954848699273289766683475767505277856021521651411312769243016242825954790034321453707298057940566337227931986431443417180669049641242809331597777784223839989371826992967879739709164663631782952634081161058477855453357869371663441107449497152198733402586519121309130490440996834001562824785719213022796823542200507057999367053525250998410636028048659995022059022258925566944616391395166155763116380902083611174782185127176659451100438548749442373125917419291664966840987014354466862028364529735471998226782939593315030819791287288327040187875486521006918723188420577156317704934890101530045321026592089962033337751329507366842282383498957049286601253357738686668049266941113391875385503711644949515886364854908578539645322719715181625381756467283869617031948194128584475795778523490245406481983645956405438215207290053544708844085762831995872913480079415344555989254034501415470652983792473290184329809398939555399827796774837640673278612778529109525325919169617750074246420738656995212111996710042796259858796281445176230924764508942824124645750940277959438039347149839327349094600087339205016514940902320078733116772137854834487478734247281124312568956391801428562397199413394102738672719758245632196070488275397863313895288094603290239367861342017172275369776919667326743987091704752768247639915547637543152831703943067289839127235485332023301700516623804001608467289709093492969663520464234942454260580503210877785758638533790617981847683125818141997334673809738305934696076544048015826966318605301445911957067615395399336254077311063965845611002579255322100053644557147129768621327882061183717825241201367420828888363676045301061995393583910720613141374479847868024215346441109809344409220454815848681796551357506399139437217848526639812877509275554520746045806722828302049025317686655506878893728455304198231537075912729992092205695465972000432507134829878954744735184511359151388177158556614716618232596754790016330099961207090332718253685250317100621435479570471594533318532204351246388875549398071317351108511525718317781645365650576576099525696899250095289693644508861921108494000151327280091540908532451936059338470891711563432905024927193865665871257387055763780210633086972233636913194738824521334118808328267296914051946037579234421205223736276916045601244677400891889981051616752419426692346158684523158606545644900206768059021766509310609109140180000795725561559953521239950552318476193057661669650439398963517873852845023203573323726700464101955963753260491170668537965427998335127746649357230147271253278327807987465145261631021098314362058213230232314506675673939951614806000823465307464988902464283579614828925922560278177785880564416528961828167471268799417139601118250473464706838804806753473174066545307217561087619089794959342568726439707829756646781408130964677790936149871109616562669991766681454050093805782238883852073092462002356313082769833709190737860136487732115835316161539053362370072824723278558835762477685897736802546030673136453663098852281797421875642050460337699314427098746951396757317603643166422507921885805570612499223167550186243233978191541913019358457749933787780756823035258108125134605015994217447143463948869250136261632423981666056176426099662902145457195171121150461740456089451698266348062737973652895096990979422315213302470188366049063955829131079260101227974468637082300731338758094686081919860012482160841751073151297286269626831038458153353318163412726046121053975378379169882475204899996247951006996930095155883179737899107612853059344775255024774632393558418672479952954165072714473325323557497369972758475961148089819530632876803580706552777521034955245225711838470462695966584789351443137992383588742062787082562156511224812552882608473996341688402098651911268264812992977915299012365652945932041513137177184515801170589428978835938132605679242591809613664530263065290076815706087118044389202402458135258232533148365125436878806010512147387701797095993116237242187839651041795934693002174514076325253671262164138215731970737970103154802399955687912805686511268285269120463729414597382476099138377849900997183789687249334117739151172416445141671440069481325940951336382683707273516473724245384554733688640271871653831476237236555355857766176231162190104860746799685123043255073999629328532585799534658300003102307832092257672753908649634839032161937322391860463552283402185312879945121478127399029611810871954684109163071253871526336941004250141752262994964501532486618661733008574372651496424552823810304126612836043757757381179986055481500209049636570025147642922050287363362482599810239792604034035032016149200328415620253006778012168253727461826276040532913200993126136710199387828916197513098259267055804784731797423449519909796294155083121061210076034722762140946758266876858919198211424797415591533569371726070121949399297012378628291240787633017341843467213487271886082437705812714204820350432062134092665368900202801894698208845170565517036133798032230164355330185835346487414679460042747573899268795223482343669989686722427964809814326666171538620871578574466753206860380862283147164486438817536013649584354961491627518910471247957766521476286673298563057338228581562684475120141450170106752423550867850183712500802455916694440297000755317893275891553740626039507205851505134085824926938219333311891768260736348208721069682014185174213970784310210768831412306070498168249171788865270691285071585550826402358467320923997352019974150498510725316630974624390892918586982202344509427718638223255531597776597333057683539116455860276992557787560133361419928859722675318077249043297735765347881714424372463488958143558907461485051110101654747081832305117882207218065945881305403803196033834617905556835602340892688541640890707192731076495985733187580763860996142289101698441265271223204581800665331524679707529826906191907178125102501956457346971559336767200158335658854047496540194453267411531050997920464192907649578468672054033772184685372234444951933062170202449838362897219307108382408028046163270719653532823615192438503636947421926801005897556391659823125653680609256586729743008484882657475698719969969435792233552754160870634848072680416631908099867217284315212462597042798448720189629281739934440824764105063902714189324364240152048346309833665402360206631991716601603419608033462375274547715937301314878631994739778014906791664056427151935997910344269870754598454089973086628046509181349941348031674425129224562097025234515886382541450819106877051475355927828629326771060630705908959666579420167737373600387861558689656395906397943644281346787771297713979623672755316400302584711056979092800908818402253571589261744729115136073707499776033701124961415179679181241422541187774228608549547082692585261309530067014935195314664443070242426303617627585753431550780693971059315059252262557613350068186381868633016580287927972375023653055945190988718101132986080830479979899150373895809199197786906038605733212654552251836506114185196796884928122141221047406303154489130685748483541793621589397435058584903079216398038839247907853279409828739995172180899996757787403821454307338611518155093126460383160878927084112222137061977201553568810900985190006538999163836669715441246094008112212868333244487204689727031095464150456398333017106983975703429889360856072915023408318388367359713636591851661668409196010991113318864231619267019808981927505325717277837198477119209270229092333336293151706804188233566458911017672986237960961475827822507094489740718838545212223329150142812581592275914822460551725225635077428764251813375943556971456166664187526695883165445803339187853021269036146012012537066488966004437475620389655306244654530612295935796549787630516370361453649940150698228759361183180524667767142577836386794548491781767765985863008670891860643395305205372445163464053222966616523228168958769017886934255147805427945604765081015846376023227678126416486778297765701556634955892689082616554882718931121810815221756799717092431919839292986420272177632202976866835710078820181209138122765757652300306958072962873016914333908897912165773923723605888442660614925255677752871618556678815770025793580331650273192548175038632474354276919782269194699077356454083873327927683670653430674228121495487660581669826735974316670936185414848230397688804601339931403151353785399243508567467815725531541809011370538212780491910432535804180501894738329556721562171560783065745395060509789722099554076841231323156354509209048236782755211480139088826190508264227379404871034260959592781920844330480167228259939168767009188001721410986645298779883559191132581869672598248732688123428232150369641389454170090141144991845690462169147161443168571229631947387604570895735693853826576508613090432602886211372117028371998154555354898522856444826541079995193676846832479138384722996236039959342248733832283299739745240876971981479683493504373985042846388112720178695905896705622994456156092055635483234012130305018274085095744575176274809514882917567851641013668835163632762139774341306275228323985652636808522105180602061626332111724515122130171625754727715267144601135688714655908303210316438049422135236224317877390287475230984612612772741150191573890340866131394511512044972648758346704721324172320495877768917746345036525105932869581060167384442255097041305969696009272029796445504548560141507138930700572011444521454499107266821870196563756829040183713162189773702084121953704226080377128424559109025424086093436092152402743187521364135878113572992653210426188731502063193313432669657764872437961344030926171796659724406097580683345415326934807915132773459793264285010566249613685628678120989679275766718269236338387911568621594380849244873640889764204732872128457503789509939902042019822816293786494787048205670535389561049425954863710211263392422150822587879044102222066813206622123941604763193960266265174804959201355367813120959782795521093307413928438778501222762366094357026534284122094144071545769154221209149187413253286642483817897839471152970590902217844848304655494385280290964380587000704437579036717542455017221157821782124684172334753602345262752766066436565373779236253231976831092360095550674616414175109245108558575628950228909023121666645622825737254607005765500563026801912134579755409980147011444335479083928537435198252353984258958966755606378719482514604224495064507717574322291292166168056380588182766507132808361209101036020361335719716820829204547180019598709330446816034129307911216157700893162943650929631689853182730039471437666865994581237800970293290395638795639219369622017689589708746554249555101222986549189019032130553414120010951179642251175739120483329100083109142176388733948859851891767894959262740866368262744104910590489914275815948191701375563663846903055569076298624923870900904156411876160011146535514254329201847033250408706234690029418062713504727087418833704864916887164959342265531937582272679464336507573559051879299815546097764655822810958086191668157729042985470081418133835523760499987236873584005743504318797029399474264012805864832133359844132659128258184761617254959077579159337763648823462797721567185408846957673509928206254872045671849624681716828232156280544830273638528405700122667274658439216016232233959051136280521518312923038959801696195095494617446794157114685825691666075086266034090595328105361045072962762238292402508011619519987538526300108720494924092332197093449936895472216668000408632670537435567061208767051158398896195784778578388764237593580245412753847751851670604844983121207348435999838694389978326312328023664501970092686642361651998467962933981234583264999705671051877178459719668155396646596596112898417952943470682694503794410529383337207533696521261529653808540330350108646506255519226952284018995391296985415591712122035234459631142497382801643722219855415283104622579785045777289771127466076669960763809185116410104563247738270556395137805159616982242696708810515335038837235795364117381470616209842992473068025421158925473988587120443231897378360554653358357153587309991668055708847430348291650328614668792530797372858220657357882327903706483307331803678759158915758003177774508247030864876583827653124562150771841716540992018383302415154686134040261391218284684491584271965186184231384570019530057168252334833402758468326832455280720111547004809626656426002056885398274773476258717799290146418172504422635295516704554406641514319478109896480130967225675820209628985089454011487315183840814641982558606215242995135157742932331680693418622163517747904675842678238830878985280449007236716226065364969442843228621450794695691913579658869333193752350630962747741578987454437078918527009831593815340683540466565532448718329237595071004298531473721033133093100709607189670507031191593436394549629633236211591037445110917437009981090793432520511345167444398514797119575521645798205375323274598133100810929493426157429000409481657651373471599924169675856873676431939271645111098566348939674375149931583983201866548342793248118619003768964669467220033509434068686323903597196324733322632835022225826391806792566701064753586593864230491111953166869611451607110344607958280677106144281028427097252078792386248372625593148886228478915132108618202565170809704808720972545914512618866409002034975021155738105470096193757102734319183923490268573403296880736100751149052225259637895536112280688843371641846334504681452757411093902961919460258102833666542459843161528124677803058100792547589883181211105198262606166511115165283580963938309855334867384247982395941657532292254874444461028428040707866471046051338397688916904312533948309970117349111906201335540324447483774989871329388592646954953443398020466479253860761159394205967444667891597161121202755581043169578185321929523749050685981471903203514138425031054321124854273227204185259927410472997436307254794171452848991749103351864431531396787548936194834755050864674791620448293063316631554644877112680386679123750920599899632541882923523410758174757939190737461792808100072320491328771742364828288443493355526219482482556198754071108273851222036668985475490304007967023059112345454085098722162718176583839498775097721599531830581599239639914301164839317450194304461340532339959186547052326686830885879372878924496441260745378550880299114116756662430187776255245448434860923348160465627207810338558906429241305973019170272638214167119279771932542936989204911244071849233479960170667824414158861225893471328906973804322752839599676448127155920878947363113784590639603503770174120832208018390915578181033172860489606607838718917755901621214254457648501259688737139275748046936143669654814307838864523008602469044533947733174632004644314688925708310206719671554528777213649702347095218731259652531106098673193994755022157210394489385265993305412083045275226769574226472626340515189600634486990467812256037981120148284965030926397781213592535767197939323335428863681128789738896111072047422316887486616987432385613924757106371702718762406700508441071156547364909687114058722797649844118366367178832430097924607970248812592297121771202355217835921327601059223982552391755915865112314329870105751308586059106386796739780586745444236250741912330692077784683994907002138222062179720564859929232934950181221736595192727164331945158880727904023342560170794249259865155902854635554907535610113006340810518601609637697226894221098759112704094021109298837817707146964722974296251373282724655502315982507842233269312488373601449646608475374906666445081159796297181463703685912458263868826303937098026522796173979446382487465273221224636292964805569316439668875924108803059214481524976536106094921195867676679797022671228511353052581610791791788794391447109214234202213996503469109576224938551847771872900762865046586869623539502647620779368758622127635487726833227283362458264599061990218423342760996103261796896714592827905919936685339376275329525261213624867227313848452462628238730578043307578167247939348991552622988945652853733374989990116747316218430779330595650741902110618527963879390878328743882043253096298868757747112137525686404973976010688853795396439465526739068649609806583818665828511200632489306416942474272304257459349368689240308144995490014156600762275855808548197227496728010543575821090631337973649662751514913444744616985931686581613067834479637001563429930534748419002709191592811470539410265923811062042420889158870915218364724433606335166532445859554232627202591676648942325630632505194370891480071819274534135920341831692361727862488396351363641540215700450878038836358094841867560473898394702324312700611078320502562671510379087739592579303485299642568052487095141521371101954320932212357707380286170234064381273655901398720743479599576526662477289371054642960410675005962758433579494105216259606533893844811214155090174035705530478920565980663154550167914631589388637947756426495881036782207070818423520488131391051747828425484663069539013545606221369003289131236689431375225834264280903362649344663760363796032242656755654751288291819483011694346476248283521969713834884482381319099486554363523631521309732315116557182002193517421515489037389462235655777399571362428909743079872492081382268244853150573696764821337044528953347341489585288528399189134731937614364637899449354413944410085755842276804685115460936471642612497739591800236760696800813222626196286895675794870757418837776798250752600333555251759308006426072884260625014948393154344187242833787411488315382985199643858788586255755111891725610164622403569252932277171147303476743349370629375522632128356865236362318958159327949406376724206837954236945855731022117827771104063620266965027943954116073484573811220832173734846709080565907857174846266920274506419273967321659393624998994225927924362682290575324333640458749424092874012783769500286082566292834780780603984254839717226340565253931774859550123940966295394472064586724315194043091469370653457754335059514574012151250108067417090961253067926618413225151332313570008743955860654432301855783351724228862013555004758500240321597948532088789697062681738704923341397181374915086867464973368335386565644063756451729904356355628164946159058068669075086310023295998948506029567699450174430029652781162593070077067836979338271015891017995999058097067444762628067103874427275267558934856431413323863204967436107444335478514342975583290991578656428903806515836364360831941905602000223341037558134392872147891105206695756828478046140048880470266792003277129661769972619902247067173160580786660514891772595863632344072645443722461121900147104966724609416055615243417506222349132378135817048317853839464173611608164400289832195286051649996697838005093146844972604595404936128105056640578304115876972593212080337269359383106762122899745573181140505802285874519316590021895581727427054959717060142089786115934924062622038791363070063941070486629932782087508935091966573523290399141460473808344915315888110651175420404158549466101339901082029576500268943880749506894639503675425521722028114973755887691950378584833777295976498660531828006913994567359883719715294604454115271828804659775660769559001423972814557429441303177742477283483104943295434576568351390391041993110313777357176388126303597785151136363693819620702431577657703021999949996896475830666892938571672051269091683273957462571260620373466624438967798342101577211999973244240816941045080740557335320957417804626946300304698769182427384328887269994706470758759089686484422294499779694432112884294816202771712074632162766270416316342615552237715751194942181310045811986435341974286452093207957751317048222483988812139170596760362645792798599495996177953847371371046977042938162675240131316889286258873027327576492999669727751963799260481058931576911087650369082265420819432752989697791176634596078306056510945889548904253061998919990561223434047682751181195571693464294043214093702988943375188786467257947512121619434002164493164994503509065517934748208166312452795120895967657576718590645449967501072027819029717459441635111757187429270140310376551285676074353864707379427053579480461665705809550179251264087520232850050764391828804789523356980056422319335510842515750195933758677689268213193490564151846246869999705938207372237934546355341438344192749517583117493520983363458451841767085079335596401860499248101565234084081349684027324011365709019919091412739191889817222421084743749417520560415235730901942976072308199758444704702373924282743747352092050022552333732720536791485720715361430060382090572429053183461314293048405402649330601210218763710038137650340802812949650204433201124368358983847110124591711679389210251939500215021978096494593841265106557759377404614777526866420256843717448054468523519762482599716098764909657500827888069432250030003613226763230153674853031966539933635419604319716046113722137328594397959217064921317649043488823529278362870829358571182731059466894020479258025574132006868225098706105580909278442685945987277544755627870183682578703072566176565704247487280546649807493176372694655979695824127468097783799971570619479123738164489028094080409261493869591139390616039713250128111601453370007010373029405050437508659443488125153454753876171852408064584746330930250677733685233988167960614213056875918505240734375725370628625432913964451022793622558249794163804923081538773405090112377760298577788067230532151871281366468797923098728828211552353204711439452792677011995024948434106423534654894093355140860593557086234825409575032925211598197650371472238710962639490370067421500460568084863522906339071185211310163694800127398648493072182897796084444135886192318902482642901025999670195073860139388508273879167193222093423841624602240721042489623230251613865343300576992187392495757284985340804321791586614934118181821603367341622465579608527269938760099405507869380500791829187770216073259515716525130406624267925610632694683802982558930590278752026108760609183427560448056139010839099205022521420794453199417230688355330392455472569361303395017168616426670861260739317364774354555301871922288951294203127662063034861700690782074049625945898808723170789710339863313400811946160278224439576401907159752137734248681458273444743088046776888544515433333904826369635817691630837853606950655679241871553940233970833631607157626928047467281741401318838769202654582469570263972711033453531958813510007130585903448285973842196441593938994276371378487398322587909481809035036092959396810064926322121454554728200262446688401378382982308311158729103975783229757506243278741417131627407115780502107350322391529817521259362771810111277506619209052428569321534685787376656760791956228308282151435274797493115654404766769233677700126990214035060939457841360082553241969486130855130248326469616594143369402500405520555582564424602122045027321959263097464033133439545063550025669958427860061249360084556700181899711756930956279732476963473829191204647593715947687618443839304386216381325986559393628691369229371593761741286891331666436202044749860182833456218412384096629227439371586062532202920220419005358913349384609079705771824519156948048911985994377227603813582935904132177122056389777020909168733661946998550253224390257304835519998196351223264481439693321959485217741556762353882740829344729235001394670079081278564484105766063696883639610266099723647496488332421943508132359118595461995730568434207230799023056039373591801016247357489638115925714469337101237023768096198516820105565870747630028484728605898011265454436195500948340884241080874972215512509272570042097268326453715066989749082598029815425821599775288099290053086134383743945548836356622839245795405590569569106796685102276728288910473811239541461933473390656876995089809997912602058462323730481499499057242279939139441726709253207887065382016295704542815130061410046471732174413092544634861801603642527132666315623945784185508784703635346881828541054217836530007968019601896831320588751129225792145635512585641866872790218885323620569016118950817895460309966128121461680693831989533586185148605155679685767163438610985074371403796761965470699443251251798574320514841958412092445576259451017179871938624779834294741969263520134692813399805918470117344488088388625852328946400256534592637693758316274998637025237453035111125517879250358650787525916416336994843722687546892373917313400495004210257820312463543646959991090445527018094934644631725137597239766198704541491942660778826879487654473258812560236958878403179014284743759061521072719184178985117771958616620415378749444134045226288863111738349205936211967177632764292117691671134222142904458742510983846568460687819199905678768979283880286407428687792598131609938612141975182131603701823156324279150028557206761042476853585556072678011065121928463142168424080787765778598295974019177760694878303009206259041232145594730769573621716916037717834914588350898208656300652890390861037054822223319440492763907984159086224541610702542537411268438946511682790018238100107818025159881352263876989018125754711970033783967164134378189835011743548140272225552318547061932366039097397287772894760244519637894590677990220034210640719161829132867618364104350833427903806197888459538374388106803927341887938249639193220292566634679204978901458658978498554301395983913010444779940240616083540240524996440355890385310948428308010437947366891713152564772355928151528641270472628998336285088941419771219854807344077022041732548763938016556026177456934400333564277807670597167880061760322001832324373985116089772312323659660629135488983414030743153063325115863753457014958164357623165646918042367955827621312859719998082996851214965890864479021143553188336557568716707185504571819947757131634254326388014232479107990065328623483674487465169946362331554978219723961713804362199929985736137061492324539653844089048283868233446003301193967178260500746824093542546452102075584756890964582654876833483519678228038434648859008627339633548582684448507323094746249845651744945415244516727663298146391740920711092187701136802032747583062570622889980118068219032185036283253770177273153067547124630644081185281131733835558757570554360951688091298306073485428091975624125257889377698077386119766146960485860050366826194590784313143435912551308754062035829150681848743157564506079146327209723649781151302602013380835924523711839011029123570837592336573822349859440356906157388893815981601673215378702159896146153555946009620033942967963268205397361159328371767313191675087055129856522430963526332163422598062406185263424667172398267947549402651778857144221655760377778519988267153177668443265378986444464460383337638505711589207247839323471367344132795913146384095156902343066190435100601282112398930060150252185131481631231061035117714248304175997651615844775397105370976137885956883573983154077851358403589949027452656897760733112541793077890261645529673989507050324543000924815210279235880412541935508731233172027614969612775928436162775484027049255892731369751214272794765538105329749807043432279232510245742721532996051112635483383833853305991184676701783286723443019021153766814016618589078378920763409921912940324075647624916798362294260419853915460570028366540621054995175121625355746646982700359173500635901588201045212416672424693977355650693190051183657975621090035492277070509641657270410594339494106966993412004253823804771753079435206300445693600715720619884123319267615357196462616239464191049979941151515332606952248851583810021724015577104220877298505129162025247568722214281203987097617456404910363374058073352424991616599676699224515270793074816940080916000748935572892318468757880938444717580172693883123320643089100814260748340664452772657053014526510858670920403144648082933497889133927824112631450942130118587071603029888541163010865866565988866397283281223748051219812277868412485267583126614680264085474042387511426791101705340614379317217061003726608583989259963885557157442902195820000339121337256414735230321183577042491672270505774789492124829978803010608858629376581479534845366084814780481377071172106064781695854756019246932765504649986485300137002535899532272712741899442389886162802031777235330299198652619210141380560939039953173390829466533992216976193241976244721371100419531271120789465274590711075394453432554396390346568170980966104981038020415758733849393567504657126488221307733922507715597844113674756911077375109287183430012634885962324677560667517378105351410710965022004533427286051777989656389764875793687848962428214517468774847010156416871317546975622978809971966862636534194455031560768027943502721451160765746579913596575659765770817581919182210810131931690515901693112113472972633242552004926277047640312334874613887659855398321934280750932436076688659782744709502367284791358334657652623473837354364501049193395801017488546757786706384028410957528242138467959829177585775521434170588101890347664291750035990871319823705394578576905259213339779080330961634534701963731791372686705000878318596522636089241865303542408593686985658666938517646700055101213039205325231371887848310247923995129458955952617505587863168341548127764071122871882965265214796790594728451053445735847182861412356869832569490576271466737758843618394313243557536893129750480109688098526024761073988485427876440668110440361276871412450969274871133119480957996630366550337381881870420117726032589688403193155826588169802464742191288876762392468341049816969126715431689030519590872451545405243413037879090328700325941503896165966667792627201133605113561025812184944171433531244512409223724704548223844958077698271409599797578949543797495010776384344311413568901282575949001954363862837464717876676226500423244549214853295210159514797314006458030531317488580108791341802797382289739622464581761984886493625176668526378983563808178629913938292870028120133761564630091539831606269943769926369374232873615775365792849554867394662060022891833609232045430947468917361179910731653913626428576562542551721557720576898210562903282335512952314940638704328639890332499552414357507013412715457537184165537923591099526027075337692667209615241429722803479496548543614146083975906201382670956182287149671518581521357938828685222050907524822883435345911321785677474469428998277984276665309756333670821231118442511984188878147185373731478729037785985803625392772220575534789240839257777718238114863801285380648697518107660432953132822887158335889226618600525576552957395530753131637769863655382983030878687539118220780082375807429179368291652525588193945621364324967019202245421863961893803001522267602543049230781257087667442315751994561452261137196619426376793423659692746511489776977640049651767246299300940965335984356704605113149707140284692850925926318959330241404109018336428809886949435934610114111647448169939513292068005532272313030942074029103047396013844972410154751430257743338331434126982833319750417753416931313985475234408375367944490198626381822203029951462216060564834586061143594964469626700693711516785217438447724877058345169953680538876966529223519429279036975498259676394121252776515230164614619969110566313776057661379027649374807243306223355972043532887276812242380898825955111263657423243054744377810539402969762299029745072706048279019435655072814137813330333031743376095175362237064622408291175147076669883381629960320056685600688601044866188886731194154956634558261586947681090354443440709246708413834541160653753211143813277413554790575741122411979844518909595724960074879308678719251285665506484820165385808005323900033697608642414894586862183812194111058182246522525502351602814617220085524020747087566286947887488344511406487533841376922744240364435813434720213441957015630394033879877418954740150177262604404997603714674873855905078713182578990369113472831194506143654903869628811494665050127234621995861059089553884095643094780771695699103269774733581199463332709824018336412021999737630540394144335597076280967374526065458191067817695279301968544666727077627087205822130261086633459208089673962270461686278378933477154814020475734433366967806248699972870086281582916241123800660591583914951555851893854706743394061343838839333949256317471319247304107461525806274478504108616686110414488847047339183824316602691764637096746775998812321330981095875868874067281790838581191123665155229990609951669941199874215383378681954491607445103398301726132509370436951128556611380001740463616881681389134312917195879889078360795821621679852760685413925243823906374891364856243880675099912144800250152727329780052606972789068916130217730900572989529601394647550830652557324605592357268302944891805414794715012772926303024942891755559457624349853189263659709915216777828890943798543330225617103464642616733914201350017214461664933168354405356665351667975304286262455526306106921106419815414034774936491882646142743000114867491179985152533998246516401933576382991828306542955198916796397748046383500358308936780045692754743137559694603619824948988969910370025612970423215754748436921783094502493435102357133571640502937105219786741582853918137875575669608522214932171685932773786520135439787995835598498911809934232137697662643898641335620455515033101366492611238966761681076614410785445751157332152236316860589170080299409962384824421881846429501945589102624268157147129107234371294672348263392536246027984047032296399849577038289209707416329239825144424147058189756198993890967970350988499848121222572039903658457656900018972650781825570180478295547441790853139759440863879498291068997190332640160040265843827505816596827535485648788123703313865827039612213972518076893810071098429824957033255950427943587296717858855438329394435707051102714917707660914641993568314164738996009249036421024583380217410949434297641908214678679892297342263687927734152959946798001021110439207891516628473165818886542272481749416125430361081059008097918965193911685345065750045673474736144638775079331721032983322889152204317310759208112925141506480546666195649515229736120541706195173253814510255915344256297384451883368541433541392479771903460993047891800316028963582209103689185753331320184968370175732213661006467178243061119102581405011126066195383946934100497358368357783479304491410458483897424549718816586783655893673110985426402410063992279177867418029159681470783862803987235601207534482469151515556337236563987937884793026332348935213554667442741011744089578064961868646457289736017604467170781476377049844754751549719565484740652420544203285500761757882254736715305892587062694365092728302620213304769395694505899499811475035011509688850586937551780586296180462341726296848675184694996781401899789826381418251320577773180693625369161845058741614351378542127556009150075115877652999921658842905636037825441130094787760891294171988921336356069441159747002434319220712022376720173259038843290092312837041112140598764059690856822460820093644661353380811341875172971901568501633675284656747551655247397789259578937584157031653526547201443702691038539067083282949040525395349507702483796325778450577244350212722096646275387264595093704013225976013993850142952095562033211420835879251896396797979557584733844093386312039956613710645207212204859827643720846412903885733683769488247234564974542193771094318710919837804797705460743919622698973855762923793078481589818007464814524655702434781293403549014905504836749685964109530456889415425690031919643006657632029320800063200629693801192403915401123799441496599505707271518919363292736959304620366801535197275001049608640430648729951424797574857346170731052649406931204940436424791434920249920280525218318166163345080964289822122635636254944613958853531215934027543892433137591750831683933229116990897485971665889050720036554662561465390020573816844003960801845827048112175814941207175661208897866423011270877726263097682677885442273461391416600955101491158303046810862785815421127522275449158005151503841282016353446131048747194464113803187171175314001565681393011617645814781544217367645362473030719625299443342888907455797804458730502162739766947865880371527443312846303844288358992837669427023936965733463560707758890426816388203132942096983304181109585702707645569476400065778654616429749237064846347767667369597603910370544929916902558126538458018566829033787873374181390385426338411269778946047875699741981651231447001610381037645168722682685955979592029448356844397367079380535119668743899910750508352069252725372280051916402208527720103953053080007401487907215244763287249377581875298121933872657884334832896640668551583879366590726676899424916428757598109933506322369491497105542640686349362083013113424755661374895558579575346153794778273406780366502487341999872358533378496568854545949329134668588528006313791972371166032923843466298239773633154314578580581687195643041944502343548408645449025548646170296732795991312897740804830325158103016568245613188497961004121205636304963104918878060885417778289439273008759221747953937793470846431755991586345463616564718158669873681518726884420227819848398515017397584334697000781396922991838240025621656294519198253998203729209087116733905151285812852026001977068066909302646643073333530846135353628029947893032360186765028728966611164356201525181259116172116343323110970045563481571927412771389905379311891755089527578198938108584574523120517719087068328213739347659135336495714997360183035060450455756871715395279563985287244313077170593401406078868944978862231302786276157037876290644131502478814512108842171971196449633997536639508852722979498900289591294112958858885442191361037922349917438190873500910681309104569118101246298677486142587767993880568895539445353280536119822757602773734903368137510108132813218439869162567860505704295179018167011430560243853275775513879004216914465250674944716246452808372299690722193225841423885760682439969316489809054124564398800505801192196601218899479550512113639415189358021478291724145275213536794628912336571536926530080279262051614866493445222860379398984134682312756175310278456141266385465460587947642478649861281065132316997075047232728683558959224142553940299286078435491997234858639793829166532571610282204244509148994187327998051920745500993638107257810748832287605060694021177288510423795463688662577551833865290062428265640795291276016730548255696644216138778961581105304717601954860439334485893975544984587778760437741889911417428881075222060289076273337377404606836328630248461917791387928109495415485358735827099308741801766385593057538432028268275704643401028892723178151942151708951591833045578571057933158206096309582571327056161762761125123560423901688095856743833274832774298087986773155927374530225797830200636820935688910863416867647152734225372686883698385638619363615134614000651223831076959364150269906774622225226972458459636619191434951856637541402418645134531463110075542868950301593166144521459305716832104276167966746622065147919408644141779846843190593097366173030719766342166677916913663362162388569826237128149976158811886975326836476218291565480715629401003975670831898405490057577533099344166275135989053544405883730903626209804229426048292359241384724606897402707663169869341738077279174670645565748915257319734809909579113608406964294477312009329253660051162008023300249133593927853646795421323953675866716737939033389006339039725090100553217162225866028937650533470168883481157662628155782461819584432600535075764452396033505645941299369431154276605824681328401741012773054220798185348501597288956304417233733960675660158543476165811831983199920150813061756938896501669471316190009216219486769834590185739505111521982536377596772697039894898934451185104463019011795428240148337785279445065764512591880062600529018310094580272745730492821290415124982933446475702018104464834596033044379139895548497644101870752976309160781158584943576968478648693027995693761691144648552014809853788453781553819276739342013899544064327669523765419052511406278360176290021455985561777427088611214936732845925659186510863755453767099524014206562534740312992485265950051848448898216009619752312592232044559088063391089392487934362880685420564357778341994251650964525154280128673678310564770272314315278898018325219017079188579555468487548441592267830733027529654492142386617885718190963063351398736751809028478703568516548851592155065594048931248157003978608625469218794288359369544382934398595743088021990813938049007703826443321650855201045340519368299430162001260592671748131565552795363788970927443694090896325309388475448514520918739518836342620255879955254558650851786841455745840496256994688175077305130512822785096011492607902022521624879479920236185444274567518098356825074275303996847623123035254786047536618932622172339650425725031351987711843641512721725393993960606931046056237970441343480620816207390356800499386721646848461282613955392591596332018917503588720702943298478310990855536472022083138380943276782745254721326441986203211683389218771060772096594225249624586155416823853839224716936377422709108498576414941192335486020862342873258188714352129453147656214065454772188518175582669461657959826090428014143885754892978032527216158941829605924209609302521778340331037371898985200844122523065943621569616199937270364494043932424989682909014445255695889633605813024264847910434202120899417489786976001702466114003033876337430324564578038796218698827418379912054635452242465893588797742102570266255519555677257960020733888638202484949870116559011650642275496336498019933466006749799262047047264644952910728718701969160391224686491030298830911841198897166301720458256294740677706921857726609859350850417090407773432657321068739445283414096506870702219882706305074399075936625059858268253731372737803551696620550891483987677876319376741160663197900220243461217692241227906294225050587440586438405750854786294667310554119182253702308037992999835278494502366038505696695464410179386271469895293780344640476765301417216118514119436190949306088451655470640652842932988432188242572713880095237969934298972908550197258043548355068008808167486416790749141772819872353208837318915556946207842493264377296979426445483719136022252533028701292781069387596047746458623693306982664017291765063705391853246173791634782499232920716835208520476397156662916474739570729398101470489488572967180228094509554793544734533342290013000272768743108710277184635039324024071140154751243752612547731322852997202305157280418107310392916432665180558913756494592880357875211244887216464699809104543594881727237035136889035560021137360620066970145026667112205431481401175852012741420548721567399696973546983743506403716394397313962174936072571673120179900050779859860350977826558510820420922067702949477207466726405466195684770201648339034203383398738978469503056224527846165130902963565279009324326351485324894934865249575053450882757079346364265955439293183472567588495113917109873068818863417206985706623999795385795370898409595798149979075460646133952039828817155451813746990443587068668667198493264129544465144143556970948437547279311179160548143402098554957697718685671393511820301934067361571859876402727180765950869868053245137039662286323642773845273845776829491382821218988920008734838413714527698163061259285504080369442111183512893266510360541614976928321949329367477209310305231499940579695597396868967853320657107844420451003331449403214922573111998946641413730754549491521236400581627388315449947024584007300299450532280823823713030106946290582897549928434241687955616586500143669610021064734062349835453600190924263862706099202711368419754187258932755329740732324067858812751588068239822764030263850799878739391981729938913318170753181317423033611134891719653964428939492602604956773584988823121505542179681239912971094709965474331440970242446460952297122958193337030832696401782404742345608621406348216699366540904559173942139604508580641699308916869574626598295463004752751669983717703601313280533192167207953414707992630640264547098509685932886171301947993867170154672324361112927991476252113055986684096379137349982228469380424504466026848835366045734045414907152431710102129159508795159643221747677221546993725917008554418869794851007287908713265768895490200298829095321681609221287060565836389138258162714377233848074798320695518905001220426174609080235354930883179003489206474949956903756833889849717224571784330502247831779459235715697759958180951092173618490629267885622577465950981132690639483533322200608613198364182503137165708622583658813428765053066833096502797692979379057728013431363304948133344646273219672355961772563659518425721115952995086811383537689781397340703090716194886946418941155571254103752364967249489609246026662436328916737587899854874619941383765254302096160902736771293241698192971570946452186329542466578939690894616325742637968322722312972315714690183686329365529756670879426186680163643346340030580591226698134531277185637772764878023345048757216122800740523765022222778184463119304271547680338990059732371103456621806936214494623854943166782900567087580171673396257395396010268198603361338058261243573090749302115193674975680656440809785771316236343357147776787049692789120787141473384983089850709859641793610181296571968893235185039007549041350804523327893063384126750350481575191339891445999224000541155283210604411348815795045447009781944061289671389753720954001490477121919990041622459521522872412552322337896053203216157826097993736727557805020047141852033645959082641354363000656644378317102715661368672619931505621630855010178121055276775613497026798355970213255757193112820948513575044191338937090728409321697353230608492721670056472346645766271394088921311264266265413077160388876132721856846010445496481313531333954444480790016130060327741209174035091384669406732724632472716178618709999024881940289199505615977537198791387888827665583250415491443147705719795287094990683702582978431928146737978827528134837625110016236225864487238460061712622977949103119944295097759718010212170043377717452505514541458169290468863308560264044817532350212938091909388479891454088779152461599098056214127331176895416518819298467026434838713511381343866934099673580618373522412011558923758309890148953515287064873097049570791432083897332669699265308338875688712198760432919094055162915614318447796641064145832873158089216618041281760335853106664947019517305364301666429488756363700099003728979223597154278042603647029951873718942487883129933281827515473752176990436700366029439190525203019413152927968554395415209796637606032040281611111311899551769483459336751166408640020011605935004840809989661933440622692910140052368641080983404792203083270594855702744343863438515161767517649623833442391580741875351300979594813265628415704050995039509165635073471147663015522039442897872792518347554666704420616604865742934044650176021009251462371669533803967396034536075153698419387067489100744280049916881956474564637182512672827208243818808529248385819020216135879830527027929956347275697466754252818169120381222133262293415178595920413496326185023015800308446191037099046394730066831999716758739775530647509985925954560428900162091809707644087519594317678132011631505670149551995202006278184368965457847087343152323078476577649877616984005045318247353971372491537511630883876070497278014619468959580543977604197020126152792937446151968878114760050649072311056802416514718115294985027256561801384281022812437341927072643111247569659671904960235758781756194838203935830506209696097685538535073724947806138929204176038156829228237008326123892074229560732471524753204054208674048560333977980333706543832362649206459536129001001442834647796243091640821423885650619744479208599503718472379524547711322981908151762739946237554634889256307252217564341408133954459934223904161071717618196794901516751099562271919750252592800824615822943484014947202563781382064629381475803709308595348685824816009567775948673147262453426232561147552021580673962306449084288751649297452483515020578193747260162592384012080550172698883860894645541564748007804336815825047178700235229778036514806154082850195777609947220738079774886023062404148096322917079096992335419236161154309829547370652792126733126279470845634142564647545392720346778519178894831868067809927297149950351377750784379032288469548048837419267002915327109023533682886256581879927927574836120206724196646384033739131793868564541846223216156725101951116024048741545033333334761386045089266415619997103783745073720715506771396501725097283821189813664327846821769136365314433704284390362489477399179071748919541983269246958065961823641887446984332151681263102165898095586633147974079608800825459090358830402616257496745871850292804273949083766953863800923664133802279592423923497026317997721293982506062417895731675910545990731040138539588956705939447447580242191156580327988465672575955414232189742636707737510864722895366926114719465080221432257688311801787367622252556770879483496841694631176955313370629497301844345465396606530035850950955140148858764426268962572363342299415352023315161022659279708278396471885572776106081230812000807934329632984487361827781552644338458035892197880920846695911456709753640797863792638758993180665393031334454270993786789997934956717759720829446934389673434386312452813344615605279568622327187888049293791448815845851343614898466637264703320178424674132290131327022874221616170817523118965179613598195914997259887071214832404022343870797231562811334375220114126160785336397368375140949970722035777652518296001073085188173771236753568944598488333409416404602414980938384155540671765488934838741788350568299857821380213303011917416096241205976764035533217489305308645367083382205002794093088071207100911692544504057537627788533731152416301093149068331828713956676862377910890998910280189763712262303443609850204077697198822420238918061234924527787754763132599378268524130811663299889503180233959909049197866092393887067229710077498317829635190957000034111469244118741210637780651257658610672136193218139475294053918223263495590711606165466025407085768960530104564838397749058647736574813169622408057606496057458872838588454751263098908137631251024009878639382220078210925078698730313614133947780162234913184057577305476399001894349684765960064130307313545567951947701624080047361968963698468211801720570813819687112015995138079971452859354072769283355127306618665218140174306725647015237998701472259087923520130081863583743876309197940117851972478244229736621233476165763607548219839864135765490154081718666483663702574709069449193471781484862512028614833642715205480420735282305034864656097822254261713403597669145085484883765886142033426321666787842577110787160310963611132016404038230392710899384061733296671889201217654321593818538458478293163615075720629126978171957503596722464299074633538544214294889415584628976779115490559312720799144329401703494460685770702375512339631053599883014349380149225905668515497010595201050136697011423071169122049952182981616129034320919171133026082066933783197506894855842377435476852716192012332780973635281734800425721392010161012898780972172721988822764406262142549011054474437054432904832599641000614606172219426845028328475895304082141549776652501496929284718890609722631026109480896232078501662224773709826856414178600530081564124093525210357925142239757872055318966264852088442423178520560712904629232906323068612001930988206736354480651960673056971979444140311567952601196255554082822697605564616905740862876826276464837898665016909019152261136778008084770035571854105769726847011804668987217255459441403178279472676791010375392246483348779888486006531099451450218011066488442523199767305885468249006127057765249190017297937104938631982956099216497488035997190247579062541062250166375383747911640064164096484416051608328864598618077862587482760518180339639993597272232064980734636013715440789308387173059596630919075848177606117114661435510141844217548175598555324940715257960758095072076558677403262482758891373309757275097847680205429042907373288537809786725503402425512536478063890070717933049712212866612067465755960491503733895596454815924421383619665117901063520031544120961569479595007628326191299752889018381746009594845026123714422993034798209615470626155154690197775382145803166095934858317918778923378222747675823168062961659030843957833998204568774854472896782762138320606543924793735428838776561437454761297094379205182426641361552404476672852437795740814443906567321503163055032710325073724373565027573646449160185976589903355349457456159212306634617592771694083989039468711972708493457836892525496651018146272538303348768713117528016275691483453375828328409769212356630485778226012785310278702723926854338321406381673549467961501282224198500697041193956207364977546698701903709485457522354636561415981305121583343192633032860991790197415436343282509444042635521759851197684106390514923746902821459164809626896081940632512512816001324283880652251150573814014537409642591771080874376540337927036933252865349975254388176450566859836480777184538932510475290980938750831768369208414018539059314814491551397937734387189220189508321686535904641943896166866371719437560628943935105382363632071574178477849975448310566354785206066973553086649508085407907811598354640338195286550986764694067207698627030383315962435659388045024831579741266963002083273001329860253799282725404097595416355603176743227170776640931715124348923744435761217438238356756275190059020920103954270241746619202045924996724327280277944207451380976874128504140781900943723339190944157058000375192597742463259738579544771393801569503414122080572784396179259400739772510053724552048251812239319785850493259160188394530860058663865655358470093063881382455243299169209431860338119543026467237299613862561699212833209504266113791809032053915845827691688306738135069581218415410579245203442040626708765212326993997825351733716477690290698862979270317595132337922139903769236451125231487233700875309716595539752825311387353631559236490779322584150045158531566679859953259718253251811301059235743249741955648566674282687979680642329977106566764711278571182321250694049267866768043538262906944961957567577750874390784318417286901807016036383299080348030283722142285836933069818370968690733810156239459656997297791030013415960952219701862366807412807794932070735380634482174393443647245237581684076145819222306445911385737518405868452956496099965070924405103927180787588255243991851904967684120619674823266386026482680922059797727126426101821395771431529351791275941559079099164568560166957934370563034569330763654533463574089586771756427074002021518152963602899005263360902750339682479816501059104676152586878950626270285921692383027164187889030703694406806256646196267762638908023154277513930860099274461317807398097885332813002959955886279461994071155391132628615144773956755286156980644685564574497368126023123045977271680302671499566433608912886543635519345725359227877871624464205742376184785294552032647400921675918540916345634081994753207307739790615398767916750455430724924077870086899961336904761853740640583816859021920237463679191941385185853716345991152606203565513436609570281555790357794698667968015479955938184546347388924765328558902363833702506883850026209901774333533073495793776187074339828397959077158677980605117051836253132735254655132479384796643623388662950604309895336870726473279907493579391597685834434395318275614678488884250005995923188201087894046831864559529712746125169303394853563908931696577639162774637812664499256489937822007541709100643198740396558789679445280384176919025940697058168546176858109835604399636294676583861428014676530956398136852639340320571163997307186444146865421494686680317828383591453369088790041961096547901191240420588239269840504044972752896788599008476005077159660856817850127933247288119817805596680297069455053140075144571239323823976825443521773264424095751646484968493337199443287550814544165464573208732264582910437263120366538239581980462001603821596328964468816077982087748785107984222727241476469434241550097304169207455271733139299216792684840675253296328817785693355766497560778235735883136135908474715415904083345800364357393964779653893000176766031743584948232481873802232894850223426001188628652336698675248658295369436690209995288983049378698673563469587066927866024705225283408838950946132914164167075930573761962667321543694627301677473623286439519556050216964470305531012652194942869078844300404318596717592780051528483425661235689155679671365560131446878046356114678929687602740615345272464015652116876735834530984940459422300869911405481521675010320036750221460638693988413483372985121508755032271796351362797283884135625481628778667659446233337084697609067726372843562303282009828228197997294652282948222059909131223300563881321177572960302167551310811947715636671854859948411318213274398395768784436901558235796508653775519815634915202417204611426723260038329624129092566840455453683633595314753337015279418649395929766996971806190460322751622514683370732134689236542219526579866069596953715016100371536643824057965639048672006761419532274875223469084487307204917363215505190522511720315152017561488416912356728994181982583537718468548067746379297226944298467280962289096653555495171476518755189781283108525018318845584748415253963990682713216681041554507337531946395130359516038032199569064865860555179034600600384272874350131956960174690053176271484133006156492650895822745180372302899907234905742137549084924976597536323200366569064188889646220239281836374025314241553092869800565583212391147359461020082749255598882607215498296747953131366545912536708297214131881179352012755314699995874291446341547660068970792501146158257405437982256711311654356798702853697018202857835857136087176153213868293583805251378329830113579060100665640313978747196511871678633183642175278551452852338819790969716085086672782103762246383724823770080983774216838669291756068170099304758147143152595764785305428926124582818379039733289053098187881264227735308389107322901470251648658813061631214832334195540486813324617826805962297650026635275248904028261161721240563535590767832931197691996814552550023869047370101726719780543357271364233850988382707329592427670830538344321964283923608362209010768967275795217599717963751211967222066038550841438338533293933068523996865639584715343253955347431892343281617858399672955133123821329944226611443048538803898465452235492888084220276565158752159627836425745430956048992289516319814415239224830304461990512560986944374049262289132506174522680533271533041598415585501784925609190799029754327195943778528249971225246520953533299143832294038487873559576600152308065698307265037658654797691140600960332827174693308656002088148911589595077256921892172679326279373161861157146288972376628152327526085607019669218760547967339627878789095208097983799940656434013476490942441645478945191898767951121886256562694767349021631452325068533461879862609085837717491195837501499293419545650855187726816069934025396060392316730249949608731483180560517631778851988881986627997809940993448242121280809870015140677676093804055542533252609356033823480901724337203508573443371557015877854400016679500953967845112336626568023611652907077928447857969069497378801289407901635081253954214879080915688151686535018523238008873919469115186324848935613061680638907324659630525745936642326118559176909944268871664150694926561170240668398109202041406355573281500851712747907756650686561933319383227388856847072252763910848724630435806345757052528530169357587862069735796624914883364763108348401239485327219089168163288868682902372990461129856434871411757797199272775676886907801796581906129716222274982972088838384042997264368392055560397601468613146460981426530408744229512781622585253287012340399489224329023965851089928299532517186133843503697454094608221990371007902947474641859015204101714638213261490996438071857466495671055659224794426775945178122387901737799030728606313616091828981384562933569946995532589661209034623873551717154072330503739233472875081192302663019107713420036488881280625209126948027338600047754225226355007219861288697661654586044555373719100955882114988225966063637614740466802201268418419061851417063137878142718455223729110534858192867057035917585543730698793444046985325175377496431606305371690346302552012306395853279375049139479644814423461977767174313354362079166793793475083492257293597759304487935780380895901181839310137795385899032975439972627405974042791360182219964203213399897710092686883756708944746666490124922604141360898438338781071868750086252957186178759427130336477880588748733769221327742284039016882699694463030953042319040404892737817073391458749182192973331194973025563386385451587866655976062040109226590825312397673254116715624635265057195447585262471212799103964023641664999662117545083767983383444568285273363212970796863874542969197938363990680291881230503010771500098055253024096980121452251646632397861945092108237110816716363735532617233952565611724936322301936545649244630782039701931074778122212768849024541353218475076566368399629541202806595774184104502306469689624863362880760999200310723417971940801881007046330697253333947870218366159261658690399073695719400873515820984898461818852589402522778118815570202406156699398384440637439178129326112118169213631336889014535517032496421761943702537753676959699830893386707243658389021638257427631088354583863027233583348246667011181491773140581812673698386146050628295891806809630297789511212846975359346716956134757150471672370950947115567684980185088406921284350478434477503994676744122607398153728591158540311821339579212950167399113247285005555417026508298149468257050672642519005995784432350332692602270048377097285665013869856160632055531233151746627034670860693920801103061112575859265305072687372044876253557579438232147046409163218054996578946128734172721987753369466281789727901452242268023661017381817506931486037811952128420560143157970295122639004536259444682239463161614677490911189377447827928193840913581201409379088740982366321263959180540044524862304761188455797597621613415768381332559260104371947660070243839726914100848783547977717827327228237912866513981991499242032501779935210741410527408277919502496271661797998567358264689315825292410926168404390239029789498175458544125654813244328475474839008339547205567697992423714954139789338122907387369170973273294304832591858896743268234323202932705358182881248242018182811805334974000751957278470164933284956795136191863625962730919918959194392017956397819549186312137173652850646721717780653921402482047085093658724323017442258114735414976970002933248008651442369932239611731359071721493161606964713459309657815306481358044602914801796472882315985140933804339548144317144580878727507060883500219399827313577339503090483846465078331797492549435297353335438259237841761131115880359692210719688878811450773163667335511028359801307749946934332871337395978855940319206593710347478223955543444534766146049938435467876589164940763979799157994609732508854035747900502922887870469421480916173200578591319031030726594866769857167886078585999619679041624825811387859684838890765833294740145175787101788482488349807619586123938447589302692248332406643563377964161624652906426323360256849069108621656920610911678261197198245792783319396565158136244649069578684388171397450260189522684184174479740216391135219806553898664269924144780798251868782183705187686718941003702735776705659055685098527566799476852162331810322169342524607796419778631993668732093796391261017877872070223585923625741920750953510871356066955383468437886539844817330976583210751961321475244306509016489545416310166556279002259891342075675932915913054582980275723479333055348053856330648434277837273441860013674686848434252851261499077873785303975502545344016152307629374571644552848749623746525444956393850141071599690464061495132385608856941919611763845175112865652606878910933639948042193204661779805509556599764038909433407202866756245309432409185775316698699824971854743841193464196195427582405717965502927530186919156753456638886192728954541452451973714834410706881608436827083333799707003616534074568544226720246609494337312717633085899468105035954785975879141138873611558649991434919569323854537544635279153464269004838586015006145121988285064018347057585019036935018883780258851587327077341604048615750028018212598325392728245748370272130469172700106895152392588841348926840629978638343793575544871326885679129716938198292673166682089268946239975728922847828984580477981589047915043841883258793472525655154502635760354549191194625019737856880578747931976723139747689209205440146622325314801575027864161464976701243536607510732832291170672252064476257077455402608249826719470854926560067917617119612897468625794022304471063160394602380884812113147225684970712166426382372027703000748327971811421524163020478866478915746321569565557318940014075581884548019588810379206786705492328778457404196991916497512758050841732659863721470581117416015662332009933159719126549897698030457184844969329437410037711311024985523347268687862907680920656589491310879999478183591190853216442951503878739891169382867935727353993268587365445664245183014427924709871112585227350055845817491423382512808051546220956293580231351802886848568269305406804194174971453758410331595399538496855379716077044187266181525333192120923298078204577518465044171548907386950558921220753381983381270399955423909314289125369670017489089075246648996394617860803923462491984913360631555011775062395408847620099237926295833503856916924320104313793300397942072192410556684574024418846224642023767118718347875322384958253844182765033587699001776454213682102486194452871595596939945373050645562189915254122103427597544588047533264302526358229551087951020736503251547299281644339450253975824506485035966110564732476084068656938546504876822533664689817177386652581728481754143878673926353437476914531521921332004432757873655025359958061660890324486624823473471780653365093877336646006674851809793487597427041577171778575965203453075831858073475485858730750275605252914071883587748099077761296221553123768623580067810850322397338705870199373873108814819544720205019454314265046558495767237191399160048764629270464105028107531952633200214565942911322146779626301234314293771611857156616867645008324561321953188896971085627811860472390174781154035960143687351011544785790724070339935896874007095795200132662544479204608889698508340077170979353266259625700878694719305095898777982726757510593847665639588003094491279483039203029131205921690203254559401248376553121090582925485839620962835765849091388201769638727279018407629699687185573913615133635721933837275058074821548702898535819826705203569389570821006947219711320803177564514911681211493065817809338661579334455638285268147091074576416090024326967769005286352110493705442058174948831811534186116349437958212827534002732926427521377363212720197811751360341975085515703465011996609758067771091509134395925384051706110422206726377606367481635912595924453312180195102254069787353825965097968767853144417466335620677085971138138668042612411721864335056508221059961309224230367118214028435100072402304143182271740125678702052586240068003110379779163275482563594147252077039477094689032953424173684248974768608538800337357726558379923499546027352125314903001434078694540195681344887880011755862650728219402433626827501330159705474515269089411119356996766680403561817127586059280022883196989071475659265528498078332766655798150538444047589693833125482450406702053500005131888212000516265646725267086660252413215672630071933111287054259715679818234587415005442206693486894603914259725592477405144260175500794457229937234272409521633363618869873691169762505282598941863258631599373848011743332323663782396719365835446906443872219339588427489680720938970293065736168749331111622314184184530837334039397206742151578222714597454123617429665540620931298487870951407669721956468014613572932441401846196916783691956871650044684676788084220905536502674297311082734108842919342236130148457503353305813872391822134988701323811159430712955874099472411263698227465521662426610231947796567965202268009117543397988171745792319048743009188704581143627642946441146054735188460881925336842545964835666375822751191882777834793697841061571496212303317408916970776344903738108273070854250864101754251627165166384384286699959433343537507890485834003760873083982007393557085392642425607795863221470327935018639299226510607156525081558328792352819793272811224144007401955409037116085524084987357849671691123787382478633802218871333093996785756302169525128410479645755056004816394009000810874701273586604543465643102145317449569136802156394160521110344168386193237046271556884570829200785061753508814248910520869076848577944473268098243217246774096925016978921725833141433478913327721402695684445473619832685679276728992464587986883570431502417354017218419074841420886397893327876119154583798842116677337846937603316139378384570388471329035983730207985959969988344293990938434658222011136571197268715403533763606018803151276052893301774973427965977718499955600584212319438343019023283140154985162699852179180499186082888647047467458081375987621952659135374979800214057597816754573181538726899999228747978477220202812962310036748878704266244574205107442823777789400579425329822889835271277242188094871334663548563456733878743451216037181246027753115337753366260126108570293113321240169581669103857661726110227484458655168923109646660102380150855167198712353107920345572805055523158022413203333282802836959567701960888515732437357342206504948677725084645614296457936070639058626796927651981612325588003764754767277889857737483019924601228605275104221706341041566547063152655919222319557736878051981694258005225166929128224415821885463403693149295325970942522191535926156944809137741534733166688715054464675816263958457452810720954983395905052512788853485492347359312497069992407815538823326908447906108614464457645846437241422858979633795331822640729041841101399708638313081517246546528584341594956388903618569109984623747132313875030097476931973871452210152359168716276295381550040861652536667619755743608943110736018148053811925422517224513744090517548686507705014181460382795133490873193571734864241884651398764844606668902090382605516226811749475139501198321871595637253005706108854819051816795649127920589990508258078711185233067076091454316154980750774564469201107900975806740624390345453491324947312014896635555969315870428788135863556660774868372083534408037605463196675178639450873094716349854799451327156549125341414930951954037392534190525143666546825399883284609642578999875107099098987549578921036384939205449943976030457605575458177504689757914621316813263629126676025895615297102650885081817757132819624922284351462045886153007396262182366824590715450276056453043242082968925897038475942056474994217009794720481795894880769529920405006752933536934577704072770736639285344621068250518399529405145591931837718618431808369419244951581837385682003845789009503178174376881898525680791556070455047878066446799052056913566079920474107616585368282663662164558726069946260298852083993691407026904997257504650424377457752954543052337967016412168243521987798600901227088608891129764006643279903456090645010705127977088260011767801045122432158475928905636134108850782278805195673694866055324588482005743394239446760172530718086227466355336803907102820318251624453623607888101884715207709330835459601650983626733833720845698721086409075054759630066535987814280769462850009727484069079387277606536267212710506808283498607634319837227644722677455412868444341142807608171434228721046173046651418152344636894927289433750591199351351026906756018826825042044211119139046565644734285237911966419630711716488173983606768110739321696254142362320184483886025080294781882930351744899247347331953015166919676835955783372215958521752921981634500475981333214760020404259821768562537936162050011382299617385146667270700922069980669845811594839899124907075007616145303026434403864523063713929677534505133641417551829934053281816484975770536401529238652668359394292805963589336146131756169955389656593908644629319107155070432124045449880656425462377364140870593442228033643326508359251660580935809450967403237379109490466063968022276678051471442292513259189945144480814752834298519116941535619121550695692306448035691823117597021597942928050903486323735545537405127013412571408874476173599756989248580251491987413602747219373748300923023245631118312258222282690345558218505241794439177860453913872966811056193198633220671485473377817849928481694029919773166543507385669582265950154553085091350361235010432404666131187292473989243062951823533129012902058453278117654807672748477071562342085634900982494631422599452821997339895926382799431859777720863811129444286215813491827629157982435527241040951995333951937562501908511472653956566215162273377078932497728075499009470897299235643821111240572460589540399099741922138808298711618370700607674945691297999500857983911468367603781825249463994062018839360086140752419885911967769327513008058680300509338629718856832619045973133248414985158372500551767491367411971188966536785777421703270715022794740766086270764218330732942174031681213083220864766868558622922186381049375872326875790672248536544929852648658165966947931120277793530674693690489517818292057632359992820789455533362135539657305962180774089055268935458760502759265771317235967946340046867890791008121623284747965150421519143246783157558928139867506586202457425000591375948295652740381097808968848639052599753014325483312977499116384362614147276918969032235882769302029103075541321482829615085841634361994371907947993211772839704604915418256685498386596611307980306208272310370779878046394004871574657359695870144279333321689803630137462861537984890156505417717234940722789712146425044420638908228479068376243462830957377678600334631019333951389129601551321502514794091012249720186258512034279040688505982629628111725711211486544075244918168379510656810237554855131940829592223655867436665799706605449939222188596200897133431326699679256653980400652990259753946804523699092133244466300916425241309927725393359059286427483855054699737595313226645327715002686442206499148618622342825893797176725305683388603293026912096343097056284525383079852124069084681187497172365616251159727901994962034981178476727586919683753754529799196971150228899143340611875966018412754941407776511878907884918482785698483477527531160268900286582624446312624752279262212363905281771832216188512988258684167859014110452300935294819065117467671407342846735821746746522976412704727907943837671534814260696162288848686329142460422141579079151349105931839878940328456107350770160961471089220024548611343826716433155187535127107803956388691822375121973698049805204709024646836095621957675842253844230541096920584784513538452090145045389564700925217983266478725112620651544191637687301389697926530990806656916297366034671214360338530326687310221736063509313328858766257969275576490786301530701909079404239868916270150100945777489990725746908764215550483029500326776261824734093926677859653009431213095210005427262310568501792086826452434526505538582480692419202211498994343598848494755490633420360216469764866310076774086170760253275416326618455740556013521664961211579570798049956104320725652927278002665679828549400795267450622116847038771127487625426778203066022429927664233570819992866502077703813428192312232996811746822949509173859598588324441487636285763583294223493979993738673861069525557128992344782787488132465010788872778912225834559161527512937588475615237028216331243031610825567584806718324391719115756976338008691396347250038772954354450843231873234488394317737644669686273911567363293678111897002605384786415268373323624298833737968335938260291017030276017574851330639916252846622268350842782279701851184229588257524986635276230878282180711353715199941402133818657560105785379079752898861821351190611470537444759948537310154899351775393747918615671814189509483801849625644282706320717856572754017492591309041788481358063114764280990894891274532847863118484408906112069682305781193816150546132085203486299924889568583343827910852531072969039154111612364134463782521460317108526431355490873986560714081712690928977080702992281713382657816148844056478499547550356756808228326538117006948316701614201219999417443226162342439128689473253995510944513453932961273963528402312601806068570196579839328512022411276508818126893442306322911767973874577306966349534976977861660892235853907526685750676178990520318132088021755033385954043232028868739420665035613844177110747609444784284188389372874898282967787248647978424791284660110174023558493439090802685353949785894364663975282794126783172392988766722775455079738232375233258745471491919518677446995168442212971170211783899482764537713906536461318432788253800989470740272471478545928019295384473139453521174961972197790077153448957174140315967167942703022694724155061535905837758827058448922953542890420605611525062939249559167838796499682446561814891997646967496436230614912181442482733932614578965682645172956746455469356954192881728627377385190877874612677864967927008079742293084623880271766549874151018789963546148686895739303094955220201719783998984390644656363952498723798951949534399276161185001922262944828394772900304927494596130625765270759928661338014458490287640633398159745127896858937423680898296469020979580091895773270865440374441360891195119636283473947276286590035926948629611326988076770310398922061946981621342023416326350858844720552388668611159724139273030518149010153902525711145118805689955361547310435031274228110610053212906152218797369845513044395784475291910868130224262232952004180568451967419988638661531853779271444231707445158243392977935187456058332013978127389371231021160209805277791604964356960528460080052543537140786771752072570966984814725172652898586369701216128597403363368244982014308649462715810186845748204370812642975742684629738755114891308158431010741647555109094294593728757294298557223861678181311149356524455611485611953172767734219708441335030989930877270370544778075412438530173780774714907353255047020527567562251860860213459793339851474893890771020171480958303815367024490608268445795651688152865984094098825927552503430043769149805308669672435132311283812024922912313943774027496841279712705231830776335170610049441211262847380398818364004797593046430676786753859835528389413327373670452921489554530755431410811878164422858848602873360683403835335375732144349998989697937969242573864952287484728626018387104099937459901090668705274485583719542034299359892838849153916614036516380017359141858649205083100357255131293231525979547513434315207481815718979777177524739726847549602860416046583538140340970276190680753053076781890937692539750388564493575011977469280978754987167410328655664761475365449884415690341289794263778570767061057084645861231263449267606992809875093327323300256734930331609322705666419904439876624516459392340527373315178326867340700011395343450613504518338313780464156629787951535873359831682071432930369466673158407679260310526313462089771205125903685286561791837249921549240326754033171540713568013431587552434355695177214612729491736278229034414944862791345494385156039890716561843511990633296255323372267394621033615360770721956308643842666218619150204341514631587173411533861900434344197995652249229852044716098437343174549117071046102122259843822309837633053878953724736902844322404356684130868462621474291842282324138282376183545726200910650938286595697714711144795040544573626601457407870940283756415534609414768092557906508021650286201786405964180427293319320399028183617843380504029202005533920055198066444783811344467917196400832224592035796251961081502845063612156764615403541140902107754306428857135785565500627171835569493526574124862599612544844391663884964765403972724876681230866363569127743900381529338480905469959762672746116053500433275757444176071121613592539504150801167138853998776336632263137422320562034135149675420641673896789027591019359225089864263091287985879255828034318037500308026873571096706573652961664823137199263563714182891758248922340962593375600313815825590593479851845226302041279423873103806565995377197264836869653023631531142460176520469694030325917415517676407284127361070258741198560787604674414934279859696941781183252194255240776013684994920031092709873000505256471864468671287110501518694976239744519768165376153150192615680773182959412170513084675219538873438819323950971535563513604547093140076349528362602240852524560105404349212416403048010820246967587348084642930077541159743074161255343531511546576379588616447251353897044661873504134367881852305729360435842864152445251703575613728008239224391637638175561516328836193474951034400651334125858960772242588707649006123911418156420938705604584732150818149613405316539978743625214748695515468112667055586767041398895645279828681810792917778572497209926549909946099316299397875840354627157942410045690377918183870449411086707259558471789776366140149879804384556692816540616222428488271973003036298810943605272045709051613756106755763505020935191948097524200928501895640789477945363217488551521556606093079554894838480492849938861707389643426953697190107084612556187717337504140585589670491870392161601910150584523366009510693988249925871139786257088559033162745253530692394631409503473605196121295968101691709724278169342707856429388217934946078404915368066113549960046708607751842251399284382876723724960926047363455750833763650588116444646353463975856070155620353658650582190060102925002581746914833799166618226288478214930637274647203664589034586844753890265368308455599986982377075819954029446056287160876022622328214647814925800224808759475358145344439924081742694273222290721142662203386507139696547384002161170408771053776415520444971282962798361565471921538676256422648561432570992582068607205218806276616958296560610379340468332896692783917915652614146127601999537115884673452271184744265473707595969618657193394661379677049401172067510545679978439431921174667363959631984418100559627332823456496967338563553207644052413388966913398356076962496898073911976892893761807664691197660244767082347811314698863666488054959334915602272023378457255440982767661267683704324813416851629814535628290618853188963854917967277242795231064860363957291296782180316931908802108779358436944876792721173907307721462612130145472536836421367658115838270226716378541621466666080915725211224668717271412700662383372160880767156848668800667273188495163018796855929741152754419066900047858529038698368568644053471861746781201274262102713877190730443863780982053184662765693471933110776751941140127486372669673471794127123832002244712243201371201014664558132769436962352090085322621151503412657100864199641548160131899682564995281400725940534436307084968560093487439654912990951590679113376535726129045037182224188718828061531499865870097076505245128207140904065229730711331849888731889839909507060326325364395634645547646505150519592827032538196984139356374770853768742438326570111702663957091246348518786727575122132292651308555275332890717847742949586630482267490798459015644758006449670124023291996958079335472781275756840782049208314097071382569756749814260172223445937093755527576629412501760472347654274789815287961397342352433043196859077328177500941307589885854278843287880032406539850181776052197687909564748940038258695162957559227617893129866436184841489434446478621179110283128767081509753286377718714926790281883764465746843714019582438107306837178868081231370580968582839686551738443641350988485324941833251327662047139406618432315114941770908847616766434935453051632694933706994856267617813062132171344604289341381330449341090737439333212211683860304009828543512494922949673535319571588970722972383590687213013251754383533137381715682616372553943784702310679065517304521802809609872254761072615717902329432023631603880912268603376984353687037466748579175954163752114972929720909031810754825774558595176794337359495843732030509099528608200690874858369579212152386509251922427184624276447254900342586054443911130026872469959978382158949327796950378111459534241068127769623847522415036468539061365705203841909615571786644415519220432892596895703926940820164386206622870242990911280954023161529665277899614172352251685132832589205055913298881334226852887192773527379372538834628829947560269210817660162020090121866672160269216813740166056351044645603121119147756048814673169784224087439564474370757353758508532556097605682595918027524966962602330389135611120040679504365190455853004551827629060407138135796710251117527710822186326217626298874159174593874125090955312760383228200845349626673253485620683689516483054055448528469304771146283132465223233388815773586364511973313726352780573278054355405072134866303151787648797045207831799774936624488722737289359420393404641894780960483073750448836278921418998858165481096684043514768911025823882440968620824421907258989333418649492524527786079679143291199645219133410104783565242159952562178486378650369938361774524909850159892518020835367115376464764713274198555999926143826115283495071577522102770987223369117465881292897693078950403487474751196740878305566789931561393093806573105246829217319831650349231527766357204934424924893253583607109439998506368371594054349738818483802802089907728723804957445631747290780742971324827744121580820365025259663131645106832898456111319768443149710117621782079494758624060362214395967026096674568204630844566118298661710256140236369237392010405635077744473059533337328519293998589225637906604994945152159583242932605715597185681139474657765780555140845611683093139179489178333208031083030652440661324222780680423299436758359650920952298015339336131787773756796647544917264371129863677085162400323116241967632570679310640397429547836411710812013017305842288113776011103899645718400272207691895345087429373473117493480342702393084693848126583834626984150390743641277704444066056599816712791054486516136110784233909317742285542657224198387865865840560621752433123912302301736277194558763605013538486023586045595622660932518563285101017436206106293998550038214558465331470023180642743711269654871266505356331797110184196706217076614629530761300795093687780526054260623279808364818558875645975958671111232379763457269998161981818894332553200539249034590575539745219582897351685576812428915617390297264681729801194821454537462627770854779668390811069854630149610289574086612031876558570035888420555777144967282167937007101494923444112660602815373206375609881654491468527419423352259878949223780177573715715510962964983692103497422518292375133162807518452952195863625160051880585508989506601308974943012671611849707953774505458859939996516817977020630394085788381290776779273334249873007782891755131231322981784631943792165583147507962182835175160290730092836972505301466662110453426335721609188874742987502853623045256729753666002402865220132362170111681486899416674862677940332135679761052700069461443147480453816699378039810282101173508200235085795859656012576178160327598353640264769832782736577581565514783542015060080252808719448323538825064043795238634749941921502772247615019578396589671497790553838306658712971710368297597911291186822565532875566269464292523655252263080772355430783399089484420007567545178858930233625305152902764342683332670431778005518100509603743976430349206190168823314021092237911225916201283057575058853855774203207271906427615565979070564463830517575246925477953845843435396553289434136631443814183986512953139487413570852334021651858495017589755568886792905352486747211874281643132150182021889379358950060779468195534464723784969650090299392135194241706064861949937827413285110472132237238024896509312313292660001848206997875387921143444783214804325057048664832465805157077901100187621060170500148156690423827418703341422383235834050056435794564000871435636960286339252430887222531330913355705508393879653093047166797438595859239048976195383857149424234901907805790292943628512938081329238656512809615847578310607471090650311428871896593649831947926298393674191830177936190858904927423445158853836530171652335651947937087109283277862681506746435043127934892966880535465592879346805339957256020891005053874999027164514843160200318534265968489091617016278345302540095496849539798170493287781984194890067729043543486903026809515195369335906549761332917602326046359678414609803950899542516736589839758881441424164144376346177711793962189889268580510788434998785675774922716442868542783984873119821656765417467347478199210854950881805883425045696116074763951879840182430162938395827573242203680270989146179200599673735788025253127056380529073190843850702823128796126316898273478508204173174404894231151480527529467178258868396930772559172312308634442192701205267703806486475693358196566049945672211334792668756289901067144643654548854793026973007181462551270894836627431337636308955666879559717564266062533637769558060623180213196260191520135272114458207825579514520520270305004027458276832488933706327163932317618227020736508486160650998817798023249409816586065562684306147236435122097406320961635689661386700496539323181671425991624504708646580884065037098223193850182369842726167291443039700112328720998922636271366511210886170479166727715957604294578598053042967980795971163028481348516681312635127966758326997347028869972668992368451079193699505761028658551537246643674256246748355761288209541656422488928576971277047185027752841620260061402853664306718807906470379388075569538484765273400891114219620123446279269082886212841514758214546998889878014074448815333635535929704294109330481028608098821522286318849564573391587510086519139084089442849593230874856533695515164640822435491331174258387255550233305343243625561691435029752113516485762672780447626752827960493668730536568612394175171066168619865430202012458810670154756464192991391017727354110059246618112411431623305905684967005479834182087951747767846269419659857981350199478490883841429601354232534344959215213813725020533376946983064082099573713621437150062400668858380348880049742883803176986794306969334313574746811923891113083798363281664804703341835237038639321979059565661651887263231053589099227099779675860517954929008152920815939945064404507445999756314874681849237758726418229731306770494458514492731027907506474982072278714890229671443310612765579559646731405447018101546737133898192166742979254353055380287821703892235558807739838542897107851664237134324193736414083885524674007478777268681387383956686232787309108620025891176624143255289729671706274319926590977678643788438235375640388927936630001221474237691930969838245606708026562103604487842264425580983684115106067918573884416421942733027741687020030087732358326833841106834162152544028288044835820369150615418541156307871246700463519102869092018917509467926175985897569467646695877334414530822575738949549112983501464243280016503473369691031850027927036980294934186371060652744593490917822277338764017240521882609211295408127227428207680283678949009463657260821055724029311369687812873486478696350961780781771255210315096152412016096517388374954152513206472575478562238378048003369757586722321742689003783419909255263587219919441484500087905242671171858702322789141494543359444033746707167943500123894004961904775554998607680524841547742582069909938379045590718627465071291704000857915875927976706927741931634152584172987470550859269893285279117465210904191808054964644548158943830257983379470484018558146769936369795912193687139884280635689772341702323230575337980868010997300583159622649490479331045402438263308589648726566825619567919220576604959357889935805191678411652859034633031010019873564051095970430070101877606862812312762441494215214902447485954185818396419491058305026015501991751393848221585345671622586347498243135716443418675667843893904770613856372528548491893865452053763418135796546160135322169729209165107371751884420628501248330402328637192139370261789220935943118420759839581048198219754129077043152254377275040768374516042533867583411979882639757547605632649195594589092112773408073857748914324231510107529266983125183522236917123697300302087968631204248139089953283678230102543728844122275421487111489922638397922347542024277426511291437321842844438895517600331204795075726938823439529299814642762659943496404038785096777721221737918475432523566582555022760603193575323214947363133608697300996033632518343949184139970192035686730854712582372189238388008788377238432591055748549635283688614765247300870922350191952024949771251774992628245100589061122960157858034198465397788656275026116436819648435936778493642356028476066820207406033966787126085397715957618280799115851579757061032829123147881823109930750869409966407614902341452935736328119068744350648341903178793911908117478672596956598669965318246487769958506743031003497401716209001396496035130003659144880447147994656104304346535957476370720022519626252786432750272947113644574403711856098544453932948868572974182296441818593496249099656423322640814775988675840799880800636190358005018072292684270568918490164598051984796285941683277754594355560888577472977796326160380166912540395506815960381507028136916754372040865175109167514501957164647526042088190262975394215723623441475081407623848937858054173466648740605715881829212709019844733819726613067306887019354147048634640489272550379147488370783860680524192746477533985484105916028431220441340600757893413435627791913144689407851419396112273159066429433301090178968586014089701464846967042790733091514813962216461474905783306949771546924586927804439403679748615159453146410746175987452815426472271156905704868798968237874438589359710798763950473419445718396422139464718417505245265494017428079616490312607842662654834554707134978591506613286525567989825165154506317481452231890259091824968420932402232173354433137754054755590793689789590032449958321678053391394987675448475132707209023009028975202520861992272314383408471061878576842915901730652608158099162978541598321255731196290086685083639625675455245513331666492456445318732339833347065580787612145975167605594079259409461106542695592027789770577124650477214139456909248778114684356044153430245651881398902836166482265695857455111055498012668307701646025196924152815174600547016656216422245019324191865573734374796596799136703022850182273826300648203788637049527844051778618791329709905224534760182774468641808752503084230526149975718780914969629609884699689856781822167794555723825525096173018749285057396691408641277235974756832260609113019685537884223562405026105353292120885903847871579673097199364682041489642367148551542354264211605219198396621716838737827198803078167385091640334186249863332062614417316688251788174951085284569615003305917891328549246295016090664079183628617240288528732382328314668619881275377394781259496023993039019198529899344560809790680023730321503835843047304702788922572863491461170130206540375924793402747246694749164872984943852288306325173246651763459012466080919718265686660705478911858973067450887944059479613690081827982739333491263082530933823222777986642430128975440892575381111418323302726497121563337455913058476121219676074834144643035207130966231147444597954813366176526843521355224033757035840975282302533996877822354423367214266551492879852347059866367506611887163063032135519631359555343569964440636230943643439341960598571695308245847748542998753546662591514345268308294173333497374785916350896235321530568715883788743707428186896003170533943539442474456830219756246437875181172182878862879705934135012985988941801781163869074308717042863719186726322094498933630625699456790326311601641545939884966909418736402526916472602058407035043033264475921610827522390240042421449554332959644460783502571027401412164210395109301557928438578468623143960939509451311933559992123976744695326422796360136314288514474787748455134743388897647745227274461098566486127674436672663694765809187831348674750698265825514706791071944961676109874956186574836872715318626438912577259311465809528234849498079749913644967667207138607897126713284256943909535703764025577298490508676217341334193957780931194232703527494409621361617643585523184757962326846787427550492942622817813764338571369127074227639951900163502999272643763184554636872921612446400037420515605652474860174924436477851304883119458711130497358910993337254267387142139220981798355637335144195746548427454490282440760751314574412601221905341664661906711665799642245130307774347468388395050295135835792459012767433992252455403665505964148883032720247491136569409092331451423925284904141989787231318856891593454564504087464109989633367282032266715205864449272657486281588521345720878096669621572919252918372966758278132859379292702149421442558058021150121799618732446103177056410558802233331090811809404251545074812091266759554324560454271129667157869598623934198400711481636296476459058546319270160038134706346476764110122656313653957909796791804747509504233890666271629747113830568927458282477454590802790922897142209815804807580154381339063740076742945528909777969958386862647053211447796740562604541131624430906354392152567794739295284131505382367483052716013140981842815037211079133825678099310121251419724111919630441400492627459268394650896480724905236809257836901392217048147606563203154266996241787677739841834900300136040431757199542225506480860350586503241056495747089801895723363305340053265180920979730443390319085554741052829569092566010463767430905894796753473341525224213539748593154706273014980696784869934119634861594508337477858805443264879699515895928995758823768818863903260970231770188843503148528805138372306776729130785559095019236285121057038372826686310081213184011361877507116365752099298206749588266063566416103983159865951751172065132570916524391986831789699615774439144620932704420930303267779681839347946364729090363580819344033356288162638004225970948531716732630255714215522049488666272716675403642729157346834304281271509315169604387072388161893846384634652736556208637208518887038131808972353680274472277723057171182149545881446267757828414612484895587209739927355789719539441315058002877930542182366054382422516127524505855304816999124487859828856580418412492920963309479461456660210137347778515465592159093114573853648390311982654360430361811635869578204028178207822746038072803062031457900113679813513934610211710313356688469124592634747777747520163408837588344068297174974263348294536356052021510397873370450915557237057339514581053469197508478889353283390232838286410446218101925694193626928887595571633821651659913240433768993484915949230803762526835850994647142808258782294898948402449230525966481166194339381846465777536756953251346679361205567265873771738558189090752433935998535401299088051224258435989463558920739096582359324427198903261110410872837466406179077576408251249811014986292162368617022488793247522335753880650302196543849211109911923750909983658600598200599385830433995574644599246838417301400438749887306102062610174163646995441357236638503711372171302204955938738631521173034541387044796147077806772680435123029736703645030578454930416902924669984535102637320657375010806672244765126971172910267181342110222313156507112965489479774855725011878654990916647980063597610652686393461807085666199313774041959022585962471200447252108824226105667862680158152939844738710645814543933038482277302839931069747821685469359043466451166000012955567321088075798811359468253402190442352598475131683561253315099159710910345350911059015500746206288946474750349551764928217703498038824852168945494961085886883777482427669194951843819766172939248261612269065874919400359882006163234908795102954651535378998068344555291777506904252473273766906966952428504757462092278621583563958412771968240297013592916192343794792060014583548893492889769449477335388092282732114123026321392728369361112419832661464072518462524456601416165082552242901072924693876151547148461458425153232118342031291305791175847971638639117661497836338367992488888611576004134149545227503979389071735467290590219107965383477093276698403504974520794182062642882817347980343416176153774940200938959574316586078792447755191529304823854422054319786861877326029420573456329902431871054579442044499968185764685043690723279047037255940106055218370444158295956602504764709327405780123663935638279320323630654954056622932123792426144177744399888767348621198842884874676766865145493580043311997177667284165831456255339650977876486045460133470930728996029401018576290579743323256921781393022420809397648550269284540390391447458551427421538033269756486800330364112511496593416190181862359252283306653147036146528771898701741020310993465118162212000656070042641588988278078179879459181986676623334493184287509467474208011433715961725329807618953672939276311373500554222322420099518811680692444701251974683091635455075161349026124559233032503018587427886197857730976934079548785560000127401314172274030812398074942474467816495125562286546045831189092199026071950430793847783302686855992102996501109639156083333224958852340570307768853725502168012134278926788157970102593285530448673299127716811939444214060522746931996791221102684897204055984557405802918941464870085502880329540778277484914713984136165619028133753300241049094812417800358526888026542932135329537046782812944669457592360385508225063831089248266891949741040133766715297901201273521452589138623489328820011658675437987448436801008231346788146398112218601540295610259892694029936677116139194432362939980357688909365989794311525123124790413928314573105255948370476726617532268734640334455804416092352445025594213636197410216512842070587562876331606093555573775385923631310705695913358393406600996583673161232267017961420540396262200206115907937106039939936432122329649328257694955737946736685621228758368542330795608765698744171500096282367732348949154008354746193182464039627850783603273722701422766616953837661113984286156635323592933039268702047774047045850310946565913106047835122183191871833254741476610615058941731596583351563270291204951080412088761266861114383332250008273463179518429214165274534094394901393729534067510262539080935645673029193319394525584491042502369433573176512502098541459608767556318296253414756660071538617182435748856370703788682632543342970247981482382244697572398861065165683090969058026959220141957741905700949420462908063198679372327267142397087639182900621838686376769223633961310977591995161327734007927399723581931292135017134102845234874287968917274080135947671077979111276885058854153473972106481943046927295942941026500810624232278271368342060486097312132568955045770829618752230014148218206303262262495844121108050947104679861100091981796945268552200671604077338587015077876006151153445655708167997162539101469620250347554062907197906970942286570060059190922170302228607173262815313256038269550124802005785752799630842984011441463210881088329332815635396324066809934699457456180738157456170967888451834309645185817523177835576533300403115487529995723534225134261218276778478309999411668302263849695049168710377352807256135230851899190101650889334401384131258243033840234318847855494470263060477534853498519922582488706728508852704071446419815400220534331918656408943212280766686084541892074222857133618947308366174572193058988807142752280260465694540588869473450274991665857896702442347931426502866586937419749469875530403000394468170030994578919763917845155617088048527942380975232962100025973577216389916278388470646855337455303592886637994921555662218720402537627485594206747973620950831758715046548560817584166745767149845410296777933427442779156874661414838756203581694924954352945798958735552824901379127239305784127821326272455144598101609141054660432008315884659380199915060067433406660982088501908384343990968647444826944334404527214592915328480310066073224333223707002258728282914860201811075121640482111882030750492013724463110545564244279478093436432242309254115964589298722274862698620553130866750135537124259201996597545711137409684186121380087080792825342225220956926757976546972508460271964940363870338893871108966033034460478748861000553054484127831450368389370953205252560179731361906475343358980029999000512772847602057949049187874656908651721214621465545840454089983098298270573402757478511385577205335379479168351670179616883615156021343561251253387746137846334654876380686848512211633998800816066590991317721915316695255516848217322572957550913748811971496413874492976597692826228996736255766289520298833950491604529735304917851213695901275910969469411947107628485754944923155234789908457417801630006053160363400864154909132706679628032638562337281334403979533739178257316200487080276920439875554756236559498920399390256914251314569740781226540130853946761665903516921859158779610813581485536220460810445582266456963064304791460026289543301207968481368603576035509508013252136147693512847311978504026818014978223632562761648076603915839069530128130089182082032474369754665486253086759658186609623656395343899211397765344749294550936064679219616660197501126575819221258973426283399270351417530749411353801140497304785939859069009289741528342990064088642241408509678773490767678760386601109424556002645186175153339889574997934339432112375840457539078361781938020555095343829859012513246075983575499603543822018843985814619594614007720311063871155135922616660142477100299796824984641802041967551974999695917709961345342948462260395943638724468741489533464829132221601491233704795809724091118114542152180689432870355122560515088073446773579797108095086684603081817115518384794301249653859987395212174784237071045301346254897899065141915623989269919068378281474798782905963581769380320534411401986755190862098037086978449463589122934758849000328845817929690011034933678203592996522881466957035457157556095729972504708493219322132120112670368948364120893686941708060718155236452479187736353984925168095733220160174496797067552419434529276000063224416115007423818358592360478604293250591169340487044097388111737303015046283172877457038497722768370806581806008229863462830325592116803910975909154900167193880139224168833683873138680198211473294544275069026854998530098655500165529552891842688252610058177262656964933559667519551209985566774121213057869666667118153287640216786042974433273927334963229799672056877778223973273932249700243300854119463990862615013154767747034079835690193610638929505511516589409676280185051599613956595008562776785782532465870621978203624901925512179279759795357652964088653279147639515282310473483457475571019798238127788573693859411911464231489289232953497794562785984628697027665009107335411525168530946840364258210463841854175198253238600119080444381417823225891164223878418826734099335642634303086126394436064621432628443209093270691383327267997581196604684913742717194211661585742547516921345320590086185278594122248359780165104312467640403547541684592030005963125902541416626641241467481476735334885045492655246541019707407569840474357240385580010868774143627835024076006681630775487773156665505614414670860757034224951889214156542631628423865543364754016676206862033968940765392575209513676080307276023363019490095235292634972765762647369713587864539111153518942259434413636450467436534519224164663595319459967411380490450400635410733327834822422190119782360548792746882168060800432830626055979418402418658443518930214150826256175391333018438178611764623249692154183315913445570106315251242273830625302949223296486021879422338126995265599925184357383962918526198751765898816991787536196085595076375159472759495438804779224778503293579617624870592552581298403860577881311940599929146731793490761123161306214225766902780258871993733188343785636738132753778672782791739547554204437367165705598965589263188387575925182340305850297090738423329516292906581818877829678260981910842137031556966902171645034969130315720040455336504198142670921453483777341300314489409757708531922350381311201729122860397480398092597180733648911852295463406773292523196096575797386758529581672077010523701044804211662284744023689431529938923808577724083149373016135783015194263490935228463855821883856500998281717386510819379847068886982363207706515845177308224991896756866528080459903618754092071402578765169656040882740689371551764928523742726559913754024961501752935791505284779646244588751010321067233182850918564370463587480374172204988114330537667182859958071535297222554106058127926533273960298525128807142754829440709427752258331046007621464047142077360719305654541601607890775781449358741130141319537830268318830227979217145028810191840436698741456729113268615359545006576842853289515966813553965559407790556562279539452598777462395944458606710417004008138141443975827184208419769339956391806905283770786602146031701946768563284006675469059596516109704548100098239452487834352976885478708108872418906429303389711480355377756261382606450042561469895169297444683175173333942373397377654711097480491346284237778658315531342892330836059100341612332316952685411020251868707239633975785457030649565470320826609819112005244231370662329032424954576834341344791084542766974969838597978332446237466969329281945345236892029956521364516684363708923709085781555382377389246796901231232745635839245361583916225011515144527641728636869309104796550302844269741555077258495005566750202987317377765528815077198372819706279474610650052298087004182191464836435814593968986831680995104267884060386199787416939504347703939977090164511222675835796517860020987615070343962862809417102187669935385729325588783029429533067858140675447908482985125498305159039324048069056689050110431359178067541544182305180449784245907164018236958937455256878262883664413023042010160188901971057908691617894745931079951599107510123168961946575990453001859562145703840131829832532746671795272335614940709962644288232005443994290601321132676288055554985803532263922458387074931638714710385020278724292954514730637384123318449894253504845081137831493174163030003739154111249502229512018394216691951550023327264907912346993258718761487175352106231332950548829038406175714792809279848020741798546430820781359884452124815030357740198289783685616597122378938665521161039543480798590091242895289230092694069256785473287711628266230348324538854811324079517887798790751795583405027629779131397484191891222327937574148684732720573423882199703586231007086545899878173631893041460147735344647699908840022550527172503747319771724213483357282393952386079754568258082685574297249612824337659065023325979482978099844474705012425813231933730832402681058522917666417920623467850514650355248787502576088133145678653952894882895989980574261305434114913472841877070297115855249562591949831881175422296738920322078423291184621393406113521060900951719093978385932778190880729757480056638053587293808036037079216593498096447707410035198346600670719089141310235218897610807559144322959019111456334479445055057242624135333766884943174820822118591586861292580057183742016986219839250437121194463846039845709210739425142376300142698931548114797585236191810747987875512017605972676952304040722709533449711628569914521732341205624412239723459214615451747959297100296988766178933605624497799374835598028909650878756169294583265235486149057320423904515184207610031549643861859074034238900672460613304254354819492368290361797231519779504343439329298299135472137569608779080600611330680520436521247180176050122959132351035690350391645380400794520543925206220667916727962707818196668793462672005681663443975139753492728142374825920481930913584290659493950432287905286868656010942540608543905749063991840929469919390880187695602173122151269315283317926860161241709066413586975812303438015953061981261413462085342239115002948968027644299207597728135338276248028215785941438485141186948884852371627598908578070727733597827945007815864896843689416154370185227077169927248041180550533223550881751406677152527574264304589623763440681555430896616969752321949844619530791649245795519195601325116484765582602438037834466361651069267881644388530704737420656902154595237173670275945110024632690062017511699732037133634788546971615050329104381841041355180700664502096439783402755123884230704336870676277603682004400188603939692578255563440132663215865054390662770860531169270223487095206807875610408448849777002016067001984754565029937653880008013939847310910213566299046777213423851256566042985593287242778712150881155278856968289596168059494729204229797047660830689084695354222277190671158352509626658755118172060022037061587943546715309682087234753095634999053126491997094461926053006836676521667852842938766763406264694751713490901387538344131065438413013074349182505639518635573241804272113104949060646424685587896021016356760139589166065788550975465886420581103766535409311075825239295500927837198250526647545257461137294984690689158342924180311276631451087749515805141482325501252045227630512440347838167782081847604583321294955868311556485910581426857564355195367416960237399414351181386523944040171220856120370213465756197897924536454405448998514542342242853885905150223777462033363724025186922696171030571692277087852322469826828730028096119794003718287607693841324181103893705850566115061259165076787468791463440242512978423155113874898808755254731855217758487141764700593999393482087359590097622352090863088836443377554593447832518398908787707428498568302944279140316506773434963930049433270454316966057992264975428853079552401985543991287288046928607103071440039412304832920555706369135066141162878785623863254270414534590561064705547742680500878428127088655026488781248137459046084892376062298646240066600896130247897167223918060930192192760767281129569623407629142530855372053604830416558844367327396116759869107982148926159276537756672334506327155907793756937228173699001443713500199118534585096754168636973891379488117671931980923625913210245760259966556226494405737062337424767131241671031405344391447045502308008919070633393866920251680696955016422404516708885900007240660858226428673084876575537713746747684376527370683904393732008057985979202005313061128132125844831880596361552893072367674040068676550996454953021869719989205361300814114524248346646533079925657068553131272466829071074121640332700465925789409447871779159930377943667038290117632176507932332279991946271651533043821761220907726692470460888588249619773271081848185892294746816886392870975005799486287066923198376585396901683547190568082724172474056789645498478898958285310316375469116883409236995672024096133173628042810876374903264918456759970025679237963724173399037421647495828216611928697870743335431057847048306847101255780615980387606254369793597414541967465348668475889649087447259460607025356702324715255466100152040300526410910421592944678554462767065614633175118381944500715440941876801526318386149809891893757096820413550814222175009861827310153024257247760059540192686365719905880044509778512703919252551555889538104626431246586802462547673394584323858640474773715220792650454052668654794139493276072770175451972533518712649957915946579010889976531734486079955699991806312876728031491627468227859721279706878946325427040356939439769114673187762932012898291365146540391148975430841186650870199983147174032029557345219752183282400027122278786317036138053879744013486187956365641781187909871268708408578316456936052237036130542315558229984652683875070808605431661847768102348520293120296014884724811204745080434693468054831300392459958229550384335732969242185851999257150139967470690093988385948223055917121187342842765464037165163498999143460358147420740188342115953737880836613842355795485358315207636088611636074677202681931327609856411241459291900885608572243501738232624482897917314055553083076560362756744666435483926996815095263152720306333576506782336227247961433537942786968832728681254855221885894792854060351234690373503468533550807662320184800358160824620887562579992461963346733121617130058496864258880276728984140210230535799023545616452099530341316731656757565020710821052915332914820083717058676967915964745977331215260619288429983116142155430169380364696148618852378907695717252917072090236916303451932242057255492814992349509216148322169767947444094618398252801856476002698758503378372342220566980620993142440784639458875629875990925737540148817579991254511891556938348654555666878823670775073658680192364219284336925704005330538957079211221971802624754414309953423750873465511774258727340288365693137833361568948067414133498669082074009260244680971642719929774923600949856723164142936803864224300142781978051978584424219059426303942670780183532028593512594105856346599602791687944247733421689813836530816559204994901843925619736579585744561897332276005444592147670680876083889319086758056632334564742512607459510900321530532591051934143563448901862764931800905115791455126002569896066795839271462363522777044034001147474166779773158477270452420164539890312488680902594579116658187956154469583194509758684166633288601076991144970031436558076347592998591832218574223806751071291024056584395365257715559243717507121505452340424956038934114514055347841260992055931610527851413551170725996378214875402854204235516517876028044672653290365910215158971465783303351230081677541982666335298653156118998078069600147741429012117760000200169498327620132317053403645333277424020830441626753109855475873624504706479069543431688004676784662610404033523953624872624662286973386603335455741494218316941317275766792801100303271879843255211134406902001296552054027017516863865616773145164870183858769369481105574643540441581682716836694373637255719911543487287753011368566666878488134495466663295975004549490630642805385682118526979581477985857646267776878080901632219557216544761035087869281980652438327611339847742033677634975796190351958754140255721614730381088505222368012652362067224071649743236857831894411250305416121369958437927403288178419904127130235906148344892206474411224129819945982681526706079729177742951240683440361859479721805840528473447873397565588595368940468540730372184894787835800044063919386572677749970940172503945091334129847084239360303877100368592581874727565340432983155367086292142375091730992213737010912633454301219322759313457814747115793866837846003525784004621171094389676850484954760564829399696381232122889845791163131494096037443722627122619350315990983704580250803389723839768584539591967237826945078003360338564936105111536625314807265813362847401870992545174886925650737933678278163945656947666367488557211336068629017516498523375127529638222625726338640339587825477921024096602388732520571358700733092667696216665804265048182078516732514737860900934095539980436520674909330835379647192422480582585628993174570748953781063202138918478656586648513873991462448125903784871183054279327490631565162776325749028706225302689380243342181381294002509355964910231379866777826143280522529683811558711779494766055921324777575676500330514861554697222500288523427710233629454221129592132471533674207410769223847212003173955134422797404334501605688529351522450764953341693796037816774818222726046598723357275742882725128370896949451947426987569557971812009610075519739370977795569541975263514150468763394913069651972374646031870864223425198146681001646737561369797056727694739355265173470432863121827986136337914560968645500692554757427697735632284947734602151216284945875580851764794695563935816032927122015323819519199882655574953189024329652602619241261033515941855598303799399308831961470566975499085485587320526781987228377765041875408066214180690589659462019161613257695550810401123966678707240639145284130378705719798875514950134757639552846485745378106146028381320509414279381071016010345649467905747566429225311333974907445143775034295448343110620780889896528803778228429633469014286678379900299794418505406621999996611547946331852950571863620212643133915081068776329242967542540981717613838351612552766288147210926881530866957148813896084332983490133892737216622309661678071809981494249371109226650144575353928121442792643593823038937453006405714276792013324929667465260270668221714340060058336169045725084847141698649507795823839831702844524909203007313889118882186548675861556357393636304292804075516802327594881697209015513225191638105171035045804605370546228965021698943632600619645662868225333405608564840741405926625628089625289504768419828362082816330148914668357298690839449439297898750969502399877188811180053935211760597898088082221041794275466246098302512065384135770839222938646013449302646578729562243069668945695312781830592629789410527173363785006248332624095215091995164632749795937241074254770392948318038792727251359017319169558892541058597347260835723437304075046979656797735948112686478933138075761993179383586117789397999433785342212047581854117898591415995753591417666297426743769134788395118479423498842099387831909876458792101868992785161879395689327545774800795273609600741178960609878657991803617112322898416407621524428381319483513433000040730394834635171054500526225241421591516267286024895362260303901325271149486118822718501902223085976206646679806359690549901533140824416018957262680134606526628820079638474154926925948248352120237986670744948751593357624806668014300497768247435750081101114290909204068299349607262560366130533364024954979163867150111790547731612376442107176018108935926015120362356343824190398971867625047838272443542345576798165701018822135750208084305234960771867819217639450222481397434016422669770797443840659506702813514405422248248460970653301356382380830694496053376927518069380361428155992391596050293418078518421608801027718980445283104418096851318688605861921269441612722581755426706699018333855264910909200790397464404257960372540649672179931900527337805829464181593710393224811561294464017674812613255864257567534520674836429086351056246064647834583743397636229257410236122932759479814088815304346896094089592947036577187336070946920308908888101077337438081163171777115888233714493315629658190657814120363309716736745849203183208508108766700924593772980525444632776059631740986828656369480549896899559185806995531085863921989896658150660238424404150794183920941491692842234915019066160235305236451935704433012900376019266784316745262486362191176650594275776537349864587432219693035479495406962834440987888647959528408449017478468465846149844535504789034911306337875385909145964064700549512163404155160350337325056825064508103549789196503937627312313384632713083323139312501050630802822515635794681208539991969134558096482475617815168848471676957561888391688501948169339023610980243378784264205533555448228833500340926797086350600739432984384914340070137813655459373405281606580466769072781202186998833650066073373698109829092932061566993137943636264992279877006691236813610031018469667505848593807958911162706139471554325180168127399011331333756199637575412328293970631109387098456950288293686808392149982004708758854275676067196178459058876233569594814025088855280163027307406826124224531761096109995087527656262521245921914917747702006704523552738390940666196418925346895779377691952675349673715216853990160122788159132562247828454743837010995843879238845643845888203882437373565503608538236917903804314343608946496793153553682643908559271210810916200400035937241670007117617191689866051207049567708799397610558344606783195052722047976432685941349560322976391898402498619310986503227338302141989412918681994527804442832235187112959853826569564921726008269681856589660238507379653740868078104771074481373318656125207783647006030621219334295447864807683723825453888775193526530070861679423834052423996562321913302571199402812103223411199101054830747482722454461271868236464526143684665182534787279951408583775435588767114505819665513336010357946947354994398109342682127286749104655621021769553774975612947540983631193198986788580369247127202769322054206168106486435851187587187510631853080632850025808719748038799640549778833631728082383043785332272645668324842312987422260171561533176257750036639028912137811783136052807857926260288367627867473264580643506014753859703335496290463776825077768966389679818374223799271393665425462340942014120350257366944066610591089150549709505512632926783212463120561757099783500446792880695804753788112687922316164928890243557932130687040128919555590548271025825494679443201871155531922085965983323946196858858245724922327044047646587526612303835180559731188480010450785159736155396103692560721406397735367878834736007712484790201252006597894769046246527352583611611482513164443045939025766592001424922076325269325585355026434816337527550549152006452296215288638256408845724269824910512459816008333953240805879773996372766603891183807286817484275961964509477887465880030523323118354664106538367338903995170231083108372300976336641749135936733791555109183946381797502359241973684910646349832342606475108946936441174973374686881914634106924864157488681000922920433799604159735228717749766559257078413798551979021071691085981954158600584519374297719846677165703912762420240495990716926892311685982869417321537478062229656341878556004654131172423861759999922699470632903094200666744234456013376593467636723544139563137573926751329982766974318077227703275333050936260319522083313479739482395060798102696555315769596055855433338451640895141482750465052046697776269822155408314587015655639192051611892626589859062689020845308898353879735805117126998146422277329519401285357288844285231420653712383235290696583606343484422565615352283012692638283820727226258768199769844426929767627410383913116655082641134524875729947475284355633774597723086025632009772151310869076563989220454140487344200616052029437920067630737631532965881819651526724243615226338092557852582595194901074895029388711425997510035392861585931792020772787178029256671322152940721457846744314965422774487713092903044253699394785382788209116393568917657809489879389201305264922194995839341279325412860431750920670584368208335644089569740402465895769701776068239260895892015012925091106430856911540859283038686784361899142149953073060125410049041326827143219985554992245107471952238299800672188892165656328110211436667748783445785410372475161719532182725344118240952676035552182159793470791868946590130143539335462344922150530379628515319141490754506858950286237846711362219939632952856303757072705815105952929150097037338022845295806484139902630720443746319583468488219409632619571644482475611547345453112311833962029551495965277843500401072295495093827854407420185450879018139713001995745237383847563775154291674019558506976943633350118963377224384572166067958967359502035585308927297664204878045653080104946368381423194230974193230522554401368632903466231807582345700129622437795840225585947805014671817599883330001326881079862837351140998339155713529584553664281315251783011520022243937446421111691008961695129142026536127793050031967786101383412900523376307046163992400712773243411865388655293077220278231344663161057312878768114015509793073147071688694029217145313540146980159166194373420678101534764225648212565490534906432279578327586229502332062211053584829957555080971328456174811424141552846309837305107203295804680910982000655296423872353614124765195914661955958232921315683541871623292838184109071584987024687012941576049638793304294426250372937956049209555405328756655462582598626876977330492013788363529986032645238843944310054047492512450601164572494582392821768010282836087953282135893322489275107161458308890779437393700219627039732053174856668526250276731648750284628332164428548101937612482277889284460824030714772065638908955547985821199441983988278314421845335169825126478684186879045037869121656486830042756561379562596518685839452752371878045356366047399454812344276846461657567390324390709633552604222999763194121043478717848939859944464629586666628517305397037917642016534608317902104573912634970744347035567731891706450384664843989447510752162955107087489437021937768528565341751829470042322182830458775207064238362824806414369158828588872450326785471291666232166015364525868793431514991199601723100564752414487603375171444563601620911010089418144710846833249034992149768612130970973796517600822238901781506720722191774927855352424471884889809808559964909265725800192404901512365069534000853915738156573235688324101474248100052719713477334401170135613836525739918786407533067497446120986300374268187033041718722663221356679098191931681123295267184307516301091018626934563281366150874603400829558241813110198210766919941463631923348205263243332157077029130898292617453477902543030836158457789453554264395648836105875014037417237330837709054741429568915299831569728413206140583436239408761639976304853892607126324391455822219987813155447420752214055376968441819104652097842833427037034630096464194508636026643790976227967627094960856357741129810102266269833103893647501330864838593001561999448655990234274152051308412078014574867260218388530847602374893939153155446784046227292775971155321735686495071976974218649911027430358684831586976436942148915402975670234443486081048812440399573464446200523675918495404705747566944939451861683140677788085365240076335168012161070116319866757814289520406093514422502388627171781026759791069191622452280139234311560403148875323102754031515954164144317178957503857173719215533142796623165823769582873048201647490559185458083372424201256622782137073520703519510437260665740523231625266121969467361596667544978112382599428355632854342803909995778969720942607481740531010548299476906106730630030549562179748289278996220629512173787567927050629824844505802089595140096452394646435059486169063566843877632625470354932530809753667510488341399202558443152793276067384694828745276496073555117366924912976406943423190895560257008873655480097470564252594887269182573100945137870688140317475597531055937014125083373582184088057516037893042635633196631711925930081083031316425337090021445989306118905894403511711780425750320474452414000278694809020385513849357721208315589569542909871893279223378864799375068620462804445874618963494878056570359930598568038468217560157337980107453604674404491957405986443925877643196803166353210397764662347605056701930867254338890008142154850899541350225521692670265309753149855235656268799332510161063528720929965739610431518109512446848340004160307613162839648652910875162146525900451552312731738910894588621601981518037768006951478562350269015750061769239930648657428958624058340960641987423808207725648435093067260341564055314984852990849383460832201672400176981625267442566733589005702203171188191008914273640674698140444354505237782995776274593409323013516079050423777703026025201801782768283301516468682622604109920080080896184284154207950832553765696502881753919257272843548645230312103884483819143736378861375264941091675845978612912909111403978672675651359771032055088459568202885831966523906025252920572499949605146413593182467880358829287234860263355382207958475429842966712633414612380866407234130694341664924296191258027225614196740350413149020701939462600773906041627311411066550388313573893131036050884357210989059197874245234440699672460979314593258903585906291017065086323038569578925426314880072981076761515846134633426252745879188787532576636967275313492063467459027220290949371987078829620213590118641306108466954859142638423159647141750570257070948494472335838518901519729000168826064436722653409296627887472035043813368910404262455899190963328216923256290641358337996519272724690089062525751226452181623714914948549557466192077897512092886647143094435506790460215128451652417119405520587868184728592297126226733141974945587227250421707458536009727924339121016944835753593855490846632403263153307343120368814366253591030267468534512221196515863937740131129539772524571313236562337934231207734377296917356963009747549623095819870194401619990344706637659444780265973040711240220697579932617889844741078758055122867875052696102086764391199630733488108124470138752112614965709204261513124042752753880970958260305167376673909297394881452181139535320229289553041017276334940266950072461476250201382357014809941564085626228779363321637734555261784949817654287621389180993484241843134785274191617966609609933664813222387619318708250994508863268659743703647048677840257242495592674638187362750652947807839292516512506691480421369370057579851715592003890877587029502347851369699909281683742746654187666620732009182726528826735277898858562103909098486748266152915937694671654224194446056742831210463025678475597838371535127105362285493382249810758510803570362719928967270936696891530842659413060987817542891311216884434498582784330043080959770917604079310100324938818968067866342579422909706161391287326585703874702182371132560263794738686856112199904095659359649236559437821967827473905473784451716288273400648133469832350132080427610138813713585402898070693563716134606354523698005130587899966970322644949201651454059783940230121497045381947403207646443492020753641542936467424975972079410960609692807348005183998366974184463711149414594449556716684662911983892593182719022539253917329955499625945861123574361195457437164964590620637260485001328216912070389846119220408447298758965455711018195059840885704507846015982157597794112789085339385703837425102038824865711595441348471492807221099276116649874525543202388894419622870235833082857106143029156409131115079279856935563199457986822392597787773776219504753028133800584578095420124717787991009521831956832046975545487436807396668644227895832512086353387144818859758678828888989807161862063122745301339031978389276781373070963251065910812993599792094941290357040126810611966557691799287329814210898312562987608092525358896306256416294460044841152005010668160685473844726915066060983225135410223463255514963765562065814884175782879122246902105394436105304759810292512790484841602343997305110813517912717624806499691846161184425522646665032929939222541903376792507249585491932470871601093376035339553772875851852972841276473728781169786178925282147648947966137840259760793637550370129637803198259302417145941448555261840766768085626365284925015111289626426407765662646032040882752654868536688830962746601659590405094294481771699279619927583238278895259776139306176023583593769937775688135062889241548638845654358788225290366394481240034869646160421497616721313528258809197000216622405412821844934582331231915252504319645105004342772496665660261967492241443638707519307834655282164564762636266390502766641320365123052069995749617623134498980381300400159092740653424302578934373706221766195796157124577270316532267906621844484887228219827337273978320140834056444964027633898270422197740871403839613806129236805584201608780794876737566256269002888962011407450841797083219862609429555645098246422865230401172988095753043559104774298965783647774792436388102465468868758671498408779652448625456025406068786789239567555746098002216506170094400062443955214458079783514391696069078448661368430554278648574909687924526929450336567203216400635321210200532938179411275999247427651969925773639152826523854908483752470701123078023094573263309052731471990387697844986090441363530303245961838500504808585155272802690228970639661913930933588509717020164261653007937599504785207966751619401871178832355864840516944182940442664582132180036296170148736197944958616050729907280423144347825674837283656916330453832704127049935042423067546395594809277025970427255489745518288977095988554460256146497857992111995682488343009396856644337422142008602085890885077881845322484676497155522260245968452498076725228600341395640128929962896770612529518704684400761038622726402467752102338705950150702333064635154021342162213644985577048376440472385189692717049126711064905080288002728610986511367799383308522559414569863854659736028614472138909814005636330652040921562834948094252180171955435252320330944417945507207875301719408271948946950545409855190547949656879311336040968970332517770727988871788717969393531814464053059094535105394155226093638498858608831184117661362355470336125961067787887757193141226906007203304258302485706725492173862792904438810182613740794690116536596917427082939103789632836516787894343417892985741290143601611691955394142342419638523504815939743650648612364363274567090937149594217810041765896239589852727486107739102487521209918808663160834152184773299833743926057258580372163432220999115799329960190386957977666063546213938552556042435413548805657308175006417618586023264546724197616087869016849471223865053717991850293073304991097467288063137440802953777651166823124503119428958370380236102007279456037669103469603011880382605144036332327255790509461885993594466331039205026661452104602975366694223850801295001977869285491551746641153507506592054470314911759863938944308884206880441895547064072888334227590424115030565974166623091169489132610509469834482044582732219448042845808735629990053376060985895227214129897811260375966395522183936113299692353561577824313225985172135033475903511401416904437599111871672257856955994124950775459954793626150197941771155082184419843578950039556687596991987504020246566027227644297088914029756404953184379487258990715598663973179105440036273127963410627146724123963507334779759304880099588928208942116762410548073971342696749221845525821233630571822283309518087925994274616039148715228376070310269530792302950119264600224570994385421716073255818704311876797304429762863893930977799725073208871537483386379488432145834561416191052551222440289530288153124521699829926754811215338981954196420096031810583828549204408659720757524073488552339410791699777987179437140843233007798545809005702777031320920604858819494403548730662480135702121453098712160762059281948576579107253893280744843757139702060310688950981648132309448875576357403228680536124653428216041129438852716522404233254034656388694904855124294425471573350844126555850682356126464633035134526923038817674267791116027827670235748448938585962278937921469947846430965515211033865686411089674575632024193443672084092373247758183951255777077411968899474598881315352962392027708942919037124520252513671410359605730522132767356231055674848554349057375245987823973785815015368416800248457932919397518028433925597683345907990237411131656472666826743393887967113413509290115228102204666876729268303015549994858476850386431795105042257152200196569485748184677660613060810529603071280627695855389454756481648978646208615028565883309901716910331301682010775939474353230223530877758011457160536235733325322573446960319524777823981083893322156741499336592056787503517032538042531759561511273639334510394545659975909146920295017968816363824527638640411771041787669064334621147089172533299575228467233903828768215028637060511844723202790334611079118746433110604554880488733994887163837534516532658811023175235836080531889790580685405208903387392307526502327301768084653393068938837158692901978217617125379832493576414322477132012399691903217229010878698235350392886753429233889559080616824808036081032144722649622639328207254928793195572030093180160642635831630529328710483353843830193290995755604091979840772636817697828880732809340845602563436533682874181852695088792533007205655193348543993662735458400677243346154273133480902403479535415052907746366514872728894306736286435368786555588855359855711998938207153065036954369941338737725376780413221219992026818659498695659930696612569108575877945887141429929360248025391132215350551467091635580942574055764409946657382752868524796023552984686729751256269264618169882309938801894712834105768889891001045885040099077296970224517009146386847708204663490700340296724463035526969936954339119480766818362010306915792528233217232137762606551152364996042596898437944251107623220932582206084044710189732416251110762511508345820814271496123821001437045353409399422525906154172127455633374709094600984343190427554592599753861508636885082007792866973701493962849470439714554078079973010159131660196072185211071148884249941202047370660037619275172280869891418193270581119789887791801511130308974135387902239225593626201106287164534059117775381734618423784966320849935798113517780570209615473769165947840059482186077164675347193778216690692500114077879723089372602860038763823431554916461954420940076802711145756196458607014984551852151011935057865020073758357091124833645964855466720002384915795319062130407480507962795310087464236952325673114957141502090131524555703511574864980107834894894277598806155235372416310016530423352181669730449703141167147018837983927256315931662703680059130571249675081647745937881654246856868310176443360087026437863999192274269815739086369601783533788900422475233895402517827741968806754191238981782631445561073050962189951736663207824331976612227766892564669551105512712171117253061857015687807183774986045574469571552077873739295225739936921238006143673050484426049669099984685600884292473031151482285994594765043330718725360034636335058804250692918837276582726271995655521280760528630620161647248852468562097545841789365833098697638967213521686537087622369314080936651549833416588145536170110510724682599846073683658588309569737851524661808647642547011688004593390801218407624736413805743076938901676915190679214476136494664140472280511443838119999925449124925757500761800325242426052891680131254252359992015493507484092761187760859872729400552494986552622834355884937554951374695629687073882100743891931568622117997969805314700477446623268299670482460858402982159587234859975770460132634947476497291270811773795355637131703035211258325812758818472537743988993725252262218489329363603290453036334365630750565657274452593663788508655227972651995296996369714252568316785595431519491274846844405811233358259094054905107999618413622120796537696048644512245418436773472838091839362906159884437502313075341592916646687332428635922279449532833224164567988184926223773479040697035690843044781113385320612890557737557276839246451131635331287672704859316006833903781413527351158901330238589081676352349147132746183079353273942126665686513573944122141360097168103648195374091406270437015806503219413061034045897620186808409721109613092972626280555766386273087167161331822444486421182632440554494110829780613137497875606943399373585943076880495777331723478002894662181812465483095018767312209409700486889686490685261372990909392996651836950785706911431445740886235376058674091878981788364360035751809557848325599978761737662300548768372563119297350075955828985765310895433768445677578820792218770083199500049211083956018954921418729573161430653662069308001884250615923579897456445121463560425444529246949980712342554972633921694818742108472757760595582707199009130611590113232310243546763338222230643683978044158707700882939970797559301528300562701973475604446962351847079126317843645634337278117972658253955253590294677884607438451368320996904798394354124684365381805450500594396652771083763700583834457916658790758297483927402851054886409771177004945607426491758713027450896101950966327894543923794704449321464509843698173797585949091644484998754229023906586423926052023718967352309813161588241582690604943494569653330397852286443784885689401993298745353360487956146218137513460585418940274273894170733586483595559882581588831854151441649936764792695235579683555488623533344746127854007178471670279540886026216955727663481933392042089046947740506796788916653399841894068588809734656498886917188655149702824596220818728010136979215486601842198406971784912208071882714468354474737062961841326266845936261726315757821820202801777285923536670233515702741420542908979481471316725736939593957277743156919628157982327686130678445800639821326908351272001409887310107891163860358693422685530125771652767489751077960707622672722130142196395740470910384471507531614340619252968603005095648842167354585488826560980122417337726293176828081800253829802049466095059369892041079860972263766276758046120360203802615842259841279901608624443386119063767292893742270097256085190581324467175344292089947889747070469822659371094694842747462026052331398732140608463760957954116622151193545031397987330563347344458164515843582906507848983876101665040416753935064847312495243492281347488841275962486234205274072198240721544360601084932882607433490396448064308824414875456383749011829256980319727156291352515085287536113038597556899530258624473154268581386977808400077729585541152878701883563941057930126944023440752932774457662376973980864691718646741990782318473889568381657778336014793316465567266219142344965638846334276852322359734461845459671568683607661641409474840728260388032598478516195195617446596721914564080310114079984611383209441078747456795762251430794426559141052450875131395102800733697971648122132359946206443366627447419059623485106953337385509753417974516941344717086274255501812793008559059128498823917596419321368451544115139557187942732426758764384394531152137926339053632265585289457784615074788712994390144154044187661633664406239695351727619027979447561655860093731523420843474507969771288974252038270897074877923872375924351946797632518791261757680373731147854527356399905256374017288727605677554117819112566633123011846102458768187360270196734718182858259462155201469844861393209298434848302006506184141629775755751141461756049096167011004749954443903259295374504197281896914766000200367433424330891826158382148458165763567480957616915720835715056456224593284032253623884033283905123999907401862148510292240117335398414975994377193178150575011284891270539112819728863855181823883142122043809373382762050369226107386117814307751692492500235063025503657407661875333784518084286241250519523489672985717009992066814287961538299407050211088245385091651995369544572262095183973608365967287632642432568996959322231815031969090815416864684137375871344404464073719172687242542858020986492833158035428029386318299100037473146315881346582376047017861897255122097856420882246728763164577169232222025337510130410309972958710696395448877896712804722912034698951589967647838452585503370663468765217114521325754763522093961594791165821348043865602296005090343942319901520222856608436709445456580208981037865713639793267724602655546543853782723502708472266727881900766462820015897295541759034035300335025414048993864290572559609596028957796633495932532507077665575239189808860860813162330672165396974124325878447297092835147538596257745637014601813212419266998673126856521753129180728331446928614041599323010909060407785763316221744403470100222414997956019856693549714086645277257076751841963736475546236761350194129263313612324127098501048403768560037036136185835951821509998966708722554670912431748485676767500212711124900146631434858269549987392611191741987802078340706792519866879662656802836601425051592730067171287739884599166359994405173494594947509248859103768738625670080879356442058993793998006560071671948493830078409122188165143726974195809674649051072268607598412084110738635230197631587277261304406537791103833430007408044035269954798635120206165654828900546050703570720116737249276997837608029769318272606030534688758566684676268340560878896887146391837486182503739097157245937432897119925456175750420721110634451551440723215924979989302271309938012260000772640102095443818946560998265574017469555100305206116879683800422534636379504261461056806812637716648105041442513497776269404360855741576636324374475590809719315635226201313832274187427367450664432754457320273613893573561819156497493622381352684176137683564620086486987621733759557103285250804846454472515758697893507543776720174803535758234399280706345945451939136232892628954647410559675094529019369201914237327848418481415265768508690318428709885849971364262667437369893947226276460701096991106907127603429788146164402348525249448709492281463436935995498865745696547583128224774549743572544284343994756943638614568286150870561943664673182312821420690108970021354945174024849661320894063734743135148946298773247899398296246176634335196628718858303805922621392712037200122646262015621053007493987150052896922401029657338289396729797575780498355288723373119873746039989619798595132783574786667075896485209263762994496485664465395970375918521693290134816253780051841714315793417651125304970822894180769630240666641601438921867590147984496861210982365711201184705491199127524322053083663235660573204970151954829052577813028781031581506662416069485551638486480532586379138765225300938351397240562110687873324843409850659493216482009781364408350133643796672241002779374262155055128532585918270779137036043143809296612806096472789379084704473176904181816080936236219118878407003325019561880127645464482416028106911575899897841856163689760868114955701497661505186265013257372004711031236665831361669061674369443612301677689289783227482796420147967504633273996413461269431421912736229817510172334085046820008673748699465600436156900520668891635059016537132717410217232450195984072616202244533163225165842412528702575179309745125744615348105166172385556814880346581409808261256102978745262719766581462873820486488722971574238206110308056309967933951619532948196283508082376299111559656074059522131461279209615805496688415414133874774952358184810390733752980235540870417385463907681970995998107189113777650752634053215385579676575364286322666065488473208245910559740367992230185634774890372585178138064604119135096945732843967312464531688114902420984918592927946857300984964603821868421841386204375849559162560714970386828297584167326151921374065773747035153773950687632958865136240673962937108168088271504215631991741941760620450040526074696266347038500955077717768674883133237654619346764220349145509419485991554391836618858828049994513813374377319638239419600101036605961106309342938440644308177213046032671631758245834802305858240959505242510437071054480096229555856947055230157638292268682213560149753201139672450380496514616952742080901138343251793399580290767592718938590063116193806378972075570365045192807518753889605673746272776728635466907145224023336579068231406153494870949929084067030880323109942451199133613595478640975982601097567487276391003573088469714494079542774928666138793483961532359365469828825843948450744601025008601016931777074009375175628755292813545171641375209109097523708432897874935421032078828219147173904205236949734170274732295577954116165002050244547310940286128261940011377273376944679985644196548494194885540683932823218283393985122927227218737357155060639885919566384556698219474331415334903651877325664186212304821107838937727567751854805351844589043987954416190204294450840544933325427539840919705083974171015815387562287109463875442465882525791406874639102742231049301440329897218169597140759471188480294838758910501386369587456598932656653795307258488360134715896009598500336514841674997823411434223850349067714525729871437237518809035688999432126324846975768497894495125828145778417878249085236212877800664518788496672261334613965878554041451170792832787641993265823890185077798415735207946615708921607848380546198406140361476710947616279259874797107617040508774942073277426786200198657504067520488650812493622026492866490888933278035099268402268716026873108069567278519241083271102409317792521728603113505173319113266525190771792816550265697944727628632354665606438900349147036929343385224702217871819565244602101737997724600873780860630700216437112730122928688874505104414577095050505240247886710873802445126602825864831246109644530543010927551891520760514399574741507512007661659392459233622354367935475715922093474815360661336230526243029411922439481124184279246334353416002804471866953066059120930832607972632285917957653527376626785048130843061023266095716463375749649509941310611981176108970011552806684967978471029931919904117241903823448443537905982069050023144471870077836244117163042624511150798003308092277541155069708350010245214343328152551335056778718233793570145508174037194429867447959767283521038537720615718443881256400669973701495985502666218352378364452020990352027443328257124111519712762765679822331859238683797917651790492164754922472295529936901537223526149517689895240632499271489361033447949679285514045551895113132101598729919541253852697213982023630373077607117367002040877616341255929523504966370173712925278105139049783825247085146360762036822977294644774403348899162106814914773378774427445313196289190790991924315337061857327491916249666778368874559129762155181663260315559976839460781992396489673435002874066291412669453469909661611071019655781822906148538570801511352966445049550146237350137142866316513713658632713062376449216320739683544965974102729947823870423355486866550931052229721552260332535379947828272486803010209141074716131121917213856210310695672136062777476065326072358425855012835213902752582798218027978860155080528304016450860691233411589083094733345083578236331076405203186583146349506970334808026207590034473652876264584001450675719462058860266854615447396883595419632212075475175184010479423574842236294299836449221910106093204705279641189773579067198644544710836938633122096358795663467654104876570307077745478201185349676805380445999155427748981733782297594402833101731267372287318773867562721302513023993369717813890168661815003378844404087531488992681068530556019659212428809126496771559565961280548496152629916347477509772407330533997358339706817332726577134453477161822755749706373959531742463190699517204470715173496889797452679403085479873026306078284885549617380950277160522576628720036554318398665134895453296206273902996994854185263022430768815424726853165842499915421791684611497064544894691366640705192619930519442397016188654202265645173824311521681092996983059340099916586658473149016822765135151691998367405667223513797258607532687696364769340226310085091109246529368397546335447960366537700971323009582591604043260445367942144269231829372585905420362659473670405156795112349107300229572543334311725995760405919549189631487314013679215123778529458078596061056296663683816912301458001968379638403319269193680850423060628370475700980230960906840882175001225514193816061781577810972331104899959015989187848486434425211006319865654320683613574038628151349396632223490089980503764664901607735493662834281938302150406338655953539933322912889775718990059576046626103124529673612750316276480946829143609929885612661053714160384694048415853593500149502040144749921448731082304043313287235757817036795351785948397188778734879467612145934753255355652172610407677717360533692117167361929199379551430002104002014747055850578581758040303129350564854195267532414665566005284094169118707455161136710297336890052911939700563811344883264041053085718020300356648106737641151504251939740606780707087961813805327014768175104644608995136890462557691748962593010758381304019345604910906053295054216436891447057347670292628768102944205337082621577602910219578511978248855455315242273002221564365146460190075723988212983712501545236976742255764020943051330447575091391851508333160833916203771539206638153353086465109511101139373861654320157695399758553746718447094075357170314293913078322668176906545971010198948904203127960118262175650758633605300627971528741262339427793047714441688818986013122834199429335265065419187466309501480975164474553329122511624745456191917910907795547897223159700915300685625739835826805002328127759846859812739790201652652618033077267445170770400152601750044361725850180481923461016634350400903165435682717118122226329202458853427318341015877266150259674508631617734471473608306167413214621938352344065386153813082514121863444357622450472427214486644437180660781672378407952964189452327200747976256132624657095394423663899474980489594247943277885582194489447536663232451477945743968905739355944946023062151366286394335931840704766369679093823318716296571507069262280719807840809718674813666472166775764188585299040413387295327365647736788379142503748993282946063563500392564139122458392872325025763816872035050559178476739770839251089978423783376339603418529432000927504565114870734364926445282959207662400464722229953587604117085443036420245050357361812106275516748753970831771617579543812718260553157104570319194047512486710811321789270524584773652529908313837022943706898322838205235580143950494386845210815807857022437358495541373901564177648914912894152184447127086742628898848313854200392402270150004187007272556237238045967491111060623311767422532957952174391874425263122083704676449844631984500984137857140543673991696672392228721994061359751555303339084063868661097197023368215794593156405150856717526058230179759157636971171837650830053701131250911073929013828582427665252910794008866638557768132674409641889464301472590132618374571313394625105732637672659033199561149815081247590571299737632264502447852228666257339881480676606249501551335780656645292451383423509820082107791445081838277068796982639050100978853241065420022967091102409642887582550177982243218002032751284244354192870914352143336807128488807086096081982651925639765657184606259749448464380285941708800109289331933827784225240710583112426964275155906597461950709308482789669380993589772815315235744432639855255283804860470119428241426085342478640929416683574026061040685372048287248427267718920981343467665873249272543363076655036689979915057138043660733402135034513824337118728773984190598569150207778329587829483722252857461806477741078992804360081304767725165403096577684738651804907197995487830125056487178359076450956586073704162238084107637036985693508262576607344326398337624046450773145299362255270915871905122908266955208494826503961554108505157180655926606184081569880149839198593180530560855476495942955133825940910179092083205730775087005635143592812646674137303258683665836077752041780691738715739897558489595433425176303521107127041544473064471592331121781883115005431454269302637933912804391990027406508887674876262564310090861449235955112313856507622897387487784139347931318998720129157647920445936654786763110664007906495527467547862736296319907961132499189489530164160111445318655520824838034227270798056993905705252072657308735312773468197722991230467847501115564297449518974388475782036814659741792287110627528318927613281871214038840467099444993146111993430338060897699690976852437127089476218880200355469293856264965056467463570296629091469478763800938343322593355534692619227553047626823848692500138209264857247299704303876890394959115159233272170800399020169468581904384731670873998504841083308928272222938479904642967438272875909850714527836183626345180389253410672148705269180501781685719859858663802755942794118985103981579527961311751533702120091437669156537634055898229513192605387400066739707955224870642549593186547371919294345431950025527903961638102380145522289594309738450960585762353936730868092705009547156845208846394755542263863438327716652845959955952168619995674912883108635658071962401157423375149538425410557165636051572115041432810807812013242224093817613795043695590707331037382161152265911445708824607761172232065700207643723847004347731743889749635084526359179049402303632178192996255922264875217581193939045667480475947249195396401689998798203479570850630729103614021664124908015389853020991698366028017192766386084704796279804701517308502743042755023309970089155910806768108315942250619837255953476518109340004232650099463061161249636193374799654892090461719290873786326164055693790125530750604636324544356232683516987464754910052752368057364999142471665601420764822281662788648110132188391175696952267941048852446772015581102284412258933923491294664394574271848954393203030490170283070039535405831000283900292430014957947429551798501693570964727375664642148721854628914745493895724772528561716832486108091827574945542335644786568640218564789203738008377399302543165685480811019603466138346331911199381111789485304211192062156371532498653818895548770473735509478115295913840265966135996823676997652149137838768595981535420651539456660437560432635096949464995091440672882552984155461547173981910086066143258776618883464826746643326566902583472033068823011834841795824276596991010213117226483656758105006928415152622820609341401434826186087888406843268642087349899310723061382653296129950544148854828855413128791230426023955931873990787171389613619268968681833167852563837769584092503784229554228307068902080053723860904332083486328662805454578027093919522755491451254796523608850462796499140694349043825708032355576213903132043522116432564851787768155568280764564533818299722790311776152526879004237229988442787217656800643439219462664393314396608514954722226104515953139844402707077448179996556175668824649239430023739158946522932369271729599059765416693854409733116512916433328082852656132177687235358500365875638677995809739466427213868914892911386792109596014808277868993154539689747516179663050179447892645415193027579713128234373269224086599213395777407044565862951520835664085343461434734441604243024585896664283992942463375054152807735570300702926368596625768261507358072247550754381355620559110352369659906775454994265829965278203176676724797888314063085245850451412660768207378102595067096085852173771996632837138612107880577110427763688919157438887331988848092106626558070420492296675185290766456780090469109745515422674158626759610652895613491503587664514845165520436330636719441669969215239745225203660566454189606446679111045816580543206304192515579791949536085240205281746152200938851022021989453929467262439205005115204505175403356001149823071330086363371983546724330933134134469952620829446235821425734829841139864802640276354305396948219012540800490604009293119419707977013808680834685216681474988270333544502584077353104716523366265882647125778279083385103006763428811072397470084503283809602790060775836155843249393222893825254995234410420952057715190022515363698992795516098079605558839214287850943720631018097601613340286890008522270143855478903044434266309992965035666104291167222805109825818843245317041735371267280888649274462942293360630989967960495225033557533101019758978766277363231203010133923016524941798315977793605976984898815151455980803358537764449464683179183936794655694668224476973911091264900123344842991999316624228455052099885086304788164221743346018020098045236292878513665441189969158298244525900620930230204881558785941498962477736574897624406509268217150173735805387388341772154328780163573120258660974253351576664411842591020746345285373979009661444285068890148922309800995023047524523263929672807430153149769872876485248059720200410856177291273436947426318549872588125061277533375141962134505647353074323723446675297623855754697331313382182026461869921750935702919597880060103493563974991335982553078168188878082266104845267125941750599717948470378402490139940313458464167765004951540923086296050894330765953283098862944334451712655478254351636518948271296312164673177720155757493373868964044487610738648255172984679456408910724635433318571342552504594759298911149468993994921130815699505254264508995169899174601286995850393869798701265331303342376074699052784475998916073683976177336496443641687706404624589440985179749209888430017427919674532029999836812761571355410907426598701767212637457607472001344371571672471313128264394349518229628014334918870021223560059323795310985119514937124972799472527351941330164393064020471022013582491756359822447020928346897536578394065212346995815741721058279773709569978335316739904548732266305530507806167866755169236109141492568916090192799767658816409021631731553973987538126495689775815516926384573208783635906342456219364386723663632655804758474542555898327090949752341244101032992037236761157249328019224652049052435292458754636115498570471454031548231861675041470322789855364461183909415641742946596461838312555023180253717756079489919495229881624991585021482421572346112039902379016571869291158829375170067531677124963314896355586566328235186987449656378542612761281001037840915274581886433011506243919501508279066618680223915456062573523422631827250887689803108250681160343766351175961713604670258667755955044912759061396354459447220374368940082794185721390688855943454555739164084187287494462331040100653625910686341430658936736111942214948180120677987089947784590552075217546306255091770927184407101813471117294462893227742982578752492117870106407715683235054600511728440334104799701428621380825879656323509865476899818587264526065108059568567795373590177264187072732760093146777506402432210648532688923143428769901045371351645552710512797614084639156309870908863484094637522803116326132005045840849898394991068120372708198344489444125376027334532085572305068074692306188946116473779725310063179777957826834716570349824436386089510777185680511552285430548030899412960679974425640269955841489759943337211789304871544899242500449594492659730381637251953183874268150656711668533340492181400759956280681430656217051807612486802397642432580530561006546806996782862939836054140282865561273113110771604917762672636244057972300854242573075590843772399239038877415590082995688714145164185781716674075184554238597845799450836280983424313169613382856091666103517470649643189017986566148912741497761760100771945834885257081187451542438280756259467980255326915208893033328574595101265276377738333859611691114411492778779587327360004957670967215382113933016601790447603400516189685393691719457061856826433668728120578278693656366625591665988845400415338099326288355299364824136280475445203261796483675836269170662405847617011350425070319510849320581727295711938007864450243549470737690812752651094319815208673218301191677670369435630716008535896398367453004399367979253102008368055958916620960172259688052198930662998939496864669355520904617154896706939279174868314359404186355332830317728639782032605799688406655189648902661988606644253086135764778287198060904093907122820410757639535084258113864069917275028652587705006970976264318049532988885411285614626998303932221676959788432593574954343004671284169248310899696818585724539943430764952195845327821145618509056100836604294826139269096595017411903121119287551670589418071019497654361248157898306209490014023458127015535900074905057540107162853157074112287984489539374781970652457354005072368352614274776962995267471544345658650195732411982051931953084859928149956412166828617096355248281116998514660225565525123265864139662967367634538954482232254418906974728875052897437721016104235043838778720356879001032369219695333646982733278826687464551056670663204126825417433885624731630448715606493011920948743042274370277916490646003430744955853406065646781039848003326078961520618433756703665014616309815254195471235227838998640704090781186257677552541136684161304665893365028570058853573467331798472373914780320758536921397352184290217328125033315789924384321259626563292578304268025735276048216631651400870756218187562161719271295304353566312260100634299475623586296325071723571714119536206194048295324430383515355101183937765582387402308913495934087287375895245460464683720386145146414673636417177742165298009365861189945215175582675262399748810381085903295294002882483955106000414261687214097083488604225493268002496934631505315128684998099721368543040650251224419296276804899070816836704364819923176268736309976334608952126893970811857105254247182581974472853118023653339481286707428526056649485299530779569948340717950226978614836132126428788856970181578218550011737916116379123054624346039977816244482532777640125481404608086433812955869961609240256378948768622574951971470983753908656799202987750690557095811237047845278865832748660557950137453347212729188794347144342917345675609960019085805328590190746020398979989011799132404515198001957767993334918610472449556885592333725820213826435408086298525648495931773453815929505258861273784793370982910245044001849850592970512035665908382887590521655114018804315114760213539799927239061325689837816690800844601357272529849020599648324724652735550989184895338624901894132916367145039383017208751401254758026428790197808243735295781323316370884288146098395332019240749044369269899421176558955843993787518334328955054899664042574118292051111265071283459791157241546247565362676267653445416521258511293035026718843963005059342479210969484359673647709350808714167892037975684846185150588836367914613009002252103421967242713293228676326366831599605819328601911070082823958985043413209162848506351549743830108230456924554703898875795267855193874706445081177649803098875197016429015824715334506929436335877073876985439657608999343203465313300049964629905818503971687539480342854528114256383682131000387710256032644343794859978443557916153619063788770391898095230316486394910933039988822636571808299166216092077259581853226855556825371476671757491038386971637112633477952983443633397165050231700046077907874967994646279713870149096432465274069066914010523195027175647844311281920801994065232234696328330614082044718600780149510851008909465788236694338788228503814842561850204399551094199519820638392254405284054762685994009248454700231460262566737029826338808638523794924859412021506519100555332016461093276595811764618918893430431254272237899627037095419283892496715299021191995338696523227294878363657641813655457935245192801876938083540326652760967827458041406447893754373661701926075311438623788829502577722983339259162764004851800032806202354358202627033565127165631460722042808154531992265857308518623078519278234744212217017045753764561242728675685348923302632180205609411637575501281468310499266080193098582734999446039771673672691865358803971989195466339610629279051102890563432976501658737947591102564722658574082195421783662018359032254738953547054287482134312613884617820358580613243292267141607809346600044542602116588796146702480418746860549788389246515512258988036602777453871404198232145471104076169362588284356071137088060766270409742301616624714951773940243536659503522014382300143002050494716288289190181107970523591720346738870161531365464474956268137504053219685077234873255851953511889126858793750520207684885158049879016441606388520681489549364757780683873274900016965134261817823429439332243543483418384178568213851249510335866514106842451178965248712875916444048558909423777664705685643074375750526227033849788561921649445990639848993621498345243642275551194847704148985510359220811290357255107086801673556875768033172584869176442018273890601395029567745851331896081123890215551952402523739787882855121316639631625346666863594043201433063192678702873302737766911770914503356864408847172244307648427515793032749371295962676743334546267764194408694494246053143703554742744745338341355076012412755843817931342184212338989930615271986123393683694596182357993901097413395740963095559196790436038751064813948642583618093661970512584409511944153588845939421099547647937623679354556331152736325932247979686854080985853578090600986798331014923213533032274498977674035428881926658928920446280070558409132214659179412412238283766403858766755575921522813164731485474812174518525426562785023354223490786056065954927976971199374134812039461304387415201620227982273804188701585280656128877633589747339395344856620057492852594326409991647429247380010350614793541416595250339261007640460600614293575783416731961389011756866368826293271141985078655069437401584134435871920910103434365744911338510564048758348272254171455613383754155605653588684290537205384343477500952855950992682236462337047182470794782854876556484283620019435467704016247690134867421891460958036870230709299559709797489537480875478247718416731593182690017991881883287456195431571150506171155908360892807753964635788442867921441516990771846312077899452463209799278170691649595680495318304859112276857781308618719038140068174739308853180914246321818596385632553003051721186274532338292925397668148897772121625835016890580520362996393176088642688191195544422705072940184147122464349903049072169344612445683623020523034568998379947238252415620334695883251273594656786430445020259701228193627223439799632879712170080997073296766908357460050609918130837308481665161954630577546149946442345968830858969954588781264983899374122691705353639414198074608389468869211037771764104903368668483092211514002216476323338849785273830453075408825069072580986144100374824547105699390759418846306192209765818737193934921175055109675535871345070211027137057699479600073312941536743265023152065678517567977702073494380438839299906399593764167158806973161998472217860768870862564731881940332168432789125011154051359535806576010355193998033087097995860539502847201009010119450921938592736131875798309046125367558138845155533287955749609392585665287329598365061816611255885073495902581848726588539596659126375028543032048339437361500278934004106631319822437738067948505802419946941409625935118545583797444168004030444270278241302367663146407593239700076427195974501977528104362339513651158084767839355763687909511550792021138253819701207177081908713820880600949617562900605502275078906375311518660200278833809865575229552947754918111459595985537503426819545902904644522048201923408683910038499932574737899110329117062528829009291721730167086827891694544093320031870781635359584286531222567813328598794631608697098950710639505771160592516137113632602495416426278148153814579066208927749329738894618232781032679560560932876057814467334523069499585260075120825261069971145766632242111449836385190949967125424398627816217244489339185081047433574850638054166216634395202474220754313992818542640975075564616938227708698358759222362217178217157270008403049470078222649529825565447132524477951711563993636672913217814708970543014881371189208136027052823104353285615354283101375497673740981941957434767090284146718220265471603054842228860595506968219887310225867222448496000963936076010876735608825106848957063003760912689077653317194177754970114383027052567635929897910507271972969881927196170247907913144492879198850097996969100534142176408385502902446538168238157342365295101845952387088082539066952660251984775529980423959992049357577587771597719167635348830418064958179167198835294505863482796808967063273613371644263210663189170785884118702180254713044543065893233921752977193064671795175976988609215612065853009520523452047134800826345828177515346087035901370201444112272537998727662713346606714659849595138438614737993905349833595403812032725630893562933751048199659438827916639546657215356216709419842510726357287764871969213330402941430013165370575361281887400295439724295074581835823778171334732158345664313032340966333086774773672491103308046318161466037930799735286354741170794935703800240540847256618928549180441628096068391654091549904336206311290049633348411733561764719600432883325825095884534411102326691954942554162577679927693891223862943035363551709766715765236370617849345893955889003199901317857305507094868098098757728320644478365253475199560796941008883857822135021619350468191967471862724898716247724160300199494408487994182409683708490732213136664106147856773017870580577456203708860887060894162905534949671281286347155773301495627411117735589184351374219709106049475768338500394628428635586981527065716778209673816192429831958807067862554008417982609169874495713619756368627801304388769063700778656613513499690193196303452286979955938414039761106584189207154508076205167644586442423989903336257771003727463969132361710196486046020313889670989473249515033451905225505569836274357116083299493761510446203379015419876921140835804008421166405534222263582759345805069117127466281192683414278943444498055857519159850409873590751629115714178180867583644528855309537283093172230671867216989908671247081049817036398301642442135773046600239673461992314873795591751133624422801789900967672379735047581779020145479192775918218880064487428948512469165913929339745289697230193152775601368737826169622538619233023927170902690513739151580007352288316930771603825900447994719412052222598505506239120740661535649142271950313252487224008145847252223895009320364939805150021920810800395323602269023259500213103881700984652219093126265258626515653712331257538624299241685220680823403446729856542962130252456741388883068138948959054230661084373568965794450678116526926215557544080401586032783848702163852053266461288728554410375551107659823215825925980256932147468888446150814234538440720658641194779542508580864792561992163178818471721686472516232037597941291662283868351101045273926655669139664236482823295054263854158644315192406725268701513780724960726380491767630494656765404894621878245001573025705398973018474716469345652880516048824055483486985959227613550685191691581025294594612237838761018268238854488301921812053800054607602359794932631349027037621162275542947524581024990825111508011921972089225614817801071653968760253449202460835595793537448204287601962884001769013511058603104047744092836129461213171015651404805620161269135923560472730376226736265372777119484998764030218986632540619593755665756458956237270739142236924074644991798974389649484620126174744527287182317105877071308487786428295334700104405631330275230032851323709406367000068188308720911510609639416054453218976688123352659964143654966029354447312688001827742457287310015225406147317566394497772865809818665621711279665649591359151574902664887979348327038045521121472098433891535283346681699347922472153459613706356088465035146156438743036785470654979293783867175803324214343459186653039176739148128540611784025939669785713847346449438860819530122803981861162959565640336057505952300286595119272319933570053387676786756655080962626320836283759838622608061743842111003872956844776762557403568430235060670245878535540366143529379493619806533165263802093105065836414727992248291129429480902869605992942046926072649100070169400902615183400948136866672713339116112092152526892864892327589298702429801205170734771205887168187186060772325852647298598027759295815341965899670953323437135611864334438100825267454268026024254483824167839989037522382611137020790999258564320010748438656462053367677344115697655108244319583999281793591300661592709367570736208277111442125202870418385168001854749997384726676553730892827279841041313342850360090219613874535680379342967849817771626024956031287476417737763518429316686060685898372980951603705108614050457585984877493245681532898959305188340782510715231622045794482703620877224028121770408715370724827746597701163293311802813568819353766065165438442179582242906308269121135453339739713981876220547871691405435145006340351369086027171932769702688200061283865418014294331519647688240316203935801089492164233068653075256266401986742357313445056175011934611123474862151374844744262546463785653187900058704485181844592193371481767713696944891884443180503438609097035567709871708432814596000719902928504759858993522251202104573179808300587894616999961979402426438240806182482579121354445126299945323874677787074573434574623269713217361685505197703127012600709224979600589288083561678395073985009410975892868687942315019370592838694691135123256779675476059336790093479657903669870478497334697772717577126251571938487019950614145035511194620499518001134961695234119632431476448875869996647799979586380626372803148254803559833625236130613458820222180065569569766695936131288281740901682811043603194324319782001124159267739720974050586178656385238770074255010136548374554532393896899886694787390057207960409221717203668078790028634228588351325405812612419056140224588536043919620572487676239154416199757629406011217204394251348288820019113806027037461778513997813111011317733795253678720743359231910145838924874481500399646679219443173443134447600772517365734714438335188009180430103925918579215833564385978666625457837768137559430791228729841848810496303348063632083218897569363009456594222366323962806053134051641635606998533869506063186256282308283196677124797116818830191568316447498296308167438964351941689368415860440417794542235756211958536100444376364894834144618137910366969114941679304053103225048664220049397538997782440302360556030285433184910242909029041384596291905295738536930108100125806893679610266713216043487203630117809159156196949445213861977425679770764721282374709100321511700642804149039638480179869277185532138392201435016603326048462798711282628485036083888458476308614167128711390724663354565729217477069774112402360143403257800092307099273746571473928049307661009063576431811023208689524203750739929197710625299202717392861651688735448377850394352200468357823044057710237237827700935343222046702645124713203909442523276362136365914963959587451428749143470460689873447037303269243936626346830306986685882737976675355587656677552821494476609917007168745298306334046376717764871281717274495062037621327733955536016366427439285796847132727271782831134349435547143820341091452666046749929687667194239505276040478301637059080600769584830658282603153026689456832135625474161964472023417329673638275907631706524112043374011150512460202256319329321942335305688142225215917449264474562203476462587167944334850456559375014381447296605977059829931742624668471821695310404780832943464986748640665036535642667510664392486363331255681343292164325422601852919855027117960488239543033072464381357496822058533479780134451863261403294347318964956348365248989233024233661284893033231138507423056644465881810086101470133349478565817938972295127915019995184362118690924283690022894180720596123772863051676785818154403038583045976197975404149116511315477548103620997863045254603947579414931317971213177246231340916178271432545352416633084307871307383991912388011875200671241917914531567056260635613591689475113622250779526244133897448890612813425299847096202054800423928082214935786636226579359070794889668451691603038175221418299272345261064953224955396674259577702493485711493164519682294425021382182919222925178724301117983322869405215740590480393768640351184006144973922794831184388646872762526229709565296956912791935353867901014081152912135766668394731702386307566430658855915510931656642130586494940801499013295774910013281932145744374809278354367386086095369082710549847162853498685255805434528947931340097313461615168806249836106179217030220048168167310772852821622809068400030037303167936571111445907444213543422280510504334527360044379777841865534834753124622111607541128388348963835259524391717811818216943655405007661590945868446305661539469145730402354768781128739259024866913013177502639130054128973352444642315521236961752134690686074774513539162013325716464138828680966795218085631914952535576989246060074685192601890034308161527464173260783626219457065505297079028627591852942249223044044234605603846694498257421105029942377040880716321345896903963795572366466150690520392194750869331180985373424600799539423401790247595607226870874083526197181183666467542696419339883072474071122423084839144129098661870568307528353223525199479717440891929147919715949407579771112397837484033814711224938955238565870387028771809393392107192734480927271356730312451237829347095881969805599673483291358093483010428797091638537505901143952923615361863856063925441157924972982700082474014837239919865382165586306801865681031898235457175312653078607502098227442818404121677303095286781973778451875731262548453429847072244604972306810199771151400832035213846858214889422799659529363269562726292955919601247563299632741949633682688209120678331805304853797432777192178343111035246464345950671850754419559785047152364736707676868718740511615899982034403307232541302373057264011959109326190593288123661298835981537253232573333659886543920524678036591244061290886178419738302458593773576337154808790460387019309289245010682977506016714000064153472257518899056833536209469047809718297165435061057606001791147788376685668545479404103529894136741108587179199500688218658697765532516589601661386554864548251252460152564036914776722340068429626427030406965306041176305215457841098375700997386697189575107654890512194802080590181106592502868713146290135795848897903177554331744798518996848303211799183017911469088394477888148279359290562860068121483662218162969943663568277989247084949573338452605649272144785717365153429390881430952548388233046545626529537062406949122089081873000688445184670842864193795656779629849746157648625838363604166508646941361806234041244705186599891924064735487205181060378506699646188311859129876260164996522679279862751744675119249158364241744717267691885375110042637348887100813938710918925972623192490339395943213386610869037366417124329182484320821174243559829023032784955734676373201414376962838766633456218144046021193572176251722413606243025899580325271580106212513518464144353597146218128546589954350912907382058140716794602510054098089342860391187777132883080696678183282525447526711850796148134341019475274683539866676269256657328587593560612860988747324547192621415334702963084077799648980150558154542273760186310968429543200967831336478602428451548532363823319533535846678884191940706042219590886316948747659075596010893393613212239417301525512579090086149149385972040738787743664900944298131418533521162829317287932515708178350040799594330880315590944574295047256305729158537217193451730777399947185980880176105852365596158591843698634452699224233134874936939524932940384268747527833805764412063005340591620948734289744080297115863982468122792163614910401937453533425096353227210560318704255733623264056912020232792155132999807053288736991331428501311921201907328855872889908230428674173180059373595841317992193074914181636986804457683770003093934158117866779086830502811689211419286491377944975861867367652144070174948373699813824165799252202719351290586378965499019913099448505769279693096460466503921906491253384813259884442747702805227833088311693548052061319808626308510098421242756664974468797134390493557518526796476981792194215739879882075751005307721694795282163128684537281018219832467745216888923922645155900256475999532511581930509957114575362538881024142517381374997060152242381122970316122722707221293380587195785050601934130148281823649270392024435231833966290593548140350376552697537476030696112807927078563973347567804291715165299464906504264885908012153971541100197451698507262655816375852518279053022493031369359499141672927608693178806849472049093911333140362920747620683507654508719909593976166244859051497164626662346154879903367906526935042868754039524224208105040112290094870996297870483130579541339218078192885107703077690420959600950235016567284564596126988064791667405136875825683861440530048835307894413880690905964186575096197625883009319391573723113489801444199316547843511467391534395537888213354897459026851947930876314261813980803877983133316845733403014101394270183846051310408884387616932172131133749749092884727489715519938661826062599595530653938048037221942161947688548283620654957658619405726762765472676762734607433618607457841721021207005669769849450107432969245703497531385283217648078193745610994100894653779735270752808004412864253691365180468984804655171992116302076321683455824185845920275514687572317875533913798227427297338974454367221898571060281142401075910169206502614924607364756552427042471527297738637626018330011008058145989939207218593622497355106249245338986517230464582871677109938310745482291132009937610309860922393111200180938672329441118207322026020816023266946056551838489710428907155716644168240135953291632307476901368717759173192356395728924884500070995604063708935228067898374397996292055348011459798928696821291915264591657666404995838700056352748077827941548304529094281937256927066805759214024570865837677077310436955533897661042854164108784870299931743147801304698419225709509801880296004413232137010044598669749981717753662918446131036605131215226877675628612791000172138749578181143719998363699710558322865605323062267272845575042548039408072326666122531859555020055740501316468471410029609705777612347545553635041884100328669094250839688645236294173531905922335938434783377692745431899757956825685389103398060735664584653828543409438005340816730012046136657738952317837100671530233751286248805229958509043479994023543399881705545853132512745300358511067930560922491072425351379300816809729451335504658543408538436423471246000189177663503495829071794813864795651612082489922562602144096923797375918680407507680115939377909919785287501006150073803761317024778701413561317573607827584515202505996047363378988403767344488440952551160793887134458888746401578819656734538181136318783876927731875252789838275499584368381755428901699665118834228340532754022684589618778575492212939913219657405458886637170932629319767207371294500959969060857426252767910827513918114941655931809004695379060166456982099578780503531668652501126827708587648437034192899812577911762677665394593888991382226579354084364709078614123578663189454745382845625892213014556623923689216676250442987034068745792811920678795570170034215786542402754778193425658334613917700014976236906577350431536637784843227870456145633223648954674424852301498575330858824835190583779496386259513763722001722990804724384215597204296126288558788122119297448728134000271608851017519067771937014890312095524021569048493030345255235583665524603288141789838307056911059726664519765382275064825539397097333602966037058919661404824254348588702105119245330032550961542606617208927741807956787865606687804601618727219772139731055880910749143704708968550654946816181383451262500885498251519005721829232986532827351683795365092179791318730662991346240774041831178519668482416646748706144456110320374809805065619159629841530581202194657672472809391861128310995436753921894312582773618137064756335064118647050991954215382808703981190389284720999398002963194083308047042542369918109075684667842391209517421381373741425274300326295731455421584992203791545710290744544085814997368540541519463782739552551161331723195572273391193474484900301657549859203926381238539296892557974052090129867263152995630520898261307330057615163130782695177588138555949186324955458415332680126512600829763455301728777354391624018590747999546156938656733386930616838304763287643665771545728212988228134691015521550845092006502268629418901892568403881591304286285925711684233783506297804832017138177306796219697938932898093029129931491752694325577873653836730836093659138382978980280636755578834612733966985376641453248667448369997592024471066567783323174894218730534396208571253542514848291888932290074880751560068995352767854630442862021085678971067268369089070928845869465339735208583677803134163094346916570641131481884955448900270854319820271101203723835511236328001590049905194064611590060960462108571292212470572482534995756620935821917161947811732097032994117282958746354338632842512955927743143950455071727609091089043651938284759383707231343221325578906602714904211747067935362478140284904391966704946571217557509575335009037048078416953926146162957861202981646006521253320652236099304586567795029645208976727001737893814860478060703573137826055232139614803023535597933554816388134961932083728069049884857684490636504495531657158676495574105131927640620374249058545603392755838915248245376270817229402318194280458520224672659140428489186502404780781876033811128101271178658941575155857207604221292221040938163631206277927673115982499709986584347616640758821971802840377106128883403042940423104472643197353399871314962136338351375021929971005866615556415862920225523533940633087645905104342579899913996540965952611142030558034853597770804039307265045851843647674330447221739265396967426871959248778381221328251856595068210908676941117254621800824965358422962045349031347385885760368817010116282011950631087121926221072363976970283542387599869056242305868840968791338859275863769589681552555567550417989376857197741225409985216015948794408336449757045835945640503167203857482731462818907266764160393759679870882661552463447000012390778745483828393946050618446515926648446145327482589343644104903719139921164799279997750877792108767584329384398076745735224691036244893333939962794532164950182059135894119258379073531480185549700952208853152636094977828317929027454795538603956468931385272339358626402822349353736331945373195450839807862614302069288322296604306175796556892388617580572742385398951597029488609460474855078529011722579545758892559857580509720767548685873871363398389831138804083210002937177913035669354649108966773543338267880008180127834728439861318386551297462145958218910822562981348883831674419679454131032614017098678798958900726935802605663886022093952952528193132247531661954165916852817135243592451732581679295059669700272623166451249729510591384422871870953520726441353702082325429525066666102235008369986531030449357901631788415692968881693632169395907775423491151156047664987364239665001507423991355390891921471784903711967683466512442470017842728181333023166209420290333394304138842888615859751919413786527970629393275444039709565587661769079399612896559976472946148919998420683106876452245214996487014770711851295910993827565567460916324317265784863445163475856905857397931945496335628226227467699886915151009087141315648693965415090562943250760694061130061947972300887609244454110969808331352459524969880450548050004549648643913165060015664846888859915270984000033123492908247179236742668051292523042496746231767233558014010067129244968100656217896107260012673482238316799667362004386449758663059926585135346635049424970325599930751649606327157128166485914283307202192908325453357444945227659897178280577205123460902638565464387167141523223778267902191904707527066161144775993653724803327299418905939415078398398312638942668922932071746395382520072186815006438822034597595548340173552935899073315203089938257873063198609660936332434941889330289528672948103920783448582794125416173671269799206827306283921594046178744632729251125982129681586089619043102349501956696663055118971641901991549641091651564040957434655267446826095614325132809257262611087306884128510468183836966210034613002357239383264826938542965082659001105291782461784172540845025596960085411138693317695876399149000721913894333594223660354068791721131261650146411401886703961888820493446012737090395206664692058517498809120562308584621062776960943115806293606320017093062034264663320249419210562523995589510358672409140448374314897570764686398993692308137000132804135377782904650249005715655366088546467061381356295574912312775146466779572598236753301982781502226387936942932390736330100022096985143075609898159037610389897306490540840031804013488812522751610644578730889788243881852876047750532881379270944255016710440161862111084703379489409085451588391383079153579492915268736924651897889752388814908153969125861275184147260354546832148916068279943096188307927352698470151961546944498269385169569603463395657287442178158407958565138347346837842423917030374780629047988399285669391000464639086148525789967442281716327711474106697154207547084922763384445303803566179774792376269321267191977695677246555777323267231574414997540672609433145627196391980903577581895113600537878353368487764543320521620154376389661544974037110989468198613176139642332760106962091353967628028927124150680056080047644115050598031139968399716149142041597383877977862304799062001162692168015070249478622561548962593425014638765002303380532983576084325490276743611466329567890491239189413654435433496090493586075568843186436175685936106999278458291308084529572255720043691561889989262133073835839329270081912852048423583963867709367304707888301504276699141436751238912053799264434763653139477984745343487334310253718949760939082737783069274122235212498754219676622020982834077078157004821418806698073862352324745223115333395909436654644937674680502400149228159232947325106487958340609419949974783044524732785112317940067564340539721139759730378623153404222382220772675587275390274632420372327047936152538663765131534089337094677791931634783364780245514005393671433937614562995452966386249587811306283559009267341498764119445228665980536373599945460549316477287906530730852458004856644043531391320508827475464625884598557515695438978259805779755928622739818935504851823574229413713433658910020662325237554157347149328685425914983879973966602137315068984957244748915025627371435249219834716068668774490458887507179152195384354916633283303369779677695689937726579861060096799421650169437703131130700730824820375214136702216697471230138571900492476205701106108376867499582284790418338589134435372763431372794707465449293093184124683347635862953614488008209185436298457557414374507815919000304203816357146536674506283010463574169561711572655148647587175658475699340912551621575049098364556068848843225218718220952087037871432197855603621256288220592360214889374614983277213331334617169876018216122049972428375312204574865235734065536479102169688905435069196416059065987511492378171019759688716789333858121917717051396200244075060702648550937601913794607824694165530548000842238673055492647629759243782103443061593355317076287701384271473447487491637698940000990268745976333701790156624584021207775143576196109372533801976001753938122147098838501349682520523439385282400813701861085821313521568604853919922899701454804631070667495301069618667204288168548343832507028140733046967299990060395833756282883656365750754895286679367815826931856338956098458764248001218628855655344262171128841223009072284875408920874967767296166012617938736937317193192733226358367769439751171230211766668921222899177960924659335991021715658573729790751457030794208069940143685643847105366984059088433120869488645867767711246906852251330207270565730954189285198923953844025175016288116078130997658950449805743482941302968535134698407239579043757895488045535619851041551358246853007436474597867297962577835098914099082502885625199489057141807964693830554762185978532459120487205204721363582708310288222551676712972773024233843088084819150650626999785182555663584920655441975053469614832717777686650397245989360044080955802472222536176360967846156849643370226989938780500667871479500899441542376022054491090528556795040343599367122376573579557090626801143105408768292338961097939422397050738537273839093876015663802846913910002105330895814144186043286326129312303854810034573908182187445256110319403488846580407712203570020789081668235590472782754568499373984801554846364450296148654151579302012026672858494868220292030652297520916468762054777505718804783063373824967524525936123798048707977950496209114037497551520275973648480662311315993665751231328924921776584278045253192347715562900656392860271337130687152536028749351844347445217615485643577930918213663279303475210836756279009392517155470986697018766172061206360651955537060821022966543122596962656063786857190104882236633538988792676203977636777084876298023650500650486853826396652628018689537540040270305094747767994599478646256450455659617797574682233699089748632239638407668384255119926477920449067671379248579527455122002026059751590379798077526952453789675483963770980946869213894404244955540658574351487500177612235866185994174126473235572498479669337315832313738662419801466667403738086998341791196267543381018924276788902793914337181814925784640475341629789188114698750631767656572731321491329936400421935164256226848180807730939861729418480504735979073046690445420640163459682830315177607552263382247051943430579011844123761246211248134062987341942592599586357836322971037472897974741939602277763687340298321893186071770095130046978699709131652781944553515172536951944036107584306631019186295155145606033849843477546715270079572559512824767563855756771072320371743109503458686046284122409212822517491131339484050005744910574782072867840193295395344260058428615354381416473165719469823700883999782406475815248531162572693064090731540332388809407551525844761325906376523315376413961434573939625302871059724154656753418305106549600772489706938846448550134042136302560247022026882703728719998345981989138268159271056370805615023314098986218796150835946950009074469450383470014995795464804330137409972713968316271634164332534841476318138279059408770408148700145993391825126940491787791947115773337295996297923679485511790222536363126649778223729955945683522377263536883731887691382977348973837896941616203575870674922226092627254211945555497787136517195834746672539817251302824956078449370619525305911089375727055922537731458616831742236353283946608865547645137063982120871056130146625959137111140959995539510777315246788803280772400465561703634732972024603145207565645676576457794914278775055124799959896079856324051577149303352285466388016898055258719652700888089583550094518926388575177281621603696404493821625048128021089666830671457015200187551694866190037842304428318801622989801377346090527895588563900909797120757786621823813428207443539649755160323216097268495922733119676913287068873428585465267619330420331272625981203898097643457655078217120090283918653953381271969524562843949102064805212735871646631098437766966818074551869082730141653998930378037270930040618686067894361790918555030652408076878680211134974491674468420127966326026680087105087200612282706590857436181677474201912995459040547771079903181491765698436990106219141045569608366618116625207719819954239347612959738921646807726727479145363319297703788744240861415540107090932336955299243711220218978486480559222714963067312397008714060831015276378767595597312020819185813433386467488392144509707965669583338940613084202780930943119237033037585700811588149933954225451234643712846425087314588508281099073975971579899599927196411079018726944025777823287665269487262579749876821431721001464226799930592807822326410704216653522913692905621917627763872929104267317095832481401538898890539366811173196606141295193671441855160508462539856765186600589342147330889563566064228583249709546496855242065122089151825264745048298122683301085948869835926222347030506480035381151424754142210390309398921380810427200831668988031287731164743830625060329646175290485517866221573373842196976506833321351285383083836126604917331505117774842398092468880237583352739456755220315406542409048704654255340088318052350180127736925246471263247235472619744273517590317692688210066580792790599914030285150023455228180339850330484842636837010548776608633469985841123788218429102564815783950515157201264461707154110596292446703631244183194050083154850327542895202035434194081876261600857310125478339508599501036450824357494607784721488958237749054096328618363814138767747456440943516620304025106769612982907300522519878592854791033590789355467355991352717906710107682225610023409374899870622825976235960935655189721148081357599213491450573300681838817432413975171903296495020308586571866930757862777668088653940149146509276400168219739046168368485411024292706631218356854927813074430782731244785458450612314053284200534021944428396625235976105562772283030061184122099054949811728931694233280970619282425433538641333996578685223842246005112080208629323537911899118571371820092627168871207108979343441361188924255427125185104005615961295378731622843237468646718111999425257085908060287043010245504805550537215243418570144540578969626695719690998618536939748171722032701428072654854989995699260738335723086661250968876866494555104402928423697565716851641070783207140360838663266301953568703946767021254574101465156383750670713330517707495578746332800382579882830347558857186655678875541325481156233575513478200321589469074035458803521025633572956175169462116221432327981538894417945547145263189128168928979895681690228317741504282664653678626869028196088182568102969098294052311699767608440198156029784667521951554576066793899579107641350865581299073889519020665712496708810833528905333149697206559997700940554308154195954909020402914059719493905676793229556864938116028160971908975555861546805713689818210776804900006485100060057443112580036728448032639888831184815513944009847419730283916496936747329617798639968939800361631890990821640040608788216900573991600394583605984317931941316051936215428513917088782624023742008930235853774279076488537927616839946543841362246958912645292690588494366678119181415982632934249389535069761700283139715933643300502700967929954952984074017602098702345485057211254849048857919199699844477646373520019071011145571533345134824792298422196435680637345879869759874932473743632157139697074619558204887574848573646898250611814278749431833461441243361810094471725303707925219019465577781476353124697297809131557165917867978623083756128405203316130205924646204912646791683182681623423159231944503838907151368605169699119695290274604109568986607474177120703964453906910026093811533964746206060114509756090241748975183273139463249043973525994898224882057440350772931127177369027122094415084445159953391999285849427432592243633021132010297923813896797180901155556126452543000149536884675792924358303499405465932923060721171712412299385304873011581859484357019577122962980003683663022889360277378060059296690390566423248526251237625545077243943881031399146184681838118651366723477332996035173361179222782014407382504098925825888400948777020447356656350519303302303776602931791752960719067579408869228229486922793813709703291850093739414696822750728568033582066148167456481363058485710165880656825338880301923881706546236547526605324228185361793724791007881324805567460130850305525287475673131516109427284281632524864132838685351850624256711812347268900787427401294847648712254814346264864054661241953438195915012954082249102920375814887037216663515807739204563162168044786616385428185876360416652723267267458107124445729973125114582987577471797031255635453952699882948912844670344316307931919906828275068986980358114996124762858085613897875339867549395939871044176934221214314265221534154639048288067234484868940666982157053314888288956757107173537546466096836954154726747416325859593016057914180556127806227650586343992589582199798846993900434870109315211823794777711619198538919473705379783883947312531448488131423305911310019477628807934128037781328625483150224298104963241822826318998516504178771410618908837981525935722150105873545565922506359334857367842071981778836744192715551511092801852453341804898256984977214370422908375898995191531215538033074538741027361718420120971440182181580548388525757368989559613135655173827535382942387221333841674955365837790115177766659352550954444792675607834816395820458303201125982668464793423475309542410603461672111891386926984664521831040701523114887333564603247118214739545276436671474846732412212526275861154193413090029189935368832674164928963127370294861230367676289875350504846491475962944139866722196518607166571933521499130750270201028699893166931204869472761933320972731251527712776841416504396737468392539554842828170180595005686553681145418743106665242365254815308791722150876752860621950763876231602006090524398583233220026559408770481299081326268837937104365328581193708637164101180043510362844105358772809729169245257044938543216354741554393469827111239463545817227150225587537519588309899269195003211881281161123975534755673721163310839128100312347909565626591904051613806041798195067379643982534983777257676670187444757263251238593673654989981751033508025355745693488082193812470510206696381341652394454994609729234455529566746838844771730501484885297204720199837504021420579693722881931999685816914103132073068829124251973296608614104115349509563443434642958448428324673197132640164210529468024649483414399919550155127059091970750394450774154891462321382516305397252547398450937572692675895040850935134116027208500584792857406648713588185885331412663630070690017896331772652309056677268502597590208979860682825847996600979638457447561294707227941963920664431271112067158888642597411345335584570167206027919946153572039855496293878635520213255738736884647908652330355713203748970474783093620175612534163823447458671635275629997792084074586030392428222211003442402537125079305141819559145748580521392019956946616909473214844130612406089770052164570716295384845484645281621723326932375122697592129938812708504213270089176880222528615424276484433805489333246243429220118080839328720783983506701789331602990308275965280206352709244772193380462863777796469663992211743362020713067359086672042392294884195379579839946025715858513679415114169671797847154666638244186247463508251497287913886980704187661092228412992135119981090776378263134987510499500108284010647263184364883113264638754176311689245975826470324912237354674100252845902938668566195823980407525359321122434002353797490026967724278363537612011227951149555704472146282598701949708304205318291859823365248419983549868462446759643363903683842409540816223873401119517541430258307779778896009627843565646839620504934854756530746518020095125743708878880130466126174545556813313308513701423588762789733993640774143300985021983328248089811009989833101212467176874521131703587039610753793017127341315472308362298868896142877428312584700208827327960677397438196348681606001722799992101711268979533664884207123087589533138172567552528729367046538976977795831939679191441267173302961636919856337077388044952004216975817709099518800581964345059397954889959179076033320713124504977331112630911178395602519093131503720628382746037053479266891085338023918699015397155299439340391360418768773682219153807702142953619534231772362556114847892195159811516684088724412197639971902795037496778852529256404993468306664561160980697815326574063212874014561501641941032767669682939553356048475791237566834357793288573752838984508661375140261081890640623140031682586997395372146355096019307388270490257131636199322130339364864688744852635195654182880675774886335407267987349883720565183828680624650635377132065491617804040996000549235591376682952734401345965822690521343480396611172070350764011115523004115016260469289841739930646226364268730261961253821539994647746765493896536109205207465905746824978194538085557601349903360750704536476150885486057442324781677572240723945605510846663987499319432443717050062101824380379405005888836740112969616050530565099498687402573265596381946805372488860683635184970660095065285900608062551996172670506000631185079913377288493975711179339810744847434038649033125464724699613975598158991282888196057787319450303535865542488243177518311656953382022596277325777115530939581730671170118327148825307137017131626174698812143230851087584297704124589692575565863526001816507483136590971395765670151030563349008564073670369412415414250471260742204831530581759019088260120770558265051904314774180705645119371064913563954761471620410622435333315427821659135571097754911852564576546925401914885692054570075276873361139656908220998471151901778381531104525500811064063694328854465827933018498994798345003598251194264495049378681887931263426306779399865488138565007681412168650858759227009789604116839378266564524972230350916394638348270369642566516615233402986003168672751547961351634934790739830198493021769208771969784145524047720251036563328626724927006951722558848431657677530170056276859847242191579323571782990726548793099224496214107144081934312918512578926790608495968808141993643332095403058969465693679870487109509216425186082331737907490684662511909204089041214801295461496126207853965162200835973449269588703610834642781649250007613330976370598405167800577171977288160329143634873377284677942440945011533240616369537865821662495770777585746027180168368316359050911281687040806770389433513868738013096919696343087638931264943186941191552746648250329708980400068428352836312795889338745698174925149942450453942097384837257238954273757279989526997748840550108957688537633162564025240987741175453408833386539826463045809851208929995835916742428531773744045340973004859601463014639328711587930511615111724586695024005024086777616617553424279687614623724940923780479728546459869822964748126827285243021224146815394124283718149920878993738610375672398820884075969115774123712881961021422789673058798035077550289924803717144205078805088250355075281292593395931596893403872782602990733610604445296154788662247017225873859824334878988504617144432885245595406969361424988057010149548256513924155265898172976069903660120220431221915299654288226594808489741538421912510540075875188056980115842957776931444200325422634257872795300873550345590747252449882573302769037900772652342410012859415072194024658379785064249817208710451287986800660551255858879775621408980702950690175110429779087403065560933039681964455442451353779663543718087566115834545143471139179072499284630800728228215298450788349517118533479898634228121377780308030022021138860395518067145774802048857337118290894656083695208009125040058950649492871954522854871116125812704812104874749484249009547153161776196092366782544824021167632281671682117665247849160774863130307521341156952040142555293825517285037684969577984500375640567449192640284603142730307369720602027635350454632625428326594417076280403503605046336573066964387892746788130226037931003099800070449314154448923415984865706143841972978936235310826164163497352044641873751785983817246337615375801780877269816392851756212921185171185679441299975719492718301728197201479229135166999271538098086254780277489472693896400797236857285152483679576238959944555034730260202055203618515393932995566433059270626923231120267044948884443289013762390147862867313655682639101642121101386104815360915047710032455732231311557077260769123913982781778531439395481974738739191587622809417423345241917937112982055627355956371210459982019308317391346714858276084074328111010831903116850721938808553202838318983648929616030747020575684381272256738613779380524443395381433205770958536648171899120637779387452711238937660268099051073974593832503793009370789899985114001602532734015967423951936706520281315523881869244535003156216253666258875340556683298113374438701233273149907997390083704334785692702872398497318094645699785443199054225792257917851625055162151112273226949569496434150307432869161451875858196891657966384833433627975188715771566078851997297713548555621242073253136506569309467960383646471709594353513537524562630130504683709954378614630493465584597781101125098903165761394327697125320905995484273097878266054543612929196552898223489761520397724995877863610939727142635907813733736482852961696064954928663004599016326411311141917869977651867302727066094784444033261280483869272331358328601360449778319701150921199870453914518151171644076513812748905593057026521273260438564343280419874544408213019589524351873337399277016713562608809905214610840746627671733841638594427927427542737610017768187898645735274197767895884749428704472789793500191275677571973217164321322057275614960795772303373529621643219444198121112713789499314164880185245244835114280759913939792053082703992823054532727550070560918087271483357052643412798179284294105676317268515712248997256048432962718728473923204140817018732378858369291220453334023527921047681849950456776883571922471635427358204947273528304381449622990907601393381285848163054819877696856683710252039872307487706180109040580527892026638506399830084720411791415098999500045929732870409260385245457548130265526000777894403413997029106537735415650459307671957302124133912989578972671072253231840764326010874274413175344232218930166559048695301947179462631826439496234897636843996960385311317332359455884974969385788854741020354601714791657229777122755527641517831485245502848419391050421647652090826841695572273215539589983762773424506966481266657636842248860637194911131118844780076826367114991971664029482946078114519830957150416975822879102362705014769475508970396415175319174713564270014675554847003804480184281431464957790110653921267988773573359219338397032416652157453421052153340812836274226609071584878884007808952043776810328084511058009940109977023957578948155653414646384724715733499378874022608183615176980789512846699403204151913828049967885742444094991710559075467583953363354350836308828556838885651452759043391994015305734415084099591210242245863314594355245496917122639529750553881396250310404085592144248878384398479064853961662216206448652328219895195065518441032433719469300550462483444438545756640665454628188830097043342723014113130106596659118271763208860088501349148487927882435718501092285251092015309840231284243895372625906320433935220955049020560554679096550367071951701954141102367357498258121328881046897029246855122901180370681597500447621178307133046559146107826661894459413786872492540545258850051101481866976260042008486935068357329750499917256308804622507012380349263129436498091675374693989860039426008296131590468068805824693650343204563063638904011467785277558255099042139740271723802658286557812450911987065310770097158319613613066945086999561283898236139905009351467747988274887403493464592899887538128059481656878147978564898569226605409086669208112577091305411077343062822326290282900488017873357272967800303418386992129627226760554810735325755056449436286727344993022884082676219170718575598495677537793844500824740271470590079954541806201456385273339772736906261174378250839567812665043286541846062071357086340606624800038323985115472882590580267270880463716785339217475289591404101771839118264415621303360596602317147748014150414928059490494148272968341090416139946284549033551799717139422162007076320889493488221893178086880444024785234996049612303440052131363057861317391298984847597286990725568792430962678190488657424974788463925342429016703756611741052056401448960885030631746263016747122612204465087536756622293283676625529834477589577227044887397228903573816714855631588359336201481620612900849959163237892700901947186491770340058001178899443681444519630863982382272649287063151712309798164655003897019844597287631332889895225966776740452330499972493927816943949847879674856797355561091618800584753652886542448446059981224841940234849304766121343464497384893303411931320717301208862382105755842747161437695684816967908215767573546552974147283502717396832229539577968495236968067969146991843999899794305386823498554712441480717745647164045387472765569173714735005709736766684851892545278930657007081166909229588103360795343099518333137115415714743920558368047526949691164521802677552306606680213140728327371155031608977076575709373950315419473810305269771955381646901369427280946733055278266786463811205194839288443663670109571884629607330475958408014253374494125090568674026676299550163532312468835301706608291992434650172695875948932810838467664477628383574606373144446362397491450931052870807413108014343405694871930825681053734379649780760263068601042518190442069114243354556692407823665449030302006476550477670162711241780996114018688349838470331079100722282557334845638748430975422956506850213733442470534391931882466378218620088076192960433615506933574385884536895562698875743290338234898693296263342668626602065915804888976302207182208308006434419977829262488169002836462490679524632269397681288376988249711839338400349174393258325618616457141381161215953427133213103597735273032884128815154320424339035096326368984900125049157942804073265186196328514441591686997629581359884995486494491192465475425598319678445269758933943415911736683114840917783242387319867587822483965393244653394983335784979333838587503818127202630572156966221884854976585795819227726963219332674477991264067364172985488864704343295836058694192625669186354357602219760707301416145913412463757501861197045763695261267366148497942611101241387797687164921178127908012675664066552230342096037787486242060627631987829739325148445416142683462360725648221409856411085020940982971886410971592954784165434726043060642504432162538486287177498403395980595535242157116465450089887195931223851763630200570042985514828145545641908393586653944214927661577470757607745350775804419637251093495964233829980209377586732401250552388509934198950266681665904937737895950332060385067476985619774067982367445199615910236883372420016971700974504620530950618711000108048304087404335653391309087782697281975281923521261156927399302209366041654771220853347194153095922842840214957032060199750060650760923491030180331236190501987553105293577375078725881065825179884615563102387746691881771692922002911180288362954723904246922884664931373137739240437483458840963924679082698038826145917381765196888316908077592426356819995028703526703272636751982648031624277803104162135297510455028471028318092913158420538039790482917849504917770985637763341496157790830852192993812915726603383426665160054869319490965039230620688316974768585894442484698658135519250703426669392231935761877446980288715417970173673841884963312629874932693316910949847413528600284864158289197825330802328193525091438993730185439922736422124478643531228891016882252291887043266086382057187268171352258250501922669284029747197860881042001466876962943872241001994350015932490169654454350669843342515325811530497040272347200573230294118050534843269182000097518001876221515114036942855904752185247658252577008301278439874164433867455980915751957617844613172496658026344960905789288274977619980515670583405220157775222944281988899676984248700071047874267234697260080005416369601034060358167949083411901926619823485460141567026093186491587128227710040657945023806503263962712622959507829047050962654091296709562013152987674788147854367388436382233683122578361454477639147036671812869954453528231575495435685387242408132009712506137442267252143958241654065855615081642508758537148180339381336464451004361033044859516107875016035314332437569493158066251760940647968505876247609392379730714933220839322733941963023522754977838350515181125963618623922613523445597459916183806676671778266516910893718145597232562563879000042983127279793591231184941780642892674986631886336898926809429563772960932073277325397588713174423497238905415621330731370799959207397309865078766053783798803545651128997136797416985745331805452959441240226438731837740678548443802638193252168478605306573227945327918327303241986802767573076590318697524538747005720296135836139394782498076654044957169912458461843016917836087063340059451571295736698117897601733459385276941510702435474069835944697127345876835871524982534187559069182220000930335593853989575410205787433892744370799741564900632269389537042862936436348511539767506409917750068337191060482749969111634786320627272565125639570375769943052096596108561631152058065118393720481670047238963081522042963718714390272858001199436594459286700696337680800243674092789856666409978176552481283005539843444080368509589960006416296822261046260972095397639730711612968802035049708406986984844619497362574948338833940899268628767307409341902524075627179262597470664727822345432949509422147653940428974481481576819366000782824166128679574686399539068252256594899280434566436892494998757305707410824010344063805654096527038717420713594438044052309547616915460652143587957892273600873544274401681599734982335795893220730864921737295574817550462189035118326752329706602028090802249037355200780913694465240245436223483813165299621508687360499308193144421071684589318031348994193783577957173686602363109992341516001084380459475331913126632007156653789552543968060397118023652284366390160484821411876355032285898567804341969222260191488773513513182866063606422285403091880259428245233282167729988094884406714288542617787061619010393418047294747237662583464068948853998717758017197535582494672755761993160920705443323175459255606956389227865351774516114428058806218953069585680507258178900566346201292875612545379135620022109679268478673910907384425447528424116906014281529584451912375125084471798601021218350008218871372283354417527375161455577191347694814931088989038864773276816072194594402304483954501606248154873921279400040033849714823061708643349345212731411480334743466241717159870246727510212956813057877652710716561628504585327650465638544491166065327712181040409146751398585228215468518552761476031990805210040959509266416235941619383418097910356106624334996921810957291263711181616750495011646777169515071739552029076776565985949922934529541580155717723727816429256821906645751015765650520194805144637009957776887203218544912072145437712834736416801536193130483460313030625957883213860609285297678353635909252821325659894077878397965260930118623601668826224213148264910747155688821900674406349421460606331932873453927394775327709101328411675231004283029392544181149847917541833627876738607468369056012075951086714037070511806754061819479015718554841780770452156146526846548555872089049415040890173322535902841761009877417715703372635504599777630522770956892766234562354534090709248099347115622935355842635670230163937252155074553230428756753672718578329338330398949565511778004337468963429663007136799039485292860140579108788328499911734861784783170299401400321985112505633527238602091614009267584155468762873805159722939598120851276537135614404642365158074162389951723159372482447696062194604500007666506928120849748940994611248526717879816301286195472783073017592723727772369406495537166202170625578572332318816556394337913397764836790298960083151738129812858773015831530403529592746648070170645910407508448850334490948915644325753062003975136740568024721704234571184935059245096466983738249595544010082319841876470149584771973835295001833806546659043146953916504059254855334890346344175802728975069619304679055831440810141504857094082855328276052374843106262042277131039559581211589583521584926499212261925146301619348751057528488391542071530013603351754850847768637590933500272121140147243018573541642678195616995910271291139893981195595595808459222015218671383366784854181298737855666782413149736637994752038411162688355455217739108170899029389223243923401263279442334535919786025271645940503233352132011651313089825617491065032164084899535320070252675202697540266058587251540024371659345094030099682549848974915227134485590730304169327382375570742672441563667731374403541731171676954652797515895107667048637158563728463440104464837878598841731893817146456882513883744728529891015743819484725792446747800312139966050587677408103367716714018235193632735570812648032565318761486031450525309861171364904151032678387738029541668069452124006620087068536626288484830107185524097669831018937868486537779958921060726935148137442963798688964487629529296412816103301695792575021181433267789788908237399315198488017604776879695310469867580692180396216925889871067546376326080069976714967006316630806915923043376247391313991212434124989202155066144802901039654144123440819413440859541936951064723695604418885319728374440939400111513808468928646090285993716332254961071815192744801103690991533704332299303438444049697739749491134528623279566386739020222194968925739951130644674101772031080561241641093931085842703397279258761252051870774083798947021664528375129999064780660669682249344550043355265042479942893132227784626595569366216299109967026088966144175928525150841033815470799353100236802005738367991144085202091023746196598810279365732083010436873818030935768096309252714666451683531318869988271776601450305472211086338211366031756939915782279654315086723503690020636177475280018860536924699894663405705374740195964550410834205455571823213343519213586500259075032074552884824330889310439559314118631010512478173501436377005139376405941994560988471520890249028882182109829577639678990063197690101616211928829647148309187638561301583723052601586627000634627152730462923678785097444688914029386817156758245342039492156662811826632565863559101491980743914528533328971230366963930585226206641295696752817511660498589143194007706570471707094395976653931030295134610336962518446343144101073183694348339024084866884286233187349061110909138216863560912831833529341996703178743653656807314329724529192873600882620798586216059235882822904140041515444280550103750088460799220310960107871533432779893084731590116092234440407707986514848418810703206040237344018677955850568581805273465029988904129451372459536149097838690721139462435536717891769908377140704823124684204799772108420181884321746664217024605654227067385489982177176534123137270531109916171214845036482999106197923009513471347536593845328307282004281446069723500725017023119545878497817604986732996432609674388169934209142493848600560999458102470892695852943088478168538891752777593584142199986103026786621047911165715516920839854992733283352494834260996653562906734181539598916487242176775404432839958204870189973122608030060773515031946735793223556607284195457989085462736455777064506375976368779820846367577103510632870230553227034229726099965846813235810758942508356892661409635937682786754996636902091066314383044637095457433817436067030012673486934833856043717990270917723420039549150085997798149011688530744411875419111347645612607508357946953148571834362176380419708911882155579384188032745159911155722874797765520413989373877649315667148058362376580189665553885990576162070143299219422445758524124626513350927729239934704694813325540854400214838049916539280839166283359082647200943527627385207151063792740184777831575213664916606994897768932417194037125572095625439899393889701663190525383951200107908974622397572579893758165684987754998366958229976900384389804114468524351212531291329146848001666310013540521260530557921186370458442037942585860490470426228019557258195993624678016907679659383346887185869645083409739434634488186847229235473960889535452884065640298352229627830712798427058648277670507611639838583738531384523968274000900638860025228462509218303356119862661453430274393948075799286567423369338930145039329827748961850457155863459126990868492722149349158786390062146316799850834110369694824233445150566855966732423856261914770071863623850820178610265006719346118337529665453377307268742507708587339639245712776428869877956656495304777007049448549483760860199590156625062826447834548398398228905620970244599519866189269055764480236215942448487881061288776871793353609410507245873219223995333229079982443113964294399908642933167888291730131045155969221410984400095909359527235615692397273277838923488025046135226751115798797802928291358488075193204970300697513008595890949961088563758989134287490864132902254300739604975304819319164730232754766441021020801390494941367771981447271658473925226198580925677405788301681178927296339067675142867918664570066084821690211093524166666658138289853272271895355486326918329248362208859034077918250266589449910908215464809211045029653738407871787551326852245452415948543960865170404515064978147969780246083790902689185006010922408271085522044686072656046466849030869242967189072271833135656215103128096931508468383534775237722008160477468372255499583425425296059353875354195683326403824619118126850861430701045097533641402746549863199956928307244149237726788131510463923293406796665108769531169328665411211255149414156415011946045612106220384404125120005755680648357346473891642264190586149518473687211528001717596956743572229260801796534514986220823307089661207432666188552822377552639102722849958215110215035009100372359778429772301379316989794885106111805019534646021096981986311231820031728845843314074145071501811606067458442128158040091598250267605058641776140530856559939047151083215752889884006178497365618165859397795242517895282644964390272234937610553699145384171572118920248504629149503452577366392729697888346572768486359338722983916844888935789104422049992200268047661161005703350681339930791089638793209986638244498939323144164436224736446763380060517929548661018169119416429538074532497374598951136436149284183834172668718866816228895563229192990167012595382767329467694519977755794749076114881281839356661774720742993781345565816173940974528921647059093709207896985802389106261604207485693961948080657403741719574269489603190529040968176765278294713666877647654263214942503231759514932990756553258131724704002003488400902431130003346434406509910020425627740044350723358174898973300181124183957643153685222780156607500345750048987005038950385042522466955899365407671526667289361043291596468942724465188704450782376445822309821296541476817562660320912807564290823252430018360520530376919389225028409975820913034056339244374007682700711711081802026055156660837383776608936912660269925576250456697144902506050399686547068692799623093810398872604575810703622269811066860077306868972640026687652175115539670398826657031334344354722995287979665541960124162616765542585588697847059195312156822386318795052083450823354443108395978155021603053321598035472728092974319223670611963139208793129187416448666826082014734634245397089612847537473045924231876624066296164748583693670124781292831291320337920055802520139377025647783450241028622344317540079516627177348959343356415366622520229664268426660183511850837507967604765793555513964819595533022831722957363130883941424320939424826630431197543493933965662063359327003280233853341575991769973525145317097763266860044800445520416969957803953681148069205414090192163415214454967142771124771573593175717424937434723972642254992926412833002644264819655466787834562364565129992525383598267118043663564092237977803911155407377996851632730135692356668433138841893311907248619443202040990558386987608721710955388045265565706199393642953698404538249617286636570968114739086993115128420600761273141297868362446484113911012288708155113819465984051971897574538687744367645624888337449852410574363759449024748210338471821047165718417310520301272187553534810363271356462227914605110283700830520349164405196190473665730455251010062692557129773545651855248785326023652070384578758702267145674881865602972569445614438495933479352999654950620310609403666116402834990014789856352758846948346297397061143571101336853779936113917737140541262745243851500484054082270456648720428851597234618895387903444738266224977776841710833846795331457467923212520725798843203328321082625242390053138449165648669108957756460787447070782317245622249735216350395775658567668290335382633195580345524566670661568575838496337449056942563935027251057672192855494570911716970531931201932391358180222783826934158314067797414198033131092491134191416678921738687093777697957466566465598120141711324928605527911057758147233160986784485146421986646497811839346810255845433144827115818300238991363464200703812327048206701192626851618419482244120949040972062191928198090504666823981348982365039789870572262809867235188054203732201169421228453072771601495833990111585328207480955227431446270311713451340172546809135277465422791729935540496300315077594548182581709929773334798270026389528901410873342906120188377069136048940035531611706532844630529117413399521925660592211150864021013611031225748692187442377931782302917276030601087642715012989469796422864347953070955479771974746496090070165938953471799018284605173499058025990309482175186063608207360276689362952394526393762723781319465387581114816801314066390923484218098977274626932388757504343034513479307260175159348950578907996239672571772039120477659612639396519770537403115778950809633724558292251466867190884395555049371437532051000797939869034742121999673299015177417885326669558898483927889870992892032126332518566811184787568711413968689741182410715697597612322724936664094871776709818750381813071204178471408326392648595853045837270250519452166795866015413627091247974625627028940666749371635419444295553266705062616956108737469570642909116916712646784195247032998527412475371091089452474395869948209342773954883529951477720690512638277876872795894647258425099529658792367435819514781426423019698167225265542308696159084628696229146017145873020025302452919181446093835214283830838195134428318377235762454325059797194236084390645601955203922932637316895632099751039433422322642065740738189637555162126950445387518602729590187025712048601878702676429362190986639051702256810411579326101975703961833737280085205113863567044434429280784648765789950660944666515596057892047179931234154024549748603959339121410914533171686294201617982685715243805446531091769725709435267883904165513487248290634942341019712180209953482466769669379797975914484206429992698001100365533532473037377123020736548247463835679648506862382865096483069023745029075426873723297981206367582011821639791295680978178187119804651065109902642031273675871680642305463660113137746838168130449401833660570477355370404073744132056651460837371065311433348082632104889394011346954630461868957459135715893359681077005133269379821855415118603280146476559931471124802087007944326896668666561106856726292361120236700638180508319841062551390783441329626349475468509319388363669176520828378088980919568703834052018543207867597937004248039039160650834842812506211873086028759489490309893004328176297200202634123378608325531326373439075007608298193026252452781763844860495818087095994777945440690213567049945149269585951209104689857106322187341740999769983562489442261027134837204472419700273714561157911328293720708831996166002186282993897854437636017613968635986669553492549892373422766011613250089517507324899563102039376991347026739189305847960572951827439567866226626871866915185633954225499122392601632210576397620102932396283743704689170209012427373988546067194054416976007184189620076583515090354524589003149876327329880533212211871715000305173226462384887952775907334640971791007270022106501985113867196800082828311107647542931324289815626692561967994371790112071484277761883515350700859276023683539228647494022218416843289390763437466061634835197843705583097311072866629265523987203457965165978371445715826526732839687950859708624917023191030766208736888329413631047688994060524944321106944667836554350168314665511089937295654972884251562154528810306919824756189807522633716499582950240081263688296082881891742443959574184722717122314746937193067493335097376830045175776728616716905270483278968692774547787727038257508539839918242773567877951850281534770797657968683053837510548533830705212094043137911649067264011839092251033932439338620931231936429116353728896937408486746336380393514923446909132446436632799859984473717680038454365941894411528351579948459525157361449270882211069272007874597505106073663482770500745752422257361925316926141404238639247601168641014758968955063949499957622222946162958210926010007904914970673878478262442585423281965365874087305831602173156781494635978560032825655816628109869381168255272045380774247315105159362122278965809772982301899308098578309168039062789125816344877141772675299806553587042565981394566432590037951893312173442862081845069468921392502157596320864564327415819983320503916494889587493983190200382445989581919674552924482862894818782327580440010253632150752498887355938675494760177017967623583172303828629887094370430601575178599408336498647469302675111975427204331625016715799987674311348159858354011839437137862751430536057316798992311770082706950802172596285197930641664357629458640927527602125438591653489312030850545224308039325029039063539113955119448138147023170746876912010180719468159755180766651601582888332973950389080505977871504209166013799034800585920574932669466377906301876721258191711127836206623672556367606998695783433310591435772917193679482820394408859218335681985941181655175650203671841395728605982306018802586007157924505186618859308774536787114914707055633158908575029644006355715717614217166103322839406127221324267466786847364710875290368653724144997725584313998605929134277242116177243700784879208943847531483607426415384287847144062404261873357449654460763315640522511104068299523944643909227164576884362254391655440915735175348886205797123891047196183792013409004735753360163008937465381750030099462955707624892001261163066257901634694322791210981105979183462731752691462265071927456846691098952372286433708249560771040286382749675915795505317243186793296280426790968618541952444774230009230932898209529708665677071800154282380909815644368072576903661032586519245000080062378693848098559815534407182289795035584843477001197979254034143939923871598329451034220299914111879263577408471408221679077538638593106565610819746390240016506637876532811723689398707771899665297926173569477015403548609212538422530498932123213081846744674083509378719602591644067013296984668048964503043699347026905752625885209707327144976378555333738226779872525368255301683555316114827219962329464656808203808173301000565339186191180245720785854638780178775781798216625557930943741185283553579590206718784857437621237632752481607271197151618213322591242567500269887024760835287226309113472354986617803377431848836539340336718997761980760590842975751422103609780866789683200291061069285353192916885440032003856654140026581147591581429359408213591524001373291239380849719341218609867120571399462913393501401876690167797056542190253022412077422327079873732933257016312279312212589994245512339325248830998407995118959429943734874726856602127129836733516084550749345522664723924546342476336874013849319602838559422245825996091819695882395217446147592098428960962506593475752463740691009911875908428707274065472621586943059471758047014336093193762537751858227566173770913860399361633102377664050278258472334093549332360845029924939937913921192205428187652534441703596052058066528821654225610061311567584420730383581274482836830859249197536447616478556259257807869427734495484412563459670021110415929638528106651810339328468106182532172792575504070088708622378876731421743131825070966320828100091136343167854689425097813283079922747025561813942522144710615725284704762749899428028472636852763705799225150127553723229204968733001504771130360112937779238330355891244987103288007785407800514874248096863508498609903904678678613475337938889193568411479557709233090306719066708999781663724582378486744820745108929493005139392022244549609565760597180434140576256659442910487940196254768756291961454518750860053651471604215101897131177216584004814181034066436290901192509427411412915100907004986734365245381067632351568986366125311620547270453468035176484369394324771244039872464088420987277523257345684251746959720530159641546724727922266515259052615429718624203249279374192581719559870214630129612772971993970045514813276254162033174885810720635803506944726753818466120443390317796552793763672657050028600751812275659458713528912805912995972053512440809837365345395151353631388355517912349510414430386203537923915781413188476522769620402242288516039025172455412657148535856700925337706554363367778707378486044194885254802645876902013780680977307190910113237299647087715479027255338565422952671826595212091959810790822396428574501984173573356842758178088094454135796281290519104458144129844280204966113892545273296993763717200553254746962565712566580904457667523260845807056363466250289969980378626893870475699626631852146826618345238684228488745586851056240041082694199511617811059359790103932256320195610650102211986952213879026518274324586505535940179454139554805879443542565447775403392827918581835324371308632819982496916470152572024478124180088029167349738954625789034843168213069352571867835436998508499984735088944772772541753259187602296812928752496309866747256811071343455445419358605380367952197141981111438057318167319524557823838433440381704966146747781202585766098080771340042198508996838247163929509889034940254140706173492055031034015145957652684069696471368575316887610777151355728655764894997264816374205496318010277569869536116973812964392982339796803092464622191089843144368753809133629485887293394360872300977904752997895961177039221761453002873986221696051614444914340040597245219333923456580665674429806845370744674885683781227162589514021132491942871432995663532882537169199320223592150711678972580971748963190250002494778006691802399824932675390121343754932790969113218178555727551187311802457713825881230696357745657436459347315201779538381611341327768675649241508126970919820035672775225099602900460589343069483474624020156386951091688809748962128027488364247661927091486787600877406735748543641629441949781158305578404963144028857717063282665783412385127186648784785248374241935439710930475215924989587722988463933303767293442970374255153523091468012745874252640022994084493228989573589740249953008633462032533641852176716050069475675284446171724110457336727539721643088737396569223518868132097482725753417500705289144181532893917171295925766005231089811116770251516620149935171231210040567064133593777471440634550969461026784912434464109919633317463029771538876205750962089693396673200471692124797349657025358016065471335328186312778481602507159615566162844471471894961934182746085113380124059885506613058122501111232087303018147846797606698545711562567355098326073079236007697927101757075626992714562869823423982470531037069763321310712697958513129580807139885865259308902156273180202714570807092510498963477532798320536946873120491502386939475152718605808290910604229578312485584848803828139972278088523082984009217286561068318510405771789371404001235167519523366776902763487537723044571430378402434854211868805118112144093111469906221087205329683338708010850543854459249173627925277371223778220626379258390222241583840993237910129894689704535781677563329807234957780033539403407298301290387049534800674145099721495016949250867967678215375875215606799064171001639507327081597996904399189505046055369616196485470264458563066198882856919774373954973283390557218825917483895110454544320618980129855373965532984682479731571999478416131771909882975528359025883614542202288451243272339207200373541437999842638105605136514196454010296672462476087863864900155248878853437381428324317014695678807860085823204762238562881784376800972846937746128461552754407221285392651395425091975596876134641326130721727299424786326396443142693307570453258070678877932980195646236371602146402347150471748890202663701694261734330570947887271934913030037412255569765083631696353598127811022072684618193541606774420408791088203672657300144136299945904408698545800644420360791432941401002543284445469020019895455836963916750725683969009369543717134574532818660287842237854988680364572647919318078855473794178844213802232187887198010968776819449324321247309507177881358764927345575124714010822142592827181808693961472891117711397509108813009010880001087478963268493648169515238793108018842113229496284199779077683242810899798010623821273867267123519792307585827003075258780406004659874391185479626448182303884678080690882832565436849508279040546841347513287964853957125851382694690631349329270179357881977498533504036533233055631694973051281810318250020701070614971815673164150114820438525201946673262903101023225095602542763528694310703740520436232840255594896568386483405908766089451797426157630030901935506314551106739478058289766130603912648577976911349723101414024402930086872588962992128253726642827948975289708724753408878616593670931850123070634138157225224139776205151202396828193827389499760859796785069152956688842468719601893484427165110038584955975890543737538738781834405763141687523614349767579548528325138938277283448262868460430161484164269172271742667227806314071796001063982858599440000515351820966962444329802904843910783809131914937003994668345999933389141966009057175554741332824116809708457311144886715107579775267133264232877368225223234681918886795544308123445712875762506628163868657680557170229299652769332671155586320071710158126731290538271105803559083886454311672043471417957480305680244547906171134241548671163699468999597797536337673037406661161661720032087489188588872056002512445572229764313415164594165843598952972609564787655628407975195777950055772263136664675650297279543993123925608987725909449227095128631071786106429298852803450441784161154826887904785261517711169257130980843317575002886663757899714304574042698491552729448481773273973300805120751858564647743501479477082920814021141181250621187096419182146815541631534331929843770740158299761040426745952472028250688900612458931080541392906075159856771938933141110832451284365458009344339991503446225719810676971286775459082140766744108492396886750889251806911700637250729979377805948085575209590036960277009700485383159486165162589939229204391277889836467301202043698862014338386280494247663416207480656052700491392346342284732432966141678228653650489786671782265156557591991240820185382062064746863531778772666962021297981629399579538512075661258214461281782486873374535948925171758575721033034537404345177681519438670182508410283167936013594133098316194095184149938628036869254658980643941507703628628869164221299537416835204386160599396885805974839499092269368909797995090997266578715708240999978462930930426769830053546363818891497678355543498895283229171917854402936624873344892865887263661354011261604965809002544987504780105068147494252133645611037934248134845343505255879465145802498301398952376487421652911833625061615930570910002925088535864573673766297170814632899835698980294945381375130253562410133335815027789437199811800954250219931251125326701788827107713534723273812380614383547930137975061757094799035109070773833477516495985188812717799788453107024183920520837124231125530095471914621777821501267728402827481430565170245200447642305141080945615695646826785015392206072387249954609399088645351313649551126134948061334046255106676629064355740438014243376567524858366914601453107260478975677067269918687802284031627862707682786033169255871970250973779744091176362255024102104985359430209723398864304027246905242750877737781737762506516705574652169452816986954453650371770234394818375301861846629638495805858795585710997068011408198942546905399133018650270970176869546859894769575840982141223999920846016085337071418513254005037843383237823790857347056508300460990351654195902328730410321171589908720430601771017407031471329348643910381961357323563198082424388637225468916577009194349766847708603160992769726475238345647961521618685670809006942466280639542797287622875105839025648958085828755074000822584818986614336999220191958684519832823736104628831913983520976783948216506248398671077566233188903531899144616747311253166815665875936100366978521857291541558153750494048085042919933748051056026406991395490192565180275070865465520684044787369278629598359437985464023125057809024744743616975444181603379601696661025594708977093593441493259904006904027151499501930206653334154875742531499276879906099411422664059855594795500650869871831983143976330876836201894024274564331639367385734356938534624583019564572136472562445822538496356624145837386347442962592469171649017894800792866262217407460550996740316600006092470682953680613915182732076121650408266512247054074983494754343389559633035767908016193387849036783883991936491026122791870674584124228695393456832413066234216246579532243686194705773251065032813446047691703666538815729524130997566330698585559494951677362820600060858168911974436352937038236457755434111985421281005482303556917111151231890664338195889424574592742446816978232484607756466019984185584782508628880782664134167689225103393850873886431657604664180811760081735444065891082679167616024696702034092400328514488372793256304305999181758017874415142955104523948640583977395367132096527775346434022484785623895087271270998425432837940944690186629290374690426364289266593575122179277969799268048698125951952582494142525685305489060330660177757804579807748943062137738078891951002702778085418868969150711831364759906920168965039690439752497733848535744137693388067359314388336474971351668870537776045025095732215402361271167667077073701330138755213351795578260514003826268557317542024801488305323322171224274502122760101807400803635462899036078884387648611796302398794536484053396985803151748503587467063553769856559897219243706930083174993786310368785900965354147607035326051424285218784022518163676344656063106041643146448866144266578888410557198930797742293805337573566127785698525136266064004641307400396858614956898980948458115317134160648122982538329735463426734220028380291526813733750874696691554545751615407514311585499595469398044543123913016493370826619064508846845553304726377911189049993204116549672005516168589422603548292535027814325069159165704288088397752325739416080230061758617123438690903808101065176173604667721743370694987415109952981262637374642776549978575518101776942550572934517315863618147693128629110647150512577211806594871378615305217953014451969584324437380344605703525013010856226055096840918098067966147184989124947963705788801864026017989428015141706633999736047943382118666277123599673908865582779870039403330410243591096287086251771604487769031579867177801749369785268855619644814900540114483332785911676021224291286601545549759420789681883549364329109773463396245166067479671642259913779552557414570036431365968434219017653524059225607941555965603657764360150638661831981309857654662232063621960077763186078957695343419814537906281884464663129896433596748510669722337854918938004975028145633897109598676635456756295319518187629388071984008083926607220716952246164977876445314152226686731415500840751815650695113830621792480211668687989583092850921616902119748907941751990257107691796314485552633262586401512522490774374998288949124964239946132406158906296616015292537670014680359227136984404667736332915550994357603006727731024755229057979557492277166759325657077577557896620750488366562042584782130574224702306262613508567692688065552883830991782845591567171796031866374687390278433973851648829018781819728965834653580294679239491190616591859169981193873681600377649865545730421536415807989989664223750001423588972530664139193877843969380862185709959067539030136280694138893168854273087172172267400658399355895590023478625990028565680848267724780556233469320796230763257648833183633069104568303927310951890768392632689055560995247390331503395857651743259081000247925566548453027306412691352272996353876443509172300415039683119050994272046686048887110494441617551266163234730763902267118275614149746827873829880302494912913908055627045737152179513139762507396859083974595865648161497716948160810527685491935231178091116563165353685519895512888592844539343108810450916086742578975312176991971178224529404190897045457688262503290958109890180451038723145224044843204705964028749585871301686313408501893698042801829231257593758493670013284406530880741683560764519361497917777199422540170923103910802846181167562923782769836911638991733106679743664229270709225874354628104251081868524302864944314302731099492282218107518985387778518093544945112545758040846946701115877579263799915187475594519463570916663842637092624137927189480169161512711761353803485737846510820904089377249101562293068073040225198955280049728666037336005985682436521341701753316353928735020692480441936946555557022649880538226871315960505581787459118303994580351362285665825813568325939533001858065135150474708037131501125513757188799681124031568335636319318318057103650098732591692358643100601836572527267089987599196704467428293345673942618729181241703191870530776401153604401593412534228256513455309789682302187106418323727435371749337551372323853115657392686612655061234899527082190048320653813560033907960744186997378446909726456811731250004549382235538982918537499609866964868658234640359037444164663412213891036710988564866816449170798352231995161664339454624598373398568630784461752557062491158051021186800554161941841757101367527765230160499117787119432280899101181621864056286533253053057850837741320753846613744149187263048380439661498963308623495129083187938897346996981349850504031103965705865838191850399493019941153407526747515858156960317063262592568542501644346639165566972626758072349091786576220195024827428048119406592905394060044417890408916002782993860363107064542571154919061938255186650476385973660624183247089451723864457139151573105701744727532344249469312449690268500653403423471323816532176838546903089091686265566729670475146813072572054306558052643998434206974696264214438879382225760601737077827349650015649572555861877768662984726747608950049066522573799264126193318184010107182910580258202309440817001073554588181762391983404204368481859413661215896391028319176326453901740485814182637990007185052142589629275152759813501616701167739249710396088793870173500076339052294165832532828471126641462176458350576466281156268619031207885435771694103440188548638794478407756719063579183391326841814848283658573178684719485639657890253405635021881274517601435847777459769532904916050057988977222463578403795279828748233878441604440148467970893349409080420144768580247809013335418392058953083417242119007766956329404831307301875033254851235108826463620113759244777527769581275127480673458590839214182844093051887989001190922560300018131466771061330865027003621970772718691993246954528768795052097562837732547758370464481622037057017429180551936673431518618407377500909689896783047923226617808652906679258611101749104222310323320522019212590273569877826034666270469413404164139037237084081504903192327466373401508791735815018558754826942755812283075585221163966171516817158497336942562981037139386636891916750175069359623638912411092108737514959976382591214701982676059310833258209229779476531895740037045451468708432520688961300164457178103666403226920343977194389899519478224235725808060687852961077513699973626588804081782822254057340773283678214977251930575374999585119073511002750787377497309488943419143987364254130140830179810945145712125192076468686866940367878950020889085758151391417208835111127624427275377912260265335757763393187649688121013411732633136206620770706773539141621332007273162463009485099053118101102125667990638281954658380882734262862900088356452125380510332559196968959506644654574733281961713912102733803877486225068319137911095276829953515427528345680415812044354575072873731884828476747635615889846404934833357165073263674834087864817547137376291075869449274917349964162605232051124332108940997598244242990638067637952529108588848687371406729863739926394589759938169004209937428326875661152201872938023255736371682890084114123577440561744540891030910103922464877186406446253687478026159070359567990076396856876242312888708948825161505491264471147012839063638619048249533872574189144463694686032164295721766017822419257952391635170924749252062404499208270527685473882111506531460389631114178056588847319779331153447902350814366092140891808229390381423430044732750931552794806721449796532574433538432216652019133930848971120688528440695765415516875492072474240764987141573641368219009298425185441279673532164492079680543335595921536695179519288072131079593867659992767147961041011355333618273311416556976169479618125389178283948866784257258869852847647174597797250510887741940183534339278986132608009474596276884252125806363160010756576428019515570439452265856167607177444256723734475372688325781138979910783792058258850110548108895571031808292926725450126658705530612840935461315660257661218897907204807947676358141799311328041220813164183003076186141332589515676883738666841171363790904951891552347317426645176197806292367608578519847157106188473382503097602083345112453544343446014688239355970470889771674568122784161891138554203056347804359562654874352653423542335722459078331695876792896066850149388196587050369836343312776952401359924693851582024938206564548181456681740820967475478077326821861063779996601674176087151919510691584978776532372213854616957819623480856956617345911366967735710398593051434512390585291391137905357900797131745861101717991328442291097666691256120559188791830732858488100770773993818181022047780490040156943952525954743850026582526576801587597925014556972583224936568539014321297615786082711264254262031383709437362399344089228625568247294462895765195116640051375726834583892341976907782164612613255357961770268583038536801704221873595610290375563757342939763966681279934668316454968586772251651893615082978537831837415463018190835704031320475596974708541864361100789154153329254188853070515556951839902182328565125126105059406742675739217301024120687613333731267598748211494932146009811604864895421679983178031862224748781852259184337817050541016188433750801661690650208679459487535425831710794126482506528470728870554263650882084422834222594218157973017261969714644173801502338690226865389718261815802030245141879829860690602260243987652483478454795591587004174264798815604791805991496129274363204344889378369276963337631901611426010372212308695741477244696619770253861632003092607262525658011045378920916365390786341380831818272367549109587391330876904623586057098383637338039439280448482514940318285930029118962176467126107209532937814026991643575629450917604412098668029050333449403615446518074421287625263975413901339172490078898231515793574980320821423057217434198902173515045296573823072873559079394459233169497587972441325822873601520430820939560258788641191621391177363528665078210116100661958831133500505051202186028742846983359552640768600040393188770143961333762480573723518562584550853503358385926131673153073584364219742753167620499403996273365880540099158656604607340914544450142003052080158680794004575669543187642755725724972656690298893557884881650909780550088615170457471803791530764143169280290159480449863048742894959442745771355442032033217212666072715454486204565946235546125688925926835377343357250955004942254353641046894888304942933240770136939794254206161916428602671389619724816522949890403720058413590449438775690131435415232465486138860762772696052185083655731186854124504206830528489514992288471473839349064093247112605356123874188217000337014974662426119144237513820274279874539109582459857391105713743897726813845195538180420989748721845446090605903726163674316149501056378791278282384204907743279146542332607163463648289437978896448014578451326002443427680003222619809337749522014167906183449316028269776274522187528274482870881345179423276658243706828797179785469982429413142577220882529951329251882657250296659245384974635483858452168009533024484303835236560524866839939794017441853326882880587368926955500398597261435436267334544583640937843893959041505422950814571734554178829810946198605090484904056884178039569380793567514104544552044783917852101916191265156206799398032214858911768303237564453499164740761268615856836883340080408323201001845728273084810780807158573601238384675362400634241918344197889701156292012233525429606450445607587236010285596345418876098021767108851862220532671891432910280797614859961775357194077509867714310706795755028227141839878486651692873074880848105481890309760127390259316762164520049038581977277981964838958767056059226159022876531191917513185778102727808572013566240262512108018768728529609235678055600310413296520149221079525017048992650445638203049025126297282045236198935815357195754017450089681476906805753980436115288633294719155487211297648104754229987497417526389304037221454087288413330830494051070265442140092606749418689551247094144839958818810789749842214430951961593279398223306061688874511301230301166311976500440769235339487360270699228198344794682340729780866098186271319364737305654164799848446153492018830619707324289122175858243427673907070505284639906936625350600659754038607901002914824485523923305068423337957567413784478870824828250023214620822756098263458040636975240011030586491572956207987996736399571863546162768939962882423899554452318154631725150359158259243994828537052951281095600740959003308522825518532736703535357531767741460447467688619472516905474971292308351012279530848952926648417378726169613185912092717125703529124992653824101356478007828613634917028045085806059153203055729095327854342769577139092668882662986524777405579938305302266649422950637178352467348059886523920633132515447464563701062949013134341224665260639686576590214562709023753084016524132424320463494172319983411993397521753623498731322995633313940288703557821459632239998840535267583702206558791410159133001899819027356397597459595955431392175153670205688463942193857568090749271975244305850218447352639831023265940975363495346828102609116356637506355035791120509665236850284081028707408564766154132334373472425996510244126687764829197733861249168802300093477449423049586687337976280337416338851301589396265389409836464837345474520189988807331266299287206003111529446611631053470446100860799739517318624435915380632540327144087447784503202407037634386481023332491061294690794246246668747203438611504759477071594391433844630625465427282785489980186144495303009328877329450065475874679594958731710806138949379000483239123413712411120392350521309520528756019808125819516923692685754274222291150789785461339891927964645365069897532563604073043107078573888104464712761802780412702301263558769708662624302422070921149197553459247533429957566656982468408375090248000895135215774935265984832443974266545221338796243888041452456544791354124228914476249810478399896515018548086755406076157588814796049053510868181583362879787513152875208880961303310157624576322671548505605024794666088259191293790675406228176972376995799457927048884218693391895009742870877260492355641098321712121308557520007032151829376545482771726482632310399658688894468109040358119804772295811858807997323286568431363377272980103122673599759285790832645908594392987787126631778477897393664006989533354971373382125543534681638241270713542713809541910300206918464343472041787102564223460796794615883809203728761770295286154084203470844313972286059636426230372072950029322985650123121132819817012168135987790558128103967813362640363128066945196879982292963952974789815243677524084542928609030408947347510855971367033376547882098776808707156319048796445413995072597415473618442414542347088936414291953365565722232485684277525602739869442078471593201117831155766414341848098599080194443918927089021077776668664920485914364719662544077341956503070623291738755767498924539123908663969171071777330447993997303200260821962676370826389459227415918937592320548211477895341272761826307123787088015207607649412070517804618359832497844771018870691584441600384559697127329437446119098959633887302442522242435203641142548669909401112156105651827804541579228014699881083806766111290541389206871079952088404546073089272480974717842235868336754624719414641039202276367203165831917842884345526646799674444956786131073743318007701656069543655638975704186614913646742157674992527704080315932231542749691334192614058193243762764596923741706028441634885398345882923196699677660414459103819518179246809770152002591767834755199535781975406247125476504672969348888573448905167547119336346687239186127983848093615610137051045242118160621124580545905678138375419993593063867335137384524722091225184042370580169077223355601206933675151387114874202427535579307219215699041207979991022079398874477599575057295063238399594097940884985681660320286793514491816168169286937730214847574041205248028553711853631512192361057029930831157042276090241215170948947538806332593002233775598960308562632550953772330505211212524679502635822776803327532180248741687197136117754543641866659782592019394992965303559701867448367741300448380092355850769422499853499562750442771011549437227466799991410829393638511365710170449065873873802961647778218158663749459590783017360343663127531000651826980324597704480289574272942803412207571245691582547757776955837865607536791908044513327103432860822757040477113488307617157541321815079993274742059441522349429994595104494999827849484757104921130162266642441180609090707460852373805770526961213552407351181660668745118974904204502636422067495151524963317160794656582579580542212201793913878398774191676228088598050669920662619179244088295221055380571669339677222400001499210776813467166711806427830921591752350016021545970410630816224456649844528151062201511509821056237283205926311925647560778024946180347666245033792684054127344593929209629725475395418396926399010176379083114372967636779094819930110566352630219921044619519852266787577882566590991898913501019696492629862798383933292201672332648503789796761236332120741772220817702832803600677160440782381512680877527780251592385298051378701646904439133515315860324181114571288989173114077829236474305519078073736874869714339685048669571855380811467814524300519317228537478971467240428592927548920245928646348177749893745909640174784938051734374687267719512927344487153754265748838625748823425041856008424702534737713884847921808434349619543385969592571907391212044374891930719060419628424634840893812283493415321406611513315582716341130618703224549992232328055026930704494285961348465489568709564567653661677201057482411836156604930991458681011502864375320669164044642113609108714690511945657656131652580326213015657414246145244413194584891531881456720243897142301749356509726085836571365909575128765464522588313537986363252644681723776840908831238458564015392091635917936503931054495814239347131555116578511113593730044263299045716027335151832964014526497656922882955388651062237713883278479774490270008111797453856094248598302254931549653964997496362888909791745823465349303163611955023360995094465608306958739994415239094595918386774606401200398307366567934760955625526500414092933853411003895235354780095037473628214311000738513385173310017700899937724355442250730230872042808820043923883216848074458041703206903718363507039887478483083101906715010518251429611101195594380011956077923964958975869077089871099547770898847510607686408984014930166955125526980998306630748805428605293667933809684464377359436630097430148476975108561236813390008016374477265594042349137824305894919720379910633201232987499679768308371640855606537335482617976356448381499073192891800757816905528067633114824797384648809755259032152893965159372593621641222225654954265620274964330324267434860651565919500588893408083394204437300555367884944224534113440119696695579633371370987402362903989946687935181437187952401276619387743996923250848875996855956525522106737777734300069398925790079458109711974319105761086793294967561221766199579818867002452661085706466192233407755526402697136402209334560801350122457368484062009356771115593978261249312503061979225611755063681164125217495160082594278138074939897713545541151416658949992530712773523140991729946700497759000942914073580562151170112464206932027233757650846327555598892264679479360992937780626598876287212021722582359296242719212814675330564491610805750984375837676202497562254800016585885344472696999245935177156335314760222201356430602983037221880490290410047206743085190679389446172596107971630667196066408788918488745279004455099320114120095999553562489869396512911806392768701798230793865961106844724811998513131181841820683435434714305326707309220662496261052808128470603054807494181179231834201093343950736175061383594170419275753474538443741857935957241676526427958181371660612636593889375988464462150606729716474594879071796987163527401846977669026466387728310629133599964197479011040791292691880287316936316439613718178676305720308654905551285556214796023026908994156281162744798141825156805920502281212210197015875046749692015646751939961114219129965964773841199753913839230033033158318867752192635411813957059616331798765777639898394298301167599155708585848330769611432398887798876821949578147464304158346263894870669950010358989141221569970463660798692622875845077457249387490713056055265507834057724538226620391485365819489505406243414686546425868288297645008249186991281604768843512940349972753370118755210525711348194068463407293595161317855872157125115591545428146960106638648032490901008649532885195714277654460124241964899683563869492713985376136115227799732192495593433344464713772561213090694458223945230041183895478396665604861887861106528428715100046600800726559504025674627789630789573080803953074528995822820882312445889078341075535070716710826729205495605739892596522663099131037675878984198618368169853324578844706859366106603781175206224458109921812150815456958737572810500449397226657340756867911511708404664933157609869165238139888805970697604029629575287543217922014693664855671748579487890808632242344813978467935232808586354166769007249372263730498076657399735289666729989553271264517321169078827520887827247153236394225482783223475593845530463391604896965687821974808939216397725074231845463017968458253818767215357614681920573110854162593669387154217790310962797714518711059153188216361430677302059665238211202363609698519313725095028428408057911604482592716761806835222312021662743001466637881765474731108034177140461872225654462565959659775772135721251694422614448838560401975083748489600984047651338901039623070812988157407581170780857587856529399862762122004423509351076754306554400402352205415817369005040091659420396082240820617102824483509494550712005426674903899552959299199012074147386839167514587607902669635299053814762811720738732088627603833969885536335993805037529081017266957231373516578636997207049429791602276702322932938473931675097061550048599425759454124267486752065779697286782204628039779722433262543906425153556848636489167131654929923853553248161798560605350381987083383257933985247058082647755936590868950454521569478966411894868881262615094971309233871581861152757591313186209217716185384790762187342695027547380362630069185792700162116400079420282338770454818518843397613190092012517326310457802908400840476686454951795699136767711643665365989385044198852811605603075394835181165656016579451815240821047975667950675429903677787815850461522730786257958665004195043556659448384198803958582721012873040370827148730269951400073284900869135778394906659863627295758355708283151964039850997584090864911663170375204152218192403617704833278784099837890214154131693009922671209746805876777765366009078395971842449155795229671119759667925239503515201085740858264071573242947860640227154985058209440405378514721753789098951520375114630868337472872160203476374813114988168932676308307600979001773071739072681958250399652920413649614688236755346523382306442692767058561159442292747482727991435077753826326936046278041821721837836321647259380644045577263865959472062002198385654889599088002560241617759173332195873721140987187118713939875170078620670377101014736198832011479662489680070233705676638166687626015710078423382112014710696391782167846215288571517048319265121122969686141389246847369825719638011891745875667148296307699831434707543861089413585959741112989815534775823702327252128805737682946539015919321799234692103461039195014985154218318770154127103317108216073139432911204877240790794964410467589136046979466723377035402795195590007630003459049176831467481981672875175642788984565624209862674512555156091046387564809940792933850860626035257291014164214208064221023991836879986728770422643697558927046732321029018680935288413634420476054505933034304129355586711702819476831342224042528718358677807458425927733924992810356247450456423085527886092134681041502585575920865043600048582347039586949977081035459506853736722772318189365464276956988211437575823501607404008827504525886450558014107037411370929532571857433502418717045499255209459733118175165972944215566811754772852817439832378732724668220585811000061724271148881675033122267817321032941432212946736333936100949881179280060170416649811626528757513112359809638989181939684064253995955857050113880815366180691348812366630042235226123555871931323926279109920371890204401232193878240367498930928229688738486550022149262412871631192131754794319562877687592722065080688116273403960740167228802287564864704237970956709158287808573708330554872473520535748802996148731716358869040699846470721148358314001513755329822068244656088791395925251542577647807644175632530195314242613633526539466674540907046703396735052398240815359925360442827985891193555805112765520166811739530067706624160639312720790627052978018417964773516395713744369705661538019858238936810932828877453198494537959245112990695053591080012373094519119662963719038954511877324781890527286162322085010423032096369051939156957969147194947362665959438305710522512352942403512079758452608296296288589253990185402421345441919926485383539203153996647578281157344923759066046571353621659482012936407278123254235951214618958425337781447664886194430801171172315678977399571741204025075084747958242306127193488896412196443199418554698878005020951399976638455023592272881112314497378652844342815763068195712348306340985839883125884723520992828572489788281757944211506591902727543187006807691947177350832354431512433400269841114749962209526438796991448690032182800199718489992966604155845437117688684037121552897749902631501720522278500482846777268945979013379024067361736633273531998464824842740131708939322161134402306517785872909234444980696036594502837536149794411162940370485971171809480776551235696597422708729258354891213188795950204780617408938643720529319098989068376377823780451413134190235545178731734053398294016734779946354066195271255896414142563421617310214683475252492519664685024979360202909851309256891614221137901725176827110201085431600426355571963301627690085522624557128424399232525762529820575778906458199536021083794733740847751730346643862741656762288707463079919067328122270311735610177269855416124202334863625424760204809304861624998537977112935432030578357297025430884851126565287447347100177157760474768863351456725598025917475698210493362399571328428344259008657747613236011370134970995310603173528724814710349759426232945815079506086863963833799414106693392784382318271897270032973587289337687286641076044100021939820956546976919280309785093135364020870762179036884171208372421763909624855293563524581565800000526423114235548916135503378751004889898100704582414491907166807152849892141916169964444759875130509784347808500623459577982460397679032936206144701715090186802244697840763497350377635843125334823205684937936784365317624252815717659840402870346109826310780295471434603855117283306456783960204853411509289330050147020307150907765875858957713149173785570079846185292019669917951815319188725452706395470972520338681233354709467585171566660351278563941783057233510054246886107120741535569624152635144762027348944097115816140473138368156236355280180460900191380885208680273607635106530642393293974567419215251861035656659415312408222963560897486251817157336476075855579657631240530491152212177311126987394662959435936201904428344632852738441576554537973331921781735124108415536362536663955689237556338804225327074261329703135367962463936770281758271267802866800153548134505034201537187448822966443824458159163215627633278575481850462565124491418512722461526618302805111579564844058642482738766575128146142169602955430680736897924490457321238640673527675371796912482577903525152833000501202553810409740569743420464246171653511076399954267617355786423380730809720551731057965443869269249961713250544069295602812426397787207671131495143265844303076922365096363628142586606827781113421499981988093629982437932787257686892289338169953179803760959330446559753410203406984199457783303691635743336038433130477095657327336879280920214458190577582308984085784432028727918334117783269766079215980152924341427825983089953550178691689662646957633188255543243212925977891652799872483242348358629335280913246512802730014542467696167259508533694552446215078386903168321538004640183699594920628275420422385697573755591212623438642050729135872669658767851057970957646859261588267433985307138132820310022434800159718770699180045991003380408477188663168022897380324765227440089973137499735486851224562477491552264589241886354427444557393101809520328231963128162314539358053815347540874196443887002495834443397250804467641897043406053103699363555335770197837874802351971330229573653164784185586869924911045477725415911465207190410683532405095227361808963684131363241455614607693040176058597100993864392910174519056182902684045944023098217422507674981213885730257867480993257167126814503298887031376394974035050714237574032690440834649535827846116809467131550255114508723227728160437352906969858748323356131098236952491583817156885464965753136347436854793513316332145936114868836940642425106547135113970685191923921889672775443833128232986127436208200142841208490343485429914273138700717583494123685926342244604428763608710359217301850358445710091069715757247998294507489714333494563627942852152044461088314792814697012066997518534960009587284976958777953777232961764166044279361120089827127290770753599816599722236792408526398524823224816919256119460473130479406872753389386318639797676602652330755884382881461902152461605543970074540172249437536622194015903763584647815701761641063742532030976282418408064743841772262374028276397239401941339046754413965474914873069265927848090595479171263654205035505714425387099788233911691908835460586463791428879039233409384380941997262447799562424457173423776711175578299381986742723482657715507419044517613127965830621346270373508909582335504837826907882023219667287056395861524062011927431295093836715557540792400866196869035821441145919431775492137822664410837065469728250039539539818910838179091193414915104824735194955405958762045624153455871010314234999488453518589769159416809651031700099809668526985103781596010785794215609708412984500204507878039792000029455800774201877901597742489085485589495984689506932905505611254595414317138301000433255293672874509938830104641491218148122091868668866041449295285034581362326894628061125052099995254073961251201789093869067101730498244017338651647228028379078708372725241738561902430372632812496895116195374098190183247206342177557750643969734356155788301144897291449921170340634757574581364168850130664037725588574383271168645021331177763938147041402268846564414737009151405094261726490758915489851483742963060267121965285327574261770653739614090293290969952147609874869057441467589244429054392636178948161253264634041901881459198392577595125369022685717905988645918638436377534566516430442962686716189120421429182608527945006075304475871273967584978116317844276814329418678545937139650404856861362821226040329990017398398721822996862944160556373760170201181068798817000095856289708840147606580208879524980881843712234548832723231224228834488748023921032767526616370469802705940388848238511347987586480527087394519034912691333955153452894246294011688444110633652341720854573658716645690674913493072237556256814608497490162909613950724492543181822995569744725028406907966444639185994690337015674135337838078275080843250883818283062511593777421957340680433479185156898633949118789041589352358981948193353721261619286207962456818077214306547835019799157861740332784717014589426193360327953781232075036870798409161088681001033823167729836211782159734212357721983820225916361142171780432515584755648662531077221984718476995350044433347628718632974772387888033609934557197819086266488330753195290467231197274119367562782359611758793330257314893389832496056918321618125036321344349015431560907326484042002640253999593996111100453780928103894265963036491455963678662325184338324325458325526201577102956060908229340942930352378900601506066186592559376663026441713576070925749455650731823665484120445169440953574068426047174806110912238264571249283014296948066696695274291865858495722212558012110954351165952620950578647820117415524137579178979570153614079001097019268871146146003680433076058382681220297520023248640671230545497317080426798121975996945022021510531689706310234518864389392292044526895911024736133054353611835834841967650106286934224937963953918300964185221310601571034863480940374790546163117346223345714123315233801892170488602351759633483916319474683565709969766602456384252119835825384043246163794866173325808817749829948282910708384299358145053811006760797032115052006136559774590644605209225474722865625853911950993931808909134176385861952470648411252657791455794673156691534642288524057916104009726689764708150593602001885201881102805289548333240329163285976716761653476552688006776111646643357167064177199402906282906377568503338301952678639494468545747298061021199234093491871053213139033160863629000380779154786332260272324520155523143588768600726751757617693804757052718446802205702133995459450792133301254536045934932027904537924289944022441959955662528019443587245931801761450148250811397090276983407499482529308494741734987260888149621978899984227424771953056326020198738538871677314426672185376332766733835768352793081105261611438438508495170941177832797063568533309964754990521418424706123432699660440568569128388798768844601123731615647256540708607621111997042740515846062107386919734334897267680698099209474418976508077736323691133621431567899275945176667757243050871376687251075075959522402705196313785804241706577556731213920142416644428208022148604409885160596770934465805697161892668453224587263853378462902018297962039084704542436498295922914155199104313480595070366375752724750310658854750477593556076583519382367603608286132433071600343304800096253533702744234267631719674857253327646687688446157386330725489706317261526950328195312771552729210352215982786928643093770079556185933154600348649866624531686255700507011457536910859879637252653984756800367994242466219682101918472069631874609603012361036294945378607558394954564941394370250700853474252777804683933641471312164727028959949970767061592873383611561800974875355732247131402215225900790990962443234430883906412768818187054858907286789798927802770082617419970438624846561714125844800538470863241834773840554343658172757278127445640591419477904787960802755525769298316756651295615446062875139658148045038176916140332849289130496653968189827163438660968500869967759864122018699040925593570209398750431123784964700459276831496110560028783657670272758440947783013331628269785125636501084744784289696564161072205990822710884773984014635383346135090958546017767434787688737539277196898312630538720504790407353804164874512924736037446109564302173093065842693786517492652129917371703873405478968910506273468611855641929653177277545173702469190072226771177984316962433460630021614167402228836434673907930891129969214263708620201820099868475871042732452798825667025560056583273263702368460284096431040014991515881653396227558344048616490557734395960222187941031279164205000807467675895815371800981642933162145089389606352510848480068587188844033138588320258958808529058903815215412029906300770495286376735398656282039351487126111541127485714982329095934759417880654284482831036103642369591985846499652115859439756304090862034466201426576786160685224819479797714787275742028265932235808828449093613162253135854775083186376897294571076956439035351774119150958544273659232862517439480336723115250378820034228061216379392026976341012354834489008468330678675173462903026892856929715544548433773447592951376893328186320809207229833539178655278906178293952760552248036122592087961635207440689658876468766148990126841239801090021244064732409635670911684939438655911572665760533941610936046736230186176407633480770668155366124256840129211949561297380778397709306639113576106319388673731668767518077408207303845294671582716747900634854257128248895190468102275222000568602955665654692138083795303006723737109987426760241058124717882864890194736363124742901029492750624940184178162402556598019357895091970420242422330959188038888094473642033277746031823910695360861306402400453062933076067883013598380796434584392575396313585014571757154340392844470947521237749036526505445819275944012019847736088001479793413024833124787098575544735294626550329127119165415880124875580456834957149996843704258429136100833459246616133863042040969921443646087575929117536161795274718352626467859972786611199953687196502741015773864843131454096037762144655576300586793547480535498394710581223300929887695042951849899932888232015392394608486850463918633018406041777921607050323892659616743378450259734321367170527382099625189376155845986914169241491846531329324094162447181539771531581459707838398891323357793120803550571097532146384703636143963404125547918669580580272625747826978897788496267577063343110847623008785408553983815636468492926803354282495614981601403224059494239227048031227964062368639413815423955371676378689629822765124546992359189892455196176877010934169931133389940985168566286568454767600167768249101633658051051684009585825859147404035859746250107786793656569108308040282721411919899623322189784599566739431668291249634727303137864512650447994330324593739322119448750906677626465982324146338193805730810134827105338066503511788353579579599027506827000906180721161025431052951944642700076435770917327794072541691269201503877934314624505689374542075004893166542616912594719219922885999777079280361781577774824734164051586101376201931010993400838201931350424635556423332499883258390566757079255375276084468591594564425668167655429240272191383368982627863855219909881007415374049091502591280515958004614222673141586289734750282988040638506890161065956715165016492104988023808537546365027355755752449621277609684760202994518459945972089839129192050341359401668233156957160352893288476163207118974695024390025053981422513864648312851818972777753523574526748958239203726539364687678501083043270197872058761857412609903166339990831134939085046828915055284291442130660413144545175127450887202607507351345168373377418290670447543065273618218463306104585495650899114858514988210119752438417650775379324045683458154628291549333806477457549812034188247124189449322186038895489081249780883325478679565208751553684871627141531663548286705396027915310680261164638468352066398279717719365199198816916750136363278627011577933511132143033210400136049680903178963432658581309488097442028427345394908503307045126652311963833451054234301572288332439951564022392899946792970897397914552797288467271337623501724905216274410663507351468583026945396063642692498600920129436327368375422940029403000290857558936775760675828656498539486461993221403604424185029369973093149537310940033567000868540352860586534657542385473964635001063578642564446335001498549295770857694387319980596452738975176443201042543956304938740466206413151200243202104170738489744948590961120500172692041610353770513518602322047148255771652598290629443587636406308676259942560717293133561041198343574544597036986190679881788515195304287571538072783865461090426811046136550136998120662023043673007006475287208182431054319761905410106760906131607864577931240495383949854931990641291549959197408904798767415619647598130334019497557547708760282031529393864534857989554383761022945534489674980028333582670879567942380979147533618907278823226141277339282270200349713833488730296573410663483862317588709900006074386227526927748799686144888577487147252904678897121347952604799591723622219201185954952497380021967424133489365378611526484948860314779420577274245325570840053669608592573295342544510193222068805504712520807005504038279583063611861264310217157391703871968995670912852465787433886428005345901241129749487190523973510939140811788949299573698982930029921105145004538452716076062401204225806941169081861843378950752599501974025826692549175670499178779490938484903411556632972607907390249412199037845394642900656390554869200604818228659425008836109078868168472985543274815464752962124875333267608375040684680431927944027514395126708879646855621745376019788054567487135362437031725968698700072828349969892705104816177215111121404083352766660674615605199990039695772297607701948796472263574757408371471065690326382336526411478651178149290196553395873688971407504448433399274068723794772896334126261459015692028723625832851158843393196052611157298230457029748320720981197751209341790520762822045456366232800923610955484443148044436540166624272855438174913339490488107857372399899232246004016711655191951350083297008245349772523265757042282892802597094587580408766938422870399776108675723650988117949230410704997517225037677361180057830210630226930938234185641051887956039781428740015141331653520835474840353228369570702619574324457006937495589272776459162837075618001781581447747288054356022061201411994792685212576843654189706003974266112131756228302957142998651203723845482959487790011044960967060350475952409343038735141009470206611556870002060833111660424556706293544925222464042491229747034910993208526133533229572593292951711546774973758623797942190327516687817411371739876197613192411252512805128546157880390282853592797390707339758487831723285851883805529944478708392764294904694128186698851834135470904927175181667313657820863138358796035655019090462541162726023021377182661684507299936409757105803671966820456116465323780418118878978974342712365856427518156994391092996262619864813238514669703212268831941481939954403020587263447302957667149157494785005899173678801466317009947802902502253446143788998180032698897612173875428752726758011704418123652675658286866261251356077957356610378670566517706160490257528245824438630058082710345724867733239780599683118443017427868933013870692881352379332624300457375550598500355515396893024209844137842584760161971547767521230735607969763488365314889495961081755123405963182753738270732812851187336519819481639482212246649517343972967015103034521145657737722521593788684676269173468789274922481030199848805047805972991694250137846760140644241216085535252721251283284826973984020587624252312336313393516541885758137207544215050014388834221232696040675256185082467465004670815346043123122652247428358246060990686870279040317708819540164090333867374214305132622261964981666881260204384535447486407961452495585955581907056795685949387612524214567233871660031954117984231709961320838345477688799071708195832276910829454665320928824442439176240192447376120992067062803310450335439573541459042025508701472550004124881456074289577576598897969805999330394837879911805352850586710866035126490791110294466284014928572766445339680748047905657149612484730979977391599802543624593506552769091642538551416699690819322098326150257906884978165692711969700404732578571117754043658276831761561994801771263153662193675855417813030245409091652756934365236616712367042097461115825682951408648737572782181765574451661991549724925438418586695394502212731559922241166834621839961740149678155671358834627690565559643766486558313115388410932252722450574296890459234448753858273709043068619698271938881408838059639027480363567596207502361073064381328766307024042201336561441103752859266894160027629455237338491142572066093433413042978009966378716728871020886985919414276375784477540858161025385381561581980464143700248577153010123941907608057912774504247656101758981271542482334364842294183872291134112288483191863696510912190018421146021708382359995336176311197947898265140618965224799333595060908063953284039015803250510798501454805747086340691501767041809177223962599626195434425412527030930968308883647349903413870649041272984634595011372020234216602985379201511662210719603543895334395754524058787616151717289020475458574168236072813424626426413943874805459265503202350023558513363596878230796970375774716645932769187536358537375388215611293731837005895760923515964509476876283559656808525400648043978044077181577352599280750786695802487265299021722802560130012983162216903644748849360830518493595448534530915947249590129101891296944079411850507824192118004989672441669492623601157840500846977649635632450181751617424544828055706075017409548983639011477064521865757966005107042632392773795717796301925168299788268431800666049174583539556007770836415556017681646655591553860486445947978892861393991726253488139328514586730873619359927645063189583584497747737213761738286059382403104895146947194740934625580448426651658317666897262668617135947148778555883711629011782493050221685115793737532746357829256211697022839798221968512367804033138762773762077608220518111714977411988012050839097845300523934353394656653794767034559775149747938946534855920492688844066448117380250791676161301601568581058624458124200922629839127877000186130298573568584775950157459191632265070062111326541529393639566348404684441045516780716368629557302228917678729283326061908990518303269654342865493594635009051746087375444815998687193955786786681370796142163947187181738033993069250636979631344086642342387988484908856173252327290053997599052157597283459603994503134633320060699939465878655204918204968959664884551808318047916955464717536170557742228227240740324670355839441610412641140166719059009215960021448846241311448389749308236863137170893624420277033736502884429771337155947743557976539406538583497951024148357768899941097087019096303788264259435793490742281614537830450154519320824348140098836087540837702296364105690147649625053093434134779653405649119253333551063577025132902310257458531264596672697507489474901780791454322532015283317208546476724839264999655563974887793922222284525912031190456708818103667803220706779643843432310873978224545000819990460496394368582654059777147433031670165719000175192688122977432464756113754594830498288964921895482761800633936704612826780579800130540913548141726974273950324522940407587753021144975542520477835927636481894163718652053090772215492415401763726732533203608794798155226338419426298571033151044290408438892882288282218389080275479001732043934077921335130355986210167141220708568990893743099535048203408771925710986861039557024789368031544327578912818005224225057660001704795956395350829888991493995019031606097111338768252635249342842917348413526186208034548809541435096745645559331118786091464353260751953000053474456098394199545060108523155173390183081027581019705341296121677311647709127814692111514749125533337274011144275223839950985975514339678469480977290801998563078502064456098532176477972727693728102773161481790463246499623716584615539821285690983303722253848589655646659706115636589596463689072969378643091648713660908944129966804233203102048324610778058795437943052560930117450408343448381920106371417588461922317772920819002141736032253944370869476181746824406537071974347175941127118778056355131654205209940407298524599190664525990641940709618215121502284905036026959588078287262291315014466758190279621458410008690532215352870344544829738931064718640834840877390885968383797603803577240886687353679001080017982731775570796238566090328730538201664337421092688582213209614001314636247598648764186803465076228392017235856864766521840792972983811462561480804923350478638043642691904557140302820401649562689141568176603598546661687228448023071254430928877338061068381752536507173831979636629861240745823498604152609261050714102208199020684667383916676806877142281988228121298837619224526084459126780853943967113308581031512542671529854805165575291116280562883036907431925295675344768642512908990767919041235511489167533973382040652986396980801076091338595845640363630464545952238920211792597194158888046486200390754371351859005365144961437437854589424364935106360552579288528052942166603458622945054221905588343865174577368555034863831420340343853946976324450309152960294918215169208743527126387311410605454014003324363124750881649476220855467128653471348343315324484382675837408748530821924262290581925270598692443560011102896061902836085076291329807685866966705063973506197036060087606226834722300274305160861309264897571937441838169207653385861350112206596170035742790409506875608180932607899515329152182378354466920885311906447231662519376480323795454037931617727504085995807465749041568889255961442102139050211491757598999883717513687050927698570155847170520343343337775218032036545498321989014473257461785648030757311675751508607153439535400426564314740801191118716554262521394883030316501334687391153325939371760468786687895596708228406948117144385696833245133556141448166448089974831013282030114604540619918938954045630419142337508619675790144185988578648684209305260775263333287786278752305696118461554981913983008968877171726757345152758796061429785068799830648621429320527364893872207519832422946235819194108667176610435837479621569724221118686153164654169732054034731085440336103796631167529792668298872898342449857535827996560949809808400509900690720687077291020340394462614296545704239027245051740043071877318959445640190607428475367591575248145287298562679886263436128165240533436253471885496389235498492812009677884726322866519540418711099473809863774024173691077701125037922945568522394793418040398120421074910000023437503908098330046359825672930745227990728922102095003334753142532001379734535215431375360427351001635076444509433686712503464780548200432231335468254078064091079942710324004570253551510793940365373599996076188367613160686498156642616307881262724076355543041780166755640839282999820879097705746371323934822869969373660543084577458248020082999140767519949730229730707486236527485387988155952877996981313506005249825209049549144083737597048107644519570773911280651809036559222429538915515048490542226990071442819715333183865095025009328898699686520557318110315094895519779796285926011277263885353491089734501796328223714636335027461201060227855946107929494595786148111854707013157842969582517704537600076748460726501443734968694516068109579791706278114181800748218300365756839769783869647612061046710138802507114642695005014595900255117266628643895893169690019328529866996267222065129933331724004497452269964457977084698154753213382026925124152180022876422699891995742051284819550135987866951645646855542586501690564962106952278361037194843619349321078655584012656354837305396525196056503178893732634873879615575798372726957380541873612129737008858764979682948528390533252847603059828256614721832373587091778740660557297911862718365451757734450197500690977262102616668027775927678839292648200795545247946789894311310343610445270464863373721809961671927453279530270468832072502772936723121876052594362478131507970287134984735025197585978543249468147431413493318784955915712638222848405471655048364083792826182689175362038252693007035990887187309089171749340473067755884897633985348125018177182835849739705207452174666908865526649552186317319451022860938346323267246682427935742383228794387319960171097366114919467471122687311179161221496875755620847566596371247139195224996037287724386932316553484860152219687125574260531832568678495782509160386574840313888898420373160873728115878941876074696886627958148618900154140588376007693040236105843193940335439604907972344987847271421940304023053989507270650796139275214499282674752055517393664296781382388751223253865837446985503623063430926886931120291074520205284434531404347998732477313707027091594478956233775270365944670395944781811628560344693990128973710531753661233909373182472946616394828872166253331805644609090547277384014129343528537893969920730744951419343200499837753294662853836682691468530189796495069359623328652357507254856765120477704233684918054463595510936008242765404518710107959741222475572590265825193066858871945805600411295053671863631200986356186110405695855139232976534107783557833397934113642920867783506997869787345046417799471832198570429980112808835609664587095589131717781822385542593775183101510567627737424549499639404090239224083218356118721764733076129259612660453994335326662003086139043750753399249947857895938449811968350218800824310912227650901162520902064845606377662525273087245005058091474300078180973267816455460499885989864922860905520502864517083595859955950624823733499273904539121700529428447088051775926620529927897835251737242834199798059638785297853573534842260781663970413994023518768364075367734518693010132195488713523274193339975163369967725468146156376555934820120938310684070336114419105133839352540263000514808073623216150351621463369943900660949837998413756232244420283676681655299083129131911474799908456341482693631640061338313566184920526416417785786559322910822561472685600842283452840982948775109585606773821120950177641883603799503730607134665476073838595300101356259235607923542999981607679740572607932242097036779165164001884879662309203719234435101489439012628614418388564707575139110023003927588657148223249257502279124551814165632239185495066704765677537250155539710804996522736018058628971174584759036189727517675436410106712139541527931404282775886116349136113487590356569990983073999064819229174225347402580482704574602421604805263063895728227243878141599401611588628493995705273511528950652060139500397380096556424719502489968252600211305322821080884851980350453114058680072824206707471588922699621995747940261187608667291571969607704180706578213671814930544295932150327994056018123121457432766250164569692318367264377685231227113953535323507327440081948169137670167051715161367836639804215697578448773586100869713980702142900380370383327393959437961198969202880326292399034518169265564939413647102314877767257671714427807532033893008006923043183823698116625633656841279183647779773994167254675910229330813914038888474553164352980843546328248871950194486924705910091468046009744355342522792993410820274264518649463133428477428309504917975644175472122915618303337083290452373575774445899594852008021255863946190745220882054314739996937538016965217615817983143866666699270208883283813670558580901706397710422269920908902310114549278161956595885852032057654805159753545953045970715884860731799527578911044637227867239473833677539973984944747352716024105780877820160826135896075568873685958778606605793934300631078742180580818312760173597148411835111490647046058614101742869543895636412242000186278579690271538504328131626719202867857111263478545136956635598299446006892892215625565858001988743195000086684204492417555832211793018380561223748854084886729537616552914513358688266046382726055429003332490231609688374997979040410660653548916541050317704446936004830363505583269995946447410153595486636728703326764207735205217489715411954580481316281565046264714046918497463243150103194969617741204688649357458428342329351083712386185353933694163929012983822387514950986515695297179089729774985901837427831352418287677161843815540892758334802109659298819128541880593719673528818008709724084329906946877687172639851341708770905682851362640796198970151962730292747507132491565193097386934306050431357514287502179809368569344352518043208689587184804024560362976677346325876336846846233713208687257250913496012378323035840555571648973068151931530555592586531917362716268159167692944933697711427111321860918422325987958225633041891062874749970102587766152039885704114229295062974329409105510407432993830943722183097302396522534069457977030077708177212654041609271235812861485498572167750065226258877935590839764777932400953120632674970958709809273592094933041291045706297557467934415325501587747098911063335715462076744399649421103545983317411418142146539377835645075512504569445806499107458232840887590267347674387275716233626295301214474769217122062141675989034796352608108242017148727098758972521700042604135230917116504709550053343968493640118586035485393404839535567869522864501183613211731908712068985977884636513108533550143641207492600338431403909468945442682523140682763948342090395070207459103291407966358668011006462740474017635013772853810071873003541720936988822321566362012529668008756337711368308952300170355424842755388883654050138129166368110956483477332418120293390499745390036521445950284512964075664616263603485986241753201689084220215654552760607311440031452695153358784757860983492274169881319952865956120304508592257029347689064888906466290863199590123995143509082198112198307548314137905298719700007587584431113931708925426008665980748653014953018584232025799501833772272755521842276583870867566103693891440649560059227065650322346092434221617768492393129405013884515703798346900966208963059186425791635936742847467745104996338949437757453573204011953770843900051833676593971139987531941015301502378294484257306587103210272977886353605482233348601522286880464705047253115355084113948225719760623658989906069559134916134284719209038639880246854154558955550299846343030173499046164290424577692762764279123642244693072568444827357214809665402362560021669133855850386467628445059001548156881516546008756222898417494722727582669992107759884653640012165548238424254315509862381195092298811043321360568229004851579070839217630520905936188028737246786390590796004581065852570874427040192106209152127345872761900820577358080554347788082621935788487889559793244909610680105598547823207710762118043067289871817502235817842748604313878933581267014425744443705184046613661973541778169433633516199873655552130363282273159318300620081855962342902266328248157317327977687216093920682010748098762531807914086165597719156337709210288468868888580673953530001587810235992088421353328997754916185369336870973198990271473159390118823043305771818850222093559795750016664650164527065606650038117985193031031968978127401082665886027987667824839872269518862471624266990200517593955475301817093096931055285167110016146963634943611460594738784240114007767253776202064822017580733704588637998252031286174257058136344167994005171508111588367552773331658604326358193548782153026676544248301900857030950227274986780600678234606443886705086185749330843957714000861384526808714994328225287304712328175945728349955919760135477720743517949600806795410617480192876350512327127155208581859887137763987091111533439512726741374214330132463108950643375064530967421197256190519959346826104944644742233781222895454050580805227193391646017109203610235073655876031006155612831278482622133483189083477958482536697910921341153512490398591124228747381062132365056257188082122718868976939111605557994356246038408335796139588855403528273514131483588278268073655857590473451047067689312735229948027968928142399057085575836692353227695362441965745717625677894446361362736079540026742036948440491680932039776403073964451201333429839307706396907869272473138298040551842569909883926666281674000433418768315996017578854018685272637896819959449973169607559473639759611389841495021213032615589440717031924872842203818748713242054383493928289363907617711179320478815008886114110041152582050104819467187972247622873235385932877350684198752881875058974373830059827598070633220143885772809149403191524093088888815636448564427818975490993909471401576265427267942145264047140603583127472371892600592490191965475208588507970228378832198760371450537860338444464427575704589614138714184718181837717454454062397905420832749198523452644730749140861435383354383771699105009707009327900473804161721299294026690465926527300427346355186316914480085372911451399475031698733061657514393429822331957521729985450261374288290420105854020749436651007870623525842505919262386753795572614504288688619425706212214004883212511203750444055398038378081500577201248494360080638208498939294714377400151944712289963144323783833775329826018128554042797248809109539257608099662842498226060012881796673454705776201147479525050186922664968517593359607977482218750067252475374297515733410151311424951800106980743838911506568153315885594901816448878337698616158166463466386864039108808442292155119219435142500768220489168022237250414072377001639698746396681535975250422234034865675109307405777269033786436994982209819292974560723504704962355444543841207507424692366672442065590897046274140679784541285064889020674483122969267497153946454797445495948084836945351073508434511956425104141132858293150581983866146179090570761264209663900883105055761653357690350580481819013602098706335674666957209861344903122693703061065792395273723647749784411602224818310691560688613607984004916027138962444795217342702452270080119919774469434102057834338278067254179282642923835851726291874662337294444403414326364336375322245095874058490525838579071815739614574637079930108604740132907847206318327071770891534241174235685068551660477667698153454878841688568341419419962271295666496338377285799841932526289513256780778058077654777710681834446201593908762150283128345995161084748925553566340219983169012250237988516987060145467866824571301119436454475012972662437796927709933970838382896484856447601320765464139046985981556442776705571947416988756414864133881578528985298162937382634537408449841739650904400862394405321997489438542456809568164169900129751008527273254420389131212651567835990519580882670459659538950282156545917951135497991559064940063161219348293022968632690281164844137708997562814721068354745988248160009935445471310421664815371371298030827931220795924796764706581625869064501905828892906161463740393172160974526974712034302842913640427015440900605004035097944624159661847543105577765715511795032724267307625948015002401286528135089151367629372231193782939058803267218884971690082343388494364655996327834987715809389308224579132928787232433433915540938662490568533265431426227172368374496690781104837482537917770355093100664278138727079343885658417549550419989725143569912144671307991435073873471582790862371691496881163688435490442763291525988706508389295479155244605116535364439719332889995609470123044819453433508934911739802579743735242116668055569825569150454123152357293119770495372072625330004684686199964323253339059707823968880466474795385893447824222626520344712214927553819641138680161055993866991597950336116870805047701603063586686023835160395329908830915884706036080657324248542776682040475992446186526903739177489883473680658115500146530467044772177257724297113979938496413181702886834527980103919271303461811336703064972061961740085991434407762017689099254869913873195107388336784428397167954198100314645142049989580587606988540926461361867441796271919296755516682862903004774099518697032783365396460586853637945241999652419875063532020191333103375365859366616548823193156655626218920614153470304802892559669138791363148253143477821466069233395841255633699623638608945791655406741944920043907296176478318215266585369272184211174031098028942575197046636567585616052066961543490331699463995019368537141936404034674318134728236894524534038701382814642784869348444512708365355996533041013396683872054771205513444980917414037354306735772520311318514753825266058067775862652970659031940303669007669936561273364894564785464236287219172704189666918039260889313523244286138535231235061642399582972462064614209784196063892589058313242851641333743142843042956821469690335824637779824869636304854210597206508234800924050598159163947507051121942262724174502836243841163411243005829835839559980807331800151545703921371249308162383868836114933359792291725837340864622966515011822100229412731184973744222499562553775111933048844764038096530470970201735057536308810308114528487810479416262580625050950075620309640280197906410485650204579086715025611559674592500502850026687646508499096166575773053330898639426535207071942536052009366840631723248531508554876893027770381097618252342176495965518233121789131681778296054695653297331474877306019287938888994724329409056128206785867943600365913573243793224599488718417493117098922978650689707788951721272775564483053579859985175917284431139310264873803953936358346201466663263191503336612530606786566350943018769039273868976212713474083880963837077432338135508556419612137969630947984551898593211284347770874134441323606643258429343555401997529099004226851440579281748732979305686596882401293964177974669878443595448417177855788793628206945229648076715064284388559235819602932603095506549191040887178949727404962973795743164256604333045023625159032558511283199604853468168335206266853452037801591161654380673116421970112026275418986671231099361887545131442129720818385821472808816708676015971423611493255237865551384680308919303345014355871463882664782192826095737913127735855825837820695449641567209579657782708613554943781433852585849868469989700272701091251890500729353149121536322153868066955677755950263396799152650928789131134068498942463719120528217693079092266914605629995810615425319601375533540473652263669559373308364156286370835695991026145651750197677393212896869273117746467016583890578785808175798616551243731362459758941637156982634641329904692597307099792072556505383437056910549007317210500189778571675701824161564151075171559786097966730970566602411248820796997747194716349170743641157519895198869517073397343363525401115274014483826879311915676860392306510931713874443224640120482496911881177588171167589239517974778223784696023299175842398795530080184707892252777332148043898858370883595462918806787998520614383136799935209200380757991931552572146475308445778926925670454665463066954411261758263742527429003815004584249275951355933942473274639157009471056137414606974896147142968886450467120979507622228674233188854607206050529458394406242942878948530613938096043695976447232908832034909957149830796701848805337879551066890776861009679898249554016220024575691887672017983921002157423829302731181991750124888027348097542638208766387038018640304899278895605356291315511340240222459853675337267973255408714868214115560311637742227416550689298685895359290669507684025435594988041973239972228052198358470329953953901273052053208278959314514336115300828733833928897343976756818625666732021626331420604794695995732176394552011161847628917180382263468811693529802420004160840026036005218723912365561099430961419234761389957291187326882775561554487491756911898224126245292731915406442973409934909843936526895267738173763332173288275237648715257932703988313458584702125076485327548538184888176094139412550163262164608816753668387146378218983185011412518104485989766664498623019569509111365155966253124048019520400144569504468400981597385191318398738606279322502625782218137910512657375906471726753717491642278040590028450584272563104359046546281187663520203852524812576175102756998252765083122297888022824740961290340097683459698680599677179197938159786210617420469637089098378912243517414990397308423941305719013024034268522024372043038803187419835648230422401064814081236648077003628002898888745348273827894752177364385734873439315318888255443606123929502947487859969353792380962047671424530764219182944323602111396722317959602726628654030522311638401777887900542838684915298803082537961137813801791499028450780922613464142376385364815417763153549725204710997431896090065136731393025114111683530896772224122281381494616620743873045233319344760389277033825877158181939519605553663981430715664152370486586889935512334194005332937433290359287196933507484047185421680808626081875561583055644985340324473586872233030089345071789297193811090522699343468725787034115489058370484787304492469625187978846894004240058262965706531962487322676372053308050164727854867042897311976647777935668385739352179802128940196213483976988941915229176669868136901272494698151941639023512905898286521542218711226850525140615178425060221426138351430375694772770708774983006747875628680305859262042390177522326362954599268319628603588210441452560885509631890258790048264744955997798051425428018087609986565068313867586594598447842284264759117123335080839061868104566051134797966409765578956390720320800993190516905372016809207016738051501452178120383824315465559273922995102940462895185443076920095228858674906365067340718930586717381201842965658857907892930484446101642024551356132437109400619206155596700351107258147563469032415391336358312353546510789053516966771849279762502053905561943905813576336062035322373350666733211362505463486573180454070312907585993211181631116260691879353622618167958455671668407390098197617591153271472946335907636759299121421304632071150433055008099255438692960756267525946682722432460169720185427941564174794819433973738338715731494067225406927708966274962382666490084777044388816892916850641280090594728170142593239663562146397441410831088363745368406259675059783911255144440137542004374276285556092217036513455162104455068997641868541300455312683629192084691085431716304607058349897289770873797766631118500700576222624376025778865064412434141301317432196488945117605202535235028957438484551904160097612679080936936319069951800882332410434309523633634628399503020529226201959204953138469929254599392397705174843000725502669503536093478128239984090138290039747853378286221555425218765713960643470027365800265182059268341131173926475327282502819486170540966844954805906827226318536532738692172977080157259196917123598410705436750805942891263067067466066272494310542211616631595399727868862674577186931878638568627961573923712447893300980015142425705259975140456047880646664291870486725720618961933293331069942107692254001727291208094403584065885220937568776031073816623080042827514792920980960993223671101645650712912469256289956037537453124959090011809577397372574164709364954569589602939700678027615211692829262499753240462065009883430065065467024397182802127207981340463608773268946832410478001519321158002944063963134955961891352907538239104132550481995651925050046177310666801559956540235012060617951173016915788324730134968527820573045152689424138926402786352421458772205044512502623472214720807769871060332656645263018008584109743425701904031452987757196270511945392592024478688307029054260661719259867083219325263378367883712500304228332295497315241417158023044035841653114038624946067115790041559850602427893439246251460471244063552040708141769231981088855287075210995523588760699133124852859114838315020250036967845775551553567574434602037266935021474935848085960973200236694098963192123789919681991967941453324942842037915246548430922401727429093517754722820197300177197177856175829591255013898133430930425673237305461392127388211562381168723387619515853900537463010592762174290179809871078903984274064866628588687419803504003409213914479877852548591196014126214036442412871918905616023401524896996178826042552023196840900448063024726136161889308292349013371462340771242652095141032740280540310149239980558641116650734148284116117240013161160724724125439430171021933172035408758349882222431295023887523300750555708070417501779346294882327032323551232242489654185558348666667012661138046204421763128553910435048291455267472521887322920966427494389755064244342035591611801393760756697612487521226211805943082772589770122601019427178562255823684785517577401776668475788850925939706674887309314541827097684256038574760315531918955274557146168917778772344913712109622309708451414167411116247067964879297614328139179541886919063522390084724570142891828323450862109208275343159693083029205832932414479378092038380598794769397464617035096746849904059102416741798963073639234145140057184608773966071570192574144982128280691203150818097367785700661014564755636023599433797140475647673394085080492274485334929415213899980200689344073039353155867990905362214129960475958209570861325795965786311450179916276411270047345487620737881289367929111610184487614638872474933080584487253557581944419841599162223109071360500859608301190885259467085072237140119611141179262613055393533570510460645944184150792012163078487638175901364636486175133157395076829087763734889337350869666062235053242587037293521811680368499409510660837132271163763844578157118442012853089712412195144629675906710787014111117781195301423424489489514682661169706798930572417148826614704273725677997217691806562806096379881962749963841575263174891865274445901935201423344209015017511087301737647802699563554163115986498388572546656832733400481884286837247592653340668708631240593360618653316920769567636400652468232195263092750516591788672831053258047280897134380673587088772315492475763067561685755432848821370745874942657548582532540513887440732051930661352929993413145853452798620162656855012917323928522660769355729700249016171003761615671026977214315285470822653646172341851659896730562073671318973393099556655727906016137334300827415103863139205041259292335272876252731982925338997934901938541917529116965783667607773646091720653007123822127077633490448545861516426983389815949768132092180749905890043425919806372484877518843039456621975996002966705253270874933202063733682346521192603724480082583359366858093071028721336363895518095696947158672271340750385965893892679379419821172916686005519045385700056936032092622791361054258835046299100307862301983316431792244438533405327269995706370401583372123557585975026679271890545141033032440662921586872772123126731614937633169967343314411752248471230666011794557261604568436474372621123075059374325055215436771011270385823694933894579800423757175681337847220358896669782133466008739598254757052615574164320487312545745981850397355952450165028671647128195866145706999011397004264822718169051765251539836084234100756923145419232239869859662292576737240457323035026732832677107502229593902753100470883044787505201730668188257189980302338678546130438857701119176740753695801497029356865587853141263428799378825107940686665603154735683737144383446444478819265231456726666146840398444210253018568400291380932173246331976851079670556541069167451173064794605285806459724732439427093658234328751924499113851883531619757806365061170617914787506000185816587713709075236394261109940560853300962132136318633079155096135512862165512285152027830618151787135914208183733449471868554019153286812597059679148564538710999419970386794846212569216401326299196175353501270461049420886234620790970091555171822091883076003525464128459875680943198481949642206176936995317032846779065647143476421881655234911579256589068718822717982429104254853440683381771633714912649720944059890427032387200388517772948748928464207771809246212200548225758034583003154022496202209371268626698267264570115187252292014870875907642698463563528463792757997054334517169188578629185162575787934472791746648633649127802778800836339454494314573245056112149362279525128136804298022690970576798875055334333256519605839268995324964494863659627966215803810911126493024845150402367116814373151571970956564370728236797570152454200076995152637430153207545473579360523993735281592988810165305520369258226248808910620374773082997019598634021356028584514571942873768584749176194432752790577555755451672651365963471427750558787599169427845247921135686568979095898752024724955512025674910203784479446917927418278624461820533385032785284686084480780033033993311558395700130726915273340482204276167494145462407570832716594626276467804946225349020075965209284729600178651868370075088211115745891300385092551527387225127717884914609120876819124594374012987662904373232247478514481156326358809797260432448211601322152018674472000689298170136574625379383547795657084607357300794968029172679435746305364958502611083997088666203698964252489011339042484152903364655856851121297127867197818906743402686207909993111889758062211737316405796120844721560628479740785114994213816277571490373769550843311667731054658566577030347629209311069365824623156862476553360964251168381130358770478351008590502242821554534547138440968498771661306074477191469348864547628490506736351208773016178721990048972276091180698696428679198933229243885366130957400403059514204040085248377971175375487129238966992255141898774934452354935945419770685741708028313748313291368091629819833097843720916939351612474204208190960250322397647634387741384873721800977361365875159793672549435079485883926938478259011986386494991399925808449077261898956277313356645491987215739097273687312539282344462177840540786359051940099548940008065461846659817067756104399280765901228519746689551955985205222824938391756233637833783743345140859490454025572030582864117509006841285612084329854484517267045847311793620742894795030591133789906869359257338438019484779073031188194342292282216174268355726989805372744096671783722149066400015144575934888056243438443656138847515424328021862582020630733868515397417252428298546452411927150072775888783075018216180951839882960521685806835382302151950436338194316904941481092339061423604186163024207739519773348882205818878741941052262282936874632220792931368206172358699337425787406400906973067852908252644773395225579642356077128739778145404890374575973465983397818985632219889671314156568020509353537700283772429206250285930150711026920724600090009464378927524718647176163245745037667189672490333004146810264369274147949694482122062060318215214636918875783415445223563141947554566778387172734012589565795087711590164590478124417962523796554270761890340332680492229444265256975637283822118509745218145845511033805092571038091112795330366148462820323895962251244940383710562481792908891649071119309507240947266035200621497191810081014035400602328718063751840226566542308551663278983409413998319574617703066508040686869621039754336741299269219922654757680599976387368969714724053669190757035519897871755178824521904508277087051177747651422631811687803995190280359795032515158422045327977281270139784650917315619021369647644210857259507943206897656862339503419886552005659796949137450346394351957852806574071015016767851876779681310120968234069533273881643964422891254661923304256066775204871742301960310038014406097693105257076840321708142931996140395424963634303736240964840079994236567594787194823186910741133339818871734044384198386636557030871030814884379503302071936050414547092845014993561438840232723155715460017021630616271789824934980147146734493691198635440417883546735169062884221078730347953833288060215781283694999128067098741479401725619280302222585587047122953396215018244709238220622312583612424098915745636548876263477560881011593557544435785766340748840535369947296816791321497431754845591433520600540036635613818717158192888469780625437173910083018185289892896478070850616324189958838027586534606128940003573831298391872553026611862088298667165616177847773090575931360706872143559915127985506839390420185344289280997200494108478199165977070868537387708385154264150446288640225921196168911947983474743679878017912537625733685517772578297971316239239120249439472441305931165785540587196251409686313705214406656440188099680700472093808799570451592995561217022029012673268486759104866566656044719696931131555459562003501194356818811942118467444840227462743695078489245536277955100225418469074607633358244738718140441288447080308636836594509239152334371947726968421723287880989748181583685182058896090658536701409160209608090175492557955590170568407276063107217688458837905099974418188555786608261495598237440659470186629127815237474375708268015695403663752809533134954659614311330433588567644687607935234048304298969461693853021836078705875614042468934669925527518025233890739995931968231137626479416240072569381364479034699580207930229123014202234271065250318837074462786848711561048870434711338141756592068803247907191591850137565981457672977898865466364233455487384261377690474264045951002761168342972977165291265750972484702574685913907427800668233389185613141117286275537680547205418070252348802235255249363988529438820177345217010563271389439227542769666872029093051330848951245751100299648507615243668806116701450372152177518433523690097728144384055254822596018639409372706223237687768877564200550492141643604607720072477239472670981334139150259273632454387343519731467206697485999653027943716916171692749208887017230631898056514656432407718010859693403355568764792120861119713064707658831193685255406285759114943071132902439886494726417047230460974964531048616910743398441298572748829941869634383599873469146590238906003728859833540161987588628395456162168331917367342358868050929661990303654461203431655649268668726373443027936917114583857054832771168887236241215691731975659392061387419596763580643363110894948449046569026938467437631743701575039810995922850819740224906172295823675296117134788597297756884739836904609724200502152473230751755483486175327864798224003568022501104937994371287013391086695685711072370166494426004138878445989507026331069777243078568900317111634293846777984878664058761640599068288195191569652724786670395206974553004805390771506957764513745526996069720906240757784165387104043879713440630443948592615074118534436627277230536829884396526420584570840612180974985343905750925313077361977815364449274389626107628903495108568173797097661075504035001073692902860723766596138975406923095722790719822021868049089867402811545704293008441341351052202000902458599611185677801643045213399322886185366440147833477894603764812342706583733366911527160917363932589287270529805295440591033635728484835783588725416662521306061802441817819763974461943847386964001080845389248208005596854119023025752865561208873524468644250068328517723194088532870663391755678814775766066869752952256984498437427483866831165657732378719020371813857545321565354793841909755282660269215165279865078463764181403452975409438010817004740945032874638974165543174012106568739086762683280624303262978946270241413684685660110377367954186391149304650111866161034154006666694426912541884983757321095940122893984994109647510256856724778895068347254677818585729853706329908950864745726616888412659170934552952620714763928392190809712969237775935181522357299713468290277110509156543087674333681727948290463860386106962596793013349042686448461470789496755614126404092934307280406146766947672809584061122089291536616560676676656648089157425890518087220048985986421843012581430713083523613736627841025552534665195557651380170630854304920091103032709617244987421989735478685210375965943528979488138669858953947229850537477768705289821549522280928466285983734713015896506452312393027123320449385421461467753875382656238543818088782514036677243339648287008568780534629401687783599749922637783034689525297061909601651999056171399590080615396962957857849860333019991118592154754600847770812176893585972269048560229802275551926563278806672154645809422170609363021936632639787872221777643702189025750096430860739135071383472282063734619479147104634356578350098237129927318159106212053383374320226839950436079350979420191616629201070681997078048493699386080853586405241499897759634788970071779637077517610038119364653286798865163761757560402737251447366426417689761838938593141104974762241672027807599810672258964970738768195433765982401553766642041162728741399914658456175379557806019266293888895990434891751203627596223117513808044609764368361679499029568155384123296866626468600162550344621707692135133225269451563580818604522797165954694123839724144916726593792754131591920861862543831865841503366865560811045417821621126688255965049453979042365816615977090903984707051539129069394230325932948606993860069736686382594154501647826838074972364832853336564670278943116414044481985292651833009117497637288526717340438617185186306722629678808479147454462113128451990137015765253698691937742849239683685110140239906359138914668106360913643080966850236029456510705941181157353644187145970916328487006295570487140349235354472636200516716832241733069334523357187692819674349809558199070803239436058681753653843807216134071454377217128786626707973599700057680365066662925886010336332904688954792760488211430557577314537160360018248884168458590117313677694195441043845325608524096134745309935583328439749811019606372416039495940801978829801776454916493797135822418024164980503570425333780147015552309334516464658634152631799114766609949322241073824987092445099780022574206452716991854861072733858438360231854199999752261564908252770370354383908878373805828305894282227068314383575888349349297522514762904751342387971303489998999190877605777858107026644289676333055000713883525170170724182732756964026626267801437124700818958933698267213932431160936369329631627623771585868515753474843767167480117632760175419516104483457683518838193127279944434799713581065574836575320932280842854196504538382847671914082628108099697853832239207530485480192533781482748897688276414386124101801805066081670403183147939497207391251530873059873159674506581577433811372295734771846327223637256203791571111983612834862034660641445017363877981742249006667751571073646543825666925657335619716640472939548357472780739744045962641799718582164135445577531477547767360902906699180979340617754168843866312493977030300481765596167769709281917563314902899831664704374599424369196540239305539573489766846503310831379559167571965196777321179930499164188001443569270353208374989269189472783954555079935815609270041486701185240044457368798039000981221163151895482057778484321476165861541503072880322150993511516606940920751574965315562243248208231579303127368511328059374725297669395420273969395414823580877233079474224657505046063359006444229101732977845631989908102250638557247216326090669406240428289729714933632428778193383011421450405936565774083311539285372979097295912165381165323070519615973091302692556575671878471088906915360192757073058931631646426507658237175060235449544647701314118707521196254630571284088226184926311396630984983704335881738894173491154732516799490494753960869761075277120269643685233842105661382178056072077208290156723184736994477348886130254041592620364993865994336750603855101580120696756586048670131993217227538202339078778751032074932773755483505598335954823946713303393876236075712177140137246237363964456900890432687926283950434347898438861429091587624804094037561965007890381776128433742612396258702915720832769877392824558823412853040149558108122132905731829064820297270254100515599570409235175453153777009539671989580006657855844633554213859848272702653633859504041679992632966746553177291394180991566378877993807740751355385443726239333982861599092025543182751712322004384363406327445213078665873895711529685284277195676978963065700671979365250410475387158910903293744746109942216659837468318911586060876253587943141070957570632948540795433515280764468961310512649405987336582216862540254750822345586474371529416490509184075906565885090111016068694710026564522738656425750203734946648086787351192415582867340174771846357361601012841782715981848850502001139937578901193379819808577743506376552793830486288446045795514152715208540531725163014413908130781488015034714776109376121551382695206392893002844027493926579000470176976770281436344047230430100117111270697246903033381191713297866345015186183152240342138810250531372934563650944539305399448253901990241228816552864383445760476263924566841622194255349246669169942800504672148213412904236308916614826489923925428970776537522899024745541905073899460795513157130828538256269072353134471190148584435148465205918624992862571040427547706566184423590671310099921547625426929489964150997570367709216919648252937680305026018264595961531904126967349595438689143306073409024264100670012950017489210907302516526769143813022983705407361501085127190347995725141761789655775481613520132261753984373471917446353248633694440551028940107536506656798739827198086039402282041717432203429598126087040208123949795649758344871252381093463141639833134550765150051061715296132928086027819387438591312127996758914178326541572214334335412004758648063755006442378679875557703152569567356462701715511510275208059181255007100154342897682091726724293167146055705623083321926587853574194343740738414472301063027479527688629751535857546282713593984179381234993535827735178230822037176584086419922956278322558853656674237605986183997866593393057261869564868220819491030512505212215327198906724335849693950564105411739330097942935927210518617020120334592849072849298940943076688361829857224160594218283460226784459574016945006292941196632363490460482394519342764753253107787282314097764293679123890442571820088351229203339947816127890022814938932619506610275282810954986745240064618197709454962130145178605183043509826822131823120056482436742492712087039698898772145185181251630141770381728230428000531819869313967383555231091320318981254200404830985056495831626707966373901204572355943066904575761313795005453025467475722469473899957782918389597807328669454615943380945711034462227552509904185586774504880163817576330572756698100815458956790762729216361877883045961711396091609731121602705851490289286439217244147053681780336015209406937722788181003542277173783264071464089712538834375286279797792528569602019677954136658561524305544906809958226929709428043150010862592530339138458741458287602050567192856294058085901361854493593202347444368616653533963724611281204913754133808640400259897264634620286680890742957803642602692421486999416817652645707716906288587977744018816936091959077046872565517797879917065361055588165450710794498080578225424700452616171186990247001447606055781911219620127020990889674249635693838498400209143770514311845148475675132531586854193457849354434651720456709989638538151814092171348744799155859992557469467540714984960011792724719813892067604227889799883003377700022910179907349331513685616125928928797822148812140772019337645650425840994868254227373676804116960519538977292720281486130662338269047556447811693166186353744171174495887068447013051094206188112978244866280595746321856584356803088277979307884247022242884416065508938415891143444226058215188526906517326871486781865596010420228158282568039859343748849691807226010501220585391638137552962670907540288278910801776058751210250410588705115392670258030062899043978693842186418614089176252058626704562612816199100895049933519147173999750553209943263101264092433852365791654714400460479722007288369170364098432724778298328394712832467001288309992901314183299587672178033433752726669494413175088319976218000324263036048923241685603932119356823910388499568703895153663924589635537887740879153208492898066260755020881468087857414506250645196540877240610419759641608790463552694634592789902778099192824742388907474293570536677055135679821024850270228027442331783541030228813072874870261844574644405288286626738895425550571831429285904670718070382983739128842400973395703942020722914614164390567171626726535219693314232147366843117672758700339442423549547513822812764192660046091254683388223090162955196291888052199047868317593510066026619519599966949788295850570012474745014863086636039234904429267922705766814874498347528850516076615186284683124697125811536649907568013701980928060032057661426559059491409930872917359532077142520838862354728048232646475798199425333134287161594295825213697604101871115572879125674686642909425093912277913769656112408963239832139937974266516153472974159630606727639913495906981649181301821781933885815118548153859482899027871121499537507827491110682379994361688371922566383358384659358712975349658755413304245476095057812986470568455211449269410588867454017770665772244697242820070837345162354476984154545576936557869090976774427496018512783103880036349076368251070792755037021447195141641103218803701650374843577041959525372953570139828457360904450428490061584886225383051732810602375566885698278512808945479571244076715475575830266583451001133276626113324776755281527325212892537652176111514383794404411601817328193647453626185820919619540459446402590413061161190588253391714730959011475773022437550031732786051554467329956266861448119820226118187312020201319733557300984082345138565343839153726192353800288919122343100999187329183153483132685363825788825513101283895235934070458652957264038057421168457026644604934874325611684830943831871230570898304537013035727809843911383558784274321621513255777042393189894229826145655702979535485893896590033674312213651468734995568356945594663690665093909924970650467815394587868980259633061465207600441982735960928481978043750280785624945507339266604463961839918364837048088617485204020603757510398811471613157467846783530357141374399621390575910858015153382054974968129905878112673945037415224947593918328412908383569650488587729335424131796337525584963459504950113750251470663032740251910295043573540128520604643242513126980620503968716120958943655697225329174016502915639342379922913337740938075564295903222892098407376881148206895966413874434312557890272423875960022413971154729003127638862042136279554589548494110705777628931840589452992082918590528365819846790679897162880375936342101681449246710367846714544482239396379376089683702077254942547155465317036728687763638074279857509884614574499978100401593037544951975277857520798025168068211689197960877820979576071623465593098203843040514683904196839662384114591270679511069473151556119847255906927168483422073442168264309524151101078690005864788060285149734707936911072454752608986251263169954361159343044102630664454884000139208770753736464723187077711479911537701745563638465742753700586094376573208409621977033755326520629727000129995358096724938558285039776538296890870550325567181019780398452468708465221116157222802921996922587602794959260089395710300605729312546134499616195376380376588507966265952926235258668954684195676552424878670247385094829883711162001536145305411639995066713564576912840876960621659305373473044424654919249135877463632592464827704136159798223802547204319383965566323362971440557169446843788979387093785912373895090968914956662885794286818351690259829239056750216142161159117291404892817760192079523957369912118360186471966747044407040111239088881257738271015383491936348447447010331768428695437825176479250966749942214424170486035396590865420585580258543815677995054302702750410123906459021942067390916535947265666300443711706272800353477716794452927696380652163225447450442022726460150316057343162995875656640641917258498496721429478163716687895979064186260262930351589359863203013689454789784584909078792757943050567040464031728073621158867904315485762956616335264957279460777973908738714533183639809343137344415486566279900863943758197516479920092593172439323743987128801359989929355172036904532151885085496272538336760510655767883939852028054525585688504949942985176558920809467708009914383697704253179550368596994098948150226312073301294582618377181565365511764325309704148275261241102255468989860135232708839145253008812327758145794866515722920557805820605445654650095498227648266218136494808820113809246133723903888018189454943869453287887560827568869757219993900725157626361399476820301434246608803519603507843776144393918998063267234538888291150406000697009448766452116267179167598235604664256450980865580723734706515887147294963047320533572011367522268014241853510972812370974943635084931730761370804473367868685522305428608974151323757844951164105335968635711481064872250793725368581878144831739916288873360577275284609181678909996003207567150508693346923544470334246028418881410348225319588997872692732984663708242910950559399899462355710465536224232471633133886859729709519507172951860411015860836032789918559745788292121597398800121743580430315150774319165426652834917960546922667643131888951883256170263020143322780293090051112728606624887869629023169293087673911830603613629620407782955466954136366745738598721668852105158162357689350677072614791602764952333701511775798040723642100589019839870848160419302216861194922771975158630799253533821834806201593197735648490634824669236889656445325953404231308074962140316333221463326622857340828091219712536951591775804717284723862425051520183348764449908809016275837425351955103814346945298938467323067359369457066353398120256669518360187668794516025176048702903424474253181388370448495678736144461851020431600092099707963558123814780291388721221992949566810585759079480678067516999474102642730288087552750161957967212975638175032129758207654970691062212857287555892685525742965996008745103087448944391511181768811205673366971261463880325425506176581407745547401985931491211816404110576609508028220251541870956955160019008075168757880301059573808761097128561670381136188081150221312812256128533596305442210465192212956931580473578418175439587393675784031803555958687968754077247419530960809001510215898374122873021512290892233317454125775996392687087013064916890197303583326891258961200448349899164188743274829622823482673319462964868062474883901119192937816560430766613270720573128547384870118588044584762959967896691634845639144817976977720402901360313277333714376420645318812524273682462472653706642149707752382197185557107728546758043655856712995649087242766647979391765603367666582747602732645319423473051654222664105746377343129297808662566532204024676431851808932762130601844156347403545369841224978765401760277914004701487859150809732281522700548724691248364523484729664830462406444262330902636065838665375224439730079076139280708304070834530791682899458232555216160606330672386831670772065305621840982219771318716285171744075538874778928223936369554483214945727793194235895458524204698545790056272675518714736952930642867774609552422363317339058382280835814035112269891742846203900432888131421344431001615371438389864645540275103331101640977881129346294733913937098561121698269619143166281689974549172284599568017399416306846825901170534255567865245964218491521531884519850908194929142940006456961182727346662407784594636049357839928753824295654590281091406760506193140214716137745493662202904488248357704132772784519604153448011071924630420282976091218964316700062017767428187749030431313285747186582144267311649275138743890056749254879450219428220822453287130426250090669462905273710435135608103823923560690029008578813514649499785387361660192172669148025490693476574018481840647291319579873563924630977322225661806411768586918004173779292653788829784059637008216978677881460379984290867730163507853570177785913934385519610085744064990891070120989937069009684362309046623534647751477427743683909717489275282060279235995573541649666638339877350987794106082450062560229279733615298092985595492505589292493999494655177159589938249969543492804253870353487671559001391935204747535448375629029698357161360634091926701080645808265215118786250831512922586135664858651176887538462018367057478135865492297589423010884196124774171046950861272286093259453183923216062123511253058043742417495777361648552296233653868970816800323466484659468132021933256507100310417900776435236366744426928006197221939469056587859220157314507122276564432585074680609776867111047825998117305805273728747655987948796876520723150721363171755907242461515006654513680723871677944531012903906160922526048516286099689595417100583932883445832249653960415946303783425734907072899798383486370952932678989641635337590444161380512296863521183162160873869733012308501343616037821413282856688696155526294890891433468813209224586688997823747973484282525708551562275310938939330607481991643922486057860400572121260205856369510018881530258795739845665521612507644210993243861526913251215228131220055303443118470509860640832096361828260993600108213293349570313837507519351420784013384904560957223140626052987824470273992695765483256816338606175729364164029645019104783113267359463720333200677986007310401483951597524913158017510384763876744226113177973666889007145131676021835028548534459532232323608271883586487504942126178660306897225501444992909882123395399155912536909452502084504866642922970770415487458540499212174053492576125021404190077823335174773546796065078668102206477375196775394984058609160163644041695057932374158984094596504244670139135185940181320950994728986896225482006217886415397938839860337712586730577714281033186740774419717347562512907598062166330298544319307427307149191688696294593131862120949310446432801593039939561958407087726516172239169556272622195918783675107176787620330301248088650027161579472210101151314492271128581392896955441611882103458921166917027402708044581013789457746121788807066476410792250235239060022068558319036396470741771658696224044950448477401199538620748439316375671041235666735361564385447526096576935344582390800777027282352947649508564652258883083616236748080339848750617793205728379430420029165660880122632792128781599925041076803839832875989082875780315254403140002768626705905505131912871898243029379986188555760545217010374321702121215055777687273124250781631080284859666738575385553512967620916023956422183917779037819683990231639812570991762656253705043508698749385540588517020148093775010274421040055876434366335770694813066662952690590223604073715611330158038876389764230366782739100705171025174991065627486288256531840868094262867447174467944271770393660249993578145833699275528661236949534278008181895413812625470458346662710652120877971404336832499309036083541824402238235400636433489939511104125872145223737709546329888077316482792995477451881769345163128655407993791029523507012884454365709345572089439235114445413556579718731459809508786339698827881911630370802395893419581147420601163339768403872670618020275222774349425943364177919859238757897391963124297116823106540315779004708834245109862130262770764669508374793576545264327979616679878721128983819314360251103617874202059607800222904469406072614858295664345911640221021252574350157664486459299105511338210307135825475857968682521949867636790062999530786942225511181012553556407046412937182765704986247287609705190848453339939242741165318716950527206680893026101573373447444923280405576538184896508698475658319159465697229876639433554140189331180272553086205338527341392476092111100087753970091439277485915816574290032056719220099635746730971303637708382116428423850314506245944241017779348722154983056536652671945548707730774937511943464038680700721240654404000048331189496297066215285539747877439423094941970402505199888279836931268492701121973719582800491760393200610976160128061390495608480097220099948929852285652067410093929426512375528673003429659346411476208032086478084508388586326851783484161190130919992243920838015632257160772442610470422291014493787250047353171343969693853909026836738002599095544026800561785785655054906054812616721105911768199613971152880579097983600724210597516795595296749865142792392509580856925382880845605453494979765849685392217196764752205733369215265675012443644932753314019596006233670787073125435680866613945975304069541542911360435999894977737698265889056557915400523624368956107483810848005139710073533128084135461779208606920241473471548343098184975838807013236244623962956640870574684803382031145359008954412364059255853114485974415074847498930489571182341497100375934492732469796123883186298142556212115117740747027790269596929867444835667392792576029813957501645367167517174251826930327719592677177296167133061903899160149264947834206023618853746598999859138606740033448940354126484607033320145292934231463872774755430866495811349034656270744194262541266132384958454163311174318435612060843504054811315856139468060274409015375862885215797093280478680050206522994486109021287461607718594913882352634085162029969303301862565769836091474218866006759253408881836039092424096897787492566670418778262613658528365637085710124004099579409237433538252787760578381324809963964532113298406472359114349087633251696375201108533508635478338969583897884708916170415458034156794693057077122204967953930748523425203132168809601986292192616352525183338826961255250288969805207174900269555122213358274914817338893946442770491145681289762536112668160339206640162469329559023038094960052990679994897425289996656412931457711778183373239638931159714191914518327474742808357344637888939147777807698065867643972104131314637989681914770630567605134054736175904290112057946344547506595353374376154023086283469457469207566878967071127225940602665014528415297956907908346075286506614518986231103567421839857980612746513098208371453826075568048414052535864987088021722593640263366338691563046577485294990778633090222385471651623634991069440048145908884564701731752781515527205385647117689564605472339102987652958682910767360891837390315737789951794788847266396969476270466129665888080343340240719816805256291901198359608791494343043900139775710631623609679274877692325681703430271174748369759177363753131068521546400445500681149082650327519693496867415056399175516904510514945472378863669895284441999337127170449010746370933258222172849009251223668569343554231054045623065466758024582988115364473091045795932755897663633847829221667302547796861556306057076744018211466923227869885895474540075345359376113905062721880039085846238545134923230517458895073704271707505737280424076622889706173844039592684644562254256131123699085791600302962387778653712160480834283282939861153801909623969320616394651769201673135679894954049040591987876789214680428239923522261502531646099931033986636294073322758821156997078661130334202561135976834182619071858133720902216620706273263323209736448114481833498208736287204504067376287025034147520309139582901431272754155702534048270148467405035450763390110427744736797017698294299407659748073772799262416663898661700923445734385852315204626918618934719548650215505176792729671463517019024024202011740064925402864673327458006352453059305914406424069058129901314104330314734463660082485228281425472342746412497494673624622421150675468970112285747356064854241943716850910883190990813327774258067921318291590023922010585961493044078336461599756423847628035405335302038053025636193687837221190242152588866041316405984177622892963579721963713318231506067169474059902862831992960888978846751776928530401531758843894954760925455034457691789828217466922479882688039371932585155685369961648457797281235310119444969772432559662985471288584521732785857497678467890070949192505286570647934608587364593771515043855959044223030918840109258313816511754224675068540768375545907173647605821730533032289189155104873340533178291921701271883369663785198382818202759133581515565444367943123348814280517069074004936009458639869785916228815484503576336231892744772576558729162418701459168305356990810686128454784381696839252748744722321469553757405472597732209497272122444680085662771067905276156603866040710567911006512858342108841683527723589835186717676197947274250437253762053345447976275352739936142451503761206476822085201471702162602578654429938954510340528715302869975454298273816483874487080611835357501563661408521642029270358533653197491320335390688719756229858497340921104812444588619352256120680396309922741553174874856209659069805303096510317455877366843877370000826813150974862771480450937855880189122069492903286156139604295572262511946665479451049677703107688597372245274612517232101198322617935945802142048149708178301906688593796850962368744210668083012483887084477658782315784226807238581406524759503668952509512315734210852375421375728544017658531447270015117470269176979050868465006993029450855177369858768804609452291973600502286964517231587945933909967498733036474687549697573398044250738278216447518471101555720533866045695919925454133592555740678607189213685930311486888198729162800000189410046918475175896879622655890511587763352805620540486137464905370054600944862556928374800919062409223871908199353811418941978877255757762991220951462342466364966210033031847028366566329235693513263448532767424471810941634435801830562208739635878940709133964828438546074330783211868167869879827682443282642772338277891527529937207021588144501279492207496803698532632384854366986934641930817512520096890852348683349059382997979957858717622749758072449250639025591840017059075423589924609276903262521544268637458885191123302138990653416392177816810984955370708648303051144583952003917204441602184433387404000372586162644883827797182852048978984628301001095903893746088147627811865259402921689416848150802547282929118832799082272534853834778161749880087531967350670407062660395115537708656994809546711525758549933981702265443548860150651425545002145405067195918436741707126328598568302812881884867850402106595626130510139677026306733481718765264750607680227897152182584671804805186537021127143871522442983978643250384738965202031466710258902311636080070658005477621149296256707022519365715742541801692576989828208549129070755798558759299565166103534654188060360158375807509009040638165486440251935965911504572796303618594421649151582621053338659930157994890082887507421999506116741463652331521663502531201263466075806219279725994943560874372347231618199131643022462913404824655726464851287592954495061104902109974208419957805050526229326543509510038911311722913791465816509144568933027955486255847035664737041286271717285530245844352666853501263115132760517598597573150800456673555615770751473838936098972044548670825452008321723237700179321091864818858295754467810618192798170519932792950445112569293518135015388155628108542891823031813170718479352143642923626123288507805337674633923982140869293648919723381747671040050889750769114168746566444603279703854641982271089498389693228108990695471561129059182717143596200287867969913164125637748177372060058913391938520025914841863023152261655296447557207615369007983666895191755746382674078995377352882964507552626222496103198487190526760385232240271437240057551612726852022659077769434052600764499814531101527198363695684988310295264286300245001766903415021823528266752843519219636495594522457360706517852436802801901094056001795875958382924736634852312747201198532169050671855639325102633011071849024317548304430852088998067009249980103061638405831021954982912689415369984073226748201891502294736944671047336044183945362610635442843845614387667402137270749069315612701724251668527015213247619455338796125712128827314088761868646039952933914594349239665567090455304654581184037925573276134467320823608265151731944542500232390906558197031720054449626481275485103391268680578600404391978711168873728965428345953798719679520574488671107241645877527348184316428329103342762032317676359523057694192571441265048430198823228680527554593242172743260368199040945601700619417141052442697408813261701871851750551938411816104339778648429638055359693615736798260087073513242874369430406533064831636688938183478149104183851698217946785108733537443290711173010758449610032783837137733440242233342302124148250056948156776788811044858760178624404076038429618896458681969670002730711852394380138566671473622531537981745605851803506286435282642157733356248051016972237757153713486104204034510591276405105722542192346774599668749417422794663622872122740673511851812599915896130080039737635371681020272808890497318380070406542757923059506450326617113324678967543186209856017002832993739479219448409035589623294732080866105961856599939387889209595500803192623641392146598423391403012223503857021783568489872694837507356148878514668262467999575391230230634768889579750954823586552401025702787200890794106415899354721075331972066069706330911032846123393031733557574669202087573337730736616793171219801844736195812086019518332249517892028663935617863725218295290922360278091373194166182347687092733764108744089654554237945927104676113010870613132801035311325233948278605566837369261715065829263144140401578081225931430075662515649731971712783815563508138097181364622542235209300197024049576351598781677673142363295878745962041999584516747231503421376727402633327008120892280116944841154144025925773395625081099228684390320655307480028652506427344582742441523326590440845461749663703811478030054973893865395289184250559100888870593737263632668181326301310594987675034771896101896020032335829551230582159978368937020017357702829888213578861671632903972558042822059247428144106729082112504133538347291400300961619879798809008236706133472797041568908684371491791904907590504062082744990572908392947303495688354589243708847621306710110147970700469451195335749970380864470943518013063215919718899815505622971320226410651905362361350506319694889942424039119016486763715154119572717467701959720253842992979694196185874635584387852499552031351901237660661768167054265767948979329870031328547509924977641990394401983822731975454691889675187330389483808601897504994520646412918701165891880037038031955868230498417170309899322750575873236535102790698401160917041168662212568633697021895647722757717658931045348547821828732260501071894188124603023021179090520705911211839287682731015236064301355291477807803815716923371835163402228569522461689632937453521849256277307734091422876320735651575244524212810627279811709889378207047124521413902075486833701252042531381110803554183062222768084250121262960300989804188136383582380376002072535408034187971108541046968289595395559021269714756615439486705544724778963445898311532605217686374326982194331192121278807155750675240313465274958152665384800876235045939038141477668238782861193995199895493921204544758845885528730796250905665443911841741523325391290469357110950746661513633246186951954061873803305517884505224388672628133359796797121289828348755225252357376337848340417625483705056981638285076795464925824785637917930835038059976254483567091242543099847780912342296227724167294252020814871210053793199948330994082173536568761453029069973553663293920016613348413439152781905472504018934179595031185140842837796996933337825039591282653070482889727555709565194336545097632419858775418075358661254101205444076458531948027002821755369525500483874555297789038958113686764116335437487435985469362366293214138256473045438411111526519604985319534270443511085836022346891661094105801669782003322451127982417202167110005659527371309424209922466314266365839096166464944362832341620145568556392776781411162651417930805805114292816227500635922696063959271472761626444732027302360238076426686393240248780923447216473596277800068913450291373051819430694640325399305099346173848083056462826022474586598096095959375135216881402698829069174899236420382204783468960922046722409907219267031080314976046583071493591134072592008900608948389235593587442485448313038024651997717611245361216134849162970958295979454682366514147466691753734960280801678435738100299469536710116612591039605067909929641756841459868529120205181399378189162466299915941047965686238910647195947018616606662113536183699119203553613628165272709512662381852252180878659864844431375125891140329902071374175367154106066896812334859179679288622073117895312604310505587793189539260903240314794160197904135566053911867041244804669826280176896665076422410040053165390663086689763442487762051729499576919308766539388209305541317226493862803106415171480821452359126754696759987272240206315104565623821488583940632715197483072165757800674760777941915727256013160522078425560532243076737124101208703627375028827658574917239819900323964727669621422800860260751966003851571096776159199338529773512922855862125785153364900115492088275019346867176903264091364016944890486940092719390910409802059445750168770725630619793793321603672963793656078528874862584977490048578508755146722006675347420140476558010557920010702624807247060671380237518508737579654183006793649344993517512713074571738553874571995339090176569575855875278392730359752026867476377360570820000966036091291883777240117465360016793503116973916632579037220849366613590405032444366165653448851981749264456272095521356251090267753185336713038516070316617639485888267586510460309193463635143041883267363160368757153684545177997082339162501260196256204108816610033443614874686901628963636732730011477926396659176531164494615803238462377126762225421879822128477384746841893633388812922508643508719403318652096641129391877112044637141941155629870656180931569795636291639772619236360959269203052875686460342186397830598523716803525033650744875312232635325565670567372278964709840729969198501527053264793520210313287775818938009597750175703108414184120603557516745884340914384941423537880911369913065928295364514270422733432361627402494699822593045245746296916897460068921396360632647750117916404427477400375078552686122975001585938712039611514654217483072135552379873591187092895270777256696760870730217273322964305985096789383068198865807326482982800316707587975241311993994871887677677407093340533755522007784768337733981409218280377840606175475212693438446874940236955708476728420681901902291155590698317312929336145262678018646407658595651184590661365323761961270764122991832135297684527798639633146722490501507373178406285167800417312376660972322804723201705683386659760066249922602917650912408111078067837919868558212981689793319282304380770828238259813959165011123582212107600760883717091221050213932563109550521814691008977799535461414230530087663223832640583496023549421815465769665584159955794117756903977055543409684915925956389258273457562421912055165859868606741909921890814698280726179574588986520186154764357457466271437174411026596479885943387047500503565310291220882351151915786133596066224276979788647326062919855996118482475268236768702088798899716535555553683224422859001953739797274185961654026901068309522764768445531063953840313016891712016763652874599532230860687702948169155185678378790037371918633354583958001347827191028646194899291162867895558117403326096999048797804065987484391294402005699372385161706005583716533964828344565109296794714494708581655034350634827843735137777598358514025395835611323630045737192505734736246177141693348911600282343338884249204697412662903052296719470023207989429569926822416059521472604057944430329068861336629759448196582252595810254533837334929491276438985892051175150661913440470235114257078514292235637059118282431720449208650915780220453839990295446683615871995936961510518413044804957204138141579014843830189269265108816834244044450337446980473104670250218250435422980025835292711104173763146862200455661348832897782136471912146850555062249049829309229422048791260572797917850802712053578557837758463993657698178375266087018892970713805369933435479080787925341175013790314424841335333746797039000473837861924575040045974946768689455539603290094580222991817791698020499035748301045089081706460203762742896728530323913525241908782744453060477348866502597119670764121595392578070017169262214535406515567038626912068308273545865576302216088003230818387732216252399719856509339803823598724476068378980757031177749222729417145648185589917506091015054166936457089406045620839070363640464351509579516258717079707892289831791466797031532105956052314091610028113262907911125410910186604811856621571255597629705023335790199388781247509541398917558287548448950812310404211977088579161493528112927874641325234396756952938031274466708723486469457566482741585195391516201635304288323907472151261948161829975544327146266000723361592987124754876724811160310386705844391974471825110309095544704890860897670092903180575057955165866412457733301355256210623893781325361404662424319322075031053555381574993020919383006820636157682281203754982682464945539165816193570867503021861837187724779677577622357397519194202739255930338879672166588291991086699136081015795554378711959142020158770404255940107655604025004925148268115468206304607709113587323835526159233903087774619928118593044415569132770281385937286765303807722147002729667856827323315511020783254438138450453972149389698469198707820709799986756100808442878355509927313592884008311937165877172917510940851483867688415644450644434282469480395730768561603621182799436565805301891752541482293200149374017431859987873385945434662845517462257809570893809102319781901929544393345776459930454763843294283679317240442430249299206657459834838817791247333883307780540910170519283185324422598437643273499084581701541231488632438825611971030260931255824581939222318037679060571412575961162940982754610566778523137200093985069085121333817578677269696100314420105248024131114585971909300407976120147752875542146348203296401052921933355229378847600322553298933887151667749674442795250114350383888963678637756955021094069890646049607302015514610553079127492853273790272043878429855267640677282281608444182176032688843462195993162596922251223973654452072782242353025569339906922234791836122456106480882003200941234964984165203952118828975132555973806048597228509113715850917835769347735874892916737886841628252946040623940943160961649665811643912844746298815500641532802939350994790855395432276354135110679388940753849830833675442413885612776443227349679192602831404165360911860095587867298313367509363189254072592950080092234964982577804052075799732075724020947382298580079540828159561793048871678341164883918432544484998230663092642886650315397664976658249804533826188305564630330179766087806593855074405568430319694997935664561578010053231252787712098239741797825147323109627755194190544714525617548527802861435177020461356231726234400583565934894020466687119892562319227015200352448925302642562049086936329222625519730312277666592713549592458451340580498281793668161466367586037566003058682291933943389146325291174604187135285699088138742387261906921235915331781810839837564580896818689254923619415521863351206349223935613404924958139760190816235794191239988241193762116966985865329852099681051561465208544738622336537032391598018764338558680858149451578617138041344757953537228934456074371055088078933138646721213265332024356673111695622565897795946668998654803682517044324238105917555153043867366808963190643357088014587969220794504908801047925499181857154342910084426158496458935203860437317133172392433201547711300450865521003653379943774595042705351839575468415381046675925416464175900952910362337049165643221781925094994903120097189344791625835938832950303392157171756492784843240651931671187268091513696403033009500515994570215834668278546807136637472694982010632802298520178503499432366174032687012758920408534130517342970486286369126616862661633837798804987510029300915813916238433275342360414493389163019191832698453012510673554618367689355065380224718257763300468071259290319672068665093708060124641079999990311080465176854575582210004589201300211946589755026162332322058190158480420589876999127165952468399297085541976469235873008801539327097885422445449429292764531715606135383738536275117030171220483234748215873606760238269581181586879558968184577637881698609057111783075469045241180485988763168489024008196215310173056179480778584042600530387285964177277719338215890527350139175127463958587940752846899916426774476923915897030457345700372119426435974226693623122162980305747558573319816055306362782166793024679647652784502118522790899703112876823032515147428081893407526007119039758295825268949217151788588767570554131277177939210701760632658965562161433785380742899535686329743044277444563536130941547938003565939923554117746501104421433081234218551313861762747215395718491625505023345139945336239476331311628015933549356614418907445100325172311378499945495371313709371087503350839430180809591031102714765169234560990294150311681757059765612867367810275417496094948398618194418607514753555492407204468844955194068557462533893936050488781987272694512706321293902131376170833005916571106920627141618758558066874182328500125554338212273541534078611483485157163549902344177502319786486252723214985359452452694814499130373375534684243738339790949055250728870572338094467841298777432249204085086397748169759700343315895982895663433828271255443708099813410413918205142779725539258636369736190125369288451595358177410124679659691106551225613751694757939398452017356333986145862909545768466965741190478735841613254209875102686215926825462071328275189125703524344867539707847366973404852082792616247642784272136077193137168311877426087077836786929069604740920118077609236727974042895897035073630020900831958073019825185486594650245594096087194168658588010928083927527279224330233644035519301898692914414449789366863282472905042814512895805324318317771358665915571426561561057452102307489775386520973141494236365127133801554065891627101650554260338768859833142312448767287940966156132595750743839166000934525636999291772384789937010376243444153309601071570860593493102683175140028357180219739626525747326011339707097336869236321582975273673910422015635361717674946043917280796861754863821305852026183312006665970744559053223204956054148754081093665656180774575747897562771251909763835341066338901512869122142070216447588794544227579016175526513659539544337875340635738900696421659985430758307613436129425070485599228591199800128090210972268363067837125079198202362135678826417551847225925634040088561136298065366323138673446571497022128317555399624088222780625592747623682620847682065967249879792835561832093106026185383351170858445646490546569928414224019523019238878558900016065007461449214742589416055468618907604961533405161527813283947930662741621732734022498957641178038481467561534335695753730253162003150640587380636652565601163278168729630949636439543664247466462824445064153734879928543836408954570717879809476111365115545963523447076414244408939736475190786665757373633828177133929299589892072182655226949148865256126390891647296764326839426097698268880642911078582567350031648306523636917810715571525126005439719576991001611566297021395521401212160044178403631071070774702754234614457257128827185934736593625028526011437420581905009462165037885982884260559993503518888299727013260139014158629813921045505829029867627349842794897667187476185209186856093935105559610220492101737991274242443612047658306646916727360593824611886363241099992730865038268382501304776196247926441133558031460387703136441971613560674663714045661196114779825770306004052304129360181326032591674730519190735632706449841971068509241239547754950246269485935123626772478383444421394335496732224209255662288783074805187115469629652547428450634159594197647250327951950011431405902095411159620825079150591014302054888827957915236840812440634723826332575094027801757436811965108162143539986467280516802811524350577737133735335974256609986808128745496789603733786991926776912763622237163542907597305454011932284345502816668791381021299570406683417434115149149978264907730686619946130855882243873154326049963079566853612314149825171600335238634776169635883129616259230724340362710411526711302929991164548713675752961059075086470546203900179657380657089314220245694729494602353632645036038688602469891526364919579509548668388230663302693420694893917778467965472921752770672447731351273574548104908309211331415948648667394474938960246635938696798918890395565857977315076104242885616364410476966506800283503919718505135022010826410949506397379114936921098111663161976440199567291146016918440008126972966587225693853023858458081015270478740171082186900447698459771052094535581108713772905449248471666297523540254412457525615076031037693272841038935076615345105752068664406925015959863023587483411391226741747580302197249123898346352829387745045508785510050239545090223897095155527883773856409295144922465911069468356402502657251295919351227538396183253823602244835144760273746131821285829121036840544738623022643104027244401721124467062931330580162227465557818043030938414777789707205351500142787988807172021848725947487987105809075732719247697867235946977243928204845165174370968543664143291957152634052568352782929228731454790855528531051611518904501173797797972575966238024813113893077152024853101428386714051347916332884712829567533129639972118205989796667666116236914597531089443114502308620104917974907145893778437928715289627993812515299182011524472777469214753152384112055515936844172335510816520121194457902895652904897538488210710180128188316962386378526877386381200857844588393603813151658440123671995259990812352959456261734722750644321609253309930711477128646987371390831126252713262975391881826928016082788238407717542340943166745670654800182407308129750383032328393138222248514688003047220315353961684934953275705987353201196261001929100886448323239941123180832863157808257954139795001016585420013912770301752113169488528916334116315825956777393258707841279711217978341600718440872426552008559663171201977301456174448419823982392145245043655407556616733440254360591200143598778456953688288836857744152652714902013789557457186842795840274787884667999831460957314311072353598316154086375027910864031774031906166684371923995135570557396710581000006428790045258925402374007147842866476412594784138664881695528150039156384314357614527422964555464576692474046990753028473828096712433467387386496766710088919191507429447499491401240450753773315631949571698400502288602320099103137651554257182006336075619439812874471908523114281480038766585925576021746050917502608793810517070677457556117471326405309476230485285541425449789344684559957130593104801787792621432128362884025799625692589923522958592087141537860892469724168058143583242646417811056841108523052976284499337720448653516750531315645294584528313711032176102012388830306824863087972046295607909018172762768711977755832461859535193038198195786102012749492481810499170732661681361073163474899257018797631374215194184875651687603007481287949662908844939690102745499821506837791177164806304641670205824622473197942322228542491243466316871871522971701370550993248179357770383920165617964333383177974564452855440006742894062530999980894422972081560897914786402300411188273838140369525904037737656954866517947202538619564794834130731237717785434392468887536722401785511268076893822278536859389273314530445954700591610549936668460198033151113805586910498286796789621390146247832940813268058724744777944867169248847455485075129947115832872856724658908716361602211216471740219004925813796066295504850236582867986489616258194493001164149558207404374382720687908763248348040382034456671232352125290251805947975217139853133414304348064265254678111663652532855119687492874669033502150362168820126602623478901797593239944505554335485385915148888490027542579814717595275282196869429405617920904591156884714924582040319725904883968778650940969799147681220517906441753747079375063224295118313002124801129182624287190996806303023581914759489310746803420368641022716503025196659380379732687035893013634911744596034892501662886219753780537496024884682382585165107123996949067334637718496292671430003334884930786324136099484473364410561738543998918507434434128526483365018960794571765808300430058858621403509935292476825979719045875561857519085754098375455776248940184650210038836727846417915791142551188013416320248617641486391028592905285274001477736703951412884817303796265544368716768205157388449336132574571949194399067712556628230796322812597461324060154324226760129316693043785788204865649880330150618313363884514723177254300022312978553957343951278574752100139537372480930979649716769204635465062201005738723250420954861701776809675065949610746455047414994290367226920555479949786508102908389008139627041512779080100853366274895077758025195489542589726842291334404503300451644760216874040419465428827898985929768456367644979527614205726474853455882341113047140574515123481391457873379517584277618145814656818829432979671693206053856767479201204636178873795645437056034486315612363882010639431875576790599386727855267775211442572227357733321188616167569262662422283638123139191188474361372655215086245340691466995105695872126766924853499373130848991343247493091394688225740547176600627404532043563539204339971179263692138198909930580621312967996107461844858007101214620160490003873885617521304056405583988520168762511124307198099991531743729291356486414992619732580266318630837797015780838993336771599679674558271797874877278786673923416105699686219785525110292682761783496091099536349614214280288136821363042068526930413082445041857356353529196471762976266621871777096959115944124055924151665827797375142676060944903032940801597007049349142967683616444659586850026240108541506266016800843614812589171938540916142982080421527548877267977372647624805510533109633933728649384366043789927512720669317614085947907272353695768260353134215279520962159026649461477666217060799613682561468057178041945098866114396012170332805713686838342899593657363067784507146523781030370422447043674405289371865651562938084814572400864270611527834258538972686195224812283501025822193651541706202826429314184278712521455914613900250552889101487694761168898026356202484475168061111139512406864567853406695125992346931420397294017500594794506917651772632848062171281956215837817985694329862340750573174748730268578560807789522300887457079828049357703439195761192315597220807299930772100186781707913567217075003721070630497957795114654549957748303705716169772208451761159525156948368042212900499357436405043660513768787334023600211302231776083985109873989607789785519618453873079780288753665473017665228498131244392373982518925449987256298219813347190102033211455211128396851171172742558202050058888665887265995508074321456827856806783882082609831778112627717821741133863857099401566306455749983479494228143272266661991964434353364073891281421185254445193070148474731553826742797986193064382595684537050309551066369445808461201506744802464327882174305699190373462451774233579112499554162303441704932959736148115695128604104922064566244266727504045374813914437393787376793516786607124268763802093812020876504677900396343624144367138582684855446175017694106901709936562943403839507743161314098161561221466120376546366015145314633799027395699537479888946296871597102987044420377912881414461098544917625901150548297945964191215815619754885665209118347233423892450493493135446113005069535217510396514470020486477430627810734270575393014188651433576912976484442603427021297286964848630323457460243397832622358882391537693215586866359368549265706968181287891868492819453094500341584013076174723027771650228653082108661928998276145988310048766573030659778314462333832878110608587313245422415137841683488181638291447385039911443387543090439066802627660248391954103266272937570730169828818001460254452094508119456546850249892743269888291289977906424661747171275647346890030280021551880652125189907887085063039822973257751428037365165528161698090173658362079935771720136502370675374290453499267458150637986133254670545209174222180080702478864572297827340550132888278759763519226356513843211190440150214767174518259577564987941061010109805714344622655032862918611527597718344447873973737544135152520784063710904637619222398572299067108097658904319864022582472988938968069303768927996929132293629109371310267035097013483374856081124390135228356614166815292031689947564375722824980667545768445439361187017112689456687971575492538528342113634760836385279034858141961745899408045252236320393174949092104091551056297717474314846580741929049812925231105089039658513926365778474129368664356181494687253623709068226633435143259305851745135233087557941974610802951688208494085701242732778702649841027288732120204927370747313747345632184824123736866277695094470994519347339586597940243282180665160790042280142586336876616767451505341990307668154539532317576680998450271762022137250107141861646485149821455261979099548890517552759870122662508159386933068627387020458752801439141039778858172815194830167471642096783828358533417087967591054364236423034024855332576026492581633689081319109891237906492760636851019769408567252483523537231231202747914656333813443878397098664281028408611244641754228209966367123767093270522022504622268957806156626563673915337901696898615382434561513201028242793188437683592515670369578020403078526257398720040852563006712048086217009973833170552867929880888980898702319158792765426924783303572198732517845270025088810936926979795787952454313553583659361395328703457933399740381994050144078448240150599195915794440000608201866151874256020778120299141536404676408292632568101330194082292417416974742094833645734451254310184064294497581684251958609445601542417307561255240505038497536957587146973205751221072311278308203104202385854933017805950181635188431881621016611768754593267308615362881232741115775926441916459844267546464467697161193714396294146135113104447878567051850084854012744931186378972716607230699877472281528273823174208264206468401663184048859470573799263252650341172679768669655712751130661858934760949891690513765237435081680355564877645267400993985051778107196725859869147225801236375305309299213419619761292752015200034929000694776940475066228420430409970170495866131397520366146092992590626728762473625802940770424572035824773111934567376226216159576643197434620270855305834688985833116719646921897374772993200532187196084390647218579476848109791099885345016350668679783634345279306229117763863960675868493066372764739750642566967433924183599692842186089010471553178474075590295742702428368214175646661847935789817220311171705816990061006222109608492571467377783614708480168543352401791615629523693270013063828509756792935938939843591809018248385026206835076672401478329480192208851302853272514842911429683836915443361124192332604746182448000233938904100579948775222477055643537649949025302704292446489961310108771863008094292277481181996734765988491438076915972585144064182749672841657929530498073377623318409917177728206091275210886561867107156185046603207696066430414553862083673559194280302718885928700699622670456343346126572436094038081736330985228358634115701021612418261806891587966015677930477725429906130984732604062805434925922997401738176045728076695277333654162807014861570949772824047740237062035636542877776570639801620069527601344608857821314662216210801316925537402219281620718611740259175955589599553412756406927687288375794192228898305413669776327785765328244635748881642417009959799773178453839300449944707215277463644436157849166447497201333723753731446306208313080464108766938371437266153820219556893139380796989058486352285526107959163576835903555077833071496598927324235082788370477400462215655633462701945335007842421147145600390083315844602833764871619505501219403436999305425691498963442377561748891656691135918131063151110756758490721479982112474248474252242880391181068312969314151385975080189244316842003147372574725499031190307257516863358174873244894609192175204272321423408262525930448526914147175259727439430556952447851631731982919765893714730007338348720789302632804244927193512097685913037786551477392825075085409165089403508010481590715503905946404859239192086142557944855228920900177084960197089909968693013936145914427298138121661034659362049517924198146966491542827485877231343781710899735601352372261586111856585272557203423183583318497829888090550225264138183038997757462031817232862555001455251959131770845583595105588427073752859643927077847027439581773276100436817842104898463824273318640662884393566954840226144513277869358385632384157267211040062995855269847273891853847140924960228932958055087970427070928934494585639985673838527671299926144434795356259645098255426969076880056353720697364543924149039252550642949540085575756572296343442298842507308906573217219138495399885260650022661866938451876474318448945066838121967808829326796359708102264514130527469034979085412434587076276242559822012933017065689865723368642807850660842938107375091947231950910538788941628567918664642482552707481929120004190137474861042542700742658176295627870624323485171239857745012902437387050652177414455621967236414243022601434815515140291527490443548309432776961538964954688455393186031026491655787741974128691810821724752986265270870162232121173512479613187788650503157187817704305545167877970321548910197622544323550073867195011241845905368595527535180412902962894799453094349127895829299859331511251442506494038126172106495842039899964207025009596668499189733769994907734237241221025563178810674321246114084527045406602879944971681830339988499271566327903380214887099935361670214325263175794305692416714322207670139774916092125915401167601922074539504581486187233853482572446200577379780951025852635622948419167642043419158723615907226919642218226157271659968602256677956729193818456075526942456248375918701691462983027613828503178941057129459390992187625767760278409550238446993784309147699267017618157427235424796241366607621737354686122215682000669311525606810805846280842284611825141229824992846531429645195365510917762042787830312272757343537912256333147407948025869422330057406881159818703648564136591727909300388642035486968581748476464293411826231655282436830540577441049849283558567848019305675395093929995465892217822201175433045008928762202786437925579299661375505043105219795902874527202568970865932570939675715496471305083332632674764773478703013954671709184494109643772716502681769059949744561608616917990034476694818862230208022028798870950207633941527349563209749635040205612808714670830186821241044945345319049659210087662404837328306391351934932153870571419265123406718771401831177832252547240040939345072969701817960354983787958350625484590014724585928911088526981641334354051528071889735665328251253299763554141903579356971876867249650199694460570059539075648375010843471735300472074583133604520949240871714650559219498840145335868890135063471336299362394956197148339059317963127131854625621531186323440619125599607482835950096237686360351057612721465852267146110341182130335258407446800134240468537588981744675148791708978275411592828179498485188782547640797982026182388176346652711195615680265915713712931125937595130432573586883222549251500752462701825757046383466353523121482365301463960629859976552847412462621189933254882267857224806839605382718037662139134564032409616124641547120183083594339940057190153690083108823975151585870480769192395854414747593539091247278783331289017587588469677802900683119530554396385838363116567014296632614630988639462634178377533042621470749270508132617696924454506722971158809352390326842006671761717743030519532525773693385601471064598798009802037094839300347576261765620851498020055836377179487852374852403065945049562319180723831987095587306713790712428402925926539535851270902245924402798534616494390353356884992114494841703764271374192201663095369848558266372875916967628138509763814839929510922625311668020807229391544524624163962594568698874756699966692567472468737029891597085220939447528848170238993563439764433505440640866967825527611495395036982542007906189920406757364621130216917001601080026773753092024167071576626752857991017105631853592814040964960138545066503927992979235675846685730550664259480142862624504499741589602676403719666472118551173117623552442211108333516211321934750143391645300498714716822207780183605346522976775724373227667619766388117425925935620804747572076756748103970667702120558869927748951685721106193043307695659400046658171467434138608750173661736001063133344057085154844655075622963334526027563000610399401239385599892914781208629640113997282648009345696744966943558522127824554755881259332402879245973400909020333975161916863101474757532810152839665046892563063288221496681490353152733519789947999230870275675440862305275959467390591148311553902803574387323265997292091498426213557956398825229784233502256585790011247553817206803763966070293865269967808599000964187999955913607062541471914151826116573220068484324816328249311702255579796387218133485274976013254624211768469335978072092871972824593317244873870652382532653166849801887604658458320307092078988150046731545872563185517226384400630521586246090735288595126259407015045213948457775901393112407264424762551698168683324382717413021300067357112992084919248873826181144658703358446418619337926319339436769459345223166330177552833851212113488299999210297286742263439090293743814357136457792555351833369103254951124374504718744890268211369629654876608257879975597483156193668758482316131257607386312078917295407153034096190990917893075191949321857368911059893402794428251216027911200801039252269721565500811317581758236637762934435377307589987156481833986622795911927656569820052325796055258774572656390953781004998276219925198553558374977262423516741608725390922212423697343136534452310683589390445850571356962438016200561960360644947704047395762056388072884628356785952862937762663137718241523465331781391771538364391375522401983191187530525317711001757638790291225639378854053040127670781682971793183396151499768709822830194975931109717868574049168448704208648800676296360969586778115295198111404517449215750144667438431045524638381428609993286994026085571889740964100501343797585850986077614183984591344560474228115454214393390481628044137652790320401454039502151565506934792136207843082438204158081172124720781693206563094727219425197456660913118490115280910394309623279671732384863948479107912639236742884866723077801844253615345488531428241991049569553008477029545954027529807886043154922511534965231059251669543655704086041411186265689582729804756904657511749076858394901800848952823184579058887236077650637388452174718010539669336496862194632351163243492912707581364868371973244671314223193037019645314782192715301806503791368468837569114293183776477081754437479359292392561929532994198500596137922412996422411066369434353764106325181205397360218268513804545432473718430954337292963122185922678188456438143133772451636505456901695495334811317482709201447882287562148220278285982541431033679667540476655735220661621766800309992525215607908400863309041961924976227288524302319627534337395477682740326053926180464168059627645922980864037923229010448986685733795729726159057469759974216470831647326285840373682685764318007466776111655367523934887023682740708134439024542365386743082878243391711430820286891672597525494730162964597983464588048932218473389627238721384911555854171553858396324380476137886411358290134493186380633865818953610657278065349745392767796034108982059145868100940874031293289498190596511437675852367067977769291303670133021168488461795310166983385278111596114635493946090617979121310889958150252226550740848193421169723425080104309531000744997761448428457313853100015347715951509440887796433967104173599210819936597037420420483677967584103815396472367812352048396111834711371667573635713566739732878807152704298051616246908878995986176548350038934801489872872457123809423635837636733003851630290964206611767377756125490900685199143570702722112005509169383707028981920505612502918399367208400473974502175442267322406877952515358503218612693636464846137225870755561529784320617062698823539380442453500923265201842995748624790681528476847978855844826351030823826982587289535437941330133903306315884894820884580345501058775500307444940911893435059254510176893177990674346643705536002222001225047188086931180975656917931988175353749002757639935998500156694199479040253942328936181726848230873520743428721879967131411256672403174963305704312830135481806839214506427866913205121999393172105343555743100542435585750769159978433297751629788139587718872842902478479536192322645897158058273520432230356650923269520834106687134032081249745417973912325544195749607776629786602487921649240949787134177793273937729273021834601759664851514981098159190224201252692619199519482279917753234984669850517789360525512120471784879876218087816754368661089035538166671969547794959721622809175605479562321992578271494828121219715488844472280177278676407592118735687780579194333742006150050425669502747636568171625639314370973999989621981847777454698775397122895818644538915941544775466722912815300284389612488600716363205937679795359675134276398393389598405335685610890203841587135652963648354595841802580447364888952212835566473675530304644560627017425749207097347303153673751810270819448325321817160902942420223242513570996387374171741734529675564504249590826445014621601775776747678164142532782123036353635475151133931219640210481796362228002798422778942829407069926854841316279315266397943517420994515189067371453120471703865739108307212943617060204926858245067139475485958023295971363047375100876600338919950553405797915850741949003958660849326284765789724233502000225516040142076776713006271143372105741461359609720683099296125837924677114450142342551168834998968341830354467779768150582221816439814919278538465545050747813258576759890051013436744577021038678462441919035929794897665034145183994464736686892754223208114031305977232999656586381871351012597844605193672126177340278694155932133524932597903302635087108824890193726324713345444875916926199359559161622450766297046367983604271852345705697082406175057359624545078376830132772490988922781511726789365405651631703768556862051426890019747455749308776173275593873638042761711716564557392962849569986453827415716709799068259057642156398976579964121247280536548891791389146415903290299657343560459482916046484177412879249674614573406381096799759681305521822777994202443238365262268728469404875867791782391946005200168765533762448295464216999206590924897270269090043462908093656977358677786298828319310458527024690400095511248398490976122762780395009518150914915664003574717288594282568846769154740342797849657721986075997204010812621872007132782249731057653327197924011197859192054375396979457715914536011966825227198687285627639495544507004340717968653041504856573567275482965609402070136440175300855169090201803846718066628384302132637813628909581309183594939741977761482105604379104337958177438597301101695751985367299398120019509358906309224424452485048014061909410900688922462055695611883892381039366325999414352864841651927841336810673873879234831103942136813234108247312359332974799867881009631144425843665405457716949159448995585390351101784382477553490812823250823322224657064664119517512979950833936613351075811210920520574597318402374735032330778283344678684012149512504582716671094807787199620503049034824680335552357841641165346874724294713873881376148357146844022013860350902702344839360090760096285861016536772939303644358277889100198285305719088971148398031970936727733107611151189594115077138216260787380866758374547784465186584612529602556021331148434458111630581634039583249653046063995635467475199547518814734069890209969532518975651715969364976409031683080823312144887027855908006483834156676809843754094769223794988129374751201518502358417684121295774024291679960384639947250662559609225403179313146095401607544118762234551786728736201673301249532832286052105794866302094415926625373506725988336027943406825944834057532558147274349392505522790497783673902843532812831079146199700013234471615414916923453487051096781360756813716946702894914230569041214809307837694805451354841721506101322818315851545370676868635187269991693409073396385190796522522387237028302105559889511189602511680842175075740585621335276457412518228338776002748277441297145035389151856223925925599368771260336235197801778516310688000566956641932655560220050440815215017988896287973740871021603076798652824611363841586026500121551821054900588046341310683256583861042680372531908798705309571208036103606579917095203387411604993128181974831091363571383724047878442150406165794360836536140710564882700740781719508615415568354746069317799543004618915113780164045388769566947892823978843459584693544608603725492622717678615856821356316686991389007915829634860748230701659145060415375355631443467919045366659729998934386938650127520287488156728809131157779016447280330168295942136835233778859570053354591255332305564795570048365518149873473758065997104215197237540841890091439388700283359122761210687616545502554469629840141680819809807452847457860373851732351965548489365649206042695619386192475414499254771055879414357721208621218546953218523929552746967997057294047866998832253059370537593430925623314480186627983016236388213530082074849268469099478695564118399045977881696982588732941939783730508164422019384973341866379190767302972764688326187134544600764409234447045899068253236924770859602737192711016812983269704300957840567511252305553876545445679896744434336007420122947998348546806076212112340595891893364495793099198901846673804049838672007205563466159633295051281078145852772439370562197720799674868797080663585568506581319516072160408806793164328329097205853093310720153511377337952869551568108496142582921249637831611362592094154861799679269090987590171062754602287102114327417844221625424338005506118272216654914109275850068185982799197032889577515775510789999223470793303095508334257684139545923901979412256162308111291694569549119837238914739723157981138759834222611284056458884859231177633824624507591502609172815342757570404147756569432299890288954442475847559262363456933660615108692243499096586810423145317428784742753436168060801707215039466210552638231582399031379018954933112207277377501398399649350468866869641229491171820890452537918390583815229349706815049938954630043650328233712660930333630667531584124609366062001672054278812347348645874995574739424220828948987522799165160469049432249942146226107745441204275871204155695149621724575913298356901826627112400437104314821269529075445074534528905581833779992211560141829236949205149169944988575023435427067783938484668295866022242957603739603944628290133387987896003977178448012042566250636228315190634636419482084677065673590992372210963734046903044248578970180035378793626811161362959944521082257310717593832776264999223042031619014768658289261645015966664437725644210414324303102414495881803588444413036611900517685732761297424500134303732777074424755194071321030952642342929025424592850242608853590802263148667330674474189840064950166469549940692544718882860499593467380246252560744886321560265391425708298502795697077539811020780525168920686073294164377074040590731452137272484106196618928614806274604148184922609716319065304193805348981550795067980625745139140479608740396806782702512179318787523045654049661884612027622115840579647034561031234628800141863122990345717628998935822150462299697453608609008312274284078759914920213435783003801026091252972970721235259470796078659387782366193120747680808769562767277545914246019372367511434183516950400572850240418723587791381790711989702964183557632851498006526269574946459531582155107704911890567367885085677384361846145257485962146323965547365526984709095253432369482115858315502159021143102382379278677520009148899481011763865954928158471802860072434929259144710340347353594011966049140166464968051921942751837302682552365977978096537850012489820785357825764382209160692696248641299178646044291115953330358238943337787215698443868286653579046996743994401272520669534797653578053684867627606772781614622896692802401686373098314356569018233301971035336870709153697467170477437749474225660210271783935931484288183790903102347943056526863368946146704673804906080791055672683232454041838877534757816970393275779375084669152770471078887184347949970603432168675317510903692099302464805536282479659375844826537356245288479188128020199287290464896691256149507189324468595324033372069171219958052058279472775850403379389717548457629925227488440812081001555997264227673432325840932761406711755722360126613279174141305052317590818151634154716023657957547335927665052681618080271645933424509222279339163980378575853052695952944182446147668196797213815490422490775752737306364427419985966733219300003997148935902588355070331017445414962607723165724608138024758822866498502771132885949179783466313696111861262692544624557175884687270607541211308217189800705533253736371698216841891516917730370905615285690262399808777601596211153981414963745218185596097156874903904568551478668633283608810580453842272615982981353250811641184775149631221253266498795787358749548163493288833609919357181440690900024683612631320725337254164557482258158583868406512238723931417280942627495894087279923643660378101902409535296847232516597965469021576392770084236114261881550473073657267961927555076729428502391779312780878901577986206893013947763233420762893577403286639033827231411797103352982791695840755438557887731244926600640412048753047415174522663465724382171973444318361031860379866188063222373620172639701637220077326224328158079381254975119824786034069122417512083384138142711200395098871328859140550697499756110478021191258891478136846985699429970404847171278509742796027039931742840106629694114092129953354138631008928817593815242674425364055461051352706594978557592857017672352303221250645685070616000666748646536415944211494146308482646858431344230257835457958895657121907934168482821250639509746963824527643310365337064831305720276349827271200883026847376829391104642194802846290938104435895544679203598895523646573385518006222057268870021294688034715698992110863978320969451278469353191448280331484777744072397756942438496958934838627813677127901655523639442419190691010413751825428183337186663610207463384545227097612735266638689806173367028770371900277359161258240187804868876773751568237157408916019770903020139059277719377329484691679744628859974446859951399272554793966674959793196789701693629526642992281475910139761472498640239502287576479206804452852327479264120631595256834155570610677707866966831489981104558661594635738909820781049804570560290608901868620789642353349419809941943327875823011137836625424100064871063629623084897987726573465118282635513017331252240628872785539990421175320443665649770681206988745510846960268875880815691072772879839436769632368390008754113149416657369545163433385946396702355605625660402803427990382178391978498236639734411386944474212415419542276819342724680542557326070458805868192748264373487619158160606825802200908186905960256390272088202921064699129204268226559469309468804707893825478436721924170008674042063566937457078912082379006487833327102943932457176439368174339686259725843915549121128170743188108042037114013282337050809495747682685996649483343695383861974537667617158632995233191777382130281495801970841661922512656583088068837431359688780457036523485106980820360973152031535497329436262337576539878378389123646236205318124280122497077826123274090586854548094847954202548853425910402961008805015721691265422910310454443749079806676629058628359760900281856532907618145066382672360742108131769941978421339499337268121032209747550431585017450425692621081262225765875979351174641726636400478647859765899950076550954188105629952625566625840536709824372985068449160390780566420142831093221068861896139528086169625562786255994269394972682927520799002920862850119139232534048797612304796778865906353342537524257916189854417337350515638047586536206040364321182893335488043732829877714244659744559059776452672226017018781905278505053825654544764923695499458743605707914028069055584072857005240712251682769956535551233928795635743597659373349008766658424336355939180684455590468129884402734012023499230649073708850691504172056643542271095926451811975610435687514891954515210017083231332810009734759057798518015869261996101415002480351026123903105510538262031517560142331112218145131364176318087460184213215378061294054319428159581226022876040548597892520668879952556218280671718335601750622420120096758180547747669485638961229849292858641091176331832234129271765813842324387602312346966142089018379451195580257036381496122640597219465760440274902194290741566502253893969028606121003942177315070306163375955675472199482538378232705888252258724016892672260414265862020608331011505390284657310401083867888752091406963480834449721586748311991417083744821650565514648586660084844902165708813645920532378276506433693444136473930598396101760533276667196843960279828100440390534843588585110858324620390885583603045031758799585071643724583730813055777460601282663329228446811123441651823700394430965913472112754013035797280887540885969477514577320312826825403774756849792840743390146866250657611056951104849249689538423853324481785586741542729730983259923194556987209134164139199616250175464695282335994974675131203399571012720532513033875272166421866669998314287323874287885478665820096371805454386297458689701221224607508762424640674214547487546885958775176813242946022938898401536600183572793046896680239253891759203041959522714611706624508766482118480215476040734280163413512116530658277080975870656140464283370410138982645443500139711422963694123779320125694692400468421224765936396623313002719375323105989961003123549296176225319429404927321712015876391928564322121232348010104503471726515998647630959168409862395283099219677948563275231212670950939874611761863848845299396504504055411028959072642054640930115807234742986954423646185786558396731844581251942860371857044171385830507582715307848255508013960915985026929490671544107182761304567140183517002035206649012871454948686932226437675821521760485117120449102341500344013547033517820436442788052166629186201801336590969085501764770300384213597426373298065750445513988552444756977281183836342814060291354547075684957327663376962140062064167346819204365312546986694488174998924383147689306320575675583425115996532012205436933722507190861629313103151375074169353649634172847523464445515213923562354532390338578863161625677951809664384087635871692741191142907953177700487815043562325471606902654486514218148256379326464492651587727262073947773979506561444759444060211572897909697551878114580909314848834332926450882590432376174471401529973102228119735716626163892526993455377331763395783991923331245369193261289446882726577975497957169588819179156418693991972769618714624237073754022761881988590074638000330765282207973402381279681021963701580356504267644134201235971742380192942080903710963960275105698954439393102369304044854718709493734398631655519151507057952517912958620562176375400911033809956799934748749480265326970738090062147555250155503660255054526294268713048899775118636816382143912331547362225563352119559418722693677311571437719233540637648282053390470406695333937419331878037997879688071296300778126444330666013891487560432652688698092042069655146718063659485473575707096719943070392714006927987057277449187565888467742049065393635763641823944591466480715242129317333420665824076913964465900567452624354208080552850358576841600490941238324798675549747488685997244192205681600742573716145968837172366813039313294594168873401826386248520370242053091096700993682010821708284952569098517014525985973945603339188037135553102958712109285840048541713862946702264810086411183046567671368331678261855238700607697054157840021166204610991257215927761038589827209640340628735810270472934791563285090604888410450212631721929452408327296447579624259851784831658243787063520602675499551872187801058965168732431844455094262968636272877776024945556572243032187798935614443213969789232472778153054617613520691502549887459789446262196932836164719628375779125297949370041530390695522151718371824832844203163608134485235153890238875921459106829828010132533535033573386391235868892473925949950326289427987672106749693419590466845851919373107480857320003196946602791000328962476168763819376259512618528439189834577498686772142237836307653088045796166448760176347656432155483294732847430426850296445407365064860632319737831367949234216644987806436127594991574895582894859245336566855024089791335027066244453912105322958362260215892581271651661170140843488734564195248969893239699087926332159530620630314550783854642201430152878161407912985897767959130040359966611520488810407692592676895192454593768760542231837180830745503019929220206739178095274873520215450653793838840046847106752322275261419174707066919652462359140771295785597331021684716388456046486479318624629587426866320289699518733316328164226077249331181231231373670621027984281016021154439733757571170455690534337641842487140790184628281263998574448923622970514148649582698750457259040672439850914120696012980936335434497095734064331885079793429678810651219860366849399511495250550604355673436895657238107710207894966478288600783133253257321784414434133887171802144066829092708875841039492157929011908357050909552021795215554767782037458576480301835579553216235289014764773179192839542886625060624290708767724758562750736899257454920820111705729879761157341371490570908250619644071415895930875200962015838118522642863576885254992390528359121989118380565805713151822974917233277544819754055599728641958225516197297068750737352582145741785300470673105439312948201125289985286011587550523466266903857216063160048319493318088412131826608480417574466079823770130725309505030278246451492836053388557996814758950778258557926283390433400129154190925836192420089765307231208057627302119174956699689066189785117163472711598189496421573861846441608562484147108685970849306065894245058703054923092905305882910069098987911185142060170967738580860180167331195441447696594847721886398247990584256320376435244422012547656495829856741631801421237984702633275652342995505592672608942202808355806568753118860099715764733653717472006209184074851595405649528519039218824484711262217524852874783087496036026835136031301386080998487293428752996313512462359929737020063995788565599947077495078127097489874856732742050355467550245056646838986990987966543078690919672024721365980326315166907374590390294363856205766713242372096137803005649729928340549730332623419169672836916575350410628774394698006084377529036221361186265500360437080856858131510892108880274551443925011433644665965076628371269311183841179514089834568141312782223800073338471451549067108750319424429757916652327030849184943743075430863641207548999787363404074035727665295103570477956009447710262474038478996991497038087168645705487530825415532127326015669524503857349035021177894041685677296073894969289174012916414910764915910507604819021716588473225223438538884282060541034136421230406969892539619908696901270821444556898537381364823754466989767017638122046495802838549155647690879404564957149194799051082797884369476295860863477637897419330027381164258952904795129068674639871188261225185695217601762209294007026381088067072861550495997854464682656275486949982697891386730438997640388546711109997556632755803673226864951494730935429613973533546580762159814918864827356159684905139058123994430758439783725169504011387385508644670028156308724992241498445011841140650924158100580606071970806508185443428432665437872583135576150814484996832317282483136712752049561552057566411558015066657354023189693529065904477779353461490690712525709391577292653409996676122489970641302918135401555613946690949198784262679355981561232987930956946635528336929118201577792791188628135363703906331086300038426019877329364510656037496406394433766190506920656851504064630087216223552299995211195025435034906135669328285041126344932796356592994355145810839751759221045018278566986917728908512972192877237965212379018638424319665784043958997391078645867326742085889982154847179834444888286871372361595696042471550824347066309544827155341547395575672773888105715303022605288211155496226203945557087734046685987855965219372558624135298563712691133905469106012204462586831666915074962906680610719206613418879323769576455389445071531466391510048430265477421477756108518705437453184588883107300228239326993130531540713224396020043847925417434005332876197910851554198769642092217637407495120470042679653259637918298990123176735001879966002957587592587349147330425000282897818794523788931685882263013510077282850557634842263960014629297539889188344601585957064034724715779677482512559130895236339016890133451973822493032873130878146209004970086287484104670484570690028305287765904156850679254582876143775000615124523063809130324607764655729581615044018689341418701403285437735069062466124479337733226324211754370456541282721083152614017518849194098322399461065556246538704666137280501372075490224921922737862856180551696112893623501617936165517991294904729466085140821615015425109022343011454948619611152122313471968833887460307992841374825146663850328559077000890623641008469849317475679743260340378522039299734910846605652805481194112343366078879187027525039782097459382652059678743679594988078017315904192083480356359065612782387210314246872540448488612607894241369131661800013748546530758042745514320290987719219432636739880272077813876100656022606736485960524616917119572450551555456880857411131555676920796773925526620426709312327726374397035317679218736594734175896308564778575845459213436748547777325788082732252934884796771705400270918991125507094750865726911618240810622016275774213956609792130448669338770961039968614439478825974206027603874515831255390335026506104919566053961951771121463762046564435214802964047762986503123341466766747915159859394542751487720199244390875840752274811818877844341139404824198692233773645925400118848183640431413339788538285444547466012465958721399841300238174862474325642666978188640169498662755540436819764058026687418948733288461883400482012732840056114313707712777656195716981560592655152630659818361909552114030436525687038202574001824754694338487980878789317250214357016652834197565959187309584662249362799232191964623551596360557556444814457355730895119845997937685293262508724252241059697205628224896644329489190246805421468468214119436610099364476621051602468040967360350674807990197857702369062903797845367322904216124328411898251225274361699379576057701140426370156988011752929300793078890080566452786708101029217113200815930406855806559687345489972290817086919196100657941483678506252074827737077155219886833241270189790092455991185955525581760034373168964617119294887973697026541592371039468831999076930258750535763734324928725133023066587321633057995299738327484374117476986410969071908909644393195276794997797165328898332228819181763679473060405489593078546013757439034063457548041290734064134318863399733256096193120820255913653247027465816935480770210261190541545889052268235998779923478556338042268425689827662630454741279146173658581632541663742747871058974902104478174571387077324146631626732529413620411935087000070108147457144516120043769781998623708715305504486406714888465287981061679638300809602648227090235735870066304239194817552448914099800798845878307942023726280822123289603047873916765175377524458752128459316205843095232761757455548345773220936405703965612829392606921296284194848030797573950184108946926356852663359071961815526627041011105331428023670098475968951405707705449212475553148576650142299170383954883012005251212741701979775026380193339281389355680835601059283999386063109374025030800432935392542862514241528813575481153777702784528748662635015265366496625254377662637602307515073935675620836520806892049266950875474152699584559843220899868757495103388350157153157268477176582605220058813628033853700545487931408387042298822501437506999417434384176581919223514900057399420305092291011075228404908179413395664644746088737134032068516009810553929339375233960233146715424810395648917133745477026678567886203361183725079108778399874396505323523079072144391874365886590081526580878833814991327590296493660212647748393723479809321277601363917469995572138869549088282026931589212960958339960465125048991372951030168749641909015648518545069228974525499130950928092289290102246203664530863175746431127739779925997011037357043463723017211406333314396101459313965286272044742655952779232724129049881037039695386238952469579466097060779005845601024305441494923589742187650764071541707044965571822965801482418050111190857708045529899583893318511352662375994764213097769912367182102944751885452416234443117748579391708964159734840748325829037725868443996156947790775757314952737299304445113420562351667684479663691788207232491525769285618647472172622029335737086159968937927203681464688214444839238176827496246693209639209104868906462920850959913156213693010070858980633406284677412821874247050463815637215270628053340053252739636453293733510261305982364492076862417584233595046899201751119524011257284560821340043388577833234213867656264462251283616424354126431831014270152878352083843779055807037395350277501349471055612087332975798603937934837814063500315837582211115164076065456952594586283451536396889488419828080313646036586184913994774162843962575984408359654810911200019607065920707795887079780700968277678721437794945416643039574924866189351392169124133285663166405771683200644129879689044487442366380384856973848313882746537909395609469283500891816608048828236017021299119878908924030612207920953864757309503619371882016156776921080412069844162845065401638200770949573581969359714165294266624368719697776990523306339003500776714233550856914257032903438409326852579860243758113202406660548974904901487027813817938247434840968627515953685839135993427614799158255403280420983999881168609721319556748289844665875865377806470158000790881516787371139589313876827216354067526439723025048513913764979787119447032624301771047214063945049685672114276103953106584070400216810377530363672859275962346671648637601979008846899714906737605811691850250846206934428214359749510220676125714147511031212216431951610502313000952674039940086068719985915561181036133289185673600781766172915885411690679399925635835414409758211379980257822736819751945293577777896763729876649376685824684144185744081293348143388521847239368985108618134259796797913658332876987031770916884767606808836840016375738674970482804876399555967228184386205075365823947172123076716300340651384540221413163190272981300409232648747382917802331010711291720736739296804674994570786489868616122925836253682233802669544936625118704415772182127834952369363714398390439548269739408583181267381531239565445469936472571171701864238359492969654737863967859227844844531908685368448134462557635232297411225085878043654576570087646503055032288528892456965549838450218451978162980357140530078177835889142421629324969193895095865750522948824870542807046174509793339636958213670846299511052759704642377146965605629212665560952416320075109927562896172344489408639363779964530214807040592127241388264789051836869123354169717810554705098191100190627460332386156142249501718221791854040255115143330473120685860927655847244436507401715995096289454421753727029392215604034717035813316203017036171978226553478821929019313879348159416011234281859473142424803060232084935948336733930326935780733002703595770015225645265257464639662733019606787306961984010673333932521453352469659528063206555300801545211638539593995254365284907998629666959201713008750019321317260436823862037082215543984449479725290568206962752610660192195428546828817613156973400848975011703000449177214440371567661586336304389393236779693891270727828436799034509866291880676413000575070447082070784560117465667143324563306346171404809644238211943036898084856672277803465157337898865958304643729730180133646585239303890159621416049432388038294236285475122960731373334374582406718946858162001666519551997523584575718624341545628090681946176801631740958075892577236007185827179736575207265673057338817561974281405192188375915623396145431912368746942505116927640735239394296016487285826809485563551224590727311335216255151913254652639131387823039121640601264073778081105564153929569160315059300376557577713841301650392939927738067873278098552033545030550193116605640622303023118374245018457401650262071382825030182184258376123812854154195028419988434441935303193841359492649904362534582020625891616733416208755854511415879388596138492406838915393650162106719942773368925172404610935928037781211059198623446500811510971187900887300365226363778259817111840475592600905803968616877857282698955166220702542270637956978431085305606126489662680779964322952583973620328276913374026285986436652620739584787791854006050176185572954072065781223060743161987311279656608956206190739757652235733483326948800071409752288121633254347488674589745125788590502395020398769583095932445502846059009152749390144700431131761414907539319135777725114184228921955325198600367876432481092515713860234221329884125819031960958985566622568745934459303472900497350774801784725324324474414020589201768358167047853812547684612861240611040284050168467800378630154431790057191593233565590085765666449556099596163361773603515179080143441010144230253087556837620213643019393013758873224089007218202715077894624628884804362755581767202669538730259795935473831986462891840409042715209442327252447598273562365706903077776392845688354214693977168347199239214968657671171973241541440915864720003036567044717225363050029817064022490275873113818364907986645537230453385753038360847941552802038185140872156626281673026880732467762603368341392244755632562033312508601849875199226160244265197465320077956789474907783616435271196994704294999476900197605144179761372757202340353608795025082627451052642409811220860505999637722244302634334354674225621752083383018882193350950932275976446250994960015606470978674545629915871567459867473089108580332294414636810613781080316113515264623933756280440868726465642285275567044718205577383582594449824527796861490197699634845545989583671135416578103535629888693224232571207200421957480048802833963318082411626816629080784483232229024019915547071822168143597458697671242811679332029064104355978271456297365475241075906094678314536787870984075213569727371831518104655767338911640789492740362173866807885335719512299323917649159498629410847504521035364391101092511383962259857895497843122785031620434406138541710086043326216966906679673634278897989913994837850801413729915329107232806476917581124829256479843890021594954197824333494587217555493103851765257747790035294447590576352822025107653359214406518310188193853905861674239686985139337992530171280750083672986126546079323778370736763542383384669800699417630670133433335136994040709452652631174795651381155174972273986284675643447388813632542486803924701482417819204024690400832687672704841624347571978137529019575745332328128705103379099539651234783975439104771259281755469781470813578180385935590423969916165962857256190777108547380070398592957745066525827616672021009976563789479716903193167843923103506184606519597418190532252567743658357052052622150515066196909167689390782184733300989499836584463307695149984941111743732582105155478204495879992667249994086963366707081119890845521459181586891389718492307033730943094949696495399780906795673098137673042065465499522108942525729687640125550792221714759949377010982976939098005394882219987157345038914017634987561191641457101796356302006740183424540188608319721219481295547328128781706261174774991068639940154103954694716882451322639250006173223934222459970733887813194869057679661836564006016612923684613253855413069720611226882227649366009206323600941011571262880481922828000848621250844382649873593526139066525377798247202440184501287055403851100512673284306617801471075682880658175282915134417374255819225180556113480749384225707731700743309467279787573984132122897520705902943886437537411205242198476891821527462634464065866403987835128058019672912810448974257914029839246664368554384289943012056696991120731302435880985371559146518367435655767434346033823612217004401424476277269493430552228942016910018578695494405078745522143063211405112637261634584536352180401432475421627339729400483513853018106689813443892461435745727407479584193425724265046296432143201199897023806458362514008658108161197994274178896563522943401246968170594353118604188372913326284229744223272948108663655295627044255027278611820045099574587700195168558489282869787202790331334937433343316223527896062953555655433839017508258398108193301276439342640829223986736017513665221146599264692499983161666202406531524577585954789631844305838055615489270889501087151995743021047693752081677168742143777540311646245838192916901825539529509834656134127354367689144564251333345352396483070447016124379670403585557630269961279909620650203271766478402101342368987818883151528959156056606976606599305906397143683479845937536774879633462722062723060637144490719546667133812242239198789431798316759127462272352141967600121989044166066699418183703965130960570245485914512594828945847383270039541644916605462849935258030444011572071381896444134305774616041751007733331366753985413833523929703728737334666980089231867703734571757301790864002665838239636872987868849052518227117409169566517845376447978443312548143473139425419608795807825515752554374479916234292332165126787109884861297126296683079951946936574367419535568482361945094920675285627666153496479434855758042382886853802210203763123962973634083857895225046032115773748696088731528033975881857145800804298339031450093529601955572492392215437757418608788770082411049429110122293544948925160555603178398398982582994769545270566709824964850135315901787500114070081766745872895988714523536162930941910824034715097304426833027298984635657247760190428731448066778818844063356879340547937051182689353127718852459514313621906340891758605319065286388883089315717606182647906341335190101843777180937954737279537196498504716075702486343575134566502628262340760784072370130192067751429681526344140151443231438857821700053419476584009207548104381135905647531537288783173723561631523654960124778141383618571283448808329081522838408553429446387022596935688088570656166933857788654170765507157455211827737459742614416411160036370160669876565175635973287865617054416103702954946084089801720521179050804661357792718771234499707589902016671273895422012838541922327169556580272711930580167400532640244284495220516939186622463096512530165081673840995354216313065973643645254133119032154771919198087907209434612506973716805023202427693872807351924085146902524627924857255630552542480460630270818346046583326464744727238012513211217508713302429042291429605239406128233410569097133458084766079107366342431169246139878559927064686015721478663780627832017504640655281647146601178760833004152643613163365587170551390381255362364544228929785773923236097032011507388655935415996056940615574289871750393326605751510422647983029215954587536982896876756853857164077790209292157299916703864294899262862027099372563827257355925987140449345041561737829781064238953349307747053182409265106463819582088298734230312864458128857154681528915888668928471350013814945037262118180507522275797431947873522164861831430797086466243282230210951768051245745516533217672385006545951938714478475839954732569112077335590518580387143527605645261252011685894700714166573534646648117108870024287614565055573275584533065902927876660206465603096725302207781777212204605935188152187889279228193134719860958000960099054005227798031626802507577620681417212539831523756584394452207951845229257513010911530815714770974790472982783221016092930406579367519506929780354406454243750496216088085118304856997727890933192695772456875854145120117676842405805956059283685986840609195957748220461543448741677052682239312066899418891718083752923788572428761684255918621819269161746602285014098547155801449511411906861510350980978372389610506802696959244778846008154031326776822228463894043800473290184873676265080552879598211994937770862069111108788814155179484045611103080101651716273365206210067580335762219835475444555645046487084956879420996107931670864827791586826715481492140448948354070785631369630703925498425524383358596143558767239783168075118317597066311478292601177830727239010847252767413161257025625894908513055037578787134419364201580508608581845432807938070465040267203321177228082138574064564605635245049728743185537393660165042469497589934520938291449320299419626981310139139276439302985231853258767453964941871580977381112791983308471669427352349978367645559242036116185239105688610584077675932781659923423580101668188756218447999333366612806896616200775829755246120625881599692248843976135196538407309379459663036731515331308162192116677171017341621879989745555785256612330267809846959886617527605080258758154913940899498473081542686039554922048453668617366453662441126545297550256775838704811375549121310909280198755736245642199057417555734512741419812176479088496900776072564160435213437462134897507377370224231522100542409179813044922880799449009969674790793874572259400806991405787749457171083442489822907012153190762379711044125726350299145167704009103634042879893433530435386527158463863492401190071819394737711115053528468414951689012680386920792265860810456021553766027747176958478198788876236366105818253797613661618895095644556391136022279220565974773893741800159986109699175611395123689617900901150500697129087116244982678278836509471961827191216310840646676065000834298927059686425540747648617670287933064224160330298604995888843445183285959475209315646651457668606470904536053393684626407041152504312250759199466449391529273326666649592868289035329020034483175004748111212706298620537688308856565127460838118918485736423457688043919220268869132280797219675545657029449653387158443618825977683258990271826491886392660708755590288187343771176971317871904752203514228335143900644217019984152176162322542972925327138960861880669607952771564516654116158732139841255346888941231397026018424043342450155652110487988626301998278227689986152863152687407061139681357794173251505250606366717989468812105431234921556248650296208228987070470504184205841560463069117289025382870351540844771019405764498137789996592278200175361624441178647197329766408427901850594930775871131506597598981977494316323105406226219689269779265338400814066869035207087550983242107311777150871866791018973546786433477174563603531185600014079112069546246944925248302046330853557716871274373863023160902621715974067109987221487463101656064779341021553506286698903058793292586154015586053176346016556953425333066022146625076918298571679397898401985889516648210220701598341087387465879628778319083873812606637895496471725196678068592657489099452561083304545111737336402065899919113846996723016743818984398780731355563560749864497373467584506176027719619829643366123163347348418536748148874039835395755325726923965986238884980709278997084006595699469846385045695146955643539626810509209449732670568484028896124850865339210464747023533124857826165740562110635139395765737113218487438478830457387393767482780640979271763489880143824120330390592702236156337537191450314468939216308871682345456468418054027184686588453795354003690132264292193818999220895261070751759228329757912649456167299590665613442602626392650936157296293084126157219824388412816333582760378681409019209450577777544969413270968484328021786728891683568520139872696789903682741990218632800329993493325364437140090074808182029793114032305431651882739781217267623698474143640318453957738525521038645090811163823125670297518851862582226037962815582390228193380502309821393118400190652862807462033248988871008767215786694393172435674625363668228539243082270103476131459477869896236959885205721555043950442580839676055481522421107272353318526215180994315144539685976309485673597080700105334189425575567082812447456575136065094294981993582724127693713696345608866964066333488510569288728131395201919120512455662858435752736408579696936406181919399422438836133161978748762993332867117460949566166666697122937378057311950835529572995269602361143304148411527155602721390084669089746128822868621241650806680903734834985899905429513764747355045886720771911819107443198988818448962172488060506686657365281921751091881431245127557771025569327050603368887659118907616665014796039936310137743488079742302110757723836532750947020798553947119473471113484353690338404725522767855600386298489075659936200126797140378741563181706316982349367749598807284900683810976057641735770987113663067788610878902257165615074642499381093861893023197224444242774210101101386660662731235731965384440981886972959713680830468793163243091178123207610922125778859696439137540617638309704690378157653398766476566984097813872002403513977645796995747590321232513195426899631078220248593185954489315365222597713474547630645145137828185102458197915579167758070123540831682304473849395705308278637153841943878749726550976474883507072838511890144589980425718119684349146650633918838611578723056685225835254520718014801176467926397231213589539453886497133116803393483771795989299926957671546164323050267172888468283676182485712538546661382900649233171477679989217239964571479414334914235061064536125009822532762924442568050414688668275303170791704793978826189718218691002931728789318845180742663833079271064018612608941160506859212536422898971173148146050978552560412180715319519383329979587998996835335270571198382478498368792762705037605296882681219155452518416259734386027265641013826932232451704239253609122081441389203076396722732356449327221844247015794071420912315459297233589653579659766530287163360769283439065958662213644131784789811767711625462063363582754733507395487014861597188277962952763687904401181156078999536049122728026902744439876471753478910380191392086349647952306079514044412280598798808000864392882522299562556730443639411615695540478330290907949646208574077285932513520043267789170035895046165927164505652376745056238827583260550692530527310517419856346117544343815782126831409913849464469402094558857307158105454490933157149296245126858188444156317686887329247729375171845886964775452836380917010996522399371791535255919017484045491998118175268607257301783238124236898129794916508533844274826821800015620689527977978267762700011496221909823372494364578132152378622384701685212077389207368367538598661061238093626111436376092022282463321868794954914916142853844613463763826577952846343145323357423541515444784683643033994040945915336664470559236601022124377468522949141237776729255535159449935086437550020770531628525948117445605991343472806163857456217509689171565002198182818081424942361797711290068964377464599008534005187548744566482235424789964084834929960194642963828243755536095110484518431645925411898605533485421376916691096311388434583238783629788989226217992428102899420617183452374581012697393574854643272673115730329606660822814970655368241677633189580157690101214799453420607229579465449164892493570152707185012567330081625811447335122614608794108054519038673474011912959707208368493174513061738132982832452149934238446314849042067153110705622180695395995505440118222374139569794691696354802849425894927408107622047160295954621358049368456733055024514201024205612660646873888506881662932096852010451726198802678890477686586871535778469782134901704329386756887738817120237140809137751420174883064941173646603327156168675028953921484722767531925402224885885174479954866611043801921878522172274015452827081398475087101344581452589107800846671189846782853569546293185918604509819925364076415964938591183891744554959794653627153602225651085380314686924170507208502384670437070304167364164543977595059732683315538879137088260029920523841826073566033068286075037839542946146859249716131219240456220114040639061171756809319228239152444201806899002100647040601404706554202405856057598407108577123704752355181910502803842648251826693585115912677434411543609132194676744194000471524468098773143742215170871626522593210581266425125582161155215258878116554370372363104448915780536513266012309340306253921763272061596826565306993525222053504165446695694682901300249332179987703576605484336531396302243596809618202131368223220272714903404316751897930631877756737932212319032309413670852521212595003932114753037507068096809202135771360406312690155377355311148405051366745621549742165906094054102248952205796738158480920059341326295742492890840326108189439811300017316115764455455781188438404224085975253803176014206176346658783347943455630310646913721191874787629775636308304741662267892052252027134105244048584778205559195401461586559176177059688869344443492836262086112841551954356175987156428676099472934454085091786921665054823333229856051116523559671277549172400286296122871376765875602816481928037990926598994516077539372401717402901808511290332467704103564080199564588612449503757547319803392322154530227856546235067359135642804423772090867096518291188973058686419534124150938695079663920002547820483610455264534688959912227245474478363491567754360057852425418936424763352874242515968625722908821194679101295441268774170281097947984098475931487435828583161613546006353660824174258667229146551580162082754218002270540331830399521211320226743653602221673304449194783015922915266540465478798839893423247825315327919837902268268946357226658445488268741659420362636641809384974440035131819861887239424578544289874714177966882231870834657153888648426074682415223312869672390571917871287639939029720219298595674769777084321679460950301979491179174898573026936438568195857043369985874376769156740897634926877997603012518077824553855130351192904752749820869525466843155499396635562719868141540148343291749866332559191434965227774590008633098009228314704019799074640333261867287792232856985206360084386214531479664165915049075005798559926674002519160447233106183571810255466476295495670544599536026198985379494389988715642530765297956091214901809967399174230499080404286593502923642098304657087948285837190972720858742210958499237227062224972601346598204870603071577251127687071881777142756457628016763484579466429944558012948436101886912142806437208590143057225741519067611393977794089517708849047750380491804641408795849222033742945250333580831166512906437390707876285930543134303909455846440860567510163494056556762347291276187830356620477717454747794894756427505069478760430825280477935015865281092034037537668703435353448423789452245851394563241159999822289330549040921566065902162863347585645028217324192512162496641280098150443783924578452682013281783234102304241148198388136303509485657511680632288820714420576451711304107919417275393101487127462559433670400533839133291377712744618082757126102757933429163149264761113618199592844446169163670392098315843080384742829515593983027971218572719756705669091720911863727373196259567259700745725902024365192826083120121047253105570548622544742962887715749921797341070311662673449777921215628112762760730749266298292231136859830859192649093554236616399218324478364087278531100567705765325421700449603232294800346803442313564157683554144284009703405957758945076603522496885232664924027845088608557810280733561385659065968694645997441787499239672781026185471295617331136229608187342222058842932884487552403446128466772653124060885230763019794118325787782250273363552129240080920542175707652002299783036150571906259334518956693626295602242745792256192271193762687680460573429111963736676332969983578546696151165600976704112986823531143338127289406827550883886952021034588579416283868139273046399846416388829915329813463066763356301255529967105761475052444915554943263838812429583396089430323488736233663028451110942338528996428428679156988749896922205895705004422234933597271955602265694344726906554433561050243175886250051291471940280777510019426055904373732583488369710268226673584299697859742264451949743549475734503108530063792402040600720509574813889932078760902190660582718505065339966482151392096053952669742841885659703530613728728520694244781257898162046126466476836745643262573988158962804440038040225101428764933025449457917490394722012122416489048803868300067985069104242228181252051194034120974002057812203995270983355518616058876292357179646107987808566149896096459867913958934676439761011286692057468011312870077295791950413880630748830853944855505183784008943729925173650442667201329060745861866281399088204336959487159981263304854182081167053292196560511340233672277437275823323554274355826453539365992455933784458094856195702942066326498417221677011635435894494642201249495235806198433859279815284831961332892931920496467310365358601469788047072158183779752555626839061478283680724980107968575367124146921291909770785133196965337347212975808404970045591589772281488955628411091254021971833645108967264572692123558958059816152889661706410408638189487818141398790824531413059072614619771125072793282622797073362988696045254100517244543269141596042836966092079735960419686145571100681956721466826924253269815035824069888233640545933849906130364697171179805716165121790602890463284634142371840414554415243142278588920813079922325949916191487506966108540352303633505104825974575157675366750925031321425048578169015235807553021450166442362605559568976409031693421504873434611791493681436987645838927047822771566260318184750063816220563244942666751625715150047594677594172898556450582697417344397100703492977832877465886527752986800509594653996751213199887589758583497820659908402503647966327191208270618669594693506846543660257228991816562851221697661111906318536860283701054324336790634989943706938857003955760558988792062213075001035355831539013366062477630598018555702874589076329378406025854160023744105518522228434229203126548107604340962762686573449829915804604692307153221408571118740083739012124508960411983387278007997866225778461603858361847516583998081328302090492286892511293633968687136382157368819830057868298030755083397039845826956753012092140037070890351228112017127627058487208282702248912311447659405219611919079237563408054276677177554000090546573838024304126918250372642122013036656967015860637811612635869897745433257394130891939481280102149125860024944848935612465778127061519518269377639813501337643450065769867956756681681498958488112476067361807585850912061022692797384654388652430000866482145559137668769252684595914979366913026366810591515798786336069532873910261197127970867677159755760631424849669103457355935857549910411193803137233986341242056058287256569063408189711415609792606884831806786053861306113897150794883552556956154436626123933827216022589964852604840508829658687122333636378935352087064891030429037274217219640174174751546357372756916344914161667494310629641937742678014126796347587264412797570473264783185944953533641739491106161627499159208002934228943929954339379696569299930370181451577957765620507753451830970437738388008101536133903588145098702679511689975094407111952245383422221930958760700761616211669906289396395134464124589131208501819915373588650421490854802288890340842175579104957543425074282556044407260010434112877810482603465925311990975037312667007143891476738079250649727422605120217249415368528681511936066511115289681279141713500540439568050678427491097695084301218080281258386679618390229446399015761013600904423135937128360081735740784989118865245801289310644668787301876248590211543735375343338885449024195698094888539093478229536465168407839234065927705744383368821292812655608100267384352020653875574705907942425716604654062286036030761979521924234607975439646166469949226926359385296307010848946752722490391003104796249113676997720951895287613692822654693623666017595327257671185566576008336205185675831846971612988582891036821993527572836205531100100635251117386877339267934045135736241979989364685442236070021300831262984594038537022698181622241518309332680212789644735755098200570856640654239441010509044537966467834869547925278148236726718222752056724930038141162856961520163340526229857374578703775580283326697758511943349859465073243035575962675078068184954214328165126328544864406969305904515687848647863752382215351716638812694198125017064888623160173438624566275348260346836607312993543943895278434735602380799595397337205497760260687900747803180361127113039332897243517131055037304316007261466751348955974885593958394910585182639713855475691039601714891078176523601682201543671990262276808458774835411822248196419506368317376434743620953836776703357778626594818757248742445329621035227995595214465569931719239866504074593190154713547401287109951098369037571049731782609182290604813936556631151321423955447121081879203667680850480178826380090928353073527569603345854261673231822370463265050496262649839368408280452133232198136421363143335133618857493335077728295460219190642302252436769406767038271324482457170479501166826644002281501822984043249477837867822463171333205993465816876078020274858502241234391138386010085258887913740113038745719446676463941386795704510035711172189722093770273479894685425499129057096133628253595293094144648209274953825571748029422200616155975299440173029079860558553805880823923851144225515073941253465355276225482012375552552365990266021568756483804535807344645613895443498473650792937612189683146322538000111310261990732074928768225752729946516549944747831197847284774445653492437139735206902086323868611278408690324741603862009321400578465961752688361526628267232521979660805643435960084862009288628764530017769780359353510896363148576673374625847742636698337407536987880726078063677088378166659415861268193344861134668493522159689159750424654803035046452906109005644227249647168396794849527520832920783804141619891831467817813919445539015523823045316729187108932485780662716030625845731502909174716249640841441073708704941134770278669340843074497360380721607004649600400042456120846946392582885053282129732735617165970798330659645877312862721747752892300752549707116339460783685017745235169607679940415092732481934389503447863503297307788699057328834572094051844949783504950561281304642472750845745010741420086223269026884236578603015141426240300421618273404533629418962109975542358257868267847736483256859439668557742093703970154388531208683074688955269123736104949673096222669594459234667992205627444079140525891227570212434331273225234925900887186215246483582034874659322476930111348702096085878695355102618166861542455083813026517887473679179257047520780670192184895007779781638086044762996106362856409391941109018426287850667487164530111566460420300633455336398390173614743105015452976114026552348969415133396708389361066383295233880925121984341272098475843185674959589742163555533659690027393523977234368239044185499661944075750530904524844269895614425773256185984175925817210762760389722624825673926033915057253692953583884141765428879238700341770590990210974515342674565519454549439480770908292163780797083779760521928362883951396017544647258822748883530254571248637190136209028040676433851263214899481289349858946108193047465166641045275624477607423302810840369020437664147713739921067258935082124900119702618026906794502350825924904701048710270390248591006328523866858247038640403774953721228051391187587818479437144003753541783154979708748800365192936933817741981770389303984998596384663578626647117381210372560852876066004561724406075502663077905552307665812981720332802474357973612795796498409604977723985143251627758335327802666388010006993061909971000504952701391513779230693949006028995354296518334983102879879170875911951851539665291169565392413852359303031504966634183805790428863535130462254263644446050303930575843173298812721902894656303581869027892616148954439582010100266555135610596436349242501619826797981355353873790886721509160277864318277075192399514235787031837557980782083816336731784744739556757421197405211655566747689816020654393457936211513478574545805631444677225198345394311048258489381352460847799926347522170048450207524659367380458193068635012720089646487791367523941904136529252639713244815702084875439411953108676380638044500828910848817777280606901616352568063391617840863595872324996931933201255479995781588398874809399017138638452633280868175033331663051281154113954929730022571647161470563084549457724821659480270543722838703965373381145871507338073294539375794589383987501306525822472581751914414340602433451997654738976920125855271845363957314554926006748261668868915049012954596571780671304783077773775047541695316000696293509381704527128265437172452017674574445118166052889885904754072878988349453446072830052542666585088803367858359983425936493807019223861141742112748737384304074574926834719872952440588197695880590169235760253257019086535817890819678680401084090067793299183926685958897793805736520614918022337024414651799952994532684824144067119628019901823942648206383653473059182913784901701598241724265833729360731624551610096694926257599262149772983809378274852585103170868103856970210678078962250607189505177050440964561962051401440155250379273554804472868329955012071393863318776510274764653917195929716421998356515253240771334696124385324362643847683137605782467556258174756566398245803262132871940565533803665094498897426472839883255414866564874266717612731616598458360307853310826082667067495899594402113635515346628158320666881845357712373901874540854354088790611758561960114057864753050877632375076949234667900069198270114157255349468271598993531729575956972560234257224121329836295056091901324385251455798901424325283119356260428810665384767811667874185168616916554724554931890334485303135367570769694218067762345431719566828310493142578064859069982812002522877313509694735257569012767987136034295364694632293555452295937379250697124930632429153509772204570393288761321357972207744581854674489720156705547544104186318828626630044031209222727209754751898155519462787800073425201818946568645951016354704389838913967245849141966497160276698737353285559386348575006708839118331952109619838377580817063807518865535239501769991047284108453942959727866664940542510283389535802548946560750900884319882007462178060114657290451248364321168242013745455814680114685034837155948922199755286597180539708611665735221285871316860190493769749693725050744368104362488495490901633703940612856093919202443928124729122704727700347599910664538859954324324981575343395448802745833195933307097003766586817169801658991523030798913822670876096737481590061959935178588944172664314717697949090842178078054506231122016178137241655810269679459185053308314671543098614693855078179365665951254654238908361023832356466583029913070574784974236626086818141353479492921814253814292409043003903142859070664657166828851854142136080266235458699035156554481344231784430081950382966021160548081842865079944949805430585409757884487418418522823073644409162990626626378327841611403177164721284884119867429455226038113843013796358039098826021349763302508610146199254030809631011037243268397250393919480382576067402755634986401021244600080422035699579923446308479533578300539819993521484303674020302391992944732946106559236437616353766883026601100375618913669825833618748873850267598529046047029089250808832436500825480418630416963458760892129215157683596419484929473723424848372974053460676314642616925438378831407178079186551686605326951669754029675532003641475084532252464237484487096498819584624811902686563342355879952465500829158149884448787230911849477136473223856317422126837726720514140080251392490061882784272050448669588670020881401598016557311140335018677755052616878362631842995151456870279521595693703514450149907268733206621688769927866806978068372330234575904934685895593699535626911488909218030063407101414940785840432986724846022791885619825230581244741743023111300281766947230801812985723525655298114179747442917363106174660017683139703275471703161192393859237888804255085994393623791027527234908881542165309757133353130553680211758222675485645027792324653402415094019153044884215716183683086680666803970700460456874888091806299118937446036672983506451797233073357088234711479662087463237157100384822898187594137755805996691136417485023655949529359811941038021054323351072599357481799937781095720809719617279659806851186410986375510117991563482522167212370652153330365299849117979539306933287670107472111718086846283670577434873951250333076160731040550765698043033581614403272718101619535751567415919538583852613538777396363652359820243614787635887678051802546443184571130194959771816680888955514538380634341910869403116389565818478110177761645369898184126092071758460823615372054466356077097009905693199286839654737122077252686767743026001638095571523561064349425634975738219693736225445648089160084537403431151760994121413752697936020715621590526694161603784734938080708763618392279139967375852306774763464753814258410147115734092000821578076108924498572880494682291310746101993557955085079311354327504834055946150623514563395810597390778698257551627245544419149121889394550187946018994976833098366691035379703412287957350888116322650638765312859389444986009762744975160086287577335514341883685557510396022428017515491419219621916991233118986312164958033967501310421846494233601904550999210192011626738923587309189763243418172069296295512012797088675751901366225146610383033129593983189201017073402074512825627261209680022097187913919069405508347223542495839622500958291470126865481480429982663477930338452938859967045026636149512478599935874169679506091583052730294660141704228425599907524299651183798306508158607131683315142773668704170247731020178539601373144165235074097617618221018872787709569167913162271370844341412070101700635923788324318499761873749795352938902965956222424615731359264550529999158569192517130702383561632031214268523674998680386445356995025192606088863763766960312731565828967483405726731224598342392266895994739119733772116192852500189617070455690642254668304559680579582785976684195383819555609664801840338040906808684508023034089716626453756670339106078242433751450581509651724155623373666224993726128542523286259436933451846440530292618199326497755140925072357765711051577070248543720550441437845990317701887925721203269014153261859506546877843596574182013619943959453169604149089282363472334227736175196440960045414432814734065829719831237763459280266512128019699608534262419263682995858171430328817803644914448430831370777110055385983786502273586482750996797159654254053748849896303025827233156734441210940862045730034482298155146689091691226401083034653912609962275696206269441115238170073867458506036569413070803056383397531825071592116536289174262332538423040130584900755319712083849328318014557046047355672223573774928921179086290008446077930533016159548679300136661989620491507214450058841750427692767564710229251829894132953452155625187937116265436614848202275255801511165255834222695760113964179574449713087815317206888445753105896822645255620652097113560374113429651063181237654815409574649541160895183925519077770857915008867095758413779867750519251067314438975362767622464468483619589194260528041800401013076371890016587688878252909998993620564041094789142869562472486298418186830903691792248773795650098006480273930080049539056179438162335098221236166065095728697768410819440008550225823898300206580314147771131219929903410838821505910416838747413309667373323721581718004060468152323062066357332997889392707016751557458607254155708088706097988676674353722356629324880562600234554569629428702285222103059635865120510681036197759505211256651510422413915793867411502174565713676865773508119135729220272493291171829529302706776109610435843719258580441624651064763458850372435687183462271259180763514230642244755202977412816544815311687128651563501240152119684767443869041761870293906136166962643950928292703792029785778342217540911908239691328638932234781945755880880095471609465276042545638621008237272502505396583148533496814919530901362839196712528784999786081001320120736232678039206682140707579965479016592497486326715537813868842533310051298045217094292379480229315587853322597976095616584166104738635904502526841229373650427432900620154177372753324846119716810145353820282563000739523928697226759290822831880629657631605223266164404883700844338226112095074167706675478858138198464946575134363499020114084179520513136218429135781031582622005488085039200282616878792016834442249666874849197294721743322529110453642987236696992366961382713088546846132523755247486685685113367827413064359788210175497056186995211227739865468815232615357582945902969376789470310749191747659609923156508011724969219651605652938021824113955978064299646839883111732722124476642242941436686776626341029820199567069563391082412350396415771145283523485735494483556700277472812312073968892503490929252853645705142320231878712460394977298910408017137823029291866999047527474545724098221188625384791265984392116013235288907467955748576230806217468416233809545726739958576234870627070069513227564592646173849025824592128815586337343036372195642183809364910737760846851676481160121230152555977891791399185465850412457657807203318471251252112098355347265079572798859937602534452787218772626394812474474803239614674515025161880573978501570130146073578492781308369800540269026274049315513245916096604613970333926696331136010561222829345940449970255890617551525299085626691685117709676307197329607529223285463752885585369469291538063692515775570040811593598641934150030803900452212155721316555412819475851724903896403846534966360830250669141904002077253902463333306625895114895820611536277767186248312560101573552692754910707874441352091346972795495592275903280018295717426296988118058276086218891028605795365141040445097097997391279439157420261580294126655821591390907886871723242879559467458789179640904997291803172514073688618022944134724136948189591089549600994045692109535309214659793954676948636820532142577662050615718842698201056128620019621888231993452949688464262318386049375808210665635347283568119562156584606253416816459429047407709711887320536945649063217552946863523067895555363209822085000514944154115407439024914618696232654922456968467176497380109736842730500328077092229931078490099858739075324955155493794195169860472377905118755059878759525813548056415438512001306032608432575343450311124861676300690052169518558165978049089437034366745919162273866955380973459899936332078611610109724276879020710326432354822034699381820039520792520175510422622142001674294667573473756984251743571441168394077213832435367734238021855972186738311106501969702731070260568703502571593602172119953875408057093924718301952592826171821679659766062149180305576905351433559787322810744874459069003507362311239176202374976692510460229049619821738374922094691088677438015318244878857601915542666985752640986207832003215009661838510749954005062465977792785255443035632299848562894906139157243744294051220380835920631179406341623024565710711535709513701841790559642004873171081936122283490440670371872636804816397810946619573463464997775468792442704893895646667710101844057813798434377732374348949988077090077344028796847303704478343520009829071855170898118240470046406793859502752156477139007352259259161895458919895739959410322583452872589843954578410195615835553824185535144757054594210827347004645960706968798649592318399334376464010620170344146793929132309275052118223002358601484238590949761309955996226597210230962129625454712919337084826042478935535272207046682202088842663845349069219492196314485176341263238240907749292826715899661978469698026939933473243560286135538857148481458232590681870048341243509230772750747144841714142897236683423638717247564372309063436663735983223586698429629536359291541863095933434431248364084494198506212857017970297831276127801040456124668346971355376338258266177833313550717686630612377407010131189622449154103699503882687773054359770405035644561777724290337506893753019392505184827420394503784256592377153997510269883941547898036658016439131480467584157128129496410237893070806335065567807934396778043082495080955505620359956424308868027573619069295494064562380795845426999324940135546880578566680737435260033216756443863235336292796050597474342626054386323528060907418299624314304732901410159753063603338508703023301034907975987863969206977074510680742027917480710839783911176422153593288606821510979425109519919140254608470422485302391080774040143976375765653799134955015987743622102912576369442179860744616025293421632847134942510663011490903334267254568053077907855017581132781030338675788800915197135474152590155827244370858701009812891839701393054225524263771561083890510622987800178243729742703934734526853756891180379700013121979043479780997983934642373975456185733931892778482255222013261517375431118891122137248039896549637938235291430640467844566741609578317983625936192017729923748233730761412742548627614829982727313530402862317736804690607588741071804642749884818624990885281809867099897353370138739540372386762384157863828106793671574579657304859924657898218090516230301196330888983615830745309898080397392203008775498320391817680056646738074466896844860546879749772925622525198773652454906134046766379675850047380599626134585003986580138134235435110412090040428333995881997062106272767844824807384763351696456110824555090692055981986253576777270934484259150635889865788345419386241060705739932944421296202293764970836917834052238896433209124759312669626534420459345968240717337493408886309380441616711079806697427702136544186892457706494637046023037700058085217697713742038291567300409801483779183662988940783279205866364400493955331093154548517401786142063201989842342912931704282402281693283337151672973401309314264652894865118946399675208939175284344306490167113233978190105275511732728620243592779041822323810234815550170941338174484909184765499685311566544856836959585203045048452918245529672552852880309600157971095369282402477710984351117971519307980243150131093350396117575396899845510365519072064622402265422390102385975435335182903269018546455321385140636430674730594002101109449577459298197378881790661619652297294426890722001603950816581842295409582930764621180127998802599642712631570335112738381472611630704706721453757324253470700136014773545646602726370931664497553792903775422753851526714167938735830715530297695694454794455011375808691589910629758011831591943109322762022105046338983186792880156070555212009351471130036933849209538798263352601179697097338289800261398634508218672384441395020598063115734958587898022163219745125914998878540571184377507702222090431476240113535202890773707451483136542203310253645359754454496241181285038267678133425673809746927811683799384699603187898462086710596307451097488399812743114741936842548777563575029399371186888998383429608568540342542781068496855850625796152588114776220755828047952763592159196555289646216349558043450795074576543703681982142917648411714518414914134983386403424114634347268163318810916019000236649493247717776437956345075217023844455637836893462903466215936559372434524619291277153680945934939030933015930493509111994761485116581998207592138359199362422810514668856479114482574331474071773838718349904890933274626572769837770820210224448026137012612096496875348328260570997263691081924568867716177334944083216739424324368662747952323425752463765074137188912774751359503297416750522233712979703412643518936295330282574125232210747291229988999950979864235000285722880755473127842200689862599220115393744634079767387762575532605430921448493843646221462414722892377257565797239471183019354887621560815466928867393351972964940590159401091639567795239712718080196982407636408101125352140627901945279084642933780915234351855293456686102893687156872818542894019700683261129561511117733969596775985706614226826770984467213806570762377241835050338637510828377625690954016526375241776192814341844454389470535419840736550931784507857186010107149451782886962954559346285067486757694948751474268799812695357169423811130849319307155984291473900914399512015982297223229143749870745103787740848246650287005504009899751722092341908056511339898267552818744175190320168056761168426868147001324218976661183519436828813702317520356035234548261376590203902027037248761395564589068005692342736205885925222315998318965735121163237278930248051878844127660878814540659845882945851887557082594321833989771616884606200215952946122993905838214901152368800151556728994744254768798039410537268783195874052164513282503638043104771244120109591453186596762018838874959813850969135675800297021312984693767309586991187169967016899944846351312581574389997883768210295523825736306720417691712321006724495349980169144685733068752007343783623157127408547878723269740730559832139798396417766606190269143399482226806965491783196073241625275109777870368280169986796909284154624413460371179962469976767779147631394070102425409692939449373605951227723778925130825753247842097522022646267716661992472857366906904187742129412905161300236625620181850730572296883839850246517071761095156499572491838691974802952379321939272896133109793961333549001450436046397736545483913309310423517938623236932765409738331845810544502717138133875783325153768770971789323624312613143871499682835583534951141165385343810015499626447774653520620643361502346110372041290788401187853888917434586280766145711974148791255077508456478298548535199580057909890558167944350889922794477471283359255409463856596621676009998691348969810432739507858711841970737116086588639794021029462873383375630531514507405873468926696263204374110090793264907747445484425071814916807866890086986759496081878037050943736684591609167152628876588061498136413508820506821654192447825628986552912946132887237443259878818732930476802496615644290072729047052767989899421343922398331469555858015968104844501587436717727892388945560881673766574126299812564983795744065789822046465516282880616737738676838855214044496646405705024431724974995946750477236253239605209248534106856454221340230504976684645117284984981538870490339110709184663013260829876539003325463503880831765871058951994735665354684544402137414516413181488178763503047234775227297662201105960944883242966490597960636859474587748734293122593555707345627525492268020476350822348879651461968972379321566006568081219827320917277833510970289146968473501599777047478703487500988119371716641262619367683565981611593941508795824858553447409489899362703896568197772196920726495024642539200357965929815189065852850806580972179856532517103471743766543161783008518866915435535934854335949845158290470241388945630420058424808055679183785494294703496319899152001431404106288197892525094608393367783557491233266227146258582841722464950977527947924647840167938778710028127925585035593205263888037907300786144958376421147263366010479227148369030341727473030398558276460073201459759771694657980138917146358485787115159678970797374233487237410094885353891768196010779751275528483913875951081833205911244578655991828075628311351102520412599400481767532605268161200381572483372450999145195728169417749592109093283075092655820795612755397704267359204757977257625026056097539868809993844674236657312413181025278617133304456979021582703033802867751725566800527065044632032095563176689268248678506132068629527321460366745846597717381013268043333627247593190142808157883123284638256344937784225834667124774016832950124388274929870908205547350084790581504181391166158585647776265829981085801624186902717471992735567316665173340914141509312675023909239465161653001866251928515186177262230939845060001901758028257550247317120728885861091659733133356749236018918614100029144166087636864454741389390823818161108041635216947620293093266913232742234532437530162597452978840843356665571679937150213407010195848297135641124687739453688949160940423863013575194315933627745273065503874768018879809775830692438194939145544759986926090986657162858996883197578895140470367749472438376097500055062101482736244666465040323590820157643865817860900293093810072174726816344433379704345018112413319301457116699507176934373003412378427624799871924758883427812916791926650073648767409425999417845261562400913926622699155246733110198148335621423006787708225835645391652487095981473422024760538104885251024781175564168935741348894288529481748782586468219469902228959346187999234778402790310792442093229784096029787440234160083478373209506396573134156827223772680516412754004021816065652372933752428349441946981589116286010155534891849003848920654292760658259776211214562608465953731949812684445213602724771294726983712652060241338613601977939651962116500138279891696783471764087421113229855537477527761237352759445203982319817003780018126399510707789584143816004744524377270053306511119127490606351891620802735229877874712043615079852456742249258766706726943807719918389359594383674081674365132921553688465843493908208938773895798361101145464574854693147266164967492983442348548220372798093203820622539932895317907369250611829722648041595363407689283474956498555806607404484719334242021837505476923036742285412364886909127653969930005268327878872152833929393429405736608228474002837709531298025814752221959012823457053973767789134512023248294999381098181978493827457417522170941724901986658395431933409513494123722238166517569235049371865709682259728798064703176061286416075244025631734974537350641560539355179648144249248365100642656702531270021622651565928900571841980620357270915963331922054826664084220201081762171237337193674019515861772593896455810358752055735954618470786296407149407777050756155749280885985976176797848086697693874548119104120561999385031438921069428366836839563386613584434297890910346994277090550858165176907527304734634983880222594918577389241881904707851182492460119081160023226114678311890088523626159291960997780826031573650622148338170604968071697638587151721586309112944761428949213660781153288101024037206449366956367754414627320844646803354150229478430035252210866827265560383914988385594326815330602220461561568157231412677721154267056025369941968224078780957950438178214406703172325912258651372915120934330659158023161903818005239220212994678748694175658264298171096997281945761518020148129135277066812553739377632841304800049533942883597926512970602548959478910892580990527517960485426998505472910644595011874168698684735326977888041436479124637881884808276386110246646361787921313932749626506991879474689677527486376948031637652147833925976355610473155543900526647679277161557796172903441075652815215678244902296558715266276999351987461517929678219063723239662384979670911853623916038625051134340823031530909315152988542146341945593515492048515595788300349287772522432029634451973874698982195960111704110959432040905282165614929716462118169587010082195261795641768841817721028922293619136735047257529650547180497587120857273038392134801959456934110543943893538990259724757944023596325999593205576431584473040156654696038615493125054478090843940286482377211626926920025514982894599254057067831670117396646460031993741613416387889255540961518017244071221118740576616109376625725362046219929242191170400094935861243816741099684291549898596636370963700904488247638862275494689627299510768090841611423313213776275418824754427825682717496871114779694941259993188437733747659300335216864543485840157756074711172423695770600843233041885840385413016263827523648896875778555497327894906943541047843742206912815675943672162484858736751855225148504409721722395761864509113597262127146966252062973243351963005249223804877465564483927852915366362725457344521110298269021363816880311327748525833558842397915911342155492634627284484193680109526103202749261435505996301909017873023263148275035949246661759702469147967703009808357647032200488200450443041690124581781192747343017248062373406551752696102420366143876898512709079989991697979062435951848455783012622183097487744860897791155378502865425371876206516494694428687861944982498611212781763383837838057960543458470192631006003708695708805179677759441957049985125280735570568218719642868197773188172333322533423933018881649999759124514606767430553961657246202783625098902129042531878900588831202123922261673003880711133192934811349798860924732087937574678791827899872386053354328184550031045620783154554003041391686946692684396849557277694044727778458889000081315981452431462334582074896248504190615545317261379585579107421431240401270139075792252173337660674242413111178010090350626352303056042864050781999418965812612631141798121143618463434518174191645028652978719298778105007393775490725744879924042452665138108817895976643388774078280337092947182347364230979827166112447918046575437988775710948846076809583800370569963904826527388248349091293512430169915500702993812616710360474819365253976385333087168881342567815323473108132720651474898097771191819329422109369580234112867980503810022967629998919872712327693558003913973569345190868494437987840564872204280066537944415073316029449648099530939888501275115654560974793599297057839169811643681889725415715678223525743781456205333194207626547101086499576551818869780740639103048817031372407594892149245028222970390463777331711438743239487323755043846296429365494264488836454984481077033809330547277833644030973684472104563371567024236014761306198057993833638651521197045276156066734493770659404384726739862494015395456182601317802851894382095158210565848948950281357505653642524960200856779169957015604269194474026545241244558205106057768358534020314587362502159722984273443311541802926395687031277001953366768113587637433548014581104487819537238095042420050799633392948806027653773438166756382870924155566371277274932247044330168051266151215848470052828440565980829320497893763080817939437247804141878334974974896066038735023349059849039460161823558727470044297149213386391472012255339183468138863049179343006858541017350243157643608179779094245711727664146181986140121549330123962497513781121180091401508587970254914632835880887919035377307342052681454912730813953390679957400884871688555701346058372661454815631594432477312506308684723969930539836767181313666019130771132305393140407648354334738314786251802001066287630548997647841782675232627536915361813178534969028029617504965591217899181565114549661050945688937201354951260059332221106107250577160840570898683121078738126463188313035904348786609899975764232188646805244441190936051334734793863284506178490642209600871460463699606381030033953862469072468289610449531847943443711834844492919703710713589784560960518715555633439328398800255254217304601504047300487894834688429373852864853358161299541188844354985359786273822426136745093300796563720496281392635636710818014756767879044471264592901436425808523300552013567248867711854187642251165955667734727774277041031714012983200098788015055423151702850525397441378232906732403992064063057144207033609353564850247876584271790607857245271662696308905444815109937177317099394091352829550213187576248615745985431788529298217897990919963391262169116097040792618542930942752827546715709022064028146534216002240359930051657083168074844341203128011615902729295686544681877332280650452042929390426153156183487470464047984826445252215097783740135544409448183316670870250183420213120732719046165738148827684627790404074454236555715269640948450850408312608069881136574894407726162906844339949655995274939627357909208075862522562610058339163067136787818926740016292344174952583998259245951376647706838921726975884365646586081660303430164631668023450401190965936637765952077688303380241573384285847891011617925803098748463142396549324308710886260292882852419210133305337937580141588140572616453306915306271475423183182078539049253326864700138470129155784400045037864923449355354716175821128236035126640795165895363396566723870357788392776702529487182575274839227578768080056757253430765150293865486928423409512158277925528197275632538114672548698864112992047789548094527884925201314221441494524217830425126140169489581603794382305695775656678835150062734567811700113789968346758852561894904523305224093841382382498426142162383825975250823633168090196014850143771302201796499412469656340485789376916382542922922370389247383661520772673572724174873329570762831956903789146869200754969539836094152421313053858797945557780919353545028793215500147896548323001928517328246028188710405971846141551722036757357534724724612217332446490654891534603488376864901868300897401349897843954881049610562477611061984036828232945710140771338750844226480938609154753053941472203428600682426460655059019495702108689840191805702613690547777568564263617417863676599102828521073883170746974568126845461671421164188300720350882448744569393342261554776574509027729273602261617048823341049705859122662358405065106377819266117906011795404862569331342965558424175898063680734664906553269484170177008879879412974145134498982734128284409363297358647857392045606683569729735068251139729660858906677912872050654832395409531052882732395072767954921245540317549454743034114939944693136635175699169309901440499594552120342995020064588509190735443316583481065789350649205281360002795802200732996093029685370843948196790596608983035085084894164832929889700317186241585126114199689246730439412513672948327893575205522688526532270848161175528689410056479434188818641651176523926793523278584566596310540591964423438237230340574075945289474934108633594895571513461487118686477626608029910029983417599911458871795685369093902961160593112838861965742140036918815310284834038173574875389201156072542405807037725322229081963845972144857837259591560636121004634614966021561882263004783163522153835036257500573473604453921884872223208726583272448341804859288662399209572683290902252233731644915792925724817356651227898705607378413610286330188078838931338723238972319891752994346179198483088160208385014319923240441638921377892592554364973132720224588000318924663723986799066120149095326084207960021834737332976331966340748964240556154054235881116206766703816116981844584440982317065478801425579640284865416511543670144384085019324955575719594669910971756129903445600167977108352324078073782360730508926168918176165890669218482045935861911048864170634576339348730055043755760770227279914932939674939745435895945788821685941003883306083553412988010377187504041459009442225330318654948154770465875028884345345884775922349709155646689915002179446621408564562956298423552973764333586615662090018554013402621079911003831332524815058993492202447627787977772540249906392623777972291123990269710425860791422589939987581016476067966373503895674938362836357109295461126586775901256090181778339576204014719899047718784474883260973602589083100998863122770400409326946525143433629731223395538979273394149179118008319554593061608571980122294877508354344231091524891715038069611427428734307673817035430045449244868652732822656395249783705505230799982060286387853395977863342347093634684349863418272439588104881335914655400172763374012129604135091913047607405662147354275165914975310243280735210765321759095177096620105714891803665248288215520645388102736253114780860814068560460159087741326808621227764186802571531052343848002894262551114105441144709215677614841755852646788103300436784766154338109534070905088985430501647065467268271980259655771666071418538858734264233119254995890970312038513505946362581466860908144979221593042188035501552033383089079765630880707674231659795344260967869753357993961311043327356667545714875944923052844967733192879688265458176703170042355815321398364548904428620763675953516871426716719615725519385851857602434480447871960892794264325264725485278537127031205149035499767748375325738498404435283806394572319612009827193563930503855588260247375026654616898335683877856941427725967149245248673127473024929176207163690227945830695064060124757210020262578404481242243402777513616718248870478618583823661073375708862087774153503258168229242711881770849624331523530438503498434584651023737821408982883103353701426506380788533356098878336162953314857015401188482217861831442973705258479913888794608838621810537510622081252035544888106201692733703038792139035584372902397355804777001071895710902326660397152291529208573475212180342935906596680064808907719587315559568921028439031877370967883646863670742178747690912103721304480135668452767691485771977446686355598016892456854769196723080319109926589079745088325998444207711964714893278553650710459380248998465023489909779248193164506683198708479281596040423562853657409883475448670623814238798837610662188803833607994988598462455359534954368944144343658581914375691733561983770897272675390553624823152668982595384559807658644605322209578168127591191924975087995234379591981430033599291971768255921857750793665574949006425377152326940612227015239372189877356643942764379737818734435244983554248518345038728121126516807064579948776590639563518312946488380631347776038520474143761294956117252827059529061628993552355681369207539665379579589143516329184705909035463440068084961002094374886630873645191246003353796720654886527146880246250023502897420604776261449161693029368544001376061389958132596876888805458438135281208043525430108368487702882317224058599932501596530004356391976477846678953454809572980501448428185317989334883063360814428092880300283569428603036930823120695810034864517038415025231050234429076485691310553259570355682723683010928993588165427458662087472140102307858226892295355969359603572337248416183761898428260583985271919192738584782699773802453629090807073512595042493892505845350832197291326402483922067916712974731472078701471579263047694448523830359863432221314976551341513966629535323310499555810904820551953595080592036244639316378684596629303374036541159321443753649613709089914737401258562723241065045899937553007875242912955360241307607969022432665074962612448592475775601617374121840781151610951702925108905469128788006800931612054233214976648028310025553447480327788799481262673843721314438637340033215945974369425344760787648420405894727657258994269667061101161052276329758653638567648642617987687970419844011162643317534870742874955521360839850822654941805003468014702209794472267521591778992664422509465518129995911822259263511514880298185059885547492202909455781511409867421985070152578179404394369820210125683250534043923981380665771000112384292248080052352857476126522079788754325247131364024904274781061170894681344966746123439447718091884013072904111955571306551604675399900437237067380046889388658813179591711210741878968093008633758105952474956703038110575419344806536137705215091588435614612554339611893197329399624715812138093144583839168861155951358656922638773150155146166746316575679744274017734119997483076991957339850804062940296173094839138144734767737471526249030509468609109151215982995949974892484612314459497337432213657584166691749874181260877152670776663704317959142704153387356996978427538953508520553807452986232759195433270440540702657369674381755836418739985255156005983888810819162533251615202487753637293735987513938080002043057524875721214250511179148561146529077813709520652493035939098188635475827212251563724576669468976716664875559190480832183339704745553695167356832642798007812612812993497620825614901783186882648085653370916056061587869274880168911782843390637569592128776605798064651516181046054379214332983682247271708173441993503389256994508483596902746772029227427744874844366396926654418196504540158287675781992214958311736502838641378757878425569821942770366603578334901214759060066174031876666726556014058455362845847236475087111482979295006286706647125330580984388605703401144726820379004376682803132901277871009412952252228202758649589483969181834364460942558997378804792461029235565281747974920197307077355546215644428010724538299961739270678243785168916601388252921966874411856163491049294436929740554792723095783418390044145856698242412462740534124992247032704988023471002823708218102146520254563606452184780867819018236518012566140484410548175093794739542768877961556553147505163733644728795491610028203717439407587895009234268073170755697043588457436695371885952506751038775367826835508908505120299929755213969744000234726106929804664616709147515073820443017712521673019721550363446315001784143794329179627552538076258999528999229877104782822567618621943611096473245241721287412175686927046985376928435330076788674203064808278509512826536337073864065304387717076947112534200156915066424989043789929369127476016686152168374351274816628511668074772140199383286370251333464251835222657194587287688970894315507720662645914501248239902630867821697074908958362481851727193063679146313793265184228551107312400486550380161624536980766887744922574920735953764883824432186515690134326717993001513313170094093228514235798883273255327268445930938274717051576828893110262451776254780899024095632644280456327296007379165002135204539695405205409854924767452525732460712050922501825592050353287439616881801809403062109573402239814862080906206639310977733911309236973784098598467987175864320250419262182688688139593262533430390046083322962673976259923796258233492366525527516917133306040950551716404905559584095901034896477639511128978915346024453009102169769061398585645725159699559236187284548430320918693173936253155741005647997828876994819359301140684925604283114207314791416424079664528176336330118342848815406076712881013060138243669467079361094244717611043774394896488874640463741321593818014958784939351560092199491172907667294137332425218105332707135982084751516922599735962508365529034526323208990814424840544727963725410582672460128203650242599226818698918971101387008777892800273074077315093095965056990388453742479036397495292757858768362312522952266050443329228774573672429267252621041563731110379287640427494771169412015715348648577567077124780904223929839746604266762589393335257041070430315970498134945302560300631155951832681763805097892589301341891568963352311797058704426395272726789951866791719419642564222793861897735779579865855099302969080140028057190490065433972452857141225690666081268140032176313164927824643393196812584479606152969486483776123032797921173402080134143973330216172416415312233589926149562813078600142991038572430048232745466959882718026275162983950238658628753785079020737037722963156921044766560534780355789755161761812820892475261074867695215273534795415003735488623041531058712140520397903601766683103250493576878989221717345335538263298256061233046324712628147187790795495560548718855215771866360499682840536925659782003013305897952129558227424034465553613025250864642859635915837370170545395160411477051242419411742355022121563015322925091019262427280266192131895501973640445398877069788612773048736803028124340897347073737359813823198248965981045262436090396311929487145509735384345438792336061418179693125512076052391409911720057101040100069617688948149147033945118194409323351602222513730105017666381510369256435175761346739942675440477518175248403440624660501598763623651812081051178817023150295978121787593267328872101805636681836734922373728872485437520923385024956844431042226170012157858249056292363333887675028471605766158587551820339900358400284269512238037632680813041419260399134665408850551690211762221614287231472862555979079826351604260095516528952219762962236852044986378220548486054376053450727400604735688022861410438240566947499009622177944312627192495982689050855563499435082317905686043137226416408684080538166411729544004640054083076633867581429947671509890113794443859357106082156546772371278416315403562753906202772022075462580568157888888794530813687819955066811935983687293614730722850894886874242040685343453216453198856983281260279800554252135811479056741493060322394186941743282156941623449356762995763184296711680072060432968669997403014852739713585547032900972740556189912897644484134119993772806056437658396548879835166922820852493459859337649301747259728714809449699293199760772818900519832035925514867105792571227504897043834289418292086647533106466234600095553514271308764787249698392122938565012167713698803645235676805834702633849050194407776806404316857710198066387445940828456483517915078450133199865048157917549588874138846925993460403688537219243613040798966557114976512173628696597616889011500354976297446042496034042209540765472259173008696233591268207908092842575725623672854261347974991752881036490572428252847232172294651291130045905633710977443149729564343917190995274725867481806393478087920793303694162026787814699152720415075011754463385097593804010048220245923955967567877887846647028244345873065786581764036748376453326465762948938102251138940839221711733862305037162232527093740601991119658438957719831296871061462012650737060342461534061491924555321400589026904058979600064275910049435182341496808743015982751663827226998231514425053072507116075396280648105179101467179701502357192609757569519691058075460572365186212055323795528049628546823472169281934799424461826003223201260719459967216998825158354756674022868361471510204730508458774754353851648550322941752843814641145782994183513816971292497341441838251829899762138040082312426892665700296054274236150170124636277020481715399911991346835858726781740372703535092504058230805957100911023964822270415152207338157830840695285902438053535115532656556958839830814564489788912454755740044204998523808955943747042923613629170821757644478476086953815759727845396716855598000264962231632674137871648522885539715857435750355255977818904288969524126397926161581582706308352975050051832258573192210342064863472053574207758819521129894308646356889227089955222172119450111788317194740951895588928585683929142492392349009083338543413352540698049692289434409607660049407802051758842705530616944234605900945248565039540853759628771844526650186397771264188830688213287350466362439786870668786942349117609346871527283626179861934836348220983940651623774887331989537627285353043830873184157751041540612670931071420014303897149366051699196826307872582445634770214957653419450483624467060205289725567136753227011727033481163834769353494943390524040310158581026485965461773109065342363692286247858498935832246020192436231666241623678161132822789198197099357171668626315770398524087418473942365165355214096327930327292464853502437891183900659611772911199047996277411047935139200778125481519001212355656255542625829842088355428412338606210388581931030345935902124601982138331060622860935270116126424392032686475272058259935601854222141158956873424520861043626772686434332122786383012457303300666140569120471890913789816873880239852782619980961770739087393486020908358474005578170752501740689238178591484111713672382056373035190083944390155036134230777611367931856987973342463349820313325876013080759061115543466332682136512507891609041945963155609022587921508212086258687010286560285183716483517204445800971656830761931144049758074148550488820684049855210098824233975183904286009616460996168067216820317904713477553929584175242217831363978512469396588384778923062352134556198177887158266025152836014359990569954451688678455372052708934139098983845442357315494238418509552074629880906231908747126004870662754482977515264285658205266067135658963100667179537793654085455775091819306827979991966536203140701177264925004827220393416701894466856284986863120290084512690124409281228274384462505911484097616371507376458022151415617979632579322158049132036391255895706789021119855291759660352631657389865277571310018802862439040672996215013873648323224480165613800042794383564436400502220874037055343968441474114111301965621360798168745676192746888991242673187536653609311997889614189244292814576066146738811965847885071702160564358511449501693595735231239190689680277642606358039705200598207538621640067603814439680888296513587235652005395408884277917258094161423706597987522874799832480295382177330124267319479948864042181951652501783357794619630493998211355180528005517134711060120838234371069114986444021870872329631303456222389510157233182874282153555959240026395960982477536270159716956623884394192367418697051643874818558572031950981097907697879335714983465284881671977533172138116278378579284899983484740050469953772443261680117007558902106409554386831168256657806535209924011351257177618885245705361140735201020583283978287178393006581242276692090752144257012406840345863354096673507228016620838191766549459475535282182553568663205954058086145125732206612881054324436677302729911248100578603167722605688400859242736840164141547400553930554944704694725460152219291709387462056512127009041050689120227737666009898429901463324601548498303838130126365962390949718044446007814375724410897046092755052458971131703390103802306000798691763591030323742990894496184907320670008700889804002999531106195991971430809669613242436352567155191102271805189355628938760864755385621921113742946558689152569676367548787824869450872565764452669303137479272424127166143210122220530952849399606953213002323039205943215360786601445273661592422657910800030864002905007561442803924788280043212401153963628919338974821442205285273593031953509510448086796028097912090102715324780690285091694520151483270341652654615016681106496420997358035334215789814644798106350470542714831959459766120133664084973675329877974623239039236777849450010803461173768178346047249341680653799166305620191351803290704540373511836644620112170591378086717389106010882966787726298498893729252040908410921690346252275140967835593896457950689517769859126545013587723426566962563382225995786284345224976996320579516636941793537414282914430965373432243726150319989447833773161441972524217214481548680231150188750267236898659986400208550362026405119747744941441481628112616246211433936794545606115325825413423028531553627452986424738445084781122272502490548007167972022280624241785596793591679793998619816376352395968409583720229502127777421979090634909446116324249975779132385184666779372978948022592627491669345170134195956507280081989771774721074135081498550952838147593979448997568198466387342867718099491979904056330248550966647688930600430702409685244663057440402024705179785839735158017505603317586423422840813614506873723930184570720852810323187987668028764045571527141228754513215149064987482194185462334435675729494730641895250422405419540776404714296718232801994352272117403884144564278802067530740608764455643787179656555677740762442977876223864337398535856629483150811687566712468633742808392647760143046061711773022938430012362897714712808284978545807815437260747787845922337573000425237315378650218365479303248943363419080729335376747547868071562154686925142416983420540918782772185822175971237716998201741519501087513919551423289958878726843089548089884530018618529469244973475057300654394651167850374419560490932275371088715148208536073387874573973677687760236027659327217407482720337361434226952698324434245253528094037479727559354871859583022256484432878675139450433034883955180010619335795046093208865135225603771259123443715475730258375168354897075430743330077873941477033956356760425766294971428693660833185629171248389923644939846277021611698558485389517985734361666066914067401732040171620786682216386960939177930282080331110533796207571012921017326462846031644943760810757564778342051649331220163189883240517043734917573157828800323371464668220697912347475304621654559417488764906081409471210030331566737140933252971438938385822290271175419795748442961980759972472579979024642957516758576956027382790059146302157280491643795473291696310824373544502544663528796925117907942194394215636668592309743667243372443911284787985307191105099709253766541458300786725992865835039669899314382906535281445509687628428982182141464119073309717268682129559744774364132358539518713470145020055393995888110942448559560991884190324603534775586914782711339378300747534064534841201368393226664332321869680342877905711223406890922647285073857874572956432383398665111422597861522590828651984308984775585134242589824190392046000741270181692883030769459181694646672556442795533395174553287469685992916753623497317877294745574008378016998883747869416736044962814478080845218556942117352405812485293881521431140958204427832776156097956629261335803651158726697309004384040266784074585340443932487021754951968199501403560425172902173840462661935920602325579480531030218514380912580273295056453574583143216386101319428162216398628162524573550471828325165379726425439633675075498889514176734715865686743811908457810966964835955835882516180338700052853211599682471747087516568173766511908661802977845608735250947421421917266124095005103266956620351626677131155534635732862773076458547307116130112790137619568976505592501921866936254405369201035880890874976183877941858579534829469082010539219055437491124602524668534558356272927266836859297108085603390404927973413194177101981792052629859053803687106735894052593280421489494550183430499213029691726201702527780180525329397220003187847177578254780730678573659028721441681046932429910695951131798676157952532318005886661720645512365691560994763038797812917446846652500842842600681232186271188354556069431129253613521595094436133254257648137087116300088317141385034676476850168736827758422768543349839284863736598421919533169078474964613837094881882474530487493981863084729812989450518127717518888502722677581293946331933795955563483975226434302985281498138286670083033295696623904685493257069050000242398436041388475822021163800491241694557140198987192513061326646451994288623955991628019953581823855259063799022821647106204041603425073642510743198969253867739654021923821782634346216742734447934105872621878740125737296658083554678985697301745634615766682448980601321291392939163662047221282121308305155568996002440064584609649974750748676387098787997726076159455999360425824356736698527463080372090384491481489955952264352228195677683894088417277893456493403397616435421800372224693991813374213062475515470456678584215754715069343602926549595751681916088759120216855694991577097095945165064746303265258245161727287567453477973736077789414248664243656776966189652223351890951266476145301581840021239227236143899996211554911686652567889499588495881379527718786424313196005294814414408168308590311761658096209093889676474971522967581829669660892538840148487805921230403249275275623000374141257647515876547845083387456364626407835591546364777556097023047210412180612750683389288774137726812823602244038853607476157133143692196372122517620425705494816495077412438106420993671002070907348069309452119197825309938849701528987434536131256572551126965738881959323736792429780340551709677975714092356889291258025941512908040258336588464121871417405267502778042442665403886248347338877115800101950066647946331928403337331034974391213283483552091013478778639075676598553369034162150427793055334184151440790470052979144727989378444501308598417152659514528049353097532716009589937696338537687372739625117491231299086219654793550294018686470541039651475913814000076821906291203357268817620815026720018940730046893217803887899866460432284494801682132034775050984436239819420175581837143724861485153948163639195617087857928596482016987369901506306904148484974357929561721935077423482884763715005682534154559701299557004370785418709530190496528980921364134383803036497581859654222277667995696536481235275614310881215094240013214229051317918323880439813837593851363813580395846219540599713985619407588634627615964376226196369555157884963381423057965738292458638764851331090205198459067445239207039537341694709071041869210886785104367178253119198543675941915839345630503568139887951780596598844379906882880420684460777619154521582825855242281729216054192533049478094736903791458056664294269804906039450783570416889077195719212723512505612438165745715221970289265201005081965527736213766927567839520193869061902934683511244037187229726374517516503848690130845943069588353228001688739185449273713231246158674911727081961405286353924678127676694344513940894449179322469955137452268649077085426455696386891207246041781246322453120352702636286141010856375707001140964841373208382768830182973465139172536608953435798633636249215480790227318845531656029551343726732811805955141658540885973944907605125791092671694859719607311909475444456227239745143820013019975285339289198391884440306723785502295490214322698292024620490828130268622575357939814309785389418311192927137321499768753489732652875494050360848778536560894979739388176051692647676470631366554568631891973330021897639306881233276877295309879276672916020607394054945742557637784466717663658681054614980468093453164755680406237431695918184553760459760090402079842028620662777973065970736122039409180585521542754466281568712798367737467673516880129173057468774637354759311262563032824762039381613491434756721039254570508325233089051937172439086305828302785978002896493119848430568746407477651994381422495543650685549289082636534271122387855223355206404571694390003050791031125081088785584571548860102597045540420820215736148981258891736855497960043716676665450113718044000136953949222684245396234138515397557126716087767892062500656247989425783050059507029219491092147694674919450541197606427755349954262295190304957510388541070738913837587695003845030465601851972948675922708009204132581588042975810525553495165889183812999329535968939906792983926708704241442220886028521095774821733085816320142813902235318202653322096435421764681966620698072138815626277870643578525589753693563127922104482526413003976685974174770103797654151180802967965687617981034392123447805189544250277553161367338987548822079842203828466940413592253699765294156481902322507970507067315576174323802641129504674413635578727785214481346073766209642203769907297500727607636247283570923853134937284853223712780395738602445780302397780839162070936576920633448412908026969187219782948551699374556692357857345444825494515086133724441529730818937583414587234470357430525416536156518010317664968020301659955582065779749340563870963253658692238910515496611757412019798337279523917501466361564367226894632561427389113288742921774397990874309863179073503024367818193755487078847509919440171453710756112836399205204230575174229800384810154632426653488452204445450077403170862234094974876861109133653712346619486558310443245457831253075654910797426241153225106517353888473035384285795779110235591375613763479880306053654744691579258115957027929252142192574967645673294785797685841683306068861350709560406342010548842559097601744581888419745507561220953618641338307279458508423901208378019096297674454001974809092900397200359372400565519592262095229067080223723744604773115697364942228650257706877786996089682580479012504013214388984354343167229302820827837308718597544335146906930028198249367767165247813430973710254940659604242592802086161031404975835115497461571056032125120280796450727500139002442333021781168541793440257747466809551000725206709543311391668426101069486929528395656449651023093502619756832699491038186911724697576146240216719684130509479341230262833796643948891417466547149337778454303658089624011269091308032215515450764545365601165143963822876160557662762566349190016016069396281538580741441507243384449546646160285472259332323093753163693193310088233013306203037973959788562976069951591816498016450961384419973939862868333037869629143934774020603550193994414330480036290603856852178600553729690180826244242852986789215263735205063027176983407700107951139756783245593367614333526773905193356778284536302538547015834959291457152440034848965268539573036218961597083515179953932937432381214755549366412624167747631508956371414408321853845858506006750671388910803375283513288926127798092154618630510169898207201312433506272470507096174726651110544771078547205162941447473256233814952799277780200232485342063620124841265433016245415349324627076201333408563364222308942687118809078525169538372424627194178096291440711044263833936783079800141431160816368257969596044802912085662649346494134888192007620487058043552699702270796766679670067249070869366755907309172339281980204981504286069603062032190948986288967030775874663314697935332512227522157256624897841354047665770593120855686835875303831131742498194095348829904299033714402334573026530189696038635171263997896846062910694949896496611848403894618372700131970289106135997754664213090632446568497339179502811017546557299725085715996350956215341272915744244559990494255575086242454525610239743089107945434458372780989031648243642315029826816119341006303311732945741169232306879489385952200390187328433137175453163394307699215200322545632736707840657431310940009205242623928041809615277314651847509348831039138137878235159495809668795693250640162696660732566717602985876012750514717679620907696267179024165101692397415465162474168233981394283540945443186305841797294392911455633911853197973400324880718263409640208481364043058116093061773340026648169844805851976864256622401442264645742664111990160028834873351758021535323706485190439986031646567210613860134788665511638009010605808346556439281992640450366745379466149786730086219644296014579740498833296775091492091970296001089366987220206489660875284687089318994669151731935367783215118273594475020713840168085477683287876977377661873839943701334392683942885304039232752871879134650530008674894875841197094502712950242587946420826746454076673016992800120652701755840957351939472714374910548199931094049467130610967669386877655341844683712366742890607854268860762756394985272291413233870482069837071314905303740899161335993375633804036438118174253176166921788160933879306010861224628293206761459521654694506944662488627675374083219293883607639422702978781301335917868856980712429274695516588853545759793816076405246265788450403274729784089650151049652414310891799856393564915389225239568704617168417779646727008881308271805732052501637416142394570382501614224299025816028952339335360749404606307249025363317782058886906053852534544763391196293037449446666517520564730156044251731164940342284179078537997774424525958790798847323515864116587103928013473558021326320192340078155582911153308605624463462148267606481787411072341433373536637030079079125424067652813141672970306451795693877626986374667330019696801426514342069012210904784644695556138841995844808369702366234019215855866016582624181369977423878834730324269672849119476805965860589719187450273737136727276061038511803406071351692115236327313103372733766229039351179979701378100164949178901739789210498530796041125371626331637915424797090512088450745273925616191555004584989252579779106044137547525735554050783392560012245932703050370310582868907621473026901453988892690064472702550237005698176481421858293842548799981076172893352302217174838183129744619488726540494117368714609250717511848574632271833605806889057087141013426626058581367740310170464793023240935283286071830122151749581371435784070899581405565042886411426080344326677735692299782670495011746224374885396663276679832559198446616902677111062557175169097494535764602502274161875194426254016534301773191908077765722058821703588571821561619196768183937830211420680170068505229123389364606664961674092619244916896523922613186452139982632333130353292353146220942265610000844046577732013737554975896557687956146114947764054803164498216924309214624064515569306347520968296950954341069528279489941324563966975234498413785387942954678232738363933748534932402726868556252988338042912630258591392660206739016266798396085912202369335503291585127934566023855816671749051182203759836273961476840373256644771001634934922515677324046565270969287420042469928189533334851388088948113888555860512248694620077038577657110427794279672362505941090145472925230974422814534307720504809101381969019952122223464163732335473255760141008154217536294341287491809357166226382856885904234135913494568249448409642065510684480925355471225478485190866995964019020276201187866996038433748496306926202741705301536089319091635658052364022789885106622532149931165725671304217759872679348202873932716292905398607318815142312526066583649541415723696010983326245520550004642617331046096113985150825863298832550333748770059727099759250619252547171572593590690141893897939514019937138327005699348001848171284333007072301926203576298936613371443806850859593246289146131363120095360311450353617371620533704925137344218947375562237507229593537241607668243807328031506490365458339764300918537514302016711291233852545986765302969176943437950583294280981894193019328391375288667387534282173062467675942590056595880992018468688916217347765336147025815272207616814608259332542830430224389080673489265160656750456285515761705925134054843439767296518860558049517918321012743823196865893888910664214188254164987368480757981345370750513937781400147539363131037444559785217172065167914358389101216892419855075297808943903233093203014621182049724287462486204477646728869874325465519018986734953481804937526048407057017279890058819015671315349011774398330661810049801636149589958238916255359541238487106787213748202997768178938164666031598595941133482572066950432354237003350155482227399816299450804019404796184638959870154378670749506423842328385047503242978879073369427607841556863404191055987148802910661395502390846593042696848767435985792114522795368332374175121382644455766578866588336515721204206009853791970576083524472168873436858253507339412227596803282696239222833428188013436264766439247101768307613360752753865865498831168346372614399141015371835882171387047548700953440890269259150389794302791344070768105738557824641722409133033533935891544605354281538424034209831332024164382334048724935501357783425556150714030590589025161893955650360977818911806272831526373076343988060143570160107230276185896750321544629401460888864658624270341423674893630855445206521590234617471148021471263276453095144744067321941921180642276516929892378301583770785994808308345063634793235878762656445902370990288046126979582078235590183885064152964532910533512759604592810701484204908135805136150235704609277858172046901686684968977443056981805550187751089766513884839183716569275990631495582913529438997363565951337378544909877821925447018168477394096961979936858101801771949298103581704303938725399289827640072663404905293736860260614175628848001403287517288068383636404846284676526360536945699343628029223310972195203449504044729144629082946308541538745090792517342647908750685335837097568077688791249270220422217910876889049954263999443234426748433169332134143883827717089072500914400554440020089447702720251399539037229066070820915397502306358470922163802129508862682907173585792143249895022478121609576885383572437208160657915836973853719811666676355262027815902453480457647113279701659375411599417775004365460014316268668517408087630050096025054060073761340618502437376655506961050361300964842689699475701829854951074482160789829854015253375334406346807019348773518154587908883297286988010072114611391686249699003694651139056523134761709848828133842955070540775717447332246991470582506314147512197896845770058487671653829968595206366660055442549611779936985179382468819331729353302744758910041506983407683029861229270027677613755041813440289683957122335095072876085224792507020479899045695182923912831106437724631846022421658990081614372468973273503295826572472362064549111002634357811867043672731460361308551198721173677327882741748467386629115973223933673105135457969814785093992745508609598737587293112824280593635382029070793891540433041599671276722240279461190388740281550281541715996550603840348209166570694563441400578435623755637622211957290090131022506346406381235433222873328383572458319826508214105554817582653357782375131509488034749832786886798953534833567880244955084057548431330458351136502266667627272272876712469409202243607014680067065256506772131188356384397644752496364915886604387142625409065168193747763721885865383623505981884423415671817234439206941011990860079223731902542302465522624682353708174098683712707525929977961124215468086066248744239795158072597236865920770209284079784551253943814820307226284475794263210532946064204684661815331828261684400306586217296670000132392172039954895043739656377709325603273604312965651078114485091519734380912991275315234303603658745612221293099242829173370430683649362177442941802316533355316061880073087767136107858442670563746028354206368743105724532570463747644352069879156625614867322354147820568525058275720174169946516637451431395078747938999002068086938096389907903276804794141069937123306183661540953665883792387993239909675210633245279350769493051023303056451712279909520216607910606282806649442196539434147270958628653620190411840117891690463828864108917987057465210854091622797342068702132047953258443881440686840276059483970897214157320944081303274250651349152111369455862564096132622155808103380811096320167710456503306203189795142574060335987136966276271257573310346977435426354749719624571108181876495545628190558997452517293692340669539005485105404386960848109031120922647799964993387859373538439592422035333790509637401821141420119467696168377803419023328025681798715951526444616560419255097309875595094451394419576768219425964928906301110595731729752341392423943490325770910742575133657441063591508006122122438584628008378427321954961951237335545176025585752330579298991881435556240356354968865676045632435202153376089220616516425008038623597613774325909829101113026286272923189142718751927617923153632538615255900637363582893964824668872972553543720393727711586021688016365186635286273699062624332101348436372144672770005397347064443569932488300620276711801136547269950276024333380621437200559221061108944613357034789129618065952844435046983073649782221919684270795261796196967234715448554512951870594812684529544820543823009232288929552738627469146889838107036327263710950289389889684279729776918316756674672562771866230924975071593989906392778845460445778791065138866476619480386873061218622064114773029070231694922349350505162787721652321463743319327806277767679025850792396733422464281179375030823359285151166898070722371273923422615588840979081097510326914724154826645015399720472049040899076440424985474535716040781201474212787887599189624089079448162576026968822091551483255179113144456563263466307669070358754884569976967911370245312491822249238103497532203506486163538368671413423760503320409048820879776810694765284905652647342744784346603497710473882775795687454984392844801363048563611687528339933033899197629295047134007886693492152140551898108126119125329945308029702894803368418694471735299386359872325284991999732098326130214091785901241861727522561861170297790588045720257576798151229515490058082365927228121184786183520994825265349671929612688653159364288769817678764799844009061833820424102219309705688287241736758851267009461554187517109356941038468126648170513040695818706531032602533945198350043320490899961122192449812739462313262847382437874422099414569024688152081076633300092692350860477678769362539234160630054654181832489867196417506458540165306245816840494092102123464902307647843467185126337772683437112979083012717633682777625898904178158183944099766561004900354073138209658453076666404147101993141391920868384321908697095169230808726083522609384613600607971140750580867732601182995385511160068321596423765047795913053619413451651332332888881863829133093948946712095999539157834935815266788822105278787800875085943887257647734988182858685673906044525707247310430411079752698901849492765320085424008552695392246893301162655922088088357759414407623348674738481138103794024917552078516449849067666446790902129369720124411498613353859010305267586701672410176215240250300009294694127199237684054783860760915145024906538137849315777588497060833798037574000568185573192933981698923407221962620176274341982946807852149453749508968892807097751988882698523349124332010234249529817753539868104662693275171770691516432304950603410264173758517882033191258584007500986095646445881056916096865331473430745841562757133286319445637418905233635230744893655456650640430557388173611076316326603830926843900466074169264600908590014197845173049681477846689738185693859265615634937056223226921567888631194063232154723825369200387475613002648864608416582360847158914703569906380970646591272805779765217258294082314125066325954363034241515622238750023002710143408410010356441622342102991267176695253300783832991088381200987744646368147750245763023941186286544927533767607010830119610812688446373178596515966099595006861811927891362998891460180232249224549883274246994481336124027988471867478667089958068215338610783319269322540822461793826193520779415081604729544134907044336593552368147784046115883934457229479873738512018117845939014044003822852642531067473391455853180356479214798635195796603592650964778223970226841949064242134852541872708656744140643423444461577768409438908661224173527090472358862753452974037588243848711456975807458780761185362546306796365256875920418950869984024324734590528849733263623211688062509659561863728221991058376206829369092542069551196786046802071862428814449809172524240491841253820391267946851439255950037403244661021642682768909794621689975237230417532277726236850879414758433769135844694615001239394738512006150755032663833274476407335264028833847336060993037649331159282476794150209329787320507681385321096325892418191892500263214734952038844799460369653128317253606463252336238069041914081807786377689252275410693760210215643133431521852179248295794054457747302200883522798962699064832345443711079852535148202777491911887967565531653773906319649106807526174697986874774786150546821411479057521797613563511656859237586172677167599547723703862940015713607065700496914437944308667471137851533346768153912539708195598885027790394321479942832079436160608950508242393359248221633089636105679965527079354512605075310358095242053333647829694558121462194882052366044585457500736986018478194754662147140768084189874407104023698085776506965876798502385768975975944836517185342251343253958001495504045372506512715769828699733507621771891846389918129965400083808614312524703822132061475945179782329402506638657554671333949113958199474759044274157770403698068398612067310570671841608932726039834148782370476784262295895334713078448415770097451874644961811327700909864971562861899258588225915627364900826674510199781077433660715919939832568054976666757408140185519252436412142664066192268713687576479246635872888683103550127849079278525923584031990030357372012975537923532623348550714026074809073947663210035262323013137922657863706584100844117380931946071035976896752780255051499417701552907354457275858352217823220702624775232569540654729670773015054721876215976124885392775881704761808136003966868555630176703190238481990115912940946285953966901440026405974258658313063205312275430767593471786738913194043460041186980613474162252045925843554353648095712295226951662309756987722676287728290869944990763018711891611511806417064535471694946608506500440669010850912869779974757034023778963987920903397756977468067870710869497706350607900254871339127766127201867366059698424521393791677989137958993431020561113652271387146962331744925535134828323001177574980642008044523795197336840533249541794376244013100707268849707263305965967740313918079747030326037289025909597717293975888554374138492200011822227280716073988521787722688591647418961998394556333833608637010646499004558198740905737012326723828936308756180631884147711555787941186628960027032266214457556444090237110519828618254002214539780373854024155132095319611730770730569585817408772178930666634640185251078318113616187049348846228401973468025760228823832544153608359599431018093892804087526885506327956646395925730842555382419190537692729526124556440095617255691092659522635441625218237980136076578878327688476089771717873445505209237206472614710223248242315933952235151714712786334449198962450906780080703612656797086551169435058184752835993607281093408707083912436596335462028268546596976828686823984845201125594144248175873567188846045879761262131781056537682126492090819073673237518911830734125274942456650007329783753335369430799416262619288777752474438005299203343644343293034737006901940628442201284185207153573200445124106875428501048874391645757452641333974793170522849889655387089643879727748575862250201900208893657659598697395582126839924863183254271380539746791869561111519574477343179335492387928373929607602348976354693190433098425681365288245669654488381804411492783254101025685689522403938977955392511889317801780030231282774665813586656050124427761816013142015750461629013225861671327244403777208815037559136908973040387441710522770512239357308273452288524409816664127070754828257121870350643144272798042101484729548575575720901511626732222931548448005642756851638543067455047864820252086114512967666345497669361538370434588823625943854871194448918055084451904100342338041868388240297522032162972671451026533501682578610411520981691146691279956697575483516520593909904655684939851583472624675043697065477122411818592251182513876347747014783307136312282464388103758211114850788432191088188927890351670857921294572385705764363397547944579476319445968601867195591013601822948551551958115189564589035815163431880625509851788764075947113697475524194221251355551042130547601452506409176330186842961990273663337421804691594863004717714267504115060129665675210180878173947531431541004693837399977483491842337073130504442801405492335892588069458486424360755972680244609071508579957646980474832935079717535158047712063696150826673097628074247014686110308645065780739080800913934107205309593633330019766593271486633409876334336069196075449832606647912089161195169187988758831197810835335147016536567639686400151812064690399165926664489774259116227788972464993309296571369125991128103796497882558593894490489265293866771329413106539041052722232492779870544516334806470121254042790799961435560444430011839929128784255366031074006629594034121548112067931159640558642566047342255233016776486321920189289800918805395397759213163834213158765335263716013589133408229125163416681059172993361496704302100679510497924921067157930979100312629714308876375377960414016896860862101655449040459099207418347233146278443786913630989151660224071509746112220706275847005803293958414613427968637248976071495138740218338709284240987598768942781914510970118295883652876621518479471556955948243721994186501339833753013057967744926510277933881640263240920740549267283224182804456187819020890777393413023504201992627942968021011991329492320815770212796235306996619511283876390861441604615412305714749566431978511353626926671586412673789092018769634954790177883233560441032566405358004869805795316907226022661511206525198504618531381137213750619165557987758382904829768950639787271819451975855101305375874788519337366665875016608743682365364118205185156319378642243145889526568893471254420545268231000789976606173326409002177947707075151861736369888713813729811058987903793288233038730496486889298497624755576721398376987610405051443363386818479571632980212226508571129473548055536946371098481038837519463536509879728806183941890092123222243770813077649539465698669285512158947728818779126193348776864855996977818860943631173785952547385011683348654962328348057228739011206815439891503985438986848070310301331391918391413269608826045497484266596255486786636499578346612969421600445667900257521848899361058699711089194833436651103841688795821019982884654436616509390549552726870841702701428986425833875198883982107955826034165890681213615229659923188535474377114881296133280832941967422371526658587509449221364239290407545778430641308210983213960123637905491809595248469978660501860958920679696411958940145249391883368647137137395590272906429157607405813031103363031118813588717336381156545732019633303957820582332221809612761034904851163274995542036868897285729868043937232478577865924366617593190354480413307038233276877345714703558435904057919894634935365797864011242997531677932768268202421160673978534392826618757840739204303773814503953882350223127046202612331679526139041559410255085125455926392556514792160126847877492073908536146915092393558323438941838695688450287823189538467270303652820748743258988540759090182633876597657538697824796979946503414182133200632826152154054272869393368664755928381528077840243684337370200541269933857721324890376838126128983453554126859806838097715735801231464401827395329210680035241321033563510969862214540893667113449605508485752370413909520320879692972279866902286357479546999646280215301108201763742360151554726798438266600900824993352632183964342359010304197863446309042356675939391216037183651015416810455152952309621965050102514537369457030012825011614493251422106577010425750126423861408582763586277934153182607754710452165267124950601038762919413343692677687548537352760181831937713644408724558424481371954544596310717886715545993030442805376386593738087213955657424091989359169545180848440784778443040583297070802577871488737463847335765726072939460870197885133868094014865488992050964352086089481189445285147435679473765605106767577356189535573824521903407608380858908547712899531979649505603181479441286687189186479301355850346077253228236690627173097807486516421136722831684528903522817542073693643593348839944817555721545111524793210953668748835090926554470416148897734902116219674225293792932623876897109671039332580750902426316051831802736704163046627878976280275234247998594091612865048043644662145897623531313442445674218408359092133552154681803486042347299669595119561088044903028086055088647863818140502283780329948742611639419014774597884506928012536284491639815013588915180884623470345641563653188536234944458818901096895216368649240551752573120576870460805779795987710115660779179271382931423714839519500084037335016812495575841889730093087362939223574395019020303345408805584524252956971638126049389155428164703605922452201630398026689691159780428379247032972810703360532675417253244684073320220177248558703004484360184268863743608771558175594181895326081501578190227138338858349273460858008568896351290656993453042740108118095014329219626726428126188361199992133248017900706464922896215803374652298817197983957830837148412281598227146590572964626567838967283333725964670083748857143861230396248523126388039848012900066477907378449519615387723736743995671793011202037668298510738592648554843524206756545430722345638572637417835677002623136642546156421186302492125820838462271011650198903658247230426069328232305893257868120007785306001904704224932474002911508767221381503353523759907461408329308584092292800872107795876746825661512410614359785511131169415933947854787854594490876780511525702302696712375992471480279778465643647078946950229491477480682285773271810683226391458288085170411764404421472955265867437726933072991563743718818006625607387582129896579086885642853404178681159912776198680786106960317217312782725639223474771149245432645567630260242436236959741570700783087992581978720731601635673543556164077752061985755701977754832647729765619255103528586156989963207236313997460083704820858478364013043733298742979687449608032783419015044344758069581953378829928079110157589892685448660506671041642658355024918480594833258203088360876694083653838177539069003639023323985183951723282191967497575419921043893373282942018998301252275862901891889154011563698134182713245080114931644406845947288760356090252840506058758709412627030994967022770483234007558157825875882611451857199355604532156033136770686237483018403611097206695984383991677373800770580933602359399900149895170053084231639718396523039611231502075267857456424799762231284822223537896693335856331673887330076673370148463610221551952751935890482706077556959681135670213821402022037333865919504354151584235732567899844255764119438847018215379884014905865385435715817508078369291531528621818730689693494142971362410752613627845116285194935515890514107404242067761686556684140409508462801856662347859393245040588544146428391041183365623853171333355060126413645998135119020001118072391898451595170682791524680642836562402037511357411251157187179405700041120020909154448251118717897499912426619666517196858755122954891740508455878198619201716947226893818983463670975080844795431540100800330094837518476940438270680334794406627468267694525242704349017803624594746620211702014732130510960999631932796921097404194166192244590957039579457254752694464780397954790166608286313544864246557916322488523400669277139417742122967078420285015669235007295145016574556495921125646778469814599022193038414968034339718868309086485070211560123618186833148559886431163522477102154215036207571726966741558694483764756574955119179107579546467446045145253479206034638883163561579224287946592570320935296330222693702348969703127898478333977128409217644960971253066642951590421764754785039208105202904526586580399850730170468963901438717993484311937115664527379001329372095826040501992024719695072021347302372583913734200832041970560376925584796913877898985209006812098872954655696099857083416669618810063762831334625271543612636260473201054255084429690625885815501726748569134822137087566122413869391488991709627005612694474754892827588197802010878760695858457486774667441305197356972463154062540367184780604520863174949501330186881558255569701425427592432213864939494339171932742443629354969561157961033284154230704579713540587125604542164785200684063109769592607915249904148070631313035305702245322863215360568063785398712098795742235075945327676517578005162421587166119515465190324792512490492732119533067428545861228271338370077419373298441256492957803286546865842268645092544167673417870852565881006937350944650950494202410879570611358100963133370993118984899453343290625060417102734917558830044759745982292325470433704310931051165472944583865660410317334651894125258953732955474974228647233773450901457197310163699599502569701833693976510835412072337456775748159993516307256375152056877685889459939296782612754625111286096846135445144951855642201556750302199217634994710894303716069749931077584924955727912144911591075369752351097137303055207855580098930880219138579264878684800632046454670929381636267320286769236405658902724057576211066165151488385680060454773244463455038547641400417692034150132773092894695750923448007727305605696138675000570243275992973552706079731778323353408478486747264338887864482364599004737637005595004558962184105164494269804945964587502692427804037151388532060883023565391104404655845151533505758092706833934438494616088586513778256078339502568974747752776226588855913694183548681850135785859463227962418623362110005382911272915071422352453824127679012006028988669267661463977437779530791082053576548844176865925426866839765680352565131180620542343375810778125514331755792451190189924443697082829796436160247369483604914392473220101466080245031443835562929603810939810555237836900383707754342332214757549249895919110994977540813859192144956646527891885729832782892100577432291012080815231679919602387416139514217070704761929529432252240038086236685006123668791088334759198474326569118555828551501355780520740054196526330211276776940973892225606390721453366357081640058618191076560060192155862908106348906072838204795476350377221361945716073523225886611686706973644699195717675046024661144595517460478055676947739946014644816201512507798611458601493252256116693919769322805042833340261597253920094780625107662970572134942743360273426540923686186693819570771288549393257462423870379692484395816747340091467705053003741255165801461015416957016942796909844931775543174834141027782410982289089755953998640798393201745030472147081628398368917141041576585643136600894280303389717133383503307111237805087307291506851231554632193277222855299775050604968925134882367449625724970184596974839576802875114800278026104439443067532986145517709895246888604133316080305588339377481562487331680221986147058814278120682068616030911051709271272336983476484014630866038720692419336865499204594128227112868510422319554060043063315307725874277530589128447663420071300005798252127041532696533527327547559132658113382896371777882993760752225463287245776950963586437429163480932987770842267776634377013023820190960944052312497199725597328657427325934975623873247962082226938619512733452594645513842280489752084472819722692101999516150455263542462528779531515735208664384670011217164515050989876422953125182022295181573140930640031533273814396625832561124295154376915536196750790159373566060881466943103759307759898705270024348246158534557391839330706237923891431605964210399980206968695270207068852619535559215547793730732731463930062812941517005952871018141491227263805998513856884730641396935541491576400935410051426008782921111245950708140237972979814604110819347014409379943138042566852342487968452670432308211411793204109363395108348108415508002917051020492392934955723267587283791616243990773896468008032081258103091697569282018157276693259532751685767915933623463621263881557322793471904559698952270087932152399760106165777964206146549403984653077855288504512570042453124652815974862031639178510087832818030769436006936994015484151554748149210480227975426872622795578381266200841162970262929452129121621083900205249177482228874181774941884885741970796265569728130687383903113781820029483274946456237735609809393421953115038575366641560010007725504451818800422355096077921212916604302633716123396910908013502433001657280531509909088618397910773357698246680503149585476249808482310190000066956801159771667755509679282752299797722401770695959306468709269252130130035017494043080121462475138235504774248981338036026699412242206105623030107113835283645189951085973547161138939299711020430867944340761217260361897692119172717960735082085478309669420084590736138260599307880107451635176521542770690722494650659054461328443722651256431834096538184094591408164192651051730731430619040838637813864042831713931021140910336588718172331552395994978945285625204537923749841095765126308598699837974725521994808386643085710878207915864385296680949005564127927446088378497216605727430265428155810538063144218775371872115771124414085843796546539962726626558351769129737289566707245756438251892376884219357176306045778187211677479549890926136412562913699902758713914825667929446338287460736303801521788447531197844027189668029085423412179333826700992226517200337746169092283699863304221116572469874826125510452160498643466660278174076071861023412858595365016138194187796592749171334946762014387161952252093079254042686882488188238568838758811287954816403185192828769427296575078770940869515155234213709261655225490858117587087403995440353244508650833443630218714813748384645261751180916645737689330777070745060711721503990885828998244053978920621769059105145249874641608401829763600324595012194944965419828316587996727567577841144782338761053758978845243069436133389035802539491494744813883027687555072114193176527612193416338898540459412929020766787511401868977152666572081246050163592578418769025735783083012093099390605818951670953161924001540024056868595164467200091261575392457078934965858103749169056107346457080146906426314826615486317323843016049310939546248169297874303909370134767725073032283956230565328340473001722595459264977787372561914754598153120924990921371615999444663565488596257823484938115470914354352454095094706572262068287719356948304629658626113466070304794274670189384125564939336924470943537966044394736961339570749925153429335855173867077582626722358368932023029217667039456252194075317720665479570719705785458699002843401521375859606565418566897523793940098072953191452416896994945234409761821525098200004703673676377407902349630186884674384720769636575576502500415197584603155554318102358843443828933670645499277666808337123988201877451561704132741893629627162529045971672969617141362881307591252314870916259045710544864360780533642738110289724268631718960145203447780740769350934973980952805597909247405358044476071411669748946579985778304278225963779200844058449678348899423388230779944194000300658151533366886034310153359409519305093278463901944837469296087088263857358808566377659024082430730664765180117951588293957532747813889772401388131493554399836888981056932804041064908225226918826174301300779114017588855593829116648599837293724026246351745150969674920091077574176324194943522282185186502516050358294161959915929154379756325903913436620651581739454069975599039683779938890003646391001540206980144204117737249100962051777929424394741225587937765379496231888596197449348179805951998159467114077267380002685072084846286917826828120221171364308876712437770064058097895056789685502817384267953495188631983485102669651697568836471108740238789898728573304538116848442772022548787796377585974100728495672081532423033493623526786545718754868965784889629093366153985366511689682377118195847044750139123307868196096591477225576500648382158504639945123052260399324843088367763539905049813408499868114635585213587075121683924453916601683000476942463991120666229202801375788357955455985465440236838164402988696080740904149547419292587564259523275476053241458244686849494115555545541169119589886334631277778023201302941217568474124252495417055251417065886640668772363558070964203610452652393189030043445697331084824901697959944664707138627922118904258689545007830971754014125614101965721563469583691409223494430452110603902266845997165519480632706653024912385979301621240546608904668198429575710577517916947088395779344155528511851256027091035919275341895180516426068100280007863534631849405032978618880596228241478621990377980163591741598554695099220594490599960984026029627680729582156843726774270395632643336508301294394913824126551933746417758475977814327560573442134955669046750073018469284462190987765531436982129612176205892223533011256775488244904749989655853906158094841589688386028076141217269939019188756846114486782347399301481915425021099702407376282650587426050941736485358004186642016108304557359597411211498990870874988718653625601345579932869671446331257630399141848900611404756923512599347517470799735373336546114924718318994336950996543709824515056808502789239642347725360776407397848134469438472645704496264758623428746318254937572694669600669967461648091671225803189857425008938803624982386318868064662599352195309039492797506007626658565908699719447744151698970064424345670624808915228251089450442027363997245189205236582994178009818194356089234552561553875802057897282450155142302005399888724843341119832524194297655692734056478418473132180967586863983285626688927413340814990789787408275316569641606284301224251404940705696594568565605248749026463392069285953957305558329541677750071397727463697485804232406725009691448208839159767212385183402730574380132903333964367768383912889666016439275908081901205147700136208608089950478405860757757685973708654127069567252529471080530523692381320178160552909134404039388890128741288715797630382463059318636019597264515927046203886519869512163778223932012010798771101508596643129032455715450873240084659020518563651493528832136072610403969626269011214247664123568104690469975280005718096474632667213951850465199995915134462631008820117839585502036702060588710192940234904237654753751636107670439172295362635662530804927299930413143373594602862098166809152025005877753427928257753831430997886997087876350421923756432042659981376505612077293568238646733768185106941189319282429842428469693643793692581497595595094642581920352252992406276339158890750993162791363342717225336714592648466417984751385247677364734253705470985413370027834728589846087668249710455535743496845971323331761857897677410817318628442259259026368951399447812565299183727814082205582223395076473508027817040956729952582984525678169816764471761569145837729527723519501606524120304890085298094490905794877580478544396329293577729995319519745270788233939243314679485166155144374573603684668947167567324104045191543843404529246308947810829108969070570040907457521585309082036940063558122207605354185607260324940073525067481307605408769825658301701966409207501663406886178238859553152043813541984575570225241124751860313816133428062651184113444458843708759597679077262096872058777315184210586913847392589113441492610092690010070713758962121586294901571363791285249907922032085941191557138985817468338948438258047075156198907515265894862076813963941361662213531691325640725487981146545970650520418863196277855488929738491376415688507115999743999600888208153553676811932103732063193374762262275663057560674766378315578001147372434563740989502262585580665361251673560970760908213108380905187356640632056245271318921964818052291247298125684943923790344612422048054403627919791661159016047986346479731285081419161816309627622751007598437215349232447820049392100102370094651909106656540420175806025885235651360928989232974147866181703041373227197666395197717225564606092563878558526610204682724207942658217069708442896512024316923452564182168793749978413163532139518909245513901350349189073541946306798901126194870693055717738382527861800304962414822948353257784884487805442562294934569048005588964628298817182053971584572555643338676463936263897266313639575496229833485063438897173585672727336329886511581350929682913421482287227720556451852151435964067595866950629369408684480693452740397159912689210033648612385852006216061406581866595258544217506317681071689944962949827659457533357369839721270965583891913166295369325145903069708587681424909267911699785938052971441077224332806431443861966460445559155436660743794322824625972874694719567664312584319357358290528742516262025492436013067440435293736818647378813000295363563254855801019842094687863550543048957682245309367912217846856646829333378857740281909170552504973822873473250386730914383469408735988819433009025986584728404574230006991045192758333114328547235300054667771456936502033453255000574472407171969464501503149188179474044839180930552890285367342001683578956015907261862007550815305470058104215667209328656790768936122154593444487621117015947049571563950314256739729565176551774170699518121268739462455965179534178978048201798117016624915158263654512323765473586952251737173178989044758057076808482540212699646636174637400381764302141363239393949416524501347097203635626381621571411841988994093702485714723311318930990936837232169325378103183027208102705282369543326865075655121206343241361763176413426998968141071416265819370124566700931225001764862683509308472693156311173203758030472179935578362463618304237822331327938134589660259863276762463463781671227333737168709629503238426793533896006189289977660439463652837631848806889193319363716693347005900583820267940089391509437763404827718317682193404314767002255240215404807360284198826166163969907363873611789099413875638088960063102387228127682719688597117478009275954547879608009702934033607727568422375268744193501740567047579715368057619173464463927555935534449149758485082853367023718894459681455541766400689636611106244334570472284515805549644025487178030042490879099837915876241391625904972848094329789253221890245947576900624999693785814885177509110168282614093007198503355008643317705274707850042365623058034939981995041430318195929310161507094833043464515570645036085729330355197314608059359677979949620775828626759556329855229875971364230304679298267695567499909514726668744851807656338640624406023095343055644993109982635939120746501022950991702553596382520532911928707744174588335730229878688533038750300700541545142153033981045893538816477212148211386640540014141138756277234830956852612022257572002980198052155683998605439675967577905788866043388094846591190669965927480242637294801676246842466357415710866910597730467924931370624573675435388882489775844525968768293644413808803442649654456828807517910603116049595032024472531012524214810309054193680695563877070936823948132947079195907148543992321074437888291737897175940981376930700623060497662934686459792090990617826700587626001877792190107850253390952267264738719286710958916161345365704106294553274853664244287750203681890667427631504074752679315119582023369380400667053335211561642814091653785334887635368379216472140046150295384870947276397711551713278007807575541835787862324221660934271077533748902750544013417668585427955004306026195784786589117070888238272182466598231266210889661155201171516442379358415489983022252827057792101346788317935210004868420739972361473667722567891538075388254128186538226668093306815976914723021647175872746063005349242145812797450322201262969528278930739261984535886182982546593508964750914085609775659565584337050730700575777236036623595065541451270657189692047264461683910857350869899773555208143726015361666694988654347237673302998101561916248814314128066162780499023532231866397748291415876689539535210193379537561960807757375755359769136717361266533367841356576963635770003194525846416191398987405697721017816916917027349194666418974432539459181945473922547899678758548956111616444169363696839736000779248695526420495450342790096387784432188028576882563572310491643853096120413779788906700223982177984519861026325186608746160772081990225493789663032102263799778252899620864775591216315581038153198795012333610838460655764186206002719570490279510260590258982935229460778814888464834410090202765854254642520996533515659004392423447111031904880224133993552390150258876789591657330672161532928202150063581440086173872664049961279282915587202521577733553839033364677360482305741504033154895860992220033085433836134242512562731099791707767290863267608845735476364555535931309427418533542922535246250705570422880786495628832549376505936175259666689902719491190801668000064884748077720973939755335582310790276620908673241994828146124072221017976364677554403490470927507276382177866173334417773560691716236654289697427459153628363750041406434139934553205145421891043171401787244126627741581795400767503212081397029117354711240202503537957392260293743596574411821779505424186124047879381687656833943032259387116021386866236768035876088126696395420922638526759361169244470956103260502186739425253564372720999714003804853551079380432210463410019309309625308179095879376946609504869133720509588155421572820820785845567232185297006017860166504896164592727060231288913584385270095218414750034074561588884788253263727264593777852226864701502411516189733479653169674605952940038665778898520394001694047437013122838632079217877446330832149868076423743762744645581400472711752967582820988305448239162057010634965251471484815793986470903381696641018833552719888148552926679419163277491570652476782835644927019403357037699414748406860910954664665947893929107536610005322731360086989639449630075306611156651356950433168001683763195834439132110672456726799335779627255138711994723845952730946090405434137030759423948178617928686147325628241393729218746290107543761578692845761529295026388584160660127430387177589746168899434602723242351913098183565413737177854363340010476811757408470945522212245008667308940576159871304553524221832691171602339202023176510598702806955695888705539098966916196249000663601193938763141725451132990374211457269770592263139418144964925451339025892818732958881061801933630780736073390374790058352721722140103761502457868985696552677894529198422878021685902258873115546811534914099651021402323304066790833161208061830880797853885354315082123896475880726771143713870663373055731174910795040493874438525858383305146005118476215050704437680411807310221603596000965530394637334577952156066477021405136240283493662695945813294027409005884646786594882209578089623445597450199375195327727876320896266941141771829987486670126157796909833215715453522611824828518560495857363889581609060674505585335981816551043624553943995030493811070082003234744487956255445938474976129904995854669565565990158092676858333001991436431534154525033007916769361270392955074432685492517968786278556345884959109190407756512334259675552090892784281161339433567731158655792430084101432674725151603955377080983112322288464438035753801317686116192030622781169895270124140813551956255945921479078384562385735228227185224477477538712699486340726395436079789172522491384697124444549506908925775291325422646967959493998805712269484217493576610622283019398620341330694362333757929451825823966288960915288086250643094676139802480933759106432110294190025323061575678012556768187804361826749392852292618337535436650957305122051708971584594716269634489847276928909006497250537840788928097109189018831354834161486841236730125292927483297619240000650759748163228392153575047110463332214256194715411808191738598065563209016356966493330868894124883958549691920713375984575959853506827868207691924965812172114821402402082244662178533763654141035049103163066395333260858596884341632397498106400251657245978962560677822295652714584004768507743235934261331363489191981266663659455205177570115528770908903155459472200809704233127421359627379178908863395539045906926741730510441731029655237395730492385433731249566218510530526900400674775089712171547277990439001434063807032271147508507867180218405629889254795626196909959930772936656773004604687485840385953016829786168594495127864457409166299634886762548078301503534509444324201758310410247842613738616901157511353318819833400031929056790130300566103947477722328388272095707100203975777349890353652574894092052887967363794992868890745096172126813610458085664959253184302978571546509955601413201368322448888513193258996691820620475118311652385730003568949752692051329715854160938958713418020539574723141639139240106597221062787550592532960879180623730395595352702414169637796050887441837119486028188332248559462921600676844231852943163926217335337219408372192260116919040661791735097361650397985902865225313659236402899124148663399712729233804144965881117112685698448946561002335538844941915081637471991153235924000018671274975043033642499915620104241485566105303129096496923400947428465144254555905032325135638819706793769277465867637701835207026301468530946222663658392812719512294981640756240134657032361014038672844172580781433760588472476996834327279930398108890680544897067750586046354925254304423116395234295097560408815243884158341988727187972071622874373165040825809715245964162796467550102655011543922916475700001607875271510917715098155803897139373715682617707700553620360401522030453288093605379885912458133024448079457486265395859943638473664292444561838236664776808581588077179012361108975240137385645373948389655673565064697764241751912167214582829998699118572137326487351500986026123788065283488544283040178722105615962291143815975646561295623798234139360940958383549749784532391353669464322426426528115225992759289064263846158263719440655981452833173731199866504747018994500420169359923889576973218400327485483416270775026348054530508050234815323349835535067195687879639794867756941158760900505146493623487163835857666178486377447961289524418690049542876109230421999615271609012803779701625471940193262734181009124222351757832531014807603989167450025837537088731976472318249162872170401699700005950073528900702355645496502576778936791801276626596244132716291091624396001903066315450844863677312530768857950815880133021748967483209826170518355736646259391913576191696410897834916705569671885135760113263110658570804585757062431320073255541058685338955943954948823133842818415296578235537365648285267036798411842136406803850892443916083536536746183221888846820396668594838538208233367779365978565674521250258412681039341970279585218397567373242900708866233455942386139854058651171113232173673813868836083237739652158541079231208742700737301504688597977361000636695266476860173122671412867262521818331947307079177793511789243720147982694932020638478712679479135299940570095054010274742345033434142587375844236931071027160386634899292569027316637453744854064378674622388359235377894164161699860739507535530557177816943139911400318330480419677937224073197659492793366411647820581086772128845424845620574905218238803426146575113570038293229347088778589523038893125050975712711452896088769200613516244027089985526006238627979596913206989354197909501949870548536248625623648630916225380239245729141677397606739708828869791326224383497221648044179857498227442219171877762266285440314328835665964249044770353856545733222328113740413937598220049107950206884403184568837689006129499691474642612905408470918375753560965415390704611234577065110686802076720187640961576913051713779705675762100436511155933464215790926048958306096735151842784773129668912996483417086092904618556842808644859058620991551818372219290935793264776394435646844319698724640939099751176633865632966113886055030588100591161236825015863364688900189187850792786067782807756024664287933687528741799920766474051644959137362136626649036817749045076582702538901675754332157994489000336782130121498152885887500595598843851426762429708228323784330564241860950667097743074822930176634899682097892537599912154962247910371785204437118980909099332515591647794064443396656583082684508203431671144940645329396236863697324276474571352531344503214311697622156420221944968149049193281212836822464403048188550522697346249216257373576072507549814321998789004216606365430894936883068404064178590068502227390632110132925675835746079294611838700126216029534822231208776856781034687894301115302386642061173979015638899578102430153965142440412268562249120878579889425372410083684667536547187221784462192108049454105785358956466590722047824417776527236147710241700148864897715282243404826850134110567078638809745413200323026371779290831608138511483619946470816138363326731142635305750334269028101958366438841089405643583770101766287648689841051124754305568538389132736013583539826818480377814116849046700122845808483263142204813489528282573587361469117900315379202335754911404699570357438670761251319186684233871285925109292534613944549337961760246900177604265482926856131535923970452942639396252951103865201017462745053186192814339953240878162822883330948225483639585226697132372591281259542803089412980493347973035704446991573811786185408409387458113544876209122251875545290855879993391449648806434273080937945082793854959562820660025508875055842078311140074501025020037566780402016717270186760133689720567448415390354390257744275116316334374463986722735274311998198597195710697746697462869491769514877223310279437219825099929933587750179714163083087990677390407462719869255983490511964014665871165921376937915641406950546323858995415668557617403209802197272108216741994343389431042813184638275973141345507591560625069844716246735748373693337199448601696073300448959262014549252051299108465863011193133295969297800952775026635149813901946471581828848070273512923452255420558678766224339881865959095569995802039305729216014670533755731359076039658294920661879532351436610436840406373151294369565953048402812005790336967575197207120012998181546956266327906908627997382102173710293221892697072695851919680939952551920179768696723924794134455554101470380624745267777702538655546348731308861726981826519441391878748919681146026017532960974787563239799202550602643861389749634219835108920456767176060337372817336097031857806327426767479395276214449808674694288006987883993210341572366006293394460138067329578702805332373712515138403083284633019303291171878865983464668450625303281251164568954503111420526322028986853121680139372131732245292393414882996847759861328708059503863263321354314860159103167564302527169853740366605184561553469262411532545547169413054543835102976732020980319708467015895169417946613335252125725815188324354255869192615887701397689337920440880247084142801309694479688406286420046624744795506347633889839043518004038959379166357806083967724559502013311778827158502866486019642369168680250805196157133382498932660442541363915160022486771556868442883813990726765196497788513889132933993888820871867353345439475696188034469386578332499260620066678487408451979792779502535800643499013599076695923854908793774331971287556806657754764160839116584945430004663724964828455000916642158730335023546343444774827169956523941869247270443144716312978324941442832602479366733481695842361217480547185446661734003255831268937405742083945561885116127415043148236460085620417161363039317986202753170222651162060444992913245665147793169346444860313792235707848051221913713494218112354367216842449299647457648970665996825008668591068427489294167148470163190963128213156294396053217765480059544714382514479483630382051674348899834008884959273583128078787608113017428603833543710103808014132620754966720684289406669080995025652469517548157626165782552121249731894652474651494375274714778524197406946115352069620649423239434196936153727639937857870038826245728263580117083188110346657704741770146695816090652750904261506012181634837542417305887321047950624613385092201277786191917922854323666681396401630478546705848062776889642123347287834877461387209342931094437530832231928616233352793982486331613522345061848116228157599426834656309897140846284410247615023652361654757634150895574602678211561447080133529992862784793827392569105534255976229810670734759239319293762870813711296577696280543784100034930727972522278824065774360030076161660280462420834290950725914572632182025759725034398723063801261056115012758922922535783567153649660014922380346911883289817957407438454148594750256276292847273913583867292011088657034825231956411983355988096120203633072561385504983055105845120307393215893648047653676746531392949928400331893557594687501721416284884049207867385082418209472128942463472085862089536604447499322383528806288423584025916915008657125226586121972931428050986240242024471093679447968909865768600506887665104178550303577650526598372053108757597679266600106862795756506017996182419999174300660934228178061513060307605320245603129278486256284632683973218594542971892511736606684480743653781036189098644646203931406443060027830717611341531630806092911868256608653887466604975085049989242389803150942806941858472630679474988969059494858946874011243315977758071272195727581458969910226029724661330622106045516902432990035317811910837848534536038899528989115516247839540164309967624319779890290722942881553451118259641810517264587064049548423223368836278127668868059095288473812311068052783609768831400114530083553729826058729150642003834223209503788415119994049132565027400378361722445341492086890334752294994687302213906700959321799747175996084551310370819519462860771793521053307957242042523944145345189991344328853816209726245789474025392511184689009426516829230747837843917684420583149133164466107272215962522072458427181910450267443195827578540585130507432698462169834519639105217389786860994758687895966499521762148676740401210035655081897371629855219383658516254298544857490134021024603677585300662034465165411736161926543019148150268282287429344992359392443515188037869200659789572889944759444312800248985997663191659758295338610598681006694136937285355783519324227186604771202465150808248774055162391386628266047381813294490992547664098339201684981128383814923099014277264663272801104303625782308268386327523357034465948856844797860301658147899249579669454482583162911353605356064539095641500529280617732907252179621857038407435075900977142763595780231518699376805631423679821125718143666080728007538796389506220887894390962653308281066736870555396424672131228106945234704305912869007510744947680612371432497595172857596785772450238942264693060938191543120184222242843851980133815877073866349932129848721110663831887848248541707849299631220867645256345336053892007391889240774083253565563565324343129258834051611497542341947836062861618052915929018622967314121521334094308096800153649645225471765283993090669802157556418587599363211563444733474934184318084602725732037338029507245477327551059625840164811747840857902644371225340351979235531308252319485352599298843496079581406387625591578607603041719913076328873892453249826779880067553001695976728368679599392582857934749000618927438487696636655436660270917819954051233052963696232093393105451751825341128152217813046933511270903282420566712154486957568167975919694867361775977572643495390170987272204553313704342460749590384606603074007480442972743815471395893605440075112019447199845957599731932143306411587234862148655761841215287883704146383847636205913299189826369006893778815354190521725359509433489915368349028758167381386715592658943881225278400477570770061172379947537100510079746404891726867270810457461312507539492344353527029324792854621791384691489783993014999215457244388202963769710409855335072913111516924030890030867748162411962885544245650031854027235195140884952759594444016229054285009255166426652268283788141925451500221375754384261668145487078135290053680983883909216864569670438549691314620873927561359894379751872348367031627623241372818432236647220486616214070258988174803724867890284035435783931254565480497167576794647770260731386342517705005637676939290771061166764464475798654079851757348872787121334340495169788700281037156511523091057608862187354568941287519713127729257895447201748119377265298337906477247501670271465685979390182780817590466377320220476205618219162255017446123133993377730186916627664565758793596841939594674096400991433143368998211535509051810560640160067503471687333272484542196956318557121550105659088799059415720192476022012194670731804487112352704244831758700409811419208797966408262620903531830072470111991599756512956105610961435246755936970535647432342525931570804870694480169860115730756117930356579127992173788297390949388517749022205558358995755190953518960749928044607277952627658239674989927032725675143971749322226503694243466269568761737115872012870302217265649099233343835301611624147635933166983536485186567117023369975480062198283452789669386343239097461314873142710167407078486269796518523666351064348837088021413452712129159646357254744004962924227513707401672193521280258911171999118377777345486529200025744970904501935774603327185353597913541893289731169175103623568288557248654545061042276285192146478809354752138665742109239985292597409204171355618228085888278673451688512052700771714944379010645215984631399797962704140224389323229280307628044261887839987274840639967164548067524813811812604775030312662651632827095346794790108446881517529765240427294860649180662197176834503747522372328333378636460162351538041927682967357427689189596208101056152100921613194513986299425659162037426189697691866191628790527001845731578341566553311672082676263193917422920262916316724250480070914009895708130600458632310391746607430588131634543880280049866336108530310866612649722596003763254916818811164870128037603844387510465166031731000903992938298473173740731679339327628921997740294854064515156245355759830514770060245086468810560640163649599317877582327601317096977481141932392858730779924388021208724836437215527927310871942943421438097551644944655452571669278372088482715830543173180000272206160563201452921288148241451501121542842670656285155900388917399876028285909913816308262318175170137534837463975176284679879411926388888791756210081932341913075078716819726602255738281637080985078258102187951423984921510909755569110690230706331582752445380105168074254924752377452622441511931600322842355143995287824321253825296909654228714620356521229126114819932949477153046843936653341043111479830583923622727464381810063220423921492131045342571750215033543081870963314813323618843459013438959655621928247129099848010588371730544886068101865637510927305009527358792760297010906982146354203371262042753845605095144619126761349232346565609379229305099341732677159492288593028580212532192119763988870418593879190057891325029826431906443140224735962658720825908288502596433876254887777185268941868908466511180693833775349640528003662834908650239651848844636960747464804405570115626922507962951944839124823285613396488561463693289985296608580869801169947086398197183102345167721477417760927018434777367315173627388221856107416739723741873715040105381186755062569836837385930695702328639054423129248806437817353281683813040954282588872468832892701759022308772215208420479949891428274479642807224462794522217891667739237598822540373408253454157618805198143262629339634098509787735705180472012758493788635834707973734591015129381560572084306814670299532546124078334604629277944135280700030967702281211063774883534087591005302815552714833012398590121854232126942542007869469374811773740066380916218525363271776133664817315027318058135537126806039160342156948522461378637441998492138782209471414415885654115187104623067818491233866754904558948896659977831048828388449713011758071329382072432998565705478579641753790667335466429767284213753033980871615164007578714512071214628343638164009962600944113885904702353950087293210698441554240008034105751183102024102975967976007431507681829114082548406190515746490813333124082491571377184010754396074481798314485179041376627114998313423746004182234135435987827436785659741967832747403306215223771695800272876393386078473031041446666792214735085943952409893974316083709317333094178613998707350144407449645950624586512035590510267274830689260088055068682838647992284898806184894206965905410915527497084871068320745391875158703301143632130066788827077196905947727865795975576684213666667995230301475070084935055554659796243072287535599754902845465538492264798420802173506539010407064468616099975685823798574136685670529225153547980055616348965738112157777769108979481333782208573080756904491551850304552058117829977705057335200789060490964336346569475292935615197919807205787657768674172387326648275065155482045157427028606232036585740702756698926983874135890059131404280902862609897597088934045029875805844324577373277106145605752772871714483099493191326453085542299070316335511636895236115406099516776648169480619783250475888977707806562130826568119122588190839839552077622248539719281978770385347245095245569976986836670673548859282863871984906648446219459287714717646921174324884219477334818061270445621328330614464706550641752342823169370263477802553910248737060211882381370405478515777680216910972840654770368735741760564817549552620701291848019387540458709487673420994326976331916251129011704633117170341037596431023144174074124071898629843493102791495200115165400335614351245436417693304190439322719390467286206859827475356487105035049320763674571894780801559583364326133667902996495962355320550667824831515251873392276880975203180381925707292782770471019618926806114053866315559181429906806678771590642255646239606691460947267072109806917263953971126084927494789653340698900213323549843845549094260478792125348881086649154888676791577340075306064374428481610053310001840833174226772652834959745455908418367592105247512275952610376560664646337878053868998512491546395610954337580602190065373881037382513417722429659664719315967702413301591307820027614367024976441968697061210578571635016817134774805815383158040119291310459329801911479143885865303831079172852687753171739703776153171990187173225406126737145551108195838246046759880922555425625168969259171594127672483026241528012642307645126519497294555192714998092004614628302119680784029817605517203688002008150205697781565714526834695011616437383395344094115703621269416132785462214977907094803043853932669241192622937253007004122767186886823177055335743505031083732238450511646698874217386617658582551563269658661776382712238770554639625435476615027916863109568235426672445168736287731991465506038645701419126452766886223283406058566798645713338046819683991405267712939802316485214915033852840230610383270594561015291892796558590984751304369167325657232732205370261614871560224912509614498612717802814362189193086651131198907373199483904780990922487408486380597694102877270453753303450898678617888528566812783714132056650338009850229871030702244155642820784504428106923208754783144514520685742681151568398838196168350115559589260842165254841469385856922969522643671568436446491042678462259571638562160107150676738035766495958411940730355182972433114901065843920910694022208499559206770174700645981015055262837485669129012529566621826249915570075888300829425315156232951734206490404354792922425822402872631171626153009729415152557259048269227764773921488143775104641315107377180368395650303534492923193380076704094041867954647670225123901349998192971204329023757136590362916361964094419854248837387233249150532513071209831508143097361256221105165328534067126235935499512439025345033308507316029389302464164620675967605118531839377729548240982978361874360149297381591328566135118678194860871125889026930833137385307819991944668156200227651853750316313060317513568948488782360167302107114295652613148783332194469630206021721717321041232340936816607546860830717945010586682279543333759774253185384002483351925047647606931733429511708627906022681254309545634389478167761499655093367259129304968772149578800646031691215633156362295954313259582657976585997088217036373982896892969538997011517571912183172608243728790448083099502288278340015506096231573190598497246628989803268410046314439490921315644786852968854385472079311803801696401049617820832724467515520419178282330233782224853796232658396014831028899430354429148769072403573758847085175882633610620103122454584836863346105982919417811438696184943755161166267294321129156709594230258069271435601913841874271993994689683097895150811811262512525668597533097969003915322723677877866035920207562509608165824338126646236768910534981755948671541454362834936387879453176082423343953467977728825750448957530411656973076182494551438852607865143739770318453046129532163595392970533283424003936574306777642580648609264658306640388600995426130436329076491929927165758990340187693888161429325353882243443067678284717640947707843306768695073422088104942493728718360316746433463732110511580710826042862040051465390343371889331100601502945168030759819682187223971939240257511686584051130084151950142513475211867943744480454775421607543469118586569622185560425049540001380581955998624760233042600144513336671007449296523294508104535164604372216112042953223734446551035010465320482158025749658649471088776047556531850211318233973527955364934883205726270096840058576304813534494286601577503793766509220906745316772311779090524843113832628646895286108955411364404525418700193509231028167570782338606976261951266054947512702715878300548033549569970862211942934771830577132635016502545625762843565364300696246473476817629710987992142734055504223790674677350426067992696311434139660097297638657696717488266397017239465742159275905238924713424234897464564187821562285709859860667799735134040303854803748404942133662845558809781889625989403206646516594934472429066931480092127755575384838255413404450391677788613296462470408329101400340424862512161367030035588595632431838957880670102230762448335015843920276643307119124092715893315552274625512718019373235493983199684045833547571663344731968975817008916435822646673815061514562084115577617072757153553387785653825853141902746134806074899299227104448280363989741427812043172149432997010058658811511592934043396520853557923388532047289935071527507078758396844167057137687018283119561617032164253236675101848827949971189547360586981683185924565516971103312866056666008568707861926930087430841253836071541828877836616804130908224211445440886405427789201612515318719750081483425989191676820806717028933389001082994530798045703514950788602227132385076206381794170275883272908590042207730052958065874093743046483062537602950016573075723420034567700173514716610179310709624353801763131222176336808842425887292626859984454241389289554352168316334163672147702101322655731214374914458352869192354517349897632870689884137605549798489466033753533820713832051313733122634932756027167461555703151707835853394610768694415232777773446228497562375634606588437490265322214428619129803231011319792390610828713933045776880634283447231268627908154292408553022036659261183664810508120218563917974212713946089467686071040047153736621359253778185617637976354970105860099983349893189460508955118212093755406050703705576549376828673647291264822957713705025233025617799126876591625267362323555525194400044702771754080221315525590112476455781920247390839706288583523520913087587480851095728565807634370945515851445156566649949363791350341115546121184946462304084504562873713037394683718368224574475887090277113426375746767919229146697591919654803550549251561032092796895018812359415885516093569107526651067092247751504812263971828557852704105499800787253448629056951587019375235304885265047868688891984775877567102766267921990202818079633548653440945735154060494475036188645235714160076257526970660694518249259987054391037232863926014527436565936925611659141653374842780511770593353997439775235406410205345199375285418306342546097560032231866317869660679197225367662403983925587888306779823550684471172107694286600229007059967232193041410220033564750253675276110876805827064420499993475098916225577395922239333793187738821629711007565710654066603999534553024687817001726259319456776010702005819574316229749944873456135714236673778398891306804813576765364953377819759306795403519153598138576370135695707015299482654488809517139875906682137533715161728633791021409104049230686075929723923556290578835089645648274846239322800095460146227295746400568520094296780683651095853159172327389583775440533642158044470491529191952223596722258887607473288868587193154833879869441364916267729199519608295814343319875835449121519133838319681116126948343523907810754117006890811636955974356707076880139140008809770683312973262133910647674343345035456286847344717053701169274065384981107248575701797809662481144391343596446731141500332955134851364876956089183616148205905749767238687708015875571528508563771204559510078223582567921249388905254198954369201165372712034426532766213131109420298001501146875136674594731778920198373183852500355848728781343807027279125621781947231218190672835438404709315265033221007780178975338299489750156030038232135603671739687982869427284655669457410792585233922064780374898127238393178497024590775632505482593299484909205977154365074298049960910680505058007201332772116945124151267441655439702042420637431478435624566928008107025856151070795616162194046009374189926323453619761644435728244319903919696683262026418473855951586930153942335215024952001886980357531068093358690131693306991945697352882703820146129882150921797265550540997168949574712685788175099669449654453826941776298889973919482895061401879611804928560925834734390055844408765995108782515959375875944963890808790889562314066408785175644800670830490365698555372432929762903165677544354283482015632764598144140487603896261249132833581748708985853819106756798353457391935127409183404428452857087061028387720558063087626856582907051745883381175066957024829511323806403257121877784465466412378742754861824864807617656201116282791464006633293312695846291645343991259366171181349374295830542816938981704303200974564268490172948329793210590942458726602772609565200715629749285244348168972314640461875187128480873140610327382878965323661608349562166413864751738262388509135358732960126574364176572629401523158841813704684079188163497432199004103779065127873745597508811852172754477744158290518144934314264772785654545617615504085106526552107432517877794421456598575306716372188281984161156564378678645842608721055331151247678597662682415557002884373941389152284777586090575587249000168156641667170297161222408132603744413946551798515915847547132125380526971941607672085212946572022639597827052038006831382984488813520998124912033470419166256149323999626135275852956977949215924366797810518626449239850448599765553741261488730877100480027118019990442341031017205889281027290021095614429357354519373004199674323829923622654686892050528840075353526901215635284095827452621855269318740912218506447789059431092726724467332108219701326716001740255157722731192314436941254676575706818483075844689325141433403471235343684847633856212730451390407295105872928685081508863506717001971027126210583836835278134824567235166117157362140056683182042737427992742469145097572590597681772409134462474700276221111184911044036423812463208466653363999111021315890679045014599099899685361382156082390170899595858856549356396042491326034813042364909475887390739995903511820625499579413402719680438936370541748236243117984500217381238680890984888707051483137489485996540124615842334637883751970595584164720296624063343493509292062477249176794415348868389494042557607162364661804751113428806601139391127284980321729898392559612004710449623405181862128166473127227241265173369656661111451644085404696384341999831846331137584198761203093321892270761526251378739479562992732064463741918241166699100475206788230377675357600786610640349217331264800250310636495683539513038898662364773346302955861982298534514417152745923834169645937187626970376508860471806272648360638538297898929278925796192680502601269330741617439271167068635384592846727859993106400600985116165567584443260396594268717033264319160853611257382001154279297885624984322417981123091884137073723132389699891747164049977254253840355340266837056715227732368714513620357948632641222244484010138075162458155605930171465000093323164867840073314198801888128181435292179321146553308978023042663841944815889820024917180711520198360390474428570875363448849762640131025680551257925478325423050008760329360275413637117172824958877983487719009146798469148704668945689518401263334227977790593972003190393952455598018029767775990354862472175334075136841710551088370571194317834554489203878754169636582521816935093892873165405747599707189967964307619032631134278226593959692735070914587252748624541450252437721218324901696611788293349652379991681104149421605467935437323644452598549988895379295310906087452456897748951030549916718938871995325635120326253452389682659863140647086811213344085363407494519787515223356281696639577396642756411005739599379559360821672311043272603136791684762616537448052240546959998869481502641625636384968321354573908292465605236680718926208925088345285826657250927037026382283623782247828719260606824605871483605835135902663301571925186418262490850723614677311212587620083636002434762651279424433950282323027496085561083906569459958929558114839353454126721485017760828892708691866015380774240329020687539544463066102484492581336471528032052671045414734191379501745949688783636396443643752633159888070754622519333608165167507209480519898073507110563102831337998473447567854539430575869831567583925688427546942271686010286048527741710537901588866321821079083502106590483237679840446126456091486262428316518096409628363884302543363979686968989321325834114321714281636366285834519041114721454984064011454097676298749655893502724628366504143365622097921016349115929993748108764723662372354825582913288945479626959968416581773385734749759019895795634900441691637535161512232498965037611104902024004114124116877489023485068513738450720022833960015553876812702267644211332104450634154038281373201828103446550555277599613671310634618195966072089085411929474908488689637205081717020663909508715917038298365302866022803509487863253013851201678367296192342458919245588961984172661052073559006000676542356210956189738666394579124501617879025407241979606436279794916681473651321494904598141492181336410444793776636110407678145955068965249019561969480079200654486275644002342567888044109432284207591488219152968783978658175813058357437054269053681181919636087386093128657484903293729845192306257250430956766988419563488661842842638566149834758437998780049980690951050715903329235941567984947068508306073403852241936687907323824832864698802524341106340510706769115747913330345363884274244861361927992456125801340263823412598641710192141996196391224315938421759990082276269639261108400875062046439445913719808769460800234628639040016283881971818114523884998391934094997957103370055325508611908389136095586946585784317151795106335474130303992440103050607158700125056320286968291123666543106088820800136415368856508058942060752474134192331945089083691546779511841251442092029760659204442692955647954593057221659818593296685434821844188543298482379540183948067443522474894808840092006814288547772327226696848656192956616108728816320579208021498979233400151807875515770378624371128844433300771235064848546491487679368218059532032656939742199393506092742435201102511390920262867017719490965735207974639110844544877963103549731031416800750957864055463899484863851166952266714583432768231714483059368161105335877586566524999549689760720482561046448077276638423764565957656200849341935737151707139633964438633890898205925832686429760931170014704443568841450110610975558347749991978193350368864145630670992974558021324034239432263756833951813187344224574861302485873540684556809551941985329570854576417262458091445430031852874148482996158210184690729520123876144267968312583639538881563304204305269330863044573508386552419113760392016501162893348106822635808016200231364627958531378195400938974540224322376767797044888636787347403378631141576297593055756192719299208137449462476640192778436237629505936247235805724296732367415679025323105309569636451125420206289564067413094984257819945711561231230160972168517232064075630391712731210697059059191217204181859135086878983223813108196665932185026497096484213241696935557542125748203720926653342907896140505975277548239051347765688859677190799289810986792841982782753486059522852399183487570212674253885414248339726449668872743934720226720004028457939231008218258057257255242917008017758321833865604696011612507618510979271031631255768058047638806969317861224248874948901265189235104841677754546254426297851619390644041272937576434923023015911024062703945414232682046316022284519911728457160991893574182800833339170401514976522377103557987580541968948629048025918668294330564789743533059743776569335183178557380947938694129719453142121773007243257036601574381814608649708181857538305871563320044349067993548376308490995806882364943953493914789070885631790560108346572241494807380316780934799298094406393209496780343855831217680770309182431265382938930442488567278817955512579907063771340292797190602240727992309774084493892687940427637179369095459175924835990809929771241893397088987207796074573709461931991680821602960760181787278183216102844923248785567795067990072131232716229377462372956442759410590298583617605597915974136039587659714912328825212679130728287915793136647100953772816693852132244782565924127367498369344159147191615543650233314975724829472072543611624057210630264726562989938743491887944876106297923682267454275335287647768114846882615089481716621014800917036867969287346371151205072004049687419261008056045246869808728917634705771132055610707909014091404501134790233094442352186536136033913689108232186981991592818433859538775505623327942251047035815602115254637009755618798339168361669653957260069001372527017737750135425421665724516298084563279973002083398169670525519006740823293753734641302658297057680098209872881100862324050362652021389036826717070324987493378259865968567024358185576944757860786702401636459853698504194353923141818527126751260127689387621435079895035204423405568156642193323194568923441482374300655387678847922273564814848440944886532073789665868911823283097066248908251286784344164968012941799105002266009445302918366210127778276654041512870146445984176891054061104860750424457356106264932397619157291753878861676644324004922112270178004423902422454711714971319950771149802884685276218350153260321916461461916799275038414912811310365093065394305625634435360209750817909085383039148544468524770390148753804147893535308252886354372729219477292888817476965265692442594629903232293495938392444014166870806141542186440151283755310950034438501225827980934101762709812143686135829443691927054664573311429033937252353032624042915681069887453347441841933791516887413332553536990210815735656447869399879003203141710439761947857135770649119984104797207054371067703619386596312943086726981219496732067379491706917568774422291426225907415073275852808019134504693930131650390956700087141042556631826681608982394221336474486704431221146742350998395452266616332948161065555000173826590325833762530315721426601221334553102290078391745555797913270813817619545402640084418795953416926744645639432226637761025078960383317044566748657162526699939262642760456425135911093249327684221788409525222403831870620470178820134584817465604049709165575811577992687770161249132630569474617477463296759100583287578977352078247078302154362421365715051021595391503835682098212150034408876107548043393293149700349534314670353018340786535913175404184549437561676545283822260654064220379991047050861724096792197507145033386893303770186596952411873280202416755161957391898259286592178010792553371331166495176127513052929096592333935869138739753410025389030996743830965177245794374140298505447213760696535789146639627678620687782628324074355473618006656572382503568845260882629456171541515097375333456879079466030587725556836635610214528320522786890537460067220525998094258678012641107430155525882235647690346317567428607062504703517222641462653975418945331885971570178548461479849115219236338376693064611612215882085299075741713573962502794927069131442354410154241213506362006990810554358613910842660683251180841237734753530999046239756592618525526833018156916699005967565514457300983823883778071501951051677985915479844168259077231258489482082890733277470772470231647288588634380555118651084079848096451248401564385385032873994516701400660875183123827177697912617535533706694314103159285988113159845429479141488961555431306313418640933740918706877836843608642708834800937889326598145488202608025575092005104364886345005622316063152689468725825819999627218054022511932531129286636666753659120657001920600385954008526439503699731597522477938895032978060714206955835563450382646330242971600057689270925910638754930408076077254546744795384025804300229155458608638647223037742334537079260187504183137748559893291742255652370438108458642685207791090750457528882258454366323376863870680486013864431308099711382652471820523643773947543302059189761227005319324756305275227669106606180906785160477035210013280386008746908663904820590602272682881820216049071144240352270593301110822055860593186212748694779075960472713531362511205867535873529001885596276813504683146393535962664389789983862706566878510286817461260631207119301814178442598537659976836140559172346251970604813699567422445633737610477892948287133070471938506330790027725481232336908078806818293845257766755835921467496887514951054833617175460183359062586100191800624096933926119427472022037640086282640442952749608364367907806607875577390004167040687815159581925153232333687035936685541238617121340789417722911006493975482118010692687386912726780482773748386174947468033050435269101983667126295536896539435879096073879758553903116403413983745271998843410829665818738089733472874018036828684818032308529404261646710480772100556715666392234457936670631820278668692985291564305230654766145476250932526904088973518856302975747324460100128767041859726697605575974657650984012636827690999381346157292859381236261083011152394412625750148771054637382446756409041737959394977042187275748717099566394298435467326321317216660436534553684797616191109425954235867335485694948799843663232670313065559029653835424953081248640283973768234498141562686119044932722841853251246803001955816188438974318748967223468432376897190495931006714445354789419852069426426352249980737139037613652666404222045691496195019017784153144997474496822862913116055010771982720503048696315235288335395745404934440716207861464377891513587173240759316074552276856269178789796396091037104582813801664987446970982406471859107258613333497878194407303569493995643142675995500927123509807104744739511128355381980618070279024545003398390605510459760305724694155570565368486684483084599229402870133584623724285794280499709461438853945140277628585796125631525433628650675455937037786532293628105477926363203456179963460519194611265869654856905616935288317996470906657819855782951587171809161662390030926083405022941833646679542633055554482014737296042378663414982597006920219290246903300435971374101465992772112652270648295388982283562152865280916333029938245366717196937989663548348709144786674976344157695128087310198117263619621752183624343405494476127868598221589883844820028151325589204580920222721634935866733671886096232944300344835422164316530116756676686031034755410895822649087292547929640718755791038780541014386623780688514378444816567716967249789354885156698453504677952714458965811974465709144451638484709536828489426977604797200822808171452148093746509960231094005370785852742207055267033070474767494129646127742017504341305929984268691875491736102782390456376622078492782232777485510607478675625813122663937187600924962030408839325406699157651758296507699494658380737947043215787930248013639909039030734226224171873218989064365679477621725391082506485649880821470576014760671767504320553261528203657750083927029825392751202576493791159474627916111445293184403033420997046039313608334973423747621440940290077109046750286134640147383254671138766452205647806610403129070180898559956715908240764655896652218211454356948000770229426426701259194742184436517584907100939759580208811441151060815243967618829054539408400108623916419811453139038001356622586992745448643935345491844867995743576071649878196482119621778892239883468469580087548657642452080658261934822936972422071630717868250157558661488286415039529620328231635335982588169723745615817764437232469762829206323917622414334899829735947914630083035337145897832871332630495631759174630728534518051074007370421983082772288378655839863487165823348060846123542646243008926124330478636038136407517797158539940215494613422985803686325707420466932187563624272024462424883446135008283482291696855807224670508358475350279221186013706306721908006473082179119467524916938313567243674469002903570073292703684384760267510894145198701299186128924349585147769803832135273865834515395159376093477990432943687674941526365062035222401102495284492241893981224372185991608365710884500175367103816745928737378619035991940563261624891112517965351041912319735563286363786087415521388474067329858365733947461462613648084640688752328752991105205089153763308633422808463450568567356514066206524692860781430256016205256500105891204124966664084545104282169439898083912603609238833521666731360799621511748544409629021374943839175561058966363491654013701540727887016772711523259120329379597002740092854801183174177363805028880058241455015923040962682078222773267885258427463858408901530528259141354413114888928121552614294600514953555355801686622003623916218403649602160552476826790974599004366854696445639599281858584167309436625277874721965498099501077415767038337596857699563461126491644329464520251041022488584761143197470410399072537203812333415409231147866019854195136477166495145452188371882876582868178662307324007854569088657174594416594062179816281580738478161280202013432709545486772975719346694054691278394198821956599116081732057683155232806047107689131935900119760115426591588627587190148184029428472172768993382951033996582867404382486813554240060450762456052508080014929667678722997017330759196830229663267494704092564123060111584531799023328741749479924296321188574275353283274871840364130334732250288697897483993227192092379965734837057630321153673346421284467956892627623990612437555240220950226908248610284664721177628123454766155446686281002128167145927088956809950444878630099484173410353843468400479269746148985230406418191542504037607469399925395734067801310925323081338660993429906153886760752965004179488840869991333791700555586598217829091282461046093490291747804413416047710573812249239967984322333740377756688821379544428085663354804502459049774955733393074727599407321712489882575698484304535126226088481263187018293538140942956092294938600055989335545521684167977267758859581160468450411074322988932290709250520256250079970330628773768535215663678653158526765941612017985865448461248075096948478297940480794245362023350673768056204234206643344827760811687818755524066083813347832600525535604413166615285323694416921302450170014905858228166998720875324286499990202350802722946626520002370319314351518938621901302636220621512749876304321687883474388818861900873313136130572200631413351600779822844684888891554177392662130955345778109786510965020581899616728093351068120543766584493264316505178186070134052126336538126383887352198365695898433646074597926184018938647457234051645972150306927738221129867323849993882887423433549901188236296283457070386908625104007198228279380186132739183588491788750025768022869875036772635011569761113900553744097378428406245283436133041872284943966674525728923389845830678356787036873010313073618895342681393665043286966315986768338136146840774580154322481838769367425065981946343163224901063906116627831591957583647591512824262247691127942218136319906137807031881880943371645673179444089495927953577527222938767980370225253990551362753634021595663255005411158055133117802523680127553727386957618308876041846139052862641195956240920775042855110305582906087229114551068220026986265841400516865448816331713898699082623882977340004207461647712798812623156900571052044692092295385249389459108510498816320067149106975986398884650355350176925283401870944218437756156089415128309224627158482966509056759430350521481456601415364296501868380625350269980151083962105306193662330717644299334214706214514652578448831451355365449728219416928511246843184537367650752201989731579360517650928369097430714258236499558791934443353705435911027635382713753660795139321416479390230593229552957249034731087487065891784412070747433478203760029793185740761341098103606476768400157485696903202353858358832055619711332822700849088007079616945921748718922344809879540561504074328638890887884933719019242811384889911418299735602334721708057910090221833829989632569335916019861030651611940211147017474274719271341162771060131424176916934118874361922528336644118074955216956008017079400769655098616281512063556022287448658454163899465897974419458065631424272244208688122380875118462393004143769478707705983180307960557352871011412208852346765724742740199975155250567197629790254253225612455045071386867956347538157219573156818688315844238371987581184168477165313433573020428031656019058517402819438101290612188389487055782574138729685409205155657450347956951709010404289769104857804181088769512365912416682981508148613359595257445461933887400006969895646558178286210244197640717455375010404351807860005680484974148791472969190288862249890221262002925515087941478694254880189774469417001897098550002611007149119498279608849199695307366139067890490752053781917770638781649808500518565332359498494455931344826475445002081013658886329081108560163001164544942095346764352817246700281468167135337589753461825949361587148324405762917675994899614974834088960727855734733605139500593472466921511895465160989918152609342958065742871502790940419183012585150483900313336875374218637559434334606034733142238832449477990407736760941836689394117400419962520040830805838907150980325344591976954284537639010440576669330047557208231875163345750142682367722572301793414110760441533075301292603931647232413303873794434339142519983909937061629312294176407075559203515363685873966855639804943981392609635980846077525152055016197048982397433967763985609323238694432136048811020261946205069653827108003072614227601779959223597843118377754888951709098668076257679311635815872025615830285370086221993758784077859538362453692077071301266928762541361416875853714515340292797114254357455842138645953711264931901219053167114370662714818542557883803839019327404427989794180870526396918906625228273764386972811110644960016562036839961950123705013394121346228502494509781719511305559597647599909274046610223622724289268864185943209945449833274247418899482528458027669557865705854532840734590091200159898178405448228282842096260404730660060814839189225834229952643131505821436235093761961339975844986933836216327294529810985857328362479218759007404228501138103854490131989296935775202570865663828129344886328684948662502413501493678516717574102379345019302137668829279253470593731434791573032791900672080709385939206579688293014715987468143768192978654702839107376019606880135477797967629361307961515870818547301607575678890836541779935218845458257543415059430080051624587036791204721643926838784208159403968211525120772042738221910401579061271573449351373354398313664764914883791176207955875361380890805216566416169360016663831387847447345958472499998461815604881430695093667422457208113433056286524473242423467315589555660516511554011172298657384699505969952244547295982736829142334861132144910794000955310310252119504577017858990138844968804198934269530636472181871109864372915347369857360313393301689603992569178628583313354723938705758816723001080006706834798721307742916438743241772501511725165652690695485677723299852606234965252478550488970663723792825827899967602482211845532904022325214214800624419921323293689544073736550886288491276971485529865319555921158084644453655570754570126384401817347140506839925501877862657609242466154248663901429230765146793265600418215462254014886381710576474621713259909401212909635190264318773449048254135642386596741487124074976901282015141501837798375568864309592183420207325382222563252497701401843665610323375658153863444054913412392614994071204157217238175483406517810894208719446347985390666424694877319189281812182556311911686434790664178564182801542472812448955132387344508178493980714600017643264404726109520668710749056379508118797024284269842338872544992218794646164680193379192960668216218979038045270018648558827190787804827881083291427668218209496076495475312400409952088790069871811256838700515628416664457629002430400367724771369680323454967588501040632800200220980205028029900990245281492989306570667283083905521796957032168690954485831967600789311550431851479784817993330749236383880675023002438855832194721333019402131293756407798486425464945120329698568699366584060143078659280050453368346095152463673024818524991405950067344244689578210598719308224020362115994113815735821495176625009293370873549242730277585302685577949007095788316739189752617034021427724001980533139739070018130495708959884603412662817799010223066772731354240988597412424136639584027703538692649785391404136002252484269726276980809051130273255505062127659286959612706731893262841283272587505268802101616143832311156098325350625019953408528538895148684405674191884677395701885658696116171779800141610362738369784049646639776530437154125781866854157775586846799927493503721399339814699238631576031286030712110444143950830540171529269119041809851412753921178938772174698478365985341285356011020126536176782955764146737279070917680451495787854686576179509719071559546965537241087887368243787980527926071680419808051622433056113533549821391062703174665621419663161331503646713101050042353703595323374519387402170386181365666081260455713103785694913233739544654651325717980217804369432732816837322311094277515807322765579133397494866150804702694403550828420501551872727694676517045640787440740004010381253122195329048379067975600210429375464504721530406158074904844644867696377899527455614402940360217475944828083957702145075732760687144394238670141297178367391817546727267185824024971200481127908567135583573304607524908953185411214101595741393980685111116330411181789668128170362153614643087230233659761854203874604385510918038827399378882429783375158993566808184348357254415809942918869504930984054742536778230110102090762930539127775708695584127717945962554457554109821322788966312174752714151514887323146026452706865177907568536881784609975646355246137542475063973023069387260441695500111064493038207158816960057663374201065635477278510685180214069676632228688398833426000902430356666663817869398142227418240700602544896483035761323137994383689201699306745520882977848895488358635780153909645690415473464587308201843190224446730241653316565341965729141770357889498022892163456080507990278318132274554989204310737775128188216134448008279582232802643812338743297464220067543826002676758966235390324930718328690924170482028147117162051587638863522947134493385346196471935376297559848356179173301417068692382292059563111628974425184836014647477927126982975124791949687797700582696720906528997510524986767140389440099967480204583864655819943567084042422254871522993142256252503901543249841693633270473626659252680421156029944676168827657235046662435757403400062357958037395872027763648288633418996504759440894163381711254384437031897550979884113694121819134287282994951049434203937664929986312180639323937230476123065999579445171655824182774110073213527565851807881302570510252812924165322550536330930839318045405572040543043425164115690437211323675396355971958425615137370218849800704701445938766118307788050740224967404727482472696945360775126562562065318281292815828760220593090984178536237357197838831080195269568112677492985285832381882979894955903567741799018855717063914405071217870068821862646664778724309329948493338685640322411663476086561940142899678222789731785225865412113689014549178331356734907781363841028633270243694183882228030140260693128210412316968609939618046106833181420609108491260995879385178108372154751300700875584439360204666581800907744958775275529229913605143990390768728330653990685357846903499850903029906364437703818053959210226286149250114902951105193803062060112456064107639236487786484151970739009568244927962727100220947762170311801579107991331878806355456855547581139753925483740287861651228033560414083076440384771986843447829380732071600971055788029315481013109208227863751834037965657457065397881504790980766015511039368039653838435051808344302676319255971336190729819257415971012536820700891174783103689392709910495150011888195543331838166072851752722770565680464349002314374906687994810559043143080985217948535951664753661185707106104124254216346760212474615711088653117648511909538544680073460549199600961810959622216333579022179152279785794783499422419752898282877435121838457243875974322359611661495776424754103221007860739252226300054819244743965781702902392993376215081635919741392231480395980224052181249382550877431654801549885601143235824704192758989491344759244344099621168854267206164286987948252161140361795237957291302148537158464175821568126701153586948262026251817693768245929654572349792215439294734018976430303759949611254529982109789315867335110050988840260506605849003203317310215917158653538027505517102357529727301012769718143055591468566872764506619301645976213439154421984992823788314941487474498260294135940469017908884763829397667177156169889134300484568255051555481275306690271857766065902941557791435650901148044071669329306404933651254183029273632135997984514558317089847406295779982782586861493690010668914928945149089972310482196673058284114235938890213070587524826986482026682222352228743338476530771790139161631879639617386168847994672177290765652986122588015252155123105755624749216245479811594717218724555929328687507656601752684347253382551225714486726867377386150853561293684575078146995628700276150458729724311728998562963289702598265813611257803411208510521308449777597827062141547522547619265890562574303319567549384509139513026257776585775374295861007049926219482349277972230644437632106878231236235995782030048694661670464187962149376097832253035615816244102106205596434522357519165944399309178593195665476019679678632955413882841318095773241893899910596819548986242035993482701933402235223597776241336531799039915042096916403485452393206388620970731673157889061958789929573293076327198753118457423883817303348110335149424766846095454023015207401080389564691436269405663023330633860391943988443892056420212495327945002685615061424532488353771564110827667892489099985505951929724048365623685589055494298078736583403511437373319435771877170297038534807273465889781902374139238202797899766808110655561050700604847661995317273721080572300755747404523527011485919755811099941878393597235793426863041408940301112320896195577937122361051104694219628484417672093820483274304739450757003714189267630606468744773270109105728822864626553921187912694261340226567879538728483132083777172949458049438733086928395010674220318960512790435785290517247101700037366279544548548757650074530170170503680215391607941447454585465892343156323522216536684519836882498807577539167027369072498242179106357921529011575019337812610286703226372429654204313144324868980776521930101702669606545373257063395160254574531541693671809811939727860448682722972506557057639616342657869768700718208861883519806296881034854666144560836296043281864520042401977850445094572958451679386212257917890628239294069150045056053250073529450509914335449266979816704905930169757471390906885611824013796874515950116171472658799836908673981036867393378761657172831454802476858814450048326487074364478079946022058557446341970642740862966396295326688420264868210900237626617360653430561550243649531201654244993034554224215415340193456123760722622294471321468522581755258032757887239346165934470445897887919264463044273683915013603355362160089322740100078673405088622077534457261182867610873865677064037875543147325396104713934299077003994632802286578395896842115294358043551436804053414369710966693803865434809187960145140891294052139307109980708499113624172114962941239550438986208080169716650605570434529176383994389372280200202707692284453745740160167941591810972644665986319254451780342120155368582937507870041899917957296120746145375015837561174915730605237973699538429374349715968700924318003933620625703779147390383535451437938365602302068823572872291128921439275018012454822426764559540980028703986205066552291190578304248626783519125410043523620482300433278785054915927430416411942606508871566643158305328102781862905345839858206188111369839111764055286198931692386694508604050215079911405883628007595321896490956575312470943159679196597485272881084168844977234857953191869721607499156167793171769076790293959215128535819378133734271647045871171776746460025145236581927484541741101702891134948667737519851831116579333035747672826137002226607165631218222444863426077810324039668479029195542114882458755165970657217272334298142892571986353164682036809875374947143980545566645770216042215186696943397119588683463641766019974437326358586492576066454907962667188981857967594949164254716493602798469840999290947018700248892417264343539687583071806140220460036022520062359142802693066934997487566768106168626638415982117478329626320199803139398132321573403063312360278281045849836277514148472888560960536911743645394805279271706634157963947418676744687966661596038316633205148546194194944059379281593043840845733533481318907537019255337618253903902068443614606886836010329722186094434032362623085842050934420295035417883043032458338502727507617356039048434283242220743193271930781027600305260632314574394182350596653284129316793162626518976680009050984249989807101468866599811487997254489767179078236971625147585665587234398996444662754696108539443683080243212558512683085191564636678533283890436166509644860940545196928092369548473275427937658828005586704385588511435454633681837203469646772808890251083757180238330105195914924659446385736471947964982014134188107174896751411249214723665356682183524841760118494672792485566824783267913864947517439525722173983105227778328210574122058512979744432614694684387309518087274086755774893377420258987155106418182938185165736330114202179653259046740559064249466529625133296865689487785072356844879344829812150496720035838036962927368533609444040274803276049261710463521198407134257860063417023997841386782003547594102811227809151334176652732531637936463641313998285626737506963256764443702468436082522324399399479801571112018937493964204371924697677423133673521767058751996681520232418684132367596140800197992623186859736284265985698209088842370909340663366719153314490721010833768209448037582926705319678099417882319058134940191601272699062403553874315208549605699021593802475971118752789241887471070487748709399606630439833238296260593915641994627214850880034309799767319080486848025727046161925127807038983541919615562597874950226032077562168688548110705896017238098629523165644903305554596894080214585918226006876478835026397120149261075588878282447265041095554976661075042693210213621502048414431681853370462450017709141230684817829556254430973248325876010504714527945998706100763299417335432913463376004656030184924025085392611688067962761510355268278127778095849192240177610037835169817984280253465954727895147335872458979277608592829767100979996367381943511240370885081613156778499377454231981292023150755376473483203125250968134063652127028993944613054749082212925905500957152262627800237500538873247723620717909132406960141182719448016284066296621525957147506737274389027928425687020313222384769473089698781609508079587601573769331962954698364505775484718462342877083722540041987891956335644117862031023939987642727201150313545515547016285775853320539611678218742629356300432241940804493521248251697212683500184340754414959942034523966613498249142387473961900317035650068955417279711360025244968117480569669401301088266429642987050606028786246536237989712461191238784450372468357027647693775299526527823452650415282640625136719565091487220787457307140860663300833150888125788245737945316431545259305063146049858324606522228174644052877269025783488384013644753649564914040976990700866477914835268670093926817730071583010889183582765477159076134097624069699823594971599422185369323623932763661331721295402312737621075665470677077377444015683824860253399035388608855266507541541527974554072368155143558366141210514350187205084023176230857029356681534872995635841147510433631694247686994520390283111365682144463238918425754385190822934346232339071058131448929568039872209750949700203871647954530105933486920019384089011955736554382983462348136083430773737155422750645005751360376308865222807481782720996278972375430877893061579521568732122305301704012896470153155417737025926281614430572770367684821534388226309000285666460617625816240129516555141981958911577471557810243900625421134328255145795732829289580509111687989046492403415177292754656449659615678882638161927787961597218784418630179758731377229663716396145444338583616988631819295262694564060404024081444908461724722166834229316922366085970081103330816079394423925090556384530953680525992828063488740877652990425839969681952677361762947962639826409632975165259672344153890177583360123775285771323711763675709717618682622381299188867996225305286048065718970550966695369020960407849726052946055148516629077404343199345866245656398743952223675155228404170485698342256881857658940333909700183675633233248964276044377359688060426284761374130702749767875987447425169138035090120174264897021235436109659385825508729268327087798443723153860688592379431378864526045007380738137783263396510593059500409582810560074283393536400609346544595952095715118388501920203993539712279849545410822167340475358001844974805143181551775768620164806085786422829891961660486721415848733502857045916685305284072394107976951301587035500880066330340066028054757312078955403844853824882884894225669328048824890048115492370527147361784870632449982740654983899122017518002665364683235461214922723152626553770491161083663159705482651288184051273621035844289783449014373778774568018936533144014019692474466614033666197158411011758595359821775253963661741138696060189860575303698342742558986420355443537907851228515431584063792364308293189485718840884087456775366393918372640296900734059403385099154452682980081672993005178968903678089825517539393281133070261748084861098052116145417626193158042812459701550077332561812805465510416273080149241186431564238491000538568658560690216507217517475010307912329529996752639141924957024035425383003173678945923047789324983946248168208413214984697304059832459823799038867948759502791340655990452038678000812571506023791125903242595568377202902726205749592460394076818678008544247669824686546392907614948592377396671617449204799094097587783063802812738289400707314736170278321574779032576092676313895019198799637829257692344997201915810020798391013928837674084268507027296445516852075590471751938525420792620250325616430642944960640868189247102839067107171589826399773825954980547603612223363491367405771609114231709665679152700356730130977944512125202713736650309008289259764895229613635444041436065874365299935253021805922208701265427500053523968474901940607130989913748304251513327109881234467685877842476266098302847310645056668854184373935809941486738001503974720047058507045442147827720919013057749421510728573116449677656552664151278555288999237249250246901862036796286960693991055504303968684046611941088766334274879220962468539380718673829442147426325231911941527503107078290424981620246399392052622333296642105289561414559182422396102365018523102997864117813863145789703519971775640932982027880639837861861946100969246344538173609200971140831722884784628014074531256218081348178670830168278504722148548607469750477514456974787241623714501515584936891307004278006252139969438912657453807619317105788666629211551873453835018846195650216919404057970467414487580979540927039611917496132190235262782139626706562219825729446291919698382464555254774102036326026362670640448409514344040172823791188097076657484480379730543469704296598030562334100701645754347442023352704377113430170739530497559353027687864597672187583809974029353684054688294897231833303716395148294718173517767112705589767550799225155446325682593403369949199304624291959559334296157926646795391105114532542592685708933103663599148290471690567210524335632401653579923487457414879353293425103115341426819812109995954800163029109977716624135549886285496265279029591088017874754745455215713615696707415191187039726922808713394702493178846219909236924318403363357566491099355582307259050885702075717156992121975659996434778062824257724943131951203927369758170705790434329477366847092333870908211479569032889580636380874596843352629042732914915707621815192394302912553728662098102321896794024851278785021045321896817912829405442512544375495495381123142752098001265586454398014023869067171755462784550787731949149366023220122167354898214833914912727729582788348086622170291326439564004386759241897946146234655562889614869942286211443913555019641504929612578010545665974276857924399336500186593284263669865900952367425285612919070288672122014493357816001157342276063203047092080224872849710109866134675526195458532275695227050296944281548150202722925512656484750749045321096952936752707929616070851265677556481952538085799120874026237264062543991908157788791817422246015478438482434760105310600467559594129301808785333573637848038247911939032908308324128535257515322950799330089080575358031796107951216067767714314170948114687963957423485083993221275592771962053992623689170310449864452795022216712082818433217783285545915182303978816140973308370425890831841378450903580079261325249863240365244298811208538352109226576939370193753370114551767331059185526857960953814281466308039667609108636048949772798385081582576439915461272965329298388212472439997534600496424735807389264080933900723765440206840233260680724189301928669131942480942907316373461933338237825374710100974732534109015165816876319358694906989673175441395462849317470440574681659340780486107386618401380098063787527957582106973036581105276440491898106671117379131104378268200964140385872699979999328874305496057881919820365990274576050946597451768703860907750118738052525475693657381223839379573826834525293265107390403829468710866315798507468689045589186619345198772071779851369155801451746381633461106615475556154963435446970595777485609068209955308769434838735379065700521589774924312756600907455230530534809029625814724962156603004237962900349258846762646194995591258051333046215121092206667054988886806405914745948391431066902951706357167485319344724197699074593769817541809114271900154226788709120086183798836884228893967462780033437336338712875475328761709898183476666489517902863360165053381136732276017445451275146984882799105973040212406982374766146064824142054560206133263727541524429715655573765753949436567494145781909614783251558874378109579862135029341241723972312650855056415017953583532539116651692595833824938371893651073123522470635979909978154559540896143631252786660125158703858172207838723364845447523731384823377002706599151110578894867536817144593919503019585019899380562096604323987678445581149154151115430460425055388661858716392635625485585533139773801428931896691832893796360600923526461535277943485555072746155493419683768007316992582285600776888992555028976126448214223319458903610776784458235243041260458978339528386000451250901892274329991571291453105506284595258036799370867564931859814798955392995326029871137414352557243892352640048647930156019667267598288011663660211581350239822977917251308662010293200238516728122724667138523662103295028449807232167483718158376695401526553718721335775802998571168640474903598385463741441748003570205153406415780083372586795667767143343478564217238890138053124777316878187803956510128353853152538834026215362481438845000848587601753273188550007932830908682402382421775478581605456731195912020742908702170533305885261792267414668779633684457780647582578168143863135746763768268888858964450086477703049850183191193144177512872237708923951073083395726600084850383155560989704653690505245613548948316924713382812305752932166956425779194147888803510625434820537869934069208488559814761389995854954780655425904558902500022136239976881355994681740885839580087257548818031399307244834045256186838421550988835365091574325474083051652772181610805573225082713363505382396501150700830601052997045939972295899437771654533047429543594376465370764819800645751663359228971551021951163909856241208570003174621620329259631310000537100241213674795670909958182921783441970409421532416521754298240854457167944558228823130919039512333517164203998520072471346055258326211949715565330248020568568439407949747479094571360384824138549256207363825753620086239976931935504614423727459094078416192204225046630071166918968787121096946780723595230227746942428028599431560306552053102064463205432818173028733566453331060463553705674672030007810327684163808638805339136933331839402321095032836001434227028355849648945593861723844903404156130723718018141031545674332500571459379717637385559783592400808258233013038945627604592268786745852850745123168871886214685514302492007039233046906571836693448066809534712901551126845271715311073711180537204608590491808739811783003927552147306167852531505803792720309022144987093146021573664151056909291761570425407179692691340274690451973371595113846896783528134419344223219758167018004885410915160854158602314932751233148864086259196559555331393514586031806937192302381827210550022122796908508979449684102536020177230620838825380613672567193522777538363138472377113510981015162467810748683540125579061779154329685168255442829224016927289757704311889786217062993491052216209071093837043845110102607367507827141691861284943570123940274222752606878308078464268346358202785719125133239963588130239175681005055251168245634779328792091296469892267900799763201936114290669417388511052984473527609602759188344539636313430166189266401258449017417261349300815117324670851137036798186236375609470343519404471496704591905505767841789680768352654654112374300417457429518732872223673457780280766174863919016824683085247543482132613231356648180915584090029192869267272774126831757931981481512963166711179948802205255974360978308947151480052279799129533121232526900574815878381436532923526912737341142195869161884099658811884818967476010771177519749916724409318005641649856542105933465947547184016911704733243873129657389901243393500673817325076518201617628750545567955685442800030901765687844747026227756038396656783565640197685604517398732695987573955335271519155020893094558919029662538825595692175719098514754680193127010822787385299170005593936449556119664477599113529449267722257531281636396443312443290487488422397044043862419393942050152123724567238084958686459824031660619270466491252778339896652493653854560988878761892197995163532105945791456943809726804449503396113256061565563752352532493283458233801955890723025070262645741787645886778876520853878564932720859630951849015034687424428059804442094875843426525774470517008178377437414250292766497890317470687082109297130639547512891241536962264373014969491922299799606618404558022490031390147537393125146573391933254325226681302413291651204489471003430419649743447529260985043631575582698592414359776960952673305605753151084935186996012737038135291966491868590892150717204373951470201366547409094539907417225155542811546186949517052525449198437638799167055827163864489500164666672026352688414498216850065420534560959683325744626390269063905343177408222043085223928539464302854373425945282651458524297585390654833628767825290188795630035386573689206841632977747180599669957961668900555967474822023014503804834540117411048318437148643358983220402887735530409566363965704397895882429845795346835401091078541478870601749470956984872641664568561248674225428325037986745335383496811935802352292604916997689532548745065340517489388830555389891816325303272242439504470735481511948042351335721899350487348119604414299401522555289484237093819851097738864754404838199345112711600899700297869509873114261139324917908715366722035743798679340966436690417707990725638702555441762678074082691533798215965012241191315990436454173911183121189818219527483575838469200090244770696831372460027662739911899990239464949105708317001432928034324667549228219579826903360260599745155519582386358494198626047513599122257391406930730884247796056316658826554016235634184259995941653684630230201127117696509764721407954182005150264541747415436779522484712804319370994039384142099031964417260201788441937553812622989982931917078856486430559439058788332919779336798180041264335465908404053792393862531005464662061985720092690873534844373258630847375655440428059719334555393159341313010290646888488079245627506181880186548123113607674185218313305799195774887663524722740502473736312900963773594393209281469619972863388561844867607959551604787850530412737653988687443231609079987868427042802157990381362250378970439538540136064491290268645348233751872136950228394237407037829434237655057275548170294842156143124719840826998560122148823754184207366397607556266071084010400338428998350671052914456691976055702841124299173955356523323886167285580029550344886985653154616733737217002196016629047450389121348987003178300869700000283161743101358231556200502837890456263270749024520413370886238354672878534501913743723708700178125317503756371600683168213235336443704107574923738858173522111580736554928253828234820872273296931986963728820235975643526468986562816643177951548228707950437056941933601977296951796737608800516382517927033828873663576040432312917690373588394353867620765947415489533631990255482688075325273386303204110365600743770711497016178404756255779333156699778830827850607911178094929259499796071001722415201665624085930263198042880528755192039578801647839504812764202736616361995912586396594060417502495652740058936041572779276319579364836685203657447808069582343266898581549719871936550337615820741814476302624436822855262388754353763339518975625202130917590174614261232712931440014832402385647273317381360204872208268080334730472699002928237535762018598341250256370308361684729032891014948338627716716256303925055290468794033795325076058116802972395992978850268315828890109386394990039330621777751534428006791031335955967919070699268000116629201698230494602435319805523062520311228208052893025253671469296710922512579325901205210118027655121905956018394070540464853854833864484353153641555424207819217457013152619852114851382120469503624820765454425180139588474853636417782398753296646353433120203702457239754747609738252807337108105023022674396933646698102378109511791069324922164495993374927355080348214591851997138045695713268009804568798033273898894801448097838279080033163384286464645354754739563976450576542954747500588464602053074563630341205841875310474921250848980651988700393806653872603549284323147134360268966936569910366268939691221061094218401570812070166466984581649809565913868476007153124962745950729115943791193734320491668516490385949319791319590020697573724472652867577640369125917198239570640066751046647666235707689273934439832620312021312849762958270073674156724118828991384169276242615476669434514822198924634040201927479815445438825433753202647721088568849764709364544392229502117800137174709171010364180426374655246046674724736184778858045714896674591475419330863143657142991497245190489039146383770795331003132927547208499242293234448718283385463852341916076381296099285185929284790102494938973721022666125030241019975064840691510646179748719129317910362798519547288335421691722029799765479407092131344341286722793031292702167675249197930490471661686039882081943005730590732483771026817192700035244678962377304847971658764063307250138227486998118766446921236196119909877988454143277881089798587358210137614368163430527625676679172596996089525999798182934038518365102848404710026807356088705408763369487231640300698491979134171383557311091144743394341256883146850443610404400355972116664994540489292379527987696064874728032105096226826717059041250306339243948412237998547946679374963224808262748783350342843020032354030971721455754852876480998777811124340379853181526148764533873509836029665735387580861035327505865233254521842676664491073614220780593646947852867730862068344529253516616254992322865111149308140992613465533012273294227226436108844193835226104929145539019184266815852245060997632996899016014529109945383927443936822247154924652099340133360539328263341668476666418610713417668377964992768361225771211267438979789823341264905474098020652642148872047268243324569541710226060306602369912622431035073673647127797729425853770142233530172925784132907733583222032677394064177640973598488093925972405728049618084137837349951196939816725702282300672613172236559250543348047581225581191510730412061643998477903632002723674466649104264266560939909243742391086287175083665025304272814386025735692104627121743091233993413594658862101613270495655776957596834696137911188784637694682841974381846333926230334527021155284556696177974792878446210740749337979406472079308270977501989584507013454307565067764567036340952395399101971732424178181832351678956228698609707152157986838670653116144894012536121205919058903906082371386471626397890089631762822066032199957168606453291481321764750911056401817797472164542426453316164884084879564662669894913084364992078966803280578957668698123864548911827353489055606438863842227950120633891817861067654313744862220806536264436065977086704278468420722753263942924686689823331937967432104824003803042924660881102595529459979670778488603971645554070539240083269632063194929951040077325440888081476953786645497833342877824779560425081732724901526910606822128382328215059664876895221254617575484525315365881300769304849166108965071394728812740335640146138014219793840515402561016759649843000384864395417338591055674231254575876460427046603679925909245845339241438696542939288520191096721804044549786566318705698230268150232414479687767457967411281774099579895106471628257084397937302898742983143193201523286018651514125451806643564810918649300198421875292897233683942574793070908704726802469899358357892293825020469437761292426336295325054170754145061677800063378504119114309342805857151479654302836146670499884434233506757141599409468325086038594379387593593325877261794686541605607900430777199765787246147440419496352130482828743727954182241231570192480330639511105060901431543232125432294576899406247496271390749729213114248387809029901290017317806977327903057487266536952071384187621705638757525882757104392471011115345199558678711638687849525539383903761542491676913280829058425785334062914315389429297445728995909394841452717607045783322752050802880126530686022762342590269061482428251349964807799039228743130013954994053516370667350138497672884913681215245974995811441950982134704113762562170066921645168513488316675628167618154882624511762471173781781866110810469034713445736475908135049424977678276865193890752405932499572713236176640899236182420514133660457575863511988330068145458387471796298327971962670847813012771267455318301110448000636940328738057107906155463990213551013782988926986049328589904797542465254013907995055567921415115820197231501076511881444585031813897408230638738533605750428909629602046039035826850482757370866630526231497367327556116232579831862743330885788506853045722786318579492156440555139340594242442533871240885567237437895918677504916820071535719868084060432406909063687217431922611952171364559527384243490955330380334379593987660273506468795565190303613182513199105517365148703919938854671473020995394798052066644803426994354154861766959773101906922273735891349898283742720241135387768981970372076768037297631073222372920176027729201197723747236701911685745201603267396511837870418517249626475596816167661396298397936858626044567611362919327774050470782216334522069691103643895099168137731605991289978109884749490207617111660223649551153785027384269990212350833279367118404809338995343651027684536645624489543446340585064258036634217486192114063637726222470756132396198656109977546583419639783096713760809690575602649929234945321780867574671250065760834415454750830189329039849838108986944580022802986468049989745753543731576623443598262387026704764503286831785925497961675108521654625008489706882520120607009171811405584160236879599349711883680067169462923830442614320111960299037058068999156007412268470654503818170421885261357578543727373368547700315736325523553651897860970184367829014125316399578369435752157034616784403838481512842205556416423637062248258135556425366096676697763924495951199694343747066690700257906296474644062294215603767497142867536221068730642439488861128020739192278131745392563110312574483855432764235491680725482608148704100799620994033109543931776657191229398754728505834842058533139911244598429608843865772915588952451920737427973172617430561897145371621646200546257806478630995046107217005077733438195542553589676365605391143610654453346806877356853696726528609499636719322244957319206579929132725897186037379719263959414544594808541727963464214575411986933385100757417395310690960683911291350774697641370683525094795055668647396610108322995285468470885857969840775882698684676848307052239900903238037444715559608284616571831739502410405903730516387303014563931243256106488345266984323111715780814676044512131742753616058616640781422202830931956776935150475635096091384171924076445638954250512410283935500337614301174029353554221103293835630635759377082901714780588212970647725516225721172130356220868164291021664809820000088181735876578641648703691261596523932152445505614620105431123689039111012924626871873727223970935151375248894714304293237719440206219725658845849186916135395502209381010349165081751310644475389222260624734095710940950668607609984026399829741214038659588228420541615852944512585109062397677441320710908707422307856885119995602179262148676351493383381270045908121184104479867970172702131434118515830212675098540564578632064897780321072739999837360685957535793264809081351210774696699778827765633641396923008670418632989054203153946183944572722787809985890875357393500010811689648448288362426477996024605949269263039845468103594209740796888609742195736386934719663170311139880055764580533375736787805523119126695739014234797731218400662218094935405482623431431943499082235599088794076042951516027270869708722434499259873033162662891683707740254090395960594365045296703999607092524354774722880935501357903668981460985320665461469174473540574086556200726182185382578415258627748928857356657071946139827575508492195845043742581525004250742775571365778936984231261948530612690415826428468510310775715015115597909953308646136588135548742062165487694312558822028229916067770210392041695424557946723813496604220435315068678516411510531479087017114473780406135559797001125267920015214136440490430335670371725706610863132633861973976680959640658695278069681222476061177651254815929033247736875182689588682189947558046705435250560799887881906478443874694425779226619851274798270847104841597381884227266786173443608062167405109950994123626254454957287265849731764648271417877316475380455858609181016524748965433939826133528384801531679649433903514943139483264249518212953214291898731888538989054895616351174675017629977545192542460033589337034091865713193803486877013544562760387229611643508189286421296628454324742385542658122170637708074584073398565433361152823191537286066356590798559540712845858125614366600668504356063283443439312956019914166267064944813196881877074809590658090041668510988188650456638584061838817911688592871458291312863260123162908595074280423702904537150096081925072183412045678996210387322749921407674711918250776402418073553473860003194988145700837173945928374306402493546340621469067287117615175047095018999586316757689384750265390780687942622342755628302673790842986304381992714313093521864088506278904758484616392904036170424217744612872707846774735880793181250559631836957326655474766797672839218444951107842770768880329464496510484598981902610973057278646376171138952005886568865148088011386908402641126047281898815767049512541446740070628936260213195382906825464621839371200547261989137355244949938223025934798273604926442983108365317321698434318048782070831877702326487658752092241658717847684678739623909550557515078900351645182827645224345326554565970974410388936775504491810806420488385365336105376477641266951945686907493888593536184977320747238799017356935671864644258037133548389055061616202377935972956776390364905065777846904581118498807312020896572754893969980264160972633643106242123875187798711884392527020858981843598718190506814556926739620393635613673773583437374204324149396373133928595493970153181942598710274488322874029708600168165096570935762077402937899882006050454943238672850223351093621633225389195238794298685155323163191387452795224347933124715585164305254041062994994605569618720644436549967955278865443525406459962543150042814956057312104731746258827977802167261369169709039316643348071565126814041694615320169652178601559188315446154688671341208294776914859376694918062353829750942947733573439936910576573568953222053398636700540242321269616922888949413938220480723236701283820070794386375262079043200259067759539069858665102482562224847662498454956058602072396463199729499090939655837043833203438126799648080333906174900209745262342390368997472063242406432181364843192821505430472154435183074671842064475247339881522114177658360268084503936979265548918121923033233242875054570298663636927972692026296598154320017351146199739476843826775921299305434959711055243302039468454142707363958676552492543784289083241721956256614111026193552606868903676338615120420441317717912061094062155428448405860805610831830285392931461678403801724759468059895450001443168031282263464692647332766863676723213526731838584069536590529639635692883529313739289852379378386191618853825034359123370119273977322371900300320473311746663718543396088136048361399035451744149070928601571412891717107770788733359156761053893299857718536639587252747745464715048690668493607058258391015699619131552056041046569677191978396002965957399588644014843191435907238653726665957272050567839051024804045807888522607575657781796466473153151614189397592448006576393179523475114963472048007975719468086508025902587936385870188176822000513122959451778329081533716980803833609965346914056933570006526446867691792930766822664685410147060045167690336133903999747457669100914613259962405697210916155308794008871350137913633716225484546247237742193368110746488633975471102252198250613391307111831990499968704896523241622065899882334225210525146500191292973065948633527249148064191902161689233510654936990897555083114844101739931161991966449855568372575727883654036273899149845685304452688205546496142315935382771282430253564977496474781686143538011096934495162415097554709443143984013684325265314693286257478449862530145442911390335907031252377269767301772687818414847371011136217961294569661681064181580407521298574401298600680138373772345371761732186055484581867534446997993528967703084123806939141669521435692531811389654214688788990801827486002864802976411712918915974826710003011564079449041468784857655326645623954600762116247974298318790125954165509599506206951307022883314661779075602915931657873671467565452883863700446159662999815076989648035298976201323310448066986077581356709334814961457448419237896794633143325730473854750186355335351206048343576260541362988797961057050361386811523504731669207461561617696057115829027867587429207253437838520461527289243778637116296466832927717907799051806163863856730645341881548581186381914379901894581465795048662527515756026293222220844469496833943237376111641662571359644889688163173011434011185028593431338282590218863653099962055924478185095088112027751803373450703934162762958593762482243526602649669619631458460631330952515986417472193644823537160058439294391036007835524351115313349562503263574780158133725997085210393868985784675612943291957513102659061149927044857396540851837374101911898114454204145351814706288978731662315800420240813038485585409929674938840853303967015955536940433753455850356453820677529332417104373869623494895155963688495221751385954178812141909779650698400580323570201024323696282804352271993206443923094774604046558521779039498404370447831922970614526430380634252753196605456275667572063036556536255956822556492600509401108462632117095579088220014350726147163635687571094955818493009656528191439216584321491209499611851394779762739657757080624921728019298884148207469797774718777654523672724846197484432662257221776869254259996971334284774412748331426007449584835323354587419500919521747724810739125817090282268674323198502376656506836554279663161754826062408639148577003312804214356061243858689443094783276973030267005127347285761397107815604981335014691755811325565304936247687947487574309377155954620733700213854206968610274151146735352534414928312147297214007946996768153757255911385143074312659608558388452759768630801037900945805333280755134838235711095088096056889167372559801882438079785618339118151875366145740272023658792391981607943852391725858248054763768044969602362153635270874035194768652913721768767157569769397479379872602330854627341206077542103984218744844504199655061047351875415739039819505165557757695164642926508089869379411709496781777651068536410326915208096700719402364330983071382342019406892933813890656435636595400583908051109478815158251146331359564868694474858453756912214384895873249383867143363172891447922034067147224980268922921056690383559301013962873891104115951078925721414815884299796739881072414149467486512911924233522295165202457062659146749571286462981047421339445571837651183898478466128164903802789213759101547669467509240987111974612896384234423052670991265238722531421710535362243198469793182219756160369893436344123662214523771976118527900582456383666112769508493609776941004075742264689638717363206769261062762536082035724593448452956518672457659471843196668849443293342061195305158194180619993522145775573513908129804955441929178482195411639899246808481178422328561127324764937031295249768015137403616181145026825728927608287492515902154958692276999270810217875008399130990130599938841024475433743055662707043584592609348260486677758203047637176975756556408625231783862827138477376708586275421839086703028214127049446863968389872673212026973687438653031156838346579990995236530027445203519857971489693135594751152123012440394489071134361050231073544490641277308758002579977851098028109175581151248837561553204610296859701242602558626740792631318166483236398867934799391427029711607537939852430132741733797321773658255150023375685034521226359447538829348302294764941920910343991683377253194685487184616183701704745747480762092197707747618544028678132436386763653624335075254692614291121779580627748639734937918739972014216211061310187139526856955604528619285074910144163233578770692698790103107562176582355687253233382200196882725186820399940250849129774749903352107644160935321317298667416760741210507721236923725684173281221080914552199397182919230353943781029110152217303633765830612143314371038111493130565907237101929126747108941991953977177743069884322761251766857282995320067818033741392093308679936434602809216288367192786944473017295561572502222505126807069765176933012961635000048587828017441191986509069221495649166289216875472459088078375714250039778665988198623066767733494792627986676215258101686407524277748963151431517930727167094702318228990620257652157434881652636665303616106572788518006076564246572784081442682175902645760123331181312021236981112769729735661281552465849126419949550615446929002318188531573241367596068684831708899587655624306323777450007719647547107760878445734214626528991046462407620168833826489501200967785140596842798179663420358329021966435418234776629222878527814629311387454255557499806911085222751485887282398968057036275061112137342123201366941540575949007587299863293984077990468939268407562953231813421884352656759574776369733218380947136109473193886391498093660612426226938438221358339199829186125332909631088052743122504447906235957427483419003319256813818937215143804690423173242036286015022791290710077486976863440098046507191943074891762501716139773031718332122354953273767004026222678910125816231160934628341680394072743806738067333246993205810924554149908189693146182057531820713873120952361866620537926011075364809989511159762699063488076165496898097497984226709214831856219334175531478004159734258930310511242545533995100376499376670642831801017766385300841370355415204227285053326015319522837560805382064237309890207993002626569357675548860774246940163803505639379448092058383174279106757604104445056258359844954511513056042435128388273196217325795106296888331125103276841476850798317391750261644729478721509671385490136368274324067992816980393231163100404173725469789082676380290542693720576973641418200641075660483863197911765011110230040188724819975494222862091419925245658740355500265943587708583049472881099414344793520250493084826734772055452696815723301096790183619561595260982705319835564529730555545149895028379255488879861688528974943245074794604110821509266937057133191176218539084609590928773468169051979818847784893179415844514885253124502665061604580463689316302346732630149017846008005389394561834165249974735822574395957059440708253146091816711326480664337817793785123825820565906315430603390830351771176142293821787216411854637556913026896074499638770982031207241440934862093991051857005014467171002879420271336546433133856940482142662032716128031289280996532385139482684544816844127029343731317251112162869114362018955820443148665326693699423374832434147737589354589965406687492824519646814217039571969439908194473640947119466770611037254950610518049001191749930092379098162078715356464275295325490429575476793689526131632739855787269863489614733841511391467316247347496933851595444546824847975157830033766074782231034773695006329303420154772770619056951834886301566875520547805179797924365984406701264233392624958807469451143936614249200509883454408121667318632556408980079720824761337000111841195188435644177764296067968335293525969152123404865472715718071758488385447557819421754304299104577698464885750598330305855502962439561341923140676734697184257334717595304855351689322832492230697506034664092560855437686515529992431919330983266985512490537631964091724622181220432491566563121939534512241748605268624671304695952809134046690135356267334452535902980531559107012963324688373554357313041915657533889789812731636139838403215724851924607346357945278464946962521896931706338220840793090121383796658774593326066609482176555958408888481014826706887579806240302965861261363614644514456907231742347164759062344963039395702691367616168023653838929445316491489380793287932447329849128793902971284125629651958421221405145025937702560534820019221893792906998234385230407427099853054259928068615295199709717274877668003257406371388622347942569489011179061361440890870942480048176179469777023542690736573686012139706246963823350655688789885228895073845063161713117002732611048084990658676243661307915527081193797797222768406500190577885103133527951917915762478885914951519699689151127459685144259076894972412245324831116239220106994716613941200554536697964232361335411324768016579302348049960176573034172877897071019226800292263465236785583552649970637043357498954962760396829165176319834667584060535338888131009185466584638555664245408356988295379322086048732255226618947917118470116815735475462190841143534817713701227574427887161294138875261867849442348245233058302665335402341173537441489474726235136525429681025545591607142250103313646477551173413704317229817982391967244169873342382277989226044917941520273662283381641121375694343602797271602091479132897011033842935043913554271732655677636876526914662125802915140708211856978595605199216416896276848880367034730069072679660545253288661250052177924312076612625755655714222295821511140320789280553116592086241780057698788183100580603999612917815830087715252848965414224951717650033613566466765085744112480080327493914438917566756479207678677282566894166812880735969554003278434169636667949162193432844010889613291929952079260536950601955823589616500361963302627001462862003026739337778115348350557695353544133814145693483014401543781400599376532884791371719325878542594718508040762105870194288361398774550560976699976555464406954420842247296375619839961382308331345144396316477776659700984257842618341184162723828470792526835413356530670694565079962392562837712727319354478410584761225240057748196549747971682519514315810402565756390854457290533332071590179094798665600168971775628165484954038521594684016860384476425594899661862478125444124792310925520074148769312558610186710463147530904840733639887685749896436472588796375770553044194338793521596606458358732052488279509027236035200987209153926343939757052466070678151461051267133983369187912126334325540327571154339622680514379800032827882138083021654097997499226299432721950547828729068563498682466623995669443412847876672862915626386265366454061957606957267873038446423806609550151453223646866104715047826174749822666088708731794354900978325458026692435651437701116804590329148493122293780254300560343962198295013161902844730864060645905663846227477353158674686361302425322742522244542867463074903065898350311592086626683647526733694203052314056727780806388623844425018979884955194846687149341681744081743174628621208429274825046222314566764180798405911923886752988066083704513175633312575115830312566698069448861665290013140715247975207176747368665380006625848985994920653926624007013835633637849477954675260865657607587169571982199592439291506802548783793368083615880701778390679709380263582681493633930858035031135254689413353286303068595827640753705015056487530120253795467227979128218631345430623646563471959012555603989270368791966924714304823128066058197297435550232842097139596093899467388870569432724642406029259745526632730603335993890480742105833896524205785947980664323057030213103290091545771890604110857765928223122250157378133265285024470285290456049247304122563763351842347915512646491932665250140198577975694203239413760032189788888181747992709360708968443540873209850498496857029161066896043523454144367699741764959416048665655741617230630993344422342935283098011263669386288927001907303377472833545335588813061315242990010913662524890870684247685610551188118571231029711080001740008360420241246070237330003884400710996296382833670274890384561725309918750090482311069791105982018855888162329342362069147812656822712216696043326710610675452055438220925275582917156629842563767089557601444482973724407680923731927854510920959606865508450155066770432131267802229489643141064437903574366177643293967871642987007442297826964047997496555406655617224144296981274655781173449364381415719638596203883966131116838442800952824925785027690050755812402694485420807992649293952096022863964212415270691557171545218203356672366991156735428596194716662762719006072598250742017526197424466940026496514608393029883566391126971843202567267538908050907767363965725059812458073413303505350740682299501342012612953638203579029714604108895886646920405166770698041242734681084418655435070026154399035158820947791308598780989269694353900086241216074592440464170290250934670949084141558887626341667644523452150073732906314900497390855562060817096201144689299876470239661205496145727258599004918108713808502726879750713890821278220497677251519980809107875121727089987852385810222484298557373523319664726162465016141983691742292325531558796303265343522392515749160874700104380691987523760688941911083313313647117334798785011646969507831616485212268489784238692025640675783920662133330315019220934176109661729824174532503188369576761857969969780694839340061406465047411359502340446624016971975063714702588121658505156773713163273129976265652692182202903813405267765474993383663481424886619542562037071287605472938085049180105809955787529562349680363222274601713786254665937792599235070016465867783755374637976099146887849437537653384156367064486435840472453121215389142387622929245945366175298850326342196340062708858233364000132988356156683098097847251148076782745072341717121269884720377125320791014919351356738547720254861229247285773423740167475014652771368212510187617655388817935273811754605554194708437215252613890109449846696200622055614332186684152522730100049797674024072983965291421019439599532408689626051558014075203032499129668770313041777200497833136600904209298162701732392741049575821524549575994109827977152264037606107991040817704292715492168713990350812887174606686383638693013348462759193530220285905388978086575761869378256136630375405058575570951837683426558464781601999183370467372826151002243872616950360371347007002751738280432977531468581099476316875476515662003148501946568257394150673155894044416881653785655300653599741705029139616321647790893949724387806089901443032197243210832445451575087787713419600865759630845639768929040165613684837351491566064913567355702284947530009983863478123256181085901996898864914526564164026405290364239656663922556805856945791427750353836489662594495630733599505546526986766775468921522134329731559203993053290045654335097410238847506515567229563157050294281206882228974399925199782168945485415489002641846906337875789844335342055944876562854987437859451972229534915055119950028656326391747484216336709057505115763895927344915802938678550060377050439968508040297774618636832915234882638247324974451246793543100766901927822521800772603171823329825016438786500483537848280119967133423809235496699765539915820728033103507544925145641159648637804042844772622923154680235946921868261394243553747649931023760942292858825634605399490313672724592147461902440822280680431640376093804062820855600459381495749291808790022145129682623622415667661353596957886124499099919410791154730016404313503753292937479591105687025219667364133981437886861629085096501128686257504327830057238253682618836982577073733117785141028462457620721449131823424719363341586669802946963073494184737302946887589932593130547361384540645105643098311273141645356332714019008613625433343269656594038054235580460650263800507435776932021460376416363531555330830726186821371296515897578742023547228316054598959251898548143501029070400492545648351155062845894973749061640883999499222081017573901414773423167577051587846544882613894954875678099616102369205724444740947073877016445466279896980295039283946769889057407784081184020475700162915368754317288493104014219133118897545145636996080687929447993132799563917761314387815996342598125980790581943218593080086174503072066095369446453976590141122635862798843965269119909868497569960413364148509384920792716009107864439650291974928555364722070017764702346049757391442584328002378154095444995885463850669318941328511259375276215372849391097519046855419260688866061949640835707399520516135403998030800840489761746594998848245267757275862283342916958568181839806802660483873771464778539391183490165783347518321617544430004300229098145258534315719826300722602465699718690940321667290579162199337193307545253576371946166704241751097453521140088936993869095192535272136033715912113544078693085854581192667361478466034648559230900028650394198756797308961462960502102654854097789371628606150818172810900778843108066608472981482569888764631283369979760891919377199664046005689493918524498866366958884438771078110630509255683607445570542046504603156343865869940604557513324493276099075554475856280423353645632467956157970871312734733070305690773993860919893593231575236738086291385593368610474087864666836294899097600135127042431974106573266317502484086667738112110360206609352672588198119494621444099865284382468469148303954976606768643012483799461286605732480553302562467085355204886590725628539687104047162860666370347823058959678742720709175934920802775790664199058352558940352836647231794358562547117944713501611222494185920597941241804001136835768202884014117918690356890097404391536304172773650581617101288495977790339238606433328599070732513863485510971886493244815609670414836154070499550207047376846353090210861178152564799035778441677533520797930526955307096969921318128903763788195238103191607290001699606312858147152246728413166272025739270584613772152109182728137385460897610105333683162287912288054658142883234681256280886664632272228195087127026737853048750261475881907906342416373845536258366431426710431358252752953849640162939030797573577242786281504026485095115098456426133614904105737170056437547504950654129434236640035583073819112338853945379993261894527069010727997437412394420376993070246632888674009126385017069464207893817412341296997047988743162748890408513629094673855889853495554149598198264495637732535681679352316760017152947518217374327953301750261599741153566123664482754835761988912941220269140785203285210679609845932175459600052197827535307819130678181501120257275373197233445402891169081919142030361433016984170398531407608995464355295165242917688754195945001881103447137709776303482407083967251350374387219946868047696277190796574024504255720590623611518833909046020155443872819259248428309894946372934938515686397452120167254634941793596652430165173231613533413878498987478669586631187764526275194448758686023971066595926516491686689712605248869512085339714515679249740413663252244543642233447756576396331030453084681794496120286162741723103264337881180332312297872043396105357739612032696079707917141067227852450176886605675067420151425475785587931333487725231922401402937336215250412682796580358484373464837998422028348321675016897072953830906246818853475966582800370694359487341758616877666554615388738632316412615824036274086527339152903938753166442140260584058550883383491109623401993911562950217980046707045228419676451523932263495826140315386110463370025109853539838777236415907391143867077472798860254655163163690147604027773968869145510881600499339925672652061434789412041133856037146338794005318580230412206021776704393000103537377888571257728242488528889495871241726280141422163786249637744681038606542515517791627937743084906861314394078680533092539272306020359342969464487165364181595877934441139823877223406898558858450432350140478834280799764049799906945677221413116512596426838677484136601459141091260815512218904676998620124010188764789680973429169683437204751946534743660873279676357313476452674729271284294719448141197756412336665686224061525985822386184750645010169782366832662460037683830269403942148064191473967404182473842239922795946920813144055607118830000866607443604237626272389633608236032335267355993498934809791371492797087139588603629097375282159609054245218880694151029828197903377415128822167489343093359969131366214837364753487059024876542537045114128404945042559689581335032513419840287288720409086220085056148860156685400250519623241141865352999547629588784685968455134335799342656660379387364120567025265257781819310015163942685609037922893888804100730966986970509029786534624219992661009616861968786532625779029576056922780730930612983470039357201617129814894429219497678613048770886172033056182886544866547836680705789876269902191460372334132300114916918295427709655363052709334524103427057955715574569214473382541371358595929490297081921852703945123920955452378895725302801485087628177122001231398545653132269684257393871140324985919643429632187344023608736394878006678596009293795184031453038968443510637261471570303068717849433414881494832960410641994937380456425806300914547792314489516344336084983202737085362680620669279402079437371889365825428041956557896687149560827903308431049020419281372208366987542624923780243665968131664937494661045203189865256848511808187280377329845829713030710873655556616616960471221771191510383638479525263560161729022710986059086641820056991066638455710257774376836599644964922194784214261944880335578707833407290341523241658274302309048143538993095791077422961664544449943957892642960014213547736783431871810998810145846713239553052853574415285720354327209356020531898202184879139616385704584459148116397073861379772221170132974051175963370558021381274128593384770587065667845058377647050992105738125102341582313249240304218903001779178938227780911055331876707905215736910785272856967882343583093114256034795191979178414336373643576318250872504668915151695830965832383775540587120033444196388539033486080994025042690837719562690706125867886483382046973529304162381534970292796313690579246722050165032818442592384081171998307006671304856991416904720773952328641794853114844254497637820037407580643091412342440911179069279268387506378562673199174547642431951435107786461023967200960667213700971949020455615523397633262545217125433914995056334491086703693531788055957548214261808368331867208298426430051579904303963509945042434645471504627092113086270314493986776143613850257635511657858059033709949440769809006850295370300167602050132839069955544648441609650883897003829316495154426707164162458101321857401491893097854837052029836184139155597985522676686968936752812975388608762341333504927550558579335085756821608958724850982387046039901953010437544917161499087021222712078839016670837861424080869411142035647757664852842437005132047030775077388315433624786559515042854111064726907464894739577082416675099340000027467775797305079747641483293627724330915174287029093116615379108675382747870973986604224895995708068210147336998783405634810549230324378186642869782323465337675668996362164328835694683651561494931626515883435607109775639887766895448435767001454016821163587491604820622345098263508786004513345180155599808541691242244088955086050525911841064009579646907218416002208005125495169402363454395440179996305778745704923301988463205596317131160406122774754908832487292547399469068309086101318407421638321363404142314066759211100960052270715402261143630937429150192148028163926488584386995593977070535978405768158377640248868537612629793225758982905677801415382196232372412850173764968026361501280520722793859620284988444566099726122553893431494275678941437295854363613541240065690775059286978491047870021099447541053908823701823837186679321695782902886606832052595021911218487646169792053492309647425739995716950729736405019694089066038225987321543277349047105312275684508413033932228648757104366468806770312348674610106568796808026525767511713776975190218462485655684674685696071583980722461183578764720108460114631944667160793942798918408234745063703373300095669374590802921013520557439847368895242747099757279576968613508030006576333655530758868389412366298220982269420252389818353747157754856443416409364816221978362125033293958093649053163335808067401465624322102888160698792803711931000292420285329042357497343704422816222190237175484630674200158700383515781010939407273729613771391574804215572252895161258894870316351578463109477003953649885626406775405774812486974460641917881499168912103279532461150705126914793203546562680289505290099345429877552455387784456608277464908322473067858604851776014506883705699590850101983091425736449776498360058295691122233416795725471536176947641908528956545949465803388683982417539477413392215349104922612941545610041535787501893822306599759903814960812516343600126882350138372337283841855607233423952568849210615125026277517943065679991480662027954475585978497307098305064842933889825848240785916503908282513609062304216030437982609547483256504387612222306492431362277268109772182815033296056125396325777899659066082449011512192355965088807693722883040326130436698599294190122207001821961361202083588951699765184389707650100271399878619041640826717588259310912151585217488467828541073914818533064545803452425433471801542034114684104285915431807418516869454401910522014741838207669291514150214421088973497361535925699159943772123007616674282145214564360728026725798035825385816564856600117554319139008809782249054262142353350267316209994799236284741483908551543650250103152207869064295910943330941290020327453413835040409433714883341589001614358871900418233175888012440531043103361525171463000168633881090974198072888408381314342180805864162515698576119736519086689212286091515067148489997895226707259556306114082970606334963958680094264173993838497693829063402210508179408761090519232623310889578318666368999515191050324507129747328766484390083962642276703938786629366912608480354269611875535126885145829474072287148239693525858039487728465629778572188475379675824650445021118875738894817223901122600842411654648394175424130506074068506697805199844062089280021042719381758860896751982021706327017024622303856313942596121032612187850060998187582678819083099303959363076077037961885468540380028337010512878760880280194181516653990712475336210734097556403973277642295141708033320157962897446682742433298232698398551234213640369905510519888641328808256816002734226824427577736782703558587928027107734833140922029150275624049962577493688626908206571151221011600353018468354538604513232601790057496621638473599551830693205766222906777741420736524250378423507209912642180725904635368368202083057607772629661064185973520968229994987488474646342974822416623557644162084549016383046049718381965798098352357547418414971544753111587384635464354206241178137131699121787484447139208879452712600890551644464041772474948508330581604032650582550984181223559412600329765383863236132452445836982951464350942932664790256354924272160118764291319012356371844143897643766163952201800348272515837418850788199836719850037266209738391923448529899512281976378277750165949207606547867146058870640258445462000903979242889627029712794594275716125465772539619157660836786030946664768804957868843065919797055908120838364408195773376419856960541570865443263671371775966181514040136346746843808840103583747573505004785177873016156487143377857299338730041619421354425499498892872700210404454646150119162793372946116344632041990370889076106461221038920521198165154345089376291180908830501515446411427882187118771663255007860157206365710785225830305616336704336196517722651245182922309362635512132546095665656094044126476503705198718211376219665592245791312029544511986853736274198180577216148202328387829713709260828451025493862972444967478083836821594664868406559657222458991316587725805360710629634574514278517240601447556676382448791113699664840572991198725819860457787367986305807056041453820745110545343597056132681380998553999579995125434155133137385643079357907491089595502913458749280627864191504350901841423578236314826415388419098423531217365204867830838876430822335928463819803570138123440378006354269357081530756004567755050561093530717805967508086053570744459626238646600905576360272871610312275131063412875159730164008354226262968487627791588790361679494395116933560780265470330035391629746198554319284933175682723952509598156395226928265104479241647539600763252116239160654138421730489654207811067863370471738737482176918106433199623765716157163638924837651085366771060839974192548384611941366801636568610531363560118746299150074906138467944330685854533056087083983327122699835137714135856354772219671520034415331264164207021491744683310751816568977296540357331163159304605017660560009603192823884239420173779523150583436916223688049337361383129834379473067428915141336121455932312820771914631112121600684949094612887007891640179183803640601078091012590729530584482372851601718603041686155693143167661014434479775656805096322080912105167489565704351666094169064078594030940652977934240747285150269213531750660029161786450760206029240711970493477312136479448369042506316957626847836426395193787305991410337873527510268030930246306325788698862700576692934267777180710145673705218823573428596332904785917085207860593588386303234012249779019629423228320797896641438486456526083887551618811675820538454443251280829827059905045430828796473698125825359103689123256493823388012838127788820955103141492010751326849183940776972883791576259814284095288264805520690070667918065483781081845354779300668313284471149982663618056403771656798997233539855127364377332256232325736934600341806347751079914161263450505570714350156165155227990929084954540719050385851951689725492115925031222409623663146552279717225009250852596477547208102257277261443928155479753852840828398346957400159617054889786985888832205652677336316253857446834470217635907172637332481754616731716452695779561479884522947046414327254098311682737562235968719461553531159974679825255829153415764095420679408653459029985587736247430668206753940039350603758507757191999460112363158513576264639553679316113501660728948552304283394858773829640685435767518922091244365875081359410203939268383912350465671647676576038173349414180799266566589696921447455688809329325714183587722074607795449945805174494224098234788143108771085455444937059370388245499738612884367314692634020193419015026229550463857422256312527019042199659715472084248857798487827848894237355861567997881445877636402227034520324243421181714143050402890261588263130704415036398031900615458225596012682438278931974260413776112303072696511885183077606220571737818556819134566193374795121607734887292170971132708707923562411911781131356138241669364387257735529769524183733795535587496686139361375890334955419863069809557956597450215767884328721619029884352277495673834569333122962169253999392737004349379669407192343360554724606563666286565903904971756085612357202958574513666031906865179463898852384105721288554909786047176554911341544183733402752127411825112950813374390637783194806866374780775889219775338900863489540139006998692819653567603550613729654876513283748122479126861324318053053542310089212256489460634705988329214996465590726742508782552317895633305633323599038769219983958443002214359513216663541400115145715865230391311248435207583187291059456013602768123304247523323303514158113942517586945293602547383984355451081814980036364460699828091860911700090516201109539125776056709459376721629630328562570329547452520377395838080130079891822025242463612474074140637440254769763416959430852862505598864597347516658023648372765214789340600831352810654679298463686182502748082741756822564771432291448817282988356889653800951901816343714462417749721024671961300051250319168859331486620741736710716658551530622116894043795198723654327323646274943198775813609795230237354600133817932720107648299226758383358302052365448168088444123523234893590474356938202849653249525496400465401112927077051897065618494912883009694044660958790063073741503681292385416796726242225451404095201375158913466018915305292046316347789553396726181677649431344179676365744586232719748259007765443630435505606762064484018412976106492323495379489646200665494781444753076224926928863672175841266832943068526469212627337624437483372377495556443026879112649985830222452141561196902189983464933284332147594689210698116164027463289732976234522269141618330214887287367009141084410079210242948232025811575393304884205073848921419059195749494659867326494655868210555375300073562354465526743292648330669767136963677968153076131401661464908886540224041343550815302726114222055226214391509410135607023140657052983736874068215566672373783084906958310805548814104407898700741839766112200730674398026280552941478040879289358407898495356265374811744506563399775783086893682986389218446043573891583358120352420104961780822629754466504390955509845656078033484491638287079579180677994676958771846876558717221467933181397628960275268725348615581200640731360843090809347484251294222077105340133252486570660037369304829575869193499288173342359484369943424984193643637214203786667634376905271436819876351568467102657107416090113247315003801420642284014356951712784049277361609384733937479933290163552709784431190258787519150975616686530718909508110547604164614531937848931461367505020796575232617647801550268107619006105494714020335582064616127056692437937965279923484907502450185505570909039111416480672282131603475560303251780335333199495381447847628576379839357235237707684403615935017731851179193064634015107166483778789085286865240274856079232494263193705896977992236754044438737462802971467962679357017277484376088738577544039739647934858662876465770942777975568830304063050663806072159267426587105693855477146712749217023382319754116702090091477168032822238809027798049733576924183159698495002198833526643974481963895305570141669526984354615466050893066403594665421731238482885607518832945527402318994633183523915905997177283566121658468189717629953813888464694265610941054883784221869210877644660560303967176876480285834102025896365916461144231850611115654855595128006461665853338013245545280271520318782431189577960263677384689652814213444866308711530413845190298463084297929961768146059615559550205634624454179694195866750504601599778492068127124374330529807895171367896972900049090539461839124864717014113063641272683009487935633708106384725464943218242422819365900414086814880595022045801527113484596357991066698778521514247895605910231926902110311620889872362021574381733903476309493049029483159425716430943826802470694548494131962631646456664816402041110146107367034603079379101376810635742305853691435701677849880884559132569511096603386094782419309847082585013915872892279511633338309905029381458201081602639743575638557746522061483217421648456949802755368951363981759738903592227138697525014338158360867564288824281237500058514899862516449104798697921982976098821201232007342329165864111204566793159628544477827188419483399546438603782024899199634071932250279385916499697672106964738351733154005245954901994173689334928791294144641061476207848269779458408934148295536581382790419856982998029833436323506252861243905900579742839343873443904173517779737138055997688453688215810535454227531272194197409524605853398640919530314452380371594843498572925941056588331365250142973273752922171199128726583467383498393301435855511642824614879958445819361070197991062927211145174724378188812270010855669045450007215808694556849998616320158031390177366935214438576952358843834819760548116404413185105437522070149703263122784167004914507414101533745886797970370319047094705762317076028842035152268478222316496802408118371483034429772455752160792007458874849993490466385052632015995597885590158793244959517216471977827972667923412182716838938216619492333483598554903732501241384932883236869895150904588788709054036164121237372674143107680931288104489208372224641171585900228602390598240862604557624752321781772288322143348413242069862280482731448473184819731062074599958143916403303326313516036615301456363791804898167528307050382828671381416567779909261784185710614555357978482866093640544842075084379174604328147349042449962388524333979833635883850497850782077248504405440119561706984855068908130792053588117882200281997862617547954502824822833399523526922438854024956946553185266595841530677638142756935203727368057496483651753588812432427750474520935762452272184095448689834197171768019585734069852146742251294231182738767505984505173989509932733118605828490631266552562576819712886857612756803964911416220186665190529840141839242700976959320231727332656968210333469156481370572997171317038792719389712084228713578954218895453844986128889643318171950065366534082176317958290045867816489796382831761090984709966043043935900373222566163036439676939140197723157471496504198622458680428977231832292490160083292013641966537370499163588685195364579111723458971116470190908574741416538578513154091308973276535536445579531191740708342689978339619838685562414662397907287331606650112655910733270403364201044082809301871826685517278272350605858823322706347414555814316155438104188262634381332000230758174160649267071838318538987503662342496399157337350525430396915901536892923527591813005608521742295753635294784384622926419754331122780094525385656647051236334384996307445316004005642577502889278047810132704052754413923830996315130270836668773555457764194388159453767618138775858829371283548176972447743391742504182287740184825375602821380551678876752710420649607902090735175822880357877166186482824474943777776050205509058038958489006072479467472353942022960640741322761544256005552535944272771166443654579537096130152123456163073043022610012168601478506966343612326016494249557383156143194967386070587135433119139699161747555458380318919086548305877372903310299241927774736185642909220473625607946855633857197021040691921697454284746711239331880304463897629713328004556117171387774915041691166373011247139716289337656115118265824304527703261491309816634420563419152403912373664083583200390762225329415362868357594682140864929824662864930349254001538537305470306340695999250772440825570781761057455793756113723172018984657252637418148421354148086647092216094212006609494317520726334011538985902096924909324563155365330514598739234705693803289707271652488837159612031002286498839356326480564395067836284644438525473328960185565332584834384385816287599330708848107960772946343934225308650557139345303160594876517632591360102326921458415891703573058064955100957996955401794425045669248449776997169264650381746335258699407707389319384980033073806701759653719775242649763321533684538603467755723658878700447173116733808798316133021847106259715612780159460361601730624492576067510612758414059359624149340031946122224990710061728441990464141401806692892283078415874832310723560856348972367064668155860920271373456307009768300782013136563222714854562909181507749254382796180938346130225376776163350520883785933788659739473062112173712587701235111501002043272345728611020945121274570330100101832205231924262359853031824677822412572066677614643785745975810958151873091912287082903581902354782395184123509637749631718924913123157552729045363608335399017437949735988870389476110719584331390755226833015133503765051647688761291101903502313297951681826619249470265834615227942438906018540952165027423529531995832198586145817033543876924078915268454195234657923803430949986070250695940636226782541731898779000908905054881676615456370868146779432377655265092404502746351364111707797395041842554395405087646636917154020893794283783575896575349476638297621199326284751887475285938694521237560416276374938871359614309445688260756657720423085238211055177646524091413278892958856715037710332207079880089020941380384349485318821119307201520990656381651702393535505388559465457288444151226296830741737895629117603035515751536226815786183300879275333796103521198919857052061119138754736074674958070119177619908397027190785308540495146629654227806353730750683479008492853350558319764641264595887961327066035212357220117550720894730111314378413504151414162960453912639806588430100660820137455335768395126148017035075799462783210441025066488797241348971418174718216626680727929018908826283537200548489086478149963550699979206917044073110046851308897405515066808670073929050827885114457462622588764844757088475270357293650998209956394444231595578737332245002618241754855119426068588370750878372619660929366432992304942051388000770652063469930175243346215269227830166327121179994035885276522610631957839797845497475720857019173402913618275362871482944008392046144851273965121756002030769551876533985518823197271590221643989639140759060222723695649397761095944911653754710862540337275354253637534933409758876296402865342718902525756309196843951981709246519919488100314490149642866510695847465832084938410497551099520341682654998525960936639770938453864211592843591923518170660360323645116603152810575253236714692471445869003582549412109973539669485187926728706289738402468908916910362082077216000369346390129813784173664077168467439740484569970879217949445237092212907760855656927819601209618354963411160069224582048150948523685237363419559358125648733372354204557431198391188187274101717063788459371210837787871347098824480576626082644143826552858502081326682327314560269715868025729960420412992134627096593603327200542189875301706768854810890712214170082646062917027388723426945315621359417453158597329713670627670226921157977180239523850623111968452177893315251788408119311583721812630301735954532823415411553119589484269979538296407183949442599344557169772256275082186656584362406163406003982625347957217955842681289589047107575119171358798818651422077870636812013034217487536632688976766419757030313762445907592449165403715607386345491256877774147513749976040609305365653412345613474380634561665718993548692505938409321718943144417141022783942322904051826692562252598958311633031053017930880190466536086312630058351201988312150928730501701843334646746218528759377727701171027051478001251951233984248908787387289604131729630671425708668717774047039320559182443291988241066246222394618919772345867573915986271562546878336056359105546025126383975423757725923712631513090865829848108091449749894913670304364497644203790646923644008682922819296625913011350367728407363445771745086016276361422672433265459178270312284758022337470415355554967404273839553570951453127180065552732023765997267781884163068295374676748553655505309569366432132040447148021647242735007194600040123333341047166400553353692762267587018069627638974443963882381880459262127182560742432903306812559067629663454412357376780214803835938221889782665957193256185200764322295709996661929928748608504266841092996591989842103503644626351486912305201413243948205680386871505715108167132429533210404726411921670235071680186850047476540475880882001744079413693149144654895519068689212013511208095130715895187533594348981368819866407072930748420302938112058753080208630483410249741158629136218380222162007723631774644573602809223517215472297917704351774458047707497725932570041252358037075295796594083209150333166796222808693799025511249949573752019101402763042985818123961682121608428617962216957230709727188473033090660780629890162632406880166975994069573277078335872123320847324251845764065143539361829086379243695478631559466826283808931539854031236043062880672742694762537268134919668501512720733492084163015381772121169014062068139521529903561919340893305221095159801651305758809927667775160864108464083820478666009508840087480438132425696234386325402760591268889584823268744281746465253228918534878696216068694352226618561225774922874457100467603725296262054665037804816698005063298412154793592748078358187305282368464103949214395923948440873649886025097398917558644284345925621225392230375942989832722781079340280150341811077532661168402805054488424379913563926333356712864269590052608104787376656309930375932338236153688524362424042201063391555573694665033229491615419172123798221322069632296657313722629381578972041820454338265609947318538818421433333812805113135382502935447908327227277157252281919441969536913115220950176156165299988137807967611899582284049963321858946332114745682061575042081718707752207688463337453880174557219936916013540296669939420670481832632620724431537680484408179990230886910749429062190368359835420993169854354436018659026122304227025857483818433126188865247616545331935207064081569770460047408431797622483017030223281830812601544948067840277425218177353125424163726379023071417825536411611878537407545680734996263011853319353140049645635916519062610942866419582528827393678761419589144254225601679954095443956004914653000286933342534833981542476429847946865404873662775189918818465227185227865560393329281393854832164896679294305343071368143499996227023258344989169484858089497193907980825110440041136357054566128181566719212149254371315484427033158874376754320275685242717562624432862467718493946913612794503552778155863165308725646310279417822331345528532419516569585527026369222028357281412442834723111714978449824935687628310635083652900844417950931503899230238026296951119715765184534697642902004170715809076408658295872850532363181610858607644272619519067592644719788400100111021941239604400050698826214649765586240987679082415539672333659333913330153728058509848468087622903191938758405605775464190733987859311625340998806028734385323078382995020224443470312827031789576746242167860129670978730246647937100322159984912006710946849767955653001753211102049417208159627274218698254462002635904819038859380522756310105156998224796193917210040626847741130591675650198771506141002023691930078641975216448583942976714531987540426267447446777323597581267156852005237161431504810126745451726194775271919867191291698487758142576417977182112129298767333704281811681666698161023777825096949212544535190445523497786965073617816684203695076262082128671630685835657457113757553524380293095111811967792289925400699790633814006089178436836511301517011657030152768268268783550936658753972672167055700640742871915235217386301009903715410843440139394788263071521586418333988806915485455897453789826335467066562828847611250210621867267976162022975940974582010594025587185403552082274615326789957066123220724821741699416008385747040267921068392514150413338553590360366061642154524654943574907156855668315365767633185672560766025562078719647099707696326432637050027475271635433203618349841035647721432332922651798531838883511755811365561086532358158931284177155865956265550236676435273164837434104480962100677135548241856564078546000500891961267837228965160848048851188683276188734965968469256254790839800328946346477033418175955686393314335076260363386969764387159936983667504344645240722997394987536381489191846942313674611133752754426054677944316809812120806482531034356238693217306308209583536019416934637048817530634124592098719074531513262010612453863405658943208185738384377802203851746858221798695225342619827197518413475459002603966670646250211071027932916106077636415644949570714346189077700932312965308404543702061065731432983260343612231316030068424452225100701192661980570754713816260105788279097266860302592051386311046336022319698465017802304745709759665752842465922537366410595744730598968427963591625482526826963826056470745086830836646841287358359602154103608048069629949131327408624221949670872181354034817824095142916244867767994077050999488782511700904159954890999400905775593129121359905527253568727404790166703691559259725128168277647929661138170375147351319028547605787014261579605063395424701187866923067040705129401283063711278751900452820353574873639810604431940706305935975995014096224383798140592696326563732617889180621030420488404643412226677850063553983412957498278320989926567139495445273002693574948765041360807124280981227790395386212167524797108342894650490788619532699994989432498381078509257734833457558575739559721054182562569075481132022522136791925068335377812371371585399274729841806873303158094118045132736384180679229289694012662285032893206542011472597263266798353228295971870645695610362821803586280857320123666156902409497998177899445321543939796545151879810764425340964026041530492529120988166936004937061549008296713221093328993585972795512234632040758114785437014558765062282973449202323517001039921241176576774100049550298694145384723051184635363197348215959738720967277102564183964755222184994754512062673076009316305310304945897085624835269951424969923223094702263994215690769388654098886086667608504027717887744685424674872766553416745420431606038693089351425618924472759147897122604103516701947006248615476239078879450844595402756134874599508330915104122857285343906888099369870626674856399668724959597749402072490761120287689754580093957964904497896298172952648220131803373082515883544616215622098903477345566003022125649244378018075299544722129664025323458513465006206525304349446937040483606144846931427683594583401009653922616247747625928735800215017094368630611387939204072277201904342637689314064268225549587066002870088405994938684358302605891809299582218095052056125929963339410310622344459857281535753632990084828586012253887042646533457960061017466504006156635910306924830934626696561727601110490788237408712827598734843205120788216577969296729248238752827147253622772172453437935468628028195437146504914538955940564532518204670899894713503388694450453600627087067366605964324032562719403308181939885000788720821781626222273934995263885522731071535940817076322189374376567835289106713212640158096460381719980342305825511905647927128507274022831799894454597972182200853418968381562359857624381941535693714989473396948786468100922565880196425994885039641280595245550472543406241261929076753907040374996161835428626573001751789864369733978304244762232402826456946015342436864916727622418913367087669206966437631882320906475594604820062967238847140917770514543370943289203179749471942511839214611601516873406693853220841256828113100293203742104438282643861130480335268627882938703950412042419998526703358746186028881101726363458970749813046045309222254749847233534276499394593727613513498259908346237099270872344961625728670412459191515963050933988730365272270399871670815211054601487125423466557055446711620650080506807542416798562104009189356379836125273863267850304055102636225954536566975882589820541503333045712326162254628448643056756525863269983672518360277671590834994687937471783660479170162926682717301003460160968051607458557258321094281686786120058940858242957853544255930600599560594528703199523865541247378786583710193974250035652936135719360657113900177839353247238212025319192668114250854869821545191877700502776963890133012635009197544729780774872651998995950823566128974056418608944564483359755697238045464790434453723788002816228852987781158706470169247971330568052095274916449392519016271055651534912163595515559600606607015611790905906222126514044495224599120780798461330315475775238790693200860215594305851563347092694312195529095052495748597503640521225369517270700607251872586513291033923404464254336402717122775449743456109770812334368752210499264954601702432502914728665683790669706674819398115832424242161636435860176195238204986908886097155447600763283500623650841516907240749028130062730668227864260035294387454045247732793081438911965294723106097112106627820228082820883898111194151014632394467940223853380926355303963285891834314306973709892892393962992298226655955109458844849688897719060441613563826045710699780756294717665763739063399940600898682266373523767235995697477563082828828896479451760943172778755830512379456173207084814984506630211028204992696115416608206707055886592149215073562920869669077725181325637586340696515057596580767488329885526482188405742590354956153566985864174528884261379931474039637242989596676131499788166347419342775451323164895810123618299579770991062927590702782594495121051942726819318811247692332541104781716906447802072682602402194290008823624139873939527012219763647438344947007466570009920193572103393327135018536164969457536063093992548190327729999954342405116597987276057709837345833550190243952941224806882949805468559065996750965582679340443205134555250416540061311160361495860558391593475636433897980190896221501568113621864229281061933762265095046073021125956672933555739419313685182880604584458667931459889138189275429540260872891728213232978017200508967786290305149904586413843524593505980526317925865759043647384122543153679592720994653003888219683588273616254974391840744201261136331208609174851660703800525900418031117631058634535767320384056086349282789761430080040220325445675860035515362777790505053112683358455550214443453641139125838105836290251556653259352332650181894542703567378003372419523836465200603544849385417212840121130954986884608046773140343809646053802135290224025340968026741098704006104656488995824102373666660339848203834118791667175009088149942319447112899196723512316745580180182033583485044990498342416457789264263715127563435051718801405375172054509245150350122228063668717077226901104235043513022766106781532880005483415367929285998454380399046424122317415959379113283099895038777249627731857874796937073890755367648488843596239087733347274709758611087350373072489641520237597728400258184400920000689411021744793965126375812050878546150703604687323554599120404126609645888263882834830445248678040336457225006310845028303393300473172074504898207259027705204182181823113828239210803481199385365513023315747248146707990515868118273316851291753676207437784176958757819063434104896500703465671847731666947005532537345623882045951083532759978828013729439699244457293806569865476139830142083131981014524797134553519127803480217647655168640480687259771419394331584487978232874209270357491927453132236803466280711691693638018573964816266597924107169046090368484909839942760359962638017599375295298340714555557054592737221326332806902180660352678130630846914038938702446686439418222176604026940406510904327720055597676824704417335582427766284327554106586940234434599681989328221027010357868027722175894725444730241498367106746899335653021498181635449469865875219381854126873795835660515618466981160071979242927989019688046666258499366090981810604735809271328693229583254991082150023278340105962854784445325326367604082265870088158050912559578849613409166367773655925837917487370022749019854373608611082479279598810422894010314084219136875851773012083259521684141456915869937759277856637291371171223429533378628196452206085884795332898618217614863877754423957870520318452427622824782344452782930044945120831465373484896501399153291665920981937335145274041798077817602607065312326627986613223760868225439379128434520598730064182712181968984662244921354363282257836680571584693528021291956808852691708139642338799385165895784874047126776730186648104396419737664306322413120951058353012250681935468117518226372255515247931282451638941086183074796832723009121036879900085218387015387058102410877584145898552059670749575202593497524738003420278842674202093722824788109566732342876749082285762472559363186815840669129168297205689841949460211746736748275984017108191293023388736271376703231260017253168793856644003857372346633845643176830895301419380241991807484373622323279077476601166534122028700031526490218323702358827830248755213320861837141701251604303241946784519846677940716300182510873836071476121468117649762912552448837025253318678022821409636824826799779067419177387901325688489381331124060911014023307430412215813764203195046408035542566651592500709842050811718531511311639321686923929828324271055646776209939202879783787125260339374026462423639768496076392373075995929767725399381872263698762468149002760503154213228231185052126336966584023984637639086379630336012458700651440967738303996582754883519015196732354191616622685376903764900691681091701460009638905602967900054358340424480175876070637556036920241970655681022322074216034208179271309139983732847266182689791657275036929707129988623759775238572985497777501132524361495246814694441208500172064608741377081512950385385664432951016044862786163803777573143156099746906613096104325618933554617636665919389762528242483180256613250821173388946109841685057180355744965866467998088664510918949349708077767625834739736549064251021856158164535138352989853642380474729664790619754444625332789699792255856695590214443153201617966670594718177555177820705006405983262625427403434771694112357465431497089400323182015326884500238711068807604477572131480440834073964066192858987346114544515163824071571855906177291445310689957392851223955337702832451204532433312691666986226353178881500530113164618695606136822390930452158852208389928703699292414656845664078640246018933873456755688763912877648324565157205844345403823801977741245407507770750495128261255220266675747235601035260571593357491913118473668524280412677113212677411353820564698912385189763020759403693610315676426361914893338086269106636342277814512179408168922500721499600709983616578773377584572839003637177893924444034143414130771594900098882425937422869974523254508216525347855046227256037056707778005977614201050528168040858631931595034273411438214200914018236776589835822944094846395749090507973363583754229446524512275413259591004293052106444061732377801447226333594288163649291583532456738879396996075881785513048307903161299303327565220905617676081411841914452778683763219366818761600118227716981699929323891392108733037939382900204644686551167820335608373940812599180975730075901051235294565891536605014284443075382514014684023438413842973220096043371332391772306810339036252565523501847935527802511657114660049954730855481007945556206592781890364945167683773150382947232217997999274127550756598307372679404770265077857865576948027453236439336444324044732527384147602859719584851964358063162138628822277986431021388453088287357701583313894463343376015540442284193169124183980249179608709432532514927945306784468389637968930742729161892019609566867518910161319875540425596492735049159378902121506537660721409157575828818424610750965067109080273694989179854811493451394248956330067637484954705945469788607513672929405283736590325456659361360791362876519848064102167809735751706195018842849875839414596330375536231881267579545257970449473230507929165876206958302719662647761336854943861291274437620003529219530830161379363401224952529649911166708478710135772092233205977272017840175193329477272806728634745496246620922075978356390026107138915262592294089393891566666754678203262678786483257393834302454968396899654336005898703756766333734119733472495532747771844642547989677765807594946880575782476610751439027582569822877805649347976287476107320875418835589630137529154729727788354872797621196835996313961669618051176535977577024293010170560255138556642614905807115418138503517012849409157032466782087179653520294049267250746158046566186956264469742278741418350277947080076208130788094947182115271148581003256693870256260835589176101156252145107745485197763746152048887026497217567460353998510895875061154677304595769890387721976020726610323748541219848291257429500683966931231644417456264322383964902334886492965109924393309188972040807008143829037788653119991241542215467116203056300988742870921493295684442726466222953664927282609903284051830906750635916504471242992412639439656142535059965920383078557198644695914418199477244819913881588628645389550257394895675665123719139813114557790423255325381850518862362095975749843642779311010086817124701160926268614313699577135030993731438963329226110345153037305989388962100245517785189749512776922821343742622445099548044099640229419103467112233609120897435074569750492467107222366193302884400519328029687903442020369756499083125834717778975941424459582411893248904988330778694695248481123653541791560672179346259323480062414995357813478177820871406949784462739986153910858229827377269036297629879470468797871875119070675119043782157038107580889079249812598961827711589177108108123328075357498089108510790687031658834346878465642852247659871333772956159476331603442120867242577044012291222099085445278511921687699562704039397523774289151099814065056407400945592127063060035129229045937642740651410744012460056594449573995966261080091742058561840212830639279362585786886827822620973119140283235043891729378058203043929699802685035182249297808069288919824247103004932579926161323432763873390065389835808141872119018306790100176385854858673040166294863968111600579139460716773285154679482440023132478869424970242694590215489274219090508328353951466975473321339957722306920000313669135439512266586458173649910519362659579456820605421500998311976229921779626976112010438530445854390708223078894993202537721314220746378261410685647089966541088200951128207130083141364401690292161285596499574569771212492539930971349851820087253378706512411401366681000941173893408884143174719107813372266441349208815953685541383345241573243615463844114334839319693110763365887804227564514637120180435868252349846871311800349839306695632172537294300439748326428607261389606716659646682191606369305752143192578104811623036414348567880073178874738380884708085402015708255371365216359442407504407922613996724665443343307326551669221483113581749441623383218036261211301074885098750074036309239333021579381570289791000243496400542966255478987130106569602313538227419123709925753792974722508263582483059532919959011841174129940145734548461748317806146836618042974394999590512765569960164676806315400757461873441591817633532867729968936502506637422964943292261924051671820998969390854842190169873198024826919046713460426498399270028726508404326993427237990111229872242818780149598076989763913924370879045424887218407961540105682093010169521820010256015531418223003683543066824748927889631192586026477762583699595387041167857140379947833179860436924312537355741638723142989376356637729356932892324297720958529380565955737400744317289776736777812915698109216357311744708299485258072771814959172164291516820779383422683678235650830542026557412871345716931985283353304072463192055508942696642400474929448507175433292240618749300167672103951574468605868885592152394955701073104782228958636646077022977311289083315472710354325006617676671156566135307379690486568309223271820410979162848610179098594755610693930976932247700282244149239989093261859469939277851093661607944230067261138976526991946110115067540625074246626819213569222448507188135935427577756644092972909658665276866066612128818175344266930690503290714121997639261490572829400394738305113253717290563034494912412082032772441202917146896666366439948583648512874907364911872239051800858870924868014537288826973688688778313736427684898542201934306212320796612620728192191851585774466486490489486048874771799431651651511853634639803474114034593302689582479496631592293504563468026849070941668531274605787490936724851620624840434557683935007452164185763518001726530230261395302638762782187276214190013029375731137032181579773999362953664136854213510302633170962650079858611266475839090516902957609491222985589611446646205078970376845387380453533025308820855139436600264156295406030924005457747921646125711908359716299127867980540735554324280682095246481398683403351137481928772849325992721923425355187904354064704153755275508097375388366142714253824335223195348726896477760214318958208017254770400994382004704597417885449504449185661021672580541199420028415966311696888339008697078871658304692369230032667989958134755597082975934746368547229028418507499836053876960362284472678346244577436503206905915785361425520552989412754607726494688114326530706033402083966540849788203026720631874750276446754749299442339010068882051898663773537087511692065304893813351404171302512878579607665759997556638400437641839687085008598890292637226701728322897947037880903704556079508386006119028388117334800399513865330946899768069749036279227488785398196307660221926306384909550514697727075241304639553731722367677393549356292345486742508079575466650754334522630924872828409054104981321406712227681510143905958695368908150098918674841152651739257401053004872338918885162649729490441055819461645728659213369033874700480264758943852679585775668312083518577908956142599363345810849988672647589351868106899478284220513308128734510717365457296184480743853574738632969275583429879674144548133352567051647707018082862107110873880066162705055799612881745711350859053171518399150035461860220648123350867220300576824721996488298541081345932910248904031536884444267303559784404204316437846924570562768712990922846608733879541377643563413805968960161935582417969922623334344240838624739398585267190755486678489115471558216867607982578005064684816279493308000333015082765858567077106996616522447789620668873435825179031015429059867890654482019662805467899105285105770383984358132685633839969621242611574144927646267987654028793404258584098880684267978914893696337305762381120879041007477507073084030786099230662537573695631182824416345304099448823390181356220839778399637640540749393736767338570013480515296252441973754114586791111305986717501610064617147748654419963752050507544469750995043772046305836687079495809400060970129698096883019962945088817227813326349888526986851061183977764340576687514007480610516488320827008997746191211658554713664623949087721409433004884717667491754956276221279670986931306541140173640492604395199766872864424151059714301966671702952208355048876364660652534938120711804613956275494400356760165637648202088482023577130439667474341354342569645359801552214642088396744910526203242981424638278056363452589479953123939387493948163737660581165601407548485296896007302314570510004095945274694312405862344631914947629231774505142858925805770185063441950903913784517088789146402404938596195825946628719021510627543526287879223915699399040084071748447282857309853098134562135444984522992278005274877041127635349774891316591475241639911319532159670142601025676159674831927686550457486643041530036768102138581810276571098844929063111138857278546803642112634544651174468833338386896901906492075010085862208240783938428110752477987077919541228769204456691584403898755918053392147354671002200598693521946231934957451488976090504650255291032655591690687021756689821979820899696017954351338213600273084250870490583750441158828482181569385253132016967301446460772338962449014298908386547009089005626755526735043806378374554000655649043431350475175973827885084255218839272758288077619967595159182394977740732697911308853463928646604916990959451269289741179819625456414625604600243456279424489564093602716279115102234411302268564821144169828904154104614930106041028967900846788534460892669917579462896635330369361853690773853003540941844444785377054488892977314396669307022659523598255433275953237013029917339912084204984225166148768261940179181186788764564805815747369463863209008598268440274860839635403668127704901571210965887556105536992166414336569176613282419919762717859700099873185404913220095954947704238426263592602336644968734373844648192881573713916417094576179070700857335161603883314404370223312822588543494966710336530066240697345577784126936239752628387722213688508253072266845635575887880431547125198475457365486893396701869250289569571278833684629853437821626638292728792461725128769579647658400301887244822562233998909404008730940114605337690735948489681124409592015521547788441401247709859096871690132763747937492800269809386510400011767656565534573109216256293517490340691355482450324364553496825140481415795069590879334541915460937403504565949223731053729443899318134748963234657508665940644762538295947372032007420149466815216133521347762902020524457627511406713049605209867797679810392021116918583012601092029489438805728809863555362576609891697089678539707293139096642562116902998758218976164329991469577755050269809647168797195915443745266280877170497373214535594117901404697164709940154868358240944250160892162056991934830826373868651550872606274098925511874706548405566779622256049063593894645998046376998450122071478868021780932046234556514768630898509363700154701485027573731034360521051672773527287350795184759188265343767044151911697240244540416381346075437712362002433700298064325082522856769836706647466677275636327745562643931566557946418669430717669883751920145936681924334959927675996293351990636100478551773572638105158016266335899734908714396208869917609352043925171576267898783711401795266436490980830274357855908884212708460549193990247096623820432256303480498071738532267765167426502541282128568787073427428064607763421492393194148797217429386768774438116333987289216122276851063577251589921661794200061008388778919191494364329319221652678694005834349009074726182711259533367660221312996440192113520736870213979507179197084467251101556074783372671615359736363140172332834056329303303447412676564563801989645042247975487918427491201050284314286298748330696509577214636213523613305485025954206701850068820603618662350424829740057384369329210542696064246591729309488454763106102926238366087494594869781252930612233667109963749374527511385388855258710256244373509424069053645703192393343685267587690515955106298493648311417778548614621080784007920346887484260139689266548647561991801341964541236684446537614650494060102968592238402330362867287645543879616868678376174207156639412564950270689294091230739272444892650263363025681109946592410948145603419020276125761208477222405141629668631999362685695820419138060451147614804621685436400968595944912123185928081840610202628929949837127048357981069819651004451250586078388350022868773080605720863935336488993611626873088149297746188196210487409422973205651050381082380111171055757195817517693993340313630660830855045597183835665449477501471982773539514115300160895682462260826586645474375202098497512389355367045590934982287412692529569650281038314068212373234678435517028100471511182562884957220123480218521626946346877999548418827645853162940821749136164534797086521166800132458378809094677742096999101134573692725374574442146540556936173577462007050461238641986857015313875073812537989720001010531238659433199782427184103542201702256568717228875980920856486266897735334128816302001575657438687462019798645827421945526295507481298342469258623445878759747718122642795580337409772331654735310770569875583765592714136276227489066861876120936515479982787364421695905500204982457734334354852009725032627890067008041760688285754759130361775478357298580813383323156328895305464001549214295279968680630752787539298704790938384417990352265601124714895302457044268479284503898743515881431604629263987391199901303046717561199646672417593544381734826930311464254464992236449934798846821128595159664882443669217041964731231099017078219976908972183436218189677511475088735009773666058500095932856229564862502527297265783886552590521130935026276683863256812184272695442635486549616743969495217938468649196077025301082194107713125520630265147308245876336159834668856496086358128191306005711332864498994258502462339353800484658703768791291439213520001668560625016603982083786177128847734746290653660943877818702813869728642429045801346031666603554482202182146825497287051323090964228090650508239498331830105508948427267361898928695976264971567826474411144820945575770621525058490431714901375682928632418789379014816517729214811396309754145301152844426549499257246287854580996837796930545198700235285403805309776652368510160361341986140347141362778253196591129319965204284020858991649148505632687064335721924435202298657431297102155628539577234279006089955715671636145716551011540417006231591028902291114318851683983768443752296815095717763049606799418694824274329241999931978953439622424717105967349354820604234483950593206736684443813871741503071046207037294239873023913127187033259550520869393858439869395394373082515601234495295659654184737553115147004407817532584288349408936958006250180507045616100338667786627271918381460289206596714135252482721562246997382291316558045965839566949613853385051573698249783632409180463782890863288416213192911204077498676594261137710161039172445619913807579189526561650976757359458733014886156805365298597565390161229761502845456862762005568281803737137458636710339282507523949806790927945974379876462967192277233746922882981338697892878431517456429860094382735919190397342881079260517405161011951807199540124783291087190074945989701595863445244254487116919049038170099199521104650870025020108685597936352015049916652365722817244595398125028137670778154447100455940211157418860787880076161058143822629020836726343229108472617427451021237468830958285822854499426375530361834853966905442420801368934014340572809748618003769792367594268680095371460281041056211438573203964151082717341746953751959779819642107964495708576004967098540271411578486555086589562922637355427402330875784590636348103704067698345665265469545322455393865323358748178322132584459977656717616994564946371625882864334547681408949497812663206480395893334245167100425035099329205643085654933638853057666149555587211943719754140205418528603279988211806225026532178484769975527062345695736021022085866644287627553301832058855961900461122802718295187077080755954933917462989228793131087370104774266092371124571930010297599490744841445956898208052649779075074354148156786674881491299075585967637481795106703781011477798799035962101826617714510411431544913402564148758693459911405563342128166912551818276291977733136961603864016671014747696736414464390415882666811116108780711517522841649815383077141606390172118437749882056524053810943902799811946264485899570016664223682786348871433057587169765035983336948216138804426227146205633333159608635687001179618896581638137239010233338839494221862435705973189335528881222321834833243389198199151491692436177317039070283172655546050748164880315287053925039561519339407848906905410585322831217879896477811624231184353896331227839722303244715141117872457274214831494265333978143813533682570769313458577091805815904144311844277082399494936710489808398405588198024554658613993427321834668042135643887234741838820319347979242819959217503934523588051729844445011425073347382818740599643046448254603469927667222813845423100656132399628748261519459206651549118462727909969415458129533001570810154875150157220358921575664628493100483403831040230524119222502504804163627910331774646574353182392683304626009308157266088635937555314745570530259496172187752165935866981132670838589109869751603743812248422931839710128221524957841347043414246631183650641803555703695753120957519627460289237933903810367447114862520605292130396999023648269768011264775565785065363600066525068294960217995054337915734543016570569236321908080650810144276366976967039331905144707673317785598905530467021841898611672829343580086428066867261869347624263276375149156238015662028796739783004835349410305395760870149466572148105033379458358500590539503249278029855081758324426645379674417674060614743191503250358945117380922199037316885276367850598558179951985344484925011313591508033607477141447307515429791566368690475209702154590128626112686079987894279670965708883700162424481502934780753904300069772750309981274975789276139094464775368546256099540646496200090407544319102804108776993795252930152302697708982619902591525397521836897420082680147854684417462920816847835664138829952108320704916702430622150027634424719944025801991055971380994903653793110411875287827667456054884841264570260511106984978754577782847697032084408345296824847736389527219716449951681850052917406751039659653244179846575793075575836121340570059278141709922479660718430624266772803017398783122814344556487190775245515596855674316560145820104184720208625049182542107309713720313641148025127150216809416187074589411076468291840259801332023192599265572874214716766089977385513297907293606125628487440846717842307865841081215193765916023402633066141005458559238913266014563171334526203301186999955352723516922207597704110077244987010475462838995027256393908265466625755499627384935523907275741072320718050904903869035347914182706350814217499850293607733416191498092477163727396400619102862811583503277825296219793574181735427130137135235289604219042503037627107733917771244785882590924318320091259292236930898818999569754375136512923459253320165456697838800537057496428018709841854361233171616325837231182788421551808804777257018961589009053876102285994385214646130720396688041323690599380915197143088204367525764128575485982027288519091939344256713322468887361413335033507277789926466798170635327242885623731641412241692660387233269233930858955992226762690497074459335355052157206079882223173285389542606827415601171328721686716607804178804623106925404115865134728835205689203233765768442932469827837655001773863296084817359818500269677968606079056051031739019187708684391716332336488383510814660552300879628458509108409904853367248510505270997741402013471713359897505266603315945717091333298597876800518324295507985318920143963431584192889153502753708746748568042255210123819400416825229256482365800891679783741664425292474927332579371969038789132250245451709942548096565580881320801832320651462718377054714784080494400923955147359273963976018680236600639483765002811875046224446039832829954858760422544884396225226402904976639204250518956555330153531478586894602590189237833339804154897065011133029914502151921106618260107974216776264299485858819342772329396620919418102105775196204693588018740505417579600716319546154569308496994069439766272015223818569980309511825108339138169798158330987807501451828471805379042737404698504620802846455179527223406855838414965177469438448173054721520126066710370704411072022072222380866506802331651718439966337111929919437139393554876827842708201436964895448709677312895761934872348572686584040700898394575500732713849502591684829891911444590007354301094329866575846866870841007376554110702547459112334305069446695815379526978228258817387679471117112179071234489408957444169869710411391289301516953125829723466315078625630690516428611589543055870792902973792919070886472252363118671221533593010422081084712985715021666782064290829690680684712963246707812837518002009882812526985882485805906979586726000505328502036800551443680692038447457056705789830498014232281575222101623591486720786975333637522506240468063013574868409169097048809509314910372775649771228256409021967197499366534432870217264997055139344517641688694089066099190813048325750272051411642467361487179319415704071148448493244606566516936848540610606480526167010036834798814853541541331158695257916847307179104469000260327181225741198431238351762872833737285709955875883284710981410346467123466557800812674130993079475222150467709401006657746475932713014608701383981480052786410046208375235099091732715022367409983101954686219256064930250856945840104415563226975897001174000557799635967399658719778106313388793084546237710267014217550992487934337554115555464646894542001992248513838346688633225074009763217645337805611878465371606624412632372922984707412476522917677556283039799815525715974203841181929256960396395095218267550518657261797368510000688255842077597496838158950143315978506562796041415258229670819757293882429686912369044128035605466815459301088030786260732726536919542224627822627252009449362389158389486570397609085906773298137200512221759705818195517732553066051631619895695408819143520184370523949107311352383539093506060114228342546200811224041772119355638260273611390857580355674759931445885439974572047057227037439803954252660795267478079926123130039790127802323466670044752545239702936214681580569991996789368622494176688014859833839631207687524767954785544644889177662364361149762823003335099599330642834926329646855486665606053567853102715855102031815214547866870555223721197471548048219743700613058013729181879254092388045478224881399266656457573269635235740936183883227040235494549457865663523769971554959699709420511448353826868757983471356157200837143062090127214347383423663663237232692850449569404591406498007517449205933536646907948883182811656717871056128838979799774772663333454415210140991416822452794732355354584538210317911224320745089099601694944144851392006089708956317648047894401891111014923781390839630707835439949826087270645544908062595811168777881706793109377052101458943574451323807701486486265382396761636765730656957037868278424061371374093660204097909859256830775951006966007310979302393446260989739352255498481609519712431311454091297375035517102837177305054101906410639945835275286083397419216005227559407027866999348162265630225080520734137280679807755429484819001712619732217387727542914233515004384711206753314139687693722832662331344263150762389427855573428448135403600164879573340368998525517187306469180983999913337178435837477522923008808311150374260497185758811361141716286794587591113096670425837720488144790786492856654775917374064004040549534276483279215601693988224575147818044435102154891764217622717413623979681914264750477731582212673692205466224130506521508179791343908745082619687979216843707287619728996400077103672858792622066844152239677757040239908828623313015539077267331900392506035475049992798440160648318259789195161133511156508188408446520169576087927310011101734619223804350174707167393018159769500785055712356838569626581627665628051511181446006210239853376186147250489325823654939780815333609798350592483011911919317576726555855797445334579951517198645865481182328924391876644108955579988736010758899592962569085160034526726485221934474203835331605486887039610529723256141730992510490525074828130356278122807572490685245295821580564698248155257322928796396319431411626274599357677798185449897176669776288448070260183507552026457630688782626767614240397076011608670292714323589520944941836129111694727945870176463252506400180799820409905684656367152495959989271246388645190040092454485829880035090139033228691220799725482148726831041729349232752740940743259475717571095778540044408762156382119365418161755958744529131731538730664712894285634434542052658867504961524667638402678472613117072181660648380253969767555806086667290540542762389967841997517693289884513389030710493541275512531097977196374496352071885338861547103496487462906271730135700904805329002513161759448151051640919611891250871979418418225078750865843613995808058731956427332761674926969210432584841087430274116525349339352066104548577584611647884011823902786703078940587815516875226015905767860744756136440096769699707579233520000494314800094043795964607404922883855471749749948293469689512165628202914312098844788690715730842992830073140855049882782302489202334808266514943812042312307764891564105721511601056736729434791138376051286276327808866719243633361354559506233266371776827366564054042078538240482531435191323440626808871533329452813284610697397214789041932886252274055758193593978382213803752581098079925212150116586935955681420788896743831891246398838251509187828997917451414331837887425592270552495704567866723093755453702781929068911700813005266695883469247491347935915700027077251700387399494975572038086513786047114733962761377690198059860771775551193808348068126526482053128253499455509376787693363964935829568170666679399401101816544595659558666139503673839514672122414547154306643841850501495391444567898608596966620882812014441950656475344427753274693630627198691710293623563667256020571804987187208828188914193067943269307858851556372583793641334691848362462298082528011445301983990620105459309353655113517624195279601905660252130504338353775066846698875536782478154712739669855665079342679080035084876649445489019615516835788544430153064705041700589096369047177509994290794233530291753514294609694172165456181858155771517231098465111400084823898305659100319702982322073495831771471948723709104505745434764782777971058342972379165084006667999015187094592962306017799803861941382134435834704969203890622694707320315023218006452278165999416307604081017334572673341683825120170382520054537313812886342518293008942153004912307222984757073735300692677452113693648513976765984760512797913762920988915552882991421033201815642200077241461745376991139514215175050192730157759802475127619439312202479208247219889452616570607491940799894691497434610703298350923101703314065770416637506708079907952742918076798787517512895727588858669514720828858761383472402077381221063193223137301285118160328844944826396189362708760222835812581858281765270813486843745413031884067885856160794794918583562921168130723172957501073160715524658640953812241127083521809554572161914871336127011568630149487684218598532453152097133816145856360899815071627283700668008830525249463934495811606957817618823592455468697420932304742758306689563684789808505348333991906404780503025441028808976149926696099553295745894510026357711257553308558139428484961077347089579177238339095269082973449941396133169188270339517163230632892214214131549212001326971027734928299476122286885474030769250364157638441085051962686708682306811508710052757691741118843771265535747454577672152115179892321781568368414069089430370708183283855340634639715627121962559046496549875623290096403868551995268083618951825944136660409116115510479268220810263547303646110185720794663071800180212915411834205340060621052140889645960094861113542981190097427707966103329789675697123061145061221603139949007900856788845784223224567642558894751366450779144157771782127521965943691788694866091819334294925337210564982099658255887916243811640172612788122481848976052333097255503901135884683518137741710812451953717416598660564847323514458981649738641630238762521020942051632329984451250095494367683273140992559443491980010495979748235622021151535943139496802671496114070404957176370787985619908038916987156493631356984689786646244542612197322147403993003911185193568380690379437315186780149104876649694698292991358797748012547451016558525527413693521601281793269741397393826723570302834119842895152011813128019864015810574162952788872982707390048272897687486083806707260314135611611749227033339365505112260920851817578278879252663311261065669162506347800445983019294333973084805422002713821312097891218198237204609123799825567634238271417832351223993267201990470335553957940454635109113506456484594244493573488450743003159957130520872060457500312246291319942545769904743363901388326829603889576291937283979501692189236151246702792593046414592770585865767593599328572308501503500784340631808449783581121690813597253240987486246494191190925437008407011223435747544059008702846939836436227586400581736272069966938789904390052728044462962627764184391850543436629340532415379784895135138470812812517368261362057615836604001588286557563535920677799192241525218682211193591116614954795737441980796303605871831746292206539868035257512071396935736079061252890262566523317171620147130100204606248044500629188527415808726804626164988122765917840980102070956927559224331429176295799611990265973207302563088190888920364389708834820503560358410244873087479982581129459201137236093461871516017614896953451565129115422109289874300580864952000238523185675202380992917400441447396576661093953253951608841630669206518083228828234619425090153365124878961286846384163958814059129455389800134187631458871299389938178235015446581241723472294935574681000657071311433402728783652881974092392779008450791017829619286151721006746009279817972818080729422461206912561141577378369205394670188938515331271010127504894657057384401886273837502826261498662998777655003532837134031105065337565300622977544445154152768474103783146245035102686995080471198550948447186453602131263904481456009719800324445501939084554517030216047970465869937624809972891545380317300923812307495950637165458400996320226825613399218381588047749874836815911468639411979043395793072513276029209812430030188081144199554315385198278024831133816360195234864840564853092850818991361802400142504284773490205068953015224492829840418372470758515693196393470083885856367064481040951208611402558658798849203304798689174221994248096480309315924191635541238206854881957497811835654688351878761625383293892024212096784317741057837631769808327648425865654677855141445141109035344066530107340551555986996437928721765573897454153920786893581409541193435869001282170828468356314979621978770295176480178771818863713072918421582481822016976802311451418638993895350749782563037955488890907348684595314897664091039655886120819356227418594566701804431787901173011594381909407282586573862263622939168382636817521033970053477218853188793844775332176519156126858264275780848298221241619742483550332335767347008667774318043657173786204719051816152124529944411930041319836008672447496808186058914672591686497089967655504213255240693789227591671559018507820815644827519596501822330598772945310762269736230466173399122042834921112334907918555939438337113983106229268546060353077555129902189958816092980841435431971009615356383159601443625191638281373405601275746777571887760523498206188772586571373371421777047022745827534806674852640947943977381164176963229702879111152596532210642031654918529885812799694305542476366532101766517085379041165350453093300070046403909957238846404093457069547072757855993475824012282625037891438049979532659930410706647974039692993774763211272412415516255428275908831156497728902785895771294318848461627689138741010509233795674191086963721252182832823793001360455195462798462983576559532233850922862364759387332200522376703864493522815397661237635968832087198070930834775956147628856596476136454047622484120257527968104089586728751479317080712491546482995137202947138527534267214818867573261183189869310174091549495232370503723704156410913091812318259110839118461987726951836126033266137811074584499670662864489739325414190317624836230503060470657961872454241156497667019964159512091088332226821052877736337875398308845718657530545348245513662620980672563842549207870659320328870219507235841504796186709840485799935855140462980226158400484056350746572381746782498757631756209504728383233500320002554562847874522875409199052624719710635155034706969822180812340666289354380822777121354750539376559002795406519919642385881697482090880542442108910613685074177450475291863558968680579537362892523859105044691753061156620194096581967093568539427441683025598468374503823184637348680683002844726461834789353224137569742261822428006246215923682263722479154392956741059632088427431565644431096222592495149475971605831124317782663184856015806515347263507107430208820793981794400206694617050530407356032188418735733837617540102684874677006169703490379042384872414058756899241253398253895894140354402419096970846347854647741038668736829587819171984927069895194935748654313489417259311450828300616242161970033192868156160117872605687186454951123979293165154265869767384725708141912114904474509694720491053625630042522161373083299056650341073509735267443999715856161947099281046021935287345111863852613533914277006475860206989678600055450129561515466295693513014452233833101009808035349548823819907002152266156346013035397972439967428158182479439536307878869897560059200648542157003207637308750539005460567296114044894806509686714778290850972715546720806210913890145583570136624489683950731998803557329428550760891346568567290193305256290875600471547296817591943464715980479180957352630732137240151923885316423557303045202409894361411158540180157153788251350349625791473641562326639949147395035157947851958079424631487020647167486827487051989060394313724087743281941472358236406720416462899393336863108390570488516737940593490247295924707458245662545995082289722239485362222167180551395277337629639822694837917984281833767699197854334168905193079888788814329540318077161855319333697957794546518510164109005993967609847952297163978586885200518139239956427188082871229371891965458263403859358373673041531931640652859048853861161649776895709470152546844820246550372511969032402994245235694056370085086443501190005149955671047942547410741180183555498158952822365358182046285299933788038866809863819798377093855191643521905095463190758843274808360820805893550758584557555900055620794313388825517889051756033068448105189984591074566138356896302767808136770423375716852782172465242155520514980361417325423960347663077871473777776098790570650489291702743319531062531221803690612458223962410803336762551673732156118573913016428643117867351264356591318658286527198576970752664208085304918502702105540371359085457320997700278531052476034912509291724280614776033948881473061673417867695465310380033277864370837135948560297055890326358302496029339064318074416105520455732381453344444217758680240449969884169089077751550502273983102954979727742344747718181720077558851188246841594909765179569831750043845896375592522627964520865007386923865204792367874024664415138282123188655623191392604612927886747670114744691229444093306489001068983522987406436051719508290322287119661936475795067838334151000545537139948165280235503405185528899362994229132828245691973937522637779709966605071418696831334451597039134181409153041536248923585431134842855012950352308831014634295624231551816434396164888021746071341825691337589633261462903605081183017514958481358589453810103253727476243395387727117104955689401256823624912804613272335267571972542274220962440068178999241748875254956556893704123518786301715508812572262593550466499572268274730834609514829409100394763439929548742187957461715694613629650924965204824431450715631559107849241134860747013603701415643443122970865873513369915933569136219308925537742017029568305037275616201013577375588118391919523605852621038646125249911839233335446228238787019921386399718442988507628739466237737476321314135663690980514947703187012383653779681859323568453130554686741889221280520892788081623262483614652567968141763022392388818573947390550071609925643608603720384514332992707005381185955208436918500111947100517000071864504661451074594755300248819946125173859375685329842895803260800755628008703397250314229003493721515116207802409613493823986911845758310377334541144040672038997093909069698583501220855945368741994736078251268963263182033127367986244184220772735527570238077467154510370800857176474799690284199186730232069642471046218770575988395185467149563274324789778211521542210417022471802508792903750401226074195926787185384018222795713000680554627361300133636109533688115983679910593949989423262907836163700608271661199577935507743248395721606640278241932760675630452967589870011547899200886733020848136955183092937229984539497808619360114798292967962252243901166060457990815642372134301476012324244668042740673343794142303351647781842959174215094030492327101170296209733248573357976729438140983030791207995808097766666467024508654673223254947265256269127724025913351670649683846122294120406542855401688200784725478051176536636094343602953082759327374793156130156295023989305830394717941977369099789595810783302711715785551079407331478548144871386032563658921950889353319078871298390841628259890279056368364238772789611775118892262880259084402639945426219821257261718229224098481488539059274733461406963073615310275618984989246680754992244885544143581387494251198242002257532344208380482883483752069954317086594382950417970868149563635836124871523424376215307020627472789460839996975804490953491270439558029827614399174982152892456003338900147232276870459057622418910556787860282227334220325053660993535766470777819098826701650797494329182764975675839312908357923485830635384868130617757056592035617344625875353559065739768938780667720449819724053490143997111562415789778615064808138187460687096266132042997663459550455733010369768578303805289321013784760641529850075329800409654699211732302433616975768234862781847054858516902609545373305152882824825866493416908659192691963023734040197424586761166536544676662599583883095175344388472732434354880269460960743488105613329153950053620915507038205364905329150386361396006261834044953404853497583422878977126747332965198079698802965343738663026698982606269260758508227994747469331351220577346229870675766598926092474944122921775700325696364423671515677778110301973958664943724284030650376251777649863887172616830025490103097957864218254865626766419204185921961522784844363473023401831027836872462582837298445575309868947277894751238497994371094601663962980577213531814691536132350784238161144708625314433582665009362482071383663833114604894501658996479719529558663525048724801863808804072783088387213521681617057155141355967058365655803420087196643594311369416209601253778852618560991288416014961301557153200000868790735307228647622828632569794481602141527299770722208515140939265521664139341146111430770285916140162392263352734812504653620451295434250795406543528637211802874636530520098601590686761221785120062772258551162319159557382939347353246735240982860817097268242921051471899718107243032377654765020581960715952882002606312443350235726801934120826680060407734081859508937431586162852531143378288452100260689090327287837564959995204472357359663637442357371537271606546165795941989444476641756903257226826125048818812028221969192655272676125686202854391786212884820980956478649849145571395721163467808532015046359139451066976897628060918166316003621294452521109339571150787349319699675892332222837426461187930226977458318862944750855728534607646747442833264778405657293997261870436254917700350965446589582933973745878811997166651825656202270485738340066541874766243187146698665157882393444996723520227132260306095207889784432229745829914437098861672375140529839676074055394527012949707113964623714923992415599686343104281169722934083425320014504351878416714801175038754053562821989327751356316590966211431809972633675017347472904419309334420698411891759369779339555871260257828578804191533358661038070787311166209836340375256112051878248789766230118078915211041396145983879748235180435721113005519518535709587877413905498875800061294803318887520982053859183417194382426180707272450991037835807259490955305890486269576315687767105291623834072354154542151477091562843505953167671397537637721063221415847665837821198043060146330274213718841586143813882362695048213691886660857341595639283644444215236492788182212266327142024080100643910403565640648317092308462415643769516817288109541192864020796024538142938651986662228493628643100612850899947133935978459951800578206037388999935413557233237468961569690167955088344947369657347550567721179670791690406590747269942230489491301050129614713208917408899909707604440260088191045476829901729396734819081725807205171964473847090927110226341762346667228233842846890441842143273014740380727203493483753436277253467131217740144647041306275363321257967684538519280292256138176249167241692353037561995346252596462469235987517547837307551814342647200613480025938267123749191787635766797437945568088790042705431070141501004924226396968395038378030871683039995062785354964503429975284700829392381072916689762630049676588032087710398217153093057592281547387373512845870479625173609190603748055541727485984625108217096045393407033812947359294152140300667093158504350129268731245500075126642976106453881232739371758412853836492325640871666853473260665917962734457874872233846855736510561777635449404329165211435306811341635376392009181083987975593665002545038372891633243231328372737758464302202011430653573083896801318706804235488009190988064692048886219062898719861046656001854413885477040034663465071803589693216412269947945490081368432064593908819068421451990325282938771193463914438649886347030781299799354861284721219173409426984060415835769000630579292214817942316348376794322887927113645045466354980982603231056629773385252144624559689546325564312635562329579781267737222723635836064163863899987487286201941989846879072496695138945164656864296779979011487473520361621084946996135830938507729504705964638675223878539936119986724377358405441212058911375970571852126203235714947589338023522066871644946974003490383784608557338880748788606677455830570857469956171441247627443941806056834227276948975410982578155911710389969377475311010256666258187183002382150631438803289660773274956517087136150352187912966532622945514860471477876715757339730098307251289516636735829478777050657008062276324650076387049546092645771911725422958703103411980439965874544027991092094189040833349233339802045707639705469113598010411047094789666890745913604914053554900097459444643461284272644281334695952483324451363472701232909193154289289329322712608069852149158937623842041399402134374320764983367211399136257219038538426770328448051260461144114639092764705974695599723268993200972537009531256891064450393351576893173148276642614819916101786899650874693940917718156182976176031301025886956680218392427142518490897087321759138889137301601268061953811850032210549738721745512397855845748323434953777816929059157365861883755724712620769154486029459114414102413656738915013057940696547212113022591087037712780094697713580218800032091678128962996292377911105216287928281547424599567800217901842880775552055528019438966926164920053840485507500716762130552123584633129028735755007785722659376506864889049409009570841067095168786080350463349362548895075640873628395299973535488637579532074912721010691709119334966691380543072629801896415416578263438571655956066245105073703130903003862820018969481262257885271617235050601444227565996696848744783689176079979430326111924181752891201868760161102397496903110273395691264578561615421009581631675214839726432364761501627355699241243668699300189502155213312155085018724659040077999425885347752496429513915398324141362126117773345833219513093938480108968964053925640788718962757106622976150246395852360344033707141220855453146910248135496646520167450098927813337855957672303169421377885142033075315131043816997580220255100936659843910013155644684686162841112918879608604520952632457940530828984602145587272686005490819708092046086272815822625374354913095617221847415731752892946317248387082252942495456785088397280364168798556704398772622716620296539123909619332452639895406348804125004673653093902307658030323501655362516316234151969766411288093581448469451538751919529963735108142564846819299662942728235291996135519107344463671472819870020080159353634105356485210723853718045849218846709341306169751593208469392973888208990330820206464358966904789817005243176898229731473328869884947903020262120834874849199457715926986802860470106922338958159261660232542082363204919184733872549306155789704543520558603586413845425680353765047822728340974702589437925635765119982026771430025889217362288013648780073613105935619151423930391709239706956253444377382960174347819420571646328204422088234874095890615032602874147596678969937649177443752958153529199693977850461881076643067101814457127586118790924926481357452824585894283480488537390587703084827866984676758826790418349675514783081346584833623577708583777997686251507355344725599726968140023397071145446518143665405491296655730510262536122659380869615947819231406598918424013004306078796336250746290908109443361989453790056036383871697537693466676017725352184372843382882472457679340784523406284678218634103308412568864696256201164292254347306180541104329814612826897919382317529300915492508048231566191953134499752897648858158759070072111959928049023915441957761586674692592795291326253230432677561546405385780380508018658785235682534062470519213028083020807479200966104439239242196487838335910308235872205758558309229487063564719828955640347446079133205062650245796889166352858466946716366341054259157730705365073675695411503369025863635821610217622768152185145909659548987652776136077579301234601055230438141774907321048453165355786566829800888994098951886754366330607342187039319124415113604182760150667328672625243898128692581161409828009361963287922468851508321436918517415212487791366377017916089530926575367118741477286556658427715386293404712447312039707573488614610791132902567476160105161545216148032940390384809969627496597024613150910323681250748810126911762431631254194250760907672671833389900171877684537443744508174598143405096163941910594183579452687680438904029105489773452881764347179789965179502334034946794164838923115177995955604952848411379528199645847745419243053460387537916718792899188537974975245936815250217908012821790141812275026577120939477287955308148910537924226932560567541441515113254572706798876947707319011179010432643913587586689813124173589692716229745904086357073406668543682107661530428397005353556708190452100175453733283091491176374897314883168995520200921642406044261437343117362011538162711214710199727118796311328781615706452698870248210570469465463434357753638674669555635369012826367036374892757968906317661788255753181303530215557952533489864709583945569285400058926392610370625733582348533023219864509277635358922833094505937458644060945402265366656174164017924898679785171844660816930975688126333193633451124613867343244332378355314174505207173900962213021025163562112391635505307884351948627500988089501276863373954428643573851066006711833734581844128669641305793483561675141334048921635061302528824246557421303407849563762624014468904619472202249455350520169495753261710981322047910582316750030336727866430077409355825279041286801394759801666821726217935961163286222327601751940387203179726763435251158894073523566426223098303456540044106378485496391248662129241103736163338890240042977650657320869427905549379893166322292675147008369133316840696869006006783565830423642740984322895526746877665322078253862746339900899487619587370948987574956867565265769247264133893892005261497970648042206035570375315677094293928952283000525259138507705302783054334982893905256701568110283077290499625279472968607587247320593325622888899804149243547936150958037329554950887920227688112118632151775845138734329701905348131474203432807544904828215991727061431108600399888991761797787078321900102839337564074119317131841832879864332306175879308768441565803025499103739239348935381376347537677445740852101993137412512784311117500472005379714143966676592266323792403452236351173535988120429981130787710390255570921470656882098667952097607748455736698662144112224317445668681109829923559283964592160869534223846193547307241124486347577413211671710611686007877955835437434492137800997907251785150946928930374851126765918561421826784361540390831121793367936990640555772928474292568438070091455036138619314305803273028151866580819211229752386869333460872280259118803494305251385445981812631428759585097410401524146387278387682852044853403165603407692444257841918402524977978996846647523895450423360013966033616220734369151757107275076494525908578627800350528626886082670895410902617917101492031336442896744207641241021613505304934755899594074278281629746784735414655122227283393923180335423222552895175297510404667746353014104145600630810336672055133206302256069041280860811865255156956754424505339282614033028816648813895408147093098693802164633560252050034751181827926773166211798347738781546866593271034027186317046257391028249101592450301273395704657693671116854294143365377457903036392217716889543290145626014821086655695356306535479834732656012629083406208518035949179493560809121735107514108234815187188788538900599715253991561651833944671220864069013945927004553540467030576213866688905808869533004143644340051167870945829886216466294295951706373843281111404557693319610745486498683140051739904909095229031708217202614822254924739714461427935134967260165333563591162490867890525946171574317163007561875000037750589679292577533034679327887550915287835382230035350823266841221164734558452125966276737422082512604233200895759569880672479666926767608221367552125867495703764361002269692305242526389618937157450379444122072726909480518576136005892454069928280440859434188013680381302339492657105990854948454082597042513641844807001170826220178686517807124341081107775090567070620260747881144367632740040402857125971127129212783807490240693803731728358911063160478758440619282649947755162945907137913464899507953675154554668319441663474017564001102869711428409122033263138380554303328469615787537595373670302152289858983620721743555125316824382924731515559228105587525673167136229535541571364344552853373141446967910666590184420290951442726963176216525118587121829759056604025570842588580650150908815730542249125053279258403181903323697742767203908523051411121389757202703813528296869952324540278542581801648466099770469441550632348865063982167576312017164572369839163230681272662092077379817790269479249926010776067173104905282118746239049016137390206232346584007527521917038726122636674186094300546085819803766001914207341339024731031664205524223543538388008414701546905276297489260342430900285113752616716509570049121115633074680842880570931930421750768642354590942016828982238137744015337597268422638703830143427578990245119915498144176405816854436532316046398149834610428757561947333068618200761652057295400822335842579497596112800456755238418622349600959317996351776051966594145402760078376661873164448502212205617627116686587617417116939068072788813464003858553902290473531120700485829783632284226045844298341395876995522964857773065923737394333212544185862058366202829322355193049114809829752870836965837476040380305741843418233694484238510408122280211690647736016680373625409180027519536997039805892238766485138779794527412611935129203025804047031296638442869006026082792996737757106464350655825683374903419970930016965257450843403137600965701262832032123581791108228009782785146843982170567648066176758220371065112149307564630277079324615712530831574151868978104327147031707837992166667361914025706137648609489831044586647263326367254470056910173044936584450433281065014587382642697907336523207461816790683789570685830848806947785891739293574634774298500991983772708420384700342631893518749023612492095431347726565974401693057763696015324700655543966241247393565291638412709979809403400793275431210687563667477421593082987584263001663863699324818081854959170650149580901433704873971598942630655345040369015871950820170953769915270676256986777721040200840780954483444240363149637205032289704921843334187183734266442409724356300372945585813835735287972903168538676450814024670575054389613082005025437160832335455271261631812892699345544809237349331067910487248780810353250542599581434901757813462273757345175334567743286066142669958117171186457438761778413542982987098280789689145392105575121084849858803712609267959338475379607071173162439366159696399437964222941294869893391437872353842472621021184991266099271396019856199529998335251873131852851966563988138953593063410774903473823702397160247038275684244859386446363111799773177636324842571903731932858109417913509285981510999247682882083384840460705963349946033259846258978029754052033796428621511285926681417478587709584873050764745768103489733050033891511463578054073627547297221279594990721241593261223955801290751309431545551865537747902771250016780244222990451950545779666380866054378073868984259925337652275493034790814653376266928666041530203907194855475915488270267919137874544425525344837904901921912705888197887274371092216452729255534170778542096514923677928061213372673831223103396817180739651915545701943280614245337127685936164044823912787898924833446019721630897044444470639944648139992334372798745644638221385714170822707043692372276209297980544137222731832440307650653045370349853451243111246044810708729907413849560196162870287922655212541618292996992536389268183267041324629794400340668409751314146223148616651572594821351248714257443369428412481940312795529163363872382799656628178216755906101637259482267080451628930558237538562999537999987736023478219360064682005039386572928324087781335970526886613653739480409204675016861168367854917178131357623170584670459217460552231632046930170016219165958538620222628042018997375143567439794152730400745358065648272489244148118973763376455404320784595150316749156124499808056503465778912097475005002584927829942853794942958292913646676335329966779335048016829258550427736897521146863021628461896023541623041252899898865711220540176741219854173784643002157482016939208518939240965711155813949341634914845736969472890531391755310375470276141608669766524269457790565779432901547122369274878984404465714959097423189766970934410374103399950626069349749031003643263592331594232612166718378538904622771973466720566667677949649069185924587983137075294334839274101490157569020437457265672676893593055540015756674195740947955788695840770015207041160040550123890559062297615677157247612066928256809923421852133137985622598606811820172172710507276584610913705616929037657333502252379855502282379648958270437132376862270896751191991411180254929310556720346838791255281896949534557412259539196042089363163837937066011277117743178202913634426648493164940993168504433915224853917572370211370805338541156211917503340099924380917154698614164175418495069399965475423886383515603270986983153862505431357648669390850953437431115955374524361303438792307208361351086528994206711339282935254328196755664589693239024181133672626921155392439961249692235648565712942104978895588359250482852597709335107233858060963361770057068610870104176406624912326701041885036442318041406413030860672116197554960254406817224210744573499540848884745260901695921371291421770518490639795794676592267623984174346855153736048499702201718063055248453120907005677164165570167460350585456531172020622361407482595300670402859102726580907405856183871825192113244125223387263076393346443248420859764360666643094657289601893476886360230788835669002372377521080127106413459318162316291653084974253386838750241464070469289387831966921336141895501559127774583453362951421980685886778247523407723768935952826050244289624474882933505888609942423703634928222815923082305946755876982190633042777600401760116913121234203383581366666932623850201572397951493482576710876205660853530368526271006304108546315422261097193053925232255638807101274737357277322338648189944913844685783160859270334085369358428765404186462106248189922595239519522428726363868253348974939220851354763083623326903907380482742835067073077742666099709558487978889404347057326999718025111258728758538826265988572166145195630079257156546205539690507807034006256169092589427072970460220514838205503119712985582757484670626400988324611894395254751145024500778335689976296692793571220563158684370110752324320855398598721024632532278408028957077005381636367328887647880582710778772374347880393859715182800043795502182471924869009442244981348355660686829159634631492533247778657083745203597911198132151171931351350897286565767607198128038724525915775758437276107808567513525503564898145170869262517528533689455512655257372760163081310838723485366549974364304086305742793349722115707673870909193524889561388199514679769268251671745417890133526817722619968012263892492067871266667006159956331005643474442423402704012463258040912373584697578556848378088820214975783204913293084201843056403084593846069628165534972977488203018324328204332976970837523744797319470831872306173814998446195844697928137010375398135760674907511564916968884676699104089287991302966320404261393320708344836823924034871540275127754351107935662032300487859785257148487748733424707949508431831538732975849313402357342474492100576513427731936557421686831871146060248990630154199994082929073453317142549901183859400970554698571484298346346851019557488580806782993203341296890487936383065134734430237505200825222301509272434958795478312092819381092009552192172358229478845048979734225729281965567510237279736538306796440646163942279458399431303520350964305384444132860068765620645816919131543448191664775779324511060415593510690629940207409560469934698201078149908981718305956728888071126465388040472270938314423811897129747573551176398302519906718870522823294346529077238342506194683012715278697954513456001156377332261563834541910384197492776178998632180434422241439409245649004261148012661703360673642487246919767364916827240873636621380797247143173646645385535862848556823383175204600057380734789835045379885393799183604255735560687440057179620675435440552261526320100128029738667093873487548663214480839803425518239907332592902338855616894298905525863777580098442674281193965134434711090232394656852465227200897448433071736036447664675295724353336737542420627886932860267094798209445254342807317488959950196351726003690583294790885312936441729460913321884035208457284814473922683413926926267579438822806978695960077015692944850548452645889490293156870672530888738526857862734198335974920307057283203114054418668377330505277473983917199411654583245423036098159339426059714272664764186002635872435928465754770616989939430707288540545887771062019687514433996634100370071082377625259644679215700410577925975986070906239613154875794926347971119988720282937148705387794049607108416310304270913839922635163844151429575170202612784362363521523092866791866337267637620423116684406388502957311245703823911534650444671323811889550170852767531748800467449092971100331848170719809134333510470680643108052269688779645769497170637870305645747322064458002504076564010650249048143750883472216168099358959602766248464535048431397410147327894315827407206458492851857547790453082543226057529512391076974586705959913527229400204121655018111769817160708517442172238067841131137647633233659020264751269739461757736459014424387526592953783888316056257258164516964741780299944529724406091149077108701170505440778353498347668235599106309053138619106614759558373286086482660332646517893157481013458948127747394977045084703824587006020074476926162428112883497253138535462585314639088392354712093703192291073752436990158532418458877367302143257318403785661955220462447494074316822577993377014421966906426940486767769831005363516571281549334613525906733992365784533801689681040996216100998773176492206416832658039782437475550603993767109108246462770702564382486573216301362333164182785939151729628686623948164638943095188903416798450946254000699370481334576647265848674778280932967376563562067827038214376266842637536632010876395178216399539198818947586939840828608994845990560220837307755906868165883163705711836606155357844616447525538460554802659409938731174437116128697507424620828719403131997568959156753191297729487743586333095178260075992736056443761710776200303251364434153354790463543091728611347054977425306262349893839555974777047710023256084516851518129078794164798322272099876420819326122071279170459418679946398760487364120613284969402937554558118120298953738693787544880273808417798650675732896139795687903942298544652769649213468545858323285330792824205698474207680242005405826572051901631517044693475968158939720081546091122586248452277514700322860431520440243317808363439048004560581590933011524988367606926831612453086846797000487056408506263765294211008807338489661593980989761650426168037195123072341992423400931382255703002454522056470665936793511370337842360514736824330254949228457508892364635710962395205198336836760797966182639932907626129291822517638010272771803854152809849405963384267457227226690078658412690721322549959805955883237617579426148195537576144510793938681603685345637318894622199715445832726951904777101227718506014820706403291053192536207118438319387990964272207179541120020418155197047309489475830375400202985830288054323935224587582084612809189834387645393015847318818239427227622897800193338986894870780803617699782971158561825510186572733760768310769027973787014903613375307452555427463624511784437332842440365240927540865863103506589526442122341058800897393672878687979323887134862785153522215185111040487700141475032786732248915328304759728269427253350688451289481431853867950971869123984018593714514604116193142734545207260129956531634919488157190832875081830269755942868756021744938451395706134426267226945088328359431026580685765431022042706291743142653436252379457855166704247160766242397997950010550593965007276346350661203017433468495447010273099153031482738637435453136056477301185657611733130478641108959450211870652983999566616925603131016045541259501628130126792057435069486193157191210283770781031531087830209570934003211150879036835084097364383503885170291079993674446347752658954395256798660839675027652055619518734875636204218621790165738747150655775175619920307120099128455303909334847423426190057605221617027690927503624008012655860477556185873141463104112729805807583800538320288514825275360297371648122743916681494433782383912449198139792241295634929623890977649239466617223699234844198299051098756947304239126059833095215263746086981121200221166195771766745229668600378306007562861522627248841823432423410345057886072131677951451282819709594133836530765238911840074972554168182952328938199491210466144718578770029412840562168876877919007898942402209344652775263752079793054841776109446655300638295222091283930271329549718686150158620713694244499522081361682875302410752585635495711606494976043551325021105981663854630300317841309152558347457028503995745263188760057341651254108940083995209238010986246281055084097959263701878919057914130888193642558880491266449071550856065934752694304249912470281818243517150228141905195544567886058337108295302791453581870011629552985330777909517785445817001646754755919238055280936364350671169187006150380959601456939085302348036771915855299532742851308733241151243417286687061551280826578671561436884815069999883343459623449827294638992975447845096961344278507826676388466709653561262546897290800746451757334287016292828760050181113531229536078644039181422712109183938884825539449571275423354765031442190829881712048226453842974623183306946875305537081576646658935260426587561177652315337311340286482259274686539411029079548448578824684225018097896470941666951127143257014343878104867600737567040841309872262200827493826374920615552810037250176202231243007377555718554302839336161638212200549042729138976058017045303013317596239007431845139591265580919170297717132793504163008225441633572785224029616067566840563645540314398095823238251493831321451690764874618539238718711763103710101005586728038574791170568390201031057370633798390635874271657772078956356533689736860697310915111589849135382236767162685738340754155369947138284665692634580996372804811909454661944343756109993843559730733651663494359819816410049261296703720596720423848583745693417803559890531631977044506784610472107645820273822003198206513766515616778111970451197940693118209611030822542420102808455708155111535571484344381792874869979986086947419499082721969102685840198593795357121582701208735275891611146533891707376534115011359540118813530125458096277052492371749943819907282089189456851954355162670700397427767863862711222167249349840835769721342183058802771573407805575722516151356045767195305809577428061268740624432379559043279310299173841335571441136239039528053835795500714483653331219482412316770174070943991490320907375908489889261548827707018149439300599402322633399148139204229211365597073798477721794780610776014750288233969654512156176518688103188875834565705868662728888433359287702974069711082478472917800456405823397676120899721038372745512023829109200025109365340770693049021046817516398391199935676514841710951621949608785521140933625819080031086123139166890929359530364491913989365997312711205782621246725483581846504376815207784587596087578121641281104994927496924553443924549979549613179770254279957736291275704371293934165730691222159973114831698626124687440867113492724534197351752751233309975067311669786811584956095657198086737186730094877698144667131997140381905034167432061483532522051466562137915118108411197195413307165362099021802516177139184293672264747429075876244055482515358545845759971082542453161230448019224122643271204068689065239320160641441294160254595808605612879966846786318913709966690099519636161586816649306429026075148578227906334181923397247967593917141087492755215379138179441553449902911952189954032492791837676441043364629982679502645169301193073924880396987440501015625394651919061174486230848345394080344251758221536812341882650456031113209963354999208950775611769523558531659509307056373033816550470167686844461119448966733183121546390306037872437862116201404844045436641455712110871427724841326497667487446201290892839799348251110252837878074377362686957518855083872757938983381800270004710835092412057305858104916620834689800445594391234410360964024884753765383825179212584225944849346337000051590936500135095719289329893977343525235345843096833959578399763457840517801782072711042707893065646584561961953633581177489262026210422908319335643967115303422870931289166973431968756844334490037221860876761851031843911501909594206050330316852524194246643086884083990993337655740943046937903862994386130058604860766010510198151194499717294046072433116089663920006401262059160574245536593921789041462487672532106723495684546012771817931116754886303931827654878155151584317337802004078354702625256925448237898190492003839274527399552255444143509889062386294498708132774377227748999893837612121084599358297507841355787108461993750917026653842817182722486407878853514399455099979433217545013560299932173656739906962663661851114579465009407057112300577638219386243355913851723460788205036542358511184879745893899642902768222058366242978846806922420286994428152796996078539982780292077019189170589652101169968973121195340386931275959531728572496541541219782012581192240899577708880993417096177294383285012532071428776930852567721521799351569563296478546007387726384560386583304002355060933629928966896628464656025613362180110725987165876180481536574043067762609262822195662301702071449435792162163255716430649016847886624445973885603186838692302723135482806547945983710288881277389600103160603129884811706734540269989571439569081136089609806273310012817095849458296013015364681502033552018199696315742247164133387428070245261110484897737987852219679513746442919705931610284923785579198847334081538313263269856905602540066288079569905859770912026826482407717490806666918697152575752816590491329576765435016560396041302595153536767440989068800506933958283034663146452985982992580245575007792310438708003104966609663104517301308634110865019591067857165317688367453430293013985123224122092947780255727397257938034077336592730876907810169608043933453224118569191462443769948319917124975754563856896862471420957413991279984295245575187024239032272230778886246472064737196127341308550246414688200858863638843245779229450681805375009950389333835296891525873875739192646766181968681022950263794110411256327428864344454032149720433933383997733260236545332238946838852062173291538416926375656287313899549266263002254789524196381557665099576431492914004795322538047363206834733673906202376110966173036132987930384889662629007072988855567603918281818890676355623424658736060517279188258196014631077667052739628231235245923435256671477245207591230355803391394963486336931449110746395071472481542325033992487647108971467417301010837911083345478646021643293328304160625552003759970742427226959342063695738906419658056188339721724153457391784098387845243674852691426864978690329692555623241879212466240819875401772164486822373199631570698730354642963194628568350119681958649941100901412199560688149351376592766246332053142787261797888710250530949483994577506238173703773448651137795378463395941830009812569361978920544778860631028352870547744352310600701682588400607835513872164171237095760042496360458039747012918260662640752733758502300604735953973895379080293664276090936482086658637238921072177065337540976393489325846051902869566916884874153956757816815822868087327853441568132343901936616498016773247403488097834334050331450477461841838259983937098399733263212831294090896126994119129623464356484226710023241940725863960236770568770597536962172394678679256072013125527872099917583628495433173120828762426273411952683048287019630988770762784855244764896265787567945095917115700493470877027502865540876962696442802285484912399865367210328493677669601973993092902300098139305008619907793618819764390561840419249934732846822956700929851135980751560186054683278006062435948083080968633313492166209473301330699268932465972836023224251645370514618286164920283492530370886329896661864978719161020657991728377400768740238921506276151007378116097333203136173300174836774439861942027658873354104398396194233563010551926937611790205196919175364766332625688881174663158605574356631730474670247203186954187127605503418801217973919879421020563922186114156742565612956426803288263224679988172332333666200960429545014704744072852314022736577524528871668334981125468083729637490561947468907486038846773430891960974207542753785772150970229705738678386745130983902110548192440667710975043588896202452568102929974420516904680124999246565205491176132574071133486291634321502330249608315193420562185237906546960788210670838658943549489521657242495227293123856907559306866354723335147843376432079177233238373221139179798539358013001582444114439875464874944406859707537080095088608346904820820738346991641327591180774956279148718203777028499678763274979622154043182614306150098707793321952521202458589398976608080299398868965043110087189154738408254355911672734243770733758145549895584738399295616475649880014829602786449438593757788197326402002304079520382079254879718035570708772162317798207127254125932003708835829576545641049394580037285711608852181750024274836472412894828604368535509541910441697284244500762922883583571111566049885262341969244053542621358852155328889176357422302475560279251632350190189507255495727195088045224451519953334753263181946696030855369301948773814982960178049636265036228430673342843253383513222649031339019009273057073901394976028407912388628450400351187304538868788072644133251707618735640607829933329942788978483101333084433940315356260609414725321338514742952448863685302771730766369663767384123793995743310706860567066122419679359989948830539067747598681144159239838796938231326056325082310008467358898767741162074090792611943173459236788649743691233546834718404214596505504307681404375370139854642840448865297680653438518959874633849185549735859542357177362050369657545608688574616013438813975544343977572425796865771097609045865224083499286745757604932515597276439944225074852391138927635255838165348276683126297763053662806011883582634168044333105452066501642036296233676057637816567708214461435026459691258347775132276162195480212494455986912426964675726371015274501149150768268896559886705846809800064187209786918173257116043742935620697562860377224811135383054220606542089598334585140836812851186619180522794016062252597042130249966179219722848682937239702687087879680098301502540547760167828687444063093661878431310081036806919214701208537344835090300620812470785179265724402914934364845498353876547604443236732675513845063228796712601326704970899139345570756362765469662183804432810829093489432297151038527684836096967113691315110371752783721525191261869567147930066481114625412601097494604006822382516057471966884795033445625338868099926405911130438596484219760567291604517515013008283563982669158490807281936449072028245064138558383899703457919309653930121541341652349188288098734388386046658031408415422372836338185078349537152101111478339018735790825702048399656737207304283201193248657401388215752191982941318542630748991684264935001494054785981655673727735501750493525611592211554176308811125244452622127083802748703425141208179938031453751029784490795153008734055457845398704493468490217089982308166134494255400939272805211871000297900007580323329118258500827743096682742262101895784411190442904763667194243109850324446463079410284712954329893760911481387709329879864997065375572693687671111853937552547046871908807006476735940193306656299133752990975602252285796969518103555771607079271052250999040232672086367496049402995928516213506757899784478088896301547974495659568463263922842921526160365957738937931578176668051393078574461038164242251390073764430981604670706568678655940191169543219724554128601637815604657374603577199031827132883203582348279991991015683596059211345519815827225979219120153494614511625410110596625592167425821578389137385067924659476599932778758640272326789386281060991188882584135655405090933430268042238607728587697730168035138918397559763317931852006039848373328660026084300394629607605660098537665728515326859809352031248443506065920763015929822290725886762513424523332357197077506087829184960663499611285527882731954354361707258999995217264432833493586884279687861700711951152215300732107046424660630855212747131087782529088896510379724281133657739681547442963665519440756502980035850020597640351914218444582887715453575937813406225533106433818953821740038478605616933856967439163875733085928484654951377551019286777300300480846491774491193869961025098987090678899432976390307960501432816640467736126999638498641564339537959716036376620375939756083993326710299491400402624328650987495645322430579877722863009408874016764129692655527203839319119121404782584803383101847539988129424571268341457978586066399738754711402729137358709655879444284773969040838519579936496294048273438592158308217957867338377276407441061042740389530421106407734304861602398350511233156358767035158030972329216620916302468898787466057066187109474181294353141394491423543752271888663729594012496229206879660038391113546841191612895193432208510723375172439106782461672766855841221728156831513204269444442058238036465247006762197911217223266795760432196869485709341327821483674803774742388014456609881925728692472265677031352174362835680565156880304394101742628675944002803052356610693524879263861989466539709357844147628331667606969040573133761355707132568373699606647529677115779157270441882296904486649993562395967653835302315814312575374571008238048731451308824008225136818913873014771077039659643244023001534708042072883350035541295989111151420238153136763414958028335321691742551584194060384604134214185000741807163163262947881945706154214301066043199831349103160968571126251755087961695245469694937091113047274075771396034773574880432142737163291628234726110869265959811318987853533019924691654732136830485859951483709875477079798424289207580068345471565537617238189160462418123945797711603928319047177419547912066194733752314379181222037266943254576827206608708987151562377960568738920105157389908919277961428665832516877069849273364710018175249187039166710459742432886253502854495877153576058237103327907472714855345806861104102176212371633275466531968758036656184162307804941379774198529949699026181693662549011613053046853427568215784513485417603983533354632699161121797170613663927560720518875962697349662660089252496783089844069990146405955006288329141726082269026574886233671544855096794734152458330550508858380248492507676979139094976391653760113984942636693628858407261166520194668951667155903520809206414449026111989636597112982593809560504602412726813254215010423958814811307329910351461302647832776095341821962861274987198048951824342961228237856178573179894765402715052663815392270641632414187012229186526872274639100261235366176970147242496842760594045855683361365471424974581043923502670251661687365280276541434697314834605004718129294014676115047400292769362540573980187553171874361618299510125246904910671817536380733384634735701187006109009318307995598673163728785933306941526897973347680285150852793679402563788474730203632716196852198005996614961691436878751046607888400422396151103454052427780695433809819812618592492299325705730296469310402957066857714717296684606697697337060332642551064388054638998003892284603591595210329776743942719933044973053121830110692925928806347285978042599160381209120783509713146236255685322983263975375384389457119095786443279899758060254766045078676206176743098922503401912900712896209446659790413387058365151949298931606827024931791818996057884179603841982038844951002185369616152944094382783446396124489444080135650167394758906450663671226450260677478948226230866108179647704981514945646751298015970441874012653834878063485658312543250582661821231496512186858002517122640478350273512962486482982873786731773166310920163770624660872386452516155887778376692666570285679787810495377019848790965109841866757637272691220470216490923319724088070106026793175911988598096773370769913500323886720813457375967273481336107356659925841689918728696865999354169018177807676415010741434920480888382818334691526940801954211599423365717575069748766221586134768444333750337418147695609810674504612884214781689191295620763753107412936655024549200800001150109183527137060021568837819121117345665442185941996985981965515008682820085848659361124152734882096531250219389646764485593153477408039032720866048063680652311648087886649364044791323062697358223347384352168394982997945082570488726107840957307676976636401157014311230366390466226810103846267186780320639774091047713186498781406178924926566928342867218520571945219488025346820686831916208558610241875234745940351554263281819590831837041187657317062365091002431921398179097791619070776702684215376931590261801563115516360249609494849056505258967585553117287735734138921589824222985626730567914362044687002123478512782067778374598104358539215304831227230854052333897347867999796649305134329729342170725311602064352754010416037741149341579397203050390190262535480785305167841965924091858222048254640396840218146250365842784494850378420528210064954708857416789183183958067216031965041986793430838017592542895852406644297119346086932467237967715436072995277386900544111677214714181779614506109199800493015259776609382135564338293012600960309759586194274824827465779880941754169377284953771180429324453132594780502803995114486455739674360603022327201538060455344751091656959647388659888531934380152055317609332831394078536458302914262779154698264704596866819077037048060065206427533336703962715159737668568724257783706924021271547817452139134013418579001104618616939629576952830484899644143189209189082553731710344267032499496209723200706505202168617805912893863542086148650596766021597872628345420318461263466335194638556007610357964267667743418172648995136793788518991011769022001908991776079210754154525588774887564154155904861215029466963207588762817519099134885824284343713321797228177723020240791349626684689025550232652633342930284653897920359922935717824570727091669822083719706244280064760266884343086431166580922173144465306106329316547347619696275243134206665020783995189195531719020268862729676948982897540468824720662672730880815656077290056612182545967953990028416615891996141991958039609795641003191447912084765155672399751435882413656288843848875303980556598416941384860994912769192289193761658528261133742206027984154897224535621335917232419266999336029682836819820772267780933544221893111034827099600951330153103092344655216280910186715084944620980475563507171836507848581848800320071774371560622352639435044310784440701475262257182645994182159028125423998445533252883615550841544485746616088581690288979824302236736395167995459911954697807244509930696738382347663346248766682587630868312630154084071006579305034736841288165888575139926440112218488830747461289090542920042381584713737523982928770338785938219427387378439601673157243252716827295521451255847144609418195911509407956241066773532813612094426509185047046522749389523617336383347687069675746947332582426218364775623260118033777008579546807820248866425699565912569513404694619788869708559179925411218130350222741835591021519621394955430532131964625705406303749223047280783056453844801606748103940143185756837879312827781197576265337546443915702661311404979597702571188626305544265562954293079783378146858445986419163344354457875394569809506777727080844290619679054336155106506079900124887568493902923120574265027676374601451314064567926024628998245250563128755571526384928466481765052535422798015802848387484320259472887491855021133421217261823094700294259906195239521621273001771008591673745575500788961868782981699395330652975844926436270155872217850012380288707239257733675026704467981360952610229012811033026634408437899090578084397443152991013490936343162874244994439216052693054817204337709608495973969852333220164137178116950256715213012603496403709594075422359617913453579388018462673908492371728594949828317172323006633070276836732340956250104824343254258282626893181945456830869892705282867961990676632699637824208669029805029059047836784909825130822042246773298483617791837090377363521777368263809347731000746591852522819907325007837793599806166338442407560910413731978754343403631011488182006569501203446831177728951251641789096867139342961823649103743061064860946749147427067366161426013125841966725682145155327836961661194808400243282180749695546743283934054554276974806454999569803519251627811456663412836918016105946411075238727416247366398694260635362478030461950193228395399478906625958362891898322750536331563653570292739296827280834087922160791420772004371611822156506143009837984382461956016651961696651113169911286199276210666426285121362897156812148183089033510879060132983814383755645350141029535501229586033224987024143109994685422100350387125821148966932817861684902737301029047255855631523223602594015796992506908257286568266791191151393041517733081131066995511553455798449901969276654342645346387741106417756773587223929760719624998177848266106145475552291220551473689820957121122207862428574236440382191351569190171360665592016012658569210049299081921999580973309919393853847477119962563915927328564850314859378684632444408960163500802842881751761420350918733602505717464590520917368738469216675577505899788993696617708010282245065384775730726683734612276420253926209067953894274052479256625859008014319630498934396480263723987182264807091178623720316816356800920521287048299585497384177720894246024757280531247984825997017582731028683800062869791858612079507555862869909611211050884304234217934571312342571531136589306015865937702742852408482777351957883661081746225618462024246075165588161169640359041140096431529316330814278623764870976173135318359000061436336569637637071632627957654154728424535860756492560189084583990856740230947199541200010349372012277564589995552326955077727605703823562793410836904963300451612677991215148672096802590395103329345562771812541489011174749196317209422556596486220838017823988229414833659039291240238398154101004817582230350400226506482974090267533349291787040994201149223402416713198656801675169311665382142638432573843468913388646412708912201291741780301438927597281533570420332004938374056084970343807618581168885542540220404581259383772888489088214074872986452231274622252641386244367577891976862094497306697575843230871747316272004535933332239529410070701896682138379247558716653199477596772776453252043785489289554063226074150564000337685235427094299825772875935840252218404870682375113442684226009913905894794473561991518707407316847792109848567056311894747720899257133411867481173535663434017754932638034161640386117939086787471315651125389331330273115063627021760005420678446906765421431570763641374609648115906899405593084514257704902163365720373804508749572801251432619284735116463833398029907425913450002940306970973715877774613850443431613589514422102063632391764217973435348505709979346015312237373382422570699578745567953755885779827848750674240191352211259416753683098331581358486317416895545330776537359614175567672474552734549855366853254040748189045603433720267861065725086126378230899747091149016146202202857009396534678032251238542465374124883541972187004606525699172969106626235716662377203461054536339512902384777039437347957619495189472542894894646494282538902613598617537976445561222227187339075314496654907093873112090329250340712658575756751518779542062104352637675253130511209441980219092672590179666563658336352448398826244879584322166418965660700893471556118171153722189907526920838859260017960406257643647004866304614866243014128936017358662149969448195169820983353671122577601865910509965256011859368644096754855197094900392234627821636338375133993353277609675339766541916152005997732569228057415033437506389216510883844764174391970891625988974766947938798219534705240221272676380568810448580337940428100041391985919732461060855850369236027089727069999676532833775145238179082209018815559039064989009825029196097556860115349495015175377544901856055783929728251045338178191438319843694597481790572101660759065569331410435808516066752424506540729982445967328388734738930179373606834663149770829155020772935354594856177722096654748989838340517035121062184017936304402554763586287430229923784523403662945894519798897027234037513319482044851816949469292366494217745231009241056837325097357632282183733641497953155301236879797324786468787531291716354849678216351877589247841781772237264278768266160947251600568410608405406240670113259948179893979661470729580144398701515429819526502509500008821040639890602749644951569053205724326046503797377184897291607029241994556820227354137406693823071459850001927799093713536480369770533262030537339004670107995583517191187366063280036775712215690063932715878253778630905387486326023393859914799628083139950338221561154896050234956156035877910914864279056408792577013647359362172124952264901461261473803733810703595294157830387651984197545885400038217822941618086788291401761670734346031443618720299924902710893381717241768141492833696990054953614814020844729146996275580549751731588234799749074322697322863431147407664103763234829905493571511830132052721935013178851433771140653701238942492349560610776901784881440484116738619504877264159298272315859003595907746399708334408948507965031840932103325297464866081663385817192251540073903789715283962921645934902089998600224606426078520561603726200033236612195814626809357530899822733218502050268868627062105826755558970937193097766344520838779409656967824648244586883230650071071921066689910807294101555640740359486808469585696709271975101951367995954302277973552057308003511815071122753816934044443001600164582933826409338032161631126721609313396858549805779685675936613105348899383618028702043553327664055165633312559130651508789844697896402221578550227633006949175785209452207216528869698842565780400710653018665485292341927817348763031002937929633393395718961882731191215827909765055632842677288926835903209096992649612191304003478986063109944421010159484853228512722621485563699324645563399028422464692667886025618660563109858884826136406278221724782093835625248424839134216478340861913478666295655884245547678162012583094448204290279537865112792155003969003013812950875534112135814791394655106748083885855428205789259247816722825118300509588434418533735039310936885225096535335059366308957616083072068655185342559154259996457375976762093369454386847437287194595704023341848355657604557821446693538675104547994406519539197651068728421037355871893807249482221244166471611914279690201956582830909473412248342311081791858665790507836229488394278736529442111898660007317368689762256368703386452538890799391225953273759327686552375458519058756902684663881424264703411472203658708784081765965300338526892486772344673510383763004210251338456315745728981732211580130866538342167251678258043111889543266998334266785780847272863443351511703472206739768386315699832884526517187870991100566365568042805161826459942576330949453994916811824427787107951075214326478974106826341023137791485230022129299336922743661944669345343243129087706965413226759816353256886323967748293280105894374472477529941409872142867510296554304508757219899413379362999265623672252405432529725986692687498870050209230613416314295831512180168815548355904864128777668049732258510229288802791230365270979983944464984488238519162816528602806738846958250619226737085786388566660114748291226158563646720273017210670732089936114524926890327951474115173448799007836391569604360085066917084817862236885338191566602859459295077296110928242875536703539793131380577057743637104037667672467078681735052841576235000435044565069846924383195477129116814849252022463826156806972118910965042096462827221396473138305752184531379951356305759062127249323719481546970396479255004239916625262978250286980042802816782664128506629236950828949863205443166338340271357273941341359142265923196620657866169776400276713281500022887331994508943111364010568000056873672818991325241834684697581192505732482445583810282055351866645566624901705412949965890305350175001376910837204114372111218641161755721171129718617622967917008893979389501831936179446782892358097599518724643628860012739410658428665690014816679088039250745063752119242484727435533546677656644118902797468839176498021081558320170358397553102632471917745538235222444013679537965842603788446318421916942236176419462796470190328226770200345034780079991171787914067023665804518860185958401045425028230331125744614454785313155863919899180101612283056621735042913096809930314187276105713564701431087908211320027033126628770976355434607910255191036389485069668814487951186338550917026558220209749104750248065129048524844391911333451327966026813054175885414954594631661241578233046313195057455396023141364670609216109446299257012697757261128779764853700675575539481502171318302279116990665545329952250742456022809895584111661078684678773690653700474152054689379183687459829315670617269422670362463423947757330351060660185950045902998257896426544866194861069712006400402099873255155169996692625579444974900864912709591758050026567443850776407971328353136147394836938172178480930207276552324684297877151609780071557705409663897941329175148347651432932198659613385812734929475891835483548089724700045685711362134721487507699722615993849872452068960593632931800634887311444757152594533728686159455196622349924338498810447438131867267262063790411694522293733860591683513977534405036539086857109237900068240442604119333071420705824494825962167962991076413553554193766173293635068792655920863080226079697639895810365314782548469405214109078673475304986696538803742757970568430422613685128607327699800886593161792616644429523394594629221349545709389816928698762736547581027307878293995082853943794685495779027833031518683822791962202938255518214455707151930700679362065821647745007908126885751028224127443024760051370202768594853454912504102314202733387745661582874730106406847286318630139968416983312457310513431206518134703412952367181765510041407288336612388037745139025257188208242905433425152406332265570278945772788650091150059203590890962672385596261232166536983738126319954312778284260076518248060685210872046835311215546367746243598502798089997937448498169805818290848456388613810638421554761662164056687569654345337525740667060006496055798059798369282488771905891553728675591232146347012527832591373425004096857274447614959964615965231885781301154562425658756176436480717912148764853324098523898286134613964226227438577313278428705212418301146479293784105857961018569343341098578507099920619266683476761806495348858993504578566385302911679091052452921816242174896862853191083822488399224315514751504584516636996253321777413133064863936384789935529898942787900303946113218492093065965768605873659429266686907989465038462851641397240166620936914428433207264151914023228547156652434834058496737575990237260633697629720676052983823592002077464997612375084053460154260648984213114568130282308994101506567067266595381784877751972275246987519378398450522431194194872234715031512081303147059399191829312203135654728935454818689178228836184735705692460330590252189450469082555376712468258511356116485628283624445094133478674645739475674728435056850911910014153355958695831745700350056837006767017873217598614570603758143765737328068153353509938821486170544713898573262685279661098874015136911503929428406676588973038596996093540915316388231031950788800969270085321996854087315840198021084010355324707789160437749643183903720778388622918473819548269586676236778295755159715272865204899277480273691462233607266947989784668582278563007490946434274134890949530444963920750300352293919499160720268570373314065704612884726883425443064393239328650494149164947490185292566176040802487505833385245844004859366619022429416593834535611494914721544102304053157393090193723225467218881127119180531372318408648290339297440041596292946338361196794776163064142224520553410887288265883328003156000101785667982547273642291439901619245423853820287192998853456030665426214097808791553146505054568562190425353449872893977636462645696555788133109632504891839704263916695032230088839584514852338653387822470956532850459252022772306576725905433737422626800672631631821781630861669575472351596227511123876904299096790467539489789532382923172170174653349737248499392365404889707141913187559795971247135522444076943304694254936726849951414013371470571483175012047955264190449068910104018465573441369957360347094565819591002119302672122938822563077964220369648452965159919761935939050547015312067956946743674484697883625976255411441042800538611019384566696705627840370308729690785872871480608415890462399545260672630696821604475439252639950566637839852154316139062388094527326965040424675149101512526786533875378694071643884603961191541531763760724595315956490472587025842648324603027050396261336026114011395547847769302388677063383985439710248868939567051145127005458266166479955695462285794273726064254582699851349203835606892928752089592616631267898381562219407231653972236918616404440298654025575597446565301273378500244202695473711750232914338923967267761447261940719304616905365518245902033670605484452608681982921333530287909142272885536464549112058745516402732304307351633645642408917563414637154801798074737728590088503363300444536297790465434227376439931670765696606030424328343506314027811883704371598763913678222594608135304679272883178487332342406657831532012027801580388448129677212412733093733666964535992664668313586640559565881795075165782837396033886297314343402125495505346354020930549861770426077238427863647971574049503454535885773913837807597353686339578243285682187770830454057932384882524395654115414736128276992185871997812109169800211730336919807550577537439963087197693055190211574054621835101572802006200079165323707601187128300439902260471869708812741415379197011015908578091770113280708667866586422340794988936851801201654244784717379696782801495560495048645402318998960016988066659015317039656758795672898798366365965045720965906424407612618047648857991411986526773472898159987307441797641752750705001599667848252136822861070345931016321912290310212124626270729964987687075459276763491597542250008404930436103083009716069055920138185573842136174664583600019431879700988132672524684708762802210017257239222878903998330253369253933121908242138552736334754502102699170005181500559350904341267096837225428217300093442483162401021858977207718473820776435934723033968907142382497860741634904533781139776062813880323706364694032279651232696783459743583275007931189967512471910005329928720456097706723178316896750815955326540372808109429848176397752179281177138172959269276671954523553431865507192127991281594543393477886300522951152890049303935001338120252839684402389702450036699714038709806728401765434727541495715608270414989028977921778071593826864428283844967349816509591617181586936681717606216269121270613416681225624634433671438369676221458628961138892778225754115828569380483722889777319413623950865156111676650615694797177706409311715885791283988891997923939310668660738072424970880128520181552796960811003329635324722851987126492980922646799565820914936648452500533482292203070926632590155636559480197933390551924852391976788925898201089705758004660235166037316088832148423396939045810752766599237019312301383563229697355691340370167808067870465094986439127861292452723086366212316048636734416071227514865280352957586326561148183852971950262281783124977023484517658678134351545417765130330522834213221850532511763501883650215700306909340416639351220717445349662860207431573442651972793652399614213471251952901975381389193959003345084388109071952725568544058208377521513905129002134726329237317083152882957330357118056291635619721022730159838319966977892696281033039585515958937813707088226938887087762837275748783502887694729656577019922399074569087422253845947156174929981714138437363365903051069956803353220941759894487258367367727322663018042460040123588010217693476235356005531479882365725194952697961431757043788868736526000216088148949824582095985634921551724075812457816161890417964445107085828190777866817946337161524347080539144402183835111506309958299024488001053795180470790475109441942094789726208703971731928819507920054586576745059183968086982488359634900191914339972710909563999125396302015555781348092001947862841128674777280774012959601529163275463052235414838654438994455607063515290745238475645724776319653799677349508954343279879718150113820970330659153649729604233359878572383303777613472882853928327077949913725500823962269162329013044305897363549331736754955325214993773637930947877180330307355713089273679263010500112728845150412596619492475541368459000261839694415716646148667824636100428828314497873792658840740024604048082888842686096999065189474318969690475229684377948329001867250174840001862893553714282804389224121609685176452202078897359363046905227860352787203056900035471399403157813900394381937548574259969413200671294818611826962320708117049767907311912571926497196414146422233614321048940558877141195333829198121877182300912363686408935851584543258181425261092666414606714976331480202402398455065105808190340135414832699958531691134015634835167971542904239989379209634686816971571943634380658885959642605283958208547087313372235479537238531366276795635642608907762528106704985593507784432616765129802833455929217327428978691686652274652591870669663949695436289010757179870999456791880914016458818182133352065838764089122945254919524784881598721733502774353450789671468429743741933070301165145928704610404306835678704255021655140321678010558676312718382387047696659545623264194442483130483171597752159527086848267208055027383083367332572349784320070609064133361322588647305886901299310335653138055440396478185861253200058940881705698542049205729444988349466551683215896302909376247798110470564461932270342505405928565574544605600387921084286629512224768549114916431993314985391568562403267644917348643706458615436962609500244051020437659338125833066939252776172461131323730906944655032791243532502772425714099343117646108031913975727478016826984808524022717050094202006090158208374936560914784529276957806055541393905504667931315170760511609000722799342063254602368834852037953766693244951002701748646001325064702874343312375152567220535235557866957120552317767027506541506291189417463814773556119940641259462796918239420729159144474980233265217042207323184867572505713870404265786990617400804426019873515275841148804985330224783531819881874065917122323540407330441677308386480656016116767769933878122137774283210613609946034583580965558993334685899571818685063853933402270704751528730888593319419413070237028702714539908034518784158236903897812489850531444669104990065642246508418729598719957489317740927565017773462951415726905101059674290172957841306463277773075993320017090596901830906360344757746362723036718852123365150899934974430419341716459465446045440248202784648491638438247042900605134005192264608768594337865224814751110689005939212770162171162203727584521589257537837559967326924845628346014494995548385871836639363950923587041927554709937396148783669346189545734088667716212738822438042037470159959260812994049296467840356626591532229567745052385546692363974135435949765603213186942512441555477275327504505934147649525953840563400390973255239416843074357508111283471600438273129156702320566477274126809402692893367413366538107351775630841695219288717094549569630516981479115308454418242097714667340524515189741238920746841899530720402863257571951325413964392862436591312042003091818143925054190607481042675163230811824466633153184283781095180832990707111104998812998946331882750982038487907912303026900974405072508387986453758994436046796227295578447128284651654151479721257477812389715125732685972406380401500880881143916064390612991376159369171356752836565309646046946418638709934590239190139169364192362471918164298468637285055763679607450791181912058698190282092505498496858280917194683600362305597528856813098817504961943373987236329151809833259914563607651169327328474475778185735830182903027866709075682186210115728342507735013913119090724481450292499378179924785737307524450794044557414549795616247500996800107395299022511677382139111069301939835058176194762370141756993933604051666480996255634214033242069157436647789499942783948091680417503019591572986933226530078288208624564283659612842763163887396074269387579238985929134649119371474053312581939021420819041273734403353704540684634360979569066844591443125788793905334026229797485730069999421269745715301301937087219380335817774835173001536233337038160534880841324221849131367642448101333322091394447540449892302905884953072691118494352916360167020221083224790851126101926868550081390022013209950415007588314768446052290519673819106833244859965158834607253108186307409816149117481916777301130515146280844449992298936449447950630495963730491827460993928999671129951316651208043788576540880394068612704022800259905443240898340233595338164686931807615319602562975387316732902165579629046662099761584522834368998454338561985677269128212946567053501753780137676621612215297442871176226681796930387821842110009699146097680408444485874648811135364057506194735455507938608937279053396347782582352796879092987883707676331142999522895879847805802654150709632975983692426289412405317041009593607831649293752725359623291151143344566011184908799734714524994686646893751227534191986393146602782958228478140134687736404258740626434437232857117626979111493214662742820963127308554701552441514621347563647556945151143568944545962345109551937994581292622506485968558132025716854220014068482280822649378843241815427907420815520722968714142476821789392927704248870031966976947720291538904778789523495449387816552746230842857335521463734686992140630040249066619873816983107790533685545606074763138431637980330071987263962248487560001078364663142793894037058244032316656978098132659196472721670899983126646107445645996346032559068325394323799192689362043114577080719538747096196457428081270192029609361413142918948973696543476402786094394012376673894084004823972369260979496756328239779480481458212522334332750414190716948559985723522877663762563752835764275088899375443596571208815499007515779623809512550446436374917263800801852603244660615669225307685135322358457792197919286306476809829167960352610731232376454829929129577460281891435725321481957636431387259861712844915307952406536819499042521712868694941155581290923412619399978499312299422966082687303233297613106557383681428711108811666272744712236769981697374736782262859100376080939046994465799832291816270036000724759612890263504359330045310913867778696165494024358899843276708142770744122406776568700128363641238694924207800233269793846075803965587984782949046128330226239125316121908162528698212814486783536520088408352422195251767643624044633434026053047485877172828506049430937767846802387331937211408531022804452157789414646529965697413848540860023304049831612917192835552502682961580353572746761541617308415592550898745564653821207546893083725555223890142627760189596979102115625559922963108340599274687949553179257915896852126641709540728063730934094101221147071557249993158237656046497641321756765447259277193219977468112471589589844070585970697413714759607084788587233629206740586864498608317707122934375954825557331837698265004726408766986943105477619788792354039528535842245862973521629453913871657935153861433622581796255406965962632235866606523760487262921873454550694459848758260477843285847896929880338215566678696581501854045434833879646530152062203366101305543350431159783729518854339352720180454011009613425139915989279587480721866942839978269345270547678278566749835342116273878554127130891294297909257929396520333902516739355593167179086554505763880224382938175653238115477098532167448778051779919637672822343678350061388034198117294772538206868066689009180633548996019862319016062238199707831980026070530101158595346240005410026947424098909493362936202180591282617206472576984814794710740791949021065080681751721233395042331027209023428053205129045727813114467630927225883765011351450874086163178613553417226118349897503683685910993367187195359059072342839560767650710656871387666259172197776482506005285559290046661730358466300527511243480246820607011195185791753085519803318758408264060894148410805187862617172625506569324034590574243833083437493493103155124051841586512839867488595198779193232065702261199256959343561805721160385448614044425841362706989948092568214752185980779129180888757827461918729804817792888420953278442904225824946500083067589550881223906533568031590436433422158953516547893387429620073157502910040697509357647670404510286141756070802842294190001855628209705474840569555889592689306862184960992920685226217231258785408813374458065985567545439007133810214207212330038371230721572924101725607784120964730779524488770767044465615255495705320045319786757599992529769030096400985669508428178143759943267657868920812689209632410450607845530755599618425106605256287590416833201880038459989490948631172355609863227244262002035435800449942229946800175101730121184169764741058053411214749274943109860415687439113745833874497270948037319944868750764677306482737326870636833572129192750087014318167701688122565025735720827528033798933951354296718421283851000617720191111415697977842471602476126736259086802164264242169460570043623685907447103981740329733549267531280237786071143663938770412035959767360111967037779587437905240476728770115517483829564614006886839911056475434429030195477924318783519275293201074202145542386586636976068514659578363279241699943783725860608378702546873119236153200642733488969875799210272006887812736493176892271745208432967902052212518898285536256630333803315167859336342971718085084466536982397306023346183256537621810433434239120713498905869956784559988203486423248856740132748120259822889599074516298495646604399563667979949325492625986812875013371911034945330284253578271829465085743201973658270855983826659264143465333614125440035821467138017958957515638063143409180528649179608414718225592237240801396282450274732867342259002457187105610956732795069576216721502422012930302226489632208626579647157036905501144272849237938814216216093973640022680801112617799419431044281221843051162679227317566299535033670483133412349382544482483323836475925188493152110745676179768505349330887378812830455484507864261040388994742873803309492818381633512609968164933588029989467305572675036956668307094226027670411578829264560171285577681947884530684466251335767492100180753157715489973414896544440662747092319841393035363285142005356104692464339974533873664790592813081385351631589165952396746045840601683641295494967757224226093600204376212110092937365067697325443533031720802489444072113837086192405421951183551037392645552105239155796042712941210775290238841809907869501988177124242415308799186115207705338906486302662580221626931882322893373117113725209885849143094939375492573064145598056611571341104728961298050359383656740858211476975860828516438868627602499226669008256705883961458297622276611766080627182452131362755102486778167540829442150970263037742869101981320281514525724275897734123514521258448321829373512296137506966320029499862961325958933048426012263233775779505356054460326911572812337000944721514195689622265938677888083264560378658146054996787111321869028030987639156655873287090907129448838761487344325492376380222340211349277447650997240806160329602475562266989215421612988157679612097537213362138164801362535772992628680717353525373655425611261793353293988960806061850248624972365860537631010456756545287344082849001212368769247571369378394238527532861526882454614609617354902405566173410951369834337236240379438736793344634488130678019574327008950665149102051964285411753164556008574082117206963797460843172388105413354244671215001199071768718163629637584073485798075492906820024122164888301022261463122112899723329925174587458528691521350261828512976227834530242701282604752779964846369263655121062628293390407532014249974766512170654413814047432358199617021521965075449795120212910441327992466152514341959648720218395958795671033053537350337586377877627207010050595476549423378319050614825585759094168942473072975704286269474894604873710309726133139708764051501913202054645849632339234704151652170175735422128563450024953260665204476399070974116646569795405879725730732470806236613179242794797647006502841168853246989988800219489335552675127622158827786511158819710897946618884749101877156805944561422942268460370142096551963373682380919324564703481622082811509742813125836793657859755501654122275590458491313322603113870935194473575055582387022235589132998080836194793980595807639032606653904819611873844750541858535665110475080061575863643176851902842779797986586824034168241223319164781963129146347631965375062952670029386985153533899568526899996260012607976957816874310470229850503143081989847383116896780193239021610414862128088802381698551008924114270525943176706220886716392589099549644294415230687668915373642733688709989310209648606804201587675642327491501921664252464348002028026135297685720336517671781860325289673295442690974090599819706861181388442153407256233168041301902618568579146471516138671185439987873039392013828849861080949105709358503427632514828631779824367232487456494432028018885992768793297622032358498982606565287979136664929314823142300926683956789383265877207355438770545023596785839978611811281472326221300371004184822539030519285496263816989459848216776795582274754070799808284959310691729800136950886393787850181761747672120524928647630211343757412571014295849877170500741190948222926270062781937953745949185762668457823053604925935724731318744829341260868026543699098870831268384448320035867156553662307437266201174569339006257448196786202870742372798517794724576818721334635560300557602784370947235408230695622836337776288786384891052779946330866926735100010302688867192426475411525925998311423819183736964351501759421838846367222167895473658096868455479070384857829941330099691686249182311813448457180666608795605482201092935050467503915975106071582000510320789056176932630729020853953067556043605174732301341857721191072685941372273785439821421109423153259389873406787064723442961709813667597166031507023141377664125515185672027388110099307916665521365859662592485082603078494892705847445981628987105620002598187318290968489111781256167364033165432923580187411203102867321456200192696744344216375867428876036130525897842318191862654176825370184895213344769054173353202896664979983613187825157061279090271446513209354773169060745846292579606179234748909575844227671971177358539785281570256671188876427655122542102273893764520275211244931970990109632270302291002284400483293926374417157747801424903347474166428361496503391440796116996767036371235750193922146199564886644714837284965761976880321980969560336264386139288258299254001095326670928508078625224305469051312469897441441790882597541952254248088660708933867051264780226104549027214798705135651058952189788511114038870578599927682558093304371910130969045147620053405368402608666408326509770692756708996136697791251529731591420868562757348288014118757302064490202341424627382244872821092975219834907934599166019287729065536662582949849185793052435481268416888457795416791756202016146355361352871804658456272122946853178275688244758740359282429016927552267439980615997336988936197902106802013295084274180690956724852320334597912687827868058817498034620345605372826659437552309358452085838014993421137486357827227352845958995958635028444134651226208938495862659171922611048024768870393055706914076065766725488732028502586446654027981505994476660587055403689680750477042428218569130110961469301352412751929811578730676820004217945744085802851662206486285853696390062431032217861726307160335918741248448735349179042820319581954975250127942271053153328041150736592424527010567788346395804620275598235242743371966693186412795975937485531812323784534575253519345987898555367937072095778461579563585752312298566381342984016925568899072047235758092352502882821108491776187822773414397781602811189019088506984766265665670859084601673463729771341501950590466660612100214857888831514110853632665100719837175879525360600913804763444088963900688279019498515686970150413054465461947771273432768117867622761319214997779845417987137097800064691282509862799149654244567472770390963231156100950301587805264562451967379855712502378890318265467544585930648367493208505822698733747967939079526940020449548298589671050720384022352573458516343237019893965869543252508288307671107673496284481008342718995427103835124402381309813067082678990536800256499699395841330892321028563689181991573394071520459354774654654718225911491703997484340155867466511105320899522031107772120344567597499856130624738049052295948234742702995842903397620895975253823552462841103868671874413129694568949990489109800214441634568291611741276619591956758534105253959214842729169190464873815458465302256811775948708503149576110743112125303534103926471705409201713859094883555347383886319977008435885699310588879293689382409461135538670857582109917716726977953651162949880421133279754494031821841136393650767812351810995430273681015815995338991718296276791181288029229043170653583678566098984037223403484519524590615069006780708619774510537471756335127362227745262695676563877384900721931741206248042472271925259355976184557963245326652016732373578599038323572010650744760166434045339859421433096791028076972987201076470112867533395229827148341266717186907402235107835024476563935711290594728041428727598401435660764517160283154100170073985934709917710247855640242393878906283046180868889674881576341480085519558121227486371529593226071910729090231250416812904367468840860144271349231831095051072615971171477610668221816377074471038749091185567910744379700036294220180272541732026675269798373439423311987712454546882498779546376630260899239053457162797816378073729422521420151094937188440117070537369908609118133294796557821666935103154266323455574184565341386819616659317350166854159648105091303918868526775710571683965691928144671548286033076258938315686002896211000851856823700105359390305478891088147266745141082687441449556873533718534732967222246189541980830279477053797624126168526542103451963886467866585721683794173317925425893429873187804289294322009708844935753556782445505052072775277954905344460613466370140305565185877473275873823534611136427548658199013037054801162768085715785920251264925041729651849211559163399094678118441335429951483749998982851633608231682186775291080062895307266466842385008858369806097773488297010188438889592304209690434083197703991283775969897430476944306170350545774113540747603725680348512705026015773660806368479135621150964688410688401886890397522102776973207312693888312449059160220879255405660168403939422572253907317269938781124753111910473225691822748983589783797647169710791467038975702448012522998606209675706811655413669637684919509956840435663414482372543138267834212451926855917668802664058015045129644640967272292411148434903620782609811344331345613836955650079504688028466743783267356113309131411457574887380293461620238188720166622416291028406034802169845457758214100487241252771438867405336436548667972598664310732195520590806321164652618813952914291586913395618730864066410450329256466777103861486495947315841838919594115652568889999565954743100048406373855477353367577605500565755556332698539285211884168170716624377767647135134389998191185210507517208660563877811737963595027545153524746955117607764971365754857034043771788206293131645040756880111065297639893223631880390800030984168698786061082188536448897757474196972212036443057225207060808483000496535083239461403134642964135518563685790623864591240406057220484523717126199330992467709869162218452917838831002451310662851488773362688998173171115875160559237344908209267288345897334936532399392437526455667236987639925936326926347972696953885708069579512211187220820219901422953086639903381274340897277027924847258483198850246310905681604300905806403478023121818993184402864134088875136237802788297896647032536367647912996678785882717242304958035755543471314634688291344330745361939474496577913775454457557513682031499032906529571993978530547266968789665242522478331710925791187634655474656290366021191426248096496877598586509924053855074305330672406826709589778701654155819845066894087546847963715141161552773697117112577631216819575032479501051229693403914737762927803244502946498093257944400204604050052160725820785948846109487819045034394316900363703420739752931593451456105205248859922413396348401317866669439256685356458901210255882648764905350331856389604805555147646555013746460212427900129637927477647010466610184582708494554217299487116296767045290192525182788608129784520244308789680759342072730596701356637603267664311956686185452639019877048300653537823366240105656192530624532660296785879388393003662706177061321461976228927695799664253432339171155767499435254108414691959322605694316983923696493797791366870859207427497019813010405350606854284899734911754614394053626639820374009875215338942597305179012266614179594342965070052589020671422234269331573948209139137175125226597796289193630019222714979774101647953756828574439844168778295296212581638083874463932692384740503855241342743746023705444615898856396647371055951551684817796217027906505213611370532139274182945487364274604730471544209508349446626161324468207475847453116348206285075883659967455511368698797181317998265747139748780632192130306039624572446209400082556610868962785765679443095926830987528308589779798114285259629327183174729864170155009053923526130565048188577982540287939698040512544652810932234464163515648971208062925200082118841571737545879090739739874775576453890050918151320836718204699780347425171754372680215417876876607095758052945934614783583476287322797875960902187399929520105754351270796011987748542059504813602474443236498740656075601706620495703331662948641314374981931165713207532120867294148552406304072609304440654720919970437378183670092999797643590414745219398111811065225758994216862802423700249782491703923307291040176207387738310009280455467487219170917700015592900726838464598394247036424928746590373220078360173896839409673065170352156685851336811457331890890811782737007553331376148605254108964995496240815805956293510109521637344992617851479830017925568501047725589974143185187922218151051211269940380319229008051092773890020730314005820072678001221321717011610959501845223721005706661095809108817688184298149294004434606814552759785703498108994331078685945077312623328651091820476652795729557873962865268950617494255946960681946435402568554720320786572296673760164680761225747873543966023496221718574420482262392005051474870389001097022905220892498074526266642321774325061154122972640688366975362457827705626335247985638295613408506152235003375163045882541014012995496881159079746717241666764046005565223225810807423436963857462786118597820170914274579824235921990681210983408772100877011764091095671353822267819620106261062390220884843558262202878162314116904880349039978939063645133774887674953618802649752186717670871192862370065671998747791391387749968832318634363949474741610647313985261480999333825373708903374569060266072251816138895394014670721251917312204053992924930296445676794883674668257841208593741572774274278902156951513825085274830791265955237559696303018797852498490244766460926644613351322866264267948125632104871320771933978576482923923046586708718886049522568096655798155768878307476556378649548160807067558216122721609333578981411263938916895710979619688142842819472199831014233692613807498659618009391281761212149860454862976578589751682511555990284834938615849528809371348530008828791223132656187884261803792324306542245899453832203786955304431744789634753284186167398372550900505823206695681648240074769763821564871151380052288215385267775939785544602351901362527446819774580478082226053675087902527102543686248519805726350131629423590042224827355349803275150964653719877134181078701125345423408615578564586874055016422345053786913292029186219208503788440900801521615216773737281051922571002878293257841726767955626577337349713437021327510111391448504428592590650518246787039292824392934847382987178252538516522269201865529329210600880826264044738680047168096772002556372739814478666356171323760871275343544894123832371678183056643341354398826567857104761054887141728515236436600074506975555234251700566346896234939454667977718111405310239157119784960839373863119001073696901165229722774470351097342700131036481773373037548831885407937074829328313443404236633001514747760458670335936406376789157760140428262577920802529215623003296330247488112941923253571105449249483412801367948474788615887399057587146937049132876373154626351244253273369495446709403658815771177950659364155246226639356856619163033551360255456646150890408090989942389930991480759968766613233766875057878726219780978418317063282721140948868747211694764896997407739050496710254315135681971098523603570631024489017223778986924537179801134770461421622273522206576399682771693518507217781940442939252419035215137400766751414197480032263061168982248267251686239048586838966418511431282274790728746926997288270924481375049767801359741677210963401605578860863761810951602456713612236766325102532969196002059664963580069387398191084265578254575914688469632158029539668253854401979452490937109097712050919393837986715543687040846666455538639543523893199961155620633578392451246808967815890817252542222667161489427501187112080706864710212425748396219990678392763068149186476339665099624643913871662279670218022229809924624130447546082192172164079806877934100195363722762018484884664205944782352376451112933879212272828943397188185075977229569241635612668667299062868501536589320875880988962687033731919525612758774605892956969162483428071327767851111854379844299920175290517190452951968699367645760638399089882569082008796615490135485004491429346495194184245960251385679707052519386165718136566672640825282240863289301860696203985326488746483966774206479280529888459153597258135719901463846605009602392226141726334926236750052527436902090801930549400317904440160566414502388764995581973778377821129690633710554910816607868063785626161931286102447919777546561306981532615590942187207932413607857714409915768692760819741204111020802763464690789260437936247919666382609811993592765951839065856892793668088571913207014722224982029008089729159131388732131370391179779640402994265052929347312527377992280812035712843333062605653599543538950626928136472860937860031557056150221254249388088091684543028574802293260661247603430624791851091755365031791040919281661200726722193921365789304882250055414466197839123515079429414441457513666630992289129944052836053778428316219891715383047130285078027680307611525736924759222495728303863021116699146581123502729845253213147225158751986902793399589478006430969828788896102144572958089682350899824957303723364378039140119718168940647749078585710906561179908702984237227264364732250180367928836803461648741922090829025552114453708439128857553780504515791757906553342662992461428665354063763530240773492431572090563661605173133933108384979864526980331807986319022867510792999987775116110034741574309446810412307120766064633418726002360092147435637110032708399850747712890780675584713129525613984061269386771505087999347663519092248367368647291811934025611160464256488078198523198031254181805180084258913628381143464437240491339040161750071723461440245422199188729929576888702730994165192127786650429716929595957950028632375591700145717204045420423970524360360121924184979766229831772315355419286884313353766526583775893042437158270211682998762588643485235423481372219764779473897938621497231974927145079320707044614851519581786408489703442499040013290129106881259748410748598047347715934229292471878369742363444990510166837017218041948163519293918510701179635116885741949792983008592018984010478793093082347550328444060774441958457606576918245794417765268441185497987410071928103739331756007372718894105244443097268432165075723606080214438388095777117815139081712824219315749774488838819717327028321170922095013321454393307205451570856701339421670200696784712595732217971563450439529915037824257868393540507272178881262790153431424907065808029780290945371348703691412163331815152248228406423622880173611694522082278424012303159581048924728513856610370278084428709490379299630282004627927051897327507724169077102936921182080198283935217456725040302193145371334545532755564050834304795656556104327994194062979952655014927047188915889606214503569166194332236797203217413352773247332588941321180918710550464420854309754202319601451102634391237890744147598364608650081376936622290311256570747200426536567157412314488200183444714125780503348758916048165568345093223389070611349205945690673972288360256129331395912613980236848323825830028577812193205166499992658309921651367042384576268948268936560991298462227177240688805117834715743512766507914789997096783651267399555239986504432816874342227094861155865531700763812617401880934953188366926284228813841615679996818856232654664304586371497099839054946888309333083258804056084315787838850772878526428672398181818573189769260636070492439195749147592105910068179725356201139095779775573470937535884380502984755202991776538304414674870904235822107596429302234551295042502712026340301822089903317178665178807555866996946132688242575292916454704972650776037071128397220285871253378914268771961177221139087954372852380008779018919131447807319264216548775612634668907145747602678717633891767236759446443368783267264696714945091992182648977658922905776540000070002631481885099756540927844722402573348335154002824257754406744611731594765229604261331957137723162741433124089241913894945874061356239751031258947059292578391751493331188221098607328563623493950917403686706445930299880497954600155773897215106067359038155161436633362072168293402859607747942518915244763756080122683181096172538583434859618472678027163379122018093151022664711353870025263688717276753126501898911224762128376157638871303773083539857696797377855880606390242257202392245796740696981551862844857369930270007509454084030071189948534420259116456030484174063330344183618315865489691027959387509233044524197918090916406448534221833659528238822052969429272801356256581760323464823377617719999741689485317507319137759768893997363859124416177727197690858864987389262555493710861629441112637226536378730083196505918937525253690140202766519605713753383924568600325827197463078839966646350476450259015535863049883599405237137024323119668425221781631620794262299912544164356406890075458708728280063410349383177101468291872428497742595014123758551152867243871267703236148481049900380613719259137807086129482028353634618359671840060770017495738639686312946048056016087978231298014232513956003782962644881913119980254746410224199117898827925088056539323158911678084117212160507575085986045396764722470071817628927853299733210554713842643046810851634350461900147543561675147388660029255198152535188671807960776650240663313764690512169114782435132070139437432851329091572405214123726259324681950711868748000963128911107994683662070108607279016352333052718451419702434380654227620208345811842622085733002651042524419991286369401005069882999225203125994305631076620352186648337823496165884253493330503534156555775422850839645958922114606214658669583421803080137855091407005410746751123090997850867075448262202918992945785457312570685802546927479576990166630867917945223182815226501398197439697033484470919155477150147843852061930563755960000684593771546358527830654975631689041132144419594835982320287171014679750111462580291981242718370534679315838602285037126422294411682418691096891145552236675619385134391225908288587284931187707585491040841637997428580848125392024736315332639449581148681347470232988672125721512281352699119882633714252524707716282740644050548011946366263334458580079141198860730511995150000429011395186159728023851252831162239071409490618615596020304476963314360420615538559950554742629954218046875293475636839109055183794350767873365715699715696752240559607368388861905914806598957001047580070086974560502316782579477596334237965900066283872505049416223357850353410141164908029779620403785766071889729085390091698614157947044573364497709292289339115041532485996459516197245038965162916523978850592367716608329621467917938544865518834189824112959409746272954874066784651620382964977074437964801593683562672791358004979165130626868701991434326947389642303847567736941283349256999845223076358482825287136147754566317882094411291721374482760421884205535290343654262173071878196140857296186135346555434540739266825631931829227557188890608175983028948492457672657946346337517660620308458707725241264632220483157822201761075487942944870984704139969424325089802245009629095512521518142966756979763103281515638757480614340598349578842714466055569247327651885822475579554080285852554266374094868096184580730543336493185759621427997293533406962295397325972780052570442267032691194565672070471538190895654674407826269574723801121751664481141908564960075388420488298370394979069247485108521331734740910973094833130992459862473471282078887628436031522095665161755066377414563303198317928685688690900260998675456716346047663003667182937988247777328331482314150200223796670503547490014530930536752588058961480202907826327110093060647865244296319221107669272628545638516040628442851027724031782147667638360202510488791148260575041582924686840804571110328142181776153284115049699201250823580246428115243310309391170080617987684629995251360167039560460061957583916778993788599212740970285035315596553676344742236212196651244117840819115975473548845819235584808269538916043522159875626282226362064351328632518816260896353724292079718039263781078539344895245582116304055504366510767275270369377002484295634688390741262129463395214957290404278746460552996503324274561115107932665853449945441027500903210882376135851040363425175151535260790287885890416398125448427899409791692516502884570693562320096561781093356146294172659453955285602182718287019869486898764106914446974977903101334683543606775568717975521391563431881752775219455172024704878139375540328877998587354163072529602073805601479794238121753341262510450146925700101470544344086786644965625556833747120725518467509652484312574988588537092796826145101459135525372893564499850040576811414533276294377957205159056832246778197955138423790956077764129484500228967492230319289906734607609333526308012843554287258089744402488835434476101074809687112946631404128267887323160386405899067146709001220796234310479664342861512592785664656659567937822827817462910434166259510606568043974361360061527590322362688678373158316020653700706644891593745425792961378106246089519067101314997471993157886310313324689431478388673175727681742628118132313306764185610957023035189047579945388534549554678279169003544685971458896706047819637603241419453209015050043925290359567531259150494169264516435863711205558351470774167853844189209173924602463662714917764287312297528139735793953104736295815478513198500273029955116275248565799643571037659599185213968384492668552588024745122452878820882962859775236292550508000419389754689331279988607956306188002593666053231620866473462793396665289386330454037354359511816106004846875444471412562676562764400876736420488460972317239881872422529249664160858656006166306773627212437420898700279583925641744797860444056899373969418973049893808382025981911757460118169747571419433707213105403497667755108463151502514306016364668024211253412721282556616806534788025578163007879873802121955606765043388041710041009671788151366806086458745315065204361772140407671321884936141812647377725579511697728232764666652520669652793017748224466254913758574626541528211367274263070133245806702311008579184786460317387738819607026323797844394908020895103193302201320931848296823242624566890966071521519898149859386308152718151637055449546393241131237772587766459883954429959031562409582196565872389380812875597106656089290134791671765749590802673892591156217879659259642817673337279822561097832009631443534477484730794969899904006458959482063078886282797209353156110560549626717616318106308116277874052679755289108585827221996224299851626837559244406433278786652384189974033391946279030823384579920244939830640101031754611377305875729514744321061542661975518199337381424260203065531598187989697972901955897500001076146296101675088077906051429705513998886908432298166840247259187845990768637626607855700355853963935846992910846779583700767927053783927711831691291082898341984325819691950985346660490261210634139870503039180516836878787029384961598605030174636626908568225709178546804031915093198700900029200448237806923471154352279626459634548683486729018241412531415529870253850507497526739081956125872364014059613372590000301327402622771077019559051647724455025597501515246060545146585190243785484928947998124652164326379631003245264086687734154195782613866881052711423012802764251443505363195483174826112864399486156150241962421391867993390315845985973512055346138886648602676096057838091855653675378598922809561654530971319223685162506323685065682835187240582754093299558469109592317008244193218226895630302614751697645607805195567040575902131187316487834135663936209104777212454769697277490156829742961784228285078273394999141369083755604520100618796296709821305315579621436447745238839185938472380391332954553773673085168114395142493347891484041881316529413843501338396277038405013468528633819527803566184553731130289983396403159405773042030526786400385616958013404145777641255572908450779274429904125363910646485379545967894211276689090090593521499284138498787499902211655136813221811749884333931025157647272150239482317372931371135312757585139382670935715396173554461142861239396859916346168134726497369359671749038883252547153407245241574147826068376798407847860342354146386410171552702999705886844086039667011258688369214973701853251336304058102125976477574054286609533219525501316291482750086731002151941104944794046444258830139319765477564356354030948203910646176204824527361594902510959797372361910938408517467454819159138540283506852494612239949185132972439598414264459818312240040227405323592937736045341966664409199317026202814350570960509401100919395944280307891212693957202324634318533831331621604963321174021249275708936679354218650869291141975831145923741931968746428468077226485588555784856829762762585407659501696169320032009765595071772269818856191499609652410404358068848476832176052393128993619567758726175863057596083748998877035878969358023031284938864785565232008466646279767484937895156109831080812407284698155035954363852607724285573569445251028428295660404833406837586031134953643540500326097693141699868544537105418177030183814856498813588493113869061296131548894688468465969078081319238005482124554516911353073635508299336068517515186898194289925708929300825183342970552529036451690912456712493927645977373621813047969129532147891479141769091062052663505316064955177835776427929134333085222601718413990485829730119126099772563830532673004707910378753880122954396874436726709470013527177647061698253266602425498666508495091161828195694667993136817823058695606682261632121079050329066429270906790265553977916049487659995618380355089031381421237055591230008670428547073731486454755020959326088479416907374722098896842009498712821941408773008011915610305572948261966597088909339439096352991318605528431812426692158170963462086254266810881663438075480538243773371050618463114184128012350671690745294778943972114993219936935552222196156237028125961751505659375590421121476345753746623061793589852359557014346214036436038598379800779918929095276976698226013813845111258921260287378456310467577680258809757059905294894990579833230195320220463575615780096431427114725947197430129767235818039292547442223755763101788057977179119994468518181069932991572903825720035955629529900410216780448614977479828890065224198279195694638515260463857201205023128326327228181438178445195990870663829488589955915379797360639701568511006970217359433423826877072102427194383986399490537822170330226922015727625519938987693346963659479206335767558842510119173684388472662231733133068494701305841560071769647387202015554245089499733149627914373531911795502266102911206128569336506920648242851997393040661725835228751743176806802458078855879405965807850005292442725514049578244536602002309400994117755837618097932647281055848782331079039564248893486447799154291683740317763802152648420503217908197297724455746237005775437691517023387747831805293938023515254275553211967134682068654673771455754080823372113224572347123232763145453872021949556172125228421240335900376543253462744789515880576691145023847055876807233750382488607599132952113406271540999713252929833287317151624153017927909444287245987796295081841048662729073735669081692826686188406501099131407225244198979721819666512893281177836803405922877804821419406938957913525702642446667855551780002469413349517433103824314270616118598190506346597550695457241035194940953884357268851729552699242297432667701592588206963592564760420430838822198168071748890588916283905063436906745497272931327262844153832386699954644200050113344014108924653589849777270070030505016224434281224870644467401692618069365577469239925264645240651626711065288149876233054341366048671362488919025476317558966327712059938259914804346421653140145365569767225221678558942720900499666534137927838053753892611694450995372127518179646260032567720342408005314622933045403505369693858159840087266033483719757810531500167812911036536470337857216427697956212820445469994606669872349771192865401419621595888932946596065359009790265767275462094641918045862557030143047253049222274127693491306375876652747351750740513229376989731910422337706620168428600597974895633955354387074921738497482713173984301628450948248649310924617284324621810022989900566920051048493690353477430672943741171559261070326290492892610833528751924037015833703761587052501133084546592005716514607838138292804252033253839043058637499288727392316656003413975555721892000385079102523990246915593445061397531992375149245504367534148241466543549027201584785225083465848873825411975840059849859266486097438831156559102298528205266757184347548158398589689909600092062944587634734084589785435216182896459499513096162814573312422220559423166185214841075234657259797188447244489793501117624810765807714250835825587770387787852643539863631514709994781147344083659154910386459323015181535529020489934967029723852925880347671253236352524372789054366477360031029119768949636784796922886082881618195058682991185045398493131198430808274148649681986483831302284734022994621159737551366649570535460290998731170889219670379248642968427723226348486262088258216515204792045501687608446108845976081304345190279143033171216865082606713105211488676291621276260715379762659343745656218735337165475197020467880371484086663436878172735683062781129143327189299564839997195060565142259946428133872932724545140544826779737829514771765019818927895019055374214364131065483193879919974302893960599404473062674267772350099955868877307583921528172575289621161986792153114494590068756300527404224761845558472777391364456841029587243794016678535558246659435969883631906368553217653200172155897047681651604051449433841027248553513131920552088004003137517496331764556390573225804585469888362034334768019850766165980714592442823697393861824867628974388949151621975095998855344510340309276873018069151855230519996969476427586043962820833581636259297599327824894913576414164866805452326002093716035411318525109180178954240541468105836379949072885403325981821566263174947703807525607652332081570869383474209541246843078991040122778345147683419292581515329866472681728840927524919915463156734356484303908895385294342810231701857305078126594161625073242110384605240912316550722316055904641715812175302257393908910787907697545339353648655794253835283235024310766893727262560227789827073847239906614301520234794454019160123570888008072569270102625792925345851808053506701597440320946043285753056424762312643411680934195458339975176494428417052232366788810408878117526241328779435058619703075429850264073874719946274320301825484353192519181633636094763712838233809612189883485706674867279362214690797048978402848952096748399094524300523271175443787370698948393405612818273626787492277950930391506646531682578028539945470673880293948397588696675522135624579053601295947921674794800051473112583110544144811386286748436412845277379839274451932830140504765061211049742178236789572755230616879421331709633287900786316043693544956038385753218552473680324355584586304488731333642447231941537197716452739683573476891043821953126030644927746434990066318743407716854132416333151708772037690318678258963889421537014595026798308831679568154182312535625866730480620588199883832227215601781765279134376663919518134898928803441653711552292445283332550979999076348364912373940678977134179720390749174562390995135383586145097338263118322311649894669297268780434787854889368543695326035158972007477383094874767871512084224028071620527747552049550956060956849187329201940824872184166169070111907113001541117287306953192784179610351350803000871524594162736007822275710466207610665320593616698012485208097669850908512518464752204492078455438392773206047845572494296200603193760378782133383438857425060244945244227871882453741420388381839914916739742340937750320984207284867030115696912047278735246975866381887176435114960957511447848980632522075568565420509981583180960208825440915986848193625193533632302800777312025817744706464177279875547208652495719723267347247473064240645944659268519579407254455688693744952688996282952236345998255746272906563702743656717483233021615362583265883385080555116808863864369982192346414510373615587178615604340243445609765593793711634662366916131043863441018970775552282135311078253177223933949302406778110439248206898938757461655470738295195868643983151345406254044657741541764839791018049224678040087854992230200357044561848961119149848378848327214083657581508067307988285409155246318493499945250835986331735738479644948013755866615310068212205990264998476726406047196581170736647095380599286741902606690019395650187864043302513089069639374464510948651349772334101012597754856286026793185174646580116945364377911169851502111025604150208051242230371394322055594523746983899259740881150110880312550076664501804331090318228146304080468006101288717614876057736510774515835771098489270766763796474109569477063622220052369445694405859899757817529676010154112738549792204428465576244380649558777580356985739202230262931270530178465047733668053887784641005299680837637987198283549207052864876248602066133819573304297513635902542326132361107771470664237536432786598535194786397072413325394630855177432045183667646246411092735311128691544014970036304182545315843210339248145775867745375726964450184984953373529134826122575796839863846110941015095331086929396749266396568288513616573478516578547748423821246088226286403134020625787319611472081735169984362327287770430300584686070432342217489478086048161283707046198015080545331846453343448032957630409621449357783889401485328213199198282015824923370623402413847603830851813497159279904516466231362666102073957097988477015003008075878753437911620610550561196586791192447470522429822799862754691118722440224802242895184614089568933094007406157395158454654432210076565431991539201162124865100720915505956116225477710765302128780806533286664225829155609551465433062570913012760988195756957480206774555110725581609835046149613244861824728756438637270457575716015470161585670251614454604782482124343260574340311965070769149001342671252738707968251910937492027244377586130132151817155109516439150038622098395163444978889947168854641940634468973280576558699799400453329371880255005318479451360092985344947266339765400473914859333711769537686244344306554849432261343510787048533534499643372062411794674261158997871150825772231251351634583844350710236966741277996067962494821328588097464186107150611734088428886302901954120703719900809570319711612549514165916845405321930825413963095646396210867359997214422984117801221393497459708986004539524250601447751410254693526521338958883130564928639829064933957251078370817735039500503894155179804076869973556851965332468099549752295570486919692988408443261793130423064948996638484252333995894818856691058420438241885988935007268198616123317445745631944599872868267166596274394272703102425411521508216516017523414165397212306488272028275245990950793848612508714603774183831011872001429484445178184263615041232581692385722849464662519433359274962652301605160084387347122957497429105746555288456471509433949646354350276053600456468301292523908240358026739047559267922035110490652054715060446770651327906079305803685692932295139153372918192487338679846404917507732039951742796453573882525828479302024760955526568961615421571280487624356709006972030242418362114704036304487840032719115547019678352846315244354627361131127992029717438408145801305232068161454833785511271103055458530565125375099627902976576517979549377085229027291087796016458962678026178429105327065092823939593490780641093129277627247683120273775998837113082206867840867950915837938124068880855192975029250957977078459656549424433891331053255776241454690901477667129849802336966438531107395503490904381457958643129497483081819201029028421966438418808728681718220669445933596303732683760720923647745401012890754047355435693709743427935334112462604870869586805824125104157541732582809175347709184780591298912119019933468941584760740703769577313723815334435077061717563482253515769564839720050193347874475507638690895198405769702660582622269356160978484428889554962776042173587898726609621854485816190919476830142815274835418366613724155081758149411122851333270484782407140053264682962394170329029465552315166323347682807528318182115445619221349148553804904171915303364288933129163079563454542461493769029933946066478158749701073148603225364718619967027618686202549945130746405772715540854882080543185529592098019822450260147594595031282072039674727489277874022062834720410218785829051995352188238406979844735443720836463881973059260060840255325462491385934282185427911819194647863829482479740618884781302030409085130142997018822881417534399672294210472952162831940776293506138226941771816831443656493057838408520511850737670129060741897360508978812589033620623742696690486242705530695096172483757975054534262606548468581022512957581649688310463001887152310617192653161906589471996793572130811314221478106540039062157279171233351325413228473639922630837347451709279920590606076096151925589643538368794197535971514295474667574561145395708868358297736678523645090375676256605476442342872120602457057869128097463057887717456201994038200748220327235135449049822936900117411276321659624455553971153028039062155836533441608990492335731622893057092204338593424439478255946170388320317466334396643469961551111457440835331043675066244249458017265336127549169783587026473416241650147346934820831678999095507729437865611835526721665261513524448536409312374091682173659582102818689986683432118397028266654887222066566042984218535363467294910536402817463482195905392828568036667439618626377203350340463573195356963759499060035440621112447452128293644586066196770722372292568790598023074387868463356116095802965853101625942643542919712587529793049047112059704597124818370434899483305531981456110255751173320498824691127425026632758323738334398850919196947528392253360381249160201698686104195119150376314897645299704584707235891185527606797550032376634219448244889390205650423825963420946758606404826303120427864699925857129409547771397242820738317526998640515400810587191935118913897765051804599920118751795357873175664931303251224238543244378908519957301855524518506184978331256542334876126928064901507201519486826422916318779308563653211022836053011788336231519783588166018322891649346290174846501031648399040714293983513935467971955932023341385863529612951202287749181951322349450813753646850651213555944591846627649579476071924867652209682486851260626787943654928140229632976449079936110453027365067696400726552174857182137023487065294514422141082379534168250599970739086698466725307724537626983678960994537304024499190236574171350154694819411348911290437343169247717913877100229970016266213530520002674858057757298642047648248493286072999913773842797755320179780755737889874490190116943087640607171502073759130929687779170465385945075112649131305610554409941886016778308170356198187581602025262609879848987370544156658535234551621190915557422641823632210144744663138672115624365396671690224117679490789411297951039542921200334920535960857053719709409459811032566424262737175746045277528455704518112467249204320720137576078380598909474213953024146908335843529110899700472883040828788599369412775711876607316373794529016248207452846015255559784523640114590119684625987078542488157374469585960815835794634950584894404621920504591948769607469788062743247947625350874343702522174249257871495796347790543840710943333445978109049149701963977354481612064174096413511844181710027602110730150775619523918756188412996554187459826979643368780233537163790688991184029095187605889938979420575940943721532484887550119246755167335182702440214773294114848159263688384041526360494472016591532655196904859203735474623975805381551539070668432928814866801756334020838288341291208528668212436539623837464612019004099043277371733911153755201518612291033077580300037454073793705292867795107170931802078767719211798833664709791157662842569882692949766876942285213868878976566132319502495513019151533068665028696701821216878116471264693344144693170772570227166060146088742963972154858419004054714813154586482593067250842882578970986405393407266293889465154861982365464484867107017473217806944663008337718094715048676005195857655895503280347635804601828100994686259182533482894026353907066098024336912313146820271639151109900970109623875265771833918394170353793703714823446206908120789509299709770322314677805556978981348078558875991435942715211897111669173049609148175142800987637722160803568854089228585281544961398760881496180817174504392275552901164227166913694320147777207916941294138951578473404384071184797227388577412460461776363200566057987949418785511543795236716189789060570421441995121611351755990113252331370140909204535206160132166006656929940065166388392565557972525200312101105607097345765764070162840750564658739921918431880445156886576027987968390857010431234199461606159178935176269207001377261004603616068252371899862655248551732189934459382292866997603658219328364631415462698717089233794714076001992155253728100823645133363750111264369870120235482812009141891666610211362743313010034630407014688135836320730107059911662151312138518768251883094314144203406281186752841113936686800872015973176208235395151243882152737356482982939364773157344577730459347762186911072353129694038432221379123581068341953352819248941948821890991956075797973835582361154005709150808593511147797755866049189670422224860205487811528803392065978316382470042950871418369510997859214143380939144901638169378573370327425675538209284000748304185672573936899686634865127782508640840245228455061951816939505779853233482432877450055662731774799737004519109593287887964017229311861817765492229271467251998971135134818484129540427274984915217610029905888492917816064236667197762143817813675988224374345394517183972426282759112546304317893566328032797554381617312329826696060871216977750217075152793718069805257684119826075788347744808979219419141953587156538404167571080182071531690216404897421103971377031654105109134619259912204114676820675757943747631033505133157184542922838456258712129836114898678900290704674229152912895845226833183088912934069088874801148452247587088518356759423189457297411180705911037806609451513813626037024995257970200574431561560272652648479414215728324003333004068876226473090939436401752839591981027749790044202145494496672424154744718653033173592455743346509545955651081601923401321782788313715713501144757292452862889282968000751346741958585949454795786240664758807400236417659906915249408895771096827077230928104725748866218600421895144697817360133838489462051111414656992126854973178139502766254452487569727548768708631347071230927685697229386858474070683470290047312759533700437427673638232028821522152747140984651074878015021077962792345901835053740649781626268649200520528512382207865139301918453165400786521586847751780118236366025602207999944686275457070104012065382043777574047552288901159022955057794840487336738078908536405876955914787551110884771040251273560189310769740104342932392856762069973914461015179377332938103543003844924470191714382647634640493523731879309152843446284573215127834666972790349227514906332542435945888637982288464997045615200815273631393159214875974493577811483317864119769357651129869942453637080527424451322889292106873474552003860426543702564302370171257936701138916256197437274517482261001219017996391530085270362223738603890639355413481973977866136324683988607497402626651938486840932865558890637289555897956827662799753003710163094259647071959709906704821809190060147131141988901356369086071958077409420513099808390976434817542984698043770832366806833186268866392871997409979001104772649573557336936710007276817659988261542481772765665962086860419662731932057242525865249462967360088215000796755082798939556913264776906888846364116026900545491512961193701753477832446937738738178926445318751087957342905094193795220735532919382491642092479448420583638408789042380793561620065065864552965775958470544484620844096746776056968313413474781699653954270116581535275608547469590479816340363914455449975833275088365166826517414982421569573339549274607922666769984672926704213962248237422414412536106326002803501716317395827230081195429615852911826736908808571052605568068596001095509130514443508473407812535125983398261188352511273592136552656639736253897743767574937724747617440062704049893083351957748572278687832709714940212389175617799423689718894160640538587291438743319045107063173435728588754056002066257341874339459310984353415303105250253353717424371413975130253650958395373891833806801246052805163981011956135695888420424266472644160953818641720620150908653697133910063066360114614194645909775627365224932412765101319734536881386418371026291840464881354504065381452867957492572478691617847664213496938424207971782098375345617329232581034704631681687160959968219103393226530359857954731988587405843648828613571876651965791535956139340090905377945900844479635131853613570701615161336480627997433723560122180264061740450976464807314927678688621360718863405010886447207671797650928728435419287907996384859408583863582677101893460686645174394597620081878136084543960212550926987957967936763702875124028875907226988414817842706013172764711711428539528780221732820873928651336349871714560160457603465851377507535991335229645125816162604205475633119347606699528228535326994196153035273301501197610947844093476375793755343090219518380667832831799679930505285889327468622235514060776683122879988314339050487024369308303392941292111132117151201005219430766079226056786834924997328851949765506958420800087040093102614905381147947465366937568906995307405913056980769998103163040538470622223296962788999268425616813053450709030182952141439678565513914792236859074049886587138777750546044551811016643311088906626794564688984231785201567817288720271352930270754871240843339777329804925167534329428241267602277971630714013500679418389722724334852160466123881857197054951816266574824217848987228923359078808815306204842478551703754719016123251089570595140539107906411920323820630648433260232381731150481781400829094505877617865251883369752241671990744327654632063817290389574340951328607519583425292182605839752483645070436206206300686967949017027144875708863937186644231624047978062027624937077373809965304334187801931379851871635516685902339780472000102031091278629831980097551731011716052770875210043910397323863204113099927695449417211328354176000118102305025081244693409936725420820847179290208365944295934246272220443528087153890808356809851804510319557499055819077080303697433124283255332898555874394067737208683556388731222216235369274540940066905584865437966549630933970519707092304256790598967406164439696893564645159217205304918982520631788552607924376159828467086859963087054530748544813398301312990362297031571846104923048524216681274344353315528910266091898608829598289823213536143561466839924414553400606620701188463341411278345405821199557852242647211467599420456824434900349362335253291829295985606895908567084236797582896313014597416676987001879317031864532731083604605468204693783096710499739385107354055690514205199239013964877746671870148920454504383165445537697203462194738081758536732374920198689720702756664423667955407228380107126306094788968195618988076828264225788035160232597703951924879810477793206558048253391625429026344443016557971320109974237965954752873129045379734688477204913223511419039856887534373961858445753995889157053616146490800469435449472958268410307236446374276124262413214095266003953116705596395531835537975320234152382885453015388939294880598764386539136652627820874991778310175199058355531918260652339678902729890814109741277776000859326327354023054343692991988852644196109344150221593508774143529974393546153145116438195444543750780470444628483612178638885737859228085079181426867274408948301113635154127389616674286877407942763828635797722502790975323717102113524393052064743624224803566851614679688527236034585296502783780277803124303203684600006452720650340806259662516021822936243926729336103864660916065956587045064229805794453848205905821312048259284962979273324940827574193449228902491793554755250726715887002432093095569525288108180937243574158237032592283064357160243628566438597432248884180444985581127818373400031257986719075474287933903566654482034116836759051689008147304544122833988447158431172783795028061291960256145508175373105166748233241964712994979689552221576427290559993392186863529404113464586368663181152106597858365570107835483707938735947125292973092830832182183686062280638564253209129214314399995847049496644444820439675111735034240053690969130341826143122712730390947883626586746801324652088789631061813087481455578208397900235231978772995434751725554026214884880176004956632612714486669719840771661804677117786128739680687903166799391473522637181781177024603429199337426123762703525098142818136979754478837953469522045869316195453260899147604800348474437605068324564717638913309824909168434097990679467257182296359365956049343377410072060637410525124567863082002163273861973476342794419966133940049948126094591357149293451038286597321125246791218065319885140279668975216002417106282595274040858768825002100629207543599732786221389960757915661342011598567193096582487343482279805341794781412986652180553113955439827640069080311024181032179066031604287313532263040359973235318021431485584991339436091608564465965703196509985863066144166205174038148493049795537723378730056441982743221306858153861814936098160289318843346898394905887850607695508626724639337583671119643798404054104614189196923015602107750823814509313435139706436343144824931888317056892486095639448511056298420302058329866489112851300734613033311719976780209960512388361677872352602739981681106016101244157860537603894005621377058664521193422519757968963321688219577462978187024709133854543985825874275030940938029475298825960584292278575992210732916060970009480315452465209339942308440317598362374006825903269419010690231195571878017965575785953597575407210061966829906499316937327619297670522195286996434102345733425793804538722229533793096951649502778272143848283936811032814044844783883073538509644598042576585715428872689695948878232009238262770757125983704271647775398518593283451545647132888497032409196898353975079210101292162731519427584051454371679979285298248549077560614898487241232294075389757166273066337982450488123517933557530344700136586379223293746511650054730889851494962200034060652886779166167335485255193277385937053644877643621354936231501422275008501100183268618180577249279642363234618156231658689124262754570103027109510030927497550095014908134609490090537565808228917379689765621094345520514663954335407579085614563847424943429102309400688698538407227663574705599153140159350126333689819751145117181763289097301687750628020055284822639248215423921838832966190618805470377047942385704242545919854396954741449567523339085049852487945030306551486361316847849547380793110673957152605059733594796617930576398423991286520108228596743493364551822892169208499594350367882726152442361258687193836008918022506852846901172566720820632567441992953108252185005890632950668213296264056286307829347566875299743739602209588197691474021257594715425304001081158489851669441425688126632899841577123368282739132057413025023204624251067727578537494125159012430596941988491829156642155406579872164731453387760547527687926755871640440960521133775817345028631436497145925647275330085847068010324840793287627896566170947257090587565021999674583632555926577713323569165192493736330553005774972150816344245848325946816707457272831589716283897108465930836132204281200696325012314792102922189349237531227338331026989375008879926950746449578924078556829393392887885725886377130120893290811840569655906845124498840638743436780759586940725723162786546386518916881155339048561514238786584005519048096746922795699300491460063470140643820328844208635559995408320616317997326102717411678994267849554254876081971985526012682999959998281403755491190067572346579946039040650843919846138410796258868813319783734937379985338398250154233054612883287192340108550582468776815580197480665845940822818526726108864760873486234245987391294026672814531843587473957656117892496722617942575857039455853974447344271203006111425386327740810433687182145095057349904238367738119449104197324769769962648575426097864081361175794217865710883340546953647251561264821450188295619114072201421379172129337301304429342408624482653390045619353073025572608880326820425767595564521306825507599474811831554929223800770897614773356292985258089875954951427982283583410918468435548173640541420007625862507263742594559977320823823762015525704204212027069492745622086105191730236324296776000047878415643782248911253526802147147079382703686829478640304695452719843147987819872524109157796814730861577123995153022677183238696954696131506153031969319108186642650359196165894570735534847651118119342859295095623502999931640555043470968393471962861620469952893079953827803047711773261027491437599170437908227352111620110983495498170455262552069042366495763301194817347400196326749690759459484924225934527784651432195055852742137529156378764271290324221687720623478864485513915218660868416173798904597125366980712743503271490758041936127284873091824804564720260106370624729861090464940795778750663340041898140904335101103199590575166743834200660972835563942690466711158697960278809216202327721515525487541158577213071369558743693062250227408446813604083823565485176983590396541525288642774096403785457850708997107545687237949628608629508120717305761878437135631969593850366623862614076744379029567820566105724579352438186204453942820803757602558246049848832566865649366469914603778709435805078308920574952499594256730663932773951830681957221907075389780347371785633969674498940990519285902989968481905027871046208547794505714330055660502434896485994319499402093591635837180517027708249632350602205146541629010765447006425415744076353509621401775058876837570792554473420526793059545377675389526287273392814909417631316400956732909211782991505340040681888469341590481366402809731866889511746057714436619177810409056301941902591709955112997513182827064375978856519892551834264451208550619936882190526515383181971656221216077711399958900852685470896104867313511912652270148514202208122473938536190973243489359569083253054621812809095483180264348438401915936167550381115674190150523552562238177809419684808353827798916581074102705911775215892373918108739026734800236904025457235523705791340459610148582558188580700861948742359033692869790238934728821429117930734509931597821855521637027703162792089432108140220310571671386201526458522426178746075497526768676819908734985907078249782803961712594818461179791232643105113693002378549442380273079458628888325472793290890421704826604051736125946006633714890622227194759885237580745616094852937781861416281258277886417405334528617796373302544765866396524865669644163132524713566077420750374818224615590735892494908608029598098957938342100714976993235456817027716206251298672597870537031702045548888536054118238238190506584102845862519493330438246206093300835889085858840426700986320681636189771042017589376051461917259621690770305854928375113031575899102292627916479414258465651593433902770549426531028224540702263532058642404888389277087405737115250542215220785226242971700838336926599657847161486817907547010173190779223418263236715101375250751821108052942358494744594417182279928086389015080203972163130591277335001733549427593748364090407017897219941150228459270301883223143135475248889961110829749968937205764873443356578830033097971707577473827764684542103198523870651399587019369700160678098467199242106675373217838342040858801707032765784905388179370929449314021177048643171883305802317175243944948232195766514070240887796106125918016856856649516842420697084058519437350700687987030773122697654464786314971686487321005696632884460234960556190693492741910007680909874519255770796948772113902206304611176842905598245925594895893791331343622910751719696446189169795645716668530226084471166690340539970411043172956348755649753985942010954847511080496981760652932564035048094135423185571502275195735003194186302575557793100275898966195068523058146517759896191679994101827555562454126226525824619855248015593257907689770399469903882339679765354334698258864393081881338758994569204126496136295620731270899423580554127923850399601357555404522318380603460936234813669609436675600124215597804984030295034874338046139142586639468124654082799455036001236327529820635786115503259254868702802070083423518754586323918475541288862493452864226624804871310082032706018786113536573401464746201572279133484399316061027722543813205922491202974897824112190851555950869210331833856863422724258779582021188743535837949550600709417105868574383956205038832843467691242498997561700104220238709728241493338587435562774925299548569378152456038473675910139309868889111744322094995852615550254196799133791776419507237803417245972686112032930860662671144556253372182543389533914166643113010454655292693194811667657567890057621977909069237070708841658260793083665085997817987141597894368197163884664500677343939549889342562817444928093733420986879117546496178124936157051771056355562930174924875268763443319427882436176957704071136864196009280469070572770336227758810823629039735568844225257827698411156241440460643892434323285486609509693169710809455617444282808763068999386504851730859553575322216307433576174725089879738134555737112577793905542342172152018723869975369948843538555790577311623939874698956387951009726480833868432765138504532965435100214677230242135590652897058046130417602716617571196637081036132461222090014110419740049561897642978223477630316413797185334968503037903432353217937067377160661564469743531254670234422613111077882299554457583655013630402158709749779944354085412775117886509225751112672803374819440964873713056046931431897899723912903432034383093260115827305240780053523304886978564345273581689763440790802252408025887060728175016764559907986737147904046417682738434812434365549833054389860072963414035114724555957735570790500071968737191048986635168752480763522852101210035878178660529098885095345825527757945235215094512885574239138015599566065185298431395134531856581623283058484938612079030423048805697741802854944651568745137229076325540704898459929529094423066160974919290612879555516022003185963912276945781826367335501567580972580365095913432299938369918744703111776137993240978453467870318591370914659080744223027551786624299244798957790115229151512142274602507686919004548234955414526344246366211240972016220491936539893181433930890076097868646101773521972086722689811533854707196888641570236632980335543562412707769939073507833625415659561261725969959414836681722456989438408474717087148365151755096002845020657981699513051590939350022207227452607263679264446706922274610565518636878605629086560507432143528896233234465409337933859678281388767420202489097436368111883054655588860132637949442512873246277776289339731862651039288426376094503305416217567311998013551607194903605030146109800835127642325204321625819056597313986833757857300625465852838681798967134921203196601630120340665671187274686572288995505385775125723754179438247815760831044417150030414215685198250427950375332480888311598473098360363297612235540795922869845781706326587196716382977891047257473168715619184775012417898813046783168682602755126886749043128064509426204363498059419687462320722914480637210373477407003238843768545475937919067181176906405958960384433883288801496125078941859896903485778233477679379989291447082341133081828127843276063080273698344827603459058189859985781723986786945865664886679662221116499677852806083739745563683512731510104125258359564101864523906199953812073503438751835631502511405720551801771570212900993377425470474236050636402334033034391374241872031657830814681076951830061556127252926964499866925144075526142209311719325416027543451097567627512756899298253016333491439236684109359069696505838197885723045872805304859616131769232648999914962179947357758904890640387710332130104555029110157766614724164903282210574998467013870817851759271414094081277263151775500974029804205530653710992252917226756162417491178363242292290148802278557063447132009790269931011745276267088370849076792428275614878013444448671615360801239584510425723741396757197284241125780002127365656115692653777684218654265012542065368214425104237725164220374814745534409760541656661255595920899684187947219415093738659473417700570342873923475880144335213915654405038247962583498275580483302997117046167369319470046630796735460081016488732882277296934559639386290664804095274929988770520489525760728808818719691761029496262994102940918840300536835283763189478691470440509646292406577223287068547919591025101556109723489163035894891946397133100187855979475311195688865789506130681220988504893561616301672223407192821536282217799952447104214329379301369597251811535568873470841443632276067657964892071800942344130378674751529824771324033198342953442565835716418869596136513518597849957444488908485292881260302462237184488301763753473212023983348178432326455259936127188639248917425756048898468352209301368042974911809446650155904911080291123987586163116604045361017975078570041417620823622386540905749891833300596170699900437466153445017006158742258985576867809864557980227120845548512456100183291550463403780892315329695770770599102232261196362815104499541485362247703331982931719315145377508489368152430087692632122703758212659723688550081786527932576555524495862966235919727081363393593736416082727987701411994615209627726576169671640733191190104233074135890562444466450331312573380576650520704017893459839375329029638634448654040137237176429395775342167062649995485703289051141879056610860114619543743838884905297640111458998660311432329849533377507254500014540033105420923565829595863164027573802241960939443399237334903876191880883931304324688328684563280613526537316541298668900929412833962080613066622421708013122043596398787019637837650413006402711098794025611148170596637968980348202903616159157663956538491775855111620454404054179009271002175628037577927999368423010919900720794840932780532649646906691708875114892648875791574336521734438641285677522609237085112336856727312490504587913056473509104048549459225455839839785730399502700112668927091514110009303875932681368435326318602254105655489743390530306784883314031663584199205805391342147897694481629712382714443276775015003338918205301380596634374410915336095759508917730272983247014716964608934359166703203057340731140873698752466961367023276163926305383771398212794975894323656571811236565896303296091077248509476379828628419854100878286877130924982369085212972403380497322120252238356665801089497666788761449228184251065904893613143499137362374268949979250794180612904733978379757002409153840438471728477860652591927087942060817306289085937459486391833120777353058817263926350473678990375479371387599996342247108219586294648552010829654903270453774566987284869599290731665232633660494466007431419269701588787245415416555560474709645860763272188810615167420302080810550868363751024074638641748826121052055830039860995951950711172075020039254052162105207133144074312718990871475516305062051562556894515231627381907058252753322147028774375122446441217971402187341834953621279117997687401615900857776447247887165820373539944443223751946654850739011702184171202086509210759207193140981272906879208093126863923928998972175264010984467544738662763407092888197695493158468400495012331630050624267803118717953922838308193076558468380569084443358890736032763326646993531461731186399320987740828550940186083115115104286634401329331365927819716280408677802583089780853203804646751221495135680140610988036153101881027707965058064485693410414636911065540570963299439197016713204178110721105091648550167946749566411846988893878637774874032696077217305556435879258598566929611248012122633099415517416472267187467131418185172213221037938742899287825909743855927837762851480753162760523348187897230266974771198803905063719314757071165575770065223153256485897559097124148436016453601998742626139436888251539032275953239942028760926203200790214975399412633762181458374533656460922716047176103314277730155183333675069319252688551650500441540567448287423711709945029532856388026774707708418616363697873805430281248194360110025746725476899808664923848222254699847220449526174937488816705189133045299157636462749174987616606029681766782509859225128755888644326553661351741754104230700369745179997034161062449495144269141448849584467396891012828220036117672268478746003291989932219121330072546930252246730150714892396919933477433044000785256968196435840005369196363053277191470768273558530453028264637775660967836387389745014132453758143080064424964471800922995907193056543116747469411570922826597164626833665452712483320586534849681324097674363593367394805379703447727328899095856225043242839706706599827355951494255928450166403125376336360537157753804572022689788492254022255029275367706948899985988860916288192218680815009740288296039448283957915849129914383491135897389574766051596673831913386893559767778693475169284394165816233822416222032709549143151834536149638624560241013793622957825667014980763442576225344143250803680857948871054017691112751724874919612335707799777644750839280830358721119296820031819974071935282825951005702393518041603283819410572567784396939279298259536685857730358226773726438290546974488374180668594738599758057123164951980401064614079805462003722768948082040096196536179422927266580321377815377563063093353533257845162367366738045977955227494425075715349448360849553625151366715839398022780358925781647050892457871231681111563823116425981646714368735025808421087722230416015266764690990568265694166175333891610771023401005384772456855672825894645696236136664647492530851443655738324271192258091809479553036547798424475806198133571182645234079213740817726791240639524071721021735170427663368369111454067433388196309755783637799480507326492015122840296377103885593127998527875514147216179022171356143839738930502992441342288295493337664271023781881416216110816789730909605629370835369191435880534090629393980923201495886013171762994315394255242067439855488648572945969905724360897600214165126592570877644076212371699054771716429366204860382370059738253763547284104492329696055183310716716969606413339377594227598807846555653530249383848262740135473539455758897623739729503694497370974167916748823888707630673164859737444252377652211026655502208971753011122474110056587736999054225631085184747255175328278145940740769590956187783809690972432666298994829897333213435428205817126620246438768236419630755605266052943938592833301595789346633717817698064063752116794303396965012258965172770310384662284455510765174788409223160114831237780949329108260513946474799924254322778476743993948241177659606855026022476384764827548720104738293020168189586060695368250430024361561739809116168505415391388707832998027812524052419231592113111969038489547398084212521103966999265885744619705350657625613982630547841432758323897749448392833026061348235095460292422707304175278534900326282293621410354419788985633939922181267571412573863312395166312028607847338053680150285629799169976139832096966440413363692821823051871581266336068296852660152491124188323674369020340598128646154525685128264679053318316522125300587943175752275025368988433727508094146018767213106593679296742951509414831817113122944054923232106734729824071135446769316587408138654778787170207223138609061578248779925742561084300008459243922784254089678021016521889536189165767158409827336181773773362926236173963832904249324452841408565115539589498602468229985596003946925905117011389914511918933985669629036465502057808320900254863675476905272357630323891057072665486274680764567420138893123387599550393016409848685948921091011267236696627203064561104857659946694589840708000511457775793072611033372027751971713974076066088214240101900204983118340801953567944619469352225418869244444833717310487497024394947372131310458825601636777852045405942058618128695498763316661821757075646937152356205114949279793136781411848710979788917526258532486679902890029385927938635585932100072868945591079143382090201147867346464257625618429732061299990752496107211690708678180645485589133822481159061615212292654413299322035387673740783307036531272851427386464603947234918618437217770893839645070394249279321938881098562036830458625879838064004014945578228277174866478150399408694950304193415148352003140996970731678535807015139453706933561800365434036899530249943691914898375873616269619137278101928803073423973477595379589470433509558010614017846551048076647442280457910115302558977592907740758771853344120263345963922352348628795431202094098812211000096635878824700896856138948849468597823118703709859292458103100173245583828267887256521872188768694521953630780547261791220838980939963647184074258601379876657332141575700875932135199483617370787026070737929038914110834161875175344963466111095917149776981408054796815262634985589981492270018368891342728511062591944542499702879742205151229479228514461408455452416244735229155527873644589258381682397983437424544530551499692855007102507062710460120853246791596527065246981876341062916946803184030504159091640737269306314205355879915204845923009846366946460257595290834446460226935056914140083266684991877823267648377799505140461388726708920701745454297264284891486470016898128797322809573336499267333622344884133693000271499443404407455049065130118534599381905457368677020679358359417489565590722202255232922157827952446800108818005604491140436530782320177498483997549600967151222388629250177020568751479132701563096270911557883199552671550811499759384344561298906431822316771028141694962245396031361563445139356063704230969156972679779907838318193693890024837360868945267339904528965363485773200381284135663601295802820814919045887295525357068895270583580919737783038538225893689612084206672971864021772340590078915573713884286697845400196206686967463599386655438162140774243235964727054164167653283780073804800808573756987384840104652994294369301478994812444098374389662560147912074882913759956700896073569494323339792712311192896317057908770444003850141684521386349928419489214369585981694295837574377978991753035845771460275564306699190058024222746705042854578014797105899339338613110294670991148822913884465476758907018149218284183050516542573201136417470604154435694679694622574368183354688757449136811742405968695322930898084381933075217306990372672561931899456822502447823228680636738668087007473762563567966575698741202931674431045818617240176162735000762570098593343568921215159578612557759362134930993457164319377810038230198345279768089567429183874516150031611274359383219280985880952234208941271879242387363063297148740735877497310195669584471343582277789878961158224040732980213621562505412837677884742232476403953784317680316896441059583136966617874351722304821696706249208544194081710734313923187102936823457566789879655000983805282500206717701398436645161141896926446018106237900607926540506374541668306878993233496059768971852615527054184453633154004640635049293436689091009725897739994974826342390139191584853510612068625802847665911108213336959973316727466691518380415111917616742960762507467866837083189756913774239287990530587097370352032126331563151569661615557511772629373198028918424612377527353601632438733404358193445524218706240691449867437156554780136217343222315762675622814391627428605517403495901439189695359521442531114041189126473262161213547727664270013819498793489206840517063371937054859550522657783486844235901373497303571373930028078463430589799513129950124367225296300712737667013777839854000603413143828270702511856346656125822437115963544566642535453832774508699304519838680185496363178894828335960013547689374288085015621916014474880659340514845867408446205575462694338754520154514412784436439095937646894594545521413461431680046017318732035413228123455931936145607619977832491865257159895460615195366991417601813927158617736715525284305182306981147703006132196109570205093089582045621884733845093934143387734413958962129568018906547379171767336955895702373118418491457632616796321169254884777620444570336772265979337205458554659458433827968406107624006088212209978359032767216266976110973927835852432001531015091172908450349843868314622225327780452264693572662381851819524994280622350431786507967185464721167046563362882171886966647047678701140311150325743200258117064247102453784072076392520516531796010359781035514377468090968271923450642602816496553398813530707590719696091295349509239435124025132733921541300966941914684323482202705709358675641256464190106888036615322376827143278736167673924570394565280260824980445705173126220576080303636648513236294231669010015789963756179057048321944506879608739547996642738430065380340756692859222046694892942042294697961089118944816149347844408629641898990297791324766246193143748767600673736867224531140499513645466232271082237710539200947494896191955070243087270682293691856255318404338917450083392786052138170082203032243094894385330070642938462393077313382818151293865746827432294243996701710922772817720633292845741572213537283828806903546310191356527889700048950325607113586395809140794817007994627108516425037258469148869652247912407756258998676321479362720766192914413448939519912552888403186098401721164449982826692189634564649648899930886298432234443129403977009276439164975591811531409991848081301434663147848288465037550689464640627890255484377472393467062084208959272164806375559242596576159528327381093898650716271245584010286207952317927481187170640709854224670001678276926097977263729272947525400938152389458187033224648867404361522340579482065658804507441670054415378275092171673228948835252752614249770187926439206342939995670859386709560670235097435370991670305359542989886043362539351965049322206266510309434385517522610838582955089015040273475127460721720898693137245970543864024194654920331919241895456399000859353331961962559113482098733674817428318806161352757618068316079004854869095666172441104860645169431859422169314534069076193987587138800726304598531444190775467829297968847971381815182312314159755837856721698537703742041001112398417152446149038654766765152016127379188125587644884589781198154156234461490234466041596589314552961776707505357100818371864317521174858686355281026098775895359909463907441501220708513248109637444947686952723567481162255931915084924801619072660534476872926377682697787741563143117585679793628207937298705153591694712235228049688405701927671397391555465711451134547421880550340324011248679073635548224766553584200396189797596526667689830563897463069824168251269991756868161364741117549199079836819108300498912252378829173113399504272709663934604323015082587530749787802599473109150687954959567645973447704394933375398286323422356756187185934947040697347546548775428618150088955111698823302188025318060439897066907415305690671006792673104495299638515846248221326937670914476574348083630359804116002618683912785079109168975068305232129615227161311155059754535214280033752534726049261395608983914456004497504247467192410848991626472067774998130551439268443389010244700082836152775529508643242123459182842007199606325695551334800343425088390261333176915212844206048531710354939678952582097307515564931671944209279175940953144137550793297267842857586247028752199745567845097151728827312474934239788787920662981215131992928932996247042402389968801068705380246532717559724676350948934359295122167676918699094882327384107918912636551449630604067506139274731041879909024372754021324950121828372481080830867353900910918830698255205237641000741534901386488136718023727245623642435944898342688379510737996606470636362791091341140680574397847046391966169580787217870325180772101544063605182049118937990221642654640085398994883797289495446274759254532027855127060297914505530807646655934019204255924536275824043400196211137460195862035843433572568163220655226768577810815421345842180459687043592689814394937391615169835990904563755686243587536656286840567764463974119322032939811358168108304272715856381099222943486308230413222000979258156503989406584614357355914414848501829351308217547800666875321922435638787993067800310626746444515646134871679185256176818036195669257598881981883061952787577346945078634417476874228193694038281863954794149738951043497229787821048724783465588190037552898277599888529217063754854714405482519629402492969094402865116445147695194817244741301523091229308432497195975444815708837312396464163216771950513473796509642714625469308677710686700399972985313257943553508955471029452867752685834112317350869759501010861702738819134991245637626787248804895464034697783886850888862906783387892163464290250313482085613266416783276564923654124654952253189068478992770118786053398209343846266308845005675061338561091074539079607536662597729540791414316289011812602269041719098421777392508045841836690640150445310735335828484469634962022558397246367408632102006440382483900047296305260480382171059948663728552755889989286778595684662109882963649156776313902796472243954255396847954175728236270083244151759875017730097328022262590735633866355383544733957397097615697333429981259840324603776013216253197097400845152274228335124797299076253635172067608260469654563915363609915121582718524239468150237084693226449656415045766351920678898330038528946536751704245391545865163109758261619656352140957920230974864756094995416395240156461504469961771694420475159290889491671675615645582546811922978393675531998236115535769202776226336569682728615647108594844267531187476233226045761636195659930932977319165085882155995435558148579055111471001428547331617146476601326288220387274653760637893474534840533478343698532193364286950156519572484882454619223713340876782828907037751961734814815551595427432481647007558140460020777786446692541387086477562084879610397932026945441243154904558950679829195041268398092161893077907314370697595640276281005616764701244587886753784277034498886418401691181779372982388281842269710463836252347744881978607030903962089886505256229290699052525674760040593242412717057669457836362815237199832102785865813287635776616764895714893986672020080048669004139020744310517712835260138750958783570636680025837940580841756252033571526241715659170308625753367360853590996105164704894006906024242356525237323896217392168127449381244434386434893179660857132458702536374609431265955419537250781709547809649629865111871383407089455274125343212676064406151726278818739925424172610589584407527795621651136879034025099381752668959800717281675993184391931034758713142333461022380964561110082938808842015693549605145708047274788056664547682264274782114467036905110736701363992153729899798492893900997528524806561196252587334592386069663770072230975430163098080737860363380470809989082934787258029638579722402456464027844081118198414142669306449105125128525329947765068631051854682929097046877634908169992048708399885421105885155873366699473600937584929636731706568433822399982573523281962962634676881077541870692482405394661755653875217969293486001224931740111628132094028165918471851062048522782009866793850814347445364378679521429820467871558385596215301975466306772484359642608285943964849718076194359103297295612275976329726097591095024577903795874250903025438431158241759924923828028200177826919670406503683358461495550972209345752283499352110041100000962612432510729727269788893722407006935747869153079402454440160308264271403266309305705653613380583043276919305238542244551126996643578280653039659370971723501427713634346956151404168380337276087273826305456421269145831774549856959648172053412107052973345606163178197656599188240476001611390225303393318435766135288157517246422828712559146962902794013131911866516403549072130899080209870247270208555746727921614776294778051525430547193621888436885615016106816574819256675060006722498238144523990898845286426962557979395509300463779862258034469963311720378286933248268908188523274144749835640375801093119271787125671383576997627272413814337592325486459116699826441961277404784882851390820247483644527109517551832304123392695274363782554426811011153552265390411018730106779526228075675201440432932933059624005959748206259413213299910595163798603221973792280841444732131666264101362686390394190087177245912739507239517138112854731125017363558945947243423979713888561146513310306101292369929357382510541783228508832677832087511893780502934655748046113332424104504648855479051581783735603348448561101587977849575694665705181813586163457761877518901188442009304048161090585894169800419754559266131469791390085227932936031088758233773857228721552252948006187287208726516099004623789783111019564789973697285366454622463782333681488988333736404693713182891922416977839837101896565261620322254393541749001641320064378956015877849603073427953006369386071415631658415220395653920856212993003018885147629864473589269843432079486652550804090408644362597962096937748509224957132526765713502664925779863310099434593994286706908735121350433509131414860876890436940224991306219719864112497379778916502875484789520319661074051342760031173191843892945892296909410913136327994180990180863821431969188276534965113386797746848829489860947679613165336573250088566194682437239498087535083053356166186292153670147640124026927144186492351919584816245059041802756527402213714751254287531365023678159133471133706077058226794041747561836534994642062344866363292764916646038557048430412142922169669034194815965545317147302296533045758743550964057396910141859968862977546003066527919578392090172103263826736289109358546933358250773306246123722667662941674095023648468056464922793657474280212923808418664386852615516650245111631874750595524360001706400913835995236214739995064600018671646633376989784423133059489329699682846586354103422168884444312100894376818829296241981773884364437771352810716042300639320419880916533117613825581867920286634691498935582133366664353042194538837190684924537276649685275347003915404016447195476936039313503054106483732083136050046559993759703151091251991004240236483351542727691059419859188861073444054741380687771138008648392872591171861376684152541616149976057104013663814196108959798598488094528752047806193789227243300704091600037864333155868648893642644064410526731421521064389055888030083654800299840573302078932460924119492112903746549806796848280918146396329526799258615791468786002227531977391406011627913632551770768551564431214982147720379694389640910068843043095695918457268495803263867459936884339585981625658854282095645817001519151496935785158098794383068314186769944403034901250641681919982102727128382074834556365715129987761064870741067814829511797248827781708231240994461718395066080044182351149650809919667883025185229902898934106884417804203815012524678785904658289251941124257639305151714367652204137971848537821584783593893310779262203785135419577794742236061121905633209939048406531595710919176479936092262522613034562224336025842585415276612913317377608672561423654185406361100349139954955082505106794478558698262294785693936532586600821958617149021941935281040195189662039131508588516400219213286144280688451487437051830259188821990295161264358974206668366204784013682141028449080701503441703887745902326090560668154685392636431635071148684225478427385265341706092317985498155951083326793564321281553539410916108687209141290574251305387706556602045705722089635026836359824585597411832539133469589193998557218639257862808334730637928494928069339337439426578830976291487028700702231329914374044935850831170211792623871294950137279696227312380278750374563795559980310197231866115262033447442605234262142785378404484512628612069597578994816456671190613383102563217495537445931906732383028594875154995407092874505679648361004876466045006176413858534334563573833925820288459751755665570488206881387984910156007394789467913741276127030717182055353641332655815912105657108046491475707490703717673132447995320221980436731977185791819457295830526167268163186069944596977847127257980138431226383579475123822334331487959135467763677212359876396912403871184997821805588755475888538212095022595489669402490615410508824434525053608325568838117830778419898972065871527748212532011165122480849627187312615075807906671701483350895767010228214634502130606754432470679193577662637515770970744226972315909925311771987029036986731707475834530261344934541142918832890546085283442865180590456662222873699794711051614132563573427941991820525634337074854650572230957719870860043305912056183302274534546365426173659614062909178584258336777126986607269838989470677545446719068549867255184344918599004748871583137453308791584571822663958056470217904920542976776450767371412039814388746437090044404905384932702377615485892697368386034170015683179368153496323349573171740156687508676378144523155231624494990534915526277400514217121933195859419341436875436811203714567438603451799402703369472600506191914453828260695267896409634688590023421523208569177211040941277966418053606950920172372729706269510349044462895072581149454358097185972179780325628975193684494599708831088935501284376150724014979247262141566088869921091447238794586683261058883701052849365290792975073237594194623421239673079112622753233316573508637694710802641995453861761669471028475084992567098877438574476932365887039710994671879957590996392265351773871008087352840617711354492535625886700440129251970710482100913696575498573643613547726975480238970837808234724657196477760953917530437047291058371157053415905901532563464708338237665841640645256826192604417343478805322901960491884088815316889503928374734204715949682284796928098999677776603342018536334268217885056467462832707086084496899443563670233948452399995943533743280632688826741858181671091424427000638456768827481505733687238906913119106001029085823072671236435748915899524457369201020594862776435395007359616430219381026492826898529055767288364884312898754134558287831818543518198924081018410392578421821777485228222622586671166852547668175517889891527505046588028650069709818853210002096474576759614661959022772545948573203498698531806362943982783604832892625330748584326194290798410620002853256273150150118734944109390292967578990350190843657747704501355667498502565840961108539695608696478522211987201501979198894228173384026961699311717429755858772643430407459430727454811921704248513426308526059294237708511378023691662209730096331215355592923085880960488597313420542769389194407553506381644212259412186440078256835839965444687798384760260172541362869033034308537413232758366263448303346344141910926321258176720403465461622387931325890200798584014633547623336336737309124208682643408709075630947083795187587180808533657232788046171531813860510301359161058111332041237957877792823025461084971992671766705589515636782964249094670041901586864319199118754733716010171139871710478605782605555022066361044554366925270650949044235049653876379297242783352796689213881617528274156029228885291425541511097500668677413082267278284878305121442774023766594704275038782839021133999632342193278303172066581343055845845060410589212772323633251756726337694253575248374737247902982230536097976633389014751765689706461469212810852786919744490830066780460892908646256402197489549754930890616724745929980329602224799670834197372055527698447272400014395565260027192799548932901841939471992393355763283241786408828327135770079857806351434613674107463114253073830218772055793523166511429149915547214709737271495274068769048457317290082983318948556183715810786038266158039309651285413889142330184208289280893998201919384803440002780941621033026591638135828991685099768694834525774688114173405179558003199873857462552105321400799148912089219568153274933532725208686046926211403542738570413871793658376670086595326407873346808871117903677327105768938964190748383517046377031520074736702051715961106894183363322043638754872041760039547090339343165708016309379604468697716687672610997524342100724159436925499774434615552579962209482288195354556857126584054239611533313189964715438795044189182773371467378916455114013134929490593127293097900791462621741522591723379178670388981352733532738328376019109002653126727678122886543009540671137267794348370380497621264983635168105891727813452098059873770071135803345785591145458824153146833814148859337649968067964643671669445952625460824355460346834972967882708532021719031051014163093675432434199094348210369833684295825262687362298286353454379862367532395222868846949844236976208530625168987562206569670929492842861402238701643859778438356176062752282152090156384841957509158543014692712072492179445717786425332220547422117569424936821429549557914843066088792914368185940709883282621477728908901424003472444539301389864134626714477416035536279043289359765636736685208285528124044888074606610535063406799567081517063992881758081587976428961367363853481725964673381563043573846537656316738583306351866352171860965116939249973077736511477541624518300331498882747898310425645643699147744877391875733220377955117824771404165321119891868574548106976734557746098745967460855540904836823725022135688872650116890636887320720369160940876745799415902877863441059231624129201141411176094771378009383478931549683529592603294237151782372339885390127552379502766903204463455851675518539231351694789838207122606741858606283518922241150128462163099221896404860173040174885934035840751344819714600036582588926165586560252871477646594033373249167040412234866040436535599609774921444750108857390486507548574235466369552879114162788292816018060971392751212682849580110219639463190879987414211985765189947976265551361285036675205847517982001032414712966060258478486121465109924668683078016029259275564993325062908600965922135884441115764714024208469593235990900789926293091330726735334865737353464267721310811513636166967683229275096614050356769070761974541242438026762380253288203228944776351824195218657701158152534838737366090621360538234923783500622335854129241787119640944167209776710583418506009698920102591808620796322319396545685703452314808700393480258798134923771903108180797544157961901862303280304370103944467943646645187908725909125530047148899769576220843162541299084552547867315502141761498573087959116831740644051873746742652297391040847495949931370296055717285408739644383471995758116484332569341331496860651146452238094260306219302644992044167759356111413311982547678312729646070065668595541980325297718546214535256223353772397551677681180947129887931888816324094765496246872450234274688370183287262724793304703564243220033186077660453387448106363443734677583836655235240687994262037496587112243561465701879325457842909964679239415511077794710071046448891654290437609878749032392898187236752332493987435436184977271887628376817172091176183255663856620031967658360736942825969830199592860818189134594064799722188587922094996515210263909080098610895429774805065208098617494464780573817431760601996394054339897274573013010100245330607926176451521779554472282724723803320437989792397749312835380917300454787104279886842079312748972795661364859767290633882143939201821024632085627546668649979298596586058487997002041897386569130542850116090549881071097129030729839350783199257467464681293631454504895900021449237871827731793912929213822092015705335976390051532538241032724123005615204395401201422882334668280123903173523113464873223465180558696915810427282232685218122019440359249416582539885851350713551571846936538827106946201077002874390980925966101520742736494232356884540826801896607195052686596913575138183343548219060905428514638464606121903769262780947834545394212191277316757391357855833473386015204493094793781228826848763340366343094456629564799719460440708918484599904923323991431657210508524786956448989932879778392207896333629702154384278001978088520402757099684868554651541656905589900011688359649842810152220270841038451331192366237515926800805903861499156599787539711426644643284175207286019776692909175422530486529731408727373514045527661982841349677717934626929344098124991169497840657608623129363950170374032874590721423825892790452301533111461508904768166123515001381666712957128320866652980491409530685563169640049858514934436746597230440693828604623925867794970395249092717591701729917710559817389318164632633498024059835762076299271946931007971401365016535069598805176468880435698045483406496930238209969286204981875790685347818872006123129194815316125798193023465167056552275828272701255432703569627883198588353003446263626755809471883927188182633175985837794657370996721353013766701122167675142289831454968969305709428904080407907662054157307718228079961664875665285992694942419313042693567577233132103891914558507441963906627916513767255137973895047116238345729632054920005126466887899445804141696772418252100101622681268967961367547366992781540638042522932725023810512538218478273646642448018546238926583227752409540384996734366206758636066819612430999152437182228292487693912641004835370884684999980511854865397468501090545592473758315598139233426091781202412665675805568149338608770941582103485226145518972762150505326173145454060083597349436481256073496830041718166397270465018247151229317670425104904353951328212271332172733252045961280460344270419614170302328688342578030141776641378446856057449486526190279685622235065538930394080738948623198571147526542558405369841682196877747089460076735896044336844799855232130147258012021756036780703945206517789899025007123323599533284184517311309710159244445915349229167912004634585727024723923446909592327282349202894582354309671447033304792004486645643104511695387998696645374292798530149811926685657044872487253201386536433030943772477149266313576595300927536690487373018599089799388790205674665531724214812602089673971928240446161405869605289757263160584309801322717866291718090357610736793136889236694550018559434614683927230420033807564416382402875896892867546183965739797519486843027399810006993217139266047989539660455568385939797220650241688520388962236621378063315909668665332058223755681383630299727411372344625361853557661690435928274113148906057197203207225797146719013469960719796733231385478490055600085703369446240576797643615881879323225818018034478760671380491336780324905734175881593465914756324973978034377061749714087145122675663944911217028843947612975337899973718654256155419025857417724327580728957274126136441753844727501084873622701980835955960202862847609227897542748076747336860708449213159213162073188423468431366953596195665861392806193897582775440004160821106696177515083108743149392608055962797381506849523849506270119649007133336522721357404831998350415476367501950221407840131103953898582861313533711163138415600992382799044036304822952251209730798421857588101269603011071332734754859705867745939648468365859331199746300980192714871918139368447138575678922663234706450884244970487501562251169853654797990152128458406172297379772083601853032954976415253832842956192054266941631206673119670239046608026694407308067223815127392422073478590038309923341990737321084525711838475827524663640658922554732480146677414759071009559370178586144025011240206004644163209033880739475208720855436072603048958562945120795561041782091465657787452153298732928596528923489559721786503618907577175477084097085810314614616346282973448906450099551621859880054091529425866741759210207500788685437189287922582833044977358807098821209056495232589138288400472076406008569350070472062329538036317539136330528700239619795748048817237790154260482791891602848687460168071626479729970710561225064689742668377779443320867344326875111588844145379003313976372504214847079092555599020146514477064095147296497771715041940247054927033146909755822816715954596861534187896859102453676346153539965601216408561393961842467743092061116334581174878984821118185084665344656707538443247875537942399322001559049972021821935283903177794167435290000148093908279961722815293193679757918466842579825401383255465950930804601333577263892852252717661659699859984909348533757526213634703497674895101144904012589035493218613186038639275159004066475427561739405836075183397721777134514038415792613421008164339949121962383692899060081703058277977341517685686339254241869579027391237513848789964210014956291749469857757617330940056437746819605251688608369369504524427943175362531913148286888723314116205634664457984928115613526631705446514603360005520512375341105167456942936523797734220215126149476613033663689587461828893767104957564460697346683085620234018665938320715213048317643881412523360673697482292469211100899145559818089794867131499447424497772778402574826396024359825260284347534011023224357290456208042950769335999326456717760617289475343117085732139146523296117612561116649645118997121145563985800717981437907094209924479604007206644181008176554583816510883519122264046429306032793499798360799898569904021725389662918009902986009437996974687156533469321989616895441058534257022263449195316235790801198731709081018446146104209550909687834487950696700454088246070171126412997166846873207788342938043775233605589348623958160634646997044573637025138906952463274926787585568627456664802788583242021656375354604227461425212152658505329322116158127371912322107182026195202216537818925046943096769362443141591947815815946399561714722322129030779401812220572649172565948151213889888910794396323577175392895193738285587665595810785689844828955785208387685081504060401280882576530928613338218536369022550967786694549859840831497297918308164509299591375007691197189674935035715198049356402921787755037161235316989827970949291507023976168648500638711350213291950030162185075128177895652896903064307382669387036484731368437129601536154142595450386871403939937757229331754081907861472236186477175113031517980988238676809499672065301155787421903895706411889026342003248893372480338712252685808359116273745502528897158165252893458559992073332917270643463061845097545587607157748508003197456186125907919523397547756790428146870438160354502317629862403154589159741362510922114171289334954365963936269038862184699475234628714734349628579343084429577893591768160489907145565828826220711458630770093313875026138483667230328471271324403370389417937370020582538848595085343462974586129761546330098818380613471622144367068123766209830593647434779824203089851792643588007719385991660965819064676395228163412204227923600361225166762800809805817959608634907044676489969752731206819844161087659129308921545904602535270727998340168869797068972813448956955679122388569269585749623763657576623172385000629643097431758801867196778622302337761686626313383613194735164030192457866015571583030722616926791656696495316558883389707578704571811594643439575943154190842594034095145086554592862756588450503222792923466792468946020502672776378335372782082162574132407740832472300647105938065687178985678353176499441318059196854672107381844394584894355206625880941300121960095095258634611407579272512512213721721120808851287923528899437646846601112851180715727700686325620014589335685610602665679700087336790390214070010555462586184047579621780277312513923689896399428292180701582002676172194195643952140691259640296481297096572725632883710893702094899081642220651012725941496121316128219926656821041787417555877490085206511112622451985310822859393789439340816618249397330374331247961176362345021418914769336002928742387557224136238801409650992684857189883095669945702163986820609869013135193773305682331516858893373295198427742087469563733868056494251130633231126305929497135647645648298353067051254384277733390356742251254275106015420935632000828580480203488039098027759174215823884395982324399213351997791320885556281505664166244720194140178340272001588913151232770724503091760884354420961545078385602293601650691299698022417179040975852214509750365718671014374476701668954949809860316820844302133231294753311944307287824707222607530661550313377048567433177673780187427362556528134521555960262668241163187971915621399505641021267952300285700431164098483864952310243973314803274584532786415445332111623887442426957778750624469325160857808099012453039895212464489576817139881500319888627305327739307006052221082228439803734505899827427713024688157659545348255572452271480199286717393516117931701714477848864624251824687279320563579187629570690323298595398421391571003772980377950364643769622247594086396486723041000740439613735797564652888994491423786084011012092530775509474341276049429612663950436702208139051494985825854159043195922144701436653837090086310597411018494632369799394551311239799644252686426620709694272332095313333471706720695640499010117746899083726558958227016550591925185073348673250765737345570241734609304093545267924949627752957331473199375629724624184555559556209141191194341449583697305346139260517701396036647211806414309859892994272053199928388282200709050089164182993221411202660783814930390375452910646218891774211000223056771816467446911309128514582145623350254199392639694214293403697254888426736805579172090276342147852845171159793358683949582708777848945923958875501926104830953745975500076427942817880209963845309888822924844668444435978934992969703815080010490951086586383619269353212079157920241228807931560629741611344061954701204775057681684603450363251101514715997377838008179546315419061290429447369384815004999582774745542517085878825929248359890893896904058696058880146262175505775386662893965382399107975273136841427731744189077580762608632913187440083074499342406638701588434118337036353739357703341004735144168191526853765358858114755103440549779792843817348794134295154406155508595843372223045547494469371082083681693762968864774846732306790607456857347336599271236255397051086153029722340431318715436663045896664519494772035073952828141167261364775573651512353558478303224348107236255507362416703819872163279919544350880328254878533346141956341580515851255200266613762059679172409698379552274679654769437480578580293184357222297539657946407814415965602159846104418420879897504574638633059324975377263110345007883526226614411308746432007527543310904405544913522670357334097411361038953936205488162278132620808937840868251856753439847068293895997463405560266887292837788148254401725388690278507926207169935986261035080705818711562475016303706785297288155074428792011557060284604668023501271676903063619610708864120465731085178577310754330406817271342745792554224989089960879497401147221828445398923118424667699351467338884671938811855268324296527326556650991881567432701980880795905467409402710257249615892938071180525950252019359292084132044575784801366815719970061417772486937012391635849389518292465495355732757641915772661430902448737814363079481844501037224112039375776742371012956299574039573591212941257971377317380642251762879245015173680498372354790888945120312348062036963931575442187511759110838293983128970696089889333617995246631763439546922344560488183150804132764570956543045039887946431727703525759420885168724960769463055658010795841300073276541005669300880473754757447863843064321166457678059116933855613093246555246140395123534006469690837555967059635267696373028641368224433023061435637886568256271325085782988754921526085793854195804168834878320393755434962109768264392997096435151570716298393220242873391221573504547057895157405450149204067391296813236986713084196380240052847572966652575296901840679270480404071257149278895374196899274556480982800861780534821149375069748592727646706282970473471166057768124192290994059424711219856631703970709292312851421709343308501139952107867707747110693506341988776418927949443203150602191887692206995821290539150462272475857298368805377211257604614791064498291208933738314607657823186906434497720506068536754703911235457685639973063878413775561673956178547346920899595703900618118332968725320977925433975496355788656175038374221354201726470604385218417399226945934318929785522373960318189699900905408729955476923520484653198464109441472638512270209682361246597936649230096816957920079068912339628945583387170445119291463122143609361643964789152085385991638660537317493270429206092186804193765140549790250476323284196772567518532692554293413627466945924184578610781235134259817785353390773492486464374896559971008878170662078414586160981664129290079681500264526183609904025500297146442265406336451149243760593293484497221741670495607300709270966930630081373626095437244426262864415077221188451602055339039948399073368539669985993367440216095116441900783227628532020967175473768429474852192279587483728661562321136979038519296206914903679310720644183747350819756967881862541809862697335275911622113895563126581444615669098868062995091887297972633227020516766958554100888328276933950168817151425121130000464961899764806317833167963734468394359877555842972463993934453887681896012230583982495454123483846901227906650667120539966402438199316707191887826798706792314457332301732370269344416350868803998106730472000128627245749847469588481689613483064810146843298165143947924700287799999692371180303958713965838954462227215673751789733593710066369743465401677794876693827126924826010133231950458158002270252443273718281382203432085898127365293749042009590900453804022116283341816457158954532881136762300425932383025277285316058666819339117142756071901436252110878647689774313361568348143600671950159677151571994209925045358651974351217433148995362986459577385599054923762103767595276236744784373015411780191098249248023847992601905033155970398171718833606752562792423501471502322915226040073344350463440425508679706029183756574154155220634385818711757999122694453328169095385232203965140551622478277237205399277794963674388484453081291856087075945285115776786646876622649465430148741374434041612393457253949234115802835171916726706420049976413253321932968023264185604238844407250726184429168635244029064891281882971510109807963085489078408296858162996209974172405372138195884054954834710185313734489138863428615073618315971940983856409671778907328747548488874263536941752273214493089152170441605754779575228138860441161581346526634322335180551499994120920747749886487996988966609016298647007245613059251887148780602612979427810959175106126593121061390534398239126238964271723618441763010421730148603961593829714045906149692023791097449688838414460693488816581896686203377490432380560402285500300203833790760054565192378457558287178837808444635440671913592725089075772676120927597820355793311129238069562500787255621261073919184214555452925697969669529105705693949081477043795252746846428857657000780059976513735196236138549671160649459234978987537647492555945205147537264213768782388900418138632654593882596214121115183713275617186293306473105684201558500415888275224596272553297492335637570222074728662450084891008493971667090310629143566324023663522350069168530757066199609691517769136296816423572819210353305973653121794796057514138865964437351527660402270099186162380649397464629469059145410389896915712823061443035334896717137197894702185271373465229047571508172903823584851597981001172841624008575332264256870104506783286887206933926210464296225300640049384537008363226932630374793710519358483241947879240224128026322112752099821310145619929510989117554930856217872979270225777908876014671977475975107849567699735226972651661638440915350059231788925081502946642366221794222419627193830512571300758156341731744335472228432814359309351206850018812492556155398041720977521829200159574542608680010463437858073527162489843099921999704044766388610285092952412512732973780149582916463779961264780207447135457988440346374722234255927488284509182846633746892097912956133616636912653883618293860514743712673102693165456509605018153419697130084224145975581673027468617786639192569572259504829957949095455380939613566368867362879434587722359735479419109271940566491602563716241146574399806079379226139564847100509088133854310547377905131103191060173861345754641863304114764540098051749601631363710686177731098423191186883792466646499788817462925076225830326385969104813763346684573396978941742263352792540517432044608806466269639438441399399680324406388000054463077053202442078479851168048524854638306539988982012344438639506030805692083035706450221377186405063966619858121549719932096287976379223678299320249134663323376907683937506798854452991603031637579102314857327731543078225271230030298525957463346183743491771016593490253792576425399263446490442520642730994411220646479658661879815837057268723268814192110512634824260242057289532355278878879388038041843816164031131811638660047085552708791870260711191090657831055009903039912981017258763702346821791830362142211208789577610513045812041107639264192952183424682436897021148187171755742682919166651466900926261723564652435965004804486064484009565243740535998277257127154775143420965035710790809470936607160410409109401204343198362650554399366738895419196300768115511944514894952620851069181678275277900601054192565102343159058115046387015836281108775168472968235448292379153408377219664060423770394536103740061690390319919841467224602041222016020278709634210497728600498340398583958405020920179772368331590021104775464960768198710814060764690262307641563362995898665978424975144746463948115340850670942517978313717636522525265024464451387546431867622962577238044926008283381912854833467128688758961222489943213865703079384362648126486917319239195575989074105280982335033928863683954901541124495174081580175811283593389637139322839821588978897738173208968733872142290244872899954587870528590001524641265921524860875817357134875602973599435313403751589397953116836045668549430660703335113049259650484071644538996982085223788709376381658067322057906267429071517339530038468222656593390269991447758594729206486335321727068922921337649656072123726699603786095126167299930699898289526185576937336395914615747262993704332907491361548879286493334545854793031570289833085643027919130484944984801132677472723674714540464238890918690041275803591282950928901779946285379993451769127399585609305133613439311951633135422790804870303120495166678692905197557016600404417845677952130431406763126725007502973771475231381137511102881235187221018901631153701097350371845561662216995495445821969980708433860765190515546615724710867297141515454060200194406357065119212603548626842678352855321567765667856274237049382736470253819510329644493417562468045643539663669210123524338685719971117549944620405051319027311161661983780236283000199531586898796152521494249297076042057709962296375659617257385843363864089612882186483011096861010104521194042246161986775256491358663641742029583329206424091036122451379643813339995617014395559974901324750229103802459912779964678952243662539585905513682344813241014369025687600613679963441350523020034900677373797416085190314449779226449004159912949773317441274997253748410130585452834460921525921022442148264532684301788311838197153488214045092333833248738863539992258214596026393880361312207080127898146928759532944828273755112020150762543901900909780599417149017798388827524426230474151727783848576070816137275463958706329994796564022462987247152265176177167377027738497020717703943961664620576185085060359029994275477189274620597896666701925699353077983467670831464732868005682333521273108134851560695901636531312377904455592262713100531048079615341639987522780070798648103656294261552514359371819697690370718900761285132873964414269079720965418352694123390711796048171828211350712446933447902337004888031820961760681947091658288606787569568999361597886201616246081145086004595691510125289836285232715625052805420357193959766431028571273273884312544718834243603386209610521229897583749999917209381759025521656574800663977670200236486311159049084462058930669773659730906717941852889339647138302356728367954153394241091556337021025695746100009365356206842517915930365438474234655981169169392848543696287142485783453077315707443884359497048029321016543273726728581622759268368951498172113236404672258724826143297790912426204935174144940925419825054496501066157148100116685683539942119353842357463842155153287809391181331212637875007110618818143272423007446534339655210711308787727457805362937867517674243241701517751990590155219599352406107118825423272928091128006107475944969307090808963938393965197125102910390607234968023616354105616983424173187728173004399230782446448396269313698517179074609012230810077914835344808007543658690626241593712762336949572439453298571264242095434780305395729984020286191167478517550616142873669142001365176506645286830382224055093609386809570903633781845919506164477863572028279717930206865592932479888429605430352252084192837845917490719922587674750036706961556624354248275904129363181761105455570166958737322875764791613209125037011154143570587091511889508189143475512723326826711518080966085031393542998529735629911206243590031659406541629673566217110562706709654574502521658450757346080555042879936962090925929227122753041356998987493483139451306314499856112454571769072153810039131936391772666046280824984865844542248184265523756828675581503403562314861594043763224377528651971265390985866803443474683496494779246763678028440579219808946961498581337256266945567271787280357904079757359260563601294789178019824909336821431498539390899453113245802851554309825760763821406513748207095907994377397202775990694091041274444662897151501732170549562175701274609820220998354837204778083812293677460530493116332736189846908318022091028780602654809794799750392814816855309068601570720067583548668891091420228212448914716456268942239376603143628698480030620721788103483359402989459180823763717963896042949414489627622469158180597799341216781733431317071041572921760504151144825514964783182478532329400627699494836392558151519350034085034624959125355817275246528189760729999018132928292127421125905919174855272381409466651905333777922360647460218143083623975268572882867255182076860260752562397232466847898180907516378407408047741401836077690441309753705995808636133855589140059454527586873692920013850294738136766147325175677603427979653112151257747360969962392858754222175764316982787610404591264462971464395842276414996075051769193967839559514830471110154556988775134447282130359294858500320564924630385639733614991704277049334281801649362096857163056440498535229695602229003985765312918082940949950192742450023636139795697991971224948485639759832715651528630720704298146683819343124990759849591711578402153585031358795652591852873378270108316973066125192503380770419886436061401391976273270923904115546974141166141640323873062677410736918119565867017884973780408098901222887690087945685352582770815372253654768863595283664017299505943701225824752402049848853179166753028329615437997073111481227744704368535974722640070703429986588577698977100308093522253247942327045236096672975994179850473974235027671877980964122850187030278996259936633319138347970088857314958506368155086662977214101766957560600510868878031744820744923998928002545830047061554372861241755052375613389711600026776911594518663194872537019367117571886773648762882625749434248553275813826174531718880937036202410979275699940913351072195231304272411452717114850818203803857168215983271495250680670934967869578139902285281189202179683731262562496271464433641894364596468813292893872776055604130551492444698237908320467938897840652686555236560748974045849793977580797040489423553003730640243527015742388035769496667348037178413112985723301939669562756623214971191023255531050073572822927042367258875115968344055766890320997205387435532241680672319768237826511645296469472406541408008373635313000311283351127346349968993237964377192483880433078349378755309099902693882969988018904405995833499335946685832924040975552562453767482095108844196492941151324184123889041044125438783871807034567111840505871600793810006244019241030550560037620525033723833665025002381384515773884218180874337845604653942661824515804715397188779907849320695828232834175966061224535925445130006217049236763887239394191134583395373500048468476963835536877806057118064647012454404615027732084212948788781544712681394816377604080754927228245170501184737914991331717857105727868176965242322062147324068441819957673736362899313549100087512342106312661075524052653608456226450616532189707494090205241028664457854288496170591963342128351440318625137741282762973682053415457521465390861188284810698378689046585502151434616293459874946035086882818675465779087501068831883085130820601811613162420438077524608292093123076680447347035039939053412716219599756196455224318668328218161682730755391332721851118458796210190442728081580212403809140203566179748734587394252347873212561089070836625291716516242974873957557160061415829538206550904437251137383548859457340697491533108293883665854474192848754032880690524572887893054780090425992203506569299840668299254694368495412105081743782187045398695511925100520797836504477786165547841272732962289482738137527700674902433113275815781824123148945573315786178175133184879532732653525371674652991834891113425588719329247052090289984555094407958209440250228257171622746660198953421075047859371641542004158695900221061351522441630769567203007829920678360347358711159939728688896954004354902694727564991784994215361035169002020029378154782514230764766321345507594002849137894167311995326836795960140664694320494708827514285101817679853875626768607579820080947927406876461556520094728058731872523580022970468433053374886292460081416299225032112432372495625592646705921019969728996267226501337424357576088686838122148279726809917120136345544808550389292032059902250580140592043883855490838781454841792219862295250568192966143728349941689292097770591825152384015876796069399796677239122766683501909168651584366466382296082936128321352267201092716445422902180861669389284918807623297419334776319164352982324187602414139241116560499173383099170454090924065966127876044274266989056168176178724293995302720572308142577419444820170537837901270159003395966708598951990567807637947678620402163437187373892038923044872145595623703786185283162242103799103692146764577587116404306535579423650716271165229198144680167635607375240311605564099642475225697190536600724323069910350307914485290682185432230914280980126852306758610755420575218825238247183291210631005004390737913243359331367030871614463732622626703384416382538582802176219894174851540312365081460911753932917671003833977592537520889270772145540440497076419850533261428835824744869393392748209145423348679563067141010714933319652243556963837847443916599627656177741758177956933629878948034929197966051295847139786129742390115243021316253481861101533083568145365701282522744727822637957958812329580030981890578685976465533229040872934873745583841153377069619012347397892280568850297862375832968966777323410708501312593160357639613712714095136217136560506788093688066574160403098895988925259212021556586815472097353682280199778869753910429493071954236174897276931190171208608797939793599497552175768436001616907290770395389850655981150093444734494982469107530644777520638407014009253280746717347159278861271100685066219857840309861188218894273416562121883111570530039862392852903033640406099412222014635727883419103156069309302340810008639125472847435363304356464775976663983195386549577215264826418856958543847968995932765026576508256513170054656305375182595279043554475436076489954660761281442999384938504177736834965849593407064191937415603322001340269330075069434252045793156723690027159650649657696712673609989902571253937320360472677034063372220393696564007642819132262285270632069858762869514901268649840369064041747694672803368006605273202560117479774132676672674018769145598662631272536056696873545977504054397362124292794981892259407831854743833525655241463498381593196951617628642307331372762574728254338113676419268810364337135008928786204699463741001175483351458275353372392583291163260883875578251556471935502975905971361660163352765927869571224782729475257244193874875041721993455347995020769180299572520445875503050550558711184382842678691209886307077326316463252401775991741754034558544044067939420340844007158882218930904181451144902969407039948726721870672345327903859509894129692072260930074836401320720788888939875705823266721878971312284199247834520183997270602051271025201643795950718407601971686532843178691220836052630269328274165753592591976022789219644643114202571229510446825788845870911657651404483311477707973021916996637002323474527623220108543263063438242833925706802788479326372560216785012976344516007659357394764642063843676191089922752248998688517650075699082902104096097139585712610804049635224588530732184016635523998499818811075346639254024110900118814945290966694313672562340698490380980496524269183487610796468777518009018331187305564279424337811947414873732769392440307639811061222474249233468113795423495038550246848506030989966167127271250598361696299011431894096718515179376195571093452080703594503304723410006782390594284158950696315085245491927682809823337475275594793046286209979547740086597923088375579415679975582115772893670161046163751351307735992819539530782531868590897050673968239565081730133657615801046247104200112770443361447844548259984456833696145022460516060212752859798507626129175163139525478521714444732824939044249358413403861623381698981925823370949493511391486355786231300642195160513986398084535600173291514338709934229022686260529294174118741412236741306835718033047511207865312790154745568589323700548596826516696137890261282592830970983625049319958095635591119765521510874709576780495379962500587005988592309892038828213732343017961418673112500390044675634894989974730272959675712083795595648360599558226490342656788527286247614468175802115348020333354469626616996411733311907618327168927594558213894903199588375639463432540791924274533688211882320146508783064527185434027449196168088243270249111684389664913271967711745936864130156724615446654953537526454778027895486896417425155756879816658634638634901867355179445501064650030516697475118927064531596587090802956413119023615852971494162074535517132389154410357264386741367749444342674008346211476894868973023448551716926894526996877271202245408727487076281969493485751144313337286375051199999681597482804117691869111120669273489788732490326415769173932677587257701830933794767974291447883831094744100876882470804383162727308192516259449393695421044754756824253914467149095276301097851066904250620891184397498352229313055128666898073847314838883197567672689540155283176891828608191164204882249842709588617129092996376046468228732001199815041793926149643343230898621250959368574500535433912444450907505276917075163803386154669375312263103064729017438481225267313760557697430204960889922661022625766510583934664598300996091505285134132879709504295633662668024883811169629456835977360297214179776537374647904665482327850608308303454442751150491227703027395559292375163475839700203696128014739471810991550970710474464933875538208197347768304274971480726889043772502743966769923397686315827942418403145584742987068161893271411066675470695696863962919126086846874981977666801406480043437702543485415405173778424613135892425434673880344412085178963392923748465322678494200170308111308981605729477906482555043930315834704305391544581057248569649983322075116999432560256715407898315488669879938066101926353720431075611786517248944486655509493328446413403913584066633822595741562376350973319319478641456091411050020041187627525754784130856485558072472170660052607243787371186870537466517632722204535596663828793951492253314799726519682649568119289899674923584863046639330645707007680678899791048387844961888305281871424586092803203200848034759939535957110131089637188101715102657690459143091747652232287518798938786114587448601531598294413127302982838632910465748565547979267724330435060938194430368150647316721183697046257383724858870825099463183262669130852396566544608243439300353320510710666236635995688272280485611663913804624278646307393874422386620042629385174018300276759320903414103515542257603643202107707801096053250618331551735321688670593106992131444952074954155034062596942958024416455254251937311627073512937852199817083479307103055191499210326219448514904454454766139561844048143199209897117291321203762547411858736282732631117850491954150032321376900794572697934526735266837385964026861427139310853318248608983027297906404685469300382209797861029383940465117970990915663352596543123873431858175174073561995242159606730174087525679264809160551529166940691208195227199527771236765616029047588303164358191700603005090516083918988500190412748635068662775094593153806439027410262467718610296582596406506561308785259810474729339607759015943226738057501317599058549144295189611533265050072482631553940899322257274549181827471042485691643736093879235013499791923369584711897489139303928543018992584366219965428826079465132859071674397244345475546834295709696810141206850897871124524106181642275758037144666147257397462611872704980094363531901282209059219884546310708821244748778513548882253242175261506636798121670330778670632462225769210031248240692275165996001658271333567276503879486735149211030223872502231042475976020544254211536492006460231002840156254193662693152775657952528842651158586242667846834648542185305966057864614795858931513541079930005574784415609918037503867987134289356143701892852651182954999582326846559488646621227840289666243538016337201521879985983565383644762759146281575818018685036702812319110753467173571502910730452331212957389284338407569355530198037726718404117394451781372334283569533878024315832225860499094254199064447193741354147353344112031675603550772325476937306373619117971921407279738044939994679602019822029690160646656236101523681426642279730482796225364603093239134897806844483877977477003253285822283928056091373117593141647464797175731790145249015520412723194571751151585077145163664786324495849916418969230233439568669408674131571580352594192226260116856442160198138367453844157743740733419853478903757444097893430210825135665695948544420642809325165694021779120392513797045581580878298103408732170356226239232241353578401813725482176393976730154129346131282853847722041812238050346862344251302950206659790333316662796175093893885307720957750126432932612856895170406295643704626478690176196515427298937527833997602360571285127640952995726113288057973643393041170918861159487959019573807926176593606491812942334043865687840621673518511072003653424553793676096534688736004209215620710775111693922942037739915700596802543090758653678660023860093791848893518429796311234304119440833104342159683255273903318200925075992102471602736275401228506896375530596211346448731353370397065423844350560998099138106086505440905588644403287877783545836663300892872458151098142722097396678526908529281368184560846051376884987974434332234588022727640518910701399166551560109518875061323501844761224871289858214378057479617805388922933232409554861305923863816208780873154397411186350463619973332550315916613186244186943002736884577798554669841634534374355311995558090001238236033944582964210237205436015667299692381732865078824717539907743049716159117090720302742744658896644971830669585084728871487396520025639958061819777325594589282736550455999772981692607647696683941607518393891800232604520754370893232330458480828378487786294502159003147166180517028935686735425165146863741157095704019434179683784932924656422542259902361951187242301770588894980747715316745386982021257541997720582044662048288416362329309306923395724170657242230299382552256070338645200178836650955210414536271111144606467399714609816446208508712066183820602900974305815905648880191433862024637261468449693347570336325715033330002745239500675511766387863834914205071913658851372110022484086282692773146872911756022020053541181886908136632316548539818545505476568737432510990673166414819498687423616175211077506474801047403785336704986633930317616609409860459262808534504098207628711500185455550924448403462462597461009491987261019354570939603902247241269144389982026988873257361043724090721612975587369638453876773224513510299446760061299702307150850712106089266760615940614749941707547633697113644823602765964077690391128679562642110045457026430636201272567394183495348305663495011423864294695687667505391701844721507685575917634494576415562765263431912528012902293890572854078789358819446674324551100550959564657225130597460193582211696462781748177440081571542044279270875622363732871163008568298886830214149408338456686671181288088238710430134251613183303842735561722622538617296211820967412093072534767280962572510124931985892368297872612206158777264102095742164127063178200541102831915018081858578914095131429701962183040671888325540664104142962558966764588159878512404273613899273403625700580728316800557208041353679118903944981932294562877252146563299922799312285800417731093726260420050648382771952350173875654578562430663991431039369547213007575864608371048599190655778788975496252289894251470834913138208289431972335528867796982510909339961391793915935212308108578495759457173301932502077011865843514802936333635260400228617754165343074947725637510688683090219955078925110142527638215531484219295093174852895720849356316369035441610437905153381204943523529867255703819279368397073664877484581307308267465273295769547829120533698100646552205794306750816086523925170431016776219791076981369502163452723820272740501697410126644388685982366724062906395611189377206707396447069486081440746944745408515962121497555535841709897824062273565107433421815431725487816998980144186759144841239986964506320216592406705344604750182678131694690901076240636719974429098520226575944509740545585856613255449548740603539695203497784538812177778015982729538829165768906530541416031499564863905837047449724336143677305413689067946773248741744308254435257814319355966570127231759247309089227988163925738542858363682757024461885902104694924365958636687330674834501561200811440195992834071920284356907364052481004202780162475615264361692665048868082911765642260560243388813109996441982432615128391506202089436826069658089937735792675090377444541500653859158395697334957267844568659303293668389262958672986269365019291733529445020691093969913809251879162701096391899919432704036007760094146015064197017876609714269069664248247495860426021817962022994769867576883721450189946193754488397271317755383932804779888349207597637279998246176423271971215508408596028228385083533118017823833322969587186756610872616105889070643172998702171350474808536679362488124671687045186340115747650756726202815611696864325236341126750887573488382745114959891698262266287635144887623705066990786539578530227429560936742954103605553284168764903440049658235514882790069873872980764580865683069909395947425523498229476635951134135066187294702033383083006771516058135128959985734002617172151701235900064155800274086451582865508996104894750421805494884633405817948585448924484018132895369572442832507457050527394456365906790498233044554638721071054524252010479843237380977315063299905324020227189375720607799976584930945751585114133876882271957149926921378859654671615539134230007851200146020998954019738345901219519281176480034335994169277454340262441966050921110282733552850523258517126158221932777563924192967803262108085717101644651732427862135236761368529990486117575373250007465575149656229172288413468114745243193701340730225500292452261845982317782522702305783051910631607672174183573742894581864702075943631455643469736059995794684410391012485395492465147397353845842329951405287305070380170106416862889780332266236057896192422249285370762504110341587995001559619743210312752992982358813497277311234560910990411934536114339241478272956235986413949933243979215740325907176364420712905760181002253325625597660455243835547971883772026680844686245337352324400432238395617532940580266334674084762351195352871976611287137979020035292205342432562744176455980008317410089913605113056914510384188377096889545943914900849528053505497426517904428167464768802242922333587644079865559079022591427365735040998804833400243817335317847768321402695673611994027431933762558470955478623529557010472138304440152096935442321885527980558754418851817345051939176933470432078966017818510451011140001856393543457572508693507683129247085162281726741176582439618116155457650034639954694850011599207387243831618800561232007652993540320362093232940615028309690484659274096620116783151845932098467871823888360694800275078446845063541239333153653618729970899108591976362220839476930913426313523828009769844608745799578209889408118766194278522123312125002570263635514558296889876997278038497170902310252004374111401016806278001171148889631177822483974651062576919033974715061485024523693972889312282750357058822517347520661999228131421471108933675737904873444161877970915702459703152569313976038202982034274289812939088098093701913001534648672603826247091808821707642245372567889399858725135610145037042707271299005372930434458159280126837684655496852154463881598333514644778278883832889382608302303678601925909684399416561335604445712417267672589949778790725554731306009587095148922125359566806657861135313529321976641974995686450646119335832054446255680347580165126879979042044419060598085717038404433366495037227023468793036660942291498744861863337537505281124232020337819838579148295400655649313006797736553483291431562092194225954044374348129926839242844817525680298198037472027664540254619370834249060111836124820866301759180155820986988185545764112606500359471973325688958251591792977025606060449735933159147804547127562875056672109086885935034400345783507018216694526085615707365322415416400977668089929620074722920463986926073699777500885827623672377875336941966177773013636841684241585307889075872490613852080133220151828208197944143051481082110016600097152110909227836007619638857415140485322421506880533750738365448248453771173884019160730644688428316657007265079907418146053313673391269479160416494645760530679501702908025889082834833752422142312327214365991611731213484925023047004625735846733380112011663858318873438853281090225331987406272122147011922892835560797959136536686565429439707206064097870704334226763680587628578824106488326134971910192000552933011627213289231856079636289469956512851481900509845499191289236520328376643270443851207928137291906056876415445031482966347550179301757348405849393400217328317541091958015379195575925023415291300714994303572841754149593963724695722994306023204408717104118678149829427147709317715184396687689717131907248373735928816947961008098527353613196490568928422286496963147320767830478722979477210627117367284583564151765097622030161875286278102632243786689144239233830797500464674118844833555665150701599551549291067648695132398887178593490576300882676837820052119212854542745145275928788233860557803656106847948660313901338585123509198102152262080862620196443309223582114169443697143788182005323965661131037864817407163543349969128748154943650630281054524423536995022519200553588270662638708910589134174784707233046388178362152561421770520986670582906200477147786036818908195614064558034083265853473620095321700232320287431286971161740633705716335666564303512883277738798479578927281124304827126109411628550635920976701604009589998372238177622419292566292508479887832622248223776321199844524048087201432227285662547351353664572914009502096913046443576488613081849418433265030089740904876799348516202433673272892222599978722642479132279800456499196643219935928685002241552583009279076804715838065819166709063928729445211987603429782299083139989980379710798054865975757125579475819982301622438097177518391257604638603642782219989121837847115704619147026756448933344980303655640527436172705581708548086495979365883989442777956297861064686756232632653855627335555441161379330381988028614132922214563931062609612981217583217792888382258346269156589480531104680716671660843602097563259544906175953047632201684894134713044934886342122784616566101052123461581590143262814315947325431079897127533992053208213772831197139477393921321950367406983968575673732489842684478631808610786819129584905699662515189295661678864174319161325881774898225302677821956164838109544867088166975797432407209778225389502408835667824762810317806570531551536181838644653478270636060753136243848186735698921936787068561272009444379024019312639835461305993964845770901657315995310536564533642140397480792065751506596240458662161725003941812166795156575449300997082194642136574268636715699574477123583207710074013231419549005584670904165383066832852434097309237920637478568584185214291340247858920345600677446864157075820207479516435913159354162895149682943839178933914246831739158325313880062804048986527045496765874907303156525236957626502956535984695082175750265264182040112256756744582781424202287124341915889476865329637762047902517001482090823046122051454019417969653801042428572241554149903594563696216971089471086417303692355001452668217907919336535363540510333691533639286463160354907254954690369595370594868848799012502432925195882849841881883528643733032420690565753517163241434700799820259312597270089114994255651507210431040812795778803218993168709635165085799012684771155339695401606404733272067713261441817789531502690261233954773987764683457783126865719140638591940979800696462889358595610109685063197164621482837492841087867924534221686362270005610920142172967000765547790474139015101693558674316812907841790937671975320720653759891712195877042313579024499396033684964213214251555377900517747431491559230522098876301292935647867270396578099248539468669043359495924086919167209618446753030784382595541828156238094953079838735419186239805097826022214477098905101936353661489874747557749045383012746415019422459087079503532127878270174740474981084916653025564736708292367547887305611362922115621876088664532174751089531733139605502898431201132677818353963114431445505969911984091631576204470166676748565582296354917650843133752810842887070039713603994835121263424117390421328746668193518594430955930148436158467514930193568168237744870035325639645574894422999615365180959442282080917177673369522154123067171539507498414403542338758959749770293211279390582530835535935142592593890691325281863016765835356764246611904395511893746399136628735103341061710053471352145334405054210906728947524209418793848039057065430889631386817556083598632301304978738290268002955564041013740925857172886253084400245239390632843007316173558017257304461783584970417502847122175216791068444307324395333233123234509029590721631498617348915195570828405326739400643138526127170274403123503095888864467186777508841775416726878023933007835071783889036585984794899632596735542515923196154619404133875373455476901356504515356672083470061367146618359183203422899123447042717539204180499567328706962779444693906014534366589366108346803227650982330109180095242845977991475282209177281466125662799791936295124298639577249193282506314777679530952371840914993935426016219628494765396808905792418516322789447568094320521127997102418987703129814117213467452833677195708773739460299605100220235695294485996691225918136453321817372289043909352391458057088702704853631266014295134790083299991686616419570191827471197159477518852861152572876839590020683769988790508152799463139415927855582648622534147303621479009944339527213590117088505694571676330930065861246773048158835868847288998280112039501342318943205806871763870987223614583564795260201201547286754766516424703972330141687413347633133815909502943104025090045225008299836232540301523782775102288066095768051610905005241121279772903973167495445714118708106695666608826940621928037565402744596634713742414610908085665797858720939047798997538195370521142334716931837537103261535136179772904939896433182473156460710589551549664079343251440774569788720764138629535733158649985868055756132239894560736169324028076301188219555863827445040355355403194847955086252463808271690194341156343922072130134559119550743273308123306777986633899761569738870769609413096267585819917139619880961241372440314904146084217349984350638932736323997772530477698461707981388672668040715073049591956946588018397428270463086584860905615305855098391925961821517517042868620039743281464539048432817472960602697436083358483771401766021621923505267692664248278504181707449666100966265891436607852735128705785009714993800952525010634592537784407736769195647799040209971296525716086477795744009856440874211882030903039666134468688721329671863526396763799471546482242363734585493860425472426794290234712042136586380583117795673026035914974654033813285940431888311138461549346347722384751422911869055787059438148653800331378591450335280724461201431217082392603318418695269488889149659541193788225853634596234242963597462259936480996060136176923522255416150371965704616965024774797429963383756573785081985616457109837957270984029471572251256500016863246384735769096806537444297953415814416997353969105458640558725719116211400368878099263399246773645015434981602685774148141621732551557312277272906811817626651710848294919820991606152830916109729268689936015535787176473590492999512357928035262550999014352237960764069122070598443323329082862016624684506513151630362179618221999192731829030221531369270662331665738481729982860559781567388415671731821993337850281068260563615405462589678696815881006143235380826592901094660780691509932898382363779759187421020585533102515218684717085233625108537391144251387106402830175873142909698820826999141486166407612565921660008791516194147237350453483426487146731937430353219053053287040086759023559372345579491917872193014326643416675645186319186779104455727734758449749728698990302489620411518031585920827455252588334255599359121426710017261287413364676783681805345162588274369842712936150606245700537543046390939530288346204935030300149504666132848084404837565619933451733623048338434620624078654893286445470622967150157862813126929520932328373489625250255141083952284753445258990167745206403077540921479125648709436092685558294594326919610018772286513519601230208857540253607705798120042317631080300749906249914082368893500838998202129031571331283519657900055786409693959760098544947667685794137806342223963856431514044853118954944331865898051773202116884256913663897425053225563106563317768623252071065974755901070841143941260552711567908252130348849588044607575414595202664154596547244395069086902941935520976756541853292843829275079628533344943143060717562919001136066857433334935630351414334771596432824981908251611604933187640302776750645979506914398149475988172552097079421289099065810504430113013512976616877964315576236252207264085162587777278910703798049763557292976590633803228694834522406818549235519223430258026169529304156194849939517131142497866357033450652699414659051060972193337888929085889055930183104072068774031727340815676708556906585576790355169766270175408215975382465824373325073902911411815276571112529492742245290370941899462245077639949204008727419588242135570386452650682429137671569683371585549047012795795583388985181412556813327862706873626941569753735420525320310190809984970453241720023436941834624203163453375283924336724934696789174700439369816037050863704414847129535575662713766128120163556754788649979198928636049942523497608872700869915668751297583363496850438980774326881465437128015600974831430402563354678515867338271961935828464141014696634944064639576967281480993491254562793951670746727622688910269047035178547683016677317530368480951014573969209203456790477343202670523991938428907377822810396740473041270180728224662659656633595056168807048077221136250056670932161810779178100013692626178356099346364966561170957106657418691906700941839052590394991085820187400139677580948308806844932639065953594964099815181878511690259623833701908207805154339200958606001062648760258515340577912193895016359856804772764855424993274253083967804605078704663648877522980188932890790768641317745042651735304973195220333279022737490647036902386839217001112507809452850856358781631346956041848773637234611919075052839962021083075695357238636799460283251295351641907770075588715482234890562765137168269570223033884122545896141642251733797053530010151943365207068323353959419186097062072316633246117432919115373300092387106910473166624775727358330597432120434941486686292646594540445427583174302674051050729112660815105989400671492217866514929315889964415531637268310191381672732253224982127051579311878240064692850915496009578141256392524336993321795232013706843231389248872894266127000822124809579454648910325060808077278187979034437805898017917260223973259279502941458841189698974762164158322656180174347666149990507225422806133178138316131785796011129811307080667337503430903234498304609998081393078691624393383561424495288672659636358324044899748452024833069640227763561502951576413279660030034921787946041398542252887223673133077213222326979785252784573700251988893584629007727241033339418329197819272966605727268419226024698902284187169228536755369726984626312246508499028976108056778159535007435330934213006682507425398450298605108638676180298525644684497671113375318175017648179669933076916907451168885500954456390324537696404042151718290422014565802735159335844508430555911343211033714854747216752507328881701286020827181027973558645320203215983414142761425379639845612092745929322485979723464821023742247014562137427899187762294518582029003559490383053000028808490846747819399887157561989018416350969057808249518390534559691263551389300843706221158862129743204894232883556958384352504827530832588343359935614961019120382405759269575023888321786641969356468072561994844414936749196118629437592275882891974094068852562389442958362275100803400069420957662959293384353797894115006994890278114371526088389159948939167543740649545284537383885638839808190786098570640462092876748330143352454119691614541499409056851603778523980595223247462594355751145010685667009179890096524138674338904232035312481359286858578899613498186915948419368107719825611853835583389934333928970440712325922512556385660713385979556335814735628645898103744638169207838585042693794579105493419028857202754321896186342425526880599567405364779995489170761983056978931121786288514577369759351503585617924111320000697339965218314503957734533873502501389959546409081652301479939543919103991383111585688118973586058208373792493398948760037056186107194255544060294005995629860739486398805175551454226311880718213894569584874518898866042959113897577132744811575344317002155804189990116613779408096443759319516903435281941314780729941303155235388270899730461269767311765492729669711202444066863161113582537542800163079747923584308375744969463064366984446406116653273327395387692628878815127730869009905956400110711889434238013194089163467619471152883037536069643306697980714518816688907702216400508732231901462658616927257589137471300898826613540162151057956868031458738405173170887606795573142087529242269014083709052278338167752117880835046309325682891062807742674801735188368717059736608029691953315909480121088660224239178580746499156632661928694964585697958207344286703260139736666772651549647385305168960569689129628704089784043069297600774318802811648003156597565753296172790228569027139120911062851674401603193549978469165301436207671196948243710350270975221775032501280350833236448646807016938561667028223605504920161438189572905319110995126389652323816864401837381246617214479390552052438662998714342037739929094661203044248672135577730976123043190589826701712961388713273893140641488777262888630957616447887770363841359348400522979318275045454391905074892522696366358280811639186836075979110273775074188581381941312850971519871551843690106265184641761322140746380013583686960518405721464350323091524165945985766584496385512910842991420768548761856614464573537161632128555440996499790948117094421474926694692635612866305012448827232672880765616209924950485637246263953265312691476676050382648873635865554166152149278038031027524360548296273646987491982964920111090397691272205066006069447877214445934079187008254093372711142053440361559437025702999264541487698252727371852885532196728177131173481275964406050203760156605658075466784617516431315789301197280911802799458111440623298679332288111275522735349601387360220480382302566934280974678779385612066661350324221664773272847495919665009388476956610028388778503418854127956748263143203613700126735687962882894149766446871717286295175527639148747326092070940214798940169209981357884771499088993753144153710039186744745106851785253551111522496218015208637576982212396814966876377149006673189348007353542159748621675925686426515049089168356000360624817885440919580698596319829800184913095264993227305604537428499078032394957436431837874853037604547422073798657342468106953217730625506285162366772406611251683641009536212261976559350691088469861200445736598224949940974270106764514975063653120086991979244086199112131525922639635630394823072035027254826006522305602755403459669059128649728489000468753835889491296778833784583510283064326860680270807296616194215153315601215832567207403975223030443545291102699691967213002967026651917010495073323510262015679114508149865563148351937775608089535328101300919588693902046175857849581572226017472852319806494477382907263282407184448951837404224709709145605076650733844590423501172153188571446531229120885093875752212040907586424069205285809702333747790214379902846091261433646662551323664447337980965603426188422325743191317015472683545284236399738749516420097959212289947888291843374683290708112126705959438525499876711876501852766920648560287500499160515795524495075659273652111549823799375095815437994525339576323619703132488766987803415258442348011296156180753549066183254796420690901937713546557847245950366307221108110029100916577504103258948984598498361586755612445851002529684914008658837776859661476763299123926395906338279270726469480496643373757645797555697510216558325729661793392907952712109485613007759738683829370840522069506644804664725548966525078126653021560920376177045362573323163090906618420613539036955593045986434199468673127422473160824870202019665534841876429158193686042856227162710059521892976178266051546619323745812454855182183182321699609014235850953327988819552425027596494223128427751087196725813684528737873145387119302310934248211631090132508009931961334745059324765037679201386972299505589809181698731634929307712139304082267983124386305618402940335954859248406709295828665716818047765446407466833373232903349354605645713223745625321853420605338222782138935776422199901530319306350753140534793735053670853428722022118053323774277960991463952312102817515036506927801764021252792465610879287865326062545097771259338234424018057195551545610752382204163737046241210874622265768720801241603414705802534614445722962321658442635697703474368306352478297536415746371609097886346539052388203782012253585466697864521724992920529987488616218491542616001720249661724518582507539791941542390446388739122288849811586647681133382449050092033569370551242367422679918583473894230241044310209686779366209109243537204200583079282369938937391980934921175438947660628030183930335837486720913136909165532253670583019346991752940516120315014945557533180838606551977641642972794713792297098545736333393008785152416626193181860151099263410850989397006437027693324624030601231970548202045471959745960955551315891834506949425357812862912278203995540457707914161182145452593237420673747653585061688728091763461649578883760714558249748282094098230289113572270536259124397064465447579472513332659098578910373510312683067438710843030088325214791121350351844802114434814755258485798695684952043290430330489587444022866444822484780667837180631593901149597906196054265338542595725806269815681811858177016336997462884992399517029068897405351485058910493338942773245095366136944685887689375798393031465026100766463448302464468153799431034450335285174491268039636607721928547974458739501133940230874680569961092987208111492876378193777776508354540478204321510350766337489047377218232219455589232778223365350993571163230123780171290742391829004013656328489891052364119669964114442750698262116476457761675315173294757593205146233060255780360432922417530458446189482648963089974446865221329718670053260792812482673631202635578653397028225220454375814959241321800540179133273209446902324454866474465712870104608603040105610609051647199152619801007548750809503658422860060102008761679755888750805219153501301232118647185111678716594610285365061493414573201681826670178824876136502646455049903067202865061753914564857877730280987332086804556567594326732076208776454691539598695150697483489567192439467517742339058567683805373181082850756283501343226908594133587180724939836774172245727950953246358970850619297597795510268234735586812396409949342060754957822184093387391987435343967788527128295592587501139243419504468634395038306985812501228460713004381701053557353149392414316319159045439766938403064691952988468172990159603904034567618576517078454073589574807640088792499951494897007412481439165815226172828817042613945815998675603895839551266810203041540557463549601618880422595612694001691176721767905331403554736958693054699856445115756115730163002014276933389075988018260624405254970688749008240938937472528551631904675937779579154671703559473491782225754544289885330365113206869309991912888766655211099112358007430323264293924928719023608242438911199398660647956114739978371220403562003244114360241785296872968900764167117572546189723720486069182351596843225135873510856974866809391617032033348938778376291103124926306658822947463254842243785293411857768645674399339234917257487752465042071303130117099582268708291481380108381126415732147358943635883232281953223904439893633280904921838388729166524144443438023658521905361665260253273178855962568591982698855496704591550103898040877719318306821544815202601257663470065102266259639011288589840904541195441063324611985872963229706334557310378587261818090382113848330064066438006888589549848528598085182667020237676852657599066385110760926234653396510788249029703280072493142280501036457131799169529272331433966730617569886730009144111164271919873667639167065931878472725415739267536254597650076413424445837920300192101226125249064535659525823505470183726055145545936027139244653420421421968376439735701197494152889398615266708435537789407055822438016352746007337446759713453855704036720344432072028500068736825817479603632368414865915834949298501768061468058990358999728418526677406168533932195549305218329976099498947865608415373638214463742481692408036186986622567008521732208990671328352009314307424858387634180015798228342963889060015888109337953072989996858465397486371453979404339994600508083938770167928040371489884774821415216895463339975999551346404539310765625594321980364888580456145645284495789596779047699707059670732384363423082567413311289445417766066903120108932812033735194007875745639076059971773611695595930369298226699689887530757182607200180555490424866852500354278335710248211745504017075075861489760320339406518023837206438540114330821189653496785124635240227614299785740030776372716164347576996371367696453758786049666291060825623583931733617166400922201522987757869762535064956750426020704910211838895404249696306683732953222916911769057235812123642584833382396908650924791023857970381713879653850087690702159592512457820410545126962263135916333487290718692009553990990136867338853712296119799620389021790693467493319548509487046193807035067300571428022793491532085406833790592762249194089507330986118793183835549967604155690930788412652290774382786570437615905436182587143053298424165986523152048690069764626880663924771001674614208870700775057636574544013621153034530028600936343135433414024852547620621836339635782175388962947149588501572338968023601028657947615714097664505300310704548536267244320587826863813077325803043607813894629767848585258781884911603396875895033512770446667163766316713581342203599053193656461577308021759667460599675368145672608141403716301072686948349547573538731916037511725112616726022090801326191214759318315372351108123202165445558683787345790981346496193841698045736301317150797889589210459189543355890836776340894026259069180079752019345753872705746894739649458030059830571977186078801668695287342155517989600366347375634065198732286533537496027447482920188164669885233375984757536910081263061485680842755093020035328888383480535067584494368542677227526910567491359058286899300006435602336591688760057658436485073815748827456834053094241380904718137018605051934463285835040083888967219444382469591752718406722946376845262685940400863582844919519716585379360370101380063569723975305891111713358731627711257706119927284390007896467505994368229778341040995956951756718622739121183854629565587430675048124667794545465841643764328999792604189711782660969667962650043953259302370782593831397387623231826598332682753926270214618187361382272471545654932102994739558271985035548628523976327309741924185935391925666682625324588179014477172453499764280763388970886204128149808021700097131211087491543395403789864758292084880245501048218923288845796818448319965964332050485418950844922946346478223652560157728900431498793039963888770458494554206087557253455081207802146392343622705328067350476756597998357550007179351495391833036365539291631272695414059877778969690772143215353475462673608994736080273705369575847139709351427948355046022438557807352051379515196079122240909813047773862036948573170414865477821349091508938556435088611611968054133988347097471214507725599578588739973864586653656872021083128661329099591094876283741630384809616215609811197624120776165801306107258484372503136893776451245340955719300376609556896859565147667252792157797006510739416805141836749003631947780043846672750562198303823121373688488386270028319477283163528147099664078854037157168912221753720492199832219793983643960888697999898088339092507097500204970321933449030514040208028276971681845410601288746709973768161585683926695656795206975772849676536765309918611986176368072866265886454374228977407040474302489972175055576327803597595165078240129824001019183842568167254320935667546103102990066101142059434954944781810040804100134819464741413291606894124264489060330890805558769835860913159706747910892185385639193827909187453049474023146082808715724252903122566382699127220695203264400348573117942311481778782744569993897177884792522495396864723172103385677785418583213247430832509216019149273185389810760104074102791817281969641219199032086715205196144059844159744974603785832458206424785905107413998168177263135470652693268963381737031925133034200227547008359357142311344921155563424961794985094117884902824747163883731478644193018615131932696441896231112562118178741674712488924660973965378520763153649862472433096809519444680983258343004160638577186840013718013576992609249906742943650594302707424772061313522040240726663637260043656287117300951659533895116521464124462373657065475997252649580055664868038800819777449119010338920642740485495050438928610252903912766018481571713317214948417901433182005705665062117879568691326132479509911932373737513474648668287871991536416376379421532910496005546734134736970789557965829208032869615448713914502758099824845724279673099333224778745888399134138220690381422627385028351496277790907840596564507999996364637141860360745206353296580370071530352825338763563639335539004432315688438957756371857173952301547102643922516618901437520543211985218952135359549318304303767010011550068015726506089042794731106667900040916952839658992520895209250410840808894188488838417975291558795612835923908097395650439824312509955215963572679729911073488696310811889890507477411588077537481616214798890416241353798901621096376310712204533447867751296716727999334269477449488402318523561911592409568683907500920758426406636395178071491250069395508718601286204605188888516800386534976748211432041460628852575482375353625260836690815243396613089601278978952197782355574109633546370749022681200392612407325870553515054080873739296158112203038467610422889254410717577657407114831665337340574556356277447774787644074940217113760950388259527942093023343350982019506026788107440791008621049741029499253865777757396859128573454158767771498873177527039110289733877251405663533790473120495327071467543187445450739557514954689065304505297582298853928519758767829276201122931213284586333660078578397924595025624791934070348880136496484280235804006131920990688722392221554797114015652499045185926643559275751523896336356526597379249483054502083170271834048909282620833647806810188208655936789877503737890898440487611652876426456487580650205088340998378371189050358977993550753080762234838738938328588500232631685795138538096016258642935520933234691479251570710182323301889631706828936562334701508045325922233484575893091750527876091617765564409504417724924641972938378430345361585798900262822979519342812180120331938838100863834376536439583325539886883998450167661537027977990760135727994069751043021892770119336195125483094870054005695682152457368859377971666728244227121903432065594764938951413937720911474170524415558992155618274356065350226408820461161183503188400377671763594327140046695443098686833074485019532280086828654208703249999710338708579031390047292869391739923732298939842351984567466719748975682322806510141053285404296875596896460019563359950167422249308888997075853902025412676575608150846590196765119936331444205286039084011517071701775130791156112136359495830616576315639865250829997076742719488432505481717093814650495302497885353777606783331549230790923664805104041789214312331732498179064303190502555915500850337408450695367253121830215411035881317479006756954783554555059317369699359132065348061910919036711261264077292912186111946129798463397515028518844324199459572474073631743735740788779713527843989703825643006418541187332616123656121235642168178118712565276603019817385815423644015443507814152142123521717196425946414047462907160649643628929309901800708428765543593695853512224670536224482551588300027912541435051060194395831359350486467516286382519411694079225035848909817162067339991345084068397994875332238297694213338792678080101152792045740220882812178583828291364751153820944217260784674782768739152644211442427315144203203924645673355394903726555970442704385944732625937776592334494069818998689181184088693235903924375253883614799614744215423341072221440092527743559301220081265799495870224354600210537615223838018396702585453932567822654477079672150763701384136943430235647788986311463449777838297392623252148511586450728606519211015711772879168131702888260284914967075252634000158924890423832643334510675974996354229346664817618421435786137010268006661413162369094465652441333132519201945954324905328198843101489495563249843539076490670064597263795020486841422378886579914343327012490733764387416784291647238681304718316573776496990393021546790247473073633729749951940550883549117377498504802828856824679706767573723451697958955649091524648239801650231939458396176025368962686635436383253116741368629678537817067484078530686524898439291469923180198133029178654235066031835734133714055856449803578462494891190123340374847234388957594645975526077501165040633952093809532217754209945381880085587338081680250374717755297689517206327077465930745518756723282490556201205575538494869894006192293235234666411074513874790517397880409832852791705289895757143460446898751202149753460788444547647958146032850796414962170037032562017341496776257072154229083540984217937637826028438992787783752109015214632184730938891918077377198327165918180760613633263702266657122069043782639163578077896699299158374112718729219081390569513202686200836581152430643546140411465400629420169957856972717276933239277701865215132448657920638445716041142486510169766735104327834904442882894061067168870849998987008058853052495014480507947421871941473671386662451313509240879839139173510678837396247040128541995924904964144837922995677710505395343615207399095816963295506892531437076477375632541915380677414012872243771379197014499958072205584951842349401731754023125426973129769246650712536675747760444443244646744745441780775935686151454637708090703547945584113337847330283945294576401578372938310769277872848346725548010072992807433260259553828397323990569905645862985974280344643547383368734398947740481442917705477142780122939722593329166835429851003335875381574060164810512230012707833138748366362760519791554419123018456151708648809632555541929718837260861103907875878487945125615732836604477675235209967273271428410332348667489877320579924391895774205712577018329097147089878327235852398583958585357796418449116390013179857944042349778827645140634171626131167754017057528933607056863482904629321995099796570031609713843192459456593209377501444774627679710167992210296915335804322869451916363271218475622656758081130454398166522329008790520414864385602584003002024545226273216793036205890005723934795884678494624381999322035069827240446421375121416006931621608609307461328659821507500859799049812573929854749024220475531284871905460017533392609037658432977761228964181339231787087815422201364758480043444142817782397091347966507694278366187303014177144992426252011433965280084395918801612496733609215357935805729844920008327097106634922883342212338335626929437737122675163884738938931528247772248743550331425458257073976904033259953345173963941904833121698070122450091481320618349687428976147728008765008278901375889716698465313150846132392479709706697955566293195562513475226034128890287519634321228402746949412686131632979252602111455034478139099849517086776733111288336867372120152977258241425466596480064772145300766279426850956842208394507357958789163712838356871149189441031085734519481680422555944584908712765235585625970027690680224949693372049609529587604251496007192791322171571144870073071690328490054597633342856806369245388181342325840697597003060626255556260999276544522308775868941529247152268442475637669873777565206296178604063897719335328601205923467431126552000901926272713962453568954507302690005765724697667582987102406342836683603908354872354454520144810530787465457461149012094835843521910765928183033280578570175632812897139985725107797624282511729271910378415590014380670231187464532946070976055086337533582309466910139540342828330734774806537433026441292993633850172096200333090491739410758658421571718172167031044380924619942534617997660414447888471157835446331575718354685402940075661278581288451898918490111535372320848161930269539088661808388437337182819188515967517368508369208356552612205915435725744679813264372593963825226116528163442246700270172152750858117451237351411962327146507066672802988813612783753714604989972368559763224689008612088249696378762233062374854701936865084533593999466652746810999489766358484757114563717453204937906857336201900670061082578273045012697130544182766642936188100277235610223553910843826083436557091439875348132852002768724171611213425729435239342638572156838214071593350343904189625110298743456227215347862772164393492325298184208821520585794309185289335463239726507566973025940803015205222347452737099510541333107857808237583632075150535768186827676282989363204850562568340514649326783283355483986409239379771559003504281103688892719169645711552146557119409810023810516490522968064598591621657415486663283162814923391301683984784268826002281312363701561437103111064302263907669141187495411380481063600292499078720702396543076690065524088531978177010205674766632416774703596987075131785040339196709735726568121867479113893261515731377090273310275257631745197912364288351996776056076751490909725390420248079510250871948517064494701941670863742645965266080466192705944693131223928460119244501500466739805284328835813780050146729391432194757217007607861622893203693844872987337202386326183789633956857631122541244840427889261504074173614083696466414823651271017919788873018705708044602875077843522312774162794064575012779774575896191129927967157843976880068520238821649045694186166083001473523055349203716645831239524415157290854654698451610741982706833484219401448410351455095891083390148882297727336485208072149737862131727198301642289276659110101466275325231623299790289439341627459400626021371462635353972771195460611913349169527012230953909447656478291901017656495977684475066351261270746933639661812718224939095360970268426810476980473999672834547068226955402821385420868025810793462801540685510555601440469749358047639447371461995049650016396310267522605894085681090993670648339145791763321520087253783362656945631576965281633112849855399742361532881336588942538926919803213750002437346036684013952842751579078844836931506065790484334492177224050986103345963079767724030157892479990868022574941775291678422247313223049669085046037661325656416896369487832045884613835007517685658985243560132787673634635640522562159689497419003038352575798198385018840941207658851341542102587168544741889040363505650975349208953664277596969116485546161430093170801593110832617782760409684326701677636840241090825530734636131352373002696241283976542864836186365180298994032685995880426147243914141194358569045665637947475368891961700358514694728877284622876304342914416230781226948414300862424031058804322996117959496850252262893116666395828351244401732609149762975105055671489489972601429813599321926744704471229533852887795090240792482412001995606417106545449909989175908252875457878094382797632087823529555145374989616114773304884483182256186215742188840353290257865822539096707895760820866303483201521025426563391121118826145333190861523325049241417480273625799152601261865910560744948522068120644260942965810625732114257788558240671943353199097290449254247030181881518578435530538148867618177810495703400044166104116501526996741123811268591481216774222870048920835321418117551014951228720240986709759424750339928574619400937999925431473803370245491332061135405972326329070806757988604250350986683385428658449622780316483187713395951080788724845318685584230441359142941022819313599261289938090391511316568990261423452974037415731174924851541664308710450583221883512672821719798149697470118407860248884487534102532558932226258688770050257791017446232993294698060339874769346936045429431528652963187915517619620411209851208739732995322838481221700629988939616797000106664845635103052410275775088798005795888710773443394364043097222400783451950191429250134006837640007920797173612389067747043262755521165538260239090736098653174566585048878356882349363068231174686556054637455412280958997235909192398963219467840540086547564181485149225006432477733187937197797467440061562681043086129063651112043555955459566371759928814502776300799158109107431887388045519375323813478157836124241782866557185156583305614329396292584911360133480059093279826194362590082183449831093954578997702085893670691810247876690788171967816481367317216932610049356117909845580791806850659364133183062113782142593112321019301204906471904201121019556936620948248394697673087257848164596554731185900123770104107257606934479685163025623372721367979237201716421438685748165946934390180218188859517611095349265602579256817270370223037770183092041038278812732245720058696280977430566676058430638654612536925493212482981402475267955582034977823372583290442155719991811671552500896853908868455112350612727879310996072143289338449423136709001220411165170234881332689787265729247378051485022373489113992842553799196415706645707545579951830364178534366758300362746312108761335670445300237467887033082030902132191582454351468102060552361414108343213473293955710475443315439285821574389325230602251799744799381053280303049398048304963207491937230711811732716509567255554053799802550611739576809724602874959157436482812833456755690925712510308426889940584887080508911895978907626580508002900982013372876314749658544858068505360231093755192751042082640949291699997269610748123342149457704435034548690130658007690941867071009626453784632988045162698943320937933513791019610556399241733186773554870262882813512993075939332233371381638355823793158903635093983075953990434924650139939583814297998025699710476497011109668544389827652304955776143724424897760348149117473313037907793763265570876918034368548276194858873397348533545456550690394615543677977324135001163014127391244697827548961428663902007651838644841903572335780380631977743488204210542733119241649954392909855528490049177194851444259798380480404785707243173250280271666834061882190615548451936923740633436349270249778801834838103300307120778965304122165832259043168525160429984945084146090052387454573452607116535107370115343770195950168484454602387764804190873086422505196739933356158173064269274970819386064892716183400401464959706915298049609509359488658260804035585091581110164322057877300215262509260590001018611086064970428178615057893147079541259697638710362663947426040661943784548525892264507183519497656506887649803515792987127523078876126298359864754780627653621899078421290367880359771085867320693997005145896387203775037873925267897423475275066739907392771996308053518068199331371945936051937931656355582948198311570127055672685635335590952038431648444693880223139465011359590257281972986248979934963076079119650012673471037116665502040143485959621483506417689045541555163287740944244226074341141752121093483899429129554293326890225016904122710856053896172268775363368535610743088705115985273978747502811365603321127491024636890219693280158602669839161416041291644856127699160117970589999428585172022444933631216198568851730717310034946102595037970218604498493570946860377767686025746691500754149194973175448148791620881805424488471796749132432061387622221613666931928505082945938744990535197820646729503680672479112438306601863996626206850691893669981736929985263327679437313235790773001528381483146148380621429664668857257063281718621614435362660329505601253566872326674318710561862526511828567805929648821245558497162074108318086547683029963549353325905185608164373320885908000279438732697465389735328306943034821372291900915579352004722058158121601515112217031258154827078291823830373337101681958998527996567024563585711933424441083200175129081984075915871136739835335296311719571275206029847141035747192952012255798290366279182957192426307423966416333896555470180731863820957488657076764915558345245979495706737811601683371361126045272408473624268461648471458692101932895623827928672211941326831459851241048188829668237733907104894259382142661568436716363739446012391164185273002223929998577316910572951615910472463482918066553429051469023143702918267620075716539632682678171327936484641994703101794574873165915612465134995673435511384706562745826398023386200990546810782466483463896803777751926891523591119721406390219885958811630451607627135667140463136232679610248435348870397678848768251415063737058317897097269118964504546272932760404899194190945603902584832527977506787722851287914299469050612853315789088827280121263685109382533999987577041795501983640802540597284403865955304818617996650040384863219905540628213892668048865612892630015198699252069616271852891184916880443863832831089465409160634166583132069645228994393710701507925219238459600410987014895920874889720769806148785755673239436236508922545399139051545413637924141309197988866477297061177975303537448099250165111808619176548675488269731071578449480547542919727334251501670827365706913327956406390110647728967699158348335948068336192347814367690669600596890778372390650188998925644638964393412486676139024478982896777121644584684196878426537039267670457164143399140754488836606756300729925956763117247885988278552511573702426395805604210147274005523541122353844855079643728212088932366044173537085660261508693972131249107345989745237760902839014443262608419782893429240447555770758082553477448621422417534602839977325681632060200237086634354745376596067391166674894616645329389986501644455427583665972287848797329766172431942706522380563687327529178025508925461289049384461939501427392014161215232753656627982813195105801534153548251262441007620538228794802202842155825898710819258191186415658480165005661374008473732733911627407249639426838810518244170099377869717301423020696162751838869500010431131054332415589931172479960462365099831397893743656465673627103242165773945925180180286798644406236255513295296259505805822839082097172029389751695738126327601553561701219688141916798809207650272839769102867658620973084312344061631618613895679921168671549690658343780339958682587668915684862959615698181775458633819172608707275159347050494644915322994560384473091049859895466910798548375408301535034349685249617687736637912936957534153730585282228421592359876266327000784733181043219252128762412942427249875132433611729526954494629136676584172250527165454950326276991754957542163369586927976586301170861343665493470346835901588960776727057200129260438622402139360645398214907797069653461488935582015350343910387464677814053565378938396078894631395331312695855279000932196973606174776718774615254873696469603690136756924608397319415638292123253590260266255293035330320858520101573204714064317144055778853087175299558816595398237997280427035598535698838635764902489711524134279672835555981502671814382956344982233021931068115540043255130620920609627919217979193118604342280086579978500779866339079208182944237471079698249135114848205749053933161849392625829848730898116411296457837238544159546928280799764775629886023019717215846109316822688452966631652430633931435872779163281577577571689087559130571153519029390023938190875842711503224817551543593113075357755230229991339272193213650889940780324583604378946543724522119359454181614292060897928329985398520438526612647630600951287513675489262902790598826975716296948692827664540426989496492434719454217108108428446607471891204067619594575516262254099570175111178138030984016516351272108446039490958810079080451773125996550704086718135629777685194348411094155969252060478007815502723548854350320528242320358861499047117292508008392710726807317667624720168566789211426813825919094932048933996484642647320090680433151029232653874258764566229498045615069664391990921288954168514057691528017834134492136908015510971922850071798894166701621772631409975229814417660323220590280614158587693274495016220571689168796888849899703555878912766350754571042544529578323232216444920585444085564670184464962558899323112938606792810609337877755110377426353457336947768174011822335019973262392423084258911499166087229332135845105436433450356450186508983104214226684950724753448521739574424709276996976190296320182766714481140409167021331451495697114551638690803132503830914297822125621137452043361409918703357472237554785609749756590045779750147517337059096042442703881995099916833065926573910086921000595563835800895478038998878452449199963807782695727777216309587656348900075579576907200739053294034413639313564973387387960226148554196895878700328301865391674564381550769916387864956032019667627134384979732138465260794789915134046103249500865037374215905628142989360577746433037829610784069188923043549117398852648738848846424413653625710668533814374294792118717792177223238455600618615952084657595615678707194565917891862325440782263205314277147586730932199525832811217113172080970971459832511966140318638149979230226477101092788810613926288820036372863572953400526978329008639989826511348890381565134527765008206525294156067820144352282004511728993075686329069123772427198768226360781028752086163217591343354072027737396572636564444612753433749044195041243090928004593652943550442658492025298070355250415877947429796640146883435844307151163146370058433688030828397421577808531677557657327322786933952870246453602136042144566079058113481240442527017777389994419353938840203454317198964587197565453144326345543116716143839976927468710566548037963304654797165801227064105445684910315628029959480390312627604787099287021517324126918402567659002239584048678425897122725925503561374977334811020059777364615527681727664628663674023297573972858669972418516916557252950275154722266871447428755291589048135871312428148313813955735084158460081126593155497645504093871708571272981092792748795230949251613529511169923146704770951466201977058400090150728975770649444630487345982333694096431590589649269268095282385955606034865165702830265687911149967672327426804828437234923664935797015791601326430580202777388875442709292695550620708060188748309715036004081157335202411219383449647954506856288896170658984160938537517853418787587384373831027091012135239589343695712924968146677211664905716477530042653341032975696874888186690126056225326719516169823270855833644653037353189803274640045313636603897830740547469307643766671075190153978545064009965107720535921740119426215731246911648353887979284723437646823750503310042894958641951452670304627969636761279278856701438686378373406052004368479469105488715519466116456001255932498203323825609705122544806087953811172044981554930990773088173287983844959503149723746721771696266291895995226141004061167450725601895158144915868849089141611142937076023378805051279369745465052319411299336013265439681525219435873290575560192047148660182453679058421235350490611892678717057428670385780485078787118870926264136987914802857829307322762901765732514882641474459065292433552972074438799536263293414021442383745712449655470525399746725590729778982100984516269552978858667302261608704865398765073634488934871247835124408371675625838206601156089277129571393633063018393769575366337706386372993196674000931789333923307938106695384887713015583049709630840909024907748112885712871245403243252855092401967783938709199185206656299971784516030431302227094061191177968204080971450208525745126311698237533003302865401232904316992971660924406091756410261313983406285710618393285603840477873090890109644152348864782122314459871619350364141160250117100806695678150492593448812234294274528827788101926028183784013877622819747585579799258397073157134761373089942464779993827007335114813851113989137884005404202188173437756609510590018843737208389586233451281573920412748113661882705319540729952276031663052418677501972832291199249759261316892940407856682197179164852766202687833370017749319376575733528979760567327084533242032754010890736303454864847654914355048969491512791407185615911813618739792331404459031987106173204518183841110231649785101902615027717255219565920205256133931337443536872147726032800257554758072358046538760001140888872754907307034229661134257704247723376632229525162134869024462960818816148792051074126384723388335364953283072201670772656267532671481441929689607985014030804936057731628526412327971528261857074395458469688199783853188269602318614615077983003353055778761801299645146092700180367713564664466468098692896535803596695938622778632142102884638348668866142369684347482399375695860858412378543269115907780415864459517742636867615246826980167833037248560902446946760085929595583536954505918014289756546798794765901467944476487303486475521443635839998712882203379419458777748345433973092464083278022091824422135341601303327491038451921555447846050116348946909765990224950117540399532476229332889747182982602080299611022160935824966976730662402679260626654981164500442486642709929251153568014848434920260101163030329604459687455167171788037878862876385817564458092730854279637039629326989065312470894528650654509905090964287689370240587991181969322760111038033157478090060475249395659329297675038077691504866065385796715009208589035099820158574608392836130879843763183507903209902534815823263192876317601445396105461271048396553101583652701240155330930697789414251495077800548120185710719976226979769261199451987585197643045664789961781405185868023816397001771453920289990596982859329528556406272973457095563563790772839100412267315936630517357275174077725972058409348402882942281165554108723741806281768181968465750319212203377158153840663885378432116901217702906166213489607286727927793619957611287277688139928426957825963751861386168835960744442505760111477678692674227357466832633010679713084924794119936955790905327408904233187953439646879933413943620157809634346211066557287861069187032897519943063608765980035707738815281077343627032564203506085340518161676235988039065716069092996243544241892844537035921957664786057216534061961787935965231624756344362870123372096030651807852118077215448498391763602664770333892578493556747210593927301539905359360901618881988818105136350137602982176611447316984556465185130010236383709200617818044351797960699252434148120152663253044486192273906905852934444962806850561304219308011024531931126652849246637520985017600830802120310244454022505016091457019552693482765398487266058388041893064503121245006881778491785410755295031060768351998841436007270669070304576032078422901756984820305654394715763153795252326030606448937107380287335484580812192388886170020774125168266245112768435508006424044947903937839597186420188629438434694102616496367926074187523253904492813060219279523346937285380071404686400011124955280792144072326810547913210111882260147709600563555194555495207015673279741021687637919889993183180580579582090430362636065208500789786943622612752435816003029221834303613505656930693563338123393018080171713346671322307439404263306008194121009400137381482009838272775637613664707485567595772572021582777062809175841565223169797275848460460573655124919689302970664305537598801107549910257558363418207492364616462380155964513105812971546087597488807719552837510260771031274835404594594534417998315711893262483138102703016701462200338798123891078097047676722429200708241543649864482925771824248764213518771175527188944007877408290650681159168207669584956629373292135506569027346123033398559554910183829293976836838134184792555513261127324539635110194274079388209620586852940741231919514883819307943490452001329112485036868619963258128481780761919363601305338144687347497009445005149274149279363198714366034730344511424996282735272627850458258091781741492540409638947584089848003097937643389928702327647950184183372674944384889700090681741824590743775186853570390000844740808955673634562474034975179520229783091830086023432984255892538260475054035333754637975521531370249636948002905771158873210302581773408537375838217322180430951933066718515456453380619898556533585644484612706112465159188713380444901129158386967678558823026488633709660224076498155679130604529289927694039532933259318111243521345061932888789914938942507201994490688423565827508237284114174548770904544246090130402925879100544556158455893336839852991248979195784529483827604199779238799574017427169475000363386585901391218817181805937570700519738466575634300731891992400180995626465882216447027905355048027609869454919527607571676436487531705202817507911403222876261353320411945184294009060118760774940021992530131730235021311754360063076262514548201503013499736940287253346328448864478041894986853795946558932851901570546325936431947842484291724430735922283178401506253719511577131704853582808423702848495405000090783206367564639082406288876366058744237968843030169824908265097317165274512488556894720276801561780858715084952847142011943612529923227547851671939210643947165554901482373730258584580685696892689803757038967611523817644460911833884929245127758922634418949645330019062850314086343585055549086982458346092503670756932665132192432946130931474880172330503603628960676589854793782872342711216063888814387737434057089967126034912188900746918813813582224843792935644667846439383133836652344471697404686784594478253687744919983476418899750982236713671110540776218325185150238952536424635819870163036707652921210949405071187055439409461426322748301409515114181248242099830090959969287316303133133906683861977229676519997773076765533786547305158130064090322872282514948527089368726817325278876543529110478858121757045499245683959882172479076456158021514996501029914450660378335652265260015325923460922986430079000826422934003405732211591036412079033185968018641284844229248972368112866672022974344691519233373958491547135521758182596482608984665827848774526139325799704703318323431171031465852544896761474381773473423876628462474112039238014522739480354215238080522845546844295430486564384489178216808229169738736375848462087170503174109231831767483384973595206621318876473877747168236525555448397459465647446575326054403208428640248255835101538400404587387947887328883883960727008128071431749866664902389835574652114874837409834640006964569411524122677733056088780498182187453175974163297968376410727124810717693334898931818913612770209653081539854381304087658604307792287897793506250238133569974711200153062020368597048845353350905452285204045490077929150958996630778838559543019958220184928533954455660372605277735676679843049348713336996661949951149765145042313881846462276685891344992844893136241478320887562779189053671764464724087900671174611049994807273675706967655547607947856746259372096417702029430339690689297413796390813583049854702086092914952282430539389725594310394922210048600349313612048135217658220261718762606148156013941334669041110748254515191255778253114545289297510861996773443315468212905048495289241513663742077248243381353130672644103311257895885524640135828597599922267577972061376478461398242543499473941057749484917390789704636816619766673003695412679343421587452539357726603519333865840697866782487953678292627933713672338555420489689692825266404594879069148120022077528059221351376812928891754183142158856685032743061697496026923842689184169072513111485727489212944934407886123217486345401737705511271479020651301351065397407691390656834860068415204128560798064875091660345287007994826670370253684378213337228707212413316288655118410500355194008596769818126507299816816461628158953293022721490038550694726422625655586840760562073726106673563660292257067932702721634376945196245550615018900198602776097034974344776917489886688543673350270957695351732665057145572192546047002104215810706542433202866366536910296603993215208030064159646005369025850165777430751915108810981984070848971745701069373520839798467273985924211303153385611894797472139021745666381142619599235982563465521823195504954175566332040494617024101947847973023672193347515451997788407356670236206198131657548212675630143114363519558223000069879938356674747146779782237541019347140996879917201357845436922708631843634213251447357418457699218536609040944993404749084913742571944094446244868091084235617519717906927527926450916290434677360378962152584480629261507047883321954683992041756317785527734747376949165174297605146219049256279445599377939301709877026327274270946621279484480079544265445680536558796224634265403961044218187415665212010724947256968866777190690528251168611321837708199606710140304618067273863692845650058260470215370053123807366480284958086345472978464051871490897087155886577964658778503845544466408249465598693934461122788140831346362253495870119061133045680848085911172393798594668029085763185308366395002834239884869357065559692808585239375320497904739260087357089990261617747475581997696344812966817893406819555174983748696485844595206660347068224883073125792149186790366647568419509807764388992544332983295948256342760814350332880023304171746276586653191353475864122659828842966477668832116534333016604635280575120244771631474974925815225293883033274799435182505517245165850958194524550975836054312926442574902120514015142724875813374601529225893522840773935491624135023474736854505333558530171219847737065651391113208817817720103354960950675853789002618790886985928071781058933683235360185985526556935462923428946789250392493034410972822734011450311546542777343256118568056182058943025818610210693305016240507399006996536818921386283440864442677234161791900312893405449723518551528325708297988170736530354237741332858327165937659799070436099109529040875261300844480200235607489927313323336355525321985304050509171538166458662464057089993929901859191769168259452298791613175127316559282817808133841745144144108387986503004355673940339537085721949785748777104719735990861931150650591299912181777247462752694987108535887236375501552939670038228558797341113041501880991032331796487071918711412267757582123141638974546854804577543436155461916902747619004640494985536815681938448520898503585152479550398464202788828567313656714501525665704502342042798779103829903035233054330830807728722707474394568131777802788893147621864119692203654927686009985503882045795510874749457100226011614462908257696595025689883768482042132075777691456704820715760081068836640926009156451760291481703955116884439367629992892977051130434826065795588367443609129802294544850149722523354692578279580250767006541597375294334610570619339219950888410136194993893230881499055111742446692839442028354238706215495001304450198261642956803364058739486172936626744597983890900046133192871655760748225074076018484079536140430892778069968571916207433049102809856076951429209006483886962565920154126355349115297419539605530176859115930384732992647050514689107156213675329371387217851324070557164470784784369607133505295450781869155295917085541645637585953381449194548727448418446958256251001426071750820287802719265991435420379637540571521539783395520841771685159500772288278944312525295768767347954542381402633950662683775119953200434224788737663023554661534907285510364012826954539450990620280539497091554259550703960581245085421382984960243283721952834323544120445114820393228684772205884597095084312787175332114763625225484686638079549810301145857499174100816783114973765607886365972772696568363728183488779599663052544141998790282008157227839649453848520344618215641139680229292552791325776111733188792851991675073713472079380701327564033811872646013929770795599869973878984757063877763306712404687458769839824188151165552982030369833651297179198835038542820422568812316352849172136822409201078793451668293846098403753891387876052092604930190134998348716288792669792310924007698973626770684858363554684210851140087665560118835883672702895912717050621723593323712341481664278928066887597758727837679871517207349234187686295166120903148794695658272618363835444633802369275462416611793666387198525587135155461370368043685828478929526475328039079793319333156904143111304431111738921903437676838994514439192624104272493716576448482508877839215578420238639449618024038667008762103097064636679032586519668320319747225769971984238720218971056091765763784469668047628122596606668417579539765384482647921990043991355733107225942109176398608395592650688332959513377912001099512466369736106842720769110231566612676592898692915941799084025858565273978172364177790200740624643378208806801599447850062484534652656444797171507774679391681183247605020759871915244652439225037102790170561870159188451072217681581445330395869708779843014967288037911956482025795582110358690795697686368145610427444665846920971316232177662280970050242802975471187256432550999990455960792097999870952244363479757371013258499405824029928572802642165613970757895344254431833861860344330316619249166244250794777639959017192302002393199824747158884887502291621360067290475645656972885557935781286854692250079235892381762186824162173754203057204507596082905960031539043635300517015078109928222108420040771879730850256270572789754338324159617873154125130902976990414607318079861413494453058249072659226716291453711753317942742778617313806375069349824477222230166773114826381427136172167154430948932338149372678115542599714966055826022253956041068194496857611937908011375179315279946016096702204242024288187363433422567240926204606061046153265619757159036328965239882390408298639578809069563305892354219656558923314543259250014865061443426147276267581948469293014780849520953617674389652380684060379698132492532647415003860318523838535171197547818305033956553761956775547470942433985532596698214317854432090112844491585668401100985783984730186064171587828768925204161023783492513097529982312517712550670391064016688237817107795828070834723002795716096138346856168872291879433340281277203241234535112251065182257282582028832957647806599616943093247942509814802810692694718487664282019120610111217701938877349135029923389895115409153273693351692955033453201360190759293547018313366744256199745932702918077227235699819966233646359973885746941572369709828586367368851463907486932455926609019296213190827346361057008906208144225226080415494570222730814700447412963143860986463715390783381226030123110355135963818003631718814239500325835719394985736572022956904717698855871299197216282161067271371095409222659834800734427935020707008746370649011172372222719896974717144663154103157821112773291323805847303877899793779121175737838394004887684064010767175088411937291504250417027673545965047793967480751899207232061241383674477918430504953345299251874392026141268998767035947295990559849327026782902638915385362029006762170816393785877661665744359956977562062824286218360883765853530980401504244953540559468015473613925367691928107360287596407376355562714046422601609240701642525551081102839042326632432737703302697462787697077174454985282356726356611191553326433768221079247677334255069793117674982008348913199242816684786507796653101278718229334619074541319049485433190116741221079252967659963879644210367705895044492378692067109118293591956610127634457105348382280892230204726338360620910581664513691156407355988366633588013716046363993527121250441986688975328507223181474528476255662040314948564885742744595982486855874084072081037360196102356670408282824673113177822804172404661795344268095654148156600477655724471200735413411120136896451818002415950717611323349552518595798718090008045531397036487375652297041546746686800444014943950833404900710176414209982947318412845611537744219163803573145030833425077800722400320146082914162449203062309215384523358324545755983555683558102776567331546898246192199902002828161455254454684444662520127864980178860585745479468687420084241521645350098796665603630608952439703504049226927011797933096867502108674188226479998330231581159322611136533106613492847280761293232896093104469908129066603297444095642173109350178558063026336163433438836260690261382838792871003851750629704758926788136215954087990565628686141567457605951409738349390243658424275598703663879369588926915373940557942336676771898973153947532023217641064462587802209270890186703459794274687934604178320899137563610920434013351450345983169689040016944948534514620939357162151953158540097537353347101087158296045011474461175203234292037425842513311636826212688999579159970994827640551508911461339438637707608338850395197527412385746398940464381908989282063654638122479469054114311034028140318516635642005166453978613088688111821003292944449091709549950840123766835662371598926567998571756208154413383919776309994777851140843250236630374914821896287758810473342976353190965834863503453928167802450461473769389727893622044080489751679015050589378646554542790607655871545108048235530405256781357797375462817002917635162862525667835429161993345576115294224591468219823027966112110260764586058162593709878017898082349412508419756820066544229039761362518700263726179947913267932782110718685800631490615188360310801643142494719742726147043039253556249978352236909391800122969039603996662284621579050158584875059213324529916137443804104525768063383167965124095211471488761412971158713914976627021771154602352402957309351692749145747455414797280413613968495648978843083023414506592197771709077015726462564405066285986686040644464500590948308548768521992499898024758600760898397288652599518218366089568030538708953292071001603513862488661047176909724296168803593695507195750482359263466448498123741057622718113702578754064598475974862817942919471678231960689904665311961239508059925326896892705561475101146973136365816421577667180135687757101692662678029335669333309916040952009218747057232415276264091998695584935325186152059167533786014136456955699378039846659011388394563031081781168152280301005385986244297464418869719377339544225294676976409692942138903104415391632216160185130179088815945102317068266709852289948759142652798604490324171028092345871703539726136601054863021711061665059079005035822368102997201306671785772197506659355966038812807832481621523176259455354453509802861659632042340684589582419745924264917046579558636967360710013709759746022245867024605046303752804588832118801788542932335498697851570347617135454772466736847344816699022300500446773049740659314843480819409229372205814427053721318979602506120103690327342998713388395747657072020558744526446246901824873093629495096192150784299656228495168353901135433895305513933769418788153148500323594912672924645304530710674909951278237842000809683286979620362020086680796324067406168419072215010397282241575492967392592572720639843500512058288285377742572396049105203819788063031834030074414244004492383004282456471017189187025248465641167702151229817910659073148598278549839510177663129148710645562502031890641886104234370127361051672112205376242593925194511907703464448693278628562513223435419872154993185029192481794649009371675057053230724040694570509395461134974550084087199422860524108280765923919344396830904291288080142692319024812724324335487263107158955579648796025566034283130520847361948777899151367901504373143896853961434351262641646628500369666663569711802567870263854817008121873538769958994111896034301472516722653859487919399126783000191034696989440522301992513560204143863675110595340160120825248962071176680848571045483445975297444198666258194812566112305881748193585861373274296101471138966193904199876074637840732940417697962179051581044102520645866122633161163178322021244262261733765669333975737339030944006787443571639518841909187940816211788540393641119729026427299817564408292360614210858758307149419631069425409810747319068124807413529555405121937084577860152354097125420621079941976321484649037125251142237224655244042125327526974089601652120010160278177042299479595974793863078844885598344804320427154190196118792541461158178722112790147251712652652423082592406956695372249353530198366089527599674084224465426220551176729246260294172060299110638376754993089608314679678550533920677005564400143856902435076081150631901007773268954966847574229286194935779098690323195590268659172348255107275704742125521625618516543782310455569002603204878251069907730410323172066286353683133271829328313201750097956985744240519465868736213658262583602353371237085304817817133803450388345368642314317458432562464446997444828434555568822798634722225808798034546364386745040393900264885955086139567323268758660669826488489707502196509139399769281754912704591610578619870296049557758389866467963487567697353502433945022485210074925091047839509248830968083826562725040261178338074074822696082808707818706841508271614469586601359227489999565063756100038642719513651130021316452298187823770597442045823723686196178669072850953969216434730646982962340824561700113217913718665320490100861968658641112816028779772114197913454864009939369350073230813847629195845673649001318447934178755464786273354141660688864249991808307371263030680135789573889474333262394311863474863267405260939922272386986273731393505349280707817254858105815230220201387921423138804492079734380970587088749587364437346161188755054579337369284442794013929415871215661084519147975692781000126489960821680884132955330443205501634823871941276683110836883883516794436967988882928121919233462677342466085875484157130721737525967478169297133690547294129184674682402696872401248615540727750617616642740590596171323524256668025247387806749082005106695205915623587943287744733477130535163719109773731576734960995023478473446747537041049050225431377376636022883868485826655600826855646788068037961787445744422820369905475697764770187906500221034001064704683903970483471157313785857593610347274168543765134677724983358433842362190030938792360458681056899491491986235689176082756872299858511644251351639964746423438500528950124391393141849988022595557315212589744869322596059703082879225329839968046101662604133646771582331535439627909884964905716547084178060503323635204869271519068613144656283455680989568050673061950411778097132197800003047541180997604722098386738307195922414287134415984949317469861105955356465070509415552159220467329757771300782083668096886568232884732720292540503851056015787667043317152626655105039678770046862465604341204331990823160874283972792800797486854226706689939249874427761631449244205976937353244649607434896141115719835376358010131502136160549894030354861580868445857133528528165173278726931719201676565915128919477221934907343919099574295876630734186974710866109678733928006855420063523213144187942152970958597928629345209948172572249084573267921499919829064628537826149668062879091678375641292411835748622257364499453436944207977561425389122460423564996864445117720219001903016623871230668785814650701271849129070758586884658578959896741157492356298363806945367394227325829737151475761415104666357861356591993647478368213808780980134268987393455429156899447421114177723802775533778427967620302517284391329987589659438443535396820171101799977690851353270560188697407273564886689073961090438157453953895610869752730495520987096571179327210210976104198384734562697456799432129118732596069963785237026563314660842366666687979793679519768731275347431892054886782839049325310223680458120228909961226970205530982700212478086030147107697997343076598138253268466891312065370269861188655561980183942616354848571363154828348470216716343471236101548352918493541471345606716582494718679895152105637407458381963075201293054090120856964959415198371633955990607916537909215633933401249316230397171177778702877943801901786083049090406616037834511106153040504433244525354519438885534268729841919144605221860358409956069866959750759465779219038588474153646270117544752020512373699662804963332009904065983621757029578793750248843544376662928768644153234776433403896348878332961579330580448564582450767337954459329580350074052152404152177373805013858213623627451930566634205229027911686358861181597656081582336141570681643805992107488671443080768244610734159177683964326984128638201251587224556956858622728747073560433219491771198571925789937448965657837573396888990524964287547679275843443834251546829761807364663244209169370711083029213247980347338745875396978265214230516660007228784150643442284424041234821627233829787928587829930500678371021432749880946210680686179064156898693383526819565118600405310388532457499168931261339374296538848078537059154010727620713948074347476360626602623853889497705396070396660848387039635894534459901723175910533559667727362317668605491571171111761937463844376011411351881121697652529943881025139475572897030798236855821815137068469512850239684018407963450123407348135577292341323764754042596325166777142447873083760997813040137536747997682896037629635248888037655727077017797903633574373417562699515931820764786901911310063514962170393755189148253217011267236011201525809953459509283420327739735994479887401174988443647917459472711330255437143866606904413220452642453348578569694537067714188425067553120394493785168509546150511859261500351544442636722805104087365181965338142084670846835478465014846598954798370315635812855677236868677650633387921397136417648030865801967203882470514021768038949913864972934785499075965634890930397953556713520298810410895158618463430975264354626208053960483587948483109061357143496998538319710355752749400238361610971486109234851092356809248166869639462292358128545956121023280288286533382136924365871621541356632492687251291224974710376193359153537792858413593206681504865635289504250732351491541138707488901584016036301884386087614960292565606082686588438797810056141449031581389212446061992979669291190715312126976783759103721708163394902814702091731105994211394500855782940074787290352263113853470660333412780726750296465930973292503783552101315201586450027280989719124622845266169813952894920722686654982016154731368383175204897995819587334377179713892054355745251375615588646803851387221768326628189503117439197523558744901483596660586061318852858436472368554820325595098447460004140535189844621266676380920344823138505133651197478979088121538630979540163352147169031724884199431913838475488418602217710738337533766470884136605434866648109953929560297741963417740195652293733031241677373421831464098640331560987684196486728482032867186565527388727678900859406990823434741327588862389039429975855497112884617962101467343402245470406737637924696458707387104779254209133272649742279016306449934483901128491306684462092325742198471949926600790026150453326145763370844310122572835767154288835497239458429158363642854539696137848904362847033437506118250262906012336202086566501617058742982807103306937991696578946268229975973003652832000815224402890039143667795615324380643107564600065157258766922999177557972812402550366902798896898592526690507144090556806332817104802763179700952379266068229302575350574902798163724990481978589371032127731180518007493948313911670460446566232293950104007734339447175866173603149729702622845842542919677472994423974315386324284573199713091658302380123786508214793875782130396288472092442551720303593912962055963836878676590025103758438199602236346090355731586513762557120201718323288133752546441465890414641784626622685744244040432126391666693355625009643362506384655288234864224694536725458569147301655018152490911666151605442052959051946268849923794376867028207565147726213800196993618794136462708439791189629637750046585970206210464334010497493769609263847641969333524559879002418690212305487826080472909277389711233565635214471052556801402014870017281707317711907772267219963111788984918625022558621285083187816564292193805421816009097464266050400437781820188057222699026269215728632836128603068392823336220916744457221762378084938536214231745237338188711374252827122822594490196670184966608783952302185613964431266670214212198555602445758696727673325864162350560351440235546940736271013281835173881066854377336082997422548234768227606513881172313604904994695484875264057631391241127984940952096099154833733005426299468482172336735713321514530219502398267797080684050154075914941990341758295263467614444797979925169857574756710815711037762062011386565071463676842439772685504336235277787706558880556774510643419258384284829689534452772042298446409665588608762830808863259507399770393441465109545491361969668228855032693987045787805672594342461508595893695242635743582192406459522922763175199549105488773008762047066883160340980433876839563812837083775353071275576444427942765923407146838827496483824677584121808075096550001764660913095674004918139589549201686456226967478433145486892403247363285707700473061977524385774152704516551981038829597760319829244532765398585227592867912447538421028027459216518987172317406946764998096423534877602775280843225350346208827766845042114169256869809702833405309179507450996189795968111310102571830214012917444545077243529553770029720136479481936232979321083064846338478929529628785672874064539575294860335333711159191700204674768106170150703140690682376435849898361081115078135629556636609787807438979329772454038074675033611256232936933083059152083986458699836700060829447318211512285150796318871554343892997912110613236374132767404620925914381675901474121422629449791882248110142525081998035483759769139424692652022904553147794199937053831104754965029069308279648481514899814708685417875893669110227985832256801482592820262211189955256149390395807177647123361286976577626039737078697454691189108878575666681067362186306832300324581080889687424733068449003332243165955455531722387535860691942958969669698813113668256942701981972595531784608639584117865736506744295821688688038342229121871315135240511778191582252362533750263167159371448843773748034812543390868907601840123025615429672377550091253477041078565575717548253255324504953582273200792662696177089554512074458138153342442627059124995802688374011060791377579549270824415459566844126007533464704781518523624579552773564331583381728269320594318067515224840377378454721284854391288249285148863863544395183572401049123062758577711578810955492024219385147697586902734690160024633347158527102124489968367411728818671823682176242214226817424528332810064811685490620498415970323279579870443400596090770209650126834255638312118291371425966351008744696932224167939926067686663374822752636065759982898047205787956622894446414659255942854058776969938083289263733210257304578202252394861972608329096648732166912079692550602408070493488003649442696316622921534724205661711067833030604621498712459864200878665008872023745985229794648093767180594948050522089006213701882092509898482583683867062955386125184266989714916079888392745362232097891500216919289002712999522273244979489755755787111537255171611799212435354743299707221092447230122358868138130074105677014360908188582276077304785637568923993854652722492780435049556157526133479547796235942635076486469090095067633254151743464934757767170364967080938398250776591114253101239283128000385407847036095380189744946662151558084962999378905231106018302265501837782049217265600036519456641404956759778495254908164454734877560065027629161457658651556997476608490140519018133498454164453142464327566898333869927539642260489746941054882062011749053346866008082446987898140993247631191916318209400056863226514524468890753273257901519421797751862666487482620343982845807457445265257371899723222856508174588696321668349641895926394322390472145101665116263193259042801314841922718988928620417577239374930333286119661560628572444872557297263056041496515902181128492142074974694250418666304553698642585747631013067004529574328391331978386638318513075827712103427942665032399744899364793206207366685689942247665649289917988608418129999721961050027661728968734553353552363607913759526534230560107857559344604648773130737792511801045267767287331356031311269134072039331266334474577015445327721169780427814319518602782556905013652501235613498205532949136789517339920782564172623089389766815346508091317261048462079315501819798715238610674076576798544368712617791142221584030726433671014025247697591338914758782242277532757006746939830718619504365098471087628012540385828331154931267352145284425494085553990852207576246513680392434939786438584098996788153119381012845337451357337760125838908615977816576419279102100453519367303675777235038089267742183507322384377458189210172053497068257906181566357531522788023975729180473111344223432533752538846597146583327960663492963198005018854681194975035712406094391940197141907938278806135811976840979622873578842624514053354367432309420213155472873569234758387816595710434187142684166916301456521234491359345994809842182215608453696603552104564708040927986232394654439256646938552916029507654632281940902410547079047873201591523007574531036794753053809617708454938322775112357433266487766391203989450202726164669141187350553594498606486667645683805750136875944850395277112261115649256835975303583516995868385379168437897134061441888785886543736771797621776690614086211157203224926942512121099925381775151867101193868591230798687081179364818840366543746019254026462384008398218194682839399473355848223127118542261748562137848600224158712864757700585259701219958203621759212855836577438286110639040863867589156054466751745219572768536034895536466765049088231671106941529798859141318137060673068254054531412465945724700009475736264053351732653136453953234274860014016003948739250675172487822683529602507853120147120708851741862245111344404118241910613800152356518159155913844487778190560483738903107151927132497812158405976101428895170208867984449775434835062595817553556832586811578995447942298068459467895528181292815188463018285443614353129224106775180837193898873410809019341266154652315793051218540764184467902542296822972007688202547296636602666162568940112105348373281258460800350452190500066430750302550608517061569020535307979369034652819218595547758843828563904964104378008533078260011685252296921209240473933267527675130745824865009908409186497909889540372336469062682163512537584564817305154576796770341615295087720895543822317882039042545880755446775951026284115691955640871582571847325425202620887654388058320572281502668184880825002043890355212631502072860635531207421143768360468867263258511568158559316200585208184118322542961203439878739298205004049443092703864969515256920480951366300150491550408692777150565311692787128661764453675184142040624810594883876695471806309398464164484055781499662039089522444944345893227937405007019614338480135470205962238469564484465222215038409260736826436299467326012024824022547769432301848160373362380283649651440834597505400912660752278422831407048190495649596155601686841141174485049761698136572751825511346345191863178830805290430607861868254375584735887216074348906109797590077258295355886245984781672575876154563611305448461098871340330089166076858310085744327535533778540105876678213239823493275192007487651624584350313057466264024504589620901142932511348554188869868902449860950348676280074572965891296416267946851782585595413796059164880139488012486356287366085880695053211810513969755549771154115823020659707724884412437057426518701484044208273347781116314381627678556409001648750317558860900206562085921462076448419965744302653237383469619861561600361767797458602962953540308217067670529186575235601460889793344669898200965185817779929696108580970588143274109935764019095216523554116778588578475436235061432946128477870122657502644030129321120365129574635701318491253999478911882338402341017876608485351497071275401719247008117112871273230397270693079826942115206663901038338697044875947979391895402930245893032873712188405928702299813723743691495713863942205743841509449486752382218629484940341451645872094621638795352523514332484126226442807344582658224240562857380229887362734624362272804706422342883483958631035995248588819741764553764985324962313005412025799650413019170541054238893291449019091391380623868525169459310440875059993406922513467468349900302655118798280337337070041476035630532603730665108214876518489512822402201813177142176157166097926612789625440816402943258983271759050340611737164463037972942015624524033298789951903443708394990750305237867021878808658511574537539221217818656537178934997224120196633374362502760404863569390353932771039481911398106122963257297428860447751701971943213063811711942175278096665204794703940315481201618415771954505724121975855533225905934015752554941505290458287163644962921665118331366275234591553183555312125558120431828992579160619213815358441416332218755431350615873001501329320061247269367476347958552085170446053712088462137789659402569278558828306522346092981544934611208061175039175006705730403565702009452301393203380757153594891388658504747338406636017355101159405630275465437912454406040767812124022549173324169060181544638561949122373926355850163705729670953841584946056793169358559329999622799020336081291531683349325386645890403373572300393184650327681289310228915733467930326581921809053583993245747164209143383015415986987062094665049579038302726301817976188913342012575422700122613655472558168959204836020975700546622370404700816305728395159006898670851299526370984296192058375840665222521600655484846223573643603694452951283452825078717327917465423142963943673746706634474980835628986024640273544627707132714662250448297403739670029722019529075628410449764806917361267832512374637161797652809736729398001577787461068456653450337399306754985312364877505991912114457693143471554043578113388681965134223609961445493858470329153155853988955088887054794730743248789505122518630130176075268909565185707958465939507142232088686262540022451843938694368827594166437015496804896189983135803674778477607249017928999904171924192067867256777177788185739612709941435903758304752608638065661766700975581608948519178773665409557958924816955807302135316177009238860797463237350388656481241145800312401598525844102141768895536745420890891174961464992866344677016246378326050860244077073228165014689321620536392631529201546795852861313983356552386580401505518402192544555147427334955917550943628918859897567352423095840575525896474298068868952313662169171358721568745498377565241696292109531532395757532350560429068968420818567434497158556926323201946355451713207888473264381313628685997340646770140591510273841087356546003217367413164091011341068091924054196890540091565285486296347639117392738300605366500206978414294880803850094604305450016544367894946954867300964477330135249347717737856844489571528629468657149677353029009664961668118975744128085349236201428140613357325246431924570840864827598057588754238647813867114536101367136855839478486676005922046987600754706244042907853938491650444795820824281456283369971230605041016522010839358640760082379536064671109783553480673861946383729083290876022929826778005519052945383012613439808412837625543450899059569124431048331495069450020488252692182527604594780933521378593828417844380308644640679559731177508213912559095467229857975792396096448256553977433020616498940382688752952856262180760271333216726333250530094436605984060624774398668347648558113772595234367376111362285507296342477620311279071582323836583810071943510935497678949385478709327026016072904214260664538096016488821025972421727349155078893645953738557186289243636850326183575868027679435258894096148789176888283234019547156208187779357048276938390396772760625906517545799592273516044946083457897776040014030597529852454317152774548427950967807099597480504341783194674906072153717296616413092728960069418002431413235830705500778913077676929352679066299089173399177514773362353954641764350909513312098770095015135779091253850513895312995888480923908436452533891329949637944477060282407540427815940031439913242067929945992975951090670723759427919245009766223462557844792505934225775840916207399764507717732883250232148051031815755899246873629132597717297038259908793911572110473491799206363424070920907738795002690153308444541467999740618552943123060653032238307717941117523820173858572386695418482734202894022690363710336875803261963741974381438681278688912292814280686734340227376213306437903197452155987388900999434309496382694195031349575226179396503178312806224740886742665143638692385306149251575433637613909930567312355667242276019463594891450863895115268641169942287446861563608921523741358340620428395638362374654143970883238347287500399351452851497782592531385063027395601648049284715894694934675892255384115829315508202942945719029406595112479215786051090639143479060796096167804365832546375604661072647749550166427870800926201917030323951027942243238383143907852846516934257058687971209883269833075436309705106374271119671981671010291178202390770054515345154135624919150846558426764325347699204117749893932629004398941711408831346942024983742676361672154093687281457801653101226044753791204282107968866621621154577220919721103220948248453474794349114281380247828730223713973214780223898264016127123285793282212657975858647746239152501523813341925743677616512350290032747042546675460002238555723093298872655115210659494810022076116501749903849831848416103821977646855931320247985228437891648153419694491449128003639806637049783575403117068220488910513128739167466863502036145972391804945462114936954613344728796543598380610715330641628857797485320856859726447564249185632400984101800038109988859125847539360938811177382701904651832078409845154716645592655532398342971527627094233862643420708330436196070757542195547443209137908685769479491618461587317661312719305614361972639508723906257988126578109312573595695917553147767680943866156204391564240578195751815603619872364768352032519470727718242786203034490592513350435799122824688274715029903439721107512650212378616387238407719341845315025325706265160708011010523144321762166138165050856948912796828366751296083242516603807889372251647437124494049849226148044146276711597319406603055844812487256922152928677443601866926240672684297377730831597548104612833710187577350533307916875906754902466892445131387242412923836305180469438784672991755701367028150092328204084915661626727645267292738766397114413899946196367824546713065595578852142579276424269307406174149457401295529360864034161523723821206167071893030062517301337411257558350521906844177211036766958488469957025266403416123673603586170748112861728919409096003451109058040248215574473848690604977995964803293243079508451185519278910639913442234481323238548058050271420833107620191031659814213712243031071413728797802686264881353893079264025576986465533241040746853334139584162914368048390598677529796928643680458123176456038838373900972149256190476821839713818320593327349933285002453209358506287010532865385913865439408601419531165773997480984211936642371226345362755806257412556702412603968107708484881763987837932083710834460906243561953827785663532213210591278737763599163480860231393403586658421058840424762032252879359181103659396182196513083243995554740445915027338878478899190697601804263296923586315159755992520626259662745127299917809419423329212447183928759414023456975677782042002320982094953720386572323645084235132863714738209047746506415061120386381218294958254877333340474639418481058157412001842250105093519748457397598141349135092790621514953292172193807017277061916797498729723109883555583088541239077070034032314918372608564441416095823438751689336476257637865023375330911056325113199552257640070238010664126542841676720014638015552561494230412358785100608872373451774379981397735729530521869498236287773779701216238096837518584475257499001030675574725482292999416001489056308803785211847892880730280716453067446071876973908256896887705053950624771331197985715087660302237086831787095333677417023864234213677733137956472271289573318510452202519780225305587402901240024895224695392605945680753958599095221407674237397665712866145151376649012393747627331805577248353323712330657081249879211988580860880449987736932171232603135393856585754228604559682009247877237902896179067813985617821674411852581552176336172410509737064020986351606525362944306090084995362930541384914809240963948335385737947272155687776754333407075988333253885039912821216174133802760130921569152184787035620849257196594718517900759114499257424527699240390731335256604663765051227222300904510779442999547637030693295561358102584172726287997506748954905142599506089290790334617398390185393481353718080007448993196692159254898218157730418364775341169275141187267933820695962098038251393355928069392192900162207951914953148776597053109814339770281421454858828252321622442897870013986310466225414520859972271100499400202994766228484482141791502168449695278305123500261841503086658976537451149670741774922952231567271070287389211547263910206572669286917029937549060109735250300314504668584131062989842558355776947965082830795243371077175795224140040064504599742880322559963707055147261988861665630726373635670742451102735763737341237796875117929873744604499162034182743532800718713835080193278459236544817461353542100349222360235859362957377485601095497083677648790207002263653248215193708457168700587022918571461646495826872844266397904596927804231037722911197294429758969189175027108902212099644829174167084926544171207556838974944601280458788674386935491605803352781106964894770364924658147554243122864130667668372534565998862656618451293649929387779634683719646824461462327165938082315021907130254449942491629224769346368336301509079570127464535387043937951866257779009214517779503567311430570651882598824256634526962803511918814391746483370580039587535705395729748975750430447849418173063477861632189308338873308771634308399967767283834653174153139005602087110927213004726786323993177521057341424882378250817911231153310101374071035110262599474796844086590830165503772341517197251153540636151033239635637834397244528540229130186811850244122595078588224510004263169441326918504059405550480638121951294789525070811000508759014824108811742486411253164879100955520638253762918011331851825327640103495607840790344225681431408728363454220574320047873217217889319859115763570238160180065642343898191577220712029807811093050031706347600247131039408048832535315057465453974162100143339852807800906247085971077226855944306640186097966751762756926974207166137744005422197483211629114885011444252707134041535608924908275882687501778483705056782389786246840539474661274614484276481776532265664807757726413533583500056532913698575761804733227544906560162550199848369200850918180181925907227858961189607978626843762740533146386076495915056135254234028136333747922962649083811320930484891909785855870512030495542266044958721716961474222705522345248655202379523598921435829445123668486642140019687437034694357917372593612182871430905637964583914962853509888692794215656977138938443795073170990201729844350366425722343217099982250453663002034489815680550416738281385213763840825878301447837532277965917372502381557391177790076677302286300161211135884534923819866680632079279899051283786977609976727852977657690158173419298203796175709974045189172011362134871032010237080007170082704177683475921628800304373921092452451036574079188928669955812620055612924476648569490886534467016563409509753549382751694308138384164638618994594452475688563055271571531572912732537868909610359190115012829973918375960420783819116153769649547777256761181899348185356898958652155714227965769912325918169606675481593487440813833173911428959761091749237607471739031898959269681977855489576860653294575996924136002812758903780435042309436504721941048797127693681529030289776565828532045651718558102793940189078867992548769014085354658802702136376102373055101696144746588399931678546192394360751503161924426486272454392435333729556661563719489648332635030030921999958138314246874814502216344224288618683120049827906211940855434548164868104783965775250776798444380187940552351841500487321576356437452575963132499785420386180441754438080632532169854882340504312043093391790553797873796217164784679883360789167068305707473795043204158821666061343326481074877159117489969983743743173750759152873313509734780216766403233087593654293336933080129236787237763383129327471248549188355925923442540325738946655053359464704279661433547639644558562851122247194779749510649758374104389627445294919670368251662964801540173928980653696644573726609828473900950642597637265710612089901768099248076890303948200427300716717039835868587825821149492695427511476239595123115041702531658809183899826499132648245903797846138658954994708884112869125155431331234334678261537137405228226721184087576715395210683749288301630239150132437125520728298759543934695284514999316152749554044922115903528862236345262983960429023468037983317793049626512670351922695898745482972493166661409251954265924944963900662139291488073768543878286769791731845086454543216677922880283927610919066386292973807415274887653721159198264830899532276183094557820450822931848699580103651305865452166983971396112995892181912699805346607296952035258276868990184872870137950140978738449652742862684362682950138217477527219076483927904714337538008653010845205316880276919635483095367891137406548415574830021328957589142259995947904954684494541149140952152505943397188807679749683557937449004325504772635014752815490489535026325313667069545379257252130348021404753723543306409063512265279319093757759310637441575783103292915173385266603576669626656176923825283180733003806665715507821305431818336252306954005300666006410322836975211877968233088298999377822923192407678361573837381798445298466609621650007096930809338042263422510262792191889388435964024319020646381201230726209568630324735948441893467561901749000558560963930489250418054448901711523041695227262303826478325110835899360547715980831522940507691178294651114703839793423856890758247833330751524663879273417907256099249556316161465562904830673986167837455348889714239868663522602878912621363517186180149440092716232355432070145139165614026411559776438610888774358807263368492103967433428951599085884020231332690100873268681493802079591472624315419097130300009889075790286397632759017510345806465544738540884629942415478448955176063097678434891469691536197900955600439235194258609350315038948382912038133976336622027710332025185099546152174142920084771315353956105459081681050717921459293661377352024055857552829907580656867909495060217179164789917384847063802310666669029585251725664712278588986696410964087791292793590215908253258866760659208525238838777017773365210137417443843407059951274540445863952836796633480124570253574319694617411521284930694066676283762295889775187717594033671806927148216995567307799419919380332584278446929913735205161389168017571575996830895814363311001471831889409695446355612137824377680536686817082010927193757432795279672204649853293169383815852886584475304906116022387721638721308760324050431387002052220498800896738784263277710471307106473694393668657303181987491274916236078650234662067607967645099491000908147502538443912619853773802870269073011826269112251658209165084217574534517054315764242747569507988869314473211174651113726245614148196715713553861599007808390412057987097737294301017819564154798828110361390131014915552266084442981230342086917968668471743111028816898668189838992026189362453447530717657860519010614448886031094365261147140806183140207372801697792206533284144575640552088019734517105412756809284614977491841474216195534897273054426940118077223798052781127546082298141463243898182928232381878834099210053354506201759102733851441621629892942651775563556118726850672863769831021624653751323832909483393495988262829995403603694926462043444959610589336355687302457985178312907915573972983229953736783375233683666119444614633838519873536411388195738116785571663001263311176859856975210180278268346409424502534445513270756176802397062471161693194791622172802744264109927704626573188683630670968317590921256555628809609910045790107204316387997587438089855129515932517429326201380963161776142634221935802779932473407297888244340487702270574835659671102465307209527390589928637102813533206101096641898949196580893887003237746792231667199638838105192956810516119517773451002487744079382512521608616813688972818472997948313341474997872557142606275092193884994854582616214416433543085181110117939757635104660585514710978238976069223330891292177093212493527171436845336224227236807206335680095606177485105833328586190054209459289674636360469359515638391647463156898360068157063718238588097486852057951002388803408423593588419597761507815350139260594912822077517190198439628166108176242682413732517646615296617861866163374768261756720210897767132196592867958924906290094312015478422061297674734528354969336775538002462380729620606465705741280037282667354461147185675959559728677067774136873745021384148885149417745636200894570796094611591177030164717970071360038306891102014747932845610357220942702388874065894224418810063041302262032761986142713611329070500386424492587876184157306895573790861232102712766526037728643138862061542010821612956991837311880144413593282598007178288147892282830089079689888323596455591228664036543906548665648110355439105879161830957905377677472550305163881939817393645399456015235113108236098921402511271344519216103981806408977499513028996952187447087356237118555149836280488133211031958104855465266454403857619992581090165410939826428577094248263656134092735444652451671745912300025304636728090243556534945921675688892604192041344054879885947290299979657404877533953276337000509024837755669950715389999969623942009648287994599436909369666319871811746273695161540430067492115173422392601126730580860158505719843667782343949964934221299015946779613040053180905006100465562159214261968021159253856416070824088660626758783433683237811408479277876287926607970037180493489022741714207932336155734826558482562788803880558599916635224417698361973750050989228484316947572045735078790374898140715614988186270242643100916324115659346737157750795239439519325076252428108421867249241774084251935029230132658116130435140121500007202400670263247447724817227193673473322864425829719851933228279600854769009518320489797796773099727901809815611771541935410703292605790714048432615098523459875164581116385207689391935879402963093553200648121237588366232515723405028852764382726048402569025038488791893716685249108862670394524883265077772841825457398104372047388676723032438967020628915863762014941057596552921233508048440113863441522954597075988759963300934047175005628720546923961798416365968074030744292249540761771997062685094206308612342648434967422575009508008752833720266442417663343366447458201055151287901479705946171349067990053709337367409461296350467284977380401522493670502993507381741036465193543709442084486444265979908024286420195513251235119291866608718277948330429483508383058234319949384280460430949139107642185696086010638780088820835252440393779461298026171885133987847042411047920370339880452335924941470280266686479580453748202340741200436779535076028941241127958436432795957912827055374297524246873543149622410768919901161719541471931633048849284819665790615443265521172284344056693798980184826805583433509599063457061073159859253533555792600578667284585936761092984941907393176578912039760229077095237741409826164035345714276365544326488521921885959617631297013561893825818222609976665295151084646561409665362566136507611418009958677291511546817122083930260215274526562972805232587442381604961784066832157146505934430623123154438798811210713063399706388139923295545973672436119917126715498854420210758661840842255149261568633260815528014021089949043040163935003334197452584206234127887297922229434595160103961006724286072516991571218276533668599863771799799218646053005924894175185115295108757167002516157479550518520438284993654719032892408543656178121015341838837456050607184759192995210840474863991671716370842929629635368428876151710468157452285270324960389223591307216541129323470997411117776651997204258363784367236598531722969637849123951942650848227224594176330976133827434292995108446851408565236824833160315221034262100572000495993823859478014481061301025023916719954168247951078103502794071376893594626348847508534752085103718585046223617958528248849625909089066824633257166308320315845037654162089072989341746927986468680560946435548506418155846359600400337649609996236974930062418176359597091774220110247177085056988124502944487122155769005015825162730445811627000193391868160007004263958900842059940929457220275695457886761042999798708126979298757225954766121915074701421537340939043373179724169875509922875904863155916365314996300781689605635469851438199086269134209227017721053506601135447117749664340553806466979576738754375943702737184491719998316322086772672544960996902981569896571707467552963959603694973612210466369157374655180112125021452290805065063553058548477180290878551947684966692789136622591336144866182745787604309517638252120431338317192659480602219904655261076633306190399336266541534220606846011139678680133379803928043695055596432739040408741628245993344163790820287663278201782235113238835437146514715056693058417555139735889210053805838654968783389897058170472735216469097251566725658611224305895638061659798990256402597778201045584358319704556165147205054614212798225603570320500594661991558555923525521292978017672591549844564506285455064449595196539308195043895479843841184659117794430515780033313922505640115755135135645511245050527187235458828473725359340735276916003360865681778593338254216314186799866233341368187319636003410788198884927218050916150601834570219718729084297577185126539354985410327494549050580505551127176525143318180431344905286242475028909019329094709634801228767880942989729255953009927969610211239789528506610457836742236910635004634463709208092931393569095598801646380949170194859153530216503861850666085081134856049451528066526666776953935422272674167073503912515506397283333606132683733405388816281245147297053380559234882603469183854732439009297725460350388095432607788188033584519792474752079545236660855966142204965439999428387187639007261935585549402274290697049145208426858766573133096697047248453271211281423850464391343300327316762381689226456769206001077654206374361337098131058255407613380731857637251629375247284077143929068809956681431953620405590859799713055529100675823351587171831901086830800532903101771713274181612943490106960319696258298604603092363618356589316814353511238515099649550631863679752249913236988367244367099200481233092044940420913763868287713122303711088056845441872879035996717163664203840080224702283093554384290239910407945375436852976266072994395277426418690699954250060462677674416821385004582212110338465314001214832459284094971475978785682950324795095275153770652264031366236531461359025307473028095598554191888701889106214440555220094262554326595165374140481521295885981473165549522800391566217932964281347200583496360049493708919647660327456962251326890879555118847675326922147636119218314102938925705728050751138957740910163109199705711533200350542650554783212736569528293852129335911777524179615719783884460843225557370676677727494033182063968192809453910943362436151588452443919700284146649589186601217407826464033738940343342162465343344311973815681818870584925333278931348686692135228304216132500758521827289227881450607687484383182534458313303405866714279251521218998936627029297568948808398777504608322355756022767952797770634412148091479972116131863993675820497505627031960443158606588315328012097596491261415562213905287912652484110774384416879842308772353031965111457166828311560476284127200548628190156980090675475742104311018112870718113096094632405041191303005964206172566662101091197703947251478003535793173425665167181517276774342675578522308840941927998610314734994914902873036025491392836047260686298204299760534172029558627238886866607008144607388219030834163853340169817711321908002520359073770999968095941524601430650764396311737919227738742898317796434705878670765594250703448129748144937984373941500810122323894554558146115626871856209175775201251008433956290490043000300768750187147341477554006493229235734713245258144831889857854153150296387857842419518376453647688642268993124101525074508130006993403177250298580678187059360041731267978487639965736341276962438955989173983011112058818225924665824417617710424245146444814342132852503205764397594844129345146626025718217664879780859604799679446649538900729230895828820768532142710305845611168264043566142515708310110776582594441696698027243179178663992803023562131225658011647035055513346979262341647717507776785600459095944774954289235644437908048793720288027606122894562676310690044608378452272290951719312167116412254689766393221981337742255444724638596744832211082946125135172663004320851430395044008612679657082231965303613513524151919813398510856113721287782504827382604018795364940102042819009697231856197606222202277558245547554062320394072245521342838011453817040511152316694644179907729103807561668466450374266263042214247767573238535916651727209081162832854242654446673447402141129698375104991434954553631316911576875597551587831623364423644923530885629740846627404285734107786729261909930139404502209469463551362977005953338987536598091984979769962942225870365619626856289744119771829619178689684049533774196049434991456958150947742087178567819152816872917829403253754702470457733282700298571891636758053458671304766448096062161458830356527489327695884404431559196849106257559139180946500250043642623455453321244230438549385739993890113838727636671111485950470931718452023518646956253050632324041054169731977279896402561026581276001101562700831133926679302096288622173342347193242244645342412121736501035163907394474668669514549859353457193035293882903299259375939076943733896815681179364168540962179971792106227294265780509941708004847931489511143893526658246567547956750725735589626604251323885091472818239485884085866593088312432321918089485436995858008886197913379240656472973099309978341518677443829243306968297138647868750068982875268209230974355762388061995194301827885414091197625506753378822823796165026263232426999900181599554436023123294652699299408496471926221307934992807576331158462679753895419759651218577168979624453834707405645781601255591926966741121782628674147736857787898811915321233247132592137527793603912296686412180410182647259970667578371794248613622245741162467344116031352013225817263090083195842034749351601750508689401771779042957928133881662512952886597003215929931683884103297558000232411760924388561675064782193658460347985940077694878892566846768013640669628656912132870535508539585222877533450667993817618771903163432425078224654389798206271103341162977562811655948915304062492406578598487277557617572476278331512149228411597468666726536156510179291166017826674524533670640901232104071019655053368191480470264326909942187845573223170139239423375453959965027799326086335743652029282498857171410696533680220584029641798301709626915820661063541517356143482952530486364182019525706964034321942568978753733855120803740983186478978278439021632341877890931970111556826785626726762287042898644485084830581670017322295838336279568831822920016264334620188031139398913687480953015415917051829336784333149834915884919426642984216748942856782198793101028875848319584237452626936831280328009557226403406200567372414983739484397338302634953079707045765240013297749264012632919001632496827081908589252600582151944893435950219607642567460399210672999571563804776674178702635422383334107569901389779179069557452581289331234519290033941270087086531359573504500589486474072230371832545911938747919763020040470752643437930828599919694703582285662917289897973090375648390113427880712084886668987616856333345120929313774926693954816243708290686777738979879747722853497577505466528593791063105866791911347947730606150341067984565803987804888784077867946836448411946799811308491246637194818234558941212037305059265238559907556126168239887151426972408253167406511678053536851078603791679173512946646134697489427322196650197144929355252703767202842218326847275905021203245255279897602242159436469317750267598638991182537100156803539335392863163395963537329753356848987647020512158933350965909468485936883952402054745202116288448914899355701292448833599860450439095845043771063400520484275399358809999186064088264383878228957712633196707352930794081030321262098541304079673065991529489049710660540808664885676969496338016265341496922872465455433803941263047032623531736895181262329283932250399036812767648083794034975566186604671237296019119762687200044659684240310339769101756070419098879575366290468488556373073317293679421893559672045323649516081400789552531437700468581178012972102478896981357809995242611537115638180029161987247682658392003427123783431780416132948722661300151399348666699777923735877500688298978997556319060215832209665377278692717851434924097611611066786588167157445259348395646427641992451993684004691938920724042954839255931213144363238068499055807726664121503590878885284254494038929241660341697890635196451142273133437529882623025981042288946332907664769008369742425536088905439819997128115047919307490114768569400421245440693388329867934294896609101031863702617788030394647432310048354435333149897958369476783168303521712968399761900179577104708417431943516303461163856954625465521458796536432705640310874237949871597574033475955946014410897984135364635001522344762282543970274926558278055056339586578433305148661126764134372573908984000166651645053821442794043087809675281540511661638983002043747809457102093239023848349495290300185423256738739877983162326451526576216679195223086367452070842193434009102565604078883436503384807813124018582169220915890682631532957845837438518531524822584017071497598313468800387578105712744027100306466522997499074053172181302938358024058441024874299932612250342659491074277729636372766000822106894006626542304355186756933050313315367442791422475861595348461420803336778670345718267051507286291115158120372895019525142745360734960096087251989524617792462868139056033013208715075697426965584596559151182862678024737103572283004438757563622832038923869723252753528785805553312097172759462802415579240065176036420672847189858770124028346117227142530935277838874544710375085254167856352890652084008237859276533822721342797298551409374146274107456347723384359913386853498818649176975247116562496163501446974392106065424604729268668548983194777402921206110296853324328910308814569084105326488002479817816025681452807908809315578109174256409402881564449708534320020195546882080403592832722435828576422519179666506324184406259034319963927616941638048782619327781355226187901681831167976426518176137289279152643110570086485905397246358788821058945477325244904768741405198815177405727615688285929412075006935514048446752045324309892360651810333084809651273920321540915859789565210915239963611721288997182776804020375441978428250322589620399390598661885918067003041957211783599887420424635156323061582789338399349087263486883721946399959448379826090351682525683028912170383391915538852475917239857548084749071444725702518164529997733898888333430080986539798551835295277477016067938152083590637400064563648233381848529348436771144341961232498890327544067399032979004927473752544964127053458001116762129001278924033174963216368278506527488815744357842616723120798695083751386942851574300562917854887913512541083931783179262498735284568114677456827343130032478707438262167808650322180999645212662415135968303010992830021022581129323116563552519168786075459485997775956034875283949689748577475736598705319637415558924691051346820355796814348785372992501644894983121553116153837090433881253138479095400274816123543884585539043380391288368809437165469850727782735949479111830696709931826620738115564895705126502847073197645259932392747759455380312206463399273934917327755153847542967498242216646595319760311883265367802106437638417470954340844926726722329985884144913060963697421927924750533846935818649422836856880434164685273979656314708687271911885720966103501653809460958247788250548951573912001465732231657373600280486035385276373592067898257671468149558430522846312878328053421499242345916277583382459641015632854113533757426803575611877349794954288105424918197835959787313554608666252687900824419196000045196888002190632389465520600576861841064402883194814083683859417860762178737777328358033306463495268531402411578816108938272936220361055356736863792631153061888774150407338281010409886921022655690927461118608938921174858091243121008577218197137355348812695470908554571718000435356525572932542771184770891782285832115515151220698845967011378200428878770304059960147910496933262337785835983332063592787558506055183866375887838981387525314290983744909695899981952513238080552300966655378616943180631641632657983664503899519203052670315010150828862808703720589596138051453754420732115435158544470811135717249225306329004450219819886670806585779266699785795364785310931387965964749375376843168132605274266065895790958316961352924454946806829786549786176711077685495361753006376814768420787245898312079709745136060048963047394206762554576058170745748752769716433669589512673132631063126597114650137140383080001306047313328146577405044793399707655213294556197795684163702570445005468330027811217516183645383374622737767437336601434174966254563742153363183248926130449222444341064370010507210354643317998713451753231143727148602628180570768029913590843192999413676143972346597339029762366586621266752371736794053645784907977450218743955212595558347505964807475213859572450072270857448968936536633322097852726550193623162381902340961451817270846960399623088468642934866356886141233292374677560230544214423760635315212831956373659486185603375459920714579955538967278438888247724783347642133503509404250382852077319930486511211091757855651176386880370693687779855799280028282741959106132163410272943766624816834895786633427406347310331306597133269886000852402408667336069470539764398187504324374623536113279706872934315661050139947380078892285752181040563172607829100260422330891013381920129396687598148736446057034727203478984980907338001470016233520892831505902185419524658766327816855661215053467770588792820920831513773056869382012906555215129062191323698631544456520635608196274359073236486948197438616934642267326785096696241043472573995107847449671275039006007491520557044378375298532404809067196509631926619391723226133131625923195725673009570533259705799552910142360791892951106907506608995601020101303145623070019069456016810731071307323752461188613381840368389941182946251915597910660909865128439655837176573468099241309628368818883978839088995767281985480317696752229723643597178984624867914240924542368831351675919486262033316170460283062420314888924688328858248290981404679382238089221177455862114301013094245183484806155625360881947214634411635175878897682560224505253153186421044557008867371065715984317513334419005517520104740874956294445767058199506590460919166684366572087843373538385592722776773381956591041245652024356877182236220303240603493530328057792858233081452621885299391608502284092273328923386704788807525184246297686507321581918028946772901351193399238864896481680128881760877769120262709692638294521618734544743911978968392233795934765963587806797286705839294726831962175407020846937162045801027514146906715840699773846779334791790036324639108895974368822745883652172663241082239817893260895712743349524378485122696864659358498864493886078776897516887712647789010613760031725925936263991295525836661837231698529048731599994828312970051308824180660784887273633049046476176971140746219291674458303384449775287853344478917625099827485788091072205918896989271393853073037490984838738787125342491206816121724229231825084065777326679971626895933250655640630880230004418598308228778551111626745350426462902176326975842080624556276604911425522510607122197906396868704897751594406626461606086225083952071010137880733182891021291697078150662551540818990130728883422921339995340501123478659148305728859201838953693379153536259985430996960687497863128486652179911890967052094755315643449465575155867004944374171879956991694844188683789598258595720559402013386699669971413051536310770110606372802880058660704134391629540326247222506278676645447719098674705137993167604843992384882848361003895621829416421546788226505840207927403059489972438243252472083879462400939492532778780340615669534775470563945142237700287859832947533161438760457723894390880970464252098464973696385107621140918085539340275619751681696478385145853091774381492114406098502404862693380946513792108637110138451053118696674158427748707597227942134925534741647537592864966124631550992917703175698983784152972078055639638328671195196554890500213741087663099780227981816679047287670283588339958706809871187262791032794590942264227955438690688678006763671206307789246201494781068594189152899239570280536010316476297906063925698083265308714591434347739043514418003932846958864521202358370536024000432561742726333027452442945964580445201767451097940358876171556396342017943554860324715957855033130064566611318279483288568076181697541257306623842957053164421369008878003347627114199816961199401203443159867954685528532638158846473208472356423858102905334447044679149473993101186862154047092535653871970077257806809778210378011853726590476496314909805507667927561358901811101302352368657102494353952649143742298347345385221096754685641816483336551075136998933751518098277877651468266525232400871569717964633297566818679694776252682539893139503659951410868773943832270126723426179720778543642661468954305564266314393723273810812101665860974823851389918603886048581271056143440539118490835129226908777953400283901101011675065803951972183279854992860010350856408222713053842444944746043975267670884293598661639043394096442320861153281523107286080983850824360846410230127318495704320588973489771356072932126115827109212848036859984478411522640436064658799284781230509465687735977278368703378775525141016320314812795963599410297231202604705843035553413957523762716968145645649408034791983585470397472824025308371742968752986196752858769478606505846589735974379599356374058622074134609789664732221214222374392376633664747122436522806386741413961886134329842529522021265353748954493304036035753535234404903867838796991230966932202160529660935853760518982067477480444931213896527993620737537889183771550017899485926516411656482950091986551342651579106191695745963533681653559885573083838757481906802659697707751821442469269107289475626481270035707615139498250248083998943762707993378804024092780564622915990840338756851849012548823918551144261504657512272325554567356035147664528661312218775096086192061204130429601186666957209940745926564907216422403722581449335865229705581519407908168863713332899481841042417689497602696070880143614802145221953258836636484286843196220552791954783941781582069603012345359436298722494247789596046081141126643257563352060281209111671070570970141716035721141753570571597148539371608503325429116779423453080189847359740386232957922229844094964895156673325794825473052090232772691133248739298703072874857573339284166891360431368023243918529811337196560550758451266431295638042026459569664639212991980892655247745695582248643257506414192972800665169999338900929990698810062134323165191292766175916931808859680970332557039471614627363862006523376218313734588592070459704158385703295833688984237964383394763606507550335489759062506967007863729387642744070813436203027319394548719380291828989430529978393479847000424083010949503948539485308920345784756161374811650317832824601115233681269079474960216654630525479312510837089954476379992156279215340561799455337588674920072667157992141583041061909737341719012881132893517565518064611553314017972972424417758048001788725212916792614750515986171057111838705833755427298398239923533800594981195612084004904427575454767924799829934248703153982654058007643180745019738206430044544276788169515140655330068907868778959327803327329214854376152020658018161493569867685500672262709857055960685966619406275585908983642778782311575742178464983368640157783558524851842561977016446579374850895496101032588229634449329609496241063622176154780499975145246965786748107722424114072318700613621743177780194981260096704944043354243141915643398739926947267986949230402006538735631651388587800131863283447904239539529547114495916206282942954695719567499975506570059738621810392177318599615068954454527478268115344713343648741926750593378671007502188555364203085193932302877782712438244995580595368725241385953093458390979857568886432021703000970185655879952321051343830445512599461494258821778267541251803984978905456505322725271345458657665285365888000244276498672246734781306762986008207175283383428507967510196410028215564871151579509938617289999646781246212355073783395709746705812887854534845762005527726878270603636797089156263886973667174623128925302772658600974947180787641063232400045463781248914370935425745637132022630323987944827617823026350763179639488139298049927270811217374234650328712550369931389820814289597288809579778566766046435528716790214575140107412436242370599150651787121812476249391592118146626418590790742501949621015095618866768496575261644575304203640983561181922106704466025177214740387382383388041205429684500970669795047201155297655111843359367868646177258073635812993884694380740535098641784745433563286880372344667321134568827268140622464207722113817963054124691687640445144352265884908563798365169262721503710375686915883781071902254162162603047211594176680660244349810299064173579173564969413650143597288460472068034508636645881064614034448418570143239577613119933727851032379267789757384117187630182185253188079205933649390007546073056215825213926335061229260682809046683379238883526422175005701966699971182617143219240902249014176168374320385340638205859347545221540472565693283296143504741302825496359671494218880227174089141149099027013480456324315907389055693074900525113685297403663875135267632001287739272723983215832815837720049310540711825766769613819075122561525311809187417124534344585827558535975865463859132085231859382883850151032696378630808950320024568985528397088645765980339921957418121113667137547318586684923993392633914795546254904640493292083264539066790067749471937081706378455816679447245255967138976260978233411873687431614498290920154663905937937032980274962957455012609417339863949636905210066495544310404490368782831547518767402826141944471415344094168488557079349604646579534750933717274054235549971518363797986117679026661107920755277125413612345067573334316518761860580371100145124197758207382221447596807819764925206260818288284607306669801770547407731242800712554535514214786354418101617778330344752910608202382398547830804081749587410865702132148964089148570826884447720771675574016477978587788851403127554314795251975380328613207647445223741557709418779171286072269109180348416719927707052648319185269090826077002822607859119497842418916867024726687156088665262752428760781056570120521951077804819780976965032808992371543652730812112167109722641083554990140960252819837416035421307588668274516547314964567619570315144494699188705990327338148467134049274698686051467725615227733463482303397483037871905059970582559628831028754394612552724257185653173953886790459541092324548419451074882165011405831378854630431592967642291923478266453755826064381719706763813490657792225625328663110090358373495144253319814225766341058431862112654334267791746845093606533410065973758247539632388985136018408786953679902007919549562787595924742786445702477764591405469289608268353994618887321435999532464460263840759350260084394782714929160685297370381715578750304722568703068782120541760750071460210444155566520346891002185369461645331394421514188139964321231365006126608816593083766429620737024471162458241987712166049553338111492915729742106553037011514078238559076814521257567225840887372483524128513994249123114836719585484674220140572237004702484507208012030040724122806233791231652076497906260800151953820684720008736444960548862691208348382041011890318339028559110893053599526358980578327820249068902305361006708124604089469514897133825822517975146824278840081709966794709959405140748810477131484220074069423510916256592333308055303422282602703566449252637169340924004236908763118623890131495833354703631767598858707084335242806004626025670902243372880405672551724369285007419898814590212056305983019586222348766480725031345781656332593958052583221441417020984903014930717823936396924948809027201637283275725375148407461836096518147861415928936812825555704436528794860533086264618182439274802104136455309175826716523249625246113162922306414793028481883988887378804017582829324033973829687681083113664169007918893357540700903984065225316330937910711578482520846422949557237424904262494050352452945113383969122959585402843292451285117765862422198358255245656979093119013064160941553641020406275822864478277517347814701564964393912876510705809451878452243173894693140655505635537521327724088875112795645281855926266043634814230193879174098850707189586547232042664105832853762072138737865995282474451491004221224494694018387597097746503840295628789068282090159630273644364651951698567385276433140271638060442272501317247298337474969236784798217561795354642638143212189707736823236147978563420403835521849860678323571530745302305309905786319285032479785513649321569548509322201236646408071478289117612564509430347713162962587067512336048622812836642337977867919834428916723876547828994812095088695683025923338995190937920129445631949891668948015162636370007518129889767461110924535886061218190651063273435830732620121290926898584498576694496615011428499412101707223044633421818844062688835403325483108027813133681331280348006363909910129275442272204927208608527106307959945957114935642701320405586970793242364948766123822324509565345616892099786246167788563910897853135529376358765639870800492519994957661980350148600925811267195585405286949866533794074409963280896257108460356863209265175597734053315401496543088004367882687465803714254006367351055112926778470531698485405998977028139951800481145838686937196211465920239391881062078201661606091127933911137251503181592948169372964977581473986118809467366203152326526507996840645265949068039095609909499360446368094820328187531864767640193889211515115158563617873368830537214502501071167693705251881796050162628108627413859174082638443451070919342123354362670421765402623794782690439786924792844749365564844232608238295396826108056288773858514593709356697255440924733759979985659392372289666800125499371533348305469374470944563726101667317553532098355674143948379834190130317635908976220949672687141584854640597285547725000996886308552341311604424349521247933627725160185296184762710646971068766856440429838910809420661434788323746333619898660509398532325522787507195325762182415252571574584255010005599343377932633595763118542636126841763460670940073426385550221986765692260539042136279760372810084871833631311502625465229752315329176812985555185296132738061965087629575520880904946857487519062971432056647852762198626374415792927135987918765391598518150456520522479548131675738205281213263041305072413061230384373928903775521674632455671175371318072623335313591515146942634782959073533633937564634684005053966572193071481211921857394250312064187669768248264008793712409569794064486364558153279933637631484305513081616652860297984493592659036159278754911235254085512930452595931926727514985647134059463166213700979069596666151416313677905496081979987651301996966394243401900553629534493947329812109996956508018762670829556928732617783024651828531995698585380710265449302741142446898686939579375252325593194887446404137309446752113158500420895062000312059824007017344326743721583860206341804165323528559140051439115672499953597454926616919833963968506105533792871999090208634448565677897460652806361479811465593774288643143275482475170035377508049665972873854431438218878633983746309699478130948259330940985603106045937446331193433537598175165565180658247723197158726944128575852105494216025946057669053536282673843187608599221212765971467570674439496023066775229702430678000410159336912048177663104298420052187633285227255200363144596189882182153593229523274906915157281277535131143259025862651250032560267797996974812218008200771046447767753512730102340587613365459514227282784621232450518972725157807670670591854805690806733525105371422769844751282076000320542790350393761200742488613486482547911659388168134982984417300365801904402661162214337321936029870890224084100280471658394506408945652769018571814504936348015614164486414620691289709356596708498718496346630497528847958509531430857923980882546875639498305497341202961538258998562748772176303944375803166566850134286668622464263661872545443637722583239703721723642998723682667266715987250685839120160062389402601411564603193856651921841261438600906548178210563192374838517923594536392629652499889396540594131918895831765592037527876001417741613785695508972757028701510590042127280039389056299173957299123717246821497121969870849258764073712865282305374214214590784207618482184567756111957810635687528187886848456297591943256467266077471791639360983171033054615938351393764626561460968675990632933385937589171994236469002235334127833427144977210875423528740829647838232252722150632505595104391792363398997742789821540715247401975109002530506865431820605144499048023010134247172309975169936196336377841640902110341950430431780551052282652143672949101849217322143926644485750817516569555560178406808787122578412361741829525559400247601320677171680513987243621245740712027277348993256718896468020182636632757850455041297662516048904136682135991085112883483701019045575610466579803692570714989837713858171037928536645008421287784049316416756206501264959201750140392681097616205705411573720774899138203625365185597040125542609170414419309924705830954557996489836614988419702311770915475862328549777852578331499226976634144382947118690326890808697154181394551594064385184803979301415339710737218708876950216898965012740171187312800199690377469644097583616150427455622371131446811291298033418434967256634402122485263745646205798783814464694766631803277147868298829414577857426309046159181607558260164591149692345563869462409472839584027566559246639610285566781184099446084736315623730161943676031112967493394436465369772175591143205276097985481532428482136885606522277873852228109793456845636356197833921797113222963334350356584561619153636640867393839754039286311381417550708269186812394588181898966741182871985306933564135935048611715443400526742461152075452639442103532520865850237044357874112919095409583753004553703071802941895889218351543564043594953400693016349555147035636410957229670742294200424164731376104928613739286290458758769306927587322938624172720815657498166552597680964706586381577643869256889757843575614993866393277994242867969465553475040780513244940622467703694440954772562099905028650039556490932626653201727339871699080427733558781918314045876593342903764141656990342218342525904276524249040400283894528418963595454493228418225037053856112634642555248854570351901348677239003151847257062305076682770421231230352390366266553333339810600825382477155770723779339738580064814157874363285262956484098300963922481430125086540045829072989428077592225152168985925767816124518301192919261542031680645640841370845536813957954540490362798526834797537116347421004383480794803367159011769755141828111494663111525620652039060831156022050125673800080145228593840770680122852651460728500455650328847037903020671471002265370182092287431592041650585628617323625016973556936792744548535271403576076917297477889052604304922859383929993077563385813096054228441885872180706421383580311179167193458058985312765976746934324750562891675350533790906062581339171033223042835287780384873100266757123084837243359759439518969556335635158955774635407380263282146499197902732076142517811957966772313269707078481124431152535025484923514253503934724624174682624031945721603679726832924227090344672574742715397172362616267794701582028941673580848669195837010926834003163882733318666316119907807276383930508454526327330269661411751629912899908478898887892888437810273731659390747804808852960376654059693316786244917998253929812668375999876143380155036120217059840722179114236427783308091145204329256190351506895566178589978761065257115963196037151270458707065190400878937141199736058275593101220905440545358783257533100588174606613971985901802043768010803780920615085121402574938779457045974550066625543003850512957830443105691777724725369832015303387906533677783996027156192416571514751405774923270205153229739561914644111492617478674152532139828233964624926564990313474181446704036768762934529078164973336329393313319138797888879202106546852818688684859115896899575025773676100680027660946399975691538965329957022445026771194478325204718448429730018092078062203217873367915715435693666839471832204788206597331590240579276881408405626557680414800409336196987189602636608570465003016206258384244475142981729645876813140114605694962955996864269940860303004230306703105451292416993728426092911797894434886985838409044306199030246518524704394711825608027936588112437002827886407679107948645782576977697275096986975098654114812895188884750270030167133236959846140231789406907864999364775297625012456649809109582826115885843396640535349707607546537461806997307473203573456297196580459826614013667982876571489201473213962702677858903896044721683636669210200894120774705629322524569927221215337870106271377493304093478578442205689086937141676336282493087054998721539688108772405709695341333831796334528994926537097061771537879932391565153191077524893208690379254695579448865164538840693324498882648370155791452317589097397809435413957368262114612928987029214193034936389525437982155615939285514150539897900643957540481949595093821099127003110763071181602766770625501193268920719602012355127452002383216191161941216112824515591935647415517513386218822875725932473383891243546685325724121970272731512811413329127087552398349913625802465209654916947186680421398720460110298050745801438827170079943375245005373664294623789424151753299494929117148938963770780077897698266270375456645406858870089459510005923529998446323489340480155766663864357868089137100445134029846058288132294176108335272856572657691230995263700488384762909875242862600035396520217011829173527298166957393702083801964491086919959451959287313181435269427455146480247507864552705438285436903755360157515999079940156855403718879107947528844883789845739419167176266377399623849810792677161784064188893226682547374466263155339207670897964912489329504245252782125272600095981846906476316320328025111205858078227002946516907347602381949518751209420168150674135305797531050940932161066023100195426437936795817193164272713774211891847442930184129294915691438841759275438948362479216553736727255240750694921073930483672077307505084756031712148377691936599417143049840202299813939059562562021931968004797204690253349707895281781637811831823267411322434885007162948997415233456570192830770757429664251824007559007270424060745404900148482111217799763920499517292798586503279832190563660266737479228494464553265089058376569223073052828830359649237018082476157232197246756668745217323922270966331286388392955127493534556245832065286164505271894980934922532217744242057617098524979653579306665984252735506115305813138380060793917665940837282898360241631080795263909569473040187656519268713318584940387193189775383713750071256915354026756368136145408357355030758192535257427939994594731781683987141681348163876930717826212513750707671251265916359490078670351325438767563759145618873797791960408256467595087377010628304086060706017943622635159367501491437516814643810026966863446517050429624677863604935551589700067205902801450090576520384371744531150749428436752922879729550801132857301877483021876611737368081737351956459317069211936856413349276251533443655268755539218733717860314197150150114095137503329779076154280562279108637149604305774497749884226931154569797361164849304158044573367036482643471377821902329485826002476092493333252033281139196994884027429962215471344071034702537161861459090640501800114077123089039969795056550983669324402768121021908248581861603428341439957387576927574872377382871796273607485415039468105411087994995760422213973010577364003758800876414928406178788103081169546316882205764810055722686750686980864651853948563941660489929216812614326175130893435599229666786315372636369359312145178999680852300198118222541202600795326322152027674613902550716088308984558415543416676147282190349524303982798945115868588473967928163714501005679769986610132157693572700701249743380220552214514788281127499066994472262679279940033419451357069524119131212999974126479591554723167627697316619205185663288742144406074994859840629029483286867479503572575255480619313421493988670336278682239978526871722893860634090029612629250840706322546527948085095165955768909000651040809194100890052065325253792347944242674073479625118998418905792312304666720844026239235241235952802632259042974704641997527025828911021501498341000343435852086978374311312630969846442063159002290112280993046483005143469739675983551198788118960767874211209967613669873947475871418743048979175981535643738411225133763058112789797369304259217239295349813369456753323183036902219818614943205497748496764842630850909054700720998930099003487674315334412580372834136644042807849227445517842836858932811143445649586169937563036602646816603258668929556585588047883975952816805997966116111118087836533885177507360135397422740180101484774817938946173522584544121651775013612770602230109946009893759305127104634642882416364537207548008772869250924646241657532838680390631234448984297385948646485557244402718840439941152997551937253969555621231012617837071147196210202794032120674745499946137957459607422827201879878646315319362670649909042555195846980064420180061612238040320590046575960797489990764692742879089328707774861210233777353548252193338025544032882318430802131846237386508756078040978401787896685663254027072691906944901312286101236215120811015689131923007573133499550509413463975397931451879164066620471206619221090954730602965641406005519518526443215782545107978969803208148492082257223873619171462942607585091688510210328627898098265292146072266550742164320792572521961051588957111076106437189564142949876375573579660015192737334705338230610205396154820431086767198241193367575739426816265217165702469175492909055548013156464171323361954758097105103426496115929562127896736363524612680395837998132287906601285779962289198054418975373015827793591492140211337823636837505752226553953959717970091185318345537226316413021591404844619321250255405073356479946260900163707692677481661076918577907442779056492135165923253715058823721845447338697030572067558591831564215826384553167802824682876857834593625723713818733075073746886735775494285830651915944789113530733228479905066161909641902641480630028123184662965865685930280873550186565959442162442054166443086654986198059933953852017600328135217130838924459847379868545343599334206303894256140468596765621263304210300587919263713930106187243806315122635646498796937230084233602039151539379282758087383936756952638325211714482521098368982477852262724433055293369393761152814315717049439385207155518770805384039373990878922343560056728298159659527801443620965763981507060081453797115232060983438889884878738514831675459027731586998662209218217961549297023454995858425170529728402887937703192902269208610007748177329985808137071098654753728635952269418320804404950363691365819763776844681623086605571454847524186563563773810855415679415970109118478944016809951873865350681201697535892688461861124342754986010303723749092700369853455151433348498592707354808247248050864985131811966907930193898451345827448770644373297387498463837850270743773104112570932077331469495547925162364930003172083172682475920268795128978682892906334451273333059993987706170191256731289021224474426304056359651752525968884123204290349343936223720607330016713732427111822698575878847677553337810443259343265698905650845653513123738592920256393474087337176633186411221446463513949133852430689504126557524874300212005311804789579688303075049649347755795535118403027315091378166109885133779277167342711535916377512175778955893800875247223828874673060979246587290502959680393626623036208297310365412014572095791401975789621597024563176138768980800082467573842961790941270575404320116589742773675515479843195040284963769125852478506348918264347984778040998120933669887955519216020707522205346649041192696810400719169613071460635920444647447623197290916769896159934892232288430828103755920610743148917478128073670815137143920342101239778929586521748783787172148878665054480618693320637498992466542237407633247016208964096827111989801700066653959610653639542270393922663940036132026290195698582450196443267536507996952528094034013727914673953387098993365951609154904069340868169216427755659440668916665992690153565189382149516139066127996073753497653972779637076638005583314493606511106332902238082305147507827389921861063950778953129376179498207995187883136777376344953206818133992617906630913652343104417778497580876353498032466945679291313810449621327769747819978647245756869615871997144364070235187093717946630194304981848844776835283330131553797743404232012828483697589832871662790238470061753756233365596913472035297368853682825294337164373188313989523500273920779684284756398171959858060035492691452780262349274041795383835819885854402724225001856789952320395171556423226565198546640012281627491585365734050343942808339419672419000914306573390708644310540572096032624400058826929395561929154879174620607739833222051929981571901425166795080671553206076794509212978662229673253945406778704306724152649501130499656998318194477712798878043111382095336367249257692841631668449827768418876331223046776715840070483221639469608457029397239988122571519258927785685382979065564467082481029693055866095470465069903907283180543139207199754867653589129989696338515841005419303871112895252382556951408869176064064815575024716525249589572918624801517410996868679818091312769476185660235865368499776425344545673666192134872355139977789080524481485898890899677313517689884167649883560933101968042657339963595763267047305353747661580920352831323031342453454375614269428913993448979371663236345281795210768351732532705973136680364252510358630629644199656734943242839156720148233215682790385842852018721917135596203239700188817514683193105493905755043585107339451776256396529834422150020864780909862225918688420133300341385996924633721252087496929732826096185463410107390476421716857586488435055224273474876103129922739067222035196364051337415108948162534682457371612570215471859425096226813626824637860610109186413839606614742460700254145311727866821124339273654976281197669193571041489304193579812140393631264615566361906500617200209231037674370286096485898030244892529143789228325538655353690625086487399319685507417061553648051600589703332642186746064801679556502096401469016319296247252771519400991284929298344833967849403514316954989525796232640404305509439643365978989494569333688137122864537650861507235342855042390428895443928848452117803375753139825288128047189023529349603377799917869698981989185173215747488764384555809429363473372900509577248945029388116243983659429384928090691763445207118985251902915688640211783280632163540286116534732751134116325254234188835725958585389453789493915791303360576524115986246182428674727841894767274056846486710157307302809681403577015915433838371714957987775487472836620133279563417365435800800224966220593825777521537499972785193527615164958921847001440100223492719648146320309636284177808960125520714183262789713602518874724070839797275792151583810349804791425781482580111509756992712346255150899671635291349630841566248029880362430985497617656612893114298035234838010455349992569142700888381921128458840038619628368030078916792731509919871244044285181809945972616759294470376047361137020267344008791182143877451210909692676591795271137359689389194983444221339898210109808964350616307060532756878178234483790714648074727518161958628580247384073480851115909317320951092948214749961400063764830883946070948937818483797686183637235358132798769097679340744764754682234963309126927686796686487349484616604016148412045335305187686535203753582572747355049591551047893471242719528275845623733937527137841207115205137881271588171500187493152894304822660411035809144490809317050422649722786979959303913041608650364017851038683365524272811704926294489057647514726800231977558344615625233665993728414650006944267404862624413765892515405162843499895576392510339949712633054466173383616701544758805636971118546922487337777410094563724410805117951146255723892333337250644997257662100454448597993025034721657549201731687649879130866075810937826306785802568508220323690850319415863967209911084981951891799420281690025156323015393708735626402734031015595995204406005705635976961228021568240978780032529955804172478875547443063856488105066450308440343649805766138943643858362088221315780272449625023471940280201012793734463303446819912058768855222496112411972147054918256907774721305826206106340210639815045163612753244344756632225916634075303901340142243485963095923763952022678825908329314385238543658839655123293877873766733242057885336535955334225778592192763614212162522700371483203273338920118754459198946299839956920883392540145564665235750228475429790916275695591935866982228717446556334419209605362892069791191243675988229320792053172226886800519408625664309953836558788818105148715859737144380500900721772238137265041517020604045528105822010679072578317933038585493586571388123761567583707961193481373369948724252448609714268432843837822436398152451706313620659804909301890886054218370396901746685770765988536710661834172116942006771552121131853146677822139165305894263852855488127024995117689253407777816023991311457015567315755826486072340318209679500880769077797663934166060843625941627060051852395434971941677323367782438114917194604513412743539094347656997504585887211641693626916653480144064994858967593537291775077730399542695122187868751868641700402593669659848549820961820162826770215565882520568366413362107295051060954341286039057323143555776724150680996795776429160508993404262119946960272186527761800842056480011780530208825771977102278158248414013596027189989059734171548423706258876504957605275929127729622009263311454683999577043939605395119729588157507403970026423327123453783289256455886956358725096583150693028102439015471596437220576307256558998259576035871728362739003303871595521684864768817394734942562481074409827949541202147392045188317946710629530699329404592524968803639190554693637884492796137335025429571676212028177845005016844001556666265405085678305200824651116627341026982548551079732980174698864655914215262698423847508270498991449066710691103201708070019486671722556041077513614254058185985652852902505126723051540381486627449659551996779475587246752369824285604939712971313879520110806097751064113637482587689236663440109325678485711345381036072759507547277605744213005417924735051286318822363910866356072104887052432201306011778172292037355935150713307963265952067661846563647159593344926434443668514553825839853522531737942687453643434145975718759417965633963962633681355914764584824012444432796005898966447617992736699772629512755677678376698005056061129073330892762842015752583799649028335906794539101491511902919905122614164938776834694564088623567466072201706929252452184403667216946775611526393963717465957529251988496940466632334796042730323915871022068727508584930663671613308760988233214030403039034005069713989900901224151294112193818445850443224046676011186647788147079909493525838184031800995727784920058592663484331799080122291991961825833187156477503204908528586570533965178042043085206406864465431633302809623944966551869082074016548491746570445498449988409912000728080635947688824513996378357131531685637464518327287001926573244672637084200423931956617914909019611167124271225215948298416936221421131806320311125232055251967269882931022103651008039048678046276244677682759092214849478449306901968808311220877684332669617999413291478212515562227083405983989302868969877213225618487102528623678564388461989266544617611319673001607992739584758323287041298089766384290919013899446172940794377909829040379303847963898434746312744484549316663320254726052244867935167822678231995124521077057961268727405533834507831284633309003994063654461247762655366780653397543289163987813851749008346135829276176921396643213534321530774770823681574876783193923775403032794048769435961012039934819227839360661821427708750693342723226461209976026169393862275447608997521010280183992954143526835382416674165538532327535705954409275279939008088961167170965905308552101479182660669691300155390667358916034967739063813408370182985164907011870904394459064384062578767948602412649385218812677710810175089539719605669405533479209777180610867873166927164490446297262149482938465154706769724827380859263404533063579763248116271084903733280092315244609410277453453523911281532847197694496799912199273131821948255250798506956086042817701055365641042846551159190282364193104282884692507601022355113856885582915385998571605165983917484093302459454827021638950099950340012524453101713008503319088542290303450902004006154255814643241562409326743963666167842138795731504007723706768553551151360566058076292608010755663484439476544251462999158274332603513710679471663537782453119770784489120956098858665242684997315462081518077702915643795309329781367816886988841790017123307550834931117929853168076807792778037393327614631718381260672864631308076093764120415174772327282908045533514128537302345339651869056168816234386562659135620494706534341308561526169550266338065304571435930321051598903185761680951160477189336027437272506506106876851262559378815153668398845778804417204795919496962311559662476887676341318891545659980154185578422327497573791972733927703045956794397228036728108980180065602578795575182419093512053514570065312520444579297615722353585611509488010357351824132911342140478857371216823025292109792668728769356169467460743368360799144938107238568022797274699374608154594022887978847425096781862708556535041475963520537924288183102200963398894592182279932406935768156492033904474676439902748173406144494637851417013711818027554714291895600583308673305870113024332902882246631824735566224342390274121606348991969687344090723163208414563394444035040730968761383559241170348639486824101789951437550413314697731535020450452486405793922421240991413813727267422385952028420559555445304260738789245172405778847706013005869643064742086045723128837653746108280965158756609741818904606412204026120068181300554804974588969135524153132902538868224831713852287634704319809040332337411880857466406448595397073780810786707155700908293336717899363908381701458748920411799646816470699506366107832990061798232251052944312834398669409838178175617609725804794036094967598408255729511028151540352893392114332902129005372345702817298499873644184761222849831378516683585467499175669767586208961097824089139293135555379745638044384617929862881025802641537538234823776979582311695555044648859986228308245663951953179564505141463537061185664633072959605803293452790709588369166905138698476289791492583078482147061668836994834291938278503024088427535993984610994407100107093226191566272601721698173890006305562863166818948134962606601905365576691711477976502932507211304317877755314887910206741485224808529947393661444896536986474847677068441059659410790572500777645567171549598026730763540943793161537131415876560259536698506974900252562220736393114298145082643196363860751462470077690769901743068713015887089535833609517500661821961831518009423137418676129571371259381137323675310619629110367486202939842582239216960751838323319195707247412901223711848054797723184880606511955031925217596205369483918260602121459970749564729124187978481603015531258111908129058010030502795355688493044270014907793140753093365940560547065414309027079064232171497204137269189522961034105428934135109115128457773380439976572352972246748792757569326795296922549079325215296833425838065731584949163892833340213512828804895684506757271282417065966111125743547357202879812909616472577849358540254155352898177961783674476105094089837090792590610748591670283670824555606299081350403713721107749325922809077377147260823621097714146554756029008033283512434363431771002644911132323399476761348667849913713704994623922790702927222570658618712941191804683150030087235397085332510197031950298902949872810745051295455925370567551453666414172891780851878542892866772749194608797861252965574634668147949736955677889323401634253603315435377346564299253687258400568665942195859412065879560176146869742806600401011891837682835758114561418651356578286060737931808228844837256688683485011861546752401317705298194808775829406399813448717014580562910331411841491110457415907353259605286294931705342520735316432311172087715990992518536301884391759488696107727636602731943959223086317128552469925813799040852954318335240183959511267185655645300376235577248752317094628221410127070647054173565304627917337807416773197044503151178543959444271633539645474061748160437343744522117781032366461538255110929853981752824886650795800284515525309040380931447725606031793999231154556146214919208483362015746199235939597992558419308726019770023518173645451073013355632160612043157276878194206158655896736755604729366161913201389862202920626260552047817962180795413281816102809981817676728026212431368696947629878906561671339189344017549800804760967279991216232172061256135611746057051535543952474485764290718003018021587507904758528530987111773706463323780678898643849731671393890936939019258247529188519283915424172168994744644414841142970291986341703320371485409264148882714937774560930966038065416148796903843057405283222168524281539635019042113399129949081134946336059868526906000693595175926938208317588366682398601130394237268096504619497964383132567857440147104979725541709523236958152507432819447010363798654070535152269579600428825798848283864248508097309896053922739731966507595831242156050473632021158205697053562161635127954851747572387620797252154027267706469102784175896211906465953063469865239571727986686154113275768064093305104447156249552173251360898384132246576489294709524575873972015088528976510323124103900286115324200662607746453855719225915995819772100379473641701205936343624993373604406702756940588747596873508274680009180790575774795149919097120522593937335822882289598562098726491507816305089624735038629562284163652246828185234102972830280969650646702053380401787230131757874547816464362100630077403866799638780196800212862364052626875931458390033859324656632626164975873682426311473142313559008618049316877497995209190700172704256077901086844075179096663228398746761501361150631160277019445615965422377078343856664196204112294059252503457725875693796249130520763059766587571104109933123928432141505700908471451935024667186278784370395206003002467018511871496311706285287354352689922171883503041205449575665080569516984651342752127643683853431534160718556631267527225458759857577100569188855742170196398767057043264392143532514093818705792328244266063861614154543762229600258899603806179976391216295273911190032483814411781720070161474707924639129756970838817305853106026403058632522014846591920266745410752314725948137635113453328403903296617752094882615026721825210685884963622293209534058063588640552393974803447067736824920300062053275126332679314996788365507710856535441202936389063647740615831081258174501954226842184052035352880770742001835988361638190537310312966051392577829647692877357634029193654499979276544932532662278079746920897632076944120412850462777625881609144817262041998118369075301937816279401784090362968982343448884537622835767381071823621311308509129321061763023937078675345766366519417645169069478945951913286700699638214006085375238279201149721224297221939578243100544847245720303473901425134812754116393564018575136499960718166481580547779021750051578239443525764407879317416112573996225426682485787685305669014755233188087351385689417545059188090639605209432677031855044201284594353366719659615518456224924226845884873723704402319441358641767983078427812533156785138160379227644603191367192239677136187303607538030300352855294504722650802646544189703889372424112628207088893037387194790509220652793048045808606603913776022402228046996926515666777501012054934565088557047589154702354845269155533169303977339038282568295664284994247586524675924270163433372491032011824391151836531023518503124785663915467693116529175350523048224501185589280057011712892084199636985182530530409554563335399056406077839972692881044561611121634972988378465904350231077372093730195969198686876382232296123467852173550523482885244455640630330821040943085720318064344720660632407213461630478268193229882791418064799533069007647874789936155909769473832117292147993776165343297519405259280808400206553922751209234359541386495432348696901116111031165639374229532514794344740772831988005641684574583878839057152175028063412450229136785303834742820410844353840511211474807738154487065071935240001724105926930861231364375619952363208171580525405646662668056875385432949580658813639676169966412733189845519530268057683655712752007873461252326963262183636166503724714401083030563987319259596152656562191936791152482025032091124977762210026315724923474713009951790440239162509110175240200809109069369406739470239275405165300505590068747404985799708775389059068308452286566271322636793703270735357510142691747290684155489987352589058739710545543825232060610176235579978201033736108328149404990848728370134871627830010781838611655797731958096956492188891639381992128367277667150970164481740688246237086526131970795064710630805609666274214621938579565497995658493700510602177424571061541445169368205696022373435262036052727484145038587631413246962220221857556127661656685854123977407586913852338769996016982734097912184732185138250338407775555485560912094462955380404522550538765528928260749603498846851549460078084857471264431871586744949538427497712797528523416233599917936530615731000206621980972950573971592693113627496337452790602685554571044918124081485492604562152801419751579768864451770391876003714890185746074538594108988908391568859439192058154963804998566070191794462823682878762725266860637962976768336038507290305300334625976059264801271909637394224170025781519183879934288607679169402036736454622250974869430077916327462394949424779268838859978259681118867244629546816677595250465185000851289075986409008168311838654146511023206875586406522336911333383805501363360730482720927321640339847231878951198575634718544124577554824190711921927074063949878223902917734073046127435680289655051424071571444478757147024117159785932386248302558663014294019624114310403298149996994820644364540285888186222206506093186574961055319076625555556778358515787189081098025345890854535936967753384275112047829498397073935414645531485919114283081562454441301337058759001676819767587097456208319443405993396210165900939470199739254963358581354569421593737234346069070143567690900511887171097356423221876679066928568844422452605944499065900045443904627973651421123898023275749907742695747380157898926877990051139598017038206433456619105296223189633233152269688583205847500986382143772089738164592659985442571485378237108403575048950219989039330859084291178886506060063490234278145669236573581415550505711224322606898474375356541866292433567100192390049955955914026938402082860134342757012372813059984559236047636045036298821242053860574044798004537879181955920157450199033982324571189958020572555102985580540919446425440360737910934907818148587053914253040938905585056754148647393583877857045287228227353697155824596831574352226633571083368262355072328093212683599729178669284292993436595495885441423209196542422507272541178427620747459914358025553837632435052880199767902895730407716898991000167583501023577365248471326385080334097213929301786661899809630805668899153603482927052346046378530005621020519211104383813951800110411585048183760991779326924937671960445473293659792310839874483681714045114075657658878776286074710034482225349552596599207464240732961482928434733672808326155784881711209377090215949313055945342362079963842364492357804904501781242102977000846834264129607756540536387588295804931129550033888296957841623949810997078168811825317386445761619325819437673904493638211886288302937552897032398680850560619686307849640366183786865067323127561876660216879254785289978675423176055315883316132963899903528785207267968446457845759204147395187537969710933445845563286431960136388810681798036510820729112839829913997315419650904142217976983810255090362642173147762579708113979077235488462124434635824797391189025506242608461287793404075339266945160109009663092124202158056347374067771247678126265179496621059580345723174305627707092699466271581776403690513480623016846905661415663646621073824695350275157979401795734479722497730279404429462178840094911275600199763267484838172642481475862887826062426194050045864968824391190366894244044024409229371338379208391199943837456827165355831188862003900151301353674928103916351748944410598988477553846868101005054054960962452557403519866541100897877395163000017947088651998080072058052033651840120714837208810225821980251475887144958707180064771116101998799215995706708043261684952786325506748735197153602972437008715756993812474368534466324039632406121973511282480603234759571887970861929259139045767052558285650977631467177409822043572869283825160755775752002718224774470620438146507849793904138648686265963387277319143068807754136711582869366406708157103999620736880576546622662211703821686988912861534217455032903292841252398821428630976895644780126668174709871444996153569892608425816034761498865843705039626643354997616211528057930687654180790947067183235650899437445198039907397269819940458412732030088438372990168778124184464518320804453427654204064834146218822706583024568395249254488852196384557547387140467337222950422532959330200580556661504595001981027262503214715369265763467516145912433144585087653947392951021580120906831469983319947074025292163781253528359767615471301903904264510358437202150999247617493173580386649282494795813025789414741117678682749605335808150558325782564507429818197452544432724983045343720670628282767607461268028558666436689320370893716124556953400776427778787837783984504237724265362406597584712641990209025579420140936859884466992035615813092978389880813441196916486195555246759363967365282562354329844109583299832847299513642511475825967291293281203421978806217257432840645645790206853668792558656063068640686236161069800590993615594905353250767095228683847549339024162563839586273575498300051656872210324838964673280552989800954422932816936064754261553954558672659209800929432566972035821181867598441672718825068147218106522074446275125715201476119826645588928129585921539733923433487073339281301385118274748307882308862851141723872369977680494139646040202484144499039990959875071831469508732144945893090181355718273605000576401789097010948077129029251167495802231779120559163392396894565270011493281145839681786275908323743704278218583447919689699640939147991507558748318241170235187871917082567253643087510031116554535034590306709845745440298744728259585447406767200368676591175570050932981349403886564791062987804294166334439742458775195878776967421405616659675960406647901454283674423196408700107272271898195409274326907428980890910771481994306984059428468499961404918894631497859550256794302506206978494810870378709017312640607590525323136269245211000277830775854505390005741867825881349544114619827257700855285412183494935216271107392057791131379096766612057106318842367551594937996297304786876035941582196574773457699233560145291090733380917935811494731851484229424367787050359830803077560581447044902681871295986540775343843731582222209076107054385975454939613063613255772554201865806057203874809697543606489813455588576464018317050372550324986157488032749757612019260048451436860781352212095678772563703380745065816403498843417815734058764922263789230035456720464820792140264595873222220463800851129361845089686215458800104708036172728968398835198500058005967116415516012690459099291330029500502138454133232181264442407659301543676350536145622969720231308936655380369798059877326973456419614790068979045877914776248910789522554850883331263956499822525479505121544356179954725638819823312677788654607461597760936635824228532922964648450103124119602014790641662779913858335945723100779501753923877332008407911536547790690970240698819516579256506214243840510208079289422936128881447986647945821613268756674034284847804787007569949951500044624336304976946985479140935244162240745462539133341534849248643770024787429574590386556798528000826131066994008345062760909816805535308653193061297552489206667315516818211250472834357967725018148216307200251889247953093086716778333100535713433092267720043271345535627378796672595831559651524693741920443074188219985216819034841039506357274819713927362913467973467185236568600471973603285941856305552828366598118058579663553857622535821948470249636422494557214244999101261204335435403540413136677910011906715210670156165938135574871248343354213371647001370244126907114539339395556889252000010763169690970873793576124936771496368953736034051519512115111645843928149889221983174539075506946834422161311016326871429085832952021691329495645534682962037115425368153942856233203089506076742654183003521664384347920303982976546596233329292861851929995751130790688649654014938423786127315373024889500611940265767462127299705878585487576274626639992741694475933968462863185376426507694131248416536003373175924239213231194195038786040132305297498005429331508108990673857327829228914773710288895258160522628998799630067117124274702886691228264652650103838515184247963706538475455145947144475321791623677697229171271303482451451643428254444864328838004720481544620524659037318896727790753515783053109956816180755055959873405559549235246840590120369391655096289904044787527862516604439396275454951555657643317779523397633673495391832400453016611310927092293775747568182844087967005392832553056480749311024331403935248382542462702728726333879611394155212721027910603260279804621807048746562890123990383511954354373589006333679933644342000270347454852330014283254238445538500010184352337075992430296426491769052447506370134001017525479643937004419078882209796406861497293672132357249476305191946545043422457855361186886064759943147312536583147338038432560660364446083574516475301020394129934146733115822673742791162877566072296208947954882713947361519810223911821739666222309982167273486486039405012183146150490057201679919553324208154983123225845944335040404240815024727287254288008111853735048004068504234087205023594309214876490060291669972867556497476918108788878672083506107697097733549570289694506369701153014107634536124700062524589754929861835291599213873122998705654606952849544698218474085615752486277167127508076428041336881581161420014380708170591943696933676535791268578133561119780144718602965186487497093136986054381811569942735693565177598506996890834216072476418566072280015981212081806212842120719899474792080995106201720862265531665058494370636719438156193137724634402803865809891922389149882784486312323927678972308830675244771159087933441126701740555610177560920452219952020379318279063892123120635214346396325515736645468707257261097871564333645649397803965156485825057115078822789627748152651144422584318049857610118965758661094994840064597819012697449064827610844747346135468845934405194062164223048647202521579256227210497979978308386619476359497283578629831950923374688188618071757196742984256787440782278475581900342570624413908652699098794506553529617753627038036696449366017464665651955407445845456254988916495850765737994712655471816423244117257638097764356025418308525942034406340852233295903718019803908324940540131443050887174569809155732807033348164562678852692093453485674948902077599305843287514605516474248394264434429794805131130772931394117744479813651622368371590336405705948696574899177638619332478478727950566816928943601201247150673587783087133188543925391777783268506827739818532919614651221359369850059649238639974247559641351954116037111509332655124753462548169047387332831460195533015276678714324766415113531870965392961712506105334188412095237852230947505139003556489007291591776148606335750058325940638610271367359037819057745446442533417924708520214338131412077469679902311159792566927237426391515530316753313884694782638269375314589042485748458350977507861145845798910677019574387457269435307894961290913067475452418578594015904281909213371764295771236622469296371385388298560641292254480673189818700333768144318247783621490779119333694007814989878791371623995202779832074730336685385131893957565338684018241066896913955882165561785538794519065029375479552293203659106322851880254858554414838423890614877309770416137070375606839300554911135199422341901600673340632136949567548605301217512187971587757509200918548645879208385830904827646636825355214408501317092689396116952652109400502828227273113198273913658122276962192579949664154355199042910274082380708359681744671640703288063737354384972812689458087164912919604572584357809111439112039865426621083392928509976100628013404715663602754906049420171494611436387549100463910556242272788041061147091791788162790907816558861094193285225917943608070830760898739982521875455370489504388745379335584171598550866107909511573745020233091093088827547402279781023146572008479619612138765972569412147716518814889924922898751607933818277634644012122085693955545386412035906248422049732556291743716315940946066395319172470839863203840526176488294026694848367468163537506585609943572944704981855102559122876084164231496286805822672838833528560383530985958085150841820929811195920706769230373697945057333326153165466303964135131546854276189654241560196831322067909269493359422701028739338341684032312391233387378406220632183559014984394345647070967565454428224251819132378680786818454776522694303834489696997528094727448915891552674336772469651099818374019772254596941005299519866230648422781596058835618741080124387192341840158246421431779230620304811293075449722730717427730236749573545996439193362907101245859985078080395053105005087065632509641157781782686116348193721925013875738211029434392569661545784949601410797774874965206820623092206930121143637158004941561266130594512983431808742382518374158659465047738000694980783019809840113846879420792119910253121444263573153148932158033970856872828193619712922816496331905032403381002727933021344935925953964683705365014321435245822953190415411022307848794222264173023067299658727194190469252680847560045936598647286066504972650458224433468275785103672033835183766004409064744859704797033325387271173054271350456179925190031254807218634425575620869121456205673325504446222372319208348306006715109888131534889212875784798638107218860193856348077549986699054537261529100448022727972291367852833527490631822202835491526258544544468049979354141861200925679044650311503052773411220543428108503863251161530907243164578121383975592948946909052734880441109366308534780491713956403604471094678432040937913568206838766277696167165902561827292611849721322026857684480122257278680500321523329406293837520965012953550642888665356176283659765955417306045169652946033344887728715380263653282166703681260542965456986503358757904520171533174599516053025546702783380088389564547862185859407354820001425299806986119939448606116047229615176124658128190036275393481687882223310765552456323838997798729523859995583166028829251823710265027104615427609569156052730797270302983104108908517238690855309578913758653295284854782245779433129706688592247162153763113960824529202396899731113731922231862651310109631513699633666804754617377857263376771642187330056505691478936129495946894499521732015058845239317036407843932910305805328292180591921440586822609424517650168116662308024381886271023041682685258982240753337167066237653860841526098408396579129661154755231697046166828165082096039058844025435160222717722289648072066945009091542066572747207790820564029641823461286727747033228586117984317012128238684106915538123851901289897828386348422895014393787205433011015737979256576763111474012919245228588638205521594012830688633416345309782790515801088786446687039160728294029804680326509032596027681441311827476961078032325998600660836326314694807674002470453746416900205384626406569516836557572995510829197309616142180108647690254000278720980114977336701568419245551829930352173023679008316481435429206144296240916274840671887805321445627072316059413937465593068331995153734840008549990260073732297065505682452572511925135102979315129264404531856073778357422829276448578911130356266696106485691646372622896799688159797646220537635494945959740527387725016044792245686891671202860691513642027683645986693153548814322207223678606204535574366322227114995210561640646934556441783780346694102594832636236219843188703658030566606058294123818767402528235216442043171107229545898763755488022016532845908916649142695357565089828789144090935248814639741538539069301512422316612740173204602888726965769469830298060513160951289249155196707234254268157716190265306793685367584763860443266972034842391183526049082454016506189165507025177756861434834773856459128939602648050518605519431483511274723820980792609814891177023626951011565338053033124340625591719679029337238421418656136911388436348632791267912480865556167687036175633953784183453528704061432127152863165863428381149090831510615964830454515688846927513206930643983869531475363051105220046377473016235194178272858588109248753023657419328270421830670418219902432498215254411218035464888126196677436464157066599439731823631863368450758235959980144059344586762061254741138194414673737305036436120322100639194732770384926193885233642190315498123979377839859073031983151993773701140084329574719288732930615457977561460495469245008862679753282379381484130622763114963563437988425166966937747829300349976386212471412466367161034789899026630850223362895316707936350038676577482447586138189018577461917110132208426001027621092899533915469945773135437006708299908493699279901532957520482051787824065658990506829426569640588669095756128486609237738166979419810910189947201677100399477695604079014937960897272578750612822526942190687137423177137063651998889144063865081076394940376568727630971160432332374733447276366948026361423902928963914627882688322987686106533508802292088935521844308828426754908410526343498377045849911734598267125673996688087659129326739276400424673493544915531263473760253728883344265127374656916944504261663663562012293938090056296873665734822499650579691386780933732719535743729877879617802412190719633546521233004880011820685743881572215922066999713190699536580297432417680510008211566574889488006397100491355458253708185241027187972396639062100650184180178518606439346564071298127892412624729244156983089455083701662124458035237794890974441458062922228805554764137639581617474601284958249255776939982817330590649489743433252524076610686918233434415806197392427766332964846759029494039531579434867586237916201615300608769872447232175041635395317908895512784526710079032133117397487001435571479166412698500784954986969768610956936483954320852127552529277925097147213199008296256210403910575621816747113904962957930437691747288192714989870501399590022340178340174677189855975526027800424596921849807629632555980465296023053469250469706918498500297170355721676364272548043734710156500788406815197278051576398318747544529079574458117919173351632559477661183938010572520205639306357638740336801621076224511860475765402133087938292982708467959532741604899760252434924049783515586697094982344800642428137038366689709973855794778641234257258122302327398856657996942859877489861578375730676125101188172555253442553927182106993061355168103324363912800029787417003287626614287796395622314206684097257473681487799238538802243796010881276755901613272633090968159705761690352996868432142140812152201149326754770046538830800410857785172988527969325894411596401936958320174793862969257287521566784423817337104078329134206384767750176403171377876478661425784881779877331437564360743481925716875293758882489567082275332503285887973460832937659315666870806872985143867961593636700365210640794432871496639089812283466916654592909984142578542755693892303832258766886744879367917274038748868749697016756334528267885150194831319561891401975968859265587571129359524362823791328576196004758118122750156771550130410352624813859918809018931396307940723471003138956381377627872288288765553305497056495364758691866771251855047624452299855623036345980446718482326350175619345933949147468608042315665702016298019024192921680482558923171516801060685346182791721692020912900434234943162133465660079911005223095272926761372477014895411890128108253306184716066922718007587150352916258747038353866880458073238953257444031292124019517099490909213516996978796337397870949678428092664740017988310645996275840901557662214695738637378685492705119297893464961075377158133078257818326278576552559161155375110443944034161392519762868463926863606465215279658956597677919427556554887647276274535086524556842415640725746336389385804709574261223828858562033350329967644519199330959208529204939018978392953592769225841069704101190582510166643619945227217564098877521992587229271741477947247785860596662769937554148552976435230810909984139563099818369863391255945919693836512560686136075704197611602025424577876784349398813583125986671157960928762270193761415672040145129037462982784575779742718655294924482642126625299409532413677792881646294640295169633112999077964277866247940118597763287099386420371588039365335403917238443826487729377141332470802198996096050565972940282042686516657270583204030754170490986028367558061076946291436016218722643695505924317448865284239576442343737861926360946850383123453612978057633123637154344673782107843168055468978267813917370861748990706335984150350178840777062620140767544087229671524959850809828095088655890875708394772994063947221410937118358315770725365785070420708550104021256756994703480820968311382112309832075194045892830893466639940362566242205390250183829801623149632849255221985853754416367884962686322693993043159446441745655714168412287286167285949389173250129396429779667413584548020552913868208685603457840951005483699571899204250057566938055115261124490023908786523767930542984669644957675033544643024741497431465393132200863379277449972495410820329135553167753987986718437362978204524262181853441990038329469932614244630493800343630423746273835986923874933990665456588674247786154705939023732148570688449165593454431691946537936482966678896776863451005053837299325160588766663820280038376469472214063667926967877958795575546043863642493623117257356593280651093005717025622917039542249637598620376070158214533061803496180462992101541184135575989402825637496957518677449560116691760002582419293705217362637659524288072523138706924443718360122354676909016604337229553002525094011253406368056753352812222953461867624154752617605015141047289084997188531212845738417273420476841757106501783207337503517205292405608751673074371742630678094937433875194917682103985073296025309793332120520075722414684219608237038701353183246213797455938371780032223072147615466357285707920983608449346260820150226035109263369284090160953153048876520398255931647643660957964974487755005826349638460994100978436153862632821931658619314085914876935169298941701440553048331621933560489522239444778246793113814591963701734689329414757469751700601609263303267003206194995994506825539703482141183043954048158659509188347684596605426809931157749791335427434635452395982749306980143377876613359202330321404375182557431816420700265377839358098362289636816170989724266110355180511207190382370843585317176536430093792375339633130564426872366626083412445614349004391635355471341862419048579583448034899853853298738731434750950606658409557337360027525943800520879069641104418114374208691902745557421368014089249625514615805507051308078692870336579824903110277253021622690847550390556373201440332240358647671408322005801892272933386183280868338260056516810944326623629639811015625512044704326681986727759875436792198822467651048698235163469085501604097660434645939179732448573605000934733206984314938930984377871197588120671266886095153156509210035339692637597896901412795595063289190444695084523778627004949237321985693857219689273343590692832975188790581589969315524949983850902948438716925269540686411953121260447355136834771844114355445596036071637405163484220438167770312690220550985079578162735308521278852332215260271980513875584937618869071885450307112413322464482207384161753388727268872709504621948581861434778929668679278075108240591573916353374010715881851505186386079340998251744510838810207248546623550169640221736807915222220427550912583206090008432054191185645271904787872083253180992189649232078068908068133766877304701391268759999546948219907223924676316542214821813416798896256325755762283220425204460999625088004362408504293353478719151248899890090496070439634462289562868723549517102889630001699275472244989138018451057861555273055094098556105552950122048440576442016771670666333759065042774299117638778616157441458333973327213076576091519960320155087419323091758230075473562967910798173930466748288010090215688134115562526468850377983069482416669067789101222273890365116601047408318880989712070406971051023143433718071002031206131486275287749030045807195444263720242623501657027680896039510440427980500772859723959784931222304591436622755201626698152907111582464417813272549853079363165634687120799526578449163703071587328195206768610982496168519027598357343876052076919952094697807674096598463969356268843325193715630172273741896827031304972444803462970653541311812927726902350099967990738591517300346961380726609300432487632276376067291229845683219649185257568115616138668265627712491403332250861393667959030567570340733987099560276184118149969919515395527570563168124614787358399210850184166706231732303480122067680727217804499911245620460544910432969408065167587005580793560029988701924407331083772672518954041770979819539870524312913930770091022955490367284999241669469848018033085270744536442568084549655379813870404625676591662863866689074316833339976086578268882709235122443748860703802770671663784106047660861106759859766225529845425340480333388919219338814430844280962051571919649810709559419868930178142288453646187647249443043222325166854049722700243240342772764060793430807087004127698423808586666611316930079813790533907049606286341062953611804679782980431806639822308875001417488871968855812010468967155448044610746284455093982364746167471859054036433883278051060895265755007512832040297529018485191674646219242722747914272328271579531986430361776069426984307897084231730544140388228283783027741325409246715984984992736235821648541084931823088805827622157592811936250155563011678671443548558441497181447193668138825253970008417949574230163935409462747964722773458366184813868934684522471694263534404083717849192390271037626474180486493103378147062059538401605444199708006678360317911264589788473728946906571116848034741986858991461693644333823702638865918501377763963105822665361838470763163045420199424857973771284987576051228478587808125493053007954190961958559981099926226318808871269617664130650204311983984970312744016904900568115090587931076804662716189704763973561985570290442392401829406000557257347054314233024550580777424315117271338122079221236751736147771524903227812395720715316993748909399704244905880502698275136016913552679283595863451385807219727974501285757206000986634582759534086107596506953184326114676032231451154548438141166744055218548159905945152290762413699466842515193265763627357156465963507452395794876529110747812065540078146407218204009364740784534193054556311223030537164833778287379997847487941043694065338539713880986614169982543812415031844882222875353832458686892943168099991551788775047308534265585150438815112606495939454501536700691622641863385151227254454063901543920144748369208352664294858649391196408676870054336916207428512319096443181188593630887005639262261089132801092779556910511547057786496749743850999248679368580653351574170149969394253901144224191999328734634069375756998945995967520029741840561837485886186309802214444031518085282831792032421944177696096333497132691109023273832786510349050707859747446214696969779299344691825413207378050054149828852332563980507398433316572274564648802800555127433366277696303333578618386394948820727047055258153564967846298988045078022672062433659379187921191466061602555829184365606030777571097561354701357649997692434414452720774955447279378236852724051222375391605484690393168206334624527699600021064819320461707547963495014543692300434195318976030461725861982304267884651368264158754085532698147307702876142699627272937856662368312665236227639688106225477987525743112906611766446186336298620660279395683190393215063465029777805901189310209330084453041413592324607973328860276544933769575118330628205079168842181033681153088735690723167800267922860336069851950598210616969101432511438116149932889442582016517562676221623364481783630052991206840015629642460631558843635453967535159304743361667106780762539993837217432748527550777016042618292770650171149091929698470845121452966870653281551308458114518134116388790066880068985377912408417953236452939678364998692550329555758120194315539986302135736750365287178450464174382463637133958958118198795515349640903561177896856687128759869491018005900377875387368202540333354397411198239212567370227509300556837643119254895127918292296172774784032076559688087831831824506819990848370395346023548620995761019581695246909184179280197486666204256936550625479925066317634183469192475876330528274702423484900317926900323125647303125238872510513990783258522454972876258653533572598077775161797072920015198996710945739396706088206892075240905583873266161274649144706395184699674982135552316852878296494101474290200501327783103603700184286023618375264654171182740919670735594653291511655242303885472021615748604862093124839471221132296868579448088512044226850836103774841442757954290896210120354687576418634761202000994899287074798429803607445457232094815524542783614205954479906979360084218390472991707049159630964797199127408778198868847780168353767002126786619270310783371655549503245348634373014425942740875746271697328872067210551889105877886187481387170022576621282155831704408826759802827480898419756689537822946801857866187318006314245860010211518277064529967374225563651036489111908667481027881553982476819244248625592754335333829032252047045515134435542872833173138484324565402280021902819076164978423319016906202870362830939963635557666847108311584944281169102914573956961606065983695177597739608483856729819990923716617484040233500227031481787245120808316218516993069369234569835208025877399717914588694264451922685727144958193972397343351181795786821621033756874259614930284311036456247056021566443085684683680481426051991611276642610282670294037693778803059401932905648273673179151678601871394860435368625004534980817980182920438953129254297457288750594343365757479153388621690866450215594632682349697776677201464577194126439171050381811784901426674264022059905951898901988114442304191278134915602303433346555790092448664737056247229816087002759429091268000597158092576481194945174097349806955539867259305648578208428658732908121916957188755598697954052552493699272200518229132965014806021813680937603600993948918570555712195274930169554628191401104519560134703506010746375328458170305429743866984555500877782733969290416755274493297562024397495421712929804064500875178453982205463169284902929630494258871402971163179710400328702486630680728353553895661885845516255740244340677162659108949343922163502802210095152649602631244678952510971487993389033336473047864090686654703196251865551614877750460360943300118271651195126233330971104776265722957663491298552082588934255071920760579738802195866304117852786600778777341648817651152464083807004512545154606509895824726374454925900093222982957361674781855005210310371479473448474310168159986820527761483338680718685616862639584450992631832388366673714408198193929001626712975582983677223237102353169465283690452405094550722005606131234833871746623936807962547992162941336555092953188500825448914193311127631818304259078762223239488606830948951820932242305539929515401319015529819166343091772163605508915522286416750500229334980293523762913621826619650821398904430760629276300264014603332239451545867835858168201996718379295652283231241048981276230370146725483481719483021041740077507818334556374446104250769761992279848813358029394144639913220567935132509242224024668846317484062430138643431614480284217451079675762848348676366615998954204064065935504251073687965317354288251816476368316460938403226214556462477848015260711971079730642720506033884443152651157493026718831591683499349168678894221587281580848384327444978043783094234113096584140599793577102213948921682302105288682233130984686595173238956466481751894426217819321388835170447266835429853886541425873056392630091955807124110706299784710305632642118322648693025964937485541483763468725028671460421329916704500218592913736860128347621176881188220129045249672408639730985759454043668704585107757491498055218164261003010497371158904205156790585618799265592970232233957474374018318541039228679679115141699171299006960517294800279896048998449260401879831950961398693363425513423220909170617564117490744054444271114916810736411717945929747858651302226423008772766275206497075832240046568198408317779090211029406510507197655056588746275097429664662786273111848167635777339001386246926839754842585176769388271160694489089231764392909584977242283963637489335101959779323377424228914972003439426965048277070449807985423060486487284734471962004739186467692789441229674327362062500509444946174018372522423537325454824979937668264311205215272610974007316813287722110981752095363440528729574315528878611009841045706942060762871417923644521127333420399224365101015716293489692750580856486426028216897975914326833533989468870527848771989070391386511323957261194838475222824665946434517850672491364335040785054233190025461988603056325051637853479376802546283094105050374786995842801895946877684166522552270456437006187992754064627943741159381774759769092084287333334008626051275272690287680718883938517040310018045793715589232320009474620064768899151236798225948381565546318808791051012130819674362043021041082079059608626494868896057819486917904300209862649470675060272269305988171439746742006467303878155994620087119592518986921147635923129541236194561377187685270155347785420453870835248401971714332436244060440571427265136459144863507725518938365841718101458674365156286441454702485112511915203371117397762061732306524244392573435323961452841043660201697820005887836495574915187562827555521875842785889402363695169846803724788507038799573991826889029518729975409544240365881545451568288676615378481982340729346083545864509306564001034766016681087059659116416368135952104341990705256971098911373118627050359410405847557203162177760921265875853657771787948639553015571040334415841921283959938854722152767738854603360205571781884662009484492347378267634588587810750899871762281560375222197806516615817245201522877495657287898022102706961146527090193578869893855191958693741053205240274563751923641833646399243955427226227119498514547022863248408281820443930851488776941562372997412693390480633101168746411470319284350912456073418122053011574357840986821948797800794831948251812208705908217412683200852476591417966834510924011898317034511575190524888756504367086850048045343517138081565758157412688343330236523795887286072590101613934769275511102562260524407909391965200287419931150668631941599848637300422185145231292098530183071413246894318398425218448553809208085862734691149770905523658975625310802783623786972738911630918934237058640150773099578381802302521020166448628718378251987314855963266453786454010040468988763618573655954707453810118712356912827237940159626453009806338736445582674595553278888830801030866987991531750558139366862556809903799761910064968994539096407858563136395276194163452508394122638754479062664184295397137559710695203669894795907204585900671860450107788976629420476278179893153532110017417844260617232664022768261148887117639390313215504008480621377049118045669628247698967653098589915486512790906015624099726436269916943205254883423590090333586296237253421133873676939510310911489443673473722856490354226061172863633711823004751015100603077091378086662959321183810589057018400710748075386124334457023700106021450945747643356472229083867750984927011927118814468059492351128702055448161199815493844131029903027322360671349073298436728021569384152220088947504617093984803609891383164553878599272215546790874723807174290055440089436962895062809749244267781842445360069925489692993246093886942423970105402957587195645374440925228488754256150643128079283720364123074082122308759234108575338230843150161844435881676044989078151857304901677778039553347555937162685456019311008341675664438923635965971075190070409250846225074361172865248663733263592110314128517611550507383486597087011301207844957866164890440005625665817534790418105297295686721629121986825856243745330609352620913061660907923957338253692395887565694687155518876519256660465674614016349480709618786423537893081288379612575355759060647349073638528631758614744908337739397123335515988426081225802287966210573971963424385096389730416909916217703624779358206436119267690789029914526048568211647905366623158737255393010621201624340243711757236455120786115306570809483896733403571768872328504215928911161464002468774140220319183060741100990385281215922455666584044132523659183237417163343341688036130142246538229327883200784740531127751280555351193400440306762966026851568173548711343641330946486420701472896892963167160189808860280728053870715004487205838725359147883847549086003316063576191679547887570342781877101311302909457856337822839697868230802995111208516276193529372727189823792036728720795524049681211577962538799314023639931652479496765489444784988880332701390827902975104219325922907431315903633005675126124954577508269504512511309007162418767014494711571561330510009182211818063044146442057632336189490905377661459443017644825919711355019272183248799064946302696553728453861793831774178761900401393964755137805250381053196260668183266827168921174313584521852786085534602874486100989407582170001413212215015643054892795773530651683483683742099588799582908446162274415812501167437326740522113589252783610846689299699379267482556431360233025218119194377046233490779069886584699729954461727145335050916719761747054831435956626838502237155053168723525107833561628689609592469772520621461592940966603415509101243600999515866736363823117530022579202400082734139873792250787360092454399841931444413081618918138264145321653674665156237893616969451696591054879929014842620859855462291161619214251253229162827461803527565387071680339242544377026076019248392777237551382023429575384801808446117800216184736878569946764226051752009859276279733028705505223913813624790799972283530617891869011035636662472701637264414617063787678766149182129237511785135453066381262707734830422290595590362938548646055226233382027034021476421561742492380063884331082689150687386516972762505769783519526275642098318312681859255951156231554703354529012368117412080195148610415277241067811793364160092258619929288647807395161226929548199738118039972039224105253531713822851441049893626868256758341859946580060306747004062067391964885364338166920963633188451368485795887321562867534795607715737804930781173733164259221889261102140344878862709222733005976556224960544152980575026002811660744508579167369862541314800242947384758390915789371684745715494037104237062851735155240294726530710453393041731427548328621097665290054386267940878530162353238624877517158910744613014924343090476134280250256167444174335973210243232302574206150492754705763458732692908352741061865867634965240006029263845949442374312036817618852897514426587669797575945818546106577480831050228160716708820365339720115159246785600286911619391505582953505827973646937555738718635677666567086332314698797258094053479105403109608043821371285890466561409463439531096530527786154720854906725736078261380668000497940327652556969434234946671378507318073540363263577865518040724131442217034090988564461948454764448950684328824535751503134577158303771475230524873297713489524983420297399729194588316004520636182260860637285139241610165706271722047585666046667547807002716711471409999138477953607706458280910459331070277347939284599504890871238067036228668539515586683559902850978296830104530613692629375648268752345041434792317654936121039297121481633621480412134467420314347494001964322083878548530448098634128305462522789083852021044445606933855128074964163595575070745723936264062315688485925504036278304960862293874148018924207577793113530876196413260583532686491548523277656962482880378916928189936681780886092401457705817535359351500601526687652770533107815248934403583098423438840214116690882816985052971325318211982344696795074233970870164467742890406610821211051120181551654853763378984500557923908178322363785398557610953785712915697779579729295326245893259859027607535224120839531702030994527024008846572376063444376531561945154349018123874445384378827040187239797956646494971732172715483794249758922994086832705274982615628323190805073100166186381219099164976657810057239456256505303252708774890767302352181706108668071348638076440698798561938343613478792498340509815760144464521828500094322553241228381375748198676165552110311097768566128227524269571724419829758425175673839510483965862000409970342024890288017809176004727955579442622071955288695302452899796061945082086730808278399685463983927042637247404944109751367869332733717546036087962921453862604627119323947123877006167112560268232711745637884826275428310169180754479174138056788338209261010032061130014549694917932090626981894353444570855447616772485305825869492169260137066791910028136375097619762083500774105517320102924256329743258514522317332811278327332681748868262373024066753984111318883178338562439799973575591124860751444036244244025009691224592370871459838874477167984780629081695276104422630135080490691492327588169018964909965953064792018695580850363699776938432458083857212056323419765845534928662960090446225065623753795021049896320137705910610894808074965496422984988297595412699139573237300003478466328501913354714172356670399855428442524948281937415258622694069490045191184931542256301795478619997892628474236509595992068675014910589753751902770084071102638008262371155966940352896224762472762910486164288712258706974616677669143528676293683860930260754933477944388587635840745475577690719023645720019662745912754582257040710154293601968063662896143099067480363918603212124497076138112476950050626771684997337388909692985668707218927123397777806349014992117259859046429513246054071527906891315806435503506046438548251702618536433131720209150411703230895745851025743547273132578406391313707525182259352733983150537844466606980880118821806837549909071714268692364672175580146600428178129621354651171304737319927716455181628120199507624682499244962143614258718849911802000381123581321429873586214637691764682282448166896531541784756945883533731509499144438841813442055348546068587894022371863226910518057569963462007030459192128697260478795592488260198720929192224178198426713114314585400218672417225910865042964297037479996537908288619185100290457480271769605607279169296745588377440965365767898675849569691152750852406625167077922325712086211693065573525933677375400668076121677980499879805051152968729414865830306491228329799741825913558033374598632922616305614559690120996291697697384235189871255930758353694979503400244215634627463413126017053135912653500554003695132832205460722423807789975291625323733539531763919230009571567605560126895423951798414467698590173546921726312174730515834049113142877073354765201385304391671807688359612987816478648508737554645998783306651482187877209394949870650777177804907362241603250727699648347035621132507989683073216157365426139136968940807918941656098689427807904554470026621907335901725369448892626150046837845281486481043555248493365229912403938161304101855391749666390584937991693511502896799522108495495614586905709129326249417400075167489637406884503442989484402426744612383198197253576130257386656460852942651378670066046170625967153639417137745175938761995043821568211696527946372256865811935240606059399921256093652215298926174229982966733918260919027206224426188791715445423456739597704693872200909849529125157027645154337906338716103394499383799559362371712817712846567554341828863631623041223517008180498835820557962417916925588561571054291020179277683912657014422724838155497402562159900836493684069992667361561597528034570142205879376450420227101776006183655916787731919708098117411356365974644041210375609255871417679395343026543792259630060190791847161348919426761207680572216736166282643366905527389551708167893058388285706131936127302629941487203915069608632032504957035977624743171733184115427626163964246966378781315406504320581922571159873728555974394373311909753535710462402734351306693159571327823668883432995947955407401044686221376178197280014306665931432833637324088105335296081049300163195082759841763083269637172479730717994232889041521089156149642544829526287170085956070088712011295094046161950192028496366210059797557418000298132653324386568631109920888562985156657776425524123978357994804491846699131675888341252240630982732604349508042392266213607718498644768458604165933643045517417788610688567975192560845296159750091191140577436085416363661570132602491874372817460312124444998765406874460992289018802436646898134984378955107556634377247983307279041482287322666517592667908893204186059155707071074149572747352030648780779394406373182166741317174782777963921549227789575788343323600182736232960343208079396608667555915815247481723556862687681358619781340503315323102372753412893865298805995316123245253774360397490750773824514553431509445306225466985248952595144084118850204699742171671842879550852980800403358592341480826772028784427784871577759897346081350005730751932864828161192690013207701914104484025139654261250004056319178036673460798551634615682564525018273556333679463800668108566055458172547856168855099365991547413085216521439883104866688340329821935885781873946625912485470504617866167869940915685133535009246376578650567997389051775429170659797435012849441021431238331575423809017942070577283778373848575665533057864332032846517241834049965673821363648157549189728322330194181244814449823157377607835480830829944856006202222398282122193122174507277465009639554084735335752166031810517944772970182343715098254820076597120279472524651073538848154789647801158070093795242759180188885274402391060745206222064875970465602732320566157255761622651810176035018208505679481629157870117289212433798407820116580220161847313251450891003130260822100723266589925141279375328330025625744210984267529839379198653954990487873553189713715655632261355326620767184729002152757791757176676212827411234276339184307105570501737785478757699063555544553829647019104406923812335288936753508438918902641966950734578310350739468318149069238764425666490939136308361129588397483758616530297444906105048701665076314125565338089839293711155442619610071360561473882669631136081191628904189283787650139567033445831158996080520246650452686631412915047933547085439941769800998990814524256574229225265943614634101291608775994088479628688561732879806745787379157077689917116609068499565748748695958403813144954341298679985494465551856289971466616848894187709426957045310900473633138387538055847739328254030095734467972972271858475949687873306484298748029997434342743386479007134912416547287599429969319947031166343075910926609990999232544103550743373241959784602466064844951405170140635262733397886434748170437395553226244424145018144120446958945210017620812824840360943258862895632446113547130059203134142629485054021026778740265492107943312103843037919769019951042095628271621665175685435268755072311914666542978668153428766787633928633710281478051452920823407906465137201423545437087806513061613154765513692026509845810911338399912306189186738362258931776160647860450480386978653647352327283072452517861645174956045412091250133590374093062093320903661868414224126802286214196228842998931638469699578279724623381605247010067108357496413236169672197017145117278869237702677370192085433472449452925173050829020120853849735193394047344799409412702209634979018370948701158329305831543516013313110209284629930958276614793113663793020367503705564940916942527428853960414648116438352996461032640721887587616093777671558338546152957903094375000740198607647327622454900194582310779585966336212005285962001575360099971057053362101129692446842494645698047941763830327519195821954218692530987506438172023559238385622781433115109951221968481617700138632402172555033445431047967069224134390684205717992601134766136871199682461914928929239437741164361413731405336210934317641868648085283509959007854717886697791920923680595365180175884050542720360837879251090308540339381284510974319129805977446036149162923322805702704286410486260465409094054706282986860837228635593948716478601419762770126911341422244411378954450220654762380104470400348215030435697965378073378813047277434772888393889225460354504874100496581577075958948523750566773060436345443694970795826729067289066672015388321830769829670999303527274568911482279401148054554889855579598321323728405232085333847060385937976785074590196352649311872825721198944534052561753542762894230288973836660316223071052083230373221118961599121837951265914698292187794057860214167798768862679980814723321642585019610615128463670023637031900871313652408418393830261378415981225576481556465476410142823852766416478980299135511999444597155607258007604580980530499068913697936637261733878643604291553989120116856399189187706238842242296464461823731122868668870579155842939832511346149055578038851557711034865194299886295075206845878042994636359064133513850362049701832236458405191691468577679043664667678293944583163636835008762858355570978472900824005855340908511179091006347372363169371968625969773032593488123933124421684939516461495537847166879779563294439570054385835030326693958420862771400388017236591669799887700456740308891251315658544282667756155538333650217167876400093519108070418093754726454873135551786754359881386215829272094153177502351522710034292396857535286102744066008304388152446639587118973020418302251453030199207099639103615997443594738601658940776840796669671273794616088355590200289087203958824994848025816282966300196874936155955580524202864908276300131539112402831371216074675757176145102431178502641009929109639104159578405711577407947332382414358305347860571608306890868711649941716532398985640108771786332581362229620067953021762254815008679625338750549827428029564007752260491519452743593090314324635633332480883453816662049926911630766968274209896457542787237158274953638708011334780213247678731557814697926463513257429982947448907761558071354639200051897599137093458532430269024692880845272109831363415768330908855203944134257432993089514418016717829824855622674995729907261794487338170394599926779672466825344927248363496501683399931513378922066741994644683418729425642857610087027428572499997683313893656938683201172584081645319919880860186821621777448207381648303277395504014496152058119179244293505162652325113668368815972065758141160903634127243029718820061965219222688013451350200219273381882842367936701547808531023921064873521540680016337025208906566346119591547459134480612153997207325566288553719651031646737245952003469773195485320284121375260923348357207986802325394473292141074811672848927007598300163931311395385146202114723572560945159357907145566085274879823776064173747814250655707966196687191025422303427667772630810111843476069558250580740085409134202243483683519287991380953647479167932670618938354641405304543737230828903761971112834836500359949452091382734362277238750913359656214468029223594868422535858037674150771326675951142391334564281960484839204626157795483390861374411031485773428576365436650942478885318978402413619991282122525219270570508364389384855525080096476995015086127752208394575389122294186278563774042658223089795187771110175377244202075838471463044452534476762949885558674301263280682328998401283169899987575848205835112289442381350489151893726416735108556169658363904514417934620476910535617336274137943655139964354154562707053721281027319914718692629365487211952259435181900149727422035482155419798825551553034363595766473921214060021370021933478425054235152983799688805428419172442541620972060349697186129898773752827690141738541870151443752209416802117895533857662776216195586304132236435538199015723237841767720565192215643220033247570353001908366005268424004239739410633603875393589784377216229196906172811238239037617339260550535016218836705113415987387669807468273880823590161440826630741643083177260679124725162817347008663439534685451404231499246005806246967285245556756635736046284580479524279217076800333641869391802392772147653987705091775581673857051275301616790407902572597544032276016321505550506969226988708984573524958795675374237646764003447389177988581612028440214218972825350079611087917598461418470205450609934804388229228798920398296029262518500389227890037776672639162624622807665959406302134026915013093016066653599041722339266567660653843710322878350720984435556547153589100911724908188416961141265172334093767966655002001419018753661819618170288479837407381717452018028904258247110417131938440584174795662324601786031791540477430034142548238495149559024947800333810674286961603774641770944180065272251539429572464996671498178773494343720238284399948000205361350563457948210001188977689815639081455272759508218341657298681824640418780470528143662235522945958887156235988164616094613877430276609723043615018571856139731233143991970383490839702702205290127888592974715877904070940489106461303270932447882286523358252595628028795085748904617984937234999772600210198428942159653854590473693343081003298630435778270061184774342651414082677692733339752635854035187186487161497880861557003801929252053420729757949216677059638081127824378803837910861867031049723582742978680375079602678225920916198615502309504867895918477924299676881930602531099930137008790547376634576176476555916571709037467865189856172458082789575392489805534779555991786412049911829576146138982139660888010530762723846695692855636459011862732246974765816101259328403726634728085986054368321464657517773728541190183086853274755513734908374197206378833783336324003803309705815364094097348263905915015840991826839266884336384621290636379486904501790982847227046252682350308779772958198038885444138425512605325528637200556130238798381418931568756461156023654515187425382664607337385139109337545534657091146338668326757923247856638640294047645356231435549922432761679740468068965056147086119188231470881389460490703529273940257997053536200816473219904720365030501834912450196076911445163166028406624474785843040627112969075316365246065536299012799094373405937518062579242902971608793238571530567286694800352065223290595040416164656182202594637336727918923801480373351265534477292844017901784895681754370938783386525380988618630781436728279731059521895380852948249419081003525282907375149265534875186231478049575540087334250581171780678971340824571112605469558470659891874880915149582439973902820522855575755880267296910721404801171044041543680011357440660230620358594870359315417718789755909042002474514509626443947717066320563296480677849237537736949310262233341854999066771942869237115764322372169304928410870393703435356267187707540538912755029279456528004746971597974321032448637295021537658793846771332851488204329240814513371829155945374663841904329491050758943957685002159171436121922992293748752377943450956342796179570804596124896496406483889949048285097572357757712841169090754945282829436655913930301677192034795767485654830211694556907657800670886486308214677282779000366293678649528245012433846438866713845743262473145758278983258313609852499879196750441667962694617564619484826069927295607706017519430570787492319691848401802864245986347991772249279062277732245530219927226714085113037545674138870359233728644575025499070633489097764297408692600788458191720060693798319598194701247257357733251745833893260392403862104801087028081206260624629032325616817724189827040490808381499073868092143246895453119799388397807455502185054683689361069037168725795383411876192409787392825767506224357795556077662154963912917078585261818613762246891512879377260561572045320460046088424050978675917689950117035305627574640495136117021491064948942443543674317891481839300406045156274152323320225769658833967076377996953102881601892757099234876815364554983191577862080705975890817248701210009937869183703182608260461803681319928204788183976925503624738707509068925338056344491453135394346562396928108460895074097499768701085052010920932576666475628495869411166790788840320487784878483274533796271651915549253862448843552505755676904179244638322062998096742108862951592736905317082861662235822219544961017168287983028038933796832434762115867809453411650276208095966149039419187757848660270379169037538797265591002757903177603158999494438871861159729620195267600486179467286753190243139400872368387014275504776743735174768730185696605520805653766934860604754973266323191751259399379203796116808731184360279519597381887416393063504576821648879599404935551608704247734525067710897026939154655057191577627513182018928558895986375159263851393557027900631507108328041535825691888392464431586904713071465553212981548863215564606776427298702935483150210023239943385916419618841235465058801270843293310252707518258816654403953958662806171358264547546430799260767027726866036065141044863010117553465043033461170671773776718796074862487904743216727266342564160654455202513690014427728648789622380927217193125249096065111640851141307445066499284353061738431190108627260043239370339187017252781521260315800696082344660607460054319162950198457699722039518739758910618295522864012106257682171647642679414032352167565262931999592293477482639915271262139247724790054049291640630839826721586847811348080156250977761660903453868337362570198138200949731605991572557260694920347658628851771089846908478430811778827233414047661336052264695552128109366039743841956485195957934090831216845478083499340688868365708207363338525266871467392642766327393225263295390437336833331268915742756974658589965725454648916649907524484318233677149512274195873694778123394086922343047455175261098968269662727661677269291879231650031845052682990862162759402835394811054321645282878967703719588979977511892601362032617040363350517484887393544200225524775890652017016849723080853206791617898262564862404341307381825099574211931521636798483011629799370929240504637377000753427399454479888047109423211897597939892752344329651734981557192443786647818560479418942519676990621760377335646161546611180741860615313669124090909279303607678600964285054064566911892940908909698280845503592605038191774655343870090578215684966255996514375239242489539258425960167418923611368823603311785394666862626214832298617752082021137170714498460915887707547070894410433194092912032647184403151526913452423334893545113665631085998479459422606758565776854004223212984765601012565536963341583263814282927830470673607428348165895526935516122385102999602504808251207659123310542093838415398422328051128959441170555285155837234834653556506996452705896050874701721892600192038091516216018359044619400434442470963304824594064448853293668565875124938797161104905408051082426448656178439538230674553352244571657529333414829196727396564700548509071276161914684634752256199771385172095216181792164290971301692894388703798868265729820951793913824249743137068034458396305873013715717877043784512210814888746798395051430501449626135486491535750391687008575052918962226596262411277464810239315207228266884467948875411964970801672695686993185989892456456262615351093309218480865490783226220431305101281430782931218920395144794211967828333795478411758886542743706490342163587630163767409187238274376460066646696626721374654722718941856190412529427112761856941992517211398090834543613374463362336007639076455561216678055626862481602783466167752115877389213469858808609129081269788824206184577280881253308929449116765115082450518100580378608632774682533176620956512560191837949737466461524794614055343884156129267978484826971661749754590322580454482272882805741434588310366193612688591221672204786141411608156563185294736495088987331771001575901312840038365957934930297196393057551774547412051429893193357695766597749492514762916876971858556738018908555171107391039024365860896160339529362925165152821036027089195356937887545327855135692184652275360951089323250813944714405337065753406445224028012351625536194817070727719167522869674020457555967192675986961546631387062240608221721659282143750319963832892470800557208544644890445455301392176228047865301265265795634696533001824543823703817809109412959192342157181749682399545749478570047640933332481507757760626805264375252373360233468207945399652632251540598854665784672441823206481379942372573507886189925306229757467689609380685775986672312446167879379392752629897696073256146413278493265705617225508399582139469588099435882282730067325487877182390807379477751853357123145721136781100562738324619052146333063283703206995981705004755271804690790163784296120307077279556691404970289308760707773056126797512607677944813177666690549180664039113786927947391670500286360209617709507315120754242710328409508444193159741389931255227313825892233249464520532934488208830760910820334776225683738699265396319310267553080019578675357876295090953760384015288970053393933762820100402447392050185842183121780286534757008281312496275826688950100602188538624044052519828916606607136132738376312602946333137186558289504300481052699133155634548986226208743044442454788084331915842445491152819601994867261466900080476628099311836149108355880021927883074376819035910216049303211189988504459101083541427049307655835025986637074179707682137297237312471053275077474112695372575798003987726791204411756393755968735598610657531351760451227215379066695278060604384439857003350251478652554659567692108488463654394166727685345769243184009227797441101958928032630538230463777643197171741653135221200069136047998011674431572766699297924454698064809069772323278918083132627049789091963057068622133655411657623523614066279091847525558124799330312740085042376290884938175001110585585590439779694432135321056334553307829545445362393816696337025370031315021326889733101256393203848374690086065992251398067072701538310371419513286975651624292646104473633165911254455279991548904070001678288175783079225933636616609347372943258435942719799924410952074132819594134226281067897063171138875937163997770681346218808556991015439636825648956927411166718017152783345175964093509363786160577511499236597997206967167716517472165696426845773731927562337528418494354233950115853726439379388055351576117901355393928718631069828584704125144276794626905522337622300101866906378858965052983140365994807226046226389632890263440575104997907834895784390942780549048040441193199987311196759856736907791028923733235085779793467254699837129702460856207935027855039361104307656237011191734628553330319946081047601926525430096832854299282361904808384394845261866689879173683276565784973810064479487949704635981254713412160521547595942954287255410062866161081050214082723649660359465992893514705971477971687948994492367695795103222408787473288338009555553606296750384669588761680240811338573141094936682889797729992130464749134754612050653920876155990422656436844453205525800459710389276665446085621632212346566658401801431136311977690448759971638096667223569016376738934805441614474919023722728073990027010611913054401349522475597735419767161031390416906524050075483382237829700445341548613665200132237128430168491959666227056335846630716021954645731779996995940012787264915629235642184538762489299489281301968271842404175221240651952587455823876518675934131642064254505128296328781622129097787963358289747744522250998365267863155097545500889624484857378919649035859316383793727150802480726560607722322318010881664746820621111843827016980643701688907288861125531515780132064841208392556756434366339084397809362683693005340489743507302056609285777535884772796140614559408900141850494889502630535261879549561193390848464983333425156193288049368575017893294023811067024843397760844103257656567196654398080401899198903706993316038988451832442512987944178839121964047543923701623907653742860531475924761745564864139249570590543012533060635723124197566360215190877368528018838553244040224311640999313183647443590679295280952990291047049953314988157616351683915422655004991858514157729045089620423719536848802608705307981518664416470580014988279765260159215338003377000829154405128930900655050510254593737945890029027473204632869676945509427160415914349801439864110101722125166447215260395496397356120248440294927427596836314444269267045091081310797693565344801256086142321161255510931609627556518951514160389103615675501281966441521818627612871261700150651802761915003659732964058409232795994731832950667750302098735071934083484652170007533341575475114087626553990855245951216531065427423541434136069240251214825900987845031489593339641704126435490799312561726839672623184941966526821737888591291961559610575663543872745564273467568696661023942565283968081158810430925361315399474157459545567461707131620417427581205092532217482225047808441392052435087909036097667870111000779259525467052758843388971359877180210883861525318540185849443220388194271489322058684680265525911367157859215605966636811922843139465964481402211635519571848448047244220289696792979372556959236499245450862070768656166778420733573736753618006202833476249738279856105864648923930878474756020596531546872663722299904432044602590256525131968382427378470693629283336219772001604380979822746312170227303458508288187591160605972181638424989403956539274208472662926371879108101061228630892469616799584495641374037739988331413036874554195518046595666130801406414380444678596566393363016910687277678156359649986251703989907870802657008617409322837330585168071234030657381001632433033657071552232330934521812401221448979718213601482157253999354424172865570912673481446727776820208289559351128705962033398473738530463765945067748736001488466099536593438603044163063514327327354554212433250859927182022274498017543045749977715474187046400404599239822358529183924381786155670942428012064424821560860977159074162056291217463761457977157398119385931092336480301073952002066425050811780860932721692777899811050084078970163061781887493091024610976944438803236830992862583418251826825107908750853615286390388505538989861697425537409212792890917692422435175664765540380419807462904135147849093188137037947051001538119358416778698259843380639335945209415806070591399946979522797991477208977232469828858196388666881584278743387213564154605182941744601656765086335769360676804178132266508340959535105389358041611938923855126126098031367597305715311978953661067999541738152015409623610759442448415519909251712372855347027054318626839864563719492281664237965849531635897679334639294342059831444627036325050727286862470788298242774653143116387287027160157441983785722986351069318125557111729260547090275582254318545902071232018009438166652912105700070212716033694170373476350299941076243419273595791589317753665487044003586615902205425677084095331442950558662242807808041124194857907781905972139399996155118038658321726680739962747183054578758225252024386253771567642666954608009199098937543507947946530926137693376377464699081492047531665904630366608717864752245089729241094041098506718111478197446631479884723647077369777858604638465632611959278155881857926076275664668547205010669631534219488524349777385481472292281926914134457999965681252294975930831063257159022902572522810706160600553181555084265755919619650207679859390061818700171687983057818954478525814145770964891016152838241962533240652791471744252593420770201518579022904332901253111305409906428271566169511003104411756138251059191604108076244569481767119466281335746572138991684425394254190579783346308390489161274628600858623344538116110265936949917985043135815430039882292106095989348445006866989263671466815354265899033483418884119368320903363589504058016680089262574889117798192949082267622918205613410582877555069407387957194163970122370059807569678446580180518048890890153935739469109789862061061104785591892488525571998523519135206108083583204983750660455816635930910920647253692781774344947895557439785337649262875647058486221752934239080608058145978952399897272994262127219867607276823646922873753283262408227698786778241731936511397326478788352271306528908293105305829323771670454112809724788097874238499255788174711294525640974315066484159133199153118633389984775017968519300449649319155233308314177981856122425398143736907424533500779406787662914999747580327999528825710275347538832890822989295786255652048856621025627568938428344267558171343007905984054241932139932416986064034082727720328225874793203383147750970414446849333218766225396778441538395684180406022476332200043878590188231406445080402673926473150505337960388173168727827151612406026121935155496698939058751954663106882291111445366893813338912490144872424797834995162439108645769166243856440354852510253873721891185616208633187747935111026380402736263866226027611103729895140600575372102605742268933273933667577674618621083552077494317149470574416908154370750861000677973653572472953894940324928923283922479565369119451501650303685764962484139666184891410716842834679161483014001286768680907185686096072383042622154868380614639581340740969002871174474282655829917235646404447907579568881781182141402060858793684693390412420090394620470800905489097364337957505496511334487984754103689697201077011687414376444399541048240861045254288669380290789069790554583319617314794925119796955227674350789204210949836979932264400126772069767064766962732588611021390592976863089815601749289469821548190645610115768073215614649789615249005714832510024521890019541633945063244374480588683166969791851161456241296807253006903681189733911528907188287924757170783689511234594484167350658961440402261148243881240469565173367394897855948105346155415618099131267565501040313593441879922048804472610734205678047268799239091663253359606378611126420134952415185780874566962943824781287621940059668296884489280249924467558227626645636117527351300204474037255298143652171501503638966550591333290935974015511069060639353593715700636363518050083856848784543159381338313427778873821488352445473481069759684790737985080824350838704265902764923158808675884409250448717122793805310029399129256340230952894785186338520446330993302843146788887484672601939355499618257145015400035447402860905325487459751016253707027733128629223184187414522156933338110532977972930614863319115814347941814905964942122461619738299868225725352554579503872452088006311309515800698739169870172930559948133458386634658274405599037909273221085834076619669343980774714122345418891783789267653651446712048362927277354717170194534591241134697479912206705652649609757508824145322030305522795174016675381946445108361426176082325905363604135456490290235338858222739140238579162012983360514059230341101855703753624305986131003079218061822888392189531732857467784132190236605794503670564177282236025259611774544392572661221947194461550995359985004901585241841927952154320294253718994553221871888211544535053343996255545851426542721435855829800844762856556170024110796301689946384927778600909807994769932259673287345039007973027940509945087215443617513697927997838237258231619559554672276942485055701164280809317855724913572001453923550492158042745522671803617896200158733651443801470593740078735090544702208379096169760281230598836825330361915143552336576684643085357134075486440147623883037258301887445973282913757262862647730293684134168373384406301117856399803156123428046353983692466846452787802283805521673558100390253382188158271987228973203415525425200168680463870627216941324713393836188577278916382252824229458240814570303495844471848857124143226067936990553351748328718671260158751330956607075755947673310887470760960934912934535356992311376699674510244286834785453768216864399353461958176477613551815047762310250664829572842683756150402599041119325649404041829781499014919797757116116235828793621593755101238983517854013900779105837368133602443199200440930189990654212510213689934817067479939523508545363394649639308341865386370483446774974969205950486288621385801216885442409583311088650931277625635838309245918677170712121740939190398507496663231633748235448825675005167123200069570801877238789794035854071760310983667624518370404062562000888478375613627317136888781605975763575980017096180492952326982333224863845895428212023819893422851371529470517217057970676736883607653137857380967889717529267310317650204402326358869375572169741024411713771906144723594113864897815878014657801906493609040320150799299776530232929967423194704592656354107369146324932726357416543518636862291932364551021333393604020399862783419218548308294554889539113355620922850434484205296592848977307384994198669425444386463169317953363797470877268522422258809131594436572024338921778540816425220220882757027060851195781820308961688459535572049586964894979857245237953186800986837538076363715371323587086649757368270057565632943112773773363396690040131531724834734203272029822928531282627663127759610077703775133158829229387865280646585298961151306654674535803621791045519098977865661523777935756911436783909404576201844774682443910681353065597374573183148295956604917844762857229538900047050789067777674141282920094207720495449259643628390065239983122235342471953203131734989806415401341356800080527909429660955769784267969472388214413652224104810872108317486945413090861304297566706027961816804721304011398591512306562206783962354281355715142024767745452710222334115433771728291801400653884545374070289100959354420297146008982829383743250215495054543694584245854602164135123151385980143754722257299504468931844724497551569615929629998277878497807040582233049928584645073293986618105345360117394830426253287734573229533441580021182133343807488095960807643016295518106853513900769645984599015472094937687392964263593452246133663481607003598603470713977505937837626142467594836903191043450787533051818581424148402097565858502911286663472597132604608330882517706274489094892168995314480135884148345688264586407443845415761243582964940982100609857264675562123782762011897166556540855720780948659963814132982947095922370385803022372125920962335853363420772280125175055450717024324410566036248409891742249813537064635367995268417328091591403607489362963406898402320944473453691457682556554448128400705532757376271000985529610363588325959493762847153624884999095211623477425833585788976542861626655153021484983286159009368237407729282068400525208792967402273941001171668136694635260898788543848323475095981229473705000779863115343285193036760744522846273640155083346067325795824935224530468902309158938131429443573792171926260172097336317789551082492077498009077209576339021174115475403588997860765047002537449185546266941173310723638760420527430653927491650233002056260786827975395891131288122323834669981900704012310054130915457151517288717532791906278150940716125100454629129399630923374500832331849862000958040918506277248918759679463755131595911829408052596405564045014946901195760054823597943440983255081947206143462342608528086799096688329310839718541158561136979326426571800637632243669487793927418698337384450818917744534949327981150056628451441464948012684102216668181565209197021879179221334891248773985905146494206498076256576468257224322849337365035624080171228880854343748177471531842674091843493315825751123714063968933410796877215311674823293460039476924117415265985959698287624170728341018119024696541578664829484222527223844512293194459511275173194872717943030401312290033445768487029266863086668138371182123185277960070655502507567085964944807060686488713667813674804157143000352364873129901357766596162715808822230785559990273145705960916495155845746676106302871180067455634534937636882537350359439077283315457148779554181749367444081036723111735995129117319374212601946570024793090389803415271042278571507474784672178333332692405143352499681755651029228570391052930866148855427996777591248051078000076708471102857429284010660432034936884790840398497966801596200350254563897613990450303532447724975347415120462300579311316802813460601563137273607108193069833799881331734249142408915415332676302003822296990026934922702583294275392547079368752640185101135885933306593726018419898945685626476711309708008134293079215523175341937848706289578810406881971526612597843703103483940267190897801725234170182556535346452595782590595508909983355354735237649092701638753666861541429407407109411550296973252468498586748692058194209550760853980195819601055527138900857209116778561498343681806450538104413757560493422671288568788411305353169760287718114755574833642998489776707806658824942090124607489268868884470110305920518357846984668641736932837732555496354239546659254279125322422013616938769790438322386291701366763088076209154780243915524206223244919091271973892358051354464240025801449039084234558674737425011998514249912271285352984158612920041960155810177907357021071728995973762764499231489093629411599465560499736905229303647505773875127639927496254234823644605045273369781290009544859738781938255137726216721998055387717922496551737947346042142205665271054620158489022653131114480706353893338262226825876748819027922806538369926529460444084382329671718897749238961888236157283339394385105963088041150228947454356927926872445700596514165660807459201464372590155483004933858732691978559059991877372996228742339888730784959215337146523068782524778213741823892948634871802697244934524394673750995944721890831625314437751865733170005282200247036861599164916223171349438634693028732688642100539542481499623206809762970896872381844398395097024929570522077945713269332370722152429682329555296550763131382922707193532233751081445238871775237900656942846026432383003673508913894849658405017534771772708303651888904831566673665441990871919022359837692226599222479727883680824805735870856155484768730679337036368063272477111444603330036430593373726260531167498586906379601168082587509724923217506668990743026093725617994826439237982117903880781062594939712275967614914951517249678729391914260350073410307807539122596610334576088353509063005294509440276799695057871721038305437174578779347455555735081292677936017929202621746928216051231960342486154860704154739635299452549795087938684739167327142736132617329287841925620186602956729765505816067252522205420675453473838101335468288826279147896539767434155694888777007394573567972370097496223831248850401163600557966974934889626860490622343193346077369104765692442102585791729272216084782388689639730344703277094338722363071055027081548960566681328351788162910161527672664716142573025337218095501539467080240256968025258228767741011706365094093991937367821422633286597571525974296170533263944110686415767694854746077587739902180134094973589102722966714292440310275704327810306367647110658762625949386176212602964336524451542974798000975482170876510451344566153286607518081753199249850912916687956431367341762401149268541892990928586733442770386534553202980924541022902860971480907284103376188045133927995003547103761305484251741149116608438790192149658011039021219814035417022934663761971130581375561227376610098864896352667584987087186613006257331046602911304444551746212418173480102126117749351209366757006463835829812308917554957101727131486744307004448691023306519794613267489647582677302708388327810856472133041602053427929724919821183630899028857499596929919053960263757362965930677558580317536113754256221258027598804065084745917712744592235751643381256151946354034906653315687811248655371429761712858004091815434384741153267506397925320028339858371915053179285878213964219117766198270489709431619658412429438246623608779872062612428929727859804071807499933042431512685162973905227349223503233353774361167123931225180328719701419436173909692483051123403599577888541535190875762778232640335152148678643371791056298051886172070430087046075272936167749610719120282301594116401279232747070238703733924408744621224046245960047542086098287223739709062139603541268764652060565339928155728672058206265975927184672751143883952560112001726411361780557624554060936934862426913330480434407112325146982933863840674979462056116266487899312455973072623936304043134770653172921201461783856854747379135423259969697088693919179606961170971456939003931095785320410587498778396872367218879897695121323655307753858667167198134570996456865768690497039175766438542966079563319022410641527727338425905318850596710115967270480897199085160441519517367193880270824061526726871799284452924318354411462717197987223614081398085370135090890447299083381346207685013220283323399659885967441287013758034693405339553505008809207320915462573660704450580693027105653137523896250762652381180476343085075795205148943665885190733973886212147879526186028987778420218096187585913385987925858226777850808966942302717072871074397216139519867471861401794315792734675229146460649372309544631839125590216741718718707105035198296182161566178418151993108599622931605860354460807135047462217305011063033431558109608781388558703732826957954858458588526153047404538341747805007192334681381637475865927653304985261581622498149750431955057619764335899514566865456135633858318172380528331080979629942470698343787650392415163888053224599282461946250677163531913663987762339321205904688147381757039411803403084415209275362035215443316897087461282661412580639683221648865922744236945258838267344280358432282333559376081424753987915502000351504353858989011497280590749908921131118914728701488765990965267092863382418081689491948784868984724551164183346112275223248833472908457302038105954375647433651951892718467445662026700738455214130975002888158078926514510946737006073431927143210697887332733572395682262219673080475516320080195436986640365100296888926551094962974554816563646214001133966965488470398270475587776776467955893967841657851152110001948439351411639451079388568506257279199178449700475242998346458510410388423538762716449024187210309577314727242460253715796013670716757456863980161637902256928423995228118385880985971218995318863755312587122206050289101285683646391523567248076369257865265691045076082743441271964332052014942079720750901681427206881271057249946545476861919678004605742484862911631907456053783965560385406915337656090358526546969707746337285569240000859051025565587659266830180340969221166191494141416088541554808938821332239693274161432807894275856866028810019884248230806410505348253661169265404844019005686033698188332812739061463221001853357601764879504608188659778947580167102407414897850440596797201103925709580552166342913862010845283013022517507205302135525783281372795194543486824187058581509769003521422852944311792634421905406344590353983201329239557902874017623888586566195533419547250143445181610119143529029888223928123981808864161153549295505085237171015712236065216621191338536703940118677701706674324837047106995030518001607222860839341399132910281208423308883280715982869881063525948424427653798867527830446880741587138812277733201106913327646224049129750017815430218564131736462880302615147522696607617275742459475241223601486651195304028864957837793259426185745056735481159922544898064493432852732819440830313453073466179338514843307184861632658098397172780167965775035613409144502592549509760837374237827280773157989887214625087279626828317790395927532180035608769770889174026272699974305551518535842559276371090515612077435861644917544147719920568673676253108954246779597553672776737938816327815456387153924160142896323181110107035776616728553353402849840559325426595834431367946011244396312826847814564528301577554767550373974959537397401206446231821660874536367788410603722616544029463907809141711653669592118615266445214598619179366774583493870798742239829309580499034062459107272318246936090013877516206999290645261723737707315633476581632131592354184426457247104422522208474837928145659898266972311664461733805731041406597723010203298458636348050660323702945293030244724235182393125322555706234932579600281791555490160309227742882895235624560496021732686536488844179545390027164823689223627521246444218624248230729952088462223995505529099671663470876170483381442468793713564184548059376612622993530197008962464731718427618284377362378994648165959251708988989849862853410905639893629782693005376452350224735951463172967703756553679209441713565903952371475569323547818082369359889126073265631121052342014608173104351362045618214954171864353089775275257933468423510517604560980890744379417146286224921304657568013162066110453622617876849227530496136086621286937673261222583441186812156336586785532114451477531678432302555618626674834448670688191458918686928377169772085986705328048609768538644802806144039664714668150085290525382779648461615661567569062866058677834959565352373814014851850594822224604979434994286140933113217035431978200563954438800664222439803179053282614038355964536090241449139115546179925808798348385463327144997012099213245619372905543758829985722717027282811224472639444079212022120132197201362048994933416230779118923946436603359073510390387234870256396923413199889203390792066807873062355829052334269312724393189614634644157474915292982038671250158855774657369919760505484341837162383569504645739430509472820266076403609280984135940622657174340621087633479983020928716678672496574285310713768951459090673411214824617346285422577990182719564108940305582441357082356273419823067929056182990743091954117466809992099545488719932453479649179623038766585173393882625895235666798349926595296109062317262820788045583309416428245862248210357208142033111029899283331350415867840709292104980976750004651273875612433761118413525764932716963775996486183892629237714192401252831423940325332312169207505194771797613533472036384207183200728432668447224132789798651115694174659637762338883135057978492748840958569799358855341326723885628118186083849266278849415443650708974049390160510371630042318279659000878530971687656299824395838020180331156086644838255229210219090929984640471836089131700560944812289412973312809990275083066536115594687641878450872962645215290789629375594233371276860110012486414304006465213889342773956096854619553982939407599842562585010598118005432668777253224631809933526732866358003880019850299098335915871029474647502317394360604217535021377911421192532383308347541160002393884161507126729326093449030584910652288378125915846048005938656262633210039976080472903643209160762045718884617499062223686287238665459082941735913350335499843142441932998043120852509573098292541117813752115846678695286545666026974752951691093015801399863759097387921885697704965657020494372795292816093900129425746422526612250582192464726117319587763818774494376596518286057120445969308890259509322550489605155681046895470210792371672184384460536162198276457965554261251409706796605514486277675360707735198423260891224838604948356868250146517155099310117760441765834386174091153712516987608683167830273359849985045291172137025590370890642340841517378645157793558554313674181006273028072616448472201898427106656940733312394697634362584174544857020184452305874225137449274863365032372188715980065567323606384380580081505470538098649541851484106490747467984559268469519630821558534882776374327785357175785390990750020598346131268152291766747891629249721601712754910745815594629182844423340601811565236726190844086875617500409415845152328298955506449351035740472564736840720641542540817123251505546818672877607451314781214634498014280824455636950954016797435792424110352072007616014712545577319268838253281625743928034244720639034443362959958515604731391628538379387048640223659065040882765758652632057170004298924762336106636893420530837585878158168498883336677633097791867896502573240219077042866304852316272621297264263407537962076214681740113158542628603839300374075198613165499953250836784162297558009876713372750079652777877708356599781236105025823028870807887046576339691406378070530299559915590887725906069750677785291551075252893293973250895627368786241873832968130910133142931737512286678577531643262333408639388434577194455151213282361206601171193238009839491488545498327805029578892547181374326286220136028564288478849656678954695320477995163217863700698879312148935255887899810563778381387676043441431659483490729093740725603940454925863633620441796332205427275221875582131908530736864119652448146989623541913365261852609169339850474975718980707059716416618671549282319787304342572271178422706319618494481773198298276329510540961019231220688932242288074709619446849437734381535804704289078163667174603356389200788619927409718171168167850208784650466756386364891299041197121467616854584601556962049025050484547564327499100630992372794347258507918084444084135381873117808244030777117455724519372693782267518807875929156046465602927847852426328035914471614367333318694359120288687172117663303408110245802194456548691227025087493460577107376470364454002047210428649765757050178668012317985859090826264883828581706557413517069753850361805743176622428601012495829639196163846059689996408318923812298512081403944415216968387210579821130422754701499339243458828796776340508912281395585626399847429617706482659121548200912651833974511478526864241403168308452041274463224611885770204627237846582850466447253489339088987174741252964689587853107179217581586450091072662547363430500085228132452097221785287138156059880353429698891956203800715864955450256284203852400562429895715729823003960835567119469405669002002540467851541536614550938417287446393334277228344681461209860043797294255353199777493991187915577519425437512159861625515827725239160962084545221818755419125479552804040303377262153511377861222920065556592729034882305783904118291633700347179342997136054847317538456383498673098420965337401595463537840410239482573021665432290794953278539890323128440713815047212105657021241389069766389478666333148988858997210120828895760917700427684844670519497033424149683074210947379102295460556181791553388669063686514507486811031734557177427271477212714848085065698442483346429168867181616871193861795418771031368823579792345145605413047106361893171961295027087110914335157987101063856159340338857252364207254424889172092015409209325439030623782056315454764861724368908745271885196816676707181155913322086362342076745416169415561681280579064675363207789824546054885101510366226024780534969802903238054138646931756750204949544623044590552085043655569257810153429571298018233825737380449223918484451912294729566730334734880192625151915258080197409336202970204620557792489881938143718639052628220802913307032054811093181128632827664758084540892372615644279173082123929707067837780667213557994942428381635829744162803811206225756808799365526010397581853690965120017309350133689295962712791602171999630888107208225856975123654643363157196133929364497597527483284331227246209344373504269540471130931908116560144741689462159805938685871052618094301936773527812495073041036519495743377626862236223053258155435158924116817743930860704900029300636855630742676249795846032668715260369006876609085781431953072141109718846667017190318245247826807567390525544855648500769577111232033520605883445986472673186359678664499904081328767199810337306235801615875666383537874777614892415965999481908620861775379405783974653095661628420449778377516318064041220516325406994871813288306804735659321259791036190148328440901855007846071713267206336200486095412066053208119100770600628639731757023245128508455601619792793240628900191360603297396171867444215091817605778333570991706980021702064658341541714261758291569681615550158959904360669216334031273521441310067058474974427087012000108013603152249478818673438850556578111771119572380430756720001299452978457874889343428839884861761753810487464654542455495596045473088280678929212174989672628026053664374083777035913795827273838822442551153350499430178007668173765016961606385652133949052532131534655634783003025281685216671306401557390592101519846730105067727894750594689275795759566582848840572163302964187062682126504636918562063018548375931806786181169597471841232093847908087663258518746942187487547457717280201558831227585978115371471648095150233305302806178485736999752225852468357202363317500628566671791810205064111442626624705165995221893057024558512826369010112037422946404281524456724641474936044718251783497212166535053557999559348440164724800630295784397478437235927216928802865769451482754547200632891445451906189539863041575340992218957446831167421743947556851361709779544989971971269334239640964984673790333205843862988438796362204151265456857290319956592701004139086837132931007352503781503884857736946031274755686629944105602462870173046356147733760129010744865715659660682242981506988857266766085408415812052129418632527545124844224293619152989947869438841151755629314670518791316540985828622741232154324868974249757546574314567394924860803351464145778763488399905132450230527561705059103785681191762887534022065406252359012977991209354130138738504606199309448862453738035832298219872853093549366002956369122955411668537159717350679027544813243058811492470177722319664810200360351574589960750103760485266429371604453450845359743121935924400790473560382124781779572408267327208810364647483984599451502629217561121226432269696355522538258304498058213161227961295959878186210254244229026067167066949950230607272011500668235270632968340154415762659250724558520619491745098313908930534189037951016257202750690777194632634886524296503937420897318186062319203319049285110825110928557470017351230550984298282831324066079370732363343408399934148693753656533563674777907308594330130086359601666032076958348728398651927989241676120008180059731290464358349896328177732199153604664752840817069520812700249657295505252227036573131177171811013582567669110235037814276744205089871867169196262595301329026117305542320119888536593310585717266455259559080970551397593307451149405453461687960745343066386982465265303496631109568181656614165388571642763844510540527324820269059976790551600143836616679362156246229591009273565425709494238349741421862465446933224627993409342466219467385080361340313728712647776351160329734918262834473845361244798100558580721370298887706746386144782094165485514997074244486081214107267503259581072328626352219989091273536430554858579403785382989046760587018662531790443093626273305133106412675735450474555795594246354457959283947824954501392190343448268778428152376786267151834627725394154976847384364855956066117821960230222468975608477614277752883841380733811125479742999627097688439748914890602019805010629931624727837332855118226985587320756892151823646942014783642390605621292803445914131729665997076283242570212348349503257257539530758584071903848464456371246588509925146356633307805746175948095056655361288852847394808631160610174827073537833068097583265522167811398219177712970145572619027318874894958108793600955387259041319513859774119110411260149441889380699505569666776203166052800748538951144252488681795760184467215289968991064166046418500820395577313141012290042073856591341437838683426899658709382815566799334640058014811108289060826712801836723343363564479543092962020621926590540451237193694977009781350297697164097927984642254231586148144301525101634259417918781531329941900182246564311795671544737857741903466953721849833070974129558898785905584261076524587747353798292518095034554928189521004970995594550934684398678417259461930052832836563206934500610196187747806762305096534607064483382025071134261111559550289998592368799292031929223648956946736197591742044509667176221176492960551886595315749588178759021790322405173203153914107274249114640181255306810952237307612047325692479155713149655704304360876904330439839694983933754132772073621603648819526463476361273687678875365039038519917978193510949750175563545531277602919059106669325254790914740895420044747258919866259705572315581378288497088388402719215673183082027054812035128136317294684321344746726909741253891072462824211949660740766017284361113349897624912197441052371833098686377595011131371971404848843991103415562552810203303949279016593624804396231261462691571163966197600538133819930808936100750702890461203490178920653887733039024381832602170922971845334950748379990487479826165239116401391153803341634516242585893650887788029166186696286810281832005257934847719149274464005678588284232669896016967138640351525635258004577520899211545590507436599789188716149526402204017092435627365861094234713327831751093023652135232231791254813868890974876144606041813347247669992209676896912765562004956147475357630924461149105442924770910446045460294697321442577482755623518943888597293106380708139528741753724639458766696075922528588690222338366629091309459391053486817126406019939471745044577948676434863153254975199086374556525144022105743601549051054933159478549870316838340836238294327841560774253447097950374152656717223651848069799726440335885821567101086538272152669357399027261296507541881765932253416679776914580872194531698476966372957530526174590469431776286629491640931473279210478016858635883501171535611310369053209563879504690434330917018907142601974488851073062839663513910338919336082726024109331747065621096626463948827265280193894586339852443278710915962513699190134537080213551032518476943318107555272652385722149298523992136281687784701393488709751729523177611230763745531113329656278542275079928921565307176605205501689623331963423715365001475046711791503797393955833632156940758614835373488303406965655214808305110701974686594784758122996276488540197976227714793605796566185762288470433668865442956106721125963148786275930155910496757498293012140443255078331240829903083395014137317128172588142398316464927102440885746091475261082531390849999045303153251774858933484412370069817616008440994671441991584298447218689203537926321382514562485250063537809630924723629854821876400701605967311303653789364958768860565270529236470842117316938563173209099621698615355898191418717818460223201864517104882127144031248033946536921725013250840155684685987911298772786421422694280107822629541965022283327350192858954778924860143652391625857234169585906210956280873682601925340093720643928466181958710250193565991306227390694125669153050471608185076977850744570037355006819499346936617451124969518008257507127767096961385920612370191623414418179881014538121492294079882747788249742684828779811178458199033320272962365642500365938614634507461547471842222995844239825598985700546852481603387322662347491406005716627247148963211358309358075530624841322732537579292990070818029882751347029139542662294281519968300985200813205869604243314499900112019052243147799560961756230941118184269654429986182382049467449421602684578131469761702142122974571080611227982975360349841567709713136367809868739936345470603946996485874789458608252296796972950504725362244709569395279441691832299776177275997574644503457386056954865667468691903876280039910815718138141038069661752459272341263448201657191403020100424177378510138583226214506625494397834934997558762264279295167620989472315307466468827090535612898512508691468908940852831463300202609778070337412098761667059110351849064419716985012882105124084909222762403021950449879045981821504500745694059034300637279784297523880281243863585462528597287324105922201379048955154641556980705110177238209215948344219615421746942119212146865865352214703803778705514462443725952732288324380019290250137440167715704277823832546150403490998760062786677754113267477156746927809511008658676519404780386916518232087498732241273132808612512271303467387090182371083861649920230762701542790128144153411581096896084694502374820286113176559198293744373208441495829629876273498829173968856323752001084728380842374665002613975438662731514546201139697672640927258069621038923391737510812260569622983208751906914539862536607224155731699088429246397641190400686080150608524354980454767459779982145687015779962305152082983708052289861237172562649753464194085177262658577348166000470509472138038678699248851106980078974592393818945996230240741779818738204223451683761117593421987038296315389371062823480876118367120225777011866558379054831478533042431784212811588890848994993211769709800815296830803837032612481359277166682560036957372445576778397330143684366422167991006170972254732913834144897455419596462394262506653791094284274374112787015428458782490846121861607120168006761961287976215988796663190749522625759249279244759032066395790333221924093979709438436876865623121738257807156095273913909608414115571555825440008681054028123706391650534475762886197691929028869736089957778103602639880435239537745619548644778607080410622837018796774822579600251446992499834423041809547077101990000961152000788557632775600760606986283451486758290688984606293458336243404055634782323274984368556721065844848898879943345997696515431783567554084332066339289916699672898121786550619932109992943120996695888256672133613887511148554285512166570873818184636293292379661657422180245505168070247640989283373919776333128694048564769940965821278453044298272119706822498398508074195399040038038434970172169143026955488027652182414612903078435401191161169328702230268642623599160791718885714967031612215941822453920178591196746538060920481961700999197742698027570045456684900390314047480398200240224142417867319083306598733708399776719061140929749358051983185935259385780338390991871359632928310230826346592010901043046865790383798588343685896466254626281573805323758987842181293176801170200152813984500520843955769078256458425805016161790719444501431766347529214997582669478045618477005855204493946505618708456230917832437532492268079390179453092403369983222211993568394439832770599295789887893325345009416715131116106137989041054382274314836253068590220906014204658544855098223862169240578528266018189309801009011436011209750644299567814934268088051986503293686602616325731678453387647648800104480576157092635888716779397715268762151242927345299988574857441062840462278964991976235480296773280944835116374486996244306188832911434440919245884631968451193745106672135309489487778026986240311235733126895266652610707991707453482976598302904870330575415997682326824403220048660948663804065865322621769664236737818712620508256300443199654373164548538580549921830792021184337286252571772535795580438638128947255194331948103182052766755660405186844409486479076942108687205491247220065133014140539560756006013578420922953140867916572940417831766085355032715070575453286667931872490987273419872905877935965871544108357151860946719410894377436965115454178769259871001053605053642886030664842374768423151906441963548295485070672533408984527205467231228310258344418719737249904360495036401022366119656025197126442775012404623898613944739893898514206973673318186391208109158712980225893084101039230819733590855676774806241537069116062512098333244628652910364351999473434119730910296276754799307742409714892792935383820338675802518704549172458543252646050368343310320228809186494622228159811418549702319830556360409371613784985305570157140906900115634135013020936976039195868765376163883976276059880448532488987038399694455949594233541188014566374398988045434158365265191192761111895417379277412494271084774243206756570994438173598937900546396937690254837634376000826449978695373023073704969694199716224898933775278283077991090957858853856202028372552858321965784574046067901956988609375922355945769945938386598516994368300914771686160902050902477931546925720197648147467134273886373252632661603739669500170370697350074937808072543792684987008372494698970383399644303241168063206559304143520607745634575281618428064399600297233555131588424119349650869380605843349035577470262762131935171083672045172624070815720121803102134479003381574669944561333537900575511728465501524577520560318726792117770434264903660290431034544648686049149970680004860900811656641002605645580284382787513563863860450022741096535348021468593996259806510724183108937688082234009937356498238812435939760626896428942659336578590128859141431258523170148984206189291396159593546482132456230257882761371345113832879861047362036062228862633679896251127249191035792531192467607685057360653709967474435738269915236907585321715269061289352251852732318870901713898890794398750262463167173646776741824684614669968384574756148614159036237673094816860493209385321007550084347050370987033948225564731761745150764062088311321611688590930486488025106569198242644426955320862498983693084103412271832359131746280872640338716651986634874632425938634998756329244583011707414486919669444622388537621279378480954548029121615380398614114527894385982456946145632324790099736291665796625127389039104589869936750463142263540457664975982679449813007382522017151759495739983369325336128037245895106466488764426746744615661206325472586126432134783802562843769482828538479545521346915471447966335983069232493756247857952231448251723088397410513947102599114849061048143452578726186557797955531204256589509852349823510877659410311072144445896701220398671734964720750675058196567289015847685931684514266904949839044550344078016154154137259579379197541147707218831355131008950383662315771069886231297557549546735581204495598037989751430036667435138339614268310248942096984812403848624079281876397103640226165096753240025983163000822144674698967396643710655769241970155208816600313426798427368095496243351337580353919767319847764829426435032135578397052922155796070593018400296528370977894229503556685459636764009193196112585435155944640144058847518495389033291257181151471196553244002638166108590562697360478395219791603514676604520094241281641981774041062385772068645173996532555766451044059925362631033185756451253789698771656868085498970684709616296763087892188960222310386892975321265477393859939318990850088237038639246157056595821394524183815385828614500631699102128463896324749900415668694486958417644785817336417797538225822531146308544955419804770650867595774199413147368366050941467781506494257807738272975271448859211999297143406518169151781930560370271601414152866752503410143055852332008393231454397732691290322242293916276821131559467991585207229099246885888616554648690337105526113219256106208296208196830804005659004691101449411703652477445462364567510873349576320406856168907624486634377258446886557688383921293612778512952993310789066243035552155078830535137345335000707975115232193592033422826336839918615521909025675186276502109211474851508198710839838556413248540305785932493509909350444807802000979476374081143333107661426179294902712722624603976002406524527720487659848658614480261916439859707330319040367025583019804251945700879087311481144767532616448205829561340813616837563372505858631164923072984158818269350358693378392619469745401280930962362169712706626492037198721874006184051764598558894312525155136936941575021261830060611691102569433349681028364342210376438000628762143296355351874545312210233261688193261442751654599578776236909256581358065184875238871203058543701523168386662527658487865229127802976797270917233128912294897687387216704335198689125128578243259661548008397732383491019010458572923872409698789358216618500597691254882297708857788179100741139079769688721045067411985424213041839215874051593761542097951163354679052160550617278788558081482812278159348830906570357153827812672922376851227610411277303971463353852732841401735353086942605811158611381697090096312269899029379669409923093563212018942558140055969148480299560574133061715464316341506251764309693623264716628660604189437214856242172744257516449852460214523750507163667317035818762688626322662062498851795702230611486397112192653717356474955836055052800605176608079488700013103171520267523648922741918930593248761283805214127424721947220039380855636205203988564372712729424578891692302697809255393019923027698508507127722116072233816508947478167633346793984515750633121668683708653203052131901235983966306386002124195165844452431443060626402218219454113300501175648071595696931286174086805664733459185160489226745370607544635979802772176998558047283880593878605514116488803151003778511532865172578415684816739874724294032041975583185662149050457957908478507721242228755431706838821709995170976629462924614284736617032493839655009906002982991264300358954924798128783965777709588302330197097558901284433127235461401576074038141663411157169456854444975829111242067386960442995528500195341658023552094967815268637290266174573980149849744156598584425456421514570982092093611305641228840547267527989726590631246346081066392127761679373288383897630287051272313784196259622273581149125376937482322415843182220205083668337329415752518816783199653746894605998586137591372613883503879819897254942872471842213680608290909634369781806241128249319225938337782840218002825941244612680146466254697027520980026317865238549960718056407237309015020514433037169482430020874576910896054095152815669932769510893024885959978244355354455368390765175025435111835563763376127993886802411148002767011307328269782305868077521036629436931335912828891746459403591782196276873363312065358761712205342324685578143639530099674607665558689446298967383163538233565968066593989928909313525560413006629298747785058970596429475204837329836509567979488595928429179394168603355254085110002086367867589202280043150714441469484778841345663691115180036321932584542678471841463504032481184267367699889287873307985656968205446495028483457894726470208733516278147508191616490625712086056028408110974368118038491465682187225781276100820144776477464434166421619932831344495105087862108712204771618553363108925062491504387713950993557914050432084383829094770744732429468045906360227573212239600878129456218467499874482966009522558096380141083934262109146949909028313581203316020153449696212646099860161036650024110099934917316323057287838613654424079471349582361636824874510601735007407885194447602392154657105073873212946034729740964573220719289845610630358624594010868468091160992407351352789963060677597398370451700794590847126803813056532324810039025891723389087531842207171848136667648660432559441016565967820807733574218625945655121130810430689610102001521054322940338484947453273401217039142366685796822235093788255535415772399287031732682768983714710283168456116751903635619324484575936506856856735096815872985108398021845174976639100632089489611005273950221980771967548908872169195453498297654492808974523931492138498803955063593230958674675314363598509645945430625989693651618914031484953763471780903076637250433205301584688693870589145782930813675386081108673050818964313907397382523333946324945766498793569937826122407068795184131694118973918374462451596317673572794688333482371651673620640588858361522141090822947749936858632457237359858778237963705276341262421390589499337070505254618971569023734943354721950825516751128723210126127805938455515729350254298529767989406482703674862324994713128115757707463636118493192522352317170524862549729560001631071804597924925868272824213445784184380553374477699446049271264993135821162983866588912291823493553831168339068080725709488773922628134439234270683926409784826748084622971996101191285608630449756495761220084533751486948151768413395556240563701354776104150060581490388682219918558210311856230889986757711653929301166364071051500090942634643320812518776999020333510639283048111527348996073180372694490371847404444537922865927812983560569468543254564437375405975416586208605791510682479929062416000646337249697777525312741021127343080085822101271714532399406418603366095257874021952382806006738853440688990558074635844560796266102346933265251404673757758521004547823343777175608945496908353948585015803101526132232585565568573427358903255417575983183911024707817354133955434234032103745307517104540774081877016070039993092384355786631823074710425873888377601385953169997052669848330200353041306136841131227800263135991656698959964965925907325176135953449329809518610686580173622842143611555731498643802510030867666314716409249737823657390076903045426512903691923500230749583630291342323327058322006756661954906769663959647395049961589224558394528248145318477419698666055264103497568171176153586185066575047845685592895143242328151887784811216755499267598995427839707034512657741720659825134309682078560498154129770699728027249658964909867081001268195213172605877010596386233120919127237111860690117400324985931750951379427751728966866170222799799678243116750146834975646189689023199514335003478722141162551721115128591929854349447552304505113965569954319849276531611052931874507799645178862831916378921312328445699780278810112667020728588197473105509009600742669099774791766169409933444828143912791946575038541944970629797463988663811573217209995878334387701969482512613616157637547178905911948703321301828547929440589659754882916500002517588643136581019206192692575840273131438143889011236924652846673835382415025324064665433332164221669591392896608654209366744169557485106526761151274502997051014397071569126925224040028338590087938495802794208774566631431281555800116784380518174794172094456846043081562850945262132822267500855146796088134046643789770367212298031989020913189116153287225564978712374950334819469215339345306338906723741231578472768131226191424829161989163866321510729020620003273314799156856978089573868679446429538628801495574031041312414746613368433758867937447484798588274242362843395295853851415906338974511108676503214703494708990482914910838072103218952566464703253652743143325960330557557823496325955584700926277427413156735335714288529740133433149208266228650431836359063181273675921195682954011408852410868588938666215151534445544068139521006339999781223313449281070871882653968264961921398412724066341293979140055086355255333292984763503648644576103461314515859371536373742662817736808225187100669352099457518497588752926834139716016430864826630397419921401379179315641843517362843766761305217330112634058766201432701451202801229780866592717617565367108547503830934516106035984539158631497115555258832496005623583893656766721015686551090588021812873385390389413143087572113888128568482287377233779051832452388017517736184629117313114377529044345335316798221360107098932418715977900826498350919264872960581218957584217455158206298515380882825309096010802702272844244540533621463211923293323187187332548861495291341369216629690597648438258817035407158091472924846700346211081737804681885291819060351483207189225144298420095475113810748947684087634429220806890382676422186752920199847640254624186734961522120880631023411492767643167323804438409364091888093633159663112795585287915424826653915137963574214699062044822412960037865712812492553556407139579840030039530546888034083661055046723347475543254932450574621806856653670089836920482078070926959287193563271858485196702279521669176795456152167277799547944657659569023611866493520502455381234011595731324129267977737620785603527577009093991052665418586591519591011166488707228147269345203619030665826274189321015338308021175446219366183283045676792622109677894874992637093904246910732993401469629730611988061473150008645209370962080078457575072648822057621090476626927698607111073985015421242935470181207804799803635556966561553694293434721115716250275817863291605093196677303911111422892471786317146923931458965067531333234368671137646012711946049189929633473243512794542051599099613129376334807421082072905140252833430174444802036248821844684214820426475545738326982856787163791057664302846209012787150624334326243893813378886637916660430499746802633586266340638309074259499665710081587114235887469660225494057570828247192491734747341111045375315209404966748887050062448024238917549556269881697419070919070007398997373063061890520925263466602003199379012178864980626032807666504167479808556581559021975923233803827923226460845633921430862046578776675322123920602572809794046725383600395395959555311837322090934320419726456908208565877289802062573666527288997902364228606867044064950303078251696250287178688667648076520842724060428424897823217624442574845098057265183458540345704063413621795484234428872246311919840135798185951510903599431056101780460800312135552195377333459717090283094176543880544413999003800769833103474119865397895271679314003432483744144618747053258104099784903196562823860638435109504499038862876371845081240709918381734924097766955409945024926018080728338548915000469870939694961800430910207183444367660167705965786507909697840744401695847038644830971619396602649910720661325898385736467471949853021334601119133366197124586112591335970892160381908639506775239105022891987356490526927804263551193312039137818103128442188317491163315982933999669719016203352547596581869356444373214887577345618775502353190452765014099456389241814559183496440382140218786104878555022935162144200448220732636569435677409612237162398131479352799595655130846860326954442961667981806138873689528279446071410366203939448904381214129607639940846650837925422768144140345350069751347643348361374945032072551866355859458324309242931416872114043604101105191103765630218059406591150295088471370297513620300242894408480054323750118156177930671447383521414795546127472827248533405625247834653645852361245381512389265670039300354948453287038430620597595760373050401479378687802055383839223714022295346457172719763366184668183092928477128613384731891032572332199914095900960980294302314764520972502130995292993987537990718395423446585476902306728207040233493804459263594427991932996216159859773235549982669394371068572904132691980219396203503656937369374676259464561247157107019745548532152714179450764387433209812634916463398355269920790132572003526080499122737524287507164300779563287137370185962968357891246585611851995991944249153962023660102139463587943778394609545682990534638316665009306867004189948526471102774445044733766443699149540551383467084639693588937931861544369162456102266462437434366363935938988668301431542965158844673481176867388817658756575612742624739256895543924584069794961409378263939896297575472073687102652834716870456094099040618727945415065264797174290917144197937718666064173057514348899392207229369752059723219687369477323877300117410505787038060793614872473512179412301425652213051249261015902245199178235745614798542928000213644207610583234139511118119544440208217541590551120359258476915022137298838966914873225937322348040066874469668833831241351562469460039342223827597310434974007191920725601616626918393012516146172635703031784095546030107710170298445315580760120074653999908889555972918879769918685855593858496056481982875261900628360598579705952051455137128128169401510192677950792765086526457403272211067585858358275736175106721198264275228736736396798947880819217251395617043030010407854215248636385199191352398131450731525466948120736065688098858683547238312997396185907471673866087773449523204256563604777476084103303830587729582266815774395125327389412008223163009286523727068992722435161831378426137778491001680507748857959193408193756790431171935774619669939407726109553504673480815705246995515178580152881802604218980972710822272999677366525787953619661045863372752706828036335819473796293434148546905528025679048261369666674903110835344975559594545264978674950658052719693085035904360951443116963502902492671479753081641150053060383095892878775931504963435365130416997073817520449114981661939757189559219254941283813182906527609406717494113303697047262762854912062852989643364767908405185394081469133014759395692234076771573858774053024307536218035560823844387164811113269718616467117355345615288921434586044178929312036783178249915914684211560917403882572702753113588981921071393968569726276106149173731464816501549001149465585691146145852239340089214218979424090624366064777482197095599245824362875446439162717327525481059874823578353775668047942771353345325571649274926697922946326458713622692761458654649834699583024831631637419012715089025615257423755581404045983639508168472825195465782929904625281464219458907401511402967145487128797201828146039945046129233726470568725374357968459862995002785392446628510638927502813699074840355927795490666832679294506295283234606696597561752195524002227504390334168608627957627582897264398684841463218904126221488187821416379199824674281460215550769673532836617054958413553727456174896476333522091915851631796404180530935960590205829084000806340857237246119073049467100867228575763273908393756056136463951679317272814532256693267940204428671972311390006641193344290260251964540825724215084874705120254371556139522205901842010094242098939711053469379922548330012383747893137085225423010448515036222944478245727559013109885390945280141630917041439247480991332183415506127673371166969777881444948820473652778563233102645383872283088851144142891619156592044325181316536145153403171754609769567409827110685869183858624672172779498188853040891840976724107293933929346015825072686396555743011441614711370504538393650710575229458207387657358466020216249318863128074718714820743288484021034940752312912510635495799310478830937265707142881505438501493948438650340456069166847113935100658479387603979220284868779282356427447877593636253664434475077721948900683467106091837514347500665154223996810097676942959482320430347896760646002847992055893727933123916220126514510838674308527760237170469712103403866532503297305512988899477093071667490256192019601710726929192626707858570851010107793671110605389305451521263730400250590821525768063926333933976906828361882129062043837685455126575997418661961032450864555873318331336574052420901216095568173781148662977035546186526487972300618459967230076868260232639525807434122294701552866697178834834679574265367522514270363420505781534276027966591054897536337568838450503602148744737415920717456320126981814042606751387762876560738330003688809059865360575839223549379362602323604969795273142556100021225719505179086051030977072980737859434438983616182599724399431095683935827136551049919451520130738607358832432895955363198577648562545574557429095589055996061751523893885780356195751224518579693596718236387933471734687153233047550536400175608981669235639433312610054108750037813124973883261984340263010804517925527390747616390696472084976102269534702807561118065807583061747291639322725769171381444003713465231004255589957341099475924857248396775614355487331286453713799397724631609703536535296952437424614522419019615251281427743172346220574085355212366355262601425534856244971287912605059953547506646048186206060174502410890895299772036365295416420860683658014713023311684002083460678160739835026772150570880537421132471226921527229321031434328500173005799606998969672740938943160726810260606879899172103029159221075848835468978930549390023997202112430076112743762117582883870064018077331212154136051542649402938263837991184149244487012232593151177069764876404791202131861659691349449481451861557026428116851920824153316354509686192929330696700997049792744441137591430565822835042790954353201846033451811904563209332518195027939590872588192977552913707717524260869789256564313093152076188018068061631440952738624668403156304865944162066363446178322638620065715107193456197368343381619516376403156925463581757886346217607044720009907753405399586268738178458199607787712175399564765047583876292651048781643145152139466983706834020203718279078475929831745409061063471447468623319047288594336216291968842193492477446838461093380917157355877559892362112208967489042069052783738427362449772670464820437768495572797181749478580439196808895227123199350326378033380556213371843131077250743904853589355823564205247747328337841536371106755230047698989165003889565374805864978015844695319828295771391332872822734671761605984266180858257805340646819069904760701944009770393049709179579196825298344901700309810153198898137818650435775130145496188457082556250968590692630125195170733237775885162625730363797409746274536852619203524919132814713457234984993721573710232655077605158536862048406786054469060437396068180258163240057162015926407442197063193197631799523352315944389687300113557787640753125036262112060838467830495327501386209406366508384183449203198466787214644631742587760062118112641167492572700621247223394646650471220980772652718339671824822679820602535729821811909647681852662622929381114721947303090184237271713673483590988328061975118826615298663255464050119385145000450300185981832122015970911078868955809820744190807299159563931100831328725396268234053805446782224312212044655201458414780305848904197354556889929687924565512546299310792783234180834037025624456885162176204199954661305030875501565968305582123027439025844608457173106176127189329937573064379592199502975877949284624110878815810369986342490149052635939076902368495870850221139541140691629580314989454444216338280767686408260774976101883896320312121591462696452923750550143936383226722090714256890782645539587315483007063628066999391315927707232944783323603693899046630558203420827602664771217514530247198252963503184044518886978093871535057737790932685398224480550351295510778287637484933863142657423844243694644379790772019602558307885376904077769350022464078422765406746590516010087615179453357887088556464339564135684209152811870078775224806906944236714618217471260819634503101394809391994252103215672116553673834656124186413410912596753428468657266793900464603932868291573093803776509342619188570067550386892766335244987895408162071889184574085908637787989039886150973359177318238351033285346930267380441388183466797955380269284325683313708135391387087746079231458033846642088241501262814316451763691370311898059231429771455116301898340982403028568001663592524490208690732455661952257964368350450161577786299995301440754183746301222215788676811879084705932133924832883366150486751047533661532764901220396228000806189024319583635163707597070497696342922761912705281190151659850316542451313219726520079900891427056535167596481706687487877661007888469775748243093483898814152095410479743873995942628741106347205907004983097365063705411077727431064294538143694200697775462405986939817614036905745788779708966806949391930329222116570973188297865766618164585485675781399559365528204676496787884474844915781664561690556454419611007302853988692229196160197732509744254153089515014282100415731952718083110068149242395301078525575399084328328015503949418223269608838818628592410375177140441164908410247547346174175047908028894664729626163410133396273089697891831241701804594574506907212353421979759045747093467239737863549645472047881198315088794751948661052756102603657363713827843361048522268970978835465905543716920827343030939399570648261980567872722022000995799348475476037818461625226323942085178695673452584530687660448038885759448697056489823126586042207293573513190592248064478663510011131353213966416031216460879916333149283228967464375241136668034902039793934237251988449607717891522855566534063899088875911578822113799233628923324222368773032729688039191903651283775859196533243925672628069497085441671341415262463303659954274869556539845369569605128669283781110950511873621570423808129295919804323726892142141175821549561061974106963597854536993589502675239687162250051973264165058344598981155553102669595027115077041841876236956685968794439990529524599984661083320888669158023664152703297529917617804050245391677521805772619595565975571212811299386751366181226382489336381990635967515923371928859364948610088026957030661978081886934125023040627559686599320746468189723927500358939613025008703012494247034314043772587853592118905728637390073685761231270308574875464015872443116276610111787504758389919311371642661322439193518513481160262645655744728088296954022362794992958034879240225061759357073030061647563619580446469505904669895792365624140259316230871572313920465627555943577537626503388724284248586356849257651271884134265043374571360749354696766104949471109931196325018201581657806636944566685638426318816134845214523315811503780587871397225377086618152345345703983405797588084635110064411486512574959322856377671759547086598675676753759965964143373958659038030423454831215539497787720690898586834896444426014269940946852180042589659116090180728997895558364413574082760353944310229557897422247236318846998614831381864570931444466428647494228068701396564791527879658983377298508613609704498650945252218659248626254053574728877464205459339607485955798651229678181278999710204666840225236789316090471048680081791096050550542224440675222122988622542838462816778724558780077928231456820113402548991530310703162933044118957333514506843395315959560231599997766587285043719641378880049218617913655900010988823520107696467154498015392602121439293577947756589304710079157503770412163533289939882369144123093739843666611736120532780675022313649328273970797677922535556148212719738279739664712082780303604212074297767958240640315014262223317216738499387832427305747850718467308228785767613969100435321073294636071637877689896792322923460597009607599483873296137169271966127499503306682681205223297004935096645518903010112763191171056515388161949206582854614573496337837931921886577023114111684884488310753050856284914283358203301136425379228512549990671222327216103088679368363736713558819224424137633341206048672240648976028732256677415865683646203391617272885561552604548783524989808294829141113230145864800888044342719065060712086082741522979358191215865436923917684698356010179395237855124657370624636987917006500428504412102701989405799517753810490647463708569396619259376201552947770063726038255620345222944504033832286170035735424362224329470218434456044515229240319946849059915358170876643100808418146334323992943446330568894129777014333137221064228023686011477267858610945130335598775570141294175860773482938998828697039673247498860404389627575826537343411415433018781156227997339187677436273996209214805104482548008169179098793908593883393554102041982840722983734065294227473628224831209589633699672338556023855774737339409298593168892340729923923167180524192274838505373755857759325376333847920857788884009565139439500724110907910919595157929252951133124714534628525602949207259765844240252332427643756425160785099710584139242993967489370792604285699736142038393881479229191142043256341713136124569032209193346951574511328600440380473395661835145545638022198855358922644405943470133528507497332133953180139682953634485453496492801094097568935261380994612530202649161227618930929986633118327291999701396792368738547107143269339636000543689562697095997376598040065218884718484399390266541743217946447505854124178079291059762661068427144159140769681993839397065461069462926001196760160277683522457987483678968175442768454894226987426169345270793879849269564026768774054513918661265314060299098722373961630445690848334010678799040972826123864936728431005105553122566179778797875352325181216854621279131049507828176772173806858562600284894510638146648780889745910368226415381555638688307252043934054653778618259169917681196203957998518704152741662589442386935010485317238915104351601564083927496595915554817115770719098074206814715481530855350156170401651812405679169370981037541132540151281681623172417860501332814230688223092707722850778510401843278297487228275648307081147191125327210042141343554214563652195195894292135261354027001649740253280892209080165649359255819130088186055856503287496097938507896731904442431279234947031954365936602645681764486007795735675981449785247057641403543025121138644036448054357278220910759479835393858352763331146718935960323708136544878756261540512242860352708982132155249037397122028505679271611081331032523267978184252978118109399721911597601784617499612757773349940705571342826397304918164044057479501316240898536454973320214536365699468472946888646297619693139018639850826091320249827761594544121338531580498052848275329725633853945468484065207769798688478793133794502743781858463099435939935993002074495968034902341044100794020548966455396426258758706813605334290165700345281334415615441926781425359634811962316517982473826060732889930656489280869903407652476343403654489621025782834679020573352112409271032337465116695798575931552684627716747475136576000147425454987035877849299564899555903294173136516992674519262800917239566138036330357189227382223368440519603236418708670086066526461313849735124427572575583305469987255532334790329175693939975183559873846929278661059861039337552095230636481471504067094884309666799957040354832914130767092578784609860039218993623360236184941648502544287795225106955894635405404710650814521163168920233272881634754237835375255568771275134606470147095222224287331277453470067734664162096202060843372604557184089577172920975034626039259494040559996004575087542030933272165654241998851148271738445631606490318494854590683918291614046517944268481743985597582089857180546778539653909734757767607959917479749799906335399609651398363565999118578375000833745660968300201173175801252097348937006599815508988922682393977617513448779042042721351040043609329299081543744508800887042272523691230448816517851913136030218963028070411974713747869846427009331096754449467571223743285580163425053634420200371121875767519318983268792990084189627899319579134727001842320382528694546393613709217574821472981267662055287386684136539430235887926278710866294681751182198030999636912228594218624692455698876911773116116481309870053534976194570738763084400304304286356241987351802141301096523516899071555207252514725448440781663349439166764913768838380101396967273762643454937053766234970579738026286393817702782583749405466549782240873473306980659522591184878520580098206546801868814173865762720614330201073299499323110058597346465221630390668684359600182306935998386808789364876508303297435772371706715942375294736608343812641380183665617454054223142652150940565580481346517839618289705405565601978693155766428731320824764552196144968752178825779067829308216694071041758035907939089197492685442972460186471406718142041360334358589768813044778977384975412488788400373423020839417010183716095162241350365104609540423783059032671005573693396645966549494112351032410258435769350845651700683868610786767852479777553753243394190145523252831688410065643145882215151891798731987981818533866310159576356735322641438188466051657574947529014235645384943092008823751468318127726125929732282909542853573259793420298846265730129765706534461247216379305847835120207480863532247451529203118479470927018987616461881744570227400246934259377154626696498100571833927166762167470728792854639201288665580458728128314476567932125531114542899594790567082465029870040487469210102840362386814389086041124719473708864287106473714430116073689895179640931763661047693025435008464962356185294065134939084177798425599089481526102150463118856885449091774400921938402973551784111319860814561361801779206751479821178115870202182813801366495450303174833033630463574434231854677175514023213416959200169722921821101445960402912433687175183892674946867986733977565529290547728115496127160310451031717521249362889938975093147933866025397070225494849044568775142777876975018714389202129383374336225383579659292746391215074693915682335552153300452411626967517878656835682015493133879375335322810705472842545171823127442317372983084878791622297860097689832389624069163505675280035126087694622066492026227680721337931472177091327015552819896304321239343135890528972223068761095415763768688087739735786382264050965835998900819366887901360461693950142807827828151142691942024909752001571621491090527543155926901860211729365574028276461302637465585105059084015511554991143436713868211780283255290498188070337740347383183880570820632971963675857911230271437439685167993008393288132542772532789541328776696294031636915242293362886671824051529001688297483007228360409111052388952521585547033810897683221236519062701455596732324653601169219549010235014523254873962293205782748922386367116507992713846080038072497411840023378382713661158234743681965101261942162459694273764093224608879372453482182548571513528969048484905511439653351268623063064597721137071681487132763981215940744433897683978407158232451880267476031741377829280390955926558629555662150137176462670394140835809097310025085919561258025723032809927477692884126290093987050996949345041446028962736835505589842379534249000181020129989921269379801170556943844012975005784808824522756964536933404340985922498471953955980342907051479293162422646709521376401535972525570943916688438443160234225109226770133926556483393361075462316839564291232988433658580372156360187861981009435105769723796644194653904426515062036944503170640288795725095263363166020321690953844903190324125622643591151761687950510262573378332880823347662759260092321555598924433564941013101600360257159687099292636597871864243133154771110386716324251171458173439293612607073263876307307553064348118183535949553672175695019579016189738192815512496400724302006573153681680153403415566235991731749495876955173893254283179709851516844933681954811503396198573107741200042931233428330550669858797993259167069360083635291955149450561097627178806358410997063096533958625408499871192625851046014594929003810147626057164573654415199964209974662876983914472524848894425379513506883734166240024131879235165182885110932303540885242522455921260905901181883067882552807559600331984290223634053573763001386205439650920201262759169762381863162341267132406390228439064691296763239177551098288193886668492054018990879089239928332419128312952077371562985565286828169930101164430050701388656845485958117651676209413428972821881860829145034404497922545789516157844938971042331166262857611303557835088462277138732818311515381857410609063019072892032056726552368658518893616103815651515552560987977150169241264502206807071096514981938879986963564586169935945765454264361845819520999155238719957427600370209336487301049851976273222794894830340649646686025504826848397021551653133966979919056646281054823223083467786341647900967221583879830781897800459976508151203770130968934167748402708872661150189683321245963673987335948078351059511649860039156389768319691792371874238034731551664376610941961383102096232873089171048166404530027905013003682678076337589299535083589937545113289307958260279976330756010355414676438046083672844337534859688311291996425433687603077828278204865842791065030452730332389862962743285088349469386570196723395418513858082147998831503022669895726629909393900014980092129011451725967044999755857825189562403117746536429829269801562817557753734296784374137855909372034525153077401763150166452223111732874103636447273228373420021659035015641702317420629347380052370746510531034116859305559238458548424526462167508060102839033753432579073501614184031060549521004183610043216438578797044889385853723654579802883121222376195290997111742630754540711022819523538639058552337255893955112144813582724324542116668457623152973692980986809294339534186860084533438700602224767053477622354210779190020725721037982010376226746613492762548763799000909628196882322002988398907427449179787266190576932360385906980914527465284554265819657741242013767406927703630694443745976900283948557621760539931581201687498423205070600734148810958201761352743025651284362992881026996690134470498488727956394234328676453966557065831338805887249040509640879676300453078475991786172478288272170064630722522270050655657534256594395725560003652803903989453587439108086642372240981073409682320982417427880805783501063394495086278735463125078628162110278831616363981478252957446961650107488422413831058239291748783583645751419958118162442898736706201299532483414695244672099256401797893557066599426715350325201261039387286883723214616977416729132069547019289552129747781232905011441679227227357690735392635209518311857237654041220912409652512344657746216125406565596174155021308707691294713245903610790441111813910257190426684412023427411385993675852837316683139659761861802537237170462195340308243341459882277273721509256372627085613958283197499707568223903146693331198338904627030592417779317476487341312941560137029607784556069223666594693402260672649803488164827961018173347377825556756446287300107853195508059414294048226609099058769067014206218129705123674018726837734811898235662768065208577623333760078041946355921756968047961085714945152362314125967454658942572419307766556395654656238396375443421963998141116286090190113909895748245178760816761721891034418490043621136253615371841431870794819507698002031299083046169732602569655322882861566009296621324360001322649458634842849762767129073785812120375883704848795689628397327796931198968602384108169155453374178134979024710870340045651877271852657143933274929601644955494938698837524141334328784507280635400093852480572128654716742850369388918259282893534825837189244068700567373334193788296588175980464517444467421707651588997438890706304600828122160155924246421027034944657878826734829892668937048710741232198711543304010613219966908122898638844172228223691504190864162935857629280367550159929313238657196651248757966425650292526004389160737855006352851262723938257599327861467242862761793147611226340497989627733077988369757417392724308958631797304828760446733754865931065591775780887448011075744440675046296619837061932088572780229989598598640984188852377277023583483556344001723315316138759349362344824602124271324074567339213584905429877860944382692350422148635679329943530415867475999786649560184783254376541877073547052195020471826149385436026052767521668940855389503918522392859105348037326149722304088922110441072130297690512776104478639570978687442599743417883880473842431018052812072870927798789502489493284053197397038753147279204986522956048443018954501660120004087968786564549682653931062608392051675893954843174495541926483760739482104694863470639143603946159565346104634766240475845236210236386650753808014535160738484275534013519043461242398588242758882359901484816374991022744891904599971048755166461227935320882858587015508003988590678302792860421086709356911865646682255942455620412115716450434909511852475215547952082706780533841363230771891220409118594723926433506969601049188741006813965110408223984833479337903671572030925160396470295238099158231429908486228088560016389188171600753961369502803323993912688622283528293836449766548865526835932879714865412257930670316984526025445901648556124591520566996440782012463588131890248834978553035405577030718724453706779482397527509351946906762057897439771399851358705509144449733026082410374389164715117316663396324333010248202903164170643379936286651070741048079402808507931213352692585750455073059525994840413235594852209944320846875665833582474374931419316700508841273436113969771750023187513012214770410070997548143887495215209214450269272007436528050637608102755117437968658689766202973715833819146897436951303553628251856783061099380989545585581889913423949194725722926381689332057738515909246061450065873383502400229578489595974267854299587334586886162371663766385618706666318101093827236500017052202152923923090146504275879264682018658253170116465080519216581978152287619957569997905926687397678574287850883828495434285700114184636301677928682437259968418328199310221709137309499782431910181911125912038751430478683510577492742255928884248370490677225634569389801742538223004715503562558602145593222103559088260556928640946519168733926684163702400941947393016351405532447934692521683797296493994983669136877814681979304145172358393388484090563357259224241745118567696747238859334752769322926749595219134925573697726728397739177513494500987816072331314950419634242438378062333083666714131271370940003472718142743086526030769393910287345245296807728134784860525006218509041651737040444386466760639626315849598955779154912112571932455271671206706324010115682866014028357909548116006979841925093303516091294898475508532936071233836522438383825014147422002678206675315731268939601272641885311896528140112747878575963382560046726693197916724927176604184320176819365356672606627806812013037488960346378845342808678959537970871932508539315772078796359697125060543815141414413504159679591853199318597612844424164168773580855040426755889373657281845006718001774512518721642298178342125841240477065905530049165474904403464436114389749024493404204346844477439813648546189699248543910154100572684100278199298912416802491690299292938053516716483619035401634060957759727699032290644392682230643181612202775352354408818337175068283131857513858811053029097445722073725329144232638804805946176378572023506832221928768967539607336422613812068694890336657885607962619327527535280277178812863299313109383303752256640291064471748435122422772937061589611473961603853447244974310209160045455611975740117411060887596764391385540223308021606627329127128556636713918419682139341625506872655713477495305839634572846727634041639004798451855163366636106358963133133083597905525815472701932767402647342637633694311880198061781137255399090269381349366090031164179585223954719901036554560041633485306995699588800700492713768513580036944362361589934652670261029350320022298106540644323101711987537917747012420755841500939186506133282383695598272203374618384461144413587509155932347312532129081149550646294453601655162833179250622800407367347116588052845215387283565562256686383769500351520831389179961588745930625003558427833219427882830245907808111105802458298186576295358750518310814018021038549105195489588849033366311578039096769177825835926469664833228934276851768519327378558696112183856925836350415435480340383685398699408367184999013053055996634114400946245983169099461676064436515348000194291392950179909364745020200626526139574175763589632335333059462611102350152562010598672146236761186169169805470026769074322295183263519934343277759249846264468206912795629637458444583938572551091411503795498229094722829883279095579394293830520052159021190413923252317840078973781429501609319487618438129008913461114002526890105709747610089660351461939587903218925189445727784220437587709063929391375997089627595618771062996644668676834287237914002416910500395399294180099468443416121093080917363473366225262562916690114323478200821945624443200037726321068007869502926904115445736759183979104184357151558513306255881812024295072946035978475196856263262448042203391531209864697744064211148379321998363138130287589575627582267217071547494120098782262352725214776963022525625283383759881695833556497438407057707826707778144660423661124065107018385015875406635661829832791099089732153295858544218389109202821652617684913547422550805707464754674276542656626531047260932508008649610688867009935709827721411776833169307638890628295053026128230658729719420846295538498508922593699208276121440064702178225820628225743657666827607296450926728163885519938594022442843428392199699292887606842686104261720532088478064030846463791919087816570017298251699067802165062558315712594476093174226932976297676212523805310701656845215837297824433583651902976159039689797310569609111342537247487802030393958981068720715778569825965396715697756344180368184876547642954828296096892547082765084962476322316269272308494565589808645443066560903773352537260870971308222643135594004831836121068539994264791222588473401366054916396107616418432199966409898867163449544376507131492695525011712096747679676548236339317270989695972700719084786909323473365975985699754304220484639760255537079186674263859631607198341565322686162923501349910941620540787182148947141681456784659153529975542436838344989891202122729229303910084238235720754422577055263933484133450773490875190376881522174855358892509293901348300906093333478653828957269909884549408342957692147548628188846144128043210104094327377521925147875667983444446838951415576808130141131824504515931683269275317724084086055340576990544445624553277554214568463357137675334030444750242444374319620035643267337080181703819534699089268733589051339805038195521299830768660414781164718177513001325789300678954909203055130824170345331173854388371131955143300432893014194192651833115753301497562228843247089673480868857468543474464290553669412159900065344529081119609454496310701470665112139379386224330938748693344343391975580014439270292291107240797916482256912175395374028723357238304028565374131067790442410406409669209693501094504218897003300068917505615736813353250306626405308077625120118273656548190668266908424021691431848946963214323709790551084706099319532961864263589448159100916664113539970203603268000038489364369636062526134129647748933848282446524611062890301992872255950300219045395292945761966013543682393825970820590364413229378861160676418198853022621117533994442182156010210287891714231242005909060563090898746038417910122307323991184893918795715762920071340268537056644297628915315288141283297299227149737132947309061704293604740225552445964223983184757738188385387450981373814936713208394114976970122492084455460755257174432745867537765319524366220027561684395798379562173174327977730386044789192586580501204556975066899474419903112458156262079431310934661219017926179470685867071875019080482727386855346137523422978206411966113057815423963839013426239817852126012179136320388617538797558725523555777027249474147136947086870877250821012042544342928490915565042736425962876544978234069065246776662300730134023455043358039266999954145513231779498030001099820175138238576067471413448917377055110111696724923952485580873046259825704300002804909137753143859543842046668515049128348866672022870056269289575629191227449721885189880544955085535825517971965331904299650168604696830313453821952264266522392291873132404079498096285974574723430756954136254101390065070777672609021013330350706553165881354036788541895255477158933274562443078565850047990316518917690667726120151329532374806803601268448943817766495186270988204556895532764753138538569750958734404232336125952640654889160148282841277362980925894255328611348058745599271483812120969910054515600192343044524684704322027526256448235601256372162253353734375948733866486589290959942114646811447991414026049165670006633284943650971193956928198447372932031497636855208270125945857116263677024134203012010251617501399411099400795824203115480130917570772544822892341917107933374985448923513119742724844788966812203985216747898706781423795009300036371109861291152560201436747167440865978596092954604885684620421148499554735395738336132149869703271458897866412874621632177483448830874988751491161855967693999878510651743693969014766585288085963458455067518332806798824590159476240287677366742631200115793479246481671445129237145131499573131764436348658236368397839834734818542939435818142476102050704814835943842650420878094688807009663892780843933110997490146035671943139891792321285159084598441194912266242053253608909230383306546971008549618258413146408528902004313583727928804980655417302202665452998429622251565115225024236736995128116793000718335150515658336012030469060196446898253102933117417143048915611144273499488929646414012523461669265139622393718455943962159954511905978092417100715579794480544742743477654603865446234575230323015213115200399276779221565651458140940296408918180593347166693690268709443258008140695912253548765070339894316923724203493901647661734207755430994458286142161423254569829663163988749935414779403792145828689994949260361853853666511990551033433141483767503591275482588544192485194626816718997089528838743813215237814516805096152027121233299023229346180988369478967239088943244158311192737867059010821971081056787449936401897970138190239987609912922678713806331443136989054108236151366234391039418742444254588984714301782084388418314331005942591536502621221672291243405362311172726570028138326190854340835407317435678049612950875282290988504014979573120521452112750029454285734560059523919958130477185679789411857299354252988993246746899552124707548607892682591743769084299682017721185371329291902793658948390288092986963261267406335156344712888355248984154231262328807099803333191129921540790682802339042719539224994216207883059248297674039193882264692488513882327088248374989770973627028603280047534746839689780417493177788411587667907342192376042786799494420539167033230547642091869222440611169696645072675996658071054747812803244631889746642361749439719888748251586807330115775138954590853028746198360103726026326760879336491747502321720761911036423748267584942814154915005865352252777868998251168964378221237572220248360840598325320586332127343015705653926808263504854684805794595282754618499869970108169388010506370704145357188941201171106280330387679238948147832039811380400489852829381491479562968894487809688875410085774852910228966115069462792551715570560867409451304384927107507055841915910204890628736555452513183544787017147932690520869952920750988347342380603902991924441949244150530300509714491649764313416593297413724727574941777928342124218145674372497502132097278072916591444189845206012690167830359683703335956354533541176036003115826585037714441512836122929622885281598639501952375143888631670497539214570541450974104159323880218098633465925749783638441775275535895677122465034251163764992779942814802339030040529275816056200857710564920020635895836403497740437355867837270057459204521981069169919604985110095980153458167214780709075633712557893746493288803673763773607453575654637983160340868961373444707408329499177868367937318811852184976187395120395105298642601170374608958940113543163709262272449574426237834987519267234037102539346559563307579423684228405900497172974631540855148269730675848738266027553959174643611390857731710781168988457695010009244776713680151854457245992411947029637821520760332058574485388264543956966821561193955647487775594983641588639436440921330465992956839463532689638730258580766249119508531610605016126916517327273381792935121735199529847740180800326719396123406801992537706130390202811165047748149932019695012825697532833743710158825088129850402856487413350612804379490852037318136596266530954538369279291064039966588466093674147400712881445628322167389130574837373881673532294072238183825222021558019667318626669741664408836009690982492952957909198137768614639703768984759788633334065106319686263053101677038923406260942671903987256925233805611693001353725696443827713231259098049001153343998040721507384586430145013612877306865363396858951910860547325213428415398832835923660849515472771380566128189139403010113130454315444355697381492390953118692614455013059087188388548856174171601126112387282160639515057914064175248291981971328587082583978998423955308538185478756127648183406221009038906187112310134775831389182770523465884547794690732510755486256907040698793690550321037567271576761470258162620027614740274744851717007033312934540325212044180738401361048613001339313291718962991493252051223187009492270852066197530975448400266261685421813631836311402062435044089622626126935348603006284996182683684789938284727677758603114470688872602450960490432206434280678326342559448557077125814458771757341557240761009587236045287949045672654434417601611550727037207894522930768456648457422888703634271622436574080362042001054254285908485466280435552772861710459046098784532467009989964240177567572597832640954859211484532812469527223526251900715480863384628602104673695430308107306615628025698300179250654725267578266688458252297641008514244654454444649700522353824029520628596747464157671470735761775816080775651362241270549195894694715750728371427453531148042056202856979107066101826509921757084721275691350385817304004978828541025742045341713136520393808201871520635363126614570910969303704463850008220397929625782115697671010512166019260999582918292391142109763076575864658717380375391012739587831707631224633956364410465810679548938724271485832998578223192689211380211571367476929840829398640209494442801988927296391336484966294993284534469098693736475095761502508555542234860597491030493849621980057388597796447382992631768987309856402057479223242248529140502055636798182205830293825992203571469197612761408681825279354725176323105140698043117201684373436236320271646523707096164816916908332273920190480714831740984106192406937378940109081040404782357451719035968309057687685493130475906862746656917792429821316370647211024459577157863626826489375617500585250003199774505563067448180864509541181156190847822550133453706727599299957868404016368736206312103360012296553430203427321784562780590874655926565186164413395768758008002497114215338196799145927568421959150192121551559190037780345700338694559779978037143812827401003038056334090208566936343708004242056863526028009942941106297591795663826888903922176699776345091240118048032228126307432794904807959765796852501976574701547889224710626291683695253189034495424762132483824154943514715412412054265812258166621191908996070428366395356359396563259127064332080790631813859918929137108896334106294822008647929467578336736782578436369723006033829176062432562189679892966532001287465732134500882844656988435642684464608717587230586544872635103156049129020567967507426954566956027898195445629603221129034295769842608850392760602963870349527052340225009032481170607929204532191792751962261623004272445387111508981499171661591038315229647551058065798723006929091384464771834288936594045248910532329611792625002778808132425094907079727847562661470687803723653830052680366434307422429659214935788284560633353657786723971383177615123356290977160038194327906466797709951944858783138299686045691001892628910282279843259330503623716096176906337980416729149295154381998258594930070593577682832868479745557701095208640884621351579596575518018682834880993629136280088986735158507445839491669213574762377373024631652270069391604555373552692694027983823673106140376889218305040989023337276458193375759557207808626161459095841702481822838047030908746071844770710134148194416557574350130281214531511222419733667426584548384379795824278687053559973685004906980019356886962861786732118849539946715934435318659514960374261868512493003062818197282998726272406659521114473414550684907444404205677777645746403564055195259192054019580075080088960282242934124688149333570978686336884542468806259908081373871649834933569243992831869621907966544450189346887052418231321857478755366276403131675556134467799368513718058915199485970357973345986897516617132150224899053298162411499472052950437156679672404517101569410445094887418438105005868136835756582045688882013873440341178252598183808216208766865447944658804165335628877977778798923229821788901991613413479905684872256858790702788009293995029265356918480908723534997801828084603774654027310941264401753733224165244108202477042504481656494153647419552398775543429986064868898034886945225518780154043120439907868769023454487169803900109252136956323561661018143160433912367939041050181038107668141891176843697535227679316901906218701515001539409336888801918624915359152723815513257187034150654843682782495537069770704510291371595922220303588612731477131985935275274025521923077115062831160702217657318126262314588482249577551180893620357960185212068308785995929003027447456655541294522830571277895629419792190028557824008121469090537235191050234604034394845812964001567457323729684007505811235189294396890500770764928545871014788742017434558194501268545872869326893187441934346998926242844085449751243402769109953127229597597508518366801535288559377807804460924797215576191748924333785844041667379318746352747511142866987481957960360441054324203024330041048775114469705370735104103696920857766437045107856182658929074676556299691757030425345787842927058819291054124738877921944119377077379591583405917603064222651732782019230234404194361506260893788612181480958005313716125428404835744876299448263124513616338696720719386302026822240142117946804640060287137914901233399062040775448465978432084881450535515594981879710237463583154137495756846026764061216200635622039877919432904192041671396316922620357358941238781427981823289705387365572197483036123220368372483626722133046043563667157268365276706481939018504962894237006100294810077086619888450198728846224126493906365778785886458524788086110596498146703600992877579361904108877099058641989671615468216596502173646285894926309658100993153243997920464802141517979696770692658515679011109096607367752486333033222479989069220913071343224415157829486332789386981009142636294670166311703143761459506030983599824706953366649060759845614602596966117728731203326638803600169128249809820038200537733614867309735235374924450944417895135896334671449741859690073530023444218062201816657468371205907791360404289173854058623777210859360304656592580484198537796839202315250418844192932948744560388745136550470300348083177434580156321600455382206951527531071664826757712615260030770893713105853532689848212463537891551800869492817744472591652766468396109729460644454800307966815096358334474845002498127466942423950605554417358549400577317344438824942960418108007764612594210380381900036961332334231987832273651186043680277524264589454670325207948628572170938357151613882392678444761829876188716494846285856309025703416527499713133315459529888442678268584798869941643842600837663995826793405587261777515000729260152422965749909278570063882588797679498887718469234195480041009308649742039897434727659237478701045000241895556481716773072886913010566305097853507174701125723257757598160171947256601018793570601367142738335807763010044492215644071088074600070801206787254056328007375471960696026064388045287972859954963862188692717442120782015794148074836396207235665385130978347167128793851197808012401725781894925264211437867489798295137845040722623623240676404993324647001847294330267118193752196116033644246794518537915493964644279023963296341860259512910076093353680331253156887673440039840862727627270683684717536714096234568517572317538285161549646714671347529787712080895351572997629217591818407176404474149564016718721854955006297757849202280893416618847759297926852961596208933435612382032764555776986338206390581529612094951160696793017411701555056441256800223074510309604759775895161052974989102241936285840930971033932453432864331238127797359737882107024880225960706091720040681547773445165795617550338064214540609051800881306702275041962259205846113909552016035938207513335496323968975661413897531028632007800721019966901398296730520694858111267937908076135944796710736896957698132611599971790524785909933396047605366326608128291723822999864948550209840656766915004303503972749973780368638043126300322072933499208077036947217802146610913457675599647394081382360380133812617166475404029399638974558667128462097661182003644243868021972597617171142563472682791724902055453441043232387990513417689827373355818721558877431725771738076589571339023385927928903887700129514780947138491374274355063598726539459548911496940288664499865839675736041504939580919396986030013773397674263160105637192447639635341756466618529241298205448068160375363192448263883918927980959551631945485568381042734803479023722899369475872936420902499847720058869402899765404626432053724150005377524783314375014124066289058615066326920185460891406983651684123970074932998555910509092322218501798789653232185548942483668167266846606012128500708178113643164493814785734437031118168646737257960277579114114406963839829403824807717197769733087705473688967785828402196145286845006101075293393261002262761652974989854563859005739305995403235244581794795759393626730150364136076800159320516296398395677032855283767310432285599090174921836523932057704669341927110296110716293171625964762814921696023560555371425306378351453409924367294026099775355711661701070118388742275897436228931821159384929122913773941916294839851187140636142067889672389992091641163278286852220852033930753070466042551550872507057224925361662153365814198576310254091172644929041375493437632888179015246760595508970131106233199880757620006619899478604466163164047236807219065520888009852692686626215031022256525022997542146752622622431908500185273597443834493843210994251626701477151292961484574658597240136363574821629543624995399069104908263885221896608335105584081059440261867504520640714821730527382934478022942651140797220995766365193550333619587792342668030959430171190710686343285058401308642447966240789864016744034289522933783852359480361505647069691995605316351275575867878988986599063694247723266930161417386210304777604337930452351361874139261765121918309358687326830685387372340599696246588631767496127759297523768371098574312298192035534986670719096957733429821710761069370767230558657606313679556301239593966940633150095618961039091196026157746222846665035942119232322268939474309778765789304648539133229691192476564935776956307021355189115880101699955551758009460369050635874226737166126869561635153727378323929852545560922707922240336482165265550180039304262456789672899141195778691975533587834996681999909762955551467199267931973824006803613676764248568133702636782540232083634049156947624073469412134026934763184719954566003531797304968216555134963146334186507607319395869723217781039729623932855333552895145327879575922434238327725592999620873673311770737702525872832140230733152878521659395368035744020838953839248681297375012890344187147794226159065028335038277703097278120158871856683134375338422814423404610335512697403295649989407231418252380763841897368402612276314259819449167009936130613910568492136857062159075277078422317498440000088342368326802847350839437269729903323021397887243176821086954010087509709737217716956099597442526257278951330742203863113986873100052685294714623724508389957655041227291432116156506233826183150234280408196411049195122749895945770762314432432962235868245474013652505514792150647368602491597485512192799611197650266738137955815297305191360015082313520087217092650652632304416918758985663731307145497022919361317049979932902046651328068162731299089609898907870832007794538638072066611019890837446067904704361376562863922314683061979117731537557524720171606267093111813338220375830550048967766559373919965632438627402407157380993422325881402662779071057216941391840207977206816684923487740503077241483986581614120411322704091685083371063082004301656460596389058321377999519625310074242872799898545140867940952338371808914926604503977572980201079162857538050840736379171126348426616271235132754432394576993160321430779876119806261928058503904858846806875026548760865851304586969366383830063802667771411495591642328030816324893225677661035838468519783090927533553161056191128353900693095762693476400892285782516616111329977635377992016458986185665587991756856775548975877929250075121374121368764625318548850290736826774541279595147777049547339317545242446955408619654556423339302718746136421855073733083516703073767560432923894708606482806696679055051620428602098753215075275344652807512770925257546606789980522221100852234415951553517324362014691415823790303582260706752854881358160575011178199933187797513553505651204693015584210042624773502860624364904144120128707401478460884248299683630921539792802797344714272976782527534723331498316134211149451315142890052497844997451359861024832650408312241539503658082317443931013561533336821037694344218327112646942176229413618264665634930693405032136300334260685365431730324239078358266726074111431195292136424268888407400448281273051049845977694734804707542656458179013314958070802247784830397142031992542443906806247157820323636124397191839633304141028235798160127535988109544138190669466417307115782031550547594346244481419096753394926438321992719212735016784484265229165455976020144347332686404598128745873190122363319482174883913106571372709391821171784570262704977628638019945932449929514690493544161223312114124653203073112150185587060439536917994614140661136531768233341877747656159203260691379304524916852097011453620634937194834992875322375599891366187732973126384396710507182833535983454439621000377283651059466408575404232578387564457934946066019153806006987375958393303073726766209752582087031802892511035232328640295715343326040962607906269062209554051924604345999238947259872390320977952933601669576879354517637108262986204499195386615589161141813351749999050916955457953159104993248815697784679874942510398851940400771332989719054547575399747292429901972248151800459060037679586115942543900114608093138959350068594909456683974450953304936203696946200092059230736170435818553121198811641530257965973629199056560089545876231305840434256819840673649664747106678694335703902248867817719413199560669184318235433595869018071619165736032158528277863019637692095371586761278662840917899562080192116576308062193934773373477349308124374919118759938692746423848690019123895213771765133178667957821692702062387127501136805168854391425921387890681597955788041578825733811803630533328684393716725251133085501366572644428002929139315907877813291011007374579495280322357471180610877932556916514586240092979240031023890874884364627395504020222242902275447510611056212932461504233452530640760081568187910238181472087154418854546634913465343025742396011484010603644056157891859174336144444259399179317659001212168747617840657493610310962313404492341025009676871225712195314897557040697100891089216757861486922731902872408363425475786923682621470001239932606196564016968271246852265419666573772965155475041721609935269890208711405702956133540760332821165418972130696939796881158325743871216122947747706428677611262899398590011252168534105963561402983911863322550924156512469092409210643257745628044923980867066850177989434756080760044221628287506025197412164835246753474252788641089220315291467204827400267175987390664683418382921752025076962363195731329833639014402723017905804901169224142127667380716765193099740661492834956547176920704692149338205086660673132868335059057246284693730084471979475571259652833679665828858507137316623954739980286683255938841486595443375615351250529654280854923072745087415550364089728079190305862656055986851978845064853591956167232572187314141121571381258480472724856348665339241758695350977497025450218802023240535868462944093715050324750884934718989882022361389815579737385502804758603420553072763409187560940236027332961153006984700764219608391328749633543380741342478830025288643110513236827772352308205955744786948713510571619858663453017996245288214912351343686514718937617617860694406459983381961557053965075416133479962408293481158395866225716957755833848063954544091598429291491050775045851986437864993065715799590544731000564169849830652811393354973513157700319688007168080470685881864928777434153918518633804777276509359046640565902655522828428688560297995504072809882441548425008119315325750600063183633079876521880384050111218675390577414877574230286946535636365309157311099121803516841995973190644644488967986756445687462615530787660236110238293998724431007646136299520072004499032716964985598410320559691219331027508736131616930263620045646512493323511784423009565213051269455394478575385316470936988798813606763123122978111783128364816385099037063036548295461487727362923664442194328844876533609628823370075663657549732825349883176697557334387174873058341947789594105245587696611118154418311286817604377150967900245200379829312856561433409242281639325500643563975162457970042519265623819791207502055880871427647986508368425790827910530350271085558939467190000685189024325228117531863822151872214586929466627875413874930638717343744581185529156983552146286216951968074195703649664194033430811178300727983897184367618940287437115858449396780810571363720446315830028136290735493926862846346559854378665980002112997101467230026929965732372938284920015548097213156062240623548978234229664926215824910712084131797519759457814460037905490880627392469352724150172414387351393147704824293323251042185453115095933993541599246221160907140313369214757015593310074495040947879942530304266290348793619330535445033852375185269301031735366168892667921356152566415335274776024080773797496787148497255891608965255961771901462859373791368102494820591989433427241494013341832409280254756183001798890746599661734162367240494999025396821997680732013745658494875594599908659983096805191996929680862903752688745140052016253999225886393584720579380763768257093315061904307359965672055791483733829836841885885563231673967602050350736170214394801921833871989726672001525719139443873242546509079637800705571634468340212096468437458236094519547707913222088983848553960137916060726259338310855782183467872787698871077518069427887940628830999534302771367262083081665967267206837683053831655580767310220534728482660308741599945013766528909258200045333807737154845061462367383545461424705419117096536981373686266339400084104862536685258310155968598023382363112912112790366753478312880625939502595870723466477267010672823266727958907383802922089798633112411959320980991696672001384803293610341668193123368267296680830653515500504839256693671170352243298229707943774225487524765187567921627944491445119711546834263387382329627927883582139345765222578569301192923011821151982482790149006905397974753525971365567620024671043566529804932983541957458670262587994268278506378526295487527922340487698828673959793257798430692445528124584426997704036442994260455198720017490391910409050026604201315621546197872655246879545437353855644026971041690176669515670165325123046287554764175357479872641940132483977988404098378261623111687623385360802869376775866564069887374336353232891693919090302081313739284531365960521033751572434380387966886608660113103961442667690133736307780017228661192926949664898399197231468208934964207541477775801237862037313388819264220703270192698465462320827644726215770397754487851680147105478975718205496047717969583536148246751823783097501686603309329251590890976196385354725069588726659233141391189048168269725029757693686658006532734129340428930544089120917843783319898837620694560510680822329517339590388720515967027178652137277010735008773518678038060762289905762119880519415120438004442453247394065839630829035049542580352393142321535487690348691856778740654082895061054901414633035019389706644589065707007036311370745672835443107917516647180854204210590577470234794139702882164005401469078510496329279422217182266135264399606690934118604508919373428264757964363823899500452549071170505800242733974218560591892028845500251656695901131637216925767794725779542648836015736469375719062907470195625070965150270968555516206640622970620029323221342341153506100195703532338512290048828800204856722867763229142856251288217433958852587388384033793553995758619928049651663432936586929251962877489578974681322317989123314314719193458041179271027838209836013270160061469791554652254692897233684479820477848189058209135160488303823485472836209255325640938673333278590336038276441908370595001428975001600042698839066381337216271183567097907621369030697175791827436042229981529933549698253732562540322556382589011419322642061417992428159240276252198517864341062676960123715277779999712303251679256345099159828949244717507390207887152131214848916723155329623960956643538051471535533327050442559042550337676946705547051236100625252673508056503637304098356262006539372348959056373341934286307214821702950523831150766332589347460984466310419487109235843311189326988777647539570835775700565082932525495038782399034578944128359305860625543553987100650172113071999094609549254499247596279844246457499687120324157251422825334191187744959026708933182563429795109644584894846781070346996024169335251568421854737058763097345272563942798950228581362984724311820877779767430675267238650426339255186755718141910864238934697129682931212759013302494853997189556923620241914494047432503669119674075410560290850180099628430635863785429223321295054463519759400303610145232333606016851991194385168023814170999096333865987947114898852253327725603059768431475461143402451301706193582077330084694022056134974859895764076993817117115702017140699720910041611578950472580204089644932756692354098804581978374893932902164628134905570965280864741958806563361101028559124072327513810717100869185658450887744963114116895308899819233784718535352447239469209974551103542055674691418852119274718035666672025551515307741975805683501549526968875004140069647758834518450947104873008967424028966762361820160898166093891819850770758391215513628483088595748176340899817454427734277340215186858465776599018737405098470305575443689871831373999275013799497334644504878644841258008316296654993961605908592271364464231395573197645529747753548224677579918925463973183560777287061244223203271156423595040023657981353546293271794637174914895804151945768357307561620953057411173920632809089667617502797284136595589433027496440869518287595680520240906400915077435174146715184305600714433854017400166903606961645435884325233222465543071858723140580896650768590939955893967410802587376509727299079248549460312060208767834611335789009077456837093635377152277238541693741131634259392349270723032728070241264880706223508689126118927725757374082643346376177698758812403865195885591395023010461330112721529134551476812451659510213406472274200395525026855219779050450748657944067490920397830241890112959568560402207441502070289003573398834082114245270722791163522324387145908093635374770714001837545465355450577624151489007515015108693898338946580477681008053036283006933067603556534498737147808432675329185519200416474494888680165874890656464348247128043206410510314176156844781355504797503400959224305963540814200299727961189043087216412811739203920395457375176796192498317712564313549297143782913632570269338235922091441269578347988593624322705018399623482003773773859266607116006654525385100897515943047612928001099704056336894703329755644197280193280559744897908413620141203424170946118607064979606243342602485486672584796247307301772471088008589492993277082928556941947487111634329493522699163878402080719712493731683967904355615045968775897936587027837898953338239359781142337850284975502007145346731692921790329996495636550223694357972809768484216544718111917316623608645547147398967506324333547867340576801036363103019506986732056701393899782181968556882496877433134147313479911286737921222428528597344915419317199474398040160355698749389930416633506468974635994672783820047440146471529543930821377298180055191233848503246327880654161092251594444109881361931868437635992031146468910725466242649292235277956873144203970930907890792261386642128896165371981567117023342549389358840616571581108508383994655250788320328495870725907117230172245455415032747146934178048045559953119206785313003131341672529483469174829563496730841658029781985451020853264526056275071483121423296115751074103306499563909821908999700140079971100778215409428423355021124560039263068320598772113639345768236210101000173604723837238791444372884769636809822369008559178227353925919031778042216151651439263440854897168647139965888414653574226576833099996595904468366738926316200698576938647603184985198187758615540965959039652960723253223054243608837335097956600060662557125868327226827160916443406521688866721376684223462496890932256565412859034121130624586143127052002665012542192545401846878913829429318699937970901712342109867535744763800111958590337587568478160621498772221988406028782429249164907595427065014082000743999016335976281974163961639227777927039085880476426729291213281435156872312296989979153674994370807632961858531082436465213895919321694153668444910954206883649867805067995046735770010728724627005609349692305727643531929769298823377025429688186324901046550080830963178894514732378767490413849224907831870700993630956530730981999925034719993049912947667706340785748655924104904378974893602153822589667846397549628244756441257855398033617480913516585029659264792754600032414181104196097619367105533584663897769131365410992643187050795898442526108232758980965228842809432876369156008816347167900685839058661303528773737614234710986792277259863294451701905170498334398505736522488799920912963581639754928096909658722284636525795629618059483494728781125978877353660207726611331169314107456482447771144911774707068546913083472989395447987170263885690029281504705144108752313855565152950888286767464993345239493215183398756872692277311047405769993328841302063035622902437651431770434457154104092106090525030890451234100528909796997015926770558528809270180161965924391009310596656993503993490911997736863969825781846904609501086457047134143650777931627492955114326655388123484778242184521606294183930873502768695667498857334342284909246349054119551700393216252831267005768398359940307712106267981394026112101177415597904039762276224672058226919432311768419466047575930143878026295375117739171694430127706573595990581874854630403167298018084506544164271640128595165464138738971500192794207778960128669213032168925499789565117798591236653637073274909318787924454242688223403073043495607575146150712215350232793892701766776197941188808144778346891923746137247141677815524808316393442262638575081538229787607599893293613991939109492321659360593297285032171585187078830243421099043557361192733499256310795024675769869585464359005654195491629871504005835400053503194129820983028995445708644197935873825664670766790300508930388056234976049483024334460332153075477177453578617595538469727337242970310636267418155815298186592601052522992098049273395939365635882020170174220506152539127916244732174309088444822066778901810200409647844166376293151614240312016269169780126832646853485303545902892672037425790607081951649774539877159841705744532026905661799172230904898115861145996849926283016464663296945705498860069871208745067966418166029135403543793773565990285773630366619583677258323154070579061319858435792311518462039754016324162934331876733810075021341149770432543307729598835009304595878979798539323570073512597133686145414714830707893106635743339563797810915014680534089787767716838025054982704171362148705915159559845004313058590834760120325364651732247522022958404497000057827656428926582034291149895349417916175038868289910532441843885153558940812307580384249603592277511881533168116625682880213271272881146142131703021241616878118243833950051829369754294017988763442989886093452673402851810460220560769546200435445996670484111880825558552667928710274969970897369585198525600571645905167655087893213300166081683136652912252043450628276392791301530095713824385736306187921358756468264296745924947723087578302985125173474260812649123076895818661339905223287547843706363550121401510952073641857554787118841440168835145509901176284457436884200639018220910379189377249308122492099001016333193949041225318405306818223483720819139924799845444734991195624925244142531724632920099605516034148882909385015843045803135623735874913499983153492372102694885178184861532091910726015913322173982811487472067657915452287437873258072713669972204444768639796267917502313563872268673582317773303403878043242557208589534449501863244158145764129831831047110868052189150118933351584724675350535574752992343772246024651539644267235814144195779892200538742774270468074245155636360970484916138278553684460384143937322495986342042858503303213224762499623774868430244471942534857279882277356701998579194975528534992889119171003240299418358359322448142079978108926669043683472947276501387338487509960424497383506617181479966490847945345237709186813333666481245314091169134385800359079060608834876267708009143263207230769362439501409334493323354996430751262724801602874084810890076002119752246013762617655428225680209195534780547204557196669931883401344295833655290304747636700031406774684890024114173792507743199656227053748322259192511177223009846229922013720114581053126295591628291026400533301453543663453067815799443050010999612837468550054344269182860389734657559577964571940428600557497822693314099835230502388145601385707076402870415372653930429207913090676588220774284288820364917869016703830681370660713966456870075303448482596393325030147690051395848005993489554526435988207901727664224523054849467466973224522785121917259806213156798117736252333365030131350299956447452998734387234696452478860540773421255499508630116120415152722321311623775658227826608954158395031131954096215273019981645231386968186720042858751315732265596217169409448317695398899003443480210849870613644477613844005744300852270360256902173713760685765169104627080294692497285604204243057774201947582790972017031628597357948085686450656839385435361544196930655185474501526610694395788331886364860821111215570557931887842116181799235980697394538339336034234420076406067310439635533697980369138270379952267864029388966140133842849444316758335266402945514207914438768363155284258751815320827056775706260732276076436113686664307065539951129484987892644875035633475348715866042493447346846957842851246077803487588100536673896287831290911347809125065836177623421530816002039612075827153723507198788627026685170180988757956902854828340190443566097588257952495398211048710503367107836755382616760937835521472487654547260640433738291030663962210196619092416262216478474618297915460393300261075586714752007280883427001090269765970018440969261374523827102954588554849375729199468485113657088923453105845777149051143587856962807956425807484517741945594787200163153677956148001153778754908407878171817135891511384071705198208298229566490126250919991118210127225947735526047840664116689952898208587225114938005693141612549727408951001214449316405530997532566357835405937671297094717885387948228403426887152473054556253531988553650936476992488345475591452597575540145348055020445556898741876331533081467183877971619789940990016104904007480747814895049254958127278665733487659428847059154236806863334877017824862443597102444683509838784005861462748363620275821494082369866693233159291650737494174139253969572176082892302378782671863096453158353478276897296115117382873353512265636306114948391123015511101436292823167889199206535282548892143440618136866243987616929948023468426651684408939351419833352172283108616976577365666805279948880742599949116237009455613582743487196628194833305761785328761011062757744623059775592628455919838704192064360813759298539831410456694782507539200392032810355605197206152125651852008558285986496603194030238433766824326816436296252665956151357040717491148228706236349601664935233381218350665440452480712085203105991309466846775604071299513445649004818419080585333452259056373797762933929466959561326088272533358045172015720047607369031680421571149895343795255537815916724106912192863335827446861692989096903889178975752996347962158664575085373781039608949471265012382978497443626169180199847895037173382008405522252785255164130495304342279987741467568855985505695024666279958211354943123490952408571385350995316660463805641039472253260105173205571367272230878443831284991402323145311913412197384066484163664287695163193727298010929322021424263424984491628658179898538858236469966243505198003448712368979278344275696576374335505346128887439951950504469634077086029617198693619957392047667812772320391681810405569729810759615569333440519938259873722115012805371252026780420879009034752498002793142139907174001153757440675461520321608859074139677779937968857141473824140826933625291766356852312165376962257859016459318741528308591900654741791606097020465359143715002928769242652405806118351874621049851661881707482859830925861814700829126683668149525837803525758808486520427898314495325867869815286139960474913483803939520479518715529994511593588519319797140780993472866717823064714776631301325935320721129444597450562677280663449114560553647782724281062268377372530547924535043328080839958449565860661051315354784734320924973736903689968421093344092060509885259044839312592762424006735147287446535258986681286385767668463130087084692044314410332586695739428732090515215477861280065475347096755082436954117811999040720990689975178764289998714945805608846117832170605402831095257288151982439463267499894755838439006056241715193349923671318836007007305751093693845249961174182088236535725234016501308822187943151718239808015528670604112315854030693815926351383119742487124359347920009928330409996705372054166095605407305461193650968640376969051648656773317977238773333493291518986624771423407494142094454082910406977826565462655330432571580429035073768525444024258410952444010366871314573777151592855344228585746865083184605909793309693169770112945138152410515791409270657522630522115525962023139980252331368318772021238593831161620705363494296111670098131844587374834136110239162738826245902726817188692560640227128681409745827782033452054404731477685885061139623983187101267729305127547729991547101897034562314748113083992579904212032174535614464388006571123357190627806872056104287325140542072214364464658467532473740952518579452889112865728375855588040942796588874803642882574947207143739280947548169158853522211594383762478997323330970279314188037288330648683619977546573721256299281212669955213520197560747937058754659943129173767421384168608820318599567926610069354789960001944429212707398347730268720899024463771493953561251536905367758947535830231105743538162264748316579427311974720329096906123776668703806849875661608418785950896066381842989631522222102831714560039078648153132232788650201407968220270458832392588273989079245446618749425509795903992083548640415475295525164492527287801786100276437119986848902915684271240576138706912756744145299930944586315184536605898900050272719486281315664465901790093550658241121686260335161336965056156192943513116158055590884828500170631624542333175273921527663162354168252458021859014253586257739243651860859340910400218950299380342820994152864834321778184796661226336270985055425154492153798962003044253344467551319795431556914115368619835745166455518561094440878482189150063281555225868497262779835358442984027083814250467118440374766062575574563161668859208271172162698765936184388956926644955978733883666896970520936917791332393771558246159665742480675049687005804522015060286903701184837591707224615535246502519286774831845635980036433969540293749868800260699172482602865607239112190093379273500627720336526942214523237329017362250069360127141506598397259353943189336372969760250636512526422164748488708238249142966290608210457957175356976623985511586755258459076502211798708330333937961217686359489527243154382504730552157391369147474309831288779072568358530878593455822482250881718446538523414652677859201240409115833484909780493791435356385907999980844251855923418961000763255827228828879499343986082667526328318067683301120457210383823096684343083288002594556985697946351687083403968787629739615002908231639467451606554833260773339189901989187981295604365352951724888316296818523917880631007304687759495610264937016871883067388027394003382410076291026943595999232394670858413780529866314958232060765720825692490217940170084276105688395922271001095474051000044562984891948004255392001146435315836786479137461821767815508379118537614929770159019866470850880742267547353257533491423365498275459971011485608631665806703794116098587318169154134881950927697459183395773734332156910724579582547031850944890678507518032640208566669331768308659146061097097101402889218942539546941512036951469292241677697387193522206871431751939179306022754996818432430229847713730175374163559665479192231532610224634771130559434024824198909672461851719441579066408802677000965540028762203780595813843696307552218079865069037627600738909978294750087741436889167212221002344829225350731151645403410884671123446880581055258736186190064431178773962220278672619566490575742505500967656518526900429381033006131265423964138431054046497382124405723857412326520622096634320391555956571279783465543460549105763245829772189750810575258943709846038285712675576762159097961664578118207871676333704008954174371455020778354927833680968171933208448539963348417481900013200482439615027146304435842617755951466022193095632056589408629189217770725808390231217221104356715233742412927564246564372831560497898674444216380648390128381931121385069033334793327887749052517258689341074263261615915736847318752145787242101197722987374534007118328789811795904958317124557501375520934042134306349987064461413603413024014382085012066825676888981409319930922164307026230464707867854806131601582741069623845741491975380777547093699010506155283446658594434858843940036729127472945273030204647798169629421379584759428329414335674882774364329436111789211478525982936776128848752980342888223505589088239982614356748621336182664608094221757231405167412774746068778371986551976953312116207167930848913534625876144538277183437618802565551470420254707868457839720991974870010259353560915483663268436713713462303691931626709506530885523119408479246211695496399794399840516204086790108263079913998729279023328308090857681206013144587214135615577652030427502167573970992120141976941438624091437850504705176811343067959188520924311380122682655742535503305524548515056722357582753177777532788617574138036773853843681062077212264662387243052475544892103961680742089357752473749278165452640261782810871542219354994871279765437260069430874753719122967861610453256111131768809284564171798069865411172791591219405518486162771536310736050614411734458663818028216886468210634113988664641912516549180546409153609942794406179298132188750999787723482568842270773302125270996520572915120292197014272591271544723186312066421689899629059624252447568557856326663673094242599840463964550327402462537551388360135050699979867308236203205119477043258613258665104199850109470684803849172897534838073199082210436514877778337088791011950688486148107856515335622985829235089982500663763598046459583367763215260449449858028230131646000370921083207889657727560630360767317240083411892918203800142328113254962776691262017369290117706126488370359033757840216409120770639155845771549231588020723582177493280400035266783212541837143703475189442127197045199277990444698911595097120749477606614507182050809480882181424773639276674590159316464524523896239948165208439440885959919045458361733808639528666169456554819401199549172627258898369980762124666356505220746485591303733214054490035041101485413483697081735999597119054465626536381347408121808283814589772294676910244689148377809637402951375935147564784553769329264165123374307218740439203583746443969991615316818813450502491970965439895501558163281904757189107383027744250184869051450168742005575342973330872155421488383913633170939526458283541875645329656547685122416346362792128629263745550541785661296931027674147709462387897824138257868708588794527397986708676254361449900093194374903903431461182534328292154916273880289932641354738172153107125260294594856849802967571836768266623590208355735415557693076033302001844738007014609599463583981034734194197584957009939029386678776725666384553280158091010522451780469376473050864252665489924929158155947786666220315554826447534490092540398863474477245741325777018167498012752707393947403797128317219416866237292430148306308387001743536826595516919751738217984517222844278717306258515868614120834025657265471042002028809251187946863301178895132465406265291763367264504778982169362829828694020243060348076625794190305274121656642194653506043889832251681850197738455155835910865318657464291818615173067028841208372296863343694669491168988114504420139273441912119367610954631166991988995529992385971515545751334789824265561189969483702446222766329894635434141721895757254467417630836658228580925294450676935181835369092300677716887053078356367314834376224326842540158719489868418540355002421232977825248621976549333327398132212259011722019995224370821357651114688126878611500344023504589114913349474930447197020631824459270190210647615363949787184874585898120285897348819579017152032604268625089327384121440987034351816589929652897683799644600345941626443871627408841181857673796526091556594656588427982342576892290477571223322299873567411316066265421924375687605268545337384612654022884178456081044566978759413230922275087697048732717979844074198016585667858365886442372312503339470986991861163330311451860096333159996654824358072707590421241301142762035152401178238917046891840070460039067791501201617880840321173199075283991307764217744407034553792543313264012905308047808247353685572341985043788893857048387270832803368417522579648865048951405487813315851037115460204025140510494585338648446730680127421295546375708434522875236654486472977323868776873318469687332972744736690793232786001146382668883807971727579060065815732863631380925832628520811200044883821563442059711517703214007060809271431107165657822752674041030354854097362647669257871417222318360276686169192391899298939301074051189019978540244488379576207524761628448058619827626380144442325718488382305492937312606427805475225650161961807561245213183298942490155476414138311561239309914042321681024617378149485620246783267230268112021647668537769437781977307925583840237668458451546620975851997313054003064810251170615040169547315467900051268740809553889822455259632834743903486023239134376038972095608773895874463112219189067542890327006017791147389652079820430041761178303165018453212164669221625283461534616435586431019752434011970341777309728231196841604688407624848735930709849993459901274912787621865162016337340329807550803870895653608262203209833519831733982610599054404922936552572602563468872831931207086715096680483293080969678834926799911310509148212142936858151417820509631667510413139479373827460359948027817390029214579941699929753549870515508934395331478454006309828948927232784823710358556607096982495981545349687288005076923873894018936031706775991899422342759394797743040857065793718376754874037518554294908216284320015846236483984718392921714418726483976020409139231155457199227546043181398619771504567777320893226760289116587002835549086745892705235728468662806901937108136573346734847396749937917344655781314177333490500939945235315248549916074347742179121924578532853902507484981640236857642711123057038673648366147892754848050142903294908147034655367656794529028645012127319189716450650341426341861849376163153177161406739871593357944358552456060456118506292947548648618266233518488010657799799744276903707655195602872250760372376485431902480880513259827811076834229735266889659203647201127608160096225467256244945955476013679020918489647135898500365380174550219021734958184903163890349828880404951651356752537436716588818850893390467542099695220820269911571776276777236685768046550604464258698018562620764314575469729288180490088294173001325783196463171247748636300323577446846801677589295546516372198473216940975835214241818754183659365824919472258385846092049897667976739800674275482829447958661342990666843053516182083111575410351859223172193080622212828432556450401631462840589951807908182907969790663088025937479720520779459306889490641019646894678215141165301421717059623843192315321544558914066409585027704766054373385202775573240310995358555908095457558552613371878011158329175843430207202808536550362078472321989332831814445382763144154265437651037671377134509999513524054119957972676903998688646041918099664250929202968126283629055106260100299156737226907516849774518057010617708336949030931841435208538692493901389715362537806566140356979164413080248610927317963378379362519364330820443999750083931878855382107089361130701698230815013737250578587229722875306503187766876883678401624483883181375329122669463981622417783279088713956292935874182803281204941188988960174826095317438923159824881173577070417270648383724591780237134550740113236208041274234639218042181362197721302775413496040993884860255433963211015483215952574991144236756805577313707527830790404344121843180840951002560983548138915738333540515746486008652106555068656843198549480819781189335120284789577877292733318942425876265504031532585013182218392898252844490478968491240332910216212656294133155294382953603034758134106955730783345308212196382945871762091713162473327982333479611401483545999162886146054165951338142091326054882036854611896594585601278646428837968005756840059683149510055676818573485821171966781166283623075518187955144568479307958996201129274892592810526573967463410042563665553205547215155181591595432550154964171281031341341897593508408183904635027371343101654304341382140418878028352000782397652999871868841301128601866240206024403045807917262738879669050885690073229748268791040508908757830119258511180168458126129240204631197498399468098267524593089274045127643121073118680974708057380001132406933504644357756953759085688578977757523071800994086353497701968406120814215069875501011771901964598298666392512714079039559132209734090396763388132236508374566108271117764791711972451090501493290130570339710653190616749300193654261008689107117290970622039357954412145938129372924884919267486375097227939103091779840009185735493256650675667853291380569845466039108835748047531196838900944143309611014323154618746504897996422053346053090885704663518088565444199550790132467979925093425064298920792407568444932435237027136995626314132607839215566827260430069678577182196497315420536781557722986851691907442590242663938118692249601498857506861129962426316861153151690235754254480556107198570849905329716131527536777511571390574918055823592596222484496608739609977142605819098627828892597158685534505445382702587585006110561606148438865533224198348651641480065440139442012381274663823726933596285090979047357284136969990411052151184301939264492701832174958694819190513079880618899588895307517992178105600972843060521498041324450786603740257627731665678129858992842019091028704389960052891907363410707358791080408810860984832898948585672048507844264879741123918607387467589303521053107165459027731639595764062407607367859160765049685326252872516807982132422339438411394277033753974547139715242989888860182985968214200568050236106035254889993528863414379236816482117594884443021352154056186159458927230041256544307451270768786751951043943402789318814689012937910550840305892355479761109592220886814914060051310070627720585364982655665674527430594888062447984428252222334826964013589431245754468094541177805648541895607565342593668934796069372128398216691309564944058813720512935991581903763690635960892027944333531539578701128137438245866816487243044356768543917095550881851769515555467676065209287592127394609675101705108230493148789859960448255816016006230828247481359360663318168647148087822051155388002001010069341176437864813562318204690243410558654288408787858076320542675876819184733660107084992605820435218476549700591970842722220366669194217127351314743030362852752726764729812085139765080915095758005956969710502409780998636313909736716988000261687565184515252911251933703502643919028900458368414208352328969696275679212538837336383450683864052758779658054371909615366051235066422012528536503811764032879856325555748501802601950487145310411760432942490982262614728046858295881230443402257017882784436136430420155337871216245324284541726416306592624520502110272128117655849743878739721623793511327941447969865457611050694858065972326062711673783695035710590567618235985043737996769348351796336406224403145065247616866133042816469970005850708460285934944857003369868870311930122195868942842864439038019497639868159416957913360365166176339350468437467761938674906133288179114249030470312477648898593641926238248309606679161977446373644554961827370822726920160960752626522442228704675066555190787450058455282793887071581912676300835197655717036601186081557873215809914312103655984369744815140214798433240925752715576736191060938244453196765139786178752999555065461059816222195820862023100123535043099434130472876800923922411107841524867284290121184103928074499004382058047919378916751328290960877734824453317299188813289196569035243698676708058587018388096716888366306246598395636507906311165868726636067842553727007075840910349932334647487571305328080693626569854921675062540664495764487792201118312057468116010829038236970751343867981785773471814607106987451471372827558396810538111499748059224263057054053655731747081099716620953339608472044039714133901341256910852618639480900782958649219976644621273597236568714289088573493485920574006636419597624750660369532843947935772471501074486129104415062748880685150438465971068904175399611191825320253213457521846108308253153622545936222148949965636446424011480637053936787277259221160710687612606750427095427872373033475561858268170391514570450209930735242297784173897159251892707293637837498827724091655706916366178370530699104091140701422201513959580080489363256247844186606063434433571893057741164716333816219796064134194379592821418685320888011949960510320915783579752015585140187682875139274843537261573592504922267256156774836629493476128998156149640220532944616665272555521490870654020640919675290212758047367807836326602092781722412474022127654949695555066758101426635190531163299021065954660196872316814405492385557043893524383415955643680782658958603761036203272025246709729008100216750814253548457270521474220980584441524740347676995975820803194688648410787239548903160188611197310173685838400890546444074153441873358062003638990401992118107355356112752343744847697361007616348401071827767340056544440422507743555550994979440832000590901120371560720602990640525095413815030187955375096794407456439477110283208077695897101796612373217866740707723077657618122963099269220780473871648593093935334777598767024998640505042384381003507981132122924544567900814788125946309657865010289801321668756636934586429209635521448685020900250651884962318739382767771878354749292174069119526013940067678513188618186782807104429645120559785206595990738421889902150739307837651308057896829305751134346031991673496709971746402785574079305465544409323647697612402226705364862278996486569216380489666293824461809543556684730361101600554850936906297549059562276962089697253234684143605078190959011310242764519273508144403866403075611100381356090260936533177265745545976498592821182862482498964662448000690446495286355844802395033976976000530764273737630739568095391239784921256526781217860693693126632043803230816434863329760381870428517377523009709540853130272630089303280379686583266738547786382562762250642756418252928154046245311568949287965839492627962660721291703561559468534847535377720323290419279578821223471673916142236845277060601656116362644433492431822652183227939974571114838244133403550319687813205210579464892857497985556667053830440774992058174070184410915632958742909556688631843369891979313589378250674395903833090487458583891115998303565715181891581887562233140371513946680021223261785461775689594877360729907185682043405234592407134400447787010877066934186262051609750123362399412857412664748346599586363262625215640881967991960241217632079793441192986868790904992491428074755013621926756488924738316943235928950398573209892219809621094860269647778312245029845306526839760607991069136997253775640350369484669484604898396874273378323728453224655937749775009935772903119878717423840770577390032512872701941343992115055682252640138711142982596381880272268064444153276234471042204794719567456173717526036211635023804842028970755605835183190220143840250097620545325352405059515869027227698699001241669148187993068926648151151999726118137435664664371229381958078341410214512359728560734832709185547506297290518489891371616406620239391458471015190328602508932931774994834358037104741257802527968880522379291075346200643898343625324673574401880496640946727903760512464324987752655968401607338779217833446179977465835106647102099212517615307938550141123198075520502510158240557206159040790861321158024092797001141865925517234657492217422122247567921981334778252096966946074093977443723666087810179631713961511767346942285646261592732887216265468831079021042006921895144818850147181301534464356387555390216917757211304065142732757614611889545653263718770488737165799526962427612905592919445385153056131548734491521171635658535847529751890476465027336129248038484160954245384467339926404596697641393274980494829794739090901489309950559951201000286204407364080779390433986461541269098004345397880652234446566408274450311048429820456874925304936736472295152573155466560184878125888310943037140452188118720858884957216425999174989936030403805473913061317524740041091147563699040452342343122840099183498836581437714394282119380051362416108364762142776600998023661170905538082993211748193371799549394896360707921439300392582738435937533619735357722443034099803344573029105328299321772572418916503307201677054371229215601635544084008177974755950944033805118858855433589371499265557590651045187150393709490664569352917110751413562090241493076029859717885190300599480693079374219080795132979024222983806980055060411617630466809278933887219217201514126623414862781015003344847213852190598385349104886214111340829643239661434437202220115247021908298587768202606351283426521762759893239569771971614347218089774772918916713815525422165975895949814452168089291356164473605997711186731860743124325661958085656315134429902296569673663991879278614793646187475843606593794163265456235403242409128861715046591327352159286583380167114372397736633019321635721200820002415852596369053609026640573637055824928307070059285177560893568239781436548631561967050289618136919186044732883133014319985277471567030064814029580889237391631918445574252656981289718460299426053126319212875617872779456450895947507434355748014901461983707957975926164476767479067200979209577991807666935220712418919566644283548284135804152585639233031331665727235789972499405427008199071720799521729131127729714897860444937243276585205434018253506322425441856403532844803211737225375355451039172318830286090325916361232511923693516547435681792148989307577753673949063048816747320021910430696860951760541330133679768464748900997511540916831848493553442308462112034436739246324548460447931808574826841540708729273598911029847631895891816707141529737001127400769321616684515802797790976820799165836429838793976964138792354702572180132229257552931644307355381048595832349933434446254921248667515353398910789158233521957649044710862878077997344035965535388357073092442398712368714526838762015114656446745652583148348312523132146127487872022937674742013559837474158376864103630260073959497947432015467086932648063892360196613129330989576511778606146885818406887243369039600294406238712660545910627678982323854866539872060313835219882042462393788166776594994293562674435364549264138600493097875321059827961051260777476732292390057760919726302720503362720607578487083443539507613670096817688161409953688260451044646669723651786817315866538628882927801674693910569847704054138147822573377946085839996668502786077028652845146007856820418158708894242851928739623390235907715233071765558715222772094598941467677139197120941171817956524626734505503192782872597797169182558347070840258623172961610619820392766991246538188118871983329688894082877556038428887086993813111705481839939550681712572142600510723404620838750059582773775194406345734616575589021619112926343269428906699046094678197428468778097237310389171841943322760005016664132357899562296700204464829254794300232763854282845015867161715807864420186531901672234194838407930248772674023824033053365674173424782184663223638472931223881281124830824099045515024732944916110091667909819277616497136833569521820452520026713457339448030993716320771437136059219912568741907450233906582573217401629299224849762613726828632488414396704849728467752487910320085039276808061488637390350823313111437636473628291461589647029189903947180764505766743036492595956967892357935586307820162720062282000772029665471052696562215802178663684501834839767806189981477835555193164627696350600467980579508267517611887866781979342825136252204346603805833547462827924092126075631540399115078489563951689625188144655006376655258700136352892255733061051778203994987838041851923279506085393156278405721039475838616071474200443097641141800258791191930980587975484056254842373102170613405109748420927749265254491825589070941609885320836111992519176146465889617872723650300538613050204058407265634765992698247136246407008063193094854137203179709543842571424428933228557254459211735333515421918123074572186185400904535792052573238033549998077730185734910844619274620685883212113542986652749651510228334890770577867413787045736849735163903396235900565939829238898919609891697461265946338532045843193871745012483641697335047839674825196368609617430304638251482612197726084343726750603693751038987855924893687105874389411930618184839342429428146013968986643185208193561040909549307714428352067799026320948021429371769551009095709043927639306835497983719890013006399636143299031431995820303767180538700646939631858150326692501485504306820827122401777773251240718726574767338466818639637633022891241593356052539531769742602187083588345082202946107183218685164120530224029591152093033116054881134552916943614250134672952751445746435342591854682449417035592754945644671873587832996451590826729923150051482331724216733820521870060902537653087725915589489568391294977912295259564508608914390094661275815081449778140962087442132677186296430024997614691175240076360431861802179161958127600920156599992793821072182594256799065325072122007589063631787443607508609215611814460237541110690415005575297700380115099223672679797469909818532605060849432603617685867045296537369176505598630789610461945951201807240660278001498202553654587658293338272075137943781399507844541022053149408525180873310206245645526718632280745062383107029241932769647079750062090257952969008706577704443633015710918861974307460629753033770198188927052706731620458899653414011220452119753829248589475414733331371374965585301046521175034223685898527125142158142624263847573883281328869706343190489015290153885431101393304365076610954294512643404443209472020566597179604387305036879934784941629265545002090593496272109266211809585262122694056295549845791923797746321261869351432652599745604554600839471901742404808134260238267182296408657236926597858242714703665372693354060899392390963972536934705188169689641593758868999963033840060529901748346266634090332462238089975493446570272415073348877757729841340818553472199702936364321340584469570629255596441001075102074946166529041415786369108447655588451511582305893456203896059903074829428518333809905251344107615968679400407888005038700196343104657718618660823222527597768668660669652479465624362047912495168090497650782360205421097822188674174956467003913652282119400456545433343055019316808786282681624152612238072708256586937939585137250506297583994534259922209216619366033459976796610499100534185400677106686571488580523180820890278701905315443612078013385378590584668765906840039902594434830414682359276557371089213459927622619531299497754212426927826051799195926669662423960381551471194551074945731055016509884917249690034486521056180356594763560838583588349184593791709264918086085485166088540660624654762113821495739529666223177047913054364645697239654972488292867956846208352347853902634184974510110718144668085933647689194041310179911068123349932429395224882855332604820580314150890757108793618881691408841939063453537018275424150784465158709932494964941043558834820412722357947563924105970267333918510102987587292762377794002709110595847558440746421729954591739299112370553451465259966464055058995413560243999351355087242284770887830292785859982738425896164091330443178813374984487815370810061233154144370593752048820290377172077793925670505995784360598116888253010797569646577062567074697104285959771317828187638611275060964342016815070220160843067541152646195588806556882591068553205110384530667932875567651091266476866960657068227581387734528183974789795510357388672367052683254038742295530363408604507834171559825965331029520327431368444350113550861019247784626806333216105834521052771513412886447702845583549349503243939377870337135633552174263696817123741793078596120799030355635467696378961446781731506774153120342862536868524628544062388949983076678863780466150641633976068589313366325577319340874605908463701605151451939566987737382389610558521550187899429926521723481509722774468419128602392868536564359306735864319729318353931905310202562867281375483888667871151645427205087752044070332702400236618349637692384329199249016042008393895953408771637024622690095302446917804925500329877683095903667822428240928597260835779609706361196707823211364038517500815260271023611467244485525066510613557339186975773695804913390453332449987256577572392746215762096218922593442365724345737225462834805355852622023758677226735216290450832342088627640812568452262188979491829072124609893174397753369473202736080033954977698786874030427566718262242853479653560133613775248162903797376240382026667391662283169424709449043158242768774393841283690985147539577656719618551111576464762568154512431167221463030634774417505662017573796698646292092690897166560981172996794253493858674466724357268893130679847302534710418060117547276075071811957382238110135565181828711869427573554869481477109395908104589379382043680407081937227876840179834084076519820652665178747484323249110418859011385193323979158728551218125503814219028660790960055370026708194813686946297478445870785711360568134200234192260442543166367372243515975926952586839206804512694517285429523192093663843096624449882877812850109655284494637885094023282119167074595288370077468400878163755953083965573966349590135109413069601877444450680041459981743169108091007720878887386083750692976034412553577473280614441194179670763952099486663829879932278384288858528318518876676766049292877727734293897820095280716047940967311502301716223821084548551385139189889197168631437216434190684713574894109655933083463740637245799667840410963637626578610370382376210772564779539457631354735111655875017018161833916627606259875970833775123832925493608056327951712649450978848486322210341061563553422376038998904681593798823100475470537862430318888643230493716496855021778506876572568030778811071209776526494588763453325108684046860088562664481723813356939376197100673734291450838819035887961746740974758038163970145497115975647715323178061602775072373989637842356101024555142901084431640580435148528049983230952818594137601401795940317388157409183978123651494702289107278233736629156902100569384497170514043077186509028789196810976010193568192004059754605023960800218163705118999048698606292191692179782990059872255613611289987477718235390913474866484449923650564066665625801762976415235573831400721378473440788548744793585120535658059908106280260039887261674666495172450203681859649676100038287461122944616968660589854070633154069055602755897140228301220701392601146545089847550984412026966997026206352246347279921916542689040060464421575212231859653596450386448907108165943657904291640815004645051576568420107358954203298025027671220482729398035396031260589331187285970490292221992949023609363537427687127715431065663233283774638256657530042583695891435701047379778879674054287866161670496348693607097159166015932426249378021828431248440983206400313279482006893411413645296733101370081535810272538755669469713187538577771532697982125176149133957040495787255320452131791902437426812968034464470082944613841123306092702150153734701734172873309471681307584790371767665744649372852860761397917032745847280353445891067516634574988389287016958308907402084082748881292598733772006658174226520892366801867434008569435252583988075017669105144804244133320036648821757203294149725463553554771045153890903114350557886433986090141451690892889249767995301079262921866922070120623117685765809966852354664295781866826086461836540859686480079208229126068874162803680507229154932189651754280877403516960217972098574604235616679369016369476509565867351474842477666870004660335504891589474188111432979318421814428288880390875729218044660991390113192591784637145962728086803401787150431487515575162249157867217182843571470953539516426860285063105434861310488350452613425137198713105482524149019685259368478061838850006690565421293930992458252200223103087392445410910183266459350633369642891748177329653856737518245213891119469367375668988990091727725030208899840263065379828222503326988255503404568895735578064288336987270730425491438216997047736708292555797434815441164525600942446589171786704589331815771488105891143533531486830809311755786556183789973281882083738316247156978008876722497618650212010201335594750550737965948602626140672830921941081246327871800146403360201096163152310747060337145325557341736890543810944747251435988220553615276880008009680613024134040444218968167540240253219520719797118054902331316452323448524016413317312757317723490637761176336971786073119053516867984215455023869299484977947457778993011504198189934577604901870237776480382850964953713339354605943559468120255319862744008999162123433371740660747584102800817055830936403674566787013381450161455407416589426143612103897564523430780058164977905624023942207106027953180195412322881143752340422242000633202669173699074965263482870145041887467332093930258605622615933526257571281791389405976078121930072849386827601369234561179491336952455803553651393583240153748302640020602149618482762662009712460493360000021906000802697558714238797206814834300192773028589203602717416298778810069510380131170926068355020539445239667290744014279496560935885701780284494434380628695216941972099429996576695356991478645649040658508854220830627686863738010026009268604991804799871238698937564922731010210278212217375018215065167217711277648498379062058708383020185637601583227571546878193815821475953695174843675121786650303860223312160871262201816425546131670179615318870459798417244486595324956599640637354571874145482467465093140808432761256448900697464457283515392921040864112502917453119342397892657237575796762864754392670806242407474206605783796680018028134323188355559185741837106292432462194177868374222554562149566704402885403536358665092753218654687871525739465448138820039950004563314689933196461966621153192903603898316528655368178162333799454970007000930585412718560537865789944098517422557744520699665455241139396707090799625346948095729719441443605684236155315184615025880550022346883564311812965378165953958938731853552983359536234928090804472132977963661355289770857693748996970834112446650740546380625694843839662887406632891820484175084287932692224243490423219022240655760706148577120652858936462406316987185856637561302982049966529801241661541060298548873244513807520772874294812568928396281200342400349503130377821185427788828923626865312299867786601380055109864363082242571859428837635393688098060298406487780754834260029503598747031617129549801319966673422959671488536131371508787960947110849494435471139073251595564691829980410742659769792389362714392464488467357007764202457949998736713167727883252764048578006324589111254102452343793236970243291870626310963587514036831914346322716639978842923024485855164487507103105755528286646516939749606146811140665834688908191126046946600286665006964187021133446940665434540482828636450360076829021953538031190314133530066778943701961235195338964317794912246447497192197995255454746113254379609769962811806329512084087207122265660739127410037271061507628565315094832180445200413104086636234763786312004717469147118950080424334865436861180321015653611913646570208886725315722845028628876034657769320762472647975114245245926427691479318777556201461239975573389728912236787072784263116973481750222359272685515724965283798241709554756458688283408374085861139654436511302131912721150220383820740175441121774537707949607369667503452525710606263193787504145703066188503072962331532466009423021312919319535112766679400283032400512906358184947223683738223315093679234692660979223570682219468712568243051412922795894506221131713884807989643407864527329017094577578331786022715342022413902195031925018906874295088578226172061910428983140572825291330635706291508208927159254431038687502319687186937391049830772499493468603865471420153283296809101791075002808656662052557909676473314620955926416196178975962575078858665679320886524323796725796454781080868860116349463136265231050995186586144609683541214157290791946239207424064681563522251406221669731233445098381939635731085487260791915535977071724792981887264638657315984083577599706341985294657793459225625605346962349873875159625139446496075521172928679394161051985461209804560500124408324736358547213963845962034866495890602565348515678453620761182568187157204661870724939719327363765369545134103876783407018702029345565992254102244759453045962335553086955952894416860941143791960369719543096748421121398450500578118159104006185399830891342765124427286064614225338233943957112817310158562472289656008714174263550839819741759060892597520087269386419898718731817877276909648720296366620140206905471390462291526730799590126092249244690430498642502055420497644067475623571410973496793017046209717357922173825736422723626890533714785417562640267673775636082426343271215039839608798276417956530228754995266175552666166534035975430749447763760156586326181270494461133269520936057897479539424999116208940925889988257658074006654061445799146774130946985627361223308709798717638086483118721236361121130479433840789135433398016327889020943146283120928686409014447967619600041548622668611790026914607295907184339206171692565712307779968565543822800279660275350418623516586359753455832803963562662764239847733084673723720167031714697779415287589730671996191250506723264689049106200858166275254012881644547117943296038466194578552995072137973050097605962384194448878632500544674004243887784280151128243931286746086582621297964687141132189122426216264997959833874164048805356086422115555754648461944343493990557226138158893224532103586756094897835730644163674288886124725700285413028050168232077725984514647248333205774693332086815086221038750606261261392870712738176462862857838732591720577204559030746497724495989544216934208368070554069369681901819140753072806141680133231641523271869868959201744850109509238863440180112356677485032024367327073405758416142079926272346136905133415740908765536871895340822487239264431492433875317362205278142368737604501813611869375607779017709026793770304060640963984685055308141616224199284670697017182921529955015383194092097898224445753623170863040955094578702585060471198213026132179313949337110620775539254951765494554932253909991431329772387476574124374128581694168441642122987455960163893629589974861574363388786039346373076233541542844028843240294367957308438818998610349349685992602513562132093870733348793721896393972868982794347626396302390618397863729247185624407708680459841451902313168066256146863536861233462350042336421493014633814425942531501612865178541678471368519153010465226793009584145744879182419144148764995266710432899889681447254563430838483574826900298100789008345832583108350934314649264785192555995442184290428478309936249522404973464175889495994757315048088219426106087119643652389181228484639603167899498087454714741641916183190021963551461230439833218666366645832851896165666303259560250084482045794167032133628628003192453605835549909572236271759862832655792820352321464504099317254459486064986059936506026969971575919830056566613263092410462352596613332309588275798211489804977609586271838205121314560757390011169770809534267548283625272311579693742710798325288693758288019682091177499470438830166696315891456030942602055414017521880868789999848761688474520889980800549398282376213758087600533524870009289772641517051791959176736888867107412892229246055032350797007751240486146412657569206824009807322231611933495871841021229698775839851404697618253227606984359408096862685047637311939449765286358853475381086229799205288828774004144147710294161368058597780583895492434351302205688787989645785781944850307938080318342993658928447632391912649094494275011301426564748953390004192996419171944751164282630598055068946308961942738071435740536539714436038258408969207147706097561218896287432399719533861889472531651083033402525888183004736994912675360848716371087798650029650440242548908796070820561510421443868107502784443803427687780608186979115621146189972521692793453767532415077900838002768181837820798168471399700237925541488309280236853268422471667503362811569178158488511932284851836367857376494066214735998444856954049875834437779038132501490731583488482184526500011756806174986995008143465043589628175922439094565520513677425588528321889341649140188616295287992283329652471138505048985672686063026648498994052920414115826383947824174008784014415586900680406457198318393254973585462724987425014818341200388865438500233896756003982467249414181734873867287413752556372970610722673591412308043010805834733939311714179895050022257374616547207492335013301270949313231340487371140640960994191180223740482568539828499108127398107321985228426310760799972141973072407824168460886346496456907016859894692704762458787175606728798869195625559271165066801789339882983591717028456289298281214173210766908887013470001317450923889232897320768227893516393772310703066897587063838136748321940793707951423529504932256713218381729173649049905129695998229997354813502997995858799597343034552391835941748506384251490728490145682460662021408089949370419891847406212644741988207284296480254138382049767788381455108042944285880595560470714490223221597051838956412865865338736188898331996044014081379147294381430670304394833242020676385132862521053719102068683845197056416747637389784182378136924621410149411331130945148706743206998334555900366228758579744030925567151678205456827497618370988148594208379445856495835522373381917275236000174532372493312683229856153265581849683722518855087649058034119081126174797307986862350192915074644995929237711724215742504736767542749461094634900711694115162343577514026875034050572303650440699548844624161028710531708527327419754283941028392150627310228600338795745449242970708352118024397815859482971799689819729197382695309063869976326836732132203022377703385195097909165223893858897887302581085202878787719921747543415875423687833412522307109793366357888430229398917516076134021786750827254208464935108029768587290305646816973826289320320709657488129837408878514699221100942847788290718848645006042608814211365464822269415529175885363196947984596128887844750582502705834431592255971904387081117673450372214920089906792818901425088846070093607798767449907336644629648512069994441455946400792289665794592738263275646660330731433713164767339363434593779365815585863775302516438559825105916640234107730517587724447132837292242057596015872521923502507490041821347001926251863955294845823275882491279959609633694112819395421778006415718456534753400743986864395236794222040867445599986501389704146712169434363096950148448199694090249594620719496829745894504648756556976041963922612754688896054253976748902892505527867114067003371729127742813476490024883102580051567966979739659901002084662836484751727061091242824357783648590574399959566663504530745397408949675979903687398060315979699761854309129703518700255735767838647003019836361743646180119474476211712735044899743898765446998212781053934465271508523007717318772182056559495029672470282468034796496199791759312903408807428252610303186279999205287014018433197214842636767424050673808816396572564782241358497411759704921847142767306448043226171628532445656817410337189869752661770306025331997061677023346393170054924289420405761581194560312519914455397121290276057659973024001866903624097463082737045077001606761174761671488116966300129759136811529405321844002207417265447146787717767721897628023343263972004904719567341865039822102834224659683400404509325960967850234187007540258833644719714427100582723264349419836074526224914859629464848035393599267121967084610738068351537395206418804460864191215899842961732321185722781223408394867342911803191532318809372274217266327703904248899832239602714949851285389839421675543592064704286870588520271275406457215000164909129964161751064112796600722814102410788522845374965269587279961099369561219336987088993823525813916468313694742694964889694729364101933836666862136987149839785820178860478929956202062982428976408393051210928022255823445239346363881381458076432110365544665247040145578463652544223088743842086863091656810282269170647772061786554689774062913757073841154617473242892561850868587694340973932656668696125927060183511054763104484647840790409817113069726279011309564967839071128574110336364375831712187548693884539164721316820163140819638667457142531097735297195604156244700841315354270984149514035113615083683961254908069310642642305279959637115823823462102294479374034933053116845830369765800136520197972653077912038199999909836232560871036000796978604685238547267113810384889024702059107723627310882322486277144745050748684247756419219745352548110596057611787095217405952981393056956079992669238673225503258749834273884908555421044671445111861553823356028862678850641107605274672804717545691447571944653756963052200591776649485138926990441953528957404754558160848717162560796316202648453644779549234645071180794671446513499447609838095813633360873784446527942966622518971103116344393724651074364853294264067686617072193951719069997887831148886544024521751100942254270020778357722379785477575264282126540521705808932217604964956029113399795045502950695564448422902490589616903361549982593258911550694302368833200273922153766263085384761427517119163078363627181500906607454274927533539501289862765171440612626072619032463931182164852286728484558191092369452089831482990466598561191545855724894947191340960641206374077295409184813139087815808268620110824774496872667635337080989368278779216581651796494469663817087140052230309132725405623714520275824824298853062233785124745210948919217046266278786520365081361268163345074809947071272923061765407184107941392275429892675632013985621679560236254550169637063774276880244109500599330624402269237989169517435289062486048289814222479363757154931042953670092178415422756507213449315644228502860759717433362496377199341121675453662364146449130752563596052258436563116597772367107940580589399538718954120512449790308989458031280426501266241218171149847489270325804288686613894860702679742298194781394639683104122787854605666573777246124768573617898504807200827493323814015605274761413352715093857652974068208368522665212874222827936648058396553681480326774422705427476767091543160623478352326919177311088536948936352471922821865967826728110148761055192123660800991622456806167639445676465617471690202635896154741140946059372183107889940165116566662799588277115269173313811421369188236317434647225930636922291500931624999873521006334388783319229832499362744043721095096969889843420064338877983431001359865428121130456190406606047733897404328503660623103579141980967915570768465567661146815915384986691098218859982351891329993987160339435983857648005357677599916082708735592683291092840996649480855912881902410215221753966309057887822372039291723238272092709402941779685989381492341143286035119161525795584421120112746687920473146775367945530087434160671386047623799529598594220965106777123143284067402469660120279676016918910871801097413552056911067670054393766840243470082270749910352124701933168877213988823649090774354550010961331050446891996463755277116766846250817673119646422416095521931268259338452040443462538745488292711169675285187300625651258924979246749630023855211199734669336201932524620245689837104346420680272104617816701200609487547706185335331748038183386683302700649181133013304312916237395850483521928346056347531604592271198918516762707584718727545423170619042236131817629474630906120102518722403897550881291277328328031325769315086895957932407737628917052084556876752844893233103708695692587321057138982327182920339706271071407079480747529013486817876434971251640777494448746069478668452875801290420082091589679003452873836595557582612624674334847758724095239541935185831265485577833393398161274463304902317963948396766305458418604519214965856978090098303230727132574994311215946882267626608115662513325664009993160103095785838865464083154827809682824891110790216413057058710676650783218976311846919833373167690774332272432167138697849756512687250768025865435897618113735817802498851610660921815265665286574934014459223046280133492523706139131645270702675683094334352589561617476264764078430554791788034940536076693747618717133922704799093738972421664412367516044201632251181924352362289232599092591246586409060447528015719626264942881931078302369796731711889564550083697393236045648641331029007302839920338871902517035267892350940983161007501439863480420413325765473986078022903228830113277242084858613482779107018066666453505613024622493666672854411050643284806530119954136025035223283550953504920598922777394515146140075425831184750939342734918439182684869828024949330127691179745906900125432264224345933086105231094392152490155310354319541910534870084706078143271182736429208733547003180982551278509116451951663516747526983681382821736372049058664219475741450234962373545631933953079895238244295017923904520197117995530370151041145558231669745746130507539189792374251271240090007299725947803972338416024660600358768346851374122278463626021626358891960329105499038634091250461325145725403058673110131026346026289696251492068683845352760896544008579636740901299079457311722651244950868433472317350460872390079800840439006830850522051177502366548314628831797673428834994911734479086943868573134702465554157994627985651703991272033953102140050123872227311132432284701593558773219178567661559540487583320946476849304800718330096309685025691332376946526349576544960415916441644167302315762846713915957425368139766892289673644688156223562262387999563092732276648359622213140101690721221561758345726205804869642444277693249946031294921455881794982435894613152273914293943306717079229514120456370459300091996272618090810878483903558972051657768890894968478566145488685803640477759917426730135387108652232791662636830898810390011539602753539934086419668503723423159518965901630167732075288801574062110072615536619114013024216978347832673919422405790950293721560752835459740247455609524187750985017855733197688971564215223343071163456122634315412091965162126838289525284017895343866003741777900854951496390183570893152807712883164106148383380253926189005729097204715889876153765438510224883849404787229165082900244271057075860843296054552642487699705175136474416358800338781378357493927608316798616387301101615926456372098944805562928603089060861261508374638956609005600627680871911040882254208357852498875517882410505084528232227485378258582218263045010231194919152322674829000496130964157541099187996210610505474235459657742916077830015430099148986019572581510633240560007517865465547477848655332341062752937420992192366068369654995849547914840006305633570031524462969258996646148913204085243095581130612810550409278474855181131874592619204836764231491185257446511986076703767587931373414275453658580786422779129948863618456843795980559030901838878178463251547629935618920317976374204311076045049058977557934085988020914510967397558562320716140554397953911688329604411191927275229698252083288256506846639479698012918613630877595884267553265580629337783440823326273852641992880703235956840203531590400031919272384940352306573624553285300485896280104830347694885227365834397414282497486474170664485920332555006569079514730322065679157235970841550833349240269316736009545466780156141775412524240177369817928390395356330421294338195425153762282958405779345334714895930667201355526582152147427335144674612911896227824414484129146543102210808178688564509313631405110586441070961385344816161106659357325575105943401962313746260857732401140754380262821464977534670178053124200433008751189440574123071168405170743055462936290505951022305400423670664069955066327479179003865271271225242854575655684909521956374213977018321975055896640422957039020270077510017764350142556018272914082677599890493942487570814999948166163330823718233284546359032658371163606074956162953039955482489520173781179407798077531301913402533478515714482627656338949178973054116001846328542161943302291378790020398073503293114126919043553796395869220912004427705237327935774961560592833255763315844395298355755164788734623976030207296627699497469976563394940449138976077848614220006724130651223813545227793424801769459699679736683601543701316414939576806945009644777304899213360701551607621712588228126770783124892825226334327456633878853257090798390922507404869649452726080289485911000472025974413277616684961330228554314726664871844977552650800537885638705097250173796874967452080064483225430768248868583584660562224449431513398402402410825930686013275870988758651723324041679141705489678810171352054331990131960008493805114862119814481446420581490166214096735281500179065888090936116544589118883981502372483981171149295875503594039004536405908214493940887560169863495459539878981787523912590467407621389862749623847308945253445560962212412014614752947122981522913871472493881747689582735356782106809108793416483143667216156015196702069492060331116983429442474754933690951173366536514436739525292682907079110149352436896382304636176338895535891263888549908255119321456139036642356998023425271358960786372599610689145348675351298289855325247485328941597268804120380281773695097105236473642935813932088955400370457852356121910645264219925418391737243187036739214220147793838681500211470339540160045117400968573060446055565682957004587830796196363293554229517906204772921373752671356000695824076685598525136438393246693673367963972221430672657206930857719284235187929895875670795873353468994126659363947983996991787633596953929707044352388085737203243281611218331384766709254483146532868555909908551715975324186858808442307189633585512650803140474137288249587324143043641699209410192530562552391281330189208474681876430695123939318443140114121793432566510495123226650200578806911621949400685127527220872386209029668085615151589576462376706147335438485335782680060949818534327871373178458925545676728600101821790034307574151171595895023343399173084291644791799932550284742563422007215789792425212134406771693960153849140174436679103391499443624928647339372130920437149186361853569221828700233598506887661010591861879652711223768690068239862947997687480029148572149538605332894078781039726317852278864437407156221202943502697846191310478992609318645508284526032664401494866929285599088827676026069052562198231830065587059939335314963635304612371224163598855983817126249715500253255226951645225506437252133225127837388215789067669946363734557675584374456709164847641308774896706894442462447168915141154266115081402037812005873303251414488355418332981168233200991717653746150555906464616897395443260573322423404841651209179271740783254357283387746881698682378721007367610830650155543459413459741882281513851592124351584974669015434563020540384747443459378075314896158984088875117877762648800106669059373651344617764477479066791178943515954227469894411895384269206920724938955015605523980530291702213292052856738218107905054775163725027686463382172184931509882558359992607366308209036473677464221836842259004946288626609498702553707970126371619220058016415594948346461983468768890830955761462036046158621811204424691959920982055816842217471297076205366281315972227379092349412469860657095509815474242520226091045561687370355283603247377924922589792825908962422917467378711159084118544290250449184591741791354950090741086962295041692346954279179652824266469036663266882629685118954991575906574536044547878725242388940170255386489112852022717078943040036295851698880843697595791163212139681273369782392030690909907573719911680267610682690653741680411638724565707244375441315310560233896438121533851794673934117757295475298469020671641236621609738659756205865134141585951419767482144864927077670440048765906497434082043711432146271343464604717751882038069125204891928126915139586174026644455175959133321342176198968971752553359286842101932716198872544071129190554338427346921146778467440881693544719911508840806966499960425553340490936796952793989167697131476548325344692291024177623132681338513111324192348650965494762242168330562313234704756011625692677376416593256414609045717415448648858116040844764526104358033512383949945337091970201347165026607393227494580253015754140823707960651315165933208939857781656595832561529156876781838974959545591553689144602596113218473519470549619249303704009002337208774856821238543899485834324955168778174985632400942731082775068066357259160236780119285694056390865640993800003983495385367931618487820758382030034671501532569888128315104223140103866114075576729300901171173591474609357327268461561422638706119416926341069275120245220377456268969853830238054611207563118063903623106427750103631646920632590901339444747203035950938739229100264263761713570758850754952509783613233046267806303811219234199239502191938096693763508584600871680437568745696949985371299164040317504267266460870518057514698421476786536742768655357588945182784257586704171180501390639829647638177565724877180413823015142589556113263400052971358059581815213217294024877628500184739662704312876500496159049261432756416203733130691064213578868433543315333443893511411386779391299482225899640690617418932960505078334743037210665756581327439945990533009028591995950554741604625582420172081483518752378758063676276486415308418939813166286133889019156208372140930084773710065622050594661303944601624003637504894728272797447243510657353165457631513066944696572242177540720597460199324443669352517270216661730380815915028412198997616919714055910167041227775558645055446907969690290220703232206632053157534093900282044213607381012407016186342285495210967890704996036623519579915896047357338721611127043269618344473880868281605285138689106855862622548744867922982610136441310504962955528028786055836920352575087332640315346481739900278913673676462409806775658831031774394151315852115344820431801862942062837482134627314239430619950154834588498944893045271654907976938471282800860639088997966847264687912004590215027197565014976483593930727617404333285576489745889222420624480194174088577090174129132854362221218534267779856747722398231581316473591830819141749107928243248538450502124960859732299832847512203281506299033054695316229200616127755823979552571904852960985970197434742689263117747892318459533560810453276743473421009294199798927688941877661474963561493869158363062774373310316852737990702045760645826441293054485575613982843567587402471790413676922821572866852661622183293879953261958560268098200938720954210767375825773618142045178000979837188688085380298450399711686423883199863385073197583004268135881174674508446707440758155954849213095844202445818576616462328139097669409413385942494074205366374396516079659995457342008555581007532715266916927325268864298257395173121005124773335123576313734293779611368135339044112718804010645978854578458481493633099907864241013276818465122517593997717689263472661496902651206977990432744317553905719240915092131158279270904350474732903915595509598782173137663089499166283518548673951253430268479553904244626028990347350932487011380668965740688584834135868437719005161099984595959141967171597539360759264014451930343112658071076589302266957270141643952437904053843280348453476543837597802983919870605035420352058347668243575672250603706284545029888671517044753415678746608831073745375922495733895578976560896889758232082408948309551559504842576764943729638467819881053970497467315707478795677520051685687384998733424060857761250567017436165358580399330548344674619889689891461358257940772090195286524256457156042981907106813531591380000314660235696648003383414258986359349926329803269732785584465139877598231900911054349530431665535203403399240770605731844474068142368953922779063113230853187643162810941663076750016472976859939442614885535091196838190957658668492328637779803515711565247825658657994699277237186837409263541743745806627347824729065467836491257161276570631274052750525115900391084434278098687030133889119706421929761032326096666995113447093382744913734474470857238394117106488196981512788103180268867959964248385570053635060113137444687651033269349743230741259738678565135516960310086021653758920044355991596434682927278468262727635814595080544711345145100085170069202172409894802091424168820700251811026870188051077927918598857152208132887973074773594943479805708732251142230277496509832281290926712034495456621545572344647700859730121683595972121294765763605795645452315096110111622293220562499645056713068996117580727069461344096053588040667997115195192809906706346687120614153299327292385493940243131389277687396423890618754835555709185562396913699826557429056388036532508962330483559189018427135038697624916790799305663737622978865810105171434875557772004917815151160126447113617343090063469631544624806049345464270820894448601753529500767274987927244949249120759283258059466773900508195309332171400082817069475060823742634535790829038567830266492395404969380891993943894289659519988028664521302748549473007421528235129502705050221270642476969096807326903045103035393512692890260540175653540956812806330076633826456874558907510429431567708067222956485678410103215156297414922380606573086718591643845359552597563891016736287776609511264342233644434219990678537533070022831547145679357451892787755185913937844691861780472057961153599173719278042519306675637210685479837864456569471044959809854576266406468788346834612585236560837922270802087839253528241748071939634208931784402627309600909441722929654728993144529923516278538538106494196207186429615625784728896626000992700029031220826851371430634112846728418395888049839030750661341772746361052874725674022466788615099099502728842926026739451127980929114214777177279708061701391762696966080309681269855279877588849462240173322552401170565645674050582965338693939488041676845827051260515899210392027079478798632175168650431612259179607473127435273039804828908865077455985118318114946982773582723648701615629860183498977226371751455980162674048771754093359080966015424760115748336619342796976348065565655528972411041390743259707907089166056653115579422458761372660341059199870236259535360561242611942449151892758156139270858416553444250389025344919211785938741592623188673161363170208888714310499371178142182491566740987972063214860437048688323450082231677737708657639937871195416816402864132918808475211244290456131290148154981539262553913636745672793072825969945035521899467238954349731479272198278258268136678496003813983831919522627531206794577336567140616829167450638898981755456305750783999818982837681903378857226581505624226804754195992576223862920674651852090529607067291591624600705455221605997139001863087265030460895888785289464229936871124882505901078265207682552578290908390328061838541204710396060246991205262311235977778839277305833381081644957526199198299808621800569427568551183433267105896996504014383473431027996721620448284736506245721796186956359118991625368327827966283554731737851809475376087647456066017125890582841572702196753055250556040234559154689896341706295487737045480959150248941426153645805003048390740476258654609341623828064324631902793880008216505346084280254381230460200111330104995672644735700746107929816300989461757220507089291538933353506248976815492419502883856793096458357845034825045169777416464450581910055594683624524366970607609326601842652189679816852755105121295533216707660841589621944505912120746046045045014115622168652368835500642776773418186949821302161822306728471184943944457705281974688489398715595426108827744394221164754862820773645901526107260673027299266320287700435328734541399563948673387623151866984334690269167695504341584048945451020983678100293499146334562199702148262919749787786043993400084942395199656243463141371047716626983805524787982324511948216068407150496948891844453512919238553188512386996735373328896666500132145307519341427451552623169363018135960425490515553624040121988018218878702413484063509577260888398011135772002440907340335082728774602826371258415401299409461909582600292723379081738994134246363895346133507939564395578080485762159573836097250409434012774077370033258133782564444250338525557591016109662083790553561688740753276589922897281665169947730980627531766562702717524800529543105631093407317092787857282679437881197957557895707646699990969668979825813256774233036080300675308878325908368462996923121377735275629510336181441710409857925571561752792694548237655553372494711144704314311253024623774476642679683877218696946742842424274767058292794134939777035559153740105411055452575319722852850802517051140148215323159300869195437136294594941637050534259530966827152583003583663959351660486351828226717160967559366443099419435864175298375075333760215792325630237376437319821156316599170697093142552128711107877901627023731773613541740076398929612874170062744494269242271984271174703329080652994740599288417388035258749960329536089732430752356354083813385091840371854803629501342197475569105477152668926905264864740391699331116690443151576918163831704845463244591757396954703930690284799276366179905722481312102160936751481067009409105115072160663684110241046631944850176889412253320466600353033478912257829314832098952589100317013016538060165097872375266463042001686616706452144836181314654799170966685080969416789934299429098273533375443836714790308023876564631198441943238035130125155106414803839613352417564746167819405927639202372789520605401499246529328694061563609739392684146059921398948649904179290367573480845894240576637885377294666079421930839546090945546171198243269044049557520556702874803196108102414458897803947993344662468676739759983658086669393273621363843187309604867197570884363604328153535300110558623999367965581177394732617588717212422195120090867638073744835923050679720614072742856853155475174484091092693696997319369716805022513917636185327304675937545375462855890651646751048997901179827962841812860936477269508202623446483315393438981434357432415414658360591501109268663434506488574102726815693512526475463353953530086242067833592360979744027711772731244258678914419113012675810160464443642100998181478141063751227037781536474711414649565820312509072733266884645085214511580464024552396334601113967607705576859127658026454125524478132193517144616730365047908762854979367704007105019388184491166447576435455333451732866974810553673253713470901673692827510043376708011641943947843124066404492729728610853621217631426325410001597583634963485916936375309119498346269649136151968468131673724246150523955639208788724137757042996896117840326104538698018406844276591369398802684364732457918374421052952949899478969513284379835918172769077127987164070859925974459499793837744122588390091005710188284232547116663375020104145939503112317816478769249115294720938552870106104249680449911169683512554918245296013706132907274775040614006874227995989516923103825282446283093507099278620442534262069950800036831819686286798506245008434206917455833751667506166855730523079718721081514504228348340292218687189601119789348895439826322092985817928683925582515521886223128758441457182215546119772416687193866409605608535866194388013953971046679923711340068062184225900563782203507966670791286898771807897205046980947655473312761975873782535780437915262226248166143590698128633456226352288411700060467402014461221945168213389409602407124768813103505920860135763803424463719670539921579482391271797409335583775437845528412135231240858337996188683675554321589176062514223058060708565056621794066098031942906283658677850396818622853221340307869991941109744207053424589036423170018310462258935709421369004435553079977999032980539724097619920461578837371494510704602012466809720445036866279923466529331239368675095498698152249513883831162001437939119799133916372884015478179219561206211135349875379352143254001715157204570453428868971944605262197507523919157802664065089529767125766153424766218957078294726635084222271014576565825608422657104596119602243033558156620917565229447827111961957716385167940216914766039808275098223343926188476948386873008763866359403268624330068170525513694900573022416059567051054052339025299411892778031391379060128958808164253632906251179288064075058967275717040871025855378137491992793918339034449644534423166828279269836312474615894738958691953819826858486425628504350024766872580530060047218571062797378052854954689147386447578085493523883432565620462535089188714817508837414691093367957208210465324265974694348319564651707089760036418237133717008510069081233946310268467924951469567691667272481585376312711408785564044631204035717264506002874049247068955092731257952573110170413903538908669311762246986065672668425615070767544851344603812975337281104003794804493839744591694303728756246521933761697756008587668911847801585096992986561271770582182888029960442774902508529902183049462203623796106914458537171890964679557552181958699151964596606364219111786534385676091676374662073504718292093909221121684576153407373807812369812144181182991082355420235387598552314742184513732226089846144435927006986587938282763625303938746574892298875733868964970011405303903762715396986468676709746066310261366583022168172255065763694200321250216786396818691077520453632593755191545667285177749896826314187988970086037992859919293833094300674969385373525816191884683956482986754295646414824257980360315557525114759831058118299286072208022130555070539211681121576490268779635934619481905599621304527261149485113507301009497875880614384520758860045318801513724601194485537038071403675820130547392089295380033552502319245982021257432818423008766712562676499273155186029500427898927260456761157008917227961297797649049561747344699402434296510799311451212614594830897811974831587373713942387099166449820171407543818206200867275413527824918494135184438345479293537491858877536650657187601357054663614901670600815771048639499088713075818695089971460716290577986194960970786005648034694795863814360277125288010996692215724647433740935709828518709144720539534268529149252534139012245769724389910172001592769514447422632685970120528882043084787783895188954720485344962363577278409736549110964129605444690680666221144354564699623105497414771232948664541012492120726409978161139029380273090102857824862121026538731676807731133258360592452094592798413400405198431526665009550452514751987697024736613828169769351147469942113472867241814706419437361972995367570166834332912917752431074824760375234993333457921362889726301226946866005178918388751963169121037732949700335515666619541324743791376744441570566604832022292244480543199345146062020008471986078748272807843964445784061448832606893999213725070555993194789911260736551034056723407899235490583253141626434249594419337187835063794099471843777601492635545439985013206921786037802591023392000335829767754413898033792166730160655479805879324265286291364843019150588545882191629419113433475296032817633675865680497260802996716485059796836438267933760802906102217327292662716209763736503611794400977289659449456775389609332113509973473975642836928420193047702275617894781523797139359728286394956721396942616573692749031922508719244911626068988728652756295750870225162911755261993209435851663769964935128599338451489230801133214415890253239120274754987436721210710935212959904392553812931710582074636646981746152588782554020540585409329257728385099364436934622181095745896903103375838245860318984727807091969943761809032003011029141139852845398684301483723275235292823382284385943331347393215739688434915342145672897819963125386188627086762510486869583239803389651448190222051800343349233674351491235440795898729767386360744210600233981957961251106982298167711852427328892169123625431120682656724850479539282209016085689754685125886993797969577710602119794649878982310721967780013943162555386578937451787908731233879748980198611706243672200989889748052166355377750855363884139849868320531101828511093697599683748312648167290342647642947036020203748131970118377323634132806915686126335684190885859150268532286936838685767968663391414245821346214645553481515022597990862796637251231130102013369114179692335952027695349102165905102629743491433631226583042480212512579340904688882218425411332532119082376325826822754979711425930405816637167546686101526227002903218749220158599528416219648827708530446132588029489648744455070268780864924799352167459434143772011005316549110083921813129422498296778249165533115785372922609425287968523161408393899669494344759528487455979030021060249660232150902483735340847001384926089575088519236335241453078965838807444663000891705867864258493210291520151751445123882404876238951888694972756939744862835903674622508771037510226344474379176941440273571997553795254344020671835100225673981285117264078041275738945657493328440706058558605726674301363803320016725814642162022260958687548408555104167562319440323663611029637995409315112322416450030974190888230546096823447281488180002265918341728420053654399284467354987685434752904378386278085820101118059990827785652156405589123929519474957393871230867784318157963546471699227925766129875024793633356251489448891637453717123196854984899824731474200635792926461502600579954454988045383033792973054023130348728607628567847504112218121574942785889672428534815023344275269684238656165500479825283799171296800024544994382692724600966129995001027936920194640896845502781557486105332883366420358368270765544363850922534491458860540433977083954061126092747649146334978200570011557329565229008932094408144241950502309528675625716467582151327218137674729202142060833666749518148440735486019063996962443487132254285489619378967881123621086858500156918524731385703905609900349277580464715274856472786146163925394796979143665469808801740735244499678770603982254581141946445272410705029343100283371824525869231382561870067058273296137141246223098102132791664530398435883927594817585621793864655095961862616834775998488379912044153616205384738475645175382689249080514791447993406798042851960724547052925685850601693880121925939337848559113746744448048630965323349194386548995597063546351437867458155703259989390430622935091636713362296677234318805559606977020747395974763089025066147107195317694183842430059459473159545061679289546415115112894198258584697018675699403602190478364999963854238617229567371982211632831797428501712149688442131449643411525703631582196771060816648241373757272157151286846717682412994329345002363913521211733689931137350459965356292062305996986649886769044478345818569595054481071565778211451349498508600254559876085794282183009197885455098102620641380457552175834061494997039742933825365207915403701780773595962834485188289930220571655390678368839707886651357124889059819461112392931657647877942491352458676992457440746747795969721173552155130815050901351668635353505631073286153269603507693003059646129847560154085242306816414085359163940950317683487163820131667006364581186667718942251552663396392997706245043454053222954419454516800679750343277666752863573695289209915327992275143177042137305099318672639596538980612439516405527452123292988490549269876455896331708479157437995099253539873957502832756232779294696297245426750216416059268826737277430197814983094656865575179298099777857557673249606610710591842349127709895818095595177333511770006918637035191085103608863920513899248192588805871669718405652244495595820163157268874757537944567046883588734258704511733687181383189168084410861677346290444834291998106112058640152156029767252902416335326886590318747722965631667761974332213962008815646007506979972127275328113521252143875145613065920621350996636302809186946171480260943699489587182102114253484609785205682793090315093617454036709627582774622078844721915106544114342799482757023265245568636145962517661116357632302330880943284448185859137016928522391953204654176961453253271121481864963878376590161765714744648869788876594003092022521538113060805577533080449762379876314646583806128674207547611213036860774715121955469292301757311456013919629780074165177640403891757489791394361578481747278971218301583356696453335318343056008859105837891437664608016777472800668136721491073770706755703697235690849421652559616079844593870572053471517599817197359384510231578573268099322147605822032459531217434682413426811843676850345815287165895842317260084980072911700934288673336116321266795252832782964148503124632172552055627605585335523799893503644666394917044164235511524193075940408369921009039730591446184032555725810501670245135897377785403590290808809648189775786407789475427484768300332889166800682776413879433563584115394176334583412858356123128823130968996928053651692090884683732536115310835637630234739770427259874487110175734234944910864013006642297805752685576226378665353912514268167680919953058604555732824125822471059839039811218396165881483469832566130125586583001867905307713575302609814235535487711668307326539444127783214670847891046178080405207853243759410503106929166780826433064004153136439234261143738003020138239596425411572424230887998836427631863508651465843391673515844987562066087226037995526253400696474135698704525473059611131198430984188372470780299995503282010358172655432966033786077716032471851472103452303610845043867085594872083775719234311564988013428154393988094057511673402634756316734675014915996485761052404107941140933523679602725042452792807998029691201200761180797461347553388493396915225184050133689037759207533865704769377584930615218463462266358770151355035374953324544044474114991319374431141535696080472970122625659860827868265844226771470680238107050704678446486059670072472445466862400854968471424487980752556174435653023844090621971026803209910137682963256948151875267340381996033798005651039044204997352482484103765647300309292326522035839831797106450956648459756447213007959179417938125036929479727570304295627766705619392653834808610646775187658346646539874957884751552459376879848287889872673271726594479358429219943090141309953432219600419757919681022472694540005379295271337943282706960438319673908179423678823045636126711400407745289875348717316673240459438538319211508698664528348674322976469887950669507124058790797864094294299247506961235057025088664235657905564869152174924248448933640437817450956189840223702825086655462359310151520196989413920051609017128509127064528898050662881098171163645796393108835398225190153142186824950530058629793981149257600144917218352918681600993118445835903922215306864218707591286584106972746916748885110428335071289899758285316696072675809680521271358870128897802959845724057438675232801015940271079352553667420761969467011393489229244959481238368740610511618621987326559694220714214828780310503754040604217121484047748424624896788953182613962420167777458797729598431258696915528272398353153724035985215546363437162535476125685362576223593001290862386426892414353929524298424167887207926349728771953423134865136560700622798799153452780407298198167747623847999625207992325266813535401982653011072112552518769678110130945474411856245730509171833665368009814294812252205962189671329621312717683223720780778631959428590773179810459388497736660564671778936967233060775309120404070511050959033841978912596653970946174861865954158375799471740909584670882827212852721709738216539307847966181596356962616783118666286585758002086695294194569612756303043857073855156482679122984274411165192511750905651553828637560095926774860568582842969263254892758090165018884479483213587213692027336277418889013531377041651433503195869250293725511657126860998631377740365541189829595670227212363644717559452310037207939066970882380335191777593574769446565944634865315622298227571432596854652934910265168717431215433724946912347109044499344997889734168565873864165247908816798564379395373199279488066397363769921076218672935145039492410413718742014158928161842153178767241805491357740417911025591973578683751321006159655283923226133283624863878306909109232959286310691303563872919647698193587245581815270832645535415440892397242437563497583659219320471348846438046902772001247083557923628585005984779616552910969542789254135701427102469939025294405072415444172996466137762006255867796270877358700712163467680586460241319200725981900418855912356670162372494939782123657654122607974928057859090819795621822546248046284327835757063284960655536125338744719104068244951097293077090987466439558379344511593938079561179714501638309952420339401201556893084294598555640254948523742510400010464641930993151040026717733355962997506797239934118516184483540435049167400278371622221545633079688071597729049135770511201048996793740998512664802940099049077050873366288625425346830836926119165175483993661001291934294235159274520374777237685229948543923335568882323739139153383242699144389718213800425157673428677017591364277209558611940475945830659492495154222921740865478548497034212547162210511458137125665956615549826911411788619256298558704320621799875652849036936135819976116340336596265198440443140037575418528837826577578786644926388089770115577608995832384770881363329768774617145746129126930726231685733976869950930885818274706290801476801352184065810800438183537886159805917641953601108047982605385404790967772150772484825546217753116622399741249523701447315357864385853680343372982638262199632379155989873328777802628138649160880691229476669135860131735014047253200102787055686286011931261224325811301931814885160642060089237786634759230740141030546457385399602717005866621908927552143826329502273057153469501751695041799070767512555838883339395719043351097402616379090920072173247412342882628631047697027166756179396031226230964489590702199657561427064240075315821968386412908944309117855473179749170908002795637193552048988217505153077360856814265702857435974497584525184441065949628035520325384336956737204392021152393548035799724672583440519782830128164281614578864517252204989024956768857653387060094852372901993284929601419379491541283849011235518416325899542755977450152966319511041709474259823666864378717884413951571537996645883082017325612340153424470874223333470215757982176370695551588013885106171106081633759894000550364313780550817130731381685521968052571995815284826321758755706171811196252798231603509540572641538447285044477178604520349170666466974662885743629119957788942020371331522048877430998007150746592357394821928523989859486683914486858990242498187047706078863293797574718285642973182207410266441314602390138171601865948714277187317079811699347005222821425360643907701968877607567421541733471689919668495435521079567935841841938335738342854330214513637093700836105743191253747745534442309110227421189265007033255165459565667495883088767380089487388456857923415336954549160135583917659817509073702438483571090575504520600126898318440326313780552321779535864816852969194683942039199979427027265826862171755476448154870528543042879240820301855652702296005989549565779450460701228349382389716106757520365845403838564668783870259123851771665789962401883420701777110523416066694368242828849441882266033400225399834079368171641290191633332183155631177795067882112784560318014437546569522672081211187821859792889998890004455952007004350231211981931396403001790990248161942751914847981440319660921667774593295917491976424345539485123440410514621010451054278949761367747526509556764291031280377678259556618684825692157391092049585875730464322382176458884089080087547847398344212846277328623349627450719049530988470352803423022735194907036990558453078545462435218145035622508915651418260736237201035397670820139638206752003475280953185001951384808890710463879723265915114150633463807619273266733520257943211722893688412705185215061400092947895838461151440252600120901636169224611162407236668930866314952436327346626734055088075652412077616818157464251237381201818672010096317425610973326069629951387652264550773981130362609003448918877473917478634017950337380486951224319258110110614185937462143444410972462839059829073677207974877240232214571206132622401040918446581992887585099482511646120204394836262567992678919110488614758495284803404134875033298049771411354207836475339179322554008727176866118560261452180441855576526684419820738743294649370454721673070229822435587699474573476516999036682328517547331181252905800605458569979042203596214653052152290386001051903023373728341354984460126307444915777204177092072425139950429125512904837362555817792325430294467678932210047336738532458767188966096742684666571527850507032613325938646642171146513732828357825792003265366163154167691383300961737582766815022315171550089937484984441512935572712760554384380071285100570323876129412804706928057929454926357314395331715520877441335871457407311250821076685541831072251200285659197937603178472686717559641079500900604683752865060993873432306996714327807977298835938647859733294612435231760442325853338152390592673776054414762733533993338548251459453338127984050403036384336546739532945241280472639096998716315523718080138371043566526627557975399826270824602999984755066474130597542318353416174870631322824123127886363259283678737876641790010913333718691064431081977808411812044341385456619128171604444881807361111660303464270945063968757228948286887332849515768776207734017340318152434121728582905173334618442873290378194494389408374433010599240317792762229521412823135893606130831373309035795231916862083184900518977636655016495436599868308466646778413002283011982469126780935282488787039707033251244227392485365168792780748516187200353776037170874949556609165963258421118957814941083845069243216912332718703073986545982382818684491461478270224495179587454214013009459924825980925972628467039289219395739635838542808831245649947604890447427772151985846614233556380121989240650889027512967174384574899377036779263743064170477407898021817396985996526287394864892030587507574747211640791348040642771141239948507430606937191368679042513933401625728360217086143614211833477237580528552914845061825368900789715827996013793019130691293011328081942538142380009822260093525535013633065490015681119899475052915577066422577060365105094675271134222956148962921665136445835661169155678222682799123390476380167206849303272888668736356990626149047108074795711782759405759718711965418087456296252478685255619693900368403308901870631595679874007366895548445427053913359743770566572505580808873112297378817164589534966503257877978081476188370100298993994900308819401027745249119739295889590227878068894907865646154241985170469654408186078161439569316864635248528551589241069286534657393904712531769677415965991275821749480072480791341525015255036148892632769192678448868522817899556185927974479609665937588687702725988809124135206121500683968409929366033976467575782991819023216084541788524135536191223156454999629621770386243840108533738486480492768369600185675911027878154514837088175531176825049404224784945392067726990720488241748803945599882353486283877296043334984108097763078389925570175078633561409171829019888947459255211109826871078227032078537432718013179461328517895227788745003505022317274158289133003310344491680223204967112105072529546751077269872961975232239844802735080115992306558642293999579807150514235658394162258642831545416121466856860165137561069075182526472498653404049401215541247155857352483574328083699065127512058491186935416212917316448531816451872888585535604729311094491490935161466375524313525330108490221573629821760408710307416254041769173049206410087337813627997153672860006014546180944020684006184282200429617850530298091112822702215106613738765364591354892997593389878501496039550947512722504692902254427925313052947440883964471637198096150686353659738151374331130827053235444434508689813124981882359166824157293469144149187462253074935681598358827229144493052142235710492007828450544614528069183905529501982242640682046262593983912646742749786168078134529798526283779483947027941393392597535885861345823805126533173942398564241680596153990489408691490060830378240481058463928066519197124233686426194707032893054499032364865451795493238402791609681903449954842954232785703102859776250705748698420024124179901217536553806423967119841319257652669319214866287818398260558697897820981586756050194185651286352842392814217499483835593379102272155440198699436398698820422629396659069589258116802508374758185406045245074558835856721962751043834277749842628368869221238326677276296895030264848193137225826166734700183249253081459273731258468311045698588784637406489837583955880259218221005409243876607618168313486317991082010411440692080360291802730547938186953866046779032434189035199138092197949594019903566408062501126930800826547251224556954855942588567653438648993381098773487359600823830252273116035110834742106163530570047679378574546748917998282298557578685158702989648963423197214341991172697685011273736114714872162569310138496282212012547323353217705066425995820083299766632268960636012703661652648501441230983635496709488887458458739153770512404630639986843137353629131714567056148680429471950402116731842360689646428567733637994496706882257949257812104277824315538488594078896828901461100710596264509432342122703627306006410922975535272689387132515709906310777101739338911849342234287957238483692388116113735676394120022075102391167590364068954281376087413831598856276601470551897732857503033223472179987817767544383973225304866519348197748353118227747973873173961543939842253375116222497274197432456165820451812044578750274622153064821559414800387566004785913410938255798417963515361193516648787917962075847152241072208299476696570436307078727538609640395826440650462198464427281624057244503437677340206596309530696190152200436165515724613524930729278088570009875137632485355818288480115529851218906053442159960690533940566610678105012506489246468115288677501757691380458793983040510862078643862943225157185519257209937189602708800590134654113687474684713112782231324472617861785473712117165023942535316769193792980142288466660550919462911443632409651759555673076575733734527994648545953268316087258982506014213958677349666513780010269380570072679843178367431283553704501499310873497622480093348039472093130701434925588005851629688028161765236724152136455849832257030117310586275930050860722052332310081232751485338983665375573970160516691938472004193871354105347491834842033380594328680372260430908702501877209696227468778765969911836287260037960919673552995840041585022612762608413982537437243298195621146877653177166868010813215639145414212499161245310108799028759485605595027145052013723236913484940771169263278057179404982931666399431395432638185857233812992264197234302844457198165051371257707597933207597538071976557247079870997648700525755314752903918453325835745131953650813467165681252014960571801358002988296228098808101331521540624052754528949893858062045071271552146607043767235699136421707209377345612432815210125407942467840594101400105694944012114392214390777733349622407095216425293707198249056160083300536243933326762672190760384856470921043235939358071127778794357383904602313662295785900033235255165153347293284911586459645808986072062017504913246727019705224411355290961789816654501834231797882498385756771432517952160510269785112919410719098028719962177477219629384215434980228322583754006824993261464980487099905561294388123032128065058914282883248722732181427937178883060772633455208766180871664698620920364623552958160078116372657131791539634979785071023546683949900577857500437808856669020303488519372738701737375897315966825941372999760084983065576925817764161425367869158010752387132495572365663066660727801983944388260887556113297962845882753772513519791604271008443826869831528837731325984429248919301937058573424579918447230281215469057345132184125325243086670390058644136289820403726714395534473785875952525759511806504847877935899737416826401314179118983068744614364153715938783530247916452517794434680647352503993507758403524274290389606191918110762581853702119825700815790411806439652228280754686809318881357041487020314934970222910909066628539831510267793117334021348921490668074278803036543288312503478613546501224218722820898102735338027926659710412363456493639927678373217573910003774486975597231442040703915249533697560242856002738407872593924213138001365664962591264870442342916512500810738448268254276894116033818538850887889423252652916287168667425949797626443978477849935846545313209287094642459311913151213676554565853799273821756345912781953711232067404658794847684064723127214633648682287239527341602648258037736985804557044009621063302032521194829581348352985010501486059852706782752270440903163669848731028722937174367022418107528161997738099661740221362866339584484643614392597851429421481136986702905210526546317400328619649433317848414094364809718584433912769291451840434098137971672749479712060718978644776001339936857415716840204355344305760453020866536088670948354074001307193362421189437416624793534372639010916418680003446342306755451107537858150350643795606258687067945162479123472192562667569072389484330355713662370105028801579372551111395777343357047433861307630949568865180851173846519971162155934141739365556495870853043746104490494047923020361236215255093848918101300860166536252879930261500964681459066008465525350284360433770242851783806005502109841046616371163426995585554719294748918896550318996353545333377570820880501218562931493362467862623767153591868987736832173908916430625701967966380246631655148989712515909942127484472400091307985995494359455697975593791609480644050449814995398672612097729476068862977764614590398453177106601910974826772129340859658279451422089186475970282903162753181528083580805668704534051305037217732702867990517792628141383053839353541488928920732580935066596105033681964737215381641927420251922816949788502794071291627172482941527899738559599755944675308835102244284733766136976717198677430459745005301263751068610030674166987001168541474592380489950031561557493380709083545703991237669948789339106925402909692902029301233513150979726352364194633116812778798628382303497975683324554957437825532683997362717205017754986091995406966545557585408332339953526620523827550524450295961899374379623889068044282573186374203640821247861231477969997510923455571892481555731738714548120778213027620726182129438316430573428838133815284012042200806291643889892295054723438610164584544870083459818191527622451043198537248343817261665923615280517314288261973656916325847734689146211240805915149751019986319483879400792294229213887169873410403492970661279305608059604822905196105991623194277774858885378662686168406766149729484106130390113822130608680834190368526230466224741244723288557938019609058914583391580185332304213297059232404691806848496012706171240800973608038125874746648700543733204337567791446103437055263660171050753193922269073692940548637208627302952198497871975843146682695434315375689556126808295683726385458286337089738232068781510244187793830054213550622751322456470563742552380409851241836684108348916419724986558132810347030702075995142656008959215408331644228034944741878874819885964150796017404416792624431289563258658056875666478228387852060692559080291978615368071052787269125038232275997555951390868763570239416571452204336329977513688736357196779701178424753454917495259758567194549709064343376203005082614914941048026517869697883289307109676083972998717808077461820714463793362672069040753136283890460868994514885667170541296524966821346866058590649658019092727301877246000787845012032505223085068403544799892147922497230483175939199131011917567084035242864362999123035408510457048974214944557794632960414551718223022511953114511424308499526417318956781330047661123220281925868552037227312554204416033488247051023123517105441956932035018808571470878651622093184371780735826863940152438759014070499782560263897008021483074671631069283992017420531262449993582484636153661002512584462425848365675322765122852723264218099380437982745768826868837836942209396499376486325265843808505743304527193831070802935642966995047220342398434637971770748932168901464178788532203303014307603542174462927943805206280161730034379182269140034269646755539515738908622084348134710833317018743783853087149947470260727163479562411305959571316584591342373926324407265891609687128769916837656951155445602354467485047495733698184312835757665394859493913197490011768365014091653189986077676019817633550027556097759961596051614819515660463034765671633093405481288482727478011833518896713651145175229455111823818376018462312866845670255300405367528207646436188871074287375608685809141922039218587102580534547386188657248470860699661353505329709386114181636245945888129691031984057720027961369538044210070451924357702225717789205953591557614449412381601119229869716521361648492288944082651766806796709170391142192207609156464745319332633922625200103545220629803594892352392440833652224630624498279914679345385481723673361488931222966345970397683052889666630791659907054120039228964719641485886597658742051553910578455942093165099185922265838842016706794853026943911178067581563975436606861451302040580801543368431088279903893415321756761355993456370339565577286743634832997092900487720624017038701616437426047446806989830904898415194422413586014800499197396503731522810224500275465224990997815000108465169887970313999092752663926704229076660026022338148665151462641256606603684495745158552979754999652669391500102578964500862350473041946847247842297845780805896318101588750625593890634108595950059519702618804552261419171705818283415347229647741524129285223743059230000114426580854618323810541256629131664180060629940059435350978460618785204312380626500047441820713306566326141949883419420486389590214094495780023045511148593113884000829924766427642302140383110564766900963912647003173849689142485346560422039551424550225425948554744671622956061004697349997339625475063732841785488760968132178927611734409714750643101307283141107726584403596762993015738659002446455798550830514434759785561644665613640587180456030815051686705023221524256243244227603176579572414630147186812667126450749217209881330791310700901727385933523463742909222144091005586674907658753584114365803259486211218406285713396447004543786219120416265891001788132975806021441532366092825384257869031375486877937162090272547487359947073419125789047526379961230483673504332775681949926832349733876977865139772938080757567762178902683506362286773054039496647786968758866227842288120332234120646627533596227678284541899958262242329579652427346876209138181145326264008014398276862045035912177282072890395928447655022042732035314606049250762930819884767318684917733925701172507579214324395446940311568977852076395500220393622631775512045478584869648370163204445945599280208767958961605133015668067537820474305636713296502437653169471599516103141231684974022465555452139890026917792258314094234651415096294927919450482872229198709850063928014733654231116575578212694752959509982617577675505971841672295638357814214621402924863311428694934776183914317465683978982273806478687660535747667012701902148164027841432689583716732631484473718472325138950560347133758424207963936826719662536610525838154583982501972220114990027992874426054177142300889383858724197920565972122671931072392485206429997454810008367472343936219597842636217736580282866474432886942539729066573902475744781902527029709577794591823424525553845796748801425541357410707243595777688034024125288593726052694998511444926835564215298259802177512354707383398623935995924435558973313958616814038062514948064475237687568799776521778777640625255990314307879464975366498395513773832192106411304061039207722735646920111175298305387329680290342071421530750654646360637277199072268849130183830788254909375176786606227127212067328920893184422098495848027785600733742272246974744212566705923694782503203817944529649173859895912811109306830716633798374569180461989365632153781540345792964951626292679942071940638843258596550466002208337672221081634916580799516307571180117192754749991077844355949836116683403122157323731385549470112906594617760173883494053013804949052999813271649352378333394431687156495500882601812293294940799142905944747680548977628478440163665999498876573820296597048845003621991288687158191060727671249816923027856899818329436508885789210403963908987219020864334498144368838536021920558369627082071404265867248924509161302968246116528366905451188980910503152418520732860868538829741785674760479483337667200712284567518795417266241732512519329739409674379885372398522404021274247812545724347853950388427014119385878082769319226623092744883815257153194140798870503948115286004706925440970047746165207063417439223231056777874090515344359493165426822137118104557188632271096967047041507288636595357078986690437501725693558327451818510714801087026440674774023054095719520915384790319563441366120199436751542259521214670402625479102712210604929111543250843582296144719476895018524354912507040097166315269764424490125619428197221330320003038159697149640263727249980886451412338927858231450730435905312572146647096999102260709444415577947321759135424519381731090632961092523696746096062098649316792547880038860485656187063710837588655044075334572793468692464908321603982600452897864703499792362659090661579039993741929422884718140437098168868404601087298414552999021243207134182738904020145346128552595975929918889580811318434579451607262127221923187118559887711522712104691434626233956469015017188335042463082696737574572146699428935937034630001643333736774997305535766524461130842649106586903241104760595240262197318936644695978702145857437085663746004321633559625404219540335239189331846290760815805471246137433993277536072316037883598725328972827832276015385059057826682065304031583470306769913078957101565259684224351605018034135476039907227586349623872969877510831425788789953360046972010007449588054171133159498594717968408170491576743909926482631946121829025624606224432334626323869134316501939225930103430025454557531103983779659257253973064393941331514385078713911696287138668030134426091295851310033384528690118601225325086420452660194934428780268054645890574764671750633048489321817310018184692248645277045198587071930912859527746935918615528864550084319566505064597581063459819034622461281234746523218904419926387080846375909150496340683696206007443112311627100795192002851731195916113000876652777028452146677303401428702366662568324270849083966948341662619731538761564249441366264644120116297266029400562071353163021325038518945191064721066357242997381459379713856362657721114197886335699338987588325481038460946588440402788537922305137970377099135549212144558437116414524780692665996954517864706788259277997978965543493776507919847344813073667008240441713540424322141132241747824852219850603081812111076711816507627361722569469765016868498656713795419708593611140054685760881190369661038025540216524904696060376735401317555580175762328146362633149831377621062866313807938045048081166094250976875448926289131813913472975175503765656712370065359666979292886060361217308367436148565257436863185227924690406264753231547870319567008548263633876148203714680863009470978989775183932448673713109096385478972020377893016043662440715413004766621782037203875149831237587029120575989508468980450313261636340598913522262347123014348657549803857095355306078297733574739541084730511593145552523236969683629168363423319353966147427562735003838845486444779006172944397428504884007844854743997626124483135875446911795091617023155196729504216531850751616185149904438010337295170446479101941842374859457683176459357232719426197695600520682144163791688902613667653052795967594006100641423486187678759173620321563204447721794755428086376713917316790068311080790876740136323459483692738786545208822317313821008163500302933330752565025547381864275016409313406005196783593412444640742438508754662580391803817870060077548616019636948247815259303889367298272728378625536082996513047127934841847905099222738799376823766338123373027114369307641052005313043125676644304841184946132060049120619093993530391146508133315383858267443150762420665582283533729587186647443827838414048318451633926973727883072802593290111980860526328677470356299728583001025115864040585916272351216776387461244792492608766817948065700893085663923428348048700293639693468007701757691124265225824034052472988061076084450547099105744033626831488386929893039464789640212882887475019255443107367902034467013363863928258553518186318044923554413240238094592682056264117239528189295349004401023735384926137271994588019501803316944711241923244799307557970157997219414812113188470259841667087115556722859931667046804888118029330996918603115251704110728839248303952842865517250499071720226563750525239913849907067284322167816948903237179018101777530121155328610792604827090524592107345603853460265044140561091202869604916898743204863259596061193428623694918404221631656361070162863185034631457987128765333222967330657437866134320639501355247807346971491926695656335986276559674891711812541376389024121642220987505829757659886188342312904058362308355650830319169639851516390618031506827705612874158260360380788381589343119116663169816320545234611126905958626428809167277257908768008386328506012919200743253605152542824631652357545911583917744315312950986304988645777427629379994106540426972375985506474370442450689703870859110458253168680873804384328537087728338363093497684316791913271460329739921301145715492627000139267240709872427480714859124459461697781166257686542660278684085025838087580629354307153337988031513153217138857462429863948742790145252183618088088794150921289571337138282437136520143418540655551337242449346675952278082592774942911161899879469300579999772662193302568007824547640850205194521252871368725664529122543903939833228456462337234009824544215748126091527169137268396079373375177425114589884465006357009746631359837714971175869983316155903640108676363084226008999216888470683706401558665186686382844688257174632117709531206885131700866334361520468607669985590208036580418102454410317926714613508580783042889323224482894845608251608554892870430391294875773552741977059922820815219167099578970935313331124874866549353280711850930331354292041899862544950979494097345754153933591347401686572450890533863222147177237931367574770600574845085264376966041950008350694669641254368003732514966960177656184910923715276566753435366069604185222046111414278107779280201892106926933974845686865060650929330195528794693954308564124745873133420725543407409456401045739933827044789282792064848277883227586960563933717542133195240131006881963783087286238275146658513510042023902240338856255558573292632685949090660290048133266798588297458184759008690335837176798447619352469289721898514840904806030315010454475821544919586296856185551843606067298959339584131253358158480035390476890160461935701484995056246708356376174038562042145865656626482385151345202774410626710802449021145509977804283593126782624717919784025721868386626018067094592736011505008551920113273389862072675621630507707103766215998644332374624594989045414147414727933896405226742928813069921314664007784578538290872610736128738908595727835211591232295621516037329257564983101044447083060415470770969552717439429253988112280451271735058509955176936207203624298167648354494448942802940968048244126472530081852270544645565327194235655407117386736766204071139678568830732580595253357541064675749296284980702044404757151898915432769655585684377846175859864699258918926897036621518466393660595045063906776886336773086430423772675630199674943503905969650410872122850818448822313819115927726211431561548765770304167730086963059327291338053879634566651980267376127404412940192925921454675218734125487892593512996789346698224808130339295645327251288379208495364469571318684970104508678685391034890176612158986581467605115325835944465068156554239043748358051806493807148893834984186218133874263223467643180341928485492937688717896902870887002351906266546438693242975806383690202610720062576470192029025300928001297434116190658065420921651270386653395889103292079838456006607039935605686395387910137244329027232377170717742391807236993474990065597348677542944436021143654375727683720125905064167964826133175688157757900005262858995167306478117712126806884342308420318842482318186998775604284886308409956286396394024140658758401838417601261577367011594507664006381588109280207951106385976858674054630649997557623709302582139640938223984174694781690431017374664872482369384912829236336998053294418626757782657215666761466648064791664484213916050148402851169493598349760592085448421874881885746910425560939932463110287125241940821126188438932257207470913707614618207082085141815836137336010128880016442713710403207678115680551259509374289645723565697414141869768007182982171013924413281730909411176700020461690572873448446023269445704337883436353447224854800998664762746641116136181262778114317371071836732252866734012166838443001044491844176992265911598688917180300041377095433878939747765338656774653749773651633500932659802912993928399372671279780762905643279642686378528134870113290563028011844786910786538808031438887340441768148024678085333991444951135612871468653685725427558380678168483567301220616382529883974221359548253711450296717760472461083277951438205619946003576224545365374778244503483237964874506737145529077514314649825606737549159159341433348696693203559466405979040001470865946747227985543356167405578096487029118700378414106951154041925002348839926645747745355104856069702211736024780001288388399803020025242973974918481313677499972527871030129521969148889206492495283712029776097879497186147760022502216527645603238009923851429144843832011446896801976870016863256013353892580229077346426896656839961099589636826559948753656257403072892614936789649404322603056066092274657968177551696208560160066745271188824539714823914482601153398582424140563157401752910470459162883151652302987936226657205705275266149217990244801903262872405711491920080324526625248685712856016967501166472534465040926299361988290705262359192348755674247860100012944183423305146347738302558608221140158789882405704836358296935774641261999640525223777083745286843126467327975637717391266251667198245198916359793845232391612468342114905042471671212015281453216057141050105776674703197206429166291277302808882582803755461343077476465347959676571028852806101747741820793408367357461415684680481890421901298723145908299767779646513572897721366169420780596162521980311980903698093162105042513660231111117937546029858029255751894548323126883766660527575561339092655605057214186950164737210213505407914481521690488582450444315041421524970649305884470861875238346764664536011410202427469232980504103089299006641513838317369030199065419157058852343528902062817759596588746676552032999062118813711642426651244585681616700924811283319166148377836575191692584971867409744847501451438964721105651560184320592456192737159483753542112203002408645521744132404027381495333643365202574639901049391732422736318590446305413797626501115820831603585156018211175626788293623411082666632173270772598694668498408014504057595233200684457638500688717083971045194093949930674891317031181616614999977955463734094760424755415675579867939260677070476262367629422187089185683321959631227397071564532476986723002939063136704854414433728312270482748826199352008458665270233570477693004458670238661269814208217627520358767001920791744202351661153099920020611135305497548391998566957245711753516258286261367047180699498722490904108371376582444056842763953281627859953504908998556373123689660667722940937665786007209823785237883266175190455130388454906341534074823645477120673331369464396857032559784313285762221441170571411701140090298266716158266379144396175615679016648372404866974245501380706901386991617623685277230925181193672999374579013518785759762959085997905083122494889932884094006987885574392303304521431540663060661798747892476738891612204624608771497736983418765794726351751735239720835873881208449998640404373996556322563455190727368091888361733762719341835249187149472661536017785992755004859898265550538460564761490635657960101210570857621451408611277341889463016652087382818211693675599066908937780129441259013154117221830815657272711880343797010900101524990104580145399922240155486364540174195764423506707394877796394826186030689360153469417533775560413134009739174027957388818264862848209837325931028890049909724140875994218615749230526891382575754791521921530247622689876640215475209296235427012619500131117597525716359626717522038631200257624717317151679450433330176112234542700814255196378020041201204103306796801943259037817767283869458067619748262994452314738146009017617359727955581744532295049801042678330223136347403456426576747272872257408575924788715373541712127805667604580002927502824780114199529479964174003088768373169664140716304236127462969058048340883553969259712206922028128936918016331484557737526612890401638519198975662911887454402411672414830063807324665134401391680728112678238439122024221554121617464697719005267920904476459464803220182651206805345763728237608201860153663434253393928550511519246530525596514999516599210740581371205776639646863263668770496615614849631846917634885323361012813608398672292923800693876185972754733176324615075521074189691554832995536017705514428435998783484583840933533810944983248680476122410749054294365255910889122714092486234668789486385706228918924848050858280985668593074528308672904086049306018158686740818218791848463859281137862842915350553697828201938094832815412417182107098132275753375685876384544961065075083465171037643100867901262677550966851668503224129791268920717832095187761062453586164084575491644825717094391181209754723625524594392459550859034734823582909189103409356401447452246799795491067658916008495933780682956222297867168476721299745047145097311014515723799100840511947347622326170591018722665508897815947230968204502656548149454411281267783915780217212473442463916815857854691560327738529681075440753366458209604068465331603749638398899998912819560285950728124371511453240324094420590406352282951966993623560771477690549747276794719824300380537281686934367452386194047180439260502855003841337939613185018451100039115048896740131110137069169619388415496456771157039344486692232262230367344209155779386866364739012357592635416028785717416605678073384751183510249697360507109581810676460563487659616811489263272129075654624779582621891240358111830117847046836346386740337771214475221802762855210679436837704160391694290126286902602879380037582029293011481944614496126014815629225841690413099519145552120820362999004658281802967767465822950534102868902558267195341830224624865952598924510924705395587366120166115149139922603921118801340233597452839111631288365655409612920544341195073971247773307765842332969564132425056429646840868712736136171958634427518874815830313314205404080620174144974612945468815745142212219019869825011823633022869208962094850587319090307132652082505856211243924541742796897459939602807842631785319586331029502106733631972314091353723940600123841636698130904317393399179458500505879649515281701252036783504426540676248070689197938025900094714932964379065239896150034834434756194105948561449765996187722758198506718488325253737899411289810063108613277878867876779857959582418878195101957139239209320801499002411244525777533769242837403712086990570495059384364677994160650713743742556013095926248627374291736814521869858117028702903907764245341926787595376185357631269971536133057572377781586863591198898081804557261242309154193314568504732433594916012568103838217628394274036881513505394078636284624427612318071674357537704896205344658957248107931151683394214121784237242434833867296022268587275311512410849241544556334944647509803327117437663922867949958343533568079589163225308939802434859128772648796392353648453995947688551935123148306999661219134167839074155700306127393515593906600553755989961658411525925659236678272919090170644844573000448962104234166831682929509901446767317472175075928797642203364557566074911065267170063271904206133306543918926276413449846350705133453052981377135905286515410743798594437467996347837728764643384996153005993679525534934801227891512607133109489285028666644596305047291026768145242496528766889561184637636815173335427749485997542834202139708007372602729213305763419129975753485382311345784548704749127229571802181051398795793115989063963723588701882350738098611409422866696079511235152984830949190480518314548240461882066722496323052358989224502015894382991036616161984214504506919633341985244780882785936349498949899027997317074557613413101124688339976132544136957628441553709183215032953932993021853242753955638220989997560444743969390204371806646738696089923099606574972066998896861545288779998775030412352707595687200780254270111205106322371988190540462363310462498092569187706440109409747061850514447105705084718758101396770782574894292186729202294166186887838728530833126561855522100849830168120196009637774642362002602125585487642402145035345814091703644647236623233898960301929916683401283957969060697378238945029285362534327184139570041324384169858173803326901152489305690377900922205375340037364774850142810587401562205110984509005448593030740382617094774932055307537166919702148242186409727439103589376127327615173766652294015020842007307545859502589612493347381577957742265405882859279120584720910710653581235492905163244071910258622868174791219013566146446203721101413087278984764319676198953017227061352002580939587967499227911558995038091497247541195107189596532594606460622961433959832481327645814593192132938611996127856696846045402022437121940105372317183664858885270977471092805788852842827816466439519423905395517434316622823079966756895028838585617971917763100291708042499641571436026117903909135290700674922261679636925837748853488992308000090892055203171747692315448799902856980478478526490375413766761714173335183950390822840826042100687208175351398624708024715332838803439889646239359504319097512923423989773073789182517333391501416265171318875522730973439711891950118372681423855395564713690033395933196842800047605474936498253281034138061227255284658234182454047116538940603105709869770906115571246666724090698438274041069675751674544757248781589793608796503971516094829636134623399646439724133841140694141054813641673806169775882533165851685025289584831393597226856413380154494641640798319711777702553389724277221664287966544128838566831778108015323671435653140143426600474576687349346113014526689136341238008315310900748421567411942157543503736915403524922601877366053909668798799945004626249609681055629845602779195262358423854098456099037090611430631806331219774639477938127879115653724105883610896995902857967530705960212696579092786675156663019191114241487951762409830093316438698756457104993454727296835945561207824293264312276923212353847550062763316471074204157192018279544472584917873469167157384164912114881697677746507393859330223236694948365218914904648863609343159271366497820586191116498469128472923343641101086238429692820209505819041985179255423095140917654968593174447176578057513101691067342475932439162878836000143458023646831982355582621097926360395728112018268067341524420303811872785262050198993240687607065823441482285409681830855111058943953330107700564521528571689622055514012973555581267292433473009934108391517731612338367844212674597939306704557305091029190514415005026826826597918264733872278651245398533669419754961017766334482724881320414723467512763480403380933230320874359568867323498658532116533767725761299863342480010696446071016704348515766230048482170169184948602092827358046670880415157345445641107885108304827385941165959277086946034863030046578359209303051453309387006898414745137563236614180306943448817828593192500105269378458477769823132072223085991015523674820161664356500851676163113898436815322373051809509950464793829436288212427072768564909637667315831892976238696216509990634039501203495980532159560397656501796032644233046867767815440493780607385017959376858491324506467135934360446123702898182863818515246478074692723350228751204714950069138041139695121101012164059353997981586996798524731356116749024134499176830125977557651096413596796480421102110164491677819521399461506838000583946863570249116701455721166614514920508029655593494116774536173859744443270436411611758908264270234622049031316636485202627765923948604676149474718435006956080861656414034151325813784924931080816024241513849335034534133106767353661353430024269861199921046113006828187734195310448300990903411520438022259845085551696188023736648918940951603512097458297988466433507976992146082708460808746923969209389988605866579103002590473594107486289456450227418506506160390037939465784108044359919169738715840263756844174194615346315293087621222135653158751806689344115583393221521935795117590358647487310857283536389648230347686091404367951596352777123575290277990667139277046434468811231593737251456290758460898454210708959669875058058708328736729968864279670848663859286582119932619585085281374004695295397941338635290226574099659914270266837009283265091485583054146702666004749256304638383477752474723723963479035010309426440617695868169639193543067271308608429689546732496025215313189348234071469073319924830697248201330718765861596102828898500330889568881348622668209170701879227936233466480841715569166747163688688402095253776970151421060806666823106950087447445964098625490807807871301853365425543840990671772341150289583394647214157082945607843303703307690791574977834741143310609866253831844108450714617873644629799968878952811108380556479880512124438980867585209926838850687668816545860946545850672353350830752819731131295776209445314400252487747647970413198956490005122046087447785176166247266940673472465720671545347229842202871810444897293595613931432363096962606433999233638859240672085429890154129078897222422006496775876451722818434647526667755183310237835684152186783680415524206120692268231971388563738526318286618068529316969216548688184673658687417666818529443446043019668038252567186357752384971028335077245431178258937168262647890868586909430571701736501365147148602002152595482771174466823942434790591025821886536760918410442002606874215831042614012001433010877183858682455788669512820868376602949566435508274496701971269679763478159409683541577170183484542753241354638744553578432481314829585065743275465956980389049441719633359356785599735045496245053704904374451217272604183402867459726313737731686994300533906490869387064712773492173717745869605041394548386264451898302976510115571371761344248857087728584728738848658725248386012553187392840128708449030391783954563681694780774553936870759954361707412979639135457126617151203017247627477250554719704722136506737191641196939050933282471973567923529440341337115630702315820074969826909838444997047485164442722925424919912486801250442605026896482876299994215110548928523908538586311161672067549048077442386275140853201134539966204535371618378024409700202771927009795644766604929898216682248075427073891467373225747496642636318356888550625287474913055397831609406245062329246892821771511975841166354283803345441698807050509978050269070533009778218486554877104298039267518147563020869810199741998403285747382924750965298487434039887652141231826543594131862876846051673835824935273871642905660243066268257639894669247467266837247588035184151107678325518053249643690865176753167699873812335425762405319792865115692179623120017852614596344293177107501611972428132899233230695462077712669552449533751493072892929166438292956622489636660803602753514096357691672228687529625648296787143332022847298449389415069126797269456072783240346698462298399432226418486595738484949229439505612879200205903685090918756494640255285567701921806877330563468126125557520690593472333420093861818151582770775117819119274417889823237370212310440588332851451509585022730154386375196528742393643227918342778336218391437170007302772270721271388201832560582283804169854389407402063376850733996244330435258910538918268589777627955975689486030880024863296557360908184990403856820960251412329515522999366528569454785038306128990895612174387268640898812466689918146882036573907548034484832215191048823198736913790455379851902588456919754398461811616982383799312656291267249548448311225934657581200549119127509224756523402768264298371718082640462085358981758552969716969135089625988158379589563438584312494591920454224291333095838664885576707189584816540094559192916442083394037475386145262710333977881589337208645584257815339193054987669503662363656880895022724222136109404924568292405334050969215197868382705992049526480477748313711096846784648857130083927900831899679722286845980108239309433496583308835289139624688283298644474613543751032900806108172212347930124900767267902404258586607564596146888136582938087669320119417137049682124267137522057720116769362668059512329287228028510209876699398100476728657868807653065205836762015593275656350523256803307380500347899320203809083481140808958940431088150476656500699492926343969865082888361446853233461130820797842291816599443656428209859100665424724793626297845246301155605714264461420375579149463619935021203461126265077259417828024521845265553248769163101161787512512153675524360112834512233993224704506674697388705315402649622275970830633022382960838391848115181272623604436509888531988747305251487768554308579043186900450687717455526516339142948479670813787251361077563667054109803763822253968597297430304816131156202609586340017032698058740426074746203650440208719775177534963634562355624538961106519245049892756726796532138012832662123998917506766127818618493032197828772333727349929358899907636022677100070265883074500532692721094879983370189186232146146584581027144625840821088488933812483752465186374526619440242843823691994889319029190851431302721499245401914689280589689926223221099387455209340253801445391187750435696431809932158966472962496080319925190859481115926697268065066385260027687217860406468427383003984063174968006808963887608259575447996433564395426486959535374463135995833755535615052224301328882934493863005653791366074098602614165990007722768417461289930079162638166726691028454767634290476923452332418596652676981471614655402383244998967084184081043304023544866086832227122108111090802637846660766555583312590460718109742532346869909625225141034177442298642420924937265408866460633842788003909443785414509679673732369638470102391522113639866483323305041766745330260710069644287299144155506894703067851000977143155311665558771289419973193096070030267074384957838556864652880373800326539697926195646732687021838122267968796333725493118657641942170230857800450482125130567807770315806994754653134871748368946362222418832396464910946041196392159207270158746365869805804686162462614233848335635153847047860044014971006933535221316251631462141164390491110238655364994386463222995227981752766075992646120649729880851487893171075882086432068966172995478415806552195935992415064236947761467934273956668498350346531531474099718391536367197889560520281465715104422158305847087622558971075247996011278231015562143258125633481044768120559228324992818327789262784317805216605889537534378069349775786726109194032134401285558840749818771044484872702597582676576381473873832019239431014657578811867965998949417656635999525548779386837939933250030904258702242265625427572492672338065594522292174096794828987360986039692562975834099623644724299416184579942418866643798389072609684696472736336074240933410770125697661345321706966387387614576652386068516634132856519335622718064960986580523966942422773589592030197004430124991462112316001322146482193976428100033445520770714462984699879053509735740713344321197797885442673783321539540587555054607832602327691032226650734664776388348527744420420834578697097132890038451955314920998755499064519098707520168066743259542756010120957172894021097900968188876918085261556353626893234852915300112476062773385419657368021558846804285963599364010321319629904286550820499657226276778621789352534713359203673593976561741532376266513906569632851461520403276928289436169532594930462300367320068734297260385092371475940882103657541574915645538677418979242863238340079591271313740227967774270729563678299670755486862217170897200279359223797768568207129700462031797623279865347720170202949388816712846449846726843876951470281490628324210347156121694691561559261628036405107967294841249254187846440863187246793957190602240893442497395511025427686006367110369404188221853390491487887595995501605670970938422883587237049308403195909037862551611122518778386971295619808820593394581041170421429942657419567575314673317891407731000248705526246590860400996746618426186283940370841510302617084863421088630378668220316440261542224008287044530978959496760635299624296098791611957693315151405473111931710973843947753658313701593619906442253646658239857645704348835881260477306860295617322173655087563380327001432146868371089872894374379851608496654739009309627851714755462965954113703721657443001849698110581761355020587544390556214386172470783192027173235253962267505541743200248349775586257584934295645442604569534317152858574542365920254269257607991013897198049931900290531402659952643648129578858032860720708993935497535075940843929889070326000642656900060052163654816611158096687552340453721626496956329020714544193138178285876184984316422643703063309652204462124261173594574373356081334727569084905017211913769698429258169332959577929816974244044039667272687221590448595299790314902306997769771658875933191935246666850227550635033020693506413054329164387192240461716307401876322725202100988652275081811240092311019937190772200728286750345350715834120394068439366287999527340345942329934731418676465661652720284646848893936822917393146623276658787520217518174980220780822556373952056285285202888367124309031832420919470739607741250148860137171078346927099835135377546421911018819060889151994550345724013419042615663203680973818261359608401159607601151571028299809693444095593881583601873230793498986639983479210958981698817338003002939586191418183573475452775226933552797731378895144864376694063947703399559267346325773168449015764038976779058939823702814587361355125453259572100048219728396313131108567467179311487125988603513508280792168576711776587357162883779045054076318159174766310869669336717944676467685783511844960195778762601926557466335024299751292008907703671603825415597629569877526494561276605455152263544354643690269944079683084956494675235614293524604842116031345088636264873699777393197372833122065682550145641664632541057465972407777167437387765328142337956603443627716193309166822993030681208357216596701578808085192489335091924004181496738311041978802281579268750033904989471520996303748702572682169420697559654207960788575228486812279151388796305679129649988807157829047596909301961191570563112506773798272489340816584899080617887283170028267511440784447149641223857456162785803739381923570597055320768140905818156891943556884829818983721164896049977689269620495260641053962013236875473232391462145200149223891210041662010162915093393922358464667807220088483359295027038216737806357594184013122840362114562113754844152453758516408524171168433287891718216535565689483210244939688227837411872949318536726949397672397370035844882363743151640789262545404669421934443107819419742079001895612918181749928525407375841334037820788998808341976313081922511923369025894260137434529223448822907235250562362883754358813986711420164318219659790896818775401229543580239742894146859877768238623385563750981245540326325668999288054169930952929535805787428281452992012119316379065584457054981263284173128788487372483473275599776492069632045346396119464998474630234877067831467183782749187721483686277353862739531511935049124513354010540536950218078847206647622372045270301321897916756453085681946817250189975740288789407017611609156448461291792165466003875130477894637765538682424075218042484821174311685648380614685170972411904737563821572139306934954858626976422850826539805641905370356468909040966203256491071558342668928614164882931187645571111624508739938008019815503526080626583239339284671538741563658205726424624230543080586027785073780916219669942162195249423790375399551326154262169541981895817438639740655549174427835680394526529719057484401686843577969049966919169013124334745022373714687750117040934665883336675915399821249099393391793690298967118873065140870648921121789028847670677497572164284176274711335900317464103925060079890638827356079894165622996210020864222083379978766901208321322996373335536407280239827054472874165013058128604673070303117005285801507472244677950178568034061099930313343640004449675750124642838464657861378532330105169193552059785209225541381181111682856062909091115355849910564420084177528741078938664471712244271308785669074303165465139333905664008735643355038269985907354231903714630197922110887769914769992548045305223728260866328284476226516899482540996441191198334980405321533253302123634379112975898738578923842276488240873043080979525851175230787923275428699703973882151075335218182360375296139417622782205553470255609602575017342858837049858506602715542348253795412687874622684634772973587658020747104481641275947211486704969742856001280290368693638298930646081008364788814338502149613805481230526768536575243626547101990961832740667524496162382500159588168836745761376038761287482201062437090506094567794595762850752672665362504877425753268016101340620678924676776274962422509377885926923900144325196543348873341062434121330321642505013855145373938641866145466145682779673517564889313338827910426168544552866872790907226990470517462126683988992012918928345205080271008850504111314748139233231024364777233032071444880484824363415047691634080245182949484574599586340297858533294226952855433758334173195190422233476281674592561367253907982622244575986412477642229384175841260238936174736177123920574176164419170291096377541038391072374175856367482653933866108764160022061890151513726471221211858606787909275572713681739802434604075786312974667702760961088492335445245383033455106999590392470371048335568660577938915421973918235884475360558300538472932316582287536977756941663355144919455076699462936868535935369343050447337462616111156238337434367524042968790038377199971091605332014153310329925896885377708261817254242790804849203171488567115217863996988635768497970738761116598274877312316704385633883519961617371792157510630160148892023565219180558987013412015080727573746802224587178153969243605216329945059115760726512781835405805929194517297797950334052847151268560838969598298164801286057355453028878859491578835169964163758130126194210320021069144586296499390907156242506420797953525383539211882628839847511165481086959891217324784396050254487074343894040485519514421057237409745253898896189725589414224727214627965775269065710600078572031007242156831258854194193990769755208431810553659782371616715434976534312358565178585341623072093651879272552864863231136648450265506051004763261933027183108930067631281764692285191768597234725751226279105989568482189252802490824376805609497429654942645653658085168512746061721666364147544083702634600725891925656663703358035511871108982810632897076584478301655332966797736946292409629223135807395184567400889064946642537251984296457205063004649258685121029949136165563692715934638909890344782414926954283853161178767050650091677330666601166237543198349196102573500626633750959807601103312319925380723269164166540309555180589088552702841320478388902925405264360750013002009827853391477110106526563402565724164096555278418006894995750426233223669810186233065648671936157926762708651908987666370434111790743591990248941409365245114109262448220049821700777188413083053378746417106877636501443196675623662507292680106812617868075640683103702096150440140229322157860444031855428314553141245806080153089744718633386937646168388258506877368403523859296204628079436861735148307524324013122140952757506786210635274938541389963475635517681211710032613759913536506248161534603019197955005238225276287086392489814365874989124857918791232570790635997174770543190195304093139624671406627731418493340026574864624245812720909208486351723163431508799115576189717225542863241100007145025518825338919782795888336572399411248422299593277429440545292080182584166957731407736337666663088294561292610518123335028172746110785787607876172869694741555832190985729997948644337041596831992257564594565993065881634035223710549092308733928614090242660095283215980687706630853745561124798897934887659927369115402643883478140767071258433453850168897602243941938984365310538417682255265063449473483731756499137240833333534739427001558559056241533304702333588066806544283763246892758695017778292890646395475436942739451055478506244919139086342571490839215651943931763360271755038546554041505234055757325404251140626515920614259514366156139366163147791268146336303796843342540462618088413622983993631194250257097980746818261295649114223152607700402837868198353729747117527720424423213581919600120398424741830229689700415024712756380008894028887061773806610461807306858342692321828304531626797000158777579371020829493181371609962707784036609931663368763304286941401725080054497160007481832973485550324313125119632605271921490160453295795622510865659480889281201464253945549357043968256124778770051960576379293407774663189211213588710400752726173581015553922506317362834113746758138607572306196685604999104974757121099536461792741988889725204467237619483712540206100678969053837123508188195754699028095683480646999698726890119796227854615786504189921050071949371378376047446513829798659005921512131167834500604238448308525209520935056740615166903324725260413650916366457206610029246303365438768785028907533331000306396664170510739193606112004212964889344561601617895568452205371708620408677669536702981910729429010104404272423100513235087844764681005400462424124315831551179594968496901072871417088180935284927294719917494744557737208511596199768258699137373787100077328245622487249285633424005480913037010248307861760409597009986088463387456644367374255731311095435737249626828969924090511559610307010173520962154308704292934686366738947182302593100646109704660274710016943094847224026847622534786091683859430280834540789171843277055091670996366106209446352894245524461960436612143781676321861785573368797144758859737173046528404444646752052159868491788996479221219003811893934428571060393804144865769016664295835301326919556801003363333104839938564164068689104168705552000986438622562652197393491147073936205943357399740360761287820577807024247483635440051550498864862596571688066244745876597494918057002528313595798807550076448113418302818061453580604989681324655967583187965885568715583257939340551820608198549510891528336154172634313333971303524711088079516382858042726880159131139439263674884100624400218177226166593712567745869836891030641472880876585087314553568137284550628719307999216310376308584137868125519192601918341762110059485497017917030902130727576037000901574495187932720072266820603713395870984353667203207998587681407208677794414205980688585306174938740635697632705618545192218698864614982656884293138476200000945106597016606106385458364250362388734747535439091756912209656624688056153934875077305926040094837319505770803724307155076313692069809602226275819718028818761817877239291171600994368764235126855961990272471870413825750540770371016111041938733080117929513407830790304004105763419003916524742141244109370087265155798952407819211341692416030108113713462382715317550149190310040597189952252432312153757273889753410613090137440183774729779865047769706749232540485930815110173396424127418907966332558515743233711992812399263138041135224334229242786345807481331480597784507668940584098581276832051788047772483817058356695649973504903244734284790972408383831908270896846925880105374936787622776553593164014150709003049387004507179323553646156783945855310100390548689129546491890913584929820011103903080143450472341325822040177406228005315582895148877512304343849654807606141184074389464936547706741472995143557725407979985103228188415332449582573633231597672163460248638066578698845996574295923936570815053336861289945925449294150787550070513013534177709037499540302919578904080119773730423037792544307643204987183446896442973121307179839531820853620585013419884048807647770871327074139894244145234943422172049045380008542995928461906707819381017373177652518862650193208717563697997361179351301200332240846127914880748086967864552713790611977129541886539764541961873014130601271271890629318901061479441995481534066486250898984933296091730913019473206917357733074750243826001936663853963324296970116449465351731242551678057101867148842017948145237332936220192946549468515978317848539272598419460446241020968445076111589069600139488241637532553853895495112290509343790731824442755136801420180033251085483169405408614249903979797058869907832693980271091425141634164843948280264995986224361312879915881312382899737158201882061577116301742406206375833799104724981686977418225766272455862486986699747153964361853149032324002692743814715017424147459215760972856959735535327079386703723831119484845632832043152723184492847918952597952704029937721492624312268716015828334900662140119297565271801758046553997842360345601045423020013382215594126254949690066773707944152261637210136938476733492261556865375609239968952643423308875401106795558645084871463931066858746456615690115847326946053895201677833437023272662589311162275832900764197233331152868568167492118897127600306210152769618575537111305998256584122622591449463014495808198009643661530457229128273570793161845605043620024539304405638074498930398055748204074637076278142133870431716756304168377357939256667850889679366408801643432871780511385327485211491662990642354355445451792720415929673940309691479712595707740250832466315883997215936283956918713803894976428513212146936963621850083421737521885668691412526856513093599488982095775438014416200695863727236981043533646275084987006608896319378382508548764500773663041467404430271166226231146919701287583498937218791336968424534077841293131673828396153372639209629375085347692692751006003373491405780123541729249127738520655665551518124908559382138026940918860342629482549035307130339541901490204726511922643083424670249775797288405771027552601871327487101263762741518813998852878383602025007469046092688136972224125587405156649673952777712781828026457164009344889917606402831150022932833410094484873027549800294734602909651595535635006304195776686296853142623059289703238664794546563798499916131037496610647621020704494860585757900501043895337396042872713637036504111195240024239608605681365231527498139466201323869269998684959967183087763574839291166168145315458496184627689110213234610085187328905941286768325160296885956597143131667797275129735045261357955036272811739613088115750254933069088319844028010340377229875519958292373124966214848039772679238051911404264383265983140096009268710682175158447598888911289617260055511508164163516762069591150106401294110577888720375901821003108275695564190769004339717440720819898987448663481494726452903608256963417000063503892430060568382890707094593473760942903928442043688576419636942700515038120495304009888829755132936140822274836724360113749906502741734151288335047521650025836081266767480595967743057784491350941925003289210488084381246153753635176116844971930416405254136516966030584534692735050172413398173053700799093056764307976795935082782576769298160343281454512384820359801872413967548602173332514775711486914344236915487464323990833185318638286663867329691441780686043137425524938379241488431204937538326259874868335834751482346875372260273328858807591347981855799349545979752620881826628574881848491377515711238685435467603868777282347242811838528881021263404228712008072552589067747131906662908861652396176904858423635497263342954554994805599654803779622958028293978617464480277912812654880139609356576720823762650065088531317192817200688742159902005546548474252851104812873570569264702182247248743925774759422786863137728768288026718027903465800787100204688184897143393489985119151459083463905128157482306569919836186302250554973800568464855937500575564609663136142251631102511311553621063390689390102411041661504899799519008130682759116560156216982242679910404936750617516160208882525484907802682537211039576936897929978088182923697100319493123975310385708579705946269120540005782967710461841551029368446956411188873558468588282426057677953185951368919398617443277338284348808784167273496039373152786370605567751468029334243160223372842406442004209684175495561324165169462996959703851218359891047370841848000318906466445705634580020227289938488640097717501247029543609613432768907248754772120611594041465815759744031815759450505919120234072174792440665153284649089547688813590406277630462238007362572504692434458385136136971700270020745687268102321707826636926607868884263432026180336018386185473005301056626658179684510339805093679965764920897890417539081453587191857144849271288126316411738493647445998889427263097175285486257651609979886056421515622531237059595991438827086500376106329092159729007471161157176222529540646931556687119688698486305757560490493684303773419618419284340776662643406447746041290395733103878912055065695734686324297772203395407799904950336417161874035231716788184787912031498371259474611782590383931766568644445635914717536403648518741336496989912998663358711610461965096114363033962965591068114842011130981237460743773728019231667998427444253404628244431530507552011452204609719196278360543504514528423605459803672643661464660549300061545288426346498724646299298392219643365042473898593415116541872826080512022811252085970954929736962452466045054496556191724092323517034692418093209889039001906406734932470464163506047067708931131056963989900064310309857231277560004682314948839389365427212189984023356863051117704294854578822539172053407370874962811258391173047868755122293670569419132342942116197004916892827832442281611839874954877388352351499576535350646982109288053241236904148191635600410401661703460325059137595257243344068941947949295665565104124321974881908566871624891565049040280520961965313822500352429459837661418971192951039120154089595257025631459962323868427258220432984968407660808019733747070293859065326940623509145696782609777731091313936690251297245115113301321551757513394050090273630369573197567581595741141109144821349463415058492628108604172245406268015016101794770281823998183160663871874654259763712475299343741230884355099343356392099582896142670999991239512899625408112935628691431277796378199561638117872906471518277065740874849095799739171361896281472141777387555235180222119389870167791046044771742640820626107153143895079080326196467766005244795266965848053080783838740036047534403238602085214553076206744077648984222020892174225556367313734633759921397086271006156663955529383028524804103394031940599560251817292029564595117770704471714105295320904620099781707198862488195378321627345017195655558452552260351451497135214220012634802102559520108575472350012300429197421490479876298529269169386127155267727708181115856745392591485990427546131267357534779491421544966945246829242004512080899303385227973928761402601214757090850877399627823920405055243986413293096975050439292310016081415040150966578198122641316892912874707601947258682757153668462820562343844717713594483166234662120038941654059360892585726782832020990182701940160813290442557573866896597109188085351791516423605948468748354674948472514132903694243760016620270122517791486264263754154438661592499328851726486109040923507523130584080670092084027861027335541107727631649442640839011581035223751756128194866432641471866108448770080339316444719553366118767566509095455259950821762081981915762410213358410372308656198984034840482172121135360825975133830663081931999197951575649928508367815962509167386138253043838084928232767584099966477124272758379383672780976102231505133909658040972522832808129714948928226652483215672149385174747110742742246000275088258096183831418355329532225728841925099907077932012546055264521977744033621887077794085287943682503579331222734673068998143007795739759358002072106536156988264938637223917028345433298354926295838234344113563857881520068213440970113627717828587717113769686995881722084916149442939062732104402844017127287489283601614680766142482466427429014663691856258459798678098859164282519025000075023501897328180105981628763624614898162085230399624149168631702800572797740626563290683163602529456660142393653001867130147279949261255255596092421741196474138193180611618949978815119198131075340214007487068282248259223036235889836047291579917422361485917880411342207225150336270791081363274637909468917676113834921910561564851889864643323212349311142742833320961728944379516186937926100811194118870151838777395503287833909695221664347434993626120371058085206627799842113501581746214973885213812735423483093366010753823860846812696435375439701749742556040531454126953705376662340025598907843346641724538559056431471489780671005213936620562426283942063247903807321131867721649305288053156961386743480508358677415760854177887205117954107449651156320052937437175288120210786173073494729853409814495816506259664905204214108743764566353720855836208484521220865008596562413733944747695885440930224012722900044821716620259093630936024191574092207869943364148767257282140549097535228789611507874062068562232944410757046006673327616420506994657606687045520256601506209225645250370593108809454063048590233590387894248153840884158959913990656926414104608641940411065409921180386202293867193452614487431281017296297385049805976507534453888221644275832605255694157878668463059882402167645239019063139477402267682650136992941446494412327774068002274273671791918066477235145316556197615689845923786322065664333399859881688293700116824291993060566386827844490428807240339791843243201094295751605530471381227404895344727905991949828834889150015905397136439147700960767355889357331995307961261885734705958430868289244337475033855472191001883953339124942440796627516964121367173168198506661720494936140373289756760633252884592720111522262699597858228792630643802377513759505920164835711019269156922230608011719043187496871492677534123175869001538183414940897242090160810400942591327209599317899683785462141239004704375375562381724751788865581575480624356653219911629087079084193925631832598115059116872600831194529465018323547255152750449375449374941584699493355155012634289278717921926467186699946247950821399779413506117403435647922386083248372335524280050529351622992699897139943511096752959578201019889097526827374032703200166620167391696446836122378223435448493569195739322643695279517805369859314430615433086149080461922934001201804806605685658171753978946497310586294548188370525691704550808685618003496514390215487203343882891165827960001710095418744824104399352182287603925940462522698415951170843289491891095849359350660594034287905298154548638936268563905048750429744700770633924989260944675061730293297983597568207025899736172646512397162497799144120616628618495125922714151122451265379189341782817597633511942957412803240446395503869828903687055215644740404142279835460524335835939517837396390138492260735694777805283134404079029140981065291981380747194292387283557388622664767465366295335687552211057376825503928269853021946460650224628869032246836107949740865671226444251034746934953933188647696644137247259694773828833436915309354205041824452073813147575792349134566105706818438733610620018390226532013897083279883281925958453558495388581611919135629044619289806616359438076367065136761382008349634830415926391532408141446810486498249004311315497812521708909609290638389722919465474675911983401389445419832183297788475212474080016369692815202635862488834731522191840991776859945361049459125888708450375031078454068851230126482923604295670722069972202830375938132774874006870521301457385255238755099910928298931029774820488220256355107507751160425312639177721676697657471542593636087601990036613649917553748644119927537187449929002882178048652554679648512448694289438691132984244231582284887113710098847615692404726814856319227674533628746384760897333861153836776398589828716753497784429202819635552679229572293599201293054872782938092952059779340274076729904174131141050455277794873347964482378563039935634639986607574795638760415334144836033566538105722832956998014864924471486360495734541077345611961694042346116657787051728525802748191244641688410796821430124321558270584986533448625352324300559514108405375101243064560754087788858971870313004792080199579714586651910292966291996109286418565032135035108431368194360013559596306328665821348400314042467025865372546404780372398455981896961890907497711381298110814608084662942971884389468720982318306939985720226744509591528916251926986691027661843528805782878464763497732902131002478533252772934214439013572314820184444694769854018610864909177427846863769973380427226509169018105482395806015383984229238726191140394791967401355304511984594054056325260429723959571650805989052743638143747420223345179336972376751240579157827872845528303364257046674047823770687341391292715402946992694869428516074954819725386928806452960672829428881788599887357398034549748549340913082728334823729717743030047435830980001060633391829419715762477441485365933291531142053395578399520789452850779713796449077376387784272234668052387578293119524060929555745027921259627629014717748237018611221093875469618086410686667182367090935102226470256777186525006513517285976732341226862164280584158971330426760709452676723074394411486303539094392059960921148528401023128865606740669742058431100732021942513974112539225183680296327128284403304980960327281114600515438913104334294663419253622924050779296281281927740471869300172875522008179296086300132572706699914350469875097002763516953559024994764944198827438563729021766484301070816892846526763182245595674890821401540550514236927983777214648158254150006977403776789070355607771892495138724040252024337229935819655414989049145010483243561890158124757243467919970367730117018277155894271177794980190037555089752271545082750550464904384117504335931295227051760077970666490491454269346269577156631263241802538514680037148968340430393828050969887299134982533327981643916392756047067848036940295499199912304729073894412483396890402009520495235718627708365874386893568510791938136259592829512779974109396387956289894634411532404087764835646647191680101722759268314017214992644013985716037423290408904771613003550700075297018916585344597637200295351025837870027855570629125334657949087109306331218990777331573196366128622321509038689387426757051521430686250229827129314356306112887255139939678645706157944377523433011360015478813879054014661832785077450202976724037498702340041766713529370187975626937358301782355101865131172521034893860593735295888830694737477379242214958770655552944982775892941718396006752776514614396353050535003744908418448396270264732402900264468013620128914182976785171012159720136018552817516793212713323247484692220395238130136402511958005346228852478946764255843423192829607540164128392882476681419331420858444923948785519477943656213851297308865681951785610871791858320105156372149059694516432641864773534522692930316070270023042938200651608838871520454791820955900336875318427998450719092523486699286370439129614358579404808184563311492717815232891164968879166521238053665906938710557149067318881714826914660339966192191748307961676208021187298856545448466153569934154039016802702951652171583018771102550472847167435454941329205310239803359604995506278572665062466001463634850763043852497133076575717369486236339071750983122825636851282077808579770099641300673731360112059339976202313738583731080872632962772747640032906283531896786883843855925981045549872506187214064377166427909462699291577890008995230719105589768073598032808046408980996567089353851819993958514336583877451732462905639163566353341383594980519807940641678765474351366392994771814899349689770702463514193732086192587970808422951748259224221987279359291044560623895167407174132606265588476504374826866522974226612128259930249355678064007544298958260494369561821727639035499860825306616658164447777678107314584441280098616035953259980399691059849562328635409929509668942871628867780137085983179893694908142651228635849516306279176236386851305496667080845111830680964795544472392869693459608544541545200971038134601375133274277981211884035374435439483674575760480796399282077688373017681030114644826510575245846466695741684564911526561904710406460463822904630685475084601371036361941398379679930819362907301754497773480061945092552625577137221613046809666432103380117470708291959752674691294989664405491380241390663638591071349940104502434405452970033277697315893605112119483299559180559525040407855032433533664036335353849230149037252015717905979905909647349726294147580289826338592730077352478867552931381540104622257630702396667244858107289850443426348040299809994635714869529384696580006875742913802494758048756937513187218804271560386579947207402852387587509669557359784309762143786855076060657955771208424058728296608641262011048760357978282579968792759678509178095425235772109465084029763305884056913156123802527610886531502011645470999084127261467651017979650548097934671396440536371291953409219775809827792363753804287285998326851595110837575818914833897404220103484576244757575966159512902362745986813256046952265389603593350791935823042890736675164516444295798776248011797721984338529251155264070007401130879288115936443408189425320701719633382829100412011895746191322976840422362787230066946680175139627981529104591155247910158231209735989068085337611827710321916270227332764019771419800381892288914138691810077790964360119437381881768701457977613134644133424614044685967310098935716457136880676136584934896222171201331496389576650871826886125015896215567443919714434882081937782474435578208980225600487478272686601107836949090808368940764965019974713072320966786720136899257260985745433003542616887737264781068505661300522657080490394595947349390321566235174821131585994468263615267304263593185045733094277365273896003197548068421057534453792603619018129795358690068489694331524861270039561716768039014988784744616090473527990776894252710791626389586335163483054731635839932082547411772248862166836434228112032439021944955188541979445798155410625684707842701983917095970017039412428592425561404690120657459110697249889489227067420886132354607936380126574771274596909160304832066845387241931257534673759600345724623898792447857971183987055975198612849486892425150012386076492528203880173161254999446647785248209498737198453100823978717745639568750673187926671014319350801201999207573132357710975542420215918330965844326094888485931798686317846897601389574841062675356976566692499194119651147401181138034808712976237139572475470948847703095250920376320865691482695555792221814852199241436223578528285496285725069759435159994659931459405087876415033777908075771392014203983849000752829715472496414496754147835651100617584618313147122897612818454446542152341130946964661349469258379708497774552105197148324565294773497150042352486834694733197316858157138269119499175490305236776769920659346289393218562322252737912485070453158931048198093349619571059041744523047825134987679844371717378664785845167140295485707740419391286519512949710757477621509747484821849689513923390194607250429943264389959390578598773091771459381133411846290632916778106788431166378887602992390680216330302590899730507562971419918528877665165981264476529219675010150237186482976649884628976976319365130109995662325787923891493528177557689314114038700402272276465550684242203096844130320418312616679908841463645591748466981829682720517569753807740521781207908928735091696716596948657182498072336147174854371926271389199533918090009662794634927047490551581896532353117935142114407585619635802992393398213695630033964161692979635903240526772851885701039704791811372515771974492944349028450033603902748032971325774923204341072477530548634029940167699994301788457487672609256503687678680483070382896526943744204123533325506183481725183244003329290565344319557491167663726065368303033363463523876286280625443447556635517716788155082729948237823166591579999510636144699458681052383860526463730503868725848543793080416472547461743210721081371740480160627058302182669878177661607151790765513306282533508760757517238940202907952759234052907486145016278131083566630769210999629727030790677514083996724539072239950546446770922664542417861640023494841541857345459188845374927711759553185129421913429172925698531023850228959973481146570678774037085982906470637993508784261562267907628420239242065188128905332222505274016348020432395663439072699460418897817638227408462745702562096620360104789869427589571912582261455323531893225681525352483135831258425979604592172266648885766506964775644897311673442851367394035310665585899235012235657704067419159844994843100494252571222808712961558405804306805864725527023355986629919275435779995803574783136607865558525714548938217222950458140670773714151746342563391460624573553442502981039825450418012286598106569914305569819566061778497457680641149845093725961207963207904212105450055252928445367066721015009818805279297472623321630575982046794151360878181129795130506334914543724362872261900452628908663012497674152120079172691554529041475143761637607507561179895778024937340979649186699682963059791517094605006003801494395831183985249446667729998750599996483323408632121769296716738227367256772774996392673431951203047292706166312904627206460442860554697775351206774482473724277743540775638169961722036597082640926913067968936370511805586754090599471937447884293254300628511540554314547268672271972141022975694927619930817810213878905834634466017339623605119403751777750928174131981533275613340473535577221450363584839160617907684194624994580045398442043086119128243879212890156536401979345369935780755353254191969455842197317792090273452365836956113195349310191631320771759267700031953611701405104578895524384015039265175673410997962443042147184816791429423421747816259725981406792269264216561628378067853119617335349491555604542875693497133187958737630382530698965066678381900973829936696837500868017486212176092366195135032677078987834450066583762772156211599079189154464620009850803644321332351496290185062436833531734752333377358239490893040453152631704748422054652027419569679115703136943541098389881568735584234701648361930372167189272592383181931478907693428725048489931968996351553931880078507357390776448496833684854556810123855528300075632162591275372532164472332782347014779499618795546125010354765715257538359469329880950580631527472927581812961234200774615663137765805856201324918959430688637915991355483202434264890098255220687294791637988226715987249252581883340138935975388616120027233370632797520273252672401819835847740261902418590990612694920163621202965286422404495985734444531355120018139863707214380829304232944354643255210311080751047870163569400489893267701991864346836525087579254263186199108821544365971728169475449990741739352299118297192372385904559043277854638667692404026490731650641222126969095002947772746899644876809313563734344985351060465794665952514858555041834137537905962933506885646345961905649711705801124741807988589927850667438217867095670658081661398640358960104613140534281394772868520299005332092722734663112762035600467206728883919522964136213404764869410216452726804179959972912586274106061287794517298190845752358661774177443108992253078420070947711163763084767152230839286219086496043520319891384822353900559276413271187572784362053909532510311665832697446031676805144334594835407364957697996457190064567551293676609033397819531886863161126515277997190268628930656231163592161363593160521563945622505233442323046123141355588663237786505247164387966664890873472620734967240445906205838650887676103192885139914794463125965753133414092187422116540454087870099443441171952495906955790175763665485116303281044816683702846483280742101106738419025580400709350763356005626641566669037184278164803618420170597455882565155754544491824057578697935741202263826891264554179128625669011976966243496345730231334072231037277737942024771505811841412550869034392645725112611626209951620404182125464465795685994362360987517678483030588089135102054941340059980778138178607192529364330310238793951141536165586979097965638251327271393044622008919724111456875430313328894729423134027886038811377499348283376293353044927295306934008231188877629426455244240906906700866519525890131995613396111830050665138062183901363802567741842423108979475586128008907013751098701082809032754798652152259516662939007693833181000770739488956468173541553466462178962991316328900672837868077757547075254198385879835484178089678890957428858516816231096794087260065124743918186654621936655934358788492646124100815899124755477666127807737810195127315489766305622909305203840646584650524108026966439958294951448454367371414658158662342972401908799620955017666770862426162888285734463599585846583719540076678572833171814356299307622555712090017955876874384142828500932132630902354628599539218491787193220776183253574860471016838487187953141164490978977917805142559410242038952942783157372544498287807827051978469231713041982286423315119190857728302053366247077720752653383061495960325139867865605817931561632697838891049150611474132782824809537557054597784879744229342527101244213008185799842472738675104995216573651127310752481349771925464400185221062318717403344364749867359738331771436530947850904905562264000683262618991098755832984716256933682162343729072575859356325397482272950407616638554585383688428588979495470550069260841607165438573702151998313847891594951911260644225305360768488292432766555561335750870309717998165396817539292621033369063044253307881209987031028612211504552508139946452308953721568837387506649901463526805564102048538831205645958881793761971304489116013358462080303193391436179212718896907647048266913043236672237704528953359761953819142818418083586666640395868468797316415338477273539957016763790727105678782918767659930414606847892975760689692088262543450241281944751587644828141332019213896847472942345075467395362065927981786825910961362250036370348457079861341406683825699260096324685527931268474784088798838564103427429372111824419219023155617421465085077564847308631056883407012337533895021530170996084757534256652311716110813482835891914001994466501975057606562814334377954918723964504966632097024473215899430751927073480176593951334591843107678084538587025069768319148037426286504706784505208833408799997187737459214356016456044286165050359463661806649113598922904367922796518093570303372389605487059357204565266120596160869934333301664020803587918827928143723777099447158599846418791758423107127784157373767353879989531158852004502423115840579489586875394065198230951476952420038725188984437135404903215192239016127456203378122872154156106774858784490342057291697506530396210102546550307355625122763415432517623822339321860366666876781048084159991003298195764064036584550920608018310501131041163308615203723408128608312920745339096721142237144086762085879963750304271195219247311277138633559421094119078669816191687056047714324222174855917375523956499979136620643984660726642986788113087463287925152756432842536429458326198062381991103161230364479691105188369705991332391896571426948264838447440648131223126971465696581088613598865983777137874108486311687648687610455092527195942988294264296087683237304893866642935151768073815759981131827294902082325777168418147699766221547666134923164281728012616899876377198659731898391681845115971357358250524750530374382590958986365654703894432499697983355132223775282348315699429203849732598125506448768842758746383794203862927981924012131006406368170258952479077039329375850316137534091563996343949966681429168331652373066206301489864675946522418080922580085749019398727444144134525124974454480882700746315876979083393469793833928901261612431488758693595019560334131184299472471257862551570632074110391028730997216479589789784811645536198147012579053463649971795807467514564902031736489808327979866698904908915344614127027844271433434672697984662178918418885759181777849156044026692345048378535619146689021088148691876848375949684459907912037072722568303823214081370122979546021781314030521141919366741382708086563940023396309333210795792328027992857757094589591357450913909895655135604478372873980770137867087432648744607646815160553917361886915604793920252936897036821959720096547619339142849971225162313049028448204668016469842856274615873365356935946858942159573454071777169967435034700803850857804221466385408818234290443590355926701720005617408504521696238457627975462076037337273592628435102142214329575956473181833351812320278355360501990674461946808021483230907992088911908028917001552524504553909529898203828878165741880302558291994829124481688321484436489772463801157458312456049648188886456512256670509509804330809282119987378709765507671251127004500369625445767076023667719010005571996887347900685935686923734105165011152830766213471735480708183254247155654691235269811743125858940731662972305019987176503735370715770419901492605642980982080590288595390231149178431264876311584662651991901912558007190338407535904348430843844020294342503293703642897739242573606321300123034806697523416905636559620239868578725247118745109813181144510209028241419628892343322809472092182814646413329471273266223773189078387568727909668324224415735317661778252938555037981167436243910606159144541740219343983402765638652809275764200624157045663110944838267699820000228715845323287170170004449648669912701666449630163259243466459341653827061195071061548006227878822900835761068902210743423863015117514250837821025768282600571128593947366130706189727042073262346846311078001299680236771257450756927821379477861142833118605266766391878917052708563369138177662207153835926884870393168269951733760154072831476804859116063785650303956984343121083521613966907782556238310061684321162899548936414894746562486138505544249278857377783144411325297964097551321029999470308422571562870863282760922409915328939135537575749523880863005114796656306569832797626416128054733828264624705424645990484953438931618361054166554038930938676739136181885668485574839060382415763494239188318280337159119751550099973378139356944334540361781512144503407397027548328111003753952608797470587035859511084099348287434817163424543063781283988573967928969743444832512636709346826494229316910952516405778600361955334928519393588543789575299258941693241474499262143403248344976438502680982547014881508045288429581900640016439238581047139945242818105032090046794105668256610796986758320085537925633475046149944618611232024956084193881417326188356989132682653598363151328916763369927562505277365843652011791314255988437478134974666504135485531890367330870870802905952998574102705926207777283424757350457359717309525031724411032362690499614419580085034059296085935520623075043457021714312483722813912582296609711841744198915170973499775910402879806234539424526115891377644138717822091867289009260429512321502925826134505974663598403743054898239395889842019873573689872329537294927324986130670704708532809638003726611337061624398743055762881732455025443818384042696968307195007957944134691834541264757676104627239058877246296504942282275320257946876783934598458616238412481783647359991068684954440545714193341895466363243075443209311361711404367198281574494276701587472818824570098468806244931200259425526656735921916922956607516588050060190137832379620765824095935280261896336425654856033141801448383654465293047975325788918467461247747269443093956452176611877747300004266722297145955834513131395553216212264237909046240232156104650069254262595488123594287091405013157305842999497374903731827453029154444597048767925090978923944818279230456164346642498042710456867931779249784311987481268682305026572609972610599660167276043212492878274080710234996393601499917586314139444519393735192523626328378199939920324987733804777517805475494749861654547119550070695814787192409927414868259130616375302220522278038119184013264521873960532232681746427110751809769259661918890889654970810850599458040335530196271239374961840324384773337845906034829842901484888633217301763076644767348303339586809743647463987092646584022004019817813398780492533209193424057984725873919318892960408133115181140464215948626805320447595852835044446958650342699453153527804407958310352182544887746787456078723394649436900733302277708737512006263499618219649720713639034562006494649201987100748838253429351384278486418185729599880822548275915409930604888514286431742197854273665718537256709026760813526873300623326522968177901225830350678791078529202713308736593088571456518223891322073401612748985055437722493607535328779170952282813809384817457605607537970063425384528372063965789572787458009285141724076691369195108236586381040089683652140010445244593172400564965053116793328214744465069399102004605290000187859231982687308376517795028998458382497785573593261169138763311405394589803482663809272320256712574868172707066872874326783077006127675573189966408593755432876762392270379747495460057691211681611028819755168129124440288128048484205248743733719792121589000287150981802079434853832748043898156040665748092374446281193995746940565878833326937196036091022669438239355949336446627184036081327019373469361719606942923609095365813738199950030971819690647023155073033035957632470178846413208641606172145684675077902642703205062603007486549824216926632969509457059448498801979361208264087582590140488623141664914920399817072052879950604003730410537581339952149787550917059882600844283322637848578204764251934973791017075727539702265734375631531952455598870760198224558161018407817761885096015965299318153515943388341403595729139615663994841386551385093370877968159031803461735075683597232131322725266365628179335010264592293689461386167012339677592453841806355691685722253346173876240805918381144477311810829023552675741887983438999034569474416472027372093494274790569678304733432444254467229659402082264170964731811932368348211408317881957649969423677458539010662589289155714366259864185932435748408509228891780397713923048010682008954331352930690004493424953144536998705770186675303623775463779107320514950435730409399773158104085302203338657152085034830339463905866430429362735328800545431109116137503800785385772177759926026198903291725672699055715470766172506063095062472310073354355530775316967025832351957299138794008830638961463328450358584980172555635836128727392787520459453262255022001281255218526602683781915897380406400682478390051508970024079740271881214344410316523542618793907096817567871429225685281636451123214299260014611561274945061213410133537095381036234765651723934249463246572107950793488077020066033715774977349516316771800516914026952340560827923143775137498387818734766386428321718821001427907413508751292990640463335932432824430710395599492970106787198944964150620854738790430527308062540736839298980100790510780000060348487867434697471767773479431298536817332066680108931050007106344468108687055093763185449593944132725571862688693748881286925396549108332751651808862341362135862437444874535816923996103046305415780849800789554361222365798466350828649465938269018940114395086238673016159353310115360726066210641605482741017710841244376427319937997414383919356440801521501587351374716407297154379677236836629682770146427775422148901214230785151575495754613672920381806092754735310866239107914854674997889472153873911308510668826056700910406366444136945490153781497801902313900399224011679981239175564243898138238411142204761393832279829328161480691049613260395546804578040625078796702888669012130418925165424712965914173945683171039376849533708160418635066146973823341590805094305635189251922697705082712959082398234606691511731135782599060621555936592258412043193308384326430222976652298991216573268748796671306427218973671248158890149285410005678823150212120952988761289874415013867506548503771114985495401971426248567592405552457849708613292889913666704064840063391959774053694108206412511807105364602645007749970012126124858891879525460702224152719547999332365911935752901004419299286357857162573166372810872475756386542024573181780456858619062794941616250890139486835546633963225520209818717286791899154922854604845106510301470429204087632652337239029518367016219561321682908838806918364181064526021547058920944533972807716945206235091427841768155075112834855547255093828850118961402585595379860952573942818397996316696929726193940766977047947268058631467874783970767270547940570245050673850020232404846433631877829685934963185042811921524115467639424007259654420268591557933548560249478320022800545853955305393112604419677747949776616263700969358648277239901288092588658264489154285465146759576040209889295474132309294540677751943435822374320933450281537765600219414826403087196235822972855995318552777076205656983375221110476265897530693790214767072393653330165774736396574377118509119680959510325585443377806527898828602830543402396455776091001959991366442230945128649913779216634628572224092327988545124787532386000042056250054022048931101713928025398347525973972503470589297918901751411685760846027613846574415860248034591470156571127944099647813823647508073466380631968671474172233740305258607884315248152681894465044896183203761731255758403030884530674553138138603919676937234537801152361727586538894029376662101406635007452428680446154874942667921797113716344083590627426769741487891804580167551730174438144743721125402876028980581791326683803309847427081002766540342375291199861821542981454584709630038779955808091077877678873850931682241111323796411324388735350595567497111232504864134356219723874210494172200867930494458639587341181709477491659997646520863664152746154188102765564817356872823600247097448463193686161580502457046892929063117579437102465071403168480790170096710145641705595874028065846878465625337188408025943803841038990009957042977040155684255696236884534660102081269939630289789839392820572056831994275930998268483747116019649202787243850227561070283309700744471027050198242981907967836583068800596671167843535163686784995085854552235101671071373717472250403777230163432136217710993502483642891396128712855421145353684264228560291574089797803331632916276558205840662447965410089427042832822384975263005720462358868032995557107056246337584379796838390780547643929065357551230747928729089404205212767477840566426992848799952747570405184573097648970296858216411206646042631336059591885315197599961146497783502791537576357565382597503406266333729595802311559402776678202412810174811730404687262921532770780200808676181561248571468858033384104139458583517414123824011060351204792100275502608869633854814495696438098101323291373572794756127899913754595352459613605337890880130554180524049818796488067564183052349724833550152000678761537967855565639013410545507858067928812378438749278600247378183045054104905939056650455146469795252887286459491591311456055775979408023746693743634852529611301284915562905976941935035815790272063653199747245663897752133742690658144349508585747474562098921181292046452716026904133546377267917051526245946834136438572596997262071062379353103324082136747205061473452911641563285964560713511640733568356382779276341207128033998141409587790137346725423243775758333764594453466862587934834843523630932772981780978103294518362831887609367986069413768156051384417704702916415409659714744743717952681310868751640046895856462547662399001895693207371506780915410879200209602449985223371121023506463353895440733368973359460187261706441942599138369558941342899106033309732023349365246701281920323373502960867251458548655263317384621946482121892686884828154122933100797036389062670969649027061982358887089677221225124681485808444457133338303335510304243188398489792908024703377333999312030427964866068742231431404471438939658128346372322685663045166071599445184321610237516470892094900414463854389856318981049480563963635796148997311942023284031968166574204387551405399007283678812098501977801316556804510226268828021811163553068778807044538842911369930208623253645245712868978030668207229596942525373581694632228853725520643641044611942623423273989193729687847121137304804292728140151088052079727755527154060493513440461199466763108763492611695154746376345569891278510742849001811415089387193725416141474355918384112317491085182724477386593296561152901971779894196753302532770849577701538625906669296524688536004699548826036573436459431266355097188324719949270645376268978713447916823914655952382384949761112462546057735342970969350174666101758062259492287595338967490791485285410187016242863471448910972320269572902543796552961101823511254388305661996051051113331055966499692917258406957180767453653902933891736795410657619942164693539913004154493343769972839740202369559626994126083165933350353769671758081217929422825649338762534795247008907364482884609323716918660331059227564230883672271960406974068341358217665848357396942585292941513019210374406464922477204148068115071944872414827194291474455256113822357604344856699887091563540622208784982400514228621715866327695128922196849237007088455088081317639769444518096293228413757219086657757807279888321870015818101647537915949336529076476141322766284091286232173325191605947655295630540376135115526704805506692689633803954966539430424695611981097299093836087319037929257290795990134615849927560403804978741294424403249738773661410447482125394560452438394139582733645183798542030519746219446509604915847720502326329033126320769152891898781303188048671206997885637385301967021034630205588970021629863427780539278414004619468037528182997647018173316988443432410694613891564166432884093094023728591209075921593943863269543054520013291883622718693569061027679246178885195958186120366639764247007081646036567001660265231489052772991746789558824818787549505305573834432371320764787878905893561496451800571907954478667726903282694402489622855797198038087582811984844853614376614930132613492507790494984534044349126908827040903656534746541495380758801639378668061298403093902788655629627335832126389887263434503867223682989913025140471173789601966842267651377813948614126597070160576425528385225902458996177352226446782936545448632545251834197442895061906464438196588008525986389861643418582378264232084670376555698433906033200313377819943483597144893780307280506927050918787523007500516961738760651664548423734609023547966531697255243866183886718509750145520772364681060613217365827674899588165407042692917548315253715541370860180538739275763283392417727054640921686058831110749225168294731092151871107412237567227038256991423798224844584329438053120340738989244157426659584551349257143254086964553999733036105268882447201039004569572587521145324914876277833869019849473207883789840056798512302408635953448304766999540998957584442181712371731057568077799975342725461212256300508528064151741731481283155029144329381473271049374481848373731466918691558573190289702647227927518977363331103696876067866497519294249431780161971613646606106886730118279925651025162630444274228600463460646561170922463834756786165400089918005435015545484379977906420119521094007551904925088218955456841469151760478062767205977271715073476824250216839491088115379606696504637165297031219087137491040794542527922408472780204990853547711526603138420601629261230580610895031388074495485448795653195913319750069045922138292813853430966320792280150371190619143705457471073090586894887616794362643959238878288242421640307109646773223267893166016609537535391836593788121304032510008644210424041743854177966330670743063758416176524372985827504983854479661653228821884504866998759520134562500868373161493804036372555895983622496227702062651936598899383963366527437805781458093888156666676534581837758504520799392380022676460661472860566090900363974163183576941464574543242065816422370124184564763669019026238417468584040089374287056380274014269286530688058124734123277072575204883918871994280916136709709035757428584003186905128755230852906538271662235783864227068036322899727826496296644666848010476841816210993960163025759316302473626931468970925693072278603340746549226364435583140895089565776744888699467869621496974472157360304340738135740425654264335167603361588753372174988170095609938006596585794831091281748654273707850975426724433667784531071306977846277004937912849872490345235068525014579287619401643280631663495852283664761019568269299141307601427361915267360450322718101183624198256895015419989177862953094680469104825033138606150930082965344526164947196251463528043636980503267579788379359875774703005657777554544362985941195564756026580184410833795893903251374559505358992994507599164210511453709811460890116067197923526446383273737997897924698168308750575822659527057954346448664064431142611913587738359600006272654600771473277958737519616793216194756275143877809054553637295304786361739098330076391085814772182473822732442431166293289906822278830441970905166987573416910539222155813596735675506828189009798558350674061675315132545801545060454852614352923695847366466132608742975026118595366090004205528177446393204194568665802040072272684776888707345139545534558637188067282838550790717427997656884426873543415537730599177649757795489857703974742508670336407679686805331420695429704144993119866978941195149506927059500832409472725380536721140309595561953816171319974916643616322697535748717510124365061773107326150297726983664544118000012088998247543768745125224357375193062241044916137440472212508737405036840042783392618143079815955862543541187041357881794271628109284658221821175244206610947130694282301661919902007883704112596788236573497331353215402297057348798184246581130982956765913686024205410675729957949885845515198381437081269783829010168309953853318748441934903828710059207199777590357127448707189045077965116078999137627652402580871992322658097481050072191383411006016356253465664763905000533242643275218511429104152693707159625803150235907930946183832075301720867265008342969358031110359159763899918936390442416969629799530364319210941530994380855739821529685316948485867998788037993836695091405870747022220144752150576093476278844944642845409930501621413347838052938515844996917769370868165688491649842412427865673914783524390047262603064980972099030057819616870017923899799781937151765597925630498417470252140841410940495577046048292525150361236901585681944796242461119730819078945984746819805862789461727286405783731305064579717294947664570680875467362627199550065684883230875432079681302099068369649316176582787493712922710849632952664178309055294631240413716276211348508868712948942632119729108011601091985981080509960292833823386682078452239146858885164962406993365906842639134326661123708763099778755213635873544507679759295850723540112509562188560346669416573445281794123969792013277128219488827245766537272509343229539183072945234181783295117651391295592812504874190730478543656288335648322295741026894718428525424428582317457100038843508412495669910107890668749131941195639418199068431264058766854747851805049665090172209701032008084775877721044385116428555176607435655851778835661196932843330710874652426663401913527820980894539691412229982466293380011217357793478687551842111613031754156748129533289613207079341489640893798524743013923634658266011369176823603384184691111410204223183728934352431593650947036271075927275175909797136762854782096850798948777866264568260593081843306757484681395413046784863863543073187065497125555836287552327670518917058712261562777825666662531493723026585425933831025216122053595205382745115071262637925971099165621495996009102612634700335791911620466547346836314437044574988616119232773303992750224681644347727799018291752075539585636371599922758555376863078385942942537543070479172286709223567750322212096935543863767008552539965208067226464378737720847504236006329307599065085789930626200131109482790188601634592932147319427885430978166880491420191404905286352345632793780962982225030391525958997840423650222357526123703126291215564317962172187332565333091261869175133302526874795295135117227960265863815435070425021917619623889473760370792445596191320334867580233329419842703111292321712072860960167216273668442577977064548038260904176149584893697768302742660054773234400305963709962106465178949358736633434712300253399792460981305791809640229700376143370558634984249236683942518784519392303928192227852185848142031556451575358905859486431996280510853537625540371775396227013207889630583443694647395426714333205788421415383933443809788036022029524067692427895736003459714716517603021903679404831581651869528289425033151427987382189900483905204056435643306269384096839053513845866126854214368051087984822218547800289484422177324763468011449005689234584034215269594660613202335324609874003525781956745696257242691996757364122474188880808163474809791442198173015601028084361363966987088753689196152266072806422168450335222863848739076045570037721622439787232515941252300443085124631531495023143401680906282987960396016761516839605857837923796256538086840783881161332492716864428641845356155630379747725532458713445056482896902932947820479618933010206565492992459159881402089953910963858619195092870984902375499394419953130225868672894306253022371270525578425997639511314501855657886956136765754067883578649523044945954383624242208834304590773956314812447668502842157468891350148318948098856338913398780938867932241434032148191025380689643055952911665034192139058888461761376585137932790352995682469308514242715939936594904300112392551716465746391996896067991802329752006121383853337878385525470786127938656378802800842413693651798229590384813584780366773996311783404292098494808497004340902919660557247262346912306820707095668031655683075013454844952126796231555573604927295373017198706913551505883803525567707099612251194072198869057973910801540082074303560876270258988679664244671277593091430105549750272763845155897043597711666471758761706563372878974575216267097250115591647366482171085062701776619001181511973673627777204621164748047694834910697670195560727560347193050728951412139073759200218095709920172647563967155292213678565003339415055847342463916343963479187615792429049647930586195335832687237559067577668143487702803569836613332458306202861419058372975405443436510579467187591497826726463650511059401718055833677974328833840050432169630491756114293567116127040131456446780744070203165657808377280838112361533997658242465886367097355666432326177965096601192996206488574567360711091777603045641846799492163632371907019468698302732275402276782254911796976112451960326561345115958657014560775729756651817644421722882444518506111376988662612959134705090859264759061821902984888949408345301554212686866728456119687403356946264637908751474661030891121329293825204786381662554388858593229791603361098444667172626172974357976241284537431477695346395613489074203199041587392006567820324742957286423342702436664948748723498750046351793656497797865144005916961377798945420214192029879409840693352330614617582012159960766520417361660360365848084106169373858756645667910863986418649312502790956065121633531453896587799852802989134051984219129333176374901089329126073638953642785159207575961224420460250128407384625626431141004260943610528655487425402983546973878100128780309861261072047584364089535885245964703224301897242661145906991681771204280508022684675910481954487873353642727032999381090381107843817982578424749245542446766032604992178395457119141105629799233171209633710053197834065795345754087917900418026563873845866917294621449043135398370427475261154678294473998246604407049992632198346953094876064107790822337650422097887020204019687624198873833652338672021753763672038343575273065158776560458616821844137705381425944206718652471183634118424946169937812065538064934021281990896187329636603654002867860455863631600697537813014002123600125693990396444320099115624852509196943821073738921875382299047183887078483234233613826013685007270063554714591482392634140287184947852346451799462069239232482162754224284276728618775421231237644636708372692501323602446426517576707407529883523764659793796044444303728895964028975287271690050935256099965907372769140272161033261761955055181800463025839804671786462932917197619880072237258083488255815608052042093687104156717184467913844808411170810960745503354240180740661450192406563423048709353793952545725822942067169722994372754563170885519872824380021371552869044704696847718588192040676115554663059204184770929360920322979916327042749023410972055065518643567094765235300181483399115287661166650868649130691456894483223478162353269396839397635324090107415525549053953406857079944165502075491717640817172724610339433077280345251892656801454236406091047324158318570555524644096343472344992150825999404048459973092071735288611477176491285717259228495592854179593614851311676544716306859766937496884244818984463712506579885945666741762030587208433717806110343382373494348430259820283266494480734597776915181650810895396677938501380773932230819023364202100832951702389518624377500844837053687271610036023707958651366515425585364124192997949266831082298887482361630605846596881037257727301962235265658956955034729988608680999648667428027653663231706330824717344417978116518337903020349974240190032275894577636592839821385829930818624737160417249978171899648799409264344032979108998807223329135987744188068635808072766678694887339659761980102100669169228607125048118126099095389396544899927369826954388065071046009787689954237163884819420206053078857850307761006778091996854742007353162276494483260814000274756121464645329345018767443322857044627397561766124260187455112760893964612923625023080023157123634550047124665319686991430518993931300594081176073224176070811738432189101854061604462896490819408259596256403359711382384427525797803319387145663762818824569203951930389308038783276780748377521318813811433274917219330204443702278442513667552183263857450726839506287936499408274290315565401612261960095183894085269408010333507771601920980530481508951470203192967535160369848477555274000658599929776598611713823140039153785623403559360332133467876312553872443937847326822474500801633638312585396715951110179693010593592281644873287587489046491011288079077862068897785191445378738508990917314218316883065527231278191008246278589253590583561559604297082597498615458705940033563178682264669473141051115598410533211779270279435012097706485484170518000816191857442991699699282832239317455348411312620708010001768882184441266320687742062494681394621760987677007298371399566395672280271371068561493973257771523997477817038561724950715483185635485083597715567129463920883401858937836824928518190505669505406380805869629214899802380919233322401877852081065100131862981743123564988638883597665745876439972196945427592629124200274150407403248209302561456401599910167773894593295208169595653486502393662249655725235207934134046834222709849288611397586683236342967510185551380324834417697497554828096554411787680083351320872752560605512038544877130684712795785376627956559332483293394721115758536720050999032488697503858634460226895233006403360639204471414086918479494466017681932949614184114845405581649627674532996743845153555597615537895467874993644230524021141306399539208627633069502019472671786433587497403527535970139498798916839837628501855327987020870863045916182384351954593837386436433972455155808552270599427983489582888296593961831231632446740880986347889101256581205958951070147900038089830318313601915560964773645128747152275851864569974125756522070617377042852467955257644808644499045830701861554707335284945514197250175659275931166577172446359994966717657187260521052745107740628938464309109999067731823028730667644022496994734235857283457021131535658142211084710651986101078531945912848090496025070512955646024271481936061262435502451293228884872651596477734211831700046462091545781887558277696368727840584841138477592754984789637753103446975099521047867387764652688668985664545319844030468484878330992327706612229980169484186503428815569551732352404829944081604283442702714115321150971519335118183244970165302144731013251655874780162186406732303279745757324472903131463196543528851842384997684703332445107206230373360769821692622125598128660444078338261941761872537236350041782876323509570420411805799308804573897148835045824938924663222513677818109515665514448203574408613830707643893516307286699070206808680298257324165146395607002864734469497497445792360818598775864606610909020929347305935972984990778170715206153112850337120697710882051423459271321594747609641808251096600342270225716663082496230842316345557902798247208474386545009227775161528182944138646204157386114872061854149218416713650541591230319793974259729907651552768616087033955942207421084977910029407104770674749679095929720136701549367000030938446032132789196377875959605774415066018333033698919841709200345849572517909758733183559966769779056303813644925238915094410079450116349073409319121735464039216826670765759012923006232018450201606493666189502525129264163411341426406297128665450262315469231502794620975204621905200969046788725586643623281015581207347155239365983583128610256794224621736982765548821918732064795722015343196147321862189087274915522306881818518802352129800224955926588480094173494761157413526655032407658634568183184121396058650623772190538887037206529073910129731426361543937866810147368431830423860974412432735508498065950300955299933940906441326396546441688323622526592899748562979963263245632857948387537003445160502697521422574456782678124046145428747498661523257041452989435390182073311408285955304255815037616916564121918553155028462010506903572570090413295978034786482830037255055738732127944106884202563583678036861528081441592291074619769706567571667670648682355639921351860021944630517732665519858665217302046976730704253147271048201995304470479900340910267372497348415745662845714362262032247827037114688574166609497264743933100501549416802317982618606251576348176617225286992265281011902676567744396920929256068630180173497242971859705220285054054396768268253893320725651628334630743278915923607018451203078452866047807867237104506403523491399313597774188505688914196650631658137413828125823411858785642835601547372674076001901170043837937269132218351036938359997571942581142298742135757948410351664993755019720278777709022376160370234785788168593015719181334217999357727854404004388697239768233088216021317754368464182964610821511250055232135772302302051390354178939879956849616633758614248024925303942914606323459590009766200056318609649048615514123898599464459841032747406356077168067613757154082385111463639853511941506985562086128167635224063926421525725887925315163514311373706945243748194785815450251703659669051382907788766385940140536165157590887950188234895145579823351303340681761838616583832662406293306966083140232043054093463739990286998155465829426979203035705757071829264406309513162421672252135554031354946181485434197567513892509915088858463736393629561191573184620697417564818339965071535898478017522426556769611940802876675017941724229362987243408140465039001602084677910367283643778867848904596885589737214016384383139346514776801528352007210363984957282953389481420857584718129154667831579870404310667906262952808330587590297618291545572766841522722592717392881436585006599685578501320949753571915790160261123537623662572128448912575509646012496439310709546874291992082050398479284817394417693084207850812709743786762080429815848665968978419255925271321706203140167015155456899197423531927225793385063282207487084143128864183065808801564560392837492988543804780640053336729758336173341161607822459589308898766779485154534526044891160850254179211741075623032488514085481625496125147122661720989408498154253314504012399064283704763374307695214207577470757805623530310345232548223666658450569568544032182121641614916337934372145225256156440765706727260616184999431245428160775782540583424287560565565516586548400767077264630124376722763594420084224085121158071214925056108303902863187165271241341051245625604229576940121549855026542879408055782169041979397765626067145680138912904140890107237308065947554038635621470507654092406766628066899173511202091899542993192103960862723193191702409612706547912022388454883228478047023177569512224172966634263761040358826714756569070740359975505347451439902570487702716335991146888618386782877750526279057086765981699102270806513985236953498697936755151571489584257294381020057721944388495651267587024347933963188110721409503470317012440214153966423881409386696589428969983500495144312662852467973292276073541086053675976840036094084960482231289090744819759499633895408229128328824056294767904772070170096414090822525467461608061038321160458488955170222710772836233732595674843552993478672966098954833589270657060090179659615205296002660946757263693773187152632466084009521129212798543059374026585479790561040608745515654668086928471167848832972454717332331012623586772057642337189221520530225754112473438643568258201324007704387522937745045476464126516349328171895489698599557846859655503485368485759306835799216096105194172486901634630378648927288850424369225030914879619294791736942275173915249191411174111239027398659545963533287030662878708323600656079298519015074599866120964340738619783146780420399096820630496744284819198411926232104056576616615413452018214475767095576687994005767508498446069227537885476612552316945584289403636192485483575123562895409383440928228490625952398904250358692509726875843792384775614640185193136070701100789894633092751439252746593760792697771492347836118227777134379705878380264782330315234783373732373975408096831741928036319412813756443477613432775069228317540288214238004155822051912510622295978893164361821158562398292069750726175403881024381839162607065985990358114247355655319098263791530587470203510497440082275486874780143211408348205468621604535800912102041388997920386796115170276422849510301198474431710235797930081869734920259757855548494834034729672734665768014539022180410251813563602765459671472043018201858715814567248633196491237151786015809525152101854289082485035293665797042356852031978810429302658139816337712631308764718493255790621108872909712560067480856207149032993129217093847522575424921137933199151086042387696917873997424062490131070829106294897234968069885474562180543679295866476018542652053158294004783935628844793471263169199630871179073191846414581032335318548225266235630470731296910736168395096367619928006558174578850807198430685641693225204167619963360664696027459158634706004615308586288882011222808113299188634844621231850673026560153652919347524160298378676992009510809937434030797135034353316937151890180253828321562181028546291809963283404616444626561320876254805492261807645634874566732916150828239158157720194947566838080004300425274912833323136099709948904011126273613937855697239927381629754985069961554370829238431977511510332471840833837087693120773711367546273181091059404551813799222600312938614898786791930376960502452806505048411859672895741203270261558275387542952682557426896937600125220228194241127867872044753982802365641948788603198570754706346721044274012558819668735236486813281578429349125782130855139903542583973045777586262154773301344144781895651706488385764255788072622932086203701143914982710573122391685529518046958493345974693683696024110566739702967311538160840560099008796413100799847587528506380794983737327521355291048836048308260116100216825244034948370020496080120929909816409073843925076893792768276423033751982713383658488750191697458823658983793263312491251005827909101691903268575488523073782997139641661532539824055810847736884003785153958953897146117217869349000116571208917915823369499508500664729151482196675329479410065980523205810315288994925817712324050990524690648454106722258239858289105660899070366824339917239486611214682952146069757499078373499063595814268600942226771952263203139852341601069718210086766025663784551038868180653136948735292036901506690755827657355815976249948407276426428181213426982264328248491206240186990807588390194649713374386192972929469898845715841029757327298908676236081773346261319615078719659416300422380035722408770729187153822807665974754577859781385504112021969764252478681700823936202889049864499235243605874151566439468688014283399299823948178407438721509854515417517901072512019009788678689033180524688069183427129470793499361660186473956807212982149691011465942868420489607584589795383550498926142417715726911442946458399196978263762817336193382909204273236329618454008568503767826339060476691292296740170198332460823612934992008167580328251413288562546120371193697066274190573006407770684847061301832537600962355382583869446418737507046462719567775970639381639337800060332046657547928638392997462561219366195275646958068357021394663520731093465063148866934784652312723822653566017976596892749621473913966787737210345585699659461014521128187352396542461274488389116917550068029378264736034799602519365546834987367308960459188548501398199936475729404094974078949653779147866499372241117655382815831269562691792470598267256508995595804725552391750960139790659949557262083031458293829196534532022074166645018490963001338682654944144684048355007766235278378949800892063867822403291940175638893441255614012613796971659710775972726089104133218247279628320748121081933623503136379646631472497401128901865233830553463988227401472383911006598946099211670662668813113171637129190228079206867055603244903677102664973756876155986177262208837061327472058567191359865836230506526241042789473158874700514424643066069896360160969449018398207034665100059221647031840414530191185921659441561082712469615830720122192935195909322624696156180150069036581862109630842225445634033121069915509836547996398246447471717960097059565299220693581175407466933151142042324261214656638942490064591926136112657710778683207351965584243129842198128251736466113997852224230850164131077839010038411178434879916565547487654042609776573100453125236497304056410875149211226330502071823216473520574396950785358181206189668020196709162539115030781100671071842200741683125785915512165324022852798121529145994659002103204629155175612236052551675521858563504957490069112580329370050547663208262708115776085445972819021709353827251091876907994174718400927238789197312716743257568662521470391703270255968152419311328878834567099554843617304808497329867091634569452205276389925749362572432239203822007712717646013890370582675056938726869653503085298241290014335061104752889094401348779138156740553848694212988246693411524494241494523953365583440074855546106348887300132703718360182986968690974614635011819169119499135974541814623253816382338653803959137034959299022042021198073511548471484471695911748923954348715277080532817868591653314437765240707920051642413932561936830127038791829096523192758699447809245074248856854692487656112355130950408972019575895655688797605607810544620584806314732931300591539659553364112330613133933183875150848516224029882558526504850753579890578964009596467536915326865188802224053255641220501876205151434065340986147628478561696643618147840651849304730010721660197969712454392824725228326536312025304831390075160503905076038787450255439705566018056740872815606614329002337245428428996914363909013269970985435760907621626478749546363182808857922612294724065710775536311131689292929602092619438419714027626735749546468517277736610331283862340671062034821637543685688359787745022746286627821074351346677366189737213075735434967544370307568233092807058393464149958186736799886112534122582802929092930879791993765469569679734679762581356290623980596072769504474583166798924921756693796749205665172719912014003464972695751354676678418496269791847505270247740802155933385270443729712002215610831846937357571520264575338861476109517011262214863323390618731214663071154206984273789317793235846335233513121993435902378057444698855166717183358186478278842834762125089257197144928498309906649248563480058068497153898377397366616907155328800025439371200837695580286012040738605569454451900320919539057873033904713264600400570578240152225139726615003964122877909170334363946879066094679993896001779707278734899681606179694110668755281402401944137388566931516769885650124276897780579820221863461391637928052645327326478870953618735993204846899933870185418780229701090149222145079883289975238989696626323749685924626237985376013733671570563945546221011356923347357114335173273145603896237912526269567467216645515547707662971332061391120006927865838956935464923675719416669003253645170859694949130896499952882443388067409491423346615887776945146289979784743738379368833611354705992240152003170178741143437594485227194880767983063237685245204204332052712014041312277409288559499837836905226926703004091633408575012690877403676305697803621536560205746036624249154344597958237113259906805037205715641904641522644927151932256683954400108315498717360165923123928731531507636638078567615920221374711529726724527025072291105341113412016654785517142282974946368513525026008928732610353788310072786354178434214838043146313556464891630457913673091160913976062021164688984790038638526805710373307397754107024437613931616633038987121208391717177628201368643635395918496683020215537408594939539491093948698955568075188184079141522316555741141311089793375732214148706638675378929213942653744131548524375730285713432385704955539791041843760864768585461096824984803641129029439667953285411330520694418317730137980126132401406750178695111164974721615494356101723623154982147215744592588654732550027139354990278599694686089708493488771760220975683924721632437638377529285000801534963815435521821686350052771185751802717799604062939715828741254607032740791276447729317484546845480564795861306570991172711048355782386129641591000296782139137652202731573600013912779449581232810603336349157565954488874253580302943578005130718266936878180439404901574536172141668654616615532527425620100848233642798928188232063671191294542869441122143142216292905485356414531042426584347509997345047510715752428190204767845531075730767899220881440547686776421887481398456264277030386174331369697974033112194038072341182890478434324490840440812010047384346095656430565209948483037941486866526936480530802255179434658345206299889682415205006815948033588936970456555811229569833733525158741061525095804665476354355838715774105341306733511317568178733783534077121107641472077243508181131583296044036916880660577353799538604983895148004197199748952630640459917019427379659738007983728550257433151726938829061687177304824539051635990773921541020476684570423730650782935264822506789571165941337961639781900422184098866246566750831734877150391923727910151022604809062991131755855178891068198168937135433773930884882759613784454666143724625148392141640914278821905349586648415461791969861905535837344904436567516512957494134349517799805247790299047457130550042715877810380482497219321498748709600853492992473786033481560553441049714365706504347145619016537685330514102874237673414641679462393923908899121229181839489258902984942810965491031184277538331426107835403257826379216017983272660700972096322806172320989164729338375773119092855710044165131727742816917817684550613176906681894781515005673890332358227288865252646813308713417393689853228707692707271675017262442737669561877587260274422851221317552121333220044827894634032765095343016818122657364937672848834919808641253902811247183333446166586389432822013804614499174145466304283863972050456010049871570217695995816435311494402429205834438839812355405838765488151997654051499015114733145302854051251281207089767209351750834816520369987220942426207593369974066589956230766623627535210263202466939494629556152051544138865965154705509388646268205781951109102510139830926247549249421124211139293057633332793114462230089676914456054097800642453071039984239218323902433995707077254214367411218806693876568680156755163438039915702613532271169485269295758187686981699596988833072232973389338075798842217893348193910252381841565228775076696282769267704550568673771983857859703303971817047322559699585601595355004916036470001246466950040163517746852984605391561558233106644730437660736912570586470537030422045814795467991404187197411928863253723444128168446737909076085137834463936933361243110379222787535868472582399250991546013442465054405499857906903947476433045851472364702541286337219980313725792648383267105051669176742589971710430948289228326752534688077052288522824557433264522421080841287461779243118815504604597865885965721724960668324935189097890534424151573501564295345798047648978181084069180689038176363036619332512149675282594536175086010696155822991178141341491207477268647361880765996437514998747448918963181758902060627592198447782207828586211632165023883563276382289244476130085048230124784224565835307133567558280140859690365707358428795494509243737752607774841783703766439202990469943250299027634016649857922879298108534150160526747925236305081120105822413271178579932605612101812782019473129163480082607178055644130057133023131248432910471864675009195268564293462425129548435502770740342827003982957900031110329324660844537254810833855299224272146134207585172513622986453579261011975511959712087466716562254453364615104341481741067193201359292112583440113506187536931241097171563244976106627118694235187354552681802946842032637043960474180937580837366578477661580142989425297761474109488724455483432563291138049795327564228001716956545061946763012840357550186677503846629225222962810336498099482393798735117712843325410101788682536660240316149164211422924631374648000190672230642970531101081703003790068512294669060515461509814447738906186693496491951908592716294858762816891452358984260340396231900898137733605252680952818345572275398142837056023455443954518348525967823524073560842931098267519130267824459259137823734599540526501957870925918608523201729840851319667907646160261497632300905916586248361722215653067541394574709493786094164207555184519948029479942805314267729683711239200873187778742626909569913594019193557812567384690425625683171189773334523244754019949325116087886486907267129365918791115510418067716262746740027004736473014807386710010995503125739572655335651247136940217778429711986929310838427833335036201343182770970688172137364725841097426958245786561006880208307425966429897283056288180256197422704719915615672358495538294287363715004479828681531277458171316948343757197414485854115540123688368062788761349126483549280030263204083149480630615298373233800498550488177188498594468581872725382175403002255321377166802595344257986992524007045403618357881295278480277519101241119801715990408305202180516160352124610770204712901874751088343174731501819819109975409176315201477745466717679598874537431487670224308639296767326891233064140849862985449673404279137207409613220164757644567755332782420109817006269416284071856367213585330668513931787948064639461270793596055260066384685631423176385716593616961646904746382119498441432607303031396627916447183111664310886012495611774262999234570483666871992562637291081698423903485136714156039929064911439753836788822260752279014118287341377671072322109078119818599356694590825792606163906865480558846439380847520565284319307478766451015423906500012777160122481599669948225817640741514544695418930744457850819164947180229538765516075885721075521918189738517534863716321888943109137347920420287825379070196245388811136778529543561775571803787609468358322692166374751679747080756533766271454809050828744758934685688782900445531677082407133922289225214600018978956238170422091677003878441623070899130252258811977891649676009453344733147860078887863844207984405977671545165975684478667132058989738727160771694087502605796259332162870768436758696554684959452451588309972029537280392885278057624587407909341904981653133073557737911981290001810739762391316673039409089796787441922209979899826893112690164299714404082615586438402362126210252448510786681134608234601565727126814799572322539529831734866283440051761199503780686645618014930833458799058579456204157456243172051174007907035416807678185669443940102288625735082011572174858293601382737305182453386405759330539220948193380529992318828957085045667782883011495493934674472354822169224145883226693201653630526293010374304029142558352445821352612026850211624515589679160250585410528971432562433348056739513621757305356139650362559500163559282281561050156185010740948051149277435162470044684819119861112020648020307084679772201251247631769519380395354664160169474569331026364425278835867006436913549912958919320424354210864524810510861774429424904929162706118292179913515817788624053512151034293803812782110877495911613650299463794130465488423969075940908934491560816700806037431498001896892264065322100260081428869990468856671605708059048705756787063878443314892479756513895494036567950027084085419056076346583222767879136614792729732414110093974057406032694679006438423397819689666405845492454137185298505098713863711307935384080044274810156179366505895592237482513146784355958282061815443687780462827239072324050303944989515753404992406999290602979291769319221506790476613048004419041667140846254495288673337695216364751867452665368930756384723122072135612844924688057848197200953033625726563493334598232666920584163109135032179216645630358357600370684538568643317966112819267174908741696730869264687794986140106529337519947276451428264333497343251145574810862588769997930793986637929955583684638788615317536305709526331066097552883442299967041728554764628060092395002187906093106900644977647874545243883742916232408615326825987353330759264745080597071285831908852270687300165322121982753466322577011112346006016289788734985110234885609408431546854763766376608527499052272750053827121874560661801855940692287648509865316532192556339316352387244734510268349781646226134969824079850870638691063146533923215653488409225108614232689258940133903166777638679613121832042116360946189426601107784518858714782844843282671248695021934880907074978614539754751786732918471573742275834406229370174662266902358411278341236828030854808249406480517448645692462448643766235379792333531946132134144914947801461409965497815360321011579882840666071497917319317799193097519467319299402735200647166636580056497533861373260525530909922069555620115931688228365218573026714694319416531186004269950230115001617365040850989487288657961479384250012229743855915183089971182398801409405762205318453448027945700909601501804728631007754394713072618162455601417398377093847612714760496561953286885556406241517732082225499613885353163872655125618944285990520032019977137738731207234233854918091279936129403030005852861057829680407589705985878295276290404628831483037810504445111676697315358177515697550413378519486128483907228601683245996184181123494365021954730370817572370778470260000058522365102414844942707288201329057030279499648158649379152800109996520095084569791062659018333045152542713041334127086180569298370437944688276563554016568361060566883872506276548255739146441881785914533954605719006391813467970381887618281153417046968417201533788426836458758910776917326098977657545865021338695757135047579396374310024178114834381526728751291907844455307635142997931708149641146584982622249745287481111253273252758615677695834802438206055170026703339087028025997512963690601912450707536294531609461431918109995044697218466254933332473952642032943611003313485699223967420131136039220915188347419071676234637910202224838905234954028329328549353847474471164340758015760657773214165197101418150263103695580089966828294888806495987633258579854236683876333555744540505774235090814523896437519642736670590681085111815435046319737212353603094115001085925442723479917084075293936686790510333512609749827500204586884963356558181612728123615609684053128007792636782690088306012565793102547811008573282992273237561068863604738082332149355215075344357232036280306733479623149812946929948037222897812658112398162148382997273926802533314969932495164300044065430133226030347687278822697602326293308519972137593415837064948810207432799441697679745683527838668227680759348120664269580171569071915936494637927112678061244442171208373744295199473821031289103959361162253174978615275327010577670460059320354913712754741773078477871733778146589427065583742707739442829174597332256274122685599031023887608906078102527097640673361491596311756868839133672299371633277651591776677361904385334916207537607335310255912834269695972584876844332772552185446367260393725859834418867534142937309991861180363604965969412751112287330306942739317651345488179171619168356271097382803432559813567748238993053338013698297354905559101981358349636923497490164878512265416064075601934323684053828365711934570972479908194630883665880498408385049420384155060620974707968773862751598364140356947541205528290603585079335409490320544835881808166950494074250904657480613918523429801560151290562478507856772881452578959154313517020266099049828525449351152490580079067062612913555406277771054316585690987598770770948999980421909526981532560705499890064070411277029317190222584104222933954752897836096888488890129152809161954319909595117943615430224826080575271636421357767079380725936759268645622758828882891077928103328602840925360845966564363720958810344803523078184494722195252809763671682707019557988147046724936456303248558027483321960314983016295305860769900129633980259109830280523521921335586701957641697420697846798207102119519918881917036503725704548354771005885690321962734488402465901506119140926504968375529363600791318329557659255329596726830515955432819061022237351325662797684259926533709891661638419044021663454033790808699033358518413859554834023104438394619294573574991510044374403569905830769120179242342228814145332136124312141767712474577305448049827678806118741785920691729793656475148127942786964571504309959423599271694481632458971235552120334983408375340279850531805923085613786812114576218378299816004023103446228548842096892510716719758799794846052202789248765921700134531357078994002316589352195278749888511831035460208669232746222774491860926388288271866567376378999997825775595066385566428770563232467299900176948868584335167519938366380973439974287052561438356740729641349802532224390852344683151658038788120067768959369580492866369740193851409258269883028703780347360843342368520804622159343744556316373416094341733519659091619778782436555665743434463326759749505365501998293523631780161327162996645525083125348855374060455920909077922773682345482083760399721265252163146363255660078111506705896793600916677914271915534028390393084583239519169581840531150059341264215810541284114880474593142458348095344697914165197800584894989403484658777406322619765054682926270915274244001133009053783914334372932783330321919730799804030979310868408096660590464763664972605161840561886232903574185279545659196204162354926555075690170281829454854089421071898176721785658270638184456693602505960166270483598198005247996223596228657837863431615268817952604473382180925911636094041007029341142732664616588812499130549580646637323651418966886734469406462308700265425046804235012781685914619517174911012606133337354596756645412481414407862919036123733519805110443774875315206980160801054483174136529968313394413011978255855038742017025823021645876333950775841069864070460522767500225041597497583182858642628841060414407327109235134309554039186216772989264570827665578002247058909334029371633604234310564699268749906844403545484325926791049147469472347755490653302341866842974383915146243176839773867220942624990103933897055565192508100509968830270048113537922031828026175571876593459511910981517330223955690373921624042545767862860001780252871674576697554082725574591193125529857018726972922840920670258591221699512848826458281873426593256923362466180340422133909935574550448136190467831903213390636827074335806676311762779872559925202079544632671473548105647758326151780612019057874685812498264393064108101643287290377648975527394631363064119286249435581661986287892258908585037342464650913149760478227807975298222546054565482430934194819596555351849219723709529130419406805475721119051298456334941575815624363568116543475088410789335829640348406714071339763128397780593965580659946582768647291732256607601428203317040219050979844342366930683784057509218025400952976901552022562713685121237380917320267055499569824651944086363646938972111451333916170365007857864691219054532658831794014040825139125000132136446817930729356166896747197958361317019911223050717653300003203052780346899265835764139858090308844998233917110647951316589799505660894085955246651448117576481355391414571651468934207222795833551858355563108636844918280400099150607224914546986944825301393836064651192450197590904444664180989478961437147020625019487085093521858381248862396365929981771166776368205366286558728410577445695251673462680488722914333548428801049769228333683478528302994337451065486374045934583503783616177771047323523690180644720994454635009675770989368472148194160606974264931916086557098999203121102577406887576915157412486118555898699412919813292880081323827178273183227022687055843946904147830447695927269540580137783114319137243119727565086388236194802358004511423105397585661154758533260081392823205632744041068534237456183896579482228281745799477099797020058183683750395171265827966334056132678882687221130689476977347650272170338944290880089520644066991767195826371544146076150296741094240914220982362210785725221274725787832591796034729511955243705442986447220943273618079204100813522687518747526759494638091621215905263191577730291012507277608575143731172884707292129200232481677090313812498888375322930950781544351327473261452702440128090075055265597629425558096116514511855692495947401882680201483209276455673724662308254188215232457509095514234831192771974330754650892971296440637860273493732502438687521339795630018955253687506279933774659613769707159637401994203050952314407658696546196058659300366616983146903394478014773356898885997197062173399406449477510375128837075913462928791800804801292498730474882055903619894503691747417292723915284200542390552394238200677645307047389324830113210899738395588122920712652778548128798944429041816161247159343499072953728087261817739344723945232665662379538370511393759818806633294098657029846141264457994924074633185428996896150064124847019344456787937302321689284490297160381302572443892142663350154613462826129727778251822053206912382878338256804742095367008541538894413611569460333890698870851501498241835719128006721479985384184880825837081066212433778372575746944516579279223817547066287226271929661565072310312184004224065838442266133654594107698755600704403913326395812042667601595694718972808854044455691663889073927648424304396155814985974594088591047688506536162413870560026373614690804933542329141446437977254819798113858668019695020174526856283612491800655605352043673535900432198335818315840267859487906267797851921266080437381131169183386985346980710761493167438249613018654950212435940153986745824253062399834696527985723728971530056227929149841498330558597586757144896664112955761186982916525882497466133883536553341057356648521593550391107708414235116173032468355997917700050344820441039547594753787442347025662391580269699348061347044319763275654024894607165368310116768399700522268729967631527615758672489488728842605782195907484157404089542745428624675124166345362146080349471228542526297488369333412818781475982590270274782948318193637275197161824688414677823463385272068195124554971913126159852401343439310681897477753950767898626327441412373247933034307415104683848398830489723974469106160155960312140794916624952095249159665929786139778019020914096106201357273840668383461921362895966068289998098430488723652705713610596872170904558394054539533655256111439705952725414739856725087436569912028150015006403300428108797646655048981323500861026348875808511396488590660498493090838256613048399873381772820651908167823104920898032110413430303224596861981407261286450828335207689225872595821947824685375600236733325625342963574331550282689228493102702376363752928097138028996343062624491242463159429859395027180576202141426535039056171053920445254532810338815356193848356968384279518710732762296626117972487579383188104343305329115413204667184201149406247191771013800607136557157747196271176355587807757221574510582696296977434468655850206992294516020911968466773458643306601718356792202076716395930832859708998809680501006512963519702012753435169294482372030907193459215397168841269373091662897140125390440612756621320113011019336079217900235244618788499048531916941682174877925753452671785021235521595392406404153309411352777668727585073275814232912487797299225359520468956419634171162283961826771583450836944421755539329893592152119593781880090565975530718514016611094248154253549523618498180527154126706785797436226291650094082525628072348339052496875714718995881981159833932014633115450963229627550818592775626055164688308496182936961585361715865343111191584166969231055603539016739788100898566842750500962049355736274836495694407782623920686676190835702307720727912837701377793062126097095698797294445796288143208261323616913420078724624964702243327042724651755652026769433943157840549582313856636130041503577422161618566562370119763326523632309037629938031521307124549465631659572854583852670016901462402400585872913828012058825031804160599229000529456757634209184717266413546445735651530358696235508797086972443863059555740899612834436280097962013151354880934216130954377851973375327980688940678573304324772938331895343524677684635277645411767869134109711259221222551484711822324620723155746347467938314363352145485663423611700669715374359900730244293096600017599967922967824394295301962821517913178048275355658649029516988730097676017032493054675191572424898247087601824934032765120481344968789906384110187373446014084988181213608504698157822968501114790099641299402173732219282225280334698879526115320758638908736227767565991661481554021936720353215758522519262678415578468243498949612375583700173479340001901627243887057091797675751515784351161152594867814819304785058181136188611045905694932889111423499211101492972925253128040891274371034896019827248731231038277058549419040185986251772265655780841019077017767310479678131115045482482545111738767972808837742327034851533714525542720357662854971970086130668159584471659205355511198685290524161274544200093701009225279814424153832024767437307934074240662837612753374339486661408110164017944674009152248461116866177637014680406629439359563538479063290039188611638738574002211980231734487071522072089718933757520791742147852334300355160973780033860732073760575730960557777133301947860344776066589230145092125699404567518893870992461350977712000840179923948627956127031018470305346133453772825443339018309176607778731243761333530405425619829772510127301427722186898073057572329179624060008525294588373039807067115592547683140816422108329095074566736756871933371662987940161120621769942550664694150723049693478899920884192156125990145233174995114675240611063134247449472634487712910042253227032977831886111701104472345985982965674226765752320372835856009517208602348138717809235134520143222120230982953400770568280459801424255979502173164981381197821074912251306339022330053358413940690860025532131568287774040580322386017099371724429541875191273394734305070434584158780206628415007041057726988577731073126429041088169678796632996868069530874182204968660052825521597005794903888571342753947623500990518180839070015392136354444157725159591295940583302142623688663794384489829481721091199809897389093254069725758484541337158944733777314041070933586473618429574453111610094893708232082700363296346280183230976685217711044372437722129359138662479212499374398314592427669165461398306480898323933774855536038065073141911003157677514981405523598107669089344809512467824930132776325081269897925145090662314274025245436836036765722524175551682493753190837422838073486704780017343732275104514841534100340644772898972865184829337253122890302670462618220042902644392058643417110171706481547837476585164034335130242961010456269428358347392682276540917519935861752686141295338904485093387739047187777951227580567981963036219563145524953688696393751254148410814734911408454918095506122949842697119374737914686436986477648296128482104145009469364256187296132100928425108724058382974849668777178792861067341600708643817779770596908653681123395487400510408316185236349524267840940398200429526058388918267130758156057241616706840002662286765548024218681559337196144773452066833930093800177261878383561628760893358743378944713479210281661886576298908373313556241744779132841165066699986358710653236837195227426352625976132164592262368356005813075285632539510006018004277982821576839665105961220201257157004511138280133095519872884868707204782141670771540268755306693089583078611501406334886988228080366588356639235809031226684437421466574961681756250691873502512335653076877660965179097902082147611298075565790775423788173778879897652857961058253737651539018162200121955708549412827582698026345187335795170580520928019626436553559869522238744138530047716300283801162315541460597556781872194889452322141423165318020884535274582479676965632091187063391365848588551477660018017611336788974231670758811487747642042107978983325312058087605542799049749760630218192761812306918847665572299873226646719488445614445018241065747691105045123493119339829123555853079911749366242086511339820342693120309932939783783666093506843124452206128563309813367635299697282123839537779013910092029505355292439854069008202641246602609589427098068046293364600385073095799273775824912678755774215974627618618542730531149143954644414173972263383844565343374305788173769851435490819716175348674701130314718340983857717350984387170168374908317030745014964735802574656536128623410501208518958717200666582962743342069931206127864547374005883030208656878689783730996144247752739195598859114255632840160374640722995204885658516618694159094591436315875316547410166842415294158863166469447511085290986150732936891124580144238600731924389142927080518223717048532720653977771821670484827340533557832288603129118006498232356789910239389214398942988620334080929952611398802909510293626598858901392595832168826785518189234051469663575527934638906360767167828956873542544400206355108815533409639235778745539250452997856630319254533598728479906273972519126361147143293210928663586941075631241880691705353120736724172619549965039383749462950049215193343694931064039195226690490793884849610235053138477646803521134959341704760128614224410513541105702476440056930132049092009896895792579884154480293016950752402092289857244610909144347448618202032358215817071320021748567507802931731773715361214587713911955420465544432095408762840420105586588200583192653040670313400512189134055521649878211969426107434233037618932311801379915280931575471409032619756401109960255859588552356420363619206572490505167476261327647328759419691276397979225958606710070794860462022986462397425869741766703060519992538008927104446898141451972094356016838016958769080769616428265188509262010605379946642997026525624309605849386517474722032901361537490698371232984620632404361637188479296189741088613814488112893325492620887553563800207270752476168509665084303933055725889794776568130628152700447796571925483073332539536016443584746901880664576879764805486877452086890507303537513916630869666671740490997553543518201703585456583405224156870441835823354970683326520792838653252130355299435482085587101188859785357621275842689190066401248805074569608131986150862037466137078797805432493696263637547185472417533686278486894955733868545602287735167252438253141057206949781767289382597351448125039767415171440529073523904937389706068158431479447903285140563379221266265371218003620462900540701738071546930269019206833877547814357791358829398562111246980919096601368057869545372468760729978929790584117460053353800015475701494085115741266478720247239434199406307172417472435735159654392547975644016061303150183439493128910205149400753048615424251376929298361463511841704056847299536270792259831634016050627241714084371820660030356677850797661646626865064394767988436856091537916141882904501125955011668917175688700940306216805153903728370622756681593729665991101127271555898628673791838018291767120095780755050612524650152648970994092107177257028500723823702976332281275917796923506068364900182763803012208885413255430303487185138041130435776717763454811686019164710742525999682464257501117549388614584228192817659665584066857566455597985697042624650934950199028373862461282642620028723462699196594350014206988227382385361307858582891042719970977148684118614230219040437330451261540552440234900274304310619514353138252839049789821819820487426498361529009727255959587905579446097407440491385447084529084152096368692408592465305483858167566397697479096586596871684144354560623572729793554920061732909501882473939688124147502027779939968461665877515386593024163615412716741493565609063533203864059103729882372066160355315743805335855247804343880090900283869350980224330373173006131178743713285364738995348423150862322001694834789204682964282665744260389392549642432905599307466094940926981170997016061024444080314359164511150364607550608196960916008724810666757573643461584212329607947753698970176152327117485884209567100111313689248984757929893159916156988162644946348873109537097230595527468986649761893449017426188550609908999186480565771153915029583719401330011533891383868108515180654611670723932697911695755614595287437316141278932524178134546511611871611187117973373796130318348054753525739820073336472729372343919284421768421130822510723045592484476414368483276790837400826240562306968034443519115625712641179837265038817548200588584544431803281262604056841102386265941454456626627065942030861198165994269360530576601726950789739925410166113991891038699175271237881040134718211377029316343534225827676632681312398597830273533384099408876440644966722415263167312317683582447728356774015740383892836114780315329407625532394050587188274926509107103367423410639195952765158385088169577768525942974668403780929484830281920297637673950684115586278258547081591617433388965125783357781007632281041699918058149344741461497626484703853095485028658943753697582798208781303667426205323972511721429430519883406641351242026771997514667010604133543221648928023628112786723043165370247962689283257952573166926146822949279351214171515002569390066804962923361523378083433714302259797679368694936894914162315102433498794228056764379495730924112089372327150641272488788923188591799496003559191563611441965864429180977910649955784366475582255994597262132530330909218948354756042582215854435171574986480032369203482689552563670074991311433295393307401216990029049711278682696288568954502172688147087289387815527402319798236828409779288809193728102175973333235605336056873708755507726639759749761250122320812075918875338826711521942926252002291498647796105195991808013888976840368231834282540429927413495670478593419609604927906377267196328155480164904919206342413796921352577662395641000731965406178042182561774362792021046789900327054309085551918862856966380860689401956807262263025282077059449229391652412550889416560158778865862388229947739099655128202465041330809247407497201157421007861115591313442387322706471382513571997479176976935603920559890400874415344016606818061216098210932818179863635334710055400716266238478247642452211625803807867397532823501511833376213508033488191333248248525646967101657764779904149633135304409098173735006544011479738805472040969623927701973028261488763971120863205816513605177292339081888618014003234172232839663470733411258260697847030915207167636771998520506901965092097220653205869691213020789433779624989463990690212537552883848767026174215348983882174125708717708820655232952702045616779440934381943241605724205833604993353959528907047480840201088243477969734340542065185309611529480948423297610945914202412875925946489727475357647527202036115233261633581420761613417494525051109669876079625871259234946482285644706116856679556102037239715322563095721717283760627315168012356148801577898429241919122738250561946984637639812357570722488556957901733453734799119736442372524866130065828865928810521587664154130006901762773909740433338163348098306411423674998192219860087093440016381414446700151118647755940767051839218689636958816325713950334680687587609228597445742281926842343994555714515031792059325957608435340172669106087318199541885990760436222730902005320299873241680914200907662239061559223923196266291684311102081282053209948819370362166560770990021052411421079926169008429628711858481044455768536213215995024650048026496451290898640759932663781663811550304211195783746862081283769243656169017472280836452452895903054809755203907791326851647585357173779800134373187796276417114756436687597642006686590381414085460507678591306097276705001743277669063734436902294211142762321842891252314667714902090679903437217586214774378393154782205642780299716445477596983502006361899862623570326485111504330707144901976321829024313261175803248813813268762789966254482225561923825884762903780260699186278600745873217768364417329767714570014438739044069397171716313925826411085009748623255024771682012297416265547877805195026703400920031702653774291783760272550802378686028969014290564772132415833435680723147221669146497371821566558351023645659941882633015401699956384696547831246767848034611278610223497910773416384775804958215506920676929404088804513252112789134670311525727246835013046438793841223189926635521047340858862226519503771567708676869012006240656433989557765668436476597562892223664051145710036826217766052152666240659111689433148978701861492009232237679671073907246689665806002043981453426515518780880813887895740582860279569311330186543541702456937963659189433537696448889287881395874158360319452712593492767204550151142757989098657620471113714141151516954061391873151031877168040162196344874764642030945838897196750310334240419752147620663525160752375319774473519303900665844377283682402309467758855962222788056198943390646699876041472001866819043917736477763575092006098446546859272869965048366426830529394693767628022662209021013944840526875526792383201023935127280277026567929023134700029017312015938613094554489469845729760941554340806172781433859132446958152603198281693633299869443385516118016167827360365495763714857237974058464470288052447204391564691720525184365051824108614308215890021113759736516119293058655456333512798579379524710704280298848992206879034373495634351116902449631666947058530430049171876373761938406222429204277265730533948115294334679422758915181267411367429948973875403354635437948057419649363177352851965894953481564195051830239534513307342792619394595217735957491475468731580728124722061216318569210090007491320620919178483102070959618325599836495453217958469857530976728318548039084671255673566190391689301100671399566291150113031978194339235602017143396033672053452376791896034237938105766252973836398485057719049096118252251108458802570763960138243520473108631651226114635531025999757562196072967947068360659185573258178438534360082942407461725224421362996944320953454964995115157326699341280373726389419762748007515586795084523181637779831093514545137094441436985369923501554589527010959815165301434831252229218732705467524405876524882820487018701183952269438544316945006313448342167267884739374159047171870426557851183183643537063231641690011586818065566406309476249497890861353127105597902296765730759365134157282372414316008684938207245795865544986181411007894118349788026948425586510870905741166573750640959069249371984363503891683470186944856486329903082746848270221588394316703901521112763050491720669134536630861416505219643170411429575794916363325158397087644115594333148200051789112392773111609271961559059776551381633479918472427970665450966988418486066293100933108593354849362709717335210071952390334187136547063460469780596440010583558303458384473592744315062327954905140112693212070783655675477445991276048934480000705224744028246936027934176439781312303999666544821431802820806110320240659161955145855636823484194133812283612418247626879961761125106617434606830936974259416979118024172567700114436768488123194491962971892235182058726057033347346914069019915262053609907326052801380445238621404313107410800986542682563526641766692817870842040391836362458390869727305136699786043620589393532514180821313157416112504570017892750527148150600839878239135995650673031562637057642126572243257489907784059458434344005471891992699319109397910688499937070978157675083447852167380136067088576980564825409233542597563843557067100383925225159585565812359169051417540529362062834823187073394264533334130015924404864518628082221101237028922935907086934029938570110523238962953856080548907456152619589067134382739938996299997335538136764526610060170002171541842961016518754901182568164939679152768776093222791533847686417385354766446737941215240115387535894681925291893097032615424626284880980609242450331963370369962507425485012151372944344397679671663627363160547674383499316711678390868270536819284048933993920543910004952527874454076377437312541843123379004690325750982793980050366620438094101954316968810399174653225541765222037948615664732095781241170878749397178635921643913112069383522342531635778922684869927736038345865629688875853482050677918949062109750029911820231144700121263068141753832973865075465383434242351955572584510337342147223706515271551192157301065042556826630878040520819028047440971092168704969224753033592732156079860534314332913037967063067302425685092671907409987049193385226582562854059173803214561801603416995530778104532023893369094316850481083551576555406881066981908853221921834880398887035063305127500863126421219218126738579274078387228298030324587740355737418598316577145779200798947083193437551355010756420989788266905890284540882843027949947724218028347233760679363617062315144737904540275561793052854757305114720683868098556224689511352030640157915279757255037706103174569868425671154002562224430854692860483815801790838700171623057156211913831667473716046659497954944256038497265485216532176530472503985226880733005681368011080466888894210583835843772704826564973603493438330685853903809453710716234742241721877353738394684509945589249217847358897299905818768632782375209433892153508887615693487094739771852935019281418086025794278420978629581423058087850336860196727734320979051560777201435830277036428672918058242559962941311377733897374864787448830683495785180021704692509263333467115242303072256919502194514790981363790051769767156141657643616377012100066644052754923938440620123684175473650593837603311210508799104549241034882383504289671967294148435541207291371664600140216057755393239810477898718704512519386042033291879129436100332107032740909518083546383073815311961470843445173122208116979210110216068712109047240694847864286239760316743013615673096315179148332484361990397131855786835396690879640031822320132480056348505646415948209727100621207665977144212342686079924817886378783057107592261526624209238485875410799298896852474994374615854733562813704361418235834664204756656238738113863371622647080785218710995180883985872405215478406661076820550519702678781956869220235640493406309967108457031163637184656996636560207037998268306294873725170863660506722514541359186038851940727801843662867466960407566472027047346000219459748812429048122288262664284415292446442196192106564296997927466419969355430300693436791937378159930003082901813126322114706202974509418156578741978160010383160991869857165029544034556846174748451428765836977303862265114743549325706115995103130135476240470937901595298402024811177016580878333953559461894146894749612461687915992340447214753985603285652983709995929717397447387900634466282393756194436110852957364568137647128408151195612083865136909405956655683677281887294492870881616590686777057124995887054294752957297659511484607258620985749622091306496014305221365091944253935103852774069019439809243447803054167252603735298216522170752898989820798360405490916076987131951442130492127069179961533724385030575159054908658685115872755358811629218765094298940338480155301022403826077983123018666561121385378285069523364086300801836423809766011613264956583380321450176687871717654175716861858581939002660344100404459165565930794978283223818123544403459899782246433703150690130758504408971463988983598493044230944460093922908269215394945001821918949538220967814960635349569531109155412755525389490556289690329401971697006449821238991174903762949124456327998994087872289166024659423950077681033182966602432182258562237593545370844197000149153303747458489855185455031889204738483809632337728643797569979869475501991963025230891741742323027963646466503974213104406559142578082711190298512873717825481253717288341373325978607975983001930273901275686474021497074223776623312408795725389764429058739468802019626354245923433559067253284748328519748177991888733934225232059208600122994323310420911117944753469221006678537549084473384754041729738161720189909848476517797933150994471079697732339226537573618759902047072679755688461944169557985505393073643613959209092743590717298072338927809169155729700523798175655823977099326904285127969582406828451961214055548278430455104618374158144834210987304781542081247564682549676919837253215431797811740188734970308927248391788776475177564838458071116964285760272583410156353832904434047026248731780606860765961674321955971269573067268694121483367548072921771060140306887824203574861347823228238702963941855337820733890249239709608933021689043970515190474425915695042382598122863478257432556326780654810005530445176410887695057629689120176063510029565944032215370607313775750887331021318673548926174658898041470415480647985913955871248674138992304053703184023361597860008922386878147635977951478108103296612066401262260772220069530477976323187470068574356520870505753704347579259092801165992090846875145804849644123958024519824842132185498986229316029420826161540600180065201874201195569854211281976465349913694302252642478169507981873605156869170643203611817223667256836097659931782768599224901006075472442188841206400550256636404139843856123864043926451789172813449378907954135434097836400179116051705915958163129616936376635694050423768735884302151399743572111269676801010951751495930918960151624726969734297426749107287810005379411765496355766750466673082992176344866953672584438659041929135291112404949049057576290650054034198431263892307479338448494481744067810418653624771862913365283673688487584853676484517501969441890946880757848222242930508581756921678879063095416963778238462461676186557946515676089734069246913443991608225081036854313233609936625865402031433805856978042315285055148208234637764798379867240227451320354398674777095782945659639637198161616864469683387973561854272740199745421989057291566691742733303603014306440997694650327310797877405026165551722792330224416950613583817550750587004129938305934621881429867344080756698232513113774446813609434640806876743869134328701718357588898497908292680449127934870210887199505741979118745599104195138973488781132816049250498785388394291501433358777717146814952602155778592428520754413495618499253214589866239999568883883744077669987017943123276156980052367607362216402001638787309192394529847672893247020803103420668452805630672924727949444212993509073652296522524520283756554620160706520963494499654126171327804254631124397100011243030605969253782562185821607436386013746308318987802275034866439307181720956682680013050653739366532865689895527277446111500402626642887220008535660723178303886589855580112899289359468935556338558633499766867890363335679482942315250299940356529337438579587491607981864864771565869373843091430828087291922415845318516521931378555888101397287104274295231001849508143739391239113933189802190753867877639243131717816363541552369365180189886703167499663557402384828877752374821188734001841645979384611777301750547933121556258761776374559614498806716689784202537413603227702677647131490643539138839358837369162368145359929458257982637257746805848462357281045685866427249142769287172598941308431705343942974432598171448546233718120921718597345298946008644311467262173772319117973863619564483928339114493444483101779580394771172510886464348998711546882280564479338454435012383260202882874061150737839754613672562675173117883570558827172389160169294129496894674385353976690398216799599945049751965419873545064685957671221182801599503426502444429735706580814523793063806870553891855979570586054638412753426355429647344748811323678576580086518588251852233867228574970827271934706939877432700860440788238069849767534828736273730129728521228696989564067101111944827953439190922299738479654856763620985269322278806603086178573254493170558932892016035376716448571848756368881636456270740070137063476023484466012233499058485603064071259689191665872774359479912415599893926696821278964933120028312090299890935845724092448727405678690026100564755294346556877930038570683717700301166768886461258871092720881731010164035378506265267992644476743779573762546571539426567247209856450679799017532150034481289983913694318901515832001419140869528897198254432653617489137482185708773174923145688981356166161292761101993443757233528053743109424223692825615633132375722348174905102343012702219700464705173206411835309108765924208840078681336461514617145028426222087840786583979971753511055096265530327490183793663440238327676719432901501756321438356008390910712215417236318515025134642614696973223678256560725486389561734319532493964835146734285585299985234737120723507300835357513757680879861591676354766173633457250150720317408923435440947913653095966886871113741214145106541268330015900978891422586438545857366145693277622370601697937971870842966335476610773002841187157461701697369594191617596359371287054433366759972643176548767775546307130634730742529846873788823764583452906523492766309387725664665781695406794646916144832872938114670517521813412510181813367392271355384956624304005271236759121577325042210947103665495654696201065293212321200190726600975208216043872668074924317151950161174492931728029038264131158817122854110983496318454129541839161878407360975736855996121922881254467812108416517218966322536279753046784037524124629534152887701515209279599567922147640902781234330089200529824007517489452417057568821691747869804327840287386630298108668824724177516044145223148090633070627590953647578343098615367453068452939331904548736402879215279002616948718963403611178124080337820074923631644670240540568783583074062389519809572014393216293400026248756271225211676688242904220846770750592734910075101720235986426139496429097876575213221864858623878483218185188875872777948958005783267425817136413729474355330004967798408360250805733029610576247724393316773092672432494102172516561960975291496721862856637903483007483947477258988227474540124037105100490098065295587756540311434631102208706374566442766840179377446419586198853048652528990125046917879432389463972468966562636091177919882205184299550542763541046179854756875338561410084600803143705793329681001943722682833717434668627223093194578234927331238895006708380375494083303465192018225671259948167956807287581379619820117446365673246632249411070525533141615898998333920857244628445719759178643007766823696839398917946707653684574550727613027427156535017193969508351121800504537771554201762448311264585837989228541192870414848424465405471773444465701725556979896558882525624053797992792703437700449276522948204311359132774181926934654962359316084285316916019116273361527256507027120896231595660359213667746543666172371378781278001349425443267434628930042377492835292732016040658248746286647788611307222673325673067823981316883819055139694773455106068336474491221628388129021786701684380159412879468700385714018379997752825754041420273285135601330491996692384933855743105526483550238086890821565666346222955870372991528511559096439561659144097710079680686963208354518262828239660863416379028125318992942103820361185256925708646087364328279304594817477081501604686147915676525768693180507062527513231414581394228809735193960707910820384509859592643068360056960016194794889170252273430192627658271217402095198144457215727627694871526406920125130726619538183950730027687881724067249497598243926476355429905343722814268070290599589859971059601709300354523492827811191159777047081269789497951164750723999384257602715488627412957527312569711707648770215803582521056934920545343699173133136054597066946601573420728445711929350955113658936690459925143832311663774793162351361485212403959407400047197090715803731753160794708845220550198420508845179362043282850982740051190021961042568876987318444652707999487382224852121337170796537476798508520538716029206974979275479880536351156659282701084438742309413496914490508905243938815872088479519018742344320202967733616941205309971345688967982964275458459036910764595431167259653167347856617115747555121086064566032552809260000393544676975425801666596610810147538759132866585404562802767094043764561028024132342493586151309487191769554011914310496627445565034187366255169462904179923013874746131236575399311409071692406305975602464811287298084658097185912864984196421131706995923273538517732545148183775062004318290923047226667547718597841231233982997102709842247954465457284735110131279566920932781679682418507951472581584375633386852425454306572359695018664733428671323443083432177868777433656238585390475293661444440631898280257486820027844909774211081883145491120594477583485459076293327507546291330081694064663041113453326330574964743158807338890640189675149736423317095784515802750328482260243457196547603614802694597036987323838112067096789792357644789567702222308388505704838171416611974854869106776157913341356360652951892690574068936951817789411040847432936090630509899191652286865923510581616968165308259750758708654947059126372654679290991392166813362003197377544230748051949179062448345874150380480206917221468709857539847053973245742918920368519478788515170399332847542864846950985304423466618119489430145275784261475556591866863069259900143758468003908882487627206991399158275971562775743090466431897149458753366906838802583616413666224187065028281069397529717592745688984343998282803994995358711705867063914181129684311699008919221622585150388831341085088884020271603172102737770777004876784212806565383805341418587028484078418804887099505750165292167841493739440380845305582311171144945878105324160629614294944922028960254109205317877073598450941483949429080378679656163790659671662490571453328437284113587808035832223134705683212077514133711325892388141176482462481063214764343266206995323506737675070031798878772501867983176810933261382110300241706830300096370391053125929072002977948304634589238219683831901657294476203409213768109511077108207324337641692312636664234838430517383229691335997837189753420669093046801639610755854390783392418233146095388843346573544429140641193958448030961401458225315132721584901813802050772151685655027311197659204961235389060287429390969498693417262469894716575538284115875865949967847211862499189073956986011997391946022345174355245082988861171232090214910425070844502480588015942462858645003366032635098319126274235754257562039550329328395040609299908100058948357591401658569614623270064486773964492173882668095109531106714126452648181090601652810151334574589887319498471705504323682402664959057586477167015783657388999948396752775124920032342194755696693494287294206298595132846547536203471224646022624339888761492150531957289879265889442856283014565106071169196131077594212139026574155470028232276317724194397168742842310503471128899351328739228782673214025512270505869234004809273775768517858776676418528314366588167985976619686680198384827929540356967551744017340342709973721371846818813132349842039771719379874206352651344477369260752060502351552162178297444390666647277099335577646847104688719038096441025548325477506398590122840676007825779298436087942280049842683152006767595609289253238691282490947007981428247051775222876311740518120814060056958232794282803814210685052401513024391238176683723994474283775500219537974275808695636846918265030886742554696841132725821464421765388558623322140773602111467665621171546017133587882286156973032836774666275526372403067591606779253436791456037819908532135173356607362363870313958012061713942947254849996819214883202150349713691275920394082538834831936958232178061591674459340118707073619073968259319657397205147579179343405802894234990219468458940368606667378024308299884172387677030686456411646158122485730201150250450106017179559305465426839147871949204076054595228413937673932448956670455307820124671293058191054585291901262139584679053057859457614821644899912455601596398965669739511458881062572286876856532607361422018589181556952994769416773078961032143466517579451689935933992890329757375496370407072476613375169197157044470560657082990080609024076061590277755079036319649921565249221215995665139615333668737096442573883122301672080276185917505024908741866553170342119366120781669051976906429518291496717898097959727841555749811178539678274284237551057192644019284325584045288417221310571525179920867140927420437422056083962730349634024721875101322030633725794446221275820207604924244334749586027581067066914497642914349951262266178365920923136602683678990912336117368030403704808645441115485173368488808898410140769731213213949799505471727229871193247589599845144665408433466329402036202683353921916728423975236977807933342502879017430658219084672103652310792709076254332314857699426778775466041662759107755958944616014783354535590595783726491547034922727383547566865174258049266364825171544755812749555847366539188245570563725303844007254928874384019660198215208928341772360568866770839129892412129318033969226702329525984596088317022444277850518467154795180260605429444492427070270110397598130476583495368949376078417909143569064243108234712969194511880319434557242975420049945617477163368850054099036085690606441778142062501269850765528465326266617816215107708009341859415273469213572181716908574075293428807156786156130871829488312494962184748333195049479496177710514659015444214755669476040902528785164194816520999481492787351808844877807445708362876580433835348122152729684211111758404564924289842206444777811602625527873119880443399938594086446590368922825768189812786745364223713578510118933365046811693293453043332590416582685420447951562520765480064148118568364474785231051844575565289214941222662810102863116007357556802936885077094323085171777123380599732687456239993043310098434902185181372819805711780733794629082500427917816175173414450508400408284151390238529172782845440623784470563395838781511383424204368565677178848533253104184068332874883049475248856982197171878698779465404263609518062102481327692529262950984591532604887097429324577743215195067838165748419257743514382751711593140803355438205143600193812237919320767826434483351040018892595043216000060307650941622512346297937098648335119657800660389844259951634087528971347730549899642019096492560552241544809351703972404115424015217291543137628782477370406191227354661203983843020543913873168682730041950246163472915976847189235969462362251120401285247459238887792733761390565545080760923215690691882663338436110638186801222226900303448281264573211478145222244876068820598315440700559886092674704036852363055115987203806037193057385468843406475883782269959080983690017055269680097757531801257374554409238818865494914353264589450584344249123645448638527230850944237561383254331308846213597407033971008274072202163803273281728119304457171044396208286981105685904999018750587440256354668211703355935094652349877744105621614941945231553796808925814901714823377883775955270693570696603098547670701647139084402128745849678221726013344672431259940598100433729732176637614394343270831298019673197333330527879236274994184910667856607036627953382305877747382286484382620434250105193504266421615856635191121268098393584993712354965237949677151938087525650854179995320355278786487000243293491502646474766300528902040102515670936758782269511264480049035851021291175780815845205519877965338672168681199932499949564786414588277893680873863714035753144415526588696160334204265270300692143642859321901632285500672343981037552974759190105587327363490227232756599073477541766736467517427121385490042340754700538698873596692868221982397615985875760972150259097949488452645981443128449077107894836468431679185384628284422641397677112181333146474690777709041946911380030279096855660172561670049487041344497904262902680987737027985909392548164738969766915441630636652715933150219990436280896566411907163443258389983272557196401610839717699951641069157952832104751898387316677351478922367350517403624825086340810805259526180702175260604388929599665476395452352763350963968539409280785508380654132044370191159902787017418308025384907886201923694366997018410775693452560568122623072142491603172155756719626077233280316396612106968811584077027093444543700760166239349741747374771236391092648614503838564676748404354025522059384285592290957794169473740204093222415495560507988648530004270111662044204805898736114657024023466405600288429948281803556301463093759347716386856352198174212856885554329730635603720251243186281364621458686842559985505388914741187861399655111423640243581447796466728541679288546827208574456886489135969029064492116905451044484121735419231775988452900795075519123761080261085275134146224009460976260810155178719141415804620926872120106530101025207020905102553046632591126976945202207127939973513927618584432901714597565688469731685526128821723881451560397947094839744914381280844290784777394223596696768325532027614793048147231665775598053578663460716145935532906624308325869310951903258049938665641838907162987595212635595057246916605568247100357640945095624538854511638743460021761635720193300843738572090365741730867049002752046605790135088449279940250167483778615441072559834116128743962464265420174986019500763841519102713548575068051356971716932994422727951319286272371148172140534249905270383366224772171990988389158123359525624495785119555952040277792707646013411448257805344391987243425509776405313783278672442978103169376888363125044751383261102041685765839734523343307655261320148855123609898417728471280861814658211485335797455407525400117030952797753938027817795559099926671653941473881518373161455831768345549679432776667098055673348592915707158750497084662900188000497137384789268659324382031833800403309285021132505652200064899186295806411469584686085355921749797953430692280137436912058905016303381083302992653021371341430590001858998053346633581118452188833844267095785037540518016167913098585709607669478814644338207876119676787979143660953462565103835792869991162038645374222750947069062234160388035633104448971497721293684397433210686104912842531573386591853920721680731118818376776597511438136112854896444676260962206063934484463045287596234801557395737140414262125245371523026156299987250736836815331230111631988143424227890347154247291058101669889253132274169108992439101292650503618062968720177095238853965501536254925757235795360582928198658403355870456261415610752813684887974152952947834111419605023688862827814412540077952877795137507922261705287332424353576257021395111060577241103830702248176863745794203231061163738589344085074997333394195885182484743571048095830644196798383285434873113436789614192900506922283901201309822173866227867840207186857331275869813833331033994256856472247334907364707800647059639643581000405192246203015301393123054734368969539479751903267665438792346359810959142279602343526364653058734414086535877512082641009670857967821685567002361513730645092694664805360929750082184074050230804472711076152701900238665111898877652378543378165669669935884155217596981419456758357030318360197726748689490273939214313160355464687765900647641028430272934550740494509026304010409776081854219542971555934183174197434482596004429526453688252385427885564888275604264901550415696029503062509895686354946357271870627701392870116653000777752712915488816275374868945430697175114882906561414958958169354262610077063353173269234808728116372662038692430369737275135768094545227772515733053165382596268481383209938180281447990152444939241495729698678744081390238224154797702649931435348619760884598762282426550539718487116510976052688249009226343664723750989415602151137494007837870799559173385895687822546788675051317312484548829568405020942589405118241903198525423064844202149526210852719935260807376466866230495926075861828191457343014582429009470039514974111537032634608698575346262946572421006951182283133464120564024122536548155287858030754287180402435603683131780834699951004096505714181315775127560349429842453413152372134511537209258028133813142438981867527075544933969599751107608589733606673359027586168493552888202891735723516345088670390681028165388533076491046872674983462525041784577393988485924415911214648679913498441467514659782466379073410647326769074290834140066204097313267652578860693545208072395358585401742516453898327700305664684664412216296868613141221170134491373697273250600608666840502079144346460927960302121625067401158875144969113230329267597465247921918969172831959106210099250456510630266101718580953126800670772740559885839799458122144432495514606978643523054238864248822942408573660618024345764066591109588326578220438831911861912401333474027379131210419152680013336155230903756564796501441184163225729720865541798542228694400921717222444954617592482448442267787844071940409385267995564661173609097230873222895931608598937488985395457712217929032205402635204197460901313111998013652931554496205232422954182455084068602980777023578313546337721149898742694958271427533852671208823975066056852414877535188985919684060860513471602746949037352971351993760580308332595002642070694382757329007686453295186633648504365678011541947000288125866760316225190647956832135995068871673622197084805869414279687372036887127390751577885129087475260936902349463810489920934558724846738474766573304894747285490064159049343290154447194530120230376990069852537816905877532562806115595465993277544012903217489738979526076449815862898149807174435818136810205260988773106204581026550537202076813940497649786117003897698812356869018464046953758658016981969921732726253999164969644254288346647867001602763759179923900242203803274340076505157973390648784685912424297246705866778443456952414364692541773367233523095383926921524959432220021419543981874737411543600543822533722606805441340491745711270598356237353752332768322303517172461185405235963533092888489548939791728328684547397831585851748491463269985816331654259634780801234560003356466210556566410229929003388596313150260496285299624237063242099525050308484110176071211953563205720550064325612370621192172940034466022598977915913675364058667224116769588633939871698119967572628806330776821262095021512226262287257153336572810177630308826350928357110709574133714633620119513634977307542953292771790584066867761658798004507286243360918449355522020402514072772261514964063076697692588266109558486595362262385724458609708413679306706007972220183874956233877354786744749250676410702982978404241698868791778907527094684409846750418609206600849108698713072491860302250306217303337486668340875307263703254512720825239078981180462028582475458935261904597376526555920571014553172361970886870533106400346182931685298529018998040424385267210676781632441889050905718983291160720783435391191430728886989447326522279908527645699709390182017796758191009048199149546446622653086247126558096423716689041206157720520364427779846041961884025324426481395281918684937234761228271124056935864166547055257422510565561613928647873979889874575657617133184260537405288024004696549388426139203263082092867438089419522284186384914453250007868160051721594024030668089939704365009143638828611288517714632945742798473971303115199903733046581082314692127190554993008131072601578824552371679704564164632684559183560891413088552894818815873786839094683762419825079803305281044799857239232239841904805517198595616645967858262154863113756573291899951340060872681827090731974720456292759126796841969939408585172635790133303944225497415137396064500289092278965008244619009358677155945951380174468096386311629475588742316013095189464697952899527320309719225475508967728810094634088667120654477844174707773563865717821941287425176272329602347161247565061520814489372401836718826419408268718218235378891468232673996567500328951261367152075599984511412355017315652812244300052415274172160616141481066786475624603128504065344042288048911186083949051189617236412052295970214696532539517136711241328249920964703690514683553294116925698694187570199392059051990829820899712935005466850664352825056759473695920035820458326407524168813049070487349946867024673006191854210833633876241008660162597987832811275161636498735402116183553900210188093688969743754890482764799806582229216973611464186497153297199813420266219261513917962505546096436813977485179002474380573898270091639130552350640931582051021232206909426051038048026170507000104527819899451139437041270767176514759076679828412739092067192243977610304310512090307505973735730635542952081300952759729236380290250731627208562035521259227312274243994638551569227014162749893997020964037581914539418139776574789816749143458015238154179512376530658007638114120112356288679442878321033250667764142536295987155921330144163789951811611062135932891143164329947908644520420889447611207687613527574586154785521724770894854111853141230942512388022288957614873919185137921577426292236937532342643061259843511922328388010247213674684329554376869677195572478956087947234890852294594311009372300375883005302425280123072178058967756478542990959267104055738985366940891290304743447766071031280054442502975704495786842330470742229026251209400012798692723077245983258462595129853042371013302997661091133339828587068520517487458560184950217667971361560270455581951984403326211235051275794176577281036585426052395539684782491043881152218310793669617387888427594822983922503986044908663235658701601716562151151889116099323337045760286496755434766897313707567864778593847561955673351549433458714455680291475888647786681624032384245061548449245571565855625842239507910938028742018078161315968494952683601613863613100705683036704224029007319237169112855778008947131633021694675263676464579536979241846464527389809140410422997809488104194417819214115296310130612005042067016169224223758257915597618859544047833262442082622920658772743996564301160405090736124411861251179962010097832490751961513555974676945328422016954591237278299504400189767906849113116058870539722145907796410399797727369698797230196764082822958238483505494558910877457164464534112295059668870206624958389058912603080681844870235450401542813225865031625290986642401489430572239526480385589176403067692072444198258758824695632273825866733654982988963892462039481582869088948899705292186034256892643798570103059072137842405174491949228026630724040304612420774305164546136955812076928850098146238342122645668948440807036173610317922663880537572249255833746210343966238475433570560698707914465386587958246076604670103919635012562657881362832779278008728531237926041791772098370842915670767114964155603004475069877072867935202068728373711051718339278088950109785214350544958422560367044376074003381314908405012182081281224012415076239548104697507847670831230325192389577378951388200768607758811201936526998920752009290257782844035465332023501609856855716826015173525894204232805995347259860171425511251625009155844483467847490055581452129871869253918991968240726794637641804293905791354587362442731298889992710046611528454959519332469762128711101794773078766760941634175885069169275640254775114896378459185159537855513089423276016199652442425113599617759093758780496804954695227686592717230536559093929111701508876808893445409886388539157809326491617601077958164056731974249572263787950196629043494961942279067018776065946867247583057350224806438254482593897577530937213523835254565349372755897618955738123597887704984572660492654945594176445353084746459943256100049987260516964334510749983805680110391549356262899944899093843128183286748313598622043487012573077620090155981637172295055094817736210564676779558669933937006739544417518355021827358601512416635792529879398251042380395280816003454408823873879290979282248653797159731769071296202068859111261865021022327927625131349908612573295206368836380536825652260663729965812976102162047562766938559958798898578733354574149760827317143544664590508929432063187042179331665536798110193661252991586745977215065148433381240847093444865293473988970506285950634809652285835155762658960362928010506670841844572941492517044085068467689880816031314769752462853443451543295585669977236640183056356003740929971294740046949082343159139596432453833822966945325831763517166115210508802355260452845797405702307685177729505232809718591390797243554237685884187445236898128010205696712486758990532898481518223637700441264263142606850548053114804665145800534510492088857409906060247179393389739498648987025425478377686487024593125826954269381021339328586738720641681537077812952021630258189820054987428517127984596268349145120787510662358519928525210642881988312711652357062449779552010401720055859721493603517257041117856048747685271168168433558502775859943005513024189903562896282517345962193513895987846572151402094390109637069004708414900728174459636171388142978694035497808132581617376638682785260513786094217954387877618961644814434706861117276883687573841866096589559814373716464352249199416726701701825986017251018203495268481628945419531981910280044012667042352426725818616807298596159991085226002644515606726400911090732093870495755806740069725181759148184078956878724822391513465566231098517138904350967432569308523235410718946696526840240421326088629977164150718767719239984672662149959719983094750712284733229884069839979486689892349393538902225065029030173053801948548743761952294278414312726860175569289391239333987500389087025246188359898838779980583761697547537007497642421210149693803879799582913133223512152907460234034211352160503261564174133449197973754624695283211602458861288634425338247768825658246417096975737653988195107777748347516464900419097287923233013155235346855872261532200100276702945866118204468134134981008741531579131253375074313411386334171782041169750804442751441749518367642630841009886593802044945054193672025391267020467138193194358523456328313505735707385023083735379965047793101046810368360370810788423626640485686459012664527972185380591185345674457626733647545000321909598576870432093207018438745092066879102995677545526127809713387179628079419550531815894579799184521150106359803150904269419109059915351203819837954824142349923361055260989951486176512098293980907684791241700804945833704651836815207770590001072226807036369492174126810940510933422654994969943702815853528568449121810568623832927204660239972401157255227359247476824844761799384001682934254169164910211043748781111004361756857049177861564099565281049857394441680730855690285134825247915385581209566971525607640446286335894146845734460420665984781985362460431333441979179843802837389532063862762088474989725043642872044707176905546142093991170638207485816054283653900006719107230341125682842454254983730082894740794168301855095290751683668687269760896410520199168529993176493129760420850649586398701166587453518706058750513470566944117960164954618238809808234945498938748273685572779195283776220365075224931962609214967364790384061733268348846842000466431205722564612418337820550800037277227541791186515612899918147383462209451055605806209718368012836363210331898995520648952571677201329058698307955098169098425586687735780655170023356768355616045101244349241388954017865525382524495115470348016267565867443205790877661272713532805816894117009340329848386085604510184005902596104003445887537629573961150846200592046780709189791548917026617673344686040270789854889336300776061587789259677464746775205752081914347312587125056483763228958322734654215436813596283062329544656895113713521235232825563571597219044759708135917794508653999087142742390978554517222633271945229929609140232240680657349429041575135523307769723506731978830412354330780125485932196815330481992481007633502507145697521061138199174173068362214965212661082704749155424168572403099729914647820804492654127725248990571225673137043338193950254640143988784854486355325151191095375163789305727156385146225174166400330134356458338709683900895204947681018845555448566857388500462382160509178171355125467726858807111316558240867472314295503926299955299758033135297628956616107196033695415704824326991264427137504251800164458293158185177570632223931672217106375895978268957386855556689278821916993874178035786262263939060250716996938135085170138970703404550895506005797538126244953745091389475146909703743242285026558726665253495911130350582532033649848587140113490725059401249864041591568820479436262409952643215897061476111018776740763033812955584927666814838848950614528625137975984905659406339969185889017827415009701779785820400945844665023817003643994262983529151493824524253667684765441561510636598353931589701888588486924192653837389977410877892650665293491868187464362884525334139216792693384625781476024778628358062586063379396047406022750659808660621521708392537815511941058063110613543069170702274730179892832706904301772241681969629145344649456726712874972372428544110219031309800935950088159744672946969997017455540293062343836186009014426377254299161096549850370706939091909803979695028931913993457308622408372628041633256757989550551031460451027084025634103872639434908279212480627060339175134800991593480813874374989860497013328784216824354919266109126861710601060173906680439287823208277171483475335799210006232807952877974049228350603429473982116943797872415494781546019724235171201180721251627245470171945739458592201934928766906325268421311689172165663583442916841732180032396076524095187676776290929976138361473601691754135075290100008118761042051668151780632271746411731200195675566625014082910285104322819499789498570195009562418263527068832694648491790077239698726782919578286314428820966464102230443894583883798423548489252818060814762218859296729259547841300160149214105456670381875259408882418280366181304090633142032577125678467513651098676506190496522893466321632484814989587554040910290454902904832691805923457116719419136188772456228221346732808742387255191097053858862271204199358374566255801269189807207133160681008109817920901279319615952457178581279635346750225208702896439723499965201246660556240951799288859405696023805031830324274820607840750286406416273570085888904518619345613417827965066684199371221869030831567396384133863868118956399346136078842885208803489378776315990758798996756235003695449471728774867014512821556227064827215690803364710511643806458051582365178737543090921833849478625273952330466951381990574519872887556883804981670177772941078311877939208084689896289526691893005432908380068702252174567066657714879913691747566656422235451303200323637791080106191095170200931118203427939459103162001451329576690515096032542798096195340488750373813887718315382479608047120343497622637778731725799351499761028371392019172429297851825199655477405947029853869148865993507856677596334141638884965264487320643241512987748815577121150869713423265703923360771516720209188713384111468524103073117948897427981739746838607657134302835767648631079588143511322813255773851622247118752348955800946167112269450078365613188251184741815408397067849646813987517915842579351638449647220322054306570056439707843251014108844913667368077186828468162630373936934136318549561264766118723287422420358190614877264521429678543084430576423684513924511055169127083178263383936013387788660079628794019244410064338951511907230488937674382861202471438137945091061378410930920825432509702440923542980278696633321836996402730482326691067326933858452181968882476364969662229108743444235760238879856088956006029693373359714342811796468772765986688234256220645581127335297064593155659206989715061818513214372180105464472572942616906264817523917258834814640862870505046015590558206066283040378869832783363104790126737824187171394422060103186787207958000867286146092594279236751019641982370835813070141722165708160485548934008003996252076555154725966327477749288370914997388632808916373024577382473518951225845714031352499615812400368718835222782738227338155037882896133400015004456114514149502415609031607181172528749088888681436573367391743951818137412368954869616394307297799765676752110614312832982040442546374775416358550415645483758745043382952639089654419796216977156256895653745598498786899628288420619392867127333057077356391648065266922728817541006994249899058010721792742498044752016839104219771229924825634977635017122270887321344199433610413264595117249362989440715425717009272635177535753119839368118164847100146385595723761697537692649032658330350220773335302700098624425422288573621152509752352967201082740509829037826865936957178441150942493774791368339969981584130485374817918352650759693444498714316674241167087256957927805742029810106149137722766111780109597510325312519285558557708045424427833179434638170962259176835625647940471248347803096048168539817597724905439049178605956918649223565956216656167547112884897678532771718775592288677092276784885784065662232983460649824213897836152061754039633341895350100798539000410270286971846897076911246817135075090567156603010982638650204231303942269658420295872660308251558710883753763202913223748711210572863227890525372064972993909448293084644321589162250564548994913867991470241930454089378874477045186809405586413007470227120442363910152377179768417759402217779238658964449035371890993658038885898272944489023067371141638972572143124087907025631252478521159797016861913065658916876320494192379271509326162395575024505297919402938648741805104237717857183294570274852987969048487414344317613081333837244984012090810347468061482315510517164339741081540607053686755345569431460297370424622275329211159637129034903727475588175807032599747534879569090483958978470320534306925685388536322138848176584763332317377585579859750502682021620869158078784833363269268641436756370274267737044500209574369473003185058796808192440599844115609414347487811911112045964289972686636210675161775831234806801224121497401497461941255570971255989720891102228070932498482365285418577400737207799263102892307493202580013418363722934988427614989875743907600998251299095946524777776776578711897766859303324380300262796250393684418947843761968978402532872472905478007652379600587310882802493930786755931111282111514023775092030548890584198685083489728279115155989251496617128937444328168309169908449533559860460170567444524003845339818029439341301040597304339476741144037614608375584778090451530626748934402457778191347416767491572238386022458372880815110703319014092776746261923512013570838385136848511019272507925801662978272071989811125765552303410227371838534609232333649668107207718923345241452547104088933676689328096862818760297639852347124584993301337918566511602857527744289934155956231560544543136445168450523588759743079428826018363337249127385386222667677255398850076049143909421367423081905278867513114136635159329910324296004986952898186349263560496454943086214904132130251754251451408457658777015280004697651367091795081398167475160915908693231735127451936805699070679880263570937153466663890932377108428622806089270750863489595267358034684078060895646468059687367780058875565429583750607241563879753324801568877402650753539311685348418025210885906089563791039218180324907805003472793046768206315211691971508170535761097753888388248834160370335927148804132449650703866113230135402627707323124195111814310514014227769854402999638425484219860849242530466645361327612140370622569763795749971946467216235256693376634383804711932237262656702681280222939747986341056298027947153308522708213234016883511630811362753061331975946777511624505992252643217862432201825837814558541855229163008295273662418556084839644468479674660480014868215867736453863870415853519357160192185392415242720793880764678759364546475753277809090021403556008570984302612962522619204037959390613351705220022698866637643333984306707609126418518618913705855289085137471966254532170292630327328202381600744550827262296107694660953461412743693073888012433933035133331035458218037425878884114700637155818725478157772063500664481822494912866640923364261869771790280332212776658782865571248635970877903375226895931519259200284635864744776971729139948971808314647763609407885492570126366624095614156297197782845934624497476632211730105462810729504286449481663270665457882008049916707607440992142641946719275373201084524388923041763554492536271305792024110458158373698822694251335209906118076875864595092987761559019931096642377226792085679993299130220296184709104761872159022256966941507532870875207525863105642815547370964317656604240134685276947748205619779716328192467073877965184745527380827795216484812422023159477436222774048798767864837044056064207476746147802346826224330944998556694851674495979398694540836524784183926261317381894059873984034419669466750122065196370261465288558666321129692256114436675162676343485606632191510991641557041235528101896580372493938230125584830547623396488685865318472915604127670222229559068122890293105736329577752064107943831065593899405457222315805298083726317430462291051566507750704570077094245889875965861152762226108529855971485285164306674320184207671580922622984163829730469777010958893341602085790949853192488890572620435864915649796467133486368830860648125121929920750921381377324956914591939695192923066718114325579965835427778295884459869637722615077803454944060308591788249245056662024586493605362009715737544843843140360799469395645826339710764707111668044938247918843689559586301385168455533986540886088968422389486157844786690495219257013293011576725058576887762542588657624676657328610820105218969922594092234187099778043522341976733284091431783518488566081425203700770744856250266311846864893850674036487313983023796412399209618839525816709480364611619174588092055233579285230364256668735950043205883929586169546336020238286478822520356620880387860855743716732618328755165851072752921687350618734737411482198718460712373259704708999106746387114125032050746597675438782722712996933836627192121846686828269493635056272992289644572749091358129036210034098581583390189810645339703398737308853763563859012771806731413582092667025536037230704644244372605130436903924059991071854008507945779627618887801498765427642999555442988214741841094939165059260583558159341018955433849152006642622778463159673808597130929114962371359881167469223233413498001383545766575000571372322967930582833605924764855799173802373443955439358787808779341233312608929424620790301535179368591062854216107805792184760601968700883978856941982241616630716096480306897384464331714448851379818234144358004737552598693256715574152118756769017929997560343030184373755375786460327134645576074545583258026086187220162131185409464277598093111804309497375456952116876029983838267983736224594681845179074666897606239579658191492116385178834742762084820361314084888703084891486362420808133549344335283171503223476128165097569059022834458258503346706285127348664935003604228426501409486120320729797913685871548849007592314757088641000212436668272256984617207691475568052734356083314133244770888998135322159815822016025128810690863154784178532467093022407114970274812193576041208405052963128970664942264922301360397252296734934780957682407127008389612378094071492769355965018368910826000449129060663865439708798592051353151510475021795638061794767260345670691242389852155801947685272141317759925726604777297926289854754692653567786969691426118221566292207098883717336514128358550349903811882450583084484187304620128168145132409866237040347654602633789360622006977037485139979211909821356733433969164277590215637265018584803829226077991980752155168341957915442423944289964325443381480980023562231321547403374152705495015458662137482463972611878188569903997973948057189203886155239204233728222405426897105719048579439450768386596199970801424829470184312243627981394720220830351985750284734940139231733816199916636938631836450006652134214114877676449512504229582697554644951146448928352893757260654887835376836685470066349717692091466226336593172059054134201395627144786392752770651257743218450455801766027858154851896086664845917706211912998661610392973962858846652537791510084468193628697827628407384681419487752012865197109787604371141223245948180798862015745507416121978991880250587390564387450793114901861771001689746603042251993178570508237738219613675394509871598365236841684479951857250937296379616103398656545538737780802422147135567153669712963966922984368005267179290496987198638410931042819954389664337291557299354638322826624000528133583493420418242754133824023078513180552720672067751493321314349359202098012809641341289539173765823668557390142606939160435049569569496365584099988981040167696074158286442146757650073584670789133624022705241245935612386393722493716678697200832378819471721926030140934272097469465125813690608209153715134089555370720838146155473367014115776908150486786367989255353743809465731143246701243181841560491913557361830284215902396333974398844183152029407611539777541089734368050169690930292100507368311160479864428522684152162165907591705929410617936757215314222662478622871792918890216840922298074195368220949364146347752517323049096738305449048132485900485060604412106546250935628181036844377560306388654869905351802229737141432707511955139258945014103840849874290536934334695361095253801178256622430387573856345112893366503103043431782021289844232435128415775168354666961826092534076419414638218006259005438478458584348307839558588885466729628928794266910257783082534388005841442471933956173423671877184159213009790531699527229243796796707028827360943488380577853091348639338491697988132000041128189890489149082826463768884691363762533992042896820340700782239955897030321973935353200526199735193996969885349786452006805458357359079525903229393812207755580454284285771595847879137945527195587813683706986923577645125564382034646838509298719677394344831306281671619217044404063772180352439370703096712634810630143457535539848518220929242601194368712899978045873439288093583422911309304969392886933543602159994382154070912445688422552373093495638037239186974952995468940491261127679030002907899907356817927443316092167390378155488454451822046470326949737321088392409487488151113966095686052569537351973209747630539818823558669988730342263714682767914183412346330758156440151405335242208699436107867863303913211412771639334467596222670194132562025453554307213217394020109547723644973278468606816785909105341214274662062257496179585138033401351626613758703830450245486120662984853582570728421976580019191283359331954429917964871379397375872446051421363179264344336698356022851783040171510700494432774994388948028571451957862018532923847898067827771410800183151425763420276486023277582158793659495278254639016912907301234446440285798218993495397063757032821433124903341100076404267782806188130630164694977670777355538669987966008194822014676271903978908082760845898227129842244562320061200718968439370355620048349668119425883027799849850416118114323689305490080699685369340277425997810686649904298734431789141466778407668913757838954216137398819452449916658012044760911607465607772788364986078777840852283266696391027554749375020278074514849200617352654348110679597031857696571085532243826902337757223326550377983946807095531757627045371088180922705017162967310836506285251219806697472000256376891486652199983655191161062297004352643457295268330505805657623825780582513848646308945517027504204899204235407225662826044276843578325403212838418670419103861250349081821614510745128848883244756211742498089829661801538996545261171431953356720455702557960090982656254526628425422237931742022079862187943946380624798705127962494600210303732112236374082395671079877498510681586631538741588320100118103155060293004909114834452059147198339540641071435170372218514403062065850588796740573030802808687795576059479344931850790063066353361007821812257108535659891456940466494935563096965252618040903628563674236847322229420333260016488085444248945744630265249290697771575787789732188341145997776820218139711612530190275540481406549133680559370313318169824449674363582965435324743705591428271053497744821189088775178256525758566218464559309701329695661920491372694497961232733859592729263005099046107651070583452290684232033598768156095029194718953085197177692950530091707969252574966283948537136289350107590009374344054567068022928480527764192531582063236967530326730557331574568645646315444246029264653868974059120885755154104826998842987694871366189241358303641241192115302906475828055857188649427354690948635437007849306370195984745693257397913322708214360738801062294664012210299857712718379135567520248222187058140383772029983076418771087577640933197745159476069078641613287372259419495667831819304526794397938937312959885279399281817866906694070583616700653497891574040267213862016280877528328119212928243627801655802374847212137225715600895167568214957572166525608759758181541323774713645055677773162361860973070653638822818214190994797259335220630558318213882197736560227502380538762518722515004330615144812902640599881857924346781494777883849923571089849006226074630345532234008124632605700409774975902200754094326139619309051977564247655883850566134075208566660634612687542170463002479493509355786916821252985992093174383719387703577300915089571132129476420580087866056822488679161193787388824352690434433623431147858930997108085305722888020143182305220710688150155966287566497231215272388092990814014786377206472401549650004460233752161640684119702732075222952012314231793334676551614234239893757063166846761425557213281768231485712048144636633248840541851879612628555831009641478499125258839872107813246076148974260073639504611703158913452277963357733207081159286237556969811452582304785279279204982908223015607242831283206906022019198060547359989189952647078431704831206218114110542283875437717571599742743292025948284429579228972471063528949022242607749396554190757804895727609714827260584801171206825307908265901638136987408156151335051692388043073874252172955859428969363374812991255595765424003859074575551955268875138542374135838863090896064256295471145380272598639984971943584591781452619938654617408178275770563641050254630875830295633680273495724931419236354909421889327785827353635901038311443376900375958417410129387164623774341049991106475467779776219935040202588092684131103493178646472033783150113275950245580612204587930057809660017936539194536173330760950555838599100695730556082572188723648730271765667569968046367955538280242703156070961702307535636402667136675411628993719975077480649412054508739914480736368462295422652439136635346457207851282411042944055203758454007951621348334004610654835518167309114064009627672459169237357832761857218792404695004050481150454921130094470725072517982077078123856692208076542877202223115509813308331069872619597539286064767901117557923661673965175997700699741101844541293403893034810501980714429404762576272728013661789951070565737398190504385192519533383963311171214696195538549252763900991478178311109972708438296711489466877155176421042263256384862460573511725564352375756217072146031126552112652647224012451947319352683748405384366779544757663474849793680396774039363503735584667927318433197823908152234073707640981544332514422747624492522648411984421894889321514563630772215078654824657130902179392263361963144748243639675199100715710591829238417649600804188581860012109906425012330492415514235628458553197238343129365418758111319857458536842438823006318012246380621250402965523413632469849456758186471259595539906765292764908848249740029968843589920326500858135160141619897620404315354458881579137416957365913392927067225410587047095689606334141645117164972536857210925676980603718697033071327741772926929694607780472903030067944703168888786694377775282491114250683714224012738466935614410622827863339087919526463680802029059946024641902947931772562624522771013943554052711040535614224535422351928042062960168535698750024010609263387403590190449776230258444804495334870180089376290823658372802185071340920747714418353237804927932307019690914803172124739464123319352426699362746202825878742259833009480062686562846403846216647278805139376347516189424429239122681491717612501039187460916149886240399105469827741383015950713845411056424636107767993400887370839519574624422676923877690566098748711696319913631878524771433958046700580893235063920326471002690200188789128491176856255645675514632795181761729963284464909780985239357218113996837972970390124813695531703732624097753886243332631250158533042508667085921301343217432197012604597950881740712537016240065083623578552936479528184128509159656259438142159066968156320589022518983496175891524153038379693939687266126041605080170716370973606664555082099990436933326430182729511509351404363356069952147674086236752934141441918657233186427273256054961113081917087502423254465588369284822108102000192156305071547462322204343246815064478637138343954187565959667066442931261142829837957296105810005540037651173449152903064183009543266215799136268452392574509377965929429560683644846161562617234207969633189652331750943207824060858470802930340808786661902482201839437316603326299467207003097740654163386740694838375314166333827843121783676466826876187515543815778190369811335499495324005702209976045767644664899898941777321336951626974704009036211454327413544485659958912812552301800491807405479590475930858315427819598021257848715289022092389465810637368560014620989973052605434468057503664339077043202072858548909296795062804920953048632761997930618924036919147929365054004904990045435869857189458790545575546604553958726565074249449378004671092961673193907041333539054346125915313546417124664961518506751160115051891868717709813084285112010969443276789254564278202891987423801469088275602787985225585053302210977589629883542473214122817726483957977863172560742331873132928125172147622280925830604087814886308598338837563298067404592555081301684851364407054992654922559530625141967262933091814728345595353001036207789725588449571647053747247449906538665727946140252965667998441423070335488132263858148998469796521937894417691256842571260100506307646649931992458108261708554820048909654769173691290866094966789031080878814517330543365354121455874826956777630818555589388779884484444502004624480467113954580082152059231887823832997856718843694352354525847567575010593050704605979667247308540598608418075068376065435841432204805129470582729541587772081111678418800358559671728279542456111859333475122292091084193459769201489085038692848513354535446540026473451483880587186143153555509149959057326506268416872268848427284078082575924063585043801742532796281099893556168480754169598026186412856687902721993593077203207045319887925645988792132341022720766464043056744667602836077113902087997853695313266282544316984523344869847918223377010326312233724351630297079021819690069489736468203263206112243758035648845054967771683884850657050004050091076144475261956264032923041402470513294371948163295494357988317059369669792434188479313638118112728201232795587543451449729152051021784639602569165307598005286853491405776901915131613389464033661517928561553134598127993438557462425724186447082209485364118080606082288237389338496284310878232959115348371801661645148416428073505526296057104742735568212629512087543352860514425329649344172653164515160618591601663855709090950461382649655189173428192374509314393154009327917164338189250316137108738074757594423828658036673073559389899881872211942037462259139046359661998402480329841505571153663264656220756120210703554741515367118517139038638788553569488488638928426564355088224754133551017434672773697026477057343909463312533377616595766801022920068273814328690222800315120366030900385903616941459999170940841848963594655475603721168348042294034850101617776890498766314871275467839043270636083027932062325983943438069263579878139070681959007766809990338260247684484500656062803278741436174281130562167931587388982280367141855699714762573762373658991941530605823343659614142327184892409643083758609213648938414653852582941004695986329919239134046141138121147508564960744687255940514159699718683213560609899521710228102118180902648728242648077912927419710048828026581039073879254305200959862753358907602614357880122725762220080198005109562421536807405460152223138780533157584543341639188986777044202895930981433546285007031777135703385439890202156013411722885667252309483805108786678590474237972325611413172309052152028641257972417733051146864051874965700329767884888716022622617886138968195720073324344334457512185925591051428200907856029825564227004109579595696845309747687039677669374533561796123033824859888073993752090638725883276322435949860228933302464503226717029595592561234505334359410689903296221746585010443674207927370319808342213255208655276704586002356156873035411425518332192573149616022279758152016492423563619717010932645388579184004820492031966523681538878922998078242434975544530962663889486781997807847953264406615335106898909634627921285506137385510453389094401103837444945515791939721574864804817954027552986629911303022568665205602875235477884767109550682546300323459585956375755450111830450105589402808986745347432743467683648364218727612345475798613816195001770883521880088022021158170627941457164204497055353301333521908400476120172381311248003623912568438776988671663712761297223832965315688516185547847623008881344633216428816956989509746943931067234573245011353930793417871752189941347281774855127947202533349171805100958022998871156760958185362439643201199378271288693969372063316444910387265801022688614863031069576096128516513790649483923088020698897619939511377910594866972475176200802658976389229394459467165014162148659990067986180133160992790230782817067120152574869321473629941715221680515764049760881187710583120304407004763984311076738122817232442698595417592890350419657306170334620715177899886758916579051591716177726888111430670059333203657068075470873017173323599577221944728135090568314439863422864237016972768221528884454323993266919435202674733630610952249625908456127006154191234672100588409419730001151989591728285784165727716927047870745105685960630290908048670966720630155927919034084020254325735140294973119070478120285379646494175324544596737064891416714988106095461264169091679942744581259373612030876348231289198494375900010732364330556342420689076402107023747522708897810701086629253407809484001877874562814695259014149718665670804844868889738316805169132942025767790714002731187792197098231017425809659161264334993924079394822359347364352085164368580416329872069714134347220471828434892819428678388257639948557513543921643923011621684532200218938891405117885938638105778202759079773769873314937402575311546363643467388095572337883516943587269199380790984152894909660584981684505635047498276329443468339811479358399178210851710182263071025127756936565757943910255237386007407431064319335165340183520008220189779887768360550002201430756942043363784985841910278971825541829587429190431226651767659112541578334585438229986872462074236978632534680310189468437196169881040891557690111782622008176191555751459237144311681376896784753417464548752035226428707938656658769303329774631279887376890020163789267549306917893143854048490582248767236784354288586036428632009059352245089087970471373943324716049263549746435296245334106090893536515870494788547055964866034385331682640645000469359020990756981808168982774749159327201974515505370312602754950129601576840613687136985400136071972954397366591081540236833841916452537845709615722757058152146553538711235024574916403441350045773362263801384857526971443952672291038771369211781041574201556788095075135045814053512434288642369844033724397240894497785852615307972308132556212129333508675092383400465781954449756336121219194876750329280761929914975814300458467653950255983683789291441657433202958234656948526425236152823948886466420423222724095265217974254533075116451310920518608316752156556767718501816292996647441990846681882732410844150770602650934152218738845362967968515187586560058126150651319242016058269872409435362731456453877240483216797601651165494956101041077013935178181037609103173950709063588787034775444897592801206059880625552557284515039348319054347946483366909894297911159784563980444116458681818046292401865510063234215338230013057463717405527784226992492212028018771147563690180244844127549007964387788383757589567209590997939878584602557744148900952814492532027842118734205680178593549040048650030082105694432707961003032687283041808667632229393276866831150359668906409394923217293306791799282579157530587767612044471318699567263336811437750211750531637941685626666834723055226578595837124589611925144227667275219206079813581300028799577903825573713812489938944442432815213503474521783108195947707143610611427496775989710561814061941189929623217405890593248121719596045868733063622236991398679714011208972863709801696539256277301753315142962371616436489869392812790342013769031105012507007476913740058686253938005899261728348421767386578235653678883843784569497678831284937121921138513949331560728382966292401235458300857695851728322377301688599992192203769143087652214873310874262583493639061347149397983840644817106736413758025946532624575759804374376094790515279518624920048702564779460669892013672269402333048762867889168339325781191874330720454788719188807742063260450256497038844649551336945486764888846886458698868692728566980474525412285086727108264223898723039900483830469013178277423918860560154467853178334256052236054331126578779406316287305410774539465813872752988294214094932001676447273910997792159520977093355041406998870911827287092917360861885602734090657082201994574653533331778504283466153796966443329544695969767809715442511560969351437424327418714501147312197844232279162851709740432005502851567120246710203631475935410441461559719734994655541560186507656910107605296844485940033295588623208751202673058393802752092779809795502047470732064953729403149449166192113980086010390243882940468260389182630225805782114802655909433727677754410570609966947981898891676533863197120126893414623404456164656335942966677862281251847610886811243145011603476175673988131189532028881150534160271435509873702863800282786393681185860726173286924770906784301949721764290383881680678512159354293189763572050376438364284644897728084979578371459948529486896416876916868399301803906327728532057110231234538146840618836543425106430894762727727740598660103571984765431638324681673138162820626012686796151543457942889007185582847033262728226802403539425875445388609895275040119437051748797046424891592691132463618259887016462314803915580803881856918217020535800798463027697732099421496089515986267332716050773737839306915739569243479206846410677150385905803616185368979865351702392049805467358069385072725781055302770733360676610894182121568124195602578004901878671337111662042129624168815299307023007075853663299153663854746003947193333612640779888529587138296024144077745564000470712748668904341940736135717106670555820925051978062349293409664840062622994613580092590050621259816428640471169670575438486406401484132032495457055353889818706423715100842123605351490084418926402970266498871307277896159603429673956494918333998165917706623519623603772862681708372880489584731592392028288415583636411501325935042562101417958410150731562985752593542230170477664151563988957716179854971440923491224037434947827948241008593951621674967545349297046910710761036460916313249497347972544089030690590480449400078671955198666740243199455680255710479544384195820770131077320798003672287853870097846519874902531836859448778020081627958755852848444702910755903079113775041855479504718893535465169972183360239355255072625621978085978624872837449135484068809117656163953783492604922108098252237740162046663390879656066427493759081213311340651292953235445801025257628487670025161252740123489423664793512274659760169151229556325536174339640905124241384781183463094952182070510468968121800154431593257685311420609542955071282276959245698507763420065930532308503889431982285311954383825843227001879238563004421271886145713796539428216457084152588574494586063699279642915815192064285873076063208162901989147112506073875572704856110860646077233728464094533403386556923529232490559910799601270516373860737601401718377849543692111963830618121716012529280016245979413167088763159343537479155923413325895634335796332783100903324547898599134355051427597190314744954204121132002928645083235749069482303994156055472267588711290305592949530040779426839364642635636322745184730190120292956700724965451240782537646894483471218333044651028927934842224256028393257237860940514053447506958700107151632311281935128996233104700708828615800058381125248334655375708205094597912538771696782351697086560609197581012710466156509058178082125729820755495003142343633190165677026476678271968827439849557239432018306846518458807288351780259702405579556916841895432382714815431060060245474151461258693129050193156754602416390630559287796845063579213435180298019374895129571255439288570374360017089388915651534202507131357900973944370878591585005726753776455536010296403953762202696153907790513938230528945406757373701950210692230808222815294469017516990885372000920951851091489657287314938203375242140946606139325528633795068901814749909309515476811365343414742921128097889494347628281215343728534112184216616519053845547835175240008234659132872988948269698741500443008542718333518223177743287746520923672859236791860754172891528770387254723694607973892926250757577839269542015451473446991274237558821275305815962402502536637487187118497381581787403264344598002468948573419727338525756852574020512656892969039687995321942033808588364821462059723017582547765861117969455523766527830166990254468634223784047816246419596680601445413697980696445881702297618212398022555972946028010641509269493438484243759569720518046195288469544546387912461963173788218535688479446071480434133834578389737005782366980896512475395555247105669548989059082055041744288337394197961785352055435894895781331558271765754075961342103555735419823045522630653742531827383941966869101478358638158586269849560916988935899936523441477621032324927311299038693453865621734037068466496279991077262739928293630742168948445158386497336248907146319280727102891726600165273793858303697661111073639514770392254046182238575764019468205709127829919560539431372015435312877496870817360956272329156756771362575812907892519847021430034974104532248085656101276969874536016193070234304724613924990818708930149301945023351045479469532559502591750397534581929398780628395526214427489668098982009865725887766178309121255834148046654023207422493917750914345842433449412913305077964772414393812953170816906036053112292843676142915191647896911064049751799620634434843337742948094080437456134093327882784841741264673351801971620535002354162983682039158402741581148953893574165731725278691051954686527095460265138823399334730292952036640301417744490635042690697697456634340415783930553131089836261015534928756369794626450224502159421080516219938246674937475180161349593525474234614184270050386625445385506452589015339511966030227298396770817200605572160168256334276725942027858730604256309239474407005282425110512315444218386015806900654170068844178876442530271672540260129279763060260659083559955794680161098546686902639539482591261182552254795599484585954523715502505724432493544215393243895986977785746345727236258081619693376327818586553120212583178141033750770953220057318929659146058145897020194105367780413937202431785202567079743236814964913482817280642483099427134363496764587393021002809927119589427258322919224346425931448729888093600940245001809222271804882685255119546669324155430098130521151542222542912236413848567065563087836480401879686737816626385268934656420150251305092610716944570657569963803749801306728292989345730635740404621332095676658900416920648441133106031186749942649474228116495438824637493625830921550067530950666912881733584017591982674430549787811396011308661051297894154207517538084730342150104168919306615683868936660746663813455278886301738326416191991997774949591377389287450299035371773907901399120179375922093652176870867982599848262542080481862209234006134452415835638842808269895555020234449613313183403268951133382147850686764304738208265693655617794375601985049865418136592180272459922813311795116395849804034864183455857200277384198152890415375682018600048100393873970052235989608599727965912757422932145294111410210847965070088817615598229237259871151941938955235111871369873371888329079013805102075339462410506078563548941999598121311841414274938367970489639550551362223513339543975033949882339622762069229296089222064142431454994765251778646482452530911646957179682853521058087280161724542338140110678083258438485079536975125756669044478572560014552825818978150241839180703306604747415154664956174119320068234754270131606795287094981491952842335288670599021443477187923130978074068022096370641875709848536506868522069595404831317296793458505115458945648142462968406628485833836223203233776348315649611817173861597250297931024264305339243692839696083281208854384044751341719209560176906281548969408824176786214021937819181316442844947245908553140671607801314400976739993552232156367076430510500853253663930643292259190120693031859568704558837575583147775108804150883072257145848405259237712815331046231447936166866855900609844099056389674593174937323094475270720775386905247623224979378614432906990641664134360866046988064891504650116925319966253993429386527224567264572556107084650898680659036048098808234016806405829174787313551186342927133243115853162551504321069995220855206994358715691223816501026942805172670442190631198983557870498512906333986899697827704577794963879369743515164776370973111652541266949508698031283130424335031445314961309506906659935765313587097935513151815291880454675777077405015408621580161353959110352394394837440077360189516316082155124931095940257937678759060324147387799273964563077181933612932626060423044872205503193817746874190437083597713277043286607123671770091190619862232383917254490004612025293558031023900718432386895757017148004514318526577967392674233708750162349368035254567905966659710537669444848513808719166212546360123255144398392528785407296718924302643541815750987616430376471672337985433678718012858554118553831602504861294418350176031005487899250316881970516096150186585438015556086542445925650068212327484305398805448134518012798337748843785316828547984685438602934900900220677271249740849377833085138137146517550629746786161868116842780321000156639199759485021069704037428435135928260496299747551554347521746607321459767040088079252120780495282891478491768345161553989022398322769074181771631833888733337774764679247915130806866733228031990365808512905247498071190488369372015599853585162277317499336448611840482020919726516674669356442500308354748829140616880401979095107405512762499144819196314326332297014686538304507716508807548488037536916504337813807850117216178932577500738297891275622647460100947760978426348860899124843265861185381738675690998996419323967369735615588220929288853165616624073117528812771024491544580833702671467513509669433331317480178556168765344184004004592295587763721391057021509120128600068529343193838099440671642960764020465970008876200567453951620048864807600125129947727819720983014732493111306754456895778103832086984788000813644726607933915754061692106867396578205113950722401923060350041145085998019212585097207942252631090292612343647379963566813197772087926912985751979765449816123045451417362717686601053857483813990724224942555873593584493162762124138458961579636828220067241687883610652223354995499324827597459888850210062138380271436971242669366752536870736347892038676745322343343314784655105343937335264328350652205869903482727959473825097738947140346174723774727959216376430411716646448565843063630917955549609231656682876388523511634499193510386520363291308766529764315812743984808937906554306875589254287563503962911910068096786696841194367351878154353722112815900185382332776880698029490683116106289338299446287484148180939592597923581603826850227963597401215420639392999947832908820219616044525193000549707085579887265085790842167007033701287864925132380701508263791756569293340117634647046688007518209945037237557732113068112410293354284134265703186681814548411648536071071370173550242006188790158855154513580760134319492332638028658839720738598196010145311266936075643757953055934990469762819379991209533623591254195556894928796244738445522509062898914488251256279228678846427082271433864778297481992546421739347291913733463753940396652257034126481171122968320239711641083425813842196985944713731145345274014604951081718206971309302030590026079490930404652493188550401011864684811139455263747817686169505560401645308221464640991111002087259767380882167998277659911260602926219634332234535211374146405765679349966813460415385051576101482196990884275942780126919786623624093970643530634585496045276170184615556746849479902103811842718898232680206054519360958893647163961503522414134287494961786990548090514562015457061771323661691981535004372676400993873700082405246549984478216167382321448400715181602139973121719761718397571351187584262389687724597941202868014947323776452645927004491599356926585882745682155549702924128823106961885409556116293527112671956808854345477952958805043353553689271479587155783633015859437670223984488431822982578548461712263920672390709920293827922717137918851159959223736604241751870834361865339542174319717700833016504239532132698480995617648559237251059666291113652184562235540074063172028897581480468057632608089795786184781154191423945108621386669460940237838814220257597330175335282026191986023878421886278693036595507471629359895826995404747066795284245155263298528953456403931631523136226202247708092599622095729121693068110648475198650515830849351196688255752393407742631136338059368250999071150446368959307829333375509959169156997324639520739908977125808520321198769283597337400264906011705816594856618271723981436229384477685087132435575205184875202426057660160120494452600668394345362011024815761905649961545420480981254897041839913295231534054701801633180206865893710495482392842719333930304719707940160865333807210852849854113217220918500575488755924029557482837717855123768062496319561313152817267601837766291141654422585226107885491996281153576305422206541676227170030349872068983229309083626521449776838248185582901481114640479010473234270771168526349758503248682570521065210965681095263343172000225652866365037416751052030524258296605305811571816764276497052811933718086899861867623838065312797475432616818072481343171504265422563123624162140887672716481182139231914493945971725872580070180474381327033400244787383221045862887438766860237247687648163884115290167992125624874476952912545742784579961511854591648386291234177399105436204611914019932372795026275866004964409392040415819030442417267353125930578510913943626142638336382757557364515545579407249451350255501318601958558351504254787412563652898916761124489625048120677935821131765428848105946053391770836491833717790591703611272875949180666174169321805659293278980713491275871795225774081988658528195571736807053616373436465959957957094931176587632849847700390931336212487064598867501595527829668957136466672986971988703547835133794757845897920190392885538290831548594796937187868982213434289546043412726893831912643848774251318182163893881300517660756110757758642684704485780351049765497685801020159209636615344547331939938470574779019445345332515033145331162384307472291500098806937930635989668752553187292179053711714522220854022491210498283282062117177539596184666321424873932090016096177668482539752433148886050975868021222975698690576414380739191780469592578433720360054640203732541024452700293416440983713278759148101487018371397528427072916221250505856777070021911232179996881533507469984096173530677104478233695041478123147869680503642044823209133966662579725006477111321012992590557018781160077525013611401502132253587872949662661606294786749512837634749550091263715472406484253279349077512710953897344120730865714650603138988300078110731491398000245777391716470810130778003066124772156225674621539843200326405657878603515820850234835628289156778236299161986710060726958492574000328380960587544887085839108970362456279144212588407692218271506234627835911453618038030761923242266624575757423768017444909143146673843901056820479795534312212964313498453505558462359483818454597228561272915110519732942687046995290625098401097897283311532215574696804230890242524676201432833529524830521513932480426243333731191452213494756689108667349521362488933723383356974963301062821376625028262271661723606200729041446813491521006051353354356940139589829692162826294448918329854911174257811899304152058665248628950522773518285616902416679014308432620175748250575506874222516079645292851438722377989266947590777913917678050072755154107375108943766960729387364999114725178351663758383003867739486042551322355038131661768470600664720429489380676233995407934104209626578418477897084580841612880499620502264196993584671856600206805772843578920164218870844683195005047350888588702264102386750652005216361316440134717094572612417742470824834713644004860403245867644778707119733061775254861007835176954062808216233068311780071864860790341640069933834874978586992475772481702253882350055129285881881083185475625443006867509034970932017309684538022114785200783351069766164906813490989773438070522943353392048364337933432097578915351432911431484910035470041482940337539171081383053998127746327277924786612339136149535720396694600056144771944644430429090547613901541174959458865409559928657845045636430382788492009026226313493297234777292410224217298175259327838885831285406777445692578003740857335841352188960304498131752230313792087188509134196826578951210046428375167918557232345408667677192295159698735534442255694603177817702499335208743810722435634241756132662604076802014716974353178396657867159309539366124933661424751608293691642766177412832778835717938349349222312983822584741406666485956312125642562407280814442295480712385195470116250941218830968945339765434570813689402309385879159420528261571447482654430956042744149926470781467981671495225493266894466944155017821716218210900446600858029077173659900306019941121585774780612650173890153206870717947785531665561111547592010526322293945203287645316227545925834347561988500369479145924885781699249108518612686590198025955697280124824056573092278115288306482724418764576278164222437303899831003736859808878262878446282323309086725461765364458967903220748574029729652625193295464854940508886739113646595707496358426905019838726245131025810672461719302522048806510620894241122286091289999403986794707222363385450726493789432120677937357580344677530343149391139586154468944429772369110686345262430765496766304600163320650184264645513409040241047311007579666847352236063240745650973856675050671165896996159007576506834185395954110951569548295262015908650074208058262166050207874439474422383598115472106716886560476767525345370784602513484686623928990110541526286149905230684240066940123829406712098718012753635135670187152017106292339455844663838779348245592028907152470645049056228603636201296684843301756534340800243987253212186333046000631090904156400368084465092397014298527155368025752923054786480856921539155508484424046192966494744815807389733856016393909267414085451388915178851836437947445211886623154845034657622679103160538081875896804790687522357685121177263776641562891936266922245189267904574378530600883755663977039906660556930949576558915987130831551486879998089739111878373963488688666427472509574144620543547816175980533472922768079619330636863355593527426296431696105419736644450257662727327401963308792078232595031722354897814176471159065938906423320662641639758644954116854666958807898295200418685834878705898591964417878138563263002689788263462361459240663955189505411983283561894783070047622360195931354515130059174464977655282111558494815711379159116810297856535607669719459319943258211709518374604681234535898788295919906164954448679067301984700501261212738245783770737003676132877874593552516924891679934869282255882752388168331490679186864040030481386654082683110648455194116983271661243969981019848205926469753030361552686916256277948110447668048477794268074099789648119619768991895856524524161147161186095203506772948398155786266883133801659814197460152864828159001101531547000681125503837464142934395924439348047314818299213465542951489015210781526310369857320576805521605402710731993680110720893858514621761811243152579385079926315001186716488017377404714437450263540181926524952878884110083724899233983779578555457179784337470545416201912516602991439846236023600209720460903774771754381758869080062008031437529324369151569773784486961265893620942540331385346744452618236272260620493469188493198320765041145634885341322045227298620846196712533286805332019658644763961285379624809259517666573980289636689789746827799569320940934379616672074764694866047377022034741727814936219386509639511794318461607498901237309583978533376076157137334427550379231880683292473370641955135885067564994812859649222952063217010102449326840452601747716906073520933968966860430240157911586418020744169015166003747878536305065515877911413035671206437302231102372307477584181300570082502671032081427563697753945248478843562635528692656186781382563661624981431919316501934925098513124297153802405414526118543957353670093845811520374984386316706325227289308699195594866678012845200054355981630796439152556622148975176699908678004827348714357269219668606027558871764623991961492360767689586261313853281945127425414567260161169518173325347700049997331081155952640053252621394319645219177141138827409316319140431970381812588294480213791209790291345369098336549860783601351986009180712551757081304437821079573662005970233168167310182347189210407605574213997981532339913461568915765793030631306847823817677563049809842022658388931614042836795213634970827667930830518596029550969793320440775967460489538405365839440727580662329153428062450857487373958597856365317599252432430841492513708217944887674606498441202422673520267745613316379836638144671879535261008746348669285373439259890025482914370588367371850530903243867342089539469249943517530982662586475956238036643933837436019662103989595542596203309162090481112725624917981719573425006428137262255527898149157188260927391276758251380085444200680707873208233755558601856740357929729675266857940131824213448010285974804698939351150568967868899016928352940668844926908192559639756955414615646820920740794630398942212289620873371385906171910099195256239380095032717107699769511340244046015211215975313763043196201497697057578617660580749640118685425907981702779696975641208735809308162345603284466396463202795013508856354794383531962588472882899242653983127325008172687207401721586404161916070126086469806609204768365448667777069783318874783367202044470517516799436757823583059594304938409085800964582545536249301838655934764247622543409599420568856696239058242802532308126856778060848862404706850099953403889289792603572609495425530982477921650057901698589333959767531441074201855878586496072807505836970730521215096703083580350674468198503446786399758191560528652753672067068700743425420540648330453133127435313757749554011627913841032307340169978631837965096634151705445100818724396213630107183564183016281355693729250619583510276582279321507586745031073029871412798567882377582536064539407693281022749444156124566558247578402060528034549153328092133608086431527989702655540065552820036785384134189084577124212620654625774671315102082712790748300555947553733318960273123308108328102515440891650973592732421976268592500965215295651597399184511432173470830053786664836609070744565373702781725933966149163478927920684462245830521996778206689429139175007806212300479045873338927479922726059148882299160108168851015688716196428249421398343739716527817469153625340735795242912148274306996816327521522052950373984997091651392502365971291808011501460552593739357313509110074603414608165656948931495002586482105867460391427686199053503188944998802482899903433757317480974566146986217957665251500630611740592499750755478368805816334586552816486710897129207557376059471366958616143166515675985924400933711758908308923877345731048619396639217861912336303994350481356774003724052359004587493789742353665322847224578598148530856982513044649342052397951387517413286319283715737972829647531040005650382020535954784179525079602564882429375585945217927819856190270539725371697221748133167544909419201496824936701420798980467496286792155843646785360284075805422737041708074975171920374325431719382311185479191211009647939200609856108425824843507511762735234598549357978552584374937043564454596145366816552410588342908772878680823048171228539489189537264027441392001267189880094088976091798480068724091575288935171762591844703995915096549221248103377614809043981560599632125895615497640922459678446843692585766782989879238087094604300515049126241917227482876619016868016737285514198329276082848927535762613998333166392815777139090915956558268500796890453600830522095101322611932392476847581078198502216830827697879044068863983798732015206468261705185455229799649323129923089646507749357163284266368469621363958587666296179924047577385401565451659881755536073401808137459345107932627421979322180773644769554232412547070099608852331781564216232910780807906746883590602007608214155483179958048068770897794162142635503366214620244539644223034443760666418783507377690582080321284013315703538361444784848755392961364481921876759099496568007361044877610209850080031942157177588599824698331954314197769295064330707487203006565384640941171953723610704384514939565882497811613034432609848055994262960682037844680395646317682401018762370308099006085302641455507901852175221782807503884217113310552502006090961047071674095099570259421042007314876951446303803421452303926230964157664601843744011279174119280962040240529286200410035859194562554511976464257713229015736192024396416483990017249719897659163887344907360672049587908605902265217624605826924267266352922350283088942931678862718929435170101996527358651503692616849757644628627695039831389701497197184425648824090187185178800819686070664136669031496089024167418014453236402930401420656078286075597100684786638311238587356443533307265229360190806024329519362964174962961885930328417606625066193293599341573525781911272174761370803702989244359258631462034325815423487698108198082112463273311411583979953161976182848006400267921175255603035901304909093075766672653689063652966728487397765302927148617124814688416512346884795494443514497525131478197572628578550586028822681952457694816031822030624427378692044265390634645333419921773914596997003090776288701044093508341248296451070820995424820663388346491512759913835018227339798920854252895991293417744914086425328484828368076877321110573972522121177277436864678587247318715349586149625393724092401422966643774373422438432530630372735129145281543116434539956504298503013349431664509665778311408458055106998552838828145892390631747806852701041331520416035490792092206599436643806874160107791153713236861301194232121995410345480624867686723177084504145655633778992805901294955612152599518326255052873225788853309186668388044978388589463971831534760631628897154146072115018531629516972084173441431521623559763832564818141575980843639707032080277443398221903751557813644877368664607132804185082879866494468045020875220179456447081004036050939362254121003940093788448793561696145167344360001900576745577166223126626396584599266580815621969793098865851152261207928847044928396226938497912790812107119078805384303154073914803397041198413947079906076194839233823461987611044038837911620917662406899991721986904401366687444321255408851104668974515199536883876591314418731593936213743566866124689919062992641096798056049798198463181504460819285223010642301195746425047329491136273141478357980708707564314669306449601238196889050782024693070759915090754401158885149588208462116540637100619646574436594910955867625172787285561757551244926962958087158354488947686379536023156417547297069112488748116134964968555884742546196902297729944565532731070574657594707786959476931550208019207171050798257511995409860529286252760688702757418547058875485427203014541650974705934331842606581628801169928859164066941617549398178275365534426336034812118250118730630097266399574610613446699903604205371723346625399143365271394684870221373010263669889225297043035863511353178294862136481508124716894279301083323838984414606452610488135202076308632901836171222551829976064620798533231995263014546497748518851856116176648690433689071579830253535637543220576778083924545445843760825171567238168231824187535499006539891361912414385381864866184686217189988945920979273921129046177262953353665434814657860054296924572095863189993891365267468189296696850436170006708422504438179235012212317840695674353778646224766396317893606557343286857528002819504017965317577943829049148128374745020251158117733687786340936366683532440736429262233102209390999866851498805638701218905930408152484805021038115831411068543844745757173614618962630030621487876220211694816678545801729326475298364270096345789432263182592766841777864111261592187852248862974303537326181695859918738417088347285784538619538599024219733674304950749272916238736338679666587318858120644341301792151628391191774901564359922418754037111797480968627613677153305071990234156739659385414952152899049893549357706280124167188033731473757634295304316632824505018618897791627876794208644285214374963596541357218432196594908785530057655087872408906259260849883497302620214878499674351847396939221381707053940650988766550347572143311655100075451512418409736218540067101382132799981752910407212188821674470861507608167753289058732952112629246392793417511735204128715400697137823799844480818720268556145362902946817996325927972252984953790712805029482329081130303366620999588745720656797115535146554176933874837797458477522920693932085762302337797955149218257298370319284887843743826522738935276087305492880983598898429417242434021480345338769313477704763033799785654710932819189182594137468847997866550234171385429081030553895086242481185890935938906824433991850719340355380385660188730253064051950554119483450722706602663891367930672221765517972431097575120055625893118582782773574685115716251840388026384414894916750874725267732563370419064358975658754598622913710642823288760793546500269464036977528976627682589534752868052346534240638495499341357696693627834455714960067277630910058481564410093615689107840611003988770138590745966182030383039551685682726839593707677820779924833321286605920275938726196436698778228307549547110915218494583577994122597657014666791846735790172994205354824482091156098272150204748788539562365802626765546748040274117588888710189132371549845172024153325217325763685109246050689546363088458611950738456730543086844872183137615936102879010294920375763801821382263200204492526465418594751617128104372531642933990202314835966023539153982709630503749229731106659135462655425582715676600797486692830322489292249179613658148386197333369567451038879390781993428782436312873900384741734164225412031468082555082148664334533281891353903040600255582224709726298716870537893230418062031751829959331842761187372025988115426574684544954905261671187048403336647891601810646125435637763275162409787031194741844941072241599282618457850148689924018797557427408351928925125606227988899803105492244630720134379950505634288154393310841743502667194119504744922792881762730770763906069829485493013546589867017044096896628157393194079141551780103370274315051876748918916064389630515013171942444469360752057035454542625300513054409928031195399905004858415562122854964615471337502382360987579436351237332176948592746477897300994614291417490798882262293697239279770478616750090124187146706651033486094250365532846738311092125406333280479228269402629613110095165919049788064697382023074604043441793380624680719963440655090361766668280521205590524874451156811300490202407620232563900085742344127560144096243257388546469073891304706705002838335487458688868734891056218286090448132773755397939801741200010125749778233437857245194584354893186364044268592524576378745794896646026494873306321193821927901068293708690798282334623480264275089746561857082200599271196777312930744185135247714967791754737618094872793216775414404905267873057345195929581252997726908901962255927481102827712855716227904915247550779567653246884236712963028442196798805403141014445877797175367856580522660795190582993569474261722116773803126688379935617924560737375271558490063238859150028070842733477361191519875460378496330820852669634088514691298993696377861946101950138700081739552126653686056773923587565997366784633488408336168303850687720866938818687807042330858879138364952190238810778786612935505582660775861850822952747444412803024460872257618217531965613299532288894885276502225276267291318293357299527485029407920267985112763405489774668042611692894064175920504203815708005287168702308213574365961111968180625070390134826651840588217068863342259546289695001116705996761394715804331649256397446142940611323603019502658564404629219444719595711926301295796610579431956665792965545325570849413273915246131448426638344199625175711497652513107449754464134900988660216560194306527898894655511163083959904134915597838582983299055528291708132525644717591599026297454687186826769131257159631980927493517418299231713461582631355059531057223401639443712072615261842079356990608538753224853399921667457294151777896455494966194349687034271982759541407733663440914804462180895700125306987421029360623251953857164132206187854927402223748554140714550067538938301559797177233739901639398460413642642161552726235396192306527168281518553302574623819508802797072951385422787149019415876530063107940916703434117064152504897737918433415555903918169198682251179332859253710413439947510333935767220742670839280476428581261064574961487982952194775201554361099965055019397191653052196538941400824672928732178916200721557366075931385646688221962893477994753454955320697955320702614292273316974832752114113958286524377281916964356580952036968785358123013986884446875095944909288560535703468639567235777682122962894763241244380181554902221675230143361724100250464283050264276647950417171990275591985536474406734126192572609885352334712093137869886718209698274506108027548236776286241401668597593026711079729031423772011231065155769169796426883573995308296864848213366058869695293783258225054829987162209374604601080672087402820838649932905326096084706407548761355374938457987279206666916302396512263143576872760775106468707349857279757394398151370833217861462219356739484995973848885311994140786815512152178381723793078645683557095778947179620126771282808967519905953076892602804266753220794773758346378399676150077970824042500265957278728559811073212330427202246087450941455247695262284801781306763969619501353889912533317575002516321083676777025776573326044368505669700097343184007786352476154391292201287309622650116777476008155669883362730133727690219863716253916935385037093700950934867641078833086203784772673391549489270269636703633744250156788086866071962534101737609655864702096496384341696070453032277613208037632708486160773544807953422775097855857060045393993484766785824282406320566468396955372199177278970432894373926612579306427929235609761227551414715580666616609605552253994621747306206259745841317858205836153296780563391545145373274293226739985081718594742808438979409815121046686108509185720074710906075649099418264064261505326814075442042642974428418571823658598202835232606124267309189121111293412500987636013249059566965230428362333329669769203366515739274864544807337277004560456660078458550492298066759334865193931690973958465624576087719905716595507968533950115455068430208057530126046465251427353980654106540934978775657241595091369360489754127698251910265086133097559964577132227767045923455771329169173746260224908277931412044451664335403077805489308819550120255067572614818474859079598936358681383061679006936702161604663802146031966399183169912072645830048962986856299025665994298155779963895969789964276202430922261205745234491806838519359525430219727566219205451360150455547163758467091294025943215560002908738381077860259849922394842442021274996033369167786230670983617055327245706493961580746387675295893017115157392434614210732095910020502705979316706097267782611467154874759848904487541700251687967414272507582484275449456172845391221621133117717362715423764954019643179433976284997000289401729749933496959049907915917071522953910036639602092804332849678754221539942144697931479212704738020786250262140947447412473472466225891287197429125346435894496793937981632095821194002055069739135943594621604454657757463870504630164941459875193323669998203164064494848031710839808349279100458443150179496079070553004005128919990174936973335526712420413484055644738678224457676516928036200635340945982991809663240526061934805811806945415674086458348679904214281032134185991067407646655416918585187019090579073015193531141291658025479658114233358030544782831873602549411028254277347659425183984904420273383186107041743406679156715493104721312254434160208273703442418991603612195585356255136835451906160487314959808424420928356551747734037655831178175913168760442265241511207269669231886334175124303359411476610848076762469278809096435195735449831395239109249374990728574519569991694854232922602138022227441780989863398554973164063036108591603499105276426814217514496965508282449509013218931033969457065343696860706535548534162730386807869565078458375313937677022494176912096586953857256461527135402454688080803182390985060037306627659100248438121323430195503554907784342975286137525262480943397173908881880055195332937041060084845116606633931183496414161870306392095705316953089603004359253002545784041799522053379949561768450707022914053609819425444716154417117808682786425839324092671623154529549716357904947984900832740375863698221218840046631992749144368771320017559977736220771394664250050024918590306303638735536345815309209195467183836200855950555218984601318843713853372284996454805093369649088615302015740222879539620811852260597946123536713466099168474208972726431426010068554183163625246980973960316739799008708683414088766568283338400370433532697028484591724516019315429577794134846554337947124531295258047502201676872321371057646643094205364150890543043193969246996509247913962724162999913308400255186071498216966419062734865786464911849800960040410105575541823036590724014615551212047576971181936341866337027128247126761113346413604452216829682656635403555859360476686412331632564608900953922280045507175184015398086416848875135069942713122071633783857295290373432452056372538767091870553316540869452594257811907189979051836939176811391906612024999835723155710419876913536588650220803909712787752051860582917789638164043480466182275065328430058286296779026726133068698737443075030175255347504116674142167221242294038353267315991631233402980623368510608469105889446379856883457626461866148574132991985237247343026435268678316482190091503844711500020984108926245375738848802603808994328464805172223639447344702307913020934193625997848350235979366242858988496049970445677956578534368692471190253068075227337491737372646795863023380677037490390294243733489379413544506155398656267365486828528477791816362663092074737470213470163505865163990658729810223125955609368616169622734487739528022298264636111926155249401487627427894224425551488504453602211526005653307889075774982839665093643394622328361799654762322511166406270187326701756022090468880128083074247947730641093346495987107757170868365000029865254269365681761408334645747614269443385317007767277696287988652765170802383629872565580695672147104028647160479502140431511769677599490613033796931986235600420422632731538922351807872825763663416742526293142483205972385477129178020809960938979825109732479272496547773111583074589121067485618135190443657043746437888008296359830829794624106012382654017749062755127740179499308671641051329200437512429900755390286049264393507475906241942625414858579951669451616548176906666758925814039775408734392619318463687797441902203248170528512957590503449825530131945229801162170320783838070413811187139207640412907613389647301999825867739668004986103344787709244444776549800599156236834421373410659105391670683964616721131591094099315809798828113191111790125810715810549669191332685559549186737253597014287018858206868534937900284391312952063309106016604481574051706712237059301858584195189113410477768271172025853875980274746507011416617823600577136587666182024267138169936464118486495582041488584916079335300979893968061357246662626967721232498444649196609177052568202412632686400189660543109616262274993175902706830247312612490545996920106835291806182965192302327618227090631417888063495896542356378653072502340848183754639498772635719290413356801663378560571587514026928200034689460228609105077088938130138410983704811410878254079572763018912525368331098746108232820352828233876771965803218344278528117013898737731807644145448477826999807561896577791531710026597004584085178965868646959564238754282826133448263236006722635401535979245993155839315821118271865734405385907602868185861815554355749945201662919249805700098084211440522839328614921590928454250624528262758440901766739106929388243104759591606444096726921659270732604337589109188116581010997398060067646066730553972511240883189376726266220387720858563908006588797112001554173741207205977440121927688705026397902949268639328987575993209947118817063771687304541197357883910441201364445666154533616346287524178464470301573144763710755488824019330716118660276171900886380496561695069245362281408437324472952542790266257595910758049881064584982442592375196236869184031194929003576518515154096807961032743690703548181628785514508508209647831846575260912482806412193315749002908733283779739823708676721767654940713126809602082014013102446774698545332194641987425514280656874107185649003284690733317976624028921190289961233268009143050451106464294773762431576756364578710499490306313662307773987603596708586068352826577666544195767314713720653644809015705584566955535027192679837104669498971192339465231858078438357963359212815483141672263533111532835192816918520945236773049575359188460420393274617401385584776520239290705402392025653425339678605911236833725893485307309965186781675534467162091395792300709567383572841249634524377536720947477862090809091994545286694655460787768220806875033369611366074968873675107585898287529819891562210494125476268949843464983722518960665579794939484252642811730032168715969861754598081979688477907843846498758777582467655385138487694002309400288665806027641269021910420082495418798686539508821082852097564160473387093870516124806433911488335653898248709576826011886318858560139974984271159258382029200170204267012291504208794326035048828547582555210467183558069282559189674923405435434889827854127924888447122087195799670222192376625676879438532958928151249563990824403605575078644416330327115952522294416939307829125761535148591122422870107219277722689982773394049593503459124772523969150702374204692598582703641367381006517244033330136680475087738656368110654564219587449981565073116451589122517919272988923911104852979090167051479652661997657030695559378668811118114351697102046504585756302280927441880915156799809198054781220953793887230438818088561257373967632036697940658573999320473020792508899237277277195804872713141816353317817344405650794434238348914734560434316470071991452468526360835902688503389173844751971969698799613748520414839368005551109827580725703012663236462777643542911018512267962921774284050752154960802747120584755874703319990497585591162420830677177572220091684211561253944566896294852430945904717227018130747194414021504661688423203945146790089476664638125260947610730211115799422497676509800577042288000493390393577069118665280574150459927905859324241168466901219588848393736156460969972651678594194210620683778277109380578362492964209231874775720610594196429739470279737819781214819989468285589135100823379965225570787344173764311706435163691662510694345864382646023707372339892773882016226001682352581351036562454030727043184401498317204040394644026535344277542924396939960803937997180386541229349394164631433534739330524913367074654285691180200129084933636350577274295957216560192847685384468687320648919376189259751408260340320931339877376651974654310098752655630322640964926842138695019035947876346534168955860644307582126976138817746288457006581293571983197065301474723829845203909927504293404153057365248342376258585698008145180578450828464304987873941894197536166805138926757432108213720376344513656645229416720780543198428229077429339323437696345067962142583816948035780658747893795370756090902543113389777422673498682351620191386025079069805929513544094827006037206950483950231568788875105492757285340479187322330109239208470739513520820639656649344576340117063203907599946335122878609078876976296979053328776612156572528054557374605180649670486079669674428247158290052644389622819875885874681183413492524365227202798075702197995537081363747085044319767801551264644073656464540009415853633069739169089038760537075311541386093529447500431620110053429944042358249280827615783211631339025777722893995804278300333695747091071673811575948882892697859238367306502076424331911681024028417429914898874207221577230074516021984935339080048787385355501227951088148649009717233180401540720967870715454932377083240896666929083140772222417034837215305169458966962222989828206836032576406114098616064045920849115618372008881278356476220747876586111658591881929697332943567423802583997901321556130978534699507075303671982294476805661905905014681885329486591288016474724024488249038288455243913963030160607550166534725321491138536735798002382480667151772729786561976155276383801773529506313011383027206180271026862030699140647609431436490415289408498536589341628398741018686942396999238697637009355215517698712104140340953245670265360669970926299285107814634894870052485841723706728564121865881385175095073153167862007235578161937571298712464769418047474985657644518422635316987284971774163963615293841166381223589467511954484026791512907724595274617623676394542101540139172851094812050250315066302193053464525826092353022534144963265382526817078483615900946537908883588156352507203965753842088317106296591559071734674354790388461118094982340822658095462690729320637115816951701442773017328854921426171456359433475878204154192475213128922314424871287093663988979049694206023542159060980298887524406415483818476991171177533376283160344045954484616794003008058417545354436470208125828641034328339629162778005841509882111005904735937994158631459851014104657373730447188314676506067152957665152381723198308635774042190932035690582534333932208722171847248307285422457310146047464502973816180692070101008565642995335044571732189754455099789183773535144453341948647159081718528611068449607230937861294945662171512320285414894992956686873083687808538247048703684218842155859856397302104695364305394389498960607188392627568187164285495493102958049486839802228803494488672817158540728968530766253451707817496756835917864587540478788897859453413882356700268363061472491573791087921259348882175659146153247284900865325143292914815540274351877971134382308098018760605793571589125637020394357173202293580684292386013355514360053620829708011736245506032307735919971921790766274990798695522317137518856484799250491951870334663756644221649526430044734797382931739618828333298329303974462457736980208106158223630822973803682755008948509452301360825024333560686679532673031513566957232017404231961762323127598959959531736988021490827081667699441230716551891358252127372161932775325069863246330235131022752395576578864775057525125974225215520249039891886510851226954282568933544760444788682965108255560584833127689274935796602587356116469991340508853585333579855927664063367824112169355949736317611945913185620197369916256983591224544853530774639358501254925785389149055538925747728707775575786296327283879416883718372636321196093927478434146128243106809021579037665469613226045553023313133119413517833421241575329805148378483644947986532223017662076773277616314374497093508227045000768684178542341190937236048025965132254255984667426341517758532712980832223434506481216420018290908407214531008593612344022754053094846884547677400485830545940604215781115969535186520473374761140785114072859414319826173968276917121794377290579414713608923854299664882154380783044219613036410821707364954449293620698048300990890780710070734235605801235348358910834291118240097330405659894775385273417902422063867379318420103250492140146086897842001524953424258543579347615340030475589149313722535267834928223956155293452571007091227944224366120598867160827443378081676168375361299173834807411270905630244503157432495973598294649260063015966732491411962591087897504083663575924097645767031841769707689422002098775864530312229510883769624682926840848643782842862070276288036040091303666892089566699176310753407774551926743467621869202766617436703644544709361172509673256138575965440661985194819621704592900854818636277064816570313831525368569921815195405873255570077501319743724936878942950715683980199174576853127365683776161971225317441616839899320922892806467301523104548127270197488773214213006216761887072153514112041259826005556011257542162767400398730268125577863199661459623839269225235845615545285152307568631977071398933073367544289391346746920674253929419818807871495400416658840713845911468861606279841994216209028297345195776789565016833344615834789117185050733631153006485613059124324834065034947247927620471913186515146882269550173777531363125748257344310740607420767781411961453986037433546037356884776505957404390408062820197834447031577086316797460874398928641281952544847934552775587083865847506021571811486701958831055874261239173098884326776426467818522747157918541019180993928457815260004747784401494207474925024829066267139065936975695587961543200412154195915231452082074322047526276909312150844238119321166009024072120858299751801404348012645136113540393073806142239697679599582465050351473422274859825177061018929642634528993525199572517673211718343406452324905845242359609132340704815909863260300314256515795430420252474408580824138182397614608101898951109295026937962477816801207341715339959936023719744239193645985631151583308320017469511602613086836126537657252625332757252911384384342770606656666421222205775079570216574301002286684117313539573677076972624592435877952719681193130596317273645143142356433136377435210139723018972160125352229862533544727616294672802062106216916587417359701872157781834291139896698820069275424936223141733779688775806541811352053399106630414113372280902090144390774498921795404050953272505809083832649875274123509729387229428435917423245440760395517455436373598183113633953251699708100351123813969455975760018423017488649308098215825403806663811438322825258007450590639119336513900841163038746790193528354551371381677054199157006151617596176810163853347110546802708709775398954047461921405015127005969182543187044085543383811995620216943694758544204793258162049569653188589642148480182408868049508680818054072022939342567281060506627346643493504191726242873932699051341276948592129149184108497968547728738562578823412733467539512803075630222419183563897008011583169015558018083417307570614012312744978658954170001728120371081140191990307250681934147355755511427694067065383585608895237421530767900946247088909888906504628227560751132900302993262487117574428837378301143133191692590659928164429842244931124618850975487978623509853635324714049237774592239094977369800794175504784225281337621508676847249794934291696975978165894652382753950012497072154974011978822533187331923425904179329525407683803489709612696246738985464054426478478104090475652283839144003628519945158188494313148754417945505130643353553362214699970197984463462096038222002437304512656924806183499393926482774372100249834709643175155296865890181269569388571764405907536123641140489541612520151366313050064016610793005192603282142765808269994605062250509299514596503565278274605385164886275720894638972015397745415533956809656142709338103062128250450345665744491378153617241263644722231584253717327789185639177729199529531627332641999043587016889856527100495292277286441322114584726173406851570031246273059557464200231421234117960007066723235299201113589675081551570381782042178408695544275427563265484353181288056863556238993974656028902616795732572727861886204787943332678193092645155877330435569506672446801137997375408357315371002669532683343668737043755550717422504542287159766112945731685307737967702849763699636354651147748265703427050245598378147561614511412718287427964671599992793223309149758291287171182166728336632910826781396716850740679067263985454418336746228782438994650767279205061597900477669209100205800727062029153047852292718634837319818855462221135652191664158359294128811806205967996357258264582947499384932132389634615317840478817503994715232511203399504755096366606740873853541888062752173624198872395157235531819532633776401723020167522679396631182560901883553826700033634234038138696003136573568921402183254810184072335436315715299016217730528312131849279424890323570477053665373817051102135059655083001256018421424479945570308742446389712543612882003525092414288097993017267005954480868703984602622116708139599448259197072967073406489641338671950773525110297685043568629861804586660647609205198814608241351057997376823577959281359994585408059617609757717543707817810040222099417001280556413720162059989883906105882228945040673143340201767046198971400622441793247056964912728082964505994132895933030369561863882523254788085900351642835207258835128518513872294693486725069101907232105951481342067586925736210110485449172892815002706202233682870942239216110569813386088920612302415985177247860448018499860801112709455244621710974749433141158860405130172180694056778772729945549684326497204212689629694807745694928909778496495902023493835266871541346174613326229243696364984255111557205990262656539043451693283073443998634020027794095710445225970318328506491060695223367096303961441233431146067671407524256521676386419870407227806291203309642720543037450505281507999813470755385045568733238959737303835351483673507052385089243537640750387508220518429525426895897076464648149296824707178632106673247436088768078152110761541806847677089059165610301855315799992698970391007053163231228706949999747967708597081057969113128856687564245846712953711700485134359305252282732989785377396648538692745260881199652010246106688545319695709300488991379638756639836896268811509875606918526831456557788270585790681308505743171820240838543591378257822039343537407227224699879440521332159454655000048479612858979863531606655502677645464191274490095275757002144296540750462691233474763118507133310821050097793909734185153256079655063834850793429217621299859360870763116837701854972394068065349850354139356570985012657481959458468315305182044524215010141043222656096665989560591300141325324281677069239878031165995801933702526599499374073849913125172427365426071187717734551263633978833142648782977013267889837859102416945560754931751908302675845014803833672645650613215596560172514368876452623031470021697194966625977320501906510906744916308147578520084963413616631739822817571149431407417604587481887045525163497997676517906150834207030592731028456519576317719278826943684126063219758026478187945247348855228268526292618244171206473062173510674443080117603169469915579922711471243379225659267719465917405453411951465480484117075367968123984492100283719890728288305893053667464299314126269850715258409533977547296332804206788003151409445561943791456866246697900629681758963969248378436918913214763824945380360490220573248785930058443570156362468213380553462138714005942846894759040115479393152283336928274039863015335680630330128311364997303856597058104375904395547564458281347520517428299911673274012419410509353751042927594630201026963516502264934627997067481872291662415218665939821331689674387652012290022826263643708548563112230370141484696661786804984009625808219142222036661606022907494620620880209004850279634416182953343761845956904963719415426041843686246368151297680016025972694045782700865954633143895859525893238832714013668694302454860348431850671921723268186232752268840322912426595442588973122583329321634621959496757116574561154831380290968756979284436902118650078645181433234830066420171506105703686651107469126776564674957991200303746224459919960789137931644986883276913060516944552697241606734479450088327063864296811495361950800523941243377160785823302051513034523367727295653566981347027715445088418811313696503618645119768948357526769379671354106264108226954214012387976658719515763503044532679475054635505377302593837352969012114339221912224539530103361245228869158319946864651897100431513848283262735833235037630788173623892225095226748485037493899174141100862533807877838314616780104314524832068365466445320569907639091165958579834420016302167164179898903086469867062369888263532732943966361806688299410057805160930138842659452537229323138961663764072327711330182648555068070951750559105600387650537164395344119208190582025050557084021808232414316238858368762771389382928550044862322392502667287963245502543861798436234172187018284249732160505605090690293531616881502420758013168034142001808768057320961799916592155808316494092742117448770822832772001180337334139317725769996503460432788328054230236385372161477791380945741337451154691869273258196649032493369739207943243508956749005425915149832824537907538690128155880153376121705218777653765110234223236372555990595650183106749419743230871322312416541405305477919195658997349184117665099580411835430639018348404652147193841781528091974053307515007228454270522533255843419871860781201374370055859203131833024440579388654336228329114838555092622090653310236864269716388161709603120066986871338948846746255606379305304843975129167231997754126593421510312158418345889589012761458847213525153984466368454173712484315578613137071892630785491788297760415038778080101319131354905523241305878191829075898895778230524396703279271454878091378424184660373054664862877730061844399684791836728980418595226422492260455763439801249569498771110983101567048092321260281841117435952590277269456194474122771376341611745353565902327621244865516396266850330425576638914614205240926035701967350785245468696018813370756382952425724328054507006502452714337866696414230996071425321453207535117035236723078997792515504294288513188890574602421832481096900514462301476598621124436684386843105766202746622187578144769562127584283025830206680286697915148885424020620624495325252846580502773727541629951830067322491839604599525573136379448784189463415602441028440923854862791837003700922913559709745450806680232739621803319924645483713844914755017909885265210006381841364940468329639256856742337671415450934418282660552161223259457386294544749869051416495662385317273573522339365242436261622887422902438463083522000908190948747614800070500900273636376212447453975991647424963950983814470053457205947305239515303302181469776628085763795175079128789686148585708603658834608679831481008175836888320561136972819104564206216953648796233246153501192083543043920946749496405302789536124090425244392689596809053048727791713038933617606873214766648444124693660981673697703383101049376143765395998646642298132863320428706924111568014379017889719696457878319326056472450042215919211819940633569479309927249294806614672377435422543635228970785122977524231737558204201524109380254319858430927288734694165175122610773340320254893716986640462115262712588816871868747364148471059790012816572489335143562285988395249556268728626898167912975240137582074955253409359348436326562747206606022080421124999125410885864133946656232260170140510992325613814439640278194323316824922470818321266890535800639126577193585162575638460455312530633211644193058998754860078318432804876367743899060493337552319493322837051451702604190517425765568992324101537521352906308999430122000354069033722405503756337656390847350394625784863486691697186485961654511429915588482039174977789350008796825033587091459009637629437877344159646971778387861147124817444355532156192718266480876613533827376507992584866794223083439946734498385459353810857199892973406067576361287858816699090978986763991724064714273653088152036537238078953086862845636300741452033676764189345656197883722077600865241436164455620314093850303991031114250942252459626837667705097029981598671127443220034257512815373311176745474833575555915328296044613679452216660192559955098832911238206608769429295664133220573129003876540272523924003970054547655652452142060377485721968530462924957231894828348613507542643776108903116920327394448205765808605114096690583961801662555719340972310254286599718218042349848858392619705318065630735423651206518704321839786907757103281852480109078345857886791519353776268988973182728431461306950765350804404919203731323332599715080006208727218290231270179543423088265348882252031199558920146097649383287077598250210555775758062207032662287168962557920841750520395933075868493543612475202099021067264589815853531572345215898938353579030935824301379843760522122462503410512909132952172109753764820910574286362386896341512250935950220220015063943177258218471980533110127139162139894059392809486078465490890033613204124363349508575528504476832226778352300038229302689972161951880206650693298091563555290421491665700203720643579848905217077815116947866436356383062013416026608398385512959414533357595216265378132617378952073142431973790953478754011070048788402471356792071031283355935269757403977799877687368794516838131312624460475608032264183651506266205798532584373844890774057831132006942888295676188808303677133647150171759919133595825117890025664671115765359014447468209541353006149622772442676203571923309964955696677737336142023325005173140416298513362097274071036379637113718567943253173809764827252026366421554546553317021179527179190956306228348398823391215247283537300100360316569570670324962878611130479582183377084822949959625002231339866906073098024239868980183023911757758511898511674374672354085322576430673057225303610491733018085760233595429496332331317298732860032848055323141174577737440489593811702643372099199601730778077594817351104497978926989796667483426532756580627877566237016983987601060954910104753983743274774415474439565096297246384929161703210143618504705746285792906124941880748243816328990829464796469292987280986614672534830764942158325656109748614640642154255130029827051742654810439249537989341899423104109290599997709561723642543344289191574194071813693818597212476714769223778207596252771370258848323354203101212161174878835215019004810380233545308720388120571573566393475587735455287968019816497602055716612472544549336892422550108154926803422433534048879418510184954302167551073832897357166670121428001717134759267565022728406658233665433737037765656351906690310296754447066785850898609560199050258848127485007629538624504179185064554213200263854102770441727977760510572739519006834217513806540335895867913993474011359068096038580684562432421814225467827744470860566143217513796206208913304044484613714636025171119210934019237840339651885702853906455341894101225614744504946192352318569466695012599995227632033829427523172534636429281256869619308856528825945086747971415475747608387182130056030624764771011229682546998079280585777711774859562800082100320790276720599778169949824475665419413824035797607272093743331945517633531752741496691162956760751286347743980264122971424698654578338561513015216937474520598549548017030718310764589313922316613942753281287048645157275282750289992701126397601969816229275962446163864593265447880122919587272036125060212312694676530380222154659388058232316933840012044254564365924775071319546261802935688797322103012769556229010174961985931660799637928715022430487718700690403828922015479173346939412222049003949344196677097295732876688332417436586042319767043748911454275217935493963103708347467796666490910856692756862922158737510085815360843782770894176116341670901233537346898063605357295363903083647311320855831893953419010181362579826719863152668016332788432058569494176309438043891959193227065624409341623078182287765637359610713104254635650123334221213217713886581500657328647195992290120527671204830558050087349745466348211138130681618012333158904451987188600981070933673762802821410704621087720497411400234101382158273473695171958753476092427378143201406180989064635503544186887251614085713519551999559421250950129266360746855073017156439426249003890893192032336658153786428866568621369867181464276753016980903556276653180452674355322680842942382525017159216798883476494924038833174439303351241000483387313343251560243037361573470653466118197909058885647898490462469451682944085247141942346225119546903106497471281871331755783962403309423178869791674226471651109968934105957039939579588348381266507148609177959485664549832664782921836485043487061188763985168798534103758963483647661657874679043520118477262280690689142336571314896056725836099903250080551223369068913968440559938627984419488052886792774062201117879904702519289398598865436554342974571684669428715386025981684883490909575815726869116468106869968738615699620727191875153431725070519611178796984889325060253861619679960445634455513028338522299604295623292426080598079858293336394061520169325571503276437933501141831859881933150346263478876400419779997446751503237733809859574008936316469563241207405063818873808854142303989760987898894204542055161634177030539052050270457414610583051470379150750886386942247603503454595957481492928050615835045235668710207596365418785442735232667030996104995277312505788440771446096315289043491223306192565596008853126061193264545666192057801544490929508580851239275165019153583088151781974481565241400571166580944488106481542799512592829109522080107262163243056904166932717755173349649362447828950008994044093915346324132973104037820498051328148606049426576987391502635307011090696972441150919946008562285719364143893500301279628971595036292141867610879055998919925690469002402873986407257715005933686516686877544168550517394136080587170988332228167955650168585743345894271078347616047932105950266342710295514545673782347786837116936498905471026523346093468382330140460015855758823928194890293756259821890804114452908716573748769213631895081185470395481530192095824404597474205909316170857237296867175197423287175736371170473630031775885496268907264959529928110889423308969053990784774248449938339625341720992922537997476732878886951425278297060421420511005772329963678853830776194816661101691888876923479749521189348756924575989389590511428914865958903829629703420975369768501362699311481792379971737029561961851235551739471425068872809854273215348255545655120550597552506639680118061194715776395859431826061962396261718454840255690505010607215207851122886553305927768894721389308945298856760948492045293336247812614312185289971843510745031739072459438992585443071553050162888650514457339800815689953619254320199866340084429755851910033736688021096932970032435671694459782578045256450033855301497250122611309325221185643831727336842692145492462768390440358376302461563214199298560976783509033051136378613647852573941001367635541148648712278581761307142335955654806096970145571915679078126079000703218890074711652988993437930933821201729021369614806965370740062666142865857321196204857018856125270643326845088233769018678743526065475775543385076599932384692091797528179592918028082409667445122393523123961416193580937996944628816116484137282885629664761321060000061033080422361147890960145215837989079018331709499946733219083283388134296712002144338753149410516848843205935259360252599965359236878868296961364159562261849014464973401012361947862304259103366722044834700797284280503956488172452794452842481319163156029637976397700664257284905449373109813172339429595004781839346056388030574629907854802278533394778386179067215207097267108019141063742245005748455405619728893154159771832036647104486203466450912531649938466501760390386551999481895174013994714227219977522873398507959249125541685574294652488294152525154353752719842578550065040446119671242297736534595722243519173887726073709127216374897465191056562278905762442154101914381580890271514687133554894153552963924237352641850986010469404589604756104841719222813773505167585656188177521963760663407489483029281349271415977637497716131617219575865108442337110787639126894218250546307155904187502827079005473908290209458150918904973839129859439301671479545410866841102670224525600296830975487319861159661271661626041627599744148337069019051707978473186518439569664399529536647456779661411398943677023482071988996345992025845304281813454217124343164720380553461196170481866773184673142999889103753227029694600858933042387054901617588723985748496539582034877160312911299125022459287541199481430297523836230900131503985683655938210235253305445007808432246172390840407842532245581004507535937573034540936497381735711058172759920854682923790483289781257757175459397325616000771212566965412847887109558927178936693964507629041511502839798297631635508060767777317359156304624419417362570592856689057355462708329243464261524281561601139121880122475821931626972937463255035328938129013788144981020271039490320371926843894556589452546260902728895427364891378953851729680208404338300738498082974875389739562851626620536981332286388866974983067112023807167778122975016178978214478763539748415951169166653160372174216480331773834578833630414330027349436895761395717420285933819386502533058756641502884475916453939917497026637343054284257371642455566705605701025806698619288314347784135620536064505734850428143200600880422783309140466274092672945389997038346968499376562427531034060332693344915619136301316129993405573996599751422965353832603388516008422286929750705420625207592774884279894068116419126787655641304550922237087707497493408622584580745387899009118019246457397917902358929671149485104945649563291047104987045327163653091078932376034109764358896744593545992669305647202056833065345121461612958462929650579208779245788784340843455627988810123044101708994720991432287384848125229177322381916616521217551987873013613870942777095789833070547074235190371382036539649600042526608994864431701909390227106025132858816709818846708977157140829433452637931090174583251101600604061119139174526088776497198645771175057240057749375886427152629405234526393859766028008406239587637882964549870445738897976878769606007961787243906388079158876327887000293148369905319021734341537416307790507611553976073521647364783834385335530043575932867030948602121533342009836408494932427837530479893906060471929406616762384744917835053103459184763830486968489438997123499149997414489212338881763439249360676205696533315540404042909270976908996542473601032880167806739763879413920730641806268469733935253502091035139133866755669188088771162295315342823199793469261802505314471952926880386440352356235513546457495155233032649668085310668631073638145564478885068277868579396623750163412636034558175756028707518785363478806224437457773525386915777886347939951470473766423361697388975125007517450141193060847057360356491826325768193433083319393241274211930687189302147896875620861610211065531483837019779001585474564575559314567397204539897594101774280078198055573721546886475439613813182788516786047139180312914863823792677154600108603806833576720814534369736060976732256626422922301871220242206174798862204414554184138302212149967773157169805086219622630177919599367720417750713423239220348525884574616606538276815391438991982760254027314453037807586361021749520188248327695086131370867847027688787344214195763000743389692229251097339339228874896368877411834284727265181558135653412330999758775653474028456608144919864230424537625931913621830683616194243146815738685557148978138583094177310120824620777746048527566942900525666991545894869886923074548063217722811523964978581089472280642084246624571387651040164942613408510448668101255044546911327133432755458491366067686529520324067188639822819812453588194083433980967722302518296095490370543050207816320727744734281518000619697266394807563938427548812782185602592406285357434108890337487297683519158245832037419871180788015074486717170976930971292730532717137001419357757553418821018537948723782434214467032124988714278706343910973982607933054835909642001998676259389978910968202781308900499876334299031440620617621536884523213579558102869589011949067710937710610491728468659646790168488362422200080813720940690403045596685135692724012316568478097841218545652369550114413807503294890006723626530124212852600081203731646093611579250738013231762828538036096172962027456958366720625513250947510908400834967578119890146809710863284978669463522702287728073521066860644529669958556872562949815409514274440018448023541708556851773498012551620330741713309376471480400780605250940719340524564806445057619983162512175939273208346424626415763746425506159818536338679252446839982820833236755468392339405465583929554707981215553970178074164312066464969511618460271402917218504108055580135209505338028005963182536528589980931168621774374052709105920884074285492028539110644903070655203320576492147975294822499475426310653127730976948676557864422028191863495652896359511773646489161117484458175919090896408616761327913867426595625094663835460976207364917116904362880632851641647543837452594616754679340979713495588557180819153051675594359883182041238329807803236038805594721393916129123481376866275770203210607889464365620242833705968195482335596116645657736500353501652134849654723701355666040869834915043013343965193973578157246903104687700307959884942308911913051650574911607519174744544655646902146458310090333184675661431085055158988233660804181838940985373728598110981780666174829152302279378334261797298460811831661536087518247463706465750607329098773093622325766628278084006799914188373128517852229560664436973872708157788096366969878805390040170488799153127498473060657804150184710312536297456302435853614430603741791551069069681025860676824951882171875491974936928483559198019100449495709866600771670172741850284233057253190236431570369938815104873942931510567890359034004087659917323477769040804157195694282913127026046416182174492043815449267572822482451221766950647348838924860449941273659059150736601979466004309123047019459832681942070501041438156993653260512071733662033676018627334163227884896748284061798951278081938138647921593705404826144064138316082331208654535366043176678001725785730901073708002426048325956400421050384934612129402207153914909594513569556256464326031531194002266676469199552468904631109835784410451038723859160510188879209660518033536877057607826947135225722983139606968803696977939138900054341698815131620009279950528859863623835782409588458154036950229394595163207873240920287008840303007840120774845473699180999604392093680621472787232397835021702115880171131615206735056545521450616011967742103397312867044192840579532769122507599209252136179779984453299742882032595334769678980463504514311633435599441904065620532943009030202587058325661088854069168832351421858616833104486763893996403806618566023675070231731278507050267352717233908067200972173205593550010312727297387894743972747531232116037129910745128936893597924963410419393502373668393930441663424984476587918080793615275158382217397068458827954672497997022127743352289893398262749052904243612818374673844490254997818844545496286463136444349319655370850109370063526098150820088177340410394108389832922037385771635605778595214277837649309002163855996570671436867556151016583340176032493804396330265002654604905914460306394593103298071844010188281711973776599255592664529237963452750969637910734995322444733051187029982424973357444508194817083964775135301608660870115727976664196021577484402277610970987279185952352473984619883974273549434709178884557698945757839518987699170829734990836123252984465221445052365834589405339012909231726395526458197470104048979651555444450568396447107056825500412254458416416973203836275436506920061818526630158264607271547256006928241628149027175936255973696514115877124724709252259920927306993017386470437147643656138229804980422617128028344631474556583665372854628567524082292968534206965882115048706913220829372048502913526645239536296960576938710894174505229791340588713943335730650809385168313159492908924025343519275455004987857192328081155528761360044320739076275760254862921335997167670245437152693217909492145042436656697629923225648217024659211510650606324723550535217613525447421738874074744636687487886400789657928975208108534792230020883153101971187709807211469319792651180969977743247395885773532632981490611993154645669906864064357249654319186664140440231690258365502349551564441647897826473572380284478393513629561723333566802460597847502493684519379750113143747139898536337452359283143413405974279873410145439351263277671580665250954281367024208253058726721987503106203990765448392774319443123988685123673730866008220881646854541848892016528559114990220248908722634005059622643574781335643625983466318735379570682581647363995695138888846559250921034211072522637053470581974129202957016095920983929462520038568937079359677970994748750835923987251649176959229145748540183045513274153907036848318070412915579587965976415088342058032935740599279418060645629077711933985774395998057889922538441960615391343308925260817639221694388166420293069479913827207104411247939825304365273645511167761650268744094970505755252309300128350777444242095787291070942520473133515198500929290606386934251254407592618267034381822863172804385756962602389202801142901205615217206612531228008995746563641223845757873309082181891379906293102405924866482734105409294367960478390365093009775772149677793063470229983172371038968618037579407556313212453414408263735174095048260926922672897424846062678198042862506783859330054963444882530000056869456309282517993130437269583486217654001681634073239997827837261383998987816893092153719931198429358177239807189672742685993049627850985849415675741797470023169637108093910529807284801935299257447742203708490238561884983395422585971064786359045139805851105004746922617449891737381707542165608238787455855295775568019900519547404365372922233944730868352883690532407185386396293766754101913556778223270230934972707516173248984848364272506052614973524669552556947889128057906510431457846624521778654416878481076890671579740868513361870690483172603277538343670624606574342404798694774720977039832879498409944824057335531292414410428875717665331490888401236895216099262247606070320574106391577858764922727815694816114395943477886854157812483885990577753790460371785620661497994422483259724838591812394198530802470424852801609830731384767059758713639584540725018396657869841317606255270931793293374327447848424149253127312532000058952698576144649618052831225180661949909632919806033190554144577277934753209701984454986847455135643888087565267658789953966460846105402795537541080214841891369785796318353229030823426448621545073395882208173902719744235741330598696066199111133326102561219898059659492264861816420695660491399089728884724293560405225107384362372782629501333214742659835656407825340021443645918304870903784608395212552590734850402424482375348223244745809240377520340505250304094152869675198750372041543024337248413153719005947649605286483190468208770504008624840904202592115485181978780781373913544520674786396887579495524006555503300563084871533299255447569608664685478462665897762335131873135378151421934095336511414584268416962933009675318150439276225809921170411218464966482360691680494348709232203797817989009455003525220642782681150097810139237648341717194847334087910205753905851826563142878950304554057651729523160648503495869367984626698347837634908479076442407470765372856751531449151876278526041257947277357056210445719443502009553039537450946114140362596251794228269977768238534937046686840026858705232385401562512618034650412801113737017244589237320263020518469545144994675294294930996775468885993384349768760293260181969209281050487609178720044412976082011986198670830605577042682706806371447855745374388389080108064164919970856178389257224593549269303076414675330904155833444092351704883472282385277491244959553551258870538214375374103487814344987989888208742800532370982456495587394636518725983274838307296458312951900778356519446795810303165367984785552894833156121042646981327987813176565620088211763431819976819967711389639305216353267807760385081081777968676092499420398223943854920966457950028395299824600520157599394827487678526337475301802323104423619178902462827510093460803856441844030218159450012107270249700822012794309582107052223860097036362531361014191706833115790018310225926390688633019668806496170355956154940954269215045194878487885201914472481857143545177341071766130113188888606734042191792966045221787373125969978466491838437784327437672712044088360801941027251233035105196126789260482956697621275424632777816170584440082656571851980252648526306247303171922844887270398902414065319360677769869263594532849993548924120176958308941718942023688650394165092610841269676745152841262046546892475701786406179471885020625992865239488003023481232353622527772941507270109878318483944017802140450537204750270976990991292280543237239978533541956062771239240526721634696664100260469554149032995262081598415129766039970366845729547928907944819022598480639920148070840351876433242792471593154078788342918085734724833625499798717780177789716398731099346291530093945408459883106273156272883997176912131505893792664375559961189921667913084693923104387719958840724301545675591021686050377600305095025915707498718333963522803201375929813703488361407117534744815587114952664976548105693230383289486801814488019709959249104469733320944630321513932516136404647794205549415209359316367784592166012769289557911237835358537148799318110943566108757329902174317689810907142987827817336597790758495995010763087775543762483383124251800253772735563669926294587605111977105988308724777926102034421902610693251766306012206951039689494180412661782377333899126507112770185889765157368384140996784022781414524307177224902145968796361102240489408989610607749492232380980874699487417094841255804901153957021128705032121948312516655036355635398234276991152561776906575186426507583045320012592806312667693532930324917867455040073364883727754757469021597132244883192475907383584298125715013139845963087005580977694338309038408023857091144823537389233301590817702776921502746948479723352085458888167816118186062722622313285852443435723891875250968654987716490369840111733082281916658790282685074338971580338783463593668268353181674516481490658994387793500353442760572264154344512848023298485719190188968394758636863607188970722391947115749088392352446736242539436725850704320945759826925163815378714521906630464055118215490217957068518077532912449135272463700316607589528014173605769811653467184693693891810542467374613754502272114116907791077963196852833100211216391242899848861025715182412476366348870835938965652243694585543284859773190338531955227736261943854135877631868574894797407138291542351179144237964491917592816841607913707685869206027265108737299881013775022188002136437867601763085257234371560942774703635928656847183895090346884705250847941160353180232078606098953061439376161161991333103745904691570565423008196657720576948342859422754805282659123618013949136638237503839927845434109707263473141414681333748502236907264752210639247740843514648847744925171331560237224425604572679473933706630709333163540895700051016488674697375518713221842161298911871967347151339968375243909146273164095971225794901640116903956919226435150364852596112655525892713135876654276422366260380758305087253585941312483505082059894727424062900311192558193287395465126630023445580357865852831651241379841815646258703440462308507195914248532354998019677656460164895781965068596837670803283529650416752618423518100767182786437266908795948052198461174166702880377528115759921743895806491913928731125581073887229014489270007091787838151569734875370116340447690190885757043414839733450412426545609307330447156799754804604695157266737326538390616288439465699610729278612567246991119832599937618229809387908064390823558049794037518700114413119683649880706737114856634181048484792310675582730301831781500293818538169747791078881849426628532619970852017469086200335605907965622301513367978730602361922692668727693557075207293996184631996276367478623117443022518705048674449129045751476027023383281723938340607940536998443118798086198759511194006925932522041696326838852182343128349970702135859394147443489354355334076818485207262681807403469099947932483956526289428618024196676069845062033457913516733142698814124356952454650920837076346595258940166148499649448374952651554386848548519145738492457317830054073398831164480396065354181730458115962499836012884597780938113677166079292280872922349204835350894462718330945853143243090571641595769605554254949619758559200056241859583255704840980809583086989365497821238331166089398282404304094692976475315437410555894459104256454403910446284446689700811652523438715388835069688375621857340444688271908905992821281452990021723249791065108189408726877252977214794760401917895276413981029482392538164546001619825557524825698531288148166150648384821401408703455291217137213488126911348913984651140657641758990199426652197316708382671655805318315025457711718951063109043721922570821259775896518348846980113531880431305639712098247560862973771712745984034288156956853812403185911192880855549380928116398532943737046704332659013598745923145666344674325951169860841384023552901088795062384790023789263513528834305085340722290235748129690507915566507285606550617170241627230606388027047224777155990882708081255573544317729355671704886901264882035613368650243327267160728522586972315614175917318004762510048775562993819549308135103693959213796280748215695516780550604371332284082490571305596521926524872207011905890439375901983841863246616577073129912610634288240667754989565406309877304241479363901872185764970362229789410450609078808610828917038686545633182101755669678438275954868221560623648436324683417957587851955996514578122914170207165545896706586357791883474319895805282587918431447110305290336363619871432871804965980304424134261918842101883288027928258280437906545506173829805288643270703656217535261952431757674619124662809687837417198811970152887458543465859988142327856327377267071949388277320348741951149312407535106610024072745074418491355625990370282187730190296460037895635677383717985651702879577926038215457170619651493817875102188778582329926770848561218582513817541340719313241532180581570246639801682417209433685105945630025830856671541627164714041632214944264164809871614571988704393043918700502827543973138057911899142717581899876105606007527211104315493009015524511823039667857414742271271250879742056892539850555324232979576797745086041362951911678924598607096124808134626167297147417474818108667289486127784440600781274099565912521184749577662655088154769867493236656548786580347578557659763420016136244814885625862380504588433790177644502615754151180652829276324251809818017444940288086595578859356557055232894848082847516900244630282037936218229360568769237388277350303851873256388229660196429290729849026095770944179580405030174742335585314342932675278237802330185374952061537828754952285259691615965152123841866564150433499885830711775347333104120804401095069169546632977528070667135539642257560148325452058855810018677278881758549273603120514851858277881563690613922746470946597156530537658036257418883426887745103113102346510020427946279092772449051712739799724584698734124095754280020165932248724300364204755951902022910718026710595895581801456315029838420681269543923018921216815741917640992426907193733197873224953225442828178124448578120559269475426319998073145272236671181775469793327082066592703195168181746447818925126769099445187498567385919048190660891879978370658226920216819920274229428618684840828019137314968169336497016288061037303550744157899907015412237006569067708974001506439530819271134410511854661860378370561437157151550550963736503693196413006435600835857585652875478058396465401243799553949107845921022931619272340988463384035674105193681622015503084109470286996640322386323661690627063057814897339872012046712617161829213250196989466209888487634768742471238481114319118902984159939122276129232317746300896573840776466041859620762039128407878585137186870432876863888453973494713914481653796366796845256958647290434885031681599004446967581139601312646988537682817197312794134109166662990909447037690687038953715332657696829151387394151912759638410421579067492335690959515818553115194910611439358959882486605972087127733050905660676485436702914285734995935199142604552807326694147767748074083675763206373755599692610070143019520366916574942304852705877713666554688300820408542435251601516004219717956328543429338706172276782598239385309114936109921961704866140917456775931310307232030389961657407815069293590279323272594690048279335271199340029619922601521417246839913112085382038210916146431679488781119952075469171898695471268958107539697262305779818810003099302434050627966050754467738125436300933185875921447639657964597371391350880797584041036877973543624906393195581888245447964072698655971699609148471400300685217553105180799759409009606241910010854543397527991149111565066711168970060935357096454112322067525163806646676042569121800047705039421594788079548903154160001931515650695550398236402295359667095647517900751092286692194065307697389112508354459611072098354502524591388630625076220527250253745556567232447417025275837670709137044949421711334500347011894018167103583672903683510218962353249424382433018538588500424427592012494816699013930908603578005649947721022872818169897864908030957566287183023798507246777492965523759764117041930766799686714831016554897111243419291800064661305920465420785934112573286822061741283974586014492486369279501066771704838874105661368452118675580456874595889603336981413958466684306094924244294894067132192555332590450611323620344119570941276895338905200153447708713732873894685782766804291596903715490813731106366021231692066106372576338597427133068820308980287633223898046971129887011140135635863967600412283922117676069130995884082092806597704335136848075605862262200682438140270422355629287323171867919153649323385823674521228365547529803294820355430280546755158074474950649475936783855839454827851536685521154775265825908916104529246408159521786861652401896671898326229638253639918727226010273158075250772217719255314116358734643592206584257249465881935310427911021760103517340312052741529565736851151611530286403118284969763235827913671498853347924064662332273915079199905421954475057163438297903464411150232785975518562449174939531174996053377845145790850623852325831047020186469110544256543261645831973199565641511724722983202959933922984423836007643587831322047257511615641218977514372886697651101990687582741812579070835198303420727748890049754363828000307805282231468780523304041263603679730765130847811695163334152990842115966231839421496368765852490937090089365108871806985536458415279717678445260192164886880189651186289260515148416370981429643799104878414592004660162921131991123216643219745417698828929644851876742718800321486427155983148486589580563593510891764927346043041609787454443802392223636334654019994656590837199623303974372058545145413346477519287327215770673380942402908987075082122096130201162340272954816333808204027711622777329621099096235657535534215594442650501347582614745852663970357171585976167038823823902999246424410027457468979835049757334999524086406268539972111499019933293819813802181317721010668443133311460973336115217970675437529233340300273103294182335440405579820918233608383739549114291268702141301521600532373235220974707719616040983933370393290685285989843641244510035518672337762633304618834134857169852093832208016224530106212869384408780757833266429656236659599865035213203078541485012859176638361591441119052004876194946880298488934855077877456745741426427664810181292381113858754158721753986366221839703973876028153573115853614440715565771276101576323701833672753091498036289590412297118698965520176606719707542893979268394021961607875382106962522542082289469997994675907227587410277274599316261820079095836401527504778362267213996957002111638059934055018186813643633604000255581037796639007025313504911191891358300277640634176400261145683049173315889803451413877991009400542942791561560583714206733508885914327781994590537225438119743716745633557225199640918493280215890243266599285529479503406948004498248731273875186264660681354050100125841170497601324273352641746040608287642359909984987663177493639321268301987783058962061972117929803387924707564088347091756103923786314767031042279495085572487710797472432206413003765651059175765019873446811879492183936664097002924032438869578316170683923530636918277416479521951459772714321069364047355786159572165017485749681197944611876223349952617347571595558066230434359121776523335809476347673555924953827088330383419754063256641067635269979257072839011963800734718692641914969677646929525504954538895539255409446557205910943243693063107124103218971080306012661878386125724139024616639501686827438020518445822621312445130314519187477827845752628285376211613589275685743585701892734423661888299296800752972039321813686192148107947660109005972048999682259809420919666454345344322973129653460163373381835518136835794708282889696005707629715194361788130329777926255313453500247301376310869344277589631990674171010644526672243455199575345150964234047528320448838254750424202267257022518405227582618290766054784360913550373131307004460978957798294559530410622371028748343983477330300839840545797519605709796135845324294494993659157676930124970990164928376013815220384469326048167318883461114388797843487104765925378266297740095275223389048310983010664039557622578915761594818663066737092776967375040066990220648706615896725618532661479955813443379302756783107007608482072540143566059266148879356996418795058643402185476693160864306535307247971956353710247768779854655085932267673286208388542959951362577043075992646001045906410964529568096636471150172344539413150576708058563578902217976013282624022605095131858184965400680214824762130178503852415793684709033464961877610111113177941074455755095629082692244669971251702229828006920096907719775858769852317191746559778566141763697967532063373778105001928785377558317299531648819918757614548580934852819334753283386170494980917940349400547102753729093973842256458229461579569808331680439871179192424667283191058944594743488670770491995268063910438095766514592200361788125235279677294727767677366021135428618259029583526009144374255087542288465115198992686336369724624512328815902550648636723126501109403061527671406791423750512262419675472009070166851026371627888530775767717075891096242859598937666079685481940286901601201084698997806591941053041132712911126204155728901048993956597844941535851584178316708170457855398886177406642996604230724847264883928848191341720965023448225233931743364034186207356807934396612727891176332679570368787259277666766926347125974949251259792599098190059259712760595395054481122828656218015055728929843983845090917884350604788500565517462352841733549452910439200880295679067184641799080373376089912945870500601373958022025182250024418744614451042051827815502157687157582088152425065398595781828040278081631551901881080262948684763327910941434668038680201179679213732139447378478153257351994926316934568096759834704895137815350324103351179413488741143305315477533882128363315023036547337427635362889824200894298216977071354392414096649181011344981315020197903621892738604022218198625425431211241757980012145519438875485354510606239051982468394788655207179475323569316877167886272660821316717310388718551751551733438514363140004164867663054600668934931556832602560093140534059451580004368821160843017564356785082653999150158596743069869581017403127989869591177888727275684129233944530266710251251135168329789305701639886089662607498922663268167511478435772642911879277267332571353364738205711490621762625746742039183929117042173981253637668483259472209465952352849882666829183154572711943106171715288254634342405174527279675228312524730963826969257525413052812505585592014430633843016161851027963294133549829978250532630997014929075093472532554049619671592279071971459535514836917952359851990074405805945314948422743458169710782393426410555973107591487054933276605256422894864668643132587189114035276769505273483557556930874254843360528290386303891456002817050157795822861185714585246570827282619982840124054584601323622755481267036141812634858379379238734033644044591233643827757218564216068924904142244824381622988464438653336735109404937084206137643468107047742385194377784698085012094077089577351158896432380843156124721809460396400102820396083986003262495998907243417675774160782304140686202917224554137636471688100814799444835099286067809809826168181962002446078894038980965088589911972054064652939094625148223085819526415835326278116285513612068519110520526864228032499922543476958350726813859464428036759174412837179750234283468035284181150828240911892948830873932078603949934380794087006009247926549314106669565007723038163704124664607449460707866469071249440047546179753276631316632530550848044741129133600390128577622625712577226513611698017998835029935408653993264453926405119091473386208933167166112182249018019885884084702945401719375666220291304218185761989724493325925779902553169022097215569679103668677420640210673487874135406016494052716492808505035187451115112019669525564997889328191432263025750573596868850529104824295292314206387570082531607842215869493219809983582570562703522849895626168117499647148511615837711165463080268264210344512547368409048465412205174791942842235308205021116204038677810238694891224105684804392909195119480095424767543687230186114178584081357580033447535580563283551647398023393566235631544011585627075135696138177124675732949756875817455301156391152209716237239861837033571553012033047658824780456243889429071258998908493848287842680994040172815447037227492405503723411241203159401416074328727107509044619381359099916286313307312205866008836555296208198014859467003989786748009863577262988542753841508201012906956023806956646567657327506081495537350104794784694318396807092058618569057303034610538127894473898952676583691053020657960304528087128741482972623946970552801031968012102351425179425281898350947392985239642528543679699639850230708528152753201950274478441553565261513777659438401651079664103897924813939656743513763573086721818755509955936918288594619425384759490572365499393409590112556695858358721192186272584456068150929443938935882361787357953597613259810128024990093273357512178122843304460230841103381902755542508180036760461187860661791972818738846050794284861690568196388137143354350335239596170735307893589670213538282151030044507312314413441941761428564860960337669736225410149409078362330056161630413317876767984427951563583129772833566188933648140291197459844787142092883582991773899985470237050820179067267856334559879554369107434876931084003678130393062145055024227189981297464817516717311714348796554075446134350613603457799322567640493557953001084593294471607733552905336618801226080801429866479303801260934790795222888273041176923211014180411103572616739575594022975627718937728382004845939936448874623063069791830354215877468200195550060896111898869391793226242682921081930443721795394181009858389466375088864465771825577400941659159638650900150893563410506821554161340038609417988227636398740755073177427079682489783695953124968550193705372852749782731938118389186010025094102226256709336056757919710722057947031448806024253578932170173960594693577975592768734130883820491244480981454918147174152195961114135044498334089672766065311394906182559135847622670705003953173772056425787862385811269216616508916835047148275943468338677520295470750131557461877512748552257720891999151281498678608478951839518423311598668080117182696667028622157630741279134684750387159271514000198223816096509487097595556601056043635620010747579903743777058519886470029256567779244021606205092901186736662754340940579727436442916370738752385981731427154455584344963687653639142053965669967321184990635691512216175178255333680103152345961588753353057577295572248865091852404269421339811813067598920240075455967577791290876296418825326502568861595840040283440448701967365873048683864443737019388072849659610254640980123022515504261677070770122019046342200568269743418861029714223445524186651569585271550869704513331717336158557559403937769021049632586985319577693612433931402039008400431890342853283168335190877755107839397482394147212208716295572226505165810297634484890523778332658768516443856520713085422915837089474693740190320805322110667562802743890313996563992326929106846930790508897446698184149343218081366394161678778703197283061156675699434090847730873992942686665117648846233409650591219670850102679638128290749736143567126204677894213663247725912603829185471348612852339809598232039947309813297656854290126534478723399360720196087129953498649655183154727803007587150992913697761264720329082243831386913157933619678734034120193717874744234988055137584828560741828337007345911422224322428131538191823726771821978496982802147699958186417268891735492406450992878944155691075888246461049292754191428544500199139074118715791694708153774783341214437833038890832736559092950311149363873933155443442795480359562048423611805417530937703892162636962534914627608018856987080274159383388363878538192358821644755085308365019318835494871659143001837195933756737388907488261571295801035218650060999166437696860056157213780052584823131933312146295183194120621195331617246144943681472914947749594845354522520023181879296573025650262471804591440167849423954831132357901243470038187469160833341293312432138928291063840599609528974769929142607717960325502027660100561505563635478565785169466486538473526874901505273194547712492504198806101804072972106334865185111786289196099707635942355188641386242900497895527543422927456809227077819218012629444151393187176800508005188959777089128675510630936713535418390188847826558940414045098501602575867080455543569899022655590963469148233183739102691896578847221528555089648767283596835378481728455205500920031875591637918018471039546489468509871331776353603111527012863038590398286362133251545010806448458008256753312251601703979269426035644799245832115742705505560771121299324517804134584466876305069909786621855561454261362617663605647860606394714718235816568999446208081064199362643676907840054791207696687615750286069752047085976944265439407480138603034640507717775482534827578852917915440027000063924720353928799190111432458031202149660499969050456385295692006642764795227236773150005009109191814114961740144356984970904863577246318549299886257614620241283618039019012826166274989036145278023420142888175953065558064176347218630113502685882660459605741630265031574679422912239985918805046798302222190254660639690605217073578203145802290656056712042975415460415700049461952695263294485177960369895770422685817881696669364137308292311533588002161232676121974374660725969944652449368041698215444309757978138154722641643912997944758921369321536184637427623646141706728101904794058528933331248968442417699649271751708459938912593769189632051004013935835799118624436592652868332484470020182282266801912779579029429582628365243957276300815562470542979540019849907549704214185716590855989721471065079714207529989777797910374867859839402443582071941593168009502917919903771277867131886400407512907677998345037613884916339569276803839706324393547116281084562047746362106421472234584555485872342352369174266887775156858426115792297119328848666754802264863718650031326833520897366429270536243076093150476734236021240424264081732620991191521996183051411612965097712768040818229971665730419340754725085577807099363748025570378462664142807395146693106725660964280198343977754361939226307155128285881023383989386468466121631065235472143870803591507826900655692423883250832223315886825768329362367428022758229557108980555582568635776138502427530562510677309817179953246698556003460029974047159507588095673037949606020276386141959407382445518903632879278793118737919012022836271932323354688290907657118955384145315939472607118915738048494219851299854723812142769206473806508077714512164054431620509353937901767479715226755533187083692961528055044437617018131241123124562275317087346739523148748559602377623222264313950764607126418206892882139053093457400149829430407360864824183445929419465371487074041041442237529569477447671694076195021400008217403349519762834683238651190090006008741808049455944403831162546181665399062711604266481228621389179674501287546702147136923067288538783731681858536313597793205037593735065144814179093198845667971779646986941391657419182979170962137674647160111507161036030249466935104819958955273647113120980808219078062520835180711597419149542998323790493520718129568467709005191912723862722602063769116272882763859628795918539638938692568736428617582067157884827318025697007418634465434575315493694866661672365443687047089771152751482374717462246568190431307280004374888237461512805358115265495618363024315016837095226828552353154225998931139923263161093980562308732656576680822300866291350368190301005298549273471590565942155303839072047928741232004646685704476263645776759153569270221546267985799058618409433872542344297554022954944563841682326191106319588799581097339224658512824100342394935223139579452929483126711983763451634512061498818572085725319749570896780889511176945387663718502086348739471276280428676683433403462566679710376978534216593536178681072949448694490231183286111910363952196539843395141548358600890818273910482714081343602913953446520253258516629321477803181565447825339178774279493786377330853160101015797919838824690683922034995518776261297943997597126767087796012263184318041347237734689617739531616253811097828933647175393467233052644909942308678966905208604928317829344062186528429657550464454764271375042400703313364590841601120241630037401484186855548471074282846438496893454615662840881406309530472937990021742937928975388233861124430066414815327743370891680342033176695900350711023589469545188078395411011898183667242594249027572583693688818467856014623370910266770835880886306185446666799887628335515138324448057087159867179578664713243871030895511978808598491328704303970764047329930191720368790404041954117480573051858394312615985488827622306640578244630514328034996942959863696996127098460614528902775039831381039680282132152345065675663734108047817667054939665337801398396189600724841816107657435504715172120432669603163331911163987060823051416294372828579315435373360324604567519603795310975145969277063957273154204878577129817670365639902299684391331923581131847055325115723801520295194426178229786763025960143653292360337033368667517901525917252047321601817968238474664503338729539896466783985194957784501652395653367061247497924894053381817478299929798354394696269964546865989230165531717363554526647182696726653457370937106153155712400681601237503477230066094544952848963189010322571221352551993265616136717162956387220486487982460834534877084175661102920144649154885771184170059960753397153795339942243131409502599968940685189668107856831127195675846126667810730058511045728328059397613808991682835155366244872325801039735047657812694986679013955659306455958496619821974113621592754064504119109538432573812277536687103883578855305469646541479131751949212386344974571615106101551446559459798159166617257324929979567021534400821675466140763652726820164822941579666930426231830617029783142552325163804151010939049782264633896880516869924620916352767484623690260593666530948018244955151744390641951070074608048301990923157790843552341143520061890285503150148257026817581235203707780578802911251350530301634088218701047990367752585954600865105785255793738087959199842379367107236090092283773420797557398601721622090353876865724428574747037274411989289250860836455788230115029768870458093477616123087429985984040791167348981695754818181547564370299930946444475809823778898271411843461936911686976552501173578164647640875172471906278855764732002013995853743222536893548323079622825687868661673679130467720152891712755287429697325299972017318001343784418258867364890687073127813800895223909370110545654984810455530128165915723450063044878470459717809550155417216906302760500765327496792978585672753439071907674728332112711250155721452380166440497405319813427955045481812416476433799590310950559102550508561852101716297003638590758239746101596106686036906688054931291759805695382862639813084790644745022104978438771945187467935638040581123964936991592557840718747696695720500104858781721077721055958098918021870707264238176387764309453060255392249912765987617960195513210146152143488700082435575166654391209295603664833010269586129044218426353927633534391945643843911144396563788721235444682352180359263704613203143299750281128376294016597669521308899669376216436576463801794151793225814986755379064010441752534499642665064892752679659822922870902381218026190492110121788342367793889860669957869249455410910125219592185467093429915346691756488145257390269813479220965563830742480025052242384606270061812044625644262036970084829070778850593475328171484495428171141971815900317924463058148295520937385357531634040658506637813634851350956264512031951583152592830141708059945054351844017098628229642668528663714602073127735059412567040640322330674410945752228258157623032003215681756370607432828763613673788625731696352740070584032740473050584886841529113608216233600888790627817111146774052727299099981040253150955550347683075496577789790824029170963579254398528761961548193865634722985881312169105425658837810884893028818599635855932980495216245387980116237706927336653205194418616794228189461897799915958813411742124972656818543331515468700503189570502538462569355811712985463109412926143992724906927584121865487596767207477713910941608348777627275352972535750236680688902727149937992289458148180885398847181270313553617409327365640476054997160074916957992289131092048567685164638271408202491618261790144390750156105856734606288879411799686074139938971232277291295233135110591400878437093823498654854967044939148228858152295895571418769858172092213482829155951845744096851744938532215757399175733309799362558292045031629096074571028949553435724152834828344332250610102280803707376499848370502143986569174395521058890937454058673446936974746950512196815904809645967532334657897347247222897215570371323743945810841863339098897122067517250320359408962239968463300535438103037532046029158923629895261539647627098749891807729617986522153466059510597932822503511378763602119265647161048176272526992414414874467841490657407159572516461095690631584650196474447851923174706722305034270542512728346006281725665052020923522731710754103329498867439214853625344572606867155793580425313302726667094131527541673801764776472270094518159588182712555714141611309607291298554748414070496955110970341876579735476712590223431493031756914065242459969146211538832500659077407496821547888270303124062399276094186284256320014831394129405327633746899811955025484056092494146192687638435182943148018922988363428913477843331869679779726255388133067231644091194033266879187849921012228163975888444209884812273426690973091560198244019382529584618991663291676459206559108805879846410320540576957714475718115019245447297669292620791095131150473999180232273353621162966680250311460618207951846328449448261512797100473593939202016046150292165373092877400743248451780407434224971960698972712528806074332379036738332992185056103037449282148680483285399124412795188361017979518920570236829703032439007781557255139295989868401978006644523310094908122077068365911623529529700025022150036744572045792985765057748220317757358616190280702132036907002023779025073663632010508993307802487259142908315102817465695188013183340364966771897331106059021725120209858122981171798645879632037180259216394297099364990569867570473575899692605097070629495329446003814347237911816390788148324264264314657386345985089298760006000945364550986044928521335997912963291103956052422897432133828442365985551033759125604560546431468973898248049125998288783072934707997068946599115653063937582184067056684084715540021449900329332118500698229628678260877268117784857523883453537331564474316869834367189915217437984646700805389465772515391463367995498106501358116414600460040789472650695185207719828745172889557590652770483528802209946919175537517413789299604516129585657243864912666801327054844338935396819724152268968200275644726563830614602455582454118595615971075621924358908989379112103497271682372329620370732968225692923801733957224522696290073255431023011149509692351610467737578646646622827976239678294004452749569487565626704463339087856725038754394218062165729313937151169473484582175538013732888708278514817784655033724047305113844413582918638613787314731622429450126542462769086871855354759667480091736518269576064319238680421350860461491584289930705837954885172368461461421616905645642564890665270166297401057194667179492621028003212913857718372282540658134551668005406476122118214042579665628968501265075610157518001651076623540205821243752076039913727396932624454956052822060253648019877136987538037843816742347732660964356756297519590332589983363171932238326383665956626095641669367363113310856209486824242488173597175025163535853270314343807104273243232244298762245487375340572384819905036868091492791340306906485013813462235889928115663743926658348720967782576623438246283603963882027277488788981561235153930891777274653141097093939015279213108082427350868029378377033680630724865888351548103647012008785107146330872267886132222262279220158467965774578102835264376513437447520356032686641475877392964769978449997814902701226764008306814103736221213198645750798987692230330906117499798391272510879616988020944978862661820587365641207217108966443134810316031312440132757815547097749703822726812416964468410881073402827152959122995963495528553935732117178317141521600860905057239539674742394206948567896430893652815271024517386160236885460167101603716652449391570500260224425593057180975437150281630711907066822138525129353158365858558237942940295056620059179777940797730244852197736664347794708608990076998438892406306679470100026643974961947983058957019443163184907289717704767580111497364466056256227180600048284451428735301084474214842816614048982073213994122219475952521037081873502033702576030350304311443546140764607262510299438701521350082013413322634118306575817604010941301839581606307135536900569280710384417026457498209964801573288648327096956960671870285314293771938569094985210318744476567345689976496013460331045705977231612953938984395863374454930548899451924402876967648991201263338477587111792396131204312541559405686885755363849499205930271935614704549840613500151516584208481261868749117490877567239645074726877722385059599239443553664604596299408608496346343504886067107788705737551422539473070968653457654159006473347324961134179501261692214875754266294071545992072579763938883991111956271961451273248661432739487828556632414531499538950380974459288642601499660567830853943565501363760509062669196686073870888763497062632953921364459047075212300082129165734045756292521362687021284462975391768316287922556209640881741876618441970117890192959868948915425931147319682370847716734134825100502945160047201337423883172330768473710204547986782938475143430023840648406150257026451566902077006374571666818039908350370809539448373704951087120835493368447647898884543895638295689053394816429634344100127551446791672952935680826193418780680487586015416590716049933732373141707576898615656150576296475054322314405414745686985674584610394701119491862453467705475147404152724858566132841408538704179092973370070410410486165854073438444206827124723809635727543589599907740429044274118216946421735047325251408599895040233199902073100671678425010261826043453255413226961841683661867573341819066087661993812965415036423338069927407511825981958067690674367328624054064588255035672558476131702848852945470626099387013515386268506390040689008512772879624680306406248244100039171345174389283032146762840590104000444588363446707915187667871481691347144114983398716513516896672867531242415970249102315682773643886703802104143790571029611335188836931425189759259264653723138748966016894851083053508338216571065074032274998554360132545138573361221947912746378313789532339961774501678022982114038210440991663964598633613909007496555603772738240801309502140553369252185535607098373823973923372662913642547438700715329665934359230670889161173249117552043193071864200773555008757898024341883188946100322908686526212486100350085044339383446711947869618596123852255796021344779747731193362267151158416522852104975156565048434054307586829265156209549763609593751966340604098168710856032065079522313071647609227667472423258159413322037070941238653593782615639260230334926107305650785456322040030738164463369159729322810653830198092935808047754975520445755570956076517705524698433763629182799286030220612969152029424162128237461364017853671304240243186806049144418153738215307978960807936752970832772841190520383123070696831045688228336842755215962987635728424109029725660388778982983412577188888361639527888317235363921377761848208020313871193568711564608347244387558389857290112497881186369957285689959407146089158596131344802086278012815730608487108024224213011059231183121936150458763598493785518426303774161455541375361000728001114663867682870185980281921516450033595141062124803482279980179986983773239634999830882822469417516568726177501360707429714231091785114187726926734811683155309885429981264878281724185933187713863732489013730262443772745979075450895654800636603628514870952051616640642694463613185537168103203046007757719446157813532894768252655923465756264084958008844179995951530418662139818127461766668974454218679543430129748300641994351260052582030458182108113604937514490250293459121524475757116123122473487579625575801062175477533236102990850100871719278320004564446707476137861584622409095452657556139487643215049398850948703563030548776108764544400534339806296545954564953341928754553920023847485370062513012119370055944120170427667065261078716646432550783510704203581013896674419695436266017955533303595042640997014317704422652822123578920800891484637102813709427989842330255801786801318273648995044197282361977353262978109433408882480765280750797139789748450935415025665345363129450622861497746234339826810331809405581947090279808190310433883075702820567369316684479119105470365475774755533485902857058673140928998032829341781558337586379486013605826694622738930122995366784838011999259741178993748849777832704839203707827347734832682027706409389898325989006114631459567005409383583578672682242933389913645058247201696473345654237363706713613289590494933580131790331773389597607630516760040641783776572400715489849693250929739680112868197350856642342188321581326796767819702505553501041252357702188624156073443212642919239682523410362249718743217138541604239571066051643782303234281057751382104122958038351807474311440201991738440048426496269713344668970889500521193187481662441517784958594921227155531694918464940487378024766186893514586221567164620284409452206706043955261734727485698080063010102009363156857086686710114623009589035801963434614354698568083566129898549676433349735728706618707561360251700660999497514197516142703789559430883912068810921103880024095605502426536733641946697702049301472432860575126403331049908849206033134755652424211912633384437490477157737132906974867321922057790200695856852853371840467803736975238366224559224564571954550866916284078147182312478305603723146895684415014398529413546778162103665551583179067887865293483014649156769197435348487329890513013449258200914734239117220571491884567325150632898270263537433753367425998490489916444231083873500233442124373234340511894387204797599080415581013455157629452147092164573331786955540027966589327640016383999548421574941438346687675755724034634800278641558153412592474778096885930909609386530029377865601480404362470171600974355512184380540186465952573056137766600814188538461809232453392713824554661881317896129362286807640627093887825370780563202823292063009479596254744683649336128870935897802021179727964522380105250808472018061929477392752055780069609859265779731266276963600988888892666752187638463200971613595769115259943335341537900758306792182737436541574573324643774922966990860117695146699695264987569858065213621172720760377495969529262611416376285803260822868870957238158114072529632850289964917422772300296735620245392859373228920346916733219238977198212172159959937362648355304122986777245652081090349381411616328046781595203931849161686823563027958193958078928851500946564881034807361604145547867104753560152006275489633811840874615944676487528440144140941235653039554247699718016945080118317998992878035696856719691900844959135580620721804065640230927818742958895069597869364455647975235537549221906982580521101974194312386018162550995042190172423857166063819591139196427064937896353720688561183228795308511951474154735649825020894393269541304963530409212308173022215773210934676152942675086791240785475183639945620487444771356967772159838975245487250674677245521213872292970174972762601883654882524529856258267256758359218569240686471425148912804458124344362151272047170522573383575416661979261665845117424049911752006566983132934326201278700003931067453602575342552068314309020545630780469342220269109193685605360984022562805695108073768076894953189627064068733317787781582930480456182041239576146394400188291655909273527315054353189370373800460907156128494655684214340110991447723942362078959198772846194754349577577465365171708081307368566110698646183627480162895689530944454500730746778725898422851713808947339296626126570444295675299875579590067648964981112623898029690156261103287038248151951184292848425652381845635547389288239508049972143002048851078581620272857787191246924635634513644989515344236944484125569543479116695431339614421981895962356208892990732303897063974609615468280223251400239725718186761096372079305963550904753253627647864467916304641632517196498338038084284135911800690985195135264951895781204210021708710118579551839705309368609789653966499475354315179657182085483222465187827230219370508822807912194279997741618943051498721972633276038900709734612156333980660601501652999450284587205223350048380550009587187615979675737419773217380682649980919953599266002239999687119337047411200664172592044907098243148764608259452010706670622667481457790039739502416144588284174664603041482996792836202994660187451772781399277170664305273403485678033085614239230446086564975624067848534923601389507973167238051986299955094213625052119955457412743366643682082109496217939126507556991862652619349202238921818719581849226573322733455714040587492283212368707710671190201832036565333176775268030923550502231719047537564809903156441343845041556513814378580945620819269660838763803550423459503752490446660776720123862432096618969452065841148324299844254267610646741886026821835461900530845785882108563415196229370683425263524935285417905160658187082126935083990033186220693543344834726565695470525915655077261074503524339764344687327993791100115633963605848116841992883631441385350777575117402232258161838504358758017856918219082578524065109352731530746103839426714062868566662555747200364429108891257590085517049485193341215641318759730051826641917572005339807228277406160436694100357665232102263712890613546225690266141720537454833031044547315704526859728413829161541734311294835699497938533377382234128777276016702447451050403095763839142298879024760350042870614394189765549388569516124253942985152320441843092340523695247166003774473913753242934468875989954805384756362655523442644500932719587850613557635800616839445376390035135939641067644634392311283097023676398085489103037370299114385307143907112411522861650140173374016321476590530959448223868430272359891063522457496572139989393262106210198892224516827823259949984495776629300232945875615419271093801570708312948514444805489406647764571443950225776656840110595970967715794460401292812126135672219638488981516185488463596882891547640447226656265070331043658343419207597990447280805181269196691559829204153386046604070238766679319027152847724236203192095198021652088489506079992311392994157961741757144008046693025967772617814715150793714428033662037001255761539882771692541743500935256324644123842784155614325050488512984729709147119544945971009254028080121892039307739466974855221999321405673071340214493901729359256226054079051898781580721313001845364879897777493560741169135838253892922110321331954530467243559864500004702487892535622295453434373039160765983029609698458220374537299753298521887495258606362331545843865276040147820000404681096509951019047419926189413668433802123799408690659260656166932602723161269481703405212465678779615989726034542668393508435132861141510736851721054535694649442471386244021366728139079930164805434812028365338839444206635747767090676681936963453403229094502698441406859843224167296531704672717906749943955128242292048161739564921618750628050384470426863774987801837548440509534210962292563797855544334885841166226216025408013200129068377898183236728990562417109780255808690287021170428339689843232475629947140915025448999890446394226417519186665390481420849256534547687739950003484281384878256761010462359510607132702096717440440163386789222841764308578685802725461123534998906666821662455435573617262382902113191254268315043334212398994414798533622972437467143641658319655013486546860405781846582246292321097607731498038628678196721881339439629694287651319956862750534020421778957067542502043518389994013824327253512516776441156265408623671005127371568445628225292398394161289512015145016751920522719835850640639900502565594826920011989058580634696300165441377530442145411507796228545843632639497271261969333523847889631819620966560059072117313373461191355067123506039708726423508218571148174947688944837824697161994396017911713994141918519446022321819205575817527718881103886332272789793162365200166856030790210396579249395695382896439898393436831302412711549545071955666332320650816509549288526790690196144618326993514463965423294274094385911621390292954911368900704593023814084986367267630737002875409751557549462659983043120565402782157098810688159680939442414581377223814611857984270925521994396394346741006501506916904410717291679492948210063875300481189544823126111605495646763436732274439732587107567376784325206453880991901182988046363266679610499148922703381699758417308323656357975177853369706383481556723894247197471100062052687656323184998639951939012482922245517587965223844661275233084354715951790997426989610272169690691206343117079576491425795065249409793747945823543041687115386373511186706940075457870724174217425159241154689390441881771039812021389383597650036109032250598164537875133527382767438072458982407772538044008355977975912865147476483290018869053584668992719412322230139278260554548458770568322541298157984837681341087742576262850139996757901048603515006932139365376043620539149909184818672512083249970883995850689599304921438499710708439573354872121792103203935735962504014775752013725182742035141053280375080327862366814374058246419411803519168957577735572944181398373271619261624413391299287238709163784729888899488295712062061748353217299923773931086908070409725933712762223851902913059143243040257029591133049491385317078610715736878810847401504106402818989526604812060097603175037943949372029829739107824356547046959736762978210620960421197192583518655003892487719362511526527190317066605306570639807207588899035251975810350943893159256008990090260945292683938139222156172041360543965788223201270921581079298693648536625947439987115013472077667111686558825472718898325490220386359875339077162184828376701877677741669413004196094217315107867654194589689578040773652067024299379828967162255372749990198127840207122409018703367063592406493275597276088323620604813324369189734823658249010517700486757979381627007337394017184994121643958347389663961938795737727589742510200952721906892641005818226162367055205825503330250676117094302086236330916729405878212732896779120489708870671298194181529181979336223288129808075405964525406721810003583989539598463191162883577436004303949754147684997791674335945559979389033399216618611598400038885585628397873509906812544277257779040204062967118832121331876148944481832373989892887213093472718005356396353385580077934547951986919771155119097138460621902693884705040765259622653975424597466680287724217806513432565738681094664334855125857451334668463010066507152217214177249989709985839403541765628818869424079036720358096352198205352690874294978227959272363656872370161654475698349903202380251169848859691787959435212372930002150805650851422653421597653007763041350086844275724891165977214010436240571058918800890304378683093305887824746195224595862212682252553098541262133630487060698909466475705280183202554675081663032002984867364489459377378316976755945919005984220362368613577231610422724205946756594612925720855780468349149217544036008440424580350398444791773827232917563781010092292395707521506933897938407514398939352950495925440759164835370926649964297871216117115112126755594817170584532631139414838718945237653208685467093865792608948003020495795398008984742280551112803877391519359443861825527729413678823819869138701538032094705837406800377363075502799176885423760217557820189497431822113722226411907703399436755007367521074557108461086558268043924567798739753460859743376723944872653726912131154178336767361677883932174371716875985618550363149796648401813172103779459076350844597617753223235997661209313579789868336919936740973589575018051407524055292846396266646083093164383939918315111828384011353713308260042850425465832107121362063634272997323176659341677357772384277270680856806217911878924212905271037949861394047669697239966123393431745683457907932674013298902211967140939042165144466421787915958020618747134037807831915206119834017317259521085152749697310162040188856063572343174967564962349969341438016740997769036727477328564063388538734943612542439362073382741556475922549449553210490797548484876448756814777176995389833627346009517095279171931472134406872535538332285720439724292763646511998818803265256655661633359956134824886276469702961867126816668749974863510690258931481418539239316207822934508336159202259635350413971964596850103950091297032236000539356024178332877980955368348421281389437203133455705858878750132873737806114753990905966360779779275992711620213648402802511279635248119263792961472703375443860316620766058650384085750470230763298393824713275761194913694276517595295091142900657594513611219305769537545669693465439025560440198491179487160666619546960906977532260534485839554555419374294861286081263942638957923836312541866403074132093363909128251536484775189891295823021226121033156406703573582658300198952868143280155467998697049104565185348550108718324186521520835212113694886567479986083763260370227633679073842210966433603234723401807084588829029233588026175200030296317004036487346220951097725832104202314149320907123401430247306158787409835918501959611705061704351412399198288538718599665809136009516022024743354949099552104545743984670323782147797552896966216275301026463205050445184181335699302981570418220410785227090066138814292380409768776215371085727210610114199302739120361183015941611962455898947398292517462574950781044155130241642499865369629257346483278610717043019170355131964491991298357559512434417611106928132789962843070753025189211278933311419568108435252964734582130009553568176923434717216101463791815988295279987766470640695830802014729479320081125072297852674596975288618931630925811379101443877053186228691231683567034936449970200740757491551801485329443069278050264505739462658560026714431586089108755824009768658190186667623680515468273427620196283463713994613610289632154978102158276675739063320668484833991488921736527699712503448107870561379817926556832928841018811880007948787626248458459890182801668862212668075872450733438365381364520912012570732734433647103148557198380891264647360314092010042527928994680580008061168170047516190700414772528997531032025507181102314497120378395064137080282677972285958512962640259496802707306599575238032160710737911398391442494459044563022198296971586452816037230039754585878759185354071547488447290135822872133162101814842524396330168731035285181162820937529853218597721680908046003967903231819484584057511386936905350108351515481183830735341533331231365789688337201386715979166252021108522392187326084652120868041656322103397306659353651427767420842380304323175199232729282280493197876888346354657185973226580307479632117023486250331780969915466912971555085130057384223721345091011618917781443618169098968683127388765347925166476622106352038563076876379762973298151888659556880204150165245274382509865418505840384294549256463853396956371058594969453369504615305232020343919088592447072913950057173458114915526311592808513914290444667798631755503263965923569923516042716130405975429229147215624949625889978447601285085597492064334912980539153492368263716809533797606593959231401265596072202636242798663502670593343845533693817859093627356651510951525429680904417924228111441555745528200745257410656016551540846056412319980378980471091743296847514215106441989757117230918866654869300046685388628040040860856852377321072433377518035261106146332694187764618822082220243369516407969603930600245794312076141150606717669292091177524794547234624841522101936460828702655909559587770291227716341646178501754798916152808628840346874294034212218646200436453981887472635318318455837928883580458607908360862787973361149593173574780334029554913225337862495789734413433505296567488514094485460726347166871076503775569350143060188636873031927795191383953018350707229655877143475263997246635197202945952516259841634892266337840149807973346976046698252308469054680332959939975053443144314769737099830627805717451680991478284183205048585608012101402320766697916523997699396283297773676478506879518517642464874191854370926027644098388163404604404390003611649186831466372843649089655348790855533213546765082316396580581738448323079581638742866223638098414196702032304930615234393130124799600737990035635718841250499212948619155574608276009202544221276163356506316643164198346736964950492642770759352263267657220055603739010547633914156178190358432332508252715645746041134773605439001304819000972223722824836329927466580441082327852109318526207993819167620349927495972892857888801555773607888773016343324588399215610451853502084076907948921056800846387174091772659081438621450209379439768605252697565246415094280668010375615420303826457435164807140751969934979921543972009527208782543674964116507519205998401690053918152606740440947319362298454717429172605249640037368007924072582099356058884990741004890533931802977796129507840737711540401478282085924536929482130928512967655076957443258512868529311423495288000398137581296857933721698646486145522284252343883803171031250011463972201748735327224207765895411998112016952146411049792488226621672365463778318324468782501389287196608477957675302426117030227909657634162851041251601838248377616839251885159548360550906934868379989984356580852489562470231314577767972290362450377828017411762269518365611662717871071677371537402350906790903993358450582419574711032895399580596578491498330049373360015855605199615525454018681247061551622087326592371945052615571469748090217888120709624218287701710424704539997676627981660326906580630245349399151914149713022422545716438109643990186943168648259387288910568667022195647633910008067412573426089156535740949667174397186828169730095760181303856957735682021551905392035756319297607522394768783173510917126109110449860970572797949386582000823176001464441475454215632222416497308514707578427226404165987157810675276856251904567280331513177867743298531910376685110326026276225688480658485987845286894572873423598405592854605929390243263132104984500410953299423737231056555180108098115032158060041637613991105668978745755868865457306521844197773143853721783236714647209857660708037991155619109095201969590405746372311991083556940972477429103473992283569505652859710293447641736944225063808568019892608475410502451544779200021844442755211451965275456763177800069318042519190641044081759297234265930709583359986123560553367376461712803193606431192176779969429749607481368939025302852091440484950829353653169339898516785591772453672149465280917149827292728073453215767030247439528580499779958913294981319512595956749063905843713164871749672987145761377355338424324039848903640060845812428820041933777629053062649679925388203349820101990306102907178262373911193955189206764500282017575473180146978385725329144326302160953143734560210047667903895646404098488156862506130000027900805604668839437848715849571945012234557946417650199297690335766391792063600434587891533026540358031868504627448563713373722727087370315094295633337560402998751606906620921301480053397726275570694959457337253501848343867072910803517647952296751565390506631180677932721872336760460516754271553908724261303254200832760265175467916084575629379345851826548681055147819758509840506696304937494637474459369230499352625472504984206529932685591022421331091990120336046370783685160344805301863397596865563845655782238008600085255487700477429064624439051274879585898625598000151966104038628451125375499493553012052869045173974858953879481173543815701887195155775365394910969413642451111163949461890179617203173373653673242599696544850518013252329213552853128510245518665737153725178258067342699097454754589760050670594972470072819141494977029160557361853111396810226337795817172041711067544693474334819219003162456875068330708559355010455316424671952096566962255588541372379386511038954219349315869086133410624547239415484491419777233299669488573972605153004603603280894272408760806266268352230035581569403792584928090308097431798895599920763982953936055410968763551595838310966497195647863497243879040847573719118774644821853036152457100526330453519970669702419574187164753529622901906330671149815244113866186393586191696418839700106509050357347117204360779347737110351843973290947971010326952133143796605432974040564541207633179086111573264444762803364501267857046475820492723773223548342241647074892257410822854499613907757875895405708844447457644664085578934515494960266114461893463184503773850504175549527365446988225285066454587191868096680319040140813682961335718580395969770828868380640284855720704067237837403896461808769633096159736100641011031231420504753516295063742424874443432408710891806529789697849144408657227661683682973399144667997338517462247471219335395386423998268721158526504742462798047074696576830694614342082110610526563308191388307103872418498809474866640286353096158489577798512222216063265424231069362237264465373114506395087864358110897408918610538932145621187121540254300672093774215184496777655633768542815797702072173048716391935656076788132677520678338116476576092459015820406691096359743727683198347793758439767116628415141177184041315385737975467270169929480453364681258993936937072352275770869547856602543103561736769803240103964216503875003482261647054961095899724301172245653153581564905257898359060244739039643266331011740627486472730674835424118067149569923130820975089039560868325059792394229451185469671960504465730513346462208636736800194210289978353074178033300209624941902629542541681478455255417916280632038538683910835525249267641135040597155884938777860194835447003456699671458616073391919843428261629946146857260381468768546639684926319232897839764139571292429491009586699027199077420233523386233128888726759185954705134476249650105130278363608877909676856417758946693119407644207472278223044512968715800962654860186530254600949957949010380438329915680117606565672417402413811921094794294097006553391378278395638247881734400272877800586662576975115531764930855065603794280940979528483804618366936777410679787114228669904388338831685888865665136847242367821292278401649959254007458112611553371575668025751363988605920318083368857570510910120387181203406103478768197257358296613341210293940793815382722643013915170335179757865525201974877779499441434565574780053718722070253527484360185480945473615937077633396189500535135167947420872741444180963386821947515410796788026456870042388984581892459161818851309912783779560347793864666246410052761841061896835184747799121679648913330747246073615539666115600763068193670840718969612694840754832003098093919243941505307316486333492323172809683682690017896097308309269240625881833504260579091927192283639182164101070219211371357209927750686573034322545297396991006837801197701942540324561473068683911049557575722766896659400472108779000184848014976503861887048370097583403616512186731698270480874454599117350588581453091146528645298863752671093163540137275775751996177767930482099794354379748077043273453397332455648190805776807893850337398546844676638542199099899875203424996805675746777466053972566426868994141020599813746869580196719804786873732438627242024912182325224504715151080552819800058374655291251248979340484937081257113715241661742525360645891628511715228063199634943835080095652997829462607357959560508277270709229924091765500941057602200966286732058422360746650866441881685520220689478274386625693605566713627851896892283656444309774987698554562757779025210105730174374576608816140768954056706614267443821744874145263998034462378735124838233094677794657567719961334319603946355783963122989448466787020879386213641316260340950461496310676611914771312974509577540937146964273140143415476415295030423038955386911580265338081496669531971096267761223692163854585474480890268755574836075714487152003031006615981869379680832836719155685944333718041614471156111639016581675060816432615565592111272843101353382868720999516648473338817208360013385503538101009411829976026586501302694816911496692762412635425985327730384416228899747837536404129237040207979177108024674607467172603752612051661176338110935546383527535236846040565586033335434295341875260103026583789261533407380801318056806879542461433293636480193899854460633680292578727486667931004549244327977130547786506583527518580977256214943902903180686507167649654537511521075816140186925211512078454726900514870288047251294867581445036791676165198006118712621908587391430708040809688597270759898546828273417696518087442383527660917422933985149688730235662811894650511234366021591312489425011987593371586798224494977306066303596308161856523481983462968575044936135366111779008879326911729827378822295727796983766651763285564180359293004215968253724996756977808344094172439340005427320006067318362312999907917723264806706828448541393444801624230398001186215179562789541503539830243820979878488258466948403362910662629035002151367148931121775995596086677117302075992172478782603358834312715289021262206600527368642140750326149404530614838681843225406429698310204169475726196459813117167241127463780453293262928194043863538248693611013405191213522103777392114412799558545647173048496338725598635333272799479825739291757434431910345047159675055233723910299663903109025894490832537529927899710096080731775402078403561581363016496497489970100196722459131124509651421971896625285788504395042715729614225988886160822777443415216170799760672514872875462593751037186354257113115688500465357055421037247975154757862978343193255217831070437884530957386907601984643769414582357172219026462148837840967967274843300364052868567370052322608846476738007536735254852130268191202551982532787029873608764418832228276720722096787801886553620095956439684496205963019936753431405254171521288826803431311448299611527577061830602182140700470306021384003527864192235719552596431634106187173967001028000861003883306614193056568372033152898435394372011311039500687177747596737907149632797553692375650214817600562615836867414556655646848568747320006106084025975933418193847704823883779951868599471766906659521121078218928563933327986452178351781169366018790661755765869658461238151779102512176065988303432692858759680179411736800945210482643451162940751665506944059247630201223712155601326658029412247854453053104484307052542504126814279993056617996298192998900743590614397497075199971420151162851784090482053962980391312404649607525778728536568546693969273384490050515880025426351583002896513380203867686123735650731700347173874293057312460395033836188358298923911070986453425949870847729164066631288845413553010061415468448537049626315789529676355671755597955270645844929966817661892327270952321806963670968404296295460617350703125595294242667312626099468147805064184822336350234385292841322944192237579860483381702153021465652740670080615958010703261325108516878596824375725958155763736667450079682970449170353921127913199167274403396767545309954764045697166714747348996660816655734828764474316211418987904406229971429148096599137424142327604447401048936656152303326135261388712332042007617262740435302198730638442261603555026688208392249698324127466075072300369253926358852003166335956209852980131465512716980007175515153651577602202820065482991490929216699342483824335104461291137812519217809220462586011071577519754486298924656395223711956224139875593417106012739292438654296274416079824590748612039959793089096903095253300090708349432504713626192188279718797420075879683291488451622270958720170842302247316203503992040868795564244236436771922753118154842016084232737913148349071233181422105333720458745430947913445813937089366045793071808811387220270715488159001384425288231222004446117581841052589914880256343463117464393010995837856806176915990051605761102552128843901672774419046226501613471708008423524248318458687272812707074455021206132007099652494014348563285738683458269304568356779151312001133886915230080457270421714567927475989716220581766733501673952074937288612969000368457844676414934301025540885019625992576561809085900939754983805973360636442417321926871279875179986197156986398411503639010296510072090261228556113792660158311215568716821596915751227842214359411239275240548288965661192118898331924248931848353959567776474316268252652336920147294935823318729744102125671919074463752559967117867567722967588370681993064925775329804529889033913943284905238081925545132876090281723447387151120846181281931402828843352279858968671766381650807625615798928254220464343942046419398771905994174302303555577563023918718254775436304995833505672132931536175483977169219078367359380075041007994543453552190420490709824978602170662145930695537199402746918096045940192009949248782445134331923453400702275034485353038276920882227620370517911316374964620622650725643742157858488681581719010827784780633576343849463116419339205407702102164577279650499941554839075831879876233306928140252519179759740197933653683938498472501464196079198328379007317583080337145290151911606383214017964143982006882436163749091654859056005769627990134761415046624710424189296545995424048332679558939783535475165941270185738757048008122454225615372379865599712854372997938371326965903030008569835016785968090287208295155093445512622495154457499604051520479885759648622186430825098271853698434766665019506932882022862593956425524441293247619513172046630944717847175169059301318405531556566755244756678149191805044061830194290000290811169032153178293179405543816643780733077706431008504482853015328559418686625519458355628270181656821918734112351277466821338302256201532285954566944464316486177038226865067492928660558376260764505582707230286358689142847042740657587999859393430221932449209896914139896783740072689592128527240565273420194174223636778111098167937122222743445010377904157549436762880025289626896838337659385417856425195849334269168358040894341778720578704205617725238694040626986259507871297207347894691457150489285607887824617756247088252612697196446204880366736764162175838772846315945542643566767174810189672379027227696021583909689377992234413693246773609796963235597373319920785258605984065692991668300986033398538774093632821279800676119061563805206732788699646417253639408047273531767404647630220646550647291729574643190350253477306273072690233344190155828402743017599422455001609510963406978988979372406160098873046140251303632622299657573270099292932745933437908334795584976305491683564414136232444205202115243881321996024088677109758378837001735088523970390300013959168777441037863238377216232534952745388249024133133718103272646429989888696531855087635792548564297523063424544986499517412006561248586567155166961083722770643020295284346677255998621492913472423457071700338945408890720017982250228587958358536683361561540045572727126132621530297694253353318217659533743801041170322060005079995496057810151141111151099369376487253429484059558243325971130705413244830661140186639562728779078373807605708897941589967021184502093961817785955762903168641942531079125818483334372385808803251667767492266726998883950709198836555404229765423496797907549260227339903543251482925914605840362594195425657077776715190265985582787608071730211027363796051156209797188145492362047545199142422783917462005750410214485636353704897516193804366053991880778163797343949232145796172240281620201500345164030162023319362673876920624458281948690342001108055963753350179632366849324218330781374126796361797278956092520301478453539048397566094617743048737585981889477011828075739548836954618726097098775209354587199683077359716715271470010045945456808657581007273450629784425214665188414629131636000109611997823345909412371849192335154206194170140705868562018153787133542142644031485299173342132763534398424280404581306535595522699949158612042089418242140823841061056069485078951493339253053099995733661378341645022929165507380231751727583822445846160569327802003685905291643106535941943087539126481268295932083018373189638200255745214447287159417111477890286828957521827169574536539384240586868596017141135740853257738852686606434611803780561810386754289519197405966781690318825468148032422200400967403385339296937645114533520182090156571165645482500072005266248553334201174936841850274566231452040192750960732427384788671097187747979851739543206510488369774162193436721554447529258990134076153712259486096277335172047947795314217176774390176853534453520495243966459033463096018985798942445360652569771793720303886528221098962936703320918274078254027598493331319732161855132837181576656321448324758311159797878894406293562174765343131821179941748895992719784416373536686863467953285456890766298327126807934023924920885142547324678662554986026891969033163854174456209793230267604500765899051187982756462373737409496290529530637872652752356893883440866927853998774001450916981480317646061837444993697949067597443546684309247003918102670367327574468976573329574068369281545000908302922015726728845273634839690113752873375849631264770804124827101813269158138308669349421669400880272080000579590015187907639969269295049680121577064257448678274244818719485416743661580386174600152386799565646363547531527849099016506360573430565589360059651543865601383037208839269049989525291625808542794859694935762913206495301256307749199716816866458692917195296244090066724845203783086299783493632862913610131319546780455348990801457868134947347394945968115108610957922424228443994359917628275673051193263924987002677615344726852169776884484843180850600744351503528291443553186999187243259619416518313472958781683387320247303963105635237651590390937247961892497044373491556359239139060897361198482534109461630877959558755945643118465568134108918643871152390742555571590456992079756568880985852484428841767749426075568079961492607202224865493023601794490362682501314989166490223870017313889766390451917820908611888156049948865145727669979996966079571472632574398321523011625600905793475921041673564797107728142018644509902872885520336301752666112917065059006908644331842553697225603851051864574618198449936247899037485465374247261160024604121167769820818191181146039220416767357459515896353445511155393101765883426049090131071750406035040246280741885185997236400849183422031228191076274330557033743999337269964999098997371137820834808174293047018713172584978186254720919141658415983658809804220197102408946631168225164471773338838319716532496333455280606140506414044010339205305905813954776113877974785947943788303339881020369633254023324144421411311609241611157801733221357939329771349928063411993907211355182955822409755031004658701899182399114069109831246650643859009914962599086311726146721057052787436370891030456860777119278895325198016236285139589612419978625680833807434912571488155417037042680210544514938277839203401756520240053416876620808126380794154849898773263481864694518481781966187196008600142829386135818769651881692374730149909727636548080708757355809751349224227945020912668112321818883043466244174246803718811278063461376514549237440278543810745896082217159317410717156006425436705042925989668932673506076689794374601376001187350834598732128319232016830234992003473209926656191961347267358522306366755084837415072587328667074875364081105522030225790082013490553068027937704484227307864016819265928899077468519534233786538146800575498053400916823062382553167251394418801974990594255697185132228441578794609660595543508193992200182019001204138672473389287961054215432325396984410784499061472347921603645971282391490108242047364883491916134089548858398210513094347127189823547618387483975450637360270490129876647964924410742934730915959458466228616177055290268382144854169246981182742924465988627495635212316277008956704624240580878420067074927203017660940953907647338719430333645831516055927459347073267953855753845799815563150142378400262400023045036826828483786235400136393485858998414664015059372411676386828769451006705825986870142817048402380088243160449732958105538297527438821577618999824789968263099391870698016275089461400154843609813161378913875252542643544632368535736987612309598632018194074971112688495764461100225564876617717858791039091480810983002689421054021696314204681653090867287200592144547190902785953769538544175105729836431306560687878681094556911214311205886555049561029826879286435542413833137087319431051754890398426964895173528557909867212488778016397784099268269692302800804439212885092120228178632911239162810520241423626859189517303079416985548651303691024254878617397112707860846553775943218072572295124271142919563609454239668493321876966423387831446170032344223640209446140581222223359345413004270440097697966712470770675816914938353827673900169745605882834796392024901791346771575366867517472318812773616154670697188565194044462638077839041986227362257514624388054060288024569676845109154882310437789998392213189900952502148134464890581748502642843074536172162918537118515325825373044314195700805682012877818472054865008108453945584480060786995578592967083626001528432513974836222980385159155493155103024173280220075910900227697405182815357612538312070859440894538370100860183379380336503324684187243924299055091918591658610907966801648538384775277954652451075557257030672890039582537148680326025756388610408416216306062476318291989343810991225953447982370845306075289717599991379299998175205518184013637667913023314093571825172377382545157540654062199747501440465181925349973836117257889303291052086247992270025337564797320509016352803917176858987462129932367378325443986377910447546457044622470974019145868740682358707469455266099636969976658258207859175046160867295611188482186305871552710162654425162456991003385067922389203295708396244931979566578440239685748889399364805044442057301361823966062196387921193218448308869492896389412029964400785800942815341516149300801122284624204166317974072921917837812191457150829472871435171775270939719857326307052067667378394280946111017920842438083666730940700533834331325826222248351519480570995169528970158594466243517372908373144908418103693778180327915265005262361564613706596578440955936764057143639961129086080917832573645034556267166652842556281871145373295924599633540860885095606630894633698600746486607043583989080390697113871779437518224474321306116031239671494728641084022495373637479383640577858327356743720094873536989815675663487472513028152419165735281203752550096931070056085286183566205435543852871497270829455332554726843847621029353858677080930225578483138140592355314493450733356495162305980345767103947821635645071730362238397519305469931662192696668193869148474228191495166255327438083977242999816354560882270478990033407081637626156294063696201174087401141215938904219842435539020348917862298206575874024277171761862657871271990529586495672264337305588944500827313267393522286177084107780666760359271684700752325669622910146075488425849146537559739850587918708172611046780471229642308618743022626674047327448867047991421888633748873687250231534533313999718327274614258262624502931089634990895366838245070603918904079478213306123936897399487469801153596396579229592734563145747655634023025902443854508162325535847909664726777095311903078491196387712623951037969987092531375149506961645157317579900515603656421694733173268699762080873259694612139241640487738776113638398189170279875410914651062793560783804327799287514332372135930309365864349836441514652605348426102060256028578821552998596254852528596148005287260864355366858863096815198931997789702898938475063560224913717563631601955840500363122027995005523103084406712029490064507560267148208464514759332506005977699224537418419898397418223332596784010103917107097119003815960106884046250094231512327654712818343466170346036261420650599405362481828152901000230325804104060624825201387949792649944821808461404746102603777413133222041003793261828607802650651832301752027172736213881069350961415421743735837545365927893743687810556993972357728989460805693126876789605321023871195487808668780060465961442006785741716203324784649783295774531051989614195223829835716303124562375142200171474125339485795105549023151118858430422493851212911455511458363493698495358928037773240891694673262693131185011362302580583629916327181398878281152820985054422969119364528487907408100283506482090174519547934381443451956107946015067732285182596084606359791747781071700391192141705450523054966503455961446460752354399770843845751482284946979855093300553748951890397235338280489334328930729654125313013052008476178194661831966916736544870121196823577786090059391907604627547972814545987579218426877409991533231749089246308686182351159951928191551533865212025349742846863783598164431599939030508002254436381619310769502533981646314279514378735473704390310628313906774777348345728535558399595767054038546518650001939081797155075461960579905569604408552079723593531783542525818294094230921597894339912649400937517301910816736612258511089770660712643696121400051071809262975354295903655109579480001167888109915449126622486841870201760796013921016963908634850461659557219020087210343889061311691621082849930124747527523191408117783183171064880516648099976241283370836934334258851218386031762915473787777649259813429839271977377798149907735659179731818307956646671470646231086930129606397704769229901684835822281279439993034100989108346506306485198741156395015494101081887794790244344361667452006507843774429956383693698011027658531843150952503056210266047149120956106269741202784579887365740546457531540921460672065160730892078926356313298278019696351219147770303864267348631790396611712850988135345175324467650023836297201076523550895904979974532517240142348938113365487382872931395636354812941805802147431706759927612199659264288533699237320283074808822024301138081429154408448918124851048662073217350449327819619360309319811159754388156014576517590267909212157674087055915750829583494735038389163410134870221696223940129252179528336606170596652568486541678730844887442376584043508707039508775345829355339947797881182638024796938175264782167845961702874236889953936042410650247109324586941752911150899171246399387118487835713703664121775883205743456599736536750301136759125278744919093413672674874541054224673629609104618148112831855440171598960792111147547656779026959585949158405787421157006294263629872726675859647554792917564129430967417742240178003237749189225435411891374124553733343535918002562290064799923625416982494075549701824021868446251064543362794843284376992727600318373607678347096050314185885786240027549013782435008397472152053921106347192378416742043597577786312192817946267326255090336633271353631241714153067733666271063555350618686796883665209087362756308668983418941256221693520944164397138559098946959398637482389336627259616747463477188637919517643919346667679306795552516841173897884796371216300344927496193358546950533077482450803600616944580341003575697854160252785302136684566040162836338124008543005171171826063793731057481740181784142358526409787991432064812166290690854082787947098199480492798486093098769024238412120577853960438177839293535597946256925142309629709486492655526733706788978125188926732373342026936560668947228296665894649161231252555270744381972506782702698715865937784011992163513444575062903132353748897967606039884738712453278926340801446674857309317641614365703283680054817401170785167544404933455736631052395545491470505720926384270908858624548314006027978272477610710935839556179881928156932718245865974346405214418103156320472740311592554652061028947035936981493483893239410130953217929658270753519575604540565748708744136476646114284651470709867660882515544272332215774715256760651891298827601165554561580353947031311188393228294528396619656087134345256441354128819006627411772713906373012622697018225290581644770524705061913007833734415451222098648296742675359191999564600954575455968539035388044067996918894485358220536687259303022535652975731987999490369743077212301543094722841280011832506072951125499598881648770936071732906997957339880149822717496393746682426063621442602819627533875950838139153991635305107551015855497043641496268122636667719422683417245689585304786691336700463771070977102589385153573988780274961606823977362802316148900117600530752586077297149108793872275358773505697602777783290954008726640547587277413674388524816315029238687064845917915060271495374193239621459173212890252591557165533792813732083826546466362929486481248080041501000192021486111655319342874224863074231516668133716087544153216456490283124642989525643691207088287292750530838248841149554106892164790642218019381652831079037219060594079136050212070131485794551752766581399571567000426489484299076294881510144470663726283199323190434066905837434306705354640812065728097176944785131974151645089329445770295356596314952342683432100755118793043680093912866565251604347486339104530261441721226574092012058100832280005761348345601339999739937982222839236157768695718906769577911479065408139943149129993445779742107846300340863985936168077405347162728282652144109642137276302246172634106678386178518260630412991426466904917484842548222962418417528886744140914089146975707272009745212364843180631988841334988334824502104742893837143163452050269576325694123081814541225095258495619313643600755673191292492272545165459057650366349355879773328840006600429945769707088438823071439638169513370596327979641522412583295142708390858107571216291574871914562145160978669131169948526053539766864643745558257523255905659044676103775580421597008993627237341843462939785221231901049375151853262863503110139190714472914027810608069578270176109980255205056342000589804205477991299495892111842619610584778220785535956446453636491930254182038468747757671576962207161686333659016837665424299259220785863841712100553879574410298840960421769412030866887579497831667360660584491855437944339590210905960274744150952462007992908725348797530533701118036021342946365902635930948794435558008011478267825207757873048205338380940916422527534745124770294834057267514055650154169175278938340278877928206549906088733777701124761227114714501921123853490427135222936292049971986465690008989076678826976112079862610913412253268144284113785924088602336634459135822468258646760687590326834892622051948601802258185966100635268944000977905126711197178563863433474344003018098713754906557569637032581724821016615552312003739169964314509027805182228418414312622244940749421780534310186602771460284325217682441765165814096808626470505484708213391130084557686467134029513066034403642403886046782195937553291389533697782069334232458277209370294362970074680772784604823767241732002921349346014294315295270036135578562169719008298789381533618962989183492665740622630850038429700692302737845223760587422076906444040024956095646951328181514774668735281710799635552576254606234243794423693919872712863328254197644181034447807066477273367232365726344744664500679835328161280340176518326661244761928972736419940693445195466633257628223598264321128204182221982721478061740179683115062087519377944785284495379855779942959881106848955868959356124970743271789086011977695526360685043436198061768139792510557526145801850546285580562264975933318588425924150264520795125957943632744534019259645901477895462178725247535190649512636693825429510045516730287128384054451823470325029480146896195948129208316084756285557701613541973265919396417802480489748355630512655079685530784680832448568508684085695586532168366421795852800547809707025040529567074426896858175695101859585890691700512037402409694180210461251190163484965181123635436722769024710482202358042281622791919782278953711017461108483916910723474983551847802805436370178574847099514451526781974236002599370496007084917481939968429314989740959816510302895319975951305961271555159415574927978988745115867037288392315346295568500554065344846160996270044315455019451510723317665541515482144803186252428338907902110863153833083382180522977114847568359235003255609908455561229828902299488675094436890912790793573446832570785643512862756948334451907577510218084469961664854994135519936529611456353667086323987272105838157779773357903563094817370648539534210218186415236240102608907002152498137228945001482048032072714448243743010391416064288157401695164394009498233961088011441654204042622695013215971884024722163861461330909643010637006130235957679950658182578249666677955980232920649437905487664489092920260327920592236931629002235805389983297036027106673257121146164336223109156573183784639734603385856912905188589219241833046270947493743015427863754749302986584439794089035612532004132519457214075125932541508263558090693957356480933064673126027012298219484309441294150425607407849362698208887333516216562661647197124364343904656876289309994606542961503868984629473215422989103263227983631330327118357318650213353161097358538134730203047442831737400393398292726480377937819393925577313675606149059173994414122909388104672986924398873057334220146746003351064625076860969371902770774488971657767058522393789196120104292313146843487072946695791531307351702710665885755986703659524642386773492631835440974890587944452667120674818549317072456558372265099036913059927624803259097836360258117911461305812949108982926322636986829431099216969841006651104816114640611215300507557260930799280239037403159556370717914575358010890010406729951096280347946450147178679583091490884179849893830887601817645002130935499256576793359157168042045167702306292790202151188461674986904086830022797658403656889099648890383756969727520976342476394983912132367824124653620108366622620165700441337930334795453490725205629637884345820263730892846577509283155455678629552249905289676111084183578573255258954988358265795685366651788154976448193509278080333192171358559149657445248173484273809504230930244049258554401299442647982923272944191603932541579257743617439392454553172112832896171947431249554137321356742279495998982244802482375961376452927401848797289678872320317448996614458206987498550257735134588243511741942714141480397709859852861588057030346319397284162983373693972198103930556661015372107406392032299784634511714529592158864229809539870016187063545834868624277675110705935471657951857075582088203675939765661732275069495128559197012669057427175375865851658026120380899669735910693133636420031895061790068324781795666738651270675694341709092870679609330783331400753234984390111228915971466959615061903260927577609285386420106057299278268348650377375811573872478441219343405475756283483503348684281297490679417395526848715899875248448571058786379350200196066187964164349035098860997320943457850853290254458806392857368123728928521214403554010935884872075809404175326180642867877020457100703850039187079767015214493995784424647069463722927783879144705054243342283669670913716087697412175195163771694409868928206189758095583346579288102964163275723831301916192255266552167003835876626817546022135671990243716986328347663115181541440856255717502680489348045021190749692194505960945032021949008824601698252732450359941630746332624746473988218851331341599390699178359764662850997746389285371402104720319534782163514232782484306970509667635528340720983067813999890636141569559705219858692555255484188462480328527822543678754454422913790570380288320047837837328177870272493528618063497481172242531309643721485454242817836196474015060627773119066977191585490101198503632802139350343004917072058482973172885415281485979452428282437025260079710539829157362576943729389298491453633926746414168568876020798890852033717733678209733568064313519150589416867936868131611972075530356019689925581192274941665893540028062787601541592270320929364663711156899016671485990185737305342924465192835107621160243501061289643965816670281846395394632946577799975803975642967395921428880270665357243843545646820355741693592630007189509926320349680562131321397542276007553151838701745329155966764978578491722790432500138702990994987577516805726652531052442854667758332513535874993047620062542553210389390901942255936159437958337647294756702184683425864706521418886074503910348003783465982957105303338945845640491344483236078588319156842910025470661707197900731357968767442868062556440096661440856696524703271716294063570537183737013726700755466929986080805728838566358465618634432879707021420561044112196355918379492908414956329287851326783944638128927321430929044081245020332443550241876786079783807187636398852337623065342843035029799660756827519390876926858638640861128183712590813751882899172157228669649960526935624595278785451094940534619324024874522369542824503987839290735457851045312918027362319469774600156219698106116860227302256131438189988512990082530873957773535335172559888981422027341138904325216832624843030439780087102215492076739642685490389948592170926132610581539728266009800354477807476071789051703191306989634794199552332799674921869775520691846913282688363974392417702688087092542413129187368795741480129491339683483398382569395136052715792627319400894617967924802395392680961596679207435183854030828774990432108561248627715264720996549408164263793960845779674693508528819830884522461462274675669667111189511486316873655582033431935361090415084884900257858846321416932473854901558872277625394175942057589588252662805514290729087613208583782254505727925483348550021713453270031456261720807864816044213036125958513181788325366966244024234114270066153053805087179076178526553367186049903749236179919957704147767889012056010772340326356672705309286836966198477829849575878963940606742836775300680669952849310459051865624373425716724949193838300933878953237481141012870932753291529935597564722885141647507757148979887515652160175066463983716647905048602279035376914663819291481872759310499749471965937388269697658620080181794114928650940407896523521115006319642336676827199004539839428551386813687314685030054052031056492332054550789466234046626456817139542394725436137929418492679821607094029485736489032430465878602063461567989609374267945548636494119748155818776410823514512832552870363775395614781067365435973416471539248601668628924848602400664890434645673482928580317364489237391769546897671618601779981632224415476079487959082769327081174056438219506357995805490198624820768524361376731898940431024468629031391625302782356186364195596921105425953275387809861406094676914933255367340087025794866830988942179407915569917576858911227594125144136980663238079883935318050758708812155779264693168339430973636785625279177600780231245362438056765746062996050834944395082594990271566823859905180129260420394086745016002646627068087799067129003081652341556431214014242184204127459344709339678632146077778695703840344933452300291727675480517704955011484235674399749353708954414850365018514162194581102126883094226566881440369268686190324655118237966444290540427495544574671784830671760936448066222541515780351160124180702467841872404057118438456931641160546044021394047464992297807419427761994506482362293397834718421251756089707308665607249546769244904350613124071515180263318992266409203298788866949321349845165576325257583898573264020573186615602433375328673765953803160343637429016037671739554806448643357631098803325127713670007693805624257637315470905584603677263224256586291921711936392317177331994884155869624063164089593035957775257942812878702351975697859887103687078664088507633445959667732963754851414602685845898134395969727802487217825594644427806409427131824594891134292739546396956403393183893360748410074192016156866730155692513808670703768771798685762437323572600154428362173717211957189337002151398973510944628828748091895084423307186617782351943367026286330774047218374260240027747669919257468971829339742205938552390711043871261967063259145081490076259516016115674247504052079405165122778413593352529533052229707693652119211664703695097523530562501978903253698630306345826629684794414535968647922201443725254731025322899050966908716054473906648939593711920543530346173588019869284535936898465070302985798757588101799014473071712311253579336928195352358766458237381363062738075864695256551751134208626194896705922635191323969388401530357153938739656666536353934863273754798193349795749553587449714318582967450924553343002654245978700095207401076788812003654041240571506080611944031104380656942021064999950043047844663149357830921528587188144164490940306809721244115448323510370574706084575164008158548525071109261209515071173816877149148119704307750742614914438203287715007369110818894427071710194081209527068791245705133611952324224428397406108901688475835050616057475430726386724352626178135559224993577009273977318263101231416475073551979159679474776956218322668307507301317616849628112076829852901162601734896863871764033830863817617961746131662927707738989030608930883566713332965379970550582390306783281913171826534827886389076180276854620468306640634557481553393204487190235248374889117479138042870369908103424911507539123927084686698627774922253115442112528819621514491927229587397743742183414444415025002784822300947771513865784157403565822325260163889952083010544037628449152532115778718644897763246991372176274831258007187473368774549382523483664142658392648396833272954419353015328850945748476586668862766136410820085634796106020671138457775275023812499400913852966712117577869641379432354414843590599960355202936340081362934547960585283211591227259128526600660605006310582474359336493835109763644119607759085577840315921446325052327703401483258242589162754520991128134621698596787584533106138282246906458760696531402390533634442416570901763100355225551855019164644027772782706617022206858130925077402216914443202995398323063938383560406425309682848794021273183996645638199526027545946094114103597360592934124245279463169333265968241996870884809936157919207910767627362403899791460114359490487328179473814431024715081413774781181086126760350100879985701740395708277163156929512437822027468563435804160437950305687662534766091334857624807704328541983226424567108677646053674949829814696891250810777793373002367725116205807070998645729047223720493535839110656342510424590137175058508109899228394266559347114666131618984740969854528560556208088435414787380619773081482575837774063179056238993507013464394445356729031629955117954686201314889641823730593640442502145555366647609693641005692433422032262538758953964001107844336847722182325691585499908994194093795409422078087238126402094593211318560615992922977647944721335951203541216744703293759386699215097400116555968850847620568246188838774057772988993278789575602562172700316040644841812243698460576185590201461027787559155300163779187196464765208432878057548398955000280681624993475606065464263848239788311903617497039420127584393696297320900427801934025398714551471841015848477301279477979360704802253859494185676588100336450694707376138528058917175369768703908963383976325103031963148200199852962779285350942851330564713277271893566194340362176237461221854711635322710177107890695681717708400820080883826288566123445380262303692115229378874635224329356600766546371049831747173389074078983942537976408203400726266878302506462428590098011159500428591915087191384708848801515992287100573752357290865833409891971781701864735114285394417248147543636097458578272290208165592523384062684783046778053409819519895022587407452191927549009071762516440822506686955873456911231465427360277755274677095949498795776272553702396721128303152677430074800641958327643576932209868874088328978680828726292480146847354551853381110035630472375712780519550714466659533581060964995896113832500065829331622611828896371569501698952465619616953161087086103720479185408279084214392891827155488381296320207667102614419983019286335196885098285345463277148442376378961053380494545552518564546384892207430770634784180823533827654925119450168047173464501918766030937735479165762242355553209162445241962638837934919013209010114598986933918433883304851119578085839619481796064162445070917878119860241184426021846056935626242658558827872124868013919587258036755775427182668144648842656694080873252938988932280335548385745624437803844923922108608843341075931322234920714144639940748994665633086746870292045934369005058187789816164731845184353442384736284443369790383058904432466447540600434118659112561273292896548662406806916007021767176519188700570458103222415506819225151955841450283349846362303561234042623465642329817744044868924504613862363418048981727650796648794878185913013762889450835347166273670310837499490280104814625461709738408187078751708204078765162546979756227584639696207193021592800437059290857985490079412648358486667139859325417944309792244406856580162473176545859024346416176569039519879986783222771710180542033356265025028427153516009854661670862235915899854106470224693564127181951791546390092208312844938951399778403649414727434302116237839294870474147065373795310065793437622224992552614799039698808993203938168724817488149048907657974773181732032487470646523267999482087071998760883125123830729768310567488363340563698943118085555556341678107739411464121122687504404376850167547874076840755971287506153257565420803969748677744075245691101316465727203836679608164290053989697829127839711884700461469359981980711681141931701819307887300122503626687201065177289192756093743349856112736408602144200356061653952546688982309960365827345115989892760511721750590642401896341778870214518167398714986549529952750095006021182699250809553081476151950244973726136240319725593716994580430545325758126780570023477521209969556686986931376980240343873289922768103774081239601188290831983107840907867951469032795138893037824780526893021126765768251473937977666567468237357104556577205577211635536725100281242027258862321422134575563222278079881775789642516248125753059852137636907414365168871861232813018649400383051378651939330452538383700273235079299723808819653327102625614199046768269709123873238407888018978021250056780355009683462045301132691862925996422176608948445585254371803921546004483528600708280844571470934734286562368945161576613478844078276490642964211346099086588944636841331966619455911396839430946523629572145314704383111592201771875011062599934527343039071316480104390106444177162588369216806460718432302129128881738600858153681259592761055226183801354507937844830982035386607303946657777022459020445126928532183999166111991501304253787216545046115969939736098756252208516075970726007549687900463073548079035031484354784962468844003332558423417651936529463203637971266165152465266924719184002791098316078553513779783237168662623402437625212126317933096030790548619938758420260403061015869543159039424915435268716435939303442066238269547227399714930885559101264775314805154542699327503607841582645076112042944561702284737779852557017692770816560617228960284831269930086303428159780465701249636788986902174014484865834572113164269150769444369066618652099614894583611803950064726212954711946648251275660731575709214368360921279484317322990932342103236492495450136529100138104390706247016604848598543737383344343689897852147322604972923618871527639578960739260659490212590393129944752119349202344688910380657759490611826962679208632522048150871589220072374569500819544707419677955148451624881216058117968126412893942890029427494527002254292299545501910412570582084104660999379803669896430673028345724478374166946315153185927912593589968780942419638096737299811533542602748502083055860221898933994359719498530838838011975290777853741223076461821741406933106481106639989956644486298812413855795755917978259994140422122149120377834282241033597842749175430247963920587510586351201112494934017723724018767168709109659673094161749317690828850568560833768610168016752280805493351947057344338007675501856608264989210098829564038476793122952949501845993067711108955210874103509419826301618862458389080602236748845853994159025612411339445336793140453131399816143361522363097339282566920814623413101157527769079121808315768381806516921319162723789371511124988650104111594695567018042306001458377433158802973327465002913945179643558777733363988560752526513944195934529836121418961535713422010236265320899280003279882922565996893229722502042242644639795378805781056492480914096492515045359697811358918884899295252264706209162608809144820462117044630455554420666855335349685892152568482962591572580029153048142110678746645342811894113105516901555921877921378987016475584110131217057234125806814480270025133211042626807485639990121402725417553770010296563468515257037621078582235479256983933642930010541553043368282164145550424778239410397366483154917603399452952718955167311685142858446919288348885702739884237704738630746874150121647070696751878735852575735361562359034377379380047127184167210823160145802927010056049437139966385769591648408258630513443147994157668613521218673121274483339817914706014834394777129604914400866166370884787355428818397048069075752904549293764391900957813272511901035367669745110893294771826640536643847683640393752885693147821905709052386334227390698632154805571612627125301554687188129300991575428700018341108150557224980333911809438892396016120780758189378246514816074220135303218603661830616803564316794280988063517419655370536390752438974290175185087975316904657533282193165302546399326398028628269874941014214081205739990945893720978489594749260535413898585005557842657192555133065240825858915648979342053574087969126720824338204536431541471491878894293692353173720446223209125133128123595465796941010945634813852125801316147933561025382506493598522747749497000473372366847351226584828789640650016648095923312363189090866158577120624908251357484677404069177191308306885940438489050264344068437666344056745867167561603916121858424079986865005210067132123589543493132750205920149378624275577680733659606281437321831229657838626258384187330212439544396380064322727217317138644067667381143464060429596114876350899682989193352185782273299958301411303158795377678932624607380865514710884940701162146594357023427201599914181355920195949311420056033574874772485958977869505551470635187477224183522416034177315341227155797606377865084382934931855925540589186288588353510051417296684928619868438768906613473746314129719748546760285008609482712971303304133547406820740492193012901993718003759616639155407608003622662306529752366774633070387859542784183892737717016514623379982354591963001030767687988931981080933660484583202007578698299684613536450861933266700913352141863516431144907193189376615816668826941336288760480358761590185968123694527719250301596416199486283769579904022665262920139870221403732028395945848441821988720175482317406318112539322936899084974134928772627313895622602027748260183928392173957656674216718536011696357225504610931700488425512499744775447357724678432513727325689599927656566116721227861661087266053939765215156843985355528067582161623526688208714565887949370308055413995915554929632887277886036273035804959482265497298724375212011618913355735499344117023458113421315729951550425176195059284795853028565616360149305480207886524986225077860443908772282342220142863102534417264610094260466540520954105073926666401322469419883493647271106290873120520112736215871501783033046532936132356312445143482931153758026923720288772303400132751967839078878131033513372422581219532959601659437858553905892996355872026919684277393342538686887164350862718325734110841032063107485435298282100426618488824318140856426284346890387425394983061138002035770785816542397870445819864487140756507535962527524364763148152913160696125981856243200597259684307514163552017103898204376825785742149859222915949826265390413076051187376535985949829068233769641751692672921248923962454984982004113047644367369220052494064314423735308336651920466870853645605762359903494375420130278303853323363000207866502606938012290991687362051501193271070066982106984234438126894858238713311304838355184220919806945354216322341503716295232211654883530837613128867534155246134933891439078340824856904833177853392645287473071442598374353618814147169661285651860506038744707657512917463095515119653544820399748423847963650665699869203243244707170524009138945513822850435271129923323062993429802739948194433693419605862586658262736254698882270277925545631348919161249265055511810680735820737337589742742698579088124937948360707676911375907461586795273927884667812299237876052101953730548541408028835497763426096541902123824455758965792611447875089809841814098205806049234147115502151402483140158277066303000531095130709403818265348611278180854437827960263906878859838519527094866659801164659186062443735609845270328046947888487225974136353450457098446528794822172148176139778743177315530739456648079078884387063606977535543131464416661353222577051723179443206153862581529162688314192046235250997177300630778430633501138846575071031830806858849359063181749201033701656046968848394466624130428610890037581309258376367854122529927198598776765473565026224816936575127823832814176237823553791509261648296540052363406379048153762728867515993471971254383672922016921535530548430771107398646495071706537481463522717350852042570338630352817340476191889827903410492636531854065536579434701484156801600485781609241451608901716236842303818257871986813049616340702407497869394592629577423478550535926044935352696912235297714008763917694058305516814083452272689496401867688861226672640918858398913414280584956605370729823026446280649196296095407787588564666453839491471085543177379229504800616454933715542528574140969398677235278862439242977179968515164817667919147946887584826540444516617157154119478210250950188097524520243029098458138555235268880314770030843856763234037962369849963606593387486007159733841860527562533136398702417986536984572565640357133601863443494815669780576061788423295029791371237101822355732353544608596855233222449618757986582708217348648987860669492856580157056899764170138241101931313185402618413554164920274657918749184234590539029259517832415305214750813141255154760971347920415993837759932701922965966322820817706396888340304925163612837644453477948003175273709395589659617578983796250157924704375808972160207833383915010079757759570471691723615640556437269473044203803948493276264350291105491668743492427113471979423470739431344684745240672465320804086100921568168350302489060817752367986884622879488352780309144204916604583077007160964424553715248469400866540767874733487940988361031893721477419739703752250129968615860485694769912447265498148377267387209157773066989148498618321413696718654283229346714938595741651264083812070315188388990578706395216385141710462419654234467311082367840134158826142810792536035517034528242305217923236463636771166880533742476999952497139296034454910805284986816860445369690031437152462802650140742121937066881668364483376896955563809132445603855955489642919508518429382717043275098814104707479544093015764797760100506072362844036714826937712154087349516446547839595405216479489578729243950352131339432973123022612494773359862524082287241944675652288525290790392258008065441410140870180403804820829967513033043531868787623762368859067909854896233979714734775818436285280929892822954585675520913031750954407584476534089938103686857716207865005015054621550115121347413932671094711464907346216566550426326253245677236154390403860966518341961242788762506391280183404914492628410669660842064038571922885258103285148824023929388917157053354233535023565552433310074076239978066484507141068716730860194921584621401870782484856855181707189282991009356734368363583585333177165807657071452684028940080762170777414778374730598528647419997211851803633167868154081839461521146188122760356392897904582888612100114344377351201706632984830921381257806371665500869779470377653892599062452264319549900189643936111065927297127144890717267577453423312063473310917475089071254485005087629974717105779040983422706908777937409774901826840149203992915618802547032697330926429124767115236753520759104217530700235478857349510182347389423327259434445062356318619974328207248543134773542635903535138834635824980749485470982465575328814594305423204293259259069728963609411486473927650373643912996275973727265530874471501256806215782564711987527026253861324872036695563231123543753423012222676554367171603394390552015880979645211515142646058561226278797868968152155716542381795633118511049840300607072264880429437330709379038253807735561918603166807874894736169482386280491160573944730975907273519368966902339802768423235078565415999746250668479180270790289646906224919931373128325296895279861722658768244534297296933214652431755165801699365588165816499394924781048704086621498434141998948330638135327138571890498009609030585753938013857854370241460750673029473944052686517541270630690912004370411345977175336400792973264638443347866764583797039172522722294474713629679417729186516753606144361319946755321543177304003733066381698006400255287640114582221616570914002893168206746514523348703898653965688707869023592309016153525492579602235183095455049444293065145396330100420166004765032864752978512118873673073748559666697786043082777648603886561043897736965237898278031350156378236538396804260239592126446607607628438791485674533332738346462268420614764448206681939790879274858210389034268916770043581049358728566945103747871414511102195316345648818743688649896973239892009794900371007725791231451010423875864353728068802361978529891901126459887905348691246489424493341494999186873743952195432203358339299723345833699721697334050091504211669050174833582486835280310292353630290720761540487919530653748082455111489616968727574092684118701290197016523889466885656765617959825017510111703465788347907026129362003172629753032229800101971625813423157010775104556732900058710375336076331924117109375946727934609638478696324046901624053970956962592635022406874748846272642624816390566338257275966405181102508249421969824729913450092414459600897739243817643666402209393404775422289636455936017633494321225543868612333085819305632780920529023335796825815589339597477689483851508002581440912749932080427815362086196267476285162760745018298482116716774901239042604682246933205340271159925662473053273187134574986104603334062842287470626155097836963202582857160044581985540945298083691772187944734423862528415263664212228351589410379490999734170128523367922079734909110381477951669537681787833787299912112192616494240165682507710195905727670619011248150743962177729190691014822656761891684851845210347383991494588420068027942560057974550300002739781899328859885991498817564186763410555446252990617222627290026913151435828226042969370007928698595469597010316556658178947868129331436602948127245932941935481887714229464159686000815629147874046677759702049456821012214651292316551436276796978405932012278937318843985912280531210740339935537536492326316082188097708510744880100012248985990380377796966348855213596079167426282736171684049366420261000215317577102226034223118711441044700272215064465020545149152888500827850713068128030923252005876985141581504343220947133572233100976014243592269674270620868273166083782560509824198382023935374699304546546614504925914167247193786221759156679847039063833293272080552483026366516795984699077175232437340901062932548624334811304037246860556116723471974376614116700002211005980480696914206394480881509615818392905523957411263239676968326954818527709529607694633181236834732091786389450104947988296628118916110406625612981708505271601342022793081295299017765901705975451392516266898547289906744327030150654468727233449963303075126713002933443293313170317614130057020759307903408240295906317949940384987168285802469930489209352167806469620423827402177780749621466171841498569614970138635387098671475378796409708636737338085850218357994090681098126748726582699268864927308417744852531763088204390326672221144081743981201009547944465137955684351695227459061322820687916879711664309041546815849318571002114025569548144981410770145920887977626613215577810448167729789101935453039184369294698894237075708302890783705115173904262612670560130703184925886492303305156510865877894479385509716468275704193943303844413656849024576631878001045316088455182551513030361219366734453935322328084789550821588530858276614790932119832605232915257490648172412764819010389264267708342889817508008058919945213792064670501754952661167476060385353880086208506538308854970606138992652989785298590082227141678053821953653979603262327029032275478037473863230897866146782974033889064591255760704269845657000040688039543308060461240953395121190950695239969272348123415753455979269966816275365077706199031804179113185297202699754976214858177005110501562205722389177650642882884088485124840051510700878809106269564637722691851651931652008629923669130168334951571814783678862994823833727845969463683671413097022209261272255973357419515565982408506766309190477559081595091387480004339570619483828439409665416740271973407019835828643515388309746333651624907617692385820704638907107120109861004825732449123012583653044870626596321403011253333269796874599146346255994080150773485468097670798431384304535069036944671584377069520510363551176423662981419343531733604659907159254193348152996643441064311177583864289160819924828813630821650685712417309753021304501090283864597747150880913127369578846510367283369647297616445436321308131696047046136610574757506320350279037725040726304114588483282194097380937089308495948825220913439612054751613913224270176787903700515640678337911043877977738047017793432854512979110922070709765306722515891869613225840142795501843658516113264028092229802890498236859264119838723755870604847335696001460755646549169820174024322327589733569939947508225632605212342448902440166424230042499516226108781196221282836446316252092438986015114919195089042936027164492093712905670633376915478190371057139293468026165317944910891779639155498654293978821686493644798937860734314332647525230271704391590918737529674773374269107900307806535426762407365574182852273107627753636746960309411430903805047708781841919822960648259952269591558262165334134946266030270260571038504224054027949725529211013085306524720817276018212408316912615158720257962019397860180926462173094705271283551085048793872976175083671804540824227171916921931451560675264925990330799465338014204404416971969788162353227307217946318374573331618563233057821606003563592345380275431850664696786456880437281163701418746720580164586217028815526053615043927897678324579881411090971938236732094139985308018762755053561415755833722467899692961512807017738219146448839609694814757232619660400684467337969308004834606504294382654681075602007264856073524773077509002380514146634541117176567736433601524966059308032287353271168706932144374203322625007771211441737732524873977824811750742508820755910091034318125221418756720595696002205739585907068447104504349618824762446367471199235652248664058295846908850729935864172148126990250106140946716133092321083909917378076895267920371736795410981626161188501289936590714499461106241323927636365702803913196202599340589176589102218594765781921615975453208508849388204725039425495088434737648920592304529410950962784941342175717866259468367432271637103025513417423970663059552364671210731373054306526137700287542865693004565939580227619681069962198330432786749089815944286949323275204223034132665373581998635523074823535548025068982816672192820159610574217857519684850342343054124012530318526589082304399141166670593164291123750604889420767204268731834581593128169797048792313604147476988572177305885863828624319937172213531167234169884969369542744867001363037286528798435147549228648573623437768239530777076101728574484657449806631743761687826632972945069204057282402409145131314428064678167827565762302778829082508131647208141201640990706230131903258358960994414206287220056872072420346954585852058251682299988452161858671023885185439692482153686365971400152206897320941314289990208372381595685175791758406208888968552173043113287518244728410458013522684653580698335972381812677567884742116641895773263373788751014297949107532301926397644922260091621055687978442274670532137940822752334841003701336033263451988599365560532769677302952449515856511996665470767374282990907716655817411259471602725690657924637371220758229791739996643285171119914014193178025175624665489033159025028185295307419822681478517379947475136111176938756658442192811971170362004067705289647484362825449210026194926127716865735252944315805187743586847729342397295063817671613695024503637763427456113993994467360045393061307786175001021236805850705594638340183274614337731743040024248857184902316104537900875727799532514361800504708305826955517825117417631141970428336962939573874854591812294114068031596409992931438172706216949361817127425125778819018603168452601178768359080977814199599769481037823670935738811629774339027918434112119955587362027855927439039989742545244094914601750947981471108395574721461288148745521355839113485821528779585406757212841059676011720421963276369166258179221466611888755580015519616502138761573435563503669303171983977761954274023901201634359669789484940696948224923862399456370133245149284531169337907093263251575513905999660299802845249096030926841532349447988502864780413519785601113616517795633171688078047577664871370742225707569673981595570715529853332007892184725103584176251854025378904811844697059234960041440244471453022885633466014253190208000483358640719482337434671072206797648042258774888735844794468692386890324265921238207312190571257178702168959938441322017324111606556636478945416003588940508590202831665793793664905223247604390516446371481449730828805273804137152616521803253037344648455088273857237199960267369218040223114244385752658250756760568159357913141398517659824543022775573278516070866612934716856692280805320062111056880605880058160851214624325027869255097614997702603074657218706259683008417271083814725139690131452074491671231832674051032208481564677798522076926354276677377386154100866629392807522710596421976840660854759561183281563678221055018244799579936748877279426056563222889659105302126673702719295577032355185284318619373347229171020344637568598156408775473126123898090809697504472587623381505962129755973041230310509711405129047603146948616192470964035380864433708518688939055727342760387191724893098874619828113096422448139775475838267629959212104664172710212236805919280509490425935973137370434019267231801704045912549493994432310766175646477389310556668319290632555965508757954595804588152151166154197577451920999144520086195771777193197205817344066738823260779848222927150432902924453425546971553770227569588066984845904089835052963422775632105735116223225047544098919387260554177995127613860073687065524838311059573097346650072167279062673612643391529846721129406523778872024135942084445953569620688298547071785506468164683518327224806199689744358335525285637236622401744848218264131778070903982186941470794412363760303230710318071483439456762170813911291735594000607741049289914741934409832560362377184424133871491524836620976635745781069363591679106432183531630375704352057917360942946049719996963196203421035757188448638185053671747020040317802888282573529753933353491571023491188713226213909581164440614654825812487478076081016190946256573894913497889742921819784805658003512991834811426127955844249349670684758021601812267207487207034436092222679554129399243678490557448737583527965340249733394040559900465469492821362318589351987730506205369396161531101458834343836494228224890007907958760489307373949123310057668148022864115393648559945846265623393991720711641348607598889461286938435162733694061328141305378193299412763564258536722255759117126338566323706282181029830068289696578298024833917287259816682798496142498176299555185441790250896620798239586411350019841154823059260769685638817000359474892290037365688809118955672390552234703479249549245314864686863002935018709474064287891135563326012925840278329265365668705490354196399711674273561794607404920832305292632788161826720085985111020902935606421402941178929682855633267349016517450761020831012450963227177012342309022689961865211918271363297127046254236070338160610924230238699154513341761751786418302171515329904456760597597492099451268931522494432287389531510208735784125844491076188023269585450377262245957365352073967685283836684641574215677462299037841604548574956878477436744708571800219636152594512573866521847647374227805574383628466839408228446568925358051450416150047732523740398329920680278541213478650944930411718203756937896700055182557832182199442030916815563047356794082525060241199766658929329658595790975618680440743697579128424198700221798531055835768618378346776424566821907225835683741667561420953072951957673726443819338349122101921590783764257200406810764393397554229211881940740264332159970896012176895278742576871621516338551356957116072750635275750329348441831792257371851921241564286355235796092563813174090595630979003021997746375257035873100201175676726729195953810809396759412883180653504719092844846225682832796218823847304689005742062446384252005209106716139960512451796912626291145768308029614976504492877487280504160773148681200837509067604500104851337415696344842989073828711390943947134588775984940916753868642965542902785329295417098351442595732916464918625412133895276636021102724971771126061187691102727070640109015369617227054108533412905493206785517185843004876804340070493112541165324538782452748583651896360515489564770164078740224291131033576264586265928668774899143255583569788902526700482918458062832285454180592638932704378356875939157898943175400458827825981193908328092638167926779043777312348713865008551896959112860180835074761421420864506465772518616952955079446706472874418576638270098461386825921348767706113010665911535987293023453505053067831336984385398387772888723118725058151386475758641251550178552543188304330654351254264073121449363026094607128415773346111063082258354237846453049302641503476176107044126094446913360798075859623216479079799457699438866068571343079489183427989759318882442426952806396037712916345073906791200381080511838182534271893163888449428181475566103127564229483667201668307621303511480019220641937883982489692307312674561240600847574692989654585112636967237452233325374551201992290329576800430061568710361799292421572989112481693476693162723505698941210948962091646914695455948534869024699827025654136761290220605888828247567362443664810923936152804031792948391433375277799296139489971005966163123105595264826994586027701108353035720102152425097361373216696536921845624701626889602161711318163858286222501017077155416344821489130023786130316244696956277760282226378432167837819073858598210074049859598273328936475444210759754080040681512165002771555500322822806796051795743747494448947656175729746575244748185637311744171247412676345243886261785272348986456901286265660022726230414640410685174881682512280000614365901040835160209166216283226060319040041918022367093317767261675700487129806310042720293103193457658574563044896315491512357535673770928347244300485774489641975408971918586020887291772638995343209265473241909712042182021301187392616414807129938289715864795257139180379191769176894661079753234053363365625705941947086691769781901392628403770048765220792732523771753720734812143583086241263035963674554737765451139563574659522894615457794735536307179554379051394371791085075643429326459888508825246554053518701572597078149773367855646036254793885243648363414623530903710164895827533986902002331381031065606156907312196254543160403496279227952880835431247270975314856209403955269182153956061523602778367525775579796812864475304448706829410856410538135998755613892374549993751948204140427371794784133715860689849640474204037900108980156121511021971693572007897963884359171746837476910850819816632218769421214100518671861880183044233223501509127445154711640829699496995164733405082417385045837198726939420236718333483375852973720314943715747624221219539082633398461948267084349926707899098511597822555595105562087110479249209388756599879173128859595879238296533294619566469809341132414470098570826323640710129523599970600470981657212862699879207759693756339770078592657390620147880613820736546938375582460103984748753704317068974011532029821130529658334139191024966511618780386678405201272519428321015129649630185545880925142388159635347718306101191373702089523534257736216562981360191552246659255690602842434983814840320909257443171980247398204496574593262109672839219910196244536973931914093020417774412026890098167348549798760464331887361192686507742073471157604311421781625922397047932575639983344729160328914298068863782058515472757738092607974009098439374895788226043714240209554722225787668909706476582832672850450459861856243442613771170159705355226428097019420694880637044053152090538323058857521414908351152520604515933325600432633554669875458630945494379074177972563161454037472293242213758848729544067745081975488044081167842735247297128170818956488930955196576833949316080358699871073506227536961827210439976714764288780167208304756262993143411154575393000029749564009090224775581992587994567881801571617486708612846032798797708324531629126621389138584373117687071904404129808577299864998183228080137094063265949623470219505791672978915363523371774364416503359459524404354341749603769142108328837866855255460029952993003188429491398618132517896921455007969250732717540712207163405700974845419008324232122231003420319465897246749911955282482144817155087459879307758776494168220180974235202040184484267552182343698504197261363722415337330338558128661056954255468799965311782441270694203767875652906618147840924793297325618921664715998574948280020028119017239576718510316904366047786269051839464249322867507650508121351955460077897643770567140093788093653934882254510228507249175248704147338609580418993302450159248770868627420202014538195430186817952891339869939912345902736839411789128971260212470901515958497675223225509588799645974061353685363310791220854105974361403131504880631937713109348770183839151767731446321990769805920041662587335357590636818884252761623378688131578543167321458166717851906439217879135720890294825977475875710636625792897368369094810957927271444687036720978554047050726920341896445482243191026759184181647928274969598916648709065366382701335767029045166324832042780411621556189350249961391042919614457484162203403343002010284827194651858031827459632286804757106359597275391697805418132020830476584736494520530033132565273870489995582221489919950852792252356589576277996682236825135531111829839988472678896686742686169987589872252099862420898525508487209792827180041646419421438759926628988756574047571280046984529037961746025157677859860875586459804576944501342900026953763786301091063156460866437238226500366189135840918355617861372150471466968250349158831613423216462921435640868752617110934858788047821450284172289650942000534927203586860950263339327174919634649931036568303924240036473781734969593184925983409379480341579918941038056404569638542055431068591922907922933828246905329521467062860092565947793760022038181193061429542734913161202211614900332274933079849110144366173776140345365557050512848832134326326568819485529948771941154410131509480695987696693440543698162771802009795934967264215365589438030491547326560879060990115461793623885707500990189083275533417767599657777347355047186877542780008586138996869081000180560477362151717843114262761484328626045994292525587546213707401931774928747290958486004221676891372864692274671510428441942328728230181057815225860879970170398117641251444030490549631629602272294934655968064856367828110374469918053205719071330179971472218181905282017405931647153405561158297678411244021785169951018847144830548585969677007597826913433570461962301236698192029295471429050246895379966989504738262835379031221416271934390424268903051000638320864855844902656246341537088944928772041527780489467442049532198031567399756345815005694284227277340902800825301705505896525892262001073736265726435642519340625413391783217937549372997349867010229008120727635266841384951106717869140146782439573980726212399992106841825242249504836874597663658340655227733746957341406048153816038619255821110015157904590890305449700803933714791451456970356675104084983434785517058079522546630804201735845723966263307696988114028173146222069186106349843497292550032600542241185758177192306404155243815241852461428308615550864554841910735415533639065827624470050954827650774656917206386906251445657549225846917641852172939319172115780438707459163870739531333895865720630135944162038246443561159158753464712837577691962478049927741204266362646893416922552188697233928073494181666767457962660927193063743489558916241186088858291919459346015234891097747983634681137948027992472795472691964022306642002674837144344543705794048303902157390013962754249946891663729290850191834479904115557289556254373062199795421750185593357960291556603215626414319564705556625489886365152519536885555813694479942277826793517480146329094866407193493024024834844291622264454398888148804828295172946333981845553840063232593233251994329702190641014750310421996632770569127342914161306111936975447214900411967548779257241989593603177388422510728902138596806683245151323531552718461257326639734225746022135599274051958583823933550971372923318117965418813688439646191443984731747342290803958852492930733626133717677065329642664726526252588463675560708340934516252591559798122752165699379348913661666779691402612521838219970238494499024972600469065869227164991926707459485067992053167443196048145303143294644811177852656430812903272943201549903466270325154997685765912654174966641100090390874940942984421593925020887425020630893632827921278298996899110373612818115628535270278167271897985369138866430781545902772554405036246577941986404648788796805442645557562816351950388219024799794655557564343054819605213556294445938170450470211763377417334058308351387250445097532501546065267509888816694316156398234202794670419020248031878945961380222422014259181801902848451048522878014368057137377238701728659002897778977874368656726694012120594553523738278051104869551129905868279611623955353013013058596061735016367593031660209475185363979060779199545078980190032900914238930635923069579437427799255739971380780010394000170388029449738599111879242984258196709053371611363490872086676712416695289037015687568217088613060343446195564988323976246516525973041397396197659676778029336685466036709542534373983133006764596327829857137989219047919729241213774212341663453470233246925405666062702431866105255198324611732702499148221160328191037645084691073700405458406772703994628620465743677424101136753668700011082049359079277796515011692118279579351908143349995182814206145093684973584497580434243523309633164015827215561596395921623718094019907801925936692000794142110919328983387261180344584303252567094160855883304274431377435909823077187658938247528478563028871590087178727726071274082376461405909201583909355690013985140870768308106498587237566268189036356844850659690163253346245680378150742505374204118138183864493144136877281030002562686795143307422804441419159712636446051562102940258433842472389127508241010395135415275351807889740300425342182848971104602865231136026649461726862703593288641633074842166939303759802190027327716889457001982896394100400108293923691436462808587111495183015128915280078281143608974474776788142779957200514537138943812028964435184997787093117151565534748768688329332863838184053299538308803310880701498500994153935307959735602995753338583366111863112848157060898459162487076286533196071571762756541475884362310220583784706335470604580676893476828334506672911009409963051926771707288343537290896836261552663678378866995550396522093786200422157195617044393100873389856516788052773153404014250780826181922163049483500255069465484136103355042475225793955363706254409125703052873887365861407762720423441989479722958845726256427997301015521784004415559834209851337337670002887463233570930782172375400590734159947298012222313448107135645284531888296466988423037973545753228520289609826260317900843178366753613965136191777977217130209715568607751040384848733270669100220036450122052910477064737113666770764930375732749672968847038886562300140881391332926535461826074181045383583737745338409944383333294956915037539732850348272995956536546155410545214273389875899144836916541301673344694021553510816279700912767034450455987245677602758994067008389996653299558610055820437943828679678436742238706442364711561542729451899553679002013853965966835359927105840021427746110659248422077195478096209790034629114684877306407784693849852685507215990611418823986516729001519502910789404098984340532445302573142225905820188441111081738717640810368680397170560526776326509171018697377288932423972510124159889307835380465602417376148158216525995869826688707309664788562179941636048017465903442908638071549725945998550712276942749976340763621444199904190745704640891304361193187229799884488117220224264873965796567248200710200345688368726752209001991511927784896071884112476630610607033701110710643771736022908374930970914861581745385029350422068716964474918534991710764921436027028587636022420617197584009813274308168828474358467960177621742993894169059526105264200257739838990667311212370616588921825341541940562635729254769409452317431976578269777180486385504089015463066776480742127089301264368731058837292217121236288553715341278218463651817265837492064172126391106040522655941730328992447408070291760247206735419988895822085807208665114905833436682540386321353225026728674688046162560574372866180330858303630295792037485749907171178530622418347280157906845831883814819030839750386544328551048048134383386946293905413237700272782149525197653708495415255931192804527551931929886992941791721402243555493977236499399053125305753397923566188229098982135291452009266114996380785750044833632870589248278354135823567302637092385460853229017079574785113028040125675223973646648024565135804235704072874589763316186382911956991096737286180916842689177795834148532687983939755517150742822732755424926780725140950010586699667854279582653760697763892027940469442974858245791179747705924224845965949612367299386699132760253588091654176938921223294866803526765203634038763471334349855278109867548604741237862549898802026665087930499369378418394415351042921882750027542344066647071067953301655886835860877857759258623641254017594701965945616140217170730158542357785621398360630922491146636504371341153635362415667487582246720939667175276845696031028426025957232484730692058051756870429323396947714212998220546723574368373832857995830398442306033052056786030603211966941942786377984143356291060673025436593555074315281793017414122016178877044190764929627975663396737449538752602338010111157021538645241997075744086729025331861703951126479920709405569635739502315234246500208940180821470837240191339390997888072240742506654045846597569431817731597761127049154416669390081869420105303650739519764541862361871768064994122213991615437190750019243690202735864540821719575205221222817729513700847466781085231760081673701228516983243223525880162794549419044356773181043435936423827213791152720548674002992927520838115804942638077455235791679351552403490203273863081923238226997031835157779728328768244088429672363392189728466870398805543925249373480566742715174474723115891378937755437548288648838512009993658059571907121658869683345081853784685457099563352019618546275562868543359229739563444423482493118469563922538440084475814024806596972172714997504445166399662510007518739446972329626172219871500691117272985768930948314209470656972916741760242432410430837844659990576687853818340858998695562453855192615482283397367150805104200500765745744445375296260545029792244495820090479227797218811826012298897218470313832808094402651010510563010504334171040864280709482388052410312586980265139896383930916216774688494259538568066499892004003855258340893027143583448135121185605680677900501223757759027942740842958579852622986542536516764552124705843838700961743186599265185614512876506244553541721615784723497353548377521749141109281905224400959574685241729361081532611863264675643287076126939455059756411145627535994202038156527501763996942569074545093862016714750264090017254427080090773222695031548731122085915655240384967484496867193304363577427566046824502889780777408606027850578743332222459095971987902503877160614161863008136506471908444611489994709960555139101483197668651235704511973855041719504945583008379990647631158487554081561484032816598012583030010195394488469361916629099759161536732917106246935572940976134934332261056937687578856787956400259786307485486556633853766168804581511402497885963606486867519560392913089350848884989771598615266042797263450794889837188784500051659157926748611166166634177882809548216902063075970600692760300361234532030357913983711014599271540442340618894799480534369634753254846465556152765164048228877844050693038914827202960315321725772216664718728894562357549064295883300688642642933388956440425322359673987761982175653905912125457886550590788827355529200632598644896439927223714195711388390914327673574717613162505657142395314878719208445241919494928736657803784674338893328288361039808570867336183653808396090693563006865504838286103162436630328692728069620343891311288839297317694297365905248839697116304337960947813777141726103861172349811686559423967681405142839805764646090515976193992695411990973944391823015601213000354890914949496322030628263717714150253902580942115600901623455512901576363127164635937900029504616157909961178258442022246378728065277837441221220717599025459742284495953486007885494843413877257973600921479623517420393182832763177669597890185611127187862857371025252834922340088864337780141772338531958430242198018622079619474917451292141583621866975503647336932186698539809216324230237459463361409484902672857464450868516038056981273940419268042680876386990472210996545483138591557740446842058752878011032089963695265581603403571378737389539778298267136653538374874865462966374322739603395983694160893107630135766037054815530167014200464891980938427674521784159528394426759732353103139369313338246990859183394683413549412635144953932231940780337493567136407931543261140739848071095488410937544677667993797176662290211515342314988837129031034732283932880732213911831955758261237834338728526158555042664568929335891930550706051903561059127403186481187655730327913491296764167793418500961747159569106549303831684794086275542759605682792425757989994787814846067038056224998845000168424820456644983714883730773180888340193107219189429408360763338528414649976820617568180058710038574980176908284903143798554851625512177458860435388218750323659953199746299075358354462185651553608327560621889724473895383636691283281591563306933957693548974879274994958261888407663225111289842999012646602367343262404383860030611072968206001788077078002250160001528604602531071238519368047589769165863251442830781845891466335539335165302828098747898283155030013326205916685725427655780228155591416732904292409006805280262789826244679602021914529530620252278372244067768915184758556876255670049406077594529986904471109456634256201452289821335650262510285365404821645866501756467108172220345588753668323903764632141729281809115999299351127781975319869986090057582048175203231264958011005419475027872590121390652545603265104284950411852237311586578447809555592161506337433387786272128846749441136953413780851877433990472619323327612556650371443316207926432142089151145675640366160138700376809258754185304565943986339205850556520848029107454443782923292026463829774581858510475168560275153188558579655607799359094770472023481299313689712831165435842935426202051544960401186829430825488628736049356479149481639393406435338121543588799082633114062032068851684226512649730218208840532524240963421148685447468262752878100336213405406360387065249714765832596044909185461426248644662172890345074263527642213377339402666743446802523925933176579218861252848511224155495321824738060097514490078866221948016240550781360826676081187702092410842981244707056424476888274290744175703791661616710304782405477991005026044448189940368249119396239336745534532897453350082872034203386036149009734231498221401925595972962971764751380578217610370744083580114639073128407550245346845243415439435833578927598215828369646044198776046544717372726358978914139131806372430145910822046186082442448474251995145244432162517435838005109716677274482322094644257229644466904397115222015469897470471129097091178041855610300538085295334397734286414633417282418108696185512593204391794955323210411929957427912265363061994135154012387372232874938698948004775811809359586883079110046683260720567214814332617766620954679053372395250286602652002726906243845787052318719422760060303442281437338243311964896533579209138136261230208025574084028936260321000705294677516515891556028606821914179381817046172901239918635328681681011510171935722560148843046155699203853877183166092209281879495518681923227153809037630591957173173794374690889469232594961395703558640926319274439716906129598163076806620433367480241242013597291363559767363533840229856070516895428375323993120183898879885449870075584547127323509397912811115039347213048099471909107766960885536939082056216384560452324736847771988595545060186475907202144145708130616707444728485201564379693483515586114621540352067171551109037545389915931201280810672304543121335368124929041650478158396297319705473877134367625092446926485746522409404000473684146318588952072199682474068513104971588753937793649167242494947946444222661592790156615366392669272094129731549718494707506030951115062932138771734186780281251089586895408146606786775248467948359473503021934679135260795310446787204968828888846758479392323938093515512367368608976159390579117750043722356165227345419032382017260852936952565940642890587852312972650467998662721408364504374220126906225521618409478998643422094093236212256446164822223837466774602797495198122675521748796948686838207748735414185078051477414370850181227467996763584386825410537999173153934389307757788591130674945827073110829975801331053614282705769520499850708492934962422476647471116493257167451050916882037249198926264232291018389849125969931258995875217921681301353894794242009053571057415766076660317225762172055078424956563814772049225946184840112029201862368365067113609347964628976643873018081161492295717879716148014047691001784666157757449824855349933464707907649981291407332538566717191858948357422568596788592718187160116740342752252228408216336878065658892460635601677778652851332828848201845528464994937057669981631626957201399239923354236679502366654011671830420742972600394412266386315290497745346108644920405570281661362771585878894471023271225393796128015682732473914194550348125381952185986912091777576198634962898403333267732059048613762390185514753993665396264969819152067641609385616399838214368659196423463721795043592816665878855204687425596242597280095512521609641180384528374814191299295935659322842198205949299219190778178142016533608177799046046100637411398231752627917306660124262808660610357287172061061798117675868981684837559129277208347461932410177410832633262337764465387710804213355326835994418153033873494697946685757217436307211626985227528648009149067849297129902457436186030798025428446650082702613251144733245301264372231147892328203270053853230682047709295002236442112132773361316099590894083607796975945491843889286509893134820353850367910171475955958268177901897478732969741281829741405248820309327319362947092842785902068847119110816978677481643185375579290259675258555527297849059204299450243637236794561030868068189181485137656546852955356992260167080869325415545297322313897074200611375777524488504253426997083770429364778889190425098289878321827718486175319131380817427219269391470565950453322962281901063314195595914622873852889294365035103560064889515141866996283849677843962805103216945724330022098802661765956833383973837919002627015564510113849455343344657771956704813102912648470296802026367445020869500088525681818302527296741729433530356899399936967021512485482604855579772434724851851142225739693183123226129409745532504510529177044853878042403952662450156644371059376222925591294382358592813527761484969382269285411405848906146257685874924138562294381970835385216864414561755437933888758829562834288118676312513618064814632613138450006998520808125836067850901093280120025487628040929703546937469978645182727736059109247037370650356021219688783722505110854021735463182467158309953960228062763639552426070984275105701712804918593673228876482050940215303365687993622399229302370187626045296710639744145711566472014896660979743076918149948434258811848550524787157911939381784401570886721524576575433114415405110735191287941314977657071696188810739846091862637476111128764704441778309064300783287577436492214172563688219025189355063702369916634972787667624954669495353672631450202576520990722501976415166076861634717418211222451258774981732146188698117184761651152876214599214501934848460022161146019055195505150773833668889171821399300523228838207442861336329129139357945519863057311154495236727441455846303051296562574270051698030316399107522453592592325768361288003099363716231339805318247339783638785420796825820290473674059983308878658596290001220408289097201338959547783935289297261225701329567543110794980641203361463417391245598194730693020375855354321567062264681179325589701998698665016350341225870486470192224366513929427858041715408352008117025106023802950544018946133189069109275703032293860595186028250723122249349643121006926697517874119625638585772106698747954453142246926925308100098576507724790894765538913257330647528939696889806371894978543188705681601356853167064594681456767651141020354562555483796767137420149242868519837262473449792223495212182610808342140072108545938886906979759248810408178313982905023495164970873999320472493597545731109510440620190385301064752997621057817944672718393106186529356810305399841948754792530789743538266641178328977544732115385647675234049274221821069759929880330591751878409349112997840935160543656172104387190142019362140032532113488570225665796516710186467540996907885269935146257451241553918637906641817606252020854171436508179261117623744225316329164691994512351556184467306992452997715731387113321536595872595228344241218271973720499179072051371869181467070483503309132410475544331123677581925591027443911936445486232820793540532364587337772961595658130728369187147423040449006644312968843270752332415028109173181914724808333759597995529501051637340369959506102015376248186684424237082677572375678612140746138426881638600327034456672209782735367265284630929916177833418216857709687826860976126290133003745267995680597690707140430648544068749984390406854686348018864402137293133352421697279656064825767105969628472242350751704930558602514690465716773709132317358733849300145362264156362379938206323425615823922705598441237606539939905935362968442802576467787845688065740613194875656363065271073766549016089807493854171548832506596323235772557462273074953863432100416750598866977440360504376077247319085624045043787184636366898707076365424029322455500091535757968161710328115214981943460712086994186137671977404521781018024817103027064215371440389027271957022107483047607221612934437309442172900272645198565453688208559770721175075273328827597642359130695288530050618948859640738780314198944841374268713841219435972094000084406355183626808582264706764655986599837115885117401931730474452899744594135889942165897275957653702413464268344896364443547082017941539640904057817833306022958684453677376877047666349633029749924309853280825923662542232992011918605302665842128285289617016777576814982392643791505273637606864674332038580988433616490612126103401017410041648922357217262379764069568308591280954439473995767603755745245673069487998852380053409077573160063681029153708858278096360505823058456272721192302750879404891478689113403366500803464415652825835102517029277931725135263735870047905272200010959614160598924459827591030086539705948078702567447363682063341218705482194011134736373825829577839288560020904404690998831177034464306889292528504277660172251849745208326430278987161108754454341418569933503126342497719831461043858412996919829795091970888353632353103867042269155941226096622882106612323357701837635308672764022178468742572815468045729592986048071434174171677086553707729753886427923396869638274873731507331680117567072395843085250559921518650487622756444875763680234895279292617216587466260705880951760683597208286000850742862541758995333403547880387525169941532416393265806283069223703204358583082178861694710034944055543725756206541221316219261846997708546279068088164249498607585460642245802549557381641862235169445161312129089309589012987511593514786841124205598144877144601810510330985510840867662114920055274510268582912958245053348412272927704092352027733127496701240639960674869418985965784296663361947123330533847567734782944931125830270748063808826767292541224654380850054585267849320655567489359118735799410974658063330626965576803388889700147388010622569077136229196963228976684045038505380870199645930673970857944369307211602538261853575345820394889233203007871903780076038501751520114207278706006037173048564907186994542089156689848450828499145354250633931263377143531261344409291832389590205379212701706063871875811087649652471300248839175717856502283351987629594668923470286587169337939086964674505705582096364398557328678261215174652557044452022106279252973700152093869048448664878826975903172275352546197960384635999998072694364254774309986391347811015215067727490094772525403084811999148977289490925519220517123574714004978965427243088598138538500880098446043987322806277833686596573899364761457561759057684755490432947544652274745310509566024736299591280597760079312750618999940206825185768483193170272484733084453049391178462750177931251934928728828937207064107336555907390335759247511142068568107245119907954139216647272531060246130993031797523696508415571390260157826782893111918470713016449318627597287213699350945809649084003535564710627058389410691728758781018577136254106375951588195072164768566292644624411234612433818937085985980684322403565041162084236865652705702269609441252842305226880462204413703504932887602472615425616318412436826947455013658201584444154623225748516523736746573178728739449819712967721159955927287514774197968557093975902161931045662658202934730571335388996273297364962777719793634340464720285041362319804568642660092323589609378292639778660578164544865921900803742593036622762461464497738956123650905436313993624088274640139186036569331031169470244081770966156667527094167938359999112236223827770839559242391253673091216322472412027449396061171554612209094486963195953440907955045947806354187383930538253731402026635711333668968192413573303050079993012605368449928225998383040835833473230732616421229483873747807157011997517221338324291625357944838392783659231180216099062677157024238395419452124517505843148786603942462771882205398997912265295431499988213648547906397939626814426001434069195169217793360558764240802448951537214769929732184347569801833251482097855103866891255536653834310571297113023080428420790862024533232576462530623766151529275765565137419488197612826351129542154674033948322458942176882507856576865849428653369140443007604538700777540189765970258720694149805700107999835331189247677109017055367706452001994436010345727972666690613088135576248911826549187279593941026074888103703203767708248453918319203021907610059272092211409639564869665765140269131653878258917485750913914960532040220543007210848577362958632365241908041693912226495676036886383352911645642154545459619530247153675222752258819320312731956887842119390373459404757115588931036405830351373978274826314575654477649890919161096897628414018332416036876403788326060301180275775902754055707536071461887289110648776026100725952217347129850716112240910031653426605044651948454359451374263913406265535304652083841819188017189826792326022072811404484066507584977083579364416746705919952002880603395167135565447712632368635685048532467148947553053752725996966263861394403120778945443471806278863225207883761308286534733579791865268266722840860722542507496839606104208527282559188219090106338706843239365529712733925326342560255595841775204376979731437282242255729868257472819108766404899048074705447133907110241686987881398873891597536526533288199378005345473249021218433696789436296033689695549050009823045181302948191571609741380321441296931049608889697162206051618117754186711182874673082248198598672231868905431534736309999022131507159467682253805180147789402151294926110803703141641260062141406676512412856948957785261350912656608110738325717776861426998912514285478193021690739274000826429736450815983814678007378288140414713055943676104762990574469918604037759689029389187130304491441474650002774907140484761483801420456134923947787176073853193630726305444176960182129675366206504827712088529949316024463418732857376664026374322735656649174061907413029165885140842960216687505768210931075251132974368169362525057157279099209829364445289680931818363397247767540548989458428001829536916755967401082635275400015320977271061855712615260488212422291901684570678269179039592583118853292548228970862249399977877151748474282297936788862213624520507284096731570353836042307254487647382921821762970514878333213414817891046665908310469681258333504506770411937448538447172627492044342063439203287038177586662664396128255502702040490349332044368643208031245458471817434860661824804585401942485538245331629079991546383033294583841347535677730387585715511116630029147020479629589678990747701538483501980293638428858514094148817086829636504431408036053599012836242232999364692522136893383346284146073379212115355236302940706581515676928618603706166126693440857221576719781306874531900828230239801840726492138240310958199655972961905081582604397479891280139302719001070397837810361326831248611274672157599606921818039497012703298256449136455563707933857631829280235885948581574426861777639911378784147800421028087573731209804068208208135292699200557206061249340306362796364266885224969959583413641433188394191998107721410080403542974955313703984738307818291856257674376390388514269273400984950151225763890329459810105106695942999976816696241073525535702222146364480197012782895844316670360950179483726755168492116068117911387049898994965070490694096725999464839618630057905517274584488440118236682267502262853884396331882497337589521637160115569064980230717341494462783676398177630667440547581209679438832489182636964344571980754652493425568796776700516780935571931773006209429723178691624484593711620530740322259187434990440968176774682843851964911063351744107975426001025809975829156994243706865128329246693176796341397309633688441802206346023231202571399004316512979350067467660152830352605338338560557127058939300030945482945931276442942064559456479029466112030405734456822005267371346236374871824156912651876179459043005711054173990879160273073869041276347595895471776055364571373761156270800391603397039213411226388724474989153187592854252412219992061912185485062726208644240357580518610533151143768593216140364888121011753029312805671021186828594203446160063831358566790311285809382764238417659660617800468731993823067894028795252874082950274108408591446690091496555519099465995414858401067996751427726289292677054744247367232777411132535651525413417391352498371146553784504258678991198124187603170050580457940579969592847656082415242784365408832441685286973426152864300021153729781662984741693923113110988964529203816110628634448472191133494204053805573011402272095314140171109527070250385973760064811054952905231945691479241018417138215369293627964965314097495585438915457480878220219813244224982862700162833722448166661378516009044442153691027081733300903370083411027749501945961179592661438104181335245641076506687453940735779480819599232751016405177844358673691200467474147458103502191891997713380800252170766679010805774033745105992538177358143776261498662017880201027841077497408561480014402285508358193349873229696319504304219889685671125934816186071580444953784639771899206286644962020563615358979553151605539007467184611279844623312896548266280474456230010179916226034077545411194628282668033936114931067073460953209573423095035017296787481752909540095793732514483773908048873031960111765112637720599099423829542110468813037366243263414893723889196627416963083481998264161099298476318883599910733034491195694372188645396873910109036252147171891361803175369877144355208286014760783354606810657454711529680411056847698992832414527794418943387184804375825505366312020465176797729027690074907857298188752068086236887979078854188107984837585405651803357587852848118622108776644891580167441279870340684095232537364907687660159135323770097196265988939887206348550239577895090129836866961587499376242463258725395357750866692673547192905632059350284756910577818393360081859855961314753961858859730239087951622193336800674242145535183887039218139310054599645825089857517584795688989484588914440526551960238112141985830171849710243422558288012895637934535651912489323736786795889280712150295548265172265514077442996977386313507643015422190011433991130321402427759760761784361492114955433967842207757224582686310851499388672479452054693978866357053072293797992363210372827047238240150588701734698486656668352899117291797604586811390056169787652543165373296194614473625998911549422893003555030684472924746654833090129100089468454135222516797199413453853593947242089268880084945816641587034815372531722042638414307514304841903604028071262838928213634665092238399428367125792412871532190519288923231935929186833387467465860221118248340128358580272465275867700010473012668409239618091240262835289450766869053179562748000598305347929148195761459170787562482957979153228832063393287091333067529350489572052403770930920481829777363353029427591199312357663500167645442784960114888901975690335842109793730019840721233047338913486463814323973555057915420167869721754921125487282914519234015730636260209198436194849173337768678521538072935206133050743178680253883689040644082590622412427512144784288427288345750479571290039486163184740704732338599826409523708318074243095561442779394401934606660696404422233123054866796880560439804362547228618051552813989257572682402229508918707925930172380277379818460533772384998456291261323553412116196364167322587595318933689121845076482610507449896700125088289729438613256003671734689602812251435815293489394161607463598669997779323798236907563995518675991986038202054876593609003650813196219069165152116369816663103213139063165939788348540698208674204155095492951846853958164013100139397529805285572724037812594821814731450911459701288177257498526521844120128129860180073763315738091374189155358500673893948570322113022014374034031616564515904477133164843910782910766223241983604456619751436881314552736826761922311315763182506225350687176466463219197720456794333876277950667220309214415620109617795964514159440644065779538437773187963099602319272522193361233403908141974889154052365604729306725256856382908090964929446503851347045700820760888543670823653075966423566355950968714590788735734633912271118583243933746659952324784575749489486967716739096410543609756765769886911865864188219557929790195047308338291601911373423493786002199207953985371979745966570006652564942035767221789904469854855921176888287584050224010223894791660532964198862085456731706673975132720158383795294518620561617847687242200087665387498019529703561495803705974785488776275123503013798915617639961115742352622716814402186551339861026784612729771603045928579496879560582756423627420559032152924871223645986014515276117629380023609372142057479741177143451164620247722713143204571744730500309080958194168594108167888801695549333027990802349923973155708979004607079069699266510733089447819962234592859768508541399609629221543133630674047234652701647255544029630074373388394131180200258355524047077263428302862321645613312113352706685897440101432991705654727350279394152122207419605345217314406314993127287054860013857167771373246034179771174471707256672044124655154542104516503490869240204702497062220193166948183003579596506679057314400614684150561297724013140836310642728749218762717331169993792293761104294604023212781760929700673128675615569787608188140271509905651152190688406974890085068810848522717798525032157411539672069069911750852145512232181308198930093832108678923040233268477544516306932614128720567102841902915840496521102852493857168618750401961065220136502939060411372718049163343311438217484412175957215178795177573142154105720140659756801545848441178787996444101884246884999781326490901154240454567490353059208390999868496394050357794945119329092117771220310602315428824153013927225561668932509731451424942826503642947503182336193395258070667565289227402147186468617586258131946817268095067139887581717945333147336215719789895925627494469470172117576777371289294823614923767233955640024077169896907234545963552936966722391115306478601638714799913803779698828857694374483733158665005888162176018648392173850538881583443623847648761805903515029098592284280241632762195660662332315511320957697881905259911726503580884829909354470199957878514202625847011548652414339289996647107851532282665640285648308708484028302864569356949918054448772910691277963141582765291714284521742896633872312999194117144271524590692960196198722812803200108917787839237452645875196243138629798747389717856731805523062486818587616433544246572114337305335939493359225897801018175502315241343928103885550878583072556530635741958163559169369335669904140821475791923463421959431891179202219014439649291189871196316183388584612509404053763723934664457455487261114583057166293826985547114212512718270930443176905582663178449413372745145382886857255047145172530437755048102585497262300962100534450648190554610455585009745506144009548506306454275329688231164862525854415845238693928793513703267539192927601431160310913480676236988255967400250119218124207241939256124480873822125360317707221257452115873441915775194556875263064874927759842802248791229248785743190474530873666343482940997681533568293206877612884514015587492823018560146514862527093005080638127809036508753353246517377816225585857626126543555706266983769624794418919550734969320591152478607451249335117300251778744548259036598816216109651035806605304755476406296665456337333944567818624569752940101732303085726350850077456341617950805827811323123708298141807614448883745325879351601733612341550030476659905066228791171069897784700868797720918837739102880522667592022468080486740829496454940282502344202648962488019827110615203592405168721722170155813852688955230000314211183549344841334192216177039844752891000721270157966356265987816849561947055167067507570802358988976228912501224057522675934654042510676174542986851475289777029531736937128259561978329871409287604818233138898666369036611277692642041853073854431512482560228756084559691429788844508173670191979974483973119742529721900793648543987407475234330716348441703815226347317031632796585606274222587300903748061968149943521283635371783738812404196337011599147945679828739632101408725156384248339842058371749943273202823586520622024088645080058189436165112313103318531544103734889039479239273274013850114506260680735295039349536651507320671537848534285961010677234314101844159771817169537156540101897503990027311403499607294160412666724921697098502380147935647682377694541896724745779121236167141977234461383517556746839174866491846383356389077962243254895753549770127751870441945069418064014364285125816113258153873121897550012307932952542051528548410830957255782317179590475360383041803260952838243380821325715918635135211531100998544867208794794705633077363301384252647446878420024178954224103805840096766538416389111881222366221131919273965740453424402103054489769957182409154590692864151911572727782486240702816524335773644634791637805749691733941181132693667619964964019751385387053113159968694853890439096347343772661273448924223319626360168195762496060244938320350837085426002428627887944581101758284670884080409008268343397810344019966189528637739833147175550680308127218050176152750149331249656264526226293787736752488771730196125010346925803322098248815476544507574010708250910054618091045899034682317013702475875748895036394340223693678116645639916802475887681807352429109574434441864775331641666018071696076311292619229262591637281733891613822166359471447520778713496068087755669062825383151810806073315800956653968386433436642815503581670562694424926188643911842586072735931817599567047255263612828497840911542581644054640524727419647576840218680399598808741457233035096000543306723637506568435182640696671094980554378533743503288857228421843679204326496860623366822362816568966305836157553516217279246118917062813387302382797161394659094054041935634067200482146343455335192928847280309825385436481422887907694731694243535007008233139016745683653725669939903949810593262202593925546239306811661479529634860362812892723012661481826992900750015448034057274868832440642465710668791180109412641553635740687411792922070387030890048603904327327969577151734439860969602679485876905257885901467553158515919854377083586641593283461871390932322469143304530508996940280031693824736374542525822794692451139862611917236958378952583190827491590754334108689720866650068210527656556912661630568488159914187053126864003632139424494850928351489745216445871738320342983814030269738721742065562939318807560286961475625367644491384521866415999422648891374711869773265384678870291280216020889321447428868352832931739731263754173943334045851510719348682713312164923787272398147611289803166195741239146139869216825964486575698345714244669402026309082473470156031176311533049041949935653969197649648068898536826787076684640647549997443198258260066541761798120874428942835273602180519391478201481485417190137071153296188301628628574352155253522129687400660003037375880163169479627992294344169423600139805693016837400787152652418894197995873997074392842569271158435884343394959728618713857841689367350101055528638718019207592403909314618619420747941754675531012901137906463616527012061783667006046996916343498642214546670547540128564546801200408154976453634001548451697749096005459672024323067896947129834131237837792468115496377566667907935401696199856865477176084026298622809005656524490338725812288757099502747461395924019092645653380759886387214122045560716375210097748560650494536681508398307975679897671006515869701228195066812258198184317785310320772876832372064515893698201965281850711810059071427656156905500660700043040398709084651462682485686279822729653721767428241554125514232685233592126921399313983668378662786717237287968488462319305495237756449456485924671857752172909829820629882021659699906735877794525164626012240833488926985425194160217558205593165351448526011992841991847752424234786477630523801800068036117789017680485097496319792702421617359891474531719499705496173665111411044097454476780430046204570795080483717264521885151324445107889470031336473688725038147511845406104204002127842786482891880994638669699932710617214462365054647859855704414378838120114447938286620166801752897172583990629189156188474295513186342953127946747010497695952455714915098847720345767187378282433699502553372292822442629380990762538738728173694708021085061689039255538026627226071814357888311027570963159454380959713138650424948484614294538294559736211194771144642967162095768534597209740936150482948060485031544517785907237291599815516673729494189727429709149611715701243642796353331041639735699022266539188445613108850633281027189660391317701712420488631908823441319675315203053036866468037331208875154625984809517586638513543570723137531711135724721530843361501296502111775835340931263215536660734837085121293813507663062022127552249201163945806824863096066861482196421852485684524267993617241574323877051548201461782556459973522689792216876144975168715301636744865585546037786626491760484023880226288278099547355302031806285889030701345958140947697109263838696209563582482374531160746576512963368470463604725586067817587710693138970286842329158794045371514161206136410079650342021615677997917740514037898911880725819956114173455223681693054239371299712282620811624048264333408650909089078228091300299497786942826442296334567817629091125930117581488971012058268135217959376235651218415968853247910163487359106782313442355538572090222270704463026752149904830415764809236036151517559710300399727166656403311695429006385411301443481063143306982706679756072956288290496013148003296035292016288634483775617141449706233963242334904691556041453085231063704305279767940713478692498262036817423863546843539555670362727164827610412693765139196914417085143603538325546100971663894257150190464818138054947566580731193018541478650690181605632032817338859074428160142965153818094822603381743128937544697295202443705031472043619793975964535425464010188609425452763195967939733656551505167569392216231037189732873317003016354284984872499113816696440999781740482679866548373049738676058377605931511342988930013784990060231775957600897970437532490111776627283521593087487036859941834004595918737046293672675770526223624035054514504889678143216496940624735906428484407012935275910927984124525721805713120632421119327285573057495646587637906050001515320049475000630402621254100344847933923653863350730129447956665445366168340869310617222096950271870551727935560557279103720485518648773770569433593863366387260202511373235494855325056548150739377671748653341906366680296319218640007153093820287418462822900869544210542654974685940921693767863853980219556452352847458569124234120762356694189983289602517152982338576516695494864457638857949982755453662974389667458093676599428574838594832060133518045815569462809509341196068098597403514618945225727912328662680045182774273702459629016355431238579394246791116020277361751545050632601933030765007510194228920553766122227642841581460822446808186794808593556085878777602947246570033767143527472376653524705085645708617577199983558699737198222190225537338615410026182971131983367540899634367961739677785869825208130098245795458217716778469906563059238473753320375212858984637441328115091858365432006717934377790304149061549104471212788465545831317156005192310528249180601726235615320145201960422595638013521803683820094186271578179668609325198331733324445058487269489768283980491019374285433587066194336349027392218724416429643338116389765065073462342915117673104618073645380233553132662084617382131927924532832314602136134054143474643497096175706400343002642388766251483981065542044382742235168541353062625585090028359924115907202330157037181361834097811899936947705396049738914508333896913091327561384158946581984204265216663449722737855536515091569108450798865331418899544482947021792316334648410221051646982893804604716747786645387217623279448707587061980659502417396945736685167175746611109816870295830034910290502670606698495918544830440970317363705073030409789295095240451178536798320750259415796403882804081788734474285462679295088378120946175462179456624079357803803730344842218317311338613506681387014330852721948500041709281143721575520865584313579664282680435710710866878759189652902559077931341885438236547382528864335878308076196053064491385955171883872046123116819468568780905758450555129549657007858770645526241941968504776994442359994761951517574344516153603067762277435281693169351117300872346348653641842403191131971295112571545902698249396103575917019958752514547060129887946204125062787643607792914741797456045889777774532169502854446800612215180118939271184104463832796110611745857185608005642549988350838298966498615542963139639575461881976622232397652307340143973962009328267501972523943554823103551507642793963158649433528609052022229114533085095394288490383750951462648849330130401979950150919123599974117004098548687714117130056696786245146229133795635083191903847260729634038308147428806158360281804028887102741147051601699694444290188279901388753226190885887840523160367259646889402492719686526163366507427929722236004378773829455807520166620045132650906033175028587147969142037147473785376274415628680703194800827161405672989274116001415554265946836495878054555628098113200183815545818239220800662155481843719622575939435003070839844631040144118335631916856827005615986591403231861438944977987589913346078692221179848367695456074501251063266736791076376444795132969622590907129491335674504924036168520632944396435764651661060258664717306187492825186066005515956829542208981640543964660623762037068959531581642055779668453756255478797051970602766481276365764147073842576824345134932121308003530529133581118812613476498501346149342174136844829957090069231705593171219122282538383066317076149272778575883818779415805223862086924518972823558700026581806785704596032031455934939129404803618933970301141763162915452956916503268432090061249546725010253784213461654851262823697003745021989360843822951055874962197080964388682735624932329399325737167897452496366523151571458966127236266596811683816658650308994610617174503483839528468318221212194503843630578919736332026409254713897086352205577374536844601657257528797790536168669175121548447141673168860214803610988545703392085993007907662893638750712973173096923986016743982203018118876689801822959619906823538998356946545197043546143998599081536430074824218202656446455231022563850056422321981001544232785559030009078958639899474868031333557101759504603712465508021445854337816583506538451919056342695242616112621365867116337711168129677079300601409097373849033162032355809544158037817253807552690979853466549012594500589293983588102782348037809210368808642981120558907948977460460937484233930178375203958172585821400476735956771513062048185674943188274701511546392210615354567354533544874691827414047742319522602272246287512310122536428752516062283492826352976311912515473490565643086562762527694161252919241895165786984814515307397093075868034608724095709567746707472553658701078621881553631461989270464896643532804500658735892846712566022409274100218931959731996295819969219205956321835680359944221011919179556782846050124669163705995223737673786582367344334978556383444489316561481759545290791072193669826300069889329483362535726169182888009150095201615759954530073548146488246004402539204587396354466836104773752823876324597043187466471150529145426871330073237839951168395294518066003336446630619275889484033536327835588197922035967471397185914653132130478974861904258030072881223911632331711659326918244686803271803343109410090517546348138005417987364737172557342887551938269366722795973649251921767691713219887722698646559770020527692321441249716303199674276663250597278155250977416279380677864917284949954962693481665502967228803831748664122768705892828693177998579326958569988637039888648697840642126515447569674283242751513901544762653202077692912869992605182606227080153018324380654548605381802735505570301063640262649898278196890124325305406938106390022899455415539885882626059017350871250911631901831585764365964567588694816859879861596583992709293618565081769017380081130834228202653926054048618434420334520586666189557499027167438383967285702859054329720641780855045446319452119832130934036050239407396297896067722151966403350008586898116698685879329833054704970199990702223672166905251354749985233746160434915172348285788665274334869873668960439712437917354674888944079434916125531245434128495243093883561140605102482177708766500509658146476658706254878595354472181437434815112744406655436427784497117104734057569506063809352561522400425758364503504568751083670135953998026573052647571999801025601402555251019483958942746764089698912561040562554620391306760305603366206705808123712543766297480038427236222910975214426156321965368153051357999691979816045271813282402124149992637307211423516073014617868729300858037912841238780245326861339443113115370607007199514215065333266571028869451989482110092699105668327793667217721980175351740319458926400957006061184089907050314781103919144750452288711883490529110667263154676250191414220604433170616532560098269681348277988264126034714988659541177070395353201766977748445514992917900667369211342067094276367649601304470892824625414507067140125215923158718329340383155276355339498196488568300675378479348098839103752488467918832754989149880530115708318565945954320942628885162495740946835601791347867169555445441439457233018347159294690197408035943449127376163304050902444532386576473919685044934673346510854675726283035144582584917373445455770250132935083421374106553945183950093286749188994252244817773831486666705656058174866396516025733127277232438221139104095949221921844679250047768668833994078847584897968167881160676315318761253776672583637783283802772207807000761595403020715833847720466228927158381514122586318766717267061081609612200954911110803312596710447410569695488152288240865582817763416465758535001960773599697920171227003795196931164599913190012427146791310237707153771960260593583980938389345287928958327819253742074583755057219334939320435324434819355139327839717118769242248475188069371254006729740340097563201914639371436494870034791789586644915187296796240807448833602198525769095031505454185457781873083172953088005178738329799542636305208170224741132294912789765399207697404188195417815174362248695858665878056145305382969004116309242334229449861494591243233233364025200291941327806804881316497855459799366101396104509485219433995044366073226388916791391381057085362036563295937377186309138762216719393604552045304763049514105525850584203306894930821548815449954494445356212301748773013866730690777437310028981226472386346065215416908004756006914242426706898878045514707143118726123079911777570029439320956293552324097367829743446834784016913155211349562165990687196582188699423741007759384131478694715896222064560183475488671331927710650682349822088478452486724917728555347247826619719979375017442094019307174810178629092621124807844974783592853672723196679869106512228188000128558650553656931503659505523985373420994086681750763175778642779689287354644546198973468273654962313480368544540507845120205028361996263424402005177531571411069724535125095186249430651577552313131016030559787597583999555467429407829456218012591424738682908178590329936665871020273435712420070188932830786508993630019007661673326162793830007310810031304931258103821581666449702387416798508942094385615442026730886459690447203884621892769147926863905871809077375567239460004479074120840128943765489092195234320085565044603739870403520861922593796845259850793344711595332513805437583886202295899017747870870729390743104246849450724453708283916765532537795596234300670922402556610685902212838206647585983604774444031226645463089421701638944536093042341322975703622725410916240710001397156389038610453009424433449038957155957558743556121090082130267105669835635941210205532080716057614894780237325947463460444414526225424370640426143123295245024323533263367024340476357395452708351756262604368896682327030784618772649868170731090709960190096860463189983358229718725725333453829186929222180658439597798242698216819099772084451686333307775365396230504358167075087713777836325702428572464611443322356546220901243410048395239596278498118313221604758847769370956576779334374206824380003473914253834945870706967575009874769854117535460818493941521670923192597980043781121817636920083429982634315496353631885502223826334846404735900166717611383561830096595838028610743026077398037574428069808335082435703086685586928009777840210489552298492362658016071587653622252382888819528608198447777503410285422633214882666577931184253287019559379409530135542167706703795439189290326939223692274661372440744823319471862571473302899076649465801011410809058608355743967737564250495167319279909905552800409213208358560927524326870528389011482082182539075221018002933370777670343395040893721401722282099049146032101616545850906563720833815465616786434584691111825272054889051581298652263051901528909221828952512856735119739445296722419035403361490963963468990130344345655781323695434388978058962814448638803543719156773500336122478872469108700014932664248278927631448970799355348689220299549684572730078826895400980493735296966194722504830522452719613183127139850608122794825923296211162855771389714156892461088046371357743405071468272463626984573809938051666830269453356061103774535536484091707315864198582085611967114276947125306855115978146328417464508688514804353105533669977787375266334619438175208780123715384024070477438921728817853024389034967242831088480739327318707283518726799807559404461344493615306009699096568969110656686710299123658010035672606458382352897298156279750223702350233467344492408743152387566504375645000870018807361477334127544948203550743454970976523268468170822526401915926717057757035544139257991897881134126332848096976285859831072142646661150186188807338226911129602496686629364211578751018408898461935833800376088804109404470422290644134856582533946525847386211546614911556156171503910979606390385099603529954885358581955067725886330687926234408762537368352351699013358014151311780933458655963686467770485699263597409391349858422811481083169544684489964858991247993155310490179557134219085139994096260271871069572237009161880887527194090548883618073991010226913341118564321854113154251342886078892724798253372550469297192974518040652368758531835923235081540997357928326989986456824406517944680160713873338851579777956386379138693540239534596414860766586095313706959216029106702805798999522092889199258668863591518957157200573542766492903934149369855458279954061540778570647520049252707916695492350927736945494112576823282150136697031256036622328304172994891259729793545407873110687674409001244614787012929927571112544385314372275119338310543818749950766733301518872763517845000532154251728134850922192451990679994218889118437867248046193345463075005175905910935467401686012174499969473567700995991886679817742351774252368157589581572065246045824029114542530007743759917741079650663370801974826583916252553063681289940001294303812743872275839549858036476481174834711841713364646299518203673763834964309743683606423992916216351736059709528935107234018888841365923431329342563143596270553206744385909864245595089703134199833461106246212197254823521129449797409272272649372176438152124837473474445902750908008093616220146423816218802273231788389750351992541237027638164339117142469293825854436089574994565332234042627450516364527903477218649221078175551363189632814442021992063133566277872547374787808824068442915590614097902493044439393501909756787164341171785721239063671515823722322743017958106751717899721138387043996133546893220383831908117611695210017264569221755093055723380030303708085363311671751920272078402298809640475116929151311934887912193674056216661953244364756144518849318977420100991847035413836136585704120379521811653670065470459375818547702311844169011862310859851111845622393478611477534142935000356007263982561053769921726615437311043981677547355670377520293313554049663622858851886537456590526341296620425626608229568797960835711989356931255253022119604153778694443687121263544889167557779147295162671348747898942396755205866712018307592826413197510140966405581073612445913394840236135802979282465773502781445976569217162327794572097838890360047151216953003108137509018435648417964758467337933271051461141003445397111278458917818234726243870936922337990235555603975669581017739462347890374984437467930051783474854307089687087872352465597065125776903208451345271113640146414997874821227688076177140802395761745063696290641978545411444205494641447619959085086263515820709667673951141798018739825398735531281185978176980544786458962363765915571079671068063481749363714762395677621693599747729493756105909583939980698306865324470490816502641164486663009135769921529306081992118366503229004966789850998513352368660546177481184579953386385185837328154616477604028040993143513141189630236208528205826905204887849992137524383808703941091592419905163385653170886782964256449569173945469972126731049943875431947636950229414186115758082684168547198169552431826429359083521247157044044223731408205883264837360143044107441316976840964954795975941965642474329201137934180682747425394878697112012147507211097840481473443361560053624047206068025406608062299846116145684084796354014167306665514608274474561745606437728220210070814984522060686982372594882146018797910119628961072825706254967417373752177838115952863807049087616260200480904404763280877551512996586790925724467764135409381739740416968403679475548853695780443461700890853730273532942108658706523443852342508280000593448414681936756378044226457171001564428829935791578444116593010654286644486941471156997205143984034177880197553623128390038564806231773225491202731787432715690110754706707767066609187446827337305193758244404086677043071898923409003207050077455922261028641180519041399292503632637604181051729557221071622023486906059387593932504485223312407224593203451424714380958282602900002589258215249619824856256057083936006382008016495472221509851602935691554502101556871911795598424413019492492751083883785977937547820116618363907983134555711699246267906279581428330045661700453397958557953907325864925266507647237274967147351685564757949362406417046843933846627834367575995707532837951830431153142521302551210152567032160416991327194053977234301185600855585631564395934358978381232839485674769053100535684100052208024221093671025091966971892270152010196090538671279895536928357221479015575279174401502357865180278132824401960638651290970793403560048483084868447514709347229380786962446779874326302362178380588526997348682854478067359247379866940792262613760465820353189161650996889522822556550230307862478727635786813750309628083455523577584210778314610140765435252194053823076353694597836682835841011324107990301926938601177930034785998844635207803424376504437973490815896146853532502612323714647225488899920203807433196811434408451290002633881509482340517757345517059018402708356608430870110076968467528546195621457643882474238786300993165741862036965972914926931715830056100254877104809696445456826988640926814132822168163728022152965294494646649784186821135602670584196453791461353604384306676058643942731509733540720861903965776267624587936909306975591502119006217480566760434963654622626603289759848002181530001464609293812743810503076552908682220460947937286371928699360900607384254026403042194692988209366896704633654733911149182948822812603208665063685089987242557388710994920210166611717689293153308597377562699517548995360988787568384003282265744629255616071285899193461004549873656705779108432010317783691645594769646021197109167190981965551711624498079070103114055162004654509080044811786083923378409544031732291275763003940971323047577005093087846910887160103239613298044154666145273605690005292623115459895050523118504807704314362142692953191143527427862916424110807204426154495526844323474069633111850171950417480958771936995242385378060328487688658830978539221605633232638450656390101158763785121751720487325933426861246144449549951110576865288092563243114227366642140094999271170609573932817309401111089162583045875162373803523065844583529037360772318671648692986176864196947855732409394387991972709056818663711684097254865654033589681848141994960248205056998980626597604191590134334035180094148502982481142771496960428097066843882928228890378871059817524033354287218289122353112305475631192828761954790264378137170490321018130990478785506823090487559369988063469524276421701928850247406355805251546907962298148500563878511361021771939346988331572868686250841326015271103564103901921210108914699401202838310135066294880848835084507502019995798548075193101669318583219695836804188779873017188173386097901388454295639506404860156320909847852999792577313692536446054386009269530863733957962841566945124336510251655604076548753059173581003254449322353352624675132832074348575518418160738727629289301378829886162928737115202716197805569615950138382334559217424343423042729681712618541803965574794147909696094406651621401263775703647910799918154122095344987406726564768703446345129848195960446132393771351068534024999030308038908737468929376746735690560654518629152132346637575948251722317636532006674041112002340777093805592036941644736385880508755840960185514514048417356106470529135664320640848110025882528841982821575078375247046725055951147014011912259746135525491975245641801768741534407910072394951747357520955284686323674100314806307768279381179196655036093619926937396431844448031998389961134641465921981427466772127567976358764937389982571287024097587191584873887437612665685984416919286499033747112429916785520133990778159579289153770588524104513406044088435070600295406971987556636115054473779957303102871875099057273201330700578365036635792805895745653756914276304283154690401526532883265183849402300943742102433814588510658223664429620433340841252725173389397545269483127457254028589157255673067864135792437882320815168285892874805623784853176832866034865064990833675062038512860260637338557155145981225543263075230617824207549225679555841793457320432542830608448354178461370656323245339906931800655337517190693931314371431877949329431460830576273502794156291041309795688565157341374156290459492549179276771306241052328113000056021324734391395934134716971864907041785830140422724430273902883811579098075410133124802080282602975391489843987040252540641577640698137785334803929389850024076063008520777783572493386628518963421026636547054002664674904431395933426974647830561487554006620397252647068619242814970307103222189150404026718430861528440244527624435281247651821644594778123363568032785292801950032020451028405488928300402902665662626356130496651243890658804286471429090001998038091040986684309185313604759627095015744231394400554094489700315587967696400936266043139832481930353552436390831531185082546428253960486196563750161672287330367728285858056401021247456867464961199406105423499868487349174035542078519937887281508741425804522587259864333075722488111718671963379432559601881210660716202678062762517812628223092107989859673065815046282233422197426230103177271799046262376815581315480189283674145701603371718560227536475282064763445397649175506706802764076676780074491432417294482555319630845681095629771531671917737785987195287154231725295754181938664269799245441095910501839256831146318155783050051738216840203167009856861908514187153252046420642938071690414196287117403787383831295751103154453695686829644948081531325661070383812428274316683203902514923445373414113347444726855281664403111568193009153108316790803221821844207620100489042926312458711889274539236421961088526601486315415803286297696553975370265799859135880795745266288130594940027529323464275382480162009161435993913430417468891494796720944889436294942993890010487434836061421262452180108693656848390962580010818802109375997972981026808510398282371220244667026943948991610703724201454890230995730446661214764660377840896906187649754721386721545584789306020166794836162905844260093112801421469318313373448473551861639859140602431145906650607921260849789044282884619403862694934086886313853866466921964661661914083929114490033278311483234714721955556279949340807350225825241360220010315775754819200190260377071838595750499837872980184251192386683188382179227011951097454772794630106709333353252496903080390362336837722737235472904428889628779499665039962098964460621216721027172473198107295097591468693318679047463585940862428596542520904698788664554923134091251133229861380549609877391538672442849450589226758304053033478033537215015870619521988196786827578099098158782187655858742667549489820152712636515985706623450349452920719669112809312550434861625901764135441323011740707326258229990542293826174719757729107945004125080303941303168686044532680994752075773913124861201880126762417729563030727546181512111342087403088752734354898740765797427930887374508451600084657542698677712080756586397613870290724604315230538809369343440699140085866869455034823806600735489847963736553602046059787531460296526893580998901711028758160818292333354789105937662411427717244578038696015490349528746662956822701576668247890108981639941996986503065802865558499400294449026748516706672141739879750509111936087040325787418067089552667562410677193857253785243195856716370264593680229743832858836989357422926699157132863791456474546768046982725202314074890239030475298290622956204369082018965605221610566751922987134955074578397404351738474481834072578775756729350501486970124796396162253305407765224585460224339457774810484997540924382872427702852660852681817037869438562363184515823501916398768785654166545795096338629375915498732516405993417586111947517542970054570611744988149668809809476022421149830183857555731194556022220314470593268222504334022297355862687367780907221707596874035619967916332859838261824256624908812195227264554359304250181414918324905276459647904625636796939787889279143738657948092087267242461633113504266943059448170517224065212316811952889131959457697334909953123187799392947679553413050248911614030684789054322296447993742560314729798466550164474851046999197923778349199164567186425421660472220931242491581219614504031344794391561599702990721947385221534711730945099084026613314409555164821837635884647594262127561563327573313563586030065645811639164987206597362905924432837886779036255250823833199708434844548458605955118009647740522607320802888064885292551570013017095510995498408825745874801875468124518003787239715641974800220029731932266657564025579249779925978093587793246726327461336197396710085637314399325197434403900861332067156458620867652081358326927667766763278615196210938846332085998920539087416376567032653071092420759976118109802231399147920118566257316668190530805525193959712924513103995061389585364710402100126161713847519341808575993803112471173610094717878462085822566957510834432600432375837021552484958531116163741991202469070498235771555645554937820150369976648873099006289902630144970392246539021930716198581491230118782398186040321534510628853512805045751029359064994849787230431692220478651221320456024413672208854734184969450326023443874585559990335468305055321787901669724172346882977099827105747257692781128465041038906823404640822189631048164686446202026981320125032528355023408402103307011477472526922617504616835931860849305230288371458416939880528735511161298746676739450698951810950998461290481558924334770181423875461277225581585287036317042229677650946956815584669414306288993282212666018497124115146522348536430729667900823883667470955371324944936791807074606884086106581220125990563331139340902225125722320604405453562345699383610332494515311049016497121553229171512149611166089400352281634879445908420552241683201049160150338256741493335130893416218655499412976264637045145050423703351310753589812702902393233069777930241026448829981187831931590092868872087355576487066695393877180254934758892779396034701567311563823517822114614449261777840051067977608362708004279130119757790089911539675472156123659278475485494395870764472334133283209845236756182318414635332709171692486583776789903877643641470914894832258649879082253877737159113668434445366106230916718704812803832220298864988083798674580821646345344868906433696637262743635913761471746610110356680441763487606347063898244646173647330440114226795600017743136066454644484621933798446838057292593223808421824439034616585867953209699354765339076899373256532046952007059654278518010857438760855576840996045188842974129021616802270120180708474212219234472435115811888248728091110095414049798434813949434720255673739091719291754895709274831004654848786704714048139126350054219883465559138600380351857461463381662519570822893679796005247690655582459561507317438425628108204768969260479038801376107372386106753673394619814940066840529233985119357640673361763842155736978151252217873346463350591853055700993861462621864013834471652183954985481989966254962891777506886726441815409409070382893750252027571929133537838335468931028863180602921170929522821918704469219711831676184018648433615941035558126048201195525397622121236762560742464107016812587486592224538955585733043220459574220093843915758825163037820102594366318122464844980932393854605585705804385592398477879848442386582829462758563780958901575974870700198368519779454566889200075512977081780201183351626729536669450668756944511019517523396335144050237654814977770245491746820865689547443767361189157854848434002390537676673231158443715839290571414718609427582615457946552858825913178537255382653618569163954412468080427465285481676508130145023931470049083197463233770996686464638526833823682482875096448204594776814731730232106954326068976486921539294496711578792145893438375600278566900226085212031311778436040350590741709546547218688368406011026263713716266728954186905777573220398766962211050934330796777307827524962469555103040869694243412760845711193310465206860187059344157751655672985455463815710276054855926805324352046906696107707501266594233945052862833454277263976257170910027812777655333167925865004609780966868481981696216016429013880078415819346709563591125387174353688818469335470473857611235959996099498926891060481445190949858993906727719327429181094334214138664075199862086745724072793305555427644239231964104950696668366199139918236543221662078416394310963167390949171468188493664021645591640141829481762194492117384381559146647672668658670740837975078630724952025846344906246903769302856573658810151811562206847247080588259540921418080612853167744700905913942771226033131504822277674258817617717852978122849554929394631331132247813280968677393872273798117836770974241721441942641296247489598982077005746778431489479874258296299419306689015340872421470666449589072990580176596217553079581268615033208229158083344422437645955577339958095675382596411721729789016341137548518528045152284242008531019767022892360735689245242270558895381057631290118798658987709508881418220263846732941581614831039246848549159334682043049455767626785913506157263519206830363057415448901203816996429678590920220220627089813569847948294024681232671641548995986459516546874253305120112611289403657162877075270371736574247527613465732792200187842295832416052007720235257933940468175069967873043332147780714703706375856398752906894404598222134220183082280292309948469437441951147022623858948086635816928716437656655056957346395328187956559859676612101545549929224852320528202690263256428145577938322420302109168736384473664557873003191115562278163937448436782705809474853719040639498698194766428598899193186698512879697752499937184703765606796234965537906934532746871323867347000312994332375942330181413984539687731430986882332630073544561187626608038264393415265351667471433310044634401062123527787591226133807468019773889694229114938225176662000543665711804640628113286610684011644411381388422701924120163629755131626911242608554216468121630476624467518504731093861637322214165045187934031424573877160136126870945153365934405881926904396263605846155523947110598271752969142966696516014119492476847843701951183435489722176483161819807471808822342111828690442817513795456150638653355414824837857694358688780405817133824378857829442805923328406083767739802794143167743245765156250292323571297860881305573024582313989168624194856433214206236949062616736421575783464888186532937432942801589306818786577508313098140533483940978671237030837880184953531017942296079980021117080207499668348618833118111759152150923287001284249122004524338699539850698202435865866266793631395782724372743783734993389293021703735606197340061878639210300954561276708278790763947375328614586873161100885483279199713748225096768302815875113823045578852410408406365482292755374216524177281648206718867553386837018214071618649536913781006868272143324789925188619702629245463978114161310030408585328901378396579682981449800110810258840827457149831490130319898693320066270301653635639735144297791086801019066973837316003052595854248514649249492454762652062088477567324502428589865730243173166896266752121663846367651469605323087939869929578731269007437599818398362883158595644910053243096541781858116088175633192648259345801164639923143629428951631371916977248207217533050695250883616493289068126134828286021873204175979182948932659742830321963332923803941173769691914546961363715694653053291893319157135266384033131326276490912447816834459208492496112927473791360994097366072595118892226683177676809419821203679217413757268242223762304487621856280097940836667808271267915800695025883180784959523053226216576758580154738973254372745366255299636239750367285208321746133718854259206082709162786760478138844873650691655766680310981219006654319563769296035584481184855295078144965513300360615381018677704277489221108022088577181000552215997763547598489975958081376503139189449280066706291786012992492084576216105323909918035431634314330002167491485728816128692219329405327524066763435165630522141244891123478352440317195987878379039404852462021815690158654736365446871908228867704184680585837316414075718460378480346111205509753802219750206889819236831471877781665887563290947954086915822267336195354082619570324644302272004995666057731231981934797957035422813264739795114063862859632072056421186601691084485830240349464005495605512792967921416035651282265036653986230248794660564306799992625537097306410033463085695304223049713819736277145604543009979535218163555628880738294382069067473624419657403887999149832471074243674563251892095844666288654260651426182761292636448120793232987004673676142281655776145876807757902202490608376074892534650907792259626132887121773618155812207592548721088286579102777045087117411170783165470787105156380380494062062698895837931254262243319120124903817596078740227166140513873130388814612605528262563703727777134384637751092293086793590639957150500866042983968918263016936697653538673873603830483757447232377873279835481992781377818470997139882016489447204948597585449071760181616920162802000062854897395125032973428447784080850691600491339461670866065473732144266889802450100410902815330192621533770565668947164996227560273340284539441248847974836646241993894970679059754724105015064852525463813388742512559942637794940964331447785922603595563216369769963653123742750584640323285567408301567062022476986404529997558202232253600328714482935154153240111273622092468133146100764589988450925251043225237735784909723989436461665043624900872048934428764420407731033266993917526850022533543076522924114150920116441856455787716314163613225497553808732502148946649265478189095065435327511884881420516562490584254261390735334369927388301925557828523313004596400471406730522857914380032899096628511591792128722506368633115321107617242337012990183888589386801568940882169145076786973171613645071417930741111799535330242671009455984851482845778112497506791203160636818948220910678903743520334701224111795114306179946715978635440177098885477545451347432369755025021653559085971974887824280785593593876677673540563481136530145287751432049100355995538562693997403022526301151550724045053235000823082100950213458795812618479086744260701497915179290360756884730778926943822900215974643629839500790653936487294800014190496966729389287639726545984176992200666696357897847479316099116370826791270481614317073545642201709967240978790543695404305671731465640430658922903785506062999327686990073984735146345009366241873003855812640338707284401866309978111466974349694482041377278763084125492921032433301143951814080402922683653909078069915961787350674904604309067744453461380213939591540446935235891751388034701715372362102356872074841486990900580932736917019854178142155956880170799192817202607522702538811008514055077559510485994473236188985359272195930443010738776860390140807579387995592924440606419765913469888887051201927945576902190383904949591462032627547234464479626333458027668482543637559394570952541172918862328838821262966839504385123313976248375441582873305654828827368258641392193056864338118212034668230707578621083668458942557265588806110838923867255281664101357843969512114325203513652817829826857461542662556027757715523098271797714035891068096817964926212737548846360166648316517994521097208773433488850305572330427737488798799031760264757141357230480806805003253526596397538334826767153472898536749772024155825719265667385329716353024364311796746929328294061070606084454409858902448783368371768634712109810954071771276779431600794148586499011117883017928743754724909804140409932970018531167239195215186536069639295971580701066484417973552646375983193195588341494267732973712794855145690994692137742730513557371123590350578728829213719712188852392499766213517316335868713926399820934653207102198450915156594962379471372223850729749079599546013113530647017947603989550875561367367533783688536820740203938842962831146048242866208053022733020901627786795884003359882428917965626912369222254415462254653951452277403742823473726189185517180299554162260280275985332320017979196726786769784066971223693263701811964261038318456386914102072335999634756910624348730727841488933182729140399886360196533802037334358879552925372376461967690498436338877409077950273957823489739970633295014410016797005708098954712194913628324101977843987270501684625798628188200987803530681843993502003204555413898103917288383402903477810058742600706532928431435209817080508452814236290559129934504025918145279060693958204692000478633007136634395699803665622976084987453063299492608563910892173656206459745381267061968087906332375165662359271673619737570728353090336431844234468756936181703989251695112079596415191746179314582081586972896703362945004004792915273621586651932589993114778879801471202281441855799769224167129532387135493450040485578637398496775923612181592330512718679691218008780266889683006505631295059875325805945313852762306251116430355395428775296500447477833107568274601273730628072514716556496318351771458982612593527360479925109861506079475752314346192214312384064899248475403120196784856462839339040207529393623609740419722492172658704352416577344500969547509035550091413292893629939359333381089862499981571960925113195736076608970708453795952732501216942828157898229094172999780963184304168287554358690113512058300884615171543432077543107397507633583886681588063929190894318413252625943082454266084471998395291743422485887092646952592195500709749934370267997388606552022066523670798184069017954263562571210681380499408394998597667469973065530733281607186346888228566380730813114043449291939863571908542441963056005573391513082585762799504088327938386358659149416654013167976387724782960178068524136830177407469506969716186723847176976826305835018761979363307159912199554212742314251899976910802491777309067745027701014726706046772584496030648312145890757790657677368133076183396645289333539873023931958343685113803714276722457668442843072477625979049147399230840737200839360002339908907684745469902191446340468201007415271646179279478611341350765973402791893383415032915329291140703772718366172586693473676002352324315999747057409162709412754325932776120414014273677872874540890514465870614371625821856670456704301606318280707752068933947455234520934872057866266494536854513997492307911625604309597354085829064146007056938838756066974245288045374057307386386220228248741373298356255132022818952661811592944667763554111604291417035846984819182058888978050064862571214186564121611922656910824191397156934523330564592327563069611426927071851300615212177074717275520881808015570220560080729863316951257765256349880791773764702985937672284627232946385536393558028852333006161794383312590680441788200230894751453369674345344534489193097764253695251922848359469612211258226835636105960687533385522633527763559051478135909675140694671340417778704302327709615862258741516422558478610085006506725967544001378137437967893337689090368466255758456693799455571067278407807404980569686864432977475196208512237198964751680440366965526513304770586002932440952210881924544296012101629713120308647396019795483989282337774451943944225070829640293114176464722427621353745122974473064199399491859240856154579697827596801575533349041581894019265480915401249856486676331748064773941534783496425424934677336243322147187565709144007645860979439697698205188596066934272491547401511592872806314024195493259915318516557510263444950511325172144346288026195458654491857566312637830546782178316787377074735585567973130370493180893960321258886049607836208533291892206224877677649986824008759815100340939477594041030376177260225116606655061011668904017231203841963684338958900940627200638888472911073371233724977748416520401838909442719513738768969635061684349076337208898961985757743934657018169727128604036734948789083034382683593002117153031696995045305341065752090059527790167381227569215107434246586329434098649036170997291579628425606550854662206878030861024323126122956424123065137959597800123939646432798286724966541833890031361143057391872319583271171598092402890894699974932433840583916684031218858978917125744763973121166599941122153134522070154208138884483555340009047057905662842533759683436784003413208428234439574925270663796947809247924713299956898038547907816812825576313912341080813873868511877923166334865647237900498645455423395569420385597593095385164748016071562706059992986934416307530797335663346718135492807008436196002824101055614749905196513550918823523524359674335421234298169798234337032832543999422905932593650854628821590027787543668453092372280703681445662205062433515858830653969705034733254047090308430960071878894158631493306670218925121465481708929382229413152459063119677076382112173968104337839271964010555306132727043643569371441891374894947162504222168537709642327338098048095491105308938510574673383880036269196402861523176685138338453401425345878942829379547657264229479303804655089881405652522115412618293480131154070261568050960119125214161852397393432350881513058131531484254511451254539300681562913171424318010816868980893680590921110840525214919732657720874103529225999629688369002026019491729392389309585063791886497445498066405611661679911283910291691590240755268500241976004244293272504420659204023491973734668921481960219511709094815730547503594755304538724186385972784967006566825615398323222941470694353411852362309211241107141920414352387822721050050773744231981462863772928429369086139606023662193688321602060271913038699110160376117571227010137613918776493773763365439754970595672270511442741088933822171024620706548845665779684822203070481899759187297176252685453414996030750776458525959884836630967061901101513250741058686996942941009753725059552480556124049472273115623286090154592182526221806735902493463601163545213969660655990145042078549139976162414877119305229601029592661413935943433176084534641734184200856436874794976026800987324272656768075127425980362035578926414784451218634614988760545666524530190465425702009990882038295118528341701996814593486890510637654342875299011889696066440855655954624051283937228764721877723645663469837285827294813000729579808824053471547508711010180019817458175446208586148495499692047063811714486514203421244873058838132795699003035755838631960652750310181558633028479437393543529319539265905519910031573961786789223921933360071634160637375694587606586737416460766324018115273253274176732591760509959815676544140835442197492447530111052830534176499909524552563298741992209462814088059292205315212570300681247934837118839972693916920518165380063542258603131494972150377325630087087490566716014009056288378130042753799495071988060477995886555653653773300251147466470307402229819723898827984494178239791616501075774217977035232137328277165829937950435247329350395882844800172563153896799554245931843436213423629656124085553348675599130161616206167771063400671511639898744507915637486503803803937200981206408721112311104308787272932286369383085963081220656616784362174884348131231372465081821226984623064838261645799100065096535226497007847168806894586781322478507966490020262245654658257816288355775830445472120329145823590117371428153435097477628584643472439862753422818187102375053939918808726805611753004270651433488122288775720520677041647249689660027993830972133865183733436294209819867375373982709530962566965093465267366788173748006479403620478872774483060684492431338991823651351021753268959248286590918210257632074407263154813208692256518480039679124445124348919132032683362336768854787516837280183247915215580650660133739708254450153391744665032444102821002962734829039013041806491225138537192759844330436616323354144737146106746272930128782116882185211759958787343948753504562405981453246972862570306657658941449590320854044748065971204731843370157691972158041157237225505633280926291858680886170750553746332589029344073853768300653851139920219129101402004211112209245283730274206430944768709453219253213051025195550366037786032119833284790416437195212026290614667666248564459255397029064009303429277250960814713648362731820352409135574891009865914728126017133245402587442743017127081930576885033434290150172244648641126053860611411572480112237906319381872422344269652175774721568625688567507682129112944549345793262769106332848924805572044002978934534533025551274858402234203406645275489044170234740927013784814002404159952667681138382940254081013698013794977931175489717638840395855281091501064286935590224675144509641626816633090905408683220868901031697243381171059603600706706819431577153848530915221982180322345090015843533264858141515715370285112147004431434278481336999139032215958091513110675880248881617560664464323005087828512397005981514831155976654148218240262272925002764502676011029036876237584227522102973545003554152711629933096612676232362928909952476249400172437286734837859657996328404545315857824276908153464020955104093717158315049443243889562144865604786466098787879216316750426999708554121956817268178688437218617760630251562167956356670697823154243691325859413837531261968325870164812503877444305822508736552790006722812386922000116368745085253645174244055370113694865398493021252485077561477645899611658377860760369860348912811548264473738564486462796031989048574853292108243354241854282051032578879362604006626128145801324183180082037193244122843623674967606368185870211372626582727158094809805744075767805157917468505345374467127598917397532151182609453304889950936724264769487183185645716300567985445910246845390174072542482827497316629344987449655763331234775430657938574821469409204548661370659659086976733523628069891633469759723435885934978295056631015375209721711815226518794027516794636577310257117333853727138363215584154947241112064563790872795516555505730641592183720969810421284682571174391320882643791989977286318317415693686624217985966255190372793742731212272674677241914670803221652637443247532831101684856352811815720308184665092943997621972852135206454161940621762102418038095069264103593882205912427587060959707072879024582838447646242926078095093116138920040562865971401658676491277544376846414610194528663411829401188774648978215023226680587967421643480278645498357228980873144063762004004168178316950392348603247523794137465734573907368359060173833890739847245337905103698562802664302932663106554953013590658780154948637927000580772445474169150963361669382708873609966759014448075897980245199453459581985325756201893259659937166024518238162453343912342256083341913064834095069397089793218066948859205310392426943421383830489719516066404710605904688337564056169139487286826241444064548932171105804192815776888009755570301710049144636561785552012009391324758961631006682197475558405000541924104237631769589842671300709797705408718107830790093844567088003272566990634661705802448446937390585859419511138629190015847968927795074989743199165547663552153857415322869058817725768934178437488936125690781194815756849856350695746535134809329546039763521746273709114467461121692945262829634483938983448467660517408599892402202539966752219332851585029576308260062177949414124368411651354964008617084171352808445804876411925105625414123850699672645561119481761393510304385030533285727651103334773559467953930671107135942566358432435603024234593794700143695098899265608654595250709755858860505634126332591481667366650119432563435238522806670357258087481138245979890259280721486175040863771186823943880536407370661005828442382060851859941971115971723679589737744677858877312072174962638306914380450638886308158238011636452510945672717045544931135001923011658368276992817249119140134855890097829929377835505271469770090368236793760390916708089740644093254170970706282533785170924875821236714431934714992536774572770352987324331512995562631138023018407523495281167663914952827635945628724316516161049090104443551189310276396106738284629063520125668672211084424850249569135847672971323303647691376945778114483711542767953214393391059360358549616145157176992808694124221039933199843125778861226932419572182912006841398531694682444307366240334942428246730031757758727388907090448270469489883477715511255307151213753369093175955413002492320610192713398816399637171792052079302356889315856555215408163598655702770865566277784416676982618639916762442585369175955005020407058375008986396727503442466450040366058302647099502614753783196764909606298879880407953291118967108579999296138011223185240411940086454554966458101733325693721976781464250865226195652357443676414233613855738923890003483926070778746181575954935252863549589420615203511360186361276582153843825061091560273042411310971338632262909079907426777440301288694959120181749441087355676657838278168497902494445323944474574947890305258961988508930019265522347274139026276722829020534505077598050930223310115079049927715432333350075976594152245664437812345905683173428772087383645868070265540938448021717676359932474895849361378453304505584923277242141894428837983645315849835490281044654871683678310171443539264267938167189949845029288848172496811959903998767551596519882441505789494566879350488954830670568926992716469943356720157424457092986921270934718531230803846617741742033893586222492615795684148442826249462284087580572849838553795874045642550467807691237367979889609805735084695461191682576576989218788230599578413703324632125748606594796743664547203465933805828776873212570168768261927521657400473165992818442322719992210819497857286792107541197026412581283170379391325833111360057150444522770642141396923365738740849491034464796469839450846828663593615434865218735663652870113253623081144597470799553364638931936147382600649831941206645266322311094583862431725613583208693430013349396615935050666811108288610561724916839559597069390729567646075678811995516210189400646669146893735956161169908445563970727925733918077578567170669171693487161469378249291634064695820147128609092258330975095631324585211515290757391672133016132780727623069497320909393532627595166016230973433764261334432656023766378143201866324252557879394949998415326603166526266452004147499215349566844241183996382836409394580882137699918968606473807640850551282121030062213968830655563156364373449820948693116152720774338757089118474257383941360976048709653955072035646804041455200504147914813555800821088041392010861267628200180371707319537401271310285155827868089258619119036008930653314245005635599247157899945654663809048829602439855209608474704986129124910934201979581044812250131402834729438053612664932488502812961008354737984786627790692391424412197862453552012160447976253751735800217622873859027673279993677708239218975086268997707210203249030970620246085448261359152883089427220312375535975024500838203059119335146619369276251087181576473234915391482982660713356978106948692080385977658092364767744217208315320477796343746552938335510236752351710437935298019026577528491836527117745411948303104375847100778488921431013885378646540013322891996976312651268378750503076565718905777562422803263663144662686909505697667789301041951872501253539502752270145802014994327699592605542348882606265352531902947985630866778942338820035996666447198487006881227365043004523022872383234289735814279627506537743578889453125015381141555492554215982144714590157023833618537097231215431176846702654946713319724914261786181782464412977022809177066783769605973840770655226586993396683534330575822108627066541268738905634889912256392378600755463374284011735893068429327372907373926134798134147083543651246727864847568768997915778460435425330698441605535579680206751796308736424084185133563074395801525839428362548266420405427106632160049110880855449537434630696564598824533000957058696027889030688795427073531862395112884623015300719326797056030987182568418710852701788958440362322672567405301094114604842840840478661734184417370939737391164037055683736082869265613586835064151449368804995675153417926127680618077994900985426421160781804035682322299218902926383546274479634151928900390857741578024595324801609907144840799688808622597726022546322456052621355251569191342706564528410889263132131476501894184164666614650412210714818932149743548651219751476329979919508737047010793859827226842226312979317058902077239182668715435514564186030354735229164091985537178517865042551695680772973369481979255743481178146783231326112275401480946458526825889564793413864039268732267557367030535449050056920608548102851662952959770526081770966222970178916219953839898469378082764972513246300586405716422788848173577044596025109192982580358662140952363094785694022602530465776268763014113607004318505484855321980334246383280508560473587220269198951700721523837928806800313121052805225660167821876084363716516918236996421266170397848297969519342546406366133975543839012419971766620209370155602967969530498339269848517677994299551685483055097663947850753404514217806528801344594994142219372818161248349420993055515982546829119939292068397122104902020425095660578681183298258165230993514993982444591141176050301957092002739818021459013183240923481003777815913368313703422842057852865043010838719584876053205353350919126127278912835521140185565474852688327748010684228175477399355255449189363501987863986115095765218328676434897615204482004501187512770925723157655608595464890665390352787841358851836054379613200936969953087627516024603567171541785615434793303752746506005949844558212257239583112736695471116372145592274405443509367745968776277457843825747073670517133713309133548241464296306839301594928957505425644113005725654321495313788720310941152671539866283131302514862128868943193201414355595824597807491043441860970376768031854701778040986772656337860403990436727891084066276332634541137521487667204281582151666275645235580880306406115460165573843790435457475678992421693475011176842799739358879292731858945454866774598893436439481341546391198372182475603511453685535430787780925203190308027314985857198478972484518594101115799586033455570535859381260617770126046561925215127904878242911101692012368204991236492858340519719886866603215196580899132744973335812278489495062625208411780818875783640446113792333593488025600766948379993769426401432856249361307167534987589009664722651529175034654773670621257132623854787961795979891379156224666231469479109459103991715490204017952139506966089811881322717434438082302371705329990351455508794436577116916152017806579835135141473330958221492101897947925625093711509057386217636182185126567571478138574456563513087757461607695899838409368533385418613943617127929938066584719789441611872693730050425062386756029787846776281302674109801054743526115021745642536058325591281778927145128234254092775350486238132678926506527317949074538393213433182287474735181844756284925398261618398615262503455550630335753747561674394622700117795630527745777588719203881433904717085513648929891468538671308374084318082915932445336735351599405749030785493567059207344529741872938182336075277258621057144208985234712406149914861612855243880882238003282695387881672736875826061808380276780063888453924901653337478521454528472679570680623407699358204403687723996352833766952410564608699357064729581551329173447554904739273282621777795074296561198067355556891492810714228308187471915234726383916048792006731653333861226118269046498616747428881088033385939228257713491260144959361141925852718049900753202000153864768355784570473430868351711459445480477797383632584338285547524435089292477407376966946347430831744029368879458384730949898595576535546339740282237191449256625457338345678482359714165201769912822789919418553397531565970630610967652276635508570886555926778428808814736900242183889845811902689631302686079573256104741181528323536778995388126872233769709476449274083375704287119134298661221883693093063287281948356708095077299763453355165633333393617721244727187823556456827775949278087783733766666727401545136176001699539537215981649187491474393188752729008859021666549303977287468063733005537363594227781320310417496562275176469474122478053959454192865125161027870670582945894681003400129845863872831431614632334254163987402926332164327392437723788951418324291787901438895017454816119055286395948426292387913436376625689313497848338356884508238250913236276974202105365716237727961509252226526135044143416796783429872053508999791590947424310729594107978723585432151592806230292683539384581980074653723670423790597715360036989547613371171010774619783402931603536526510589099888925586853945371115089951150835684501993672738475665630864909012908755572716149820383613135963488478842030364332974695472703930095229526381840536168914474645205599407959225333128489934660426376549818883277616018337465660083600189321837557443454393822308165749253294343542233980457712566182059519947096318325721276545358493217735732191002828042803593286160690038254244122130862406110873350089180222827764121478193758893846391233050814624139507429197890318677116683301058991518311742873274142238804347522354952286612487162672211215336740085268127330473397614490976849838440758046114104602482299078916409613254406765783139076259087532495799317497875457819100573603240245610372106473486801366758087114759019566777929182409237219160423194415731908215571710090405773957188559005312341338297165756879333352170005126942656642476719476673036674044535543316968007706460157368647049937452191017562604695530444540491290494553869072000476606221989122270245904458489333204393454243799428252908452184215466169415212455818053381168073734960267041055376284517226831532749188811233843159762151841456135165321168583037796750825495666391279193185196176516069882142831479040047302598319118694790373503699776553179474314712137372098823490461118637102665639713055351618765682852417270813217712949706385409632952066542868613044004592985856706853997960834143235108603906150216238177815381209117809221579108578921179922702624552170648200132414703137591613446458907816193633793580925875597536351191416240765823608218547690999683579388371260140521338584638101575572071334959203925311431465634390874837499378591899752983768822612065952890977808240566452321526235685066612266064884289152881944511119853418725440625011378949211840201385972834803785409643041447377923110744755433582464025009217760788129356576349293249224991944732761331130336291376229112968625540535600935507053631545905576687654892667438919285791381327459779719086356136572623642249883868887047268333146291387000635166958515308950600232471085473623552151605060657379369160366592721501908516347766013462050275906090965822869925322473804956041206232169467664312671373587427338163384714977256940969263582125055275888328940658646927327286827720469569533480234880707545782998274750907328839980142040622328722929846416948759304044914990271133094999265257550826382896371802419621689490147190431580672934881863335068718907837464060929248357637795178351912652442580298182237335604407279919370475566579070328314808941741541137405955214468925153846498889803291442129523671416202918015201588464658375285018054661876779208109665553210131323724008490027085151139608909351091199110005092929924754614158337204373155380184414872590932053921573292110850885057090288720612642648895744055671192832983834297782535406410292145287525777311769541135341605034532340407824177312124231620851636091345694830245954449813192050407200719148818188969770176449524133668667715203626530674127068871478518687573427961913319462308006363104837585061173812699074484088800255629105425360386062565234358579111891821528136896154161510917774653058804536375782066560601468069724738583525143754933450360060630788040232876645981636400407903722744023854664079149097712775770259254571135056292297545486745036411592606445816551941858602351796042236149418553352272408163284614967661807404022643308850574227174658126905761220996331474735275581544627081420854103209585488571050712613827951779163951963527766530302012761887306656136590202512975989055716744910815938842530690348362911568264243333315762609042591448056787943577852363898678298258700446919755972018092496572027728527702030973704660010841650496949333254678247751510661575936167737899936591312819064963931795034886362026017151261733650549406957221436710822384786064749240863230612846999649218293963221837618762969592982952446396528056736549483315491854307697218473067260625393981388940924439882816284176957486185976769278133994705277694498954631877711670681873594830061618879050445020980625731344429431592423214903530698085174514736625908426892582403987385477857712953593041155437225399563226584290248064687402051360834169051607033215905304801614414920482611974065136545836876007078772013861868310295210530166297814558168315476394656733565705880431780374210052466046807168434242898263166437316743130193298420041617911722179988185006156530814854329801786554021906344268211811494173255876284162701399278664672964438056213883333616306054982218503101427255132669215825911410863248629549743732381679402995784763014215361625366791922404589465263125962835403585418062561043770313610575630811895859924752718860940622349366114236853694243570519444301917879059553796860100447994478655451077789409444185257775861894832942610306709172913222599397909320697373118140541718852319202027760602354606830830654206064278938682443618331914449982358845873461072465958498970301165972041684453920077984625339574899697533893651731573326511220400933875819552403261349714432129667012605487103095332966144501090693565025904043893009465284841773425260243328004232594462153932311012401617576475455634880324093050467941197520413902298425591314908446430890042185472909664801147829142085158315719057263411163599796320464637808868637309890636114360957851051946701006078857578456543220672331954882927392054655380783005139529486263769125196907156886762487708880572116750000330282103456737838023743584793864775787762876813357635644398668829251548220080069479014574292908432053505109098609081833843271966397745678307242417563021109515017760401532978514798096970832038717163853918989042105078922962753363747030844112867436669236448334238934570367829865888203320357257144511599984877980332700925290958690669480317314696666968881353728641064611758673768024107940369821572697116003171311106923470504868427426181640265984660795277373216675840410803303628241919033776999519967084844303746549307763842999328143236621254065956576491446667032860883915236566214534247721895733017137167313075389002874682578216447254559965644242272937570824662712103758040745667122734353621035420587602132901122586125944559331651367543008395488592009064397384373222327086520546423979419523572825651725099687714880937951026273483600806693565591671835186667937563833466859240674968100092558886692243820094301154149568381620423817086007287669326130632476965521143318907001311539916114458036578636703090769670969873805456175587354993909287992927221332807411392962107035140513729291759784438890143325181187973480429676714589208574994004597734416110291098232700359681957847572466910737338864803364127300335426706105364435669830084949262331990681585381014781208901196692348059514621005383022162260538671263242727600133726757224101942814489140441443682761582883216284983902276717237439062456137111800041635288523181955659590084165614400507843393508025151804200343654521733013097270171574492661214674249499214287005736818557866499886080940128242844656906519445232186391986798101907082004019236432099790871601337167417528417485842900568549638946749847771553528787066699171513434833683931155681264490981340879034310738942384437277869243076372185508932668379142762074744554407623024114582375447685651917222142628290181057808188029343904780364789768870157066626365093568640430596307749456606321622107140871143693330744674908767310521979319896048489906227770098123505340188541965921498348190686514220518432548155232506005665760160992604957608120720129645664779090160738062695779487835523737077239435704116574079528634364388925377615646841848057395515045591417728796803728134461142642639683959839429310161826324295004554794768868093468984368365427595955351513641124759330142324491103771986956671132875664024520421350752671962685516057741584065016755670864621798722862803157512662807320134830520096337641203129242993294233274219246923737125584526787605745874910666455333990651821474805355909081274954006273241475651071603876368423899727630158362736627720045836916709959955366506187466627700496594869019900749095454078201117488409637097305301374626665846896415472658700435853340523643195178412796289728299530313289897005197661903727091827250653958853886675504004058056225725598466926588772446549277292080746679376833600736020294451326955668967790880448890114425420833253552843501167084298570608492007413471746156156828258390306588791034578763187947285328317742516225483876237913095097858248733984544732813743073731265013564915204984075209105326337840922140432487342487963666187603674600492965948674391659338112029087340627350185710541653231729976349561035976059580844686803561418400778189646285457115303308225400089788621864846312818509137173410339859850404853090531172452992348562025919290170101240097818699024195301983691260954335609275410429878847067763783934503299151721172590624098113788007113855576554625235302267524215647760152338392315736692436592109393756956929485325207171153565248502905806715784004088563769124634359090305952863393762701098178285101256640449660300771040903423455319484317396087753012376848720560752280167668265896786008714173907332879862101131676501325589416561603417623961492942468340617329847070148776463432494284959011304249596534575239886194465828960019763988192257127166344951036651085431463372261967987164258870437507227441022613423915980610886903025968110234638046134969910427725316631069493711156040189779144007410516148083269302800597505645870522595634144943641193815709902928820373521234994345478219755269570296690040230792856600611796082300983117134382325853613203306828369744701625266115554985847720129537626811215013477169850233183134495462026092814861638995913231688376395423563320284528615826226998650060282971825904659234758162709451851697076855714199902903298869843036740077552332657998231792056387302588150233458693712743816273021066227964130281621235970517376117646005388847013251167051459938729198230609370571603747739611047676666377636799357389983763742686280899629131190636554145167973135427561791837567979309408088046870848376605573751783340501269765191677948943507077101630314910707907366347357320673906286179116581760231055737463483644089599461409250714259887597406786208408011409943547832697855943286287058392670807245691854895720586127972225175748173418208377873051204147991451308323676175532456151734563338780852704785080234954080670321503129880857169400392855658728982860835207077711795692089099889667745355280619337646559282008586224802660670077093409919891983175090498612872501617639317908401170642055426503917638034029313297606996753210901783229178369341838273071548627931199393122396342240980640246266846585796900232726055482960708367262302008089557882792279710209412805711983475047579190373939898620212337946619395772913693858123104555517176655380240402802352104173571061070483079754214767084317551383733449632109108536536867680864201300207266618801577040523348798214016360891969453883024725961519798289266545471541769232402001399239346955303251426957526574479214863582367831078305939221516388364596133302296631773993432527124772100362083666122745802744159142259398055065893673200796818570249359474397083685103586861310187521116720445970281066425728577013173886755316537296937336118053564586228610234155250565564559354032341692368473746484750702474601648920920512495238709748947822504737546159768899277148872008939497720152421663472652429819179584107414111828529098543351102049318473005419687418397185614747627097187981184218065721829484190161700249335176800851733433030908266082387237892094412686202438463209932088147067007189411234326744318332451856319286932546545273480227232003656915163450460261660053581995615233481543424315331821847726215575949893469160285785059196111818746406762422576925666418959214704127186711907859982029523264980722461160908397399789643257217758185608398074100739570384066351361224922243325901220806513221967048935139330830360491851466053224524195882649313923611721743712590596709727171107143331090140119903669590857496286968327431976931854692416712096308990109965932930747763261403052053196981983732237626229726766783344282554292429923381727823548104147048837538954929842387191990715241587010748483814477645322686513765537949503765312105803887454565027931547664126859818554978627006277842384867806892318948975983164923577209599029225442422122953879016750638970335326547808297607204624002133167069463399567472375688786847002710693484414053616272034992935225781320121295092414532440416578416185469722260477627697754397644581732098554128540224982254798285858348714456910984817830728268160093896857392632664059626579625505938540922540320009590831906788752645324765760010941012324680356667305699115778789430482744174017507412860228833276496202356915157635883525282727103024646194490452057220378691213948906172718800470795231816378053601181331429032706461229741502848561373109386572740246247431762089336839913498385265458910912698110274196791619719567364559738993716747963817665519358236553313050892339998721703218791580206283957933281322409805169655624126450008312278074187311110327222380969221551177511381365548906301988528486592865305585199212466828821249018282906038646772174611391579156487788928890891849745840427437198597670181558529159013119933720341357139687755208306970312483620123048723029689377455292098493675675929017579331097292700787950227420246312290378284605385377246146653863046297781790760968350475142334647620719448238115534214218672118212346250469133367989072526634994069266419427593339993624943246849344591877307761830207465526656252487278448207253153845558299100763478051271378540207127009639243228809964593006358425450072985291865171309826855476241695200563889936002206371845422696204126338387614698998121159823901759046566670505447730546335449269287690845548110062915014681266448255145908412121980609072164577679761137568355422674400018492951109936693793292934446959377143145046537878239364085946931201563701628966052625618069170569222905601727669870415357127521614923894177022478735634426841371361409334382117214634685595990358412500299790052777765865419329702841243532558382736090151144605760710462139489658460227733809910138229647530271791233620941049043227166842605640747731006441992271840747661131308624139690161624078871692829426662724387120247674957128239180124439719023090779081408050841831907819265285202704061723493841363066709600727752254693298658921766093056655609353797737145502848017975282146138015935276687680416854093846196447239425216416154994483099326378534518323732050126966201778864256938241251839939698198934444109581201021399486525490590090935141273052779130269035589233932774587136265993998331182337414041502158628824563659530846394239043389347709413072081252369213895727122476395091909771278666820475370247287129562097266644422407641399208301136493469189034243755375820163762829720261943658791466084001555162537771794654540084129275551611598662155352696329899950213676272481546704072539780217883248523103366632342381148554117346882141143807745782623338327184200694211644811819041516334479765330521278705181445921083558806501231785133316748977784773351226024305066187039668366621039023392296219523524378207823630868377616767044205141683969669880548583810585018813428376401872329491167296082232305903493170591868016473483071889307703404086731905180636111284896891310516880491617199194966962746181310242101867071471268106494225361616994846755235985957142518382955236271578652429310390942569713444467042568043630988113789980207587703110094205179759787099388744293492653344347369870474225916915740476801225276446796471982745226149712447325867079534186617077145044822366798832111959830304989398581983414804262293095381341700633689167667041026331966030702331657596343787018094559090412393632113624407448376413128580401376517376333907305502356005893363791908736425143061877345836416687534713558384975116819663020678167756381554278033475628902731911308220607658260035175211405469656750308779567886569696816260311351085436402694718227980926220951516419180612226492435137423757984174187629710029282372385195479848080109145102408200196782435563843789928779409542420215144413541134523086496049894449555983727462373669476059183164096111038778844128920951692111326094274383213720012544403893175275077319874796270578092844027093335901077591792559440416030523432766800949104089246311866834725380500316767160588761370896648273532134205521834169713929510722363496156965837129290610782682616028588127800517182838172803240637817399613560738763276789804715797164861511647380981084066362030328961322427244671112060576937645682549475569760360369114747106870934702847925903316077748284850692565558027984823750832196726503997763308008768902256780267305640665662994431515832797435320841077992691345318059183995514967903850545804022359872562914304633324452295116411392468841365046008069724515484571958045338505038690918468022495282438058581923381893268095078023004196214394958230910465967891988151798831632299501641332709409597521000831047940274144454994090258158393098788605717901236570255105143171261215663854883210312761743769741851916331905448642657773883873231235363589727334490944711431410395673488392720565520273195949224869633253459156947180299909153525139447455919081551578057407285797712707721438257629658251670526745846842287769130228760319133445004858207778426971436208199116376282019953981346931166200743025388918548355522864212925880955892771870728157361581099398908131895905928971649113668296375964222257526625477715870237602029622214161023684416798066927981556671710046490130527588881887693201558200020240699357076621399633663634679493881857572729630934629591524110012617555063910183105946989484664673021974808729150779854497397574431070471474930492966833741440757340069857390406936929297882535154235538759918499392391057881831455594963135153730770403638033956963026069197735723427310846879263305965518034683499443337275756291518105593690836358925740792679710717494987060389815951504684864431810689927414472398852471767980084299377161986379042119477069938700374641254677952640073702405506723774092829410853786357143780454228701509816826239508719803519316997035612437230441337790791798295767718486131405392267436867346088935261922173079637970333651783292109653637343840446816831562987666218358595874899616295448023533725142430115276511291935135434689487146635417915452752453797171692758954928784811349094334781597508217612972747007082190368825542474294609207240195593102093265427447631858684296784820993817684265916530102138772270059660739241437490465631460961105105125542522380006513097296835234568117778958477091097112967844318953482287028538633277915761870094825630289535882419825941078605842895394828109975848297179879790325494372091217827203180052473781281470678559675403657130431873421288396838562918005271951875021407717465701481403661998749527293569203884866458244666205733944513392469123858028444190053047504756916414329618916853945673542199426182582030920181240774462349699578969043200295959897955903252876744322197516262711677691467217395384591857436073294933468103023492271911910943928326593849214427727097324280077762511320756132074882999676339197877558480514348095755518684010081172342010533327491713182819579836129847826992555253936065780080057795579298298839525092124231817569130079867773645794756010776046747728201141486125917948400551498025211693643347554467649401515263419320779549010572699916998225618509439690768497705855606471690275790274431570752373619219341314738846368317221999921998314371768188838385063403956661636267711912182762412630775509905832064111764841014053379007770146395570450950720068704407977853476802575766848313322189303766355207256728325701141423271766161630160421694037433792469288092776678254941870463850907578509554976979749842371940410823894580189241910397355954769391852208990907743447950697005341246295518901095463285808774958074305661111301679866631481039099912811927813655668303606869614613812947956702063246911116731475347052559612561201731705640484929009138916199756589122635533071018592315658469696136528761500095151267515258801596622774888021413744490794875594146244322732380993641443234698281231930073369308649383901274707809611102016162026448810176562686197198879490770892818916334195392497865524225800936127503810251194028881288503722639750581129354514842267200879599131768423502988398919070937776797376026500452733613435386798374851135178488452019092976408510452040301053225125815101006385991448662902665395103474148070231501209783781714307271283463710647977019852035994014962792106679776764688013599902842262230270510541621287071871331250421717816244990958810518644855777212221513196559429282864952050823260948218818982832261819358385349617099435027304491473816844059623635325384640169336772671988852639905049360668311863780167779182030125466455459857733133499726247457543268755824604180706685803342364456920354254456305674666445091260452043740517938172055833341993171559949595078705405218128709853053912942397490788838368631876392107524440594984718878999305438288731527352110299670780642065459508096971460614536939673755989610521256849251532826353593831286684954290423958207181667894057285367305338630591774897779009505129311669568560144142781768809018056814288458747972533650168547535516789039289675156390431332138441912083223847736382227552565483194025123600621589010744248416805336898380708760962260830649019747464191215879130447635694303878214041825384531271216466081477339123822357211068526579081708604106711811938428917105465772949694746125798941878686118884730603006882994767878172462046389955766150953628367006424619468798860771669018559539334322984050617953368589442552725928296927985349502729656850446298804553306707958937038025355493494567401030693339615546772041251832432962553026832721200017358420225519192408740595091201058484541441127786581688273141536426947818953771392420165742453408443424035311586745328354040700707169705455883749805546531593574246137828195159059421246888427710793615950172540450696309519603701945130566078764416806195198286293534021066361383111333939050011612895002469896857287709489964162147332369638004958967707976187583770857684085469593767200394766243420869073703698831103790954164683905831203947524824470481193303143822936017588641226139558266401026582954729796432456125645591696866655769516241427964262955545137199548021130944910458602613435599013378029098348650177007856581336936907309685587857284679929850083666511003742833165339197011216903684881107461060824127097951681841717479626042925227636655359218986610764166022897642306278923819433432261590091026093546312476020535897480599105466828392981257178994399950722444071464519132041530581735580378235684881660269614183437690410621207954481896775826306768706780436426858261344171891505046424165184964592679079403665678933811702362953699765332748718588218431764006737251437331208720449098908546466725972024332202625715026281401276365514496568920673332935656110201928105832299252700698268804732358711065950536088969066754309375129208084310481352526179538417017210053968439809097566189807893353685013972373806243512264046323336309836932124905865897955615440547977756488821720055854731401142480548440849678581515026223693575101697454498202894957512716968271199786057824908195659927168513256088518533961673154385812618020563224845710596687767548089897423958089935485182816843726983173312924201709546808648038934896617356635573937077429079169553313606713263980388015320500663631001527980001483794549619356111966858813428842502316448317292576564206785556982624083138194327913174434081004971118955300016100949503055828640850272345814807192205905367068716339287149508442913507874868837726090120230884796298057514075816139257292335412217828118958146344327103101816762134933249309965700944783261715570451789794043222576008265754223065862598541216107464723124422486076935404036277112099940692926199770050517930022846979445636419464780427393489333381694899614005734427377664821558771064688465128470928990045040113466306802463237225214215451621728267249841828985936451128229692080254031657262185826351715783836646474617891692817383438297525564837619487221728911653860881670480109353253395827403452390007804778246595185679208084450337514014428207328138691984603717960567170923631732986661342739002596560025304076939582476165953612524517941931268075641579551713405251102032015584561667389986262204107024730398241677597322898352648795004634687240100235282145211372194023979934191318938860817311492389347408532391127372196928851181278140161073086679933391943759719577528364884621735364203255647062061538150549816289081655132236219960620236671636252610054279965929562826063138094865581638242976476098812040872400009453533184909518910717278382923278006223496078098089383194460428902569941729263260867285685149670707079092093458396841851838821360402909402118381763616744643833812878960762231375930409730757151899345529599483559239454283607999544908647160479807919774913602178783725662694601396096887882610839918991215019723727622812922210716992360305531849202313901622906467034023153934459004154387919556900392562546916251813495119219172920997505293318179990301010834027375328279496666264048393351955332525096770569300384672096306880458865680738849516863478506985248815983803339442540282657133251111537181173597528478253624698628621184306238609109652577407833426683933810313551546471804074849808672086311183983428830589451213381749009361709593632459886898445287964478666694825216302615774424779490690179064310355221909069667447899260404482740662996120587963636687248348514735219844660997281489305031837797883508174616630758055419557104623274780913480405464535323114247058818902822949418103553282920577170305628789209722295749256227986979826508900576819095953798739631320649299516031491040113604030225076294203315734814143203723376509818159728425099228677375405205426215329743634473695698774744435754791700512603912408465724996742341930245140263771882596332207376913785310742858279278103032767744361592364187456890139482503494891812875117232462507857472714250168680051583780876862721776974827524472801872561331863219839466636426864302491309459910150867344523428087036522348438688971536366274025170521474674438429342440426717493532855975100294457658238561938540187307932842553373737125182175837675140329307266114499506834988651263030546045409975388300265110403002841722381274237742027843728822701207020439551189241450945771128401350342928183873404496327578784945419084452151193577995893366970238320946840710667038055950201383558979559853543690479908920496755341071237968915761506569160427567124137152122196755707381182028174407627794561035436253286411899289108657173861150152683639400875523779532915661790481567723416883828049165633666407589153366855624781257499811320854741417177452200505405033746530556800252367852195075397417170627240297342467154139857953134869052830143827349290316549293667029088588125044700849338214722644441713018414607718709192661511791979753515051651889513050672634783928038527046848686610047964035286990339708023312243247970782406506910110891893145425507433715433301344494140065534442931387543760743550746746906046976664282243667032582533766131529639016608183478136050046625129727639307186160356711928643702756281299061332376220629880334773896938022056312945498190471330883537221703485484083147313859978050439784712334440513870548010176897635676538656679132403528575798990547242666420542349766395092285888795340774564292641820490633303463566625857667019253376848035307371311222968219028880000357721741640522225279189143377723960330855455739874651115834737432905728611288530514196810907088200513392987548975243592747303507512716434847544131787885112009487479679270811071802898926004591382357411302803441626522061074715730950734039941472242610858166767361303752451724331258070623796156199292466572161909871347734245969169129789021782286148603891993329427750026790281376236453619985789372478125034671138312224161865286285181855570148769014228946427251937275309568466988584132250385993909337618982715696818314534777404033122268123486204417494558516540185090549578524737727393224434659266150641738174971290535517816014274443186027308686250383387331321378470033583234862048867879820855558916367427902179790835963415163672272473656436246652652736472005977787127464237729953251473170101190214747229686251996123719351656980710265609583220470919888856105043877601305498477063355139816582076315392031247669400519310764834537426977748582946544849737036391300103668281449497909528826630415320888452566805213743432225335317143664465483605887898534556400948905636196772389226932045555687132271561781383320870194321434788223906556798477687152782803091065604706926953933178203640307465370686329348745744122392206067720632387908663600721115953475040917818322174762272138209675737907334765473136300762109269895026814970792938531808223865905168481056188340409978372736860177739812218645549570489782793137757638863178530606660506476928762245778512416271066086289580824071327686740722735555484108888535653996041295566398075986310880433018220426251262085163261832494869444358699537214349935511802065006095961023837215919263393103069595299498329713145072332764664197242105621939889885156584235059526848216634265771103887702008400224554269266421736090324994287385098027082193577099050041712901377806740333878180520930477618337590503711846284307726680324162180420625603178963856074716215887212940521347080238679977979078359599075161686689350000056149775428876513499425464386034443314648045481656957846363674732639733894070132307503148841778317652490994094622238359061773269726190254761829984215981296273199371097883283960404199139301523312926906983568045169895292037153985841359401745710144605058471564930298314216297962682151715338446782169504350615659825067471219081738538789212882952971383183850225480292501037449865044632904642899688949881379428460362334358691661682779021874330006477358709354451051648183412115163671620666032427718973937827604616649004476403338701999263363815952827684271334649715521385224865312725207144888346884304940143994505138867621424763987026221094504687567289721996833998014101615348053829291493775190089177739562080694285707227579987973323165821943804166302772936723733209482819253798426701853170180050419771078903328791673023580491034928180146001807159057291534114442093651164925147135514423705082965372839692185343159018213463229879815698144394603956206551232766890076286657279795320765307301198651222356846479420618432054411749458501820644666193492330133436959202693315848896455566356524649875398723420929562877001114617238686098844767247739965784773900100918052043610444944712975793776950321017594604703989394348232110498825042779030920854828000808272791771575387206425460830135502116669698030645263841309652373657251907859104868967425166880052932276073122897379708684266174867450643983796419812784368643595319402960169884238128614240491759529439712145254967134082077937528455630813488252537301950630825211052282958690726912194576675003721902734422707288843398555373256025026471439628652624164631300774589868074389807376878502602542278551592169230583588588361296732449453467283991286950859938909747034415303640848607454700710178200069557050323666007082174901361167024362148431368795474081289308295611271754641436665084305434576387123182222767740699427044188392414103742501799290855445012886235739677373577586028188808096939306972748102654403549417267631194239271149235979917070434879234828238839152689411761821496546606578507552773331904057538059022492868067272834542528727038683432556993419214697830297603831529505764346201248587412398714917424535740568023903804444232498462269453410524844358514097157573910907068648274552913481571693706605980118576961852586309471043728275956877814484153026436846653378436759803058136287401436275056095300948464380103444041129455197150326933051520008117393146172082246091208512118825769874988358894510488923483637499115887976522658531269128248636675596890611694914040049128297275971241131859915414315426072047666374536138312846614882446278205118233197077820547915037878225702531572838422299445035008359917790309078584330865036367554170714039160132074058375894784480746214202874203932055684295987657328856803327092370110754165434381814859240840808874519501226771453350553980908374982650421928749609426802433766765889340595683042532355021949087330112491884313099194082893473247840915261254755511648160895317893221202089198985727534027132824155785737050288665036518062199956746210106178413739230212067700323766393196904253422187649567091278972840956483541525931679701946150666319313473389563241620507221639803251276941433341865577268636623240965253979678896509243634552830994292558935584890584894220965402885600044958059426005517685518453934766112164314195671924325449773174674651267522170306121182723943279407762411842887103034732857539025742687791240416314897014484711755631082479342151377369476138027400853165943605094828058284012211736019391709722162389560967783071200622108805540792282887672723190934884665516672746393431354978855222658431915620696457525380746494897961245894874330093849700887084472823331284897746943688886857818200007951755880125387032232684122979816985543325428862541012218362240180566320791365727556756328123954148059803331593547632415743965119615531674068221607237987023801155972356440405270170777670943179073134212181904703188804873319846854556504575542259315422278219219295316280028313531735034030861147665889726194487303918711990084198758888173433838987356951900061235453638277548193096977580727182690094808893834756277408866732441482103658869983223682512806105591552613976961907635507363114973785521480427954118403407544765649793561656854678593430448490500001301019543589509648644571200515150485682018971977189371946167190099348843152847678807950177418307996328475953735158701606633651217508406883536047606751971853269313583450072012951551931659792463381418300076981031827563075758356304338765042880791513620878756740602252093138013985606367363043263512714798198801637222838822991256851512528572296500615327825629683180481528007356416264166487467086535681556292929809378275330722874076674766634440313513181607230764605181987714328940319553344689928705218588897975718765088538115155149880251483699691698228520544500648335407760480963446497535507778800956501978119509895865661383651997815449973458163235048010624811068369519253290290977646152671297455470282439110056971985936320520804606803548542507193121684284691465089552488977915591496276475488821927879567475101673825643640084359181295954732522183311638923725394137314568562135575038097346556788623512688813077026046085355139422968878358987618562402631263341564793081390008496464640372925994797007069663567436177887757741915852173322829175656344191875830342510215504943218560606492694332089155889541217467005701548135279784108055299248732680476441157333839593959609512512231884061324891219116732922942663129604962884006948631409618927422228408743923779059111390301260659681468694799100443567577485588210643498648453311795463696869076799543390583094942709181235263554650306816318268961262794784326318687678226090245970324982070074387239249087425570800338466933388230846585753946511631869017245991868712495299746277410761280575881750365912760969073026424881388116804309624120094551822063640245962340651670229725438823372922824698414029006148786355217839967861847469503558956615227051708765146388546053941972551560555240310470221101248842441179990869195680438354912041132580822550835280108470461795204541457445964127043820497553774937384708971822538185047505976533028945245478534732216856914661264866039359643895213802191126953603383392144477881343502499897051786455081229599388318904978645480639562439062199727107705365581573314446677577910188524526987349726761877053111650487236512108023643714883469074960257747460928475462310649318525159043893579764228782283045398950204417780950352955463203514650630644216953116177167453548208480907556799999683101420297180802791346787812649586169336651239594731460442912037221211782086301319740803454784970414759283749976893128070484218619251032064201549864740587775287022351238051835644714095904150023280796511326420659197503133308139578492177363790612696091755627442041426935173218140071773907142024281845994660451945439497248890287092687939003362825708853245742303323522784340340354861250759468907747802516343976340361595338554281030283755940449471052857551313816662042890155900671311789145978363288440975872059337712480903623500125034910767448031060364902300682742382701062927199404414520638519731069355596230819806722334515883560619803449375032956597018418079050100599840556380347246441975072596100371014518599601507239573173882632447319508478069157559137459406463967823177531574339451123375811840951665522802338667103495300272084923742345911845891004107169196696249191527301319616164941972773774245334332797326480114577517682386696574981518721443207020221176302189589337365777135522738003646988205444157461698147151281575514864684971705418715649191668724957987591641129749858487944390058215502253727458874704294817652208922495161944579869985579285713471846537944472905678910713673472854185195919994688421271850009800125767750739430823583610236869297580533214960691178569960792985966746315256033640365817431247360222249549619817291266955523953074406701039847773746307764988395441561317657679342622889772231128041971862762918189027020015519485479609649454141639704060085505803941069427773330433490750857578238955879359555015616272607594241992708277270365624882230042719618858687922527067580082829921023272498618546093230030185982104051680089827702965531624916797503621641392324744520211328359188362573459703113362588138998315341117429970973523569846983253806481152133037405570625517588901088753406182041332810711494222637555894535445394001682009674080813389476668883828674067035753234678121612201804660602368674793120068099960591182800613573935189773586622230683810046686722696414360691127419965472338401599487692698350047800320408504481828089004838745221769672148140705179033600309186574296279875031039609487902588160712876505141764725905882123054709709762792583956340225727105855640988857668356205128656945520010967416245971950243416088182014258686571034523391227997885656850947552659347514596777124622710421807859108191339197608269688197297916364263732895467756351613359676792364275060146601584881956962028699853306022720948984782044900584712720787520153186855647182621723625147253959618976142229996481228149310059142140556454852204780867639874171612366173614481898648473575390520163467697845190781783888478189200781289646954301752235939358192591565335761820674255829424977184741348750242057404751076518416233682010771292447622224053020966388080021682430152331966365705520554400135659396166011701580878230610535283844436478233313914567447282650570427388003583239384487732824569787380375912512321945526164768052449778229189700902860548601731961669562485942143769264217225141150125000336953389368369745814550542402537240695523310264622144611605400222468401919878547521783393017768401713725788622731558209669943658647091593353952775658032996772161440015804763535912109837696157299122225582327225157213193974038565884217000598085026154307277649846803189959516150944967787455588058432674628837698189683072937085770608552134186316166975459613886327538635837153044805315767761394728969135380098009638774108573959779610450897364928418331264614938347245143956092841918791886617004438639726216013158652678567637485286587553655871782098217670350154547679424674578051453278281980938408173955189893050301533710635432323395236896531667202886402211144195364890580507195685205834766570703937903839661216521909241678099366597333795318951351301865552448170351239549879420355411659214921305369313372274485694609369911687076075482680361995907672371319056388858299386886242632834400076946723368185126065509675037085974445494572986042955145242979820215892959600480518405745633697401167993017934995785532232926793707493874594391458638639035108236090991600196766740843374997282070165316792779956461748536180058053672521269351902684978135945529102652910507319665583561137793196419515212403383542116600626614424401486067469051505912260668796115848519765339871686790148344946189732305745339839878423016618914320804423990272336094944695698685794091434221381058291527769236229340974803476421215957544121523369715549204901335909889047925157275708155521456909748599304632854940645034061472519137052189119886729787608745255254973503153251069010808284895720617568905143936958369595491286597017865327150938975005815310700145819247685632882296763160330264943229331772053318992208031424077070568811334682145150500211640542191995964215237677929330817543430640024057214832270383094241594533697811710232432190954995340942537097124421080331416762128393460721390008108096334550092340711821183118171782115361094927803619084546958071134251748264204590810055559878097546230823131547548314951696604236741231822548219033103011342304895132187513059196183438063128545409137968263312249544666103817371771516944104493948420269348639762530321990672099414324464905448785541933146705906019936628054875084000552001942456619064799427483057352287167682301015992761939110515099270819719681475578846581488891660376687502019922326704919364565199590878844530409225538947990072454357992208276980099076864994003749396682778243630137513665209805639894873203242291932430375041053062454774345608811347639535256656700649976451834569927334208661099521570684187161626961715156717498790945667578935156098935998941622366275028958716443467570815840355395855692239824826019567220339858573636773932723743337097465454188609371085284545887138299657872569852543265160640233420895966092771048023720309380347485350078724632284585956366458440891707559992127208822570347164858050653304171444746258427206777846786659545757629680257077787200620510638378080337869910331032375222089885971334806949682775679086988204438333774658358211706621588645291365832065111781347868233976398542914168239288005508244424005107042730093060537015395175286928419465892006404948142356526286980629724621599563342284395747287241407434708638604316464197116548150244423940459618961815349314692984407153695579443645781338185823060954779027868135218794667620031025776636474425576901895070877632240695551206828836958771961847753538413103902303417489989600443544486710256917563829487436006609323664417097669966582792840693233202544014407424883553899394358460365236796367883285611043946388292970783840619547655707339135577556292792874823878144006706191278384739474189016249877955786816883339683359388905730535067755599427809343242847400670722836005230397827049442339791153331568558448228498882377922457802557069745923534519859760318213610178754425908030481838175133184357927620325915119122956894321357728650876330283170169718821726275618669847520836960396653547114987371758562904226947402731226554198809776287307586981223353408323062776539921080632081567518283318312941763731370669097437235463336603111841964471457610944566532254168803206870975496132957766289125839686219337325641140892966807958649049428088280710777261921244279693149664342907260857668905004322586569456312161507378862156185826310946763339269222602444047285262155682791445568072217885027066286036705592888707773487757634288779201780813714120822621271597649424490317418381293203967494865249118575877249379533754362056306635368883348821109875875139557719181857016618405638061842644469790237510105010253668401442927979109795225686018298014377383660518526983061694214118670968279679539544665422994917573847580979630084885879434251211198745645129926538728178029679272592639045408624747212337305136443296187506238584451359840499965382352932406409350179791054870501700571684543498406251565575537056184708816811440959417475724735506125203951538094281267389665384349349365027221039006775045246788552716793319171081381831270155574313855964502783465949258712102060144629048584288189711315258285969039756422245184048053002872272721611968167440402514131359107275670990347475958689590731659064403049453944947253045589504513392589308870070622018657986827020351085314488885141457437450878508868621697074253890796605037131925603193650776906861857165321358704785128360505283305824347748276367390781762480593672076057580177657915201962932937300176982072230905902407690510307627172233482287826446429253041103047316375632826462073236480816750666342796134506218470855730936069829082442544659336217833504479065330069675878747499070467357257092743141118657827524961991011021104877239937732088767191804301727151422496097670021268281166724729652230354902951627507463702829869521457189825777266324425780179427058377212373066898492969460824387632167693635857840313363953740996497196830933490072135577309653319142790769723993273669741114270261564292649202121401299850173269239515913490441911834337561994970379326866401660002901661230273126381075855104977790249901383143691766144246978861156854342779003124413669153910523815554800714883776585888801807677410850895025087340017715091107556570433726155886997535172886903878020602456094084781725221932348946564514013594572144809247959619589535304148876727995450617939567072470771649468909510009012402326123457378862741362548949142712368536850748487805100659140359850366964189794354102754463227041247347218863276286410998729212648339613026796888056500779318693920254323517573715109792111374718100035486586875947477052075521010462816391482207582231496283157776535323828532822731757010695416508646881127976393084582010252007763411953341152856567961178865087408970581686327142990771758314220146456573114604968967096942116361435196222716205267257340446300342982161825025278106477624313553335755556658556819557124442857607601694351090249598487515606272889922753637805451714123798199398139206142227946280327138865297742863064940310736391569394771473175159480951817133548139185840995127472792664345159996805515530970357578089045852379006692325293340157964382141419755083994473261926446359991918448711830566173003057593536550831286836730482081630665371261256169909282396088751743094916296149234184638043387610037719438281366573216451395418296550168456971705037684224400119570262822079589330669002092526231540083786473189015962185601563226589636227872498733271153039660000446733360687476536565022250213825174912095510021636731259443433448499602797354169494105875744007036945754631915478337031396843565132246542984082143083288780131324735210241856834537481257629013921214294262445570383146938567567864976816249142327703644823627229657268978310205624145781614857421049867648825093251103435514368060463660711228819179753470988895447653874956915074426676636932846198929107915041328934874572333106401254392050122388100323194309129818819998906602162545369055948416401756316640096684327952685300843668938255362620153518166777316518933018166246900269231870358466257308334069707463794697653659501346122388863586104273363699374871584365803458722234909819316629836014159803714487678568372342372429972394044333297420361191342226564963758112968907472179306751523650001204650431584006457833504878377435523901040550738890288019731565536469778078363334465814454099094315962539915859017479299104356135546736489041444673711146924374142200384344198787315806989005385500193498465198270142940193261423541455293443413735686053541694379937179734552909294019174954824959028954178976733748684502783970642384723342706239491556529351379907683284266840825193660312406536170164844345276037737107182679305681251151089898757265542877501052860013546043635886105199855514993229143527068659671892615882426358586087733567701328807038136770268490994633970032385201769540103003905491801227967105318053127361445355501793257260223486056041460060947204954213579730965480984450105417847545159700794924260278859726047976157584651946929303951773342154634977219268973185836999886286866925597861576847243990232617196454193927546456973630301190718087358758677890270635984030879957677198592832048785720032778412082070628086509183568372007283548302910455870129291144350431423686922885984929632957991001948874531733249056011263796399190568972129889078215727394989094311152810163650025002404769169452505456550094452238932788955680009399173935640924921140600925183626267741098909418650732342235763240342826014452783618916397984066933906100818620880774256437603485892325673571839360465849643175789340352583717703014505552354661412376500703514185190260506459959037416769764656140519610762070968418500888625287114464309315537954060463639572331905274324023970942677724262805309200785809044212910759932400938258211872538481685148364081462654036193700511075311058885554697154074463317541933109820850748312588565080597368224209895241743656474925880618501363768652000846260228775368565224432485862581654896442355649747658065439384576515488682236931325869773260305424491778462149925067028796131266322933357320076249384452272492876420246810775210238860917290004674329256529023249226200524939554901740482165244313526566486900974086271785181886424815018482043408267776980797817187519615603545084500767868283804268640617663085019733274839908704113473912969866923153652515847747807594803485309435346020148682666027922431104357990882402542447058067660032036319291953060157395668282814012694017775008959651392634415153261334543491940618095038615958194906378559360557171821040034569793935833865388965282962616923886338705941554123708623473066221902824561019669661207866067697335350996075642088233174593760352203404993448175039221858367250377695404151151795756764621540054560213306425269469618526449102012445399144674067077414983978201966054625918669240376269438308213871214403794758250430367486143858552541531246633738376251105776393691020637051756236835225259952748814818050368438339927000851843552651927300088956768365621279957018375782686716180964300058922031549891574453708421730900712919601765682966549226124703261267740368781388539218446892952973721546697144067489052554132074324620982752431465949770493107485103406125116480196071440696837653105367042118349957264216607025245686479153909494136862599782361298753292085646666857229240394692198866484234036179335541997930571996511524901770235323954471572059448207552425806812236988441913350890743059259056340105329281978756848606481840763911713933750416589902862985516037160030339367435513741828860526340004013132357449584857572600923889061191097611878963805658478867659535473754145916434531542991178006460666994926024222600716182946742591863939937194030118061716558445169405897302803017813368427255422711345932676373821943645978699620625146297867761526398901390917690904708112837056064573692242008807299171885867407055693713185023177357904354028394120985690457661195263089786396150339223305477034258217830854207063484749993250330907825649986978391310314150982700530266498407242647687608969352825368978332545843817826599092763143675225088534466765105488378726613342656557052941117602201645865049529404386605066749722578643479388874365381748485198417618350714551721521230677202879465278045749125002607412942351689027241765675275954444742980856694814541048516462035935047591531563646986137811985011475865477594307302559285535850267592905351929509352846684025968513746976646566680010058272973375265552171006927434699911214377763437334627427934360889748244975402549200364302763860597851038694470368505505896544306402578384413306027657907840905574734351927687032145195592910192548908729077703297546210859139877229017354912359980474855840471097627284259479864651060491854496333409690929888982631205163538831614799186208791094967694191858289809546215872295506061333414058161367802471857665529401751488566483404231201652519455848860866309546754595313919748148586436494407670367771253291792085044346319486554899450718482936576559106878266072596468568819481635284122713312710058641950304554276827736885276837751556333450959705002821908644298701508997199236667218162547695603875985419966428991259304930880381698273434338956698240591525666153668739705034491971636519937782459493553872505618001323166980525060611117076374064856724360805973478502318499478834920045305937872812000402000646538065945880321968791911812617019268515040513063231216350766676997251312011488078317035721381317082361282352166342157011025542239400698721033348849861895700852385903349658887185197033573606872770496884000673173237770004444541254760940756843452612150159397671243601482780342901274420437565905974317845203569419565121544639093778126739482337564971816579085433195476758696797734927161700889994941290701082071789482016923864170043992217628825029389417174967113819367885141321111541678945966525618024899967536506276853588350654064436696578883068137288477323671336581158870228005558866691862423555222514283918463942641247246962385438726337328344487296878185252525156110015035429539661915092540850074190685777344554122678377566755350762304573394005533901359939373047646388846144047954381246053344186590625610480638630738681225862625024676282006757389703010386360450570170835703290283263644097487006227239490804961084771418664867304062501344356748310877927159003419752070925419115573793328984418145084121796883034465543949712026209692289782835332111333028844401669884633514325609252380573405231786386418752144313122518886742440349562209967241074477241980071062149221149944231311438637205653988044710887626782272596404862965170793530799754904978726012099356331572501974874605139104613649226321538012922519078755040401439538492704244861693298267373917070733751452094701748718165565035123056044524058261900258365679935144975332617848606540455244371951487762868808299438015191331555166686128549599072144170377318138623849198980487237737723094828496314324488164678624169694572880931332006102381355886236918935501272138137296970427890653652113222294495884382449938529817312814564432603725617603502094896954804748229545383820508557594867313922944376929133825498705429575096146493757023855992777937925603263477774545264013306055241376146250764388779765718838281434992488431468865789526193524614163758925619083079288862531869606651379221335337635741151379921181145895283431403744057191136855869180879147825041473982420034373278361365533126503306174985586300812572045097935336443787214181565957883380120833231642494036115447641399187860288855188729721001085189901897460732325056538458370723473677445004875299641420025331171271774860536022904060498403663037472803841573943154686687832949611035002030216374602301121451837108883635306976820936993997747502039768701833776797174001260337210072051540264131382595303108629565454700950067393640227120396849140356292709040492340403945779652032815666954919531165013772615381750258422037712140760692860685996996385181205999196378303781887923603234686391138276646775904784640036329745653796496387342184312755165181685420835727142426611273877444751391035122788776568296290574315472972830746605708251338851816913242776720356810849389786685144991666902394793548505334177109430234234589789479634874783990244732579852244473734642454068560810504409700546902834954431150515696415810628616695099595560273498651436688818136177959493811272355098086752992049483775247223144791173757084733282237178716358702889690254543683969890639718513852050937135262251969000572991079395860853104104300214681298212526870599814243876592580689183768037229195040527338447478600129930440524554107614518548668593229398842154158005626585639252878951944119848631931354889087635175108956324096213483324089765099656863394980921439580023927392422840332045148817774013961156826522461622870828646144684876315801152349889567489631138103672933339794390385544312710530273754176877496853199490121843753901218967587928339900237034648741716528875414601651251943033323502699193157600324708084894657890058632334288866092165712161700892193261231881182092166156394886057469917381659902048036488303594796334559476383046227952765693994567137931006263833562152647318781757790272675699708994212165084691111759117934740353159398266539979156204640609251113796454090533850106992146363630411707324957162946642440297097408870815023243878614089300154931871577613744604844317189245310045519501239448094170382227232951686751377465805972126813907195274910180465411818556801889628469049435808195359206676263927942900996562797466274220810312585939918092778969509364231473444089843908783031513675017478593825155545160935637356002629496827445207298969366673225304498446750363777017533364632315175641369518087076673297380474755126343198975833381142057195063994533752663329979508608914217846724004602330096922913388322414758480879163507982734024427114495429346651782583917245221300318672400567598252422594879913324511496924826992089127778800718594945824967677108812946500161432170162934695010653888112915086947871766497682771511958962921745238891617509835187306279616890051429838974347014421921046760634990084931924233791243249943626928786304744643943300916777246001177363516950217721840856163003004273304290182035745427989020160198868900469247575430256331391269173411862166430171416297220834459842688152523567724211270472396664619077975245900999189514879054565254912899544269082348603596919662612077232065785966781725807068580087313537245827936666732564193770334450707505320268533751563880930252490802566585736884200421371582789558854975032199959338494037741202622928961682886944262342810951399084138062075829122398670571513664460740581706778590680810872893257187721687961062732417544230017731786373774776664315426665882799298677934928191576466435326759083879442539737230085561870837918048643021215078495802283550703991184263089596107194959831756439051904944301393131119002710486431640783577108471974562605927909907354190037232690730670672522716693382793269202733652986001033971011642145469587249296766611468879720927228348237206378402476411336047567874835224046985318317284262834309815127031499228061987805153688248031846175752446727281183353246096594263164802441572996198690450092216908564414256513116557487885287864146595435976814807687078000553482001847663683752206604579879304173366822748119650910517105270808771367804608903643018652507995309745252143914732891315593986562497123184154565224106734059701525445248418040440728320698066619476403422431551146428280623093366824525284397279612765077499757167744962756156621328284545368158910874067603162767087561375060706716077979725328261382886731203614316354852833719647193124240492322266567869193375550897939528285747812404556749444702821920417308791093776319354065753489327250714820426173710031805829488142075427488029149894221482768046235179071201674781403492432213157790705297933257512584739863779443252120363954495064149765640292540933172665735116166983884772468826781456846297659828644002812269415389253092891472191539191428208300236768507367749999792482353399606538196042805721054099553389550354587177050496226135265359918843567646404666009237783294445153634518540350417011442734761441345510500349517242227258493027116127007356370051414156463859897007407086634665005497174608120274906979631185786953400588150867138048402394850950513061201568062136059622161779193836388345902738115134431150118297599482655422979811793480351907824434878855957674852075228247471121082720674144917122736147115068814051033890305995659099766715912790424949722940723128714541006730979486213625388312794442005304938513436379366686964179144085007742367684288876393004043467087436934931844321142466429503094855026653970544849402065870778274920044139703147143130192213093904989175123128418889208248747852294887694314402815967739919912191574552764800605205579516184849676790986660526741205999508435240746932138336081475879223364317710644610178450659422554417069943915828350197647286711018421479038726668023290985599780099035560344971593921753288177618571402485973803793240970176600636136512080062823517279334748857911791307171735616360923441731104760955902329188289728903690069971605217187248271956657718789788984266137554327720674588175759801904757784703981062463080341318479296562047487445379312487416028283853039985857127321353557057490410155737019840755733653672509610976488266812626812284755998375714494270590051567166298365307188598898485151283104471142054489920653619800973636589258548016279713217038209507419669762054663524209341788973150418123995081476067612642997428196125375438284847800057298108605443733770276158028012223858762088498782976809392314530267455250512125397481793479647677583718747298249295643413487606487768810063304612887248971081844829622351433029880648613587374366354692431364780897060065736648338020807022228120161042979166146295171316265686041183958343741995776077369855359070505789667327107449950670597819674331826826722916024264293981801991571701668929807199207593702383666662895777694571177877057197562482077032036034146982092834052699212505609569874362151202277752675554550549535725735586744583114421368888289020497165705895257990556619674164823314638997041251702847101120272052505010492984060865387995900791120068452666455250738855539131192967963351543778248402824741016241509776527546441845193762560844208461879358735513846556922155799239504733906667080342216113112175192650637609322671563848957399401748885752482237097388714739875589286516658423112157688964701299158723305295544438673689386226596396989158934467270027922554639521402116457267396106066472135648149291808809527168882687041737489459391066428573877523171072518807224596886473281218043172312279666475431968360089499960036946333233069629912222028960611385235621504702666478413533520347082660537658570135652460228931288314700449118769511185505026537109512515899773377208591426949281955513709397744349595419361853890199591388168065643433567531013487356091963276844629998131016219268020489098725678913809049044347359338798788704513042129379786277827353054806369928841841872762616896453541410815525099670682066157885897662122325497451750656908327140684126456832940572270528019501056659773727841393935748801654128976873094571995570862422900192430095832332328359597030500496197542031618215140746132441403549980909934324212720631907560838991253054860715832634912200643931115377397073212737483883525066547747219957335274632440329556456924164492012062597542466743193888126131229952401407154639043464412499856981759676379957297526683881292767007486103208722053086784452709844795731402728579892080509038645985398800381190653358812975151098970355780343285043652069027446742929667105759662625369627032894479454158783031721945950876682525432931427643571836771798323120279366052889803068536715626556083567159916931974059452968920889011596595680239964299428631926074272812448795992155882147279525654215289037797833904449772731685362855666745807893852566170931120678254965260940881516340103477832844785372188576471213124806973376989621664808855738999714233712273083557823613511543798895886609164340151942925655954492366623789133936736097499738316703710371567960381616968358425718313030604581672623124179606281325022144292306613341958013386648927622430545558388159302496745500651704454090079845342916192966067073851435161175003248500603480126882565471791897526004682388725617649003928074382954348021061173212522264842264324477052831043299775615470788880107550088855796372973105135422359754042801481635178423599556938452262438413643681925166925986583440115343385940853584864440105328684139374673270327736785115603149570333385388615696322217471232387872509624160849969392145929833247729074239049003442793057138409442913135716756699858325928804697724759508307703540112167363912137191197343948621344445722905984885550661233073749072362991244252558466443802964924567186438830575521324494731355588873858090273019206154659978649829145745871206273300646917847219319077547121087025749743372261326556535008534762518718080103935907138386441781788993793258374483844609004698442567468538068276729411765716150837684466350198144325702724624874550984940647659468170679471111402284554700623299203221815794376331932185522616580896421574861608839014333260427623156772297761202217555458101969590277446636930762594699083591165104002601351626094955879214330875336141533354385683640267013349322141850618203838308908296059877485159882322755740511805262699746690929335577587637338927186846851467906122181946059638379717573510662431253118230261206901351285295843661380522673755208074643482579340035626694125344570597684243275757374425573009424472063683978592939622496305931029242548627322861542449331280909060164029378239177519985331670453843772083521286664506001232924928764438233195094953455735091240058550301002460933080064559714137756880160276075017364198572864760963876626692684489894685090333821484219165452815794480219010565860967634623109064592519839692834591883709351491724931423726483813558561985111258825465827442133410699167014188402133734892165824700315376718500297194940313295164503512859626227683022627810417396186751251756768785376945348850028846858222023376428621805731523917410457129237268167968653765986733053930877323058257162354343682764462874008487659473326412903029415294227564330815931628614042709829582772177464050641226744582147447435930545603278068623513981297994997734037923139178435191435439578025463897650737799357590294524086909864446577689774939665766641197285282412810780241765389035802954246132045356069434626742856247904562002978651900721316181938436439028832379356058451834945820460393605909674342717313316796033887558058747520168471705444912620085039311930117835121747084418219766180982699824987104848720076847682980791311797271952019051806408049968893816512026893598340111674303475589930194434395917312051226787790899611154324300512771617862597404410077666642862475884224456915405338691521128514438765135713289554588337972762268513772996132905495267123445590572354023340068562755232515972393184980532009900141696387596210138138752935365377529619376420208227709443410724625786728368167112649397441204017742523564325051651031700973112743822594688120381586027443430649082401816256784452215921225763058812507078610219370578577551422727855703875080776934510554394696531158856887077739019250269514896566933551170978655426526804835847660535777685909463678763567332725361977422704815163547001116992971838619619960774349308347749610775074278226140661563229292672214662123557309899110347903777588353561111012332752208552664179499831724288941104487830551162607081363714374200095952473957846727070111312577442711686874523866881070977481746536561192345655533978444259330076793437263796934835180016332986738349985813989371546962653048745783196009815631998663237127207063280476385800154886021188897908158926203186572016215294770962081769925539685624220512065121536619564731728098372219508707522003442267764072000084519730725055674401693312361643906468147229281399595374974709021892090956338658611993957010210330591023259689086488562838229593934098187076073783585826590461828472271950886726211536439291356107054183852616282674396742870117657008539023063591391445913371881054921858956593262366546519040569565615671371816052782967780048459974741414269176796940741451625878632244394003113260731093563918945044446729048983061292463540817375961604434565546880405013717239334505682566652066117052444294700033362396508207072745990071192122462599184358321754396802125413019202811406795968201962548070335893250221873349391515420784167752715565670529710340414061553113797030577535736586886888083637527809257491394050823475980210171381115602054548766951096473977141590696245813257221051223702090042468424713122225450751276568153810800262824430257673160898675168996243891650354267528265775251888926951680453029194797980228356809384537475922532749619942427444499079131463727401930356752376144646905962475922845125079385833854723154463043367422749561097183964864893783827233597524106593332615951393774302557321447582524097476945939555435925154509851795836054012879330113273299831509172784376537365896729036085297859862202794189777469803548275964704516517283881733092114397034270199017145912702154311278901253118777306914809265803610548518678484501276500100179009785671136292933179909420011573958433146855693015035168385621807720777416984786121352201577717470389727665139540321126967126658934607453293526346007107411832233842113848061943844419327065329978974848815094167350096846544298197689411432701239764351652950101996692317139796797088007944626624652270577519907228925992732786356909458949099489474054402441143834124756032180364480451966788404982901807906181738784064271049109788355617767260158336454830299107833247712588472887621735493142324358396660313675749386663004227438637822249396935685766194943128695802517122879076745149135934410006282835537145233010812655697625788800256298155263406016984104918535744737045354708616154613662042393698915173689948515994180617088423771295286488705662185342840552430795380279166030844732077558671667869500553857712805092344391076264445278598740058146808940696925773661482415814301138845333150193926303296296808242623243911257921932322724607867345090541308291975264553453352548454500277150620527484438664052448006924710556144211405732952227830094089244054600675783123998856535655711613761888931516604883318963488259825107798113189007206050580035848753683563921515066493398829317704630715884953526245048928353985124011890315835631658902351347954129865306336037998755312442255649196155339535155862406997381360439859390366486444581980896810502555319207976497166082418312817974644894331559898760876779243535993562546953719913454774782681177712893688606253994705858855735237702520164877495697171566517601639371958678593048741313561947214749730593009050229323203188512343422394404614002337141490113395181963183951732084788306692112727867572611302284585032214589268378370617047637829473981575267648453373951512667893494168697071277312138931871944197270610816519963312353946827381307914107353888424308112404746773018178840274346289338277767068292371750752904801573959972496366960080107542714353366867446798945753870131549800620029910209609361900460497540830862177875250965923079622488077135050819050213771515921490785306477354115543996671453618891603988534341075457237536065957556029150145898475024307171211428685436179754929511836254099002163515852143772368486145202496395698348171879539828499451678401625981313412606061331947333783690507300943569176255098620384721624015881355396341448504373612398765388832265495277482572394310785746558039690777182047828558176526482501397513383055612377316296600205962738752894668630235410922405117845561097819861926451763121127809769095980343723654936107397382244600060427112446369553829992564949860021404631312713448112315807587975395053279292921211925190896118221947551169128592181352264843777127421710678797402100313355821225904587350202628114482947960174214482267002505223154381470623708367915695114682546718510731148459212598629555409913586368948757151368858152916880644150182390042908436474788093851208771770148426663910130080054422240093407191942441574250828058756692114518114160925312588554946427918999026037823327860442632395938982355622551032970979543850090813524081852139766609626581886603032828491362474974107517715461965159213934411780080471413062770051314325936414846226635043975363334498704379311214430020013510264029139787844072071473853693843836510877572314563618993177519190300533891507157018114926075351762603895623986850922750086641513368333138475218437111517359834510378924448532208546356476912485960643867136149543005222084952098100066029727874203535641880960560665020099856620257363920245735646499525530865464455018761560115155612197187678428770676790113864247271446522934910920068803584138885219932487456168254472332846149473423047345169061709183905674052545121447518337905480497662355208908190755538384021428759062106539516502984175346803169860895095280517598948880738668071302097154843746403366179949679653206080555459965077265009643247058809078203176105318465921140763948890239625037390635056192043808587180987823928215303090806304744942853302123939433869987200932848622397999738856086312898087901384437729308029957448151773802401422628817886864169020452766969111943913217747055754695984711319821976324864864320593121581138957730503676979932540761367456950020185104386321331200718953254780480242949784037956352565240226990663528315961896920669630530362344603513549442610437603190641284143916113182514411559297616898448274285688332190638623467578749511455842018274455896899939551593296896061869844408868268903250043185033319351801046214754157653609835185308760493017685616364934176752583422468640648437038490699829125796284850286875799589231347140809203928069651980698314770614229858603709746914869425610336559047699452335679725736345374248936267662525113059980876231696775572548821773977511918815911400740828060637838875271699292673865454339773396627876089291570015297870969883126408836297023247374007911634737960293405179705146915816567462181424971034350266553732802278422921836484763627041331328073455369171271919492214652782183119615653733500304007827610446741288066736887790737749512066078257303382437701811315464229629960935341520061182783807508516693030177088288605579934522462884786282946883058564967050072170802851427924846595782044350352252229920952835537850214989685150077764412937341009751137205992226981513174541389617434504010108756778097480064349080745270479062865610902074647386557585139507731356869720860759620308232456780145475758474693373859396038530343249209006769052130535247908667961941913975100634439941745223033941448351331742552806479862787612414212406740719819757993194539111965929325691357305263805976394179444908947913467654261290723894748928053770339979191279567889051654402574438254262914185845703259489626434075677402109741444278506818021340419031996179957619396275185868281114484402645971402598681657307306234793118279694480185055861203398083723203508676545327200573699600738884775891276072358030564495221620745490236479150835269100316419582816171299238808383425712663174781634197676011182957387764163639456953603546421367522507257764463779215200577048941241645520641331733298801588559362179939532907893639358460865699157572411123021602854289122337352967520238242856779167927101104027768803385628860064082814979844491704382964647468971330756383492941438922382461051084084709424090491037310124723971837377339015584149878326470592212655638302782557269339460529840078135635628365486549140493836655554354457781152738564250316950777684285510319971285668575371685453822698508139614988443562421871953228572441336997781538674081746907952720812835032807673126600544822883762699242768237503574289086281050902122755832849117158400141818028578345983330586850092388997978607216433083424109658847828625586781487513969477527346820788896782476144383956604716874628839241472577210675796723926080860011891838117373077711796842398055817009463955607558248435647865391782109351682693324662741078710307176777023878182196646026100765363215140667933644941607230699514500087905132067376329604101602685663196248965189827427451105300295275726559806779145573123971754490495940149760316275494066322555390083033416021779387156106149299643723599824763416132897697488832523095442657379346815619203415252506775348901302136130558270075076057093199889213114161454733993017039273133609393357179341965574768267111785524622780641491124001877744380738516338448827271265788733025981158255619095820638455095785645132883398783767370539969575084027042918200721803083822153278065046802756518400449658623403600628827918673926294770567580345472618790291396638481020510809266421778851194960842912932703482964903721015860601639667342652591216110301497858906775764365498368108768877558029453926203557091870216140376246968727617977481822133983315419926510242625366384371057146071919102758828616673415392278512454167927836060530555093285911976944075243869782016935507529777101529038904077740023407993938405057686974987711541173259740426390605208926277161061228270411566162087796821215243043107224169910608388106908515343893546138141414057700483815170465373647539226328898546250674126590981263175391580035558257219037223597039953829968000214206362763706551417526992447280264590501488552259127830679328239424269249037634204175782584219041790771414947048848416479979446044532040959878077986563335721066620534362676110487408891402100889891468069759325394794192977045789354577996646136806873539077474938498785534006188044235226890514603478025141230215460082113176089294677386257637742676535099079437427940139049324624888333162267378377734328846435900548362672298801375192492740907013347167764333483831191963894570312410411715735887909556926636306438144044444624609697490892900017555434830453695264782213911509334060267731056003002164764191266209769106825488487899917563945964578977813282141603965423494898040044263205558507953256945903947853931249825698479586960373964604072188684010516083428859514550247461653354245737524523988704768780335072253332577126848934595287237967853439811545460738040938883342641842398077795699461701843638012514413319208591252463435381322703226120636296559052510094456209069303841205284612555394820889317697434480357512604512579006940631300275894991972853862676146790858787147529342852181806555681013715666035577541793745187882858001985824964469998079431229702218850161609685533574503933952505871315645046088631782340728265104915914789980514235431236916840010581291681344216011666435307333076649207320399734039562383602200512976405807803746751446577377616978621170257707390632503083959019417688208605522292039047088450772457737035864092718270618763500366521794475426580478863206044754156356165419813886262820965215939502001356713452482850165393683022702327349897677038547646792832160666421738008241864332044279899848928186582783883564078712968477670644423408451373646253035200208726475435077671827337994687264767564048644614735948092529936162546789753871845418231757249799690017045044411135155268146513919834557526266936924812221423967404866712541432699179343394400613584890546932800156491503521905327073350123069146604248187189059415556657611710418886082405221881350602217622085928607017786991237869038001926241627209962047504240341571582060788987015860924324678521556753797026757416519934738202215835063004438229257721774309221909006524136796736168420965168057681190255434958971045328191626408104039265756324102323504463072635970989680572825588026183930995299330138600530152208989716593484525499904583685421720062137646995488489556696620625366837296380875310837409593427808512336488049097213453094424767685928541816015002875817763370359827206500586810738585348997822749998108699931114760653471886713956066523539139419120472968373752386293047712860802086767708034239670322104890149788395737549441714340390208812568315958910580127371900945230510252128838673523923861818499968380327029230723948847633696351503449676853104998965929132133459831163876734780289268771748949745557665139989632895136930915090634162445796305335203416558842161553735239373995194495463167624043615041694382781968660986575429429630833117872099246997711430227455526195799002708965687596138172236219199947195499073149390958916987185405823662017147434668327518819867835303060366446701532047288420701788292135196120244091966002256795132470292197607899107872143643558120111813883490756209526552969532856141405864911012076644988775964859779128746822078587257430663443101613165714527675133809758048089088090543833165029573759938405936503224959044814494499248301410334162863757308865415712820481533179212524287178150540919957346441257207888549849651053880452124212955532345760772302955011630062661086697267850925644083083620046887676221401848094631979625831550345160301490500690334558459588380522047974866239827053636283997413981138894993973264913591623474120316264790997752962320580454641049205649513046224000866873264044914473262005258417904093795971996091359775800691512474414716345125327480827651270675103398216547844057173623833501096897682042691029345276316008724028112935982296502547849276839627814235660472439682920192733256637384003484235396555795313398482475520598872233687267056067002238379581639036651044932272543632972595366360703462814029705940069987580141460224909039579518355146855501237750704303642834293468775597935216949301856344821030025112917671997186074054227171961645463756698617140339181238630983412124888020485298900115369858332247669196922071043007868144876812494369613815106689246108057560705957202542874324285235788387428234028048949224006403805273550151673244445936702889754978061705620994859829164936365621787862510715081893176220420800770851285486119186925778100914120165139727275089959580377265957892684846152788171336179686566023350332838322961184073709535131254112969968290761678494068597294782883329520721785573990210407778609507912603999231116562949017399113231033012387822432486367274644046009939871968167969483972470760224553888714548109872555746027219383451169864946214486202732044438170361854636664687066339962872377649460283720959088071566869832008181764163178404665354396240500732460315384266402883541980116261476427409244439721274126684114317579096933655002309533864865991947468281775556933883586062379871726878524591905182077541095398177573645530243433253952515863501791719055313914223387342753512322527818767739392714795741065088260294237279677988547570148334136229561030971661804143484979404908220031735850250369778484453574522877114818954495574365648544557812540059199963701085317371278524360761052736508726104051560559124268848523708853600169977262450762581084575788098790908871084964482821645637629268654714058052436971868164377054366875053078104303201912267237441432168693154353822192046246263486737196055577166317522727824469231217477701977044137395992386720367519520006363124206973321793956071430092777872827738122083743351155696561195558360642242122264152991711155716199516650110624138982193466509690521197799818144530277973354149148286896058003274767129990774243063892708892048213268666234686485161842633138349600529857324825625057225216813478436360223180058197721669227490752106141481504663257272872020635689864311677499035593202999641089915600018795788399514304947974362073037669740154563175821124489499061358093815670073980935322577701382954297980672041781829147689038522393883995217561465756834827805882384517589881623612830929534666001771658800940009537907020627366330356639360211061316075345684455377837709388951549035186283420293727491282699833852912211472643938784258984029224256085373850054210264127305194712348752806265465523049339002546711778615402146546883180744814301300531812425655262117804011790922041155390727551064776555909415527562531327907744778078461434004111531301873292287370552979132263153541470878931579094617937619718873239994698035620077075737939004223253026379878822789199644254611020805365025542926274837393106282426372824533606289428716982417770421476666442579745233673624431816874044604605762700305652651668325582328592729385222892792445869696020317849950017211585215601154148967702134779577583846670964811116199463777543020131132716672975729552620555801267852528435338809292748873816918332138064509954682606743040546501467805547612410325182674137454097386072291743399476663567663741001152498455983381367898252811297616833705440022854079840570917416449192533974246916992632738755854901240053447086079176324735924035216323571210906540404098023273609303627531920463746445864405960607931120115949039152831767393998078065735050110211721530993470739797401547479212161269777737765926405368718345982647201529096083382120903900370106716641952189630430422477240744408007946396569964830624492098243542004350198425417015675295422840620185427082722695179748998723992484062751583561131848317375765520866480722569357631974819779531230270943890069008547305860795136602047672138789937346916497493806267467293160871200314991829819008731766868719314082359962766378046835830087378838637724558113457311831732573551319360040881438500922026516003794718212578200274512304764708212575112177797928976860757932145560094622798333802013367521319292882128348589735067268176376930152401105852830320667392196975426786583001679375305648435246696425347596077368385406166755142978799001446617452932159030643328275410802148702260818679605246601487376018543672689791005040136447849146280709067161885470777755645184597338183823621818678839170044577662185199833876840693741962489029172533062472953507105194271335107454672655240521571587643334671282000773912022794070064108942890842599338161874149154462927591393829104235446113351450673518517579200132424437161459456388136236211277104920190147136289269638006059413257768008881982035746214900689764594436582231381913244191973782222261747728176077014190872785838950220589162236519489201872706537953574921567750800208557508673121939293855683634956415408044465074277215393463875004622749881296026502387312108753550875544337847472254360707090367817920684019129007887011708729992911626580087886761847534823041169447008925032254374833412232448831660188920440338427069193675571048791839966374563181224832880850034206390520947840641127748193428328106986791359719610038665529106706120259963141741987103134915675175813689421641935172449204071647659835601959303386900166890946881987709195773669593801521205557665030504558061774736884103307199221107757875174646345805242398390393251398955876711394469578938484026643431036270378086479488500885897181751285016053915549619383000981403724750230812793549627458457893109788618205681555045490145858866134999530090057442547126109046718365775313915061147220362064310655305421195084877732828050055422229236559483357900183202258331975940825012270366442678417417709321919366639470752625705319865088867299960686380428510389453272744352537918381748141464146986050230745446650873381245146062779708588456218107980240033837365477840792497563619810289208787222694635176294121716785289828103295743413461829034122498927915338496921648637496764710470245573238122629406920237854540802622730629506429566177165240471106965921236037853533595773793822983348588666605505976082238098548649037828142274126862441099619745930751879808361776087839648246310874607714023109346494306124239559914990487682001206389715794981984449024578272234970548632014898893465337733482798246095419705700074349648902059425040803194792930368171376573967342071996498131652579090504328785856016157626787168814775624973300051629088417907949410211052068076907768548763640466455560948536069983648243448822038713481581199741970890715221670012990706345458231565453023872593428074129617855807092653299222765636079356054687220495080974923911308221469235274720840813011388292299903523182844351642127762620191610224359024676150925279248112120269079986316729858692738202171743638170596948824744113219539520055643224815453439846951020681770837590277518169166816492546907136534547595867811855636886671205178167415282866338729738232963633785495889776062885470241112911809374139256860653419266816436744946802090038722707097482524943775158724141150197881398750058786940271655148753797811270283644159979045433994938035822081195023757951037048469220134747258573972094108924644134715667100112861490921080618632684087641567397510014933196254143389926398507860176136193895381324382738486985148512209961882041267659787977859117435091193820742020333201832016298574277465208148540260894125793856429713165313608540778603603994375589419748873401078246311141810672081530281818397550923367391875109451411195469057378279597641294081879642194314486506498095929864973791115469322675328399336102519795847484169788338980497641905239707171886987691142127910430409684824838030086822179705870056587415608106933562267520081542206752992995127769067931104242169115414812345922542675688608231611653779517928626201758210537551096736543293800861477551594613544040676196910996856834468004316427087889039507411080189588932447611513803146974981948195510950104066564286905738748778975164921539186744069765804992428516680809054006167080204080135770546583834051386624393916125367611035080165852876296153296572311875461090577135688392064447851166359108628779869814226444989476483154139323521335823108238814851692678797603000239093599423498291179274094683004097567431631390428580896573567479384847980094769898121059905196967489731653779568345628577680565206242781732744681263953431470092860956708661463165177332030228985679643184474759434371623860823735377764075725012205879145167920447492836855948807816393988227512950558641055233086672550236058843439188932916828395908070440370015390341557015720664152342519464088510374414323346862603571686629178437998816547861695795860573948727611404337229339417317637928586954286394026472260652367097421901014959655105609119984493346643967946224507242061886935968069178394197196531348266222612280231519114886617845167693363160858774901040884897783629009092093947767932964037584926907852674801251177387496277759726853766381914446688126894987511525329245980307821241673007795338307420734633656951798205294146453596007375272366762206970291738943265550500445692213188332289697060432550232091496574039787383580200037227692738955286273408142636185600063903576665176141663793027407596919323569693887404123258875747879330077610640325582620818197523599551401202307527587771249940222065079505752285734082768438164918746970393773116728526565407538396420330014031605341957978987888831182899922393097947342339128190894776459738541143585184161291765123933434667612557296161207498937259006290186730683854312518688671782625805309777936584727167409357686907611484755772338075146537190794006425923503568370189839950608586025561924340336379497563545048712128947919894252679928878549465328313918021192361386643833076615744748447019547308468236771110970900483219067192787317877406297793205648823747385836029082051248112672107788732239366938617772504431527619303201431930072144747085529825120002393198689861652418225797206703351158127566322729953692969130456665042817579894769315339767017834610209309928693993132425185481465586174270294555457018322099786570738700139814149929577765389615146358731365858096981682309886832746830284252434565144335255073464934633616051174142028898761411625074716997516451729758552431869703042057331165330740275174232120565657025306685081046700982993076015703284906198589587276474229112209831247202630238395293063742294067337443077829330130351792956994401672054837500232114808711898393670498364096089039406750348686044055635418674589961143524135106318944070709755555852226495352907541133269909008894215228977805504929626324720697846701375611067401355295769197081151551537325316643632814552356895530246355022285432745170218760916100115907538787778820057673102126085913486770634977755368090084591976152799527937966364503597181252240858256853586804518442358394783052567346757982610203971815558877473166152574765776359336155685099174857968951549212043133290300488640310786468721360798192971615227494747047766162903370719188969345877533147445693424765250747105122989881428533061624223855929792310394956763210240991201349891228708745606137793029697456319489839484529291321638858768166228690080165504314459319417178557438897044551899054933326601768703147876836504571047644666053072252482740833016577994610004510761122412627661824958106931295012072153824624483470679675135404009487844207374390166725867165074668318294400132405531606849781471985340242712448327297995854136499966244956651249975318025679875949013102394638209227992385420490002545160267266699408130662196586811627759373249204406473549783613923393988874029337360392728693396112752140310697398716295470086141766236660146133841423348198162512924372597223330239207824057137734418826338175025573024461190819779946732112135320203776272019296180433419974271325114178981868546189797028326426256044383922532063660504308131863055941776345495926274731311453816314576485089048168194028432241434876345294422003066475436843789953152928835501259256625125178885998383648611773000674538651467641942089868944622748002931180921639979612167068109409129480517478605490398162910799649042404673647670069603892750640945744155582803591046705445002528603004614117340871463735320870705396345396092572293407227923740190917117502696790421353624918753160450809157853422654601707468657744141916915145391840177117890981174008496150887948469522019016278388964181222793907686002312392499266353626341632278618855898886579073132618545056789816845456393652806019522667316697929701620950364166812302330963723838285007424234161681099047229863920053537008520076471524822116207816958741860921511118516893387485099832749973227509777714319646190806626122778099483676206785285756333777714548323950305158469508082773631743786640385201681247180203567665857287833933849352377437509403620214533221399624650218127976182496366296300550256012167209295297429248859651127515001178934639833877424048753569562976634883408574472320308179837207363210789506728919556413120884403991844138504198490008373882802229639626492583464967905031117509578590271783633819480970478000539046048626052627731661977665542708049605656906160064778807040778221837218357048369213430977260520496414302669489355179968660954000908933063886190750460017603192539690693281513768867490537775203435659501564506573955792137847187577230284858248200470076954726618663800581459471455687534420777166479056268811906460279899777580569464318885785523897825983453450100446619557193314032725158339539415245382098421904671089976827184263131502630526338658656729879421549205749755465425400958438898046061100060661394456265031758314712600224451332752724611859415508011744367714424827087130890212058399057359599455210696073593577463280448943202573978208184365418911066716078484947331827376129094083715234109779291067846282849243580730675940675158714033765390270322478248754945771888665228637130990562654379972401330027155432975708609398078774202173842761402550705539561403049206452906743923674624911800392992090729015048883178094032771001788651280672879168067139171088512613243530831771449992193763593261247753790615422779792945919833196081667177883948337288694128960034505236991552157821794044197187732682440159741311136305938639646101765998697282774908265284945791632341134086039835829661643974076147100531052668259705953221742264299779154245707084788100313612760479278595716077330453825590191479912264047428530316186182661207350998227783862590881260258473598404119392272316526179995215917534333291248201960616357791591692068516607819000933109825198766925637070791126985439973000566882596035805818769662958243534089661013036245270263844972436183491426759688888381603861524910487119154542350602568474357648515990698970246692755297794424462462527411191924341899832694657689033350915131574850375236271797841090654701185079680638794094632692566190732290678536783576496823093965572468332859657333946391069788164906415275266675563056173433331325126433268211869660170680945957767788518348292419285050493196497932483747327248923755304777505551431666693226988678137186433384967686624007931341335945529196753978985610477067110111798518090988791077962628194778484962503002044057295512578339169076343913088914759308865831887572636273898236045941793751738296201247173289922605744540557836019250372118963663786054970944174093067115980673489068766365838932740326130252757440134993129311603424523592753135351803343920973778826255703843422349547120815109763341550965124818503404933869058563172445579082380725160882440151767694223648702188867838838558950416658774913993513155606968677006122220062838322074778427439858201037299643801678267976848577884710861346468630549455018883390759965188469382274085967630354580092860672296160842590003382478268927749795337088307950490733360144357618451895104981583840311830443391961613176616100195399670441452952229983593173357499731704613111775821525676390663605747874703438278422523306592001444955209836396075512451919949167548474114944550252350640925260920168422115242904934756124780045700705724749692232252500629600925312266600026958438269285262424937934716940815105690882525700845224378137727436733878614800637195665903388560372550082467943964445870100438007861778615030437543738293029053254608002105116184956664041156394339838794782691259646551966968061026103289916428228245498628579096197046469846235090380140062621864060013369234340127998231712721481436960485493535000681794165444382616617998268593557066241069178498459787263909144170361388326078004630468003347533560662668635305006271905392972826590901550952214742771329457703680276228823354942014493722583042139173084098637910723876912516146856316532717932119430343827604386515261015574721524410078553012365680289496450134368642130155567155576865018169422527531757553906251262177315410615919327946249920822506215797924234622931216832066534014262398204617214896357961964489301069392703835883709996764852773535076950073109565161176352091390608795567665839202791915948145760005435182735515283667842164518474739690978736447985060710175442284533680474923819530380588621137435543487652217076504549751798430224824015870306125010260265185553837899693187076775258521261343357710270712349586493659759739900368080535076457082226463247746818093498848434059951825535475173710560248971661113044767712098444864107843273809314914022232283631079638187412223307344144034346213450191722919152662980494423168576620919900892850509539490600289559215134213988955042054288786157743224541848714544843239571732006859632987529262112190145716521354151159965313247106690200844733946749158513643049374312455432452352581987858460489850495822132764355356120138192359414758855779745214421729644406158193380731392510335744753229632099803642762534847910168492985266450406350149419539146930135456266564711259338138171913728152596112663900508791141547999585433526558789676199098380438796236151225265740616547671507561466723638058045303564107973397796478916811645338465193042154897816611810561995660488932734863360780817186397540287717797363848088176746814638747879907955957645122204198027851751723853704216426910332819137538230137560866095251602766010546915160848675503098589497540234502256061083357502725409685225673253795006507700750524529897952903273722988057168226629767055188179088821409801090122882364344236015964784095674633713670338200766185328133542205735297310804100366038241463332003422188480677962176353490534147288642638527442409885441930785748749953824507203320955532776140981146522307812877309550500817503816503057946725739089166740598338655989980934769500483646940309068878068104412555471718237069956886527530606662558526649724812387001776431864926015596028037498288733935288844898431835296567887441878012645089279809687919867524784815461285045881764889545727784482141973116635425103520090188404474014490754876500110447394209024900171369720021246745452258870056549279825066461236645115236437154764429078357139020833323279976001286485174853597144297695175072491339361472470272716634857607326491112469197068475044431343962233553034835277655384173004518066361914710331320517179569602897922351841094494968915653117264910705506803041167186687539711931120773354135939106731050058727183302238583608396940609298740972728757500001538530091023994024288548901400354718681164914039278720273074954950024025701537566640765583863775239636307183614750175234891708107189930711188510610687514761297155704853991435335259982820816237114534586736975690155722017608617570559542385017879049694312789252651981821996725844882416913273025941986002653741238858714558924177568561206188453695238302153846410982950022873913246229735971491377417743131083445790673000209921352289269512607939272867420708289588700205688496338538699342901908486163445618366594217099861770728662529267162666488827552004329343467967746332807367273626481620778423309745758880610229416505846351651958091976991826826884829946899565648519668362406774858359201673298732899811188225823997066547841931510422234996549449065236102524794273933186346959554472835819681381939847574008221437351767086684251528825113524422616786164803040767854612472721385794103211768663394462096996662321512243818219413906502999542459005061896107360669086914009335255432370280435416102044813057115327171335512755087274404892714588070055252167695580400432418550475666484465352781310210141014498034177839048595873567409868085495338851707262289167613219516220088232937681968955340391652727129828356509787951270321621056695316524594894602053730471557107493738071274617740020080587966346452904655702360479724366455977305967193572050526183088580185074679457315346333899014762404901201121190112416270582428366345946515785145835978201498753196286378379407028873083167931472003108757763758991162941888480070086433406628003126213233698896810736735913219897597521176131786226540098002747059997042943661429922145835493770732232833550956969779474060910590369161827093663570499602104652155194753253766266386859475413364776681546997942530159919873410544406120861401931153250069710247445940894120311755130758369515177358190430300933892297962686901134108853292718339601201616200404809950524146151920364350296682877204769141829361955242411898452890279958935954165353347766991915177798998547677094526292347868349355639212058679576023478209762201112504760851946149746330662336526266491605568789346739738209975916304907433898069584382412613915169405495759808743173092793460011185042533081960076873312881717001942677279136369044007115388064344835355453141368815677189693731399880770727257212096607656901171193221619632893263556804556859486440657967761395594756597508987430040414209396477502957179711556129156276189761164882957840795201922255934022672115610179688518223347422690440557870039793725230089814603543665935157011268201742339241183244072174690940258130461868432559710932602353295152170941124185779139027954849594296832931039141832810688741031533716017648947585608998618071094742289891819886266971960283260916603311200671161951422568639598128360816250492196441241742943240216749861107129696727000295499516005666845267753183388201474839757536537151709007525890959823571908166698318025291706395005727914025982737569367755074759358209074451721378558075634041175867923429067800447228415837557177076010310516052694770904685648881018673510873851043551233338024143280348396023591501768004582895459200636377557842394931036475746418816418839458708449138886717401409206588935866495176900282408831286451273750826410856562116864514055266320155381757829171416603698519455485381981609542972279562680469981740970748739330604788379293687396617330544542261627431793274270783223188207840898209201395743770111769842617619019490308444411644068294762191731607418446398921957319313627862524760118930735915591727202872085513844702211580128497925404461912266257461566993795521854999335077656805875446335103953737980009520838236905556236867785741607578543263600342941765523325112539478219715415182037217217521977187821183187512060936793745052607473190439552337175054798994994902580191081570939522731016904130418923810923789901767912657071795144651823550374052260838197040267904407516969311911124194668160863436754948052062428969747240337433462479398039060651824808834616071212564125083152811582806537251500900395586632592549173790578704552632422908404830592471457455599488150390788558184323779023723010939940425238211547806544801383133787457641213147440949169727272396070955255671179439885268849784073747456673143972314973869307580548660004501259103624146469571830403211103841105998173766888113727921544788953615597622041013098512110074219013688844313028017229484633886878801428964753646410594375755185364252357972351982502063993144652352364034187694945320241599027754177703755763347556111289131281833491008484781209573774723640475257642024189663684102228462445390968170365799334998152481832707025974951957074760806339476130503165896596148711107383009196380694735302902133129443620012984034415069559012191464584946100030407812714185717879467310020468316021550222988972596963517800468249165331294739579079818367568334537648637470402283269017586949685127423035177368465456254862208044216443676896533481434380434302716489124921412755523265926948240007373753011226221358594127991659206862134940746799555922686380028164823614185213669401104237238327763227879364939230000715905996660937430644924819566832968629350800433277316460994296358253467618089025048770615174816591976918378200228282337310246824477296953470513377254292621697343831198022716840463759444271619555526861227839342794220676307705032750727448498839954512488181523003402090400286100021877946273520679589445979112021175874053284684706472136137516514769499804686916098545467588446750638623249086583852139314329662584249791587465121703075918570156062848148219927329822018970575863515673012032523644388360191210101936164641151938509202492972452401176461198962510227486063653313864700437554094997476462097222149812598742612530177540860696870596409134640288161082179449193572097959350247973280755087370208398481998120936008299786297976723655906936051250393082633121005305230291332498620048938868051882803478181442318258051923201674484260477334432594756988941834681528659868740294174758228645184680143921477839364559120077439808833704649828732362639209589639725819087880296337177707151098869655235632331206485997694695558614391481516024474694182578581835502674492345807422149177666644746219387255374935314281434152207471268735227503626111938652134160642427695631068240728101387949101972645109240398467356758756472399729667722963350634000239005484115052648954389104323858171467754223239621437041052176396516743075455271554411093063643103363056035395778112690933180857035022486499875907271302810576132833906601647717910355626546234916797732144263526767756043651175581758376563112817708697152129454094278402862245248536012711078610498973645585526394123167569061917739586012487505255168758347907655722018933148397524128511729298634909434590178320978240378721151364204549068332316966227175544113086539236380646949478713985748309436413128986097927256531775461931552296888212035171460082053719477601647191452410146657562021663896110955630002127104823536187879775163368344687498545394826616283971775845836396071414121330051443641284153000889654900210282750758092279154246331502251810675562197659370705190574036635638307599126444950087059887421825685586574694955174282131380899618754862101265523133405530529072318767246834410006620578675524200091900514263633306606524364602116503298560716770165923914511684828987795513931716097396967803620751223805091407701143269440216695114561307966927250142711643050648802590923880589136285997760287835738993247017457155316548949150408045391471116623006805290682587026377529747253248569485169588368100923732314814453371473582612080891786956192611967494376939214731984638235119372446656582872403573698801986999043326410974576376620072586330911973330557572546182317043262228050133550730339158809475603198415956112710537129323909786255389336882314797771992528648845267367959209540577101619637242715724016002714273444520551226290751515964909059951518454123420698975311589104327612931497141591951755169113254948976077411397743394974777683495279160294306299842360216652689713038544078474594376628982956118200633466833672135878497325268391058266230267942343239156828153078397589726598782280636220281171194836570909517242722441476478763765869547898912416447039503202251837487807152173581361301596755991675450085606350887353955395837597291847626330035022828294459037448940435053496004857373693103573824982055965779729732638409456428455905306527987967613987915370186907920665906929746006405606254167700429323050265009020279736798488939524782069631112459529562056714091452717472885517939018262851656198826851084010304627142259843443876435872099509647631111011422703728776294440763868050538994917990843181218109852564381676443651520265992086442233510373986718845724561565047500662752680525357419430959039753344270367003669421409822007484955583886533702320888543032211996545218802655822833376749183301801125685983041813641359800011939983656150967134114543327374941781138721568111715960659221156161982233435301962467473830962500683459920494743884883290008199160521682680007413214797097929691791575042862552819371096273769738893015526445713069627103124059735417663320039926645891809282772135465868433200893097933832034013795506925890568136721578058211436879449671566560091657943447503749078080408571158292351910256025392707302619079121697399493723949452779478860278539849657897263383779422341157679870102593715765616585331244794963033063317767433049484388712210112739357686846386189314852063675617125316568144493114799228205487502634887948049209334553280900148340079355425715972423085196403978228488723588923385537358054988851442806209004633577074558542216949516520944686892132586224531945395176962075709998867141088124976767054504661546464720127603037333411252828953425120739557137859029685652245739419778037056500427336196492639389871154196918046362265784018782045071725024095839720284641629178644616079331435246710438304115591718721530028551486010178589916595063867114229521117313675145319174688093694172150205581441480885486804790183709604898374924521773956728960509761538602830984468610944365500020925536345723015079782010342180372759574062941962706147849011327083129918357816884235436632511903430982161344421062060734411252343960482053355871536225808852040870035277060188191471155097068236147019866581025964435604221196386933830334934769754831075914608044816028372476688654567474343250692283043049067585298318911317164799740129082091375711897815758180740722492826290605811472621244994526270433241554781872023763703619423353618277538600280643994856586472638638621808371311936261987006734374832139371469825135994429158680078288703651881239380359128819045039372382134257279835754664950084333553525560459968394221855640207019690553725700450626399462074738041571998240165041264925437086982685504988476640867814527378396144851300144771320499657654584527768335123691000065439457770149857150388630671632197469787703511350104877647048527546105482648195561651191858229314562404392968284954334571574817004787230176163270957367449349529124200811019219955002861304100681662131829926703970364694541846383061086441561597084726955873314677031364765671411501297599780106573453277804823987431505592607212057046175693710046009413219119127458107204477161697608794813596097763829928854346868420939546877758593269171458452331762812918008105758418079567295881220718591847598213971527034927348267268428102915704597520179405324301577922728686499206936106811140758938307893460457728135724622640958851498786052781378889979192619551603871935496566220026945116975144585679505029719881159726011510616322763579457761052790127510027955429100204987691544232253622746782922973626936350317341065941009530750170148896365691577034118302684395487701291427799316036933914855035049355484916154445885691439563037707957617907532277172256559727325578482894534504111779119514633085815006581617588584315274792838274618699762415332661445289907968194427528825378939996655011888051780682840886424297086747472821185402020158803726599049562672847879801941394096884559159896313736290587836881719828616491614909740232333645594902646270719372552001787185810677703966116455087448078052575626447685193949025704127507833187925226300317950778804954223057509904411228600531606687980604055026342020363589242462825664043503191782580241823091971117008603062115823185406110370431310126934094222138316008520222990197643783965971474011028907334912631868652767984964217152893443030783169084916953863507621592421607504664499851165658613511386278426426065204754262454197906957782304886886600045078716424067968555673077386264822480923306146487929516490930731286825408596432912619589603800370861209494965816192370248916345082380498336707723690156138602545232892513694366860893819442542115307108058577110645787762715808410112524326943454847172859284051938549648812903641198721100768999001641117497259409589074713460994494065427918299556021276998768279687316830372272383547184081806667070620496557125435595530914566186455976606725470493809056971544930514198264499887208005714551648033024236729190387102778365324146826750981261879309553280314822679842482808971805374128124446451115157341064869881148840982991595464478168798242323569983115251899158482428822888807581472371964786566552776655665635756580983953586881679748424611391194654271329111891948172425060525017248697819533262699065390416254288466705161388996833112793682796348248100214912137365925587276845251915801533484180566225720140025856226006561203245783566958399367203743750686699683537924365211091839076307477511600918219542053231107842474674741239516587836646215876911054346310308881578569721024083475829066928747485054528772046623285993336651931078453713498930741250028969301536958250495482634416055116239875690190289277504039216105996429338961538187749067040163362793041341391847795589808756581222812767331060314349832881033431711228349874726571014492744203445963452953626579825316537102288628552362305166255383945119551948397765578525068005331181185153362399026232443379893796505500101295862029040253141955057707562468898719269092884032602133137271555318081691320644197859976119472303008428719567818739304500535263594579290691549043387614201074262216454142278394576143073101800246873561160036450079830148596084483955340113736993440136683881598625932221247204222084597654540894258652447076404046390968412798358961357548954752392967091670038724514115850527715815769989235609131024674235734090910626844681722707158537204264122041323362825174079679031749463660139407404210306944257481986421713287716664068121014129214391422556949314870378257708528186749959416320693555414883795271059117904538563822310709219384701631573717056028147889258178216693447435987377847091224089816508591042086065006051657667754966307812598125102893546159623646849178960635204914223824647829239394124271869367860951018191942580057269788814669520583586173032845231398444397445325660378823649493423441409319301462305754743793472323137756742868236913263715389984498873027473472664394692705095445764438802297081118170708695166200164723478557816880881276952565571785085206741855074281382986403478506639816378569554347189499992220189689615381283702903299723725360715476315329068148911177574375531204895952310003490594427343606995014572205397111346542931624684405373807235736466115493347335267599417107429953526952923720813647940514894658078985490471223452053889588085133368997148369121439276821873003815591658228038879244550547268702827095902486356861725146040880631966219748273761308162511051384292203624802248749340044183273028289310236738683119817915954638381068874592124360138812132979993329952587288197588738112216339580619171308849524894741018795736377921124846225675441640827977548272542123309725212315498477925158634597717381226750497643675947815313744977560221693006359091695618942844648139179939810278193766104157274512241106653958998969897733461884156750594914478841386513126800638914081831394366213061827068546467816592482678780473108989976405260601569564736399051214320379046978945867353582678849680609093350277551709723531773007541657403472001174499364291553523232828859733740653528107401376991495819289907987303727812888447496171209876768558097424993234639206052052439143837061050706383195702147817209902507298992617393065446604315942719281248751708442234018654968082887374333616904361914709616658126196237348394330973218973156607368290181628141274467805550900293195206518510400587218904813898255397308253745832264189194189870040373741897265733887525458938136156243951449990757928302415932888888770500078037752472442315499412609872211287644543476701632188526707722137031224491046357862525672799056577038493415400688032502551416340341338803858432028194883946691649003706841106482599255245098475655021575124631060624434879705025661860393695885111262311432200977814200774937572428398598555101967103732853512575445903479032461249679699285263405310988889824518076812572844290573645934581633531719642996398544110802528403335008553302235703416393730493920873530124363166553936808427726791166543734373424824373882300196310843060759425463501597693364755316631917946035000923115651592134721392614407992286461269109598562518021782955519816869610044073006347882848136865768597628321815601327719827821636045662519442591258173353347781458382710658479150193107559032902777642200409315661323079115494388018517281686801141823649971980330292880333219934059146028960080991687859677438159311786163847688682213249986318621409917956045712651347933513392887374878594289929571518513761587183215264604386807021575908264844443354724290977869300275489628610814460590712567429177233190170990710295213232391560032378112617217380980881184956596852378045577716564114891731800800364292810804101979305341815037596179685067047455442187315015584680157622852947564908275742890208176667456309447006173014466744143483142691788357511959996651553390198718857984007465831427488131722406562006980588076849640435619968070490299909340114287211008050135295530493473244182182716463046365132017400860722060798312005856020769672102219900948408219091693787416803788960001185877822004284982186865375743219120628709931930827160154550359271420644389825765197522894726154657752715804574108981567198717133225135574437445765990602235124032179241383108857640767945374083370692144660569406895314989352594077036647858626338499718610347162307348533041895627980451590380742718258963495608394893085432451203578467544767549634706517746629135871214673447299434053984280621022181642529670652709588400416237312972722446178675022531551882068199307664824352497799905174917746590062929157755146998230187639096134713463344952891376998926181853136660595932891806156073117648721900769800402654799379181132149889587791843001012511903870437695903882827821837773665422854696737858012605825999135890891960217431571888674429957578126741152401786311967044985591507021431139945338744276681774667753795892968839803555657909823605215396466179476728379589940452920183016610169921881162425849282031381302170680349538693845931281654597158413211632097883330885344379947809302458786539434053185063048175263448707646901405834523822123484675592318838164293859181735953460410453294505083863113981947600584896912014094208911254610230206921322692015022059728271761467869104871659403479078507533683283672419258146954433274336789070619591805815514637782282808122834403705888966037419920744565485564316643480989485649091261922809462340983653767051789178550585776079065286744574615824367427217230284833375488111125546665176706926488595832358917750329134742311850376656747871801920086154563630904508098437407540441660968524409208718855653058231223299179042771879745850932716593538855259226074177772604821882060459434570234908367871440975254965171185593895870194930239645679378549961854695533066762524776363772022790352816041999575452222451699626746708069949334897255122301751471214748545608031530037331205516900258046573712039776720653029994132480494482033795202914226561340082800580841193423424228434276442722773380254498418046397478961721761912217643569773435346896741907854276564538994137768357865180409547120659576214587778613330058012743624933850232448688284578673275742974785143664959884626927919391401512739673477646348729951920009253107818875620433851206759347782629872574021679842968431415700363896997465981300353719672459562667401475245650336224916298885379399730451678002353684678106598712943980479285850343170649344694633438357328215777400120475501769150470986590554664467306828351318793681414321615893027044016988274626819907693376080978762446206082319081169002286882325316308667841979804090365662968110564169707542346126535891550964033257691377319445406198390065108525883788032536204272453503668977180867368065422428453667776157847539706467488325982149210648702658230558100009249195759529720408663759856578946112242310321198283296970115307062357640222149401879739456804494288845313576655255158550324131277903452246946400820208976196667996515659061541735124583940536100894845462850375542915952631461654798574623097960121616020896513371478563737192998345258992056041722036937425484312193877907599462930947820563489648516986329308399220368891169128400400936509708261303351535140595074049032898265707516900826508161247678946366498129150551667033620800043623198386813568934095559091809607430923719023692192379058480894891317365901831578088356670885700376226070428600251935962605705943851856861550178703703475753121302287268929321484750198144745877518116965766392342459496030751442763911040404015754814901517473639403708988367111747316728070325687478690581203694053479409332705648200373845860873703357606827189445067492422088813850355683740874349600854726883063544100715308693789357995327318389869855973102245900378108054363974104981343299291355029573880704886358986619037328432516631439701821990593712927998193924679162287864704813783042033055061332059933719798829617554645014406620965449659391318773560431142441403159471001947402805785148586393310871219399131669530964096057678856515659671756197074645978174298658861948275536430667207854024741639885957240155980716480148964106760173509167309654608131274526722662402824202561398543141524442900054821652206328882051554937670132497380204721047626516697542894161020722040787965607150104798895317089885449386491482442595759711061433924083941361141329603504651025776524937144159461844964450715009542073572964878532426570246895607239867551871756579518252733114937182116997683096373862790340089788844849577945076270422439890477771385558860561907533796257072389099453261535335251698583647681902112180478045117446242541712085731202401529843572996599299023280640265440766926216619417646026770599605661526954964141277290809937040349453058984366603634159996617100593210608254112812148429125564982491425692653416028890497066974445837389984754708468823214090902364425403822148316699163428552639438642301038121103172895238873537607524389624866508782610216246656250224517313811984547107444887362923345814200248345514197008936796557029903175360344555738346747002967548549416649115057691822909727326133063147028343555515626765160820153587033594290429782692252496473378533821712060556570921335332018735236883188739001799981816158328992315685118708406574458381456084151680952310861560757629257311312689745592133619798247317959132198974526220938008368742354131601250850789921800354805805668292554095318540225593157495972327717429414989925103656122167523989772209131297308082061778949982840150453265439969064377154600133425697415726144583907598619608475900450639564216662032873308072124087476155440823172667705990350978749309298215951042309997872296261159293300775650824318324506977873439657682065161027043110859145773213420158211718066576558257305887393932921556321821557727785047956730090128691332723706301268309960055479605055327212846241562719824098389422402466241367346810606384926588769651034993596356604459167557178011494585295823909577580122155643915876170479139935213264091134689247298862674243988244353400615332142106116994448397986035906021638294964768318560960104526351406947665479380880982196052401850311312079130794346806001891999079048000393205782222463916542972892182640780909007045728298911705324800195990082276476134606529441141995652490753905002451194664250049861716423326339305687429469124833169249120873136484705478787802798019988614570775613361747126493083242524875278252654999029140778803259659726219040610265606315335982815366129170379281585213160488542472134211053732778817554622032875176057506862558569736781645667452603580767434752124681075279746950860983893635183782803949790432683004364300713870798191682965472986248022222550196294902528944625624124658545145596148554521123945241348075519029313173974472597576824466193431720971177607914604416318682782821014769698165320878833207731882616643431921176561848759277844490457492790137021983231873449239133385193497743469061941920203120186833208892278635122683145854189958068451171984929057121584090628742193194633908650099025529105605836603138353694843766804388290652000557976341151396837921856698704068396161550916176765463295823103963202434545609427721514005232839042753274377050660971867462746097761446259887011116995277207691069763149413108028858651639622096058549223116378881788269108711283396191582989084433471647469069675936476649299422306781030460880051399248094465714235026841851605503164962076489014076167543399336479580077470438323446341406831984177454941622034590730582654490294823518067838424884782671779793012804308631572829326341212986679189510970127171047263527785036301061861930998667586567268443684944393137474721703217530570831052596418327733505756499338018362849155681606394281775085930630844004333573332845868776602192392556194538449112689055589759128305907067527230819199154638118748035514324850232891876309789555028850211825977692820384504298636094115094645517296605754773683690939089823891693725677662533445229954689399669411364809214481603830645642654755182645125630178462283987255385485624400967860985842009378695750667678486533172266102458252051931838958594153443973206070377903481640195657295470439846042717128888543409224834430876239079879823417090490427552746559635195216527378744971983779269917676390772029251667241368104944453076211493533488709578280308086511045321135427615261704916879222272505411443706867836119587122472403532793722165106286652012774433818453321888532288998823322742303846010456320192901291990121257348059918172955232263835701804268437509809010306558418866867545715004261265700302578306782820351831339224348800268212591809296529283353221595039661025584446895545473447424340988566879027459371802359674510727265498433860131803172956045436329033964969367456217094002921371327579170575783085251122974089954110477278094723990997461092398663706518616967805401058074839760558191888196887620954268947268157474450105429826014340731591328481161236329067869707014878246692601215667601748550219916475568722542710340910944718618804323417020176316484950680455487947341742926210378400612840156779686483038933660790086860960008111767864423551409894334633175570225335760558534443437981727187300247767395798381088418841262751887440775818560387812413403217775177012971038599786640402436938072788028002146582371909080324951232508303323180745748802143224561140124391238176490749127672222246554063701614062163926417833897158804274526019546302084851980808805870369409892278920319397332100362390353284060587225980616404418702350801980104396319968902954218446699149018885383122237597750447400531819835915833645511553551732948533226123797952218142070459341095720796741767115647617975784774658253260385837770079575127995808825434373273250309836906764975798579425053411024043789608552359692866821407315230999129342405361950832252909505514820349765930589436979334745325888202425052715170005697636966728603253830888245496938801411454386962272276849810942823722878265630293091282000460020462399823994163727726490305498134060211724203694580116438262097489667297208983537445103947021215788601991550808127320002064606744682411272272328889039634992255224983444694953893836612893028386815195179151426888570279509681531127195525260899292169266773835607240624433656339768922105500207078093769545190801217036860324060573597164097626718897152892816334804625662621438106046669252258475108012307378478652083722572225521576928096618957986324013059888450241476075565496070343573060401736536880756652087401248567195740089156891501627239564406400475248298318569501134648281836069626459094312814395276677925421301919161662417612746613927316508089082769304930203981952196686284397066483161846863978500152678878836064007602212620912676946855481683866384933263202359715981845450747699013245067754913461945255019723139661779459928427966923324743268859564927266375770613660885351505042846657128533071608407526320191549622748261862244815746830225839599122656358461318732640851920966240143823635489211501330157749023367306332723855087509230509199062654128539559107092273049257790519739212978885703823605281704300771672699657487697948152256752160671879850575532301551729054810832731596585127871924187774199810855944331428083022136086355182638498980690520202893523389099466329138957028198598204991179380991965230691948499468002398144722849453095725733850724258747422909075079115593951031234485564394207651162991047831815410119160427561057497170879950593299226801533732626333827683985560046871106460682245881541148720488126116470923679420803238082933791936381357532489144705927085919243905552134332627573946490724165496768240898727161907915047285659464299495091147658715691619038937218239139513916952843923465268283784724631249843489205390538033064437323176805765719969356299033738539799684642852258379281960415442423458394346211865334718364389061316124966639623664903791441601983765303361128223491681026401484370280889662425927545888467911333123935734176994886163934044706318423484848971462765982490881568065671307880945963428478532112996553979908419351685332466920187758971945672597463999478440155855049884655973819154971822831421457788360681583738383863298188056146579208012224219663754572149914502292534883697343109782829134330098069937625151419991644320081124750037256248550126484204731374785537612840327502805685371486145257184402890207709733307176240086722256299846852760654732342864620321004406480431704083062412584439438987120980681393419299847534586770043126425098351292620752894772197401111611266596176383755995485076836762357100668058913644498546983794225978477275555339872508420933117713080283476651115923242531825361933817906960073019490890468292149859633007587035999540511679155624040109068394634726462024827947449163452467254355798114090609732130808419557024153366397461663486462087029832838137306802248385420316781389057822515745333118542991667012869211572778155204693315677630061604730309492390724640959129267812179319660901283473034313095825055769753103036124187614485643598311320108747285756225522797510727626552208579599460373289356219115668792817719264041606515879916338544523906835881129004024183313033210881668896225787212649141522183660822169777847508762742703578072486143059358308478261518311074212767453809517204507680372541932227783973091635508856027748965670388950938189038804560333969314155671919281165909387433812292742215275866071533999442943570762348408124315895119703748333833279347548868221999104779361992786570827670029077837314033888813226558561711993819766412197300777727103807214409996725971505615600286837117944126979288329088916770742897955640495850194636942900651438798298701199695514966020668049855313339151843596313629528040270423313185457922704264308477328807598587791064773904468601175502373349407475483097713447029634182477199570805360987814669721908617747835004422766075928043525188409249764237193336414808998881272539333244918812546246798624083316608391526664025375602479280203259613532449538266739566367162275479897000692762872747160696641715254034781573231458592046792068603360299188688070526330275037554722637163193501920569932943598238034169112352313803937855950503863152234195111684527338715672148665410007216654243544801420120437200658098256031952803637629389697696840354112378101835626886735125233109739664001894001097911343237183834979555410601650322644917274168092097105559570641846003744491860693129110499093931346624167733164617253658121521323663177753318297720400002555286514043863829671971514610548376997278349418859724313784100617811843254756704312045649093157630792060357540273942233837019765904014151779827742182668146958446028775826413616350371274313767251035996466340172746732921391787632301876386713331589625868976004193122820336456280915902590107702355373360501662079840732555846012682496065515966661233063807810094655486670558319677202833444702225853973955820884570252822521873511085324611447531400729094228302183905780726920056764342225291251011749690354222156465358322911874397519812257086260267099943551212128182968134714974772794401967469377830393855280160232523235749741286137429584706614480667620118503232387833643335208233263416612797865498947585342202892543701399168108272406606240467761137848938396157551871589125895529836490988673828958010733448580656227205129471669393442323290930484552623864435677365439149092891486131859290476355551269355600791503410878988701080530818496954663959048354325561155790949813708142028149504417706121616757568954610721914247150285583861357068080616192211398391881624252944438186892748430435800246868248049694706058268863829236179492347440536579674231441602842989322065359998693978799469226965040256168802266851330957709237588152187569409048721715657026368146642436184116073320559754282921752664100739847112290094989166521055072178218780957191178960954401789902702041597430164151040836209501722420727631813999165050008071615355394479869500700682825823168868846915171530173816547469041065785499580956348833540266996958441389323600356034651777005858634797117158049038611463388384405840788280290198602837628827057673911271983181368528572966724019277754288088552956853951835678236262862058390915701777567313403912409235361522664814204947367016476917908478565651198320079758461417475484351492690747197855780072579646333437696937995161527606294407095241681499055911038102847667209882009454445679281684631373814537425612171190614161802643803855741872704755543044543447978491236132834445710567582480118931750438425756326051602845793919813769849798854262770573530465697164379185621831758057146196790927137767952848764387720694886301313465053242930185770363077312217626134576137219317402360160196989953576150160485292284540209428151946180192323145665491888676187185048102852432699920236797010560115715791573067249443382479498015914464774923669066013636796162142430078168099594022399250289634954976379429306591656577662448041730691728872210569392638074189841369302285870191418380035887075146389909772844678032909216157430258724535402697074994350804609589727400529743538700127713370259851168450370132233233612736044467317961819620370041585203372005426214477904752628012056526225168127899549895057249616602891324486452408384146557635356789946466454384666553648427536687982545650603539968052895313606219614313721810119684447565398158329952580266635580332975237363778980937912617488003570328939159844405414956939211955004789832948090641060841021943659135830752824748824600948000950079462162630553286602058677347241178928704020877128082390618623607925327833948133394936891772436819922596857432404830935377650567434674665568215722804022398994871481444155325751216867365968877783365590755355725310773384932802697552873891275650792125521815680915370704587702465012676510284329223793631771826942480162686956182333276025825368914726090114108884600294363591994019807077832601368427574635841288188069016822712835156538785962214981183440172078727186224945347975995402985623482876125531784538896801455432384234933595058636578646425691347823084108954049030628292578736746657364492523110396764152152020540732415622218694498293717235066255239013751102828252356608913947166833241488165832797818218647040740453063670611290389627501834101904139510033168335227961624646015717068694357836376134061857198841727564516692230178381958973716551124717961070806786606699064769365116029018285012015933590759025893843477415584037225587668469658542770501971814073356878222451447463940658228224245924373613616405793773641855454551971548665018832124260544920414044648439385178233762086562638131829700425717213088146761021730723902129999814137503391095033194030902148700295350577885642910463664112057010856305515443354679750427890096261978607321910313564360209915138158910741919750611501742406427805382285032270721588898640911027561458467536842852130032525945091548519918921883822815543669189128802549051981839843478099828032367177025553810296497563781158040294563128407850029568753953027760704540997347355689237696207486594705860866079269526625123606990814795191655592945097261827433038719810813803851115916260074303163868713560405739539503313891526549327276264352183966023199714309573333451287485905119677524086536679591295916724999238433124508647918437508361167111626199152415298892726150200017964523657305591153614863615357770511536440428213760000924807253373810645275210041463539804561369326358797306717649741366452297888267544748774583971329630678662001558863157620976432076915894679361789229862189140039946409491709094646135236895216498755552761797125122844815762236641193155788678469853789994032105093816668223315742882344918576576247068675057233251434549119130511078273287652077470313646205452014745810515622155868932408996317905066848098232559551548680721245512351931152465534048580978352211558310271642533577454701815289646779224768117790542731546070653405787552132238805227556312522843477452693434124152224717716419845080992294137937558736806863200473325157079536992823728914518260921764932741826671209347727771591446858661328894885803264159812376025296749042170640985383038136025831379038771788530171677099113607645482872661120597140979423819063179130056203239548861917192337091061287130077624909798556415849792985925477495206198851256110581951801921275200824907906739332265326310602669471454475607956852926728715097446456870371783675128193388133935418155326649930269728024491228489734482603870645501600699518007446331569793847830808809520283394441510902701658231066503229978194938755235884438842726915431051108996026934284389173079300379463021567308012007259744181679851649924362543792339051356899942209288980377051741165752147227999226278097234137789342623585049318412169381676807380206610644879760819645455138706285592687498356411891354477529361319278440224284203632987822789470979901370663323500338903510854723462451862688474405145875668366723734833793308667050814613160106689417524247240139018703829465850533292058583482452841285407330442030388230646940793247564981964801521028291799560951642037924617130690183686888078688129458135326107042307760939699409112451273362739762892633314620960086376966075855272180332397542334360012903648410666843689606702489977201865375627583894800068548589927573776990398123683691666523382847283679674168224961503835815590575844537400510846683634701428703106692733188756697124180485998043127608516780324955082092467793146013809622337450890936317576670189090076756884452243766127697580182636425249388446251284814587935240498640979523076200714209850401246181713555034327195456430063690435654043332317935737912266605916531629315523548818080491616889281634853440923558528629108475564882864965971544825450929059703865734047504126560523249661173478814937286201037678929266296962663308393279147617891781698497418117775763220924255067698465331058530444168101788051023663846459760088168113476839836695819365556358804480112401443819941503208838138684748559486361287347133036030290375931495987824835495567212942298102997340076773380637625423070811659953248881755124274045558732333951479444219515201895771081715411821476874567631953499094113324431692676716710212116761460204568779283040347850192107629408556985669637838520223505157870672847715064975320241564137523247923426000578763633354885648104613392003464084925800234525247552443408472716029706767777817813097903853572683659095285103147523731227128017052657168506130627770611872851532482015521113243815601819672461056627332039533775313462852433534487418422164368323001240495694804216893726496061045719717849751688656283296815142622027007717165648716288478043802434577257228195470719482452027333953999994255860318804592712037297762039182536073889613737540317442338149425123374889886120078891831904105736118270702060596943818695354288013831005609293231359820425323237028991984487347315441453719969763419081595861458367153137921787547321176157725766074219778786711112596611028401287838913816916499217284436355473848874194896621796032967067357440743650661951924000711630677692754722532823257776868571075499652021220043249992309949821864586585973818922192262430663324420357576134080146928752390189783686630380808069217938561052308196879295136906403048939451830451013064206916745987992140063638161033617921202348545609489663032112190393761080703734605481494176286045490443842517341706406413019323448305122992859319717016982038810032672475404565532868769026996329449359882825542549322488682670840058714892495498188296317404580359860331631448192522503695324986801311000013249084920728898603819652045073279586126571776381745859022160125286389178606078285355112664653107675402923960688039316346017727070795850249659898335069741324401076974100687257851326646451496065032430253777896570047462791712715829615443220901443192701111409040587267138063745218098513384499632395938031298513302655348574689213748698582293938442305448759161630504421220863210688827578200703716535710236308360205443962007195855193914519817575060384191029905921491863965422084711152134349549545717936074102764954686982564536658259039177164439198588300176344794224785749556299815565784988756056570100950546513149573490176921473420775220626686194935320638246150466019803721987051619464603150888196027981645446564441917179635147721974398342030514570118881728114617138729365651761187741838048323136970835352948305248282742304480651783868299948844620728654054449073662772587461537371404868814664521082346936315630852695436365614733260050471843241266555624662730350701201116314898523441266952046697719253921080431496076792360473159256212071867704197767127065867409023446449285801659550142996912594314391764752081991943819460967501259439389970693278070528362605099104793253588930531100368334939536233616387475376339679449341422430256797448518268906728157626436474560393320220820707106556770188806900796738203318403345502182228850187804149489550868837690281479958900444252456632372758883179700284127829445829054670988081935797557864133750437289347001757317872944437632557556651278924488365643656142132152234112645003485136424171057331863308458747973644833976511394175911626355954616565589544237149017043347769910152009170484887265619716590316534919569291780457618970449863985511977597867006799322661707496032395369045621981245379343822041644064825235782490546148617652008958944612804178544982834757770966257521236419747712425861202615386322038814269508299436469918094477326455027524696286901766275782560420037786648567743229114650497832089817761592653970968515712822136433381764583147542261664644542377348540261264503392710223469043465533044717474149758641710624597349388704112643518291852982881179405397087114823267703054477058457335838102446152574939860591202010495400004411695220289584316520385541170998553305910720697995141288583963495911375597406886654727242508456450567747102142277683374676891721624105726201632149690595244752109647323560056176674093959582099934027160922768199942399301903660489548993942656171441291973664623904472077989263514851167134896724875308120298366851496168897630078269437034030159000747804744480164704412564465453778472789401506205275952740193495452988947602277672768895540118629915577374339189386504799853914310487151098266109766903043677576381725091967328467005765575759065915733291894816169305007143246304524508144110405763228882278496734277482302503077029379667959149984741841562807263971231567449847356964192304061883717407723437922328947434221932857146079249860257025547436961630776302240233178358582903104795791613049170212469070058676900710435159344260719771968265874541743363625706160989590619151794616250918049734773779504097662460128731377954180743877621861016394903145930729981590858745664268473030338556292035027504348164943292655075909182507465512856885023519274477682352418698104579626364380276916175792562990783260614606170192815888039379233497709422110736992877184743023541573920004232931674979381415589287768187704156637653083561044482490810238523815346054296151042675766415344262908775752767838023362926399199735816602653499078680958428511246490957626209913055752293841614599570949805756682910472717370698747209686661896170041062351005992245572972780695413406746979316516900732126130889228836061368144373810604359623299579727011204229739543244187172442822991859356875960895550179140329929341855390476036864987367731915435626484211056291500720358579147608976519880378512474646614651690206172195896799840536843407004951076905970548554491941936892361944556834769833211967569830141748537729523015185866315351899169512822660825486419163606861326409807939240149759642898739856448772030701103655332247986279332185661998570776971203521379505457667775070381451265603761973556476365795267934596165294025883340081351113311927728006136362918517421470906452301909192243106121518928898149314443229875401174738419234130980910749243290610107205618432134391695634531828960868653898545383030661204821046929610575706957273612555493779773398893348071249760727510056703274182564491380226439348307153820720064780327780189756132252676043357017913283444333617024107487411053964459698819769742412360940659869712284798223469549070779242866826458726528671105142367197437636992168729932941492041733270777695950227427306118886636064017061196626616299264570164075217223595490294183363233878589176786480676632360960180152821761854440075834963344067023518248189268853555582012509070319170303448121897090534564662169249801809101858645212864340514223912207048341423930308012235357934180989589213175297379106147040028458276412126713286591773357440437496480875109548144925678294741237969585561833008126976115143162393310257954613928240974847356455704555523666216899193873358262934458212553569074210164030107836139336098770145772493385737675179505607581192771300321776302964054032345134091502832352786528882461391386397806228330477257387707997239637573704753403204447817141247203954968074398695730452880431788113531311437940382065058821760695347189789413966785411758179964634918729186358690596260691205983897927807909139707995890010330385945536733253303958888963468982881803050306349477726315895920215557859114884541684355085819005761931582151185884485836203161031882272278727420086831829045331347977293646656646533920903530850802023369015018725731580997313408444890113153684684288124189350057581888006201508762064519169583827303085922132847185656213390193908869737294938170288522586728040645392105176847903782336784871108098757386567453211737820422755090478826837047332645277591985468959121628189597816496052602402177445232257477803499974744269406156911169098304197016184052155505561962054604118807747504007663870577978295195820708223589589990753228363803486729490054498393121217003226311674929649165793143275312747227504639850430863326265664136078283025751759989005376607592796232912366393490154504067038069719644197537505675763600019111621128552121471416893868716914287674734351908916485637477552207430199512574667224395720333553840440335849719543418153705372641804670935246723685678604324437679338516744001998248959150663664413751184844013083154614695348559328750878344747531155787138817251804107071644222505433587116579685670318540741037921534134262306130653745809248593103173081431771964909219733298335545506542080086194872903633102601487917165743005967953685128950199070835056316804763276790764679623668323906872613330320012296216167540182850756669144389760063305261431464859466242560182960398535284586993859905861238073442592573842386497866896789678975145443367087224171493017790338339138190212244276772498912443886187502213863550342141949597155606942691431341160992446315968352202800731409174500513887579286650742920421143560348802565540781739119273224797614791854352266115617903244065487317696558062773163329283975795431952600973149999218191040606254755633464737810458014680616581291183182859460592860307356969308903283972919961540779385054683116153858981026920605670267973795419321334116317504698838950126555488182277973755018797333529391011092697539691322005097688959828774233491449968646048438786024063070916709183122356529662962067256854275600843021515781529935050677532268461509780445222675799183119595318080527975294816667587858137180793594832594904245173294230434238832939261591408625392031182456780761968580309956268641026207047869887365185314418956584957097337048158126995501646408994626925142689730698532592111239353278725748429576631158654233596470082245300011719607662874350589092538475514852587041855766771752845980889799564805862084878369419375764749589596528494231691233494825158313062420968126994248927594216002496352740407139905877770123898728831462530370907001634474869358205168025318913055934289229297943606906101042923613395302243539215161528098555183752111822653002167171114630775328532573276977583096840239952152956142571631703820888106183646190020383101156685167269023094299741681609358533241123987069567241322452829568966180328035790999598176715492248874274433726500275563302595890100695375470248351056276039316511468121360361355405900982806231868096159522883478946899286216826196498168621089791471825678413038433846644644484364033233087720527273149603278698006779622696819972053301577331948185983459680739520215731571732802714879002557256271987599057984901640048400592606436762001623830378070809478343745507252088965560052525297707359097537025829816235828238131133452045580845922415148122000808446610860559874601869416140085178550651620715367319854816505833361722908791291105640958028916357798236927525689611396280488488587457313665071461563909592524539999868271037038333181031389887895284495085049448512507566105802266214443080334459245214282682090701425552456510418400235055834524807590960459919924382794764029571584238818018669632387002655908500508057752751942373616412728381091202926866105025902105745351845021206225933947682395076567707698943963067695983082466287284537866208205783336350515403574703130402947092833247111801566841192180023956074396975378592253685620019808228899322441677936657183204579225222251017649810716245419656203285326064058428462049267028160661013917600539318036611842827709083683798519002919531885783456096235765573427740371393484408193502932928037085256383344310915829962742775428286661552734871347605703710240984638719548081474678702418908584288960202444910031257313602185525440013303524883585588343121420675266027782683059297187648515924085643991333246271028123822554315395065962763405771635615121931006721579379075381046498900324708839592144727515900011372209652303843856254694749230586387797273999060051137090837985254790046924288803176517064250851526858828440221949170289792180765677634734213894941140921347164987110785003379077261737845737510385149409388199159902155669651207649482001510151901969758336799766586004689027306701489873501785687056327449120782654349685275632222256264338374094786988986757328492097514719406548310710881660060895013027489146814459854547887089245195338091087360630124697389924870324461512405418849220546979790093867408053303781765678620919752868677623552634731321481534186536390309872030199749786020972890052823819132540843246118420521790428435326715272466450136735804870033865599309576064279404408192467729178620340020670127569000721321079502695697650056942192313500276133434604543226352032663935366961558130206367415413241703440125712089432943837390665486659184084201658615886424047329612681388534486775089863083689260356469603513836471904198838145715390679702163096997629834860896041919707952608956321456185500789298715702697042933616128909326667805348988181562668315795905219033574007486112299425464045699954053114298226029810824436744260954233423359635942563937882566443933990375706644073660317409152897714133227725254697831879130367031597802990663565281993231198479831820285205513870842425986473258641956974671209185630911689656233612845065843479809981263584841773094796693574333602051526136993740016481557359176082992607600902088124261289246265162130523190146375939817679239113534437616724385056418704052024754187889902362003421328218230089685402831057197231067707350810313646251554800502489989475311395906476253212737933285384967240508372346073814588261436424033975270841806012663371296582941242046155275334661421158302298616210346142565987470114085611916164649762109541972390516677329785571581099089728700492831448418222406862527651261154629903104195359769121137357948857305668320206471997673099059512662947973818594216782335534500635264021491598872890089074874808313090429968457834823782881970216809153716179412898478984409270607282654215101416618285689984831502057660860157681654594328021622847657026072188184124165628928318347343640473638571970419136323094215784274954058338252062110935511119959502093683569271038887582057836873214845842057044471893608205749919121172971473116709664754710054839235095428326551727118112959950368891138513454149145205331413232094879453069994481478850648512225453260435486120026373094236578828670395272227191390408371752162714709356431012908384795218106625469830114972944722861431791750332061052560252051942171231842655421648642796907160239078580064470488269941899986584282231714096333003800775008180317258891314771188433138691139701163439270505240421389077962769232696516297161163113165379852711236367317748886599485379604996558133977828518067154510845401636855298428423797249611627677568800673700812551561022812995892580839638410957942544421773128209708590410580348122270747463159522640496311035666145248177470197416407025681603578978464775945676739077634465383588828498381105294110616105777482341427218078551395508999868276087457310447149346251361215407019236218838348373857120960265881075751783596119082837457379383036072297104360100672762714667813002835761081273774193934622821679970081491316144621650627388596551924679482829798019985796055411265559147921437064685702216978546273174793334038209036971485894749861449879102295741142059473551417712994978937178906335946822505877812837395136149234232233228142695570241465918575850428717168903058970773741883410303285189670560847592189056185977982310128745792046122496569109762226164214550505996592145119824348625760427603793027485864800896326163042238805933661665848164742845451403747283708576831468433673473262429933639371926791850639304610507014867439604176908899572226505118245919259726335909059698345230937166520646285684539014817169940919497028759449618727255497409237084471290660611876505890374010680837856629066409580741604651339400513785057395342385580062186801886828491650118175135140302478571324502842891111707909922265904196887026413569562075758472188643786405323472651549865134233323599994259941141903350520144653635633536365814857565081057362953992005530401394819317225595221190744159736920633158946319360139781669963026803320665040722851480769235678253069802546609154310338045854589216692405860244349691821720297708512518929762661070951975049793235230710012895061201618077920180458295438266336159213565528529533722738742576202313298492369242940258096182813932258879881030027414878774484210867885492641967229584451355046364097786827008475241129000382623612971280860081573215512694236892324705377619834041138713955417068477319978979726960645032322312101680946738854341309726715710868579228990176573112361059847710838291208723038714810574516621540654475465074775098133253647250582767948155313040014759650960476298558264355414059790805341922771497756854138958172081071452667580652819579912432625391784358087062428204390815039189846976320552209708541095782584953627290178612053363972946739406291302242668550209892641086065903741230419087318674303219404416447060994201228861337676129676910086899337169983204824686309969799101547865493307184796231644263174580832540888958201197437037173591293882590953452754091915892455405415652222310696431972670469526556912634198794243099754144038703638180715986184398325971086843182567302831630883190881712648580938661323274491074305995287070559233346269881773716396145610023946610514551113339020758304767674302963707121616233197828699834722939100242454373083524403849680806582428262854674604792054641586104214125047491555612461036697291529640960798144736230175801735448931735517770093225743445935846219527070931450773235567009350244051649049855147567503886691009621212059603279200209954266722798363687483843795737312107757897082355819181544439950884027142100158699914952882106522769016395743103872724883410029144631473638869056529043940032372162894953611550933407271674907185534648740085295128928587534558050780728310044448343741285893010936525296017653885637245968646013657090708943344044688311865197730413978965348002488283802504827390688345943662160486165366618896653087951231334214706115080905547467744088842840734559279818982425045103253798655542195637335582947238984320078269455729174908525055979117181205872603590689729610415442301538273286592611751676653409188098442621285616224597517312527726510495911082761446053044051057386056476978411312666981622354958407259784944391358013453502029471244342416898615035847111345504006571871380176320275112226831693568205590182887570169957692447079132492377101700128877106073702866916191064976569902336708688997629564773738714999676312443689302480605215209858015118439447772525357041209241211825009277344691624154655415005726207200857601832993367701702439398418653801744777900831516784428010289421610459681061966664402292938377472347979063663584235403256940969636598447082544810361675654913539632570709984022229619146962466477569226277747641684508258842388353890771125835926736508714389570834137202081414400581857756073293738629295278946469251327666868119693439174289291189522181708791006530164663214286564932927100600762579165467885373649420099744936501144312705180639416438093276286026894897938147391067150727831201894973139677351888884642727580374070703117155067540546119269568195339262165188273875444417032075666848776227706446654831934677017421070243867936388845733825833882125855300312631963172712416656000303294879521017624400417162373779239657584030572418516359854252875181209400506631571753660086453976153486331386895406424048052801010314760868611148629989575143367665440214864585978142510785701421797359538727404160058869372127049868430950339760906514074208181665300936294613980696269627342780565767411518218659983988766829154336747895861579713322439880209236830699868444064956332068145843367471566421138586111921416191790242278255094828581648596247531792803146846635602059454805386210663200783813934029655910025076426520783632873281232789421970396654930264596519033007286978100349642535614490922286745228815650807431034523661144101008495340859898999543308489733279647695926276855217252121099141504253212852149739937466947479270586838490970655140346016438404340583253443714151175180649617361775818037838494114691068915770024544771625101626597609082373770492903283969725665099475181359370578664799313752919431058982087242682652477075243376611301436181157582522096759016523332403182187197719858398879170332687418781161252554350244916991519156159938477348554104355719955829252685422316184158853876919122537247619892488422753765479680722938806347309180860758510753705962216436692361042467093222379782790212762692701768209499032481278769974694215184996795244217641016180849392453171240989579028967512154421834859571012173369314914236709382067885811985641719645166848630534394138446011720488440271331111480419445402331013158489889328204526906538209999065888244365479184215842842746304062817401107191613834205598364983889615428507148935023818990798649581625956607103761549750281310129488104696615951126906913456120436378254967504052248487548228556368139635028139800297000829039967826195685245990560293637038252696872711102299286924530995499939905026563779335231245052984659441320246614616838198586433799456379606101557231258187953645165994488452100652570015665583964067692332839927454923429622712268849562873643121235716656104455602202531583229105160383413815669939866259265992762271933346514405459210021986717832139479822355718710418066271350013656497936501110164371842017421101340608158048454467090783129218227406581786602038355346624973470503354749881778967006621663438530002087410172261242047670575192529204057061457304073666534569391836807362992620819373118659824989247921582501666960440285827075842689128642607459862425584173160591002275676913274851341332152502964008694689478472645748673264122490733856083685938643045524813981003534022185130954641015751720929472504862836015647988740607677422895430841435697146370366128003101124381824624931341108360582027836066288991794223333061026631148128964808467172147875501116950286672469876985141169762539961155790933824593544393691115732875786436008583602676781100325778397771245763085444486946220647709926119576533913884340095575922410861002219480192633163779697486704155013229458431575809037011580933104411907465224780147050991558868807963997677589064373612605858895990709405737774145378631159502443238390554221444461684861499214565122683379506530043834319662605630233730811004884039618108804646624307765572538687050451503329682782129056356756863983441382109837989854382253451810051002110720789290340026978028773397121026682903290978778579176315650440370578687484336809585814458038498720707415662078573166142683197135817946939440963990332790247014644414601715003956166394527332418334700850597634040779867260558602960341083979032823536942329932665965983700694254726598777081677695550927134278112359606441474271140812034795927324411891258460686417267513586431101100808257157019942589252051752397835814484260173214288966393620671212026208517766437529572412421020173644050694104329896278437747149889139310169157586835597593853366737428013211198893610100625872966063218934573223684808336875201771703579754592974582206633120325262931816201070319878771759495710744179472724310176053713409551409810507228865475714889900091642714355673390386503946166335966184185786448390952501552044034031539810704314530860166661697776598807684765782967567058772040487793765865650472493614103020365782368877298569345310414427293342466147081305630246923085701162938400832537257651923236481052544033280646200166974509672775504051193754852032229201408396999667567224146000613123213415439791526929829173263505073004207974835932129379027161891926298279332554903920595082607259502027026239570282544968441402026168290724103220302926677271222644127376921096251242712023691902299436576368531207686927559903863893355575488993237944856220019561775369976213938643877891476893827996099684539159328197361882122360185834994947294832201387903302815900175498692940457338539561895322811966644462172242130609833472085986160307645689124786650739313855583211633916955593173957311201330355844442020969925651692014790582896620997507622948558052368806605540931210109485012470805727980449736965627069306944704683220839620932260070451667380376774108851284394601677447325967123205348420044041807109168025580221425251667827327743294343848058506200634246381685548737677459308664716795048879518991346947195688332555074865495774789392346864189061431891869520436904393300837997423910132291806853724909215581839057467667322138975775594938012389604444194047534362832738039344916409797696811264051195049236741679345419954867598032540013576843153222953173199135679898115731719622591862919487959477945927573307526968897204584530601906726055277916629499395553166981126951038773841452122452889243450732292331382564371540995904354214361903158251864284551826087161982803018196743435799882713498490979596660782706783505518064906970028064419965717477896048053623719344585512170682273757213155437566635972779935617851026625108881713280909635651573193840314880263592383972072990752577919807792185864266595527416007396302420671759890994274614629460738427573950746565636150800625052039178988069252558227442337307090076638606325861610616787472561931629604601868840619401480204581122289625017396872669355864043358793068882015890604668145695548237318211014947864013741572608457441511317186504597160894907329098148564208515533701783554543416731863236612513937436891317668990003071776240022522145792556949156226018788985305869362511567786725579717450518514859558985966505595596022679179192401348585751839132909195735198292738071460720458822556229285714375226296534843407453039680741925910302674256204138624869143416830406969766527578907013399624809181131169668204995734744572902163254550730312281503576829294031954574376962258300059504700506808524559240656770043908727141779491994503172570972395680823729497695914443938345450583483251957309847691054179709153330719867542545117733269889732476674806188337464486549448459590422708369029759482760911365443836498147380400847650770593030580626254726187364554370153197418604306282496043961522373136841650227519986349233411345164433663631673481246559635114647221444344262184320561308477694482311089359473976616132559459458712514936160757870490801659861269947463799005780340914952403712792024343426015136755946865366838299505621188000745333971174001279489887613611927037828360518394070361457847358951899754276236391110987004744641464561548049263893303527967124044393951201847910259094963614296207553221368829022177642466611050950853236669105672620023508804690498747730114044681275928488305136729237808882194310646953092894667902055520665413095730020287485681208347910860204199742948208646724907808263032358599657317492790569904523747012550315842553470404671484170811722328791838661196634209704947215871524797053312367501587799148888496769623184752977581588767452100366410121058384829073050014355422557257121155537563604002343236273906498512891910525063153018067664946041943035740219822368220732669962390410772683508846563779237796256743725404733621190190410006275276790092438665108631776410045147480581469913322932829784749584636508591606621112406869907922981680957938678125359737163959902119771819802246091510410325144156093770490236934843873274636208139664719109422590541509110914203671037038093187980757064671562543873441104099912335262032067601695817694764492625400218303908529923661782687771348524683938586319347992026248683179700095743117680744781687773434765826011745192696857693228252308661915300898137942429459737760565246516436723071314882250899081548343310846713489926146301783671771193339583778303449351716982308194685984902245990970071301183108083240880255038578131601415140287224979604036274633591670076978162068186314061564852693659751754803301439295941357443622107105316003802292083493587971923081093054540451654309214883935715784920317948980027285595130805900277633669141647843063491835218157644266124535823484633880578039174362850139601716660687774258524998248143211306016258993920378506266258245606643799309783323215348859872900453566751215172400805343411253912627026292617443691886362482753729382575989162735856427030502752584262786323783900612524629933302062207704768658935794240699242367790945143611325800852666329232685054192700033086455444427399137975793245042143693739595504764453250440393235713973575335127629574637402210116103751870392270146201034822215407728577254985825969933895111756464119187914117680145999335283575181435851910461993018196428767081307197576697801316153901267820612307957303684938729395342135785815375450305443604603067833512714255242485245594691134815070537348242890869462657564330184891448134834226503823775629003064240311258854171075383517427007188706198316775222867536583525554037971224151710932471809909822640894030798558676657768648309375853885256600303103943638735369311375028170591175593002078458498098499971904782670776178222808510137160286802822057548905059909496315800504780491579388036749730604191500164329134513350093652648596524769574385299987845181350869371175683799379505088355400184753585024418428021572189329934057599179802177116306584739878188817015665222211447717092877711013019993952454339825488069270492775990756727922285610242568252264000129580447403131058995471569609636607784709688168981849406113515421096297125732287167894670615479943633700684921783477316895317215756431158309063676936798150847296239724076094966871678409139080349222862791022122280530496260862445724584999164665993980511387541463691563124720745686199792978958971953103244792584764825469016546391369130526705029464698072673021530355773656360825113130193121588939201120577702771683269796827667737262766550420366306764721686001353066985571700858799622995099158654330939517770017874021521963956211175219420558819469831121765090088347258262594091390069203584600794745109127936138257619359542584715919053035849556326726069362795736491958069717309976721531836729289924927003405915458095377372657347875601781407063068221521050732365415215882625342950201344871099151049468211299409961732015422205034226652354597466718128468383527983183673498444443129855200925818260091537097853429998977652357902223551023482637165961205577232752452047227732566577787758228615127096140536287946973184907556799830390086119979719334350442959853902556179155175800993019704872691541094353005217747856209462247077943804560114406952667359962490612800735605591334628008777424575589655123249474155065435925730410243517761999471547100119968240980934097719960179531236755321871735519103105401027541252797038231511393804763541814417772538275704435857992620793730861777566863534830629883136639205021652793620122655709954917560056363958488399862611679936843271068469354699746644494306244399884948076945715204767587967161046250976011752318564270230372407325090759177452135324544255169479204067408233522668400817415733625521136004175977354120068657927666717083876471446886600135974174499292087018793330281751552157878678625853464607132165201863685881268680613900806621910429141735872565610136097887109447553627076417100459564262502113992149265391849231113258047871749420192509284080876813549371568454728826822123407834399008944987128513328784758791889942632705980647564458940349012448315148060529856726982186660375226422430090713340531362396092693437467788824087669638675192717542156796929302975420454365707108728901623482265787464483149754606279697920655661572488482554798786335311863995613242844810754952923297519116321105072290627920597373221699072882163434291520212243387065596472871272926402768790609217996997656994792394111166191368950238541337977783217236999822354693821592478669037340097384952121462510952054543937754086003115264187223548832991459965846042052089052444148711058426164648798789475550310251161480348340499940686674014273786683690237909189897097562529796259844372195540934808496781129272853695415730475741578001568857479645112295219624438341764577283613698849296158329165306743273281049657316074167981255042018800994481423999352344157278648933589576244524497083261038718331615129369531109247587027717620971833933538429780273383489240547154366064321175996515113248843506677038327987178498359953734483578724473832218902594751886371152550831530226626281327704765176713794010496260710659730518894730824669225017407476015299476643936935602973221349186858196750755415397930074339008524266625099028898685925936132270741971236008943974904413083599886784989977147041219405746085598589407537379111154790048904317686403960369879797462584674223767008664270889815940017914063828025223943883222055664359342470619957087494694454303406153750252698237168756793545686071199073188135009130349945519288937918504516270745951697940587922062900102662358210144449892794001663227356825459718497552562071117085438456088633043945163588226419746642966402637339218765771000634359518018141187337020957889343392570990475984144045775706475301816770141071807939480947459678760156889507671547975370764764065051542961755921797451884313715551391902333170739692712833548591123035798072941267663600932365830208711419164889430268773618999709729550225807870966110522010467036193109966342021500378774544254978834396944795858864374742027102777971726244151022048347826211904739215176591891728461402510845807295987705988365137052634791834510574154862811830636766985447864398321490965941346865443498512525406365082032813899704247926805977805291518483256739444005458883587695021569488500392293624641770651356425320889144698359926851665314544625783078265934936866166905311758605513021648587280772539653019643023166414201982726972361062929481620679931102169412496261490682706613319357521169274882308833614193147557600816849750220504719607579323303735909200371397398480539240674148770308543953841308485323599423563683803444763506052130543504558270298543214618398720316082675534457376122918165078819332761586477938435949729639003154008244873793233744752802223229159773622082696850860731305880044405245120711648649515036915104121647569558406493662010529207403116246006444985517704180116101472668410555067296046238767193041769537344312285358058968477983016948218699103076065583316276011161972105622745163490815352222578923368256991751053172619108775944226184158306444554877328720289335538256224445342650782850961673445054662477806567670882459604202485687728687768833630255698548890380578689619918133228801212353312920456260400640236053063873383815418383716078282056983609844243340696799781566710354726751498190198944170671018965192185358791183292817831504241768753601430836022008207864338375629753491367287456571885763984517064576215919004237865194511188631379197176786970673555884206531075365887666975975507042777044469316226915399949802365301869696744854404863875679917852042445888575358730591124341326979147001960496971352733418350568322707338077238534311353997006404646827816559335013500377073612556467338326776408360523181401340273818964910702015713579614066849067008059713110942238092043896169835152995407743045979606955105129615028751157492114677716576427672330280414895218125381495387413521987520272874400974037325680885674823907768587144449478005184822023734312467224545479393125394512389793310752906328306530911326960016766838966715045540693232644507441207454209398312228964488344248955482240619771217117535015623746884355229421455039370395173862442395111113436131964338225198596405938323908437990656495123206647686223363303869017626667236948039594368075099591590165944230858996163902405050013412614710650284656083684597345734538567101674185064081213806624510104541639200172461583290243306065770780626688539188069833648729245898459919615643354950787053241357624144821945554323181227727274823910281939523490081383525430149193006007524016310490546528068113991133501181865011989791048781924722384093652040494294054037185169805391797018388655018890853095258866814077355318306485105803257688991337143905308173536628604103568269617589129686278298027162129165779692281728195403282621787308664687267449389940598112172655233137325958133822434181765682014333535902531638132391056408137189157508614628495423815726630188564784754602758558832936901130574526235769887003616829221918016131361671188304615192580441634651070241218561075532467764745837592851318518749094878959849908245667892434099482640524424213941181876980271383858426903148419754398147334393461679577121486932772978718184565967856010160439625640309489798970799605048456713971581465707867836201075594096482222540405279119120228304239835120833339224029984964213313382511132182141123483913028992387977313514971692793026474399146192633069285904381331003238636519591028494238355881232977038696781652675583149108872955796717614267298166316958491647261116316972898061063373331196718498263403009327041270804028388374133976385373792090942827917157067247648432130712434488804774620667580899089735537480669466988708457328882459202240442551725444119774998838063442862287801273122410997845531367371547438292153418625288101207694994672615814545284932291314568727723896484535159619336847076872067041293536270177640604488030012687777772667462973586202637511029392848135669937397514190881463856194829194427264338246376603893050993292286825354749220579974903180564736008874092919195996934646236377021242075810230165221196462047842060960741194595420722906129116108015054466725809885487835462326477317861627142723861605347020922749770332044438127774304404943534153599273543700497511922900683767592904990416023433364223467125268474436108905408268759891473038909469438995585500025534976120792842991946437286799706809791975552592669160325945297829709926952181400173659885996139127210177524735111508361567522725955160819290910549753724311668909537075094250496728595256586879284668158848490233821090755624574693055594791336779163705088521257467515643171816323590388314511895228482143550560194123802102474378945432356389158393777133410268961993338688123911976438446751277119028134387397474558062581237638830038924980562639346470958735274259222905884127807848438145666101634107391836908537179628892865597301293286167673672954117485067454674065172319427200637082956324498896304969177704759053496294864672448793468344380844226976817501074523907759318477449401647473371099466442987233395744703518803751291187049381072460827682717084983897575540587562114480969884183311203047589259467652450865149297034581718563819504201208249946534820385731981984394802898210565617258500285203245208215189008554146659730408724438668564147983523215284750890933024010962061385780249754185150717286882138658098838507898643495613972307707106041566738819766737935087316446463634411975679600219850768189977375712276199185367218764679771881004326829211579272057911557289975417180385298396077056878448908193721741773035812379343879744543413080144727022964667796926390091044756103420105119221249823346376325120100287094495073005447205493331444537180975673840594217063495008256730944030230821929300087928118246860525609701695833483295890226339293018749569689598613337787448548972113154717238951184177521910704401687813589235945691001522062985627408214989233954763426504014489301247022010679497337434753943819361037195047392081337943452159067353715755924537290812300133986586792885968895547344002410637012615183956526077113295842105802451677612287285637468771597560208659900893631172947136840775853505795102294072201671338632293698295715843638988635413366051018568194146492510293650277820581801634557540224372182378507182764559642561673910330106953836945877208790557339972860484363386416588047247945416318669215574285807064280478745951675611785294572952550505264492994633474024811795437724587231462009173991561162870838481145398444985935043520968140393580923890153934549605670756378295902993527180712764806943445759156568041579738764606566366651498395969791549629684045590601195291284666031914774258108997650139283559268245741458579649389244961643720847094669354044660892825510210822688646071946169088261839630692707957884233615681821871479308635536809263751594276496760732867924123137134712475104566985951312530989956774774519205437543987910092375666740119173485010009356285954288243449586401493943835290128070204159700056158578869262357800217772049727682917184800877687314538148240598277053990869170480452934613943696510174988805010414810309450271644531167616429949485103523587691434471859210991277664491889265491097979264552755477474095224549029874014368283302972036724079055769673670399487992396649502387537862850361779520007078129891657703789001764130369892582810180145304882773435425140230685547175596209499374572282891711691923769377721999551812253545575688108879883442689563445862718260536930662548559698401470250659238440861111787473393311758756248081999270416748042847299462952156258296265916092859159983409504935811018555847509934367906137702608203988459513768741891624098241088603913149871862514510701446276874239215607445084537980305691694797551598238521427551006308138834169828038603099598722144693640442938910748286973292131640618082823739350014320394956601847353671030444772959839122750465750820863792025577995264311160455148645408280943361585650675038337952117653406029020029014138002737750336850951145756525905825326537907885568864989236735030428072700817952778836520598512847286507616097274360583037325345578738448193566481455543501217222772516655683203509401982855955747748123712419116900318176169792376060268035241223046387753601241295040990316910579875650064534017616088634164101449321550139076237885648838689703713111639023056100209398149131610046941498870484556564254840527358594246712100448009537978616134744996664587760966613142489885138097062489655958353348171559960982590747996382366259894966614802641313461454338530359127816017133412606056852227853495636247526997393381389194541529838855648890646777099101915102837901552749848777916522646480401508871381022966744145036278475634995261976820921616048714546304144224743905343538796451906395462818846287331832538880920320345341667516800172588141787934174853384156611019177666497111614705555617940559248697342145397207976998515545940665566620928701761749849856071698718299552090649021092776350838435713490883313080390731723491773044369987569862811924983208938782065164077123965062848852875436534392535490637186908551824900776919153949553119417591862908202525410260062070269226005247820640560422603967905244071066295934661115011236032752688429846038887404331511512539379961009830774472228165866280412016033995537827251454028665730325348045409492009992183798066623415770454739129440314768202625691693107939319604360622975988743296480181479692739482217910526169706296002640489657264450342469520522813491391810715657276038536653494014799859497934565242924817223074022362013147616430238781722038713312152156570014736687363492032345452619939099255566467237690516253026569234846696517298901563699242270008449650653753128164337126070272126366985898469189717005843322389403073390922709488578148728628272440965600702468282121686622712602306333020150452179645065532515186017731030744933895133544614172056825141051956527683076540978466551837832658735474776214757026400645082651767880218272964417913249166041135778504936527193694721256336151540787942891677130047236150135225237680370465546773637928782724786415812748835652864663997283231574470493398125030378035929801637288875582104171909847090359280602559971430988479449856648606263379371914971218158852732307229731734511250092128763148102907911965459840329130066430888677163000219495685700108048647411812675149707409093180692421584490267367974106896784105707846722626877950986457169502807005058420376569555458583622171925105062163265846291759014801826400159802944810596868874938396173578288983761984555476506227811108532141188761036512310712117332722021319076555387022905572913731294623396928526769272702815480480007447732130006863429352510961423042694278999751855319467259247712503097059399766942014750509042601394192247147370026635271864526814171128008447312860891321681643448541086501103796160338830018451984131159982792100643232397150576915101283378217696036297344386671728261831710596135170174505315523831870581063959224669551766861532858020598103854445127020087350083155942735245993709068551523143062208580433228432609704580698962017136310546115281885791523509991634351500656035728164441840724721787075005262522097848433284142119100459017424047001916544156937134750312526665520599090265482097290321743578016073559537580583053599572628201801711903693904717770464027314362477421604895850530933766347614997378729460204449690208714257361020151432538726737305913623380187430945396576742047967036064872307645458566923010323416906258406090688758637014454164390541349890114807226445415559505429596537710259383116583732910925035758332264845823930672379565155246288676773043877830852934969187438540521280226700837607936496575071240183467948428922103713630247165513364843055145667031238878539456069866358855352319267572512830284789120811598842900500001226700282583266732234031296594269426932669699964444806344258137537339466746010415001915821908617281479538879713008688026683643657461080271990539490989221560856371582661860046820488870769938721196976558394110292905732468889605802535623426587016412994298520972479189833963543263239210310100233457485692576374702483409265539695241443886388312394422456309157255771333189923964497476093827354838691573169831079676471940060060252077136856347828474519098009877686498132633196248713981143512525228541610141401553761824420749505049077867026735576486603017897629688732977918067779967481078346017367562761472154339235169963871905549365165727859361108158582270967227160626575464443969136424248662295908858405446344382327826927249794844080130642485910489599056849539653690272659055050757613816758374360556001334498544203703348736363350485112438160296098703044996582367693401910437715289472011201351601143549317814663865948006218718019070965692271985172446566021737251722609016325022473137809718018921341950685343596676989455110371106862519029959687604420415903567022230833226674628427004799874550496347669113757421352461053324608172669743840957385919694231323662394025958706403573238930165474379736550251553042274613924624427164925222669202828350611833764040504411382863159376849902337901858015786545958883019670432411148359479458353152706941001549580938641482897853739674912575252279153293559135170020566363663918935735621503349947514926049847174603406250966067848670904500247032497056235775425528148107113930704575125157197098095464775511520553721071348439094879512249772463943785263099525856918931245315925734725068290834209964337334444051514612762203316865036468545985157945065786672703559244624474867416081619357209624892906696713169642742015515664713204179626071878780608363937321178128948800571645352872378201384452391644351471032902909327996696201970299113973657953659438981237654308441948613949760193648764713867124391960601730796712938085599044610712773733013883249535177518932967832901979824212725423842588062982848974650513909975726837540902490044937306559764408221864501984059528279904063044173821810996269254665296568648875644683144000449941592963865174933781657888853411042055717561298690972880828048483404582485205253067158855251588934159714298628466651534962064943638014076353475241217495137564177757660326414873640513442655796095149906446955268770722322021110393501001935220608803793336434495572812168328775840039999371831803067254393191985756031365575669057823843956473593679405858049093666682776459491012989590711218359925350215615554436289930489031733787833079340939810444288066795287244481457495226628270804867343198044129346473859273227206133088137363599669118679418039120446627385309275014225423502888496784485511948457964591504566761476201562756856415671218075299967378178103983394842705910827584132075993161549242987864085242582765065478854040620030113436253567940503185631739982548830426691336777106940247391559590403620950845578783383645538444810595359868761566421389974863691924587570339344419845436303700850284363976334267830354387113601953882047781322296185002957368774021603049658091476216906819328416452645605325074223510544533827894603998120879906385998417934997961268940682172420333449430907830531845746582955644710975174348214359299395463046712003168517428757878679669056254964712977626178669233808858695674173335650875320177421563636192599356146888910155380723923977704388629971747507860242547693115527267837775304662413602434897972534825809882658128240771480192292862676070291227111520212323561916486432749111299981826096629492174153612615241611524177681299932520387254508923310335280245180725274132363030476778868295989232331716372037316684831776911774586399682417654775949888337229041845757433880759512157664393565655242783425835089124629916184245368628464778433061008698412340953061359592894997182683330781492870635486541402399739477664699487201838464859825703928883490163517950061400826431045413879092778176306045678895094047789925282693202326732425654334311910102772768527245729748796465096254704748466477347036152991042946378096736611949254407844940147495531721546884571310725048821457971479032916535334830704607187004202946274248080420465002249043598531481467568772702879658726143533236846829781701479183086999559415620276353516449576159913215541356086048904685560677132832662876711443086653566492989134593107154595828904054204663423189816859167023453744396482484472455227338642672192763281482579690280657682481994802566450026166042106595102679657367631560814774975149199710785633877276777468458850958878415729815497399410664419912624129754472021402984433334412958995301859878485148246621230032168249473933510757233116995071293277614948806817214044857901460485469196236658958073355958514919100650062202154514457072422369612799540131005861883483582420499099342636410868731010677257343352527467432242421952046987472455189954046346969069803826280154746376679540358767666099834907301985125834802417511730004083486277305063235518741522025023837167631412709467447417781202259776297033085424043229172014621651482292953241704930037481007903793150382946007471408996336457796806218018869932741753060269899798491074667226802088978778586264392737920048273244397866395018809469643218065049243102973393959555044360092600754236159076757257625498527544340386361733694807020595047255359620201644364752175052367501798476641995588265183412312609607190638339570764910335360460950722484400330451777371013358845796809928445294858581322059727286176644944755093675306269267482127315296515077353961785562767436269134734520257485951883287409464693777546396216476830562240354807312768671844543792719756070538217153249293186263965200520684845628069107791492552752960749821681004456914522410874904696249417343456846994821165689631601423287370064440449955755804783989903380509490362373212425709107591947652195492077150225061612788454023329359863259532391621512998591586231470500061586508529224618955374693684935390330712130923074856638810678992091439753572889843589098033728278856970692471430706028156265683170881064286874538406304353654876966855504365166360228724731522471967969039283412566451518962495689192083295259177269645129394071517769041631663522599810509446756252415209211771076520940785583438488435035286921933795084348528596400204996492225403444725375013565780928819586322547805743260139568421449926135704026999646597735901439777410830394898750422329511461334570236832873860164814173879849006684773097543268956674058465304226265840625922515089257210075001388847311483856967659314128827566069573502901518402713360194595519743196349148393987170089216386825425546284253595904080238226477641399503946220464079968217864087897286335836863152221532700957681851179538327107197216191846405673472802760497856118763035079788807253615691496196869922658412514366756137820697566232238994130661645745007470893805277697815187219979398282760017871933990666014224210621899066595220551940842205438891883851898620034730719046061438714613881236126529155683784832167952546657580788209005557791744999914990368662590101279398183423060614896440046242186828884325159619756204670107035265099088863133717464563463094051959185108530476304817636125403360894550510772232716752299677784083481130992110401798231871121128700327821425809820840921919871591460878962810521427357085287216005596182571625943001730401678950377621618424183862160569196367413955976242623273642664304941396734505834697070795939285082077430307414861552431284510376726639953366466250659754404553222815623822269114135502792448045807683011565725958187480176941895828999637137746466029153712200421279536662078547956075389946971868236996289350816800284807847457636772220378765845414819213793219495811568240215231207759764157689603251067119309620649494338503613625157108732093984263823856105751931937131317134603398637810472441868437204379481078168561697983705933560603957571115310407721931781662479507795118561412264846528059793949193340346050903970581226412543598498730757674176167477774923086040869373915515202308169501642821519501802707934711639541275159453788619691175390864083232571942767211020697100742660128340023440465838756725980773255453862827717440767447186575910923981251250754770772305330804896185932227600329590820280403004909618228646066839232067525817108120855901105554626985754774175801692932853940569580331433533068136942240393782126278038991913297796301833939044451668302034165321466040761430543071705696446981880577876386340482084956958784016902983968195808079819339129305967221960331340039349994746874732384239269042507367939275404645029311670340942174459280115791012005233935894342515702408943289354122990200957290192659944173008914817150531381789611094234363147978157447514291516727042008704730293076570070034698732441744675227840587215553812201362955909867644184404669366031159910835478344414793780936162519353730061941060355807349069115155814961903826476675823190102721501823585685334372214432704036300395605423701437861517503640871933833580017515006868450489907372725203190596453593654090277824853228776444500968043834904739453958984788933972218431037764875754934402331129584225558104503897986833175469839775011782192331093781820396244385103268904491840112359025975914083883271234489769329438825261817842563409307934891285937300381174290975174177902933484635483093763409502230285019910184125511199504691404082418643471560559110184340845429241490899894358373871998956674258487509231660354298076601592316949274274889500793626095931006784656708024266077029838212416424462815808198137179001228432990257171781067772653846917936921739694878586436312957165601423645047546550088057022140876258711377337658267846359324680942406784810008462319170463457900289927695321528962545228750375028926486234741963471086828077173739672209984043067025574754523992859361557658911320754348773003756390320949398627435481830461880566506220003727406576397475319702049000447029586969695233086098290462993778956200358253185912836718912188246497491098948712282963955848142892984702954783773616901235257498083258178439258769420771778716426235509520634129623329424869002122882217134033581640563561167517063464200664332384127297826393955911123298003204233719367847600023388873436772056639741549771880167241037212057049961234793061539497328599697338861518618394321966486345353104123366940486171505409430862391782879250820141015060871309120413133652420988373693193758347099121818193127031526240342044363248213524730267076947551146389868502886869553373443159280419661292920206285436845706479239082805948496076281167717997976675437098534161868429401849521527396238774318800652055099672634367606274778606391024216523618660806971358761422281818908849144565765049115365850315257547779468621653338082741292714479346167973749325130091316677405535235895767324542775646720800841049901824515810400601022575864344675959714477295779751914050258931409953582293533313992653484865453600448998931285058063293565018697904141810042268712922712461881483396898215672953893451198073251785510575075011666928414446507918504730951613393951145706119696199576148181285820464466511253620560922654667004293634140545280825657922830138181849696458549000547583929157935002184019980064642542720192309260496690810741660700060149733386023115461127478820930404024603737587393599971384078734812079699875254274887574253639748947192894301271034461755130545180275924426983265604737840974988142998131246218673571541548115854174541174743154556345767390865054171611507286192802048325018027161215787693232833386383015833185283670581445292965739735813510906765718153868909101644628121241838238807634126627174028559190319687018379450588338678483963287341696138098205895813826690823692994278750525514290912942396726612825677259802665896970795648178335021215697552889749727187120007565269781411157911553568913409705630151153785822099718880204041976265468768491949512568830888141044327182852976616951454273254759005795196066218458373984572385043584616669748641257343829603392528182315312568151687267725228023345446593261366075802915167052714800524941276636822402421057688801162566715941753829532895093337994591718672195760410193897067553819631374950374351082204123284207011473787424098648908319138565881834325110298970483601107928562603430370885833181993728889339081422292640540519137885152437120363558543965056232409596551908712315467815816194445163946518523976124875798002316129687941729210031038315151917585675315793060078430394833761314745520171075049717145529489849853353787832778071689543202079638681874961097481947328136654654565983978802473691442484646152930347151030085185862144691006892047289100345498799952341537617841599814233464020655119054137026246475381775873164159661990843820486785721529451954244223939348438763194009286620557535467068244748729772346914276370656252827772367332864181533294563279007409476215461485522797031620887530063181399523352004825591824203374720665547213557568317334970769933321304293159657715033267110984025611617661915372486768350742530001726021660853551325678947482844861380701027056482835091377935666933606880438389732451271152102223577868766153369245476332590038509831471279672051849909211939900242751832522002740267757349411212661882714463393452920781100548012799129933332671573240424382360831603288469635683983682609476865434213862086772844489610348155337775598521558738642931556395963817058032960369434975759729874964790041638887480591256414832546943114958262205184041578837628352726151119946335016941844153816503010183424104900672933655320185449780891052008596873395415852674344375586751614706701378116540270240804841450449108679652692898213623192630019142614240031807088320845385717815162665084839237193946903760962242579853530091681844855023566899792049816318182949249892156469488554726099199625004655665725195011503745569312882364385787156989479438169861976825362536117286755539381010785880906310460297970751615008823859073119624482891953331096114443070057555947283900401138232977941452494871400109524198201740844630772321804923477374134193747256741374789385316358600590730326489334500069452510760592794799906013750149301496364515574811764444684977619406577412883918521093158698607938831517657509638178510915726359262467245207351676516874259653805369910246072232992853470723337346498733555875753886518219753217860545859265066101172495519262536628432462840623756099110746157029575961246428979434565229903862237392445726816529154072392213800471630672192763250145259937997054700715266206020110166154346125237648961269161617265569117930819074683210287570941266712947774487847993024003801687397402435118422958359351657103794823694735349401244635578380293047951027843499306341155578954102727384066509863736176997208118230566032695222486686517350439156075067134181587645730463419135002779180686504998502005044387964836227348415054952075791692053017976952357892661527819274746042500337275978720950194055614149240569714269437150233656132662856796387056566997623570488538660378396977435378827600441035358942483800652768325900617329025148049636193463757905853068411845083716442984196491019936093913529838357671534267554661549131263121137850527721081185932520146675611988731608393726417993360339304320042327514773703195157174399055978919096557152872194299966123338636867525205395057731079145760070806398646765160401473516995282531512332066755006012755649214621310612006518872120724166333761099475818090233299178661262539469631472443000774360980054898409408111862881147428049252547990357884709477244546579420625935544103565061585648484059430341588121136700600097463596369324720777464954191247509650384902290559393399341490499894502775108595814930347551570419501434202804806677646953812214040125240507401826857876563764194609005542952963324062794964783638661367136025756311349893758647882100147906901571529435985347192918333826944238796328667168857748118067580769935323123747588374151005613281281633768100341704085087675132213528244173189920602304286039731432736645396238663408530582348238737053074082228407862130265711943670278029032097744496157151636178080537382837807059761789157110215239009047627297007517619793616057971949288706483675423629533658609501402603042520609080274148900769922216789063945786175479671775520203944796650230355213248326115136970713157537333988989993488406912527629214375297251258648389708118494823320261837913980478896487051674614721277805949502785591742309221198844640302017287025961743233187132508314065663275570433371524855135333994623324393555587214421138409671540190050573950365292090923036362840659282106513665493550876334546431193442876161290372867628221216174611578187542047970011311439582030932845473609386008123842978997732157278064435851798397035772562762417609853049711970349370404995688766862137248504361057043568465786939685209537576699162554666448447333713809323579827935431004162816520607284067946238267177982751597196886700190407288052893783441113643673431744463610730502907571345230499599396215318472481957310066801040118417703216993072499913517440655071880622952704775530324122685330296768292579387709179474612730638990658198202992153132143184685761336765736387963269996598968011838475494444016712939483810950242304460856598856986505635853263009142241952916857517474539876216063628805166137088818722150974274626854597960447781333667802541696973015105073874567610595589037950423656921882453196074158366837945455146093597096577459757290461115663425198877982583601216936239074004740394966826383228307143503155110030216353911936760108464554250956706380322226913201984797823295576725241855297031599083744604197045765105004517432715083958814804167885119125246352010307280971042096573265082268445636658792657095900706345110180365782460754547837111840327258250529003480871156230086688229491036956401627394901283254027274822369502471189541302227575142862223827465291912626686566799404120585513061313714223488147278067057228898452396955684876414109296247973430860245835612022369665014982837378061392830038004936326352565013249612762277973901212942905139636325585790246741278686948034550308545525504459992221113782486072303721909073047389712868220098540946865412549925791698219153580249810804894624719925468154911133099940682935207144872501698026243546379783500564058493390765277036387578263200363014660618310594536911568899440057569695388600523770235797424174386927330148275946601728813679423256790316961465645802909773511280401913148336367962916272134494923434901893508997645213888841130140080644995890114483572415008014424128448947923642014370455895193980871286302394515116549205571509730809415841564393121664479453682460541318430413014397685194930997100252834968042356374229624127411843184820302048870111064178252842327067236757258962849947480925202459207281807497873754249469081371986295685169173270024840961427175035008762975936537796957826780387194850277485078366088207776115469147917437918590058440237676484359334962473352704277499487273389017507225992652368977124175889804936707022694471700960292622111829827855426929255817841437022805090542119964781684837659221372801655187110587884042619343781858463103376667491813804723043992131580219334036944831096877802061878443410749238331456147265989922087944732613019752328795362487513167543326058979102192232218524253092991856707653177381805718289770315730535812308521066032005378522157899515150348778458507170446059974969584262866416395599670163423161556753449405050480764147370656697145738516322650255037430776311309307415838655737631523790009498482373637163378054383192436350677511545759343937981295033928556408097828521665876559160647168472077794395649521154797769976358612489206684786656167301785463587247664653786398756042839459585992889646210630020591605027824649676522662449088525169229939685195120700450131292661877226355896916284816825544957284365464891086999418607371738433929268397324048216259996094661698401822378350631840159565709214039193393672280842448981662284164362572462018272929827212897273519325719414061587509548284132587908966734162267937279739537004854706192631311262681381387784084187241731533993415045477996711789104242893595227557368261354994314566973508863704589099681303761397847420465667033434353709855011724131160787898810817379948827436544130745943877165603968385498499569424325950670531363096027690026556972291299395617364254066284696276449046480628419214205493090681928938029255320468700747503430761391968087534163825316581634805033373018102697799871530857135520008624968609083353939284707310198785728519723508004846913632598841842870671028237399567082278511989307952312794645137696683389948696239506289390323192677726056180005850785834605725964358509297782161344819475030829958445898394661930129464358102437138860158610159389989692931922688342986896566538252928436456317193179754249056613385172623926212905419189443729933790965890729217555907181831730696595862491080633224021875779117065611772142689144581220400916190372676462765992139795081311723868342805139874485222604820493024271442366876729193720751896795481266750635281898683849676430912481430023884568166169837672873886061464533707189938416956119912683387442995234958888400616645001314160319972820743019205133281503788151892679536060786186104871638361253292525334423761995108635099381432229900255150875256051921335873657977750555829738528208109796051395010104519871082615268821363537886937987732799362636422381969761949613033711272507641200933880772376362867198393550142306543698241082918791498249400849128163179241717175070960926432187029912111112232029039437552455237525092399214306503849114795021648481678946827705255291576598869676228883003740809693052181579113409910350976030622773576879464068482168526289915291774099583311285105506471504997530491480832661745531190223791055681978198623203332182716307211252263362224656983606516412369509105906564513469553036907817582569202939110179333861017893817462184050008126879604811854979488272307667242110599319633722573357279907230221147283073706425328554791797354002356322962212638493753065453658765521824603856126237840106757886436129441813893541637313325892372477956988358468749404499684270754006686376476930791989678504305614917808014096865373515863441012228748403624229363412743012500316982818366155121472630990070878352190543916015770065751887296283675858112570486362319916306546345870707568926774986877134521417662012545029722290908341581838788831120382997151217689806176701240989145088203932065316170347262376526581939206717240150020097955367823280614764944846629341287033836853162410479150762504510813878375526894346487607529940465256843091094927032517133776767778880188506494893896262092994143512891577883027540745292756891048993718766656754387481800201392042105305161424644640163088203796419267569807023760505431686272397347895328862550162035265296926083198966087678602641687026152233664519175199342905340497681624733119385601445368780526445123648592049049445844806950836615528895055804655725215291381302962454299692102576109216765630316144123064463276634448238588296048555916322355332232732472398992412909568326568210755152057197257958546213675340955584111169274494571328352170557401278362614211819899885492141549459932641060463095523618879990231910649074943312879480409777678208731257375722246856411881235607800487750582621192549090248478335959732751735971554807660876211647221705451414246509800423102115052053611862472635926234056207609097901614743437915552850283084612041533307474470350077301502498094884559537586371496331787803487275178672391337437191285905316687817986090916777753361060797870216042708670991464590522335760394467056242509689550811940385004167164414465945455810619691637674530043772736078172860951660513607979185308215386470984607759573478956990706592766149696913775392504009235838628410801466615944188793066212000007137911748518462781054904349813457211866342476676365849733891898146198460811337784187023908248089222837439812806055454394626781948039454097459391768249881311840461966610896531471184752839326698974606330949899384728518110000120801455883128532662121620872025890964928665392044626553582919702609101921931220376617270609605876992725833232326648774748371288432343966316565941045771507686932662560747018931011623178756876844610428957656466227033738108220627654750978467125264800587892051176863715363210802240539292705288502403683859695298866927283069093590747919210994356470419615214559749985532565760277470717954931528089744399707314300194546645025669054282978059820572861554365542097594939518360380768324955083473096470239469902772504886507687760264917660767178070212706901957789554017117489489118353119508932594451163743312842404820518669560202371290068711898208629100630142358122921491886042901010930357270917978685916242878573986766024358381948500603727208683041209240666766424178514207736191309609008548506887589505529353893581521687881016592162969055817477954576362430146951482183986042744590433624000955107753256472388158380049433957796784376544302884111411067603473594966149783988477317190418731885382662751033609656385052569417546770797247606203103450687778510412308839401187697067869590453472916896506035547491653232478064572729229967353668298121792376433885791641234041208140764454599565561422990374990813794878422882686530628864761943466448568084912577752735973214012010274161802062563908348248103683466190625448208037311847300707126049264787427118845242071253693610565561158130631066372195532806644207581020289286996827626208003099210823554540848258765476575408397613415592063305006161828421999781999562235232791809460948523629187755842634046541475699980771097860748638668788056266565530139567703693309022464819129934750892837782821296730777179569476980003435301481233276005571724103451751913755431680301490649243834738422384909679148054477514613079191607151244990586312665930044950350856339342026395459394965501346361366726504815525856864894558514382998091965604574230170015349483947830512499709260122337014343728515963679762442425869244601253457553377057265392208747104700166832775447266109860701283092248526850639989351858748001429950876362636645522852708728749255552000007595009289516933195111433944162938415211079023323041678286633831265899906446362599105532654163552189122739978474340117093968557781201062521206187582039171863533866053684341942092941071645781791590224476317716675452982917811487865675357152715445394319634381650264429481566096957295763417644496350939488006170538131035346872491586170822134425957006247116275423404236428221283729277649109765811606264178882870502071188804973729643933985356160840837791307090217136553960109556509399948676353832777357253452871830961382125282330354586485875095024578798023479761425110490023780852030355854504138854138173635819221138636283285261828918546856995194806811476898184845565194159575690275026951969324862124346476518259119332112391396729187615218485025974140307708094053442465979930503558324146271444356987730498302130125732414042832553542346367042199644869268682790281354593694600868202286709031282221120636481346596713443653465145208441191601516019972892620149976194192533585189503078892482298354644824944715930292170283250456989819455651023759340719114257399191822580347388347672964066027726490509128076404626839873244428908499166021715886188379170160345723268650366371831725486349927502179267353093598878554961989564197870922398560242148644396938358087920475807358832795485024595380846731128308962461414719750735289022312179186124670004045656494141941871589816496302205676509641962735916044825501198901226469588993614437683455854920046316888060350185660797442954673632796394357994501211490022737596870907581717119653695744058157558182422943259510692841650972439500209150458636556943051174901800349907704066578152364237356560822899934713582404701419900197919241425746340043370290678233153964087619337557590061468930944816135555571546156123022351957803043726749773741853297840908695698077050817366460538816667839511579931887651317613955522631950162448498789961026217012459650354696103591414438413460091498653694011281183373220318790950725970112426180263395322173408133935002668715234816418939094443605134696419422525287905366338489293053557737659203466660746853770533346221918356215585978189200212485323006641598902083880991037107201746884380416933550565349681294944903567285635923751549817913984940434810788078455330860425631712587263890027242892102268572694594160029552429354935712287306268234890380376296924495085384670754510079151517556100941149281298264303233165582771905702924874413120910930584578520858908482286088274569933354743064392124973017232527183677811497678488734095223368812173401558763622899240580318045818580368542788534200645213970182003403138537630696018636209816055425962612278202655662757830300541617213672955118673559768254807567644274318778089673036289890821004048093621525657177614956813072137631887322679312444836323065400478154388872217727817120714274347968580604638130028714088882867827225900440028385862274788036699231172754010620069640302808338760886944900213586163908790967673969129974518952826125463561581781716500716960566428135632089131988881853892277990180693440985946610676982979460744921525426258735167855291173572921572649422042101868757556910515617976964921893126204902108806265131548825223202931830297384860867102437862061424912667961681009718010746571279785106579136299706816340785616838913013959905604858713548461765769763872839384909021000929742122015649207907879037245707642720917950437944486829858166330371458520648417198869482670269883533521985506995945563859007660985179957620397617561733082607125629924286580563779230832538177370345515399165495177992961089472375657249992893652150239205813305729114677148352178215862004622794667622259157516165743475515108796301598478717305626524398334013526770704759089138818981136019186749239905682111297919333864687717886065457160685603700256058452938807771734461692655557224050854893028731261518589094011221327912668945340016363068426460280149171841482706274964193874649720728072167344223194970990501068117598766558903411660296235446123177127396708741583610172697723316319511149132227631373433635283644798791355896160613673071905773053965566903730783623142204767895852876285093331955974250567841478743178749513717344267213483955921857402356583216858783320922136625016366813249119561864810927232644082349069328177186048575072512382096789350294348064668829740614112030353330490881276132010740645947243087084702667750593622168823678913431308421125926127250557699123191191715102073184801601760559485384854557595471165686621888128070157186150228395145472705973990472259053060245204393652224903928206513890818187873104900927661256386284159626703245392261293211028068455725011662084042400823496955306039076156905321514468520647024180325028450455112587905646107326602732243012893159599242357733326825725629143658325841315722597546738529443760819883696620033704609456418041455368973069294844614817187857939398743419114650761805730691186578039083741562499810072771765556169736817624303587129932483466157117877001503617116626493855620168162132962441996494469650574333069607488379066871593497069665201292557434994257693323103697985208373269016589719728812571678624157081741719812887393049107857697423635602999500692824769884397719282296035073790437662220400290618132997683109722689679022478487181275712912167962884146464028746542598422457153295938677063636351407163655958383936150771684980422952361744627954636853756396149029188745444933552298118185249817520598592412337377537519276315783357535882312480592434990039215806553958609997826883807388049985841887059838653227552402290080928252881742117632870124318801284886477491923952682818753837062086466450481031476727456598180059588209737412916588393502305951458243000296650203635919478826348626905893209440768691989486949360916833210607986387749663743612428066938476501504671319151555363586844602159597945962812542826470089874478385820065442524832932705588034163923564958290170816628461254253213030093314905100561465720102125010143070548469684115957939617742875086427722927238171335158133276841267706578977348146800378902836565150730735327424935017670450482964004724198543144744340142518353030213506741026889614255112814992401057947526619504264751669003206821372916497726439109802274492727129730190660513095860086472536320588313730947150997733082562339516470955920695606567103102961721994587184324937605235732476053307421236275755631926057835868477450650202847954615082181691335249364344690290238379265758875219429381015161410177415724287860076626128016300427960666627292204086831267245671500847115163469534403262308503312118889641472080089927361190086430752447876578888008564694675940276413706520265620471601975119516009143537768393657949587769379995451086965989483366633679807649987127837146807908716111137640243679693489857809964056618651868821658474909898201940266220635386210172047680835272492661256972861510927409777473413129985626408543476180623614004643657338323585094069801287486729795231906707238697740520242622807294495539290051967040308980388594891264972630716383455720987737482996267208930876794928842107616562115498327987000370690544530100111563595576254130328657942877114370766412565047255965178620467238518181474275408850350975543991214800452800724692374477241448497374453130297975674487931472008039782854531007678172413203060727279750096099816787764469634506196184567923071994047464141152737339817272856072091593728650018755213570540103937112653114457811543859074687378427204773724614517214340967684745404430440721922074451314518620601387869111160916794488930684770693671242992524027036770056326971895839322908938947742061634342893928448272065318927321070872320424304865848966339048404913900418152964375134424018675948327168408978385920286677470787653505357957445020495195620229057155935766515763888339412217147881013746698887480260145063777272935891064976884619806768405682914973252301197766668340994774488590917060914208538112848954251562247016010064503219549581288465472382076797919274529048028569067987363016052555116164546319242199514604112270408619966796918525934882521648016257053203924818386589294632322872290934397554485497743095955648311561458611163348255666111156981556224794610487895573447829325966163297789032780617084525754777687967441082015627294341251873609263719105752910255995451817355916766445969328258439598333902905618076236973520680851142245414100592617500323786976326221213846489177988314206079170858103076428044859742813506913861291615231403735664642083269054067340292235912693761874022269230174501979142948472862260578346722326080186959885157151044074402645136009798337117916121757216843136742668858443939221980464010661243384511230323960716925301754894186867543448326179869289660127609810403927827283451774244114676975971987450093945422919380733068822739472573690323308299918529249660821789643174136608067878929489008057217330204973693034482315892321788501089092173524891066071465599148644966625853549584175135030137237390450907586565713416220358482566714343116976395082349766852517782906941767890775899515495118508380252831533138367105338802309781592550331686945745058278992893224778248588666798445797865534727392476203972079381145113118293109188768049911936173437704518086886770372774112579483813844577888022338032410188549471833979897778180388060871123435709688810753710110323270075038313045686233805607414077128841451216426877397631422594765031721162412233396691915851926536161778393205521051837100023320841600138074100256374343310376031295614097959336036804628936366529224930123596309378789947869448346367632033371033291465324316821919225194923519252680967959861718215373363018682658458827409296775590539116241201793228604856004496577095700977890083350540835890728872834309690991139326267902153536806497346658152181333777535004884367143695417871733191003453890953833883555853542437164221171439016278023667280657666512046745382655721243810977291793619071451389741950634926845300012647298608434307749359390205434968096775259151223889413722509106475409980952815817192801372659339628827561348996368963550899500207820017480225683525520689841242796047611857191981719165111526594515727756321497423057597954523245409886002136699577437966999263756531390378605320095716971084488563756728842397095601446250758527644121739850003578819862109215853246552929800967263406215909670232704870210734114168632624552793010574520994819552755518786666827996094742678483267465504229217795714369970756326787181132813520218788533981344348166235606274646890121097924786957383076925606399993879204996917663373530192225100494217618098859710460482985940594241724545468606870204905933353730319386994071103345910434029780090519905828341601911192124344730178417535914014287930113452590124339187637209036355523938692566686980748628991691431086898617482173775816746456701099984547353695388852970308522804699824115754111159116192077230207562714763529410073049890475882082233688869536163180351375546345083071202112297352728299882451433628259803679623835883173052990952816311755828561424318096310774848759711462999366519505608018601546357641698086211561397071167722413227846329624460461050762824545640915378256434540109543425645265815324455232324854865136735894050083042888689454909098260182844373957579064004365483050624384433732056606067295698841770544401139804690275759003986397966290618584077667378800207149484724882160150809706197952842751406193340399619867728730938737260964888381977231239113689924208217849983817434732179498064862351478992126400680431541482095434649460050824298094525561088407895861218682198614042507858299873532575267936782597664645750151298882625695332449564488766724455505949916668045098975058723957774128819205822287965221806251774053545730560695006489742962505656335562851844317183053381810234313273548948273628154936140443109417680835945636427544183465606042781824896304122060249319441010915207356804425481360689554189061395164754736891778615190885426580200321971898233949427935403534617850293731142135236762972113357706796544359442053291179550736016295792559320372044158837898504145031198708728381886894633682053655139144725954565900854456686078034787394751084531806471041256664755353053291653737984181364593663146196137659318053761262455097728039471384332219355309811919549487571300621758441382327339070800102302074903515396132304954915559134623941838386036727927304697627348788249745518422584151026203587709283477000119726997499211388992629061161508877019560000483285226016475328617335088176020164431294981044494427239816217356210085971371958218608924270542872058763139236806101894160113215501718566572622020053659770060914286048950981436038960758207871084870760976334549562862353834333478477605599855592507384979730800236498797205995660488018787196383109835873758662221651885398305185412253352526308468896345652530294793853960446947049771621545870383554932773487958924469628428565534136862517056085478243361232150495112658853954292028598165559354193024734140941390609035730375669130839426494813981643115510673477969622462267609003143136421233098346744469968939377098711471788975661990005834174027702500632134196568827154565928407020902197053304247549887919187430571283043143460635758796617435828675910135918701520731535974613847808906545804640892145439168150006693402486074544821490375042345638982717102517945309638555040778160264260401714870847726896968898930802792348437554416286879049195393049786038171735528113888391195769252704290808171167581057293528209757115627745197523093629062286195684725976108076350283378411404280825570004651559360871366109941619960031770748536333696942632879369393318148781065056902314647686837434570592523763698657223957394310180922848117721526546442409272408650941999460380630762575342285184270516154593780573024335923483551989867164925012205717702451091807836590071998156085744539570289376522937153110728868833374811433808461676652451999436087253625341120193208312667880975520032554525980593681032750576135293495657506097848783194231129264823068904037151707745188412847094254135140447861122623929049612472466109302126076711635537938208631294099957483242242552630516741200321758796983268005617997903939915832816176122544124291736495089213432495972823809195872475763488435961819457747495160056187772719617808455329199869019391602261369237022716027347615796964841185743086573946832725742714033834947363680585468163138086830898324439238234698288331075400209657095598585150360135685014176240094859213186104669393004771914567709688237577283619928413939609851370597626053152247567742327094976569509890783540917158470447310529335829435068704125985173661141765655743808253967219799475084809593577715627584313156373940494240477302256746178166921750785565800987333482006660907552087743323101775700978084255942284085253548162605728902442709633566827633073340875088758668833566167689244491166255554381485787552457511331690877975541337064622607435237362233670741060436548899606091488322128692755143257594154603631817259301396785944444209262546751029844024196860188291795869153747327860492391303168102066278410486453041209009462600335439843691925911806380668535247889435633587425716966052754930430502739643697690927907984662137539094792653143605867296890425788224870795752928842358805533067602660582791801302847000390400373598948264154050935206256450239092348933079851755836192261259410747939774092464556328929201582981529127089770953527731046076045288084117094615394142268970102546320374611044624300444581024110794865324840355294023750311295370983991833403136207498243003050242419898355056308553865085075917938464764181068273392335015132205223789644591655921187629780182234278560164643601268650262255788789545805873832433211824639285294691619730633370550873706355457649909180780568537235673215925815415418751027419170478373113158798170312684857429162385273181196738627208086861197543868825252305169905792832344208441158986963490268444580427289726494760435476385496165223118679890768630324590595831908400105424479536742566822052836325148199848182555989568737503954261951892692405145643094598038893240710894903464632369893172567899809640187398777547372108374173737809697828230447141027088829068397936636951686069854209049786800903418973626183700194904337620817433017631674467711783392503719940852156850720029103742734249794208588760800119243252176951178285349992435656622885797275657181955993859762927484766566023395987855136541881150337214727319654700623743178624772241942751380531434371986603109518370988963010245668143730792799373660110852866613057436179570269029901576607193089330722572530549701414778159622440599510656136740970745333552908928154632881096445481970975748277687705963536786158555818483117214301776909830819237234759703854304614924753726513210499748793301517414532696594238315379581971943544498890377144126738760105772107451272610962024319774990765597747482214560138815668431863979042080084998234112927295553160437823837450028719463733467355883694053577941339745493342650390679483414354445175579855832621171581308175176491486054327977816326861933058198495565290207702030520954072961356921183865268891070585378194824450295572552496435457454049085978828230692101962453930986263100497049096662411162775607752836583459847190329673068516700932684362629058651785275553874728463967398538565279489374641088310059875236673206559660622747789378971654432812404570540322037668543933797308065060323798181839855263791007801207921406452590130602354810893712917892219389470755317994810331465246175142437528212401826110382727582007627471937875089796547302936921729566722614594620989679428917689075204248551593279006198777282225894415818181610191140451328222636091565828186386047138978293857165560639709036179825416799091835610746128921967040748378163148025609229734753603062443914579784386881481062236190504037373224984727614526150120088661584370884747913136547388831576001607916975267559316948625805050772431575030109263621359906559417193219006959161130538792440090800275028858349473814653390928311348002301612324186476744606069599966897971792909962113717424111745308032774904596924684462911669900017826533090951636272584548662859493247900993905888699263771095825143066949574218333633567497109856577157285876775683498678408901684000306494381360436942279919266846637300955026760304411402553269917767947337962402794402767665260572185423491826932576489573677232323404358741233618425590042825997067150121957103704220206047473526356996311753936485736075093735649659961817978106038932922588483169092866082570447340051626546665341203554972073511789799038911257391140038299214896332419858601006106090588663378468756082766968664533839744611484243217037174493032167029934915312276475768232304654796498412272692989231126934716982201167270285240568480743724407222288603128951305357028393633353052594968871436777937535312017314938571099392791385817731836218109310207245065928398906366740174911593849788533546361126944068506522016837745446684572386377569505499841381370482316527316469323531276523134927373950388745444572659210832664754827350648864805695303412296103664449871558951644296124145130767891044450926133294426517307544158042071468974357852377528190808335178951559836605043710199324901987267391157353090340878345113889380046383514928277923614893280135393978812211209549527481291595770185322566318081676856946441763099157433407434515434139700515213874741458408229615702967768626419627986945929956298797703769779151220996424836697098215000529858243962468954308909128418208178582593813444225001873039882294951748667018774510739606246231589190803381241083519260396699427637598392487340000131551958541878015246083421113702875960141957023638136860971085241368446640936992654828343845288632463524018853839581172840757217664545621407656710081645801372650163429506837442681075559171970240135983548215487876284995132295713457043254835582707855339895983304222757375135591286638722636884416582928239673274624364777454601983019393889183674952543934687010929140007654003637388905417483867161820443969680822863799056362493658433457310769700244917652464057033252051670964610909269885723258363884628189460513622766615888334743308007225676934134572857627993022950466065500487389309933925437680799621843070586943005614940428679149747360205665293899095133896615444562641297519751406658583364619206363824355655415423791617870931070757306644542624591283303195025262240080135625285887757504186690621424163325138659670821714865058298839279952929850305763832525045222731778932653533431004716996941844736402790080791470293294513887512092172309338153194066233567291205764970995472936227312809280692641743800591719056743165120709071944734687771340335335826074424705712679752984906726900274405820614345943740108300683762847434821701208394936541833522033445485319353592974762690763758218877083119012522705804421952930642448051737016908246360178116490473918492778948193615234634095548199772484987775756615895607013906148992076753249738324518388544780793889969245404446773804945195098058169946895902918861815035480322710420966964138776139231620629683061672229903447960826278654057491934735851934512976359509523672608480563641420301381420932727624863582104345364550740302274083142131067756443832519448502991913158186038921256218973462582063420085427642322836430062863351833556361808477872111760392401037055897761434514794743940928475287062483299100744007141740763627560980520651435959858158823060680690120542524226742967802681877629788003151273271592677807310539570669104938737016408969917845274088443395723462974467212185794551490875299290111651994289688821698519058568424274894312578281922248461090444876908087037343664928952005623752845036933324703173193741578532725167685561940693226824462869505085278348434015255733530995703308792428209303528369719181471190239672992323364207722041229470006107241293691970976363992329926764460598533151704362177139883089018480013163701249210843344553793686193051961507849464474801142870348482763581690943236985047150604954909122410513479530844978887128845423514690687614821619114740334929449167169734285567796043681367899249909100570122201842244775589647070189458099296365549700516084091020283307871102767092521316053659588019208770688411432587305291825004057834181570101363337339127862195050886606625381293090905478786503129864022395541049334430292447605378686407075021918613651831156221615937893889534210747101166044533166940187199219422916589549404989079967293743099816745966906394735471473269101760883877301223826986629919941594389282435364344151296126645015351484357569893743359896584462357484407510535796623752187233827865013683202336819381555595293532451645256104469847672713696627335712684589557239935456940270366408870394128613564917788312880565222862103464920734438985873324761181511403949225943345344707493040116978030343477288355608986993578820331587509423159341249582314367015682495453435387616012798921252855779185813062962209095402777442939706606775839838536054832825272773792263087995158073787079185440766963663414478883525230262416287485220658116409558492259501400932645096163462898911210780010722209746569780369456889111346977830392689915868478891131832248266565645468286140113840140003601646012822085407132667283314922580204744322946615491178441374809334325260435286795700580788516190899934045689133337247177883944773291349723908062730065045710897240541049983620179096085488009929746093730879088535017755660192658262366177618792842543252939032729283781662365571749302165764952992358619746443186041209905514296306773491146421734727941747949787270804510497933303346790964671411786821241931072721742016444520420385666520508885589257151225055428435091291322654493671972677520886767379474436170539041337430473580669736661447364984599110892486406361397535252982409344050514551831229664001966603078478646110624869252149134550391387867630617429719736040047536237029662004411335806250485307483261265607105407880395840174833568141640590007075053810569525410297810767438554234619173612179078118779960500452693956271498691031228343972527869951725763547933823637437123734571433685874746724682605266217762384548131003885674303411114124500551869481428189441851676558004332047705614617769815631531837574549348903013763695890808661961492420505182505493046482754369782156892131748095521147030584848797651223095906420681014820478994459506332850996119413852159662928542293924631717065806387774096670071341554017788875008549903231157592157855545956913229910920875840531866908688789792424012935430228646418463459882805858347743070087483596473142641110108168305838026696657410768398853396024361744525554775823510284347050301316375071428630043191884464746005456568261232100154269537317886688209172029269738381845642472750531997028982590079968157785838549778694559856420637398431911843441086740037460418323885019573557440588945017482230341496410898253060822488930541818645356345215870558795028905349265607386905747238613563792225539208183793991162412431109118474639221893852350320149054650161956139004924748755936853657442212550411662364943649886237230828565828300537013475528560738987843742512894662603757195254658406409002095838393027429171124154646896027935570428273778716885568277240409526379045200136189341336048264427062347454254157701664069916145443492973968181882872601766495233926295265846215198017736990431967887369608958139557574884393176793001723254330088789174942476567908818307626052117608263410450226045297658604614652518425053182123425313189265879632252227818677167060022962174606206442061360889894702241100060453099993652383340219999645719471897150918182084762443401585542281973313082405323104472490806746028600336700356089687378972273500827326101137834956748820187879942580215110836922431580664603024202594412148050495268513180620400606157082185803977526826434711586624397334942965437438295388320331398432900832737308195840550018087007100248628172960459581266966893388996091687940854162667921946641126771927110354438976397317691782009652706368481940745734905910520522823491608667454004612389105186385919528829049782468617116028204025553431404955595493392530767246812951273270904834620090124036000018694812977707747446230787365086772369142482957761220774776229175318351780947658852724327340967719862850531760139500569637880976563216345872095660277974326398369828364691687410802022899373654553493339783898336307669673017107280002162401771987626128008785248789831857873021051648591513167163074248091945261085080297661931353702302227505604856388754151128730553049474242382987538753516264574127689950645389680580859122678889683904040019590360315198512402933642121183220497131025460304885147733618597658388563424402232830011078937428935610105979959611642943201990841758492683792244263936294076933407705879765904157937317491535092251190351308184152567790375286935641759166626670619927333675260214394449328165640666030836858715060971705899011026190677269444320507362433238916119832938924286681724727582480059117676563825706063033945803753287658103644748800019093452310704409709383312706389092881674247728934759709954683445925627604529338553844199613374262067963260235567255898846794321020524694325444905091985711376058026911425530730082240003885907625385050171131431468575004323593820181169303084478899384796673746402814302618316727317066819933121522734445795185772157836953424214414555128881856448044181373887809156578297386620846983784051987437434819926428830578497866093471669829840739924188664081333698587788763825766098029784654935635745157631441532960060146808399543469795556157052012583093830668259859729010311176118013963083032186715248090929387496510331595688952764789939334014869111393917634916781909563550689385259268418243446509595244637393622959140490321926390835396768907774927916403213683903595246454048337693083457775587097854862247888844897974056489237025845044351629873224815148032293273603864022853845337104010559701355693478418271265019200436459827162657689597668387283886064114111203024996985676584016736425386949126663032830800773772181046472316927860426693697231069642693361931481567257567746762242564130604256710631211959022980892207680308506469172473247988671419818982938580400235752483646327115052223168445799882002055559060692889838931574206241941582026216879418834263724814611016722524042322511748399803686523287783203191837914577283442496343127721877736981068215062235160266289958301431126563967433492021345430992874746539884650423832421805109526386626188821762707886178654100654876187218527517089780124453133788531172596229695474303635980926886051938654661543017927760333953775255784480885351611499613167165086906805247504488920876204978570173928621762740833109987039152932774656913128648881783823146429873248020647893854271898735124536841568205016416777631618437403940453821595046057910666767546628976398125782420701702561847520875890092207434407812924076734862950359299187569224496054495756747216829790050077197558621116770024293302140946834602254091211681769955021245636792186028881621877337784249654279639470936828897870470800651623104828613961978021080729279825331048712915876027176964133529375194026172487677376732835068424348439704694570130684151507666659278252670691614528907761246042385339384386840902499109316523234644379982258737089165755356292437836002131188905680001028757554553563245774985182070513365216621502050974614957268588133480334482575533388348768837326094786391850993128976979038959143899122879138721761882347592079472898404912454840753722668206277123896279745399913094873531402317816620141036731100261328421002535903805170049026052959772902694307606930775914987515303963203950248810491352419321262732805460348094526755629780760693594870825472430370206499729495572645916061254298036940613309833246448990509585013559914561396547363100825380248559294818697312094244073278344131093804184092872261484922749064821854172051979866069526209430902099174452330404664431876867172954367923327194565078830384148916097997566058223611270200664184492383005761915269636387510373828170436029221935176539501061280163183821732813967426555168231927787106198926287230683036102529155714209647831177411696299532333117874594785803517358321671452964636373621400559708282204165182763674544113486479975339548258297813761955497857289348997133541180894071531928181855713711238945886391832274260565299847638975237985748532272318032551104172431045882521386661388239626568121613004565104265429689631945536386954939281995124313313902740097823432203841900217325201285056647598900009590130662228999475795560249973315350784974049105871549604388070177286964992533258510899046559180627710856321255345661700061746930660131348086026367502684069463767685167025791768802557318114672080206006887547455065768960736697627979782650886982250741924448189602243367669517920156867911103835430943432258301225310124780549258619901838283287126073269885283719102512058227256409060887762954629370983377796565139663391942077818129471940081335772787203892764145125118261007451047173757357565039961483064588449242727373252425883100896094232102864632335269601446611053253681488213688417395731178181939407551128779154980990166739796978591799965314916573577482414268347794982793564882398980482532220354411580908654179937034922072759531635525549955569935239220576511106709269597683229459625215198350571198449692728325815592833738927604113636476946755228266343271572669155096038419104110557775775935972828245174216307798101248055757723955751729918979498248112190247944936522730783651303912765126267283498484830409890227031711858650600355652907086990522850347011181652085857127408741577479298718482236678412224170531728925558638128633800794278652275486807994573254301907161329874531283378516923520911825711170039011670682844520232345129536197240001808001874061375290648834055469779466940024843894073694204128783775056201089879305419994237010257388263980381645629690166964383667464010400929367654187644847816436216264740814464845568586018535975198780628586740181589757338397906312841774451420608231949327771198106880446472221216542845518465720515733894823342898035832238106596974103897183379393244420193760632656884884382229820300557580453258936982664131194346564704761835051594044126987280184275147785424075279111594091517814382070107510902239215405867580454412654886447859685109851160470300577308613824078611276588221464786875271434941520157565483504543194130307848773302308462822070647719299483392481498468954729491102984432183761333591346423833968096432164737254401721140185321290788980555149665050793702100019215122829792308672285031021608714623379601875517848302882015569810529379203261237380658365457888463167224715813972632560054929086963196361837789347349013322700259170575282540827847708252142077968379496440120830842168275261133096790695824374347145512996924614837590252547336786574102156241376150385406863583984986448713703350511827947786892401420868005628844593487358524386663060762919722588589760121630825343191796921054570851466496459797509726861511440389020712743152080645810707188642132417320614917302389739864989076935318328413243476996511729340967447081234236785303209034119528792697447879289068760956172182000088842684241090954855599171671630795473781870167206906263420754047898635546990411046036745743813824433009072620830267533374070565762909874684656517047231918207298234277868868135660824683464127848135891887251659548362492531222610834712103848097233136437093857941916703959170835174651353115149634556303061642632343597934587250604490275204166972367732202756677904040420711548986086069255565276073133556653397669233538137578991149255078789460375776698506010150885029182918558992097032276335825613375836350479146237946718413570855630200595931320364507711519230221016583123162362550392816212298696932028345166891048496191548460484908914867342858022065604098326858153180998003069876394553125128904615748169769971506275885893567145902324249732381933608833972013674414654973406445852045758891754260412050419593212256778717085935703541051221401603918094478279994275834239609774448744352668473932072699303454144297231002790878496701558913776869195478907445456731762494600509271639811969594856962498761853201360436074775469280932450653976000923102913801608431090092616829569500144597033619642881074228004234646243693454731400360363496035210620699343004784755196052775583618724113677944980594280193195140644724568207608103482181593945801130187588106534230185056509092130839419998312373279826435501028663144214572396161778524520067359992336317251650653829848076184644755103900066422381596585083063138550362358558420533255570521174091224965183064817121558923188398232424161149432159937901209555171166294456850863604503124567221840684366793348190993770417613541721238500370789103389384760291901985923925530968773518327468837314325145630150873593798089215421695016650933670680509657745088872461712133608508118378864895966901863096601105950427813223041157779365225953800067711338595465415282814197608756423921132631612937636240809029856319906117659256487724775786740877214820312620838541204361999169701205868667508091658762874265513101245598215407462639918620226041217734116235974711528023461261233644439334179665384269349997307138497384011520435710728845576318688574380466715541802779256692325927869239942313623886607280368067339820812405488170892538216150075533531881904661030926745031254200861368581819285320636706407195237299805392433218281226247187807358238852703924558613904773549698419879529833824640764230568561887246861124371742481347348998209344552462531099265994020740977127614978905765509741663754365458819193737972106512904360108098431363332344673224096612527228785292776864790844675229613411409671637303712098303527801444752607521086422967926879726733196202946336492271452976311872127015970485746380519306844723527944142438665023845965988782662153503930996050943814695089931846076988096226749298667473973507298284318558748993770772298065781741373344205916785272838830557859881614872131961640258962954355090258024708097555559241961125681772476483600466850087585121344865772154438778201241829009762270381002756379398452250838897848006023903646907408700295477394847711213723427261798926387221868857616744886389449722703437151177440019680895584050203287917629393819949039026693156916625907639554113481963411902950909598312331475469606125141795522182829123882841877586080995665551841673168271377342403718497017615198548434133452100326162492575107952630649348151308909202370613294254934392203388039373699779465457515035093439205442639479877972327814736843539848807574958600209030463240054549314555044510171735861273151000646542806716468096430357692610354077841879461843896419871937713632527221445745531970702295851387985342953615133179912482991282990215205923651911239204081981843484437417539694721781284690616652309901488599127233971841328611728245001305265080515966631695207661795431985783987960516708318013662286421323253789009186482466942350678453562634929374384106457349694275846503201021511491302231862820101323816296223100983004148924442119153648805644658266488414674213243148834499603618658202590477738685417866945629528547403478424156932582313650203253288793273962752567000398018022013940615536547241316894941975278699584909670200235996386943462790796431565831212951635183792688546977375866172797931240629473984260636213469518271696626141744296844147661040047406528924341021867843773351545212070635143637805516905245888958043440410887342918443882769522741856372071943580204068304830537036792787035970716203002298844163178937592100130239191379154886211990680541822439201480030207637658780794949578234849098846758032994161594207826477669433171559717961567735270851083497458617935348623933735998230828445841257641242805065237765193860653238578409049617529505929028521730560551207727305542986825103309478467149575504266809536989159454313917447002708657289213055761877818698120365887799945992613469062293850236827010473110268219906497503229307649518974655072374689228054425485299772049945227169930926104969786681847420499461046034199614582753031619112987433473020034654216203411807163213452754822097402646165264143703263933129499029898214784921480882947251903644004032042591185847411693234528929696113329133725294160390268566157177360029073170221007360623726798869991650506051830740978126131243456135277505446738451233965450057756466023184398674496716851090325399475147207005064827942947839056914791011052796628551077157257586976254155308865835834485343208197722125425566556578369975609573809097351910253442427420912583696049896433092473540911528428921039031859243811126945980988513813870673736914794723587557440048481806777858465809428363053732054325905693402960601947603236694973836172612412326277075069182071851885776774271099467400897932742336342864283323064778823489446815735898973379117682145929699371871194109381699335115728560330789413088567533385710822925828965610648339085917518429148676630561234780088980589905294545031027468820947091788580040779173326240595399496782685713474631424292415570108304405569465568655563972832594639988713467360644936677929898792704232555897793477436127457369399509916341173647940663207634576466520238220722821125927319533442967315212765384194623003128372091121127897960947456664155059658446443810799574804108037461219745519762812994063437413390271308193114473577578637485073719919771453236939417234530102499834685901897179883688851553861261306006578236965522333638157452126975009108218308090976008675213776732560176750923024376341895912974403311420486429975481837150747370733013813644770141014882045554353098028895453184173052479232918580275639136932019133441488821197665679584144944074240561071704872821658660887944919463253380125714336877026672273984415658843392702691670710914564282556396616554130014286304450325682694713310326768559247106006183078236928113017529230438110565642724153397617483899824074769795280375767877511557999268887881120809000516396990941967907033380992497288092768862151520351214198640144187859044561430544113964370455662367849285333441418406302950254667720537956037289683690782203707779722979404668113837399878899957011861131472752260702922390437944050650567546218202667716343269915972371610089476921158413577415628862474570672834708179676710597971282516401516844639326638235271200825638447384930955175096989352593740504450129789404589949834028730670996978350818620931362933400919472312158164672211206014135783814301715862309001802224309771257769321043294424385554710426833988319894744530816920802307485637401842261295794527863965617951644790622733542976035746973039617626589418265484746403116664021322300385792869155348771275722883339985750699853174429401489780163612200382545933469972697614748516894888970662927660263090615442297215865479346849506770522409907436122171455834085184429781649124705699290019393990027979138529373579954747454063145187008354947606971253047778063142355477708150304086948956790212435085898912100132341851587226985768414585600915185979366846527961592382155477824985669661259895077569021663420155910653699693311351989668705146530579120956010350677628257789929892188704882723631249725096301868351961199970825899757056700209987142483101467232572824055953040209079295426992448916326089230413227875465844136216880219997901045390487474122248526787308324777142974127283368265930578651887215682182135721202335415970844124968243643723297965274029182506808154919774747508839171801098241622298409570833475126208866653590500665293335967066197529364968823793893621157742337206989690286792999782487712196905026830632616077075162300638027442203206101718940877627573204312795441161536961986410947274738273778397456253244686613567145128493489073968662328490287120842440579287227604799680074101302622996053498137422974614078245283218142000575331667528912519103858783763767745472826337786890218090363860463430288805661982114140571233857200838567432341673067851606832205440626591719329280244160998350854724595375976403789846770309952150988262037265309438710814588330129800629118279215953203937593735156796044864293062060479834160191635885726938899415085181803311307259874236782525324556627005388712222246883374429314027816201097588664440260654749632793363845648276806761708724437531116509271654079154159058991303198964551185831843946796964423213775690050096826069750546393665324070318020008365975816077121040652894529715153707894156247128807614117904872805301044706810068550320825125547097724475082950644025988974318759748483428585076443321596465394159153684191563186438201389773604812084460695678454203639897672213318262104270649442569865418768780547498329741233756807013225714890679009748498731094825118486484203703452359240561041805640403480445641582027907146909177531954036177756583635489379910154488108206525174811427264930634295159612737810688053098264517820650090571014336828818690146136652104599489545382842938997668160514802522967752694747454476433402946762334565403907801000108559904001171015368553390038651608462340606933415497427388665147954236416497774678651745206407052063290998967375786715008186759295231612666872934651882684506919822208988781905053913318139486657363625319641440914985963016167231431147456203118564171851289271302312133377465583219910719338222434028984873155093886547277018045739029514003079606632745529535631897056957972264093363241376538918222127822900198912544860892842154169090793857182821200509621496643598798210136106580505966530645224694869983451931258188982317082710134364023418473431497015405257041212220723243157404512707910092112245121339541156752823055108571857146827414757837995679690266270265496738995804062713766727225407639420827142459405355275580731704854797063932012194334581129693746337155951390887609141407821940748901552327068359110618823142353672434252428838007731550210824452397290158627821614222334771915475772750738188072699658746157798469920384545202448657112297917023322032455185182550431608309949300749590635591850889007525984951971877338985560071065117883140279712894009607730381106500381724203657435831314652865174250859000508556020826693250361082448089704231092680201746555339688147394352004395667350009962020511810327341658932527646820378508055585340075741129587530002557434206245538434129328590301899434808295814609084824753832512061851859615168215558108150547549904873333667111840271146463494324416396441547638269878780610773517528122610546966015494592780851531918651735867097743476655154513107069324373549878113792392287370690938607241290334698124828067285743644745230631691463746399719578813485372757883346940555496476193238937839560912814109729492505644650626132856537744907307674267800275656078266051865193585517449085956775013999379792078222857209910571004353689265851184882248642577443773698450033635929819989281460118877415569010943145005595415072155001745084631674266467396932865759383468393171089877621831586087343239060321474839656320490166311173630069382281455611498025369551198374208524424202898651930249071161159731947641679115634862722607627597033398262654265818318074571865984103178433426313739451624855921356536659609147743178834009516901429046279650816870267971629678494257654152502889776394112737362110055119696272432639032099935143286719326777783163600091331416899383855038044692970037700339723118218595656745168665175809908855124593327935866679601135846713289488002719721540532454626231309686334652925248396498232081250606745946832149158019137213777161051750586766638608668416329260630041706022139538069213788928143904029249825907960582073016417771108957161659260947262138753761401016224742620490256674114085597350813598323028609948815656917974795611565927511703122287750440114554198902422319063354000484305905550283531111296080631634515997690885799639227365630282587077723598458437026533273164359180408324306405763521107466497158351902348984100879978229289234377043855500773397350163825782147065841172064214874304520833480283062425559472080339529429579337549512560148806506065724944773682926654830881007368306107283370474531300952454856415760881307548127870035259637813551780495731232619731582996192990475017370318772654365199202921422763891507127810888031330156415525299204669739151371772704680823737013468691284065286781807266068623832863894498503153789574601685593913933299712656864699420960293075755377702684154670935526184298015555380307733416718883665153539698506999244261305941330883002822223013911549887715351203130634058273801860288090922141347817029662691409207498521791318314083387384795124855071961375196337052064195596542998647132375031551930266990430087695089839934942282477191917422915489411585584104513777591934428623142199399908669106141054223626545464687041729578747112853465227164595094341061464194505218830417283829012476330788698622480508045923637867477507384075343304071283971619210497583266156785029183120670218274293737909791497571943776528966943956891526069706589319100788710427132186370183055490133907302277436709329642866647836177762561307047047673517516333092620045526999073442550883119227942259070805338927362687361480479483613030668839231392732565801166785922441210360491879770943301715578177035641067127711822941104419506606020708212879171167997850726353043037383790389334129011337128718408223327098268880843623148112880706401662364076108434043270063848249186953255669507168219841040816177353951410624841612818842401107789196840173274818512346242903884790913143245622593433158689239994707751227353057513464701817394203382774614874600617847779975422665430796072010095965572930863098877929574674879193495044958782065172541326906762283547401896266209875451065346921993674375902647844825801892093189046954218505113489075518476730579514209299900169302039391881454645133865176114536950309913407858831474618806303421469692158591054561012989373288323998995159044023749921133257160668770623349202784863848905657682760696012176818236087686082676324222592549819613933152610920997498886695297872216131270347962572163576455956081125942358951747571870316550681504916040147887425746521656443243524899664603623026657422976617057071480277323718747869804253055100291006285551270351721763367587056564386041518545406469078053091763328275974226093463555374716919240064127618975294671924878822256394360122497302881673885704119584255661005638340700457175012827137122828019022768784388591402247677540356874635297464137618196578681008616369549532169777265742703693695057782666390598003024076710114653990424709124413121745039897279733468741502875186616287918330760515292927460166980500027673056653370903250118722924191913684338962277558943576960978721812865649994830152575284619197496048068884334167550768740749995095180846333752658431973406473363484931462909488878843015679864000512707741281372794835931993348829669033221239160562676464709395525540972002060420029857131484365382043985346790306197139192715774988879175269083300243498226168556328885817918865681382892129248786935107029585391520017648433323762781880810547077888896783932445693893237346168322245052705401045260445349794773360252530084531303410271851576670498257273788021180396912321265223781624450593988264630019027993834732305443996651092378057772924408057911990240308311444389366925713961826867222573365823311894972602262642888985166054644424126465524230611566161243608106493178020854620217243562139182008811227013462354450505500994679732546186072800541844861541513553739520018396536945920030983426200049348138239262308206058882117080009484884591702648578558108427808068492229607339400580018271260777759056587483645911218345022731268039701651948607722826818977628338305705946347862714087724807408236374890036114755892785787036150344576979889574374516424963218713184151469787202701003405036721998084978981970700098280222426463094189217793899704228612963024308152581469633587988041202782371389932773013043226738856174624679630426399217208613242667128405659387375335586702919743878658321330997965036519072769970015491490092897431141232871544714085262613186838768558902971911802641742943403469483012294791618420566629290232222405402178778487866926570936688752136640543692300691205549263602514687660395781217669560817597455727257446355925059693472188343339229632188770493888801091006304739076872390239127622507174771420221073514865424533846939208960943458742702235796084910328100656176059911720316748983040444411186660845035440922188260930999701203367859628242828200643990742960115614863398464446134073141369020943228476530136761322795089509880001175120828899241357219312106802978422076505892168118826866066947940501217199625660348386188531399356963593470698545674420115911729389334229251291024411850423870413053123589438215915415532755501360606098558256339786614169474880739663167967970114339868677461438153502585181198680774339328573904580415292107225130970573488050516861816493159163660812169115845609004467160392109820339642258743058627117728507706276875631632786394431534441928814152504888373641220389627581554970870200948304352629920152085851456537035393233123240578192233529975177845412097172981180469549934192048779457276536297067871878437469898070054565093067970513353682265004418552568061567382163952578979856718299048218437063178950937097050208392941026808297335463526223567124444068706709620142829254985235024070173703587975577668098162115966773269973713167142760871266857022385689648914261376298206122759265598128565166198779534045136849474007698901908066605915929905066624334191866713300772847075083267148329733594093910707249860911886084872775055502044873544216939300932564685328304087182554435005383270841325307408192640637062739735395299561631573892382339974979718785770147244710954823346689117942316616201125463639581315525549046017222684248745487204408117926072544304676976305369239203961078116408567123420084500297869194324125094806986145423813065926039756175968504237866476717507773438637119240292844236857268530026065176857982188053755156020680306588475852552087731713758562662515006525561397040490475747230794654238824915550670654373214925094252615586448957412071471058298838923597115158925821912958382660064125895556151129737168067241804192594965317381102581213783295729548110579621973205506099799421390114070696301195119488012021189242005972355767488997909657713825256727112357573076092061412644799556939542462203818536391983438334519436306485804422686296947359010318256752754839539082555094451271792337978758736149101153441627124366408397692003000870633042653727206582427920200911631563211907228553938589754521196603550898223148939981028770694225382957172047737014798291720998109138531910743884146334761719667132354685905880623489356215200244622296214737445898568122757482528617866716104028916746980311316932344103878014891661936920178909213406494183657903558903013743137479579416869622829327664686295659585179551315978772804932737783545351890847470328961246308673145597667865042527614150181468394458982962628035699149599219073991414872496394922684344412554941097677185709831955002474330527021975561130201491130742483744019376877220522481657667235093528298602657786562088267689217880111997997145243886887088247013624928318602787346641284106361421412250543885972603367337736943602738236556572149963001083646218141366864798361052354161394549852635081465714303574052405474346831615411686472365894278190131562363074539438592902904598635055877066390287187836100200218597890432782062535179741917675529182663773456093236660693914888662474996844896046110800685503486168355833196862842005740301942985769272869195568494880747070717793610284693439002278647681585212153607169750280939859928130080195633419217308528135593131219627949540678603063123423115220788341792415434641927245738436410882109609425893549135072159674658086175072406998422359413577580700204830860621989307942299237120132097560765064336913011030848570906469933199376933967350617691597236101698690630237172483723756102467235596073157810489186329491776181733992096223384211858862094174045876696672014883971814303789730740593940893502444927155392716687723550053217223194736294479691131866940411207884629067941764589072029078217909341277400472250389267186644583275571522322038008289084071687869664336052841281016612629131700921297200154900608379885145632415833936233235521073072715182663385923671101006646065900762895762523894174327766820797426771420210005455292363570263624308276153106060642082174651169898738209931679509910174511207591164376519182761201382561619020677025928155975510743072916882375840746512880425253017127336495799543884900123725444683136906919557306053564185533964781158396784171552538430188864298948854061992985629177189708557218727050096551178547025006660456349991489099310840697581935247110906224830734340495739427616958911286666378103497019243480253493823370386027098998652881901114203932963074488673317461422665719146367218205969488710527652569358794944611333769070122922642930017697074496492877200456914845350545203694634202976796777289801220689097347550391332406245064264150804034969234144213728079948654227918931158067948689047473596171614757507853757999254476269170621904016957139761666513327162413775780722160768303881590289032169355583986453686624206386017925984764529071369870835912895900437949543270952310144896327476602851914199079340243802207596289000125634397497987522407277381736220023076572314180629588212563821723287706772253929500228369455222352790452394628783124643015748826294824323976997053052537347554651626233593398920931073997065169086793975396684127199931085439011725380662058999881193190302223630011599417486260062963021617835465316023933556823057493948538695148175563000676092622459908051328645071337469239632562290550906505818979043597923191857737617328454292068874553159339560900578793725300048382853438839272010119086027946333793098264177003533823889541423008521027802866275316157038239684402110055626731396481414666525987768270862137715545472998788936756911913023361151639544385755402904820531312332614268051414881919924497690740092220961100845064927771340146698753662369295930477747818088240573895898398511621120388767416328059930008761897637621505834028995985235804051689102940098259269276554650376845673278652777022272878692689251126610956301495168109754877397064812174620034704872723223353942092381910901716300861309477877761001195236815726156736828095822668310898356262665493938698012044322203253020618152445748848921643076255546399713335592239997952414156177060108030637019274097944551299622139470074962992167479792497740525178484219137184840574142985938035887578170557911819188951380181047638636074083110004009950834272722087136342151756268251266093403898070647265603400207050419840650503673380901079962270091051492537040342108463639377202353774771301808936548477290229836996405833951324006230223624467868195995761641599512784724198441189196417099121131773742488739074422952773164291053716969635448813403464403186043277835709477587728132970190799722967338721207070390466991364300578885631166034200948530052950833106377097242462040723302560290066656967962938380438787090316086145272345453122513055977302228231154778865611199261831520336811184441585413374356520425898441754327153504322173196105116215995799591065708146194162178681473938750879606844483741968446910301773276561286558008648194298650838094266985766475256369028806811616318688961311446129985797052509353725387475443299712646907108438675874506585849944088656941017123066734698963869394431404893138575943712325086689638776582229893905082366325812536888929308449120154848698960414745059405081523893358509354103170509719999073033120322945314202117523973106397499836792775016244840702466684523528849092434083402837417155788013359547855469596569693540520136641419755245843145142869513509313943919785038318083290562800336463682449939195379602314728160033622951805929118010145197355209396509544384619023790555954252321263162802325793903090103255540265185360696180300420019839488284787168986160142601164007454291187275312290496617445174938994245117167847316975707637691210319020523389758884932576990086916230599026340319350950304701718985111707496010833410178369264628581202061811874079072416716609442715037248237783265450284821876682204208641436741506135851923188701630556126125301169291036898696380754017586750593215513326534569212710397244641863895596645539633372222973407049705749377348553604118125862581440794546403592661634200052117746112651070378196357956302699151020560263339462730758662579241871613072309019135552049986127979362968327935026539154994575217000209779961389258665968154276348487811548363250725191939449932377546277877183756293244494703732149194414401765833275553839768061247804283808765032522344221335386495729352382408230959262924142790398410990181674186552186375487436490026855860615069649800658673917689197162117594962303111581241897290426642233693964168518123457320834469254231010690811654858926847718622097522396711357509114680059429036363947124303177024113498030292793166275972653830781811562562737885328741595961362517665175034664885237095864932695484006068097960915133280673984231799618380203273084539889617251696951971744450690927931408286205063960183194803143264852867068607843863083902124679656702922576689909236892882759898534815774592805682756406081981502351060293145879088365567137613755082562210572960629810060292027194156567326415968594866743679445140046394974055967264549761731710971387612571637281140538289023786911663666629026859277248301303973840528078006946791159062084498773863910658105052607384108806268850070368248937287018157081714748805476927118660958888188238614052728794876787061466178364476589325487201274114991349359808567472435919299723690976928765043107604478020838617343436884277457310341891401222310396719199918907333709889731926728100539442203935908384339396175007983263348279471881902478425210448077272522525579553185882666075030079512862553939867628912808536822707348744066538816218148189695120510547598689653011748783370410204859714927727579601418251339310375959485421248818199798892454870113593931640184585726897800343459514757043449430697162413099251400282051242800973475939868613788068309173592256322627965335283423101474254189202370348932182096398559091950711478402453779732539093575170361463367258766128346790789318069694504230843929720023133209755895662339404664506936403117431170483167101453041905953519966058695444071649244220185909715557662583885225763391559657720192684392834892513347530791518389795245213482559153379652148790886348472149009261245954511158892841701398303980168580876493588374568503873242875426666153226233905238341824570518308068280158529262692644931200532056028193218025217358195786680952867784335315307592473884653608223168089209819010001386383853860760708726552448190813498995612318889304741665755313350182081896132927148807792338575293416564861222984194310493500130377504050672880355044903849422194292454214029163347827194357248124177600346346979079399999065169300011162616966444483233607963741026255768098625440280499567500726793837715190417765623538275281833204954427351084154956228305493711059953822021448173655128219219023927316209780571511725525204280753410699436089744128839041311417499415084237228919151574228420088979324271918401757097755337161121775598733223135937210680892377881391931051708274805676258406226474163157441914884222675315330584045848720519744800368304997533851672915147775973117439767975578307069908939162407597019059021180591809041523258636061859434310358684082777339635964602512845142338434009282617531145005247245755673783226178070354137833988867146347549612745076858936096158351371598276719054990394905105535105000934475315871201622583920202852817465238592950851120754476695446912562794966878766457545811917300747579500125078752003428330457688914860145304167372912741081455295146600968053538616395361321678362041613321176670414950104492588743191867676509256641926315026900577455347177018064192060157122509714938243757567375485775622873003775992076831718627535936468567080241100268837828414537101954737431572219242762463493165010481840915695301156086252698719398418844776391610881712582638800983775731101269976532546805015833249138669977719669458971370852868125440741674357639405866810373600596825817694350373254002102519915631944613605873619898906906529525904420711029195387756039183972493867230259881363994117007707332307979239899290697013885707954090721230031244968882259908404271082711070275951582644169494531113763412986901979575203519794927767971834274048637902584787949810742902907783684143970518155759989348292840565993008979483438040751100866411809242312742486512695686996987365610061318305848416512372878831978157674496617569156533751571901255156423983778096921046530797161721511225949289148130888032113489476121691014909458288149889943372149918470130838461337535320625334912276029187653718433884262308420177033175766974272835216939047494917419528447070038185437758003020238245465063425299629958449271401672762104335962444635779116145860242582256625316015029935377057481756247490097939012559490628082466787025314731988816784684743558028066071868044126091216779258084925906935353657645583584135414910853786786532852304019487427580944854241085713839746163845005059105022387158663467964893191229444289618482330366652070426512687241938993444317935603200476572257374700272066720894484795000687886151052191143336049768473231260484515297163770412210622623533328456873867189450318872405160241893167483778185691612445200849686700951694852659743145131720692148319549382833928831222264402973671499814941508093144158363135912056768147848493402471440866607782574571274979154743021003088966683270553787576202902454888870951515555327924634432141327835541679638757757249867981689194894914633790901891258308159580569779143212791598750724769794201000792547394437502440829379386011614706319204775900440369532117079764727908646748041515332823670657982571493557590315799405077401112666705837206569957366379426538834488825470777786667621910103577845855550367282153259600006118692018427138283306321643373331925325971038406020069162142760013862611181005243532932616882499436583156142797213283322969416448641993099239624313860180501085486043141987160404788707128414957469557992812920374119273361349946673036634260937220806340057407251530145243159710030984938365047498836230401274985212269171242321311706200717893804379209519552581162052744548442324965468836300872007893808029898926270358853463752287529189584159094233937237856170122737547747594017494317464459300607825809574064752626386292430892616059567305699971816255668912019149181852640696778034976517018928183935139301753286881064746821312684596149653479525246912710784416117738024798323991695232582917706301338177452250306067420126043592539677608098903991448267102770522323679632991840262838646947537005030034118955384004847704534422301684505224187239015522706437521294659716051203392668507191726915085148042977462674902793381495577838486007359622916250916763943325479816125717292318868832153377232181124408305206095859903376970339305244967553056178115651417405200366771375407897139291645430101158603803744654038366808730501922396968893070993641034894913022777233831103376771216374429113426369559525422108136015933246221479619078169258250578460162580571017283850884926439521947054454294293290551100482673103467371344331975777764363877270071964430137917318194893441275103976128549025360995782588119812555904610934366797177552057728102347679573841144478290096014613167454248507300291114279886176816967542672058907956797930975038238126181327250552253644898084267644161437532597436147803136285710832621528563449350679009747451018920773781868369819354387555598556432468593503161596935454883446009508603113119831845462698233506184118721087257031946408750384255242542507409379319565709551258064786275125335445008882445381892978042515387142823079210878037414849928480957023223111368886169442147784200308480964331216410228200932589904848603031841870405820005963126722697900304324713455432870196512087183106551969497835062423124205877057424596772160887297461537976149325326100934310455481884348960378342910146725797983913846471900754294039139971891082738090563624800395721935081709322847084064533075772628275580424274723124850501702447408168977785408120341488341563345026241690891051300613713350651553390307276308551176960930230062044376853792303792887389042733259421931735995618912718910902116750150914647644239268245249474929528188436419752379955194987306050384699476738727294936815922181309234400056915338029956005974363217068292942087121211039485444075620966503516737394750417342146471377980648365201719946779456547563625813167084673162120444499730417559899081374033705898214109307113623120142114422502966394361387313545921486619311474743939132413477203015565522715224940230211956374301891517503801690868377743945561100314425610649753705560454620076681858553059942609309400742804165964911658572666974997432977315919840646053607295793695537574734956958046646048480785264468209398395767753083892988558645573213938054110725371894291367240669544539678075155539366506453963394368745733836734512190316158670497929122879869287012197557930818136740257838073923113083976328396006478514885993850760323675828230372846550746495776064182820759440909006296379427081379922414756449223344964298117185807396633190683559565524429863670141168781586497443844197213892829787709428427078042338222642518867385204891283290640868358225019474235862434984306028254198072452636703091571010986715485284452744652661748866703964428014493199024245508582962367269290306578902543869224734497846850803830421867332716392717735413234733766857035231096415202871740158425036656870598006992430919173535542571018930861011128206149413021953361154879550883310192054659776459671557480720586206313752573790541366980940223858621523035964079381801210814513787144442033074169988885313129713582631687116281629321646667127487159961070091990244131823044630819435802461739399510204283859119756000283065055383593858690553590840304535855754581493661975589834589514674626515196545295884794117834371183419729349029408608333495979367421590855797145360930296167165396995502415728297967983481014645761432263500313520697167493464854583625839541572080910428336594680576083907961032841011370065367301687193910300015301778280907790340645476081328152699261987269519222603858094782076388582306364329794442684364408893965393680593221020905237145176310979173018593778837506933399411887218109227594071427868675127465812747054200219418088282864396898776014790367413794311334571197447044037078559949579018219671867975610782141434446680505351934026818559961548969111101411783107494082777391331355274746680107169888777021350564898098118314827117584994265102152226202524247729900162024061984229131219307511483255279615007521267720397833289428052426426673248841544150857662517494562687569227752866084806074386455714860514046367440557916747702716600520561489101252532640440998736839192951168023622245297499316859086268667595736410802460584833388404087991670137408333106014843771951124139989185498823379223506794527478207261333067262380542843095349738560513457004238358258232437009963598413065229042474181376268511530241711659632139001000423523076592456098717724511049891358241016046015362884385906433226055179852687383861261904416289714485792390927212488453383983664367874243529039152242856720318660961620070575034971177367092627768578686898098595344333048941253433292880273890716775738643122835647492473699310797922382390161803044418709758755081082248407484528608461253350581936073863577292627713207815628197493862327297436369451527766705243570175696501015113297819227167556300101150378996955071350412916147460236392021803467859374496654141786115490789466070062837753366250264751997884426590299364875195963473934471355475518106674053915287621652561496065102458144796174988705648271318257325183512598597372711573296639371992820260241692723995565656541312467696156924972597857002569598137297618911279554843935515131076123948236491803126134495692611246004134848437748298878080522018200584037205684999761620395239753859823242116358335741772710054570305074451181940156375663633509902891893841262913079840324451308449151122506732129548817327076545776734410278854189971243220002394326103483060827856705410790422593377714829146392401974843674387998984648555754944886690890910694595257360987241412154810081364397845728729106634667330733770810924041009094509819935486087936062997051811695367510424643987607490329152216370489265665575352389717025840099579844355098005230369912673050306232440840616725355808434223002048670949463162831214518587758332702886029408563489594894536346349445467588907859920274286958079223044401763980746343449228786519276156127727747867930738171403346187775421624289166127175632079229869572350314137344684743001953930218210039122634674735478601770792082399247366529718198714794326995565303158346300245068118392711397874128787018176492322812980009259857202975104873578015572316267143040160463443750866667439514339085934034114130564599904484720629431849288221017587146678238326896366372571690352414152587553849000567286194575664047787628858954900245110262799735323454724516610247472145491954436471561325617470323840673321538364434629147644171189653500061895710650621920322099403446645160167959733466867330155382536022499194568577603515362669676320566377773166612204656375828349743840694121624102325739638558340797933064873999767432808031547888088919244887637456540449305727526357465407458568743461449542360502828462145609919407925229688723707498758839581853752422636440179199660836200973815970421186092075507743300928111918032929637305808480483119121247493417390041176329755745945715457681707836969834811333446287423952574824010132201149784569716924079244200269517127413872508775844417213560932120150537511503627701196161930553980335968844604371090513242309388942476449243036657270712124558669108024038130208558298271120329676843578615035013862263737517221114908355088746430311891422454882500164363531093529616874119705062434980286080574634927481247086917170011462906013224129958043342344113024699367382073996621120332046893791138566999535845021858860919450854137953092952493844881356914284933435845941093207750906348456815361170868191951967099184973973764478079675361116689862323054988840097052806016762879746739799146806970445873816066683978277443034203736378549965770917247831665178284897377214643639177964809027869124656171340515635683394530315182701393095452140139516900278557348242151010396310364168599167417347685070851129272291220066100328983635667899585347148177462797168639612246212313126312939374711413292881118340629209272403061538365105235255075147317476305279056606344308681220879088723494514121926026946008544686754427048089592702223465908163684323102232843887124832848897339047583029816242913422886214074207930104336314952465226789956878746884107381254358897203792391382616320319594985374423028780545465059586308048856525580306538910329985671772785716998385652599560633765459872139027413074992102403046956982596467094198277039238183318913661475787169566137640134088935985796985387233204876658728823429000735229439420548770383798673477788885778282437769310941672186303208146099985879445564685329909000416627294748816229147858919894019268208328561016271543489030880670304990163614728264696226438704315272862981379398323039643253568852316224219760276293476067517472116585120111045935624039313669111182967389948809324469616483337963528909192389457084605166915883372068970527467098520342465434672825630254529041172365850677141209636412125755083392108931714052913628227718293624055780798181173861355750294252652201697212334830895520184466071156545622765964971716303912566374957264136884246131974302207805798463114388972245351402218807682173276604496717746916732476680406839739043629618980016923350928918389045837466594890210710160976532292924351877444830480373844282647449521529228349069280602267922020434221342556170435149411807868920368320833024596747309537863657344297183237024851229497668050987400319740205980820440345676733878082277001073545438614300847147898194476265077816507763140530059013437032783602721412894756166824383766803867033027757236735515630966142573797185664136916128983191428633392159907591561698820211202461163210919643732667557454701152894431297166767864571306661925873924675358553314107467951336102984440181695837985371583782774264443680825041929163252424333146914838503640099947688188204345429068854410799464349059256881403696343225131794404664843425935290079447027090863931886599565673887682314198763750834588201497602491861388722455363737442212157178462700536964843372086052633504740608801244817006388764924848502310935796937386614050177824052430730529176579660115309678991980519949546245250117463571964348796198315801359082377597099556271964816953499694908391322643249255302154927498368267753787352290148536585254987068940211349304425106808097275515025272814266532524236120811713068813206629337037284074964214019781062997037358904695592817450241753498574895791326135225444604567170892236310391873419898907526478165610935573406090399129696166124192664463830067510233177333864864097391003229743459216180228423286197599296135365076030828776630488057104909418101581977844238293272568824833937279869063926977621558897298446196901981555896560148034127946880611818663729899912052944570229376634977000756549335866590349895633272007906614626408359552346585520754858308931970193061026344074891387724255117900886378959276837794928432459873471566311146257061992967705195103874911344026572405051003902451011468220141508757634690423933326910240709383641635976397833423144056789423044359804585251807320934989912716645033625840431798867328886793189612721825978316754083050596243049194219592333147158740386121806018444730489364445593164762613423053026674419568222047499280072613394796844641761265495271092372203752831936425607901312338242218205720571413570184582777045948548599386578396677902477096627035763254849144958521442904640457715365583008220913287486210820920267630620885251965450531808930601986260877999409320400127764770892444976567167572200075028368669058273545977426368165291068042756689828023061858862317623874606430319933230483814426548823358817291728966512390498348939909142631572077089876831340056477914691771701032518118030594874044048096712628774217877393496274865636932478794894611450452834646301724864695850325277919033342639361247120300256013256156548373181149601329362251844523506950910165300971745497342714519379493874980941278729821553469307136605345666778628627738595412778062793103921136792920744968972778226937486307952584932056838964727588617454561275730883104893238206146157257518850795350898601783051395935064141010023920323949835077964763885441337447811490507329086897953869718856858459083105135890807680034066639615494463873351737478778223238476564998228929402544944808148050139291685908217664369630655473874126828269854149091988833996801983648549848634083150714335181514917341079901971346804647062139080761482788951847363314219158290968533712023656500313882705173940155815093756321259212123996028084407584070628527795301361240567429409865900364537574689728840313068127246376200871937322557490837911649583881740756941658346295194986406878399925545858046323400010954319643909902194554754647328953077018451699706334001534546178538439119290553732064700108791907507894248990987291661560294674759749831464727243234747819087222702314008166274839189787945171638619730789559580524818634417368100460660024142254871473773089518319961144158106548663685330296579753685044933194160030428787272956659439253543115456458275686281024646091127321875270940053985690588432767418242616770697617460458219904878876507677461960114236836426173736788085238009572578193639399161781972204679371878862403392448145698451226204233327272477716089613586029035235618733223919352992723189527616125427171047474314775028630611981645278034036100968928098742416549425540695632084978049429385260756750402996716701398139070976956770359007188440026766145884388974897692175559889835518414320828892673466598734667964280716754182800313152198559449853852580922554468356366964429467036126921690388385997276898089710738478221045292504424171373363182156283738185469429339663403679001329078190049799381509257583107936637209488863997021799263917487377132317127235513532809083506062326748984588168926673923605315716654563417553130144289720566393673127574822063491934882069973460130497034549229140398655572947183485645229049442420847915898373015570077686511510329109962157860358257109299858379360950171974179420174887422606544166357456048061949578892108453560251601417269732101563646485208445978983008402060561091435533575235028708346350287727618522213656230494949167565373960971042083534535851145677171062978019920215223857901073338749743159919431840663049039826914694541044238842521730980715467311561724808059880088889223036818185346649651887744038567867897273026149944666347379336637903187220171611711583898529037403696481546199125714854922332466671389853102091438097013713987061294516395824940902929992721911511725287984383396591755059017469951116232454473927152345615403107384399322859774812869656150877152887727081330767591436174400864875753653931179712573442703222534849977432414143924382209397434376359546484459191502284857816880236077346775929120523586246110048860770032640564927943424604185775404543713363592815867425900205220110822108339149881797397627894577150367711911753831399528688208924871274421217300210647887791412795124348339154941218431609922621443411110244075082599488329014974272233971906004369460833091143430386923106578052052498701171467274501742504494308448158899124192185517996015028067721063277219420118856097863327453033521054137313894238680944286887832122262353756483591353676852976591248147334902969214101404396877871690543987557765289190488319173264854663436271601778815894385354322878379994521782687512093336876089380848164377566226908676844227370433072315409178040845403197276501915584838581675128335496779904083439209075175873098071493570655005509609601411538355761684251789376771786311485263406708796940233784053313972053530084927129618423521165398587457880724795581809137969667068750925107608806002380396778006535867607355946495092794587207815745123117304300908155675947012621760246008661469864406357557858394774002733550435799728094415056010175362924376612722844577161673905562379166075929807222607863599269881128024636204171530837086809242755173775634151800179027533986993464489818203280049474675355907317952370605478430688927005275383368978926101099006314017252267110033838007864731465338536498518428767369021556808565549038604259301772380703594508858789307248980224101352453853681442038576022794482624887887807424771126467047836250820307885008645574655958261227340758768662962473708228254566263160642237699218637154416990608363864742272713914430600071460279758824582794739580091294996248670983579084336080586053406630534027574211746849691632428836164346105351863039842387083505722543276978761621200986566326180414779162768843699212900470734727571356931541862548459095888837866292889733612346457698866603943348699559111311289193348554152408508837016041163314147337751573433826884647151158479750563071706486301843845449937078169080664774958007720754261127774499833551664086662212099018326850182463903566262651745650957122501770591574174079840836322328864468354860070418432193265085669619488842501038838335131930403209354552480208677553327875726732109751548402327823692986221253795438496766903667132931981580148622421035659803815147950292082685450776984433057309415247115288484583002770542456661509851757323007713975423828325271391119912678165669859756824243278692557526488107063439211851173930991554330562956289317787425576215312745948232966455472383441341113475958156309717346991436834301201167244830762073010546563645187703499772026891468088415099826092889563578239318264013579704834063160164255743770275692666577861453820614316082553912184254711439660825202882168784579349791373610065458525084164588509211840433402549867390965200054345842621017562111234412249665807695642528037048675041722869390178609719052339619504618362803437341493859049039771458423903030937517705449846548829542012118792582720003016373613313653053705570283770896885698362973449500605857500879860178898121928701072418108780850199135650951818895032641827418581427885416286375371953545056444519859349726708618385074820494695103618729691359682828672128255145080761926421216975612150917243969968928839177620167435874340723325896747344358670001667744216028814281290124959631332140798216236599328362607579033994034555723872465639531655271985688615348359581142134828387606036857922119296933907937890516429289284383467517205613908767508626730191072965969951422181802504213880648521004018876392527324512734778200297766591198526004513128994897021413611519074236818591884489990708672172544132844848273329299166696325994712311991708587961935731561647128397853361642795883127611056025942140594439520883125050642419325107445970011685765613226066595961334018867200630731663422430474931159426753004785067108191675159025868205267542781824674606155560090343328395775946839633498322466927351512247836739102152820178324704798190311613130325152647726405862477567966711351275219687219337007774517479818323339695568760676368118111517425392267562073737695474020692305128219575448797977995180772918736852391742273272186799326431640136989858152540637822890560776292698487586878952508350414547064913676420097198650838258908589619119104908558673946196810058669443421051604915863349292909600250109706488611580670914380938981385209073943243877736781660229126816893751613342264369325011191023536057454639431519910638566581750644596250391982858977925370012879976303780413765809869040213273365805289701119267666181760641873528431669769771952859646199473159440350495462653196451191587741510492619508215514528423255187415664347410101659978069744342964940468980143313344649806799977431834020669932588106782430163086142848137020037507098889193783691883441381162465601305752264748157662701242938153331115209455252935270253716135963690004556749997164212063122231902488086075725946411814097713341419038327425283799901137452855991302023342736565480153114522123839452508038773105923536526715103296694412535036617095381697436919159484962475729645692702422203875827717831977123144955124304672022620793957952682741880849852925968098429153582463353554381969375712734456311576001429955949437676502627576797734665175218025553937581995187716477151871964323624148229052303867533164131341971530679350487970334058986627408606681988911368032037382755071438135589273756342392873945048372944242424450920181429879147937628808667788160172708589920043777488906844600517692939130755128893240704912368742489087736062960235469391647612696408183661706880225841874332346236244153871742232493255791550448223892022810485337386907434597213513234397989557593540001376207075913791736302029530867155807733391411003772421108617101042516960784637891597584459433679414956959640036721370963303478228827148604107914689688004899504525859950101027772121090972766891820279235106566385627593145367233641644503959448577292896998813117350927599169570107753126922103900005807539844605421051284347383944802935957888919602955233546823605246184882850812611290383715922275700948631828316624499103864686011852307669496908275906449765556358424847862779683952775239013017359058123269411282848055642664972711244391227264281303010610402921730454183463184626330231431781954568046217538658854495026520947881391005477263443377796685460158131948020086533970057517276361924067467575801240014794516037323230037548051842792020965044576698867673253047250099786076052863016248679033493265104966062026267773686692206786743046888260746195065018305379748484412811920522329743481925059178810391837190879794692635152777125371989275753421023096197432501254726971565511748967957875557216140151794983819359275174751478677420846115832643149047993674023725456308074936484746257015116078489232413773471337996368012242747088390993224563062812340512423108399373133026016203001786924595923847489579201823524877315014694125972708106973207256904002046517551644436574434211907892998136496206499100406688090291423781807619407067424790422425286086614754911961023125595647967417641748335790260147175181020813414488311436101257543147505736240922184693426315439452288237369434625221259215183704897708466410007605298642530677804643913909884660377799725642275971635957206932190397277835492786808678573205950118190412829085101103759809307969347340221819228318816702448827780152094396177918964978724213565697479143162915003037684848841466712707472890614052146114207947616754039956269070731765035651835750518270961131011276233298482721092364360696548047448986758902501125089012047567638138265583707222441513282802481959855584611072459692731377158279896154803087790907396994578252150122402668487903946919265860328272757377167544685776123684417815090628748627667078383270122755332775966293343628643869212557737174270537167496398687708803888010790947049376851723209338063401833940030308724717151331131544214627931116935650331685192780258263493643892137832691946487291310917654967466516914253714437619500289390657521882057099446928951281180949506339498886171690085179358811487856317767321275369199191193363245355685196206417595684363570279578649370859973655641859223359157078951843473069955736153126726039587662350863332984705771103731009670150838978383768159256372067521415526149269446438870813491805171505143387889972699074260998964687699717770917845481304872635972250086068367445263907091872310016303642138201665459276706904493604560041654454331425672204768466186016836756619340809396326938883464611468780174585347623322612410753988201367715299260661550493249223422634662912409017501979439851124652721606128617298129928788096787285941736488983254632447103725087661509674613294612808584465362837212705841366288334100474039534548395908397823096600672664781928701167545110182297094703432203388677711008215489286203366920331058350049855848616190674162917921543245568958672770532264542630220575817147398456782793285893876167615297769956317974940271791990472420302110958102160460033008233456474950294548539177055704795951419995649808128588108464240419303270910183195570427872102378809804364341776365952707649163249811276657248912489585993276802527753740340635660491079336717210814898215350876320387363623907057636685553996017604619453119378868273543482030207905270850424965762082791678174766846444495035018173032101399989787497657904555897988034510392584011663407655347504150772714906613834754288711288180279940131484862391394561616838617050596432670933903559933193192706866114267401449364134144488741365578798836686192864507090415360387376439847989042331570667174577978376866211200436110631903761289832962745589231789952779955420303417206987682443368058157347086552434487786915732297800255030714955360997723439752057151891736690946636161268513162114392397401847295178650664018198484458681546451274531902274139710624166879004706870688178708575832503172467975469251964126876318678030037797726404830060175844720127144730237143766527145997644262152610467952850511394394934559196811125400756453625611134042893591224573034295470532678687899033364815425675174614850412382532692100644571140408597269462339393028660348884527785747473399654275250593307800232073170177049859387682861744311657450430455667337278830321241879534257221218657154127476916491870657051058350845371562914810016810070132039596422873536954363989661630787051124237179512103547751415490440990598108252265995541047772662558183754276331149685976848952904874779097388456627255221697218257292916109692428875700274344052317113576379723828418608939686144575846619267789346408337021820419065828900431405628877272490808040522009541080125912472269233406196507243850380532369849914082096450097472587166765545008721030559029748735099198364783335572787206122430681938686794608215561852650984378202354167867273473398250725026925553313956863454968750026025579783299377726314678060014835814128691509850191291642184369747213567501345542992510332474523532362865582217339781759175327921184190607257014825965536634181820059023543245586508590598005845671315443071202080760645308479093482419523636264602780914120838761785428891006381413402150129226085479448761655280274006993985528891394382658416324546186564940599308646835215421613351968525666667723132021199785530311226483476713286473550102838592222284378289886643883823682719496278462123241167949307522314813825082580888091639807449311418618639941321124432228439813169467899711381042037908388239479848981059863981797609146787078273363659843024953627208234302571374710389714451536738377600270013374380732387705196785917756516733488148726737821735938954930303315174684741081291416117238140712616209611874981348520865087921308656280413482664436750854076621524232831194911592161545366601004617906001059293403840546304811707804691874236133336450797268786893656678145693128018971427050667791080435503846336019826774064188697784163288927140310988871554438482819120097702017550659318874288412908103152208848576804627780718786132415622073405560602530857185849730464765254666924670368639407430566906060165219130524186986820250563740173556055966444444763525325097813807168410709549940488966322669013266546161685556553063619262895919076950221559605397422290831737001695335311666568485971275330370344389279128382858294294427123259090986975364413263635938402355321442864232979033608020972240098620027309570395614508015639666397382504485002996674544959037423061474604796804612396993414478594837198501248151830242875924200211874707211238654973493323285032236986352117724948089457239092690064248477309068236929404370921333642437345956743905632627018309634262575879839208619462266779021787916107223388213609891695212846947921624423400622796059040847805816949030282941325360646070069428666839183561999567874617314998824622918463851076571106065561040888440067919089410262660242914628550643642827401355670801095343561969541194407778396210933692970952297382343267675773867758305957391855292703065636715251808562070927902485675978750201181156264619788402493483573192450074272496018783860744010407075202110032103000277157169906668453938996882870840538737883606804465415453591342875773305523809627920001563821916974183359049047998180716997401643890498886809415169391299932960837041165770158988106477744732733032657312812239680900442624418713420974427868525332923021315384799966780579494748299680630569481580332526078594394598713675911797251707894844345259829014543288940554696066857596847449144014242275547311984536583371253541311797137575122608310923537040995892594380818167252258093466993954566434821944744209149035878231760266581660480525561780331372753834735229158225285628859603788530647030635680917125448739709913065057499568544845889439509552162042509249674228718565160626161550375879055639389683942074942751050594894574220556405480146788983327895948685015223712546358487221436237904642805606938170993693227967778499287750254240608872453529319084819938320207327552723215834064870677027345090089813263372615913934350237271394164362098656553999012484394250315248630192584383460062332611197478501660191533007152959207914072422887902661020708378025527425082094347084531078054690632334337237981809460380101161980261584124547100705780623083135639041445646578968985412284179999357006607304912406517396289659896988385887687818842799435631033219979551575769510808517509912861056223433682345279483647752524444263764363734729592118569192374135403442510193303074879290071308972087779578311356984552671942422663153689554218682340104620876606383685168089871175943677096455129642024315236725055914710033110159104761737092246729869109156972024762014897230529395921264225081957675044360124017362020035235304205696261125118361891318289651604605158004603746754536570642771674858137796255415422536487296705125467214801385406728928579561919955467374358596430214936287599980012570722235795382697632990938750088182668977896267196423251887333633022868987683832348036110223871072745777943051688297269439618334758949057567532700339877797794722280755949491500008751920733413396427291882990638359467780441616999152716932116150278488873709132935846935634090226803128884900096795724397592422624376351462293222887997435383060736173423755341342295836726966355176976394485735718615753914503176898532808182210498065307157182871210851252074857938031969778960544685173553580092362762602970644016683642782109402358886520607791264028565709351797700436140386941575836160310996531593660426596400389194286382611818120247736992938962303391271292135251382507906342669135836450466759783553262651081378723665124381296967428409081676402851765386069723749459804753657776068943156738991384470599729967388232906623241840146953035501229373231505807477633288724027406816970352450806621659595630511273619870883488235392160539101309051076723542424356611086819882380171097320657570411899646790116404596433104122995241095209582698265573509355725574330761927060848384431632664874065173654119826046466766822670925092375625458790482975066524294804909340218242643650351063338215734608682637161702263237215148644704648040003636227692952582551857411655297287529868000825395415012683769142827453109312143813171183211524697792222036882262322438990371587580960148123462841877317404690192110542120662695272736659851609282367389598717401334445853436357105435813836425671045761032487631240535871246719253686125030627664190206208088072948189635868007323202720658974723640251472559225741507821402710980803319513794431163218413373887353131856047175626140170436954295782109836808807662445854953609442576222263231730800324604390808881147183570493134765417552427925476615170060785642344155098608385820398572012276136413582962105661285635552235620806852477993738461676462616619649601554773275880035389658861803348330958149298381891216020085576252482143053614190088587891768309977342121607058890222155050072665446401306756431837159949587778079029297186697340953249655936357919135222942226602469753170007938349002712898637128601640504645026958275581218201499081765945085924161100749198766708023980432476776577611730260912972391842189203170270900349090984164571181684339526675860060404438703975018968111117823008688347664980954514994737606036454499660062925085109091127644726027736621618905850791846166252171735794469366679889354426748941638414940742107149107864273200625580707877880298126530423873748946552520406301568705485923731115599059852894424447362949922134189545065071101411492537909057468778245170321749871031740777601716203405750271277186197442565106621785114505858739946877894682215300357380300699760551998144231404190630285764175865057209495136311845976342817443023213449796808042542691280089592330252062322103732023855255259556483647569855552793234392208749050700536957851064572926650084189696464606449549656481406292125630388732105860258526029705407340697641291552838708846819754578066512741977100518785473201716469524301679833698489742203633665301152750146693555087945315909213278215193812773618432066167496711844484987351056483252793715563918728184535570408493337805949037291614649014937893746031855838215879603128327799406955908685603824785158190961006836152596437943732317830770899291565441880095262588168904597101704736016040088698669654375675690775294757896075708807681944078741948804867879110228849060389868160904998686739102704275092727293015691829834275865870159178626478640231642946270359506577490568623697939413372581479512703533467514762299707605581231091098812414673530762478974814703202996087307557058875742770816864229283126692770037109868286412900448211337162123611781334279950473958532741550483834381318821651742367244910754463844250999863576573248754056213987877763674636433802434964663908686758890523735487453576052042519450345810839146473907047339219605770099910369734464725819736473324691753325049593870150890143353867672517425943025336752275235188527630881669355506311218784808972194591180297693233914356764365618413322011480382619098688662874890662156818023336799324933978168247384375859209601266596229764520346423770324686819445029042664417570252115221478971663408570577061736902494239716045522176129366879328284726337293697209060071050102241173890699935808072896282437350510459284643560930415410824912042370259690474375800086699128049049444253914059179881210699729805873024040176866553022026002989704778162154370428220553908785644183245991225205990195514602032919117679966729992969380148136963398985507487032341314627591553951929344744756866705210570296777447197336249882974365581518110769200725620759477216209487721606102013855945515877405891626802224977041243528898011777629338873633537581648244126911283844345556332518770026272972272030925233601499151670308215576854825207823405148644472058067817018228320311152369910415976725382906636722732833769351472873431446024745113504407588211133848321751948916179095383318539624355558252983697472343494951690330128385175673038040782849197653085359283353459029507860219676091959714163047993216008407940193578868961046506947907295430325006897925543676549070461008468969145379831005189982113785595547171265610146120795248834458145772747548608768546899523421682580460880448853318399240190363287299904715371908250711392606674630736065661240307267753608881909086987852820127226778356357296916542125396706930371006056162454025574049764668247190871549606455196314956844856725148767774590352570450472012985663973031362347806270038185481976493991543966350875925208666597278850980656490886313467677265442305209956515192188330930970188524403072499540379921102807616084865053899821104650082986170713428332297390578544978173905426766072516114516443649329431080205642135792277657429237459142788262842229977028996935247313912575203324613380923771248492019194165457361038407653070457912717765467288378454848491387970208948175371924779292356467905095980902749147472757875491553621387026361319730199746301775097683564479695258196063669774549257452965326089974898852636723807098023083393803183217582284738802949015826011484973831755812257272038175938941891807330813581505173800816599562655330652874666115505353705054640692367596496424917381171111734759667957534497368811435995380282017572854501206767374151037471562864169939642330121933795181370892225246643283667066451625439817501595165920082955417148126692354668131507576882623208078613665772138814975787804611133118226624865350964445474844772593166350232700694344996935386376374744983745609813622240489473254093932143384680172733256950280130216512043305282904465016428031701716342735648639259675797500050834953451323584630440540841454815581396277524447159879064715849404197118649036637298798867986030173090960577480707240835826912261229455809766441316537967530953663323352277333589301645145422999362661399241718362626197904815072187951603081841772868123027623830367056317712389788497265613947713605814191156602000755675580836974977303635010909514569922962496213023621284363010800062989298390560809274033579281560144899399488961534223061074001464675480347694573757089052563892446360356340463111592678208054000936090564235562342531418817978050072588209403233681461382591548278595273589642806447506767243099421237889310761662720591802731749529774404180971317193954282588265446105043026852108751597275971771879922082171750020789913911590059832583225725973821171302780621114566085294021326863842413762477090739217063782945436903782387572902925192843853448220210355135146336348191901244054157093794316102042687633444967272397984616324524716721564280869667803977248131210093249972647195100187410221531137998195056561062343897306723220719667913242994506350357322043874414139422208182069768777533934267753931794224382671220039959787018635159242962492930079355265378854048669032754998729441782125030785087139139752224831230309697798413822940821271935621679529143778399870475409190353309515801816058188123129232652955109124084425478505019961386249721382405983977791595605179198555958175031926301931296040150579895309084038480570809531074206487824624276745966968516641335436555530087767850561705761185312069109967402041572735545143071212673925409470196310087481781986655970258216559581441576761087792139919963031945294036025890890462678198687478506785778671662487784844185813940742938502223203909367156958148384602322016722781367886597754463915607201550799016385502434972891288665390865609903520764079244596204290285065334633057958822238047088742552179200190677629147539085933708547287585324719967659898712554207682425951116894943460700688746032414097698999062707086216017078683311666317666036500473771957018268640286250165049964568253663299014185632168128029030896446988765353994006928086663751882004690197015607959177240277295384567677774464280431688039636587949598590515238941952597467206761966829564457895566320237314506639490703218059703066362423405106186897659500872839825059625585346548872942702025566303809792672622696450245844309383989882236348215515602771409319352817471738637459874028469727001395354666074292756340298005511045317106748941912728728376579114741664081362283883459219450648671640050083032481471266551686239020803123560259564818115930968357176538721537846256719421700106415063962954139327774883875089088074216893252679547820771209959936345530643111135114891618380383940400851955232931110299909675218626694032125586307796672635420002228137892558080994650062060742690100971044019152794898555936633262122996305533137474156986963383941700935295108076493262183537145812777109779116953018553246678185219750455546828007412968652914436741009759885777813824574709280308057587989391883676178694470488066402307482484585441442695803916017406544332320380631962828444278248821284928408140469943693139642387140743938404285178060790568776476624868281929373160602324113974999384198747435288831628181911689995091851616541436179620160590852472673269271746398492885651755793704844321455439720490101922479106073048701282770677806139656872445664920151956713942023335088710005021008141535881282246841815416197370043978535181518664464417714379210125346032007404126282901203946077712353376566160769427869813033339106616433939539229848615832611172730993406182880191798664117346532095176402796224516648029040537316517174108335853590376630165211998069987308202945480783612987248557402745552365971976892159494383428836057085705799595450080560402012737053454330809394768761619427993343306386579364565942776812229212694265823169624440110937036574470598417081929975437498352045780860188862516415837530551592305633681640380421316577073613976084940798028049703005193207078932720427194000597483954483029176116802337081843087142723560888379495477444751117894486039505879795663915911764185853900515177433860465147632444802588829537790292036855050881703511240902834769358317123243078013126795752568200185017443563796051673877996907051895801799644227427561796059911197474495608661957771554570252460202984992832931177688010833241799098993693127254481558101477483661397861381879912367607421903053824302159238482707029815857133983470122642885106469323914619986247089069458962417435032974416266923508513473860657063009397303338855480442090562491655652598470635468334471705488475727910259409805098092999772161643459075263144930928439536728026699307577091311910404577792027252525083692156908721876874629462392522517111490067952654292839830969220423796261393023212490508649581880149696882728988672087782478693258750949547797984147110231236676698981215899629087617477903299899199335349537823418935964217164364931808498046798159978936165029202565560468330498219703130838485896662485354754109280929456846534520544345469578781552426094083898303707478065165256255375509642256966624590602259247675381254438996887573295661198184853217212059817525624928074560108583802374656163525777662592935436228692157114707059420166647538543897298682213545198264140805068385707745678236104530886865647560355706526729423300859188736254435222031913661420794899071330636629088081905709123719470477373272231706324422094727025412375188149637710876183543234242966170131751164200828081259556266033727718994409061843510531340146840003997050966214832404435914087449359348840627570127488373961966478864893374174414050757365722929425953601642622133225236934636779777033576046928549380612910978811517914281534326706224781418661734497540028661734080355239362243613632228695333676217184409719112165627155094413046078856596315419506560391336240205155166175234607603065892164238330502110078907489112821246737758787991223274222002281697950772638185861762910442946264820509502098089457655737451349676016848278087456603917366634028141236479684636978082678630895133775560182898733261323466376112987026134356622865220344137919795899827885718249735563499947297759612205936262577053723439757814313864675757677697108486415184453621718190231046637706873880369411947945133942791938159309806235439106599356897108837065301916444484663640036386040728237368917827992728955511965665534275288666871517575641161269444672194368395069366311718860803529579346810178955085143129567858925981029680174648036572888861943227496489627119411622047600699069217719146102230092364445345613422463594197627155167421692211725880778981738237560222897420242184033553873955559907918044787482110543155108537022297201862755590714810799363810456034519952047648581019247101748039266199545077826662429100022543773753739154661922745984731872987500610052544706865527243063228705930619805375718335894924431406052558624079269409279139887854459575893947538007794025946924783254692699543451051195776713552988144145729474496870522240066066744905469147999693179755505747948078111727360233053913082136532727513264433884393440916478854637125299555995678148650780528680256829143414014912566206276638054290969861821901125161376745297789023191516365351212157794364222353030923975948093904619321179323234589291683769954552444132248117030274278479558027749089003408676353016108226130732111606132800232926513628753448889253394713368755395678477857635853974334656803453916368015419599187123748429522941489170426290775227437750689783985806013604101778853343232198305917352801041757560883074501650151586300618242635781530686194967450986857706621279168517065052835381345644342547353252657116625432433635576463569309516624529397739376615176556745524960849083457284577319150329822589219496987187203927660863866157168846447242996778681917288717975261907858240264426407021395631587114345385656096044376721793990232381175318519178848945247149552552636657899916388996522334720072357458051333298773059175979824833409672756418142171291131780609351839616176972012665726942184593553525516928474330048440177923814007135669297105989422228298638461203426801930717154300627278873390959907838486958924779770261000861467670424164757061898887764058119594911969687990335946818852394242737320461192212725560496636113711611212685362561319990946564014956627909245695535550879393057716101121982528191598431707856454731520685488751998504153253836043604498541619565652548675328922709798466319200126013614565807696568716703349712892495103041127929327469271452272487093365242313630045786257038411146899800761485155335468492919209694345803055612856620504854377181510261615456518518811179351572810193687110726124158834750100576759629892771305614371295341643846811865824533691602008952264842795194000238009890165627821718488413522695039424144449144224159943720405745367742055983556817394955387526926189640084432778053117155888011162662880235160351080782804535091793533368723211419234245280520786668123836865515620470395244928641234789889617781343802530052572434218893840603752599691688811007390887835584905099327240288281677025846808406072766769629640532790743124914864297488557991701719628089740655715191345671072193513904346144071844642904349720203445727307676145008166714116768270671752996697698668984692405260757806164652185991417678219381846794740360541062154603243205582739492733057647879799486254236512688759050378098512400757426372560662354728455369292529373892357792179808492008945161973907199748633144170057022463313359653059779413686913927361238101354127323734047047272325252893641949137380095768121683356358853443156290415057886899547474952491105724312636001041316985146748305336195794298964833367148985268837560328156097486730653089864255214057834544707424102237768331261824505517591983924114774060584948482041668565374232869715998326124937141029113480102620528577785268016564470828585491538131481001602550496063118377287230890351601481476281235398000609804698535529933065505621070820411377985290576967608102031662821422853190845234914606190717783796755976321560411355480110408516048773209342132486911528494239346929266383464857655923835557162876382275079802940673325925619675559008568385096978662825482835958939791629282165775875973584562242538592614960652834574454519001087620932046669277063554166467934721511823943414692236765981220998578665880247000004397098465360812026244737589939281640949629945779169248831098521665846946981772504855792594109859307161015443325674631443632088926469598026743003332561930860044079182694648235574022621147385791540944620667712809124898022240792122831334666054001003874654942810021403436450404455217228471887294869662435485056194202769221596527393530377620754154364428535219790265257269674581349403621924661060459344682859816668289102791152556215180782434154437124110403850666653428863887768875045912732111594873281116746344064400953072898314151439374805318273699044497728929070442868695188907053859368635142917164939384486488999067862192826942796472076230178011609446569338182958958405808644317484873735410755578677551064761812592956801661925336061912943254157422892281039540199135553377233342576397251116099119509615342186407520236792332878994069250888684552150749309202743057708942327425636189100455256649310198645367917441513561565726950924550536500760345279588963164785338747649307784095409363195155338585128637662583501268346725858011227956278018961510433898439828320481490535833310773889610246670717458039099404815992445450280216141584436232202184032416972691274771754760468789112310438867731884049023639797938177948741140426158929457056748278888492410033317531954183012425932672678203014735579250087650692794295776424202220134330382176598797523748995768467243475784681714975678731017251954474347856350832904317695179226595522149989135498216036935402502352794785324832642543431854142914743727215541319399959468547889644505291642665828061677837170749797712365099520086528275769864163623668104262270344633956130271419309830213388161947904399049942926883533067153495327158937929729038063633807730728141116020316317550226844679589351990986651254127069770688338704419483580304057072263841095956973442361780362778720977273250991996911117172400960438008848584694265231245586177737641604268910546014531165323878290672410409345199857139270157213264753912433884006858755910898968154809726346520120149666610480884138368418660185671868595125030065120241875848210870981814770027143472203820788467396036654844082837000544182462625164005451298713065138097387033985958877508673276852255184943110589047089816551733430890821232001456596459715633911303902335975787051833535686861065530648886192858265701297009412850899484794294695295333111401227768645576794083421320160742505074692042592275254488778676426098035052435721110668586294414075403410039483314757786408475845179654717499525293350557802447774264309151325178223789062532250645858854829522346958392976081997952414195698560946343180022373944629024292414965688576483255874680453508371342115171159643261506834146094302470047453692724759051556445635392726645805534067593365068519485103232928903397337313498668162480415834313887905773167936048993854391413284632630414881155914278675203349101775924692318444439140946004757971111544985980591191029546747387226980312567723152283167338230470439651565572583490488364043053159652496082835535414460380543029739771785571516922342200689755651238747218561340890494950897485741216627169626164983208869994034510391345853746334786634900297291277714479563615925135805588910411042241567490368156828750952248639777888885264483982806308765751536003831839398896190999036848196308490237413128642036917529109792483587022739279452126864011859571182831329017087993563612427538311930452984821201772067913521345708858879324947996553956956510400631957007016842358408912771191772950820963549500862193220535013751071297908397423294286527525733568025632912034116853677670554196997543549052282344632285018324301045257877240879098382316800602367845466911483117404051874474251337302049788482378931659523288935867903617440661548350732989217220132163072463753264921891914756399993968691891114349200466617099871236415768230717043243616487186904555671701704205853874734896489131607888806473314709473144979276382332396354179795826406315914765000724607030903206082474355461480000904113849389429471073985969304542359660231600389609392749954979834177194496607705789957519844283072249657809678421942229331394367393783892628455634338169360270007291131515740254567716085796293220715081254748871664679884465964655200537825416190982680164981684388899175106870800624921464185973905230091138600634747877609493169949303275004648240159138422802690152515753523698567124410552192617045983941326007415518222665420113319849223548721576176843647659005812950168077048802433157014189148074281065256073361951843029748735028388424762983750727617207422781519074881608395933619463541785487121007924299472465573134594317957003463754089130005988840969515685346835992738029747759601164648576456936685795173493619915483548932138528765117849037116459045369479298140090413296211196797487227002587801101092505191819334346239468047805703260816967733114451919876621736574028424283530647626924700445726505447549612044962025289088948568687712049234478149173640521333831645559038811763319229622892384634070389298650228529807860899558074501592567288587874093108527470905575998033598988777226735466447052703512184223960538965141799411776707845671864871180615615966731406725690608425828023234304157314968957995251908046511567016991015190336987443121860684733173079496737540398812312645278340161255663065051315429939332142587023344949510877552277458881664882248404745870170401111719512351641747792810289035564587801710205490438302388708019700386862341193087818096590074870278134048574963900963446590848731220156594300791058942860267319908344324010582211854279119302976685238906899462497598467011715061393408406638359264212048727221661882182990524238674354398122928660424139935858411479721209310666129806690835028321063796737513767996287175057497608866075672090247934795072066942197528540753860022878220020222944534077201718828110571154578491223148935345920729722315403526476629805830927141712470265403100097310404579476193152901308040587186037969601512471196532140058596350656953646837297063549172295583512718623766753979592923726998859179487469350212556911507449348900994165687460311833154183373462713680520038686543320222788287466574494910614432423264028685504907511549025283634231495587903212498406565412210750914477329463439586024647505579453991331737219610992445535742169071857854660776991326268153904021221328228747068525993450415662761987738419364091216672314733428546617205822541001354744681945279732303038158306327600558864461712867138656652906942853145095721426487008184891347744847966348075804071900527496780497579332792909200957476865657612207687394774422945063910298824005010829502228812522456309156035117746365577476240992879006784773604828585713450813450541568240229727240251878784590373146496602427182040487457657228563051385164094319400911805152280217914858142106000274200264967679818594764059669866547909132212543842609696063022074680085804411831500226984888613907538829261174061795079851821874062073590293301161444928742744479603483521702845295095557070970023426860808939692280947442878059067877546133164889324487337493768750739323690406269490690983839962752931541559694257713467755221613782984727741358375737105688822350765655062023796394478140872614540344493369760404013004227181936918884808148810854714626529210588332030617037267877552286361579408070282689321138375649508962371101051208083779648835876101748332336933344912332692078493690778725418435102581190021641653857012705600364799987506437099993981777728178508949594181911453571578421008195766715294259673109502361425110132432803672625533607059118408951873312052559396226477525121281521656380448113611184163791754299811600924440448697775666221385663759376867812733692477482390093424675497549875326884128738404178342172128630454351304218484392623493104397349281342336951801165086669979695764655395455132553300980888587830096088381343582616298122692714202898458629786880076492245445418490545088653508609868271198808031041871584177596605490451245596561382981165108644740200334562443658932481249474854053351218842846142491255297706604730380902439197887506833672358998185376436741144846178003072902566626153970705572286307974648611957421113723434172326472913623973979219676201293904539988928232006784421781879430387472377640500178507639109143322590705178015926519654212915149121184760255615872043818330268777499532483372298854310441290965282945831365940725151903368395091650332987260261184827454636504364608044092125550314816477427252580612723491501268051806405130432481033204714598238289378628183763336519690032675014314483414878674259074676284057424992126970125104815800087846231925198406834153822567401318573949660203578293300121661836562087309408131337636780446807426534309509989383287589389807386225689117030330456788520373964341579079327098355779401540325957564358577683962732560386663745338739494380228941398392212019136610748856310057752808976840799808363107367361236171665778937706010265114150950680282104198323238561977022820485362240430441915259726682742444932108868453635258099489970663923375786806988317998943156243358428423370176729048183943382035987813765053856757314795424702597211974895748901744986981670435612237112505645895860153694803815167021335570347941936229005150639694525141591716383881628648953369795220283810656848136828985685626548264193500663190062083248446413326188833232159223880592601489986764144229224303830254276133006183412363202425773322069218461423171880790257216644263593052490782928950034099567698758491017579987119815039680153061186268139290993444272301210926651837267936790764015146925750808095478340680740755669648565029243232725607898374979492632462777658250002902002606405591514419843002913277829759522462010772399334479946679501988754107849143552288263350784824600805921474027106416183273675503492005028199329674695941356279711885546784506292281050596654166247377623540763813650365603635039759338467578083557267269787922170108709014146100904405669705364080784250772943312025954322555414827686896588642677363268220011800447396143058880576811479438885491818579149976281245526883237801965753757614715076814165261943442613868575404155019302426946536933007545366017519382167741014085088410159213203149065941536451981523067545914858101910404999196818130626804987174211830819316694861191908958996216176642797781386156438195850917103597542890739915244381782623971727974758217726148383473171769033711872612623667782057631854325550734469994180411562574904645983616818228002046364108543375703395480610509244442831080101215506376366625997897118604129186227529957418165725075814504741490472655998942360063619775524684832020309643249005943646385199426097737690641811180648026426540990812979308761281846231663557571679805337143725313486924219943113900257316935241450605116440980197959210120840371182343857975376185306580647276239336616648448540958320150236821655054689517793801734896806823036668087114514970473159410135588773209291787542993658273781864632912198234332862209260219380535055055354363218143846575423911172809966873692672962605769870210618344603177718093545684386036123702660890352430134675590166285873026230197591507720387727273877681213356739298637477874177961517837973016759772905185826104538814318731791935677757807756435571135163946259835338423444676307662515328329029542039901538139832123121767545511317110690340713360691276373105160391663102090799280789995959674651100071703449535322742781709063006788880866030370397040834023936024887806825435487104347538983865478695044010402493424672486115467204394759222846584319623274082986051951677546246833263403467468191725917796623146215598809224628222223669023283388306441292918096629078324170821009915613697510515137869657370847704462630770818717332186044155141594704651957033606475601689079889747085709403148876986679404438854559987361178258365713217413741219436518875974739686903604156327449250548465354275966192775703723043678271272386446895493425298175693924719025792903789084901573285372618948054947292963149375788639895571784175979680577659075161447390175599299954441614909922428312264647888175632825189063046649879901246628481769651117407754966659016421670838501491330766643589281635821842749051705064652832396978992608228846329239664501114387615821600817684837840326451334135161279432645795165816387058272890042086972131452106582451543594130540829005076967298200570380816258626617739715145477635259421384555614608230934423313913267837380107327885594006784285686237431502073644355548944909803461316782465382592693817103591176342459747525972192968952068318676454140722437337395295353197166126123873973967361992685644037051443688646590739687268304432430181849111392556797451225329754431385607416410838360968754335708486444715775042035891124192396902932183907078320322874469491892605827636555959443215725405947607462197255200311408493998580893929214323105527809194505362946121916952703671643823374494153613926031603701061852564790548683004606463535825762779258136718169981264736520803718062580715904603270025026809440704872889153117285176747773266986359526218338720538289379939307313507078145657774187646363793992588071856176191142882960690805455118596234860947249390603651399905496234707936798006925371672065751846695660968255102981649824178863469397827906135350625974927136072904001106338297722835314332376842276170397021202938676374848078575978168281999831175806269987398877506047306261264211956968138969979889488979778775524310881605846268228765212295808210064988454734001258366387689209827242175275719351238602358633155982557802509768445015976897372165006638647473129689598484790950078431925251029333797417878602889282922072100218749227903662063004318658406475360001373093482062864375802702371379999798534572484613193609767759298222187862623821741904205011211133713532924318830626157556683704205519847647137626912334415874792614037765242172696832923671874573025392175928219624870621069609352707267594226145439393489695828924290519843656040881347471753617421311041859389523097924787051390703195521691606416975568292908113170303450539789237408800922281914784305339300970364094025802861199052334834611444180799482806512884628229298744745672986668255168416644054737417141048374585830412443511600916366943902154409512313311177644345631343452949179085629235236520911589216813467263157735292122102957980390425641612387134218347380136106703367197515337092313065547835479710211252511494400265039915443678911946116711897885232960835270832939916211737228350795486785533499825143124380290490015319010798225346697727613106408217126268976921221473438389893719818754270858800522200141578129392546247360964310097665752385289871038388688665031701026837552539116816456140296013759855448807245681778073427334599153688458627224410422779447551984887382616715250487463018176581376439697032827352911000644845609126813681737150252241585309987166429528491428404801717748836201680274664082178692060064094799792799397768816121480979440597490657542000460315418998989162589237184711802962371029702534613869315353614809879598679665657395411186836723281460298059639273483579880694271301297322747064380601341965105467038600835295943802957411415285013958749540746983300074291349933137119233303706531476023084037291879363252341307293741900972377874317992696759292513380990097255382368302541905243072573210466648945672106696768864766868007253938086862148665785801860112660335394744760907318305270199288375095792605457028874871359373024950129761297464458861395415597690361728509657025986930087139881929010790508234943410899666080966133395039892281982317742862429353070770656241454186038110830370630285997919683703165063486386931847939262252828250653457872127277099180154383376642240777052356946441382060495434762409389949786388116269651854085300574048558355359630452845662109553076726035385165988846605596322164742540179208718086014200654826764295031703956821585219714395840277149202689978069644594972703276783234671530264427808084690471743631495684034401128641624483230475578854741115354536617267506903436767945722936859343876127350181736088449802856548482130879134309517723276135621037598711999011755330066587569005424496349327184894982622843806249447566930590616999735503142895594887677933274932343532504380693636334784885527913803686411860716426957839949300893968815221582692217772360449740488301599214515036738258296679063807789970303535760165254011208183757086674134897627900923536881934451637959978501379917481446758196995894405896439001216583061426637420852381549829065472527574612130903683999897030725445547685398942547548267374732092506488581145774251873577855422323112615914996843350192540825755170205081913481068228837596142624319913182441618763181984146645250563029457516791319715285040895510038536573410525276104230370601038807461602610652183072984928517677835430687360274150821014375218986781002274685500730251834136550464013604402754384255460096603571319717003575876448951718015944306071841073298049833967162900516352571776461584479504535463592424062025400866707122649281775702412251185663729059289981503461144039571523117256502021538039491272171797193593802491853011501404485707788790855097674833315320680613580668940820800660138500130174235791188526969317339075857723142490794990982385785436683048372815944191109505844841718089131532646670390335640500927312927110190331573785212519041122465206772887852748221565661645772510683317260455793756057227050208260791670704406601908219790082891214635841536310956911578593787727126222382516014621459581113352674580789689872317546630103188173799288785380258700574259962661081758406214138174144588256480451660195383690021226453578967945533424366588907195905003375761566328402531426478407511381957136568960717595544104146944882536617348935927298158385633836414216001158592345139562447701367593442154824610689639683778962861425969394410070655711842818057968755379775826499930780247094407347437214789012801532359033990256331248630805239512172922706327813442915062972394194753815378342489756755831201952332816627407020430698596868553102876443875127013413868322631819392653879868282992415481755319150234033231767286956864635891941994729735457335687102277674434799880044349740136346253600939545583956546940279634599787164002818761436878336425798371221547090600840610026753829575339630225281621484010117984353272327172398425943185900610265084589027725455861961998784815495632983518461290501478334090193066763831379324426081183603168165830656157628486710825865715678619667931148673183150597872256797213326386382365917308431748471591750040579139529663289878527161538593447336031120035899299155400216111355025899327181565576463833105881847196381581216533112488377498611238570485182761572489434064645838001652485806686909341914300496169047679151905264814275589145092438187570908409582461868034606408407861274399104472840890891146391963241641316496562455941014961919607854031303621059870796665301740366517875340996327287786295653908103943497956612329865316227427791514790110187192682565940272570427969193192015554748678417831975800215756064971522121410589751502042713667209383159192674198919569842137747256407606867048337389779865472697680225063850841199510457865005419838606504725532985771078974288455592302343720199057188713740212769947557622712162718286030890631093375936479857827443779539210481684014949347074824897527244792189484352965888702092082064855844306741435166509475746293184995876630635078778773184525674060348425263283327793833329314649961940141760719942571717171996029136013493635586952366820638217872658571490069381645339463146789654681121291628939832254754032201075032523673964889780657437093033704094074227494689614347066127714361426879837440713927539270026554575518832260991967345721792418480475354822489030836760428304619013696857158273133283878172260529035650805176927806224823087116349664692196535337919314441347644598123172308609458969024935201790500672561407768074204538857468206573275658591333174746267506073100331242047383149764464103542563741310416691553346954213992056858140473431480736255423612630344849759425484572352477887648417960519412000314935696491699674384473361631192758804562393342043861397618584324422068489024177311809756770597681996267692154614615893453341261367310675268109302133482817276654997090766195625102563399234320505744699580695518443010105585935381669502424086672160090839643412519679980036680427197345505905595006378275806130156209672321599747499608291827494521948714733821551019228829147789058153676279605720171542293587234159496147107023610226218771725835391337861191414365133746272853917933158200876001931480130062741292967350291868128045026021791464656833061130581482263331360701535012703478950668128947015005428843386523969058392348936730714292780912681538675594157073077333230148281595856718653811419888775131610928173231510103244755150357315059965150682547377417750401142099265842289859410142218941408466180455254682472565650751957748408870770766869753045051575050226688232958367044308385363609943417763607252961176700902546466680481432924187103796101508530541432433070592906796569232210287511565825371487297593610702691245408587995611261068147887332071702773638408325851996902432224715338709700653632233506946577531775946830807279267423477855765893484514584315952697710064989429723780540339144969099626936267185249864570555808295238685920643524455795428862066635106414641859008713137652908176791610252694451057702350467682061631826321834222637111048059107738913745970405666665645075031087176810302451901742277026631151687586488857422996346798449846997991452698639940870873429195338998378863878544133398322819451434601752500811916352546971268655559534412671304670424681886607833445472192886575330556207270674870236314662537214739447426663510108026242516863089023305070325051743653199993061278971908035761315428285399023863604073232449236121484124205335524753377848973189418407113287245207985350200021502428513844687248415446091549149983111415829206703356884284202906343110064488996909122202131809857635895283422647390619782594120811450401127987831054398855754662080700287706790715273309071479979296397266919826315451252713085296957140795552037875455140853677701367268053477288371040669814277918869878972934690515543841196273985748013633785372639239749837735832220257369278167577043178143180717468203330931221405347425036723958995266233991249587023778480076955167979859067610723280078719076441307012217670558738994262512854728082061147074209674101853935622809158281197990777537539450698171480430555522542039316454696185791148422359456919941216659420148782398658154084158066518351379261371983919631355578010934986250588392010076137127894590548963913949350597067219481657289319551056073875268597753460668523761972525127600104264921451302368148637219744290248313117751847656184711132808430549652338932010292326271559529334774212294409900562341696701718974020580679695927136219841838705601382447367394293443835760946464747883700124557741934893913695766218213271182956298579652792799502803594553745084094824122442602239882429034729485838798940355562043410558880597882590368869080852357777794972444527875778483192240785401957014657989141627288651621562810346301348268857864399111702003498003242856554059949761286745766060474875945049994953140650565201257733495597567270976247176351201249218423420382863218588886024270091232019421510466575073565117406298585985969091939475309562996761415110285606809751423669665380939127828477137842466920917670757887316226976270095420888411878177766231197501659593985762976634141163194336415380928681111394574655801603026512652035160421529881676628678860520161193419695513705202960812178083925075121787494557353328606250652834577700331884179308030259858138203974432841082349093025800946891128741537270963488185446432471936372558850137810226830429627431531397105039249360385737953134808288841295085346000269084008329949400557635090927738273004453696918412724512766398254835556460652464719083332981607265358948685181805189308535424183105933775137535934695335819244144543443644329084331945957957683116238148927422892385389427199256089897738219628939118625700366655456105376939006395493132568488177209456411125191549064680430805221987320989956612704973062148519419343975018048439303025679096834343117066456409613314904166146379625460346851276089941065705690363209310982917698867240289427352744368578894918178138431512512986560063948268146850070383371786237740997237033883357270189629380077798463605041652993306613693109873005343674810890166690917186301387869448038753647123274017151643693340454091399746558921067468238104575622282320955332798847479278136261946390797995581681476634339515065007932304080054222140352909224685098631444612741087898805993411200798842390035439059168833730610647219191151011794502676383697665223843965001982661561825192537728315138735973030028876755126226196749766031546107589657450274466006804284584872398517631112234466820431009882977546964258264096796705233715419454532591850696164724419637041817057414792490674299234687116833070957541698840853351044119525052196147614521830536422426517388591356113345826193593340372244768540822596619946254215898298372908772765983255562900242108352342146016037463162830047151544775322865454284155806922205562278908272400392275796929631285960273182274469711580544561647115903458591788692838895836246165561423699804577714649540312655169278897061843835989262498066763406175355243347366296200984367790225646892063914818047392140749711342689743436440697815572311475834309214771059538660137276726863058193476866088726302726978309967074056619396548191774955539681411661507222409917667958211766001219242349108067268728881145293450566900825989493724511240208304705163553149078553803979167936611633418395188474130714520705718809805677841193423273151753678370289457562755235440108667692476326509587478981719654471573432601940056941749544461263866033011467810188270876735041466342993971143731510463248717628743787286376242385165440846658379344509687985895504624668216581191377928382872430670730743697245396364650753568102546042062220111573785889321391462995383341036766055080298151862061140560414522311080647919510993272482677831688643855769815250536968123536068381426783558748068089688033791206733581094506395395366533740293265924201997058563767290344396781239537596944166054032049114890266432118500051314671731355078176777823487857309868500799740313904273928384126938300046949847960378957951574875682841981541373757582445342007925347808915030386101522428893789713795133335165570008380677293765752843057758741191444060301928832074162011035059702605570795113324438559054841302971602195016252785958261554217214039719028441285254833931774494796594921334678853894306280686551249172985221086198098064872959494655362866405373040137769258881381008823893432545726658429078685069786177887820770870367476782435637702489836247899786292832732054074475360636821494606401948768893873171460081004741508393336620487517381781052824334509305323265629736190936267381779108925198966459532779730274909282065265832496623084877299207677940408476869064356005636717323962139306493693970646080994744531048342295047715284514236560630217026155406533066823205645692510551281511912342328650413598905246842270448898446207555978489476400524002278398618047702731643746226876263661789594250169482259753438370932408414911485540536827256942828927025275257343254124748046633029732285727021895183744473678746196655721210566711323622117885661700583811692451896722972314229689585328213875618992995099393415159392816715310158896694301509743467081360293667036488138901027315947317285228476967300729994143290400492108204741241568591393205859606983785626521334397439191707577377249087914733066864850164099999495822190857661811483694142689124139210203321207207988386358905368045859412827141896598810375632071524781672492471983200062485691923046095117231722207252971453672321320362853029868809490762496675504949023392741217512652341829924285361342298102733900134824988263835647620347498480396371934730583763825220569960172924756519180908102265196916648748181019370232419202759639709098453417277839593603629409839321573992102486585327689601542780110267468059176697770219068841238482297229129851964165723640911089669561328273298863859585147558852708368235403158795516693631431988162016609990907454252721600149205962355806038656238732797450298164544670324747989346283023646295479605837628040890098336245970421986673356506786855093287641502171865220139117640006618861225910436221453106159142540262374119064439938408399375045242899341782386131409731281253218660764529741832721247053713861653167454221373585073770262446882645768097883131921315312633467201919530630838507866728329478532470191887081992361885763847077152381233932052401800732148605850498897370189531754158487307574499213281281440975287779873928938513953465111350308174878421510440811371914799707312852070623237377140105158901563121028801727402618649730537378479159377502785900734369675169342389372871545846660472220617719769136517872142571730866370131884804257407804354026941812929854503809341449244935802552249389255735262341521269485266268551934181954854732916498712197078542796917920136302232290395530552020358742056072968423243749113702810550457721808173576759805542974121272308030074103480425617993410600526726924947577887806113097412073414423953393729326988412668767840760145745118125680588405371703570206868525254792181717657691365143722592739413133040018188238967962126047463205535473787467887970687458087523848029816647167834675420903501485986776015586317224452120338562188945148275439135107611187817367129633446455381833751427816051289512876957138329711322835513908662042202074504298612357320085581909987771574446950125518638875147974154572931244586607449231456209333620851962128029897373584662412459029982413405892277563941942915467686223650997362424684414930224583059210884840078348009282790073131215496106162125616259348603372063115767007671964747737395655483379757418624316679932264449035191026142565444157770368837733680187603067135222579577770020847544329867997088477865147362878291645822574162706368124963171078907190804589916156019716719579960454166636674280343110111297804372263404301500625380584573175279851044278633713833213984598475185513133263161628223537998835681692168067887108788168001806519749282877573173391749238635423763610875963067392473238434397152890886206889795022145906492426692631879993786724415104584734730505951795090892830891097455569137247074366403451663404889868424993383742833710654742469564912581094332224626337914877605823423936407406782049186325730349742986119412081930837501089607899268006704817127230853957016650926041469650199596492964503890302722290190229679648371441695713695105640573679784086835219121880995423033939554351960692904266316836618218839803647158743855963056720766183610858055948296920363025870855700488837123720163248412599030977724657885717341418895362730259512541559235991321610729422358623742579116383633149261728670277457654909329206575758846934664553350636442495672946852054012415286616719000453106140007916693188590412115600780474747670738958232392592601726547020313664966613845670105277910448865250373802475918236881789968786025056878163659216397084612037184676826767362057239140115591985246866623983252611297266490245635897454612427540910480212442681523124779099039083030178029290110572413570651601602729005923450946742547078887062205070349342019238316073452293954980016441940650327057329982761974854367157857689438148646124948656895798895701682474832642391108438248500993035217232996555275882213877857100562434622928349733835117583370470306620920422117237228139056266709150945348697352527789947778423639097161534653425170440795508785763134435794523618782250173754443245911289946770469029776434694365924523926741484502279691059314402028857631954291690197091879590852450484567560058725211519060997746678600525791934176711482870657861434476169308009964691106526300770058624274264560444053105102789501987521198365918972640092225344633086765951328964291817009950569079893719500847606761355908471731922443975773436590025496584318488732498107548501396822063118810911180652148708296272531644863231736704249289004761873067585874353052764613138229535209605690304383012209030174390947341212929564119235009908545537966000599636200846511784733292074084661876753629125074738394761490957899304543414078999498407778261987639429162686506565252475413837609211505606321605116941017630647761308766720254595525778822417024517535487412292111033328102518711864604545578414416260838495448249196854648852472248496411597551394289725927013454542278116341891522479636278341299021636825337123200676199651141424677038520001990045182277834600339817025675356821178113298089078823807808495572911038865102654439263509300301446032115790461847288166847782137098320357886667535954617517622244022129146623449973554773732788337432671033465371037484026909918903524386686136361891573227513417497462758508514582677792611204722717426998694448051943752860739940966252210696363501788569677177670979619721132368910141584089058219083903413814720488164703202161279740424358813616390927328775159088756527611107989577551502856353761009518908293584817987806696881148326229384805041203419106788268945949430403318606980706396455470977369197452534622863827244661987965522302281058756488709998143343997286876269182979582008606231595637961556860350406699289781042661127078097712445184550978874096614943522747502662632379930916223320160177714017278640567084365044930289824209639783495478746660544684599631921849428281899895294101449885283293246898634579299441954315039206939745822336830980152753952442236185113834806106782513369624824647749956609730149968252004860546486333221711654436272885838487180569387518957149793785685878025431212832874720882105631243617496358909549024051483191399122218942265915064225073511212184393686603841398078268348478230718365654959395156223822590833531516391958671624985532179701727725807509664642772694430967542636758462856258243075387369904903596089368250186735896801325820847770354010176702504325773016513389624386078395444682625291652920170302797290388956478151795908573129312300364933388986748895725625586422535742080456265223765294929798251494249003015685059816721768145289866718121212393600827924722451478554438076448108335967652576576136103311341512700296534138764966726516024793199416285447651592936797113085575821975212337750582310938198331127334294272148323630043880585803708134643979118274063469178253026100760410790038857064060792400213474498041977792234231095477348103177612554340434581960417402228545062473116153402432926419238129828296662479937716746559055620937817743906968903627079154569283696563862985174574830649390281802143167864048906229861668247245718359637570830382548173862635884345191087502969956020198328581534930115258789531257931670112769182380689754850283715432096873051375508795113934646504486895647264189536400442984599021713902950377556328818815633760875530911418357325876086846259900019161614774944869904440299336551533617623515399536243521019591983302589804712862571909179215833156676645439629598101847822462028514894453724211570733469564838170027186609188016997784504355538449322949418002758122610424725719582802672705034198613365531804426525241515395497820267716840252906493090876474366879585334770625736131450124527386291060326274566842035697102664172107462491664200700586614864160093940851857710715277770320585999944725776592842299856395920514480590395235929616451906264602878856816747724695117989935232367587790164468445707816380595865633500340063221737164113876383889760026805208308435064053120516510644601885658251749839085888833384043096721766285744757943736663912880806233675876009689241761628352064470008746227027985212327479931896684006957869965899570262987387358674511475238757723100761977085057287242387686252234387555710150728712741451539053756448466572244017849765123940063928168992150728831205877336869165308534153643894233890331637370836765962315431988561123901279177051996772344160168640706778755272493522160415768283695094015910855563720122575276521741888169145733774077742460451116345852269415311861365008528830053744377937007679673111675893138382161207685324920421662541116995407249992573600818260642093642971406390617121402869779252731762006270605060046095164352616363424091392700420876922456402749892573107293840033585384358415703999021781198690383731707913911323130596353803924989860949011913483373020981353680999670070658853263830338903085194975540575864960764545245295131539064643257034507930461466588516815938114756395686628530902277427846633665556138189173515581812514677964482533158047567583527948433290497118105587975855167602803645449915279168408989380491111134667360829830338725843027768930341887589345059906568225471523800814470828523344181903480680797367659200241526349789796652097042454294678447743703899731244596529475484537782819563318557086635700691150931355656768611708365178656606023366384727211328392769282124531831713855584626944833085273045270061407594383312778924388372845895090066635147381036769064964116334034350508186099446049683937393964871884774213235963382336811772031935995135778669517940167620730809219715796342196296449891993877930322349366613653587372562029542966835476059272031451721706349012614377325434015414811886836774824840866151505992174300637017604925261760192392883684726499070888562415355329197265806371728096486399731520352256961527370987813503788451109701228486857298939768413476688748966165653386877426879883364179563687802102108267536028180704794106789487327932415846138758351807888041024990311406245802616828643114346490793670209134879475112853484954197001184870410116007489153134182496964764737338771336325490070947781306540008970860492472348407234594070939985012425906864019165056627537298521972007912454315783070782891232601373078091460017078483054161206212024455938251648289528731329665923814116105461262979706903468999205068844817354519754778928887433933699690511632817667301495714909407497288277580981040129840721158877054099079591086108983575641291397279242393686435915549896813906129797825183895533750211074100187862265079774941827874474932920876872206270906140874678322266385247950903056667556295143188859475241037787753884468562688557110514550959218485701115558109352975072541341830926240431373503575181315114005365414285424557866535465071012003957788581011354585098914477031168228870460540378377830300273040878357551430461396144746556234613598287743000311673882299445607816090378118361695587929227468108611617264029110178215992308746227180765477079288042296395735493068333850509781108449398222210455259265339412354585754386780230317884909578996452109910075973923744522934015662632236566670910015986494961065975035169576708092966829207980669334728914451653182295148975154491146973006321792698560104947298278057226782534084691307829917508769174841120978586088176465694439741206272788972128676466613935820028548245856150645586472254218959496255587130428552935968060094558373426763347418187331782893875813018982360116797194894683109488895177658364244513947217652201694437448537617724707788053341148849885150234832763059175898636061388244819878829519181900565913059360691979828652422885877058490858077905917926763098213956323321372750763204038880716546876380716259358355690230770628514334019359800392530908590988552878194472183357234883308559859325960464928848842555573231044344879068882410864127663236695406127234930008588473909730087567671514133298666209594484827089567233895828469179593393339434730881582046221065033006250101323820405788036029139525365241263259314522586499064771367922633392536318529863685541478632543626847231465286431930823083194889070797233125120349265772723690294630340976521662060149090072580871587991926553452406061226096504951735723116503263609513464960287867550130318698569506341545148917530417613502830305002931475830189572610527442249973759663904971640374304024199859924132145589066046087523478299544627459665309642299549002750204921952547662117761770519238734903298313642830404272970924860215789472002186316593787536595926814011889857119737382903456448641625497618674668536100669455450560056148047868452878376324539645953277290541801133325336805726107827492057526102750889584353163884674906550599900584164386758918792442527137779911764514746411631710682720541070415362726171006144649818890847404762174806308515756130562276029832228568802061149491654654760162173290684479218491077601580086415174078501045281080179328789934651841009723047067728416213182370139087071273110329013548634498300327177317610254629306075393684489418283036412792702643147280438181685604400189534355288351266926020996611963530283882986457879619816484135979717115868276494281553285647187428970002478825404324396404416509010848790612131387023203497536092075886906312886815166513842490243445739618225187615341157734725835645813793796009628854195961744089891128705922507205722984453293849580086794758415416873814011970745443593219643337646170921138104953313621028034374713689276629553547740693293934422942628398424014525797994035960253340284967289717893157195305809148998479476856676777945772579406461192100714690100527803955309021297238939523148178526703913910252019443709291606506848207508043486187519493845162939526211701411737147932794970971451271505878738488287711436591192955380268756045916757238290976765273717085562210493200841908383772181841807590900380212515453212612364647935895781274280725698815741515913988016176588672436818986290007239462139655121482181807820064033159404927433778723780264999015837838833820865324501641322989794562196568195065450419765874323714142302848771972053608273821334098380759403290143772765314431982014480459983311167737523610264190380609666739158357355615763356316360267226930939661409538743953593944046672347990092037555506171478272961006820632593021940468792402215949810829329704009049842071308098431922090530040315988365361933440396383946602421153733200353857335518998898482074283280993315268727826136243426726797200173372423609600906984669768162789536780960132736565595245615702217133723984147847701479650798744752885186500311687136367510146151727060390016392291473866936789401158822815638616886161210361488647141263457558889933961235491682038931920255131913348079169937676312354507976499406400196763927972287933346882231481261511782020343327024631267374419155562231685194446302568287605708450185579916766494083342923132306664645946673854622388559179520113581427784979806195890333895175148515095978767913035182545555743015938318673626280504262477780818034287511310479733430208769545701033685674866111495817917983902729961932683315611118185830248244001078973123152379910735231688679088172644405599206227660583247997260336010741795926552114841300604509659009554710299033185851613947454738227830020395831892891274786753353359252251948966943845455301078851931440239054680506498931091847637091297393763906870399246193315643461863143964152461679111913705373410901831641994823458042985168677460833418727579894176591583646053927317569040384317261373857963631328749438938085921226430053475301308437600473517958467988238781201369558044738183680701897952239973454012306715914885062956462046772464278482035281443204802293041373104057599559038637535760753095201558627019086701075530144438739895575898262076177274985051481452842359826116145483456944550721985022391970740909559510654580518783286627694299877112375167201216171254858261378186031704251192722850527199314025909841490850765511853839576259976510014676704894038064072862896605306469080154054800967502025049335686610295119205528336026051620853807916629141929091609126564331286048464576963949247448435879560502769495086104185149575888725554405203028263388859547998277526443505291274503348451611150773758513467879731378687158667995906217166586184972259263073201436112721895125488348109856299040063621553804637943088103479921542466416155373745687315567156432556869138422554703895533805760169549052288269776886260679813100227920300581249898348876843462664393105911669726381667387698156498553226400423600748235834287500049316743571377002752437537420380241831587029738350419983633059491194946276222016425486620343836556540737714475523382925656102369355802049642751236668474555915395837785149560769365350328346766076255189666653770568923516444115349703498166026322029210730339490478437793899732063985692969617149978097460141766590566974523628829484211437478141053013976304827354934928512420135640513530780500782516384571676170550688625953063541105865783848571489140044498685348090025915205757278680068870144827727531337417820591420729340510036688393788520091427651567791963908293111135621328443211951568250000883885095110436294695925291354780644652786575003635237813347251597081029083293192283691295939566339692958198066129162536178957248188363061293027390333828374099978188054184659154822869325697964801120237806466535066148522572646519658792026048985280943078879314429767091308256558793647605785500539697765152416414817550834938004450204766993577205638112192753340468044233145308484962972783568468523172229550020746488671263992294726257087306792245278569145458300073593778721294951652639283893006877005409804556383240494734764101326814157599767894674380554410705334714175719312728131177846550752472523605175467304833060204841181592336149445132292403548295173191947146826874338318891205994412475225171917626941912509695185761837815419376720018803898592070119841462764500905782208040633337000330622519026127290713084458599869188520094252214222469100347389225609011963312459486062123057481187607561262035259818417261998776277806894967055380135494110546540162751536597790499646532175163870439642481908516228892837919004851004468357399178591750705092441694295040324565072852301963135728239253290356080416914519176340023723212277883248149206570673479830319279580836380209485743445975745673683711684655187012785426571599571969289691894748231890096548927357070193946306992585065296994079332928399093594709370499169160364773720668011754918915487050283821671550912308071350307120392836308884962541459877171296384789060558114522429585272636954279636122745210443140667394618742272254249833984986839544130868573498266046462374524161626699951085244174303873095392219107794336588141713440560613783975208399534540832199923572621294191029004333680332237054368196079551721923536895520529754658163751304807352367799335314536178740854152945911482270751737046088402520487772698943088866196587159258694186404093198228396270447490870248334929489592202221873336106971486583920360459010041280908645026796182839619323380142515300266550397473430323237611047955077958400179392414958379895601196182452447630173475884705367949445863556967493971729106691200869584905326820386126214084513086407919742993306227606385455372253972132732774890978134575168717994124865902185005964742998977066491692870156638234334332454279300489171998798532862869988231010191612897964338140102578650211903997409205340285211403436403170515814280759117003684617000276770526728997592850321459525280222238641808356570751343012753189182756358616228160684395646864705123946613611226088498165227886119761272493191432807649658626393276046123600971159851438109739980313436407758914121923497760092583350187949059889881871743310731476565160384016931967324715650167687223602976680124705589981437298851929582137444419646644551970051840657561425535196452166360369990122838018256895761066038884038895562777857123562926363761378775574228464301990600107945766530250391428753158131559566327640257585102300181478353513761661497087840173385766070525719314014395069368345963967800760767164834962390607169309996699792997973917772048337776695892453896096331851206270172355971752944613170671949255452070407573229428950708411038064522139061945562951085750855138037843708167202624798251762530490082847974899214494226226528186918378422778053143766405777224520812553378714904959985574440179950968423708529114362296360986455047304656825896695467191754038254416914890419455853812002222385072086318413305124256672259370785979394009167053075979039824937515128710061981931466762432706111053244461894698852776118184932034378149523293640658014264369226983668100701428882460444245364620713078454018809700522507998052870451714339518254086887208891674341109507030123147198194817625877821375791723447132459967619658246827853222429850810328051937905560588500594812349616272473917296037355287992808038742499276643275381441067123146805743962967071108712494473818435186166755736730260960655722770131380844721896588576371259863302303693394125182393564477450380962290360964573057549265236209872931202247869446406287878292945683429547728223026223512224722951408911300492364112292670711849967144643490286811675566337963465525327902279467355631642972854617920122238729428729057365272840365054882261552915656564240566145861989212969241005935893608303553203659103981370916060990100254095014640795337617690245621385299709307939223780105482509251244018419974625858234597972784347676899850239526699235854359055437600153557589115693957124335627213937061633364290967837218927682199831541252104851615542259747511577452773255162328454478695614236495937413887687865235836070436323522162905244773839030064176386015898713597300080917625243107338235730947963083835197112787889321536192892692829726957824877365647925689128940186781891476084569658141693582077152091345233694146002992943344306390436945930434185894169576387525186238068408449443359675369032572593868840033321455669267379482881978813940165905371522094618176901238245740250812311930952308332786057787683938492529065840787388449916281500032126648660007625141092376976747283177514261069659468200637027297359094957582637019172936397584918673436678195443615920502555527862523436128199739952471292673096688881837003408436497035213092296440772614879172789878464757496895918993366493900205510208484758472764298557434154814322171862482668163296279752888448408577741243165614997609767086794519866428553448133447584440516983859967814368453603708448374214686123450587783237033800707882612177931372200066069474008072638800070195966316609655733923488909512223312420442918380896731528361775305004185986154726644648839336338128077225111056898017283027509226370972433265150325747263351869357719745512469730035734426881631572532913774686982429618772789267568891114983103650266742291030513781206598855579674226173855144209631604622766115704663691492598342561391010431020122863952663852836412786905623479327058345916645218426245790856819093556690764000484941747978881230088548781332693324312273546265690155076450343490438443468829447659707948823001687091458303315283507331666301146146425676311615360583096965621224569526202046852614066569529024066998123528244985993828478149327815454411919733992846727276149780551770675204381121425420046660696401593593243502702002116629290567828934620731153512191590476406859267352812791431895512797532285344711300173441922115361792335481452784554163069136456684738507436058062657290630105167154234258153243032656166729712475254681054395373725651074653481884277014939005246178846208465404475220344434160820061332317622131533738826505053965293405334632038727570512293561275332208422284774334989502848264485136412675376269505529606457648812099374122025152282382751345807555904107981461277759439182271012106824934048838189554145321828114000391959470665127973921228563163505809209634444363102040567242692385503539283175858328637373641437426864555297073855226411272438102330448680639517876059961333761356120478271550853002241733572508559152591198258047805434531054508522739710490147707008717325566888131454563355088943506573375041035610169729637426379766405918761107517274797835038854047007272105583666103801551420209108244724061229496427191915325552600398634958561814051508040168758179600007770937573354587332647009789063415212807301964021061578441240503955587738253008599195838096981130345695605612560903684014980258150435576699094226097201965171513602706739169615678957051065920009985925668123738706368785879635957155592400119570496507160515273509302073795399650955401448929962730628713032118033622806703381943720669920008536965978916638047693686876894530320355213828515451125676989784481187219450435673548295703026379956640704393809719258663295267564269254333836180660234990253313831921635146685574920873696685516923651546493222376992054371270001300010893674745225935735476763883921905051562499595347773841786345355536604078613541141165774158799015856950070971955062804454048265359415011861035511047159481639824212003509610775163358812167153903942570302655585575672516944226485631796858461682160710887446843016405731250576599306672692064930350275120447733838856356735960143963990981045409515099121482048101233622788687436387304527015089114191626740460973870092877685567729018531623271938672992929803773568439213723141714023050074109466547917880474071464700070485945300518182643591632656559594163141568201802491428676967549178629492797197504206976887993646649593177744043253468169254665148426527341275666427438918643106953485699644473089365993752186923387602501071378657160684460869030471745253736267020965997610911655025411194461382936871221783499977603406040417890215324355481213236098094269824106418883135447098164975466213066502668255478729162762451395339651244775180265337438093804286039433497630901902326663229635121251297979019917818175277140425891433302069987808475366322142601564495897096633232459223958583962247222557267895629489162390386407821539923521834707768146298323376200476022523495664630229228064215739089313419755674961204529546836565561822474318516859710387953147545097002684958951363471339846329061168148441592788499127049888775598186596480658305352541178406872183484846894835131362381055864991229072247134767856422311606944752230282072590334560104624230653854684558774741001990049431447451821592423810503964516868373249612420096742133655475966127755809565250540653697222331742823293898757330995941598124529384226040271951845186907043750864759231539836999410237802359343807702628101606561509503253810481260571311946449895865372690112396636021907543764707931049407407544991129543493237869045564515680899558480518595270088344190602433243195851731672302958215199804230815383403467544111196052543212307968003565299917559921807908217980097354699463123745463758292888882545486398533283154356620782082700206089243755641370680060956414651739740460991898805253154781967328831940735993442241588944124477980550114189335389946964883189024917299081482719489056621598541816042228023388745552149390075111343218914778608923340774216540584512569994105670938129200679938010787151965355588982018942070602557379923180989195535315555352693639489267199573701896649568265632974859726615201184288331213818750872556089229853269812446101712255173753691762762038758963560780791155799130638588730282437024149398257151988026825072452143365790580267674712048788363399032849607882375104895167523881876611002325897023201469509683351106112118179040304055921498652666911386945710701914847431945687268835932546195751129621613388230826141649647825250030844152123808424272542051985919479985380281915248917659717146481854394166665055231455274703558783164102542642947000690931285975691277739249426301708182978428451655126366711816514417752832835370715341284156887196134293936982436158471012038954905123113637511962178065411996646395915211577444995064745305020892249265890040078345090094514100749266642485432636493737952395032392010921317652726665147240411434471966012050639539852980727873423668068741622536453882728916250715244991505194877209185228297305874388702060679635450422440520671291831653488140225445423303241992402066201362784776199622705900769476166337931836457594308064506870272006495034332795082463710570990367228449374128482512469409405530066719019469688114450651113253195597369858379662159648909598834028887044122084655327903943971982548268322129953619447153276199788149890341501788078837485238576159056185333896777864372509911446607351930834239878543366418917496113060420454394911162823399425848278748856745626046507142032736839683970750407552690621218880768676332867721183127124097416513258086377836390583333947956224473680465020771875058476894246316981867620648619803806877659913393434866133384006942534617153660383467266551505482014084561907109382704257319107610592795163492392870006070950837863886283437118623195860814978744126448201123840261575659433600310999687175890305138662272738668699582033423313072220181147268538755634111585349504322740212538525508087097033866860600955609343443641960915972391773634444462149737360156234151538622025201568224615620599483734248690817591117753367770448272885955611977654112573888042523097327704077919508824968314402631380357976445657428472904157073514110580052477485592602516723574312972785334331095154495887144222303236199880315321360812479970236219580017841273232933029815194757271052054424310952734856249309946240038832869064777717259781657965946293279288634713936881273331012540834158866864891728324762718444251206782621462103007541688292415698298902256888377346027680239789518743371101555016026507560912903167097382927267268599956918256580343489801423915812152489247512567907501695980498069274433601865125505694624059964160621941541923797323624538864756236733662652344435983098103277643719243070746816373926625623844165272444484808977139484834321410078248271460946574830140206389637410172333760597838079711234565664530816788007053601851069956012744585488876454211520794180697953849259180796857954410285322444655520252091835078892928395407974718805508049410072334908860641791550484142892401206286010967712050969205117316061619092585183867038878165812811178328902538586159286153875718103819166919974233234236884760659894972779487512346250460535643102605227452775905579440081157143771074638083175147158600778341458348618915880466956446020177395627335168253151587871967235179681623364669136597746252448291846106946299725309294976648220497363226143083103448590397115994833367280748212288794624672904283717960074521270387656601577316958376033942265314314054034855631197847713929589421011484022112302638577984212094099810266308800280805142033370386024674707709455655823911740624389335918287983356628403368062465213662019097775437254817154865275361714959169028426849295612806259614142355550013337284907946589675164355971889065584421085209846241227201074216579911304930638727283094409187483282337325297782078356205181099102956272398661580318490061107867461814484088019511134192006135444765092557295679382753479228175705241686691663288973965695176308194883756697066719913111986137762111293289294530756440041762039267080795133722031115319960699176373502385291686841513917743590228272101390365025725306128654810742330889737655007987729067392974184268110970972667913272117170768933962842449248547934577533781282438226586390792850079980075334447454485572236203851781029359399105766429272855127007866853760557353440472970572416816612245639658172464300153705735619253026355017525702929156292664014319388528917518217363614607158864194282767100180950490927239733016078681875113170300351607216574804940232214923718223143750532143262880020467027748728803400319589785950886386647044173081973484932039073413451561464204078962189159323949243779841950498898061500960597164082373561501535704923237539258684022982041474088700114560124594907922910656281722460233984351405206836472949698070148059218087152521906516138403941815798121023932215236005576549000295590252879080306209425672373186760592569960608705127884315097619965282070299181052461118028838148314571134541540180965017076133059277744734742212841882734438035118814525357310312271604604651853583099228081378253597711020667454896477928569942354571458963855825242874097931427051008712926606603377919376332538664507434754379958074818895802951781277659660552545569166675485159045724491051466117494274553474353632012929592119682954010286123467740765456646472405501381567752068182189593654586437964996420829947537537849322327595979491320758588716916267780697857227629466953261901851402075742897353245679988646716283122752362786309918378704042697464297358523018980299180164185554545812150161781677306224405860786033574670019704658953310635416898711834201088054069787542533195933474992733695390911975202899817038294213437889568142238204081964593109685299562282718356450416787727919848069285793979160434783385531539532486699932068160077144750096335400783255281998412544498441139660064280576371592826136123134510429533989143444984103951240925351811810394130481262924289959349430581565993402783378550488465256119811899554710598036925189540530242783361354105590265081389297734182979066311708245636148989470476154047949686552185014037266172455304630214235938528735886683248803001575897667385581044121093827575392378783957969085888650319361213121879489518047318406751153148793989412863584120754162941010780840605975137974548738129912444282781406994233918398550057644365390009660178157979454065017781138891126447848313244593236970545068579111825214743383353201158425660755081996011816202744503085635504061731370087120964053985792074630424213614674467153198802153673776177901803241285590653377279630197599364036252626931115018202879268517309821834067700964249499560171636600608411731368480094991751258611531225319664235342008696889551606002349939154880943391480546685726743217151457119538289776457703291598212089477576452405293691949019625599627166695303035212917440183595356602507696226281737741895961246918963772382689605284194628753518447794263421181300802733709235639535350300709608751392353963954641933179546386880410824772175857584282944465328761865718183532180304654709986826279822395175988789874783006151940134296262494700013005074973706982959436312642691926569091181874859986201650239319167361272852641738636355939626755920292343785069401771490930842027271458808070165584356741184247855977228725280791548657702889422309754499923777699524584401008363359702637646700033554384303847301060478814893975215169593397620364985530938712058518231206808906922572125445785248774347317883564353554576448853175908707913192651007167181907426551110040051934621514232783936754656384427067340150227547016191908328285214223671876324766477419682082510811824125692028034756051771588240184623490225965357174406650718824187857061552643788602060404852026840067971657702342414972915969463143813816196820857356716750178371793478531047003692121991873351550413436436194570617419819551408770745546273061312297785168446207295252643174659376671345529561025374775867604401748408774637164847090602885675061519185818561625051729186427686382594922750476452377590487972973096820140817436052696041368365527057026915649370998192219726999773288740438802173424066787818842035630303638089913312689671180639960293400885816007654834807652681153981260476776743368472368849288227012494537353060705477364735973550789816270775268392905262322665075178916208942370636002518600364434220616396532975005991000135920674560666315919144410417997734456992551963188715190090836006713138677468727424973669202875091969955514416985156547676547134524521937678912486815374391650472736452491273397074071303346623039803981507064717169024624597034125184449873906679904602460291506337520284680097457258731806378006336529263545619711624825449379154388225468406676099965397262959958115821480823992068649441514300154924281509388554097545191750175446656700515450906082425784902602088608867045143803040082044321470833742980198797944484071303050493047171025374783106796032469199597356588753148599038231654140247294033219826135976199477234646491687810287397097047731325248756603055631669987877501155959764178999662780328284774095159868195558738844394818755313245046891697199708826467655715494323552369539705590996978303765446356990631343500406945539194610779936736762431174258085400590811414135898940355087351208978140313447453529004817185226044023882351833267507384891836233764323912519665247101859661408188591859361663599833370643415362004293272291002230903156085109846133331025630832864782674068313453432615970785786950011842381023503756505923478193970090137072346379349332035599207839742361790169567986986189523094560104893606922831461390056863152525483132241325644596342355359580473322312369579962468233293115444284124602578048832346078289128666858548454883451933515889071215463992939664195089308645111644565726482691257503498577897896056673594584566179213433429873408328259881321700636850190843838833439512728915171093561722049645954605294631966059558991658601253746707306437783183980626025504219447246881312531572647125209079461787461916223969918607444638979344788072701850836182081209669149312547557924604548331794979005350274548404913844666397665853921849714446269069536027550602421545307553136499416449503930468399029202960655553829416949846175347323825053197735865848170092188661859088572108956002611923822715110452569618787172198763756807448175643756633337091148361605130562699827634491406678749332948854808575930541002077683562258596014489236118207358652316563073016642973274649413518133540149604915226765067235067605332511761912194037778240127521617659861530572265354112312936886963526521943178400837607191901300159258700772923958710254893182787308306519818018754414628621851729136903586782385788773956052074427580901542097098693764190956243271935110827802618540334637718051222518870731385723836875276428091607070419823586478092413595204625681054866123497488980267701227584605580616284588870110680717543005549287994601959720318671811962200738299017892676061683197844796019821235992531826307534459686508475317245127944420396525443388907770701447453105330786448774388286320066248634469148095677710192173510450444318218871235290932077923555411528335556113254156426374432506938685038273894599509444027973074496811178360798892874982795833095925990071643647613842008789583968131318962860614711208805175922023701801315075468405902066699665743199656282930952645358484070105042554317427679442599727817229385951425609223792519722310995711434459250194554953256335585771813878650295746936648506012309402537076402080444948882135217866863098412367548157610380324488619198629785851039494748872879779759253116875359012212321416317282666901956129678558772970121104240047060462894041920066338163641170553097760852802947733431704937178368969100996733485262453365826311083733634043106203034086079330652250296220013750641832526081804369208764579503298390774669094099760618213076819443735769013816473615492798181355553948648295653253393503746055761774394563143831552991874960963122389288193021486593474308564343259357773925781656733239653755678398530015637344518020698526021631791617201072681845556295803602237523615241605098941454551234756740688285003432088147078636012529995255014973431262815240803623754243420036494796967199218114659144643829417084686604560952518371691859541569271128543563103201150184921097891374236058544570000864216457711950061876574697788713720859897550089859738992513669959801199137749908234096709796776154220128160220165483858028186948918194531430838948469868364056242093847908509244995279598074824759339516551904370470799269433020552432419585916635643548198346828640384262759876119651157076645028059035169273537046755957365623128535036316254363183311661330450363498529332549919706187466344031821535246163196108091655497772963880359012590173975565589372859356250249128890104688314632986811285544127890656649361642981681344498031056540756063889506725828984009114588856931446123480810756900629915317357954432174908242857042911893224633073838784285282423409728009103103544397776855519392933693719817148328584864765191492786863884664510285944329311269429485445166755923468983445118090631098903595060478260373349704792154742462114778758672583248942274903299326250259014498463973475641863482760600344929435956200566771758553696829788455469020576540314152003225389909647605403093630733728507344260256093517923576233550278030581447123513760069479157603385710079545657252036229983343089836223115553976951316530618542806743536234795036263658549313180154311472061158947899805088912672259396242936536923407843220524737152372448718302090910588819980196822578481010748320928532802177855044721853629077888211316727794623348109985573100374883851665840616038643153376578187743767336885451040437828823906456478859213820221372259074540709373345355408887191077012926233381216073579687790256696274698991361953162469713281981077182493962389353772235978064387356446356784045122912474458268244188999369240149655842518813300117982380058677320902796636093652498058687608620220228517065841144693261227182294239448048231256000195800286832352757174690765841185752575656755304100440357097651783931427959919452539059479941974930280157379871635406281909131468796897531074062399884284504130471610685692672035611092115655875327996625281101985503576383406471882239686318937970140961832950170367708429906721185877292956527348833644731021203082947747573804292280426350213665747091881018710606271878930383905634929398767064456378253947956208333358961943641296109517713167821715077477808754635976021239673335999952073351750501313869592183739603565941166215718741116233898166195573278223227424862025522748580041491361458426223257898402999792756628903785924081834929036923490988908411664756359114689865833435002833317242136600471147603665516174720368684840435541716073214734399529159444557943082691294318021788158445055574360045007866936594321593204522251946638223151698976425052814456017012279606344105498301391189880888069510040860809670924145112867567785300547053748538151327895327270469174082622820854663559670146075621881756436326369498288101323601245145927732629617293430240971454848682874639904451906485015809915060093876149707173249403900115548104478601097721791009785332881203836206918602095257836915899490618216477198574186817754565021999687479418379401023974473813712576057451884389329367646917804737424072979438209769535427728442397171838055003361627259500056116696105525421743072040272858616716830889768481240539034309142111319839897969803497685304481447259383740324921005134482778776872507718513757356652335080158294817272110659191843298992910646722200220729326649563453554011167004338854934476905003045549405563725012505305488031407935288405915876805430374207725721665143685104692125494373285462664993729974777381212187037628142027201685302067694961592603312341333983105211322251252519293626680440098250371195670117744357673710725926501689301799006450844773222622359606800177995403274893514057436985616563930745162758530122535086713822475273227556843848259442901483937989834091900345249926688872754863392035284346970008416784518090205339688519695162298254874401602159458787561366603274601781247320213624723843830396600541590694581489187395123570909669324485331077733436898523836724017435693302418018320622982475101955806941984098821818095355589921481840413870822898523062211313566255250876399761835016723524437219795429143426260560008148142066187223080253251131337838224586330157771600212202101545716240728214282068215308619871262262771304858091418484603226812546862132720994789348513295989035185362830581290430203572929131452138042605561622571677179569610136702154974956869955976209026230571042697984494589283768897176696775070222423612910769435895472831820183560294349677486583208507835420115395607567478476461143500448911043095619044496768789339537638832453521318511623925195758873655616335805236866842944629601055736990757224023795933160833726041831953435978484142152499451101724317046121815842670798627552243596054283878383776014246025982798722504967910792616452145488222839501694662817107129287616062254409179929924226109446163684587731942978062204762381231520170526023084392712342341092514133784240186500940835038632049919107091829494810684945326674710707902743996735265806847994943564951548923596577866438895238273496892295456832979030149215402596419131499675807644428273467251939062639009746212398326314175307056159715383258156354784269496769342399520642001015690072197442747874630736594369336064959801462895264338878630271239878982947147722489658039978059183164043223962991805345752335785439435314163831929838319297749881243243739924714193483702316224849646366831780435750801298476164355095458534360984744647796135780708109436064366517750201239100521350798912223246407628040377019950970818997605871219311774315624075392249876982960448941709640305169908239896994996323939168218377512169396235996208594859807072811042646298506165074534754517502751904479247868461863920550246728723674869241291649664407527811931204730258636388153896759132978564857158062882270503547431416442785213157930611623134498509832860975297172546785603403221612996638466269946114023118385029648553673334783326554744913717838251801897920998353308697702585265774760349729350433775122709145689125817864174258234765431667564316688825691753054746773870773090344164148797745721880493119578949024750736338843057000698588716245995512808538732960670237829477307777050093572972712917001973832791662579433528044343640180973234801087006103622160748280744140835069666101700631064046683103826725276581294973747120264213676614784939386454004902842314714312890468754644173874313279737319161998537753065089878948567704731858629657561060940269737756733196352762707808366055071432508470463201886709187870717429758665678430167333640447476759334409516860740356629839738970827512183149593379385715127130177330082982733972322665410948776048269118999587822385270602293275769371236527148563890659001771274420285717893576160510021365823541398703218448682576379567473755692517501738407729616029113398362640619314410676536284329705970950454895083311748637204338632344205849516494486944236588885933622373645475875831131760735465655011132673589921268769380735521307894579391105571630100833287492518477655486567931448353572467524140672806893938448198413063900257274551495429086426000921265342115636018830388154285314227293610273039481757514818391495335093551986005943751706785816186374042800906881906167952062838422287138509528453641144303472644271068307195688414812213802715529820825745922421349180574222136922024648724635783157976824970687924979401411673715886995920647599612983692884546114241251188650171751893876772463292894588703233423893252650575366193205960518099751271722398198390712658616282530131887544149900714741160415690293277170020541581826274605226887915255861687745026627210772790162167526673758432334909747514788060981263699766315284322268051990145712189897387178225797905209766264364923584254448941144733044669355708161721899633801194518212073623425692244522079785596133936017028680505107956273458025493623638966174351902180050880523622429952898227329108919673944254923645573627159404801269658782367508524194688122030691399632334472177417741547319193811058955914972997543806247092123857642742940241710864936580036021057113707842200712465810692502132933765122733514038590268719033150697429080308738018074262919032286015368416308260420914429608156809049290694615639769177349165476916861724301459852491084367170380096050731726595751211297934978780375152427092156949560271940576474724716553300776233470325455015207935042787759770871698677637555311672018967820669287552555383210209952010565060979652591997268935350379622888034031393031560089625675976097705270098999803163635282124239958642171076735161533558882967347958848981450623617670767848967566278433003267322206340499589109155922712124759891871090010727702279462129652057408324506330190548400764168425646764756870458431747094685100215736952579501002196998717731043014949226816664705342961641233140701905629018340497938777854964225510913151662968938744562347987404595062504934668038522554619239990008978129878660208897171458380152753263607512750949592889355381250424115168884752834577315989674824186221193902001995243996914094257741693503728165632844607646577363958067895146230859413960540214742204597961212671923397629186221227062529897507035992738225543026935550212281242730211868448991239451234171079812786848675724051408523244151157490016187051912018983111786904029247693989335992752421883523822990279858345631148201742120948378108889956522228947805806480057901243745363694440362243970979312690147343945211951806043396455943761653378495882136448016090719290385607488917644970308971076848823699781429769757685692485728616567128346840716115797835240112720021720217416049523248863864445564777481330951095313044112988256748961780546170091852343723457398626087089263291392936772900828169215588364539037946225149242211212653059967811447946125455378998297223935213569792851893089784774787300638776725778389785043514905332372645831812028389953106816320089223744029599640258690634876237659314329325734339831564360093688395507677396396428484794989841696241534364204867363324417872916618505477346387418520929469059889631091458191168714517083591823543699716708096144313486610930939113109493319670238471380144131355056756400711681749988146964699952978271944515876993078534249421095934278538460289284492522767433874045983424712276730028463444943364124526498380710303162359939786812905979792954192011977137368993900242292372555531016980665255065360193342446751889555169092593477522115948803924857552268839693093375142288362072305097429310854659836537299753293943599505846292925801384817308884757739626765701845030673885172759273019480746364538040956345177629125551546645748918437284966923416689225988365162980379091976081339486924342311853740510736597133213126872944633393094115585293943195387026747840743447227035492162312105748980589085261053500662687998325228768625800354549185376062562258727274796905641166566271097759367100169554643673427366036719871987348159089492391911623730944941498749413792004734327274013530076353332973504760935921156882232279965181790919355203332931530447705239752296028817952686072834361420583702632668141385290048938702657721139936633268972325178908728720265622989487714521956535679143954674273453748313551810922474320559260805389862496866430036301929914150111442739108593421289439727323927521695667609675444534605015888544313903989146861542523006107480306245246776313795987241246657243933725383299142551959894081895270670730296213505358673676367982172892885040623120806888367446027706509290907767378554052378317794631501618388152085618043299501563136285315302482294057435912109227285155483923129199540013034862663568565892014592242649394771629486472702640901171833686635402012765331443449042183487124252971718671575523787868478712550661037365759915626243879224082778831783806059448924999946721250284720990483528728009713768910899656977735772727988069430814145268222815184102992420483428071802835401409246215498520985979947021553333754627417776887547501999095635612624093025441774406389267344701745876559293993673030517451712192755764205397364157163767699065777813074666206084935166444520552381313788730811866087793782559684993239491480449579047759665448316178356745400416723503381483901372092064340471391811215419538428848678846424741891772767400114444043985981409047217709415666012079130130298981039847038036548851194344866249434960568197887101200893340897089857127233103634130301877306318600004246497231489199169166050238334832385506159481093637358603632411156394468089763436066892474463002542877684187176197336932671720857284878969131105815030522028524604142478267518151292383283355454920221594476236681366051015474997970666604532111800978362607018096094472086789886910105467689514108226748986845576853037063053477877597193018090588828495968690059019569580401667961856328376062599183100538144230567974736625750659840878184251414380179266382140763382415091900967253962648997881932297531540499198979927682422058405937602364563962549174569756340675712792604449851157295759833052404239831256338250503536010461919483737577866777125043953770676762918670658640390251048426008499165864145189779499626238765234608251356772843729982827241771247164877630818493588240258346571570170987437298284484047105368614365522059476853257289892904345517752029324054840026326639805414824599809512293305844972034267509305913976918642832102486801235452968675318754198904932413130863237410169634008325900063649245931894752152595489976294130463893702276528744409630155819315339608610615752760231768304524463783834195182795213970600026857832414150561420225407288522129163044735917091595666752475299284459817249228533143298058285677092100824583726250219870826085286393675995787230355575738273770893684804615640635496064746088929808280265590075130101975502590724342158371484783238617510590545534499295379015319592273699256360146189658735985056229795618742517042315979930235583556183022901149902484197718528583990944075327927961447935381543284093808003879783544777994832602134782814861908399618517505244110360608830117978815916955677817513553391215730719564300124013376683993258579607515488235284256358290036298014820398308459047390712471600151890433593184071157512663019382767581828448424884481352841076287892188211403802650782899182881068336493576322169879106084094181426016322076915117519736686027839150335857365925914982584705246480984398472019158309815540401708720603088680895698273847841356055057728322781610551102185870040116435471890645509462910830539152064270906209910342631057585097630804127988404952368027557405260394608250890128539000150163980439294824687702728451029415423974161520651459302213907507146762917318258278935364440532796973245972505910237201594310163007760334067740697525776530528282180659667064677255921417139516440468441760707958889078631640919015568002159374862996552364132894859668022416379452572803018990743972128859477152039399307505237925887620906727033412287988201108667254648232624139444488356754419156840363882662441193818296810216306533964136291179045210996464507758809023185627831394470514916804074375276888874240273477586111544655230701395213924433603421986075745808924720276350314483122578887156813345575192886389035532961870212785083043614181808688285466585063655159796947121337626328329658561606673306760685359370423160792124588718907953407692626302290317954561619568910555761444112868081322298307447885401800049675189804366429354018289750302373546885544804353094919962861067148405703775249041755333426396582081702143083408400702342337628294838894362986158190261313636059995971193547951853974840203559834562355892466984418652429771406686360831980121727052905702507107712001163278170330073543457929871778999320412822678015036679082717742378683436993667650188228733152907542577288177562563621898575849353334057317776649544868413097523402673195766773581556872254943230243991588749917614650246167048457693981785951138427358451417878005056821135407398844098002982261183066630887354613785929162539529304662402075613893261644697070593986403036200847841085802431378946316075290043288772951858529995949239152415023038216462120341975342939229962231146542493841926293797606381949542143135284256121077244256473011984678053566725907768330883575195626783961646513290427891574687568605846394093327158808204824827192499095643856092807761630042262527817722276731950263424421855269695009344070827787935172272500119782410582995695733643872133461180224347410820170169849093426930031812788493158363108727604208776522305492893982042938132417038791439889732320290506303088775219996423171078701797441622626747619372968511091897620327941990677028045931306968385796344675673564232444842630737908243163671579283581256844877720650844466758147882585319744397860777602160498901503100901287950129228205645080576354953817225572827656429994614394954614438840379542235461020369666157672214204624411916181528418094180910031414172354535895419878674338697783979740856475330959399676589291842930043423395811949676803698739726834766250064083491170234062996326671761753551662429368505703712052284381761025588442781381311099496136652873105403488310298289562702705395732712521250561002565891334926082118880782914920760019406774281673323891681002058731959464963582829650963735133935178365763838352081200603631138030982231638201545401353077105909860489273400629857047904773989642284523733361893996220774654937984220646226401591697293765370851796447511064929109300557388903203077831018010972907992003795247715271953188278896885746277963196008458981189920783181766199925440645856000871335033828829722336378647521162724840479162065267979082345705721687011938680711111220823609978810489445176604829032201975107485702545700761770001232967452840487800664152153498062707898571497866554443881410553360285947365801282075687231326962937847206648942385044752680423637198986938507176600519509959221295944665531324912147284898718526194142083968923157345428853372427652914896595501477909203958121340350524953317088029763147508317559639143798753253510799143440703307809243311981721907854602230381945710581576130483767847641730039774260641945850663039116259304358011139180012221924427658713200500996691790054479516270208941286101487245620313367616547550675124224783293678665054825914984432230368613372104725083106057598610735705684676402242376175590677806856595199977810573835545247380627912998257400255386411672892067201099836869078440334104015065747947660705323936056183296698243014752647777195136975789661131926672694718107352912629267336236231514641339565337788276076094723565583052772339611500156898085999153801914513539299047413102358154618323078735004149589854591284241595348914602136753293650513678038429928446979176413820320787782289921628806099102430272199912689540747739520079129874115576447297134207553040624202415680348381898972792342240522730201970283106522913858704054770620857851689713248805542412282495468225804614700361420594805904454645210294139904293312015828688095861713459300155398080231360770625378931962177126273946794304103763898249971721600217478273463577573479314529384703126142645079974117163576916384536738799532489732927290592693137364866987038491747823183275388405667205360443132709225563643628192384386900248956256611377185285804633981457643045485050949630068282636412283600944096116282889137710180796362090340280215544914847966960992123450229067484823103484908697870662804451031023416303841346883369721636023809450250472045665862140574011681934404419197101479745365599950939941292233918897606167621147834845419874602151288556458760389715129840537848127309170350737732262136209374473897187317656074872518278090792959621224873536871221188921571924342654081211320480789730672009983365882884521043113589987903138156050149316866019444060081818239107971106664952612998269862209972020191458240518156326514851178531855847534822984841166352563844516942458495867059867871280064132974129486860895060404486100949118226775222978186848987226548135660294902938669644219522755844566557923256118659924478616783648711795484596757048622186847405945621208230200612416258397749189917786772024931768527037057970056024153113917129926268651148224184323716617126018771551558338635271004387104979657624738066323395909166750821307396356717823865102231503238999316722390253026514507459173513501240913837417520465151077351596763394406328099382426958336674775081993574004011593618544542771400693581498761746904829412633082117492949141772552058579499900291723520358821543048336012782338394583247793660322134899893293138147026951619746719494907136771125068296926338826915075807200122627675303139144977713451453805983512706907487550826625768038138318354658587640023139366362096158553004402826475213549507171263664827870459173577954587899634560154124829404962208846706102372951380660848500673135026672152949889382537071891129756726119592904177934446441259927940085734897203035948867352308381822454499877877566537281765997992657489126298901883150408237639946401087531105052514955981242476403709605032130043084757971266834815747474959245030809544242759295622270392755557864041410647613857700027073532215416954822235441406835100320095064680588322993083311182811375677424431428238035344721657716574582991045164554656722370757082061719944421591618267209060677579352574822734969758379617950431874566565715863757213238710347810903261276656045140005315337387786211436442327568911412698919448500834373426601252118746151609550085112469811121069479121108959573968571931595637776973037579504502950663736163191684452771622174394810932444533858742444073195176248577913816564195925746375151056987830555331480503016598446485942228547722505947440383526980739451979769894011338088652509744647527695129692767775394837628877455173738696628930355871841040364706242974396277224359421461834635748463272325080463584430738822298434739605685445684119815150647716948901450721280913261258273969249326508522058800982316084204876964518985403811148815761833480118605136014658714495331463900049908637390914832857563990466139579894290878297762522736973343669644540269907710989320443232937442195991802395234645547116266169499211095547019794522579685140235190672176786411978209939684093989903413644720330108005383595967433885403654631017504604692094211686483015791019269003878740410020150954985821726348126050033196483310277600643985242646109333792298337538972997002386118191193749517614443607597834038880030215610011400746387153888516207056921607503473109521094564523198063506417430495722264787936200152817125952983513189273638329261755753107079576153912498454760547443216341656032386277363263879515820109862770209245058329107363675141443913813792019939565061473190280093357171057296174821737364506980677416923380021209992528135777176355074031135784292497154035558814182950939063098575655895804572929501797165345414924055926595180545434937847876422006836848262193998929687379464880450755303586272597957721990922200499468921022031349671943203915539641110882193311578750459763301578988770974529943556759960953955450856676286049127390208670437676165209832155041038526277266431214334972763064610677709936552273573518784887349202147504198534311538041796697580630717251989601576238137797334080966548150826143241314784842947055366106283158500938603103931248087703100978337451945440398291427680008895360491949102343486144735161404544060804262399570272821940528274945837927549285611722069497972061832801121091121062017084402198491211124812832498550520116854761575570424364645721223461417729528308487504323520413943680887590405151655004845974735640947088992568965334010607951246316940245508197242967204480066818721700005171656993489393269263662081087749455676435324657746248619617648781901458243903931065878344026608715522371466452008522666545361728455389136576701991816408600304287591497239040279839018102994647790919834340537864264780355894741252698783390860559799934205238025410554517121508958976964545849818161779306938985639490573774920368135013029773481821041755119285449971577948862556144528756370259964350100314652906588009313298753811473331283683762018449597314066003062092165510076712809523086633001768264819782599295115352952608506865782216428975109557220488664931688304678791942081975146291043940848292916829238814854941501402882891802649012881028029175128715365440951917313391939410010695427969526446549723221937858034004390007518963083560707179467170701885288484007216835502114628146110599160910724445710013192797791917500714337234353588542368224815279641724165883570685962970588676233553159791633703498855112616359750577940702230456734757505798683327017951112656223913486419236128524974138983769815682089086552820482414505111286083779688701247171692584262356450022470713899958491618885187279809813599827138516471072206931947623958972742707991136387858384869527167429147533895143221718574179721015313827608043980382736232059986305373374373240276652982792702935221164004166550263891759490533655035149317257590660165225293607084004072929465662209114883263385702631595554911292382877473217404690828500763476633232720207365771296361354853353979577637744806229104449659865231401310457409450848997830683939411694400148163939404088041167537636263716729478265670932545955949114469321174289035356449674811909461205842383767622728066115955065707516193496375460108273292834754795051953088934917368927035442125371767907154109821629134278520403850228192131386109752400607749537786426280535715139630822216026063292625776310254499362395997919665472438539937567819683596673246307541304212584169695375306640090383368648697236063655677783899917298504487150339162757074125403581442740983341521211059965993989506440079529135708374053569999825671716457078264636998307139483370844815305400970231456846357799090196223255874820370162671578965517871484029355762793782858958581857670313901070500545537786545648310676842684862844402544500100187927536537315490438428854722662459541456000414621808120482560846124585646036037521804333626913883126098176958035509599442626278613129558290441088557035952374021618065886094762077875337092477209432177274140439486012780627033468800355736796801406809322710279812661216290321256405937347365568821593182909427060768967652318933837527013258911976773081676428583122528485379806974125997920980522295054816233025609682700643168626934754837819722689308329626430531500338216781546060951591008994036037479653917941861589323580369234349740222679381097992866550564282273408531391880747952390423192023603144620343408065921910918159548482794150195654039981140281209609888410868975582544307448336759611674795560847028648293560085742743868860668413379289178319365703191753348766581832665033609520049737338838408610013805211829958319275969815516993756145328049558807525524297898854107239707015816918337047161471822783638418985442230803309790251549576575451147387115405043228444176806569883351880262886820078002051795012571426501475289174397872119963227266300102973776898524223619939109599619978908782927662960550424105891328908899309329553541346192079649923102454986418757343896557828473136751872788912761859499833440558110682401160134310500734498273888766922975281113031528410366109648057244255432718071852058724100387838928443813092721658171539223473456942806020101567435000892141415086968451724554328026621488469815752929753674789123115806508810565364870854586632051643800889058064551648114646356121146757290309157561599421947281244580747965739192546115422470122862274244600860882451065705004446714771049778865058367840854575163145842286358148648430334791321696143799849976264070548270434639179759049414779474994970452576736517265746710011553730846070515005749294756233134879111012646970723841912195103538926656063928074369718505922839239681095127423842545108422113480222204930865715629903867579566153757881378681941783090801472622607285790125889665933411796051370172687911966553142694448593403821603725436636940396123450036030423619218588313041877879113726688574358638800051983529975725115863873913567151525608237982567899613853355468605753873675643797801061654200917304703193274709630141297991083673136401198704655437137957698037032117835812683518495779276551288076881058178061964181101496046800715684225013744100205471154896199264034118014333489281273761421719561113239235224033926491783165278533886563649433384241320568849586917917624579997835135420304452206967832907160085638341935050946212460295493629699663511674744603954295320881481047018682192904874855593778054100784854537689635458907865173531655508001108787330134790441925180081993477904223468194393032096420885422285641262664021994076214374005461152401620731074491808692304311904416236701488733588993539969166488734145124643019650833513730497702298496779674971692060086693801253477251423410273973383384520616247492713633006789541637295519696780735267162088326932061829723239558735596000835602051700143204296872150823068144552489791031221065036958297825352529673004818928415741802270501688081363181331988321307864316642494641642157668619456541225557712440060865061329627135803815377745440456766602212083316917120285817933966322567343684554382727197905586982650868237967899098561052709779202421529929571633104804959276431683364108491127775108848604912169894518523439282218795382638485120856358581823639841007371400434385197628718932226271882010712503490452074248630858847018690039043094041853092464650591497438956092520905957771540862678928892133096334309126239675603304277867140602568088037845502695332775341471063182438705834475567134350919175136089225586646552840744999154187201175563687530073980719980108399378804786899133410215104727898109524769875632301653526953821331838415640795764918537511117500753222982586111802141107833225342180146990663612472652532606290174002201324491777298261291777709837953378422198552697048102100112336148024103858282438840699077013292314759439688035729533268416748053407653790062950538550518977471116861853478520549238198662105825485003693854762550860469277795183589403620295969926800906829512268230127136793660327432708158507420227605855487903460440477583367851042469424313860035726066033509141525095256149464302913063804396857814707030605506883283806901281066393166927734774692997169551090070398505959773225165719309566608909896690608705361856714468485098548162095285795127216870565696156352606683381579175380717548621391354361179685664779203353013838451366808275588505602069096390717576175920278787523471750917393664744451316276508720449352370466387856036230485668420229256055555268618465459310950017793347060773937000948724644003467236721594153436633807717624446563049411674619274552113025354704248244417662796985869241202188500684453700672864272354645018279946943250328045596764883988852760896616585281738028123552860570632327359894000656784958207102469835292245630764485103895112821756593384189274897397684642672195759808581984510421162550219456346321643366954743712646778785480262955034126070657006845705664153128037317758979578697674876272475386021673942497135432584536489464266572850543535040683715300927821771805537011226257620041441510912658752567066054313075356981472722371283610048191447860038199259681296785853361123476827693810623001170910782283748468945944820800645716582188108273554021085207317920288480171427669952119049864885750969830664628541616499114735145124793984451318694907390297394937256010825591169806880657467398146576824592336396912864426582237628321120642322014337170664139661486144620206654853587795507198753439193765169163736057667014102253871864560871520591314397688995686879646486105069651524569110646777244003564160730183316215180041615328465626088958435183186458260385422858529758014085266117871332929799836389150522720291237177249756684497673993278851655338231889572022489664000329404029780746652783566280501884341225502283164710921020143630377782050105218458476301630827814310512653403283054297586367516657460878469331846939981143613247444043556034028960089112044911823751010564267655317730080761361096909282828415876650036775156807465943122183745468056961351022610194853552640101084493682626602285917212587129487260412860695557675860470184322442136038831614946925832983069751467673126988939162249976976059146180054747820752358058065245308088042851535607419810746774172701970790725852356205117269176787515768471880485390696560956468404486212719761752930014143865366299189513317242420894876063021530417023432242136004815457687918246171829200895970009590391906304253093028350367703659675723541373742921690041071932599384448813626897047065358722681699907692099700919842145419802680636224758748658488960130050857902434668402673749154949568505885851582450362936086429991211405250620988268231942491109649620626199438541594311530372918229499175266944989416575775510700970820518602725711249404745553284245107756581987822435407069464832962080182248380160875603586467413770042336070995100667291029781624223225957356150511039377488701034562352381715492473948793545808563361870024181720200564186552694626946707109299157362459694837310809254552585549739288333128155036188115826629668812529154056388003242684316615981835985059173162446102334236659382407368107433352121761095683755700023803793970378235596713123081584581318435384287574568708183262375908845584433933290846519696214688064781277942252393458763090555713905734568039933852626037494977609908431359588702146315870787924601765751564648884305968156650723073610415424190522483546644376493868700342922568833762958550161348230237148730053185538899675593459286836590384717952529821149929475424749376967085442432242218989760332496938210631411705076655408829985409788303627431550691925419700822477573905306210928797852931363800897255222905238013090959127633537968766901020029679395375518167461834358186608504393501657811389979943404695161970738079023774891286956182389125611522980996292389660216833261085886056794373604520989501323296358238545984575461914077927794185748329424691770393600272371303772159660888469875404345003097309348792122700575685729468986270001998442066120138598389678062811248701690270499526267151894606680928040187966677785122153492531602515159003234711606740856839137031616667240269069341247361006525486386210453497056943052789078584498138956327140589848570240436169249243408203220491765820711248318831259099530704492946003523574520982475555772216497390966412141764769664914397571257221660383334461854806503462926889205678701798536170569021000103789138281796307323244648814505036585657612043865332477502096272019239980286744071205774700014851881881133870451928393677176836709734954122899058041703193037271524363886277567465734025329447263758123552032775369202436148339240046976971713394217582261408448608927231120941356815355081551103746797623444223842191993863179779608291935057802219454944829476967111336334134367237426315451393907333462770929649559005052872556987464059233814282610616458596188679585073124003716632022758776593218323692893367502177019244713862362926410851794428481204569555089057302249725154622194165185783273328726753561380328682496267129955470094043517380843656377866004229971412658534240467362591318798274950409255981606306667755836141872324309046086756740153793933985009889223527353710596148303623037858785367239954246658103624018395479522144221218290385523099051654976215363911500458364040000653827523687039354309208757968676355036675713594157982131524475677926994121995841606633724478841772469035330431861169793192850436321989761632542917403409491123520982680341498006248841011614086518983709653675682766392994369514828710189734454710470396363460266297910254312450168849275897363925046635521824390445442934193443532689683153501443722427529000160112775591578727195662493507066938493293029390269502451926461759297858323477657987427717960371134772081716787411504163903127843796452441497306668438760271383184092563404509298741541920035078265760477782244207769524347905878900257007848220587877589615809752507377264202288062577573874106396284437746032921566922897195847649245609968407193666662070474004372306348367948665435695246026622787514310725021699008154475721084243780893376215291427712051830410203897815985824165991652622220283395854294184690067169656966106039197706107082862108956817755363507707999434332063734240516062057403830710336942007260446110779693747791646464955391015895156692796170037303597507886192956569737454510272201364864446003460260607813114484196052560616705443980069118938831363180160366519811590475004261005582322490296687608517838271323934426695539982380015532684139847891532293714682054216211386153029450722500238773656313640076692204994539256860496652796953669565997918720759399588936987626083900482482499052276982449871814377445700121487893352759521856773170953460275597386743876960555738084669657924247631045701459293582254373869464590235558585996658528072474759171667092567594321093141014570150982096425751932687027395287170030657296275369015106587606878549266131231605189036115527917481947894787290693261228075304333435440358938415899789017902038618968655908821678791031222864928177617745051389443761941165970422886587457307782540134554505591741661713480646952211285142573107719789726087601063567683948226705539096060637897980552711188580835824302505648882151652398906398203663248437766499175357561442309087709101659505465452881312593027870225375659032263048521468413137073609866079665699332251533742488068175649423568062496775421723873732535113453523334830437776437550461980373330595967034566057692235475613329826276698929519318608430561289487675161709696467928821114888189217093515824078272208348645838569398978270417777468604047578130595619550142406929445517399039522690423478854515113643821843495800124450260192087762017144840148265227218021298238305976174213783963478542606478181244511958971782071739803341467275212177414604769294119197518610473625107055227900319127960077814383110745301598865723862729689440075417860589856834557198546141780295482116850028684803537850690436890569348037469294001480763518728259619013774196726260077798380004983993341891862319120358011070356299452282231338524369942323844397551457244389787668314594398527622502247371914939695302316931758178776293120304682899855257701966170601291515728812589551066165272563450897909002971638752001727454423785093802212718106040469065362197435718388859637609124407674863108384629023007890350756900467582836077312699860941815914882634016687056891544579980786856103856458983480015235841116469460510437598563160665139563679825893705573643388473230869592271041025654014262619428459288442032091995167899092072273662013138750840754035475553761801325063425564929537522422413140594722006200975619865147227331552109979357769673379464500629667906761207426874203977811647635739653313099005321135244271045932179339376951032435108158409085165503222018642155312354633594670848047110141078363227046837099532300547536761600651739923978665920497823242010952291437814307367563509141678460223062445704408780527712119200528247219547484225559037962031255756898977269824182959118792667294939312412516822084705622395962753504545108328709333584925399103457769919261024519371915121115768371682460122412232186498779337953659917423137692055784939525274186807571149668725242904845873533489626272995304361683848575644923014970614747325278704101984018295868762072685950791464446622380216762579161399038915292839635776873090962636836383313588743164507044707648063966405589289127540160977555979898976878139995760889066939638980888725598201564442708892731114572710571611440212285234849879678351022792302658716944060806316317007020753295517119185525007698753012691698732072977058619330044398610992559105702664117062750964696551956391967347518488008627085833175663229946061756769667164900175878130607722446754609751066189761208346112851125578038201642538296994942218739089995229809540087948261099877327240954730371108581657631479698102808571878964356989725991235929796114242084925772529187021521934853083393261538864848476190444568887813512361143192727341883378129969305524243177371896982991583280421627679443875572464369758916374749773185851359272127249651035363895627666493688443966610685960738884884971203549854532155467272608100947072033133360336829085761929278458573798608267314438830523878849301100751143315269850075892987348498741258705889504826307730584836798092159769257205950197531971741737323435939022009515811107116443956296227263740254141664794844678636097402560598384338015116147977963989383258274351821205295696685453730515960380234507582464245614063389482758821876334419777291622135984243825109517969703148853094918430586407132593098278987577105897356090187572200231261849479070716348814018282514313822137852356767079956479661637514354351527024846475852841913573056617296996238002279072982961302319134229535101509206322875070106673909827919263958818236368324384951558167471177483271925655336650127603238270328134808774650290955903886448946396921214372314665523272641253208554959148769174862063143750714492695008325904516836814521491812466166471122093776293388571278886271654892649717011831678324797628909312698078105730124111938221854665651769157586145543938626779926095402396969595959946674825552741373070679740147916494245270307199628685286718023208499668769723611485014306198745099766486630051588258157321007344301634709826278036525984414336996620949061320335014931752111245678351089166131990953057700369554075915049929349402181080687129762125580156304166885646011763919984197387392373042210503444475647855173740699811465734573641996457071544854251028212276681069305747461574156671456764672345059428803192057856454150646745188843027009219086697989272910448528441791483041682613867178385497381743187110309901957022729952257306939656528699422748025132262335311630913736690509561569211007407783894331648442362261763566488975261565340057725187203722119225531373148688506944267944463346536718805538080128844661818003937016835978568537511909939177179049782750057942030899420820269572275260864221772874629602191686532631349867113670326841902015056980821448505616502189228556837481855597472056725664724209219564106924024796761080242006632048645075402978555797800307733762593586532103641169233003720556643898643735049656701576625867223051646933003084247450826785467729257119703354203302235458754295468588846593195186842668625313054928189616903804223379043485495133796212376164032015478955386231485862851558124790455340811493046070611798675768463303661444130567975461104898486603452293845535193738794625970314921667473660596697231282203510934335129183721749406936483119099499792544783433469660158869090935006418992608391189235654875568434635901359457503188087810231648762152316965831738026978310282950364059161606871493766274984937584718274277459178048347644099398389127912887085112831523126812451132218827483757195662009402490691832627164901632707194649591945110051401003730122423060595008985157756462280736131222451625872360908872596340785364788177611764438975559252991160248072050619975837155870742316815098861601612112788764685436412787977793782647906732598550840018318099044796967299141760137819829190746319693458679579141552707632676155340729502380613467344888522145828946271526563969525318427547136012239960830301355380584880174603941290082101524022377464565200323517801806051085750849992778284549845643104039262478952575652202860834345959496262417229118636043549364602455804929377840841111085949624898882124989627508377634676904761888823237205420545389831297263677873466169265251547191375498939964799393154043248696988716096453848940499485927219451308635968313076426771428060842258035765289379848417972706018650878047135036618258842900215074512944019242337784343939927310977091189993836286784688624504117467896727388199822341766788496837497370681931642780227944682085964038890917424740703211525734131756111145546227362688216617977529734614285803696364410436802638059531302908149779734951195438171135888154074324086714618975835263792894221339155943312485771030231134902727085903242281198254492283853696533415716877442676413185744258397951407654634945753849822728323038672520654522783765074368190132886859061167446458805768227434990115069765408481891329566877205230913092132531103911921663923980106815495864671197106089743255050252616781299335141648579660883572660742817713338932157936421481350978098424117058668980078687308967851700164661100247087970297289878601317552796047764173744940868654019016875392317089036523026098030194502271239520673645454416386627048530343389512338823073249041720798542515381787647301001237142967850630004191615066364091039088704854262606518525749059437637026323930902313640751348279827460790424351619535679397609974131095409816075622191039176062494413567812951455829851028792002181213838159609996106476347490950301379633172366204539170030816967663674019830637183159404051310181790699976729620195654521371268808905794617432151033110337188981726858814184855627444603936618163582624162717723859256283154521933097084631745290180439663360804283327944342910957152905016177892950503724553736976457637960132852808652147432589818366044361470359590213927153970878465756310169774380425670663337061256288489830804869544490873176421889266234583217851961554851681642372622879483005330143318489486666119195899525026103311732517771520297263988018004208626590520386287906871249186777034904184134951341111053312906420269627405801290801971633989996541756134104124186094499817487271087648299456821870636491515424101025016100841694683709051171351356135104811005299545234436997078101780466710014607902765087901519569666216118831342128676573607066885710391637607893658642456100680921204383069751188839782767130683995516367573637444734623286865254573010650259590755036099936475039500626480577356813585061017991642792862619955921695389721626613666220323023102761292769547513066753162901192053459728402994813046213063258614547512585556662146413064399329204233478185901200639986863335273699714704160380279713008898355970935103804863838092318985068167622909367260268660404330317274735849710703246520930556020112665428057108462066466421663154407065715324675288225532524975980161566584142558385518703087466563516917692965256501631805470844516946421480546562779437227670280190023840343989379557342016734083980910041408203286510999992891233907695171833956886545226733444539660609247342386550451147019908902968693384729882124622735556555781938683852679882052209050998922917884589621288408435683415728087571205410157510689222830848271501432306544560763638473639019031425314935637079817717087154270741020461071300841119087662142077301160275014289680573210269392633297842542084359336771067955285751552745187386888998198044625159999771788385758463148749912991948104105045857292815994105667529147985588295933326556178348003406297959898989336168286904681717569639722165576919662307377549987270477615985772289775371696408222739966432290144483889666390514384825836437409585646931078277730700136246718946724449858137474075299073467128525541064495426276713614694992618193781439848069481671241220865760800023677071016748728036870838739571918038245694055097514323042773429095506278712055023401645517947541636291395439830222880753688707418468550060105660809405814851876628573746462607352789821116335256541271036253000552081783667674031062843167001776609903846247694814462198974316535236788879595157140628755483221085460123683159263763711152539230081666635583832947020623572495496731661172874894106213134217527555773932949626199728789981620509518513133566048394457470866224813759830120268724962255721840111092360029001212948832200210512051530295555014281260958557022072947559298436114089725765961083161829387786795441014743840862989639882458818849136163585632056441180820008715420824524177172830228581243897276815557093348531891530118705567464312371218027559876608088987042962386854308800617889211669406078024426203994253581993693231937750163627892250626955005904016194067408023653372979460369857791066820745605469936414750593139523416636768400754457718326673140686055672909437262237522394937767374546259479584849537004956423003830861329063694572953798062053114635059388081493165345256956851793375955783629405021541189216743089668566665281998017113152333035343697896583810970986843715195319737480886154198224059627271574991004422792555527551565055179478672011815209387041165055993092256149409046284985618278589175641284282830077578500535605339761980613202856039089292543325199171730015886224807420287799599103489580890918885590223392707299134240356567133079565342290923170126499131586951695121937282761886621013618462420655465761342519472871559749242842084706036072136760096811974938755103813863098545727221476771220345122889022475080309502659158080946018001639116962699958566056433309664518530102484867819277689046668535561005522229301382026984757906517672722478812415556175265933275413524074282625241220629902186263762592333485404258876440961020694122860080711252377365785944199992619782389881091329480072869449355117453586631760058602426080890819942504511405826474540269261978454473063210780106476846763033200877757670279581092492331805689184805022291488388552338203476921203226380841062353247029807454743776802973003162500348773419088468192822914234893597865356468442612726144986831153621025647973678295664613891604102141369496960478265590608510391243617406962739789790188580021050293888422267474851126936331443375110422642139768916066704579698924123534936433850183492568223376931096363799048450859993656719873592071637508484723861294147438309567411958006312469551004717526884783019829237687937953115592865659206352995335097486963358454976139045089413556779404308630197057694897338254339135211362883277272523307045863376448924662588919025887389353691401216194017128118526563981524820183543240082925271567643748513707098612204803430537396138690647905601007632630882281982581371012868846043191843956700853054174135023060983767450626452702358840240384159104249883125804670589045468108121679910881512761279247033029506196268789148801278790205719998922430143250033054943883124386374354576111593399830265866335823190967817480853805357588816508552725538045376118821487985289090035788130029514910428876947419479494305633750387712008402454610912084719876244799688552446145841845740969643182819513380163956184999852448474543715120921084373884100529166008617244936646431095840633887858616935732719798549776924437229473200084897601473764560067137338084635451904595626783327540989045044886715767271825696695892120962325916583157869337444994200326582753112657469765460999683328674920996637470746854004215333172556720328947148479699173694969548861242658807700715943778852590869561766845172116489834978754596729812751008506110727958058459777235655762799729779703755749102441753177907777299477893214783620674575697332138074575059047848722486730501232407737345010740192008552514210247638417003352313537735361536765283706073219812758015219318266213428594109511769271097232894355321969033148675179631697055995639452996731235184573655017155277383493479123225805944189268612399291052385269159180441468883785588905685476646988747367845721449121246338732103832388916074064312999129283218232841555505753003977950255682964995054525827299462356932169875517083631908186608955360468404419269090443844620744039926163315074696967418987031343692147223470677948202984856305414868433323699331892796051948683642808974734703018526130511091772877427706775284389766336585924630582459389256255577536767017273657498855944190835115779616194911296721755844420331574384559961928949975954141771488956338923679027135512184454473754069266591089013197798515895005965151545942485389921410485779463255998699925568540697858836167974163464696979790053020601256773895099421879795607665455352404181541734284755079862426900343617232762481128406332576579600017575703274239594511635593366912340954155797742003069129422464822365304709347065699713181578695673245181154991335357547692202016411873188651717283518648613236941108811866138938260572961070778386802656908772239457749109061729156279710886225664409661697915773049815307028946141588731281743498093454111959856964656000068107004943730591161496872577647989950536754254711591111840869332360095697064901340184481698118369181982068120729555600180729790036355557457276256987395977583487508680844572566802004228682481207318410866887325677070652415209056096028153896182665438027417855717022827574039809285178131172692927772900326318634249905216917505538798926658676990366750341825609621101809046203943852234373677919848226171053407747789877563818513021519711253009220909172261053652401030217535164412048337455209649727134788933612713328189852197882294224688233953758548299666744547880241304264445464536289560696639456910297782611133398700411148270718956204486198426800624556644939411137359401140749894952543431136830710909433249053657923942677632204205019137280179287568873595869867796280241664256182231369731942262351533795313487405837061096147821312375486624301578375552190556754716675797006041088890601313542964201500000656372427217685940378861965265476288514604900682061056885323658108661164945410084412374268626721888184238661280779091661009656357492320414630318371806396007115243068747813190833003701104026211835838441134366840808644370971551224414454846611007080611231619774119227514191551245916232102817592838366058996947549590871969711731046744615213834454524391291369375324654835738805982144504025771766350199624768732387692786295175397602184379142126517215272654962821126007467192108025417101662480472591966765123155277708297913191515582187658046500207463997803291131867369321607016117038180686117341156339632858896798149319969280531025488927386566745030901443678099251383994324340119629803489461531323877164767343393953016923748298738306382018414324269031026592249888395549230605130056707254726383387778414372602674928060144736965326715948763824945775745849878663063408406293449735160834131577290054447900217948623403549377656973953793129570762750606230237235622580249328640737438369554501923499924610567037337651781121897821436474854832776611332727944913576857105709383831946433660156413596391074290380148694418575534625363931703397038988957158307879421202166050791885153216840833250168866944427736170944993825988578696881668299254540108375788757628445906256482402141868984354915344361503110013749509250743746684942965929360459980959618739094370260364457293592901565778275099700661766423567499354946626503881669083733269652645029706621553870166390352127560259173484121338650880387379143654678647962237987088397765464739352216497747469327159121989555926875635849223738557576051838040643094715107427668416452199660461834561184798527917612703463454455948036441310510012871779627792328335066399760502103474912330286331798843688099782215248616891860645304372032225869474245176747962581340477877123860580247866490964241861412590842897068256752001177461053961201554708396042277342789162702229117861034664062890813529304008524761163270655271532460123151651602643679589389404677867620206655701989145764641641242150974819365361457317617762145163259137353258130268670331243955602180818691412142644996424899647650730610201385418141711552162681331392225407890647583161371186099200430764545145992253349184276774845734881388215110564508879404647385402005534459930041166413336876829135541725017378609527875438592259699069355738346734592686275748087646986155826878471901252142753269981749961034806550601860391033663399592314877824605786424518142409367405756515188396477589214555200870959293283498394959768365690535551653719809445667990350940843215502648059861738380342482399509043983908285026067373890324970864353118903101023867712776809278457336344890850272046090588988426120578870015709533876280236723780047486652834696019923182609396741891615411207631759161302219480442883540424541073439076441614813491560529429086539161597754339029589629627719527799594156417981575160766873605101226442858526630036011251283464856229681306076085364172341608879625358355913206082925516062517179795552588307176616204612630571208611132624515674159935721954511392631237649125249918265025549669456879939692304897855903536771390897029311953062408333254834978449071352792821631774644506753959936317356326505297294605307500759681110837417747990176647141055109074396954018761075600869642221636075609790867428897037083278086132316230217714941600161147066658924442294394315876891670535767738059973257405916600865593076650942764379179521059448854493064971063862814626766122425488307060523964658279071832374858925277046860522534174496412778036698157742898980547954466548419301517288590570165434621468460538074700888985451626970465488112206852314339563481126316304633375429251736871354589737530171789278156169454654943173041454059810852400501634054796679610545684366037351717464886222821234143403636192818251098715459287058728408402707089316414902409570832857257612352635511274756368294494132308458922708659563498836160197477325855946389059433672123621982901075336979451195314251100259072479146869132493096470610350489637631946165135601117773960307121516618649071668025334763964838967080981817937173406936537427524076677361601741001912651228819562445778683018842624891073610645252134553001859675135450230530703962674447641702499560627708654393148391810320271423635257159536842622859996434264556997874659070469019688501138595298430633993132011457232122587464273724163983077892476070760627401343034403508075142623164882839723335919296767558042941495640173729178396415211690453177040245925154178198571612166728505699596172047908030804714316799617969992743082965882849789240440772491942658692454001208666087338905596437667006401036276991793099859971093938246007655312765834945799328216329037082305362693032480755024480296267270110671867495247293344040111287307193162549494643501143012243814184543506483289303663081607248167942088626501961407834385344147025359413507300481992502064168186152952355231594627523182649866068530574866499720829324021811349290185498125962829123178884815748079755089506144891055513577924620112085445237409649609541548674648467319069844641329819118392103809625983244520578106682523539505793827657216162216719904237072461479697600337401925863841959797705321046993469546789286079167698537662865587576660637915751317145276177852849485327994895775948292497662126844409792652417384056052385211667503893348536546948860935730621590224850660533284632302133556669071128656634789701827802401928165245368808568136289410460825198191465033806121918408425924905801262151765635728757901963013384008533965793941348738813541854591552178217245615865451095298343028521478074197430178020528309002000097942115465413011397053264297095299635750050212671937205129825854274251953141892280985821111454290870865050056931241569731329149087798724073239199831783315276500634984536133927451610437701995235615664858124980111004000447030659012736764593073501349214888641765575669652641495034682197868944242140098831618504884292899048994201297763878379226619636957943258334371926508222433498004525667205097246554004567208345179754990408618819214375053053209350300207533885734880899616643700493051954433555298685918287121299515168099335722942924198722160886095495750868572844448780887825991142187566710158752006151661101507325088888388269299072704868110924718023186622647172209878131396194060637690667642545169980961431304831371367854751832793595834196091972021126976850866597037824162008643078931074282646193410346617804588340263421309187234584021454821893127773133017857369726524291045959699927734765649252847360066994689054085592518731540885112953679264609566843608929087612731149757529885752768206205447155904823954634908732722389043835183571636371267402366712775927318230445969462845925661875708896609475827377646086893742719195762543498030729916223173219785693815794478180304471498285134295994041554445217553983448172157474734022352761164152783485234105472883078115578122247350494743532236885829246912842194650052677720704801683601402048302627827583121741660672492324901398300019375431443292629550397994703373055547398366578710578555659042884189109805462993892668056412905289597242149400854159806510361189961107251861572664653941003889357078124110826162872804681185484814480764094830180405329350947595901475730210138765673021464833521956834304648251839677643363994873670153492293701465990774503918246854065881624119611105843556612101423780354424019896859823823136111072423463857605784453090121966837479330871791323126299683082521144981278883486820136482180808006828855596273302359625928056039945321695448046854278222567755113656158041584235126955313016761171535270977798205001507995683134790728294560823775815739678135531341589079677927644074228107350108621154216479045913319449163453160903472747879036044036172063471121965873117601984935776020645704665887241364203454368391762137582864932631131904264692284977398435577946421678573669475373423644417807720032297765724100518670632742881614330423871754988419040370136007129160583137446898325243836560420011817993638041781271670972285003142979697911030980993869905702592400222292681975856491806120887702801987803173062177289043083101780502301308913376801671054343672941599201741880497833717019060567443186411721326795239039120490373941336046232094822115210122431640103387831057229504347493059716054820181744138846463129484430313601621683774873258702398943075087397155649146373887700505724300165927964316247989233344479777125230038254420244219085104607382123067862899210245456318446550619966470920259609686660835615983692037425386978709795512494442451588274643825543269593102669188281896862893396013009878264253821668663787809398769572678088969479357017158168424658111711513225560099442385541557655067790989052285847937345776303853919322890650010188877865332149594054071082549811821052075307954725234249284487126339942817006036034934891740578632523934414571386017780012616939154376203200881759385026320411654885712252696541996091781418345258887332764423716373900956699548275201153522254317070390473590277455981350871091097869447124156625247119692696905196186715111600745226666674995243144490131239149132339536402461908685511167321620071043418184398659898904347357490301734421562202965564715834407643934653846974543767568643283789351526204978414901151393845299167183721839087467169868594945237946147700371070351821890281943055620184855381163886296304140006835513737134468409175527110097407416477213730808680745876473282256535082990827951038696811936849303936456201096452817300316569516946436152727618334425703505986063032722365709366285442731798593017117914885595384679861873634130465255715604238309381047031542499058097862411872471105023136623116418086217587956526983898776833849407200366654507336492809689890014221066470602961345041839456548957396691485351162006175700475541342789659005584067760197773894695074810532267237278351412066172519989643176960306431759539874322916346886698078587777482566746382674804906670254551835761608665151940272929146750656033479980013302409440095086971000719555963618869742974527511672023846619938108991162189521799206866883044945859098336821369515849571844474544432683533260098869730111439251680905086783120079860205233899223690865789007125238166378502271324868251523424250911931818188877169916804795690301354502585901837415737159845031093210104236097920584986681900069675131056434038022583071794989902473017168866606246628727060731264094101580395941253485373911483255476411208580976576540469545813620633632364192802871758315483272497693609803846083134669085106186544250818645129202271335652427497665255639331690897971333272887329617785963107785695704392915406132294117480715480112953944123550047150903739468265933027682934010961166278334556130873547705267808053836022714370790538675202660261922861324005848346591596958405831052331310329088901827841044211110001890898096267050773993525217229365039344157003716019991831165789636063453136988902590178631137302432835150479861170117356461411336397289546354727778880246096588375510393447884328304803041982432926647474829986127163426874760715421295757802899741534460002688131784223717557639188541997307362556000000227863904187266833573054581457383868129632958451485732454065684361581226688580451473343935170778089148857610261445519386910742177202927211321495243856524825312083761203473649570433266780752660080880015485084073227520966590238801510304921342414034714293778014354523068645719795910459893012592176003989696795889587120464367910079816969534011046365444032460880098478940372392003321473868236067822483612308705497590325692453220560100246833699587487830578208061775566087049790327120070722946459374614726632624216453273845587268993103087897539943563432293576962349245350688629010773453601461958962437999588446034242424146595589994788929712288940500143400210324231228091983831051293151231262110837051886004496071249158690598494090278717345343056934120561037835761251824466748734901750851874364094763285709721817370292563065307407605136900973623842031037396763526066843085690124963430892296493042410753982526784555871401820042784826306012334186765685101762034779511397722452357700150518371129164491663324495694167324052023876916915644853058244525852151446128280083089899144236321392274910544885848890605625934987936322232699945077264973404487169593049535561973381949510624738484020552602028549871942673611708093500763262743158427285642652172839736580057357183413501991750083767007956099610397637691524856269861452692935091765034289975337850686926138438910420894021353311107036915543828218522868198348016151196848807127434316005283540648736944306666693924597055107609392116401421792645857120407584441339436461316661870806234942792199661130735135578067463307450152710032041856197585844869064799060747170935561162360959022254006371820266943639868106494550443922555204551210799973162776048592201575028361251063335353315695803347658406457398651490103465893227948920314927039575963375865319092487536193865124938327736880834232527761398323293978453983122394159075560538687282661453388406136155045491355059187540945564966728938839192447327447146581325580945370749712563163390975482454770854929300840337339081795716795419301791319920164190362119700043686100050261161545103450893124027209337846395000441328615937612276548935497374919549842912799393363415341829108152544069549247807532078591297135415869451700137573676098168129118033127378886480853375219490146449402691265939362623344502438240870275956059865732628177830304085539035682172938678508996783092215344485500826187630912010766893318613652284556045854168671774599277790330707218029279496081885465398658865600892117287917423820303836189814162233386281833292184927036699582849805380373363261235841928303772777268330093969619243055931338974072833822311163585194347478078212367298860621103400745912353259904523010004629564915659773856488657699099854042773359763091674433560845417170675518310673942628335810567600404014816422486176919929528603704942108857182103950614459269328673518621447630451208082785335175105256723515453212950742151687326087159511713623836413041209064213396744916940761637226743604121143298872053748433309992469785536654262435227563072283227067730633871980773872800347186919753427910487772253808323856630922513037427761436566378022787493569129057651729567008309102253267492699195018253552556609328421765898827801573770110456056841943101911632987328513942125358641136155895366522692452257556259950195529916613190779124448361331385090085541408659078719977194955277661075056373179051060282024292634393197503659374496780873064497193683984871303849069305604982849110325152042493044916574180935660673827845076877765804761090150440695302989252991124017115366631057140473215239901544061042870302000124132956549215062937870221821999186169586306522890575354991885554719697083139194111525213936177758305417318846517365877861282231003484005697669626510547056425880847224147798680997144843977607278356777406101340671836743099064318435913231030046624582904499901345757687021825170980510550421914888769164534454691549455323653181553049612814636786362875922449718922643579026292815695202815359327726995139887915464577185008793611299985843480913812909458857557818916323651009965511505420235006962732697053696128015437071258206554452251136832939237634874145969230728052445139134573885353732978589237914360813950871062768589797924778793166696245531998899132152517223668423157329730097056619045309512612513192413670111828331445566208798855143235268341536673770647999693665050227810424734322783566857533615245105853158402255153231363485333787512624213530526725809985370307213086716081783944994182834379212111440654403113797275522335167956704133220191665026552335427897345883955969216996769885218311785797048243412326372729733650696323468196358064709407636546445789748373815699472711163854027098976256867102017454262570765005838631923837493083031358439105126522970518653858530910291957101934848759402208353294020583163752930100199329354346119824502250999964677389281229443826510175025334700502881575358980116412654175648095163086476166822648973279133613701106467143861787177853287648556945837006486003408068076571834719052270054433686719273992810430634702068243123869707842480157602270650172341951921343276468377004333446378765611642697788453219381906898727900571341610861258039108913288537408068096359434650533843629269650981921097837808879394704959126988601606241363903420546549437658180766317632196971571577895897847018815606363683377206949247491412351213697042253157281362672758555041133978098789382130186767646126550029043124482059084886295138894080525070607115116092252691664509741844816317170483391733094760653036292846921203001137962570233390287744261640698189324605037168486168728238869296893579531057450642181338327205493117050161959216211408171091110293150868631633108552654020355103795179204777304551577597195561313897178478114064731715509301216427298711657320850436911268855167478586009012948696885243785172825685124332965848178768187965249992882100774427812175738923380608391908500317775741588457164464400611787046599910638816148374514625112981358829808426442044755995204698588038612108865288057468174539390151042238274298782411569169690068959743241957024410762799941125506173506605567257692807806351363078194917187672865325708809452914175438616033424369797390221640441542560345577266034037992570817679474695806257699986910747008035964150175105415193278492453647089474429736538909150314220329809242496929545351034173370506014757773308988961570481013605084087015361807257465105205229608747191456654892351556698959470950856026216321018192145860368529648418669285361039834688831074956055542451055513438867364934007392655958013849031844731365385381645586397869335124526171049783431618746946649619070301106078985550203999348936836401533118871937888558052978397002121512034258764893013625930454093785435129838133402160112189916442448295287834477059013413872009801695702995307499475813090105481115176792338517909596985633876718161845357386825190676390688569044294941084253034494856151012241289594678286567125739440969991013816033286685522603397367800118457633599694719671714215972385134145144441108901154894629357104418856903819535644530066967762973851713383453342868643268342515052768731833446599933958517283180691111934669430648611767237213532159150111435799776859286316062402029077961849126138881294656695622889404262523607064530102058144748858565331523449323091452669127550626679860880135384632574870346353258276721339706709373160110126790484672012576899298506737205170026852113062862642138852781946834541724617452090231386870678128357522297331754034458026652845292293474349044398497906942334600414106970891049018943234323467053034152941338567131379044243489581633331193679959328920317267180104280548582738707223109058667206975711725320845573355257991530231566307255561444969992066397113393841329874650749401973856174386281513885144701191330692931137096781109343651511731231442560991936846165669243132507613052337868354751593806461951824274827343042656844078816132090983013302286545227233466456074017326256020471662357723376136942514717633976128183647452150905678430346024112738774385567363385223071391910595563661248140308326654456079176480228508051147335613139273669772418028031811845927208461793096665426345002496462017729762417892691758031571601548686845570510942436692447115825622652825365474842016812446892891470224290667165832462385576824805865971534263746362420538435616736161660689629866035844163387902671697376380707722836632085827369807727836080048549870993516232574660527227102686709587815046680449053675785558952022891324211726190815262613035979596520175785074633917891836080786147865228801558029833031637562123917451742682914177903411298898990126558558517148372025754731140345526799150510259789486005778915799019496843013627909224573778205225740909043614395390221748327483497627073365052723440036152870494455740365813507659679462282989761194121248314760170552622649242919906845338718565395277048343027198163752740370078820138368512887895489692791777206728253408111177857200839158309087943702419537170288713450789101344366849397799784785975634704455527354759909934918265964891569156625628676526982505145134860775106983051284915156224699678742743345339925340653206110821944256011627123368790925998758403302359744491744401460828880835358154853241684967673716273063198955161755500463974799587260652418374566294996454899383887649208627479588507598589841561513014715683590442504125822885778391295835155596149257509842446581517337315765151605346549106330134193939014776063237736117605950345931751351889611346051462286692505779451552210627509429584626304968102675244872407521481219988794573243146323179372860920318973916361163022378992661797256767140789829042240726351629572048437500319022771310595510743059949333463643971122869285443090419200776232009687133464255464447358037157657247516861883877616354342523527494248281748768059638054233385735344169854991801698189761708074053066113241298278984096401605626088938230472305802854050506767967936865597032589121144439703543350646387731743824141111821996520409590368061747860629745561571869563404222300828958698014117468107406849929116296086985521635609824708415954329136385308057389084390854940052040857022745250663665627722323104857205157892823589984293917171944730530383234827155613632849807757520128731803687310428500882706106356178184599366336574353856154790831618198476505693079963201412322713250681586051738047660900643718498587913918222263130388296248675927491891889597093289583413107331236877721453519868253081581046041222062634890827481948719598778388031873289796706956049938679020088412140045904776285249445222108281491251569828230603226572446244374802005504685112840189057731439852046581164598835440508859947426296123998472115817104112817242509693637274988657305666359047308158842574644154799409575869679440745369656027838578557889187645381156054061838920430084413184142155885598997670707347164562494369787569051723976779716122496748024820026771587298921114491137794538522401597556295479454301383196319425864926844900751020027503322355652352737378747164985448704397451532079780144666080682360419959968016443511552368054390910099981065735342308800312043219131183352792010448600711491546775801432885454685845402206260877708683461853762152141424555847618643319681737150054369581439530507377081015919024567616679598265751027597440725432462287258868784390735586910295158020115588976997325971889018947994772048332331581300405591622426454233818223974677679853073476971137916506946807097343262009439752059301605060919259347983011098506231478807740501421103410071107616348108481184131792663036771874941953909314448052614584024871593941056866425107180283902950143997105083630383668316687464508306717740093238870366838445363101574482294409300051969989383373986063750877855133443884642726895994038624874065348509709326793842289047515552234590076022167019824871163243827637797800953360314017531478481231853748380286771725198030809803791150306117805791393782777116940670224427534703764626358112769382615808144604160134189984349070392939576878830744567310156423451232637922370550483311248949863137375749766555044328340927247418028582932270712927216962208688971272467234894586943513885540024344144038536101764933262657895780300884653300292489081875979814136176487691187794509538372775799813122572534963883485367017422948219274983534951089056673702760268082018983437498925261787198224221865318379226645597942445931607342497428343539676227031752517921501208540246286941302296025224192019024722767408992743426771108807146281528877044373026226556592946602369336674135042223675090917898942664530906535917090741885306662404336926599008089141812860549018389626360993557102360254774173711537718636598836002892130171228770053500784959288510353536970914765142955685916359001218999069462812463838469051695347293088152365962935608765967380747314674706548594751214487916672340705335034352569960170440482063263742555810963546796558692826400659500844479157061163627798648073835050808293727576050283675952280348795755205141682090372859589119937495127921481180120950556803037955272603628335714721234733452075467946742796995117742051207276129486642923513082282594086405434991877109922899735754734787316366814128350369701196887944718544103865560501099924277003736853632413096150290580726994421514286360384129260306881430453209047550726472430259123332959244299729410464903232350521292617397069453983272485252637956373206151421311690584245199292805661009705989443727787307343202143252557100281693626409486094869462471061344572177653031369954255264143216986839353069833985575680687948229192549735443641034024498631759254374465899421756652087755122000803563518940350547504024598137313371414807989326154768029559397303126265460051235569857894789039924779424222841993291441881953175086260313539947611007084708113436887416372957639319546925401587485117467300912015191424812239088663367556242246929385880404804445233703178108335664936532596761473653240963647812928300102908214962832665197398064112638284331193430362914745259060501035851917583300704281604407626858246882551268385260112669588240620900633756209930857973889793224522595193657933303703269345767030626295733587997175799438524644977048719724057507564390459171360797167743735734005934924098218303860287677899032093967432273644987712142294792836721946138139552744930592349625481149906847208318349409618463341440471916721926790649758641245065588697281040858623560300443278428834164416147783178307364154837951326135892475322496624901568057785035336126885367436218039266350697163035163424925124952582490229177694086253669920674470159958023853348501969868046638178787096040425082552917565768656843208143502528487722226626348110430667506560800816041328876577216708626514543635622628359633262778339466375434039287329293877616981758775648154879830782098622791764287738081835462220189128021317584375218724053346254880987037204013771346498962369928735868725062565472636863873213588207098975003429128455926473301483356190610586185745273980353951361468005002166186935881022263804250222614349513991535434681364516788041953227552038341870424122521356807613948240004163396830038220595975446255232968996943613594519026767794505538147852133791884401287090965945976816005118475867437189356928232232660930184607667554459930377685932478718637399881499457386506927570423007523475525850155136571488928804277752567843402632537168346572291613743775440520950891196688134088151444468389442599475786220500058333945184248192578355275133288733329882931127081174359028361619176178462881300795039595609188632331105944955780320697241036251257106072609988267285158417890945947861202302954745891229255830815758233329921813945377910595372067667173247067568003443003265432351135120951083618343827933261292094800500202160235755733058967660738133511075334881329864414499591853094998966447090137147401011460873634600438368459273966158032589316036742241552412524358932415971542797411101187544408039409368585326197996538657743002850331383438391561869864434431422851398198751426291291223742476773712294310690151145280487070916447540269327850354184033659669936107030570493141277650167840694123505825378070026444463370772271084154427865068209481009423628260083856465957284061303206019268816816009207683288253639949679391308187707020379087845459885034070555512923106971332550635625478714758464735439118348217637813334956028692613643304357801896000073341685734178999623901884568464053048502285172714062867613268752750620786369147850328266915100998891468558278400114413855281575459054833850838782566945510161506038358337703498793539092624827869560223819525520355263911985144690881197766641941514772954799973369079198066217312560258834887908399268777624068693840269815814332960474774672992910128887164875876055905250765030246331755133891911731326246941422018606529097490728647880912366146311839505714860635873848301560754958672132140432671059046510825363823367420651089551789491701431903794234549136549295887302155936684297946599370457315609733365249739489045739805209072040330329977127394618269500807882253118045330770390501255477903570058267515603637572668258443300525051287363428124390425295999909712622137121470441743947391235947436889088675369462489110760840055777632707881265969490514361343897326899327702442338196986668925267446013901450900481328667820175530690028008645505789962546071399227248169046565449185342510742354048967871239928725689286509706395107918758388865646360129958226811196540242218103280908177616681448558979810375816543076987704492498038914633001543844916463204757361704439439339696239406208946853021424467088203578489269685589257999179934450307672059993213301747507130476554100755639318109643539430696477231564934250061102334296850077781656885201885871694176945447683319799219896043330530045262882850970128140973259344717449592786902997090450494726560837697851167009852454716985039583082083778866868207562957904127651945646128106073650153413861574828169870175418930471109237257945094259258421007475628418976654445232123129513659125674027210533280196313321532741749610861435234214369941385263738752822398250905123928794319815064148885703569041423707141842286743631209960041793895470736825859149520001316568184456961220930176389144908202946823776702786846921160017775968116806112786981100034698688704749683120571691703168577490457074661013452568207230307369864687957967673437044725234546978103364224540206860277412904837357489000482161249634674354474957005714274847793279516402228697808615549537662044877520223427922538253545830240260354949422775242496917506015671866688936187301282425070707077519580804689633098652442256172144144642801728172059961409200721816344426529330892263392877558684579083500701928112294902814972595280296360305757161577753358886685850777866338186230588817741927262364018193721479384285444623967891751497797155219025386724229564658611898511222303188966916330861270205746054236569607891287758666013350255662964117474913643586744238768041201360923759268323604226886304553321032638436465236437169197615821745137703300120277868369685069123638867044837806908743766621552670997233062801739763461486086807778829138638170174645513400652155331634770672095432999006489776034947894953370408009773766583529450871482288391669484362755377831498640112359427545738372408088651692527201665941598565764583004875586297122779996749582784418492050606605805995530347088940783969661732162292573505209900384244630865381205647147880057436052932953897867526778106246817998797626168470870731091393418222345888314880467178519949026826883087746602616497242009166903977324326979510864275949446135456604403089718529710997802590515584458214415677180299430343313426394232773643840624893799161246278206619172502998938396264697154745977289178747912502946470939107041895526116944331563607525907027738421991655003336418850355953070187450405751148508997343846877182257790658612309885247496532264565324454556231513316872483048494345355787245096054423073460841556401605655401189766986112618400765868235255190400853617116463454623117873799632944117750084151801650968857675086601914457819641405155855971969597905238452493555473515042687453072524421584801842063896909533269959289031000353031437253553096721171507801056865466492994198651651815453610192901174386221847485106754562980853814156297935498302545916928793096019442141018108473855922336648331305748284892411875964683490736185304573828992139619304242094709934517331462255653654063358732507179051118968186606766776172628004166932341459694771257510772949645007368659798457893733919976723137430268019189787608366371430190622229274906511813924575424441285000429268184613528240595466409615756700200944666155568589939224073131716479440902210384543575887752879523563683979104963082662509337779988137564984401137332231764435759794882977665839838591584736388592415289616499394736135765392426814399183070950072126309249681299883685600689170514392147652801998485036681400298672463963444461818743671346798838601352150109574064899296473338142912352126843693586827393022050019495847277589947244782924783917422465373464940583929148445472649649515420664030412521445741331438708373410110968577197753126469771348850034093446537379809230057367636489784015174570578263543297377662670920788220804077146089878126017122666804197643436362744130085531425007750039967925483635648899099712770384161698239481250094671069562069554625319538764070442468156696491812677353600226311872903732513195059267316451442121433872242177782105313043259131845270315510043690268143097823097246114002314838368900914130014300106509243572526333341150448850709658287031896172537771263927018657759656035126294969757047029252895018347544471024585581376538109711981711471599798771838642060759102680247760860368631452438463777752583690207906996676511672549640259136045586422907788344299623216559523782925570637950250587582647688879565969277915801851086156010259722917508628039394660925512551021861848311156918812201428293718849629672699380804998343970431995404904996616440162750503627473962848311499968810901636842718668901569718273426442844277340526866486147453003961639651242358692933955125196726488636290464818948639055948831435165126723345071066106190010172302427911814781194440921093006811446474386423298386776119349283989953026812594142672425536119758464114712608462442770704639014290258917549393707393620578028239317566478709516895302963304845538054078343587564041305997270376757210031492554917421686711342577733806641991295867387647536450901906406976307096383663966007064980444270707787018676805537727691529644805871426244263700353458865539757290200162907168483598864198346717235933132830528574533792459225331262204078775393265118035764582658177630647792891721101172395904707656517609903842913571381035706542170759455531229356877356738742540992994899240000466022322048337476586526098175818705451456594769064039190227693844810473534970454280871952141011823514574216705561517195887938402703145710065861248548984027424829909090883394444132562825571712507519378363087592256831921784570021310568886514592467530150282589568589298044872704109012900791068879107324223585671566852026409073229173435627659781380168769250102540826297577594097323004249967212388752616817099205536979461925834149320791289009502677589635752495562797247964592843241864630096641162763380260245963334291759350299875694906451976327348535010045608735404200434380898614742176725219726914292078484648083832059082581751226890989638875333151865152557100564479540021449566717314357611373669111994167990647098958683734029359284125592166196919846269295428992037504869153998027294476443905439065211612607268395480211976453698996746990990394949698396654033157533926027195796845004042099873490608513402651688746771228572359243318143015778727424654380753049517181563950823499911416787411210549346065265779369220912499178143245129806109346179956439996868672977868014532052959191056977494220261075171358541918896647830074895397612011189913211910774578459328632810287162481581476286427867239959761152832328731881032783751839097119775806193600111468584357577873977739334371636741598694869036045398220519219977936390800562645578907572240973835750751765322420641008390379874801135200672102782074720927257075326900380808637278913724750712300613826827817231207257782781833884161421900575468969755020363609260150217604478911096467848205818114336477102026545367026975645031489997137579868344753857270363948047995631887051374724988196435563709893107203381628339490453503054459284437651141236600671971603313016921461147904523585923616019707541375700774615138805071108301774407601911586520954964013427762260416016631783620988032050937538347854677487566460508770326304491593442717526376724892401548226739159293161666993749839560082232380368064411002088361596748290509675662983682695526229394012355711454779964271548639651241178452776588164910791305007620399132838301099229022939601651913677914941089174165771991340144397525797387310117028476688471943188942405228590607512700741921246183766634739260853762646197143633383310168251531729538155288802439235537342735543893447671359471603069116620987963366667597288798300252828908196056897580219412894581309497633178814062838041574393702557856476898830027825391136399983338106140343746645336523078137051761960076223184776419622388203934918431086733098129164866870025547644280192604109669705523489767424857931627616058407077025666972965522358560593612255074099083465911648665248549530568487634755378063883427787379224248392244374134324007948170121058632781762039341568998514792160257655951829400385517603091199321588277969611745264499532555052332718605259047446287758972696224651987023326484461739038360473656172994517829558269091484084946014005827696912029812885302656942871041488821176849707500504931726517867367117771582802612511414986989748893887432677952256808894347570555270161225539977331910720735594543576739676069501265792094277096199847316281240901576914513401417410115908387149415289578450048279434007644421792670586570336037737551361799204511060438594820695648694706027992327343596060939859536031895244223446395118894256422116749855205904488245386795496429610996886550476478602144091360502140863433250892235992097934399157834994112558057207231839009107387847974437261473572074189439193671000789778310288974355031701720853854350241156227347592658643858837106908154186109770349268730095095445097752243140595626994553787674782407373401687704169965290714521299004525633106363525521631955150783458310201642502665393981888830009178541967380767818245038308441109863744067981368535938112701506359794056251238488930652751012489409578769994365018499328276760119444927821981896047904247557310782665713706896083749819677186403527453674464292552083030756867388161379372850341489483762547435515524839316538474060060440218294458515517817849400398863281175869213293493389662955695414532968193061574267654094918262419560952314372140738816905886992485288715780133239476636741217385493431339185726463870268384238655957427059204109134735634713630578701310872173640967344761069682745342711140980563685785956145190516534931390324110289983171224760593020341513701685932501982877219631650316775317849186649119627000843014601804160605855675685142186507838341517524582209213905431496459026118784193087693586952913443451214356981508452860709836699913576304613708956640749303023242232843368987162405479541842804258730241103311414351842886870472379852610846694482349748463560648123380851440428601808457440632457657276634633967641962492809035276205326310277574689351955226839396490945504933045578615807920127289291528157244277938216029916215861204017916348507028322199757455697999726980494256973719725583380812392581772671048613219071049092056451956385387077719911462783943065792452387350491375463381849773010207469161806861721393790593918606261146964949132984228872663963094691205547415890764824058604001100267143429596563112682592027661210268045235313345770635533339222145824027680855723277342990133157922413552961764926095765641333429614428760603604574192158672319720911680592067077512898304194976534451224973438705058093270959047034511828802477286528041409344506214195026971188908611379015563046105005256502887417670193893690355696095264679059966006236370473673548180960509791942955930369390657794661137902264684237080036963779417777570611541897928372289501950598176318383040770528141642830129243893464416472574674120407550107688869149314012005296193144026067041760817682599841444985627914861187112003975727907673819637906575423163303834867352084334461325959859475838165504207619287617006521577840408151714014228365095984523698423710371676006132063646721029608240122339669712316597428154219200568283369216676953550708192683531843080774465486830228143681747351871995526697041096495530023716246844464647859445968932271376704537032409610349254942104013073136293506154448271982880166512832287748992812398944138811090661742792868962324453175939607667045046396048808809057653023543075571262120895766556262157931179385844886518784276795379797039658539714283937108965526630505984789827889739761398235775815984008958410103841354690090321165283015887242208535296973526321611382259936933900715315089266434061203276451210967712827484560406599453887171599768809871617625635653161848468364403676396446084995961650861942134128718507371363830724401976390806463715804434805552369253134497661771203054673017609434535104743712483766669361305601199725461959776426635476952774138885256177780675945513751967884014201877546748285104236448642511140235143646411890270649231453825119451624865973817525450735303477573737517612529229593954464312645279041871425018300557523369184718034473405631167911932123142548699350119439715678869758830661727928480694514000657731618668130538684131062807450169033084780369321825519774537649638903139161193738721696115120182220507624890332948891662402474561957692768035569955325212122528285129097650396725135153122719459222457041127188763022934459066476260641943086989131581843248590517978521989016383074519821537341608712459737041392302724445732335195764422479373366387210020686765847177934456989541119520527002999590415955846833736070805030491529226474304969729480876537422870230691244676443073639875043206657351378397781606968922993215073830994721358252845773538161236647326755933918705847351528041299979614272021745359859087727057667489430359342391515929270504899780775888525324869748197195154113771538139133985149584769805951187514553978338287517573478978634187854063475667224949911507655284512933529976914434828754176941000110759273897507201524798797790754442752354173144096089000431196764430635627145902060398227385728807033059308962674054101841545091287775528510201863808156746093712254297164670409054210414603521714381398137563289583821543069299362397229148169271364545371188268253833220705607812427892261844206413998685410532237305813213560108396554810791024153925212716217254384472581903286598666554560645719435300330776970056443545210129738249052702782251938385425631070127052537497570355749947103122323717741059958727800215944303269869398557397261903667387764622302832679785542288119930889575437913332235264067736810885567473695179576718591721526659631564319826641791914630752733844457055598738747779418752052228133444809151236053602438842498086675010314417590785930837735221280389571242869534829259905451087460463049136726858426866990830174467118890376648570258728032861344986726274472785829975400151392782225844374478771166841848489540241973093700101836326795701096775747090103787180269139145635489495384490036143828437522968043906739914207508807228902949729252666116386700950389167249609839933913000335561970396356472226533342673422881517548711920444796754228809568385798250717861715334816180895833560161966983410055723311970068890356733535315389776264465989557965383696313308568825690256580962435977860886403423445945755735547782164534919509169589267703887999586580027685994664948946172821952650600577424659013544404626274426084659471323761399287753834609405992840107504126002539352775868100145539227898962531709330124856111061768799342587922906601961329810065433137815188119019283869377165693358310413349457646651572309177770390674464696145816638466294891930945373711806843977198362683611306024056389750603060323416872530525666623375349504517247254605138403933807353709350861923151751729187514854866026045792135660639424438922605148694745287298853789717361126658466544827877351203010177117783102575677304248179863542159884605506414407086742237615179098111778137087767480663721839905116333678828574327558601642554210473987878535101651709093124163646940770567895419271678852306952606922803428633621468463525363567162849510266941124596095262772291038034016721898648586654587051480684769316146712730441536695110281126134603367367765046477973057193160676802006112195057585208081088367561048364438119111286975921672545283042213737080398108986614102784334348423476007222770740201348073841232357985605667793025654198592467740766551530904526671953149173105646601259072585766637408740538679348525984455799941606228089249130558275121288909685884684173119551705041300504145783466257917744671527708310215005837500153052170289982093593880961987955801080873677891785231019418530466790639862206482022643947423168582183822396256454847918466980910039387060214867516130349649593204801541667040541219484620275014751606336116607476061904585643677979136813565046360733110982600103351706299252040064117873659446818733947185799580317503014976102341662898134800255074511984519655520183285901587411158983052377422801463974051465706020042949486217883477295097467668961026158847251436419877741819217829702712585264180767501580535857442466325794163097888098983098272961635346694430507643154145632796993519285063812262639943238046258669181793853234717064257589492476200459546185774047557224225743684843196010990777266259387455813649105740067566798967120864189607984470655972409178138340057615634754229498377746221371828060149317859946024302784726112961524877591525842633749004225864043504325953763952455078896314187506276644401072884578498327287752512643587368408902153196572767844076601324004711418382725964996350565101163903518573130347961914945688744424658295424819361796658102813927684510425681889914115076822292077249220669809012876837198883207447802851513037490835715199955006732463347622596507735490236336366126573784304313806613652038376204281184569554765592186115363172736121583370405444139126453377182291216402454635152948421113942876677037088314977055566492992595981598812421360834079656252274955245957403248603052372593515896329115811298854507812645674193850340270195939135772136048429411695570642795245356585611522164019646952740750553960603790951320967364661010293861730894023807621352108075802363496056260263631386173951685815731001052320833393653163746212025911756543677471922237092848544921631174218162360155018595006651849912071226937350582667473087301951533091797405243516776112294520325613497517416271353814689663126354695762187578478565881328342205248112378641898956808131269125766534683539622381597239306352660529310164066810930933821657323754822267929218513110666209948200472972332308366909617640869083415084792657393314921022819299009460230400242269423249370597294726570508503564725336502176721997680154312013327900046117702444491010082666146836344011167138108098842102059104687677015581816755227834205531246024345494418663418515175744854167179431884744834895820922319519646389781676514365597470959992721988330628726085660497419550883242303127999188342377255535056640753235002947759496226042963809770659763928893983978515943639993193434569409499228820856656598778914600408729561254009771695088192396547128573793722525339177179234395826439032349131835842228550591703760321927104358105780969009841329257041311227607217250642410049283981281093540544970728754579645355032912294155995237122466476959622523277083459894100236740256778678149082016864752013554024192745254526306254801044583688098060715393104354890963245052136948909192401754350329005910273938447577131725220971511614735863978251806300446200247438939099004751453767046511891449828539993331542021547719123148939537100103519544922892755373853456757790384906583736618232877510050368352620566610922569028194195945032955533800317524101261432061370690555312024901097246645079903661479586668841113566559887697837776029806937500763146030066544968231611218661822824141043845399908462421359764583736706078131368654582849163400240149820971019364110022370774873546410887628965649058913890619851790422102471170094537416260221951084959259460420651666333604498475752925025569966829175724501514370488401938594571926651537788030829553337463753682399707208039876224117881317778648758808775604489466686768473865554917859641999196437310680599315679801983771253604147248966447964746551002391704835936774169919847784469821136692687766583747347325533980501318868705157956257440071514187452341260600184500602938054489218506757785915082307337187939802282638170991581446863350302592615465666345962431355896003506107994912416490541946198219106270021655092207512948183832444398382495992532885479686224678521998698941976249256190810231773116086306516336166250246948473829812443923532418399335387343778511371961477034632948513221062579836079520384218951860866464692929338619012294316925814316008417291093653118986637560026162288135435278341714930687969079970643998281363119808698126024760348137824507645224060174127707862353958808200980401173360574664505045518903884223733757834471607552932206574964602938511082813875048519783096634210589480043903276937141508464393010843161380962527561214448925636289581182396001024496519699090787548609283048467580650613073527742985779674034961383924364388790580578151071436771726810482548274196450948965006579144813676862249009710769019305661256105369521128131200847876000662795281643960508809830942661379450782169873400063850819285757992265080561302090584014767376266397372170772874267014800894212725136987551456362799851778293853835292484976742601429667954974135084413687185440672218129549865797919951222764027534151495612302133423820649923522338751115557798874497245191415668998064729040058175283777882207128051097858814048969092443330990528900054620816977251535415841990671254526077521305466166088192868876991896063994795486727911332601363074369856090115438485881841045410132367974342126438475251819219914840959594297605043199981659151625840550107613233453836669207807965808091499971959934984236842747584093041180095533662781574005481458528455172615961187131965801036930859190303091436973192298204611198688847652365475660281540828566184686320143039638993992521864023189937956029084513689616303768867140652403858575636737067964677907531342447207837855140779763036472220263618920328506935320528733817251821690156692408525783688230462177993435545869576984883066437785284723220249300290158961086562929710930148536814610564303987417764754100384434184470328794920770171473918403257687174600766827912427211520558615053826650921171174607128158035101814625918988375736775279683827145730204455622736512046322233973312431127303659220166812217926698758725122254255782510040180754426276014991865225945017244731416264349150563807002988157349043622081060490246450358199405332093262943808747375971020036223766501639733776278697758928962302303244583623829204481164944965872956936006298840889404077552914398177184539518381827544572885919137979804529194768144860245047289270241841818593981215110364810941520824596065569234506826595530751672070875748680346128172308163272190836136272888436681847040169777759537852164193231767073989016338445070689332030826450967772503219396671721377930824346535793781830675712083536378907136848766455750074646650656399981081517912586090051731768120710690994208593094482182364102766658917248607640284332558518821504195311064546894323772222793001108242769375309426658411818926338474653526332497917391476303000656116373715041556323486329932973656440569803379614588692126769821554552498847781016283244090419145054863227280205917249490041439777706828074422434508963723966047964425683054745035717602675782201516004759633783820833788442911703638466913384147718454641546224843827915936560240187054010259202786701287653498342092941216220922993462904260463022125774660198022885700281795270231387335678241830631186644312074850660555852507388970121769727721532569736280607097208991912760753790875932155543473255540261827206351954273587243998420305393899195148429887169229949096841491376241900245280882657772380055707438434468406772696524847775964397881030971172568961945135693098966238493044345841326074261122266470850775984808137431398316479134041798869959129430274414204317592513999182827117088789646293611947101500121153020418469957325576168966761485912132846331008028797054543962186352564013632428369667399599760701137916389010029540698910693597942201247373213977601907682434304688230255565545302720671170433779102935492065731245968635130589691001240591414919877571041428086059069334985025654646507589941797629468040703096545817528914999612967674556635277586074790757775766497966875700568348730729435017968104570821679456587401090890125562333946060503828557658459183965638624826797097743489925540294790410581660366429203778753079075904711953472570351968791173262107657893346467418624662272371549110121074400087741070470529223792073775895838816585451732675398216740841047942804917333811582867743646306938320705066554908879651495717405402916096815700073313375972179412041883930035488476616613399403076011905976963397614536041509985906362803268190216473001072731918912556539609906629587070321178928322166965578091804399054885840202961205063413130774824768153069499626168072145201185343717709365758598399328399020022813688263341060541632905123608073259878605991304683934689979857542041174197014218805939980492251056724119138893096643572969126804496141430994622142158576123290117623946135530915149594993876731297623968752331457159664722496413591276989378239919711227717338573749047996415567921106896869392032715333280268883790926394044290970290144304340380058216798669063432626301329686194772151884769173460044851611334334355195257071441850055933816380246407782210313339190917590023671965096928284139813543889439729059713810207218229874817132626163991733647367854760770232226890721543748426341603663600441430746141200018726185202107308696185620708528198493394741382848232582922171468002368678988384361444071629805178546375881136035820984003372938351019642951650677831499583587384192332565827611154473263257608215777206116371030174980926077720930856674396832920182185206050516775505300239513190693091399039206399202782311085267334882954434068465702234773471855634873885058999076782055270407620902332138805508099681586129889971150428211831108237022587543710512299285566359421355307153512415310999972000822145196623023810223258912632712088847065613844091908972913436945019737970444387050970539439082331927312669242014500265326166374137027089636229902602465632349454161534356326644165241710305134449044344586863305846255451269795005058722555068867421738315344624453081661563613458839778567638340068534352460834617720531119872128091456192420512749904710815943172745878599167314403327528824001878494763473455446357356493883421841685926166414399408092267405646956889987150651682607292145354592527050364286072920907923221151318166148866353776682317467736346190990518962033919975228517073267415185056224199223013929742806662084472125981942420712006669588495347741834364345372285570135513109249172850150516996364879687950975936522558580938446535542915200483796956354940575568855142864599795175090913412913813066054380882334173823749122047447949674284424578352725348852219294292368328347139102849649110362468913126018785837822213331839553792755381528925083525909812161875068075804309763173597435247120647649813027048247502522688320094578540163566694733892700324136918639836380645256296406235070237225603265579566341306771213889489951787430686410479913821638754718548587854368926524001266591394237337894610536609693105413130063591543844439519874911732545811603929061982157592697550627347022947180176685590408480550204656045868190931839273623182498835826825316724601396760364019353862291800177445182320231981317060412678170205044522421570454218064642963273528482008899750883683362798671149933441703557768172572375306959807620661567128374851235279254402081028459934336000648707592405416111305596368144487785645185751814868134370509241716232085566696572630739745625880676382335759997948189091000099163838489946168731861451819998645359686653639864563079762581393667820103432295124900912563723401965452081445372204362644685873282991420926236482177054674909601420127676389463530510146717492312015998290075006961581747015661092345988018903735240139457307585651661996216809444945060391557908726265718865261786460432198223257151348294361062245471489514693448631868967412950566133344262836316011065190511612600238043493274834448245145493066038874909428840797016943239208369125155520898728436216666699604875737735781210673030468856401091924966505886649764775532783719555940470810434810068129729991575630051459154855934708645695168552554287310432190942528396457922753507442613028300167879745190125295080801185639015389764161975456203763634758398410154538891041407017528990583911577503785442253690679469683497528168863346071279001010920638890459642567173863226470720276348407029565370936679611705289866790222132450332639614665582127748666072871550851396146597185433542494632836647541779428420873463792226749887688278255882462819429266942243679676151348614983028818619503929388878432763884566926251370612175901199822607386491631818435382300577143307525725817001176877623474626972550567906168149822156362430471929977656362202159308925289061929325003377330402592621284324459215555781668336632145117010449992388797345818946822950781317187765149522396456357255241383555876512115694091204300961821359990199449133491075954864277855958758393261922366787435424551925236795418826795060505310815776119015128225842317744430151947318184695013412713794253441943657245112886266071722947644742334350264077754345050165578041716403769045788584619377577258321775928943994233696167418484125582652058337228158921588435734549480606667041965710441928649175088555482507626679613671990373633780938288889297387221079443246923191408681049748832717311010968894780320122546825101726825691447546322458255913586290591444237805409393534358641049815441545736867171884743028394961601791428141498586415758095872600110857957028447200120214271448913669524263443220961642731251454076822496457325628050833368369194736546277412803481226992538954580472163639912996383990303314733348275560269469543356040612675554888934385962212853528245170391797303310496235062163255206666392922508424499427532655500007970609114252843948564393487653419282900444603509750272969595565389425994556522289406745277997493851930000524330249834105732233389617784666980228635086078483685815635686826605680889066162464985939505312462174829244532671271180709548943038501503760392937982887512091591402483459624196137827012748520078027569796346030180778725871125709926849755859301729603110568073212878008198744004429161502255153042242414699671918356327094713673862551149258216103374530294087067811281436776705017662070928637234572719910879472310077809659292975343683383532385119896533244703717764288020633874698023209578246422132613207509807225348578890726133062177124944517339705987698323125499715162335943409744587682753518719277963084377403878853729979386553871825749954718197855459859443464791010366661600404095449943088262931401411202243586028516447318807395864423095901276539428849649474718688303946476199268814053367363615391027028348694309649982295558767600250027654719762599387308524092902965331201224020515519301208055084070923011400842944502535255553275997136980574912704932896735253270666166913454332170616234575286277885728510306194612185670363528575090487519878218580440521642834072901417127808169595969039168895456079860839340149259005325644753128503678522564890979074927567049834120863549949112660842709171430680843974451445149295863361021411831141010870185511414484542044386264926001592378025207565393321999716920492703627336483109284969674970080438195768229189945505388532760094742898859141553045755271288254570997248957990173356273006094721857676084735919602784715789973995207350744123856343592158120205258191722090158799804106946002054066993474744992692348496744277762978586957910475891525300236779306365239865879198205687630648008825740919940747147335481614944839538909847858289388120125525204819037825504344871065034440908106183170217097734457722047985245669790498143866274007488887161317072156997324770001126895395350210646559381517468132731534816161119936669111015382695573874149728936402294470800527447718790327691327635450526926205564629921537233404100872549731344087612781917570795661125114706347006087137487199762137091432622509432191517462839562562794867671304824849814224377462223755075044168403763339632144262726766077097353265311196178410908887805801492876771537693947539642415755037030382618446388922602049733833480699204535520910352898585592347830985643143854411680734740057461402520426811229548238406290593099421560665265655476814308698132980027952941163957806594790079422790985165654365342568287354520897203434851056330781020763255047857183775305589969631760441046000647609361050577056541972178484229284965906257805504334835479006856812898777125034208133188484710211516696130774751691985460653550290913925166135857839124210289429417943407692955969400396734898984789264751979991461536726481762449870752746267051413377919944616572892121808549257177311085213177481508131732256130607316588595255982735381339784701223488412636026740811623678717932926744039160048690127872493107215270487511840214201437709325289942037459597378783426942787031352144446682727096384128570632013990092319503999748754258777197105682702330234225711979350153830999007711764339317926254725558655043901877777940178677692148276072006841136112647277645590755800870319424709328355510907869891212097654457033275299958572395723051305766823351203349592756571008063247998797979716012121184259674461354123042949086058534998336392124609004492420880624403799941458754390309126141376501453696480659535963969424800115697413120549926918192687984050181251497572032932590801894631195357027088553117160731938396573703511892594784098680162882584200775968524395256696953432815247736111810172324885008423773874426579590708842548915131311740213191140212831061729194281601740653314813028519030070943123729891230624834806573564634937358638695556502377749928432894324135594728358018244742279769752894951770751616978990697462811722025045023100437087730375865193582660101507070433896271650088156574387602191362923826412501454831354850088804280760984305396475636859839274716220051362469838486651669425894200424396794282683281853051714237001572635223865712076118065821456776461878290544765416052123917727973290781444764980282016627031257138421072417608474035140583712344362123401749630867141570640184631767494029457264202349282713445929401512798888426696443475315980344402936585542742256931441575601484892705423945111782091984540452235826086038376539982036288248597643807407946869795057242349428194768216812259683617044359601208888394680843358357190070977937116566957731385257736358432756848301269308101033266264644048167966449489618784143981172843344097520165287778523903194254083248506642683728885021322514558514941886216705781761598381672018791400911691714290905750512031955452266296867109512218898322245082239408817306929250617590175111610488443294771372827460273164888414390703347052627065148426144120395312901754697408491381118816179241147226165649698387716470360906343011654808038522558142484644864031651485232902389160927383096528400669465308347931926769840421686495575782714027242065663816913709078412886856354903810163417861311736052364463243891421690976349161789196973823014614136595774545780369999566439938263042212762130419566946101487797242740861133007343395759526270668130798990554855233759036149218586652967463155635994369793017472306001296451576735275093636748618849649078999379271006177712889933577082585562209552451371792395468138084529641102369121284825497716060606717655638344434658097417706075027542687138568488737666393341193129372079073394575553531028175706903978266966112323623543520836155900826893242023844633452128654966673446998050260419372267922040547323657639618228418634326203542341784286238270836000107635002551265025903877812862998488197919277520067723170965817994097146751817831802792571136098820024961518117572173738374837343292348920059306623468000140077741773834729592238952409845610150400807657841790504083447175980319241016620997878698592415245003891981955367884943059617597687494990390306423668030972037836999932240093119111405568545353972721878487250106307997561936349689197507949559683434508067608435762858236268779515675942490266324882815355134095893043983250774771593986206747511825577852896105819406803524980875636610567304444707781935462253599409137822423782210459780343882210508944612420701567732612649938862333538262552883745456651646335842924713275391126104667237836660801855944180213284124512685707856835904302749051916443029471529555571735579367880977192641186614269193008434768897935272346084538005286312369520234236849796645655630223972836331345673677721904416757576549936547259437229337993097861511179417296275714859457207971670206045683537278945470766967659372239897189467200170478098186577153632684213000000961506059646085995546817579375208437434013280412420566971961643029051369494597164859768262786574189210499847115980049802463659123473540499202139608343314623341070404366119461887781309147357754311504312196426812527696345128852849444597624152473014677624015963637713936681374529161883793360177493813556515971577472525763976047273626453120858230134567152654490428556308641436431198646320115732626533916773822498029988245168722133658488839047100659292830688486969092323170828447599160869641951011583120175969879410529356281630156471115207871263276256245885853346275439083862636508332835109820579636296682832564749267134885698221966914071688390819522166935674480600472450474743958134738507606141772577210689880995916925708716133524133135831351670671939026798523332161062052849585723996160157138682769089771402630169973357821290517156293293180004205356844642975761053785797274260601985935240168559713629078157909112920697740852617554659660513480040001957655995976907948508417705924244482717232891241416364280080558887879178229537698344264446742836568030425383451699907787522748980717547525582865635683982955548437314902621155446725394576657021328338011700414387702523296157326972798482552232537980212996511240705434817571657860333841522732786410690428105301001973745402281758208489599175324022430400197083350227054336213740824936096276353940221295331319344323189519448977700011791292179655625396393595619204395645783711670370400719442752840984968957880862670806589727246746831568320874608609929253583504545924809718775114277684442164064169921597321290990906388388344289333483003269066805511348003975714071371882365366436820092983279963358214686057748969856205362637608094328561849272127376200975427818574024172974426145706666072192959713015602892293281847785687191976830883006802280973478103337288034857552089198391518376195041129356610753208479984090880569921079116866377715098610556325213145160525778144489266177518394009038912222574339879405936551006207438694841355549561807467746265796944606596139967077130240062807246417646571162908521412013491574943927283430791758619681682260174401615338697380857985100416668209756345396506346577073605750139652419386579468585461094271870171077542067791613345690674600694592266982491516051138719452799364653739279804564614087075915632323363734524882563876958788113669008255871669921554439008173518943470893533200296006988275340358106628567854517736853063621070525791113065869841241055872118151521927425765233438479493459928488331843539615738758781674703608945669933997895463101366033003420427003061085820215425682427900680150029330273250761903043764663333042591806017787503219348529296734261626383315376528174719476661921184464486831595658087809440384125928687996326541009104187025651489482522448785116994044839030023612242788059231411231070563375468616580239417508477785210499106494182180641023962979925751624900542026277779993971929130514382950984759589015332631711568577167397986457309085698617450963079233406506738753446880721320403451388315325118072593324403498685463267678446729422451754613704010184426330026153349201347537200567284081771264157408371561598672771099817451824871765663315052074143359327970588613129325939612018940214027332920829523904595282932951891602736185417309685972521946750423643299901743414408305437681374986158518434563418120465800538081080097030814114853796228090613010428696296928511398700143334697249626190021759578365193594787423647493454062943182433682102353327513444174275609200754575269089148899194267792996059420947552996654794609123200627245647511884142238438513391867561098212483261648655324147478686017549044487249603171899235385212309949290050706540602764704568259350036856455025304641893736906084802060055844615510263179912988182247399853669631325174218935283570559112120416680211987374596896537662683489064853819694835704630008906168427289428809603495140065641043190422800446826975249651604585028550525870269174882371497002434015315934218317576202562816564891178329378505590808476847822944676723862039352517833718042908717642434673326509189938063421566343601350082827558915677940079512994223926938923507790881500679352744345915251098493007292955579290377896525093726882882906018456812669570741714503231734104110430120836215385186522290330966281283300955174852457971117425116149347885590954051215335372026840445277655819876665006045022693084175477116463094208893318265928922604623259472228216835456136043761396632393265192934551057596391572040687665486973410441615230989091436080848995305701344817338683897397499863768342865907496324164840402707822570141158930297516407721467078051147744831907952644623345410618772456377482492236731525000326911415996398453526611593259466827965667619601193058693569704724219335164301290185369114428332669171202303988474833548849283418452280979626010819621117329257807918544941613758732387326684207053711571617774728201684211657912334226557255502402055600182707350679421125163403941484628373384086054643543558724052008271795226054568409065611894753259948182214915862796667873606725342984085779169469345862403230365176554791593339783284849116348279766540165199240749882961716167784413175367621727977563628594540623522902982449111862373217003971923141978511439559883461367069620735356733815852075023613026506425797626575845104005349237348329778091961603164302891061273962731507321299126049336030893973565660047953560662872926396071158557388398472563418388084461796561077922537897774623244109181545543643737177183501138273442320059222749642909474771151110872802227194710764239042234072383773723288399667506651307519077568453154095470179863929487520831014693285648609671936224519583783010306712814487087675279484877793145447603021065241443357561126299355317982230081416237874267884300645880581085797892979453156433854896370353430296568828271662106833172624717469356672366776704386830281506764695342653582564322045766276200177549115952297417734662152247404050813664284679331046787689415202479581421872535023614843946045692058362295697271487477432853258134241098320285264658991891608608066620805003847113910375492588498869672413344680182158097181252220331359897724650068734801416105675114629629391756967633269554897712779287861968093338229585511009885937828015847654832237363485464351074634929952670589940958702650279716713559559754181130171507568435295638522333916171873630026481067289306249108094712539543657140109119876358318831645052157855191731811697631939175903806221066671732313483506038338260188280852864966435935004699079421053279777878952928961411823878590597010052802382304439830289551860716341490958001892685545804753952841339611260375625636274047126734860845890637192946437036217972834717023535177316473797584617911109928771333812116093852802647599962614910161408411459819304002897072913589148132873842968644072555413123545040594165291516292366585094727867158667178582110208790262276925955913686300262542162563916613908752316725812453452172503914830779907391369811926036114756231287572105445639902371483063510071417874989166548496595627139459490453824305114690999668967859494574116584618965492777167333690371801410279866272046987253893611367248983152767644524056141394174025621525364985304815595690504297898367447065494648049887276784538919600288277900752882940791689316771562461024458513161582348898111952106692102175002658354526718790252774644544710043665386727162754255976236902694751603675524273399353617382918883897803829082456808844530110666554344023166928154969498364082993873655244165912351554385223806660844433908274023361756017182580236403466363763819019688571701492749358569891448156105333742854819984583088251618425979794323515612968907903181003519497996023403267465984175004821402518362525412895791790348104109700061629529638085286195038143160943275424661416225725408386222914797895716633460238987712373092481443721422800008975122499794170268828734031233679599802431585102520609891221737391967419213092050929417925638844414380217211032021741229003540456267055455476452815789926591814628155071692219697678062767066805797197888810504651710367819052497835547017913253683589445965264624925766531189197628917204751424325421197954978848692753456390902630508443709735984668381583966892008038027975565731666177854685473462050659398739835863968485735575764580683418310378340559410590530520477466252093937709151066635867843371401137701376923482529156333990168245539602482342299045109799628100034314390782339423123396960911979003872156716208190424487078686274853297135306949404579141517136299046724273606402531178925676641492703787571101199656039109689296497013678091389734177281026450018476766968987496940834570900483766248399174758041333017874213714139227111400801649908761946223010504689103083492358757988513665059725553509088799638582191716063217968407610890470327055968305153462824851949495717651296919110182731728884342973705440181764659766252010289092665243949931405309923427305902949431148524244923707851101709527782014962588460020769478116427752912850276735361714543284312052086613872849370346658175625309789531004400288282969314527206020443257277200056564195445923829522724050396991990043585510305751422845771847043888943230025281005185387166811651982930549323867590155816151811981367969995956280223012154111182219274632887964753783290711946994651644113951802955072928271281091419376911588048816545000213692981188252363667043837542071840916683439361220662909314180475186497763813191745623756295223420965046724390569633915082629329542089427178199170609679983932273381239463288197555181213467114721433766705169614264136097087796976612095663266382127952677647067658549451060599116491289956689079937391661234228214893455898182095425824448906878330556435391643384093982638837254214537006975202396146212698949846631079287056541049816007239857581723409450507703201277688184620993817618822100757890399837711927434805494273341725196674196704458695366496554607360759883597567080051393294613521785100863136421815708992241813742356570708020933259561296251492748000737723404418611024579638714864256833763776881357792416310383643522685313342620089993977590058263326629894883799270914171950361879282695534113738161497700852317334577636354282663113429492791004196739631382430332892526867669749569554040123778771026651614376554735253923831037394199867571851434327641405912905398880924783299196103843160810729297420682381019735793425423974694992944924412656405964387218671796908044076116660862696401877539062497253438863284652163766757864996963485836229893234711605704766852277155432886207412992727052124644156173011506909167376451421543740130728224935868869630636917594230722296951373413865108662889511984937735806191668316181388958185355589448281203604007826344184167598252868333214332035082086914688483390578204760746509750238550962000952386344666708379051061250438578433924994857433967201236425818237355023198112131492871627400983461634104919544985836185140919754600724641775021748634999107524013971322730267356543356404323681665695793107140309875076760765106199756778659709387055752066836143739492998671256304214483055220257290230749288769371789294982757395769145401747740136858080394381941684438455300748281875052946544530487527325657536984789485362179320546082977127159587007969844202425973857964295193784533693575760543013938230897502462586124817492309808789890293957233734783007848252866755593037888193495917865337324497414187962925006005743764227974370845992061531528577758759780270051640075501138605804059227183907100939159631520981370445894679248263292570013355108169306082619431578855879000454361104033449806540810027771494395239301898608894264442622524718868470675160604033023087751385898131866364225635786068095245381422603165577678084696731641320545357137242210610160166813732034247953150654578828732409011266868002709223658991975455782616112390140244415895827861414151726421786267256118618242115829149970804441416032888833613317143414819929358585876476786768992276102294185588504003167308489170117481187634994259916821581973996357884953221894284543962432287343874125047762061839526871033918269443819605688730776241359159767633985986743095081060379345669146964880429687749949850271985016178727908505498396800642500421727445232364721045019594124556862792051312514171476802220177567148573818558694718974307292551437863448386090620933172532646046090843274661182780869956015023649642645533763428049249318884812806918942220449971724237032337583731603939533693229623857796707455963325686243206414405187579171930966401575459597736800601487296958190761104374836537686461836851065397569021760905340419127844717455322637305604655568445529018492397378034133956746702251554559477591117706292640328923488130327404408972176828830662870517657244203270933418347138551882021927705180336507287887369023897780804291778648714135447834098713076404769334124154329452242296469654182473214181435866822166390107411389824363135806692236276204319465156004490811161522203326413209981952066956097437632477703717282394620604597152313099673137558561582537830211045667740958861736501723902964176673685147307642348416986112259656889862488258084224406799099841329062975526943750242565717389280471805423754723390370204304026891609634240863947725094156737036315626035021685122445656690269230158226229292650069880759324908847029384156863038987390699176612543513968297860325686905513335670441062022048886956226188731581185315882163829022494228173032794872009939541896924878637342261295603057376207077864399673657481734002618115859677242484471281152911692630146245969721618490601528304193093559736543449492795007645072518960060247290501921427684573283966546093157984797959807410066078900580767889604279981767722994669684018900655053458720236788720643444784715381601757187742687960454180944886527548996384837912713040251861180245908781064889803376557768929272441268156382248924745574516262341930083415337745329416469433915096500740145818247497358570554194428514268729292966374802863760652217158952721648230454342715395099747724868277058797213257333668532703237117404003473164266320136988331698216772978618822026406685265826598629827052977389620827621755677321623374330383136852997821205717129050536464339572243804708645588154202431671444600993884546741566947779015579085939255997248421725778938894455545318073364565671182123899532003481827106420288254470679632559694751077912421805752930831199719534377351297262037279696642902315007898961503534720478330560982575909640178845110750989360055098732872434209168216529701454576491065335681880056739502736675281245111273026515973753352363393860132126521029329390121633593301143451808062453606991955158691985835838237349652494681807518759542904783596931972330707117746045049671151672940843574799682843647368310346189449348363259110921407770735002801270543307240995938879400796975534286143899219580790562212702569429203332278163943777664646406804021866206806839917674139038654004686797957603651631246429933977636834951848216763811493753342887767646370823627414184233893980985259752042178963062126431963268393221346540557310169328741695507592512802482370422365794718824350081477334084433465025027461593108115770437313834585025187996564026252357627384495575436037857035803884750313061244120699113365340440407210262530785031354849104453302009212903178974515691864151192051005565582744657700058339080940155322137938486443279539817126369873005560454256052471975771209174540887260414295294458112869079887022869311085489376305192378800582240823244989845207368115173604975068760122803736945774296569465969938867908856832762956856368352417953075954620193884411242886861383119665696051044046138214938360983684649491792095033672467563243911368925299420748147083364528287237121872901734797819353660503941639458018331074650885256497255363125529734826034732779015687088080168293616523597242363598396681260317206845461152178595569231317599928233061507173278481692420789641776558917299824982808769318549139628077825218774724449517677305879357869678610145957509332770945630327645106249459449418436518355966626588589852560874882479889648913835884146230674391169210883171988770540521010024660051434686501415677289484070014437639755886355474488555950393832055732635010283336242097475506038138248086194487827332503996645775918570778775221928480015921192150446141755991023920006113813221909050271517107540874049547132826674228776393503528400061358092407079683353490155710234987902710169437922963843858749294891012328491473247706041636390068967778376675922541540307268296583549517811981569536595928097961842732987229630482160759706757511744895525122112947254421631710125071196664102002593628641072540845185384508762565380532337443183567823698505685629113149584352136567017178118910513973059056831147424942160890728164636626722788082216154845587664923870065395435539747657183590397014311977992217259943042617737323959954628738149057292266862362342349337966522541488151304463418873302982288282744902423453796006605195693785422998077609983616409121467746444312839859692756326626192124587782847198128125827747229944238949661161394887289501582951115654941172123020130325772487639497302541770886277817744142321249985002847988267061285975667112588877021100203411518379626638587601394849409896842538626737755655197498155114414849400830556152348266240193312519213902413338869477109561945259505275999709702057789207207616791719540761202983157199074810650767982031454038963393639536757138532264610792341619548303242763769954424827378287955519800233459198014289581116728886498090852036330034815850960710753313705630453239945654494751194172278798262032567460866693599249344703011981109309242643864322049384057006747424378429145654795006549680913129964573957260612470941089338888437754086901014628148784101417259151208035910018120643792664184399262160025885461247427009007274471222757552852725009919294073701765753373352986164063961383464680731766716914003635346688720365437445434746377159453742456238061626397019433247826932072031437523515539927495958221220029853499812809423803924201728761843470854552009210640766817739990562581731209378071462531594239800232433493668055081597612996010244337943203503492563415621049660709401628610280455448800072407448873667665913547814044669918972525017303430423066554232656406606397709685493609412023179111390907654413567276639022537213420324088316072448610442139877413331697662440978198688222099012873486042588965327370537708753836049225217769140889910591698273969932124615238130850399114690438594713838975230457744955491571783263799082171681225807859790425451792646559312446470589770681493100463424391666426052380877153796831536634587358201577714294878502294557133472128825478621870619967670916013216874951818170538954157113850062929937121619145067687306188980806158990765388427871103718789339235118085182114028358308405960337910089415192276751225608186973830768285371333165362548347873435400266154852857301961047616540070967949487339140314677627577676966805828725756097678364557649586371118817091847484896249034162315426711714013370005067923332689431676739215161444481850698268543222502274316018300759216368590152704285777048389325949781297758132195301204483241080871586658315839510366561313848330674886200744087004721090806361843668961003100527040402965921397380648962040609529196363476392486623149827953047705568208617868437828023251733494982296180715975793575178388565316822840387149362585517798830314779609250101961520476518896011253337415028821823775619393727243144077085436070890204304465029515564751685764725875421817538595688233932187776483102875738304995874441912113963608165942902684695959704917601579092395733638143155426552815835935121876201548727286428708482143439812718488684338484011162896123920227290020357939179209603136639432997419343586401398108830786776400965584941916933873333216137429223689984976337134541373704178546644548722323403613020862269825835633241278796127849900868381248214209565269638283936164566948629326417345987400935314602702392469754009572695947153833252563329620080709217861622100999907337384764358434519225267747324794635819242652667662155055666632258569541643493433160405694794960611147961558325295269099584082176197877544366726002888798467634041661680444871056898430621813436586529338965448920054063176085708369659422933413061402094178046304536059675220624175155817983759803593364885392023448908762321535997877005616965709755601732535559793784955100227519708358612190824952445000714771458180781983999777264080128303226302868094117083069226519426721662646748154382971981953928164946415322702240528219686416295332965379047130586539270481410634075436029390396849864446374838999994989856477181541994420522989583278656754130604210677355264976052046205007663951631630154087765998292215652897428320846867221049973975653284110579865287207891571391042080419442541436412658000985772693273083368747828845369063267898365599221539451354551989985631224455277313359258571801847226449744916411911109736807503776232505772609210085136946878556973070010327147805771862918860351595545527620385520093427234382228521642379786063514610441603542989041644482698198769149063299117540349551837519258001795970034839665907020851784604325307815782518928205112815459302609208427804848388300796806160884071998922254931535498016660179091341196072392355076623059007250705845300165402563120226893461508590265081826570318044540532867341193853449391845033992673402661281284679516787920917993239996458881590752956564427439907743864456538430169733511219467952571360027813878190455802377820575708681268050151209255907038273249311548146704467886459316107894820486583656592710013255415335574917369653003865202324926677491606245914172835174400997655768140997655408902048342043724550458261217190422536647397673695008477049518471148624875737054439280414917741863607190556604423076986168330339395820071375223821584210915518066760626744077523085279368017811842475758736229137144617471558004170231510125446891908647379935039879588322287668626336442554025831153907676777637669208424518724122622304193459520380333570591782460885869400614521665149102198168170611857833962202160532573953615050557973289835688070309918102480782832059139665357067816203268844969393169658508401763128211626420070143649718589509356030521969986444911686743171386805221469367563248784192223528930221853102404554156628001693396172941907020747199790634979804641364902403644623312749568405826304144672243048687846373908846970922785686219845317401150083440705646712481062240291855728343931178873057884423060051568091665151707530020902954292011995807456737978549781092439001618727416636630829981772889399754993437325319567497905592538347979352738437065536591092622472094646860141492145982709650373375744518232291168006905432991133001931348248209302369564239072472174208032004016366122853726974901146365275594498022676651647607483595776257895185697808023699658368073618716079511255377857941233777396270852097243850866598030758969784730779789462183347558324320952070186507048978145541915987194144211572886500777308972162265693439237264541016232786946758510745396237592506750465142382652614105098233342766731857853985001024028335360364330282816421467637476616170399484811906103273138157042573564126193387027044169601436769648500972326118648694696697542806293205301896731074591026009143804354660249284761836992711668183691567133965802870660344258040009414583305421633246452603521650149248376076493154415435483554974398256617080307964249081743166890660335469051274603776230808205390763037786652034278917623396256747060953833005541042922435865081492160048478871386322898514135407915820854648384230490177131002123698216770459247510523470368289702793536442190476179701747928150881856219891313729772634257200641490849590197287726035981246355770318038087313588010056022519385170020619477187674112480102373280899036412374351803682547096439147218286885153174948748436049933915549987710266815116139088738992837465289729074620290251741609536236030308316523500983748490014934174202837606537696904487010983794967447589260353667101401879233355813214396866880103209163376028937057787467690909091170598729305490886834882390916858366091161804986974969799522776035975495269564254660370046195050785045306651820406598513923873762673208529126495389495361528450607173299582293106228003960552263369402036831445018350344858237114063034316160791149014135650633749997720434171791125833353737987271057644271848910427923173159911599480973577197777661473241183781341432987565989914903648982104785824822255444147907497569606558613870827475731422274888774170721683819400620307905903953570509644145319003878080877865480960743314232465354373200665852739613066082514916953129963519394234448899487161377652907892133427749792402445832718529815302994585158917706731101705446693560048988992154600943420261441012913676086303060444001483427453989004318380969856678703768016191034481309614983150780267132924120475483464276700436598985099920370883338912196972718018551498738849453317068084067316439960384687450897676256660945944264223257358666894641665959071555663606694001393058457025478426470738575942968959470653017057556216726198809108461710537992933290011991009000618430253963237777858769305998783069155226926310211283397802494593281232069416309464857088250199351060633541041854295313406659438906411413616089788770404640490720801508424251051230861610087813218103055734886742638660132663702213465276486804486027522127758586579387322736404670269242921181629329397713395371418808563751692765748377939129200380918291431781650230148788020395641987719893402783041459624342500966426609452496700189979574340412226798577855923817317227554044023695617872272232488236960528636325751035821609746326512783659108580584179835140883594805056879723954365326472918771401651016960521777644259643363883573793083127177822015701072494899890424989753958281220275841023847869448095852540805121753024400093983751446631050471751185508721582577879651259653719382428821154472544641620133926651047205734077862451501615218255870266617378185868392867906498084877209404436994959155919747409026791292218960077113428747404868528989868788783563942899431008552740642856153398261351986978846702506113871470516699254277006466391097892454410471485970627285908767570094814272152339000027152371182870546093422380469459555754240346160969670495264146550661148621511239220706301886950910485665517638539545142876699003105469936691648833362610904355155267725554059079304649690346053976710797681972906013049653142729157415904327265639940910914696743658453826606246896284744708574835432079305736132476199975183451993588735540183692428129455055439006258322109841279138074079122807781806355174004202189958178327361975337113887968684922346716702237536950786995211625451934660546451100251188121041269456650065390048189572843279336058814917330627690166467095163752490511247477686986109349779231165797687433195845893825977849994364407889582479729747301147489211823270022295230273813885203400734368458057563330945793133371297882318714408059878229906056349431665954366869345143366844025618303199739838874570712683334412332721904738750038521062063159148230176685177469302912090783848235555884480305074912081681770521381984486167159999246982137367190421389476687557962715498349946961206872438611151018104115992016527883126999573327802159926116642271854209510541219330362487222146761981763015869085180675129339044200104465709659570063962746735332473855828946568742352053508471972680852376828113718918950510449267558786150990162181656094543122543687885613461227771477016040008231456696190479738343478383408121976139030020753310815196396508596659615104250173492446120141703573993825136351169448368918688224698540389982144877827018985744268103273276404075839795992401367963286448281311219290236338766818448097766278225962971703740495008075517285272635342128269476941667380318964638949850983831450670636202201038830984625057544600445131473782696971906405263306800905887273219631075991139130707658719129571918792136127491401314110300638465313723272736804358639658010684687388128560907132571060407235412134383057055410741256252656846411928662869549220919144884306325758525702350595017760266778285051312492860408433644487855467472709553521075702425996183257927590313059925674331788006575992190393443179222175100924865161030742977383375487074597489407983240028239505845097140764592227571493922868062144641630491783418927829309759785920322786094971129316838694883187127897920460778124528982374811538255196452113244950760127531187384557354762249373299454641215553703576834167275430652522592088651603189064185476300379097966061579029279633531798704356637776388700110501874631871401295782953911985887449746975063525717423562839852084358654984829313093612393755830222508920559987765419594723937188464523470514744560276779107075712104662088177203405281029102799922260118215889522833609991003097031183905682873786181565733065155015063856035506745679724596716504057917658756470279508092172772515324339921385765663406609981560587146476384608244913404059568015849490926754944463348290554313024451331859796202131375838736374745120022954819908757712625799953186956926455783623743481353019684579438218112326005739203023081405673545909032222445200056217370873782443496071469889365079960437289618350017640051164263412883617715628518344557152475244105661454541577997408328242888153236711012567776544750424116597796384975761691875332190462740920699129307954846388141084539617505750793632781894727698951854189412484170950041722508924210178037227921955442355343512289541046250827882831483027178046655326453816932243794016988705982779133332511079833139104537846348482983970366653886086733311081296980430067910015110099402702908748862546861176961606472874697516623796245098349842404166982754736793784491442291696473968521173604804802512752091398495501397426748932695569369696665920564435473513554821006866534455226933130806933832695934551050241289498630204327021673202563294470026538085678858430388227992060097524226025110195008299905272294440252400327740350059108190146831148162566873461475779302746276203237590239095323037153497472289162264916835255769522008531018051984685837632796001304465850614064609836188106891363019617058677597764418883094549479697711448473419468066962831080402467575953874788262253892802415463355994191353929198653593905368429939994125557223094986782822222495992975439848715987690138009322194849010158345508503639862313489856090386871673435910137448946943903276915355668889210351110069476735897773911683456130688213086197512043747641580266322562432103598715856152909280668622175131301814321738110114316491795527909737807013701420688737698343544430545241485808312309338872127296925589046985805139483687219018801019816608623695208128804086522216868290367674049537498665936881465584959314179458939370209514182111023395410946957675159716691511146788094220355267025803115864009486211475983202717141079384031782253211950376341903940409543882096807707812536995522521867185292700751875227381440524987569032536385062332214748363885262288253280141620109953596700052721217306810169040345325930871866688116299260053362527270838574865363615935449802448171671973355017479789384129767677568818787928202448849422017072773461291977786079146488630633361840524840419501450074073472547902306955631642820166194928871548452518686341110619391673843369127334700926620218964425284044296649875878988814378214790485222897501407288616579982624601436548486500872823439502614425185444116514838105544681132412271686817062632300969419535504850969572151732180040400843628004039870818183972254236524245043456024919426977891693587118963676289953633729083159001175492863561517966021671191923391147065222030650248897196005718634509889100520085925641999637598611780827037295348670179963750708865829955670762226414207895842563972972039647087116875250830751240141903136325750983565851171356973853320220840973999117155300659560608057497739621775389069633683283989246550546844366909998936109068261348513355093961901302460249590344961658275937601759031851158307698914043758602492040640156296870250646458296640838554790768083392859845414515002172336910279157382832859482858384191491789012750553951553607867145985883688951686613725978269978698090446196487654480529343078406069241298531063676868538221819111223844596551683160036465274450119903387480075249605323950251760800944361262990218565426819069538358929169330857487650785267127970191580887786837798113100783978691473533938582499007201158334162772269155677139703815733690573032107081111507556000156915189308768870619483862856071298360081160821307302908144339888018456778531556916126028599861329869896428417938098714858964113748985173160472718550833205506714809606921681806231352248948172687780749325704063186898334742414961339024858560525944206123560241704068606390598028733821245266018679196853400455797484414851147750606532634774441185683009834039998051847837148492604472188649970678655385051421654423940067482546266804480092176203601915302668869873178470778159323731934749797461132796452344437628557298991145322577793051610244609177925977699734815932082796108756720598451554268593049119454768485234193724681658251301787151379203005165474943088225488442079085201319893077543354085331640335345841322400417290699324829956662379025604308887623231995398939457920474642291910883795102221835910812747999002592121603890209375804921097095970137982938005035925180066804058951301067020416037188170421321712752121055739648305991824859578623773540790420106423921807917441938550484938726269458154202718946944859613562497164428102408632146575805809924564502803654550639669864971806112455072706922602720055717139630505373552338160619264680222257648128927762660278716100690875345691745408645568488497038416528234452701075629171489621991076874602476315412026925490156106214100815606839848506029151464662451333185242413404173533066091606802940204781833619094229484129626612594716591730545776195536753935664105805698975527687633750898120721464382193033435264153062663412727929923179765388584417993932317614606160921288260880101946410533233512058554772615255049304962585933916511474265173032876558727305479089287540604910361074922194616045193079222722102339832399615390599015691322743142922734625048929320018283590931626487861573545572446280744313356972458086940241560641523274653375701081506785216915912502314830842323520994613063337412049755699380307817747809357278193847609387221914162378832085875619083183706896530568109550956386988777976926360197255388373588295779549559022047786706947092991174659476999624572758025071917510381097502619217250622764105489498583740658925776814237768257650833837658672757358521217700610532142330665050202113182234271348776510138341631406712945060560470133086359660191649503071913062983757497080278309118339902408016827250138132227109007612179780524441327593881271797867466960380792361563684930594880541947980734482780873681807237351161875876532612836614453263316235993950052871405142788634785670002706225224645436623507870751094524737419224593266380328392641957435985079259336640185590475560442062838512630667815400006321317702729512349731012503268632200083398006717652945025360510495197689679430076121752953513757895000283213668687907396243933158025042644554412052982704417225180347955330204061918814398747924099537777549112742931595542834625059491806973054058507577163668626857108247116396443988365809544327926988433453057462135751513462169719129754020198315142662716612534927464512062136434047252664460797776560437783238216740138423245321765020610585198119284683203416223298475734828894209674050839248943660066470716000008821351730307033109106922529594321680952039458050683082386690038014002696043418425019182075217204354402827089884871460129772050103190739966140297778141382702409112880241091589182214568200384697148989056224283158011355045170294714257187901691074867158038561123915606507861892393910899673156818692153484877081738522673872825916268901912853749027319600436695695732920611801165032941409264625285830826951053629271560200474463092843036460931306405903331752180053170163407271945579830617497463904165487599930932752197151596527481925339062292600024021433060114417955486513957657118324230392385330806263076435637307447274896784862756712464680417655836512113100039318876918591475193583535918773313639731549468900964118256563346362027080697926369802931257384547449362185374399475203124150214843619522162626187582357974838761294923726823416271212978638326549749779838737140401094622603786742773597346276212013342663060860255570776771254522000346963596257048921660445364087245311283648710803262987307321392097746680697904479690602955212118490857329063173958799668860132571389979789103414684372387118454801304268240163472483094333440478745256982075719988962275138050432432842901125381422310269841394510782570111660014608246757150347979989881613519632389784597488088397831438552468106811671393784234225714715735506018837168797737910104491815123727858534975675385465156128136545326897364734315117809157511401466657320185430480103080896491442290050081238903151831068353388446960856236507714882619603333997099925487001044795926532135472585913095186742291713813019588057270008589497612700682169469830162861455786295764723499647600783414541655243222259699761909773846291300885589302155183801013898295862509440059818945303300471572816268124808467712367936867607152028012040798558215775979541148229787812482539643742805068941610501180554528438029026557857626073777566650132705156281540716675794539282127626613042781750196905500442742940840347075613840617929039688291605743471906767530069686732548785155293661262530285113582445899576809629178994740769874237082733984296679142269189393517164616753086064596146216975457687258775300363063849887077820536227215546981711299755687011415129818999988507527917415377674111613169903664064237532207754384175032081305040666933728050127143926242929884576486601462695979971667365314077632287066984090939942810943876396122259223508539626914470306477494890423669577390425412335171915817373224799408008312973300586142536113368984565886093979331812166476344903851976000040904620586743778168038603249454497075712468385298214080705147087536210773326375409873028473495706138212360811291729857648000160214815312057793033711392667910024987040417465239267049734585817833933324067409369002993883610144579141374113240843856007499219244016973652133391838709566004072793184837389578049092840938465543043435299502425454449320051201967393643402153564247328458123296315517110595470197296968563476111480820067875024111483647910185520049955343248149336981224619169596784349174088157781775424399647464903186850649014245526534513374988784909720958443213260688532729196999845719748165366841841565805449037547534934576928600466254287041952005695384416985657758592320204051010063823762169395915549297401353409312067611760898423004321421399872236997750126117650779535478603625305403116116339098741287112396397622019686032962829108139269267176377884771205752072129855597202791784807170847927528096869141999680562199991553437393968293540978613635878415341852198317195655566858869202007142662226712463251580498290024001016902058828644013891441922456900630707423141945284147296549605088586562152716505672454519675426931566251062016584707665417280368294627009968256218546990937107747764233389423598397321025684562165946807674473930720485754152465914232963801479428934091628915497552390731466440545179669040553641111983040586292703681042501401410307953009471634870481422528024312043633023100887971747636668335160214921721682490256212244487084993205796381813384600012675812323205234858675906746489563849966252099244436026840715545227016288257877198172016506905970412780858448536251986876342103710927554636130773360548672650663726837842019130763142441998251684093536623640491940177755882499740092359494204503341360797063952531316120069505842205304329657409308482503532341381287677643974537754678022574371003444531262530613977862866005023102950385462149117343561705067325413944772120531153939406898537906191387092060627890838433602918373872420415028262575168160376380421308954373270314564270397947337465908788666500701341810342946706124952112987587931915181471345476734823112198739719091711937703487281105580238228051422607471774395150205482487646263737788828915696300062285508799915468047700472744132931177106394308296372511107662024531694437936544445400882585587718889322863130792104067470508028352166580467226572457769652287300523447760220744665722842165816697074928583900624458381978873894826497182514654992375563139904382707234186755935211807857905154458238550177376333924258516802980691622714973800665855645796043059940388190169000916919222278073823310745854183007179846372695703675158068879101870197151700472303131828389124416877123987130932396040593695142624504306390813542976279400863689448175384969239477475024760956281577007570949699968889906710286479336226130053604319600518842501822476858324509215616352400351234695173689903003773924332015461182804275270225097923993183858376000395624404597873395395306745022478763154089864030748861119159582974033192181017833317820741040151550313379292161536494417838176127213853716250291672293762128967333071777203798792801007632716285070226204344630150928046917371063593028410223876492821113145173207418228698836334418223749398468653712447896755045752337196258503101498475909656473232829132067970198253787945009946591928409796182707248425214313211234104823111799387716328289246354107902347785672272840776779809239072983403010007921565323353101186337679377059998531690678406206499259872074587607920889762004068765683280745751073453368057418075756919616098945497582590782515647095569715016615866750459727918112129498689336614280323907696953592287145370292804210782868167703160832828345729711540797284136137269019879951385337200269272178313157413575514708342235348194636502371013686745359004256414426516162412818821415849669087827042030271970073143524107846582453979925390976723059075813294104235713820481100538559989677514461594833827674670855424788412205866012689812957303916740335904414009001208737374816629749901131375590644495812196151417363729464022387971516978873838691490679632460034125360169771757842393830940658282978223740934696951009299782360439769114302108564627887594416752720303675418509925236496501015265327629965398496395258838867351704404425420761333423757410802060033723630643382550069134864233172814364435506179199907697196370213181397005473273918534732261433356604970344274511299009029514323047025019535169974948999642430680871026859005966893120424884040091580628829971068200327131075148552902195248317858410886504693263460915473691074664580127869438319356963631763894642063892026353359966049637208241398710039193416571467873070738720921968610911850020386079116824603599536324471514006607881295128748792858235635710421503374729969934649739292719233390624578352120766087164121377421947940504042322460875876508289378895662396789645569008407164773489975556168026942847404323300317710668856510380647427831820551261803697749758467136516708993427498276628401900015286615400706520346910863660249373344806028162499591055670678590121676774461891624061072498175023278725904310155700729035344309954684712119546546654308398231870417885317924073572538839834700202955889645293997710412154909730042772198555007717076024390444976053992351944642195710082295452978051795065240031500133028391372244735332559871226705317926229162260201048045722831391106394503662168869448188180736464225968606248854754444851998651113473952400759709015898818816894959010509640747733404181886102761640414610548407601611030531080934176902324755857446221874572426737577294240307695598782771165772097025814759415479182679470585712521565148560220542218594904862000970496252347086416152612767990559520890805218607500418122590046397466978422908137481620785923295238968869137997428766632370550429106395807463251354455679579625613401182625135712589067909599939288651917229998465166584017231895811503267222128383543552470407158267857283362619202482033663803069348178647850786425518026721761279461286660140575901434064266029477736393481464800583783062710592443616451614159842647126942371661976390216968709095552402911527301710176221851203201639487535029548626751442004496441180563974010947411504848522044472774531732382603263004100821648613498085711489933596314324410241342367603998626071287991463811688646685129254557136939714309540836729804069377483197207136279871771530898369864713012228757917026399598856620200846562392464391907191871833081275232469300083634978161998732624296210916857288651141044223733953957818709980509679229170034475976419262793077537885209685196046209085236694262939362445606967772299573722665541370001054323732555149848808667012899902328416141984684237983390542405758473316704663292890644804681886279464545198843999001642801250072456228594028751416290939267230167259839569693785412085531227673447719405205312587058283955434194948050575986001698912584289925636174415491861060619215071681905044386592244372104885111184886909067414690358047474985607022005542626322047816491350972160906360030845042599308315999661170683478350162161856146974206807580076184907281687115238237158455456792302493517941984084839901617461221342927372990482783885750065866725098664461535190042619087281234825878392799288770176601515255321599321176024627179234664271015130668423088572093299947487720767015264409096955415130639751062153147136361615153095033776323587360099713319689876214898693672970489966453644233156297027732586919232239844793384445667077377201663459445472206408059551153992773118895892093608567119538073811744827070428550810733148911604572075804269539076088698025519967250587723213677717935518116029862781714199169021298865914374379292142846125997890104586015260715522954783594981121165259779626394722551372278252918118812452176922740976046009222419458436394790573865771128995538225867768558117881284898325885325826648844021740883827569091286672768630772521700998342531702550153508012454981227652251245662733685798911817534296306841195417559124982266910497870697540228013078215943952371519351261155019128154233594206760411935380725089202688766651735952641948198947712804214074067551158552420794850270961027150584843171086940202313132723968350411382100439703083435906648621048331927269859262887739831716681339547960201262202661737056743155253373104727175339353744638953764513289012375067452966394449989949287686437330919420961103236314412581337550450073625791912403541496692484193900746018203854635527731990937872104005679658941269799845465485102334535473299314561366403823030297603449753960860940630026309614413930537378304377804829963114512893533533655422709226400115419665567029730084821814183056412946659046735512632827195153221594716464703162908929191557411098319088789156203127844812451189653700128765208736537366649539329197915299009921052179712000642477479492632556650864947627315488580170454565218844584478245350836221850114564450551979340377582667021335418134236911941330047022451592670660161618911587782865920086754540821668328700015024689966321391646668764137000110480894480825953850126639909888334153842811822722591602751432181884467000852702438362157277159474572343151896155381104418418145370461881194155589523018686347718206579168360708881368116973172263962483878682215221447617498953062715484370563443537519577247344088335120290342501835694082872019202030147907754605364996843446892145717028201472938324666105602716542777492936449708327795567451218652697527683101049400305801062777762839918380962408152097934464742100464831165259059117003000139193205323604579111581752977713811188265064912211671884043974051125493373879006201391772655480015679600032687637549082591314914615084350971949464251988142086047909305800006432236438309075022804228117431051421795832735010605273130920008838294952077619267013938277696872003002769505319689423570339553015852523754666495392304285704640530401312719421092823555977020716438170338186927654413768714125514066872850220162471314314943635750183946782521602712556230764319790626840576605817384030527865883759694535864198498344358562593450828882022391393660680372848493824302757845251651595937032357558752750962929184025444796812436752506977249937044653728751079894738855872422009545012037071352573079291739196960199413268932368929757347149857817513963551330239113542022311345884303958284592046666857637518026308902932225000221782159991475946229888366314651819866803182000857538129456418538960064550772000470251044003602381836844411885139610476428054846044109971605347108105906944275285353355241799453255366113702290142701321446286153726101544555373444793162133056874005992127022571179752090716747772692183167400543647022841112035719843757066225850920278702203671665945241622474766909673662399219871203384461232250455535446762721714335836858163793714463299878112206033340515605479668176741751460351380051577971447436648461705431103094442034808925425436959224252288829952615038869312579061211385117603086972487636457383320064329746942530223952014908454372230267105198169169701447827496383400045169291414188439772769511873554371185058507362427979457995307954476473705300369981493291380309576978223657498564026954758104829544120647388958640090108248297727913531083124133647981500377304857264693660972181729661273667685521836778468963339910650747762193094029985105736870333515982481763691259376758228695872306637692550773311725153419057312215894785429557944183159026507955754024751247054061129834178873259942338116088595057529377864107086857910151811565876356028427367264562361088589927605652774189771295383486351816132365495895995868056695371667977939133785697266579379927878497921734139537476247418588017472326004952919464329492229051914900945762193183840937402796100561151102148072996201922378848493958630212327792031130822003606933779232861210833553686109738667539977512675625004491117921467489578309034947924536286721181199015711917701260002459666509078528129681467576386055628693718363099971615974966476002555381852250560373837747758014007789618368112107630468002382000923878105518773837464242406407640546237740721120704943087203502374495026435692013943459244165795963863666142606037040243547446629550420063108160078647525117911998906042350040737305698369362503641683896903155176337856321575214129362372917156415338715316582319977676771400546446713601047631733266562139283374662641244789031733538472922703648312633134013670869290533094820224417791213826058737096335990919344677141947073271609851942264598457864556393080998209152901637223199720852160333300507478099211140635772795489231540337288069286901304908927928674611016526036091437782370053976607344814444274243391643194988667517624831363337334614695176356251242937285057056133225223856759246623875499775977402379264658813985200292656113401233791614292130718456605168274144929873561220145202273047022948838760044094016239161968560397575397227566103733067102767305068621200898925911027386460126314906410010680213250484756581519752904315868071881257232778071072621775922689729172603472924320937688452639047985885184676298968032432883653703899553596690720064146731003804014175443096178300940115165231512080414367785795661986171241362621586261545117058640353881782795338022656372555816629079614369830854238981037248567784082429695904569345688591306650062595965940715785144052357522125357330840659071201726415251075738217180281301223490773145006778359182751697489421535278032150141624441455772420233989559663617327679993981017749685556136114495204826827741894556063666791372243142626535203310775048285964102623271200380393854752187787417113901148816429562363174603479049361219141240806674745790807041356945551160029277072405232481902191543741472236662488438015606927392416287891091928329359413854615461702175391654880007349559412278154297517055746378694626326540679775066236581999053851463623706449521025064600356869127253813061677569201317110004521977060623651730089171903616175165098178882470567611475739388413261492935389984733318843026407251907527647017702478650085578551788832978753130257535209386950192433828013748440513904067808716538653493697601809682496319767411134644442494173619339428294221705214878708260271578687338676760764707614810854414908767475755743611845740735545324161542551471968845210943585564274552218273879924025586354276038533758825233787210967626278539557280141109155810499194774589322233375057159952059121467518002747882149561777403412012648316561224070479688490456629042799199275015012775695425699255262463373593456838385637291360992216621485116253649547725098225783735606462290793653514484552271376126928715256918213180055058556488323955999493335335555771998096070266395929760249624644839791329406241084161042321991301231243150327200894063337044895744206403176427765960436827841853966741976357366672056632546406799558075951892253840526243498634548315693406140392917512050476474421703919493979551297530999483521833867460611053031190052952618515352899979486889443658119162129774604597575420619609804370900039352878048414510556492242172804731716257933392688973672564919408495686913408472816579010879373887341279899611199245582807783807851014464924673643682696251641891290997508146376466656219411540212511954447295193603463329967511141487419847349598587776188478194244112654856606609327715499931278751181555614464863814442319298521613638712940634755901625671404691968583500003430738749176698043820320008985771393162525366522980955815957894713971969779205349706270932074777440765031366917439364172912314766942853481979367739547893037345078959691317162676446942798612517446516706362343737935568554407791046125035780070730018981422523335512809826104890079340964733298024153020351006559019228834884105119428642469000890822591383263686187131641832056206813339411449549214496382537804218173326859889038784384486744792468028649204217749415901208518382261054572149300687007557282204667129251870749234385561020923111090644179543919967537533345432534376044346709017492855532366553465488915618983710774738204460028999312239760156295303921535870746583400636645222156179400165090227123652489873731721256686221743636471332634681163840583299971346727708404874314145951849546234949497300749918765392042429634885802897762500081300381866524918353718200858605750632395551134970430213855497231805485926686911986439279908855726678680021901129656241787617865654805351880652619373803149433180717956479740605453995902219954138585585567431624469503015035525289660026695158884716028510502099255664047398268212694094251943760011186224947111802371659805856841250330045956804523801447018099322953264876091123878631509531240469499552956503980858678102240799852426052384806020689002361790423229301060002209290491607070001659551514630728184598965929802700569195451434796115605495600776628729747545521326792669277542510246797663378565381832272736992317398498246374536505242111891625912561031395395556205675350153712290014705720448180343347985808158945592723349879724900531000814104841396061181109109208093263327265825322319567880585249633551489912589407901039962614367090797835602815324070153560911365964059116525102116306920182254616641071889948120599586831953875598325355542475008678405176166305991766919803395907586516381430054871826599307700018997730352732610832491027816524868057693005729890226087008361190786176895975163608766007943958349506302286188758179550164850725329107528910595792852945438698166227044962151571558008095578232794771940037504145295107457493813460370577821204578835180400069675880667631620452257323173140074456010708353972967078340850174014778104133947801175354762064394310750292159267317709713497579859636715579082893708113826230252197268106510632965542026169392561211539064300361440529834374698646604900308123932260652579741170768254843221747185943610562902984201902179351769987524032558056634793857928951992079948448409354600389322844371005268711578584319383998241299100275469347310660541952196204677477984623291091307213931760821549440884138035419696627620158544661186355566078252271244950989985965221170860180700001043577946360122569605032508403131306157190579603915466398857586916003637999216650200796609423455570665148727627783330375752063852314173392607497465301102970734161818143402516572088854499125899104501477525102752938598036209059849082889712059725425981524324881335108607672096824741515867070441859045381328937855805213218315531084140235492913680125270732483726149651067257215227662431838201061229361116228614832453201842685709300074490726556476660021522673516869601580746612155588896901211853345769174906677216962586304814843060373305675589830415395052457497570811556532402111051126313246485132310552305210476843337842295627318348784725961150634929913967863345581086103036382256801751935455250173689116425026375800052306873582565915863504552768984460343007945898048413188704117006697372837306461369274401719153068272230426679034114857276511880937180839643490656118317183399554640945691084676629614970932650724968682177078875373471850563905251334620089907559979834916365073238094624755408170509488664809200681137953719372647191466873191453153895693995609134152152301773563016357673441279628485261832793002589838288561364027763254029664879719645624260299729974804387077364508443008355166268974042656570971012966133264970530452538062962117874637445880959550489826715342987160192404646336480897945610707812409444347354229810683846961630221526342150616679668822093203173829914837006565295061141433848623128125065931960184494985296236199744412981557239296829080343095621156546192943283760452742998949726855019817939786624413767532788626684009991954065176849857055360909768846287384057675803835942812068226297876843714563175849442551708121092224200719596734980799532309013652500467782339009414557833431120932796195609319976412688807983036589561000038874973145899697053802081440347754149738091642534620032832105789199357607708845272437952076746581690017974697246157658831638636599346073942298766828980602743538122802773994897222651958274848240198423653321436718678684878118953086802113500832191101327015397835270121473374649441230476794929816558747260659757100186426146713358725979281483113553592610891398858537928777281186678197745769088402355602850158898674028922265761672717025919550440697192024057855110126162228286685075339167201939081608413750725433534549619457075006879032805594318454276408904068771313643097199848993981129710560080333716562296261618088690043372312840762895483575606575348145449246313766127085330281426485401767259070347818217590012663386147843952476917000069998501811975258738339558673354384639284630603265373686358228543441409046023080953836222174404202389013936177556986031350690519536827427043864108049304984862044499115213433611764722273515453802225730695342794429692379709165650677900714530344014658388539922070835139146056291338272580951517158747085983358480996870351604518530899934794450739303563555494522981069368829114442682945405366098194402387464532093468230596914111058243986046339704495468550908777628093631989898494701973569300097082791660501634861272189060997161403377566240923748193044430263878679699686831548924046605396429390931540710050661042650727040508812528078390964186512500494534955944514894231890568644000038751276608525564952501681500854332400264287645281221309202909582001388460032586802356505605990259841888810454596313371731537889472995866322488439970837974659940448750841798180033905820062495368218323782904332867703847748832112101578967797601929265981150149178328866992447461420991046682936227613264814320388974216606208199215484816345893239639993312095764946496092249361516198665833906720052120298390636342571812609238744793120424997320126048963880356502203753729337286908949461597391488012426299169324585174881624778898063795650110694608446014613185203945813871302416096088722085621675847655303509355991222948251565290571872366186850671332942680886011358476620996398695563046811449769945189543194148799096810777349907518222464759915585422997716378066160875037544936941849989750917328305662907102745791310181046147231902169310175109105917166060232434474827886201990086885024803233633188335534832269747295695444106829494145231556496867685230969029735335885878552628382950216453003098894213985775670314995012936873677714166875880017152816619891989360207256347799999568307201751685661706379447707972962516032168158228534971667396325734471370553032282082866864846978561414379815237747299184036635521825021723029508826022017259170356981739557405071363617801005693745573488671895400163803652237415158451853127960618643077343665060972325860554678596013279656913149774061028152350373968445576753269251130573962928105675011323544588066374675617681716193263133231099585553338531828599328577086260746310390103786647032877187862201187750405777798330323405879888144022323546106952600947122543106073462506117265217762623267936733730850621759926344922600101756611352306603143334603430298619153190787458143074285962970424144900776827187330848048818760615854247886080277141020655283464507861363405920015207147463604421857415836486532184980850435971764578061177326180054891113855484969736291800233684407086179497863851929555622425619778915802033413935382259977947322775619131294871980150360385451611216679103532617504154283525692731155391864000707552678227668873893241446020605033459052693831778507398857220732070560799864257316940498968947050803795709422344540046921110002902248508388599572858832534221110081596195062690122531018716463316658060720710670187836621911455287460735512993959706443858776856058870737858349178303316838672483989768749536011478954869016331077200131766341230106222178392184708862938134112663141904563778420199983919107195567772653579685897749814747720902888733997344800471348764952982445440911156656421605694950818209624172857790178946524271323985596882489849035958658410832626324798050995428888707218634457229189687919706977020356289325019542673174981174237826674895919573786942448951689566216928615098447388853801034266256654486983443048039526476653611649212019275219572779153142463335635074935310409796055826389404032737156401476104225548767361303483271235197675069712764570373765939503271961121329720479608381060830231071823525232664305952278033753463627773632812059452503842139682168879161492408140456423420961652866326504337370911686827127687505683905838365802784163113610569955522346784215732155534873086292084687668218772381123024055932692799916654645626115057601277978332965551739474570169806282243295992223284789882738025363613157503304461673078209538698398192492373651951962862722999596324816619295138122003418260686421021604985819047542454705274104374106915858186385124578365835991479944278815976305877126886931756409469021735654406781762715769373737282369137766401891809381399304432333401488553632877159613276678790687480952807949029517355804150312497986251196225778408359340335105924145591105369813362877325510574040967959035831135460235078476488704529197748439538855868876517709689663415567771366904192865990289377963200451886472022831711729747248571064567713583933350408840646679577320127492815542676592034948970528665877463328426562349167852361408342643839883506066522301596436746606510012986361760840774188522508185055177952295738859531995388506713252746789680040606433618251822750375892585138492691066443347983364344479129261684189973493590637305574095340005303918548445162437926757162533388014917069763673462803293114223914824996288622856989723136437071633595279528430881623790498425844513792278916921180310425036569428128300448796816641646360715777438529284943382404191289042007782883226414511093353405222553079546298262046489903900976977118199621898316494196076651986859563511920259860901919176714721262740905787218533676873183777944620272019484977494644627783469066085496103026073071139050752125168659800418993952963934670398517691902987323233370536333035749516724916456451712254859759018471768864617958976848213000378247577201282248601102119162598967279996333861595283073972337956138403982347232162703892138333448748185072269938317422511093504607930198756745613489898406817341928896498779508349648402266596330838277869667780585375094614339810657719843992740555891189721219009712059445889312956372488144224097287171284380093850103318930238712778944967404666143848660733694294216426949694658493340636083813243416614264938448994979181056553511020602582641641218859092951795548454478688929002405373332373444474352592599328912485689214153415196576104555187347129243770306245698240235379071039422448748409776448647853462214990281603678572943894894437352276384411974959121415153706062815951367556705861124426211295597414533439879105822796939675743232755262165981555360989675087734843084841567467919520168736440927258047523022022855928804651904003901940734282884439573563919942693966358498839095046209671148533012975830240835343115647452376392318762969915686139180471826643830002291553609965722270060888680599739371398399800123009312747487079982695806494337522758373568992041070036626343502942486964170304800760991236483882904328711241283294776007742669218459595205879256074982548009841862626021720476873844858053827280422687857706916145788699245742607067611997722204984684774539989364023100117118045068937060516381897239015802329416346539842963436677397969292493176929080831428789481527801576252020376435967827782277550387322416628897605084454465671576300668137842825850305376790757201145949169978654326946927685650076878910849407348894914883780784162720136971284314680776097601121642189865139388217835960721855963703913520665043459869779269308707227029066333790220509286490292625302301765423114999876832779488329030394182330311769859402379309261935012594041841883357285554985004109549242256573939951631784904283139734533047883223229988407317937220725244565582714579598262738426522863432556012587046902400572280286033854472830411448884608438233389163409022965743008434018078379145209106736039725262298346588046979163941844224497227669992338594689253423472183252275152243469977417389355719847174202062693679959460548671209003192976713388494422182004073933153056015400576673638955112752003623062067937788090864897028359133031622371923538387716597477367825416393934005399304752673696528528499536875748426488920498902253517583786599942202978779634942058049270161935107241718619232977160287347945282360207446709934120869708482876102275546793365589480973980034550752550367385147297108377907105730629875721118573569953432265281326050041459507918005149126439765456002950464922422176741590877288289045504513433139227641723664919595447278851162863570051907122572331644552763101714692062504587091989273355341744698968572762654880982242303782819469088311752883720406709852250120852550524115709344623596806832073063100446363782593222307431925778458744463526803075482886819250424296642430934968680185718815748979621608550485098078778831204917818114065496334511684029950070161772826716563149509911928304487161773241567544555689452242692644371526847054007684577739599650345717030695580924830359571405965677607522902770030037185239550617749798899909532327963284669057953323200716976895216937280537332547217833612928907564101324970234275580602764273411451823874854629666216345055647711882376260282246093959524202455068442808267420584220807157660762837027092809844702677881262405468043588485638368587573368204072006820104140400452793119046757019555764927489780035748172085259571533233829673594345599915910030149657978851854458961965642754765146403749383919999539130978224364922966299328600044992667812684584823705949119111552760563260842679122536909272132083910220594597360412131966709157131457958661729442273987027533981064377299802393251276214079292923920127470082390527109653011885067368744454252315277203993534001681548797989304009742730690926125696730249932086428710275426433165630755005736929501778830106878280686050844853922061835886735108256246670626256566545010115497144183810214605092467781701476936462672599124540419862395421549253426589277345656075523896766866144830535920815539339195063470752252614296494529953055311202415928325782185468708046251415515319035096735822668056905061277039943937563724220028220833748497519406984849611474881053534779292141263513593225490044427131911510149255758932658345894678148397734202067442555124462018705667045698446882790653618721816934092141559600871528411672504913465520840167527549586913579082701477676874700727098824251511883894697824689275358720170956639136970541577444442931176656809636328940073167619209780181124813314156369681002348651610856213588119902408533366902150689102959880485189529247485248320867141065983070136892190175625746363831154593997958826443800635376307777563228491106357422311552430390326698590223228437567381584261860979268983511536922776035274996611297190264216687778856721598120445984306544546332793564091285044017625752248879213933913654151058345502992523629013105176516726780100254774749712615029126743836868890614115249127364537649403019331966096226988009988948324327501325402072941451397743860320411729312984458286871000196253053491501132398540535865339067971812419035389112481118981364371313213413725292618859843821077077786765588786174491559439718031628440128097504747448425659805541188440246455171853785433151770265758736431740648528089315326145162383695271078927239960651807754626362932941323029231909593650728656719406183605074329464627727877567903361433053151259184938359210289992968150087560390742857639788869343460461214381921095479153276728213819895243999235999011763229381436822463459767327690822341129857758386495747628191935978612449199613198871937209770167277907994706518976154091696066713613188850739148427451409514559408202540345676273777797566635228147568854148452062935189253925165875740996670791381035947907607705323122121141150396306394034688672778562756431481489159719841628484346061730986600447557647508818927253340863765683974949764161161883676965934047390053586231993717092124582750046218064841798482889467194226157590829344040623873378071141833092697606457428876937554996047436776016134961144241561530592058938216790826027226603160471671183607725310515393028717130702045441554347016829474068055974109462143716199873248396671568544346800899921770134018560229143027969328434279914930997732334541262452635250928926062432375148958429029640633230531507587917668581153557368414935545691113330762579941049413919017417828967338323624285404819926117537669047008048757514220675576915534183198708312536330344513445345837983506452311311516328133223821747347286784379457875824931175636548690437827050312197643942915760317207506123337047887782551864327027256626644966013625992473989769445241291499903769493014209273967319342621480663892365549864773132146347991037960377392894090367235817058668696800791924560388522045847778146048435156153417916828636373031623622735489341728095207224629496221126749020243495424831151453242729235191892887341922039795549876976816492591375924580634670189419912160000942686879750209998721326249695737864269498916626390638307580882912903612785564442996569433790634188617101519995095843087155482620668110016571400356772373429720395627728981907147598420744556187910146804913333948242823683571386638580220990169166436947062086055853182442938042357770691923858837968755557986009807792156346356772853243858996732969951749564618824832489719685994516434888526337482719146306279951055493816624223319346054375851642855603909977467861891703519830588645471359908436071629401605682866820052844896875493821085430470187342402944650953737581097581247859879064713383705734626478108169738257605074781485403282705489858995882185248150221139899295075080808138477479476901266594797266964190130030756350770410014315900991981273545952108246462107545468123234007854798741751062800009499304562976075305413867306820199803919129818971053965310604175212662136051437300009110066457328760480218551351446148729529050025809222874272363265371549078465005891171955550132347615646597870968022820222680175888403756094670250459098618385264391674073362170187199722504710240759218866025222093801035421071073031412082740789481877723832714072169298673060095201391903663765940944467070448967612778434623369405257143048181972960037782221896260251218350546625576520664632509892243213054776341960257851757201610127076948317124821766646076291793974708096654962741581568437182184785493958936157600908264471911788026403373727188915549503670788356329707512449203817177782787512367393520036006364010921065318747023651098665527317391910455883409546190196487077994409089572756739064776193662630756618427612070779551106522564476607469396039750571480073489500856211936834553053178969175835234335416382102543575274970790962663844969792228754102307877620901136199602127162801765776644484389597724306974324366108633678301633444663529283651087934368468959983831606666342647199324478486907762583134439804357749536307466212509732919776065029282333249405591072082863584675587790031660831285063295780209697201541063811114532881497985131047568597276522775072001798267140423727700956320807439252396715545646690049473392861719946207286326895097335972810619584600522236471264936946412619379502057083295745352042288497231306213700751231228927536763292819084440985501366403820438495261416793430580984976114677187515386933835012848321554651659366718800287678387647736597568908988297284249804376175137316635863407700996838264115802765549728491417385272843382543327592276697596008121979584175258871153738298938919078763094202020798656274059198374445176403872154853491521001449614201094081501530047161321719679652897880734667232545424154846293640770152599504505213645998192718784090890718999760551553339047647316434403576340009072015018905016996091973756930704854045569213310101247948763087376363012084320521993948937330621327785613656610504963183165315829375248803587059926139283051396298327276927344035596356850353752288450067741468481239182630338630001511423167581123770437199792849908059466558976802944899965665298920053684942570251028464606104286733301711367062723263722933467053076142758092252097136681919481500321471968509044375685138241444478074541425084834347943208625445542879326721310437766371345641945394175473975540212799667140268955663953917247615822313929795577453511673021917461369035519215034261126206170168524437372508891381844133447186676095080342343100488440207573042312785525038096226769390439947600482867718197571909730161687438924802244053537909813435018626341018656804879087454825750548076388814897897159622901454621907594572869758555939979131686586180626379137579394497222808986642868902619762178491745405392501477699801494593003555427645488549219651118566374976241835020850098264637316050609308740313350442006076909894713851656146027559164188911739787479299543181030608692066943504794516224597868079128179247862532826600785237955181631612153724108610469734085860499772388512697597801065272707231946922073184384496337055920079809347710933761288421918788689032494949971270019072138857949578069060351821711470549706607199018969057533473868492776817492535621337538611448026928743813654695452095647845731774089424404405369529255333286715464939999514188216947831741403246861218934943843077079946044018157625313506492497663348401198803228272248422891132788501540009399563019345015961579148669845555280350364130790431056491363508016156167509692858374309166413129369953551217403504007831922495075518965926454151724993174243462794920342864572476088754609393713044714923766629173460789240734557738278857850004531362605393062613357991912463632858458607291267579480871581313298714600595422183706159113806988947757632859080190026948443913365131495783325125834483958428619197647570976791445093731002708979366014385534369685692675529637866983864470226142278223218098125827906569849392279265549837691758906091356144649248731746858336319248325810906183845597383305128486204143849835293269951907833948559662823383378348043644784411968841752244895706653952352882708181452622905368191908811319293820103033227044971211418750722428223709275251867398690626615233211791038769258359482054645033172436614446590388409516904848094917270088075346648099713232332492882241886839722497384729123736070653312419093215925647185616426897193817344326224047224272601963110193323764904557803458078712774037996443354944200914797427282718143578947923094248484167575096146677310831413395329505762021572426188336953449787391843064804830572479347582347645126574384395667708071655526449341842661080274269952762067684076763744813416225935346307483255315958771195185379656357937992770054709137946978714848258225251205624036344022118508811603167047186548323075770232900502069616393889585908354078227496064003661644077303659868620320489132508025028808052656369384808038841607992998128393034481029721620514363003594944812227361176167648339839788615172607389406441100391308373060680726109872512398502694488468743868564934780222745950222844265110372784629003349687399299208550543956934514712222111919777678288718921162427854807996889772267878778584865728621650596853924920729112576383462248317998820257937833016573916645293037515022465305824820048234837876758808884308577834132537862601439189217002515880461036716351635191464480518681801528994585720153941056396238017401278372411873028516443733390209032282845058713228018119306038667345553639884437191869543031641904417446574562161917387900561117221239243157048773772782933425045298392041206792191504399170527560622174903953889623172049545360753868912618114218199439039255236131432861500099565253051596936686817224147678689344891527372069400947028467566717526155499797542146149870787895041898897815295821426501525838069726201388654211657476299453673591187897140486896072551371844283516254378919165381929498109676986136309046712561183711085382516780288617072087281939043078110394160961623847015704830865890558674973575251279643881675370704845043735034947300014826256464263743396450717691892928308498938395005253006754678346211397338714613458868795013601436989219863230484977812366325831709635530330551241792204095837146990134567004322495771230671526007272682028182386087406462690549225568434636354030271203903377336679852645158610530854747915116946583581157195556863041100693065301321239438035460381142556934997623058421446565725751199572137584600186701347021715430347682372064456088412538307796103553701183164398464897194861004317864954390065994560173886283202276805929108334393500513981293722392701305658884887415479117723845461248287838142179696625895221733851830130196739937924666765287518164406545116921622509667530134059938633698697265477039074699894693635094436946625371933955768866549724876912649327401024542966406088907811310911671837227590798397603329405318480486263712022151526710049264729297817687273444218926416774004995940264305943063891421506239264521675561574405675344488983932785000040033683482145067687378605103436697005755952164562504803147779741262190059995140272192039191266010263221412376027500379405227252102050026516858547576840480187466827373999051818052090330581634636751538424151993594609065959643634048188333709900909219113236120014193831762414845281393447308213090667534256487200314093512036897742819026683697643821064836533184201289382779869245219891750661248878103570848667308083368225832753503098751414866914879882982487684570059054957223903557957901915939740812838824002571570597127984115046876079788316535984530461457636585907202461004176673950454221045734971864667799746036240369027052587314511348082778021037424688341813967161780039089335644816273833345654931354548712085774650148201666121659640620880527009531225381230315170208244714981325948649097697964044945434783604212484088831538272447111654174198664476021086494411030224485204830106565324642428890087397500754121028958602989586901858229688764101340167317642621657355002807267959641950230831764758283984059602590237268249621504623346349240833147262865787520661491036413445314933516150074309972634380444257176651121605549906093526388343875709832556554910446547119948075349656907827233949599087945408478471825217790367889391465988196745819019121238129791399791931629922089118888602931898633850101189462663579751299056642059507850344056248841691036498945166957531828029182970142245679122333908483892804970493568540462275809977294643842748022479127691964026133508198783980490369647421601844853512262673019672000465849246203391254366845065182561859022901884694200236043090446314539878428059164653721964078174988129260231743645251794460865957518346017310438566545611979163546877606956617909820658655453382804699960310369985715642917309821151345193824402551308979858144163143109921081371599752906541905391905114367969947683852553930802910546617630352341424000542301852276164755706557456475177465625159709533325009077219594512367527747682269306433716743456370517947893108590985825333587260934869870113165050988756812922035835773738113793200072171505154416495807620419847697187480629858879482927768752121283270562417976938753269714050540113206048000558685603361893663217086135931649471968564175371020814115231235730162489882272745952592560031535694980808329525184864299399345804549641484733311963629248412226027502476893036631625736787824160560904589547125264840056615999100781676857575552251818385468374631183811018957257649624459144633302851070782102200932115621931812941492772151008478749096689270532601599170455746804021957824997300622035230311169937027923609854779000840683304151639440074261986564400305856765627693534167403494670911023960888557278727436603700106959754459849743500215529420186016655236162291111613853476513333561636158773751795846957836297874806680032491300299866252456954896131537458138040165082700788164581601223338794496920298383732347313667482061070940322509149926541158930713020013532077197728792993482021068071366528813820534852675694976913811262467981846736478050362358869940041098472157892528171631570550871481729353898145209330875213196127107200661971788049493480866204960430258290067891627498129787326659960715075174263034012263116255550808310788245919532439174644688807010873816604201388675885665422341204500302502034559317898054300693856157336946242431906042725542238903196062077160487609814734267186402279368437277169485748879366007237595993146940056544068555110963858013120437799528115503541845840575503155239812505670299778455722777367429716855425318668936242044683645316371709279727933945738487430398316946753909443084082241307098722466651513801989673998346487838663404008088554273729893785340865659448903439203766343292227251547168197926604634802388003854014225348240099234003849055287396177470399111512984121735796983487020349750078122729764462541449650388188919024241924127957173594131296098520145169664676634268785881529235364011093353159593690444907923646171340102469150728197521764306772047990374359388820937046836342489481978006546832122959876401378887374610958991381844338480371649868629632554700263324376813131279873393599688938035898857039192428923834052631743464434022333449920555582604724963944479977601760160472865747755440880684371756578808297958350498467609968847003588753706233652267127604428052334073174402583711715175622633326336005307176872689096894423737179456802639318348419543660361082439318107917463338239976352545755501784361387596281995602200299126125576926035088315519511351468987245466347144188336436029242805194398306356881385062023922880619950140165865128782646558063431845221416161183710022340413408769232103649237663151896839077398943913196900195737109834050915109103538699204058466689806704247411456202040374182722578383375336063653273420825890538415235974805676683038434302663397020199778842276794174108654933830384758325736322706754640953161554175638929067460163574534787700405283531882921440784064434044085282302046029326692016159355585767981868754261118162923780721191991652129890537930474767758929470294475740017113583373054733765946839150110308584340922241122632682574560318789520358978566023084840267433745122722440934264823174723760932402730982960450819313532776140054361330445478915823760453216490328250272619477942601924996322786019905244458529286593192394237310051395330968841422418583228437998593391547335848771825391964773547851995023543344771048273688865448127770526669551072644374699035008234736907937433339288510154314642661488246617436961485767077321896882962396010226225742428137777310786573280513183657793404793300535604269463148679746833209899063300027640955648069079307161545488373346079177639012622522525990618078584044933699312013355243485162867673850283977463890312376345738711650423543078949035519341871703888472445482023108712835921458191935739053036856852421618368224609064628803248709636161580666617034982505652965859420927438807742226679829338045781657992936565132433263820923818085618995568812846379179921730173825281018380736779903881154415907514712286228743296827773323815069518971637767229814098112905675249085419686096440165844523009317963245111147879321629487997565475367899431257303785286551281882416426821577849526830576118520082896342084950451380958758969761481623284989646949427608824675714594000017541257985641913780297966329575818170570382376380695974359194594986840342201484045146709368918123576445141261142894594952810047350113313156922345088649128354654155549886814891001557243320430053053527864904630597976547653336626064513006717992054621453977909246412591265336835459914476779565662208042231838370431899491862036164831541458012324224060500977542326375277778509592316507327366534998300533673091011885424738249913337734416130902137874593621427252086302764393984017201658494511723731159378398358230111247815453978953853071745502820420215473440389022560028414352303481492039465574571692020349581445477876250339859181033067927367464951327449137015848477397848387463510440773967988126883181264278854481586747144386952588103617363488906626958387829549996171051572747277137551321036359025967875680565120957983047648870454693023534044227020452718383754840180232618427127748104812056306451187406324373957002277855520985557617233991909113118933330120470564480088513080684171934389253452509056721289020254757656696659410020346217812643706688481191998674736521803364534516011026774171106365169027416434190438580319903276220117570729683525321057785706780917247970085084297271747956159886935378524762724115736252777209541355547258376610709161198421684026186307564733838506580233874831233953699685717398721395261772839445573044414564855261157609133230972926583965852452476695300896332064247294812490775000386555231470130364914260242665150639539379848100599142804804666896821816151486465069491240600511175460622934991099935696516085187844097538138511098351132748677541607985866466025757116490698366731245439078011531277737900453135672465198510706318271273075020396280022892496092884016342259171280702257518831264831732409860370783154363020451192213505665144613939269785796315498699731242654689334493870114908849551571505212523591567253850560546597210443440064572922191095367203680990917529630758772164457773072929381961610889596427052772611911492252363203163322573199396729519254508366909051545015159829906520514015974207016730086541515297149762788967257507135256612789576993947120046678111050949665714443727113269725786732075151020876589271395930140948275186482825678169950605230513439357055567126684557122182263483009106431474180290439620053851488965383440591199798425927031435326716569275066703559218033877087652779942835698796740244155672961621890770466258169507160847498659160613952895097855425808784483602407365239857249504929603690883741044602640405578785372924211130672365303461940241638331469059154136932034972919885774289434114441904222610818479763164358607389864404604586784318218904821000768652950616939787354265592938025097656857631574122762025112057393201010596451038717499452764632812670840856999621314892956213149236295090962700719947654220326433284556686919596274825452657325356831372681515413837508116647384685015562837321071373351951568392502843674888820699106102368928179919306810476873536647324110583985208621489068308757796684792236433590902901351005733772980569806710819019625016615473539644099842252665609091289682903754522848561461271336364184384763066577897525808591029262373145116433941501507547227524292195061576878708136788789260291179933306537802920299577857839317006852838663485554303559052280638997487359940634743238268798858654013763391418157133215474062867963322618727718154638922502114995819925961536368578044067259175100251746520681038345121248534162674728169062944406632930992780937186686714355055954792114597053354756613710304089931758718840279110826743428817426206148487212900116028036984329415967944754867547543698661502344343196646450285731972876184069944708438927120225420531711150154371043185518875800498203099753751269573581190337076427759994539925463283146939872109629681386898312788059684642204504364400336325854795561505716522014814769065585662102964788054188272632646008092403872744512037983543178624385831541732243387607330805149330331653618921457564107983301302750454144082076217862030626710950719000854634985561792496996279049803321155565134964332156337423254178833889008263769921255266859316103418245940488001296647460166761207839444235244611145727303393987703343591087352799315535647657513155417428302729435633217955736314576033911568488251629197550986977699027539581381640193415722537328781743296471909620833046056017050637912286454603672826830142949520961743580215708854838346577263738165354307401290431253945217934594973474635981766159006117055640845621491278345197161194264909380768688102558574472157307862263987277768086437487311595447066327573364977901721234696953916835377328008095080677405791464326792285151854060333852241567395827533570451768414295546613618542537960195601541802620060319475157135022264761311900461719226388831925432045498895979025518917155781849705437752994151090542796121176664734079592457635085858586101459519460137271494282940115434474185420730053109315206595518797493800409996247204967331735767382312124541695864922784521395616052579603261013300684775905186142973595120596416385643114092628249662684688040963295812968272809631300230164879166161336060481204541552605347565485877905512208464434173221078990377496336138215739675263123058789133855172569443068344258920490291393427069803427911933796780983400142406860811619306965124852796621814090071332307295555762757873284996164466374031097380220698835629393686090692129547934203903299811851189690778152114146386255890457400783723958663201267608377312510605873362173897120701682541858208483048543753672197914253200832059576357691588801834660646116232843099305534038722634633055046637279416536548909824555658863852722666171726548054281047207322500698485032250051286554841264237325391995433147952368289346568152940586433868568171302875354304806213562881275379038805003816318614382911596238648537107046603442871165919804218530380554898130088002091127116076146710698404504062146447578810633130980794339323751216065445078906903341285539416295984421023178548128518874417071730990589167201521086748228772460834121351142496718708124857122617030132665739662250347004280316220371523318289250519400058885208873052124607441179121447096227210011971993339380964568065423584174390680558459700552192964459989148702672396740047188486431306365507055690556066368963214052279676994606412567109528249087806217637430210865146854069975198216113085131715008416070958473943158265919453436734398418793217283280409082867652657027689222391477372490318968755702968150120073731150456676570591877950862672089628862152335718881185124588857955831452324402950821689202447077724282787928977496421714867901748738730261440709725665264820118937930499243333353092577514911215515772191514816941439575225958893886683565920206591079034454137721019009046448334890160370675496560933726710526488362112699803676456117784683843676895408272761471938692466773158121277068191606236238560177456658507674642883417039759738445942521866723606290933516567382545224206407869336651101757281695943608509814575943549968965024881931448761147290161892744763608726081463444012608395943741832097971872364472864571086621870902577980653107274725499094130383319869774168057241315525061901055929317117424570583091875487899658848188199729416432726016743134178156741627400511600374217892161605023943462490556546262932924042342046770224893133662258157097321305139087113372372947099936285425410116567606781514019622468633302059691365091224907985660389122498773399492029436894940335889398403757795033850523193293638477757723019540807186626723740770016885705396003792018112008952475385845504254919474014435778181760134946469047816777038117347799205894115271782914671124705215442654858262649835399347044960674056642383261387575905399128401649850480320158965821705897868778627526791194986715277723541676643815534949591053132865097491959568589703554070263363425854317202195546860528442822704844241315744082281632059429676891249620890792027426876840140567558028190418324279632245893670501988772554781412417958394372852105684775357102049561074358872202212338358721463023121488754099009043549567291724039406048311330320532527571421007586291484995049385866098647347227242852952070307072433949556707642673088502752279957710847307335643657476508515338864027050341840172568208361452451305007327857293334633141747209504107489536677961409443608045414542078477361484747607230864384469304066481151047813727147240498594113375242013278122948611082745872102375141048353460358466301070577233540332286039923908682598708453372901849187921008619082605548591663442743188754126978026351519026893609686438950602971392086151182370425930186949572140956248584723507949077794163521559295552370711401258221570985980077842676068762768302437093118316605117388316782010588462918960475258148537086275000613026896086429431330732515487242197590869743741040752945066773704659474805264508043298801609654464229075031403427161045253334143260803536075144989556040286635295654957114135702510379731362669331661369876989149874375635384642832483364736225498627022769360562275633927071298548317355892352948226822112489455387136014629908758930306257221883142662283788771193724909846906721639779958187358258734015964926152551390040067329193595975832652654775022301593059423138609188252166787539786647167432319225120988678602157151066147482704312810310408416117608560723769753745523153414859021292247144972961075614708914936925296833763680305325338338276602744076767038397783601982166859423113822618102375541047559792388771840802185134115841030838541296887204645679034342989255267316317833473727743295576938978649355733257456909987544917749300971951365643974079382833194452404607322992917463161520872015978899215140668729833111594415047951661326236001196785161083588604910860402143862852550331776682625356786568655509944445311158764580685883821765517705703066849660477993179213956019431521585409545183311100840067557734494070572303764938216332707396217527428147039271381282693946300175785621177864636972285458198482663298391892686575217814393548029780094121374524629829472463339831583595865601075468910327445926348936870705917998917060924541996897648859321830280000077858281437145331278746635042440680715120392528785897833956341858882181267020129971906057574163755096986386346471425653567916346378414006710459538580132685590104358666513855775189699319437487578480613875596011213288617145702493481069220823668576494774279180638349190784055088808122718714603037518895743553363768117788512396795940175808404534443629030210273780970292692736827472908703903447729717482198221414017760281978781461052577816835626388387495574906863379693123155211750715701508728281508873903368149631649424753460304850785082552434897784354052629199793376642741773667400771927444865271721519170648077378213764813866001148538701063661360737794293536244515474731097363511333364611606254882044200576468921321853119125704519276425630543131950003845533207950438287390607232640209641963774850251949801206740139031639876630278462040297875859616469431550397103663834397700905266729147465420240704984573904056521686089454640036714551063377040679246069827980298745946975811551928117166182729877076816075270374725913064796655442917726550835675085671422758161703531313106876863655111831989900094888941496538101111085859672533915164163227371784596803453767938651660095742833496454541616692239243019946089644479424456144232821076785601471604632319357793049768643071617738643289907143417595721857039176763843297316107851804418929875730278579053856001804746439918326741009301630394351273893564362349001525763716250464192894355966695424327426192851365116988615678462877238366022546816418079580558635467328321671911880786673754370584223348742415213372131504597550148980868622759404129626173725141470275724962663480048819801179154045266130244103043146555945913587808846921079203585696864163708070819996230782128754040988459814707679330881127473096069205520214683255218105076737784028016065452424632772734640792228511545365245222352951631850481294448759581428968154247676784619251156871214997097479837697331149029173535882874685243212449684600247947625887576682315357206891537700322045265161118954278571607074939302051841047655304453371175098686780540688503106801827575019633563368175240513955456245358777104215692501254969301962677804695738667368904952720809400048866933457263668658544199806877779133409982156829199128521912845421042655188483958370246329945580319987307745076195486506769072916446664418047126096925653192280743539439370754121974310643284382732816763950779137787563049725011531333585942571441999404808858115734232951145129685406910862772658088847650346933531398123405053408947588345772372652053409059591842806755117829209238387579373380849616870140718852643789177746237365391684215830650902671424129013385057394722988067826020658011301261102980653653575959800846028773208471003342378652389648259199018748384793720664002074628534041952547170627107091895096382561673200543080239515402891102976152641699945516441531469598672235090819579132729465472052428933265309484973533381117519190458413002295597149395761124245498955478813446721626517922652075501708788215041120266684855230787500221738348416459964765851817143680034021387937801501148966619332456958695687991879887858866340002044320793740509528253384237188819741811644750166536608268045074131634378150849611050649055772499305403709556805450619555329811367858595281228451917857001521102125128463336841050833185194541287527065010376207221264945939654064513966540627613493410725473252323518066991475122458569987202069986655300063007183205698186308059156806923313015035288477482463446980526100352197320683640319474711773574729812413410898694233582889258168403742011351523694885190218078578957874748420619681235365173852482545863109155340837812402778493147693406320483068858746967026387730485388641302828503796092953216568053515146110390412155974305093061536907252158430523003261763757065092309587490391233972575588457712949953055331900480672951048769990521070719229135976111989000172673285392239897122065925853978552085697123708646354556735004614982483170466068199476111018900389946665817165981130169153430601184917363903747464321140300908257708924643991386963644637487368940722450970093753651063899176850996096527693395593478729994240951944249768793503807721904307997747691326549805644213306177426259361813165726708828111613904458810523076621309883401514765304989863655033308441390300980900925353365809929125790316379041218435671037196865910719527044616421561806926953995180038329928128851596185073244967770640506026778441157001777417918749014431961627262925669376002153041767069506979776170884496259758681606267668993266420670321961203934134431486251492827169108781943570688817340275041970461542451701987060271984509941624111062711204107276501486082680405409125258976003742358967394406814191388682163896560565629575912115642067775933215816599418167156229979457789697037716108415541667464773594504827959422009137246611280459341493889352551793973065530223928003684859651291705833688533328394322177810588313524761588083506261354531434867061097192527383902638899879820988826652328609196099605302735226864390625907264622100326881746236806114943703592240109940715705513227678752831611629704479550676011857784788372005418330393909506626794297205380629975412192681982585995307709251460097001650922639889575726504118858635874760191037704825006944268844186670932431186904437748164046187008005032869429697626566975500671868183593951624478080900273962707570599574588689439290848117889492456508932028155978533896922638247750030769051796958263274267689886402596456044442104202729168791292110812452295243059308391735951429059405861256696825362893623973281468840744193855123824038414676688135637392538098394821611907245862637349960825739740377381568829885097456312707563884802679291483547019867907031242632125107991209651891193347054375261819251851760440169468981598408557386516224947277969784948185281798330563658802331439815898100234591765194489324916514812793755848572147522192708183029005919748842101285891408656714012424126342515121175209326688880718966324789077694828675259866865556581508243754802939684851830869940267038863907288327671386286699080400491100598383708977836634605512353532156696628983507750772799884643177852419158108166660717498456537757141376551668847566648329848587896238193114013597271537028603934205040951448490023743127297127089458722259180131343081229469585674103573568922767259470193931397878511229708751162701239187247347348071827788968790806774085191910060738523108614808978817017649250350908888960429742445944263200453004897633055234089694319080462749017412017537409829956326226081577351016233617582004999973220848713421558413221288686407496331710608871885871115591021586817748313834089942848725903931916321357269817035500125780240311514453268339356874562314398532623449294224422419085211177477183599010966867288791332327922100075481199016343510390037904820770045213864524098038968471828327716186493408392717407780528321036317582619448719238062051600639711901346470085490369060696466006456422997742499597019808769514445433677434191140182316264350355472695893893943655721381622102265681865220583511931862196542706281473740977546880037123475204457156774157674940351446377109977744519498012530675713642432869356197194785920703661631751221181611327914375631491912894554447492326529467822193811060398498030830659594195474885938448137367480048297614735328972151226916388233878538655529560264211192257150445631750919268102194466275689461297101435296775159828580412875646224730789253119454508343255712824876761225022372281006419334363287311894848797889738505256627577300787425487085049121742098793556577734532958551261903895658162203315337777468025896255924047006465917792013752719961405859792452712374199364526441654427538945628856639538740034873330393105084943540573287372723970232066429208321103139067248652335555282899823010017166786204086520551817103476913832373419959622837483760874159448017526094962801672763890035385817516931520632251499760755398407852571335612395658792478357176986436142608774777245453119885307076689234956772701166424170400976214885963196280184595395715817730888805975616578105549192474362497343607796686941470019507937246439170597526163748257882740432940197708298877893651017221701816671814235805669957753277858681179912289072865548864997458462083805510326559218834729833973887957953337727387744876287667392908417106736883139789527169463363801023160441147310935134203322888154636653460964271874328386100328605521171503134553718335191016860617992408906624590640722323028458513048764808649558595298055703420249855271245931383928054954349780236938291404231152927582826633694364714448068375622857319420499031362666824965332186675966432923146048189132131558158924513394703968849683834045235256445812784696074952294727720510537213240633826059790884925579767606801462873373921535491779622585311929379189315564897177727345182642198912095414524806042810596596870483117879411105789418017191167036109555310411169472948439725127507897229800277760067255603673205204980195890982012669434876021082355885394642404134423553730988911750454026959564415745086608737354344095185397762191272221456923313681748201553176700619748845132103596264316037519801275471383453975420726088774341215517627612690085546322676663070157777933567744541164516487714699105297655162582954599705746012279919779128264701200227680463537478435371454028672920856743911652677569105575160460241916783914081780856661167515418402263473935397735322584692521286324135108718742510288100718193539174225588239422947409126874651925767205874345796593589271096375937452958296928800707970966482676458352478121841261583275631934974493912965119156258674827354619518265330240819563146519920184834650713339328174374658998936884346373856890512985312709816816748614787817905760484167511775635354833577684537290373457590893188017337541425980537450886758262507270010020306399118946248473166159043781686408749102570585430758954853922355146892183005906660314561579631249474922854891711209473963911892739632838359326844209978282458932317541049728059829305565393948513206703985432989942709167809860171356523193264905381159525078620249077121510068350786491811431356588261696999338864423135094502088931172072424732909730976929901238631001186033594019050780353948889244114223915365814616500630651247225620575107748656143975570942747447002978861028465306008326273848534163438626521317081803756092213347514531243777706293237421441824581998711246329299710670003437165026364307539559540721377607752451217631826066715865352999128342370190672263448510544208714790926147030279344446089241739657676722624107278035577548292131413260073635530457222161896837200345406158748286660152752986214708688270969842930408357377509043662783561746137525712917584854825424177672586904798358086583920252336492279917208081874131970360990465696786606150519946118002776304620598691346213122395258761553806462120012846897177399706347286563533035945627971542684312416605001107502756361109672986304991989531601822401601264632534427722303381449316334798605441795308163561032539065545247787520353281944111163149953585477761379419275463470172339351104606232534316534994298966743450443683726485725753991552603489006481422364656956778465427771613425016646879979742892457985372300908463263640432638988185074448692260583933333017682413581731801537617138166356938167880016539391121930833470704775618875767061957076814301042981034862380625508971990792447252200246469537769806558232460920865296888251462124152630429927835610345348250660315409522399223731873356889148582627119042739368724073350910374333609921573249474263385028858488007576804606621004836208778786408604258525538717892253989644432512653608054492322382468753515885695688187106191971052670196140569005820109342433460722947889371577056031951014391219729298549844999819221417601212783305237683040017509038542893363155323680478571791167352822701629651059420876846637969788346765045892478280234574588138693180994498829357252083056952933955341368100376625305908890789446903860132296515837018099313295682211431504058720401103696871985377737807457393754889751024981138355345274146373588736509370764627315063923209563876511616128330881929118979642283584430849340147234118201555165479834677392002265979562315839679254808867364759959358382721093130374117495990865750758417285693332801524373192889408984681022444068269938275954205746086219466819699888551180160637382435628770657412389042432739213860643598688627923708401018325523134784352558773033031315845303020020344963489169644702151194234379989206651349120267596791580941119407398705987763521607476489780559288402109345050567416838343801914199810751209175103811147971907701915307340711189827756700748040517781038821411602191329047656943736570302610723759810543045795371946000346487094895644514450451801215672304288915346844363598131941367284422089742069771304661027729251421514340406582337351914205540593156869108774442563737894160412643248422187916537165709169969260189562156469988037120178247615996406869413785651731718229990371092199019645552437763584603549179382109419245707381501840174516927774865805907893635263818467282785683237498905637424668317781909275580113171553719907113377894730165831162559987724211152387457670895337141172188111991481387763086345212625318702874072274514297650906894631074714218347539699801936985041854599534183894301049137342231982302462136693259349091101041965944248895345820330746430593495699394460181730716161738764581952742068481164472157731409073093845319414930975413593029318778466885537693748708067144401897373112182670449762912036698882920251200578825258207966522606637434832833687582424390927814975057563270961448471767037948128830746473051988457489952805415075382522338930114124945554075756309117660161116277483519767170217348343446474074814255959460309535891902500913784514072396826696533450170819351882534782015784960779457001153924382467772177318384522929448156451169626460712406798030484069941323011311289522009435721661984414385661703432881461880832844577022337926570309060256170264720653015587170049678107122698056683659280996840103691092839674283452864527188943324007513358335639445904346889547640330697297622687080259606492694196731549241559736621366710409787216500987474677167324821632249623334756959749093506268590383094920675343294335893647001178474810179766815300106404716800223372961275835070470241086478572247864963533713517595890578813886773956275742408174059788669783432914405580400745716023388160351042920946786748716315970111877653047423728888958745619710789753166358446369308434350459211721894807740299839541580419650441821876571197069586215562989107644117710508968071555838925359369614585138191853786367672817288488152028787373293105287119305855064997070425059157222261046567068949348984889410339018426425235387967466411846732607211842360394619001035098665898563155367462897860490854840323031953200413226554764204580837293106624968756133285620741300289979242689862880894667802131111459657684852408773794753486467785296967544500236057171719900586076148327506887453515657958091379210453256748224727108877458094671953687958673639944372687892853938993290966719827387262533156350750887657465511271569130139377004322684263407625251004515355348305223201325076905237683887177982622906558469755750482674878518535250575573343813288954302975970704273131455736626820201357575030378846471392209105881747449082081236519330801501804291541533550437273998522109807823941734353556707338750676495670965663548698273343281389056962537363830322284439960014867478997539795673780054248463825568938583279792331035236299090362073349813272568917532644586108247703503137755816282003685941212260998836143312660441796683865834426583840984187712532181050424227696754230322629465843740884936213146674792425670352288633281863163919410787537450635334466827055495665173049511861443302652323643659144916005927348897271418432165232675450685380258566571979847981336276038676416540103774811543649267652181871518488794620675277686256884749444213458670907648216740873867509673743974964321621573511322688549893943233992722116681460425672942834631068004750357223422058081574665310335285490851589793536949541548859865037445552194600211285302472259804582251008160667914283983014597044158946422921724459648410526634428530421435512873698285684425891006804867715683480558482266591789360325103955058771390598851770613250367883967735948430519889867425443825543937129603265525259685174092513196607222944145192173086452948285468563167344342616791101983999513743884766080596813677134904328031816863263564941097869080780682034371624222508474811322366901105120095934677641795774754357657609879410501818770172674428963481746974630737354543448667998387629779202095515792772629384367992886015593043774686952694700915630210586059385602582728250201839175565586310642712097756316115311708995166698139317865872527807187834628054602075997976814833282569160918223666088731989299784024068838268816424713641447862264116956932532395390743797463960395528249115821139946612988277022349982657764609232035183444749245019388055107231524791710140089864665163135870866344151077593678816629609748550654006189632974453227060920801883573768971930102884915791504328454374176259118938730943744681188145515771420248524170929499457862867722786947856567435868031522023776933462099924544077016392812960198370715154692158536088402256592827926376337301928481628457516983574772167580752625317391162274848690536841260453403637346493866646777027138600586037173407958749624949274638611001602318979093569776838518943356021060224629500997527044611571579569367551447434948317850627928873692221116078317843928746832777368215838282986536436646316458243748944819003168283816980703758533788546495602244159022212959999733063002052172750982602478569579973463820658849736840620294497889808173844431025312732875059778844893124823246238838639934602751787835066173254871596519076725894774819629925612117636458890592963351483088645915825391224490403866197575047687377509281913984362066782413571755693564408828171743592012605377348716457629147204326841255350805119162965289496474942127461422255649991508061080098886533031981812489793954077519956205451606391335766779830086204381171483762470781758428956614606246235180038031915461267438320487454494304893551239962708465419118006910227594823101478994310360347455096956238661746605482115597064848061953447425483902061733808544786550444779821902570136001908877931003466016858978834529183065318633821013653519783759021400820345325086138951785264247422848833455420464499001814042246304336876276868243467171124962687115521932045187861372113406363540610911445532725095336130119456050418943382189345839918646324542571878060761993179205444167037736212782833052669786830685171689428587341767782727070507027480218389040021669023125931512168698826584696746362408841498659717450086628950336124102176789093323596435718728654097922111579400252374563393220286361355957662217550620827916255767104077794766172997184013270394316679108633829091682276507794300182400318690197680939456265646560897230164817617438136037460245920828099532262514475022432076701721882018399532219787314397057674243250074259673585991985884885758550111840696861259944016035769752263569375952599762019977325750102292598034331956716355726267049015493240493776098235718038669793472466185916594830353373637094990633603660346546493734049772678316726923637521209855718975159003682948869865154939814962175833420202971457960669546359901610772560121068168116693475910707537142007922482603339385068098482338111733438276553124806710149462362401179070634176025831775465008810212233974838858002976137643766614258983586894699458299918295799766925611459369666230434432868448986655436623994802387871519027354492603594957136956672359881687195647658429384228003033365399527499371024688859996009892405838661158097632585382732468968064071360592686424583178116429527271287152430099968138828786262937763845843467369435917148792037383641600022431905413935918453502663647815583411777920914321167967547083338274923336463999310323098944942933161157566117468911043810784442745323387857556110643393058011982644638008830978947689497557173215949266320269979188772134061631886431822398191617423037938155577011152739537974780455950574225509984092220985155697710021726189748328702689254767748891676392299518025689462009009565310428144939673637035691592852434233595983531513384302507268401450528249609206479462990711447076714049894477999952725616822274254928692474867707303431031780440609555723020887931225848652800368352656396871161221515242304916067671485372948189872306905342207371290239248139575604753342153706871009739295957497315020053745687062879077445988743586158655305662201554205277646446304929442838875567890605907649059605933818465297006021462055801538430499230855188459990049353581154828552943093464004816573614834251383837777688973227345751308450477434460554521029642104307975292165813448835597210236328788400417192636652533919899345243849484208481968719252396111110883985158029186885185050124542525637057682037651048985559827928617845272040175173783810474477175145220187205819999987610498634039365353811192825410194226425547926765453427433441467172424193799814192859780498562065825916616006821077375410141946450464890005942806278414784705457896406971919667853770635066271212443354679136113401074704817534822590514519748085517323057435547261899094530842088998590082702878482314610407518730559239105290513732375365557168301668611211630919389721297195474027973581961913797390777668427620243842541225955112513302867469790411450257881315189128992212407472637175890590861073973795549207331822748116157676040877349419742819801551813428535397875114768736050439300782641933662177529678341639371565517357377802962866428814956811847991314273125968172159792721831340683536778060837160423128901989120835855876999538556300338725995956241773464423526530403344459847238315046832258104015664894508647310885367707367494743343376232286463433782475761160388292718165905992270378784905055096913794056086192962150454360630493888364911699329531219492979835387306175273492598918280094079809128509689540108015382956591649819389669655924912785074244539318840141273827301658678705462576069626180495784101599109425196059403353931364934284827759354650184868327463905688158564831937753836683451632200724995682726326208453828041993179844088650359573739865311436497891583637187007062551495785586614431546568825573813605998986353735544592889328644094323441754505170918294553227279139831220798646587785255220180928521964083830135446101520136415249472327347932664509795066508955771399439289741728801615704364329817733146995824589857801625870129055262456051975853346671393505921285451170241948016598127910580081707141969501651005905186889958115191123898926318799379606263621892822449768189066482524240862908307432795277884101837284575880282852290697102087824401524341204188002615277918435006970954154802771310904274619810093343276667915064298804594816815482856059380318730615866515437026971041698056340258637304437673514025768784231226231984779602055031275062429437521733856992558629157108440400250289635950242069450147410543486834260519993040919074797143476681341177722183422754816454007098400950177445361564053002849287299540525719885923881108345421642094049100113139744300517063024619841391369284654612743593742805381676006007850533768886455994778019877159289160959998973987011600980803871041313727115658567233050162046874773790715489205811383601489456070909207644984117944646731095633024970830411706681497103750334020215215068415709520681850509920054958316111655309930697961178074755879662340960306586883385019761737825703035715233275032599930719755018212536092863423911717266442202684953739117549095612443529607796842974820667913283494072288276464669821277624760403599468301269205066119141771971660126827015845276174160049482110035949706493750541180040893768217933021674740103206637509482113260697337059591142802723522594251579340327601171875296331392272775728100588401126115608262274959688486774888266016423498221069678503963371781054797938428564711224966569544720814965860153711140269253626804442326351484740815956024029875824962981324452181374874037758887813371245923860640128988077287676853959777082733956989147912542238896866013701607825251848729775999718487163797936472098404629878439525977417933695204563913081974123502343735736533447712731705343571465287342851256304212663654118015856753377393673383389266606295250670880397668941244772489379145506316862325646228988074748088167385331969222052126126722902042997714442560900830081633646714242534047150351411388356359778842075917350588241694647261276010038296594788138489370199802164624378880687723549914452503906899016513440300319933312862716964305489889587788880309124731487745857963005775630864567497736556882982661181749690029087319576996113128919164230401046132653683122008889137245574859630721847134266249445981276544710499178803315127892668825113377782064181313122454694946315253268008801555319395549453740124574805136149232906148532629505404090747576259669482084473308731785707631917321816281247500356489165519866994976884072427346789157118013184215436701974579258110249956212970482574455606371883835483666411250707651919141800644111146819626290895096886607634476338507497178333831456889135443853739506683251952916727846830203078420952445726106780681965734905408913364892238723986650598399933060479046882062033792613228097833438502785823163518454627054222408655246457707072767472755582770245413800753921483997529705551815397270625544450183038155838867144780250244504051537827693233710842590245395712623673912682661546996238130029882968065268738562677241964643721953459605266131686803425503520874966810672384991521201244165017472041036727989915695990528965101308007042299472488224992067909233364352473854759604945340064738529396141273405472929355772928534940517451491790848544301278625520287758171168084363846718783436208594845055218162936583129042311914887930237492029032404920726869038498418219292094079019706745925723482322421049010894445783181752722482636953250372022065604024212446838661636625658632597791062483865653412133484263022186860544319517794379793888955795520615260818611229076823570321755572220970854399866176320782618795239771653312745766084974025586372821244730453163170164217173984082758340405073764848014365864982667877100852150833423153911242491402258324913399364513145868940834631938142348435568397105775407264067770518786688932110510052971567184501577555912526058949654509682140081671158301423296456138616691100169333246290770660243776631818018173020833815524447877987663295158051361441004244995155387412273852483013232701135996115850974605108046672690367654829732269040401054710629251582215278635924494167291766719185042942533087608698096486510850413485227277621776199250001477403015940922299890584802031235263733722287752755427673911753890523792622116680679366919584286958649981363815501578924271334977083990065799034039351454510413023408521505447199326825403953918409537963156016019909081500771787786709280990808802400526699230716963452506225895930177105904903748036743225790497378060672338838865947514773645000640610427365227873007990312872761847831054879252081175160056193218559253697091378726450217661403123804107814570924664169333049096659698132495943784740132595791678675449243821245576905085641499577564482865000840764622143544470192796507377180346032463971379890678068127694424346974775176582059280293760896305122138978486672258383146063647273233480844595767733886840022920477806938001266843682405986053292507000190743755936461031004884880105461554986649062887906024714188743907701231723134085120007163057943850833868088181314155229549737189727327090610681674017883061936176886507898459969918076263536186235264311374683183915973942817701256318028173812749896883854751804881377583682162559956894063177440654625258886881474633526133322424853605158589651519237932521081440197749650477426029075473374070054684925670406666903106885677839718066154032258825564624288988063029941399656711762043240870787151996336022556040949362431313431638911449776500436638423961700116241607305902528646510116672599387981214413131681246171747796799950072357135439790871940707579795040173168686861778147804032547868721066047118372683296405804887645726237899606329096539276974200599709147507515089799414342120481900887505151327258736094368715696064344391040535424565677833701622750180276583821285874930928341881500185551710240418458487257864628172304956430508084185753158747900758000403472834798310601297559216813462291603722070263639133350807765334405692282231220089491998062754620680646349336638971778536723182617859560794515455500011442085964738925309516531499960252884756634518547702087642935416992055587379203375678883090477810478911579006697920983640238996256173731195431533592184728674896054014371661215028442474908248051192697866483454001291342843183562832352235444393594507391156223176007263788356515445524668931831938026326357213814709220700215583446823315375333768388139320301596682828335007344398074781109472863489599203400577360782647035641707046510816687719490486173763903766989939749452322459414771819540920761634164857535602124528920252188305331247129773111882140600920549651420285695982287275587106838640562170184310295051171662333334902310028710167314251106327768259764693622870818508569374034763114032817906127211960001543039432937590152519092699771756252160728198962740273175291191879537672216022157521219739131943890580862549661570310073219896321223102904572035187214581177589980596325546327892751234457292787768593791680062074781530897884661067545649297434083062414081177297424505367263046985319572707560235227943463699758973484738438443369948743321757949041618467231438231880475490706019199702605880362842022598181414064386148465623162318389653550015958434143649453856207429243090313112541266756545788059642962959673384939681107216810825184443445287884300636624727465466414659281594017679903404260939619369692047467424393646546451148627878165603307649294195202802198214883745800583085503051049369025329406924645382254757405914100137041523218257202232729382190639722920462787566479164597487799682836848555099561448518548870789573293137107528145292533783966233215870139005964934132772247482249980139541427227892279480541894912120135231612902682065261621443680233263202542009626860118666103949462482545874318771717134871506402912928847364902030167841770463953371525859061957375086220061781686234181636712823481740347098328316195587797279479872743914952091973298473636280834279406355337249979906358514024436702805067822476691220387065615985945286477661595612922750669505211208895618997841687995890061074597381730483702855949503092835269245502247695817789389742918798358424568556685592417466709336800556776454048193089401636361235210679914573520414715412682617147164591012905646049023171194665324880863071994129976138615702899651174419944498071944128591682727842901505494915984727031892529486688856373626426618439448218431945754280410453672228328916881962773869192719665685401765409962050805807839171626349732385555040282787329177114312559188292111938612624230749052260540750577142959356346879078727680306423077917411702192612072246850070049099539476794746370861997357814636142575483399468416586025090719562828489423200338148431495661203635361918710679079580067836726135568854465496231386622943009349886230425874236034582028476564051570049654965141037085311419555720945564932069322491689701024073922119151313928572921414443461208146400911614849358317000906149222192823093717481634474761909114564358352287444661323247603413418659171493295394198209950757327885968298763224906331939026672000344912619473132599750120177738482329486775601133138605861427153394078112857516880324493855487728729214144938522378733089987510391012917966328591581180912330502410432591853586149287809033378271092252337667740979849794137300717308261702673404195983446273743763431191461545608563589509031141047285288174505872507596579421827838417372676431105904799788979758129393283487796597072452445942442037589712851505882648673100032667851087536202331645820822512872420841762815068380838786098884348316858112099360287147149883051436822517955042821186610202738381329615813423397027722709563579127623225480669059132009789628185294734760913871527911977009661349312140232897813662592066606322228664877257186343817061548736327107713291050042029367139842756388285542308654339648680904699571198283607266475927266621178645429629859179501155236858680097526875273857522314925373235617552646974980309077204656636815154536382735648731134751723498515436260650354892786727514707463174785650772854510599929784843068829794456146938526096962064816918660912856386974631695708291344133998494397848690845343924162881996858279204624770575995419401932867074022298989288891793613756008262407466238230839445194380738298840372954196755239704796184172736064918952532872428857133825179725546262399112910254776849034610578977860947169181768601962169015302248465903872430831980699031970745400387347147258282823525483675302987745157172241503160806718917460875655184356588160220004749369315415416515447475947416421865237556788589498604102738286275514187891788485981842115222743932758311845962897604141263222307870111888553011031049396718004118922618853186075195244598522934262388114944365530225368882217225142771312767173740750767703634734536000382627317157278839487504464413418286402523037544894011120107448950068289420312168154015212379443343998091486073226861137547234758927830579150670591406695450733809676497834345342197775522874757161874483987061391938494339974319933121760955618661781385601722672326870667562455457900193797254978106212006360980834014356211589130240099909021469796133883304030152023165269485143106102493388957755843268264382577392608936308970797087900880657418794592226485823922097410258460157159786556748464546125867710499413861240454033863767103360460004376412787512722367279946743459054522870079621098815868611202086314699648077293424503534053827114256878841985784098768329114573195285773194131258929510679354734698047661021852660783739654570461092816504728274270423615708633307777221057343771928343733203353843826418400168629140871872572457089108327462794736461386989658741035017553795735982042217367070365744512936012306067768603975994106093255696144670835959044424198541610104340014612451820858299520889745455734591842226888564748821621750679824885082297584072805852012111253839286242728650784371598782060568560072426539949488401706052275722360626091294977947655480810578458933543029930782058389003327133309527476714289825797653976906510311834932867684185297695920684749328033769307453470331158982250700631132264269807447275753399798199081709188402851860740363668475945478493763944259795137252982434423574345641576051650504578196423871835296284743359564665792575546625942408775654813156210188892913391378071765671529396829511703619625221360394159548682135903908550143562043446391514499253187376886580340668255111984279562513998302493212060410440135683805250192393011548361800032986236471460192603132596173649034264246438712238041581562309475022473494854407192903553587184335124025943132097546056660465252849006300504662602543804455088971920003881560097101266021504623942835155173571146636252535427081655770543296853612656038261526538248409110853280833966056111933369774049187435831025912659124166519088796073240471198825842993734471533252987017876690458068104225696780568807223002489732427649225318522505752625059272952051608503447178586299271526744449582080038498614306321126015705004949787533697407471593686096810887302436964705135618640561578635765453942148246719050805373254445235484493801114806234250908051739324827015940279382947135967466420012073706899674201245932609592272686992696693140324299189344767747465670326792292272803006439852572228875740792472190278024711282030016606581613322617451324466027551450239684441500321824613233376619364970261376649740795009195415932637260307768808290673379155369027916672565485047150885623569426074943018315425172711378793035258355261760900934301441804221337622268981587081664291645761116401866112227415637273632510674158368145851511486971791409439562013960386890170030096960022045801421850833081106945938459009640644732561636932207331108583492813844012408402505095036169925415698426077023290486165077917891519434971992063071988010969414687495500509913754323584468553278994052461563034798705555049825290121847301450387641069146872484551550469368268269377450416823076445789552718693747496295765336021937651831320592911081494080587346668664882630033331817596857028789097827459274593950980639357307264898439278127418331926134611947748679823232133201377713307365187776442253899453564005188809248539227666598404909685755574158507509805676794511878431805736094981731476917394842305917686150876102768799073997228595107702033712725125972225881569683516990098349946312604486926759644230003130999712682562463581815421933824513469289795699805290107286715612989354416148181604303909875356925529467284913560872240408600253409769875057181740924039368452171320591959847521845360069954908619631466020886542739449898776758726633948689679018708254518974566105612626084422910925503618149069669480116071868195494211580782014007700666537213912842685582214804745514985631811799106732813619732538863818661967458895602805399419939760624103145043145860576658255390738050404670347436193866575782546532931566513749165267854814081993531098680469237043059028461614207629512619859020903310540440259800738656940752200591410906268516721553059309853645115028237980167952818002101457141257834886856941789776749146438865352055765434561538019069174041940210260696686039746802944986849614417503525970063752158637227736132296456818874798681047294061073182334886461570116783059084620295456242933523914919542403036689925971448949826219060070268754118366239981875245005760406977300763307956154664385920946724458068391693354775039568317838251503370218706749434150648540471632556418826414760810424443595842028166684973918705666044278451341771759931411943139570288627967184229458018444857717287343500087904024318010633877775454805079990750600352250764819898064364154701564369058569487115765893150518316234285943321649963232582892592770509135601204048199015674791432664520058378712801882651423490486378160619297764068829626035038016473499607727926934995026029945235756073708318139382268513014930497664693133921752665258135251962602314663517480221246936375196831266987439914511581157046077121254831243985955381337884238967736340046701510837021726649954633863690652701836711410472156617553960329577657525147196650211708033079146394060284153461973684454721967498532612330204392833011792783760716341134230837440942227772864275684831099390528719645994985986326659460596686448892054010150310866500004474972261750033237710647039548356829087627415268319902080218979368876122159237766109568666796418387880707398015299288137114532974391881178678614506046702699537631090792342154180059570119513797534535907607631181898717298152252897883559015766698698194812095914743848529545972452759726627573932768381582352020441824631212083271248534484149221701352262136542745450426717577484361665604887034994881458223542439902764735567182772998429736518587717626014046411595631481583823013148894367157709854413875071461089003041543469885496692282380490379421258984485694142114633426397978085055335102254616244510012658265072155886366826656938270736742417803796485164295177617176888188547955907735978480849374924139871210870306263916360986139151534374750088088494271275164720495257827941464438544722602502777357024645914792873381328972253980759328915375063983034360439550661354478407340116260089316131279622291140847170163264258405587622986260813095431384146088459722318864074795004737337808225688137135507444215140972630544407856447530560373859455226700691589225569310674196117347724662254136213476491871187244496003410823643473886583666091173768885025796217502970045663707657933621405710353690497047746305705423289671869460234882620695039091583308813477526927517948861648991593507879379886118389889652588620952593766440062698528029380217570984004711478057029197815444452035482553997839653771475518218367274096306800063194481308848900926866656743420913542721884962981014715921691971077616916718295608340752893004494331366023135846885840237708628264424766743686427370898446289304964636704607347504099273378851869788545978185874172603428121307797839043162342810214254947264041183446767659228041240240845417757447614034204830486418335515250978689018455264148390600251026436706635667254383269976486197941447599707824767976805483754574342654972107871320578128140696258626761866040151375926526961187239737885767683831494875752058957235926893292281350174971478115078546048654508558439260835577144930235988278995240330311905437623907463121951476495103007188508693411239540223167704340381027125917242831297459894678277721553329427792570470494699920988856150755462748541861351712204038965928329439188085814600880939781214825501901468576505861749747301602554314474556328489918427318109655412689647778434381046104165951511891506658418180846999228321743291628979972361435924339223550654849463329891797701472646943114062337903786664713545444310189731150430785870762238536640784067606470702644516157501903037754111882499602205817494363210416436714902055174638226168325404890512456313797143930478091660260245842853461565316018906303740716144696085444531247872000384588110148831322680479303609183853965253519691099487547201362643382358949297195735092304925897520747179616165045659473583876175112782695975748190408079605915618634909976799842515976921613816669889189680966571405279377137126704185562919144557755656846558748461432300037782159699731825210010633464132708748094336606154247330766713967434527354105873116099633003610033981209760874538786658470592551145203720511250311659092953087030320817824549089102663179616881821230018157750744218070870193843381691157912887818446301217539265553739096632228821659705937961040854041287526132399710778109335986202767485079208530569424054857053585515629670452857296080058130393803857715312395036998377015217800972575218244010422868620246110361304632471517636012832157288942135563587168484132355836644482772947970198383095804556959002525996556444077878243273419296811468980157289729097575320867390584786350020431834504465178028390971478944141168850016796546009542765434985717999541163905605559130065465128590363726404003991704646601756952996431753082601077412792877239339175843745529898391073573147389647766211315257874431417648613826920270102282361361274502126559845221730729868692145527877031421762208906394317218771816702324141377439758784831987248296137005398049011227758416066544978170231551018853838367998057869120529888809337425207404581245815487646495861335994639187368999972352259343611665627300664960447004738034936013945363368949455050728588796169003595763803033066087685581451779044794793014072807267138863769981150943564507250586068825653076865514311064531285768921883877466215455070435253315302987081070023364627452525858913951216296769557573797033059314281648384293170912581339232999376562364859181434554806955558038614322736137148747932333147713397276008497859491298235071844544075362075882510820499675881905891818884515728722268493799112887346767186922354302543979286595882669534738167204584276843249606147214924252387137185505402825310775320601202549354100253494418704375616012339156567319513411205209907716667530001911258102997638817870548461421627041499346310962026282307359085177550842915974756393927146178332906778381860999914898018136640015084469246036328029010514608540298632390593559341581905940838024603276918374288182310494363908087491426616137927808736913634937481593091494572749236422014143317542984841390512149032766618989656463453153872397030069657982681334064510146070995259523522756445371356483102671879147568639304567918240715248793067602346131859432423516616696647115342626204584258973388950067287708615130720481628282956815708388958345109649981040047938073299798457492831084095094653058998645071734477891811909494780463946068048713773460998777887143487493416363868567522351959143533147243211232631447281543618495240145090644129790779287813804974640748639948194628202127450908245245355051080696080079703113403127952758789032296527400800122439489905961101447049067405122708135456506473080471294404902917149752169050668079506273759881087265605548989170720430865513235359290826347521756191480362192192197030871512506641024996810097717225430140440891515734843676027904440719244806926618410764975792624416288554346135795453542735768498036567896090458819379381524289018554482963126699208730358130343876485521086643445918020288946362258668566678840496877606211021417603844644902924606624865732674446466195444847289656580469257962441589228344721720500871415210658792911876439323886669888136658772455240674339855855506872424208390893491704844339564510134218138329751103652614573592869790883240634488878604720292651746428027480685577228998549319053955568920696674436541307801982242285971656963670714964610971041521094578833330316805909244633263777807820277535536335235395147605093289883936991803447800481600563770836428704398695680317389856099228468338740483499051609746698461833671663965562322764857584636168938421924776197447935012503590017955981792555432126605499790802165361259418333961657451249957915313622229840320631826145388218982999277575388938603720635266734036869543523274490131986643087018835328099480083287892592427327137629172935962979583995539838479733081313283401055082077259950803104118593295528687384999932900990532724626664827586746886313207289675032565777066995134665129877522984141397517864826116292278760787193177261189224627967501992646272504313715439356702515743499100504809307769257853846159400246071197496628366564448249304501983220597689997478270038432588518328076142436783466454185912337066702494696432998648131031726893961358868256054876727519111851694791790360148123472190566320838037595727621112951192609279504635071450914669211253928049097016945566194951799666021316463980509715635937925874575009552174020704245110274483333829631254387637767048502668551150820023488805495761522676936032986438365667571350105376949028058740727998373950846248775930288362011848610883831229460441823345088044305507903542064375446329269492114901943606773817406242294087622912335844316293172653682135302630295289829324596365181967538990631155768201987897644089594187080332550263841446039222091388106147335454675509978967618162350885431430874225315028722341875908157117564015085024453794114143521787108053760996335373872575369131496201376364799714425065946186583505251575466222976729493113914321189277590087386709852658657517576074490136577104941230770392808886429177587163072213719524657917061451943547285557469967112639890141818239591913456205249148780799350794542282204566756563562427466114309015814289441303020616083116391973844323649611099765608360246631726520185417033519571403473181376311618858277264798578831833530883175853080688170037641660008986735669432492420367126144845309483376549905737019181970367331320031270478882931433216616241065907172480656504985056976726509057589281846868437006241349386347360387471264898080765251702918144138360906204156771191125662031437894696332283419376729758043679714950987440529612957443332361266263736233423484277002935385470908066235374630804389161994802300539572436958390118201481639981573702902682293312264123360291525970370117117325112353285438445318700756160233510775024496053314814970284235374170194611758519467596656960701572160899783510442901735463028237140421347069242439008814865606910119277368912556268237601241638592495848672233102868167662811812159383191495876078541844465678249144720816339535575399495856458693623653364983388968899835154692438801322756116102959309005926670786312122291106939265177228536316901694457395174123212194831815581773008582611120318772822445654624143417314810350769566153406139276662894328879606126180867811993147974678427103041507788651839656404498785370679839413023828343387284687679216639632229367742165072035577353444171166641704470886948005316539187959486479084729559680157849945115421006509131669624185410813381924773791293951116301946411617947264922802611287874299702848682932382961807517039086128674705234327822626625106680691489763132611379987162092794287759651763837623332983836495038961195370506233887714064878918193475824811033842143272465043832615460933027245836343600936966510856569296974902734489899566887801357008269314243404912738576632300475946152661993614972637319818865142766029257091668586296566251083137493696033524345847296765435802316389915401991512188963145474688020413889047711225777271783293544746091780744391291181055666814030985248256743486340958112817286226940829280017593062347842822022864938740247192414115103924936376371798233152160207966495891872490513320826357134208821387670461730829601273790493464624477126405144125167349337779671043819630892366513190095331235636664455985339660638036229184961459716477500635815932941162466683974820621613929869077940462245079628248519343838565622481915752485231230709361899614410912731175119293400210964228494821851282700992773726796565566581993937978164587503790130540099362171897986190513407929487616225210299311835395647339355723783168783446074601168934314105555208397266571039558441106537789857396942007817716184874694489309290584515704254957756899800137312636236414499937522710455097950840221861289656483529062874981238029866611217070025544733267302804550621142881438391433150907489449175292530785516209799969958224901488116935130045608813375619421798756327317721717861907626203599113263392102716128348801424588613927971228488785341355462025453159123077540911159686152446559282693107133175911224539326686603561153073335995479240617742767350406101505130129737887902866437443041525100601910188475579551103280916734464749489526765716981069624447066652371331895825078384864989300781480081838775014807097979669371617264830146777557216827496589533243187142388006405874613437067761270587045547917329682449540722525717195093468411983717733875452636557084239743772103256692743497669297583090385696479621013587932626114175513952156958125545310335747252594271883703341831056587326741850204343989887314286204082245496386691008688406680662753331516525059068550510682939954878545768867035806841879067460130364799465565822335423304733048364467440759621273995908286800083711577088902660730034645518016279065401592597974795699490065077140460751544023161460548328741176480292723932168638493179648208969503191426788808936146902476166541850765834073309592938976635816372137523897574515656403093235587547755629346433630296370545953737934824163789597815931799814465315171512985797372086548584549624554921401745549605815360629556456557782476194000398127038584374897712111529020837023575887822067864128204163974304018083277429201249346236297828641734531779658868551035756309068178747846008461988111562081304160883138501389773700163449002815207839657403196273608586288045195441902177973452700794000733904650714717306418075920175421567051924088313081764949484674979801043930321234793779710070744096751495425912697290249103475937241444367156692816245453358834890255749123486695800209366310826316524551419455820169228648287455724923458651569574011457535029383799294094163419237219895483127688249240980220736163185182302169175847635843015233068148067965834894240310458193668032251884580177628655287255396796126889381072156956342504247596799192412673546141278239780306808353862054449411522709923813129961257293257061473836351273653847288979305301489959777286040151251174331630339826874716520037146324386237519989529554554440020977091171344836807301464980275647858412288935521289277664495534665697373840615628292545952295233244572095222965455469182438941323612921163961641228152460603095596412138313404413896445303030377211527691292517059164517116735418334124159012588360091998600147674791993360908012777333050233965785564559896560625279925623743690258703514711233789336385525203230444879227433582188367266993197138978355277170487939039243045303315963879219536937031767329719712751844563642164604809098331337836052748995145967856175665713060480637233873836054703072694426137007659536032394415976386896765727031247678079424609385262295346676427938172739750555526058674205248499157306817100588375126514927484410703426157931851185422004412191254318876103523026541643462467851753589971736185283183953536424224632018175610183629623901797359587149250254983106774325188190785855132480130731147082511284961464582792812069703795568103235406671020528007098135195272066601699631528043627609991085086247869987324586176408737155050792026488486344558699709868845443161021664642336795408828731499498982230627370449583553177591106899829795271237593850895663596359072098040549608070293568901163581291776080209257096276064608452465976968484437055849875326171249939938211631254640434247697698344114019667957557147410420959347690673354671922421503287064284793884582940068970942186174135712002548663894121010725148469401039982514079225251476911993873774745478465984830490547133977309770204931978796035184348467056978391287692026988586334176027753975642285110243153080611633228798845517195030983419506185471147861969498480462008388876103903463766579070735741884519191616915520723052189176778585634639004174942101393185938123537323065709784450368786942340831157603129748840533742352800372784643141310964277290416788947745246261102414088667427382024176990412578792663099797008523100499177095843728219176878181820513918433631473120953271243275361862354041768410098804113293965636622091347530384301241468236132276611750391679776454324249396743347700060336382310846144404936192495675810049865016856802738026774002632228474467937554613671030106363945612181659031819338303674080921328028308694904945101880744697731114033339853059712258345331277959866667246770545891842899367532705146702502959293286903365942558867089055946802737319476790086551221766823086361383105345433484100963066505815529905519572143555220098629378464514837204801560452628906081101401005756469819788723972948067871201874335489571351006151612928142354594534788672487100747122215735067779327267906219462013717465133655929177113645969494191105924569088031062215349570947349753304837902515911233319350859411111902333305605005542105847798440021765978720138378076474108823948708616263280029973161136708584024298900127631823402522097180115659346585138937778291246760175344638058713592915438883529066521387108786099600308921114618757856362114485270316251356307454687897198269631205320729382457988279798134721409196679886240234541642813843749493250516266605856609079926501037815573568579127746172236467977528343924944619682710957096829102340040543706738650280365483354044426329804152066019123935609800832773506902882138451932246675465621807858097746956236776451723315923263776764068156369049704164522439152716718632914282541161269552797812531321669520027651226228243950945099645864290289985850722909531557667434569412800568860684704527511403431424293040079366904027976929645449252268786235425047011985335080351832043807092222528178755934020805972358258791027796247153995307253351011010303420267197441423707808981349323791443157760895479349819941595749677417571316647550019345996272337855173455861855133959538644368431182645095761033451462670266508059756232561055539464324571263763186227447067595458122950977020553627551619285435175768227651014896049169340435073870569434071948518341727452093674868019989941996336235163721527694038055862148218829437521854518597291945865719343208276223850056999005263619316816105296094671881816014188356448833262857837603608685536886675513983909664466646674917129660535333045647671461088095088456738076000627577282378984700749252198573097685357341087470141656139186576648942786169625829946764576184964912894221233452548251059942145670812138943229631133773729707705773940219445795502624312257948017418149229358550527511881475050745268101042087684739006637676574222568066561172566724095178092498320363349891494674408881367182724234121033752778507912049074933670605436563203684939551396783710599288218370472910716430421735308039691711391491276563892152467797996279888695232204597688175174137667187146409626903826861586706005690747969609794550574288742506584898229973802156286492015133735100466401022770658817733848858315274628890082538160646786760137424826745121465581368361144038183218939911584395783751970750238598284264711070214346987297834155516587752579054544212628985571013614392986590817363498234218465957102390364620353604027879327486437807829024151534368519710945686941387150920119538588773748220559586757346957259741657226441212454613425682733616351506229039174266090641099956339305941160602238336783360231927761772913397555734056224770547575481087427828480017275741020786875943837684999257565336206999713203125625846955070700068064808004600857116596515703392155554997008868240548151960937361985830384191497458314158000319915240603359020912878405251209954337541112634400231841234414136926212955533500913464791691707158296851420603441908056742907089693512270644057749707250146216930760724835632074758802471241989039658770924805227114778865454902791901338495761627630187404841545754888516079101635966560129087538143956501326509217465294364956615287251300771059422632360876969250802781950766686841089115166854310628300792289338463089652787279159526349147076642209096613826766651671753779052780644806490477267466250663440091191046680159404139540083288911666668326963535002841902435513558640103304001030125803933729765226669275218236171895695648539390529309625046306653727082569313974172167263062648751947708183352448864902158000833960230552894908674537334489522488639324820311018220432811555153009700804040851333063052170635851442439178006835881015407554660208464868655441548466127008888619436822593113910458675134476757018137839280624763840775702962413860903973690097873958317115032584766090492193119912921641105141255505088308641923253213695651558036723179135592300632268178246471583312572098659042680705753853468284279497323016160215407350747725975829532863241925802407197773910048056934758842596239832201048003223968600298198949403868326156529325039640701896373213190724738124841844117229236449703449520323758991789633219887086785743019479650027505719115507970577702030744712999331198621525211271368696202358066506505020529623630138266464446937537538156411069733526862369637844644031226806043970934161420264938390821702860331817831297304861824550597120913358699429185658040384019112643276059688755658515115421967873449040647673752596820534097826478337409246429714512567792601712952168016731244595466547733780250067234240637595381927780245288228495700942801853214427311895079544039342439171578830885813952581118254627657886235052313972830903054189023739380077715007325992703674531691538100097278431572000351291179561269915110619997409344275904967802987517231507113567593562686237765230717697340293650508442708230113301565010277569197631928793000399191189789109648034518848779345088220547180108941875432325596992780314935556322704675647429172642069624891950546604728311761211429083851786028507976323476961306638963187025696020615980448232705590464745592000744620098356951899606783263024665803895124818789865230507132197757544848670550636530127080968507644340194404089681839018799365040043925054567428708238166031541391298935919667267261425647155723796540003026949632890132476982323847050637300368050179363332976651573060984063791782256802200368875582928385205070695089383469440516374997851765442775559265812638918240373524396497110831311380878620147776183062569503294738034872131298966291944959912073991148090224893797182254648300943092224702973246733469781002854895275364985373523813131899879137764990522258811917623697947205500177020402154802145887669997609946112813513651077128644152912624801459581109734670448516548983407634886930867647671980516785816814718723408900083328121889907417807846454292645212319142938289759795451626744048684081304583228376673266482735928519539474961464406628715987955744284889407268146851126064013627853778734424995352779807432893173653122876669446880075591328141970424493829985729799301596858797867475121269352498620314324954826546419016929461807753784358178598064673180781448092149845557048086018373167445618126838248351645033223139827089906958039461114623490896763539708590754207423823442824349048963844615988760101227415641465893319708973536747915835418554184704461066767020182877282548060789528510262620070769024104514266974294653918460645822686452835180858625602538718652950141611709571001359058679645688626790494646685446974328439152480425026141311362784237719311343779929269400089177599154270001555947840199874819469161386588777426473203937846764986672979690648936825321674169197641400201071037266910180598598572231353594404119890066023018666787451180970354431133409653799393824463985462630687883953671937512540197191621993555900737158749687544493088930312526736019301413292509824254529070477148073636041266630295232935777246916684379745474806268965123243175849215140836496976544875070885429351550257462054301349156302229837032041933178341738802807413368933394003228462323335027450989885529937551911401169333802779635106645550268254155833713507781285342530284828054686618239489274763270113623449197843061601160062766382465274061840643964668858179192528531347279012696151721665760070551663071158756369471743903148987113312511603063846080056467772906730077755972916010463163681706762971052258693542187504177197200793856697529046685507377927897477177944059647143943925275015888268394385372622652364969575373714841047004782842323016694361579366952867111133602910473610253944730554723795149970065457872618749956902428719329092472158419357186385334767614431130849054201624238012039152788618301348113089000148123546358217975841218205156447046062215510921099718538769253420002944095855469990197851602104750357327360457824018730266081340125646456865991196175790285429391704552818204227730151281250489379133484947941813702343382654784704802163602832507071107779373811587997877698680749305837198735494380371188461992358674033687749568507201690537548584129921348970339576550697661867471825680113628679574758233118351534504201807485397225471717395321191952387633454156129379232588232202064214575787576894875139815852022834319615765680547208679764644963840074355964068199955327777019991194936453922385630739944685055442760330381812481673139907860987032646188184888125274328430805951767704317044193092413101261083365495022244760643874826948652033177612943077802211930653060785643994709096534653181141153367356820095297519607596370558636855599951639288119513842956676239123426911324054732013773783790200661909081299561012613106895161831963812961764766240016248753946241549217679547741644600391829677799270093461196559467047824602795382006090683720287660083095806743211788870271817169289005329075581080018667001172226905115581790698961751141985153116947597022664369907005120463476732909685318646407918455850965903145020319006910496646355253366668767846124002415459080882177858795433320445569485818629387661371436128549443449574943804043255128551898029989495611559479194639299557382792182294532523092410240190590410066172454225010856243388698768240628536630583613041091514151191602280767146267589823680269548424691399533052399616283359056281069458974249638596731445450040849313061970520457088059441920299676834170319863834564731658770442006136599898172940521509427780741331202495352913974215212961028227925717987670003828983408580040429823398965328543491803063618890889280771154747385766762043262472570096673994267107295029916556925296949921596695964797819145770569533390921747492599459600385340453833377879363142958361128545042405797557869975925818026250029309509127619794756842038858808187459595941157204477551438952440278751881193308208057734498157169944796717414140622346071637215785113315972194463007582822870585726562120652197474355930765662300247753689210764216174679226955471065684154994049513659783423406362490692225100989517826259044909939743615530062239581504892554040289004289331582656658709439142401159551117010380401224235327210062049233585320191009760693835465884140381093355643502554253677005671270043457983468969942264222056453442363331218591107453942886974223215419991037001804087723504166394563991887100178242464474984108893967469722400881380580431064107621042640295517151185480245594950698289908695341829031525613640235672564853597414156697155926362837645851900490358456640263686309096229133456960501337453650084028442483752138295877289725137247694244762910824306238860983789834577107500694012309321696885826106968019866280385536609255489199333068242401389788268201796554777230194836481572619266293307012561997029700168713842608262513108730095578149503597950543860237474930285392141690217337599164874160591823708038896900049510705939432551318848679005213912139589231198593922215422443283328656307749289404785086425978580517321910280003168375865308924071383116904408063005409665196242425421798835079357540218138289656604552841651130343204160727967969551952329284475460469133356481316168632085871297855749013060256498264163577054851648839678869949024890270917895397718557248112003544151148904566945762781329137576445433748011488562940668966823343273224977331717207604493114586378109538046989227485114253281207490497281398360197570912846601873672435983595052616472550632031057115764004216994769898833494326033282576319477010289141810586147232937008833588899331342080826268808615994226621213263094224426316792131013037518061933263098525383144320362601634511472741954862325749082572588608288363783792237514344118582314822238893275445453130033489073352140483100427924327601840199696705808896595190188155115116326979938293226352399623213823395419640008646334814799878728980233670293097275807783722203513895919258051608987638685377365172837936560916227234455997644094475879299127160869807735610267588676964353046482011998402083751452154557256360183927928198333527742898016545494447914459447240650322628961863916789980776594798062201425304925337910374663050250492959450671649366472402957954311951604428505521535300162290182091960561958705190407947217460046878245650371571976218743225123869306584145345184440557155817736656952340369353426280722766379935363353699465274317287528616596649487969488975196611616286579796338103719683745082709098876378876991975566073061090874944980994243938005552251179900680811385273549366560045234429291250989363991952288220055813776638648999767024946102854239927702859342789976778906772249627062623602471559216108512101353616174277615510610455124129132933604992819185722744636402949654332658041486157980351817534974053005172216127094204542366063259937242998954398558854465920511020286015125108116110026945845698695420745013793529346783293482862540410074129468577295212872765532289225869116125343210100637232323578027716398638963351827735832562233422696835822665414996793123220939508774983779923381821465729512829374318489668523075438656469329479103526287313095670844648626471234057534536414466465822668412789100643076703852082941484906096518571366304562516686408858322382175547495829239314228253945480179410879311513690261802810751937607426283331625563457838120491429824257370462733794832283511343324497823673399947671009269720366091037687803763095966483107712908059041204435668445653838658892090043947039474214222184842033605247526004352674873776382126093196472245355988152727120850921949528266404780386644425999147254013319562682187409060353765592433587139410767004452468454480191739621913939077611507866333762416250374744594001339816757417890575148886912025560508460040248854383188908970970644850591301229411779894875252726422801141572975802334419846537033657082069525757809772282408724162041058624557611799562923093513739835829837498589366151898022579551611318286928238801837816096936563688817141286846442399976282365868576011473078665207918069214541274514997439446322610606071223046635409876910555573334586347410451069182705417849057087474566454320698043191636182298112646277765535238522282106838676669421202215300929253174809505308342599189690392981610814626484441749552673841638232625569780733648073757594417212536764589825704731221603472197016087809011633956213586134149433040165415619609839270795056906551522588380544868975075263559416026252032486167335898057688533776895598563766166162906782820009265572595858406662761785541033008471935903902271745841549823463072849743375582720827814671636037176145713411535161476233020800744495420443123576093755800524408449431013773166432486444583617236132695521467705295148479655579670360480231416891005849645246321706922053455889466692414920710331439120013004766415757436788299080327170119169884571449401274290304810336826865273086510290563234670606051049479337101441075711673555685613761354121819554331999187061172863045617120130485444888803538779242826751683507630256030814315966409054036553462260062761732338389785248023244862917130560012107643024280737393450234966237376514047454547599034321973492870227017741000813659234014879029034849932147852029053133968289063649709688289819132560336639211124633656607742644181758301714679674104501532933645649469679972874985345573843549113318202131966414159369094902479693489356715578914967807841439098627427633841948547841353613124489525756666958953921444992413796025178293920325137257043058521467736597616499807467676831271674892572557888985535708046386244917598005768247159860546724306306953270123258327463643149869864850036742181721902473518840613673334056660806609438389143934380701463424560021214767438332334756105308788399653732544929423568451801963444454966002051127733861868425045897297526688512308244666551224995040125656370482317575225965765124376688198512479487532978378852237573336833210801374834496787803976823167990802116958721314733339960079027109022629453454562121725179217623451862921311169225031034643675670048890657192131825548136344533785724128885455807349606705153360771449610689024059190575568219946430697596857505104393291039470299391659166660903537228221426801464310409887806197081049617265869411890225705556677577906901035242722718693841968407664072568516601595520484138229850301317759750885973667952505217907420318944503037598076610134459650827040631616996794866435265577262591180857693421184789239167443459816940518126898168306738835788066587676660095568685694274223983731965275026896377426788439871488556107951938493357431913140477868119423373850413606282143845916766838848464558609903910540106114831141554637309646420517567426921381540584479009270137880130336688560895925127048565742585481765024770956897101138709359273218998814587039781145890046436841237650967937543257181343249619970328898364930245077388050864076347030432429139299607837594369841286617879035085452233855179430849261324813449254928110335815940803356750220588960337632114052545862725102683265175547370898722878924767831769059956575786922833811794678778618602292446933849757041179257748537074638208565844959347271034446599622169566926013353633205698351930543543658821277520249387435494332318035726131249357261431804918124357705867008163537582581997442382429808250217188106574656967925112324318646918353054444423876221047991641833571450792385098191080722874566829111388638695276889512272568609746686805563000121134373234542231599291163107979882217191766813265729700780678135995199046527855817513396644928862588234400902573002129383526680055164451877895996894491708881444525226311795400387322826543967342934542773486192805452773820619541173969184123962980460577280055234345689807659067529511557698189614217762491538587785393290311549227423778586369816984874759057690640830731979062631471452350769478311838189567962320761013814528234229742501621289508555772215267331225377518287330225208980624097171097827395652586746527111909094461214529195836628498653924526342702473521111291724167096659709505731090391904100933458246588673470888173166982193227044226000072393625196328451292553853940077200016416359484468247325659615968329970726951135530674271251097643948443779122118581603850296126365491416638384265931778879288970245092391876841623771910288414339797900310565779068787322396977769222268097952312549613086613575093370128664929479967952364434602766764841112221325286990178445519531116273839329115604068418868066370637854784852863854504717233022581617483222151241041704317462091096919515141258381755397437454823642949702172155503008375839934535368768201597068084698619268173977754423601272417715003815739808619443698085239434305634954341730082312309725244336392840106120993246802916586370871927198075873317391523494971954501768962271857325066511756821726652828754659492331529932909323138281865689254674164668201269703022741588815054615940635166858286411072529930382943319019363407998957696221789608051818436115507322926601978850074005794444269587346157234283358637733407172681217504133153528857828944389300169748313989212097385728409865501357597845290331792823809847650593175012585124381675603535201773836907719757797664916585011114720193551493219114825754826586078985227070872026240120780046499315542555628045687961050072368049579377346106385046150413887862932694743046954643098852667849098000530893527907574554246701477197458765110483377540738444673452203605885612827568886099992116379703376754738080866988690517857768690766760702481999907996167739398373423629407426985960227793129565679651348094558784008766888629860177899302598858032761176958972410540698237219579341918225785365568810714835028983472870577843542203146494637387903464594513288668938918123937416127731053791953345396524047823249592512865254506300747759127402430258573601344238018817383035904295490954617132923966647956361529234200699246667998778186535176096476899785987759095990767108635168953691333582402364383096484236636416716458733547168749056647037218505704456439622468191438384752789342847946561170198515792634444270773034485652645453165850125083106585305981987521910126606511055669975010134764354060695890983265580581745990407923463624770252777835332292005034422267859521611285813870518798215961248429963178070050338602761674147810659156570343621807416002310852502259179512678404459014736917898355977791435915394212664911427433270356098858121320446101562848293559060936424341051695816238855542386155788944517937268568291495152381193716692987310127245939487711912283012804754173923003420414447769717776005449901949523512092932558316785895462899068269832923027395395454101964197443310706199554258319984107288334444855781457408018480690848745897091166796283629888455810996270197464580108857963341339227872403987317594139791906981722785635348482712160582917492141907253156077296300759892130216056334778160399803873805744389280475406786089551621345620807321133943561174614852828262045071535810231029942090742744027085304216260111843060332931100222182423433787083767861912167442962648304607067941263311043058164610455101353742157434716311122480402897467089931107047375609408417640052220094618970392312030463245830588619748920406428450041534250061662542169050315442475006637704424047937548848106140676768642902636593181798826901165065449133963171465017281281991374766127505414436447384838746477736344326247586241188222022830663442351434920412942106317634034003786671282478940904809815246364016072574536213825519938970287014306016545974978594295981750446736400677465088153649012333110369171737888695280371643777578899400742457283371002771488495843073512867834743947776232013924426473139784293886030721868406220314845194067801742364023211007181367427577713562180555655722853853770383316611796852171627950497072536973479417132535907603106015669690768884112298470794404461836593478960686657872933330075760313278315337193799874667840394087551458585082300995754924981915756124931013941205626400371692654578044291240608828343696514215517020512242121754905692616840943643984254117368641466819527052093754205088374641780738396431592530642534447175122756536091465941886299849850483928418068250949376280023470211996493574505987845073291762574192229642558549787319336032033405509020662495812437648838890927261706338975585904450813702962125035203452653790274592811883545265042160502732370388866847341094431701046984160693895914160170389809957873936047213812964941509127319535673303722592041177595979308111171321619050226031132138434416428134803213230471703582754528591228342092593854096763134160241888941610211278376430373206651546173401506096821661981238733031159482844722584171064176960846771327831540319816146077226883432041705933930959162194367744754947269300625715344443892449310820387144907511968765953794473130575096170873631929668416254663989332057293129535565298458397172747473181429457710002352996179348848428380561760661087978463144050324479392973775633311776580089332106771890612596260147212213055574394925272559761088311446747118143134371847435515411781074517977522428224848852910797276101058218582187495836150259385801009800440890456545130799652906135772211589894871260658395384502125930902840964464954996791987404667294391149321073449863401117966849402218229119403646451782636444733967440340255234926868106907970330144329292775086073047657795813836212575818433537949651694441357387904318773986847855702502165353881611309098514445665147410934437459720099818425726052369140953463721083768390493216413352917640645154789817566188585012374895029796952875676332185719749128495057772253495038147643618773780679273720883117857932226712591383517756742557534381144941648647958843525713738604448787347779782671773742755895639300086547414763705305586596533155195221180334348496997549342939244540036748193775552094419881141477911518781652784513956882036890541414196601519526050867082469809768532683473098636256094180237205264904782269679362308271588122585167513038321881317648028358635413838445609396402180854352900368103847703500994642978667627113866619100186869457752439743191716706359294328675016804743804387537025209686723109543209515624967072661871332198284758266406386635156803167900312382136006698448606548647777126186500895591238924502170942420450471817714432449299125380623696554039216134231926846788761340323730115370749018445716111931754244385005226374599463196628779649231370605246619302575379623828313966467795415810324715676855829833822540760562366629477204079371114775836071459095062879387569724286643122598102023126362444554015889997910728439770981869634309158111147780909356127336408532270132812649741582795933690141576971704651488237523851881849093927893884026070721155324880755391186057965402451097781074909831972502617498247632774550753804847800302176094533220750326495890895980039171781391218974937507603297410072931269249220696715338242530783271553610246047513325085933563245861209404429907149800592651418252699814904323754074710224307839380396558907254276973179188209570226396514305600313139432807993381192726247462964899741147385956659004259702612395286807154368284389564397652919435287668768327216499399054528450320974430977072952238227661789158580595964599242345216730282455821783378588577234905219528647159483237118814084034399632259672320242516324733081397244638351371116370027451914884094382564851679707624776836352781041642312930447297744551061479442233481052701396366226231485904285009232463641492249029782961056960296547792984798724060333001094181275995607606264649583474871267506062758524958821949026467524326781414179836597803317079290633237098096283754286602874414017569479877113605363931899940830386756827300086215859367288241793165224707917676404692450259854158780755136706407762464990722397717649992477755564425025556577220011639978711274985374139969806942538720353132518619662388321932992920205593721152265307054616535043454446978751773730969894388880996483717210330620720679312144210448751451689012871524201483478200142971515075368179868844051226888575034582234574666423597404340845612652587015431159031494046501865992751987876585902556392236581301957951766537276654950099590328314542635859757534342205014816603433493848739398082133454256008793191985993921678159741014761955228812864717752044803468767982864004264309256125304190060053753958893504580244806269521645885665837781765885720055670374172336633841785762345489896684652035667474372983340764837046193643081830379387575163198895223537488484934791151271445818571942683946202091897564002091759935304657432213700406802769729462427695442512134376659957539834562928774843556086976095399042344928692405053684689535787577227434832138269764243932647335691351508227510852664948520009445878604813727540449597324008847203794934086546962714196336895535187694570115866788401022873183424859849233703736882950294195479534311107310779594660712756878185960596473469243607297685262050930684550630219545361707315403370905922765807512279469001243302510140438795422570383729781241747723424156179501897627223147255946484279256824408394038223753763328698125630805333372214150606539499974604935229249491779206895977342848492455604628827384753163741893299099887664249553987525787838621433227859931332249525268175900904398263265327347444871207863775826793811009549291013419064042209041549746852724770363682836201773408980644401305958881891835306713603183158381532376190697454091387037651045649729673764565039165091534496480283802288703983212066788770541231434218841730922950689013239989118078769402692143682266525416646791488009304972016436999528456400608700794923981719451727495920142068841867711880553062106994261807520264927841794132209787274555261236102460591380104765831563796222691588643826670411843355060781282101550109826678484652593512855421226970772206591246735933141104421608067604589052165586552373459201402258853628801075424523609855248664361993207755556057734205976239455480453069678192022240684803345340159134248819080631699373165090540757287109683417690764038868866240150754760345703470878264970226352688858446584424379457362673791208376687168960323981828402766912001172170948285675135106842132041595886701593018286927541349905715060801419672514751837341776128952893568342635407095348289107059063389912954461641087230271931913258782323854895239679969985141772819174431513227252630043598046030078847268667797137822802634532981613273405059542497715256720346750280269257799920858023761475590727252241959975796425601783695404897800433319936039246084365067208592369689028299338919189610455434084482466982262205902887311163909334968540428340302289220219304767044846210742528547738885963968691642261116123340727473304926448095218581673284949681762502693848025740525764003965612994502867160226868756209619280571026756031071021045870593322967563128519504893909323375158182769107606917526433072497274441339618309152253986241063154766217834186328723400744294881682881104847130501719229362094264892807205354000559631172835271902080645070821055117068620009968761924893375411436844339031974025497370769116748402784307246604774400716218454616086439082416681492524552441224578562700634686714813717176735372737008269369030092546480775505807791381943198969734242850784477251905243807484826482036870700846002789679131150690094582002618085677513878130332929338854845834650450754064665836785914662709999000039124424723174420089181895603115017244279271025300136365657159408669004353766261791482703254927672290463678051258410484934619409206687404725978426553048469637648363808717907233320870019688012208946360194816335643216371245669873128794600510407713126806808343730039839974860272625895781239784157237560651165223419728495826500911545557306956364003474108779392634348842792258250658138270964637357181680481985715129650581924598219920948296900696298429495620702152518000715429732205948449400442481750987752196048425853485361810646245944147752264933166599936049375272741914961501579573743621451666992902763466614509838814420111200816596754753988455291921956468242478222612806218406588302332018819809535750678444631721441661427733633188430820977528891933328432965241043700488703880699230766960159932038231673831863916135648620871105762434955804252393859338913486899199146000276505894205562534416287528875777060338553000367541404763235163282781530548099047836811332451695171705291700982801050516086593665370223217903526506825486832548007580868830818138062879732699345045973383913184795648668922624621233928367583458517589293636463851773602765186600833822498250960200173773602173528802839932042966029427427986397559350690227837559020019380006045410122303902334430388789631218044122403983147809669091520113827183917756400331490985502849742468165031402903700903663419083541011948731051290952059695297741849517865508756850805056276799091847364946646455819408454006584377503738338584258952779192627609581497560733177903452264840697093790776724611167019377691349979908812484031181997173962099984534518798498785054222083617547132770371519088897497018377799777060977562007694884197707268875196556523662052294631782621912922593338709987884431088816411500671915398175969801558305095284768693701768343347008677094307272053917120952099809417534869925561185028460584725519058007341664515826903377163779374914820050024502287492425423932459961440556546332478006324062834125282300665345985702423284520249757905016045765518724937406358623569126060452282274814140183740402732358711444895656019063146614949609380853449858985820137725711111936487737896346614339715322664688622228431913633655430031603129939444918096920864057402657498403172979079818802800265015259242095817262409756943912663093234224062456539652077840016927269862612297806649105228735128722868736467314935154643098911965998784107422340316854710770331557303566637475596533959518673408088016299812230611465296979315944793360953346829832605824612364455959038145057585296831787763744585306174644703717972705532466465034188479789362845916677830126624050715439754587150174543173197353278868173507442470248570738934473416566746154611699017709018754521369359529300017599703335145781219223736722538206113223045192583000773569749723721295852979429579855982912466544787674484374924300437680890616221623211565494378986222709601894693539371475777359263499127802308204301250437711174486965801645210494400930071556412516731760729350218938460676194611835406295126388062054089050261638195929954930974742854968109542092628297922340118062077006904745541531950907744081239365621531132356303588081194579736603820652605036793442410520165463174294986242988909573474078578696252721231053926316016503942218130752833762128955902127664199227342144965586835994355683158736265659395897867575592524230183390790309593213351409473212665716287596139287345185192898986789284763129000628124089369824681859838811647890573333419035243551568487184975164542826457738826204159813486928574706559729822646252930479401019367569003275761840425800034075888170297676238869279225088675241040281888440049069953028212728322531936583524331570705659361693433392384375935950872416134459902177782382302632408044842222373925096873822716315405504507080367366417228973059501376704815094963140251564400010305024540064886418681535853679215641284860866942016163211845766066074543547704414610983503263244792218039332364651299574478345295353375986946045546894459085563118973058697382138867969454257245456138542960755581773241693496294854919181576951386397820957100731080150967642150515656474690136460146100645622855148018816728465128956330092920269450648647701797838365132514067005246561165790491683640027563402795290117915064912511018950247689673095727367800294553194915513209504562340248460420084194986951780592268099927931086466338064139528423604122609360966932755645803208327713763933476719681950933887847740097731030726186834195338240251427492618751577913193491555774612785939926869392228005553731030829568231774596819319179765514674883262664334015862052157051748354681547877162713466362370793589222515103587325961829651688110926767525943880235868204478530845168848339639993516477351046286752257857972007411915008465810755103778227508967542635932197867105078536539154253212517612197300935703733262601056847432165301822228595852184180776731577449627936213429877626528116480930472259411251294435190464520552470706740895943959697434670463284914073049776431999556392187447547707531153413418843760233071419426463122917037272583338272382282948033333914397320662408639392389991299529251978382435485494630853342198450629143293469261242034131420145955122406418822661180926241672257849696485705592512068772663988643991286641028097748534199468070814196041981234642591342619812821339044810316115934856008209875070875472528047686361239075215507452765213779840959060524877788227343067886944638780744129285885991489160586799941610468570078419718813642763435263100823654599048425719325707958716368864836480202863122753948103797392534427800256786189848248369208332796926184289780052760610873438306554306947902856576906494312570742358792816410838612868845921746682899096386947199372006277402940657239106598739264306667435418986735695878034069688052157769179368370418660117456549992237986727133560320731887415389773401103720719605804409343057282844023659144425456239353046413314732966718629267845648243967704729581780055303549577642482584485018354371604096616422598043176294392202752464704598841265404864192478229494341898627224052439153894703182689854029964203413483030505367006898467303395679741963705036958765082624256044755590807765455543893562235917822527122791344599125581080006231980077079544812841185240624323958512720599028480696952895651230452790517478509138549315193022922581903171694402742746003497244877183293136423519894214580830859150337047944151029487259621795794602135461794577344273960001941106162373158130625896886462863755544940190710043886412378881868173205375230071712829815947457614583160358617597003752793755869631614669822711722867987339748939651878838358375925015726339205175878929029461886154491139683301703285578961758009093126991896823793052910328143837977652900907852099509247189623895746963327137255298707933624333652364233208637106832250749191292255389551883457951631399589201027214919157968754777959493226710741792725921302566224023555213241123759557542294056339554849930945773539111909003296936857813689765726718047786017333831396971249431961547062541700815447043160398611498105258291071243265994725020167145170200336117024644229194739109810713978131935604448030705627413301453565709948860180351039837824881040921957586908861821081307985930065063296777697599469414098577658699588752169603307366742222996999983901527073018983644762672546781727797024336784880600967501942859853091051209984236962960170084445888978399923374792659637447840705167249689083595813798509626099726878431483802678343798288644959549177493073660389127739247214758470977644945113851948140796236649976386347519625372202029872762423231497840726054344479064292896253716155286445094426543132437481399889201427777901404222416888967884011892924726058952167316454420034277982329570722049625010127282941620782069109747250513026053642066180444782307044897897277412359009310787954247070467412144100855655391737068552737974150433453614878542880266969413757121186114845170768289104229904904642234821134021709665776448421962312642229054470417015244652194341155190576311767461848312488186191299708030050768137437789756353584931796137484940368081179615006582409243462168009311060473061638690753149778763156964964900676182498129580413617745710036696868620800844547446372448906595816948407285130862903158865310842459150628741152161399325758586629678145317599914545868631675421853445532226092150657340301942379561803448215703727768444186503390999127955732625354002551793014546152585803175715863981899202057472457971006176786377695395535482641076216444925338206070646866029003883906901227636713092064393936566195412043802498030538889897929771590577145965875283975970462307709956362372631155788970277009225483064146921305283711046710044141347114169380163909579025149872171855519710318023532511712838654816900998757251019880795516983671707349603879085421122685459329998618907488741867357885868525745698783536599491626990609410257420301117425688245786195115538219239601386409766195467105451715640092184819437535766357580977719674683610827581381806894663717655106189317901251091026084527402778489194652591905814796066755763813814598071178488101885584155288253985035165951053380833699166026187393552681821314435144362910898834252417392319095534121474406205860421188846651780777806763215778689302648798661601156878503287933921471669658819787562584146195265492313668731138918742177461592622405290171030300642967854518711163796754395575669436555509509106729542567891633964929266310093613224437732109953431966781763110625086287081332297700847150387413079519945176858622730331713568609774380531686247172433797600310398903223279718224166304697063352090581981840557548171605619652975618378405198605671392634393549541172783191398405884047484855638395774558226251578540355872720182249312331210396819797963576065587297496750205714792926601997022918752969817610556721526553647475475094339704313040225610343932979493659780226622194792545843482017017841238152828062819983310041906546530012325535365496797685960211435388556064565157619938701035288458556075303238627725001820328983380989496500753104617679879830529868270011414484139358064940440511955699439224218994797898528775806187896818805526604349223959641049691739002830956525273661266960885194887749205172507738900459356227025287492488852605194957992111790702639076997026826678783750138130738863141760932876400484744495273418313091120069621453554798582308385440017161138092916175114672583744052852277791549699937792031589153915075847933851794024992706408842258165050152242634840995587419150320898874047444940947088236702490311488219287577713351678560047848992544988732727238002617626542385406299666752933737692246332703935209869078186470484715835108738465263053204975526057938993069685071714324209690918662563657995799835622653373860998534060978264744052354086571496663522951324718964588566730525434503812600323186703869982225055114052122465774127688628978586344113362619433797682092900573382664671035225990990592147989920637358488773252010395712027148781412532095654610037328635698022455709421576942652813745131424255996796817949660421128597644880367212387433392662123178228203911761843346322461816667845995207423453295042017680838817252429433744931614860154110322696764272882179049196816072066061270981322177098854620783215570744445419819023651052765411083091011510192307775693678950516767461528989869405790199733627246443047005426511744449763240386441596868507625165755585273114768736196178220966364437553115221140433266383435930726254381047722993106052941127445243744583085368016798060604385995226409965619465572297617632734515379096118643728332781946152266848031753094575886961505932804507634279667808210959950461242931262991308214913049704709574138117884203071435548625655336229419375324548447283367432199100630687450113368198325757526649854925590614599227206542829076486531262852573719716845608546757518924881821088133462003232558952766755673012130951447091057962653530992400711193793416034711619115963806119042837973283061046122106481015598334237912490259826065973369530187959361919956807016713637763315066571326422125942284485634668980330771988516537726533616447955004095347373696900848939036418606776530545992899962398263585220938199645657742072042457224470024376626581575841659375820095090944697127847668461475099799415565273404071548885048568266578903341520653805526427934300260448726257387242975852821692027264217431577263932050262937109360433177743886755905869233909056842637523916395581085208793634735512291974418069016446901500471321443256518809732070478115967448227985787658014976263812503883923690544042802917015457502623712576852167174725963075852870185658889167792059813371908948995389207035985521474772573188180101289159165610159525246428116577655349156608339920125949969131011798289161984204800785560031087907754071569344814147850123694953949349318577727401093522347722239203285033821957857838720437649344309123670503247554931082555282509135308591555396174684119933769598121857891357771870512113693915614198201306470872342834219149405782067566202317957242472111192509682714978942857063413970958870188607627284527993649139054389353532231940352370822221467484780425104377681513608693598130361012508627277969646762982489415130512485620584007171578829080494528970634082322912900406065448702211193247690435718955997593515374187649627223744809491251834775345245624259295135616242527951669925175068504517892429440557754453866741246578250384004753661617457041986508940893669807949093533166124894385009823032479065338233148190295755313280581204473949598543931984206083933316723331924299772765463019569756372677140900383219494238810709626555560193159794799305706444693841871797003054384568303450668155779460369061695504735322220483558478379910457942406579853112105495491759552147743761539015679334554630727682930120499649075391163772501674133434516855479010783561880152941720958104269934770226557076028048425875856660826623927803021518890565264311032092290204000457170177593117212978260616893146604546107259102100965667362392905017265487215713156652624572474119064776716292876873586786797071193113368234904248836297637220238547624844991985369226633536758090981497919009417254222496787305640446064938693915475619781654474594580212384840081798330932360430305706589270752987389868344520819919993644294267389968862610728595122674406881571748494711800198872647273013930039792006133041777810946872515013988397764871461282812234477912087661964558870970507282770410772633639927510398891891625970045496790059299460766601480875764417188283795735091030541408296723811530175164940594410896907565794887447527981653565350802144920264151644276786222705840711605958932333814218236350610878272397436111981858307536360844984257486833834316629080430378600241716549398542705753580726469645206581492917418143517779596118294443584294817062791535997899711068495454483164143635320728841751225620747928348740415927724677241884888839465112266826576800432234168511390650411309480928865210495176773767579227866454622739481224984954581952660616071169140674155356686645242291630354750723710352841849158189506995869041882595506497815947174855360242689316879160447716989664351368758725222682452983319554825616826248520986781934876098243353458834645570089390242705834421174837290414702440049613658037832027571105226498042175877603375317232770620780970739204362982353878529590123670783723643558183494470594935125470854448555180774554774178060284079126070388128456826634178755533681285497719989303884703409529292016513928339075244541888663782228349625570020908043005005983252272647371072049945277816376039619163533584248002287848663983817757395986361088352342033633666290738067438767473572202002128115231408350625851996645513260835486510507293324224329430032826904416873928031997491321475298935805160662839981790049613618347580503972870325645702511504533204828801883607058759900823788559138217036238793898323910883380960300611068483610773694568806878678113843116738467353829523740729652146851441377753596689767660629142618617499761182921213154764956230069834884922351857021129017113140481266495842316458034690327975274160209304632804580597697074663826481735693559953453430132209376447103185674788006257714800911916300293332983526974113062878524994151613856034866242245941052424887622231267220211838014007984886880429926375778595150402975827713078814829812990198315080920523825540010134641263127950315342116849030182142769969425520328805067092332314747365594976833936589639788136854701089520527816688970831808812304769898981514397259035426674805986970330381777388948863698617173313384362067309544446483560678597033224407933919646037792476381758897080924314215847456079214960593869627297486731171636270145033425888071912698710304262019599013532312059452232457130935956028255150407642959722478993998126902528159616928162063122931388620062717795910890331897657757488269130798553849681308338551717206328889239323360552555410123904616274640033904334078649455019440612054542295402701199947112723034554416389100631113382040500375471306335637004463867417502582831014055992440432851952483952218723215262657662831803437117516611253092674793126632418140348213109282610412227497743520599865138570588636647620616211571524200039631183137093793309349879554125707500335386291079806530348701793846364174212975047550668495762965349068082425855003685375077923172796287856461582523242411831108643147084219530839980141577451487410289443036294443598408524349861095324956258325175221224345717791791375885507069637057085930194619691531558657255524206990150454806867456085972903563793316955827387274755814816998028614250853256914713761114045058933550598109003251041437006210741979153661653399202875301613785445111182832739966982002630610123335795094064854369080124864919061312664083126474900111847491620306999672756161359718338047957978165179752395206582100295700789479468242137334523888675803828890122434872194748915715114410033956118626012099846157087599849483991408969377083422993158786101954929717027739193713292284876022700616384861164857177804279844611994895409309078645226577061147912804400979375736932049427153860096507538438862988169446076666739767751247744465029076783785562459674556132253365051915354271985109479200600132718535817477842682700722340858377880006041585250941221808975742010692525453415836574426595184933064276614534141441682651044801026828654981399327783388780322686255151657086112553490662987456977540439766410496574893929533197968483389716296265462287703457440206231628093165966400505751431074556772376171353861287201450685295424535029715646004582342913986765987505186669710294308254584057711469632216659367837363261959432714275435834448102623923875750270951976294758398795835703557999095823080676654556064660782671747688906758581068664968392169857280279147234900355046276609420062678800196326105207251868995353970456320278635614658934497400633814649318879074648597966864467000613158217292396492739104431091150670115481147625611327329429500296288278937448303777783462921733256034218113102988634875354453942397175370069181983518988602592008663585558131391962815926659087126718188100626497914969102340710435002673496461431563168783386624956772853405458448684330237559460899386589632080379793663863451077898948423801502119515073685417271815963348800597671921667749230029660156586127369177780536224860688404929946353440615441079612230987911230711498373229733869529432676337477432247479114086422181388828731524479897528702135323999142277504464828325402144446769217599745834451122594394071132646159304148893837428583956916101580007287522520119002107618127290934962716357677584510511088064218323837541274060347300553862058910029710561275161200506872218846639044907135234711641584011594201946568332678381604692852808029848739650951159544573249516403535119701242431470384600085856169514610495020129044658543410009409300460383425172468560823809758680314260279611638308127248174100218519271500039861669283994251012868930277713892833895436927838110149072244406577874566339822562098837781223369733116291099195881409815818688119291558415895398949575726527925023405584074882861633110632827387794669559140360168021609407921368376528598094323820145830427237590898972239108458898304410848424924324263178163116396969778289224417413251994146956368780485338933609868157004945950735856923949420542656822396973296268528802573751281848217876236978726821704567357532138621543119199746168199619347689656935629986197686058475238381978899593845728869557643599235227809427041542499839375333855682057976257693911406769244092613638295106943812801144154472455108226820912037487612218483964163934245037432265391066505576491467358793646006253043418036832646681730052581538800584722715420994200234969804565850343409406013793540670269384716059710955711496676606988689855179564847605688363551816647884860078582984816475058262520750642677436433538434493700005162851977314729758905372411286630713651409288454316810392475310816142079273538660615107073798630477591588625279141858981964841789722153327636728543923591563683386351129407163441337523401773956794379413576173106046747111000949374700898675093815982555315887867056855050915452205425052527026308167107854889922849545581034298019428689198992493724801215362817714377601981829827937165211856344164296372007397028657337693454647921048261422824226869222700163064722928028339281180685424427182739256083270535536785761659432902935596860204703077869910021876016045847552766157073251047846412116002875555115263594273717435803600763597109089227618997289932488924506472797418720427643544361335444453403908791835757229693172286764723088276429602903226143927370436960602638159209816878085651354301390220413775559442849126572913225926598666479365380946614503013116647937144431245610664310654301999754275997226392808055249977330185769041271362140206183657362807080815072797933263636102102392280764047911361676654646709470713618372803186864770590552660857462498958572433232516899930958589932731111468228510904420589085915175650501685605934962154423902923768079549016918317117338355588441371198714079199846710717062248153958464084918465782683059812186863302820247053566450109222264893965506215020807057948166911937784898914976649881014470126247208566485917229343381720091078115826790288664315835796244148674877386983705228896471565512383515301679231911189763001432554034467526010489086631839568108977532330280323204935845617923398808380259899009632480568999001115443796673927616873097946201474908824085290426773017314487654298860611703176116526429752028382189148903132209099225061690502046317087712207522739470474407659611065274198472511932147531169546038212208389403342369341388762943237874829856316555238025576426198306377369573308072124343176268881118287075424416057023126801301189318612395398063326617962757032744033932816397758750406517006199005952272301955092040698772681769741913768959105560910312642182406301194909438584867089433529228422343140262035145340536981441641108222918031363655630916595442007351358688160035455923091833641020279619453691272004502305640572530171655059053290695063679098056940158195347411558224540680954673538622391089515364983109082753802327568818732845772683092368052787163109810905997986929448195629016695272897144236617628648862539442444680693699759265344622436197497662768183455994749821235196121956618891114462189063667629319934837109317485057384543602811388480896915440025847524117355922457132012629045815151569473160477317525690939739516313103427116826349316707928081730337217333460983402011606468167467507410896082713648905373875632357819669041362715083515875830632163969397551026388370160712690457324272437648695357166188998548047486660930658783788975555897801634335321991296869379311483768603195092208426560794699803802320550022477042344612289473263322616531485350828900436393441301094458495422772966169824993524674550740506057667451743897443981327317648762418794177612118282738280166668131788853396556059989310239696242632051570229495397186804567770224618894605440871221795484450492965828504218761331401328713473839761153250744825282653438869101779861480760132884454393253086001706016491645361404869327854190136993505481484452434450924721067974760327662677661991527216613088100785285349183203284813418370164186990341719238567505933931578455498785676363576513111366131076488187243067029126923747163877267843218110126018070432337258764626425748994572508234940118418967219519550675044120745621086149541696711809522247103012194806744329385552452299270303168406058749515718121993354128976284585036101952743868766690265810761551254904944083618903043823033459924526675622200671799734883683050663550244335047120755026367975236959070579112194938601690531468444490905767773854346429000955394665017217337020655382895765320821160580810405731297337598635693279609148206168300675210330652849350278689058573104909791273415109923492944343602552160043422320811613233230923054022887951863990285952910899875035709436076622957359876121635779820376399239297006323216599149921939794765972016930589456425688557063413538094033702076950232112319241674104401115063451373536948584172706656533986891144058830583127642701726936502880388910659943302280479098791114267106196697252942819701065987758120158495073100759595103329801770210351451246433118827932619561639731047343590422656359835383142325529405101759423588394644082647153288509737146037480825374628082888719806390776520618307436657118661854128934953516208797558141877673695214007945560500779481564603202001508266435380675519695711565069605692383930017976733224882239897452969910066493585306610104769342504953403850734644820758703045745562002322734909280090031718466895387373943635599194996320944466740040920808627060331833808701141999423485133017078778828947655349407696727092008078413021898974898264963325366371290397070614273707059314376245631882829230507067757228388499793528456402811879360465184365379138440882700964474942747657228133538316683271226321540129659796770925476075614167683744373542979289515267961015245937872174842753930679570342219856274214331582774774433655033716111879607398317991404590309975721978793938151073295698705972427047434103931766257286254826684496607706656602990633313263356156293842637139036432399400707840080767354329188488619311821071075459363936921411840473992652155828438849574065427981007690698473382822037840444487120817752503635354574143011457072249713138230084028481324519862189366343112594695660540676041328344917057862306617170106492353617590079127762586373332923173510728773810874029498575846142971625324148083193943030134207593320117818250377806494876356494204293823336057372757220783987681301474154326340095561220130349880353151811463084555856195530033661323131968342049202221445080479454001908552114420480714950898939288751805328358999972681823526763772680907861977116217088038637703138861275301154795791873715214226872389898593211158734835589245729058186953569533351689410020602051945960423640010038092834292719549432941749720303863362042274289929440367632748210386508861564801952877270272652441283296454000160351745528977717548405254956997005845502525711220783741091112384073215286944795039970007375612573759443530381045489583008316454988336423465814358862008256174187057346520973319922957084455188835595239892340290767065036784036369357220030642655865299183880459770048272378085958421902517417623652994507721799087901457536824488104910133918823282202194538494417124775733244196302549220905252966204641485816219826140889423173716533989814445826077091362892480979659190802495847242763638563611579411375745952606431628800799228281466764677844542000749058042827914707189402945311468779917459451939446869033428310928090636225330590099745407837580932270527229245993537447899253944225247030286258381813419061203489399067251332108242196195791974188341401370871062766549053057841293375841509251535215056142406224651323143107296645032967026956469173640501065463757707917318192169807309287847464018405388156213764637576263636040661087855703378916214527192648748638406631259586004987863658037795003822561136004422043501339307031164239906096539677451051754676986245355054321020357301123705282732219598154875521892052959074159467263625490619135369817101500157408966348163290156257879079954749220342179230898811492806291390543293802249686801672191292609097061364514902381587938270391492258700088359109994218214377263413362241424262245962938251707785221623570951429109557784091229807270597300067367200485010732262486667377550143843734094319121615332412469592241392313213061380857605281849040910824619923511231284387700995406936101348551623254715102664427601650141256593519431401544766023340028273119130719663113296868330933229650710287690461277532873836871211295177689715539982919829546444839229621618518780043366003148195776459326787279321399243182850546026430834201165940732855806257974640499095518368846770423223306511669463923327087444824384601679398138899950906688473077770188641934575398079743171839476536335052636255223388897527375900506224564450408206515662600061036540267862782833105958059815960398610294642699927191390950889467731151905626001878302658027761544199054753350458777601515402810429093871107345488184963153732736195936994069904400110354792473926363677021816191874921605578211026579506328892974223425365207683637281420371820305061260581119034078639664016115820238755742635223295743070705587533983350162740736195933785973456102641235670261889316159674168807360416260752235951501045190519291252565915618520235949106016191346719352828379173331605226699752644141333074191499190640830717607812923779574681418223776339721552864107263396792837515191141193446044878228800569827600852398603832279331833425464063820589824248796537267302249013488405499630973166161833142886157176079347437295286648653322123039635730605211262327502944396326182653908817353285273438698503908264747348855097997715850271959521037941157541473425881733161024291927443786343187083584463505935583668344180189010822430749050448882144533594885056364230655162214023864103920693488541785528431524344481602596956705994644418165065829884481091340396913310980493730359477618689483297066104291654313976276725521563642829451173600228367977132853673224897858926825552171902129547113265532189660959994331994986367988313920475448478677529939813760579087053772996149571802083502629275385183300696542754091079825753945564817884046387356799184543502670241195577826315144075298621231109563217444083567820266388295811987051096323915900852293651414647737016014652177624913616232809294411383158067738603129304380520337605746301349235628974641045302373816500497338853591788248460991520364193206997592360948678785929060750094327784247078686615226552171015218409512821982977333446397015915957855178306850529564445907750177034763932822881166367424660833260121299702856158851705074954723025855545815336295601099419636478540776602160828794684600333731163727701903278348123317149399416058159757966754647260143873121097869007674543199897230905989312552885837110384505541294240553774041369355469933868399623070825048846713819101581124589696854548923264720749517230149598375550563682276856545008527307396673137387083682935047075721400637207696133720699392293126909413362955455721702300183914077206270617907048176384922347211520144943699297822972318160224296310039378008160425432773846705012785270339026481882505993988587468933820733749905997839915685821472119659662147779747476141428803548094956316332319231240837255670075993732017154543169076917374480942235637883750294415926884851159481660923080873422350631608058125891955850425749516607643329111908387314203242918870407370147465553595433610748676712864373139548818516213016702628829126629637817271787598799489387614578069524198817997111072090898606466045473306445842613740141320148295595629501574795857127473425048724722951870524499447949245509699038832381603792875200851562601972947251493635864594019253024145761699734018304726088630153025935954479862537431964611692378258233111810105962753629119620714973112427716088165001606021127626489242467507164619005287966808408703562667672627623181478602503899228338468395490965635277692806848427801133886744952270228096631015505380916271462379917173845650806957077489395458836159885655222279409832161134742394045287920040924668310622890139377175011363705429803899460210510623119630179478636728946426718273890274378281491893610754104159618726995455939916513183515279353197826652715741918802715273741137433774013089721630926069028038311530417035509288744764671273013691862351053461382335000702550843350659096232501564782592896395026498948096572847707614898890183615247943002892935659425274986245936505150785834344769096479939863620714040062338265685285267280693421503240247239747976855546378026854463284897494649445955353182499790485597190268085484359677104497135998690610982946815530994467185908258125352222990123667458287566668568686046885342721139489201500998584037538631467106334079483843637901825604780910896072677275772370378251420939021829869151133538774961409719264311605231754449952749534669464282031318759216980829230303091438626315607162910830945075629697109890309202423121480881755729815798820018933048093117695769650469703957702925801449199658526105655206227082830270945396283623837913997746697268537840855409908419010417455523359697913892998105831865618484404590491643460175424265820600272178409551367779136501701089498882417022164191997510209252369348294909124597036145293686794451642224216600449871069136409176726446082574294494871249207673840967409808548761177082717997680851565135089944781349057918608655926128149402192834873491223757474436425917370705325288752278760574500265010585837976969724756263140465365892957140187025677425264367576656331547607453263160558547024962926411130002177076817674410780364648184019696327326748005060817200358288526320978767561921304627012649836441775625795615278195423704489663908995385759015846584616153697844481291148863937221139652375723606063493364104126519833931253505007629671807211410632603340135199749394631082670690291723914354974427175857135883797460439947085352119655905330801119291671324930636551728867679364951357369812293563155598450123552628698138028608667209444163649950429543248200356414188968027688230296770200952266990415284548057327843677628986889342345611739846158893542136164767319922732739525868769284560837085905382105409293691843847022877512095379631606833377758328207570720747663674253161590335028865598924066056633408395764391278200971386980472481598219618168300965790824912823068791856257386339263885120793750109553279421674757195484158314641760848677040421724441028869134309586630095559948035504933074495473775655428581823128375073281454962419600490959505200704806840597415290679868668588976495828293965243280578499519046022028836497705486417530703043121708405366017907539520573403468541036800554055800377457416001015739140972121728808856139838899133927759952775582230233058448285560216461175233806980388037208660016167326497159308946811659823271345888480964381163075570212088608287249306613875933040677999953511657489389043531756809192349463882767221809876162392414171243915646958680864159870540127056832198332723484236754486819697065858463426404261685880191104330876578690747490537126353631852992782869835458819002446899038104871859633495408766654981136279289589369144798694759867394536905722242837383391829978342541356963299247828606806717589123929243259966316230958420761793120092935763580051378555310523053054251015463390108682037777935680790250182285147096868006589528140970363419445653153306799029157074082993639143962075041317991408419797221665558088080678068634878956698076081734347932694710195580472334692262151590591227207946236007646500063562640222087665494557486402417626451910198603789914190257268373982681274016209215696659867168875750725789115723704866579214648019299947116098048808218366601517342480947637442426749582008010280156286578418032392572495126211093776457739724990242984273817034436272799418294292647051073350026892913161715339924458660261295972202197666628172814566349085813326757725835995005587650685940328386903210182282766139204624996360288278215110707366933486272372954693494019942131136593440827421831284985696869368712062451106827305091319953362928702545239358596510038224815973846112960809111674044106508743496021318632152039102388737756626535340971296917239250325902872644494761774649683866076641486609540948175546550878749617420638623047930502343206241267233902173177494431062042756121824177559493974586238571033897741730032350013454972170027028664752562592863921906338803517629657506315314476967684270719419588290119748131260804532087847769881746865360550096876257698064980052914046464251597137446105179541499470740379140601522461011098513096476922016560547704202624738385277534499657649019977895384267538589653196350346602025455119792929344440045641055709425178773478758958935310889083029849007881100080162522135263462407457611563815875720835654609223322767165659425492855266219866948892926584388429795283927903453209525504568265681574684784833016308341678903197835551158311646690725165058222525097184642403335290713366069220756576056878742138406624982778822158334643230802376662356783603654814321359995067287301458467883790788748853341100271692853677149073135530028936689917133503443419955492824130636436261262504350904934735183797920635615588658133993349246302860036435515438636184068555272104873082742916670976858357377284078727674175043213949069886677519682244569637988901675634028461023296959051101749961293882637415636600718767684363261346537932880204801081395902306640363760868463871463658081264516766801370176945844729363837062153762958391678000916196231255979146080318420838936042844661173708080842370500612273104497870992550005695164013190572272010997612687218382675170530076876979909485329003140252484580002123164915894863397243514306735206480750487387563798488498597385613513469526835218050350213242495418807488367563361947802891551868348683009380544725294539537952824112593385891077460128784925834386820246553453737500329820846152375428737706816004900230858971720882360490531417391172064872067083038420992320889637693323321729947496247455872479323966824561650432773850956683624778714604658825627691709234019430016048078830874895667075783586818967568553458314722216564356825357819592833599960328187882172995022928236617863771616472094631538935241086570100086543534232139810366797885958822005269777239922041498643733800484604163995580208900402678765976831638651841371360465116652496483822707537049735573690442016459589910704025552302113606975234522191235148551728708110585959590937642869789797112670257396385043994007369447464244706855662003802599638606299301682140788312501104362361992824954257276871619197575308423582680743007785083003558866301930341788240721288934667855787565915630431033853278865593523784527636250039309695569361541033045772500775868222743304917771356796107786476630673236273794220105500782729735182813629723722464609930247950528536141893497187209295292898769683877431349678196921121629349378444748521630183006354783552090137908733977117762759398157177851805917493541170270437505865669514399915718085792203683760397023950680255933237958080568271228633624763993170164313330242955245516990920707233105171465794521550061350156229837440781003786258560630256339631559261057932811440937227048268672201036524926511291133598815862580333036951510161733098514076126449821068365883639303996214706901655792155994236612041369156971385879684866066840727075701604284287229133026724243981870303629080223895049935666719240778053599651326693322072344791498371520305403210152453049692778472413036400892407950562654458754100895947305298588101478563504466965696550950164959538637793468192326892225953283775346664924594313764460613344348500976410074294039029851361491555273004168186106999993536768730498427777763850596431128042927218436058486293298215371175180714158416901822880885292473284014221420180170373817951849103875509261251945331482292593343344519446346136377521970609012080829216514951899196234989143027252403459052553249804194588402945848765866825433196828820496279905192177777211527900733514132754254106048127058864666889377854421440450303306040743239167295598514782137391682686901586827074327274149249526599126512228139227384624540180307931832241685268566872620746679028069264977335393002178486238751834770953183572009673181527689256778073880401514161661890842664679639238995208627754513496033541875365432562030204170416132310193032302241597836546509598184635356860813606065417418784981736005451687867163530807566041282490824929517384404906443011315650088181643776095663077075895855689673280146312547136766198562649274405408938687092266337541191811878146680418554977443873402158708413456910867756846940008073213139094413810347869798380570746855542087516090404689390247012672998939495830113720844702610547473399581900206785733014093712129488471065569800846685020039626862897876433572210809379874372621708077323944521400193065539418402522404671748177489202390725729795717434921348864729022809702761679358960202049373702148961701973034291617656327367283374155975189706419092519605350600515048169213228315258356920148354943859981275578320400493951905702534880381670929149251467131136500768165915884237367971602161249422474549067110384422919645924897085496312694140137610315881487259544584711932151515450281064842409469022339429236648965414860065600854041881735444099643103653126189228611327678683452117807754990201664778739496284933140155985545674796714526744275811434830329807268443439478835223502928399787685954327105264131365315564880184117007015861046915081560935892036398503565783566782762046802898510630764523503281213982308318560272934120534055026584421213709033201493562265830957625295366173575426458975169083817846272961083920272563402027809674108254797326469728626318316799333687769885800762135781157497263904161652594613115254067090181918987004121502500927018598462897787199223770609211067422731204976475118415959157878003589233740659821628791163223927536144165119913074565203689234409408678742161852557062229937093419689364584038377640236818819186550619632341441051937272549492229435526562938286434048617716186550030640428547291650785496229338942717370103504421167922975797989805073495791011167936974997409356692907964716144074647431797707529176171112113865239323035651657681198598146634711270844065381369579915558533741504771255919852090550377787438834748996981178907876588909445359744115052959858044560574304183767708964350329859563508127362420087389092290789345703265468799921413200672838969422700323223918175608798968029097739968590610442873141401548945726528576230128418359826848918634110539919069061949580923611856580117933124333527616876060259729378480825144207724563838420613180502096862286322108944346388499021829611131359788691639560910277380065510469399190934744597330910805702653903903872480658116384054024726088320410910776271544888913568069066622263359474308760408594184042160845348368560906222938685728015389815145318305740528976239635805835346636407124671316601180817248554683305308310198624554035068164392546600249616096695193970037350665878953901377469491505792969031144506770764540548646008568071491667820199691360144061298422858433633759265725648695282822080367127469946370603553537575407890915037706884902171305314379737597674571297032514772352897290043854561726193961209194159764764106613584025906984000999268425231501128397393075010693406331509039611316194607166195678848600221575753367358679811889006865803888913556683104851894834190284249650138338300929003971076538965709988371913501411954798772923202082300277980754675319162317488424006224302465950095200550922718441510051604143379563475082965344243804917447009331036481027201762993333820660838050498335013265856407190494850231622937989459320898823639348002718403123089338119296935350864477595603580856136998342085472717606512970728147895267916653351431559846387172222062651257728396113029992751389123999731080028845808674408102090343736910226032749489528552370311371126051995777465440964252664660307272800950964020858239420418851455110906161862468303794618671935561843231150499730886368967168613029316136753203837498873503318421417479064870607229656101308210344507724636809977014544181624910238577794151593975869635065359039375631353704627210628253819148371914003164730405660865297002640932499692548477196225664564366822165461728554104231578700540864707317955670269164349965577298874116742513748314261438697014204052436983837448452003545719055716704292597233592165274160294713044920840213321761296678847662953857358826289171457971128718145514047653315565751862543827001275559789401592638032340663243113326183317700408364923132000787424567347683360006356310907156295544180982735293977930325009183277566445983188300217515146042869039539568684506863705831778296437577341164765520840597810200239223268834854751980366808251068330378711914504582303021410901268045236606080591492580856138135937059259689265498548024243614619291490585468820512360121300103474574102862985112940007912414464197976614964159245094748375608584510176782029562187621925431489772712852519725446249934587587866562093711546204073281893503798313613564285748399019599446734755265493060460481635151878627260880158522726785669501847195408677996908556328959376313584395714532050221221836674184084075363957173286752778643067945287620609675736273651268011280358089230988271255106616211144598425618581190449696699045852568737641341102861666634879161664803863109030045952545544200388184312204341081952967304307378359460712875426751348304738804014231898603659135885167492949909983805599774687682221911444630124615595863708275583959243045300930021296891608253235235918610682211888826910816824751516447409198014005454271870488436150972909828544405172551624600098960629275047941624879829883008091162327238130186734121911600264845470305927071905312643854770532561643012358667491237702395304563241302833845248316952613469179730790747127941553824660638240337311073185144619566224940302709183760507123561688920281541822105738439001162184228695914347086511467986008432565185127985041228031414415897954428913191074598501750392544343708701766543529761398340345395037516132034748119474990596740863595759455534571209226854337649504424281869028537747264879482581264251715054686097698763835350372138590863396425799355029229178289947344142144063383935111590128059436301749281757199026493236007331115177448045177590026802442744817917945174005490552912293258455472735934474490506707658702735968417629310690114730522248212303482115544382369137342050772178022702013969498027083390257490544259972971916141333197234270992081372019590932701847915804400474460674609707556025413721983324723062066773811897096657329081745211040823110997482292217540227609234861208366971390013427937345094027953580264502317429537021267267581164493216674726332477701747012482603190498059698285462038811933327682953939153177289033328921434281434645443815323505624708357635645761113254112075353834170578433229800090508934052541364891061018890915574290020927804293391849139660867657706309651048706332972083408358738974922836041500596669575016726593962674620499173759239357332570739975560044472890061036974016004563787598528717577981550912491119215613565963046678023379499261699074290558164335821073375028771638866285736736046438874263335684887301461107811095834597391785470234317634827758771525529448028770410631311391722228437010168230562072592962746177438832121428612499477582117713248124850619489035166094950102689077008741618780806388655637287204193382373808352463224934218948090935440572219453097049028286003725893287528262074748265005502932789487755113142985533013944991948214622379121454395461383379232883343152435923864972452783208991192141223568406460652159735083077287989472328384004130458207153812293887779972783238861968676127862854153434902816613227429752894738444330830972619435542468655819416154404516591781692270379626175153133220973857471400654052971870192293417244174298032585583451759934528839002996233713815244901218529786359963971336069312101336004616742844165891823342482991772758177997012182958461023858588040959606666372783500367546531951570971798323130030286146072307130086018953461535396571725864245180466204724233770592181066949439545782872245785038287617439348159073960089427068239710322281812694620458486506682798940113635178072694438564834770165415863085251267175523880488193500492852839075959988840338552249518566536095210665767136351320388353078001587251072126908111120217878062463639094127342417245057638500411512046528001834461598675085881957700625004647141323528552639653906406903235463381195606366986028264919122527116830350369883661987575986776037886730751674992139967309533104692503012295796797074976806689199170776817233790282489989350524749450017636591429152220680927556557796298075500802190375413674128458083374837117794194347326128843924802220466154993376023321256938322716761119861085591202449944383598152179384590405790112403898704809631698160646874661699163447998346386298885834100188214592306894570476972402914043164781607680476993239017261175239252173731954807110617218391713112965396171151026134677609643131039096538880859390322712690963000209959627185943146171763746815003692587968654201887882222446497303785412458623502689069375079013855075660908958802396675380482160025760988674492168879052723487401023655007876772524788480853219474965239154903356712222630512669866981486278876449024513349581254172590769782871612335637929777196390622735237941539843888536931217641757365790754467708718124869380961469267252839293880441805152594498580093336787272818355623037765637073368612866271498965830823561161232718154393864870613247657259720561170871139262968264646729691861970378994804672768579275049345499280484336744155075180938594436775451261353852775421952155163550894805489449643097645346756168174412505815524752007212355611873200154030362332868596663894310096296348943354037276930122079030872701732691765625373395627974081829556675031301826072157102330566940072379512794264689187424274856490194223205037008604887123546843405624656747259492195477425323230980904859978877382947881308106892214721048215451222278706453600756542700250310660947633238232728439551580217382427627392548220836809265751297817295264217691483636766253954166418186593969343394694445456208170735594223283120836975735137954720777588341533444388412132646382870718378891589260742767877205593692646979203120164392072351402838749639874439558181229762960514935527043070122829345196810597962018264777722536688942422401855735803167471706887865570232864151841069613863662617403227631988318714247496707220182786157111299724291142874642734486634854846232977584794052925026309400229277783183488584757728863832641380897355160376151456256436733443024437923751267296419068354154338792155037460261698165175874546770976198623517324149732931301433879821512633311704037649088359224902381879732710473146494358206315174829937730024596168984764558259093802310618212059434268935476562284759619445964018355146508473296088432108359462138018221912677176794126990595073436566829287165419707375608325911344846316185973855872081148772430895725796948713639079967726680058050963119992726906804109584870678773857181692333926966828768102358677496452514520864350140670646955569616485599888825610338481937220329678453201235005951712953751362640286706583618570278693499441134885200793593752418418420763149009512154088881600686165128344296511885137780318736505617565825492747260405600898156251961810790915787176041844643354141920391077508545369569890022649393086783696544732403208114277399969201768450429527759236791323892525898873980460908953454614410186301195151457300390836989845404285202437577677562895491099617905308045656538200393728630777577150244408380444562293450410091240873251818376375873954059190189859056189446232661626435402226277827992496516540078610226928219106812311774602839471640416027420108946284350678625530102347331687923312732360853226010061953698753314112175849043394848912309912405368308994954643845463667315040643336506407239124607794761653306378911291312431250394747681449754618301868902202900017827730884092689626217551179253849471714775112630335256749941728486282810411652144746061549839053418092839970514167226583332424319599730882192361597324376592939838678671755605290739409572087897184758028618294333734745081974589717970182274412776492920703215076512952660783345530194217332759915066044050213087225077691802851072631540069205503217887075677924182292026994293035886838400325514753870931764962344610055980969764403261332656058803884993993749697201445042307864590444540542500256600261382907520680940353779016612825658373459066806226974504699102565961496923037608514902156473482867508963687515105988332031640429091848397772110796330506054362834149094044836093332346668413895007292459876209524469267201916588302293512908332334955927494661186526619876787341006209917999632471259818348581941115534302686132382576107350565159940954973154059180334878364428096435465042058664297977828728606680127464595530401669026433473997353182411548312574920018588994187846334923548004423126053511948146625256291003294060447144142794059720732969538918960642803239911034469807416393771293559286068560067860589060922640789248335141352472953097049412004025484374074489639294992242589590990964123397981931919153091397950344675223195096890129958415025554724196572123344959029780297351302401807534822582980256756390421407642738224985325724053988234840268834624903252089909846821728748743367439301535336667193217126853780323021114158850356224195393780175743169885499367089837223369497231554936436103389472129347767644247624971945949529638636411369615559139157555655532207809942227163343462531120564764137080948971552599366561365959134055328112198167572336105209811415025486762416677007143850872479661385381465334409196830847020608980775760211187807381051862042386861975258309964023130689975926808337550461310899452715181530226060940482840650300635046492516360116962517091355322707049309347647701957179378503423409051246949568005826065725790332070390980858704869086023959717038038850537127220765001473925476975587793842249192293213251402204440666685154367096069791301525183517277135873615876201274636754776404006101460745756294749591083252518193161706114746192035145766487930952072286518171289414162760173199768470268983619144379276730331151487814862009865990347317790728846022735815199811810929734699082351661130658102438625772905393887476646905189718106687416185592407635733920030067149328139397406912889893847743309472248409917253022975588541856648649172141214748921728436729822678869548038205518824940987807036754457331533864526540784857575053371960612864921092201690818816754897552190002627963100609341423506574019264731527084788191712185204603215189271126668293547773780540914935247803273040066153641900842733233182224446286511192005646684884530918209050872740929572468123179513240974511138457195617102135454593046712176085201306662997607564271846331402887526227379145041221053302816632019462781387281285011934844875481303247614782547338090027259716478826346518324269848104647043175920580180369097238605001237251018881338446494005181818112075524603855595763777635650903249825797935406260315917529837656917492436326647138149054522816295345585704255448563385915726657276927638551569029114626191992318564928197605217915407447666276754472990542159289400204730032287883890059255614348947614749479544671253216117789322122591728992365665162646492268585598230777807644036455845388443322482577857246957440474169165527116722084337348247077594511896886723617438984459324778016269472443218957451104467394114114246492752325077998473572350879010577121376382492971151180664448346985184350622160392519240822070174186722473725873086496062898344438495574022506099195855240052465904509862679651902442111093561152355285094440573403235225476630683295352164105488617079015071191467410408117513941021113894822528510259813335129981371626165048957437394538998787908309370256264956124968042564520898397847991487391735186031346151859286030428315218589271315176809308807410107766310436046012711317140282429781458043055173445615346953388310038716910471489052015180348010465484880334960942883086951939822454322919757380406298957422175980161263189209655436193579025710850036679470337811162821112198822145407029677590137140901574296215115648420590148441447444871214306130858897870261082339342539909976691540954219444568617159305551070264929271899145385833386272414003431590222921248822029425898269225228411977080501756189648926768907183712881424667435245515017819263560081260641681107435096707780982278739726972737750854709311419428287221230329401398704678085733290590356886897030687463024934585909667174432296157769884481074095181030063586579948473950320961030260580874114099846541397139556733304678023182935152372908569218627669757440178467585382204643114213234485362974274591325511337488163792945205898845193013286499802861434210369858415381246270671584368814170624345299635655489517721782279710717282828514037612209714910612847266498442866794157100427798552888878341102374003485584360214785505612784493664654964758341680201906663981294427254264413325234089993940276942191626270846413647253713236225484713546612927856723532355611456431750122109058233961246901848708208598871001389917793131047413618341779540731381488194504384431658400972772549352657357809043969921585201665683409493044623201408847050802382470814836720066795863211525605488068360410214106104281603531139052373238170403456304601788195330949798267461612727116214014142448140350922920277785831644014137989324674106299472745466494321182192131574431093443419954051294649293603003481177226226786035223663480450834596551387747854847345870377767254157843202066523891357161825540125677457498433750991815273925816967266495816039641220999587634415626189836953105566333809106088713181222463768665726384342839617468238526861391360730710300530412464567201676208956805252565384060104579860415142004435850225154876950890438088026117307860023180249458448622285073103806938624794349986676967000023303617719063296773942898430056126660819653037435675004712244996006845384190082761589823135357901186050552716577837655849751299300325448529719660564590851051984747935511391664398553547005215912034718519594488850007668349982778673181017662684963469625079348475430746548902445778963310465521360649487831503242854226733964575172460658999653496653287013308359523286381941090364480449895351942123657869490933753857129197890576700981888170395411513676452007096688031604281862272765365085951366885640013506884806061033321320759830721173819581150668579076430877584398638709270886984407336504629663046982020138387125353462022185873025252680118869027344169909370399507403623003369773460799087992518190632538554139404683700283511657212303999852612651812014383044205218952526647941694618547211667296781784894287346709873813111234801456908233222181649582582052682722845814931694225210152956900360867809498093915126803902094807849919124674661066224331730847568524212171491492375339742423525711590499610173496045000552304232569794739108255646288475788322948930013620229010801063371747353588183284334414562521671253739261538582567570366189706375695373145811596121435571391508472716917421170819776544037104356719158274483696677187587422634482431730153370575805657090191546269727002589455872829599840090190736555123403974086283021714720340186594840308320663652100155641325510012553174652322813800563500516792055212395468714265046759324013145723869627171777263132581410807225457173011974010951278268871362525245201525306877268694403665954027381661192968190797537147742004121169551372459396578347318331534732461114514441292979828178606213988735486778883707379603131405024525426969687752795219167338198231299954192726836511011833557568376087148730604319891936118651702112178060891155595229843700881931736640923459753881590090006559398913371985918071577701731967618740945967386996657347805124710643903229758687806971320785845774702508161440736326764174597834289077953752014723257375834543904055285986541688338088002541064446523618960073747392856329689121477118917154301699330047460044195781282898821989921117737363967167320804007404346116273031370279340468724196073636382022653556986535804203507769243707234820921449808556018393550292538668508247901040157441903094089945517068696920122799299650937649174151848781322506695937877329028215878860340878949871131082796137129092165071985182295682321707056316961575437313457016830758832270466802992923430624636479897332662966535403486619255334639641153625979454769853106682002851016216045762503645412625485013157703495268640901537946950286696415686035829989408135059525180962921914087746630454416170365411561450881344525557007810912281861898549542099307576457888379633547995217904747166280081681859974624141022142797585125658660277647155698612639587859808680142801248628079721799625110130291728647575242549894951483549800425917321456526196395423978708428338568746641157097572807671884038003191060395668184879837933089665193131477994251954227971344198857358712202038004584522825970907241063337496103597064152477763021483468349678303285289126846921155730872313940601091473658085350043438874675599785794482451078849663395509249364702032133367352846868861153756998600325588734545843755105246246879814684218608826707181171234813576992116686486499340692223398237159190190133381885874793976761965831206491855226868836355901859315787579529905119482997296275006976736647228878051151383306043812596489757443253338124181111651333971338365589210192709352975168958226908306523408548032111238110053381209160573308117379944843617941742512535683575680997876546807226356131310010387467741791714972702583878436127453213992927526130040634988564773758913080905395749827393757609762162361092537577583670043323223421751017758153960404453458636822360477242310088494047478635886322149415547805570358047867860664801659729980791139510425059685941625352003943779926601552459228558577593842731150790476561442139223714671263442143652071157638460340993542712878093741635193115508938803257488401003460404426912662935722250933807992545256492936568402774904447754576517750152619478954289132559658546346067134710981273659611772675622385890613938276577832136674531380942856451662379924800302101556536512501865919597832204871396061866378369721087100582030789553961728643342315698528925517962619497107336079382669740465631477535187696285191214169879660923019254330143856075111839483118469280692108062718341312794010118935489992619604893542616223079540262750968630129653526718885703962865207916260671609399147638595200260318055651856078064997620853303440197774777905693931382929196205250522290191035482886362901036647908551844355721873011734923683012234805735571426889742694963539885078229087392677005621522447101438448230897973378114000258310279511691708881805484473855176006271240917888321318427231747621525828740006046459912821343861165333783040169350630975055575374976896215128744282085574408295779748151648037773893538287033779065177884738413681344981703545106613217923236819320418035677339707744879932543146487084846857632576229867687919947956265640761253525568580274015621495257296142185080348208467513034351704122682678783700003855078816269365186157489246077600930530471448511642733629750974923672425071757774860774657533034454133059013983992509107648315032644636450213299458270317690772529497024894210418286453655114831708434411308199322971541733791358096850438213353051040965882065812663530601251190672726355334775529077264119844316774000948642190206916738293322439175506422883960728987957638202760479775056951205972773045758413105028926359163310272293854973048646249531056513816788850377515306575369552592120909593597651247967542197206120056022339372208699399573039338493127024277324917094412524708312754281209059629376306975232652855501127665828935003741300746702065372011912644828052787884606958673486893788079617968766296192324994874355245977603534793861734820094647385523665539631232937191222918927459212985481479577907215457284519851083102127483118235240965856971835412384191681138937031556053001925856935371603190240651489795735675889643467691384122782226875514397215191612503118630223698081503968614739795583025439051754060604486334764649505585982706578667642164384693475265515118829500413243401142111968524231891258234762260221889742407180599730314387854215675123512368963428938964459200472499667227385130655585576447468037060962160121484448725419781926008888976460956137472375968582157858721133951680484959315756284107772305383299536230662631740212602730778107725610385179448788160366116177664482853826679666258331185816943210497016518996499210137737616847825517983455074426989622890966019480277327397278021675207616608554166191312286399904027551924074151018234662079440042393488696062250113956525412932971614409684705190146533729141591260144756081021403555994178847007162549135753297363640276547437976320390463849871422898365762600070904093587370480178236271257352910733636550633776151183071723451918740271792381375993865166189163604506077874781417905348833032336886529732950982995350619882534195185847712705834422062100046160947594318535170875399718706935105987607040494991441500233672434724292501245012242597515556591531000298737300461978203393848463298908293236607110973639050585809854397301704373769570902946688083468379591651418692513018533066902032350293252050045824662340311825145154833937097433179913643665543374043043797221699248616095048253791285195562555926945463674265985650733277040330790622061276675933908710446700035538500531676337452909298992137478957965826264116183253215850128613377773549526125217396283379421470717376840734188613398149385618015167139300223044845940185824694839241483389893047119138146979616277819791695486140802398509968050335936672709901511847660735155919071443361245138506094676389054240540445612197621325845752969051702956090100858967751666144720964248577625362592001428990668178341227551710949890569896845666118741676904726473283530692525868801438789300429202752522124372870830247048181155613455009658894737642079579203824078376262046172868519144289234412824906550884582662081059665335140273445675939437241729680464777425547236258101126575466664020504444676616940234068210586037113790369266345130773460628359653190325586880525519642671463641432036499598098909320825278932982227674714031488669332221768518839661414240780423443859106683523389160209940049765102150973498220733559651558780343596121272227425607220634020002568667536523385762673065395568583690691111060543889820879803473649572770513818601939588348258494505754096969390757573856058087847838007873362627406744442466382360881787471476078265205060408031316715738253759978569806318853483166893128676699103377935395116818711773696941139489196271258733776147782070864028853387564694267837748905987306945882503145508453290810535277535867055923811996503490319098953600268661917518744803235542960277060984077502278498983342520062052297970805560381000373909916453971845360173383467352038380822453776150512836755485800011994894200644986659566421995298336731125177638714077123224664668890261294568624931100756425270531685432847970452168858775632148591702217365294867142214394737655750607858045012904776791832715018171122708562705491464044856930561493970517144006962202985658089079796935999136304494291159787370515304103897343855636434828729086841359404790475994454996894292645772456345283297124784264459087461805489677397982222766093909748040423142648585532402178514819579890346062943529167052999784933533510516104415357875616265933076249309194478435758948919096018627043871744861113768408080685118671875273143257234896332393796059956094737707734309797328963716122865700444483971414715601246186744486495897334472204786934211577685132923254070061725248598569965439943692828973111095139325512528239333287432975326137079568126477463080896720974070201947235331642636226122474817234747854044145069894563664864409592982138744235957588647574579612313257664963585413815014386256595908041429772868002953425595565030607839403437482490567679654682320296338303257071427276651096407517745765726486013110558044254389378361208984549765142227575892414992604075292686015566484686313143390892055843542996826884969574075013668075653817183340430269186780680146047108972038998225316686754443981309105064108655495016974633908520804517935911339252727699275000461077428391180119495053827121357662623292927374333432993498100033902301676554867263889668806970768169619520319369152475509664569654031047715095582607368989205301564028273776677487371201034324735663543265794882618230511685336193579162067526200347774391230194396286026601900672431658866968284634726335161344046112991568296027549625661930350722697057633309931758966284946432043760840923048709102345031926623524878389481835818586204297013696307806248148096061284332962282144054525245192804211129532065886323531935346911763014423826727395092786751932566048020703162167565170242450080306150494837774581113107142593513414047868685281699013413846850142435967872482720750605541773322645699491235324747595027307244580667429330418202008658441641208598039226850281446942640016600231133681223305206811141860221141384582031685333353921335012343020247623111348368848212188260769539033281952305587350445304405602374802402708673289671180470272515173170203557876917519778530462246428029590413518030383513120505039845752361790649869343349048559107704461214427293445300257871398670394869376951753046291634639477374560056391967707030783983035450395359961459344433240858658359203995115560599105960606875800462797984960310900150463724505073010514222056207833770925107331919524228095909342088948404937020660775883660284541887605191898659042405466911436120427350182987918425005183744094933106223315219759046726710687612869842009216403089242360264437955613709761773603523729298022310277838283664846536563188945565652719920958268586280871864754380726823959176223063393882056722471738259063820547270665437375619276685353877938788995086153319008888145051799187252341401979366603417455403957479491271427412105548178099746607060215970976601880721345038230437241341242222031283390738108677481929810489175007703665842531495961023455150026287280565846147473278908916120450763565179541686921813686940314312417493539301435321289971827671524988795930699576349045790861658818377801043593276302352117083450487448259295637935027774622941084331217717246580260243864335567234328940265705039837031256927379641455087383825874794598035564777174604955169478395206744204669047222572247040856306621964307233574309541798874518793244020153443830221196355315542186590743740938256869854867042688971080169456614207540720826475513988781483789564255660518662782364868150592608901858498971560217360507555320146677860308743708223972523795568813252185086055753499332432252883627077239419609621976138436101039231643073783403611710984935716513070627845403122177697458181335911668739193170643340623441296455466495416423696912776268755870810532844198222699719903289065761883843425470144009586863587242271872065568522926525977093297382754580631733193051615258296194821068247668290567381526483969906596125608927775370413497480973437185241741385317657824628526256713446069583472610906193744624375666198502525534007235556126846371499373689741625547085739865839614306904794978791216278537188884202741670583339271724788051975123085794322646151739895747979296709027154478227395176995394016072018199413251697325701113848068910675488183774933507866769045867586303703580366845159970579412377657139425819780689543732636281740314650710337188475687888897279216741830523131520054335852606308035285752739186932549036067753851062025174422785901097488226265448034011944609443227256515356529144977456568008938270743193097333499967501134565561211328459688395204417081064306232756149802111227333957985196594073849935944713518776424891366437804291190023411966231018808878671212763313726838442141627550212640556949670773028515078736088992771005192143840952425972594925161994477079884104952578627301099397296375951324604987242522506307127082900862838270644572658869095894103949850891812304708421533517611471210358412762612936057437663074297652216348344907780969247173021659789215588877314288824013446046777956791604320570423056415979090934068426217700039316999318213230843863406034620763835520260611449831270427069708808851989738857535089532895380454613240452403643670573480372279026904882399786100545912686791992689815104351888430925076418534485865702159722715216407008510740094158886311869205414791242646543181836470480144973144069263264042699019216238651950498569435656899628596115756722553406198130509126490858239774946925399474304457056717604757167084420974533629718840854828541651288165904422316838893576345307563903736236733155443091316415917128322256433434870833086197413051986232554052016409452051573888384942822163780592520569016770010025656945280903840265966748876474853053423626760441281602201344777795518000426980341979052074113091781643031948267855017588381888912671929177806487908644313911385683842760166783439587093199159470652668531738065752744964356815384933944664659114555339044311749236708507507686275684839274443701902675589582783685664234969345293253098679958865252915204025858672567374590076305827309104244753430115412205146017575910630212308473862532188489898521295740482916690369644660842397726116672419630049450131143063399498940398750864723580425723259799426768008726376179460562306675771927930510245133423615113933338211340265562543471429317689606316025024675521897747796314123378013387012603797845463265503791612318844511590435188102288008531720667599016894516985718285430522086850018695382296446337398671905546804358354755793504886182795965727705450121414422448504947621194893230746666674232466197580157763596596631878449723250747450378765716408340737282404374856042532592375621678108744871140719214192230910666479007454680889368688371129269523798765187099173945917885910324364883869263871963277595631711656577819946317562413794230659563884962637576450173671581681281901278624060716302931620193221931255283550660870603073078017615216464670287055102316397202373379440012801029183642952666878124302885576212636605743333396193414271181514834054294666565490023923692037287860620297415176917424388219827844441677683059947322723805626370932869327874954664605866937160435157772708611115533141229707411979721955793946785581229421095145918270213311539252237226717862988524216156095399880421949098619761369551455284963580520675276648916940441329911797142061014138431471689992395498798664845724698291734773625055527926296641259577970197440174511401934793773263371923422545480563328501968939376393195674408619660804356206776945221120478521140806991035135633715284312947073621999241087343632957446999843760751610433172558525573130681624605857786518697199520851825165374986422025733067980726261459258374493852805054242416863819811584369457755215268048888517344507781908156540325206363326526130201550779960049487751890915099235186681988308517086043356752171676870762483925544676792246718028930301784721875067726964379574600699013029531885329819771321115942964217616900494482432085445398411659592555958828658515734980479141298200320154561950451209382392068197762670917364297522311195466185792095285193756322709972546246719675298823639882718360155744597137079631999893853951665391267845861638815266505404064503834405497474280409647372261149568894579304577875341454181723346160379546933657994397904463616395335642453842503377500355617648497962479034112312444696688898256570268315338299303749260729617100425340531207414282232550234721392527474130591455112773524313091228917919068283086620444751668879574852790703544308076426625744998879234828594433448861842655002660311858547162750683299166930203308847038794141222107044709509249442928209220966778166277817878471011698824229545311239538350711243015267966357160100115333257064556232090967568522004575964987871357756361689857897705067321836220730177895846933237993980985312083607007655042828168379575999689069499414452650345332166880470232664966132608966562720604266942282094054979412733428855794314352712119831417720426449510606417673735479966359564493855243992213719437943759593390933852594219230917274933243962234900350730695124513987051679503084298090556457743345703182486850243137754875317240536934751720872363407933617598029339341536081806779224569120725097584679990851065435944944035872106608848966517332421377159180883838153176207271137765867712721209836548461122181513117777092958130465653742353390114635610472155869232315554980258539944037142653440419389805697835377162737438461051814825049208668917152881419671659334476493233629544689619714218062616599843418665543789377227716797525138876391336079568734598159149847905440482977081801512956833769287986138986681519418933226465155809865436569220498199104957519550698576275900374179185266950255215120651306966055459353140739789289814568882126907524932572930875370240958410888524059013341002503037003880745249921458277357529189136307343359727515192821444326602485609421914651932247143018670634867684897758431622886606920182614920603119445741419535485714368602430943375886398690678038382326978891392541983591687742163667595043698356817947829165719803141655185164275465533350005305351635153220283075253786781832255748356045711797931202126454024714158477118249339570444758155875056060388292057491510311689517278536208161195969771273152594248650494250401844989637817379267431150144562615344614927818162133271950079873036349186455670478838074933305006855985236104037278321728198521908000613307025951466316621779298604192874007938647680660014402391463472384976070149876828949088716410612364693032894482328126818001533412082370685608122921113024834518974124207542672258730789169933351475345985615574019019784210194121727899915572254436797309652032196414509991409629603043918817209359546488866853222826374916160962024270158078751118920437135929812176943102749122055124117987235162515414095574865240586545185776830770891656549214210232559207346534732594861414337431848321860594620284201869451707880836648629599207787787279528942924245302609524001625182286053412307023717871343184972591141529140156101526517601356091797496766392089979299575468570976038246210509489047996533853822565950737413525800608023752366570217386525371549717798956672465756847653827741615500278976315852480415367643334412709040783799911033566677710414495357582520616465613156452605922418931886514550150647546825520193363594177597881007887302093838995166022482590295367615078882806882125705749811094128285388309362851709137214170586779921224693326947605068088296742393623585904528365588448755099973253136140678768104023839685884917668892885798063064956100857434423914686891112922778312065193230021232234245648294752580141957237429156468360458788571922223301302120006495741279841925759303459937311114524260763341592042322815668510501113687716457306301313450221237247160857537758817279579916324654866109860419033855546825453602601034320782955314002815428256714005773671080021187548994696197203588149364264536524343156516696919031460272768267078280233282842644367238964216916100138711078697659381957130438604028234378018638510939866935879135012814588830464060748915214610669593544441367181685246299337288529718085262143978489298668090350366889331961306487860476098545684185035733009030662720011366461803956268938692576825257170533128191984259291750662439547596913424453671328466464332870056676450400768241290187965316442289415235868003974205969069843577677460315431275402995167868794595519068129967428840476621709967075522231473671101767010866842169990928538939964091058681055167306199646188735276768747681655130264623420542437824596276590885874362100489468530152167173191005127880418528126184462266565750550744475975744704463996660045839474451662974459221008040082669753665700987763449532159698322755966500693006272716346507515050270800840345380668346673776635029840186064199542577204953125851431691618215169952520068286704104019935255388316301108987186472238303321770011657770090908384445313820338549328246432636578322448931664344978411481021269261258322054415433037570235464515332444567584659468729424212448177405930402911634613354550666076681945391536967153740386500680526558256676534660652934868071420106920779508044454101105016574915741912502100029004840834309399517697328967093815598599247005603488873983725510678292702004210472784285473867795885870389429417760684252117084088872725478113803639972233812760948764861117165743871339599672495453358605461753805247640989663091154732170323223441717661087617149670186952826476085400313820485567587921850324795174735952592977352652919691039803838538325451649738617857505816250195727952378784980442196324127845378117509017171684141830794977575098261040019573732155702999563851901528018630356067571742105566838596475464304984401730138452950838818669320377419446584031453086703270626991212865576542435426984727566578230433767784282207205482794086729127923257741602661087101132281482821266100010805292923386324918404552002663936945113711508218607595013804634436454482522404538742186839186914531947981094244015246862437220406248314218990765253977155413924064193672464215154624579039228363649344603317992231517532463471641656296867496474365667176202702304275952511015729040552044705929188748794240749669373383546889392422811162042480541840523380556123616610636222766863363414827261256899505541300872721282188124233370681963253221697685516476915299004759721445490425743640693485746222658810992640394891198887621397534119723656308928696724386320433431198479737608638207150180450376182721163205766924981917272199441459771623565217023058516158563126533980438119276663092983833511006576889383200761866248055302493692854508719618022299822806655388293628741617310113400573739420860288367693754197662442486435691182991619969404998320900016836711907696569521209159537646843914643399672509825498542175014955203791483861427270672954834137352375684561823560867557610282954304828175438276034385664255852900908340577161961573106825887851130036163102952632306268629555493531985092651920115582458943654917773108719261870915903975452821165667570487403790571447875267308661679544663721123484364045689091805330489364162503085402760516169542102858275202491457676257987690096634612460901252506319733732827377083801879463586114983377518847503516424059406750020797728964941450005791704062500579275566643492045507476851476795475286810515083700770217730452708146313467669259967102957890465271257458658842431933580117210957889155964712200917713369175493081343539424319618373881224826029015926483138609256110064510452885669581830921272164376595599392207116822961464228329158693432641673054987545287659385413777343636974599224710290082944873748344260684912469587114268949204806755892132150156296073343391826886407189699627314632878090975870682193778552245189980792173772497989633375899955400577807616153498409786673264603834117091781397814179897821437983820608830194438029275817148895811029307127619727827814450328275002892100757646420241620543404325519090268761061781284618698566191235238858911000026966758534887359442234995846414083134414662454560479074964152409971411937938868660997399894180794055154014897195880267014878373563839172699132463263622818745210151917690629940712885173453374801379395912512656678778205822446723399562069669464564561198490570827404283287516991873901717218659037989081689326516215296283078458854037428586398347741079131779938997059173467938564652564250883790723140539678102166266281637376406141307018526979076261410985861202075603400775324166418280806369694020148524573127748448072651166498875917503808543625648583115690065048231610553930055356699850712454431636075852486416040953610463307690920412363035361831448022217772953258126593057437968549275693531374807307922263057631671782031117191610481155867271409460268825706512743062656114352860109834515356490532522527880846402650511359358262357838638659102456675773554995620390717554748687332329410233674886441961863017690383905561035240338096540628777141038084832828377048100915124800472777639870382182633081567412461016133706019627521565228001996918379233759242046392795895990111654789100995615691666583043396149286927786496510874709404808629569065219645310934672437644170498253067896192651390904737407202430020232702747581385894781610068774088229380033877186008309508587091555546965649084764814795064085777341226526479279084858548315395242121780228468354359736891765198369295103603313257222816888378863884204853464582400022929575868900265237326396808941719324489855046860571954435299861422043486683241597674940280509558859412993238527925255373125908997079532953757488569142414822513880298476818584291971513637563352131111095979376800811055499146432575514649634685964954137569789279176062406288175559104671397332242658854689314331305103926584922952837381421561527290227144520159299302515076559503351672014791639606604396001677066515499702831485708596310775544072149835399727365394824062551955610484203111527028535493104465100238999869908735138868145920446597991499973200116850901077809865930561197285222188290698057150014363019681175840709731443984994624948083614267050441078788045058647907044394907826731340179541157586463344012329657895697243224440447092226791432842130790279861372409523289595253570200466694044318697228804827840176869149565389943391873528344768636307844182240124638237212727080829339182479508407991317071284605093469959684742930749932554739026949245913883358691651962886412486503343669383505481675240609711757920496098135890186297225763655307264924484461187776582406743844981910075026877668866983771025898657135744984605951709869269290317833024593599979831581579908721612534378395960203983268157114365908066470486750679167816159729979663170851710614442035132095406902672549462810828651248365838549421516070888233878548084656269045587986142614629743053397004764007795852361437342070582608677401397983335784729668523075550445537210977154318672316050693981571891898748065288987154215976915393289945833593509277752021023253580946204222301192898887808558413941124893715951641670962606721776246250391129783056902973766823482077352253031697474081615594887615307965202020988253182839795720780882022793916668823252275812376639123695146937474458904599617820491273837042675289055866632655785105086524224148788453776540087939858932199427986009554226858918789692602207951945925906865346871240941163032174153927048251819163706262389399364098620088850895515520356030148391843331675326978256181698309488573624329884774636891862448818720721613956424973475005948586964105342163237369205773584644819273598245227597445077253194809939345916382196287823498438140705229291432436040582046599556348364428920848560191528155152029636138133837633519001950474716634708006126623277960507198044012440747537848334323327434229695339919952246638575479087098885393558516740686679557378412636427361374025552398884868205530077302567056906926061912922325851448577126623638632597546538011953426809508333867487891897605024934870213406227445556717830014658525721867429182447582296338547529434796940541615879283882595414319813389080223245296699860420065795455239452785260821187617630194540332969650388721021693471192790816481695259511128212912547724277506295455347061275228525508312491601385441088205872604313782775031065449100222597850332415930848146180675009000768642235664135076932971177165788861583526355297190120645755100743700775359832367748379257184749637781933253367599170760735303666369583356250684772443264412646709316163928422295889391421681180091690964633451997396681994845735047929479966906916280369339245447503966112424688676171639227443470562403962490271399758703813650628651958004138037768331568536243616228521182033571352314779229648180363803390273161567170601706399379553956609841680575552667775717413810848099679185705592177737673546945723679887113339158618017673569815015965942345077374782670707758995512401435577444629309950701065431420683788682370376200966748124716603490713903444811372745843921852373005736676569333987812334329583795967490627081877074660312946660413379925835155218550030924736234681556454188628622932989155851649504237434441553637073293826145149625759298945275045064734608950701955560071179714703853968096812209429333698491536399915225648647328325682062288394694817614080800687118014860535997597360754936325546596488680734028814294660497112911509464285766622286695809458307054197722741002775056896692281207003976375005559761413814228635511174431716307090486675559366458169460850063656691523184968779723058345718245207248199127349152064149279288310716529471949791046205897355184475865949993735849252973423997359900656993695542712385520217550843831133848691909083694248208538656884762126547970100445909014463904356754983257699001340641559171830818281607473818341708599533053834316719534265049224725735493624298119133015288904183110147602936313660900708645060353321645365325757566981425669498005087677517106218421279733788936246980058436500310764818539562767097664520447564155168595931443407495982330758273172908128917918836054545110273827657701642062160266685904556161748279719255072946102664924268226681907332860741497749187654242496954069136032393696743779975932415391833097274203004017119425898107125381409607201096616590527281794993418589584338174201584829856590542306323150705802667284690658902062764307297934086219680572434230066534742844365336537899084472424372088288861336090047531870992688009061083745415068489412429683572745267674928449592773894158352771731354384131021140970384940672649713778042682874298094004332647274120244217848335006801915402147099404865911283644873423036300412324184392250329480979071400716153921861152679440675498289061723366693315115367480103605032139262880085552002489926732353964075422350689677943416399112510637460728623534178518458268918835183427262843133294180863968552901757858032277036597466850097153410647021880006529158234985640126320056804892840359950845366562712621917605995153625897151465823144432458982785991232169717993457314770548656289552734468614705179683215780094432309309046743110394442675533037063997279779269505738763530299597130508533428338087092981265242008469645027287892703652739897048657149663356712474911376789126547770932917622491595748585596080798027386700151085635435954915179036502430385653697394482338005410205362328219350985987030980935872743976057668564882596862349664333056678213438521123255619273150782356007640516196237718646078728943831600443933380794584129383943721630132556066521478324124997691712222174077220901128464202178242567729636504545131208413562016154429096084519866220359009541916186321351191771398923856156735970984252653132175414001503433149845530763255451592484946260974847873745965614557879269189731665099743771149491521887194517267025587242369412226364633150641529970881758829468244460800860289863993773309799338493534856683185118676190463080314986555181444108967812271801068697563294424894588788520312473327519665437888792598996998731038014106517832910178578987785144967450002766911273252670720405274992080921638602986442039472437698825977558487133518423295303835929547046338026904122471654449300294353994195651562547479511611178880359506270983184400155247489520361450428914645773777868219574738777258353517699253385403519450339673237044102091787144678718142071581101078456775297590194932313284764906816420840429795291096595658101779877409578862844011312064451932172788516283006151194474251453156718189708219329448701091559268577571186469974646546117163582336445652398287049986881778640532391051001474969286351067544249030257579192629555697774663971797332127213519144882655572195424515272720640681321669136267974543023143345170483674168983416480281163584519768078661961126678619302454080518454456532301930492604012411830455736243780383361369555921433204714433309819600786513272854897088701085608897570714519694218003380768870121598512213700042185874294222865350909054272232122326508432837364079984403508701410280748523936597041274385839944642518258592360507687234641463051444981910284487693525595692124663624217535931801085371120387481659127005570843357393824189760198708592926521638757285193789236404081642132934581169332346262152594332147849192283686188716310806140036922616921254179884096713598097422193394720892737979115012971903979848005954711593110058325699902376465399261510077135214044800526814286448272642460314595399434921840529712997542050141703099722532178022085022484723538645744181502798937566105915144402825092248036282794944571913916342827022625270392377471980989030974077816340438125644221209118073776827406202125960522914881136245956767159858479942178933829798806296943800967184424293663040736485606976910863990322615078042863122335134267790668587399995507726377093448576551036040383697955026680954648311171709905060101146123595248878318504381877858897050139723872386941151603458560276512775948019372318564896330672481413491412827257052635708987394797651342677245110919693375119052942866556509572409745961016780039291393474117208586953465397916175088115505346897374728103441100925211001256525586967390527475080363243258160431890472813156695516577721915457108660544331666324292135893451279559909902677499367303229482158136277681649106993935430683706267716369187505114351900026445182500217386087702067561807304288039005901434924097647978137942300440935909310772663169610389975045038093171538076286209419850530928019550456043259811309131919202671828323862313858550284686190198446936385021730980797666704800732159523684110425335490451942825083412187906714716653935219659377110354875513673607426821525395617675996540552710035797234111069887600088519866502007927891467886010112701518880127021053284356710709933362453679611043996582922106471144494167812170345164717498544982159831422718322063619721122730804242435433057847915770419463292263963509274675323361814689899485130950078186762505010612132052805012496784026156916954388535930563851450335112173251163130268456473678094372497328659808886431133479869867901667937126093801990827194329983722979434182038124105060006514583968348878196617223801580145105145740530444867042578261980862749495965523195015389765111535605461107473705288877739473924171686217278382561493171646498374958906513526479447328080973215826845894631356003593661557872483217609571412270712538587988786272318699151917679505228077963134742756425352130858154107376191613823329526815927453704329827999605096400927368167503115064836031578725692328985857935662443245396767051537277713643892243695991666617152015982035121314203474046529888381799069589686961003882302370703190049381697964342325140868586142347743103392207833506638390282675091361311824811306422408846900695790971493851016825742102563297653884577033940704027031767054216989390110391565452762041650505574680374853967586766774811871495047246291279138509767884546607824642785797512762975345152211981261328467263039925552827866846355819490583439140226249657790958400440361507699724492450199420654120742530193757438231364442353692102706670852011868593862303139798932926151159271527935574612897575431485234169643765873919143220034737652712444376221823313906250160700849468013439499670464438136534082505018747224242156054591050825161644107402848951962416996364567658567976060248863487390445784841550672288943425582385132280246639460716910527896271057286937928193512497855579935372794785094347872834099951501350500676700412105683516761692135537589243386563718933337553429279813657607632816482513007641074070504557786830107805791623065383585800918216355302528864090982687521600458421988014597921177793340065822837192310962900710451556452500615768564945487250539452342780594147227630360757463465245378681167958265815670642582641351847977631136258737278928996467672603933740333155446745420167153843032383443743422649409012456823332693503833570221196082760488832191542858491958766897903173300674546325818073867943732653090403330091192980481825022131265198682633873101706322459730056937865747224247604051047130137534423219149170924532181774238386816035871740643915509826984763874626846677282727987961005290017985025976306763333059882156501765466917198079732281663988905902380860720867337884585330887929649356953109849891623991511339282167236879734013224611234471377025030334762797566167849000498533319229459796426613939189062771710673321595976656918420501481515849089610455687752067764943274775793247787369425860001075208881399968666834837946211183437003787975788377604769969278585689405948820181634029785866410864515112319145139031328475011271718719814958299793918290099897050218877269237470438818814069055323653332380090526207525157591467552109540133589925421424724200811506539492867420713707929639333464900604932225825723346917124942789677282457858179026190749115483243584293118258885399629744398997556881395271245300687577410830158743747795123493527694728154271370546864852079080320678862215132738443445323570027743721668125698635717007315994093908537044121453251722890402499772299105958037032912469891623988729727554463070191256392097725512680200456435670497230994435441298934858593970912929746274130496266487747413022942774536838198283217244737597549748318944297110017652243364922545368819540962886715661535030370799834166991360132227799974626906834421247285552483909611088206860365845202678329497994265863093679382580121562039608777171496009730435992150062961043154491113166720877942857851410262465760847340655406574587706338796266713336953359842138008922348608024876444208977718619664462326942794380604419195572147825584335344555761248628432762366901574261158735429556827317693138226751304691696129468607992119957414055625127520250152823389764956013508132932253617899076847434587929879533000748065937923992384065723810069875464342571498554399497399602136689265520664421696926235161707704758647923890378338138209721793634908872830325187635049121085638007985423251236930290161076782913416715184448226196546919466244017042880414682156331643856852463308313371411364928921657889649705264275070823822230787204051412075262416490722978078442100183613247668350811564570655692566873124910039073042260123770239059987268872587308807980473590586791395179223937079145374471845297289581339426990588864561911677083421256191833299890318221563450506840244353321514480933570864525827952463774683144038042568824811894715303766310578988152096372106254501422979821887034063492805003411028541803493094639724222131270278298998655634414518848328817713045998715069592004269249999154408188556591770411086453606493158640019489272672530423053271466563754010775806905124405803960767002684136929886583680792408602450199187237724804686738323388923544290967484880036304994422614652579734091749797790391242896804406564590327906197515901651575849319328447128816439608647467043741147872532325972032656084925330236691526245838942091414145310479585184729551227714988238344365876881405054553011618409308570687880981631794467274908518782847636386450545499599334597788826468614492516442390829147744212147050099628585086693081423243860019693400658789280456340832251811382187915015683274929154812909915798964850271267141238413467139847688311991642165493069334357240135303555052125408978693689838790685858868554798117156776621362835391154400351100789507860590367863118673635988825504618752637578106079718673812410442180792055451338760043157367222595687804936471064974579674591435769755822557735461162151350040259606032352289843992999351672578080884847299518132107544956346675416126625627536252937909285541818065384182884664666146912423209132639249363769404326172238776598955976099513816365362530218820565247971570750297599542017400338028975994332041788428010307927953779193411376266707779708357729519919543191646712535852466788375851003896656983791586911939920964719306462824151697359538290634674155575200518014530721103444062206054400178225341751365675336620128319864279339483225347064332684022215037052621517832662216763723438330896826082518670714744160694392610929739696874079115725431685150947594236530233874444524581748579257615963743027739110527222211573206839841911147683454024402625561244585621785610253199106675885262353317586769316687040981943580014645302136290381951989711553744823777071366366737263479588103545375830767528040694017798710997574525558526236694118435106420806400158634504292966315441132590144338683636102035977659075626676488418908675488656674741333635497337132874549540812210013037459340221550860253047267895583157076262329880513262188848807121268031939064124781864634909284631282542836725608612686851690321628533817649969652579210850852579144160797027593935194220133635051819151795342783403203111182921896358831963315701140798954798969730243039834060917219712561187992473538421623083840472785856510511526381343628388306103987102855924869233022125980825082129864658692668762714561749568169370387500600433143999620394510649269712914559678509502173783747846452166047403936983775884075170215159126434071076235769754119432040847617271917112018110128371594217178827015492655240351229799831371212907708773196060771662789555843335400346128968599066474657116770303112518863928930040371777797497983076233961606640587081362608104207724969895430489733020434796354451845402104324914135566417683625309043199348627571511664195743549026316491859002079861642671514477701466373757354716875660601704733490262375665249439773919367256085956980815856097310892011441421065941426583727885113791186025883388376626091951432743092466278899188603575317249577534457528049407133855102592902686097712784243668624113048602949751392484003061979578811301788390439315957993326120478652543699813144339921616241054672793163269417073042269721807869375243299848250830024210811324193254316287399337960412275235493641919775762848237119955159792409689886978078945808001161753680853778907168502864793961205958770280141636394157645994209701314284577420677352477573997201186579877013287731613246219679529674217667230829124555477246302807353935018676183548571650395884375874097112447507125432610026019141953243970238037626438813133603728127783169935654847435264202356595978004079945437866542141597844132786000888151177475505629709326521477660490037894436338596431788626374830245462255358654963000891049729181615164664937023864639420573029447279009292095718491663801126891822719803678891545697344704623707286743633040286422018077304876833515137111026178911744852698780059852958559215054871337975681793320192644407227885982271854657281664455971534604752738233072679370067860868219151847528324367973905413404245763125439688261795567208958440348616506094383020780655284512029213087705895258764240902411066751240091308037796493493157186172911016864780230234589648153082518136239321080071471899376291551380989031895723031101052435319110057420169576595547849806757469639965865990056818643627982264004119752330955336814770446740591506504259233163144075139878974836599137299330592859372847010922005789188936020354462517621045429090152233494045916690753307046904884395991699056618988984160104145857478675860150526060428648944894119759077407344191801553539754783450600922816331526493552159811091914437534343264188485995055136457018829514534660934432171863589475010636071813805504917533239199005550378463888794227205472429194688680961170229811144633559142721152745386660459811794725217750513684196019996536947547601050042777858872568143194423863444575811175878812289311604251232929422017245366591018822727349156769419240107297131524819555990831953992136159937321169529168869570186552483695078394033226474273518249189819749831556168813407910354049166778705316953109484727917847823416579854623607209945290497160028854864433880899275935408401217949571876269724763898298869582123830082628491445305288525121957623510411637383465919727475499648161948337582124146645626665288973623922051777531779533902363849580187264088849261296583806968229021934444603725720295304393718570046506943800101097203215493353883074888856033475643829596344017813292412432377161566762125719918293649346475779291127574918516667238793720887938957428936729430021478052250370382531386582783988179770646301327496730039258158738239595431116860538110537728372314599340349381246320463596692761373254784329325149162934673090581579287076086841516267841511897158323964268761167794138564112564870067000910154132593859758529013500834511271527960128865880646379454069596921136926950053808753427695113436235087330128161086770395970018848851519711393830473330731651068675725613218954460809781892984966751539788164790562212828316645852552484742440470615576259046385594077649272171336908066360678625364356772871462545702313970385987042130595807864208074397613516733132341995163875118441456854718598474102598437847556974632128354995451405373939210705418114552496973652472490868219849283840375400212211683207233418629000198352100481913946397072425945122480835358152692532598026173649789683448670109191044243139400116002796969314103097836576150540908893358328540702562331202504686091402715105237952629208013255420538026379205895956609654440674085281227851718569434260017638716370023238079657195577068516692171108728429020936198660439433177250334819148665042206007600998128964578829595843994520952439151898388382789070721608123845236491820980619253141650232192881291030494696461723140164605928011289977600256834584484733035514611593047909489796554269958841421303906809729404723035685227412972846341848455196810473470406990774943313049254025866608691259900147911089148619407359204102728684006333898550501253260257119069632136644265472033536584734883753772963691131571287710744660741419416920552605381628880002393157286717991492159625038490446557503002143099960876451854370201225526111711184429509634241626599027448992626160836966302493701369426449857618815201209068212720558894708639086372782883648924943530012649929331595377921075227623870049823044476644811372762438522152319045508171978794776859545059819707216284590652496617073799689738595732451990207260844718782657157357008403409284689463174355456805298539586027672319628561338149201315732150600110470494674258559923458710238393780027365175080854679276562123609195255738990344847458310682304669948976342417248955411230081819283746525673549598570424322547356344795543162499922051490672515215678208915732472721458332886597743894276157792431215505352556102143504193013386572949647102273525342994809441537308695647288141174777488853358781288319558113733980384821330069461603235789698637833004741448395475680796527173309452715882542198648479115246769041446366506450355344883489354007524957040027878677142070442136786509796870004389022264798066309466324280813645195192063594844340243364014069688408364782334432143997885023336657241608303322890436852550847524800271356579523471643266711529543587180588995666790238845325626822492336652452471247475548665001714254934236591025420361929004370868193840791611750484770677803648457318849482268994222739543826419815199573909082204522049567590117364911548858316532787716697201705245001222746063723565214889890729816397824103292410566606739602268809106723699899184995145575987033643500549121976173201556884365247238790332711736083567418682171218377384894977553763074609730077550010064127780583651901321054465717422101496739690265807739859524185293711937916276697060791403918222001075439811010046225235533986347259996992176829392163151442875152567395320303347574858733041843585658849759471707702592925232470659609167431012280678427451303541633722307079503196865522918088575436435894150727758291219986059799026618157275385223203243979641035376572643193323458095148116862981108393275062611726759407877663115409091656243464957471061186285009124666961781053430356258858480535714875185336819947144258284392874098006360443830202305042274499533570747009992285151910849919105033836340144298038492085185314548354446135507018547632979523879246295815406978873846697891620434452202564775741952977399769347095700761913929142084375356831083100291054134089223186527190940868770924401503090549812268053946019824284617689719629515809489982485889482614465636696584269895831169660413926154075204690687763910567849736485139418464061645713495316666174490841316066392025656016476168152289746000772289351693173680952437774869880102746814882041527285978304939412018106102345922889346798023605836921716980967608205644447208166560325973942921217642544506251050542138335971052901851653649187372639478426987902624704868905048973529092333852683770634811946697459746719852827127493005844211576492256755630772811077856279025913350920931294546573681894719230202890576978969295632472709184659131752275219065716586797529845030686411594124445063882350647077752951809326412279218291982650109495720773796535011435246712367028473171057775103610693909948641074074546555181095947195618444568578449357078497831852870376929047657477268922979513306880590508499518200492139268282314521560716381160736491686152475350113204778057856474349267016058784621736361739522864754258566361657778597922739325134830338427759377393448491958126542475929486160295384051666750598151631517603251943770007870687941134516986168308632301748111228687654093733496401442963704698156008626683417370283588972212977147362124523400934928214146753677014671071707070901835317901729105731121259568329763695924833841286439339935203037381723133459651199589362163056377406635367901237579251087046603296952127426180066792948395362842835948107566243547395055152965855426923034633258026370379240120288094579631200106057741772092296890790765246350432123555869149038046423103655410038903735622536217153619291486939931907281619892596972169342009520595994327975449979063474698977861341903515444437750298483567949632859724241716564170346612207518474872874507058276787284467751759878947544113949824886253336369473055778908919145779491410217641196192240046692831562568278875204416943463044413727093306595542073235335748534216240805844883576231588833788115743070677560576876152324380047907821909478565525879621285598443475615877357324066037675644506439233150167884236554066035793835146226148583919743992630805564656912719971425254027427830139646267509184961670539047535815296484905561878049754745354931209861321138257847523842469668001481189428345115226986625850676950272305665186745191759845312704022288546124037927274981168756081733421870053097472699441044206664764690111499402595734552943414492871917358502479101705545974228164521391694740543663321698608650169025083850448708621433373292378780525898427242251249218214103566528424484221364206365302242526529671261341565652539424315735482245283502047477884525951902899728618399246333895008413141683415703634231979169793750091209505265611283998460803812626681429626905604240258066204667467000843822194372252242514262223492260688504459099711040440838973020742640997065965418484423976872462324956735640641266548445932896363003015145833009943493774249763627972451298440303574770260373943368972355578166383311663951364727220666430109123426511573797267527193242671427694417126507068965371293278793886503918809403823953866717052659113642101406822143390182720814841843307493641126032007808544416043881887729021927231362644309816101531458973378087841977981380862247308747856747030737286035369757026217803520601640933813901734877205967199900855325152348621688904918553579950480265274191285235778446564520101809037348024821746282302925602731770148144036530529180357312899100530871557664199550954118870546009461633610451982815987896462465493762952485563275775505147582585320130109076534517968198671453913238445258432633735202208508883002329673790620077858465242703531275844725450907329387897074353476847544847061590947571793915161948883534722787888097248850582955760545118123264660572374725765876293563646823111173956617573386859355878431727242409503926235777778922793975896285400127639564781163892981221058345977148506549311649268352869918803206536408911548923062481327207381270786107894135544590593023371440389060213244135190630722675746674705054586718592898659000341186955223668887688372563069929795616534285658403193562880425810867364928615484051900995053685782812076416184577449114172908765974022635000997440581156135563451379112971431319311186520046744585974297768748657149096592989977914342077273930289570497522937095848715415064491167197204488637721639900346482750530702302719514068664778388062474026597282771962757664446878132443888442543423691365792317366447712097421635672195182109595587287547470449141271552123909355087742190414677512573776985658117925319165264952799029083941843411873065586207023160550314740020707564392826573005180073919943600459134606557639120831818220268056657196849377482742966159762736010212279871199464172104165833835892495370918073533438222758137323029226871555419464663209844696163333472234738951945945753371694343814218101927991667647265512198609154611412028635922587273908764927111917800702257100767780418395079322583429163841864179360223543167423357254711714640489840231446982259474505157143471341778353724322300111899155138181004214527072835328388288264830318439189246435815737938122299505574587059054660069904869855610085223443228829586580755913327885258018234437088767142586684341250762921864581882774107500625012106206348400915360625148360253741302726202172314054850855412409951742698796349466220193699728006007306819119389849889972176368112690133277937400391551804940340145022473828140351692778209669658848543227124258362698045360348391000980465101726411510253097704380297864192781142693485596049964218172792168454338167135938412554413971421445992964786306130584190981070318519830518852308909419419260236789200294949637191420077034151355948863184317585087811301790783519624304137200810024668978453734734245764008656972386191538163738413595649414310766157093888051956265327764788326096190761014886562415330550560774962809500806187383209701059919637508663816156460227256421437836709338820574934150119166048697601592714123790608972808474216262411711859824951726639705875557980458872829124443824146278754251150454071373713306332649041944472317756706503222465048799681239466632699043767782873720170553756944555172634892047239076928584772734555653481036779436388983329077350740382543925228742766698515596841166455952333439204177085145720772642369050055425620354858391114249456909916599690103318000350194894056055653641814115444841979503061918513747402913723200417736299564501341611921914913885434745661950266896042276187982206169009633607194309996205665182765841427987724652771221124221607289665351811406898417566748837010464655459967049593302945468115945261077539229177083814212355564460245893804582969527920085953983993845212607409560203129410925146657775167218539756804054940528983476574729167389941436063285656128788485481970697000552399908273719808472403960330048996025377548363035239410360151897160677176525772706011421585071977098073707066582409150645916447546954947819140781911144578164884714235176548954107410737559396097816968774971581265763631881682629132446268973293828196687039560335283220575295997783802632435806911011611451685845925857844864994152966595239347996051318632410686117639996228082198235072871099219316027262642405887462506947527664329491395979522177740199479860456614386308917042122864030238815046660074002551114082672005591700579984404539929555652137530113661764945826191013082392132169274259062764129754263722190857090302959970361320482735687739252525917125104044720946591357002283954418899572203260098498594481552942473144162357838588624597589419356630804231894972532528807444343320888594085283909124107617927659611594298108587520013025968378134011953479349507304853307234189228827861691177736371649065513182259292745175485488017390221516092008419271855510331497598168475735696322462696967634021215788482467172233624784528205771890760821521800312542790329417037024704889316533165605984945093910696483966808162680010162725971899903855914169510604803708234867701961627388108932356698150931921555104340107653793234733036387403826436994941375577569722316304885948979743890588771828649580356436159993106547840095935765699164311173821880421309920415342398731608049682007829889328224330203330017188740124421692754230248526342613669484529532085848364091798849925151375214523954168435276298024657899405684432429240257229072661247005206962870537814790448764831246217216127430060289314129902525800230958222585328576457824665615951136895111278052433736131095761696138890768099345176378096663704666071438023428710750019480756776183983638634756817253091647923141766815553212706966316179337565747017445178209735022439311483774671553348046381679898934941119206213380341236449279147106495284357518750652221110189757763773237990188899591786560816596554038989193888299959893759069042481471379473073458834748591379105328036167970056110716400481561775607470648834405225255319992577610549685311210944953546416633853312886954574261157395861500717591506353310211229629302719223595929815991428271946361741512730578471474498756295468699326067634112478787610161718584723889825666785842659331589027180544123233001462564178037766944746788465665399520479111883960483036644674679621267778428001054813437614039216626535320806809716148160322576135021599715138237402109325382556344565819820430406971770353370209264740410162781233911622593194098144043680033273980062645900127302711441443740286852599193026005788464012767315017151349864871393994910059432636078760142605492906066119154606897119056540643938619199558272351656874529294231746394813527519363506093717382876553183487832688916251854510557549276403028677495566650017044818395116170113005888648377247153217733026506894159281260702848716929259833312872142249381997773283611745733654275966545753548963646466089232563813718515588836871569919749441730412184337629978196534926309200282567931037430129306710508748180999971006616524516693172051125705201728826349605393608595896343812001673226056623535719396397186666695868181820724713141675910205137788132506106375388292265810754946325596848337742726526660902268320576211473600404489188732787428767533824476369868824012649251553587318014086198758720148041751816084492016356915972091438013669293919165280273010656334781912338320271894620748778192764405111001422595965352446771182382733497471896413087573927505952219746887009966196636423788538050189109255604060379100049779261263623512799651101735021475310802401772282210023526964207344341324310517400860884904562277464756506685861179544454798586787764782779333218239225842056500933641549011832448956560136268099315090859150012154652284878079442662982331125982563554841382851853519074707763288102824563017376847922207123669663502294361262535792325451284955570697888345583737355863436745389673029417720753393089222268490914132674612482778487275905255571995905198973572361964859590541706055676193899103977855099153625091955954841066612081303322232005656432611566772013968875145277916799840698525421838869699774609504892690914717981631999409778439756154806227742294928835831905084678344655656372737767366203588873945345370759264442885321760527276834501408124188680101727533088241238835711522047667570234198208779495262621220285894751698263388740207355127059330927820362905856044833710890546412090099569231722174752712597323790426547737244006220821558814517488173053140283455824866022995670065191864574614262080618895796626393048762984834957805086029337988391367852045751913837703313232790082159268825241651160038067416159491838129353344749775462574812651592078447850782748818026360986200210043686602547506699621440107591352924714051870062512000972687153372430373696223149481080995041133483353987362925777034297784451780128053575303136264989216098461016317556703344313431184654053223747764018256560309405079988687432801621273080338240434172399316726299002778544972783284146680049285415965198675523054826192135435508361893190976352305556419573135609663384393514103196432650370055647139012679914945686922883676909636134914467283367062377907060473700201911420946192592007955041145130112140939634807386932329965054271775106274560099983373639169656715297995882670920461292679284581656006505199809877644669732464886838910336552611894562422750141492080165241932428565301954170495157516998908237445339503367469089559645939913788239354821408038820392210803245648231502989965966061532282580213290756817177074442541102560712240008946561322694076872747092448514606409906112909990165918137708523092654321815097133913350378279001912898503162456229766393630649253902727611612997229868673155955806383847905634225423919099779683025032953018915533564597702318762936491288237229481524508410881371564281860359205168583445769450893382053889600183468728973397160877063865051262719855583863688607935725595368381722898167178001863447351005281717985110496318809740224099438130734018933396674390116204453458332105742631012716778011046701247300744247833675520378029958973117772079075731923366639450580955507411226347099643635600677596275593786025842087078563233992836689804788227736315536282667032939931617057482768069687899579902402287103547637577232258390313121979765843528010001531548771285326912785368093544020821659151565575887170385652429826006899943914238681924198123339718827645014207843362569195129659385988174425554555473036480876567193365541053999629986298344024853070273808876054082215323760984111759577279134774562382897867447078227697097628335924597341320848594005963135088487301494369445823363978559497179570554310882975879203963107923626007153558547697149751646378627650825691895411967076538711224977995683372775290136128005284470543790430653737319269228307031161648618659626347582691416330431231142889542969212203312967547609472911314813570966906131528519829003395183406309020503243992603237433658999423432856865358592552722283227253007189370257259437299415217363478516120477985785729636214889866414288381905961182779100758685987681586037613308167611544446290557807924682071276696322455313446383221812632507309997311794627894279351356913849105285440815591993575602395784633784492981929001518084543000627929064612899287194190881896467790751834048206909994539828972045493390840379121183784938505633994129520601107020747882485972822570985241065587684823808048407842818553124075280968228815595696999128100087500162489922036112091783606992615299995181609858863565209072850279734621292351282699695298125572995700170507664524378693360410784639329087980292137517729999012521911504494714803244919662219019333847474715953348320614233509280067920996613817719325202440409932013793480919920686277549015965906608173305236669662272288950627359671919121059390552604342249827824090280111398620681018470624479047983907418395795170631373163812730735488647688810655624289241603221840507285591841207251522487116023506982500975263757762443935449957980111441918335526274404972458379024894342752496129198031770530000241501451923299467531373275749971721180297985391611905218683366955550333672221788908847562616293485386155644139953727573972210926818812982206404407563972245276846192957651614366285851845179484907812584783834567097689925347508619229068049390723851863772068699370113634490012463480784057780174787053126990137266058214130048214784470411756121566563166638650777316945068844915141040887133465491296254606324342779304848227163409643257266788818136885898908371749404675051506776519358602408276495151037474541577556148742547813823503105494962508902595423294814620445750823664072871867284215087683721706653018486944272243231018980333918782677877004226097470410582095548297408065734585189397218214636599779275250164389794178777172323854761623621253278264100249712977681282980547427247624763882099986271491615047535674264694540610493558202699231745123990269095487903219027316361600881131164914628218534903486622126229250794847326499269765137947773989110436231208636161564581880392405197482597203625684650631034131860797647378717427308383565322393690318501576613567568318121307194299468508358461113014425353025559789549995117269094048476157130336134359025373409281254963263837096894742729822705722608339301462969468897066428418909184871581729498048793758517755055514421233164925306604031655970330550711450386497541181002901009402307225518886922906976879680793174596841603739936386182867125807462284875440277961522657873674646467567034728333313058394900354990438556086382501681504303251630450768484253221759401460205580891040551615705494649455970332753261106909893919338981611983433796869488531222071244581429535277872711916247930420042978092728405308699509467427587780523630121728789173744017443149068006763818295807914647602789373752488465609380917508020603701780790188554562616811447595614803989985426806418560018928714828629271551079183357813020989686222509645716589544678775592986419731369064441442984651582783220616030967155352742625883460764664141608520877578850205340290362308914131856875116579865749726883434420444574814306817899306394081220806175976364862625164359870778464592347306010133027039619273959430206498626331395300129869475656822116354389779805036948151773142308005968435096450862979848922930541120297618586495346866731334584541618949684531821655485840664584695688680769283501534451847815052697668192465808634800938141336960267519456208053475816784285631162750052514313171739777389727913293036685541344318861277878137340697636659206829724378880174577211660286601261165137526473227104407612052110995670224031527235042654803838797262075967642282172950526548671411354564215154797928313012995009017905465356129921964351296025967989998652192416024883917686721300717865693761651496881424431156176753126909235661456000917346397909776620058172330117331072234780472238057395087063278999342956541891253731895786060178615521472952643407999671459222860319165644734166944614168072405329003377143348422818276988447508727292229488538454838169628654725503073905051033136943687835829158007983341984955516928870059210817720563689076873527300286287908214454331860604189498120897644269918344234679504276883112790399180213194066279275519340757058592656072952694200069945479370345193877276244224593670585465973037468880164548361722752402657294445382463598741180078833626339975661953318193039922264148664086804755536267006598941862864442340421777146558720672611138234334811524992808800953526694180437031761540781928236242362019966901730285800653726847900041163651454166376578948565752460154789943576290636579772908225071223525576107670615276513971468802007276669057796831927197099715797291660035824498611114073536701586524100129971820529887734236408433173652724289198013154387488534238727666074696904231927198515846206083018876782161611823425319740399592373875929847241678072804415968974996863679181428179324003347339396867796382298643214167684211139505762978320665297478031596095791478359143452755236928539420516167040477033953475310202994533474169087773198431083222858379113041140994094307968971692575064312736037687148043090072849054476616718248189509085445780258542390936623142471548079478728708714818800815712822374214614934657741601406767730389984186593795858870737274789111850165253894866756740297346693338317862703216134604264636462853803132996390659112004863120313095433414441440688951097472673743033430910470073119080245147277723463304368830327591680083162068827444085743571620403464523683985218882314039068981661265890750232806588445281808617690118609893584575807632090737666760914107363093153752809639312905845740066553628104926234619809733673893289953963511537325214946727426423157081295463397752477641863614985782327211390189468197808734191212364753391565051943074647501089909168056986242690550015334684431244476104537735708435872778786185910637422763051301436974143609822840095987112874486742179906609896192937620724033596168396298304450360947789817699445625167207020602014513142960485338900634604791202808118945946304573533379255846192725317596796050446831885406753794497984457591264927386078991053954010108418619034920837439285273142258117660742754716022107187401540397509691512930760994570303415042366968885654847229709551350551042730744796017205169985978264197507271252102347865067517414997380385709077679141046437839482969046883698119506321535229408093722726902079312334427534802486309719301979391228427200672190208626301529654911373059966712171000778937552438008785773151405441770021138958703532641763291683327483680958731838171229666736353287940204142055263930654176581508508758244483376813426326799417786163252009154849078074418940340243953435115897028194620951236251340897217898493483115438920827857157997759232391602617271805023798594002218146695437842777179182370551946530481870662138723768869349831915253088930874249409190567465916668280952991680516984283145700452101001040209500486858016542501051396761722773777029370038011501994358786741052011815235710647252046914043711604320328825058708140225624184234370353085714466702744286113688478484559822006333268684674549983264051667703047224304017913686804325709359413671474633964241517303059180007518885608177717504998708178003881162936866689433118082993984891123182823539859833692842153548909104152520702030282292096161141737842155015188936600034934001899217367187908864485876029551163211127310825858128525729136490095069820668116808290385098699542499855439738535683279706441189871067043124149632237320278080376090513830002550239110034008026829149487217037818739589238103169513806395930813162982742069770812109950974290582437831909391936545207032009578403481972248182150591956418420756280710045358158307877460896852230716797079846608573819755728728494415676235972336870802772110052951729663594028072013695558440886146208065754094407916532754455059787055130276859452923103053858096408676982304306874955689168213975775400805469507201825327862509254603322825422753839815478651809332867616072580462519702766596081062108329991177058690244267355676237034944496225325696040815248364496492088169587074826553846211932762343356623020947192011187257351314807230213169505831466263716729134597646836016274823271593743290837900628737453904241887167300138797543936335277227291450326156354254752017041756571197899488114814162916909927431076715615163311651013778411606398653823576774356195101511139608781816574497071284936899550079316873215293949006467266911042336620356993247764829546070161925369089505511593458084688310535021308232157400370062517507805396223838161919760522599193784410731048101979572206707141741302798771398409436312328787097825902285445757498376913552177627956414997380025034522110067557425088587923495154570622742037299734952253298023943082774359925653241124859937846022400015544416468599547412827637068155936977059342904589973772196154008506225423190672002968659116514548876323367565737737416595499946552900630703658804846806415738404833893237212009136280477915382999046992848508124699033270679493676131971753978880304674061875667906071187388388258276878399220468688916800921686070332260256635149888932508669525254793607018509772069236876095764194915413766376108449221050109033931142242056873169756600720704002467341226065990420136497462872376673128193808744807748706867316808671312313863994192694190728726051415491440185345482342171782128279684419988812666160811467390881460328860466416968126139425801522774070035987641454558968125065054948281576371669945716438308753167044205629124494894952376224151210061250298362956708192569933760036465106980891884604255898897902451268315350158072229647774152023834149485835468441736882328415204277078214178568498542173700785395404047234526754206590863186802034455146766523429430240297140142973183810227088873701337476764023742831763128683654738877035710252700738387132320486556727489026924927607977660338991105053037252149647562788032236694749558473279351847231486354983980840752817708893850149896259712600301116284595577853714503730305482269986830280087732193918616751548067095196678207392346131517698378287474982236057239008590417883483536662572462768336842206258945001806469666405268459613658670835344167578814043066454396754773454371979952611381316175891569316617833383545134079171165471867631053236015759464874233523165251287986294518240015685367982731859675850207730051028392502947104476451287765257698266945615642830007068778957969178676449046545113932085161824969153738396715613909831583077513328832443502880667739669610325119815403226349652185716269457767696534805267634231900941496653547454853575306945790281691962444180587686978154121530799041792627810779911934756219905924991185013381965375162461338738961585554580989625731912965148810526660668099989349025296408005108197322500501053779322473582216612774374410240463870476888563730351542836850346797119176476600065586000317700327307570302750560306820218667275940862089255557299344996874297405422467771610810007296007856141732850562169132689870882638561579822288377952813354928047469274712614527676182164217787271874645639541990003881298082549696824688910915326321016230755587968972581315264688496408064331257995081698110553064695826004352298106045217955112401545882548092677258404889194913300043533842907178370444158683619337562046429424918025670957032384584578866920375945722192902120419690423399612407326450238198387595247381917350376018932460359789871668021764610478977294007046092422482209339053972432166754876170272660800858191535893740700641438926223132832837843676300147230844729043864173020541511131552043237222854493557306428731585266099737168198454137115101074809394363355414653958127276092494925127469393101417175339470430991634861728657930117256120151182145072255565944243509050886350447498157854347516070601112900189096085968283478333451155188027691575619533332126876691110470288599501007740443494408254079508873264715651050547873360870961125579797614847938950594566444435240429353214231078424884657063769520446110042732817084112540863729245731638796243214216227584020583124733879709618772768308203342489515310149495865692101953135201528640440961201468656126032560508982250643302559514503971953507184427913814103277355840983347401655323995668353345312301404214621047508153763700008488094151403815640221697360479046424373084480596412532397586012248593850772152726632422518432712597244475800335126694700514066259322652008513270529308120159075646669757200577069515697623334113788257994850047245541400891790506446294162132219849538538687422702715736596977478780281748075927713137235732532391875242943948733627164375324129147572866703166390364767092013892459791885939250258163919206001745559242206349180616932275157952378941776603148513088376712971400875099700081704175157186718890860288301571478947337385481387974943710013594947859560390036290462740549094839999309563103895597444058236274713768761520062096751354239429901723928964228924101684577556279648866262960277548701493748653873920936340047947297987260703224551709606733834336597389017547983854709360345740592517864989014158438927683686393853415077451151791311835257915744161563901385502490892616286240620488957468921625577452487651058036442551935697197874796964377126434318323984812902658308780310010418203814617724967282314507826512047630601309903493058070760192267382938440297037103524062367036884260407102471405473614408693690486304240250805097981840884963330355522856083379273190827931878782003208775647018612298069299916749490753699254674797110958299205047967971909472842866048194173568510323031268634230350215942300230946675196882576474507459317855887464457147151704400072787967705492674238993430823217438256803304193904775361779004889517984202442922927402475351241687966147159442854381324757182243696314043922580797502568944844952887230484296021732155973608122638965138784450883503916005732744437662946515413603038409708883219995383521517040398533945494965422698134122906359061775596437023436833079490051194836482424073829929126659440307485377022653326556979132876313642559365656764877395719938454324465256138431665839437008645029613054443864552053571465651517817814242769377441939638887985161118299026046205143292183075051785457480832623158199229569207471727362656662670955437497066713359274511676756477807340647978349004170258400185882546186418183582217129145631745612665932724954795256032588055617994349529865048581970455866034615982653436434879103710377459322555285677647768107681781849337909509725939243689689917719594994454242113715207368212414261189869097635136979965810327230640620685649427075997010999066931703776538372635896533672410558284563218448610869771148715795104112621372214116883736354852895731567696440792971534769928258344792786878429287906916364239583290822122139742226344978318603598029309507927075979777627564419887275666903557410613754082912331474254788487984486997322565466799987082598051237788789562498466877055545272256772888346027535445901367513690875188051515354947185037064710460177395907553481127303279887071847118607683329757468985279663923019475177692280141752377779755937383665289336047167350338922125253193482154013628802579605107688227984545085508184203744182999148328154277955022307439687771121360643602799460770508319989983906142626601352628185094749846344851570333779810055835257602750074698519694216588068210982098409709246501533572922757529077614167805189856308428620494600015613078370160168114056206539502030663159115579184001502779375015946060528833630841419113919771328007165564698974613384321261586556135610404952959322330704730484975288078176015682382795297533982804949014366819935960100059881524904674015718808213839640465653526736346117779814538161950322325953073270428118310595122489302989128202211299886873248149129217138843380793190049140058194646957605767947514377765721395131929667594371814335063745844374006110274857723799672981559112888057352556689270045361753711711295787223939525603761171002790840370457961176817657862553260978202026009871218127856461470170439120503102148698316298333151883761435541793118684996073541318168829418964884124745883339829204955710061599857007869178151680835259750695162831819984531444227176427407671027184301488564097924192361479451326212955319122172301668917693826991492766743867092276120078430779593257666510079551627657670478563735386962563151193270258953820009341647191728370691244529874748184324346321593768825311620268026084942792989633467569202288405024964460578880040101198215599921090963579867834916960958064556052665249313469856106193951021115284956534769554974538463232974632876478779541579389201513810398761632537962890258399651036758895066523703376418327163992829816206902903999698150307296085512399932983666324907239847557082137218973875145813092447781405020959826186855070681940693553779855645603346624901043017836848414433359164059214687657965656192754545989867015663277801993580622078791623776649921003298855591025615592114162642407943777601684867514842836475389577835406247139527012614014034601026754640208032159696402967321312114454173643248309159310905670194177332674540648503805172710584036600324976787174107316286790137587556543024140209341989418863165591554656330534404470322614462409304971025785514917120024768795644637329382493377707100272268672500465165171325189313858240625759663134289935425690920232899447676463904466663965414589575203947972697225846550964375172229681318396467021429560445781858620389782892712893374025450738951999286036299605385557008191418352374725532863368885795529785476114531955529742579323296836574867589897833572921549984682649520661480556690948039028499570763216972448620994538691041132968374337724481594336621489260464323225575925207827690141882225073504944289125614143712363234320970903231524764888176162898494107496184206157880581635906459244591316317471404640779472845329347447062167470747081969064664509410422090425629753005943467794258035216270439679121133951978569932570699950755127517553556385529648466784300243361801137213000224143150570209683625231012624770769473816724575130178376644496009396226907619351273262210826605817286456393063815173368788523547391253312387879771549675921184127237941859570474491603000513130767300670961152450256697613365375670122339968936025429674411612592418908262010679174964133991501801957569182785991817054387333225084793448167845443482889213088607176992228892322615923136995120988474817111516519235562255565380420689939339377444594618678092787158158870219524588076067304337609769029539716085078352248728673387621362296050853581689488892289929441859123777880533178270162277049496667574607560566231813998906889361137214163670448304393576419546647364155619474573616851075775213200711138794770774013531174987966579408960371684013526536222832539286811205764877362609826844954406456655534781286514013620062388716547570470847780226974196623211748382305762275358523347291331292604701167147487842343690581124757068460870651168635529486569387953555709357202045318458911195078601902616038474094131132441784787118327979306544247986996596757808757236535068251887480292244972963663758610240410612292345813580666522120405916857841145771701586814943142229438619795223795294619185607279038218202856249103640174558633452681412501709822328212143338666084882529689072803547599360876754220586286947345080797917224346134197496299936724344468059394136348312502774876421702139406046905624489506157398160455316120567910964747521488668278778208938009545095070480823405838692795107145390981988547131302420027077350440194360592747733572950235438663504895356065478444777466177634022816218651351597176505228695284586223404555284910455751867702981902307924099274439631963905034505156437892424684594008113589318635340894019044777040446027282769438774184796287588897177848928205073367367704236842026158172361657276979453760721160847109132118923529900847348017929079192657139112256144062063063430738044604566014805321037732616447100219300462033705754647248649308425187793388174004197497944669276492549043223884909708055761304156084064177017720854981378888841438172736584402616761171289386193823899815933407853299510636434175729330534266817491837944950680820579481966254236902761030342153134999709930751656777057449385607549727476375088017895872549251842754420618165002619775915088254685276825486987447652745116880722409840282718761489770275864846694343699516591336651226233874745705919592321989988717083594627854547909968712520109175823119011932829571591359392694980706710539265829601416998100591854977769924104956776896876867850581780067314654136625554921940184575777506706775653861175080222434356618008494478251232983917810318172583054274294785077043805701022384452004616728292367474028814701132279652837010087135186908629617318702196753584376900126686495072664444959688726584790157949985320105478596154652091249389523721672280170456979062603659396265659235124666282556781782396983074693656362897590027329870841616590066913017841935038886057723651047629602010674398366811271203642687729262266243833613364811488926742061235821034848729516835234113383118323002441335634883710545809887519029899081901443163977086842782624741320556244735855352940112654985399067350620201441233661081177598086543652136336792264761412331289949199000366327817684257297482143101163666277948247709036598573450872637011070459719634060095158879732169075262386914523893277370319837238901893015566492303622736016493717816165044596014499233484418301660989883402636954842378448777146793239779199375998408929579932359568309921588955123279065389529934542364616345310083205295701450472970779474498486473919766357209225688168426501180968238282931363332560151792629032482774252400434561552027514718056928127730727038657361717205263562141670509161765533440869597585208329951889665996901475572434248538557546891536168823244656541490505863737870407086680990824458994884211968927279648286252614168412058029032766463023422733552023265398099317210649761881449072228092232594633345773578103686737412496011292555323805685380446435050293486645702627643220531819466006056463061211082941918804385779959322194466244527790958733970124230859350769623074136998844633286255831450735832722416913372237272233257580497149889064047861510523224777630977423677605740217099485414774132826646798315344481211105297417402457987352169508879452482988810932195237216590107682165826640398611722753771553529533564175868027781486372769845603988220422614397603036428618421562637458089643665695187516759446558245413869986847685686340427461403966468912174699247033083676075276816018385653936218393970751074719946716243689359014522782121263140116592024204382503367041996286403409538425107541819761464668351524029001276918136964889701811411145156751673949967176919714623167464129029908018277275259374250936796075143679052572385415625775244404340043983737397361271043833779772853565173276808942946648150368093960987120935615922085174019555632628795851380782905597689558120177700672498181251950087965063818913401263658703359209792326813608079254929229430473169310398699429160343923823493990418425330728517509728676472967665732617729815005432326269844625155434541574463091738297346546544088963637535852017820914896206292525006363369790065975815491901057646802586738163848352529472336256802430393426679181215833984331230136690938700099908015876797172615874507815214429220504243325174298249000144953806235302309515060661449031003708292473480247036807507723565551587795269733131071455307222438891853417330779022161221379537649209366386330335302698259150708053950096257021088325881120215689577456834754820195844795153589359225050684568218578688759978770005841875089024152478700126672782188281643628534423895560033511469316861068051582905118002787548611367116574386050671944561173209986973789425668651638929288131573420864754646937490916512595624214123681603257833515828520589353856891539840538742048033752654104875253994781686533313548406828481546614456583126217649968406909114462048120860498116074086609214846695694146368655640023274812018553518699907332104912155467195780487625233419131099532301718832035150068778071415305255514963735695686079250605596322603664019141392544567543686018802022402851969271209229719115065020592586651002936199230102611289398067643197332219979112533261724041714975130274083361880231720906562430997395368684449903930481246115960342356866248524875870648451883408867923767181240118580489000383200554348131711852714434135099218839538518084854666374342450461272450710739096705269823423541162703217093686168084866140844517664457756706956596502075535818041057014238513978618861136678499979957715196380030968387554942202931026723127814698713538242359532415870560278612330635436957950647449267846848067921029441713180851453119624511904388689311606967614665589081494624091033695190022808056811839562209203626954789851732241070386303296098495396502493950764051775598856283681221304170058566445645226576831202227253303631466240439510196403142816431271052812099507398646346045468806354244201432343998901036577968497858927663644046880323625479414220068299444963043492406770235058480687440213166814519558042889210845442992986501840992565233390717394772485550296478106989959005954124482570974373780373581287087588330255757496347955797426647009753060413858645542492687083136811578928086988392759477965746686240494618261674150747471891209931753755930344343522685066437927613371949076625291441942865978503142312172929084142600701698922654720128523831748720288854878902215714808471944444463889520986763513142856941406047721969243322460746283887694181403724620944981442480706283888376497856796601657906661962710259904448771018505788624838667256094274702581382216303421916820219450980280913526936816730989027854509113837170352264044520327930854320948093780743355010733196021886710477681879564847496538156028324216521521371954349807642392150429794081608219751327748916981128064252258433736205137952017785867865905868393667382322109770685631522119547281758012718405291550815567767525086021818082428965385003056303410561491891171777432548096341855182311779569287441445984938492594010312850911417812194674053892028239989100769964292888776060223373996598554283094672101796687348504663783807976193724277404839874593109371185801709432803327049141232054572414615785890435099700147055154184836197018772770375378283275783534844235645215960078067154668939367851740169170482723136962727618942488778497005751133349581251454618496933540121046638049864537809009505329992465570328065837917206834600006647534000074698552774292692861326834849124060803811038093176380330723677668378084111636521174750445814343417307429896906745338342576842845291746682590840551848119485447126475003552709907708480012983247458246453943604190313429389655209485487207185853667739439429503576289186383685749708385341563203984377192937139718598570650309122105561783694692690385712147721144809881527202279751047891466270871823049515360374676658646048254627670127768648342436774758074871250277855883821707033092466939827363384644612984012202357223174606094702519294115972719487273818866039368184161222578020536870802530797720517467834390869633844164513802728374962348404923563561137157851456807222880390306972503529962398714007143357564822369814364420949132836259200512534260171819551156900815681732908949074493110869927093107289316847497796968366939128241994149319333946170563249022870092448440144804213001871910587514934176554895432700867628486011793061751800066790906978925225929065717385481571872925048703920327800848313487350397632666268435657983213900779507272928312989645171264290327578317253384063530414551864618235089803881950928235875595175844179054069692235015427734753163919406700325375584812855130939617204360524008927793932164228399191684651870395409360704579263489400131231140467403399029938284956267981749050680973052641616737068196737405516497434882161352155731498814168325629158605256156042184166788862219275690358634858706797252418642328825351315879079948447714686726338305165262198217898599443950383569173835410135211319133495548359447823294014907933112110641630452374811291119912435732113781648655810593558882891476650732325054445540936859212274938564255548596327913019100825087191097824800925512974202760988204598283658380567377769420615778491169954459813082437870294369254959993701498373245638945137349118955137217570381124594154627011303836371974248040325016935995814686335149340244550120893311154990609019292395820875366695678258767355422484020870261136643826311589462396813444676062064730222999955374004709906303218951730712289909946000181423040238713662064298348941850457554130849426197571182483303708669919982131645812043710618513820059603588372144090153297737695916095520737847538605124593154639681701031773662853574715199248745895002454819705466591972364560688178770471788603626599772045043685007187066138865057819449294541104702870386724649733769303215337862881202306534314081659389784506701358712513062507006185099053939385230888833137710714254509907412630132480583260767372413313981506908005396445125204015258552821204354579363883533797177342102203811090271032793220902864759770317562324901437344925765654342883616266806027984602124609356352669795881059584554347677195671126100950338476224565277807932272749652437683420481605655914438918933805991975021477174969263726666647492097357429455412635392572660949344136249897843711510503128341094511117460175241126291472341437687310781959410843709587718419104922289446392394556924600141609241889837629560419467061937324419875016044054239451802602138904712940534630933096198801610281649403397185557212507274049972747440169775567592261680914920690622588504704230005984159035088546541039755719224156556753995555856321282545208813825609213895538624274195390239724087289919894025447640243377048048340448551505794639881193334721715090756045606745333454456394278825259498915118350910266560478948666144453833125703244341395166958574547386904732818924338410367140229403317131660028044723852155474444738516440376636289733612305321494694470916974941402799446806889002749709985568871567088618051087719317073269536549389791295053987483347265462169740408582475130361482944467782147393065017637507337612778994554025670126992451981620836497757990665201747433513666070485501518191685792994271472649353735835551696780257857344497588333222704564652069408052516431264783532749739789704511833484524494513899316632708930174983095986448060906730013447580392865809579752877241333456913578350764988981850170819089407112873653533727825945719261914794219180049487961135805117931199844632140609192737989685072723191931260311379294130354460560428736244875829434877310817400924142808024869307828320165553785708527859217765770877973079476887903324891863165211562863996796729563600803634040699238848907763281411225200131474013055361637225540757815942813513224197552974756038696364102054417523006613016176382210487459389125467291276083132207624985571315178995538384678776947377386139741643048728026209433541079439962623771419975752685252496564490427468264045974747673356296685801313979728064533994402276984083705056358267072917240290766765153479522413913429470705735891693563253794018453387105220903808343110040656648625417922240560786898789231826216645658803331005165674940494145188708419168388365222538651193563734581919711907842123114769973701657444850458553208096827619083936855579871194336141853569244012184780329041729762047397902404057882903068273139733811063374460356203265410606784133362530768481459648257832461513138651510509709091341775617268731417514422212124745351749413180662823000029859583488421318881390225895543849806133023792210059016893376040634282563736824808363083497796388313318837746608455957266816222576484597285931096979433121579737371849572272651797646501051760779677873849097991567738342552922252660044927561577210239615646040355759726999777140307497623532856157603852612202295332527255018431188890596288040074601734457212144873869090303266220020544161683964382161872589380237051792040073388268232627752856663143668832577705839539999447777995617362323739760099710484426563045289998507214246927621333093608478103962289390740882140766279937070500150480428720815687062293973183978262668087480691036253323425947446824298801485144972507803627330764221795731208850930018495564842210592241337593399339563860811769214936808329555793480618903272304112270001784155820048077650226591009286351258004106996802078315048428661056008873176599462886136228235699881553181021765198381152262015269278149580149103144400416290734230096701819292931091878546209345327681330397386519964072356286231753222200870997537877108171140794153472406229411635290429081143303875002435416566842791276429474309330962370806788607081183442849392828141692647072368857492651993100640737636229225631277356554716667639173975277758743661062134757410496877936412301953472804679314397232689400444377049914750344075399082068222002664026973735099610226639872205924896719734239211812537837572404290342344206703241953205861575974016442169494544312753242804067563246827836289995336762761662965255459525762695146582751022703502812883847412924700929678691136518162105348623242909704083705005113238930753848423228807066654103281619355169551278989683698170129858230767722673497508742097094759804827878462500369768592186811528064869690468173510557470552179888122526246246415086738668905556261353582077858799196954112924618833833011182567805991572389111875530643690074761097701578763026347682567755574248457113485531471663517148428423635607822649314000064152288041415830597895314941240561254723929181825559688086248782872363759080354517092697277510831563140951733095045103986571557510596788848137009330373246860606349583237163687374198949089072712867899106176613046391950757856076041456042013378617650237217268199812005151496815204999701225494289696394828433038977669358242962171778823515381342712573513757650235806762418444341954228293896066289658345923898532200210298206756449040440202369306252191733261485156049011732459920751780396822280930569844128776550988108118188652602273745404805937978614804770849819487857505231117615586021240285747996513036981228844759490712942865928943602602091558228607850779977631993976448026666337257701931205419918504916982664574010806595384804984963029168309116514494571350887482320710465408878956133154693035124967642461089308154283468899222254598010668764363148855551530954891209917427287841678036544953892655161573552125118184254068178615062231443356306451875448595027629277236504153748428316593060979072062234139459412618572483797232048339240478011380478402461521659556491003814398193931711211710031828844873951139725984324284983834389626552266466513421330708314643113135931843044560518365448684117396199762428684319713722647768307684938597266437848160244594345073785895034272293405392462877977387664115584367356373660810118024204578181121416933412094550205230932865813411426621273939747121042825179279876500216849444912612293931879224727723846064405366065869039943191997103192709210965832419936304557399247641738459219949316473730124842991508246559901594247949009121394338248799757764570099726330245189027891192785826785078517234344367607431422362271921668073658436673531907830755425738079231243792813346999042225038518958031526998668596812174650495052192375777299598252690547694469716762134127828439828245437907458642906611194142117011058252347567686266104143231209399338618489887287611111482625438456419155356755661572329748582244857724416177772843139278730441462025461450772446603632338680257414158087356837820873848020141342629389780487221930281135391872493081232063820285658084549596044087739635772575737470064297427732278762661380189829091395812770857140305302621850086823725719726786420468687714265448648230477501167376019229024980382433315467175956036840857867601871293465892273409358101378201214881502346136813224091101880433458777923898312098041064930179407061963628370312266925895747576596618461254403820864070419120793265636282459592653693339340362993075561145537096291793552645255640363430805240113955584701440360934223864264018314215634061587615633524913359656304354615344161329271167075166449913606748070199805986856525078114506172090137412560651635497247357649354456729204924507551308463030772490254624589171269661763819048244500401776341891161483618914584432414136129078736007732660295628076271685246330761418184909875508890197695159369600929076453039134150353588730098475981601671095905069288000099974474606461209022263369768080505679108882925469956344550333731509556164120060756333983214194911157164358350869940462903724089985062265613477469322727830652877254511334581205290627995616778651310458638482047267310395709253024111278428449308031627598418348282723357796870594276629637818462284839927148012205034715467270467382160372061960779598315464301020508419799237129414615213497627346705828298591974569472902617806551723953587777338152953993232613427691127011448202994959504675029190975523485987809418590855820498363283186067257766877203366477525282246514733335413236728630423869176812249653429590241905477031640777272637353235491776221161451573502108006737026450048003893006974138314209272105703431751606001464433078543996285937253382503464373521169830223865824386608438950751313519375779850637262892555338501566653436633375221393228702605269598460755713824863632755162539919908934693324974279307667360252111663062224819786222333366064691405028453324745084483191459622154522142447036108400875731434389811931478210394268699282308517694949452818809415340546028693490000655789332709640720725119861028588690629518477106935846840003964771707147593434740973068733660487939905361728413407465825021859566346686503376179649906366149002734206702188460002987907691465379861756277995521565896140511516891368082085272294676707596810268796678829129833248803027873246913082621956792329199761546788483472595941098877467246817116176641160490450574899893232769463037798520225423460792754595276361923567634165378025446240680659791647042027702007535281621781688626437667950485050937695221587640502519615843529009762733527088434617035665490783858600556550214823994761334776848025594598642170795553027923764996875630828513939051137939153716471736732360829484586573167029744053178616181066602336707124181792827718158022534400678784837748158944098489309710881008276900767811605429576973731755338481325166478141955859712082633547485505754228912584557733169594285440193333520537522412232444014074289480469586370547361073849147150488760334853967780840069564156375009003469466734583162522885258972322935569775788059564625460232060996078335271794563055035596817249752729158338218144992418939234293150453621006124546906248566513351255974449646876280087100846959722506728816493340821002049977344842228617445501341040652007275963361448879923511109134551296656590633681516227419556772322029926821004537359973371894189177439828382459196155161945926078526236585905595710022537393662838142905246099937827799037558127092765367397616611863578552849818921912281280245451262614539911257641661200173326469969196810975171040784892518381099965065730792285554828356647890848822327420672708686746400287786034932719114591185588313016721696006004636365668229358822977654066401024775583083695525738574117020021176447847208232299642332511013193834300722540634750799217850942457254370231203410460180651223438907413703476855770000608473562297075373507072501552873460206912274866830465103910943978477749821988790546654263622609742606215990795194361676286224770500670256862438556112953650458323940622233069133565341583220770450793835308667490111731887151232181602870510365173058200534572786624757173945581409155112122105296238985459590427024850789702490753126598011173010270169897649284793819987866287734810395685033172013015616188871266451793128807563199990285377236924365832326408481952050132303617009729687155923845129708875952928861063240680815519854123372644801291118313630190042665799281010568243830894769777434495360204553774647751121690787308290091753237159783765211601026136603383768577143832838093144742254724140410521478520747962799785197567649881689349410556345525931400322082517380522652380337367644080815182100579938531853391244111903091952062354200094545164183673455078747212730690567946744104026986032797494159170840982475021637827933294826181231354213262208334680441004549152796243587086012646298392790581072080706379095266404572681177255677466283916615697439840350946042046489945156167696773566351661019294501474544645975058434809704748846369087419908170327888411357354426918167814022972124720844460704263730367168886811800398049608267500874817648978049285035782910572287718777351331946347632632556812607262222089690448784026032032647714244852285974711506983660238126208543589920096198147754235732863241369651664733191550228707979755355039940526907895126090298131036151336226499606322777176717627674075303836636841623317715357153569105309023565922066952899055530377459047863309584228707301649513589172473747275117987916197284525324567076912643594006339634989278174467841887473596766659069389981052179857193950874999548180043370715725725577919273683757818142718670385657893929818924227204638004113812769056211920107012913870230639156992046801390007649094272569259953777089211380507987327634722758158961835530038013079473726305937197269142868400957198564868094863811137416146623095353477743933574686093805162399267141981412968192245428672695648750574831888565893800835292860401669851650176096865384139699559210327106766478736698614036720305611422325433776143754570730051218015243552257689861206337341481122490803954786477637723994547005980298547595226061212901270269805896900648946516421566640858923635514477617863452648754551973800805059936661872007526964946409324528923950626352065237778751642144972768414410728943327242787057078334491889610869775503702448905492756802611118438114394628757266817035266741053163310063132412169445686788495855899210313980521838536807666263651511330033285601045929477636855826839563517206774899890850705414451333952718235458024270249394986814888295343217185886381565890052470994043761427702110513128902515603056439274463831119608231100981945991966473194624642824121689784033463324412274615486617243808684750158104487505059827488258358299358442408894791956079926417447463630482276323167778713450479484119134546896191889557886504585011435299817486833880948408990007639386736042039736036466179198630072792324129718518493439345263961448063527257502091075404269227262961118694718741378299512783733574271990845729413565084752505536656633760434564570462204393449035538537658447407260592631852154576185250877693605203253424340670832946654366772808758103187861215217298740540804238771817764524554572950718177160165039408538930018594801999766098773586730445162125797530436753316307038557037612947537743625752638364458699049491780540980073579723130586363917059659031416721143705698577624279568447212718875136712596644096486414661327498950583782143925038941659393779308699661811020871750095850366786907226609595151679933227659677893478471817737472723332673087041208689056471239248937431605516656804858881362332320684326064664887931418394953291296162038821329818625797557172180465944865225088573183067980588341783020575542858906581839127668133899992364364864434241306779793087411605769725488227526825491709414664665124002581203400656620015036759973207728106799145603440489615547125044184343014573688313263781209529964500245633169816091210024848016954008907599225028608852019740498530837294265439917499845043536141977673989449982771717265976009527711644991975530359537328141638496904008602354142843613578197614353347472796917143361694805031622916369497467771211611144004291095523825332718534972862186733721324627661200681362416789433148324674644457370588209111084273337887061125678062740151355416861918481833058984645832009834068824495118599260113513597759994889956469175703727893748577191612506613310450355630829184003439277883704451653306474103852661537415484229363803364577048268597560053607702444870091516900705555880588176184872424946432573706727534953611798496117494948238116009628437486544655871441952570646603901505513441094963907151277839359396611246191964066707218489969921856266279639224423347801513442673839210544349692918385287024471185343044217701281022120034518379224656223159314941370620511192984449823987480014703293626597864607545521188433161520504291558620448291661861774478568390027002930342835941248094661238372314167539536883271252915610270827623871202830911276748691279918477940334588813318994462035732141973433112947032522756061750629670485577289148721022809962654597277057088479088344450472492716438774632794277779159689938728470568422031679956121191496549667825132583140840945420617599792716368708616344490006120012197434870031970349638963595986332696750878823600456513002519045362440395454434070125169953097425261401023945620311401758071459374852315230519298039377458154597961327650607730795550219593679186089279203612071802046981705142765290390915604412871398209152419136301242358396175592665715568145323553367901851032441589151138720208295107649309717134038847681954583521210029322587236882295713683186007433899758823493616271920030440894066099392793434570414845700808911874281915029356125260274909012033592080306844652871158400140271514303092248263830611604318651285999397347389226036637671862206382727099968808543290491211518350422657751163578824413695196238059644001187642497044401743731278946634778172316666586253049874743233589725413358769008925752204034892262761840214746426730568950773187930003826395680178241413840613436667060779880525933439436457918110735016319974616632063208497545215405347834518430960736635412880466950162507623012523946856332547856988945059012255041331700962246722905352944360986925195479071491095072193746879947075130820603768645058362583946307025857646732614469525054029489706076385168235912044790819008471333326008829782604455982103214264537843888888008348675907411024411305066123085545099942815930780757283283155878125423691235382234772853244963455947238984651597056822769078298664364679246865312596868935362482262076865771601708200885110287540930130004275314057119023682131052719581091789635883981186756131825745210602526869238162274669631124622895747870636084585733928578064321309113965642221086647775498144510239840028760073025894948358239477850287549020967654846370611806106197198091602675815032515288642921313153532973704104983149900011655960251640666130685410133349741212627407117897341299157128159784758425071743848006131936132998560425751302316287066613984435495787762189640338946727871357339344065519900573704591923603643143290753423529927350890798155396507270267398271737693232627262125211305181153586627136747241159544831961826506690533074540429236604128484846255435625169920759842608135461572228761379940294949433573911453321038769252240984011008550273693464024356721463924722566413697580899976855543266907934628906955512891120187935861771936774864653239295031345876661171931269634185840981313723302054891098824026965625114198640620612243381710531514038752890521851846546111466616721290656263107468951946178502238874189522796272380336305827254696959625054737014714782644572761581402216363614602191679452165750407093700247205359403498763915276123480328082362379284048755543579863027636026681114006923949429705638597926214376915118280447353148751790427597919522087394713935354241160850549214638300516683790647398411979377570526839890303312973742178654022621755042853850486193551451557196882594507247115914520819471608876421912869398074217720276211524500273768148883245093270982039887191387497419823883938242640441875432008052089480657390567614683008633625693161487152850624179193848151741712203917252477359855081841011555448903109971508142865960070771568084766842447016462291747215203153166692975648489923696162856527591703220385524208305877245448133589283641579307469684639649434907560122616085760570226332759239713204904241980038906889087513861603526013817510500226173313107863676087398910755862335467213236389735061143332992156371491899921709252010227725452405125770909464708900483998535632194020688836423430669395380852006810112464326312890149764385450865699820201699625890053119065370345272095153491111780516695380913220996781109883094358151946213394252215926417418391677039302835567108721282474786840664613801572624204726810598624200636915551477559298368965774255358994930037629647308165989717197333497206576302104343377163605027846573022673530166618344976136539362355941327746032223985903541340492579048699592673078647704116002674244280582647441443751713302620064407988054630299809543986480512384772760199366012219720142958418807239654954754363766245557708549311619138191153475444884809434588400958977692952140175537410965573953066026147665717304407916043043440703557942162400557344207274539581230033967207178578283054639335844645676120232618000598574437699285323830759540199056833221835889892206939112348519984811285973559997761731972006775972497278408557378308916663154953446705923983243014557659775597332416821443683526169712110655827947405830120445747093030862808672031118585427664362888596519195399570145928087378110315522498099340228916398472271577653363287521654956106951742739950688022531227870267257402156201968587597549593857220588152027467865476895523777929637729455663330328577679708239985742882303436660748392081278688370479083052728255799930609761161529400783950586584134720770656411371026939468302937460003328424521294632394958929612159366595135374002372148938913795701710032445320181951645320740525362278740999080355760150035354529743333080801117594948393266205561346910530072732376930741988900496373758914254680096654872822868511942362893196580282540481348271539211184397446770618121808614074278803552777057527244137518647823982516433242120953719896873716956454023032709696137240887608825530466235109884978333913332628209119093656857825231747098713502802563431108153167423190835151096996642772282729605886903066505756113334102631096326048309850329591947570283848099001083206788358894614988162938454928498200915079473709316385094829205290279008956251741357340347777373991651445166575783102360532022477321293283684565276459322530154193429868716759585599090069276525304203255312051741940826717087405526145277199509899162280035944053521781509935701507525037744943545310464963528261047040689000032909237428384632392613018825461846557140147837105661803781518376330379566960069440021215389681506946718695053859371564335641382838641675656916685167308009608738456563330249295666674160933473353582585875504669007910155318095334253497283895789381830740727705324339295504335328165505871194788034810624030228555061085126393223406435868687893968166218788133229603517355951496054903067400141002820197441102229487488510691888594012502372790977651777041094673365240914294632437291618951719658057335146644730279210602844592175974030351974876321554322616667034363059833373524786494126732430332282569383069063685630750839185943505231165618448663469675354149490085677781154977586748039502209068789041187823937346548595199403576715128206600751245743009082381387084018740597235273160660435334543420081547269902720759885674071328607983682197098366483431814137629485812889048489613736060807837208285880017014801138325311692870599636223664666204608414277264483551712531810075731535124908392734408223066271759310637709638713111970574453173302444766559533810592888938264135093516561581081361376073737209737146855157540344252456612089386218557329822211495852014817583765625944919937802100378745588831080339929415189660044708617565388435329155856167688876540927397102170590412541780901763355327979999441352374528097311524429414683879826223244634399829845715262438701814536786094093276101439137860073373127826028279397459102476338538193144393800596464346981810797382735161689615744490631394376975026117687571497484396410623468608997164144889425111757405668725818720797837591211328961193081822629542717037565828330490269841619018473526390968148903479978013473114529774266116639251899151156057500576639585952834883639150945352188395292827347694232472826157348249506846887169976155770864202617431362979965392434594919668850450364459231864029325655565167864329222697553140195793131642197281457252689631892201867414205091512293134762848318178311684947524938308711656347857846380604862588790061595433416694857102889582025898954017502947685529858194319194516064227541520352851845732544610774496561345346905194287732511227158532326550404918508250910914316168672484194864944110565031397867802724884718694439316793654101133188883877449546299013777808262078242570046724530975171946732848867949005661825878756948975024439097192274821825297981409566156704591228931132474018017373789290016724867199437401550574361942077461281614121006942086744492732093223077137609271255620755931833271133493299376535835217502408440618442977059465892189745214640956011305647777942298736608315118141508041758164186979891586624659576839920269669856422212495554459366655112405631253918910054771016460786697862195104622687954422084332965421350795853841006516881877338317705043907128447545024586559021028433688552118473158237637721453191891603368177323342532238541209067666846012892189221128914027316749676987289090127716543632595207840113414428116760774275663817840052050961224467661297773878471853209320962894101152097101658318527328794977933602122392547827494471247317388123215072297915412743766748229698947932496791059452341911440995759227261908564816301780713676626342882866300635279364946526479969044962178062973690037222331576269444766044699547797170591211266624622314497873093033835467014238051760294532524886574313431365000661860134349824667651600724379537537564256844954852609529026415304313758300153974337372628415242758171071282523473649448012657315900502308759400099038142390452640325526834273606576949525767249860431787259337632687079019395300450127891068678547997723478265030554413573566756836796800842100193012533388439248209141651420849811345066328401156443759367139400115610193382906778632961646452631529614483517028791808156450660206246359849211369144832239756028210637031132827314499148238359061158981671136836785788181234707359554234696638773907557100745704999469228280053032002738306529462252813396111474077868381369691635488324407639092658627038579158841172809366379411159601150814228547967939321825832465726246547879864890192839881227895713628198635840061881432414498301108176396803291109270329432474819023850376422384056770350170340705706596223539423691748401295031191560120220396118329272916207517290500359569367707951680445479682482254319337470914881220685535543682940575740189946549579117310884925471348320879099426942023016040871814010299052111380637725271388336001655029286380552321625212033845540764206149566969325088527675898853373912024029079424981029201700908188924904665635778044402528363832460343694355440435690568624032112913496214877651868228156284407855573596638313408757848182049881286428860137405118351255046194072397305222349947483651509567207849298906249319230748032986668709509681325302352967107791611059112218755317289932259127026355214441310261466749571556764707243718663129525768971709060859346401336326507669429015455204175022183583305017383376172802012726181701444694482698174214392418690406941372784658504500626194343458341362553224392193611593229630480904886634883004859565623059510298790232407852130825058976894779465367328576470201561455954375504738582454464159094257771945999275652435554703440602007389602892705391258399199467561638459231339241998359288317223192333352777580561736150611477523232322840783261657833564242435099105728124007151332691963939082854463160061474871346528479568573508818859807844808358048483649640991669949014456839805483299184112379935984336128064220879726504348215796994769587985546747281874236091078696015923793799656264686545188413083573864505743265426231172811771419635059882177580968411625344693661608373988077559358832481460728729937937267376114196257300302799415577120459681244052973264535904082872064015116334914905245127327434688958514052427126549900025201503508908010910179907295089047130970922525184822041774384553814141495649794450046727001126492670726966536769289820545993712374063326171780535589076421908293405068957866297399871588708366726701682299186018551589531891467329941943255373837069368208685404348517063954426395091091929225376989745159201553441048868043677242939963337631331132729835985431263781188944170416171917150507747862579878622550489671408257883216973317636847191720466487542352361100093504342650439034572483581789839653326370952422006554393921461402614237350158077350611034465798021292995289011673028118027121310133133678691983305714933409155624925850977914974254808049823595903529852114149687943663959850222777395195970520922004865962028121069168876431763895529611791284197791489931152274357549098239046834789092780655235524416809155165902124847931905421603277024708256652551125801532929833814740623040972593588154909147886924015205271596322261839833381369635018229451787326890791036793123450598384553689697876222224760033047123522155495304094675495947670313229983335126437809000276033729513430174038378994639785359736787431824676099636829900286822953057264025534894634301537044705676566844417985447035340415708697029502850535006144347138539447276414802018034981135961586776104153618518784352095852142916837838904069333560250741566134631213750332676846622546234821255612498225005658973653265764609204746806929173728284386263953771828270978029601203640052258037165701617423101553200191382278033959232832102603635120336422743303667337347066677538664621100411418590257599696646438641932318866238594982580783177906492049108862223170918919056973687664412545647334543294135634066860910539911157409580182920913288304430987401895897406342311762971544645066655478963388010969324696875094363757261557560614682405258693213556701209699174791541060594167394747611625164677769517150051216009079581781695276185054813966248214900998622275423466154639525766570952282360379802293173394435419722580753838738752629733594337587958669926599695152663600347071965103414921286959772203762918036951006335793722893050503558310882276991977943637702583586850469178488871968139671719632583219471446313448856294482392528181066088828131319899041447627588346297591130154972594802755928091301245533377339428133731529014780685978427188349784866665878729945409497892921085589987786179560415418376793209160812942260405426049255666916031702209574279716577234880655505709092269706635711722737908407522158409013291754973234297773928548826834574641525005121654383245431947589476936087615021662609684483059853558802002067771314502124484096005996392451423688731212758515268333802768180916247034918731827638986502893022146989214969531812403315761011963732349922277754038732186668152673236849807631082067367892604773789627122643502763492657732758321635434701073232361768161332309610815834633738412095825988921865210904444856577539122277899046439925810589312047557827255785563770902980693641471166526272361013770722140020361488882153935783213112617025579451956733786496174144840503485447782483985852604830027648545364779510064210230741684379407970950067723622178033942150621496555839378703551354949061955617868482732850374377891894192593704297710982155368943411732855227556777054837089856541113756349487869816637933366577194395904700609845217333774482682060493539997493703778129555082407562502523928639555910430524481131926267638379510311244987193342076877955347603903849392469287245399330153594967255703956053237463909684286344927087733849535176240809666712958236600584761393588707731931608308220363113443991339781659868047465034706337382037629606121646179099380376429853502458360052320589397141085816643553346963333806924097685831414677458977046586767520088846765066391144029653422894741703104024907560543620237590076040046214230259404915168943361743323147186069352588517135098462216717798173379479506051862983017682041172213798631620137563751348780887098593806378223404106190175464229314049280001605209373698887556044267611840700025635550113165957458619844955548434089047052661103089711699744158095287969869228197147458240688992505031018025140046943298023372514784847548038487697272117345395441756288995073214850229158872816836371654510687408609106484435277559855035973973575652070488459491180031957485632839749764740131205586215550425601489813387752226055242349473088080591079356668416514936563243571003352032279609449023886918842363170673311193937408663117255041612729204109113906446426968140246739801421465219150754822364137750786930397286284282174241081707888695880954369923406954542412867164507303136005353161369612996856737817618081689054380038799257782285458052249926240258293239034148033194075357716560665218219456985741745605118826546018450939183116479283750117512705407471606844011989342176357546705932922105895956697169227570751318070433978192298535387634879832364936377996006937434127459990106660952200318676686381389303126145156817074283905130205252368218376957226606725810658036829098990038792817788857463027133232823262289341813300800531353310352550568422704852817382642742354696636480341283791528437871054737604298423179249130774691733268855382626297834664665800047001973293078890726272105392949756143896258762736374728288069871959232973784188282034168470403474041029093814684028085745141492496665778529479463041494377379527436123636984662448347588692568311218719648328287389124009148988710552786243465551801759825927987783809892768293489893699551253580155277972017167448542821831231203776156611878501005975176510019744847437415586361276077730578369251761909816648938386077140191642767317282220031814344509607231743060303455740219976422962205904778964143558085863705451712164668958903882661945197381986325273371629109564948277242876318422442240805369689048070409624831262561712712823570821661434362281190413197355613420349331780452143708040597691470507433514637053181612137964983188420956599467775719272110088647621184503148116375284104542304525609456834448150863812412993959289242203364241171150066767748675156390123409241130093300262334665416568285299945483315306187055934622787460685376409542017447062922231633794979073356651822932290254359559759102160184910446317367410135151425862386693937717172238158902243846792322993299155473256641248964320788199898967127321296972604960192837249758443637248862447749246682319060395653925008911070112014356522079155993363578423571513230619376134116676284117016808727718347031631409989181873032175751758080025571420456433516657734316713980203692693877336989461379510790500417046779611607143615171077340503998720687789723127041085235284633393154210729350946067996126624880863648198520313410858796298123824619313209932586251081573489788863523129977172315663857781749677078231721295655684532925422142582939411558136811766544857764473744597457374552831340018455624543566481655956870908446614141610538620244815390727306653133922854032592133625294162039305970486664375232042854918223325039386758547892726699013044741077116393623820974904587637439949935034787943458813796131268940136991460074942587304309576633812734906425106800692504548607721829998271680982277742992893910396836517921197503464679869021406163394678276213618630563660821971869141237149371679262193497457944743265219152033141671750924669320786475319216402266350117743489997946015332598164701893259598026221436741261534583737511660471519042100680896849980727867536936229059854924503067863856629238469580593134732773473445377481398999710167332872799057423282212252169456192979275578044183867728659854785190491313892262983987385856402180870846615338658592443953212708768093570007081125512021002714698962928492077760070363390615937705506080319228947848414232871675858660737341821070823029594122384128278160580677423941071870529785982860719522073768740784342368256041505127124465296242126474825635025188024137015206226347875089662477975628555704317738900094159891377969341179823560415543310730854337121216461368444135979122765227918110672628438280471409148807012380125610042669082320864540129663557050653064915921655118755473974123922701100384882307528797572418600122364683953382504814024602409481520565539828808382485507632904022982730621754862008248654269118131284497690058088287092894584898886127083820415038322520002120608617283085920884054542996150697678106444867007898420901874513230594559469936834030318566272642395130894222772015228691237097784931672842715991710669305458794136659182272359705051272528487533814938164540578824026600345713134209753402755818801093557513084137479555538050655627518907576459609125635963973957576525963153374017068919048465018581353521690885624778480457857724234733877587833941225699228428435469462802713660750355283804903356469016859961631054212120896461556277467472361243360624538270924565403123236473962654571219536385400266760812775837045741750595069872844397625545136482982491780267269855818730662040221741051113573443948874959795345854958561627207958698059625060016952137597150169215978392547862613993734444869895142237490134614384770008001576794308478724047182122995014412540590792252147821152074419455967548016285071469954272819445165544067665852944574900379303260027193115225586134820596101507840533710693393221847212155405550922570695312500963027572943035334702492963180550069992757700528532726872886570831697336092268329574968122661343811885971885269817287642009684502638422831335021748628466168241590829771291609657036378893544873117166855247329478469226640771115476535432617519422780780809656207618633265812960676038554171365981443775733646344600292001651752611643325099267100551478911136031656076558917879186818714680368638377627653572461426233022317920029754139095959487200923129199928395670444034981822869840190992625732930430009747324726231085857757731325065570631774834508918307668809529451324622099016925723150084077736172598919948205804930438361097233435930905239487335874534340342097561418520741515370024999240659288964807310239668239624175634663333363032470066461729019892649408732425010877737972055449039953173629256935290871384226309746544258012582011268308371798669030336625118785689975427804100317995933906110849395858920425063889531441936398180043207123584470685816598788599242129476774572728910967182703654926089680628497559010146898299315892655826997752074501732081190608024533393999727591354120838942813370017642288231915591776039864753826753058268576509014626965748013033473293313722565342634314652378546626149864178236870377946670958306554848507263104736623124642090432868261369345033770479415323118179214464433932728295949473403956499715759845879158077167414036927687999135378411200499395311936536568707406069166562856033484221333930753735022563512348816019524088963937587039934761370307213003565531622213882272747872815661392033541900190562550404540340555688013461362331772798226521890132978053429520804868254639776059364726283342819652074163860836887753366826096556745949464528942424774711207841131207183794301735804648702225323435773709042535481146529401705093081927338892953663944839411086810838157530117737982366953543902869862492843251900955352745273456960222453019785167989275173245376975904951064878548617809566754760061878418884820543315030360867036782652310709112672084393646991358533984264893017215959814781388599474284532409539149886373646393226280989418495584080313457435289212021126179083252362744974188123540153737667129002661684478904560272171459193834505397312784691462553768183635845544374109427808744538169340666916311896689239897929727176576322724337986904828738004006691306256663509264401246855857957020794703026350391598578372281071243739639853423897553113103818340381584608731501326398605093653304973991345775855072166206591552593361433552219455971607539560140111217881559805672960931762026390242808641893122644454890698684602104119695283431526302548878680087424865823721192185715482708287717285466896364222796700392637974862849000622180097037294032432964789494188955689518789381099622155735991811405604670829040162714840290066939582420446600796364213138537391717808385110891341964272262347321044611530152861293505420022103605394672118775714590394840130107607253975348037947032573173010076822659606784330354531956093980725335486380891315143444958973084330980118143342526942778398468792793985075898134884381115324701640347259124165869189277332313273042962554026961455535658161730468496996240283358975381623015638805895671297010985925653020418068103393587785894942037086366247049489872084307827948393020734101747247300975366385414513284336204335659657444435536142524110431942406971305368625026105196746926685468741099968683770479379118549205723121179571154709747829393484130119053424104939241850225922252406613879965216848503532203316599621925613899774802291436560814384014335594764327302147614259634756618842516933574494072122976213517393634480788810879804580023127051112415506767736388210137520074446244097278414500619294036533778014143478758589666660838494386932457148679968782410543874094199089923500522626687846779116066015598537555316690043066934401473048089011732773313298909404324974815480736176570304227688505093874938014089014514718614978712344767846159326468076107085056516340381478364228155823883751964033421382338566546611202128061956720243154400006877806893725857253062077958679433515675268397329317091085776640122891553789852788565215093801310003864926028281139296370557466430500781700482654691735616498326677284120388270196928651077470145748412633762191522468031810859936981363381493079788125716187448744185565308917219992788239969177154442030675358278609143923962045218612113559061626306183259175861600705431378391831830900998387030700698449840880215415837465520440081556075928256899231553248519814017546582904083665838063443425519950117747603644006519469868280002498619614129509880412883716098756739404930041872639296988968987428743150532155448166499864880154018466899228670454069226782791260709592905679068068604594051975935069465496443514463495766202388878556880234228204287075245613867887151142277091064411438109882823695934489554145902774401409574321104373240759156410068160436330153213495139699557233850028547703624849751434718833354088166276526920813888172118053545149299689984944191176410362888460303501496195029715371913634261756141111097282438659744547498596241696544892920844422490480893938573605283935492908802563954658293591818215904980799192610640444435170120544160996477900127409324517220533362688513850204912130967395199353916312526891661600248765492605788033260318921463689830963205896993127428944667681959737313917247707807648170763493076312510600974516782867875778444938946115466571929725090037566940725484271985594091259716417346522921127040274270356189659521812810565880453014537411870092741335764017940135730888070121942104347817028519767493254910510131191591556409450990016702009787315583406127507686983208090516759822968305550752619919772785312159936923002094231025186635442238828282114654987356751625289832432941073341770492170554695658267048770882478000836759707585522953865262429666678378211024170291922994649496124188792666435113156999242751717129937836911629550825301764359710990034547017672657474302847952347358286629036176405093834247693560694407865994997889478219247395951789463033212430401593954761585085328634753115219645961177279803697251121433244940583130792000439378786681153633803839662411990420215339541582864967217436975545839864484971004432501337748928847691310215595052192403204194760464459278085075691804753021288871314934534979007583376395526934701057490544784776088810526207609930430262291364410618008933843653824582654667368730333915886245051660221667971488024159769067260759144019472703309834131825675409968711353786809372066489734820833001209938311306934259232655748391396513162324245707448797962742437126704999760732081455887339192539267598203753199088451633171269854993936285421712898511233439025520143472374041403605773498397350779811310805868112757560380796753473364722185104587769549182644117913512268764690941725290228217480686524518796570538929181199036989977637332869689633431659125158583865437669654740537398057838352026948876875461855220689641100475522376885145867289381668900314488636770888776841553691988071116409059299693083158609104019477688610170659273197455995896112740244991098525376113631158657410700738401131672245088351645453067168595397618324567348174551492333903142284743690221879995892176880081980922560594364068433126386581510544882792694761776192438231374767503638306720718687930640258779437776324355794161603042285350380086815653062475122432910463905009512449965833578417269286222475551099915050914239002426189368675811167255359329295893604893226761435072503727582215431279370546184037631490839064063859704687555126187667421030127071891998632895609747519625744006168974604263882146895777101661442021603365053023425721624336164948549680730092005827374091558691587328735676709292801796192125094790942565347881872221833894467154353839953926378385215700092070405152803409994396011135759874544851588106891768655635507365662656776801098899718514513305480466979000806485587869499290442000493096266654330205188493073790386822576494089654380931867011081674044290611021902154382522820025439832382748158600362426524266057323129703787330438777631398502245263452416672572120020858600009908324953267864009075433646336595985516417023166246259835083333513963743472463059100076347925146953542280349017624407043673227161191840481888203566581751992437115482660550708419483630746203438684337418933533082954753555149747467493484970901618694410540492441242998612297170260748337309864411208005567424701912999984702579980791085413145484967628327042332871747273599243429941726801299754902671217058365547701723451085712654032729976808095420695116152328012317799808940395540111636951139776075439171870914201490980970623697683287884669256595360430626962639571761634813194938936235489308140109667738543745174838645803614207418642142265487022279854414897607809339033639689231846481553533773817359684159726463778845351833387058677434180932268737774525314024582711291786214920360226060539852763405423567674992660020448123219277582379600814956439239406332632287439451747308232650084124308895020812395429505915196644493095013686497106170047786779436372410087850789469052598069363479424910642321677962234440876358408703227238200985239066951855616708016107003052544317924273689444360411698966891425296973485940207497106604709333851476058103598334280113458646845959708148631215939935943585660066023146655800282577959055484524155834381320961929016803568157311495756126056837421694656440531278906577885721057405591544601282230246171433148933843068158070779740662731415568284804747529647850689289371770357234248801147648150354866984977983047846449836160612825018655368161465815258262508975419068382536170323394744364506677197429777144264067141369350369223263793822569447130262513319079895689131759977007979604717072377439311906546465774214530775601376589864511737834252588589779157376282608556829361103104975690075799217760001899155097832496320946764872505963606676124582306808099783304558070042362022108465525549530499015722074179482657505975581766323838622650235073192980363524874650193992603118707270231710551910789749336182474340503364945445933519190982805854283262229386989176049764266982239382113198237094571403602106272578654670182757226836623777943756591331089297941564807783855153055246887473611558308354801252068294151915907849291019995368532165513958836935304295854564725463228861823706659834227132121911958939129087630685547692409569489122243808160519852344508156817709467527742881866173865959730146869377258309978356189273013719632939078994845529660989189790626534357088563283137624556708072387852276856381542347073875795228239860468746787198241979473861663549265168868740640561474967346034665317753248477980191283149119425774950931487303952255863104499571660949472290654680962623686326444241352186693735093150576727307520187260720628030630763541864944714546546105951785159543364724512489823287744351086947434976030920356206913106201982913249857961194545648121958901576936769205218984118458853302565061863811915162995348129411614071148583826885746431874147391250172416991123656523679115820772186544602552559748119257656149797670732207039515935989419399771389133028119206123865760097724384906642091236446501743251299316663120686283189216939215219870343354367653903957610058885591498926883683988419121808797639030586251172175069320440541530036377053758797743082550782949355531233457271674813788957931022685864005398792803076657280561124319692176067724545401045019834367460108027641885714653235560466998925796322959199695185729777230490274098906998251582140203934694678854878820205639210110473586628013391600182242283858378180581571166807863941989152183710697753164272989354442172484437109728700584230422151632901133340854555471633542169255559872050996801643653003003128444507628955940154151426160398484021595826303374599575241455021369647398693022617494954608609849540523084270258589093936681087230834951964657096704268318614168161553119664857176964188437639309102693054588758194272862441915119738445891263853435211112608719971881019863043483081650813290785506437847516876559648044348875508038750158317580107161417010998288367402149433046780345426857508502651077123830377813227636986920578658587618559611107471067198202147220697526007535414709088223575919262248503513013632155162360878096402609700696520374669135034088154908584926717694552681275843332335907688804929740209158360405048443899972874363565137905790306236439005593920527101896735274972272156680122188288729936021662059639166555674397157240935293542179188036894507827944950159220828806079236601643767661067936900305617642655308274049603368482226216284625700803448351270451160497218763438256765983284973018565776712008605492038717752492972548616085956622645526260193805294991127888608865501344559223717412997418049838753732174807210522278210415532179974501995041476292449322347788834310827738267570689416149370553865758076631888460438512240815585430902062679958518567297844799774772027860970537770366332145285902810602160898209831922455876375142367655427318606769787239924373775818103858595420142358402621503287751382584010052077553653290382412286388466715856931974695182662007213488164574014117442269160041828706126065208212205697280726754217277608374984547766043175564010561756680475370496393403582713530349130174782471584233114610228061102935311430323856723225518243983502483452070990129508641297596583886368772059421183207144918099108222011802609504604367643378776997704695329993325304849829096092894756151040015011950365346168091066592052736506615620949687883945638060894561457515888331449368414669563276436718202051769376529517014856899388986168894741311679092123743625032765398566669701948861942532067651256837079810812902535111059660928215897953485322410015305153220342404993737415780937650295400563821567131819070465062206882261640354320279476099545129877161674076745848455586744541943233960316864305674208158688696017360931923813151258375994447215400605394927192684183799371111219551531592179296315667065547879223561359806440294995913386142567803688282237822161925527560907656470480431056694102981703210658935934994935204528954845601322180379186359474625828680158190514794519691539512855197168983855766286950836003047225041561103004066732131311205281895085527062327715923565126295910597649630000059476927545054657975418943251013362935127157685240181764496334356348864701977121124630172770998743002329488308461969610529704775628126050556152102947605626002104265985497017227404785400524276823895147121639384439295669402823594495573543794060684601553431102170813587770441704175656029762407220045418693547748332220867281109774022578965837711963997892159148413067857372033531298809675041721882624870388773829178657937822249097105465001896000325251877767562877546957579180372491550857001655353147762790927544365273790133652097665055718326098641853239715668195052398305831131045897124102037397312954375629498774231407406789529811315045240454982760090671713454994992674900688392592893527472022604761969293987851022828419651299407728609070131877713380680795893814232713561414173649107066340831887661963346501894620855174211542947719363865774268686544204007209382973805134550485404717500054973010806544953251286881439113432566998889567383174631808506807150523315132160053471159724043375669125194405748295310461508578350707723519099273718457711163286091690506693691138538297895665208249280838890480967852887367566258293542782683517821565960473262680751360451486320046947010265149990820261826597747389083651239448284248137645696850726126190234266793656928269495903252252697216225712014014336464192695462130633103056894083865957717266580071618681372107803348018883423972950140393129249593308209764680491671064790188194302970231830857940189336089119741084997960080344629164183696058294652176783323712293559486168094467670993041994985854250146185411566601836795437313398113041171171578856709386515597083039388456652309117439553899353225012328217282888347881856438411704278351083656559356433230617834513628062200793014466252170569802140443436310431795220617619531077110196335060979039951589419801989880316467229155875863427578018362198295091259690975670864522043612011325522603395267697021864073169875979106729852887541471769751088819548481084231980895293831816110088265842353507886680407521702115341770279519905353755142800310650660349535466939464566993802115317089226868404387938012334585460368027779492977330139413017451804899612790790341740004081042441898271401149799622067242939374636212044341143286731667930430295976952229626004164573546635527287158449596498387986633921795622743281320601579722363234256740889791394902491558512601744082257784234808755890035898183992460086024999917459209019361716581284278835332706699070319393640725813941089357223545745118638895063807453777518785625205905341816414994680959291374213035899830836382098204535420166140106411074025494878870708705791691065009200661427688746657535603198457540643555293853421717878327329982872386038138464762513755130265589604116771502988596712492963597636716483133458900549519833192745740967385312523433757701391286667008639789413264666618338488944408935850033814386107554224093555516335012838434097388693469414196324178278222915682172519273848093599026479234548579470213262255192495597626099470149230511340920578970356269362774689243575706237533825432941339197201182268447635621734452540991314663994425181007426321790687700187292766713807798405607397163819280195046295485472343701732736117540181297225074415933741823791711766908570472192326567322616914541033025927796676233421271891869268313640688920703630316555280557382023021568014453539754317910646757094948357421467849649235892859575540728655207897240776099968941393683961823042003227733728918756056086341979469276454153874091924421050569419036520197534377874736936056589245909104257521559180993415917111209690270912950822893610897420479035099344502665934401009974721011672391973585495887806667779201118529007361539876336790838478171617864526602066235855909521609759262214814721744802404229508916359251341906370701681836190032357391610495441910791163534367514071600324505153546989674561474036557551464320231730161226241924895985166117962599289122177158133204877197668646096497585757457522646289400391601909246354823165359661875283315467484864312329866578146131875499036500437635994314035782563416076509207055958529514799107914237801668606335393642685109585549684507576287236983244627864111388342737815586755553952975608436081602540821438488757126897300604404956652750406877217931998310831777293815991647900564548631224145467901029618556673798585348064253500163758539250379780005161417445930905739401170487174314512623225645631211612040139001758320027826887660006587506734886283705335136505802329539566864053974208095189080614619981112314989980222036229290569519790443819780089447650234488102410661251943724011059520107208558181014135441654407426808880093190115908109192352931735288912283835206226014620929807267351433602436481865968776178482098422971837701834459194181198118825130211047852314091684725103357956942763259102761843209549137789846757895726497784340973074203213091146449647402205827075358388757601113646217593903890386982516982438837493417395979139329141591937703122318582058519393639969073820080987567680080943136181458830711821072697213977740415077664747025877635010826612259067978942870084118352577649136836568065102947997399973461887576568278908387130908321706061125448200709940101110543620227120006890150556290083143617903173984540059644452394753084558514757545626182979321836551020131447354570823572431334039950570217439278873392680886093579363155768207125937391110408238776152412479980779468953556183750627085818600373121333056759135748601747262508166126108062046172600191704455125452131540979220150743571147556369375734529897308639523890293956904734336568493440963078771465452831212033346277877629004522046802604678351615849838651980792696437831883769341410016894528608380323474678478637121647793559063212581308944043999017360091218754251818987838805271220252653993778135783552346049292458179739804021739763357557306416261764235824038373318827630195180527408486855100417748825359695963036796293168088259728565560115073529221903280718024875671074412811877095861529580828862245361274689295189883718913775356082524423889629822537799025690124237085268230419523013391576786640957465132595930672348503900896406117336068868821484021710914908607585607621937019957612404299978947988367895071345391302725711128421261371668563964875418386030327013139037647019352803546151561844352743847276534262886133780727663091562373610097461956828537420373740166415255057788857226753725690673173712046763049521246574522653114917848115002598543325851909162531241237784543977288100703413772841055012891570330618032557169970956482100726207029414074951865566957591734930890261437841063181787486025989063276145491607752787725937458392627466330905119225370588378284973754302267725102242565394806489299634196721324782418245035510055241266023117471566280933318064650082486047157198694269165541185302328923436303613588749391736113438973133831662944229747696302031358100239999072862626570917997763641183321568064294218273607490940204794728870018760727765806177445516289720052443872103640206595609405045681037786001789125572158817742858802950425371528753943016310253851710412261143888809310119179011526935065723323992626725141043453032195853594683113401312647995279114637456443506093292994107043284118454376542269414476168998141052252833784474722501567414396667568904567174403016060323855900238910877047198145560154767516348944769876688340250869432886832848533879743508414859090554938443107342755601113611433427788323243880661410456186256953890144043216525746864738805079287862475166679582836425876841496282792396443845915768693050638179462017144387415189639438209779471474142871312367219148266251576973013966172000928415861681776271090986839828031678371830803666750411419778433350979752944930119050169794290587935284033642332984139118154551474709306386204717864702160069310465140662022241260136134892528030754130746462948164097926418349521384714408539510134962726122241694993194050481796391541151796793394464663834987521619111479248065538755772858838128387732228258630085080162176939796145487686563604729136124120757718922643123134356025011638741919216306702127812254769582797411882969843388801422955958280066609501565686704908405835690603147499738325451621488048757432225631783668926983759411645279368163102646356598231251527406863781824538109610106438164345929738475607274803807402225008564530119451587978327187082496135740612068230880933190731485335731083152423851570311948158272706444423378262268219994642995308301125245103100361495253605143856347712429456674892918704673228838298430493429783638437094865820908638817731293337781800173186799246767309986053897951960755433502857687230785696314302743261127951778633975317258552896777942426815620342866427539403794514538725881912219978883681759256533886477612375268551477285275272160984000687631121604004244540751803690587868194638018362492847873979205285033024186465077084214016907138565908946268951996052399320536292413171768840911522027567182341749895242285516017170326223637056592094800704445902489830021782835766907080387085871937893185797040040517395142580850153746017776520949933499272525787729733523163993295674193796687088460454886554389186064655337665138784194931029259405969500244241030820727109764612823917818865663089418279385280236972125767277818563076353291720853301638771734135568195949422672001973751717616337082413540197738220964001220610639386833248674349006796767188310892934962525624616134845680157396628714031707595384125397495871889310528484385381723217326993614953363497292510808656763838630542773412855732478924020591056525277075021381492320835908458104493910205646971013015098417214311392789944890524270256348520542017629416144951273006059161555902328194060708105016792923338364708499310993839251558184444665369064695228928796746102445543199465390383253622481305251054579520987526593161521863516577304338343634910827943244880521196846542868605413244691133116458153095031083507701399277639328905423207625679048246352408841378229091332340595949091882124550458199664917757540524426980036953971737341137958517401707175850456872789483058099140772927375878352630368493016444131873269049343881334945403271196292109568206563446024012490238092877502689825012493516961380024357766606037074294950067812197228863827464295273640732203272540683892653021131645469948084417768432879067168519987191420949637286564664074603529550602206213313267721693151671258803224162694093066866874609530058035432787531615153016936211222339884643648529667534280785709374257454285961020978352468883276760114189138213376461721002588574602179573456428756826940792535892368512005242912790069076847869820387794760070035777319838965504952882922527361756522117332792155764777384506628962617473607296781776601127686196112996061744319331369837110469409838151611528296059181955142110781461831716881496513830105102990922293375470720255811137168373333311151281140251154288422805999557984069389750633943411223758473283217502136783290148037057989899948018468338980420380106931091782009306923356340004030478492132726656894536798741708838497415527690245930367657539893353668670196326386291844178207325015131603294173524073310226779704253741553140779058362679732175003379729761896715667092911313672047055113384756639283810474974174382083042081844936307797371129873429302316373242630934916752176418580785656919423870738891034176932972415044942344819671300263227024330008537174099332815730372386012358656434503181281407776816477981813254654897592467464622230367243244206211995533879911567336313204375264376112783529421928465425063862069114014915799713633205192732284435334921163101763608677660789587237660005575771979142992407591406075839105626809589857170838805276233735289590861388071317865851521238447414998662143903961217939655057692796565288804296310205888924718349087182889441750039797440813561076976637203417111236158059676144869785047917985343497201024518250183957609625350217240822424772085432912840070347234309960000929374114745367095240639123598055600781738475289645960516692947619796394156195007749120218767318728621459745470772875027978016800428361487148507357220761993846053472132331352880474593842048837818800039682730549754679631179088335718397294395495362259010936626895924443347807838610598797286691355092231088207388038114471526717556390755259146041647748676737844627721393315980910106754775425091278972590846627488094308346763699965742760847107714021174895337244242951879278285966094077602025700568936355815870269646896894387409039730870112063730525962608605255481275884651173281972002473742168767166578437810097786951012088036705475107771689763930721870428193175528916524736092294741227720846694370523504448366261904731431221975237916083028125558043409663138152294866521804328349332811837716738908458842792985990584856889212933364345021778679683180483978516858663723960593445327942456281640513046875852551929729843451196043775305867826977787252230796635910379721722985088115371518587798786760293671960997755861852127391899432609576463225605028542048228125252351699319424635801756299957332428068865155051975123540000579856726341382878326860917698549268538133581278598906793625107880150268566787324997254493035975294688602481391096731105767500904756771877369454938969276519431558527313365181446327203922291099304169387852395759476257361970666060891579484345863821116404048801618913570341207831568334999498453879134657865896757785046790035106849365252818035718850726464399702993289877562569108751763304512244493645583395426820208602196351288413128245466422344606359230833376149445678729478846590177099242822477282258170136155455207034144880073166923851118395542646650718001763137250383691920904762559052311328692752209217423006393579644256221216990992716920850232841083722266178107449350026035166963108169818029831897933156322851525457061462968798542741814488046208331466335305836232731893945631331259628161555671257749780377840357864020542692245417059420145492145669316386699168818239522135363169985211292902905795715650183865581968285081995484800975780104545277228720004587967122586244529756574107978364485672516371372860952129664681474587398504032053112155072921067784576663188687410738756969560054151493635861662861397518047656469550020697671593464715191423621392965098542877431514116710619878102617738244488682332348782409027533493597122322840747365592981028989143335839307546175080615919169585113843095905079830210769943709127523475153407024648302064570821725937055553727691218201652828327851833476732362690197867989923931556696859919317235328791544142078399736469111162764912483855842530854685588155322702357054894374968597142928759427405032236010567505530097745950651397784426321490743917353056481061589226404929191004379220756717046107736308608214813665545503485956307406088907562482482208207344211253058247756560104844459018603845457463943118609977986973788095737354771107895134065725540665552203973889939427528456376704810581066673798944699378179491522024066485471825525925979503381196987164544688503838493345966991216258684078131779824644328851615076974881030024366209767560032623301640468426938157525370144242333667846030932411976387273299953279712357046198245790992164501846924475694386684680017114469301904499117454086304517867857588314419437435000008875697327082171126590705356444490475988482949677979114023812351922109703092973068135028795497336590709248182589552339436758684506546925852005731964935184305350580488768472229937886792807295220997168633125214451664842978645088562654654113928882796290932819299735378534409891689272425617588477114290859797087249160184581083341151098800398065354881069901193901200929860631672115857374193950278135100090156998946687711656786077875754504879653665632048295939841216086358726407398867358469507046527072123063909025248019479555936692379029833343918589115106021264103377660955252516365309185199132149423453103468297391912358118785154991514207864508065406056502312073879602019455605085161058144343421283713121892466329480409840042861706420424196047798968808716612114034008905702434880437542173886923273241474838210629456844034130174787989043753339374860619495042254733564567858279741658915748664970958760942016843980122525735821632660108069945685950303434985969715050849330563536179843325570636316687639604283385927191157648386484500258610806363659629115564860471178580143903670966479604128596282417949704706249041544892036168880066727526438773506624271825809398392751583638544973927929952598305871361183151081176372581160196361287617158887271032279922661556715104333080503201414810588275731587854924828465703929568787401086106878541775626447638760639096967829708611862896945316551777765522226022136150423071008859246278672876813486376337419447028639733150970817065056265891164304539758490722678148585932929187196216827498087585050199616631083213650929154055682893324673098352399206213668496961972373952735911279135443321905593241736268778696735653177818858602113622569806531416361633773466322222705879876848738058220490278844966684750277489684165314576939266392318943483844340167740460536434142591226365181979658634183306453978964017654586948711827472432461858445499759511505131556253708776852828890343724816355891357317835697115055525642543924339832812053346754543590104614617401978646010518571194226975479504163134279966070480210677865564863561198451805141731733712367761403751125242622965898406175585833898050664677373418539456134677141656151649479223537156536941581450582185134652766723631717738142372055617347378034051858367835843154415514677422424023343968891258735134798102389338107054642382255126191007276389533918694116482107748129906059242389230847824557295282376277757148329917452334189592231975160089458957994486725941678357705098278558835185717863111605833494741952113344373176525871563290828028745336519422401524598510341705838906029328556394130252734820641546120302265978722209417143929847919108262190265553698610292125421370636586231521956374299041876144215428617030196091355209375561247965612684723662947110183756376134445986334525638798938173571179212567648468126694467741170201621040909246943735579429043809183958367438452715021340657158857150277253120043457740033090200860738847756867625729643514384447350632073804255417585830164839720414193142479673244686023961522045278130851830452240420031392637775805219023614091418337135125513247642200632614422303396457733016767962078992389577188538359597659056534660168472609081598236141094495615153627569361666947297606125300809450704535711981432461728332962715717678789220229203080113539746984205539412194769788363517680418304187232191818694340779093328436888659083918774069256748040693862164984843312140296088417788156615263443997129659851874510554434505383255852315560942053160998055227338259101793252189297799208110155611582587111356991670453979638402561981832145750869698283424306741140204143687060815374943802694437064211040074680359890594279909800627774239904134893805789687963490069297568037704481194227208775818883219492013503030669908394488476973348332314978518873711427524664019574001174048412521497331367917969352936258218662378046846862551013212834761540598525744552448175428903910003332795876938448534063092409240854523083543385811396575134575398908889601971975530566098550433566198941027423714480123867245078289206636089038765137132270782742874925277813847321720456820927284537631927773456390895404490355656047170326860444579688298301526739755994038561674591061063055182409955626022080464902021251898613468652644574002548435618754032941409976841199135728104808811620326240047568353522679498513852083565741681107180030015377815234859386196109450228904298064533651001281888442757853583835972509122637777953901743321927696417721017687108705909220125152655768737809141801414884662019584095876010527347696379027235607211443324568592508032460472849365094186838573088640376702272184829119126138624720619130231931654205835494129726581078372706388886891681201274463737669785843818973177895607361712185912386602822441828309650665276425087482932642375384480382571956602607061251225347694391790650050059591924215813421289137321065334870449629874798648309183648048343775394852971634870740206401152463645280926888872757055369740348029218832378742014262363767667971715115054343468929860357291495193169389455618461882629688257419465156260687438516811158519523817187465603765136454494733078734181369129030645539835995179618506503204269556795786926493231364643015755366333543194018912380124190129498015218897521112195070661937610026251287299065303600567848118547916534930134239804545498628803977535644380811956937521042375348023103752411198819229411173359885950842176371323812352049721127793281932587467977659541519601494856877626877076349206282194014572670851055404228094081084216419021136221519478733356355374077051941588560184317526257348962861909298534524901365172110130496747930696968840249697094786401751501661258997182192126834590398643376985886156133057128177795432790512754704284170609078694736441426093660164089085420399340119963635474227477653961772855637880104913989524782809172275526761075632861943934399953013816756162399093821196026755343652339869249995115113560296279899534190838788649114252981797715996785103512426049048558818383993255346941490547073247313807398685712669494353432234766695409939893268165351062958375587297408263314677614232116298858264967829373310019593198169969568684751841081202503294110761381426088407570390904755789553727224065697239100755200958891068950324022172392320519871095678657348200706799731118335448125792941788684270895651662873020293081109180765699862815022000051990830746142870298095421889713269198310825364670854916252943697618075651959351647121955019285614756985662798627782167098644005471267064178731969044545074594435382623409859377607907225349007211497498980759114906753903999115036701686269239712677391507591729860875857519754967934534223853729529345346949619443313698160688421922086097602346338423461957027534466177809161800800275350331349886978959952542403520881182132290368427586773265394779696131379423237616847724920401638552344297180201287155158374704834311455251187280812720487748683613763278013924101456722467125523461118397464702573391127432557265929819438152917033649983483202404320667891780606533189024721960967898773483971937885342612661599899201626925118509365768018904920856126678119166468715994164642914054085714158468536452928193910261939896659477731848091697539729486322095939950314753819438130762515317380053206174519526679831852469282934224196938265694977963645648614999755118571867545300492855160479757885977687370118512115205810224334744560806952988987003833462634287587726792686151330619724830104059759524823504371235510322383709490179481905296046473619756400252884100068352716658887444259611589563926623311239057949781448881069586423426107553534116568096383965302700865935463438380177083648341929417983533132979741819594346772723327627777955626481038609554226382058641006722913533860815059183447549867516105449466395458425606481944015044097814212775171472477678569852870372948596739458553473638600062877039651587877385693707285108872932619657980716533363433833341702604743057801237489027988458836077285128606785134771026079794485068763178616921934751530947669633452977655504748259810907784627467863711008328734308015639976988447143286288261526025245450913197605717660071270443321749159777081080739793410097037149048522562572337746258929079432482927583738483419899705017108450321953970998228119913879979671662021939367494043493472972325573719903280132575981818496580445626149774998161673383555986985735116050015709422791992780623808773985365503316596226040113288707407993234155240916148280281820408036425814972918055853506617404397009744154281738975243461151035953600440548601233286093204980923214576817951694800962482573668046201888559701939704179076345641808223108466477706913530473730677239919563788044475541223921725176150647240181146316134053488850805205390365795865191652796684190468887622412022496095491630647891521284948277492270303350774536603446456568810568670116079885485737340527849051473568157917053709972207189722588988015846268425993019413735372378704539664322605729545615256372320889124465190015839229437996207834380737543627732256404464800741342255089425194587987183595425730291082004790269686698458706508406041249596187026358752745559547850106026112126864764852102365834679605337561727932657242725180562483188845768528845825163012425032846982721403513017630401507158718393894080484966325470775272658706451371791623103778547793824378421382048938823957256102882185716446371069746318792934133959378755071991450239637278085580456052946082599173827340825502788777971708299316427610539407105045206264316710955262940470462740090855139058749917035105217527245819211679034137201198428903596834054891855891305609866227277112386327409635169951078288988855718094975358102259425763143251614698011068129826381849627498323242040954444369543791408265050157966354796184720152523099200948418046233890082515712284532674835272352571338092311311521949377286586650914212312691350596777326468304288265904104540543400424738461040557041899415550938381172775599012215553145606075388459374974963924156897949069765691410613204429034933379609575866147851646375391587936906168276733726511879055361382090929952591455134441094830644649588183666987747228534409492841566925109283437399732008721360531400986487066342117966559179738785348722907066361840270218667064089980775990669975557331935690931390245094339911419647098813382861058346670668961957917806874616646017897478031345728344008638259711505160422715970581557507361028776294705434975533350589144233961759371668853975064559933092422858718685922324054650735617774369692237604290150284048552756403245841095902467215553128889299512043989042531833513592153167417214703952871051748671858442189113929408870490243126749356410140989940445243140350934826672551425705519509606910976991720761004225636253402045256426346235121951443569280233526811133936328886598938892732198282659858922575589221058143532384712216223979755983973759460970758587699268406718846379324391667277580375334856519384959078841566998829575998235737002178375842599142186663096991287288963453557486382768927095793053140249381591786691377096011690466890596347592214721577553468501002467574436020417698123279445574695264345568629093734770147022070557843515327315442137916343538233926639181831963103508042385411891743717174957480614222982136759519077641479980057670420373483059408898973863109406861726905322664939286767099293447293633483374726021633025315134269864260325173696877897396240699570278422930112320260882368558832923433073843703296307404485338387152575060614771502674707536244744907000074584109238882408062198406920022632438528011390895792886712001757238888993918491341992641398924678791376481887140707255530950821688016993014303843081265915076231104300149690421105537514982063073702074433740193901538608143084260341351207466390682489325970608526814426156985880829040670623309856591825323343778270209173246989371798681761204957064048708048913086346478053519704679656350610385079955748605544976355132532302974166332174639803610153205098032925829892024563889091356316166868700962022519073282369677253092183125819190835256974275604365937987500878179492769737030298384612983326214385896842403070163068188613189473749918078344398853449440863534280024676811579517439254261188012635171536859158430221051843247690471212088017188663769688126987421432773839635466566018957714249704546720558365274140365766071455840310113921708761124230401111199694127287689679829844302215277305032777015325983030101071278098785279630362748709080581074777375312745076443294934172984586533555485905257843304191223758563837391286284842389273940277631691358280150668193248362667604421641731500463905372735099232254024321087752939189459063138253674066496313375914166919572935131438966679170965878049696724967800495612465194434956835273497788488311769045379637322302442550691753981700565502203818244936862400049855065023105039155662169229883287580387812480440881373995467960093497483101280797671500393131512255271678532146225330025251792843112555288461118916564787427331392378608711031143001796894822307272938563114890180987877207804653450212311000716708103737418464763025033852223856481812668684366767893605483537436390016592413712683262215747745495418664009862382165395972428242370536843105141339000892557841015444065995556844387034092571663062115111314458939916382738442956422722119066554145202839910333665603132824716988509845111245443142379201041073262007068360865238132987159843390456571622342694023305862947911316961160109744249164894600024521738796567632475315906153638312238859734309209561110450664009317852317256551896558377401187896997479969739536185096855435448661095525290656667944598506333388241231836967572904943337441048408510296616943330327077405754846367417300076962696800323185711819122623828395326171817816422766381262530555014219717795869585915928108481047776167740146852598118055896356302889164582790927278655883122928300174365356256472970153734749528082812549004161678191588728904414689779621058304865620596245552773584643865240853962935680213600088559391158659775458069973826839222476572771139279961322618448537939507271266839877110822874040657194640030425342783953743202282589551705908336383863094302491596416238886200198822776256601499231012599531643191372344702900890327178321035699745077298092311841782859154874027935746859306676889490464812164775180981429958190228291478967066215191581827419437903370632870876840351735657403312878685010615523479237464793273759274412776405153237985109295271229798397670308584959323843355047934590404226609558614744331559751822640139977944105125878529975586808561601987634321176747859477886098949431185467247941687604621744567732067568003059810236107964311241271293150008312475720590848646358799661450666710384363239376922088517282449879470679032375115285186456932820397693855492794984737050895489540772374729820687095236370391664172507236224830822916360843287157665245824451572163386367252328428563335239044014561581488838942338312797166303255695566022151956315963372938876196642641087432838035722565971153557339594510081557945619085080517117931122947387144410106358255362499434335904516025219810777576485592774444709717170606436944267313870735197358080481083635467734258949605360487493120568456559702636311185107693721073192981754424188148244930999698189601843685331119658153319953452623344852018360362955996725998774704719690929378781503485970721940024651918695749528392524128505021095312572221496048874380620224944830201966213667821406717149746784437186470653326419364628903304991953791307397536018938532255363987713819504931549736261342246364934336216065721675999094817743628578701849060371593300472409209260208076119964797455412478919710460674162960869803827051239499579569678616214467957907496054469263960131934283781801262502737661749592570093997883046931987429964905169470240088391225103765805418134304819962161368347519721534838377895337035140067567409626358031554161582289266997509822301746305147910182816466558789185755309774658934703649171102095023389807356980460608549875390193913724560698053179635189548245607246397460828932675124271901867280264738304948835978460299503433216127799981231016836983876719181758292015301542144178277684483555091615190945280212489543696650233288926114753208047820035750154150569914316622696084185299063730986788725782281779984983263364779188565331097165569644222546303116852457426183584244676614883068284086546711521143927627415535355530841989188090026872047420240042256416080557802483989667023307720258502904280219235646986720036014526779473667477283082258372619368395437108370849577345987610977160296908699312499135014542492541892677166636797499139674243755488486769381039372683688065280399858237960101750775331448203701671411860317730681678326681803138871785471107265506662253747994434517452883370842670563819267797233961632232380557214426160178153159519399103873239499582990202281600322011831405899780688642675032371765119090828140788472615160461974786946474577958290833763015710603666977552601265038112293137824078569521799962506633110056528556771023138627054831888911789161474531309735398176035619313817339415164939969461107536327026705311130594646872618077572966525996657855067538699269620350021151915136727612639013605580113360745320664595625054781482867052345302638792133373452907390702954142020066637380500675667222400491696077209720773748453431982864238814650487855007800880455857771365735332349338970869644916488111143904756671214308664326002183754414682308104188144000681449767503258933182569625267016564143293248805113113671586978429275464336419421151610474059316970856504356240891772388983645476661224415496766307821202920404915422795043427923732761786353304141880036834092385191572434456272883521936845829069089759778558620288077934502709497654253580378171320640263591995203327660727792593154280303520244963428750588263826894237008775780417298515235002581475817284738671011835021268092502698684028162075706577702301339383934204894990931783499147967149447336582941836938653822023936436261612740966054091039663044009211553896420754183264521716597925342171210196082559579543365865675078948032149914270596801700157865585723051704541630930784684408979792918511464465268995492396523122955367764415176065444481240340197803689637607851124640738894070953839239333624242967119045802110537275770246891107368068351420998317948403270108601653475728840367536267605979006598321506739199118669354827919722886343232581385118495129021953090760590736393738232927913145024749950328077901027039985389997532313049321279661797969205003024369136517959790472853923296074964835657539102014388355020841678954512587603584288533854031801743005777571803802401625882326911586122279815860362210701693719181495985362389826293126426381117733266081259649799448690510745213822346386760583643375807173763168639484490683175762949588961782893527979447018845089465143493901616009101542793249405797829386939511603958779820838968695626671658441665564607647859312242485911343347677716789045114666067512348758263504855911449685632212799520414968148406028530725746697339834503534623321466201539692440146079326494305827001329005644651290603974422764567962061160796110509608564349117940818619423876095937902891368874637189322425190300464474438237417866984963862547131233965981224385611142191465045708641846483615298159342365350685592561130451229977280950794282019069320080263373471574393456089458108083453381605480992467276539449196066931432497876998135845477893758028397596255864937118169674829631187472442113417622070184192229952397638680518047810052365924734025715215949376961488498654664269235225406535739523476499471491992457890283553326284659910171956457338686538915845843740775057121669637821245650528102959022510951018456351027387910412579776206270127956859829160680580053941235260669757706797550064298405079121100402248532408583848656484155547979827178169919023381064210453386824585225461455310093087420084334177777341502855919001878182418319229669432362529307004501250684626514013052550125862054962343213112520782057116061757804171777173864072872431456096477183158567631528864213168343874370282443251578846306388247837197223686470219690563071332518865295155516902782130948540471472695018531699247838468764338908706637898909456428525413422226124131837439378505263749675380642281305898679767644246850171815618279909847246990845143492824203962048584167314282647246951623687497052494491181310008525651209599769952360265013664685691950143321881986958374144062218594303012845856027551955233720033365445635849416222678696480877761863884251267238441011642401945862040446370181357389988326701044114091875643070828051191504309196315946291895025470205730802949909741740595542621854733447880040483124053873682444723019541163534338374577392523742010359046458302131416435700234772063244043298449365891200441198276567114606511964188011405273614884362559073474435979118158961816538079913119273711690101406633229585794929639277084714518575948057258162455266489593768191908096762133498504574397117600592918217335080930107291715281235745768087320922929531519848283071479537736931548220956615358405468307940275078275279200156665707474282542012248824276998976058828554262275604950613014791686623515180560421934407785190868930850563926883500392804731585665584727222223373047614447487683929711049820115580105528679180242242975342627196521776590295106748546189542427071654453543435310563227479037137256345129179578417696885836376692059790337657820334687903812907953004692851257781883030414845777350206489896792182601111201342324496361626834776949122281076186119568590139118996289842331213755764940554329512086484707525827228837677359674020328900601033188516944065028164538152947816341185239153888014666970982597521546682175582830172158965230331691479458364678447927892127834554431104907506621984417284978526008595957297109447982866313115376067391417683904439125898615356578786724737848990379324939863915883749552695117585545227859998516951521593769406750842966791148528134264444805547116531699556487568278692062608623018829825268357251222018099368311624714629409855996748292105296956284887980294980679256128816801114832212800799810135583672918040743358474142730323932231121799967446350641227548893757183774434427435279353742622306815163834965450228036677245115362814374914831181563857263583066000329198625660543750383076424792456969257568241980257503633155251110658991694822427833615166503127315258905889127648524365964417027919851048376812745538367050430194819402928338683730737737931737827111800316970527031009608093843171551335789519969367201990815150972508673547083487375610864665195882900647148726442608658610810771756574307243833885333708192003558115219472614487464222355034930535047322878154660637306348031688602470248648139379504899868178623982893708315390288082487381721200059584122835726270125050299814709726685706285355980227960251619606434271641333063712249613732880242807972491456328267078680171016720907997685599790998145127234968941516521436180446996317124013363437763209648148554093732313070111716745458191197833351509554071542134035331679913007569335484602855918229150557812200044424477781806033076575397443032232471302226998990154569142180099856076244969689948983545235204034560638186174054445947378917354103296333406168415436385665898937067710736437196342117418352526848325092699051466560948939229353695644165594609696087285637162808080409685336612230170840687184363047878495261879877051555855598518738684157111257462782428744380174378473959519246687181917147237531059785742101917444065665675328492979878918818544821152072693027298311687976704870169007401038431535023563255838840797631109465670144115726210764242118247600084771555251442968841306870950575671098155489378718218652137260125496846822161525311914304227580701548789457492351167360947560477406273971652523218581945510917771702074529113148331200413302984522731534659832798815501527540992976184061113632321004627738193150729354014466048867118890775484871499309603602801346015566073403452434995672307295848516360133687865707030602027161129361846509417751488091556283886588532356304984591945519437025336317289645859995260356228607992393297020408962197660008256739626723571497531847655264449192495835377831669778900523823212377926882612852795029602838463081295670106502517261744133817421734894659949783982592499127327375962365059187666389087611109668744064665583738493264885988264329829017049169666220865542429142094043278492342434317994847625501413612460743187834812746567767035856842410144792496204977436848229793704482863060637950742983281054843972789529288690234314685421804620040002792065058134039853215454860917768933327609775460251208889913429062717584026773422578767434510789947935775907186565940019043407173997901162341968338706276533817711689822653506139478541744515386823620125933368901701336494375148450280330791761438932183784961966182170598047851454179407902702061733584791275788765226735047513756916399728775193076569782367530433083841801157485023103036389257115976311975421251630688122210900050655221796499629823528195192193564882152270798485585170418817469552510280069770781309106102529796555068922465559862180797040780887137167818903291547684272486522350817321577088804025237562769270308163731921818228762256149759097590157595146919932390152493868444496718765502608089411088148940782803073033144566687311660452831651972170929384967117869781886366563879006991125435099111345128113340252649784863562713584080523326994164581411350982386176087586239304174201529945842059905116392016099230548706217585288438108668324848001746820275784820179725766493199257253050254203048609579932413377024829730906097903693954911466694274542823579744940937493028542712009282986277790290276071114303596469533575936142346258899403259567522810618549541935597572362895071236696200493457651279990906883683405203863255980145133203942032506471734186442249213616496285262234005301025309655052104076505992170642175047771095277469615475924364464256069654618726658894462581808036227111929684841720115547284754845580813751279540945520956593362089459381268677629868235648510321661155250889305564111055178901535634989372506913036394985606190181921820996777843217771934561067149436890445104644675154439308504505263248971292055222988904627418242057427796498406099029490891046680765437564187398285582730728304184861023166924454641140805419004733465805126698647132808895151509781202084606465487968548321612207484746348488265332802643702536288329133485827687071114217488507239794572115026802661802737848776014219347894436393764163099915291507430229881090095432491901053687992945085354595679701846708039224986877663126177576956559107417047378958325580862014699079567624324506374104085933289813299959328369753778303557367487479467139525817354244756370325846805284285757289907051920077072330256387626717933934865735487242135760365376750529987806476645627639086367077518464443141004301368580910870040388474646026267311781504989875936786530122608271552892365015932718800128294130594471208076211681211994283109756253947714615935757212358584274392521597019160226303989400773907169816255787128603921375128288025812689876510519189084637694455885338764786721305154945847107278113293349362128370216310587292458175608647712561163046924274728454533606605994861204756223568264737458265105140073111269950432927543529532146554647847526952802162832424292115866633653257170823445546493641700876993566544959433114061862884436179719082085190461711558515559860394275556016735673472840883043632202676904247160935466536900997519221154212659367864645052424105760748135295150726672925414629332314557689695337611582607120897014637808051272314978182152628807373977386516570722597222154696995444677278680466978200485099243332871571740397999884164311233948900494347964446806464113624381481881981819710901386895134873136054558510838368185998250820984323440535350175394020167535174717027625947016154263940832813810413627022840535789215983934262923056992353324206985820064877621599308953631223679864210616381432535356657910756891985974674379385336107489608334333320081619472478654127556877704291265730347111703858409016868567862980195066093704331833465655501784065059270386391951778600130716446166113508744431637998323771488179886453485496374356307886956661942122176570214643561815752900918627633615771212948336053674304798138743043562657875241334230069952838621248926253917582266625360052003853140669866668267705684691162827949096172925367571548696393835540903971107413941447178547313909743534323088953058229848578251328714455714302581437466437097285978108378036830101090653374341013457982240324887705878143075805642611378034560445012048641197720504281434151163598500224131288961117324840446597184567048165842583989455902794548519259653193123249550449689509390699188441960012908131775825675087562755375435854311241437201101280292152513222372287788931226418764238829570953440431320071345632355353490689804051653938511669526110382240917313351831842668836505258441438253354463590034633391417372850499596019237087337158501701984147082703995249761145664291481906197372413296687304755581087270115143752774664253912727296734665126227734981840674742464836797906875223517099262169437732216956225064779762946964803246081488381721574787643389618940475902925505446728053580539053633702237000409920037771720109739429385366404251674796836024190099824618545126822472689160392829566623926200244030339356871038788561797654090635441498873644448064896624464036812770907024622526122163939327956491423000844324459759549752341098257492508175293437279792398294141395248617038749199169627540003730474778555266228443638226577100017325627584731320984603870660904007771774544443500340337220138923751025717323017112024815721680232228401261221406517414326296698894873106706987899037649584778271767203324369194219474559671436297467936331835563396142580388357222728563980341527256514292642748073560884279071785501864868956194775530917253228549598994558673926342220534533219188055296999177109154007833071820651427044204491413874642961772133384551254488852859366200868542150955507294607286643638594326277729596459686127962605737176823361070484519235551300090754103827362195458494122566033381156555405546596089317623349904094133384742186766206262208432142222737365665772008722512975178539009632296004612977299748855201098146053635522887661480775782240337684895741519953736484429296618451705668657310846333981815821534749738517669663014701841640463105739358430736009891400195874173456058156714568575692913873641060948886289912080011528937388704589928738371516550853715768618736020306353576914625006552114018816057209315712568232800914196212696422533254956940141860324388704198388078242543426735728772188588173796450931905392667354375134632649229591929025412860238960305068168435644393208525141984228289183658317272172184216980596578846682221431547604424469006868649997030127089446739643103513242958649766476384374327375867777326072533225764234760521308129681905653980830088897278735178037049211971034060834994807762674301768406382496512872716803011678483800451786878345126826810818127182252615021175587772450711848914082845839779341181418451347697403757514519075186628100881736248903977417325005534109005509789294457079414218179499394839709351256865180713287530272981253233561734336245912516626942016824246054280160430471614855371642091491086592088871651294288023984330919011924489037223821666064598638779863214079500988606480838485042675012718172036517454266978048524126239647397163302774426233309235567064402214542467800793704991939953470806658042467735152870570530893484514859083118731765469321108766231487764647431203742607494092880050705274198891717083212882590122400302022576547007591479112365508744900932032474070013737989553790948376806789190381454692245706024014693525339109582815561047704992628230474823077204714890880503082038843538308659244983466353944328315103996606060629996320255323039210631287759561690434210923516990749494616735195155934443825482027714694213868054726386191379407994822631869923619612604928607283331780909031555822004873036783308422606059268456614988243912009361622587598822890857000521861272803354511830723618140423875604626846672017321841562693447289123280168744187364042418878002616580198846440087578358537475588989658800495583534098339463993691784571655757145490306084490772192705982065733987739733349478789337436647393521491174551698310442155694769657505162686370932380365143945390197677583961205209815685408247935193643283583965037990374210660859364587107632797865366527255651389571546253471394053670292309540166563661622677035362427950779579244746928526920027825420329589653964790103387196087050052111409652760604366027602244016170126911797185494260888129754486337564397897009533051760400662512238722961195198344089032441124009919312700967387329092091661994601897359074391766185470181700249608046771674781726012774753195213961188394617218110408338050698958198661714375891582336120518068107960785556418131690632394340320445158769787839101394930789214057732411049401950626753733486219468389811089397670642866534912608057165476917066605574521502638568322947295974080427402754012595830219481426729106054733021073083499880391834721098826106981201685584576978565709886539673241961558827895357458788056872398854818765683751754389830212715910488199765623574339782632801125281438461343568074391521891658445687714648130935111514919271882053839154268795265192697636248819752334652491892298825469964462234311528578701908272016734893221025545262370347157168103414504902550981794319143414734853975762435295700820351293865273847546829421051489821257753186849499836071986064492424951870709624499463703401849417248437348539701268514967676813517840041284692881225061729893452984841104538557810362312022968069620441386573836948207352962977163636117282386853911845627294542429726288462765854429789658155922117896148389278605275221840789422495246625991421454866498749415012594380952547086097851993230621183320549285059216938226253800263683061200190420706233252529393677828585867903781739761960253998919573802180961078705601120615295122104366701448856280687274952387796248821816639665625582147794005210518221649033922805780219605431842923520625082728340572324659124285735824718277205395287733249025343002720460682284265077937838148446754422113546674765571408474468422331297207616346377080922792900003957715249791349716337928375400213081379908183645389014712305058188620416097670860920207532878193457331979997137738343722218585290278025992838707262602900346170547366544162486969679517454961363764037250360541733728471214226887838366760352095833110204290678816850045479167694496045598366616903385572904959503375026280803417547671006647655360047218618771664058379898018476068142010741878715084365739349182214746973941092610571684906455630306122666713196572794914627730221725159895949890719745641836514520747557307460768458526654900736619818854246009985760724775184671816754552815220311266126449706478746960922222729025812265522349046729498858794579062204151848630588748896342672176931618687914946512230549802385008474057622031919519114501573634493125296293135267169779043244334044970983713296505030589248451782837429189132485385632627373646022435124084098455409597923078898911808758491976655231216737778086233264244833644637789884250593346265993775022440295327361841289146554629796940603413976164631273133339692339560526502547733894219273816574408085974797001604812908089139243103090693281533717981748451999416636469405146638736512440802433759943622939025215299782134603674686173129799106253052780643697286216320147968728355920744510719433879597253062398911438066545971173657790446339673072848236691298880779321343537959210639377087504273892626441283119225310723366787220026324094521517023972182658639103488643137528861226254370673822407061837321332537692866057622000433706704612586703860867503666398809989058444223415152589790631958715381973276537888540752915520470573892335256149579053380773038266549848738529859368738976553703557033880351253540543941979943506527566431284321867101311509003686059612777315012453781837650905389206096300577828231247216319769439669561161626236556930308220285415550751077883172360299320150700883081667206084276756832911387079000734765764791823062650524004934051871738901923081571021484127333316972977591612330146788123086765990822212022205248127750047226161625390880992241828062541247312473111862313417735268128683165856086701139895383697869627420140403717781033950546237581603002340184566516388411822102071738222276847687686773302435640455668602768137146358946922383355595749098982309640484055948730768541489376210593190406084081043115936823440377088643392359213674770068848755610575494608704399267828995307663195344376862057359759377297220544352072816490912445327924217677111326919693173509552436047381520748907099950787862121480851365572428756482632775627067294284661859588245474004788099187139018003516110260375602226721693849203771071279717492448067759701156166225555813220231373655486880656372301662812702477629296507881236647605148361127912558458855718807565031748145837071919482072589428163489516909700100090545151904696487476505023623547250940808345220221914872148069961835865869264192395738083637913303522945814741434032120973321973557777963491373811367376114643426258488447086860886078589929898206750474238934633730496899545592610882390816040839230367596518557642856565662175894214139244543402215026864679130826152572914770776886814300684923679361416257244627371828394313272244629817817432171245582535901628863629564919567540661692747582874102390905131024892269241363239525378182732450672622032767843385869334306988302602394926015389159786585076262046718258825905412748077467020990218628475504327744572782219935014996313362546453976465153586528948601623634724188298880317032138147279699270705939578153392757822264056719808670107669054037255120548074847865264464576295315049816816903672596523571302191671604175144396516435540914756929735536176912312581380830629167865257411105364130109860127288069911975856779066787217725681277773298336434899323317740712826549539977028529009125117109661591889795582881306383992752500936952419069820724360782278132632360462578389668526859233288356500435805855101783723000289536899730058582787840843122765873524476822480838806221937714089623059655784269530298015834674078360299072425400827257912850971221841495177414021975422967470104337816765103090185961591253227109393370627668973727046593711603986566089641747797591814820883890160913338755093573641044180624475965563582480272539057729370189324645086422060179083222946454721988239034603305221915237635209285352278158965199556156138036512958416267124663635906783406797769323726940724211844747029039090493066845583399695780395233195978433068296734767773715386202061509433891727217694777759525915539083336217091569444967202932405612526946463749771392555850779845671136793973902674637864558758489689060700405764909898234692259258622121796674704674272781447614580661444354320290460143906825732707041565529954509716695999589638594066666545356056294681824110071059790049625759472230812572661944873349030615425279297228080518515643051880196507991536539162790233753969796171687470136731251499247958571275944006777870323080566296845198061677677287845184319566674972698187549063981839515851806178871303160069896294359613666501677549634650339119765801254115826230931016936353165386716616792633986096049705282929705381108024582198462289855363238441461490923038134110990279299140339648622461613711837684820656142458999915958797701841441851734904913940808191567904062050688288236669873772612884345251554044399478407552222486417528023312385992121926666731320225520501831093709591332786316273733306330403402177146243428740906307062493177073309538327407963708499724569236192703305807599856530193768150768223782311523831141415948787749971257428595177492416415862151131679060911856758620441123108557785666109880390964512468892463218683610056400497407224485414176185961187507818464244686897141980011762139698780908596662747055936030856257520096583135630555395744271877622508693733274765387791803084047508732259882893281665054273459438312341903232909842031281527260284066612431096031168463151460183561092670309544155718642845383565559460332447613533750446107631056959837834159019846335213420751479147256629188724109884904153469835000382644254466269184808112206735426134973368313046845929593625554370455301826882395235314430442967800351233033265500356899818347332348803848823044586713840325413470559369867236880375553321299931986054616813580087877720870935983788687027990879507854301167246627255503518921384939881207671444980894172122701485242648130867111257875078611937355751213519406654178672482698080925537036114405763218295135611778015592949150294281234994078670785698452501548866584670731779589550752024058751574341883409513242145634473351922869476836821107219125166389869844163034213724351987973056644167485611158604567578251246670420573414763579765251752031460367534727190680314088480154233017024209867709088904417240542413679607394434898646760143769719164185593257984149172979902593560257159737938979938549394514666309393159097907051908566542771931316599194519581364983459387690976583608428595115605783924263021162543504723065335086719904383694945906874618748530911684686402387844250215737574756892134727898078012828040631901765526983981600671962945844170142138713343428315832616334786776592883704264240655491870647342348394332517404949248175989421318615744172565753414356980410133396173537951669699087124940157534621085411329299128856117116018547599204846570164953921923325694717809061767417566972052706417442443480503580005939153817735152138779329064790299045995529426043157931364099850443901614592564144090927268851419989679648062834869507483168316831575389485157342701987430763397711915308980429307031498188992775689824604042065462819987990056486535265911927625722742919547410115747240886955220473626019723492465268706090208074700227963873769304060115790391250378830864636430999117014748510422574414122530747609671438608993736436259466479336579911471674213715875543081807205961430612901421476084455106901161374597855009241832759009830584824871028062923474666128685654101373310465806733068230000512743867401242421825108546174712101368710730783315284103499118107610677643836356574545697836042008619289394290787227688353633137042844430937325068320083580612983602752068484818922205938891517030649642633419014320883688654745562489174032460155416496534817405167699200585031184487247663174960054097646961297908706850269746805249220617203807778278208213411735490839495632400279589665096857322267285710636012182424350420786681972191049960416536913219934748391872890019379864500288663203414569460184997588779435853457051726507438006869137384563208428788417573991374064618791811518565183773057261255828877615550412843213438568542048616613609838721436275220815598567774651767289659041494498665969361990369600761453088952495092680278092928637891071372710752560891218129576474939699075124105366285381511245743427109511349477452751939511802128706722915058637638476642312564743348954930601356431756017875928706577913741227141431084919249297444849139753032492836585789239775262780124644100937297785813208560012294746887953752572932629726244020891456489806962662634673718733214219689639425528660555637226588000802096650802379495871289078013280607929033959108934864192348963593814266935250417488294100671804445608758755085173233262822617079177607060993354144944050318259599200051082727345186404928143407033419122126336404840659323466887359355113045742581756212887329632252380750949421605921347674631514079347236049435227774489541894215225308465923962935744661155569507115280766132237155986212910522297840066993183428588623644763095592155528608229730808169173550045251530415819683721548727572222555858251531659726570476403350842748265791147352885818074939412615750111399816072103809198249579055552929334150338776181904997586823091616528645928166652811859554796286670857528780005369675646425914589979072393689770160152254609915206456023559615288640777199371432146658682715796194370473562402886167864710314586721689354366665734286906201653580289948064189761591090781193177651500214767219686843442445968590484662303812125014391359259443698950794094426929545615942559652841731712003058640016966436350139201688630310026228828774943489847416164776216563798379537383212870438634975631883847547765202256588563891256305184322674056022067793177254426924984178925117213857350398093466832883896931904635595607216256087856115249103264100115031899260326264412916869964069815539829656295273300411825465326247124520882170042705980049433423317674621292365952783620653035624101136224541785589898347958066916768525050780452623820434953808091493854416436486706536609080675568344547849483607429156049229205370832008913660953757249362253039662530435891551486698548958831896599909171954709853715102021107763413879955065685775185998785819186843253505366955072077821121012854277070419839048180130392454787304967134126920646997528113691506841428096747020856451267793183064894818343527717771247848302795766886144056943851123626854445488863811512738730653020843169029290690532408775476653379126095298948448943301291678774679011788995924019235880425776519468351777924898541828168169734474263858405245054999776654759554615827576440244640713299566749076440312987664291762150190592697447690672165679711529524242764248666121347044320927016886046201275303903918851922347796453854452802683100489524487924372328876966910810113623416562540332780042209649252880620200552478940389910160522850034090994587072423647529580605375331826029669287465476902795060718413964770791705953216254928620245921193357970033789449044722721725584425274059046938567928832850675238334521321094596499997485744791148070780131190899034986790503108831526961666019090211076508743984973205716238280706317251375340920241846303324837317433890525667984313495806607193419451725772971829430722600017021846529565758668910189226361879209214065963451621894120312003900726051840227499914817854174933428069985861294534670239606922633851748315727010481871986965183368644753646736830838624354786834950148410174990410815730786349660334415130083583891351273408583315354077609509454738463637841789140353552990976990439520630850050340291285489888081763497709841541159606664015985514305207911555991392825147836462826267239324335673686621425905342188439171171131313806107532104852779416990288528705150507458792013956322932088340298570111151198309770604655929608827542278024611350126842128602877027878841004489466861072945682501154467630776026043899853077254731205820231726447568241918640481332387276343152047726462750474564629518678436161253897564146608476572571377788236490132137430168632507664303881834549099661467873436761244640831665851065063155651922562763263530121337020866004694341397184897657182275193389351134794209978883780604951089163554516871572006164171339135712674417776428949995191830222077977629106020312012037349726608762469490943522862609147568741253393057013542344475931194044680954173163673605252155524160306050172760895645715067412712622688013169229705609732156545087781500517076304497941708591442750498761592233933426184187390610300619356703714505313525888359919857119067230588791357364680988579800927756396755154390643011999557081122721744053126005800012250531107252856939344424206117157346514490852378357411267618548892731207294109440579187541583315833224245774712447754991910316267436115374781465815598583627716321050307059636463206078426237271287511508650154327838498162653168586800982172846329807189169333328303786163651302041770359504231954087756132910286269084323897554397366859480049473245943987492208648423279493548856305290537297697752670155593852919952709093070008075882061427680959973743600566458474223095841356560618934658861553777562199956143020249705335641236392900528038982275391137455962232589181776105762396880135233543812414593232283004849168993477043382635226530103762640338370009190666930346417471604074511556563436582361642988698631846210652693337827210550486997940448324876734454099734249642246918522604161427307233864436228017521460247713676986478849743363056479012930104837521184323376515678423794849993973821533554315615058311049714246897845318114118928768760606015675428335070039465459060049647708312012546272289356541457483151427454623367770992663559466407960512154016796771488746636000663135541539520209520340588469775212939843264038993084235631371050007377368114601937530694605388853938515564509174841050607052023879053389605934910009459638008681926032449798357625221220982709308384738302922277138159983478729785980448706902362673128474744423620350894568587330859689451173106775076379369178220909471442000659496324524676990305395976167773090003372107913789171593462874036016694436897758742734670403636488868018474705182060510080336230624758726487138236476622746970838136201736206364448031446763880055820859615797855666706795331905055273922219272492915861138361317967818074778557729839807226249760335266035681279566810049017067753256715023157958427168238590082987310207899719225635776724780545078986560172959580546252848947588252304557322031862573788574789486102700977237408459803485802918360556013917223112301032019331771689772702196368510042417409355943917186908040943916675600133556840399414428714165306816357802189480261897664282101756948292635725742543110372479034512825857352614078806116477248329569010166230338694587489741273114447261949907974935250758199040982155517038265296530790563191732455781988789630292331216702678242655566969167789528115118776479896922992184649246881670164350390753420482579473277673406843399011162176288953413455161840627152085624174369733788018759632776867086608141199957828215639892893769225391383624660694202185006515717002152283527234655084164041429050590861102641739022405681186454140021475436811344644521563647355175205975021305722533064792376556550890288006588472808026185223393878738185478065908549999267550820913214199244260584098813541633327043586273524091745204827461464978762445289205938423406044146810510156312666168116459173320056605234950204507605700195432963673351057900652387447430384961318822120188901591159132710435305296003657757656917641531491757297851561410268039379819648437142171519696235623202357935569129407461605331397851736109231508573626328196169553844936170166300794064996261218421931004849793992315029853061253097386803832449052730442733170822469795253158250926392660135530397901384228243354080871560635905335272494042778869771934842806104526890343094525032396571884557249583875047212858970005886753951569874503426040271655031566463590463010602590698394863969419647680416872444249710220286754486199830367266072269831610889715813110910914273331979921913069804757121729509061928469625328961058269611569682860420158241820818188694084854193348847536093009332523003697095234533328194233207589685185816617972187639337595583587991183078348515543318824956088410473939346369972923457992652495292751703470892115931802095344682883788212363473530288724359551263254018277036512258228395590410513052145803692765803102529222302256643058853809212602054919208557135787350450387111411645791873024573266871636140104717829681811453123616785350073563182225577370141045575603226514057609506302768869836691343113351996875498403191316958305443877490357278773157908072036630484183980251933112321159058396027652768311366348639326882827338877929036722461360953384894483063344698280403408128792082337133735376826930187257985515616579366332406126519072909939097071150999320253572905585126545851474140078316993844481152225191607648986959958313808860537251427982104555397459861860557111065683943164678593479883262457986823345576142799419628607699606699705320698568350474166122069602876669615559003202413496452430329706433415274072437882442414206278061057962084451557633650636123641816502077138790834657522965685171139886948159477788213620549835159892299346413581218360745809247721886351378128574749401740397892076895386494495548699449369800938479065804997023898789578109451540601736374027576391974799131278936527046767479260713398871915906102438367283555406771559127966085364978497889526299229990778085628079249995887323072045300083086084986450541299577879260984396641722093215801424508204932690296235737766084992754932368830760639904495980752769141961566429133322288664646003951161485882276494100779005539154712573959092332267934843972018890565816217377399026189143282887932688225717076225560851354783794771438608881972769870395567422345679015059705918626380962345331614879360056195574951713843718831420946147606137879934563622619578511982797147601649519415899835782662842861529708534645202573017147160153306647956972463960486784355812866556448417204779203839246999786428715090028161536578862167900107834152334541482203507110914730866462062579412564920594617400851116681944977218093441377040100333677258625937608288773465206011201684714035829949226846364959579254576072016206148691121336110758968655430481913505541722436370374621934305383397521043679621137082306513251222354795827469122838298362540351963617839883167461443763796910477491884052690309867817366365262901820674847251941396604927339032059700722676621999478513393557656302262820122166429894665661535361052755397093317289843452631645173312646884906119122258141888123039855540219556187914046805783156221388569648011026330861291329526066829143792944362162475112261931746939658533293475332346087835087345848992622550893360567613007830638102294702838607787412465995486138081889714505286955393984421497706084385374013454730084807165383479115037212542595706545485650537951670362339857369945279327861559293365428239247075658508904504367745274026985781792321760226770753208576888523357693450246767939150673213805502945992229497069325100730526185380296594327388575905316974292342392836845523742637732691164821021666755411442919643065297572870718957728872460760213310844418721801731072334722348102766405171712969549485766540503294332891137282127379369109856056676742153493122862545539469083281994171993217121448687342662373949757490816097577914684125190926222736625942856131177791999821781430258091848007703762563574980820636421758882237180058684587909695375571467932308157510328884973818349490544956802082441001098289803544887932007413859810880525727530994432439622999717510954692763241803371213269436102008306962690500809572519814934635780591649207125438916171609171510534539632286977500913828184743215069025380200080694317871390328519775272299725414076972050302335092065514679382158379575228625347934164233572482556452403797579053183268254301595604586372424197084889236737721767371744307681266902826715341939256935882600713866706333149984274898057571246560673553894674524312826183555080393502396400237079916577530747709877888566337916539254804049684036554506548040931393171476023105521751365260542953978384733410934475145029823841838678448615105016186140845400666672715576493739045507073983098946797198028331727614638409407403225577391457013695426423587442292823609768891186436382568943562653213652196674894516796659999222616101447478572807367690404514805436304135707196614707655889822884121276394366443850514527159944605005082233694545386757892292748182017440071036224901717095337447510597873190181044065345897816930789029454454770933116656323284874543576361755959238461915832061881648533016230194515446914009187292674879317831272796329259838995943726306357183409480784662549068303406818732288631998196024059511522872036226084672184823130533444971551497105189208273591178643050505347898169669522244218161848731670863967837261446954968767104550575596611252766847368458246021780129193526965445011005045237053758021114322638737150193115541838838633615013771504434850220122768266117658712717837909347909813854856388738262705722741545941932280739240343819032005987260344767759473974913075440245916700176490561963244620656432946278155117010635656926181806962006855392323117228507301919235984311734755391996544378435847678550405427509218017751673599826301693621698645189237797870752669009898697970280481204943232531722624511165058361881019599626060796034184717282335371135395598424977428993281760535667535184855229086089922311983468789188599244861195388830981471068474503370375119113912778209488142111753868454621752777589945318457787912838643056189457875720720830728003018421406013934260633705531161657901918635452399117690200493012434472909753497302318042314668156505112393754371385906675651625667242452760066785798636254240387573009492399406739936847267483772540631144122787079384455110802797485679639709744688411653213468660797535183264071669034941386845771034237360499253956677751795762501852971855158765666374454415030056271861588609594780677707185358638067655828604793366224844436958051356830235534806038718904454862985432621625659392520160239713790567777676049240761549455204030487680409861252873206624945749804632155204004659347989678946501491010168826580780000534418871866913525854718656538962745712870999088957354268563423677746459534924778279049994080892800350962950219016576359844179428942398336534869945339457665076798163710995890421517967602691881356840388858572326755732402014291210058540428899114992710948501882190072306749645919797169194183944053919652559185247749123040914868393665101032255571955834730759390364554283406605732990096948408671786362536275766517211257846343917562727407953403403167095441373034484187910876950507192213999252647363775142800014310220502341201548921006675649501531685016795596163834330214611551008532662847583108751129065764317003930600444134322322849564679507696715233858457420014495921580901245317325061333759369129574909949075802917067476850654210722607538695902008018785027866299794878391020402883609527672950692982683481374594078694333717497546763078879092193503952516659617240219016289708891706709912207433294865125709810934505070946350663113327418100670307198255017824954533475473047894210141351751679013884728519448057409915856893524487508907053669950838363134474416439534315092999014929178548094344381767764055922229540565627776506097338182036554739666078348577423158675878151380184896087529282514420585087516288140077901322296274241887032741908292879504782445065125529545993411987211976537056605650232752905068615627048460109938313729326122467384931794971796940486191977516465607526156058290400646367782938194600267515986910369256942806046321573952877351411227732348553377617212057364270249105804804449741906177244471675433912014171632406439208423770403654134514952062081085997152291985784783081870375820284867934578206050891567839145299564254910060636443826708457213329334776739949833449992152166167230147977450964230884413614236675944672538939188113382020291960445137116985280475791913274690723816434257065029774344085627422511776383842096620187556481041982928258701874485817285955565203694769416699414152584262335476112587000268150805842263443709878841996450860298732243474989542448387729910215089638845761145495203024754141114814534268302912092507139085501896677939223600907060826089594986938626501878866414180089385670564670517681635826437847998772860771910896184274125815764063089115658078741244791479909109662568323313671918215775092953832309457554103537407068049616076696660501324685543144114406448612792217542315786726004916858510588738809459770622812388719251330898108884666800077594318056910872022910579901685535794864235577000509556191845005415093903905397575325734618407883082311766024745785959815107870974915375175693382202249571096143664618793691124152915739952893943563403933444541139945382089306760327945652790442447383914252424641732435859274980254695722721682601313800138213086909755344145310233906047550660044196817280640886590717298072043908113859136847761610938010722975626591204132271535119986766664900762525493772537364442184002942916150650111912011195623147319159400186887137700189312280059221554802572239595066182058247018673186742855287382490572135673227379792473232181289663958292739762280223244880811655045708005284991503681163268638718394635322467105033809652544422459221634827688645811262227827588250177438297960570637848484775808580036882964282340732387832295034912480076060123444857823769567473129311275895125969527056127423907011592878695377351274649752708921578321106653636756671264876713028100044725531678771230087525460425623022975819827268512416255461217736030423952451195719370092412831178557781122871094555866578152695336246046305247732316747686461559126433317629067670887409313378234573351535781414486531347898721999616911596271153764715821866035884966670944789907913545430377028444049218677942456900886207801030028429894551502704512124219830039718104465146324433576883184048904976875433301772560141666590625978888254657878491302014426223234637310356386830688673714217687442297147028773444222843799845231787581748188275534712465650618631438181664354805686958322660436080044467919877217908283404128485040755432973091765740646145211311622620201977524699353989614642045672639303315880922714883600644295534774178135574334320470603583720455212785204478048138605415661107893409919079667399811014402622679508225372676672389818265102226624794142270159002387250950088728280148755982726548504870595548199298765619282038806647055812534891770631987569523359839191282307136295155950129724491356629526386323914038800761439960371251157532838359676145422654043166517032728476078187337069967107355711268985822404389192902691242969516129217425700399024291146359363181612288390646074765432906926045776296097545651089662937048046427627010919612352122043327782706387306007951956322552353018446714993895950996810802595140175824749460549851139248850165168398207752836343151955152432514000280230268265590084925063147842810202774691216440106101614690336966633706942254349901019234514420268281995712881453076313263867875824731399758419003584265652379689221440595898338074563322610085941950027166425369977161392634841841941635236524677984758768212915575980572567965071557915032906295646764281424444638745626153809297193037762549004788831187784374609659214530098652413610992407527414618533257461339091051422359643330858984804269930183339604899439197244435461420420077630872161528095081646185944828730301545997456511637357164054401201767001739971017492569986368985314456506532837022139905324823425599055123727500046457157368511515944089380012634436043389645172634940574364931376212082601775293168429794766083185116831028476823991956659723386699520695672418068241553726572966714488181090577096745976702288838589702728313369259480640659529213069266624153416599938486512855796510557601035796599486990246922152012896041877829950991463121730823969115868839750364178197890809114853135662064343628224538120943339282309007625498530393709318741873714186801056790998382042522872959983023426832208101058828607332867583266853074506324735100314703417403718484285476711910759348360698909489196228983887141714665628712746034921088172356961052936073305795626886623649243950185194119457409988296226222394165084687654962713366007085914334130662680040565692751055384503447115026397567576299604780406681602217654622368816903349514322340376880053076702885246722905667177682258828305721968128272897878303514778555800938740902956760010080737538773565670999920581950967356164715759433968694627701235406845946422663893109347030255934817678771722946964675754967035193199617757260269485513050211146131844058230703953640617302548558086476628656513939580459430119265235217910136009445877898470891295666979683158047933045635153686737470971697357017289847865534018989392054701486156396014020877272927951572233626943323704667241578078354430899054122637369707088182695916700010217737202514235936772161665518605189163285741345161622510054752814515209774369831104738316888076814239334642444080145883705232374286711940934114240860580326127620815403851904703381854216883118544322185462680631925339986596426766575702902985622495136647711595647971561279925111891830115496577635075440246161295184308541245053957757310088462571695212651723092446021011861609800034391416965205494292970499307441383388294429071858633309318458049828383834722645586983628927027574383950141581580664694323168799195288704955883943833839593824020002801472980778883544661973983095949963840477405184032470364388631805117845983264928541466687994812022552676937224020248638013439791439731618674419943812583986899325493591233565716803726892823474407352715742426158250430181895598449069082023505051069931972849484588372271897026421258093798647050520021203398793141245499253591659274994563854730090257766810975835382428101138794387505692554969251474041248705903322883410182746573845665981172318513456326337662705731642203631977034084326088081527379058522208943489360124853369653083267752729997797613411359167190676505892682674729442299950036300113735739538499056657701277640031570763557037465429789587566888348026168954154203376996986921315473291712501985772568205319044686121397007495077671487500551463200634365215810553210316497317148287408341668788199442099008294686340166106411613690950358239586167619116142517404625402897339752354596067540506444838568854508678920919821590838933342567368995097329538393928545188021737750796978773631669746167809393969664965817595828321327575722301271655804981443924849997102059571318702923135400493380850491926016610068162742816143642309264780928070191410114346798058043653096016575758113744701904377185271947007902636082025931390828729337881510248084183879961536302181642865506436070743516564763123405820280074224919008168962785213144879050381560966316676304104295791235362269837518872463429483023489032042660918346517700783809188076357100203746517389015305292761891835337507236098185365642110303950022208064170051310892382692089922018343517223479840673646736923253430681177815795167023099967833176544815400956368713640797128284574080807862579952610102029520871824762560202267661761282067178278146326830778749966868432227386985507052458336374440144941743574554463113554369874648057943290352359375759072937955053942295556246918480787164747916117828792523068159494559666622587288395497262252930845521242955985425997418497383825641245635455911747499023153016580294933585744586228894176375219977732699491374875478810967316212453810513739936233116936612318077790719030247592044017214740812420569282911371122905599555853868542778657765111378640944695606993000640033522494524867207560144323854759883793990891048810984718139217478202709325604903652159128136623687009045425631916352321034854187457181663996661384040269036696895958232478203094965481143025329679843547654548763502102302836114260840486784972966868706589457688049922087911274908463227020586794675845813989774667170160022890223320162201663915629616360154087519810218384470964690370789500727932945708855172677479526929767478246479528995580246361089212694388018937588000970594930347288307250298528984246936173905932393979155053683001349330901565400165983665970286205808459366653459535816887847235788798728358934132987332102697416829737758116268753428987166512807112206532319256182958200801972292512667384725123205769051912351846627615613089398526229893172841404460671587385643847889808252983645789143781290217429583997793459614131209503364638016312867233359979662081066695196286722781297949768155244487300758925664310313990301884046411283469573768501699610374687945132391802923888122888443985099464490939492136209188345636610658691189836368180613651578823327501599146898778026919519336990684068908732077977477407506564501714417900576929516012715453680946581486971326445960511840038964613258595986179946494355041251182244191505687610419272063394813288924740264486731514646113936623837057111693008312666789806793318575286832263472000636477135551348686672922159852087701672982735762475292407167222241272208054406345915982711276249023503236548276254593723257181485704154127599269861242967871914750794528122390914339045108137634617278117058036177962450514083204131148379300603427736508066498823533594629973011149623559367982674190564154812902154024268685281149829889665213416306884879984390022972779670254659628711363647977432231975365074646585349398037845065844234837136453569122748047266109247276738853071833429094483137440985360027092237811770116058690690902266606631303703301634604774881173655978402944926398111421177770828317606467058897516469107400408337503449606644294826960905411100797776912425500529662702415458660191986767780539069709063002627747800163122136471650681203962449929019482975021471924837036703617255921255550984945181302928645133561380932028129386759232865232543866246790692588991614652724401502497417730488662047069307011083326195360728953881645426244212202235475326585334312937560862254296314574816101387935030044316224435237150421700602868958118416609221383517374178393004731959748141498121621475906069569279668695166444927497457919676249115866648523708750129645813741487132490580915407802845823835084573405187692812036732468712048394258241322475480459947608677704006260511461077956450869582744318970715611374791951726891696068355536333812682582917981950104764705048004517011268676488565290416834431651560420129324035647094498520590103486541975438283402161295317899595022938044239129925509416672386832459603768628141184578667628985579660684550635751506419797335304630028217978909413558298322377842495909451331788099901179672812003895430235981196607784758368161253939931214115326640668548930155137887556995801478963904719725927094957228360206211025791861960536071937777918276095428351606402701294968105979331284765295587139082231211589068582815938884748088932851509288650077437491885690468218882603027121800232839376377257484982248851150831851295874766530076027193140428615504070791940252413325671073781823448439843604565139308949264018148664657060366526807989464028749745486963513132971980871452569741279012125303644656601218772677163162477122245253578423489841372475539276127505742765090245059327530630517593987464856059301341997016309704359471836230366608936685923710764692525374003436434622906736168893629812616087409023789553851316161487353187971883867436139279664872302085350691936287880522668234875821284432756946525199897296094684477620510777088988902109885659918111712241012987192995751641294443997385682013796118841627683119673865481969817088765693536396521448838771639956330282766099740691487206058347333624291546420791304263108878954815706782893342042422790284215662777786886678407864519489085124183524155518302855845493935368547977684468469454458398014184852446964560003986025318293360892402540453998556679925690731652442834538577751084237202442146157555233435814706769521969545962602135462110529065324932681015613350027844763941850634714951684480411704352187896224473590585487752421242044169042594356926154185455218359126820820726571498015218320214497125471173285806592992876146411984631306505250903598849482217359573744698660330065262497665250752789590900888596549236944834340472365935849231086292000115120159298890886168233489551601054536485230781992256937501974441852021460037896807787917826896987558449735860508473764630829563492369948717211980190725268745646257415339736393117078414822725322835557118415591229014606249980844187835782492404586519027722315350757518620819725515753634247271813175256088667454456254359981537503357577794548620291528618486197009014776458160938502503066002139728560470625130377149218099806652524555702274698934258866378060014061809071244831105641581854790142432362869210425746042980129695287846712954269608049318786345627703958967249769198521573191224243771378883740919515601244385183282733806468654127455825612315011656924751889585447842010413368305349127246082203323285964954960727710125627907161668790660053349410517032397420071679239306384019093031943567568419857323721295889561423741679329932624667144278782854465254272424539673497037263579207490451674107310419505333099929937972134407341745937361733981018960771178318048855347115364921450552088064025276532135355897208349191067419740172618820466426661776865397993971683154698879162340401287308077778192490347338738605811368257293261873826165194458930935396754544308315141668909950531423271968029184853063771123228818861046171425751907469352133304407750628064539145415210328567435646150952297064148424326083372697088444611351392813014628817089772376212825920641597343676918436651911970626213570551627574311156799368899562244071159742640392529950766527052582683080046235303314515663881659304662259199079079025333339207629014493306238308220685334058845384116757478608988258504783152755145869465665053612282488533729451309056474281087231370561629492394175292669149730028349871189095949957891168037400958500023139926911503038714409304437292149432145620390456621459885307891169575789226316858761627196514759300092827501717211316715073867335470572206700191822697568406437462318052625387527727815149623228365387810218544676307361297930395817082283194507770076992105139977804211563811149028767482882526531115992997666550290389826244627860794023569657451286543520293618614612151240299476382136456699911441339572795349682086435541966953666701147982687316947160726750718113729197785214986478663645931175289550259770221950268189644867620622752350013819919532180791828101205014993440258710515202576460268039495394403041162115055967321162569160736119888415439740875980162118294733515595470169102660559132216818401964280956721929484016192220562730217269559075143677687768914421944861378773712946502071627948619805603555594812460844221320583240936534152737342656833565823539483625272904231887615430094651335169006449445326746226289062329752275650409486749017656705844990820423401688339588037374691501577402795825275131922872498753021299121766476516985111721794920840978139617004904864405589480506139632855962103028878597518475005369118876952081647253213728885699488479145382113826461980322228211606286175638072537857053121916440388891565627002372370110837088341716779116701300060139074083456343182804934804487866913425585089431566428521989200960828493730002229432176483130867338832014168492451605720277036243102443261797981865505580452133922009354797638966829355826912018282254886309651522172533664861489575304231065494039164509735432260197868668617034380373522796800331305329336815030471993829584448407716619346784083879625061691245393384399221771586253053041459528396902523485338998288031347913794199605361532709178263033596998074501204524223066162400070279271083519661041188390625310679511795285398914323345069461330022898692925620368386606427118862253744323048600908122391178133076565060697997601944114253091693629895758788068005045831537877600857136412080210835134984654743113806459850717220762213125109137009784994898277540821810920884202378288006551647561585338167614853974683435345549748775613044766338319521414189544500401165980558545078860774411468369409328543053275925712526384074000566876580724703160588254502244625244137957812416449010872349154426138303405767148903201830597410207603042662301512784020675659874629433893714092108100035166211803094971714936672584466695711114335975434694622408405161984647963787444575642265283064521915205155950364700243240350096863309271699913169782712316309677522765415648927254216673673221270215478608494411074235606907915454423309114783929598632780046555142016031378475189084876383646594450472507181797884642551828702796518235835810788673058213030296692642431555259828129126344852039142400058152701176454052810736793037772179276957918636743904973837966550439967720021026913083279204083689995154784626595576409366842812489385451653362564129801437331531176025785488251541068246766551948560863250763454572502331919460302194104117939728019133816384043605981541947406042524294371355684774696492000559144148025267811924411689260754033312588965067623631083211146281507113166854566310183114820065088039472973012281602192227167401830199434703618145378463469465714458880023643045074393351664068839406784854344383780625841114318296018141210395478673367194931947423454259622873499102645136074176169751486251925411389993144195363104574603275759842728625523088254916633742593787752153850507589660941257822720622072831889811121752600187837605413188538789197018327116806916480306040347345038286982566419570283534089544845440164818234768958718124813036269913145160474561266269318173028819411800149391538376815714535156158777955512107869362160894149948372006569070625952838157806978115406750619360216524486555707554480385252393550333385990102309496528491227431477918392638560649074465857584833815880918733190870914507523127435617610763902669588357954621455065506381815587448995501466447705510304436667785934599741231033954744730382949892146165493564899500792497360506950348134349362775937236101981840831684889069217848207478650314734172133446234029855356884845233937395741407416062360457448468247083531152042012464193255829113599682598623938959323501728554549959313414725963393909786619663263596887201980868001903173270486584328615867402072667498819471705263236608424380528633773253406999945486112005104852334355481958709643956528979527358859026023804303612051135871123929659181196617277979540678913507774231915372174474270476042679934063115414440274091387244048749483936038852364362561948507243234208148465775245362144662382320473017228967221167445057065805244562587217490925839790452580093029154731602518020206376581863073801244682100228999545164066901153264767358226224853025546227165702757681093983541479686769874795230808868449479193244691153339679110147543013410395736994939953881998964539810094789482339408205731615195053258504063105002560433584541541323854717533221502841820771945201290579318112704921582665642443211374153352617697520473068219952712984708638865946380196143959234957634999064565259914901117316393441817133641037910027530116720973653647337043945723189801151937234728860161629458835483885041049319287008301356507879629589555543414541281097921327779822759907913932560417825140387194022320315275344210203934333715818285562957441530488771691567574607317302554225488891734952359551979854235695627359516011522896230952294811780793210425913691097971237326127839882657714965582966104601623649311890799729449305598777441696339034579297834112880837307047930791732964719495712783014647339517351757364323425545347486146456142032560160842371906796281213200579422467716910099300926318539728952760919362873294557640951365157030579428465927487829188791865264736102306406301290019452922351104470246322522949538260796846330474287488688638157994415735553590520147818129992431164084975288823324974277977244377945451086874535228427400669075871408740462350618066781180667424010881225079254208227648841724759023115859111661340842022776488562264490223065376021531235961143126965367561749191359085348252743244826485863414275645372017448517176230483094186366836786569556476930028522198381098946158533298801684693657774410981083952757809718837535659313626538759614289698520959920961589351818710079314785919015146615172809321229114448033427809594858773581344069955334635238166592756651191893465172855223537246400735257293463579949100186265037141208462817523785716321259945353027913690909050832247699508619272366130566060453754115985942022081131604779495831864944693180866159946511352822143720623246977742224948192448983657881616916013996743876198491021584285086487916371908193509828050734362264450425792374842258866794427806563196065037911973704880700053761766028620418211349396791977397792233670271539917425102678096507343139117327655652340257652909463026823574796624897299290849682550809801188780196467271105103494517604837769175371703562961749126544749336459428999354117306321772319935417283490785240643459707205522128629026354260384260162812664111532058091075088746934309805702652373285062074703106388069010984431288946022646547348455057436536117318248963841207773501716537666502556240683048962669955878830501007185334923546764193751813159361797629363706880314007498239111183773370330333144957812272778693345671042368886278338980784431342928512488521695902767309117005787473339557339592038448195626890141980765960502339603187236367488283677371725941298884495200359388676434115139972705089060698149108813911874874460082070996863386772388829890140836377121515747711945502538595173952896320489082248627739809940489667805828478825483870688592448458036119259829310082884689975667154007895726313558535159671381464316809162031373917043992992041358095140524819454993575906505700055356784384103157801429048100355331682880386165544502471543202347391452141933454391495081717788744160083560559994980971470488364891844420021039084305688669730526816414341079048826553321180091158781684697608174860642887175021873457609820966661387581120098323169969881489530510235182676485943861082587207318079811050502398744434827096914918330052729918481555995510201749450984031423572640546139064541746746732648675720415029091052159709419550418296270027676428679760069405788616336248661523400917615177696746285013646922953398376898226427028792443800944669624956677093380119811709780042280928206802589525566484069834700999115431199975696159672917855794960089957838611628710690157022410673096088684312914626215105367282837612455934976412430058559858370684595920471765551335237021392783776682904721428598241270839245268082095836546916175253949262235097713476439719362587568080368155090303794491915296386717680081946601337657387827462762499031307946597709094876791887389105105711588186253736166671355096736243922050929595050048479358413106468907536831805422407258367999293050400722924850791156107342885299849039341421826562112826637478289497666364452038396945173682204550041888365142948185353896889840348697491453168080689927310049402692575541132843257502483798712402622874731243000485850786043763579494123131378537526151940357914281289407103345110880636480303366025943682013119091695972698480225582884807714019821202952115299029607302105109451879033278873569154620795359702725233615881369980631109868071983753678729273600445406894999802711856466542681026439472119253260797596426153552898044152866977645677647295823593368720152100179144494687551092417845827382625121312500609735762376825603205815947644377056622933712100698234631942884897776353813250120175389306397843879271895401815484668952955683648475855799365829737260450249660715778155432180948492206204713370667341158707902286090069890351722811671305494783612074334586875660497291491825774415656795912662851870303298039048741673425524607535004354726649924062234716835817769531058474610403187522335231645608981993483714563532131345916838005585371852568355043748320838714665122599148494633584189840669670879778242443822698502188322921041947044548487703301003271842480197619835317821926099997299903317858322561358892964971040824270767752657600413347527860974415394021034396781868858460457923997747625516518008681851086371171777039038077950508503777018865539194385962698088522245492774891670276552420062274512330022157527653889808778836651731538930117854112317529199289539080875124678144403784325506901172351612264067588574650119561876704737475130463487305132541758592465062762423080491093041551734326121184897429583288039947428969943187056224462327153063970246560886152004792600102776117107348141653429633438162450978612670105831967783183348809255092062527908322506698110322725398651775632829086967923643159322272242858121727094094760121589774683217919065854297904120791029789720235664650558068113796488271606785651020594938428772050613465799636284240928900216141781959714327031832822650898524284400105642780656864647640377554948458668666212968051665967518091199239898103321109554000672509630472826582233943160968025384851776611024038628947590842902973487993996217121952787934836990464577461561010030585477377759099608893236968114516568170636336920341422052160323263984933223233638893627257451964105196449818471371785674139420126578186745399178911578615430651718104348066223172850692054327667724338782354657250637766244611672906321619400998954673535376969005765973444594052231707789123634357679265571790653488477940131661061413966168597861058232091056239105464018122994211526351002853973067989398414127612224506648597792098234972627716554202023427697189381549619401351599747840034644853743160400166558446745826513888032938988549257603757109954160867047951115702041833247404489412289585702994983718297362760740285202066837606968070679000019515167371820750955076810932962936857948902851209064826617391549149051160507668611014505017538404504226022486387312304993256497892279795505717356865567682226727195604825514642147486734354079198854211434925259950148907087293030963197283189700070695294058910495614094047655249879901418437274489844929680159130681115932347068215851361951099733003411588091040622716939066455722518197587984690866022631926012101942862007635566936030591612094188186838466649297154119847868041397099741169418813141895336676572897084770384258454256205466301716706442265064564869308851497003144697149218476116900147282151659184674943126922886296356311407210759054789565009288801031214880052811797811437289570039119810988585736168600547751553798060679204866915004548992907189380390510908636744477747099741113925584443797532696800263346799912209934410066614137085308923436729278857026508173909204617560862301308248280609418124245501468521243781021878689608971286272248128612209057153969577874458700600605188113168469971800152825833580889787191259826979518456000725812979214999947892869377869779016304520267090479305568223311522899924238503082107624933915945060579043260010729601201325944480799136521456457587793475752645133693689306326535960018054458018690192320789925089740860573761420828388174578632943004919137238227832983291264227464286458238111789307061682778842301641147806902440727292891990611416683218341710920766506367281038179085825935078713556591224876685330557997774937088884431669928378271032501849681521641243888375500887482876611693594889020388998005647474545282842702292398859175983732304896531994077524766468270882138669133024564837007282527378237855007132304477949353858377879281688830406324743015785967802969554237304693095519543393731273097778925625269647531610829093360711177711948102478457306152698851655742399744917406348459637050882784636181329116042549632469707717031282558417048584279208019376795332141504246398463530912893664222814104074305035781048945313327563998711015826540504873899265500135198064712823781610330977879966046542450472141639070117922956987608658555242801273184863741522500226500769068668740412966358096187719215762721969622509939141680322274436072794029784210977736123009291763738913687597420451054971807393947498107748922944766460386554568460838798739390484809972726801582125698017863552903026014366124848477358559683952940402389480514172585131509985753703924054700806216471485959028871492467910161912261983484113188844463899715483424279389612651469564276878725678277157396908061344304823002675194149752559698437790407856884920378204824865936843348780668081510030479679315729800711352915626849987555962586080043072790777328195673235589223605199208286269439715059247087854458687926849457015691938236691420150813851750629676922573423412456219124903943303665777613903472492160949234332290585914377712510177181154421636876558419082103831507904371137584916400942035923967615693079036869572516543872829286893938191677156464061281247462619553698307542571676111393808570045351168297095157699309948487716910155044102305977569204599035094043387462030442806366960010828807382637248210235816298658693949130393653418210741350294382424014462727844354898303886309091002801801011550188203443275656440569676825753286309304869348588572085421784033335243832120268559989397241789290709650516556376429140222687732998162104028032861158121392979741564135116485158576861246819194830558768028190701864735060762955997508912977239443018709373042148057461053690142744271742632638206916208602254860929181752206780060710485456045825576115099819419066184933572499152633396685925093994224111434337328917004529365852568896491630185043241711576533026089305283826552720269423384369997751869842462849273239635395530317576312459118697186902749154655346589447822594973122525642932953854627174470854276314768363381951626182478837945090106604953533601837737590346709112365280892911501875586560856544411113240903384275911902163298099411614095409890170083053809385335173434169372985864903719205238477691131723864831460070983015561483065534903093529989662798652609027840047098997573062007534231363405127270223651461270014152978798048941072352243576044285634423122722509089831436037085389339480602681735440896047137102745979276704365819551997635738502640685128275167661482011375291641162474868141618594005218172705025346308578746211265747519715525146941698438632019569798468335257699721124940744427698569051506775373539645950293719927740469901269377081203429168491902830636012529461360634282412176357200080507290907211275790692153830902860474475964970630215030334710311256711978848750989733866452394431667061244988365374632885218766922753068390453388362656390578322657263430023176015299632844349705513969743739265039792071859453261415616489983651504433792484678267808237308529466322353823335153996904893152655968849348256963181116322470538372956711047024236024083525588520974903946391984484306542424168898662637299484443475458838431464725768303490802209989962811715154681923601704732738857704830561940519689991394677560508997968451569785543609159611843214073605771991690089040613689034504941250449078207633566994971543652444182474989633940249058930743227673034976794383274685614119967068060970978999216404306859000155846681805733947807632034140090018754186537079122034604256326970463913998786113658271173661221440973759975894864707649602836056521039025947146471761386966198030819999122885323462376790627942123709472766139584224730059697298910728446075540831740861680569856824714527024073504932153193925742024100071152433591098773590093018996496969439894463781305676929147220582787107167261706672932826722937065418399648423624407185947626393537767074045122649847899119380150965714802564129918447929717755269706257250738820992550166939277154164292650819284595736189698478162373666525701545149770409479231291346361649786224198707350919127117700983197320025320399551882730605875244629595792063912221629356031187434133752151421667719445804587458205528255241878194454388801865238234892226769264065437614397661756009272805154809374228601242300276528886052171973280333855193710381196965060799193366155374133612421455468607928967140282391105891407410041888910462389718241259391313146809171539987326818887298428596896452043603563321130020580613292166492852110024366491015064553058220575193835667568573771843127224701149857704555585540801196858486977322230735616995908244035422885872440201615540646876850435365036916596604491674217466253245639350283969020324443792667612304545651164041973448954589332744437730446909953140963688217744100757965406228985513819253865129815374716104157945775561992195682920513674627302889432047113321500606917453807768634685669397884453731742130860609731120690976183229274016134242976435241145174186712957251077788368632559077055806005328438001717056934198716913360004661099559992020564342847420535081730448498363197791550561636755065850264197763172028501336271773635559048419215823514891061340724101585505537603328693978955023855932718500533866741054576354743477448248308799407096468811469266322596822847136385499960859929643144909821797288498782555011755790500548425851454529183491077598820048455007246180133201923581607988310750708292166863310195261521547999307241710599660296407026004362637211666285604231921033716634658143821656999517566283790045396855550699171284882209985333106459844813958233098473490204192765049373894394937483441267647920963475705646653889804984091438909657408211249989007259099126398558137852776660577432415113470092669198066749412251759364483207869972471987017292837174212549094026034058285823293105612952199585329645087678709091617476582189410282380762149760355415398188315558579845622276711339945222758675885271212953449978725009952409141859125540111495931923299868529904704384340335641251402270226029496753863916793244456388184744839298473916262417845744504347259047112232422763841520592683336972441379217891700796703845692173551258903497801066664314286863860473253478625759863442557460231268513835461374432571095646922468430357641076217991099470830946356392504718578332078914816306057038516844572537675843605729912709364651761872718904162051220651299823772943483074499029530290035121769610293864578816976701609468320908615154188706810323515583070426371740958730941592569872554887252965665740426252145459405007837839910186251934600044900560332595802646878940358326815788568354898272192063829355140000972791628544070999036895231757650512039884025481615248803300888034690611964446035718163681685815940373951073906134508583132864538545650465285881109216395005343436831386834619560192269788449629752535014317512793021529749034891755560260332498471710262915037867342269304125380406657440638961443650465688921290779122712185710601117965348962976068736495333850446807859012804607242517210874668986264871932480199271699483107278843611502084186877674805874884655952761718221029443317783310235095466637592492136170727495672513088181156700474477945829347739858300565571307580273698763896949308040477476795201014276157279072017087191481486162124943626699591066986113178715279808625093402446324664178924249111729090464598655432223338866647879180377169325635087867742880667775149044553263673498384702290587012329053619476963465854466272859681747095040387786825707271174549081167814629043032822310437111296619263583038324842314937975505715667878727080832403086981467625078593473019388218949242246713255344944340734498397503068845424910800273683821437672274483314782691928179511075967878477549888455950978034546167191519893014932461575618101906672509258255258503262046542874762301431533926219331770865552030485773781060438843341445726349194897023862532180117369956779907246321920690817661705537277897866407924858715876405190680153791804311319745442027070234457301633798728028470078346357827833269284037508422902892140025412141143817548813562981888916447999907716608434722156424393415001586821922462633984976607986227157031861440594955711998383902426535359804539674030975846990766165220099663221495089333182055830202755342857775526750213381932774170253665313168875192590859978483306754328718206481954631398695497930300418525747722427727783776406686308649257026950606635894763538120494648784020617805432654474732881321359640207761891140441041906796516855978780466824539393451070911606225946910247875109448824541604139775731833602908466724904299545151365667075440317203127798461360867193071030729972402038853291403232301551384811028879762876036565197193192591223508676408023536854388156814664763597736586839407124482412760497654933142777638427086847608633245118526894397308869821048011767762133628348594801207104386353402769302853272964653395673368394204864512680677147885039836959964526080105758709152212640834588991554372496864465763596825295365790695451200736108119227845641811357335219041418096539640895131526588121361864014049252279208919220855870523206104981656018994842326280433967494344475746890969544468887213089930309484950451821375260530950102060680722844230279817743739924430531726957481107945547222115764193403137109840800737369292794211294977090611311106009548975184315815774485943421789788149107763331595134762197607971220189591099730035188054589722278965481780408881229790853415938143287036951887210296397089049210305929861393728646972516538824748775650835274918011655603459920664786034017744616365287476904963070837134313142266872138111305905120692254591280852594469473960521897670339923215877544135573355668126916953666614226855668879594774234424933888997710107477843622849734577551197594765209605120113698773348275600872264709758696265530894522321197767142255876433861187804788077177819888562934145826975314176175139714169670091617544664644237984223841305414061851342031587814394818303532898143348023691647204087549731335007871143612757167299858415688526992466219131678825509278809899486542830363599143679506190525805445400037953141190900433286363060108812846688994195551147368266423401909249184066088974167716922729376179175165987022527857115623526869283044394180217983008959222502291401698443292224798112593788534022368332937151420692400724658119066008231913291761111128916238440952686976000384655013227535397212105848654571685263288496424686029744203836598492692549281500835633578145629767709818389482250277745824657557610627149694331848118714703757821753551074572469866568722019778597397407703779238485605000528955082432151491881291257531210723275813386184428565682341184671896433710719431225663831445179773397905517835416390474300169144793184702650699891805087358543451254382057503492726312640941455958314427845443219671855649450925493546663706373378625356870402622956223393598221805939849769569199596343988304551301652887753895772358154818894036772162390089451999059042234376224281590516816108403462021536712173787830042468250232075429568981659616425904814625232320462220938476246478651470249910773255457471779403492594009628476692576388834716658448541553464851353642790973986157618388086056072625179374109936928025861654498535106752476687831621055009254502452755195071519521403409736071969729614298272675579417273678539830316121392838006453383970924118761428393427821990251890973072632038402181644262733906923444281656400356739426958415648489825708846900624656307903945558903679705019282442901476347022161690885491056296764347329770608748321502414625119080022706983515659745586448130974620612973600341993650907865576753730843899462281574103090676346332663400107078224284323139524741580839470014726603593805997901693391683461145716381224046944367806735200348981533625507565184581549695315089940649304428433609722126142512851722501382394466201868174682647814167558320733207126450558454609956599165529888472600885696776660064059800125271049083955321822423577042443464726138270308428117452555924910786814324095326043148451554573630986727521709449206240823570564192577764420429772633134077241040765457448956976043595237872737691931406269869476971817341624922123646237643897733471118572149911472815163951880657860391438577299669716794902057948067365884135572629984358334046564592905064831993381053062412941426767851059099202060013364141638928873202445101649960233733334426867426926341465338971861341253256038287641474607375109353243480781497027062155740101540893826706651542908153029399766232609969514238177772089647192460813110156453867098612174313162865837875600398501540339240201844747841427585325644522498263163914184368710524461469602587341371492072509670256492537369819706186784908208615996565994953418670951319370768891363902574328287233004356063929674957977103464356891487200869743777136367699411912685697752317660141433661349327438316670557482659088334524731974434748750524177366417927550024251679614747065110348449811910198075178736247263771870217629391033355474486837081179064661547307014376532369445790883309660131790109677793598126353571769059607675491650557838418383656443534667087979749633550532275684764506881398109901788375150457328047256930260505630028907597701341025170563098972947779809413984606170607286850546383721464857157496021829986008222564621633724235822733604729884659940441149769598954287900260234993443427217551115802958255719803075330529679284830504709131988625796533337187748170957501316769773837936468569206427265985394330332013125804005164979709980699939481400574660304101523351059288416400012590157098792973902778843800546876611663383194509629809677711141937101414460100225707529302358593265293506674456407693163141308907810336980317135527080730512066045957861427598847141488737352692218452679275202353183899135806250515973326443731885576143324926352337720253833064631174820060264699203357517140380527677175180833519654568128680198469649173881554674649897052842834279957653780338082386853013777187522949640303455307244715828174472207946336142530582658022135418523252611005176639770901173555278336205322239296055944086943952759454372144735385194792009436853591241642007097027878316661054791448302515018132449717293570334346561537878390610903057651805632491413235634256658889917492208847593260592455366554527130789800392516143351610011813361074012863470603628127122142593798891020107396009160943206481973426962388485983971886559161419584820088318408688032652071644957249614811510387861085179538135672686039973084492774049796294524199720138225847390487536897431943871344764401900293524102145753415139574041802241921035562803443922944986216784218085884794760323776654243502820232006631133878498413767510244573823290737107132163880075845241986828613279677477531858812504274479363177089660416648132671806595925613688328507739419040352986072796468264241495765059402670257349070348147314107376833614768506179301247352369860098813404402340074678514447352721367690536414796640182126457018935781321422405372328282053642705020245863430932412169036371045593223721311674919558366541535727897636436847902918278403072662514225945489427128235833480962069437336932742645672549488806417465611774387733691781202029953781547602168207106389238498781398741977930548193250460755093902229055101924247188165592165215898039990596102398516166027842404713800012257760088854285246503613694322101502101633403495129746501767959603452773770720542860903348662181550603294407953308477891827374654490589234544571062164176745871363565640153655395881465920444469075207246024034975319035864562991827173051933561301161269403095729374918714501420692725048947068901838807589143246967737031482679106231813628095672766066615255158543965857305981878338241237314681180020891062050625110064963843831640296656076942501797372166895110055636007045131264340102305727375034333930301907394181335551991579913569554888256628465582941621010544833795199268475711127297304924134816345638239543379712169936875575813041264244160443578830240729972696098372830091591452576043539048181143883075977786012376497003151547146755276870349421079626182882582715827294978955438087686988473737869282891351443409718272979680515084903660606072411871537548907189641719627742626450170444249666251219153749058551298529598299259154521852398669988594443989345110943748766469576650571196760502245654946106261443225357668086780715365598179294595393185042740619129185273830806690389126160657009975219314147306863653525218859013552095873300089890093983288902866806524724739202729609660648581280750714157828189690725446433873450746075235318862509187698229315843728747414967964044353747816189293326533790891202248676994462002299218016136207268824322856222042763318634200430031694757221508863028692552391576280511869902817348070982572838465243187385000073536348881776499094419120404409001768267346415748710452109260556654921195702566003417873895706316202716310694839395828104432151335371728624611805972172720819433108735810803724229823753386687344059022819101763955550395776255612310461538906427963534787421562862197455013421513372100387755648169907718478240514644846207646561735477191783135839224475962650274521072702518920416670801721973444755795887595346522361738770302710776927533613582619668318977373686947690879984933074318377092424070515902924119506086744057814421904822945702091759771875456520221127978300706521066289156449588467531033921325775616530601192669777316841270394903145442018229023436011268697592038667879929334064840961862310602610971964116018239968613069743856070967166045581020108157796431174262362351329202365915550731139565587195084743740054437352042271134651689367912217027827103086300034034836185504646180435097002185983655673454900770751297121263591379014211442747255981603828629345513144829479091754082996598510531355040892843262278000833763928103770010429957310196682482204297290715094753135895209239613017120419141316285436538486660078752078664090986335898609958522726716753696776541612542984156886420736617497662513777133297340610443545538766884910283475043540038486260695352987367301237866352032518311659371083682001766001733443022481554794299944249662546109804283290984333194833051458591101887776709514583501182436005805238046952425435516656298226701941110930305362879805050529838526288778638577338565849303940252753575396619655728221486877345176061122428299151832852105929709774545493986207944887430823152213928839766676479795471649641245842542824036755338682989317029686662492846817330907532299463322033837380836635545465673450547665704751812705599243464448571449381314215297463120396221165018627893756596935061757351144487646223000409389233575299839442784260930608863449072794113240617146961172367105356454198453619940102358502260132206390981864047146513139055933616437557347125031932832162026464380475927452274406415380542345239822361376380871652069360932038074386922692485613149037373472486525995944687819335950362592481178718357206142915770250890735861893924096981841709693847921919929934111739112694271361764845272474674939145998234264625369092592809580189937633763730379947904121594351390717492215693748878557875733707095895012013898036456988230929990217132905826169779397685092901279537998172749112062804777605498379475541713674692456906462407439818123323600428362196146708126887164443297660518468510531292904233439309527585013990991481355669917224681239617136712394553219356134771590154555991111912719838861400978784375119350628037624355213746182006143270613800417572697158056459858178390073663344664304256270404593535007535572652134604541263123882973858296565100671239720118900378121275400268969864297529130943733870691823736208593303968894073739340787537234475651977845437268324561175262899632616432852026134532152185352104620273975762313426200459840003197604632728003807350739224212550094275997122386955396400526623882757898051281158091241762972287461105003036407707302275345692561919135584586389388391057656137751412317227025694155167278330089171524750947133073536329215047377430907674516049759031910778586744701725248877717854889958246031615026305827830746047798616129757620473055286148708921946106010836458002189389466567871459347330039858270596740167121398254720217507587924611106982454774537761419626062370332783284993828622939856866735808599637415098257354944550240368108853635281229472419176461867251225637857683043947284463720190394637991226654447326266364268690961295199378376958767281667785350236821165135607616844028163611515323890672278667503880640390722420636164525231874437708457811846962045813454346148622377662593088384933534825807593687784316091455510759780430777178665475650360231222793310181976048368995356716713162815091195710152109759648546034817186035994481362686862558199369282327678496183253872224029930978286853785705610873761143996990816907409638967904624918792151675172721861403905220744156389856239097592926480927228774276243544752317924387552465522311444388969337879366317255991174198896739753879685632817014768113768506440862416989784567277270595990978988354246539505209376404167518312848948767019196176837411694810448699676361920828537011718510206844074305486331613582495868806014937532017611725526564274878384017534796580912683810427421220578406053751170372349882430188533265974073518491704716496045732743338008188228430733652281259347373855806322959747360603853685648664576742267356160294727503159061856053858256207306114071765456698732503734749423505539061937443766563614014833939746759940732311933618893068434946394670621138813454416317096773427908611924718863557035721042157974912244916949191524812439473027084092006698251703260288633505904434253353990149792154168528700547957131714619800777105849638543995595100113671305386712203327981208149361420222057026472004929345847915186661825042703863882177541955699560673310043932398008497204405964284816343424364872177761556710143365330099613265583122642459593064459237556887158527035307691745646329095849949267584724659468104370769897618537739730880442853738187222814359718122323538895505655188098317470709315116511985629547785000503818161318503749592971568312389064610286815221943640352587723083305371067675168458432885595957207666177023388649688784612604887079916511519604423590980081246342842647875939819399334141340981750143118089420995997901154865236727443952696551534372079204617919167698380738068635486730890704151266090472030500522338539251212746135599374078002775527449480662077895656241741992470402115741297157353188163117464471187408245723663213256477594363251214962253977895673534723696558682668892224914114887589792686677717864107430100523512717222207712933116630695639187128476497805159224940473038610808102519734750729237349909573384807361273772260323241223287917253395181289352225059910468715030492553318956740320925989607223367946448620107162986048204849593125391003447965273132396069403659858390404626549092084909637854158616291126545298299486027092782248098776127767682037102467995787764883136835099316994145266397033470425818261029592262926990239965505181016087717870860931145336065820842721904323861446846626318231912629553039367872348411596898214944818276428598005758017501513384017665061269778030056165641800518761078176214418597368839174218289627295853757706454210445786720572257631488465963092972540606423345788401849140058332422439213115221160389151258785776432061800798430230214309081294859778395902889241745048079169186572251187306950020436221861857429236305472421310597256738027960174176185590741721539600668046442173491184061587329500493515763164224219528071649160112429690539322823271463666057523603505526486924292524967905416493425675248109335028149113154590609817007149102658019591124225983281564288610294157649464799223989291988707538835974748464495530950646639112460370968677649504800016967389434856485073483264685479311076210385273514232817299539921944936026917246203335340925299789701086514212216180349590816624124399151221258605591848259124523361629608166357934382320317108535100200574972887247062159643548638335382927967032978898899780548233130036828570981958082295057036939925580264447944071196448058577154437929572708793446882513531828904203017097954392041274139365452244999321856221789228042904116851614379578616911582456724591932621527521577775962951701758765376943973078445965493593871023705508527356516221134573169033024056057513542122489110918859207925989191506836504619764661465047596936698509237955062171143536086550620003654889489653058979112235514031371464917631582070029376146732450384727515000329297786336302561408311739082178777450029431380640112708056825061084846343615795912097536575280219728242295215218880725666093543366406327077041485728327682406854490801352134031790933084971967087293081444279935921462125117915297405071822833646855696320842547015576691390054761260385823653223926082785001623816420252480190551880505259913914056738478457332386625568068301650997828181067363893924870125998019852318609752177763516936777909071432739102923386246721089874072380231431229657759229989932380373035075983778907202480266945068794883348626986591821215199490541649966995447059405060216200040089267379259580353236328329731432841772559712151650514228225668698775959618637087687966895669460179869869979284951726006213000542577356718316887247008732278080708967092244867890911799041185137884435223803539932933929798632543433726413948822729524286162423877326909286831253372006298262283011667422222280100596048373894089907094039183210204114727583866803715582465904536497020805944606580545028557811115546601553162614641826856341155078443542103194841600647124792350075329572056895614386460275544690417349100205123259811108063037870264955235183980408484533350728387228880107487169444319433084320807971798219009265785280263912630002506057974399500722848979958874865808498472321404661124651198577046361181533336367499827200234637758851774718591925438399756944231751384770699687529353729219503276086312995543166074116503699492217421357476600057785684119468094079781574753480612791364202603193292363687048314814293345825888928449326524031829333562931729567205413254989407439124454411657031743161636566343923682787504038179611345635861529598521721345001512935333872008298066826601762883869930255586552393257942673572038009429524409752264650201416323756115581039923523729728996054077021085819187041847289277719696718490492780691398630545555052954188183918119432569376193213432111317092357012598295075810854874814341323023766249130280578910199340122062894000936013593728784395621725306229980644901808302861446140382463156387255133500435686930999712297630671788133350629268604738013098370594037245117466027948801064805619901273507184144764429382552253165536056532577475371254468051419284880742363395697357042585785160466716167836599749423140870846575800868601164342058323683481050744793119043220373430026028720276648918213128336756703089401485771345948276433605148983659500536145286649203126900568453461497773626953981725636201961428684279865485720404992834628722062206508696882118333252017164432194612525134882285024427205504762776011322963077360177349104575797909739773860258641143518950179305262438829205125746185118024293010936614871387918308572453614590847048212746659615284724176707381160147672546155967185464101555410072900220761350873047656251015856702706082302182263101142652817625185254046469368664336116033411557388500441299940560600646261934774139421528982502544433854806800257938896137940265590331325625273727702251718437509206182801297977096450102080720657199608879361495892730632440087327168294458149819128830666906754390425053328566614949262142415474525294852421681892442468110415812509062152716449966675121693464508399226415989792242749329985513047244133717575401743368273388769007863580165115062349368135958785638481339456120529573988607882052475498665472296216045615527846457479460102940937516785761664096476982019561816984723185167942351777965084646913720246117947813571923010644859787915246055746927726863326756442734036346049468068681685168836387317702217903061428264332274118987608266319907983469897036219458432777183658776771589916688495697929188405609047084715221485189818367818525401104458054241577186725128305690557878851120985551515902860458121055057087247226645677852880838740197345898599216719249377286672669400977127493326841661415885532929528457549359808200031291500860838716383933648147304526504207440590125968619609774786726754690332260578678739610558577689590460629022147710240371836529133884547630176752174286613022086336565287031528194342336277531666688640910374603665989286644148315536788837204861747277471406163016764445036350185381890972040853722665238218160140578122984945116402481250857823314855008907060497160909917613821060386398745804890114173437505763846401243583903599275501223162592488978059893488294651208151499669319580199976654117433106978159460765380133141895030282152946057600013306314040712582597746444824841610176901584083913222526066065999263542414164521212280424756103864348315002041985653037512619139074487828314833631665638035747652440692487005154652923846987873400937520324615494613443576440414822317076311111081262525900607023438332458826351050768940083478297303492024450117800694094811170937438757493087387566296420290686060060338801870497601509202565865369782991060222013961830039226363497620688426490468064226946904304529277637675121206197780431023820008418906583650459078667817992803137131306576538620373964377305736929207648693094205179281804970237579429290524546696241913733850754149130289301786294413251088786215501511695661641246827515567875053834146464890281522933268987301475893314293554188381907458034533191243561548265765544847817458037904028866787426608186145418616350337126124308172271239215252974057138252164281597584717889859174796182905381536098198450786652337067947546734094456769111431082604584274711762724684728992746655971597657588616909228986790900337275375447445013349493628667729907744756999094930794358809084083076229893058398135331270067725024117159671403448289270920009542017237280100525167918679251206870533938040319907858368619535518825429449264552377780000306437448260151390052847880414373318775850344161227405666713536916543907702925513842338985494739529660322684999973892621988768897445969061926436561085105783519590241926392603005505430531166130354054833427255241907841221202016099499182729400627440635268184483236781834745691549839855241763909667775651261394061830452058239825252497597098513212093858576859413689917121818119596243252865587422886964796140718474906042603412849254508692563941242021784680920990753651907127791288738284768613602561097124263337077374288664692059655083249198454803447288812776650575231570926043367073067606139867033189296471486579147809451334637722226151605327557614308235154302077972399473513780450778229894214596243993020974971431340110578716796130491603396967433311859618168813182951897833306261533832685169225823071063216663571641953908808804688394256952134186008107882413659999009100610669394532057024755987419460696983484020028180662184647663615036210090949554901369528783860634961472499487738458293514700250861703211879711176577821240316515206432558862932976310007896465692619103307504165139513526559902110466866299878403741782315465112497814207496629204827222317810374257855878511580448131151902551895417612074442215730447669127616893266403765768226357704948324275933217441336434779358869147124533182582315125876385290009525055177696469822832881193623240614501522058624743056500092115592923927738731770802961519082870714558845341925465672566576768652987872430537779910172882717413725026668392392354657216079992941424817560025037565255497895578768787491170767487842135262402736039256377116541888781563801584852219094311062348660946656062042950927894506649698479860803130529060288824956742643126490496851441171657511455843467238795854863644767799287434564927372159943618291309156895118891286100212908184990679007853726934909773972947429689948347163351204152908090032140689670780703079484784665352605691439990947336898555072216593462210144758668451441483415389746007887659941196038658695203797391381209901986409297125674004993182285795988341028834520762424427994018438686062934870992063229515864886857870531961397391768838088849895354784589820609459048279748206466810728399802679071167969196857076410340862932941449483567966641241216431254665186116870364182325936614079539777183330345735050016551586472314728733955187198668163809763102809202086628221682892861058888304051282034653131641729884868477433599529864575249886824134647016699066310239825882203257302853747727572931337439072041217858934310923127524382071816235093073028113358046550932585746223453796511336393979624178729734655749558269807630251414559027965974952392811604036356679974916045588632393487171779585236556323000141478389900715467862944534384452894167242434468343059815422139939057233331422639254866391659631785765356755099142567293185477681935490363070297204095377891218421298818676784201489023829604523659932776631573252121470654481044507673843026133016675762232061782417374567774956832115169001477081717619911851662187614286810085960465912963521369877834646346611195080836452265695548107480472116341689745576960460244371148259072561307304556422889223902580539960090647894861692769776206806112547328751713702798716934082461676270456220323502391439227938621659399485830614133997500825415843651252761543396565279763111075531716557751562321417981702079148061169084341547169384425914567027685680124053628502513267291011551425166196376197387892414165708858633198125232507692772011095723829708346427057589327404537232751589246065462554661422200871732500827843230233737289076083671402128436652838606678635027683960160077073854215218241841402965605029434617159776713256796089583747921467072866232020919852707090773934142958142722249530561695142230545686881540481746909178407799755321966499764078164318929812560447612822365655541393947965966556137535506337283749675756152676423211122891165510031492116832393633868594151521673581881364004670888380555175317030353558255956476250919638621476413025149687631688004530479205799719360309318490709718200966213091387450845894251477244943935626530303487468028248248663246112023621076007857963462205801273939383500225449639706040010192851244517415644636152505116367861710970538029549930204577389801308147409109838231004092787461556875823766335457481270635967456036086691433443195102338947082925077073550805910137441659637701737166545546246832408558029163906758572493975003722597712017392777009516500299293837043855639642993852423241027274421603205415275276978802353046347362397499150836826278055551379233565174367338101230132299454417723717999088134050576868577958765087283557100480106026278546900652083291762157366208952828908945617281619749948962851424456613713590770163147261081539082650961013119111423481341455577094562629315473741021600199163474488514923843105540231872684617139537133441167527808903894606054689447928824133024836635327074532316211649209435451456552248389279432890246397723702298000440516108514324899830462634235235182067271200065034092494297234882352066695664670983071854578430045137268362336348620864673671495965763225411751140423724042626277258390647276293846714173274575117898241395560955058885398250913229732523160741604570569157930452878639308040972971026433864515582771100779878046811017072417145522095845070690673105498126622561832774952665918301302934057932606854739853891731350885185512037213788371892094158794993178306169933900280021833057129189204589073137778607761786836007036797148143069706559043840124344411767051937719982630007098891572832699307425885890628502429265923053601609844957165660728597344489077414109217496695902950044802285982023580362267666523350336610079969600423740045607184936075309373891735587615930120089069631760514593097304123987358881366762796635469065887523318684365394986321691666848969171624903578272940560270564433200782083121364927957672948315039948237063482463439280257487584198960832983772794102896796702987075012562183508402225843323510460812198042159325428793708734623001955764314674616021753059109621448450257586208482970722800614397275868686149205877526999205324020124900916064280437681783480815111502239921441025789621675556116255428171708383566008843621876358031869407413774653181067420497757839840145928487459731940167804303884525688136576666422527946497021669754139758475259072006242387432263648092451385803321047089842438839934174825446441260518475249604292078278091955303948125442226644575065421996295817555654222311250746038377860134533692012651720346810527850804908276533090474064380649821857705228826788146822671250663752334753942473710419710991798067346699794097656193642511389513188068870509144150559218363345858120578771341730197043270352474622430144033002387685627184306923641915205893090579193269398330918988297979880099180070977293238147958706299990282074895433787057010886882335045469501550320935823718734216361016395166509867218986598049267864902822914702294969730243625300737225030808649597964334839331292439694313239343727296345621339398199072087304610499956643660773414369615673076258958650202972588430405806708253641147778647822017291314205802252603620214837601197402681876631382034129646746832580525629703876516639536611532925404198075315752929297004643283476072844546984515137637774447482311979487273829970462473926991301542156041068257664096022726046383900170098965250284768717357120284004774352677886077421239150274506871383210452246626185820266906932008356509315822806069097470218861726899910602703008018473248492051979794697459703024113550988027351811812524059144550708580878260090852876612566828878039822239269300680520702709296105922328572059359673785777069709311690590965647931871600750484396574910278003511502675419016567522843344557753335966078575486198370374195689227517185275590683396715015263964615185961512216118480419630303699270052967515065851373719268640702044196898493870616948434280133348961664661001280956915789888607492172773469319165293221600235178671746246931736906408148959314613406770367545902859680131527647871829792963761637907597669090614298584869556803361405661398389258511438191871143134230292070676885177385310140444237271433074413467957422249812988120137592692432366628521503638504114293016022354922211813692339782899051018861432156638145931914860161175517350470423464195252710226225982246977586326061167013883477202112728375176372914449845022411779070249322652911690800164355671531807015974849869562847508530581699953007422000385197712165070376176864744094898745405720384187240596860075251776439693071820075950371146524790017303737897867488970833224695614246241312126706115502030558313316665035807715333670131126038460170889650352725543390379083293274226102357867271478015054277764779891574581129005416294377406495192317648563419219564864317842780900495562880809416271023369482025274834266323368156657263404727332458237609786486901980930572018674205958011576587313694390820984980626845577161898724002738369695847811531065381794595445806087290473064911568448136549505585984171465552512399390803937957550163179906101494739459337475653549428099367617173102446908785760198431715262970467250092717723084077546440024362068937395084269099226340207681506156578927063293472281488133031417824619559101625903890572613373690441937572620062745956851554456180845528166306944810051893184115051196673559762453652390288076144513286282413223802076421169368098486251993221297529048600984404599110887498067514767713241359345837622743465395080202461673972998671115759163755499447146220796531297153246731248410720474948167172623030508064503766243121413413691067976597560666559853737083793602636040068775313328349885210910369621166145191160536488819333051195013388952031233165377296174423260616210607862799290175044674834494264258158728754602593009950273471253571898611083921581778373179871359970544042171665283577429407414503096565328826340364012318609866470372188507837275593370673678424689592993866715003434979378089276085532970895226246838804819452921457118705283024002014474267049684096887122992784588735176891711110477184913081686963855749742636811295281319775974335171788392285905116304714331894319672841507763509993526434902608122257399781083568876257881166514867337139522354905434596543277664783839370033839381884195973808385384450619472204804205857960197954966004847626387268334885892370845154213955477014821634219580191732591969312640836820422495870273069658980971530407476536747996871051520155295771602954879713009380649084043801043625285936093359543733291691082080435924579253535532438006146216826173202262439146360755499017660775834979030313174348513026050539594551194149566443427418939264166821897784993489628621660592562510583901864208313741226435949385509454140463363399505217798039698646099417778557079006587661539066651686434222205824201515513741979333524057312134603096680179278330437232042555299729036085888069255189081594019696836798485546655447585928073465875551631515807580989708010280229387907774806284316482544472224935381015140351467100603236755553499685065065981962234903884601952469819445291581905282530801102035647159371482942079928812572357567829322043802340749022392638755638225448415056016087646560254539835135526700946124673587678838303214755468075693358777965824690706989597198979943856695890891535840334507425659206194427715911827717715145921795919479219514287002406110729831511197122584961839310096421711719879060043974752882505806822682483576626629223094184807369096769402025816537391064651529565788679828142044496273647279270009806969888965677481291358107141283057351965441140781845177708559790321215046287192519392752245382546344238343523919653165806206727709387319188547429468448328463378955433861615280945257189561243608383325984431226866358736084579561335217998547438099518307600945037238075595743880397200309231615268915116488347560792567496395840496164896228448697641295398352573012029015555437678521490586366443115565036450776072988017270532183358953136513077219698476224819789375924708033156047952889268009100209552532465579340485479426203225028062594528492826591612688270287477835971967162025765398640310541756007258278258726090207996993293448235494720541211580434309120953613406522980250568804844330849525123529863849600249845862404498344642948760806017601058565164161143115998009179753029874548041047130159435147049143343613311727197789873437067153873030544182002229430106999220640556896561237590073242807409474585316019344937153041992957810491877154032545944148764882720457514796714249802625084585549324968465829354978929780305222036277421454083128089536247721678667556323478923130843182185407151045821433011940550352702370417612052274396742059602224803907258574691144909988785194355453733550860865308152389922186446687031903146852023238825590767560187503736853874196633002245342356496987682680076750242956539740568477362256812708351546420400781501992402368640688774992931970255484364964586400059280233242261420050383662638805815444946115114091954362886216349364517702701972013304921197220682494334502983628820813215201826374325257014249373914570343199119334742860956154189061252352801680642917290829804726978777476316731511407231021914150364964687659446483294900080897295544948040376732101859596294937394531695815130717075974082870299091463006831066459232859788005723762747777153422578753379616085776375238109630807188214841987547326054548676637074575615442772757964855744929273142216009385302389006090914056646063340657107789844504886572212795581242840912357706304023284621005981118214131574687007864478232528951338061057925254550194410459545366683695926586735928447591202303531370506965484024617230689137697375308802313108334072753712215936825772400602758618734235777467233520590318608083271136580570920653722796078952028994952865369898179685589202127692244232589766481102180272075509257984265971440899043242698873833681371722901325323436358595237001165022586244175099566993392520609957078450968474513700031875472699661289446399076961346934312213159643381169155926496869849383402483263866852276955299679226574961753492494823227613280462002875629475457924829526243795344769825735201901313536288799245494356180506533414499692515138181328376062355176762816757191066772227746617255416790052281157344598988254921992366527666367559097461656563463497852612855813790311055946105014182461374406669755539911740561390852262353355259564050314081610815876588292502895870087835523246771545305758951820980892958509071794302923160998714905978294006466899724701572384084716626801127731911108117985786987849706675174347467593249516274725514249035122111818958789333717881798243538208520791431557117593726226982659416123436491303624930650204329243590374211023073605536164318733274785793993739048850384372064095669324671495878306197275080719027112561598583442496974883539042110202169729181531093453253836189194973347308625486983848766765576284653032912731214207716871293852304936684835972167322148925770906911786680187839680842031057100535406573437947282622397781494542909410823799789193268166669180279501794202588204707329966450826069899083234465829768904488525416115908899816666832759731918560593928318250048458809439706675720803987322066868663104273011563978420522307310074592975958626906298502803932339839771226395350874580788631891988136728765470463885940878736947581126719738667570515797257996723177396231698676258743257614822849749318720265120355941178862172898731658828247075235620635766792698896245191986253913616594192983856484968900749747506718725935796439648275107020322050394866986581360485452251609875159427440473085894781533645595600420567344952303646043719586906723018222202227188318242128465052535157634706455415029485504217444567851238442617662842464783979012273030283885044725871667119603447734835991022333266903888908383751627422261745267074052627896855202065201923804978953793199100143736453079509319336902325316591619746455005088444527382860023903387650040456565227494726204828569938072533007203614174115870798526724212773066928253375421597734031982911056967492375787591237498722784508638263047284245771824718573557938577381254734666987605812975259127965022740024487204187606151499370803996431028177100422587092204436098780603877658620341869236094797912574689199921046075827079704201327086919758023435219091290342656907731876074696461925616675742196797142956150213073459463033555546729825482297396061723236310744290370973138899467817351095621392887637496385263473943407429464829002657218897836858214912671492797731968340427999136759273511001569679827289650173211453686137658259657534059033550473740300839471432262189941812562339495509238461147768129370761456533715027244365955063793322290525076872960251419921355812099570604411170744469360967310275765904330260005122139605120266023942728430958266295111198380442461820003542092395710045245962111957805924061644600320497366055790981219450110492996767423372502536726207930255972037681335662260092498301774030483548372001185168012608847784639764789024980691542275354668348417496787844138689449088170679395842296193331572399743253864592565056235882062099315216193935572881879429982896560168584094375812430781589768817368742075310084288307681272675917621605924356803746989835550577406659465287249427134153940888486340669409454365820904440769734707843097459484960767059780389379743101558248173159847766568981812592092281294653050208472940432030122560898865652685070762259400015659709553876224964564448624233313986519283005752034657044046908663819847599980270483228925559423438104233545560512529511366455079976199913131416558628745420665143250823021797651434407901617506464090813563383525577038880253420841600432200857112081701169445019793424015025520800285059960815092637191211145232805786719756495842147266039759296235356144502686107458564987267849856236729869592948816689452936466579170472512840255952441447519105534916461432981210882533557603588921082494183815737233574104285957995395649349360411698240969059389993245441467763119366365343466892405446258661452853844949081521591733118687161093137419736168765931127131401511758520010511255194065888058638542317944703415711142587465219386685750440626593572161159503748970096294509598665410930784203491217686512010575898474112271807721985284197494355217294640204679198895076078483303665582141350023203930790102709765799970327287585653530035588120804418067902731327076645675116649061687948168581786149632812362474040976937108651420174117280470375889727519021572610353272336387434011420865584998026259678660240241167202850289745284317842944706336866000322865100615144553173111722770052623299886878838364102529232828389929209908189887595969511318853748898168449538835518709097756789803430200980447779227521575774706386850755154192513685365351545030533082996344014431956533324544753658050807370940841950972032473517705199990961233443138288888777300041144698538199176058989062991398019642666400953438846998850356438138778122730508267980283988281386790060119493559818081415583054048595973939316714250250613774409774583328774716657651597165355949400791753529553678791667905946261735707579365908018713603099852284593005878057351520355927087037647900885458003589716597001948858259638238687976566168856519887306465474924526831359304710562619917653963688848138417369440979905003919542478578031590822124871919864726503260661332345878422541581011069969030467744552172256360020997460678212712461817313955906288251634964580728109127785123729868943701980749217097266299371369947564792743405942906730146194692336456829074914951709019903492619209917116987796168992794450515981345810188254382267629585412827873111221619121233386149815544706499807582479831925200827541782792172734992852567623641797201360333066871299359602584041610680456168496559388063548912148247492291903154891149688455547984674996740446360621636829553208132843376226614329060338262583166350379371437408668221993659343536432276088425096294830152775750543874243581013106900153189797013677508448036008859159095214695288123490037935405980040668768450439173263294408691389558294929042286775521145143581366570352962066832509719662535945403186714493368264221952893191390231293838699767508265369023291684986995803425836903431101805773900662627353883349345405301462744668546181481042665794420055515376337897797391712041845480219358640770031508468361454436035387494191349353095601012749555828443353778864845900669335677478494794636088313585972923569711848952048652403959183100530307858515215782573332251728206372241961501504503774736221668665174917679006163469740464223862055859928501876440895659313432411026507475835532304910070707490409713219392381980831543169947109858381290389386948969246627264464356267400995560655550706079908369886867950805648575409529517423355913512578330049623850156591149845644380076303546351860215358918748718068423610279263227271167474749555084123126590995069493991263874242741400290055581998468946282858557802535483399136336871921455303558889875653708431569506385669757599699125183759104227111254003123322517579312534993291860107049945355414256205239401288877568541299187185112798440936743328573900049341281021206424460471755324451764768347581400999488908284086284213238186603592703702305155825401697097671163784987511581335628411388710846902367244351584928750957402521260345912182356645303517107568326101495681942060663418252341022695920452772683353089622629639461244035562668654147444891807069342923283463721122882230790386350443359160559508494132079472755523211325989956594275631259973954005829036199497480152831228417991859239358869595211384168087656974435169474406641601456561708093325501771689993954897400038546885323723399609729103567141502220085279066057293872313427880262477028155953502259515595011372394161844351149181051014240047843831976868836058691497506759564257053551889284638625398489331995899967843639034600222685442398398404109769953329036861024861869981038597415218751998278990773135545337671012939310352397279418437948329908280608288317799449935993219310441127560546837604045711234430994193621549505842547370361564240407810691745455688867289389364395060485727118605024285940144972471238912314126706754481778586179774084387989516866003369600047657804861828726499246240738176909146865197366974032037149235364153498999924189225936027204616623396157700143107096872054801866944365306095199916410777794980103576633654974919369885283069438265090912263821534564942538646991549383485509802420933848085127325191002971507407465417950780086895003526549258917605221181295317968308576048253294292866802233756151994714124149838812082132373002299751409109008492575562749008949751184180061051526566229950651118395031431978780135060323150902387355248774125431673963321157990298636084759460132738333473973509899495227218622869919306233039437458829128507245224322537376979772450083217520850708009469607642148687602763419965456915198666606705222397091651896398422622690577583777310718432398424352694731198265707172508826118164219382269941801083605086731267806909994518188877670875120648086751922810556123604751252969967254910155924357703725166269705352905004918044569870255999810430891992802351264362406954162086782820911709913815396903886142204342953618029027511047228549770338601333692654026328454888000106495600139270743124282399228875636524874746997096464850150473340093609340797643957408971659247516195752370023301166964262888753071937372160545793090631787111780541833662870730030681164908856020249895786340165997451846019456340856080065161332929494222277437001363290751395275380794737348771109148363810737278721526644505271295877061172806477533982869059346468982991143520954364230299902583531123811495722762144356892657319678734888283566633577955573498123283463335845986966831061245256385823137823750391199645547266915064522806436801837737223285057292396487819202482023648437994173752842778059825236493033331868052445668556983963928354037827790375170395172222933562480671523550224876207905843506926919738635537498986601806886273156830923174772662481993651004976758180199314863009048819693095810068051286022487010141596718358260072780410733003776954925526949142836378221387765451262106138235332749948069299790728633024355683607434653962389399886420815757250556154573387418719535000905112317720562141143356343480288843549231127501612128270143767681319271504398976759058045229477299017544817016661833590987899505078324500097708918133130294080527390942371052730784810053747180767198233705722491550272109464019794355881253864169676813107590031561539586298405353819797490231998518004811447972011404543123809987782125141216577816489175612018459734963129725619834130443659745217310807953675063899037309690617269737541262775588166277120770089277751817216630881239152867991023557715189835257542714524437097520030837725943615440301705764502206740715203103046684425597408172998067839149953338573841097767094178559931615960994820069323418273574453556275588579904742744686175567784552290016649653052592742220504582583988788406070745368449453665961069260381868626721063629828966251329744588098442912497958592172748589322549864693067549240083485579393504493615861855816042619278071810935295313377685189559505805938474761347661622551151392707837361633684960096272274946573246517426432235209376645796321957770113147472534463258299764830160384805575984355806080351367775339726342265577591557041700452281226196584263828968303386372011726789236168923665151315767079707377953132990859615069265719658702295047012205157442498556778757441373817374442324984629483734140441512742285474041653794324015151611298998970684355950209587041743298818588185598652983420002109879041627437297058662833749210742310470621697391207954722089241361780084140875170778480390296707019768446796231284519989843831334580256582401105359344005431309532007797834263417788839620344568945090018931071771953514657705428029607608618959214446920594477372522442209343317915619141518557389670374005947452340540260001666736358038903115100378848487374983313609598778852520708127767312544158192392027442635998238918177786458695037884083607943174138166056227178707540273124690437716895189690733948953392852841631130620686148512487846451355085398248644703827631393784305651241450547714846128741678699303445804325811772302623019102008012442902846832253410667928921702016138323159633565992231076480327896276351738205852998342489412077777389602617624592066265519698553142742763591263193281148278207139713805922544990794843420203835674300040201601988151566489163511154646769626025515255964588423496506545852347146454486326688763249167143129852777988698070381400546901637937812110934712018142940627337651025023987511680779064695184312556985170120028914726535963935485799393096296898551917259979074493155185944116886522518246523098896153265416581699309486461340226967593667745839948651117880684946048964168300601279600963023725767179901831286716671526527168741121332248477066767143977480894639285094411152771650028522083032087023391929640522563448891636134767100004788044413776582523463567547869365027958487753161592073837156953577449668923154750471223123294745920364863354453376921618133990542545682879279235330785465299036052435678719588810346108231154584144721843421512429247252609788601444691671563317378616429328376314144619195961950643279175529705836284363288201810250426369269482428969494440972931949447425401887052856558473314446892665808020746977451381593049268199005105090586420312526821943251949376105305535690244556655659806465063653940263275368219320254935805237564907722782358278579690424321644831576808124742235249614225996601546468035809004284268564014191520535727918026209466742183740002167638712984550237925652541908805665239414525844137977467470425557657564055209286584291853600012488330783721838098563594284496191605614217966767246336675758229632538638972960994202201253891860879636516293297849715971397145290249758125627616033701136505983895345219187364774950927801511956291389240412878451053809621432819528607855161673138884347912369630560886130290190466947618822846598455703637070685283504553860284664024402665734047314169180846356002700406251118471522488371747418059895282880717375631534477345989323495280338132264547450150322405358256798648282929198930683016976376256390221917454588619797898317793762174656964589549461765266452578700720133033724835017912567382597519208477384721337145484587244312494056738840812202362841241072387218377982515886014437301968019726848264331797184673645844282213403455113640940672813017097716940422594488148832956347267385052331423628394671848346713955897515138330186539974403598223052695191318278866339937484481138990147743287359772961300414107346780504374551462391312509558629557862721461337124347978800645253481618896728755172194211215512770573591466989525403525862539766213107595128942609306043868453844093408882418211406288358456347543429586223655329985425508828385177461831455103164601365010933597687715642509572361147580002127679256994342291176979118685530918123354321568569023207963430554812596064227777870399374892947333427530584332981236985501698295064685878960157099498541165660015403834721270119195629348991465563871464409188407388473697014864267333981780675764582020238637512578531131010526086680165740940209557323326625757674486758878207002034280056633598719604376479157938113931616974282084758778400694074222275895256524438381749886844565758052891055396533267966512778511947101110123061318770914616496704636065817755606000073359702234430328259715775622750947891896704250003292036169351939107706508710171133770585102058816593773269006709396628146228064278550079756985888608397837442720196259183334726269517491729727183643425145278428932117564384506645079630561687893838315397872565452227179246867615067335732809206006534892149494813914542226171044501938278977373907028680507748994996560041577884011861349076667666105886084039568696902190439333208341028757980623355001803364845135509518487529676085115159327760463747548835843055506565114238107934219803174315882181286836238389999410247749216793151839260562390633689128808493837431043969954739751614451725434623376532320482929804192783907626741982795604764091576391533357000356261036942329961154359175050079502367078123229361733797045644512670162787280021702475239132514801698357884348032705309952284729942898751758337819377184388072532765491852847207704139904051487756723166815232249454004187475387395501020663403378254990208761159967741676715011855143673515764930140538413246485913176692614249251090568273835395219901986354196203189279296809628207123822805924401720201825393680288647038404178555808904086123326611487538862533190913065366485091164779690572126169864716159867186312921181514761353875778969741005924597158283806144770843501640740626409823356497511044382137573593846826773468953707066212190375937024710378230064902995774514810500679393797146102636506638008320548313616505238163907605286802190908892527265613899991730956643240017471988365522183529522252694074461073415941041713315858923376781376577111767116225514699438341628163664175952609514599743413221094944106647078178512984019375453037947621690555520329680002508788308908240100284795628190827550112406174871346002648816766682641113828596179019586017881206596870132573697210209005445508033613282657315794581961966504761922182586093307480497785410548578435815475107572358027968106265476147492521851637036823744187249986444992411804273549350177775585071088372938461282742865224730471151305239824848628566041001712547239539183342007458458206214047430308350920863763846876724823459160984035726331184327163216117378003119955636743854452957837002286036572232148110200461080397699875103160016661559392874650936061179560828535374373856307051136672545717150665401189242527188750663947801702634983532996589076387879037852407047278874532474118858217104309959414771664665334499390574902263619547001642777060218118394742078539533696948499983556648232446814488182184254862861735270502202635721247869258618023947297775802573567749919899791261053143639074973436745938465036516055363060470874074442589136799364348711883515495952612438569610868975930431209283745140461184811421994453129127695414606576265360868327253149866833509105032788235939083554416680465803428681517504120873236876760277383184538687282660194314290167682551221867232044696628837336806162230891215390650088562058260239300204736455325535592222422890414864130386283115739107017299241282220887865492901216373846912785045424772877429844088287750112679215806768548658289551688245588921139001398107302993007508185909182513320489783426952203484546376925963001778456482942418561869552746532089546466188372544457587111675307681742957530717607027162131682985162109208132739595872553188820302672534563534909829317788987992917240286211464072785790708015516848863563661066505994433687264961065801596734999478442342460179244034622918893445740209548624751494590864938179352164149567750890608125821610199988175627173697745579119413459657818137563853649563414798086735270529622125375448363468861238890646675739655362364538059755202805917589748336354493025143092258869501702887600901534182137526015742381324744811836039848187487312483840809775373583439817247973819109642249874648263755045768643347464958727273220404503110470026720798285177570407164587489459327645312097481001496595100155690754002210214622942801385742713449226185570960403052617900067694423617957699663509283681619900508363778952792913199511923891166014252470560607992927696405962915382407672754654484482995352688661613751441687226043718563988571525550913638330242991982421353968866842043283848499772878199004393983617342239540405329913698153473289604707394088329747570669819903737871428138695114817748413983703988822064735426852825137605773012877055791773316789980487620337985190504868964589556569514415477928307338397220761330060793082062366101786746185891140381707973684777230539092643527898145527791908589473776162688552117479292113101896296662873232809043298104875040937719661905192265644605989702403379183618138933048775173353494788278518578978211526745098543058661441683159068620444899364293574457027586066623495333105358380433222977027578190653315508495023951190396002377486771645242781796318688127960018728173466706721779168237040855072155711792074096899266727480018539999315612069565278504645064025694722013397897578688572720102955491208738299947589703572016548904176735193107720098714677513306959686911769160138973319460429580694073426177308334133812735982340809000457492210660860209532346485876385032446810918234625162546408312416994638254735124617910856899098740879276610945981707609035196568511273684175819047286846666064992453440762134039755399849887305986140456058457722472370765085087423892568155765188010518109849540090001246450018283699480746088639344739459061385060515381973619730905097976311293118880569038656387963604448973826306952272277476471592299532318378860371037952173694883708387850291254183270238471293550849995572437214270501552387889769547975582373898771163010462036464073690542853056275771097630769435162847003059481535956681318218467378848056364990134178779533462452936047531804125513872334152672207406935609134574816842960406003239263750504091091393330836365812187924639109384746392733555829178302088212297280327164802441761297726034737980586876016734725727442154410233261706900916017470336195449533092313484969492077584677261368103045168116309107043563236761204625478881275458855731256270464093784347408055818898897327392696596170425866304524607916929505315693518215658613175415734492354700531681629798265703299586497514008522284504855233497167770793610027457362921922846556256323494260538869393472285233230402246882566646864204538004400969189815136993152602246671055025161615500392532044530324340971056852445440708353862580912735055534955559560269739458201041077644541158102151625927460240785559743444768712738615636102189993355911719273668710292081337313461360734196663963073873633238129193221767159386926004029564053338282879966557104505928178010515763245597727350622036617649480349044126838764616367590889006780095495413423547039447891752543642005654472827301674662013958715550063349177395434623087562061957757980715225627327293767909863305275376441975421593307430947832756752819923478477256008212235950449121863299801672842215163026960678376577155572471394047381118281831701119734167862472654770849808562878080464973108963878971818913971648999206377138981073934617223849555730031237166214292210849711457818705511264874646344545323619800803025143890589470042770389950524541043296973300351777170582361340694733853377328626520703325670435483875556764225585172583528686437006517342475162024998083463203507805770316835159311962090320780824945984580137818849117789205985265897896339683182083335877918450367440434187796890923794667643884805947564053437781880771371803537519539399120641091083997299350070284510230145753949417367359988129192480704012133655313326484666534070434176181940026500874164113040405869106653526403503067092952939279213776258908157091826837786069544448817771519187513250341206130635685893660279538204802728012084343116737675802290467557181479534738060471667836067857478864024561399459961487992492558671410981492417899856659322333649107914835495499166647839761722133885922619098555707972562264507948792101276351637951683994085536062593722649429669566436145896091434413515825069270055096724891073370809793440371729191214914204354980590504406714603159409449425802130245037867553148011398857508505133048916647257606546234089151577181038437560107419471376864708183629903199227783932655630223309468075419468373134594462534656118478408752529729582346544326263815599758384191038199882832630336863359871103802659709576574634987979649230497583893534778637961368343788551174138284046928201643631830040192142581990704848107950283453823066500300809436380217871422788999592923279406807152874301352023447924448330788037135991166804725650080077562049084141093837525814082789738495911954852370717103191035007510391059914798678269037063494671543156649306196263467051475844320225993068804089041122580200938807224015113106975549277817821839879004461762029051577119154142002102474736814821395248724972753770301274435689138957330755818213134340057552864953813434015329107121180266433523620773494137128106168043929409704720054767209218743258179087191172393777358351994054021028846030913066884642182515236035703859834400401019234318969655982265748100959870219566550169745592794770141132645379645690560289106463440906162728169059293536893740915698277291290587874966717145473135530215645944944000340087829900851698008134617964033174289911645396594412559501494887096168623815061321782370597884751283335371760782079101950498581650740395285261741863359460671438849329625445075929311713289477570239274503439512130725216740516257538957684855565920165445421846428202710277925671648882994522139527867416006301180747794364929502270474492861627596597107510029998847227660294096197889216075735381009574579616384580291363984719009446493529083524648997718593674483798726009957574358369233743296856523302830402744645910256761916482197831431148164364533242639847686470278278914823338370414528464190784217009702446096351206175714763389355129364123244300299047840719666542322928380691287588323071253033974168373023390726377524686324769638214785826138160845551020590169887346790540456817895663907633619027825476022449984641604010882707339499072437045206371285163457252070353549960878048589201942078414327469010634932567189727337332720859797812348881140671621715612227834831228286457028893971771645677592333136424504546525513942337374429770888001278245612497774432259817840702039041720897975550427058809280646294418002131906490345569029040359856727156068942433266586823468411642134369746410055959664905899100748883687455230672661338210648139990277554880721269296255170132213459863628728856336142008074866898977016260982445898129835896096900074900533646264693075981237722227965450451653789348908689331067340041183020058209451941526376993985763215306698465340970100052628121659393146966852572305865195796444210084919004356991910943438827674107193978468935428822842236248874262058693306854690289483463930853428547497725214408068633821067903790512165110213381035630112940106006037209970039211412545030102089136556542313067007573624190615989590803411207445102151403653693812294459182122895415121197586146534077736358970864739011306377980680330664829593116054907135189923957503510803158532673525357849771958475451754977003037777843006187502614711172646049358085987049227918444288706474527075750948456385913020818455305850445885915987347555342362387293460282122281594945167746448791063383467391264866865390655760579972703551470854630984151850708655837574713448893675491364762965177579288853580457617982604242225305285683339666574494395104971711274712092403596944114165260075358196364660711942286502695030351803931475319280745679652906436369534992457063382938400750890149743728986029779932073632448551293021749622926580321079439296089527718424836425254289203848096014843814726242216084549893066886170248719465727216443019700344121264144818730355114683001909509328577137249676750426887108477599034021429807221928127425019198928414650900998601440369818660185241394988896625580520755219783671165869371460067514232698413926752612523317691363655353623165962696615080766428602344484585304695902952055955846091259748417960152740366347302352693798928928411174896172182414858424724209908168556085190389226217412107645788045350504291747369956245660824545711125998863347623048711759147878084879920740682741097835029804221762192000120170137225238362380999965474390106189018736185742468021599212349080094209829176151003169685031561319553737435110738046927808836483076698743004059527604064962374212364268493705360996540023949259078658647371526330152652910445297944939904682149193548705478923514372338123279188633171997781887508914287081579323710944616259247605036455050272757419154500008007413584405234563033966318227008130180784504369782194907754955565757172758328629829305596383727306930483495274582849406196748644971841715938003285111048457269393991241014856815602999360191120620424608762301248342332274510480743419322877605297485556769946586676509886257882481901599659354545014604368906874934457547158440418827043312629317899095086030683021809096746282113134692792595578626948889065707497788776895506354889261443381008420420943487947662721649688347530761845292851697506731251144941161956709413537909717617232073978355620618208438685623877819547351106996182415286092537847721465230646807791680833533482390644665546844868876455047910070597197263649653185732847934098731464695429905506445440558341910354017163024351116817006504614184650689773353758706089200342027304548984100888187974167716058929098049554774895086342446784142192193793916470854665913281167691178679606418532806256924736497244456079489705463006261845181763145555059731748437587996197227115487879337311948963344790704392055188023058095519671595351163031260359371080204644027048239040421266726678271270564849562402101834139910593406248730669924117910190943633443972498339385805948730341440376112826160720053697139263681272956974236621877951140109429615830481290513696166649807913432189910640788023788542509604989666278668661279376889936318994185678431789968888164886815225582968907302056289747374464599810093631855146548818517755974526547358597303945381646023503004069186647778929741813512138331107489969862235851381005315991836307371396863034328925286061813009528082994778875980968339460870622835578199929898448530320063329316724156703941998272887046601153525531551560679702440045312499950883158779785864914035279570976300476789983898197997344744395921452574219446417260913665968587697270665192590124223022634495935301480149066490818073729621166401927500328553082795925725283223723836917309002235620748054274712220193421188106101748386683309388723571899599869236473054952215296563715892343824746975236578675243644488442557364630527613117908202974097672178041330435178467379654801558119534722961270306712843553888793937564962016055543811010783064585045592296596148098183009571312048541526337952776569186049161025277372857414847567151540511779911266687030259397845861370855016271369334377628165861532606408745810474189855218885882701361380705220851155051707735163817657806917730060920846328876033937595641734592621455042594594804791024880975692326167931072048401379233050519153058948853707218101298708503372965865117051802672791186059524658709313779378375049444093715050307782848465977041046197770369956796045803004337511715290770914318718073976831302854339196447159966536571063530007019553492845187808972138125754489399113420305886194541848506004386424293224731924597814303489115577301618402860424049271553627093676243511526775428577892575587084343556048610813927229852605091969111031503610367443609642759093168891063397624173170789818643697543667106669193862823555777461580934771517724679098983591798967344531971259371831376754338764339988048734458345344434938927646718213570524041972275342546865251813873986335725975476653396352258647842706389487395604229163005796361434277366703675947153270350902679940377945210070897175953204556353095996849440811107017058273246087123511702216362777283790663753488767265432595158027196605749030077684595688534068732378613620239007624360040781324739857613007985740015091611996369844436832874294222975416434717305790898511556536256952003550518452273571065696550516948951302670854582658621096951546747048272784569285359507477290149164909955955689841554419634342336411605185348448266952912111878518798796720060432619393198184743294004701819009199711940494711241438953945603105724335253061822636451195085231853384876843396785300084336784631010543007842336582667854124175671784934403246074006266245544430319094008147857540278007043843985094104477683344607412646205989379610811028584457577673498700414960658395121180467226943600166773489364815897155657248174902691875864483911510422656060641849077057931404846542362110554916498011437424631440899924835785686864191488679424969879017020609140209865671079244262951298438623308510244792560135539281729509699755022856380415509844245048793093092578459799498154591312704779949686564445362057757718160794513385882521645701994096164212103058835263256622489424594187442877159949441961790849203431668772078120620893148084146914105546305330036400488109130485909227723630219808788740653646597275726514449575479652374924535808256338132214006318311422096917346799182595867780955701138396620569632079058401493867077089073069286024129508435752687231307101736228769502692155840253333392033885487566581771738556552630575761922552630781628485021177633323766640453298264467813383794243875372512523994827540397739396311511636003449793164664171097177666502145673615949684952099340722315678795400776925915273716184966194340568861915073664272779054948694064185649875872464411647892251958304503729426121968873182483091035584278894588033542326313730464666929341526776337913263516689855204370110597555737495293333201761115427645609416496910133230833274839644213791053897912714062532534331292315614831006132956612889623537573696466841907542904897863919903295406709129650282306179361151556884265034227624993093649190736230637086990872189864642783758856621926384604685545045063023919156460972527561294108258477967585200064246320807463421399298194018379648655193656005367097173371697224391395838442558089816630557247729648633804805371365610091827815384222023047774802073202319636484088324559856053104453734680998906559509147901854913994033150890454675043081165586427437344920493848432726564025061138807930070447051112404399424842182301291817061204902200895579607660821225363354196701920323537888034940253798019229128578943773060558369430589928174597687680888373242666836254743445568771199157886910256885018789696054935455378961072425032949665869162779855007984956649775178453780469738226702275136709096582632699642525169513768921886170509221249725619609900273048842517796173315631949059886099358208446371857340690391265723430977672473419706828071132912396836222664884006808846982086864581046328774944041539659570860591435043591978795639042466619503916690002145509787239486726227884392524573659659974490494259358649049401934921070070041089583148696555711359422671198115247129877788199634905181973631068244986625835501049336864539645261865831943891982221964163250596629497306009265404223089187553954543724598516499476247783740869881065345678993133295006814606744223966222767094464816575494420920320277775158983189967594434725933667582395928808991864871826789067968824198263512487110873347358510946654120121972347015142561539124907437371559891542249292896892375946977591752788401351273316868821514870662817953701516554165954310449546364507478080211728737773429795363732992673793905632130230641243338605879969753965373664307527051121973948944600353675229790240927738860167120128243898946872753105728627400928539445536066473975861014001264416192407918254597473853863420143536787536544695679959529217302960914779277765780099478945400799072627761866393821039850390921940233482117527330602195555669616447857551726572093953341271563902490904944702423648593649988372691943896803656825835557455812557746021670873408057948816607875371676600294183310468276414410586866116623391741978158816039076766198917849398287674493225781333728923624769029335183838898817003831283361271751720769265457889257510313121388989226169497730269387840004075791326161074939709622557962253129936309494345249816947550367340347846279973317015728962206133296233521966049142060075276835728703603934841538515713446920320286760726405620637004179466636589158952945279272306550950220257230458701818913873592663700438435039465352447251109873501774163842385056814444864933079820914732808284813853045460788666710780896230924804008054863324470304736557398055557392477547681594718374895563362880896924507755328632118623685680533392397042554301449109395518585477087583865794427147102250991023638153391155586435953451197566732081756963086265304327315293468797190757647660366964475949070214085259045344838702436457259844419357917018670756970648090179542315948401248614845900870142406130594960046092759736961172407968658767633586577208627039205878465069970724376885425832225670905955372216436653350695020070813819223269176300409376391580590148026338096306294407945542168123627963596919944452374064076956875140995253752343660507781154054443815138147735485840486452277474125387716090518315767221627922870424866430349967875321433645935261883005360044582272700167014650082838930488718725089444424678985450122983596275525315925755007451463284863409535135873790546056041268772218816111356015681954780109768330850925742426607102567153839013114323443121888464180106695970734338109986771343487693749723499673180412138329012422980302663695150155973792444400921948709819703105432526168181259214356190338370900668467763834817895024680723692778468993885021231071625799101733828817518252107897764239997483805813250877038488541282127445011229984258932219977870244466760015606209070994382944878282034061047017234175896744964761868996037162289832824758898303904031581805906280013830364192728446899895284243382648864849419813865400354343687633477408091319124287164338527961407238764799907106294252407677737775401168106582120724797614285882268977691229953389119160422913536729465274283110389154299642355168978233777548927280538410531631254709140656001671500070514294023289282061175296221972597339704996813099333410226119190235311523127190746370734444808671945222508137980305328843903827117991674242298036057441329260127201832268103724773439315175173173044205919763772637922594626386963276797421314338897079313774820458728014643778848417518971058025402375666917949013044812489694034865553348539933210105964009308729908539394706033181780773741019996151888801820872031501505406462840334683822959984069411018533154518837100741816098236602573387502091223435552714255957980479068193090726711210701026249711455983509309746565412341364819365290816341513740263037223934632918529252968423237077371449708889119987601532103922612489024200324756240494011339361206861865840651771614637703855897355745968411693083080340075814158433590742488001152853439122116934370037512630229189241472071282430394189420257650203377700377720240862552407099124071981389390132773494802483154054078225577135015348073339403037410898850654773512089044760565427723373379092462350455541348510135914415881055467266689939593744160056258578731116951372584492313493522536542768302108344298657290383007954184070077123551731813060933515535111118572239310950052549904938607414488547307551171322561588568662468869149781171113501640246831741115664926831671898019139820696382676542678622842987079732783850583251637763536337588298283243981458355931443513717613448640223913079166497726014002943909040500769433805503766134985051072490703726550771569464943711444476119795371317269641737912234812481745125393946770719657249583994417707720600946204945028024894687431758008038517689937012229687888512350241690250777764321917391221479096343393535758091695754189934003994624254746585731225530155540914915640842020418348149432143388416913094258575610878590925095953143458042745715221028759577349044970686216938750280158723491149927051188943524313278852354983040507019735058221244852606090305802500086540890228962601652913447922094853218800836624282259281619460643279265615951844537745526002930244990808878784935295775144739698344049466557970438989641595710397877930729213799908288701355042023901577557798725378063833169024791767098712202305525899723582235453473773295209694862949872067001988164777351283259245400055172917872513534061943745753965793677701856380609212218880909032871207702679644272442921839763825835338128195544974270881535597326249219512004559015392899193706997750931190718406106617545294696187278408468102459754262586684411291651295419389267135611308298602461383354966929458565202646441412630355874080043697697961507016877297626395353769862159312578941443157878256033713917393027468808355103315125376201535893820385708152494089791696597509149322386677959708181761848550503297477680327605526745906002588697026204826268459941770107526269391697049825393728265673303747513746956017459697196829554650384425563302032360269653059409535912961186625999359522855235207291542306695970256412734789243000317077164973042296480533444903171603119319705773626130539306203992248740255200439840426988019073821460017494240702329941841234458524059173855439938574457171436809262662178774556645755598606547150240610561315414928498180313310699256200183952872139635005105803702760139269071591204010974675797086871933694322968130385091212187286623973734401547272704868552083832580422007724256244246488073111255164274016439098080495147040998747950288551473991281112526770569067280944347423370675746345501809186533371828840863673553619272780888678403071369692213914148848124686736153386386583025711196863014162248295900759696129425298187714878272364076922679155663474337468423455222602429571914462517861813957353097921335906753405990067610358942016816817296330563665874037438718006097426110404225130018535267001004217838513894642677710946675616730874603151729037949372957087711248846823843174713965364211041971431161575949578115862702461799571489229281269741519273274100846398228476165301951541150657770806139699476989730477176470059289071592714674656276249685404897378253740085832417416409690479613214193290827720900544099789909013323616659797983411834892102865374189309717479772505095575688533359626308147919203469372117805664089388329023347193727771939628688364771007945948995268315306846094828049703244881754937893682277464537814827947080905412498001853838353543338489707846932141425196762376642409723952878686948147398960833855844011743216346759426970380053817502468279795499986104258894679967612220295031045523499452318939681493654308241478095876263235941425340603728883853930141213169162365466032825443003137263550360299158504327539113855818393743653388117965142830845300859969397908404407116287475224009634617432701269005438845098444199765117682295439634113043373965410209113235759304716574421539972639339023998401751062678759170647475592996381067444992021557121679154908220909290662722895504317008978212881746346199341490770696608883479747193129090387870101331118011988763187312409803729845004600622734006957629692545530465779067459715068146021330802100577683623747316928554682247527724770325470085424506415291424742581443981253076510200876687513881793107061273251808799248002357589205121347137050090932853341067972083941992863193933484875571271781124405137519167815863929652637419697335491797449801898274819150284153185800266222141089711199510760328009497912434657238654836108723644062017110830569661681092682690170565229738429414333674385306424536910923885405947807105267074859289953712129968139242872541459696574720074382770195225140704237591032519775347752807082414549741677058964611814294160069886593596916745488439542693687142671543518556243104812557454258409740051852886101341259120255557175669535715373656748457962528888299882251525800288847406771189911226560087514377866163249043957843020140629279517764653713807792018764147148157705379381523160144419404347352120255090724488109486958442891078922012324451776254670589999980310396237184829518937138185187926064594749009531520810649663075329158179392220194738981863193763565913317255593671775708704523259963666266596918614124763143357823196794025868571351198150734373282603627843833460601318873502281937528330023284600042647696852558439354404077474163006226183509643819562918684062783046295150217578942690560617928183683948157669060209112238742924580571119774640271723332336896401328819380057240328526801275435713532200392502712933235173362074127512954621780736061805276725871135371022617170426727310843854083409980468608849067138980530113531056208152508717689210818958855576334454400521066587488695992104065593085708505567942789516342847462260139548676065436080655507202879744128225976320767381087201175745540964096193246292982296014837269145041559644667913810932791072854906963775059150003894963997415693238423946337490947358679284176000281185102370595004661748996312715770868761351419155612221894597773715980943826770706010406086417176884264005443103268200644304945953469293672997679653539156419728791746921980635535185821812091419424696728797670712968852442294918264262761528925387088419122109860979758198238065320256571129768177606784905850788165747340277205240391754167133566248400883536153230646236012904422608231817396501829865904220189305534273493403427587342963729919876804688363933279048236429608879916679842390624075660503566621076747783878234389086325758388769742531263591218443818280455828692749795968015622154715407835079969785044670457120641787512864433805107024058347223339133558785011089082416380611458210062892574136665846085546281525712198292574464620287728224761417935381374337390775117798146905490613834383774897539416741337062170917819297703194887085501189671768656852829951519838879397254920684802224688609644656924300545976398966471376900398421344828008526663813248386716025459939816616000608495487917861427860118176156437713766019040009547756860347750364407464643016874631460847370188801216248118707921582380446440183765771336974225085649674858589834234119247117587120279322362909262602970189625547547455101490469749539699969394070745845950613059405591641306397240219994746998758663204131342950864350883332211202092191718344553324608347124033026951974775056792405403038149102831202164061367749542129286409357218962311193878428613555784564115132617399865295574762826702199742184983685188470832967186812305178749475760655673426024194178310593675823895640482363076730416017694239300145225742573099852314870386850544173905380935554935119056427376131920232749482442758109162493071867695492866818834100106172551687736953939121801788478320160018658805602444548059517416814934532727731478497386317075729904016453115327344464145584468864202373984884893883096112761840751256419760868660596415259960276909740149812036824421400009415882883596598693786780377445512834956491173614606294945097780888530713539708916700645257442597148528932621349137289784961681030674118863617028911501797449814894570428948920976635126614376216427060225862233823268935916517100608677797975463913149557763522354910988937991647895006186286576341406606227098668212057290628172863969163470112566633304620347047080106196817600191216611714768129938106561368876271581570354796335364505827419738957666479512658617236034237006772541232023214817455538223486240690733298044715143865278335296713376345032926149672250821928627181990767648793478048825239367321072294355286196010417459184577904487660405360307583156198120974301041885652733726795157499453747663540690605039132925547508686690313856555497994983807082560682298136034807658745141004310054736556465175122716825645919311726771732213248677898423580635170787114463352162895496987030860903881385610228325858256840314309821248866396988326916230119953960078679923453268404210131948451988650338585056558613384647967127499189808026673749650972842915339448346282636894864165338736321884558628363414803601636854489674849018513238004739005380041979079024263599015253678104166055942345772203920120671263954816747539186394670552095802761523201231949907416198761867500674121374209728874014364151915234247756003387905414221456799851651919184416864986649292307723126683826576446204672639579298672190150934036212341546139005194908178707216103746227812909725887605158045966803144997811514595151890340739582493432046120522122554284845685890996906080268169835920839285684136730855837678068467368805882254908297245163234094502691235852750825972908749314235690059844078607593984425449988227811904965261042631544304761414036452349648761983005618078041570213067443119014229982693666195652386659018763488959846918181123505570057945834440513372116590387506928825791595495988158964030005818193173422573028090111859401840147535451792233100426514558503481124533329830775412630680445380626627256916090601822416492513134141840462192886886366730564885549314392267404519074262808417313036200903149643930859287187629031674782961631618898608634624995370609732505506625277520271557963613662169925328544694835513064736498976217055166790560602898263158887661896042288209745057685080869465976101184922741205677774203143672416468618827290797249239149917121110513022948991339452711229284043520555255110929460625116074833376475339239223545859009607020190619833043505439313375501358414781376489159630506196286201740396399526101922824358844726590883189371773166358382102026584496010654478840421672954935295395522336029781407050151661644237867490711196223188915875898250662137325994085183653434520930935991191329707731135568545905612001281809490582625409438242063323133243467847883521651573881215725830770401520963597151858207176370214450504058491382297350275902450284546097366558203385801902127942555906456959140993289169149305776182352657241272171412952417884376804292022181067389184855635541874490027038246937325375656227101291468817871656352048348246338391413795378464631653899402339910539337091964837966608566923307231193325462802090144680324002299096173457459168889475825339653913163298072460169981774334028643030412055299361493798265216350269837746778580603555448970499518602589315065181907818241905177443023316241297732264502099989905936273927984451151230453889952337312673917268695683147575313135913341667475576284815974305491442858459828402155143489268466416979801359355461865064606426550105273710423936723730504091574872380007459982903105722188605064624408568074535797234296462789029311271503073245849836593806338918359368615760952103096718120011086750058866120537019283215869974331996250504580998853169092997895706059095701431566274861263904777317652445568560082840811899757595110000253618638936734279391197955540793226333237866845557697149537696686474377751752481651909960437232475624007112621862210074944356892302287984531299774316423184118652667604180059366068154757104350536831297178994383365291514322624843685158885457096461282979577549900689186344313081193629717953732142292190819282445273113658878338334187085173749463305934926681637839031094131362927880269379105449948358849247980340966059357283360625152147037298976135965435531912501753699202138136805177487133834504869492834596441707998391652876523486580531081074976100611637191315353703870034727125597426173651888578656752710461595765722586520938683243522679338995407529491702330581154759494950229065642092668394835304710846273888181475932262131569842404407937455610431864805975773824391934293501989269666232327551923381761832295160241179879934883757443026788552384842044571392234285892712439157718791822402449727225170123782961623545213634303227778942714574771926388478618296242747732243979256201276990383342302661225537788766523389180616258445453792997196481207179155857923610650975370813043105565655039816648922808682476159536657070583797298140833294560270954111192265735796835259756766601377324124673819513570910071753169332628045604669592605280148604634563732735873982639432759170026542455364393661894653305746524378097936947128621924026217099441540608956687252428523797033929068915944079807170429822303550946019469849859665424788473158745211670926892029372929837831306952326950111052779708974915010675814683655630974100427451064773368072826667125991264432649151656586101166678321295051753865793494537252014435700359306386382704054589818767170663241618330603295339238783899114442543333419865777898184202929524310422146724049501313390037023516331388689025573562037360379964662822693465264167658820512462069193194642065341082823943770226344668958145384909920370073915134365302943656727418671640937085119132945713515255272439580831936398189480730089689062525834234066806263994894794720592762444803861002098042500497297657757711724254013531822177772500947902134738328740515332701568492560724998521116161046899160165159544149325476344438555448423854217025095949809526399874312812929995162678644528995045970421170186489625310582692108346118630216083667646246854950841363321675514237942479581056112329503572227655363893787860500013148075670502091541519755045938155483786135110050498567746058711087251568522269038157137100425808708382998430057156902244655672527340282251921124237663453961292786035837428262633064146255693115377100729920763367656263373851827646867414611865179519703385265233449779141499353072137547440625801727880902416051144005231470639171132646567348478641711559135530351428802822678487223575994935678224432072915169115824058927444095961913426857481143551912248146587304807584294696438565591197054528501246234325252430128835321971718025249755516946097926694781669978040612267034487944732518627992701690979114649890697554016595951128980617091612862120413477096441290984475752099413009622849631516821255105451462567827440328365529231056961022559497323533999730605259150635007574088437746071280269472335639428375019214567551773272872331906253535602407352256404454162000253455216852262455511369895307366191133907474364603682503045314131677422915278345201389865407721817008723242216980459110722889951255962284966822062283858399838245676502036147609364155371567977653710281556221934685821665430261370746214923098524843607363802612534635232530562203013127532174205417436269109570114576695225256379210248400497229609254732559323527498757116409939279482924104998220680073109409384948319554627181123296201532452363575700241500408189377805817127447890741213285793613376522168573446701005518327274667782719270527904763103002289060109994781127691050238405744615255208131587780178438063102281910069333709847144801577718090069194959985985692771198721397460508509916055051636430879648772636272508517206700279382945849725436887532881499882800115814609584921887548210084382386352512788850194843772835139481618893834488256178576315661338858918828948067778995852543783806090233198360487686270194344265545261180588781095193425562738070494791973423920460817200210367749278005704547702652493699834685887771316376799864028416199629415468758158704937508025415404772964823751389385490821279245605179694538694580046456826626541639288151281882874160208583954538205463731374267793276849555949336264635620835928842720844168083360220291384854065326326822070677254326550953045640375815098125825619562641972415215595556086095039425361604105470020988407802718249996681580863645640943837506330028435593060831443353772495393733420543197758009893710128328652299725806408122670329349773970030982747271592523429423373179412907653291000694001716714735550202748131476506349815369416919139486604968360771280299136751967649401173149163989814810767042599666365166736281668377149191541594417155247424936559491929475975455086913290744897554245665337721853044002177983991246012973016105442982127994931476241562799328265221398237966569731338866947021289726986701461567459292299347657209794659020323335057035595830803903242273766387275653598372516309082025928721668215640769299071644508612002592437410062386679172526849829615993815576979658929009743634678868520664952881760735591320235623928214422546489209222055971781768821060574767355158459089230101981123217771072435333815348756205553266852650423162555335814359213668690505434207876009875964037106091910872708776347418252520354754761950292116059690044021023648685314268843543143524414271219383074505036090749600232114124897324359105429325393266075396743756449772635297373462912423680358709301422858998552103441739605311520882580683132219219151742759946598080071893803850873948537003007027526307158169897606702257503652735605518455248373337871069604874779250475695673770800571371835320090881972403122042253635787487182591273271387720843844232527272322334187230010003431469728972643720636865515103327929024973588745624388769097999942123110294213494143763255194071172938732376708237763880651210693375003013062309844079530976180781695323740471182821377582775855846659411369713882221896003882930103802867715917182449227727299579422004756541697664790114862248275143037150233846998140101160822991855536942997106040375887960593273475288825167364351500254833016801292442179123709771423334893577384461547804625538947897838269011313270133170834453770947482462828677935286766822114839254906088781237763120319882688221273391205157652942468980888789020409063866580824774558138673666125192516170554621315738200143759944015134833968076125354280379676277867722555136420654574128425360167890886787494434604089554353311403678929499994403184131057211774557040146480707126749465121633548993224986090658989254840934908187536981049747888573032043821277024551268149721429718190914006166494672663483964344413260264013069661467078536057445753744564796358302795205174767160800684488078571200568013237587952052163211514629402624897193565345413284170925923424960794023606632704639643943516061289621651113145031271812381075075091351474201242133827489299753988283408956563658166833997816225938617959376456469626782009264912587079291936530345824435291884588506039269144641459445393517095386538686568468067875092962875049358799319743889941903943693626820295472481278183309953259592787120597546666983422852064172510816007338296497226260554487972089143031909193884346715562630820769387125399693515717312372120717018743622559227132679499849769673524010808343507920069792247773914026612157796398376975350453042613143369432283627506798429408461378713357706298390209796139080672753364426616223844309194142327006423296713610878293781304497715908046790598073132212825634428815518039860500146917252313411442483934206257532600500339797367973836769944689030445353298000048109694088865557887317040691227546618600200095401179493508849613769264669374005461066202402954543609199738351514031506273868205651175924043468931489776746019882125935169190929019389544726915848605973041970600266132750027092049075564488155269168906078068269761611207838459794667297311074686411964485487837906949639043070045457439350015410021716331640577111956061868988284618030002855907038304812244767457239224283575608974251387910163887991476152910160852806241255152142988402376618112583484626041959996591406655913543371736658018492071561246607469310719819973879357233465625060182823670659635329950130090743900685689791121023223419483154126598165969227881035527109203024293275799621908799681585497171411830793359581387233445217396803550973908215088250207754058229372233132910815341292559341482135595969392900935383861027654888997380819763668961990964762131419529073691656058014047838604250207445961264904685495570068808734805289178154085439519747780374130506060363249812254606597632996755885820831074922465763441089173167216931531703132941969878894676475599661480644147703654893018211892704179377196185353947339779711302890253032571010708942497469515278737562112341667255568257382116874407841299685494775025249746299093370607736391332581284179854231610058868257144207461630205129389264284709122492425236695140439807264937608036195732141530469822415003457064082359296160222447612197878752537083175382441941728050777032819813311384219543370895743392277487510539016659164750915069005737866568073236583881258077866353628967749104681331450282952479748750036339807448416081731477665704630527755155399639308060926172432675623370881566662013735394168877365167975283763754961712207243283177790964532172827136206914693793821613626523691625306128960058429050462123563504124481724067573418442237125446287791203729284688695038145581103575048817292016447891932659362229629285545775948594609138822303710235373813705719197238645907681484635235356486723412393182093686206214616180245366377418134246436705991298432168100526765055848962094009417114007179804847093270948646641227715507527248423006381679269549463443347990525062687111981730597645675213937361041345941181845883610466151841831681799036382618637145827062553545513614358804709966374517912132799306003749253127682359944181799870177099749420157228449813781571880019353742900565208087688078031170253650110920432041708669960733648133357663469436731120373143453432129605426908048141116549994606746671042971626952299015670475503014606470169041460178509755221364949957433757082732995541867483978426890632554616669667828423814780596079904371149225975327898827710580595203868547855320277941405130568762859824028580086677105447222294290175905832360521041521754951656378977285753108866107690999716153785018522011530968334024792180975909085276806052703166290565654329172702257543472298476635070258264981307990280329957398286087906505211553328808849265771539626784646883934144773701127607556327911390542490200747371400133173697177911444642783111843277991246075062362734699680494258920000327074331007749656547100029750876559548860643858537048212213595629797165561265351992838473303421625742891234295729182611126263736035082436085312870413815799217271424847997597595624031975238369147148378673785530237056419129679747880443056237898494607857991551148510275113603001742545684369636139714375426227296464512879545262949390850477732425681523011532741123973442238999567643923125270538279626098180757178921276232471069853617651135291797204863644137749608168355070821300966691675141635600184776228432376349980357505968790517706385656679244768473861650754136858297592054639896438152618362893481149748875654658990067293131006369774223828762604213315667754263492758740509836856391884280125431314913807515956935998374230922424322113232314041240132186691270542448581278005696303829736001895266049029642198155313173733614911264016612682421287463025750720408551063970414795541571224968231698797807973439389228432760426291725230005733614682530603199440060659060869772199334553682991980988568464568810935298463175646129299873881708270728829956978691762619139609210246585896221813354907558448602061458011156714219387166000148021822289984500645856062803620185840163054136189476211094991501773228120325220559564889508901911859117429111462354085583654658207621251768264448438419734581635535754313546480096806828579133598284832471604118776247527034911089868318747853718332816479463736266686876703078144344824230612693359830117694095558074943409196406221106008465129585277752503877964377811748795469913370932010569182544968848136606005298515573700193181767604927402541398882435474244797886458418877911721361333143306998484242918983273671164226789381271852464529751456556053972199325245456085964974568773220966272100344226672199018636366040637108065769073888227604274777347017066816055430127183460003511262634335979953604085676465044708720289739096454840697623469066557900929429654467391283075609594667158328161192168833329097827910965187274502903673655762714048227322735437714339465745191945471271282960802368026441668548134218945402061750154339297671297413903488402468857841163941512075341084369574414250329959552885830628934716167514635598128863655222791960071932409825349998829410447660298053631183147049336449022192854110116786131805812352107610841269397287945458336437455996861065043146296396860647858788100436119997298608512856324941496147240531600006301615728192908113055786599862967629673323856693840242370234711001150571235795806656036457752058361896661095918628687065744221086853286264722473509544476979851619091723984164131383655732005410416229507133355576000316585105651706738728048275600260856888374933796610447876296187028012831908113242616598696474436049808851017996142064043715398618361598690458137210254062416884974567285203741321655974813713360116002344821360877782070064228787299456265260687910682617226810839938278047491071919332646842925055757367565921330810981564884264368063431928954350026161246545734708372616847140196605206291636782657352893463870159343562106658861998342053972578978605156454750805556431027156203694691534720305785039378714593080738695659357762735167835462962299248708958494696306602826810097345700367357200470294891221857262437614738480606498980049576759406887746908287676290456144632275680958793270296610095001335948255581574501759981317985034317919003940336512168953543194222932242450581698467982614784602908776797407366886930150345506883460440062415821801228169528185998938389038560668876874879135908917923137745054096759975318234558960695069983377616147413464323954824199739870729534851805632810453146248447862336572623576732152183011946212501502064080931674960727193259692450882664196126172675196956023890711022013573617053564335089753867173168698237459897081981508588947952778069461550434989536855081260963970541686750412475092473279786475361229731838885262324047390708124466502286095985251337250373418776148882426566313110991717481612210409580937416043705366986680279325978215215511745542460372132715809126908346086788162701278077614709596023114951655693513319664094303249001296308001522786645953269728479890131306234551510306875215212780522461732739314065450213438324595747218125441622822106714680692394294042893429549106831587475020095557845472123069429076586009869849729290247509301911131854924016626953210187706697453703322457176569445839719028339594617798584734046940078391030299275999594411321772359477153494737567955010622112114672922738946836221112664203988200612600144141557781224097250493916929386586896653583664466143689504918147776811784039817925660922343700851398563857095058456822461249164802635700454023782715569176538423566121260746261226423467978036171034297126549530461821370124081753896234634380328101094946205511958424015073680245175838243495495065265394635657982625039361830963714968596704897441771563322505483190115471612268847145539091538928337690320286867386578600257818267514062782130886846112159090534790485659206989780961921902972655713961559876709795425194388582989259394029556507546989865483803755794188433393360378165182223296003082838608423672766607293396086156886936943225674053527799224094764656221375182665571898516023088195389309100150119326062690601920128050921166377352365990981221504392281503362777366097692541142900365060443633059944081471500385077336666451506175078426561648591155660124424575545846680720086713028106494859276927921466530882399580314752441118575307374165925255079069993489656263467460250084084782948180972871246379298293910325758997433298058493224724272358814500151806337392280446871770010887693208190054175993479582632606755191747107667557039925601636912660368506100799039746865597417347203857517819042986167732581088799753217928267630713719454489853821909895748476172345934556197194836566143983125183341446131827337721559724824241720940848002989553544260566882474758535408244876483686532901822732127809661308519581491319829122839197296023868179085774297325235582127602796982345547110280511038036178755852387561861626817786339637080278829690753335366813531158701063191996428932911914254070742861209808475010038164769855704099005031183227339401628685381074446981678756279263230039488520810352272846216446352832351855115429158362654619964191149903799614326671013049238741598066576109867660955527111799424161263481887425569959147612028221073124245747567537093548575309592189359665840858970650826100693472588700224199642261422117800845389462558884514229868599191253097883411653074969700518523912483596242307780258744301042505344786972919422503557316359199496989200134601273169495487534661524533827559551649253804155547275842870359853602417796321970260303045188488165438347089660456991498753222230909224835206228516382213311945552277897550276014365840015127726271884908087854650876810230549965697863738066585495927787262757230924922359225636021796489622003594337070477993624497307497645034687748421762627355265981682067041326751655586445342505341707130617587785850269560072545880761791181050254410134151878237195203496817593006090035191450133741629125218709404123076018365276383510984072464154278031299699506330229500962682356694813710346599190684546654575725381489103356583968525756020845302415407664944071645574938995272417161734306875046860359811438540746184663483787166622875423347016319084100168042424023655675680733580673951908145370902988329795859652257225250953004317456930797721745780682828759194038062533635508490876381497553258195119928504877205306312489667352590246214968771908479366814220668907761874101619643156299270947650514109863535508931708593049627408684289219855228904138688713293765434547104479873426465190173500960454939919542183854275458210028443867750727576726302122675406515057159345295221842507985880976021104335775921429008974057039169046810066101685840611954438540316984271383843939188220611958006588786108350204432514484271161396494183664035188077439012975200068050094355831907736772388846769534202420586435523943537485229634009213023818553129201052887880703861138280248159196489304288437642052674310482877545685791834130243126639865659551194572115466761293816755931284638025522542524259011268155071406965625486511198399701767280013697540962251823349792213700975309498383938217518048061510206843556699838966029800002327155855378384349823924198619793963378266680230486012784191433944021809456727841884753241165357107774014788295163625509930860683465880510676146759561035777868801612120844497931607390082033261364032413283134525333340454651790980690754467305256700285814623492011130214567341309187948278521094355830280370600167585891947600781343403598285511783987299751003652826017442711200800452530381751399050313283699242916834701533276964330552128090054521755487667437188780381073286181047739119315044867109851930021840886115135004484438385741457793962352747639664925767620225497214034303398117307175259346659255210034806140369623041519044976805955375892980279049385022042923502351788721535276357709058040522521090045692430648257484668371827245035975646308702435847448481578138854505521038509626192480668728045846300892884483521156950626906742572736709285115094622369797392964132225009993797399795063371067393994627864703180448367579391960801923505546207924641333404720090044174928381434269771424881620227511083361015509517100654156074400547834861169432874636073594777451757625958567452998330051067949521651485224930940432674772846732694712802810544028822492302841751971005342199374690268304950644547142743035968698626348868543045997741996910182664592018671732349983745348721428897204610992308653282591689934357345209824823974280253488075357391600399728356741909222532129111735293165102191681244291585769382637705373543560188684532325248348794835107225271399195809909832827125089371522691525511617944002806389150550273967337302936947475158304481991705490941367445420461974350831605254855618539973762002293353931579155271065350558858791793399855346283422029348397665173741686178580122579851369367708344545003636805279028158192373119973423332995563735471791842442350069272345689242371786506848650134071901119722189086282036283691368683785352065750224376587891280919128252799533344144608904640396346883585389447698951571884713315974463748800499684641364031174248157758108796834670143470684988130594858820500373044714217954304951585845032719407052810467956500160340394572874617645754400283723100805522465583267747484428323217315750837666600610190272648743859993073411133046494950768458173274633042538633808358808950652232020565310840150286947128809696850218848817756423725891925315456058085622925401056711456662470045807213866775840363149829138754694042401769713454776389081955577425872558049320688980154141793154197922918500121179264970184222208846568622316848224205680549531219947424554179656339544313746133574757304475529271873822972249595920360948453991203889935174979937515887098143918125322410864618948321230228280643306921803473536462618579727141291047050971657510897323082697052318848533011178050774984513715040277816198438769514275778857292232724257082048499202274995993195002352041490171215161554524580986309684871652779495976744350950752228758059646298015018109362415498466986016051981199764170762026114722134538846237944853902926111097302822588879571222294223223782777363307653022964296147887641167702762224682122946108603583564544593687973795722994121750778583737066456885004749201469027448423789671929857186691707463441079205652561615689309846800553988427495808026042784145268194351513954816164644815169795360534625954564324243424748150293892021193611179128358588408415417722954895177056053327735494474922855759429913260585891683298131014070646684447554911258249817133562502390781005250149950950036220278449849390315039992518027435831287918438482460753056817220752787628401804740460461983169599639461480734839407997484123237057439024687567751656268177970853617378918664298433091869129103814699063273956866228245757416422257122328880752801471427526492303784649957355923310262771783118471627000816382632420463358286751453198468479447296106878454458399769399354079867321059137942598466340201841005627167112699341762676849765134140573506301461351443597022687791928226871036577716879683443657449807132505906054682349356556449372552651371451274183500065533617947085905200524503326554498414055934428989003896348465302747476005919087136913072702288477312242253551967069872227037969472314688981308059135839302608338359548403832943088736128508272916509823544670692352332343500538776053436519418251206987932684734113958267004801957594603194931474651447222334524884446934338293335343866985780357533661664370462738930147751807327031475566217458808490128219149787173946336503887980714015113552914116185715841641251874122568473142211105760768105154103954043924713497339383861890605001787524269508786396617781687045459903056402592411691742355137909649522959426384058110398889198157095547511982459030519751351280343910575209258218870804382124065961462097270310883877228894968920726172149625245789538135014322290078133083395100902950515294094678245676283810033294509690940164985663324274403429774028194714223077117653971690775807830870267774389587231763435515046483664652728101823996151986694273295524406414649525653098003641929434895828633502124354434899711793322373946549069110511491592916263443055156098305202066924356175709370006009355354572036570563489890010838798188349664604820288038557660620831649658119909014693709346567066217963602400879492560574078322587233016092465543867841370031195440362925742397340851008709521783579635404956410314890630921866835661024913965781713468682436823314497114768808577741006016458671514154220051954870728762362439429147608128936671264539893156645820394387954146402418034373750274150161144203277076426319660999690643553267176525076650312156394792054963178257176567066278943836764863548001542396005082625403251946612272482767756148987062673367381654542354991087551043820669382161952803945756108314956216343977505712788516517536721409691259797188244394609869984230698915129247177838510073880917701924719483552270062385255385188657472305769302300353959301328851682478806004182062324939551649390436159879282283859804360553005451439139643659068479474396083300526145701737554068790471779511264844031134625035580583625651939214875082149983739098998640335318107652757390456571512744767284880524817366573376458327903458613580692433493976284727282211742329214172302063415845216807519046997307244055727834526505821166374247839963550888213117149201733742952674558784539295351241515281507656006016092772085106894316255216505864935434089822905260315195190008547306392480634232282213580883817002156478734021262493765882234636056122607355228317625257439185290072582262567618117708899673682145983565558215873482700479306348295077633189328411834577214575127689617646009167526111555252546036272496215013465364940680621832455424683898272733978185874633709766972381770349557313563304111859974091007365678950779971544428413827246645619023163260342893719031579989347258510522206613200497455704345767598838714528878131189693276034885032815473157969312867750095941332118443432173875696884355348182221996391828602397255275847764575127532042622517884213574409495597856245011632242934346420663901162663964083698849910227849161089932152621995051735512371992253998640738000314112445866297598810073656510467669566447296231948646129809268120706086873154427416474750596120688738130136788206356741156925617738218177167806375769268624125667227920061648132451798041307775357716337446479146621833340161202415744679263752259806866887153673541370265562118499818171678712535184266200244048080686934144067506279701374139070245996590042104920876019082408596316269266327277550721279556077527756538868983829272499186721171089707857959722904978831687032140130776151946079604662392523790164312485569246655956017850244657002427278123489254457340955604081283296675341523822438947442421146722396572472425045613144550973257486722599428210080400473449428345476746010523559091299208927312627977129239585228420208493742710084926123752832180092095473404176593413808715190391626756838164521720388152300421415671797374674476964552223741427885219631343743077424870471016377070971361580461004468268561867174416310071277893381479077407980820834191743951733129782303071714321431227020194864291960970308372010240428933988734527863247657726677993254212654998169224569344743655343301404459588898628040975485417848416613071196483867753000366395101482703790503570251872850049109241924713711506507306210590366897607568037506137389842391728875501561247669625482483861627588275131042344207983501608728192506415382431013948605292183069847407499197133429967987809141630036475334202150063518630113232882910845990102354388168744608995406323607902518238184297675307139029995335493814352504972756670135535947802539391181628645716514056662439616949358741049229902464444533333909500136023352381134745128754643562306720367478069026330733596627395928068859324090836881587678785704830631810304080549040756884226413603961329486019595899014278089661492228814297373294002884348571058448807771965874516588214137931860329388520693380914993703856827399170333990263652274453569944846899136048794735528332115018700353873289497868803063379262971584552979296282235938136571581565817525395473688583942610172630785482678384367683156407879860508771122014008868492285392979389729199323897873860775045608245176403567425828192426606566949983488706571511314070169263066303821344693766498415665078174014222603581354191620872152969314990275298198841732254720271281123066173636332804836545355031875073805132122216425790785166255444468127720122468313937017429077462736282431253858089167761225480281827478848620866350322641958358529415587871381392070198105623411126261435908352217451101991404974462835821573944113692925741743688789434409846760817639790327283752940376342043451789277276152619255346591101888135415123321007340489679769468769944817617307025380947841097455679017906568170028549655219236053056582045256422728839142906184826968608440576298854261445389289637488969317319971001094298529231794885423477382745581382263792898532900236479670437840273645247633671373392542616055776411780098050846114834860623970637747881195343066721624380526919807070232481373726676158325074475092014456080796976287449222747813188715285794279530356099166572700239000051703758403925891558637015710131993770495614351860058284218943562944694288378313425760250554166668283271110478686079459749227893069064516890784874446104189198599490997636819727452041445260540254347136786344793713843569359783161992962812074882684083349059435680818957896587359797197601969225912510257912335560267334853317692403722658502554633385688916467631469614571777537372117077820500189687652736255235340952673469113048179965296102163350907624384014721805485427461046063431225840688971348297264932611776237200120184492234689379325591680024949588517722476491547997305998464078814716352613584522408282835016966121548428036984165073925295277013447942155108117296413349935988102702425669922277123558968981596358609992612968878050762093767256745347022636306831468313774117859485888826117777560221676215897495391469740842942563006387613706700575446023335160591299505484887988031220365445969603132856542276683621712543971679946117933515689372244108001570272656063425570639963242891996722699877112850654935688199356219114568327976318730496438524171076949018108212283103900848496823474000175390475860965677166993723765577153349930764944989104328969045634845476217170603602698461407839713544068891103538374539662719554242866817900151701518105940808974713534045005114899428004387264599679731980527249024323844619550669383180025460768035573466350965449839219827755534543642458048214291220453790150025557590762016562406352351792412606790824570882806581623013491668203317573712037201369691648808826885613492413712475209776709011346071992629930994362935193096144037405361440047950966013235639801318386488765542749478228672297632379459542602509965500876907989329931723891811797894694307291875509779390704101430638491650413496229874187485264267073810983900353861497864656474347872234126579961887253026403291262238891161896154533607472188747548602683136929249770410088302002376486702177779109053586966183907628588856252779276546398592632648767733970574520534576016297046778845496957285403745963276171314908117687921898649074011564767555194199477859174607082922532008120732840388879893707614149104330524575790304381005991051865303861379521617190170143039107090975013779530803488889491249363328229372093769768107628899193692686275370588141446840322944775541235293698692059891145537957925204976042736479268372889216308617177588036024289593306803325291079018461853919298718843671884719840044585541420562454119713806210852259522710572585802952114667469208648568303415702254946891953152564758144441101792828771526099523549309556106418447134635810363924220428625778609102028475274354673810246403907763383434962220556741365640191299643280103584867546917282595335957296277968573139782177177491728481869889237574953087984396660132281590569069552953932703081388911197939687268931109966261965757899637325402094625327518470604698325393677057994692192840920505070674405646850103975481624413443496101636227168610015026232748741928584926499267794666423894958159542827238363429995348646498664316942212953772895172120128746657104124619937557763329675638085277425430103965883997035534992285282866285499762931855276037431466956872222663059100787990094318338246781152388422634480578165188319159058960315875053631471097938160839029099952917803574776973597856328231292362692246253450636738194595649034261742744742356315482987594237661239253685640425923235798512623741851840530371930255488913500288590753921589634949444634370587081466190960514175817740008048603113404085208565798673014775261203941952378347436164036270746687567929410728097079214562403771258000008001434593923382367451674977346902135526694888315478945103487168768617698722942494249076840302231813079315917830664422483875712553260629896754787896115656506698933371120923177379635823379123948065699327600215378011983947016782625563438950692779389769068020074755743285423211262709400437168282888572281909417682930591812748915648621913721818783113792269232354171877682268498790030182127829371443117098514241521569923394993473119707423329475666597727909697648436425291511513087581314516094762398063319445041333112620664800676061713518011345170746824187685862183874796508066419607431961272675204902838011396301535555109829547662512573467203211551267476862936938292389069968110769298705002500093424943871356071234801701967148991617398900609247503831142052206439222583921366039523246803512371709300964912761219376274648056182817768772318159036814497171639482140367882205724681850446216478903323732534461960509908555991210903085355009541881876404926700456186159459060807189719614509330645055869235894874852621039719767985160328216313826529539477620333371515498205635254895402514048155407476564537434811128529639891325100852187844214336606804059421099012170360725730005108478595971146518291928709481010965097418892115777616584599062865981235136114445567220310901490020237713408672541383280248322342202099748207021745980532782996208622577467765581640542623171565179511137576712428159541139100409456959490427402219993262658831336245640563705160551018210635687508614770118147654630907663076525042590221503798368333025248372092521696275334751110003115860871773980190342767340414446272332050117117859337926931296216328203110207743122828212514994163735903685215752885127272274289757208791150816456295450046576612594964073296919883313154351986919451842524923649805770740859018724068512616082351373730965026475590413673784728108817851107265634081905768124422844889072013886595988609752907083865790771174004296403516864053739084390435043953690925177562396009335332655661865274431320648119527460320870869050007220687375590475359692594558210626571866468394595139469045713675247755132961306494300360829624411063803355232502960863901085338009041836960454716500722684150844671791904844786843730123798552434424875848030837009443266177779169538652887488132654614912423991245794239338022032007665192040014490443344983671310784599848556709858710753158530986362521748813580538488129791422939896288773797872426602712294967482338640923742522036225440406060295665008209769581599046260061153116682761755288464964342838846826030333657612307636561692487420172269711324123396549449868405845188565365800099989330887351257583609321095250670206139434639443177392575749767231012315279120794788288127513789210730531185088597867104998029787549897533729632088955714869068604411987223851186042523481816182145085309045380030537772206530929171155352907072195618075771810704305128396190069057169528692025961304534642893260871599919007130873637310685732966227132370199111438088083018939496433879945882920948951130040139875278809717863689291477283782275516327961677545587633727059301980424841227513199355351134364851654756555055385770402474531875346305324813283434013783984841214938467137312820477907789424354358773840751093638389046310028645993495379206788383390985288103442771048477899453172730225350278797333271113976942686725333591107357889134031474594485055053525594931943919831897828628516141776000599268052403049584441992521475473745136509665116968466103538438921186095284414687226145847920484229884652998009893893222798476840435949899400594493316272599643974804397829498420858710485553866321753305847533173798238699178962611818316905282314059020208387483733159546592095311552704413946786162030093224228717919875383803102708694164868520411789558241485560030860613883790530689101031734892816656863920431357547756241988776573901595433109145574544994970328136938760596484548480940458116120149537665474123133623664198881797109413085043508489248876266449051211550407305441421939141132666208626504757621477130963108229125162186501794026906817652022618940253683631448624736026780173301571734605631435759558069422327598608786074656845339919051645588065543316926679981421134494023108844786407557588379964043990015832089118759597496094374310601158075390844201975104196909419317156944720321368462748858210104738863461270693714240950494320320696355924232092865825366409280947738533858102454795681369783771992089138061235585931642827379490932738171876049124168584035459321152149207951465751428987318178799506008627115344583530191350837427697327607846333340181838471888793079659395345744247759746506825027965292157874869109796740681731831375411512053801367925548195342697460834399783126177381009562204752968855604818067826301441075317508314526382274558962424872034798956495407191679026106444353308200438576553995212097555649832021379797029633151919370325275203789235943122771598699969195777889540933570308795392065130609528918712713444741383538472888509017357789602781073155555963289739890547771907729068189119403913067960108968079056924519411383081612503661241426819402358307807120600343422531493575105364104301524245479825251112223601126646135000268379701065172759522633088968166606356454186660310199256217658138717343305479981184048909408674746560382559153929453002237094094433971910806720056474165059615288179627303943898098802199209646912271506748615190812572692873934555806851658759659584643433950290213034926968417109713462593708922000490916048503363897661509591585386196003103594764052470211232028298918462599258467088623662462973011801754753744397706729922376351242155723916382095743767541434726169577897025920254012109329504139281298640689726454233582678689203515113470676235711557862626342655876240676208335989700326757706383914012397374682837451474306068103533085710922533018562600435658816579942983792172479283378294271668936386907138615365894294471045538251636683881217765382962579036221664315252791511629996346085146572121531392942107847973471770634635088775228839881511642326151777160651502918616873356383624099766084890298355877019017958217748294294116709207455282558417797733046530407099892299778294782591898769474378644159560455868144698829629291061308755074267757851333522367061843866079618275327257556999811248615727157075725121317019127183933555720266838966064938474584772334717820085217401909177405011495767136858385857744769417240823230381343909937226643104632498603313066757876960308882971044929827025592645614831036099695209819285823547731978766772274697237150820516186038053377296429805316184965830769054669768643628877124885677163995231240711313364109129406378981299032876948291200960375226273159252832815231369083954556466886161379756829028102389423590166473834988894793175327545111628542963496487113865575475266267536567488121579201829658270179120818243694672565793502124173798382243461860891125986247297213613003810010114501761031509773842399773290206235654719021742197202356803950569227773271368638303914663696120841360975610130186723128861521858005279860717210176945006201549326960837173711299053905553790441182504671075390391488721232302959828239992013048740108959934494605175172299438050399662431500670046014308086644601101062282645409890803915894847786691549618873236881101466064246514573400952285566969693457007724874246971781429982690364528312722345040996157156277546536290602902196462464354889202488752757910732168708903781987075463534356503160505642334627079612103137613933376795937141483959579423927174686130514779048431652216461760176488390479944961020779170254680857878092129617377977694814192157151527004952415130050063487619017728336572172566966887288024409620168847271387833718880013958760631015350508823717008906038587241983021651429110775843269213063383598639551783158348475732641454230607029995257415665500762870467895464453250329968671139363670145241751177246703374679783649427020423653374906600746368759509821739672569368137457184283826567535831142050366952478812930635044741162199710290370077268525890140366065767548474534112301127179400217165558756910409824559000548940274007591548105759310461534234959578357304145572194157160812506760700913193815405503109360946225486707704964945740403848347949206981894820881052111239457542385076882248001523679802883977312320908667722297108818993349849713419351395616559752582082409854312172072442340084842387712531618374042151291180107650424998847912829099904231044492630089620040234020565730242910232909529733897718428084571579166478152384243776627210309796788365318487581195568039360833665141540245179446584465812967307114233943719320009180900121413954045211165734333203833658778839039129698972633286617832809648316835632444644663229676250062167538850733558613156142051907847332864657448597975836421355887757546070423542819145436062817729536427069601334309147680688495925272722119486296527888665403647847587519451283983206629313982619469049459343566152383221000228514865506125739088515413186771406943158168504921154120371135558201105489894334087291749884486311639946026939815653380465600272969037217941457903296239509502250630343185540719698420310394898308634492902400629016942490542695927967754980843347895708562718745024786502047636424414319232438005379759064727812612547140598754943957163182020843527637863686411374682690187170657638557845788439665257709301238588035624378484140933105481248909513268177307235571361475077091511949729209715999354414593325214001996149436939861421506360235823023480580933436435738897592933426830805279438717569470701299018861118552312082713560929455226015370182804109477421217826931314562382413111825875305089703910114959180986040693084631905774077293081046518837897607754104490084502622466765434597809543590949426213076273157861132748400420568288523088823588379248719843214126564286163440449418692255262822114726508668736955494159209269172819485369117408509869237741977418130803098675882991701313567004961499712480455487827196516420010140465822835881632179467971401218850595053960391120557684408814763287225401814156267290971425942455343352577071797424037634946838267107339883235029272341121239236411976384141966615241078800161639117955223198736926660245820331636022764851300107594828641792577393143691199977018213773130294437987792301305979113003912074119565340376213697070025500454217751972162898129657977662173234189932312848831518699174271135860714703857842764906959288243424969218267538750533029698179790142204400688667338315501682847194856812024129908124892147130694524771737847109796930030595049393046917817813853560476637635444727853843766287816966742436266301457999903957821900630534898975473847376161943930405955189207276438910982881798208413451606864747335429481744962120610390271155055854350241235851868020928844694566213229655762071272592726230511912866512925312386120081975989906347387472963981488389576502156435932397272276240855074663875312162229766390194315193686568951710229755727102448280545597120718406471853727172128893354597363262208826870949928176016436766135186273751819077700243726834472880912503482178187987812415593398382971971431923529898555374359809002109260549929908423883150507020327888163475801471642257585871866819147031864289845619211155444428649623672066833493741864949830435030145957988683004437262055813518060416655919834100632810984086206302784425475179692886589271821000207223838225486460507148136753572303488680670647263006093046274859467670672841214696991801137088366508712331432450881992303267066997240019685106403474397123483070946216680691607582546790313258229065263887099687186837873000811227175462897119097717728269284925826758912226576037327569286036840631903154073983218746709783907037167805641850169591897280480726117168564162940366470694407050038749871045392446369334159188286831872960544996330948681550185691708822463695434216633079225759410584606261308989884160173519494229156398261194244791498697179365732720406373831495841594275309949724873295896522165461960500285398054752968297429621306550774282411548052139151858341670148901487600834026407345485834343513909194928838456394750519344486283810377789187613108927045647657472008161155985699119865153232206479061994244119705466950805359559666604835760542332649434484213148144238544583372441027888979192081375094355601047461897190441759222763394783310838136515884476586411194723215387074068088164670045737108137491212191095653131518477240988052187251296169090803740777628456801984307494341321303329859356591949408079764569769040183925417874812183680097686176623316633681323499343238907284086801271467821481356036740433670886436755705569351782455665747187257423342499851738372284988432553099768044450974847900028605919625602530463619771335412151136238674214051969432336952018047167966415357077740447820489895574104239650897676893081813198242057436545875980727505097019582017098656473376387505875688629761875491016794173158812429476409228347702908952520104535390525782085616532975236665670753936578080281594098071466879452666216597325296217113466569276656245991340208901111684138887912532434076980879090484033718573287339113002311210818226603807913096784447624216943306591687067844536811518071935455502281096687970996979162449314053444603523419508941334250788071251902080053795783161948315548471539431559603973093612687922160035857047269113130879435241350886641147246316987468810138240912734116458133197477302380105236637853711929829327421446682008906664938978289725086168927985744096033680595023064705176973526559051109948416087432006599147757311685360599772239874228592157540060961098819728722664399296452293699060741737834635714934155518520294354950567348111393159595901885704136918881384856114458911930841315528945240506466488324824347956904901741220557579646156055473343539819039952355567620757878102338198632076646649891850396103913592317642464650247988499457462174364252645558905860033718124827154079951318362550209240751789901033024985003683940716874282199801971618981662867462612066288747996783894293601536042646688588222066859839603476910746312444249493293700960121750625032673505421217725859728105440364143400969699308891240432895243362440320036768002054468699184703528675382668981760568862681334504978490861959945338474965587914943964071629489848398133966820391610478017365010801680564279197668249394042816214935297762694347168257159243706461151512431104687732669185285348340763695737017658017030190679279537261757548785827321256753042998826292666808779632724926197686302832362135470586173620530417765642444448493629295459314110991660750269457232640976421811291336939059273179447646867767374038888706751362595262409137674495085750322526736804243296008144407702476503028660579656769550320482873738847459769430545407422449337161559537597864932711501589712015837872244748717730999254346877195360156678067342894000779918209905040868546148651859616295318711270449839658825351142242660421012619732361891080267694318847622471822316254146172365435832504106307906921222842371663568903671167505674576430950534624062567003039961813613591796332415800199108232166005612796102646666855245851961373567826088744314621471915349110401565156934002933558682041511534647424607509012995918039658582533345056521779998106067825400599452280882286724622023579417572145669990560811880236426269550315913399025795079838263708067266754834129450037231321494108996972700897110655458953459486196492825139025840624084676966923122481736337680519819966559161915501996225062046718326247306645982497311985345930476742561010019861796213724795767856514251476511096332649620674818200902750456071328402822028947278965567193767022753974538713024446577987552917541807867625553943436318463122488569510477330726930808221130586253717512029327958493757515343682125425447301930575235386091787834070150674404529089713425783400679766507719706965583743992381732055260045782659274516568580806520895160249890702493986897500812725798779961189512782266381131882834622981012621078720086110286974132612612248783254438683182977030132616554830257848735520340392480420094025892568699362550052682665298611752861465611057467905883824016362992640152110941905902619756286912182551818310390240840936321146247026303097018542064529892171811361890733026030623253156215039253505433589458659864178322940459601880023951848670501711567624623451061513573318754161907690446565094880097344454707081719832632363974223263143471143384724813780987041757984122134382666514228090669107475684713491731866766314552297449148981363309240153400048107091081286673439865483477583679043206693990337641255048809510383210000326118452034064393077586639612044254135065460691879028618650859387412528026885812260005330057541384421423705466559693070427770747265278533045073168940745943816298141461759889304592640753272040607866317151598122765437384255385512985835669373572488193769371552685756292625208011041051984604109789172402013680266965220899535802920198118744765772365424718464975659098013529930837239950032732449914361040097279660136658265547131982054456583570724774013424652226695113041180485137128310572127829490848348730588655142852002887691516564524521905939932963636026672132700991327609245715278603571536750764034228245948493934971437838341921661039695910921305928347940188398689197641496252031151919155495010085952915979135736526258617430681707303543352837972399642072922767579999969106713674009119801880645962327069044069061900564738096522224698435996830520964325542558121999109945227969428860961702690909749115789022006404044188742759331298054166959537977369210767578760055106606265611904209242981207189200749327944029856250726897379552979603769966222715529937997446731415210469010063957986171913795030777651578892664578876506964040376657997971249600894468122268068432882163373568697626622116527015899082733421784205982351890178812918745177090927385515856693897520809697124074014954960523847584915471812560677349274760405528754042962135882547456522407602936543215636717961026006319277867325911510355781374841058045155184575062658114097015854544182911931888829598068267664378956636405614869349880865141340144124226836244043531900460311574243496949358562040418115528091987717768355746293264970158451093349879276600506407892677000785809394657053102457330665794664763203347204227391282622767824576678879880481106133591723274658955268992222477337301996635381999163406420154074255950662942348057553964124125225361784565959877836852390136513313742965379599538611400774584897072164243651244135475359911665418278739767972405287872346701108279712576026718785841858226808501318294553157680676721879025978081297574985019504802357417341814808260087615975067200555322169981668801993721196185244523669162678415185069632568632418625601284687001845686981503103287408165309781585684232035426068169368427348928408168491472696974839665750585982319239405676708089950800550122146089224969513088128059948873902545426709758986687861539946025532432598614160980179491143592700695686248328080590186323982950400267163150111006764246698355881478499737116229723955384815109078867417351365922933855573311063910408451214461598875743359043182680824387356230500317765216388847057300571189210208490075591651955424134797245847428419111941507002142227074621071512623406127011848540126711229582396619083748526551674494536096433676583123193049244493891218127149410664333798157706927342854139941332444800266193104313016223811586900564754331115984074486834226666458339106808778740973706594083965861317825655925013464940249778456438489586942573949792652299231795753140567398835156444894853419790918046630474808953793591360149986845335052415814522980330474297415933781249731739834161707906979711040561992228545594333538924639957331784831440692497347974677107535307145997297299974741336355206686617103733870216155715063681719826647364415574257588623403235058736625544637838687296189675336695483781415423639613219806159708878574822726174718297727439786401842882348877701154661629551465843013566198746364021776627534057269860048396783776919414859575716548376500993504909107442437915073749404333655547353987772606206615990791069990251716988941297532699412374914329227352972911050004444366414313384172540959149807335287729655726672005006002143606605011219099223509352820957774125992754760460400365172410759385927415116012359843775009670879849001952968729134286730859064021710267786257223332543992317773949239883628748229076520200605961497524310251599937135071298271154206066554428886404720043486162880467303685509984296087878154675351696776605832225288833124081250558286771319784008934232210042693823778765710243557824154033233129044724376567927175344807536178595334575917886178926907301375336077902118353878595359628596403506729583447001638438162656455171447433404039430854950264440560778904523061691336514337361331426350327934761021162545908055369464079126147922553354873872488037613226815584482958436237235422425465405884149160626629115020793791453011979688741992809300584196546684896833311881855218093064484881376890097231798252408624869316778642670773924689490560667872187705533922390484962232512928779765711771017403099709909987823853638116954767226840471479868980500477566011311471583188304381472243789835429762940809010666505234273669024509171137556561040112498109052754869601437563376683504258838854296663706930985699043726280678287582315101471382270948042975518576718018286294631396856059348914523180005168927588913332643838726083263580689187662295222681845630719369415164574354761506491209981368224103505842505168357588511928120102627187821453427423272725418220785963159446589779233297972529921324358174140548688982251999189426847802243371164475527051008386073208331365920708661710835805081501878855496269553251909638732830207111291664976381861766837282775328939594894779114836300385531214746420952282324729040164041933650933341627484880420752167174124247567488737943549576514830534842264578601100354069754471347722203526386926843215666183443363630238745422046199471236965648520196859552848408642420194638040371777372738596218822484051567261690535872894649097990273828667318468909772130780404512646687080913393623827221450814542410191769276300944728906829062280190470953121557419884932856983941149458874358338546494380967336116362531567291906410039884902661700145572233391238607040637663297602144073256732386699161289176306269984156471332036886807366216799262751813034624945878776859776079611465282510343665032662390988803097245589334339577258174040148707561851611488719699671017685376176445016905047537453486334438805426999140059978712740887562015327192648385295401048867441827348797305768563972966617743299385301951189118984831934486127240930769357511850614950779145328105830532386436829559806962837442104852251020758588178340735355287665049068597744765779120299994368329637736277158198436351204978856662743924152382485593436063632139943701736518072980354876776958462063727667056287236497963341480518617781269607829458284346937308950670622198220917987442693330257017292830249675537674466291644205592346607929305710380984611612910126782766511566188388960999004779426054350182387812658245312866352186468868157388964917575386798524592108609084023135329266109239501323386157836313078427119646891503967811490800032905125406521852416946268458545882446640027911834572173032252877147355999635165982312348877517345148639684209446393749498857614957927150174597378754749335126133272000217510855438906206801978020327987098067108609190640743555507198226893919409425237535138127021653811341766144700085327447899703408766276910830425566918136663971365071895677656784270084680613016610253734598731321892337491122615132148776676695238209281242481607639573040116988403608086839336751914836299179199277836724748067249811798670496166404805165278872050747638853838036455882439001738359548230625717386604952727839506034139910722883154413473702553872584936363347580155623072962517779161477881085055172510225914599614464919245204725946883733145954380054670085187721042069866397947289875962716468815208827404383952205945912295964469940110968733417772061894998887187095904155757047522122652484416592693243618555976992297917610973227825814124908467856727959562179182516658012824071822460398760828936114088170582498867502737223784687549781660286695529000015749985156595243745003571406872658291691981577697718440428226408530346159088625448475271541121460752434781103585044963114964660669281519071016076267707679511056636424790614692613459031776570868173644681996719655546906650397533836104309689323374493365745007861412010582459487899745893193272921859844926705184644911281565489421955456109668579226829877058661546019276047495779306381675087805613994866011878958651960583801756758685845771603406446289914801906705756344335752335541680576247676172236077529247982666137078269549181547954747613383966861505268453901557991499360051261247626864139196778661872701358055699814054943740736120205132128541277181479973429661290504076057210503279576694565857864241485185664747738120418388665034080209774439266784439166736037251277769442982654519406572904021119048163619256574168507102414249605645458429371230160879078629799059677310626517698625226668085731636272610594377999756655100959378296692854398563113907255319434590208305587657892745144171665871401182582565137767696495490523683151189466540497826130376290392736046076622209424857515448876217298041744700188817728686626372047205809352076713927650755580679136830380940730808872809853928172336112335500430191770976065210330722929969711111902719263348102105738964103868980460393043826603836802222641369397541655049963233166632756099429300501209800512149687550995275884781044149807094769841090155462670510399026550302046528718135110745688352947647963173476431057876642299903811718963516486220859457709914765557306209447021750967504759356312568033315054004132958391059243314146123664128833312446350500592842431450962018601361082574171526448859183232976425968072390723179872560443727045125893842333957144225121256169586231582960395570028738081595542690218023417393903189413990303973617291213421570602528710239870578234298291993184324629553111902860481447448058770946862366483948887983942433420088018261022369569535766171770100755012362436040659781165491679776669504686126865507177187514149396190240201136391195651343347952332893780188623728862763266886470323600456236970933695505932143597044077447783257633849825879365981910420554346843732591371731280001426834303358213168410520243911975854019423403097160652808605757561438703740245240390933509059676335115821712662853249732892255184188684919530463126785322902542515371801988832484621929632492747539767256117939480889965035595079265286762649771462275163220291066842515187163866184163498805059603058086382665106917321159151340400235654834479128704880430650350706083992395611781500475911219092868173071267693797212167842108682293020908861786318697603767020126655931566955171301785118682371731216628140276014118491324587494640704185623716110386851694561940637453895848267947072023939286257079874498334965259659585621547344553385001944533513103010929929730010289756243216015092429182073837560123527114008919534884248774591804949653346197917892596031017267406381838956879563929809618395550109121320439245548892889700633853192334764085089855975000186023184215099420199088994587330380431504240908569586281903922594805387091229758568233524317002668756565997053210318342567345426389869776622010326854438561526830475617379691125146473574243426829176730888273698310432356203877691982320874025030173920290387078227334713297974775017301030008307780415690385984302037401445981033386279424395064094379746911853249927628228184022358513744125229148479521561686409447111963789386761952260008543472334452355017665769513389282525660490929573575150600168586781661271742318726422804069180074648811966688403569164872003143988984209236955695132962044947321348552059201576968973165254055871246708525329852111864296089979914046071012897936140474607691187552071091589972058465030902648241496484579554058601262601231364783385879680028979611972202180829883503660771948995169168526547935460159974182457112857266048138867525001006875291757726288085604671778154029840855781332240248227467011202083020427410216584976516540263624945610133949062687347531694521283082373255993287862959377024241325076645803049635661638747764680111438595650338176510182659663668191417629165899330637676287654361309293907732986527026992359956435018238975679990672104480177317193795254496248143286241128055281290923737150496425446525075877516115682927813684990876051808201617388859158993075873884823017080983388084370106323684269771677418651253812259355463487129627798064209667137159968372453700754922767527821525706217262796259489180775671943041914895036706848416738179550589142443431544013282099255971966757253204745154949048813166282628410299286421786708891632457559973250877687508342637504737596287843197257831443193379420116394523578572576594744085993024326796706197398625741773494242939997754194244566229623210648296696234940203645451333223397457481610246219015638415930049663266473585796775598981652486287093722920977849000349209665574756845341299216278689802815847491807471270041935572258368854957819269435153658679323519012522887942758441758774343240992150766402382014485584948904705250339541404239467270149683376072131309362180883326323079485829266416811412041956895434247713673318832564038040169046149560087390146241331581202725174129752206788394619602240778257900086455923193312182812279320244806406666364130184486018079813099248502645278714075493131498833414237832690117656124853501423412640400251185805777462936831502219063907149214203075899594275777855844248160793602872666012822529639357057799214547759659411699785785767645529940622107769712358637787736859144561851608709229086028211037328954592356905778513944568626427451614429935672923600687056415566567035761707179726208066768167006781337168467826150174883320196650265246324530990852001922435631547909684982009233797907166775486351086542646594628914822665766762407543052406003680627780287075405938985147664676052958774238695786351677655151756180821653125491540060216992531684679267955441849861127033143884751377280536089738115073838283459403843876009115472515251885663554742514604023586025985786563096359870779915765108033931469680878194642926173227929004835480219135471939316907949657617360376766435849963795249506773759147335732669690839922026026599148688132668643456127463719038575811431691040715269937403198785440972846472588686387259424026857911303076912465169049120072616760533039257187157456193342167749019180490631978944428463970531025432640607723033851838838454523661837358958991504803024661143403510050604200130199098088181441551117896737609292036369544672718184539939219080848609600673091899753838730496720691979348289546444650057039101451457792804340415502058534994354743194463811641459393442548064709657471191186370370115817439545849371716122611792537060550326437895845899996356067039672830182039632728696475703385707377641098005949713590477078686620842514349431309571588173265143631014594520057630144449536659430200287916977325880995316325181437256627699891356405580824157838933914882742515741249972773293403347076598472862160265698838938869340783439969957855423770314624470637492047435366325770043066043073514291004093576474400241355667054942829901699057333146613390210575224659052803794979359982210810708352667610542053254160191325966006364893191268554728027823121055837734844121905158807892773542295764988060426474664407425997773816382104708366710833133794074923200350361311796855585206158610097714484043003760225990016354971607327762941687436553284492942363743369976068615127878038878486629676348828225470511407985607024805271195014215424683546817366455365238148783109354278670415306246648858348061042312624917194623005746226067377983406827060889295375401114656742004671530007134890332868507206281904495911286398363541582610955657112387766074439858434468807599177032695087636863696094687751312180085630444330021496580253479096337699483825952537240486286400407198772090392347413302100242292158391616537845269844966528557726150433948565210697385054476439821101060000266298134394761784173467549250272295863433910153038929838417124019978756988661681894358208850737819470639904269996176500107263189540144383008986090414990483962972199112940217962683775109624301299856123810160753955482692807702423512064641503527581860066993660615359837984116745942059629204860616006948098682372364628382663126917489482655953941414981523283953541780893453348133451411477416929350047754384117432301611693641924780180715926657778206940159986599790738278674062284543925213633616112767542475683384314403803443786484178267199976375465730026529058106554070833662290543859369224755548935827719546185781472807403842856080182426816439258706693497095428322187958426215836259765695889108546592241462541378477896882426301093340756180830804451797295720194933062005142001123522866731338246413325314284894430246392226592122848614084459477066034581631181325764885307109286037837798758305595039343679981097705217713541245383321987073894758917068685612941662028495150382213762048497988922947826229374945642201140566032651039894380718708257920834425188996117961603947305439518215953530038317326401995455733194063996733351544300402470348443326196103482105914576282363826674703419640821950511528911330624971596002950117862878202541321205115049685409919138776965927753210517140841259728020539898364465612754426869715390584638737164678226780141606324503397239498666363342699030358726938723406219596757985275564445061007749485555605670117459726194445240838395952759748711853085769569907048440243094630235252458484830511967924127282302434874647763569297672833588598656791959939453432967669706238460554013101678697269048511979584864017323024418330369765180593876613381806973025723776068531047705948120191816262359263196518447361506781939591665480268834546787669520072144193557924677313071178466528235188742648343144895145995216270888850564378717361822575203056248594947604088128661693038168556965052773953695373822265664376317970130840465410928156893374529971505336833507090461709499050006867830560717923780918083450536837215566507340075201110151753604993267827342120488410437110944447060469066500637395024862418167125516732097686383694428550006980890489559652062533176166924606490769005529765923960600437881605354530841751069269719407306337861170356019516744422572175632882040993278071973839291390973887353790775818268092554758864053826688694050463595170603644298734194004356106956993831025661652166464450500204912249584700594546428385635425874584959692496354099128709319150110470525170189580287456692514051278793444999867014987646289507894322569696813800455602645787730359477010519873408669102974994207991448060686793647477189768289969451877542772292794414953604134007215009526505637214309802799254586271428507585962093793914729589666889777872133018901846446471047673700877085325112715254093579939345529953461513155227896201245013327371902498870742425253956691849620676392101043411991310118728612435087411749010803461384762393941803517377848144758726260231114065143621580056228629434836242919769604348018301313685661175464636936325401581720189656829662609588055285928869162899394123861916069971052445348025180743014451358816109760736169532544579956549163707552946744957642029198997049002451603342058512234851987961109504583524084732943617323683611963663277286484868535248841839016355649959447030956900945378233404557576765580210940351456458651915297508695051000493221683045030788608571357352248428993763742755885535483697387970043362685937583986420359420893147016846515001981204269658726016124833249917482662391515795612808902286102225374995670391344526456629000910707350736610773166684541342100736726936460518846209071372273827180954899005665790379249312190131639449445067304176068019799132934364090862728579571761637749432649808046447037579633995461639529609841734636524295096891480164990769644263605793425666535947459664320413824799587950092372680512029997823454717564534571389377572197739304024110183205173074492019099698687436208289636006660830985813088759064203999856074097954284805657118077677819773563357746134825985138576182823457852205145032700754667629583803492678936331978722388291968588285799581948669000349891456973601632349329511982135452184523487824671468163473169315106716985894612738223962525680046704006057782425648442529527188849263768974985174447916085349530298483897718212470181805537245507895914062512650411509192212593813720297757170750858948324159792186053717720618686355114679272700812111073466107145387376105929895132035351688894653589472306844420721009940987978784205123189624314829656552163788203045011710246735786411061807135348427963420052869018479535787616127291266684938196050125962124568631315056316135673981996439088796920948044186335509597149817701530793663779964999517586443622030070313586501479762097915290512896295977610382151657240804994049937474531705434040983652874391973822644160610093500723509375194151182911420667721911457854545455835121375085450357787342343621691964990677547160389510270482435765891304538238273057014287003843645843039832339625416845628267397987735744185654867001655957868976838538699474223459712944056670120350857308664025105518151272826152808622891492377207557434484966523134863653899609830114697741972569029200676669390646054678235767145391074980706902686487962967059524745668540130217337380056214304422703435668576271680985966941272112657589715657931546117870101641636996039424643184070697102563326792858484005808090299269160877020605989316602665553672032448330504167575994659661827717670302855516796811359996470559084095307632455240701227136838634087625697820005165440687240382662088604512702735064991353024862197710706414445155331999129494961866252211009109755934966462793012791985761323087518846247462404911375944584360472131518337281802269542279736879574363935107080966567297723989652783173592346844460890747128173540668947571356788124603332828428046643459819472279285546935380805275103441140541881840480801325149437391430407091294317834144182507887261290026384463275877912343178634310868366686825710297515383331121959344677290525649074245870808967336160935379489003016536780194619786050163105172900855604225761927162913447306082419817238835428331362802984260106306424743499126692380292291007087447879062316299464311293455715916889225697127357590418951266173322848081069441729966005565440781470574980423485722226726639486407399678329990962065456387093772368010626831019119127060425766826116301279062476757853088573883595423920187957730569791978463129090370693167001342315585211853870727791681403226522654113320087233514107614484783093289647477024890377687790596910541223913986278366696174651637167124471353132799152790978096604027840611999785777031532264686249930791152429225411118474689507844289710637536824986193959261105272234040625367980013254448747227519302167456407528176196804107779408992732523604325180150189165082547608656095187089689855804337341614808402198371792388369315481603778085264233468535460569582579728058940748211596040821445419330954426820140266619550520086326998967419787517502778439112713149738964380326075551927186547950580189034962835722202486814695550670512700929092683385126711522039634989818430903236453863032005524898176327718781284366045612311639863185765218986589763156302341098857135611809215135976390272934341668374704016104757635664595189527429199959256416133550401747502917577212619944504381925685687009506662252122630522495072834986953507204675365148167238868403041183059302592624751791285525866177391118260472099805093073714612392052814363500871832177650206748973475326021360960377742772929199502616753188018242064807405398989352110758138598490149458690724950648111961035089045875456395836213453214066291062441792955776884843608595953556885146409043518264294546242376867301283092699232045181208679554225622265636095799050789303091680596780856371823523942501896663465838154836135095147977030594232113124040709411313770504186469844072349003402121726141159596762981809121333657459361039869113485997628386786455768065204364036122031341607642433747717743279447226863014696480613821577356517684762700942165615191614324294070122156913858556101141275344380179256526395752360954023598800912061281872448502799449546735178789840789843945961958787977611428041631267827214382322190771573273674610530779141747908724827555668618750443360781651943554421870703429874462319619111648907224373356827601477682751644418244272684567232781249709334256343853155252083985847591018239071700933203528479710107972510608875017509647563714067118428873440836921278706073749589251716102649367696228742679292237909676811550979361736570264804763818447900812545244888131954934978468726785131118434404842853392700330300423903444980601251971278759817631999165241486435641805883354066926749856648432575200848539312788106908736499652503489195486767409201035272293562190237883011417041855180579114676157191021167522829379880022408517026384092715403770740186935512255030558995724976199953531088500027452422742029860876174473772598028327631738360525227143588599584453508809368802086882370750950608995025572337421526124157132947237801695340520492430704151266613746330782433670624847904534380799649836955136289636131620467638588310389673990566276103576014645639710955101827932215553011710570621050482407987231201061738280422785868740809533565076258982310587962373187227275829497403850675747967777144000943297826176924172403924050682071110164257451824907218097920364282132041038223833710040100824180296777407324083036635687600519314679745627488702284538794053151603807122007166247710417870692528424356008347586308368663786786374376929195958984564460168327937907632698202372410182316097434635849839045315704306989047992026807378785669619509697942051898149473886918411557720869705940884437805509957028239586721295420957554368102366224368150421291294118039391633460793240250099560112878131978254997315120368023853787057773846704190632297439354759838221369865284760585620955990479871117148302400361429450187665788836114516812559471746012730921929428459447457412502570196339522626357615708684640196019901440014152644803161393808683124681718207674840580432113856718052097848124580633061772936826876458419292884975188612754751224687844665513286443368123061899650033195929606357136090587075463194386093461337946847385807158547783428521593825666335164152325476654097099112884368069341697608139133679034588045327193070859697209710989838987486053646528829881468849439287414703654058059103955748119728044011465070619524111106607267839815266941750557701730538217132838072504477999448701597099859632108310329312182540161760137048011792611881165796179782041347743171448487151097859881426875853891178103317958434117657681504637671121402598089652570867602657157327320253224946908517671537725649064820521503766166289089137990903138729331048792891324295996909822463929891043318874748193133081325853081135815135489410723541994687059781899963438894773363961716786476655275864277453584020415554667641379487682222184198758425859643583498985852255402442161421305924472991902693316013954835227169643990119742697535147275088644871679730228685497111045859279039570582342917155001141012653442824172621209938599530091339989541727340892247915841426272270701478140781698316409196293659613765075680114738068755594942319071253874107509610032736049565745198282047918223787627519162271552620808804195421324191815450228562254764558782476953484122775701056621386128817101812626534588592241197915068942842262073523580956229432593804708266894501675460773223564916830621257291016464282481649910742379831915181014066990572004496955433233413608983605434522366692188161997364193448387941854876750917279034603088007781490503146813739540670097509256729889723345233978670251586330487674268606735323235973860609145682437788651246496487581225600540649645009115064334019950047907025754296821091624717056973270705312403969840761278721775322653283840503626258290331421909114165910068219992738932303787317659039262431123048965417939571563324818112650441700495379053290165556239217881900439124033043972670412761147876315045256205707012157159614222008812436508289480034160109731245155371949747201758215405929423469364373381846855078703242748833853548096257860406564217923515213497172332094277326679236314702545296539081465488698414975088016199660299881900598365351053352927754952939381846816756206392590735952975204460975717436702623145668796608186630142769160735135889972312644896809557422708068198768900072180199432421273756742845604648190085013928227507216300219325876566441913737128688574661691577998464946065357362458143494384783659414888825392002324258221348246956863170853011613195868345275934059991090322874811069643635485572731147816908543078308445873526489828753828008331113766047890828090301054574996441512659046983642169735049839589410308734042393643537988382676766233789526372142011904364434745046376301048721785323103838241084277531041791144016352108512179348403082696648773547742012608370582250839558861548687487296689976835746021071202000302166172902493065308017804242258775137156131625655840275319541060387516239864824187173768048008125919520795605278991205124186077858190986621018250725894955013984080654099054812376873981200302970114150672795549050285493074781229350437575342775423025848138243827273791854311850695062402688152289252387293259540656652379881908155380504846575868263512385435074398049654912466531400998177159305542508841436590912014033662351333814476155056353382042607294149584478176899600504704992919874928143128437755148240951703326441906590250740612166302206679299854610220171976115651087649359496418819527663627964446180057115729763620100632907852773611056743592842488975070265240684757487135331794178357597742363967346552003534616374500747999937294613397875674439205610337008608796206545037785487988470331135652954877446499377592111604321319282654870018069157506366668814527428943043946622128684066559430205729274925740459030804504806817316954464087850691263343837137671917961415098852978938572680702466272482516345565270628297986241527542466876852208363214860710755475774415416090757179780842598963948429108819102705992205079392578811959158246577145008706495139862386430890648189473256102355590707999413500675294767665141762593996783295795737009188320028622415150927545977796010427737702456215056318060391880352232288584272743574547640679828134008100688513311747682398464973920443443626513113669338451135982494502742381772522301356049742569341917186692708375848077980931758786842339468724040750441838855453172436971701439693440203027606723096475161549594885757115684640554505019628597091981973428893419222509307946102811998315374834735366261801513263195722180867457527110275885812399295025783323260579294907047273407910943870818523596294696519811819407551804303822225820635404986544924126030900151465177575789980119083588151549167232304710350220069060025936332165313953449217457251796792998953468473109885080960136700585530407030938072162953298847990564138222311392347380866056344204332706405862552557392069710105966109953707364742800126360470241758703133382955875668910231783303967386421471149879716024984089214651998510355668827583838633534075697466146372958899792829111440589392346253561324469095256028992879904821576882690892968946528894242307509032505308195258202292763705899263271008946431169935372009112340540492115158319901712029083956996155710506186460238892783116766689867553551441746548214712176744631819422851156776108525192708954361970835857866059974203000702885570189879386495342416235555957898740019175333452364865243581148557015660673274328506271881416216877638715688952923282129991027879245217885055767973260938746693099443604585294773323993591560479649231450680602416342999996834926307358323078551361089767900023220606561147243967606745048527581837123323508907539726550056156742001808242101748644997311249392351041327500254382847227071548156394838652821688523264734808124629188565723750166612611254053730357848256259372733109870782722983573306175917004364329536889393235670896025127760877166411779872263315040798521615115108754103763671334048170940509222147858551801560491690326845007635123135271288280909764065536775211562831632653990699824430027111063633744556550543861884537157405853084753436279057916229525414291476568979272083931955652156393679434249757670527867444862778977747992097058015324442855125591819325638156805620168852638313917659140254724642026524893562954623887561455984745326669418816288304619479372157375592304128253189083483849582802984013816755463244188003060254702456097265699716685126899158483165449913115861985650294824021801595799557443009186017175973296150553737812351966528570100014971282548512298991788088072809608496720737235514062474225276989346282987567931399207141682185651549915395997452947179800281907980810889841623842545595260360222303311620701813503149021693097901219288418389375745917042315177095327874552936629121433115535743242874647785935874628587826104578795649055297448633255899917341166705134467240184361580902112020220482398130567324538659197412293400930620564764773921090631907097979243374884527077255943885467662661593762373047750350535237343068391922794641022320716586151014990701429752441900448709625237119704326283901911100641913551248115034460296147005968330609294008989936139295047806543846443268115664973311946977810935561470110781311628239641151466861416799658172453576806218645647149794320771955420554933942533730088692607504027377100319280748643268024863315869605193243587558451921851742492365091478946450464079691674111938161034321843904344436275630578997260769307161212489132014097010771876280588060350116227684181147080823197054414254563684758641842367163879716889899720508701990274195093191520631769716626070625649256767647687817234400861165752190808900438875421420131671046357541264730397354149077474477546456142017107225017243550798151422516460836188467565678145554228198484177581947414294068006590515223245650011958941140382988114876950416277670946619186960115972320694825846287784034209434124930995720928897473097314769953626572502227709336313526793971707133222699984657799871925247101200720787098939800566639009562862395019415548502834506567890695822021349364670046478416152449105465204635345114865437520789224543880471634311280559754576722367252279547833726602123794967173174748468118031999935786063595259368841710441612858898577226882931428315980516937698300406899238878510481978677578025321546727372302588175934037236255240686265576739288373064588110211384029160585284767782543840852451370319418057933866767092423123681948019598948365725093590816343801684966008257349476138057870074229123556843482840723739357089963197538185837096009278228778628441806002994224474461818404389927276520956517104291814127113504947130139146884390760091941665192750271538473394824988493756037021467840513820825231057265832805258786459852299337068269205564634833913202702408333429220795275562010192769955796940407660555656480217567947124050984183743549114973099264860186644359667348045481162806866421379406502177694908118488903945640862571779608585007895237493016236317580248017365790249130510438324744958367783453806030723346426096021665900279371566231127296891336835571448668440470755539139975637452950986170560694750948946630590692494798383025316251674029457492547641723205246097542583070384092205154602419360240762278589995923299164360453299241432729712708857854859203908810267674354212745532137912415174171937353732278728913220753446926969334680358817600915427533415478779092077150873620060385175124615178625978501719300698757473228067933816442175406924329516650800434874434757436006858937565400453606963770758405029149765833560734297906711347597592737697241053853422545027367583374713928840166544504030214208493217939574884516060107758384675139997145257082209593226630687934683208570996051789698609284674319206853451921748682241190242491687777076011286607379803139988068756078762427338440082586710037584085397546786996337989577752317241056144343645837291067711403942589299179111111854577017840667267420303120315930563849209742964666708280552304458979480769594930403443526200475810233906134964623456868367072377514322763699412790217009942053625655740970127446047755654422639158492319895134784232530054598612981085556060378415556073065716687869485303926995610833456919912919525873343362470067109323500600309400166066525894168572730070377549148297293639837765667362205404022917725450111448271482081785191751594458778024675079561485121261327444914828840780124518370631491241639745039497615108310161390411303020370090774728647323982257272022648676851772070825126791209097792030898014024118131975439526565713962641791966439692684380823952516548160224540617309266155471057202072430261259408527067618028943937878208218820540468984768790973766826087474421140475187687545520808247936259854365204951972288852883387251798050902688000152228480684047599322139472064644022181395662437922009325155589482109637333548898255220904147095296601984397980462797131885700185929327700812267226597590096950397184274565140658361745113923395619875367309555640135789833638522802126826894895350176522474938402330749006018029841345178092992981436931994232679917660873924909286779950058525744819199440260091981542494536372872921058864482315805272597528663641633444668152796288237800520577533527955304610874547688671450421800067675753799114467295178541611126636653787382281428431669623061831139747378967593291106017061433062962074239481856949461287650825729322578424129285237350272526034928305023257377090844836424370700634548967020078856621185200175147935101047146975651162251073240148578137693567076437106111519026985907427888363156766827387815432921344854504178451736625331177517160916912209860565168806091531932532760970997284170012308750179400745291537532830783467780635000065181921822187792246431995250456638802245268437392919509392257964988546028755364896885729947196115848775751232577736402038546681504590835823472974866770944286647449137368798973602091449948713423321765609690144658576909309033755080175530820142955423612702190633009858333857352274395490597828363645728613448380561213817925471252184280968244999689894786354381724651953341929461986054888983726976336207856024475170229784627879927879030736556413603251631756529518384434095066159954336119139317595880030481388441145195421884011998661982327475103400979634886742601299612248394649808182205398933134704830211116840125909305179121447169513620563191687868385973878363145502014459277105026937021594836044686842144142859546409835147716909889997877026766907012163387122461848609989762469182372223076507486330451422478838203046903836827183652565827546937184054518903162434436461312084024687365384708781862895489476081099129034723957553871439057189606721993025133450985818454674796308418301964992357613371140616295919182429963234740028324737119280492573209903466226153895317123453146504328577605088350695482394899470032139443279895486777099163026536518589224687388934467283710500311915238796728847118528417850100250688254912261816000549487407278492513926952108664548275559227984229238120625206927021549356406540116618582838820238846649246054753143684137453238438141739349140839185931827120041583994055899769996462128811649032437535643911204065545267418227871541399683355140104094058822569468246861093806512776400908734049696412992554913764319323830460904008301690937557319818975319587952713274300487226083731617989400454322665196346210889310227358663041288898308725024972718644373299214921283437885597293528478396521842447233825513994390775998619542619614345569194047182988112266373957049962494241305593065387498730308837203944948394734345321030954586114794376129541349302016365742723914790697953565320371866798526389981210873326082622243156552786064225172155924289282981551085387617170564135899109522927410233379061934534799236186132696325562097622768561549180871273891839468680117483356060712661333331060594432066285262940851684467026846907044871442867476814612140730091912904769303055526224809365020269541995452534338675033940108251594690375663503111786706774346241283731482454808104679125652397373489726958553279371198955821853231978579078745591194911613627820983072467915131895008598971481985035477805619882963974821085190048113904130848917518261304418678925612275288525621687230966883208089658065519946516826563661348302779319169720925367998710764089546501528601841719374825714317830493715621297854506370763221792706917286311923820270053478176693980465943877097728520850694759961292342512618984342693615559822151009162331838188657459453133083448360830065360353781985530038498077289563532975769290121812592328121073854780426774542170930629426128481958645302856847703707373257287924208224977091808721567092973940402388105631979791220439368814023700146528084696388407418387646206259591283386431987131435673700835514279398568159770474496383729903480733329232720583046227900839112224533431494499485465951914332230293016314322086456091952458970729314654840789420014541636148527651318012045880328939335684059050634143969878212331826843802837564016826376658899277303182264745380535066119209360982548179181068269253869701078089382439315201079637712759655884301184391593549134123670116693977234310283971133606174037026220784843240707251146675358918257650096803007012838061875190327057444598434177606437857514861166614686309486896562201776805437974977051067585066268955577845470213004115389400428474813037658773241191729695797366919454149982301752374523305504176301184681159231263771915074252816543006808757083536347141090908064454494731747358711353823758138088050194473159721000346903184416378523117426411754742632799963679165866526933229607207555384802991773041860698804946245642848323692617367244039497851327725933529231338522080591427091679245938842375813647982339135769533395069175885461126618245450379885845028157200694868130816071867711117705205970472844528396040403109678548148721838750230159271416413583879353609436612048556832125804674814271894299883116944327048130630474410320271904166466106241236024702785068555064485775997979524771300938247119307689749226873458930624101629314636137702636313274244582602953741654333758956532146174992165538139709515775645651589860831416237103029052403367554167546814647194959519878164531505847087006918119645241210838169012633369647927222013952992262887567790999964974783735286010120521187176791334978137928241609876358307190207667047447213071875099533124808420451932784709082026623933952011346214106332179992835182883573963197439318072895969978202307188198664729813345450475227807307491499918509961461102342056411989653055476909800283151712150278876477919186403646295248529701405275443235857477915784806281611306290981790488283904919273204187766574911793282300489780310952126690573334600782717919495431796196127147298069950935543019519439809055308063955647054687202044833541636932358345196190446665914863849106456064844037108363044427659159339966799344812685390750987101859848724144043605153872334205313929925965837897316253460969293987965670115939346052841905146030600850438548876113835449909688258210878012303207196454781301475534671690908595530096510048758103304775950261303716536566859623833196171361965294806423770042828556210031941981401514110984376435962353632425550549700031666697654372661625922531767994019798477280581118930072347162415645455717370304837694428540858353479260217333935412122693344466531898563639687375109510192116925095767715706331134638043117347413177416357938278342721959714967868656126921719163178437296106711080982492074183778918248967584637909062063816792296345846914556771738476260085244730429049832825586042575792331146485411984675097252223671977851392601686036594101228824440904717124850197972690010445158494767940640790187040465609968159279440059394006607912679265377282198942200278903438222667747261381687329778876907559147655335534689052096968041443731299347152826728113578532823119302576763168273716582113007111127199206007017830083631188087461216730186332868081764105900922146320244987072084314756383614356249500108418544444233263355580587661042793102411344270017484432294759104964045714908823113903634078397950138747931757575769762956981070783615205699764578779332143052290720749665961308140396915163582210256637962727071379619966737854229500977701413463988165993768744104942108962098778060074780901574548249565600264967769937617778121430026659288632592735054373911095489067166699826138076197292890237179390694382553683068792119686580247194978304954844136323839381915793246727908784456203769725594468751418464260265053167465223445515329366115718280124962124111048009184081255154887406464128050467771800604520710179539076713344509196150763499907692200182692796340831185947950766809555896829549169998489370062390639205509952512314678929929251935970556289760319961278857638613722445240767165287108400375325170338525115168550266063217049063939083681956840930788533042479391829732779977002508387571182183306674087061310871629884928170808465807157620323012901161457969540119885094958810010602353562124576167887098643252095001979425659298579937285470589712968102974037766268767134198759389245266500615042040688589419127959211050463676098281029695624982856353284218514343059522591851970386055759615608371266982120994145351502923455324121790412626802004203556229380206308858934633352695362898744240266603900391626570493538769843895726480856314970362331031568504615277550153185261163800952396469360014717498894179774750729846859796896689660538850136358469116227728680020883654372764336947688502546009804438407236732652413262212969968908723553933971928095177838746550412043474513776829047995656945385653089609402567274095473217873332919802696984701153982868651595113760252203940408407430251692087903097745064696534880580457186199920866124213414022613276707914382574846403951854369856059529569177186609725592946077006577276008478085485509033791807887566389915288844586256715261068780121800976479414243796247998644475086718239174014176984329057442710626135996277157271732433128880267799897381415648812282444433812202290776868090918507638165646157996497028753597994509562357319832820785656614095250762579779697736837383563641399007749203768990322432671172563596023382353347764068335890386265138061651328936821279670590434473024173659027740088883550456071427167592092924040138309287312802731653842375148291716310755733289917296559414030286559474679227454624278254567426074437546203752673890772941384917213574525340368230579479376336396154666336584184354556831521616055856637572207692914684450290763054194834373230252978302198994543036990696124762464209247251411856501342570311787293816036558488771416744104554767614042384989363956882580489469126422963996006460038142744244814554586091978298180802201776848915068158878850580473317115075557132792809770302600038345878929875952743893955349117617075440983910157816756497291077010083999643911543198323773940062227772698265011656490089623699802203477567562703878007038946583557260403049185693317861292350709050352664180149190178951212724066536302712646464084371334371430386847729067611730203644053171364164419895470215398830338526945508861436913238809586853749938447568657795060317517243514757491069103788935195708273129872185860291331424794764473846754843150233070551850235615472108673051417492905106957181214975779881003741181400945212856548065790175731928181926760289406596963687496002131090741325546375341136702876227940742658205332977745776561277113353559674065645877727702434557284012924864830706939416573531980441293429446920999797990229070850700122160579588096833482062121230811626121255261975591958521271284473130747686753586297801212925202323292627271960954970143459211086236923706201878655859225045667215244478317448319349893871027324693394709939406698075375499571038575612458580700311530743214664801920323731992466038006129579573158034537451423053610590391272012443495278106991626865858131073132194143257123758396714472056736941723689596928067586719578533502464335448671024951237124192057122171286989992842983935181627305514726908776787715206717478524012675930105465076983574978441088059619165971191122908771140812323386767479285042145878620505180145765900994978722765508699607691511607237711398721246436254607050523736839471109897281756518117732796457434799808696737003092052239120500795093522567441199036708556797911163605630865412640376191112680004459986468462300129281468355719207216063008517601222450942194682040266199820784015575997667301548734334764613757551005887792678846878051925251281416546411665300346441269837048176483268916206415083705888628572168646291419265370440919617986188386216416612078296678470203727755509004978966282593906966876465759005191024090789867971321420416101898610977222653380700737677250693217151593545090326549838719161036202761116223214483666439010202604471450127238386585628955309212242795802921373441066775877638053778337473296190097293964985514186769923563203347735664108548818245796694818943451965843867791527037040544415594749767541451138390685616916459616155750119990830795684309654997997045439088661361394806035867381476945567916952033531908342521024552262292764645945216612913441774758033049871338405132440699163284519812731649927406837357429548340879445824939659719434191268435103697651335532667057880843613306719823602025272327095662514828145688452052581330392442497471048725598489952382550412884917984062073180466909966993407323362618558266601813624602949144617891668915035662327318005335789982147131304975154565587012758822065030891970417411286828784546494070254584684907488484968100871156980270644872107981511707914912983409707048169383233397750479080243197225657061201205730703628897624336014036432941311678830716459373800650204769397477828172354014698336652487382352811454647859641537520256154964649861236933834403975525692188901079094079300730194289588782033602461555849847627816642139697897803943273026129388318112700668887987904013715693306565589224205650308856945644074543154665653104281543510451532866992739846460076458151107893806645251953206829965505210974828250256968963193912598173438882020427590135699248076788902781181404925643527606975373618697267538778552847704580682663960027590733381633007250093684280124652842938648374840386997496980922590110026166618993633242855432956624972182133180494468854540439280158879330041076920740190647341123711911612617308105401903520235191949245762245900215850638370439452283865687529272619255346542797333376215468253438544350733653959022771690018066949932588670213611537180723167130039809534857901228799685066071110810190065929104901131861591638090819052458517818867798234107669173692585924417431462326820006162833216597893809532650564105182888079109078012744535370972967605328303695792556435077234400202182327811273692844654829465851311177267464755579034536859411558748743618165428096513954144643210281733610083030026808506639326225330224115049948769572024492945081555433950992956504599270008024080363347115259695776191211794553788221053960073661884465758491350091568856455178032301690269844592076191660773574143869361041073730319840557793862380337658696845624620227613682786968952200901345131099176457358266400545743240379702605734776013534432635585709558027075745730811045875599540395529279048212300309673923112803976730442760931234160002001161674328667857209620235503118808930122482540564437358916382716476357672511848552390213374481929790794950033391268700711452034769493705891731540136278920966181452546855260157337042476751134283654661216705934257765984548655429560339910381189122406853204811378391670133671030988305055924782403402290093916788570495009918661875474381630712492048867650762626463814416295932751903580837643867273519342254400115130149097795242444205249003882491305617590910941599797943651438492859138410035472512145232310315037836228418471527657055384796022194040677223205701237510652724202412744292679686162469505780482599125996763391827610025714508119731520029263521950711470503323368336566863235851916316616529202670490886299107361827685957334326502430843162668372516346417894614046143639532544693693038405128434639939760262717106560892335718378130637705734994609514710447488247710562427018449575537764672904362136968030022933917682914825355793994759282930764963383693931263787863983835182751377202672673387255917724603666509979968860548551807990874165265137468151407244194673043302711245030105508893060261136207294517501355589984719845059325124774389959317505625758648534886616806570948457936186779567448496802493171642007310177563902177128778172312408801350151585395922080377173409727475017881713319622810744916240736710528151808758843323533656160117477762528735463113611523380457385437571363950207979049637151727160851310184607830313357625208778123917764111996772021715279301373948121685586389890809858535906604134206985107551923911871631443598650382323242153655332113635119567948795569509466830563843851932300839219486073012722987548771836273069298134107068500900985324932175246410349625691175561128174541488723156733832896593577849248517315151979036303693669022246015447436344122132977454808496571728349820101285333243096524855093282374789635445848328784429505864389465691808998397406323285321321597271954698330216388399584126496087286522372037056807991485899688922856421773953065121263121613431609890246259306169934980488996448100569336322375474589206443191083228495994279902690830676581766733220995327874947644287641424101504133404190116210049326070164158246907392743231584940484757616150589125516548842257947301276139775682044751296263847331049899543365299103888750506723786634193895272614292466501858304538933690171374706029173311055086407063779565251809862707735802523883320110300984933313684367466919511870092970498816171710231236235611498569225688366255244885575072814796021594765369892343163902406104831553255818311003391926599420100901706666870400092763458978348235070240426751952897935702162693921193379838666790310350478492765925902812330651048535113462487167361392749456694618106606759589119461488499150358843851989976850953372296411393801137547185941834197247880333985974913509840666866208369569452397179032952844573130422355869400781924121880257663559961959617793989524231921821960823569283281438559112850951918207720900808454285035901398926433827362772594150134378973512770739147509196631964071150319431692110924459112316917667522700570282831373413019131463676891105655985710285924063717765759997538495918402121690117373355836033162533148827422027793428204344475366536333580084197689179257889388279796008403109009541286183741655449447738691344436155699010004995648445066880548602202659485386748182304273126245775468727277044471913818287044158444564181414156503517580611572006312676416095357304808512823935404262398649875705573383691343057507508772623539057429549905748457814252726937735983314730473843439208476983384780655072381153006798177391926938983573258311278007012641885068683528496487251267519184606804711394833952858452745840830838852968123459765971705857791254190397564422587181998464960487857690138309646283616229517299545832147455053760344601288707064678632995320911425582166801382869195319357120082147147387387896175574028323426210281409267526163673271015903389156067117895437733664795137702935025533121230198844418190115988725605504104132477234321420811639004474599706978607426010036229397454385379471736043036214577522306502968087786271197471602094609239044818963653306084679644362024294512836613178433612288558818084375682794358203266376688286860346860327423519117507866839540842440600633226961337729014352872857079293106530024343139152477821004476991078552363300032598077017918428053582495977460548208620923871561007139632117877341034646431328643640943371189269567819275602099246612441503918249021745309174718414430499862116476648011067319332956224962277717709113668904147561285588412489801955854962293627830310606293229086416757570594014031376971899951135275438791347661741070100203133937228304290615489135995223762305395955481416456363934515610946288263773767147936699747777609778442018135335990953145158568049354020750277254303955446215746746489116478605608520038848676415620369348657475281661842597513808186518323683325991272910263822246870069661695136809655335282068716123328960685126598433321517873045715688021569129470833767621406374352257626982549944164459325432523874665726948591248805642817261106451855102628270275844786069576982155020506766532319443147818813393459898044854337134977839590396365538112553288875333115231285949254951288097170597305546794193124844700103017160116621027697565215497678092859122482261750071706359200523167067569884447401418261222115669745601747129112828616982163030100469476499621014698949964439897186617690492237518839558239289428681528449734870044389844588476072953958219218525236391918081511082936271670949474484894419511436266484598611545380985483944513523447602124237813443255280985536139778644901875804967788952691878900266831320591170883912024207207825861843743200577219781297564099722443364190872070367794197695476879556956385012792097730750116672132864494094317821650606544119695279158622621328846702809920605300473406328719288432875874659488687354245735629538219690690315052841176082899251334359177064279294630469657034096887453595323347231614618639921257189551773092575487692940115176399211036020509893384544021226607588468243332382963580902285954906618357403460659135834041320091694114355150372405504001956052638126022686199825008573809525156766927069691007447291953773765506895069731861145087437815006603980061014240266931516130384612518076856730175662416526742735031207313656083440412844318086356178100833367997147951843939276259617565346586809166901299483033780857802726748842812814164489947208411235010696982972899109213525844496909175514709807385449259351181209405663535750053048350726299978910070896601619986879697940397898299812032750382610375136703794877874873920856150479898074652952858033150714486265347819851654225618756501131542021024541767676947408609796752306586326986770563529997924544264534432984450073079288913452603232363131304457562647867875044075595357886498339866320791369830810022409574567004090860563420256655204363684887262818840212367009731450557795687734124129722179875199718297707685091752134169400472804638111622474974701999495236592523084897937356214846926231477069045725365557271161079673575192980433824528247291857814018988490012961380711090330327078844765478853082160743639163523662205362601049749344905497941790366875950447791453452817116656809657865509907175172455868455344014670212802658015965631831119881646812163531332131364307751207006077542454510179040288672958360927491835660442737345079663925483574283782339465461058209750676751676954500212336685935409712147348640537314851806202587350504591861363788653461553439871054906276662803660404694766292376306069509328561613812835041064774678702446336983661521471856711162116504580205480111408098652128435378473911711028221919875757276514844125674943398142809395036208644623908313275958406110544034516313512790922766153067372441639528025908187633939275958089490838208902451150735866293230016890695418967705536451066645009914878622993229927637264316709671476844997184396442313507491455319530666745077592143955709525173963061067475734339620577960912275335561314884651529511989258472233954309022976418980709355837454157797922235907079305968875087685493348124326787728848961569699733648175624186862857052557966810066710539387514213790759922919398911357763874873264610600854910830637175117155216066281089568585378321544513424457393193381883000383110395031327582061783327560832306094844855744111132000582168278474373064819200529719948820265449245946073809178618905076770080915245595420373501650238330700658273443626669392901810867124426452587021656885150951621296137552704888420862623430311151181706884003421270318009969540938946725194508685957375485348357047255340716007312764403450864388943136854143843691988838794935486788485457143933479609210276519533391352369964553215498637432447332675478889401571742626356303808521218583468445606078904273353826873551864646274300240568360427018058906555034118010337252873078302020627359797744469182247927627978085563904230168225183930053216111200225435631400825018206249168897089371172036401959315387857160871797395581147190329518667129994014855034610767111044667091890504607696203509258898975527550863582524566828338986520155616135408541478436562021411155125108976299685952024838093249158980681409107056874180188332774026406926974819322292175412778475497473355117179831005921221848436814523936792636009194904031240504425062476774891934333638707040806770056361612417732426671343269833817640741595166699310235321458841246130143109763719130063282913728250600039952964450779327371615738657805494675012049723567966655631100131565897158565576406434856547062510143282501075107204539933428500280674564353647403551026769258840859157520389930336856421067239641552219468552735593964207566581200933472686252571139653800969200083114391768147712608634600477608615868396195500430378602596826654974710983826083789498759579278832432709974624264932756106954742162507379575958170467906591678756307209624190349809224136383857040349913460946765517924559698717373562005492429307832841885964663986317018344690000694570055329376761895562502271482749800581952245028701382206919424049816536564588196383207283467440574281607795805938964317364118569791405974582455446645896473540346456633825098964074725427081350262217258865684957089917503414232367891704000863589156896072731087261393195037455583689434351843454924676383581415543539076203686181918034245308569988607147272701708346864210363107172269781797318504594310816270517342421341771293839125684218097762079265343234012549949340429318665480796725103812685872092650955751783480919898145191265758205173246168826143534913062164227075229133245332165180648166674807455955129585015458697013634529676601619773493466954835946679228572094805079027971188776267108151455632895634710092436450745858013901192213651530910442101493829035646356802861257478462680531409757783799857147506170050115904676360316726592959034547096897160813505394565477607325592470564639191793085822338562273482579926183203796464233432611835869624395871899860373030030394786659769103484594484643015492687523339718447672011377825973264644377855405399078833032539993765505668612935605045324472110047789297008571078868499281016831994290139748860765947964211526780161375016858120556676787560334218626700544710053198678434992543856324432444663110257538446333661935583405898863653969752275182262728103330068187586530604698950452054490651185124576169128212688544190761430552400425593679635466695431670576892978871626073647928432707610055069243322689791963267489462766180131425006859516517500219779548673718104388812979642965302795796430170464163310236132518811524010513167464565858498467392520980359885384554860109714314055546249391706261794026999937545542052664297443931561730722430283758613873068494891507904642320996437305529968894486877105339403743769158823491041430736520346654582703609608079820093441630526228481294002859376552478505822134835278575815470359002279773401316797780991740910175901915728818814577298878291027767527480126884302070559556335423244925492913248915318303296336550456489003742978581771173555390171462324872578918602776942962963383478237309546690138829289258902665334299247353463486973240461756034773567261863389658487146262031840289484148381248731245614369472269436284770842161553698427301620855111746720051225717453245546747807114610660987293701727576433155001783919876087655305201565037869977974954917913046451968006732821324516002219389839968604969278807528978572224035326248255743185099763717960761925338139546601261035332358388712057915743515297577745897060750835185711908034495225949234075730575763503045056297936514542186275014940464668209165964039691458494354805821541186698715224474763955782571940703972955507906211842060331650997401262841864044248155364442223013833657946547676905267465081996698360923636204560611908927672673640461812186447340037644332849280637382041360432247200213056949145740051408857169257047961732113003360239575146893303425981447686281196729957912805580159725629034932264903098343600593965532876620264608292831115032913565355256449753678710461220560865693419422942740490179547983208664458392633420286347259042732639737699670059123415101747663649115176263521302242417280693237472723817458996022713576496240907885853514828960364757450375947486973714978309843770474308634762365718854479555687884748885932886607844505844164965948606053532257863707813224943754025101293899769923928337863322954657905812455916337041036707787675352798452900136597818038178507013581564589634097678803025084564084626314938196343215927737938859516546352488748695553310849526489617097137950143878891675309060042887900742404415494887689497602691454210420461818951025336673251738227106279326578710282213468367520366050660442856093487950345895650676704163652685845037757634474579447488442275304427827055369203090102198890363826852561411617382244254731484003341642681482908438190885091477004035985454625781229539520598509373757682200593476182971109660683311736992498650714227726827826925467100245686317086645580341161392752556561925048286961142588731082409248743482264211082270307384323694911581190885560196758831593331681983897551119891056440055784510265904428482112842288968505652445769365884310301244757358295946060510009597651080667076721582907766832415518901733991293252924540377301355604190041515567874189938926965977227992746358038274103775544347353635457918883349261959885335024759981546779854210039766569628460691935927387926408761622370390483485400480448054879030719523668409238222562503199372845093892060354350788591030883783048494795705446294504101197336897235373086069737079248031759701610272003225726834429430102703975277922018267704899839942522057739343166066482383557753785922327010149593707838183588060002837523961419806233957928010251733086049716990741876169131952273108114801964486360239521265396659408525898180899338126259405043548534702891699980768515758233559916352547571714592556994555250038669465357848701309076099938414171907019314577278949838589439936909323966575339740614758834643953580224291630831636939921293832799497540942970361364200988946435844041951381951550412665915522112429268480544495846526716213256308739419123832202914996136090380167095250328677403044807644780351891450016236602207699183087793630095040510419051659702744995578351043686771101319067631629062787777344063789946124574898549708742647915364712676479208153425642187496595800779268949579908499980921749589761882507045934606050185274019583306165595144538562722481997812055045468566593456783182855362150464937511443024786504765500784681235125525249488209861962166424586691293610910868541630740405202352883511952966552092361100137837020924364250523808032437829718027180201457246782803233241266766125432678964476823569819900095209185319782107942639443565188780943641418870814733622667065946905882490824896310821808060050985914466309936177793716569235513575147705012034545577949321082520884899283340099747339673837580086343581464433394179232087577762072905695746482512810268701581348906398591538715740961386816474181250260053019595905543168466689821758365665528095170972387578208862119995038782927726134761117134984409263948308696054287054823706797765922111096247923971074999192256664130990328962674463892726133958546561107802858490909477550680263127183549783346526364602306321752741985003658347634790842667589207749985909539076567978313900797065903943542186852936501714940408327870664563455640458913792082197950798182573294121587727766743604838263701799903594818147333868514284576043679304910670460119434636778396842841708499036336454936052007312862031764326771914155856825753750067842263608992677620244185715459919633105650106070256994856811861795958777261051571684818924311705348125038717035619377766123134766239077457965319874774975169186940154936204689277800093685325496755478298706718128224200420831226262308346199961687421549766461620823726583287773911731969925032762593604480790569660410192749299423837190081409294128773631602230015488922437711526293644998889154085393332582958353593398586512318063466570756342701477177429991989167867250312549790714658889902164259218115918940189798416599879586329813531650663694842230561291947586245979114815265519045939588335315243989684478847099149178821308487114445140443449007793064979018461560826377682526301784536259057550600443537530392384575908855479294088794776914950626968640333291606876460627252992960683034422061259958962552467179882584206319512201364492775213968544981649503230653343161731946607951041363457563742937161255004620562290181728059006519715576489154765613166038075903764621459324214254317681495916756058599301766351941461392711857309346962287749995319526865371222161738171343299328044387229996086495582071785949097111856375292126500710119884391296416795874733906621451880937518278047466007917623384895060187565723892129414650988193219815698270330276042106733047029882099431045425403682728873900206592912701043133298799917324775267562716833595588575547063013647383742882319848490042652046653676738982216602684291812361997041374086983242779145239686676795343558817555555788379773245840668391779194673469916738388871002443738980336051318191604643700077377970842316101154254994635040691144803752366927027144616852784945006932499313062283275552522652090963989182677826481509980569731345292324704144193629304810153409949681945132597954486481204779790100313487132214851534053410911249660602512792510151117004298039553448458344051804959177925120531934636408509837783546943526292706133481005235685051753896922065366966889923957790527598445253085850626249238138633025652194699421594058299355812316472617997602970781839278864695070092489501336061467384982296785834302693282727180448176649940008914219381244521020661436211103840625269703658581267705387516919134317542218127041899011990335399935925465179545999910584284335528415152531022540717104024826017925201818069349105879938072356362997610648028914691420822927547366258896726497501433812315456308101341279081707749490355869468888807611837259778078400121049814961166906163107490337870518151694221212122212050704894991113015298616197562921398773683517673989526184882996968983278493498441489022736307821583300163578121617919500678600981704574366895144789788999889048800857957386970361485291236050651288197575499564738883206773536737722435121661513162669762507442785403701100278258364807057295779155399820544444293874332354479777381701527406518365918381350780221600790665891436427545960071858736520258305861429948837798742741945515783120494709368291165934127811646356161760371340601318643848432094338793267355265042862563848204646542039300896544973467287948835354924421316715218081576234930253094093050311991695385511720558108008708862785784653444463646371713588801957986654779531233481731285364701669398722833674753877382552542497051194605656716092735881766484644561366958420125473240783390371208375485853353314606885016414658972262801596564517115883324025374602775163269568064206613297479928022860584502666058082592726191509258825921618479057064923463428361786321504652241541069933042019427252156786495441911949913739207328119670610481040658346838472989140196426120135466536716389396861444082247148951010592408595034232057874571341679731054573310964791564499840845950786658935480214016928477806781255706558700766297070308381770223807471050563489125006544032060664604773207751083383703735346141880039824534238277978196307798369122496950294875249038066642593865516520727253354829283340093040763663613923208676795249733644764930082330301695120506625599423916982418869995038120238404161394605865713083458441757473800284149905329362089637294620008596868729765271781443534776333634792338060253417022164459503954172748181814574077638719581242793480804395420520428702220871679477046103003321920789910108174710200762755244034592192910580216663982110498594206593562626296210105470672224908835462656877997591951574464977137925017135140583212842824670962865006540484948285609170883512353829348713123708081221649217428123528599776075435627993102099744298667986801005903498564547055332375998997577282016991924015165946572428715856162193251564728543965074851181661850865608306006813241965541226188054403963626032576254604485188550722682485103323291947138094842894010993769424902273795237096161313441833553850261747335044102284210861023219398189145058096439173595623525890488787408738176191451467262350803158059024722938853296715919153968510196809155025491037870666682597326968928691122211078937320813023246602668682137577792036392129907258591438235610086598756470195549825708615682816611476659823043224965749077488863624308885758991532693009342255959702785377387028934011176767520063434539934987860197322066559452804103379289588102315098221113115846454177488873173697361824710642246375435169132116337409273643010926539841737030719296939687534669048112322138235737130928686989201668746355955426475564136115372969629866517902072619229715003786368930901407178798784985387888722030764877508987913261466444026851543429344139467498410176602678135531064129800437966435630577738677194670704696510548746685160952587463512205531437742543453990941908185596603381508965889072041218750995091796004878919759008921885385177182873235618204278031194115604108146971466353967545274614798553993353819008811490119489320994449905429146804709358246209702462786675115274177730186634717336161939638446698509410074258203319528553017570234946476411747425845332096397178961861899205348997220026510731312666126061625544520353095208871117880371108991315570917223989430862575601273981170236817037370584742477582382414030739464701694232827519084547505443714592506707117482100122906996664377683354929821056338911142173657010270940775423252181179703503640539554843448373493552969357426214914554594065977574799159409277908987808465155644172954724852183332541187337885027454274621228599999876355605664295473914800217546744080572766755155989797767985663019459452010732309094450092650735333001508950632629467961728805257277408815821133929403150761988226075735332240570439375059315746208986743687596212580922772760949658551867572813841276706349003532977087510086145149730650108784019702553760273218316623775872492952672240259516724919471396894039557162542740246299709618872695424713960512332221874689560312437895938611563087752933148952653481416780644564207674295166644299135186535822292925607256963687796620849266848875401244475865791698447920492558248444915664611400533618649601431520234883981542735275957721298774349695558572803351786198614625963936796327065759260991787156382428828538847353772833028406085641754869060935026652804190384950074863815990570502905549770416395741888640845642207869649351744835431643714954761095477638813232376373761233616889458301838668361216674737498937218834399385222926251908422592249539164433739170985231668243383954852007096739684996298690448958221830414916360045084681506845015807685136884308667060164101117870064054654995482831794426389183213288922456428052498772522209317661808557947528775991120448694167063107419731501102326643140409119736179591531823580478984154166512875816057218685396785946123483489352349302681281081440877186804312381196169761854094185045539878485779171285348016653368196477368336095810914772661486984017397815092613873708274959035586604397652638157524155921504800180217961972579859487766177243865947501771341430986574053358652408850224084067927397348428759685777314153263796896836332298394736732509489678596160953825986334791791075553105395084058309261036693072653745455587339661655388805376182639804291299449117812876000821967400839279527182085980778099969776979594730418728072840559159350496138005518919849776252279856002062451053644226228980470436112637383759972657422496823800008087061825277159723303257783973856229221407705164584741731972557817201221074197370040716835794167646117610922848460400032621524776674914706440822788304521711963016746178309798600219520369432503361901417049392183699619551299496240808686673567599981961106968921996405005888684904772747338058156697192065115957324183334962135783369822964821691335541143449586016553841885987051539090310094313810433588514592482134563051236536613099258242629110335027824854192325794762318468158600085333103475807916261797413068558992012860665984851651585766060722800515961611216150585787304183423475218149721734320968717339541122722059762798355450360515277184088220375019751991652352706466963993843650323939010858685353839273952709555663799739307655384720885849427086418262222875151009748369657678965282774757826154887379012055433933248887862678091053294913104579608427340013853746666481809398849246943760029098729145412888742925189991647161176645672685885379936909725618760123964915323676285265523123699050383255027925581435396475401857283001092407069716689087227978729442356779645387059859890949762916529218288049084203918308589917286988787435497291107435259142958497425301974804083563206464330963795047899986669003166261492665749161133951741500869405052352974527267586538432942876268891899258881841510805070710403911802140739721090787125250080540885351927421527222643947026825483315963206355431221005661918139652723399231182490881733102981986985421914710940539862652537095968773236194847078984890628535240127791797926494708706046829310475881819370130352307383383469213722288562899496010104264046296449131157325083701389220949407278775186405249222274046676672018952449121215422335680139998620832376754607801968314835502254689783808541469846400257769806000203318413304230361720424709634344358060686429825581672976381685544665059848956337611636245463830328908236696531289495714458213826283888248295304756867807883865777978175690786663761563453813691558693450679771957787614438801935613914804384529901515040108842911855668441525668537394952141183272161144496873663573973658291144836502596169060344371803487282638727022175503279848066731512579380231100339305052260275746546362022384918158681089642113563536394005571982478289407084179537107735844858583533566467646378023265593023689919923419180506585700466224859914506458828018337959475970859810687781303226628436083274091830364887656024549525288201641726527011261759899390584469906857434941024711797027738450761559165091638788438247104906978932702434475549361542920824508095467661716902087834530614390250574668450082323689168720651038529635656569917849180068733298970495849113408706349911759559776575204323652675404749570197646093175014779008394932082405753695108293608797276856767880470639878904496319696294799728438681535650573295890509609373142801089052191379361732351484235169207880871984052211649329541078715400379809368741285963095530322721143321456280246300322432215600390426608152284135130972436719158157328003861502404035849020515701777208935692949865612628470454327011119102413386688821585040905429319943927370837732193871789165994897766928819844938986265049305365819462867811189347778514155839427613554415236001019867569870155767831363785084818594055867346032355078713448747700006503562342832350177047090836797878046633652890116308246306233645482528431151670723324293011377436605821371232526046975586682577349614142190823297042458158726399705519791954419541033795704359106576403622398609733239666003432919876992576660794782170741852143393445642347866221537121812936140983953174213965867543285597506939744234414041498396198128903692105868760922782114251116706434765618951936606855131267428932843966524741865261125696891904308302341910192322383224893024452760647860127291129636977290175333546299998002511892446700511229870452987100020905309695686862701904433836198121416365499819493700681736709287704716058009171937586796009040791690435072782084923907020209548327255472833357285681069358467829687643986588474694954712546341336289950826102290861627247495953247485380323927227349470281532445185689311650884026127839122478844497183037036315891466665018685886185279685879758809229134243202946382203787783122509232625484930080382342862812147140995155200843563919335966333626982378256442440344199403975105941967636864540610997249722506971037141387604138544757557065142417952627253976172884976604461887194484260515369720191612617172077046410088218062779559059052578607261360427254601655134947070452097544524600308673062823287008226102613056432903910641481130551313111874750483821648299052816353092877613964795397670116123333156411312021670877406498581870550138869511376947674243235259435709596726442268681615921964743417115988762172659393805075710122409383327808180676736347872109674975603601389238586227804474799478038292824670396923321071079074993279742910568836263467405448639367150597291008601809168431575934086107728695688598623512873200893143257428580538382755374114381556255777494738094108035043758357627596686086534970083870222849497985993660432719207501842794211492150838243758265581656777595931317616213441913307426102587034959378289093138465035095986777022993588412628135587964072841393605759193844598744927259606969110466769149265856476177735547745899718234701214383948213431563619940354370550602801677864548320082025194623399844962918191867144481216063085976820865061302587659464963605297755136057811192430801220944149230382853868648270887357601989323068483965340654792727113822463922184105853422741768816249981954976331743992191770588883191023896720392097983180058973619013662069278592445072816362148232113430271056653221852589940101532337257913840061683434436990071413166649790609446354155643154367888778556423195402705005828135057735685083316514260931489656387495483513297460799017249472006488453677291890295517891768892037446694545025309785822589147602374832083023606369608921359065553643274304495010638184002387526184926322745955759542040623779834648076955081530684780512391716610015348910702431104024993822379392350081458275483864571219065682522553806761003545418372731367277397704059515606585727104982602932229196621541651119040662904779660433507252129683314668390188937667707744030054171003608558671298863930612653829444537556291266626170010733929023423152713602955439578544185635325435245229194438439360528363956456378678050611057005154102097005350805040483288007846878350585034688726764726511408221553916828102835626063665544816141619712462747470729370396805312520973906783763459218132791847468576622112275476709059468762011145121871897417944746195555352577435049032239945512945004911854923874235996086236308742008079079913437237985405086806517971574746774151144324132191286513017830190547871579292574626304151205438533312154536921427203734619187203110750232669048711376897119730543243059088424213339819972222509982240835701014681528728449415071828100296366970765593061303941558572845541394265535609759944926923045984205645577580783787701146365174645813184101686237585208309961396416607355800899490017236780139954673211040444032613435953994810040764387919353852106795518730961827113408007112395943061321110088041402379379265035951742764433722525137655996834549671970361733043823769047344079270178739774495476348914334684126994412277244694965359236059647041408405665240346165604518453634270415408783226723001916596952759801471629094279195628303856054553198365893682024269861737989729394325694424491973354209016285698022907695267079139764465301030738472763472382343146036599143939926529818815456692241173006856871546970224302102527076135634431055801123233371621046375979502091402447871590683659637969591711752617443886626788680440226569496584529755753202695262233154799817488498373316586259844638845630149987585776600816371427655909345563889064924095188818625673826673065547849886343547497566242848753667072075113209312915465008953263473420375393422909608095519624360042787379767929190243042201806212023437097927893322025964239868457913334716433560120074724315422481669671126201363084864455757543374111685721420157941064752051671334122908766995375317565765425581472720080209490088048360126733050054186087692224148565362552756469464805974122340106953008428212535271375144822833422022718234351175612862929906103085128212106874332333518831996190923239471759684255256466794108488086617715891015539182594034968516832004447420151001130595836321957877109880720986108031202936629503393936012023399332238261954847663819531593797717861188714087559959014411426846807388019279178133750588583770062801390180978465132172831308756559993463529111056144585475854576946446551386522421146587880078125400261885325803151009731584994261381617847249836302821462207895772786712154073950421232934257233570941060038942178426031903654986521967674081439841742087945738650185518943426062535846457106172078171079398975976519476440411030402734991302687213540760557727427452141537769799129465473479629475692367393321131531096006969891288603593477286678242708276199894211534043277022944068427196309399138468659041336460861020574029145981713382193835197866082432128849614016060555922883215814439989180727287550821367670661137576777907080641816860745810907626231928338057663723188806537751004844095205721985716336351905635822060694401937881717059470037648214529084807359964896997323481551974420741627982154463169033097358548988334153359884568346439274784800823873160016115888676587311903302403962505372969061844966654371969744259057211265400440932145128929140901745117759692367416780609295892410514589270014023822839596692495641126198818260262674698851721021539704324050741400333189737721793058738046797130774808015857883758102483297401642415806433589502926369392884690534528781819482539704323902230079909086174881458419943290777378169371750828863473312118882736246687556629643528173654181092088776439204354121413604554523673791707656758865383999162634950064859237116031150909454345173353706953181651199860379632153529560720381558932080567292358539015390059398997230979166409678941662693007057189931255422712751863301912544523203855961883685753225899779945387533672518014222864374679285723988736416739463781872847657748076649317862431086875156909241666129996598046973674937077607839706358586542405213093594999873232123019275756625938091270710036603835502258289508244113483235136034252600176959452431569973648439567561324751186912252097022090047186538591687746158597231289221473430511750368222600714650839411173430846788626509634872356109207018618774237416639131020912675022117109547863969639894878624759683080128233911821309394738617802161385426385371858599986529272860319261770684391586464548288476356390951233202301074855859643746730152909000817041678664946535622077456618967843406740665138669345008977417894033826977614728561764237856834584462004324993101427743465898018340950921961385169762685386114561314874652059341219869293725707685308221227371366535305013149302239906223940054204610255626339234941411186882765606193871618060437384836951710331726217233131978642011126589087037268395071277626891404018405766329320813227870285953578026497013066551430134600390863227980279801559592815370760424822957228950222060551891240620423728238766615444790510087944439442220185730350722004740669207001218441401188219098513476738891319514129118192227840103488967620111776494696326966769766872940148038488593114806560487700802693242203217221334453226198902044000832891115513376718344448841264852084932765620961210303204305801471233395756787625211964138519142087714464139652758510796489749084694170229885391446129160872988868074016453526954988308266310730651105887539057401665598295595479327738912969402004729837337986180296823022885962821382758726354040265923465852817441337913605525795171741048608548820872537026147361038740325411560936189398110493039254730376324246817443234703338517131158635628580335090217994560990533980797954382114247446953469435043200165903661014915148789684925239678923617486684686738780295794051546412003838373916129788409565050895259351171028759883171929066069202546977781053490715433667964218943145368707065250054748516854769931989618874396736710141539888045103024575937104112556424900280918168049392080190165812427381713480689848964516816999106755487805028689039419906043135216644891317421443978606033191138505682700734421338261217168700513997820690079292531690046776233551302649466091767096024942920508843454930306721373315718168802120763330469726474167624537329581686306971913830059403502287969839571280560122669303232086311332800159128545322189448477125214142127269672918634147590914403489807089951758315578472431390980525373991049746628029005422714982254268419369470337550392287033712419164602832117366091563989664888512289644381359384930435659694877965302663264350796487802621683251298596602218659076770145434330440774689988386025961936749485326661250485934028432611736025893841329911081152889971043932293203065538505352972636270903388573216938225231193058525817464691500483203495296242770215272513603889635745415434859148501665563456925318763107063466307240024338015500893099116473624762209396617343728371124956418691038446754266841185921706478219899180664034033280150048363122972731748081952480955563138763449604269917202740673493910217277583842585852910197959856004142404076355440343672140546122748708812986177677652653250915118218083203160741973612779257495713234390350690525497141554921210137556621918697684994419628140020048236578009613097830083476077757776392849975514009184346432579878255905182098517146114556874832563921114170054468824725020824911931620689732595632001828151542924050498230235231459269175344825968557194380242619314640421156758429641900190690658169519093365964111821993466660933697844358676624106015785202907840667715341292041387974686221932344513612989858473601718666547582140291205270149396413124805213810784915563293527983410350796034731435164630567518231716597533778147920141502260661786005470610353403914574513601457960930415694965592084521782709641848098778814234514756514352716676692016375893155950615160651842420083259743502397550227426556303053281885794550305558183668700953927054689373790015160439312996878636211010371072182869329648669552080463576555690486377867350695686800042283768974986337914340466191702367816745507746520678210993930862037359799214699094160103438121902135328165322518787315863254477966984174313228942945989891272863446923476759668428977303719023271338537252866379746462502197911295976152630095022454596831009967316758671661819389366571893759380250668364347475715717736647487365202618194094479303003895275084691965401056911481205695935988317627485961084647799059745491439877012089278965796917036851144527776428574884965825965349661707927981267642526866480564124580756264986962391499996545209997835099135701265613510605092842334620809344304114219468039166480960931892446418616825655146355979025255504690233964174941675473165889943514810346492269941845702861094385489624791846313960322428950415281211627362871738447923798946366630020275400532355352466113082549094649063255097920629381189753720318977636389370829444440370211381117556544549766103939021678841426898660032144676323047520796542476837005168249621393539384488327863440595051822313792468121199268080414559177055975049473196856468481386116001391218151467112311357234980870893179638579226537283553329058151354994759121443657760417115897146450420248622127914523912941934850010251004725784894511909215129372872171949010612481658459804646113296468963466410004166598350579150890459876966030561725137534883113774164384666539581759563945521609116596331563540222401460491843091143978108318604795436528016343765398072301283833943955166044523765591078893664725481015042927859953911536237584634067227807041257222589197183488427575095336716864265569915774933602363988099034251617602587868342925987374508577048903681533736478916168060193310374433517441675331711914278910271720421876743040376306349681479163247478427642393396079746516645549654919471794890944451818624191035424138894514032619527845230385909545991144626859743743169957373177239352794121524813253906036753055472465480950454597552989003562509254085670280697315853629036474330536426240940687419831836151947410893837229135058760361604839803247860815286641864852991121342391742733056439310290988395689554054155129558156979136357485588863601611396489837400559390654603601487458741977222324618834886345957026070686014262678011566966945527680571319131458717908186684541140949368765707149143809543214245347782528270703165919186311098250577420765416471230297454314822825388415887354595911204980420566622960580733644588987733410599850057179051332223339265249548862254771023801913831918064537000687376336245195595296151129304780205402408712704094453007612465589461716372445069973682017796383303618524974015334272921265307923667064457859125732679465288488624937974542080098661735433648301171017890620941493672918118755888160567880436200207998717229970434569056356677581062222185206078283899358734531313015855647876418762398832670812028133625353131761337321489274623965509152511215405720328689799939568528633398567487182612395981567785794393241612937019539588208232602774562337848889591310860875420963490352029380641213482154121587621254825461720272642168666618477112559775336815937037649421299107082562907828588271531196288378107257703289104836591693530369327248256003234834722339538351161641313997575525722105363099952387924817223895554381812409738526977226778318098781522843014085284445385730784568208055987453112148093919824239927638956050934014225461494204079564513416374338998336927229017858956939159942666369606778347687038470863329645790276793787064779374320480305364856649013308514173915215478827242257675291211697790124466128817420469919016621846435478650331950368875938733023324918226897160573838039635681989204140619600413651712311451952827660866091996209494213435055929704180737584053351858270754943968805438553008943334322647432759621474045905730591123273340699332265270182685551493322465121840351760374424849408330895396568549045911475059417467085850138478985743498718907806618656783019673575062313737908107046865160964374762116153108222502294981571458912466905749356147550048750336052210325289820523095451166277791241241067006977413813908875835345477288972470211232158951086003071840360102578573857699590538223125396538165321560016776415107040052905831136599118927421336663256120911968571675578726048696489470138088662843989513403102362428036071592175542989027942600673872506031487051800317890844343027614982350256980187265568713035020619447403609608006276859470402700599883854310339675952334367777013073939095049750867333267079657395856594805188053951768490575361184505001649860537826130090755849381080188202488770030595595053446410162299862858500500870398540852649911205998745546664533593400446749163536358919128482066170454119284327546645458623890413882002233742783865578284461407763037852899205727163756780572605080100482606492795041151396654133706727179003765396378259252153077391431917475584486436996864010539512740616411682150098217994245211323828325894950622862798046161332603361061251392659495144385696936180661032937041830423872106087968389803496991509002623193682700556472337858921282636423575114629341042309411252129292168771023274528073602383762578060590722919103357843853839030379682864790663028430518096409358981933361390785467170364165052830625835621372390302815103985980614144655423319185792871519533018832994007823026287569334323280338301538678466473509223007955981693528126996823003280655949660779667226789677836837239015002494157796534321794652136486501008044926018478855370382219833432221351830845681080181927980266285922085176526821061721327929115370471573168433709263220114810432011275256686784827438768135562212539576929426838438308424533143277600035346483440913767486451043589646027993762113646312893720490481135388693758604045682302533093865577772053648808583930291156110382383528847783835870701753952564171631668397814019038555588892930292923523903883564135020702055861798815757019851701260249643777175836091522673027817557631198273487351145940861869248936680312203902340863638428642261385245558712457962510139816928700351154936396000831268698140269410455698619369291939883902940847917735747424402624244942984656975508064244079481245747028681058261926712996193158314478667538520331084057935879036023847244893891325239946667618222244797374256501675601343687591821118924302013871925502030091857027109152013296385134539001051498452109962611935923584344519152428669178664157464369504556717173320973582777024605268051589467712790510116943206307316581920134536479501420504045369281466345485225188460854144543210532285338915571895534359245759394092950334735302361663580024606976221945827837830903002793993934433590172152368789354244744192624310483828196638177568666391489627487051969080132654039607574141710722332984860368680420165726585177741090230509193128738824629368080327773352712656416589121906003150515676965190069258022359480753381337747670845648384371738279336515284679418280457934734883925031707249899493987047676965778277546113588378711180924456241585344758371963371688884367299170916718893408584504031277910513155194950766234735228847177555554972779436338339207289907739330690050049773918497821324257715112881308126572882412358829609139861985673352696978154981140775082342491415144665624215679887320089457692092742248018855776254660668618998675445665014186323629460950982058454129418368179951996497462495529228981191594968047791302531618272212409465807931029588452539074970485662981705905744097360396197442798304786635965144773168982265873627762210322354781841200392592516469572869611847181112015037340343732474348291414863038596238555351639337544647978361627086211522591705146140521477885783711189449313654595348093009290042604085809414945936077865030830357562479894102982921980960023770097147576997937238049987979105940403551463107682346912305963606722012501239021214198561768350279264532268815196736660092889728939591062206677352383175576425715632718340312013698604685895247776022429462921938299014896566371507170279233492378569139638170032690259137749039587384791335277220956960923503915702390695820414599235368593873603835416279442423217848639975428217714291176153167600356087787503038585952643722624674835004874587865210082537223940610979028188835299369620885579022966286509454790932060138024681811036820226644840184852759959307329210086844836563381469718143992499352835499063019474361716788515245588000195585866748838513745197288962911579738616275241756483950508871739154305368430294613108282007080715418317523053702290194372909825342748724607402015199095992867479813196418112812340230500833719380613138086583073150659266009787879762921327533053117846039871916363879231414365992216787915516538891502341614095987878475435494539113406257726773114220609512411059813476157215744410828926559253517871487636771650364693454548693471117138720776483663073826583286810329998175374449225769423961592360259807156911975297533543716828576200838960016135263292939636357918924515914979234647589949820165957658362245993950216881820798890436933080217646560745930882152628382031428674737290850390308480333045321128652899541730846332979273719984218648763452843068005411810458014115732727777571645724983452429750183859883819071079495855953153121050174904836312193982562360247412636234984006185264536636127707866938044953032235779730204758700047486849446531655663576521115665443268810983031186766592232492180389112454021027110649974961800002719421708008228275463554784658757106885979837748069433851546618606227594288388419824090942639083412063655187749658768270173066392190756678411421060553828516229804799432046875168687704123913835707883870512211996072187058327680846430301105996740900873492934732103265482318106055695421233376789672506489118879335799043627567334235152455398006106988306482590868504266348245237014709929251384059804110965327900102232808632297141459538564390589443633710518038514782941425099783981302402079598106727159658123529783349336127119619094789938819417229331429569266439779617244235481853587088157531207230640547582001624260651544489248430348353965037717207763741024374937563667328698355605665330807410922247302936258866214844607877281992423509775059347052763829492178656802850477227820452285108039018026138286818413964341756114870261370060325765241170726926720528901111241585498521944982157469097908636203722880053533738719969297818953632140629253114119944238431690541686613743415832418733823550750451482205251300468885023270835528455962790528552511374322084500976587603427746589321540844298949881171225001620495865704261646033484202255917797878189559803503393848823363926651147200999453110071586381015814846567179759449778339895769636504665315018892637625664846363505965876584117059077425605390748620196154033228430845148094990225031047065824376322077935248526593437202850899492456747651955288073813660782500672978965059159686806553667095587173292158941208833635282438273707137749178557292651237152685980697353137812642138599471459762109288361824391625624711358719306099997102371310143258606089615672133079506124832817538098416081550750104335467115190216242503408956547859451506966801905040643396863687971351701452407417911482086968691679919014675286790708627718566679258141944752633946074269563370257449531118237067290403182510234612897306282035535976373498890960345829275748348769368462604163223523282963462747667885203526644596593626371046272975147478074599601305388795536544189697149046420970926289856335845705287817484866407419582831550976742831658601832338098370553322355132422866745533091985299176908187734143756692049823637464247547771237635970351145403678482407616061300282906257860908875184438016971367725518006098602523674048682386157367435416016816224407762577727057985788716640784482078685251214375335442942838003127798581018307132422086221741572342551403147016366044255677985235379016896184423830589301863054938247328479374373953637762864609835840131965607490085443853795187683180892661508130078550086248143922027853505780299219902194449526248671554330108941827709695013412031050972910026286214043091863751550437847491706131371457329574042940617124150007269967145653453949820211715045029426412688271488055492014942116927182211778677683733877905289305893712883136821913480524272436342612324913072066423539795929167021604645356546506978878696972387889808438650136253526561242583618389472874186799240678176330743560223931048099735146488001921649112863171546246781058313628411594216299592157190170528558978313847641971060941375276293935799972754026466526723112858355776475426299429525693753588947216166525119381114727885833713215969023983300420845162759577378910845770470783271489772036646662993817769360240546588021129025133795769985902155044314659447058984532381318733318586125316170103052296644087554638592639009627087796233462146850312480086238266001434607943255262227891527877544699548828919897110100228476604273341048963346225801321163059309405903660820803059193120608973945992412754686082175893970159884185167029474680622556414368405606586168049712117155546421387649941160252769145833000812333907711486954167052513845695386695941474225131356779565389986179557217662008545577328694651299531809308477903406122700343844283609040825807290925858996145017942389962273228358925150469841414526286020528677306004490463994476418949427078851212593969443115423175626785228396599425739488530886011341891622571149101007374965420289190528648968040777128696241353562928082943906293533347848604739265248741265510764960228165286592662127010713142974938172913226356141395351925221982736135630198894362598902815350281660498887148293299372366510193897903109177107618045469265370267766363023302584691601231957481217943748153921350209917466929958972243807336169420830843102690514448908659562496216836964407300545007175976667726833848824443288740208896209220272647905580675568437573512127712838203745011050371605762236684859157180554230014373323284573210135237103602332718757208994235921412985871035367319116129853158571959325946367933602130906543851546617816103149410354472768762114888795030242341166703393469581017954412304862072297500753054366568805015753566497310326015256871532192389436211423730870491030675842102995556362167102928724788578204712000153632685807739981507921628011479622217041287688751282772850008529018432471348119952651956818649270464550422512221592749076314489864870425815242150670837228122260359208450119710137785166128190590938963527089174734158199255216381983211498287489173616995983009625743788718590108215538899051377594973233509304269775715389043192620993418329664018748117567250229681284734273345121955430080252413757194989443580809947309057103756327329338095156021815851423261173060732868708240731869663421434272987553145415018077809110749524902716121071021270859471174133013174551817220142620736072597500064649596259168094769846808035165721121198048863455479157275803118265000029800236219017760598902780351154351448212702898139254399487067112352581992728407318030256889638408221936136539383759486564948678546113892398708259735683884773672289925276998680970173807032105067706975010925823196104432479962263761723275316236094794576947493814577540925773929562488927731473769747944063958688600721836594155628808226013769001415000017789080299847788539176649244683740117745132865757858671305002868648185260670247673987751080547660518145754190125054024788539026875053555803418422872753039534059265697580335958285757499100232157593809044257770780199519951244291620794597506515457297683573013754384142203561974281045210687141127188494739872685783063472760478477576786884163131671630969778096530302823913338024263328568927866061250809875213134062186642297126918269244719127448201852187207086738805067391468705645841738811322898500311735757321018292228309904894385674947476438423603598741227862031963883059369140620868958347151585907923312570793395050972200988124917448658972814690846729108317277954624012582967567506610301584751578114099070593192061605390551982906010065686565339872997002897213342469006145474731601773468197157054151403380700105858727180005825805390013558488933440260883785027364248194592446374549725330902748899036990096991287564278467762544236291954709969513918461619004329078390007056769320552151221785909907484906534081400799775188016127148280427944827493321702426098923082656844900544338352040597673047280422924375249669466452426014830173117003013661596532957965231883617879923049754233939456940323954484211044485083576781757179719210938910675556627945244228344207169823280181797815094017379025858704466915700993362857098343146377082829074595090057819759355440242906273840313727715178869521722884500802492002119616962708456198567770053085809517334429157128422064271000446261333853879613051215776232438386665778228851881295567674542162576651197348004675527170301926979491472895819571391384490845649324188775209727224248693493883454547478352506558936813178689358753753052837079333258575068775763600433684420202698400058463219919025583102289059375735118738677755290501489978949432196084924308693553240925821898151996714915922222031106879476987648201793735228518933035745582403245533325179720486372166653469775594921645769529440564779484327892994369540415715902606523394858678612858532530499133828087090297760415082838539623252632421032474346305095802114601354668362440912929161670471535011466621595701829683025729099096712586911915678033684997228474423244163753833832351633900576372332240106999737837599503031677197321200902012762984832060588900747009560654727861843024280799924168963849153406713164724109453163489137996250967856309095652548014777971193797924252619172889275749860171257461743259308813350224343431373103329000488510140974210031018778876493334644812582042386400620972456425839769335347209140628069931003511532945618187947426335601742803376151597906326011192979564128002154116672918204104672563344235976453540005591082372917970852000973112810561617785100427136228295941941830696547218776693942378903082697928730561626576042008811413173687486973680830663517129475834202949843490698052810116315035733577261484446205390056804601285506521396918357379683975808861837323116083833940218511581997822618751256689527639675270203878646852267054921889672327565905772743436239118165620154945163134419277717599972696313267463032114751592214054512841911777296905720706207821870276924857247619218303439080632711576414229538064692432777573602164539280964948788419831532119915274678116359425488134166501072796680349949940061004693795901505326210289833689269464537341149333300195225564657409928520675553469029782126113837138088822607875571804395366884748571719719368628903065497907411667127868370625171943450277463242342426255145255130088992747393060388293961161369439970418421889197983715753648761304366344963148317032620439101900991087864683669510779465526459529352099063115208160736728628331485302569955147100101217215515243176992714955998949693733197831407945123596240776673529149464574117500292196947261260457659783693052633435400510643330743323644734176299004451488986372972916610163495366726014286484563315773083244914941355364197871931027272822207753637944921937442687533092337410069381404003503516752783337756298461910181485349699851877247715369970057890379305426396353787424526074124895834567890642466541541001075679733671433976282319121371837237755349271543444847386090858905618535707258227288719528165108805601720637440006353663839914842441161195140292700676072956438274606850404547214289316045683328046868443037478501727401598656285219996942802107898463614466556520519422572394871834332896990373115194837509340533236488904525800147815443557163696512755958763482866193149453034398639704997558901667502513069918418030354485522657581326138838445223132559421062887232371060279653726882094439033587888705506649855147996894682911885961813628950304839848416096801593729416508053325433718166603333475003247592878754483247997173726779844881676476058538477588065929750863361915044492363833479225856987935389218657783216492129726399718867507404250834243545414683387975031351994382331104925663553193488993844862088360292050757060612944912318396362812143407920446713100726449801288121993511697958653030999986779906871808435552660080179873255805245846389288976003706293972747477407577873719552051644211633582413089278372255545421385480297102932016668779289767412109370932331212488374661651952956849480219856061826275543750567191212223651275903656843567743628680796661154011491730489340429379104541978525684820302862829620914086457783238232348975740921792278754677623837238528677162604668079280219189190143919156586333795256433211085557755395786461421718176626069766160102025407664724320518961657237965411191054687369185044823364522047051571796454054046051098312304671115468214943534846555706238696143654850681619320491834301645993659788440820557992414121487745266048345146702067603566993443806215552987387144691490470334557368059168637173919295376097589015105507161331215801147908724013614872101006148412005339080616060147589583555316393342336390061797354517850299850083285607869781884979432350508766243008818983907043214254176003457635284688280875885244878985935605154814478625001296889723708127011414296820778697101808027804004665762953537194710292169245145499122988569369469936753895124460014954576075606167781072812567240239685878167460401855172284661538413634816714153177794984531329293025604662917183456378822511750436063680618521512044759577867751429225741785365551257410120175983096424765318701613588185671821330111002245059852434535581219331832031732296659640271142327808672797109963987914162534705313232829824699490406876767632560024463951454473149345862193319160259100653901704783882338295602212772390563045451397325867910179052351624132194181502200457542951213558666483187183516606507711904695924583596932377059078740528454572974035742827010948347862845500781274278027819111896196444025667157764056767182910719065212316010097306937410258455766937279269749249765409727396327268735951354685656610422150180354670660617344242562261889834682778506043805705644799229288338258098399688816099455489175850335028798811618496344914101970086676990911247255204739575914884291235337549545765827225814601761776532622108419354584944132343529254993463279063934459215269725477797717017789588741823256537679712791592570669104237425301784707430153698332033421453875220981787181657323379491567821401187790857489093061279609211841488399832893888172703625940483479664959029151864602196510627653886845411543179359182683265714385706208895595772036220842210935904006189918187422368514501344930782478533087554085430073867051055957029962138256373506059731165406136789904672450324808803415048199834623981656367807701655798744043783602820965518050563818222217296056436601046060933810220024066559711370709382664877150110845437345437038002745130954799308289795218110839847830875278304491319917270863904196283590803252716975939694779897279370711801027621535017796338372695487412238533011051512033279683385024204321165224195247454104354525801686604513481094159885512682596508142861125961955120064972095697413281409245216731291400346212658387276028506691222827936375687401326380546430535073743186434258868230579707649557168009540741023007034765383488772651487258078360377591702768476528027952215083365572015926844379287584073315294198888017749006718055694349302168113536908289727049775721105051572574769045046610470693365031541729019262252136492243370640195256754792991373444823703942380855131812205572182825609689960399253553014766928853294477780822921592509931702858076805298912912407757939259739319952480963503670021063725642129574980899654406928287629036186476299687582208655286890179870716016107261771139078884053337471989396557562098642889987581826114482440988982093356623579386558688340142614021792262854017784492984325786005322640352046325313438687969863102543071823687919819847837053148232080948777274167764338815187509482726717681348601129358211635298576460822562509450047849525846084915083924801555885636017702315897092704402187196298140823799463513216705759881614637530392592040133291948803751689173793511770995575862799505135179898022661452463979531821346574954829502697999053539733568270662209299171698811614424602482379823857160890705791445313835050791073596843539538879982679390377280055975139716441275282252407303447384185989558352325132052006704839241819164943770725377289789209851370169996763794782132707274501951196938882250902264559869638385932066759064393149062792007486261423541675970471537842337453330928359912998738101171783100005711751820048922708693771990457171434724370325228895523960238848711306502572928761436609372471593968182089449105871610646615920377760507909102362441136327793242684578506259410351933149722415056956378523436650577881138089397475830934577644861300111672779559497431393319640961113804395907138633259284930236383069939001288204901843074189339013893050848703795430812203642355059443429179744633488167552436863593702600969071518923990648873200185081378267640188750903431362101904219631896935305786436599160596940726927848296594613838925737010219675221797986196768482001873316988544465135428623909101803782564206924110367183954420390497714090466706873857053748972745847996365789868932843333731633128225038058901757918140229942303717382579642106452191159757423584467248366303570840368952077445102999027295003764579952405029417652058579546984762349002819144656834154724654102974056970295506116860573118927568362512833906374109829964629137076574854050029102362809983123818144637346033904541218572599963616610310068413331246063184792849795134277991231919737181232107507478350162369101818392782286815864799923888555474007470924121099398798059122991711342049343769512728996704078366432309448593559416096243004566444939327127183628430671168258407600370056423338640394908273782900708654555366453785457436615967321691926113092242235593911437147574545800070710445232739007833430711496176177262388165140520619421924567115458776825519538851939491448658811328987938054563012455627710687797522239608940505971564452748379602321867753597827763885708170947186757370580354958366220613600874474024210568464908470522954779835103667558009149332323705061480756833623929166903556972711717560620697712051755734273499628800690045125455866660927541896158504428780924383647318853739389868733122469128255961422514929700107021545587325882832146242542179442280543241975823503809766365701748767724097042542124300191643444176538847022322441125374039525849228225975187879759054332682278748466859096771437880501143087772746364106840055564103138046689568550821972728817193458367276866881274534810064022076115214252045119383599332459428667352382262037404514609944883317749472674022860361639914521705979387773738123410715812775875617077953660476023730608861516863298394270015420088083046856335156881725133189213191924582167579748942290214306131857357948154083779864025602406649321173332676378726115515009255963393389082759927251271768559385415147402795292430661753943626852593959470042988894982979142481183026577852666964119082577875143786233400702062544720942174353308748306024670556225659098313761454722050079932311734278850057386009878605823380688562842209418674862460188386047678998095101697117595511196361987211802343569848047947874162026775581384652584528024916553376173241043580034316518750903848737126636814640327375031329953717376713672145922571002508957953516547737275654499899954987895819619341412421280222335326463181751161179287693337087118596196969324574776957009324281861579555237925389057927636792537891745723610248062456099188428426009001374783857541989028005323199642567758502089508192493292772854454989737988503427612092301801859303392569441647005896405257958032017256484855032501821613053269301475458547567962663819439872820331695981024460622889207226003574447929021572639880504781051323434163756340716318935596243318067642917937379722431330606919812219786760430518688685826396676894078617226446836326400161843392269913026038985489445808008515131222879333083831234560794118500746397435323438133199141459660976131219726893153838105833320579077961298963612231995064987184024184758008841304500422513114047735788678671746613618150632451922211327645084742310201506846365732829694927752191401327024458272163841760979424373420368096455178748592974169553623279837189682246788113627587255119801686897070210825232063861326127116282360287902127903486009085845410055991500159160054156178472743332148630574064414879286860077546744072859295204696536183821440227014349130739394483967765614732043989636423613981738887309207821698735206595552438022409261723227281495277185572034999884526523267256220407782357590201832219745491679101736731911599379122837087725379666053373656933488419941896116738727862670036794245646237384080296689269590651041013142035966496531886400501567859105043789609000099700932189376861651354984060653773092298925504143090477202235170932191114990405136037506040571458089321965158720187226861430824191416637411122565624013113481582569438015795187469142109169858093924302482483878170206128545451804321071228196213720092603995474919606283384514901801789440679887873417747106453847766455892675444233313528419240120777652748322762645507428833373614795224807706645015603246860995393318870016226678291590778257310565266739252952652547103546146097569839621454574612866764076075655932571585195760682828483056578078966969455565806393290798055133478287487426759983178072021077972135809354720685993582366943919420250841057629575872484226319411411195230373099246242807643702551799203304539322663459939403465389650286742823533498820714318783321049368671305620908805328791798516536432300141110800265983795071065787219438926633069322526441668002699452347500971563652620564209123207591298679936447520656765179953508699900958920731951736697380199109758346162967100439174402115545342108752647090895713916369200492778809317802889677201547015883714249828537412168458435263188458798260321334109572425876677093795686821283544704754954825102194096126504673998061997402495533666667894709986046052866974716619835443718835700558958744941967413089031668659471681951278078664722883800516617581322958053388123242183015149966329157991119706287815790024331578002971894874796802573723160279825645181266947408150600708936463542243100843767992238604579354377455559091724727096349861950455972672826921167822431222798413626634820075714739538994520699956325478618745622878314834874388307575369156731492958015323586886918417799160785012990517558584055010546464259884960650197900577313746263967180594054729821695170834115585674698588751867548878030111129901939351990101589583422249372735773132770355084763143974374734259312005362481048373634722585348135487997303572639355894179059332905669014549822550298242559410509091622000856103760797350201775073177105737431130706870852241037541496417856906821108160095705260260318359220252010224387873818338594519509077374921377363316216984316023169492914952887381554647087595680406078419842166102796454599199375230970474020044548696846072359905063943361966369406789461501431547810492803471668155121153312921686384458042836568749911951245667281665813161508298352912719287795397593553300918549451079133326657533595323548916802444355367888689933108274736739533958877418962168383822269918434102215132437165154232156633750803882348657345701474716647348628191727811590563397397478930144033760639917293409911172688475479154981947708761559795768455522493180009969586544304455895273548038369142597496031403289636457589697654164596952317351580867682846932926507057538059729933229911606595349151876257987797722325038679597526152436301804788181998920663958266106408475837061442333350296523192047968234234437470439221518079256289777781280595864996287778971410224140101402125499487972675375574381052872657184938873884233171588624913811163714506706826114616720174233513098205924389492715474835406426539639414775160641723772504698521888257317773164327025989057887014395900819512714812153238471828347206776040413236145990281496969809367701913802652005337232628804803622278103511107697378709635847448333434513087669782752968489838607964933011647324534997444041883827379515321437187969426202723291288606641566280737690201104538084294118105873970666764137567597651187541767615672001314078358251106176176619015161866691432126796895050696712528962211530887595676102651156278468703517932365591770386702198842125217143131955769984701989838242760759248544594584322215861715961651238175286905590653656216437223332341599749581344477882250977069103529257452293858718850639772498940333799278715142047007972516440351555623467205179166842159167706285703021886210099133683307588752819508364263207990695362391151929991829995834044579635653636674304052438201927580985016425616347061653487116578209642683804717103076730208994089122975073376065629523356089512832235963740139419845852795693982938359707933202143999240805334412190522077431627541787409553187102860717778302826114056132000733983775721983455579285195142869474776130097269549159682216254738816212422560722920295160603690122038150746571717694562351300093917323710367731846396239792584064084367136607886097383065792686383022936041534511704577259712458514895927441561369027374393859430236084682931675009434846502404861066287313272487143076085146170477585014697546072791258420634180228740627203361528209120942489161552137850239181455165027564478325637968204541261863304227797788528411035898767788091670348327529191738515521691070519340231152498285348897410264316314382197443269411367131691497998884529343605832651798397359248916988416621533783994067874156732574342432008717362344536973683404502156689001664362958642613568514836023044118750091687245090269167159773800680311412861591995019850337889589966361024169112547018745113408942228615869764608036229208670656152694335834214244816972874254615718840346703950781763988171608952629180306246687129497312426781112341510547371811512527581703243746779166165948407682277257865225427600611454196195926568717568199126004349952074251973252959161279985947396714815327592057764797746001014489133326351277208204746692103449551057758446000473793804985702588127972711688572492843092345945639342777690463312178897776349296838747057220527607742034709008741438770684529274736262172791124999559352751303991057753049277826576180177237302700417844866930413232410016928034757333668961366794363646494834170703176261095737393125318394003662681122636897894861013130174725072010506953812116800698042851111400357341669966756448951730157510517310692245647132970113062015807699424579119189764312213498503791071878912392484042588676942643998580761299369769734534207225446235479019834676914037003010755531844606183450196254182760074330706744552877996140344161730261141680984767144140267069063015081540237280899118514855325482115649510049599970431912265276684382087522596325543093595693458850036561784048778042992711485383714962986716496491917449931307918469290745181476202081592051194412954714025469714074289727845873289786704509062865267200428510178319440863049333243625255641621598522539313929240361588648929001963210871567028177290634162812988322537006508002811061408380109651675080285517349225384431640299795349309945015637870185100521391289946495124399777951299679348092839860381279798314768012011055778084863349762608820971214800101782961449316888198067248838101916700099710853363380036028495350395698764819080392892128351069156435973089844433366303781270167429582980638821584294539565828819385756963228438792580594733122802723239487756050315283544866352413970084421478372459722058113681584656062913573113469025940182838124846824554116328963719353476175854185126544532356631044298085234051419986907721551036112092299729673535409371718700585712325092797293736379619620150641969745908624772605195744307891108652275919447902755048595372866710102529550774386181313301251742423134730816567377097372969702490340381257512105874728063648754606459088468119920782115439096546521552778261428358189170089343886641823630186076429659175838076728081384481946083969635838196501204766738663121395638500462259001641289899455001679890998620083696185704931653631945418000652594507558560512254794286272715126952072498344878224816335812904052526661894094898847350137917676862155424428044356207655733175612288503872318832971413885578685445797250779082814742930412080730668658177363383198305696750080673683966956169964307678044448181917101984612818622762927687716568157234587661311268516773529007855975654555639692862559602326951168403276045393265098075000560600949775012250857846004649659035269724049011174134331089128563870192833063060773758187446970622583720253227358637477933009336993918549252964391115904339011229470433047117319523527179218310771004655006066250821966082787084926097275069358727305426962263533739351436618250741744840016269368928622226664782349465339313062203616845573096915961317781929363284267712792492110836476566851676216154933242899064128832934210455014980165865068169015176881343312065091666928873314345619217035942747685223206322833158815642859510704778299815512606121558663069124070521871652964247095941492089011536299475126729734740715585398084538125833502733787979136430900823229215035283188331442232426702061274191107866190076800976188011127650619072236075166547771886489780673238952296628872355208613291202476665557708016602128521325312399868805361451110230427343219356184276486824059980922760269946638318235844741662598029094802098693620558239525036579041645309127351362211150878388326098374035939177759697345710328720039377101566765415146223572745139554471223196638978402999680307602548259538247959046845340208968392715412484352470721509034532363840867548813555565577511150329289524997729726807567149600892472389664069982556047115997816373550257964879160360033004275136789686644758071310996127709400659785444221113451162638595329344503655429849215404048922623247103735581778799120809441238449878813879587822937508664143695869768555533131964953010788636174102393536114239101424753225417703567726093847073839373214335028354005996025535822943671355903893239241568747883346391358753369056901687207791667300803319925195192898662766849612152642807600082813846846617575994659638299275383962615474072552808460145925077944467510014917671645870579217289472986981819418441426464482377060312658427171841997299870807877913197880270155929627537167974392593857900282201191068893835893368429010526765984031514225036087134826370555417498246385912528249123223900244746171997736464474243536278592956620762165539138991496100614486360382364736893116647256334317323779773251318422194158972999845959895840429080736236953799078594975875579801184619813912874016168706541318248626304270178905341099246024098663668913700079879543570076525440247982257712161209236888430543120247688583401058025567539651854108789174297596251352272239843924427578775446105808280094240819974746139709874799834444382470955207375349183177325531306016709780029925481272435641338089294665329566088084684987145623892642947479667082107764092254363450725241480631703759667171305061227610804119927333670223124574971933302384011184856114188320959061402833061862218124662893240663503199024238636117359580829701547092638395903550375867074939029994685686042305602961885571947970343756829426070580308202913188418552205253801486322914223974462321056495793903891866158420985700295061679859651690416029366804081032522432168582613792812159123043640120273753641878038732826850422311847390202354272153770360632530559600823740500340926734244959026328839130320154831796907787118683853927472456090663732959067368715504292537374059356593719474757094080981703852416343468451599801734046411921339207603944459443816256281574286667258675994813279517052544356085341042310861454570487572831769491141398607781113098536194409500798553204062300373349516643097960451994747445417131528124248577056494608669627575164078407074574553322296047337521171624202646800034284380175956807600030038177198855683768020062196436571780120332545770667900529114625741798562998597635488748065612680978618426429537616782072566045900320389292924819538368413571877026558291736944569056143167187167484065685134880288603253288061903143552580786302878371459964481339960999342806817706798294145487722709770754541160042344536947619238274343447089913027719783019994936705285200486107801478925434397662483724580075326892267777587435580835365376526123858935009898863437504442859501561322330942109924679120749513466500709894848597235752028806272716195101890966363029833707001722316242897815937053009089860278525552192726937613030156334072149372322111772239294038085551553181170046833474804286422252304280640281030342870621038388755405735175829564842155109609281462340824291226863934318721751733297074803589981352739381931067702439159473905957731242412221403612335463075396528940250809334135452116387538619459491625357688756323866026618524028176655095477704426433601103378883535697559921397328358031922691171882404763607822381241936478154793850798819260605250826297578800164827078667795561526111569657762666987028554850471051724925893939202207329493344658052869093203035793064787689701340098626668027362823301042187898989310487258445540033722763874663521513756403359759631724675493107231613415347274664287644325135119703457253968033714773396790183050153229070019021727177354449322461253327622599505430388348838169520834537893266766760247866277689588582783622437321852484633809289901046992684013660338812384344484336806031308097529288894615486701670843841117085604048164792473941514791573357499147493034105321362084211294255065596470096650616899698185465224956154270202750036920081133207349713253820489582279135985842285366844335171102736101226939867590239510464994864709185998387953189670749068720942886284850301178693048738044253477590322690617656805025662320152812455439699371918430979615898603641559909523104385451404409891955255745564128520774073632210069887390457960814170289637177841412003676056437660016273203571356686668872840067539570200405956638135841901022324763751014273673896394695017330643001430770239007790419751873677456672556266940234050323540120433934522322510666102797932232858498006337937114563613743166725375266013781660627080791303829727071140620108549387309736829200377472975961453054336228227407474931681668565241093094440608683554500388376234298445720952036382016826671925131813275959684138928167387274770038038674338219541703129777047607416535407755610152269714580802271136298720953929322551483465805169962997610563694403600495190019104958974275550943373054561551872593545392494602063417953566250264371994865225313313336699114682478302905528571068418128326291909746472511220875160754817672544877728156259778285001272400862047542930619989683002307560587981016597001664499953818181362011298406314380462956118557648980437118286007944567883042186837436497285563306596686860636815737383663739758321177619095188775407250581664820246122195242528169733010953215002195007165379511745817145452030958406063387654003671704186953225488711165213138971360152677295980123939951293213639150032737821005110909962016392160471546970594864275275596446084410222912432596921180932952887421590963961202691637772282527811647691220959146506841601548872387406044834374946733278317304222974184814423539399623015986777105523071534332455871065573565182942229615596274344523441893460736869780519453328706216481568509428555582395747838779565220125873075122331974559328272724585633160885623410100183262064229547516398803196743471348956626456426867103204457080094095428960753528972479140901886972610222450594781819806192967686793521338017596335854436255005169170755224690862070507228323581947522232923011787872478003553811428792174159159551912045985466238047142604340699452121840625447237631859873285457313152035214353308553649993616867933099865719978154013558607951243842890282899370646678555818626614828656495556606482653516078832289331029675340922106645325010841354585126114688643551132745584940762276236363987106382343362150097155776774227777388219491953558633478274983744287304458220452426015380858761203457007455286134821428883997302788186582382641474512822511647316871885760753555282845085055043507551721241354599708570712475597656381475692793966471286217426836945616871100936905459401781486886640196821108964352515446495927709563195019475696802222397765738319824086059464945576170580185483723346269679595869185008418753644204650804574859616929935288583692438602895599736110630518852085716748485824692875835920843123019526245940682545346761785982244318735733919940212767575327944730841533175126180128059741468175050215999916152768638386460907824803320989549269600620567896443185095923268245426665162604845719354239361395442598221481002006476318088490143979064761567187968186091163824633009063427550767271002264589385173209875139801826024117554886445287404108368824863079487726828981587513517075749379003910432604639769840491992702626290987588172553586124988569970677007863332711240207670126114229329772024834080135240969759519441000738640340705655558600561126475341923592101276949488867258096787447639784918578729512333612883977119595301992800456086442014190128546645842933755025939539528946344515985588259218085698335199594272206922041403987608726745032709147632267545202875792706343163446625599668155876606247916267934508968966751676800439704843449848140709738601119920481936676575247087338674696278505187381112868486167989267635954353960280547802283308380488824387219559198645252949620812562591566018361810710182440409123951754661238622605307899868601957999413042260230697697853785837416253468981530832592939256432340453134549846020081447087490591795517722179062468249204674989217975096308566901950246080979672305759930929704191238729013299311942181154545105582073805389201478183845770255700784991837496921520107097863876583574354799733658033596544721438246982154634574242952244338925916081966798065425907411731787329208803251870445033803273890628104634338982613813968745988690109539003206450836817454551542540007301992870550611619673826193171557262079457254873644869110105883106557681314314020539390337546582241120376394848644997736626588951083425967249989740176812174049263419071179874675064511957798324091499052602776981773430400537715033183591250810953031514711492648734396157224246646760178590175200303114767709217358669780456210706816915030782592335094720828255053700593432628060006357024491429340019669249692322533870093646378451863002842222110944787366268870361559328175040687120414245340369660461150325761634841626515728585768533376426198375532324687636102906176685539790614126633019648583164923762880712831759405719483542581920533772861304898320809308592732635599527413376141750451861455003276970724736004316964563270620049286912608644926734465442178781664278131597530723709408808497563715780612980461937370569961149602094948104631519822749997901896646206709908779874929281496690804055098895793858465611941671638651241277710933486488359756990002926716148827598453497046388730505253800736501215426702370075841605561760141839703361354055263608587030660295944538922417602000860147526667771633590873584197213116236883045395019737101155992618295135318775017212300747736842891621259091151021348586282704872394505536007488683126893574072810793747095342867005330793357099443892332979964047803761941906932203038325388184855231347245902053037902763098621938934579886323362329601159350311988143486980784045530430888707762018504268843874082815106209774943584932523250917092111455344583210189614527164840831613103433934112193414103655800381822287761222320324835002557954141046583222903254729756348912769253019239083413960172536190750399196784743567227919090992841271692629124764070264817359172781118336135792386539786444610153145798904171082944114996066655280046622428607454218470982926080747575337591283335424922609172818747187177354241326929573445140450692101272808335189605294000771334201832589384965095699331651133594256600034613824330769077604963487900896291619380210444903278532941327562293807751950651971349370554673507224452475195017323567725297197572372640034392925830338131562874808677788893977917341940866367866656718222576789989527059864686920675963635587740124392580275386363773544264487414519906409523539814445857718762593064624164211142501483270226725986753031252417240055629294369466203773250759916077345262869086781986199455270965683237978561476198693418973122608281438756910230503737756273801466650590426314705514086788126007340585746709909669942492510482800922653934079023998825260206153233386195308643713959220202034844383176054869950315012566459490921688831582664343864964163183315525090077034265997242676929302728223206023227723130368801898593858109594989459396447951047885189749622099932506719654451872849851216477796680405876760128830197644998632518159376808838012425706343510462288651477495377862591122337805041829644974977439279366822451280987592322499407709216448617197575040992952125392876756028251536004269462814764438737635942562299097574838852715108933342206402107515375353517822382344205751954483858315066013356804001324278947773946997735334240320318836723603499671025202933478060635876881666575790402458871159856729532462138172467299880932305732864735551850494376378480783849494205991776824245133194627174505854706310028399550251188732597177554856937399753945939120888732455126190917863129294111136849327073012221806472147173540507662929961881148930840576094711650324473336336902495311035440774701463914903768883163998229717597996912215847187156308850382877790391321647430415447664327841673980195646388277618955028022410731995492054547364504122998858203926853099435044733211603686968047975532704494793195272910483527180393437494100907211375305769530751545439915320276014008379643579355425809461062552578646267441797008498494603007890946542968720159095717379739248477380009829087055363104234192660791906354512327571970965742642666345935682711248359646736365804335467138638520737287474089526889680574811807897797865438058111129465557442578843036777732977697102972862300495043183146168479715797782931211437370181626721332484403266684714142856738391352305126958189591088135007911386779121703880201608754131965419446600096499010162011016226629418640551622599222573869341479775191999698134907862038460127941303110067136889735953412574995781142760028640401497271936971751413253273855708673920072520210855250461209957454681575561264168204192021257265008309220823449918061331850471811601313576947155834975298709919038858527370900450247119708001680175496094655491794834282801441503691418645751359112480619190224287658897754576226405050937088341662319393774816543604153040095995133001311611353532748373152307886368571334030127696293081845720147211271747250117322629926512907591330908470842075604543249833214278259723799854916486019660883696763453894596256529821165831843184383108800511482946234180034257487468276641365210181241194545234699667518136598118201831379764018003951182892132394368293256098705298985402990255384415862701646420148266989374383941083222238198182195618293284866532465297186076311485016999571029649329031255378031705038964956649383278208748795337359189412680021769141354369135188507254272717001274576816323710260988445198825867253604689535804354517801892978677102104152014278731824492417488053283818061253998664332690384315500200266510823651252480581520150224021479368611810048631772376728832108887820792156301235711973579662524153503821943554365565947547608436871538185970028615638540473579707733665786345325001233898190402256560097212653543699775674010312815488569030246090685677743268474052963076240332877480243951106197524346683420034816636787284520219775047583022947188175131949947835325762658924028799540263812574517820413736384195716858115948896599325670267591630840128584987065251932342475017855803960705191232871602052792726677863161369466426894508049288629474533520098956555349376623991270297468408745346077757809412215516970129259022622202270640991088543281461903514154459864341722539363962326350916381255258120476970103864225274202552571697733338170189290291555072366576194379172345455642300530863023013008168169838666578187539152857328228745896250026734599582456775295278790911305957349907380592498956186729621531649784903792294366883234032273370182384674858068697228345388399298734336462160375818967049620372295553276373267101098261715872169970330457959236930061994723719168343685558904521218012258452752970697550074537258467647080294903964769900282821941351960433214286454701809564177030811791777045979046293111724968472310688300239071303132557639418533791179840902902846175497589720352580691109150938824041407178888744213665451858113060736221358084018194744678172620087345536160872217447967217020031772460283794762654918621962723684744358970479571215323293316505997167907990821015888177113312259153833103452437002140244789697168184352339275480920173483437977810791647289363068267742586916852445313596075204401552838047003372257366196669719367960797287847578982008668856635978095125009448841406371159943750083023608502844313691467459284080783950148495075262255931317505784562096904474692164593179231009518800558751667445632693710850115122975354198150615506449056645672092878379782090216057686239376797870318232579541648753919420962956139321335718218301228315916992035754118898299420701694473454397680418548813209161257010723363382798943275310444128185449377806838121947222634256877583408068911054935780940352292154705344937633317393261844933207469861211992618408027865430033228149426253273602415265761262925594673836740630322831243924758813564395591781392492679767498646088370806876102779742194289024609911437085890395029920710918445969891842611185990241613847215989696548239965806016610787880960094980328787050923591593467860467277178203906731994433555133457777642058354521628725881548009068309325305223090466936110337189973066241089960420661924893713300087310050160969354275881543101893944957703711747772691336843812803173778317599987171366817495850265293599065972401028650090451640786849132367020051812563184170039931227320702074378997764340797236543747812630888957347829152498535413745225654649517611535026673591915159447662494877366181742798256748571247046495106623192264893628325499168754954892851354801910539174234343880718980104598836678606658342153504410857587046437702114731076457547627707821788799032547238384580747137763607074427948538415270968926860428210905619819966496631051683022352751221267707883368393127894934920015384914236698072705858580819114705483304361241907373432612660956735950368848355191166250055195871028542796244404328602107231185626126456593006074264171211240853499606359528781253954744995778330132553748217042540929461371561946475056179716605002084187528447194221262073464483646208913643750838217289083183822103887541616206858319928434331141150373612361426028056964761395251778172842186108923962583660905618617523202005345380027090894666350813829092072904090397220230480287111986349684174399493206455110043704038633257931269194759271358799435933321420645690430638153085786194835480997188374801914923019624864780955207159133914998935511178177455175604611289808415241798144832696270710524224351407712285208168366718784602893832655026801808410564407894409895646056730127268617678169607513458885332642381784301864562050829964024398258385965877384730481705291925694616333971638651525016236894254097167808731725378416595682534569034349659774079619683912980453382758438945004899953271697549449181073101785512829900016674647891075940265557526643682388309817351145301550540887192255884175993031832205907897447289916715184424380916960954838262605806071503867635447636292831773212471527617152887945734868209049233941169221068998074847026478403200151027620069746997002522755170737761117079566733506459888473287597531108236295886130506291697190195026476682080967021332022158109572736154085764034971350489735043869666580844970165881435335320526288579567408951139471489437554633345489549326676528498502898257431559314968451824228636838719235647856171769205434876155908646415197272831876625266498846875832874080771162900933943225954274070522760396891073267231875575197170750027263275760583526515399192947019444301056590350668613154279428084912901685783277581090533828850422717607946890760144067491687599139241838573677396027352403407139037083137882564472573644864274134229995756082027446010509221348696858133066122128101085023405284219778997933653531260078632360289647904183665502597357307883171927906900504364339143335947607580646011023425343643511910991807599155822426129907682296987755768182252917389441838655920556694565306186273843120879451995940456201979334163630615424652734922838616144260280529850360688954591666894751413049087059002256942009058280763205069605299405558059070248308617688447882604609786135842356321657244293081160699221788139731970622683682220592278486806361820345495761169924844300212587823044272750496204896044435706657388050178751892908470697013825879531016081524367204051532710105873429334646214937600091943697831718024131959274815622637316150372069031678430056430195548259459711523796685841407516116310560297460010638500230302969481763409468078824134740489833555951402485093667037889634142746986022160159214108936143587625627332968981389784245376773115027859791426542892782775177333335955194367767612077924264484513188429078655486586845664320199019641615298197971694192828822842436923857142047709246731785036555132600245345309378218240277080435435126665617730451298009703328242128992464310369738300249913318277373675068755156491884437241717968047724748765798332122840085044227793049346095752617966030921872271974077983309019933127723868136149362668424904586614200972599905019751844554016140476858243630192270782325191783068240481111291255253977108523920701046411201160305355917839966943678219347662144926634034803746212871815635504810467014898108077667768150340605932716656248507938055887414507421464254992516275841259343327156069594051912894056283488265260294017427505025374650958433260862616523109025667623825098674687017924221835013747867513882093325483851994601316447616418576969852622682088052694562833411932334594967387142602206257012504140509615229376401364931054708862568482954254719561436221735708261717177393452435113217664557791363054617898398806268550936311672536614917308661681634904623443444610367193352140496949616545742961692359453742709505065469811098200844533902996264429414909682700838482970210482067502512383989865280105708175100877466708224253758603489555594825415182350872526583962092211067912217462215359168995488168141310567320252250748146124987278521150267846019292986865025133126381525780251700293447771399580738493943818066613697470113561820614835247867616487525216146109819171738194209738677389444851054397206744210341721989043797268861053181365507630931332708148176363007333654789487752179409000067918897481962864895020325875751006242903270672338725006578535308140202324583528302114350097623171851812371481606051545517664786082330540940964378275320027338527554976083577405744138617717940872087979688453201914773639081962087917712582002129925031189511653876982656349098009101618063270188823467946165352801138500951775660211617960932048519058479411264137016016961596738598898732007075926604794858469835826266599166511985490925569368671102215724312398075831920609687523750467481153653397066181678036385154753816941831733067017442824805866297608619366943392082997144212978448166295974905261554498367350686627469331755797832464758304986668213814978106900867038461852938809595769420811101378436492566182178736849216853051612778701931664762773866299209231611512629645847250115068847279525454165010897130254969657551191284675164602388610471582323810812599163324468839176744430636477465862522098108540828689582016783360461879322175682867505537149840523553459916875324897066759701401454587510195008986871465716728821428930254617193024629196275319417618079642407808843284832814935483372184715430134933104406593965056422412272116565751135526498359693788600603854031556132113130528229467301116029460742500943760300018833070291191988163245332165465122924151063787210679283586090644706197088517251222971287956215472566009093740076583290397023114619843095830502903405976907470243573709118366141021224370410351704216725728735142725131680099190660781361580438779192240629933195232702517039249671378493930671912103178079452439670678286838568500566450397687908850979252099748180076376862536047989881951008395589839362418614386161085134683503604019511303333869778390455038282250983423259855624818891589964904698191587472844259616776523627531293199794427157512713359182017832012285394225766018218050965290442255537357724550088098216223129824264473214193495329128626404448174437724181222009113163686100970182210713082422591954630381844153007320900891261041681478473767133650824834641352907400231194427076786260129925218722994259084340940716516369706094687173599150438895492464496264891167728953491156474822287812894818095067199043587437779185544588770064881744654466015020053318835367824664000717328146362098090098110736950742988337541344484905286599502197760172377050857368872132133619340368520925462797774453958856684179392068904277033970843580813984109471971064118375247494095115318666828185011516913275364743124874388021013112919412617322253747842275733874686898233241275038558209622048683148847736414136250950985814238969602240469490623437563530001371319551258464340306304781486533233126953240284910929893402690151964027696806217533625592231795835362129871511510234693952504413765533839634453108179197194678929019555487325727819198846738717855933271034624157383423317468019439670951353323496572112869776207181522263309566692342229543890537754285197636112175493924810682732127371078047493116912352959423349913682778833129156578271046732574501394691636929665211848590615670025268308756650248096433541756781154619590061309792018177273424379004343003884304917682682344042189942995629803942867781288954638829037290218307213669415314580880008903230386592396428226284495874216103487164016683698283751350648359910205010008752961306708405176091317282514634648851359596532330423728303452086852775462592504781265473800306373327648709755464965121976284890846038455199707507194290028918152931230384107156948187983614792536745309352926712423091433455886850964726901602662171790505777519880566761250080605627382994137483056196904794748613280554975403186537345564785479214073012475010721572638104386193148557322449207238384552321906872633375507739988438257995957463070817846170991933629985653432283423472909719774436090198984956081953332004969230454608006304201018535314013194342989624877675968616005680710810058705461567982430274020761175796856679379520938002642719758638493408578322178615136881012687724047336010100916590807693677917102914003175899614143076242714922319246344061665142783180035475469394595448285390597059316097573961413516424941958826858233285079163435375778177751253817565599661466197215197882194190942295001239851299918059673642818426153863874085888586709798579837392644487124064322906457042414163374467673972039798291158493278530478854951069188048771770512943884125917113194299321215775242778157377813222987117691581576247144099528479675855428158275808667078455228156895893260759275579811305173694813305238777384435496598329474974570389517558374798177948452318619292308558047630516662140052777410853877512895746014319217381416748254551674925905655740535444961529207011942922929273756725125138536686444946347208946754946024632189017983481033540928884577081174331929383528142029399347781063304223218027911178781933498921283201133277929548034985965228749362852796255601057338723252699490503227843620755618622841489402844495260442224976975231566452757397550352815995601057437224919809279209328643372201327962611338451853771004634005921409642310305972084900237754518157530139549851968761944912514408191070280254481874112611968001477667717565719024271291320664029206601558718052981019931752262996197344989787017311122963591519225327378378040074669407164352468842872325474239564683013349275625505245103912850144506392958235163172616826814864175560287010872519888930699008358216190274611616863591044598179551084687013486472262463176910056255725070615450089309592143932794103225127551709408937960584957502088018715758752102683367263500544643920291036319608127710216612669285116679323481264208509708828152316464026937790568519130354857784060379578666703508759998977088839285378347471051259118588167538362527817014170422189887410645665104044097314799778273099901722614960727024026315122751293640355061327794232732424414651318465483446795496048101661153901098104625178718800713848764812592094395878796907952603163027721458351282227528833486370577275311139204016984966897488825048520618415182450409951553309498024442770317885220941725953412085020056747953820253720438858483269941439521519211030269230113143794345569244369584013228966225641528192552354998747512304897399504005689192871449784998426985677326806988501007702426139770675420600360371183316237525160038749479850439082340051748049008833139500023712120113466677686615859858181602320776393124957743190452806896391404631265490546981476537495749951061489437120641182302639342934534728805862260237176186042399567255880838185578195386629696115790262005712683713019339023426779306024200633686920812941719106287013261030785843769689903134297879889522940922099386279821531197630913591820772222432090924729589390955743101050305395582080642914565619676170132576916534207493302230835845425110720856677772287203250166333531919686848156999485768057541171485782280421279122062998110024966463869127702517649074442821054059938190142786385259561311469372681692937345546532823729967457458709273274229971742962733073798734590641328805157237260789117886581413110232072664300621776059243371349810025814920645411103967646801482123153023458761138125576392564064834693864557453532410294515407829579353326561976200085669971616154728407344817693128812439470689650656919080179762692309290154463575666535634530397152306584017516586015498461126990951192898811267620754645727698178840421109465611813795460701395723680819411667977216544055513551837555711330637052419790917383644424855626610461465111058532329512099792383260527886869121718704954431655381488345770561148467090679626013480700481451286374391208459772072398195030604552322224110239252111145432585481009932544948766756245248972449078983255430928912322521056918943112673820505976735527144145432741816676525276056514799002018885368229783397726084695422219999392641117278817674782126835212955540167776123327501360096644088363389255719370718419757797388219708853740468527034579215291838464252310140734265773135703327078827017802228680083354292308065126214588374745935893906191590597015674261522770315260778992058534397382097319366140131095230747933059961591637725495668878788730116326557945013975695837464384793821169991017669953426259873177795554758842279960475472427054050217933192584831514159566094885584742987220822844803324004490929143092442284001370298995956304487616301347873657196066288856549965858954887354972150930431383378814749011300126258151654879755753656230332931831828210521677627863525486646298210123421141644484737922972601106452769616895601159539504540711976670524657751568466604120079757139689329292105578631355100709550413579589822041081093317627392728058772443169786064088813137477209794030770484940827514195987910981245635292156425781155749103632775600057627074137142286983672038559990710812054813227023814723718969685763875592866583217240312527642983785489390551549806511208987508638107041268341329699412829595827717039708120861463508380069386132969344063733111599927460147707446050714080233802201037936513881153191901294542004781069215990652709578155119683853126498614260449299590662382229311913689705947069206072576558574733985310390237149657326017452883575406794633699947553060103665874590392758090621695274235493481184539137845165634795990855174391924943813213821954240545922203329494726028471254516550813219513402759248875722737942553183351529491442333406303867087575883544567196130132294551716653865791021448766958850150035800090235441253440505003533452047921883264465544483936520610070175751859881433177881839298332366929393319705644748901744541445889122333573305866480325489499614279216160821099125745028192150445855418572375992632772645193612647969846076551934015590787667062029240956366559877434899048103951273067864131945310001405889598713451786672791511853933066595820249453191436276844638760462542170660341642167443896816828483528772618930787599129059463346893641063286638797433664676626351550752703683475362127019691200386258735253601498603344951311316371714154828501252788076033940106849883117039259047811031882291989958012319221750031374184107271382442752967390033224717810858209640615652791770104110242478698545825116483247197101212179127172891619688748921640746589960955207266759414886994778327672507539657922971032141932623476190763134978136690815727703741775476793589939902732177934113088540662167449199991906402443046853707228841838494916860474640087527329586898047074637321080329723246942657372938101457890032370772235532761444899711647147915724554124092443026579598193464538139368474883460511761760048148074350407709223162313474445834010675728283018946573117434501959138755139322886440432342052387447049248589442130612631605838117748125418134798259930455517262275198851221680688236746584865387655397319540800666423888315430423870570904656492627840746291068829388298453756794551721534268740179302326139185986427983687474337453129936611866404287349160253578538805944966049995684554871760927593398491158871157089452596157521884457419644485721407699489515399662455588353802228172468564790343421924199109795356121837268345919954838541220774453187628829673341010030258669379699851938304868457473856148220229146251245622598714999926224856846316909462692732418412605406605120604278969776593446786550153803225102124714022847534450007961794150324289069103644522316513722981348170387583736362326794206719974576275142713307543040889960843890112046732072492674874657763387041924130551715376499253802018477860961250489246311020925165645552181290831947221724526815291013997063078301874245728700720269380433284748798110863380236398354956426332987150450448653509973980201186676457210863304733909464918711157958968581992705375497563846240513721957363632529560697888900092113309947648988970391054918951508701869193377979253242555083950787708878723146287372639811727089833894993339871718186564477208020651662599400218918605769004769689665926810067682279652031246427692776410208248701691269535531459098090147600762137115446225171619260299888294865670066362977434740510839367363716543963271410030036266560367376262697116200220956422745474184968613181135703901641516374730937514272564058721255774887965017086093204934510518704179748223404267008760755634226526402176082760130624896805446754984757248724994580751835739505271425492282300280821279372900150572359982486484839375137834906911105611863224255906183852817299528168420607277186696480640443790859581430705754707439980878115255421891024270513922816033360253165038649934071557650158122969080705448016574106338524414907506018591287988903558587394221341214948543162594653976767418309942240471697748619765023708856946451430092470570197611578129257040461997812031700519063445786663349508998939290237460897554299976825711404636531743386520329296086968988214517597523104102030458622865390131789867215133438929675769943015182572953866223761240166876191188853547401751760983160580333770024226982106737106796332767493424150895561042549734463631608776477735781552223511922924080661363248633987435893549882356501045889595104861141593322450868704150430126454879666536832800891630569234446627991044875404728040344137700675600647904722788445592937789543740423219209833928458696073739158426299925805562752650529752613427218249445256736784820848070972798852907761954207510795639725271739114315106829423486077028018541294118711118263748256408673463725552974886759471726913521379783865997149670169361572811062561901712544945695358303710797716460994126315624986352404359120574848438824837135598128138149433614415848668161318940024501140105215846877391467506110852723736524883193009394851491641922946258647286332457181432849291141643319099960172748437496963137646372308320937788895124936474571137142685337909015876079683659428485143209122834016922250657799009453343792750984510963298897455108648227950305470491533883140327182487691784924831500740790192620921333784789531019829469866824952395402476100335168043130564839291353749661355479905360026083245773868238454467409686806268025670163889233823387142855772516393352290632000889240262730187786029117627980305015516928712283670531926172527357269991718539875871654693218846806568674503640713053252569904957229015964717138821741354958910333609631694684075238341138130716560298499046276405317415048351152397512354925593328266141652426346188347124301124618457951805352228330474483933591308712095100178557088155030813435071783685709579483709867320203938776852696964724515055115585820941632731269886905034692254489277551034376058537731387735846007987434720842965147926667722446576274647019852002062497232559176579784821741381438752868245762992343127969161358725097385358590710942564611582426725207135202681545542190105522041214284429091740808729730532710296766644916119742821571640217702602824788265076894556507316503563683182703384635548855935551551666459423536480373883067312620244932655915716964427954438295597992124165178494868617493595712742506047017823819580798893347422063730335076746098269290883676622064641222425828247343375956638873777719525622407765240508313939293306448814578105117220987738077886263575447253824697844328221886680573725905328747240414800292839970444832111370739723358741531143903891768612700890788885642210689954930283630629768383110693782018702549799416934510119662746071175048385395557579543811757568217830054935751362198929823937327983416518989282647196057463126819694051656342258814400752637888433023826414979076303145757552354150373752858794565277212459625292622494658728136187562851379666102333047346811756603311615089445351578143309152630671894728972019377486034033049771633213282237493502320826537429123069122293885255359926644311031398082669755573178886117802456193954647753618475068029964838610408285217526571215316607349030478699913234926744530852639388516575809354316536105789146233390438405386165556062403434073893594157451552311316304309260557610603407003496366116852509023500998336041741165681319315167742059746576007293849547885587375527373024039324096126258456765629249537323795175536427745990309092991604892623035535603356545659062150002188181034542527706861533251743154615325935738162223095174789821124027560184359903040481587677819287508157216296920751210162135050084422655349289645574374773481656031656839994379517457485078644739474673483028739657544740790376623272395199675068164188084282871506468801611568717134739441559565976754953403104425493602929330804929702653206077271403349911824279380636694182102495274357944707829002308576855076438140167511757755666817322354246492858005587983142003656928496919000066638840234074569856797112273116576962494995810340879780440584473243637884375765034824560060787057143365009921776928426389317775042723599591526220561791889913509603322215034089076806189734539901189650223222047407397509939803625703606287388296490851417945473173641036708420834134424638086609898929535767099836645168971214386303897541848667468117518707129889712860098842077680100433606691917074287047146692887383994187434335464211273280811096948427777279564996437434937352900387683788549522744683527610821944693527850336778086618462209665871717862693452338356963490471138565761475741937540830788129943294624152429672044483010833857623223827184343515514871899530929596788269991655348168122180037578598926049892706116674361267551949660118397897754933842520968788918238385515063754019739270148971224691607539054339824750168058069202494462386158701639146247102641559667258464846984280824177934022454625968417333640894005757756419477527710479269203750071527461936915503936694941402332670473025219945205316031549304347788611500599318742734897168245003441227962789546663902360411632117125974631004209211799997284776339247464163841350088277347242263081333929919512602946751390912865449307365547038579863111712194257888536650734984096342818374527635059259145960606622666698993858711956246006794841173979801141906623802067232145927643542890282064739858638386505598813933424741686387782618141411753020597317968023265794634669865805771451335315105049864358265918092856938610603269216422573710874949393829735950229082875163028879348620156797990525625396141818624246599395033618703936259255020062059290104029967828710844197891913812508278754061941521750972944277005303017672301402067001765118599488847734416228364268238033908001642780245266902828157933440299074783138521327368159276626646686234544078409795286161486331502286511690804512939506715097948052375163748475592979542538792113847800318900934634226557730946910941350566054603085110455963141713053115377475830353525909317425646077266575034511037787437224905453205163437096124197993704019077095762421372374920227108439531390836660163292649876540261525214982197674565609815487044689379464549240172333671233460996414803060355124742340005166361025740523949854617258366673017078528158918158360108538512732797920754291406252572594522788867793941125599021720648523711171692391255368511067350361592958757942755753526321079216328988261487915598990113972402334232523837188733027418715370237116773110155212128276524189057501050638632309270160113966180112723257145936664441187610323669281854490070917308764739630211001882866402649962107608870508681986405134701067008830457955522410529984178973445143580055069631170829138524876701934419069705045018453643691060053433402828156334510111456877156041317274695214127009534535470926745643813469085710156257300453834654759728962503466817750213097158702910110542456912348498528541139474941247655782502849161677450429996333043946492525624020489601868420754974640876650769707471372277476620476824429586675838128521319078651724504668306957690777362126936202642640619391213382446269468836435202525325261331682547288225523378746769818902560627353362876176137078997024526005434693068041919148735608257199313529777346225934515885714505620760996727643299940547846852533915878701018235249930835122291373728420421649636968793968099196512371216840710951778947145315317837221770074326068996785101284853750226606448846321579596766620398339809356667429355222420922039186900308862735294842284082750084101222276914432798095276109166242096074277365238989893162456322365634499456746278245611628536948423572763517962422495444181967722707555118149400971834606867309228010446778246485393200100062541800015925808347833809131737989372028518129080835228960653264572283874759380339164320859398681726758820212433484003482631249080685679206002074711200677233101734433568277970346263570259731568944906677463277059630365662849913922773976904021934125262072721415925532234913754442616677621434661258449899189334021935405812249209783934188921614074826105055770703276550373060478197535622779626950867651497911998063067144365767921356915031878048242778295363913667212485320303816298624136152003045583865903069415209220092515358680878601267246475898251541764983753804204141100304357340042295604682936109573193696553164281647217137737419075073070315655238922152970726609746650286791755879974454817653752642268119134171022124799275186778611236935559142367812515076713575671640651987718995847199584215580277916139986501197990519871849202149309170638106767341991432422718568769859682898907081984033648872164786277705122645463975694990976895100288026951584883077650943697270211458349712490247657365163874257445274031660144655412864073966057989567724066923990617486364042379399935212484179858305514738339392244667336970080786816814571824202121831559959891035654775646895011169120422363180707428853848507928971145434079586557326632956826575042035181198000950099057490553362435070597876718105602512620907686002397489042450280543003871490355906794722542565248267431679254674317439316841784597285498734089673570002163169886899912778656610081633115604448718561447434980485559366059490468670100793166174166948296943958252003088920049911023101175981144176968255825699831695819030608700416618223075962992085528322242334476200835227156487112501601531345652842204915662029111898593085669980257432953436786199733083191147488131504171829481409524017983479706619192209186716417452293385393275761785201376870594553756345266698209136610881588682624586594980862680181310794258970310612191275969483768934595229912121345723928972466736700834490951268518244557112733088942351831996709840730573997458304602005332373464844997952194792159404187130623211781135844999141581644215388054441951473727620382354398294080638329781619932548633912759263295861926257291546461786538939017192716818419165538710840183828368402022948151209324047288061080463461661592083775574849823317994468931089809962311482975966076354060729034599672348729481103673655724146226339665963667942798739607262806316070390090130377199741581854546538972125368806146097657723739888435565347374907731821275631961378819525215199436751106238474390012359655176133794849302935870407511763762823521714786230304425343283199965005982675970541945878343125772023918498188902941135873855799636547798155604967059383689209481408139284234740095072224578004353292634023944995504406349720544802449545576619237280317428753872408032683415498423653919607906398151607812591282668145712162107694048881816744709804712119139779411868928692189835736008573823573846853148996977787841554652822566252345552209841953352129649069220435894718459111407175729527028252932919912319020601985197221720040737348190061620797890765169686198511428531688394760135181201458728570091022294923854746365048014740515618471922205991636100921410467333975441129583529702666161835586053314995914559796885494443522329316717811953547445608647407500483234505686788979460801820414842059006965714464132226488982008452488929657015707968824223819648253485183624637511186075346340612239444897482106872692926362846413013431963950699740481337440216083278262374533196785973157240502518516197308459009676870713270014660259610135738070069445285567867344050231776347394863692078095377797103638306481710440503172659773444275640973649708796329677624803798753490754710211562519739263887726188790699697271562188721007146563697566930069371645066842513580100448317201163593238348110239649515493861676144736236486212637248070252424936769560076671448614394020706139318826042469014085401392715342535576866568477252803003416164660484883384374767529621168075853805819503111123826462016819849339003490193490717077106112797317591736006159716577305219585673297667768377101819396289204928443420419896521290486440055377834066131761782569999483302790205076261243069620538267973594603173894958494170758900961422576474639663307562891842329955970649172661532709533831623407006136645578023009459568178948605340571297592748762003788741020021623749207504505815208672549421207365274122391917030119349987950934110856816233272594531203962390648687157880619217834616217691633649179995998772820163910516648205816631217997079585144410771022862368365771509498396403441328627262359701150293550806838305668718812174054308097329745946439971421701739019866926815795723016568559415508160780643261156144454569607313718286598044086808798876369560691919301106542699204917977181201234883355571496782143855115488427498623639442971904757932758881692896435303004145201571796976911646287477455788340753690287490947434180085369328387490849045633541921061280072636842987108776421287585511517601519475019913981013730106949312042407211952399726356269988996550393492710497987184055416449837048602773819953402780450680402574300617841019629011937376099035919361818906343692055516975199175049612833464792712871664617889492170442815417292265675240162392113618059402506098432314458514130842021672270572407347581887529521929124439234638088473501125072268159634689395781732464806931547116193600539144318010588219455613400045944338407514624581661386493815890788386741657529769930393255105167843490805194348525145962542418914213518842440646711828476952572167327505707721903381374688894063297046906777157052281124856944794455845953647550188045285705406616251117202097386853582774494567571267346702923385093302220423617396748647607423349751994475429414263340613877890107884259393548015247041824591537659032953588323535316935785630031623238687419383717567701246646885441511122302606223305178998076487511271609449836920341980431984188990248707095501960086381314432287039396015183822506900792819245468027336924319523184669531624629986806613704986000456352142065671936399744478680715079757817214518289606722040946544349464908210330056730050483733025039358957617203339389416448860931841917558179557726845917852621172948876463377994377430358903361643230844535121039665970575719041881802933747329251439191744202992275508553379308090335210286298362463152246106852924913030871660849333052165433613230338770855482015113736701792768777573338285175927494734663514813953608814595591753105877414723929571963549129600887715840686725066992510088899174566906161363512736695019896451846065738192509904516106086519227806389692502451274995478642855114677618283072265861652729227568329152936673626424702389440759900943330991312226905715360752243678099371295757188445236319720162193149996721395782845910185145721297227495748366488954691256798978973008105598650059298360620943451897428353062676453449243549495145152381330921169995977899979662642969940298079665537382385743809570248190627945543396883126982875463585700139802306362001924428867148699204516235650895648631155405445454254403198088993933033761429750458006213299688407406706309636462656202705350355758137396472716430923366598559897863391762335496115204690412545951455914656154682062335242028315598898366474646117063154045367983600398205977561035234045761617304946060782558802129509052181281350985589324756567490345634708259225138433523352943043748766255844809695949977326823171791674243386299494860201350000552877929449061254839602109468827664738787884259628709193300522149667575699833604247274270933900726504831133289021761286775333261452624389541118351266029976514186065725281120470921446339196653319140068931094987665049715111321228832891299271051764145497074452764669773883924027659302197340536360671331278206009942003988662833063443566262167551255498904544372038358897080620179822799449363854311231728443818888713525413426957986185117638586542416200339110817639018925281658026301983100968807049722032912345021162814298414480026843754244152612796290677384134090817501556153402056159239810203856576654168537371747120426854428740180174406805961292105335099742193351334536729037755234399059953804551455412019267566756095333622830943482014399902643858501842178876962601653915838470744296563657990554092478863785839745862340207298660854054192702521021124348266550597150116676368266653155993182099312814071324123457516690417207146712624899385010142080982576004107824172661084403419485751833801719526119982727775113766726466371333939405720680967538642039524969797886099012990222684237675785009972765351605342185552337886328997047833029016361761986625439708688467017226347789050550354398410416274112487649215021692483253329697786863965048814472089337615761823285584039877970374976194507014475606001598020217173254759029350679697703569340668644749222759440227134250262285315523689472409988691127356512092351438326131957863024689703094301360916815959457543738205959395919687265683222911137268904746223690669683515852891652359825991779578024861897272999096564088669635948748444657061622431443701773184803078564793438299174524195490275583193938550147839055392607892561634242466315285972594794164205599421381669709442470434465196781544120183469361663378481710959447383876546672942966345708327016800346854499917520459894352808245122136973951320295706419891584724591526245633071201172948576109444952113247510439409617463869372762999607490803563678631408493232184470027663849670062000110824212049461117221672522648358570887910093129926544069692061905923251558087835086893794401280882632547675751754648732822399313198028597130757427519123598012621367674072065092129297768419767518996682364770184205684412190227010659502720718324865854704809342025028163503204945931473457898433394869372787627637559795260304845485322429175969143773459594262251128843066015497373122389974220653925044686040162292396252982406817463498625437956850237996513661532481473084267777479484453456696900888959386048946665604290485885512956475420727428407864647091640349529368784461128792437785572519538334891235070442746377966505865767840678640530908303285424375212831279474860415393824698517836027152421173323397065599422323280930417793598175792725858389446144586265895802670745404021332610359679331666077790112240227522153590606774091317082659063857860956074708280876605037826232543491472818192481725118077655973483192081648349853135117718123101544006237314630981253661250983846813325267076904988920942420162327168280896113447060746239248233238435835911878705789859644238843190575723609298401514315664810793772137876704918665895331222615480496455978840093831016834629093243617326552166506950964743651888187481870339694892836695718099595178433094787212406165848508564839424391096999868235311200821781214121414311844165671768409143188992481573628877227985378537289821246791341490668207158089206708626845221532809858792556063914982569658637542741709081387579649150342035367443099547437063832733275655785643898248856675567050381360277302179690802753536310835213859561292934854844370224779729425885178172582147807432731376836097445210966768755122251666945987136167834735025568634003735402616677960035712325348744190186107005214285971852903365831020063363534555632046902571872867157402021009120525214736376272479403486937466661585612082861638370548121465688813699210187100409561656644725183090460401685806705397380442103523303848954709707603544829687726298157465535919792114722109087352081943666810334066144796567598061071311671843467981564823090121589409887598605487062498245754021698328789355627496723073123538867034560648183611215640057501082243114542937771240473244620344675786632469598668788344301546928090942141720323432182600519046484134072588520906294535230028097232360181515588401242507369547990405839849302297718051998860856351173803559670417778596496314870078882949169063228869234439577463277571805721745562374837826452521512116124587920291047829635382433786388791971253358411729878272209226041905010597135118296942166913437723563910271348411596533064255869686381263504438774034053719922213443599767190522139305415869258053695632364562154902551616461691433515725448594894370006573486400541640962162018381577981550131849694117501440433230651413576327177305440173091230931051859731021277018522836959343957804414990085394611402854981239013203903191646474696945077781652160714858065760478758529698251972746300861304802098958897319208286490355294727645942901267341016827037320237519998762517599363273263445487565531215100909458058677861522818186329241117902364668966331123221701967705699173776171953854434940956014576062791875958003996833449023273123872925857754023126937675441152478236127354754952946696133177260475742862305424857907303833284632955590026565045945394425196975914182353253477416871800976171797514084970350053216419190494404801079068649730320919928890309746909683204099068234132989195908223354318388404937574846813288201503719996170130914426265018380551594068356888187393994233783295475836309734048651248856179534245285735283516649004610041740582574639032528978729064705050083134009014889452890437539714744351867870382692057639164544763344961352172039777791920512353999358908317651514617170853834252660692163569910951554720698642480122605024891695742034705480279931167120702380040701431023442582855605591918195973354996402341366183370824485241898978818632476296791450844210758344242959094980560002131548841256172926727104395876744964184976785443531404117538335005018325853130841050583183251347282473222662612205038276144340546594239166269034609377830979556856398175459394974832537051827743615129477385136071757511694221006363646243998938043648794677908786829111854369680025528748550792835084983711214623809920548503173763386423471036679385884675064021400546647962958057477753550786306078062912080746249846373244754477686656425039365658378952148948208131816313712457530515632713955786722118473055807738983451188163492555767710514803293640786196810872702559689703012961337863193548110393127635200326983680419274207588531612346786708166143133025039901578511368363974769126540356085725203506039115434410448573324379581400217440662910960670013819301259327116017040395613188681439779116643409680236577323221225525782735494092657438589548856743143307616461131549632983046209235749654067784288471148419624263393610500037970392705420408320529880270339321916580026640308770404296988527396965119904822558162305241448261016143408041330541254947336334844011406732602176164479755910680420245802648755384654589523409833557934081844556860025045233076555359235436935368826946283233972783865336568531644458338463571666836912665997221210523742660962096654128505077102717401823108153904230934380304288908266013862444986092766362149760012721848427555823328333052057789898466484097629472663140740394145175611316154589785119509717871240414572668239069346752876938656577184559298233024190633493557874210414554074214895620349822331177879059949048098110178813751100878963288401037669767816304652586764473077747521450272264459734982969643164539620938593070852120641592207189700343816882269245991878313730241923877879931535196460558365469397450108047978383850818138339054934128514017629035158122796612698974836178154486826774439805076113628367148921525675278571549030132080520108870772874904791900468046416583433222720547232291210996794162378972515632444681148846649272254701279281094371013300119686329522682556796472637334755391967690856932508546905734171120784808733253926938915281386385694600456022096418143187794688588185355213932903666253725532591959577995902410525546048736493640772761988776205618759954758331225153169022442684285756666296737215961712616949643406502661557958705469974861765888237681474773701925725580501560471534835220879831880165789359227853420178145320087133699317525376011946194473621126345538940051765330483977006246717376567296749758397768972939689093277473543593233060245606758289190654369249971300428493476165657477903304995172747093268537569352250000011857797285447516234305314218253654844469808476274997197710700131259685756582392897282769173651941502291448284531605595214756714607462733114998934069983413448701023697709340570449837308063403740795841996489691362506741803524575137369208483713416762966050301415725434518185364810188158638461257693763450536232447291610042009944182979332546938675605412136238157656520743298922822154505188622331364198426465291871955310839320721198639285007023822616582165909031722677748758874483458062722216523811352189299073012291673733026636485110334537058872743648738144026796051695876920500556422497134717276921090787312053130189001214912288259690094569479340085856974036389748925248055968222161693356975394137476332745378398283950200474913671055348534948987322674525810885284786618525654211401225945232583413844133605325703193934919201496211025255264481418587813092349370551942222446426777271050402645475559824972274435505818260951376464341581277665567237001531505299251787642898643149279796913625591914441563589068362461018201028550400016637968994936106745745180769549581545636167844230005901669814836735353917653240207575451546982521367484626819778469426383609006755245775119163145241182604118189716013101685035103514060754837128401148167887691641906144565776234106784585814836695681154748170961522775952716861955997272970328343862543973391702800557266291926399948258514229474114867270882030337361634401461127724432584725204755988713566857706216566936314218220478370115549131057077050942335117247194681402988448686810747562715559118211291568908206391801591496158079828824227203184384237776456563374677816069417692571773171162674009124203833747660243966802411242175325070967766114633866539185639668754467334983244944330379230565225945405497465013660153437156785737990784071207765339376863150225721222743993876342580343034533570048484732402174782625305406281830295291582988820686329089335635081762651012695426381745560131062037137033703156717409968955928982862865798489989203112747445539292976973297300748352479907337648878950688676467696645273407021182584299662375126555499043069908924991292191895872145960315309685942095107690215359740696630696971437678408205390793387729184097221824336379739669589629021376489144178566098941370204383977115553624049563068504066818132160083686335479036444572384639666679561494431874468234056835780923653790373890258743808744344626483465889449043933020850632539720327822811013839754978369306490212607112036773696123310142129160332347960301530018026431050295282236411821834612902465835957581557252755589743617198380199114978596832069776665489183355211565780039661527001436328166046545125301044473340033702094996176728514568240962755683991319821852319589815134795828887140877978228693192709409523533889349159909256869231235118633833334198194894135183396668389750269888132114921054118598673350933588969075023935702529569981821458545736946056187031710869635928408156742303398419389524705758496103503311358775226780988669842012717773738031312212413183552069769308106519234774761133538353287974322513249418523256798885070240035487430656187343213146420300811951197564739251223146610624962822814715283309524793450284013865916132502614454766955010836106252920380265781660304410356820209354483259479781360386371837933515750680987758006494751725474099758278336935803428411764115045002121952999137401450585526693368067273281809298223832180076229094640294115556874739453818000468931010107037394355301442805780174610319834942604380044319217497319663257066896339670714865536844462649872921618708698083260073299302438154240790375446527087726487869648717955591049374215339975757167595628289372915886046771575277679435511656938179710399245067156635459911746361646073514791105974938097907230194820488222654087677625909923685166000189797999869433565039313900064211704217461796570674873745468549098066007657825841872295786141600771192675705309261180947273617633354612960885649582392732342169804621207208425287804751350649720430284795047781909684675723741437923653839628171475499184296677858954329693410490972596129297644050443820857001004078457836250561988359747665701066587187917646815200107923704420751775632578038532791957662341155190378735372597043900106623153199573554322860606627670703374442980235978960727721734622243866242745292481987844245606651436357286783345013686893624081209927580026273150328908822054003045062986944489628561670651537284700782000204155479379793773614994375987737649514937546928687417288532909208022126797030840074111939218744664853249880272455105075377703912468394489538914730208696158339630416929884455623849797856879574063687876199506368296691568543495841493751925561427539908834720056282041276473521364036056400687218194770047816222034079021706200549896241399247447119243062477711420460370684747718399013965285078021650511806667721632086591515033987687800294557848308776904967768910232004772961470215134661140328406331802022285097122485632982912402926862400939325498155378224297834682871647461232540864253903769104381652630018195606240042663575189641256315387189068329225081698798426079146996843011996575083877556770107836818540796772233111366740814928821962716874169750100478316526273787075208001661952188884165450783442385245988140297531596388140574953265386918872229889222424654576441651883785084480386891729387960647891938089555077878116851643317324997283270076003059402310115649822423435645162865200548671189213830487391098565040855910181569779384366670537874243358704205153248314602307246841112914873560479858550432030696506906496558984868158256250206213691188952247437289375449288387989906515693350617097044286778734430167493247529738926732999700518251268080065129621221755534077402244406424094331871898452652872921975037054225075575359169771363757274725517948100497287461830363226934249763092040763751266763861097674378640815684357506798804629440777369835923373496360136388292151905063870674157068361279693677449252326156332732274032216876122201847811060996465251486966917792730706181335363580375414293247149404746369715345530155193172929642417512780279589353364402802297155008749113528263152089242610917648368993720251574723288244434401364514227169631188543447313153777682746501875559919670630321628477318541349033582954822941875513372521013784445578278968774940120783821577875905876499333897442362398570388196848059789469264822112632786329425102218034945475957877639394174986204002737764039472472708286840990231735710203855374289321937568016311350883319183624069167156808260341511635784893960068562946335262077229383690411518979223805178630149067815565472854862979347959572642648226178860472627013077452845999678791676325235995796328848603142414477830314956614489347271647553796340688518031272423333781999919575767724954876629422264242348568339986220004838808015022504362308412776334593103401359493944690410368879583946377177211785489246622992775972521312030494406843711222678948749079104530474026125012980002224680859951246337548137623359906426249457875906853079590234482908784155895866525353302329153087489089229822595845088998178886529349480041899508408343009194035770225194763250503909774573571887191192307998655338661337591351100020536204696236403520284718102774410735342245308234392936040164348722704197611873373842486191731326843699797476558868423685617209332044235528221416101537947900120021391389156729739742673286557395830425091793388291563023683538619871477661843338792653965864022704177584137527141766164141492022624530307957094938646222310418628502769083752694035727076157228538595699899379937632671317320648739390968368497602572619126075801200674548286109484906312294839137677388353949256847603468230766577319663088364451128144052401349436303938189405034015601178421226083726201864675024919724337152835246345530259523157617316080747159115056641307718281527640377566971979461439097618090917147752754901379263088419374776745233330183704992447644653586118176977451802754439335511857256742872049936494174368965677198589371932472333038290769394369386208049217002777894699145579951799377935949375540745643817753919499904332847866592597424974570134078712205429664730675560415620661426849041210263398422678649927809619457925855025750270793648581958935681612346972365580902107430584079059221624119431496516944197704941806395689973909742257526518500709783269570213857034019256936750793758797233146350593805470187794679091911972416148102340394277075297794544348768044814099341445267518106007935409743047694594170307729559661184778047155564941882902236770076249102924975621155007342861946249525629686041270052809215750276551615247576906288579129938868708505833106930199225456466403637339689422406279470698150585476370206866391141672640474149123611379973420090578465915102664492571249193275122408603755398606938702757048430006666766637285445975312045375280438553302497323808188780531338570104465743565946458210911531465805535809758455603938956242431290409604087248735597232773854942142584678975760557843591905763011095614455465052187754994434323705153070518874682101055074862752027274797077448419809266750062063935027778687734922735777506088898137399645660499067675766451728154364645458174945981776177665149219888255870116556157867040803361467155889933591309303183956360505749389142167802524251193976334238442981549940566494409552870748985966142638706844037650806706134368808993491410665347550231843483336001822504523311261682311793657967773570014071394639094725099906990931963904108687761460546356803402283666194902593631617128547913260450796803824030269790464725989713000506628177547709039851532940521456694351592164616388571704403896352803523048096173279553401426665953715928915170406199868347499557710890740142993034119381936714476149036405036373163149237670492300347088350247590819192730849916332537076113121736745112513700953490893089868968628706117165878119345441508278390686979805675734701952132556522743571674318695947695666285637532217236453175991784373637509007789615220214038530430179634828940205006950362141401060121441220793469654864685629798866126415444190074945395557878112462881243887508359826443908532451756823471430442129432400568933754201790074523129557296874766463262022244388861425209113254237565916523610501070748383633767343769695728008187642223601871621001300684795492038518609917861100599948314745908664561944868174785174396967322942051112481212568423039774941141305819148975199993012984063973204494102047302489657926343866129714574769934475596929304695670660705037082489731646642768383202195085374041368712715771994397753458929149570138980374733985875097068615245638655722204317689521058018580890187446608108839313765174527630429598572602771081698937319980211840852832927387818285245203570513005068510222972712751649742498120200217196310557830544452821452855972712737690633378963987446069835233393369233002061913316621462868570790498538476397596637863313178159195008674082905977193066692753399640755421256030835531551355860571585004246295857808634747767915049241306522179858243361458894182995816798969199729390019156925982409171061307568504477159029710382132414858409936051530647017178929219299601135300113390739539406247263763243418074710402614461989430666184727332918649219751780054651424454023790813258640680640100151149878895408113525329590347060662288659544558943546101635259522556179825464450360636648137631547416923990129215347959797803446189666427764788387344607423809626840034179487625993957492402126225973553876996164867831369167350148453484875476809300750578581569848445898654245523924877810240294610385340843263119214531928908695196016886204421436120156089288031705157305793971779666842926572822635931455856268213953162847785525702794747475043860233139355502272995970981562420459886891204546696230146052105008395217084192353519063214800799514257274325492672423605463652538583664355635905966883183509302914930616563661283395876078104964720195755203037282611115524228811634655804106687782807894758383722444018122963385569845524599390061025049060805193862600556545309091787622472171823585778774415094447906211973839430416343913996189055128872490442320479542187907017712552813819322355611453360120744078812855953007234977669947804384715067617178815938963795902412857880495067285822858741775082268652762881934315722702518904656357676479814476254991596772300244264248768044822493461980858043485048414991814068879297877368327974318140296219023625936320602421439875326806763799429510511633662428606946848389873064805549320734071832365380500792090471600641452025034748675918147698765388595422155797309847440604221472675370482905812379249180649274945111152930373668476081586996290931008264565223958671682351533396666330493724783255919299029382046066456188260725674907898841161190805908638326335973226135644249067330013351190491419895365070706090225758827714862605583011062557404005280106509407538444873220152405125026200676112844078835090499712439351997273490512356384245492580503191403189844856091606102756786177268882221090142869962731014333873371981238514622858986061980287188593153612327061680653354059693444906608579142627568036413345562925804843808855824554753467920424536337583835480858276028467076848233363483528928578765229048451231433737068699650168833089899783530847089779325735902722649411772693466786354034305226905991210959157034952980957368756096061335613781003633577153513063916096452347070316967959222766956118870835428346087338141190610972558699068656084056452830552124392715962881476674576144624894610647276275195476625525968529570525367587973896685209752885886135934382750383323404293859900110602529102176972170417918628416422300017627831102698342597426197203919666634341140712591659636247566132442198143962668679701228131409594801529222831201342574195387748974674943408911581123086237340122220230905820319127968950224159783843615639982192928673966176500319043677186080496846945168398395869879079867639863064144776297574109990479498785826385775481960943007530171420750873378149228344176737775093940520413048527821796562097152032273554510301388491868342498149928611160097403398536377501377515376014980832898919535035958852262524376075286565833673152181633866639043834444300522849017758282043748607196946477847522852694896120652454294786964734136726909312380167676958731750163003808002710310352014394287513114271076271807445209724152786401335354053974796703922963873757423122934853950059422277390307373895256020846061976773709276235306560009891936067269413381318593129490694851272101746589076519358704504545081017478211435458360707106766219011074226096880604628989284987636583045968489930275300236979551856244438172789379421687755095455182146373484625321764932632329961975158154240263463182081760717186495083390918340387072536464370559591780949379054621766815408471162334695883872077099396702772506218454841075513144330253948509632413864607080904719301061710736890889501529185984371007325568613427706720597691251559765987203862799363340145224551312482301924893042225293162602570959297144667136642440411908506074889192644173860467364572368356730239005685647634782389623535570226764430765888865483905021354810485246999905076881366017451424654029403698031755061358647484955084710634054544567902834520223060761078452674028474088771191025612276158780185127897400343498369359259180351470860014978105593120034530904895241893947212941716147654635320742210916682185452172846182690818129718914589888462474298375990470843694738406598361417904472449325970369825493602984111328733045941432681634401587252063914346565568704377696744804693766658935061917794305886799865862060746216337882931962657232324427225163014523941557115232313304725014915222221503032057888727998086229686643816123080676858807902934103809527066658679857290267545558317827143881626093226500016519353633035566720795113231580813277708498663907034291675416159542565298034111857756958457145736455579727038656651832382654939045458093488464443186363209714787294884248356293335308170456036366789217710729481032896907189188266572781764571594177020670672991443925123683937201048377888277835955913034924206331475809459157266730422674906178994585622893614203392372244461479948116334941444964516560566152974404527766358000490791340385711422264204969717704463738866915114418644653979460878758239632621504728559216947688391949766052352675764888662670928847101568735431084331435123971971794872301575968943379370170376326671201386675576170369853037840810374897039819371805761305600199987547947956554744226270626068360620291040565972488830032354138095472658002045530472958186178092847996522277127480335090276769582912334401090949708029240993101699194644367149401866556788476233815646301372203558445535339797081276561995129546869294830317583427518807833965929424279725533150160388435871882753336914349226206484260274236470755977905825375790818320371383747735295750031332463237772901461464582489955811998318206651432171601156568873306506245988720580391108535419310698892057474466578311805216131001119654560794896856713489822205952596667873155754383303604761473185372297109984004285101078690120467777797113704629775192509850448105829095627793001280014348980579279397415442870808798511546970810161272195842112248250752876950121351476130320776896334307186932309045793520955892094669624304466875463101137614423072373266218767330897396000785477836532136482580664925421848604802963322435806736490851346521344151590412707401904562995857559275184493537094403404858469250761370666876082726235644107458476953902268805011163325935329074975050256124853913402894114220267494226231235188475340926736611912726783236811888464060138393649885481526448544399853029611187752468155928351086573398367324938690459523373138200935234898718565977695390109935879549040469772647403271576578480255349143328735238557081530316081794020678160223763839243125106572565315091069201210301348034118588385670955077878241087397554474089039178092908112593840525596219367098190937347460626611393889115132469617689229285162045283690212900199727181773613619595704414132921025318630900499653174231431818545984512896331374778116622667733949630628238814572319529375883229309031075041432678286185522119151998185424146917240468109714584161428944696303452857655726407210327778259807574839645627374199102076076039149494370416387496717969721134270551345814795794342556997856279071591861378058834541006300965914797678455439158413302012923711293989930212486293544369686451021720180121563560045825366961632141803751477132446997345736324341823244502969944169927569872361355415943779902589874256433384979863251094595739889252539504741453014621809030219528597484093239452311736465112800452187531040545249914230798626449881397024410751054423464734034543898428128159391233813710227183770188723823752843307779443405729724637725593919983396542809583146347949878807524365091149054902892357099170221782014298510665868091638121629341242459833583566390121843496707903371080899992442407686192884576860603220557665136909928221002281387035447842669783622036856601289781173108104045597603415885486179637511200219406101229893178466087895542063410469608132861415234150684460971154289540739020847291479413828601117245562437579359223459802960212071588029190301449806263565546117975968032634489221921288073340868346501302727376896304635982238674621283307063462164377275811264781516334861912062662460883981169382312481464690074430985254359438061238176084853534883651786389937436862261062103471854172041147273377871583111181214910096927807941987062855784910233348075400812952763144885810061222826669938886327124527578107090909697760310619074621208149352277673460925217497934546576131664935473509293030155448240318769396748551772825537301051451653029889326538668216526041927970164280218494373972617302872136732628216055749439728829478934232249093109893258151994535741639492375004516628617443992343256302725723098271214979382893340934182698782822842028930358535737344260893509569461331512380569909914741924744239599933458378400434883886033274669897687531246188704358262548151288812367351128227169346163994092934908421795225349250304501578989014331267051437161212208546532832542172826986839782632859390645546554573445895941660164778992470560488262226498949715381459866622562888913113968929285373419040553200651590393729126213257110730333614375379324785332847807926233204557870762599402740572733858924119163202882194509626291617734338707126850485511395303892289959235004921794904763506335839226999833985959954331275334579539868084772047705624092452257032229633678510242373548456993501125753553407784879895926561320025326080279443103073453906956691694017822719653657660911521681541192716195704629558456011882952839798503521301905639419105112011717517289723409858861437268258376609815910080514443749361249178551703844441347641580545646909888459467207943383889282410938262621759137789153388444286441284502168003382011690146878598162019543544750963164901195240162988645478166871475981867516285363272815801389715823847895737715748632668040417301323210328980401867204858925181308610856621313216514925628620775903492052673063983623981465827213101482821874015420216455252251788647878930982196074766651690816882352305155537954637676894593351117831681266828459648759193734191109843341786351215681461733459314486664415331244872618014649403049417373943005339769586080887813940545667853545120126883814180482779868698721283217389169258746574333841287211094139748591221727126463661014276387324754899562775735798135727263871014801770774430514841618473038652570913844450233957955008657775137097657105019190142646377792519557505373959497763889861034801883371259175614717381980184617342908341648318067263166545041776083894071673102394052695575949863338969425523469324500978404990508292040027979984038681090562134817908134252769393645422328607940466840443357356978726120956060917387932658161375953557342186805179135276767898951324265182185965560711849578673882688454568150835965582529995941829925499049711302373616005280597136810267731665886192238881766153506579746886773963363644114527096055268806712474009751614715248023887319566039579670572450708184514326745208059045875295767614552921003531440373561980032415835402244306600129341512644643074482886585372743486346014979871981509431791449402323670310360885670902664044361995262471051144406782758682158706840633341096167608964698282210165268987072724931064994732136667060081626172687292289781478533161448657208655118459686466226937268847004270272230766947466380640017415492777094122651324475245072559662184485191672510816516277926596862595099784509264966122723319905733504867283673625964243054594192752309970986022462358264213984223788395748228153032261424747806584538571909940871505082078083515407847012169821158046088587792133896474481858789555127250817189527458900369105657748826950960050932077738201512643503860666896452845200696027035850847443658523532992491581745747455767180774192184866904820226419703617463240934628114630302875752526695439092134291863273682298859610961887479202937525247540666278880720000063997664050860292473083627195076457131199411840020204408299336766218207897677094586818679688286139017740338392143118992517056945166700149422118225006651617357377412184221409124114473867563108271355659320724098846626474444634620685939088260913043844914159019179078227524998368487115803571538835873591197278833860388950289800930456821201606211495029222343120899563783327917148937075321312375511839192228529672039611393943321392923828087903668251886361741109539503469833935940641033136574548741680722419501615661105988597976004771366164612955041851796769113131772142056973362335795442010779133370401907078037871528196290487176557388729906039776314828665849536703428159088541484407625732512523900214963874636430751956744314770975730298341022210833234912732517443753174143757251237811550833465149530015512328640379993606581526379298852752531326926178005629819145095666122258897477016951908670659140215930655604699136027479587756258698430685846982296633241917511651891274473873464238277681029989074886243854958129928234086739153856254427337428189219988188614518646329424479390352997314819408255389105363854640375597895604473338245284068427685736975630984311701454430782224352816473292041295480123144316340505278154132002804393251619252418288729037835071998985264440945961724652036320774736188188484489298096530815227178546298917686075634645089009958368974150283131471363234230200311868677270857715885994953494003476016463782240168079566444229595787726294057212484743889170386555912737153660306901674193283399769637640364368336495919811623607512459924657096836997628181698311326603349325974543094540260549604142397714213272617651843358219033524536939709679327769009415810494006356819529457106314502680384887995808220893861594732301210786916664756754614743541564866855842121871361962096431144540739358552073612596678197247126436465976089913260851033434239274943801045509210332835320404392698474135408918604814147215131092887184048142428298343775108974511802107715485607480004808816517313143430117773514348188819296978401087582423258334802286988541491909266955311646499381185370356122424471271979398626618416471027082769076143720621613012417415807998985649124395932029612499021277871282735429440951564278295762968774943041254279380508204719712273879568456014499879406817171669917517134767050761002714559172801752242901826689142426328735701643390454526675867969546207242468859699612447422673264557387579268728841483843005606014351564754762106284714807751078292730423243314626397722690054913446510606170270403841501633980694190038686367223568969962056294926587684365284372230589692395197259013822475082840240500461624415417535195737632620442474454047392836650644252184111436410690399653128017236137128842190847175604094162277763519237216616620904575833764362468789247774499180786808810200167222396728865349514793443803816941779162859249307401462619105971619825468303775215541136125665410422845887528710645463194403439368191963018700270510175516600217284729959268041552868298277844652229383460335704827289263256446059397692658101368517488995662556472371977963870232993617419861909492580777552576295335943477645522399330825143613403434177601813131220172301591338527333894677993911510335183558652707251801949754853321080278439429855087056320776805315205303285344090622896727188815189322334069968739643570978065778048571104950789256199280959354430122776703248448747151558343269705202391352492465243994061202224752175890432695570790785652646608477000481447609575391885293304828465601383030584236036360559511123727496562715061174128121319237483758136089218946447286098871702694547037388383443602655254222641855041648217937203689954139922617818689678621803186202550231179871011775384974720232539545452419495607967875530167187293903550483725163812917974476297445281000150422405188062859074926995207703166065675828432321528344730795596891733514158793709868077822753630050555447425198783992463743734388869722610974249770131000281884924275900199419193843337510139993726815008449491274128733495136710350129806363381335487108608491000312443924269535010643172189971700577170377890000227164603854485347508700660957048001192390033838910240667814192765243720675995440413263411692867906718210293219843649460615524332636953431419284781870319606622700419334979647908891120009164040874798149359197996347116866795405447975849333047735689736251345991544108220027817859228280626401983023114891537954085705955130248895510054815011627048715422980023334973397828673994744554608447958024041520319860609437372438011725732470240911228183698505940940364259504405881837258380649556268217374959484345530595071366376178441457239116395165140416456721859079774438970579467208169569520252759939871690128976319386862733516829272864449890982520371732986978850626177223438848512950342859230849088197358106057246056309534340749398472102591120684472351450566550802450962885713645433315342607398648322296068620020868576030636139333816294519278690563637407417439684525233383103111871908657452331890330203261738798012985808754972446978497496711538732343986343772941516810975201882719639706023613659262717640518835591902126806708295311495101149517990464747667543641301587381939617436973576306607194237570968196769962816514439613019740778718285589493920287722769534198551948827490451441164626741492461237425809382350928556705419640312755903798486187621144717613084100825372240568135142720211988780623821420583932422622485657268414055443734680900739141445392019488780149711689556170126070486381446082229191313137784812234906095991846904858242888675369600013001199419192147262369042456226420442159367678970961524073585270414235189591838141589718210961570745338786744161317111188158825739183291220829373372598267936777120720786812502231765520658546091589762935170884062629515127347593682613661993040370951136951000283832478460071611064686067777999501577326481839150141213397912782251462301762558940892529207998812272751445710263504893315015499673427001260331382210074940906962236285099599837710734816172959295821703683710205163714934174526716008820371465403899946241718072814861491574302725465056342768374525074176388430036378262849916216027599863471719234582518981069771092489761776926786621413764528975270516721813273204909952078532032346432394944960958047885946308602067271973098001490531834064069922642415466531966893515317028155570324127837017232532692907577746946040006379156512860947579461935919839427537409430812840143071542122150903500940246458293872953642928224622376602571906123551532067514523959348781408808983826960559320954096892659958542965986841143746258097739358974257121811453321189870440813007136923520184082912654594799885529614694556379108063345881788305104579254617746494876416500047290765720795470822157106830753263046940476287224657460669646963381773491256608927042582952022663225240798981457518890964653215195283532106877684468617272849379403634847331008841198149937245270890455530308753759505765474873741806070432397217239130452420796112758511788456067077774265356277329002154302910756764620738259309536612238966310627931330559846351597889108377463642230268616760395024650904623571135890407996780742110298592881679604804856105741791419644203296873084741337058895752277293732634376594404942465139751752730010241798109443101598494202100712787385712920280259974514712338833664346406588432638390541252790377470845534006664649139934771522860199627333979881664061411016813645387026601350457927917028879079782612490612467392383514623256794342262646679237376405752725683268474669298112850350713935997746901511589159688302384672662954153305995371949130511793056038295862438786657187202016656883265420625332029743881206213167605325219045418421541149306104129233900457919176682426551556839756947860788340101532859989812987945806076121664990236248450472259727393770957611053697739972592665579875098173431832530210006160787179486630992848375619694166773622987986546974524816711584555028757874394862566493968425416345077744468810420372234895681421177173733637693903610425987343062407941962041798372155117697532874111822345393816665686591971878287079378439691409865619812072094808803625802071000410788741458630120944302184718570657866831632555523048633077640366543200055479731033979475598926847432816686822324135944821980735635472570819462307976050729578117393028956364678409535065185508739954590026251725527374650293338616100128596335870506801269783531788394283789989140921934952676903415274150093678757470174876027836933422336454086987736577627136506886758141265250053965941174077666209838310623336269318364062788218697464055018278187763399469092275513728963275562435209158236211541956627997507752156034488441904306883534657477271096651431046194739786874725158395228694298908377804292108214977991471710984416738101684790065434129682751065654169530311127356253580779293860014051951444178420298053572333489847103568593732731581163661539543636929702897247122100379805266308468659976793203114755734463385899120200646317866230171790381074581337131530263598844053585009186269741464694206873867072262101997660688821936689028109367247626928962169377938520384713857181030080190669694383303119929549527962488281339456773740121034742319614101474533655161350473215035830543356565441768250592258859681437793778115224913581565190832077067588897688851406389434720399566619143497474469698115363594791998490716541425374714347855728257855691603927344783642612443342983398761885167472179394463771262174346410032241222797684552409269020253139252889386111473177322084645164435283393443726613220613790265712148733922105929471518546102169122094817213525036211010703470799975638496762598625726748311168759819515207097418093466955032374281731421132066511397876660914835638532655525000091450067685760936947067151556292038863498835330730376024669609640537115671724169450409108839001416612432494411599050816031893767273630795184881124701618175897435021927309870095978768457052938453574267703693707459136451399735629150674027355649173593846510548214825697171157874790020844892077666067650860752847780961385415723649053988771897304136193232116895320677159368312420477348005328218320167791877405995074447191547946967520552826378985258556165992679213497217045512970514286465438381522940134188713996182270093778224508044682460760644387396806973985994013716542353799257249441943317628786733848240568065197511058131048799081408421222990566600221079699572002582624941115526084031531300925654636246672866713044596889224687955058515259761291187840595502031304684972750018927335677329785608254298221354940361874578509720995369815115934676153950872742648134979754582783739765257832359164686480350634189464999896582706762447349646183640287647824567527339972950329306241109927547025479794889192288195418065227005520069498995469035308162954148361487421726525785880872074922940396474939788991937184139957543476229856175376902664041878453670861496927205548061155565271152567476739896224290283835659729061830979573007177931140685517398861840015510936108029289047485866295124305475216169501580904603033903980353280038335019938384296068269395455736473881627824781778682072302098525293610010926026425049112354912233241761363377364813719029774810674022040846457902837298543757968042263997971662159063653592509063753809825651801470569097585375759113094083880354955032627474647852323612397876968175753050860896938742261184317002792013766486487149355598532381544920959949313311611887819794072801582353643940811745186654870669324923067913666437992500487895140632060211803874438666512086512604112600008336324333013338880017641631272240780959691286489857919263959826728049009454802766494750142543973726464646352282614603915951292040985659945509276184201168004079915603954940061609458044867819508653916200901757051719714671485133730077021588615497661251579854481880283541701624110439790567698124497190516712370876695438565949158175697647458402987627114195121465342863915667945097904752891249952053708638548072805431331989043108304172630743063744849723692780220527897787310125006413966378905391288627972949643254751553781367409480208662763872113042716488566691399262298912036953891241157967099779603541970743446361123729309216790955372451749168766327362901429882650991511269717927320746597920958640855789173791565804941265589470866742829802061661246509409840344312905191579467555677200245623839760054038485901155667139375186231250073825997664854941923128039692007450528893788582870281228965662689643859780641326568478798432364200585631352412182116117926055578729193046905629739619759501256357620629614044869224700095326093183585490251947051443555561497317405451867115754067874144270892511019961690318224664411514243304382743497076680064902253714152328993301505528652479466107668179627947619976887168811518792679254878867885759474079656205914012689008381209492286683473889766630525075389009531601504311229591027326272102814341402665108852177075806011915543422933004688688447106618962691636112158275038855988795318042313417225036307487737294224202246364457463032620059774843945236417446958294402532645949996646263960105671509024210673496255197808201969147467237231592055821991055322376516263426655668494502578801034572621558377640785476950641809588726633054374847930685585713591146996489108912983703662468264397742632182697445647236766728659053515089106833968090149497307103800612926622461134308184849178850836441433277258494476430271356461553020699466320183601823222065791057296483179814978822571271604752333687574430632718824321324207496360724553406754177358088728674744765435915877009646178949362953762603072481434295193478900604551129852609738517590110528653411152319822891822584661030971986779399826480559673619752476503529405393894418379152375260020188329390826055517660692444548030474828228858361315739926945006655987025402397849321259851689783221193979463918734685014961445518146806957301132186598359878477155325517208480038857505673876245338010622437258462974811392624629590503240808772114400465312224503754484352925052212129725651566248565106329358985906738644678912181917363555088908840859119064243187564389769556223224711890561249155483587639553813713715513533247937048393568321401917721105220821425575413453917213697198276948975275673106063316585141891903280790353127313406919974808907685372656861587282822486052648429730658162828746865819985262559186051921357306247332960120884751058874798326635619245511168683034551816771316601193721150495747804756844358994510454735679007181699211824439233060527978243692348298278141075631356647944605794203769566849027723623846675284570091355229669881156694618846990821130328838567143096830926980381809713303954453986273923054009186706109904332788408829561412559739449654252048882285764692283169438745508215818234808570937034266565103828217450827219321958775522492696605055199302093591255847227729826990674402664948702023756284683755538711560884112177215023573019605608454666508190518853014754907015330314960285936126369545630098476370641248862811389438796546241823287862972555072388109788235464758327627982833193428792583307971321535564198426719619770066574101707983069760474136094342948301031253761268107837666953028395732497518074628862012392166098612997245333065929251824641932276560684486697377642554778509410600673952375136099058762554383711290839217561389295595049958114810827142341337034123715429557686268051337426919968744992866926802599246563267771980305940307306679319062429455742941564068245796245897280397129403463906133788193642895037122253039235452594672481510054388690205185918209085999065332147081897938726929898843071072498413730276931574032297455538546789202328038750054580887380390046890646071308428242833988451460484909506945997169425481205257848450995676568421402237172002122751701797467385021369602572931347912401236915257339546548882567231766694128596787277742372766437053102472425101214931025187414900160740910786042103723731553902041382086057006537811035939931581564787692478959749169673101704202204318800278551398688707195398915798623675391230936228404951897369474181828010441478327815763379016425535676269526538979187272248304938449671338469695478346009445795037661294846609983397693661381203419815632328373145450362397127905780557011650146152223963897906274172037110890584726635154912302236189937007655467265952353471763612187627615820818050558006134426169532528016683068515428188525544847940871584512808962837677591714145976520351207516810286318836227572383381022264934565196553579440643392032410706221519494977359100491943492356591916148907791354137886945433758034051961652168793199233651576143188645307228538814062341968082688304205279759706200302414265654482678707357053668183373563084791056955037194762451866764563148689317462508258286804625867016072236009472112935481940736714270392972892760252388185453715745119263553706196034146455007643915261790920184532054277877600914270209702995080817209509433871397727547383031649972252166448995070657035837876070466038496134822495438508103224997647114147854969145889216126520236378854643405689817986166728610192376892675695127275032351290395303832528151454590178974252679511041149577148034569481333842594764102932673823237152547067616936129463010855050808839076453188330907176487697214159044765622753205414278950841519210629999113437460558829603766783619620159197327040362695463297805169752087058898024735795426892705344394968106116715669979600633814541408315142517708429107087573331944059536559792418018402824910113363154680681396956320250187975530923962035957919115945985122092343791347398997495360067454138040567254469870499154673563344886990266643232337142506276777503515157070800297601373566515006410932599800716093328389860194694932113465684635998210119196864287931793917196707290719580696260475396154643374547299944526022417808301752538600187238381019525437025861019528257150086100400409383858453340635632236235821108764186778789888157773432147173628540419766509997784538414711326245979383295820910979014584027538841654085203185898923164557555326180652908923288517380292295994468825492787134853019139004341870691678945583808120255284635312305170205986397596124800800238394411836556112000544755031595453815982729812991267151729962399991026950116353817766243346985826571523376127556994591754673903556917434581591375145412809109246832546774173555135320224896809556283750843171607693204752395499048210231739608752157812693889844384008608186685660412019086072959375779359736975034520983490187695062721998332508469069335272864208079515741214052299464370529641850032972015611990266163089305570555506161259160166993307694097975670941744966820918965823684104307013612849802160570225816884803485350491047664882635782087424177127667095958098113734055193473439416853834792035588807843556273348858811686587117539412191101381259514903553121829641149485827316088863347865506025697527765910692476455597198791135260279669100212017365927376985728969125692891730623829861218041531565904931703262902535363098658594715702448296926976969916782914562934144340812184462861832654285071583376398337167330794104727764651057903858016833033605963141375204138420118191144674624143697916783901116729310946502497507684232150380052856167927438755535247279971898314062200864650521457858040079443634914231271351854823904237786903662864773285375259431189764960426879815398853959033406183745057835995876788438368188204542761171810815147871998619646090691800245159010387465702142239525548225798205990342499556157271929415630899005890130779483683979539969789447345081028099630407712035898800293149397227459428954408209774919245392529190198598254176742654158061626146002891424202960658071430892258474157710146657343379192704197085898648315681555399807614459910484444167807856083670972104077178409155735307844268537180947606406629272833449903113169754507084644852054315623992309454012721594832428127240118536674628460982608200175187363413239343828148957806794015936700532158874441705487857585809740758392593951102364160095224943751089438012174444444415981130289991452844360375991203982837703706419307496706386511572101799580992687979129568328960700687733144413205471091844835660342191340400079032666370353919061607807605458367696885102156768601536046123899962452927053036112472973891022265074766458404028398991099515844471217034039840512882513558354684613244240238953503328982922048677950302185377179317905546261817771411385665595562530421536489521686062597445981383630663540888196220041555768014010702806881461432967264416516249657354640552421484925826194677308576840186716041853262585424973697202827649573125365611566705635103073623347827487154603221783485114851559585294603718060116172685402615140771207594675383699868403143541716020400295960174937192895935126884688776278498232248942381456113406519358770092472505195781857878643386067383972443307795372904283755808967124487273564416732067521332747492680349251195945761790268244600407438091163770699110990457819710800462380983592904656673229914981981042874984056265571528351219431333680773977491691669752610076407330399727391442250753245674919381949868338472096836267897794062429434381507754980685723488584553933106512089544235063735340802391421607938096497364157839130736391351545597364660128801613438546157145075919532778955565438271838621351734345768082350132358067171183168578390596028363520853993211387872983699859147531143088030055931130375867985687723817807583059273285835301112289758191758517700086612390378465147669261543254979953291450678204523713408710925763689929418131017110555841643758547968206481690572044428280946317876091768976770509228419427672572596902842873531256050179820604610243255816013995082791886249040583018351829703205714000010675683411292353132123188812654503364536175445806421548834235532531896372321015812411433498000394868911326013032530049547900045484957762621464051362912032026921295279667626615178408007572300210297085020508046285968584099595615556603686721275211538180935286891391251960892317091285757173015967464166235429645079050063266543701866526065370973783951362270796863287349943804058855125581587295592257851954502692021072137780698176530977921375387676403436509452434879108958947373829036860746589261469954319256479290845972949492145543240887569752370947274086481712004952050765394608389162124239126134768450715071467177105773915843935233476251473068875811704662217178748202548795632136308231742819272844640921400353926571087235554677951539293910060197419287332064824924808806944921888875974801202852860909609464568087469583472277837982197348092767895697887815345139468994725903987492121052196840962649685688367115857266584969366969612775090258238530996968390827335833622329829364087381229918439277140924906596274809341090563851501548113982878862814048036650778342174508572626511091968082167628831810850929554597279259878935141663653965203236234427378134596734718922447467743368541096064122793433773306850189972130007856290019160065882831835899983349151896963990613268019237903518167486729998577810546403627534870069464026365907613472671205563274855037121697968180102098072562918442869321629639380271946013484498598160117591274345998601185218708248194422180497519525864406131273665275787811546004631912090258871659644825388683332592317893240274861119343997105978022179091997193702608151782794359166386883228527349405528421450313321659420290443348417353140716126010338958172885339312990597360697520866153612146649353199909264946054529373016467776917118832406392804078974701185460938068526965521359900749654038435202408849286129547993875143064042612336846014868777043289412745854183425116827094005097819627724670379702178321226750083622460375130949204097858911287552620692604943200496459388161234394424331098629306607803011616867956469451794501593426076860731651729217611230124696191464623910056566870883221877371023807575383107597765856799757508266237867007936913125716384001881813166280998523538253128691153350421802394527750970232740512077210026363196140105611492740918903512618422055400968022922279186223078949748141716149403097290436901988441293711990834578237914855114994585465018985688304235659537765219398846653329195884714356532793081095692667296540796852142792094830416584299263285051493471171292877230971541953219363948259156888063085597260257183962503401942855361715434489687138280263751655146019213975891969514127409690313309787958302354061786402882150313961952325166634852381472962300869235299318409183029703296997866846517179489712342292045336284077640561508379065658560030095413675284409179496698594128344217458764250652435547042229687542979513712429710364190676469149856580972837382182776688914104261269268292749009843135665398024097763044678129299674163802072166872574007728332004182341232045737215999537413251598717445381506009644643157048019076523447636436289505615010461449526486804768894243592142272590463120892269043048188484812792943134138805823981569773413100547201332144130345588045025843711933015932650586879458233137675722159324538325911556388133526596283345666905737092904098033825904614723825849172281737161464715542710390438789228510789838586204926498593457655080965795520434554678823978592463179477321292315449589264297568740352189533592415455431107020154033600347002621693244711057173573592821951474145146178666844569430161538631423175163935881240897779068985619895598035389247515876084490154801638543271219670757487682580551817869259631262047710720529571506216888880517125174099037151495239281916026800773797728187507986512849302259347235122107285070499404126677350801573600690915913841909884269042688351686148200910076853036516151036660046746153428038980921614829769423094895829623574871433798256013191854574085987652715459277929477940357717948646596226214773637869613110794462865106290414170863995937168820801810684609933121794280414931539382363201885260259587729156132976897105621749773863384277112291444111836933252670595338344612119192299911818239013079759937932445954830891643167976461886870772874197418438880243989787501545868531417337952954388510326350139516001953252069183696422634708397232294112403308361040622646781267791680076447532960277880134129425429017076898748070298981433125027429375394881037362108031487754221758712795924124225664194920674817978892361791888422000280812155873240981064320994136812379632863950008146110687101776717502039666254616579834978010772090753046405939257380232202712736960964639270941411517680177197205171387171688004548351458626637679562635100183159832888123909819651944159937189522131446694823551315003045993105852008592681913100846394503864620022776791964893270810120626576139487882992705535326685047362091696145687252353805235158094890690491771308363785367912091431996105307440127665511612046520564257517826068469000762131266984851488918736032108310251826588961199874906908401697290705031131521482327316034257270414492364709761093099850472085575989224624718031108933412941211376133945384838599423060980894410637664518270979395693780759735794763249076937385635882570636612254194082586039685258070312129142876504619986592385789230558869075916874843458104867392225416677790187584907040995085022035042970493017305490256425968483631273385411943493357318798014090342130842135098150890889161244454604582810175786405546184609418893474598749598983098024588733392061069890557297490095855661842232291485686354341228218057541584254911289866373495423154667521654693415887979922090427075437082227575279413640822330981281433964208527393884306311955142076574649687429985263862693282399597696883250697782252588711626595539128718635582094797296370775019554599923024191462169905738239041603425065655747084873004781896993136750018386894444975795452120212406851351980941769635336374067818958912056894860491365938742252852661303637788393513566341188330339451767763117939319045576988907875678145853658794759378771693727078520079654287614819847653062041750992798743641804638158658536968715442223706954001823830998271549309740360614279026859081215106834526640352346919225694643114813861506587089210757597456512786250873898533374433440519434016325582688994761691365358763991237488110625235872376564780576853687590449010937318864959039469697120813627305547709584386076188687449275387750222518596664066993798490085837213075351674411825517411961680795641301218288415765135978625091246832253595310379662445386736174691582642207812729879594617122907726920824884726723246710767653448915097801589101551981359858357970488336531982822439274084948076663945693704625026015609950368140950395152707379915552719799282002446662247762494391578793239360137027657411668080582950342744570484961950608870004940091227181881269435320776895803993686360854179902694157160695104312335022674603459238614180838028937245722351756883605394700862222876875922269128969046133014074923618059413098105174843134703531890372830411991462208909566596440192539038981307335287823717566668080814429473177354611192392882422144274733719273279340348853413756789851869949996096821024077952233040916384276855352183715525887526719394937314379842218684248808652130591104190601188117520902677034630102457118706284165494789606266072095960393375051530227058930086299753898013068426057858850199515875267952489296568672057339191624334447908215269343662947249679152267261137626256718541620490408134009318937340151540033819357534798292617789400138425342482756242061472174322984220467536236462077324628104643182623306389431269687611564957676328028283671311289063632541003432194507944761428570007405802314066106609583427126178962923524966902657460565002057056551015630372121986062694134650294849511912608948088546999634111307666749543425876810625475636154625985236998524529152542782074965351788154901217508582984603633818637040892622836092862834075308589941821991349257184560160540261134301514059781066847036927712502397431934725014501473109157812803963826245642518376815749670095608070180522889488138816618492668704141228230440922143507721308450070465044863901727605632894514494398313901727828208103355377849105794984709997530864911909863629257306256913367771387056048569796476781653942107457812923235734690105653489042978437827089228897896998604313105149122310288452799250620577595106535821751378807576340856792621015799870322756240278100317075499712510910185929730303498177020887407268237534654606034986509117408705302519288993116452585918328330044007369696266028948967359700805595619757865825266439221623010725738896278912176987010497607316784126048736327043751080252709972054346908837804823766856324939178005720537437489495187442657710120765942033841166737531797675098647197604585829985661303307526001582577222558303776742590648581577146957641473552536240019864771468102784462759232615092220521583455237295222035067115584965760832709366792009218881310381335456881711384525217296564913798204854849359773955358675541123090862897911599745150220877783549210493406584155382385910254885247011902341634098444926771456854031826584898247669780786572976250693318495203246515105257551945631702216954956018011536300207667951494712787428795283239291423595487075308062003474794225842998226083002596677950687127677631688987360435065730821804933079506245195122779711928857477120723789652362530918419433417387863381145414515995326514450202011961221858644382777286410132827282502319931810125343166163613723846805882319173405068034897155697694825618278963386017038075427978885595273158749309335452608662670202071076855321980976950872146387197332564350883273408502291541086636070163718819654300245125205711704391878936330958258484462605897461394918557042017308335009139349117108526651252903114483115678969136619784013558798883750639607204494257800791702582622805164431972793734264610887103747719244074956465442581350661151087661752140860523932801253456653594663377807604303090317368453493071203130207922422473967436591654441637055226036201396963285481562626050460121084453505058049750959174553941972624329993580050192014046766934446015309597066654624781114379985259487767273573519022713377478654908303647674244344475326916198330829100585924553431803447518692407237128457915219926814322934848991057701026827043248815694819272640470657417188047301380064301416363019326373019599814647009869084637186021370877834906046050785945702324287556259452451539615489953068112045962029179749581261576921588395918136186853052286198723619267332164266037285607250338200132531566076957908575730906945141005207117617178069451204083045642179237950787328791751981491435101064385220481784508549047037215616817142471966661488468294761290245457975575937354022426761456972763949079916460988005002895932149785974127824575624714670446449518398163079703358785907485209028006932324172276132209426740406866452103113259750224614723115449689220297462080423860043851787235660618373699334299285602317118143357265615773349951709074205989269925772213315713606664754731246444389997662748089451111935870820403901360967148836950497250094133976966061744346257671828561651906575670390612891969887363889643224660331834261912361535393832954544531792560213730515598557390089223579157325029817663508531698816798887199648256138505440446722948654468488837280903385040264257805737044235082316575290429937533393714376689545206672373831279650016461100475092544972171037329979853602956824793454739274388679771041518833786940072268803406682732460228057223065696765778577981967797910257225777811426470832495772600622430889256569536617282729783252272812268850303239577967914449674143790018145706891914400534478206737942883828616798112090271054730269116550138387568470289398685858642437049923972807239567667588705505780028692955400464407292464968074399730439124350526552312852870593314146139110464156879169076294155092201921706553700487846799574003399293890098896080590835709550147274421137410833895073117445177056226586219740048278386047181481222194022875269688789532477649141203855622734323232000722269551344504105085355777823559599233987114635048254751223600022825200635081202227441883996252395221662764546533269016702319271896726966893332590794406448324793133069175477604267412974736069217226105440374603930393385093786716746575021373394670712636481375031075795485868860698129413524737837779353631073236230838353653317878205597515132994722119083105175448206887997674230760544386621258693906743231147604973084871805052506240855684905335628120159954338846875939980553977984378243415268296703700445749730882149337019155137636313296630328252647576706289051075379365325444469406597304836979956044535665754803426206762754857201888239825463544350870987185766344672901807723550900241956974529047340269350234133685861852865606788115213843965082869341883880428652777116196881124466931831267095409502534900378132569741309161595076359315495661162617002873913448656000817165876793747938482142792708005913760222394963986088707764166731102045907699911360532316422193218042514484395972514727426725868790483424116843954617445342016280179261897605838328979735089744222443111535031131833520269223839221530875865432225961634934716148379978981368059147661000960503388836858881310163004114067184441402576929141333086153337010331060264701773541436333661242111614022947346579040319439035449393023485439818397883002214274574849763302257825115620326182444016102844798160254451064361297118220434062498520787865479460622395766970891836998602547199792092154188183431943517009973370472252558738612732645927052609446197415759755185446886928269628138006877203631957591832305550808638158276672530720338497137793581344803048011773777725962807368402158931844054356442285095592180600084854840944961781849581632755717504366302599817198031192903089038892663647273843809306422293000776387737623997331190894376230994943962000431812823539501252412136596665846367830325847132915613181458687565426654468652015047989434968123988149267121181670611485405697008088772625302429910140445685952369645611577165410345581410104717914378269082796311414268885580610495097129098281206642994480178539689927187044598344938130937217062634461230009741467858106043238731040962018402695341358950893690562191640128572765054025852617489016246721192626185545634048626085513754272892586936804835932474096443276713147005069684046516994636410517339127698999872324094116968510354004206516117591613283101941130075030779646190259320526755967804770243312609698293189080662875561360290108668054086966918991494828750035284317661810286857074209229596919684417084847891525513630278997782764594824644435614401169436294623143938058073694618558305046550383074264068213416715475023717991028633579991899885677242450731034545509147229518437120168175279613204131532268194288871008277882222414776707827073635659747337619776625411912156950281820547218514423303648049698461831638215985868061559621493241908731770903536993483490689801125739866939886790598795484765615301606996591901771790093302101482932842192638243835119284367603039633959727204137967927168165711010648921830546992506083228540475029293199691516792937167253218051963490938186146556598697377752676387762404437784323805287371112949133662891525788075516401207786184934088507063732195257937836215295453019071257882836422434064676157040805858183738176093843769139068542735805881681882240567407456484140643693805116765421335947854879267170076285902302163867497794715182259363606323106382604054820876447839611128811960731229281266763623873895132308413003869482135180679374891314950335188270569404337637715150938172236391404891548346061063238067372036841955313922369055866329832592028346076981256556539993455090506530185146120185992924909615199179351020708636351459455556030215614612759114381416617669751094698835829832899016702216479520494460262516331057766619898801897849240760977899421790712507922796024421002539638909200568256628866682568427222373244652316440341947527677933847326501555707114519334918541528040606752155638658452649315911046998530258828406117829783191119927506139126288702498183023601081664703903233172044055348580545968076923964645500945359056684718650339662907690906791922672160020393484848708067351667107824201844663600510003106856271261228992925779844809991348059731055294694186586478089799303016549254615969684346179547531764568199973753817949588358292148782133998046517713549122993988104783160207961947837098262137066443473488304006364384141833572543102390031466207921191881408944763065630963772694234706113111832526269439103306571727206111335784548008652384410427620159786743572949444264917263301839353909571513529222188464943974088810246366607253979675747353653269265167241326385596398740149612152610052620226261147077116106780211792051012119396839017510898878370563796379459108682488510872177234902837426288462401112828025807173878000432274615200995083298334610053258435315633404993003122482864412909961409277858820121501789168692588469856514787980889534070211253584393369663530054849405748393217786491228524802964936100782819476022001173249136013837149327473358182991190561568991830238883350506687426014273239559386127925523858464864013447378128863743021137665794252119528696330489905113928232485191120794709402741747250310932985842388687885340151088921649004837036334379850884267182173331101487895641457484516342909113370238526831302020273779910548668155972739188848621233491260124340758828438900802944490672338169510867700836407225194518049646856726133035342666782574655499641625863005203839030816937494924374642001633231997819278179816715741525254013555502363627396870080454440141572974719897344491096888874068127763908079490391328677506769115263601226097408180523317050428997389674206280939948766424917819725139472867416319974198329131154224109167996938454625365222917158194731944054291499092393208003206817597675820739045823131534214293375228989109054138507324207760593283309047254388280151259690980808839483621517870694978772435457137422569495016173315875152901026108565867596566754050179632557862145429845835632979535170501243073718225065811315126610626915346750614295590400648506364263749479312200804792884982177253361196730901710961173533359460683548817471595939878487666813211218704788738311057087295584023979633722536796353541434142398090679316987466484937964084345515261303163209604824805144620080280000865931960798758350620931465287557987346099307184425149858463717082271221424279888330174939208275183947719739027238663786206640938938000062907654510020550496816479224511082237193541221797613423034960621155002539262408477415136948456218633685741971564357861446154999049273065517091703793481952635554615897209892433643668288835360975143438349718192240198409496834312338411628555799694255240741868096254534084509328633217901106595894262306741826802459582007270970086657248723320864611593264303082192907679220938265251016895318899283959563372741903947666038299449848419329714063827402364585786706115775260245506142161714268355471975649627014967170302181146239044246342291204571951494317140924818411847137933461897885489837275694060358387603803020594016875849692446558120486235207091718108593052978917800031951865407877873900402996212130423481388508069603659322667110528599891874702737891838695609489399337691240379278337232993678327826134620434558116340536678655044770379817613598694297540534809131825372721630672366682353710346828018604382301215428373904569645287666252089377468730961697961910478522407762509383799931148341420021234155819225759155743805753966724620704807239349590494093888731798659599661957949988638784299887506480498421088834972263843996713998441082920869874294514183945975601245445418846109532622789724190813820988239282181960989468126041361128020256096521077119691923745717118152250078734798627312812739970473731091294489002344161167000650134773717638550224397281367844968388956648789661379342194845652902095700173998636580278130627200045628715538520502490755950190562321845500023800070604101050660935696258890559596728597683799312648714742830647580340297932914288511553672240830919098363436939860495402541899519102192281834798175617541848167385904417837016747440234664853528698811521887925763291791634602066029422746914301996994550057397240421682714162364185941143842819020341395323069101110497301007069162447435312307753451798721843051886575437486188231792697072915069614784541629185079364268376396121853295768449334882028791443790813677675219929738109738127548827944369773001025363948341564765529898591297957645702902334630728882572778098503735931583861564284601337295754528130556734317794151687221793722149774578813215354324113878251175159818002709464385461578990032521803191928008099033291636929866849500405103641887878595723568909208898061854647498374963668255575371765285304692882523357358326886415778388895198072602160532958857314804269692485159573023648142468360226741882775652785236512404536154741752551633154259499990336595250145209647632473167959065281780576915009970961869558885537199863187929615331653603474910977913677223126334820533198412940517703015679307212304268403707677194511533718326342900510999107058888666937609193402361394102715365845208754877299152942449036805630751367771868948814916916282536891306115401716681274246039762316560447659490550694191472843715738712152920821533487948505236686423379525085814723189158523366986755082611988820157958017330630447330230177073745153935104839181303668619570315049173908624557164443866771279823264962713059729534395529130741138295127613482293834284796998947885782871468300212097194803864252262698324006870277503002335233824133411975612135561334573733404225682940986598442195289873099108390465482873087559222566546044220002893476902668603931188439056357929900856810124013329290163249689315878258492103287650448050566513128815698394505261579902136139437925524829751405910615107361312663896436376422441906586196083082699581588585373559596304533847999328542961634208048672851301251489684649115263101316041993266817834329770004278312646544232437327283627662276133351705414564366252421051520587879991814187767318249356685171316588295212756258203765776229160458142862362208493761018084132158321652894894221214868022684886623676809550704161583356290288942547199435906621773291072958100246751921521042245504499714769885563227249341318200717309065169819016501024807313718007120569567791470536159756998188622160615886748272844517183799021741991959148302251884363500245240244715359668905661627531228913362326614783438534586667691064874519735329413855235698711089171369628180795123018228959325356039717213628459789683210973182640982385004402208819310075719005671204921841867362295354022163325914214469015725918185893053538386259526681476831301868391891781846444827018834983883853740380595544943853492717697391715094434516599779830005034272537695002377671348737506082144985849197317638039783573642549118794516451614957051687100242617258077050598809231747435438443615599984227924741375715015980040284537069805778233256962273410039380179324950096573006420699289695018000561262730055385199451051238094359905120687513465413079541665476447967019241187038533339688246474140383066297169505611517002224531313046266143190362586450826861786877894778799283623058978411304431440114102986874439302772911264424421015772204126339628491859526755801444099612844646729227654805478270197766565157347994505283038828765855452806328684372496130396729497159118523262303787408726502240904937254900482869312088238194625933603519271191239806949453412680971293238800683244052316777638304681180601489349584442771956018533611155918146787143227234046556038822814514787484127490813420474627625251977802455778211188689497378091628276369552376625619283127078672734458166756016417765132207182722306583799054185485391343929152814095380004880504661329771944708270152177118976792999312385162774137132602865067621511212897085657020833556331109976150678905057436796009499309152731539488114423640722028156122450297752870830267576584436511887903246938198312547736774245512805181167428687267026670109465307815034717061650071430812450811616896682299010431036935749225403851116032756266955222787285561330383784707644794621501899045325172053849869712866512321521990514875578140117818730114141012673655197425143091539715815277424314789936303190079854854935607904833625358008548054108210516548810685728034040671597647926182032307098492472125416600070153424820475685544002004423875844856770484313259635638148334329597274782303975910969416236990009672266286590076666062117462300441852129711551165244483386979408814765750038354130610171610453482592527361431643518597154296054396733866087944836971596680950139102116158231735643434498331945989451753150064323347625848529362938979154513044873175912405634365515039897246310574225074827471308663110473785650134219146980433062752866376397206245574354015273549500087274031106426387137960909223264309113849707379372207307372354669484922922420983710481879733318904549815081778230835857773263831861409210100639597954061790890433771057798196921441967800239602863536521886024161003572338462503246045883930233674862987523055341185236438657966396844710323392171828760551362038114456286584028089336078261116684430923644179589107487697319629872522819453086469239556555655607131905043180023629518847587853738308131946796749493020821021568587719126375595421113841737329489979371269119792166282695730437624206236415830492518201919522386266272609705805603193068451683025961165345174150768450780515424478791538966530723246854250627634350912168936927318339217339599299412417512134922894562352942216041429463337996421499884968209262831216095912393321851507838383886531881091974066599237584707044533543146158758495889061842101416492523822563839400720562871586869862474210433493299244322552112669863145209208978134600868898271528964986491641812294383127987250630776095525173486335957848970278090283661118124740273524503834468728378455921165329752928501965354499927289454986207380372275265795496932145695557630064778664441296959686815054302607572826305336331260598188814121114978159123625231653411079476610879867602459694429109698749163309467180224376066702802075769124634585408962556077236238676622907356450901698145233958859107941805749708595181827031684954968334887498896429307715864913183384902966855775099584046920343103397169386655113279558739021326758982821210779897172749460703338520516318409156338466890455271526616238039110874549969336489885371522268030757104092115291828748311861541616147265028856028195435605386648876612422497636354996515671000961488960555584739216159357548182017131328587417120729642304499810051322051350753115964037443938421431218233679371780847095417974080053599550186034212619713007159560073431431673683058462038157894728781515811714945857332217789495147156352865196455933217345240380062659598128629443090620649215250804175833084840779932541512564878440230816585958222239541864402919926527675951280784824154350188720916414430602800080782287010832429742449646742217265255658441948918955616513201800966702244284317045579323137661832172210353141426185980443679033838355775153774399074323815232436701337706389275437509547626458395787627154310673370543044096430527039590207032991608756517038814427645915066585074240220018374925056941224877781181807600837596727133260717107615303135672360108393707002695303096066291432197349419145167841744292141833897468007953081517930846438668089893988998518519225061960486693895745169311592365091261647944345751530567494195708010046594163113026278133991126604241450894117170298134907646564739522790346739972206728831269419860037807421317668072115322562346858460278351283141776701080047612937433437598764397802267530123130370610246665213232140976866199240992601072390269804947838520032630608301154150292487126287747737271283818519433811443575842499259812919409870777488688052765922897326770423772050947388968504162257096857262928162291184953606684802852985290778129558338769483053239934118859994070015717750505067217319795272533691337614033418458929250891495605400043675236284937810116625626059784291587174972655188206066193181090460791707023661695386318816968258808842444030864359653158236006130433071457322413536460046223103474748194208931006234134492396545459154029354364864683957623092703685559986969102613648861702364409333060708789733382587872193561632288997044043480428429799183991420889016490547436628746565473571066634250220230238531823930606591781260495673721402499786257336865157446095727241424873419462036324478422428651501179522318077313890343431236255092272727084466434232099661760691966822908205568708081781048385974755593294015603542336048300853264828942771022167734574551492967261751746930516609451030493990197566321227357488340320333860616562514816460726106084497716256301666537940468109074357911040531539195234842321699402047079574382869595723384891566384173832200803955911938114801758555517041743537385598159887300389631443533593602482330487038493961642386876730874804101761248330896144192657333161608554324079007206689378630513526101722573311747449223511522428391407542290664728120691566959176512242638932374843333773818849433187000632322178652677490572018908560351544588727407796237590400508926490976354736312967801335819145209850679307178914031295993559182857633533041527322578321465710598152925660586896745698393186776511247740053191172142044403498376449367969771290435648710888312876924125416947527852345740500832160333461159711111805564724367184594905858735451753597019913504929275343096593413041403065943384385120843450662264923082140227460311603937409174052840064642939763421866341832996864335039355624541587512372080369110730484636981695707649726468705685602889427154479087877650818226175611765922291183941047050848540377333044089881688924299511986087957072227536294657433324275767777439004153902093695287140420240492391021705859880152476243719885894379920666168058862147395463640225521887815976499293392509839816063576059595090456134224932838008612270860275648839976005714811270251741455915686900488518986638606236376200417098623514168343996936355943491717495457141322705711617232216766445195364282083031292183329781458187044310108216239066666692949268838837926788423691261701995834625241367521114547693443831340477280108490294211096010441252380766665020420227098319318949219719715707429229225258393802212662279366721253460986760571562712913177373337168821007554482593273943599055157310753666783367591950132462628465694037049669023445495676508976606295088368540718713974285124335137706840553472583634013659322998322785437234390933522505924190415563345045236608399310649219903145257616483291030504636926765102279435244725067152901094900728532903984325371639756585076323167858166645258593474818065718268700282317391425482238637465521352760930029238642608289889208961009177488411880205844192575981768324014394441448908294586755669466413025710070384184292800714381528300911380880694668864674367682503483488840862279471057757495902540440134187637594707235770237199574629824432875813189373235948982926144410865461071162421168933322180756802217100570178432488855780324206693805687137932066404714174576981843731647757666005771649423278251706321116884678155401228616735504287286320285425858088555155578444045728332050071560000475023734987210465480142527917044709611939554915078367056292027991538892870297507342282438127036230918753018227426139223848484291536845372708018665624248444329187216017310398130043843196820161644306251465537891915916629853686037054088611770594018216458324759332264061430650479552083730068762383153222388610029335670003865256532565698440070406916531108059992462785334004280519927498505718487621199625069729808533705076746370731709826863955140063477864955492933241560311720658634743635882733988758944759324731473951095131925542859438774489505395298515322662319478142261590204668887785458671915461400797320075977416184700284310859409245722009390334721637482087495066417582156487296877071342265396710543957918875419464576367401960199186011609244533559800078229393273021213585841317292861179290509163279439146272177359772602265733899755308156969464105389313319019918236702898902592977904585177558104173098908463109240842351895616857223454018203621870633458721449162126313972115107390895416855868472379636467546734273227505764338076153979579696401442166411660254829586873716699610086916894004338882939629689524364620160017940492546234465687322420237914821472452262741124650946185139708268634157745582728825018713087774684445667582176773008009360197328399590770027076448213162676473989413208519423230340554361840039664548707104467856992840755564244914388764796896493414383345845776388373847083944665408232679359843994747270883511400863868647455395190803942285881708064113270515673076953700470346415340389856135089150908249517191206997422769372070486878341171472123081907875776025357393653495028556327003161565634791766166982803581718909445045962761246900619897960725452208973975751621848866434572385481929262999616485025422782076977186695990029006238008603839486763033484340929713269910400781872433962310263125582349171355915510784552880119662963972080869501070832615186625297804465037512014022125964119060478849414442825688060243748015192957100635769313275026272359146721159367944176325067845378967971793215876999215001590070070817543302389078659116815900324289051524965428699523226406064943456726021321574547179531214230680763199862897161542657757635767463879480392734303315838403175868608888455518126127037255949065027787536268465363881637714575902883496279205296813249695014983374834932344546780399977498634976989704038633022367233981353413590339917470014994566091505392119237138536718455218169066658623573057025202811229043168682430231256073161352241484568636159696561302939648909245606401661134979514302304818952788414632367908640188046760262831511677931617014510472457147954286166163673475947652133840849834565096068673121087548482791902262223327049826661472230201376202324901266019641548862973057515327790414857372605763621526881668867196740596104464697467501697872921631740869151122737859242555633273865020797749516289160593798758035012195878432358015908881356334984461281416348495221831588727012878048417513581074082113517183286740620820596781024834652174050131460203633018797102125100797418519054056266115664399678841777169869492317072318835731978599019344964593054913729758258939519985399957322566367209520462519859893209995024027658163312013839826096766700636705895778578933039436859111563428301700333962676324851401670299607166925826271703888172158571667100392703179390830539913996249059861071127455135753051475735664471232101958854788847945991268551469603284041627997905044419477841387413534675366562982182507818144318442200773051843028870008372142541452398663752350653437108317434340635981833154384379321015570110527664649641613793500932979545668773041096654125419025734049613421256436295059373174031617218100957670345433395051250681202787766852793095956746356183623573464399525374372842540407434188665121169711890981482182993639539195743947848706325725622964310074403441423500749317870324211969795210171183881805505542993056544100156665012258381410285644232152730809511907712927882502528905583904110425915301829433394068761009076711903130254919416889010231117588292113078356950502036702725669412971683653177253400518223970047212660381244554537761242941552358336775055438868980488256185276687867730223203266829644466596136262580969883894976897821001543381844907600147592884828578943227786088798834411755276802836267114358187271852153255411837898115521061896924196863671126552072754751218598519336259448448972086892473126645124995640765723430383844819858054162143248341789080652374481188816627718222819152791261814350886432208012676643954819390815816993394948680459417970462095465751125945160322464032318636088490383941498081918909582351659014611224726774131980671615836494167371155305755849346624878903801651386695581806719799161729919321404948160607614680015839653730907283019320945210864073078545906852536354366276205136398028366050982605207236932667759347765565488167950299647476348438263423126565810373808250003948039809808643407918537938775810703134379064220363636906594371719425124157081561439074435541294617229486570799520634270422953413456057689295872415481784192583524422772066445323048390799447910076589575998004571891056098680498212188934854531827723941649968088567674003880822148630036632654292351676140740912219512030993088012895419543291195187815635783538265703455875032683547589703202532250356042539249570644538374496235071251914810538591635182802412839847358519544935838651059800184376229303444110340273754801593856850371648800598908802582622394357141021905690500619310768406968637372539142238711405219045609490570891149008832893803251506110195757439681243062778135113227975533839906082156067629059632037343835760707001095704456470586128557779601536596484187506562111971017401449936116607885023539281280196624875011417687796113538106713760678020051308747288144796864684326486787927286147730483720278672854306600219460022840298010236245193583219437589311244486707625168601054731008536464317336237149128393740021296990129680674558770140861751967359834009827663596980521216423723883842517800216386628371120585593631099471156619676427809909885952585896244703433087864778591283653414780943619342237535925357154259934424247655346169573076835006147944086615407203383962960785143043806296937023402013727236471487799405560866876536318506969239076459091487521056520575617037669949718667963271012862420320245648940519422629584793412709400701099576905258921808781344766813048847672373180715296922568316469362326212470787661682639490974656618649045840513742703182426810396589976858560606218675791046808477453930007893801992588599865821180172645214754864576112354598905544264408382274762636009115114843423773591478632968291608086409154740161512882437243455434531173676417682556586904538575079545625518200205450776446629829504527424708807996755786608434267709335858657636694288161377028898715094898094392617108857079596516823368745296030982576602037997081314975475709362866879696155272462028657676849653782066998055750906162590124763884400427776380208631631904142787972164712014604928546866104391750374605085020181595581721935996304267821544075738070417680117176060486907968266740502906806287112165275278086290869426060131414877468283214602786906765174419835694579160275353514290880494329850468978862499491673887010883546991990451929084808532034136646389763639817652381363432387768386540909824401091415227754024071760979144951479225888432507129028012863380155295618696313542332521261646332040180898494323194049097212925564413988598662050945808387323242730835083890465033074959721189133530315878660160498194670168823155539077549337438209121977843085202657963814228355041565374628614885575622313315498302936241399235314435597384575020303225564011532736373775640230345235906668590672674027133988867601468935262816043931197159962928752748201923667238915936625698365987249761732836547540791482978358134442293794908329578695719698259527651222449846582180141975630805510415817955932058291376368112017663393362155770218695977404139883883305681937520688357625875742917702698885667449007821928438767191291290231460385680079288997656853069124833672593126730206299320705105470457851838786433224191335554537125465314270658564933577048091204885516277186665760298675531818746130343931351940996224525032102598909782435296317513681988058027713663480629662694377642716952058923418295692182238002480803017329003890251035295387092189385893551343988485945197101615379186608554418691530688149190930097288406895844267619925744826150555829337170484710120287335781151564691898755229618170622588767427648177303415579859778659667140883996862005038354674322729822015459337809490693934960606035008745179185782703589919996339798710461619731147193903185467462719982853697337669210003906517945845775421313481616037095194233363486719063222320451318941538093112688948735723808349259188147326859600836126239027686264498490989056958214296778767681647837204664982951822466780661241183402359294140742304746744250771635473973038536107134505519877004085229235943397752549655731068193870611936109374565066048159434911003556874717932425389681146214577879013795194362314067534352781309271628390346421100098580261765242144218444560438339389091974238765829470183993015907169250619618086210913298532958657146391766092956432354650593900291837150348746139681524514454442632788737474561772721919131207095171507669091678353159445060592358263427592492726654045624626377231431712722253621792976666099559529715347878368819936694681455609483264750446602043135596496300968085552557501712931960173583188289961679439373591628238859480659114447568335090379628977657776967972169911548835752055140352515537561082295504262067225161705921599394570871048442077793618554673554750785914824628582380802479434220675203966311415141527308731826144095181356480219701943375391781897683135075520912084183409065612909976624228331477177566755093368476032615494467872334131475894261909582392053550475696706466961368055568020052180483348290883814344957324265154462591694675531980892550123161132985221382413590017251792887476472297253570848902672450884498567127988998347885129293006526767129972451380417103038424571377709535668822771268687506428753831751902189035071931911106959250938596513729038653009799858877443591562671407928346747674805282336363165143154000550829506887229010408381820385594645290470568869022006680898303861038912059635697512812504767610368798570128395978325036018664417395847551027028863756355803366555111426252857529517946963504113590720474805767999152709669555995424102385097325711073830814862139903187518153204558691476429021933704328189366260498607622927489039810892983310456222384540289081034063090420415728674605915180408874931601714552006486533754319612424405522725103447648202324796700953872891687533650887449268550827910904348533958135914446244340180125091659590500689018867101760447916469520260142673131013193013859703231769521810527192421552408560905956370191748567128737490122199282563356793348264803384547691669465211863615728761498714023534906758893478082872841357995852310966945359288132528021320744270486044485457975861467900691779586881801141118206868443876997962759303581470529192123001411750437169786246219069547361278134978740763437621838586636781142753263040640973046549273457583642766544664989175961304525219500699521400209089369500339606107381456486080075459380079353337007166970067799913306657139562448652385505665564397792625053394854441372408310717127029656507499067912602639914867358642462570442617965698840482856370688420853102343265436368042822992951162818678159678060437850023983905634743089849474793704837882490149259846832483013719151213254803030450340426223445209676431324341254778392549649615128089294576091345369909166692445304992951546911197509874496236384681398122017896221917756298376800186693463016317449716116784726130314985475678120233630658043430733845046426008284025832383847359722163256082140225759578690439611809774879411293349573099415255456052589035521493391148147722847316282031962531749830834650626293589548079622974621685480656018065754490551656421843713632028331143922238695061615662600848219007745879563814754562689239937665641143804211350119097718934562966895773888555251130053664766353467701329182695885995903365070529750291209416267703579700667396257354726925968121724593263642437531814987363945418957673237608331947314531423921531011181826601458661679620889190545112966958218401133775128505127774123534226514557792361468116467032042738907380308130471805778066044341186748027386104956677691111553252249416905574801743968581077521456914236003972760140991606896917174193299716397358394757092297562109237223279238416660082570916582702095894833346659437723631924980473377747127118098609855534898466365973333137139287054615993056066916478922412805092348752902091721291049054524641064913789825112812272361243430517314775785572928900508547823324347043813807383817967479101896635699493125894088164804271200289647136015137421095139252149163566432667945551245776758978232054692548485805182912035167722442300769633206444521643130518100415843826201228384258363800662192087537600818867464417919316552638281356526069396270990953430105864947808947432331811456597164104507374240867687162223663493507561162492123481934392822142456481059367559961259830321579674232543875879051195570666483387324996643349868531316596638770283414962463807576350184621911406157312294593974205746208589587634146356843516079068446493188829570736274236571341782508262948296818893592922854965954932700221301939177404878226621139970942599805999778402110226132940670290820009896198157507832968522599623917233029222546853349271724403273208199203527281504873288288146942334492191121006067520818095277571438240851969593970182154691205964071162741105497374738259868188600018120579756094417702705522246821655493891217002632559368464154941562787645482912843943073061724333865942357203090088422239836677854975365655592372620306619943490089440890072980178461809127740683465659069388550605316514785445125358148373377844413072933811852394734718690685809172355050839828796944175102791393505439120472236066331619500318159316594258337744313877984557543980942762858782979296680005914471521526082931758410808828774122007263745544359881936717301291779827158976251607054063725036015260722292694326951215732750944229124071392047548571169446640828083039119214127553735051630971650425847346938918115743495088671719549775513979037433240311155161887970322065456561756847070635903692505469907449559816709449470981133759280446565527642006710279191390561495690638746638683841673196454006719755565926369893188001547327909496804871326847603589493753111518281529121278057132352051086421919889776415542929817083482340150082220177989269611965542417835164832242329464004566904421102782788167844287055920109777237490321970182031737787608376065902167437852270135393889811505981293482915161929032973831691335492310448501470143470418103879112270792856170360707594831018284169405616241247316071862521758097253093831208924001699660413841527794030092899877827389839692530733058910612010716825612993123941586739722723300797206417194075896023030417859057474528029457919474142509409498213513859837276794695137314924295533482114524138696508232703805411023932930750267241663592968490592654598927840499828182770111883027099223508497143783463373613863363593259534923129124816036525600373709946283027819510982569860583259775179032433228249949524391469869514521082264870975960979728903576285273442656665339423655904911879729043572448301570549292447129144172076826392101421285289247996879267817345183550401256097810215201320541563439651122289870304026783757052477721757193211051013547504323375429394957861296085719027820627010865437759022057462579484700847798148800762692836268804420711203723225689197183997543422726142254040208462386009102560791121779728774492587476759340737275203788612273559576654726320767168323556417395414363900910908828671258489080617067276011074508480729808199577795134220367667115240029509028845223505801150440199335127975405098039696834374861543224399894281920865978290556483620947653776036921904361970365919195592961988501275645094101705386821643301064249833687707198193090243520753772033591000809939560057015744721054563001704244542755450972845791578942177156320002736087074651926186331210766108131884428621237736539720208025634646005294189642603054457878175116290843207094948930524699711358267105465006364060753500508301513031827418510262520469345233996995283554490640298733762510646782677121723687200785173151377005917240559785165310024551712443665133075089968410629929256466813411413164917495992295231131091622841727171939205939850901844741088240528691493964499658363998657894123463936759539156610119929695752989171129997499108997701536545137487542286409906865531286507570821738471644719321912801813117247329671564614662243876247332508146876647983915504535855544086252284503435260588863751521463930659930562817679399496463898973556652891330339762859009968575996873524417279237414927224466486179672372043764363376209771827668756984038026402591938288312276775233843069785805939791352246530463076974713030143043321929638501378874700261608313933086533509658954880700185889882447389004478551362186557722293157569658185783942935204134646840349537725142430397161351382409989764498341152310793882191453117507740530423181140981988683343655299908393665872012334278310269101405329051218351899262199167122115582326500343054249628223578261851870599541511044022825694805358908087041407041115743484259635212645787015645641724650184112866112566558161452433298963342703508120828412580850474906924074705631870075706052299622828072909078596255628344136474213082735829826139667208982465798958609570545466922627401159823426670774362617298805563022521131189180519999974262071268838536983034385904459135258997842437042616637185364725401299304215287008613888964391126815119049732624628081987291154669447848901036496968706858071740860502124205243670404911346362185431900557780547514100154625077105480214328029848051524996506227349846467043217308871855895744856727779068895253546453968075201030815820943310958792172442814731298446582890081909028894359767955916317786076462933028569730741613053811866228640341378235421094282057190691523991804831882550125658475769053230307370038823404168429792708169290264840712256740145814956816687245787391385276535820888784491199249826039149659208857700784185835051709887127575056451018124157515984512760430852699694344463813764174298911813130333986504881460308044582891265083481661804978997630677812133523122801078645151332137199467609877255923881976558187918194626668872294254643119778296670925147882055845503640014145364084249175116670384287808078914976219717295762184699330731157182729875864998981101394731512973916801978961392255232781518229761022875764220713605019328413052697299090896703722068439468297353611451268669434100726893376180412246889075254179887676107049204419876595938594213771315400722309247961356468490460988239653835054918146633711022125612397703153930078751008752928487101874140875533020566159822418576367916556814621438263851514137948526501540305177466605542432963485656147985425524391851795613496160969816672890448010805228733881427346756837833173373085273802559629884296374733480100490051053973036398717385178138416558714887832953434947668118546590220189550691479716363624292382704567322633777265816654054500767302969128264170333772297219528425341596786142429195650823320862621299374032846336791241011672263607108206985393317437683065227849190291656042405952940190538305359211701974816051166684202702416334912261603883393982733079540645108930662496520484368314727226811954724200705715779664224356936302281803996473724023367894614015266305013019475008008637045856279517807026623904985912835888992520832597358323960910202419443607219351692704507381812772048040684558914807743205543110230614695508485322236306202372931050432404971222307799808481428009127723517466207761317202332456866556295624186339826880992328815749279178558562389650447515587908822152136587206215331713535066525268607755389298362507220202633417960021082286723288819399932673437938864081746306434036729768996362869638542292634119463621091572970586963386893305000915066083715890141587519317490665762426938377980640035127725775941347171450696870885713966932757461890956854181729564052521600455241336136316787025008084812445352418875621356210202199160162131687621099104547367299741055272539705486060738875392184114089890892342908620717025379481347510833744586296180553174890995953033330277907484027788230833533752521332120576701686202412619275478376286448170954629694408712328678942930186865351208711502875346172327150498149785002936777671570585332534098043447679547335208552033705821312928383919427259445516904089179641807200116898816505234320829487071085894565494471933544905054567697079000256417105680881457533425095122666104184350163500460796957763984689637657682930588915864156087695639072627446535985449429593811183747854737074090040070335698137104529611189302461716318160219365620493298602225243921500894262732463806827658095006162491163360307230574568271096980970195064795835772217897151667050563014209124520602780857287965054789000774623442966980601265808458808973319649872300378449059956120158860080522077873229636413333281790083637588452429771995649574402056546492947815311068593258169285288128353246838426052799586202121156243896977624558078270183071286047630759148218684942637177054041249491445568810140642249417671233480543833789023949453215134059118675275272078708809846809439750916926282680259429517404578540277244003042857352730686485062378901887155002926177918843101931183632225625480258248327119726537254312199687474805149638639714662849931955267978601517467749110006817965049907029629724731520012431634613480507076586535538826236408725467720333891000177691926223743361226580569914070575738321170840136738444376143345769263628386037571839133338363916726281572585345297934749463467051948528135517444635833773423332914872095687325045976728122021196413312206051492154220737642883135168670749723264994636841491243172717898981218426850683385252770385751309870524007444247374535144195783670492459425398113927560402925031984236084502131927411424120596448392072926314625108201395812629843821503681134683144026276072665658342426563593747563261104233323280518434539181668919619890294192154164907312254941617189136049245629120682612260726198466591190471128309910463175663130664215105607709137763276247250769559628628264261146362364257749558779794563875627841724467322798662481445370881462414189212687031814161333641855145500702161753017379456094051730678956915370418004352277587433741337900639913579317964854098278236622649491752106716406373017595426895374787462068919899769200156976935263091331870841730740551852142613200040374793391064990253099453781168556637479825969088471406716508092466964503884308865177083817982075841975842467784808925872015592353017487489532630307355507082292123356847298737754870063477678838350491060724938684460516183175011483142579780346334778254257131267939377917509188578836193420873961572365683410284501252338243537050229206200700350234216759107838095873035933895902511554213282627552802823707297631135055612438036065331750309230271477055707011812595246222406188859066865845233822597616338211628119758336112895072168719852244089354928340118377579033855768854938468813263046662460961812844511941000612215728794064400739829622013633678916601644600706930358797805330612366673753499716953628647904907778943864468626061600734811702774426872644641403438948577398885951742950112343679798213682753052231816641476852783239592162852904364049684711346006938166024413581287580418968055343607182837564391058240306882409961140247507019141683039106983732251275782211685765033622275581489127203149237295030495720576483704547408457839097560556702700347318074769858430886792391637036240459867138348819796087984638929478016707268451672744923776271304426755195718076791567663255427014043283329150337487015064417489089562666331821395219945731440925379400159831357388050333875532858711910413350476545633531103431774453944977468585191333051887382814717829681611684815352285145583178276709015678564196371750373233156585558727960234363816403660612583007180692905631489914321795516557208219740501314196975833947248492303589578995550759410881108097178582339636927968598186584017834531323859499510141056875682728864551634846997380995600643982300632538750929300953936202674756041110567072671593896987501882300318328535101589768383578688712677893545589181604333360182356563198874667406604184339143031111971519300494323662459185483966014070269989814966824774337875770063965318964579165660547068997946630516607235339309105135592784453525732461518104161936054070101563422040670676375979834528965821708294319962596497064342726484369514476798466940478504430217155828098822618723989735420919520915114451602290433776678703742256705128111940055098372177299249888475971655367442682425800202144950970949064116079636808087370640379516583762952312476738590642684057151812187422519579543426300187503932288278549120730587517522126082881018025695907665272902980881076885520683509509781319459788485500422535659784856199715788920048976329639030626213045612124817400723111800057236120263075996930252779482699884078323823145919067385800284604979965067852358699791580756047343065463538639148156909137468580020783812483730841432514556693803120424596897398694033429081286537581636608663235032558337384853865724379416016652868269413756632055421766082981683565830582893746264076000478987962670131234002570238564489098651329574580785659857854587146860094487855944181479394010633862646112118523719241238633215893291541502004084010947112976054892769186694870849604612295425785771963595096371418199577636831246255983397233040201523031782028022131536415512263617471596015797677528910563063864792149871079518027338881824303000956671401826466547660926330233304093501606377057428516290257062886632183204687179505624758738720978693877458376079059925851069239152363483617381448262584551298468032641871603378086894546628060823744649977052856211275704881391610207991776401477189717529874508153197847307864777744753935393637375650665154495006771316426060872738720222083575286053495148088752526502625561603715051752320911130862545147330598302117157425163166988104438733193145825649730959471162244129122011369412469348323923276421971902342602829809129708053452189086096205883405600910301407073678733438948057599668641779312015879828856678709310046876723455953907552459265371744112375986765655494821977325355438056837743485978084546400896011875895499508377392210483664848460392816277741302513592624967090769907022863633198660275345496862630388359431641932927407746123540379565164010997976797844980174039586147750376034586877346646539514420728401643354479391325096721515614625794993101699510307287801203343597385747629232446332884064751512466469855685337386999055701705493756557642960469461183231854323766303670691307727936460156487998012008511299575964419504416514490934287416765042950587310737952001661122712283053483793369273943147498364665297206631995704876182067012874198143525430468918470465888280485940895092801710864378902692073123641254800214727237249199003987795695719756896146572518166204879374962374148877488484829223290054369583401345553562807686992028070126171639303114124230754115194696130520731138543881387607196034815381396964966458122511159966934171066811034656668212162790513815484427652073710432639704907911491120304701011190001743339040075469627261651800095110278288625503583021397054692438808623040675919759978745839752084039630958575921332817093189097804759835460494262047819064844414528851730627914171494148305579432550622339608634431593193968217494605864892973775964203268376827217489662313773548408326658670938434935215325873149378120251908329708204173573221335623929783460496631662383429593079639368133279125463396353879818556146318107244212188758841900109028313138662824594084991767811236462122955943045009018254755959945227064536824230560037622786354032878605566915271459968184291372157859199154137087398439921367716252885257124718451003758993235430393979082455569421805239614410380280081945652863776004449133597847774131825099160638766713115951854116530974040991944377970785146744516370378524168120980775250763444192083205842813372924779420259495384060267122149256694880629528603463142901090644962274829943265876550970681981851803117524182346952308893276201058138646201509132418187643596265288270065516092736936548540591943232541274329894953004492277477931040788750151425361636413313708753223862498136575954338907266712743598610105048751496515262928819406916825600488166536374534019992355202942853800056915366239083587507622397827634978391100670092855888639635214710894822106355141303421194922143630973556065680220244630582961027462810167123439648646207298392693040627459559567700319610637748915160661807353390639216171640595236961417029342345474735051447796808842137196896797158245876238053797826710326780056635205684221995586019251181656260963854454230874208701324311236765640320291706574819642094413605076796029426656859233485563523688189869200332319839982747262210595362468493430393131636642575272635263695385819830685282071512708444569373859318392115547634406704745416616616172168930242959083102705168113873957964405688424779504022407917963651280618371161193322992534778060820810192311530527764746551121849454003194874208739840255316834895669527040173927630814401875467904251518690052793686902319392860492605331480672898978971794907217674858765259374758021292956703839127433202989412897045777867676090608153980613781056309722504795208025661399536082923981748330810394396616862209352249208162798650586108174696111413014151297839076878273948248292701931128555438949115533948876479023117952563782066921729827935299954854785412984346987408128942669032719207048656643474339890475421278109428251636163267236034619110733548816021147651543740638060962711576064567942399324883579856465930111575596124734697756623223620261863142526313834385176379961657470829194277329217896970280678150358312094764518210505934316586938048855863941099590328546011993353007288295483574017504244576798364980023136695994634123109441814078212560605827955101673370581052317797395889244751795333286450384253456436928708786843174991858404852129355657554100369012155510702673781130809584809261596284386356489933616149501519310813050479414227117891599424499311557867285699613685063327697014277481885965023573955445688529035368302635772573602319848771310249493524174917546887849712717441180367189728509499976141665722063310528315592466138058439239174712489093525355604040264636406085664475170345751226689197515803174940667747237291588714295253774837290200780853063717927507529687417324389379632225570382680668230831043423715888463724747523973971953621645858712575407678915463176715520161848857335071403063644956029703317582820830301710146286175638995757133336986757772109295636684614660227750547154157830792211400145294729294811120348790774609173610973225285396304940766213157514928980698659951066217914268911449774041495895777978554421569265337392936356946287849323040335485981435038145028746216612046274129453431562553035774662273411569231229733328652708319149050529050187389400500152605455739566738911560819599446584521311932824123759094048023346974172809770296424732047399370988757036734184391479175257234480962601932623521185500659417432157893125370512681072128851501272584859936034710494102697562930803304629779248544938122036839053646284921933365329787504154557282790815550818109889603887458765435564048542520149695254523067178036574512425828400991263179535543913712420600194489853528616096445484356149490505615167813822448452427606898993339820783736374470340359086579658290921899704376364781003460364309144178600950614548095672517287689538128192211958189706261542332486311184653398227849715471603816929476974302441166504416777829620479290725457138161962975930259003273795801530805263406729713141957235669917694778100561661995117623484391077060721832030139275083274053679792012748673450309786371378575854901046091264158941525113010618591697600155260546981746051992531134599294220171313795871212110019351379792733271587388916458080042064668376572085114401360351358184438254969483891808719837691552290991774690333976653082779818489596010650022057107549806869871759377357797253279374780462814409732274007448420060701539314280398029574653105290261222950953443386632925536671872524341499357300347674551991840237828939083929698704234027377280740662413479194295435575008540002141744416616243097348925596581609054884920013520530139835047730208128929697064118698442340538717710490156241391323425416915705963819991721029602946507482207892224159521494695889861175347860461694391590300648693252326275680066756906774108019880972092924465279291408434547370438628175403561655217711732633911498580452233567244898321255648447981392707329260193021167853501896020293673503198881701102144627367291584863993578725330950869272810683632183467858177579517797653449226264304502027353416752612152771341010031032373519424072616393598906210790312940455033622480649979640303029708212192645534141069239776526990146458232521926617832317835704025213867056416416540070102698335109514884875362647957906711300508809795911624601707719969143956487300152922161945056393769287423832902355717942285648653363639258242794901422704054147497778822795344137034837533669207618115435024710592992742561216601230507605560684609437896370268704274917794343636981272250801030070920755340404773382868387383174597290163547725643751726777083592441539295224959896439750247291095800564809621151414805901491889017131508553326399263073243499341521748813168097811298209979858136836061854439010919035666581773000472733344490278532651020758486811486221363053390852540658735425553524456157625209072325565804985361574281124893126381329977238150256777166615861385711293014866957536422615081167480282950264534993219655737802035953485188742885896334384022902158262905957009980993463326151309618001446950556527852406940422237744153906560303618303049329191853347421609360923108176397968169032434154348315569589702261323950669011825878127799415491453332760445492145661535471714314600087184379382113472945238668634877569036091692675347065098563613424595495696237406432161171235851119661475872345811354632976320597678711056219757480432738100472963545759475282570487292202752802038035106373500786819604216612511174515116450508992335207549947267478828636589992437032574477783324245637405671959444623097052627842672833714288028866128670373088828685329785538149374133828162391846939586364899223704723543277838552677690824663164594479232342881753641532932151995730237846694403975298702685249968798623983968460373035398423342110587988951431658114653818493442673303311609975926006798902057615114720486736891533310597435954036249713201384385875786891335916296906620986998472034881236595712509324178187657230371603540436024294372755368449127186197848646305436492214382050790991937315372690549656336735864742609365528987772512383499633510318437635147299996307561055593430229350525555930907091164462867012945628065404843636498577566502694017467705834519630094187115738316121854397908020742751696424005998021394802762232361384427533301576176892241330018185545517761170456727245767734938526105518379771057176165296557518815343149788837509692254345738815245546979234862032539389151567990562188750261823665111260086768547675360563372419512655719687447820116047370294387694477828817841502561434799592999218321734078239836701382867800805527221042582975858147383860080855992496457175879468753970024101994571387343790813341984742675063955996432157613860271889590633797755897348022629125704387007480582245927868776270451900883270218180835358116773438517002541692020075785870043665708661354195842307680263983141446746994852150616684921228304558750962213024926226181331151123178482180197343068522023774822303647619593714716969288736709655018135451125566094687040959709453175576215450943201357562285898645268655108036254402956981183451160127519543156758810152098989610251779298290354106283804008061322383989420275419384786903719138685693020870339700342226512007474429768485540458393125020863993287925448347061775794983170494764084180954985151301401299196102787872977103758697839954031662609742749226062976502656040579648620737916944734756148769454574021559566093495248559226586269120612746807941585442269038732057647371753783289563797573156774956571789011003702360526894714489133817376887729045820482773747980375338564536889383457658619699829935039560244662131212036877566678369030381578377930241943917832407127880608685324579116681211103689012506211711835070304454244153853861560014464179763855877877621542233715751958035654586644308404715248874930309585865878757430548727373812187198403708168989224178988600482001889398077001220552738367414054185814198613899546241534652100092589124357518224651382098797556898066421625998548540462274628526541692368594001403366315877934410788048834074503492069636702240795259000377749916752339672005731763603712137673941367209470404868010882955771611250269026124702657050217949349296700589856863943656118502862802865846114393312445852237122183832794595499905778113120956887545568207000548496688787615062217572751108636046935354437569817038039091139758040556316968373347677859940462942400020501570362356467242939313372667574087815502483862470795250442366914950577314105123911635454959557915621292120186888811759117137916430590063694967084064493592156589868130799852231978784456913355256986322593139058267355822111012339128991609563118596760546242954102642964653027380864967876524953337928071759934690089452365537223666692524600128147317821353131431200254307315921564421252349750840660237391488899601057155390400774482345795842201186794151620888013391866145967398879371082341875147006041878968395422195569922883702956022333056629204540976588371458959228091521870539370382846892546231196874886533673194781756243541057399595265310732876278768115942555123823964680445872314123866428413791559912527529317421954916470758186919235582892565487188102168231902734195819667956588590042667159368535049578206047671878340997590875157977630877941111340248596084967705601313803038808257474983697891248766671514156215973056978377145983751444456861054326235800000166803958688138701272787889337916393953429701174496077282704628146952825576227337480151849415696886694577957392162498305202347574378771591791380616978922758673990058808550634377144825196701246128391961950341515339617939967354297719327946324593319546603516213889005092714608855393117520794249024806078989298567384074654594375470479464006778326943901628561167841938399461668058925252773077813173236403300388992098821751067419362694951624649344308914635661929629087602507291536836923088169143086347183747835306376945721237981788717323983961276087601729717875440417939974520568272133858804279588360927155902784596674253177162694087558829470904064889809018043657392145387682630586573531110196547302565658312998067123953983900820675233445906848163146643114611789883279222159382076093979607697757224974032224165240177606142371983676059566563330487514192108832623898102582624895860065288757606124696215847454178271301796548409382583400505680609346460482329803818127311530347772562204995568125641672047036607834905920933283971217726772803210733143213636039270911730655537027033995940081150424434268828703185641522023122745198851502467882030137889364186658788941648752554998484770340848834421279034039050767300823713752096540096881930016477924022891638694595187410775992410022819678221300785357074562338344423649230229765811449900728020121629620708915795980443872184754776219675719672339981539228822700784933625875003317249345331465464301567396184064166198807658989921522090033472735225987503662859877065325026600558503209767407909858284535609652039831584617585631427950804274099630487748431627467541925614149580827987449379108916300914928613423028461142458530712793180727441711357236432892217358758632147014295591812482742566339353862201008451713666878053093093870703703309013915538004443443851459131273403989502489710037144328511895866289451053158032506341837833776101981338297934618664498154302382389250154732903636753078712540449440241384674029472848426564811340094082845270399004285390251189104276665014922465576888472385837886930478862768532274184295025346555510290041009600836778605109402699368697486720508617995690405722298291182873086171866773331603222385019216370724065555560352155497597751683899548206118752096296291592166498630138703524874470028665441217406314543331071978904589483530010930452569437384600160044637504778662501531439782963873261223405195438939373898009430906280276344832359709546695211285975978279766520287597709855778790347218376578666813933166669248473841662535346445857641665016291275544522654071089369610635897396638289044402674585730608713301396045556123044573742709528613980570802411158274866273844508585101612319555753424688636132992262509314423986254856971056422100020365567135865822944475305364319162589098306276776582525530664876516583313537654952510332682180755660473119290771280611488546790103965910785261713964097896674466087886995771658414869347558542672317270828852590779886622276455581081894309979723157388206821355916674205603542480224449898878433465939170086704662879201699557204931786786697871188872388759507417689420976723994010281536852483707295145312105071748498846135425840650084471597942251033430217234851489331786341368250736627572592150874479331833318047920151102613749518670670596882552638733890959228147198688268144186962983628765520295992080389790315831448030307967913126878855952248877107728555771567373052177097177940609871926249859813763933228617550809193384918484660187260159839226877940419289078181797292612999477946490141970465034176321612203462338741979274731244876589531024868467908450801555590696685631888863476736457051929447126677257123103201454089515473358978586862380274289612190611094788807128172095042070319909239524008760159186092974036534918913172620885539469181770062652354695374311759155653975994631556947720924047412823498953079049698252507062924793339198498216161021168607600871540225862686895068394136951839182396196383726461633799067646888422428283363067627484739918849755263853509919802770102617029794560247335833959892464405055176588897750439914003242640276977617269404906581610394657528113402455995784054571224038868979467904633245966054522892759665233331043434359790394500715569472297415156019051123476852924403608698507278685802748043356814353421663341646015876909388976913322188846049716732395163433124875915781757824909834517319639578107886822595556843077547252609622415977598396606677506355446194859075820520863108614483516024687284146711087075666170961940724301343793685233100754488496474651150472311259898155456933078979868293448781175825527229834422250795394588325292583532829782477076655338192844255699904886875968483385068005621264773682643882910092015106902060988267214407186849129272235389742604090609154029068477935503716471742921537377558658740299626469359149617682598740667768889047426335992179041912743188993468656538069978746347720467996832595129377181381677286796238964903936506817637744859319071920007736763793563820241810977042718943163940573844284642204912446181987998015392469821478867148715586255569254383588219561236601337053668048931015853932569253719672437587164399450336702675367519808386902065404220823236294045876437834554712434972047421445384268068624591240599819857536180702607347435792172685146315432005789509006786672590194180232260765153151933764607693826874502117758763375785441959695737615224839161284450240274056923451812295670906494519206473167436272772871348111570985218743820608567385530140554679316866678304478729656878040486395509189594880051540999010879797643831670518913855367449835945539557814129809547929980989324471435063488845189655425176847200199912605071970186452196919607497891624843297412589928574785347323005061967223686694556270606215884406479294731445411084828445700099937710616725448487837284230491340371681432674125517786531614359829178957101916929791731389354501521020058610246492160942417235586276988544928559071763151816030707335303490150363737285235514130172961446939002376983317462335773939844343343917142164324246170154331485071202330034362725251538129602788151650269479247451375851414038658342038337973587819878728261058993396965181775313909018711806927051860336246936781539876485595943485521515157678976906308577510852748960365885057746664782063695690647430869700465002220246015915474065139056339790232259312066586661971788733433229042885510982050029633574053834896965716389342172035211182446510611817620373139503551182116251400468437383288378161100687585386897458317803995613525386699176322782381235965957377376308486909034732102141564988093086398436426633045733612597780515358124509426832749421505959308779430969511439888576187836233557119662924622913821892398872516070900464209555402712757419458235914846140497966396347090857504860513955860334055814374880579200315266174913879028161926762485475289606730045187284968664087177547743779987401775167863730719925856440663154941252929081849237645489209871405152839473031213934452216903728918102526014867174679792058788091450169458839590813560551653934822971055222418502888587084870252459994531741256783274347933424595028458256808823808040108734682346529053500168836422375504373627424051099759608123075793120159021323267617390131676275417931056508092726895636577049478045546077003301125778581631849897846081486855058550353974336251159306636970574823189166287944493800361515150159136447935034308187161910071707273288824832180479123976956944856943570637818295169015000962570918581120616911232116342014509050052985198606965371489696725784010970215223599159444395793219888155049211641619073848899823755503203822097631384569274445047109538182838695876658911664746879140503524430785664151388730090578735071913453154438165277073867033773642548587661948189521916572191981149388775314555555959451047864853005331326671541993381977215116550300019841954953858868385538259642280716124182584468552663926640607227381660946854134200062206514033540392587531759363992170672377064541632917434118621523812359004996718258884721611387249666064564817811720681187631808550549470234731505249576560749186554033258069828562194622766783731805491028011255231350470808385535235521653490417034530682688607119429244205657654417758969320489361302015468441444883633756675117768792322831090774911936085572583311609037950727287307770574825997590398933240540788585954428231692877058811984853960786263008565862369335439544100774743564350872626566464332304196556495778949065463419133113773907535365271248913544490250768819804511696833811568412435890791766339224327861016979674228088130273581206669649743122652077134238872447231002909234548759036456783737246306766491421694776381860267544532007935734598179525854156316808474216894913056104290927495264125429446429801999718154302259228973890651873115676974145660464961498004103587975915441719248191298757220426983236276739220549458576288443060671382465959378792908555046270030037086571498492873492211614860445379357759614827734347418457886598141389638359458265055834140845153893783455373975232015528113426761787007112599985329827484339653624582877893287946271653817039460414138638429660025327607111043266504771925396643756579853216580753380221626294894337086727353349815625204867206281473955100007635982091132487816608245328942999770467675658165032571381852787732347345064951602656303120917078024608373785583930954370950598474846080398107852705114243411960448839690593874516637092923157396700931817496487334256136696975129565851860118446225944807988280247674585897185379833261220048077880930133833132200867213177061841092172160843885905969476646670330786892574252401501420451111961262504195376150428909386403369585900419184074879518327804168237523644178089303531167029105833486697844469304439527728129255359991544973701136176586368958412832400930079977255403140387068750558371612803301423728418785583857472967725135535187605241118872634159990968637958981256362090087498163755890774573372221679161707174611564415782014657889872679551599892826897815535183431476967648765349852402345731588892449724238263507272865057227816136237770277376857143051137321054236189491500803281991649486763703117487197958281945256770361703519330535368285900432767148223842957639814834159970376164230151185129730138744031614671456828919438973632101295571522594917259854385436829660655218278016090433703628521266133321065461583000868276707759680457169585229225626885158032170236977186263893686971083436612235672465743436385345947581608437480724044747998776055062539972128086325636110339603436583518927495104303758680226898434246460438910854230608679661515837015619729251514177449401302296673395536713579899982307560997794378457231645805462023785198746259048208628563321162845957022304991619154574478521674051093519415590688251470587396131604080731805214464243785524332827801894671777125328773597797606931510288312278833722137126381162067933212461963339482997210631253673431799733870800025897478652283772173478934570788436589469074308013871357361105612870658417046014543878605875410653010753516631011848416479268399177216338324629494342204099290411434622535993194940932817278451067521280296038619259627978097966034907166706751619509979837170878659090451776979175757995536225625354863596740797526547533286482642100336726228678976964596216967366267288467195433436788854875512439378455404106318532004359260284984244267569191130025513798070842589965048678579728010080536927823732337796369943209457967275575760597299172064508670958196914787489238101247717661613624594315386100019896341408476980215586274269363605623746480010628810828412325862433838589632413083503743623064409427339367739645166190643644527792646383511302678332638523943053622536403382001394955357114371756266055455859926843090945227714227651020702029784595049509995788176321421577216637970382967069964078589341347825482715707626584943009299121981607047388058534541174024720817005125774708404152245389210265869880953382367907253334747155763735243633176009727172318818853219506491077312345132826353720284155547435007793569761128572762446951296197451644511128548818141516580928597059590062712207393299867241715125008877933967032283976298988882682296566091752211781383914506538965017972132254891455749955254262034028861482041912078831947349011995671053324441625252882404044813155850179262267498633303222723172951264236802102072389348866607669604166722467031025232553926924927435462590171044455263197449958680674114436147216662432430053871561768550413071173879219064200920050541529799262118439602688397108171307098241541368395260793733874967300837347731284040208315184985524191278871875154929956024453995593684502133600527448578003190071345470281123675813792279102955673607447290940458544629686358045328877861857388078232696534487607255837409421510311610963290707731222982220332881636305571417819392349224280064845740093376353189863773436714556526984351042583114808572886844845022446761875462138001796997436543568445496653553006294672115897446217069069925382792196717833224368273448444720453342599444570518117628225736915983647936996640217489322337835490418949114094805214584839182979151733554177599790088407666468389613494936138064726694701604584178964023385026202382340900302377546002797532414759689265358125506066569956113933135267215647919844445284335312409497113137837034950299863276026570422410031366858264070153620637627108977660881294442986285331552053269721722129799886130455432138665598866231338974781387512983700600044411070627743149606337405543902272156176289032602869857103043619826493490317935458841559287899110517802430119500449397357860612488953161949526125900656017056511375202501128744207163299908891613359236412728182986422000909306869659858500268107530279188723606664577095920677613350302869740375706384604007625837422630460609800583403060586947274637765317920228480726303970346981312054026306213642108903337923071783429002348561190681754501594431430533053185012883679990533850208874263598699634437198716945933557198723601785618172040343310588791247224470816057793842799042266885895538359310568611689191039137718363723321941855610781212925517739850015551729260756650974708867006658778422104997259773102982060660126157017379359066421365007618872295271353359555269122023966277207980652163018074588426296838208820549045028424395906373612446908131302224173580382681441095988465514842334900045875998899977270109674246327418721683397086962832682638260741369036798253410564526485793005112704117486092235924691620285955735526464118278976014390910939592108378820145735426828621645478805363284921819550167151385288003365622606530464847255123379649651793168479812959452778692909803543290037264138593026458027593818508216573294732500818880163519069604368739748057584415155993323043822908747428451152650269521477213725589038503481079688007208381995935121218386132657760106428619511655932426501911209460441557902518480872286704249983997809748278319631317551426344977599231126969605623359301107892283472056665155671825332188183171878361271318485109770410117579629530011914808155349620757303815276287356755784407041908889458918333309602321028644926565844120535436994799447502742458379111888273420723294916296731984622246719815127948736137530827973784864288457100998522753555096212999682294190117493787987514260725001325879030046392209545130413856615052834026550952823442995036583247233873798123054544867454986253887752560293134132214254729494487959886663809149805885791560787690880938211288191336377923707313342196915781822169135898111481290125827308494497363242786530264994164061797298514152397017828072505755360711155236225450794001607264647004151728120042622603434960500652538300156810867260790870301709580647221811811054205623811562065238922405596794174955793345091708247553266909427199978772345559989349021682490978727015021243287865947079975904860480908721894407850000093284345589335776637944499680222698333101107803692116800784382616775161755659298721970335847380458720716796568608671804586402115279177467684097979559685349446872904846551782432650584089214551123182723889841370263086368940856403693863828681493389646597487495034703789044380836123693476221122644641114419538574741227012210524403885040095675863212656482247919972037671564287157682495010124751061333515282302352722757596159113852443822849016740237708637605723099802035936236957425366449525766630059865412876248252724477277475029890016136905151338656993250690807628440601764096819882250047122622114183229619521941295555202789012462185010085513994352893241950931435278896413146550631904089456954857663073565802641427276568746943729175178821479023161709881276068866190571482098510172644278270781891223460279066948433385459362452128485188978397025646627760907610150240371607665261442063636510327350576056919671773878369342830122689004872239555592409702987906673531006769441093325724633975342364589729674769571872652570032642608533577672176682985188210064144243559600117820633154683057851519893777760963826637579129955776306608725706159199187863849325336247318171275110636741291275605889575542114779910555814531011718101119690817695380779667713166604971556810649535133719928633839362498016935733867740340127983725585089887757992479135001988355372601460762351814724212949363242012571590693515069024047028236829381396410150526731651675641487650174633142923665445009411238677044904828746520604883018644201075150806804975707512203938632989835479435463541456037084621133859049316712982065006153205324583808953265799156804147159122467914681323738285006230840754229477564548007722539248921438502714342845556372611672338448688497376310970774470840710844661781284265594942655448144683784787296990142002488992603885396486504258193813664828014969937730255484284808779034199596388398696890354573558943599347925863625988646748426500053034975509634766960856703672953878860770760226257908992202179480454174925324462294823536234888262611232379855246168883262921888351624809153427145775441131523260703477335190040073149525124028695328026631818325898582232672700496396061506790496877016345050563701831178259546464180855386558933891148174510206697908076964670163590982729359023360863960274890594294059483348114614244995225171701806207816360059447540982236610988188648794385796222429267486449817838687052285040415363322479505078084169803924019995124296451023358226626669242332209796906269911135690649592015938072599871688082134870937278909631244721735095564274490633377133175236459758017503489780476416568814394910598223688856509896193656208816249307054645012054199495221586193913141034494176941074432356824040555242192726212368618591165167144006503589959444866484392558107271772610105325034493069691326101999121446056770133687043142937126605934370573490598068779140585633355138450588674793680768199632925493348566061265692792628365487082369600240297308051503193138485617220905061306213155872859358873955736429412671226940076071076375048221327050025530225449196606828866264843132357265090636453993086639185195588715067670545373248811974305442063779593656104251502283714469803921170331064539753952224077800339565472225159652157820390122037822120253094335995779623780926534612750227556323754899728774600710125219339380649526307600893217789643102079753617688251150323431195891037523973098822346406684493849945480588061495773160748027430115817989108125789904243342062527397260212409387253464967726033163455492505957540685261607266083007736860779001357428895676586074808057734538776875331520902897377565314778957951904767329668750553470354369313904187506481208786255071697265376666974752835230098296171223813204520187792421658899992304196212910316221632420854704593885142266386637851130000043867829139272608109569026230019349827873783147483604843732537984824797287654257137531892347968931308518175430229556230692069742543121176311824166267045549283331968519833607409441046684303658603187405506176314406446203525813868504601074146742002424487079336892334220493471735344436058457324980387761120202669692231709110735351795239949547889909828229378497105831539657212431223722054194577685875318177104108606005769832488102893615259680596908291573393180437272250807040340996723210977678588094441987167229481799948294821298066616195477271658304623475323221994038374830973264644504792362228984250497970544814898772815393468461983174236081443688106039058368365793034933055543526959342256641586721643228909296715429419593447770260778483821006191833926395479992054796959403779868290850765854877306585202142676553971965744461183209200278246032267326467011622699301897943454391073895038422247483463626104405462072710846105868540840327624766748489169840530818413343827853161942445344452208290932776051676789247794766014839640611575865046828131816350279449921084071312337272202697327531873100533505137984240960807527645132244531578805467744779676762055287958869304471629497832005996681606924159106401909289949721892056371874171435611646429997538395540865187977233894126904166665747074410085390047855232242110918780261974079774404511905925844496547016553695122331720592957809595615262117747205252321921429318157109819034198139464434619784839282852987518470862314017166029039574510996716864452755700706556487735325851190851746554095958546750931430626692721233014042869442344442727660298357071476666207208593502967392255014769122859472226330940607071661945737544497066878807723765587818897506692180256538511687068355902628094160822498883457245047536631331682694168723211030791709156906393976394184096009022316640371058975571813016038587867845519032544997016909186021549070209018781746146786457695964130332186346086716363418471274018511210072758961517124105321189822769061125572454944162334954112141863901331010265149335947013260521488481226412216248715886811342401600819615390139199216892682222170114682915111821062402337300950836107473998853356154252077414439608460367669825652758013284101953577695059091194396801722941817987921654902896736076413002754551203432678911868690639102296087076207964579495656216305071379984747778295491436261962892661819188624613943649485424008141245749246661199026940090122616598648935699210278923432042059174835227267158229175639755438640488336576206276920614754767532166375607021300395505282005211420838239070506484447292060888223927157245003587622889304003594843829471783973669134249302561451196793947263954810793774316913579420696988232701393482657637391732720621910359063455018506943454668266190986279722965700888585448346689859014626897332587119454507576609248183194536655697745603357990578214885388866173369066101343947841740567410971175782441041175364635967378414641786413142554633410433427833609118285635616993009429556731037188316964004147170663903194882411945728688635405321064972390380631972958815734386314633757104710818549775271383221125754693993963790283438221222134862423321070805609367628555552744545026314970661204972655106889146789155870868444717062428386680388832706889459647640109587240528363995416284807483165918019293967231549963544117320186616401390369793412193822996479331257305222142478180883017326007729846249434967940040781461482609675697472623452686351921212169786498212592877496264401367745079534691267201881097501044482726087158894111020191920671442850977651090966282419752554249036043134364170295407752037087460296379226376148036807278221994562210878545005727117274820740683521547708121636143087128944217947883532165855247500469904907080052105549110099239520493778299591531744971790135937820204996895784322470577406920209965576948060708896792375932983794454188720129023611310094872444388260966328565149282112822440502356605055988059489477136849117708742942513293386746645341837474975658646007803983864372252395933906317578212315085969988655261814073557003905127021865505871749978774847614412730686445951399590128770772171703101564401575671493541388531190980784264473086542816399185415222361557085081312274683469966392921029000966060060953858104931615384918640170629634804047871544116577844459378643935562848445635420275767068983421253416162079545518908977629071570982729334399221140570759189285410481997292163266691793278175153504259125056092863176348911686641760213900859675146810985083009538409940563555393373755520746972512856189444698112324124729403919005263812274171531326986570331035257157154336552310275649085757826646628617740301979342457288799834151751032153611692853417642733700414555601925070141532343674059734248472620015002919064643831429820167564826830989592482725001180173393763451472533701971179534088521986326134411621321320207677743471231738531490747706168819095209174280949509645232527970739525734787041822246690390669486638048834758630848187188175587969993941121380784491316787710800023533296314329418711918912124124896216124664101666646786394017040959510770763012213323095102959779991676769821011711554625274141076765266986464861708670134257815019527893630064467365615491840473455441124692656675789773217063687339091546303519042007163538307964719084907582549351357891674837167409574356673453309496460288612103673468554338267785925558011974083346560359810710777908434937644587470431188641649597293578647699931449275112845666351634024542086870044010719078633915702157041494854273028906526491085985211699698417888359631347509087285299529514034695259423231764997496633344579821154497146724723772457961993154966825881133968369296821678541049076601536663046117152657266224856770860140252763386289401574105650357012935103700598576806314830985360004043619153781029041196836777451514389279420225188921081840839579186273277642967454210666507070719095593239633656842479011604551718513160311045928293016522451750748978766494102398938597064612917593322107091831663798842422500316608323590678503886694677855190691734969694349298761010615925660263304997544635285114821750301967055514805936863814833591892360489663491886131454086645975595113621103421142207015665481829060727616161772595690843063708905740119862623613319458103364651032845649412988171263143968713675614458005410822100217540528754398528843332473121433031399805071651579529107989026355341669582201070299372578827929877962393326052670362768527778083254679100524009163590762884879530904622170495088953092733361289479340464655850892597829855119804464422789586569735673941115864350672670343359713375663858405454598508386682378335065937062777103437617619744739080124880945894257672296546235891931315940083237320838874423187205373041351216779626606838233261990612700587345569835926008003602197814717755410552606372191964576869175265353126212067095759248128313942369190432650564694436656922841170758951469340470690519170210412141238041330128624981121751779091719103479456112193860242969867704551974553207716119939232897658789002574961200602064429926732602465287878268258175919105506729642681554994068018021204452583197251902301569095808733855516118845630915392933556818314018510686317602949418274412344959551221190460606966871654579706292244421191592445087598314496339391325533812298025521976053764169476105806472052565743939973581177840824898122010306949130166540114735288335100899870097573881708272202478413144124920864093675714203253668310086290032990538315976548890877847549099693916249363630928156924108459275168413471760313516924316428854036105106272339351189895909141944637431344915551543505248543818504778589118850383195738903864571090687141902591534490550236147551584083349371187138037810682749257342897326910942831722184286377241708759918617291131604281259251183872148581900247063028539857399831483452288240475129068140172835698925611030700473236331945542453271182293760805580357811877140709039618217991228276812891352920112966306774132259856305279783580573563410432134118881789348487889697596089673483468178424837472293789969135527253453335215647277476328751180702240527244955396559583915024010087011315359443261511370094392969460169051773248762009292927381256861968814557584068300719226268173306227688504963406111408963117184664933709132682748245114989048635216246465602551263007347671529673975909400187596256408138572587825779400076254644553729436726161795377067453757491247429849525267424345736641717988268675038140807139796149255316706840602892404552832017606715111152019932124574813052094074159851574937126720694456375693290427583757114925435457619939088423578406257353968108672362707552260181483629842474577137440003942550102914414401963765319082671818349702369548641673998949717478060017252266661211687580981239824012278543992276545797416662312585689623656390653659308236515884200785619639005419874634650548659972307881479356482387220242521943486464483091718452651722456883083927109985928027860036995990364489618762304277019282329103913772813712356602347554439413959034973804860885483422786577603751776050155199006247280988431022747629939610675299829321344352618305762702412376852342799341938425423599569772275690723155775081136790812327603375921261661002605285258524681560738656613084603927194041256152906008531135273091604012343422365573726120784941754305164771211916307356318399597570158140886394804382225801306895249665688065070247710411270988993903545447804948996005099826908318418223447332018736265547611477621156186776992164039073530088197291311323038305564950834095090781033173695492133239052861639600079380571235190562366011977201509756188308592204293084652218205253519879757499253250471152119225988387137553197680573139671703932909511342564968193449707413735893800329005842833419600240946848944903899710608807733634834805609052607171696913370379454633988703191069850960647255457980325356649989430754644161447085616649737587846539833662967680432699124698167770857662632187729988687110976757656736864351147073944340918741453163883513260143589687690239107070744579181713574290191512196426060055905889343090802400871590182480777157172982972532421402088343525791062201341242236419031968288447297546359552385136513239041907565698282624870258470784754446610738354130589840752121890985309165353590782998491183498004625587627621494204276319627732720253710007155381180550249723628593564155447199437312460328013049916311235004419685994865797159039473144266622649674710667909206453833016568249060705423478324051545262800665531222538318527572157446568660060728075369347742089339784298378545318994530068861294145050876091014615792032481551230292256721454998426445301790342303042460501901642258546252804588270521792544892619690805948988158000445493122826618879256886257368884527649666175933700691928617335732408194259251483179274637840607627201787069768295427195556893238468700240469190473739513403770775928539195937848682792528561908321591247430059817138493700758695530226023004440591620039647952560565175572824304312694046143727504472506575640293550448876156507509159525920193620799518961243278745823887188214569700214217518254812025059011210542255310540573150234498869424058945723223097995411335569655200872676958800995414804115309769930121361837538585075777689567724201916565006899340000920919419829749505884158486959283794787567004000348051786605375205050006142127932222624987470962859983233504343897185156937193274194195521524241346063891251596072814156556377440924734171412802845795954581426591417190533568561993652487934879305069772699279686532548383249535643245994862858172360664016419534464366934053670026976248737307118905812391994075227481488324686250703624396697629667224096669435928097070456785128560835691359615363403470846642992052899788495859966554172437883380535062462117096055551643819222702636179633676045109400925716129147386770255040707962578278402293313531743411905398103483613618185670856326543614339908692668575249728743481552910288250538426824344750359353380366426296798411903078822586791387368730020795501836957899207235348899992492523015832650770144428700169742230112511281022295689313639430116936080065614455321219975563492496456478562270238545115613174915926701247657785542455519472605407996700746724915051439376501674749528469932737278753877616328213873017481326214553311200183548808504689010788188258788462725641047783773597823448544768223918248538724969371176749045002184679844860190436989692776923132653030257362156997423555140011040536715818837916621657535466681471362971637933568238443291807596051055855212147784503238173783650387993572749630624572471547400378161844747523395087024871808603778262346587523644515626791123526269929130980104778848353038846632257136030085849974654639652921914875702353490597247090692309397353756383438600303968265876669973825304546316786233121375239537512076073999078153435840664748343336355127695994216742908404008356070381255106020211145322386446936395271328886030815407411768609739574070165312358589819325655822857021466112992389670635471320341550294324169707953589010554746931698907678994450376097210143193083453511425074124815549429057387479197377057972482408650672950150122115155871865710271045979296705148977657835936593453299155656525130479988506452688517115341858398888167820382579925626105258629096689980468195946984819257082401550030168386722272959466729396271717785375555447258296328294115429945747518614620988870824152468893880981623201714127237281824511456758568280473332484857233193218668981836011062724459955481675209701033028696622418545661519148070505710879635577960590230151225521885792740666883385330738090258774658818047536488384924469471080328795419996140968064929116938783117808029958013831356215540083410367628845485520083506017040782443750207216680975299340491603410413574276112105620871015881837509778447448964960417522408205064057028021782858986335853261856341017271428168540900989819012252894194525153532497674038004326996235067951058077079450795946232490535362715179755467315509278460276326208423686647290303932787396594631126803473866331364958489287795122124420661553590894097240411369377235019579948419773994614308650328781102641661785161839663389132849152074235418770038065060843006072762885224155148930240917342476452778211743850607653086480322492565747757485426681071972621358748649304917411995488372030468155335804424706618227156719113483046280831769760261926871622736426979089652832174941330133778470749684531490954321805852881535400485992958735800625217201109063450552356842279470856694043879842348521014780678549825963086519083178258228186503510971566271625220129379594924610277950600851818199490756896872990706873579577015099959652665097195441830358534303273664355916178473427361269270550579748506273372492783479148410697416199828046963937201784489094957840670409662903575242022484320196311425041697844306576872286165795129194656230420540055774294463207749832286871061488436174743838879430384165345253258253290703396067535045392869540542494503073530028708157354514552784950338187111680893984927052887453185403484293016210062644737490219496279613025073607080217853948384347780949318794738061881363695517326345900548211577686164003399880680142559495757840752483035788759384948271195309549057632216674370818836415398113167757788284067695305428680087626708357479045343344302897382699507529333687085332908485894949697629936876190030322173145515609764947776805986954532013506667708235282232031346568351226446930741601659735522986225140717408439552976060079023589815044068096769438170953535570065530419833873579297899143094753485147792977957162902091290322539972754631534126180515793312646291436972291637901714595157859969783312357039477630576729556072354527197803695143518284467790040254981075587295453568360019808763173832254157505879543550104266518695628776792059888687518815492598951231330390147365975332752149443207964307860294007732858890262058014026393797680958134507588155928452422835021289832206215202105126745460983118285581212577852709328055098756736867637354290919822973286772574752713714295419716241131422473732754709589360550793759591717937086148337223588401028143461297559925163444131371533936901249970281336751294102711246715393921044518586248342914823505982448761990468796480047612206892767685585765851370069250722646269522276600039290252712723695718510288575797864861013596849115859302411831855869856094526890348455160475481316195452593229307657937029368371913894789388416777993787647376081703516166625160642589484229560768210282834553803628586966888060940000940363577518985479052845629167408121784048088661783033313246577311559800301393825940719371984795726829409244411443445126949978519778919227583333424404582567080954452688576220856681476230378752271331262499787311502991015770100105569604655108566089975801636913103646814090567141783870321158863438371105084547885820405951864381826222601978682153987653992652396910068549144309769820809363733220763899005498405428079125326958641056106336833174547168645888756311289853766995746864945514867727508933279942401078440897597031821617187847317232568756883101061785862904345048773846723568685228916101200839710370781239794244513651779196135080465543079689296594299256676989142068207236590049375400033880690798098225976350068845626482464330982957684985815054575296190398380356086781915378576757490290713459841454754964160985938516305430518064842244624739981726564768676157734366304609752721605488434658263949823174090874590432889851865157065456236065712559851304459499901914107635757171704857159324731131470909908552342334397530976986221512777872698342855579158667689668700494464642334442900521347664295871906907675982635267826296218690299514816450669576046053944024292256922900493468396183547101511360645274362330787198757172292540417750393495878092887750508013366765669524689458585870015539143904967613268093976398573202171563508955555550265752932501442079591069016419615139055091280460425457437929132683597167292525419041490055592214484400211862052094859051431896717922072702507776821348372600478959310427350443275517215859231206548624522703026851947058900953703454661965200994891563507989810936509772091640378314046748899454477846399155981535574906444418732902442265017775730528726643666164934509343258966512154776837368643655216562367596396259006805304941334449910542634487894719898482887796123844193638947093352953390696658152591217715346007836571664145700716634735733541305043094847506317599237821841452378909293624680449423371872352772182111103900385948018559768046650857695400777523641266966759802748053811439312090970944082944827542727114014300007528625899313326226381187807928739805442334508015505199476925487095146799477875106453941417290518461776887728194785468589861087304242101346284673566380493261439883991992345534166155604213197703360015113280522961757083910487463893069289003057415640463501752226544936377878039287442767642492013090195580415779106114777650002892740159665963701612914345030368502492026198686464227776332563572353554438333872618747823925704146710851664896991449298663711549905253182273381582625080555839203885064983926655407186868713505271086225486895604664843386679169156448176528740833802809308047004187205970873266685661250091120272577546309069776760820417864115903630047165398466007286506651691895971933644654238132761290753872943929534363145530995361511097800978268689233689469275640765808909031463572651775981974966003504350886296476554504468953640771943842269415166937016585267267231223248356760914228103768989961641283406002458945506577934520924948861559994094886227320361697620074112772319449794872891980192327411480951450036255383604917321581263716221880845019589028996732570297814175461208149241172694868055356389554824228456609444474087444543922099805221798298721237942433974186994214906440631354241524393039457000892981928358787156354994432589171342399202297763953036084574711376906340258725097588011286926270609320952077786379078535377132054215025370435613825686491930822299752274513138954145692288084211509184736667777598571689496839557531237416000386773025404169449743121450591144785079974537718140020457895638142130174285565257351500347259262082198070761468309247514284443882955983700122355044598567274038033985954058821093533205426156708659006615190411705295027760771276988837305646446531301874844773202712308409036608713393462636448813481651289573162352729479549115275727032700731877678159903002968841553587051165595980486852774424545747776345220931572861390806335448629251274498090703297781505464417816769962128712422433654112456299667174775348032270805661252920396351634949522814555066202851613032875157207333296364940535306416587178440218698441802483657043457834691277579457901061257060842028644847136685566703711009570765395348848855528673345615463504531846272147801269333437995671106298419579494187983221681417650711166140399565273629300899363925692348927319018739187810104182861108637614858249125373837608715167006324801583304419985725325256351303567677082700895740144219867471528297181199411299435968877137579151703641087668874523709710108983357326435361896748017701321478781757438108699012439661839486155277665147855890329623420545006434718418315839882104310724164549182494050706337620497481066084289707638335445499280596102415539028421784563835344756353236369391129878066500198080916116460636366060810912720410706591606566258653843083312301112623686006379663382471740814669616842050213250853896520827943650674082773057687348657215647318363839894420874321222499364018099916708285445247242423974612714141978177620237822312267899945527363060140129416136372571179330202803602720307030746098657255237650951962172033367031832108890161827311577506841300366535160638899267815097039966805461042896106753341840659324036302943362339901751895835467552633630808037783635733747100068828932497902157765889585420527422754719682147127001259761661323100592303489341968118827976384642062740528671065789147450444058130612147597243111617242730335761309449726919314329206344643081460955444657655349391977209118399120491130820755284730920473909294083915773000721850848173882578959637618210151964046598961432601920691101115040684367239993455661739270502175996758413741682112160956606331565116810005455806146291032227982368790896993279721038558766849342096627928945711891889309181562694176899922736295415802671357696688929381839025082647199355120397477451165798885305594013297541126174757807873214660679260067355663422488992318822771327330838566017169026765317157450644697394785610043722120910361498356399945007591269728106914706454707750736049849231039615680260695967019856699141295745523624389322439107598531319692116182345846034586801706605106188295468053242716002091692198970477646785978770220757503256495181072676310691886575779316347303537175054780536775944122734846508911681678974098438023955147140845959098849587482282231871076666690512968285139408630624249071608712774508047402503008470138650467747424682764254024763696174503153501656020345758182674937238225910430961957882041941995041344165592309708333442984666844214375210148563721890584242373306451201583042445237564532885613917290189671077830595042223045241135710085620424883213922004606129409759401198181756747322116291648770827083680321619859822955233386096782918282444627440615823131655311984705451732677571078803655780088189647364104330177565413357613471821827112840634234226263936232430623757291184465864464008101308707742995798687297422914717191504810214647331424528123993250211061593577304882815335135410202829055019672162694244789484431976429133256020651225588969153387690954282867932647813296917564099996139241579306205688943148591444636362531121471811708372906783521898227515903928224739920144507303795590939710085704229033251567613277112928480749185954891865244493404448896944264174623290795682140447820684277606405731656201295076604083041639541261159134339601174593593657064478835182618306154892001050741511932196439320178143093529231510501295458450813147838066746369362970080304579873427378264919658767346711241221798666483839097412254682163718864394280873155068117313609686983099078219983980467525017590159730454820881641207903555084174933147893186358781990024143461854280482439768097385570906491112653870647680768423001483230404161749601430202791290184371932565997064308243795966825005749099859216980787369293034730136447290380955678978293976386572200962813077303216669666586389326761732072686659938132228201637453026803899000649726988280378920048041128031686906978811687892576282220556470143574799517173348362200841570296804096244634288996018990767114203430161242704655720103349256592392279406395812890786395940396120532148734994342032610503169482815745103088716827921650282090823723668106322281599170435127349503935796133525503425564098721137686921895800628760601868295378749008790259161985150385861455520494292283326608234389829680533348084611559885266631813632215827109696745777276487931000202435486019611098073712070314234150526362647241508279593771960493356734773154847754668229721087050650234852105106137036602174165945453935784748272907712692785040588662762060937274751621548621477689466840928481006387915947914887423123965956853415966499490929843336791620149549438354835652363667534609355754547854234408832695303942210120569398361733258707103892923852974660863252151341812458533563880490930143111007016469007923529159958851256355002539939443380948522676725064873689513762566112610099925677961623336444278500847269410905966991306256315399853313346426523901110863426848952919562208246020649321406480468074269091036456640141274952409124693952868098822150045163147559842595423996980242889083750276661312965165287716206553571026341259301791512244972563498304318651181818934025718230879759737021668783032712571743785815864107802101940223837119318820016319441202777880539622068678795164171486401469853645381059485763601199354826756800953609594917293765430167859550170840247810490014821543571848657177737598759259657776570106570916294486092435266788448187790731012121412931427183195466309917802826293804436953001486937629224151593207443027892026473186775202648564255864211230452596265864278150624725035950899844505916724822385200565794251251723894746287497477087635698677676101181270788724850262032843473984780457161761764531389680789352089852350972329676411754493184051876807483458849968637196263549955763773586138660252255764389320934693907965638541012448686156833080994639064473383873483872115438608421462824945030654979195699876859239910926164106483039249875094737143193750182983330954832089013553296427141741729370761279763871322115298544108029527791001466111219948725196813574043490932974849542942058621687754720274352783922504347359646375413291787855077152476131410164215012366281591887312972505844985655872130967242374230802385116662993385651276515104517097204960557784664128515931241325637085930345689260775991949599700741053414695901902090401066260465074322819846010465912102137590483898596988420354256007879291623735401754138596100145235696634605318882900144990693458740332450826328964349430878212348943411886710584870754391923947291553750942301167189042612094990314811544645477112912501548968628085270924184665687316188657581965049081838316959368272519158580836775244044987856623783515265941148626615999357909837665386894915750813133602139193801161122624129769823407642817673517777322663107191229371935596394840212937320198186012909574625237479741091176215637344968760960325305670570562751584724976741031697868186586627280684191236014220984414410566481516427419883006709281972032426958573872153380021106730939697812749323841810100833289109046540702520723324597514583852181938057011145987761450292902374322164478666705051802702365858033773813098708920523730701647977394856561051955545211913385178166904394048115819222271495197079140728778821734814930346733907310834094608322396171492926152938134941548450333176209025617074005025535304675132717182445469511050258298676584085496130097872427620308090841065617607366000797263638580611367508121785635278015663132048305923339095568307300018491078337777125999211365524690385522796384714646298553688649329882244804924315197258678956609498852868371770448507068335304007751846516140205294662011834846885661527686577306767103013146619424171698905282955874328465933630600841918207625602582700987389428579241836272424317346271003016179815589194805320951374487762189605192971134938508505432917817084062752733264156171682265311639244270422737089978172836141271482872156209275183829690673799888619134046512838736317204375285246659161401644870250408942081548032451271881707418454188471808808101507469936825965314425799271311159737953398597981879680282180790798543720485210381840746013653198407450377500319652383178836488332488466808923643836073196986212236022896899860833088237355115283394472485730055279425363435545571195393789938080428856392224295055531030459559512289456645429525469512480127157563918619144850242894842009928313405205801124092980199870558448170030902785390705639537261178405738341444573226927226542791766920156272510114555109678372003636255220411311896628997631260933350311804629084024645171894030029303030807477261328626582437858473753148955443804028993980609631576695647348876526671704114283817847062055300651139347288156284395941422792334082551373888529273622734521959678560969702449530684007406122684587951373688797551779919610645024817562943310879434395700228988240033873665129928359910191934062477817719433299718898413349274502596860870190769954147205500122003846911421808989095833308628653996441802027813756057949104892786612025279069814160927075078126135147993738321278970336328551794489158036790111909160397245533361452749914898983105180222579406102930472285175101679917231489152328183823433329653292717599882012105782161137401528229969979575331236090832797878535652612625269995794037589273142649493777693849556126755261644664900926308962869537898036488431925630557718552111555905735895779911077032271614175852851946005861818164457279031161956436282502562759370897986612531975477600067014103060734955399980101468066063497348206628644372107183864307211442325561231067735940536570765998062818039398062255022362266669723323438679582344247517963659929944857014047409360469480286637766948064788183268721791202123759769941269358364543020611510824221111010027117568521588544308565636961846996816761019407671782136751927630687472397007637235942434139780503893099909552753717124836192589340648798475821402617876339946238948105361089519878032096130158934406008500137446550104080588703463294504018156496424450029438363715409884564531735121878042668279801689994276668292576510906958369098511320815554458966500758446030457537108999898662325338671528073676213351577095392404450202014815170476278265060357419520445294429805878153100119255299858469445842314030303508255731484287300232076906028878854761067166344627390345998576381398271608968898734106898500612421456561495555892853398477131539009301631874841791695452471932384869231777836761323577591398642318146429327453414584332771280192964529566078211689896149975911949038363915487385266680965301559733950395876616379522684500381695815118577800176175126476852189627596730559305112619766687248282669594430805870922155795738162393817458159764537228396760917487259692482854678802936134463296007177099341426897575231601796850301703616092520210953616150174711146781904063403713156467051686130648955204233671661446002972524517341427047350186765048510116495500724579472174102822281685546087287801384419276043791829329296314643413630905115785995908914270975127711246526920386328267592882119830078588671105801839119506091082140158480488033951708279909141272949203397693139227827468523203238822752758176344984383033617450390860822831678749677150663529451270410741720382134054799041992426379896310202755309773393647683709092106906583671921221630554659134861669494494481209068395919482991215942815412881450359745884959964224774168047092516444340354624580013039926948236989342474421610772591526129374036235039111666655872430773407080811565802511711640022911795845723960749959197068574739120853257036364670766516994310759895053990424343106126077245558130059919109440281742216976695393929965458467729647962941408239771140476768619245507615842608143065055698858458462802722301471461958949984505987722968585148600891691231378143277523926745008604405152455345877149236618017401504378319780915757074760234575505370604944452817990106964613602685749928705061203466538784039527909714416279890265364369239032336111056373593370538280062078741414766015031200488453300663392837056996338347099483248860317604027839236625163432097665559547109203770989359074193991295327333063811842585846859591326074721017818395354052691595322770821657183512462473428548245654909606662981765261557756744220410971917574007440086518433270088403332977948815058260294926559330523357685458286411197391922150282883134908441777037542966020661296018112177986762980217461812214515764016420978450598156538994643185679366062033047215344609797554519576642198123513319316330870587679427629792368681069012473709291520641189537226104449925781703061683362464966515893249968179469961240229957151954660998022334376106383147874657378384815037017662627343455733820612801487282984522848500100562784412934851597163167066465754238092520184916671548529778807421448036292280449227589343746584097671762150735848686568897518261115160780482801064201228009187875178358616924436512540541175876975597309517807576089323974079973064330861650789448187791078420084665673646872649406141870006672506624617618234161343881199756384240247257452575288449283888322643400754389368356153148350225961367766184504549166664760942914277016404884562590909256643231283174926392805045489750403453516958053644780677111722241307845760249208163037070615810777624812766296712434450455421617964839016731859299639334473209274185395876111132921011002876888688513918334724687431510298546937334120106707910415950721752354350936577071989184721960107829823837845365098140855512492788407538809718786226838584190237362230096255947641012529526406847582506700982517369559799721093908812407496192058181843996400402355326503262587317514552167258376581533421593665097360997530449087689941514679584636182309251151805297317343820664906138721116452954473095061682466150638604138320047852266019087978017438461451592323872207200978988002450950392463660860321528839631303758124714249623167584452996466255572129597594902885207927240482255587237585162480331711489315381176715434711698287289159576105659528615518999084532344917015343794833592905003119196676396383890871969806664372599089227936302256241507499775932717657286539839574268248564542227037985858897652166883282619960866932147822175191584450860027531650542878909237134888100265672191264267405124945678334456623143250611430033799903900296218496555619581856078359410119300587858756632769711906367642189136112648936705434480580097959912775338308218219462271307568937328842995838287713967943538149950155770605891317997647845286376064616223359889658901009946616061704614996393464184123754783776031057346017323714212744969805505092757839917499138524946948169493790719951133640913019585408126967499925868273152992077700740982512386010526416904143468830097158974256526619097280785998200833901217110506651892843532352267393497583011966222654023408660787210812912243553512076724845459836170694947099943159813804451056027035035489304817716476262561945429261882037475211611462663359316050112083315012740799072426366672623641343324232443728677476181016454892250849024963512292123276337158714753337752082957596159523057076421653383801943688973663374772316150197492776613493770563101554744565402471523209248684907302254545816423598084298932850862723461506530992274680649344871016106489228193551238757318987889399744653087831502945798307972269701432172643367785118609269784227855458912796812596104223863819932729355713436017817037911634703993837124794976664509386792835368710453523783598379911732328342994652653853760706275072168419874829796682467384474809665652044394996372861016784082368812562105158312651311594935297369480704427575880992490075289202083741554557775135721118928767777317172412825345697686252245998345448131358717850125762332758118196772852973705544378510976704379510060938213526928316975583270279845010784863511979865648848578371818605956027794075380202538718061241453530178534888411768837638140446910146398701061201383760672564314645975731192175098909326289094580348733874414064479787400193736194707303554496920701159962727815039105156519047592729462747702545146235612187082856712116189093859969091337979770370284757784268135852652855805582554635484397495950779254932999217046432782570152120612014022318684529202848692330930070355381756235144562461346682993821865881852907669331668705892504654588067058377321356966799436251811621348756575111373988446437552863215301563672412934830070642313826406833167050373232812967162360915301070457799098290032427524485165586921223019150392802207629169128528164158343893003002204867177073289180342958222574463374370646499803559902050569349498419556485593697449614999422978072798987190049213065275190902204787366192301453429671185736436018249527643116650226121213216811115525550787934402228135666278088238294320567680102630628402909983829110384258511187761209421916203195992010312015505508171371473305775323076297562533051995214585422527061069443313731031998865062237960557773899015805716880944256062166500683620092839226825305161910909845864303234789096055484659173065890584899417395657815470746761339322465142544847514163500023192244100859360595005993601355611864750000560143839805397935293361870764124293284916641917634739151632392031824652005506868986082685288037451609339212356797248486862624990182367947492649845727445266653444732749689161686840359491174309606678413881130877364141566123872799370197670989935241044647464302577010256264833421998321700104187522877835624088706909139916350254949057084090886410360536823777936013145987193660887723911002440303691872400742664696606770052150041679267212522574023181933688802243641500690471848102864300267985407290437780892996893390524966608847084087902327482510779129117939187439588478047698614483693892184892292895111175804062362107905008989488522553963461381927752025490645159929985108441096393285956479523253504817867154239051264648290079634116793053265181954185140748733171370297280924612345487741251519160670832424148021044589769061001463193308851364227341791504183970552436275241071744293224910239656066596531602835716228146709559646903322391866354072228816679684123054678662153991120113765389692951536232248114353235629390355596828129457315056198624168094510029225288449813040289221654775624968822753678540431191611400856297553859867602279189182355271582040144936325647179095089847289081887111434267298772463998933127084726238137795498744004910926516892526512712421114939695957055478580694526253687532858902806874679478695683637982934848779316841350663676056412555794619362943560800148680576988969898204607458278621664584088722337308614414233050762713148634444645352943711607224559454893323220699029595363946334109483329406108713864329857731222563030252407177068904666400455837154014151674510740506858159500925199781698338598995314445695216592501139274319000232044185581839399959517342236037717818193927960704000565460739401877559225353460147780556668324356189277221136944427417485802878259199151761801919442559739250268739578462799734928523788543918786503265042348268531178979952756948395250970663097995854428726956432909560447558218580758820108294671186216213920973360802961693113946584570079152678880011683052588590910976291058804459855784795200854518019477314568713198295512126913249935234886803192146767696167120743893772620836312843632847463174312565202351516213481721746468514284837168466838392482917648349767089904005707797368396881472023354940040160803371631445643595369274251682277954925460725313123109844764870129529380353328834001535497118410328766172822344664794179780807098461359275308980041622077721260140871019914676576794951509292021679290467782391985924124532098431265096665372865884217609103282553334822515162816704615700974327631615248363276291430092620107013719233301052078118879631802631223241622799300250656083681139187527048629673899459864507976191399651434202643739800316421562840113560509831589093048324822199282696134438128990823117523455853684501691531316531992309383074382359977951911334665586983105703728788187725005080108352147392052468715224960324402209084718769862309147668745606025992148147408524046255113497490738579548782466658371864277154002538712307268167949741014600179495607364667704709832435609434381339124819200911935506846430353910067619835233921373206957481774286005441528153732001064445366951311931588526075562501659493784356914839448722292212191527135796863301462614858901897874270308830267253889514908032896376624905893111756398621252016747665504442453210454010740643118734338644584554647530743127030778179047724953725897647821814400533431938736811248779245306857465251678204402655845223697876497745702045557068197568220136536119079253199818706722413774452080950629402783875061150592919740611708477379009959832909227176998954129758904245192807087818511935860602356432983715995120771509464533305809402658378226974764165865514110249212756286911008433258357699863442517108151685849736862109615838886327015428956586363574028944239432724528354299834369097521537713848076894792307854195999725984208482946317596955510255844804293520736056170279618706801601767651872192024954803362747462307693207961954703679438244323754222192820230230202493183096891628601150401810148936292694062077868138373064939181050643652745427797906212965860850438353768701025497942716859911880462307132946548302228580001671798384924055202543288178267284901562207528681168900536831498798017264877114970262484009727902832795616472780301986220817433098858665327625525903456822406553810116441224655238161191300346492591928883573271091201823854621024453684779357773143675943385111277369551031809335223814347264637064491484350576928627810206238839958451106428761173226578091078287557191475691262387841934370338303549081180476158115870185397533277117485761157426525607906965970522329425552269020485905333104547922095838317620237643804069946112489933095687722047267494613777174071132357323484522547559220557830914945112896268331635383544472753675303665710904422137672496892647558888406760248749321554681349126803780382678260694110560183809221179911643124770280844028282470787263233587221727272048199211976465184282818330537933356377195535510248224179762774545614783185700062611365614125134037202680422685783621859065657017567958066614742134065120050326822890956686895445520093454541406859832832109562340808273782986775769555267565790058200358132834824321351514037057680151469721904627355176733708209318612540350663261653549752842634166492555398232663121099369056688121182699392167391970913551635164023527469836070572143439238204875328045192965333838302631883072023649369371484371081530465242408733907708919310475948440646190523277966490501000758186165758113003826512371645813155202031104251869091708921093990455368769186932154610775796343207681187014269906684059266347253086549928755065114558349501063009234993628120133527325176384587413312641800670023601358064781788469864130249520749479454631895719911047016282635693991384186546515198508991677805203130977457671054916944090317802593010511410246672057276994898327863650219193870943639851259409611397261043051712888740375125877872784221562957836965750278705019492690828475616837520367761679557446187936942874126351038297357341481748287520445566077091970129156000625355679418414576063941985769308836638715259964346362521816221732446759541094548513215829472673949339456514465788670707824426741547980563912542079009501846123508303789601728491756512047327576113176559592768764475672824040830918048378701090006324218537224840197793081353199092622826694626736788529082061309181515716639312831927464844969941400054531260402779155738312033530132755262305476668312901400460952349462817558971253316161641610563214916981240550500107214503892037202236809985134841918945558296276614174719760652766387218072623258012662208764857779840441144458234735033363360110729159648185306857533092964158378470711519926286753719677588357113751421195348923828148716432974592443291048745568822483237809427240474001631959788288725206502370830358914987716573124173279376344275183690862277825051518409544900565170509778863955904852259787406987565034839152449025090609405610332903717626576630394104461590660018440055984206592872662700760453199602742840950414214362053082815826269460818902678145534399955695179312021206636664645013808706126390662878647559325309615296749715371158692560269307900962519508528580367584351854610113535423133846654153528651253073689244894201594861093888422187011169830989858488931822043265669704204543219351540134966281352382770415276791440983216571541629635989165903687650675349672881748955668179268527832059151293128078620911079967233226604889649235157985288868891185854816911677518506434370260251591646408087205726909927846984157817056019611680814501777784661567105170120650656389804490654814425583781753519626014670434267058603746027633550982743555614707940995600980941099692048178985602100466153873286100595548701322748557492693940730500966602066816411702625524701360882844000225691937205612019286738743900780274247592153628285477846027274749322931999798165583025564743902634550799436479083444783851696078749012197173646106673436621098480239828482751635700278805547224140921169490590589889649119820593518175455971336327146749561995297511077212702859058352218089093167513775390378589945491397975423074262760991833516180791815156546285112890818348883798591861811307476169819660584550266403121662126695044873268659209458444762905960596409140673494615624549099449757364448084794225628122921249603221450685841352807251109620575114972180593920562634585402176219783723931632066682511872499955619227389098090317044365979067990917992449261883201055640229395638241710497134763184324329918894784198902018587042672345716969460640236887288998527772594501140051004433647764169558773257665248429986563784201175907277773894821040635193607631011906560632263559571392334917404857555037768329921207451526646597217908838339673654631066928355618038604335799152856865320542487322160997022517837541483710927580975772140380993124410097206642386893325013402239048450027999173867034711747976322437965633839769675169883042227409679532712326951344024914080450541042450243424544705451502606004223969620027285554127903981034444508768079324640927605452771984209962351912423608542884085876796257573069297922410481350441739439218145169284827097545650974072015748433386639880452770845056597307355769795610652756752397985168656522195181214103085309914745094143665482673874285283040492601452109601692395849072014010158738720006529855205201560998662831090049715131710428681496523631008620863047536992205909996548929761060236675411101090899339188180807164110464208383780839573427892146205240822059559692126849106326308976378720202310190611686381813738482162985332493974815815190758443401742215065468754511972688185573035829728302073090696909889197515122830462778536469103315075772980609550353465696606142889562217423016899220686881939700705178667288770179978190074880659900376576437603495060722340891742023009612746898846349212627520394132177811394198624259773011723567324694153576240328142413239160486075221500871423765017972051764444740926993192832668382480524842518233659520236686118627178641065459326875177939641413104313034167147179472727642622824242264718985131411530309177548960451460276974651401535957917313745697401844406624945345002315103995131140239089115784452121975059514490791135443349682608622219992312958237804232851101099886018432664002289817880059249498405229358007366059171688188294638272304886543733040595731048698721673799851804258126228844385228769489319382966087980776813699641435590791852111345293016886252940683995844820623033656703383433427861492040540790812399223522925768289114134829191986103688885160951413365536086251953933818618465671916946267816835611108556638507347915536216890060796038176969228865053304780075061902985817423958917180272080712841085392121435035393959261898519008644113122214545905857915774151219318154182261055308117142779221419265507562665610615597509198949119263524594973266859710700216886694418803767613879515294249194273166126341755744508331994804002129094137499672852764673614593658266210112167555608428689584694401978526677291951306485773770255749900915063426110137815039440241694130847764986443564956794304236983720875347351049119980198194872320664284666335115957023740807840006907969340432913867422210756926094813114976195803369576124094594280448609279711495497556682141855364126451380283775243984483426753819100727451064294506320956346551197621586915570364737922875966464627660524282253293682460059683398737543034395433484242283264154032272135456650872396766334688783204916700186654005504595391555200285209607250733229371484900030436106865063081366898930302685371499820162296751033492315280777346248334750649181571615528845842726486175716926904307381272519194817359648193926791948861386908789144544499359709911443063948462870502881098334368318519400618332066045199730329336092934873714669445226891680267692067267061661493936692924219496521797104863849594507382313142184585496843589363291071867212889166640509264041845338372969271635193886758350717429236394638198229308542499413124930538521127010056173845717574492304650579233932648713271862475722750307764505038040179225924473991640656234409285279358053826006667451000159819461651357503974884799051652275937994166188619613046982942396442587548237434821317984091927475956654989892957666678727060828898147163933535578304588612599817751525953444725146862777392912069546495532943941247942209364652877734650040846892016879306465108327416840384392433527369461476516558452139768389766395151651255883357247353528573667320024523936202843291436782184557979524832986764505597064408645860348992980583075032768020549287874210278730244496506652045230959228774070316151151817760973462265104741417055350171728578130797013503670994046161401352006170452847034937689193674202712641955267774837481807187264698762934508298736922602275674964608618375598125173435002506767444543862397977167759493616075403145919640440044997927721658706745964453819507139017560182458959179091160280216137502037503658252531053142762917661712081049481698203903759643931091535544758670764653010829393922800793697349611366385241436522081616858247136640027660387386725513741584345959586899086211121741561829598132712260947789217504893502159953412356028251838178176765066935726772057542907399833915086864859200342767691266597113334394141837110916657593764637257154000499319091094991552197833948736844526631418016657527383826710884527300969098797748824036872128412006928274829038580487818381537328220001788418321744162305523621653376297178813779963199158700658832313401149073486190418678149697652139035932408807011999192717955326495897208898789979586902222922757884136693993980474836254832307002960694045591843675948351316881961272872288892795171584643330557433259622735741672032786065027765431170729606080595855834165864115647096360043699378732851162421003698586201280600335228829291108323230637493063347430514920385305923458403926827313493202605921189910000022813921553611249709598804802588571526787078352862075038785910139264593633578041725442551322790450758089199877226836843597439132575347537037313509385700374401417850800001396927872635344446818227809886986631575451568338820775697201279035930847869782395869124720777506516374813832501170055295589872063170626448560164543260102909161602899307132767928101705861588098695839806041683185655688905831085241710536495598808513315173196826671685489299997630023070691816373203824171312437517097728409093763362542769394215945174346409289799745259459967681122191364082898629506940784144496903251693915935833002524879370783800756038166763745046470130480333104973111610372977623181777858398868336819811275255225943958678118861954255792805536514432672309794157819090174989150737260394866723023885221745284709195827388167887093339849981291631564161779102351749267458846216812442481024216587597286716997000810253306421525896121333152637946453374318443836025745792607637616537851747749063897011832456905653809577607250605481287221110715014307328558327103794107108520923177396867824329221904296922300721522323257860141107087859517009447864397683610715617895961963241876951966350861443432420447881630152268979816497308063443714796890277641363213399062487741285761081106934722966001842815566459742035046694957416871001781425785845554264425165518546302185990023341039150840148248736083897153017974530785270038854633093471683928254076925131498401400124502447821945538514995466421465357313517867496253417330733689462252770920883511682386192615186452939934876904173907358434456763838147788108870853288908170096169775066490636458166279706653559948509904541508923649346021343892281167749955368331612435327361083132366271007864551699358094407617356794422987849852335743829171710509511703400331073966784933551748653615933399220862526321997210275125659881080591973188848323437008116416964808088555837863624423949671291856000468226536075585557251955186659239652259963828318349389205618652085227020361357283658432456670288267396620734407966341913131855871440448332201351011883487130291706891420501735793221514689574557433859669418043951203272929781310460282619202989990827983229821753482912606403321142396632095928423762360809023567116936100165624810269530329024804744787372377751640387519792039187895363540218439965869646353349803621931722376176388696791488143599707756736718599209363390691744299436265377282663202547896328006778729618883309262164283621497810226475897907989616090138557036838706443666402688143166281574494174892787064263127782044450419007277182316966633225537785321452997239354871708699835216322342134313876984949043765157596191356811715408371833682192976142935399638829851716237231718691253474522001693083127242877961361500045594400150118014673794722532603347290209249850040847249368709551080000292311995971386912199770654608691929010162952714385772537970570849447191948462864187236781492820896406977495521313971142405118689370196548584331754056612981972686537124262545394378263658020123701757580790355212594629055958872699180898594286169286992502342416933308814078409427821774369994051431520302099311091971258861435028319934455108911166354054708077651112229039431833076312657563356603857816246616168483232949586400890527557264289248546580340449698974472570297198785561830567233779112577272856228178423142968718083508442019241823070248253170970323333831207200092350998802033118165455381706674369874133826685802623639081340410776397610816324088498216928382049986604152253193774734071645917021472539028662392173913192896344206452940954966662915629895024888490288192105876242591791907929210265235779110609170378781243541615066494904219744655620093153758278326149035980892960005158635281535045214468411732743948138124195348743277090977272778335353947154070502594173673401907713659282595719750003298072410376954674844883936003926795244565512078386165733062280439253962537980955535420337628554988054454074589816819514715578248175773517651466160865956171031323532081258208577173731249219079637223457982527346367057811280811138921964734713642875154808111084653631596809767708496552010130395442622400778218062332421129528531746499908903117077892857328266646194837806486572430099121233155256878236976513071903693343883761296518554982408940624700292202367534660342126347631841125822255363893747475413510008371550936614245132809870508912828887683735879328075471465289843194776878670159164890614318325463680620433216252112875783397780550455039462995319046724244461474921282164227243168415735264673746621183990074350873310617508484551552476344605639899912891724371878466763224077511045881747215075135079030364411772906805387509160800896065094599328826686241279360412472570769955567436780658359876184549938234662924274491398068226349770465881213512040917811604347141702440412474327639763098058963759347512219524270364246156593535616183296536484981081152999738699204485668476225055250002196220164263753705905836287620486210782400365994597675857751075499314807335441109539448760758674156055619321932449608457154453380223751035790800312596503226824368428857055198210216425932093804901035145190897781328707304618959363283746582465654216071440084478690269509284596554095714734996215449036702878203268305905941600804507833496373607163443865117733201395895632493215449232640859973614112670768704977297409774137764720230431977478700048677776672430921572849986839174262389499615604873057793390810872616294123100858063413696470187890176786501265018981991870519186344308783859133069327348560368336159126862456365929217367686725813269834844359515884118945399367257799307864140924382487861799226738563608658614658496606476314467798668218928378515322416662502592199480845725395303158676359929579169848697464506975040924999803609473913902825596946963925186339342501857172563722783191615426298797492020669580356126505319432154590169555987296161309615090842618160887121772607251882775580904791872998496926940832942954773616192139298250317530176627103184561704621850960393292162391254751091008196424498595560685698651247320965031712422054967646252737883600603267249683409200905689957651304265333379147523465415904351217724250338301824865575123252526093663597052187840778403885161953074861166964460398337105370457026977980821100998479137923821603655338517621100773429676739248388933221126972263118817233906182536486893642266324637724307345710875934626968829782677658879034568361232525729650404990001549637703123884572589604533890943844820962699921546023158536661815459259241633383307623704450698681346106066523693266250434870376238052293746095029853959104434505580939711723800894773688474815704870646065596972647835973772509895530962394964192148111409751858693542186587672229128901624165318441725421542793279800937183972670314927349833839246514357494386833611073047749947133082890636747504852031391905182064940859202769694508005936343113595668342828157305620679293300351357408610277955988090879816931738322974244975491055626856917889531574738189153954930200264004678585558518593238003739079395968596163257439819474930793723347525183298678365738016558169780988819302798981423891122030094684419559955029086307199712052823156564940235415139568334871598676722613413148055065913375828610920045900601798936899311750567307570702492917286116781042916379070129966919861843761288595242183687931549145580886404839327959474286806743262354885173594834222235488679996939435884207279046276059539541977229181843351035879642437472157525668995455785524868335868642718919546080184634268721668617899240032293468191109602394519583899603301632804306580951458561048993938615096736495275918146049596521711157410301113698882606513008070304279961887082599357283976101052470102867957183979920929450368754569831151106748939435176560822787515746870806979029974694434303577057352434719673929511102791307489706071767362076778859428387095578618190698079886842947149556658656155943687689141478279813149717359812373637755410097297227667675355462172031503917404065885948578010627332950814775414195008619881813462879241129604061886345367722843249423105322000153142270777094355718206768903159623382577118492539023143718137599538176948402930919183041468315937161149068927313999944237864723603063932297611226065405615354723423140037632446731026024956356440784016937384165312089637091974063545213826660358351884672295171419091736974625253667806081388195781922854078293073919407749385230316673875445757748703819629712154575446887154267843352032508808044509143261180958985575059535547036529021495908484239796888499933886808861079377287489435764994102671636510317764173661738068808876306505407986674811197772242761153933441221357182274804444394448652643643147683022775390431537001133759071190342772914910953685890101683965273082640723602220759751841129964941677301714502330123753654924695627411337768842361039259736532535548659732041472806184889344091394691959452229511277953919101918925955829370439446327663809541565628498129892443335646906732748101439697011481559231280197497903513733203548911259356777287408901291085414566282701554446283491667472992437794520142580343034955863937648085699141266122089236863920212803082769789202503753591109239189814094170847225932346310897359188488350449786283669724930752119615755621340388139274583412256554535445281120820839430767896746905962603645074871195081142020929594153300009756642469858122737664496661645915197527899170033334702521063584569200228142411043015784277189696186345665685811343289642725825987403195975017420280529369853570058778507725352605291968134240518958939389162346730808458636747087275908125106169081472743116274315211512279539781073506254401470036866515521585907199167603298190222328240431251241340607785290346109706398371484773126815989146800754262475023344972036915730425679737302890473518155880724883869904263493255498408468324521800573686636577129852307689659657846450579961758584936338107705558987455523175517296036929989649386167293133988600851009283354161693419635183136203535513910688033776695156771584325504117657067171096859926538693712512029929467836015699518146503256698985558961046246621520563206622655690635024246912380805321842073451874387520838782229221034135206426415570023754770098630753084730246699497241592968944077297991654262069677281182423982671038873896614834563756771733839508250734093723254749314819808212122622920963853227799089772248950897143337094116035430867392050283448460816092695230216634731283466310718180902362487542679335362563310322199699256003911556673372028778638369522059723724731006696953155598270224203488562535519136139427335607253199434632595208572110354446992156107180671617845099838736027525138576377236725031115737517652479855283552439884918976912972024857712174987233395175042731882754774040032123131557140701383585042787376602073611143860940924733303980448457276489927295910243557663683906836725571295476517731897483550737760224541171641269317269090801323787578260105935216380843371816489937534792638928271191114410088591833173660960750018917688876314429168456220983166008281581378689462156285628278905768198558276046579225129654618644558243713089115835891474194618038770446695039677064219070049998212708856503746487873443665157299084439175969774890152673370434328001831148514292385252890293247422832540841839783311616051429080081743908568980892604953972161553884164460011202083376565628877372476220673909032350266516184869490718626516411356650251458252051348426636548778637209184656068882991911157479934948679247736383528128860125081891851062987224687443757682841382582748822890041703362728012057802286765867098140995042175642322299013657316199952698654902904483570278184357252807427486747792602320343380910495898071160982148791050451442245411052680219836177294831249658012189013165644121310069481300854911242914538636271694921258204300196612116486977771319110808633582613700052796282865105565194487935229770158976770204751822493207871076227696060104551748489154873392480230183265906805293952775197898027363596094201248628180541781204184648128212611635858940070989920816716310844194222239753850197856454879362688919624182434515868166175659686547558238831603465541329955328778197173414289195861317335003409230702337763950539270391124237815710898160924022588840773546763167129699799394108509810287747172398663238137240953453735689448423017704304799832060967126456541864131028574511821167168679157158813065204503303295336201961559992670654481165125284604372722261860506937354627062710738590159482552961952516028976929053139626970238634461692010738553806452553543626251945233650761149971061907401973431529097175568597671914535562408237356795402547936511962473836958723542547774601469740951770741036524940140491914225107340725689914760291827642395069772631514919157806417152704385277460581377413097208081061095498142266279919776947523213560132863505008349895291469024102345688168295875239313649757081798748976496740586725687705022674975745500668716372260365602997585018723836042665642814995078394354109864990944010073666250926729761121303982058218021541349725964461769510297249714065708707435586946373396378816606058950562081877076519400466090429986765583328148539771832633257445662738940924580637453207002380890398212100425564347898668377575151058583514382910005520273667188789040406890961807409181213895763976565667725780774133337037508808156303455377714881237409575687425673972703598376744330168949781192130175241751384504470535771449571035421681019746465011696839717310781173401127954376862400285126594555726153827701826639141605568325581155503282185116698541118189210939997955503904602648567663095937962108783945839891840702362900896629010095774112038971521222456692225779981644482739315351945844887801905783829950890814456345176753982369559688166653556270227135297352614200866760251525141445530585690948713601093982603634254843345780416948729754135123306493558277282894394371396107894362171841223466490977228323746093976754038928783470362931077764373732680449029158668312621844269291244767453604393487563692878917921285023043081448793416705788490084404809554481018524531076169534981580209025640770788998894238567807709114942928922605175630181651748107542384786505682610661361117848187860667112681946008623095400736435537921304309133483407602203200683393875450369072051882031157223181561792560623497824675425838676756201751770875966825085940648388892923339425850568159130928195669400718689009782661476223773299631932040305425392226822091922129366418458178052574648098285366557574304441195751318389325900425817050330214896086825519341875973369342254377927630562141781777437521940300406006342791999951632694018552655608996483041659217646788078331367470625915512511174124584734446093158632761868333558252479909316543775881007832585272281994761928241263017578059200932976429470737853310102789684534167845288685932080516786849927187192829188026263995267094188720966404181483846705217809403589533079450421303370908954894789188776652084187590976916085741702830881514421514200261357771356305817360543584666672483885929426557583310522682952269531670437966648683684881927905477644831026208811456335866192525997585354825042162994009344232447802757561529257955701252269401676710571533012852279264082873750738237014883496942738077360541210459279988412884795055316771072796322944153734843076308285788847020434067029575866594698110159259067238193525334971081310461348814242761151868920284960574979101581208415588624783480529220185291324650884301939244009161385081720516259772658868571902468411762318249396267903093358020671532576854007351901845543416630000244810476047044930065449478753860106440129820521746112140082106191212010171547574552848838004664971470661546883637986729374551245066214517963772030281200585008144926638160922006451983826282787649957782858153405796391702026890274467103235979527901551319154728472099387854103960871414920300890502349029454433108914047996290230355125845451475309299152061857578115854509090940898720271317749479129476076303837369932803827385825818535652408194670962227847844162616979094820010282217122635988362380395687750249415559449741095883380110269627309402459018707044443981221989093552912593133114506304212304962964123276811480242867475578573705826407008247504223578884944787736441172219523928821716164645703606580286489199057677223375408922676986373477855928108940360727238189597266034280715101590826103619913958554977525073228041506199549813671194967445371359691817998123636022465473436272058832938498736581928606784465793212856619724722956049274993929187730094844266885346863898200977599933095202908621756664939450231406724407189329574795093141418148750850145909043877199318371308697244333481778272993717170002562615840076126231022736820729574662969793853400500272766403754639674251168042822867943487849832334126048281968576440473846403997927491581788458354455637710326204664651421522862864056868831557971384648949145164915384439804715701432822724470977706153412048903482820305082443666868228219132502508606989682837823699722461559762224103015519007492551747478929558500674780940773409863439992311856748667378587972492808122812978686172196880428582270503101985945986213619929118015077768434579588473113232475186809975518079501191049105928384889486326376900647865635314288335714745352100780671260438741718624787059771686624278002113569569556984641057083104561148696969608776239974287557370391667124527750799038341877321874851836010327491041749567507511148330595528041653205159968710812935350160717173680579149921510720734036929535096530559062427362014769063502192287528668354126717026290928671545939574151528986286794233677470850894953062115865098110354753561261601877407719677620860604113356441559560096660665106432598823957550001565565268727910441198830123221114084845545240289055304355769177514752911076390016781890514400424900574103014187346134851838058950325632225602740145393659228907141170435233676800891733949351451379059427842249846662470895888090619300443919917875173700055301078027594448940536682355701834729841348386451416467348073422997147790861623935851365799817574298077411203678481002628026254217299443827840251164226629901405131272005820570703305434881861713617797058470806737157497317267820846406541732782690443840642960495734946045456933955420657604577451917206321714696585304186025880666317233344445217738630245278147699072905435730979001362187054607489001494664963649374977303264978901134566800636588844169779968343408188406625265331356858701991564260042748889039525990198665883798799728910933372150028159141472630481504356005272748513009091265777130817488875893402052474505031704415382571662865038035833540561919502126985708203897263174422785843788114804551516467402911557299252266116620485307109107149676215640442779368210598246490314285062569628990060134453359622837557268210840223133722131236256125606338158568336710784423945414068954921521498633346956815237164193164198902358919854529026534038736410664413120896189906202510095286134617741083188461531080491979334398851878472918523349542649273025570749750130738007504542095574042830717938595521212003529631632035958274331915764561726402205541426550857341459262748059242621090364750084607321304920120722929415445941572465655926029121067582511869583154136364301223237061644629090764621941125232241180135706073166190442926118996113032330909194805584032260150266416245005273994801685252593235107530481732318864513346166034580069157755309990562585601493096830727870235460002667720691714650691885322569477705512618122308461320453755438427661921264118710838052586906153994163369446846084822753756830293455335141834186901659707207969991254989417149942812021243362538809750192586353791701993463786989598725086742977905667055175473423136094979255755742828370599075319119670953052000094647546018649967909806579376450511611426804786894121898394015464947486324865078765940566483890414399340565179281471218857353860489754000636521475094038037050251267550429880192187329391337673121557142578613861138321389666510380724290263536206103929636460865127732910484478168225014202188278881712979374275207270387449536836182391136367428198086018383449026949673584789400236521481882913523433416303422852569504446398250839308270077715042075728925927580497352634701879251323815637006761341355616254831904380663937376669684875298558020845347820743903150162248943206797529845319410152489682112316637946694359074232298842920593190571668169439027794036981272512949013625516928476026150304300137879093416801000460349607581206060863082023851684438549010765724748670635361304771068176934853995984413528885163145937877976286177344975886668672214656876128837107303512853987377625498271675663679996927267778232445025063544055167053195608900156230946941524397868440785275513619879450426914252880527226536206841884238246703453206199496394289794977550495693280375672283418044547885534177593975394179083007787526096311686381922548307588517266596975369010097221500903276435048512230349113171737668349538833769535496572911070833481379384492051892273058508732530376502723174973695848964735876923926054579514280889548311736118562783092646259348216541867588501847877750837703308991775338292312365209249279364851517313404574199128768533615154113105740010861218132851717519804443146650247934468952865635728148780525164286078216445280093354424055086325502585796305465733259319672515363621668558773313337698008624912381318239990208743800837532669382107625360667279273305818692864062254390220395381461077837164059759328296856419308944823808432340333505026354746170071787500440705963273224373656185564195049961489555829209457099524235759767319473989372994461030614864429100491623980716004574425174186393764141792923792123530633858667563910012639023143076143439254399318527860147263785036173211154118048174910069961303571343763593057794655596068865321942257316377539634984224598077503370481422110454546640156591328739989541669287760805980590348535507081572595335938446893516520764129311740918846744861508212565730508721666011081663424264411080583780976160202645622151251231579880699683717420417251674612969430674313889634744576362524498947555183191008027104485855887069895097122975177459737996596273328060932990112788899902287691254442416583380529503307828761507992513678586876576926145125638101057698002523303464624804566854731841311527265902903594191347562224755264333837457548250500240269460563406925970923715228542227374662623625044102122489057807055475263937015205303906906376118257184588888076613616592962164743107435384877059065706021065005154754542598937201778137740312916032648612850844924366120637325136220378548258281152271342640024442151097138784855775684268086572532242625662761106539911088769211034711607452618142779199477564965686466825073982246701173503429085574514713385238589325316020680155328010303201377302764826721209753025044064976802462443907960670195223865877051418003089029062407724470099064078856127905751325641797159316665552544597638366233255625402831000709182001999322819915726978369933085098808408210516765590905290787178610261409744891857341135010954911647973210205469847242259987651445854371612843097281864688062664067038517807649031371450165684696739623543117876480459712932730657966552138410949148225652046332110284033985264677418519063719448088408825951392006331369412892440361322435361072255952275231993895980405953179033184348070548167166919751835466469739955227812030131593518288188362055634318814497205408450159618640102905154199614319318768976963776827009085685983061493869485355850034702075156613651682358581402455984774882212770361785065727790099867756270361297750554571731491785608387601458181386814985854248849081454939040410539722277023983865757560491307996421553798793560847805330846883888302600060766667806508850508298903676337396129690570554270276094367441053159677289081153292831109616886928529484368572436326472009765568109437750713555633740794966815802828960405260546664760081416070573637596129966990859488218997807071238048195913170221226869448919602638208854141205354158080402211573048614444828162313080077467620861713772012463990235304384184519830621426641074679760368708244162164565901714342082620424680081894697733575835629594173936968235325041204723640810578759987474637653589913776260992221101837777167935875533027197663727348336170460415927081336057081842673627978158445730165123428124809960547074494257905657315792221240750981477200914356696730220220016539679415218638184856696686617001687567917550137893980911094018540581773842007393100913215752465069748835782124789642228518709149614361800706451993083708991124399618506178652760213403457827066962147947523644559764112615189863734597126665424008134949850566465942907396506578828335391156078040356619627617301578056646003412423880076956865282536519556912267347759688306184178997438052756904194704742237871247465708968030698415244665098526162462071594986658809818283000637718602906954253952430292262953964849358198181403541876962871736098444841621167797083893199145166250199830108804861917478219489880145646941713560104597857168349527431789538732724844968886310804026681882836298485142259121995058896593967978336841511964138070190852307449145698854406680781699533751414988932735897038693467956036354615576472500565111077698083144284885097506740763340009067045048108771800850040793432786314930635790149841982988388218115186019532242725712610907210030942856529458067806371860969727383668491689805914673944770945815867543189357129846549626840812481185516513433004557281655669426665176785974197367045989555596813247789807175089512116284424655636274463007642464028874747115740829016231826226819023242459097620863021375942485491406378794514212805459382465430087596112118186863983128748037253775788862896535118764455984530632636565015301148982222721037794853832674153148848061164627634308680020553584001047810256458281386836925157534297247158997403300847182989749466109352654930723573602361026462388634125045496535820892835547915887297050218502531047562108564097314180821591301265197981704165656510410557022593396252980078601962055956631865656885695265441523295189845311892963168908589133964067872650373729499377617364932824265559505840306692415213978907860528525699054109235974148571765452500727990369633808471472187577242182540629448598255887509435537178717535272922460770606789122563989119141422781235215252079551371083527530555127742414013435340665709382647802420900455444355773183634791873629534978970871155881444696548113205791927313500982407224793260562131093278796797512169373208467919904360833667077537111872961158400441550802626100588834345988049662803698064245121011820745459091582445782504828778378038527928555804764315185125829034178905265947491065962550037938867949078290727880391744845913798011531515698174771330912360237189769816896793144809299735288832474847226167550272757749230926879830460125245802542191974718251124345220456453060928249696365967389233615818930634235870337037802525060914586606307208944838666305669085362129762878044597286286695793574758635718182555927662299602869143772171996993384624824475126617710646220029887831918158788258120928424251162551976211762799436843405997869256895529585670281506555574703564288870654304576341025933067748136156852387344736308731666008631795377367360294751436892414053197074107312232760610632800755893338331230332017754990216381127633087722892939086057469681375296820675112107718721734895693864442776545086005478340672674497277679872615016774630334461981683190534935734750660507411995682228440824442487198414867224963625968517987257239466077803511762708973113992563272796545304068296739545118329484442757669801005095326825335676298361687250438711488097382182858092979418843264689679515321730439855307040072232336277372538440101859091220694939606127659030355475194102382611604418746711123673870348600119850248923346288363316402208260323672871479659339049724001902329317097776620703548374614275224438351502792193691984196975467608529558323615062087729016669355990273829884010278072085983889870542503296337409849643549286070629201176101688626464107824454334803388693460301719609509687356197676571985721799448016956426398292872747568945210397672758863844880356702345542393026344570591884155433714003788075679668760999292974861272387551625845994548692612899481818319831199530825781834205367503078891566124147561481247226965081041343836579688714250463419311424701576252592177426939882306102887828004532482847509506913872329868530022224887396165592769729643508047616997987393111820725855650889148450413509192251693720952500851036720540762589153314847024597480643447040126810388393845424745409520244342082264217219357427444405928621977456176709994854793470983745979829366248896655981095768378090398071231534973209188198574581564123145856876321231103965349801317446783567610647662337272424456038480504803669563696094524649706682421043883644754020843571982373059734500978826704160425244333156163743456678627991089266889734797306247408304752294285292555758136804203943545602790495183380778884333812579835865948026271233381907504850448795605452339224208321340634963984083404363962040726863678141736378645029145142357615148268784137266920328120270137901700608996061868222880022391298022365116848997077376928139984689450835864126264957078472324613105573718472828795567295773396060761941704031098120787815349661580515975354753116164572252940852519107708238400179975837259709545290081512059555186944953151942799915268819284345703847593339302236342698174361250325583973295805599638540634364952079703137217643996208500887148675523324272574702809557474767691092255373002699506219986199790288922684640412975649243588574749624181666953847009769840172299670799173070056297694275806310135925473962640727304208093021458421580730296478845582556323395617710105503338272338074922041940737756380875819102906404115024374215941077105555515596852768684880049560642178513535965801519213668079389507359837951436495302836357963657763608795175671971724531047774670963992562680918422826072313826750764892564945975239743916302730079232718383953846580303163741355371646394439026633465083771890500546241261807840502498667771610332104809661267923276676436709855461527745217218290719052952657571916862012779356622702715681794108850050681315847351467591300359615221945816374501814253601896238874384306623158774664386249822706850053913605576966357484647760643321280614110300775456508545050078014866924112557548270173219067501446395651722537546039656370142657401387472998306481938672737335175288530531927283945652242690142847573388390867665736566378093441154523767160597051080080228792652381319198374903349784476190492932074640497867087643304454192248532660632708529408147922385684539583634726887825401548363612215332072309304385349870055415129472266863018469009321219737600343667182842022127331379929117352057112826874633495660325643016801324119779212601871080366205162004251566567627179090701148572610976224148837343940390661597024938709903977750408889197530933206334525770161969985558504904969599433483578519061709076464952321025400472607367024793089699786574145997511613246733392798673730633872233899131015105838435132110879217352658396445305942080886832864327132209489955680415074557391590466532273067510180359262871594963409401983880286100743809103401098677902286992816202282904121149613025896055415471960909139932419343751419887555773916938592449875019535259822273551971216826040207170611688828100726539380248074037851784202352192456100425973406551111478317283461400785203321227285975173841543065064388447998532173646250184285934432632243307781353924903531905640959957124652775375927056341697498774782041001690433854122217756924477522249667346278921313761906064459397880077065280970724871642070233049529593427047439433999113746008510017173366316697892845593138507244963846709305475135898716436684984820274902105526349584613968768041969949727948727256652990496432892269010159224821438565198493015800601369652143399143939241944630492848476340907754020799914628321007990326359147058336288877078796667593687266297478304396281326413838085031453366872194904002990196905448186274526599296882607376323056203794587104297694630146739280210633491832290718761383772313872601532087093403274175696202532196207493308620469391676024666472728675841372888832205072226326785813455031548856445858060913231773234927931478215952013798425691142259319796052843755894273456883062554646175410195114421340508395080375580657848467536539873839463586800225765631525608807404333733403543634752057369461697878629001905160608544708911265621996940309364908162753538220165793833296572218032214823271726919637736963684098713865416640951113300693688710961351495547820012690948032564154361336042627934022174390991287864636998041060023637188812408581693970242550750242117023829775635067596587300438643364027930724905563762398353152031335874534996702634824578890765314225151448224367992855170811991060218729453432312175773221503541216991617311433602685441259687668049784939931766916249645521553074875228931128089110103121935645123931831412471799518942764255652512468292203541008649949066513960330081773684091775905350765858194010773129264711837530876853775093663183877967415329705438691168361160767762550158948106132869903064415372944488692254594021924097886760154459599442825817133884555687658830293515657618879936673251268224800655046797976957724234114052775851398829458710157895413881105774254918673839329837611507077309759871003052007632712045438210888168546464235082674676614379773812271551155786084874792626500021494999323961739762542325549672885538221941452839748419471846433500062173014363872558094747836854570218220343630677518334716257116484984605655545877387927846062722248667323618331678366141818840619848263616899246632924843605694291063648875938823909808308491448839237811132220098100132256503145880419996307683531459326981959370492682830406680617276793861043074031819901292494688450352284637450670312901725897281523564748835254330485381212856027352935414262466603227142333825052052827891858956758649402386777640713285650829217499696157682960209922509531963040516327270268815226251542445966593694711650950619999225118103942322072124676409570909888472405946224895140866061628262754277323809646700569705067476272720325605951303809062502201119560600165564190522513391334466016680100378831600663821926890783925916977629917163442304410001093918489742853470030783784365050664382167364725382069424826039248849318578723889324587774533295679959108249146391175147523098627185018594467998365444794141254303620168081532313316473388710266269301992407877755196944751547341214079996312931523591955540364289786972571571088658542855036507016713207818822475192674588432244806862604364662204297853441211986445377566681349087846071090367237987621936364149596698344949290199557008473682288911299168795473852698872715745669064887789484844704703469536101084212136481139956943885885865977764982898699997182903564415037426575223327102215418102281420316124173866015839365525398893110821634194969556874191400883446856050905219167208206726036260254799760990033061365021551145470182126362515263565877390320700669961120941354719135371282720889734494519935206787156575542457573513981312734094813294966619954677379930534547015324499813600231760122833678323341023274374650698920666677543236649228341234656538431679403687238622628517700121333302813337013731350280412529938169241386191736960553826157900300609753289526417174234327956966309998406120729470905588612410171766072192218289339851658004413770857995096261015435659899094205002545285627724475784137462798297585255317608047414384697608404662386801100818379944660712819788918474949339290484507008134943639912901861659082452589608341654687818543285946991778585895606378136163189142833509256180362357202969126936591051408354221746171448276965717851667540227678038580394340693026696609135782021674221566484365656242643264850634738499505088046589561515674494321581320927074849332736146242762627439432119993814746248869764175429565999228505271495064935566526136255455155025724973186287560052460748440549609232150580975307369851170800332276234367036150969707185418613553314556921750257603549632604903728176992088778368919749797862144026095524420747405767461687003037431189998795767583516286399673296270609804045511965927979826491973897439616169009828510991420262713763860082200768012421416465108398785878805045513573921157403706295804540453835057206143024811310103326221257528128995354785264834945142704370271708150899775977958095472457056013043484823944965460063020949214506090663329259425854011631641771624638827494230334767071944065169732670185520764081226717457767690005364425487554889840706627678618085069321304433529275907310026866493728175300629073225272089986081847184796319378613561867164491956921967673157562978069790498230178202772343816808133097305036783092464130252320343642355147434421073593990997267998562639483601369910875554124751964671263924521686027430398786049530874306014558448281865085179718625447373314225080238566676056824294452879124399019099001201134736044196115511812318141013731364091125197295038681503454649802865061678573049749742283594918566761223134930426518700219557675700403925468424334580562659777060874674938365859100145753082472981918748077784393101713552088620131333787754869305665833150882437131076538599598302603785401067592445376595741951287829892453294336844611202952870180760212004012130973341395423701691068968571384724904167841223683937201819870627197541036785207479974662289392716182264146785383007231948813238850469099026226553831988846325997640227153537499968263032639422139072660350027441966604073821230054880540196692857790481838615669264554698868795728684550027178077385300534404291036480354954287552083463882773941195148228765751631108636868190795757585110757080382460135744210021878821966117632841874323891959356232047371064601894526976143274274322103460013628364499995386755522484189136327693441175102470149633500651850774118890564085471597919504191824968990344604674674001719368855494434992458638900466824187561919767067865434625767751781553250279186204032193196386358908855509425148963677339420539449969893671626586540951356639610661526073622854489460348309034243122375462963409084223482395002658318229477069115483815416540207667486346373731671708074234144791939202592597349741084013619190143007035473126672296251310683937416222410697741099296043887366520840595031662203727472267114275947517540281327309603829312074967585520493427396091784972737590138334588305690092709978643329514929485163479002707341027853695573980294171195862181878055726561575067728892937790786695868569402565224736962281046244008393903151054830946110718114710027579278124896894799315056711361344101475960478866000963707917072887069422713314525246813903162187968908940271558985945064833328967052493201247778660577595394716474648244431596019802294805684359153768691678443409741687716027714682655188504865191634255472609807537880098095832190392689474460733136662401389544093326907797303849118557334558622852041690226965455845199085415950272810956978859866371988071560885942389752533771241844822980278738055522930114151520528920152449550858796859035081169362129283162138725409483931112839478697689406177275500631607392927414519219252304902053760605418091578978090078089492326328429856627066301293379197111773783152338142632480548384752566935010053253046940964656310580230539541870193571960879364199874054065932199240526471261191526337276399067823840923254021065797658334629420645047544373140997007778689159088098768912394524414261749573533940709749137949674381950439246227910331657553023479679873777240148036940955050597867547606064036863543537778705205843262802469437150301826688927954094919526294502675494563031200666652923697277590737763879073546519038623530108452570878764270126656918681018883194514346388913514092657514952901080248649857117548856186304627754841319094453298723238387431589849580433664879184732270378925815283160001884397455556201087800821254581262275584152062429940332801225058011128506695839348595257951196990678694639691290422357616169715013126875543571096619215610774399076536490616130611165965554956872726242769934148304752982789586463620389257464338444415237364347169585917133911916290513159599524668863162610504954055312135204542507968571418010203446180298038379836578994133973521376627260276385146954410806268562752864726197189144396044769175461606916064554260836746555453189157376462287789573300303067254058832946092908028937134046109675432478847450813730567130831606284557192858203802665190055744858548518149119119947281018426553426864041192110319983744986353246442035387920630030302015917942032973162259143747939931356062715523132063356136106341730001748846311864522625788317818637744712956344391683818491470456411791868929333096891495854200750291199307046450239468475947430936216577553685605747796450766939505481789373099156838029542638244411964497284651477019223274422317465411972927088135242036205240285383107551540213794320592034761065006485233522548308502598109089358793282475333366539123179584755152800903137110914210917526030136711251231095082533810025365906901922572910625971572229738106212676750241971342361953578128019407909115990487471144088887578865166401172132597219056256534825394120152285375060356824821155252591433338531743247805981480742455060132462043447606459257110517741149653123239789717059055948432531929757097715309794636698087195941473228066858669717725896320251752450396899125355668516342362646758467037648489449595017090403118449018074793060497413513769818731827031178259228973301374689499045111898047225870334558870458854487800687093798935966211457453961057498345786795451345131677281677423868172660598423639070278305001730036111694459431706534623706018866460900391435078021563302763307361898282455091201000197063993793399284973190930294970958716985300964461089820444454295367514113517815000297082777878185898278248944177027448058634401668960632687930141645194349186580200435768476819243126401100859882854349381629755059061618039806902578351661502577904460622055195834727488351247267256997927986191519940001665414319269526051685984888084085523622048611312966591970080583469075405500102421267903515544084923579968996424405215428756740625769119118694315719156266703256407155804033350065890580190593570536437967799643247734210378756513506175870068788944299024650945074390307612196617502852246356550118697874980537388932608431955445608185495083149640235848635805883304402824241562488281566420753308385802168218987377444458753220773565567436274031880146082117049536588902056611451988829608129649483510670758650504616573115110467339197720634236892710181144779748806112832542821460510265761696240614860459804244431563856835164101050243412927643256867263677727577599891875564878126616386460320270365559548091507437875833518609487976921920050567452049238654922782155499757704799041695905846593511256421233634922826264040925099129396432226052075608931280826906496387892816004449732937059111840317198594228140116232096489909592121568690826854095118190935233090277416073820492251043811517668330366570176727785831667997047682379049610370054778556671838881460422487047036962218483765826219366514961917043265587635905442085652572224812248647529899952426906780588066915511027646295764044983592888666658385498029908185175721143467281794753707732304831624524320476061079077864560526120808125001527263078982820599770765796918893970682551752433217184708358912512985962039593696488985750884517592607491019366090129088697697445389868928844079739448680883015555398800862370295666837672435073456502025031924738209387385424558399327594791885581431758395400234398924664953846680064981528781188180973600676751001361732957029805892827190420522623048155226235024107388552108013988040846902701363199922709715298345820283274808894904012122045877526639851425658066779128554715977624282297653237247860627749117110499851533943693397074407028568230809033365252740722658192897820148864700400745654049754414129658226512142444721761622786105037225568081501563808284723530224208778837300816636575786118821034582280227093892958952950324709269896743038977180398462616168237463723647012242065856707530922556688550032353247879021349526439765591262027349594744099644252772079833500520835900947919987603860458041161517761205707634710438288181411192154669744206356202296556480493805720444890270026784981009535318217542693620312632789713781065947174345503825775208392710366492427101108021609823404498127977211599759892144487445677686969717277553603505260876852485227860310875553927922022168432435707294514325053435520005169669303965414426561625695891591195160456466899556959397727621108945024566121435337106049330493391928171639505536121625554370945759892675500848816281134171410922650190968514989657554063969308144680721385588308551592295155794269156133153560938587043692755918885386280508581890521682348038904914153925866711209902689615191999563242643878487298051664825129831268109348271417985539303270815552135074434038577294330295667395840576006629324455414335305734328730021202815756657404959726977978423216356687308493830356844405392936665848328039392347865882206865530290736111302621568412655857449433429421593382187489156681216951293252243569927261152078585906535604417299791134630791187849364005093196748753956989789369963155087468341206147532685589256497579949480944944918958622122575447427039520438150117099919448170458354338221432495572652958394572220996179402961590297804495240662232599299256644779314659086672121995965854715925131588425150274372436293787086349035704967224213572810206543893245350500749288933736230674936102056252807541288470024168665337704958807053393646016590662464559332054353802346445808223634885682185451456019205874873047643024980445465557500047390363365363778008489171016095608443570323670193393196443978805365284032570218906338109965342943767951631167855484617201400865231343544940968043743311471951973920889028490179423701314278331206843119039740467334015812203422176361013535793581085717296114498748232139310901924214219893792941396447021011518539562882494194014585225924089323441360235153277924520327288094091313658906454644384000116813490554428178726742420778031098958289854270010132608645283569185276831772867805965720299058577632076125287634657071786655791489636843561048747149603893092407547621736142003918915620606108357746513387370819790024039884967792060796352565275109470561451177137005152341259433868345255184122235230528230997296021016568507372938715858535404662606765149724280676384467125922438844056029315981307432528023571527872051306178500923110073252033527294050380180144896482353043587452280676890732192877411071133874558281327945281980676658987983445224719558470022247428025746514517869616529375310660235362270259598783410479429868608318863585763234066697534406045339176532907351453066182869375984629983628039795037959389173139800780918664178220595005874746377827187813094124935256089587330460303538932611813361163484061786380572390024211958632129171241837383768254357983743406463254851020793860153415563219819403745040428976608301793592494764522811360350661017189645050019199726592977492941243024333185575122246985085897605099976972352885332779774892318073705436611912549902265945103284225365091395319414242428024035812430824974254080415119003365126994685907227311209601252301544785845733613729054859376669908306731197269777316500361064958447944436296492175349088659408356002767570122807002824888208586149298105394263576532646232016587904117797836121724511130499098870731158578823135467029905672719241992985678199074550222579096040539512802920756392410953218009832788637652039195572849012442862530285907394000981687617638327245149957887504583735952125872124568602858792109795890963163057494088884025006477027028869048848997729513552968795797178965251914336373791632896873935927618396558018199157145526322373708356810298897495262669795928041620274224770616753784745154085948470530991545515999982525184505096527025637364643828855950058539350517930183341898014123210010631021482395290523660491932676692861200815577002284136191016433638334991346226489107034978687738712245357425868773575125990560598928072477994210606853736365995114268527163781388913564259255441330744749839813663634018249555496335329353872481087120962963912123286751746215898242935240126569466677983483907495528409673181308595442082117935085107659118818674002043350354362014657838794375590748613862960409212636709345307989641084047835627852885696049013942244499011506063145326982272829816585323712282695014494465662579349751729378323209154354139482933992061856225244249985732391464778722773704264992304791791468920917458772936819728373475836923180762956243130461214853483103366276925002071093469821457439508977244495900048856222853396214136599776955464968803827418994871997698880848781820068647260346979473397106352285580877437727106945921166929539795252479696611911586876104422593539762587358774646942741238715794117252299955546842886086097046704616817857158847420032252422659754323558489705540053027569473263112280482076661450372074443208771322557641822810138369747178489137587124396040015491400067911502402859004376130932626469165259271077125161319585410439095559998031840753985989441948229661264034728516027129898542306481046781416830776884081429786585979012024698089897373387507085603369340514592502556574441991706442930328527671754252014697615468090668438821009868378980754782896171986100436288060682772071270037598362026549197579237037185765133722207708836339645260167968712379819448615015870532259741430462273293490211641848295515573671440819390643611025402245287528207794449938989405299064242162817104948595356822178915920574035615065008914236088155759641760831200657548078539755332634076805915391348501564305097173437239278203304103627945942628175126784694122783601732571959588711252497452290205513187431400512820341388159030362385747479710650687270116318659027351249712644555191170511881568719339221678575057266745616676008434207750064047052110292777194980215461113662040134194502811165850127541466042914342389515747572838568557014459751050948008592332180406045614191473762241249988874609764246724745111430111098401141881509366497295041253341111100412177581418383116360655264853851906774709256239116557912841658632189905104130733032337090782174774333845262474729315147095461288900821482239888373140509238186810113091909276340863961011234002916180003301033787286070850592341677128964010248990348543711933165623847080178308639606966758594370613305129892514379475393728408514861599659749746049049084273603122062355588192499857701310686085496220281577878851790861775062380738828104930989889586384634404295527441212361190620154334097217830054244110107310169431054704236589618600716738172181718730113720604392885563415193136085566016238328424292283163642661603199457158384546735475336000662718345799612599790569632417024438802945816510951860147539061607545330430940082829096017849653081977888180112986419019686374896332938138442498781264009725997370824605148428465918868917042230142886110908808727181843094287792665813612017920125476523269793533354990621908761938766533553535548840723801062866833566403974960172115625217207610594589251248771219683125575482186118500234676873061738996444137854216390399477327020503892193083927282570446553023363299887139857710783122960305878670187803547318155659031938146398305041463832898292227266253257971588746758689628689346572003718624807324403731093862488740263187483392366294026815646213146397009899652254951875118676867424829671210972482604278847055418838188408974337162227014074936904740580946757898446405274094739614873449036335271935094901103420918851161698456938723701442566272509010614637644496875764768829804077020664209288818067518486973035540462249558618294821779573884034371024894139174987907828122457112482375696541769666715715801068016329746079621652067535529129679423913452426854648168794938191197617010169390098872599202257078056740254445883681577057366622203991670695686452406450363016732705645598160519742870123791715786944170914073196718381535482901477540892997192136593714291294506432955686303392572848891882178646129827172391499471399958177336034610035072532796967269586183700511158953694352572869311805550622562439325625872837307256650917449914732084398263013348570113445458072898685870125631651976204127822032948447531317893757550787177578363130528391862814827900052870304566439587700333091003393504871446822079143669809963947903380000049162974567811012498564998555640921126590204867077249382046051181279056270612899735690014371340257128730301701215713833993259125243768385157169763127649175354449725347760287337938238725474329403903188938261970342053221786444680684485197354720209597354263807541509495348769710240199576043801287081656612144008372314100706514936521009150257966168635694783974737477562290825526525695228674828305865609985491205048679477524328043075818861232915421361277633723308726659901143064622201927361789434320047826818332981883971165482459401152198590281698349873051281644223170591864328590921832529559398087371481938913349627808627139641049566412495805488407412319172602774317112009769006205715943874558332211972658433686146607487058105319348036052200698621461943502127355434674263269355302786760429923354300464130435970431154383785084513091368580521277787454479685417693713900405361464280166605777126108928165509997481860507441959842430473882386702923931052692040860782170994008539964194328559252125663113650160206052060266544743298561309211670347650229233376206331774060119716070520247087912171741341808324775699358781135286382997520486344433815896455275171734717325817134703018764738378146700327437510513393252152905066090177485681773164477695015960538129514611695678958348777592927353095941985318479254250648918520533973394920746458278455965807951834356756412218131562212568434114090669387920747357102183914203198217005007851456495737128872801437682061984111426082869643133314062350402397914474479035559214583849559507747621066040723678465709711178928059607188269790714520541538708461109084386200653390359668889839652116689780108881693244962514607553048778572816273233756729738161156412678408914011868259676054240509862526876623149217432345081175622811005786171833311661560896245935362591430881295632815486726089425643902101695058943986606600962709471286455920766134595506667041684640482204939887348004634258564076862869348747882457464340824213501168859645346666471978128512707612511591095483281689955004776650757546229191787326644686959839127264511974972990611385365969597417783472857852886549620536133083879224812877030440604950284903673148650823422797902782461112874312487591610103917000463372040229779099639781082859507023737998156505554969044579841702361407865377139753677907490636388709817396206755058690384470636839113834502634649674035324672821598522157486692229033499741050747669727681613382282511621942121679851512424045239412257892006521653675605232215617685622790288417257305003709576478076754034470944240801133814986444236377542285413178858239859624026500694187454566428358103363654101886515763647298998021983101257949051862949868158279196054647377835546228413238364083889785658351978610928905463845298735659899861491040469559455646958085052419705878463802023597380742506042170840163485000536986220882557687376880583788400921465269898211584570849044395271782462842168154146237795243247883589159231106072056768894519501877785916610907848015072799759825135128880881267942871486135853597879160755388351661422230124561407728967667332032258809133170256933348383313298458989758999343918141518994463316690696355230774666623727078302724027228569265802552551707500274093258929746056320684818458762457255671259401612501064061194283332925124300279196851954402188054726716901712889643453331377078157266826276162583733268660546717799511476010670396873555233507633101737283189353979428666442193746271585289525404298464591640000290035513364079110143311824243185545221574184450362617996957216057188249920867973107467926673099807651634738946266622476794178784293489292348787795064205408385315341893688229541480845807029495158141872018026628442971803088783626657929887821560916621109465207669896335003772954487951086249279463143110951635218772290890983014019160030326449264229043896984404371144593890420392668803362637063690805071563871912512570232008956864136458110744768204309145525962385222965347819512154446721299459562709821672069358091044933980417904926068790829358226926676696485049050347068711084871281194911222744894434631504730231792565759480461728124255647830606009467886452955785855875034178024959764619895100443564397619970708724302736579755773908441174580873874302844246613271688909794364804270654073259377332211444819316306914418883653705785283742280502242133766404182860758819680758708313029957705842063611533540942645820863047610662493983256908203954172861667255819049068557458332804657166673967283638880646247340109175212669010917188428050218940872433835392554753014294539401961863797084791032331662574044958759496953804817307043574811047542499388898246278348499007973359422581324328323981131978988276946536350299042452990170802531035159176274160332325729943572263898699421986965755084434454969543974445877201901634834249210982387680609121607922287737024709768330805246387027712539178090647665155861137706468010044764090743597279240975453214226963108509381361571164794195148547267287970246083443761110149710417527354650154022038141316440555624978239340568130747864043146221015084071392775133867910890446580457853494786328463409651354306507057797464824055381632109503053332018971667048742435049977370472996826162918752320060691102041907800906671635806343654668105111207409681846533806438167533975282651211809952423664013987510220612487714200761829806855027737138822089548582084111028335956125603525691209627339066594094485166635815534773042792039989702343658994543053705126840532328409816786757081629696981568727184228156758436933974237899066254241321932320590601483185676808876410499431760708438799095951126348617588845417119006342829535875570112730045802203766164934590345873255211029782116105659235100162960363093391401203330696056845483984151347792178284339662205833530660512998724039359163684514082461277155234811823844766879496396897565928073462705890314690163642038966872173588401101493368271888011426813295162062699977964119964911666324331574983896131994791277263680581098305690836538067188137196126111618633446643944995060914982490654535460535879122631736944224833939036125051655458193167914584530697041470015863538391607041165640628837828241810356358058781221056196414151837872130748779001310439432667973870514488443269926424149399978046317286094482756578835324758531773286648722287868529279812236423557064739533972312180105581506501252960110401541390848281325477940962265898893254893545861840297557708587440608494013070693295016226324248161260970813766914191018344150519708037498525749786185957637510716763640154431929448468602814887629321958687108368451396289498824708295106226627636798516164288390962663858834482541864296615342289681152489263040185300252717768605129799223882151259934438220622335345537707796998556983456994131096075189624499673511600044279252548978993126820208704444749231299621992175372453630016364917921610189987712267390981644664047342516374200108272830126663322555470656545134337936286079317328140924851602431385378517661421602300468700943380467239322437048102652410763922721435616994775353437061123438015470515107929228736489324609267600538616749402169554190060299377860215787878234047027425619768214342045705922168813340826492657916005193706764247380234867405031237641649464766228057900042688288068931969613436312189428639188940749437403804695353728557366435059927505516967914077397729184481863342219151329255382375134508011323627892425447516675999403652080320295156936170640208140370162288275307333679290071042516721496594571013567644660780483434578469162760863882147265368349844922958574894981768001351029965783477623647278487117413395988767543010119708456248639660721082589710619316773086157074730021292020312214293664573182673272726501913255843013810825261994034766944451003268537491206511253171840351453843604169137124653584666581100183968761998663907450241440798467565425093381180590629866389271542050733937381017902483576415773002077445731734379555269568795154041916018156074602673566779139118299606210448798967498424735517123079248271514804919313787828471126491362014446682832845490661509222508211478284920609393692466333057281995223041124084470071568653196938895052837266337105230804954517069367219825864550101676919028938760291597638784926772312000170902382130941791502022031657911148518698209845316678536316245905484255905036841651493570979916626983898028360810027811801553444200763260559587216582276683027297950600141025117033262057504922735974063269852955517259116296104067634257531000538064701478565495262744422083835954713629918686684627018744294185394250010748000276647444937563529460085619690535254885810664147229308778936270052502060049348651389686375709781744346189863458376598323182904060633509264881755994175459794302265697584699745646184519065100729702486206322919885105568373403844208768105709349305508894522207936957836816805405897735983743861716549397029688590362535720588432134000323020893190428798617062847180359434615850752367585510580536476570304492404242187156443867065952543522249968277407577406529236416830075210180034298718035529587199594378440844862607235211959148578612374031948667361166854218955696970734718892445338740684186938475273074870208787182832854555061499097300656540446360563565968604680662922792322808422901491602991911406899614245043633724125232021050761922541818693736385129416741862258689781945944803839098478922596211187164816018782341171453474752476687177484623015111584694320646371048398068372528034146665655838463226632060434947220420595392844560195249806990761178674941084344132185237334193174487163086280618923944959286030842843677834495141734688744903430403181553902383924165630500349003801512955356857233658232553166902873355973567306285013904201272196690488916669063197914248984086879941937678260242757797024478302384612163136513503800756370440595815654588982263434145707646558258278806710483590687528178233003381910560918651632272986840714112090245468824440707158620737005011648754851075992839277891830313326252836646534475380119081487387325604272548970886637578480281466767423083857780359965182427724927195249837159321838505423134607831516991753895909379410765852431750970834930598630627850099354826719166874130430848114886630415251440553879050235434302121330082964127065271981088202525787629618281218442575015026263238050829785718320671783978513285906472098713017015012172392186556649955567740074829972719069317535260241928991634551178062495295304132987011977462742320847929989574509222306632469728316736960559828221437279542437761489552657733167430226394744502964235503998053225846170148443915867955006794463592222513443245290613521572679307296010923030994184565099601777254711297489218660399016841895342341231127443550534384981198090655370783634336099030254472008740815407656523816087589458647071502491435409124708681819382880502262269745063295732226672735334580033865971118552815097644368978350626905780105472112349411407018968886088122790645787265628221433262276481999857588290954926000437891567174239919622842510315625134059223259429446338113513111176319040884829262662894619140661942937497565894035076147193459364384539022215293117405521565700520630785473583873595449367115618325777771464679944368251717728067625726924273924778465617825766538950831227669649777111155398099694346573241591850495662754406256983944597330159700990694727275785401689764292793826869720186806402127759742286496529522814641479728771390166966692864586444727186696569513102370689888049335026756744243205774485945149673758596741509428973109113626301656202022945161867993834151701691071284421000046126487543198958008480355177685942021359878617452548834957512573450543521222308905702983970249168450491513029043476889047192459560008486319666311936482453721371518323324210327552949323704128983945532429969624875182964685638719312720876121759378404047951296193885610613930579005662366493869577612237392722781943044599254886680589036493855256857524360385795409392833515448860150929176840894569617859742149441379603105383467191604789912825178044052991724026127763932662094197013710395238581474265224570655911082188892917689257875537320617905356408434723440324610044155725116670543233958289517822387833586511077441943696394241690089050785620046833652151704010008090067123191999853764642037923420416034626364405902111709685640229517748021983287074412152608128086007810775923902630676619775378888157210641784069662676543032026184731608999578503462079140959746493612118154606640560078690611610252083718206597051172598598270009580287685576027430145150686927656365697178563934120467781282389505311963247681932177938021632905405567568972718158966440903311347893414585177856506281472810161234488820538453696604472207543765129204850665462273316511776026331792101566944224886381965336259693267897557535376339556527665185698456795129444595546091373496221721550893913444138676973671334513917177730118535525054379684979775058876269206283873058693052222537880801206390466088569914348451830662369924665102981210015674792214585058361194540267265248075882391813713753174750679765330050806306631052542527043037881086846054456714229172539189624510152743452851588084053230335347433412508004754636071597021934401081597992670048450587719910614702557466581351309904223422492846815120031980356931786008135504515400147407165034871274621436814721801719982739035044361527168852006065781545712828227456771499228035519743595007493041599894180724473200806868811533809138979237607268625252169935009315983199501777474357881558635293618928497823438090621793004096792125390505118158538439925288497226832137544977287270717133782091238536481519085582050107073822036040545163446131448894669612917525446576546382828207270006164493440901813544917962283849679130115210607461704809148025587675939902430328841926117675899049462360222901567275637243167113754894561237136833036094123091348747690158664186210544455018446570223227122463205577082479325794456058028581778192252910912396609721854603005301062243889455486129595714810219803840840695142910448402966884725233940363586205621179858651948324365632925570240697422849758626469860355978891496304240338391915615867848581636744183535796370658469309481616430558248450196850844293820487843824896388205193533555644166359665829360072765267286125220104873878852584407295570375611213484063744735050011005391050815559084042766263616093116092420127602569369069073668749482470785889235452685850570372165605793177012805182830966708471718920391324450159466932090567910037013235381806099881545743881466342958874400726991953921847110137373288481194014224106987519734234000284379814645219840584531685180403930869858829791811586785038065070153156658438673235550422614631631916319237390106574449111140638371186174577393431820720820402936861316271685052714029169728568249663399442861241368768450452617990015436920810215604153383527922246925196204109250711162756768583266538293181775045231681723835947446932846111167746384880109008458040662559558951692512559794162862941910236048028566533669435154988208532453657052554559806587555448433137530903478777764490531587320262728672431215113045539199661962618638710658395310968378239108239389862668109070200253403426402374008988711525904153252279780089933886864177358565176842857932267938815191098206586894444522863896596205890624969961581409178618707001295650425503712186869100432416300368914574479886871886346629549920685475078122482991637646663323629288682436120812815017009792545350310460589855182696882073330484560946272774699340127355911467046079832325207189445070931548204457559923911708649743838957872299301808516881814071873650087714538040694220405308872879499530106893219881654401641802768047079425864736673308539384695072504048942789013037799024301249723994491682830384105868557065709982834808395392911965635362277796877857880829228273112722107685341693176771591623617545927537934791812271984735584341176818196352013467090015329556694536161547686817769614418050457504084933232342222346855819226792064524163362477248556125678916817650963625089819719866692332895612899929263428986468350398849016025410348032637901261604615860760466309898345232251985855368850982818551717059962960086097054221100269422105866581218983761374295118187056823987749378927713766823746789946708854436598205676231885101995157774745579773179324746383649871452114784920539292483569437663625519124558836232173781307010884386975251850274399468589035613895657827184160595987992280980097898498015915290006142536182653649032444209349458478639187623757644977384454954606780266208695946450038549837638089560646966465259766070409406289814293855422296606822890810888715120176239521672726235589231795538211567911596009139295421162215794460938372122061688217923396405451479643957521071147792358189964339409359041360920544758013832555572427857245319485404943087054779117575491804526454903266269392704567063851882100095230101126286207189765550541124871129811688249474188274988376161374506497085948416510548815060859769064388864390901359131877641800794118302642178245235718652599526276961982733368529116087231211362535676241034877723715318784789691201890159570663032256052435945675014906493090178884862611507652732312371080941648777038044678055822083364291870122518291822109945169442667536482777125446971038428305658418137103351194504476201459879952480566808919604357217053859493203878867827209845737508517219554925735393297161366668989413085516021096810355020377689357767650531289381801497474110871031732407456896020747322507270683459851521061253965863490151234035193271477628629647302071419169186644594569905838159672318025337790357487445265911012261999540398215733432543198600598533767173463703266226693579944941148754996805125268643104911841231718687551486356264187999206217700736733042644965292094955953494569450610135577282775528640277976255929389662038798197619646907341907821797766189705490536920748461444476881879643100315082851801562883998978660951888468730859759031447019339983330268335719303577116594552779900113049526792250755699939068182928708251385731978369126832059109060814073200766640433376047587384131386146374193646928692762276803444044680875703117860378333977221973945626344937426422323704748250035631833934203836850156932557786117804938897015734407524815567644932304669929963173765150648378460157868321937405441409459328570524913137434631920448237431433122990821296312534623684032803641194194134399399292647818375025659602405522541113295245899558802838881622438128846855947673057417395102138490389141898772196387663450751145958520992093964126330018762554451662015196453259040084288340111593815571966132284014525863683941218976754321595524687046187040474471713874547214829962903189335107777775279624140841971489697043687709514586416363525942732436325373430586723262287967704377007446766598620135376258081146258848887604815858453748050874656931200539636512184002740835297865730262729269481085426324714431259650985346420440990165240453582618690399001436640524782508880884238926546277121297563578027635857989620164134374552241598961469062498258328917056316419079467161620024194343117138611731469828183526544197196794595603130284666891126003451836460128279710573664056624984509887259325352374080233207226913892111450796386586066239328048353429253027964726606964933766016437545562230577477402318988520293439608323760160371678268407556915917070666967704351777457344357862776826097343561581803527304835758747179111157666782633704267168924317194107510300073814995849797906863254818633050346377870523480617567001040480218600148183666290832443977017064933244088126015795292223604523192470054871046999832584969471045163776725913930527742189628468883017798700895989846005203936673551015734265293399050893081087401396099279321833852992557686233988672678091159277725900163512553956181209953235014448550010680948737081390957908090409852750598862324828571533212217723161221394973523619080526071165577517774320351643380657683961519532235761983035260758988420422056243662527930828636239750486813798600835906890030956954370060297411475878004751889029476377634067425837246046212089642269359624707606040290568435990904770147034668449088236441514156522127409990901949137908805156070480241052863762768647605774852030971459252773902692197712425220617822564942578873274221406402671870953677093936522797547734557500647287009874137747805541813085572646669331048276906875029892010858552624520344188060909257652576833770619440620077658048338735934371827168903431296700361590959719598495913374115192051203432460132677738675945378103151232695720151852756573852002381079452315232119853838755622399577002870731178941776988122471082124160137363586442915064487875988292895606164103427901839425289371544868166388594072687296600384471980787266407869011156184809376482376265535591527211331880646159679972951539834616518486148193856778387564310665788569715225407755551173003992318621352722274206224244226830280298844984643492875749956400353698562644356479928409536257437303503583279281228848852921514815753435902083429325787814972445946065491645765595689416241084374997602638115777565562074202070806259460059995543181320634990532208308872846047138326454474081190438735550994713834610602975082011958524635428267092480007432404357515672950337481466492698531261346036649012884780184909111826476149068514461364853423836961159062983148357781009262834369096436479515592715030355833090330671115961508018832942880186198559718690215340772661465442195252821577634273508964133948429765867516232741711780369585948172430962677548108576266441160256345356242303254211019536877306779791373516298943851304759016499673761368274364243272014044866391904661447409272141088598543268037887299510606851751951964345704769200097494601611594336126237322795682581429218897899862424765168133055342958406481974006301204580081565813575445068254376936364093028370082870033585682140888713272333324384143576618590327648318087381925279875059841180414148598019745741129079400460752225509165080783829265947731417884618543304963241723171809204306630573485588710293971671550647867670915121234419663414827919275969827942246137983054423742313456810067336144857547326497487250541819948259993941798545856699329826610894075138237432615585420469889501231479961549450976674739115918579110956666556260333897415768020136551964738138512384491502229384449217577065866104247266024192725419558017457677529816753292378484812259506723152733730122710774790425652099352563600543476137265183266329275938725286532478392710335363110244598885990744284397426781829942099770714370818981241137290897726518428766273948392731866381166642385226583015101396840821652095094727281829703073228045729702042832499477332368651497643887990475528456039737053874433255012400279752790183312370042715369921908884538911126777440425400639243599683622131291104078902837280417944827112690055305306127849570240047811038635709496812754881670676814142098397970805717817858376420645939035071896086689302275471049791758466759337492454694677987987404431641799708518362514837125418595556472726268483858024089061586453084374627968897337101429458761346805298501810624213225070113981588275303787784670401810345676799759364724346719566106521579005245155243503494705364078241434443078340494337793851418955508043053171503208684191822389242519353154617913150529867732320012204705313504337669492997397311174745903323993635730410867852151957496355455606219452257652234219668400578434330075531718708164944048064775500291564309735558050092577860444397266703994913541200064635329773561708846972534844831645661584931922060262419922322386684044104903923482831510978164210013286983594126833012258036237855926992366232041987151893095870804013461627815861296174926543381377538620781087295612488717272474370363125349833463948990711019456302243915757926084825770429761195944690100611025947976548772192731560693920227208278323997262924223991740956027346222845833506959890993958148481146184407356441759590221897794147759831024000795430385369257419808709761786314811767760458440780133534064324655973463021380952202239831158763026044698619970636743896065997303798306767530624082391257577190982246733811175904741898066586083825961688263645365842842835564978473482063694674055788768314655055841828375566354838900856296808419864654766844826779599954066121312934956773584215694890088463643233822545573458185553005406639011420112385219303755964056875031906230232511161515025670234847224610780399169167370562505758438555315153958920044545824403721935309418321662351831731389421491377965969689880339348465453056795344545387104470192074903365985223201541272168649626736980336951323179235802573292908699338931177366958981444106732921125859406408718714915525298721707953408990345863944342690388739065437527856694579251793947712645906551555188471290625626368354156053012873337631513451089158421365218105889260366567250227171362702157276497647520074068259752476559073152318283592980465552840660250540815728759012120877141962708607740574495081479685193504566466403186754366701900800985279073911468949012392785989080618375656654315663529798863478403385593213936259839432054020449997842912542034717250631088755044375974627715487656929169862993846633544844583900744955372608366719549664952516366487943417304575756950116117483281494062151903298099443246712691029887566354466370628522145303416146783506960720578871693778845002927605481243076850490100595730722740367787676895696050633685987242321638006671394955996443312117751186522342945447713187102822244798617425360995487872722112746741291206677979792657972416970703309120631080508750144363937280459591210900924145039989953353485947443536767801368161629649912816510441249717515572766592071150836051685898568192215847994938734469360062575271752414364213517750661261049829594030595394268959405508620455060800003414589346312349073459250527508692318951050001999952834835130839343890334175464175893086532856582619268258872391062617671450177082733300327998282943910477640256960565121108864711890603946689587535492103490841433604774769712347368746599295161632740695609062382908807606084630264283655266661811021152446629093632346206128406859106535281793931495457936305965674942155741070301126801323548659212754319009981899052236587792150495638201920011006517964755949674454267776366535104606220001292921522116598143604605220519895021954906277122494331269232821557349582359305551618239476318761412619262855077469637772963859926296790014407561803231652145415164447465529382812531239800597771132572315789074333944400052133835028324625492032471966004041978459190206895440655052605023435180391411943111164176230154055277683280625145403197735720006524990972313797830094141945091562458483861322934336427156647894445556660373993019610260667359317337499278658442782029944877217686733342654673764192970330274858830830600049125567589364824158546029460819118416573187929573473699568215841357388645877166428920458026214476945261384797972979282281842646755675374170851723929346068899730852822577355836616739414151007664317621960450805531351992197754831746780456772705479860193464198257386377941860236511825642442897049404037688031716347021779293179560935683745934100543452255527549490411658743918710880018737525983512227251559893671916007503327067639166771174640060783383978778370453690716202955214942680809450429944945403014381230734455332644277347635695459738756730375712487236813897807031252671629317643227614945223324213995729804764493609361096951507695456433650002284991837502960158557553159186335992051986527011154019382972119012990505183025253152478997646282249961690906504413672561612197418812921950286105571626822443595527627614977194542186316156764786958421268131796559004044704767984283962562409329511649259701393320564133584455364735611173873707340783743925710878354852294672348436344948834005472956638330100038010519984702040339115279139833999255353338837339695132501128809639787896466516556969096825349692942313340763785513892991018302602744589361468371354930572300968915576841657349622438190206052834289762557387671653442484080917518391297211840091176304687824919452005106659099827761446904422878099438609926019954169227852173395182110520007448566807186370052961401687088904317937764212668431212087159000603303327658381735788679593148556344865793440790121895874422537527342746078403249135555830993027947675576194815349721976818203039772517300232669724555614244157776796834558200513157777237084747930957139135158629558814811421813499801148713696434214360125308097335323972510509367290704807512368142831401486568880837744675593366815230266502395660068096631822714450721089954458832959558730910932126702744090890416062965095647274058935344446172789246540600391366339449382221473758779350647728544684033927147043795767711321008626769751289830433653483195685802778757711926440295916229124099804340968163951819360500679798497413422904461551215764473964760923874993767614916151398523764994126607048160055435452725306524137371611766696095833494849075962578050615499054986609815602973384579733251994425168095824848598909551752983911593617939990836029944413941415817386644887005423946268079457655783697152551982349914914809883372016640425606273969757867410953821731282810923085279674993684134238070677833138418128003781461501327065653328311903835692542056705196656677732852486865666562389334323738895790929028477301451904736595878369357171862945837538819615718947809143060827622629494587474813096687603639751857130088623135316031290853158760366121762449388259591024888669049792206877965905385489012865453093015250312422282559239440576788594165775107629975278997465672952662392540478345066756620800116690053616148111590621612639823552492281934419617186603603249364131858088808371255203384216386458134314735469204448299824379668871753589332898995263734612866782210873716641415973432096332636261082636086775679339052254516625902642354989909180946972539163681258938243883090054513475433901225717834461207013033326007880356474353058608337460870473934279902695264089534578963702132390874109121961246981217283562101386669533764779944970677847620684988456510698177217114620294944972418892098470736768625742947018974675346002606202458322162283684791344869077532542201329411057356020931791345372821840003348375853407889161737270349447561666364324648693886481387402877969155347279024461311331078347224126594588811710972435242886597987197113580613385517503455512057489610824780725496369110104795472183262364009935625965466320938078224472882675376676871865594170183527313316026169604538387294392026731851760236484897046666166444122125148550600341644254993933341138866578031216616687080121511782080444857323487219992831105327093984997555262953723253579546040441814142030878976140914374681267377435475155898683165351200506962196086399271350506879469580811378703784523468383852070018030052325533978531135652383125347421999768589053080635904400654800078270019761626583127996590571037966167491439684196622637503589573373913909433370571358362755668647242939417224227906366111049581114936558123514680970278735914113544560417851737700520490916772826002087207876387965701333669062991292842534497277262846474904744027724345649820741362451427639625176123028057516830913863539019784710297659357766950570218468864844446691564651378030421350931478444192139933985225796365122472194864624186166637820790583111144647198099713390312564662569737567993054452348851470646516721320868516113263439371172263268206255431448168452117872963577598064053481410249593240330479480955872415355784165653629943734579155679176835358051661644524573382823986817487159531166216188538125743203251178726313524697907107371266885971370425415011378948531960850758371958835297075964004244705906335748964484258837921196501933472401587597116225145569921594918027812845414014974705104527932990268011078286618571762909251265324304477076270100249818464657476468346683364817918372841658573908015592767842406748290233531515533915725235300162807738711337653675329405505976443325947320296253443420052977438667819171392141319680457797264508159151170602673760601020856142344680535910609322161344121472920363634236332758827788713918835432924293763385091135768041034926371293843244283724145785307788584881330682045807296521456006393418845433777811143607575283948860418938873238814585709142573220098114629032987847193705496818544577046221152397234232200157759480865803383779448752957114544182058652338165222058030301253385307621353651677495636848025871750113979624412403979245559799768284181212955057280207459370457980702587847653162702464946881084239139214504481492851308100498899062557216254817260615258204340117589680066319080525470346411960098061487074685852509596064200474748214663048469778351920557357600398416184728910104157271271502965935623957116626427074431350982698190677302815770517385012654206347490996069914780844011699838702052675915822081085190043993419284367988703140370233609607477523652936014755778683366644822357616096587876753618325781821203573015716580885167141447259644053438134315011221351813543183018970948929989879632396078864683799274039941327790636755088038194609398449769209620550268230909929281696290597968600070961834382824924219739005838950204526221678034715771759646578450832834367570108795190336133767898289746526359169910560475707474017746669091484096283421964143370247425185667730043726721642256114623570125548782148668730231711135818585493996624639368201275353479698434463339303785481900993196912989554620660192343828621629642963357814261317629339248738788808480335757788532026926148029498472605413548472154048393898998110427029918498421390074483114846114760941312225840594842144214063063800590605114247379925884364209287037119644979046556957098793613035714947633835429439762997105121829145488763066433007519104121190134541842370681028909989318886556633227746878291478123086855984320127708724691602367437860816135732673420281335445460333202373810597938624562363265907476950468857309477138338785236948733455197787683691061371201724031511826333223058947891051909666089591581571889958301684278074148951551921784844583561449097165139823913051345718918830641020037930716200586967536802370813049072420045147868892195992294972983568603214807177694031194974186051666915515793958107187815391659841837052636776377534083821826215205068204561958618061561398717611846983812666992614124503850115416904222147214537203583105967015756380297427431387174712737308505333657104048807590332218653026867292874133008611951739733641344726458407504514557416693905377928578480276109165343937615817459241111794092569696263227612331563120767459110525406697849671084184183664219611629513694443555353426261203360029383148367918124759936572411691532797286013962661063827169566786847767204607565854389217044975774769586417059119908155245634228845767806442261115013237873649098601526292364908404853165218242561093633242328724887865914824450830584799316085168313559887232489102939532445443404702646504716388756041908420081959217644846475275089863520866526396027056914286305403819753324110980926985988022591984727919729271078019011215690479509929803491670532946481315177721707309106885373821548737267896355975454790679454604947298875727732186113472126140003682837578974546745975622950727093693856054841210385276915628119888820767561264955623227783836631505854719033129493642045368385605444250866986603780051104383239559468142225126276546383297406175014067423800027042816052489744516054255613893673684967660728074550057335343625200125979609636363734669833992547561099044207982856976124960583830810392458813386881823662709132077678735559270856608657022969462367054779796132878110465738177568319940151150770691886502202743616663002137061980185599022049052929365388983160590771882160732966505129156109001855065198177241230915152238156177678952458153669846248833349880218712697596592861434913232656390159474744027028773840564345187608811868923170244695943303743194730198036147764762292759550100634102700571734149456320487227519524572175395424216655577269556593526415221653776901217721127333096095251349405817454672348559548164954666617492522246118348005785102113456079939414088182891121281723176373619258860818731605804578709863291309695801047249774209191955682370675433860155326514049552476498315898235441000510128833371365205945425430992334217310787864870479456102179841555346880930235794750185323589254908270255592577824059194061595808499929278199269505969807657314183483295809856660159063443038523260888299450508746421441926080608914232080738976999219725936200614932762165377216948422381532905867446479161762626345573826754443220679111230635368232015348451813779472565914266296618983218998628073949498048964785169595635432143458155414245961551066630846388708461486648478873447273617157152935361636434495594941600972920054001276774473061566158803122022181869205874455045248849667821043564133063766664496193757218210765860396463355263145369078948610590601760527848358825547934573035604530453059838306916644892572337078296381693906562552808630342090970929034097139783349488280184450734370118880749395288396399625128453738775434843149098313376644041207097368299227260773533533794487765692647072531758805054813903714835802164941627420419386388706521321851309794461387992804980550254869731004164357652636046253297308670252433191643948718620327134030787078927153399632118927214508269029913236708809641318487413852846740628800330241369125030441615822993554441345870567821412183905506368675823750648941243971356076449862513102924425639529921465302882791810495625286944788224646227480674926873312010895427417507742867389188379091612296271735857561582759377350948507644637635678415505868901798209953107491492289939343754868795658053172737158015181018174785992818147680901330730696151891913886378884685898528425927971171443639097301119290772863641366718135956334377686964008594691930984022493170100578664388116667999431646255877529131299478988666036295585733775800258051384787912854690676126098756650618576803240183503136961250230591740921480484372788548715052295008266498731807282538705862596252487683279007702906834832223715831182986960606621055352915713258317240434099860995769337658683589878958963488741283467780322686179563444232778453565003066432815057888808038604567080577683555897090300664214521613147526855702296319455028252995530559491141650648388630209013943803606705707952905549083084642529672670942843846785083524461704254453800709923205273701907270766058555220813016840005199900793015447339774688276363946404908721162007730599362299115429821571967593397720789616830243672971892776556286446308169895182636109394481175833458318776316491638305126482593102046050845813122036112813964195269207527349370190972027232359950020680897933357129544193687380947869195226959363206283086765461475535635509332421682927414994842489421190930215733501577813568829524698917001989579598980150859993972145061766031360719608100126807631570828308503318598401714497241405561453015784508678006630814472584135635916061729901952001497871134812963000555734840025224238353360943834748362813858204436951083792040712192676006481281397721958107351300579021798679838143111884611395460786088626033972361074960460838142139510032297046384376145850934363699427182686941104969303351564936587020832321948086128453685579246641150254910978993450294058606600640452509865712170152631274067175532008410855091256342403733185285452679520513081230608570907840058704322973008470278977744161115252337283020412934434845737063363745528219342451444624872724070814021624853471576678270359512240832375846795675118146339012913680026493131438598047192419130419785109913222306630238501161728201904965218120009538550536128532336769540541997220026621544756642447008598667300127484079196510653819673927030910531902059798733408449846765479004582657393889119531849085926978694732448601069907518812662319544092070643816787047253102191077796253208406176631039078982337064102018150068637776544730986616560984748253188782630070213709250428183966782831505999106907609734337823920067126599118346138778384084884930315579780162914099178682976293607113424010786647659732078246880134759871197680959608915595770484196324519394061549475023657664072275550069998933755482628832766606364787874375808875847470979278307169206250206924716047255739903539972741830092633963153538091134392444281263936353136487933741057590611199906587275706671962201000809915213121410861133722809362942195064551575993449381065175353129356488816946197045581444752725590304335426926209020408159751329610589521942875957074592064350290890458111627837794061427839626072824240235915063331472441492280743287204082058663508324709329761262455444886308730038891778625006869873367730541737748725381844836495904957323991327372514521135567668407058516499003570954931250197311733693963385794032552918606458833041951972651093850499278454727545648181974940977288527346022511412288465269032453262334956878671984052583391445581927704364191327466432752846083831442123384639306261285731355781914049447898581022421363979068596068812439419705834871986024027443116776062227027432069378893293710239577279721179192987143326407822504776683143787158448419915254057022309334807124278941477759537268190961347687449801859798195331623575290899521023404239737441858581160762004304800401543809077260905848113570440200751151634557836479878390228793128374702162254407381938603466503958491332501585646532761077711616566731983080098156343977853289156821943455329513771814151512722884952268258693824891050568965005099989785083438463718797728420178129351745829053303266308244595663541161253688692715681013248335334635882510904722461586372907887754710787795123769956786998631734168937911202173245608810920292520563064778777574448054381546742780575756651710991759651021727596515039273583343524940952203793356852174592820092299063872777235719182256125985469479209213808603843219222448309583828301189390803833957744186814721475094538511519394356173360689315192743901622263723179520158057115205922691197453663860868840868528478244679010272845274435143250839927029195862608130641441632692415556140110083017927684420693476014596177368851987341481452970757078290414460674347609970040574270966754680548594497390530431649910647110018465189712673227447713515261021081250978510722908269462822248107311494226031307469135705781167416986589545650123844140446730479600038426509466021238884903435405744831703863887049184858715323376973347745914616440614259104194748544668701291195035986113309689417822984320658036662387599681958798410013446875929877880110821145773901418138420688073696332839210584377130346598544969424109185654510513354254927999461706409385846544939625909332621225303165381023106792469871706859713866525275054440527735160501150986493457183716222662524228295724590951406681338133723108017970961638638953658092954188563661891974920730442774126357263965966819672842495215458049270209152449584151295621740226849194838572785416435376657132856360962362483793231813716639780991094344601550482697294567080544314098368333706964186436776456372362775605736564280413779160040809612721644874031685088208575502412541154496777198188401225533930233922533737392504013185861085045682624314075743450360803451861840170646003727317200154855339132520568899190495113575564871818889043141131352954185860701605163108143281668512862102150978569028393253685087954198575039452807041951725191807405897355417827072285071149602937008290716984389906804867575442536704152077396467562835068286093346644314046195777542811438360523184230022068092954697284875126711476525069793966592169408795201696578938786235334125334641575423105533973386063713228845684884301341524084304147386896135661507667874117470519832249476568010456024653717481450248715762654640935009798251423028365285317828980503064217345865240252900287090710166714312807530612878032027058534287568415737197017850494548811744539401490281120465030731220856042577318591431341278052367262092119942509142666604453667070192385702670490092253883661122759247276240942162276287280502308903791468090002045482185988410300463387841907645986314151130537773525739506109553106628041291616137440186506280368573897357658533321675718842194096072344094382824294474505757637776110885984348864393144317949727113866578829926636526827670322034068008179665638933575372667743947556042030651300303715875461480042374329477888651925825260321844029901978730436285555091850037631477500984545497828819214126685358613185266186837773958124084594637619861395217704159713384248466259261705081275207673827749264288726225181265725002071593591519322331198186737973021904511699126112863807725532221397661339328734443704193098214656205712456986688852003234761366623695683008425212810891557792715673239405410000191339172217468710868082706494186905219855976633004356316418904329855975734460809567469666866976507425753163289668489152298234062558234308318852452897541706957968114843996233145159761891986551712728031051925169208519740814611026226187337908463272648335731101583592937615528103752400844687131597712109256566396724978464257121603328626755796301282276545989803989737584753304785874039375529613034983782591720839339698128866004708752609900872105934487582104276472045647092615645383736584231920478370288553793294180136676738784610769731729801024953814123086436072389358686388926294191999737458438280288855473056501069310696040577207949889354674562104067333341548352795420656547040613136230448854209770561541466946903584432161321204133384459792438852492194187112636150799570944920093125578673664123550114125339635814220617792965291198392410924875498633041162636095717069770440187173249640075639865168895334891205804782402863941371073660107846766415726447604779182444328392132849585851707251124667818067479405825954765416444426982792425580733099535432534409369129105788352103987535805646667618847794854095231253641276121867504216289159142934270826432745448489906663996300945618789210139831807106285370074334262911041550848320016112492915850879016082761209775909273978688557676518602928119265293839865288330157898191313831484857938805320580592787985233690286337519578362065702139426117316461036888422772346317852541460784401226696515456762052448535978011888975433232134420307286163007649348282936440453162946627469470925858511292777550391496964120432156162917330993081769418750679069827071869509140271676663604944024319540963152896677846145277815815580316018911468256160713439512014101322946342499043128108864353162779501220686974896867926965893968610173262883849226005329034356632957268116410210629121879615043148985106534119347843573297181077832404559085645461241055144655443858926556201367425204785558856945227687571812289549999985706369254064354445080071234993293181364811292813090771051409191331698050919326961662614313376892275445127849287761776982093927396360621060262553078154887723220454059046598857944954344410285905479150146763516239571336238384643080240039095328243948049787040694221978929904035038374405567090996108141984495310079009830976835694862322135886636850808570958451814965590893402333329811827474585099026738318062891656454144409991924810974080958245852721459989251666654596963933709280368335264888390633460792907005968353837825172897079751107090947352347849360539692955106673517904878429393763677258067180816380084632589610360268133706470956626325901995016441526190558335365639813553538450974038576706800480003110089990029902622153290741403690453885717722320629452628968342764141937675364844456127452495418233825010878703914781814018671265401826477548537894277554138111020805168542340142208654952236672218909736372061923463344192424068767667870554312566311067468013329368580857051971371433734029156549001248840213382372748727351741694607576026175454475538624841783242893192497086646318736147782500821713760916955674801724438115615738841258403499985959562598422542790184485284758207819826179457076789282312816374562604698757199843068797449230096804232411733638908972963122546370194487135374846791712690196984746883386462235169156919277093503680671152181085164144275096026146015028248663490156635758456274528438479847891452100446462496447734697995227960310933069540269009864528405363424471844510654892812159856453897452809471348546231229159221514656399591455383048096936801143847083178693929465402772842235031003500802878212787139384394922453452004070751705734715757655582849514634671145216306344757158248546855436021504567981831380656292246393910380032698999625217666851990154311871868769749406046418614963496958296516480773224817856077264488725922495276985297479010713642827654353349916973907559338573468436830437772400232547301520623627465417591412591959793890621514872410101263486884874148126004005489042289593380253119468455034264426484971330138050258433743837599382011955083319923973367171835834932581878447231976570833026408180994832787779358921636359320058405904517825875732559559090788733134365432158472233954266761182839938514658978055006743681628523500883395369060165818644675968078433290694437237404120970805194789281835109640194356318805295643498536610410011162160696699569057255956164690680192265405888951891328527437131681964833441123599256548824639272177886993660933620612403926689227096619554684141679316386309622006718303829563208165442950984571427027188595886098687581733587005881986505162835292504812294814919621238579618389320762394527184820180214297495257495093381981512999208076870105527285886119562995891246195383301033348653764378004412206575116343128117004644584911559777046038404859776450730658107133198873758863839172860454970729829662403204508166124869592031698029434324678120856520726952949463657673543214592624529792337531129993168350250729878590422145279586809700460947975622001710121262263026972516724483650814402290640366730984152495421595335673696476536849105365853168767940169303246991517945470863407910455871730413146710379060202104699860394888238559388314586439010025089386712228985493994931631357910961035620942480301890181012009461658465259191544889876719393864242328697942001097573457000642609312374962692077470106507371795755966541952797141405921042676947954656544567237579122988215150650644989581583078825759184428898022097347855785145545032780814847694028609054176283724194391118218174305899465557656904639811923789485907647903395957349683927678096862976779202129675412568388849433938799120599543671210190639750409804573457856753561352713200811926010256402191983801387189169931623327813707840331896469259133129780632125835327996801495801182932630776080177255408745997897433572466187639379786947124052447988600584394401367362936896802310901931687868216206710359064084518094355531448568034621491802675777383203255396765922982393170624047672512267324167285714471437471701269873148212179981461855762447792956990016923975620755843136592887479481059922668162124973777558765458497963338217006457029796683765483955090009858474302828835569665263751369094030033970240205056824108896401776509943568551549679022914300936717470456531129907515820290429076615283085442824775627438866469653939706657997978525007873449165859478633830203678494553123010748543614524757754698268654127641572617984926874534319390631051946435695102733391541568547124230245181985007565277477125109060177256453595878194671830216644103159789532103599663917534976717403261498549265903728421988519312613866380922450159782003140902843943690613527577536534807225091487884763454210093717893268941187996767052942722065581044372225422877811243496872806180144582374385684319689582835842146605675765743075377616718304288116801055735410498752928137329463973845169745496492018801891272528165080389152982310272286662622831765297452388432215449418867487735043035680263845631439940232897808552952674798773214743461694406923062142952047302691874681833913925193754953722734284750524340098885748867735162261621738722637502609654980655401272411669628929162559895953827246947804147148680177569177762287107509173722438663287453172402882910749343609470507928573946763680522258647677151861744298635234374006366513719620236379786335634700528868791898859546451156181460093185591921775173642816010908795889496800048668309660503997467686954737150169740084578823352572226261796011854099061434262638798713790544944666626821889914908817540972143268176962945455227855050898278781927739400771657106176007643783785644164258021467660307861379382425692621766029600498430241224775999018170024894210348041514286910839673625631098576632097035569607525214868531966247979269255321166276936936099392262661353480495159875557723312122856923258571384832516494271755145862587462182262721320522470815077573684022972136822898754151572805202898127904920123375754593255092554726860728565373279038988634958146182451418531617509526405010256562092322815125010807888471926403366404010258773188671679478754877268730852617263139027041639895025629904846137026247671536800564693139492685986324635994865123654363210085424186069559000106225206705906552391213771777451020624131487343106769575378265073773809852308320330446906531465067797132251787390825670254248550652800692463880716198105012985142760859640948604753319117925968505469286794150461512141678028074637444448442376799056667369649384568526190853788885046975562993452172917609850905727855851914683012855551586184541143120873744477388818541745730871231447411232524003771287242782800388460286665503011890553134872828262965572941748475103216760456690863896654534058493724712706213108653447051699567511647315221483195522188026255322490336530736019311631843077603614546655261145290667517117092170318496966474510787924561507782393414043881033974401417126265574725995917610976094771155402549186207242347259030604716345446277484919492198110957320079937664886400931216037175420927175117311304252048621039549015116904079944414048137101446209592622554887711297741640718852886959117751345434577927383615412091592788573946702693210432851097442174666567951141262798726800564161573902391254951934536981577157087826824766409533328031979225128712312854283337727853328808747477229718562121674202439349357762111658041867703501883377626475008898995687878609347237813195874761112291831445172347235119638009337246554943340554687652581618203219114525771112405188381494290317236572738788269748459498518250853183177733426036758189642545594907598711520454497106455427527036218346964220280302688314003088813285637201973816959698311462490599067081701113310516393524752426666693660790521722326775598869296769159554407176114433825327104315037327320029336373440157613098672809972045622222543709823251525810053753088432043773057886824186247226881139098762286076199831403559230423911021947857057023513080021006587765812033294029993354065930502176382204562146418163590856728146501235764643684783914110890081204452605604449956425323523826120714945888624637060103225733566765226046585068214793801783371064964058243822296659570009249792885550687373005439228824409551093204641425925969919793297783459847531528436837413646066432881239748548528819573327438804140527853953903735342010616055256094290906862530681499023815883519258946398623390428990262236360697942298223623544859238242240299855534871805415794605344173677602288148648172024414253494945065035173135031101809217887451606101872685501990993895725496619086704739879385594747915403753673550000230112838981970755480746889655464883719992552565493811176688885900548991782274968500476645917079406926638933325394639766378333868392611593064756362515022597427820898833837032885970405116566497510718985062553601879290366382536578963619007722728108114367312282206629943290691211482070997357694646895619505745354667317875971445689912133780837102915196204062696722652797744344909833605582087133003715936538172996281550177328253102704656230004772207645345531363534349980102526379501008263564914215518546597793098972375386508776727460882029437314683771263469027448469980878484063237563498197033979810495948008437817235592527796319413190724260661464911709813492774099769698637236499221150939752299842568906289313256185359006615101798009025099065581589151947755848318920067415096289563339117039027043760769871741996878998866137881130622602657993973788975904914731787214941517797139954594572567972833362208873406229990414788120009741863288645537191115433055097501148828984848247139846993646435742828965583075085253360785506599743802272356427600813594784270900042122597623437166041914863620246236307375589248114339759441099691030228888802485426777588992644049670316843159511616779358462387379736275548463828929174049424245425310999940728007958339019502377849843050675405591742116007243666812909704098091056878756165292479703690655629293804825356247807478792766170785674082534291757584032528884491769535679031108599368578058714820531491607076488852736134621676086284337735472109931746935872232022680623252401724634893468235610289656337335791309326472114439075893872169884781353790831305062686856310170532060813120804312832276341006005795875045443389674298870571734557711302002352378607868073689876918361888297706274225885221875194976962676651328543989347527418410553203594161074553503931552496164918555054209028753044727536486523855668848009104186392333055328252196353180021509415748060329402744018346726317181883951744296859496416282958439242564445919484998818032944950412524382742033600505367579806174234995985059511242900121682086271910807353446245543349557407742250431581324851533442974789999565401125650778165914586354263868264035775104699181897795422924961654060612512219354382723929853497346579477769515162028230677269467322550263734662849551411749649459544498244101722349966066530978738866135345680229190902227513797127895444141372203033469076819543938048194064912263209284640302763510023983605545593884375252828285957054021485327132336554725374083551450662541268445754557892789126389971160621283211967042987647344814309629119210292101106391397089247059266074261828452504614145556338085917360440199482433792511280370976844917830234181412842514002324831139564830057973765974976685638452265188712160295274224494169284239734149122017007617884736155761240266845035444497591871824151512706756737053202617411682601935111410082596073475350146859590677343953169791211949938847523882447284393262202802284290495962945889845830145996422840358232328588828627438101937104344497292052692404159803363853712263660695803787914026651774434253954694877694671464767441684738822327446481150253143035255684314023695290935582202085328740382623031063966322208416379262683941044190492029281517211928834081394066826117994790964952211842272491584560030562616358657033751634736461489069770097791721226535724426443629332421622832067770098041093988700093018239814448721878148477192875645159775668207150984232551750394922364842428962730375975692072106892500090545451301748375765152825181801811047071073357519952261331187860091974865117996712121517899323105465512679022939937286531434784322505365449669205065348460891308393819970540067629053081422521124204901098896346551722223243819500276231021740086065687856797691649179596063080718571840940312731818645857378859574061224344583782247173256408815165907245604523393663379167901712518303782147434774806726603754511656926064886980546318460577897233981984763903983776202939901902197676334741793526258855226672338946518204092186773008968684239448735181706185362060856757486156211791115729211170232631118548041977493391875878310443105945551952744294207333978115336219076211571017465930274994560576809263883773285314896409757626635465907104357549825574025659248100180050916409248328959897710194935750591006533485892963655622798582031165945714352161144499803190965405599999027148132416425795315250487480433343006751257201468350747245368239916324102475751545545575005013207821896100009949954117400773939520129649678869270148865982621416388589248064681548195854322523294639646062887279518767472109001859100771490965247279880233902714789963133846585932360529727169290769846168368479003483288511180114150377637684938127824581667166749128960418962564439233654173897968150615183967217138010647511437199726948058464454931443929666865429377980956078916061701434838971987399412068869955949750607386224838339504516617967410009104884778439853171269138104338535297458239970214546996019214084861027641169486518345203961918211520699102766303824851808443867350736880933504833049748786862224374718637316396772433833239260487564138909964785615596776791380244601294964611027107365540928438472773180447111162219827586407307252282775892805713249559638339963488506150055218044791285548739938641204166278730734152847252733144001847643943313396475283263731548928036369791109996070115272387361771488366324545056037171049466053026795535133188562627539195402601077482843141401731096497562684951257186730474767740784394042937612956900996300766807063757884103927896523355497237338718487940929991752602644824602512846451424033727810318686638352941108241442819997303091194295545232896627511188632736814119334155838513915387875056175409479436808292174708493778742708830567564749416255857072030524033905316619127526731774274644265162114652199249144666145569109795836435922244624230477070670770185158931170260600286614773997133228609749167970596072392978862802362885231736887386059044485046758312053575563462746585843011743670669967846263322765387020566673766348862781937148253035246270274313684432929007168787475434156613954090892487643206047534023965645209043366621206888364517804265356689702372191742387571537947319420505810914358024334124881343071590433581180244617552633557195139457767781983314096530342138633334791672280754200477719525601968153521719891788242700225633861065613640822981262850697405332241145881294107465659529026306612233399862363935641678469264987088776280360830889754961619824389517371721265307637888496115196132112790091902335106272456722230309591431315065155803773009176123373318168712705255228169956752516098282205826762786698831119735063080608680260006411968598356105437845672774675436435702637635523339923188219000819976061067356946843901017375472255625718823843511872613353488180945526880560824130972752150400563501980197110738148871608139122626855070977650766947961483788983429295382335988676087912319385075887361952833358997432835040609887937938004102374763434490732856094919417806935080104100246194142992260108773351365583406004293554776808838127234896311008272218126308375381077331514616531170154943841458702070068880584586640830269994940814468353778978727856450383454105764959246618332880018977011871632581918754842080710562478360540504562106781132263260962264563820827250537132517155188000929510382386224915894020392187431429690026899103292613538469477989388834941210723943044942627254775870294852485107738067119979748994112999041121306975583221403994824176501767499298731079499875602319438134072487500462425150521113126940872866421655230194914559448171162094045658653575985803266377600235930028171731715415965579886167284720345930250621029398018447241098574052461786836783180518318123640680569655864749475928582153853265306485254608525218790766043310550730281147799912782435895198563511647130124023859423034800666087674307502178255518950655960955186863690691347278385378905987953806434344950937303574269480581443932486600769990689102019248648992815457560979233392502293791214438313406174511832852678751431477907754175635581075134938423190704952017932217812727299221683021431060859394221682862015679770929640548125210660706207803516587831693359012179085439649782393760342038491564384670661428077134070133479644341024937813832644080745913025703132537911499252598580455843201147645647422463204228389947574589523860869132247729862616353362282725812926075142351065546246145825408392565452249316575968618313114431731822420105509239207884808802267096665457705373498213451024771079914119985209154098822725412157773299497232063563651838659137977351464647354719525392643105309038914146644416234659993593978201891539206340651173338106418114556717933047363469022650746215739801131151415780238284612201080592400975681785125331539663128649514444308498666371738477083547151648071507177935345018322761303349441684946096351740525832852516288863654148815191283108130004520594120420983850461199997133779338731362671302186150466310586133826786338205067364471592253303529135048246835138254166072459794080027131920842702539981118567596110907694992563499233203998994752141979353704251885730823963228708480947904189141392185135651793715222908831233635057483587282866642721121274186011843102347319541612913536475420897803953828050774033104231084104197409894158617044695008457190206769131887771206636742142062110184381679259079347950203910007241897628193067997564391213498355506729911050271762604394480361820210070676784992109238453501144611686915787351655698133048972831007257356769292949756656893232917002089247900724940563287844267316378875876128643143639931619468275977291405000197927168308928804451985618669533641291643843388769161310534853425862377304396751280137530875687491502444092161310833775790379702696769641595925306340466073993201770270055920269186505569566927104991233286559844040502146750555324729279707472399288655689997595650154632970644937010272294471524977296542538096359941237050821244891084377782297179522909285769213188884681964611348368265956646405817291242175777538257771567311448128525323753645676197887213263973092968259797719028058905590802733387434170657813300402905752994215401143934452061724466454067227562227359915445004578037011553651601702354647430980041854424118174088163114906479990811052160938737104002946375117348326183668485076136562891967784868270051609017396791273229265440817824785824971820467291500116916577609513667078481149876951598238349028514171458478785688030373362471754604362512345709717734214526709263447551676429693111930630382249855151615159786008719019416946121745376345038693674697372616847751118296266036717075277530687245623713946594560475814254403011464533400906586493233096875346941960972646792339547671354264746908504841469277829010081172067368723103193369939882369008697657023249572847013120623659415239165931940819147237702648749775860871462891349408369033514325672749205285959337456840727902888731235656318199276361789812784311395891053463424753730552718386387983658836393801891115962329355706187886077938653708424820784722072978717976241350227577002882335899428752650480346123760069788932305063908830882435467406132250726520808397894803738271757378214363026838763693828236333283640682581181231486964410202060446469090466553774629782255252355503734677559103012723558309400669186704574057003967425172376981795638211636878757145465925327503639137339360941549479928949983084891127448469472550574163859942969771117304857540991607160870432624564051052405559596427713586007853703620149543370395036103115710483008013698630622278511546748773109595977503714485467346002734200626473843260953313009242406042794450013665514126414072905123913921208192078870788649133719774004613122488973748570357565666332940592389817277173276437668714358423475655521061718048921116286584730074450673406926400000227985277124784236183625642014372166525097822692973042869188150008271718459885761975084786931560062549699708288287326681788921490271655935381742616243768877897186727961527802163067734961244461279845823700515646604119909855632963799712557370737522977136399224597310268866223101787941845709254420180792072486541204434328622560950042387543006223676621680863741718870702318410659263679656592419206522003868724328501567477332055995953287957381908038373299868784808062254394214376732891686245078018319328692420416147406882145874161240633060574119684178035882616614423260170199506537299672224581848541337912182272505376221496380612796724183096793712105267349909430745889025438321867124517330444902163942559552970924661419484829788362565641916555572804073099893226022601303800742400908203147155998814815478321782242361589933804734757199083586089630241291496291370545556294861691426246646372874627437385399096357660834647640313343427434276073631675610456288852141674024380715387615537407880268186531583419469121072480343620574834731142692365266629882400571206225168423345983295202353343609721349283852293207907041565875434600313173667922958925220908033931150756156656768854917170155724902025492137915078475996179277155226812570406326127735157639745088689903317214871632044257891298945610231193294309889151248305399535536164197410425387853542541486102997038223594607141418817960263130909803651689767835953974462222300919829807582565273640839482361487339080018791311105784316497028470113327323557718096031716245257352472306625887598331628011829003808395048684453395582613476628594913777024031247124851591754226568846709580842277193877242533807485650168864657842513774696833910775519856697188261431241598740518021050801679972570427364278167878580164154663937037153131564019860367338980153351030921149083561516010343381620006015298384802301296627603184481086676111521101098283880716696646696214040699949970181228235699419963321148323975762531638206984473374687832505461250526352169654397714698969704104203489094455811219480735679264749048046291628505010744659929412142856367908019924265976723555079173617562472294142446479407776217722928947806654922660624739715424885009176518703181632084571163903216170290451523376077191253996490408585149542881032924173008749203770903812961314252073840912827008689036483825869394655899096621186187581794868974760945693561885274075883210278216520190961814003772585332546348630778363415669529989499128451621804442687529646366554867822079714093229567440174102710770232548770603219091015672296567482448779081958072051719917158882487446586157499097666578316782379792779317435390182295290594352911400883283431784682766774646521957642462855546544734197792113320474818350704937657675088018600138331491455933051000188369601000651828136041754107189252273030920665037908767367633807436657117637180881220973809792709658858182365069564325707745673984119979081673523300541655559067925153289922581866341293847181645616296248673807076808567624753816304589077552154397695551200307303222410943624863084522989790243492612838012023883239309746502394512509613373698873006637581600409089485713761726667591988387493461660199562014917284028854993500619957216312434912341978860138233181838258428731587073423412695339201611599784197917412937472795031540261213110560122528822502893448139800575809906922012296305097603343409699539714303119860039053163947780215818122509534751435773034032369934135581372834583784696177040599867328592983958132979759461651762837535198797947809477908314910464668452383091205715242059400022605170457403280083128451690613347889773917111801545706040158868824394238638548476994430025496187081101735449347304571294426109455660684100422994445789918775344940819171439740087573596718412201247100120305863673975732622190345103271510377113917225820991457325524505561554220908005855735447354688241854568000962861055546378767551596967927630236388564035118057042812956950734125261675553746945647443270104596074281516712958292767736272286433500484001343800849221432336265085036915039463602507873068445592726107280839447044596010993293172410073849316416348403425760347203476154842770661359684714258931992627652800848515354448677544139896308189548875085721018491816185655680581145643213844918675593298135091984980329644847526520640537631618433550507891342713083516006059084537949973663172372518809234947037545120954714424950138381295518791948368652462171907813220360184535129555839056682946427582206072156274745662663700618856896050844095070703584655799849569313910750084940981293919557547727196270410317708942363484915852997665789649418743590851976701313814742283943609456986530324034172401524710796604162044879492036709271187499371890393456936279541579091318422511939410744415089891577913819056168772756676477620926247957241931929951191548537752261334261203965238975246784349820987135759320555287245341885648131622698766613533646672262950070900929484052993251887778247931123685837334395605468689618894514025663708062395456228095723615101485843164884880635109403961042339773385600015834501782540324581914617428645746468539841028747970659925309300477488586394542182381841557923238617657052508133018742158062037204072855645712031623790076111107055028990689872091983333892215226483768239512931196271889292789753396832871505797745483644132446700087147598154002081140487337700470324884656206929512645651456078464641332436299556513876117216717777820960917467930971246270498675022820312041204653219344176320792941844860394289678402774164478142291536187199752642264790287633480024590884478375873253582584513436028523026290627223419307135793494524021233545814244210450273848343061021010428291738187683897996318612176276050351716593840642239719534924278735144760580886066964543857803132339702657937889553488789635197502177673782986751604121550230681699107908054319511451538937045458771145103458860224522629542127207109838301752638034878805262953749226318624373795375241097108235742899339283319271130125539417423116576726857042292626322318184205411716176744940131193550291831791244665167309442869324412983197313624624593670345638427121131414642413597586729092644345281997938374145932988408453528574798576915867324479370244918499173251158423508945023574667206876043589918387614472984061269255797858795594523279470308326215335272990451935105162354800803642547508146649820113008551433644529339156033661485337953466317516768179880041885070111738458293433282684008172444673338226260647053859445776889678263116727107492776267000844653481074338992124742449802017039707260312211844684752083982389137043830707530742726052323689032266214534069393863756801787027304680603777331031050547194133937547752477543263154140806058008623995137411953154534016026598631843104256244085243822752217514385255652302250651381462031900884277302475796326952754010235479872868374084298600293387587031153188071825010434319612068721748874218123972415790482185158957856645152362051524712838087817287557986413801106754648413393512446089547682255310652165888016361952166181164818425973473146372364144500246474254142443271935890074623754101614350395423823333863541236355313719441519345247431667437197638259995238903210915456748083558662571031087654760052051343423297192190408772676499541932479168224043170317727183953889273219953974721258299917769850051648565869612317655749808383626472208467385135703728615577902930524551990365817317292213343188097724832969094540233166485375576527446952908188873312996300182173107601569889145811161053720717418326182822329798112258119150131700911096393062687048943359726424991615954587003876677896951747009429708254507967269904935555156297449200541056532828861496489913016483572128772593433704340088158976402922730665043233544993514614923898903601188078174973035153131782320566223918036122132555082979486734472237523227394091586079235592658370248666312362983165790913528548110438760140272795882508466401731857986954627090067343059680151530865740120492327876766118554712789094076440635478316793736539575154789982528812522833819582313714058456437108178923728662568708062079784547349078089637835015989056121391491357685595886505837728767372066495322780870699556369085434105431327778698014676331535767988616932873140985417928992437985549734532691544569692800799334851157581162045997431864804559146203923664140371187247614992794392760848217908666280033270305456068777928769181043909731585707856324798619655731711539739555697871354417157924728149053519334177740539147649300980600368157406318332571839388425746542250729783062190473516692293010060641200959200252342114330532380453660812917347275269666802694874809866337294676490958309073872813267998881031225834906020244596729466008289389662213547710259458791325544910028551639785532910331862968207056844501428641076338165562420806496103634698273059419090665058286688289232801340802802111497732186503791838305558922504548143044950563318476284208138632139940386637585112451874225004931209098846649394799800716947706870306812146439635277641049788332303292356425409515675273990823366542866393860519868406391109657578078060328410915281112958650382549508361008193244999082382191833325189312098600900707694015001592126943355585306422018270849351979164275139778849659522735029278397419495349899129241515322412250487533410639298801691540835714958742377501529139378905110316051842551105071573233851568440522915174502312324576424752627720506160587694064579115152865949559519793653693187531775465164680578770329240207571856046709010220407020689088240821058236852734444235127340821678802776375828237425164465564162600809191948215043597604628164944320149669616667737826501650199302270861608982667730437103535002575334023795971269223293275807608800296602731981232968674609363143658242012169303073117799521686140981114404310336940222429254548901537699679265775089664329793624416167285066220771684718779002234459681016175729119311630962136936249120613683267906624292031422921927106151720023689292296958501819188230119355479563908002559148903125859319023847550246560648220550916955198614203799575508619701309010641235039069024583979478262351918466808041533817287144171821928143335553367332048353090358625132282722386602563623657031758337814955062085341179384870251640867260493525632578269154464095029214287427203020336641186619977200368655352117069633329807543004423225338191832844490345060109666874661705286322691938550845044211863299578505541432889738533387447052072865552074131223545088562452947360799043565922067389085530571974765687777415739374712018560758304342033033220374961724443293855731277370902273625944396546799817345022381644259301676568154454690940131250694380956022537716423636601132033664266304970121116476392313433875073032126012531852765755919503150664363553634402652951050040379021228830180938817637511999326961387030171293612567293277834969583419175296378570058544449332298926941563288963724160157531031046326866280658549625265773657645807528062359291281677009187822760438895317557895714908387533341012736156269902582715959931277454185986590495191460181899983044807082703804173847493014906177769723177319576799132936985918186192201401335362288967233278348495535559135856994160386134075894256895713596654941691841586775521537413833270217502846261361808341916512797676851566498261361867859597592844287920413386225457635734009777707757838256062862798786496122374477496251365830515293911374721830035789559192814315392035082505213510011391405275210875591506194899728838998611819761539219693011459105939964921852587178485298983293326199400564157863275152032243821029470329640079982193618933526877701239853630681696161966353372573088215941564977143006540865320726540819895633384048357335810526133957960003351217062107688091319361056259052861652888638516108765731321962035959169861183762468239510561136779643456632521914986315991179857444398811386373960317776509511332702998242811422230191801575477128800938042146850012539581300272736852421653913415422408281341279064771150666090816007549159581602842245727937801884443899286950521817715433682541049612011791073995768149951793526210891433148856593327750371859783268916443333896647307210943177683511136114245617557603647981189791241752369032649970813526716679986967556349830940905501307089047138105079773247653781008737493242017699886964980171251504910622606449398151899456244318161503706341432449648676750557024564355925028802081711287517422495742608337645667369509785544750220243759088384950487516289933586583676756830222739454543959695777935095479998275458731627273709927958586785405836080310612178123797984820808820413816710353890132907889162896999201652744823717691158831000711354957534225442238068878056326066127063163716945620121777545953873454078548745037390737359468479264804446628744391366543189390645049387172632844179753413850272628748771382251027758606304630975809075468451076490848577834196500440540996012552953055184775152151508533260300072385229864073466330088794120926824791594911813819499508774869825770236780056276447291857817221428127772188825459481750457774675407071308954301997510208105025947398235831600225221241776794422158740684463985374223680084665052474154594534732166681992904443133967604186811526885582584524774905936251404607426029399588605090111150811479387756786352370343847408062097121993321553140714624267938672400725300721190083110347355589343873844174690173161050353470198288956819113654584018671600242111677746335209677322233881526388427090581977809935605050699895433333012094057874732517524524445532649726728936065061117016442277991126203034553961592006324571957240145037653688325967450197744586659662572963445541608073899845437903771997022790477570918784639516593057800164346628644806245704800193277207791988278217367593596694854709577265033188884658854726626807520259640872432090041541434224003721586085807160959539166361942395372063735595700100506479354054034964575744858999840672325317855673092062650415853325236154836594667843945445408988327572850713429208809228810914186217814259209554230217491767455605915313233520841438003289921958133044957558788233997874020416302651438374763875868773153210608990588166669913141657390313347919797624072913669373136260154702220091536384932236667517752102560973231061462962781021872624010566162278301854293294917239213431309810329107639516691050870248844984432839949121474111390404310192100719739214722463494926721075232889778437731955151824529677550051468298225004033290083734886409380606081938847441934485935057436844586420531418952225451684654002537637950244293863342069853294637944352798691561399074610672659813567986110004854128497293763641560930944120005863523848988623200703470050381849539272799492381737268640767288322826409933587305983621203522716644482393457962088504130654961757797110675603991419312499810875900909564154819960200560870057693056660199890537021375085514466569938516691826700427003636568545495214933921788131179390593190205224577253258392835185412371264189182019308917862384082861901797857974843729030520650710614108486620385499446719307669690723242748322984307721379279129034752529365507498806561311034651563612109953280050666168863503760596610934295299573548868289387970664541101927540979999087734925478929918311609501056793968409241302442662596772295989034173011028673229555261187933389424930002485348674948695414353205851431268535375411716174515507236685030652264334287466906007731196677112110455758915866414891393613213581078820142400020660491550941363220285251809246331409696916029799169452316285908795166225508949595897169983691265573318295046671509867712709013211283671647786289741815008904757631425161054157680159180980934970989193118058157913590972301593122024045491323881645859756449774732695402193828203605082385589990670445075347828639317149784667832084535695559116529641874240625774498700795131225149482283364765554792065907823668306656002590263803663641884082907514864671869506734037197963062448193802745902449822009827221753783131975468812614555200886567384542840695716717726646800360636331623417894849250931205448740132735097376693666289493174405397036128925610608291156554462458473633108865736974398902472273497853152647617515654187637234535600654602751119655729013029020858967869497450988974765222128374972380697692120885554363458113749137473935414173252844456584998020971721098644970462676900813567220098941777916209014808730492046422902400790193330335670342179292889607734842216700374542866795676632438263067543071859583792046529510347678900411338675612299378575470507646195984587409790846113101312686395152453439263846811819199502907550783717045664533637656381740761941674494175589151827315469071031735991494785070957535606927784352984546325519971355211564360124028360798755309292791230565644501743882724159127883457146441871262351622566610196824919789385193687402415456817909576986743837278656312068979302130274937306143331640319278759715977972519866924204013117704200720126087180538512423835442234798680867934502797207958323805081148647926892226705083542446335365256376581140723550223319409856441984665884423359216538230703301720224364749911221518545361739949956169399334138097098177847678997388508832924539878010964491801935015993011320741059661133094508735829103938113401738602235050131961395011823578300833464445340469292568465154281072159369013233920702800344838534907990083459827736751965199075403871641178768290375499415455788869887602357770765203715166231013617453138943113828226550128772279202084727499944459260508158653433718514247373746868152912971127243114551520646225840706816529186884119736794693951048590902013870851145866228228407578566070658026903282355040748149344372550483146109664660756695810018249754080105853396328441823202024878352366164700094990611073894016119665434140841564001899293986102765426404779475052604859270837799866254034754774768551141896872003145030349006581489242728844403115678768762623209289165296742894228014848906981175734003646248324138836794042212416720970534868877751642271250092305957586525485345597523225622802800545376196396069130413961839443958673200943657837820100223144402956314180454573900914123539637382732267644625682267207396598267543886571902992768065664762036418435603232529452619168944289324866047741133859041367785877302709212276051005649018349104838415331514708093468736405716108454014732921924389174467027019978626310838533485298652776200470419810562465367059440011761063289428247118703228772691858390074812113931079815312278714116063005955651090136130530888776230950865473643682581890810922152071265292935559829545631531501641069191874649746883570775431096830265474337042056405280995971362307167258331028561636422213596083651339512785661451966851883886941095363994609471812090334580818351445247191034457946768227383168926814461608577428437457979415858778254340649808804756252175445893336878473041603387225909366709610799462762686836719624336851460610811281765903003550021675797697859824442514394720773204044596132664523465784627849954067459221547014106972591764673708256061306523299198042078307550570582707089244867361884471239649988973649853469835346502190267241023363383616294248995991949486047456654410266301187984068067614129327092241602501370559241040415731354628193029065075318902226719305848794543100590057594041584568316069044890133260244859648431387572156999851484978607171894350235881510760717609136208088817802139527686397151145958287042842100197191316018396917862183899339000808137897769829290846164278547791165331113054423813575114520464954255797499513421170199899214232546812010709997082660284874396993447126074972661869714862959224169735848499102835490385731693310230196771654656289131341285885870309716478189034458230117529414788720712445544406401070589827060303113125621810252319153387617829137589196820887867510636992809924878166425081426278668476911368519991324556393676493807870637897732561924816110537308151507628768541073766756633339267573156753060050251735601256578303699433445975564441884889256897981691003925645410537805655077322595755101955206111522082035806890830142387587593609995347441943845111547302565550338752872091542536593464176914361947762144753370328708345162632392445272220619918555769788640863887492421254007314807316359157521791988799240988465437883302897782328301940531089644061813966435960851617065175530746866544156973869383630611256392655158723356896248854066105159898494587261229427779672773187511340402584667241302559540938095591983609613486170718536166365051368239560282549127658422347569749228257596939483508732802588750887010115682349601677537992776582157398823369819546498696134519403625989781978885848445949275956181300490691334326480799406789090576272860980758398748395314736982521088394867926553144870078883155405254788689102070082900811354206611706450280229269049768078085370309628856306008547993342529142290397073271335007068845480537334160271932930370224075741048051308227182974606163979405961006729056001107733289512474137272130041575627499380590997810761432860686361589769079041486084558494317884578388770527789279584040668167257301885113944282815626076150160285961666237877440633576110746594791677649988644149955767219702704825932687683946686383458274389335832977032273155837894013462758301712295485035199039652750622960260195736359168813731965402010442232050070978611112306747545784853374087337746928519691483836778302374587624554943449323101614314136628064377293596563624145301406903624897780886232284627032868407041405372479593120256328805469357777490042543681007433803921519786397077190020819127782174683124048181959674680697350012232669333546723575982825253081304926705615267638411661261000292026583304234906074023237679106246518656865672523440853938195317115008668750347269355404932471698845770724756429021311301865487247800680765712629599419125839897377959076720153618708506413186363024477244219479006771094368397166104638651105895681446179574124550472779757825589421448678898774718283807693368895842464545433282900261163105931439290106817084659098448195215084199744063673851808504192811131556347559181820827885899179703345146029755642516254982282421454218430820423911645995901795468972999510447465935489476612852440348747987647467340309534695540844997644248936157914020502753258491450229540887153776192679372128458584878432380545438665279048555965609716155519992470290233057337291175165156241250188253058997155148217743514528786096850590215226853019012073349212466193531194397381703331754125959157122637359759073904475352500663456439331903937742027801086542026506617719564957011888099620980304014438101240291318242087977470497609797034079126399023115794436937840057741831910339813119350497295756637304652550205901043703244444050361902780222496731692280081484402195647972758759778351804483594117375308156120442972869894524430213527789158052811636929743294470271934625389902707493656734736202025826441686958526928563019863291563860008288634795647093555009591133655430712339656338373596659215641967860096325186932021719770553784350479149982705596816900581373702843308412662590559708128890884611773678074546651024193662759621001219391941692843957411668732833303289057883990156566275984007849597404623772874859080352475111193221799822584683113311099284207595651514458457219460557196995682086260618729892212964025586357591515102187243746158220993535227186581085377364017228110337649542175477385715278067264423337838815964920495897557740996815354475003752807263114636554401253503513550253016301620857685274098850837018200911604240924170563020081641508710140866792146498303089878090980745409792493900197292353919549264984443283183835261642233204697223769368056634679698983902492246014241405791545570446586991431760341684084304719714534462281653666342317913737962616445441435081308276834128100622119370882777937335887118527559399606416236578357487142725366306825234735259439219449294331234929124100628565528071913845794402174524219059851068229745605349470201444281884166055673242200522774758191830250457892519783147099545142831415510158327624419900055644560151541899836366205072145013042506402424943768682274136798802245736516349499044654713420061862207744314335336868264317723710727463549945154684196723488516191160821292184920003432509170218757176005165630049428085935487051165176394798921774192327433008624565840605202408607697320627058565794455610792158983121199441412518709872412028627670002811738328418172662783620706481596151026753994499199607754783972857749842489324154206062253383380156302329677754385935491193407115884641124611210940167493915702675324123810753102280084410493708401468722205654593273195891926223504840661319331511488592374021450637902913739674024590843852305052353769225784761810180606778039309503177220404133690905599984237868969239254100342843854339782911731131783182483037820657707159152193968668181855094090699960224675505349383906947136508425034935584746551812341531220309899232313797779346493127414530483008507006317432752007938542022649298308672432709399030846532514620924204027850160064240243270627643193309866783141412231459538364976363776683673234477914805724640868353001470714283516392761430125900678553582552521223600262677355744609152938344577418591399607074717366411589383743099004137088495352522659923824976655814063325107113084325408694560708550360642452785107312103094243728613777444624211566829667559342794797093874425312795321813099662896006636610374595416398215632812357615443214362894024746405620792767735599170512129114427788867650616132012726958823312498471772869194105372538278931485454978355256391786508812340234125686488794002399233598358758302850710730814927508958599361611821460560625183372684539026795653736775268896292114903935133615699020605514522640097164369780256713368034189731812076698691693557521223737369819689601472718593093011889559033441353296077215826377546558951540677365177232262556199947424571136097433208022948281574610511091437057668818740836037402955931925324195063542441422090315566355058304875327348774940528047350437097836303877363851337744753965003682951921196592406513562042513332016396512465965488471287085758658226805004966470236543166324541435505941527167500918866765492993859475324512581414286975114141064736278746399089333076542945433303326486970890828026311464721510793943402168609380358554080537481774429897481366330012700300230846503438889881791812287148772896108437041789305480193287166937243365482151766710860151273219839281090944542867364721218397113533963811948256656415601904486235752446665837508075126389128050098079986455629106610715622313947018921671282961644894228782696758573191451132345316663715558356742918270234822888175501944449828685673258071295888351490689263612855301928809832017661907627125849503222517182587479473144006324743620369414647646096305100706573968039288162586249702214473571878208199525780666572279311151641087156226098741087182418714887767495014097677418192470222761430270645930086735714196278924018004254338223588100105944580718271250007546547011570775974132983394126597646879347640705107423129036499420750414380219757703056575745762519056186567530591881388597564096407930868274214992614735477079411424177322426290451678539408109551873070985766518537927033677744906142708450853267274356376554936486424059198404751707110534806453258385678068693738589646626509723548854683799953385543530023933734107503927724068092292331649530423329434094761821101837375712994820135569683355697492368502920439075820539018678783093907785394127686129843894657618953828985382161441104051999116495810249133728811101900377016407659480635115555697139433955815938640489487386531046308988257691838733987912882164710780053309597718331854136367671968177508787576740199460988365244633064096228883997600165434902303492760911307426702297237057948327083880083324227904012700505872096861574673413385681233115670304479664206651941959563228554320559628162336968358079490052692521772416020429512007797360130574092989255481801671737224751596576763385209418219949841053473932390845033835154397559284035582522385209119791869241967393240342751957014276808710148354425675941270976217274703297361810796545851036678518445554203872791356187825039829330362385712971095631521385649840762375980835756727320227462155649313308761872095910337335007630496689255015561901028807628970762682707444751506870647648974741764801861622900068247396882264985147427800685753498454801618854800218057141400031586803436240426445730634651539102429340481410765606242018873925879938178124995441108614689600925266850936654045863025769652110188288328713305295752835336737037592600733831421746110651353831370543968013611603747299509245544135336071824516524903261295074461473982928311671854589877567213720587487760239443008987321763733928171106795488049449296699776278684043744402505583370018104454483006491056365376720235734888103065991573239901125984709872839431085844625257657670183875017525594798065648839507925545484916613122253315266037097397766679833002826380155876808539661285151436610089971067631020316139184217227548593029633465887606022179220182927717023774078815386924139720679121179792901508573136045437563359953755946929346871600341521531609335036913222438764697089711010469540801632180293234988160744583349627602949058219432559135079981126727734307551295488668283822369776398748952188186964460389310355121741019816426446000109932083984158818660723840713720253054947327922384355375521257100689203282588896758071764355486228398470343580974760905774068185393241134959363198531731338945241807516348729159716817837839257536942128115773369186621900065406664440425005237835955545238564452554905086589661197331939938191003797927190279670894870284360190716105041204899498590335635241638044631385502382842277159132255613385920128357520063299381044183240190236802483894225719399635711059025917081450195795452248663177845165470237040943951412463167803517388309288737627746568321443580711118627586441175279293608027736345855042013207521733576705453117659062054335594484761246248455778436849126191193439411151284848381124607839924338373674338960316321351490472140080487330422605082978392405606539133023332448980925445829945684984017765906123693581165762338309367786249485510774660311035552695715659275409284369113097088778479392200455693593379498789106244785992646490425929760163855071391456776701625613808773207519030936726154515249827226561171821625280097643892332990591923604124701649557713568363316687803095088260715641589002072814682493579932915601712170370328338223402780560000940098719640959974206231716608293604723101658428067114258242823185202066924063075313956763333029583161290681337861695370637530037725551458351368650845032834289626837687595346008234106641831378719892948924551414459842741724107822312806077244925117758518980020752385924423646003037528228572713003254571966230175130992639371351185439036365875369021327086093430091962912639927286523836000684727509203637368085387419089546779927143283068097926784443130143088000847712841009817062029160177834828165224268541837645780121327081595450662130782798109621676495283907232673461000238232599393197542514292054775717067149367301388165816823812127991655308448522016227406404190028242011197295663122446643392029383542809738540008756032321397986272363554299607367560667762069411246599657283458795465481532546854501664342500406348411821689326387038775830289921923574275693965197316197331299729273128927682803070634282217986715008387181279496651966608201354273977611637641500434285876720707020968936384484529005392615401611609343967216384721940253398172728948422944509930676983554632676673370636628782433267993810548167802476227407669171500916889779615886535304846257038405329242981409477880031819499473751256662889848645887525006100104936979027295140336003405718836478074902152615888244438625469920636019835899985525556355739244206805815872606766542417311898791170658107451428084831863589666538789681531435441793653686818521372056172516234498027914595197920238088821731179172240060563782443695587164296515786036384757889713328567416545888158255818800250469382150178680031872879946162155101067175366086548923614964047330839761033790115856588911160184261864903290714819217959477322105951171089583732225756231871759981711785486901420681386891463347559021109481382888947273900574902796828176730897478578523450310286540199739319321760715366200369270363526619197386633445573132943403283486829537732512038927256322122607539773973287443519286129480514676900186769854572005428922092983500250644175477105703907093868677326866201879905870703108149019937726991677481890205139161446668434759646687645826038898176894212914903867888656985401352979370695422419245743452476733733690991595078165357527504699546028145386408620896528451747042223225928524774649264440474604117497993562682615099842420794329466175502999416300605816910736820580210335295892802924124586080748578691505215282142598319135691816168235327587960737641075532907076285779877583192127983534299462170283189250653225361122405107099691457738403265315236594485626696633276224053061470872013784227348134837224560367312235169173853168779417593797291117475467062294547845308004386725449778236205635697374724570082892826920597661542596883487306536521621974345059954642584413487628892851172984541383729020680256840256763545614650861612184575717246122233469498102089248228284417086586998941087852156193488371039527544066361642598829143451592405917956764935708332126886625903753897106137544962377167271068315715268040451841317708922914833432892195636040157555921159174882581824878209687999452936201123885109166979737909145048517746119012972024423159440097058269826475522268236692051185060515478502304634063048120876009682501780543191383757849723756456022396570413230940005767912365022054910460492784234578194034638862469495758777649938637120323212132403066248846217667821509139765758749051310134543431042151774130336306165605498242336977680982601135155678056409266614402677395571971135383562279794693888831108871876364824772491050813315697316547935453696445857387965326454966086184760466156118867848001405723641749853856626121922816538991939388797227434531248268670483974068532852388606381003221877085417579685096370868761833393517704698217810389495479584937112843311762969259262504259306605112652485470807379152757716056919158403247134694808429470236531389773563996779186594969708386500310309211655531476944146030807716983948169738787754968276852209850192344111655518856833818276370691964581607669007515475744175306023958728945876253225738005747328627369044434493758117052492243003358533602459412572184138782495767439197737847007131516010038378166191736864696903537892833465273187949202403384080068900743712065433045275568937234211590215635217149272604451858839431708420123939081478671218445079190181890934698903140177816092440620221644809052675802132766567674524186979015376167334975363114340578692676040561394163879888558648187106542145823618304563393335179895129268599741895841953815764367356331642272916543231318357342642999696739500771686868652404005680342700994561850322835871396512602056960391998513810925791194916930564699539677482578040780012286257391424211019932055571573427073441374396253640780359335923334637584372666869726060557614006180526628488996480050745611344877261333730992658066046304565514484081979563215459652716779958427575249791134307960385016239486917439900026072615363694563974827952705887790625504080221204650898936065437538199919133807215166142464880114733534912435404657789734887952207228704705572916170016697746431005876858486237346034488985332509894770054652338589449537733118899372289861624412110147885296633071337362803367080618021034236054292534963871191909525460433941050900728876038201358967682692788221063373184019656296934785226941921090795706521924897750179818111500694417286147667334682465441867743099293825191229233648386682086811160970830360300695544610291086624656642109385810148732984863801153461065398753731986318379950176951795416906794963055878840066867176799353064396467464736125343016044933175442499697656828517225037826867105540229372125868692083552215689656789074710440763427938889271168977023865894755063073791115033383659546230206923133962278481664363155392996883381216066887971583949071931273814984430826008183173275717881700546174035221286503997893335265050209181183284304405224062813417686957170732923000185854634004904869589662599805293656155670948171548437700641720417026112900974939802443164322533967660882364373702023775472981265794360267109406088134276988479321223835170116022588084665909798019088867541035303207458802276685877144405902462137358405875997068623775977170573178619451149452886880606941720521365620963825715932768792994142703228259370838310072317504348002249462287047163624070253949682672649892603165051615972542209346746683773121008038355515046879753617204535211043300753841628095558532996763703013570313557294092916052721619854529376856697821506661229728240347680102289728950214819856092464979545514119660155202370745047838159313766023590747081682000656958419265887723335957500249971335818756197505130122581841467350163710257055668215559471517046766874988216495625698113381010009989595561966931236885150500387555082556806123095186836992428474089585510982502564379976272451471668184437417929091754651707734573591106696994256680741157788226270546837444987431513571536381724515309000005053911088216852043792157686560901490311485517199946758157155632845381538412484368767269428662990266474530171208495428249994385805245636564643902507849176047133648174102355193784699515719648673434518700131935152756206003489207754904911304206055041064663287407147940358108608726799432261794839550221526859334337658387449192698280955118759768762158632530176562350638066834183809450385973229862430240214836562899775306058719969616662864115421350574317507022619441528926165903024882831056505868936960542115849128248567223905248223344765824057924392710497630143367293635696569478715362466036032923501730040813614912111061120913671842851272527520119210197158330627198352406666424883356840574964278129003395717999411136266854429193895022264673955441601296214529644849732015059181242832531801287878566642733964217581611729256450944243391885844749817441985368861879285267553366070098337238995774922156772400420568881481528517980291440406670010847525289342414089674417749441470944526974707769485244845528300670755350253291546522973361442643161649936990304368946024789254270870037294830127577283627129421729386508748652832100177084510365778767605702989197499478627100416040792914421558764585324422528187949508135784521786449225554148348698143707708649686272678374538490166928153318143696006097879571867266718316295590085938029391513548810326390378084992337678765671687115587310130214475234563313471451191040498947815472535808744978369771174955982072510789462246851437637391331352726446621824216861948874771706714801448307236482009404137967184108774807348403199873086214657055936745916375910492022352097993603306409639031087713818166143977357452068078596856990009847054642226139557890516280132009462507247849742660319894627009915704592928220526996881738880473045459044900836852746702844441991931972515764103808198163323402690459418772049736900709629276682793634622570460800039653021413107587542686764193456432776386091821095041751006195572021886458761767944036883598456690740795578604401542541551837152872858635293419075926523795959561064305939206191624544038543392908177726244189038757839990426228836603405329487616316449807427255580497825944606514024584048916303343882513593252610522540001977050498623854726200801576568125723928289772004861876165680685770914299963910070092914817533254276229730513210743455734537108649054124907374814637106325731619879262493788950584731571984207826549111459370527965789345481279657918896058660088604464490883849734013422862141846039899489608092959831139855521653584173382904780389428654407898820934283860882083209145853297127156749340647951247692526228305856925037046995339337620309778834292356335665249267036304730413764628237128009847779560465777440036112457552913739871831409361533719047840912276948342162600676578130645923197977013149573567416192977652832756022154921041245921041003318449428087983075530262130676313336592832891563320207493160381239756731527740196332999544038159649968769909093080030498113510026715277159777999752468705505693954614305417148997593068151969292604598801210974065244652442097079389285964755321733860290867279567703226256243326902833895487031956246427005952276476479618594088847545184582667626455480627487739483634942423557013708069111846491580933332491890310673004416626148697182559776286521864521810118504668009322493248466324240908184967930711941411474652529509198726734508277327158525878766070918850697706837995935973549210593200282848962259953064876071791430968167725690166314957878544506677099798064929768361470511390242944573265094112156021977829850418293240600283092051935712751339860573329647793886829879985027690656628671223850026485311119150488788580620823289465544757111053574428481322996283396859006218380143598230432817232609160438043173423002733492194484403219878931227734855685752008662019650380255160679361805494061526443604558270283108735895382231899071639312489864773720722188228133416652286656728916657544536812546425201133404058292264285571930733231645295858635768109384472584623405323028928953749920494881118614503421373075993034996391898375347547453058784018874490990324437463432990598693989558053756757541793363915047578354947258229214863458813536714215136729677919204054799081391206167047308253654797762239746041279073837442406031451032892240919499814317166888098671706824237557340542068944629821833827296582779138326194150579016065092345178332931317725316555022737664648340659623031181094116596055597366620034523906942787643436433532148520666076016414916268542130442811787549096967556872644180161722643237882679373193826278505197721039496342304996558819806178687418330463769949305622499030162450480080982010073269222724189558873531076276154423123595987587555244087569620201779897350972178199562872799985445511597663571822548947838519462124658145916493125801985716174546446865475392882054541314421586628432095338138039114673832711204498299343855842371593005368568743386145680255612024405674726957814429884387621556299940243184843520024129170973299566288676008054584128605786207171204434702018726413668324296597894544863911182430196216359933047349883758763021953939783886376477968844741359752812049518178058847904450484112207372633383682374014863918574778652204233606501898502211368005682427389201654310868084503144975972200989954587812372978802360162675544987352948348763464154211678615996166451585835304222977688620599242465846553537666575249944825269281837868356189615259084745892865728045991020947876457006895277383839807809155178650114739223937333601425225254912543541784591275865750739515526491352515467555478047291689350552260722284886631469970513978735065953006287774967168913034020255386292937734686190275391505336571444793590088791053793341780060555319955259792750069183569335866978066974019049065770656168716737624809299914219988553038986675977343912931415308953168395149833535515479325489083388042298318262475395976995191729100444359434363518659652923640766941747768137330443326417178008058378522732901195152542116185164798566802268213792866985524236359995630111708255333653298013643440442298106846602482280806937071727202944993822695704024703361613530316829252997088773976403468925840746946237387818534927807616395260921024137196784638018833687972136167975886294911316952601759873887044562717602619486517204843270072131372783056390698677024143769514385362362130696948739349821455264246398248917555309391093941936843450824782978361371027867812858980308735694990646046007694841347997508192552992942492691876061926276792312853147632594461163513112298349322066039895172502206123853663957416659578213444398402349550171873121079608922784152894241868314973246259668452686676313794307505315462878983895463423061627482231248355970589363405290558400312408885593866664778609749679885649414955001706587124693619898202153838909015506818994750934762509368811537628089052924921669982459295228972498153973290277606960493210754808388295547259910869163135935100277382117467328553745010291761099730473088297626869769927661192340421612615708194107966804762624129839503046120896312751558926763001471089595427514691580069036694170739004804783481149830729600208239683182376927152846821849393599633204054238291942544514230433293853700248445553683878262296764442499711372993043077799705343211268212949475869190312636227928357004324908541475361232595671975326521766560187631291039232988097890002703798515044827675547750853453690265975974152348976751985864803622995247038192504236749006551287934214155545962968219153257420153119887942090023675542432850906469240010957733477979953289448717038451080248398920091712846742314037420719178490019041607707122202123042151728214826218290880985744845815413680125711786112550826852480181885037640483194445728545532513476864838288758778935301379888451233325962117192376826518109833997374680411253971999843310205684280750376457898248760455029695940573619955355975119407737722148316293293617125612923769569134902504548697143860899502451062350105342818465668732069560764685902915077975661167227026363771643172076286584177668706799848375665567071051981425960880282369607711661928403066364821506475738177074873764107200772886952759437137451052900987912423684943068463798081900820546419858709469322043762174379611467041351979732026749674300782791037354855922105068239441567174026231435491996132295143162740464430903683684399389708777300867262752971333435439432868985992159692021568781745063393792276019215223790340819703748058123759185990744796678838128863194915056484800756235444773716278103754075001517451094991645099455402545109838742286517174745165906084923662600164023249427112671517528797024434767018012825151958952364421158866846130728649002878170590292355273615547395322605088775016578590369604261804823102921474324748706173049174882714998982327397865853388693741914091978674873449217214105647004228510537044120663184088689394510843977724745796948016223821917651080028311184956589527394713331686214354973600222136599356731748012142541288820122036334077562577665831428794029034666346287471839448869622803743173071858651820458663347928031652516910116737352099936082245005271877267518530148090246775070824505054121040167776330340262312457854147589716901316482837736198896187456473020508701817018417221585753230337146047965165351535323538425024563162401015144575927755637185693276136905220167406144046161810018201448079641463010981082248458487985596047868566752654941916103516928751723042981621461543476542395735780669434018314620154004499526514044629037082926428229791897320125772705061510299968230400249837480424949624836092476039584201668090517386576214335130382060565351978191145666743656691345824460240362604429292798113916034837832740504796899333719655049860674333835090645763481237825225647368312268690407553690836922319417905555607493627904877033517567762975235295335545869770562267734802234831397124619255729842190161501880448950147013386182426964432863326661180916411741261079401255533032671654072100489171379461610250716444255419125721216834004407083874575759838333676470749372621580682175315647097017942148023443749260419332090241705604229505246477660998732713854495014341552729462336398341556284328807876987704703250798528334897397206259452261522632128469042468213740560758267178003639231050093569843753827031588035232517525060717886901370369514776906510127095656686782711890073173031249887044557182862726182465361495136330938811149977177042592857253016238972452945042761350258873841944492190929571654347653656131458428216151608467144181049682358272512336729157107423499328776545238620916881833624830210319597284638740382306482825290428297732434693522923169493653019474196189030657583891154723796613461526918118225004144220542541806295617048566617800450166755126667364831448867267118953925665967274073057937005895799044611183736390388028203679772487488521297374080882563969210174923453024223811116157006661920791431624881513692496967660506523716184909678173370638530133935366591643134483684687246874853225043185935353864609520724386876887268985496969182641516635292556667873177901806349383690452589857281841174102244531026862923778297699439296278146310785459742918224958537852714601447143369650922082580944703599595341787979766160413173271513921385416850973972890480300850805880624218059724028700889896900170375063932632895335655525710475916184832302578749250003211006640048917819458068336537555123378234292637059688351797923054712948546642907586119898460448788762483532047913350897337179915022827599202802492351715942685841700513455578703223583523031266878822716566949332058810542846052803379785806892339838356673944778077435036758069889722308032418193817060902412002982163393713095811407051561677010558301775147712372508223755806148564409151408772026908435057487735217576900911688006621429148644651281896387658104248218253061039440996968070951640976990534783642864499778696216045910230393087582172931227924177719458597237971864503882805331171318142114470641659120071650606386265044101875446150393451139639587850401652193310905921912916591029733682337049974584502130737419750139966585076429247113936568898198088242877894269486977475782210438516026256384301855641131399747134063300216333423908995812976873159020154274723901597692022190900575659463312025437468869589086171746953578172794217205896018990813055612436222329765582575507602939389563833109222585283648782742034130249960614437635112590923410252310761172985363652539969859479767608439699542963740824330232852906514590510564676649995075868649233702224176696734623781871747676172887706335617907876805104710985478075052377936424234217432584209537267422081319214476992321655899751465894516875614655514583168614748842229821678813494098902295169050495060983997862163751680001960816643196662946329078996276199010331222085362739828225792838689837528510137639626382092132745840496110751549401188995739294887494667867853743432240657600732965714033792152629853069455463290927257880321767471996086842469317437221283639096902331937457211631907786949631014144858182986031531269769401130885302630079108784557416040343852292217746343831321184854690081554801101471608266367065741575138190212205247640546995071967539546319761600344749547830246860888262073791379505536814212487799068980517015478777696139524161548428095428679953691463003188611641663609212779113771743633310138403603321189716012694253668212448085672991999609186604918267890198394548249892119165491380599589241642593053524547347889807772332681956329119984907630676389910520032515662079579120470639921287750737036084433989236783125572829914399422286441341669588931147901136947297175181188215788130445508681402628198147620250803179119498920680064937032857485003318629164575014151479656326591388501157629501990444030947975984229112217303608676887018359367526989625861744139981842018820370439157795749258411449808321053050470878806741966096324226224564381719467142997521637125522885464231086468695579887874425755160949198289943424863925245573425143491506058980440200448551331930841609752436634987865390247259048440756425920756196019753705065757218604064933785461742312690162085531164161011716732258674258227906025884403201800643984430944313384186691052291191859454472507716797087771044603378350582739303805317418456762179556154514414865486855611424071762723547037615801517521594154251862657767955120534661339207731686690340229751852126635757761599109362549685335411907868870465040215422501218570266631023379955567086555724374889992685966179985728002817934250187984638905764517051778735579893239516789992524678241805792104056170016391742894042811031053301232710061963095493680682067669505077640561776720115046255981486696260506684323013844398377222331740214503745373564936820798814330945693555281984138997381997798167924359959851503022548928760715086642332806792841056872624357688055487569249786778342256764475697661023174637235938059318361365417091997848619546202266377103392020738133705182224489888257934175536659416402751319240738257141465151367538465915589991110853734217616509814536930975750808271451508894210098567933481958133691678853935764787512124242196617302537605643086173282225784547004944819309838637423616441964201963397027761402689740866805762141670931686706143797374522311693568704631772864738387332635369982604901711151032209186932893671733061238108006064294472527479694741932483067514651735893511116825813449275298326112432653152216158084651788863557478608044426365586560094216213879496256818933350852899447664470426436067210129723758959541241241609913538674808742303142649841884738963430516801540308072893247854546141026457494270661357427229528822501274254580904659787865066205458351568376034989787928159776501474313294766306367899498556225664000365307290239804748850611154174348916002565469437084651765208779545133901918385773225420940598198020509651300261296587756259590718205619796983421122271489536674609404282912219142697794018096624922908282106176491918891934995750341516753095620298879943052791525878003444237293785963419835927926031845110652365384715231158456340861665991849288722569100935093069112480543505782868146144728854601047463015942669832537302008913523631641281494841265651786742746738569344845931011539738245094263330623350287080256730627437551697739668151886541189047671980329785854674088312079199784248454232923593625845215205314528098096188050988603168544235375324628749153248221371871172364506031640528598968774426199741122041482334530687390049081038627770403420870466626134816001915631168533313371362523458822087113248769330873403190286141846254806820144299159054133307896763882071009506446252220487187435714379640627634356087140104788686169391593514229534419628025696341235192165142197133410478472510546378808040754115852114153987057461305167911888664756633464380651745431324504257425221490176201297924763640140598219158629296905682227083967348215802550191476270940808933586495699284319648735505169418334524178360995814875270634756750685105102246659530625320636325193535155712631299472132466205746018485302913672996523499108669334015638442332201118089114085262841766146770695421942558971251006531355886073000701868562537515057671836371285952518174608330722083702028534123116604992869239062268117452326246284066249934039547406276718535731125152799851553602292450013326340260729659484219039875461624362040789130053954437856641664254964071096402739419108811774213027912930094576871466139941827705387873410639872823327362937540250532784690011880970385185052142072053618955132717718617858724671239522982285705643273470127052081537195147296243238459508617042439323107931670888015088619817696132455327974722734668242133799338842929303214641894255116380644178855630570644941404341651067738743011710999591383993720984626455885929487331284584042902060770794557712240885009987650567514277826310231198202590772069155049143185930959824024998075314089793218167308684655523781885298384997071942548611750792856530011265877940334134396620557938663193853961886082342074051456432273381429384955579161547448041847748778797211787399693946486041478710161715608745898077672273541748790039478837042358056337661345588055923347881457948952965076908982801975249777152335893207550447751189376700828614980831996220504101318267066051031888549478617521600499754411187214727654998491118910385000966631737696711497609515411228074906607215973091986018560170130748870297261267053794930201164993506512862751645205803365321397650121524995300338921519590494846927711769444500439348153530674289439416758960323154727064691467985513456361459181995342560862764278141497529063843836580408615209818949486305424313614550131563696919292004814077874573664465237158072548092201544733498072332835443108827155790582659865079245324062512672704332815934317817723117985247449758164136107157827071904438544593879379928526212322284219554163620426387566171392133055791558357173730903403744549623724720271252843419396268408094551920346785721363105786296870571708044090110662196065457816731546586531034783464511270802113034870588061161452527679691211693389217675734338155238820372235648699965409080545555902959688136028441344234284168551219868395439419111020222016915192524828757362056638412046353971226401325177296512736685444963564781294709004765630217319889341081410683897441271563226013982945508682737513322098575108224077284583451047325879899843650328073795834579232320683774199390040568580122578048598468501131292194595651172531908899927859421063131346254583448121926770203704127185989327808898058335468959455381286082165617299906319318324168638022253689394035738797069797340385336295267288251734538891007792504678354595494892125688143304401709958587116877797193985403914023385908356628653248423154218829164578728450355929391634816312542828285451174607045458150834904617068140328943801024067649503653745447795960727047891562097686472675513646744341926267227619577953597831437418676840179486424145025221961551360207796683960007743779752374840105017306192685174661048374622615421444193572122619461030644605833823842185254542314237650792843549783825944650699670785798533382950678811870795283869479145898454633525016319050928161834606213538408177022336649236580209887493128565604450447111411727625908995451685365790929195099124087466639250785497610095695215880580468235997244924065721730092139092496837355949997768654110583450218053402635460147043577533894166660181856964635536408348664092717027066309366107883168487673730033502273327099589851484002192156482614159980538244956593450241734481612438899021672042832405897290691372707053013464924951599733838456690524349462525285798628651466081042395850252175327731475322682015166161266844797282274836146367546421261162357812735768303936561218518519271316319961061243872403913818047164142046798335262788101499126058783181529494630423061360208881131887138947135793808089361567208652484522898087008042870235205136454287260752494076838183256755497067811757809504311335875173369081092081625117906133487528687009156690023348555637783523436278846534043916283060042754882206928832106680156098879629304895089536250331072742054122946985990968733388865748589318546340965101353590704672857609804954566859771541849473309242291028366782531990423362708734294926250894385235338822497990427862198595604664839260971930121068471644450918957925112394069915225605463271811751275165441236821038327895514536067874445997828590769466133842852838623807707148800377901580079483340339515290155458217674641853201524503128315405771416160065929854265708435211802183363871043028110041221676710323763807391265778171484408419007734038464783918495670075805239653551942174757307723711332817597865222336479134188651094873242926083453032591605996123356961549717827178883151948351371243230456456121323420646743409886778364491710265969829369103361257736665922952848526613175974674776691457847880628373957550594759078155535228093467093422026530146148616555822264333900377678468733496031055458320714528175423535283540823740088801753983141167176574854100065796319206704633240163875052396998315196506464834513116076404772528133547165264306639863610116369499868009653570094213522501702770239632568768245831829820513043992834661332687154409295898730875887804235429579955483929785682861786300993187282466621844177668888983188541465621538253353300115997583151942758187739440210438439488210482067315048138358040299317972081900875810445599689307118937881601658342036293167339187012229709066054036605346689665207728621666542353783424899218191818106541818173387669834412242761753561895254212750484817410099329602830444841802074501620728732822035579020771676237987029061236189257762116462576858655204164024262681481826149080096622596923974047812729185396577197008482299569398594120827758791149713802263790140598202096262225082963646070766755638076673545686514717281111743057637520332123527682861190348237226126945536225517603767484665588166197737855576295251007510260565006943896475604218056151864952970754362881206241498033468792565716015897930082606861572057792802464918149105873166751988070263918158348299970182033604904225148295647806382341352896034024102130382893244698595865133475832273271162955391072591947418996903148763357947549914488191841590180386790121863117151398186572783734376986951832393960273152034432091197813284563840309238854299426557337823979269842800788542982538907257842047253713607624098858836486821851773274991538479072521042802230581837773668607145118886464289267310136994880531637497109803768953441559554462645065770560860739473731555658079657499697601016813320352297367217431331768892121723755025034365173578273413201386599762854285776354885388781149920928770523028998728834909696396414910681693438362296429576902953484028360805180458423791616850395118922062554060630721579319214670960160241782461454427210427181565005515566527332332634246764058894917829956904045367210467763240246182069115415896097085336602932466077587436729994262393589102802404023505844548906591428924947784478124780650800429075649734841378987376946062956832390180237779155264132055669751236374679672237832359301124523212967807254337276446074263753555345492422712488259396211356348588553573445735015028468397064963551999206434342806452574619849351216614057344653034499297508774330424620294387074307682752637917759458038483320868466911478816145402511859041183148806275718115842275173305332447587768030178225900277808423236224821967559703218026646647179378484875898650121955468619363379401527489169176397815348991352999335391635594217548851409467450148886883434095874719190379830291680451564953189881290890696693939538175176566175834797242624941931122090415222020523850188069605557188456655007516640369301895006128342600764227009742009828416815060752857520610127943294195853500048801234841438553816377501957548360077883027420878194717539843424897923989601563668805232249224138123089736676434209320129491145928590480572262488224813686097854411547908506733643820082396891887035301674016201381437718779591937217172734998327835210915588147220618338570592343610021330257061832905853943441247327251770247678087336080296247445011003245876087021156860402237844267608824706712336513462693737274677963492404728633936610952342362193160202576932034115273573239388153029891576438423511362900792216657801277325253118670868521514818773429629600560077432880107380966542101735917011066341847157523822741838824389529291452883198716521707814729627929038635041247137828043914753007990714539886845051921316852464490173216584766182716559034056273362381757597965454718989227062904692471961473679636780220714952868889963544014938716044169738961038414803346027958424197038045460340744557641813531418811142062143354835935077228261862203486243531763910632111978195059597820078305846130995684945334884574820099056119034102053214849841599701314409627572372464978049623526985178948859255706625230734016640126440258216009427714649749099522537987462635743133343821635508044511463012226460853932039652831367741663400757597560567484955606908040643030340694786372255713187197472003280930636740433116099342577832431715562329507129186729887644357158478988482129256947431662371566298741558425818146834474813558149282168448626215903800532844197234474709575684433159974747347933826583864553863968563648447332673636038250765483256442726667190065126603640666044142431467292385908525968589923669896192504598227514913053311469171872950451124006970138695018831967487476986850059777914451287434623231860596307829846283428138693331812739118813824328275098565651804799054650621870133445821711154695918410686416141235542948015770934752342178438920354144061135680689339523294746174584092397069280341028417015195043879678207487061525937914336825365555397771828716197681153030108242173799775122886546463290253100748014044868550212790384501364765758434248676057416665999884679483298742933801475418389253367949092038567443835785961374510694319978153923912654327968242830423801927080989370231550193785518017830323092870938682882661278230925839757871626322970931848811347539819854817891888426652652126732826309082172787081538617370940621584565457525204999473559607941711057795379022376478244938663467576395813885448889211540637639861654252542098345014297897001292531170797765707967471350801651817741315241508535436413605421811749916477449857880275265729478715563672088028816234549899029550922541667891743294082774204089792897505849660069033282862304252575212279683673671050222523012257403538197958435081156739085090726323797050929928703991380113781487649963322365482979222781511743169842908192476467498751546672274298986107395824194443734223523783349867307208099544097089752153827152409742764397279560931984849830351429256392354374002950585815598927151385582222591004779576984485716757639444061032245959157754082132312307401800649432957603881794425912054099008684999699598813208166001369532565797740014352164805631591871159017112529543587268679709623438439831091536651375951929138308675545158557245802797528653614221467996342757112120098810942529354738119417116918629082242288868558077840242979197603770123317315630941086941397947064133303155230765080207454245380681406160772220328451111897121769680418071783985802386281751847000726476857600677131326631739864297207677458812644794181056603263801609454499723219166772135691604925356742907181534382653829358215143962673330802747033991354085610118532844037774045957570696699207971858058649679142557132722757014383325530030017105807045217266734048904867499220726824781824398523398772807195134712821886338545669312062098105796117370556224962476751308779875270918874801694260608405030258780211684038647558025290842638326224640274593548256264112108338935532101988831804603704027489080453345890861657601488909050750256050687225384579843693638700750246464960310010185192529895885290091784898443627536896423435635043084944929219877207783625516656312575949086224144315943158387587906682968789421341836739953103263058560620577577174554117935713473044858111667108256698333101577211335847328359038651255635632937798754893161904176453434163428372549681309201711916151277315622816115523200033017384482523875243069030986708051890508681288232442751331883143179597249096565828092164861806117463809201226848155736683283343212390221668616403813109897013723160932607263877932612414516581821091796495760204896274534643762189153891595739705285843478462970134374612891656910341049733694649732967116224972417454606608444509373470480612411518511954596096233974032813036396039165810852877541441504110993784157819614868938604884428694504249823952554797312821524818734023314152819092188231916973215350554524719552930965161906199169609119814160859739556557102717149812602078984606748017760839065901338389455678305179953302534218707903929249838050085639996347193682536150917788153048938752168406627220093974571510667293784341859394493264741921053835970961349519975371837202773971057771384243371820685531146609003408877003547270601224120141921868964090497571368749178027466734031802707003832360363979215802086747420481649428153649351290170308278465140962564142597740939084768298566156538570262945391140291816006748749858259642988738942770701096781384974079914425707475295561873245780432667464531481029649823444294320166735614984900346280847173442627013341756426455745989719124696426890476935510804999875468558481086994968613929409303197779546569842349155229627805439909886044599495807236293884442692519460963384561196414829251447148880280206277677631214834593075033877842293792429024936862734849756846662596628600439631582416219308691976570568545366740813479460657699218434350014585085855094173944867142600126393425221636169236019196325590011336116347519853922603436980938814601182426270745019804049205351697657037561302250590106346074285524965392376711031353027547244200136098352769105773369565202336379290423946515221293989326821910291386655876293442813216887252183288508441438938539274126511722571025733446935020166808677595053453905053477590430323387539565423096317308860045075277636161787857617439223847824030790244719714207857585829175896921570556029982165404639699169473598231852348475508642180891866089928698857879969367396812535793268030259590479185564591833170501079709613482957055828704188347062914579800437901472972542424597171890808538328353512096210081266968341953934585918683695532520897914905380142066892021630189486616579742927833392159901343856400914282356747025633822033342183259437881030611837261336093993816560352135808722321799487436690173012295110210153264553524624548459917469264847555024890994635951850713745304727697023982485174706307775020475278891189454957926875629494187503526790102991407288071368805360640198030695166851484319930254516922492562835691392836612964480446419351062131823588273513105917536023991250359005309240087480615102968447577449938042522454051900522070365785407934962732006167282038993996664380663442655075066922270482647925454058482528215203142778822924561624696976441607677424020109079856228907490633119255574273203192745060766767547589152976156358870363535146005499363293538194438208347844427550328723650043484477083973055675694225275613640762265984845762994833485763628741990059613885443482910111241936041508860517621570983943844782543828171110682205594775961623062023680039274052863336937786310792640487168466313341773239500243942987284718696535242533125125308200274505228414300620583622058418920392879496691120283999662223976659996334214545782582214824931653416059176933058146495275771001787996451687880944495630128482121978780498069103201380471777280793688695304740860299722455137651021313092772889318476181646785252405540314867716881252226937916725506992952939315388791956398202800749551472069419355622800822954903345358302420003573103407530103546187681332557537882464790988163868838428209660440814256632647578001171780260739602130810201895428673190089212782135135443131048568982895749813172518614174757844950881448056115430603665759984029646682080553500917533768778298772550319687558683528947552034859730367058278598095145893644008492424711903038911824253635627895323746643837310477433354257503109467424770531867620431650620472823798790121301046427507298291124732037931991592141637991744659848293050059506360676235865650310373410773949631545224301799875356469291269351272940974785093414482589045011537955585631946984027375196157186066033138519398350754073418353821389802738098895473698032862559401956804958121911760446044486671093022909870508882893715007060036053013111429196949238939532994095994763555647286977511461769362714706358296357789990157966552076175712385084373129726330847371522590792662744201227803793327970860093601522618387180085795969325700190229449042246527966764311535457627747242121019607339614576178658389802333844142093501668600646803526754729901113521834179568754915548233553962204705559576254739262641549925178486877196340160259481368957171046389483707616248562955356134439845066511070808787574169194475124385212296542409325785221840628031898027034435795766418755047461859054157589794824032236122752670175617962571857390581786283094241767937685964137491619962129678590986979420274155525314123319262134396086825595231742587889355283750425441812094183338831114923901549670742881735465282899884858161213449693523506322073965560434079576562328857770859548814464911594854795459591639534204442401210618947098840457250391109380257216778150175561805638228608011096588408196059028830263374089883982353108717103516972322487633434613919473540401831075663748038411196424918670363595194891679449830882763751423299221695496258621150934792719174618888360798257110971506295153585493082826589986642508168799693879339306769377236291787388312463484462970685317575508675154526190213558212931043977444985594312035327361934852466674334607538966503261677288595058137663526124990852330749103115156911852685854364455336784297268804164435842191734859351569210679790102371670616433324343789583193173904080841237954203103282112583995499199975091582964873611902812442304109631541319462389882451209302520810151817614387172199948592552257799313791354802823108568681356862823389793053831511263671640368470657325544779689935203900107872069299375474936213663103068769982197283287353957307104992226337130444556987865358550646624151020491398247670771114133409642139515516903287630746661130492495786090377454424998614547553266951536858717146205938519998636888928124120786404367049048832349840037203585376142660043555557658249164832345602434811520606618320845672745355611460908111807675970343684048913806443808359281013193872711990591823736234370043422774784714151834613559325222792976340214136932633034420739696391646516867233886374793360453499058426640618082753630308245601966834423076357664816323466492896589490237653513031553023656634245366211345211942686552977454390165904065330783496058855240674390748620701759274180122795040585901895477140117946704242198149797175156286677772900631588505682943769690320429324658917638978917854653348677510474229516019653805181354126163764958518914257680358647323874037328041289332464987168152323394620269988063852634468380720456803394052611339470230529556591019342866369995093162557353974815163496838677353903506095510857777980040504685252622488128160117431109776660753147214978317659804160724257978671645395632622133110139701701464885772809740325937199068897882583497867787066606074487272505190815251690546567061205727102923444275526808758166490912143219567396386193964189639137756099286472425761068477717110636110616506183138361841685689041416780170024807964960443759538231737842927432003781985018466961732248924342467879158633668871115060114359368259782030126886626749978049205492449598668193486866756820720396218992780008762608986940279309576110383450635170814394208336034165573109608608613975127130437887667513983516661958883941338398213366507268286717659224291080652412411887391893433063604331922390994015726043100828883584974711033950207710407662277193181564955784292545912015805874953055797871973372794105409477302682777974310645006992560051284037485890597288610355920284537267765469362217992123597168322934029581575476955995078489306835779178507071714978137819975812936580291814571707394022067108802124049282951826712421579010963717789333159062422237403837229646190723214000097730501691963658376339554520673868763796703466953942496525343571281528931752962302251872381105080581393270666481959502293218943027407065948274927862846480679236408005527972065634340932831962236543395659605983197040027768212538602093345878201447482768036577159611539090796818689458208262757267055423958034452253430218298571572056005463905267957671332164285213263617337977931916338296945701119735737318617542930043703889897034424604957324219623983209637821496669618427071631793076232661903221172949279800129200954460810903823510467389520804279164530415461902290325857830693445847342857471749061942980488773625790993053433453610336094217775032945356187007467282998555342518841623202393351971930615846452902323673856793015070274202270330924754440914720615188210511468963176724718675060212552553338085652648963938236280566993997850849154220717603670154310866959893357574517335763967100977639914727312850842782156367315152600572584232795961824610369279312994995134169305650373252081005704036629690201264331500759207983562110502255591464318734381702428858749842202715838341560551308344639951559932425858608707780849580020412067206526751343828721205917404606053153319193900431240072286652115289261072930857084233011350322320445631373690789921597694399944817716078809781223111462780138241455089332475153151414796353864007023778435264149979964893795521080793187251899258227124120779004530840868854298905825236122600259442902803504051239240308324699792402706281730223535655945490284881063589223225428721738874363640689687420049926871995345266607001651470206076061121145479083077484945182130302621311555198087974583124047406975943000715171133786714019994861805359245040879050145387383220026563013652601567986620544069109176422095140497872364818514262253181044569137861896809177275757605286710176374614487839383439741476591872663270898952662128011665327422197891323341434923376651062538059852413149593064090673854073532525808802257005675809477253486924916136330352890308505078257250986818098192989005957047055546281886369625352197759863146416397080683328276254935681293187871532435085710940538399432566571142287173533060354296862290031946597994928305055240747018469304748931211294777966536753393633468128609873447831166183097158994374854056055648829452214362641659926851365495498727076139889565700886001719801114011243827551541235101969298577967902257687098354172609475543946920177518792289505685887367816644134061772221662206757600213351900868798516129816997270502995495234212733435126412180944036769979391456704438805977092406710359215664952703475071588167059402623988349878582216295900440761795691669500210277598146240556323104939605758184718189115438924894486146608925131273015206570204233378054588906116507878406147027162073970872966501322093434495758599247387720331643523106510700203957604752310673900873598220912214480756014966667866969509632694439780477081376058018886757629470287209136578769821692718169450359683914812429981301409505854256615803020888285888571134388764433689379519512706273123475179349638596110157854814265416072073281327959269345302623375768495036805128087854166175768883761058442240692891608520272153341553311337676777986030241733018158742080012704684047918421926681497506641034842258948119610475216158308504536754970145258009709217316889256328986633592241294966854970753361699962237621275553353568808159117721072965613241013415399557451710632822446228337097821137829874845793328993254827567223571257275280464567850272952799425582387565294674044849237204126852342253209925344314210159180257872233269517678699911791919233235475250669602725427938051036656165843401896808975051954887621386311580329055091052584630745201025050136653386201046965722000064437441389160653372847959444955837811966674785153308209559882589087085742120313014383960168588790867011732548776380811560639187154415596281495454730950170217025454354204230694755319877295014516046106256825994248939444275874686936114055805775748194104251644818690555537033523667120875836966266347683259882769555525704551506389428189824362044528768699511874293440420497617654229381406983797437815166537461111363164071638550028653202736967013008081979928285286991119116548486072520928185022609178358598158201318800896334615449133392489949808354338757831680837453439741323019458108458824066144398817507616276741211357187095738391087501324032370541711880524836053302597830174778036950842924934678360409586281352529712334341916948823900751793321323964965418717801147135380016035363942518816297609326549534073695394221826468117595265669785899338937281129308139584329103294974138862122597922981571957837019388651478849875737697613758161263534549875490003697917411010459036811207936969000852380894258913751908337448588207247326634854894868684732289220194638686896540671341177248182701697055631406277172105630399851727288500604261166995821220398715892758362362885239521578772989134562444126836439330143648780146657350519733148199258483494928877722621833509108813455131411136135652116337315146293058738628831953307308334767849784264939551432541015142654980030905420512350694261758663174295363227392497064964071408707144426772451992623654796952875890220566763173735315462770237118898792314236240704209821663296648286448844635919044504748115487621715793400718620867646382797394463104862175215640802989075919615800125152179501061501378814711802446181676929906505489192291842550785381334676208739448303817175824410363065788187379355076055261020536082870430032125073928288784974083172109332487232002912216542609687505610159121305960436339283697948911756903930861093603100209139989011478626008870852604025975015470094548689288240588556975119607614017248730585092587795987218147978598175220163034386136035517012324060653315855265854017975821547748512153313381589612391365853056221741909063686625339513732043603244543165779057077775052331638214493107896532752807174595036320499942840567310330354169518435526959832046730341048205757215492982819484032623261565982531579561781310349561831769963279083985996263119663509637365209500692810384315322876602120488732516073481979972322358458714908157327181358334948636967109572879209966874701651038385762192013928908963276406760226442967650084185957017049669446876775419472069346418340208412571777266104710593451085439655447389518745953213983784077195785101442424576400628016627773630406719945711093394369186327160705916654265575206346758114169188329496974111564561779017911352413729186270681199554061730872401153909480350953461915233777720993442107740766262401466499972317155279636161865301832591370173134359088297040429728186470766145632922455320424958038325782054340322249946190906098705281596727712841311436454907913433570009082808300627180720142535547040713837189573808994192759402488285767944857922282036689315360318671671664800807556225465807506437014560271500102181598838966032385051026890891272346397037190004840345464875854420382765476283418234699786829462311418506753794861145844463429690439242210489821673414255443606877829895406209735475508057058155601607988050578575701665792489831924129368997154411352743856045271537691148414062939694036709760041063445804120133850785509269449751268539641731302140280130542294680425625590988400685245156697064506140837700118009743813920466802846582278797178525195741533077528828810787510995064413426496155499840143807101230521442942732753365671192181936335433845271281017568488598301888758121153149766452106969358783533364428148466952710735360044908984201650681757316362353580199830956523902958444881965562312137330180093909248620124494273171809178986179631029340556654225400422911186443677615817557397490672486795532224914896010300299205823990280034930184325674819204428741605150199837146250474191764046047288719676314619773689967017535609688083470636689067875565969283195187388010028786598644843590322812856248876944820929299005470679747100145592296517347788572313816731139819468700855635792361687620851868808469664972801196369385161591966693940547302146387604567585324949927232766932295163934181574288333259325690734471378906117726896791010269302751126849704267269385862910920137655483823460346487353264268460574374060949423979476409846691206120503666412696087929880177395529821204386746493184668975759114084454983819689928864340262042336051186588413048222975610521572049907965447442540276180092389548224023027293809182449469192888967008325746051288612256239933406977094646883434304541808428606988980897447211520790402783226937981826337598998913020930356709956872581129774414333071946408152638975630208853929256436314505561138613161812552819058827178113500226855725253488010425595425459220367483828273952853548113651245005415613512277324058619998922475332695118581636584651753384762708781274649778567764427668727700584861443838291755148265973773478631472403456237370598896318191153644565584395437718122860765553412910279472812240100202086528160321586258718732885733129498766607104762447631433184061807323811791839816769897614588542527416941819256743353719478413246430842129455315437463146756454389710078289083367320524570245902433692441185565735662357781353442184954846881438592465291563610845427338217893848677258911177661191091304464867099455479478256348428242003970207092287816653575108151730989714498896287683854280452596081410746087501272139123742395938762422879748948487682989148155506534230531949086993244154240104608683473335701662583331825572680753250294281948677420159639114751831837653233713734294031096903572598312734748848735113525013544272785352827459985926815422068538985410471545199784921472496553134961073071048235094134032965122803707315178246394767855923025291351907069715150250510074883565544976112163469014556655359073246727757225958794619266965769159183585160009027026709869296338085127274142185512654325483044964032036491796729201879542497228761226975335156017589291038631694728492354406419717078963162830340422407280072493546794171787129634805073789637532215610724507543151928021016859341641919048641297994511291999904462254419824422859585540863976486765934184357403836295135973513152954500748661153285541397153739615329032481034848241168643891749854251172558008250439059026909850577941619971755012641006573258912444013229867303274743063520721832811347972589315349691643967310590373043714988554726753975826420873225764989320898617188590159038399605264604708434434727481361837573204516566690896983800969461702196591498465638733271746180422896321742583256752908323640046240139307725690673406376755987810661185888549094286429716373943076441014770914483374401091562326666750720554018350872327662738879334778504531398633034841932277426112158197754647392300465997568073011202103364224792602174523790893738819099430885740649751413494106851871025582781909415509544312568617237484004559893713894838353786261740481737412270909396726007177785767751885983170066835575572106876287611986747221643688833049390500902323294143829206964309709287847631900392594964294353067003544856084031931060436175670461811302567403268162302510782040966387513059552193778876605142479591973111962511578957315491959220694862577488030194443118325789127968433639119827729183025913171876314653319617342144305149858243703635378380598299140527104762653516971918365210214306260426632701745761763099983452067331970351767331949462810238163177963501141106245790613687506398474986190608225519613812732582684134983142776143838055712665136878802822165523616397145197006058159798716356173955115891598090579800944589517558185549587710208354585860824059372079269188623069893587441397866513711875656911480807441845796324108658228611319334145954363661246280697474352193065238247932801645344700640639556291025769288146455026573513889114486447293703187137560499332670278362056754533683681822810083903327967469452092644556974131162838085889981103102701683025808787153619652921722077760512890001742230182775677632476968154632597474515577630104127325838454529616476869390645559813875903321167119573052481895873180875176531073461365820683871624293125681762496363058410730146130316315397100564949473083644201201304058593085245435461754922517102810884481421629101097549828640403460649838490985101335724719801058900618153657713107535021418415915694393010961153763304679585967436531941128213522728610191134977569581750495856245334703753851689409975708885593208859352848157689763143616945070018545778211510438799335897337662598308580747356096026488297887370140241196975218490039268441164028056208872759863798830840865285642925761322897481854906672686433622389771522632798602912544043681163299002108455210726726550997043189434171431455927650295748928474474044072902638292585359745250165274671974157091873597229249144882643124723642866067369154810318760787358530088747013941201529378192423690046613602862096745936106987838427800820839363183512917094747110403071607832135978223168098352629591988252632980540707301074565131436623714009025527744402980087845975614015043130281069797695762867879032529707972485759795913188889423556849788113129297868211712533841898553246147886966824402260950346924373729161179708726164099783454469436880182695698681893584563562297360626720762274557474565342230246395569792537069420318816909092212723709484044713805528041712140301637811358644456497206719263504719681010158246795424047787156839855380790919592727372986599517564688962264106512018642084044732680478730830423319932995065676248059788017977562118322245481987108983507037482937597754007099141592803644095048495252156358158315728859244914632647790194199566807339296328199205612156849921909125635693482618197677118871839773554835548048129588934762746550238071336475229177845839233573125866837873123069754813376883872430824537694679364530772631023111407758712000735439466439145621174348628579877754164699122938220816086848528925336094878919498962878651751538912991783855337920648063854673110333204054073065968516320551594786081190265622693283729502981463520801621761015408392453884501359939377907539924706291827540046059820910826127098014295750678988965350271244885014197490683636723313708981039395494368890546679514744636925083360824640870703374982994720492597258235919167428718699658095503940216670135631866916611761766067505424224720769690229358383693366832195009266339011430592831034911495119145299079281610348667295725972713070744853000428994266718318995471444725078995923398738065516637485609965453014296778582543308521662870657023111187406482452097918119694186273316141872197113262958204641082716317168710450071787346803678324976650509086386001436698438669788057326477230766057196761794522689250705533095662563731430011345557974451833421842898890056838424609641789498542144400236109052046785432146310332584833845857789873529367648298235776064609366099460575463630849645525929464233076354092789642633284251795105933877244661450803918187195881793125363983125569960939076281511294880942586355909890567344569769145503714955252726103161502395025699675494551792386765400020865065332781294241076666039847439549923500361583448356113242783626528743046130880504545322568903869282335711707229068897360241716375294738320532443200844292681691043296776974397982291788655552128875308429422568073620121844447143324938636458598133532554611014365417984162483116509117102497627259900775030914951748609658051121839109682408732474131555299673727397083050629593206042170022630753934548386566264406714465047319903405951492472682947269841397453289506140533119188991765288975936243736200629660310583347830055922210897463417667645890884018294964996439059336442824169889598475632932792361532493913166456813655371982026766347936219270467154732634263670719230292459153471686586759275317081557346188011996120115240093209729066907277879788798276390014066497176046581485379478740833422595272278542241774261725773452108316301978440627124838124664821408395820379398929080852541745722220641997524315168048991155433545594966993836087875647569963106365225791808240251077924564615129282707418009734122498235067570805000877423794609472234498548578079916430188584646532781164802575225468942947933092789946447939955124011832906152496638209937788981685579599089682972267265036785868983119400775792141445423476955654718842681874212955750088743801891301581702683661720281881255317679864627397254249951758394012029300497336702499914952742525363502141825034170113070649245546850623429482860062892989448823514492471008965720085099893842321948931170942534661476370551353566264470284790551246766041572603254337683367661849797372399437775862271618157707503120776596998592603306179742040910230208144971217800740621674334532888253001834119239143535824656833781164868093497500574060470695914189143476858239671442535501894000110009959462428178439745942043326543207770471381522035932654761758695234549525392065162852307450246108145417415149689017319097913041578469066864620540629662903316117968005347534312469795496963600910020392291879946010471450431826177469340933060450929670015846964999265784534052711178292911757632288997589205529092258410527275654565412656127191958189607071083272235597638978972450774794750754247365600147259523826183646230628492435089484222367059696716013943861611789798850474430535930270555428519136857012220821383395397073423920586424361168819701145228021979447173439894638947466790497296955263063100556363255982853489418421928894064346277499602099006132711713211612613157273946798377140313101768592520437115676260084499765264140559774039732427883008622597235343562972382823229014049262729819981436196342456830375743139854137076640141180465170959003103280799138567632294732917340272168515090232355183325206673018720771831866202590396244719678366392481334672331834459322773111811804756877902857250014705718066300437038641019686023945412194315524144239848832474063243187789103067499455588527705443841607593669478031280961357028143904738744740757451890491943098289384285256010272598870139275289093178223957935449076394793548249745302901612060826397201944074479867074047809275552101146394618159208218391596323576678094576012249888235526981896346730598617736886216625440969067245140990270082402145401101012951386515271088931640384405890815236044401386238526322666143391941751636903555949224939812398277740620893461099429582104994213156938679336124304989689470300479892965252668398017929726298117343961659639916934248661399594106615976803399541394406422661742297576899679067918144875078295410700336854330092868304063335667858390171402618241531947353591206635871456014415882958088413696846501877582670362258268076824706731239619410381988257127443513195316429977207253326716432296770820628443809516335550785427413063357706322000018776027296042919585541720283000289828466087188876420667763130853725280167310139343599957301303131274902131239474622652540894225541666348714242875946993632529198719745187666840236830775569731558384397631884459387846815997404981191110816148809646494257181625613944912963919111078878783119663104129479863864878631458338839208861186349603037921221315997147093955277386622546082501503519307999034340037140134920017840572988249860921295656085046058144442813684404251651558040558727997180553304481164256202659675644809768351959958364757774995912969499689076781549648704049583795314684308213774612863740397331745200901751709231370793784286670732262531957501225004584704177077165245468455523512799882980350530644707961329784149568099892509673390366412962664989222402497292066645439255561264629191642914528503352927273905973069750207516625114259816611243364589213351482774413051007945416063590565421430670330694081145640740931817832121306086868685595938981838647561656081918667872084820814447745475971987834514284751877839886033209518533301162963814732937218812005570667606476432112603401545067922673543091772263239382903668133899064977860196842567912133335213503190995813464282376001551311485094747595692573129953601353976279657536871228029227108579289353773958369851651225211926525361653915799779434144737181553307565319317977949735513280060949571888599720074034133998971033092199755900872083292267914816282227224306312185950098485757218590190488982164061982569763014916501155994788587063324351530334244867358530350406204509163514086053654001298560184696388753676887787976897061854789519374143282693134317507964550975860986604463138320821876416604022864684652195618444977996088861607653891192867876953951581049036924214912931289351715016265900241717516369825688951868614330491363830160469544745170798898352425714493383597297917440462232305251449499349342838877965424684400692750741947624393358881663353264253662979954839205353056059033854733276976499526924620247854410781474735908758267110726702580644139720028074265909229162298568719188948318293051580774647470952759018558456763531812666930725076332866896761187966916306198526014759566738910018306554986731275546625370384519601882194164463958748306320510174251773881891571829035794482066277654697942106071190034138718668831940727630538471039017203363631304819241736406337258953808020585822085296414624322347981843744096353850478113877900763995779916637850784017830752928871149466276343977694614711663212108512965963889859285791564745563599628112474138691259755096126134450093950456914602446978112413468205831448920452680739849840531216623419508212815743263570376147809917875215426928983350243038477055799292797473353133409274066672655871365529675806585937646600489800264732178862795198211423889022699557280935756673406642269369027820522125978493253006409559525098496119631665534093101307393568176440482656771633409475964770257175829973372856151907129059563950132327078053564452329820095112391372868267031520508247596516912877315373928704694982611523625421183682010224440669089860133373620746432968449329878735195932095260773608124225116455045365197572141562086636432922062806998518282781920533234272903418316097027712454107485910286794956747031319618569194326645751405223231795357443146250393050866836039406850164832639699180487737552156479214019548824971957180528418146530119151704371725313283594514343779561445782685545405131603950107573375638223605579720645210480970048666907270311505071990481855370683845568212524852338434663369855645270749569286585009491971206187509966229634364875496027018422461297892252590409814732526903881589890968672667657903305260600929966289592365082372663484112271494193658267600539410338687901944753690939423544533120731738362272624667877819598155661660075243401328782466195380708507933287663520227537434613678333084388604320180336921708801585593939412831512903495773953179252042886085919398515525922907765566754483278242457338618885527033634644481484024819624445775355046555964890639255816526493503426862046634171677003357052498988618859905048739821621915764446467429082534454737787365818788446108200811798175486770077404033086920757075076122328244056789652051453379771607974062072469279543632896517835584045349452522809184892676380454216638648290212697610716027380601282805679650440429893963230676423916586740856645573072029563481564355779952642176657967282453179720468171729980831191256243428668230489171790395223480092834601357155351070633427566048342246460111694619810859266879954936243954154986263169622738183510961189729806457969588352339154567822738532909951842286044683153155942793743087340906415574316591927067620575712607508934605113792706760828222644678885708883574141397071647993740666234315458098438479380725264909053504198718570388250359022039432985970522463111507759006792043496213597194957541983466144813234996971285970589691847603320723718386556645792952210785739329825067059545235060003003292548338790306477866817671596221584527488825337931854280933561858745696486909551481355152611733066252917833450803874682618955042372288328568657546768424872170837766022073617531506269634269088660879530839350979332164741812133974710741657103605204359259389988807439953478737404601665329362098075274797311259926738497465926774236718912444499142226307282405805055196735359279807104212066191722139307461726589536242052827550187937300061178447092303920542891171374520987134964391155625967592795691163424500545261410340501556646383233377596008068560575464250397018204439988430127228310863495200078645761746237768346289339237446214818101831972188189131339151550572095538204478050206727234690855550211054302544568938179978477704533148241692200431998104365586004028673606532532244898997736165321802914365034523503985714622768223200017020332258707664040269471311596905259194230546784366465796043115267535543503556665653680531811895748935823103409846040240661002499449837552858556797500761045561117561186709829403389327937733488809348401237253154469913568463371589028368457464689366119389336088089257443251793341785903744639259550462638120763207035743034260834575489177655264281453659204801684242668333809295685845511899279089581721194706706868093601628860035693002385558638268455523814857615034733513473200758895290819504388194997636316577169864991403432641190042303376043761168888322825381199135271713907930332812316397443753961458795580719051322276469045899380489959233081659962455875475787115126572714607880834815029453751256694230738022966112184829281299876426361037367861325240428592414936175187891054049060808687847882430159760753773249003681471251243307705352445322633938804709561758900499100869869854756908177890055217200100050528924929275699897645773566810290605102178953036700981678913348325669140671165475749407393428194423851773055203993609400070728098380010449365291822555312329807847202583719660611485480985276207862484476736318970989022255823583700922891309915426925069835693755024227139894477053445659008507247972672499226368744433589812680792934963947761881304221642736605457231954092210653844932250080481858811547794843994026195422301183010404208504188950179651853724638653385851759898293855022326128868495490569707436672188774611976025910915869522030418423422523141805986241912859500291339916395697338721463236033228798256086667197427727005599995755592429599521638848914137583022131578205681730004494057920938844338984366569648110702746447539070565847286938011570685035731813696109652682354695493419530907603123102772260002416133506579459314315417229688320541690604885054404835035835378383743156312983467645607543495443193257155642464796758326798009824956278377682702948629451829854790787637402327723595954518835497712082697836333553345051067400896044088833839714102554054756159756320083924804356233285667909568745730893757220103475392913255045905953527082419133231278768484188440453592577218308320505792494845599161088325420986621041767125932842952674862397021775845576279779135976507202382164396132786297272200060326092412822831057533274369322004802761725385635596378815602801477671750516841054387901462672000104628540548784323644798466699238534426101860643635506315537739089050687891317620422928208771037533013147533643413060461323140702160157634722512308860405296107152532911957800509963740107872974733482700922179274941811775474190896140212456685490438179500138513140936913660580056777942998497361349511856236497630627958063252982781899160655126673032533991168503921030715537290442646536644798446250983402820207941149723966980852301830727646434364700482644627155291840052742381909514200985893261835889857090397244637558002531512861544449519915225872470426282777019255187692424660687739616258866560316977841983073799802568640165995968795170610635923934425854357163031733511348885448861891731643479275016090427627369165209589846457714932347311084322701321430894204607024018612183777879049034154703276625564311280021430311809667459450723778531756784636113052912892526655318348918457767195200722711721258749918714390516747927472800899017921981918116909249843283889800484924297743573423210969542226338169415838536856388908082195396104573209430849095575427776063026399041678626075134240791311114076219530852922167559258311571435474220777539351194868466220960252186089823549050653664224202697252704886797472580044042053742983762903842505480201805289411768797309967208676301629687204834489838198134682225741375578352801041486659859223750913059039676567830056276678285387038720462572569385292848681769870345607291049149036444561957052588247047167479722761544460274498306165882494637477095513675892961717122781820939292399803485222538036604072854048957119609121615501460300907378133625233744386279078271633340346410592449967653792916324089466189872295592932443308801437318256400626338692941722282453673163215069818424749278619303141602751300957957168274311776099274073622010215515614912405120476528748947889350323311481525363029562481264968838864623567175177770701621515052353566163511639969598588464783384770809207552662265315199714720587074480711432147688298490563004306561573162043893674837208951157988404219794846459803740954841669792349372841490624764009526534114859023764388965051142414982544725513736148954168925780747384954499478639325421537842320968843335699661100684177249185455843511829886702512037951002211708080366601906059533449572570964468204836991696472886226124833589027827623766488336409036791758284605368123272408711082216656791406001069504886537761199479836646929805735218255392560348992063264610686748607587718764466377584895742075722065052938395949774453540507777377988657570602563179967393087218214583732853630278224982224240522827014599062365885309927232453074861582468396676149275438799526219489883356359313627617399421295354537847124356114419524133881093512141579652652585832584016117043830953812893368377460198363885402901139324463813832134367755585733198422360383340092330784860800540173875951220113289392939049484471748334335329314517259077204642274254929554828482743671380968092699799294895460268298464333346493211010689200808188090394382802908730088455507746239151655296162269789986692740009173656947809478128248213663833646050396679133290993878543039697945651280543286937867057114407760533314868648954213529509510960772014884158464861268965753192826270645249718048053977387452893611150781750845813858267594232783836082161163115528310134989795499431967428089315130744212918493761017578759245304859931024456507458520749511265025742956583681412638099264339038283098455038426118631767889772955775869286491395479843870486780461440838450645042753027659843976918504772798035418264027879440561435925279991976564693561693729158579628439092524859258115861196342391852299126281489806886799258326015881204634331168625073088542676088919666492521754544485452531454582810033280782358064681924122266545274270799046049583882697129967522050417518374467346779684644612973598501700904152253602750808092190882456622488837921206909515874086733911303341688487874547707014924987890830933909787470214436608589106444404162749950250609478539666779584623063948729124225691840167012310806712868357196290980061098849304121725813784049210327574215033421493756393598120168225896674931885749855294474123910740938709872491161737500412330312033757253173103939683926607900698178445856738049711203990580083034405700166327192248451485193816941929153675545434028908721229258353428780997787931523836669611964508829949778448173497524742648022743965699917689161637988839309476518641173979263313766388947318428919007177849798579543229241179116412581430905152439835518900477203992599601423536665156972137020273774138068185786978619734474656934855172204555479291773845539708940071385222057324494330971504684166800490213828613214089658641690837899241060563303212444590097112538332926263639758284456825810623312496554282347424524623546334078694138914386502068271654261786834580858882224898771838876656337108758332469860544120888863345031879058837257354535010039061216123261200644281061502192449806971901975637400517691127175662483011990613297682964052465642514302963563927405560924802113379469338459568999113841802979512186957705398391606454526428682049115207815673761162611958260995847798352919522414394144601435110785199245660738224897099008498305376854370782118483625384077789271624044612420910814228524879446467323463855331020360068708494828506651377557762107289520533859919581921252515147365554257758565768847128512993356942199184910331967286260560937092871113165522614930765506023399850517530802371329648690603060409452155482378575409865979925652719518627777475199373918165592002813271381285131789351073268282859910370147624146637519672059374475577483468740147277170331657383304716004491702457373815068545449405657473208376750212358588382349588289663329348457826910551244208136663458950141000405147414443964093978792725983192252660554821041842990141849764993784200427375764798091465296914673935557699222214905510863901769211982038840854930555277011635863510585992206261301684591074565414322338410327905200866161270103520202629583453114573129254625146371685058641508155284187809937686284829887370668550406992377186861555733986755317665660750710209086662799241520305984964569454589691134312724917067460233365426107673102716861718566137023947666016489747593160948648852050342793055357523175599188467486164258947312345156826106596627575987656378066541985084696237996878631605627387087594982843433249827082735048573643139148561702332129789578367876849980790475343710547909854933793156934125170501888780412864760444097762388217688357779876156190299894961320605069322899490053544581533510869678066598626322707130592666387292785705793350644681357110658722748849799166380951592616754812166991770136476944954391031504898785878468484979699387370805874805757516140362614778137246736160989502432351626329837701101079234236700426776211515545758617747915977515843733937628985084217825925752369659191531281986786962127225336552620414512117968035691445638528024415310116438092548867496068559914054100286874722940699502096829756148122562482216580341611916391553261828413558990777307376880052228143440549716835557851793827798411152276138058149341831771645171327778420980346006804444600859594052637783496867245257622472159276382447102112916562098901461604114540406460461616824784530587137222476646923164602136235849804344167024881026359306011520508394653044656849938963661023937376932938938025149894678450490053129803843610287011842970347970859290548763617303425229138560528688077614145645009248483964538877836633010281481951804585222362529256385628461609618879487750381420064179536315648826218932293192592235372536355631629730750513698154977098904967080334971731667717617659343669062722144806937534422632460424203500198125477284397208058486819886448230937245298439944873142429603348573532971569250162847825826357134295982288381205468843132750487807695409238275991945406021652259558951262970209301632230220166333106098051834798190171533932286412072187775367827542696986426676641206380905366193869789369842134656312947730551973252351921707614226190676058585545020193844663994940646482240522384513485235614180184759574274603121129165732050775476290270118269991908005586312807617271178545411576414591818109359031168705743196765037415791111846069496621566929567453172012861575247942455671394560603245129704309608738491284394084866299951998175742070726783846640986756217699227052853108459724477133914399097581985815424043284794925736934001882972033667637178351370226789844540337325318036847013566604740359677469643101691476901667480772752650271544213253286381345638626253314946313348338046491028029832822524785677845958006856603967340876382098912006707515185049188166836583402043901106008967682763276669966227435511386395426739050976798111972151846720857584421184577833808424645420281553783427692152261771731010604703546381877325396186352921076708850701655074445563263733014747934681284900972978989935460980817083657838633130080944808816059503380335840244189099397051696067907106417510879217742541720744748693128304915192921516798285834076227083259059283420729277510114007037666686667109806442662983237345848574577895857066023197648086172736645361334733810631495377853126489883714376944045057083688934543662459806605046040531769896822768132153024398226570813280944695866871142548469189235575062021179691656057945598743989230280105024440231457130630970834787287759013619121776498710218751569974414484632314272283363886012161974340661198019808260852907009516097606861602010196118897916190022235078635371565109753637448833733818603522058793304097129820572979180659619401007437018673009232176195074626834481471814375250882085837209098027114065250632828215433009020191148273390734326169378410321746142041824737891092846852922807318178412777472920927982576373050906334792895460681565877446827052513834744529014999016262945732098508963109927197998164119038912039960247788230288924423154348083215863634254609015249049165860257861342672393136779300677920598255963466526658207894129917287321493706709353947996821843976483514282417001741891858951193653471854714805887554629061382858718878700251506614410090691822581649354719070052255991442647468304134524051864044345358769532717996190678444422884547401015783170836080639116987224200770077341205805654720379878765267209647082008728373064295527686001301152158563206949252731482790590005124447303392761878689011182899870106411394813926229565601820950029826683948938509120627466698626627710303571350296246238209500305470174420777040350509603547085434529615442095565705462980201936743031866681686951441153702557569020036656364033954707104957988192637752474700219390580127496124053325750107783992863612567258933772638817654523574889582640442433630048065019939763451695468907842958256769768580085177625205203142506288123293190388425572154118101915469495655820182501564682123203234228853911202060252094422706598454233372863412868838911271639698802045929407102086106218187716733611281484472831629005176749539379344156888767469705260620662254651294768707718601285316055219616409678503459244892618507734627907767315187618580983694461392702359288275494127826851738707055181920896371024067310974472556227136946862708642757376634508486289953987203907772045512488626976354644608385911225775848087428566754954426351529026826448586349542768705965638497305559954884022156526406404296372145650983656418882930422849379936556461643679449904932732612619329215573970347065520329224686603350674923580951107358901329387503759689021556283200188227519605402762909824420106265599023655887424564887116068534711091251595413317812197385758877281505754833784397956721861986285430397935840312282780618846970416483072420823001965239386638576862707038606189710009656598817450972014773826194174819281860852481475378578419612600830475606376871600705379176269373147789189739718107238941172537631888814485356885910758987937739209522018846487593511297371269632332571201218509254902524927799198299390003101057431559050166234779336774048669361131436078012885169370649733540906298332588875058945508086103376244509031528750193695558018478579674012929318130433277053920796725012789374513627968928328783696036801056264573200183302662882423999131784443078442055468565162584768906726545971894457786808457156446657971440789496494356290174640393975820221398579596742806523306479352993855045250651897794617011867803026745539334676803811108032866002173908876787309473882427729298413736601115968955803654392736953979843227634735731524876629424800901799785528224546389275268928550584957631968525847414029624836869077129702096703305841064747235854609689182289411956368583740610523670648762479627649790015105296365565086887815120016584660528007644226657097511493356741533169713447740014684712493395570581249404719378161970067294960451900025824036540173383876466240535612157399989475147087939156656951603539049795069425811906995732472971902075305479905162483605005355406214450001892963133820004079978796793942671164712631334042631211549978058669607776707094155029920172467843357671798147369236894380223056096988427556179900182174280516689030759891685710690276189332981207976404147777874915791549877294443537594620163381166779027144418621498560847732409693638611901274085072068769247989662579058785191175533955730941023450935651571715751461268860812839716800425504666162289126853651427788461704975752080491551952546534079985794668080406294385363840740814521285162964372007676734520441665198793327191803316923871519644050874648326931441170444665801981866428533072228484212787869549223373535263240311768944306767720334877372001346264355642472684443895528119633779725489021013921208942089939886223882506272690497038038775362263726480943324670427264172765849465864095409374105200549352065756986343099167159572793953299513325714023422667770587867771912126259331696706893409409546074842381154682385969038183583609718942867891357221137669415641197025668467243135608710325778214968940921053857660691980107057851218476653611693222404045236662748992386500190729516296478171365523473827632840827007109415628376703222942063974367653038475237043784598115042648859453786383130293653866516653165096142271206320788353191743801230853911669899738026218468635613496352971130150008755642947399211896774294433020552985785129680593310859660547542238999463776053488689578902961239809418330099830489469800911955740633189307725278662689166310548943558337181977534881377590762170590511238007416562835751758766908487703112289067272950389193844717199651723099417582392347696629611643465386847874639354499528204302751682974321257645668644379543182770950013442455807595022270817099775466239921837098980334248878911651508307123973056334523688100072702484936964738922026814785401617245076202979909709465999631270342501308649491999555963787358294962391339280197235657003846505070838031518643467978490240998344465830174422914162325337556787485680323156276657009615556724442712466882242337236193168964684938082394506058582594447723611628006030775081696351066812726188489248798735700105881051840646445200250055410912886180657142120384978676917467411012162598301788442676827793019691891930898406294654455078447859640240648928359120081899474007741598870759112037644069765582298000561421477134853937892446568652100705259976893646156751156070307665083047449974031373240437901497239237676698189096214585467885772488980758890636904165089397957529982159079268357835230608864989696188109928753313912437263480866470819579906755163421102771737228921154509634192631298095223056957835059730044159074967091131304716592159687934029546685052626946592223827821171744514077579642570710855741074410899132193508750669308613394863387944360820766771820589422618874762802810020469434080244801166150459759183749895245996888033729204826708148587627237984823642342385891053117372802858187755534353878995631537393665904263577328447500121680306764715991061231246896820705831537416176464562973029676487659040859508171911202136960413731991338247264838775750055020933632900911058417006564100381815467825435937798767330345642045252885476832344162556483512180892866921140693267426966448370095316279229825998177829046741044000855978635518621774641794733915091294830798999585456957525010547932222787263219959944118839089460472176563017838778221595761745048398887804725751463446048346826444827894625988037341755764138462809559739104912710391026479802975436462280355876241544191116776464360725550698336589455765390371519174857390326836189564308627850892704625522457419533765234261882222323713094125692255338171101238695666946773859536493889505661541755549361952240144632594780122861001322878247328155170077534272970059423475357457823964704505572927493751785879128990969814873561807974270282658631110715637205727270676566440654440451853915053996417193552692326320918396476955025899315654922583250235368343686484009240333041406446766408273411751085768877393301894207696148511329991143100667516924462423266672387179499610900084302727769831685556140384553398974020893351647925572380259687871975552704799804516539101657551930151123643037009020541360683931318129010963883103864826568769181964424902489483142437437998428648254675352754795083997327673809509200438501751588968805928717809659062794245880279060007384523806642180615627983576127458960114336192121755986688676621816818226900889583140269068854167013600559891389580894987715521992996632308364258163880717250918657102492705011602291017052064140087736505257296301479960694507246738497301027703527931015111669383747624960885595910253960922929597440820891740478646602459423941557244820487520556979468326630151616763933722517094486524088970790960658818430246267894128979293639968236833249120720277264138358326935429003828352214375760415824866999799120257878542644083479145433824151241072406993655280901967060966047695884351582730834712232423794539466587808634819064263412294136597644887983680765473392457430511660487517765427536121998756332189707532823320620582507748721072755691998842131853147244992564810393244116017218998717735082312977186731181128309164899983706464698290290494862895074765642771160871723194529014594360069241750651306474894291669441969136701831267414825646518014231218791426260788986756028616978933189344913755390907853899466889611432073119364376207902044222728970484010422321108961142356678769913519009592608569103701812375188524624740780113158488884553672181825813412832769035674633971653209024857480851671916029053690146576896883215832496494439795163089652987318411645520132901385522959581863125781183951162322207764429463940867736962293353126816540276191321865248071808150740103297534658533963806553402092209123831121754256391480516415946566373797134000384745363438296989032736263203813501910608775937880179201979267610213650508770350640312554476456760439451823582262363710794849683931087789404045185301730335507344486306233787944431313469373510982196322395618137858549387752790989294336548654817546812135111866246341557854355377100377687293364402363337168806988203884078626373993534643208425560227913633553675133263850718590832602016166231419944164397966616627273183988792208148132476629507959521007533243850605197807300938910732560998364504736182119417313372537565416939729166857998135562784583195557482095511610415093007583649516821266680950995813500680420387058112966001326068933457200361631529012360723749116391904868464231029834929345040008999103583066977974515128260950832216253677283126930514155206802538759869810603627476747968112060093264861327606537010308644182698793445749890921786254542086537618569314483797618468028947621157500979409041974375453037579195153747216154794599970961190825421560435000306089257345253622519331854010059531310794375284418171537672709077627326153766366260479824948788846001951270507320985990601610341764687561325639641934138335119655578212126793313646910924131943548661446517260757913582446598464760329050866321667067223877789900940507295086125700186236506055244812798126827921799807466060925755319532393789319270803479431588627150827847252805137657169503445916707157519181325880216672146280762184279378141474466840191247362879797597435506595124588699682661671499914882301004107735028520318220340490217906263925795532820673074267117624928685123942991759097489753827057196596323928824716623679662518455924932010308399269526427058636752376818271864172885118274127708484724687033028736065224896592871080475939369260974721963030815276619385541638109315018868576438366071233310831586744786591656227050373129972427497816231279399069711954198985503342528433150068039495739448252997682223666874107247587804762158562501926395384935384057643660993554499587666247100466290416492754274753966004864888721307754456063597831785848388902062088459540662150968381680088614670118805296952639820289593774253378205514447926831713561356467138421976175313616167323799743866405549311279381760836907636549711492725249135135140982722151610521369830541589682773667761060424645965109978917594467533195566517263292270524432765860697686962298374479764295070707395201522152208535648684067121198042646283843052476465537875399359520543426728395321152544697764078075493774079637040801501549677643828122264541631082441633142737766841736081587978643522723251223686976976982896111370572622462372439817167561955383739093955136480112830022914913417964447547732040073537356561744562006074246342365432160744275373515602033036286807702006608240125250733775005171654915021534670398747092434442302949896704573770093470534058047184404890368891061086386187053443197890539969306614999189646582419793353611864135046462767409499689915591909430651279110548148422923369991648716344626843280704090092601716506386785355975788691059755018777310512369393277756197116445531304633280268561272946076951640728687674042514284700544198691647538108115899050266315883149989002636871291327470737248587475516764841670484435808083417465111265270045810957655208992815820818432818014568074060984696287681724805127592821339924755333177736487635271119648262931036696145793222690206941584282496998958636669201628076655342118334750736931267757611811404941166767168075942972529574468982478853670895796461795293448542634574551192422004366863209285949053115505118591252998382990917682083051355627729115915629394069237407878309701347317814232409020065995678945057135266791526853045294962714912150528328744212631644063385866087654997199518495320220631624311034835862853239096097684418135695784889760339595164777921756192629535328934527353406520678542938187369385421929595619984794346383458343605899243676643535739484862465090651006283346169232266363650038283866225964330333934336562604732647474310944794755397160199163022751750124812910333235157619563692471802484971851149068126254556494471019141157978739233658157328810355446253509786898646406551247722604969034538215429604308696329789575777903952390844948025077330973827330196121147794887688016261679183445468739891043714504701492790961942810346741498057069457392294396855202166907903776860863039404481562095688654148054988202495893096827929796831885933861975633673620240021830860868154868648205546153151893834761033556671480005009008471882918257658297732795377957600690323416916606048755029706221073409984387839955151573189854671580203409822274893323150870178210277163004782594024967491129115179841968402097060398860860371303564078191780330325206446454967486976581625804371035370509992936190357552869520640404927749816188116690701936108678969516404214332172042172025519117623220358245792254399719303114733311733206301260091592332543905764711737533773418655736302503424083287328469336175709833267653700499131669331309361588156321834444463911103321369406038992472153680561317368959072823469994206811183250558423369229375373048497313681747434841408411242256944236785399757591078341197452905023525577221616517570133856785031030142277129320754203505711807888442480416701354210672659317279462012498551198274602211948784372080513467582445118890349332466860997655597656864416135038816757490335481618072764809630322125101613310364805328473901965342315860317868019073606248270952502472894379140028454813993716669631314328588259153185230751887227617875182885878989106733776320993535413536568414823053058133990850731602354797832535176265202478170802286460316108644152285111242025713109957315691496169866585253741827517711116634143389685951267214731508229688156637348853774817428980591952039739425039447756541191670916372648001462180013884639254606825074170402653961843863204019899227010963553074065699636505150476888770687139790390714450078710410325176790970329897592156863709772835522514073752791307676511933233822152198957800124483516244580936438566643111820297140702691915744476809159315732679862830574753487758935990185103208149268029828947234269883903438873154834525836805965152465820803031845084801990945862620744328407311352465858041905208797014197814239771995506414164908077003427043484457968631332949937774617306625787546427931496826799192388097913272959388976985281205589299891408206730726401948800920868270886287029216158372095585238760508566169746742031068681676558991648834108495024543166899485370002228816947785588340558959737204377375019897455797923026066000480830491409250736686252797675750127466368517982299119170849327422893133147860265977311582934301323720273395044041524131714951652721383336158008771405098569933342600596575165406453905501537701162801410081012898361099177116218179956569519301105023904717033200345819682202654789450929255434436046500424984931689491027649398868484209384264989332306402983818381553965803720768297108876719694443352367686199878305848102693560290545418761611102036025352079631632593489815021258805562187104133110657569358116954086741388775941485969553753366164708204973496245196809060918338249974453032538052639420299447135045419230918112353173282655331742399517904734731228904493383462085950203757101795036806645204722400917505940552178695702906807003206442201638337690866472839928588997614076758007891334898919637742403847631414982177989002102006444939265683608229789204686210965466885775363228440618395476412564121654116096338288595143743625399103624701247569104944501943875313445561527254172491485766410832475543738744742540463490756747736666007660151902356731539684420502478150234264223752066584741763751471786239034749937614397276016605018619531275336619979768502190809799015318152596786127323968340318279724432331256527234177283061428926445892491376999894941485130593859492526412471454534173947995636775050350838847277493378892075224372794147451520672428452974416824305209913273545965943861983510305215684104234145580412303423054330929879730542659010076512762816875108876298121546458077599950171078149581465878512662108190808463643143511966574439211836212827083693455605561221193027514261301537039233265246776363839637034785895059943090607837261720433497836343781980249262174802998864499384967038563756522947237053994761312216955705670167213711644789394887179865204962041004617414497771250761257655274921749889935075519722576901616253652698859135894858978050370877766489216936686257398081771310383399863339484704860082549812398185981907592227532220347270136824061965397785571023134059946421501060668180360992373375762775190995530920281033144911082834763182454442753985390446126901620185198058180956108358362357001207110895176513215925220440868311615272017828219873111572868872459246276466332614346530337921704733875203748801123290654592379629118292288848494443343757471985777910582243326737477762031523545958066936958645637693128237716311210967789610067208296896780840761992050719953548648850425673698397445048541183121520122207367170757449519857533407018099697987832758473910896854664341765562741119038116026950979973510291612420496851109545981656162847720562727851583070277944872298014217545839042194768489155172418384098100515105628074778582495539203880303112974660452855477942877340940604823362970090538573970953695222121839519003709072503523083331760923980759562218714931294881808535771268910990905213022050059199044770306356443577774912884167337515089753309112553622880946127760278563850590584092546296498718055300667496994600649676806325943133161071814497465506980527072957425508428915069460371271973356034079874178586254993750684625640213674317964004429316486118901009863330557971547663252926612497470815675747518955839971293480223961465752310059200762511962497216186891038413212296302764095848146097883312796764038942545881367185457522676500664921513274806968869965991476718005081309009721593834386217079630960892924281225757860686325727310655916664304452526718131012117504019171409874546923939373487493415924625836171699505274325463928276047595359745135497606585560055862269798679869531523466117907681168923416769880516165569586222348390877883179680025287130460431440883043531776173958725791740712695485895534762256705178034353576663759852233342342314255797356326288001124032126668842479899777454686589550684384132992684487513150281267004715629433402702053639985117510681292104021474750745906572801316282437886318637962098714567702535236965670007273405017733660246484186988749039427183261831705368921815321687483051584309051270254246204166284505595854613633688439031832944519046256362354626464813129942487991211669010724232599139161967549647621794565293844382773203994383317573513602125221037859961796056127350776874630145539569852325090889013606457469243154225500149406516341573932680210687047725536000541319490452466171996172490707382499422878151801965515704573066102382195601502219550520608065594422607385255580937192672713121250375460987635790026380825427016606184792734952379053715115963699597691472678479784560952563162020536993340742288294978791660055113859597986784387471642658642107945012120219326299551562868655744178918413785849670554414848488019900874271611007354088349360873686496806359309097504297085989171255561082504567962903101852394997534150519392217519466191340399351715994650992022524064146477617091780551909966175465052244049830741943429639963016790573619378184205114121783954671869532871930392695702128947360103420003382311983211239159230974757986216404958104692721498733504221800298397218390972589106423995265955981207399832964904554203508198736280977894019667306673765487251296562530441044767162404572715013076856409161632980507513448588254467860881542512370457420773441608210336857055179476550239239889068279098324150005070497267812891063994859410581965959538694057463201806749848150299179933871232324341990747095089263183240190004238648720352547216824604232699051353076060366464374940679557190607167534454256811772357850206242595862575968273598444169090785159588931332555417161324589389312468371401800695932004586845271090111558915440315443301800288865816161625165302752849123223035385573387877687611374777883910119930477317033921275572859106463421199020939487962354631643172525958933055024898484051839319376183055404332510213789121186660583392971111903727829288796322890182527402655245665163500868881110259006127139702851033460597703643282513473273457855556878572084124259031123690696708342547345459811387924834038904774793968182415301115369789273014760444903419307799053840442927557666187992457444108299861832406439488368810728719588149681408352445903216348699270168440635124880184151731529479855243825196885481213524922685480154094150214075553594069132499685339000605340785281554956260521441945418521409825473945877408245140068376771923870547350376893973257274160729460035690515358778650879551803541016281568671183882209359021840848831241693569452852202337008546574036581293027426712343839092591989924746917014713462261016283742275428654536851523364338240040959436479778441663868313604180493138161867760213623864786213170390419226328459469218442363595906627482341331951953045663641229326437610079714374374931904626393775372713902989765691575018846001157072854273790210720248098541813019453128850586299508790578901270342289266475816652181383148857540288955560960232704266665023990653491835469129416897438896005548324211623642988655143485876585760268619638511163699954641549939391687938511624581099342588099311801732846941735488771306949753906443738438388163433926870120424427573078914252503061498841684095153222777488405936522431850402254535372194009642385343628695920273327478061617998327925628450321482260969890951850057062273831722716198507167208092120650894271206893186477281461961327970401245961741281431351251741099687971982951590344735056138168793474711862933104726320934188595917897966279364127922991425304178246013086844468454919340122215079609843447548293509070261576609635541636251466627444251704289738068951360402853864944062579847549005534506323852533463284788385478618697870011588493380934901497863465651967962787631558180358516672751934681755536709865547841761009965242955397643899244248381695976384862002546455086486939849684104843534453249214129738243736648935627996001154240181156369048942893452657289639703393779967799902994241009555768131240392171521597244577098988063237097204826868455411461573667115280453582301661597596862414261133753132420616402574472663316662420264345208609965017971287225818332090160254349149052269669934365941677745906998934957484969734996370077936084138835589227239627983522902527945070589090920624862034704651294098462852607020267704541674774561003884697848702070177591849238568996376843671335513480788463253200801768095725628563414039019186515619562516964472229797630119614770264454457867117804372096634507091465576771660011713626045693338333539772389284751440855078546519940646989357888331781981454541459828164195325473279547224204013744445654666739166742637534529862866215749730881199001689084020569189708761430225249538329333044892630304290824333707864094831732528272182410452515839783592892630445128620822193399183196016737489037964289693122911822673304724240754685007130793332405879488607002011917350388859708436817973942581263374153801726985730605960657895847493347839497995296080359284182143357805637056268922888945221443249775298253609499907353548839822511313775150086110304630342510621665436711420404708737947529823172400152325142759491120596845573119252484076415242872229160336369907891546316391986483328413518066021785775784763267132717844065454023675368701176394115752335964118611760828330629186107896969717593962989267613600910143839878950174731557766937005921034090021208660638761109922332661517433169175703301172062927760891176857446736950168394225092639429358362240195799808027835126185650290773813519616060372711668243684885527701344133836025518605458167357433324608199087433597744404722109765791891872669917673000320194609429853074945247090796829952848941342898131653190131789040248738681057783617800066688790622178133565831095351200757762698208260736084977526203794896774065447178661112298176166005390743849902927871806541743249249596188891600036311420571262988993927619601874274891442276194467431137971673765830929996273328700506255094584419668199684348521609956380518448740205795187927754215529292984737528655596851982605064830524785706607483209543929430307548883034330038020081588113706855384746993381794959476050270588467850110815338670378277781819563097684041656160885831975489646224192061225832280205888831505402942349654611165447922352195160079846797557833798185863195767024944511563415873012131575555443165802298430876472263024468355596966743995984881449514605300730834656903432419937254429006713988101742869706480448220393950503510580497362433746815330587791093789959238134068517578808264227566610708106095524607220891717408195074575978613200190753577202217309075405866113131211304635027878866084117681853917833446917550211788971077233905577012200464961921212040329193766487122723108312440979837178969020008067448218864699156772339892607490843062533170311585980081062982387623840627278252159662728943625777556703145021050501066658764147507638251223029575147029909212617265338451335891001510941982746828152996878529937125237646234282204972705756966658871578169647991933868731001066551391907983772619949376254775610246273859439388638510085666624755240006534128372211045852693074215590820159261352701488651510657560675453556479953532098562535819109915811448969645988199443741332924003050006881586621724924178212157744914948031560392687737483005573198066544603400224964439264679314533303281796347774299370016523992304718732761954890987127612875993112420481769113225265278587228809508836705950122496927840106316940547439073198010151491781829703699897796707447272535341150302058688040141295750903453417401570755189395765490385236670237190740167055259295688567002030511374520826165593673047314599904266119773680708281732681131269814502664206130269594650514421577531481664395182932844644000847050262054517004333336064243756117925482699905363936138070198613396364800920132640120777769405593156277779852822641487374196745117273539889229140560286421427960849141943979014621359376008273942013330864396443345599786358599543727951676398479708367689479452413832085951011335351439772559647327178368877382393498573329585002586881335468859502243392378811099545199990685556804056982367407935593384077014060456236194485496424437687901308556914928215304753815325759880241567354688384358424927451190342391531491812240358718363002481750389906931319150988825784538152233923812980233198973691964342357762967367193411850546834020462113516057351870328082907668293127608908693509203076539560026106912467844792734073681773408832873391747632613527866580677200125334789840735266578466410348634659768528693554013285130236168724547378182061287382460196202551874061792107061819351868106950479932656567064082466118602440385151531064387480053976497524237935991336686626370854236759737737920499098530426320090611175832652378357290393595190247333881786086889949493756296525660106588355499636210714020395349329570417886268171622763627402224405881953837365139336164451983617356242799060113285967789970082327305770223425059417693144336199899407343411722006843744852591463560710082445830999968906989278288826731684018281155992848180037783594145616729538883355323646599332150762244136934575055402708981697075370902462851918769775634187013122770038348039864890598049049029014363413363856448928694187761876329163617268015645097508257075513799544917599067243251911562810299970160440140191922496813653362378220268775439406627338335575633225421470118014996721066991214760454915630700703916334518136127316563912393050766803857179287001584833178275819590081965387634528826236042932483960084184379014808757419067899334136679053368885481492813547467276959626950867455321215824431301449257919911833825859761580644632566980072616133703787021687888374828255711253923766451168471927815738798024839162729871766167159176241070718832132868700128783223364815035775922064349958171302190861405079321091589694528528192670947773144521608872134291645825022862641734634084562572716886401795685251237040322564493535710569159778127036572096556138726822283315891905310762952728373630851258852332313570284196937460657054670401970708964084448086437655187117896408546700196819275014726579756881585277865471574549559192123847879152739833259845167106660147938637628077176341851392744568916857813935122772892767839803732193982815293139679857022058769138830676926976075005098289714933297029432263752927162116763849541854931943366238374536939890763222550600622685877817372729098222374577949159244342103548985419727489550312075560725782975087985073969970026727348087248323745111485540818414830550505371448350622264006653950419585113308695196370953969869012635417053054174250426831673752234437857566769019786980221506792219257456533422999683459250102633562627108844209014709790712046185704766551230153966390719968837365612082414935730906156779003570501096248417288194510571412997432803090452484871181164172952321601987309429955564384953254928263559099850968564738577564779825695011853891399737929616029261465288917488554899446868865444984600351556595313491152160731193789362115937549041721704710085157974564855552496131592000218058453541268405089739375493660292273036758366111627061534972665343297777017585127468185093100692397322534185046891406767246625877674932934885024397372420430090714414999023121556452782447623827515620777170311805097895660844918075344791641186001907583453572397580217301382302590727246923573585538565724782099342421815048530280380013791094055605890273163561413761778087261067299390088223234041082130224804361729689673903089880809179504353977467850897338963576348145943243437206035203371851455156924064488382447177684078398786234156903630322433593234661659604303675123916931473844948505896468011609128713359186584344618323920870051129809098752722153799288251590152180458704054894360950412227004661871054960150451500515411232263484753980909769851487043921505293099426580362381177840955920925414403820012227763152759552112412073609542688364339312885810296510257639181717331853173092204684996921572530423264465343281003181639741716611855421485962519497717013072088969464418714222176653235586178835118441761763743827871284285088669573312800422032045378268449161435539989394212704623385983700066937565945097870650105888074343133162418123544080211642364947796755166741110781746815188159852616841879264731487064761721867014589429028350330309831273933400217553781127664287374375099357907161730492793084582236961027879621142415001017282259909180394142982606871566596730135172940580048324437196405022897735430264405868009539564103100392053263967503950860819779840493018393408815405513830501928043186731970495802458700735852581402503405656711327389515448260116486775760284823031988959650648571777555489502659543063350953460728632112373239169901007808109454647194021115485408360924403978963511227305839852399550358867002750503190518142312080901898765809688588015500699599054709309072716589166832292664304841879635360653349389399848058204411212771825348351165271450838415586324735708046840149385082295353000277294533526014756009759047416072729228319239719898108878255794595739425586881672990428358860093994902729605747109170439759028516348194821745480522271453948326538295821948274462566889085840747784070193062782281366798159014769013122939746098429702839062501946792479276398360714535552504026683768060609874483752449653384764022524293937437577884066526921195068586858681309250911451685234169665996802993574432737848343999490197079242278346566416472446334130540561372742463127373877830549888836367638163282504426334269803799805334331675859661817213566071754461395532070157628710501167779525979686658483737257257702295216061715492930685280634478347350207313266885558477854417916274708142054392875191753478397569503784415707744503722497753657119020627529273985976188740391327274897532868828571154180599399474913792064557654244655170224096412905130701178802683829391169342919857897584848605335500930589055788880344256440962311420360622758615895271453220501873428100456848013280941268655411465663470592380336467847519314909681308090843506258906351271601870940707970662579868442095202843431622540467005889182975770155528540917530143197333678546366267729084012079043982556922563201089375032125046532427430784808858179620814844623598590975647940198335442681171114323536427998341742630425940394608103924342228094648955670998211051158929276784491155514378119311003981377026043754729504826237546368980858468353964808588949993749568826180730056290923410857863148380437762020222788786144258601640079366557908378510587334400194003078768702177932380769049383609142477468011358481113419007675913472573175951050292644431087317264540775700688609030109561652055021808644172627243554268279738353917097651633348991932512030587863952728522933554088363370409576067438385327358926991507462501737109487092398042149578666196275463239423887033051762103756889643569915122208656082548737220721537273354207332492920535624729111705837323786444203397958123358080008385400634410373398932490886644788288874172470326102192031233470779958701662084089986471568639310165946725785115303614110061998190789156949322313982661135538731553216100835869957471252824343305870142926043979023282675498873315082738060810419994110867829287220655413794619448369264520251393655958277153195664445420984201367723394836236611254537036551735185563964306890835296410109881178259463223851055980600502922615634436075961247270060224287432228702356788212048744528546335068181744833615066112506376247716781290196531814850092472589132377623027333770695826400281627371705766556169384524918140455185543565096006753384191089177495577395905707214689230332070942553786452779824544303902346362332437462554013943257668239016804169059547978714340691793155645843950923301008216961823676081306841094356839184619761376265580541020096596586134508498293205597451000830794047840185134700344353570376103455624509514593662148897389943667854138104662344260972991461416977297123850993602728007189325353962636879741676690422125739204569058703660584072922014401830496078879703433944480234548360509333645402544115639646326888233773260328060074235326781060658746945794751924014626659595320883044426126026785719291986023599685742813735433363157248521644356376973864014739070295721808433558829235322653117004205955940153483238022453486767216779126483885645962191881997931120051425180116227334332625804862824452144572764499303799277435648356191083639691504308970628694157860761303916372907321366591855330092137015120269520000712535775991815022256968760449848526080566784771290344640861144820172590647583813301551294492052773103582890175550155820143394748822216563255407553708287434828179499757016899306665837489766570981854847555096496522932976182628298089466689849594958150930392946057220819930032547895679668258962664057809490209341489223078086153217513385240980322220455104785320919980435044368478221144734011678457829104681072206823547293431751220329570580845288487916205867508714731452580398675788072482822573260408176365907045190102575723472876306029106366785179221133439142428835989913049584052644368169251396244329491594949310250340193309424567009378431805202484737071090269944774754946812763604290841490584681122861699309407544492319579183277303668702539856789022966469052502124096215928172848671842322661479300567081705066438046056530287992712705107616706545839000073629095524235630524649638548494171771462914474736448327063879505080472684823674092272589706449708735537920393082071082752018462216785461465162592818838895313810978715307173778722856283464950940851002325108744464970001166731849345133243064557036304926630176770888919814516392900997959766391847625481775630852996904979934791971080671457793297057259814075806395329671156918107966029765310437983126866353750481681141044279146283006183720083671038429136971607934377515684063281185681617831814747461182820452134606374698497124721236447957409773777560740349034993996304558570994744363994492498695941067143610524478547891381721897224439808672968467720065599319454859966805185052123978958477900949915644929334472991421449899852649284531825446463533720076104574601837190222906069347191439767391605614424202487059402581075085971945492448269826416712769670003375366472911224952471729112137524169896866294693091781511412508152252747703957545539424585338617438081672887061323663617287824213661440901448738256156061879132917735399949221187878445349569165423869674570635071120908119072757503705967208635000070793094419433874549333024798321551180100565406674910166275873449091981768646268732275395905483666407059285514022277404996290552053405799289094889175373454944701905199478044786928556766214138270835241021040724403051534921546511747818586849926099572317227583751976900403784599881163173284265799432485650076106878735437967559400787806707421103548306380837748376906509938657208451735947561426859418356655581863022309297575399195212561406116236099939903603372159312609439507604121840530474697023801292931326129085728618568860943801600099058643463128341894363171946420527249858275568108497707738834734055963293712395030197421239050358113360044389437281945089270140035274130943214201209099171083498424051039452949143757068062228283281613984256745228217904626636879460942335988036479884484468955342287818723979217652536481145857446494087398804954600917821997439778168159346491348267375658283223823540285538440179458823193403516888161788746220255248270740946396215120829909188221752852360063308963791020253113442856830435273849973994254289270016561709235796965024591062389993184687708950335920302715312615939001662983576020283948049242497991885223185200002369907390715325786861085913430440743770514702896484072095251702735947120753204010013111169465852652978480547058261244385197404056836269838419416466346413654333597541245618383747967969619262023351339246015758294536446235722034812312743045434712062686879212275783982394409501163017688334279174943812335077607155323499960573253761252088394131970553322188681436748162402239406306141882038374933574851009421205536221936071948005161907696769951752208672763865234584181095804722192380448860288565187947663135561419535838496421740245924225568180248773049697982349712894299616391917678228645228180570215189815999123056129476364799127446158946056232350759065461315542887546551122718954898920440085328787743425932296855318563104167886285850861187336724780763140997185689537233227572077471343290195774398991112832564939108606908261110506549302453049521345895096785764431503520633269648397950497221767123664808915146300049405611953112029584331849375690164415517672399628969095424192854869148530307366076222385223639651716566562620756509693442756922580860445422571449902725065196249052084217967862185460533946474556475244999482212897451996059584273342753312622444368964996656979557097435989475916493600959681667012154266427588035066053168089287984617066333467694332326123850275612816564607259551088323089390672094207537297085138768253957070355229560023965436292886177191606152833294428012633985321872434415510658202449115256714028035173514300382764546665160237608416785171628389167095304903554002419592379387414630595086434226773311506845294872392455617628553866857744870541309989651015402708831995261920141086183093347258132115777639871768864311841428256305179072473726528048286789097871443607411493599871425228727875305718810740419247597700125813382975330214907365745250154238728981246394930698766848431381067541337122700044754436137611687280861704660160993531869533392029397523320707932057479500155357899411552851095680004733614747263464265904887871896352857953323824980898133362941585466769971092472330636976613825515176217921575431164573142069029899140532187570972989898153162205234779288708475660095472381508816126085299128788982660319967381046758215305509744695318996443531405960662287141348598231666091701087356571239732580352670322674642860283084997438580873817152729449935097510734589766761913003240268524006744868600906614426498909777311746171238538971787148972280638397399953810081820674368704465846221648972680526805690408723799704184594805890103076785228475246393220422460219255086078694651493046467176819766392919638692477109124277012220130274658756496550051086897305041484373036597801347892067634650621091317746210448296763357166006536757445938158160910948926192122430283371720077653097155547246064127044283120803523180449791097967126626786173275178234861086399784096939863893420136316912827499969683842984590151556128787767018510018574757674164363196794853894135862469374543138105007352511166220740325430150458000652041306591516973534272895533031234325800076481440056307982133612982798945008757358193061377967242933976355910354855091452040727113017507222669155971975523680406986821459255742652389351710911763329139384635910121228645047618792572657413437061757224231990391742071547778491363852635869350025786936786751333553215862629236801812580751276457375985524714284203668158196505063522266797084189717562914574131621333882188206652953338263368325206733672582532107963552016731179827821161244283650385186342095631714068689387377399325895605680944644254865530894982337586763598420865737631585073775137112738574378394431228907302966204928976854530002962072069245927096663058376673980384583177885212920781867479646348377908818878724532275617479950326838732036620850389210665648583110122556083625273744549978383293071252726501367324665621019660891292064458591807761831202806045277964391523375040527249006972026197464065066929056652021150391065026387964888445569438342517825207521474717690780320543289143792679596389259359285419316600065754742921462645733641627656074822745731152730959088927453089166554374903718566117675995012619495955511704951100950405758319947582941700539855043716830938691697629110607230500401930126438475748462882973658165496432333396971565740852191093210001803984423784630350549111088386865947755070556033879324451681395664976101737217589731885428543650912637129985962713110108194713858227667384525477857988755742326809017132181787351647706522205001840789329018337645947936672337658313900471240854442998272255062615118515862881727362116031938031714547144882136529596116979956157975705109596031837317702516062024480308432428510158846292831610180450119086649357533994133608032703226484844226481908836367913963114367324548340042885606272461450117911824316824270379648673726896579967333875946685706835490684733886850259289197817243113309177377274312510721075570658424915912256526280704759940803779427790007146458795422881520298419520271539111317828060105969022961289265736351838464061081876483698946334690457634242866897429896965312246799398928647071819076828129258700669733483775975420362326431670055525386030510253853076763925124888605733632206430684934394343500434612257297840450029321284542260581291174698221275107760922113644746056768644860686557619818812078757646561663889335194571927738209155673660753945987367064482262330662642235443753468985204876237469121751672741786374983686233146353432097959327766701803234523859193696347771147466698405532484710974355609243132093101200784376186340115999054355791560093675208428513813069800652549655577340211722024096520586238926433252633435491598871828824689242404950688309430005059231001713476287894733486644488155198802712778857119744929609494772902924763442904126073830852491863377208202873788490883472901155565035066596792873383166522164962866955100035618760773642859882126594595829639170456288809134657780916614914746277994496871760932074555058005749896581208531703988125927129300656178110534815134330192068849585960187740717582801219120787713092377061795503389527908471602739753901036834511111816287989818277760122465381115321026781497570626170427294246182194562599047391674646146618515861259906689797872387041256560792910109808970803879368394353698309105053655112577544008748592274474314168351612764444183084452721973408424190443823275761509661473595608193805359122494212706309438807015339007212100056329761241223818720200672285624950167319425243500322401394396296935899822696499742346672933151848897405080087295143690303485009601826816120742535511665795057994266471215580884833708732084919004278837230118904244720717667256066630865442490687082665857551392678617583530581778399735063503553946870897164926836163397619976003923297218253746193881093412106439104248619249512042872761418520101287864649127735434386234014625075280633608939650665823607914076683784848968099768397654587670824090160367726456656760935519292618116941151817177891996408081583216427123102502920812083803463023406414589101809651499467638327710761721567090918936203878349374288691302611012613706703526412898953283729588771214324898602711291149734202708841167063128762073555188944035224274941337618457197067145057120273359721363785664875451620307756505198184544493760081468416618698439073545813570171914506377813006306412678345300803127857100702308363708385350375644878556510266578946532383890271885332197529596502075275396217589860639326234189250128076807710874089714981571505213680414324610802969585095321345518317335865904935341938183768351070021934673727644885924486749987986042891480947759301796604416659710654972126231500701424645641595066430560221725433832908262822100543446356654853487495368179719154468233417256179018694796915121704941118601095084848402155514890684526028843075439900212886359860714915480742831651113357011926528966616395023268428623504560078053078042648228839562636645056674613556544275880606362199746954953923122961757837280066890177267152707622820513148901363267997700439524404462849018964465108686825639817004574302915997423091395783196084691524152312925974094739957519629649996467595160073201865502581421948801069493835863405294133179785314896662015984888683206275163540060271837006743267163801147569822550050905993496081096051959977633443413643105098274519714686378162555193542582091055030644546955383870241152642826798512160573771819900899425504085004192148286449350963184043826697858726717883937664798612733905477357851692836890066935079515645787408499099524271996990236511792354073026222723274190456927974919123420424518836539044492160666384712557363228955545203085760173613960216168591140297042424703347004132554796980041631490835706176492840757164252823373653057418870591344174323494404024633028720443847266422938093305791103422621660832865101929046741687390976339264596344854698114135805801331557578767448003944150099284365271352487210863339987614314481663024699852546120304683618421877033603434945619349104159272841719989513091400052578337122000363356520455110908726537797815535146323067065266236019505697063133707581987145641184225421956010448520688963980544650559593482964567959363403997187070778684192018891190848342290107019079790172831404373572281324052588066600975090023705948707847098137717964708270877030749043446286468785540484981606296136730830834125342817712473799315500565603864072656744271730605100597026309521120143776236358471050005740510767084070884953416260564816220742404539783045862894599433863032267899610443524467898207946787846676570560855812630143091410509014293036000490629877838549846958934226897054782894360931406941515204824838797377026611719424154976547899305722728917145766405536831758471784144448967545012914132136561405464047854007987341291766650001556731273618700370191575026530677829685811054333365743093452498166151285228044933320154519383853160429100109662855706896803778453203570643034636646503845735801256426104036728371379838257131406611785590139144627519042767768497899589021793208839075254556698816373384273226033959038941321487482688076171261231566880172787530020655240672342058672292706363042952012360893363501258339574987689729395667037829971026889241927713015361374760267713921862386717274249158099590332208434951660161741046465476018138305753916529998705792457819989614142934644667023587725592124675587041075356099950619388334078631454303298562946193816914963104292635734064899925824656994126172033420125236723747687046404314948636660352734236855536069905172772031553754548063316862280779522092239745381725172902104580685131235497762881095629548636348967485264043380402947526106089583380193064883397725491990064860482368256195088889905119447055981779800367167787702172958523099533267503280543648185004545177536331751906240219685083727122478229761564687098329863054878785757262729146150450016703635323193762770121590010485892881719641160448245995394735712736405550378391330383247388100815975604836167781165234809918766530590169291871698071138563290796618001521598370085881954348967251591992078372581889439562039220747597220598501410600387563767807892108560791888008872762699059036321021378963132315603122909642213961288262857743867223841998646377115965969706120324229727148305348838048190216592176418401434727057571853904394297993837846669003269433085344909090102290825135171542223107423058071018626902001921854824598011647193948099033676520349537585961306799961148804401615481200310478127392242994063663418000133817171811862347225283526265243012620747046012261247014293055143357185305130224304345109423833991152609887854446588850567457986691902282292807071771542656333855336904075813604324968706638632103842316816781555227968583464025708276105807548884231909402848931217782877489044690144456657400664461221558639989261196376115485735665293367139680779774830393275033588721137760240772069189868047666117692778281520290783328458204946827960233651944534577465026019216592976136577149660935182568801259075697942570269860286849499340038719448062979642432601700883395398221330172037172075766075990835128776336206397179268929617285926062334138677090439391093515591899147952105664422767300545706628124839510087055661043593423945012834552515195484820977951439430615603714624220053049214861836568852717559324973755220174546240318504417447117433622050330279057124218307869719294266960427432752863522884384436346349897112402844755843898679837362234221069864222084827958341879208608957722888768796844945452129487453240370163256112770502002773428397757537842802250534482919070081355476162353409777818446115144967050351817799404076077097813795936644376700454322380592400787709772340991242446094454957631731280950874248869018115685053783178125194910324713186189548215417789534291592444765551379661666428384922308010737450289336010955762581731274399171768064845914224614633277714739280012626513727885820669320070525777802432733320519546124733872129030413522355651666507522436164452680252284882035909441513723012282782058957433908639809244539966135605061425461479758615388183582115617475685132538044136080941643327333480174041000764690274845717767290878535663697124116660149697632550338433732307585162395109429608277902936387220608813907657709008638208631386998901297370209951339922969365968481885368168379837204300448799077248407206226797475823906053141295505214788732036329609142066144815640227734087649779067002846823084506074717557984746370081167753689448412452123562295238344593749007040739173588349500687100774412338291432894772501512087010122635358230890745423490325345063956005677152532856900538949351942069720775353169176431276884483735935893422451036336644146241041564716637850635775878253067568619053155147064699344978097996630316866793273401581600960099591175517304642803888203882875644873701882793715284674501611059206873263457868229137037950940787296663714352819886036966035363586743060326150459720860016596534424213058566411850171187332918217292435938548763136935320891167046038415433945330179318164400584342526671915150956596544979816892892402293926175825125976161371976264664261888344621660446293837095364046951449780305000801809594027195471684600435914603624309097648069415270422110962083367743356238057850708424546056928769255083810569068285642593353227816947499327752310329293313260347453815652921732541358734352683435225534610277413991556667191239976171015630603826478533708050986271030518603367370639789861907793352101820031820738229513757354336101873508981060757823668664552908208389487161423942117865904892896503376957541507922029062720442983505871187081795241601622151735262496384620137300126327562311756803033284788330074257470910608854755769096285581348859963456535687728960504558382415016304341149001984693695147188734656531029847459157458409791055683053433222296603037332206904213439105719352559133067800459977363858643323447411182507257165151884747281658628015227294894925049250111493752059805168396950822615514377867493656656460356350479407162630523528284190862146191821885544021618490953575708765952842257428134907655814370120536611186453337249654765103973097591465984787341222748219210360258766418590450808541896391838004908766918474196834724121967043638122086123025358025123897769233606112060454921779772674391703713203621212485171507470595280781164590584192158517177940250792556635230055692047125323622142962168175335955602429179407527387590870451654980627314353173657141436198215633644083961594952179066746032859700642110461225777986780357464528331249590568534803895935683702999395699147944491021957087164061149846154545756456132520386424082093578256075428806098969846697750946503410012885982598765903238829401691286081270920371684246065785212326036347987522363945961293628763971635802473760835280792693786352773057837389671818846619527339335758449240750122596157690930275431012470644747951268027909547490423681923119005793435755230645589471428888966391297856854848496592931269651388038183959760475938451464568713860147441136011476177080706456541639574780043849665626015079475349549258777732687580494358743622361105777068248174621320497267256749087368255957339674229615113075686246230885273108073919991417097268239678996823529916051548067466886268916667885613965569174573826029915854686960651476309820591020346200551997453094090496220805896143110876704788644835909627422221082611234537925141507513746813190506889397014676313641391789017833465116351793893878125349771649996984317412431871202436397250276095112539904890357609634501850736246290380077351805877956598483421597975359461460165242615147657271210033185054910224445125952838182610497910978358340143125996870686315854471012236715784806799113976004489023426631569553687861497212893667490374874663968301453904759363993592808984666124579788626851430308968023328916141926013606798590598839514689333341931137082479864311136870510381659202682206497850615234156253209648560162246729946213469542367232354369129718217751124338091706767142591510428712688120240984842792418683236918181201193321645815312719102357056274766238182011352104703957249603295537475913388282822455428839361050665514249361566080697427553872649846181278770570009383915340282459689009619998941018059638183589263939728101137376019204296566409643279363978779418221141730502126932890179661772818768127558794596737629262868243237435942048914032672334582504055337711739495850363997041368768047500698694816526719770404009613922675480848519646179939391101488221994283748860060234937981662182347846074057949353805537281395959593518354980220984438658466479936388423130880126495466378842574436224493067763431850591832217301243045596810317205561487184871910589651552118572850841323003883864141082638690916676192812815643037855534667169027361514447760010065324826617757560625554594509154252144198109892454747745242246047712749891889343775858411769436801918866853726695142907034879955631026869984843388571466889177196077817439829101914222277648489422426921058564235604884194005091978964727943415448507486742607131411471552375345349497668141277426467981469304297391050182858498815326960165850485261310929536016562011979958267586458711357088107441630086096245841271081834314942416011889312287688414503210764150068374353343964619081965490096429612929982809631582824589818049944533439843812677203152436335325956796829523414651437690196739837735424756607013446411078208713210933814215955556959322189288780835596366388912384630525190563143266491306780111121917707501391612249178606143476703429040412167499590686454598574187369967337706959274759276692934490326785958504343189375543758404182101445447679965837427624301817108099784468428430545891982117614482451986619590398751950655703584592346412962686986590689989950161059599003485277129938298464621498636848821079446531771140104049959396224897536849398646586718536612232680525204639596962405040040142002296613018156967410516702572431342596395396691632468709614062172416685424576198159470424999160463955479464714747235971518962179100082371646220176849851616725963504199377205641981941173544709985532842766714364210239853107867970683503057313745442742402302407536776610918961775901175719682111933635209773976779083205103961687348336949852613614455748995297039191248558478684136668815299262799585916223781521832524747510214467763282066731922548629828660821093164800362593751990235497171244032907444879412059023634897917376511977554711565470098929959616792819458281685186907698646447775737869191721783204844069672081404975191118381690582497120009118351064099032762859732735816628630349527962055772947659452916678175947272715953156034254793688177779285219814990412669290335626931634906257510869105753583903430912107798146006806982469062442813441002387460616755905504055597580210228611688675933202792584001676536952730468986106033104427021410134350863311071734348598184626660702211431900583708618866080060845754026929972037439187425105113476900581712577841548779648041384161392134463233123364299334101141279939988365581953557215765194910453294409698812488638663106912465291674746597370792242110850270742240242768483549851352382759913313886432343508395943785100091308802656840597876711989377149932962858411134403874115906491383984681807161983013564105386909279841294323821558908319747742254855014995185315285685245297585780470377419881606733408104394909330257647389485218969662776226441675678562300201569266465766937730500774662288554396370366212685217060443188726711151770767295137836275747037181989682957681977296617852095169558661471358639234444558680442433098220914518950698874953928867027745446829199065123880472909210117158036308586787552602836154877663383473098153282836359205677141583726211622957073699119490068592726982450100955609012186457626478123229932194314099156483731681398449930196999926803886581780617540526060255058607914976345285637267805592239118887034276950457610683517861886161494828777564617752887940844464235121239564346419193401533226228088656311499194514407212067083050743333948973600637615049448040711795855057605227066054363811823639836180658979140806410442399324129388328172922528048795125024207806233080877175352633836319806239439948042442694831030029152044557815145335632022549318950082576434611635141731328372917377145312100230088667038008465676479101276684844526815259881505520586266776433784434913708285831505250715019129555826549692909236857084620490959536005824023221025933041677613070425161894844761378079425984556645598026261908936095829181820772612830651182325338874614004692745110130517309831801963463968015277233902917313852865112100643989108432971684999510249482691656231248025154206134958193308767920593379898307458968487702073468614878164054594181175466718521358355025747528498218576582038318910696668768834485140747091134515129600605404422125115615083568873001060260643870758177887494055926181552788845505383517427396532438532903971199146400554726409633806999986873594827245699825814181301544637001510369622622844268283386809915534031180654546870421232271356105778077464546189574165662825967034114966647020133448581740221128947788524968036260660925535092289442668552410779777781371189579304276380455022251581138197915013828051165888742333494433564250874689555197279497975201773435640364535962678779419245691352555154399843835897294174447711554615847927729273225350173588027421800209902971230637613608611383944402998199936614657486940221542826190631442578995441868410433966502175870009629573294773282300050081445602873087174542363554354626190629247097044865453413613673336928127026215410759167495943284339291238947500280319462015330050518013361281796772942982534565308578030978720942682640649356455862664115534993423866231680446963767655688083405257691255993592007037808225760736670065161600774048854011080402721654811550496993326557789125129424715611035343073276131921484094309877677841631771453555037128667933934941184037910382071008314538423234817587511494878712090217219539286957754032202234454479687628932116198467336893133976946807417744399397182250948639046042782194649183383863096090933460171522544463511782060304901143572112318855065513592513375102804836530344861860726370210217793583285288772210795020699119925714814163492453610016097104222567980613832406149878353853815433745532536436677634686780143983625199678091630876098421331677899402517108455699444620382038512848876672016488466206799964450283524241781789699732011523201518322398512523085401365800372669499960990474332194949414099147118712261004676818356294466892918848730567183775544643575477496631758371125882791443466273237440719466018222263809846776830004562514761297528156857862291330037567567630752695054228753798611611040167415577844206818383950152445987983404082884726717050697298821518032012314795183228178315355971273758139322985616041302393911355039426008781097538590978044563529344426968644429475087185711619212759368656718229284359161067052076395585033829842860630379735483493902406978968044475274920811010111296020419430261981031496738550372485642290779433893820116469410346932662085102899395010006881050546359408816670556075288131558136628121351843807285509568605469624306656087600412944367152745142399333680632136217016483014012055695290179839733582870038942680413590795624649930344849414508434419077986212379552170512999098342789789592018294879691064789268102555395059906873419562102574070025895458037604744133093248758492420908394858551052744931855078082400268300423169718425869037365181179616784576135580594978074145498582044879841858412960346299253153531387187257560967404959630558784968528195207269990246522895371479494569182030493688915190236964539292516982172230161097715754190117133871450262497427003410929648892979227101364525272688900647733741634792977989204431430020977193641452253663614796146636383001757981270646747662069322081884308650425048025467465348550214886330385114637380294545253155706276579890816594352048608857002476044178933536403732605245586438805296925276496151873522698771700551302513668870334060194415668391240611292959897934902727625169427049816371522082061637655543975592869203021331676723616697715013878786531982479357077744867022306940030415162670007475447156074835547144467765069181149812627779735267510383503974987803840512031719620248492625722369344468415064476539527637867302515900550859818487932824789935776456493016012975507317025884040135850909849578668841935132205406553871248657810609362024155433311509374030918361279264418894850348908244582246341817828873829757894948224294891524855649484629753820513304405738820506503786705346948116229036608903487657436503327076722910785819681069563418796029081906070504971168451990602994288236258790762442592295867525524813145852485354860446703891384819770321508867889298515552505125151544106790189494064152028273286803122152214705538799243051636726978211924700060340287406000080835904874578708317558132148196610649780617705274653763155838419670794098051986127721588414789716494955538238931052018284398793094719034138715684393893556557137567100612047128244650214467215459975382563284766558608295077000938695997839353304670091430310238530460571611416240824965894912579243632654282093640037425734574426788148299687451710794010268055777270186557092615269586268390794513024646374603288864940699530561038940230194916463914831474692858115282367485339750352467407344507891516379428374090056973998497187262610896398005538623735193176471304954952518675269009431545104880874742880818509498211301270930016035202076531366980850460289505523683172707849906303226440176355014372705518598336156654965533221415776089030084208696389953192454467005136310526600232726550384121305391788828838118121513102267880530414723207845260127366636580829027919027614109854774120600598465494115719896186846179830071867822586805931326774010370141276698971766548335085127368634043793616142126513470319604417987993585959171455094113042125331007764741356705522918069165897760942731246676202080740953687514126332978796474635447856247258435054259463663562758916123252372926453317629398659861738763812035218278921628461919394594289624375986412777237330297433344364166498059677294918873237946452204113347484555748503282735757824880455474811195243982814551145194191454379533828167804934628970688261953205605140772980572899916048302387243534313021826606863199389741109069280725849562405863767367898403627589095362187093995734470226590229452567903593635003168837652611879756386034039438857526871203780672602688209429110515477447698969709175942303522577032025507676042877751502279495838447154641097663359787434242570154394510551702716755299993536274839065265778855973506866072234487261223506060757949456501685529853885439101098510843776041326339236161517609950682260663300583979003006072909301549008207413717566897040740250101121717053485289534401557056107029830472206382280759994303701963801446829920211769950427535316966454834572743149305048445440906490481256554849580866566656854159983681191082939846361005049102937932934955953905584995289394663059486931076927780487063773313519621351286626645996062022496207131673156481312999009276256063672168598937972419862188209049511057617533438500166730092508373392233978877925444997775639338030983833336793563457378352852377998954046845837606361930485151490755489509067893492964346118980701848384144886838110786133841473577149658285173596671836296757378634704989564202242432203028033612526654812773828624249891925922506319872855934260814830586645486443410661821205255182550312611589512448632495105388766212586233115218102729148968023639686096706952653280876023254291419942631143627473905742825730500607483327706646921945369857078388329342183391249359139446425284567897182380600840511338197495829046598625314075283793494501661812305765092966397007030654747778179984739253592727999838470642326956890502723605161103094249554732373232004754074586232516880333016443558191456444075495224090367989122854573907002583780781401664066523106293953513196940071684206134445538484129141910945744072908622549920655334101974480372648562532068070595147162982987652191155900187791559985932395324408359529840818778653919960170078852716577466730128109133852720256923932644590984079643687306921852328622062993375037523064656841551197842237734670397287710187050104750078280568971870000165932602595201199010432990337828646133822414262646331484882560095695843309193450601141602691232938943452291655816743296047315921268373537133917649319867373815389263397673498881106818354274458112720873636299930442339875694205861326667834944016013571227908041128663435181612289512688043265016343945594342212777850294033796092901092132448663262357808421481756062999694996458802248153335860062506604387104998104368761519000782883095400469945906607977809953128959411900851904029095250959315940900965146300354637293953323897430587309999076770611519790755041048527252124188412987038623111898592267393757496147345957910591201998526330777960489100656964149780902923308081307441734749101174968975918053758235140011326778265936903622198487110739168151596290449112531475655699664128907190207870115592430799759594646348316681108324922275656796041695869796733593205724306886877974011180269238741155279456485022051631515150801256135578233453236694572269057673410308730783418893310222117902494122154494770883527429095514392566723250375676508542660943317346481094494383695661922186232540193959793291103757043649839013751999701843085982025759244438759723794706107179997981743296126139879548733278728614333234518770608454967719951635631733133381663320794378624403074985032745267585274662071643369893303072364892643113883145299409895422064228207105942492631989197484397748799413833942486957308954417251305250720319457420522062240857962918109743189450442116488107663216092282439908107201563812483928079280127721778843081183094804754234754958087281846969505153337570103326680241886222159512473775258751748874174845447862005282449748930693302003794553884713004891376972985944762446261818873349876462581596178512758398443417364833759207704963754611107370944807371543458453732970344247948964712781583448346647611759959108690095636640984394989811200210262866693837842878945757075955136233138915935127946917245495722235107922167557786492876295439322257103569317187659406137002211021510833593172659063884949037334351129610239649185754940780907842754626956821511856284069314777570129854161577513027771401055550365418256328090144198853601202474923646849637036329073055861986582238510142598249511623662849982986171545546461423505326336884238268080823183235417287935649800145429871056320054133511706218940732681138269196338386895792061742175267819154759771998414428788712874586798414743325159101751846740687750534919720611484158277573560013348400014089321633767946075116413719623738709831418413391138404967318316805445956915146797446784762823479916976343560972563169857988500865763374628328477570342142691137284061415185027203894902910509835718663844084663605038657875793602186413052947114733671464419576182016151396307707217164181211652370018950660842224895656433350613981731593840063535244218833004631080108226918163675044052042163164998881734634923772093654951144849732173537277861290115560908671743937475641174573347173580198221034918527456203928361975550029696349678964005170509354685703609804964284614829248511718691001833630538471173176213748680522665796497786933317107680538530344568595479927657248283498026005772143712950320684235652593225536801359712755400536921436713254943194315213428488638802425250834579770711413460818112216748193769030636663522738913404902262079833961025944700528564563624761814347201920731857779989668461320913512552750827399892061337323714024217534265910595070413273261238136135025221622987056669768682310587234095759152472596922708878347653195838713902229211710920025960118960936422264071473785143557701142760853023115875667117354702208208757734611323870829492853314434061918095407830574200208282907135148343514245614715953573524042065273368522609513883139025265175395846367492243545351043762815455822412853423211393786292243149724571379881139981137173752928645662016420083203740977606415995648039205717245466345623314965365109238681549854547221392936068206440391952865542981015929002149036426460679063930183993298516257597842062898909649533262521161763941693847787980786379200504005498915068695392180391005615187586471290758495397633820725977222457990750131324595794655768499585920606490123590583951437236863176726182859945010151732239563818814732041167260656513982498033906782883311577976745466398171479249473312938439027847220844037271884572385381010725541987967883326020834379792971820442954752976770173753867685577742489424267703069851156818390216054366432103084577661894125545983090278938600720231787398852760371797167233791876606393455763116203845651819872569486709557803991457152364541122409378382834440827464172118791144253084622993498402419147109487726138567878918894515852160236457949031387095814851108180502659677778117552360169951550196448691668542376917264963567891921664471319085462924449774459064780097106482281369575486868028888203786714710256154219023174225211533770417289011949755112591466287385195586399135701088128181254649369907437342479106117639504677612794005561692758368115774189366438666763597071723076567621708357993750916855525408335129672350211656892328832240178486889819300190989512593980725181603152479236882050457103321615721782345381232167267170198700311535536074348919215846597714502769416699485403933624540789850356182367355175100462059112481084463108756058306148259500135008178488207559096891131350584460810854109446146886057910853072268015960928734102477706393510528036338132934247038070177854078337669404295483988101100649986687175238534448098676541374947605394875267293037880578968227915949107638342465617788434825375410032027664661888436645655262690485501449990025136090762160410490164009726834103366363007446140965667603921364163460922004482335850705107467896239106414865441782999181367838083166924933612627969539813017519945946742976323849377071035310898971713493304506700258005953344871832748537588650131051994228944452183225040961156520482061262503888470450909552051741151387448049666979714248238284311393705458266250437053585242109859882284962639481022522437840786831195135555081165443323651260291230449780378270207690895824213901491720967147828048553763429728524430577844155615963536767925201631024922783192096459099409373217708564812736954095558736643568908137279985482823545086247519364399002025908217180962656047409801915671170895212917192541860040907885743122554748299985959834586036202737286127567286248007809731913811181624790174015426109465471900080821260750014681660080894447480012803488688414716385252657169279649235320533838598927962377792646396509873079882582667174615453987595471461747828134789823314559683713535807482594763388657001834847843624895367472181199334063632025811545357501929231465283945007163648240796586030612693945104420437755511614005497291066990597223611211177748308029377523100671680517381906988831616622737682582194942459239904862847151410966409799113364504660311281897830849868163363576782096105015601058942066653814853925000210164288595821675638004702684831064121512791503277693886974837530952938192248654866951175366848134737420208668594059672591876021929936004965827341641106224734862719782229110548316185373383616886162383244795463351548689161815321820718683857882986133871843364356048285837504988691274122658100464950455762669407693965511136408643900047718665398404975182236357226108355934291827293296214148133518954143978802210566819746144592662153431660744454666301631133622566452320768885250889095238188967627748823869171716817482930116120676880125954277688581700160073914727433078055657677153862715335922289146818527255557745861059332561993613970432042392709696843189921584036841540012350213011119437008627019177455677796337342109358235418127095053908589694114744251073207795113527174248606547805299601117070904860463121499522293077511667523040935748891752324410648910273843588818149791299317359485278750579193453984465658465171535069976797309560905158852469031759387317283574671730251702972228432031064675303102046113337525674635726935040614086008660583979593511022014048405585974231133995314198271836679419542094942150344702673107100565767084692760377051625301663711585393140453286445718286124512536873403796049692354332191051611586953788265536405958588472002836395552412152897378993804175393326918371738824041853644867883379538477118311902637968111402010462175001411790241217858752212564203998845092391652109060888323996612357351319109364581158232405759007824309488274037273663222924088945618042814640544933189512828868682066506774880216948955003005472324551377752705677641139105160299480067585009712812024255578258505207319274359563949184202160938795648912103441060970232936339973891573395998520840734224428068149059423440203115173809617591351908245619146208871139226493297284337363901895285132908713410226396018682714733201750204944177480184810597185210682725696849591067969912178757470302038044952696696563548762328651006987474723772259173739557356259182144709673697579284118086405606588774038932181640782948413206347861046277795680689276237570463938034999947502204230358240662874742946153246309927418871077754897200800252176006630453647317783514159979150232014570334918906470676194836251394516623780927477906428399551061576368085372872145377327414017965631324454152535808684618287999434824318731667731899088187244958029344601782470808535809540377175260646765245430006326259092069057294927770946238939701194466325807998819065555528919390614181238075197215048095890505544724536146367409238020209548096043117661096004424893302336873359522484509007814500502000528693134095934852899618844606987518378782890193459222162234605796120321078071189504279835391914098071849202458852153320177315932302161147373783325303397630672662855408413617504995222140337475095469711870334683174192651325403921353663076772991967361844131895329890666335021957790037759927049137583756561522609164192099815478733319344998553570976817856192909531923280844253190767430955213035016406816141276796977861076001859446785648495405603290630273181553305138390706119855114986075879122204954676679464295106578425269000492724280368649701529307967524953200599439071908772183679222979218167259924975681773594457907330906349152452789561799225505852615492924167116653065259692172292381241979663009630734623836600193818367635132405112653859464056750397134880547774958297342954903619946360297372733020790562477101021908571995509779239870417750768375024485971888970500611505890060061724470444539065361255833625588371915100794480379487253919952192397167136900742018443317427800810514418446620277240252358332166505039663777603594084124918428853583747193269743587268304890531325623235246794944207785643273547975400658906307266465859725914959773809409959371321862843090929915079446826082116785276107843135178702026788249257177292587890914720550221008182794111036112813216673447793366547981450268223402398732363377793228316041940567628438065190478203166856817749416018438051092065121682153050915681077490079075001670195866433069484711444754151657134955869498011948338052219074257676587805949614235137859391402265061706891621621355249251483511602701576410647913439338140988886471670087415331246528618505995018904271892657820934534086361450826835574004183674685826558585270151263307732566449695872838488437948983699577694455073137853517793662690786020224123339263144799396737700014139090766874496554554357525595387335464151190198487916084061886387403337911657672865265248145116670045387108758949264408516653096940443699928655812375940862167894989837360584205593752905486514231200639044727408306910738320613047384537505656690570460927133605812580749935056285257041950316024478939425261686969189663280380983348381634995158038163155247580145729274067157463983493696159913510125721633349821988883055611727703278277961356380145993353957844051799440490100844511842739294979752080988351690583408118042570116328447501082049181038385585882267454222123948749014757056720910089486314198850098830521934995400015721928610395417737870393011555062561843618110583908465558988909049382581142691497491867002824372961620300465190831853029316218100591751029639070165733361753403948339767373251796632147695741701760512436678689309707063049301944723529668898491760365468066295975750214088978275623652984207339330064793742413028187568311303294040847929937335441899022089512396829834206902236504400174201775225404905244622158084032989343824796881441453955251529740940179165173417383750425449313471502858712625699037780842613471754622858506728081547821133356368344270385753745434391129421841541136850582104007549065528775598910862375741595583423191042330700330303780050447898275675788879388784290930804505238117939804009446454522218113736470951395392046829175232648159574541871363392945051529789823692526630449722707533669523754800627324273090436019373534563620591375238171187787858099190518675772640467661604207204930421533805543769820130316405461114241849767350897796562714378829983447413484908235510565899858231213566137895015482322466629744669383066676037445068008954704248288749652309063995093327711183482518974298075757114341615838572593487229484090012559679653400484174353324673607223895715640053186489753204316159734966788274165034190122487710213559719547601277312901864290680733115931972219219012505926197984790075457016968883422077127054645648211365415423661252747342477483718004539881162746737272195773675237193409492064546762272770830229623952946994949451187746136822374028922325350353361695374031409283840545067597432322123014033085400740657813243296804717712922105147133459443285732578203945923133341184939974686254671626037439771526138243903048116864668687681759746290854664792004701342794764238598662751353019080202103289484624002118876135698228761841820637671024767740025545402461844284541804143129632735221199514880955839325523376581641269087631477591357013711363376796212585251394426660210677340229054541249051045113986298619820246816858229395073156336087591096790561648460732890767519661583060452294403627969740835197228529742241943431451638026917155658301203745857783398763401275305778611249082246329360898956838310626992312906690055959366970302357482671461245951357437886225803684419525796691263450128664073581207112167538821817400396361349490659862741246198719624114507122738879453662270791632920768034761517933954224557282616567080580069822951543567981070608388431857488155758465977858786185032331937189523135942404160740180184276221519405221481445010424361866341930126332174458509513901769534835340379559487130179506236143036808767758637246452038643396490573428611522524428539709997503103065899701189549435933786281025730878264388600590095353549036592252245823046623924093018285265569107853062410559160011131077434357207989720624153844241553201490606807458096285505094857680471061600916929986165520759915079597990411668022977516209658036210555622760888472032276077951370423645005970315009141839752951150802851282579961301426619436325334090484340867052186266057510926376048884729858587242081870966398201761855258514886624882334618687100168133549970314152636781566706621786831455020534015848526233331824819123498338404118600124606266390456904619174248533997631126334316481901728419465735707852672155197700935253442730499594362393065108075157898513552895943358401488245512405126796104034093295425836432868566806260348467439471620639429069501654808847541640754565845758247043037101944930123315114730064161577827510434681632722579361478478378996378284390786344640502909353128171094474997868604558921708942968699936845488976323868068030467385208850159705880708338926632597466256683636494699365155284930339429056085256882702051213960334414568183693894747587793380900792882925145950315326719138797810992915817083024972059689281028028942430951999984501637364357339639808947757253891628209586565306263252705535728585436047020063087811751577282653740710605721428873179064944579355423428067679296771072004185083602695002688057771288433342697111102932858908079071747131307854030716389440155210297618134371705827739016597204727521716072250778880778363977794044521142577124323576256887980095621158635912933266420257928315760063317897375900905712315193598919006876549396576252370593248328162316996219260970862325973183186750780503166309589794781753358232904713127045789677401525150794852425479343922730423005208386408688594546860382924322646471370001627356111467933230849153410491075623254582969110024661817112996739357963083637908464964544139918193610534708323087475773829649060666578663896970270143247660804554163441163065190712910749472355846591602622906937760426713941713840359453066669015782623727253784485844226802958279261487852578559408724841924499083476908998111693468051085840860024034557596744174586932571788165056617949481751179078971347976809188337580468752496126040450103306426935397322406592530392942364911756258044673746634320868298979494423673234896453779704512435208560783219251435962350579126224629801251683962475111759241492127721801302352658567464556508110752580993003362625775515890592108847452238126184934322534607207672426859001608298485341409152049936066342981279835458739972986019810654754734141994265029539385497979711720991624994714880134517231878837045374023742920014508292716657094430473626434639620047634815622955086406108913945623084582843811847139388108687170348483919527186358308047979037832131743168374004734193927300818443222351770823011653920483621127425589640652145573253570134175937133071826563093731965033433496204913975224229451433174950495037124280463052787255953364833320696845863322758199037986615828538346244284006515794303732157819613938052763218415361357719895064669817622545014684292004945944784447202663691218911310246939866831819893144109846431186765919251285511492736715818523807388433271738616804549251862308061969404527958586306357422929172885222595603605192122997010110668786891332704813455908685190927166206506414675973044758664375746992578274628410321838005092015958216434058303761820855127872673043149099922101797853587815412551789048894549260584261477626209034491732682732267611572078566839399746453082856903773929569027327116544718859412685398769910257413093909315520115578466929867574044633737819926986850584763292783672682630957564582535670086572612541365212282011528249945758708783849944482277588819451494525034451547732595414328435810240929748954120387902262662216030704783284151480797440575827988941013227853087174214864376992909739705428232871485666896729203834040540062493483708227073953932729628849917977853963497637741485416193051485157031856686232014276707281205068601688855643422703248560546570374570917261682993503510589793843879089103639592091374031956623190220753836371494160312864980552710791470474933908816880721949889750865594353120564520593768944459232075367466866291747462581882898481607832835284975417794889117433826076456936837451883213593691619056510156386575013826413386478223887576515791822316227595979487039417899895226157430978564594496465295120834924754328777334846562771027774488563637030967656849009113885203956183945795909490946176442023852067559280831509916741075434823113367927768795878414481982874333064038798361695935777201624322488624414147109204014511085480494890673223577418051826450233779974303988080549642701259783815859789020237021721828744316881135655185396414679865874269538128756852093175749012416717239767415141016653110639037750113504935976979626488420095983389777281340017875859994843585429044468472248997243908791369539732421023162074263593682531143397124536468015712762554415364486985900491440689742270532100737273205544906801305395484623847514254133425803946117550655506486441976338055299038108038413459217328797077571766191155515649914858218589928157037118254708239983886234235359768953818907604308275407837976277844210299268949161025686452385853273779155631128167933153650510399840757678788368707653097651992375769752290235667895618623819723161387711809393746706604942447203868955823512151952418295970583050671941490196693198546745219907169276625626418909046809670895511852748449647039351140818957041850186901989745127567784097356158941781426287306768662174090271614882249673477813503027967971659522423482620893332175750053733441937699478910106573898018878263361439381505289896397984948369953361452994816890891805112963316772438983891907682686940397920744017291276422945902191738241176251084221590636096193693315159091375169063320957401322196373236871062125111238420488049830729661656646496075573861430209462045473031205829629389962757584431388026810654849322827101948557197944099214954130167734284825821706736298109372264144539164160899951139847722633516388165737182814396373263612982247051705597731411445728713264327096060113283907519809182029101692241060186846360013000816059435930078318479883776835344421581341494210912798278412263871546498891979140480299410710918324113272896676111010350909029152778156580224891484416480208762013109370184862484563452927380814332824222567724862464240466492758785072687548768471357086418805035289858439858989345062298137498788673690846040139465141887123557168981433840153977255332254350377948121480338757967477720510492414001097377284333407792782295133604102825437482873220000379532115708676490892007305534511519379183760535922508887462722972505659787028378391242509230303733175470650480798930411022090220702054527022672726044494004897522957086112204976728046060058915286008578553274532709041694150368955110249637256459635221280155146587720152360457569251026538393470990283500249050508602222767807994248586197231811315368370197164708389956255592910854274579859280143873605435319715340953769683102176953580869797257148836436692206782850144240519227567049902409236653167748205820684798605862188398614471855040897860837875867226311281061864615888504595134505403175903986423463861005217455356132513222484310353514282636065423936509735738529558688537319262965237831353007873669227237410755188526861909226655064343333468597459698438415649951647320884946217275861091341677530741702391927983037203460761002979724112529874192852468526807455884033651448671890434818235416525593327820238937912865083559115054593605837387596587194097387926587652860811449868376840498476509748129510866039994399842628524077516378323341851911856411414741909425785794795869501440158021942635445513438433985901437343489366743325267217843834845849051481985165669225762572250064496715831873724707171699163131824490765866640138012934941782989396653546463943247904631731335366893972742139095076373239879432910248997911679554035240729683432698938904315904547269898670885504610958417772075817628952598733153927617095181822499934297587795933254027484870798330832816741196755592708898057542744704685742380962783280834814738284312242486000963860465868574352724363179290618174552221317137101647445146288966051921431324690279651692356059832476740812340881701737250049547937539313614193294186770668785151556394735238785714676055209386734443117838152249542095897592942233700823168767272484362966090728415913922973733790482767071233961819896939139851332062395208468784406737157075915482689203098414143650759707981440600887295371940079040939923806488091628022451998650242567708142206153546040440178687538221978229274043568300138494879995806917310054617793098146350672534101755114800588219417775162750831678080799142504266049974476368174514246489827446049880600000560686032026229651086833009822273209197429532347741325164132526652192332262711045064022176287270218752245976432460068049220572406686666139320393467934773124018486338334699669802734293664167261908721206193544778851919712376191642245244608759037647896346320850481066621767178851804996726174859263814215019684533358419679507114391524758391710086154853835498970649610934023165439332712396076993345782733026821789586240898203550088367026041116802048590996833005362555304131565201869967604630212369233423086441239840356164271455716269037765240518559748009274694633286199739842250338875454506256565345827113994709339959372225341012514762412232433089560640045824171457243381493679678510241433840764843166703899634288499180000257862488316073535069987318562990685630331762910560913550497890122704073562169322947239289024889834804024200291228725219774490248423779135822611923456276153831449309550213825727263434567088414848765588659195907639924728436127229741975488660074118202162219994106378114115845687228084414561399962624630170685443446646615358094606578879418286478797189846108625912961103909437230982730054169155033546658157042926355507308246014054608563061503504637589072710382060241076874866666105191872058612233461089108452969351831254000911039944956092247192987698812672910212181624667577974431855512550607234298162048603862326227520497172276979449496058715491427667291457781693032153238348191785002561119556475065520883103039428135331394351694980848230215029409561187004911284455086339460242213726732428400151061753078276981556483322821320719417916931418307240747136574495644156786272621313770001173738330247006770524887421639034040618551072562727879004048900856907785471678199711250987784919910107122585504017547270502710257167132508589780869514284597151448228392293359049562364359436680514928617883978607838714919091635134634612041173131487506658034950184511002031125430681044694672740334729518118989187661561497241336394770487773176735013915518503909546118595443029896616813474100855736936968027372031072384981478697738155238042911992979156400165118715981308460812918911088056094671085437962291280997336053307695734091708049827524942220345591095430651170186280155255449109680828890583347043600737679660226258843949846748722435207983048260448067633106896754911636535874389123864804463366971477719204086959915046277020260532442055020065571731266554624199018893414776517519485974748638041494463199969615099221100614339129993297120082574222200857930751860693972996357942939607818471819741867893683344594302445324561314146679786125401948785828625879437060453395250841816499633783550985238012202132086574672968023048478552731130337226682467470721827297169229070808427822784947427929297945670876223699832729035800863103160034132510741507540531596220505368725385014970743640375853850221810722365771836759638783581564396096964788894339341083788968670951528282892156381545942273177837206461090993744632717367173151437641313697340673858988653529420716213477700238255231697043998239723554512112805162250757150948633484163511445554851628140072551349413652894981556108578016200016129467905542978436698435456578387658768248077634816099250873017861176383824469194398838400129939141259556509616839198837395334579417946792417945571666303807294784574261271636046318021051599669427643901569464745080379086402069133154417299518340530044012351860091960858699976351459561004272411446379123271500282101789150288209070423315069097314031423740133904858497240535197773596289042822774437186356331555349028187862264776104629244898550966457124279821859243662358735891910812337739205434745953264297273410757499210065929431794152570862257202527223052405187653324016731631699444952087678574641067807515119021137591872556437224934573216314464150248197419663555340716440958920748110594219272245768078484461334965018227399563358131794925419766631320460597030260523079653062515351002451434411342299931233440494633932120513526679210791153665707766384335453806373735785978230529694080263105013848864525648960813622155015856328361627839658013405535992808079068203495333252351540256669568742942222437406089887477689785333146360804631493871739679962497219420637431472261506318632532162359492820201320693924991935911505987788592432394008679200282123374788772509266130196018115655339515281298627564400789737224245319088838302076021024504118126869479906196621648224655125514291397939297629178383234616732154406932643814675163265287752738800069254999599516948552223789641077830340721097329674499347428257170156293215060231456049591366331754865867206469559460912899840017347753101707745618287190717055553912873337535397144051149059524277209394634002124156356500148436503971151212266290264050233297708072974861329231636527956530747820151095748647750011873237010566386207141282544273404163714545221365895387961330566253768668109613295396974297678656619937804547139626256600428548055549042464723039780184121701675938273149437706870000721298630822082520575892259398163905077665288730379193445776811251086777512449628233308831112639742109913795882957266519531335960197359309593680005256145610228526753094670173036233332738630183924416009270272254489239374928410569449056915566463388566372735288369724500325926648872345056934099430694865114626047519905583654094204156091572591658372624929385090908396861082429222120930471961240234372887326135676799001076961938587321421189562404589116251834211568676009220631850683222267288223777695440773239285572997511052949566429618483352901293029049221785177799451838751335314801270105076159453907443537152788018230936800791004881160835422996828455859705326147986885636485438976455794609707275200055802293894828240932771213046964672897186591594921796439224057104934001741895137779297620877418613882905912921726608429304846096456780505732178057846782268903846641332115164408510241580716574018258677022298503198924988718394950623009734193407359511463150791633087005244182746299706753054748780984779248266320944450302989470464133359837069160225763230554179894041271240054630572616011514024325190730589582289367155431829231230856175399102012425502244574898045796726980406821647115805796261326402360689538662577949831331531042451972781813231032834332970628690712668360128664998200994191837377903822740652447467159739679053750679402853849589043402754493119303570109786272734270700066614582032511416419190368993924645730227250404857936033910434429309592271613942687887860610778683901160963472177132485137329564830813137561708951931915472917620509184182132798454575796561676861408697842437996562705702810311443982200514208941917591721428844729163024241790854479462413966275412878434797749622381730858305390818800359764349261316273020277924232845309228321059921168283507901652726580822970849444553550620700565716592525285642000318543177365009810509238319097302234489139930719705881635112415344753926070484377010924196863773587110841328804718150377048722463446790109594665656680731014434789045051743037395190857079600015581097966128429599654129189214962138706709925242406787160242529151496205607986016646911852978339916437207387021524311710509878093478598580168776209315631001604143560936770380541312943038048701637186657471326517504688644688134570425668265736134606606558954288658278350816634550147516988235729942987669018620071956023111773196950287203384712528269969320626595947691130375738210372831697843977170319347024617972966534317961520164966495313610819972273775275729999833166225759161316428961291418297438693794886474159022714560748452922213543623342870914454528186231172714997711233699582255436605303530897419845708032279038380246628851874496043729245849221348650655977566697866639507744705803760588113356806906153391536147367326040572703570153351287595789359276913494453203606544326543499233224224169645665581454727458436639171448052188585926480780744288009605248629374367794058955786790102030780396888651049744900067743016378407867656332556385184719926554857803580874230067405749007501349466230877030488941059364231903644307358625392573170823291351202128001106021987729807490881838084101480892868923650730185963507764267042120625535921394694733335987827079192170716702456317692219032982909241544811792026415535704313721134634510544196717239120130038286272254492789953827658227879033758004444155349824693820163655390433027040459206390066396730389258624761482752836644267148212610326979084026385109283225570653568485090977482460220222730403755895032582412844429522568432311116868425381462870814596886612092589767126524739974266555308132660638542249579451009744268795206871012822742027063952548896203273184642476644611968098146961672444364334595210383689787864226105294036196752204104351542438745248433770055242351862571659387757983549645665476091716761282346980004066369212964625831810497517671600635132524649680418515826714594048899072706853468505439409974834585131894278611676230011193132474655728913758450975176190392941294789903923828760884932024036137205348650470305783881367677524003612046136675690344835358821356890582412542295427401299547817594945642153090435442569170065282802703175162346813027819822500131973139222259836432235329812338195083062888095914647597849639434989479540648830891655578149285280473089271227581311675388392561003044234307514317883290858792340458606436606895600896283442354156618765070052916692395608016176620888351161293771926511558097141129612395181783557596728149634007308116768964903891593939479160183720601954178935222641453541747900943881714864521464619357757233055233326642806786153466539895828897078281068898659089263310687783769865493219753348669981488009598985493107318670919182305197065255113000377993823309822956660639372777225283158437139900812616663252145309808186242244940873517530547066959014878389425732162991731026518883915946414390075368633490025494018478866320141468525623699392011888134487279017274516409207127985346809527144818800515152892465080229348338102410358721539831102708959361622173597203511331062862359174684173237528711441834989315918105578482024632869647365378507571544909105437409492441023765287664201475400966017064908357990906002097629129447143890168889969813015464177758665808818442351567469423722085970793596469959340974763031941999613108087999755914292037845357534269206915615290587917444836888839649219745864326276684081779029202999790343826406853836672670566868701953210695476153236900158663639602635187365735975398106128893333903832884758673244614100698173845824115502939726390920631723452994312419134959896302936792302578776203368517592910263941684143506093938147931778433681073018684225707397836518921608402491529638084951807863121666831369074406772801815023884080019227064508756718588685375682938262479761531017557105968747896870287512292470780851311305594305409362898156920234752889230060046426693270062314074908147566342928595052501100994075704551024760645144103232456561558828116695100973851664518211198469445929326980516984158855065626431508457816134434486938083503505228344011650991899807328082399495624936121995237508920628032122412695824193165833316120349917035132490384855031098866819008223330757373026427290313002736032722204623571212341986452096164036121857692883610798094658535531343068172157660448768479366069914187094823356742968480697869645062797515876047818971410218070450064351688863483825687338643309104168557067732005479785568158334570135933363356748225717750822914590832290043435595450377787123732251437343080497579798549801546207699434270345250428771994900034942269512223804407276506905045022078402627532713296767256351070273532380545522066173364191548232405038344369299061252471745633969434385445863446404303829583030223863802022329134324981660342818467764822640762592024120499231187608288149089781378321434238857058059688937557181189760497156550797997776038516964567878408744584063106439883957972563811321302932017563707090739968276411114291830517574583525120259885381689178280662218838058675518481746866716353180415338934834688398821716942881066663965612146910168420107158670673389028181517694715063473104928636350332275929047354107964015119039558126523746162211925143761251893402611224511606913556699910944366809215737405406529602936886252867192365786481807066346331407734220605999085909358785189299344042383126871091843107584313321934342425495807721759918726964524781449900805319500260920293395974778501531907441287386013455673073110645723096335406924579595083795881844269428162823501928913604590306744266736609573735170543151633926836122873040947993877689857403399101349425493065165895886691453969842003975328821577869352226701507561937554727782570088626910834856725743342001930866820237398364617306255772745122958070300119798271487886367671282076079360755281302931918794990972870581694634812327281474305382719313486991580912673208179310434220457060962889569916053267789039823845971698059612916046572474389594361743341751031021814750798473467600788861707320349525800717725897104834996873909630193197505792047976598011720623289624806385641241537469635800846383800031366128512276380817906233701060181561692292012905760696010972326901661748532012788334665397260433061788738955657639839057896343874197070962369900010337179746847756151026154498104642877576969574014486774110911204060957003277052482467398377964244690902617707112862869145047294945736769753257082100190366250834586866843352572677609454512947906805256777004589937483324228901681181993602710662816943569117804627667088348333837916720761842801933420777919629414384157290346837808166442244734315675398149106354246469466911231340057547586199098491228843935179875939633064317873535603640554504106948141509002611775777523784263140227885160663010222585102567140504306103463910183382790952801029986799020770168660137489080388959400243906404560854244398181145909081616317103093690248939765255329692628741952218967890109068201811481207198096411001794843717886142074995221958299716271660673096609318123786341939986606070532447045641079624875900333054630423087104138527971975150921771985549567804589498610911577176195925664040533211969661251304389241923711237939946306710865192500668354013466296535381017538656975210674137743413492788373597057571984157431783781246342341636190183044034610684610145252746933237444500638441304204637069003280480568883982861890880666208906941658193728397106815233491968694900272143347943781384488300000566764414254215390003258971448145496281456062770296958371603572505887173509791150736154544782743970236958818245366618124154356454246607064731521451129625020469675496248578471659849697199502519443758096347019638436311682918152357095317731195990015524758001296018917349663784019621233682231228614799931627223236613598651046546030217634293950973117947725414389795611258652310047966622136002150346401729729292820863738152678592479118633361013275180217327258438846835385207657707635132733557983731782146152806923181358126746847538007721140584930387445089911498724554335615398555973812771229155375405960672841926378929780987699715098706134754351341655099762826291846125843190641561697062641763820531007703427973690148581081588613498374226489436338956846800936863479347991319723149892851999156425616773929572110923905615749020791663196518098409747189157976449554814350097005054857952622214208457000878641794178682771298763451725582770750924563036619351556316192409734135017788545889084525706423570440188360905453003660065883758267774751643250824136168107652056968217173054185047178547303933048673006582625759519865518821259545995275071937579006442445187609037772869209860859238645039303996802718222457501957776498519797344283110821104220761840691522287919051502513020820455283481308881968896471160067672519802586494310030516320245131952154992197007002588231287501006375833016799348050811956870549558400359202508787925717424182982045718006973965964505574779151729088344632809077848427514018988365220024268910623524658122276352700871426473419659762558756649697196207033044503028984661886260949775129771482322005966781275908508066601437187168360897697546295230751078090829423255574885200753113713075712080656363479903822418336452730527492613917820138679325962537429069990821372848029775407231683460817339076222465617312403335426042010034798112235397907991006072921171626650815894342276350981028222458628588693942730846167845569892738368938742634874066425678546165978312226502268974051242718250452273897745107078799707989849294424257848586387085898427959354008196403096089368793612627615185337077443325608074252568638486297728648910246062434389438603465274004130630554464885422283588626399827917815621465045402113538619038263737817762797100219399182341347130797295132502751103663207808964133017996487053801917414134734693550966018962501848679571797298267945092364515503334865943912483731049054857803537267255973699379697155594430055574684667274741035167953661778299373331974236447079093919515965166215191976410175538179655966624920172803219481187857374851268713802604208248957317695566109619125825897766071064577050045736507507556760672085731025450746406999801100122040271310853045541212121858691065983728973678971310602090998522008028932972886245269367133248121613388179433214491687651399179967731868030444217511741469776375942427418321374699179797348078095706248153048620412515865529069905569186195882655361750767209814763811802291726949485546987040239979905135006845311062785481372835675005516998187511247390066098069285052986057531027573921278902429471468983840009956152453801562927252857239666043600606710397943130897172200086097037028583915500745222767664895680322509206838320642819171094897566915816520910964619039089144012672039984681452867599871599858899481488657495322533320173396091284440026886241656796158068344104600177400128146557345318981040051966830187394841482454758996091090693646420904895957634483319989210075861162784860564663904772814724968415714835508185181132818013812703601474674676546637573356981668006808064367578710712203432090605781891927903901271598026890589191420144664855998966234379994566022398421314327291148699838521249999918459279930715337869194405214277879348932280658600437561803262237210475364386817721979607929881440988224926066868090126132191550860908612347065132014216432088992328721459886410185052134026127403565802425348567884820784677592784717323895203293774987014715579139394085289064199931076724129955193275733338708457218369772320640964870587038433133678634402767972988500317512513707340204273211970816265721715880481089617599396988113257498248257069985934171627217896624707644244106582030055249607424551496691671329054897865552425642888367642494667826183014599814353533722239104650458732083452828776603625610418902645905949180924171718892812015716154841371188345040553402238761935665265986192023887915794532693264253115467078232131605878254062666047421871991092989258894777431285808982792876712087693712706959747178149103555096319699329892058250757621256920774459410274038328358936551624917671487079928471922617604161869640645062186765955490206088418799505771455197522363405771000411815982960569226017310477866032462334639006088137835051491912921240601550326800484382488084433565790890362400576841585660430643267253678793176599332267151509589334443082847858753910424862846818526334082481127416104679676391295214345434745805567989421026963928398482934113263965029040327180093471910910704828686107071707681407924769763374508592025796312607750066180810257886521377596303884636526524102769759166579559607978892311971734058969966211889203019168497519055352795023245031997104718606344782468778270044412793497535235972756734922953078699481246881419362297229478055229995449723287600028013017611734284986355622631680002074353905420954504493059502956884583290340306327521722624958681893299835488023914691942050491405408707375289321641662844807727081720487319156700380960920375711870811141244471409752878140551504823159314984400733168570578465841595308439889119879603086289307307569687438791794053975050126719705596907162184296422596976413486807280616426462797992217660868959076377521555786670103933931108902753836844061179815516262975338008711157380874354087042451652087831102771274258541466059816352512824605013912735441971937096382462970720501391822438615816684459469118991685504439959184397676595863632970474367890794776045372752019958385076253714278142737993066696898177567092402301001079590161828180805320764231967236071475546573147298850330793146635756998491358799264118770200263114272974680948182878139330656129390105366884256354025087827454239949480427127778311658956367470116002096016621391275989099938690792035995831851436127169038725251972286279790717965670194933853434496859424192150072629924045189538011269612218726297322468203065985413248854080965124753340248332344032352714485152821373576795863860783200216872141195099707606038398794070218879900219114613053915270025749278401549490867568117366988362880522647518114105524226354854642846090959217872191046740232686382869325244308025213682104827678179243272505990818092621940534408250915319713378399868545513199286515607308404069273792036347424521110763523339987820654930327231965143176074037937716534295703129118666662906523731459499270238811434039959216462917464043284973807902536650286066342879992250383529744838093849834668147309016251134276639279577114464625383375179257191319128654276577147771346286207169440784853301385229669205842096836580165549992561687036871852836613670286226579135183043673461594650859588998994850728088773408135350029183778572023763301074306411757790541797587282616912161849632772961617253278224973252861174332113383951511688901026332864420925271075580357359012947132412642176645539596736207463633736182252048649328405364940008557642289940883623101290618605989604843931812100236993959147256703843127937103114813809268790861739127601070737202684743808768174593209031182348123402600060599614189320885603104157073496047620252057651800265577065251789353040194260020763936716995925906802376404850622214984223792764873706361753768013436431481765713723495847897271544395098544306998353473068298283893927772126118116945456507242467591575394526396039875692756887406335963105132224077396134008497782111151086871578522804260023770339275071572861702666786731079354322812260082794573963205509700081941572212178537196319137858811177259702906065277197894954303998584046295833581337751586804948072142748603711502404062059979180616363178551499943941338018235780409648301214355835268147898152199980503761987468596531305593689333909764529310468201239613271949193273525111734121535609546714314875715000723751335694644570564905786273180602975689274891634613181742183214603162900796796364144976913311088882931815287335328028484463016542204854952028334382890660564995038833395683817829797543348759970349057882958078039109062550115803766309292899516877204646141715984771744043200153673208212843075274489759791184127693271822671874567347631728166092952405592066832640907945856068905601887882986965090975341387652333636290005421668958166587441240264681487580111563636554669856987453348656932352885631078914067575773470991357997103357323432757370679358244918199367400239386358864397763241042197585241647405925581898527784009283870577246104367803991723019896929795449532127531038386814513882242134408306816067428676194855524707778200036293862845650544881912971396798983882990496629511144146585435015448320770094092415584951313565772407029985622882175556546869140231523616622937553488546412816114988577677103510041697140471840699359467953798377288236964297802587123725233452444633783916042149371970318609063749120534167015473872961680413639378272801324351551684030028250732888905588394557424978178599477034839388221258588761205282887463886885534735796551925565725241037007751176551789915803568618028725216261782297926054115798755709277725444703238862292953838698932854415636671366933905345177488947632125483485530601559455504756278129161141553318240247279158128925637856928029297610882128248526201113444724598631756760522694748835612398755175790271902348401501737525779621106041392518484123713886246170925284582892406796712390978019461365473665089923803678710729881541198292871041201120519321292156626958822888981852801097005872946633759171104104521060232287866653872152919439346617947687164459862136134584009631573760912059205421018968606927714152556723554123790281150638605810085737753198543422417876921815698615569459013232709273387243008304803839620824533503622150700356614462921854287067330676900029435037511420846854745154599988210214561577745766493570105855878176631357444737214038724860940302698740920892911786967963398259659860446438739699320516592176622887402824310955667320372532039987893580049703613444758231889967813623078524463379818515008542268714023810095196519478410616865740429662349573394490034405726339963032132424360454138967127226006332879158915159735349088071094787285522961598190917685550715753941707989216016900436788861407296576299024085141883421509580574386757023375626727817963765893268062556390457121134444861420996646158562777091320857519717351204092311066759875070424643888769278151313944275142912314626081660489858881897770002175374743377016969371732306508323564827227024606628558117369884874239076659158891073274980464825438247931238702534674919935691987417248325336064012658762039356549199128390659791196627067765502726074428187969286140590909530846699202364793602099313813510649333226815138668669680808350868973427346699747249027761492382328202510806404047428083846938694647722090534171218949189219519904221512671670828870249806607630697989561939910953493051488976777703628370085017678386088421048930489111942727716786350235869909957048344506729583000292803988358859470134445357287469702410244906153567432842807462083813642797326299540346963547282273187819421039160633410892872730554128812013551191152167240684540687876668119646601798367209974846135053322090698327542427957927929465812036481609222197926769592778308540627348813468376157316055331260475211342338178587694014858574143733646976316526968838453939696356130766542759668027835051830908516991133344954763589551842964615776756760041247198835711537971848527957546035751258959114030289936622235290966351800879096198776345099652481372079522997893670125755203780768885579620399862325313839724405647753458714702877980816568924615682735436203443456506776132866873692872505031958886513660723254210637557232155316290764615027844845157644412807862074784272356602871005413763236974098959226886542641606105224335339209024897483083162667524935345011893847876518240003599114418943645263797310324306271129376771712823074663544082035411334640074249623439634006765848707741925806114056918154402983582063576331727188121565485813249396576690351080845006367094168532784990579672616904937921567302719294650294373507322921308243377167641313007977624101459510163497858044209214720456548489571756401227167778264263343323158195190318374704444686116804898372624336867765288999224144535095556583748406217786503376077351349570808201366969826612534738809272652609984885811085042820203584058267773032407990876720094190145526525001768158510636762134304623139949867281978880834801650251985611203275905788604165292119540426985588031870466245993566126814438364999889731129442267257798402165696134300416486500820473150292705453458626762592544581558183894348846900125444889556898503450290170647122447441616445579062539495132817198723725247444923331126535479724555128527036844169456566906927571389794391646456007664993099993154575519993283719178390450412406069789530243030568842663650389564871748748055922570309318962763082365333592361874819734207575883895458641805917004740678420173150152730764784151938802997372552362312447867453787855909797475551270740377370127827650625103923409801274830780185334065255017917973058666352074651977518099537717338260497911086074952226224053007026406337637371972030989335191997166172165516800154045852103868898227457410968810020187865672334681826015465657915398419727452511189497087748728396674096447203948350599200607923529669248188883031990778394029999484971498820114197300542448915761589643247644204076852186606655379176981006391063283717724191380961209885130318482148156253419580683955487250898858653300624119615891356445664578034991417678983850780006274782899033869002075344670737656089470310809341920940312767953289692105073340200157776733121212917541224128318018103162292858113492044645897076048812425467522851999317154730570352610755452073592846108740196811842143404709114153639293269651500570656229865709548071997632891313278951041046910552333717220452683269172295592783386599365288897964203344246482647812212644110768585509705394392004096035714302799573517347339428442944427750102048455600148817000771292236378325044858563424996836393480045284899547263664543003833969610395528902379701325086420910463674300799602025240663291794284511371896923514058699765039189999870847684217898865560614486996198210920105131238064928839072396358988530509510624189692976631924158893556009577354186416914920862569858845600393202972330521402002248530170194962139917098698131362498128729799904892877079855149842820504710413995978964985996828087964199996180389392438637110844234196962460450650539945665508797536890651670888403803946887930018065087713300279627360838196408947237875725885732360701443262494773184187670519281558998953779617087422575888540195079096850418890082006905589409646580165194900310067136826880773664155362654895960088741460381592905874032967621612213173912380733892530369188375499430655595269615834493666481451835345768035051204689814053341478133919609245767756083719515279074199340078945231418796853441328280454722254955299685485360174204511386612714588975329853585266944475652540720834896755868712771973134343911161625811589102379439834980908318897558298239693576353896906182703817541093319720054269471341396359301541964254936916962656731018721523227548299820719848886376933543254648114137060973234561971251653961785137618458973721230800262593433703790674813555932024858828503908976201184666781290093892568350167777333098271984356393597929481735971129896548096497893660664173912661166310670502809515964135143831916012270527809001797662868877941883275187914929177967720461281791581919318194822044651658228418050393216902166328993706288136705712759169206295638938060592804933417590301457530655547438236873206926309076048056864081193315396863985496171363494254909427559693217888122402955207081606336952276146634545683410139437022959376434232085383364158165152045123747373418480642313448506368866580871380533886367706939141109707315870286595635980283699989024483639326626853348944019594584034288046823541944398935300743446926866438389784858439656532593530925760573771271064709791213815234094153639855237427756222535254215518543183185224622549608167970718216568858501004955580497051492524634202936674136992981143631742463580160375658871972238461336390374950421707625710219691347202988062976836893988531456216894090351719155921280474923340341113139727529792118845232453069530917437090428030477192503382070875161487807052300421933111844839519205641094511908943366531738277499678116237308488008658111562087563371167810862832734511946126850833676850020556537896106818086837445766654037866894700034307692981143943445837811188749531612762048333518697580799445221015395341535696819683210403835458558239446192581994417909448132629098301346760956119212855797028914084787311297052532062977818390147272069040265994913359704741572250687184349348000863686800996003152265914775665578579319595789144459605329535820903422040287820475015045011549342127774542340001632593867941426173391745458630179656110224998067509045484353818332583730662774647975195228508868413220095336768081403457295265368584297925594367974166417019505715114974644824625029584385348048421883516804425303849988212124245310614247559285197436911362061858170703093443772113881436519883343796956907213475543809223234471822687699230431620255368822572996118663230440683662231175505939143613476124550820746817579746946841058083201254534717379401172315387191792831115307958563189478905660004364279418399862187212606998500917670576781443537364910423911975109756595644406585931968829771589790723821426318973631370236985164489415404098719824842172755074657678718760044529286767755490252357622339913254862897164977327245752723036255310598376072640579944401143135924022076799287737745018156564532368009174304617305419197574575610927698486204025878322725750999153937670844767793372143711220188602146739137129171174243373803892006813908195117606650013829967345330247510917460577820455999941559006399624612661745911061352875220087010230501481806573169915646099310895654438817178828169515904491713829462677295758840657602483698315416189850933450763554871604507394115894877200288884258725750794288827853223899660425542422898710024657357437314618941688955569514399995054909947989602196009270191699169351011786850456873399239428491397799813283185284761314268290660484290548351541631721684470641257590924743770905924267254154149242334318560215927768792769717265472110410195907073001515574816227158177156300015242581056478331786588424949193617254531348331450246907545796095438241380385645580735409038941090665545155033735892250398134906381083217845169008381527013023034518301177501940494016119005469889422646661309906744953548717687425864547637791986173447808469273193662949427262121329571666664273038345575233843666501125985406200094426539724383053703304407877372021795970013038101539375394033221140514507572619071316599990261450478724462942603645809606668404269452358821532768470884659390216888421146118416324283035418835073936670857538102867435163157402772710251604919751574346583635709761881205185080316567452399707410824701889180479144864772343190025783310976340250559290587575129541989486346798801422482292231111437396091011588894987032315626500723404704039627314955983767964167896459960581217969154164877642226672507291791142183758969839775067688717697246208196598762375465923257730256386133966104195682187803186477834445062247651152514239123820084016928561113692997190584559218810902499607880859268592469568995476231510656387331392401187492433868143197917335512220201451128320167509254573827491493372483754935521123148318666497298158013008516469189568746917173909560983658373921394309589226512912513416916333326166781663357408107081010737898263560496172502245426231673557583949824308307057873985550275895657276410519237336785016567918958640884951190717229496639023310917174891366658502254449660284838761019165120292178462299860119074378478153346278613370588309187803053259337753697831993957794695586203941508598124332719485887808698301420977182939659479657006428511080937703478501396283598851862625059867845925349520355902300729985988119835503367485526155622797958136146341785765422451458802876995542550665532236825763079754026794236539247913962339972219081801253102096921011250936406770858727971437463522292190671981615535324647646724048293915838876671237041178177608230826207225400286243885377877527081320800172645341148159702583140556815241361260337410306477360334363341022472978061670113355723244492912232829936345249780154086222268301774792398400362819128294594049618580870902047085759789003350630201715272973001016460549708063292680845674483312593161143951997452041722519538282656981529348870015943405962211700679645393672743582598870633792500951659364416914211756918396356308450882590840804955339666626988791833230960317506179521260725994470520126037292643534359519122726064285933043884503966172388982874102393973766232165228020471082465279543332481788395439371230165875408609410664088714519267832892377875608366708254475903480064808077866234201410175177949844370001809969882044928454528066371233332522307503939115880103318478723130671225166405552208919919957986399218382078668321055603393478066298424992185390589312721978126583705672793285201073052071692221023759323387210874017788631392265759571296020832728406854131454186906891266636015300155536879047969732118844607857305273722840885352528339048226336782137010681806700686953609007748891927333256371441913662298610312085624715984121599360717053675717515814830639750304340232339018152740997050875269711265295004805220101762694330487679457627834358476067680898720226520148164834503042693583706724614239496442664823395722393775338285807297452447159102778288557359549724995644321400563246913275001368742572797490796868312555000654606916068699962737970466660643874562925247232447304378564506282005952821312308555895888798417919457169679116707151357832776524076807558128846999615822763335968766561117108004803369343779733815770009044262845511135225015302367615329117719867842262886173908265386431080608952583168584003581209057901246982841883525592642760144399321765272335889300070787444464125058212262777009223011304128250069591136843448061588509997671079016612709129059140064938544878277484944885563448870899991759853665975297408820648020446170881740910401163096715151232488436890148676284593278920034344674244016149095721800259963961185470776231440701004797481725962155435279383180902434982401127762359870726417269262420335496821695108947721797815908477660392638196964270785355217324117617306134999253100237838362837562477106576453331830500678268204661270968624180539318406683504334143851443074750008044116168942864669524033903675308008191423442674732926764048715980622539642839788293464530015087786169338609571029023096457142460730359154986690097139310763784273480902043755990608868257738985084735660101541379781875545511508802469778105477422589793799405699207940786611096012272817328890592864146639159852108366004352615507361183439684326454260749796232194854797936435458193126641586734880909333599409032858496646812528551770103442782191870116774338843804193129098526658134777134164934119990167679288870205917472887966874012254570427203061910864733457714465055151132724075189788108256870235067429905366673296242199977417824766731296135173482408456808760595261999026722094452610997623838226300486241820295418168945010276221220490541737196456230217077969113997375445504881274630738440870853513949754144724426341931439081564847398318716742253141684451570202399697565328023774382298393165452549683725099018722306840980509322208798712311364289672317746394944980466480244586518818856204826864141354952026617565542532393078670041825706880794841544036841846294943942509316832545810454826204138477390920162257389643823779852026277690004305288815717902575569823176073609373524914118780103445802551644942297374339986851821020110242817288054103868114139863269372901994779636756038974079443224022810883648114439886258507345803353003867639140475806472877341939406897086226619847796104900966966956765913574040740607782448134142104187596941403322506761920855811053425489515152455239166305316712723830358355424520796874871510268729932928071013149458069691296975868726737419860497521671537580354484014084859135663609176967773361453065768738406537484746499251668025079488603731767189864878710917160131026110978557201811088855502070045592776895631501856600952831369045469920680844062879685922506093140653931596470851137278713640856388322341045220819261568947312700399673289806810540070594744612985897607655834695522349625844416289563145282856225645142269091234247852938012395425768827377523447014455433367817740939203890406674004709649886400018327897120093979208354802826059851603205859443724206108865628517521115535968634092632751073590295592923250323588228465030979383537089966436284648436353839232408928907566797730641522805098939801764022127937615680201028358589974856230361307318951026260985034411905204248112504872584224557662461231014241293035308010797688285277086612367149712422468700725272474068099874717111046184704481594194238082599988505707142538376907547289646459242543689477649362483072659123166265328790480295269319487991517425054238853799922722465571475154369357485359434085816485459125050379079462875287778336425857092176765041212526268422879729786474775632551763324334400617544432032650660672029606307722199949592816857332209763641090297855114650477843000325629683737682063925984520675492156517255876310340639974922398963351138809213763155845786953375243734935059708544774347251909210486366401698595396489030040813372648665597794578340710454134199652790664077876885825847560515045783888040470977049946037600788684984260802161216629131924717611596003994010142899383638918644784540127867710568342782217045152847483269060539599801633629608484241016447189333211870046248954791601750542119344098287787873416567042161511444108215682021315508456409461021367100434789293316698978743182314921108273672086630425902927085825861511396927312652109002555729040479900317942040373756807653229637606975810998680796320228934315343157202529312330982223878370386546145455334139300121154718114519426463818538957601256167867966010350193907191423485692313566513688742472827392753111715374769405989827003687347179263078826262769937760734312676639788940266929146114784544997730365835165912898878187729854864834598615586297852322635717883315714346964360174681608620903115375323467701768219536899532787408486300537148915663908201807788906725410979524912552672820831042148121642361186285489140992282963236628248736006289734296942665317054539800181736030132172851051692408524746012704671213349864244280569696463330454009707215366131744982706909170376932510549931714155758667500097046417753485113558335019622366690567271176213327562899913046122873668598778505883148284288591211088433961729957434527500156844277366767445735237575435083828325106916861189733207834899648600545971432457479124479065036101158771664148421797047984293263768036006319216079333175765074424072218257978270912627155581485045590150430464223672710641680557315107904142024045860539521572052670119619032057104668486680904727773066286543329925645214404173752122912840595717154395399513326984791497584158176522733385662983891871629223959413463025894698811644367971875595627324209169813811837724303798944430436469017980615000405733353742936557456417831007974752565280872094636425232792228958082177080332628442546568489114869002761536722311314082544082530174309571606395752945230797582677767626315828806027271535620083280418674824834126430971592469594843664262181360388402365990891142646244109588756988073204112527008407708122845171008107099049825362234105241162548017803293385182042208518130552072321022808970677880923767018989373931045820068571859879063535096506460683163192018944834799776914244325044718339530001758452394000575992634562051028134191244817274367841741288758059549008963444216392474245337222758180007903872746543375927313143498456156865130187925288027821579559629378229327313187486744037533514973204862160999160986987340741440657962181981253104643698445900653929960849913976444332876550528860779347991190344246578340341527874533904399263656088687585135310440685274368939476640289824127608756963876232337655328510183753940599058240928685642399062315151448308344260683024306246806289096152594850592798241057902715055803400896087323850790468334702398483052273495005763000956464903902747928393381679648167369811404280915303845151395486589825868342196872192552586871340036739300020861342128033971413593385751196478586628653804771073566378742451517007262124919228036213714484142494529502520975739091221947238820576911912301510986465312031137380900825620741088687511252021639299548851961576773209580903249633543403770265114341771944802268843463958585564962318143358302332400893740560832335012392119881834862761276859830428086258241423622963495768957452165875758395161464968520214775400429139639127688826353774704110657883752762522205121639783296615346132111974455383859538968679967697133886741013328599164986470359887033492898599590142023822087928607035778886874201976684355367922535954145071461544300934296067681980070526620199708657569993857494271284879151380766245938754602430794494934360210851313849041518814019205059451849652615932733607229647084292486078148962929275508652024377118349562384765075328900101306985071375396868771536991354601299944748787002098324495638401975017242449038758649430894231043250596159485694437936459522321519781227665775371104256959071866606754180865488149050664155740772514802024158561507076038658564066620129823624124189701108933550791708471958233906376966415158327960444471857072179278194527575279434011789323761977024817436294193477558718373121223990789275191686054217423957657116302420133169325880856539311977873076899725920300293081078135225566315529539982599979513801129864436878262202833030234930114372359473574497902047778297213001572333408716333231826675737208412635308749504884734608307648397175180474855041982116816951517604634643009328612469167668023212341214147257442064762025635162954637316905673322577424913246453581303286868343956328139227994810027992179248647664549067294435974225408934977068473580889359527635978534024947949351402399938954569074093639245992738022967152807958409591069596293080934450942119287663117514402732765491377692120483152888461668044457453276348984842941261820894890963162326087426554396183756516359238106158886060794008983669726502257543990608816265581438340172225219922841243925518349630353584113219619166090879004836431330491784721554022126793305299860531768748702220276997532315744043961294936308075331394377084601114449970068618942548093820100397849768769597385939385492290615345419180472099340864873208581289452989735926419383539238203722051281814836059284696763606048435996044835388621915972943004653629782765211440159016278551445564486524614215860575205348381991351064531342658926424284491091177116416988930455219197352598444038536801780768926839468866919342274479089297372969295291733566941075153933750864305845994045288953438170741803475923206893595589835135932287889948104386488740826700598548453428495732345528280975312742983844344091371905650765810286595548153187975835718177939415520579317051686963697068153387010970702403943233959324840457139896336504884152800971641423420150395790128385153581203044456490155357034186028549551429174386986250293659489426920811217910295384611936343816104634396606254067757405378585066066598640676532552723225497618364841687884116555491341959254353340917027863933986605243094899719254179392340740143222842426967856533499091616513897096092230624902469369880306796367633002658239249066761999991458080368212958177717398135436446632100481736241842440151726147123998119327966399636752124925602822024106016854295504667255770675853187785201139367351430850745536214376208361327017990588435409890859476170388495104914722994537155439236328136490288485719618840121520812698288191547896829501904563023901373044899124000342351647327590204930312767353260779159276546785410040896259713416339668518900123635857056436263300097398648785071023515476492391167611623563213416148707725456763299075898573774717119079108312996205539858925665343628407324201651580179440967797291572783795936728598804406515985708267793662531545039807497346303292579301796331889810555542562844480597241348356765596080775791099322701086663288581881078504309753981978431037801067627585110954418838849469250381265009400938015637275029488356670174673080625138734358965638167436616410563101485074908433473870598297057876668755435886151287590662931692192948049710456690547026417344673344282624106648748995255000599710944087476316550942839335152755314172262863433786518285975279716813314613738688265880601754287034126878164584877445519168008209491194929753603655544335483758159990434231507788385123388854590795976726761235965735697350741443551468605228256836533671411850514976488376509195412662314760931464059184106869229177815525234905468404557607844430917426417490319113041189425790087536828814165013294180228977143483470034269704081051549094828476033249265226776611993437054248466916591736300568367554758323089917942687507820652242561120158356317890323947746480172137180562365747315947334655139740714428875698871843453296412311655263949270892161437578338501055374009324155824481684755132936222393932147906918324981804227860359997234240339067326532600713496268525965471250458704013951565221706863403112564591403519380105683145645729363751178445827886366558314568719427878464740802387720896657506096544689152036552912116290379843691098617530664181698690877369952429370858719425935449497644719571495657132828382289319464534346616198449336847658749401899466641287801325190107299453857547373981629063507746985137141584619090626078667024333092873697504274627414516078546885886974575894166872926715972298333347129020556225215055057653700896465512612776060269541132222925614056915922480634581504901018199849865219137488767507613161846364302285431958376823238242386811937999537828453762750725959310493670680284238466573250603562869298360132209557304563764740215462112838719150293161285709246853038779142628283073955828338772042605491826941212639837506943702567690694001731012409170892832698971286654703811618591998711775109052757682576608648407394661703696173570818669614505904837656182323791338656741159422328022583092242575799059912317630090905036170356675004313530440378779194976254216722571709737579674561527381018630443885035028400284402492331104063990889701982796887582487520860784479296610588686326836805055715359742127414586384765093471868309706574968021270929522271139567854858277196546958387835506405735501766006458607477040748961380845597003655429528206291566641403467823914981880262636395200840425262120231091307909632999019545328423044777768060895715242390717599921476437283024412872754510252071238207534039251014864199799300107509031811023228148882776896576500171628663733182974312143970579566292575025805402539703690152673500409788630501571155769310230787627072098185480523382734669946090407751590165359293209053888767898498714095021872204416168374939862516881364724369033496268321794792883863118883767230516619388952485520899203412334117591060922017555375654103801714811707988735730018787856621380673506999228707355387901364052234280606783102150620469843271317012708650949279411779309452158239297047028695793917819990546267211856021703221660123711064857763025831304643457858041916219002904622230555324630999047333652232502853760252356128657398715701668256142519417543477589108929591314446327448109175493194129920280571830628450974202120130157962717261189109100529093669366420051708864024536348470871961540034491494095295903618243765623042558491768971049022366406280650426130085133353713365436161877834540856017355730734471244194327238483605680484862324459036319196812959728608936121291591289140023296399105015474431086933354910356096692174745043909733723224572783304256393990076883348075988912426723521650947341073903698153204032975835218328727119852016119418120351480812187406239409597270106427890693353409417108693480900053099092537770813493510935082667617531808892698468943061126647787967679236345977035451040382989002710912020327381167642688138060784881728815996389702533245672683275912366434663642211902714093049006629294566904132582881522005625539909181094697172627005959381745018945225360275594881183834608325778634493992920400403321315845655041575768635712317839550280982394501820424622573901128783163248540247216183378999428091764265830507401123493819138530923715707384944211331958231546290841638147146033495115501032812515154012415950791241212884115250500069006704066117417986120145401311664677046415986322559184391811078116158191145908058515141291721230346558473903971725577865259110536698640471403059479061202524320743568210554477855157024880711640799013855879643818057974955595180069269353859467131087617220278914062067818139584413137363344007456451460484935398294373711122651275169816458669450845726175599085429196790884249033392383123076080873169454327392933514303495799340934518102051093868397625006831447522866715151696322514184305011100268828785846724229574487132191897458231330446737664622243533685146831448193287821101479716248816775629719682736891129415807600725476272484242606956778903436141975998921883040014167699168956852351388270166700951853897464356605658844406117842809979582711350959632091114058816321696990742267241747230550608894515402363732430160904822681908167757681616758344045180495110980802470312297715579726725864102654165060187591423403315308507779494432214778925789761772664658198507213356597287284011125013663126461088677637200467829600313240533865314824410501673852357392525829447089659687662747802936628938041060515027144600142913401218225351445977039832809269061442534092149189355981758356814098107094703620448199605643347648483538270517419346191852365594332916083665522289248000153680287246255889457217114617736541772351674122579769904013384416440897774163627926931123946922588906193329715355154583248538658189505073652538349825869897559618477466487613941972844773876984816572739761493967216225339136059089853295062904796991008932382823592551907078957784998208736820947985002497892843179824627936934450492040994984698852525107046536005430583161819210231169308038750322373967301820189717043676011798329933052468026885461771662184012211254416686519529724282500245505785950052693730531502225576272910274833089868018285161676395217632277630401583636522425032370358606891624689882518271038804821205716605090768932283396728291032077122908783638638981300768952266003109009118939124499664083131805982253612897359695531426791032174407474712091520623659461809324685501515515029172615078147245790731298706549376680222154636219873563077666955308377386353017211128899714575394652420509267424184290149659654450839000652998930131321367655067441620612419921961248341146215076005142710732005781257267231182548164121400016147866518246148531831879346192712037464081777016554280337226391936284145610090307543565701252463655686504851791709494900001761220032324733549908458533874147163407620052132695538577645510138223129329746337952419090230469722034309063537270605228290411946990736962324600773206267699603579740754038003360788791065071287443825644522215129922764284111488047737918968108805856866301681737260101652225573793186817734302218457052209914202967626329013771694018481884072320181623508774914037094026744021305300317436914192785304878548711159799822158039292199538909651703801521345985703356082140034074925514515892085815561803506063944773993244097521969419944934933224763491445477851149463117345956994487182998840824555832575557200507847121325392629665656441897230818689371696456227007298010510726946537420700509513884304842403315294737433601773656583472538755588908060790402704227224257676968973152791910517768326621938913432438482978030226430751627101695044669463162824211037240251461931096069069430570417690285142434553772724834308354623795180918347596242325367024874510687663865769937625211700985280553298817747845744475943386093068878535191150403764941113625835615130073528732039193634081939315673631656777140076571868843987030496886956935497008077564438785212075764205357731386315244395898101219597072928013193706333934918363816441713515052518081231394135898425121954322905438253245671447500070620240187090185067567942373565733464425421569654218002344289851352004380643602860937094598001444502401083793251263454003399641150911457900073729344687563239609148755906962130269273794724545093746567894929129330388057596855111194412832612984572099153926270999511795439000316265190135700555944207275462062742662742322883715180613640506576583949958370456382382931251352461605110317764238093845114262877062880358949105639114515223462259719353561483025007038815257970637609465880531993421376586659239253311302498307402136139450665059759347498357976687045057069014222194076360675085116230938445702630610696563243484152967525900070942554225015493514110968020174947187694580563683505523788562478640306639859038395514571407327263327165523329307260861631746619185725554722405808625215456934522103643763455117988945265856369539399954743741798568910139474082088934393117708265035790629349111469824977992225013373958695739210006272853050557172667157882761043691143607289011950148604459804236280135827415173343452334668791507618520690379535347912498791981776597952143017289200603673776253800120639972743611295682228858929764412520399789572705702963300579816616822206168549476159102352721028253319405013036869344970489856796460678290863399835831139327862859932905168000409488251499070921871054111836691861676940332167612507321292111145274959253411369728340583755724704591316525484264711967727733406827087713762379377107914411951851706461112035107101814962518495772867059212362091371602928737245230540532967146208939604752123237203874859345760801210223190604010684043609386198251037056215562580192971188624817603757379982913710159069024289357059606740431987607632331666714534989312767796983427907811519473905699054465555132090890285155966692473887456313944981931939278018427373884738975392864276004979195371140862140713188452004865994315850824649417767006560792116110961379058499163168651178521187030637468049817722095344462693125739846843002826790163807268903959615738439194410021108548416800656098457486701234844323586746104832959949146217338457104458086131541394675268941304355977926800593243591973879891846026947687572397998776535447868663029236755920232587223718185977341576178727462555619121618703710910612206368276470851347199967767901008090022654112820254797798657090788784932431679633944327410666812924532541338435323453086108038925596459706789768389062331426471262688912801147153915873739675911249055988211931587665685845977545106178367010403913296066397525762806871925193952723034155069177276996707297851510922099861226069022886634689373666269064462137466034684404700374129015311022647845952520658215151817165292468773009951978628672556409011085511271379215874649592161509004848718457028474925446723423748456292450282998600911431146666534875129567696731846549263215080427317091016122503848393270544878840970394528276235567103688067411094848830173749684733266048628085794122364184015383461227333687156577825773236612889121361791757162141582650089073329706638922998495958786300828371393432305331167254485427958634094287175548877881168232299032742957786778812957059682257237156183473667600001068676706989008001677040878551205983228269630369261453922782673154070974399340324938933389127656058557186492418678964856219061534529487309163330439471660975803273432879329798781072028506444505384006183768249816904991995762308971570001976939564364678757821801449680992960632678799479447840109485900636546393551664907241742298617672550273150809134082065976280773521489562816028940778041330893521540052225077523491341631824950150488724675105877723681778264223600053265430677132197914755420338902780724720930389729304179623203742627607945933361332825289602334921535299531239903916476857751169976266988739731913112858950589011150536594882546993467385843274841311446025892408725618575927528347620533880420849990897245056026965011886797738268525753838010671982285557507573591424768616041947285197825437031374055791497859152427660910093906011224524406363751017147019084102731796745784224960937370127673858845779056235356199579260261139056639594903644375276253416794674225797004394335530623990077269290796466820426243752432561757949533579623620462996185565717523623598534886603256811802700570582506251079709645291089872534908609751940068397729617469099566075870929816955961041603387037877665313791862512143114024911462985911358274082092846015196573142280801124315776422112853829278660590713926780395130651567603524793243334356181176968753478928039712199663659819325544502802017989991595930084592162025490382363760262213743918315464325182550940472319069827535347114822912199367740384818805017047466749704104104854110355766789705661558639906982688290070783371379907930868396486155172999010834734401398097146134326272452677827588966340996447173076847516022647926461042279389076347785290385835433905717008687886344120814672689999580189456211639453693996902673993814358425321475254431504517519028652920861340107116362054970011408731445063172068542239696105256845830814921613763802120187521522831926550206764572169968267954452795695498364822734922068552981795750059300964717395225554530008372075881791687848198789049817883617680257844734475054271767834681194485138640276516673824259370224848416598586665389007906336470392965543885655956811735957693320823598881308885948188427492605286696395391956550828772228546962600532585528826291287946692444785954259232338227552124846925501247616288350519644511186356349078812715918940958227203589069003118250588644410236104193714980252223125444589826439455196843940718054679540252183418508874049198194737411463644973228439240742825776878313539272913090651450129723918637691061217660929876352827074195146703289058821123917723992080209379036025399657450102846172423365709312948765385490306996091006039995637410178960157250329940392216001260127685307491275423115856277357922042630019737713021766445788404162718982137465275253250057457429160884404943979501572871381989685758633402961289754136248125496200680281500995121297868173262458831074662628348837705506678980906666134835895473214747161762373459500128296789646853244860090751399350733446232533050220297619964603586052060408405281874697993721399854834810968249991528885988471012786580972822236455656626736249468999385891235892899651612156003627918126992157503840118273135554294851206423945121394193658016441921655771213567673208923664266863410380244221218815099959778534351359061117773696039849173892892414233958815295760702082068371057384348887260199275238912927477516535026089556447333645786249535014730516517121257963422701554872658844273192538406430860231265387271003233666974377880604179569495941480995082795912113690097970445532543388708348010714269791465666879412021946608997470742515668813030127422737557216915699938645100047501616282568862631526444821711298696774265982696438997617407002273925577396483321488680024568641853863923514520812566963071645097428925492817764945043574950167677768371522144049837071061620737356875694494827700152713303649882872554351256041603814341037572297225127881857069443990492352382450509757422815473794491005588455997286863092688725923009666460755217018234229720774576656844566224709354191382774179696401861537094316012771891685772624238519288083191910775982718916751074299300329259170988403484311400115227180517182899302236817538458346987102937486887271109340279360172251908783428342840420455465173559875911763782799365443214543899196788499825014219478479949052807200544150383622047289990842383362034651003937588433977062553948587914264076580749821948559373333299859177647983450846990450255971230199955060211826696998076063076646863837399298260659589658446187582045457761986037178309702482090761631786635424128902536056419875461553636246754533473298097949996351761667857685226137749611308655615657105137615287668880197227123983317937359118819992523471829216246810167728555904815139858655084716273822747334386180965305521727579257923166687667836625358383973798387586761200846152546405987038565942021889101224126355539120280980327222033034147435200142109579175786512473197655835111126994718651848206870937307961840256251044808664369600861998418288725450334503372514663039696420745463817578086169424346738289163948170784191204723409603935422718641940424913014814589513884696819148439229909985484870055014539921824746237438559336651195746911383134334685915079660829957714076399371637444890318393983530356814953831549583965507170972691311893671418979448979400855500905784613033695571662345116496539881891727917775654769828949952531488981177630829948814994127359732471914310112396318868371423013345807114279270001126089244076269046199154669665545618819464047586975070869910327130079608461414350574816428216935263963696156465727077001583473950109574899541732096768594047618754429365126175127560941896575650268500090773021058376148962762869578193118610579732358466041675050197309653709667258007456977497908570174293256692180667921006463988011383467495450428108467693851800323323448556197463264213595606631796086312838744405155450120685003519972244686270818495729084621491002563460627158747085292929460825197326501373966194339376986000420799806482163155966181166007674205805738798960279588464956639300258766620338743402070413529711892887667518176324766155409377386393594500821494850116156765218536394041904308787817179048688269809214676753211907026669462807057263167984520863538753082442947090324591912969365924787086686885914237155172337116166343876101173210504525443325289999975344044595860588677572901833375140482136616152447668666011279981986827113272018597643937784390103649269415204981170945685361370685969944479487872972803454804180623086934395095863336602817210553952299518194568629035569429289033200567797323440534852369262950955868511747574360353244156727927286093935080433013936219802593816606599948904214867719638759508615912404999417863875676412453584981081821884515746147443167875072551044773679613096439764462196337295531238194835057493815709970417295688547099567207162161203068597589731673525673860557911767074447348747735194347835768205929711871345832913211450030324325986544447651491498316744502624489211853260776034848799024621489717492520311952441377066039288640402162648512260384446052625975104664558351166664208420435946311646542523369397485730808688842085616090406722522314889258471506338228829795886129660872633113150411643195659877430660062280746264079524879481982527441082642332116839405334364366786320660033947060231539081488849449065060701256542376375050761779728093284721941135977356867323272491696177829833827401335662270576387656085892495755315419365697842627958543228250757700422940783107763142239975311970743488799314129752987728096021442952409502133209108729561544641482359424449221165932087621155466871478669805445826892064601065981668299538982712612908640424853519815676630993589752169619976626365786021398143454656738406840899000397117900577230757455311557507734357145264324769251708149034158178614555179612042457619594403887546269148247446567426027382809468403891673699331538593648579678691025426445401706800991328672474142256491824248105658322889574064872708858657951633420659218522154616591215495238433369235099299547683665146342068790456186053263282353345887856536614730020257448060899477577521214793636363679824162774681801333867537585607256628587951657167447455948327910240620169505240961666518783241061359011726969664524498089954588337759975390762822471128814060321345584298256814673371407972187524240124258929577803070947844113625977988748983926586865057429941543457870170948500063482626869804693343123970811997689681320510120078334931799280918004572413049851698401863761086205894419282117260718639409453327878852958213391571645449695995151156603010539729677272653574257117421508044926548886551942007846379271649044706939220685772086973867602952304017903714513886947120516901137870518292306359447101670530032544538258631169916488865082973084726083040545807871786500457620092935251109027870452279410086114680672529982846024723855187412734602416703017468064945237623081104601922231522727330895402548541779264282696969190850688222858814450203647706888478912425854646605964167640089404388146899339945923413858834207820118184205350615051020585489007329915857079132600145974076421736706914281333103806110870453585565988592083884297595857073680898670480068697444693953388208691246992372851539985569134690714315725648705905580379136687704474410986350532160777192936506043035439624462406550135888993938944847137943255742156938655012604128733665963735027892406302931518996854425989128463225700559008251701239184461586478325856041919589232897562865042108825432114630475075722302796881766149754032841958219760095484779983657185013068080988687440637514268579002725161424583602451895496300495607018890580358635602482486353196383919432301162480339482436643889848677454071956367016521639878817419991583179575627208339628394823019715395305786762737405644146266782786728995114346690690744271742014682714020636608927708912770158451367962343933344628808950338451220591383284718290211777785346678653313666245382376093788140743354023574825069751583837324053204928932951050543207501455163722468436803705431801253055449175558895330807768702128483373522199607403554552513659488257862345039643399926316692068458947911129113248436004938917033844565756045989795675628391814217312997616565302344675344890190671211489939276259070898071858836833299356736264486266073270970164958433480550172906535110736404185329483230099572251850082227435796549900973365491305103641966441496070391321971614905837769411329833005259104800655469233471112371686161006548859895992725664104423823138573344728776815806951861574663129799393532991832879158108267729033203525299276416807416953226774554023790954140939290072932866565898311304575061288297762618445948112970395987296424294374733970970609372300598952787687279508683435281573483788477161215210587912026683677809216218106093792774623781631861099291564484936864636086295844556358351883187354500591534553671825127591443992511715985283830131541387895153414376927512672268724572842445397496685120172886875405080358022555081938061395204683070538009660241806227900856218910553996755447688656395513209966056672274084993825056011406542674856849824559505920433345776757037979501590693152235832937087759706240850634616406846533602014679061067736182773595544054471563186231969426304614401505120115812542330764876201984364212112271715584753171363636616235846437746548998440444330655924046413621314137547291740476171040394681232969376309001732612488926421082807598073022785052440203966379729233757055792503154801100191750210871676168421332683263502874452457811171665725005665730694689179819675137508809401015081557709230944959117371746907041834502112374189143424797110239510251455987592203719407143693697374182435186671795812931106593701977189003503358494986393470078948865433782869664588081888158936408730138469775703694875686636217623267197167505625755636194226557187470422848930386034255746926993399432547259511403612411997365900700326932614385525776285613626576605907082509853320457392692413412548642321357628601554617304261533897827873110893266488868762355801933720056415150657011060646814671930949648942595152972713938849297427936060037083628164004005053000001702523790742050476734437711904852238667934697415001610274020167871908968694530797057518788456296654773548376133048198890351401203657815552822604734214403517758089623352219956969719816035436627085952065500909923452091695214229282397566382449060704940769161809216664043911904978933020695360925792715383881874176981380732061251172903251788889347443808255723068128368625025299982691323235476336026666939685226461010447055150270848649439591465581479527805933419311953050748352953603732035534687899785513502472340160946304628358253270493497193449073922180267445861562660375651254936921185082960228818080643318178228649350196916901185175831367882555733495881073793569530974632088932880363424938005852265862227649532014861543487524435678706109649375274337110040942475070020456716285490149724948864887090707220536569925790605052666587118617823622988042861919897337190692317947637136560898245071527555917311572230972153077078445324377959362065564330984822206385615011596454749954444612971373341612136681141543047033321994150102874242642022853115216200293034260705468596579576695738999558996739631081314970543830579819359769131944787009310960690073095414106478212013174749010999847165699016188851329276389476004147562001367141508952622117677710652839433557396677469688287888233586646104184106481703301314736451644175458814121800471784663675948891927741074658154111018981445644877813925392825549711393872592394130107944608188589282335249482310123626160494668403554326171437229716176793135624911891708859864607832936777830348504187156646789171238691362760176627608221100733305234620870380898327210273081608396193166176532524541611746925845271330145396207755136974440686877069082723871302414791805967323541466100225537590203026956255728112041058271688102353921096904666586523726566501384707516012178999646623000324402116159264486838612417609513746388692001020928183642766638072113494557154693953239586230912600564642458918352821681696501503802524290154097118114815930259406991618875230543607563785949082958772143236554595323974028265299322103458039938412658493394070223949054875563164154613638066117863693623657079699672577332325441435156008256230983562256826523654758748272651499438301550510044831590566957155435236770206692271393238917518509184150290490447104369572580204413888858993034396404071669721371370783617617687795920614683483960440030708695268314792147986502071821921576915624692396399614012310404860919147994269795493062219962068405323155122237701504023864623969180653318331013749347504653357365183593163244204224800177709438043267569759154854135164742471267223585225751283969674945700745198457851992322141778192320608994300275535264591523823433432463913395727088270437416939087493100907051658815154469888337632226446740836570874391591925418571459451705339392575684619367654583366217393579111982494451841622450449002441561708204435414176178489270465586240622444520123852367255264518495321855260179866825622881112179023593871211681589518885996940099436658760236898085200265816557463648809810984207182741044971576419141300178479790340839541743450593547727186464145259699112845260432574742419719595106205011303622991984644008199334462869309155004987541841920108461030466553479425256405324844078125449366625987609378909727831758297750874738355837053780490124711919589203696746035155477253600592642565697329803541899624669569258990164586466416741580554475255809545187400630231452109750831419928840634925533157636038829318002725509305007683907387458986082852534689468494883682696013331511021787179345255237398976154042773846978452016815200543756780421477105699652600524717713757099245309643402477090619381824254060689419350778154173314321861819596041931003570062718800138437655989111976525835615533898433982949586617940708933534301941238259381487695759859488849773127783344720269359926207421055699871188780154208870871987260975252429274426299837417317129521718704698533468579041895910426787200962245789141313137567769293565357377849901714810253785338250381408921892832571069629296178554462942340668296108282871299932143755710765059439902655050707305090755109062622857870386806082665859245927846632970670156922588402830053244838003583426129819921897567103680304394903404543280365706788130622458597116139503692083283620949319341995634617097539975505393736239926235268143060012473282804412091652680198764199489074137438834295054575136716064449849259414962643470578638318531022076128074879458479584100793101921316334922369959533955219197787714300570328248780215532506685187601783566003735656386332539235479797473349734199805166342161107805161285744576635083496151569970134705470094314886995389251589825040537137903188703834312424318806608885120393618193248656974109170046137547476557442264471131566467996141976581896930528594405520541052698820051083689212192826532337166172273875438146263157682773973797470687645738321354141286485267198730252293146333750680328338519954901386078120620800338006323203450582253330026956149562374404474862656156208253049962200426797277879243985576627300943404669661118675329099350582448110488884874607770946740311485745853815028683245312478074121377951820237176684107171803168833539509108358262888122134352907786406297966190165973614447268390861716549772404983184944541776333090540918012514839494835688091703394010972003262571409814023402353659498454704229352946231251729943976324598842708544983269752903194969284336786276563100638256819252994408390245985854839357011873997094144349709853825216458946379263496217822472877509552842486232068483387634847926768282585617058069434218912017338776333551182048722567492395264288527898001473953290228936171363392954255643267244003645639103922629620872855912129647128463289296835440724558329960232631170884384574284612508395178146506630870171072645093598150237909137088010761452200736325782166248052433884499585141613252208491198770501909785513960773922688115287851615583966617848521738454500206308364017132907887407078494007140041581947226903021477304019667593846471445151625771666085086947128682104435706482017392269259674828904666287390781114475606635930560269504563471612026238159540774011508258288047430919156534887990692763058242358793169056874943373955113646658594558771211929549339873795032100684130048028182760557653260023239180187290556150665405476714210631292315495143528857263755809219387883211288551645954909989167177060267247954254961843326357625521410456980691525445890702030763956167078475083561433404322857267480372573354605568911917470245365166144215866623487566944901879335377957856758904703702045004304279401364379359103944128247552632876443114175831391970252704989478402832029796374141891560044421280684623990985567227802679691131185767867029092806930679313444500374285959162960036599061171345152449248936715750438141463523781763759839543543830954111566926437164493538552344802780834840351419568960975184748767588915030902080632103486673015526519783148908604561643655286199629252962184424810525474139410993680473798246164898990512179974845733265383165539898968583014461936330933066830550094892389620240446352708126985508817822080245817472781715213041668987941548660230156640253328299305040229672598395533515385415313330692473312275506869169277200130275476721377028669015290373103670929682256982904835726533290976308378974661979673841108427234984359002408544657417321340052806770054042773193718610014976535833970455963652182240641563857434952048658696474667083363800711084903683520680697022045729902973078081051260025290418640384873922459224331203888111366764122385631586574069132430271287546600180685201607878891587839671068091087405749132623601435397467830011670123638319851481375226207105843214937568283229630744215497467657109845395084962653537577112714428807216828298296279647753218099979298282169925821045967535751844737317420270093861239408314682673562264240622774513820764759637982224951923389605789480224222523145762462869197227115037865023072142194128852310185318482196107467126980681142441831099477447181169522020045810709820645663195231908675038444965042218718308966822428049614512924730643871044318406902233063941795539699542767696554069780482397000857292388826216833433068365672109884824842844314609794288578663085555829680909848196351732804456820722671226705017328266234317302672669913899285057486241311338123615858174633024092582705310018036980031103590492150275984195829662102862572837819284571303688894938299552472677670362980362955121446162784917384889642723195739389207991185238922715483073402992785524038837347585854872032017823068650824538896248654012006425637536696778043578580725478319986669763789703414784297995281706201577225399297186560035811157430939568412158040774188754011839005618747240981362368141448927523447158217743315815107973941712779272947832496683060658790660074596926135196799725688329085014116735464741224310177803156669357515459466995336374308051351459722411618607086551204119379582422094068904899252449118808471675915608413693748545648312416777652812746840125033902619830269661231193924853142298468653969206678387142010925809795590452742817860438533685418469825238071783506422766104486763455714205249874734907914534818462528860668167759574052709998461500768094301647450355533102567599030238530765741935114566162747452894804139283686936201448019569000366465211006784571589386377860751139214747263688771783294711063832877170778274326800607859675092892533249574154972305098704772264979043538306615596725931680811828992963806950467508592681171650675956738932193204374577703164714951164038305415421460562053820134508594732838391804562140674025072697721328589968171285019214703116829825421198273350862137346128598589423300780137766187048279365212692141377363575033859679769171472315893712377737798605179495151288849507580900111753231555521907774317653438937770710939665729339209653836973445207756284779478119689229253385159607340782488521924941109098446843708212276909552543270009556737050841054054412621253684354146164011674444012143565051024820776638427561428239195929044125567069200592586452639252176212044696614809873806745910512863839412915335750298846708170421175131030120712384227093507649528515896075635738337613472011291623060461238676266230638273940466987822783391409554390524224335812063364530230042477305361414124592403029123573901645317572162587458796580458404723235660150921912637501027904932695149626895603535827980685174519090842969102338145264644709543457343337737211742419445352929969587815938532893999338511442628769112436868351537867088825704813920511070704843348940757362790278954028672786476018507409208190033393097504290276180490851413666622205302499426071532788458020265230721799685313480384060910904403538858467114924920847571658560881355130862201343414627238874700170528515596977625792106495259831601301416801303079719254479214823862082900193465142759515949821005443895252083214610427494003202916751107166586404457520112608093025418002022924552703130103004468370878543191882706212336662848145352950316548008988628781560225884516653490409110695294103939633343658194639469303069917314620396850432803945746062855009951832419562043676201459184798758674556175323240409781649448912842008091947675558065588087367162816713465023610719572885724100112712872811156837855883572457679163972774458686364302381665142052838351943727798003152208700225399284386935071366124681982882206845249958459520714649815491270733211032935114547985704827921785788496751869514023729796866183813603324618423747100615482886787116159337814580114040547269190806490752821881766867269703080829425387227390379200937073233493372772666543144217960477723902976094959505582364379101403464764987909174125443750420553602612477534556791813602072355099104048765357057639826360669427969300478036298989150269811812715992607325094637780520083395736442126051872596578992800153014558859297097801872050351144985012856879377564070924811314470915642489716770922639638362490919935990252434966634766631229760077882464923202702755939961413410567138972895358823095249478201070145142265432588626953685162238063674042839140283870421464856507091043988547552541746532638853469379049219874600651926589496325657043701063608655608515899318461627838866314346978697605085444850362982517541020891145028985960784870542204179724023412002576450907047351514638673286252409257370916208887197895089814697640307717338345988573687461761195944896029286241769722030882812920201611365293653162355372436891598798700390791871668479258836474303392914377091893941191954503874007526432203130957709526538825421649224147604640057760974084449510111842035102604696576525634662069335830784406294374925889658762656541772987185127806265022404215861788523044301637706958727482591203066211382941588009635398587750658415553292608435255507556472138266023360315908782185646039432201303555204243792617769895723539444490669829833433207898480453444991890243086000883185846273649696197876015980036843838813850423762277687917675605307058688379659630626003759383523060807055932952328143208919891742614979725622219392930719301339104887452029189405146848777590714008952233099204363973421958549467380413830213828159390708277407808776089549977698006444115048897207841986673651232042288046603186344933167084899954106150332671324508094483599313006786477508917756019604294632737530549539791173866570721819255658619951639405543093639290738382713257293112288438084371156733065406986842499312504816951350758664521550463005712209456251433108010899888570444091726572666098910868273876088419829455910561984546605663753781850637762450259356344391546117841920639494064506537774752461611717105709571509121968377675086677594153489322017667933548675650522181046014751155764774176460316949916067224002217854160187789488037695405172739813360145219221665639325495018647978387269285282003279931703887394018866635240120777069470031634441133800501735779461466534735318477748881436447948450386539532739207131238494783719755378644542285232547022508869391125105279402828019480825552478339342839434445853404342664849785089829793382781044252971916440062674283419553843971290471103419845473777156787474001538957960388856091380280428271912106260584022907711849864957729472680317621069231186788864823110452791127504868820114102832218912171064046881190255865991194895047507803066022531687421135035335824253470777564334027907646483209179099623607039683331543688177596103417995043704122657137190744320071961704477305693176413110053058851951857474733351994689985710546874362823502889648917686039444901153223519556501807053239933826824211076022833754552410374635006723226077171629191453972420904980091972708769424055907735171110902262569390160416935372432337278204313143614378008083560608794378483448742855751783619287373309802065378088277685484121505034163505077185818787519673382849758971888101761298014728825233787803869377097600220784720992187180561650010928282621547726813393206650505114797848803298957418401341031000718565551534824016411133266600836138180679566726912747086336298686388539832350285132476017713973574880540648344978768062180813602609789039839144158751510252932247523571723154976375893532166646362342903228828808348276961286409381832313167158299695890492644316922522134764287602438806261978848629664510203172647747714250959347411274925477951139566354049491194658043869052691798690780198041105049795747387730351718745704562709692617461273176212324178865838208674181391431118773728271101780675132667316745781733168298338964037485894902300084523643182929752523222298669811259388912759760588838037866376618034683120147345236197652021799003720615785550632378748873068194839829062085391137391900292214693633403565356065639579882544325904450925714837405233026232931985222773816090809515889480400212606428542168864980055514739299116186785342758987026446175930299126635286853008493550935562738797630771728162248798836112887054735446542447145400604280093719269053029297007195898591269206167429684679827040092620756086007443655003257791823097369704200329670262189872267869035963402025498610397359010605729949252468533884686525396997546539735035564719245155516372352167968418425440255825656287089942649491340174932421510364038516121090188070837752720149875763398211494125985937370306700004027735391505116625455417658739488411358602261051440901755309156684237990603963029926843650265693402756838631528515200606077497050699624938604386052429668062392425402695653431075643469306676462636950454882685082489931321508572513701946180320333956695326505450188106475167109040945122189698905810914118722745719229213420722514179337066421815799432818167245478173440748880883212863043650352860240292273440488148917835500337878050632328323669198371995176493163900239455159608407598101210438812218258568107215741659634470739766339123039689630625789062936528776134667183790401035866982201205180135736797600169642625626766617509857404057324799673871692091437012084886687523068555110391153059869182952799074693222763553634362224685120257595665080081918546359598349613163645677420765458820938403629643013099650281440784914627070010486035786666737679288144864996830321968490820826922468300541670325734274040347906420571146112668118429446065766742437635608886120137354569361239261663407019011209238477973635738515088500935310311478586209367930440006315754858274330966809362700622709399921311850945717995198643089783703104103544556157429438053285358803869018137692230503530815587597646948942717928735621257799940921295561892685584936116920444303701547392202329169608978204876543808723546636532981283067327870812874457184682968007636565915802141132464582183101706591240697299028236109423468011360097013649712867385783047669445511435937712646541643266344642152008588342719506474143281125524926093614266947685504605689968965774823793806049354965900300529051396805564009831926113995381619041111626805862285824450562391522379686071995447054467031594272762159423403295276717843400532887010900804317982638922077493508225925338388483233249076633199149331696662182794051941045127569593733684052200109939980660506988545606457859749905977252790573300522672890123860866195123107113577780217039902218669739092635848716646442610299263528161472295196448441834933324958955788996494089772271506318290576236673367953935554915889122856299508911729771388982242106771784735008949483043167296638153629103903333979941651772580652801218199246761630207376328955861151910717793611636156123610115711520896806102655400239109877020010606601605540645927815979105378996462637485469693290611485874640155607971397943722419932271976422880271084443242482085013569605767479339520285185067072705532335411423891003171008962564257039614766292767715060433579183116327419738211826066663579599371630684989192297896719313325727170926833212954448098369036152021076054551109655515576712630497488954353727148358454770273243428651436328072563893557345820023934362905348955242130750667328661739956652602028055259394203892947791653016436867538421026772664986002235994657395369305683833105373966623995619033265801182278092684529509106027983838750123383040559141077910415116120280712796355027150507714086632851036009029569660490697353724625619035738719868592871539859190556415509060225389138492191696070462353882416550396722734764992398429636001147840917779579453407514028683904933013138157000663439349994905548910563395144484211530784775670855249559766418871425600676149545474409979723645720192227126808615795471022238305735698731427727572087961825391413308042022008002293220198588486448397270095472349121575718668950469800384909150227374986348224744559517551612076263960564100597505489756884395436229540390753832745704953362179647584670198938755850503892707294606997787452282691992046726378599046518056118321901803803322623542072520064407432866394549700501933100156688659085884311936182123231352488610451820540547195975012161699385073561469440350563889569187532060012518262901305067158322871928930574687555707009311495461211248892422675731675100998726948175616953696902949643169739236351384028115241515035681649316975433141933072638847715401412718707234477417363725974674355164793275377368860152439158973781177799004460084488433401013107475726925676512137333861135330498020509151544354139669695447902699638273501704287894343159506487207263236454070687279249432941494989895050217365915035330532961903066736354151361952945253576981514178916187330586037587020387656692190886008434447940417711917423618872920638728540572969946575376303452009277620211954078916865385172640101514959405982609638198151376514568411396072659307841598042019846486760786282344003708783615197711595730054840315166611939673933829711279208585961384635444908100728879588245720972895132012378889884202883093805766622862892004045238292570423143637180984699077614769679874939192567031646479989337771715220528969704090148138935278088652138454216838650647994360485118294210342150182078254703543025674395907761783828198792510516504330797806544136061416623022172689334591469045335179539318709052186059379295225546842723355205798468561271154991396574965201560929435288318889392209574110619514578353308011682684667048930149623774804706093104517953223427212881541574526626630527126224529232127965044547441778085263805229138982683026562275561412496202880043295352750199778890577260529989240131704180354888198570684439973816987313962042429602173325685062668351534990086111498456916958493092540580544687869446226563811137903617830683366010785664683763217591265011858914800045963946407263006103765191201894287500408411117913725818940072018657056988058462248941619924971390544468869585842712114184202591119653811302727732719434135147800790898381840492597773225832406786982782175929468238367217936672382736782741973385902067540016677555685870733083393403281339539769822365850664279490826259631129012904123860441837534466575923536948880229350870176812841134489687419957512528726774643075706606541821778249941360184714058152199508891428328673900502473059148105238024175080035865754266536832171724122895796058401266625039350854537741282311378706271139082035976447842614997168180177358471681304883818100710881692591300446346698959541131406239806410257777694486998225793934688781058865179218992022667969786741287611117541619538754627013649476526412317371498972495775925494876763035587544122547047248273052157714140173052135241427821008267029116544136095137820805236563964690068646510189561966403419193735523773397397856746612137333821829548989767435812263442842819936089673066309250118257432702824552807044360251795370858508126134950297838168283159423404978946875102503226308433911193925049423662397146848904778196217075282177038241854901191442119938894898536570079353096025263837647159194475368496896644327375424384973195054192197843484078577474161412945501297009011603010976000974310742116902039725908458494518492356205666694679073124935931456488116217235339574960669520569673814102043782039792152007467204810129684766086938409604258838713771709053799528292606309998171493228947153705640175169412814364878564818832175791595564143264469800909029126049702037289276967206381136532931459039369600457146752365177406289152251572782576147253681931112767606396410500531820559868035473397851535421536265280216858513017468257601330842609480860448329519430599457787606758677760168420450493434854731468234895687233490423400723201152388875676914557106108208807200342098370643097784072470550159291043900521310390221125735866196510693991359691763550044988305325539703381498227150629909230653294937000932050777249354121542598000908087570189514142185842505176295980536060983907280088840491887865283677206459022534492064418361223122036856910786200802363578124630361632905922455400464689936909787476287709860399077829421817681053197123607609172067012720579919431846530738618463820103884146261769490677748596665474092729552807413546242306513467869759791275189074237050822796348513064142827286593773313346068813989272014503313603537809142547884594946580246153058706102443866978086344561614148427142453020264294656384620761844434857728484708142554047675090632344469903929868638124658182311392468643758863703725185532082019928407645924590832775477957198100831055628256061967782198910205291737639595801565845484914651046348235892178967394640773907095320779167421035608034429424490167484128532917184757827007690327657455638805894869843972033671802008431173675743623894798760031117295499174428320880072852263068094535398627921626466839478413372005759203261231307312781872387723494865960157771026331676951520742078534406847412532744335137695204331385022604070433578481213721752823014396053758293326832948336149533560217444738507707677856493979119924191859242106681189558539778927180997269372827848625304652034573255114605150272528006826301372871363431689038834512651910814406606694969195484171139964494096696529456295781076451230078645399864103638389945090992974650019442796667051540786509071956195206552252677937221287074023661274607952630557396629957858038268659549804108248081380384256915927038711384704504355283852252896770066382041972304643739730815411945159763842211357683556453780294578547572132712493233545936471424812486869633304147487777612477628239438718732134612815507545543914193220937401149245578967283636838318590231401586925910737787248892290654734914941328257490145250962715713318847750481005828154501911540160139871913270076070682676784285143177295807369107647871957038308015157525927553686722082951583820917203016951052498023102619723125150596985745270714926641532562967099786179593871272513001132627633955966428202801848812244727103906972483682717803082184495123356900497225976176651703886224817170672512826585404989124767596244859655396124452013748061108899524316686886142116972137702685658787507969939100404186115923561619888635138020153228020081673617282453528569288060443013899274048660010514820580124048466370744122724343697140917188883862588418360208788827540489287028219613640802087185825598388096666638687341602132503202776925479796752249709789370243438952101639346195217024673946137632302706277975845044154275611384445244147880926598618210140817903738796667636498799573343882017820720119927855671202115865056107434665616799047905629340724830556499289621000672342395237723323429110376627696137487225961100031937294802268321894994300789671384960966604260670014018973941267343473603648909083462937050777293924606897377688719944394088478037964639488132506611394542652305554273177678842266155617111517460960340510642197040885065903515825510922649778076750133418959517671158449805252782839206779188965073408804519029689613575413172250153372163593666032435793050075952512617764031085459063556506680341417425409349173828517494383421575057356395489353769640661045048194324530248852500410204720062011397096075778145563421078657181324872771144555038359140386475847475963518374230245926058941797640234230559748193032241082119507658445387275521159243331713570227447724872827490497482613098758650805583099361928189195222288967363916475841697428432398712204653746345924782115521474525203431712514709658930702483495921460138094152244662045136657787712290226426801180843845595194805453776290889515996382802627653602634442829155424631201401665806127752015965981029875389404902672141892340237445636359119843216921373716720644989846736036594013662064403835145058046897583537150263829205880017897252000411666558890180687889118949551770354889886046758313877989573434320573712447133523915230187501110618201940590103793329987592689056856436607042638557142856960665878346009692364471078337067570289791698624232230004198093193417827487858728379816105006421612962028334459917341065714802219382957438984492896069011730868463668791456638872902505686741594629714746521851812483981020315923081570793280056514511758803200265426522113650371675585580873170879745374660048474862866444446309729869402114483018159506015737505605706404128020498027796610256935394066468330329108580104117339267246974836427577661538797555725092854008335518015873040933268039724354925894405542927728643404301513663555191901618119536857070722759728796594659413350643749658929339331949222837253699067101666378781839621187350664346190825016002298063158315374795986476252502858811704469591370419289015246627290378272600462107398718249433941456572403703631545807125593470157405412222516184819593273862167296490581341599391125644352321470541184049108022603822679909051537021547815840270702573563663054090223864964366610945678629059440203204446262536206910679826916837625187788512455641262515526696086811429226887510620990113074911039093899613553985074032724328761735685588220972096832881577773093821771577642986706670412867732552916243387359134487867617370991588281971165354121428744908162826196144324573712556397223163622660587887601783418509199665552660193790206340272491981860673440227648193378601695657579281777349581969448210818914815004644317653368651036938912885455155069631715527188054501421017151620256371136978640690352903852329379361118916430839127227466459903778993011463344264149029880658326444739729480344895332826961560173955712423921408108847412379793463704276310386054115968467364833785413166830477874834219668624032056629421586740847237664555977627023370579774882858184565131715026488044805409484059986076847634832105730339839182678523444400811684968598863395601182419554926533636826862336496190039700502491106559123873424575357636775455232767007010558779283460102690737971510069773817546017994387141160866661260184729657251096082362407882142084624504473961138464680093913855159090442222011177187289025871699929733955990468580125892886661868660332079764123911078350696500645563738697146755171701840617279358626688994248192666658723524755490632787622460664967808086609007577090465707275866548246959895862752022027843416947430749091610478432147221581945513119886033876231693915027599650792082206287627632258283816036394623012342819220848991765583823119136947263683875797516221917463817268704076677400363577417087028388768098782227831806290689173906116807297576550253706839173907670540036567082499639997948499044187917871508370665650855853789280380767371096977222039232750576951379507360621389637538118737639799784352399377057235057993218182715288424055485208442267733946189663983609806849974689152162577555779277516568078231828394876283461931968518838875593819298835481135563067738717399866940619281992723398042491683312804502590764003140273539481892415961760791640478879335749500903434550374923776392463094373269355710383515332925026226441957603719112425952421677203779911092120702718359590996739380772133058149199004992638637779605477442537102368145642083864385975984697471189141853354154096345857780252461843247425152617652197412821609345713993824791604555676399224218425031074321211232586096621436328021205587252675632092353829549270312695769585988712511788708813010474760306484504344993636755630853715680490007246288059943484260405588576566643382306537749980378174341302023114542733935967154150716236099260376028788688570626660857834249353714896740138958666864621909710843975446838321854299790402260001644309614742787085503928096454169661260375890191756974991026754538831511309922240830609673917048479588849256490621874315788844987746144836371688360645526896108026191452565570865470332876046975202784851704294747427155417178450963955873202896094215888690604085071498358525073048237843778536461189600705387037928263224660754827621042993628645544804454021309334958603892626238802352485608833768593784049920099329183676066114540250870225648384110105653635593014190276515790434680612920777423317530495425256588645118249683916259171473927100961331204999669301552277771865445900032194269041082053856215307018124012867873700514511141785531134513435641985403951829876214726625105719402404861564065033804436146206286730465616774275607527534643943638270757938633549593497481334192284316707532979670873675287238401372103172131975863112283359322908135610524296756158315616466847456820069481602155699253258098782812264087290336900336244787627762340845174403074962967373848637641156072000544458287179227421263418534438636444214999948563017922246435932524996721606622768300596873841919584333345917245842357901879472704277266967961466438343707050190833466972324151702823532871750054567152615361797471484865438578580517286533385514531878027003287275044385849848140876080358359817282921299427349847209205279974268903595971279247355093891084858676966366101230974235134502821977941217726370257679748483267374144206862166103359385914059217447170054182439768709962681041182076122845658581053454377359558778935410102550059029535344392599181646009790960689921884618973335493507456688552121677286399645362185943211843983612287920027103587967339152599525131027613099445788957063404479015515794217713123834345247800908985873216929436414350246616604751726773441226045612008372259285303492086504938235888484336857474932999382391647580102550292750852227406196533317607090208316845641555201482307646685540773142393081226966790831356230211572493711634950551788798672395501863945185752702207190912020406750861464698134246291093873908425922639485056253842691343645432974388468809750110597129052672880871387472838792156300838540714289998221000516978922645693266238895580506071230247445771261122261008336257294324457797956257240066304833640513765868828583869517277983250022082697020059733005992187126129925099534591724417849768752501783736163485583948048710074032874178463359148079410809104735263452852513515579551859239535495798565773006602883814583576296116785375798336774006322116676004223586659300248753714556598856631893576515140258248006361140365054445085531214616551812615740511312907969646518395914381226367481603143253224082712199216962291867452922471679944950528205284754741289009380047936597335647075721894306704378236181021105039201783248329994120113942094137439807073330531082330592777348599656770744510412700078773208957864076399316186239022471312213516053614891188278217336316421840772307351856922723024671975173433393138693662921828267160886630289270189788500954559793159317096401589624729545947777741021180372221278251595645433275707681769687074930232280902589416267123309801068878585884705035734407516407098112918913835295215912692826905206576443432668551427082995379080605667755574944385828014951209661152104941352547053108117775229464328836117240367053278304206641660144671652576652776652933925418331329907749882407785550159919994299947999300586795878611095555218450287894420958354545162694975199695725909220351775109666034594354044084061523591500837100881316126958450238883305032719390322180303212115403959291290252632562444603524515130958824080293972645341206124471622718158128083921171881685962375903723309589958337062995488805501924253546602335139653704220732981318850738208897167599934301301124060193844279276393447363225235296459938823745964799549576770192244045815523880826683988946607877803998531254321439933480939049401542290510006409894375381452899399926613853971694082597675653429599038207845962436985392087234996535311607872221576506258955526442830527040010348354511924833158089609661699298529576419035642122651820283672437388930918487055855181708464930181653126132717030408371123580721844986919429632021909204588155671577369085292714190069612658979331724538176817389893258842527594428008751158901047297448498822409453807792463224937286907160509478082767899892830041707529440600905925643598202769532074207662022384230788727047409142327324129825085259751172099856674913334313324948948973108925789776841545355430298835120611951258274182342236398200687473552705547022185631378417600623027004587166029010722834838769110902076777560865903778116752743483993462159402828514750409911682678577940019629534782095368173872294140223406839056692801025597761353012558808590772949348777621373635733688624286854763631599512587741742465767352592496850163708821700049392798063736968647261008633053524299447018682242224318270373139405230547021218212552247709904826066113295500872258723749917793575119509837116959965046293087299654599694118474379565743573998772687243372465050426751301112418552285700184613831684445999337240604776839641946667101681058213731240967330927794412283867475318466682814468587222302972074121335976492611971214485488510884782628811910699179368463079928924477041777910089762854539131360428337046408190259496713642277061645371696508289977741682713260380335305894033436294031598147944666874682695331839903868830122324795046744590519351350798461782847316304170417434152336965059504719442245842614648504495167039871560470854462378042761742290676829012096313563394870000544941627141305721136093758372547088744624227465364877310860678377217793642896765145290610547719854254461617789434374382591931916856560348774292467960247559817214040840312928696020085818552632307217636576638486411820482827802827961943876913543660559085486305179571440228600261075971024644282606110037860347738483352584813069037214298033408345439234960797408386387703593652301651405588282057382847291414156601218632207103273241975432442426990183347038084331221119310490455966912870298500879992795881940809513780967307078256747476995947545178126174285313020190426939457378516747516495187152589065698707962029775281242940651890266674156009197658686818136756649273230520153681960435377777159288130806178907584138863053048265233120960055930572892303161332998820364773813780395380585115529474830756056660797672675922394433822272163138597641566993318659217564238378360031530875565229560860834223741856278674467214562507450534789169449808506235899845631311550679131613729178607324878252261671014443901743785908640944655159408234998388528098106341190545298686561309200453318924473175658541333006833678366568669452913529018236475918405071060046455018670046158476604873606802369101050632666730424451367311737059871401439211354325598787517587984663390364777391112167866153975690728359084240456936963168268101703257118726737780117018422110517733371663839376787010275655853349409510119876307965022014056667804556892590156175072184443266382696058582906462070217081650237806543528903181948614734015418359644400737473334670417392109122365939991404295059515143660600764967902442833334203232642051581802890955258864090429186881340209013642587333575902416993073734372077245818342866255607710263696105248846249708247461483394354782645221547313239539198026557091006896992758874285550931958999566674497374612713894621775125722115371170595506318565600283440426701973774855318340875235653067068804273322607067782967856268177388959046053062754848721910726775098672670948458307614760205943350129382642681014623750343354875273725390634605350146957075757059255782516175412246774632881515452826083973341727023037543436803045543043250700374410235624386872364471772305283960304408504948184449777678987354310833670459007216070808078863864403157442838083099013590360618594949614795105785965828475440457955665771853186441507647728366393656535920115188709290316919724882887420792663557003854709322029647329089568598136384352565996691952085890267178426208809241613849177065937844300194545789659467665447978012684269886319018346311784499546438741999034362230039409181395471479388758667949779439771083195488164710771345096667331461440451323011696041385746085515564582665404583180572571860891378273520346794796571012450457985301490006380715533927169629168440171921089483626699267980751396669038881700391638726237895866969801555346650088685004858426063539743499696733692727667838354924530368714045906254692905679283875687478131245318431288907414303242501489558048083756120848751230952835824129342100816028322203007527133490311296847685765970306268733404932746775919232632958252179799121565228034228894614987848783859181855626712868249813631100849299266615467114930967204775098215826399259164314831748131990534964678559944441030296981656557376070047655429081013880114809106613898697978320285476919911745961726965236956008054271167127257417723723720242740145153378612782560589729740697583093482926065814148241914009327912252352475160011647571481272204081107494420779453955722392534512085094278083406678257899905519260964917299532423446841050566738189068709305975329404710415431336122384850543210713324817658509527445352064936834986401251191381403340417580459287411384423781958470717580557294457703936247089070597302189986778990657957251945796059035771452121895863657757985001170690124255999696501078769329076654279971623368246808871919416648715412143641160588270046513649795823681067161114925871270239745561442254420421441882864484850094661250797136737085605008208060459543475604095509467041081051435334769082820930382354197477425986133220867513932714642772288062026733715781553367338405401426356903481112893631629091281399674907527902382552611496281863677213492984842496552352370706016229186015059709471176388252557241354625130592678753592911963874686439812890684142911181547439735780249630855145663090447684021380607931276454457170770635189248565747492807754056666753710861594855268293276861986634063277933331147373594811792154456914114577596464500964533668348171277388577265923377925742770832412874660754443381949180628918735954467945029720761018140987868572485675048336817558348260471030589961048575863449798797210657546845011017558171266145735417649073753721724077175303710343942048801288175361234101584039133216223446131557737475928114151635501512457515744736357580998885785751616522132271436047703476930877696353915246486006451614833611689024260140419095530907152873956825823201974040272042526392189275642503534791176541350169251093835911470980671262666728488062972172056981178838717339696082087155196468466138338831437606761868912247969477642658855756806035328841315202265128198258266665540904509291518086806300785554545715607182717850239315768188559685825618612159041526452607754554148436363645679783175243815329406032564436243336141508035009671033828756554702380462206130329862294229619595207226871697858886447162331722689993137248256406106652573945662671330775827732561694358015018401104606551921439275313818466347678082151905395582147065041456377590345290980681080317141925923512012578319179517099892261410382737517606074721537033992800680963927898432205429229659152048059030531887207626773251990072690603072341451691157891881275657309694461501562762808539242009316928486725513705978970234431786398619895457580263729465651140578476247818072832040857307634170457783937950661061778691995861251935852441852437696927280864213835805570258085190217192314661411820575121952743672763255210084720518082845553378325625363087023202707503993385761548226111360156211830265306052592673902439741431094190212249530689847747131313380961982232340262617020183252433259021096045371939833215872953306682891142023151467755181716725618982906834022415525606455757847772532561746017792633424441891288180936688219824136000019856723841798376973803960076583450238288915782387266217659316416006273120145343703552684571654838714241376261094420959550757537887451837286630978634524091017585127052173898604615556173751898039680847993605977269821826623405417633746830936776677343169394720347557767346860543657283478689608345291101023000476076071475529412206398877937371529757182076087306805711280666251822151253042778957352502359597272162762584371143336032058845879248403171947928302163268753160044244640367049790025595505197092066336560079191995484076825108157616325411251603821369678441210419932560498207964108433614595532290078903985564610517640411814734101051372646131750889567443241650905316946776028567428716581924982048319604609727882942051653100918565193806502551830217310366610903356649483366830988166139525156807708312149390010482316996291172861235420032064899740923118917323873982546807093086164231639181595305117304047543840008252950830109104734081795817651960219986983175554097648904689220166045774215088180938412533980024609185795724083381104385120841372330831168373941474299093057004426352759938743866909227642049316230692667549281814213799626177707925934940376548048255729210021341487997590217808882318344599017644016178627929947606617432775492133077784215244424447851946207745632157164038154473956735800238708310031217802177903902522522416079345900674118349553303653289610846145245591855275342671781684375964735587089342544169938496207570385909596795988230917206247911444730876110620155975947155416877446940363219387162320972401616847718285433541298845930007925064657983218825601022787124255354212210398445180362698664655530171195894383316802583669170370468688499309350586461625825136752279370922564503781383460871543833195422691874001488102983404833551184469803441520437915647123627311821672165237896349668634687640789761606459796323625622113594444509142333530991169652970691801187438995101086033044857801257047042454952199956546066129900481930377225871455790354605259228388886178354297574644112971739558813901968924489064654236386559190154759223840570930124558848419459051730980641520227505019441747857584948639430784639039634726969031344157157496101311419032959168701225593765559898064818742336678697830492933878591901434042208030380284892810997391541472389974049125141042032066943028664223547638043738111819112272735341552911357958454690911899697691990046419667900250837084064782836353278017856511658834449446563936226966134425851582948685009770147366111233924740835030295972642573927849904011667264048345876167907079078087519047882065423506407647079327601377496155566243768537732112387346180950544117962959429834826400919895287537791254743441384767352013335751524421967536099347732159870077002723688602551995448510495645666621957440518904399248898548802120659925437256405419379446906269034139151327862523662487772793809959299384558810219960449262658167780654168232533039487177228010349005581757986080866028658725655291371610998618810159475318497411396666063433347465003083177202522184928116861643069437672926418249216773909326948959059107963170436671470502067345464339161995289615522480622217428535601753094396066795416490448380075434881270203707962703584956385419792300541723819850542001088235832834886817864587297487117068975020986050818185936199233952240204234643612447114730716063017630167579386534368124719223117467043048133988115180096765015803806180794621356770137911308020038771914083766191541289921701399360039821274278927176831636845224986479044382179797423083681183651185829903184619550821484055646769086974095411317010174726859925942270778671305934135873663844295654474416413926126536295306857119360641260219465635528747791331770210842235151666909283288966281087086538061423113126103706845500109971725854007670200417095618762681262212121408940868129717747616849506890420603466851341504081556750800707022569379307928427414033910287877550775368513178397760599531589695657218158062969476194521740808105332721636747317846424725088189636849148919796672501024098299598331464200703192142322582661675176326846702767935480902886471012485054515009932113336670622616378498174247401831669817479745886621151312105258362712485758430560476599197036640209740934846889405664795803054411228820735887199037627641619634068484259393942929109229775993326468995584828349696346965176895973347981952479710238494024509367006418699045984841652585009706200080817712202544964794825383845993271425841891251590355382564462450956248442654887080966738148311745752617962132377176338203450509313768630973105305721927457041352703802979269784224484587556310961824963557959625326599917363602209122995553575983098303791407448866507286151317026328025542896704047777115160241572454312080543751809959950813931342666385002834353371830966915603930304030258141117175946436447119936484429420616036369869713495881516226345342103649720750901246360015313544592197261925984645336722536068257333307890777705492549621530318449340414483238551004324182179572238984571485348580070148995867453367977139778040772183094097533152888480110064069952008609288219740509420994920644437706929768213544246384547490459615506614922918821885229322814978582724911782657737140527700817757132342358960274576022252595911300930223801034737191475869866887636734259155923904258573155040872474568820183845441612878373376454311557884286716406172623717337934758548409569634060879384226173632485503892254825454033872463817755266896943855697338229497979721725886295524399793677105522464468495668229411146768569471630425467025174125159792861290553259352145250509068999598242813010866391025980451553128612404683945585368565987650181986905916301512135734406010711563504546442222651562624183938908929402420954721863307726088772607444446743031961386505261470680969229557491989911534822877847558299563621922164434030501531869586698236120017142613940858385022139276523891535487582655549420707499168492102806639042012130736500541712884287591924963137092189819499065005655380736526004010315984349148588831902394088258963905666310174712938550667875102931608307128920458849496658241952433742236460038618719644826250988014677673269299183434513755419057682468767208194676794266325787507803450858497276041160520486425782051264731212065431841777410057365996659962374715021690869220703690234061522895603843759461091527288541642679037812790433512616058759360891047021222791535747124369469355850949380130321852067626998442857536521530335570926070255107164770937583095626536357035206063304208723098538032344529293021993970099691640590457201996397921128860017739384383459347052940241912703394465486902612303053971299652158472418353229241738612509488172151629627857671050215714464219247351643609775644968649815624202829420346203642029489884891149365083456202336826954618910696853487711278205874821752525073879852244302832840983677493216559351618175488409067504801715681356602613572151182104975719159068166971033995223667107138942793286148518974081944042446318344180474985608496219818447683908893402621831476963524885423692309349831953836098352025125441928321386698019014100290060351877277419862190198106482934269340869461436375418190418943692502209567264510033621540392424403865868186419413716987690909193341029923216121173328404236015037517156666057857220264842053982209984923241434038010251096613879366296142320163293445270117426958420575770074455748914986209552879985442827061818274505305512958320065068258163119119076743667260968678165476246036991988644850715618684335919643670929846849741491537368438248837822721519579973482459361328577670204682430335991723951017025422518123862570837109226145140912122882451383934303103574268310616113105482924021818311885045616889113654126698304432930853138535384229547640225887522733037665052320322458258958188681468515723446554061739868535703353402905147381794303712231105985481037074048195550452379368456884605960915823692053809739867674094845057067396478504969313186675334238312039240509908229520924821198234795093026878247114619229669027066866160132269642381547522143294578272858685183214420736826968049743398811130644928096887426695396803944225500361661837132189058862989406658297551653855631986046286043871271518393096629065007926199761728573814996337475273544977958763658490456625908073479632498496453172277612358300367286126026595144934784685737732809572433957572014343710850013078448066422261003160377903075127060965547153240547729387151560070564725387377832022141362934196325692122530792699874742229583389986210276277950769057188639317923122577274711931431955091705554987957025422275970677021989802200076712472607517650965895355219597086413244235257009863625623099551135664059302787427623831174094778373235940369568773234795783471209542136644600788379498989193465310775141728570936469287841068119707154909977162607040576705899983166587460325066115618287103105521681477229202711339469932265195461190171045367649138722016122353255435932446024817686965936389652195780786377368647553987747936001390217140631684902988919194081316129232918525734345986009818377929799151646076126685350432557769831851076898005632714389757496539464376169737772227850089357024055922092081580874360405498845840937399787868114194597462764252362459347863868552408417063912491243625838110183767452542216263912354140979862255066910147782796169888386633284140211991127539432218672431816914015924726147138085247274239971976184463812832697579180077709153550888077684922460712731914581324462082353775909936551802948311055046421440757502333801097044090447360692159674167381669271350532184288361801009600123707934921653176343494643789879077104576998751857025089880461315756109599865906235066025742680728033971380349029039883470733195434162499616785974838441319554925384162596171523418099233673395103528103533556739388327090785682427461686831416061187877973450412363583893894938553318199526544651350828925516282222932030863313444102361597541664542250235440840942381142441606429894241405838983799028857035945865739727855136902921015885147134315871937919818498442143457924886709028906026918141729446959619284739347588605844953838534206498698767008277287427480082862558860912851676331249846591000723323180389280378345677697002829507184318915122556157428816533939669367000398393324087661140038229337196316027158058102559712189440580145034902163306852045389250726992081768871483119716611958042942842708527626924841081761090205667880353337427088970581902453987371368327516583056841083942351100676573610706111438197415984464350144546232571318420412018273418992450663106032970443761990622397227067552403372339163892239880444725051107117257718947015056754880407031224103519141568467727437122763776217463783773263634029559614687649375656821545323705852547000550959896565200447254139110558675485470424643920342773229339953160560505064768975136592335222853064553475282094135862855468063043920499804832341474156970143713259363946264488381951380381002785709714500686480425813618971812078720719195853637480007811362272085255300369466012973404522703909071032036548496768944226898744480534785531803944174581628598639196042216856083936891964724214341942417931594423708353657980701956932175237871630645513871072254658737538962616647161018700905774943897081891562960593786436834089422191739511871504828114776805364714466920453512215088071591259007275809510557947569150016328153315307369722019955181972166540479996237221824355317948558130345703265322256721632171157337987956943803944570572490817052377647958244612861906189422149841747916496764074000863009041412561568064460444647852199525024315336376303578432461467202230071508416660707807209200281997718561540227663858438015583061066652885745721425612569784323517632790655870383022275714335314631153682466350296513906536389656966499487733931851050032282846469014967781166946411142751319165489724268717179559740851271641117800265742448103220605910886606297029828216635329445404758535242229860185522227415166030931531317011645344462395682624435591378862905194752537584924494309909295145830591641846160601972512132071529818089676124633717859256579386029138388453968315881493098512549997652654284963962870693312487871096893929988846969138767788972459210951338345330501194647144135957626088046544868439451421599408480829346797359027006557395556235950383362575659976562816273255068564369427320225436674091189349586895028726025749671696621989164135974443517498742292978956298101106184584943248585581106638037795905343083830722713250906686016264498453473005146123677148677662807985906900870138565718647142834896938987709935477803500909581026395639529102901871970622157923594312295331720962376777377113739240492598066676349256982449459824025190002186180381478094083100439762345794789523459340558921830995699284364931642584917146422705139061136721928473788388355637978778631041108377727037036768589085577231111337145420041131644407303785970099548364770833492751037334679953131097978068417670978112035455669482974185939808116309035677281470014685292325676039902065435222301855326909826909953582252805214797299219074997471143414010075967456232373279931890770799569174892995663012747675862369111734568783491410050073331970861652973585900417728127082011605888036047027721914092406601517573650943288291118407831262320098001482192644175606911995151089768851861086081682210834541992947314245635067447402784185508390277439813971258124131176645457727499720615115624118528982459562580131641413907821905213003523826007997097719780097807738005203772064810368256796478280679831292551451412522436635587412221690013177262731142944097567781992948202606495711077433511829055920672511609353979686575202970307533417498313364605518263645193028315002476241234145437645389149396137008205596619173039111116825244691342284576367471702756811031339886996781680969484554879566739118623749882289494484645221900356008266437844354385670237162065350192438475157187490508413622658972225710330578586033619387312702130092770989960367686375963246330619247313173906497564641243237574817757182584897642749321443273796050857947752748983775309206039798341219230845017922512419563349235204467463345579032833619500673688470264332899208094743672272565504756175762916776720992933332547363850763592531107428686089812125590103918070732823691016122458421298892745951648099396051934282899581502276409271098646969457093102808888317208954101739165928242596894430500035314294451462898260881924419029786421408356545772190248181485386343426661526376211940705473388996769176924531356151817504414352102331718706393506492055171165940224202479460919913799437119099510628152419155205087296018320835532230835065638787233521086213192555215671512896737463667802378735731805147000892118770776851245620387580068034359195974389034163501701669038795969580545916190087916822210167035006032867335500479378213547973721492017319210630821584022060212572532630649861906749861562313364446268659422685603217416820035218869793929001250295964323119777119330499993230559295359251471458892598715590766608609981952427486549323465968714742779278940222088953589885140708911429024262817699391011354013569377804932659507850592110684360440879012033968126249140437272429451670500547100008997271480427919810704881303206851715392492221705282515620127233968253780455751236272483027723392504798198013531377773490795526505881839482085117339746004168262548717669741919243886927590534242320918338496076334383588158727973304199340352703547781128719699594815469839252694046293651888895163098303385502038480814776260651123184750525690284638542213046227895181443597149215479708864004440578998919086315992580373851945878371333187683848324921315331550497361303675060122431780080593686573210353952882661207756909594799745736723065790279074900089296320144386468622453293609640647516655697858703137487978794740173202343509297234148945068091498616069623319234490964672888745029750436627338463429272342455258945589988770117130917776551504523854534352657582935990999751155560945367589774035111157180414091939330248077424530950740109559559770859969810509727258668136610095658985012492895037837952652389585982894101808033001894284276866784982061085386189131116979707325425093992836780063960389929852212462906082859003812461692701689157170353508939543083662456065472561616211564571684320037122388465802014858653757377017569122555633460292072548506460995438753539554143041786422119107651646858597876252738051360228908086876941111092548923458190080191968811036672423661566601989422893008425766944956111530086056231743078402818880669353992467801408323019609834746955889435844329878312664024769140098990921450799119170897016795604602959685041964397690333146930575269614940214804682905348397466145523420200294947519125607769229390348157196543416423589440408229527298998738628110710027427429636186678740128284972815802743433905633797929283063475807777020585466356379707463204025462571337548263773422998255062452542913077162411998659491463595058015757152770844668738930568543235112512348375837712017095729212838722692312433363941968698157430717335644913328423770803695991721550510176614646779348312266064161547756087889944603148519382877860853681336208969507665112076743838023136137728866143445362587624286803287468279252646629322127209875105964043538629711838184952389177696564186054450217892615549145862733001838006722042102288540352899529087114000617322869938323872946514379727000945406656647448324201684161363302865082246028982801991428053324846011529813112891912332216751239594917295914487548131526411724752968626880611424138275958531351343352948084758198136407541821678724578888600245434751851207215082856573493409067283344772672273075389725345225628515638894670572524076198464367258149208625333614482651532505123700818485385532095616791217118493609322420121243581421725466347455042848128549492591295539356974195378697339302076156842189155140573601138700102651360177190958011712092045469817500459855670776210683881170671458627367878307544766562611033934907629356189153638997095611649318320340547814645702769581257182417401169395311418460757497204653678468206850085520270432870263722963230922873624334910906500609789546466553338660488920764806243748933841585035740273144848635397200875922427644109013949228978996154359028852763123695901165648783082762894172258443107684855261369874419006424331148325260883278947499600560548181888758385644903904769076067653181243299842713626544154780132571476022362149214408245403383543701234317937051959930174217196397306393934955890684339389746558539166988744669897538796823469302800775278493140597385988439791422178957738439367930910553602865453053768144289536166368730519904261465629437694378434769798521341929001319554162227485843070641005225199732327812489826610882518245507134109628925940534962118568610215340449657506379524653019843098544011350154234862775112998987828055465105050044091892206567286240997600428458446402652798702062175383686272470337760698682832475051939381276699339344144361787326411061530355121306150928332578918922674631516868335530065492649565055362451234918088370421741860741737833759298057014176018200599609586281279337405702726798616538590667422164923911577344300086435357967413529358967756676192889507036286028876098448999150942140345582292315342013446529818752225498213952637372311735875346633763885899097529141340785389473641171829463477878678193218028283453926310364809774416262199446882434193335009365372489856856704906050173428905727604731833672645249064764294115732200707229298535033947026072826235648330007942707241505776942381974728224262353494142784499004452321772520860578351264643151830055612938541145598504423833521632728055732021921154610796136036494871914367887112622377659865514363921665127670888108222992930139726673097483406311163016867148455548925874689407108985692859400826410256970677023251534474664519528384183792560782476191068674708439176251042609902774836762084196361355546987413650311805967893643968784233607019866767168846441090885017265565956118301171071200456726091190523608101761564595794723201858388049052110830680998515598192145596929424801187074344179363925120999872069254190846663218993690205580809667709692562081172595793053680312490994267267049710833940846356103681445378971061699281553961604886858385493149956150554602656554447938110508436366690513838157176615122251024077269325231604535407160015319543514425593941299577258209183142756053546651098062985456111769923634000418058901514496276534529813448567032262882545157412287166798463433927273727447857352264202594096996883995092236942526318440240722890370108386012507670142388324188973709582331087441465106061472462011800260677185941059326805226517829252038181454822254078811006661327102214266247497815667417099752549816637162763104499696218223345656614046177206368066039830497728912973876097812730431435763644539196290276883941803504878890040861032544320360204720243047745512589388477660782292126249783694988012631525906069170426024151835556601878180486511191919592984261111185618304911752771533312248443894909714594359037891321325339416720493857695844407122128347940813291896588559960205754048720003658143001076265207344990394869693612933303870855130332562378822720769016547200596239231198579982397592365878872359851447276371196528466464535214872660318868082318162902860657125943124910600968612087794703328435984381765338983799923122436001058711994870501401930009717701838445918677617022513639499887004605767388988397188738176561871990334108858057929050909941510571047939715498412230295910465652912267021947142210640027026721327842188821514009286979094643808304935262585119950927517966298637861810764823375087256552105830835537111811015089397673825003946223894680104035324547104312270997580521715491201321468999131502426063968582767967057180240209655745692156852066016735909728836513288122940422385719113122388251168969387890060231946427603746493738069334515302860411347176809003166277862076748628884908538365471286278664019805006768874519854996907673501017479652781898991701267390742204878035144585421556848947149425734150927608145038630121302604204563829569516529671130637675060540632443567357497834244681806992412801626675680160896374387624994472086109930419533474934641202863052711049314683321310655911487480188576992122597897003425651446713380316700728950571899220693322762771572447687041140636111398427628545793736605370700867001116221713446392073100778274769702965436313357762840126028020342685065161309132419132164019806760473716834654247423469731638233238153459782381527067207995637549680983529638151423084613203678085100614707002108451202577773370199390272372119584292422823551219644881739419840486675957378259160924650779298227724788619860507883030607960403523067483692383330401912113542516039005534933107495828179642345372206669283344104919229642323652840978324664065794281399265129907377761569683541418230979344618263779183605412809699141875102779292474234262173310249637895623346943327390516696055372867374531121739386654915557072912504827694809525762476203434864947509189468314409192714815722737600053520986305982381693063574642515302533817899490608993690667326149543335724982841242876924486472607347176702710049163055355873134667456197372302374428617936840446768059899332921003838997909500331835203308198804381690176629431089940884097197527302784600496554605477695392368683991753318474965164295119483015104801853336609146380146779089175693656026537879253362003513393554884314389080970750233803153162030515880040415892172535791383498538929835873253428083201941812278015904776525164520759065484478689831738726594215638166876381685271163282591214652677718424304691183488152738928404662823634441923502697956532327181290788241460833819035223145097007756142366834494698788747540891128603518459710370717780225155180365688808537018776387434602262971805345596308092335649113830569820614118807642305846974268379980196729353161255750470454141113490779088169137996044750093054882960214697537636471114925406616968608296033184954605370431220912745488751561069260023524948780155660340581995104922989072657850830015677807926244494161662317175335636284097931101843416998438021091424959053787864893207717244224138919385956735656734320878086805877027877572413446383181826030431368328525703873461885773486001712193331801000662830137034936113090362816900335939082357192470309501174452049699906464795333924720339364207890469451136496928560326845444521907308247340911768488727886879080649986271398651967167958764555166286683454403632760097375570634930370324972169271527981114112486188027144267103373448298066427256546658970135294614802169762960914076859792705171375073173495862918953614903749366821961481886214139749808069615253357569176654790390054903412805657838779105746687185213367162985836476770354760005874285494320269348287631318450234978913945037992156122249943771560284624770653425458827857243434869293308071934225165840860826825829472474451707734754987037098557337807473830255802631835764537933603150283860625326222025149348758757144065934009437780534647150232951993460991810456692010101155510975969514392926617204251748216982261301031267844945379755092022264762154910029343437720885789978621821524733010375467938983427687254853167364489069079303102838478023366287659398824984531454951172709718932349136065566311349870917413480391666385367947356170469251106969808014549117305663811178622730796847196783036096535428359930125187335268209720834749219096864632827470371729892402103696440186005424916324994964154265808735286277768099712607062247592900649696629562474747964868809320092327863390282293828238033380161253224414939164967440292615647946466508555662669037447518291923580208006235230081122877382030611203062198725822132864155348487139747953926416538127046955348290572705555670258772635507391113689223684549183654783238381260843157497398394332208025625696771624769750605213162014776022227790748003877631932595395058506730560210162206873517498120069158967803567066644693107464774884846626128620752913463500881518133672882699759705842033622512104942136667368116221013302633689284695210209910656350884516692797801259014413295872814943096966217018714128831226070727959740351504680878414528717102617070321151727965671977628978071759980624120124643304409441169490246896532677657439118059418364250411564510307614524716194421915450160886256390879463528363516505850256568211395732304588539658072396192123030958900855521935378625325260918124333723816660881631667559447697665474805379043978545631271937147635086771854995313490228506333661791357429656623260685217249869622431184782344433836345790103868360708142527584354894856353774997394462741821489487726167083445393322219652128568064128352982842946969364322264019834133083179017905901959770232987136390641413243879778212395106152533676290526191215401255677117602066609670445837766745291495220603484466063765562002336801743207258131463151792822844105751191358639022592859920079283505333927881727935056202483723146090369251821609475809081559070642869369027074713581555901943159646207586124496617112346459448548903086002820582300812935196247256306445259711787677400423193808712327809960343453866986976946146353684785785967460843655736671622162452387644414638643049677893022871960616967746871768598594186659956130791740465420622916344251689573851919692036751977076696113180377378736600744874709389564058700758624723148914707214855807614158350666064838315925139506722636476482515017578094026888721008871329415047718249719082520207085882911164641137298093727325344891957985401397225431640978021786055706235798749389599189166489044954387219181820351708683005422243990025852337134338823241032392752388028935350720048860217184056347366988058593132065282826486953849599894001299695050164289906810870505960387800455508600574002829473547308676157195511952601773212008979877662307542653789324642452192268377089120702634136816186603862468495867918320767678001547368195047823594348490783533229183594431809143184389254749793546100310009307900162062440172748383908965928883795573861252579104590010761422787137647319719966667664343548908776424135784418883508005595520800209965113746598335513618460610892608273791489793306611831974117032703034801085265084862460913774700907599946683955611170407759585751044401265510668723205267850177259134629174343870671913129894052242061679926347430360714175931009732771648788116854549656588277159221794091498888839167902756154690824380949458115911763246184382955560009793690847013643339907267914948747390974497433233411743303208108793251708070547884896039001431822931317867218756400891293948435688372529708199774622738766897922482998372491941605245936871495081055409169289350785579864308815254156885499028870240709144475998976294435035124032695233422115142025662434928586071335851151082764631464162423204556675549327939131462444378840531803247932037392337480104290763212533872748131035039622767766666714880004553684947484795548880121353028321068460742355370217466918462441637123951718974288287309903060497328995788502888187628164660832221679341224868348760344410498417717376306609772028219644438643070832029461833095472534169584894925177304221351760853121103334187666932126931166809331855483453283704198503607617067054935177903031962886029900618632391479555070379038767634605106989069682789207094652500498801546349630813711724171259985150099480387303345234361204978734158204780326564596603068572358988504430736321413291787213788737291397126422998366545193882614771032531075515259044953912882643268780745329421874495840960886618265128324273626784253563281613919197778286316357475273656042657430582557388230306410572066309872650953140601468548714091354607111298467879440309485230151931668109328965021952690103299756628012162590867861560256795706968263680276170640500746419864203494735753313540268508667369146737153192110785196982716240177761216893876489723324458164601104162837762965281870166374954716237742441124439031299042182646756166490646282840558433763741187991814449625804771449489825541758447166053364997493494059683014909630012727619588370681926271505163634649526475387469680297570373352052628071882825701648070795890849193429942752441768388088617899933418450499712477139192761642685758834351864989038124464324377138089949728886451504319344490649145627035241047299629576959468813009787892599744979650599493883405313548720824211773225555951794644952828847434125607375949534617459401692940638017564656005823454720016324156687487854437642376439148470429194179828353201655437183839733822386346797933661246227030590419122634330345707951510043917832581147762843559311548759074295509706098503230177770242856558171429727209007101144729174179853439191830705673389171466875164617046697721975910235241256393533466005304727534082825151720421317827368267346605004436526652013126174655623136687358429613993850877292589055597916647151390787105738159706120023286900056497723322306563991320048031819126066792336031636381975538791772325317660211179542914365461864360627758212999530033991707763338764756846360221634924672159820448756853584199549369902832799676666232451575227351201930774643405454130534142783806525562503193162357423218529955510823931102824050320116272974515316569142971219181388758702632952973609658919032467622864399511171367753334140356830095549125206025816403264023431243923850538956890876636260222000652168798131949046451280312880702736371030721264834641729469034924893514335360261468167296100679651031856508019497068277983878681512119503680963794580623509978605578875754789031705604890285183729716876296992260608346604401802016561817043195587553285016912642198808342045451959025380793863433589770003883649693025802999246469567410158154712964752514066035706468758180489601377708750416372840022198488996259924637514455271841085184699082030393184319830942166286580312050375463043265212894230680802455418687667457584668300319904116189313962720294490659225339894957556162092622276937780374498423289433620894484578623327576728378446413469895405664528943856354776274316467057510303214809596533489380225823800808071246774871032842601590820040239270157549911685091202086999652466275771697691713129207160266302587224629307760669453950689302373045306758110729018495188632866752581291873023298615268408041290354094452594622821702099812669765916453489051449508295772855682322326675159951441558353188000910404632503166866058901170157126999756063343020885569573227792278572196746320855418120919381742744225002941623819519333406808641390792998802767227682222559843602230098170009283889985533465323052953324557579594095124242947664303362372545629311155106132237544150699529001953151486979945407978176794544434221920363777554992820973153467320395155908210238644877618807052898798764021281580119097381233855690199466618666378128602600759464824204651994768128095382371766184178481864583697873529373047305658995040944704414586471637546051168293035371897910653929112958993738854405736893707356048317324363048280039489967412027310933007878454866889519291959302021054746562131925703211224925425209562799494484761259407294884449529369502307356494149387111683143406548320729934286860397457510912751785466716875458386873007538622605472676068241043539237032781008372165346140627107683822272585223635439107206658242637696297853284353007175170971788447199445049438558100125676728949160364820040750922218138279561470049304488112807474819343368527808161435812184705873048762341425383722644022033421815729188753286809300331240200340088860269746059162704881936260531480658164556881833202397531418426988886417513169027594676972680510126293031877547369580871810999300225190552766232862456480088929604555788265750177723525012464688700891829473695283471553174918547204623694848395805540294927451709107108497962362812034694109766993693612921414477944711258863793034307810160043894672889165363409966569197495221345108517020559812367343630763711625335020608728766393868015226841984275314420480895874903528206525747307027935499877487776498398212855184187909081965150268059748524022582023077628929691872529566379372681569440427460571719467100802837490817724487575029858462850763100406692328502156103942710872542005536719636551046563621154363969511293512436591025524848851305578335746109424160776716222697681483296981637205466776154977081379514004786208620260025561481256755679876457534330307265849977398957585567081469223915378048790229521908979582069050396050365367671388943426198468717760032836543900275287518420268574256726495324508522921730897214212723688358595786859980117940921183902942477684919548033249648298996741787461450651758407392126331010982341004714481455816710612666400982132386126681554406300378746192461316483255280947132308095252208677919224306283066371067836954884298166789915382726276834018763809724362245136200122986033152306101724919746310869728523281831939672838573037983685758651775486621908830095972058805518298498943536857964092324524500397166122067261396431763498348488673291422960550508672077656422334908022292338727181114870591290384322167278393276016806416576391176119039044967352679327396990767207370111952452061285707993003388608512557650340163207918224669844942902630482447841594805712006522930052576260243921632185807551190667253537912106735489252822422442618024687060942112548649479127531710610119463484517068763223014036447993612439466258408244280004861854995087021526391570942762910675301661849240096360444874801313640678950972582585176219961276730032060711177347467952995865403392306922288946980172635462782962996675468038860788577709114976354864422610564446696077802586152673182915653624863181605754574556478275626356227972021875112475607967943087405952058652731226360924428187249031254123725675924431836162547345631323284675198268234859098991031249753817965826066365532599188093833749976428057926214405583658433493324511773074208895854117106100204276801914734488217231720751324506989263502382152291752354645479609583274986667745631946467192610651074847792459083435955932252989058203511679189391424369809807132206766117778001704531618007802881923542746674862279937430471362675206608989825659525675988785717943243068326725772938763661820595801986571717662113701419380642520161837028189550559313114832006732279631981155702434370135532505421125946898955123871805904671635301366408428331307520736743354764824708820939422170679496451799819318897710702843239519350383813657235684274051417884952916580068189179926327704464484486796461801335534402005906340091965985394512899791513138436565227729540577387834303613234757034478375649623182172147788033390003711810287091895054637655017222989959321484347954294549476004365564250195023381084026822769640903174172779073839588482016567046034823767342441295891576364549496396089883674932048639722816088813106688890613595218979877939033047818555631702584145004685469700187547964841138826676407886384712207108281690263233214733417826596062822894581331362688812372034826894150992841001011974629589611942563595052991910602990401960267510998647922615311470869673322146129757775225683121721805383556609850022964596682120870726725512943256153182539417737602303645341772365239407658411348963758773334147346503812436600786901572747481891884710676326691016055216104837557347607757871300961338059983477645004660763927571808302279233667032577298241747967949953158290926798814867965971243949336173070369102188232729246301094110757780534993390614195946360960376008878174532326241872363798641789209117387537287029728237502543511864089629333963461255537926440223142296395036891307668006548033342097499820282008684482715257749168406774749011853244293020420998527589410883336348692758081548911868536922300038216288314505393698939726197422557603402596180596992838940587246771318978590300080415228815026751189165061156570309560910705540071364079464029424693389603308962092981712305318249809085984326292930038158425246827554675479378394447242707864797921569448567462357780350067251402233523571421880301818492330191672730355256414801191175875926670834035763474284817781086103560817949006188634335479105550567751470634127517412673646173011565788759106272111769793304162654156083133087956740307110916371849159360510714212438091570635202792872528661180140453866207932771443782895815517667278910812773941622733493028307914484221425471859902784209438063950313193089423043769482964986330213015707279195620352479995863754981854054257448470602438980659117249296347749389660681191393707918223804765585844354721246386370607406852695859620309904960723109893029386877862172797608448210837630209075376991177790866528675379170949685881688831447512115607048955448099995345698607085262081121790646911961532729181838272504599295395242075425677325568526995178043520776828909569472611874732369872841971705895774022252829539221889127894925553966955210021681366199394917801020255213449796490589164119460865873890522318546610827894989827712503644447400245313092511180410324812259320115823562005762475503666116478958591725390319952273486471980691269433056633666990216421273964840049350949771747937968823108920245719684900626024372229097019635756351832040876259030876159183736847851132129162890133237996764117604446155299364044360495156150735762979813896401097347388742695544714045693415073722516751532936182173879904199002783784224133514932464955614864311394361541279411283286324527295004509355649987759688896902934819453605628345886185000056965582340038650288882121478800578787714958327758817964066958438269854371948346872505942633224744724498878920394589226842887531666760375306153929310728179171209683999880772894052430643527939510695469857388676398641227563055841046370320436709166462775620634430305573880905483620591537211084290850936414237084802472945530635049396799322573266635791249745548387903283426024144901974073080163151094560492778553694319016983173574067454652787623459396719740152150297004612389816318083500178273811547281113215646641053504520973313827614575770451306544680200689134877774676410491064073280838040260951196190760566915755336847612546950331120268595437565897314492305068156562397697875163349350248806493761026904298781696119114753667022814548029738250652372213195546383935819520328891218019956100322707748177054777778867373862103375435491849586283420116963729990970526469784740246169346658147191535463499463883991678852705043424778104099990029648403440632542012054039462603750403400738239543562130546856302009995648476055827212304371178784413617057476432210362431647485396526853243572314344421175990224346123230133145029953166603440582289469832031861515167170494130355177722112585002588131372857990754566087204591050608887849651902101049025865140552137369268747380396382399106675733156657189700928445694117359339049237288401734117624715171088069870406749332330089056743113796435655767895672213825497762665107182019901667902570064420638220721557675824648460880098401495977370184236601458007739967110968225563455565490570169905987777247562863296471251061305426910122977030783284955767690857577284147949974997524753243866547046781962375448425786149849307834982576285072204661879790939668767139557021828718928215215406038119071398725212731856764178174151233331501052815755053230670315568328104128192384996794145736277760209659368441402247485656186544563651024447069508588989209932414322481439756076110924171628982067269739395270665588530196054699937680484748637057631697311226139195703770160131772083689916214939351874353055485016087199195320974290786152427091389112792708804240596083664055068160001068747799997284964061728174922031305733074560447369074893028398963630080239964842123285607716384905763576104487543586386229131356507354691027380142872532406115678342647297797838476357633286111892724512552609495714189350301427291576736742208452640720768537058783802382135732347638926857542692006937543212759451114310910237519279835379300096519457001724557045489463570105435559488431693485263619606904716817858237845395968955259626073475145797040824530230224859826518174543743927170991296619858797304085119372421366074925962628324454256609594511679082733176283166459743976992580520701747662168704426505548467257651815357763368159110567205761489481292372825303827558820241528054235186715954485248884747309456381571425410672946460263925410293735162117954544562597462057608088907639962680483501177905343946945149824315026079356710702666987026930660852152286502407245855524532797351914020120649295323561725291065008760088677102616217416674043723984045301853658979221569498602524305799476634479662363918520569468069254760551530547779919006514039086287586335936094036021774329373654350145852235100331138825225454372572915410498604226343353659155977060658956824920761500871149220637008523021608961119554391523025152516565560433864662368225384199448555946887620199240589374653842170533521610253906575881491290812030814947293779387695594906537602702470222649967024573020976536148769958440629386527046676100240728717935584717227853407142932955804162636185259781001353816070072673441310539159239767995242760314225290768862832499868687000413984577963983387187735757787415220189911966413936195259525987039316881455050898183951483091176717152017203041529368031224522961382398994957243097820578904201088453389114700054686967472550902844821778787528053951512749226401952253630433258202788401541851936009698917473870450659272056878523958163368695894480353032726842811922293429363627951169761078529377285331024499239906303286917592744253405955744494074023415522542945644301635754343899462008490602800808074000650255530395367651916884291128976523323157445731569907112651295343292795728705780956445681019959797204915060540725589295109145097000840933399572706967877350278922932962412341849089170555890188537148213060794150667042895708143818209598482221987602936114322552544217448642585500489163098715686113806233176424698848413618474787508335020233327617166844295773244025317022649922659019996364094894474360532908302083827800457830558146556901430866747598688228732024870021402175439012282573868314555472613675802808001802247063592952221072595727294837716848663325315803717402776760288816966081048298574809952448021118361687552475571596434793101764144419790448058761359589211309673153439918795717794879827456377840430526166843529868442653072799504166405385358711518350427540290054032943146145627080436509139759329568339938299270904968066744995653741860351979872555279156015651133390166247071278879504631380010686240073970357214812930861763965519896478885225122772406928041577397588630865083354766023705437694497158623786732158312878857006719147119382339398249249437240131389414157892508619854717379639670566551817119285401293886154102528430352195935475554174482638989036433229411070458166962042817926695469277034540955794293404692258309112456044361080826100155085724104347727729599641016983828009023451058131844908791282773867214071620978621738834687155966809584328614181285551255702960833281219926969797873285842849534265562490766695925295343021522732870427614076399185259775898525931463244981949558200962632325543630338955969317887360547437195847701574343241075523923275276443934545014244443117750798219607301224141322512531103588067158480921352958556448876436000976124243163767293406758553926289735364269799775676652502303138196064058057604270949115424178193959112673101435509132320055431878455418180171217861817741223562167466556512220676175945686470550063539849581337691996014124707046668533358662726218538312351125771925858691136513250244308608635557644448768281689109510495790402847180430351391672399740543720468604758438688161372688473880406579268253883730666358410735998046954780290780742756252552729674221490120044577601731324704754107729039010234643762854088455725628967148731637632830125637214280978356933675453881997103795743500088160642995256561430733144346219907557749808200574956393375449498693268308441659906491472366326379566585257755532151501508852825023051154296115334237529581787673318146006721034528168450351857511567997832781048935104014135749473472290975065748258277964238246705167215194773978292969365733064040899188413733039751101454788824910102508012523243678872281622537547789049102199791701104876298968963113531366569781938102851292894774261679412348061909584929106833456542413649410664604778300989160856342236286157581972873046940442095413791686329353084964447463080845548661986591119196163779918017210693016789709368208100665140202675955218877871190452900155482674368479361576328071633223972077887933230540770339301175780968453753615146310494519802664945857681959883355792103727314159693115515150953783535616656292692329767181208847819103362407904324740056836543472613471772810523530637944126499397501463058907035582834252545647604076848319096652539067909480071746271092597437971834718686261159419603700131378753294927086524491900728010156749288345800503931941648461962149023036158404707005876018788977692353256269375913022535003577940179869333462634006646513953388240801730793230275506367497422900044956668998887303530150328567476177663427637075156642873369455711387318389098330843370549086405831172664864546519120803540794154814851229649215728950372736699616676289555299718586765344394248651432357461768079165908636299480569727840649631740836958353490183240278457880962256704649748784338115006536209974362314158044431607588382901613172237281836883847911441621797342462067609144168742526427820812182444410203821253057489295451827853089976091158725689206995996846109941925650554483089346506427413110379632324514233536590188529330327523663429782874068557651847709369116638318003854653367972408233245692525203346323724887233234845255779838797794411609921065921201554892057415522067388823364757459384485381422273364773074807390864805853028550792724723087427118894726440220418315095865306852832700949624101855581840333226335050745823409828947311122788949600896817787931453780197905376109142979679627675734899845581422974166357817373407355665929468787840281353964987893096876842658018848646410977858768383360197375767048827061900789914098079536762552552472508189415914910397441622341314869103713632958639978032954753515701564198707398725280219284756204244997382620829358148461318804049803372906798325679490119443912494839204351507441441211810140772592352353400647441282134664799246640266510501428246155727702275092091641723088188471371084955897940654469872157007995483939182548075534613583061034294709674689555115406693710918301819071629279973123903355904057221428702714027977057383873628143284374425944588948029480338079051344942451782067895505676433031863182198028467840205465934188238823667784609000265155566464596201940384288961565729331520714315813758899696489432102819707778151744651577203549684565217648126787996400142687857858335319749698077815381174124175073566755817233132305903607641075435846645279545256361371307985735514554591939940630625151856927039127827215326542973265420657519899243141885470329578256841038286625372286319874874223406396599291010073015138394435765574915028660579756896080211092890705581983487468282107848273964986172170312158133852929893463118657429325572462384147874989012341125605636664480525442689463950449008802889329506161350232233839295906249162043657927504130195591168541117066492628782432806945709429773641608668446764032668065625204592600202657075979424735176148313239810538419378367769504746777061496229874000057220681271042043445130169117620695342888290546802051212718424200742278195630796917428644740311822351668333139116822434892187945156400629423649431674156633860821864002092508540766287695148075696297848622342714396595166233438640959181255595538804533791454171868289354068056952240465114839282110823286783762876837963000437543553498625254765234682999953812807813365159934670790702020248095294836606061328663080775261348991084620019085163268224698791697973832804473301516238433522072541497069285206393157258075987714933316057125269557124927844706859357837438425290721892967768125403346608456118060161426507888595265560005804849847779584147707740756420041476871825115357047246252202579477577631647256670799518771941704074538869355929207727107294126441694641597922110975423644531422022181003264888620829095324322095581649068307303972657898626210619342870348978543946819695681244870371940265930632873156532788359249549100420337046249158580624437921271590685968775236838743304330587574724473561786745568139947746395520691855793904790174778952320321800787813026121892610754928058006431749966121530614577901241197476213787476497268058871979064479026336025489187367856669647824747483717030572126667463260844602198713124246282250317069762514150477760977310101356260741075492756081268528429974821540441705071260679566760392653523596391982649779282946170355986748747166291820969027541498059270985988906829870683650711031110109318097790217160820500003826206581874457214099152164980934210033940774411139927644571054864564092638659617521088141622497473301069224370398486123915219967759096769229825048249491309796497027681096081904761224071888969049469807369200025497706643261959667728192941102411932107578099970780661149916307591025809214651253702939851857867013896888909322843870358643961798562779771879206551452510242782587883667836183630629457757495893591937279483411699645331191966593581502688849568657311533052309075367917781202182707747412870447088776336387213416737788670465992807370776339946760991405542287392914655873631394634844897662574073509738114145151404711039762660086639897773340970567725923969392036075979197562886639203444445276855234429920674093175299747228409525128915261450977333390351900511141960691357212510603144538643597205758130398997897824652568811821596267320797153597371334061555022854305154848679591847747100246104250456714278876140999958631675402514757303052202073760675598867392385568383014214710992418635907279843877635619203805940009060510668729578829518887992952547471459671427036084444981697810374197302241382969793575355869216790807355881519641506591059110674850983774848261633697562269335111291440505240794300248883908632534410132731620269460996088156097932963620274906958773881468345298574330923288930575855871933555893424794571624706652893735038690766103259662014594989231160098781098449998723029364327312979812268862687237876936657410088057404114845416564708056733821057357188608151972047569845758038748205822431811640746222274119967265307898699289417235744487589357141385779862010187532837081344549377978883566320792837652002052493383454866415209648491083493815469320051887772438771810092327661561761954793834327071078518488953382496907478090879247928545740118926941146298525976720283448969707698696148355028386099391328183808510175942630086033658427503186553692378667672366978037061266819532385485971440507208263207487026189328837450632673064160637115911131794319101244340668426206458834623589099078897395994668842461567486807664033284536999150040792920398135503429022344782861966097786743074652817133878441971140082000274674006329704918453465696071388053553477905502036298282148237876243283927892796305586754705462790969034369939870680550659895369959526307255819538486552685614735847496422009189508143937691796802706545465084039596813287213646286660090084154054713473372344642657284504607069716586937119564785955266037002939453042490868321339280173410740128643034674193198943478234475987595946365950329061074511024349236523563521456172296484205054885322251636368104894157403584799501007758073372816468886885018064785305935661440274331301832671668575656793685589091080863367103185592048013801317960378806047832986417929869559363038159048843156364561798343473442265325752723624196048637278615587459435636049504330710643779542009711395376353952398701907326453680786800739888869717772137301801501119848360042645287022712437567070664098427758693461328394411082818882003788828168620553087771481091665161641364714849209504740192789450777805875252021372847601475149674065331647571202110893125563647759116438777862542647562850397169968901555978761726256231478839546240122518225551876347199891836993086148426870263111922177533888630046932020843270514824766142484415997404398625963777295326011512534902397490068102897983536909208568069446233168226296343518672656916820798003571224663526317223715633609855535396093861783653579825176828731182752362375742134014720240340920327517370070205732497632271829705518393457801459023512927155774300678739035302327503935807654522881143570884123819539399182892056051315875104723756798475336007449409432676794136853242199804860796055752491226372298545094580949453335830863698872689388375229674828021545098400230343743672556425814057692551171184460213239905597400699070719302835427879987788178086651095159317227069024985391614357565739672984905100238369760320771093491244059437515457582901447189554165431560266719113743743569283790254318594993501050274938697352312202820101084703231607515615010619331824220160706579770514915181959636032643381756540550386044150012113787766874477911433218487341553454775867196327596071876400768952325240342695237242000273157715234500581973920819641055934449377255430194844686865552407785914172865769620291856038333187652763054217908638757230773250174808735324397853135989988178612302760661303640220843825678710542876246245225041829869142948549160952492503122832795584125570257781295889853662858651220196892705928701733604697609049341915741652900736406485073417540691836854872360439267348771584334919605875140692599464264418582467440412900927377582015570629277740019228894796825278057085198405750961885233463897517828637227839465606121577002297145458926607969788764363247667051187077211623772254910575207160131058219497341085243880847229620077971054522665287768060123932707957031812294796034068799256929919228940705447457837153010906259705089695852199424577209120495884974084038916797209532810109572217488847012948883050800929766166078755226373376656062469690373991750519600085952180259954067434358324926935962873625236698864258865769794142592367051329806519194548851524851572034215029123431644816645843107908450615050007300572785745838888046063649225465902449026285062353246346805080460118564795377077500995687084162877292426083641113356850553813946076376353581557982135438134997993003468012308164310992139551285065614775817091234861715133872092063760206640549567883441920669456807884233338346252852673511399578554395642663691767086878015664510745414621214222253993440809214678398823481771079281193608652433222355436150429532712559482454770770737576705630365397783798439354324359528012472515067462333999179068489025993592297542512687640634330350011919782973764303215561474721907031521379543556195558809945496310724931196691252301201234727543172444707040188399311003527410367903069466827750648625160974795883588905742034155833956082306847176433104754331007945466102091609161885992405360583337317456888790922180803022625033289742163291049219316729691003857656447454575703460752849132712761994415306142962156384609596104464974635548467319944455825089852880225825329541161784300367323269883992402385196914552674131635914806098356851689663960616253130042232182932665414384978118452836556749350836699497815717057604376369101579889805658990301363437441435699575599188822863562566102300059476578554477349296342042482319420738143119506024895889304037905135292622647354577081529339516007649023447148316416901515911900040905173132678590870765581829446939380030374399002994225910737236573336761742267552557265663060415547829314970538474100286220431294186401839538266111946281206687898315333207017662677763009802201593314833781248911355151867852806120376232171730843467717900783847499851643095967021704265502042631765358688704850010451622004563706157664373178702841754622958190914462965444077527883436874601238076249056783430919529387194542786752269089106108727400634622958841917967665189469422150459898199942453574747159945360622912782663434090454766943638803287700656605346525374835980014224924597657474839175571614831295722109307218445309061204390356155534984617599383080873687421560341174154121704184055305590503988742357940631121717640438493654655135161051374719226869156315367889216222707413048255611127355172713613109169933092344383132840284589145468867132811689498702557910588230825924724551181940404753918231405518040232172148933710849542129409533527415825040668192114769482166932451994467454000356351849726652627965299563591480685330724495325607645447334389383543301335716787195758202575703445166864497526317021565585541979246210993292191817963593399593494185047082833901252344270896962488139000138346233959904242390405024354434807978829568502788596486670451294875458017479308447518315343920254111425026548462108452588575027894021782312164972094984228987919326163734627543792227388248799711040142277207332104682057147963345977743437526534779365350307463744493200048251438899159528964653656412587843915872672944721343840107488530315073924915885515187769699965789903341173772620663592806451997504242393522595216019896965717843002458265673914976524213817596446910750467832002458634241510655704540381134883108232502944685913575539297056921899086882904146789876026756634759834536787521485368570457014613099830773957270158109158817099036852825935748592089730176936183868883396935656246192363254517457632248713789968420384758866477870244975935201206523091019052643275948194623351665956918204771807441645616995351748261936885316959264341027455070640919058553932036473741906899102418944389284803370028156689383770465575725958606252928550134809905073482916859133164855582061519973162307293090238566674545843559046072059205181307063005360396198294069759115788472436237612842533634498840300620182969123342049403202049317217872164854574582868123087981337524513121855133055490087379148750401100458566698938018738976414298618505023424172285323966583351462775493892668135225873348761619887225624313005209064138618958088810192338721016083806763521884491187087382524452078347533739554040937827684619405213290704425332996637647872740077520159286359267038328930298767679159380249006857722021387055791086713896436623494475653912964818948735238770085685552131419158325003069381678110391385270515874014028817663393828652861355038402608905640170451928675977174998219392641891246968981535385903778408825272194946599172921420296375083512908776211798276145769180866730628144779896765905551010856263732902754575472684368752386172672437584138566315926334500627668902658458057212513373554948226249999293898445217250961878064067216400769540638305481130978623910490051487434844094194920862992623415598961816438100919925109691149494061519442506387341756260511139028948512132932461299554144697332788314549162683706995414642834160847261969877960826816305719595120024453078915743990788463677146858982483146061003151039125649567558182549721184579687752409634414594880106384336736025942855892471736614729345034729400139858883620675352662209986385239901584263229192558499211318173254643778734779506667533029681227105514945373190141508438308841660415145305837794039214721188242196523942666833356233858025024513358962311619324908875811134584418034546819586925604480264482296179222947900610814981627859223779363285710418144144120637225712735511817712694589348690422474108099976740298624667190938717306090974986437502540423757574322251974310941585676502303080493467187417170052781357757141434382556384367557566103152063859180045177036250866094779947282645995128972149539729577472453494013428840171485509409309663836512439540348583255800181626221650116571737032067809535515464778004793575979328905246524075036166680158814367177208149696434106060077857737512523663880174004170149399971092207369146904607163309518304472076726874920349977724535891605038496499004150472886842997963319034356693229533726064470373378114741437954456514493804836357188848832858432934720003701568510348278848411447619322728339587983425500097545971578306638379536477228233241693168554413524536754948319374306499388778076793378338396886730585482512779972004014579392074882381951681677838386747024301559061765484366252662116644920680252280026123190890596295992745435845783938608932222066944007636624671783777661123424584574345018194734721234153665884244495038069904473952632068931806891708699010631714393635080061084829136360500737760440187149024664593227882946610955457074792978742175059027519434886835098138100719028275993813951924858851325791574210979432091113094144345097465330878340467033486158717103991513661255051051368150111780779906713947291338749509832254613426788898699868219743582581035038538967513247062373491815557514433983968638776942849900271631315050324988208279282740012570375047274851730364715648305147550383607974842720297314147144239485417358099766415935620535718314866659192234188199866889190078743686509781440405589181134921796561437220537583224632853624082773524464307120428057283979910441564745939652631854153561451617293011499185851697164409079750301393647125017705399088420272800296264344936789937529892309487120444734345178589812021044648855788173660495187278550017977258221042202434929762856578478508589640535590994889108512806308131928675194953944248665816680234276105466609925093469147213478248812976377489807330301018586527556266187534315620351422418345807381311523909570823248810839071177304487978076126757894932493829990726236834146852337460835725730321453523559069413933307599734400031767288627989431641183286290245553622372767772995355751166918942438803463029964172954195125838908916303596086259095576296951403743804675680528444892201780367418770664184840286530158094297119111771650175628364474316584019939282166599667985411075786501967683029542926840204325606046149736334321861775481882282714644272689972067675796248408424635799863265631387331057040555166476912573777582114076580374508516896916529523983117426256462678807538140927825468917349434378767129815835039299401747633552531713497433334339392449652879701019650289809285543276147456409230796691090214885684880512973907064746087086880390868043245711392199912668386886214163994786552691437969239533677042127767174310793553838992367149946182306212509161749291710374852412596139201025116639117518305839592061178497883537605435176259908072177859208410977852074048197995692273854162942484647442110641286778786187349508742087431803337898841176392732179999704004074346418068023926289218622222618736612748189494492014273256852285235479827859665362038417834100269780652994902603797459547356304158482313820339712560056033167067662491144950566574693045893136506907843393236541705574585048953770215317786755811079063310880074891628224360428040486138053196985421079395439581894927737295813279943414775232254897531921135255170642596722461628169877648895868851058550530788727785706070552980916537059150255344985355459636649189419120540754529232759350225843009911620647426109809177235759006135447040033326854186192028835030940205129121785344839178754578718009295360655440859726258858799928388426184467778840270389525850711758802442412768498774088382288906675428325081590097620852297745796829634687627120134015588672105803488536826954066664808672281786637134162589927139682451099587201351615422038983199567794437394958459073212998837078223435053533794315718775420612270964352227804973000888853771392630187713941031090951646155411174197411313336326470037821841683574579782329832243010728429402528276737715186650000814374013687035768543182216688176792608928835177707526757367656149269162842035173102776446211332745970281271572165103996731778526966711680940026160187504708621076033924388735434047321397424473509485885555562217690245929583650396721027071542329776527114655240039508325598868625117004073230949941041166453757617310664914571122574862312992148828682646074455648732652942081668318946166621589710210379937821984049261960139545177832357704306028326626599209492201065613928768188826276572652318011233992473062953949807089951182648610078591546737737195067814323949881209665235698161343359110034503223528395877522165067711824453195137849353456793075341846818989399267840802966320636356838586135995387158777410655833015467406956487414145196949292805839254065131556243656911568861534602633212114496532070889236476100527795079884727333484984011661740530078052061823571794507842984866949640632413480397955493105388175816570984884877080949670035431578347980331691999490409337135618023888390547046685460753373266831251194514875828661040118064624947184801011604938672927072126526696278466351114832987768693618032853352902262330319418137579658703497412317884955695193654715479451601877269603708607535045207927457092367450584773263904399885518123943105004934155762127997348714977032796062206211022251670423892326420913067140043595161719223122289955213446708452119724009048608123396613295426996465461944458347306838588337479868029752185876742808502504675099834193662687452753051568553420901977601959738714477364725316581920235100029513796495395618831473526821000191077133626061870389468272860291495855434164742626080183451772636128792076258690669170519341748575968565202620469561448643317372455708491563347181433788081992978152108811704275352153020258676930933973571676481582549485165004230421318213308691041903524566462830355853872800524912334672154710004700976503613446763717311380951739848248155192299514225836112475629052398632382563918408749960397046758033295616219983691881693624697265528181904945490606409384213358873493923247225156906650158899666752516653329615691528787662578169658332358235619186901013152546967446635495928484461623128205056381915376504847607576769095930305436524293198342586985055842772810398781066397290958199359147327328530705270482714793253734892090910960084517132182787934504702292696000591500977951765312937702408682264253908636468325176403623562393553158916311663067246484559559094458203522257957162387299514086251308047842628688688285536036112341714237016361154801764074661929047110970831077729358849789594660142387538324460834246976325309828306887567908394209455245027278239243610443569510810419034898912857485226803216332858891645449926468205851381041978995494205396894028043840763237191146333931948613130415415541029055984142905267359463102829476535851938099534121656647875530903352064382440226611005676330566989717772984922978043620988243794716239127825218813575838936536262819871051813196249788642527761819658867301046367028718947124449887122446505223371477923062833664655588055339870155926958639942240993082351277368987727625389929893559987137703149350963032832625758177900143977131623463556891091723477128911833415408739977128717295752214409187116013973375494709705433009069172686014708278038667290543373182807158119904893865080840994694813966040718290951158401333348540029503852578910382649125756369069020553747840177019724585453012244586165478310471539010785061519604145544746343483310145923770709206159388103545732093327368174670042344320909038124822297451524803652356317474606766540996172442998526647892652777049053586609772932242093639651799161167502847297096258121451731398754294272595188662747975535704010382704038774053478858954972260295044986932030140636553858226125680846022569012912659327166777961479265829990601733596358697534431027496043991420896707995322000832627957866928043043899871021733660916328408479633946078560089970237530454440856602936064718793232523301233975407815771304123671697452608727534340985506823232426341318330779521563441969919577908163093201181667708668619749532110524572397395739147148526945927318510378932980854906249238661256707334272014186490538852115853825525230947638281496662450472736276009579187866946886325621067776964832330152465661155453040673052760880564362994270359423573083188058038663349197124406212603209522294766485467537670137865347926103625527540700675924660371944083333281173918592573466170236538934671716523786377251256769982405451984334765669242023261346986580634992729478373884920079196666258916131836141498828916788326866187069874034059028360290445738845109078837371457732512368889074075896223441505226629492847419716238395906002506618378705198861343513272179455162848272460354798956324001594321108775938396609696971766753468032640828636529175699743079661318991109161809015429460482346763706180145537813183313131017878854481468368526645029924997935861237059069444730503341792583276542370574934840547397178176254805173136848796548768505649732678518333767816688199400283802447203297582147757806705081648145537665787021345196502912186611582231298628222229363085932145792250174028522389144069845771517466330880289757940279424449160169521594543149584629452872698732206433406141393234186149851289901317667843846798667360629549028004664851222891246655976365844313435761802214843851011873036081101928416422114519337884256417350956026402159308338121913260567468779719984072579335152038272944458856402596936571495947568707533104327595081119702713037059689908133900832685379270399217603006904764862277670410953497760433520170343454095065879742591271203396088726627310344636523847682833337330542659911072292582583603462163161103579256738705738823628683820972754875181415093121130709557163747797079039651506810952249085639524809466575362464651168417567835208592718032315340125881763663467352727419564441510775338002527307122176398662493519372646475083575027195287607367715361319865595130140690694360475705200598701229981845432016743165741750715025968497232051358380321941569599651446675129790956936064616081289656516313321159964350977994822770387656298796989556835494589673587485459934754171280424891831478252132584629187394211559135743161122168849253061608662465896289704072118261093506349852261154700532741763942065968185779155387393220119803002664693209193836568097913048461220779353417676232744316132885579385619348210184291557328622923532260511876336073091647203000142832988021319443720838528069072304963658833435899976565595123781751706963365068728125785205860342277872680219121536732884709445008110619007371998739333660471007212321332706545036132209800552227884463817487233659437557861297227336785975472154952997592704409380377907394640431872228660591881316811564651440140638362649985149065455640856156150890513741255356063225753552956601331409990204730091597339615055001813175281439548233327184268238380145474029486538631249148573111237861870664738498599643693889639495142938541029207820329015255101265625067007165748920168193090118389174545006658241834616675012139837426046513507552264070858544152429767243832990018717227988873108394356659291172550621880708777289315218137620231504224264802322393714997167803982614013834016483262603585518113721608861858594726757838751330979143239964800502858059472343307443413226977817106556790892609703992138042687518974041894800353413698925108004953113293432390240793456318244954283662970990154464339671095889566739023052577272659482192137846640095049415722892066569820762565703797207775834452846399467392672578228838073927347781331675987656544803189085670445831472022555030456734210561922328808780618995228356267089955102495333517341015992795264296794371603083081542265746494913502441217101111803244912222918051940192459205970595561728710157136490214839138497893959080137882082407354310144403908203384589004668153585731653314455055403073625223017153698042709609529453500446840712322483381737391972622547041830111612859079246980161659016196877906343942176543630439505332543658113750430735507607077029213825836745353285235349237078787998452372020244034708097537455102562410624967697510850218613011680908022668494867403596940232911845196598814129658258878859950656650855975666501595438476996442675588780736043881794897224353895827443311325458309198631735541001743941876859761569389042680152555313639229817898937496221517287027539284341839985267007186347018936506197303392930267053716660344882585141345869315405911453866109755092685292788058418683901185133375350625487716451446254583310138502698834500959040386177222992574045112135405905734721161245117495587694267529530867582509658929917777257778919225509928396475246760524220866623496487906329087095959934953063443993013847891767429459937391694035983411658429822968401855522323375402808557369147440428769787485676426355993134783161885158347485661854612596381773264657523171843978954241209427757992195349080548924153208366943381341199776140329349111507966215988842111577175060425347056591835130636449305127516760210406755522894013019152623514237736814548510996175459463795234477003577062831632577658722363381141429796829105160632682713508721081387627956607576360460366109833595259544490932362472667287225871252531920435958561897587689580179360722871500846972417158346917467296815018202129975983198483227076372025667020250354988227626227317274836152727997216348613725388084926807440693822176258621419894077350965168770057849735895304098100953761848177442451242623373257874451414888570586666974834139060231914109360694151754404996812777249408748795230433900512809087142438480358179593432197349949272506847227033331574893111817265971685168588833286217345948150399109070070184928620445317618558475497651885667719538439267306755888183092350393804251124282717560279291671106551998870328507921082437721141078826498536134158237546807280952634615860066960157846590671691769863226614559645583858066040870023083469628798413994060224820676211223704412023430242349416337876792127924185518888317051340618755246018496471259039650691311793172016269814560201715777225067110504783236095170978919589069901105537938186245507226033367735118087744662233305227336928474455006798323129835616605369044188559840120084403446708873391121158572459451115674072189937769703706653849236740647224569940566191170154033576689306287658976440681654204578871598831910968265790077380674790184516734786993147975846751122166569587412077494571171850158504859046446019195021075504905729475096089162374426176822210669945305162304169105248554571660859302201763303893330014923695190070701631805993504452181137221381833346620041548585657666647253188537486957553598696283913906795397861769313125202178039836565772250445965527895495915159279688974281317694214340267201518050687241175230610430730662063196143023228724301665970681158885092400130465211394669032406834021802300342840963123152151296825783986318464386906248942984811913505822962764440596116396744368485017035361940948577958635086411607374248936773678598609227311608780561137523947648833981263881818656863555694457405167116516341895782166628820177372421755363893797425998762440217708143159290408839559298178462120225005880241323285272840377909457275140355179814329114031028657085356554127358017413790162796787892943321589536017800401253056595042065508938333329600434969048568645627648449229462698583319822133483150895004152220089223532042443556590735599412396432510486958097437269633942385884153658729135841547658158805953354320994962626303675215529351892903911518085662974563382616900523822643231341602070225876558797181104660857647225477466961388674873757728424436079106862962092190932334488565754588552955720554556990772207538663377692830111616030524887546953089103322735777659230644395926924524040869981259626014266308486425919717495963667475621964266124422637053013889072341704375284296749587447111575836137539259908718496945020585203282644137550909517476639222075172126551168200878979100712454965862055340160412084225461093207211436846277941831422245074247432616612045337652814628623993299902102157731018107883830863349741857915991059059649999504190918078127923798678891836773968016802786550294256504163255774309342807386242996175789962016811655561284496837455740695705034676347781719468955868548754348141973351706550149163838539912773517410699647981631469143436838174252474818444386553412862767463314564706297318737955415517319826162674116675115694663398603456551738268732970340995908964811431898080100950423180273591949358933720551019330367008730948419553722859712812253092913748141343700549975203092228160265033698523493985947827614682177985783213234703028692483686843376782621770000002726130411569584598038138382406370885871648088240136136846215909006930605550680826743120571051388590296815172409787503026740339470244221994587691172932724554347906765942491520432875344650520969164546237601484825614565962123941530558466894425423311608056551133118899823605321793323157206054342259948047151018279562992325008150013100765745007400241006416783763142605085085659797452320390161297207569969354465305071008820042417737967118236245709288764123531869600286054133786753495474625354558461022983757097984791931959512863205233336432336315261974431410508902463090468287098555850861373436667857362340232976700237998003023888443661406416857709267012792234219859091587143390369629660627148291303226867658615515561938657930935335142907828252406130372690408703320269839962385168195912667501056287463067141222021082333557032710412693038471718669705948093952975770682861757105579742208314157848139583083887606279999440448941927181649941070263363668432951853365664188142071217908221471211755044657867063647579730127729989121567768687597846705012219132173078092581781833278831847576539216826720808669139134073819624098999012136061647454180436227230330171423332111021316569340161268954070607231573351676816315370281126435858961661925145739474657781547382411072976154807601029513842154229492531701132141982731448510480132838390566273953487662168618167622651603950949816836905515050078619824288117275563080228075999686279744392512615401918844584045207719753306675693958085536527824941737953023092593861931895228001171313852954526924646387143158220702415459590117919369828734302063821468975267980890290781214938428452466229426297918067788729609161660693175438395430460662042601574542040713813680008667104015337494393300339847342309598274957162914550793331454687996676862908937960429783035383921316145974374586134242733903113314945878828661050803568118237655817660849837052965032342541337295872076280588046193930573461297326177287988624322332280502100650179182555402336315603611063775559957221770582661821346889928836183876534807136504844256759384153745808385837026183090049261933955160514332434766800916411885668976761736971861215606943456707263076708139315430062957640200857651637881569699480073943758698105005538459234552205888633979453827919342469226579639661553032983441163363773146439315547873268982252249136800387740376869269233569089946141291805602794866203729199252862451295271761045067802942074487053261352159184380056405483773000215032316762815715880738919061384585919253713186118665720115538121590365497156824188647478282458926618920893207068626741132369021889757696808733373942716429428158856683567006740548033413850480532519801045220745581135023022601925704468659727987541671896064896096788101231035251465011021891794735853655860465961791909146305333322634319983324866490828614842359372784294380801824388642466797262656561007096219481153485354858600641476438556496267051467608241008633505174635351378544899458654399717900421415588433297207981880968720582942104256678644717142197654863518296333774281786567884709993104157319484920388607990620892978933433929438668789127171528643025427316145846770663624681089984170817638950235483638899568942496477494758214824196681344993812390068287912073178283280937757295186941899704197433015547032204031813291867948989112456502210560484784268815821234178637339293540130016369605484110453386412277336231426362233255584510184143851253323068909496717523081895887324982724748760643890091546733900566815240643960816494687314884280647466648922546274929203045305919721569304974194255849657730801400178581037055471839725024096060583167242432639554806051447971051268747241844483412375734818007961363605809292136896518000231278214496028209882762187622289532541941355501450350942404055374973345242128900438518210361659984113518250684014855541692009622572783179112970358710587827820020811029329342456137683563828671633682847780630372690660567209597460727427615131414440148170888812102770245638539033342762321794681383676026417467238881764247656719940589781133919175474588301867318527722914469909610178657365316084659133637669907348901277907057355325337958172221908754414817910075535418674434452527936357808441421224024862274192800085523788753485393095490164635650395332518879241809739309456408371669132464093865124572959105647816073731808445721966501691513471931509408200918545458007388827881411684994649551922959683667579446085487394095059492405059343567109744602276477986215549531733199295796090116943926057612930417517831525608676213300555546814840663848660320057071804310844338672398461760465397710328408018247109094474404108532277722874601874644399036364784905915056266515802443653819325256185607865836125335374139254855267710173118676868570697201281693314083005430415489941665548761159350474097357260521669105572237057523819432343746586698729277532979087734202202362464157538995138945740532597161616201107034646347544968556481794851977315233484462442448135556173035144424352582204889980260382031694403310075587094171689557015907063153838716913794235828072631253645424075376238704426328882120122702717840642930855861912576747663712782448132435723945339061753729024098962914717698695383600352928090716268459257744379080330274432341923741680435178152115897756545154599274452506985861223536993852255105394110678593792673469702672792012658667813035234004701465245039096022155419926521951925142538752334668765894573599133096962741848482752190157108131827240523170487235790643572412107626404547718542707254423771182757435513725095106220959140575654128963852834308243609174473203221898643176070366084043603200906228731664556928514160691166734470870628806423219162068423254350776403302701200338858309479860751727665153152896626128895674478425635911025290101961976459085146221475991169208852252792243165136077705172397519591513857419784559240802974116869241059078691447420920045029532331772799924254391676605888432129204321750282584727511502017589252549302741120198289254506651293758608151695116032760041015101213372211853985959712721489363138964190973556115993514443609665004178696905439045178582978956865142179307374955362737663916806634196692419086153811329354942906965148024716051278914366849434310155508865356150458134388875160337576055448452810576542519645180201977246631415591200345650690701070876495081468837402052168593703231131683546880965400944526635753447459210215484607164755397597778363942091469229501492813902695763702622095705780201216714486559997749962822794070633330867293259260005827763043030425669934941017045897053291891239861376749016053584550021881024287614297306859829275489358384802493026335512890948587090097415603610414710297711372652749963211345869424280622621011710635671460021083926927731699260542897404426881771939414606738354941460226139604875039972682553822383930180639839714313382846765255495723145480167766900107972190440573016302956179921235069051473058017845977534021357292419774878969679793084846534438182304490455956238221333335075752653459607573315462838992634863173441359967167134203660158966699441299913503481979999363794404182811486642169307402137656838196252558811701249308744401035690098456795015351287832324785662821812377220593639659836109443634259864634393934241305290998371473617624735762390564817788347102227126403104435244799093012772556049183291409280356277614516228177943288956025754547518472594252746972609588504954471385348920460210328525738574345263609394813388220617728718107062220140558466311359409132435617197701781597723541810590760818344125516103814767298846153297413437055769022854773698342854318407773994521951262110257675613523838178637861132028147958925124321162033035667398783100654204523407416418104507551199549269840702689576579127235388053273733396780052998320942048734187300122214161123898992685481986756363988956726047749500945294214932716691564385223565636969622371834841779750967760176771130778724068821369114115164120186401310725431396030298531373831366598962048904382163504978029161806341494857513561513106674460536718182335371247896374131427253779911135926015612395609659107397774659795142975003594367034544180565859033787068673840612490334951331970475892888815490481094854171742447453163239793473674672107703043316611619192338562913655095914395529817339405909293744504957124506010982711517785570467251617621329076446277265821587837746873726009085515113984802917834023803555137899523465101840138093849029781455701043353915600489912953069562624393462209740088919523747817078823385412194695817508298325392963851434252843724733160850451383177189497982401871994242642776231012287005383397820924207394893024267347333312486911497407213323640822823635157216416752832567179620910564593255903909716173898235771237319296191446367422223379883481318139853007677253080271767911738368902690112823447688921582593024165225544309687544990836181937956228091633203419010707303458951245144219453442878007285981250887102317147831970393411833595723832985384033363282729903982403905156939607972254839010160697987163848302599249030332616713473144973692053995681388634060352909502002467941876413637850640100775357818488721511691924733493844796678762852549828862681038099203682790165098038783622290322374528972831523233769780325003123121965740719643282781915065739784107717183693533844757614210831902855901834892811352692231348087948979924297178880084513280980190181099556675027380483950148321828227456646914974590514870198330698751899210349786872708303169588929254712856011099923249131695083555243596038967949279670637266536010035284365301159546111967342310170150695966835346083708446834765328864038529281198087550471595163693394988821365258918019775962413148028868701933046705317605575254214438362287479824403566071126777159257519129609374480744486607384706675899468144309714999487139884011243491683788219600668653003106310048130166805803491703150307595024876792232802031279367493504053252805322159912770439662135835012812431661152371324376149027655105777850276527561819312410342073033219689654428842354461013930582464501283839376918984625914962152945019501238045420941443151888771854534215716848739757575945782027997579513254665564324509137658629521296333555710259414913725526233149677386445045985777632883855190192303021803476351577018142950173146567601257578205975422792547045192093934591192248627734483429309859903902528296055978078373374231752269172459971960153184656656329801340740440136789228722603378238082484154349710349332144345291585392187197619268452767408821545682201562024239889548383861429312187931347009832054557966254887318471230140182155620140062315202544986009359684563003560548294749797864989782825024791091685638612669841465582410929585554598997608251569569447202484799764404254237447564319666679243884987820935941451685051527902604278469381435665614379524686894024480705310407297141286122872368990964686099242376781451433517914671849563445210952510853685883647794870561613853140965782595362972137267902374352044235829991323916618498352687585252441657822183473829289678152207069785690392819389564101863285599193426480028957744455187199870409041956799146360201181003302215046558364206983345876859473524571497314316974110884847398031691283215002743094561335010758199228445984146495351423671554424619900612769714169431000988335389189592460163317070219928218113661117720228535306615210550941155756341002910737595751745150786905282884665348347718010600298209168893641059579718223153326923277008443884359989242539413262908501750287498650753950208764648568615979753583406117834922511514336399680111524685270129589678119426030457100129279615856108705164853577739961810730597755864336961377377982939286505162919329849626220798072720077219316099608872147783550441355131915042425391751141304848767683522918081427247451252270252189557932282877614200250679604134924225924860087790133730041553991502507594017902724809583001371064379503023543116843423169028132822444868036993477495019398029532574856950770225017319328804270201967217852336145144247424605057045636864088340663839955378150893855645035351662115786300574355547140714435141322043361650225171087400209934202871698509665230696875728812149637008789161692416961182382076482265545715525065035528777286499657775475485915918554278678361250653061291654840337636711928022505423750977102857098377436173198408825584617339553360425877089232152472396316788955959033871091606408802226119438421498466441795897398080432657545287920245739897364570808129744887574313904364669542671428662304133217982355186800134863351320511221265499410322635510650962581456274699631871958992662952859116792999536204028367808740676219369878244256107145961485626216678378577427366548779746478238063678273440649857225189729101412625530060179696374893445474301313317818734525089140557188412510392082410283795992771661458158400862124561141532895087803255916405260318864495309911441901923059662459821281166660002680228323111362415056770361915499630336668578022510102185771594088003094498559120362541651240693165616619849914847309256045921582373899501251982829973196301184484341661451846146285277419778494050294798135085441766107402777445556245678821001769492588531762435780646096210326687787625496541840255727724388930358023433862521430252299123858191754395264647376189223296231793929560943614996839959129580966229093368414143680219193342087873901993384237337342596114434250851473721361959303773093744452605675584614612219333023469298698023864735676689264173199953489163104342670806765160167206035621124630563033261534810746610404214919286076136234415223598920142494012772733609246398999267780841896091637502978281426439903957034738666910140349189416911463000050750509689845745463341650283913919510966794584104922084532555191589727566488836787953586767018503379014403840246446768758655147838935208568537077029242565768300384797989541784672583369917881170256548379647557616603160602992800538262248983283043061960127049069887005427883571476007087141405942139660000290348185208461910134673976398822512383334065238841075756487028008446207386896510467621582938132408760446077909593858081902248014511091160066023789396370015781456146715901482404669129282238213256438502899870067402529711444635312598008145139040391595562995305983560013056472584419243384802070677884088204609561114803396881698222899451496366630345940012395784554236867630701079550229779501264263088922800680940055683417446037469444523243537085693212803619036428503207728220635694207740348526162436732327943704221610560323507400492222776857224470408449518459514597678761822592185306960909702245450502312245564791520023395067229231891085343839264109151959409240100923761957583232784406335591293359084310232243292196809146846177283970453908337824413914319456149440355441614342299808567783461535862656697578487221254016641795047288596460105542271229867884077193984927537845518846214746616573918822181303649713342583266909155763912963579906613647195858933977114783040535787228055861928380112141987723489798320489833117875938448107071037934148306428309001758888073953698736190014098194409021820405703144586681776676045099385480341160130803745877955929727623547932375606947321349558780735432697084343404304943179303318005130643635575447123597036593536794996857080877994420323739285975957694877217925578360788653625359685847600089698461673889325197049316909475845160595789327862085027416306244316295175000887463951004582225844464785858772101552207542754076337742997682017042254178418696485302182542566731733593047854169596075145152272441481838966986761856462917866835496951082403990336861109571336480659953472070790658097946185136047771334562214292521893975858489475614822127035438380496059264052254650163570412930626562937441492638651154275699746714641938843575755463519229721316276176182635304971740383907986690645226390493379951609835230273926519270480577255226216921469168566688712658771075739722062754075533090774009397581085936725887567042975725362604253119347195260630193588317027914012436980410836311839758813418101339301615366785668685760914030101114102949094212988170718712908837330596135843049645259997841015690560068294953746743164459976863745743119765260720213577453210938342970684686023991211445524144183037791552473724713723445276598320680620559719058808783431129234787109076432496366790018347683163438061566705707756801878434559143416600033385826862153322061148916387917704106441149897401448858027203541624570569993984481880213954156787690729534951982304681951254268288783619502842086257389559837895548719203785834503860543379672782281612952028801602388473319852394133723623452261941857202974647181890675062302663142212198648237494724812817762806529328785642392644786422798555306214153294807090666454770084142390026447234264676648950717033260906483455449113724912707301176519059707775178755584246365019810402892528757363327832677098516683242854011810014744919676212798732832076254800154252491344890501694852051875999242784442763380475961984711458023947902018260653013274159129785487169316247987755044354742423648108141946349148150202547534012490771642445502229273185012313042615070116844620029211712688061884322859893531541903885425345807736261691945001636067920218283457934352828891691369852416321447737502109069298643073961617355949705498336019516812860833623393969223196805804886507890114638739441370640340482773652389168190634607284769958704051114235544378134238670936309482040285339906450359454800328746932666950586786004804361694147623782604798882068770781217780963391474540933484494885827907372996040719129093423414584202504626829043015010407021401331127234478916967892925659523933121980528747243559173117110540300044616414766439948578016851424950876920924448417074939520442234487010337480612955411432813917643820985817306207867296257076242841823908748671113224718143741543531903872148925621037084754459421129773820982097856279799518444392676619683628615750050012802566767349657501068502410958748911656730064639520684835504368468234187809988801915918010721895181200418814842091563152826564166098101539856385404834404333724298803418222209907941105313397708651561560261714108086792805218135728585159686557967541466553809132519210707595384238057356124119285105943569605954600024803092618390150327721517281419975853101272985568671524933795251089333045055094137928687484784908552614550786930987180440734050059930577803836428868328793959467213898465264163986057329813863189388425047601627150109229132520940129255270050280675007546676792907247554577022158505070036860377810501334204802819845437070078804890493682165931641626991707467092335194549565854528923070594485504458457877322381836842313135723591141764012877891716799865582673396160128798764355798932788003893451271913467865193858930581158753097341124014081893998397161683951768637951033237572148330304001879837072728858101862967116132323979658240595431306428032636093039406552963592051277380577259835357691073905845055359944694322665905867731025527528353171595473796443086296591235479012570789961012480827130950784557366881547015510808872377961784004304305263091578002966691106487391521903420947489565644114869604619764266884741768749761565670755622644965068480905591853681715705615456759489978180418811706951085861988733040636000175674035716834468643464062273401294383410114798106037036418086082634349424999060776813381027016202605143511971445521680515850611359219745461660528770015677582468570808560667596440212705712837370070033023190430529460958610219536371948794578029035874575393416438062601246973045507556639836370366445424830423290138255917923481186250681751346360785309450819389844291178009265413323934050344030696979285682900553080692500509351601237697482860797299585519081120786419261267954602017437813975156952953459743950974246965870241360033171985312281104276533706004098295479762813599545215607914983294508052987150897114468208827274145194330878751751240732905271154456263115546974267525560440704774840305306477077817622926918207983867746900138290000618240375494257074975390115599799003706811218910982001806972412446389459602942442993594509284297542228653226182760760912472198362628712116631563288105021115853994373168773670368959367230620123631570876389999629728232175917862416046610068898499441728277565167415105001457914440204053371804046836807697029813550894518458581283393398516006527658530680712811810228107726248018244057226516256212423203392596818147218179752362488408258372894801597043231218606674460978702588362645211678557355133599187741684722719816143871129886608822132159989110856188050342879614329275561974049630934714733913206354152879711456677095573904403124689481605599726542021070946663612565440420231044940203518795982101259851996474689745399719975972991750277126153431298626443460012032524310073839306838083980466866532481041641355946573569258192929193434049562573023439035356177915687396249952702045980657132095406162969842634314178967410055033832048474750030383481662395296890679892853308549035690027382716048371697252286399014119172631149056524909520425394762753334007387073010427336058759758194017475643837424380801174085491040294594888723953505157234250803979455407175075522850144572583737192248743455161699464525061517937319453174834011819194430941717180059652401625820296898422957348799010512918786496384101328282687215714316493710856558871577317293411532816090925579166357387668084680773954328279556532583825161613363822820204156844927457886470472013340540118447613614942446524783306763645665421859289842727862565204474644370827805130284478407314426452414403947211867551945907202875834272238193880168187852793384388441252696831292985228727417596000373201412657413348643650686713901554223625946582128544280512378321212886261219108588058034558760033719379239484158018310709511051774177915964897724499831641998347526078292554349631822038005402047097317147287567872538538678179190566686312719347933162621780852586951180884810859131544681255090425245937799623176181728737940846997834323466159116288557386183350342430972056101212091616852120102869441064366606127089391276703560448681474291348787612647815527149087626005496728581355110338068598223316230883612447433467839331180598260778077007529654738893994433621512632725158968389755571020014774686715631808290327495382566255680420759694377758117415894464441908776998799999377902384525714461412655054548942247994372636746157226718906422131627809665036061528544308543456082587184838243135325545059520916747746692807466033090969015467054257337715973050206762986250486680976330907084293559394194082626493979480651488067554180041332510435357506767906490793648386910316549215747043465368607318737757453582536345939900782335439030739872316165746985028624470685049289262134627250216401093738780571166537061231774263797557340699406115734692842232043880071819530122426230859737286350313024845699178909533198751466483400599118669294478249158476600335471368046710494410992789409762175817156163879987713824181639448679441697517894007554656481173507711199692208778350418552430048857381564297722853667936550763128201724415400943679101222002999362001239730719687661251963812323896101871796172557079892520196143499173168493106844849767840061796834543874270350136654875656067959185413084272540708429303761586100580907788320195312199723543726039544582169950212911417391449105756420759438874577691804791256481575557055689061388812067550902958327440100152572473000999071034551906837799392186816748779028135266433329796492026954129453337173532388866520006633118550146171204817988496376220865524118769753647008445837448009289637017623427010970504414324886941650138421335057399961610418613978368899134603561397122500159149088804821195098131567910788603082739501651134843972869149760286185069346309939879300073580890618862288650347397564712853528423183538632306572462489670478059876078457780046011356461869868853397662956564105044570888957504720044597320580074171444735474374641859523514799227965061971870755987596323353928252676099848744626323702765220481624007995733129036959816719536696243526329565939982521760827871897186211205349509602397373157126870224272738365788390501348037507959741007750106644277425789573785807098108684875505589751422940839204161989858632288603858232425774901318725111838846965320932988469277030020411900875511958863262591427271587844627122947482921312598875260230774789877852744718786788466097337627309370218560328415822805582659964457995316454831972160778112264242657364793907538863534221722103924947992393663409197791458704697836724856882817164367223632337337550972905940209984011186178478013810723436050620603655103825996931351827704218982692509582463935502670503577399043458378386841267937171256571888801954023843813526786166218397808907873399677526604477126294863141938089205432292794039248531444599598049544994091863395573278214396128154989382081188851294079734837681478183363459311443507312677237039813329111635748668851416008983251029904863992187885620267411839435999390100777033127014726719570222535104160967026841500310872036766992687306721317926200779516010682267835357408724773442268853465235098643097052809753328155769269952643178192006570549639706466199116421416640487263660681257787947311040901594739835173067247965876244278806203543991014432352019360085228917763131660303592571018203062025907701134429847286676582278977951541146909034431200044669100864477277531007894873006414157686012001665093240464230773305390045780437315571175086961394532688481402664149309706912371986207648523194350981249597693658523419639088385498511739033329617717181967405032365246377678342711935644350534480075784596948601606235360889988387533217741390544107747092813833828454665780070811215219026975370152677731652994039348396472026428701545672746486182542783274243717165170915621990183391167206656586275360214730276617622866738210104981586386552856395773407497435541737741993915285506612172328114347259794292102978332706147948918238623860209903990666383482169352214538384828566449922890645660791008318369319618067717624019329188135687624037635575433136171646794014694818709454189337914319639083103550310319749205887992775280387933676285773005079079871620351239328588335886277181620125692776344308604242410746797986876448466119242888944116347596707689018443403470112231454851168169444036151994908870895465232295905119227961503690452141807486765467084621615601335382411733810695920442421160884384907003786050920811735987342694673607303305196154815731734647122831817622987455125667901544600177145732850092279868601621264520399495096536764405844014942316895832647126308213919689018438099967587743649609371871070557149104835426811262150327810743615861317394441173637676418608007044905626413843608741641120150841513341845540819705649495638059420541121083946981528537509729256646810218207132305758094875289806006265015225455464952290247691594685790885050478784552280901561497066868124937803761322411008952831495004388341381156418970516043259681324598220618834542981209448916288146450155380871134638305812123177202475237845794482190183015795761140924848858822990396450153775143287019797969809251629061700427258348767027988888565458241848982442388210381647276514118417281044162032520932749908143269363704097579434556619219564912719493876082456616058406965416621784122302682150328648556302182459492138295550123099575007264884078120786303978099972777687952588139349484896279377263214915038274446036853979627098913831356303466237750883432347874455292171914745618767516780420789123658674279192709179557123827145807178690868196504308993194834355740526640815419804865316097784554574656819099445387069197990071110507305592587847287867949758085115423143380194500971977931349023573039177846692184588892463830029264085300622046416298030814897704604871864159166434276241945782401006814187966383707039302792610043480418804168435260866837894022911932088929718368945547513238491535856731273819012730778542506569918248803057261378611551813129408671595295666663128900844580720106676088708616296469934358134913696109731832198445189345028455275283718308241828719990669958580969703404174248641319455590712928610534456344508916036566366106421135082285293573156405807925094360287850306999291173297506345882077666068969351156913270128007640537984514865045769066353048780378093950595636704608815645504512978786302481316115436465802643690448828271488489816058745575892088054372289759996736783234981343342727523463064609457017708487391327253738973100074236009366412360495875109062621520756994071370532337416611225205894163269236349219387623358935264128535903864477937580160664134859919984126766710502159008816069830574257880177370221087334729140032077844814273781858863177847203557471654427090264830245372838563815945199570279690077787883249423311061964145079797978526374397798327842529287301212345813146269122398717971869121869911911324707676287192175078678638163212148172522194373453895473982483376301035124436945047983367749363766570239303483480309270384426622683160194491931129823271891517849728063165437358412951450165409884402857863573956155970262787853578937435339141118638611403778019304524255894866982634329823990646776689492774913982880015073879893572567428872350799289231906960635708554595605618404744015346788368654132435391203644131581282942259074926051388644089078707010867039140218673050383434358314713562888823204095283317173246561192161520407047234708826885171081261337560844700822898863771892826388262159519865179347864515404408483413425095456350083764372834371929439697339965681652458714846142305637058408251251435440067998901349366148518329400701534984532287402997693404860319472845961118960956169848617199608228733422010046653974244014519800764659359535687805352047302936414785786282555720206620603134001818993241712348659682879470829215689822638308124116273539965561981086719055613843464419633133000668192553383464283138077263132759517649704588588717159639235779071994824176313833946779262460167921843282286854974073441192315288714203789870643973542072740939101186461027590827016705081040304778161039114792925104529134603134387458107192125979420582028366070641005093839168715049951858653418365406388012100911649117099108933578495003156425799727572622531625851298978542607348412000809978256306482318474590404171848188819928159973785920454216415385231886656930498108449235042748926118882893235977604496528056966264493884381628399834932584335803513673473876917406081719887695471962183807277395997040050612344363151353685993890078841500141834715561107148248816736476997910216100597705422017816358869188784858580263652529644909591442127727383650908872568278663477604756083719686354716533708646643384178811921057745161415485207697005794881886801972069855290592693716533208927851756046102819153673990889154685783258462093823264611768304064049360557889347801586797933718644988194201695403209052992040546188593782157716491236408701408311849216878215894883726611759731764803023363522867429606046005147473674854250312677203805050283645786155083906628609149257146786806321445017111051233187825997104825152392989315352734779701735694230624492793001803329251499660877433576312299809058538755477272795574258095966384582134828655276542739014598663383073209118321611394355421237113703167471838697240364174763751853671924737966351226654679955547577270331962949406256384488036815196729471197144913118703439591319350469362451464374557423903029056872498977431558928687610688589862670868286340688237324377241874618144202177416334358346768920206567587590622803242045360148568751808436600056061288004567673068307824514122517563130068421136546008631134987390443280011910100377831469917248236419790760938349088376128852249285434492359904650302200532962180445207157720479269674627927099869774064570383158643221956016523125464423462791073291776610635573844952092006785615450027103032685206165217562170945568062872694106567270436295083101058462530781044212294600203684880883397601469096073130540877368766215381089231269309310038408628474546949771057474719959077667170773065141508891804823207354989221061607519025968274601980319750478336346012743097903901495061240627282583937517915125518945563029054391615605457734869989032038227039463929937677654745917625167163044250770350350676456580573317480179830737496678923586708752397145774831808003662998492614220062727238179117994498989983344390551158768119597798537786461676089048950613707739723877800697133730643405577803123034044131356131690391672215984062992507422743055609934578894470014282623928045761734900964683785668650448109709935862145759364427425702497654834457335404213063829224940044371835865896469245812297321612673596954491175633307302496845995208150205529044767656757832563419015170895317855757580880988597338834640972530585088349956041001254056155987855603120674254089669618288857666343623994305289049294131260191607305097249798628562374508430308865672551491268327996256780759952496205304688555183907454380839870676556196623942290104047139047425316743935576438834657065866892597078228526031625404879022054980552259029359639842847662016855986358091383545394092736011053731597105542971397387619472821757279107587270073977074436972377255032925581285784409154001844452265992159393965468128124421593548258039423914053306920501164344963690284982305718008783615913472752373609638085099404801546962458049388271855330392209095230367885278904460664430438262772632319216861308443702474877059743946679950815068117408346460994824596943304234790432273428938000107877325984053869514788516495892384549238292265501210320787631747778330274847071797203215961588596829621123542850889477079491149686033573747215087958687865703477879352652865124563996211157800560624383383150540959708879635470150654167335251554734093242374658698549176773097574736557809980597068315477373656988117756494346473079499417103538254603421705287114692572882807401876065106798768328138287563608206134486086771441797695907129502326827802630357365015846742140936561669085346202336572973516790661089278793229687846658449480000138950024978295982527084642095987835077048862022862716071560658136361045054264685376481158906008462520371612472830024240837135457829605487153792016147075584827137928515457926227473480856270673581970337433046943032181560668634031725127379782381372897698974141440620744466462487613722389148183633177923079539421846852312997275528784146994626206304514684926328924358867065982731266095845483863563358319044100358502194935578244024580892206832671078058584894896458439130470375108427687314589693319170338044906719131234125933523759753452255208017777490267738960779996622276928720472138320849662100964357347547323058484917211374003222816273101155799676143229411555340868214372783519251868028629377322566562559890000429483192930487604119710482740374506516807787075051561167206770218670420527825161683661699834111038322655631329230580200606681255030493225960449416427776793846706551470982335143565975451131163200007213934297808940137826253038474815825951475973538931005249191618862855720300164524115742551832172538899234776368267277992001520107474602490682188939519262349470045044775729758971933963650455674498918999165385451680333100983804791866510869853800093708397443284041385261117184227803515774628572518830783124425315591312510299282800853615506184938369509645729439746174093555860366855163158854676520759971756834297928430199409240487443589772550725896987059133228063707456789192962658591488316109445396312855348908743895288514126107347845429923273904055896146538035191135179265908732635225453058861847091821342895517395634840485262375639621056404759642537170558337429714499510551803137006430071742768487036366507329340915738525030431726724739800242592456374820217664897710334885355088227248013996862548317330907626679496725123678538611634409488092673208928652950102755731372073470010755750846994790904873117322314732894507594225722468584295198537010248412453001484293356455164648259089395356555109945010956147625476981983967371220702390420003186566463619985531286619928507529886854099901889544251170660430255138559891565185348246158127150142914654080195614209434927770256994244104805089586108835577907279376210059985906005917628782014906538825623373031561160741561813557312565370405865472033620374864172323854469548058982284126537188048460715345770383367538609956673067904667844114745916963309477558816896549103704316875597453123870342370778014486506986137633332099459653208427004629138296947849138869740145678108590860577942007640409091130804751893851856185700877449096596024094137281299943803157602680270871310078741553110649120118781548463756138695844740897088992112701951410089296439350369492211489167766123271926508874654995223537814041154763470154023084153914828059455667549432022314643759774276299054873467284498009399046664924961829958120918255897704166786431900537102294259273951184689885753468393361681658809819704188043505213058522592304393386009520627281790342562276556542306275945611501888257955571206004741674487244599697589017676087374718135842739112416220134180245714503359787846771634485830566863360709630113432540489759536149482245222811533312124620404670410644896320209498481799301369353548426800591289687198569373107536365513660794240668832396548911617347939489248216401029819698335650237249336583276164107205221396451380583494523802268203223019280747145263643395635335056376643123344063410386847832055177839256028486405425704290984367345529560970139003016606899769099843988690983259679972813278491935100904940825157604559576535906888806349130906382873868374091109097280042228583860357963062970361238485837976347806677398276028176085997089565938615514937573363085421078382054517088846643065918211826744628937328475118272170300459068877441203922901668433190523033753352028988747041108782010100643307992796278288280217484590000021478111646256178145806670149511340561683579443427056913902210546886759332727623918081885149662546511653581536207685380753903439671766463503245207922208589597475357171812096928815420794652968632419235368957315050982309394038847216088630584452456824782092932678453417410517644270387419793940543047720713244480000302206101872906275064944792396434952479304538144912450586234797539341093277684280838010740941084035431797649929127123015935277263986240006718857366864949465478531721831340663567855700560365086419154956080053321280408437387364919708575778950514265274279746808097008015592988662781914041373975270293586261781469497842149485752659024446729704002767280689165708742556307288865192730583914680785236990176604614748136366086746391934586385673787966445343082167636373810713055462884742611199712923938764048743624979563902499559974780543541085900304372703887351646374997250291796045527062712922909205196662637257607882066702114520775283985527984699278462785202544869918826938314646106419123712412877089270047067988556266216103841628179461978917633453040985817198031584384969730152402941468404810110647694331923707909722991547498089939423498758446221815076077888588677593124108822345158798008259281318273970523936359365854461764532754255537872713140775004164359479684524992217287037116945841811090748924512293093154660609821027615533451986720996151170677151716934368940328816226876226835311559796371062155562010759664664795240589114988719463164864767650976892333923243354280920518220409359476890817058713701004935893768488524574535939794177960542052842367800775451869660738762935568545917208358324400503455923623575895266227961645782966940148430004234314046267674803844633380604601091829688404156573395357931715026898139796890056200468820566170068331660849408542533143679540813650326160576067101607294587088291741673052060142236101112588747495466522716205815912216507408012229464600338013643121175100363849544980073940277549621802718317810528712432109286439554055624661940563579946969517017473805127009169423460293954678175799984490405382846776420737253702489029137938775224155824136788436063234589053344179673505503600870756831409602280502099038968175089415424584030047374695950906995355360343514482086210949792428744272242043426876425905837745638344141176320747059812723673910769326978810835713987283906431724504588103471408115587440747838642854123561002262992431505952757907784926716195306199102713518171377908129872367673098677485480966669469344909456133687015457146046806057877028653643780719110051154250021303964229871065207124454671674960507698338463065265627856393265103097744534037644424005066246468442911544677326877284357595520050307570889494998720103635735935852889798261599388626714288846691772425964170791459270227700323924256671687772441454359691959211626176590254100498441529949144772739710043152034676050862268935999470334936304528650089386277478990683413562164122693262649183056041348553640526304865576940199051919435386290073629579804574299058853399757136798898105405710094331203408957520865980997503427171374213984865999362041452202825801874847407733442633239514036042638818885280616053712204423467967303104719870469785715570602251420341866837883919256415320346588317841447690890405928740027462276946801020694859236418725066221169632128127724976015495160949099086682096501008174872949198944038766327225796648781396629852163739033076524603742459655533033282099655565564009737019196998279565873897923344074958594877622408382417513300037143297064214120842382025956172468310201513927540083736156113315601906527397069386484710372125260811393539691952786804617593700162777839073203317718482768688645785964920311565302360360798939969532820557745442039647283609284379968075923389871794986678987797655477373576428944347874136338551688643082316934792540973422090444582895735928802213135993201602014589922301847643651079693588349096350266130405423467629181718173465279748319333640283580977249503546622007008834806469146659009724895945940319998348329205992867947588407571309157198419102334117184805061627422679804400754081408390890057644053343086890622217359416281130625212058958538782755089213001142438672415163341938040563667343519145561745281158242836915315405476563736392844722580399654716400067012849963487085140646792002191961165083522386301193644060378418653692902151182806820198345683192663487451731902107985056418959266101291353402308725857630713724022966962174128715106015333194511773648043287257824293729523139668330527651363664616853081761587755675888955866517260820270261039245824960343277739269970636062045563782741776879138082600161012623472219443549882201564855011812845119894358594349277437138541752651866478688055618582563822361195767873775389943717087119319329107984179738258267648720456294789956951728839712558666637321141485541697939953587690318449564974877525023306803989132606510286102492867452391746674482691078852090128456667431741513383203962898164142483925403928212929055519943939144603496669821156775838752914781437231275068034692100949448173121823273862924488794369846676584988045750907026495987684714816985525425872132770572373733117633030433830269452182740286456949830363539471802453402686014455599482370343480435042709646175435018851520975200058299262678721781197131083539580191997569698065629292831885175540109314764040986630354522346913740057293964873799851930300683842706302974176661262476936830488926004656321324644135711986288589807440262318660998677308591190065261708454644180032522997202631900850342961896024419306762852887687812756689794738116467283788495773383116068127597745438436824680312584386834632815927234779455473577537375662622985011279268158519331293096171531666569506786579743626762390674672331230462856641436034675095572618833849185214711475302761032874329185621364712964938039678435575118476978557509959592004696828685814923814519234902492420088273041768663401138391168771425966298354850103666230757702836149630581086903399060405181946874488007106946389840917212810575975890866241065952409358462511044424232705093586377529052031746789813165433508930002989573301658107870054183631997416541507778978231884375803783305307040888773008823238878706056170532594350364391668280641908810793117959959973729841065915036160667447645044590922858194004637148818469067721996509213443645254287860138823822851782696048090843691248356244870234119579204941957212930163785885554836601757222690396294917335230707497924701635777394040733804517614213947182789541133430438246329376789424013165015672279202443665103670819053153626018994357543024839530075008870310653526513448640643756449592001932081354947303592400443917669572692147064840493742806096742844776660570882372921400884265694547695584297524621751333178489514777874656748009163219265386111519132673733408237007225485480059465843644661086493488197905764863777596112609148025206823647325686676508187437578851094650355200540975813820481715304718832785778087672943400072880273052294058680901319998283573189333631521221762905892577704691554281254740852101298430321748085984870898005729546749468052240593921238140658455622406893614562056175187901409661360106135700798317466751603575779458934767423135294685395088216858592400697133495036736867582978258282951063008222987072713449405755411879907147747094209019975291181032592320857841239329877777827141440724639974687495279491165026802913343537053198002415886954320660652791837526338963231854667172545585639133643209363202831826097006603058361707095606207138056744136307333338971127908885909576232636625097633683658592363669866049257102003931044027969037054432443685069152929434668408619105180657779407545459458660104744246523992621665417067698948493187168131023121235871764833285532750048222804905446330725327621901996765962673635574809410041524166443274292265966974215758209848274733504644378370668259635110339267271754259918485600383904277981892808725951182259506507643460172913008917030021428460668523368731168828164683505005651473741995076284509147243936598972786058453632189930750149188485844450100893499630151970108614267271169022944177539658509141015392983275862692296657928252221089482017829670593077673142191540598334808762449800023180818284901968001331527938843230714460874546534649845288144783836895392433226840878932500766639941682390850561915174841362489882837080140582031465124142009133575637595376207220514358172815235302262416843066954917074903215113844816500036703667662349408187918590575992811567872585101295174138661480029604884154654489019965380046366032852377687356980957008654556466357816824617296168263578085743722575810356875239129085159878606652406780493349911675881725794866493678484326831524314603248307420231750424077787851067077946575248672737114287367217497199752960341556629427535282195611427467033294592029324801045200074464328118809455659238156507511293434891829576611632277457884400309074980023910605613372046352361250777994876407303975844899988938045664633581525637856201588137563433099159141608252931243424626867130200701808554555138581004013719483543669401654254205481021373684692427821258733437541479669293514506774104710005625222913662827380699332670554480026806608541722103290044300390671954829391856396595750694946492781867201697433604646734781652196897316596319169744638256456206967770757767943604156061314406618597232621927115561023411524825621583488754855324150745993563537416160855586024062548808477357592048790992128457305209558100109644695379700178381004434496642194949979496849163794919718266746785451352831044517927759928711520993167939759084245480476656887358388014144464167983402041552106778297435205832624076603510067417943390044300797589163327447055495585048215976623606109221394084010693460047467143464563080629229658969020561054158216355922362887971259270385093120121691633011375052120736883753805932511298454119558268946695848120120994969406143718240736802191055929597499350388791098436857876500092660453586899845114045416483556915622314359825276279626800032405475237160588129819299983950866540173461164974112527026161160784036161512603239004093171820171581089515673690956107601555640639315664477657981988667843894053827568333780437371208877301727059426686202016296787815574891977921847558257438940662928941491077523419552603581825484620985712015726816908695554183831925258850030539846132852888543507884241960535401187047123907469513224939574897357019715819018206276276815073307093169653879398531872523109988679875041830450293935443795429547578634085904147566983262401067469092269134776766718114099109809675720924893828864366220618291280003477912449718782453792427670889106773179600985805902957082663170695692853124408879995981655524355816803800312591402511876302559964658473036158500318533160245793371814603114337921105695917550052854838897255045266709389575141232520972575402375184526715698254588638513666153146981843124670768564436385957348662628855150491174421490556243335063476505752654230345237105922515429707453733245378748535842567777660751580419449790540336919421555680272771083501374949722727929163460299206626575377267376090074859685853030417489658521629839127088307428553326123461469165494287133614177651386290867311764347664089222188550707807597451818514405953664351150743716944570662091269883605233165890008647854565532180866873823788643876342646490355863927105502114128063372199803853851104329162156700831723864710471765752267752730628974806936937944396588941868986415113141541132407635816510960354688296169249026318913805388286710166472441996997571434761452994583758469128618046783257917231962304260486974780011744700877466117208759242262223377314376898533020715190002186319425813833993501045443541603092973090504535221885584472553492939697144299135080566118652037666880233937640559503726534416622971683143506138949623899324510039386772972135321041609168044425162332271329367584173054519441621061706806616691656088819499551113366203761206032083861637529435908588845087758436663825989876514488456249222571066925235609091255626036564030873279907547186426938235336109085058162838404127941503223341042463519565152453645969639866273120211723921888230592869390117118712216936603808405109272829865988059175122226953197303397378472954442016620713052961281546155500074076200055739357229596647471135175428786402327807502647346973553077173753065609546350946007399169113004700347362461571028412761013757363433739992262315634105623196081682225411379277717982086358555694940023834167414068864572202316241264381823670046224450928149229473923556505330512209118901060687292723888818896267521664223491160641509523162333242354024584530485504025935342973185885596771467838682460934172135473207582706168642498384844672559238456767680096748058649329526796821661207214203451272019686758296281819390305024796341288254852659562675774154470114598044648496918052246718951168060075146298112843076355157841763228743689977549254222963602109119287046977069754291447004772171788580823939313401224467353223474619655335677521680744293420629834487233200432082380086173261724113621198450271003680496356535836953847107893057864211114626241828144334417539099046219044718994712177713967045674236818915767371149914952774798940603596979783820125042288368015903297410161047192098404799750703851956832378932255150148990180935193737859985460258331974901653051467016157585678820190014706968385361032859519125425841509528306928029987016547276422950324532727712652873899017975006890984217688055918037721414783178148178286469714552725970021026912116085076551247097270105637220247432808400895365202378677688364912645521382551395638455438573579139915405410167023323786065196637948881641373795632597118024212204826327150115829383813180972109992492393557138409936259893822695754753742522256783155829630806419731199951687079136155342161224151574841141328655560184929836755338456690851177111454995393577337415422877283296013966654672382594115759724473210098131075393204958649093783853691733172784558327613057291938230873472254861123017638724342538139780324103895840981161159186410901165284814079527938474803377876405088791327577773411868945574338450678136619885326039221473496750231606754763557157313117776658801907691741385492411776321703929104498178418264491726215072323103804337284592420017269515288629886990252029483803958700242793874429802147756649066514793848462416502606407792754167323798915574347733129880748521531588833274805055238956751055748903488613187746535510946820552941460828726769794417812026467669095907950741276234647815591131788398340363335812992688901303770078804523287625969196874740049661088981694106623686419400140007795086269494993408859182215015840072009533755277803583354002728519338886209787228621479665174997632526635534044011032640381815997208506845790773616420715155065322531989583315081749533056350241048163739508685927913299470823155074384226038467802073664095487037756637748623095934915703188630055170682699899623069030976388433346512911114470235671139532298505777397840803267406444517121182454700360920084807490361989238254414365309514280200862924142929835217072714127032126566397862259090040197958719995417859811073429103514798419456913393551392351712387672130150872385427895494645177900600416749589865861025142714899477645648097201427645921719454592735183311739599531437129282198849308596898150811408433331716272656665746884853376116562126695232743868475990927925539462648404775072134733741207563485762716862443895562711951856812530621845783797988864860532439643531033942323618792715953833269337145572913212972971748041175439656926305522627608412959987862804859813815510275771779831836823604801017513203601817534981449374802347829794679467858188268174620401266055456591795551151649542520992005301833263456692294731237533710824094552367001417455298593893024571775198419370731485667497712698487690253691203869130139529255787722442655708791713543439555412545407821116133138718323824137345713597315322239392824977192844939872649519992540351313119171042827357419302109829419880792867899351314474303693845072393596472579737415527338800055714430849180359194408352756049956861676034659439820973032314043866766452689641529243671977311202453838520691916909975259759948675276901849715409647909494712324359422489305422559150029970083857523313027309179062306201452835963879584915702119868211724061074013448349486059647057502332563224923478971872417802678916588015456878018481748702799266425206579842969797608069791023961648519078529294792077760179145684955700366163978334959448025540311442939450284458144403371745034237888199094576512330725167900819778391792023544824552440679472549321085238471110991448953434650884477994035729204763477557933840896502532922679518368238655146001205848923941644574434987563279650381811453106095980475073767167462654182521883802650291066576409621116077772250924533157233994200515246885930321316961388114960593873661774296601281631588717474377264456517752596860706716287548701144738304314476097737992631289552148496015401830597540262231144657187409469762713120940226723170771778941632249487818774003192271479214711848219652245602329196607849856348943779909013358676283841187196478292544914784936367994900655850799853926916715096105558039528292615127605657694915159304399799772522392186953073394535971361370637710672792168929710750033224221452145373317882750759056929007279126551229273551621452321253674443327660795661703478665394606350123390755276000303331420043227555239876236360319003981366017899742563660275292894232097686576154742469520958357228585214316532844846453705821875700571341111087194075790315230568715689379757774308050089188963372365685837456897305332699110042772082017469634898048845261125562859460787378171142595938837081050163168046943249034746247885376147155013679243587993084815288330649276368432959374687760986747638415055484407527095910177550849159153798305236088278604837527383906356112147891609971654634388120747459339430610705635055608760730566571607415222199181757352532044130830184034255901344546159052494445975022298831393396412702840169502805283069955438065835316529063586101763910896021054447015792192959359427192393179386965196821177879186008776384026934351307031082706146523769814718029670270375728292138864834936537933662806036929077713913400773396571894586246764765526073304525365909262321614239499351333684507017557320915479663824038309120719279108601757053224367200730206349299158065341193629821961569753479239707418421360500997998203675073448706107379201986637540496877977064372454221892954177511001535977309325244587225277579853534050402030637762703228776953328325578585585966538065821138093002796484504883866488825940775500750162615286167157413591978348880902146171627290593072798203208714249751389217449377271913045802075726953500443752387884063186714891000994069427142647659011589187269756047161542777026836349079359545988679574569850179090943180665238366749017734314546945203981808312350420044270038837974004886219249638928386139852834558118679933868102355007718437933837633369228415859542138751839693613431386016850085712279451346385905325247865492686191682673884803854279141678567184801220979430617525351650669666244773663979955448947394221464790434932099560244579155153605858362856440931774062878056388746538866268336605425136935344642273639889963499170462834599848003387393182817156901071843104409837604746980994843330776948030367641286662878930399101361607948309730010553621184912009927784739684315401861214047007938265512917904399813054633808722130257165147066949987074871925609071879601766092264177673690120890207377194045500024748861822864249032618578894093307878960030550828868134815558414667032723366497305850100323187399626329752577786830066638149503842398545291224537332574655763274466416428058470881889771283736537830051773753050996714122148989121684212707417063278874353927587743750734387305065947191856071575567006256495988790499963261368472220142765717840264417334130771042258658996120692947656481775608251548634058552837103329465863246908169783691945243409880952624230397564271326548467549576702219460718645368495360435068066841096072016678619137752840889543771056605215364844833359376147530453368676063757608717338457820185772738089019267938768992778150364710487594251483137840625113239360993467627747102768030982862492678676348955007779762118780951614563463824290506230642620195386154908961648416567684457407160484141286694459581682003784911706213889335658982725886789727174527763702871331303130349838822531963720091729811088738856580281932048295812627663468053985428069748548137719413259418719008619547196463495591253565994300721836497418312679397497751873747607812618155048845879940987937870001126405478260220946089125513142042629699352917810691303397830040635076786788193583597194764222850512804407947470440974961066249807334772426633399797844610743661253989899980046831374391941136695099761963437509488976046421436026039598024653393570279949308900662211286849112077881699533366561022091211983626704746621136616758054184201709693121675071202152044988637723007218589573741373168266990977487982089946291105781375755340763455550867945489220892866903436557877050524030572574646200316052946255938966216690502817586406238376288586632998406720612799362121944633791909195060994972051575188053572118465803448599538424268910580117768082225550487174202780815721393950878258968669645376929648000067762736362994091883056288492177242218060235915671675236753922946803468074138570949655377186674353977913888014284068267543793482199021238509053550949599129354258129627368736945255098605754922066216255532627961207623724784290118346682786463563759230003641564369253598295857501762770864121771550580195587494163599202340774811484260400204611075514196105454180994417450984316524925073834891357776639641785091712664113044804551656821073460289221201389306051536579486514871049712183629472750417439136760581136644469063348095253681423693075281129486610536119631001080449114288413810225681968850845888925482517902760927813815190578733750830844794668533851370628572177194117562783067226468853973929803587495639788004992584503709157320130691166203663894041625427525254384308137743053598176965562942777623552690101436247944016978998523473658571444394114658223286345552737877415956560810884534359533883208072297155834096418724478783137444369159670272497736802041360212930860136820650629648235121813779424947935219411880869628857234136556958127537937149041710901049564075337863770853746469627823784272761978123510069021097181108280300274358454194247142031233532723819370006904234310350282286611719234356000768870175932072194573380141360545003965232560526620820951088294717102156639891919644599551857058828633676003228062337533737595282844830342057218689607110455188755653552891914231630153319023987845937020381404709835656668490866627393037368010427107902812680638365242809113188071123604076965696775436702716695912470956512976380227807037345907766557424675309959910353824273055551221534705623312770912309177799987950481853567954106146576760350293268762037665051601851085348617044261873359277357008895264524296730011558632990893930695057176893831404091198767590040516445078786401786193472020337996994178374295983759131929289036298697029206743022149274223465094127163188274811689752638086196433245965757890689322897632036029629438896542497964555894649508315075022015586799281485621861669254658445921108767207984835647514516648043371559493433528118778349696770543908679004574660668912768348428116719987680945833699293583039357003886898438037902206635342011042898474050610899226300338505008857512133370311682850267655407080121240359768719890181336141563120128239132943318716286848816968980341992844429856910466608833951907821445172909521626333115726790159509972739909043388355595995640078087228306755799256477903153182947251581113004080002101259157653253939674475155628674936547584828322811340351552771604457738943743732673457158059857318452433152572882614929364413817594603260187230703198826123300163874721151896950051705778555271845053359589314058821329171301004910810586717267660197211758477144493192922840322024166884101154053084678982174583155347171322447164067311925390346008663543995261771606139903000189208280180691126967415983758145812840068428285329223576856992620645090413649838504358390647737377467932192368477511144222974745326852283139950790690157635179258322337331559526028998098409496309192567459001212972543602709424388268942286718240043548092099293235801703713828215031658325352882196491664097304763197028347647574978312618669963743011557265920430409253553848517062576710501150195630206824512044926822082323042942950717245366714055583369683054772618742566595063286184528633718248739896766057546875331303979031803571499066188446776266851068065801063125010025060398724117614693144243606469062525955699040205347529472464095198323828337197137231894549637297716995204071573786758841274176680761374947377340297299039051572104767918208775322753519212862460447908140090522017824109851610659571903461431718409571950483384446298206466774595592643945347119843298121834300270965324669564315152992112627045686767535026948267995558267400013939797185661180338130424501213981667023512764760768692952525257772745537560760060977288217372109172839856029020152203529287544730078330750949370593239948115916568562724752100189949903398732653475908850819732807330668458027521799394636344402836418815911588535021669427797063933992079781727996745341995604135275975113839850053723692163101176244081343312164828011196875058980784628477731654460533646004728838221824123363214129694270996390200557976686792000709599796955116808427294191389873224295234225277991927576495741722188502350184838485659735425441959677248175708837205390548999023199934102817017140903889738319785020491165956594250624580262098318878226026985432415765707774699830229917927458794369254892181057323658166096629654255963128487395462533520488344315299497103895304163909908570718001935723382123432025190463028343066990176683972714362120459731556174242983458730630262964863886664748990774262823423849410597802078113453951713355957064150448012928841943624981720552377217887723026770399513481389233781362283440668731588154216241772799480276332326151998984660869393993655241037284792228381590547735312591628233016228011567888538200291734968782785234551897758702797502812137948335235034820990668372301828313212765245221121891866736050585440483866229435173131215756537665708742580263330568468840316943540630050053741946841982407747022091217501299093268291798436648022743928258312588982654439802630967247410032774901153286819893722824831132511421312494486409603196803073119324172853627482913220237929645160015809669488018822795695931587963125697932395090929177637169493219015044621172719240979658389377352683004222451947059629409316195331121534107103976934818104599292210946122670115341467992757232731090442784049965851576654888542324222101894215403871652146440716189165494346545072405066929966864421642665398018739331506402387441044070654224332864020887745446022798920961845402828340256218437116922774435616589564678453945339009848707876273471028248042985501582200709578845493085026007771693819896009267579933860883459871435622242329009958481644104616856427020563845382494698156235748309349517397402300384812659190772560741466971059168545258689093694586978248078727633605467585688305533619550532756699748396629738194263130463326277973512367230355034734129695659235811348770260769333552698222363653012880405042076859588709048711762620041936998562750739880635118779716776765647548088126412454131130445848034125475336234415470669709724975076915933535177079231312645588329189642067570529435010730445053396622998734067101482430064140174502327296042344115148585600407519994687110461307484098607890811079445837309233397148508414466111412687809042279605780331307282507672690713854840893779809149481471144867888933786807488316169230053032878258284579626206095346719335710099595811280506022773339321514713076225908382526836434330812435270426533941231770325949541831063109362451914141294473613180633549004966595159879894341555758151526724810036877745463247437643594310783065925512662461113883926680999597079858163814151427083681366055469694781493085169241977200090625878980916859115588567221226595850513829212829959656468716336159390114441220862871649291734786867788896577988830399639920996962419165515938909978083326076826951400287524738605329620419107243643829714707130446481548070388428621314144154771445519292705589142941878858096804822578833936340413934731339591413833445083003911558036558052920727792155583497291641355715335260358622084612915397352558698907684836376553460760575202416815365319056938339180980875688870457795937399548316471126825273241999136046773734484935063163896941147052948684656248721004402494439464760351498019830523246081135914872364581200921525823680528329000581304652242934465661269649875519238873252215957435394658998328746386622818750028035620167961901532544290945953228901403245613363929783723708438642239681005321519814822942226135912777189058285872511931839219311416847731219242124534014068640728575827473044706544321872549350481457176659009410245539062418963566885609859425452196414521185757481258859880635053208771390911370900131385656847644197740390605148845731154812821798731869443804086592475516430860516354675515059324486676915632399212784778141881259852521547116738926709808879635498446102301026216433176526257597332909259895963118707113012128063381632932116967540664366669241131991190243054818050950887281905300554579845404704399935789282500180727680157476084272751084849543519282431985219379761685647745297269057977372457375045626701472393412834833983630851372388670500976149003691327383230218903753616853846674660224657134031113997615431913861882354271647288023051838039666928193273668095336427391351425168884718658939476905945203951859972446234960340085158857889059090217839821931705872785298936391408859921466726300127125394540450681237130835483384724125745598394808764095959967643494948652648313545886707735938945291157315131638588824268979436757580863907201073919683886843582852201919600544323101209460730078705234497904248272376176760244871777085312167415988229084737756271442299955832428169043431144143542055037089696561409464762155306229058210420376767930114846576014602573753299264120683534774973622553917098070321395784675989424899644430774888403493183977407671783792335361421203145042741461734829530976974518084979066938889165432277073512314258016424158167533431400014946213376797770178345937957246972680536558585825636068761661111164827618084784884686935075350095332411917277652848366631587623409350251425393769259520900027084633103997838493547197607595861425169915985396857492409482314495922338941188593142559903356974621899398510045112339298444524874311340507614522084862709868475494122196108234575705434022116917810294714837161462725009939689397886201415179463573159154114726741013266388899634659012636565466187579252773501715154809048378404320900007257568763486004580869209666099680048517706628938964657781794870328193253200700625373239472477377106232835313798045113477089670392174403071672110886944862050988899249807212725276461773402622479524830630122289293146066276667403251627331239396145446548896851066355909685109285653842590784768837009733462614129104651558711711574044309083194545541002978375596798453908242706117430818103436651695001530541991495841486978930295234349100537543415661431707396753629892554515052405018201057543395311389674291210386431957843529339929906606865183381596090129390157110601944692497330310229457243577504656186358079195702862177454417431293679307090886443543765811786260762301910344701847739387960554396110325086028957314265003223160265631773661646898052082481991973265732720962210945137856631256201448287563132863748143068828671216852423870796306799273029846774594317213616752945984242749629731538937668748407114427387642806808003397158391696436693475747278713158262801940364631693575353032952538625258546220151108657058066871224704989074805090122353750867398222524839831884291814303006601511794474095844721810232518605973061340504637400222289434374972163517615684956406667324535738746151063299298697048818913222678503513912928812703443633621958886351058707815869743909642739061107306789512164342947439135869058234913304968702986175659032214983087500849748234631265346507495270978638482058840885085494429106315843978527301913081749725484728719371691889616669111580766994193401491940322728090897017273879275086601952419914447494552702951361681260885246709441650779016009781510641349646997224158653808542507811872666280850552532831012181105595184712705249333393382203416400250975220188494523551685465511632155605012758773723987860798135439176386611574304311688852203436094751474238110726512721786279562007707510875137970897634988887086321323509171532408976712984166568489893350121687157350208789974116078685864175200461019769495850725376662134752045748465311367498281088065835176714550975279837841220209669297962719901084624412630968721412752446833441298346222494848454032637464625584670620325165109517343057890991152104658922577442818913361570568770460272827659743025960999606322555474449675768872203677890761312902911823343660085846407474675150006531729521424907469376085983725004166787625663016540563004705838086709272023580758515301050420499484602569318349607569022243069396466953529006144613779523940972467093795805836392098214282444834083603805139025454148697776967476941164096415325134375409151817691995163157362987298430615969825134048440202738782953192707735683072088854992314942861994637789382591976951286784361850720371159006897032538378284014351071488482556962266957652373885665639979579002792786877109583064439871868561279558493081791115787477777513042335189735665075701604333140367763951654798526024331534239580916894050306129746750238114344749818212672579635003765635644519202508937931667630314664606305649556835273176559491903003837334316791869140559903751509933032299349820922366144945049911432933274472253530260017606562055736731670190590794080808679617156978882629939931498777231648677575391091821903050532443914763686112847986347064506071224594462396126044059772919717370504209276117255444324815659828426171824963874370799479573925886470831480679521680207642137915056584167250994962486511175721831748553847650144806704368355769210601353601426068484086436063653582125435203314901126443220035400260861007288883865515099971685155503599029154255312764433411021659875238669830972350811298529571442131371685079333128329236357088415255850564780078118924082292682854666700923205909399513274721858046691436080434578202555589150988418407744712986068702591605270002826871572305365719677045377051623710006660956858778155051263754818033965918919303575708995877297982496788112904578445494232321920311501685471444198364926539110541583131142729666857051504838024788059780073149269993133719723119629431138688533583259941488591790621988298745742386964189149893995394520622781652269061371445827722951429919734162417437873231017691498885924033374921895042178935224764703459535009358714871861084048989599417273903037816587301416628190261725620926012839024179850001303745110624257911617750172425094027501262500432120555183712193805176152417534365130597119262128718376759153324124393040987103069493910509738219050130065829855689590352916010307943832657857133729357045317133079102253312523133344277979147030468088140041309079578797752812013823854725237046326174976693363033470672489272032212066120380871793813064911021376971216326949331948128410798313181461820166417267687392144722030903772742063572865099899958431563131876439961640690356912656001735209436746203883102264815075130306960618364982114714848615521873492098451592486770341803850337605706765463813572888642802721537500788689066507697396894448311691984841735908782286466854030917687109245247474134859474497464629936777857878347760793186441157107271389911854792113974572552715217381325660496280306054221523069689606890161433511020699461144085361127861668105722712738267406547376239174433088463048191629464441081875133473245134769390666238700818189118116561492816602211062346893372623952806754485147820719973246890872654165466424112805771637435678092883386334662432587737971116325837377389031713849971783516469425362924596367992719252735332225584540079206455540108483840284561711851230781198787866062272901095908310537307822242567806178135391894900134544445218464465757544365815136913484752049871497709072551421239344653054420728101739099883303797918970502825701350830853588721199567438020979853415770154372437153124843074474854122386996073212568520602016398820988521968894877704499229708655117095216282375856971875494145048303998200595529810990372676781609097594160156397687272973438270021170530223371458564553079705767572745480827648468893300413308204484549779808482759885975999372551443569565400240146147019378302895351726028891120433020588074321869094777512012640755971079969492942795153439875920486634648012238291823049374720289185683494796299631266117704445740492208201329968918135517285724005321066757754995605554497466370586142620620447440857105291961964851292436075958960956659785781872331444445957670829049328731716872985870645389192411360868710175386885155198472945315914378848028884833098721035659011117416084664555657289819276784702412729402442442608578680020794940982894522099512727473466701472056709291895963105608646946219076132539808859079766435964785701803246053413596783785004080679522550324124654705426858895983394673230647439106774044738112902709935236284219215238090911821422580149257997077591925320682319009408491780238215966637739582602518223075030161482175861876369681451987554707541363399667773996265190856489659792669439657815553105130479018609076250002029799424566020730588723899204438845389930842866015372026624022843993359476513456368123903876167109525508658724046949917076447244441661992275934324061970187283807148394174880547757753950400822310318664185440730329795282829904480549509405264688061456194113579707018461488200876237016078059883676175241859197273635146795809693742907398901347261543086460957937975887253961588377950967177618821679314536498213115459538738995577621111751768137890780631104404450538491491360585762077734336448949061962208860898944404178234145792465485705841243036343252265906379096323602222012189918378380665742657628136200106606483476604840819258832066644115557375685102984771289510476881510374745940969566290993644388917065102955146246300259282427194882396153019717084578026976650279143843424539529454812912360112204398898266091623146167550192515904725069403108820204855033951985011657467191434693536317851623250032000290980332108751806163093954230072213654561117898161783410801913722983672941881280993884711608448081051293380568781811161895057832260882325875976590074503952519267320110692997441077035227930009553692375841606090111542543964926152588968083645267960953393886010506306095976826336325748349214061785656819866173949255599245566341024645623764913843469637068126475021746092995961312286071222430061376817086741054315986651142960287621693134137191895826596085114213277849902215383213083135694756454707759499252941712744574781867137432254385870848804025277441116124187058787886305031239243306022855879322129362467845309191208715015768777027111223831596553628146518277741702081023168204833822241423254626796929043374071505676065862757055575926796598527995762144010331164960329934780027605134339164835100392622367253171497208581894666008578305576298553312748644241377229656478077514598232486486054040290158879657052490968379062737513617768815464890414234495480808935056750571830919078982850265782501630913068761166020224152325490720601017106644810133485365488638074664434245463655339609005631211236009383594816762782772824064246490306242476570184480403154002523055616434617672621803486209300598244255901478862440899343055203653275087592268906188381613885817235539385210585604168864630393133303754162515463878403904928903976752712741823685649403440503602187886856384928844622791799504398023051008901441742974652718847414221027386624114752456390907384114976644119785049143551908718285504358315151546379273281883157086840351280936165912411016680905950866119427400713058987863275795061585235171097704650956025182947652798381179633442611233453340631420776438050552136645533748285336327156787576385929016203386081369512026437130269773361695843939037699602005485217236653884629613812708963789571283074749977731512272324539714784051382845058403655532859503301700229644281218860621510168713319201515295200560182249770748966714370482708236579473386350885589279665890702864412963352736181448686374184672223779610261264379947727610156275103857021436865840506006455125879165497169716577660499928383549590929129301136955934025388751467830739707438618001556513483353998006047764481463866659768504978378052925637286885014077407491336146400790318377751856387991778560129228253022633242536134600187356911235661978905112624253616656266150704660280609028264843361770235201241661567873417589170969268774027754637109888428236357861854335181773672206678547618732744459416468008988389157193777307881960953786687018498807071495459489854183825530933865661076369862476083206590919953199641018966217094835940924095772431335928790553536451730492128565653579895425266883260826600577576940545047982550948062785444252329608257462813909868782134157722865612538807379864085576257854283967354850266432836919886010067708415033531221533032703662572000128395059202993489146162255363089711341597910150093100197556912863783219005543666643902113305111233026097088442895594130981088575185797320975948189340690033325290727921647276683813687668121234939639237719572360321956353577483479369117067406373417928612802243468546215158956623398116562981519689507618714951789953557244077785253729702477902783782988745720042681056156636646606426924407890024459142355650744609009006232307801653812495699863946703616060617451953054224678712565764149824481735508624573032302899067815522080000711444918956808677105048352655398548943968404550600168148589612404403110153976663732862606192174518710944480367648270995945301485986834209808951977045357514797600796428428037615321112892320374386092838236345626544704917503955915669417612235807178308708115088571887003880499192052246245131526512149168413104560017890998348914361871454180706787350068328060741491005620934975748343563307047538258211826928955073368848699554596846786424681764943337828133338847684945182040211987527051930376761816091762708229471998904649908554350510722191366568710085692349077480999685140479803217363157727726723184751034822317161498808008834595146598659491118546191068670412778814946733386546555049532453468770538935278391781074580296157074336042653164155042488866226634473036158831565029028744631004552918691055074388990508396620593200782228459427382074466472206127151710412970558649858666125319035525048583865518243676675032005664478917391202767201544156881683331444406379263708606011158604005506495112982338198514905991231995238776372905027752803342844019789681176845007379111666088974403889620586130868310825318356425282788380631335618656103016850757933039076698985980454325380886921229797172074642057688771617109196596096140552912279644048457240747489773662729432373800861655697543648336310948236719746298467723700741880179336940264552998225069330477877764430480811497137622724953692944326319632296131293541835721485788209907730719729237712775731760987900038952100657847488239025232401037008813620116941325392025289018379686664278142729538883183918640607696370402614365648387631552241510160197264122946821962556050123577715076146476777977329839739328854197004478475713283215089887156268843140201585661411680790599778023508241256567170829726313205002534046946926631949531161463749802210232216092903429234845311777251350933695817071180633232726203457008180216222377881951951028116389411392287830453565903227554617851958769976197373426523176022921110925870954661767303940148295407769324396789746165434517178686987007196415667611748837656658749562014533309403997104184475989408895910325902224773860880780674485821259936334391546677793019108631359766291028580507479312011813925106415572214753633337927072010725219967134586298061804494782831990136839994699401897936503107222676327876914552894492151036072725095065642962718546830599858116808856258620579497109571987349907842797976975906531367348757028828200291075079718416780122421356628298709862004050640723876337716857058825212466254662402761265334853506387989332366340411446971093066842469118580782549473602065550580572233402260165022367253796295562601873216890823966626964647833527602526579227461613405465234138859158217215062058270333292341067736581191959319894881198936044240238102590423206151204966517051058464422593310040207295444118349479252744216029306544806327304943519652244139076281113290705742728965543953582769062122960685238111596937964866603191362912335622132223410576350156800904206298087214581289233569851617352639095748738254487871187057641778748390446215518379121650362019585903526351965080694163190348121433349592806263790864440294787117938166500224570280042590223703545705182983701485944420414792541522601737147948457702868507522520911050834481277963860361551386533443478989350451847493053137662426871190591176128096915695074455905224990922641431044772231836259173883831971365580757821429380519961273110899012399161634997829699393370205336293363669263578721997667565156552476054065084228964763323543087763217282998278157279513447015437609715925420783726219380118862381618100868113592887320889921736349819787436817852087522825230114864101293711414543531034287071102914906581051979191358179988430220254902908701569613757272381769909313186842250481083597538425352170815194696612433868597369970376727353495771821949474024325597840188235736646206920693016843220085398030918606957986134874361865820769116379469077829813846067950139647292570684117030751959987867387813850328947842045771876536070045314463788817483001166884548724823453567227719769048099384844569332436785337804632567487170850230264355350451383827413290328949651584463684883001003326593990694088847454245164914273411139543393520973730612522587362266200367219460203188813525081831504840003512886443066033181657778718981666060947564257108343440699056542256461964449745708967448461937608100768953531422029413605290630034987772786416093150218571269220100745746372744915427513055077015331290592923559039742867802224903979576906566271270097801620530193900259098658726702103378242930500756419398582388885363033467659737712518367954470235747866148443670216091561172917879443379101951958815962243650257414109955770357007640589846108017910087192447808737276774408740157857980936551928804499130258569759618367250851034712923459619876542327357661468664411889936395645974470850356714903729931134788732349861121894314710096999288902300281258423688660943782434629849589599188600291800062333478217998481750625146608874732250050145747575316466273141699230244247516366158834448015240128699664769178630060978481941672894477019310646681436813990948445949941222825951431613385981440839014620371757055479403671670259436029529980081056760689792010913300124057746230391308354112890525649099085777320581264748588389651927734675771386838473480445837958987560698805966079124535908808506591321098723576527762014984088840567555322574950714425023544217171067155785122359881077712221577371330561851444361378877955312160655275337929780649451423323488641799543703506192848534147275784494856009155110346293882444589526061528754308450284960700886496826773206107391412800121731963098355918513423174245787057999728138793809754487546535217580355495245344557459052911908670406120247696333143390342462037617602700229691762932391620314185482679665246462498114113469008837233754125443048678091657615439371267674304558177081983282642305582316879722174364938665631383622363909612076088826177174232960611261071291092854131441793919362634345895650420862580060941166761531338360986391799485365489999229171994677229681481410459806177615701326247613100359461748935290597458898840454818186621258666206098507486180871088924996693803006291186792917517953219494955391073340242593987118587256143754997716394235725248217384013580763455907051357312557327043021644821795680475567019243310290215375232704746903547418703562500008810779364733783973715624018930296598456296215400012355408887111907090348354872662821540366034082039677966140712618911566694001011921973464473583214231339677819123992272122246155539422344871053937847012144703392691588552190205334923002217594298861034613263832624904792525869115515885805481720478114829696528658534728623891543549915397343117161810157815063220238834058088119490743997278250130375653091405043822779414225576757353662850734469795994082374003948016026066131574286168764851330158015226323018516621343684818029535617788258673220605132711620721415265515526398219565056202751288936759808761213480415955296160069782979387873578007984228346373628734358070670113680985498161522095481843307755680337891667476776809427227687401535338169094470912492547673636249569859648430999428336828051148186046060610221745172215624490150026683284685980815090214589896846190364737742470293700103920811345919814574506787439474568514513001855314605463630258144580912228059418759416930502904368673932588681698792133565828239398018875276498050043430046527449204648291485368505462555776469774893128667825168928498412784572283452531784354149276703231531638004576380398308857464659235657541553302492334450652099922532165091784454559119407549124837241725219547610632415886031658232332926992431660838927336756284080428359308038568635880584489576646685305291337403967667493790426543372760581203292507520088607089778465572302233162380443005280024760114895273510892342840687693203140023349585750348277718833953980323450118955470073293288668080967452215867627079852675757973766038490975477628842281130562605937017320866341530705424314669673656793866108356106677023402945126607927446488725924468135583622750070818875274710090319308536853166159627198144043144619891732615500458176813897309003701837502706845771534155514248455560233520401216822648725515270422269036649766770973043583765085932208290490199797665511748450931184601558959347931490934197450841016384528921569686017924727281472246539333712687272463229784729225971535761108958371321240461609365362881274578489638312260266514819811445484661357127487884246789841868076074295479709110394701650775749234994452091042439069830121457913534849241775957456657548572835536295277804501559125885539968918002275846190427443419690039394482236160711015816066366709226073114374554775472428319824702423539463683533840724584340184433926840564594902645560944588212609622412384921349596709342324537174470243404701176921215046453766142845190951969102416951566319893403023142322234350283388493830101637546264092361631099017609449625224696147902136920739648598694947068615399644379199496249539063606846955742655762531683321070629345504063159968268835472457890382368028159578919655728423237206673573436575441347348074230059855422336450028538574441407188160012628505853718112448981247762139395109964208952898350327892344939842607710018691774578582477821538472538258651840212826967744876431068219551399186523243598813903451351434507610983997620058423404823136046597440943125359647699740030512329884539473446514992922178349504364645990794787122038348259012153852372645263293575636431524471126101159414700540443322680346507049327345889876649893034994478371580362539118255694224427313941949431273098723365502484779536832421943639323682051325779143782543535448551991356309854533104210209118132726456531218581429700768806571046977751413862838105384074969357520382832758471666030052817180674597658136311816042509617703892444775724620885062718728778305229521090141137639589419927228044610255293249438181322537890431264284298874342538548447367773955475873376597882988610335238853679643052805957061097886468534651071482202330613382424690196544090359879727579131545754996572895837213790407815432565267856514706454411789776572642380970865117308964631514032045133411368957116027410497098432376873679790925108483025628445436589045763710503822295829776651336411841391603397277568514259690036087471299669355387632800466687271276815934128984695895658596123911995673979131178325228551049386176630992388016676948022018675495493388718454521659219011994359214554223353806524944315797401876009519559714431166223940102875069614797244628338323832523364353166549399498821595106333787697530299405226982498189511285697753181601003838724149074394633593584563059848879954057519430757016179921433735835560668891322135307453071068049480601205801082446704180551389238553629406271177677334957440322290310700968589383560808857975260332644009129691859186698888987749301868391733440809566201342933984810911314192660497691064362286981600292181501161074139009720217415246313567348562073292839975288737953321918049521615443578518526017011711250475910993734956171424588505673793033520259815854102970489897901596681733018992812847566277889339300962063877935542344185691642934745983234421636045960212959245658761495621010250808870848250107620329228046511205418401688269395305714070765225297819345762319299275450916838844106328328669023019720387871947306771542287594876438903581997645298127321496889663921513988253069883599217480557520846905259177792800891197068638782052844986855300558540570007408835425634564598148882855594471469056035132098219949460265369579429838614398871487074767456780175204293642782183551326649246448152087357965957227790197017161299642486388609856928515674915722834934818099166337382100136549682236097591609886112627695314742729496999284714830394450099309514161238721328274827794311936384306377932091984072470509694174333411820947077231683381849569662141262724579957625100459674418821585376123891765973417147739750228033012708883727426441694041292782377938902194822706972235931919997232169307255987049290033020259119044419408013309966385352138242715470298260591614515859698491745850821166261092093377580668006114767418221296684670953959939885248459643924331795277883943158929828475705706415677462495777709564535164485251107155834415510279720923193016210959845509865303159194031456251787157067221370864422349146745723705496153326376633848799683272260022724381089697903620791865777439546271614757230078837558365099028121036769764841289746521661029799932927692674208186232077352971111574580909735909884281837787910770014522343643410641120046509261591772948020303511391284062057072375304992771214644813169187258776801755657314971634108190575644488089197544087303107308033557568523836351299604981888562864823258101299326056850213912505461610668176995455973175825640044607465989413352880392739636916019586738161025846303223639584701032839995104209867642049617651177420206419479293056459528806256954746792958232407467647067902934168398773991642412443088758357771242356181805557272881723609425390762926368168216534145634321915539298595622045519061341052027201595376719851091214583449702680296789982530349035375387326707166845732607103692259343097663437149576332687422772790250261306992671538174114632835708313510391475839924588492364532339238058494971548952429988518810693367984000067151537806141071226733167469104854151719894843066901310893871677754062984704580390585813507074038149126176572834126013058787696168060671508039138606598056537494438011420569392938089384556963608341639237419878482629549066072241819749983547567939886242128380719110463618997798152293210942711185343544836934913975908462249637022332316245967771816395177772584023223894311748379074746797114463077352862682012689943193114806017150316206257220998313909131266537010191225853157464416366212741428422880943279335819543995479766921568672367084535347327533468375774329441975820647554344386246491821359783429056529030372597278222808867831919175725745524196359538159384466978264156914702902456855946786531119391781879543329680161620128738146672810993821709982715697569737535204856138608161169414144020487348777930166296840928937095723003394512068740934883183741447027242598804841040503816482046837885426621531047981576837385642096628788757094205452580899069574779757555391031637429272767816119325580706522605448192483220004012991242314059300191446043590160710327109761902954192779063588252829444641230958527328677049450492666821094958702611467341449158047225104799506428021943919281048945163429274493943047784962044835620195622960518471018392380295291934020707637957462137982833158583433014901029636791830534714545180436848819207643786001399978872182973110930338636383331095867526156208968044930842852245365603265017629683690143854638920040624604341454995032945828149753455334915407824028052346453908365646435898664462044715912564963860104758922864846798627642852547261658463846401605374413046095704221176999105261951029624808381688713383798509057634441896868506583364038615941640949733089152159845124055297859945701221306203720571626545110049130462689123858883583154409545881806265431010805043458452050291136127334832651014646238230601879099534185622886513838677116019772454235280458517747126856530208728753166839060950685599023950583255995655625577823700978478105644577616281094388873704627845605587670958412027019647967529849060375274139739440052020231266326691733099341504318112571121947803687873888398303483807577673242404395103998688342609741739349261174454021923939103110157946144918049617516459009088668757934539494767399735159928860988542804207708808541069287968076200599307628089039362230930065574753650587863490490897873401617184443242441038905045925210480847993298132245355800379032382053632129919707274637833741160747986108142192043975948248051935224754291360332974562874699759045529269127306692379008654049534479229466765605322593225529675687580235139512485859856598739445872658255116921368582192659251608200907699316022136136891042252968748195309049040284795563263596601968897326138704788256638311181485694901721808427937114674661944899842145467031952582893812162333113344772610140035365768925203442759680378057874073402595703044988431790545618410306874378578117305918410508662564491896098770517911139972306039807174384463578600532505920201723183331710631970623403992596803407602080337967288306655427865063128663076858566555787649942161929976440072953240032792496252201159845139526560422894556354583659851374208959737513523059435192487783288017438855076067729386192182154318144347270742500965148783563468419786688329966388145364329787234325537481118727412275771062474975459556973925076898715144958770366980740748909044973432624332486896638291265867746783621900988040064783289742960861999708013307454126485906234877832298383662691302816705306066729058013216710754017062609075274808772825209389884153843660697879810395625831689604115227875210738168149679382369036885614490314477592934756122712567270756608436795124706537042109759199521479787022861852926893769361180794178554619428952767423127618042886831679064734545306129584396781706722428069061776123011973223918927557904982829928070050557276027655562804136545765915916890209771323938502966355794839753378695766094855257459476233344468785496321914249389413004223355737324300722161490247072927635005123336714149576354013992902106875228459548229795304817946294209863094132914710008469255116150740201645593182139205055510645957975912526667320520484728988833417105906693771600220787526296294931333656524028031093349125978055599650593175195229726601096335037505189486275257403945203452220038296059370241454959479166099089697715132388597552777697497642778476792211142770397563706313626143870033850910850003122717675715678380446536112540643653905597289624303354441905820424420940320321096955898670417177995153947011739384234469141112217710686561674690579224736740624447713398519716197747399257388048493326032519804685272774899094632954265958270553370218705106419514943519779229974600464203323505312005453917133037210930762067597872480007556456270232802244004417284992956496739234057281867770390889753021487174305757035021079642701445594398108016024759699492600707746006182488723708438681066959226884227137714446872108229525953387562296941262174128711429931757353257442806376593523932970040224776110508195121009819235423163610068003404577369474940307780549631914840054190812713621550247428411007259493310463394326667437799924299726112160969611168127252928729409433837961108006052035473205215248038998468552717085031932201431550210333166290748846146155341599690458664690630570840957859532713622137735196456772780526606608694028242144957621333678995180433373505351795360997113526021185328794663758815847074366569741415261341945681483994419955142316078834670432590007708972564268676662086491581604414200603684891430353214872484708497715639559303359115792865893640377724860699359840341320426651137760601926448431262361879417063058544614283866003883126833299965518822838184390272670663151653912077240602240150776945806416231722396267246936456915128641466087984446892824928811853672330931724415330244691036632671171003916870289194697091781392294473997482014333195965312274902883510244742823310392260555698321410508857205803811363312115619517691330899726209657946609517682059659132241689973336824861821134548048168187070782314594475793448399199269488842526101395970246503584622341194420875109952051394181962048939039455757111549676796613520423329700440765852779926435590022104234498708555847716696697273036619196827444307837508208571448113722305063991590530444263031861146721509186014196385839254328164489385695735972100816369296395119636132576883864905220753967684425152654050046308253126842136754213409915687293367197376762226692278868618276677201612561499982475644070996572507062037414835986178921389358277686200952377893767228988921927731374755938072568466712653591681429031887242335798057839525593995103869889566427393354771761143804371777380592742509902296463755934515728364154055096194779438663207518354629616146987617139684411045737579706448969294993726945590619142405490734631655112523226254816313201961102345583310285516065021428981715363070987972144045142233981213142296309167886926628236239655951244949631067646563512584374776310576363518741699415495397406249431837070297540824309302645319731587083407026674912681703535031755805446616929355687574930083669516669476334784895809383403617232553971384195307198052606958811817302390774673698842008180882120327680214395573353263807340081605347244466743105602205637794639020669460399546103050573510811094546941524488562176677085385478899301399023047891244927306733109174749505279029727767677358386598433914314210929581562580994482676011750638368638071416300933208257294622139313741079366650448947729469469075785567832040485498144734622325405492898008274761227227359250312304341528776848566875146277493740535063540032094832577308684557249736531333567003824307629747748388033432054582034228177638514002564592564618307132980765934290743400579850853256332579156160878730807184058756654245810177614654049417127848710098453868774264719389861657759026495103405974110322990023812305928495079951822980514938062332200109108262452817827963904573048587043329197551560887928824076788018064488839878246381254688497019557880540778621969738746298867548978117465963450130029168046059864787273660532307839670366283350995109290827539936619352139279222215295219840314524867093101092502422400357193584569128918752866204131486584902765251495562370244219436045139495006618617044816413871616686426039680957536537778142040894825626665539784763343523746014710077034525089871218213234289420970321285564217860250597091901615293767077413391804836302378979584574003174743640151586159493637272726520692458027105582040817457895516330107922348353339835952403074818514958090243099856239551930332485348778228288824867222887164711196388025512102817861335886381635458891413268616075655268237260046305627675467080203083979853531532847119640185626937542981618703256848774182429826243400601486631840678765112300923075020238791935756641621668937353073481031241683972723357313459317705736054605496130675695164641692822039911605770187528166225203336989394330688214800638094095499265412383783254243362922640955186133242267764132758728784245944291044605681034241585755547934863516417760765458384283618169234339686997695907009549528707255636819905374364181138670012071069956885493061531776383794907039054929896790533989193125102968192726238570115365129377248580531882360609779144104415366296723377162968234704351459982238403045412499296704150584871609972872498959522542185044831639443013310556547549718245022199456320703375574534364699220953716582633453248115366400930232521495174371076943836910471535017821511789074475858555833598369919664430500919125657139678873873693986933614350893346008150883156113238166817597923908416696740923383011401323166055901079521952459909256600659217184989687915379528755752043645152218053733789198568831333608363985946535719642836014258614515242907725456638109414055686830080787032680497414731481930821693495726747416476556321329332168346801199190214074867806684458038192137699761099591389158599677817849053488787430370923220371929638702595095224262145651157666758452033862272871634587326888327478880976608234275025101195202416432160839039655115349564760440841932621758422474904008054850930880724335249364055423998886844157481374741589731974388109592289610697877261071290091837802981616919340134701311274418570950034533672826289107479401521311457237938995736171252434800433397678636071417952265017646394714646681980489688434780495750086919207383551174697370834109424829860141092322446677195904970148752639001381802892174774053139486154336978626191733622704251370713079179891066470973370582990222920888888093233957369993696641571326589359929963946282858105179932082702559674075049087949888955173718555766756055316722621819951454237112131122439885148507177272619274207483894091378266315153279792252334889896169716562140546976979222484801666116094448043892391985102324213076755844336986185413222066002795896207206516718133150516847542891886023687018621269965074273189068209132875128776557932020185025697465541885590909446429905373541493516415546342090438971224166540675098386570141585285652303161938219441040508649119272563695455186581787392053000382753135559852298407464098942575028931602060931749216930521347784733971818098050433567400876715844030891104182477981896744389742079336325728942586319551762386438269097285472897171655354399552767229897292122500539795268601181552355272641065684471740365485404523985550657741649190628449789592953323650694028207362886676084000693169614507419516149914337413740351968994429872066507363960486902146917504179033790629261483786442401015834173843891145932602838087532625280499580516196467209050380326646046985301780355141149677409830868894704162153425199555431563114528438789763319287624224549233694823829533971291982007498727683538172800055468471233970677365839973784166924908146109268051016660981325776527499072121457152651352946406411687199331600736834346706088376425460370360283710544283939758981558544285881255154881478463202737827570555266043158439374795566684733992917672374820728872566286996623511777726937578201746598771580271019970645534935851645321892073491471877499475997131975170641275510589666781093457589811280327816177879281316259570791151237877980634782313592926043534324770957601284588460063071904072339038521597527365803234991204273452457111395012690173257595849560738366396124301314974669279864929373043343111003227179165381233189116488480497525716113716548245355216026444327593748008606947947637928620837187621311274688110348561842109236974259435700317047120205144548364958636542562063670256065179413601814084717886030090680617716121052655595467856040158534688192808390681693537860013538585639203545886755863668057886570414825470502237045481049393530334428207595652098512933693760746560334575945734964579932737070492617206259185035336527958807494138067757671473725827036878732308953522413816572708260141795801458036622406795621692610037629762548617055829786908877607051228173120040321674738873180755573749486303228532574948981020572887325261426812644174509200729129769363271036966187521984814532031027811724401433438972266806305339286846044006086318537547390049818053099292704586127512724091120486163721655300545140225617868998675943301906362620390445872636549230944852679269711660554076389067601849393352028509584299580327685851927663039277186595895417525961077580365867177195581703928342421628119949407147609235024684084850569999775519260620330405922211391208784083277799992910371444512539396844819145905336172859350194637287949899615869314528207802830495809974910305260120457251622657452103973277825969046939909777322717520053393833989774139419913375252302602682576004125512685981305033560684534064167949816769999818354190041922845587806737277090804080765490648467117407229095191691834443980389161353314367718131467073294628579371252202858934459099277795785032459604943557427259993923660283150716305498861349067049417411780637121680125002754339555109370576167739120239679867679180186499602068398683693432581174135375947326196811294717333804430692170813506192903874563943353125833862341656388526938323250181848138987845601404675964176965897360740422418525491354013987285831688535574185047133565328643563448772309192672779225595538070710972493632206020570884221768532501978430597583533042580010158944134343753893955420270549784748005179753074880148239860174537001309196220463258107321835125061792231008536937961337210361323052829960631311662598357529717169975700897172569680098138688844231068501643730439003292353651835806055920339937065001319280712143154502359230072493676190385921291631267198697358065651157870077033862205569746811580899466119721893684868029075129710691367955246965829830659756181039894693806731666718115199967984422253312634910377113647242127205490681907058314778119284035978555624147741727360532640842890845158112490053397235471905613910517796027858552280946839871992237124253350663010431506909390853679076666129894963429875108137783909158646333476836285026006922256434471957512889148417565326220998606310453060249944850754708838998385049672740002328844546113847568589046781627084637337961567391115935475561157437993080989492336182788917883037290370263280476202109863008570748674013327994306594420916602748302842193089798307474704888306694615005166505610069214053267318896472334056148771079065703967097420941201104934951977693437462673800292610081201319634957183441987092604605433037225703633842087494755372024260555860822069024987109027398295802489439612295042938963119488789790200548171401740074501699830790982134028946405610379449591659496707785879272411371958392274195718696850200603962318935430090361611034210999286970578291704092353108947093797778184074678791779004232830562582974741058863176987493990245744448738651873159933366776836744700015501207887820454018169422864097175774023227411248359562150494574624883015417052619480653893368511241090626267129391269932845002003943317300855033550328635109462910782800321009965318955622619474466263368486424385224485653785186177287730647532686091039497001024409874785037485571392889109884692326929691886946683861013767674464747153463449887133819844161629656229933587895204433309826131765986070060881411980939945348480450390919064406445557850294840018962408113193943779991844529000704082091804654691004550738658365794839959818417225800911165559508580350566320507792677647937349120694382385784210786966285561880497206958752247312194263454482473083812533669482307416856683192979613708355179193039418485052574424343153506440474942474873145214102719218479693521539724743757645135586074576024093196854216799708055816298581982986284417208210286255566074798652477391526945423528339461579246857352067476622067920222233829846680489395345480796565386066004029983490159144122853753439018128622899284363137340270502579447292518185743087519220117885001771029430478539843135126684665392180457913591081327848247361363223063093740656670715488077779166400370012462614861880419846458567278783713044155163607306919354296127863956814251850966037629002282090646706245833138779423232510564525725475074035357810005287604418055252105252667175332849007669721579657700333638190612801923612218456478773045434825274048031537657275844784658638700544176520532925915102191746329800331393227121771733330285994448588331238951583119771219326956987991662918799915822394430708982564826692796614650877781799406221499476873327930400802204461496837936610200257864579410391341178746738478878004268817178280267079690081612334462380593799824497321065251073482688585458957814317050255960690046485521939606915127260266575446396901149726668240997991956574190122698544826566071348326438317107855919902929945091915935232741306583338122025620139020475258751571832940382341229446836905194928436796818068828613164227040208430922445851601295341398712362731814914768785293737854260995548859913057028886229408351250019821683273357856511815560953313837819608707658525623912080101114593170874678540792122426333216521544146372292124551969361469534743138322909388217059197446919507803526891728736593187265108929402955459473068850644360278888593178433086096488954943998867877530849997202411493950808794339379292838614579406009613242976938692933197510008755986388890047511829064909687783134179955122025416351252111470011063378186666671923773542083148249985019996888987585877512199561632169382547012198780733019908007003088730495740702514818623215272232426590953346348346459620172579073490224538414360736400697640116427806651938936354801848063012837196466046151512292365509521097628692145295598364260213639814261595169759389140660400304884422683306850557311002286426769385298708890577311929310441974044581568546847520032017861984870275093890824431279358980236610204395023507640587361084647759656022182731464278638691064230466992935229638576714830364716439453855297336990225419959925810946728197039238355215107934463896171631184249693120050803420864922257611497468571921238576652773832059624204038992999183666872848991213013710274573768976136639325417708773405644479274410948244520916883675584726591347251090150520284270623631267920777378106529534118781237066624342980739866502945467152515304755896154143590513326196251493436863046022389027195361110390315435774983851194819746600974106283038730015590835164554420759729666387466152021700905270000757345193165015008334008332794078320328296014802248915719699605580755825921166110956525556974210767262252829697629075374723784079317387950895671621467004768783380623666600965894552113006865646812135304875503339630235254378359459321864251676419452290921675429548256778319662215185073646284268274573419848204039513522618554201990213752003649248263902824226971648666125354571241945988033981284380628020587583169727003332674301077235036598773874751074992260183345736761100338989037521703037872828794627186615353206258143092120617013970390197722110864595223030772515822939881272896583036554499339769325521502992742399422401276838526706812144201439742072300239965355445877469246853389286080969707930606309201121974509496528774324303948065811520980700446221852239632386919808961152995388761695592083976025163290495125716385985168390841224693258058716571381509444745498475022921677673259701498253600547471592026349788211473074087020104786077067161512742839439803796867295636477450079738158323873759301396743451507609933889736319200486086537500585703825266692162089977418757635604441833517509666163430524315082055647730397357948081535526343638129013192668949609284768970078794540591099282544290323728514236737973270747790201521698922255338189226672014068366002842313337699357023065575737908019235506527563260215428783280471944171793596217228168545022448182073491633990288488998662126480279613770395317771960556232331488210745527040951850488029309242339318481893754675659963293321560901530719397498764040382812835724920675799992451245005938871435725072739237041080349557017910820347009173427961309621509300000820841457236597030229460884754618836547319965361975451307517041077392150734241625192800390876194321435205881607620993970796295771881480032199948204592305478175653107188088704485835029914640687806352426762360301351410486776150648671857628882673060141403289145553857847857439712310386421124386494534636275335126879566083889169416770859985254695738905708402416298428042799761620963505990543024885275944200933898533472203774806619039906637577257582023761478652570916859637182566154870686505766768422428582273954920140118068339239030384601289819925246226413071152343766723100782228416105579709169133072862023056653390569482629790564532888014372938647230232119472696467511236298856868090150921111600850388265463344207371799159068977877873133304897879765873739872465751687508443257435174697435613625482218467916835657017747820625832963368628853404610633255904634776984956235140064716523274199451750251658272768677333412312699401786983411796878303617478633345021103188051917285107086066446036317559930494763094098961685256658847474359641710952774883146329909355626170397023239810998186673624770229277438556413929201126424221258795129542102690249577689371065590612114796474001661044350692347603277393760151716795106890065047750244633663418031388433464781933651181464869880872235636908578290591510388246302019976749781312208132803154413657028272231322854363236970824828819323671542268608407097248630036336024805384871369308296917656760237231566482429390864218778012094370798333598921346943202151216636941769829649276875285793715150903582077427078259850725067042730655573565331237210849702346084553235536158483374898894271732333695509498196326503039144793074486708797111807387965385509533271037619546465661671987476698406766190349911281254853939808532906038532939881367618903491717432373556544157445747201273265619065847376459509759974778764056274377881374857716541666334000856555486408927124367203382424417660079036428815883711523271281635246273899282578708218468524746559177312970037934136326727102132194665351561801194138784606042335899249630955174823900696099416926903472933052105216447739299731763176960888481182799952292777242130889687641998462317167681721061243076051480672988729907931358208084287011456262586484471815701872462528791584405923786746957995307806581780237220442322644995547809599355753423524971471992608845751082877780526894025367503599713977750357911446697654433759622886155908657720078115006740004785586878871787062557788574869241906336661399918023535518221271345961784172344555203672101306626802061286671673450405122626187382089710983015164596137163169299521674239168237980961812555974482295593783161519291776037846221001691487730044870151421356455719423893376606706226706043221987322175185658767454956563195109425630748234753336453392504135849236707632942195119856434251875607869110347228706665229206465484429759734931403498543367497452942593187579522888838413510707509526226764773819226155273089556536617313321630537719857118818640536567176050179158904615145721970420577973593657393036318150279655799247918327463370168833035006706749361405231016681065504318743250095000531658052040508202281063975859866874118096558492801326940073950201548013541943494204150706202191552798698528091372215715243964505086197991940754979775669421760973416941415635129244937485837059374565123275618552943062555570634765837238342035316765992814718525407920857739984150270359655535371385038844827617784604123260555737656727226109999103881214407421893312176905953478009707685117374643748732008748627858635248220188286973686064601807344062804562913203797623171936216239735334579574673207291538643646737368999446776870063327120106714485205242450502490429889132314008000062011145437990947413817938655143564535380805724162275474502505890270059026643072262365827703185925133795438791162542460754451687308426839069381111138031537163824835175241634361003115006129010133316862936052930752086284153376640354340036538654697643491697832340829691172056778710888240782463737907568654871126822589464773538417527917213909418982919414523574935973809411921189444418493886534366668254697820006814525523454856091277334075512457301085869696753294048843707360406111763547769307360028676598677522238817051783308540913286477135555781030148206133220178511121165890864388433292994295936471424928803667271271486561578460050641980849297644618387735285299363840325093954332277552338339250102644013245092643688604525997797781079622576925999225984493109252909514811358720621578594496173256257585384881954990423144610595462589549399132127768446383008093781171273518924700019309457470348777105810254727766715787967368652179546339293983003114101177702363957678615657003095737733621374481900172750901187009918568397553207868204773338644798690327087032014902682107576580592091620336978732997590812225829972777016930051236938731400868322169367592260453629084842734752988665241902311096769682286463356319531344020086053571709223092197963032886042307920872393964064396267710698336606742612787151630098388802668186381813162580043429247517123086765359703276271580941740108922049013474390528977303788453428851666239654791114432650854961239181296644644854287154663265563441225684232745805136083598612750679197114627752140879928933081216084763976964166637218005738040282604015217229991276168215191590971284155486001861271499628780822154428503416036600958407134858636408041627152132884787312049510110388483036264412662724152012244783401966253695109764504261618900700335382465319726543661910716843848192789808107080151097978585552522088761596419378168998604611901921114411520997286276200920748569432968449614342639881667775978273024718862257303880521962947880321647979206663916358967356001543075449753941807745671299972353378274728340339215412444697955332815456042899543413977692071738164714761692063717503661651790879083518405697985460605583109044493855533829954289658229159174068059398290261158206415945867194002866798572390180297498457104086247907119699326113479346446526807561010405466260065226833759239347995461086063775828775346138137795213893610613808548809814384124513417962166499343265172616978611439765998975118199993423820839992543979685303109385739374125014568349824464037408593312738915860721284441964318256740952910140302696971914969422378904429073666919491182203518853207471870293593686376797759019758613220198516025383871878951490626280584536602335989802745342480336157103614018370293220274405149244683291754229540915053629166210122465693910148055365165963526260598869329169473588884471221808785732671032561464618058892060989137054371756862193222506441924122910002547159881787505680383189131167690368332600200576130494774595533653431272328698105238736853333914016660296438678422734283252487500272462146594897876948344718080355295693591282311128306518314142650531853802711622562558258914536271740847307306924828994020935449619128609641224224108553856074923722758157593227581618649571753152863427539595632499262115644958431034703816599133400693130209634837785799791299119435153049225834641111983486269510244575782596441931013078840610928165096285992634753337652557865645961123181019920726095719858352281413330796211024379461125494064284883425633767710049798326152242575798200820293990769308948490440879970129193062811100467673412734447231623325939830333147741076321254065417059236039608323442469625738868339788338358175950568184575730813860442224645372543900406554415933025400917398352584630386614489953261622845203574560102616710868318906231374028632136733105247339538235532504847426720415211830878529511512356576968385225296276021045082348402013471047377841535249028904955090822876317348923014765284746975730685028225460955707349072491989707022475847302820467207672909895447249888773453593863491744625227898140031437510726501785240729426371693771056025802823150803281924849133921209341530515183834944063888743896749460383496602222286027575889899845717940832689310924126754626517930200781216282452324173116186979113386282214650518033235745173633797990680208965810058371565551680794284769597328434615567794271619091692541591678132074113978175486513032468197368908811894373884806823160059253783546257530098194280602327578205682689057565014856388274572866660741204904187147616225405296902240453605355659319472589122250624654715784359708260488237473694625103184651845908796841045141565423757275694186478147882834447556915037184556473942842741679050542911332921586471161387173827629045039173483119013014156372008857827046269709452450515239528647316505503384265420408414333492970555304667955143756472911085504766785556593146498832138504083666312987809776349182721312170236781074923442514313432101984973079694054264228378212343016232033548600962279918179102060758021196183601227628367813441206944594376132261973901092833193414831412503216276819485471024482946293029265131164768217787062410084039756420203272293594635963110104264869452843523756156157244383059004895425662288677440004923956247077323608207356254258422114512981266514998717072414267105652439525699180091063566494536927035363749113361474020160914956203185409673987441197925176663173615227262726018613807726036505663893290747847305677793182656516048612649392055470428002076259582431947852714925994157555327142162173467743934907702717942139308972991294383065234724479941577985077001911842130088450852024632767257044913828751362783076530535587806619437782299139845964063081777726942172766475752972737861115602433987912817447401927885731186750344689627975198577293815623432273405531803287642456238763599883215612416956287637695120472476330220274259602177056339846152573874470101574355019344867226567214679631240081862502865626264259157789218630535731761401514388781891119655786167553215002460577450547519830261456151725045835144801854795602739869235266358537451035525381402931377435205890454679212700998822334365156637310735286801009777922303452645064567024885758839934309509826043554817136130024899152955260841669258120463181526343553337662747837726362084293204350899179061403827724406025013115391201235821282302058662025306116636920587101568992752754276732283050093185283837935158943671070208453281486021609869346521699518502111805010234658331332633474405677208412115244445200033875939662354471407262071415988533432767261430318959046562755052939092298147208556775683952094356470299435730071680100411141392336388287860285139819545020530621675017856649018840419834380158682713009532642399197941840357929116775690916109477598317868295515847964866135731781416265135455411778631859611319840506422902088261555823680662033385027756307874340889099364989174735295772304523185610102559690599979765546635288371281567051866183640827477737588575767316261248944262149510289137171688371467924944770823973373625505768855201358158139873913038701563803788057831764782975849896045755624136917054478257933169068570046167745707467238371821496879401092922702022863062730936838307438161022817833543714874850616124210273807936226274411481123754981681764851230872852608114273007916691153579185273652897004825228948237510239569960985551118222637373408835382457393682748216600773752804377499013548846513092778168803491997068839295565512606714305609718985470791563690444551221247793281594820254430328920984657727914245135109844345221320156663379898360029972323346361447942216784731026399235064225077995559298895015164106739920151417907914714518125751586484209789725389778228597455538884061634068513451477240740378177896425688884091517117451831900472355004899939113544681215017816274074100255581531662776079847939287764296376380907567729089700243391570355350078970327190484955291134414544118567590458820584508790589259584253984588029920339668252714928923502586126807454968166452651854309898907455293727454997122544263106087822928576678811076367886847908761447504109688162629828838278859807368720802830326323582912618953222065627659834721347332063394889331436704906414540231787771580880435654209748698238486416886862020804180242941444232345724944110222105406076605132425993080332727670584768369653786438863460855087023823241723634621932945626797258318858764763324499448410688478648583007412280254545151911711810087565704918553263494370813423995188627100677960518178501596622468040756202910056583252256581750249492883363075301232138946242897883329443885088328670608451088854101878567774365317025498143312581385852109147668844635101296272944626549868505852698927085199257014828384803622813553008584397071460507777076252176546082391324798084396592974737293453052224896789158217308050704788596883256510991388619590726411895412144999743538453776209701468433719940098357448635498957303933499362459521140077571552212132067543681758298386868210036107943592416809189786929001862128518425739781097576964758829439906689079924298910640031209858295023972522098167514930109672125009754602926859597339143578352937013779437434238461541320490821438830423907607900831705057027021114991189083840596286177571876343398826584078450474408154081294134565468772972278663523846164709888014015772868256600111473443858216172680179745696159195472140179072200196366155034035405973325981806900882265984925059559618295991899252428796607182023972444042179007593888452246199040488957168911423212294844922010090377692263920708881672242048338438373028313206692559422979314675060978706150407699386338748374092136246137181109808048937141414876608397430118523666470158620172220038558772110735869063225967102508125745300692180920252008586299646800186294111637971962557461616527083310819022087519467710893442353275005406658674879663776644710855700975007020453997410153873034035669499543296925931883628299067148221884046790564713503436725685929672391953087299734338482544182985926611412556866381528783503604072369243946630950065791026174540052674753871845587049666500566516988249645188027678917304898818224430683181961568876865874803082722778062554354991126651245578665689014408785046193692196403989499009074188138448194789965323357939966923456505652345704339736787268327246405081285258808819945775867963268272481470195399512233412078536864609943502513881508705373162695572779056108658471929864854155914908986691624876902903635368059956495783133106555682209226218832884494572228681400224830965029307483947513317662759688891937953974666039688646168241801505667119474717437907997212196854101234971733033275025103471495619861369020235677110198540019917017878786266460762813641324804086107941002228474655275034413085116172191087289567438439082566156831502345347643132264212205268978592218817254485837616575973589330567023967495491808410165723505186954830987507389353302352463079201528200761445124074936611569948689373454807637049077908548340365501234681938694636480840457211474517656460344918007399292808226745535638724726370179190257499782834825467381448040980534283963172473329577698104115003326290574876594817185157424874035241256781794539986627005248440033871988045393764126853282702830240863083727076774504906921040596844349149819118383072155736620126082242185079582812419498974724088582009307758274173838225975519773612808010338059956599248238708312927102240709539989058103153976518409104698549990221907480866391710394790626714719443450837266960282089492567651640432735871513000252055317972996761787097981325752906078904140394132477365343041001441641354717285250980258042680874583542947062234515325103585920942857985017059292475385300351447282367420698602317584992260896100365347549868675137511050143844734666696960430307967471658382767000763599018225579402466039928835358177233519331606969963517816989050247349809165156914035173136451626524807973513587175198611027700223803152750413814740149184342655097901298247315494907928529870306722051773680114976521487787745847249282640717005576853775012496243221073158848590569659377877652312970501909368073171481047242018857143817094140628219235227376668302639248767833571687003293157602073087184399237308108594383653046405285839503286019350883948051292980820016237180498069688343217210344076101097978301098211694134361897388959553540594382450614668917684812385294306435919431782611691044861999890604571592868466880636442298400482328063246866342305659398924653539375378399999952866814566220394528886096239661816820260658435089334460262937505822975996899500957017110660994210186786664089701100095592517776763230918153167405897138262967650775257646981200771978625669185532120773365730392742854286216895366808057379240613297748938303209397946441739769040797720908930461649879048876036003680262505580891211131986749046210079032175177600855537915050972473960951982774218891022349565864158605583850918234139865852862429642056052718017971954417101158034093184684546474675796699623537271745634256630042990243775243847664715125774076781653646045426753060312079007496455210662781909816591217012930842730924593814061324607791701989880996308006120492548828172512691033974691569883812693856613843648082595089667199399761389275564377867429224780920415045797557952483909653963918162492486787464144339169252662746096591093620213246687519257098014334885938238365644711215936035349992436372525329466705320818377743074259139836875082634398220722733329474965624321095845273007288182947029786832896688217753113163364755181936513743960661806226051559509498814747766993651291186666589985474254247482929155416065103928739182017228711279099996424176250192496717687409869736722064555398646347727924536865144135718414929682278122292676525029909743500148217612552753657479655373473287983103713355489864833802130054461386541763501581681501312176269938123986016959368075385822884416548427480861793258379440531178313001330328061959511568967748122420545587345754640814813969947892239500528708996280038148215919311268480866673344620092624872286742008001236369727918717874512141118774147218067473270222403612455671094801749860152920355344555882798371428805251264622753626743928358256332027935272484629743423543932885849344856428866878313482267301049424682935593339875847366453646765098155243142586925091077750697030661284983257842497564379058393425763829722125869052949758794010210688934601708892169084987184006926945316224034487031067376660918008359133773984871522843007441845160442574154566428011795343197690726189375288430930122320424969116568838969609571830504952215482066458421299952080016756231420396809929861655854866484790567703800702146600750528857019569276695082619974886572363198501545676918065129645656904213567946781004462571803806072580279816096019319887895199867669164137716914258101671096816731820464333413832724195907088560189933161443254037183432113418591314214839386845315799251872093008997137618306929433457322026040993498269574824588020110935688342034157673375828941019767328588773951236320442210115702885871592476629833814360228981177248674994858932393308760694707280877407086593968760737231588091749899062367511964068001993475726272848251235436233365205374467220263290261603937721934242186805057549845813136874027567316092791150796432351961292902415769175525993043494713971956381582135425711752084765267395293470162612949106573140242565372391448907960246846130280978508385675549840270802874159442918966291196165336302361949972645168635467569561813475993696151993973147706013915040674339096769316718474743167177823749707233934993027147904659175667043951160376931132461499470914698420041872456828288479102974972357250582783063150843557053081580722075642233302949133897042902985672263160180798867841664810713082906330543774546747867992213062023382716339754301533154847455264689062160272885211259475207909108811004922805424188471838469743437528046800606275318366593372417125050989749363337782730181433396667572935242605933122775224955491074232425615189353694587825885406499104231245065074008258006930032652195182170406503121672229461605523166969255778449428979517137344415054670585601946282206550143153703014542234316527248588595593644798138287656528121769589971897733599630120570239428765902850205003745221863165706030389892404415319309362797124210438708810836876066562712902622783866454376227401247181860183951871742823167799126393496130897819186975414835158409512684915067231567811874029525084478577185780470067054169704694022424277271584369268170357923721519551850151525456185615410810690194109199840853040489008238603206327669269519031816143417362645439679195955740912004222901356198750205713311955084918237057794061024231448833204257531129003541134916315086441894351903325494190767143694248983508145457649226166266570419002504386885607152245638833821046152157203700412661140762598342735893738203771241465884069882096515406649249211677125672312782160773171088362669361016797011221072380248613860077340519513469950223769616528166360036266531169644225213393092605498162444062770424069642486490396761077987235555379806487699641328039594164512588977301908491588513407540427836515136983143918724829375336045756495054275611564082364840590601173121059607239951519410715997680695748046602867393133600323485142038908530276365136051552930335618877353084652964646832603573853635358065941239359765471168188392974833160652127119094021453289341709388165472255226049745742518821516882589810582097847265674395157544459142678923843571141043765475943533674777889515312280994073774710162721814485038903045614933052033275012469544198243625623695258113678773748595386988268864677108350736348698568904373732533715296890456296167500215766308397600985723327197869448788661483756445828902529101052953438258183448183611527900419546597555963033372083474304587017465678258027587107587991220468767896529035575860672072642956383461004250973490746267948930422574750761800954942810609477645736818398193200075444485497543317486758863034525762181843389608055672606208828740880600448055436433618109177615331493553665631459399771843439176396358043561643526557717016929561928410201076620020639488461055131235578984898008984647728877597240359865686198674170155675501779068108013569457822752338610784678481769734209392635757164031137203361920051284553342581332039126501287880891956888482481344341438875900105787559207744269969160672799103587407142435116777426423944068228160422621664585486755013555019931968043372617292279046256636076734518010922751700346722812998966229320208914696972657924042180135753742065723736714330013889543763747476166442459070608138623341439615087217107713423260596907309066313683713696458752890486557188028852639222152821797289787922035265661313236556896341436413100577292802592972627269112965602604404167262829344151524930105746308581414653181199480217545761289526249705545698570369433108377852968682034868801552636955615834287805323279289968752421897332833173810770617193267022331707001878343769920502976097174866470371788047488062543582894954722299711422078820416441824530872961631782783571917084699616201556087940442745479245029950610148832261846326594331066517953641563217349187272548762137849398944547139582079495092577254218081175218949668137826814538622742253358435461430285668299199644762710633912582336240147643926988203476741896445995551310474472410449593401874901606294074269541723458881741082388498532183387643282446176030532858284558355646426495735889469193358119319038110266575724934986041879523922141321057967372426053231389741562221765551249660059661444800527106097203047595409489027352423000491025052394587290128338336037241761204033441847510429481407296196240116514572240667016366694103529057759810025387093376809052610926184998241663168507509435734930417796471136931964371775091172231934908967408290348205009812931591608027934301311903040570126660740715792411610445922859056156907043450971635591155839943529744217531740246301107004657698371302937714964816996475224485663450823777284049873749808192104286574731003972387841697766128699831679013758901620773691193917812220710513014976418469720955224851456263792751061956637404693879987202863537094071100421513730504657014494424738811943058482715920467040422124830296236593820599947086719214842500561938547188196136378660565404220279882337768280994160764705279181791946957185914095904602806166614742421790448602822663742922049924727162384091438616518272752318436002652539750389842945479209233258903366205616546025458018200483045745289015991250895064057520562823231621447387836570739170470461292621031323085552258603026000972231401587259854468602969897095866905873924217537801753357595553050511062465611764990186566766898352077676454548134984942741971789970707579914693935525371654684143227421915562009613949155752122917199812826215842836145986491712212588173083075586592718958142664580488771889031152361426766775977028402297131608867882088424360291597368683056734442374302315599273193841405984528523199382117545312547449278224969990226787195796815875635841926535242067022855937587874258398965776883400228990124267597748929882177952942052428658612213163207200010895035131939250349872590019119002007236257412208168340956580573643084677275706884788266821983237744530626771366346834472261957922703779779530873061125145064015505290712251392319650049378362519765339845505328695696959482417498728177864795895622323052241928239841650210062698349014650196372475671525823899216108477456089989161270554331280776788486184951645043640572391148887642636765118942377995091069370131137894966680855258333370446765273504442670691893186450824183572626179703767831888614185371886895584588317299791772356379582330691242419703487508893911544710374862061267764590986794248253718446345091374580745027837506397735865977933610951916037500234369182607109468750270274757318315620180301444445912119952201090334521808906457429595009084691451641891719370967502462256492969117358351480851778732755609962758447790833251604498136330679900402392583950447565998125392299805436121596272911530740321937162706007788737920463944545436221929560345717097067182293170673376738878485205074459895609193157561575563196590391606777825610029994063178426550323460979506630290841586555653132978841844721690181082386004373988359118441976097865806636934871815066116710913228310313419166887574065469584270564567580474808153806372050893140669191631579022828385939036738237152971150483197085117293366893840614627693960936228923578867297572803115680579316129947626736386006930246253837239633213420776155028964046687702648376069890108286856231360524810541753025891721591831346829505641463940649640278686289999737645180143882651284013988570525767255312611195858445856701733707945615846784047612454064567037121648323278213237604121026041319248685699064779820112896388653615903579489621832884573870277612591835009885048858871871109099362502669537670118780332657916764497551473160131872353628193799177660947139503160532850499810700087105283564991766549356056184291845545894273084644314693853186473892361222684775649927414201397734601983417246042666889130721282359639382188085335417616192200120547292181896268452339213750282281354897149381056133952026312411268547530047431576405367313219388660726936696701146636575319393189476291505373645962201631076514587210708109343572578586868297588171039262205557805496646786126801257254646450405661509470785059369598800458904321579653715664469963745504030452934319287396951102262729602475847976080674949071349832336160016995723441450256895596255276493329253113764439405476213488223364176963856899057666394775470567669067854887421351176036795992493606231873861704944871211409042753145523002258915971788601213009325264621790674495133093626058212156635376355177275714513169068323576549521051842797734417299129254423169462926903519757111388145987271372948864755248386527827389262027937121844428982549570302882559488044348178974529069135329722238444588914630551382103576472476977791477906290950959026156269132509434864086822907113120665346546349861776584425756217535105670815341757740824362679320818629313407615784178939280638277881409717532804125270162833797663181296709669325639440672057103915078961910382035793240319079697756943255196079991158223868292899466895450093751207609530361652236581889313503752199638062794151418635949973292276396883785397510384068493560264335431560959049990220210146003220046690456034703803838839322349982356239022517546558886941442839679529858479059422857267135590209092341930911056950604540033265362490347453073476188638023372784234672309555994278954658083729693657528002531434392535175970285075804678074148306450950933756593150411302690493494183796571668721004441771165915670818958593612320506504704664369891871524946842116268439587862425344633651428301391599479490657126940894385538586543134042196093738890263396192228906120658882603203924413252674483738666639723686475353128354728023118357293736137294197936095033879421659391558297536674149124640878329670164498044057039271606645168424026554758124280000815559602848887251557080272286424190928679446109521474967328966463447825910612577778060355094588218917494580363112586023792554640954612360616856581302900051457509787980686832570415705853408456057688558751275616928339571797544418944209096244052954548755813401063956371773305978013591088218800268583275891406977061128459377507988909160759217023322243205893621412186247359341564103180701539202372732787766077130624684118624017885196538409230706333235553262740761322122196738588640103505557307232652173267889594576505454645077722067215694144936593787161195356002732598584821929765509676356478388224319328233706996212514682246397943857297951605864291487720681596751693896666959671249853680562810389008807150628194053785656089897609373009014787232444170735405673982521249304581768320720994544325797557516102730124240572146214944057859520953363635963565811235751823308730727280595570772453533991083237331543446944862579987390527084331878591188907009262330880157931262591055201294525698099808212190046260833951657656149450549385448757450428692323025059239680526356460968944627164973531093277782782658825251436643652955872796078728687458051534837990288996209198901880872156860290345796439830430955200809620158340153628034150528266337041241011551826815832335418153245699263880147894559142090944459974957819337178184804069561427156907486226795582656862055469795884127991093508112153048451030815781720240007262378844295603224179121699221768398475018305991892644379949161114627714486330167493586861479464364195933267959813621796169432032968729212351420956769017850433710765593991823169600114521863191771935082950115736442531140040303834452240534465529881892642063742138326923724364477082100992151013061709788405522508779256378529275990539007636619234776825162208505388909542182665097768065415253196309198773377294615501418240091852398648072706139137465841019279877767305662473796530066598101951356258813065497942090097917176035465371944852304921562388036140042874493866707601856510945119812803475626583976527700264694727553891674354802147922384700256584410262354114195518986289924034443627751247606409014729681907885635972898403085569685628700533978965349402462010786275553061914230933909408992724953510343361084442519381545433959818451558170055944801222802808220943463159644671154936875010855735828003847122676418028247254214905600426654017683576477475738352077028776273406475372009200468919847936201869410622547358594931327068202439630427133673216313753964725613673943842630432140726118962302591594165721408085217871578128876378440677001241690852368450654151138600671378989782852925722288871071482521405295587172381378116400463154743700751213572543075821731197541536763762137519075839637831492289085814189103122452453906925349520402086093192755676260180276883934376396445485183027591977909247256218600281357166810660523739013730961577042774250312483956450004691838414883455425407782583979857772549236542080771190018639596247630812563171321901478886536951360516614156973419156210615656665089907244547800101792698823339980457288917593495229223605749120629491547939608408886615802414181213538186401732735135740680985792993646381104220038374344174613661181798286581321864521311127693700593901176179435875929669850027667802125480431975644458994701009908764170298466044986803577135594536707438094742746503530544859664311592596634808964916859613191606212976917613438237657529021289298935245624167706775843187925340546976101906919568708083452093247035654717537639971072476986901452856652943871445598166286916659191447176928852340731582963009522268485663892330262039866387981620533804348449356267605530543086180672668766482205489778617154987592710851793704629402771314760316021351898667718543475516571080441878790546165992443643007803422248313944398746793657884431341076110514456592501805570517162801687910386015461828150489591250042836171785316611198393877975653725105582761258428072350764212989044958847204611809824925478387791871558763332288970958381782033628895557164822818954716300435865932425923458336664064950407594052077583260855854697555885846056709190014393745999524143169775136514735460735418913205050508520777418409785219525175943769348783361297239991719681555253071355205168394029506152055371679333061187040786220629778790432215990541875717155367542292462168293236590816627488507484860263769288726710348771364473631774207477607068581486806403517900986277755042708090069249551307256966419532190928874170806178855233937484900891359772225544751128303691740214984831048437218453738629893658721017098642807005500378283706857035489676851557093429209019433879104644405318589660967015109330371294882691911171276808244166364222410418247744348586102328352162867054125561150154543901254804130530013578659209475038577123340787515318243423763336809521119241106089257699662965059136037404418457583447391652896416549550685723206523656526936111089059112298155060056113073912765948214838157990512570999030363799008947759290776441211965674964806879190788116477280415238449373026061195559050312830347047767357619239656658290463975744906700588678099473226465542631681586403254491416872710113585516076713649422943780989452039411505853135522366102854217216200288564096264154061594045784254814586802693505299195300725023298328248008617891471427876952685845776017071100953161676165897325403906006826195698562297295624102119110782206729305925489820940560886504544967224876805982080206672394077318415530247442271679323837234939239301248739897958894870281013691110190470663051212188441938117094088739900523639582134000913505568319064414506807990286539575880808768879530010789335843934182529718688431010535862737919503918786278354194285346819887582859525078892707755476121272488115686231660586297594802770825052016742760579920942036574390973969646997131369033493423118405237294192484403326656926528703448254585548274069206156029643186575836098589599996989660252746989912101148595139860189266782432908203683220255962218808580019921770212795989850631827688881943079135198892325702025635158666055532882694824387231801354397251691841098315616265353388494589016791203482329972680683781431989442067331372125611454956562535000885478942494427834556905105999036261272772338351765275054379855258538599248927345108638378723094546750588736195263594253432299364873885502833782265625810650447902828534135555200548091111195518170914634154615582426263806116111108063716405097758976513752708058753467767218355190312143836940388482859355246919568197517269074852082754502628267048874465931625711951857536488763535025455630618881300605479032403159456022416447710416964134431768329082407260804481002343375620935204859746888819972996476335672311054155575857769216954786671804667140356425396937059674861155337316871943141529013864341024957223542719485123802041049661583983389748760672089289950057773132780037757466414504758317391203723056093937270568035993419350100678983060627573040003130660131725196568125703213887676377005723838231347583695961222089306149187458726800820480919659719612065278572866367411421153425304371700781163199019429338492921912303223986092249104228145541708707875536682789790551689399397855452788209387778290851999437989672516257860312298980833141259531935691798919075264213220042567185354598843167501816951788782753909871375572258887318818532815480556427177778163628593590493500440163312069039293865967346974469216209050142288760364516290217133884222743848666014025099747142817134121295044197893290152449931332106622157376129144663683834385713165068835799391854831867789059333882842881761449843056902374951252415784010915257587181895243370129366163777190743282021969469090747880627400902325226120979091846020844079526850844085909513458860246425584332535215965753798864947983924370878323070818068184995653454003203088790790057811845427669444202609890975520419857097453033327628902424779793882780008299167080573098374040989027868934897858972132447151847155908365586338081625589848168929363958849373256514780086991394037307975930468190644688745920687281439552738337535399358626528288390762071902313530135597445270462691891177580795113218215967754363942040901189696077455417035291524653133287103279742986035055140574306526528117773767205150991299305729593001598932708098565040941000260395765090458862009563651645509302294835029952006526693840742139069567603406088435587609283439577478698838489562149456177822103084910577072013865962487869142156142190913408524993266052915462308083400409520957709785973393989327852042146104917517912169272159851811268883806235476985788448286288694688650632756511077513837815320074684821440779359918363485987429992283311181290558997513309228212488390758619856750124280227079870637142777636110137754198093177546276192107803210162242225494365111910594034085147158612667883919907761914277360071436061570161547104210078658336703705951225956488929028683957624771769510152322449331310268227472937813579686017571884186978302236202269910475187998685829839636634140876177274806084067541111018684777356087699996277202206887224980522306603579667514106287601967036195730030549490775288756085117880689131236912008062301144893741430516695507015684397951435164662464843368925582843650772435937307885809369333138008461093108695627249029053004358044771100212074782654134070589016561400765915668048104595686598834929594717800573102368421816701913871894307343220507533625642016125491112475894709498872970263551873787434063015397574182895552923761229977299012787058362936855812291759529158457379839707994654767446894084414064358974182976647023203867027871100464629736654782850218370576740535351937651164163177761465870427600908991113462896937604320817217569333922907328926927065177243232599238484121266103478395771322240738560175926037798016924555026250138491404953155624976198779342610530898218245866753106999794746469599332149606092113843152156464044428180176967060036304695193627690490123295730133294538108969178783499300894612158294769971627186105112697882680182142498066540115874069594351236261449534875959881207249911957206993572889779677773193338027893250448808064752474608683374467894211160310493451077467251064309458734061544871163858647512640771329413201880554528642910859427056510156469303982056336311669725141985596997448304584560013155464436559821212674174191253018852946476642690554682562593723008234868104339276283623166386914027265876783810226895013599540852297591541822419223737736496438265043784452554032960437193754582433591858216670239367967011002652402796352384719592857958711658100056021258508612637535287219369246269255866547701684362072425851500989674367648786095618377839355635848656977019738072668411735333683834723988429913279415605456612612122281798087108633999504337070082630773725342507482752670264112969425467419411881165119034741368361872151682237457592748982626640574695599642189294379877370307975971836426780441389475817542386384296697289828247263227708686110883937601710629762221651493445174850267232647261587736904294339218720379807390692241492245836113721599535050999311508394776292583614868869071408141108952640437813252467601245043554378291746809537266046592247209889793845290856881839829774145112218697841394378342012518631813584504377075086819532888867742858614447684099991634775549066033062291447854143443002681838865819628295394208192561747613396077574174672233256676068609852620548329928766438802219574579582058320008901386014181014039403855344832480703303047698677437032353088447062486016473831796964395410214922076771894808103404699190314593163291229143021859069107298855824488747981465749825409066085932243562945553712003845866564764311790105288252301195693150022321218491643263672944997192316685398784654908188549134243911538870717025273778239283693201191817108952524707470017257325955217248853475791150351788589101041705309338705799383463455999374107066458247525533179503161047660266226951446035040403035141764540709925780908952854453473155210104390182286688000508867433051176051767666230133255138875373035970862378018988832203028489980724502943353508730359224263426703259872075273580392519913995774976159636819166135143315281561783527379935161392033412745516882256341062251956232544097524059817007256911884223166120729855447647431338997353130053222175083411771757300392581811374933208536896569548471894169514240083767906304511601807937451558881196468533969412297893901685850054808591513952660618882368930408848799637892947768166559241125534072674394255842852446464243159379691251703918995372800481806543266144189547497455181166049706534389790517835690671480907810845170563506434908132818267031281498465065441188319816751253846435691315246144775801146565244175362837350619503204329200480273525962999141224254476812575991191174044685778009991729244800648588580400159535735134555783483746880872348555018301643449761058316422072243022097708347461703158498564058745363151159230759186301733141411378714389832039851489693134204401251521683366021050338318228366936022180833265309661171324531270696339987412610156649922545938017587034124285562768636329706535890318662653496504208222068100291592364275729654322585389190298706960806782910233743130249432296944011478619397581741995679634508973490710353772181027160117103712168879012846346798076606519730460078756687832727016374168933231144428842568896349888784426864923027863349879510274462633419593949842795052797547405350941806328338581495094169897984998948460344916824079017070964538440227285337241728749902857084384492519654505315839564838072053259900171444725801404794637832608681690920963484534565261961584996822189791855080790349324707932832107775868661583121304954037498638224967539717201073299046057261860969396215230847467138962650567440056994226200936518725070502175952323316979443973027162387474473459954458650454136577638184679709744857575974498338850553178902331507322226785256025528662786370998488275946397886149473054252382982952151863067096889562654073971054041552308193104498387532676617146699267758295240630083373301078833236703590477648699850804173609533068669087907415020319723511303993199741650457324223066260729510523817252447745593315908488404222048703707323220842194217300443183055724958200901578328955928176909434736699850558369373601832551716626319451142250336385363483274469870206284013531722364918695310517418929612171710592045715381279775399565139642203014466204172678163363460652575739146895882622862160318799577738382849224596731454043079685361196425022751524221757250750910257901222977752658456652682881452478726084778306479696240113567727799972776864509751289679540567429452093362418611314861855061519173752264132794786955172015718515797388040405373003778070243124881800786653323348609751308912792302753597677291789663522937173915120378467423388356188905599284575159676642030894067440892038802556468994574073516534514177772689374452952133778549082776459259759514988152949267658839253979673029630058154005179602958500461203436926349462313532270671885447565323355175055982568158807692574909951153134557388322583197668116524189711178990018059615201264122170506842661090651990826408877711846489575940645576702081071236769385447748031554185457069783343329562744872279903103691629552414795867456757391319749074410268003926939686489212851829042591130006091436642196991281802969326053799408151280744942881358447294685071735428575465782886662787814646019100086151590001679562247471218337118015738755142421324016057917970173867657439631359567653055453863391174371472062243651858018054821870737484207116768398980918838929213811604022544238081946638152981641403846995938303750808829451449702602459555430782341608824606652753215913836511688858510933798839912794820339373195486671836185686076590263870055041300482824896818123514348441178334450403556617012901540397745042160949340816201107920952980210490967734874059826897443913763091566053289011553374700970163120598879725514093037308486807099494660710957998006943241528121611552360543263450305079435828289025032655515755211060478823865466211162623207885846723125912581462001474745986950092118119213493609894227286685699443084713629996047829936307295538863920792497741655331730754880593913329665081335026519756073374658299402726640864427037741635821487937937973216553196541995567439238079949240849742107274824557485250584119290540507886867764249195576286661605491465231402285439364355165721119990038207741582933487593585330054416791724415524015361087133890461083084992229718047404269647559556407922944005906728904821194616794715790576266638027153815626040127664690367834089399937647455309674391762469871548494211079579474481189953311481160067072539183749207342738083259880355243474005600031215019290837752264597965669034273778655543162784421300492856723344751959389924957172877370446225366801757660881063881807399222837596552659578105894001113804992227311685137873529765151920409187265584065403150354287816587584611546586723172831150343669319569553420573203980718351833723174710721810540133664688887760323116669578190774604201990220694337989225311985434875616827757151913750351801466312883025362221870403246832957389252570675227294945420589077259545018171240369577405758674508815099984105636927925030384915960410174373868000693240316013255843856460717417827143931709678126742533302655454542403264622439048446659547743731368113806910895221766115449379226747592489586261539810741093917395278946013133247318995902389508620898350404137549798022668781263510508388037132563996657686712434776786701200281821953615907704955245721369559678389754320902768182956710668276205246764574017863291760943967669716874552694384186524364818120171925106126845218578621625070170351684459285512216474385718400333108149231582752127701562431898450050627153056184874135381380445464116967808756033928559071145446162468973935085454570152498627913161039554731691253519720787948802925988731499278341706792619108136370493357926401983698013485148255423694530099873316134866362197780886505752423772253475634518158750984415252252652280529041636379023736194766137755962133445389879485796766519085663680642358864580724938316216754681066276032125300205341055146307775929807000034826435876547544992643354923034970785863476635860607972500632893185349749197419511806464739228995505594866147624715442293788736701235369449177289051040281095692211229462727353445064574258801452159664291728557343845334975377849929828272941714169951099355786339230324520670042696662604202909635235337529190238829511498974962496305487561802436442238181086289249422298849254475993961411075898263551792150732888149374830636145383064709659858817013734753177203149934657657196005966045397138547640634956490194216903923579651378561863076221356134261025631834982961215352225355540160014418917365771694979448047481722331820228085366653154633295951742487463420040353833689265971621768511409605210980142437170520087221109199542141119675069075373378474554725619069359213704057175670425174281114460997451105028857204866739645714283295672025756910372699037774442966911188386019205542228027783429254325520305530192288473171885762978481144232729267412189758343649097598919185149855482481680163603819801635492830453741791178859523135384172124734893575338538517917294729696572901516206040652425896298627359836637921980477446107509811434671135136597649138192615360165027003307819474999337295405584068860660116713601384770640152625908392152664064964053699631888893691217008861745119948760832349601336333747549118918931663850429714979826608485509702272520652858468565048722424476848131774841601563336595080657885949359822539218014761245949349200775887896473366539828683739940922919348799985576261328373655966902652806237450414433664522315470479832640561214028829570880689200403362678120853100002387724701601787472291488993345652285280165124690871169412434577222142285202672247002525102447491786024494839396447231372249408295439524454797467919366071844077566743134146673951039189236224613335674219282694944921590003891169542211677895139341950476659393468098608603449110082604483008968403718759149843593100462180726574871076300992438205909443389254485739674084628571744466199514253784050245578728717565970325040698920230827891401710978546111292650565410954034171307696936464405910001701054557112499380402281065496573804893734987385642625082605184735390520405374079674627210228362925868629703065638422336574909255620150021012109431370676040852406187340493152525079030936485146832009495298505988595300692009854320299675768136307845926479707749074474376604371320955178571825417883371235822133883460347541765359266508303094855032047492314153435952309229697020372423686457811814825315405282349670537515827668291864082497794034970194951574570053947090355512200936403361329838052842193747943714542771298957844303403779218437387136005359292623434278496770484875886599783203232962344667491317853933116227617548829561125737044590578512160510323717020574739591170946464059984344471092203379645830896680097842999097351189437843062881326197246417069103153678148977030966463270968478960538110962400471159160211505476592318542726576372258724948934314307748840137511464910472207592165896756751405638181764067486064607813046653694050215593329317611196641500802447966396623499115070535562121636733307716192366730682449623252353667372557204361162143144374928801232371533731249891829546168733988116387174897860791115577580946628741975171145159035863319695419456736982863191491236675481046625440170105133473488159395350446517707166551435771831644121025874287274066466018015176408189071908371499547579529422767032256602518535949872267192816449460399480255928521317416290373728324727841154451410120930910832359415829410113363355958057945844542152312363888521407999990940669729188117694015963389401239151063932071460874590380516226486314428946915916868319107536451878705159884243663398083338836388304569467181218494465385322626624029762483986059232596784577579153744706875371110260732600243613770756972372623870564579131546661319169250814652019664105449840530591922977810106037187631171959263708103751902681538102089553556518642025764487983939356626336220274130886065455514165116059699214981159962630719580821776942581622684688403309879221001632766458830648292356582072725537267864032211111955392535515790784194404294718488077952744700695526786474208428488036220480278027372890288376769913411953464406549347813253110772246402306427013821100992105637164135856949380103741641117254063139628047885923945735493614131211485536489991921256149794354728931266045859465726858955317124131692351620879459037564336472600254694856679231649167847376118465814409891894557883151162828746555766107989595997258430725864910801975725155740293002114903465045934652832546382893923496388387863616735127289566546451213133527598702550180778984704194635198397157390602598452243941653014052615274399727079651212276714041230603074159555223301215980403381936957992244122140041309321872403359930394914947784534172225057259095134483869854239417458248389741602727006256768204306842057216279739101079973697931182726152380568350698152782635087946196091455537361925766426445199376616157227902085093289218660330405928444710972307659296441929797232748451579709255595199334950426957960271904344289032210252069861362277504643328297562036505777533154111946623857463841986716963598757861272237924204534555271311462655425642239426458290093024352856878799749737589200272201639422355760496173810528994456364245798327111479014380324586959077024776929328535626588959393081890307037655938811322232472645431400254323903384270459962992283289005974061807463207010006097129055418801287706937933726837063774689508200154660607654528312314116667359466620060461513499995583417400588936479869373908834107211845209022586749685950366125766789640044052496186832061159605754444940016249075144631293689643293966482303838290822533157685013044998042105113813103908377298059540694804585210640007126347522093139748147665587086280864903620688201592344122570416446116717593591098059434834301658891945924577398727445198783422692471366175106666972797247946139787521805654298579787860210644862107864006581100449428720799784850740774875054104601912708054277972336996582711171844608148396755561838849539573994505660626693991025514213896772432744839528810693653148129968685711747873677094807975684218617258837211895633638188828368625416990734838202699941337326669512248862299430577752562259816574836433242518073714188832173366430946617912493694142704724668820056875227258116181356295835631973756234597259761870504394256286960131920730299151273145723979339244971123377767801509293658388424466099152903325535490212911437990009242486784329606169910449764493904133605429219704549931753502296178361355696142762920657412376671369196250405166460146973168931982636717593397714040255101071772404255187277496903329819404782079716136031377647843091767674963247310896108596053014554581886326724481982763801323694634706762211597615955986448059210805733562497202751987267666024893823906084960067232899632335364246275863201902159356865567673482025527857507447015465263877270154727520084464051554842448778753940345353193502448255731836955356648484584773974429841848384453027159602119571485184337396503909247073444117337289397912439324368538825626035739910610199232410880368538548744522649035372385228326839474129654662330150458369182893082509936384957592149025977673175359841456902152657169525418583094118386495573870316790180244541446093452231608223896194041172030553257387498371303737898483555459876671611956780091335344150536911171931150025332218082555635572990920516447258393887259735688734232903859976935875049910382525389588149398053130669142673071589026231686263767376651148407939046004731839941491369760418409631458306912149015980311282594746799338068573360343257628132276057608503484807537927410224380006477434124531453352437757956641763910466172899354178810006627259358382458539889060477289533974907881445847399399656616496851810237423011857367308480627798828484486432321270994781683398894781860163604887858071889054895367936081521297335063685128783239387269440167660181594371077847522112109035049340416543645377502636049082660088323347926672735427257773004778458332098074030026058792645668321858569270481569142704187089468498172445376884006537281836169774849257268832217169561196782477095337891042232478399978821114065700458338138449538895216496931707921346823720420490777183561467009138474268388252892241346353114691164779299310728686040387365012369618572557609653967209522384530265263995798834702805749827715386022617687012345499782311266522857648131236741376666481303799169325744756424095714740933230409653465582963034193132531683066413897717471492061139638788365295250730686430741354236933242804630593263855147057274392128322046259378771535013041509799159110145524974969895715635454188671970456081053135360110797042928755866946551564755243650535778777549509920234877883274542070943480556444629203948066553536482327043918206046446357668008104322245395127712558444539810504084483091858792256737129580748210600143760955432631668121150782579628821714777245408635149421651839777591255333589080090000775238374130096882126670044232894163145295843365765327564751434019320087879948894473525983445643141706779638668892167869739782527042374922376955028822731047762281704378035736750182699423695037727667846615358915563197049501393692967532212684828340294246676292586346761751004416653649098819057069516353936450198046770751818736710929430998692911439564270513376551931084654486008509736386710187289042656922691355560112322134880888551903911586421254087885850300127134475437078214583460846884831038964945465532999359810522683991168035190060951403298298113028139110170657996936452881611126772457112044984585667711795597316557229631174516581797809528387016884107258336787381966197071226554288055164566702755536635958221808709731628165784010008891961389584946695588379029447615149144028605214131245269900959644258449724045321862931931617973159033026040603190023263673741254492294257035503573884369055595019023140728642120781981380483081717268759462621462896357341929273683892255218661308147462100118182043740266095403167755543206326982442759961570528141218630528043180537428534148836627449964595455979549902981322289922915798041998155983652467920740104016417144538128653876423388095096542888245420949003503405765047280519778702118114462467112276737477754070413330649728740618936594198755460601739062952535482028261705395560652993357697960517136049485996753363330035349376785164098236524885766001309591839677029271351374648519935509773708339767274911216587660377609509316715623566631809179775737983476265367745151095183613542446823013202964592715360063597180543287146305928103097726935950220356838748468622390029258679152228765816775701573463660911250353158035934735958604506430842790490874863095918436835924229443482372579332218374357073181233300611196904000787430264794941244602749465986294278614584050092638857576764634891849040532354311938924643607155216998138000882382133338364834530871019839812765793146862795640458327369351528232723517198320130474477112137531122476656253609229023354196140672494741931860322001685066266360081269753168998197771936160301847051048466902759838563907485852779431014363837329591870917307254824550607182502714855402885522605302609242443755508404744866441597069977884390051462605420714418874167016067293968787388284784646836160961236137734537913214293078026770743560861940822597117442217217262407885277861588762053951673880167200368434375686803974829383615978591300190002044507661813522906254603149077245071527527093227351024418806456005337539675936019388781192871235822741367788808458173764839679986397757653262469160736907617523373916521111222302857042538643072332064253267029020213852600407161386947589437656411769451430768550370472642731191158549944414085717264606117147241672952302088287281289180682939329492005838284744289968200587120347473179822322291507393899438708264190593220846843442072891393066725369333913087243080227185127125483224246895128487028250560839434262095399108643418839132983562749183786743190785037249505661132396775117314847193574306760024140827692168345005131197866449866914750867127333216743993719607578747813528046772578902587769870819063388551195272200513939005854309181647748040978644028947193103415798207982926626099895057664740448967325929536833083488762169689030015703056758421355460754220335772742748505300420031615277221141916565123237232904340322479147108977462582066732327967397236819873065760771824291207950884733031755815274827639379103244317031557115669010330004415916911318071225161634722127087858897219796690909728969479396785539470583730067184652440858140372198475477574323983688042449070426922703001320672195023661658398413575660868519890479749560743969694049831479415831043167180514191302158766732990521115822333853790309058852133862899238976255727531456477829077223724524246329076739917188308058717340866310738830693363177790784464876427748454350317813675529482705820188809315020490959029740663074365575011591430024840627111679182637175079682328940937563485043847247631196351683029703366735952614010552149977733407104275967564180153899629492351025802750244430198955268042806518288577798767242478758929764397010376164025954229437205528720497891181002601924265576941206975261531571643403873815548144934600282034885301395143616828323916306336759217353964873898015536792105204287120813626527354010221445331009504950250469978284942373100094316873040421432070129791652587472547549157187254502726934947835302631082713445308399811045240686688929698842331906208520361541043377406449264523578882870738448767487641670425281206564119707483548725562320027755719548573396165257502130152498607562747404104558603693197455476692810775808119896763422391288439571535007475143081274016866125690823624544087153139558076772789553786669795978301738201023394792722515982692925549870460092623226342887504411673279358933604311432632915702304165308530809235979910724675865431619002637544152718346825366554867641800254225231298875465205761452039361540229765211952503073690443388114036661891339498426618892448066417338306615545113677086788758113239346367049584205174864954256112422769212107143075026132947351766317697650945149275694288692258215195548964682411460223051665681727995474353803732210898237156782795941347778613682948991735418221939569271164973447536352146937906223293228649367440037543010427266948639106637467649942587746947426820109510204021478494967071607672813867103265393056179798497374462256549025328850203525460800229308365877954196030313311572442283561362498760147037848526744133472425451459812271969881760920981903519498606191855478846272635735783591723105607213293766549416052419181154633147939471315707251222614015690314028764214737476873035362047220740652391706675187358013139652265029131880820478682738400064969026514302405012063329794333318125771182262446280898472836502985246906837337487592014210681838213598876041950524265561832042845875327344855271713915750546211231567626418138614922778815614779513641404725313285567896478185131465568159250708656675450527045974383180145369290559455940455536478497257272337084090230926054870859693581224732322535746986118754684650111490946722857032452323003237984022991534709801093721793136070721285395480041548864233114491778361169694099876289602065667020845355745714488385257586414007666855628695804259170080656291570648427541014056787142336683563579452315917747880006763132773720001762204073110477791849980769487015337927486812368787265828496302476581379563099410032773300129547320258029901512275189188003681212176673890300283718939108479651725303906159384078035761608558435273026203702056252208750661360094633036210944557700880972072983467403453580909320863267672730239603961894367837639600970358433079869157244642779268725585329096750627221504018083429516037659578305793946227445082477734496068510857413080346562401343122159980362223145074971286239145341654074428263627858801968755962048262187032178972556575724018180454516968256518865396188344237655847239852141530924170303337810667354409762124203877577402890414189637278430215478679530716305516666286242086232386283380301729767748475939787297907215085721074145240753527191720872268873660478347946782062803305255425537904337038321791442450287967969311281032257831568529891023450632750026942293689457030382810126621648182713045423677020047625444735671781060622976526375445986650647525350783212280777456191759164100186516596941440118126389369660367301582183462343971105618046207907205876080466037224834947311125369998503437208847545151432952362056654514105739990684673956103162909794148852079495886532910844572086871254031445679735556217427123732859492047855852563748305314862291813145382709280687132364969183932658195065590913955906136546405394132806184173098346883631523523747426848887051498436143324725731475632311737416164293753371203006622072777010589766670896380185525534277390476247979138116990308328938811305882815232008574282597414010493305275599607941269512129903310144132476182433331323873066561443156772298434221742792495003566613073267889072172758773820723099121236425913637175536178839625225763419219478990142198081735259610014204021901051047835563053712129148644101100496696757749349689037850886044098722057841583914005580717388860464563838580311159089819815497452108989022837034113122960974217521315980316882737621312544479789432032011220487625739787266204674987036142588881098402570747739242520589497564882006823810855105513438908738865285443065248994856706036745502943924699961714447655806561276606942580445424693802180535519501048463504979493194990965907550209024524359871703556906913364011246422079346727544562856951771713930359906474434717822554105154531568891732894815010835725028887747906385087123701416988044907760687251385562946377713716931375200284389484601804388341972147790438412594655699566726637864294010076616746196486733743232655420451251358996473866515027550412789624833653813355479030678504870854969210352380839741401608653420704183880420734716348225200214452675017522624534911036541814187753074008711605873610850178625834766404387208234657831275325458795605562965990168699724255271421802297364533636872258406584272218491746936641515042695468928499296916800435718030936156910372506012243113905400791365996934043532286590261845538601757447481513185335142998461017802005226442867359262381729638681574254048052154748559005841674458092585999163001223670748507723464750050899095115916783788165028689248233805043752034388793460034252511824277937857609634030305245080011715253953503646108197101683832635273059369383145985742213557743819457770044699089186047408120141045837907542504919007908396812908934075475695245688822320648078043192585314245002512573958928719462558151107260748320509823899346383606634532805474622763229420748201577615383452263729906522765854293653511718505089618450135654057867613543719000159436874430073802879373402921869698054822677181240132990141693199237018676169871927441183868141441888913227956095010798753325983301093667939927402459010934179988443469289428383717454107420829677317903590391622184427234547904911197805827803963831160740955329454288669285343747592880352517128926442980173501213836376633400774282549125631266311905373308538933672391727382155200863659585518539437559982865773249765129907285724542592100520378688114513490436045222984448812332982300602854745342751738691994589023224803682956056155790336649783022137384348493463602502614502607853203954209808694367921565081628576195683778798809455084756279315156821653228679510179571703562192797978601771087673537816210077928012249645543113504831111640229003247568465047529443185292576556739189868535639964879360461723103094827259879279283216030591581503806547083096951799796670922039404988259132804564965394328706177372550333321808161349790297561585814877467172581290650363233786203231651192391203631695375030559658435037757822931505550559659234036872168226977320745557990270526825908820741272729405564459264701477753619105001899706890922969217534718492311607669443323626146381460368756006249800072338257201817288021140183538060197553723268221187752860056442950177256043118085641713874130753494375676796814689263193450931711953704224190804283794346463872212256862331830153930400985103498875895993438200794831616210906998525378622446149267014147687623297695779993346965913041926391959295402234570405717547679741759506710781000952992494577104832178110148901144936154368425542423486275990300193572564141258610721688929295685338473412377198401391758058771744007086003195420802884847928416144849074469834712959889312815979263726812130609170595109578479007838863418712160327747014879611002476245413450540954876074451469420404566519271846820095201827296958318066025400225345617823316042648779709052017371169050246057979242411034767407418226730914128554663240391352671762775666267083515357001881783354595219464222121004709124065127803375274240079313119469654124243318899307551134760475153354275207661367589290960450648276811316416032016599787310116631950144258507050332747298363424982578020979247716066988097358917610260548531024755288237789794454091345188781759183831574298345582323285742509288233318167363389398263299315795482596838524285212081052390852968675552557307367259063356892220781373488087044399254099387626372570665940022634080127115233750314447862987245605991375332431274689672402695386457012002551871657989239203080103404841661766799693614023150998649207360790261618973774254700315206480078301766811497873759654335202142983744347053099314395747588544148372126980683475362323704991849860682219423096683456626555849956461709460512926750854871458733893024680426595940427647199616386140702717981470426498727283145391741156301405379832687419293142277551375223363500197467118895398418910714097599735579887291460775853958856124974717703421296517889100694439430295215203182733524529438087271724582670780443637144855915704437665613566731823587020440443250779028610134395769796507083432341439318475973319024314781212722028743190645158703790760199095704394628230931037865389573276478917396000599216738148533808772490798768205567878512253565818730099588386108535540963680142248873839435562306020900578069209651299725268720900784792184551254127151517275132658840048634549157835822380351870127121497839070375695135836227821020439517360661581004523047096165887745140016984554244036950518089666069149041859165759320159145800779607582117624402509248154419395015262427723410800827551759748447287041398537147275788139840452556141513258400194653450822212656229567404296262922587393658081439583697960218675431425785799593159026279154511201728371129447923892791743581859769055480043291186457626212654618923467842310844758395657649666656836466547637126547649006826658560834233141508324987978529354942351011136075984170874259921115146096480352266977391187319429683086733255978751274805468399961387338366723213041938750385470157205923604169326905980855045503362166832074620423468960017323122296243643450002355906668103247187669276334284200635940055276063788931221480815814968516083610485116615171584518394375816205751635076283749630083369905151059396836737678463037172770592525026763478583912741144922349189265104847892011009598462549666285157575065303153015489579215400217995068880286691447221564682753443092270112424550456707550567080417666203436150224561385087466053924536283106146550303898526147940984837592921162551504650090153910750126843315999865204500642145019958703219942847331701996790788734766996710280725667164925250774405026904538576314523527651916598101796726814914629807970333936923256183037471987365639307595371543932859225931066869202075202744792537341226900128256510334637465488005722978249640156414340586561436010656305833323642989335713186432143104502708156655565629935430022292162467647271083345391498464427504355473232519492314788135270122067200414941583752842793522290401786218064211632168267955390677200007985070434132462606584795355049094867631301827319902831677858597750689454224613779756995978811312051169141885246062816982211624546291639530674890624514052454830693105928354816830077369756160165505767895331021626769489892136607350937717398426197729818728414329821433129697214511821270497400493189543981376169722402590913760028024298238998271568424924820545383614209830346012327474143216932288760477061314474624708598423876557479639039638597014575703947384850213380497111994191780112758913599965344592462676082989394040395114351270760691680549912840666947529482170676321053177452576234627033386750260395873397919507919323928084549100850701664689195111435982682295738760392426818256408044127815390654914221636821640284482729870607606327157407285067133820468189690047138508827528402158909915223375363593037290904590882178485509711911252768151975758051969001104171545774389884925513194508111840822963840626026584484738946306790258482533036853603360581640815878938377789448417435505033185679562331363990351256720362851388769729856166114530327606348350637828043220834286637543438434540188641494507648081769832361538468773695318548474908293584536289633564454552094830640433107034678040935089426115403163777245113053638617525471018683288896754665740177638698754286574087816640103649170588678715440793532540684810078576731375047926065206649822418218055133766540048951127835354170413399940663808075440187660322027354782747083579476969156822467461433170168735470296405201722588308417455839205418922001118045648619480881188533856222171989498700529548928533612595557053713226672054827245361129503365599784722248160203739073836160555832997262699580490357007002925982104824132482475206558563958907251215423397289346414478630025872050561996279581633945672337183225017094910908115178359348911688267077258179597400815832495486190178445941765598368816832091586555769166041459905720720924255299458303903882678435194071548942753949536419225098281231323406932414974577548126409172356253613284522034943721622636892374777953628397019974230220906578850888682762112388077030642249374640354503031333876005134068383696674940368954231700927904819076458074097648500643939255135924370505075420833748205645892853092532951427492354829698573031302713800846318803661403992800465145600448785410620917863443517235077293467154161100708926510196646354821599933722590496167088216893574653384886906150942054996974252644337654930203727052052110646812035928405605961592937701962874819785699459457674685971902466359997196380077640790555605944562515045984045933020243069304874028308648076880307320359946530017348119007900206093907270597213689574456638118611024061969722909654867950724576051544244412059080988807139871048238788176487232751980083209299100916536119771828661991625015292016894396886683179300641237410264332659766585882688084996499941721502899446372372855742521231858943305383667158308304892119934729914466751314837283686941825872943018565600481648838496279315243558553550157668014812946042525067014602651138451695889505064562265486353792144965051142095642085466985945999519887866558603612622609705311060713424398339915824143623796322223449157109572993646336423243875795038459538332287395954370511779057487233450819994067983725234564362106775221309333647231339514423348870978259160504148756634704104350232389055673479528319038890399566045114046252068501781632426057005954930515564473463316448584314394651010735537748406233378175472831781281058250282228521476529229091304908318793856325832959639602371937002681700540874166307257138316752360343173717125292687556914876624397417325086523893706878050472537733064796525824608262582560756065691151647624291189458902518569905296995814196006716572679402875026703075015728545494705238502543566023928806778469161054472597872163982395656373967638946166464756137097158618606426426610432203754648271850540677146237007915811476964802236383817387357743817568745111976544866668035367384573305014057632770010735454079244169075763467353006386303855613681159334623751712923419902315477081354552730306750251540183315326830198396092236731000541273796464482481435635313293184311656576142653968414015237311781152813676803261393939462452619012483075134006328981529593937624214354391686495833197944800195611433307784247440200239957643631788970429376292098418222073157362383747954657797064554192992946128431598338826933355053957374594534644930296912646261036689255065333042234217873150165321770995247132874270128634425719529479194643046171333597423760581854419486839990165900434791808642849723562840016085907003207669913979523986341994627744915517614152796451902966085149491282160707574697342809924008340870287050315063785619382169025780778846015773965639828625363813309952428789422294827487247946555096465414721219064121402420808600507632131894373821433866089623449171988840632859309565563391078113589421826983480712320022804948477246534104468296651908013095478353489295599473341729967149423324893931295481972769854988468248670250258665089187290856190010497221053780250008928389637144617913513507519454894100571221889359484754894091104986623115088028110037704108066196746436393014993333082704665444131661996211545778105520285011365259988369904348182101061683833333221012462935245634601101819864662458698150415992215878497719891545750810418048447199298562701905757834482370498335029136338483197698424229564797045243255176614207330926163526933953627654567246083896268276556579129605683166533449771696493168535658836679002202589744097267354494998646602244877093494354378492679618962645675536794140373521574055450195559797539585514589164469512483070473842003561366741989469440309302253804667774680378743671100409312470708502621959112341493676431638564607668746508410162098723850394430421169910492444922047268756428390986708384112862440852071154219699618676807669416500650709118455776901842243171278513323178780807001695668586006082785797237180638339996539963505585256032949476890139774063185009797835032039510602870112831049789432037509876850311311694474425129646175883151872616632188378157320372437009064083402669922948531418564421026165577616419310888523278878598513681466280968061048997963332145227334091794505879216780681679732802927922319310806844433300824386271128631836752751824273699851589783644335501534878059753956894862264117662664634869940592328597505589373207413900087667537355659334322052416549879385112239262945590792161222577354731272894924447181648093374836025818891293965681264800660466398793592066090732203034121507229915771867423387397659303274428777042772734085076185077343672245376301795296216239656593047638048008797285556229586943765913605227911595351398870003082374378086422599583243409603343770264643495127814045263051113317763633198394285738858018711713696926673183779421346781045562906858933871439831278855560157012836520697904572103122201220410655064594866007609975826548317276598449154392099809916979169265238554421570415013345273051202598130990947462085786655294742907510772395267833199027771460684094963958363653848126643150268296228046377299984921011851407852450296665618346449290088622098707302687120595218487538831330617040450285320727638189644433706120290278600233690882426052088032702747230203930252407423720157694135308426777967664255778697808217115257698417012493236171397504709603443631442543136862167989832402798113548311044424609361142246499856060116064558666022709165761035452435859483139475209310669710262571716205100616238516534668302288943437653717994744702480999709047513831810983859796645052393635724055401493377537066656404884952935528690681123006852559067427593644430920745235781822748842496942960360182721312626478692347794970809629935108587714564794841032031847746082104804737520346865373307232969561620956631276609835920115199546170074641076072867610331856498885308928911534887862962512791447599201769178581474653878122390468392974409868462780429422629941259358430236102369666638892075797953617279561462806473685157362308348002715210736313181624671137883477966555466051156132057868112944515652601902764533128395887822272160626560058317557226906769405821347639690085052629232987359229861973342990323778151892237402508773344594566782182776207509435343019775039532792368912117863375172530169337793136884503887544887981714638247026373636116088234101675331293331335721281722430647357248207679075222362484929328466597798169231690973605549229626234976116435975796633748564338577203562506326052319341319485918755559783861693188814322192339636738166273961525031333349707253607161354223180493051414571137921707364402638046221161043758405351373350679948855715733969897543553314710752206932826510357814569963127342301997984879315488891372665728191452109252084629771298522490040718455112568198057355969441595668672321723533408136860551461528241827320893142284412625305442103213746039543891364642236267722199145041771816677576001444621597873965274969424076965018010561998613466828435387683661576568965635577111670703686638280334781896146550319089806154281495108681636300978213823611937005257594254616724402292560887442667149193035790238234405803875268092705953368462023835447281381708057497287001199692639300282468868490562437710096813270735178923144727787364633420187450249510446983615410328150088110799153735944922770755837383792282421858066570356460088167474082311795192193636085563899416093569904917030434308310336263952585471642160544601803943192913641162845152255656066618320011499898580255774563790624755048596014669205696680933807814159239068623954852957765951656532169787598828445891952201895399566862248725398823784853478896670705961180137093366351771044514303844112952780925109124170941420180482308624236797728138254255181124515418177197545297403389892934470325819920519942520851850652312836993739740505200247323824057183131668863214639788467233074868675398421763679971417564187901121205912255951406056748808031368555098145970490504800690908398032293851563690059787918799094167979195082693646470613149685613015612107272964130113717349481091376287896573684597548189570137293185423870035890158095583253645050411294641503749377401191842422206694173712358530818231006838823513110030692230729302160731832245984962409163890072664109315405174074438661969073143670154517947469727924965705458399856675424940693619233677328778982833089355314545895309063009887136164017846359985688248677039978167933846825131881021005460263464875976713541800299587304695068451819053644405545726043435011964037249024648849384185478785523672931922693440026281753078070384684379249264148112518448847597244968495580036459810294666410281380739336381232823547893985321607301171198521018683770389786010106940113472252744120345309367225549974077941646957341101082386692395732540434202239282736279857510090351817849372066468697628637099603505384040126428605430863388423998574428452621362756393432153827206223644568496119957404682513455211161149974709606599888537728761034048590508662271899580625357762454456130510809456959692408715615168375447350353900898914507115242244542134140005747875400960709658763678275587294273478453979528654592823051257607689791093483220860430388416990945978062945746046337826259772880406069250084380147797804760299198541793946096116647760007339647493415837797094655882683107030503928054262197786760361036948441618958952537267661011111813884834080957972131467869523846168900704328724249737909406560501549900439580233108165995341878873201582836022975761924022272182932710604678626438689168760229499632256174716125018232464762758521635014499529125745656161508295391070141136088912781360252732050127794235676070260977050922893653472828655706905785575753008467068626190338536942555393557933264453882347082298959175213719977807648942643735658176541977643210949807749193867785727457653162745791551372651403194628969870438975870588098621571159406287022126053787470781291324550458809046774986055666309787600172942181541888787964367912796357558376896488521575219737884837784444886116662887195128525579908701895472216681348145712958092521946347849424017977607637091470142745947234562623465168012867173065750272716964119420607375848766292420841337052636317536677473026796761139946491432411466450405423506210658399374038639778457593669600117494367249237001913045215389693650607764830530992516567569109497131360874342293141371077890266654740599197754562119520608662192174932463338309218399889986265639800785629907259957910090056447966765543943266747177939663298794034437028447651960213776593491556097534096149929460328999242804869871988787252505837199194360612411587813292330433889457359661506002545158610179874585564639023791898300682620601281546003236836285902179264657598788428372276781132183537746088347945780699101168893226188411405450528476973138323728921298797096439540587224422871953985732768648050967012854835230098478289965972954637885834360991216675005899913984622662505147359756659074082439602955622970562940532087775197696393481869304963104733061472055420784065649281729830951507171845526454895051426734117148887799973439111140866395273703966356163540174343154945784438841253758351382416021957689483643490981156997583214532556776713461468078128218032230056111274760861438119438383380839364674327704168228594973708059337474615440999194219972556911828555789737208297541372041472105835341046651550627218698901854801055140941746171439774019198588514380835653957112485091292703339786855073789722611542816481658317993993022852140385330808003292122242949089325005082667480611418401861332691295347016405051112954812747762214370352309757697051097204816054419411498093546727769119104452004375782316142594989527558036266037993699378928437624821355942216049848968866157619800902664253144490836378912113824420033427516638045182527066532745895410297873049373186542841698882990968477801810323368285145249581073915653856213059110082316595760169167670833365057997519404337702232775621422917798029612956954124966003744500123340609138404411097556548749831610444045812017669282417118262415368295659184875114179726254360487625012351539346146297747808410088151440686300161533269707689482805265710742094741189582175099897742477683389561188254526671505943905687870717164660059316056357580696207245267428716352369335656819523912472151605989685738548837898169425315719679468449091666045339169462659564200020040927432017288498356546264521655658043736504823762491405789267476009176341756143015417395894361103741396519202049480714934897866431803417158552241985450593758370991149352494959316831041694873792563288526902258412932879459070376914075223858086889210688145596267103855716409298062710893418535797357164205449803938045768428653803946652519575697324320621264872497397988816128178037086681213940021177780772665595717708376957387961508248935446066353055631669278854361747946079495481142241002582774934042605359806418650931160748251261108787211063826964171531181629404803462571063256819063769664635869602902810152359423011805477101183658008782436747079808030174405176314595641143005551458612494774165326311431232594353088600872470705972620297893480088784114890333673078972098272648130868282071078508912843502724871000399211738040240843692045872017891115487727703904987010237578546733530910342552001858051643622669186811173694652944751352514567100278411168992274540282956522497333659278956802098117483356699999915223871070938718764690765001204759137528424624353749759174444688095949392046514341151871209119514307903951940770849218708553844859068641412722786247483932700410284910233881035739570736481239170226341641940441677849811459411592917909078978350770933564773529060222416651461901320848495846864511124742511848132410299911606409792487233590116332407695830851172134807657958273471633202010168427045238342097618632907129056273041584149890932875346650635767507884950313254824610322109629521657581987752142606096395506078951764107267944425943472968492204310728056576213738006673760833369994198340437327584422061879129746755647813773069848721768601598137980731030073496164767867454885080073689101216600170313928582851439081033737917164822108973031942916406277639208847380886804584213986539579189161965053616553665251642234183282090026667147739273966811140325120806762281463338279944319076922769691136046378658906744728541812310941292034450424165289515567006541147019630462369691582173384397445946916985075475690526971397618273677595850480180102875559852436929286201750746108661807917760558975454953003988740472861201454605333353632498546280915794824945698127250413578253891098940568169536866971553419846845746935995525317448787758919470858477478219267293565669797274934156860132634536715382961541391882756979483768425674896629681410125237787311903037927200948054465979276319981572663118988575638607642002481732525248480530151323368908601043157988271919006968215426012482485103810158880968802701373198530766559622664858386616774799091406870783286991691295113836181320615481297633753200971905492345163278851592380654194685701667121845705045732442126253301157107908935024942920240276614698517947461027212428950874773295585365813534930259798772871667643914611461771817301344572234138588856222182368625639207698873891267436868471334346582031531924336528208696467828615810861084958182801363573707349790732910217496433210870764608807587215891289397529234242368816411537761269774755285292948551263158246067956777155593880196718919061298504954867637704260103497090963796973860579894893080602791647665172224072580501100092099729579805933106458610451401775237237139310988741632364715806683172933232950672154221763886945910309036530534581802229368254499710154275939793758038412575599928459062866572266377824057117606979187932560247273974438752382517737318699618715294148796706649168797560368975423122983751615166273906883959305289968050972118482462522886613700313756741890973333858675671076505241282150242378038915420908348534180495136658005994084427529827608808084221449622342607438215745297464461169179898870431446827459166757691696921694263708594141128356794007063536527387803637259324412299524680474097714149537348567906530472999380404006905417668012109380548158874897151110442661380612161176361934558185552339700994271229235409328150471477281115493887957992930268985276973838595246083282796679940441883859833159607484535253904458493638309352376560780803332569464044029146152084053455429400331341383486857321716959795514982812416111014947978596280268354630549080142514265287452390845252153255441246424972970120383529654264389399824636492426880666648559937184009053889470011242456641992068280250051079001265829069592350752873933963437567336287191994524082480903199517399165516606797078667254411318736891381206247652089071004533269959989530148095329089502665511091508989800757770678667628468960438902003057924409632681818969192173902177518340481183283900950149563470963297254608594108213812909363267921913233274434061773132617331036057486252198706467044141835652256151394332030738425652127280440892034523845311420062185707974385071100492486515859435360722339960360703371513524485100522857443033558794101637964057785769211666099077771439960711049302006311955766589781876126990957313364730787927299353841915675049884706643063495491391090321600878187099928491804130154494362592182859475497446019108554725898538617740675188302387185621260528101908301742443225482217144003941312051431342912805788026429807665883903238672541128313050519023274979569895682711723719673989967472412992933035872950172340642803609234914185800453395902054909153257794246030172514015080982172147167361524403453209956608898373480697584471824369747049733783582880280435074433887374821444385198342192393803110340662434401890952456034637051060474129264158912801989978879071761713369095477132571464935968784242774038286412516556396630199030192125737104941246542007476563116275237817711620164051229386116519937898548785033523041787895778646067437310824414875437813868190478232450681661379783807259601838468736613763363165330840028495051491425134075374643682063262034708839502857546836823855021322641063825414528883751730630414439973559089856440781216317754039929552714030854234535274280521735936839430232349450910031531042531145679736088725653401615226993916784298040549533859043763729430154827079839281991945292296049901198425095110534586977669919517950001861041851484978536062574778627999010230890540391239752744600348596785752560743927569807213637156113767097945437879705880546727272578088696052289412648411176210583126453711852513432772973752304779356443632570809292606601057175949117740233642425583331463867032003347043791477988337007985130831497122637336916895162665462557373782112584440015744887135934392530740262367669471169167223336156117737067025357506612800069449216300211014015943482683205193510749577377951142617655192010156040368447609620544811267176627888517263379692769906774936277809979236217407944862824889107965590266473316657846880907797720762747224183072537416473064208378806051372661747746333774862883830274770923967459097281848939575078976530680538247320092787139258027866287878777275358493017970075563491606749904182373124481175232137231592800754610538827316133573806961784192819486042791184309532016821746167664347848320522874369790666794280647987045216086303711828598146553853171578652674036403320257128402914111194416055540484169888564361133634780862385249027112686994801385271699087469788421677621707244141833150309741221155850093403206738196212966630612022561817323089596197292544739759304634761042868999150602492615756280525883579624546367894268963099176588315134994009549606261576828861026542332766107587539379879174322831768246923542590735685337733443807031684028857860574274016012210272673368316720514208285905246793071822343336852390430496548689397604210487621144486453446520279232201344375600466295277057016860508223522904756999198471812094548203315220780499866619586429491356872863700444557391456452852795663186559973791530777872703689347981770070991025354471040844526262697808941390500572689513950210834683261759582144404895580129047296269449190972227429386914297716211075231423248122619122426544494650772867270174748101427419487478357356057269289920089170895150996231113228198043609224523114788174530791579875353035877114550786485617566252558343966851152012086090511723472664186016578069924957922924587636236309348391857339001346912965476400207550805677902292908264838940011575990722788891055442626565770880176113118766493453214436026054176647413911366926194172553882878816902469130097188022034315368019185714911524987034843513242827477855553091126458851503231541935856083941385110186970190066835300084176079197653130560986914476839977909526075963141136296264402415329300901265729883673374079060647053244330131465553713579367764946795874457949542125566536501279936661215190984802346031954852591494643554488856187526874766978998019867508155908227853594735807260564608949859789119513004480688478836457876876984150488902793609693610074396023744464640517035029516006587911296620765998672860009492684665183876687982515000429572921789966326057194515129206790789852337286533638250973824236130755462975105168983911028762966082336808017198633148679458953377369227902886420436085342063748992991511097241613506142416501006283425822154006032659574928275056416027559833542533565632163152138968703069356754547176670640029197633604962994571511436383541193576564748878053884888652740439694100072570959082370179973798319200531435176777898423205259873913243437961984160200578322750971034124921857718526876743539687930639944803272354468030869229793627045805667801925924339490936074650461027367369076722771689249162711549062809678664945867158987865302970476346823784653327059997317980040063543816120978386192387387505226253515338949261204314757485073681942092445380183453888371941407989029574556880863370590817751421867511034214346012867256823061321775178466779526023439931593248837000181410838891253246878254943432195796818239783969881948942565804899535318594518020434232436013859331257941841032985099756530536172664373112187582309002609477121361020327834499139053846221616164146667458281936042556068428017501144521966666958242236525253492933246017958134195358959617867855075201379532444718594668338393766678005178841758742029529035243470911126902525222011327288096360856515873860513917418976099018940651854391047247334884819602619696797075974854606551196293162995662857639553933688098073442222442684180644550480599589933810952159412917105536593866658793127505310320698615018331436001446681210348983239022985533049768398776202008588092985660429846459500918571358379640141780919309545812697047977986745216440060863229050538419783426835102232208499447841786474376399464167628392210241794829901877797383702549949137891029701979153926221449584915674661007701879079427454082182750604831249677114038098039322008768554584909452630192023167408594340977681761858601557081936078540576638541564984969118298308220585382863256790519944132622980958895265780768927418308482023881428744899274180354385401359368518446834216686939672779641754597905836728929457109354780130209785534793926248393524427325524800143212954958892725359682692581483159792713942270153564376247838080808556432381404179024795274363026236817248223944829126295934914616665359170823653082170192432776378948810145935489848964022623269661010149579099435425992989449397435575894216689162595132270178852081371770727333558963995464987759331097692371366067134366918013526844999501261005182064393181980286539513294380783146942807204123470035694737060124527210147222925446864882097754486956225039191218574715016477021362446817288787497598918986876036516973242879086752154586812188374310112949513203162726727754792983355072803494559923279093069243292999993840623055732677101756685562956725189927850017627321384712659377241741435261430408130870642483550445098371181044608328971988051940470726995896727610768179865549693411998987134414492353851033867577524398982771350330749472027352640726810422440777568668865536801283167308300132363945789230038858892162028960514428540002564051664873615225792718978024231742009154285706426199785968573423447814306972658385628233107346949970793752696932068203338138601444861373187577679876243746943979378279377165009814093514419128112284340758044297399861039956412479972498383041051790384190165867224476233206134921205101333488738151801783620547656854080649030588140619947987376636057483808659480772967122885015609695391619003449237496889328380895060023233621186392912204353248722982060852226143517972375786907157381108709393693842877093601693594036468293107646292122993312944103435116361711132654811110881389238079825583222811070308974912381687619863041914563674930562777328403981704200155155694148245808478173359214988890382816692145599906800422012312793943040952085353614749576721857186739925878451364645320723263231100601647142510158184455869525089591039702865306703858664275336034973419702052206852642875877547949007231184404688022486226171813377606640094186601445959889636227561611143606488667704198643163614746808542447633565949188533981644864247668351844153564108047263366848403671260666289190506779741114189855480489596578278291059790291121895689323859563802392666529583503464471253132550765160398309411631430420472843170894739004577541996513527351773537330166804647946245755441279530752190482766496552872889634657917412108076665441242359704249979716780024027996816526198121956426625354593477918083614922512533441170071920655163956793487169717919190281573770442596840197034985105616087718318001924477697629276933493878283256052630457006103598302883563480579274299621283810116578033616410386121990054780009407770650749852631154804667480973801389426460440854251529928697513605594779071212178195078795331773581518140623695628762064656957154418197920012151885205424453941252325022563864774370350044487577629044252082030287752891334158357016486404986042460286668933564375965115677795283478881905874466360577406930224422765908015108272975394499402924190066070902921155042463826141878963108087235965029501017553280860856902277297364669101076428876797497369744043488189856090744311778008433635806673652489068093777206130736755340032568119081678580451578914639271621910464793309227931402493994502031055835418482026827330232627987308172659098755048961449652219988153101613706374820264258969391245605804606103423939708344207908296850455869856695073099414702190679295039050009509181424069102218838991087197700108497614527060075371367917085419236086897772838189485278215542915339309636954619168845608959157934171217686943358686800551518165041035896089777147671512972976926267197910400033736698122509955731155972975930347640296812963095194389902610654390862689699947963594486883223505246862025574592749606555233782877897954718171689717540129116994521276656297421508605947375406671567363252358592676897928126473164300946987317978241331924035358849725180948088453459269429215359126292292102616167792811975681563684045705038504900774785367437236591482779916904193378421456032533520257183308152187256800585687183495373604177721979776885351598598623338028122704264947563186106478049738880647845715087470502588205128233832447686300146635505896316417279275122445163738310169096086985047966451346218829346193331944136900482168594000759975154689408695539605685976375385846123592858247632323771357871850858090443075405788136787223707879343989113154022433501237221956210841617930871612655823167511532576322076055882790242507423543440708040640980450386568648229772179369235779919476467240900967557808343286162195731785801155248884822127746206070912680530671156020823114704672170918765278278231081195215826142314538039001868899532577366373750910753268270727956986901804136833658282327826697682758980229618382321094151098644355671372122296785084640908402253664649563159158667798799808312346122578239209959504620168363680355692449796196400392437997617808354816039335490694853170508641089835195635395153557795319684023074326436561044341924165905773179409756540845875565662448330353154015089004155719115272203837202548932630776802359216549749840596127892017841734254805839132892709364089013174623408281580647662242247333027358190956835692525674552169388333729895450828786762083925025409588340889201722395196318065698874004174096592142447932447424152469019203335857692391314464975133827740251710379085974934957639897441939619124323000954116656115748137698834592712641112896208736473631456821504198917266875279397270915974930033208405707936745302701347353742565968759236874554969490974482514692173699179428490785987296486473893269712420621885749147085980977981599365233465539735879136994603140974879085239477066533207009380886517551933808474186105476028562744156644534903606777361874383431777357962549812605888504531399122557097382393366874677437021005132097144231059084174922496970970379773758012464620655252575038007240721116849923699591714364256383115079611107396386608094774080258181404052921866550791506858676150160878344321366427247816257229498043972217298733718865325986098496659894704510650861843874447370434397641219062980361746186960492061601582452762658141609016897464935412139327940357907814423749646151978582698936884470157364843396438679989333919808040375961648238213587951891829679734310430923745172135878335762625756962202299086100879996898387785386985848544726863130622281001474929354807625076062601209711756915146192444100712699780544888771774441084183140786737419091630349254513843254813425957279749317425249476942689929455366850864505190189494239610052910602926583553262459677852833533494879339391345294185790968370284836467585659842950188011354835047609682420877810645088727115097559281715047638244379383598131875951495508070394528651483646308101190200119641421638742070593939738626323669556720039772133215337662510873854431725467163560627311525555999878228454531842461311473299237194781596764437484879573061523327028626791992405860693149974389527297267952032337383171185292655972639724583135533869576385429353017054736991151472854318542544699882941669260936048128337606588819677563170171711025823764861873508372835556336653610240771331056383474096468673081500785232710529230022992798357333313135567820778863873786950536193204460933265173783289453640352346086131590337412084763825922566148870368583803937016799027249495369936857120950602997024902573362176285502118844661597291437887701896520310350442771520455917084834047124720795085279486228625527142830131420931357800360703943621792850039091633150074013324632538376047679565081551582545230715153913312060848847614701589261305961702547696108451297841220555937571567655845532966289272060772570068658887455124265628348817199893459112148077538598492699960244516955143107579982708204984946040276808348907246498963104500971260777989329606338117687216297449168061725667708955662867812780383762622306486375363374261892653010772051163886148115191077781027188359795407497212866002464568214475573848463137022991349423331518157090548522166650511800109544569141427334891592615933915822440419281149876914678755053285685844192300149001536329833464988692516651137301491309337257554660869400268393255758882818639332828435753755138073847083529240382152362599853788406682855778464959288121392441671573330148181002808063934916375628018029751840424861298690182114667088906125594292365634140974129464943211214152272203887183828766804191355337176322730787377654326830747324093784381529841002202455495355925263768696495900446418896408982703114649091431770568634260940847198860773118134499320217312499702751138043664772486382101418676794944540244941153749084049403986640529676237554401558550281160732039884608786481834470778202517083414624889241122994693390754868384764388929313833291433513545635204281708626725082551513238043458215614656910646090854057305030034189742520053140103079660583972924793429512533545611646130322059788842268690784376687574715554273163825112845133479970384455047628085234204094681465546648610728753866492469221780945253087400269927012811493236128637617651780314756746787997374403698636982301555800187497610142152006141848022081352115043922724097605006866129225677781413785367406390727249568547463073627051479669974812576476053729106796642172656600810412212887164034790915100313624782322421342114341503479557076527215438636439242439130183115121790586948475581368070871773751179386566955909525571014945834985217749552748983720705807937826089844821705061301570281919246229723497142282265682132949693032704816652787101708190954638954674830588884125484264393004519555037444473937749862966845899536126146054077317755000053304615424230691651393166174219674862249893084067605189209809429112815417623672787093293780603669042879912199904255936691315918307443759325734138230397908931304847247418497936583625393377613193716610614204599226456412613784363387594734047183027925438339885201224396459550019744053143137429539364060821536574614435662334724668089658666608975560168379831012392560339976260099273376315590440670834577056205052082114938029869648695408773765026429070854582223820170975279108893653645980201605127419921920593101502376244551130600352794997153830383645786488305826238240149559759953049575787128514816994634715883853429226611025216708879867816634377966667137651035816726472046989267707353876939094133386373435892677595541376406447192088531958611516249787711924553405421036332574397153448340239494366850127587959584895132267262244271632672051202614000485329456315335860555314035998687417343009072521050049558414940531183533685167869666152580160201458264361030087405812111800382817926005493713629282680107072318342779339143696644515268472153767779707358256587963152990393229471335670953887420922243169125542032791853146336620812300861066501753428915848222613896449712024005785336132173705084297806633334740319702063556593039992492874478408280088340991148714834930654328194161088241819474032853622712362217517813050994771061145000926904425672429665006103647396192611181677924683755055839421662370430900806202793937164493819710574481015942095979656342215039330064771254831283764624317816783978099806890072979355324804112013513447350696649639548781621506927801317822689200417540647482338449531021312429052028284379235346794144885612160562854837332960988446149509748643410914400964947349021241678659674561843770923478519877051985744717142925884653931611092603162150159148736237206985343725870246713769374220872582527311254244569470220696824121323837185228019298279232900087697306643168201602138371818353936953152838943704994597747369745940025759180474674230064971027262354543606540376779142537064898209492109026459890216598118779937546023092097222666155065263928511192970765187376217830081895380479994851221415423337857454518321129326632263024437190778057925383040596306467699318193494796117476194667884531729545096482309333587056857234487688008360259391229543368632220536188337364465810367274793154059231918922935371129952861164902249599147930188254208978203824248586199824913894387444923473207700502633715644384889603452389652539542863988529716690988295975430736618463175424939703174673705859153955898661358688944232233704622452021061909148802480355012709766667387552158872632430332522991963738899591379100909831725598056931904454834789417032295825208893021470410674616780906787724518848151436018537846597889854623143201957898863209747476628635533160296247079805077672460470918175834761205239642480461408747868837421536976949704426187200280679450763149304876036365135953881651263317966062977952535776296929705196381323245899891038397562847930249973209624420424412691243393542512917967747154406062911273647446634401603584016876550574253773337255345157539664163521668315564321926280779359102785901198306293459651386888365284491593634036595187603894492458721126176197738768726315741586451462483585472038971624871750337526397834625981824805221081915734631664751169711459912897874204371790556939854837163921604398217605399708933942732089795987865796702813703848780215234229844453735812563227888950632674928549597589508650328216991426324712661614461214605197929914458228129134230186103977999834490812959506437097428914161968353010263820803477852945527473986088336053776776771990362279539645354952649274044744191998390900652911279895606387051011281208781733459087086961545176580714684138814347953287257917069304132670623004015047976164441435320823543011185745782768032066150888490008793900039540530939251844170898992573122066733566457506898834028083793934876697387994739660819887970181897890182137711458144816723934762461206102273473791570943653714823667046482802091689559943059795144965988943774572206209239435660535139162003103195563142103606169774090904201661831638613561769506480747875674946056458543480458290585878980798914193222839117189335702959146790552885429846510922089458662723653358629287293311523204378597714141267021968550813747906689418173668601385430553246533380561542645670159725107004760146735025459702319261124357137325330204907022249270047683987033600955203139811328957875302207466209193310008832872570071717977980370231075231455509169459450154332993209708375779691577303481684456795976937024677284237523749230423375596548160383053678913423824919209209661278764634939694735672114782087769432513589623493492795678753252522523799472218852856144453418069552052247910088687263288067031943864872276615048956085229760892054066434913610431613905542193742540504557190409390616903783892685210528646730412271758034857910245687121636751540504704452804291177335647151228319166332992285422069526180681863655425347509837018119908915001717843987225817936045456333450244211789030767921735210623299563757180500042979221168618658046119268952702564058645775616240720133808551758239635679158010837828615868092540654229963564365432619714328146119157472312040891469913740558331313112193175328636784125248989228276276366306905792921701655097457286021752767038070465879133834988095864083716754895833249077063036910857749156185904311689877740715688587293074626213071625638272386459399163405162655287182271737020761489493551369814170060956723611746766810094953197005740422812593768289470626722677658353527647145276429005040037623031988403621778987318606212461898085902209293396650694015071688055502673306583346682865277787745029936214786821773904605951710125596703257322124611126927434417208327791390142451216893172775541155124499796259710980478930228827816025850279337008166453069028108968427884961679602291207191507908207599142995887103394061758324950685237149806338612956470347972272557841375972724360336650296202248444100595910356928636359289558603370105519022577980167549824786865668943623793448284241504396927476427069968197635018439159390063901078024631805224118560159751692164186617844165741952340480082209076076035685290992729361196733286312564786115695824095613196373445061931046500002493767029500502816876980993057083871692681614271165979417918215293308871375933997011526833243753665521433481812831649656171748529777231630900679077347894824698688659755386642457494061856516811218465058219277704391468322953358397446794637993482928265013340596706857861134107257043211060132703176540033101201941754967818238742914063934058818649821152266719293156859615364187603863738938929877735023490945803223669120104912074532271223614189934093563260626012052315384338805086961683048239612046002247194761916463705354964866591664369944266305539315252196484798949109893585992842758500272497724509751298762278754151999869662055808533718813962799976964584635886346546886331682761281973262367027829669936950000036834781608915118165651617548854828453850003280287059064629380311431928928746054025796469143785698410318432728358498978434821158932044969288355904326261772085578487952811668095420846497728351522280701367187775038187730967081091085586348948657541363020681666962836376732929333456784425094706588936024402074074594405928623335620972369327547256482256888231228913328371386238655593287426079078954970938612527932832222068880067468631802515117681004896755267726466554196757052883160291183854298064265144670988960182402090733175831276103323767266122298376713509760706614725659888420224310520149873959007896649901440082811600886611290395047606575802134841088641155695299676302834096312210167775654568972023619659874447258272632647605931861129389171422872423090193200589903880735636073123337574489941490763693208343014297467984291602028782628952430270018112079582528746263890673253511625552653404171508721629184062590640087367548430160519418424587184370135717943105794759533406926518890150423150828621755730129472337741670826090101137653258721887957472745802351905921363709952652477873661419448815754432848858240963029509260641318743447857698109518501696824594667546767837741192170689611644374775045223032887656865918574275415170509591506714698179300097652532154449669916030943750736791635139546680175949881454385749076491187626142623176797807742007549952433096560649310644824020346650167582359122025340019378823213061947460143710994234600465449089065526386297798762415769478090951214707400138299679937915936568563071330454609389719133758257966290432403528117052000687620197567933344037640864012945621094338007210970451854727669727031344292230711218839260144138068805280376467200825505673445968491829444553515802091443684673267228234280992150283528869496416296612403370268995896019708324666044487591779358291656733621884450248443544733354707577993227629704268839345899934713129545577898760992116689280092913134670113361432077991556767767998078655911805814607997807851018301273034436630456691136727648409910281878940401443823118921987784075828978292148768773362467232978835676471800800951322056391199819834880674117248125862104915345299707516031230046706143215947078807186145805848716945254096797086076989615001587724549646483882591482935621048236647128622902606228937057545241173299981864001576599595724378892612130695476850374297372228960535897425230319673379566670802885502756387818865290742360775413934638021778834791366455682880970618930799154164263435358539796332036456942684639389210206639875273786062493888959695596313575446649946828249783273936209444803793656657744611117485611666761494498111322258076388737825177195836051463670037490596617505505558349919295877816318409183936554313974416501848941990374737782264872449318208673286536828831511085769120993281113408660004284822666409443935988904350197992893876417559888172734619175399143470482771299810857356640909199550255716389501798847422580530996268775076889562761444521791614678987771781299391855797100477155695426701162122665068904490171804590005449820320600250243152931747633866317217983716313335214384405363717428283944170150935180104559622193815997581853867992398234795402318261461427920287548023890195665453747787554183910354637161426739294386235774613537858192745804588181571340207015521739145720698783412254846690917210760519204272387307736517047251745306781766949889416291190468888575135859960220240151099697070255817047454005473237762722127271836798947654749357440623756349621607218705509018584674576813391418012395849839643815849104908313435650263294157821235862095098367686650721253421576734511681980481462930692942035168758603886475958600631941031108185574346059565620958808200527306674488749308451643073903331672605631230607102778566944556294046668058463582642892203102654308797072691467452509230276158548428160336229981450606914332094052149903935275386291291419095843420825941750420718785716575255355857347555237200303753304510881028038426049630060602256460114621212850575235385727925518004658876563716103249158672257576391257587691028607982546356978229342680228545924320576242017786693244211895448280422093199256209404312243855414601210949195698934993661089475547062459350730226111254161858150584443911088603229092419512357273636519915601999177798565599641823200964170991255022772279665541467078959569322135572024580984757781186101840678169445369278090038621624429609283370216800324266823599671267271098194343042519325111934599770014012346536822080904229060722388203898563546578527805174947045018858822732841351400612280878531969199896500226305528790868609356779164894907825868565880766682430501870678793586835346428483257687935511377527513602604842369523083695444052833801452626456453334383084682489285274645178917075208734182633831204875306965970360299940799379930283001633985745438250778664521976615060980211361222397104870721689441046550084639403901127083950051403934769345206835871555933398197882810692480513953858126862509090691625556816584823866342935658455496397629124726710191058099224819464116491686282851563882785693207639156859213503903430317598009318044457541428682837158433823903226256171253983372910165011285592747601940870115111061867513698409114179258569203394258812119314327435364398206513110109344863777767100600964965347513211874109078978150877339262991915364855347439034375077816017362413677802138765392552727238859676152612734859826640457788057429189540470012235453174249755349451348549561830258105608223424714941340994635063944500688009150153409216497739522848241551468072361930939699390693788338460756677462942690773555114232272405072677537558172023682544091197427136941687021532212620553488928093083721063011617274828778835249177700248939302992025963114571637638205045764109978706425112527004909718952815413011524033819701076067818070821978685602490423106672635429170970549670981548137411581693620433624616234962244119392783998562458447350587705898248762561876166043866183394690761830558784824008501096811251535546367403611762904919268650527938306627351041786245156215871223144325714596088605035573586759511035090429127979038506290705319796537500779643378244441324449719946146286217202222795677356163728900464474174388358334742569919940445083519610768201898337104769566121040239579031362040270291841301376372913504607658810130859455843367787217866269400445457812833168633743119437621784419049220612223482658914395821547062144080969308560911363398861880599721423660211048977531259884385877679199748716455227878729133041689846961410992844376052264516430382248333315673815625557732363406255234020072029313402811635622272094668109099461791359924237775162647430810754682556554263823433329912166738202856933848607881642444085787157988827147610786480624575031566025933836764592743726944383883356514623181298888312397765413238829624638032528986347032223137958960339327307680050196768055360594829209508806839267637788115119680817568906017490959445471943294130047925445413094673573473241522480242404956005705046561201450585979859666450390482981322865766325044270398759176300633256577893651499479422828731168576272503520037621845127651214186800149175940550323147068384575721830261371211323418856703275414023162258206697385012487574382205880721501919297207514598433433050680467553863648076169164967726590247381219254166211132278879366355394873708439115522853779395849134225180884054023265374542325932206335026826423117833193377533073451736288030861725242320706469140656968855932076554394821756364768746313017114635026311048757391674234779043167580645958174463316390477197471637275781724046361856942363446604929636314677500851944486507368055494536327183964965374821784887514694786134695489663508230101948595847948364650874292515592664519771848803023998704093385486851692336111166995659808370215358409264040356661958551360109474506476162463227685377276959499754567599033230465131324972312296815781530429711567111819603476656714340459040031945572207234765669828129162934384964808101165971972222542717148001157744361252535590101020992459578385351190442724376756331031209840247874054770260366527439437287842506510057452164042371476199274378540259030938945999674769648376824384803087860908376904731485188115160927433664176489213385528849126882797429296992469332550602599614044413967470981203668227561733611083421774039573852734249584697302907058995546908115538625797108533685774572931800500772814663955756417180093992727901435470559893468083822560290847640112676206673394761678645254724262714610194257564486721313176948668194854523369961449704677955718146908101388295030401347749042265176956200123829884859639340045856106658903241501565885612534134626398404422417353914223474407557103691430027475122037217379073552112049807555870645974550661606696114193330260218604204276378026058279966233294671259240909403121401938671287618690103941829815603401247994248482103113749586995977982057453430549407615061160751677466606715241555882368906316975941758932431475002778160816392034616587522999169054919660876527407452442151511379678939365933369041768080676824489054946443944274297987328543534550817855595259238002575538655289726363866668162278980319356220092329870534127884839501484922611777522140202109672474139855578746667641171942889710895155924384258855888843977630491202119359271644434293734453730222916280678894126323552433293001992893764933940347523815189045994591168696235787459908752811064778773271531345727244128453719156829498065655561737962388957848511457439290727894179437115459915998889229162402110242837563365570593530808887690075668310080789901601642699756499042933661442908102915896892825909325621498887985250241620383576992758297681552346351288710954904159592912445275498431502196554789639004309482019468934730575412214728249179271214854753174458666106811566504058474491699527647164892747816198702592622943952210514427321352336096137086324383000844769697317524202884939177512593425207145313322624026715722588801391968736884370729190455851634525191568128305899786301545119520794938155995749861053328214181271685503171872884266620700932009249727340101420698657977197000216311938219501371937940644049305023684879009839677186930035459702162291572344261092475071135512394183014534103523343883212612735901674392460597631983715597082166524421704010745105805241832078429179879280711969711638420613383753666671009469800931368992567218293855267024238225892492401206211288872044594131839336187383364666798166332951632527107205457783393640824952979771447496302384298725406519835889056919158237245041649563463319106190389276377827055672459998491743175359243777849658433655998736227464643804003421450352642690408111383268965574018692698880314731095227652172616473516168593778494711945362978351382446830497563629277415836023006081969296338426052578149025511581504813269284946164235516275490828988003321143882429613140034414199916975327092160395875403596793895084552200547532913207041835594756317075568084882991407021744295129096983139461497790033737775885951369176879552906347668201511232085402954513509184951760001355228458589545528820280751695625645246274277808845885160717802201362282601265349293352567403288193205639000797038743455554256660085519602521141992381462133131153741379918586748586530301916187222548506175527315132913252733472406096515560509568041086765678045615971450221802071581971578497107913692415827866724710670832144752503505768931650605849044802780275643002370230361832200090764995290022581871775548403611154429428192608377227685041518051025336947165014959808179861640226002724989801690171089607601348983836628097564954992828192853140318132313134170619362201358006363341423949335680865097250070658381033164892127064785775283775006763555969054342154781345432013858775086300886301248112679167583659037958741979516654838469807727550550352648808907180539409534852376414120108665289572515709020494618942207805673276931018901775641616111535664003551607121842270292176353396821418737781949240874517090449561561414132379386345024984196808935962248266296392814422638714320927618035299114940887881123407321939186394591345733904024279676836574014344255222061527432624603808349581126690633050793372826034091682832236163468134697890261289447767157906259781193111274192297547461121079379893760860011419734484591089406264297759629257901525064603744595878440149199511971137935715675786869468402592640801629959197241272664169941175491865568825338569468329827858827095780687580451061174172612389310194141569850529129913761140256278744728793316017317833947073550064681603686355438226951321006268454050780860280738509241869525299771795485808198706694798636985558261931419402648796259750704100680566237612606326910772969001031635544269661485376881392557618215959931836955165787742920111842490902399676736164833668153839587118167601800286957009949812554200950116016385463110068173302326922922837619751770659471385695154508494629742518672572021666611324527832952729015783960654441379422697896014793423739159537549162731758161547636117057498239688766729287612908303570002305760486120259883742653747372683985081800193581725012232000807063545166970672989787786418228867319617671764387433902871310518745462223819180598825008482425346675904660752589011908053898921769355967980069516589603538355439642634054800419263896096418287473301885141559827294557638472709055625191464498557045884979639331947697453096545088276586924398920700223014264975731347053790011472023440955684547169484215254491590507843764831491332309828165184510976386261148576839965660864161252699978662704646691709409487564133475363047866974924755994801491559114964407275679658642924958722566866511531458864576489035709081962904565579130361232105345537368567772317952502107687766429490362580624402494884364625742371233164990177580656556607624880116267158955467284768587064795636456235886691815352368903891544041621692968125195979496318846231184547718620377686949722084072646423085699990377382237940632318031262546161347978739052274453334549306797212589875597513374489095840543945541257437613913028655662438815871874765405233923696984409011041983335447901783691883483330155636479073798381275161674262162393999772569293719127601511878594939027186016076834891185277575196459305287891736466035153654935787241508593441744849801036292797780354917028445294027690045165353356480593456894294136649651397910752122389331364072867787371592070258556279334125274960792233625834079877740286313928342117903046671485276069179752074621023051561848910092647586422119600670986128487665045944622654693694814829592139512153164679301537511333449489171715890570771579788119722697274046347061776737677272773814370813206987867024048713127040950380067758529110030907233238978846187112479709958942044858779100624464599222920813789967326902455211323918166204688918951192337090408804717080533008062855589144364610772935996307280329500412703884686682874156207299766222524051332922808965750444311038487106705740707582923896442022112478410233738357450245031787764703475956953410650331714305700928498489898363108957924347788139342623179366692911512709961467223818406257641520928125748663661277830561458444064411976633235625956332032084032194426700122944153788578519953721443069811547964847038985430433118714597419824363071211316956570727476563690827242073544892414802647336489063102258165128983530300597947203782318595895116490859924736179749825604107733385545030005833666143182569745783522806430370334658202995543116895988401266266530864666681172030739323449919981762379640078058643787385917751777130842518443794945928002505726708575996179653578275628933882369178815975584949860827635402402311416682504405999633682064696319495681783939552943783779692281630603059518913420191360358221310070393069389150323604801330128583884561529381458820802577738969696435498930088339225188592972351903033768013441303095248788876044428716532289980239095596410165693606667041154394826045623395964194453277052884878551324637499631285487209253234920155115758228897494901212878054857438627638656729738258886327255359566743342077112416439451122348278255443795089432505639059422166645525440526159292805575644915491706772459220046253381981183740351385169279648144556709039186210156153266599434785051592393811236832279329496824180054351450934280576993145832418809959276660405202850680732384811587191055837250116729228222073211225674576627302575673643445580950817259185352367502289996469581288147877091588133629557410918303010911720860664899871386831345706971691247633125181505184220274968584416709927041920165941066617955580110240471097844109857765720396429446689832417579907064441782944759761405482508611601392108500013173835026683583787299829916296873903507395728918105660042409252251207195502950315498655211790100290544260054799738051937448350474725878711839973728851660043295254384612637850671907585681475022165024206965088801783649298640064927477020345843699122187369502653074510149213662579197760959259015994124498478911902737801412865067636677544824690607900630969962554532370550757860236922047649119668834237428401198016567568741163868062677302793103231646665563173623147077542945696381044620417481322833801832011830696350375912979548596458505862212499782699728391542390580316650295316605724175461563557525060066017922007572379422475346783471081794992871947643723197001309319907437352961671773326132458852603079889408661845392803085031782091373968862714350530797206296765561411656833018473650728289841613872180170912801437581848741419352625623823726174209167049053077576876205312651751556472411692260004596169261074125599999717415785066077526306229853135064439153413672043243144435915853845588227778497147565622463445728632390683323440622166169853670297681638827611868271619408018183222621664081615238666207193028878697477132352132017535883124545295564888121584602117131070236463476838520036918609611432405392347307357254084434259693366364914893903203513455236767529081199499147073714100535644771685532139119458148660512823738644772745646051347946502319716524616599150345661716392446134414734687084667299328525508146241820343357419622774376915672837978605713472519653153269484905274147068222914585534850868376932324951461312582104066056024277915875854541873974346327849090367814494777906786500640553553290128286462974723344016120342342039326368992932286584052156289288219788773990605129221388516026502365835383149441336100907633766286774728284526963457003313700973085765277552382382676075947612083092022066289933615090170772690903191069902176869967096496273997015228555718627965702804221701260138992711159482332699272927030405034782309547688512455108205769852442245984841277147683582647874002125378961318871587188762541685023934509595765074612371961564702730930678498572727005432909391598070425577444340011546119872452847445102838530829676450584346583457660511726474241141678633944131950433637019207585050989020990161738623027935467902733198506649790307185289965582462049497207849380822937559200200063721772451125067405791570220395284957405670010609085786219688379835094199123893080892279915829358455276838250776838875030093149283427785488464360046347786572781753037260456955692780976079375708448481664131224100790384311738145128545066110354624504117826124553793138101176431280936723897491020369325074156705382917687624162567798008054661892741034537211626851237329158243655911878997244606059458749137265680416477595312835210118977514474998348589754617910352463466019142453082534423599550558468036634469436192458267810743275307219117048589621831294248353923783636560741405096723972673222919192859485054208339341239501165744332889216939469902405183162288110353092034712200818406304900556171702138584436795581705724030581645518994536234665399493530103688185658779944596494931896448968678001994358301546564983195904237782270810135037311871931890010158708345870776029728928370675239442676352392033088092973433812596969424029312810246867908149069849715966633456977532796844552305782712487770827357721266829037878711353946286477803372579964722440543843699762336569230172041173018205663164765566599255623578474169550384030128835984747023277048021960440404214642563917707759641673954586616782608871578650053155735168944063895247975647307183968751449385216858008292158854270020118936206585585798954753434805429545425005442995869613247067209312328432710609568507502771597741771379907071257576718965324897449415815769018581328070579012493252018421588334629051628790710934775632473330746052584139031219601963641991788751039015352800899329535268723586950944143907035181537811469940839938144564329107223273309547291725598234675000983646563143050587928484707263761842548199781952424133046887187414971559303086598351228440257027866121998014919015943439275783824198763879830838460626186823835578974899200759924046557372287795157318531047576620013160338537340960824521183532764056774900202614025587477349698782507442072169778750301045795961983980308103051863262936422245938862842133329713958017724550325756660606968435414976766059221297763818610131505554022050518321436837723338677278156899826336481006189700131458786458735864168006969349216209461106169379839948258460171987571592704780892762569881735996942815068601276370308574759919946292915813936069084937996815739231608990939994764045398691872720593512092498131562325267975821442000308144674783374464164554111047335779694772664060510960523907866588752038761978688764366120120986841246238710819327490607158928664666010378499352238857211314203957785669912239904971997275718095039010344867204192396903355207450789830524982734353370841412002998684244147802427947287212685932621540357927371268831449442175257064918725843322234156599433702114550527035298621068405904473593024746237879231904422418602175949725314405495320146331235899218144673843907568890369215911170505097437526100468198057357952129776873831895793988205743894036512328774551158491640849530896948177986117200539443434297339631973693564577307646616366693815028028629318441872323882323414326641807495974514872027142530528398766271559320345644736128386955720785527443272331944483976424044222887778184831712405692944298832834272114972057959417258762955413719588357615560736400222069163115175212376598001935112963816188156369805178977315699322436089355418743230270981338990992055357760409558825528354243993269167509614513693328065418900634402239603742371277352906827571232063007958823931881273704652009514084819219221821582154070759534117483849511685428434737432362610101565184970180149696432503753332070367054854820891306347181884659268090078945006855296196486422673014056573594433955023091748913250601139002575937190051764588723309733604398861387637587571175477246497080725532315675047223810406293836432042600688765951194777197552505165165184270428344900958129018014775110637605232824724629601577093226821292047755327555290384437058418092792452356037833644217341014322245644180123735300697390114449055302541162640948915416524303071284829856560961288763668453876425238116041783094933137244560092154136236140942173858324362159496215294303452886323683085359320687535025108994093674132872601792439392741416056212881373324570817422043962217668668727425808969632410491720095957545848696120992878370998750488022480879860043339559236556190757814240122686498515107595259947068632386068424976238899068064587690518996392706636908102634856330999833038775896738331328320899616377930670547357596635660412326260412672083781640463021156462812501684201537028021915142168731500621584116039139844538676865079275331702120627799680645310339429265577180251091080659740922859526126201457329396887116018774725336908975365275614440029878942693905407789116474501967570948572288017720568867716451676483293674970653081090781614425812323218988739076283130084335743622425807691448787764725586415041715698842868815565815579807919478895227068614921844265100466502811581768745341342019361298151568293852195631725834002838372532081970750062205617389374251189385673756896078622704191951520413588451442883408333557800912962034709049678883090650985223113279302047349396701502588011325831241149177165161826542902000151205717031247398437762875316274370364356922429614684075961943910463734480224678301548489142370129572861829697128497623071572288186786024622398775075817219907047898726437337374018779027396174405578585131879948736593522899472101315628385361343300983244902286348040754448979316877173165640807823888871473221724161876173590428749961984125706331080987534555180929511164454952024955394114379200273451777766033121017210099212492075417051536464594479554308023922242989652756528411341657836317699730774865188320898498801225564782016424169887231121073174837539876208610048699287780082529761123125342226411034439660861786945521677584978901312282299301395661156407152262375613647657321266663516217681166333005892428637640331728995583456705836825076487864465917790969791189465760728379844268602962062169489425552968711708589450462076524872476130365639491829867932389494886431134121349414719546989025212490108272129673219433642021605344656468163391209279666297808831976645152452153156558061982827891250782105806513652713141865883744190378107912372288377560102139848067607931349319448039653753643133765915773283082927058001635294389137046335597801806488096200851171869326144205378706280736866350574727352811410196741431913077446479261741895898992508727190679115859704127018476419798605163206943897547539217088747574008500910501640662690949651506572428059706197149993391157926454161207392059747268175736068422743246300424230106124216460672922381789037864381316260444824554279987678886363460891900514541267874568641203317765713710499134110913753081384654217069569319710731867402147628586906359959525624635041705147067589542735013957812212157325393083036033645759386107233997025112398896739028431039844359129968976363220521605935217573261426478473093008105173046244722447072901394140154769890311076562056918895233237549108945589333304912697758897309452465261519435613767788024401999494411548539190680804234564502294599501326652122807526186412055243318722005124289258751374698926455132656906845637622970495792903524909642826247720002141207221347015172718521019883450178369115563571649605717930938029487613637796847520255757207783049998838753796366642526496440589463963009081021079670264113886501696055220974752387461192476240627216038391298321052444326536403433558732872214855997112062172646507281741914264340092498312586648877446444472653187331743057431354738757940924308393990925384102713018288637107598397654561015503206585945268453604982811281856789758276413265998638348535535780038849352435099274647866589422090567668564922469945762952845394673858414202637116662053095951393776022343781242211205661490146922287976335156942942952247780506555074389303695431432916774931371281761884962220106179681575651514136642569475377809084184610725570348020275537563423288605001626098755845503992679269082630900026417934958713810598538556142068470824122061901152175091355475341502580336717605441541822982768435698412876280234752493929459690960962692126313473031813763541518448239976976439690566449481327016404904737315415484509702869637557201250733819141770806565356401940343492680042039681622210379848845228168068725775718949978187967860233343556870333218281004103632560916850632978514465426951760475794147940294022147192225111976268600022098525341128650892627881874207211273567540057272912119877156384980060730746590150633008304265718116056959334124113870421636660868831613555985068024562587821567174531216243911453862814431696016034397145346950292958914593098830496010083253795594373489722909447674381185808035792273612578898097541352032934037540957304964935497365630279934879943748018150603233252325420908354969029751900424516935997099426902729182750688441917891164443051336340168436082181122592906863210775065929534270746396227457301893101464342366308247416343050380738336740951264118189715607816032288846054356303611645014214158550781042059123471514587308221942113209544850630042202930716607326514595410712348393960109235951350785948484500347090281042986089791901419713150210593911417856255466324319691001605146667954434171845043961967746025609349504195968701219247860849031848791484004688751310290727225021988043499683674499139081907250719135099996913972125801094262342654375686736229777029511651974448578852708531716244003746741642777569023949900291033094174108471207969337455446065567945917400714935768572802792505664371500230967972943441489948096440608852680449958245530181421929880367855530367543864309341685220661022721462371114971257829746929900292449533454882891601491403637778052780410618194215001689536300383950783182424342091595782584115778548965036355221258027962448900730993539057269136472751777464289964515746875298155494958504400815309350511490333895189659580076973738015505912555323192252511377804768714661811517619356327698744144764030698533168364562411302237523116920981890730989143303819000994690319916210798016093469724272020766838509206218383296916780236429958140475652393158861964949633610972019600695039430267664656084471216495115324779215739681835163501219647289877437777003679477137830083063461440411305975617750818744438519224241843742241835828356081787797482281867584917473912818260376291516569633301842555780461368355439954032932292057066531457112268676927199361926733725954962078298073610384725627964771755001734182428593737853995664783086510773157861381370873659340945059515436579436649977897145398611484439840185001334858752871950763021671392095101882356612852543301649470602422677240021967575349022110584979455301435558916524373255808458492564500036333043111427713349075085173199515545643683503630957764994043608812862633392960523839253855629967470485315839707222117149160655966690011951897742674426339556871777287734638268890196110240189153177477365525709866682559002248365607764157043800654818388975342902440613684346208195715712356039480575275591508495699708032655597625243051018505192234963405329720384481963090464426685071507783313838359058628067036395418462105406590320692262343583748916445080791156980825971155610868772574974374776487523603375759408999988198824290971844771910990822916931362487744950382827098276223299105344435707072356772918977447489511815829472825538620080946871667503389205797134138812341451590246052359939283048153271364547701330397160130008635195991809068428716167621973308365284548893541118407955629273920138318902802012508090538578023615463206432004457501033504402818106831098814751026171003493316273750873979211654056168664117884294265299267931907166554608223814612423647092129180027527192790471188952255353966822447485362131155964479579058862000428110651948076592381186373605219448913891480234491361199823780052024808343219611991606119543430931481617995196092642742311211949004280169114458140940630574477013512270080361156896116802499974605314844207342373250919047643302144563376162452232121300175603136361179733021996159509279767144385816513964192045328236675111862739538956731449669158467345496883547130600460656297094330572879201540594160280476265696239552483947372420330182449150465157244223526712278154919442613320822070962152100822746671395521161172586922731056340064262724911894442695638513472269737842340455824314887758673804888445954968349899440792091452100285334951695310461126661459775784738647495257760014323551186097037112894999631047912497184559621062279079512536134936901087187383939809506380239599007067904771693001691725133481332542850989558745006674012747054513574624216411015847077661146310423377125378798118326959163966328310805835797111757610092815496723022806105564234724872747502091946865459369885745149118305755636946681281421935437944799461272402569509346219951577638772815254078459778953420068235872796962525336654102023417076156805498652391974167021424876016290343531982953139566746036174140853255591065818950431073426662093086825022011617077120281947616760903562496153735756216185884576301950237299019672674386074999268098356179995230983263292184704559082788348536885910981478987034051276744558553484830577808504150890322328365170366704208837341397067977701319319461484334151737737488927826987006201684288988714569567054717205401387932560941384642846058699969527204314796899810564396796035835144620878931404367054275802243705618714485146885383206613244597252920565862267716609964620352607927112517829504769026111074621570967620240364416070761051185545708709214483444078502015239469769993146695442440823499188493931466584766466269452834073914810300434545928663173083506092431796375918265098672799328844127465486561025393021887229164781723371908452405132130233536898283975213084627615131048663291256267896444292775190814526575815208083228055027767178333599036882266155513076894028652015084865611612264475892806500426411069707672559763505429987977928133864143569494618735652071703022719398928815125426188301519773506005739551254774926568616687361397643766641780324272989969020932019264409023194030192381695698622986309697159878828956944817589377005155983699069060486750847156982773833421726803238507442955302763272478378225858458583176833698240559885609569347228256666243999234385975116813882800863157962561288788695969875148477481877153793389500740577504426110129028481926841090122333951060871069638093445488245518776230179458105956988093227262317634008879224892477692788323928740966034053848870519604722297395516269630750246678056193321917625617844502544310785240893439567310198862831662990181634771900040933635240410819637076131062332039011890513657298721155763898485028254237752765143963966233050889536864490693193232101921121333605794687558611260014853493752988404036948503864413631503137659776807953954891138008340680464392833513890540893604926238151265378018157877553616087735646842909203219098827191752603364161022512377694433514308625821490478206423421817188722979604825714146557820805757410783447074728950236972949486074834985998387035902270077378265080002018521110731460510858243205291793536832463092515559200842195148882817650158609696728192059874196054834119710590007254905958775232358800527018659225112829718259870466207569990054080478948414002363013197556940628577480864409327814033699716601905352508783607886192138242694613962156523610895559929843244859636998003009167612367491092539348990517880710273128567720056208978461428296716328475067305444288470392597041658526768895327310980127392639704302947194826739593105846585917424388602463785330085233134729156529468876925482248885064107641308193851509763736196049648467971134895281934115781090016593256705528312698836864226164461538607385273254251833581856349712230762681759408660129336479295359909356258700289794097383629698694333395827754399720416346167467868040653913337553547056425488936531070030697106521780912210979573659888267097208811005064342724928256263256288520635612258138348544329306446846772894017221793721058431802179080112532617572956573790889409227869138797563318374960773646016745125853453188396685367893401030205436363062083642223969402803005330100932001649165560122369985545545126836642159648481615353658113261885663163612541625381770432035522090763861741256531013407105139007791721948500945877082078941824917012893023083401810348622566224478037450069559843557995095332315815666978909511067989562536359058847667255004387511082390175307686850387097880738578148136568159386291905075219233877283283452208663775520651495618048660332160247299620243443741519721041322404186640188982990649434747841664841286919542636565878794376830138034971005160930769155271382476670951168369514197795493885217790041737289155225128424360669047218804127976783395401264158905667461653020126605272059421515993336631446955517159816566631521754036602879277005780248585952821588333970522308324065489453800113350547348753011135932367576250794385521288804811579016204660816826693283185766330032775739585040530419288182679030328666842581734182840755584232520727777762173682179462826984314428037564379006516084252180507113658234293584724513883049905155876200685347201066694636173464371436646232433698974743911865553762792498179249301144794931708634438662183559908668102279786042827546267805698664823992894200392685540575011776857544886559564792548636358820601729264673432761786510575044261859590630475958640598450648569510010315445623848192664476686159264345489044545872482855645216691868346388144918314869723930522353552889130205746682299867331102082786798526330761320984882352688926051012925324060921008416444796328765048261082872482699713218170957130665771177316149635965435751357143538238555912457835098526406487301686952633650876852605253604209048697185485678172059236685487014464905794645870610529338075586695177018023566966441599980265556815676911969601387177272046811757462661354533279631551172520275758267454583671102449284914625900110040305283516219513109766479832061949175597122349701835179229174121260629718153759129521323194292159308425164014719066735832749600777417733669288434772552399217803574804776342940650042361997652794846413649684925516081641844310360015457273465405983721506440209947695666930109963774816988384272467737099435668744572564960233541659013787833538801404026530146718826809829846674237791862669963740683737964250617514839290968994699623038991045836878756450164818190129304903811572381751396779168566300081565675867450879897773441154928960505794422149314081987054271184830083603797260062084752826799088597584688296227033009744700290675778186473990697209815722774959511347092646422552298894239135271042643933182984521966264045688108487779113752443851269554753563302981511652268778045940524251518855699718775340892709365009688022628712910853386099557363456755495517228242093506844021142640743089036101514123642659388038542568080747448236189470058813893730629814071284546505564750922015286081942575261879753143994917140583158679481453761022659153002330932885999127554441689599434037610050798589271600393523886304159799873283861259627552686045319027914993978148105953057262887998008159522831122743785872424094301323847097030796788466752142278355919619510857703945911776565922385848292031109546346367537847268932457152112512678309379033154426761861101458167889634885045532235456332347327469952997609002502764906117209102616482029748395957671769569183433206595508699513351898365510867930794775805649003653528167506771673913864453945315578855541522664783794697494269836492084303393567378321385936783335377515624380423480017639654928227474120786331148590456593978726410165685313381690305035143623306397816722763635945306823207484999308310286778864797524745826181590978934877214040161844041843819091667057590035136015313431933524070457942183911469139382216573860081744254034740169099419868932957491363392090025132604908580006797041820254751145209331351983230110223736693311661544777324068786279280319599946364030540457627853978157059801088759766832274275246762978041544501297760972178534123637797745250760348889959557934033570891647613595378188356675793605678338301598471400317661754566611557214069008205838789860000586572618396502117660070263401624409543518913427387860955047177014186085562003747700471850217934540295627749954923642441197144112956921892000254150612971756465711826727227562208488705546035075952674724644730936378233706085631715527303657912615319339815805153337189404727645254810489353999025468725450610904030722501055638404267612180608385230466947771874138444891162529971080953501941157454549981286663382031874678631761630887441472906794922593411862126995173652553611417225403878153646965660575610721200735253787787429119347610138933898494663905656523532278085028564259999531806321315252191425779742857203392515014423932827359861419300633857826910682252218829256625586232282805401300737147979956565692295228032460321096094084885380667414684807594879559264590800880524548722480769931213489639182219280476122680299581878290905102751482940414580833419700668623172508168150371473723496105121393675045194448818637244953705215052781554623363136233177529722848945149694819378154001191107555275199023330351369082515407264504706676228855697101802668020482770261435061657576548361616180384481382573618176927132440819356654460580711294967659287033035769257748354441961487872349561262143865521308881543819614324083385779408936998657958335445807066170475450167994386477406827236754863986804456295827373881319712436261108529320989599028194797110319973490756345884628390018273230021942343079098205495015959070606445814849898140939718602352713648885737506814100310709622409464928598369006530692933242978733831868549931817519714541803056258563689154501599532707940696735727689270607059298867167194617448911064822609195198473736136095280578850632941904907386775148404300041734871997268944241144615092273301597044814336129275253746164427946826696834995085161291218790260072015402115000379050994922550270812917087655081925900107428168726476395868348213544887470901485377827795930895389139833207074295091037922446977533010021837857515498619042186338292017739442416896444913258377591115052764678254871345560962133674703103084565137648386145781777131205658367344374480558914365648999514018591453325957794065120991433069619463329409836332693752259377153755725006751629892922082735963814470813379214897142444317157808476142185338496446639603174618941963788325805866044027027001192178797916709418082870707778885486977390957281564410130159855524387293672117314765438396183635805976744276458057582241871824980713485792489808777661020871701790512865204268178627066169579812505298975634226559348318539256166274341702366320857847051445385223699338344053877840257932012850163586343291119869890710501250399076641759745421122904175243342370774371848464592558621035514234248204164800652374752096601094626055341149121034261156431009266695085674380630633324512392781871257148609451053011082219944326604016168075820982796111289169626350664612139245574088184497189090177212738012101476551804951695950321523384647422080012740014680010594120883221171712931508523699740280147507290046451793836670149965615924671731323955133137244803267451512215580325469574376842402927937867951961470842152046677674085572204401888724380873562348205192228216692955873769825616015037930316361676611306307612793443426403298162468114440851117610122169638826736568377550163329547398743363415206468505339045526053802869947839151975137243687518517771608651627900068219858710482862434664525476060321002478387336339080551402595094612445962027868668731801904145808902199065315613914801496599123349598801201562198432914020256428428782119717995148229727177645187504732285278928609124753040878681030735922458629151703441621900449828745150380179228429306867857732363096056648988269846772299194389337558257746056772502824548406908011158829796995612548009215755163675914728116709523092601960601667566562653993426478524636282332748005158996173803183263951207151949952922432743897602617299731182814634017342850541006687308405338063590077749166675517152177770895528775623156627998999432254473244515738226660357317406367153564177743126284797215024057702007413849817958821934955661879756165380608321884387107210379917728609873851762776373089789259640853621016165247320506319344533436757951133578089158748671325444356307150039763148682788495528038603487808403443282087336600087578836917774756540429899813860029194128203170649458268541053872726829973188669294699388636938547297627713065415319724925383110117069732724059553030324227315845279745841060112457357798637888129940126200828785639717297212279034919392136566153594381069216794868835657104095508883227536885454246621287353494258667078000556628731134382303313907274750875612872767768872757015204901444871497819400495580797709999832835974090675787921467456986152601445932210947163200911601389868234662124358292313607044467526739395484134682715933976956677590787181419882165064155130064274616956484357614089590929222835835234230299070189940685086761856461138497817406616325372379920189948432878346618252829808399370222630393423194878883380121290706052311386433053603551693007872634110607800171848398701725472173109880442520321118907448970043583556584566035374902658081277411759058777090946604385271381099199589875141559797760003339742995297338190461724382783889116724542428318446363820421817919145719532801429013326073196062243348844723120478916293271270658546605424241802321046543435089238120318522610488563972347006650827371731514606210032295804408991665018800314194990416938641766611295505791735961951850574948887238846806215792476907816816086650579297253796728384781442493529864460579298998926011453877856958377338543892014053016885714745335006697017343670491423502743703050806716371135518630603759489214709801360285759340396301122158932493263679740649747116925056186474171157955901520887324648642561505578307703067867389551096997020814627715806302033467419252008347027416613227532426763811558938333113991423854324479913407806581702499457537033974510125142399747283011548124385121113589378842054321409887074729282019354892360309899968563280151443331296018129290341171760448519548556941133377663160082361107950056880151143251388135661735591249980468735910196252929602847118814724850968257228584273636570877997004561269224373796911845127186769090114527607163796700246305292046749674486136703625613997968712375080772691946419134334223405957215316632132442005653087463732328581351294195416865055512178676932620864592900967527118556811567003261685877542643124774954631731383890794070457566999582600560403654486984343709800284762925692589410228285664719035553303575861438270896269401266502247250799329515841580024186087217407312212954070284830784157260894899734926897247660881242733381088167513846647289716532460275923241294700516822094789849094162258748890867935750210777712373793213049538272627087532024263362471521840603600569699826814885341150171563596100983152108639802961548264994983782355919859703929854231373598923578283884969379785292197619076938142545983792104407287342081517901056017328515835701753053333153973040989166957479058901822398741118167538341141493685321097019578356334141471160467894586111307430221032014351007113347401139544271528479647906301588404514919188621920179506818081343229700946440601926924883382726190905440352170096101799455820863123111652709580276305894126545468052748754517616504952317567774024236459345830448206587659951282620830527844507656346212197301885917489080402067111273841594796967057165142827392405651407976588043863748696286923558093891491960967829434235427999643060795444606715218424879518653809399933272244133784832850103160322874529821422353835358803046554266858518880744857204479253580594886970501985685953526658811121074505938558965879427715214539185137511828831372543186288738424005339847927675199485342838567824877763972113625904171124854462705089622264443726219333914378052050912705226446760515574376242719020516348450811822304104795669869667862542657087088023276685745886421026214063238017200442961467087133354769222973360715738342931613441051774947024497042448979626651009140462141206671512409026776012965488119722236879052614848266527713619857602635321477237452745192236669590366600116670382334602810890477324368012877706842309424167582829808708405320260891395211357678512256448775175173541872967408334662053289817576983667022271739077727626015180147257933471287550072669959593813816996060966355646871953297316104194246158097927968537455947644207042589872264018084164725503517812851848760033133156097767178800567744896193888019774206460039873171599798194584324762622125038630307275304548736965844456286561135621614701845488649348070122827528261096069553185228411213365994687740331565088016333198260351538815293181820932268370040914747963435246341558420104508119006038623318827453404430970604419627958947799010355407646489932239375919482865758846674827451776669837144624163160340491261148093983948039877697052424588787835783549633053606760212615804606666187829070786706564774821786543238945596654529535038996016873548075044812862362258875805830724491189109824841063057359985676668158310749839331245304453800848206980782645423166364602351788262993372344462458487446876951731335322025417683349527267253435402394027059062421077986206928015567687937345284831954234474835004291103808458417936714589751281123506218062757350020377360883651611204801194088025758598055970668487212320385971714312887847220744829084149042845110359767859672943753811108466716853384488834059805292034933207825033838971761793090395304298387753516148735785298144718913014116181376289026744322459258059762888696063672027446850428952632368782236621052529623015028026570042804736527132558427377169635848312491295795251425069090411328587858560309472016685444063902864871429440106038733881057615494802915323552077374370224739550335624707740842614708426775823648913911763830389658504381556289234476165219083080745119759180667454416852224543717124930820494271181644288099638799903892277440735363374329292679116001208133713079352335839504375647594335395402586625288330694639901144462365782595930169558468042844819427099250643130471706448398556465842108631858483314200541843425271757675465938225984157303782185198947664435139244311770955161047664765172974501777616640500929969533968203568064860923317195849580549204110663317123771453130986101250106820272789102609952324043989536411821408965862693658073382850852599876061560713540529776629157923003676368808604279827523123612532946478372274192755616205070078019322252953560814497153704583252412470028411805872615755385576466599940262879109702234427875775583541428272171834100254415945047940970594054283547768187198455448978041203493156761562976574648688454716207043307954707672423376849631136996769667719598921411292351714668733376789782980421860528184933390100263670433446065424284658403833586395773972894890784446277116600792085798453731568068384800022374286754713211148177815198982129061541601193264911388790790586256197453155867629209013356649249444831900154337024559840270508580673856532936315942723428576804295518204703125942933616418523479499410245259112376448739581586480161761953916557982114761246050003184585496681642076268010024910176874840325926974984658488059064692437510634403864562402082580404129620575138971002429033132047368729862435180478190393189635023216243535096941797101740185185664020743640084241546945999165875106688105802587528094569059264127615910116777284485560267149324390792664815817115185938988322349221059620257240153243992184639985099612379105871009415275909527506180577235027810375158726134440483525599975780547516056718162772245337082836415314538613731701669959971666329394432585629329980270921370738187919338217375191475717157342408165014999262995976494176839731227085180939938140866223991632129989249373303543116214416536849198788537750712752494660903160130332366096893625325236970883593851147773552059788639668521797294796282477984780601287247307401785409059994410163744455289689428556580158650983868941447264454640074567886198727724714930874660245071881570887180307913533066951715196700786559676936906902883573121002279969088351042201987256857239562462726097208433114560054440310004776210387820229057819457776895681217396339965726223233287844993025836021561039222996348077257203276720114312053722066677453471456572984361247182540335948281842525724235782393980132388798490061758204529671407033946402590485798179304066786951406773167723775342175203957089384389445641424579009784329970064914659557772269022731710126125246640058581797584332200919468196449127922144680383336358386280713374787687468118670476965333369803604705090530639514292513770207562033298592674784231753457173398259132630319142765479206249212204634225706522576978278461566989571510217223899045779497687290743247608493624825938502386707419861802466980890860249132714784791098337843674385065210130467603613703941680614632725804047765154170389820434865507837820046903659036751041584173388137188569499763023325418549904138505416694095273448318872558615549574151966146166054564284495298772082162863811434212570539492920146046123852901991024165421774074028554988941518026449928404159416744092146810299415145744023312999029655843323391769918170778696638282540875308841115728090740731961207994779776160831992478037151434475524057553225873854902936277145762350018316475718094453219552169186764511337817349350821461573878399479999001112778120385763486353709182945143547919588195407847606738751362871661675460593468907077267728596338361672646277989714224480415772401972722299998502941216907412425323962191422702376463165793950823350246809646407071794576999148168404343641387365095742736010747847803725032082460313920011293374039204659142044483146154509831029518397302051896999920186786892718093283160322378606770634100323360829695076554840990804066537633676454069089870078883015376185237435929184133363493049919453235910294742306671511675485075670514036070676220979251038486288252932946140781024161175146645759979429948161927736365742511590870636046740777276082929476754127864986939695841559876651633825108394051948547196513702865818948045178160547039268411790568901291993637894835995477319462960351772247318218498354547138272375511130797220211996446315132701146727215492889405836949821309150492549710319119190934123527034337875379892868652841699329902149621047466139588136781000125369689116956344063904822246749206872742148166360982155696229377742295295602291518852590945931020220172342730344936387632320999747376798635378377015324931690532385438376593896743190135949569806185402095168633120210582499778767944504016984972888619411782908402015516701062727526972998077347232500013531606176807725679392964119013106841870912819755385571546760840762853361138189715850309285005241899435762727679131081072955178640505940519757307263078979502581653669709292823521257353875642310319251654763938542673715212200739916976674444887026045529549158918966906275252460053758125812511217704746278958033166257039677823273968490851700193278417867278500479483854925329555299909182498467324275007559424942848785097986469279023676503058753720019658995060597447860002539926804282305597505975414983486859235659805792354187085658544728405574345953527672521112204971969047535495240755816221763304068803689919522430517826518487341472905940641291222631936644213673090815294398416484902655287031458797511369150273258955524313364175985872984443762808952933952303250601843190631397705111212745098703469192906645269058122689596919906773332075538301200526195276660428515285200354834340225342050588863603434060716017871532408799611018425209482937091943960926938764794973579288461423600593674921522534923157315287094989647799716304420603674988346983520120297827889552668293590783092866089768306853694761858805615502448820758500660164847226342802341953981974105552821101856049813319762602606912070006696469977957183610093285783584353776772937661647917598009485520339695537821435825392018370903898337213499267342425915382063152300522399767952392926077939025694759370338840251849612899517526178311789336197156247666644660536018159124386758946860316869277664724900313620854275258816210234395317173294294681080338905999419824595651789026570871046993768890831435387637913268150015347291936374131446697068958861008467834174944157707465402774162760062778293177060349425581476084600873679335995689709757178874199031317784554941485669319155252961789461754529330499632068806364833348882199664540310987735688467865623479935924098141760307009450679648222449264351121097852930520449462961403529197146674784066898221586495240718583665547690669805300424345509283393288346411035287454349021252337185698530749609198262649836482699511303085852543754551623217330951410896238220923779119809891142038696641224864026936617747382594690604247453063031194055522870373057311999653082073762481173247407882442655645993826785190830362547821553087537627146074937254881214883887018748442188186725671838758206201636109360084419069568507151815408230109348635926608035350595893424886858858638920821104179016417878999413127044387282127979961862910303754797849152620139484134997975434435025217784341758243848632981257845953885718324291017357719908587738742232113906412826246007480511792878786766636410009666046004835765936335339873737085093592798527733957073295321275203839636626778565787616742890538683389824441866539261301526656587594822471710005026335051946187707855216581505703789489874732610058219448903815990374101317483676162300930349898366808377906945727421146279495027982167837243854191822648468810939741358110942526241297196607117006492801117913588530285466272162366892700250194468763800556155011219444536743765893927643699757919480619891015041763833703988453560451207148395000977007503129384931379789411346666128074728725623682431203490195442306820718809407731895286241710008540961922985476036504902323300412200617017155423907712618078113605126792924535112249786769022558239067195813491600998110446391411255900895174061363934853135737164036573099546190774208980073520483483869747919000943053701882053502785795060530104521814197903788975869402090041630768167043302963979399094175538231822927300556067468415495141116596400157503265454204621485116008927574423114143868523939825387910560397560085972020083349900359126127222796593142374862993258076262298055133127699321922863222735109410307672768137956269756898984583610633356869512432433367905114797442674792362927823753185305460847374224064574597961448364838051785271386278435096106473759953696259336323373510860332897029229087917811659252871242012488869676349555551441980090040995923216801759181064014377190225672327564432071083146177709474902066353119031124652415678767572056156604773193982329356279043963233433843488948150878847037659632178721512529352452927447888168819204390220855723895034111705225655103943307043985807238242279087940085354200584989696492332194716859710549876586295391673122062572208925171074228053491763809004823169594789438356555420279043424148753586980845406213501380132036536396833490173008021931353233696645118919611601400863133134921988745121590799463806694785790889209412863157028757269163415081429224534189730861381182183298761007099136810281406440682838017108798865898636616041191122779423446724265096452918429771981297249830499794972837914341233454376945071025510061324436552114573735859766620286828255613707614834264284686006032557538242688492403901765340061380539364366087321196970022477583206188787345641328793365687935570172319978410784931505437215723697859665746130886778791243047839763627075675649534105547751251958782305348149072583512955372301313238331220311006361796075503082402699218434861667542333916577329729528387507481128500929868890235244150888136432049106370210331688494336769718049529928540517222215832997391285722810204576910662271084749268264922423179025719535463509653240767498275930279237382394900532513891456739682999825587439468874179390597453487692887419506998797887099014814039984759817759057655065305040053334650266360715250950894362343846727502526937831305461212470285293102330089701481100528845857640757304938791018092628780919109418734159768734902778108271247463866765626861224336024194773454306475447678205151449042247520095243228784921616694096428297818666171497958215160483383671025231970607629581115799139992984435850874566464751064557885280103173989311315577056577239326601552786470116700684968025398563804517211956482964986591307032920494337936614240326129059763861564449227021420573685686364991899666788060420780619954245853183321843708686583361817458631697893022428300005437435944453982185030214407252894389436654997619457966811148668497916633647266878310818991032288177022781520497790434938515576217228931295708798727478998552609316979557451235129395500690173517972166398335138975870081230903884915531157156308790309679294657489980142174592446122571848218817101859988253677550909332017898584252153511073087636652532188858551853782690995212028659011698951217945346820205358790141516738531510665027205713039890687977501914862398785184972783617397251706527923395264204114901734182591844749439285852562986927577011245093135934935743520845942836301551461208261474645311454159518804644827861841988606291568860751783407926651673949725986663284599761815966867015649080496647579827975428421714631235289934098432036986470023189966320095824226116485146286687702658977842543056688781366167836104260458615675164831885200403386018152803068435509087623319760515258486327789481320937275230734305310425295062258843062626163505472970398812511992452131649469021839724125628226105285078810099784823455469909913638087582797039411055810373774983850729139680381152450923445215779925983131713238213598580243189826731286736614412538537007767518564132575079695979353496134681145109057880962598049280344052783273643850008173162478953977855982674023586727364272532845413252457002485319696974565508646497365777318116778525522226745105670244812456374929527944923233417576702266772076958626580930717714490365481167245516486873885393231210978601805365331464486618602984585858022568028823596149114735418824840937033453794463956907534186851091545400386073161337797288745453972018186595000464673492055548755418352161051400181330539643342485971703040739116997789516886411795257125787021490476083806033079165817859362908775952798010627381578434931200571369880376116768456457099644259690996480290470410222504948919324626906945109493635432104073510683041587904309359542608122994227753815068705962493623688423288159406400184626806007695407423120852665145801361686851919492676343427782305852298196469518610495878987056141637633791221468182152731807403056555823937551259146057211156374671418809786112996948409425953505887893843799458891551385545354341336360847129939484723889086940201515654826235919002005275777599605184701530802109062740604269656157859078145371833169158867787146192410808743339613638737017495970202414265542030375670761285974893993138217801848175049934989266247259396033644846393685108250100423390602212453563085348440760845329009813708557430168898698431322385524317920224177172361417811030480366337854610239248125125009832003504845144342785830421955754940331401240334344696083442238732147155198863678334165714550706075164716440111002266266717982787904967116695344828362511037003311349191415646125437737527546537622852699573377793400261512080218112446300840984958750265708608968344838044720564804379741093755453429643164442947164882343815157763571386876109541048507519955091900213823786668514027714414783898214576992926657281239074188798043818340953151680449572973415348409811183810465152799286808163108260466219422118409311339363429986434024237345290542296950256230893923205823104269405494560545231239182626942867260151618832337498575461243606667395507601203615647175090143214447614530091338166189390792932258522317531831495401445016439621363608071491397831396789701171907754264380059156916384258308444356886409647803326480576061244558530504193163384981222769390896970837382574733356483634313385801150356106949449010123738106780601390326128178541318113358787243909645317835648935864440136770009800336967694360860116228433471378907099722634201997520103335697751841016597978764313395132165888790769430390943641752576532082542377803884637512397979491303039647435128278030240451224398645678897309950688505183945669268370135366500893944368777472022166798561089964551587818093167372462955750521397887044832813863753551440594556944232373738620502452742231222747568305055864158115815542484530685104981465180531386936687897412216650019911101558488890376683200602446994349530575716906809025796487081826430191512610834249627244307119130481185486925183787147411567933208506555086213451901800134096871272945290125502150755401240997629647073262567606605396197814678951881605474282700367310055216875663757315798084229480870866284514093847964361466986975142850869028468007768958475899364007547110379459597745127465790323701933230245872813916528670054770281952845189402588658202465312337850167528001251397638190173190432173447785215943287829536756491701909597109441859402780369474797008565110823904882220695501369296259744526698784312785534834189708384907645256709704260777119586382921105711315560467274501947828416393120540391260849990272760009594652302413696853769934211015808797588707184935715673525998961402151191850510731938818408803180406152031202723818032841405047734553380916656864514312810713126916537888302594841181362059744704942941617152077146131226329809925207803151923789624536122009901696139805061037164027541094164621520104314800394398296651872663433585220843785531268011918491812291879790416183176650990444270432103200609497158421311374824112613588238461991247802278261742481978531027401883951971738024255867842255596696486900008097930867146231585323979323059845772193266427936030291324264142310686257763194790964916952594122363171986698253003015464126428347567836876632214435360064073794270966519183432325540153585504249296164129875552145262825784541672179393091838798837923040599934653045545260378563121075174983811297055393775874460320544398024810955329645643632325090087640031872452399503024023565924183367409246555328319573709749975898009622976732884830122020977831187325393987000275553731485854793379371940428589966122466752299869473186335274129900159318340519508752859836091461623664863045911773282224841714851407768123067292567832249385500393304345361278529182515875148597091632049213753253210165969129036095963651352361343415407576428826319991141419151358168820788505358342800407436070738993334236838524004882248028149053773036311953034417207940083727570635723414044518001743600210715344846871806200787660680539795945651715146246838803363088106932178574610288426764822676926550320810685327484040437842570796720944412843592557687594989655547149666685838507131589607137833378613685170244877007965735474737579611067467928230142828703769968344007414557458308468513999739064211926618078542684757015119139241851367527681116958100742741356499722762657684324898111929075818794206828775038053152900191180899733459303836386232407274177512945727196191513784695317147520190278795359272723630818954732892529371848164233555689684847794577060466012751931484086792455378948256476371965070425512360865167850001153807133818847739917622309405303701510144263204989352249453099989686562550105098073686776965792148083928561739284958836543561012281137026591469899975816502332463895775407074802797861678275270467967306846650723726399441926525767186713443276675412008064060697794455039819635276942547659865746519558828420803203052179114335188227659357066011661702197618377862969161446725414454286474411189535914349687799686938115915802697602287816117560390380252739388131331127321339410314283267942698894106309407268291575276853799655511355644815155534450482003289404416203014918896737804385387939418486690485361556026140259815437156201795253701584896758637706698228262074614901634150744723461191022221467475039249793852873990446032053058137812368596857497621732327104520664758622879636788302010900859276947166967736712844655196505346395069542206440256034185401164984780945538745664823785265226896031881276177156456545733927519076865247096021234817985951637654239949838617988900564382169978282153801402806621389362182131734919974610240183108575668623617494881261833340836018468231842964043867498183549949451607444154825632182860986076258098560782369204447642765636698424421143309358297353213787046240996420931162809440140462500964106460830919549581356347073917095069556238020554346914513834971554026934610839341920345477661592614130680057395373911350148431990389643903992414795911299449315804193303508277181477676943905299494473295322851131907354316478079093395504617437669152846551605740805363225215591188386713313850254040740500433507865396141195237503000516491678442099123578518382827424696740615448053936578695707526995324254106756345919688067261823370712457663338520324291641818691991542965245023432268096741787311000927146942895180178102066317247314454273405758539236404112567860796657752746133137566310807012869910385119761576848141025184858330726428384340827336252521679708086081970075638948508938286827135870663676292710930401464931806492425061067955156878004249224165420493704165837615297579923710165681821285188834192994560084992233771687116603596985808718629518106887377255013970673242944608518597189390901253140919318759478105074987348944537421765721184594264146174077502688083841229144389391292933208562653151593827852334602882788300701866423013759939803934586411622427807590492776128333793567162303802178006615383329612848165573044513525894339739437075765564961535131840265026136269186860634887929233394938796054153873258596372715753733114861739529333962119899941911898850281432038619077414532755151912906617760067585288757180847711743043529280720679310048317525309414770639787899158820827823461908906049393522064882457492130509631075769425704217826765972783579041332540908618006017842756052260237814206697038576211978928795984511487876001005063760735469820648465638121407585555531343974588221579000139914357870865992964841628218982385026525540205444584537868681342070032524336397356996030249545519036703150656869069577020675466826691041334137618885371068823466593118689489168178316234675074663640996402255799994581973627241965029761461063660166255719407129574004075113273915969548959711644437439214053632392534118544004494745092297908854067530733521865292974677775016410350112285238968946844733709027474351700728908012517018060829336079675543497560575950439709534368323906854442307816594068396856275470647511957641790995507486066826820674835667452791323542435213917329519746817175446908807253922667749718003661271180500402717799125252890630514545074165960586760124757868548877990390680142716349378932539403382507069937756609142903092302807999018572910593234398482072326383892934735120887541796809432038034985796232093239386529034096233837266565099355016589487401532766967443173553611088778949340623173757147785044719901476431694651255190417812285075164805553426824443637807484119845047314294538818714471226320623299165808455427190261159144301141785859706639829332858185889978561976962645967304086173393647846633712044154131362304859752427215812131550836168419392125138753189146611197229690874829138493208235934010893670867117794133298791604027321885682036369890605591799054335041595535694202504093642786087836987628729278379416558977314310028028625158433821323257238370417424025372004154081255232641721619800129941834194190357694267571590343417278199108152862869596278153961919256763247147329990797715343297386464743928032328859788125378392795734857889592350188341713266896967510753447222305422625852776938724675719730786218891582016531757341357670836614085589885131279336035976004092989760811905066281204464689581427296501151185377833859770162906940582046374900330045002025343180642576062174711726698066207843366728650860346509196443009663238320234631157055441994435145170474150708730956835546478473854623035445336705252696857956372348331302998434866577063813345728021872800482088535788023704570191902534309216222292289334746852307484724692896119682767619234438951332320152139557480235749875789669695580177839633152046353275980400603031652666339101290828818420838112599667541702383899681899520752491534734645000589642005590379495767075122028516214242685574615538380449596225519977297209869008448170051872699746284120712431867536010805175264855136609065278310616255653343403147785783511402892601997419320711764909963772724299492362577591798566929201412661038660590331782134358488746623213353108648699942392113317190254556268142670857365622988983567577506287167824589095009310098067183365325986254703875246497676954448803120984250338914956427275935902566833984531139834009237258299957684852731773120288023038685589652740949514232104630753846190692908733264570419258580141907111883776977955489929229331434531883535625079171520867208403990932801570887812838928735179522449606904300395146530984362803269394074448162450482615738694387182580950070018515710663118039257569084853332724454907247150939357322246298740232610978530238374170805746477079557493036556685758764057410795695881235546814508681722945850925940098174759709763200854871735298972527781234270571907276186263275146673758045945066315437913162334188709326230659578626540969070296350708415576384095937251530377214120290894940389614778108763345563630987984451178430809244598982355204078966024223242863051349910492295700560549258452677948266999314778005287028094897411271441185234655019041905312002144283696812716493621572892476438600742277747449575408245348392992695223429940343124141906539806270246536776870217126133188540211191436456030396403493262770524123383205462735284906125848372016121932552590013568905833959324997014422698607981445171424325601480056515037415753374144910240840250805010743643775228288203418874902002907289106509125330466905771551719378336309343003771181864334338246203062874779926558900234142415094990957431976876383972419314335503398015356898687099784536021407098210469923432948361600684048741808613684250125871126987160492965200737114352527122505299339644794696647608174105605635445921076678436502270835139230465794898197353482087827300195205751525198305333072068602362495921384679637505757528532372440602860797064242111224042448804494929094210436696637573631334393282409862488109889765231880353086750003404881992412282136450159583406498781596194665067138986548586197130489003470410308198715425891363897497021050976519281837085078576397378528631963145303252870417076092843986435157529952271342606183056742547262582111458133663603612606395415119503800863752594610734807065565752264430473562140157934328961232510596397498352572800970876713177199397381924760522144099958043116969131427769028705762136397443780569721845563977484850779247034947298002297481747520279933186177460040758352083602117056899319010795078276273551954820911184359150094830333491104045263711231083467503845341974313969645298885818640588720793639016892819081121324085338518327188533478396828639880338631306361316649268357707073999028247246002140578924988494916432762481694377907954457463856749261653515522532118787755810376172676225303642229988736305223840843920335821452849155059062991374205973380389915320339089884246228818533422843497478802412385720731933493562984261004359419770462941876401946437768138493938865543718059758100562740316531308411991481671921563443231246113449008524671411969370522477913526195273392296169283521827667067099500087477247260711499181871184519950343824287822597363618719932541769836146802955900365029800953462860721053727138487582775765411991216339393258273511478283042109444006042535805828520421128985677763114844112450011797719934020904296034908440527367132334692208270518541378628680218029770471175461609456356893880079522994721783004444320577732340786435960467195277616572618259624364837576440184865744458170619195687008765897861778626497921004571183457493377301637679609398280194254324693575234273926417568557231059436181647418717129411282189706763338059598029983419243980423679879881675633317884673755515682596157438852049432532647247476634322114663188457788363982692779402836664835886680440462685654005883357778392348154792815365284053631583214574967619384194526967954782821983929175421804505636011737963809778547376974580738004051582442205346567807767612308854572002054777166654315703030442273944544121026889742484154305172854768445141813987403427654425793126947659688031226601457811924529880442290580958341798964768371774780833091454826750202234875925441513715019002262935492116566876974370987886465306502031617333852031686048245451019225343999027167142684765552141051231475148724044480693529543036473339807934087160587338599296920192222852569655889431742321379047749906454303771008498389431088082911577990294375476190084880922640301086129013684405947675426163196150638607974385751573868099437293264284884422088128971867319454181483294363650356967627244988821501251195589911360072686567334791590692913792135681159831205885818880818585349978037805590614450380271110365997209626341665795646832665488728543902118432841233635809918429068392779314996728141337247096203840546696389500758347698126671292634056156520394037082167521267735508975157755210006975877150504912994339412506084231110728930279861199750658272370781051648612274030834462401073648129966638750250062710252966931192583981789489089675268030031145885718345876915825076857861325621402359734016389290849342052724558059435038380884177202200404321985599239138681576983922230675851791799822646480530467363966101660949318246540968724040686227950569805997429593294040290234305800179458887281506140163180384955718942785823447121824525988541045456154485661123676151167137875490226122972820449582816131738236358775029457270333209413443821222696413636680796898127576434688008555549362472346199080565826532674830146038267063157297710686247915967485093207038909136284953782887004333687414091765932072672294120327931841123669843478731439937719518509183933395435736786644914099366991330412534883259953229033421964952282297596731612639904551478479878430020899962064164233544337617636746250871256939045731086901636290762100001288809619442151857514595806480267990125752088812391308048974213931565645816819864657308307561236912931443466906364087037714368834934945556762912232710062424625431762379230899513340114266866191321901545839040223306978227834476113207470233246680434751098043437022677451912757386083221228642057020205548943777268513823181830648381367180259224221455028607153615824528251068215775636832106660061161573702225108344080387179557350749849375752046348103313158390112174204733826401247727792776074612133850391700289520695889968326863823295890513840158292123765093617183065106079509983075536188097216095610249313974551386223660692613587334663059187172358456965895339530103427318749618586356271671943039210014396419534273183033530863803062351644540932460973341556054794269116516239322570637956421434134029991517040636078987773658305792231844811672524529780384028548296763231979429732712182453170122643983390022879904048906756571400136122467535526533820179526941940003147453710146638597238730050729010874313379289308375632207355232257478430006076397470934848902820753251844180613745788169390911138386741858920409687201090535271275595373951676515985986702378982838146597356157420554667739820438313949219356929272753801834903800882968513131140694145254751637232676894607671819980680463980149857447225025836152441589373330775463703859855618169670664811159747864547391434732295732816173263301996012842626721232172313494966892242599891287295303564774064990598590917878362039983700821764711706033851618776041127718795358048450583287743430947427668592873026577538954540796702619857108322261073445684209174556264377940940036660848386890728621159951860362516324725255461817388451769058453262001935134330474815321813113198828183130378894563123430087754478682230172893681038239080922916127079275443847868512660749982369703828643565425363756615327321051032084999993741368923496286612157114867401275510906373351941496201901025254193559948830085473921523387542984373606842532076220259034523864864488121806740094233479617047596789521296283202759028854070157407504227281263296618809041760730970977499124604276788464395829259158567009842392829956635542659887262609316833357290652044527941457328627894099964627717099948432880759385228426145303221440226776177879810306424945320194285752883544185871713188763722630075855701295742793846766210985720663884450346020078232831024105813240742731461280196114145118848545089206452539037713820244069071300417974190974932673166254250148488151737083190594601671607815620113885305433521555920405151352684527237256123265875305533451654269261620321440597137193970802421545643846064264596150597109583616283949556059622291783579127114297474341955035249379617606733595274864483986125947027333620906941814692805852196495078206450688184332837777731215906362077450266137791302846856291347227068204927128208704642805818525261812918068760591700307618438636029966046951889584320274880930958442861703709436114246226064795830582925296448279081780409976531507127601438435669132187131375136671411955769192301874154016792020915633909031905390377450159245491622351477762155847377046813443099821842467068358169592302235125317253743517031807668673791628688419665931075002403710739191828738905826429777078062102441554485651473948548361311144250744306673522132180283902198855498367956914907232045571049142975737064011057017976838670612075653792567187962792256208973156546864665727814186158826690487003549045409648047561550474552514947862358548241222484729316073722131830402101522286634415699860833758685075736703314313854320771053560529377993623725947817854917092999791797808896809312372042175019571039803094700839216207774593892836512841126363665871954326841850939310915742763693983240494394003130907684833234869171323008418994111160994020622740707228212212205569479805884452027690802237651872256718257835672891044580671165323248101760623219024148247988589123940736238794857052237405190642133670382689847249523864121982956729720709972488949749193168603557192074216450470738043613287809182789779732003641536949552213943224584020790198602172778641727873700012231269025798609791507509061676810260385956506846516770314252076687419191441571652488366558111682147586004467642347350545103117402956314452321501172087294561248385094025075734106372555114468595937625020620758293974638427204005263490406097361759269794126964010137008050607174521885114217416025833374322402777077775562486654054144921562835345138503076427135750943413214292168813371935214554860582239816751636453677565623925072128368185057399120986833591515905384109311364898387008084108377859412451582779102073464851569722277578141515005349587850402111346427317550621869090199138053848271798336661381986591147432662316533741896957775595441497949349932312101227762551923331797384553215312130627324886511543347609586061191929746803887177083568074263581712902297703401713628022883690121279098562681901346604210922572704850984103036981596782798591899915237204115523544447551311755256799855170283886784500450245555819515768078782741130982637388798610315547823240962614373032803957867233652556986141261618322238005996914955922111621751301027096340614743704393493842065072347603229404120043376447968828799534544012252264592836302886453029781568388417095938839392628692216936383716931847887591987157043108882921043281725050443499792389041129450510468308505968380221166739599569607051272712721424896259235303813695256427191105681469915036722807220597301257854379344589240602466792514180434354521955066896081313623318207424187384040785010371403115186387971586461223904288257021465116322673411914829503755920596878183576702694690991608175461185363100668522273489069888504379475577425424174292678955754211975808940635411948569655961227138851894347737820368089830994880416554387512384135508543533827455411200892365145618903172687560599487610241877698363960644824601438148204813123397196389845188612356741161307539527638084283599491881168385604749544512773910486166832968091477753465236679122441423699369068656155704836425873015989901743234968720643347303332523198417555029572457183214687750089120445788326665982936441089160086739317501931166070618836260748220297238517791375373308554143487895361300408692808591470152017747243644287230072962992794251693815220156311940537725890742927189666784875050130455752512463158840222535846187047411245639562581638282609434512116191572710530521059151786580358026555813205941397131128756194834810621172737681854348415714206223913677246033761689772808329292049798831065235010913294322105988843749365077813243607149203474689513007919960700424402346169948092233638884552857049553504716290854970816241713770961684126248142821804905253513212361740601784976260857417393005372076410116591627393370004226193049054641629964029327242541177996698109180205870852617974583185565858291410128762120036894652052020373613446286683868020088067155132118527208962884278377410086983234902392056146559284858274071360012156492708146707902728666004250033811277464017901068109368786259594475006285716140724458710512293426511760248319737987993426879155171563813165824437305788571199317338904623024173717074813397332729546079882597883396460383159182043162446941058597739886296765380893104147002070381923745799092458433827957290114724263485551876923300357805987856843418931873883083054128887322372527759859457455061049881489220834119401040827335463685177237057403806612345052656723096727595795344281429165461310184247695934919717190604289325825254566747100166281803601848144163892966259440634609343831218848320131505998670367073848342462473089731248080898152380217345911921245908187625689720691751228974257055427025024759200876890580015256501756173581660407124261631077521485083210134749008848126463885903745756486051875564831382651881986004465566836361859799029187170864010038879568783954747829897521433213171367948563212873951036575024294737269060421229725440671128974958936902310567212308242915968574570588380006283601557862061255125630561648333172219091730063639638012523314477647967546729761568530674381413106508967451729481703995065746245055828292213709706328497023942582582984182282265095176914264291718391989353727991310573989451015351314079793267367693569607092930727386360014898300045357399636700567611173333703810252453751739541475513688257964861730784992856199931596902075898451360672123741016145024820768416895565376521985661646582857401960070628866952411185487028340210828186382319730290668084272736333343034844589366916587793478789284724790444235900378026883939631277816566754987879228957192069710968155723773659535093559425204732253592256375852894607466379762200755407434241463053096568004571562112370265469524932907847835406706598874273889156598540270529459490025501684911113398016313154427139861303993669356953428940784345087867380780556662852843661405889942238210254699129537089520665022171779148848832466764958489993490251693575537697483597404859934666119240779179774776244556352271054774277950776556827737687936221180738068187934197990605373564285998047109857679550519543215372806870194916310553704375802157021580536190650906331983642356248451794411220315422012208074442820878955794462096451819754038293617326359473833331310236310003575690207504786241291170383048679588368416127974423233143060896480556836576725901788115680877353319555203053590311502097489471646212107170133659424240627403262555869573344309647934835506461047172848398658525953830856608429081553647746617766936748076491820405412664886876409223508240792794344150834626550284068338581364183593969531067439120753253134522246931145636194179491546918318102396969056823641918664974531066370552331081373944506769150500814794034138799292482978076167110569317340068051567344818109841409063427821951710650045298997591439662659912212195064169995390911039810446021920843265922515638611390069388917371880005916900661452683604271436763386445571392364302238903094488486167278461244810550213079723447409242008479278200883399444148547821394802913330292967411854514744241197573383973241680836550253122065987148281513500353981386420933033232168895400679751474054217394790565172838968375629080909719058126550519237567776889095251494460850931501294803389883247275160980823220033435788589794088707980696203842095539785031523903979664938496064791086817904896774667932387795994313989908468122069943290663962975910903437693325999689221183741406471657796473867791716649393321781408559992164732607342392767180053380174896313746945475895446630589051808164272058154122189392075462863121928303425023738111396777393523991110088037605887689720067562161074835598894584725180702577370583687259384724254498746456703899241662792091018597483495089172335721881666990782291498255993157869030235766548842523401344247762331722061660966438356822473191902636931842360925466279723532261065692861450064814682020087578500533367072108916219804647084099005249433292327238926810857333419051373119766791089668705573369867878550883987238077650936613119021492253499647800539213864139651665026394006577164914642952302243077866025537936304853057537738895786878396349409085507383634384473220953962474932230592885779706379746372088791821593272165058590164847638958512251158352513239394286823475848181452887877426641788653347037512032313874293497143802668352883371104680692942836527849778629064864371431005360976594875257190200119975221597005190901451571886701257775809200859276346186884923430072671660615050999952230880950429228069117969251426436180196443840885515084134884019481282398853241179217242698379175660489735225728958379188401170427717501019592767553586785618141460170896704412492331265873739987630935382163129273417239736292824593891570375130716717484321101614252938916286992461197473923396272982686865395443268101740917467631633025232698084285933606764039100222670950179218822110739854948728515304949878966001857308364519376382703160235228374383789767791336148140261076104501482285041164650113970235600179205372383307452230018708687772260273462798796185310947544932557267874232795549845550031627458193336938284847212234610717085542374271239698798580525988227456377564591605740534926414437201783094263029462394849525342318808866187697493436520767946503138196487785978042217091889264913143260128889769770444437786271256327125302248215729381411620491639372693177292074004557924447809936347794117379221554246986345432825395398003656395000123719968357113451882469380707332053769378242726199753424740458348169615435641498493471597382116208183008968551550343343608446124391200328193191812149759289328232250150021827224683054883062706769632564077198256447434738958922652414864344295488803809009384031283632837778051492042744964884689350692650113110144516702366158046824456904079838521401662732456439935604335852740887432328617091079281361962135051323019582090543511386619976471269319941151374083552782398734398771809731229412099251870386802128943610390463764624664553018402141850615724652867169525049008028110134322697657536544432329818359053066703816275237293497016037308051830126079309220195648472193040725275993368989300862884642108282215707423415436146575715086072675066122218240162373133089126329189980557802800504335015098972467130444014587574151397397807383557974787252399223480198740727860342849081175033090694939317340613562481444973956370728978522486321304372442943876858073881103467250068527975636238363453203233518877863993042743460035949718288894224833352885376669503400372544897764738417265869531692553496270375144926793515018433677885705383733901106592812849145817222861336096281266497597381900706320117403044343455008357198540779263658263715783824315511867917168055907031829663633693347735536592942905623514669450929878054826658369709617998879897134677710925761284507248783371593862155466616887996670355598241419646059786440150332813640499519362275426653862095087156471575072613767122408947462548782409480069926266036928261107438612795770403539865851544066372109757239699648010156355888962953092841102990309448199613008000978766488742105714823526184635791233511316593516353758493072722959615495710587228500949847658540535067526175442822258465746904325237393573806701099274328055535859063441821783472039749048125180523457452094621441038983408617051264958470969844653415521743799198930194029783094719353191299348801062583521957274734280242433061943037703466487051166677662079577611540330704513259478404435431426113886374169873820644239438040040291880316948686501104499359652662064479388871013849669632878688810888283005793892479245545948734755257918818339125281292546161129625516291755434135400327461494532609727288315817321058210302139678003155012976760524461558308185942325506957628130204136523582458159961153738042229843034381059659785690289823478814179336776274806015094566601361087820111642463692601175227045076300340410863587693968595674936633746367419254225109138928267085791792670262150467968949749621695230344717287522618917640640313184934771179567188074151629443210291461090820095443376342228730310171730936974464498206593205652363801675962930607706713805721957537472673262199996502579334813675845127355800284077727596615900979182068474935670662207790247637316882220790640893735206854508820796720735523156841509675460679953613684924715850651161301609544720521605938258474047000246067322152777002781552540885830214828852752053382401321636296930247448595117617817399994879339354895155038664693271824320847021140954652393039707313154692824127369691937986165160747544097718469772097432895920383933085364061561035188879007453544747348461216525495626951503568638472709023887560008395980671589371334039631135137443805722416673172545234563382742630065911457302010077873716033127653469684284616337139255232442462744032993349712121767177908733017559314190917463326660572141062981527480916506084441597958270972539100215534594536225309091962578511845112735847724163463844077863442878162476775938464387065602209786344532020516636052525285255188702131525127159860966724050027011592185345083778155389420341088261303265873377878508389944249000435571201855564926402554682090466612140040657290465917737892651534394256022572455460939353735993317175229160815336143193302162759366698910295656624647971089557705157642929893718846691228743907063874174084643284271762016597484553723133882638194966871622357924149072692723925503158663339626989055539199357456095296712547583090286593693512428065269322817511727020470238947680956560034082127927000943636343788079579241960469103876369954223184205825922457452100478551816747772766534823725546151662143606630963637926234372469617729568137805659283453081312839381705540719788596542699341595977569082948438772384608986914337331473669418040358689145570651117417335650341428066846173210532013041314247721886019458241376185317927414218582379115856823173255957505896923444190098756018562045153032780804332400378910865497759312718704381970911058654430441790216226178812138316060512204876989290803904376363879360362835540431112565514657109385452516074465125022020491139901276912294057531474364431338454643017259345812646667155656359144499940806644615849311994413038645223684814498468025879374023671524397163076148643650958820830053084848854112454580319939411016628158793220827108012864605432499455922418264797586564913266549454860787785492341998734249805828480116588680832442177973766359056464338914735303934905141966185111999197222904156172944581836285772372867722628278684594737131400314634877369697752406248322905751305806228435798846434733257181236821430884297933618743905966694090236938276459902089181586466227213944031509522114675435040231798097232930018046579107978747672418470202829055454375881513946749143426472687523518244286295179921325794278452094258179065297119075373696823547984806332019848872960143749112709537617763256046733206421427627428898784618975222676928925534071312061604560416985097392018225360407614765732409189262587958340642325696510901382872891251658053148397522074538037600399661033280878090002222690531462593599163310006094320189135304762758603927829054078037974841484581847421829582750107758936210432559198374086516287809135352690268072515993287122952236317108647446804858428808865809523526301663877959003665954703336339752228622938583120132506417669678588785363505809691761292698211768934689817876403067250785214379324868337370958988103787548540033068355583161877237066810876573543114649100007760629147535645650228504573855425297741434979907945030363790747971081799295661794951859448183070547662724998106009917332873358321155292104124206628544665059659261382663227597220163584953109793008004017330432294590585546266260582161556793912185651646738626276821334839815434106305490299647488132472539189309910702357998782159486106885851199076667853365889362774874243420586746288943799617922030258837065988361921845936327008381447520807415602197519229360403406160104372158534796006840582738066907758843057403365950437365962493900134590750625852677117052645396037732530144274546997084282936957927794049315668383924108374007679322929003993354016073139500997292226338145548654411524624756411309821285615313008327205359193000951217213091796373100009513845392414675249541776984056519819885612980141747888212512244166632620418103205608328505579347897743835812541507143331618101433711077040377314043371387373538880615329366230999576946927152239595228504321282539238728618210225017134088627954375427132708598123153360433453818735424647814208901784655246953084087303284175168306303096233837715691646151599314883162351605123392122466049715016876183750792758463042954411551015778780587564912748997707822191501724013079576217834452915847598925282964622976331258474415167855792568840633092988172626991343355120629478619529709124609849601774301158018008712106366068437743065244484183042377606057965973670496938549377445301153109642491551964144083467296062826858984484497841665357581478509188085272776011715335263081720141302204596373415472353254325659927866346170941772106109470816827286863972089597338823333514477794071203369791856686457996957227941513172430940295759738457314013151086184920100729512376865751143452376872370803564633195267264105105988114148998348257204225578638674674170952946118933436865552023577628391615346319647157309395755290953412550251727579113824854478325760877029389109765794102517963721854291695522946375986575936923687957031757507867510532905320507326673007523916121154354000013065135099516039358858535350720516060673535517297234840891178185370607517649451234250670974859636530883546183068515161137726250089534233510109223516192186131575942665026509567611241992477531006377878592501511849409060463678284805130747370549300689427667317441630264794873569355828348368274056767967490362315848581807222746526597853510991074127800306194023905197480408046355879480158384223623459378883458013290922077126322584497482805438079919768995601307505051546272947760355921322627544983488861305632224900822651041956056752461511640867639378626162907444332254463143624137340282332018184398151871100834551838700860802435172566814707356660795902745233318623848401795343891892380451369761406453467478407894129179935717357526473572278022017047359659514373685245344023190197791336025059554300945876656267759707888416873168196942378664972220625919579509467570123897406965099280954853268186624439251858645010583775984948011669276721081785216219214121749276791776841996589465568273890531877293371530929522597966907932095931114817415042762015053563086663748198270146952720849925184902549423261409030694072372603349062221584612738098056369963259517379265884987532962551321759150327886290534315591755342089612724212733373611070195770100687833094215104003619615179311855348959701736922605892725003813938596782688527995951213629646885148981686787622327661485695688801251970022282642487385769338021768826485376020472683495692363239253542711335903677865438904345966029083372508833153813806861761456944226023603902919680628149624676950850295277048726981529716171738788040324063927080518040490059611907783134618897042897416853163686619523027205684717228391421350256736463157520125221602916087091949429238744089498114352553917872086123004466665621957437059731303160932987524174679755109761843138722556465117840740895804816315397109826400030190078719336568765580902114131137785397408043916530838968154768330686063649917526720063182998942818547263794879989667790542457621129231930559009282944075210407776854038216754597224790098866655029128187151829812845621779335597079286861785440389377448884920541087280495409039205571331975363838620085438193726020881788643614701329713099791848511076372221691733930521545842316518868181779137997042316243263755160368954171239466763506348423714997283083053247113008547094988353272108405579622479082654357219911491491523598559289600004213083190849284379308525624900842197642912013232501782293345759921315069487392673762450907374008481277525390293698758380654237239482559097911116198044460063050787263033316586335709387520905879117694979105140254520210304498501235131001341993657285880691295584102178485738674790292247044424170035122347536277238433745160592351727900716991108866677421586057681030760347959755534805368211659036258580685707959217588868075673611331131652147538009104568781238291369856480029788752546011238648339922973661719534159141164308889031985835695837446005199560903001862789590214741991220429482823771182426114353088288490004735895842591996021307544345265320437285484731205904845725789481374815912258615866782830470942476864931798195381509550976372019134874583422415667356163369617885576205765238176525563282980591610862400807997479749796961924249269051594644778506540903611863838700658956127894156556170993540425477953936888787259332047497581183702076161819315183583397453723265291056284558012307519850224666168212313029483843928637132562573007861958925232118849548422931054576806478218030880445865344360788710565295281337752296631861702187981368076750415533759447286909343121595925507602739402621267167949828977339646120232402864958583056017429391461659916366230773135106631872803476640990509801816818447761893478692715931441821060710261551820723215976875054685525816259310371314830027861311738472426006713687579749816655361505672863806496588972889678547966962176985258631701685704660329653024734025198108691801097507087681162713863183018406668818006556646496797963250074196780896136243358209747817188651225820526372478640303032610745080720560224620700952100327514147882169633284845769612012287570654564170807508889817583084600183056138159728910245418473172342322076745782287651381379968636176662800175443747200230500219088008674942963275190305423564436139622471309956890405474652650782538749095755128832503932758225811449889578604447497322614546813451425704604733408657987070326862831477882517530570650616371871555862942508200125752511627357666393473077126786938624567335518614935871873605601034344002692803943507259523005555748732066704797185999225792076496321486798243859380098244574701136602487252727723097837496736324734967222708674381566209851781192228405850141608995675781370235862904832319806386980497957353702526337037991295665912873867995458073267648554686068366028335303882440282275787561760637869639029284618219483756569496503435568563511632239130223651532685096079900493609748807054555929440042643325961970694158751932579961407217557024376000200155474164379780282070776850662456371551192538394298483764506671450145210673009774808748983139387097045911939146619521316078519872321059786954068029491527039201260526337813259239857308255207748276057883583145027536438370273971913447529504916926160333586719113475370921072977189604728030065593171770032480659703881796452275913673783390554563346307698836972153555184330745175871547864420740867428322388138231265507834409273805142699267740354026491051224281342715563939599232591956880398240680829590377202518237869603245231635048728031597209506434844142888385441090683948258856973293598637590540910831032808124554878468174488898688226448429732973325447772921978504147813003300252233712727334398918181948251743160264109274666527323021124085486170124343692822170091319442153867900588474944097047995146015655762338915309160126483025481094025625959889703540087879541292173592814685755440613549279011768782328339874082206805194469127495731094756579007355059379650835143311781699694057510661255383919806097743339589554530778807902538994306240223748017809895403625592710329728903101990978851762249340374213534224272128876012411012890337715228128927445328370571941261073742975615657779364848686835719000363704109004943322877055364520659525230707122398579993684550061848339441190424546424532562281387412481689278687345371206041145514445023476415642703358032771667314274535237794087427055526767968850219199123313040015830891788042117806243825938719655027450156709378003434289876568423116369647100726562370492343800066535069045507333439363856625077465055509321121961898165130333326989755291355333055330960216230684831503448487736809883439561131220622500733910594273580219037945677300230218758343266587376545113321666511581317561256752537390537415488243383342820265304410051370420078435086943696486058028737018489351631846393313560367504678966526057970347283730283529857637771700705203772207918797095354212137520341301342511840450351898756051342102581295535069338506067317049749865511581695684057396371913127108495801324145724991942909447875422750548653383804249050203638549622549083447668271083048146745960631888292126229878703256363267383985613658647653826940983569985158460290655980701826776007391280895363983499038894163667013990977409493547673710595555718746350076677808984096924935516337376641196725012723128910828626264875671220176301712106650270310852042551842630315050763342599114975240511302160814825679876532344429882245720353845492685690732248516965205723889366169065191113923845964310955975532900955715618552805782316967752419436933722722032385213799835266532252528178219366285166571649310486598043750098763292250583253628664631906070228661089545338050491583335980956612897075943123635729161943804091958217278865567355320429886000846253635227215472657314927775280421224787356676338761789920194274485375506542903940183331632292121844734176960874742960472323438092194619589300445123314780752575959868493014582428798789143214681828674817963470208123705737528160340034718694326657600336838621166578022183145075734726279399717079678417400789539780342653709561339504262160753109599049094821099474541330332267053227305262025857937666512764400732350224406012237127622170081674189884219586551516950058838885286309248966858400509564993503991811933617360040288668657332948227200017968002635670468646086961936150649387040681349573336715740770463575843286991930740505676067915218113819654251096450307326029660566785822033830299709130586338757063560530317007204196762432225082054005667109407120924283688541470101111923348602787781741409473397000787492929097163392030420525442586404445084873164693506451861885229435587633170133771600783632722824527691270392133940316421050052115481044011249618751344329026468028214008844671790002460383616817752668751581249183559770433909019107936221758371121734627365575890964723083041585326666432269143053647369085958191636515069157189517822918909305010652459114596069074440706060817278623394630209116859322770592276138859250345308397586677634140264431403625980285370961187704747249671249065535862792786993495565337030652540001156624397015611595190668803987618429823333121052237313588811502119758571980147627560308047841585597984827609480923554038036349465734996177290685317875313039391194147339158234443497232689473276442195187292818552662991034107065378868333093779650651500048090658837320609913173973478974528122813545418508947916454993995282458647811527406186537565347098770850306407831423649867247161754198047842339148268034659613245592126362895062188541580655282636652981335248210699883187492190657191504815175883968407153208586878651964782250273327579302300087630089241542232717652382789681057805742453718609892675529833819500553101613788955125044563519935541008928883414268281718057988639805953119383122995645340105474907593863840984395695989361251802116940479546592754108656052510137119860642834663059250138452556784572003368506420779686432384600341070081978451217312686631423236065189628742794393188650150677590464382885948640332900139937598116835888733590408292698702893570757989501935945329896926802341365767578689986705038423313686551743439178735028950357618617988461067447256164003494574440432122770660547861887761076278834852996721435009598535440241130480714099394914004452107152881986955577045444511607808458844787591966228971576559281219007818892625169198688650742552859898509426941850006038529962198815894995542676188919171711811003590497087136266734442143838609411423035866378728276779953143046540512498589966288320488409787462890688813823932639991149371311131591904077583255192220121851995364780726145662830736015464915057555267300138052246893898440652643737192930624969671395006862056176408357505884268507073019798693782526675909162821839960768142400725708548624945761618182328833651755481740056695525023998316423833497410821298016366873713244839743582999382982568091733016145484114889710351637518255817987996098744052489135138343950798280404591944732347683727037754663576251459029388156541342887465108872512282289895266525372694999844840040858328427830300071854528404944595781796659322795530297316152078075105555863093117665848670151553750165461102268585104945154411148459719512719452030109439605074882511675059018197540239359406642938295387527719403533981985572056949491969993544504266169709273358894719047833507487396972302808897812868923030082853333061135627884423882685461362438265751468414522654560384592621908610789558734400950302836471834418152616405111069404487609881664241319340877023311582522269065822326345199781316046959735453078645588685137534833344859074228187331567398814137465675072970440732756802386219712153384473560319888827101254942361296470820591813022336831957639654096392919527450334774355510278428231468203475195019592407116750121207524156073636212788044355306218335447240030487597915735219415614011846200860723078088222467268019879461241194195520678217104014058029705536473145807443046711218426129685517793222608069916669811189807057684483832651917659992552454838173469868363661363631366819690513075033218797977679125505052347503969973717659803653620404717372588861172873566976878609066365956939279333137658734816941536238157715126648466339239586592563530684894590441243498299661552870322644810398281014408861331825308077301606208400242802188654688530246831995216425294933846522080521653089034888291206614669155573520478495634968066627206715663287742376639629775883170740250547154597528224867750437693314692502995496324169413023528395736682817909468998810310231908892458048026111457961568904148413238131062588982651001689707995976593792055039848159328813822779936431997555086117442161887736768017229616727228243901226648346742797207646687802746494028684925400317767516796020110105009290802162975668141863119110600824405538859751400700464183639275460706324463076454637230177535739863218683738891268300001915756687204060462752499311478476353829330948662314075871627050790122430609051405605497107946287407454518673397686266135957040056561167186323260148019131579374368145111311793082273612559021259521937389214810439467368179577735437579341559395142445693625076949853826806676931864864507821889570051310573345232399465769308263414421678384945954535155922706508791764472542479589388961286101998565637313245015697717442357150343220330119769645706956913603607219858251852570634523529739912281124835455661409615082683394314717388574532564320831870156467729016420057499222816977546393911175473510244490743777905885062747941679732617983027175104737723958249584720054408224483852688982859499626520899271584419381296501936566796964979582410934724217877693222875133790237240339703573052894389828498657125593114755256272715234379901089918389896780030926929734233068405327943655838011287704722329189608122543994625971684659311594012455742775759467030487161528576972482911158993625712656557993372359919957594240316136119044926130456442927805234306006378331865463162190637928393274283796478128385487740620877776908935418387081093545248562170639136066583560383499406826095317946616261350261025988750336937220157994974103983106475000701052347466994135606436231710299993591380958766181447181246292615219126135557435991141349303393958181754149960356963607799161529444926608161981602610992773385949151161679502071185076289545008724077027011225451955576103331724140606853969185707146711429107055082717091689539485295050831050672372936712381355286426823782493174459824019803152974195921002207379558250791015750046015673955918561017103262730381829096540710381800729549498945955315500139586312710288189966061507664975747957957280935055151699676448652970652751774829795014021889120696069792448344058240741109358937462704679647425342775997898663871749231439886454680378132615031962755050104633530899100121174383946908950674875505977000328193548264668612701261170545841025399786121020123433717942725129409660964979174389037965131566463782606265143977604531060060201579232690019158414412240047531202618072434829691536009620627882494052636304097489917368033308565526612270030550252498968521775198652660464428025235386560211690685658052030211600223530854090686558123131812493814989318520480093325449713521297107107932940679846024906417270775823491339241697327015412454473156806078476047133675765772536749056276854196099402270130635284313383300643092139518371146919792301418860465232800578748033159889784627782848891282963320453209767479641669387506771698046949111811700151427318186064572888579321580873734452220300224196146196020762115099737092239685604406095327449507485667354839947611383602527853508614618949487239903586735054023291198503836254278259901736426997628623409941429667848413528097668864839102287992608918998261752174918317985274679462711441495371658801977859224664068313426892648552061891930760045416791275376781216542763907661295453365429691986846770472338516300088805290930544629136705522141426248636509341328044703915325828855863093355525976130745882378066062377010207471096360494879482724294467891641893160915595895864651024963180375098080859167786822081472687348099874340572217194961975993969500102018630309996992125220468835946117078626111776492647290493437749914678498263543349841653500520754349396611321760506320819147373865265032009053380488947575673328997365275785473689779916798405620598250991326836993603520856488106328029767302485080805422480238387580536759605294180907413684626294021198343688388432081958356125283798941006633685682006129135551704089898426938923731711091828408042238487025605536068471060585431715959314955518529497657834343498674567331431912386613486563136805336515784830977322768907788624616897433072732491963323340020922013913415033357556797793722643081205293065360776888689409443428056814414753988617815259140510152906146462215851998124551178445320606845283421720738394095650688363115682913813105254547137833754663534677733152047113119371739726117681156071588871130442431755941566526704958092721956170330798724458075690695453945687897138594864194722031956388387241300004934036818684738883725403107531016710975956872461530721677285601037937184229104108680438428730578588510978551079384587739382992896258379350098720159522995410842680856584819775801644306785792096531991441417978540680249738671440092354347941214309168176924332370792881772615563731167143542423867834795045034817853098249192644962331679707648689070405446177269118165477760889267529224674642098157095450092509646644351430594203970483231568734202250992296613317031845355022671010973320758155853368289171530883528901242084283690144154639197579528565526212997655198093717919074647401489386045038985942051485087019375120559988789425639546097227786905242886891212698455346180635152254440292667976542092160981738875304529410477854112234541996695052067400673722239928750985515201027845454069755073509788699785036288413835983508474897543132471259512365844861688687600141918974645433516925077319163036746186916565243803032527895117763104386869874027836897496552667083309167908742790767754693253179649604498050412083128435039471789322010845700930769007250143349871151564589495590621221526106246522717752879048393067465410166772935971520884104631997168184485259702656105331450889489458339621978413271929236878241241285197775718095312831505053569211177052064645815588914055245823901856831165033963018630326139564880510940351771174891704286853442081656770958315011800188504798072504169739822167367070683737447867153069834691339358509448639689275799455672826581507191068088093450613674765446595891802811725568936226445251939490539022980405204555442240765716509120067144355723597517247326279825573254762211081804004795890441159224992060504667335615447052942159036167714818171779794352778854179701338896600418650787189970545110900949043255084431447722734151614640465876430865912117598408332411564175069477305928352367830215778229894655830108701406797674953928190533034646337489142515016162724846701939985158975813525886354926990505369070023376437666076930848199085180702373974602064630883518832216218261277228537905225640896516709085332620447432477303694232779733731002742107580432922578088570033819400573217317765334241312088466306919096955384656294254832283323498023087195711065907649060123125098251111583173541618954062723317657992055748779504248432021542109384139250741863505206020484448093307884377223861796137616103658969820476394883496460886746888574328318442867998013908618746995167564879562210089768002825413115806159309106124563311954874295707312855349077469219489538044997525474598375873621383910490330332746807568335822044502972351239640674133516927405927253717915675928434127429265249893216312775421532928480638773825516427609080999833427977736920750443546676840422543649095485251248715109723619452533514202431816719620397486444465886299474446972572434923790409930755927310679005737322652134889556322218396742319257866192266893947663995303917973440603482443993302069753940074005125742730641588054596445383572727478744466577940275547739045148354651858197210568263612717816067922209047443598728853255843917413874889478569371477556168620597954582388023416791723432680724753099019601193479163506553985112790859149286165542927442647214262732930158331440943581854992800043589774995454838333445881999118782189610706696676987081358894543797443602138606500085484546967161649814940591326885927824727747963151852201890268112295176678914634299785367831813798753192689998785512605882238945083711522311677963628592850257581856521352611503340812225188142676985141769138071465048973660272097946543674320293533231732593095327102642262919269400528312023796663012468580250927346050769371586075845977604353195827076857783030750319000996716193187507059068945237765813801968291000353407579334320667598169168460781979339452989835538969067397284145350906344852024713861208576180995999696329622285432248317210364323419820139632796661946752635389039808676890063701514327266644106099647569683646776746987099362034578929539937360797185733320628435387868348406362347515939409684058448570135836352087286317866661824723812606360127576761000262991565245054244803565731366433682204323950796548341454774899812376996932171473577610401568133318181110649122587591757614906049555598672925717198311518266194172618034201126381378555205366820774960612418607448926491040794742339771728060651697756681627662677198915296837351191643774560990023887715241580633751010617605766371236694898538506585100600821941531675162307058150890179822567956496818356124940195399845415627508851490352648444145120880524860654472291943486329677021270381628517781677576989925862346753590859393335356558699701523759745534933357522084738502778148745403877836353269725071847353725808793984635377131455359888182954071442508891608406306066372454334440034338848028166292324302707528778240126411605038017839214008127677525353073146547068321989176689414733942804575731606869180836628518677471100386258349198184097185596279475574747694022694956623919821680580989776665311096020829702187254752739277190349494255532410158303024519664277460853941905257523540980536989332446588322850328862258964697888369846594739934154243809919459477475897271266610229525535747659036373151637693215725415652209104662146350813764571105702551508233399072738678831936297397300616310043602365607329008467949542800035854732227921461099211875889241903606402783018122271781740934283607470446225896982078484290046746934055087036121346345146811033828128237980810443560020362318350640873306406343539870281099283640553658384041087248435583122981492616910691070234105669197516180068261904369332229618077403774087890559913559529149898712132083963341024776402966645306973974178385921489647820845461918452777960156916618709796986913445086744126797041577131815661135540479842885617677364074157208830204695361548040483687291399746167131508108431832348909452804039741843419597906832433408012591909819235046870251753013647014914966513566137853069625905776260913816930428571243296304380444219471169524706150880025571777997884134818826920762760522020174605207758097332813197657293521703774297560849945619001403433867436618487457815659485353014329470556663789880056373275283774461999825096326246363349712542542523757272132594314833553620660164302867350003951992981378815239320681293400063922600545408718508397358976819199954717388399269696132945370472078860131417365719087992409827329274755120578828478789681466377922462121908726603804102120918626743293126474797582775389493917829784405311610178663477399713309127493830261593155393835274853973719676439372423267271992897061361459685578931018738220627592746837714977358382963028496211563270096860518001008658329947620592250393438230147775225063044886061742605336522983163526222116254236360749318574314633277825448515850736049122923891924384405517945036732302105278494564767479439062513462772821357786166043152513804508479245579685434577309148374622447552336849923626746859158450317719240808891056063418124533119518647596692807130384971772162925558444639479764651108377405990901122936840380357275032194764263501551155833135423876451704162900794432942483946368790188974318214196186944318632367368932056088484781499673856183108469799799183115490125824304366029179697018796274337575909294675924441628055099106384211075182348618801767117533483700100455782008817291963629928154644359125297269724407297065021475714770610646396936032591698980501007895831143245406884260993956889000156563690209005456567326814410149964568908179309326378718866018289048612528010890299305287999662317133558452221186519323187689013717927822020548147755463528541317523876773033872064134056411659917894729143347025654573921770019346498194554201313907298782124460893815204266579096539204196514426941016174957440929626465108629443412271107760354208477420570068274861267201931490376798474869847039307235466247534931191732027464038672070628437155634803246911012344880919763196722693366989062834068670717808151423600043843413831741910122531385554094292644104291198588685975514230056896746248109111368421417549951970958047174575270481601571686688490874535945538291612930129780990249396516890131556984002024725671279504208742165637156395008193929875393805270878671170547264154069210365524645103234195206159584264961404727880762425908973096635282485403171493614643870951036678350392658336721341204908967090046731787383084579762671234369317258865248526680131616403290269450132501871475474072566687540923671678044590417919855375848021355675280184207454358919341383723876511376603252353283610505466051215215210965681858479046487221776825505656170435132126130255669810625333456114429514339653456524782714777405300510622699199727078393575826916525069543999183406625305352408927237633546356616785895343408573442566674071571297933922463014186247446681164607743418246223606549389267022179783383697244331817859260639457351638029916520712645897653153801996425136219611683626922097153229707300466843057907058448848782924500228799351957597294320695480523324770757138567211323082622912994053671404346581546525803584564809006612892373840651944265667951283845595511364485314816627270868998538002815540898915111622411387551691063116190612124239321744641915595562923105345368952488683059767768768618460601503084551346917064570633129854628420068066702595843252536942961065958558108595395200054642057818402480039503070201736190304367508387488485171179065564425482588820349708197739458138606518337009165793010638216490589580839072652038210907140202556662166592229048490912769255248631912383000348797918744687283129956824582451993811030529289485183009779237214742975723485639690498694901754099470319045378868023093287547117132955818442163661503757793729087858468345236592755385152248360269988508971391527684006567428840869974428208299885951996070531271175765867247415908969498506604991213835634088485328873597926145986776868215645397658953835041015434718315001615092613790313377414420022263611659326757499797213400723529378369204386888530377598467574126694390023175905709912247965107836818142052345089885936385549594137814113970101999928825939993291800762976320427199677357030046161394699700432612743886795867811210101903160502062597928946524299402547697711472189242132861427502177618221419829879121195659247015312545445863049997756659623056790692146128986616233409570019125727454397845537978261742980843787606062181537498979527360600848401792524981839807461387379582362920583052119237138319909218490936302562459032149251840933394765801869186243402912791055706224287636592400674783580854837534223586754283230060502972780279048760530192244737994359279955447616692373790286612497455952331426835047411449690919985541802924344231325107657923838800500792165255933746850696078255380020883552633796085231550889402412885275071386599665916924474833995567205391816762864380369069078434092519064565031814550871746114312402498011008732894716151418063122653589150937497862615375461209841680195000883301977041490763789336017106876609540335670978269472100779564310163490181591177705195398674713839637413625912538434963239262273153511605132788541606436898965140395341608871853468778275228822515615729429604481514397709147534797211916627041822812139826967393081099958586285950745252275424036907809158037723649498060250699530959604475758027738115293914205812154008198143752190384840779294316024739246119666481110018090565223663696516932252097059716507150653961209502731614846929322400790490607245221987101015906539576493897114826549785536984093401090203093391531983964117587906304255734712664978015759283082629079396998325371209781356783108271095764362549848723067793461096639098851502599758575417286945297481887878453549720802612879313608280922570976712655832189732178144953913837264362182885625642866934462858019957650003553002517205342943617346875963686036091795990344510980056403216158511687333365064443233899981573362964165994823774477700838222206810703537653834810345946117678088925182671578100101035483858340974602710204895505544705045169839859080130713897104658676304982618119495500351095170610701698742775352442069630522386536941077596058733815753630708865036428352464557588948117612982566715654806663724191305178541262840788680626387807603445452819018238380067154409891902818770582500653647437380595422813235031675481955982675541905344760474810120522122776851370879724695699005889287972442491419050459185636809349661175734507717209567014425843218894134755203500922376509724924221571657815189140942202853479934953077842749032437112770334100220967988358328264762708731554564391072936615661235995381189056355653194858530678468362482369117460448443122447861273511385279695543813334560132665440256271469079443974122386152183036715557582733855218067449641610601428584473847566063823524628538656740963819848529430821139958020236512818666809998470058625876533455201562248794676405417011305996876489713290780340851798552244383334721746859093455661849854735343428754202258466056045748111821072787165740086474266657519217350116163920816926766544397203475198078047660988985928230551638636816066971698698390528010745553517027503145883826518961785064011908416695479826640685758450840566432749665646003331499557736675867476710381052423864990812476622795103620996618926279033230980225839918833196121346598219870357179467086714912947858577205061976186968619855964692135873021010549801720589200536448382887776375301948354964910576071424533258664699720803613309863679216504940668442716135163271820490543415692507948241018740676874356685567856221383613065604178160229234979177308279962920284555013777903396689937054445631160115851831870241761352304352294903233443318583045134481420397262764136862991647918695933990365052070432378586910578620614881346683602638573297234635086762453364804167052395256739657533291195102292995402724070864588119527215057131237879678613873594576303276254484516547861927762002903147647748117890811618795025285539989676599540380093581844316068458444015368985085927793266078515603290237388381264482836438634920270025212672098647660112519254649775182728055645141398907037339111982599747368576901590295421319965827766949527173609982659122178940777810194162060542637934549209224422754378489524328919194670001285812614296321077929735511269749664508925257487050996457322192584885675137955622972313859539796097128169758592880587755223584543048722537929746086866503261327598680762131829374373324194381081510325174083699355477916801244611188557284616026709631333051890006917211829002315756796080883902510219073478834689128066519316947861641423833443361556771055189393771908852925074759205406599535980683143755753844975746387503142648408248682272012441047081608437806633490306395418149717608550611763289791573519377136609271611665871878286712279456651973497120725826955724479079066586235810032996470870840204323852654973847775302482319603821046140832879832724011392907725404591965978087943551621741377337533117468335787027225245148514086516518567856520786132602006017871011067878256954807285180140858663971359888716007465994200838772476442209896677039359493927354555840995310810449052852957286841860337257056798639861889391041774593907466692508327677186260647948557377269069295310258433745841159642829066963167131127487885913697547158231139486945668047725125000483291510040108466143549528074261879772930361621579116478021187468204944787832472342391093862312448938621349252996421136248455572944713020091438939905080759453249652217221998971676749305034995084550116969021072575759235096206996307388798911413670455397784976718365796499419112258764840806697852489462907005906963852229450532962310275452588950829251671524283054728738184150256714003705683474796394375135242060974875646610771211655867407428040798238865506886313771513187772475841080623565495571066941342856843726983484083292922203920840782922267124163378541655969157285700399218062340016365947313940235463483756574547914174980729210602160080354715847995277002701502928919752532903130557099878712617012709753068392034210360137360806882031104143702160439271941181433983591141764417469929479807793000811061840955230078723334103088239004778598480370812613542357686967405536240688101960599117857862622243405082466964083117047549077595849316097800622980778584338064407018047690620191164657899173738138411527038778299760074788712588460505168121782852520701599892339235901598049334080295677910159969662478366851010743201044876798004937495096413939384355937812046536654870795422337532028509126872381284956438983506215390766262088674713155337030522451608866653579390018088968451439294797725339272813266537456158976469157019211006425170708732425732834209461446111266997063197436233631118998552965293363681130524512076970013278781081412200087905949865819406307025125899817967965314099758584081101732808398375274011102839284659035750525951116844028064037871727940877307460385698882876317821840732204697303110341006297457066065984238300432270094511430475687409714235429856015910296611660604285088235531856453009570295700275452506115992622135223800264997195389678216958625944750154389539359014678034273477205179371715255714541118725979381763061023974793926850895078402301511530655999757389176104202030350293638484260429551941082797370568441567066175672218679042665134815585586301229382255146482796075870657517233352356910111575999889148943205568810937427421487950889276412694322178456623083018701579485273053144682365473582506236454617362634718832265287746735228242016092873062511265383091920063871142946784816365408318442333462207499382868295511999912135295101145736648436067272972132871334868389494791075804887916730950988365196670162493118923602077017068945044330765608703368823554131752749220830043188299382710956520500990541003351711796026266234735637606352894237628642444674841436653705962600460488255158554276443550626394428278660125705067167510118195730457786072752272461346684784076371383950920759269948495496751608484004071054297619606026316329611923720139460030112421162969416717188213109271462571065862914297100599426470363650093135747703773492736041059839199596897491322207024840498830431175620754502455775484501987047022942621884306593216931375459459596270239539283869122519234454258430730267402511663927618801235627461431566710207584805909090651973567606004869695493187496993925232031168037668064071361615398394816795177183098691549545973939729085368235818458952074947870416166191163512061733332730369142606152419903735575093203801868651080263066167322660415161134941362656149994925074427035709921496373508303284730650785519812422573685256362555455194858411929259909152458305872052420680717209079754493445648845479843441948114475115747557568208135771527691360855637147143351033712418114146116096294292516272517136330173959229015176487364061336570104849620169661208590752149789332404626116659671920401439701028331237603455299431577391209773045097007082043919323623139923003680587357423941943555354846012976566285101604317173845321234539789348153579497124020264629268612131609037000061067030670688687932933582476665576074020834788880640024077680457394843402188419741000230030451300111709689383251364262355095486945397019820296783704075870321175171874165951672467233692161488478742094279543189417052112289839646379522139082993029158620579544361874538689374383717187483905012260524548490037063289303616029436711592641979119050098076483967187112061678280464937318432331570758523343540647389097632645145970026267553152187960378454079598947350064425541221134900242047458319175265153081843857933750676963024147644969146755329715517812824066017974422895753714723503443049456825757178527374179278197008489804798106746265012207911856632839388702112929923293466272125070209689112701003433097640247497378652009312574070160296258376086361984993199859765996199264108382854353600559371142657048363519173890380327531064508090884124703001420777411506054017550424966941450458486035025528329494205104552238894230344443098887071790372841768119274621204770853700682420752548135728750685748575199202051168047369501486691599033296742817463408153571289576985632979040288076801154415180217086990922403051890801656851960086790023363859286335108960062581644284034281386998259932788421075186628880394775051659409989052655684703453339643876910109834980180115356251127537886346096002919112670464281259707469968916050974187770201556132107899004545434145300345841281747086845489117590307143950312799491232815840078358864168691441754332117196273407019122168562659152100911972514371544897659571083160995128416410549126481935640775065902180147210853371147657818328471152322379579100327147829459193703953580885688011278590253250718713362488110326150512770951459671896031308261104407343007524725312817756529259802748227163566002366002914139667750739747932683806114286720881206005250810898684106556665394402673152048728582771289261042971335713986359580327028513063202999812195422082748993857985843629861597416655871117955308400099594598238346622576391005063250736889603951927508864184833421034528027981920400700422433840585295395856707329409214201068540463910914409788838253536911324103155302114972475891750902199030024335469595396466053346351499193723304377549601368465656220195766663588279770720293642983138232786362415260295779617024802728522661505481380573319208219615541959113535348066149292842692952296232954527729034929076560996429714473853796869407264935596728454806244585877543614424620879177094312473306063869464135029687537751241118910967080563150644485570499833158170190497835303509931248326422248928407726840727972927730098534243788794528070079267901482945551029758922503590533641793540517352486408058038628436356961469412046089523940649148496033457363668779750792758832357871136892297920941048942670142848580605707942042803512059037645302950004984044187211189306568524686695966439579441800684884446711343190387388163519092638524744477978953620093262665598605471482902493901373781221261005279002543617885383871858722107105086709963498430534850194361610582872731620933474695929349825699701565308342480535919780794881706615934095132372388569506186204065932703733486457474487301466662795331258032516793480383491513763329735169318566501222628189243655640191120379795967962874484593113730328196000935702054141465588872198128312540887157932642800793296363694420602273933723490189646152503841618530337547022059245819202300474811681100763281390254008365558005122805821615570959365448266574520743630927042509622462058520527278314353501072601073713670171063413905670398108236533002196755869068068762626349233787031088175093346019212643614533214062655639663059121300283066984214809695890528655002003266771267322605611722147409571151904358714538880468854832695661922047782854693303335513627102056768371558452393792966000346163512570116109031277765931247221842414678355466246956570779236556243114609549089367662706871849589191773590207304278575944405512638812142468148337165371659284997941733371457620728736153739939835091473792308043448983818989157587468570828964457287326053556629677654500473733220291787990148523994835860032944234703897394364576225241669809063032174352439373172140376098847993462884938322377188422000346009789146249280374271613434680054415711524656924896020489596310967948174311017838446969424729784173736729602907836208654365587930633503127024309180797714821824921204235903311290698787604628525308790234600685485713349118691185286950750039768544815700506554269501061013039354796397950005330155330762294377950769786636863906482095246884117967622707858965497533119363662459569860092986529351809209453143982777841089978148016404847158194859832175151381184075408179332509673572923296647946052963798124342290326923293531363562214784396279285554007689695743052292969820125950038217250931827414715137985803447411425919112202413057180637578537779708791506651462269556326915700151898063238462546971719868982231885978896492534261857393568194297850553077843142251008711773479453589013538068482743535898103287080825014659000962917117735499270553927654845432237670647465982490595620526932418884052028774665264203850299374420858445397825968325423317804252387079560187208488836000267680824166565319960375014758365781512650067576913591840182743982477244774524497522713958620886389763988353383637894446316695700004587463490224475194283498051731037812183158259627252323858992696208572006541245939259495774334421888777262684876918065554365318415852511616054534450670247519010731253535370908208772480724135191608289634471076161793426448248476248500361546064949451188940884864300469297049909853722190659956419319558890771353396636888860587701467568938537252015225278748132283163294564824020988228931295354317545198304655190020250689379929897513583200871614092140794903762307812445863226238185802297545026200008981931913963829676998617161995407404714142585394040404112493202538205673010477219314137813241269127168031558017128134347313523718886716372913673202752905492731636011554404772662619477034150566952333021380740754195328524380008444112327554470458248492501658464343203842341693795171017209933419359098661198442369999996818539444545636631918928238539413708658412953900901990317412003023913545147724858250928594610431079581061386077380107907666897806766851989366972009357846396294723182374133908402058944989322007191181661860269281110206803464230644762054138697025774308812430253344553157739973337879942893082781359848209548152394089764773079746625665752507060536149169551028775097461456932969446706321983199795832405157939372836218612286240049091349793444187306080747477483247052728984398932281041155747181297521142454288662531007443999687090981064540192076403425815653765356278070869900815254641776657275028168023400181439862527471155575459571947346765238443299379565268161212722801089860510960023612217156308332651817830404506219855323494059028459294142042287292432056401665880489483774183388542392349571076354316884439761449466394697782202760737792360016355567675211771755893960467815067838151971233352002999427638552716532983558570134292772107042901130863321851378107902792641568618140182624583325183912414092971884718405076669651788728301971332346300830572243434783161273525015781829158813348777308950624835506272531091578030047638728548695673301577444322578356399310811617843747510093906576145487973143109833481055956971852062540246287477638315704646040136367548601687960860468948708307726349357389862356355822661804093767918077904550889046890326132029997767510002418807839481125831773191732584162953237432684276518361614708439017265720538682670799122139209758735244706699512689824246096918893837148196850587926199513327903956367588543914353510341774915767705639500942867212040320686391513430969119622068736319547543944756566867860138298427677610693136510374224899825508980405279268312828227936755710870516356122732039753709326156662812522429119121790702654765785025566642068261064840142823032526346648260286877524507259348110209939122221840405562718564828744968034701933054846178044684192049939127024240383626325240884131119676803563753782865067437565797726591053476075640419534269298481013256942749215703641235288807843525856018450783446819575675832242368212939169357107013888294573529659348423922176392396426313348287428910372033209296071079503822692914916047636306632343865023417026791646776764696579158342307745572840715718223519253224185820450923327018379139010248944747569903607101901643486844233842059623325388204212513765156948666296696700712485743866879271336654140971772158995520351845567142016783464244937784986097166807112746355858895841892919330766927956360821587352085782715721656564567878661876057902649263729868136150182322588970682845964237783528394526024588020228765373426919081980870550729068642173496123546977936879038384278366619039478387586285527514149642971356624432659317890526324552442958490925300149518241017952000731393307427035022859164932700430134867222206296945638381395105540252847548282346337332919910756904234559198603256015675288024393265740085196215548700005278157064045315067788679982854482051272290376671228082792143642592486680284211978617935771380183181861933859701318046470584298421927897657433282099077804873784930966008253312773221015254580752438408461995435149680038899121477464139007080074142474156781094330243863413109355178897488706748461503755735041551240665774618638878748202516286456365521701864758606198054196430224948896169106224904567352426985041609348912706091802422668587212717663725543765568362861371511245837318492797419616984242597260906537680893599245961625365257625345980861646353046766175335667965932487852384184003373970551782447581305321754834777294529461883057149424956182788603534906514936354297546854391224066226753579974133831041689495976713923645047267182353872788651401352180905862649204458067601769697729081980098641102900085362818406093552505763222768875264672127947667120498661217396474334129441529095157242704930090537050632964716851683517043935329745194394461742521835259924317795692675707084295605580565384873938092875620716576676310765350161375032697470512277232660777723579095081046663241297818105969390042187270644972771702325062236396539012006669201018462127423500383442037842232848531918700421128604088457715241046286742132486376887596968592438429189864916629164964314586442583462378868181615482404520473051677761065723848420914120044480515404400547966770241956511380381701474585130157914179882068388498504244838313750766339482965131986467279343163272856735475800616983655596813882758529000735377054389973722688620219084038220839920469518656835844574895918221284739167243391821470817969591354763469705313507285880716043568300939924823271505920759339853750855648273009942870376658362237299722941952864083398608307707072534116000034409841819565445971189233802776395271836113051421287928254205046515941307350184007985146113096890586140346686281733814189121470306671174691428873298755302746230185407896471744499368455722177483506188368886807920564881520481032471139366081430769348343439119229964762832563476539546581408917596874611068078777791198341800413368347335647214770543958939372569018265762306784333472269331174708373092061182431677735944089883972893978645057910017198685699809768232827157416744844767324838902872761742261398824436251428930090957629975430632967052567014526539456140868872869765475381267780709001799694161690503724659384666708847672824558061359256651277585045501490495397008886744349300441497256640371725649652362000043928213883976614900591984461452117302633509632414078269315172828809967639528244908954153957676596576493919234550586030531778880252864832731076461639307861943151185339034312465613126325057809671407979164492581725701142624179915776347909306245281312164621476392555303648516432787206412914152990281334199267267597193505572163691042033048995339592967705848563787253870701100351738629350591695006068932327000915195211147127015699889176141645937520962303608665872819697314677618615034774144679825642556757436952258360552333297972409619332260341957645135239285654767206784413286466710466282284629910894622448937283304630780007582889681618429736817430908003144935990526825746736951439199289662685727801060136461800909820556158003916597356447920128620161705790819041854757917604586933752517803256214033268943755874347675346636741559218061344077724853955440382027500732958033457000185292682776146308118613713164122534751490406492812210444634784149504604530989496081603794262653843445101855669716048445489819220943709385643149784060361711287703481389467441826526628266968276350311361182802140025203311635585996881867565568107268556824620568884074668450867291308521974005210001821688981569012242101929440422041430864235224386385387644695337977140221079032293187814684148251304846216589386095880861121694730474018668053836808613985199303353683962036163622778244043030627231351224279712270530161329098980690815920129833349598719797567908194907393540390654564007193861534640523800336894530322858459372466488390609229227611083586293812405179082124484497134828190996505186595409090197709907644841576728946486409654498899314899900469925853632859643847484894662739961048494702430972991949862195255094596920716149144380950997900481863674574076624579689667544311025323273729667536483140761460656299863456461828891688774284935181104220870406181125944086570469153953600652276381059058076602892033951942220972112991241011409576514733542349185519166170223216357076283896258172405352067413459808403965011725972538755419969515251863050487568750595148139530436697160404274157317751175140003351456843700315922274616238070162282424511187489876067281424045786908379792230345027878411887454843966689658869852578145403136283711749773694105391396803056822777822156415822345319866958671022260976312999794519860506937576338451548873863630779861254900436508448971793809413060084395176798415083763111983494349451815678660583566218865580944664903498300394292503787417786659090850253756182030848018851282300382850688194831884891628558923166621144838476730842543923484060834234416059647874312593183224960341887010696036637944578603013902112051296486288192614566690294203029938305004177090224424373951773223473405758242089421935589445319911618823938488942117722757459503925213768786228302976571643126812842972186127559039003666727646923609408500837585048821041148556468128810276439117060391522620173520756002224275692452509093559053435478416615062762137768642586234441615819522592731475205008251758715319328711940285855196526152298147196945335019363980543518137155997449128760853321399405224426436527573726610733340182555214855439761458856848808971489823551024977076763259886722689600348942868899445036258235703098721985489492622381304222078298548158214681274380869316248925755654623002347508898376904994455311814608157955968595246978353381816196408870925826079227069801970002591199296707339745026486581006161970390246495389687770319647575182611326355757185032087692919251219446842648859391097287297515799064103445310496025561158580430606653380476335576720887974493971830885978063363553119414967670207531698891449390203917591617615970088556953630268561916890716028415234786428256935712307663224543283089758283664140735252327685164151487449269323687560390721019165972288343034879947446333071015270187388025269671946127719728632914008642610293679052670602115294056525189148650266805927018602947864186078181679666388268311032828689951915783166268891978454341193398154196422799870191147226958676843233595704232265972343312821012650913201187724827936777448322987982846429519675097538463735121019375842404152003325613608220968488767022140673676408475322331853980460938374228532568351649108880563336219144602904324847262364667737719584432143540729758518120367788725610816592763226670417599177041923703666147343521400490120896439916019722345294038049633465612691640903086444706654484492692500094865274036677111337865958361700228499770017631470521074474338044733289086583665021234919940889850271092116892083948709023115463041572151073756986121401593606222574706283514752358857585255446979745774708289501471135172371446581295763788851042998769417079858052753474351684094184422148076109999263768978027682820312585819724845412960920734452910525109124045412987842351338079961774484915119433305552971632408591146472277066099873280042803653126506421846418559865473382342819293452750391525175580470548445819568791112193603292985514889349675553382049089912257097505949669140322486348693508406953926206918283554305159218290842677717710834965361641347558548094528626106986782958392684236573882509502590964326231989408282187350718033288698266646956006484575952832233231179648566931824955112428066429411268024711107140412975694624289956911750028786956756779073648940353066527667544573996319937319453556710170023583188443481669939607909258166738813356403181467071268345065475357209347434034187650082234066635153814290616891178890098709917850480351201341764231705436474031269034054102523147604168759047509838236939370135139092568583558339161970836036669664346176476519732727140223483733456420296208889103168681998409528377876777866922122412987472699881663715815530654467953816180414876167543183790902842882004699631126147258058322816301026867828932437162701811078941353040482724318516006786278697096619301127576767780489689575386355070421192697974473030220158901762659753811177685974958014061038655029970882682887130723312307580786979940290033032279390681152617724409637691068894411060169977685994891957431973857262537190953205957208799879847800682136907328892193752792985378168270262103321360478392212152795658341925344661867957078437672725270999250997239367069960777764320470623738939877330119715465160576872618038361325178872924759100373287072868377965804337418812120983126683262001005172773955558173904280305987195399443773455907360627649589976826734176227763810504295967929839008670638914677280727585406464699119864841632227356853177906801029358686717518490436892200808243380988917533760526351946153796586762526882690654165333624954537053140509535581718283819580855659620834026610415280450275829911908048528942768834984697045368287094702309785740326539742710767409036365091398613262775274757215657510914192701662068805892643872838913549925321334508979081034659888867447586334603561709106650753848522710318185045176642715778838934840529005681557562202361607571715403572085976364862281871137024502208836711673094226139981339803747620718765305608815770169787481957568738580176957018744013995095184552218453449984409402860993327912094036778880732310603765175983896720540685994272392364134824825792314652991108737856960657485548543481479486013982859412902951167790052946812166684529106873962345548347129537516686681836620888766258773464708882786274683919625922993925564158800060639915430274538147931445212046921155089628621231926378864168266640675251896169309243828404013621738754404038218652763568381990046169537818075913236093308718577556108440824345152043843788844770371288097129003603531349484943933587805544313097414548817425438265032427863438521444319086786768769307214032362899946890613578518769576067202297300511704140088609527029935925555147482771543687279854241932555387057901128137125282666031707922776899230991069813309397635812311488452586506418824105468566715903818993843882889530337826469243158730135052133856460589839079616020254187815339624577937241833360355013789804548489917989576257007303190211972650880127872832847271258560599466848285146903904394791242414191210796109372351422052169274764501125447088137207771212275951149399261948606037848298854957535638193858631809651235794701583798889065362041473038664667539831251920462764993880881902238816934955003482012501725743199775254549329059368755642301169491410329159131310899985212125596709328382960571871097387420145194668488717980921104686839587506457812617943784611942804813178146767867723793783256949246002280987542545109189049764417510926898422036923576076618003507082715048929703782095164689944525533912047809322483653399096805389570467032049969378912115872975702627703812942910108708109812483853029457173622783722403480115451774700528336493950340696135197561828177994978980973771169958464084413388866145928010100456130893262443706423454134250292941011086431484315673158655660291358845124786439100357806563537679646447422488321617325939494313717764116375896651689188992973774097088411322185504663277147429448081467033286795329308456525550226793321149813044535494473450218405767174868121200644700746907338333759787073793560185100941839431485343008725927127969348344312452246215424272556119283277916824682952800811812821501760131335522176913038456309329883517623405663234291236797650161881268267906994233816620851814599815804058871237850049292927799225594446530474239666198303634991646181904262436906964767346206746829722391921961883082550211336044938642056104621861528134471647575695680655842119018548992427613740510162975580751348502370043945811494139987033598957647146806571411409983278414208633189829160519258859010354039202592495038402474255610919939471797704177902319432402866394210726219478436107044788041605858524866981248151954773796562303014335828569762686397563568917007431731957023464220622588592853767840071515232371737873603282268852159132755548896773894613042594171138605135866171141326236790287982035777937031846972759130627221316381702133291997921325847316927692701623303483889821747589138703396075920071576392264183624980384415908874485035889322571746142047888304826681559458478265175386373182389077613774835953449975467858493932628693741522021453673048652842312034592442596078361209750685474486247200062622831218682442541105241028280838653874830083070081897392423306983681040833902116190745198783566211401974733306385127118417332897591196463097262103565448262775558840522705340009615420560481443149872429673436364588737795073852468966776792750442456757313366234275191931904732089960495364076170068114378749272482376330982731970730830089570077130368029562431078860072496838626499115656590471601359983467070440556483986629920067706083952601410945020913927305654130912881274414620704284640115230916948442932464886176016616566650563512305228597238235150740699062898467758569172091968529448159063673588518818468314598983289539240475455200198481710868143112825534330754520591551712994433924007359289695243474291160057038201557942423602220544686692643706736340404932254509262885968406998355325025184198128908717693536240174709004808663198135232995600781137629160349100520367329619322161837764447035997686897156355998636798904461605482526749120480874644456579318410729431716938917162902714139723040714744229255406835623140086728789446700693850501552321343382981839966688983971002489625398148696996316618795945255707333056172509654561237123246671727078645813195522236454508407793669879190324261739154173322856383390096258305365773773162621945098910222931240053411085281493253627313994596674012939985123199644070151702270841283765587696136497234709608420786183868795067471875423731038521913790584196637881446816278324098424409908979569399298215252748362757424582139601997993832161487670021318283253878089638105824810764052974948136958995229229782198419564847339255158785449327785896497319313352369387178642985813854261697000836007877151163330779094659729604361469191538279862286377686837717093479143426854301660592424223597131996644286707253949478225497105742693766335984855554355384248961458595165144414351722295842759854474927875183235245592295901516988666562170779319433184300877921394189845966706874594183893615499242337286383669275315762585134739960086776766880850390955097923946991829464590925368697901868370465805193454849294665492873303341922881449936653114999411202736644670484434808121279008256280850980670082964751014499139727815016532702709078101152549782923015304867108535639917556085788236330115836176337202658256931879969107202943865911178592950591136537442238168563784611728311700438769891034450216679693249779553866999434435147665884839509800162016454341730256623656442207665259651060677141036930296375976968399918283699192957632063255160651038771568662709728650843946566918026905636238739455035207901428192663130086018816800660307185921938945810643883397831021574413402186903516625109916771648493244458509902425117784437802877715148361393009793388600589714554656084647524032066051612843786855002249070721954742946324944748229806498940068769616231544038738282559347220745773253698262404696399498417590311708481551398192450021776284075513313883614599997635566177622279793266642516156106891483687077945315957801560342021709914211686358082445108109233356387705314302045382535654808011379668910635114049133495185755355543279750708916649868824321924009102138357066176961085597912478519103090006383582434742121746355547306981210829735711008717520094673520685008320236306764305019070720504658958774296868766989658731777070218590595161226648587891732377937220116331038680943484333255087137157341717130056270326339135700532899023128917403353919063800557771698828044886840755743556352530124569035977480359811061513493175811662775169476086471542857468428684776078207352828630996685467921153059078168059738613785665990747551527277915566370351781860484421214540077270786637347592913450668907396667712353153782928043637390911380091796265210674020472591616149132373871431000913998709870168390240910495628021740154988553761458805719001005347410619567323526498201291230204406244910208045703178443931271263438779911367459091323619856911503028286816366214875116808749906008240006480664659003408419036293628568114351575772545531738879654902181539205443475485702380641909123730287547121539615006078235061940680735035869421418475449571948363720005497296831818372804462271399474804322005375776171659355865671593727598541134228443231425859417811078012806045688867385895171545721072597836801156999597435183015635192723426502326510486444101020640629436441122215533333545460358091431204411157784217426253044951739710691495556107621053469283311537864350379095535373888930890353065595665005331099452094061511578196534352347552165999188755571002001168122063360371264076855456486808996812995316294431476820247706960778040550021929332821943644553311539514429338001661243848329922146083495127871918850539269856144481576790694417097822805246548514478149745942350128559021707089534611103308861377393615927837507861313018793199838103242784800837701722562697947524319581751440219204618958345299308063696218300619042814898576162877664171798609206911597924276972283249464732862430007598129313664198788454361612649636259032155367855691661844519085046506123885071707486392636526947489572753573744447498382477494936737105349687962059788540020542585623001270124934320459787750376238023314234674550709130562261943656749231132474159559121497690725261178639693931956138834157712955724850208413065152676904627734483673462407100479563083647407547676457280652027940054199936529900118987529674099431946506290611852943207472957124793045367255858791998947265613575897508412285867678258413432927745867578550730533747574909404332546069594028647091032847029306710629324123070295003021949487402962986802566813549377971045697340215056765530039335382102128844598173197267791777447258775296163307135246478730956857593621005202065105373878529493318054213113798724829616286773064207660958975989415678323091888264528124889673815677429670690184800796972263952342190765537922509885865391939177335724486301089624479960561842151314867074418208327271823330483764368744539289515107161023799323507670513421090793368762017058547469584854612158571061332385578953420027175444792939653367340197477649348047215362094507719916546459134397646085427371542159876117629887875740205258172051100246323451599859158281911530636353275724200888346601047928543249673726871692254735768260775269436092012181903317867840071593078673813526861419992632587698397730184660070929946440366069983187771285914028114864797325890070549213134239114518080414416032490359607886801617776026142949946619625484503613961664102701357329236481439042935608648077871798898276161087005301278414087503741286494153912069080356052710341140895805573551778612476632049674890110379901194491662126384278752212649283889792110714672663334469512399811705832829070341801897409041955551931179569331761915420324511440520682796107337807478087418098577317045785362378249856238022951722071171910388617352590395886289966055340035660015738218311702087237719895869873934231461344338522119038861546111999516454422724418341487484175041425327362467894812448994538342156294539319512455217358744825731135798896754827109272224304988691331716916308405990275790484167361812701102326410591582929570435103197853847016076467064055332988486812293002403612914953370890068842137084931398217976838940707337821833474724199544968905001915976985681340886092018162634508991396068307310015849391042993442233713427571200305193958704455082052835931182553254757128474486292986925590445268803060122513805703648222399765479969386305022044741944788374492589365000349867148274011770840384599104289857475238368845764814522686811500172326355087021894026500508079423742246566361417287300355493830473277304561922584759242319159308143584202477233870020177799043427340180721553018785347489614186638763335846134096986188957921612563094468806108637457037828677398089440398354017980940504203302127354862348787829618150899320697646523552567917905205808657586071631930140705236795754058292816198798722890425166728810428009052251644844319998141631305608374944894800328709913551914122999830333721832529837906323631873650118136638086719692815500394018445319757005434999109375219404310390226154613011866661717558862454703569487503414913070339367881384281795648024521091824023107458633969647128833160245161314391110829477225643634891923000609547939826939250457364253563268157131451299319093960952387169781341608211841056860680058438590444978076194522765002164218163096004936988960970841659674493641851853646793026077165762263805819135816719050671202065671793560590445086123760648390087692596243998976276156949300762550373878663887225561917732723940049904889647350137567134185070714807182661333513453519607430651932270763895587846875921133886735160671984160222811610903825494352429540314265289411287691316380608843227452580465442524868615186757773303029472205374217316555870132214819194144681195852492605086421948150952005385345526923179224233725334940675080670235226733987792868381470106865272852965191097027193760581275239549858320579862414336602355595602311618592563029146352232627756411356103846835114114133969354105013414885594325019094177909753443047150304092434852524295440526268519434312634949644658990319401282579207467000348229797981265129851007352581544373076026818566472529402687451724306954764675202771152055282545826650566417611926914203133203802196259870773956742045904373970548728640891599258567329754124251894057617470724978028289471009469330389813304923850873827379144271995453329854333701339069216122706888665336105370968850785978389643049757020738161480225651352075353675170637281169790865290618249507762170772537587301597113284374607022321634666032393539983165291625971253396005019063924643584665143299235449839589625323206205182308883780784688680837333228301697490677389214620260189897334345856019296502191043058442114754044880878963503449460839339272832783500510976981855036982524545852876692668738501014422888261989225698078106761241171008228795252863426037420283594764078677992841114463366087090713106005326871400981873824784905325087878928157885568360153661753228628657417507665978060486210196294552520704388650928281976736264723681481814166989711795213793220723411457580547512655158201272360277220057213155980469604761852059601416355401412320258047824133979121183332106337236739308580543307894616210823558878136394025111346138051828373921147831910561770709307784718111533695781650363988869806629847396892395548896963192704469635123595665877749763613823924226091691184988534447054556655239166548706884246342197860938484917143328890775357895374647619484841145962463475180132419670888494931831916576613953315323391510088290688888535525992739618870123556533865841175797368782280725094189374021731862958315816655130965530525606952728789626617552452992286342036000339126881410615043922866025487246909818505089323699856426353488859694478756132247701739245341907672273567452762231581939635050304224456224941858280024423133260362110036245287469036529894854325875979612351223267541848261922986708055307348384445420783601183973375847589138138377680614016703813294959994615336762200286340749799446892368723437997225873880828080874118222327514219694808711693856649278655036825993601823159836045895375481624196635216994329108230273022206966585002390012785159065784628615193908088388991599946878922364126729451602697114136405701071676741645022034904958403236375230307688391819351613775583731654636752923431957855180976722257151132730400364304550505326132641835311581143397478358008752847686110946245241951020339082280088835140765865743738428049969859094370428024324676909358275113522907947147956486882899005834020070250718067437921931958572650325563450395975544249795761133155344160654123122285517771830703178209444867383775664174441113726048244587563345015835679540447657679415668740429097639414861157760052370489446213350692064747129177165327293635131611997752484990569848887346672193980853267838416615838235400520798767145022371740177079889410545936861986953379402863603520030108437046941573006794714445912860541383141672601456923070760235421977632241661486828960294513006756138840080619149698426573752566080717444866034272627446292872992979623009393882655573900944220188792224878750206703974808682446145726097937692866269781401334197832851895454843541192116200745457797580165638059758210302383289269867263706491207141654279912743523455905989581368042863304600263074919861322911623559364506130618135576595435611216370214896020399993810713390625282517195583686758353820409058109165094007001151944656580598357929787801885613655116176698641620053231516378644848224798784417384433958630061462930762646640570463592094036080480368223959199969552836189826099424827549900767292534717241996537844682160598688470531286401637613831925354135079162500000999402003648588060045709286874126029321390740379088619723962192985699892477187920455935908033114264317003826428703406536440026633627161781891596814815978650940341409896963478731765918757388272447035510551056289044088181584994940683496448119276091173510262006350537340685893987763931709888422959881929206899285756810532318978827483315750117714469923518497238278608752762621123464092707419027585178345326946182949134240790396230524798238529596498465908238762243121791941272828072526627732490021605948791079694228330167511735328687764942670157411471062477542466469748488877341004046795475889253576463190649968863928736419231818437719643306750191095196913876271328432413933474973259834527333950822908302876090283408116117480904881373279062910017797823563142428862055894416811974829892040789271595112253943087893991899224970914276250326419041039092818856839199033518771270307343974578728654118319641215987154134803454764871291492570089293935621639347124358789063020087182077265643432999385009203382288223206641193534473536258157901503755732675802972846913636039397673235650964547229444492651211691483383454630974434671598082200835615290208559163191101391083236846720858378642981875898644199472464966642730009646706305779268717316051020143184751511370155226301604377051481653166162177337445300423924822074456484247915823092203372516937538905907700280536169288601846868244145288730171278914602824637236226628822850180685684093253272684421449088906388619656328312673188980173742375250869130423129267793003008878580187903602568316875862913893531806173070237448342051562199380645391946999670749639152649794366522982106371434277272098004106707712147829354445578052847631467927982055403281806675975939499535476520665510516518722710576255129490121021741080795695948038070546227969134076395031916579317041112908215577545316321302701123545243063489780008398126399946709415132036357915511369027548212823223239285725344631779984673996552921615754289169675411562324844352994811848069113500912390079332131071670743552078114230521475214160736656648160834256071056429200818764619571651946998868428360784913229545055404978538241804734917478639539327876853614673199025385733495697921995803243733780226022259903783295437323527679938062531047127921846734911422499355207349368332473642359518760325859094602399942206206877131366996642207293089500166456925988375725466738945428762139721741774700488065368929612518397938369373131124631574637065374953033180706735788093406981432615804849730100780793782330209632769066900864926934776059819288174010795896685084558789297892698755867226639665616351419220423031224584244887812152186933669341746228447572997592360379359527797797531093658508667475115942596844420421662005847645461236316612769823686736573370079107657300976599769029356564804233346228370864469912166827615658147279180172452413549376472341680943142649510182989615913606232576648365392447904722322637354383157154092720350463646867737850609419467421174887912718396657156466584450351638287467744059454279184327937953980860161832080707686409916056400722878997721722760105956726086129298194278477910334462624482328015220043280015474459741765518857203261473078951104750390476459504443979659364251701045981979217913209209551501528679189756423510660412846378668422648652532720238556420181909127520327168757162959087028897180410814780972328244360219607722146934914516396368622335682360617122354551597366446482622086665494949148321581646056580046512034490277975851848381265570734978962197873447977879105383799512218553253230189970774928090855367745780216655358294307786612599804929981483790463396521292893250695345295853599868968997311699605356142226363239742586709902267769771608533327917480376235642406477186709537309403852473114627269597384416035805991037943228444858938507589052061761924568992186397709137212265781259829113414046675261127693344674890476093110415448409329568363017743879256568737823719485153045362670268550038480797632775859629731941706684741844641438171887287855211530446162266652823772786423895154159871396727363378025564568695292707393228258514152288593751328860587906405687398515240492470052095661620683120720186369944199591946679458882919549912431043037796988436980552618439359230484594637602525004798273709044546950467679367686227125259197660117364060728258316898558325966801063175344401449794399946902730601005336910923459570832046108153592897944858528815719100385901681456224243679168634440386927480013942511380393821932624416123505733928317667550324089961799289288095943221502810978012675095259781270156090689301166383687023510740708756304015384594550541234563228208139350340935069564265322273822779975603773988908502656859043776399324499606490112574824583878330862730864249075640324853005518465154120098283195427139196957763382976493122559098973444368113847058576363059204487868235592107652944504468091900374950049619987205776064110000115012449789895998657750525112378400179271006735071230200761901926662955923895168977117183718470913010012319859608940351989245046710184698931596626320528326048580155688479203076688402217299028182310268445410840515855591159802438940611454807595843982265875824456677184157384749893085712364768061635113756271192143551287078186628857090578578080812869197950072498961158850614603437825020067674435505919397166143142788117177577023827396862020488085827555017345259598387227163606467192782604387477951461173065844528301679756959403928325282562995719476346894356818322395711071290254551984510038839437032195753641373157708842060463333965509044298244327016010209503712620074670442870005990807481489274430703948730602791344753119561657310894798478594114611959248088717069716046003808089749541849708893840167546827422189746630599529023490773735657172020667791970073806829486480821866022079135010553619051654894323765060212172888910255471983853026210995861274474224246506766935058464855368209644637487797853104339057346874792906609473139602419228713062957661511400002217291920911857127720089479437444635494527252278854611892199933094116912531372581319987187780595989476429487625454861390362911963281737874330101725377758369734631006824913520556697070510376190109143764808560775727181095793098457670585898060349468699078803039583177148458786297102063087101568737335119289797031143601499857599448902555356227419225398902672455227367605233973160663788408527691009008585563785663629453333328689597886046412804543099559757751417525565236743937599477528582943361804763273865443838588106789625822390096995158766885474258489447339311106219090642310530945897379572514485553983281784233704590063566338242713058448894041744876383004784561213184596285892101342875244507613435593502054323337488195853401456858749887297433220994831810090562616806331158178278730689144017971289434444820014969489341474707893049511697781560277058124605253677960131457490587502847243301247102966075222641545021409680457368382833750183857734915991763267363650310628242530253698865172369124965615521732122434144084717894788861995550587974672899367922094178971874824913820644976776565910808501072685853764941960326668803640802881262771309665466816826703274239563836001091175186613133117922007994393732624584998630340673009398175871648903275890761183480701249480759802795404477077225904808520639478143070197674056509922982533269926530509559037746816420094044807555332461220774350440930884873369552880535982419854566316178854487062572778705463139677171425577310554672179255699976820360055778320676529656700795664937146009318842946221033273107327738603044526822448799556184316930739340293029165341269311996139895968686127434618693226571904785969263994327813899664349045676872458008129721854913089171109313663581634967871246353502185680013830854783821782187962646959147387803034379500826564009880612103907030849449686755495115356410371457002276890489129452494067392095017550416458312011734396340440181742447244553488007870836242080750019557503578436177261279670895947541320948688911756675687696757677969209820919692175022906986931563922851244169315072286932895298776426478211628738469782927545681285144191789033996950607913397821530975379662111028791482905605085054638239586500458409456438644700565646199523771674823210824630411211047751826111402702122150177098899004201056290927734865146608065858766189828193644218678166391583643459584413366135556014816820575397940444183811571303032527310771995697965509261728332079171463480152510327813517886578039282390780015500689344891698924174363387766627934420799724852285394178648713366892793106552390335112605687540659391144129020066448494872337160263922784492992995891345531514047202454628349877336778178971704596919245010267285584389107332471554913688673422150815243292303606914995765006280168732024616401764280477035611847228313292942310909636191521559277129235773986978335247974729992487502858494822800763874673749613790696248762646167224798119198398301392807067522574597221255505940699931583403489218443848077146474174136579276180507849739418862280051331966873126130604378010710613680678759842781826792106437903980150050797137326261076689439789172987267897352136218547058473040205174311479084785613910994843122623628271069361589337951547444722705164818250762360488698462719446993571205739451237170124356181204603001193993246289723397574988596011673617097931656460390764303353954002116724546719203263525570570173211726269643405038167504951859840240419670323475578769021513113774899834711155605046206587989035414571035144653702535814510618228657453491197824219516956220746845184962535288430554169684866751402000236256938989874390570960706548860169302246501833628337375805456853010569431996372141720037711294288753806927875667467122231412149483414168615807712269934089315445887579254041627695907210962778287155590483456663224675732333363117610268100083472679965199354541168019397063063414267181518845832210263637454535454054531248932738236092719800362504009585265708618391201561214783384418190783513063781529482361985323148163976436767573944440618561018388149338113921740405755674596226769434087425184688797589473520965229140134279551159971972216653038629204864438993714830896376699517981417824807649243876425063703034444783140949900487430568450879844007248784556675909502632481012384367713648323634109267079609613953472646239422868981464544893430791435993260314078222874406170656658314143044361686414355067645343258486029454994026777353679458128494021207441068489439221218731682402015429806144506295389793664193714663093930618653550544446292696102597395247131679827187529297263084567777109812929575307441588305769319697634241318472222851180736504676460704708275228370119494350476387362775648551774165263556596530249290066575784235659909939916787561360196031235919247602617399280702122349068440810983308837112727433021496943772863781341750293387811741923272241795305674175148904130469268392443159349678401089320726997481523341340802883995524285292708101578436951318194276096274838896034698274184747949115487915170850884230972673942760858881810181407055434338664990843632087979569606490549707798924010435797062861401529168902132584391827134748950548809786191594568357869048190892902312127965282044307880994150964924516039283792468120890107096697186368329153650255310942030426568981529903778822901637698100455896506406132033462196654330059829610428437662308197790261468834057199167635114125094356278271658181076460730942257001851268558118621454419621986494040788924985120144768640544199240981081798325210909072792490775332446247328511822257363598812957949168359713469448955585287466037126383998738470430286624268239398328210039004933692077328071625261995077128047359469556202664012194580861673442597418545271615961563714085703720270513127033794067131005531523718627476195079237084840742410995298154501060146371999219866790101206229248100754515039777636427597871544796481595255012949914355441753825755349876760265777870864614726126200419891404259515565466849144483008161004623482991659801461634796330509971965420332443584808246831534495266156209402340369702493514434171844053736525745073049762410108290519423249646397563945298662072181406650832122305949742965989028045440140917782979166006582695751030615339806522311984891475560318932723150523524773967630319302477128512265530793625765560214549260991277461887304906985678049773073036201615386016772422999373291384050817829312550154993131279393524618157157894740139440064726411445958373063638031369202531855530138210794185573002698315778525686331932300233349952287111899358783464735243640180603556899680361688879986830581667438483371705327550983196026626668606069144997410587846297593635964911886434393542748451142583302079190521095424063747678117167869437256246617906755426800975497518499988096813114992045274030978424313016611426620102637779721488157368857610434951426378832796309582296075448289852501972412865821448946348377926680686840684157863976318400953263268389076156240732781249344099293550909452101298459113445047681678734234936543398603088071656944489686029536927551958676323106868207527323996874593492724820802143345929747629939681659228885771332196504079900574879909236472023665496612923465800038503832487723527615783899969460847260804594012048406284795280766412841885342305476496106772544322262268859425650518612883087356256642716478783696489685772107000909827343855643107860486736201046610085815930369591660534119564399235074207747415805209126760354160660444067982882227912034744851748678229876752940279106620991335491585064230813763996446038960350733023587929079878835666462452260942595340636411566217307302677879785221445645717394372774093011123349085601613731254209439850392275190391604947382891895561004983449256057645997097774402084110974569365324996941576294526430724125377105024045154123575687675029356964358760387452842102076069949657776479842313650822884315486895119379083525718472632717649801968057365823554452530732100181229025568970135275568831917380325026279607248087737393295732826816828534690948717856656139883598702152182825310026019169955527611620569967063729184335299096210275292393236384283508257701788227516052329087834116035992332563357322890934307055794911121108954021906980281652383027706414466540307191836360432507298849337713029466689754720132868911872198615249637104206367317796859320744296343334177724238334083879745375515614338154115751477860016820409692393311956989225133812070985971979310148694398494290237449162376486345550491298094945317938184172476632102349543863598496616385722885211560972632689139457663297615522255911930879655156796160332180316968226882336763287760266337837645935910950894695398889997450869805761597249472803693486351405626763503872593655445744263562792176990208682822879576391276186729586326148179318990471601664272561401376649058577415267666115040684981005900465043132211250453081871807246878313267181477808252879347918824089867403332521590733188034958991381721847739273362076722950351565705933546365895616078910847296423592770562443955110728095186093726825467088743038185437026047087535422196354320102926973312829500790598777812451170659410939338660728626036393291935521814344549318624803052805301047517513521917537850614434259845783053500594887524863448865083734670514459155424661046986539960669214079722503787964171354145286616240444500262390061677324405260705544535339391577060046630460355225945069102141406391511340656125471237795214379848604046306619092254553144619476296829138502095500266732055626439651592556334464276762839925592179562391747278387282541098528096892492726527266167801593350661544373978429577895559975509260621906515643352495277125742339817801492512580484636890261429695754420399524736495117706554290008039980850963857039551850947147269363006998970781078670246408611839364426820113225630330790519495353141329449812408921807266523520278090935014974154173977442813223964533494324289057726427008218245567201571577226082696468668863922704847637060342953776455030559294809049827601038626648352925620850892440729280547714337208544657359244424932691376201249127982965634120667525936285565202955788321886703221138125019781469425434893581913574973398380538062630208618996685570779390125804824474373768330364166818207320056964705450065282873248230498291671229933036244238116805880364235641512730430310664132449003641780448514355822905330871513762874734848703510678009640762114570908925178928678412604075908404044425827274360072617379009593015599474687127114658961725321754963001079653472169922771876533350709779584853334219605828448885587990396281595698540405348800454029711432883292619136956407549762734428762846184630048435497933548162122268322513231701822001342135221094099789917466443553784403091725674091392046623421159211379778064597730041445672901675448143246753159289004967274267967241126806285908171189863336298935292703760582567680773827971330930344698702669154179838545189486023782484334024613782000681372004964140593780209170757641873239758690406314035622108361367876607452120594591930244353065704252414834867402933747447335959373188148142170936445969890794475233908154696384219425737232750115843776934438546120601205087911747545789135304173666335886240411445149064533219866957878279581730944165579794585703195730582104636608119004017389700640821197465957123446645904314051989050744903027683276815906334820747661168157673919730057352176668856811803016116891470706424721770388859447768155966632239658247575694610581461293713963187447067930664047511815945681888590807378442473826270303161215114254722222781211581604673341579993044012061426754034497948001848462276787302957611209542560440574553731796160909215330469805575320845821778829098941334219294302952213024863505122833923653200058708461637096619265907868403217980098631702184217893148826901520458228014757697135916830112910780518451097831369417275668262278098311660812502756553058589812614587717127800421375011319566083661979273924611788485851819057110316019064345548523551828685629456127887844126910668030364168099544617773471946183057748952620918432416341773091176106152742055864268071040871685820621414047594778950116726803753098665226469713694027537059536710810305155120174189106070898686443822067513986924083221389473697733708686830507073393291607324408237982154306234781101404723985257949136622202367446612355870088531405219809876491147746382344761977660031607982775862355108259561025695244421779190006178377591251964324271993752019221154137891410895380773824926214415899372851145124122586492278369661861504035920201034321482747498222234735094520204109916974032873586519682277316723310748636240709890121039001104971538373434481342205119766026159590043491865978042243210240337174740374427787383706895329897430419422787387679106664711338633163151359065593448691705761533336602211037253650758480031394319869154818404107821384174886197781995698778351549490980225441981364784434870443208591449315986057737932226798061109241930778085755425791158287091022740705269275130165299826662738208257122781760186562491018896208986962581493448971088011167390861162605262487045836652674454000972347152685456770957317511916152968743936649812119759683668325561595143222761343174731840212401329553661220696228455810671329334767845700114941579891687963207784439386506812955739123635285081885653317855556447684631916576452987101824600396044936779493780885061617729069490444965189729043784775196687995609646188067602880422995400770888256602375464187437442271574217003410937943041320593430775508874964416791408037856097996938477892836419878508248636196389284324175140095948906145085909723076690718760507700946480925229745125004755569401873646818439325614875260410037057728955892952431147529771340218759223444765100634286401278690074302359638240174958562740090339661164566897740565208765861826435186781886720235979691517926350925502407983001323762662040551740056233356418222293189620718173118804011893193578098879521056781918929839471719148895985951932384301047419637542078135970060016166880376995171856230904829503435227192812739229445272379655322753209828964035064208353214623736651186710936186544752629648342758209781869889853499876202144660919671120106399037639237019186853383103646667009312763081992449223145358297754968260958292690326193022012072072617493140553333958113010583598595707481960602390903815827241077927409896605161372919905093189657976287772095985246119388598474773495270502681483340930145271069337903493889087118777187673191884754598345051395794103584308899164845519397339889740226023662233957987273575674199866895218863758147852761001706369011848001632038919931846825675298334569708170679940557013756799493911706755105085674316492490362174260924721472581447721290369139373817124711764283611781145523522630182936414587589242013703539915050673380008888866009954799099692716854505942318306163605120774780824328814965432941868148475847940482240213634613212042239945987775387638990489439673095275396150469868195307884603226006455625902037709410147262788388177781077486205083597316314916607204551530994236970402867849579524305721990864663708951829932731410716258121198623601604036011689302366052323091278273067686851026391441730675580031423468671108472486766892890449944224837537720515081846976510731122637315699875533532591971244568609575469284519248643645457804938888245206341805796105594511980299633375192911820641893488047722651721454671168765392539055873585885845364102740667010383590144888773909090640858663362031133063110162276223122178071429859412497669502831166488882119521815889550053800622774275630132146630325863495720434768892568947250682119045239433597396864051982797932426370794945480367203100931003256882553970978621932251814798200803543882347947860034049229213395533034393418853472437190846838719811325182777955802040475473974953394258093170978526750849035057177071551079801209012467378682756043653693457421021274071934685356977840007152190742016378842416192841989124379753462313375255481437831788667160449371293749334431865882951019660462696685984328940170236153703867265257696123295061615557809415158248502300383938157255992302004543757573015232731191045332113409112204335172321668665576544028952624085295269028832231589518820651638235897853888547927443392691229066821858279048552157544190898388932691733529400113548855269889700733304814858233746965366278292560847681453606183016239426813790991494872453164841630658105459434354447574284154808619398987338064545566536738036920845744576398015960126640281306386171331619642496075677535115439143668331006521612745594876020691065691742402582999880957218517428190422530793606887394095338763011501556820534056837680126751211273211633416320270435734488617942463702810272666815798476992575705355253743583365217433841042309380750907294942001558386206288374047675405649503259551068098666794152072244610998391516658754434312123092750228507362050865368771055197354327872915371510187764755507955062148074002571256224517164589106242186206309586667826111281185061246678443552077045886394262782307801498474766740753107819762346632036993064455314293266728684618999834081479244246991695601441492775052334264810954568726161124253032566305437191210687577022958585128474498846201045329024884478830155352664338075429374509667944147586155132873691160281598460172790188799586575944959616553896844884337332479663565745404879355350049788650038864297933081891222741991485115202730576359796060002989793373912928068772632500123777397956830613920022716532540232911645635019199503637779210342301566355703079595162721838563130645609007580550395610809773830744493474884652829883786434175395492264936022383679575958034016225432067904413656601927445986588678120772830609042507584382203909799084160622715888630378293294694726717032935570513149404542237754701266822398329586534908660014890275538930125551408518503405433159307502708712296145670688220811089084637018515996067105228075901340220446796098251566300628572659550764991725743178427450729070075119531124259270347331485678239401538711242208239476664755886972259708721561613530445456701055078729486540429052853442718728292404404682355928263734279182843332333565599054029378333480844127210892669661996607491753382855957098774586738487999826494599754454273844686124617038866151829023553645991580572697874896760041238820358922328774596577056897696617000523591460234629718726844418519283886297488493235875260430957995671875312496290635505371531442521964162327024902820717897252454510184341503672279441134747653687443306954502408719207509262200361174954468677846308094245993636423200998870506280568066005309152705299642512925612047272877164324141527194485826343159275852173081917051265800334983059354841944182612416117349440163772923383392486679549520675696010255852283013236889546144802215040804842770461030918521201407913756466897053354642934145284911837894878147694615887061834317932506439513096237192165776322163248868125582052616264384155097568002282327108420388250283625242697146980970135494629067190076828188558038131203503410214567994556322378421306689848263697361505297952478750115182315677784170034011326790931198572655871633113438737442155692998506846027665597806485081451869775574184436943841957595098564340585836803536089645724159485698211200189520770971247850802560389241138219575105788063167722548091923708172517852134720740481022687068545646855233491282442980240488697686979437125792035383922218791907392292474190635053441730519996876582663219048688053329408820828267139215101304079133389841417832427896419349634818028421512340359750338104361213091807437616634247622667363064283650936991011410570287563020241846428809301876684182203467569092616630975909729682214738743832500901243885930696517867640532162421615883288008526987434534209236824260494983615727535339788357387306121333186773177686560185931193151742228172342935920418779733950371846148690213394083461220265969768435332700459002572749691715648699311945505047658777011711809989490864690388014537264534658283957019664137605054942291118408368340293273015358271308086485325545271642006798270593632921315067453920972232096398720385892658639921536508752944964948340745321113701534846202129114192866156976721921235201651194637078911212609129417153099952878372371300192725919532046349916673343795941635608507393552283081503366470017815591030524158860115756845389358711540257549082537358356939945812126923206241828552426156783895204573452101286264482464127988184034395966838228652627563410601861388976726195668573654914910460126291699185392769098281017685985537793665212732113223432423123753630438374650780146382382036114764098764822665017931370209577996981517533014948977158356142844927333860794709936209684785701938955563263336080618724568660083815678715474557456505574668716928752088227690486626576429567755628308659108490067603816308110530357303340525113040611034474573754990308766204553644566325407052808495150118627747791665564478526788589290703908007581901549988833731998310195940459243170635871121134784721938697608485933152043082153376362552448817437344867473248764285635220802529539964044752836002212320489644297320752204794444145443644403975811752497259731495077656585707129085059350408977298197083950581179867179324264175742763685464593797260380902640581750902918152360744768066335216741533476084470925451213301347056346484288381167841109957603128437589080937408897138649188211613001684847894393543426351585348261460880365777187527283186712277681861107588123445313857569231219367632454950860816857006864413128697793617002268778798449985207001805127239985839352043352551238815206128094886584402459073548681739990390680602667747104726693317778291545314042821662345687991908528034809836276349267676533313218803086255006509720024022581022702392419099897879078798195785044987792596995174793134283124313118977463802467695259821121924214793313472559523184618244353509018014927415638256024378637712372623091106522046585606827147224993408910261775831931552939425444557282160190703701022074073105806561415315651718898659017893421699405759737088361036990833295996250557207959302837756529878958329903129155528696488944134551294329464214381008356451460174665856132426576173990295802721044814713346297930853072766400006125607280588967324688762202914547069463068040516914783496639198514345371099636764032076662384197485891908958735207215898287165976221578777556005913185163793596797161305958502418612274204058108569165616689074807946217828927467597571780477317584532037170330569144589668623045300969823714650851984703698444528584319972890602402436851949146838759738546350558369363799182335693223755044587448709878789750851277212858370026100918691761811601184232598505582734842824283497943453938724972885950664280107512772410492145337473653430262332525274683483201195360320016291027708375244128096042297253811669481587786789561773963114782632623513461845724852273602643371294973632381755950965473992246147609431030560190166154651854378946408089403716241744710979512723796696852384367927265781316840973787562058682941576339190709271224834624139158869539088396495751018593670372965377598366065937544278609426948947740976973440297296305846952315074030458073921445739622630259992068765736490745936207516639736864200932880215457540958212164661611967248568159834933481864374687510299128205279615318603140455575946271477050043379738390866955621592847835158151620397478453958526048702359051351828080862061935300705667337839612743898248695347794600296481926241869531297456989478049163634951526494081957801331995447430612485541654245073335914330395537063107643358727676866967940804742637202026108006051804280064583062024979015666878230403993351648597706591441392769074078184279880533232537041569524187313558836307623465843172089228521008688907350985233681441034497912235852824010941832998575313853162278887951250520139675110572031610030078531349197293329808216881416386660399739908762027199309701402376635000376772410933385715460474844329848807195892876924061821050808523019442512559533174164882888489270960882553855347632807611941528510351063530682601994597235512473718204287581320737228458362132785339330358500387024129770402877884942890409222307454759488292969456761841370897891675501510646887547609957016413137507793168148709210222006421240137749114157781305484257192700431000442651128448617880031825420253566755992709576141031341102671342902379143960808327002250823696147193804975564422341819572086109007265651702409270281276528805993593515523845091794648827336221964612533805445934806595898969724495807295027881477545062188171939326031004654223417904404313426963100661004522355681852237759983007871838568723613045175187471228758334567653374839334939375493785871419876658746080223319040554406974867821282168126999262889773724266416644549819348618746686380256971407265292763275600235662419956845854893691111930426017075133044082034295156034640611761077063076165177786007190513330874715243676141563225723973687705281139477583144864517597154667533273930104652449810285256497989575185805236405357603655025055941560290585618848032662443771640956046260928291092958862795396601369840284861171828431792094393640056785738676685426916366145412558461780717891806238077789282580773724521119054662990101852447841076443959734536268110923966121654322183494706420651025461538627143557779874559560884831916120793155186572286305581050228060978507505110585223982271508266440725630137956114234943521982260689331216614967139248911384762627312590620717766321722615170564909555440362951317682601205802173231844703055493679352505427304104863248782967424091402066008969747327798815116429208101119425908429892122960647842025982346362757943745367240923217930799485079949829908751873996605511359054146137582000606819211182306126524769940001592902060272465540932113033180690747516159611610644622758954761458475142049620837720239153307911372243678704422054765124137158847409110887041721640804962663739794675119890511807550119276274685603520138272550764852884049525251205690305358774600056669445173022280284208769954022681212235886336032421470961375887664216286392459345894802648111254627980042411250998387790767295181435051818198041377484166150743717161532536740909057741036817605461194339363005581556530906615965248950919177063433218446260760995541087659913922271864238032978810492314907381501451461752593002486312973352313096917522082780885601923578689927953890053011743683082474491922110266936160072155835691708913156226803707399575745501537846641115772037056292381238392717249883513171776358902851813433053502403519859707195251584173387205892954075502621227057410114936025159624706053353143939606987702376619809610831291655765683360448717689986394057376688520851588572732088846531330438042404440881314869062632686795699566780583394685130243827945500544978854746135414727021625823556776613591693590737893432457650177783855590814613926992739236290393701315189672714086301943541880202702478133758619514733314009050747871365363182518725418855564902400584238987974870710030545631262695461405027399592922426534864335677182632190809546922384137121723796193319084430926254912599883932851629516403851042298385998223059281673351069322053115231278149162858671241270355937984377330253379938057769815944190459556744348665921307139987803971010026914504532919184057159545000712323170476946040612573323116503067774540376386259286560238869463274130603686861121133214875250708166115494402226927107579173741972488040342823302101973085845095896200041148453117182947922625507598490490309535203404531481056068184026213999644810422014728998641411197835494723753882155912564890110032135618224732161637087298845969823605673228296033228952374002004484029287410393674582928515248524092424912771576626572237730564852837076144757548836612257038212698754897961297662168714184062436564187957232331887524579317411704309982376343417144768114515333599771146218930147993945598538476604884635956152214205382290021984272013143016129292255811576271577437451700602260820252816970055957353794653370131233482229586590459845609204590079116412616518260052543639661936760369389488490770834267013679528514284168145400914552225793090091899620722985956797448437326108755400181892705583770847126956742777141528876144586287606933358767511151787275236752618233014356339389475154597128356228593676535699255264834866856895287708827992632467007766766978018222247053757775289012484933693831786644135441967226120145133789874403383269036110472288024384836704020400110575053437430294819794027309519924930913867960389307658174094309615287669526925502987229557957628630302664908041343307672550505879727644265028308817316012635129466917907498262204553502782249922528202121541857762884976526034085442870695560695631610221735683573366529875145259438170907937805158740936629796782763355276483235430168676946374693274202583024652327485582882171075350247477186307096375988603921910596478798136804723480265004298844462707205400260135996559844954829056534956506469774492846428995769505203448654921908312438019919165204071097924484149293823718062858430021590672849611858168803241283587851896040969834534014284651706574283400490575065256616568084050631667546364493776690310493313309739913945763303909887442090605280295192805775470437818397193959014657732371008344793851095929260829217882474671146723590788169225223124447608242384820305588431902567167799400264205487693199347118968978891678742764192480938779201896270593283756199727789485067957961338854522722695883274370990358209143543534776028145727174760347584297569401517519454035243675267226899590284129247072087031123318273560125893603427068287012437740685462004126186286731192339394860389272198516402655972965075751972977424627946332517683480740829153621718444310996738863597480136753862307895435832100659780479393896811521690269595957048462039121302272368601339731936519325148690070242663136726171317310595566234493212214993971052316204091546670889219806842945591185952699566314380970330891501892508972655394981500035785250279493792048214222941229584310057191975254772600525149653734232320815711607130589901601110811471299844181409816899660043255910754185319378920150160786815317991638186971461872997165748831150053637505407009419990753999980425932638241754292492801934791635708523955197780539668907551190974420304075480270269555734919425198770044695994335889482925827687336859103900089374530628477673095212219372133167238192175433468466800518905181176813270948961442795484358166534629850343425245703362549684543897233836624124182302422722149699596108900588231270610838874305579553323575374342687119383604591384167192440525889369351916656881344836372422074523464663278473138892403461635746705169704416684416208550252126570336254635611432348756699161505532288709963592725577825310929092520825204814632794748468924896838978464242063506966059588404136835337362636672722344478538063073943852333037794315683671987642104526734410301036916683378192132376439464966719508352281684098531267872837956880285388065731340792662796111669757274045676772037765033451190099540059119708874621251299709223107650289417911071976008232588224121827109168872355686196677940885226024212209030541313889896407613079201308844864145886019188433745692995291169102475467056176373638703562904606843290936835567927472940254003530395726051509976201607598975396304812773169840707134116163883399730145783686115087015427502833985748039023358467664673312633154993919436710883442091543291060426846937063444679819272723178978624196091808256925235772816464354141601879365735125267239201527479650871389831294803404541635682986060748509401943106693062783637337614379427056096425639429366198948172776973853219149597299430576073865182088121402018334502494988715329038965009484083643743452847967054808832652569135780190287929255190123082306858198378683626239175379309946942849531183317505443907834374660254200273181172576360800855377119399772653067001264674799978994577507231879894408045264452577746891824935301153833157167144120755833705477128779850895310546291403392618414090146465594985483708500764883106659276698653150381666038259175449172609105187900691462478428128212598480521777594710348825698663312002907933129284407100949261250466354011118301407578883422702013412945510113014326333394287605001606801151897243889682568446157641643607890243572735328121052717364313366364748597661230423730686468634360415624247498929481973567016770930741981949546265614477354920057355248768717626476496479030110723725216725896933921700735417646212602293780964251992534182172397422124333736952750053814508925268410116714385702521537061362742569642656613683719828738746736129339365866729035827938148593045193524689523643056199413430577200150532975808271476537656712400752917347729820146686769047534174451145568094510017300750054910492888551790584039563833101395422277158087589266762984825036669685092203878297264848363988679226069661142710257946887691832280354025803999669341402598690968626723184313554029051025625338424902895056025740892945140736749889223320390574765745833373270944569646756818036105583289252221817033732390578335871621305199904284812266506010740572379805371550426279502304610035659803623740594339641400123614809083400487546664160135359829404719096697609358127251814853232052691391801501355572844022328326762859063076077682929077651560851674046812671731924494924131128906311526523041126457809493164537686094502760287681915382639852086311050819999421571403796792325483365127875407862182898928835705731940210179060990677439232900369547341502463271125027237599913912610634365924253119545095141867539267497977606411453396142172247470760872603787240013355010438352828015307906656198499926367434351451604185999178517207245521800924947262648485511520401294667680100603079423421825090541907175631469926223607680676819965755079132699275023568564858533806767447640217200368372229678003762808650866994889357539331692587444574214748372053923786522520395146454857246080538989439830733737540897467335697415910109777748229913506455846677068679778451215350251692458408508675485770000780113134458672269465170423701835471639464465963203175584903437136162788162165892739116537497671012153492435934481722751697407811261414977760232088373661937717989097102132569604172658992955580407527760000914393831934821841755358798424976037515664464433331580848664024892059958111539457845769489330589315560202221033254722579197185123268427562694376128564566138531522563913628415201699624979900944082963678816460263717244316020662179615506312516998051662015667092504502267814770265580320416932275120683686368312842178705404217720773241358613382267587069135604467207582310480017622073262054270796577774656998116624374079776242940983436070094457848337474271024464991456252544234280635450110748077862429068878232654194383837815382833717168117124408951135967042500111258104662347413228625067730367347178919665292717892168132206573587898431471062892768998261953305777931123101644336662500053256487478703354187281141655091176387872461808451262108862381325580914200089943217137859554808763825105950011669431914355972230767325597294246065346418807931464813839060730031711338525300911209466193488746298266112638586237992841972289825406528285150233722903293697612857124993483209618719880260321634545341009857841693943495427648844783480042976117112780382151307585854536972200977444169951031199778952039240370745664636963697848387534744988373455580708500554123108095657887656657597215714788052613708338374891400662861297634069432227526347654713844691861836442947795669320610764753415262767538345846252733214010187580188470114125062800137035330231372339825061243780202837784666740212700031706008897185267654178690990713825788746117847788403693631748800186483787886553830254644573763696682650091330060802019043489817993815941002623560869099977322306053732222249636033549489210143261022092714880010005073386352854013540178489287206032410829509907726573019234777264118488149748068983254771093166618827220802874978198466561968966915846248041311605756025093267513305293303313647555810732937956937923359642557674449535879963793340003938098166732950524174095650825927601637014995130278957555232122273941655241565205161842510464928030770153926797109860766170855233157712968343613565457907328423259325106552306146674496451597406713272336892034793076058314620437417753123514145477487667652976987400899851375312872803786976295123629650320462200323228409587794057924524643508678615632019758725540337106657330386928246520453816088353579689121746112327561520422737445383275906271225279117174447900552519249800323032139140828912892855332891173442017986885444320170432252966040335153266479800431955291871590032543396555105615874009757148537158069801968018730991083634400760974584718452253164142625794790488927760645614373206221681264625306511443757615768512681474183093135458123702333687327617784534155801564576045597477815847366342049320579030601678606164803388224471748929823229796003096217610691379515577184466519459299295131715291679293908422902160142680977366161730417643956336579676829047374560272309946579004066249838625512959658995856323983583957777642305322568535188543304742709606162680013430669581479770826484482496118845687437641733639965260162831098486155569886035486110542032766100252554677208559032157054595895120826934935449423758419973419536065177157863802445953250102350282826055753672627156993800769213766176271587486579420815674528050832165539705705547067954304938758799669691223582668454232903332325412414893065909853343220258150065185503367172956412608209981896068149020099758159680280544401219919362745670795328709160950049649060882076883430243025009261997146243715736187231595438911167264940136705659646630897234791663547303140711722917075906455156187248032819316369187159957429764054483490575881811092302783230709251507986508559982710601146215264023980347388639117564731169993798568086662501739944380757924949878272479279481447646264239235044521261024861979556240761920453502933205136254984028705072362915954877246553310682203717581297443332583957289535582040469331155684411293852608674626038002657606219034949753764206921883043267657419388773305079270496706704492234781635269957153142257277745379026647020802100648696643682350979022661450749147584591769490494342177253905806852566069535420188553790398374603086839477832245179848811813224827606378140838481444543441288340782937492587110879273883005170841151693752863887837645264663441079115054089900367867870686961754005675263072597996265098921269711201867934971060168262051325058100088780187330371512060992155058798256721574803412259514492787210582213190819298821338642376726283767604537892791752137365316712104352886131816141254237131038883518600247871594364535135529279674369093510042531836678755998302005434004948642566738959496935484621220054071614075412759146773791186791002501320775001363974031526785588774477112456544982014282411079198651827025706254876724716347524429215658782839620195798039490905503233115812455523196406915054987674010245828851422723872278576036791709970601983237772035049708668655143037667080756168135369996082086090155101001191691357743200122541208789338932143125440607144873244063436466694094276804170984611357908037246049150831166896038566731251934580834147083425966759807370194488311614715514627573847212962758012918929523026901057253796742811869325727869499739407064828123772449902103353230400719205016627166726524476795191255064355634570654877499364730210584287594024361120493269481582014125988090492414583168391017349901477837357549245775432357942604822213330617319732216541631657959011218733845642294586547045131936402356295046045461302007597799753847695774398160531412455721606429050622306362231557088646205757421562071503513814430357982570411675846333995964207951432893252601805550138563520685811226965757831553534349542471400166139886672234593827845602351058838628066198557051483411931842854712481533464650538194672855643099906214457666850294176174697107866995183813947891318734142916949603376661439956827376902800937138829327089681433041134712284317194062815435143525579947282697890733698421671961812828077484941307948924093113509554494799013661236059012549334560710929971799575943868411923358434656860931399035000114346309937709182531974650024618949298851686096408695782255369552598567674933459117070177348894887214646474092448606390163161427474757142268834598966865699363255717491145083026165848019327285884037303240565537246748076001593879100830375474312597958527231696260526827089751353315589144435550689797640191828147127759272356255533271332484563449475832617028947501584201295427782359277826916213899573562387794258667209949141400570746280080742224559004877675772245490261526654457123035170334125286946653883503263887426561815862865023371080305914674149411352946764813130121205066890021157279320376735108137017389795228612853716366309008561893805792928694703846631144095340627751550603194197698877964899820534324039574294749914381557205398203564859609268833992678787614050811846043832312524519499147072898133665718534881381319941438673870751753272215401086377902108947504702064928138873510110707143803135038074424235173139594031585531008292229104016124269970664886106937238113558085917518158548110182429571767965678932527406081287555330467986025530464070285016253810928261868306182404325647731510642165302407409432210359458149637344536687207679170246213533502805507666796395751499582302116662193189496914771298282910673432542838903424537477898101697981588268419821824677925153065477734194490040082982654530516549944248658071838138049898484990913996450394998909993028358919084545547957169394539891839362090754933239627388467741866421959710709984844643938061926642671724184268076900718685240612796850432225363601643451530520014152058603636551494716799487842570027469819448468175695135640323558672130776036064564665758278766196186755166797156795443732940712932612189099544389998092649932224688984080288033861662531338120586716768963299023225557235531770597335783139287706626430084084831661862981117513827441140361937695868521617943232349280825650790853480516268621238226534351832121036149267804390374422062030553847556080917934676885368540478070878363833843442866108178460654316443878171654960808840144117147705850373055849606762605337622342307557960711521917258409362629664256810804169858696411854912926909716489242364532375883489715220585373125107052041649544469282279452680449703862486469179676852751011008697185049927596359766100509957195003489311912102458562169396506762383479814101962874869336819044440583813349511266774517626425339519458685526545471290985948839410949895725514760190122673087498421827442338362614198974136072982389791011735205640437437658873771185325457160408653234324463530371608613674061206787469858152413626358811850981522270810080214616118451558401204264235606048687646675541871809604721388060814917222478069711030364119300779832061044027466006861401376327531499922987067521316737002221879988612198576672222871470716618319622849128692574158481074751606647368968933951924057009410285463474634385395455677682875533397809097576111534109241297481892164829247773528299909264745282772300258048046012286807605257860629712919475610178617154074834909531798507861722329244930587885831358843310830687454327697278980760264156896803772706484478448163913836470961296579140276713496338673403730842743618835653276944199404799234706765306033719245434159738302872173311182732461189502369507151618193370621284239502810560390817745713261666710420182147256234639776152156734937634898667920435634642414763383371166314997653978641173816127281145562349250976773332706501222825012381417473233564357384369147850095589440727901810075098631187776674666087983113399687215893220543133098749287371508703518842178478205580587227776076913665046773680749819733632579800849516094433540907678803674846978315766545041015225151527176315194655829131087523313171146547011877879918687924760860548181367631508245984876607847713519009617716954296548921804889001451214773560722311904771971715738688151456324279772047435555506933621492621459061906812608917948446863752896024678350201240451620855000486978290717254133050935369852883043561485996087472885166345401673846479993916003433159689263072778907293764610950758886882244223946286901840651963732645425833211149621706426058504593734661744354396484471440622934454548657830549312388036115791915472225775834738947948274479423950786300092738396559067296876368900886496558512013522118983993072620480715047393219387308142758223611915152621419966976402468048703334794669872272589697596408860338406093349306604789402895599974634367320494964933066255363981680251122617659518266726760454397528377051947290518752380354860363393480248314578009605262356599335162355933588108933340697473084865134668883067592948990938104467895614365715690908249855221471974139753074565828880589077504755576949417921882410827052289982659310865748038025396148097534188038341010001256642008790516093344464340837058582756761339033957945865201059967746911498358418681018591416573583564430003430824309929365207694534953523131009236137849084379794628220645659599211838411974946931142873445127085044849489009014333850464992679120136557071539348565894478512626600620962450167987021513295707184628904607899696530704473051177295728868588238830744433344120322539525901523718138428425753892388137998382438652395379898691925674633810818499671336759450592573770373883696359678041292468249601949499773719396001656829445894392927206062711675639925729397326201164136733516363647316053724890009634757135001171445911384713186434175179511483901983056011619718490243848689191460796045550461934097301063655166856421520511495547077122105407741925291419013529109959847358516058395426135702002787056936924533324770514136803479778624883474935650777752375517643900548791728810901492245688998331345620428576278074165766477597990624335038912955396196458598994784219926815065758405486721461357860435205051660511798128728811987437477711434535420769270253277861300378653582297688557714684707022013638338694362414066077266973782860977231921991927353324315437093425099741520167680443360628240912152332449393150403779990919505062683488651199159612258411768894329436287489201803723623233838621364425117612574636157997068040282658564164421647804084838292825003656726062459751273331453855128828890987787745772645727594649765919949391327750006990021915615236361700944593483957856737616826250772240621464477537960011386731482661667717262623110981949751865689336632658547038799275230448055674290552558614788620398518417821599998527181185243097802728963864082013664616308493239351934014896418539173889239220076556055421496023998851143673696980268492823369054074669570354230780567129725569232293741443470049974088202194932490274677987598773491339822292394484905041916228670822362772836761302340420079435541254418240537825658103643979279256357307878189825839261023829258660970809560007113878379765198006572083676693102490546207219636134420057177627498022881945846258436037035683611526061178104342282093067409437939634742433898983651289087744402592760605017271499495570990223956280920151412360581377144417189932258775429939219970468729914854484741167135323112183326313515885542857777910991470270319001813238087223451925294974714269384898873650324729737959520218251227522953339490563765957768468467755871409848130316837538974339336768779636919817930328557667977518968163905458789657139966745466407022477386023836716717723176411466737900809557104813299076608126616836251281545943894914829283453877569881834156440411658592172913536545518844086971402683319402929442297257942119826128948268547203027002793339265265603280652320382940847009255262055010717843736240214367489101093990991961861699678518696763621740814213877553367088133884861651219365996288575355440709265694644309508259282866759781205302773019339378767524248167562277425814531619275112502167121828848768224391397196770599115610540975884171977500544924115391815850998335863373254620822823699891627588383464126202298497674165081317236025677719455771156864254460805410025231006496846371517427281286111211417927935849155729536065667263874812299754106924700639052677183155687423848052804688873417908743826856760209343787311940677254251592563887969491850989955623848461364419784833114088181963830644458936409970312055789048751020563436841853996000082596758275156929762764874201280578637527294614799278492613275796091938159019157371514106955943206061181414809629012387308481547735896096930285469932047725223094482952222306336627680849745566325119998489955536679922716159733907282695565322005526519498117716008298490339689997646001491307144076061501274770138095626504988220539087758200479185313686489839907406793587936999753859832849939091192493663397441193355218784944903729557096858908562461341116675526088811064470861992680881118279489719743011846966096502998535667186680540298486017070470155971361628307950922134925473106462493007798220020323201101510827066336788780136708142135889802237936464369069026674644341316377625577729543426463351725284855391849362298877895909219206809389049385353519586714359475417771620450348940772261064747641490898216801838642641622583237958556761671201936273707420381565486346328332705164078401528045681776684130246658222742521481070462596936160477105098431656055670532310930755652523323610901898455791287338771797191086683647982082555142190360300727274525128298780527574903384096441265321098212530022564432074036097472580412217511178101317027724747600065097612987956341384684197226126074408891202751336687599982115219741450155736156931521401201620524323278965511061139202335792918763134756529234038084483139672650481734254146484733582647735471008675246843977615265047242553480193785726598863772880742897990633703624703283792287715992249297986487410403295179695147923370411691811673082862920927997230404749901417004884944196732057781214806318319608441058511794431571103075179396700531099256457463051987989534779280041614207019658033277650099652064467534576313612968384209129847306695054563123964225976752361021300651607801509929041232518169373761612665211194148831843895502898782601641576722958914704612428016403667313338878988691623044264459117720784612155368593577104195178320925340312475828440519084259115470630782470711582408320586077708672078314031573147185448985536927006671728619635938435498790796365390588918524538660676573954603289165091073210056071600948662091887577869603598793429016338198001385585373214652171355590707487683314363034226281930145129994763879602276537922960510858596558664486106924588644566733010935438690919942491214006045285919484379452484518036491217248078879915859634111082291161891343576196517519655247522991739715698290044233860262595856331818536904914245689208625960379001472673702095757074602031095749279455446495014814272032281875626820026862822663881684450025065343247766379838858640559869849328706409902916179544135739834248700980627764555322537769001362278323366176849531497704536987988066743786687376305773657075675076961362786312470843292387543084104956876557896204089013593361446909838823535277082899964349145424636770204441864989146735021270169106630771300583808782647339723122981164655731962708356821084655566826870195627872063377249123126860765789461080673626811397644121785564924310778975661033956941246555698437300434620971072172947624933599749434265777118052784888083926948464367661593175568255953030057541144143717426184662337112306836553697260004328814674180715884258493828686738417177622826641081458249540153901128758007588649372217187589560914086563543308675250391433617841243033264426697273956153729867004095177070567103605605274333869589626302251149698570407563039394166756623797395029533346918748235392195915106738804706326111738198279865704157438316686808275837875987279686746971037896725113834892883872830771507415907887457315743068524762274035156876078041104239335717148461569692971320231158160313125222256869792599439260126864171244271630444618977651375444506033740070236356128654645731999911526605500185014654768519440479235981193766948135246798910066088147100891446786255008454431037868572413744207654089024357644832369819328396674691839107501499346653836783118849922420120006826734301665093543529240692296779034343373026950056415862267582698884674258872411772193259982018411375827340058549849913996229426753295087584524199352940074791088341214871287029228857301663410251274188275825813601839632399804378720554309138239523630420698837932402569416924152937423751093335227421175300151284139405913475600714842274806707379434530387414769907579127517887834262739768988128609980852223979406450112144288634036436432589613541839865221435120927947120485446848807100755081267056017668891552363486692631326070585786276402407791779496241754246415754828985286566166052431034468641776155005440938985663324295106061866118868248914427477797262857771424856391396873014386661401038483764661761771043852345556019620959726169785382732940891675744795717561083232003892145922771367833223300678847247737287374202407017331268283855283484356611512076931673049010715601608626509565030795824032806151303186380506318079093690602603727721794266104964478163019594865832187569294078641525753356972366056634612203245948515699875599702887476776344501500804284703322033289974618681904552547610326269652205368117990615440178037369822340745280664247268382178572631186104870765046522868928338438048995118231366354559634242776814627700957189935710545566861290440214923872598769760915753628812468138664279771615691284144587327236924303260618390417461303434708658458523059291380599708502468260187706624456533944886981629141652457737693146765825177106623770271247133864415924312899736627964526297625291151838542893115438878405573075448003616689737376433456127237911248925467955677205300413173423978584806934992118885690235797207599208449960215039207608673988861357551378740921244708316914111590041069991324318751988920429361854977988401966109830160419890184589150634239752461366280478969697520650312187617056721562254664148097322790165581892116598713409399030627523232372695349360193062189922853303565662520667216236927927839608840219979126885433419118619127863872221976115993267295889087196858137542644222178771551806077019149732439909803524688906102109727678154775582132701920572458942396904755024160760266319444976679943856863740329037167088023923561297807934464889379187294470626769789605816537627997178556846989552159373684163503190426396320340778138693720842018408486319993923756245003692794798568149375566858930688821514854716007209469999538858761178580608212003150563868162775672056392393187059907111155935065762084073326620301613671856181496755841102863356560249609832194615090584448811528380450358874112432930565784265115473360521915636235041718565549865757176885787462146453879513584451762997287110151573202932973630160014730222657807484119889569130663476880247920386174965856710974703798427587851461876470951759255409635342411619298336337751660566435967508713407805936114188367355773229833364767458015706079849382715001854386111283001704030155255207010385061956155852198241837449637801018915642880666157161224662189755954889424321201774400128421085583814031751524156414225844986320784335655468006939065136564980335689257499184489618307587579285879909091432446289018602238624313129737473823016776167510675885628541830444137189855671777209851014912838008370729817841353918910927196373986562972081800985985340291447758894603182359272336282820369058020837769284208574877988859375321242010715885835728879615195591637540407756863519353878924346083134614380052797152050139910909248450061068462432301942571712653101908102586039810866853074500033184523255134018448075047687962482528333601950805322000658389705305045599803682374472160799924766733928971737927537485197855456842687297166467559855869683970345811370504294199550005792567562746960494027054500260618916716266032991956098136141909195029176836978835809222886279785097747573685628671793498110816086009420523006303893293382604598492550973680602715667869596072157100478792343197799782791806274625506656413999529696886932536386948967044965015290805851500733080814850660608566789758141002655935680035977554078477848137247241449657185563538633318508186146971861901587949689264957221603267231488206049823610052453360744680613059722459465416838383354556372568233161159017097781277607278953334256510990133965906113614331682309321549088532937738289159698874177151331046361529563378403316930981868346530281498827205447020271258270485676466288590628795126850335513725061310889783248848421633085160641379275003394586598934963127235966798253440700386632360488604837025925576443682939464777492407646600595945492724159231343611398990511408035442837544722909142424734511831734643531618365116461538221882415695359136659625469610075630250417710331664087226238900217978612782549343769605798515187103734127377204804649360755320992878679373387275448056432175793193120827768932249949833607323095547947471609894775957770280066372071111437703218084082992264342120844641009173444946226492805745116842780614506601695694844677421735825409468829291870487131160292948528898676702575998916872183889306779521281299925884249617931594350223424548602510358379708786121401681379164748602270009840801309531231542235826373568459368084755720020347629803082945661629493551526750516795714468781200191188201362226363413311102447097451313649584945984708933731566577373709550294759601709943057127514959274945743301315210389363548649042680818855076939483892355942488089466730026336769099515609505892536790740128524855087872368170476583542798195692563179922209568284860298272449616453690517191784428077204258496903084984306909344392071252585764226733892172658966222132805732894757100178323301093600262431041681078051130152899868826070437504568154637194951242163378835078391330296392631715141660644772739036908148218847863770238593266101161083239603336006819951536887571780067277777357682246280449376680064197574379650648094564349130334936161841424734412424988029347626049999246456075920258071777542129181560984194466726825367747744657090620972855839854436353072615016406080617711095950174457015673520033042719633023128134756797017298691063754425126892468444685093165565618981936233141734054745369741537663092525495532847723307635532781913120471131581367843424197670886585193443084386037046301081887838846848339806531988512263240127567978484568741452860394890367835885489043055761103914505652955633677369030398514358559840067124330487387056725844762025686400489277314563885064597361128233496525379634216893629573252050272557360249953488405957599352456480132677951075615152479614818959477364813319024600140130683310911059748670148975685197670286884463796564754989558023601711528522968261198925870499716313697419003730206782332472967915002227082067493740745312112962652666554564797440515483007612686053268005566841956195434988593499430865610311557080201940005814808805232630692360348717312288362423157129474703613868916073030473179055613255355428024208198423436191419198921887615115086452633519287884394721619923140544722998348532606389117328406249769782873199650437770055437169758796526954308416880554798481909303859263809067626945074669711587409474063680737317460979923814016762913600652269978393945118918261843979455802067579182486002394819459332841736027018858709439284869444189103861380538369956665003131554287569809790501587614094439512121268271333951565176755351685350724374709844109862887679790970940407465720496466978813976244258798416518272187426915657439846729666692157641272738733566053344016429794334132314486487848912640946767860114908401472834766712691491342565022634785575206934455708898457257914876473164689682104599318034389529989383787463528434214870372249277898335371903118845798862346670934274126158221428555401871780440051923152022461039649102166339304407990631548236948545234654658819135545341913442333699480309206128141188153743581156621243387542823673925252023724913014625729504206449282059871092902491043816280971494763604375926672823721156400795254440801868147913752938083776574727554777194699303457788248403140224026254908200286759588791489279600382625312762247008637782763801249790142065173901063172165385510608925910518236299058869214367344587144177317788187070057500166012073203571862489042861795244250914008518567107307712843637808217675327923453263809353618873083897626757433182199539026632946440055877865793649849535274506468743671695993390446567857947390045656012407852204199130817922219911384059360734338368094825649291822991230064950472297954980983324695801656081230562273700334225704659262326129838961721052740718110623832654444506726869553067343073902081838122823813715471094259302494790096982915196561480574396459937527382935592752675225015379495084191123819960279575981138398256750115734993722040778595423299432179018291528139233154802914406614778246069458798227851808470014701817992469703934814876400809752205256012801757311921714486046228594476952223964208145380433901961726117151065734968881202530470097370730743389204489475854997631365000413474554715510958356540078337838895148933811003376168813498009406993101075359568929863900215020478544717776214845228407176315276261338115689720449511159949057077918549664615591790008934586720707362543577285684607572308992501454803536005283684700188378435845915884435029927673771614852140112210107745767440824315025904890116906537610791043660754885645772164543454984519489030113282203004874910659887850066823357058031651504933403168560564160732399988763086541820209337012588724152330734800181907249334508466209004856572186841667704959453063971970096133246802280268851175159285635902998889568163612013337546292157422206765762014404104342932194926453524469228972528731775842097334687947299619814831864351360206973440660280639428956561492474414852135175574797221585269389751581102582792397007566221157687365642587211222015036074666896896931648684093325140806953601707199587410261078218651484179226784610063951503763637643656817103870601347621889869786925968449942271832304017084846513015992920968034504227984007972310127233324907908574070857516730693142240502071905833120920591324897146023979087190814918967076022611140565009061208700057830688644810715560341334477211323152887992656807043882307812403412897682037955732251356898680246203966276746282501235037482798936203996059125852089347115272028907607094371514610754749121933226695404175884000547690731072751860038018879537806047913902948066152073217089291166377891534703476462138928337208381500156828443569080684809754342870897772170044347565440117554691512904891093230338184638758036259429682701423575337585475047770588385880468788513152206696321335920121061571193370296563279887895042497864452134669697833610223091407774543249646477278944973069101665555874697563763402999939880577356539750285622203629227207978792636448272599535519037274462726322033419967524905163103877616202872529229881569134845674296450061546828895709872867528568345493841117354312637910453336924134531803168059736179380717611123914141910049077043843259752319702647348225501947330115342503115653149700882357173969447456935234869969065725050944681497575571314812417096595994362762968487833172698569495370631241435123103591995479655479346184321126188975810729172973391164845203307544980989822301855133573928642185813647271294090332304662654342687856392177138134166056065746081154922312347411201071091745401578406039394952927470069922391487563108692921504627316553006399157393669180461586792492793302758157755788472159669830686309777711929191520450373100918816611884617340284367502888798631930767243130395132656938144514223698925360176673624355417744133879576272152742839656509105153003736871256026093808421587805452206507393271445061789062793549927378531689885322284679753165302947971191945890232912771408731279303991076045182266204402499763079417325534185377937796240247251170360930623720585011988712575786223890618836389227195592374686290232140771044660338518853983120165620459200945307989825415044508691457023739083287595911336468872515282617395396336666858249463450963426700184600740548257309282321466216873231715206863146022396615282478373305822946311551225029584309332285128851633517629212174452299624774666777130512201030230993644847368420819898663631721023637106362967695997756404059191035935338178438075534898624885084714306126474890186614285040173796664844718932631099753808959156421621307697263161783031812407766730436843991262184671957678927514655049724271936533787891122135209574083809443415882123996512475122492772170730250244279685736197139710741307746613473615961483864653968795410630264061382582519477118231201093523797867804423064912259847153383653892629283209850577742109361835939339934247920418509034622250663340990299731591469258601985017813738072996262342651951931653409019299885125592807836927950397897728601002287360270033654549260453644844616840348890883421705010717311831919924800391429453935953355313098751807335311507194420807892588523493807260082319564004100469059723015578051258853739381931071644186193124089663751010319632893457840060860501014462567822596032044499832505495738832205280699426777920982631724067574728112649008440488627566268489315081245806736947860822602952333627872759720280859760525437321960116257660346760495943529181796014772207576841835672266095347665506171348370106115466409558718293346274325252477834164345159817099443042977047766148776791065404383863626689614193944318928511295937297036714128130173564539301965861834854044528550833926403115896739328642706938964190664067615995329584506073072779981919937389510184858244531437887779469211310676728649132542105919388271162308479522443088167865081130480119563760801231598432553133845109501040092718920950366001974044724975835527447844049225475801597271980798169511567373501405970021087088366717038121757710117460438290478977704047072737947131412870927382239566909976663251951172782897975104884611661897102375851538516573815285595779224779259598639438928808378120944528149363401064240138241801648037707376759547772732020781177899297321529969848808463593350398789660186751979053855543192687315325182504647185892602437421958424172709367852366234703549040686673146532980068854686965268153783462502696924338636425803996757959837617384073553869060577779266088772677233451545483577150749634798243975913176859817450466455135799807705991401960381215350673028530471860475720410321978440393808486551652597766614872761990600701551323649414924045225178045323587062261962085972523737655994572423053898332052432869835600325687108819409808529004740916128301721814267627868267056585760830056829439908875295600821633404322613173158750978602294591285665408577222108009351028102242194928582514975006845407324273258012875186116889064645271329847447240769257240137548989534918411026625631616741807335724157138826010810240766220979580765126246142036105000056042884537220227804751334370563929891170290599332326495525362366099226321982432622607474899736901553459678651817442840657037908750203370813605033794016923482362243314522205910620362531299097154939720856203828895906311388372061945193943291285680611586815063470857397593327305878883326738880156612756331508445411419390677193951796127535699522812702521860161090887234196896648655260097683158416066887502924873581725269663993615969231044926801770001915005567345477558025126017636038125612113522207450272632267430505069358016401631992169533700023353642486193078635885081952843626471880872974760944020108195303937283600966049524819314117152359945785490372253507882504114790328088854659896461181875677612287142628466511735474976018072430202638978391253881503662434234494418351427910288827232451947143930932385844019456244095716586721040736744109725350129420880168103982967587164561355305460678657796653448224329316486270891899452086220430586350666788655394770008903638098981148426278988843607514179625301165886650412092480038158065955023256199252749761247883330979397883664865050645074540794627635887919219963809584642367565888819837084162405462425190531912597533999776808295757254384330536234252716832184176580405399993283319495285473643237608908170201147252076283225418899973076346574347309439591088626137890900724053367243162618144018504685330174945957387705495105109827156356990055050887742935144683518367865616204897820316194127161450789620073633192485692783233437048815202271545657160192143362074152394716961155835670821554725966297885499722940045235563239449210591427580401208360220867889882301782743663547471666681570820700099499970263582366916661969636076215973684901929483574664024984968278390752709537605684956638969068729651646641080549815994522532954827779370997095935169545607890909242217348251431079586303573780046106850733609436395900418639204385754873514475092681269229652921370645734623082454598634725365525107998880714613074615164073211035563563539529696833438149722476474320122608307057857691615723747381733082302684558776269178152450835076614240555320919981922608718284333502640723446612047535255231608203061749729204365923400839143312966054419743562806068905407713913345578500555656785208336519019922832523759734267094142500476367153939017673316753829898385348192276115182624935586386895718818844677301928186546934603368153409777010477282253337118579954736824681179261540706457952271611038854949938768824835763755665972708488403971767994521931104301768611546242447419342530528903748469820875503074879675865205908161600699099888273319564720181492043776953852978088071750888139659089583573838305667671926539692241963982304512585867294405552834089462478000983139470321873834628372348650559244483490672853858729289923450541220100957591299573777342915175256731837581337668715216180874726223414055643805742582661347684146225450769005584482720525161569583197937453125741626254801109672898523583305049840992290608725175241447724176174374133667295517609000679403152864666736752323124191278630951789781852577849406436827868336081346988975493379864650090102672897784446252145688374511774204188362168965331368314466054358672374236098588750672763230562058403103083019142965567083693760094260822365247425733876914347339110165958701769362552907926174224012855433263133738321792223637460074248172019041442081134561072726472150130962934338458313193701770215689880743801392910018535493935368599987997483425243071595547288511502053600101908281065875230355970466387057515575500954134258146179923923020002285723550967272326683091691735668963703491476346147096072796717410668609800650999028789634050342678496994499352520826858860341360294889884230803304001392244103880261985415763030697534325838358565500938073732002271737023329475204622372817359379427833320617941579895815982223160318699577658705651170859552931283946060775820269573192903962485568745863690083616414868838726767311367088667551411994428940485266411985591302599991276652795675228675159146036310045494707253774193086991409894752747913212863298878513846193492196633715520153629293612944250568002541323715360020589141194734848022243509281983563913134928751393881264845683304313600867374780739426905887004946872703959058256594109455724404766642865528370539008610748977925924437375175849100516989654302789155012108430872132084289187888729570409855858854870279248641505247780667595503915346847108902555413245787184107827415407442413952270257874279926213042390547596623542362659166309631814051259675572371075392519509083102039164647280680552651161872546328115910630608050830407707259658524687013391736881244543172027445264822964370832812364500740735422176446199930383589577897982424219704784767594916493577885623878364017403995181488285539177375615668762370319123268269584763635895057381576182842786258006325267214267833006874732168837423923786509979153314669169448999056670418849430316044996440598875688032020802854821322787147697187460751167350242818128251938003737404761715264177346787051201069323673413092341213945620592026475508952948565848559008752185230605802636750873913752765589629723411548671489931370091219002032937802798532168923407926617404692586406392140504844432622875392450978166544828514038805502206037101758373437554050446768874644503756205414366341663412421576859268861667163795850121678479764731518763468373823900451159120010798918841622619651060676639054934632041720056017362128946350012076881670638443081256618522877772689766721210128890875377122907956327104633647669929951919778288191657628845388778901141088451331053235844549264105288125270057079350441149024782879185680831991454107063649857830209780058331648814227948749794743994464904286578946397002368792337240236565306907007219411645224206313610372575025880517010173684925837708203051872901538172679121637485006481685586270161296311761123106062550847597668153396239399236311652975640155812644761292336045668694864455077743475358767676683006331660442491233664084503476474920937243557649952147628944468553697989486225843958890780433961266076722116648988260262663449979608696302257114109652093577324016568275182483680877174226998147174580605606480475267254430025831338146023426093722031299988390743414070741758562051918291865902625343212847944172350676977859138697815310969862017382836410631182796927432102029265603027647298039719665987426504570856753448256445673329127902577118010761224570660500346406946461331518188195380117475149264372823927132135863194850032147527837826881138416570394540095003869409343951731243378133133818471580878560890003861429604449024886630983209764207940042738073282912460315114661579852465543959348369262982884599389435463230573416205347133415137014674273429617965704566167745222552023716580420993080513863158999342509116256943485228925623478030080347933162976556905356881155969763783184632617811439401020985761512324699084983413624274041469458915966737152219331559335811482763759572420536934895905927044985551099061625451106055823251451418257281517159286985825000573144022598419006498072946952796207723564525165011289920317978105373477361093466475357062774597614095475195130181752482138120240965113658750222760653624010709273236124929028412387908055183793553598695761655091086669846225644715240901976284644663945855637583484716219320125145121318349039732255033004218586001722996727153177831168565391378223227162409591917753670895102061713022927110613406208020082793486802282796196501336591350080901799218634846434585158109694967220457114296835324215182936790119621052336367154220689797837055417229584688914925218966556055702985595982786051611407777868311449415472044550807875061320882372063731652276945046172259174190955633651042907306529622399424660961809402235122678015407301297470820463476963693889184039935510519600599174292748136268689582195753282920820741474513289452306082380924074297936306526321211722036177187603667379196758181910398076183737595581027981455963120299317773300736518706752171411426755372612788945495466652433536374235699669407872506797238976184734248260330083110152856182180252002086866221599653787823459369771560924393221794056248602248523676013702427670066519612637860049891547774193872947798258554510144848150611637392486542632996570368956109110598511235069357809278536247920646963821338001678444856240028793684259208744389086015162465564662934766669238476737402148817234716257002516115024440466322382268287977022082379893382624806819881595906316581735595012437159189938630726462358741904790899866744927271347328214595141625367210188334989499028925367153428300813124779371356308277106137295205906250981845873191112686753951781502527671748944831050871105773011221472623017055503723592273045415384224249613169991825214194999163219093774430977992553079733747339252368061739352493797680593952820535736938939759220479449770984648217246861283207107595896741509665490292571021889705086146302688733714241407825186520659500661739370529187264691639001183317499182167194170761243300827160462001572898711983335150277927298355736172756049397537537035528368462807832669114099240526547805464623277547708825811807537387178234771352746000927946616604764265265461778854054463973226460934289593445741552286651433905719378635524255175262866287861899240518962339502057827258829703687719319265167359199313142722342869217375765548554568122549668668312367285187201787384855786887217679356502580390795383929340806379097286474952530692963078698118674000844060242037932310509927323625102177047183969704562045445663849422698538899679995932537528520230221569177170531845735491526714734894071980559692434975751591456765269300733284941953344816886550536712900509788479127317344412598504329953241200243359234555083481360682392917168211547898216355122956728778463663288108429030716798873207517515363789681325765746735685973712178247954367097614100253243157222750083086498998516749076050806338420707198743391141801556487841035482593455406032506082169413677927607316828091284537680925315278517127981214051267806989814881246696874766881446804179705676245086489595208940917988136195979938190675707314749844529241553494573598040471883408563162785497092624506991952750613869108562705032066913010703629080514401188095487048795376472205610503363313434932695090393338351211071068178206225188389037929519391206324196269079010840887534382949279481195058518828569469624799529915226882859958881099459823042270867689166769255626073432590560806289701941726347104996859259441020551214688353620974483440163425763983029838740897344656516902128781324310094149909761913235592961299776652609084299864408891521518021132469148078155843589544276090915802525195250765896201533343226328742420517392827910774837739313986957484422099896025611044190675586424378688337445479678803829425312053284310185628208832137800196347625555876271619951523444873358421560577625965120597040059201017078696784891892508255508509029748355952178738014085135114779649578181779121626680992459137077584577691799858989830495834002127029011607785000781197802960188717867397984139557615089741509454275991707540236527982717881712127667851220485090131048016564018023890080439582043088994859132700104798395064125384019500720506473642735116871624419878141011735600803743054717097442449166411712397785798918282643512706126531005011059196683047188806404968704532794433420166412236729185613451784728368227996781197115381091381385289801840241724673527631039844031704830120292050910810813709928060677692049279817920215582031389140393453138810974899493022981305673834534325661988428923668012087319914392193535282972721201751284129606505239884637873468451601087509593116696823064792431045413815064595322125529119869440563757238901905554251222627782844212652368587042403391344536521147965507389384033281165812988857357320868813535086877017950967323985879338209830816551077515364450596387124386855808236570354970037796178655992253259838003654578307140395908838035537275989093696524695481997579033391750340604053867750091429751648407028021500661652016900698788228526871744049250395199525048675918735622482861579544133004639675734559656847953266558415059350566414594459807103468482104508803737394970610786178673937800732584220448216631141934011254903747777398096022635126697109406688952852177670066328454268265924379551484776971964879371243148841339597062094160403676491314082658085433906317105375634944891152295203806468386981711163351839009691220241764654858255383311250591101043460670689866629677989536151104834557440538343796124860087594972777889399743682877090005352367366121775093409202745055148470911164866259249115729623590000732381460639705502481397286097470403290042607488352726720249746074232290655341965698468884966888804522993790515162777037199003424844535921279306685448207102017960450740261812273646053996324436344714355870032206395717502198657483243231829630839504762903036203136027251317906155997923635868255752530188078006744503459110645143538582725700157955618112880214726329152786944901394873261013555935682578416807878911954005861958397000010698990343270568939243923967354467244548893369730043162568860846461637365515905682061852865821895314124330600505514135636791086706211357303287681901820773039481204088815453679462335574710529635721668055162355092298610200148217954927285837464914294835593848032372440584951432699971279994703348849757033393202518054878315575769129481051548542558364184607643817859533780412096162327783888737960734370352413671658843992979771544337277364082512000267098382055078889778946442870068314844918700553600261474794505823820672781391486982982501590324551526842197460869118341717149717366257513977800064964247898293876822091129025742341317537730727833234753376449218521026506150895105323444074742198785353389229299450763334688606824936888245869123793088365647481587253026140041664943173524384117617513080627176015476534522571854359652787166273356608466455033570796299119919450675665682514300563003956770001447089053363561113835422803221349278938051572578535126220597008138072751192574799866353983325827460901322771626520586567552576047355531962293699811766194794590639029564797867037441558695495396305673490974880485382347566200920163965524625868798788964097643800544346160041334908127315774240245580331974100854451704090420350987128591452077871701941145945591129401610973992457843024154191355732997060005355585092240973422668490360148674731713370130678374268424567540707829421466558699396908227863064982539597591242593843784124426347280802528334578339850474532030766395319190409289869364914248111706592933243390581900354178069400119212714842066594146805313073400018430101930762126659112325235864047134688760519495133389420784914257864988281088085825320930896699016527752978542092103499837136213455484608988064385736742946614067632354121948737715230338031204707265317907422392001460112720512668975320009619500932104956149985028388040496970890948705604824864828009146492120842948146983054993331906980981172442073994754323391868750589100578797405232189068229243838321570117570930363312884562047294325266171535681194345878734199942063895618099619261356194592623076534185732714401609105163821183621439091125358219623638902681794321256770369154707349146796629222422044412689354701674211523361670787651154476575164317052321703729345319904046735263835558273574973559096436497226698911345455409950995809070207138459589891193825581738214023885737392539347237133976901440235396640421068795693450840443115712258214428887354401404257410885432338742301468992446113124217767063336702129033214063068410858956155273909045654827703773559923244686394137975625756313947600373313529925082725898503650095373572974922329117596535212425950622576432583988013213658600584585967411470214101132046864994133588726914618641832089273548535077857827051000931922804236498490355731955205470965645817459814439584223978348134979173707598079800597526559775124055735731427908698465643913454557285923186713183051158850201785074252906857684791246215057321507784320205136542966902693449666569136305805917250266269150673671452099104814488819827038660793064544875533528759219773755766085800255999776672226541774877865233137562233893450464791842787765607105836877225457429909335779874485380950446414697693397394479672895426902433878672823683961404293328590938972320363511979274500663657400379412841419408185489901067435910396854016229156039074156665965114752725703311856909725888313693087494086391041355902457064431302009772940508383117849730029340283284423377943188998569470317372056495218368779781224472402288776480807848588969627162443728578068337145699701428827462695254681340527253098667509438648999018704472350416569901194476558231972048383337280638746581523833290090423098513485637725698575591945598757400739313313768067112832934671371453600273532817345394395097964328596361507408423176484225697658819520934052592480043716201505315489988458800134157751857271157251871039628878495208946809225818774353816474694752746190124826590907948282261003799540648833184546550475343042777846028367391522399143418975934345050291506369784558957416190961894001217488978494242811519016604418747808559988163729425240889282948476201762660369287895750711778914236247755718138138712282065047529392111937935492820249947886659972388484357311704258629533389726104097109551230129770895359326966957152707421049052249743858012689527532550433891034710721522661442426428248187375673120715403407739521301778218525194202168182845115718569043931338613116473936249165739370576684727616660048916734541754371482941350927144598874886035371466142569935281876038953642902773574896256436194301207718789548163234516248200442575309374845775300206225380112650427663019175013442942876889963986915458934066023810301037786187808353563261554909691554062366097880797619583542853431120820194185549580626096298350004738069220301375339792453674620673879542219179896312352031036382793507090824248645658628055014261738641192845740722986248323742823411411858672800622817971402479751936063141339793950629407335391448235314679381879184002097174016582205944323727540623744744994546037951017452028706323726931082793528991003983757156576952389377342680587753474491772803021069367077026423299616933016999993666257584098164743181679902707343111591423087099797683815806366613219518824364988403002614104973926931309334083738438951392587068140276863027528909802623544714190366834085587990829958977774661621517613002368898060451226996373940535998889823611286218536124057293992501474483624756287620005849494595047458164884958435634715707620471131281016874070044666423626705949626910335660766010370804482256173739622924021947787778795965888682123355909557282790641074795059474207348880722848474801897299456285325479993682920100553578417040450540605468255389365098182369011604334906356417823261130407943932787740742203328125463527136689168357026120524892335272780873796733027471460907259164598038664568531371814512506281063812714455436822984695838650102103057899424706415491872392763458895662982661528937915977622776474141869870950361340796548371666450984037532346272518528908061808714764022244320291501464110102527896893330256021801332444565175236918627355141226899495708987243581323490253557920545368718656577414929589570837512177634640722295506349676551949382762009957047343749908657166945999844695460927367663333907126673898783054995413307883457234222933535829054616720642371227475086516220298857682860728679155957455164928283970709334011533684081912856520866478440423949477975526367543842239751641799370134278983563176944473557321672363758787740966271499313768150094414267161927145791879916843766362686564697049236050608991823145627953710381043345056132157662404623904999953102952988283535200849188358899373191093458856888126206611124370840203608462846869122692287838572443473455873587699729740752782211649899756228523996256899971543242120760919091530725402863014271438491095289948416673763178875466514718227996211560610537557109777337349795703836528243910946778897907204866916415610819334610448195325124986296643798444079043122913720701646720562594019312069505233710075992859336093506887370178009861819598438300666641610792209730748164800259933686486433774963464170179944392133095784586266977263680921287273302366676294626297820772365690800470202761711169833526308879428106080259972786313997632808699004156145226439051006746858963726968539771399473025418348646312961084700623825898406064535161147644346856499952044240843868506749550154555005142025282185425875248709143729311444663383762329809350132852477659023123088170049530147625376010916267043086798167226162660698414129905958204616724870543232994916201149845601866291094532241345664580408793844535795053477167760419078915047149651868871670985190530216957716616179673626026955402144808944630218853846409585256801772956877739800002811044095859730646260639927727636123843416472961805852958947542649666261849260989956305436532139902119071212990155879239961901184536751353775770587631252517944230111116957552214366117067517585369290062486320481446971366283992667400735252748830034735069823054634726846426620133886684448182131921185204396217980464315085597164603167593810455589872765759795039178260832114717667343114717201499644666080584868243032519480225990797890524627466697194623061238223212907670409137973068604149009963841434863771990037880034842696381823273685856394956035371348917714556584278162424202127877743521859290189761437572190931978572184823715792694200627523011373566160397076992654247977527879827588557946042365937630316270650288001203851636695033261858973212799566219980248104245353899016675789195959046252232250941639378329523182161797474653361571508713004444224126443118067909704734319953322786080530829022193155377847734767155401772364214220242622085039229402645058294002298298925249493497154455286847503283782402034854444825127665342628243451397697903922207931102850000322344899866148976939685152493991523339639504783947145511648932539173932996846352272289489660005912404230221450125915681217721445717625719697598346361907673864996373631496115171913831032147381888286440801733681793479865093234614124898440830034602010122337221162186488234001342418973853489243207321063041513492140851505588382333634804871276640384252297580472321880970531153000491415713813560535115142883196593633436780815780688814547451129229320879466878067116340585600553747525191503008436537256622067965604514815961953643716685153658658491300716782915591819442066992365380250428358423179269626145884933135262999900196833078672345737638724197181965152297194908176629349538504511373433349071874053463657252403498475586192038120265746067592543816492370254919866236073456335226228107634071228471025443450910816196314955982277235560750238644758954264563314547643561002684832224873728628641780488556826513073196009477902195709720974870027897300344407968076148808783130978898820733048955541290744826873181799078197151549546920103596758470417982928670516584801609609574126497943346484427548068961919732541351589162516608309998098732055741810398863982687970424865270988918974810982372105584779709812467408622343410022946812702871846052198139097648086921708530692299390126195790287856013893719131169226748613100088319236878329825789420974493257441234403053992600434750100219143320768522323943264271271320327355278038591127330418829774100965690741531151956985420045123880529654860407853746412175792903504453348626713844821118635320104984676627581516508069417110503837740276209621100517038649889247265103199552728106861852707849715944677007509448092068443906647373480017888150659063521554454790468701094880118512533956677152931174302830897012401375457471352689287858304026525327588360969553616524626828699450942313693758337137091896246257124841184799293779193054719975013510961508509163098669476996614165310121174636537909954914892507011213910651441767386962951174197031494754554027067035323490222617077083926760876622653520504099325141188224154281876421286783536288950774320607826567785243825152794468027362869366623010468022213316432135446339005225897390251100819170975399443427549437869887136118607394160783923915294171671583574016176197425726100535156490435841706000580171667491354188199922625524699729612607880837215760132828734243206698018249273598405685431280911662637656120632439490044414987308147787724590381159428426887919692113480955578130458500269510096526313440121992557676010008156001530421195423337047366442825165621906656618192834071207994448910169300850342804302563132983889084192561812582694693158972519039314504942326132260249198075232314573283183011325298228235193329964203588150192517818785205117054355345247375438276250392038125028603271914236616723639046972742285083725081945697764925562532848747651393193538054988640793646089955893200590771276731917647722586005299339284413521098856815645679534983973569037985324419805074478280060591262435122935903675410298732697377200135131869859359557164263782248404149949659055189826258468837924836670597489407557266079447612262416072189226401150927137218322681445592219437427349862533185591678294064932214907875193181623118922561744168180261619000387092414549529805500700665527304873110095720529678065043737751120571394461003567510665921560943308284313479269399238042258362491618163662068566519454939519196503913290037765255167874293279960242857788126387920649716745751621817626406332114478519877656329662337141221171648723766000948824101340797922410000442628609567324075772678447745038569043326440100340196730926669596504988213969114180373127994093596116446487223513032324033915825384896614926966187271717861664236867375316296589488176508646239766445715369923198585773528068226177212168435519929637810578179572511668613411697566231794737197077816120269863659134419880490060284602771038297023513529358458053670172965583303820967127834543484755750270488669393691362772833115745624903742896493505706684616993212129395106023835168677504644876383658465832285705136946165517583312664850515536883347275942762402373730846658790880286172293230948661121536042529943576226377841664581926833796957336144735710379369167260190667155917927856050003146895078608554618709516879310787159884162184237802753084277323492717920854709974349894411591964408396299328009393736961809444799358919561799502209889660811982525828134786227972157217049610863996455883593646579895009144245298268593869868185252107215089833245223882905145801958231323986981517051683661912931757985128840676207821874319784868100452001110749527499946213082146100953766798672351024501083654081861062077924864106796008519352740828801995399404850469444556920894044777940980360307456058031785013973911145392750998607745747239029520376783418910717642825177164419762293546808454192404131089029590370844111314031328794969134227420604788267900109437981987517964582681410176291983774665348564123001054293117902613761495281546986049892313600219945960386415039449643117214131741989073101699989058441017575348460033021228058164376579773898832545010490925188868620209711526241196472495929344969460463359250754791440489981546534869144783240657281988057278769763770428432740285793220741051260459893153686825374679695875090276732110148352603350377869287531344291618011415589042264134156921753883482049035251365618111966702784272694149120860826208534020164860858606011450853337262633159998946910997239706390143634983456741053623273397157799822767531238524718510556238588113864042008148908642903095875836421560049132022634353758477884833437280725852701742710279334039836928343557687910348900534042567909334116841805358045508738524457817364538446241401889805797658034855044599415449280972621919939008626984868357931550298969622065566217649993908774327128202494408149008433336212232575855469986132095064015346660684421287729594104499171048367900317576051849194215917773291680445561554349423658297402336575642117636101597350711347871602398233724467870792461093616531333625133751450145310639401378068573158716317985166816881807000649682145316023405704832031947544731144764706040481162648512454572146323393945410937696272566589781737287672436081044398004322403292714698290548716209592252736629735198277844596366535926998156329909207439348618119721757473635172495071722980499724660122609030122842580983796085710891445938891703468664990307969462939602669922910452213780833801968486158197212774305749982437442640777289239794309083444122268435351596806986383924744903465547527160279485375009145153402308708907224351248105904784798062741717599879665267312972632404246763773822431982410706375626107522297552411475695643424911265314647433796131640392250169256128158770035132406551140258895602123842159242772740939204908697364607951401452783296472322585966349919318373592361123864102858748352922598446385682987843633278289402767651903537364232995850187639698676771337917293379745632123380413410200729145871570932170760218577729512731253734114749250496794527380562638304726343776392323215959861530624415623883086554164180718223344105268057659500220138166472971776327116225169535029738082919508890167019099216508248529626655786040768200491638866560176497892587507091320482443563322818902743134924461111370422702617568532107459887087089507293589947929993353999995967557721987123073577207424146647670118616656386451965538036409485100368226292744122235532864273835266081268893864783713413595012753077959793030669381338842287039665484545423657048712258443806097055645602891776132122058791995472017465783831903125492513777493880165712842831228100615822066963071133870669886582203889643895569773903513069702020239466098863221159347060714089866399278917186507719044740889470124468649422260401165862427623603694115955633163787901032626061650033365892856090917532904492097875562061907506453542739831907347122906262556718698675527339224775401812228117883242489823429303284417045531528920648604444048147740846054908897517104105277626245017730948905008419315392224723996541259466071213539604716921120167680138367294984233757505102334107577783224636231856665388115597758369187171554536645073509703095848936688743160857821749281024923781317925328950473737368203109649747097405395558730092560432095703355752260516893537392251015350225175262326785042763630793261388677866728001840943972600260848165855308844804616836024538849480627028446035558200721936333507763070659717311341916828540377887385927050705392396165647883349577640512713984864614974735600337018455018379019519148613402364888448712439139533373086399579626307192451750367213412969707240170181787958428546892199730033428087629392973508806733838187634464672884157994889361666208860682768006184377870319879019558448393493139976747656820431232450077853747300127760506085624268326122747351529406768616800192004414701203104062249086241595360418235454107072478761761079694117390843600392323016137314481831126124589533745294847617659007251185673070962135170671484045789621439537463079854729321609201755191484207906867156225497550027981980650633868962163686665069384895753004433832352110412251537580576502817522777568857084421531461912363313631262057302140620897471272970165011542212180539241011764206426758618060568704798232884154030349995909996560528315324666782978371962855459013156926331082505729050319618638502212468639214466527448155330957456311792628819170512235154236117350204234212326441526128042667291822314995485338087929989540107523520776296177756804249650626879432453082891754948740083316907062814643093540825133733224330958664851238349244882180764295224063946673519784542027944099616575013889271528930190179807397550193150129855375773869256685021870386731760246382188874304991470863584057177247706001676965690170091183345797809122817032003764757058401086706023154148356879114628374282373997038771035854149158017989582521487506843330188370384773086610855018931754417223161865118306552695972395470743792228832419658549012221759224638938629632146237137717769952116574164887017942035427241216205051349660922444231667488926408257453067442508280044735239803844611014679584389813953171047958105102658631809059363536477541025950625425091943530192674376499298694936574025779680749969249508441516031728854755808387548784578040233028459299723037041963269402657240476487431860000288289586402123918879308987458767711724907436670887555871542278908036788656659457999626820304567597851001083407532952971157273697203525196515851806504462282654143289146439950769621108062135220419980385318627861281119343110798645525502931714539060019155672541353086744736867432911059593073757710165914063454612323638907949098975801601057502745766926977598437700980299362847665387007297050202065231551130906474232252273461348000482437125854853288636015998553615013131317325556523909395082353866617795950356938321861480374504551661740634209580681188107319107557333510253399870271389895378787621618847792571499946830663226098319960989812039023414169243551041188589023339762632037590114191570562154903146940671458978066763999521901991001089481880009417748455820838980210804409460214241707083063564884674245194288422167403423961229509452705007935194538748254179044075313292145490740356935708679594009006567507002231671836918550885308824450483383375810606820178074104409272383507024878173138543503163111506979496510098558890415967224937085114815807671911904112738336743028433894887893190301929498579413280149109667802275084718053216694109750523506391208640518002721574009021212798980654839547446139998267895456272188961082384145885467188231263530625561530093124978487299306264248096013069178910336294977979550302367782008808022061213275449859620157020921192402719111657680614601410516431006198088122671308985176466998521341974913410104608688951911747977653958971232860325290981147158901472958133200060615673480189907918941626555108980877670895313783503546722307877652558849874199740539303224753731439532113967497795582812116923621742487487971642385190096316091000101962847469947178676298071291462366205319618132134372634552726575968427023814856076907965943961273723225330211277645667763850582042594957593426752124099574336156548184905061313661683274311982918133875356493957382403605414317699414364718417754298839987492779927376859853488457066224959392038640440888432106939314030112030563844622377711167326596030561313121658831986141920684757260530035389676493025999010704999635616707184523678547668191022504077583040145014487521940025874511236877078289243756484776713563136613559349940642527294723236600682967496684255997721533841916430252961462524729162773623241710236924020613837197399603878429895471449443862395426995643880571864526701122683432072201247306080011150243201341600479812945673160552788798429910816374807072030081901399135389554444132440941188111505360722845753392184474691499844058500502300361346252801021651692314666898255754145655000634634063035283425126972072759809713177026920018029254905009380030650008774272564806142988444630199445520254235183686048843440323592323322058455584523976165633069727739914570929839135485568279132714603869176798689974281767471143430127099757087843203461894494485464772259515815794384598658951681231033214738016768754598320040660612854191455991168861579850674088455678013451446635496873202212743880009657560731301539350543197094688187850417158918095696759533882487950691107600312715922872030155906935135179059150012941162178846246331488220748502027225579012289832681521863683615214001533349121245270319339626651746715912389939077747006561072709197978951469239116180369911482414100214309542950951763352457739760871387113329760883501986075718575918741966784549963795708530751937650619533181356344066586650790235338920000810361353660604078554287397255263792707479157609214154322683472211180071698644159906599623946481557950045651633982254723327490671967014414433595995874788421555732755492481734165291678563567503277928277245329031899492167924954222247479956185943890941885943942615141496360040996733870413590853550184933202789990832212092439099319557118951612492998750396294644346676370063316384300405835974916141609866856327986949522508879408280059732202798823917318921706102574872636587039618245842283219358170247557301940201647925663441749167047622952495819511672322028424260097280570912625169700029953898034122413160784898510982102723082630672070644527428743937858820282380789579532072748077040631131099524765888189606856282252872638688006987503065969596306874394928650563333352623482934065803376568577459238166534095662177681153899846281592531084165129310044503907120164815338481570082716357727573044648665437787330840039433380630315056459433281343323316373702526451347036561893522506299939662084067289846863528762288890884838568915491722411899728178092616349825262977134585479254096695380429452365261928988800033382602751434096713372659870180133465620724739066946709081165709585155791525045235955414038191659827211859011718722381571367059840450896743868527887702387834363877535698023299776774993292852664340706236794314568235198774492547361318261555200881759107463861223784967664232143140552230845807168427222492525919035801025392479453429872259763576156051989682094472334015269154997606770371470236628707507753534953217134723899003322515231415110921098853166063650822613732898515346741408351462300735219433493290809696603298971535246200447132319988060920699370299924063985138074331593739379405302234681224987819216677819445635375878739750826361951806449618411541488395703234269311864339605295980922944869871152079510296942642346066072780771181360331510793520872383340552497561573054252143211002469449429099503242920044599492554539227673331347419294816775894947077316144844190287015275194151412678255158967427047870273497128921014797209428982677597520234957603674316910693505257317691314413393646397640784788397853061443929166178685512396367199306720532497620538540400068511553200454581832911872405382457017586750157207123846045678545238597095613311427514233162344442932935278844345424064380561202143909307430646014581826058023040373067148921586070375693085489083293034660831405637647488468872259693462041805897595073928599940368245737216569109439211129105464358800717310720463232876497899214152854692793998072308492098983950672632084848139462563969155007018908712546875885077278787145846792624064422972535235690945328358853662134427980630929114710799479829448494764775466175784019545536157703297375506035574373692129988448238202703497954874105920873329474141350295641747009042260012515703442920750764242488612186581140371901227745621737460841172851457595479678581147101014668182638253559093284392898781119933219909997161610700877857438374913787051994872755824595485731363083055773743713140587965499236879470060627604762897267477067162957516334637866886104861251739956956625291944558056112101391822624098850949090620908692394617926016008376716970138805422073532843638606784514765039687421299667303392451558859719634520027346517872373315951670423271393365134202530250718656008424015453367318194882088635530547900677159680590994651991590725855607367740745181610313305845022033269477309983879651201296546740856351215195276533420403039292476639067515874487145362038611499152357188655905958700267711906773851686171710018015765925465406105735764218969027152693436494001097991401824460834741390539623648381212982615743655390327579959844453516919756964825123240321147267178660571025141320272891766515966016628248588005476538805080410667839341574981635308995073287756116533255049014998695180663439055390188106658103591417511768969318697951688847155369829397557468852039739863965251959768549255289049812203215196828138446545714356535503600217793929032936384793319651182883541238256982524772601724410541617398659019613799674390652490095086953503446133431885147570583644125874235783306421207898504750261018532468669858208453166982905295305088175708986759740985125759137395878110946544287636445921935400259817656689463822341755699264873529033294504879925365585176275398502346543620429366012936546041204974101324525574890146473701647173136001038485664002186924094056754895905304017038648614424484531202593281921714638995886456334276093819015858940962550309372525974897502787238372403300464078316152720218760684131713064548792699326583057062535561999136175900088372076557209739091996941741172635651052647409990519528281243698660059902728656679544230418998551458174052553046643017932145562818447082496828576406324364224447964283447867046632907860760778347733371211987398411770266500993239473720824438191839291509057224914794439653128328536679203997120280112568016672700114438123960778056302540571988769918725727964850165283983064355419832970021040801431243262905750988102873197172852699995559717751602529620230353766993950549920903249733574973999789157761176442224160209884103136182965145383398791546560221271302666486928694011248514949470475866408412925882015000793545379493844991644203770645086323515961353642921664836025943641002778571207326204037217431296161365301895580883617450605796720755208366622235109152175163878803839208597421556100640677881922458114755480666196444436391948260568019134083442872146517003463612793105721684956424868786510026462309649761223834406357316835352926875319536468850572125832791061626798584632592460623115477527172105239683912388625234545458004871294918148309416029611116331235143601789582011436620626824007125249892381059588832748676594622271793431523301122919994977709192041296477648585977841006191362387771563586547047472633566379828949230376578626125740886339498603712717861509762278511482475867094404214754882611613923668073241884235270028447713336176147572708093756582603440868205793899124962181772355645549931857125673888061583096967453932856164112165290467224132181410682428248387754968632781726719821690564325563942952437985165027367270011611710415236857136988573839082620407678821625738368291901938524912354436104106322216297877165156224467927971208298352065365461376601144502109535734672253835054972805960635232739250327898798522028472717165397601699583364227227342120366721502031572475690605317079368519659931401697304007466865804179722654916597035658955397224647721068717145638168493128667737019357851561657468693109259364510931465956671767346191659964416387897872190062891928476241449314033554436489929546866593356054791133792505118709303950781090888428353195396851585585941498591488162204419760841847972469043553711594550122179080581949264929959064727971677401803794433141576945300893376794911369029012561260847320319180833117979321734992098444659895204454650580908582293785672314063859254746625998334337715893715279997483235879244561896768700715068905664078011122844253598793502421790330294282632496730310357319535466862707935798563136479333319859932268048569115808302853170146927924041121619231938386276406515319051385039644475695166150147640049827492573741679515095088455258659107506791882780571777473643038691796019996803507918018792264174666209176979591938011216542822880570823354122804396341906476683062297451167091211581003448779561675366148045702854108912577024379991889367295013329340548758668926651900674342084166959639305264947707068075628061668346931361673080425355047270296089697264320425491753483251342645482618112283197176007206133357502091217128440096382434530724140450207559739517782006883035727690459678251577218628553279291354044894207102673765024127453664223496220653674464038628731921662866198688403694504711926094532999980392716217422738829457069256074459989944022043993585319755916900430347948796173033886149457527222427590735860829956474365359615053388959266977101452372712076210689839435441091649454981836975576003116184001386845927151471989732299992196993533051014893403700159964730050866564334816523029979712564903498856854948020829905865751990870852785893094421041358951545505783232729729633963161344743796729605544175456459044779375305389949920378788993860720392229516517769506106224029432588857558591897388539158919419565029887389551002446555417199221888710249129662200708554616531509830019932669757566425668448299754777753941306326172392340738220170212801942517675024554969351795975501775924857088679925258480833424062167420761980490464755910012881333327295865744305212231863004734836629980535909557829587919179048453436599822751251756714012081877015875091709373219248909145061744733287355845912913192071840104296446492373941405431145680640909981447163813934134317312773155058943460085135949317366799938507846333022848536362348470557883929607575158206644643264738478345878446424229906503099248250416555523937654598195816767790063307313098691155223702225786133291452071742764560452166216133440791015093141694075811471334051040493074257977478868176044107056676084436030503878271410157853710710528274783219061464877325217690349052065059205708958905098444428726598520979834944387710944870141168747238651849516694308870101667163327509942261288054984515719891345186453285274113660128530894074063566422552429492310095590211851582250987228244647563603370569862194607566410603697765034420760883364563482840916638122373036433570834939420138204947247879331736812617466287972774619852779617557013863977422397776157517147455460409415437917279107848015947176639219966624536325725610812253538422902925121733454285710067694593283842082010179453372243705111262454955774752502701994543000043368160037245606068282676793564469883761031269591470508881846902376530594612474222302522985533696589161134751482470606643544920154019342655852325472686015328391073804554254382321965548669611844066278951809813507402320331447937773692993276489525138656279181686525311244351805053057056223962402496745569192942072247817937321115476751022735415927206994592248588467513015883435264545483669695054894889521092545448477605605794961458611870587077717293516817710858836170707025423927988036518119076996669523461156953792773276016380144668652221933254381838783657306066396299909882223248969084290252215842560359759370978547057192634670709135033377342734172842159745949643869524096459226946724395765756994979399232048770093501725112508173363323599652723669267742750844223525233557098356664474001088905184579095623315118878434125133307639963114769554539372919982416151466666667511910513515470493199200317581997438029360657141383574958152130050265365754906631574296962676643758600327309209068077661928140683440400379906385170802542745401273391274662486068308816974773014833995426392505554211808123452478861639872313073956163273626141820301346766578961328095659168908055603184656366703924296074728203107166887973721979443126905914390416293524253473168648291779260471702691524057404700873488626297387998912200489003330284571414038183644973100169450144511633610443094976470473918654114349900864382730433511403408960042793143394459876992967707892643592102090494371903470948427006143295853387935859586263801645154431962709532233579775907651236863483063787959920867199716665991426474468143581484621407084012254500590474876465144787745356776972936559576653786000030673356169864684920969578905819623409443974269489571342220628906032997836328956830678058059001612168928636442771675118235999689765476085079032305694471011731174129668725495391280472793107484583623256983135352778853650433565815568469103868369949407058690080563757791759226960965904759408832283071052666486013596953671924388861484682960098595772680680018577445092843855143216731016281814026805635030980801315065301255257815737333015763256908465084594223136544608687431528523405179744049714298755459433227705658101133446877009973709910114617122372060150532029425988375062954135798777678503583230058456352165750377122168926000194063998677686640437490771081357605550076499769378870740577583987916153786193873717521182550738243869544928197759579065426603899579436374065991790354557065499061193321520050755262480332022590929039494833118345110363489368520561758784929112335811183829850149712168526365798034412039186171339284512087688987504381133795790552527196894113901390328020155197088373203603850554867802306478547419443261785398748330819944779998947719322041312168478322059442077364118336853210883831242102533194531367688215348026655587081212222676529460272460883325478899542838240067765994225408694278171164068612559922410778055036190348949538361374209689199577163541271761867249859565760673156159400857690308419382065042919979907212791275446693119261052262862018422666200712516758826784505609980429380378106763389238242886374242594862191183493801965986874638438526681022169033328035226086314187813102453814007534745383722434282105173723307419460420597273564298334844694929702613739869221978974231161562210081172042645511028419059054879117992058901722084888180874094097090615055359221519235278103318539896096782956991636258303071689330090286828189811885843188948731668585368075946977542316532836474020602488512822207512775121971328115011399184584565581356333220061107950591049890579809232828103638543434902049138930828531131382820804915823089064963005389387165616266679936967988562670449035521427361501815795204012817054444021540155550266842057837618405023712474200075579232047176226359025792684312388621902995520245953843747266105124071188153541923798608189302915666346121777471610738770804758296192246446850591396383702864359256477267092254533793560953873476852443625171206009830702601314233213305205814034974351377331303982231508818543854916611925876105827725952738729868253842584138616323833920748653909558500094655280510300189232156328097379375410538326866557179772096046328740819349039498521603745076770650077776283093228303892409187870198199818552204807400850808993922622513200523370553457864676479396751434089990427712340266240320888314326957675673405153790236588118078234349062059931323907430581406608029880332469952774253554739360821160318818571976770036564412014940505785671083750530180250517310883508979765202877554467371030359439848450396158353334909577103745099762367895544995351660827825006800484175401574091656808656786818129419085057486528582492174958903013568582907527321034723936311690334778857158986250790566606395999110890234927246860637038064296362306508498709626040968191925244860420472477166523021665028589180384803108083037776072427872488340875827585732353861996882918811090950172019883495757424590312294945849128842687064842018724344630364235022362679089290702197136200311955348514414392469129448433784540965671394925760454114723080302416003746065230160157559347102645956313276727599342991208265482243360764832701630415030445853580274691682007162717440654774442718750757034103191526106209815700562588258349190290484276025705636147699763369866825021152109186155909738027038108311142730202478967379506926200326269915039111101110655202626534057486547380697569129695412689355690209277110375062525442689060434801715594598620606541236952962960125356766746755467266576401832351928812232952529595570240928833695747267229125567656120721288134298046808311500899516187582925866000322506035792822151691803714645516498320122594032579638243724089326147784413897975390723223670158873564886841079485613438022439118289335509124837790541433849573098068416538274806065012542141140784497808809494924599368721350172365041078087876746844617972108770875081210832414889277111171634182236715541899654198105638194081429448704906581440749443559060130105146815751159897061674928130037731740752300904190081050020942324950026817691063948980086505796872373812854215553919150369473432699396437916161575799364074691364693041284912339014402535500403951771744343728865969149219981689531366998356366227418403482662871483860619123274053131015461074423647061620252072710405345443796143031181885870149956532058922884009115873318314131953910147973142715345951671106997440922335374910927407499405069363156757249921934677213512548384946799833495721543208652353401889839550320040747790621436774660630990637915655598107377535908393027693739602999324866028271188006227704062765180072814604462130948967686645877198394531718317726498942729252803038684604683865594428542794536316371874112886956944961396046543431372671939723372208246157849505121537008862954843728673882851900014908562041406066897834793540551284423882361423379636890623350697539837339393355657274791697428363356530479150929373348172542918319126043791056997569592447262793089936643652227128543730430440422666541073690852882961871463130066166327528985661200675512426694706108007423422391646514588926880603368493115001297531182486236319959395679172543339627136660758920487265635040847739952376030962522959584459760855466793482090456867894647845982044627674844808034160879944974476529698385357203008401317262217894814329532946964729565138205756181591869360953007127666529374557525410335423864181703844174242657123284227110265965492885392530158379881389006291870924918185045950189615407353667936186942691255921308622632547843216517635008719917045296487773710367862518091518682373467826786696927992012870458263024368187456577451968927982873703278774880881898840288850853292760632418074072326666613675610502760338790255579672481948427230297701603146882372784362826960466046440766437303734696952781278744627028115903998223187332573065785449685662982979959123074651932462487206197024452683557608095906197762243276549813501918248973996316420200873302175736548585276176847403653672296845780054352996774231454963633609559578678611498345363268031686406219003325425576547431136687433001543780891640074196146439204483485712061506727191667160982373551750652451895976102054977876228707433331116553365284253704903875306327918797018994538742793211902120506717099430198280501774445016054013033744154528326422781296459745430645349024630704695110605591590120570483137096568642199561813845174273468852882746444626668328618440625937664686203130284020014932412893832383307810666647532946624715654204672782982602272823107903390467910593994460567570816321069024405598285812291585062737633935562387121703615334337702429040435843719802254417871288277990485537260135357673168971646415330372248325870210653831138197287075972347901765378834783506326634384584635008465990354027258445531040122103786056612791694906228323077102601383247836167822209952937098507201314395148466356933051276656896749709239779115594199917411200791880901444624966431359648396873977058832774404688614934459555764726985744442694994115879374161256397764781123094902097494938687736993736185884655699021542575120609797489800179983366504231004978466850109627222447315514604180743371431645296091004940659910493234123762391705785744219664143738320726788894018007892077065629843797963545936020538710694735854385435932450274396610493705841826002241973106201399052509936465371681403201707898746868304841951827623023547361081102372972892959963873569665911018097596328107881958525017077051372189381041315952922998093143049906555521567320222987549412753398495794016936187467550769321248561936239744300389095690403609349000805262251710610062308144661354259235876256381648872577274536645723429050070278645418377409252323576293694737920438046958465158032355126642766231467934766078361380850291422376039598221296832452817282785508457256469648954297043582333652443859501198660751159700051101040122283583912663851212601321483840018264157365204579369803076122086327216251252557136048001371231882968845820031288467292476507692918686595015563446629137734379445394682567317332713392949955018359956204154474052933318584558766763094233551419180198121053889886107766087192984837733669120474292489695570264101795495184820956158314879128469116774304253810898908524453239410091568375386676359831872242633080340506842451949122827368005059046284422795586057016914997191435908116618303260616206274673695953042849094850960100766526493036848175054654287986423589470734827782914154527689447288311840174143909098192452086876165485925644721810850126244894466254693536826076526535157834748383406301582625159777398360286074882744246950398757510528270140611150101249275397449528130455322224794241220432639407419542119533642833299812054313981978329433645016827348857092153739931878760052933270717916607802130381257702593238062324930192246055766099372887756968788875728508381869354191803207195957475978448870016737316190538898069505476456062998272211364795900349971568300612945661358940409546247994893142922127127292099712695587636781192458926855628136160029184368979901813240708909141327685868970303509339974373072349937196814401061712541385309706608670700902547231564899651911876978313597731000488101440188469879960797254347163688674405057151316965167652896114562543415984105914146295665886830344029269912623176058147328531142104164127078107322974709790022751976325680061668417254890246192876166179399292253646655396813277010947268276226110327762784298535410924779434043857316108612040867851666873083521659400016950338575070887571667801020086849948344354736864105522846024040313545450871091191104453920723351530211699641813182683505800687267116390852617561985621828050177784656623377729809900261747805614285729471418856396566420959069331220488538983344356854538489859478866322960026654473909375441473223531347901627485215980638916638096233968250297113263442513693787846970118516660118067649153363710225504658183796415665635509345621541657670825508899858658945866122411635956059281258314716275127049745401240181429321112234395194484251336855472154239131469619734499474662166364640092398742436885567845611336192559579182457313452890040285193248693811901750122923422008322679545041106633335596794956272671570531891706410544511305974129672188754165266643332328787098175915886035993021246637282536155221887406758265004954186794523534137238347280506652666354804058249052397250840810497479151356408745664699862187986027378385847677449301319855902335727725794086001463258010375886727646294023324253760860666566544824258908363524477854326307909638690530131380853001510880070465372997932920941139409342330119522750027104687451890822727149879164523748711299152528977205732374885574809736481918297754781660475290441202409640156727368239650251068894855191654720734119052549064407796148782910394469258298819145095862261578671943313050537264680487360550741705538962329624175515347207080085306003024038246268958272999299135738606872510789330691229220247276051582588667749424256127252244240733931977114273076878024462773001493551092756002589811575174879637184183066623750998173179947917482524170672952569488942795442165791207842410061615959021555466434973620440462225913991357300107465539860459332018906218611127340047913703981589945185221079510042885650443777280774126580546871244595771928293707994610893472402744557264778330901836460919529962897735292033517655043075284039848405596828378794837582161199292505229954895695830212454028918311340525621032289582797009989477527685807526388110160951052232579729192572586220879558899144968635724957528682870818892445979477528412433392522684014719413491170132261227645024377056791252098021434943244641537307078620693406184802046527908768139249810439484823430741101746761477550915249818278527692706669590197097025901885959068602731616599867963575714203256762951186080481524041608732745856971928868023874864786013001411078993109235031787378537409224507095319859428428719216272107943779352779896282071889418632046583789804524662345830851595011319656563419286842577785010272585524538410661682612032073907039324226842583212290448927992159915904271164421345180427742725510850827839788997931554438861688502849963382716570664965433346020899911814789308035923809440907448903788649855773718433856497753268608656715610212366359379166963787498435857668881698167686176824631865874637736404870680392326180221732983398353363216608794256369682263773980688188993571773282723243551314821688901019701284426464794163795119209183120470952590991315595661825511647292644827734898328746948506381616416369589510556915703575313394886472381447091071327401286411483608637315491591458933758139683489370240876398765086947022802176330632421048073800271742123311388864656058456664384363324097767946621263425172214740440403719286839928710523801132051513404472935379250300528392505118273540697582745811404358038604428152717819871547660765895981288577733620835133668948280210081677585656221481715698551324707429027402164827917850799134491548728319713769253255023960305011042590903830248646189744225418446808157372642366632315908354440998937557877400452738254229024721273555280367235000574549296091861834678468796132606075579230952597774364588452955185600630947581674269366735596154066262828526253546461792812249073425252396476004572223331855462528704840056068406066273649126073577798733007533166656543372120868540776768923165980049896827510050192462498622931392276524727288716485250994713724913237818473506338865219693886340410566422803305553523910617579764195205972452698086460189934458047488460610351565995220056639177461572083340231385731753512653786573842511953385175629185388512565160903540229285350468462689089893713404964644147560529300172493070424759751546281598223049384659340576747663513581560410678344783348885625758583085803217324423908290220827874976836891375140322556276340104663249915830264537396021757551156000506690791092710881905300470015955171296518678146606146848398602817527876758335760320490774425382090427235488234502057760649933490307001473414786872087761174026099163152329589507962337075026161602724608241979163438679881259891719862402786883518417027457857722968435488050004186110582603437363281500725321936543319795646016356459964879798458555653261511531121512181334051410654233261495126832110119139149039823676407910798610933773344856155581766947941514194221515504806204008575952298230795559118233524764526743769322579463929217484871019293084181548997516390321994835023319443867817917377861730352310076252812898892604488047555558512319938600435498853962856476547548442787482519468949277193322197690138362719387891402515748548043762168718511924207075301032100857945928181018356551426283003025558872694898653390585389534038405466364667749244881671707891608923957490961800969301107371077550422906415225765657960854288391470303071056276597357133329530545759868272710199784886323258750471206965037160394478687578574619795172008925006261001224138540403947079671315513499659732697869175966058204968669547316102476619476724596370460185640753283287053856607028719803914496964435816380024241487565374872937962457590141899634923321163770574542136758892583514055931073214995984208191555526090015834367562851229198444072089862390671363686461486569184249349532896658695668826633865409025730447141603204988377563556029250666644157418207310363010102510214400974750558018678753951443245828142897212260031104481955619540204787179897675599975361389253996948692373461281039943384675336732214121309755603786686429916742367193686275454361623478214399419201998362206532205544501232507939103411063308831885748584620170732120345074873263167647136634984291293021223389038900863895233037034800742341261903467772831880950580814067603931995063090709190668450662411967130501371288663866741855585408345288074048346910507322716431364669069511665423329805046802550226218553127912703873830146260982767561362136460512565296126058177747279656364581596415130745045800954355752561401579082102945287707631869865444970959644928276217282141866497551180060980242143784753697053158540176766020065841549270010490224698460170467020510560552092069991688853137124630848649711744563030977362236764145802420367407281481474396989503532418846274165842383576880737981560226197894952417448359824538461513699191150455619746198876830380831137766669088589730293140564853184936042679245053288200098643252500463655083046003426308964971960014611305851076092905106602494242499736868294315091058674575277495950116487790489709255526863320258488623688184176458862536712111825313072848679233302523794774302267617926802384106416544823016810379204077224952483164525415953168122664363292011209979763165027770753750754507164341316861781478789681556650618289400677334274020244852336879605886918736082704089527545605231418296271514379871932295532363727253154561681692192089786492625551065073892114015995232929006320837359472806752664505220207739703595685876952308691536584688748132027792333604501423690831700643969217087323061633844247104854320559621165952213969677805696326307209434908581086692617093891917260839348293899693362047129220745389490271684621167303303767638742093035356830382480048349831233461575202014999735985738185412442834603387044942775826023665400753840838257714339608015590870387905978110279261677128932517247816192711312330591329848651639980200049279257384174578767448583011551264565187330416223065692500079488300375834776238071427066101242846237868754288496472842611636945350968313304596826853248682515174359692501251457080467818813365117156483434763136064914841180636807614084939568648287199907381916912697605725693066403292744957297595926022152354953044457975205041089202407617262023564525816314889689647453758952402599849118978815349976332421383555700269657133315865019430816375877569506109521676780203005705068777071962159284196517281878104144813691526792521835952929388123510641994161502437748757826628234547056303214473938380708274011528844114186070049777131797770114955430617340777005764677947041843880140589309848473447420466619340383413349817873241617602977495944251037172540525929632732853951749918550828227077920612594082467521787915308853064563839736029374713272630692486706590633290964107567381037853635816538985755651492537776805877250312007880075642892946120915476181334438088573976966565121992233547211191314195783657382250742670910261532682760921873798798824939520691347469015620452805654814754545983731622071603586418996341276423991282931109118174803902387802089636066669122040443119168953717195928256993576855382088905841145541338192032008442482766542137507419617951847461750182706954445014926739350410832237157121556182387866370056833896698119241316171157755716285286898628543265794559026868817967162399258545101269839693965563206796873475705656143458203322570489121607912505399504385280149477919174613160015439321845424867808800127573064718889239294006842926181250847283915296155363219520433049423341429447445613526850292512574159274648008473003197126383719032531510653904346790527269606729636704867357364987732408972861416691686708863922005522428479439250816855621801104168166637820869393406614627788568690114282332359189118392051916516749880429635234089921252228978430792810683702910431897080800539899060869828191349408300997259557718324032260706597982499953261218792299044058842262235311096524449830799025676995517114518368599395410505981797046322031710739380113481502340413638790421908519343720693237753216631976044580977068418804729848271147920696993383501285340106894427746279001971701962034365358617975909546460145791585165801352250260867184081192542505534995909360978174010868766373761598447927937021682332749810741472694664426521193011402729723358878233520643108322314584442707678283113781059073421812650191355887657381945012660697370727926296021804541664560522272056368494012575768046697913994697764163265661290291294803767338340437720175945137255698058058798151324377217661987083225696545186975282784881148061833504630093561754983013060386218582351178145542858596542646850734597322881890355231366115423791685169404969916307237300659648416422941146815979589848423069226462900646056234193063049865485624865878794827626473798769174407192164653732845771799714848591387559824716186222948053698706902993913954054971192137441715944508044228418715552268088994854801694037338764316241366943839011808518384186996811383166884359683706876110677110742041442840201327295957411260341359674211966908372187764690781689359957051647838690235302396690106261176081978686537001087045562416945112907912199705772739625623873027159361650464903379647450879009694077338679445339070751244384224292689206954762389138068368551550271891578880396040763965381162026492653339198189645533668292486450806076595334558474636207948458597256233776606705563873791890989809641156381333862016654952471604009648098601015087972846914784615604751510422315216609944981530022586162375600508532185119763945686645600791065812076333980636891822607754962919052911578371319845816283095203541335141754176248322242581437501371405763248848262720793747057431851136341114326965692435142887430189817820426801894232125906271600790073265284253835574782055148610508924912079478707920992618389846245386199156516264109857842372209119189828678198602405265086401716828916414600517414223489073284060564953884351990052110400670617289265796113559665979656298110445032456366155498112086240464047874296686394649822155873925068693116746090693583601821308187518657387699090161251299044583283101629670184476892291114876864019827635480405329179552326581155753183347178724755033863074852742125839907817097393154925434686086369092347902921071631220060837206037224857360087307028728628046485853039009740212748026159308360077931392457044216072168704891721934365973429428373326165577822643219226876526568697414376161248195073219106512484348182128912538333537508905986584863515377817070449290462610826618546665117082359961124022086895423344636983660659860009576761064174871532680250936180509189070339725864492451147115895889145065239432770016122912149595153306850305158346583557248011869127040279268143111212680409633314458135838069888473233265834198924168780892322983825327668298856684445370117745896305875422236343313980679442513128763100657019550492852094550315806563876908640968860678853523938318181905235238648952622549048361418692673351320928109183148484223296204847198356928063388692508507275266415547387245095546084879211844626286779113013104454787133129335501823880489294496861825496855443858787390849126066731137977201466104944119787059768410443932433491631966885688447079275871660452545203802969654145718820396217555966850053765965912391491514193156690369166217178446890253780324950507677307075808641084532632592878622254141361317613113955337521907208298210020027409842237098593129192042072653225129762576863172366763345276818287767087221977320312355116111444358213657537735174156294083536482402732356509866516320025212941328868847057652946005151342492995914317762115216179868439375326698396043029411460565155076489599503371325770689712873070028655595774913507189788030782366209633839425053785223041772828385761482342466979682148196277530040403170917953874433115525140508564234505916359745796605710986779659254363425707770894921756217109482088141270645321600851260483664546854666328898620748623382072975403647710982085085544525567218428236787910315464630821177823892770890641326264384831221797415302880888049348686830554943175735986011218380650072783113142829626542213504099818045678280232884546609147874661879321322486476398032006471789079028779319495479106163174679939110007488323260306528664225229434905614804208969534574001822469747826318827524565524066933813116892395005764316264512456064969007122276398846165822372914222087521941070276708658611766711203653028084031472521793851561493185440273958016909733861465726166333379817477709590446420501724574011310751104246207528230920679661706415683155024259339959889032983156650159029141432775312918503923236931466701198338620373799362114380329511804129510530057132898234800850880834653637172351174635942507960356233828288345879230837449280402877232896200859006273295922488315111214958471401713670534525714551021889118082331326689643259183861539733753038343038586534055038920235934107681983731985093808807398192237110342335618536299519383299646288185970026104509575757915786186477448190282436887921741190087234148123325392699054570227050171126187770376438954616543094119183249372817621780517443468529319398877118648140861974546571122174356357935058463379841541257482640317764620421145631544071221403173461539719857437248173663344311715540140486753406497455520731750688473893108433701667880060541348858182904455741828218948596498943052903516121277540599954981897388784152883214858295162920866885691374791420447919366203353096622841057803545742204310545285084696134301504205315321516193414370646204586928209167712489148358506857986379439621835114244157179574895020851615046942600563939012924661958291124379951010806951333699804269438618283825853767256599161889060879428757208490984014286274819763773515543305489433121666003779523059748972742607707164104331939065472246678715426021415824073230798357212248367066673797063641536035275248106984412185384518911743692740999871279328168420852973800346116227035471292696180583031601818563583032540078131264221406354027801715640856232139027870125770741184011467350208222835989057276147183222856626180921895503082694356426032105691655663836860641357990735563372284771982424568224365354894823450082373186063434769699505690357232416375949352091451537421008787870290948450237365474862353680150835589373421512575653524251652553962953797722745999076747353029573632260869691373961348381556509952764841080581475281616935484844047346087253377552191664889265547484031491475563083013623260586994154760515470781939759456682443760158678887095371244339440361610361025125095251774596976328838847912862868818117926047800695512567326025728678526958352943975943911663842320631776632651489356643931082044562065345751139902516502592231985572918236537801924099123944521861886159224937813466849556928862953211400387774265991537985768308928107894608547194160524446079322145646774951405208630955416740031781557135050198568160392570772751752568527209525130979203802479419636655456433452338142561349192308238507894891623508387861868784616967588901306587354024281786263463668890455166162548276470923239907247209227569822737630591001425430317786241041145468510517296898870522027278529238030246314078576789530430256664695204036626128575561721950450861825813283156116523046157637699014985710076116245812734584194147715267295545202083278530257144888446065749638185486652823245052535447746383179432144703375825145487159352551989778800905569888360763829841238265190604110833729682678738719329997194141909768734654423538951083749458473247830680283746619530721151108985721649879808564166600391110592365214713333434443091629555766398726981071591804285940768186038332302692791157429322192055759591820107443207078782874150532162792025760443629104506630006544213206826051402302014752227377465105678833917843490742933527336845598703024466349466748230851982257137526538773372665492438154555023962438385230726528880734185189049767891876596585844056578894107259864714165565490173406297234224173848095661003164884151418293127432547205007464835629016203244369311839378430611349282980048203275942835443488303747747402890267936565952598660066567808708197776621969642007635514719327068000181718880172352179238594082304815369264021388844843648712598806802477132013836784466872176283277919379835499051489942133506374723127845356874942538664341805798986439313736535298360629012625262648742783128738439540706705930882168330186451758805094482857342860207122654603293927923212122297860782444984618739641040938647861377116962777136476603799986762241974282430135161922935319794311556009479098247189070388619767586778553331213991693456634283853830421881219567401494130639173672355746514045633203065441811610440581983625393573056628299650095479929130040118692016297073572945216079133376061366700129706805174669648748122968531427491571023217265805915777762864876277382103943302523446294101333822324646756006970012382880393934928979046396274487556049590407569942125039387761556313459248679173072583550985961499044560378456132347792667512479265935887213801766940996647175073279997308589074652954592861390947413667228215451456100295828174821075079165928404415679943122759030521048244577034142307178417842552158743353923825516040109666358665737786136565678349773357936114087259404281623353735843364895063055256717528521911408211868675245331880243206729800718504924571169369117544851557303334819657506982549271921401459563826538943944378954104486558925237068871969443358604689996424016478447415667625298538967434297513713638805097608190176837050016755193168341778242679079967264691343121852277568901710082626224762432114182252669201966577299593018759017696437712549329126149249454473716903272729789414369868242593875186190858330596500280590495673401730412855484182779329979136753133884276693611349493062460516620238971672287465672775144769985066627690918895880426704891625792596610621317469896864696655727563581851749839065300916140431796750695234625005757030398087186370057081321879082675592868446246260451885816915403466742056626612536620223224699563124458817705160736865502517670436294877397007454164224939489532368387049863676142113717580801724550337622172151597019204692146790739877254730452391825965367598809961121219979706434290543169314598623497633923244379273331222927424016782403658768055182063457349843575183384152777213821032958164264288407231710622458585897606126204935473357800589293280744884099522092443556322086861941942471909828226661159790346957943172990012097012221722059588132120467087565451167139906560589713374009126544015071955055171149931721361650373319331961737701393515962227955303761946913736747962344269033649009481841321355682869997819528320864744370339305278561182549932806573180001450451475674584337082355338753798474680346816455533210256239761669867533223695884494037021359852016852163999994338999347670677991523532184650525529832710803419952363744411538369765723167283680502767219847969508767251543772308709555306435181037426560583850007436589267345301968961702562896048456251612938377166040689883229809188382704939363818483845976262330142480798675690279112705136177540450139869950359132730375995453312489378735022688818876060179484064265416911395830778833075132176974735003200351368657173282062443085221267718498043350861035953822408759383130317646536987410701594057009430373308557937550008956322569651211084183717465269086761754355966007154748426486804564899209604298025383047455996496019241053646052368054473433499245489706079438320407150330379219297936002992065037493917768441622777387630848918481407197152459410425753281546399886729951474123483797135433717834010568132797765128269931239951680046460016769601878131459989075292454885115707112020919541351371286732938774893300414244203688217173963574166705637395045094943500936287319786757441409439035200420709152131551537958331793940271761929214251710844653934486221286137813900283373667004357358069510023009073705815308317767175841385093678687023627974848216719795320032680879404890748834776939333808413858401402720523966447578976693428421514155683796956231157900781915226203317908955809808694457295807147119771478107129559829032033749641448834089375495090233761545326678511759219673474944226745061959398479902015984625461738545931874754338359879133743318829103409766595287652605394364394943632531961676342636657726352132036932773409488715510838187640550563717718881838392483336287926961865479474349389736811782215957943450068492428765893490144218960630145046945181018464695211590989018859621613738854937282652967240073847030578190662264859543854579885936858381462247970343584581228104534797391828754367783145941575345368635427987042180128754845378042668887912807806573138028353140441386197025807131872431465598819650443348936157501232894135575214904693966897129181572496395557033854635842611714665860326947884572839775303032385102323786782104754739028432805394482405843198265308925918067786699336481561974844496522066194524795812723947216757611033946310852872044628975366104939468980495061192803557576298212126639663310404904180467626903425391755765094103417040965318852148525991991978079526018318992424267938597241523246956704487842448441411385424404221959728195944510486362084448558732611761835786666958012576633113641458508723488977277867307571860115141098783157758769116393839606009895681152987397447910042824061755818396156500923965474062560052748627897022122493150979211174693719524479306122176759008445064452383753199264197520604222099048107455881392954471251512732005643029430550856444497306795397819734434806832984411975649626388565184395289913829284153515680807835478552621966159452950562931449818788823319143324916758144435652030193468936898663201040706418435859797191639394687190250332473258915387180034077332419142970196055624509343502596841101593671284099645354157936837785839432197915661810489619759048285996330679669688248915781401349087812302447680260225156062090333619839410285183922453664892845743214912536749675569767670458514342642138910265456271131210036719302208835427178970443316510589629216648167913133780483052842236327070841540545166356247447405606689725071196479649905583776389894911642985773417992604654236161237748732435153154199955520515326295031249794240810335117958393002236939716323546897758394449119575357505075170934760619714387312275291683433511419724765386092682688818994218181746828432004045622393307824379451975723398727926142370427084782112590547171772212688420877536126632517347819711976676174524382613219776528213580981995032052002853810625447064120706183125916568070165484291708261741973432997938130296872317328896478310572276890359623964068333533449358274277717687057205985828660706338613196802751319910705991997270223039654944513051228534980036774920492873029278988446345335775534718411503413127699065816737193330585279573017968188967344110509055477646564657237289579227471356405622163906163619670642723808075143854824846330057108756652811166396322108101753134156012694392742886965609203432815648188698530942788330966876089516523925355394849496060641648295671249397670889394365063230964637758289148751969436187951458639913073029521101118360216704610640722015128549192621066024519100052550135929906278605683948158002988163465309450215143564028172787734481298675868856454142788917531706481695394886783426711484350419306770791491163092930624655838960530029006958847770950537743979586137082974220980751107927418893587260473395135849037868763067456155452402818449572880564407641774827120471272894493309711232481252505111836236507689601877657905223746312372090092222933325379070199109006496925519574233143785616389472791993858443349006382238748162665333388578764440244697141665166447727865248348427108444887305921485203209421855633105980286619855056175470015984084728787504775107935874435023637101742158759147982138667821385626216692775073369925616423614341795658102744642988963572959079916778791636826582534073058390107451105261441615143516054701735334540565553688047001121219192749004169854577166982359144373315394147407814984559206115151640370814800318767668004138128703295203342090103711356545838944398613861266720673918961064311676454887520247177810170100658693227644300443298911373926408948053396604767619340029028151431884781552155556704862540362599664444390985913292993683045141309031635471103904449671819217310748593462213157517890531820380411102882175560625067922094856851189961515225032607925120443996929488936061863016253314542924969547547549407065762814880326513512161302111520294307249001059766372443391185440809174626977732368719196849802180206691416688111101620625008702951908767870077967451166024692470646208855903243926713904437734274377462450484759709969463066389793632022280594236901437477664392415039461122815337751627220292441584723692121891950841123118069797086581436728364406088758048121062296050297609100588639284242895443025783010518792651029279871947948155274649473459460526337309146014625376907315515641372314666785642293798662109087016601644610163533556156903068224164197625632887469658432845159735427332918206937545992242564421833109012041858381909806134854814964524011567953932756621691245610110426802820715603465958462777576553687639118193291239572231607008783551954346004772855123791825297234744296448095029653847117874288771502828181329641243853358205589492096919645797734188269935592360443825364435785937551957713827486711712703091875281256516743850621809805323211191141713708081440579663637210440623340468550114377535113219568967256031569212107096062488683907547822759242378792203309892689484672578516549507251490609772268019368181949001908603121135443052159116280478481576597706567546907119774031290164615861912378990581689543201524260034655237779475319897950392802225247187513077736981794003539115139292301941281315087838566747572100343569030339167775994797585473698075242991870509633399700472168644885530301643050791164265788249365371629661286909728018964521041795362824369920632571383730181546014834145440647623106737279647499023632160709342079509272262327711576034818880162186563210358077465175206633914923944742279934065432137477546617914204733597042351200921389661379353842666234396949548596004382478071905380654712908792532790112978492376633237600696648002068655073005666984562891797936210867122595412131258929248066163906849825078783074349886252560167325813041600787756412814416854943443869817931382780951482070253671513042047984481099429493477451538309663934291567718010101885544466325532795724438277464994769765391866798059781438561633453082834671833323273903855666739901270245406815900700403668803396654413021490524242883942155306832251271671435997359015182507333638764664329811378084530394798348351625339927116727414981433183990960351777824680102714934501827023522592491135584787638246241738620050435737491053167032629100875695028147053546077799841281731541395766184765613438260905682174046594960114161354031598886603545939113074208071580351259212163600967812166787636628268556959641634476951483925414596090248481090190129658250420804552256852804748928565447837926617568240873943431759039298294736492362311222166162703304619184020560306663518223195040216183244670171293744475832395483566072702018457299489093461947830501930104391241325694200920085557652503199679690398291092451753798614366196890074536310442745881032158427376607625755517512665655784423185173546999977649382132494273354570986824389134464607024114347482231990626498998767802358975860245565121232166728745221882225418669066824255272908698931872149529077492616662117622262875286964940588780339775443585127021603993481947304081095496498111667595425982500250655351620627931229968986257944064648960436866396584807225698457511897237711269089626420601465051158631700725875219111391956484135005708022879524567924626520203376047755945136036175924753794405134615833633890159582844575954054439267771899296091307329644656822231678418471750993549431113599896432251587047652713078056662352509086260719950669657362928477582016371199300446878390696288862141155933508795097196183122264984460228736662685939025274995156258409525960667876601826908881084484723889753188268522417253692859974125109489158634690287836038999595939534387213187271776196022082418274393644186039922380102956075596636846955004444448507844893797946409521900746257986347685815842370275009535637750765373411154133596852546849414691154488727376433639029607786495240764533637037592735093097747381601998564031482923712843084020931563915878065771262334917649823724170393190300761080604943191875880311800217434522072003912374214170007771778990588359004928776123916171987353198404806468948630966888602043554185654918813789445086088411358189995292684786052609911771567011082723880829536771295556213214077708936849247965540892979967505130443168401243717660665333281409390838804623241382609426103217149189952404219356612801475934425510339369568323184038790787395550987319064082865498764038065049121132457351340068133770713053333080633136963966495294454128936999008147991554337678057647446832099670118798425950745783912264668930707304093330016902000387916856295618677650095417184665019282858982558272000582921214476388730505878438260065170747378007883637758363263351800413277642912393247598169472113327286662451040686075684234461216220926397608632687839285594584423740113838953834526454040604250529338086529426108969302835047372976047841215240008491087831746351115022533474302056423863458741032001025598607513174332254341800694389585895075470903564378600314682563000018880183673046290385194891656864124622701785965875376746470987798152682702915922133473492442848588324183884670834132247537592053297085369289900299984973669870177014066234704835988609201842751290346947012130144986461851295033575661282349271802414967643753064541372877889829622977380901402571617218662612969908375717959031854818932696285666073066842729826431004514915815982960340755214948156676987601870503721829346778763038997039915027441221018024085718201883665596194455581244883005502083029697721375702559060437054471379390875456075218868688826833542117949924515335266089893009110059329465215198152478733172305401940851343261994240011077243608998113750152373272472822933581640518933123192889174175992957797414364721637983083001799705548785739624294116487336294221578985529319307413792674301788795836855845790244011281634098456188391143991863161444321597893338787227564263507915885835941068470422944036470970982709906127491597616139287628075179222157972690108522868700974958951589121920681836159259579367311121404424443797158445590180562183901006160018573309670898833202186639612754719772141117360304202813453747147059099025469990849052267233365241279585951824505602289483508745609417316335667246871231117677744353093450239901531869633066529358328353678272411974284806279279384787380573132152661964877968136796270336357729346327800309001091592609263172362746754939056371288826533617177220176925620941493096498890693721082621062221185391724490535910153858528366586196370992605701339002243192489819509562740912200026013479536796175928759078623197944994313084385616752226514746416486065134887652582379296587941339244682265257048558667317617602265861987976341248038065802032593147119677898449318315830414154833263271622828751051555145091982260867243084093699767683053848501664624255335802334390220728119624085538591701113696857107163538381971657697154370770869088967623880935962698853558167660877040180160541603173098097012415614028832844057409581182005051620231481195507723601750214335817571312412412268315993023870088279703737114062858260172004344264761811234080653867993793346295793293996274358140233065356829414577011707272525360861407787144730382884903785308985541070729094271272200065432519352187523107139583685991294557964580842199802539262423534013775296755986101685644905270659475980753889859708961632913100944076243132286820551552351530852740850856420604768568070813247550076376728236020048031179865497169048176380379435442075834221203396958124042545956881101178295150456929071270116368786639659207708505734344400180455825178707685402939500340488986079008649423047421443924422557011559724372295493964622116611809004925301733421095629745718236641104906256249478426486508180835817233230789084598283657869457253740650443686632618203075189591864657390602913186083904944078483615752900163504220927392475660429841187100317234284928938593118647305504203286007774507689900207616398168770117156429469752093337549597307602372397636269065680867316636892286032376123784832310492144193866375516056721380585680220536895855705390110922136261468013757768080787991003371782217440603545760427506449505273078455913231580921312180869557310965176784560638476678100411692117883669405735763875688238252822840885842483900204995570768154132575841616212707559213361992502987810145575334768186028832776345047151885584437771323159793845437129858843472140297930735008289539768243564203971842846430232594791788949780333600434280915503475465824035286420407463207513170911462536118354418833222548011311831618488887912596368813585413852028546321153617241044916346311840798737334888116328996734500077010502630540288863260318122796639461727778705638333628186903926339700842370681768517368456073667559184791942641706198839375084380911800298322584653499134885514708885615685178692701535736460741653630908330716407280523034519833847445465563555307617154434447993935078785822335204518973467847316779761601696463425966128300313048890722136932750151803101843151215348531644441904964026641640767301751955230147062676878793321548214163433474135463151357804676318576548232562811227210527955629281539532719504535149703580767910923970229320633990808313057498871983519035584278002024371364660918519479709285602773998050762443594019935021445751249963549754318801805404439942817886558695767157598012392327321085000223458001621168124388023006378529668082571816799885777168878468590529553272013893623221238163822147284734506985294194469559996338315705671366450151386196288061194956326314837679212974001305210765874636907969909566997739009808622012391837860807940969507107962231686824448224462531085298806658752652359240672795520893614043687808513790831735986262082146560027354980578690775565364127730633595672521564218927468896519287967646734501312989711894796604617765707135254669882969068205672072045187760931684836301848088294716692143450450164336834269695062601698026456657595382361348499347438078993972988521856055295154950517354339750797978275964325410873599045738579769381904259432802971693458445628466762697600939689053338663055826400208613061475279453825337722927337782248986265245829301192385924662308877703807534013230100975981057496746104307212450080445853822024477721129243770274720400801367153612897346762191333608619375807187826636359291187519662529543069207600527795659192893041788101124869656799623516108079395375798909011886092493887250723673294869014871402768429656171670469623887926009239251415382568820540382408965332221045445763629439518400344191884875697226695070662538492976751871700492742171172567295136723463714786657901622035304002705703512078605708203070279343925320540288202149515593101558452205017511112440967161800574408076865921550934873349700064424352787422168522598003892248334876623016687138570613645896885465373927103924523216044976500764879450803620782402053018121639725325673589375289714155633358590003116970565371327411493683088262531311549132301638012071633317034946167139216385440577620164985575888955935064212320849605421370280926663459920945811512290116325542543814868262509903280570302545507803326044165175164910499121254274725892063524145741029224004911038040165464452317932228313839876632159356754953584101093593824577119174990582119684294952128525747923133530990222335037259712114609217624114435390230896392757537062234453011010030191018791503004931295690763619287980043994767773047112932425162378241447538057076949040646421022717823853186225097143142378674345813024601218789777046852369054656707668096580480362308374493096119869705535512490577636488193407782603399800093600851522483772585260427742908864811032025844443005528238331491949762251081314553908745282343821193145271058885221206768809700698596095990914555737451518219691924033820404664590120575793025109546074874012820344246327391097411820324149687010254557524615598443934501189839555299764368362335773508929991484270102182053382640379675158340345718667747892745713819849972731486865664511722814784230081254123255607339012673436735671631612606654594864295983395113779176510825568796926252330993569635368354573329966694088457393279202767786655702205162056258943136351195523179227092659231595460989774502240179140236023446261456375015649385645239811285599260669995942147927244628402478432568542170461702502821512185014210131217894859692006127952762019622714141245399246817832237936636879193624017077778096528691374610862390096065751446966684389477039714518760568101077890535334500060379534844633198999558968822473136207050485563475386642072289124841191655938615502041325111257723486375596839929770669155121457328062622199723346223670545951139937774098065812787970056888126860408471353757407546651028550346154173038561794321327103898061634690857103699130693096589583220608047982189461265123948463234198174965553627642908623991778930435033434396032609565665725573952223662285780479887009538148525001079841970803945211548104356415906725286443847326488631109083042403823444724179890095815947029223940006242724557347710797706790089753106201448184733670462086960948867929816725262417720245251165163465058243489357216784038453678151505935255487388024962877916856402592164461001972345322364734646934102145090555146394200537060818318913701179261030232991198644117727398169517746056441867644565479289473512324010022568093807179260596254993741300445573542514270156631390964754134975693188434499829727520633545887282532181503369163392784228677561074988619851144366303442403122791773128922101291657374198526402959600473930254902397650233009245592535008071967911022764773143105694054191281599207280336858757678705454046993081422108440716471162258741442797793924541874949514874319796468350667474402132886973213123119625605334253450952465998594429835912234539244804824766351711240630154442243857999545992660269683011912732218513316110601591552928555664296167965031761907461239693957940469303481075072537178302688492456369532277028258995240332202839476120867425697422762690409951615137244334982488313003800808468443366814692793112694041404495269682028615980446754197775935364179488239476153759428161914294571971108332723262130882317931426017134520135532381113893785788376670341353097965059020601432669124892888204580244779178937726693189442949050896938998971684088807228375988136309746656213969133200212590433894010896085712791338530609556789469078065356412327263802961260088628617318900446152138675836963053075200185050633175206562554124860099855189600955464805443366681130528615601469549533574690045604582649047345391811466767160351294835037582948278181018132499088998335659058166197166026700900024998730721734901183844045943995059727161614937405191616925544789482858137476733143542350207465288822780939481691283172747984152425109923606834043283447934209550537312511611077720138622952316779019623703643620853389475525762096244313901440876353873849843918842971196125357595512932102120894147207166464525447651755853534588043252970670956216582536715104060555529589687656419521209294840507294806756438535309118166606991696127914455460064320861819313703842183348206731076211189290843878317795403368039679306592333097748777864982501514063394911946632189214019543120532622215925063475426862538593644299386055800145737340623838327191221015704088393760392749322360465792592534879352098914124830047588334092859614880142579787519810107870710074194306910194119105898906490515265890074868334344287959417841718401955542013073643859880638620139560029892359916627515519857166850425590790961243017366074171105411518285700701080713724881195106950379507707260907319203523849030768030816979701257757092062224720786098239102258025057310455217362162347115614787713365898417995920616037103266713355298466526408729926359656031551138698605744214919772626821435857071791430129948342424921841890847824853141171125575931617442528622343335816346078411973043858305507959353845696655595348227070965181745303490833967272329573663245099548131998888052817511772296379397924947431381958507330283847557404215206363169735478519027283116240651408989387515509846889940992774643656144979850434536367918204474379097671914960176259590483952129395327551865635251030701174986226455623866598561603991307595987420767169357856212884735152769145878289242037370968504672491239306178146361471853681679496847176988728793338279180940179909035232391496397715006135002068852682781458352705351074276581400330936034250377113124645841801924481637883687234479403243548021110768713509993073153827680206523942221543048372036807730643239938944213768204658422904670569759484587844064400185357216691220196949647792365457178775584967880139895727742831169727513481452164609180570600127733390771107214744672987878458330793722760731439278417949991516768885964031485664248884393658656767908328996546059299814417898280982309229590893033554822130021942492274987064482423844638928185593757335930788458901190148258779049395574054741562993065420281678982353210860672913693614109417196305995983409695446591759415964457503110470251946326992537988552336721142451282941895007583496196266976186533326628996805839019986883042948357061088467523080461565789956592347163194648285674983038036409061969242421396741482865163426813948158432966769670229299016246665749662572752264084755359349228958723892581186457288177327095387305734592868681255809610898854012435863410627259833401733720840800551873052200685934714336295284783965028451846651376808171724371586595780120719071949413548687058224292396867819225483776862284702327804549424027073597406760149642729801217490016943327462853602648107125137540210472642709879486488851119050685445894094027071962228458863907285764832558593160630347261600016694699444891954839135400354155769422695497879830019266761284023804360165971132355015007447723794635926411449869319711386951208937757394889988839835540149468570150559036915407795847275548381249415317778777933147916161435552111553995757166717569460382979991259723615846552909645257653103935166894331645057661885241698483098128221247210763096314746960753550572109679461589403641591804096634836883722214953806228121983357667926494582241713313245943882770321958329119128307187413463733170676209191798693000300341773297916285918732754795957438113967781493029356500904564572713035137015315584129415298264783129179115014370193354431056941517164591005842576896017081051979638626015275839845287611609662763973772988615374178605971357293268757246138907386765720072459154512200167237363997360210208875967581268076950201373170322303888124365874478066551240293579360606048810170600791619455133686834632388531611783866069778097939339548553260478036940728228155847011004052729330965764589091350207310834250750214414653633925563106254580115767795281544192064216185058514416640017488464324987627572540738890655397436430283839873541194818122427600855191826533004683372451940036217764431616323524938092949630126367244485079803779177848707775284889139292187109312955202801145925639916535130912998374940607417799489854100648662867181187239862420063000111455866320832426802064374473935648890560447020184484113027027033546333868250355867010280634151262612739992830818053476212682981662646053189986159139933673455151829305641969560365019117011109097787327972819894183523010755348773157538890071770543302659000986599304973751869880035284196799451096155843190360366070987377211948440365713750814618818865009277952933479263282920482348947207434514563574862970087909059233120762779712431069215342098778318031259658996125960386697742520351962520170352775378803365562918035529954393545970379724845529265415238595017778107097296372321294486906939678939360208535401223881304541883526778175507486783749830471471750720387376661733310451936764807292488897723215462127281557065859561780861218784700961051439567452997760547487685064188547947491100054149854810876037256416179390362302965879818378869361721406739332354973371174650232010078843562626854252637373908489692582887693258183143136241463187448710341399156601658272672259459808216217411078799068085531162583708862165557486299299322194013995681189453123876146987391044181499680899509127642351818581381462076259676828726839043979824944288255862158541341322956076484858132325737594203965046912931265230629769610740725869606993113330140286461926626531320869775176323534350250535805686860544316754452506310236282518092390863303187465026414099127692718083681842812491969240922463108335869877110000804288401390156396764118510474933737364985601236033598246661545703203399537643158403107683296216118875537759295126231762361833284451426935508121394824037772921462477387099855371931123548010155670670944687425277116789839344814866730312566024992143940259972730236124472440445955555769291957029878908014585222882728852883787679550214715885634121162535631680014152715976852036319675847380627139267737147222372995019314276287662886635480422739218439907744665441953732454069859538247601064718512128829167299608190674519980175653603158629099318801793858679444759145322159291972285819184488608871201232399238504829832078180609286942661268240836758336730066740992831134547238189522627904917881471726394979872804367300258202374155181673545352259173141171490145743409434422551466146161928036061490459038150667503947807250508808646662657528136412212029772673484440466347648541537615616038489722151917611448956553146450655108327443313730898157014397032717244304521218397651151980420967960412078842894860409970788798308616564496829905524554919305937285628117082526249270744122385656879206289550296448316124463006293742866922772520172434937781854343725644839330926011233276268788826539856413694902382423178670544769004975848321160219573677085375866117174475859328185168132184064522121335672710614784682313884756416843284222756200379776421254049669358818583401643505594698258487020773602851006326121963970222725082509416505858503444411723251279949890798996962842166923740809204510983836027959762752000066064336983832003681569562406172432655048635200035801978876139040367214489677688741606367778130871431645180836541148675458990664206255412679876232583785925326249290388456406375328501271068006432757696823268617633812448876353242506758508807341428329030438266049102972455822117245635787313405491434312873949678845822971272642920407155938877643992532835448826697981840649025719966557527368257110450519117735250531883551799141182593968081814498871433409082764273093272121823862116814800418047841162652361548914977614504345717742943256651507372821676784351181135353489245489254615295994190565830545042436674427384288343250747579416156028282308212735405302895820355229180276989835512027463121756302003425806662103087505080029077998988964264878035721556844689658917507196753625621252065474303957106218421136472851353386026045385476672308656159103379535718033693851101442413243587641164654734875558674716651672314504006330057825796023420554918983312813345863223523274463833569111759258419753813546393810811914889552776392716198932802110973258131608748801244081717699510413233147483735429596350127276429488290915018903713628101468873071886163275809868713238476655864831573500707125516192723472268905179211188740760174235423773764933670595387587978691019492221654689242167951009639892212322544643591430883829431649758978072863957111133080816712102721605988787062806866407424665859064296252307822059160166597879007811800004850724418473783198027628345777855049547050658120016184798221400035044559597352567164097340242505121380619346286100160261528081325384190476117356247262799294416554040207297981283478306140395065832904086719737728828771384285954461030716679769570106161588828394017642659045392275015737651079596697049313154019447135512645774844049871148641440610102143818443740208212068005246527559457819661989939307146756887797221724374324738085492750785128106189078331100319005726889704935739096254692434858789774498929604317177667921186677857941750891392326257261572257528429407815900525782496170556939709678239061937594068103090073145858016218689348310505643987317034244920549860275802760151237037086985444707800943059373404068024303337697089728484007824925372326148308811240505577398013129172822300139053863018816792617100397890491383074752657127051233460947329556572432993078161313961636671670462746503772680866747475180976140477183388590644322246647136601607775523908197251865393503968929781452903550593047256244390087219691471806695957660313053667290298418269795160986835013223858166168782876714791166114016481592331067154557918570082428212604274348005103289968826862442653397857667431381978858536656824403300589673287426662614807645681285515002134674375316261470077249771201169279408201479877618093913431344326718524029131315732227068464992665954872661514826436735423045847939293256305309793514451220668124823813822539773951639996382947895867242657050575301814952463671594609821476957518092662363888513662658714644196437946641582814708124110676396162386685666489718167173708771558295728304843220721091819287877112176196715345604108900051182109725564763587368345897228174637768706037731941852783222103595047160481619531080917343847892424395298713097453867456861619815335717111648399468868303272382385567345724259940944724263205307451360219536827403739330281002422762731057343949757763034571873832317765820553368013473607284369618561391175930098656025382090696897739951213965973499861951082559251998416564686336950143864451006342929988520115998007326898499006372951237331310322308276007292538744454636451145466370999747616164395646873535908889526062884702387857292909000506239564914477991309904161658677753525447466326172752911309737810768492075634344671989025472659470547826741832503158421240772218158157071926426172019744505212141589515383182366070791511714618746928182653593654492107092055319868033153452496002229171484931522978270672546144391076544423011812824276715752263125321426602164841435704780189867364621067864328626523533870096627916988864755338639635788298826000801763311868106548084439063075977580280243022608149645746505559816071181977355461956501327970813717727926198715701195288023878584181180260958359657633698623485492214135862507056106147953163015886149456500756118065827121719144085562928299932059164283010984940910730556070292281546244073756344075313804200736752967818732073956628690526438113752745820923572719584459718269737636756518926910348978809170567210149259876984175704414712458021213957604208802613225298508373242822921973493321728375333087400724583878078567159686096367947219572771581920067878196705475640584886640449358748109476673373299882664922538329529400356700821669372834994596300135171681284343887241846855130391353576648885039308056279539333143921400931423496660817658860353077363971955726100771221097244920847376514804296173410798767857035628772478799134278060228702785137684478704748046983981885115293608629126226559193935036696855362591888487187646190980442726097602241966383140566333362001448871003789906952070520569032579287905759960362397773597221867426175905663045747387869528998680353578712689831745164627395658785787848427316443227763978386581952909093770745580877679314660223692737672609054307328514056702087532031589669132663437613689367029586656962249026593016131336593932700139491682308241113647349024028227971292459685645115889062999084715317890991069534806272945879103389654555442799388088569849999825407050806868442471511766912664052440591333835441234406653321515649659919642769250689718937219225363450778802235634070671313756078893050056324623850103752944001493744479481429477742489948189716250273615607681843059344396935989392464035291359495149472255489538709496344060210195401606956321019672165148370563224644428569107737929267886575125575488824405793873737961702763803807203976260350204294926142331264509957491309772316670904483735688898301162192526333515314056993226841273971081179644479634941743397180758141936617344885992979687975391385729817628421379896086899088313163628868552225868961213616360642861073266608673661147761284318827432319923732720981857276018466095654509979448868671850350978934761987865826557254933338468219128128734526961714299368931196554929269557745154176325630999498289950313325807172712642328800754295205009900867465694005661955369380889212845393163329388271884409323960781822028257797052353315756362996512906004758254502431397449642801932272566367553524206334689704815314294660347441716119973628089466072996295322632567878761737171540530387213577691454923290026648602119515521598296264129257829721966118198456759479940920431461484791920583197101847913248785654184309235823830459391851396234227292400622873658100554297070861130932492507063389908975918021496180141855641562134410704165991500148447017492559564125478570329830342361481176187185110944721219527440395844178122256884305332050496504321459115683140870079201488349387395089372373073294724595823522634610767107443405468618406146698733320498512333959568376847419497439680365003652492035091057868189067557499929840222331958352874835895518280837497324695774735156071659253072750194840011372248844613748014127425963864273139417014676730913340430263237215791136292745781896483588287288266549965714263721128951774643778760504885766627814597089334552308720572293401986306669119847401647966208613286249448645283508088084680002939925946830845431255243404937356049865029725049954826338073026643963053171168590000580130902444556146562666961238834952450089369711278023733523563863354951486097472116455923471729833967830897242906001320756961897536122986409041600750848555355454366932455674030988137815345901378430801501021016881544327901784676134878736965126262733609681848523528954137975687684587322490076077158968721491036597258864746131337170904394409653237815633683879564131061660549187433880948213950822369224763484023985807301711374783857114331436590918299211436308554160069387602646102078855622906337561942894523663287532402575542165248265372353178721715574660979677227019945922194132806027123700886659131290432905599694751865901466291621298552024879681805667818904141212235598091270632047934234138434289622698532111040580507746237500598054392928670033891337014375230642353968400914839866502108809201609454960443659397873440081436620004697339736621014246744758323908527245527335616193158357647868876455430824656592945134679088357705471756369453299487141797291847267505440541174747729341347649785287724002884081475645168256461171682954127724458104355786901159889737463439412521570800642117060190712225844827089912423396382686286538574714356362709158516527950147611420898489735410133074011919281730267250875728782556194959347589626320883960046745421262454583443213163542351403147142672591693298431439684920097622025925414578751510361758223103152905291323321031049443383141321109666833481983983288404773669660782562969051152930741526043266580551183085246133926866240717628078532472428344786770068515638327032781795674545562406309856815521538558286250469764521370434045694883557150331506353910525569155076917727894172568157348802382998952748489795275865336560482041726241365408146264879419029378861533918520363717446368318362475018263930324579109533450056033403589381872850354894377632932141537578063069459032046831859999927542010866292881120517349120653088502416863022851855984401321010442992188072838955937962198235725670564063093471032142977390411501093613393311207175610886569035601241428174952939912905245180622518481837706083324406109336690633203507997514899353056830140804356887780665608437784795823252215702834312267063890370966807934066158483949529100283476107463266485404124291802472561703803330562819951381730427582638225561170047630802737029235044208829698598612285678970014894702515818635215073034559424459251330205779212013512237816399757921344225369204712027617957242947352647679994359558262310176354707036307776337616962367479368564424096767865115999152260065986056621346592497034418337165575208157477822440897555950073792326918177071035778865740687758766192327036494303751606262517941343728711270883976912432359756516827504705554181615971015966768842995226177392030567985194917051205455805041634976459004826476210924065818077729127341473563151685806722535248085692600126905817339416649018656478938869501067796221801718649450191574229450439700939149090317077511053163423779279909395244477583890081682418922217130690170693547737544031669824780910793605112426623672850309245660018717782102879405284326356599736875793014928100584509132880190541972935797238158126968145838485582389208030146308869430465789613103994952551125350375382286614632844825157228888323141626343185949067609338005380073043300947651952692722682328672137975749700340541062583000964149911040221150253401114379586170411566184462547184726013893449188839634121624719820740770440654574115574687799244966523984066356927312580394528455194091779823566285924891684332894279249836640440235566157407561997781538555947886857862308562675725709267798132673264953565200531264958585045662619630639618008508904087245298429258515670039182842098542861919236704572492457317473292312115934741527196596865229092038029796790097263944071610404223119035597795741118322906465912248632048070173311213519234893026535649829576295660122073240525370238305462805836954408832669442814128538847777976998129441410595580854990281065614569247526279184755854746568311407729634667412718165981046106350995939533788103028006413685524367341634286648706787087574655779426402840300320983885375389956975525913628565378127759730136868037572465797994872354935861551830321938713863362217591173325738240610878673961394042990773875887648933925428881772239696699276156261024484645439917950867042888045857713725204529328966838049158212081462853642610577113498104800644021107591433395949299065694849587281713612221365150548422026017814616101658549192413736886156039875526579689548577259086834315713296300654261449154928456632162230425131348926070729785990276418516307768400875474615657342453582483128384891365363946120666005389192259814948286157375130614745362249618052978461777700293280590884174316554764515294193952665985529317070207468860715416470896175963856031579059831953122787181833645150193863548051138766513573833835313219755148680881071955474830289806860088745774552946768902934714499349026228434564626570483375286705811340202909551101402677443620429173323704408108773355113040378661812888253573307260739380040906435397026314945516369477343183421677729522237227984198437405740619500128039613235813333606426167493356451467324966240295401897832248120358564220683541133516800648065516032891939274258495583259296595216852633174682057168705272580378941150948634862071629462338869378923406740052305131340155613966022847431998721415627324689471935696743401163601813570401528327841297672620932293030189615456569250058322849654663467533227921588034501395783933470436314963251354080498655976637179543368250851671191807304330925865949310131961686552185111346049369808800997315252745366027784790383661357519414670231779403223988796263293936359285132803017842221628279034306384122281470033615739085130361493683931666870649820620528615604590243866253323420529937443316540837737969136111518654531764750414081648690331096258023868812549522154350553394443684155314534965504986366031765398774163948928635534258572340323424491091825109771593724550787188795288735050428673494693202081413338735188790011593764922144721133352651279319037986050088854706571897652988990016492588147818570570119064509260060450470405543835582408177925444755219221726696412963223919806285805700009685404135610663220663006506403580434865196074899457992687325059247572973465739757039193819059142554584649328270467949964830678987813567826539002829408763269628273337570559331418637919522779435528463369473356629284242604010229451706818261964204184573537751699440595997237227550710279406942786001826999891987073620764760127436962335955303790647771795075428047261455978370950431064723077487363974701291200389685426679399034726728672635070929735003013187727990016813111839234748025476275478216709412132067560417443091621273903037945465585597570542249996124505264477420577616895562775156987614771620185913251337107484306747289218384766622382095314626501231510695066167029229997288436710369447676702735275077830510222305114695718325821768536378108357366881603862183019598372250198302178983683631202844410845504805377566424767834790869697105699852903436451689491334320394149353166281977934520254137485354765901603118808891122136586885630302475990954228083444841965044504682609920593771691634666001541698914907990811731913542799588491537737024675506894882875555908583445445650167500144014184693451963901612768506180715667730897022489340388216159481915089969072791225673826089989212331170030584672934561639143568513824297998259620606927204723828836450157096607655161478423506297995888434583253892426004702748051799537049450035285412285415023574098345242207371708654285605821493738683788029578819122348680406535692033013225888137622750542477019952979151063711171729050502016230629962054440532901823625774299989653652489580305727627721754188809520452993696988608182278763693304556943634048044239047541983599890673251723296987202530360985312080597832265518016067415321789173394481861813072148529540685243414256398786190314989909179601560007231571268697984017974130886344263439695336815274762634642595094067050695842494863709854560404780086544399102678225161363557972579105306281714197179226705183993060991762579867113902312593829874186995864073371732737680820579094380303053332865951582363323081376018162930964750414489121634405163861116567402496561300022730201913161189004498774737234690664249649371966763962262673629948795871114873384313479870284496829077960258274853106723284924925711735329248310385620884300297856290728008802846335779051312982315631196043540732503796812676712392139280107165856662763917073511995171067855086633071449110848975562429553994995486105052773380514422872692674764935276864095250964380813132029768328643478860554725861346773577895539115723662267263664552865540139797641485966059004658275597359787439931077586826835764706868824649740270912983319609695697105879740331670622769536649468341675160538112222821838782610538356939881263572447130907559986956200872488483251119481702600260101039659865528778151864541716771765521637704419327503378061037287355535066903263818042636178948020480793248132388235033939452531102107017872382226633163306675451638803965702444121571921425199210496808156723526731031633289814908331521560530240181256883601089747090085918388347674729084396820260900874883545582107078299105243308088721692870740676867639590579171210315934873703363297366455304480349036549087758329577208093689763713187024467162282197969819592591579316415063373005126076522062898563388387215097034346275841678539155084575315712624447748405541531701391455910768729703272741928991657275510149072408039746352041728815423338265433281336149632312525654412222109908131198084697249741691924322626449456207966870192108367949479454906254169417558746694060501267259339416177286657114194644936498028722259961933341271812175520721563034090260049637222274418846247747217496226145303266196982149867474842587137721833684347806190168920547908952233801798488145384341906977914329090199401701805901314229198117852727881588915748154709069286714534078278403686200096635340942543034664992507970045863628938701811125979828600127270625032208005549136848340444868168526017323861183360880626643967324289657752508005082597314794491086823942124633427628737828854936333820620002707681867403522090477821055939434702233070943955453006264745806246367959865830660896373508990576657865080617094991670976998161428427205096526728666309975820261159585801365724896853271623594769974213988781876624714983481781730438518197900949710080428415497338152305203585841435838923526089290444777116766885213374681927145944673604700162530147116275560755053423437596303293945988242984174929067678809626900427450669189288299883042476579749157460158006608874262371559850905560728426426985809834818490439828023124208008835367995696332316918245414974695067469011848375346673746490354871509739346722813664984975665561025718253620126597793250369832159687500960094995960676419339593376470538870036507747022107151531983978651587526045210614192521679546378135172030543533335133769717598114065016701125500137938832451469903775530308357007297420537395640014775352454163275341428023370670263478477531911905819119470340311126912652025629626847901650221770596358202082834675644969806138319419013378301769737714720630078357536580735727402724412588918672883022703791441137362976912205569873162789265251147253107313007222116071829438740680639426144692032804037719558571356328464507580841679188220189971435744571884339189705395144659788039944398431286622409522610305841420338227959315775534006224574515166872260933844558417743550144324381886269973031399049653928554034493387979511617001870143893175978934571262274712495022480875209529820343478441864661087440035081819389568558120874390328583517616018450383350546200019312519867314150820376582942584691827986053137194159865269108698251652635221151910305336856267207768511543610428847410276636468312764685209816167587387272283524111118927975359798695001294679149442368817048174876450268691758751003575547517855803605504023238197764161586582340450126506367740592126397152268423022623806581862121752751919412102970452562568943803522578087307973412877176464315044455098283798118380909453741431291612060536047495981982364559346935023476640747522816821454485743781467447039992517281824979083731966926836336248028559448510168439989688666508953411337287915494094006080854244429439744957410945351637223975574370758256492426742471752489008783249258550269768659482986884751917735891134480970562687801665328978243426908484060815067102287131206451776315681974538864370083730340879701090272531881308273678537910347506012341987763188790563827385480191265730856104163367656807644270655729740608250085397968157343850622123076919261879939686529022026982744854670486494981674480409949970699306143131270487399294661169479969689235562879711864904354111382517604358377386157391503173722126092720078909578480873759651723465775977900287430886238437500923375275947905086483038535044656791333995553234940931494384386134727266916094137116963068192088127459692020036504850311294134801120506812313988300416746685568647899715334441185108596615053243722202431840545888886860279518382978098886798660024270398198882603744964932558110884109744192260976590542901134955222610742102337270496470003768201242625332490526466530708195891936901447322592033137644995380391789139244722758404192517794336944632102559653147131376003761833800650116152798018502198800593039522909804927807284462848578799079600628576032904658390868401529847448289392044372696005561294607314611042876220120424018691023573848476295468536140377520260860229246063789695471367247474107526031868961780170128786542042420813216249620093908538315402904219734868882052857095941063292756500095848242012751874814921213427198797387163446256618469327378099965742441328129723290492987602472691314283005026623861634473861706762046362420527724978477794656170316946865878365970657824232976770392964778220122167198746583959754708440101121326405183946511492068338745542532157087944634378617993686395889147119589139495327251582202796687863294255882708881767173602405611192125955481467861199536126115203121018516444752551226493274229758457000064263253360621794749092843797924498903458327429110245655317728559972600057898547242578394880718224605674367755444838900004501744752768401481904318757844723381098179624878868145509594280193989223057877055357498839560276342882299142632095703253977195414038038710941203482768975334269276265710700725416157015227043351588324447031538136710792136799886153241329244543552668833413711641659335564885007967577061706962766492306755448547446563286072993946110079741098830317193596423691259775999039247027182142948566290795052071225772222221909086587091026754132389854371436115941236832054769171809951572545386336382635536433917230541074942294487508924348812762359880991466045400769082199962680812498579509150117964831299355654479052088108743029296549392157194919651645097916805044481445443830165847210494880407226452651312269908506765445220482707906268940608960513281868343438982687417306274843920556451384747548801803642308175188902378439570458265014087051704036535012588471026683897726803404413895083987023096667684655384424656133197038203148003163603445737463179227752033461626665261200303853420098107052434672884088952338297816365794867977185941934745339538443943536449750231316344793625681843695094160599893063157299113381010439391253949876402143435681923385534257462511204925579854718960929373060036653076489899517325715479544025503071390667966116545292040044719902219531118458132717723848604424204562706026847865743154235864275860348419595435643590239540800337868594058013497300782934160894523881797712317839948732815344848748529194448202719670205531292629770138593429284383731259898174012603431465414394312516273546643888001166900509816214153884142731076178327064456375556278668190891107201806592515260476267116769704568230030502862937649230011962029954101101258636890012365120119500159785342453753802117685205319004599179514419940253453841769016876425733898895300844767383759091760524606442055926377961985800376201323308322040820472795400475552263171066018043015877709721842018498649491388137929850236221099343238446962319711708209061475757204692260001267546100438422086144863240387346622424793356656161082581205053583004624970297637258850506815516393324960665401840327541303934846485711429987381498652433690518967565724666158914939507361234881334408034845616487513440993950358375316550668006910434372189320011201433075080039446434262339617462557262884636948021611642562163128970646112129713385562924262080615372796334195088149526169053519496859607949990030090296710060514921115697565868794157901074996848369595613902809927031613478428897057348355901163122826778688973593129131764970378060502568133507673392377147455177756774904288465549783464993148062639467459023402871731486018406291172378874660028952800779006179827401757525834210704868355927690267787663985641152369217653699104415707594871094548633742064262421358145567744282339924820833055239082789107753380725304794533266723383909414032756069880449226877262989489353366845397644257284743882174689078439572933558228142395595031464808684560581272350024203801283308717248265604332515238434786008760295844896008312529261288393440997972794091513774337086695326589285102484996482195802467016009509434998468987141720663898632475520229147244441845463519873385803317626769742930091543741507308123750695831264751700469625087553637603948356674870807212399131963166478743183499789017156288841510538202933665361883655528343693437990608257637537016698184726640993325661300987157947194391088665369134848840747331246416937486614374403009046362900693919477702409698465068643844626090013568912296803044302244967421559357082775811729887305875820147597414594487805550861713487192385284568056296803982450522213143688967289439696697855553878204702568703628502871642928035869981543384498971144846149424907114022298268373023524353382515985725031732966528288368688438600115181261064973137849313703372336911380209095759828902754830776164589094563245907100881236440701825402683770982247761280700773516139279148763611888925541213249648206385878356566308648352552163166850533203109772168614765469349802330042698493268745617020310706454575396631007982861441291239422170037886560203670986102734297221034022120816302962143440703606187186444493479867930749987655494083797709363780821082616601882891001049057004612004658074239307744650220431042478366942883768173067154475070823452078942665215471193596252865870369458925467743457009112370499849844181797638599583486381789310322812945240642176289162130269723599558773060492272974358203130896878417012965869628682768929209073806247065981439299728627331328091472351619342292775394801362397340234081877522818630325279312762715572836996077448053843595988428688819806105718624515270103297396767759204447297182678991758843712585365586902081868526335199607370120029463453597810818192432909410160001060483692904814859073789714452999672589992967284919066089544822506694589618053029511943235440100520722471455738618211173006726076713547152983691984990142208839376865953000698106562145303333986001409784958613047387626556954214438999169501848175222841010726634681715540373909016291660235742462609314576943501912220974926658460312645908549239194798039845053009360405484881762789511091975302378694548611032634521875209747971840598855430537294400862842468293507316996423767666662346922228619382636646346296315611212204845414446960763752322657676058482899067840220828849257035003429222216261386492393481700125545632013164735982114798130726744278620187365886582064404097881926006807554328783713230180386048082989898909784507338955132658080338153919749630824885519139406845981140822141403259571928873990939000156032131798206754021112763611003389262817294653459243732523094139622859680121123120786440468183290289713725198053915229273201170571671596285885741761402510312660197204863900533197099054308252500225981672437909566196597283352641648967910331151329095384802039216558420868154910761257205222068616716509390897957244003774169846521008466533720135504130556627626366006557488897743389512801278304962451194211511003405646322723720079474409921259915968893424015718189969217013944022502898518390347601072832057812940607142593624080138728193685960214925038617706867333938346533790703168517107215999020881963659226421199619708487458256488780837077280696753248130466852325844789538435100911906403924170307746186450476207253789994427257494650444391244075284452832702890611057167213297531951064439725448179023780861651095991568436430520602634152308853040885618160375075944918475836594984241998577690064047057930531677508221045935443551122446692749780951515686798586522316008041555399107947285891909571202169176722488996437469820625665059039696795521442315433127958200285471343467349239369040259757309648048967598367937913772051637045346456151234722448221004882152478269508366840783547957836802135772476897598959857632519977955359197842397830233883674679009892833206129497857288598083305904729788588158472352459815490381154020629278953511030483871132501043770369040783252949024276137338701636233190693223823570446856334958974132824709723155110797146005119092283663638804983048264850041937143092829384596867517860435982156181204869468858757988359918547755193159706465712708933320808049106759041017778838564932412966119330129219653740278576350288299790531296803036395723542313554430215813052786583207549669154399425023015319289795799835301299899647245474510807341198366893031839112738507731863609083148218468428601719021073074905353853974941045956366217994242802849737469185528107863235918042185335680044376820026596145667898692964882602898469127916055966398179613253950667429891126721294053744101524480525196807149173214892604955162948020240013920318121374568669634790406896479806528073984648985550630024110501961089611893733655180448860657546416571327716995022618069361541741958672477423453914350377719411461034882650839463479797848705100865518115575645213899208619754252982286429332312256366653000338585086349243446667255435274021144776279267765555816794306273022677777333923095061769776426963595466600943709244861440040212593696389502153103121273649825967215818558732746179160864820445441875980174528528617757722970276989201314325447982684240810859682438821684540748645185654810319127937356677651394114720684737583684055188400499348192562556965208885017612544753327070120500362219938476224782147295937194711561722499963374090653783040780528281013325763794779954207385130366509525986546402382116337400642898247233093400199954790861583208142555455863009363077778228929377287054871664199140989613065953873971489437148413030252504129638078587201178943945745953048273968593439046579300710112664513157345445068428386005738459408247818369630351692710075100839308472921994418772849335517981681321325562943323384587310377693385112595981670059640160887776213470525209765931998867725722138646700424563616472491868745608025676221003329504713194752822353416341590895830935994447283373438140654872560474410293111422253966773495355691119086343952960476786111864568577887421303574107246927213245347549662902798929443966039792471341719661289857630196436596108971293864917534231574944364295072026329302419338871770992995340198748954051872294148052357276192291215589150829843123486006403730351490791528939449221104639054809197583491070835369825560002658851154447322289147389072816773104729580888109723310945208855588549846778422330635074410293272943630746311481064370332220958725369184287483649282785909571612563979403480412886890340065830058876254757769837440438140299663294197857557373212348244211660326988206050336875164172964000955078384736847152733745694225824371594004420070070292719092695752530694579282676048889251243552989731287522503201785401117299509547668205011688618824092534390511271110104551216414114465320529696122188322688762218377506197494570121685796053018847710570287500349737412237454212052269576477180179457839186255212218626193842653669144741033816339440117049375032725673347955613819389324624097458178866438646620936916434876696282285842061440159672166992877734638342137162624208150725797338535775350405723133886992958047645917376827681085831831878119964930393997973836636584375854560593262571808541288306691613846775604840271428475848599570913030420895327890437554617344271807628283034594069547695817725125781069719580628348425042953186884282510470984189150562703751233506203995405486928424419349140781355595925358006344115514880808870391464095511579554627762997019228797473263752429996321489535779655980369251052530760791347244573324185770390732523679312616030214963649979832189905095991688764679247002927891002467743725521412747235141700174195705238140939776547180390881851682971222957324455403203300143657442783405244582047146556876157257606188151078427733315749596507031377262632731442757046964155481947221662721252365949761984321851180198167530304686017627953451488723779426496462919488657527983000838721072014656309258848619932077235269139570748940432057782806576288232151408526569462816428332482328746775505043345408049277587465955747260691928500615012228040586206786405573897593434332529262639480230188003500567614801329621207965351442349888497124881553007101669567921049502472768534689520786661039517521236777934459465974804972829600666471345414586053537288870877053979517419924269155867398491372848643231117422716672665159852180896820214583381804478144806552494892108764406689189466593209960289557136229187618257721557742817813125536006774164486175579494234434229574284025660555741302829635659562571415470553193097704688594205109823038122542128755806594581109873794426292299027846554670710889132844537597730242806010645133421351745054970042198895346872090402385156141138877172689014386857634287453601837360020906244027142435521255376397174379049757863709078800438506460439866798821448622876979224957696945592829866420059203303973202944818968334437868879699916074017985925788090248864272055268402116623807534302702778719794716891918995487095158652471266735647138514671808977485787046820151097720325884476941573556597835752165385381643648617927814080066581059970477036832384067628420621708108432728638405576923072683219734404252608908140408897419324367313451658512867846460668280712437780048563587468099189569577045292242001249487233801435929304733955747007487481933460952324933198232553254970221231353150127888700303189025293612726958714006104228202084343257162332269772101511624812587549347330693396503632719699156295745199453521167881942273766428946893826940301837643879564644939795092025628500508216720338558789088962974483130797110028887829831518584521962388650269540458555080028375880804560911164835422167305169778582531604760103606378767588578936412798890649455124799021805018761932149304158963944770455023255631367209295854892638928817953200398725922421905184470532237297101868773565989360459793240123703608672402996975466002595265053761080667935713708680684457661901228448595075270494407584382050152832753291903886542127090612986964437682906480771755885914275489391712879702156479819163696029382891116390262339142996475237147318169570820223484487035595478873071424011816954187410914891916087973656451217245442042984632173954132821234100115023261944838126543098762841603207386627295539477943236323881701090415386354137099341006766064491968523674419140616876456856173916176000055382759972866968204986109307486832779040824906092656546393695943502198748776088484855110744200493890305807408064415530697869163934920632406928284921601182450207082096230175737218403908448924540582329789416727740195733682243077181291998301886081781121742320543655407800500680594642189670319965544641521311452257203086210749587430537559435924841704779006886224419750351347997071994197764858212498360945781426368033437082049711292896895645631936055423216283369963536617032632675698136924732419688033064431184404657945141943891460364715167025226448906204223693651909768145573116770845858357201124234750220778537392381133201424240161598245124712257139591372303290291669409634764602408623999578512892729723574398751380094780500721777938249206885012949807335304151300568106672352777491869209167741223922265920713455960143233765886130879378137324651021267122707962400857607440276210490662024628780353590054653528512965355386211766857651119227032363784213793847660304666765397984538544844103004584617578687101693765159311459050772326005240977346880664447425683517941400722525509291691076461155675415961078876294463126778882089873361491228196837011029176284954866595679263295417605416736490815304206666310803315993728697977698941106918156206708357563989677851133535723326481062029444806426104126995327599757098954028356949108710478491508319227554169034300367551638550349519258834089079223609087110619534384540592031442474973214565444920881685334048178291101982372507060137282522583490658146955642661869293975743518502006137993948470545064730548672770443451317492762324790491019055386256165752217397011867901850807442593545323792319038266608881034660102541876124968649619023836498043484470692229669460009914959267610974929509873412484783485029111720384148515173252400525202606233595576012568129424527516236914084292740561943040653001958717824731860583548169389937635560805436875127141445568360809323411752063763046476124581490859763149898302643173068153273197787069314160881677358581954947218741071818461574528538179220274446225009497713250420228768900492722129180776180494271842921651903848985709494900400562689662034092355552937470071955152700055080153201027935925233796404837733617093721258866463961242153720086897942546100689838803798703178932785565584564034070657508988067047239801087300878736130358241299272359715567122743717785165063551459032026339482915825942720532646527771248702539403571890341199579814978825214257727618920760394945186669236383360994974446378534975398916993967509502302279403590707493978701295546446063695862306079638605754223234728470625291020363711335750362000387117676194779007358847238381089809036127910396733070769611959144657891504084934956987719202385093103325850437063999990852636845217607712525879873952291686116299753551120093897487018585574407180825224441660983733786202743895614143197030319166630862041661319724616223622841842695133780580933387458123072758969195137001952313350808279874579170056555394070973404036824327793702724959848945398843859673248670261817213897867454125216448564471082136593583407078755066535172234953998385840343988249301018255313448902422161658529753222947094026329034912541244133815906573893598757942309187781093485983231177489319273194509072957778064000830171113492323700830478780028032602273788158949825261937067390358075288899451035331247166011762828656662208635993051909136170578401744216471497116776804901254006595367762553779317034946511338563922456973580291942307227452284504352996817443654227500351114351298244657444911928728937971536019280431464085480248842200748526611704025015468178213236855110793030164712601245474888733132541375995018916484555545421255115541326382426177914288635318769781809233669226811629348014587397906744953768282930994090452607747373631127225916466948255261632731188177812372479694916654245905854787194327769913233078759238935077241365565993766367049470708258530811148639442391996321707224625242361252922947307462486498570784392680740128299334751300975731044371883790173141435070765599966543498165257442260046302651390891162867872174616008076814144874768003647480497950672750334694451223639486850382339822122250139674249705554819946656675591090253772455422662330962204466326652782610913736597600492783237308274757526805200032012196428857744703562221823016560173874912215405090444524157291525592720577000160250769755301615825398765473801830904020467355985072980813368480870646380073665229982061753743972229612715366817786640897968044881061695454835348713710137817871230383092197059378018544873323149748764653615204770572038490836703247858325697913603009088214943136271882781144150317497181859911433921176468729240271872442574834255157975745439521628388162238068652196393944919522731461452231026225486247334544769706446470167177099650640768574362185880132404571611650464221472735256022641143718534233326638214067193776046743462141596582290170019504932141868449754973199223439599440482490660307067290639891182095780304795323799790056573510602774378320598173811939033142107631633359402968212536318605445766780739390911170689685536412223410507159459358190721891805686766057775715711331347258287408135778741498367596312129793540149011017536738961229575630727171180596661107653113998090058046542000258010383638451031873042634707086623593871810982249268749366298856611338306457149266775663362184130986387040783327246192389376678501851691624090694157482463099265095036106987970040955577725371073448731367152028166581381083961547456080217048020026587573161501828816699415559230744944617031715443027526516599207614053114402414740600611085655491953602652438176354691218692818035070562421697012440229861042916985359082817680065259509409921022653307544573106902456795898770490605859272669807372437538763331517870448521838460631569837873436641137365547777035876116683008924240259101385087412040501549877298121546603303993333181079523320451967544834684129313787505002228785677727291970526641260641059621757751827645229176364053041227973408188338838869838303131042183797173263227932050291967692173258351305412106021323095058114514356770106476777420819518576769840123694555747839935125538392816685535967084005148191663428346379104091733653924856392158738767704106825147349921215426226654764915034580864646022429986791861291557393335818591640041937574797710255399878098641689120693150129359478460460368955305210140143800322843340428846450164646895052633616160880288611146921711335552690679880565175551113261219620542775008152097149673497838968758114670116934027201988901317482256954940575882858495531875668787127742647770500011392766235294499833655988083530975316269583665659650456372989985896007722828951320671696821345675897185881294215347809923997763254568230527035177669583837680819641593099530574689228508048097383682033832332649063020711202832691944081559485294133211023978317969521326608081416997664098204491511197504353958169916507511035734745739426356366190324238497154758223959424574477562826286902907667681032205527054389767921969440597247298056079457309515618600445479915592507712020935016340061572263783050169336922274564658399679715787955100076532649304047900737911491359390773847162827189760104896384159439118934421189575243236958709735945827507692501654443024208733003435686207810192648030186996305769081910724313171667114530332931517014991074061635999006401167700004641678743400825556636343799663288143526596058480119546235157558972134706520440725211534020770432120242970877020760462483902225107442814755943832910508157586864094585743206710250442663503427627089852744906837423734324169873550693905920897841039682086571696654508655071037874633354069915148904139632539308388861932496489156901580086797361236046673097850508522048684435036811370538890858639356965351465621541809900994123141778861266101611606964493779910995933760062461921866456473082566873329304405122180966671450027406865339356440570917582916952450007128374404790619977480907418529519368090766738679405185703886508014499609484908072063452258978419662015818697994783693696929609844401662107170738593055928519647707222529146969939501036021012625216978441800290970883618811745235791538810693685120467697290609074503516248447890252995199996255938800653292234850397338242350007922272570755279190432478691307932832686083772062721927081113255737744414801081672616953587641277148476543753806279636114159610995958432763876824294918003424041139509247500888975714394009260647782340805289369293417686132139331993892426277683192241937915033903856358494461408713624819541189192313685468560913800405120303723645188617728425024580788845605374753314429647843266647856663397305874680785482126211027703179136959236145603826830857287631086582235971481637999858718574415570425630842458427050607753709602546789777762531412097993334744634072661280838010585875930265436195988164650488553581110338373232401585332635370790171468536191986586660396953632722007436849943845024103130886801333387357146265920623826350936970313914480513786865451845158614421495066596646819754162718637197626316856603781691613899201845290397351368882704579743254249963330013876226335992545255511900940458724939344634592211484596779177365511076549522923507828400509097396379697350945880534613435006781815116738543767674478061826214926402288127852282972204451661944685070821157092629212987075741818613342178412294972713660162163368645232544518663405828852184622238746679026385389016252007880367201578469183863008156434364469852906048782864400594718297871217141025312980016635940369980379123676308617160967905455067921051211108302235048456170138958782243131285228354048437040202695230009368338144717483348740329935421922051903125041457837677336825850156521870237082669527213331234615969122895468127422882700643465964367588464974669186555928116743008377994952044970591546109534648748777762629808134492397146305749764926409089595149039281137949252391803562408492219292658702237855854284946736208379753503975427757384503602869644627836370101111693794897574455994824109114355422047893251563692589648773250798990325040869463939828409162346020617625319405968314917410986593954031980688700881076981405512458487415066991310798768316492627567459575141041515831885965533702350459956368764862345223692300636971342962722875185780006718699456158569883126091385012637515706868256838281834255414069866050342735939615545732174595463626524682584601918163353047141512848366076355312355210586369880290132052665569968464616468789251492777098778544723069190640878049729758680953472785037079875106010272055008588239678152882024229524969872407717164942282411383490401345523496518884256268915919047501444425478055613908162393046188288698936459331358506511207367866143275555491222563118524528330919774600244555612970861877645893109175395106440221518590383356959564924900207491913337664788000349236204443547655493500389036976483131592065859214774180671494267312396002446095099866792392411120931677852107303572931482846156452224080158260274935257146871580702752735957394078409284835244120593762720601460711555239259343994399092448872616406149465772912791614347233578277649505780309805087001433914627489671702834834184639669692302999072280313245509405557268727012007569030582492688752084135692405413105102732491071008010432879145678305031055213674245741493695418514384051721643260922617817054358276752093182614369482383030495361955369125734778354326138464046281175473062041588829202264374129765032717674501035655637639699893539629631065849805884510624877709877250756036924022862558662099295339975248598995377858100603618827419123191970865212899610201618240813602545710044752828814833330925720903211325042556690888698841426239548161847486287201276082202176165505009103201914476049996107717260239360187716059127694396875695360600810100079394636475000616903190670655300269813397414813789753643035054806468732381894090544602205637403850668652000017831588858984985736909784365008033034903878889681864171056469518251039484822429469935302422805942596984889663154323337973154633328893734104331470397631209072228872972216693248578995436412536376289102252032313540221102194693616882412839826298281520056893068667089677499904086075562415927446877740991041263912338051186648384179386472283719883110018403968434417994650283213072816541373924783861671827173238643219912194535177828466558840265988915481743027638287658709731062351247582285375548557892498805781536407986172807618536493131317386092124139493351908502100951944384564888380942832331400292917756467081627111809894552663754079724535577822092891243349315932038482467275477749085654996527572605096015068201265782849849051841052493292155627565999253257761559812685563060122482766836231219527414435514888115297003288238625801741649167519125421874333059153192940491973390883447292855341253233806600826957790607502893762030515999738133583443532137636902112908655828899633724058419322920311349690208845982466699386160341298641858786985144093451484240299249454239009956438897127628696231627891011812228134458255574857336096670840566065189340579029431798372390863687685331153900422005884250204231045020366684291210532734679913991436909657941946831579916267648634932497878890057593570666097268285284413930295850935831239972040883413839161903977836787251435439334302809645651197564583025620588250104324065226045487432229072645281998416162849818759790765045430914685099513718839624057834225870272902281048254399014547014362028424374466114453856327011886323375742085417504572870340857525789068854037547768559380361148611928669922344571908791377222890169284973619531028826837585339523821796091909111812681731617206826283392646709243739113972487095690281192505386625436574460507647551085743061477527557319995683888499153838436191266820818183922830922999222563940504950295979494460221681547846373757409446202009774010367009406816346139027651418929093128991330360253071650742324474688975172782550184041717043030924413260816686552360952078763049020038930861044716127807269222209790393392822142374962457404440201054271442461183639217507222648830940116315869241758485570989789009047663319494749141788050182256270363646079662498980549806203720949294647674711010229675992644387851522200755144629113066168945469274017380496810247742599248561058096746305513322599617353125047204508321622849583568305516563036958664788136116640768180348404177050791085043003316858897572562958236708125838571779314476625575866317301740607319675530681870330537515155199591630657733315343802538986537224303326143161126625960032892326577276618530228739531582507792338562101035511102471291308093253047570318361883940271965179173516384733598702263521323377513200413346680936191000626292133760857691093293479116485396461899968544659844132694796449076473438024317741548826014317624600965645637788838716257913832202295639897255019830496906954866274463964141319687312720769560108760243611515210576744461361862872464570082412065081392203895194120430768610565677894530318606165529817662367492696922846816274992552494072814552365474813760069560336800607336874326141564407849564111457500456589610046898695440131803064757660060809869570979009968502309103562987060246656861614583878542692356970713511904072613663554695889019043735880230669198959358212025819544139780135588401707260130320861621417400244967892435942210178180040922868863425454892627219264172086309846423197720170736747124445538860517975630071951335818597946200669642405260317541855119576279651286184437024394236049300033447885609105737372133282532766602107057316525561919665703472222141182369774531408831378942648539869622780351857989594352392366310799751173397931430138076589493501836761344934030042043164814726810666911050866719888048954008867330000061473794972016330234333152814532427397241441796178830955391162146546529781910802131115356233205736390661078954898472379351488881972408311272935697123780620655391342260300333196369340015684836030637843538941851054973463979426811051683392924092244673749519901270203697909056969379079449359414980982918537079610739439205323993901678667815117863253918223478377927449259549338387863491905700900506862923130352024834377915550185310842054045323083136920290241388757843038187127620579175404888330554640304604855155882462798977684706947523725178649313937680412068548933555471413601379945213698747260006429134352036548186182846766159963154221709173469675773318523063090199178081899807764351000900688297938045105725994064919390269073210044763123565374879876520972290828795245488932936193385805823084126459637026962011278946417069272545864157099441119380436687256871480090519843099723229014381690390208709964931413417147734781566597067089887408350827992523740188730979508958732783980258996931678690737307934529571321785567090129786917645077267050180509820843197933337357576191966007498614501965841719032628617332240899216775299341225247152563935552001034039354199727511053337628915348941686329471779035091553437856312143855950408074521057178543620422194660150139240757072228096076024407696412225430432458157843769356519521116831990885246925213087322429353470040091372590875279245845880758784017986399996798095384553238904079079781955830600558393238365894552400016547209087560938706675332647820093125493711300689537405752813625436188726345899719317059759789998080273908786455356288248355389425784166712883479835263778753732150430045880120731598738351288459764251172275060613634013624334676926324477014167392270970609679161731709712668651580762257367270486491930536630896616479421256950347001124313233666203741728150200491737757917995974588327951825003133692746658230022220671849119148653135090628734944448848366312002592695064089274021216491424902387394064690629332235129062637072781665696602276330594764304866829586281328650665147709268852505295329782827410236056917521373245827465604836658646025978751208938644654645002054627008502002498260781467028423018626390347582766793727954354412887208583422521356867043957685753257031550407495165148910376045241005518103916328226154367213198997728353692089062823805052398111378881481634216280081907644103617273885133269126304726632094171218871068038689315065090961728909259328923592703219747419235397839799469626827643853646728903237717706309907180972735900093961922497325955591097323811608128109493843308213928605665378583129021626784616723786475572285859405364216726241063062321120840713300377237052438257697041453335421970369095083915279314568867016397583486214432728982407655183733274025323524661013115550513795796389976273074779230784518444628029119899133650120849357464189637778233901860733542916866953665291531257280698540003572224196073680004539900859936394361047579795667149674443314873734702239141111319126353596589904743076611871637571124236184904380250276750441193095181554531113235134936889058810115711901611755123692683409002444715102656742057063178765357453431851029189468224915340890827628942245860027559916378986201489296178309692700214838570651031721827227660200432191659095816146820653882581040879632978585876710301547584965250882567080556185687701914588658574128014197725847349477218252889903957869475207720123852426939024310323539365745571577357955026976416436250329190522801691890240691894990029134635070594111115780089748214596135640487814924679201472604301536172107532304797761570845178506277749867541234510469298504011779245050411841993395347627862279787332702619006525708897316054405061156482957744851792489189268156975313190358510098340709331675447548424790912007903162452784715666614771415281992576865494177672626925197855139681128040673170568844912104653842693016726853166802643189500049528479529139387637015203052782041010567464847427161759498412026979754619228086243953468759237825680693222809175236591057209522703128140226615064757019701058978117068927761731554091624342141053927480654897063694821019626465363857670418680464302043830893379849042798620619675389892119628467641850423599054306670085979964319660215941488887720567939123530424095750304272194633093358382816333950572453007241571064778033639275056983018841779248076792296674438417800915187073090161931784610517300933782999440535495423924074428056767398449333376824855767789233102335462302105403263590785538682098334596600075329486732612946852934489770278483695706563564144353726254648525327128227148783143532760753319787855153289489877409168766273041727448219297761666632283628293294358345563995611901485160659824725973322886035284584332195608632234442309657598639417510464059608497836755587880534491895910354588865795669680017124352790556383135829222596127643103018400844471157701170015167013582952378340982705600353298404036718301105947540682274561800907515014473534213052688162961088632684374717789130065170191987777436949633430952395759939259813770099251481158516388902617542860816007044273859080992599564295611698286648017716526010878977163300057723211118266790074404536382781973322704296204811016647096125530384927954388826130245973125144322227806225850926073575063052147596560004791987625306781655496223323617706642400925967082823403121168602073179549040654104250031871102095773273401153209682054898022117537749198299752976342836837450604040327089725315300217074492284351799448625380247063972225070079627217443304822820405387599518856918416599722701190076621822178699740266685114138014416291040518059434265880959966666335211831150926460807775708836238346665487152018529370877942021047923722141856330521980599668065650635303691717243829367278643481830678512318367843054160503221829692325224832492671879461276055787254979540802738482559286612420904764905071211616545686548678381946258416655962000705924390930858546637393351515047165985568317226487022214891555342029643338806965402004968623402290201980717759370425644507555042411124686584998267384360256182574042872550143143565531493490654544944956123637967111186579461393448541005530874527538699539243788407541565822671049840404788071317355159140490399943074393825116114857231595592559023857082896383108747236625689550018445070841719453064718343610253415342762278142437337279148690007791221232291604818435171433704329244021723622471278028797598615702142910449824473592664665648336381742524728620263845022404032649229897727900030799228238171900724627191542739053909519833413216613492169579600864124752377185728520410690818512156333866534545061577096809684116792017787875168023697300329680935534080714673426064637875084524473569919487084186404718492289400280250995628583866032107229648337181316892717459366182599302036712757491275585060581980520991161584218178588622170562467873052561693970567976145332178562344852360497100458927023271690554071740931167199734223207115617375848290505049803165736827103641028144842421559500274733349136321713240016144647217404164945417850828633839193787945966269357242784344965078814018011070608509994979524594729734709548798483771696755554566473776597428307964670551208589795323893525778590343031887538995670726652961630778398341038155047175023124127108969006925086535667715967570496482942591552741870519951269369025512340716203861325054888432817420718615051122938901182625680797667056974834788032383535282821652678219289244171072823111838797017011785855342775263965175125876194968384809295468320149119324182475932436896725202634055163397820726793692689701104685192936731397996857913972884256152630295465499999989185672645332694868139971986039378485597515843286360195117185267202341578512706435739350998739441074862115656110818649809038808013332127219222782773238266820351537174617050061390311060298843238074058858929302595909484438681658677832774069010680733099718764389373888460707085598031937979913430335452201604339750828108176623293233871395976269421020439977420186334158496615247650562365949532263219743890330933887840074802960408328884458518283513936139737698607753106217280456581868867834858792752088048771696261421926642774367765377630435105166594073692752078121066431992886266272662192373022201146784412766447367246342885514805517081342777291441313066390667715529108906725931863645555899226646236971615867339375011992447636267394908360454292346565429278277222477653660291173010473808051045689458340206555810422216108328507144406868507582349476578442692819032609077062980075162573192070905576386031031343726963223083188233616345375275402995863207044512432553854083212542193048518659786405342976112613015931832749294620877811358483090061879848211222431081604078336212103080696760359305326208823563779566358567851404834185326473800912524419692511677736548007992607911986592782115878467869579323349923356971161302775277231014937817666277326536935123779955079889248314879061281924529384122270107886257359546766207913041467701228509299859440437026756687854546564540422932807870784112026860564903928928553376317845959774048638706595725272802063923414486837435475019433186934094270567482234889219193449025171404287967608343035365080772060185747583022016509312177665591119168707163225721393310170637035020351191661333611538745828057121661469036051316133397043224813116640386822475791253073957236781536822351463495607260805809975823974256428558484463430217665519306599944800285767745063315671399848343316916957170646357973236395108645931970643315999077850335333026697615964431670555609143838075481238852639069859339527166955853855523676804574778715507506840856375402883614709296564169036660078575371420444273639245181362459556048683978159123871508633076851347761551229992936742163200766135722346351771559388545499823585340016845340914814207016742657880280104407141421753413436519415355730888124440350989633180776507604317450065732670849493576707469969583847021420413320359402866601558036905835705118583408184009968583076716727504864811424525041363554531075396471781838143202653469063022490435491016030491096759968955775144728887070448526404402544396412934678321750972875102038775681371068760057241648390544430067942491840181963895682868829056219974543259287586456981722755333621258507564715835798168527614891654084197582286656557146187397330795251362138097400200686263952260187627024362773805605513093150304801130665045684294313025136414564466511990377973567383619127931405760500585756875867049113550284353113003753928435388493546253481404793113191201455247170220175807601120138509317819992933702471782555443701970864829829515766402701028495631137098251209349035003443411886794721825590030530699881737468350288767397341748968225893410534807241749987758196356376417977668297975767222198217686524004958123381220510743479226345407454881620673991764898011508193827724575406669053810351143760659537040128383888574927220437200707008908383435854929235556691845600529977789421200468748075000684534187948900957074409682828659546187612712555223290631556792728235719196908712419221898711780471096046343510743288812168902835697109404776598017623328988491275185808647244663162484685959164176417964768984590582526579655010462281726643556636596547126851515224386015742401316164970097941984066641758981912990928818323974410075579037619955443541798509857215424478583929310536165234414158442584608183072181140232216478031634550018918707974580476489449041004852437826790387990804872593917969389448003436511088877461663503426609431900597468557660598664292804391912517231514250973792481767114255662208165706188205736122601280115133461655086778537174229737145493322305617443661109957642638409325015767052566649226778579392398337485180823463405065246788266240792906442700107128312318666714433193408653078600397315665544575852907493506835402924201584972800227146333818827220583271852909683726094038544124714547779133386002222749894624820066082581511055937880927266148074695646075520660303517706761690308149295983362261541109057545265885625909808857032399920917637420600874045411171379064022372242928758020015375991637011977097211054650339470771644324925929066387265964403267105865733360179313188515237835853873245029456250108431043181382285183728233560118586257551419807057910815081572678418007612604312171352216360038916349595800347352448545606637269362918154602979320143689694476258037815028867993610986015753898292290728710191331487813460820216810461232670700805002387641768236185590064926746941356876733465649096211615846062823660376805402121953081426410812269758671973261082399553956100920826620381727799128523598422297300568776877736242964240979226939615286932847827323145155841377176983865119795904368697706248847507693120688775770711366780293159743340711797384224907061187346075667547544085929279364752235924043962625999442545613841358661346501407250340531298353143734863661801313532211009664036921303630859009400340702605060356811071414126517686482198209680603627690647301555163536264283083949814701469117761279554040235450573541264078685626026920767501832873777216232557488956531637497448649214458401615104020550409561447706410848705778005275505817269102173964832286147262022248003699567201598134784922069224830989570542930748363067909835445658098365381118398396858065830825544946859224195084638100651057904431229331509869745009128140958949364612931279380614537907890992866088080171205439000374486120808583680071605014000688625506278587362857921212511618109968315086168521550046281418846421504637016449259101529389888618354847165290986120542633866376360166006982256980311237762153426233318593240062930249948073370479768325590219816473554065929391524539733758164304521785600433971046214824856074840126824178597035372239383045123332701458389687133632695473597687827247272035318493194131336648657541846673712673547260658388314495554477539793788262689252786676560531013515312549115170416467801066531988115090646045358846304553947846420950125988036199068435937813005471421307168791772213171156254906286986412072810433871729335009389879150370290822120228455052584605631917891008143772147724669972920780091104229417848340980057514651606676634011567608732534311418353746110330426674258207568246193520346759498305197139022757528928394026905750042680218858723177065517252886273715090839614737397757944778307766536127205551411377420620230076267669986363090019873976534759069808814408328994164445315314301737052399167797641397289227421920630425646254740025304607213813142869971273515433747821548785503161795260131519619600741098571230945916183792918233214182454842263751508621834417672593665153179969521119351989821934823064101661870616764639050692870736086943005507125415028730883109102202878394789752208867820452689417738891697426199405115461269513367767849146729037213562089010009972206575411206224219533835273789734453349618556792343198220751768935309114635698622378897053500629001176884068352968239801191123215056535982279724076013686830450184777748722835005075948199022252285739886778143321659490823027807776617045411095540196698651251530904321592390196854995167718975058036855444583751099085000532808791700374378222653141185733017674618990172176597664194252941455747504009791653769624962430520176012629485606179130633573204934232361177731598948953996786548440214508685653011308810105381410559741442295217035158256847377816706789416170616638235991483925531057305311718883246746590403569377281652881929059114835101952613012875663059668444625349053445893552615870797365252835221664213641565257315683968111678722472674119790045722605659426745169060535813056318787261448677084950644196784061038695452421844344352454121143643187429026705852267693016992733133221748854833303255467035920786132921778051399659816075399946861775854414867048963064051865288040466695125737683708179638936483594944311777141732436247490277766870979193650047133287485793099301208439243017604706566187174678930650893710875159705454479856365976007266864079979844029455609208572588870235235135469712894676201197887297288681835958780181535371390266822568439755936521973290975848675994525632157147882251311524466706591036622082888943798671886714732275903513285049195093406462149692417331814890978623649140964731798469079059779951269057389264861958609115599531867979647111647353982195298012577061731467327560137707471559350718872614855467460650020547016201954948909912785667224044272971225164807951490890706070566495379523455468275411376381002930409013140796827175651860223094162264265119287154817118265714051973264860785401403035221119255656615095844377160472466691162796773130702057754332545861751164310394287721728606471519899167614916489752396883827439162986644632548409020079325991652035163516466426450686139846646565429084030492116647928985708917043292148083286695919983344525295174232298632858132816236700282048713666881383264230122450359752299227749955766925050034557003532829668369597279634917983720182340026576446592131078074223504534505082717852788500386308873802639950198787482420191225973220455496312610758196591767507768353034602337037114828334125308760515571486511439815306652219898693586776731450311146860314800460896358918050772381666964780781261660611682334593770293683602104180992546205812288737414282491769836800083723295160869564238164525570733207287631163897286091523551268368309612242119544585566594044016328926264684956540253575359200958179397432117666107425368848359599813762920426194246648804091836705635726406693325133992230077118639333141060133390733631567628551724129537962723407978077535040267210298936348155085384215920615908982853283010709459117981656345365843162713805640619539295006843434882475876771158087140411997771493134794927308220542939896399914560365502939310073211533812141049995948964055488733252564074756834846671824020493933536293878015990691327341161249540933679141722088918236613374506418964397895118928225408898458837515366164029925594331950273249426103420304823010938709168607646093555284056588507358444136836409609400262426441190100129876228722829647069797972117137913021077809077931303079417878240389023348307667733249535175082239507799356969498763772067478260790556386846471148311398720278410612596941783481336321350633778172671133548012014937297716996886313730249637361095432065273479696766365056917519603641048444359410489773637775122578016525256477182701815742235885799327402823035130259560642079522476260858469205210219789501753672826177897172234593603383883433386390038883149067384393937846031180715829509958000330749959392314724271668791657295698303277040843018102176042785656081286125593263839700117956588908348784132637291036704284304052019425619180797746464311956604998091581365195646292037509318476325219965441940320785770649050974757604084398529208494448035152853070737735121892044516330026200860744144673367285097959246973321292190022289492094697202553661146112031963827420756285843595725935245824088523540637352378679765156506532920293363245274501590297314859109947288608004086254811233339028447060828256053648469406191408069696204378072316604815647326742232634474969149877712707004973596269947895961975118489140765131775740815166560612285557660080950463376115973552081016241592842902908422253818681685231399973012309290071764701478350391510936240160106931108802661950956682840170601053931080150298096106174023776457099661549761596571482705225080595327969281679984836922228273849661756301171775679696426868348327362095278387979426330728652864469827686576703914769120751035953219718514161964483043072902693751707027666639535193029169918374793278111362140784830190807149337247611528752741514084985724475374118667700998231455519652833331222316504069890140924165871462761818304977087064154163587553786830153278565653186812631260705051237660852961611549369211417155450620469016381237647480187170398241880951639670758539388070130095289412503743898811377661555607829405829204432324270249648204815875062210862784451042228147460204030824316631793592295515762342475116087277976088839622824448897681705699223663605324911715173651883189115117632473595897846197944587303600206850777772970539694727799334050332665519204497810792515527809874915735480534350686250821735888964635073020085084212733121113086775239446565910150432230036459866608971560257061366885381075849186640551832959503780115824464234902728015761848461808675941430805027686007149288953286930674850325189651991269631273608296304766895067423914636669191078007560302501708253484747589182047748272803162444790132934026338200190708682270880440254539013897524009372073982610295847940521300097404073388859482481644397823320864037437425146351343513397213865076224612155077709779572451842009304011917786247344716522335286758571942493046065603529266399849174906321431385481288502810035687953549953970082993409073557503206617727452633085273307401193650750906417034364272288728407952513586261169026486805193883301229434679145038985276883946874103258251684802544448947661223336101554316986633211369006893871417868588277300289523288979455389437975919413237743102315317041469092765417221345263527875911947816406059351987408286733777407461257802118970135108933179261812917810167415605829677244745289680970031326683121786298843972896750906350963719450170679237326922227905685015680270151866330097482248459146260314593016774407120496288456164953463990738491370640063135774364117137169999574890917241539254995914569498632384060537956483183274208005967133918236933678733350482913745663321148995131549793349862072959586952315247846086223201682942217051349376813308669439321044477387434088864955858161247681309936937430755844979454878903137502705170051785369221506968777497583221913538744501018855856129672529595544969711596890001275624093982888893328299539214354499995656308170760613171259511445592530293678995790820882003433056645760516162131180255078181605704385524172033417813024255651367002874313188410431901648980242317304793513867481077440306088327841339253293056966378082605158786616301870957636044824633075967694672466711221859486630022847837970219257818677110563805086007619113676895005193717741933763272820369440736852148084252339161788281135225792034376357403646161648280720168862588775053473173317655761435832877091746247688669327006486819656056000195740840673950488655176068124565448159610646764939405828417533300408334207851229638221833161238346125636019657010784463772320347861255273042400865662984195766870173755137444810234590079904529432703843938750708198600078779997523294454476264664543490373574382379168679458542168627648873558374246773506949385273676788554968302884652529122825770245508588548110621426786380751583640267864387916004936457340505297194563747706607246723778457095737225967888032756358327469787370945006913167337425011570165228561244883390059542512169733298437216353232410220037685503261796221439897934386657014799905682315640080051638440250419412544484733067981524216509950709808790785763790001854607822336862068043957514015665295435649467436988056618364141411712878634008140110239192728214317112081146882299528292053806560658593346008501959234389763364445048665876405887159254590708452751873116812897624409430639050391775263028279042988086733188768719087064253113342553286656700003569503316512030270751420764258819937583542621944406115437222472293243248031349492390993763301287800310828979377244982660702926123668471048302459765582675935241280169129306514921849428586691997931745556248883410044719387168700496337025034728229456451420736222312932562335184249697460265347790788696041597721463954880666428671992247083670148348822448026510941640504877798129880547919816428188338948610747705508422169847358795391084660169932926558367660236625990714189396486047523853403296895053012336835863652373308800166321617432738078301424874900301193896156913166455293217475249691744974128618729427009263143198387730221090318406835191906804245725040732967007742778065215357169255794145454665896333915541981605606264887878647714915038986850105208814268757357529364711370447494588888673531567950486884166940038700601297001374484305669340354821952985965465930176011546138333430718950560400468846270441232000163955426591568919127778530097454521468446149956966999452331081819700654833844083680316587619238586182137723309003453432465474482483103004022408164771407074541332040812720879010655508022205541766662911718555350202995985443068970043585733666653100298404699055332197477008013327880259624539427270973736098126678309780376636138509163914208038413050986374926326742977664695683963225706225789608069217597248904295910185846544898434201259419599507148408464945157143893672447274777438885644043235301775040960757706477582856019813966902103640058467127103712894463991648653886166509034076845320136355925318392744134195479843592063376862039178027649181505568450417280260253202892135360655273802008458421713673022998149213324345942044934190486137458279696314172957009206769318278214615697619149031888175750346920344197478558390524367256034256304343373502156905777621500967893093456025014784439017761551232280735747482828031592745869689051747154080033358331110731076091447551184486437520939944268212590781960726296337437222363120823529079934896873151642122335773005676568633681303283339104546561186262548190290558191605399949210397079393272959477606302535997651837144363250601946170095187619089395899362435628445516537147600679998637405818793445299501609815697688785511592179142850596946337111996316064823149846740828416476805650165452835617121082570341842872512928164851258185725781167366488998220354620629197727612852405831005417345675316157613975994401177551249025473852248844094750982898805924434041270397784522324486644363641967276099952996144222233452694994217708990663886504755509623829794649576077019016390187839492834544537921241319520331659501546468996529472723363813704852632888355416711164271440955147791848510670175219729609145853531818147804512651442960849001597640121217358184804315969236219813381276243106934973592966480022259716792928852047082992283500242087017812869385464252512763414625961956708353892668181286698589115554396506647895960298653863484492384451440500609268996496032390686477291679208054966382567116362426312452141709365327544609808245767560328882414790771544641718278129968942033299872625611038772009728366276122351475608569603539754494220508389276389544608720269496681421188702710697618330931748620465444271940647923867340590815703228396425152511120302309112686516262454201147242621365070885315104956098924180390856248858923427537135559096661225139344648509866613576711856437159381690129171984835594692181883719434997691819208746756475219619780203392405323079928954828932276056469258998896994717874246331284649568514023771152670868085298151524836639530625426069426263485479705074412664416771659454787635656108520728515392071215543974164399622056559312463868324760897952836857178935567963386930308554581188268207114810782846746263405453160316745286639369218434589657415690147065729700423029024298931821105828222510649520184378603613669688435380783265348166649821762529930503192150820309761043167355405184023230283495405835680301211260798462305492438657528823749894052226741031085018528650718204090028243010158417829899880250682867009132778987114383268074901007709934511278548376588913396589703349201950362994084050874993018172415582471869245968513051710113450807528252749343033627093440319014398307776859534442491897444238002821218797907340539286165541921215944311835746908850870877377297745167922545944352995997365958935244532507385442721342762577544168360934491110436057444556106810713028085233587531747126034733949619527735368303062418230130490831215713357798084429637818937618047251152055089034297730463397670545106085896957483740107804065104390234280558305114356524091542001092657755288570999988981788913015310121588929811912184607620771824143439019231858312142603772401929987114997120155090981070450531719508597491022741529512989062029399351560581346930503358809751647243631564768007439346949924513411797625190329693906800931686026691497262173614047946721206476296790069879307603255378615591742602285982872224698334338187807099993755631230182574289049718352517935462146252608237636878087990779525973603010521102104214991067399137424350599852785191382765585880364582469571192870363411052268616803753210330036968335980593158478060672722682385693389175803439842083499572704584132364227565636327230864503966573521314211418813520473120183916038865569328030834821657642733185482353494174488433883633377672678016351427951994199405450923505306996595612985423959237429842771696402288976177335625106098232866655453408825816215340203182126392060193678187254760470203272749167228116530147287794559700020408990938372839831214594931392898373283239772404204951539784961368567348318744388344198504780925206922201011829336523511729198207982804945635553328250364998125666972823694299346630538983624138031149703915718559617412094925652415132978446639994941047894149469992167817298276807730432358561008713151839126823929155456156326308168913334084641585068520317973290313164049411353506483292276269444403063379602063025115801149476309440604434680430201157020619140834764165102180036454862157792315356902500605235769468518124417253008091260852529181397608221645637336230231327288319775884605442880006733635071700418160497236978067211589547129232827315762042909806174688955697688956550011301565864422501050829977023288926556005711694918992011981116728332273971742565310568048015934460975893573375848711470623591924441523573819710248389573980531915204057782164899306643567999062010638140798787371851632232844482548290277602027987458483536386088880031443564616766250543924451528432437972021954077654891777004184606000329227510639475724052211197459863886771855707252537512275119442180595435714223556725418043809749968658544609047352065253756003361004837816860088763093677168229356991234553141015310538611496134780978767774474629047175539611782054962927558059074374123148375274382469575135817795379673353619902479311078866492711819645136207708985456086607338438692717026621204153565411580504416164206623287439896827752199221651236382825865384699861301071540266078123643733797098076775365767388424195822854622543561677342920558880167382576262863984315051561513022965640519499669911533933268246612497469949084029577786016871775830119262171895082864920210508422939362546342754094157465141406650404882305233310886500093801939343397313074099142554150069182775013234932606500438202923249971836871747130479958769812655966714783070112712051507996198099489024044940633369077052563295701790138460849406648088673408459213581055590624210747402686397432970223305609776251998062824607267078351672365124611144620552457184875928367216459648315200742530944147235957434519326846509011273560153379349323927966715505986351830829352778265059046013615500846181349979889464220676731117101342811245438819762948046196690439377113519661064522249577742000309577102404019012682680563214582637548783349010831164546241613091168510138164023319554949298263515390825294137654952849820587539769039193044638066125037408112044856036483566572885403455341552454266750635144074247067607590578359394597116909264218246354736632601975649439863716216256128844756048885066118347611299956519656194307822205141350303280971223270608108622075484312937658418856477666855534129051118100832810937724970491892240965736368055101315678475626820122434207255603136510298519906786922973159203828036837157681125522503166742881145762529764819180686415651161793836038248232752338872267138375572546124878718247023402730147163461340970296048346475872744884378088008719906575209534926512219195400471100723152676870045374425892085050955655188576409811908341187081403790654033552673687459181989743661896812293235514408276695681453155210930177197853692852355132625592044236878780347996498784363368242971852792230157155069677510325208381253377240277841004459203320507038621594056992418199248351027473988335033780651237418777389387907466657540379950012655013710575530694424454818530860011112780321300967041119027782043906452557411600966151854848086669431858630286464838101585911572377435838054782049532394924917872747665095032017665966878384174332673826946249311842383126299881482369659797479190277214184752482704416246889389514100701276203544863345007467164035238979893441265073358936903490585266639667630652334281365452403215096796707208559694106495275938645826067925489853633200072332452763343448701864130344639214957005701456113675398307452374725340344561810703498626527360692903518164859845587783725713752264894987387801890843394615955483533492726084602648879113971279477022229780188445772802391532537513674141620849384904817214713597279662671700675416706307545163624356391790126529604025325181593729331327174561835293921002079832431786401815277967578922654629971114841160176028778782168643529773073364846704722040568155607341261341413555204260031781812851274860373072445427744003524878142839818277989069634112906927380871086360806778357758858791565053580580388954665868281034499038789400047135778367919225379555724728045521517527428644176127688479446050022366461165737705391943190031671575860400085046264311563270559270646516231973514483721673334994791018079933239201082684387796131582075538715567946404078543507925245587380105234430572797833049571783095282273383275329682510798091113917961499191133423299828502572298473332272818456794947083559730234597589920471325098921424383411957580149810842522188789309953409000391603272929229024297112133308667822122293182875647300218883068432282115489089256983632219220197151918479772436368994171486700941064252787651009756286495188062891086734082908464734096635928898144213639811930091969314775312878193680018701798876947240531681073450307448898051488487592569151042392185577177164556401046843627839401675532000053591382245066907768476764112764735692048371566124873857308714931962760016221342632921558937083808108075363722582079572870777440190975310616435999683935224092756408449907665881692384065457490340482747292215507656929484682667745786346158090141939343423598002855303186671580223169574569258077317715340398893854643761901454823558258429891803944938749867320289085760770589326792877216147561805979478040097936136811278496499049169663463159748768899446742845324268420443428868210427068433998133842869614736026017177565967426068051577484689080668469155743455290288601194081040938892548139150946529453353459149702713627009302302824498543801846626627942109913751949158655016692618591705104136226964276409731106868246985848505001898465790897930118351860155152046372592275453833765461147159787695021147936583404687455709499060430258857534337522649507758720103050724226231646027691284867860861659994357805474731371863783434111738893938096547455060533535632684199258005327030171411498184107754542996392032592194868819630590870299858679759226808435749030503636500241652769447866532137790635756263034028685172264123937299241758734742223962758233903198988478305990390024969567787626672008282371916949975279294173883623747675014438315058260068144720284732654322221084189018453588529012929272964919236180782165513358771628768877864343138144763407816331221640890413382980960159222219684523348676466900136857153525256647481950181317209433613904904771672127134285567082789043018883217322564435163290294790914754506898243849208206674684588437498604582985781293558170721525794751359872694455626881058951489843958303182376889458243809863221814029351461600496384605604417329951434396132439106854249757378293784841797358747312872992133147051222797421313327993434727906072411806363327056201055393533629121689423709253478771436566856389127798752114419187893688021095464656104936931278764584751086149134836745077887279892680787932877528596979237133263187357267789222698375543951685219822271852209259829466449662814254179047120704329130577472823239824456489629387004792013667113975508186756517018930068629777514824010927726584918074445550893856344255783605693244360841984083729737973362005434862189793056362565497762525916130024611761980988959746783129521222252536117940605898631138171954283874867889485735190433473268085428055766853612268647619054538484441669514535686124882714300208658195255534657003511009975638288154600792784245821666303802784527950528882069222953378682725114647949398553787764478241930888204425622647848967155613990181101920202167877244054738147664261823870216962245116617768021111013019183017299793914384211459048930119400720588334464908816382302361201129779962438736419774191623008038940885720688889147527389054615215501727448344209049823771609777350886261505329504619806632584874451058835413580533818006033422217785202377951929408975775320989665626184078718238734626104894612521166361612488484274289061934841104163143456871857316214621248315636428351190631525428877662678310410776651743759288501752416265700042139171844416935087331267965670154040759994233302510701593841304151805062370594265146782561097601515712907623961553615355229575087832770426184851656320879964866624791823316888276817652518731529343597839741202030513080245347759191925355504556886510004142379459944908204518752423541976856180578311761588533063931892868187631764973923447972978587542178661921222134853584970153536379526100559433123203775590956010787799829413987893865695465499466189979298731314463062992748410070481090194853923996219473271435648908300744576441851327459485735300049621406344815551043806726712974793635942918705439283225072920546375559867664973731108806121237922829418782872532149403263748863583385226305140221832796099536186762089956561766035153675810352949358770092766984484590435262605980656291468924792970266443878673721692270803968127912646976638861656220402294568001834271370771216600820192500339905728748897077400863768759271324120262783547960879947442691851459285360008893870570462308040746500385450249109625857500007512018885546563352610494597908983585895487147176092267582303966423759675124819224485745047095878167886439461896610593708231858076552524510769146573100824019460181738896373550859446429768976717569526623358790343433514583432759048133993176198564256066698304943211084780794272274618186367697783122674894536862957834610395542058062482113426378980285664376881930200562189447281310842036066267229408454411033799498323636620765167047050208840949057607816496151855643774052050746053497459813695089603326882837118292529734375704232716788109843249930357121720332032600783093384135538730950214686575896998167398728168137502210449967157903083247960554950638445093638784128624328444444799313279091561489612307206469783659312073604770799032044953855185467555520295739181182306896177793417175498875464016419935163931499725326566652487212462937389651670342817612238445659657858351144645926628708822654435808574244394095619898978996739246443793826390507844255210169851760016832351285428472782153697510973659091163382004702983958390877471625543727376860483135089103091847072175914446873230206085164940772895673703611177612842616500110934968014362174283302211192438849375938860289625500220770588450703116295369928697767303025379836477100543256795891716697499252694140171098913338775833997645675036357763174304604320157839673376132820468473579284693663735556557189406502190663709174624088148435814810613113205983172560840952758777562669056927567824429190243500522863706595944725541739565243380932144490950858140394819977714384102927000219203052002723725234947765071980433955014914476804224233920047795679275798108332494189337501840425242301689940357277101918558618300058512156955962763091617074157054992868820295974005306052647111561269872847590746080513074380987623991461719099676888931688103551728536280692387630393851197423635051403836792928584472583415288310465419242399632566942605471025718084007615447421322808218109684181429526855681321017909207452551046297359726102901919203728631234451296017803461010446538408586315477017286084327498870357044628720380282762273205146833439521905365835263027899248227798095753057297097364543722840935746936624541479138438233807000592444324885773579234808030392309354051742741254952672262409624532758530864159430246605539003178319361912917260832157920527549332915439962155858612111883933694299672042609418723867417998967924805583722094987405957357981284350848292273872008783597670594580832806156089317626680098589295543427585264697348395289241985531827412226753013693646705956682411983374174181983915281647275997242855992200012794174210331365234340199872098942326630876362461902481751467694457057124453555115067898666714322532379851176255225552874086241585788483917103371091156834482237919704685286038070304271881924227529220847913080592409253357926370896596592319139425153066089460176147912462555450415928879998257211814377564687291182143695384655864461355836384240528136849293175219794793527038691986400745031254388827170114603794551833172042266401846301305103137189442019522306692622782012283248567187659867853501879857604291359330862066744035839328688993145416862987744747722770159608162398153727846779957618658347847873753953492626137141682578934757641532110849880238925028476545785586128608749711288822285629352036959769145593548755902976227036323118826822447245113084293858452986201838113343503294698358688087113604951202066708483515721823678331556181374125888302689019733512234223700790561613919409714379317848443647768697409726644392262206663862901552197199482705680247080226540760021349141901343592469208076252460377118692523623811041181497698760961869266353749864581941953085839889888213292968412275039183527408371101353842540584546347654620877579078680794742456110452901868541320860916686152090328120368466987943525093617215953079574005914445921572006009510815858502627972995057176605180361027199832521455745272832857375032106133219427075567904504783693034682456677642830064389772954632543927927026602612707437064920002507744785710581205913070110272202140927948883216776069926108735883244827741230194584654362155681852470472837772154232234091965623244612923136012171146847910276533760789008566859085333850483842318016895672261922234174418015140059676698544476079678665774406537908873834755754874455590363305168362391752698611738394107065510480646199741344753145345536417620018020107945673136643426675944149172367606135490008780449968499336721883384284096202039631096458975336385819690232849351307981939341681991004783065744582048439668325977671943868017169830595942555779685686183850077431491598145608498102697740617935261139977128763678920506520749993060112974904108450857995470799963126196299284321663932421194882215406527123003278807684713774957242781042755275106674923084429255085911951286062592717848938426900740337861885918136628221964859125726815116652261799820854126344563734820846248040349994934978924927369603114795362593904886886599570738188949939259233478214060719414273867981025547854043994043210744481981023889884247008014641467121917821853750704782186148204464115345541281081095404663591972418243459581928698049028307897739621092101272567824149118307064660403895536408364069198003039201170697806764263037778920217671682204479786608949047172424562076161629145111143917935079903690484477835051852111667719932610292214104772913258333085819294994808905744599865929246471495999007205077489364884587575799367612729502749624354624973407007278602651848079828915698853191819634670544567232422929266554706861549634427056628847035450133182483308217846295700995825123887766280660618162773799096927390633102419419519521298575281492822775546278475450048276246459748009566580462717042642556796664424750752313774805801815819364811632399768656149620671878486543362470830578716116266259190315819250529207331018287553195804052715535171909703593965817681571926950308299790578182614651457598046132632023853177362736178925377001465046762421211484144912706188630180101536086993987132015847245658176066344976009170861556075556849936837807051700616629114328930314166202756535451059492216036376980330136992829179318362564044076990379146544189585559859983001728816024783865295779464570490954852911813349534869734102049899597886946635905791697191701821245369479587368195446125545362015898878985469409515117243347369618024749368687581170729084016590820038177431896839834117594758536105160745329304144529540040310783751165515654545161550370999383336006678721923679251066087988557208853239676932528189340352345501914850303926213073502147292108233592428798971988215700811591710210861999027094263684354463256544645710216755822059396921707609345188139116167074026439191579347494276692135689401292509079090703499564534791802229823566607979526806885711724923352781265670549703681144001087817509563805516444871493071397867973847476783975797829717372949008854758956533584067790409949586801378109173587343137206885264022884851209393164897527410010767160365734057141716082416941849320572301015149388711479734138290658695917971691865532362560857521253721008371517537865852952626852238542521782905938875558559766437318508614420927379949240907012773298708859837354518113318622223041581107225809460447781190989263634796056605348133864137080523274936616607828578816066424608035732739957450010829860892828943190261579427614817076974968842410404898555447544418380187377284512966936483420721345567334010392424343351151987397727169732969632591214632429412812402834660953464680459093651120085707847804965359373711988613813250227601215524280081614341966014105428980578905760411272342079391197893241961832496361744658061006494095595535766534469672933239260187530212434227092121499806906953062560139971344889914756514105257267908549453766745634311848716206097269784370480560679716923413319412324413455374379019234388893511143049619784890488501656461691173053403177883747676140857466566029100996620622718500732388079072976969375527172848232381670536544025754960366537040902919777991468874397233255665687908400789089205168506178251174344531954517801954134433479675971173228133085695825161363019097822898424780839427034576368718167303531174577025993577329295742799536505266767245646671524241297853656563244243643453862950001054625337959759206881427941779397237745958671467601744280007893060976088346304311143742031758384787011981856792957395816777388132227037485583928248669411774717392284382810896380797298934331522004574671327205471627100461297032216899094865859362674074132901121219067781559326477348074089570354592610185977633397885812171029839089267672589752364176588417019551267610354385193189204320653509897986933392070109058054216289514990051710808583724860676434495349068713962565655153985083079932329505502995452244763645761990193861901235098062321628708713597221194849829451608360519998489647536760831801106827304856112476643530259833709216285786354402905771656447918932292862277421180729498792373969180089798707728837960542707995522728955294716583039318600080369225410595972567048671188115979422154333736763430510057268043107142839298614489479079219098754218259292688149951542482959926814241714832656597902621731560964244755361201572223967945407483065331973463874323438091663548456064401304301337294312339265713500059385242881160182209759810425364252994077096508105499141700465811864945136885526152637964874936035334209059783174535153401695142590112584227604829446091088082536861767637951719648683667459587019655594298323190570856143550175493585431064081535031193447290711586686173992555662522809482997387280968116852501552388178336144260660332345666054815524412058319191472398953699648322686304329399472065772406516684184134582860586805149716010321440816192741547913457595547796807480948523378730317298424090534702527848223175649162698441114570717778357947810836892694203868379246111486130507437958996149655955521949342195760221388353404634126674320976491950948987878744394143483061710616949993887648606620608063763700213275412023047208307664155944572676943860783454346634065746247259769978843710996724726922108328980375628184552158420877157333368291910811422279365370142125752401011326479265395460497779728002832571282046161234278433474329410487593774926967752854781350221325003528049630066244786522631248864867936908753422600985044194406946533814516109313210149298461678574020414599301720339716163711765736055415322203956462815784225497037940654324185204263897573311148522073494452732512254595244943823519795385445701466720382116469919752679928398910200040465476191301270275669863700337942155710594718801159365255929945316451544965540434434136002639560316531098305372331696220550546990634634517040299306214644378281587296719779002432416254958819441599488680796702314218755269781597505953542185322359561386771684132158903982409823238836561047435016488431446599589806075036600137186248553587852913500339115284147365690334287162224501272699837851838682608550920662320267082680950186182085162545771161252878048373954366595160530321972425187557693880649970039642563357039193180825720646095030792377382108354172453007456350432139554062124873374551913058025560665763618934250939377136811480866153095297514323670803508360447299279425971686178963963195728146557302820485165103662597870883539058101311234069150513725042551817260613799843351302430167697963736299509112301893835992165281168950215723620755196672094885455533590147235803343979612050473733138455525315695470262429990875790506079904681838642027089897540039654135544156973760541355975894070494988721871218112505638524231923104218163726248924987763993971286182687568889215967106016737645885959620610450218112069770102578104194858916304061563137902165188900608149091951703760236350408751108673436361734279780829930477254869266571387139509964153696440715871331099148031763385999110040524931224109814912918656335529124187695786549953324524123467277937565387634077840293535468967650329951777146996403553278769693442872004938888799216981058096109905610922888348419254970507344695746277711888323903338149069008133957495235963292288585153722939553244875853604178203702648945582285047660449595848133626416623276264927601928178673300037653450109515451419828187278487224020332755366509939679879251401558162742257771160189783214838542825350188236831067846071281917233769231237889729475749894539228954710214781929026672269554090595420215772287957305021696677727382199291488226128768998748034449650612463672484095020974924335027231017202169692464405346368561392476668618626356345586954484856615786827912591810731510326481285487589826436139687560010253397239277535080034902025149003312498290782765413696158785189376803903799697993160162149340073869576871838048783528246271120381571999082118947838520458302015621345231028750458400373123238820773375702510145958212235507594821440164253701534638289160790776990450467480556654614869225482062419695458405234835167113606835465272002812435334817454141041713007219930453134409695199381777558465574982501632089524210793908228649506785733901342126750969753226864569058026049686543821024800920280377347837127968600622049510828909221535774088249011554513078985636701948554982019284551845027687992030048501700001404037088125885366400418631506874881752281976282531383460111188640921366468373762240333082218982397263683696330550453475175941457071139345934100498652759219352562155611811493175276054045768033278360730460856420988822951425398868346720401717677077287042926629495620608191166141021391516004312421925652413811657108229513609010699021434758902205128115225819744078324434509022415164173704800197548715121580465583512869271844724680229390590547387746753846486452015158008913738643681946063465441424953829892534103436690377752773937468927187935954049894551937833895580182393308177246538579618349298514902359597147125275704156997410435702770785280292690350343554256703024313410475544895891098469870711981588550080893600791504531628758531367107347543442906367548723104693404316167427651617542193578164481322685964446503169792028933694842202267165980056568021160229193823209492630387063103108744386461383391521928255419717672449832279352695017909565400863444528238778505990828006967185537337400274055486264889957322295993570645799385931992687520063324002329705455249309191961366024243061518434050939770579891160941981444416860878715714096628781388947627984343453909376446141207205443989566925584857954354399810205470788117065635031553810851537039507977754850089311905584648244628789785502895269652615559990115626410342950484058172378082689604311516506996586906575677905252878973756217222178120622546838150150732970435267709175246714770414331813813541892669350955255017079041728018495406947145030863010114681407264902109777500186707671699158741455667431780499787783336184476907579679479089733587296744583038938011442223878673032250557532681048317691938712484323412818920668956920416854371063028503585479908775795842450752839523596033153925127405270041098224103152860751854827861495037702738486394019781426144177672934783931756225338440154423891532196663849112715698471671332529785756269575489277700693797380840811334490836728901857561939584920589167987490100566085448166882326918538275050381394882194123716658577433589842854987858384789296002782250966257160651495964522838994257994081354206240128442370331905684757850116551711826145970964796564958916998191270132302268198753236375028002491378336376043657395962861893564656570724651889140764272869372979931423019092369984375437148568275928720382331803970259682080330410015841031711364346447375932076902859512603421727555237968378556437775006178395388043191053629386492728367986872831444629195180685512725746483132575162433962953248527972989605896129639339351309620498398017458716946129131487921712868264425135806929284309717654456462875529630889310389704456058251947162465243736147361925699419272268513935213010157673610127282835995568113245106118600773942721761923204359175674984446763159367889745385551402933219414715939014823788019349940433301390254396329240166663693534351870935230041415574561188216820901674473835590012809757978076426244210615837651609462811092501747842588702762608472328864032679504551403276600129863035834802563891215985415479431325911810753154271526566550718751993655024427068915847354037869702286402679428752922070190031899565011592938323436520190900800410506176058169008324443113894276526956444032346181396249071234722567419178762268890338519641191296918208463688107085484050671506218697473655681606914787048749739616985285486009477383801838302417440575470775557770085526283422570865675126381254520045118124841612466000546089678501784280244874877583830451558967589915043712785723840682894423896773459785063284542544333280601284964178784288581664482361876824633573545125501348084374235294623803859613924110171317823213432160572160402158106531722790230236604138668604742908736600564857134459971726588122150921455742633964548387047922123618139300979631045887410896046573649681072464958334685672423064220327232676512690361371692441677049169422557296537326456325153711814620230607607292782044977674893539940724439730065989297589407213431246557398899928878617572140350172975991700669682747105257019044584402092559600852037028260895516674302386002168452357414999736260430370613898849191518386164303475574872819095333648547149883363769732055835566660356958953893810112027782462110024379383674270854972255340379568842298135840935577281451990546516398178264257985013002754145974411912567698428060005318445215612810975854898948561647687182727057278734917132503640188041960628500864986114801069111793993738821459533266698175341100593211226778321792976886668771317604978101644199475628998635366078636668778743355788690757903799949169250749553987514717817119988749704899236913229633850612202843973139931653719848383061474178084966057560974025217042633738226801880581358256736149597646548116083316439799800867590807368892747561111951322912105617572672467622819752877026011953003330598263246809572615225173501785812682492066010224604667376169501090269065414483397507472813601950036927904895224355103829570044487386511257612599579015954264650476846483995116450752456045476332708039542864454782842678103795195691434164497193452284124801564040894334348003572809190190033376088714038388433764364773568897449659453345393572451187272264310882156187631710299044221295383025971840254855608174515578129653040618305282723279937433085555565488904354888668702666453803773488145340286214047402967736189523767661760211985460837247420165400465669786485535428056154169929338275911123256443685555293170916657568538026781021321184086475393124982383524889295516469199318383332185465463017317273494628514155120298704079747804338036713295841544178795645241320402525198614530181663359874913704318090012748497209555606606889849871435704381168828901296765739766878433850681944534058905744231518711047195986828115985606262396082538069035468382083896139068177935604717271333922443681378795503230199205406409496550943016357089471310292603063372741506592445620542473563232637287778324000342269098389277086932974547617276532300605869898353327691710919822792778347408253031512622919935230033189663467952066848380995181408639712797731457169030947639646508123805867389131595989202291316980898815005069476882821419597780161064325370633936274374774759787967711867072065750247390659057566153286558916917531779844856623747286860911517853950154850309158037390459754843573283689683955779835934433524853478364701846144190170077589222504856341990244124569680302993431301427272768907646587089396516489183046013489096654757004361874304445364273904350211849922371945932914598338637949528594358915899996695332078260408324494169729217435874516949666150892587615300430098103419514220509398452602502066195189655833917465075547279145547110100457798844092121400582788722061934191680303516897187094569093650588081224294620160035456880930190751040574832524730723924442693775176401656905117093357379257879285263689428982219160230386226633124373293704138118661279086991404628025580892620653150737415436698692267224606849037998574300451456789251793687512464748077679890041291367716360228909793070161608851702486758977670742074267882185668516587558035972280878235110451590394190967933777871152375879973503736763083028440634660886204596874242117976634832049056956746648992224536090429884933431260646529106923916662066353157729938639319240846131818552117865619959799372062717971220864519553850761568420382296609906233827982752809443003669189981728161584176456131534187078110412674879250630564527269910823219531814415407278981564034278483727497054012302129537868623868425133916290635669530290525419331469948431495493831720053881087600990483575092324241530291129327304098072828173719480713411069444472593858687276362085706462055818302428227230765308694377455463168018143455559463108909024464627838941638953890012548143305764690590496298622260318613650264982732243954709624754663400231974291833221632167559777372451721858545108911346058062480451137239390107165055795608928319446866050087001408060708842368070332740165206941635843093877738655751543599012077271050240769763898533834554142386681606644327376390220194876951356163621467248046373107217166861669196274640449136927715882840158951642961716759197060578069024074543778620516487913233092828921887108789550687609880979926867481611996005302300372551082137741880675487416613597622688472603786353946100291543736945927391547313139743832311158362788886125918298837740981757968421122119689646810303225745223613048369363473251381381864818005701750099044395498757167526699489324593747237719698877597086116345660408913631084460197591022155415646370142656344834530464530816445566658047380327741390991614611911031993159180714641201098869920139564693748022307745575845083712300089975330712092134590648732792776210391591670473706642108254672939809677582963739500395526889473359426933674927279388739044915287802945156674334592499220196564192055096111436458040164213731873123694130151798661341141145744909746868960601684907961897633145279159267622538559921666660703984618781451547144911523429322938700335368431035968603584545316370433395455724738713872124206204181429142170874758388940097337163469121849718784749519928312319448710983303993341458039058601352744264155624754665932368381379398768986796344289348321291806279780949092718182229920370572272549446062799034781460607029767875597150867230586414234796520713974835645863324201429846435164710925717966369427669649898168333663073499057256271987460777603982669076670652145817230539718076431897942901247779850361153737987958633251583654418604510882692829246748667788767270263872750526715057335147826612649653098005207730560654247215908223534048204723351805625801125414983969076133986129559016132413391945977628077432296820994551836257540643233088441324071676986396617320787568264196798552985010025768796272615881210567300947209250119880207237148565362722239541759171805797791752847595700568237981845519923082411191414643481039467016671639512897297771261721659685683035426794028924193047528278794948546548053676168399673645100997665857101934335253478584350405031430610083051732405397897066516366537460478845547484178455694564750403632627402190770328385577590187021431329544219783196470971557296141325171235953396717898491128154946835909737362949702646072817213593196672813077995720710339828546378834401049077656777161781561312732267232557166554687938125058942644256993903882525249522188112356894721992773976021526009317408428810103051014663685746459072435626199133411482845655037230240192695392297435597956767093713773141213706892104402578952960190217840532769805559468156889937803247993789467608200352182027468362798445939135876063741437501986523714280519898778263798263905938421615301800060202398748030646330312716350383786574043884200264146939861772349845479213268224986935348824773067634711043541406186837313571851727019616859506674310816966520225194568425450609361166948764507362597488082044931615940585261985100467715307867115528146940087952964866971723166098159275334331610629779934655111566253492497329880698196970818090783565246282596494257786957248251703474017093184532003032682540254258061469477781110496866108706208647713128358966476069613272924040694440038926431451285347907439794476911214574853554686762448340983417235257869999492802892609093524871558543035006222350768810410565605496153682883840346383426177356403010956887986530323759881741938442580331691876484846861327564397123948352735388382299152131153478427618053494079021386023427647833909614674770931578873724435569798273158920113858877770677240964423366205538856017192768508944602159601743134040205322364397460607562274192297642918755062556155502376237295557411221206779852906146193189481056160529989523418228688625305418639298287044552297489856903326569124498304107900494688486052838348654549720678235813407420950445615619470317614164396615630575739024217307302882820593404011494987547493523202857372476712699893414492479966966054837538344485210162463780190746030523013603061883120300481480338773518908037323510868412610549341828172922053933746868654734802338897176974722108819607826664038614329929677261736088375522219070470335738561168709420066743249365556364942332607074055226052729485681604281574629012871455332413695130211761467835560977875732491365669013807631256904860768656483615892796403123860902604089872049640053636156275939635727790401125364952669235632882091722289559281362858111731511542129418458766250008611007159076206608652470713609743713927115384527789151920748060977449395688718535184650912259325751662308129527247577114939892942084542519820041884593757022931384520621994592382081142597767448405665270443303090694721745723113766536663719139660668394014058955401434128177473268958604798750820354740615893444108943469527095365214642129585491959152102329766895816038672642856093539220010581706274342794439919668720927297181041597744510549305589843343717341682477770631868042232212276659101163098479497577396767307971568990053267362937026696692877795957205825681743080681848344262308848230662290829974277489605395180942771684725585771667836020868815459432871963862728770061657664194731977567996453092398369879336465532522224626335956042349733107182850802147554604857907405780692903990235099276738968644206026510002808841497084909411694245438409965035530393872230223333030360575945086925296995594278263724458365438819090577121648285336142313900251903121427206000215202637223745521241650800105003807715793255762765824572231006303739836037983986985998674024508244426502268440996780978172147046053989961707550072539071387086885634218616030717181317926700132405694443598379057065260640382712245470118613411684535813919140934728351264666872884457969148288494885792341776349990283080561143196326803006775090317951013135729489051059727219835482421617474367484345098973710765630805978985331603595134548583134441868572108046442740082138595938277902520246323569155097440976691415530577269199998408286481740428472135183172554210162852074232928319228057953273753099858779857103724377813906662203341272463736137547960033764314781605676748283979986101338228146378057051192907210261409347707546029990143629529019534130388763865779254195865415934571640227271984431509512839514515507742315052539673347461793236264751509072570352373998826645655153489840065195897155314883612788515081989774848225038636555381614281514234855917716824408162417327006999283769691498929871156855755884014840251916017687325941138819970239682761302944090833554977910644224654066331790797060882052901025750891258328825952634180835061091903115539168605623082836947853916752085472718725807098964332871528459273614992531892832076842631289798508227004742438975104320266027587468514039330548755497615084666629196184595822545650061965994186669712307846774092578807072420623384341287085682117895846027387288126405501027267385564670127914913661141184243579626275076945513129667516177867937190704278642096052924725756109631238141226578810989164143590378826267407794406370203595933620173268234791580940418988994042578140147525139155545089511926693660700029651747777051016941040588440701190507986815319553923354526339257441228762131579859117305986481242058823075165155551818042337562306663356361352751209763209578797784898223352072446605915818708983260364730149018378584873246957718938342889289271007793470174816196787215392329269043784636302856420012448107409642951844526539969910615074116010836499236238548743875628838623801184655855530657881667968615572762774356066252618517872752351405173834885359553600335750709089709172552722630198849191238349852130485325704548235162631581614860434122600899480777667550869569544016278757051296255342355221513305538613819677277101996415731177319966610979854622182487716266534972850446450267412532995209143450582416009913987086091965981168380552183608926448885790419828179016020904258977398744007140957118999103333995592623637131891161117732337990648330483630664466687560300518674492409770750932080285289717856004829969722027780351569547281438683898853257887766534651876673292908804086967702481301837007193045532975810005875460937839672909002151525700911065960369870483848669077121653611996536903670913606443508595001079015506081791205565198401488932791487454331746045569165783370798844645367654999590952225426134561531052014274932224142095444771602964682384837386655430636473597534647458712438368467464838251774962082771815920687156347334844126864170180283785776471589916498568992603559258059701267070196442197912335447026899299957564537908048770429139918638131126602541970033315783491761590514932805517850408624934734462716922954863178232097390060394493758071617692696142117984618250078460783162464542495091979003981375329050310279230982252499056908191027253615490511798561432314707981317139013402089024953963757833324421587082120352699562048559567385815588087586851516388733871305398971264230467042610335848437189900766374493844587384658373646407256327320710619128198357079384211764787612087904457473019337932293053653620183143748636065901884061761570553477741657756420181258054397673878100250011299907180740318921290061614405157056545525718888427434827122714328267442107435042089432341235408178179275276945624289753333817892341845061371523110542172817152990088389213138295544534949179719897822845911583753164786986744452438168501431742635414184505753541872711546272703753537643913312859760004484408782995142416218169655155876804472225401701772609724886706569840880805433148021121035885004051468877434381035842601874302384122283456252819585738883139029683397958172351919687313462261173991796081204549749135125067022930799524975831032888688332898704425707603348970017690217430764415110923938508614896012452133078777141526312390985643491534201741199670251741531434636359138428992607689110435418119114409992311195059059180711616451369757303797555198713573210533479577019819927838175146078672355166583202230848967691497602272970972626444285404866501977638819546249678019496328505046973133682325258510962314134797560045483711277164009824060959559090299702529539331678353714130003964466928285533813375335778938140305093136897691202738346160122724454423728035189511661896733499877522505607948409901833576072429386368254978046024616418675379078473937889984603983975113266258930348314117133027637084928397745903081430309174437922356869007143898710018482547728653928595468734592262722814705267266248299618013710207942220734015001048857318077909610551219647432539735328247971219406211126620844319415597122857585985691819716950200581242520925761332825993402496515074837859142693207449819980018659821354298184701710959546593239691567784435953626720296636723043713359540226593488244993276397764648400444025023553992168848994947134994968336255838132365149162727795114968018021741966899614808254360124606490702711584662752698604774903975301883436205177706656928269886018144229581133430237201135820091828797379437390161749073223973188892311579815659158045829421497464441311802537930784605898249598238737009632298892414704059692234800321095256503179840300330916467919771942983455721799904233922747027703109306057057566593064322569936346812551919773945794971069021615014138149980381472783429424205153691352940723230335091308415550115239878153286449764118131564614271118771130226745173917555703035347411870403818208720991624617595912363293662411050859085609344119064025977669851770070878718505160622619948189722774866303629313704934327278237083070143037850739682590087635723441435166276098560408017305055089422778614566220314317310272722073245802994598467480511017960738711354392693409966878743432333357917944618940166251694482980758636902114219327791674059110396942164508403031502254248801619921750449680512930176153309572136141716863411749990725040799423674295469070937635445045161756004639393032868669100184840547961405187855164596789180734618607423889989130327240989156779133941227527402222244674413405270900084860132152054834314395539996727196703340106863457887058243726581051942119114571698405632184383727325791467464517660446760874958560835532459373872869881533678041263793196160709382583424020612784296091779792416984733364977689178702446926623589672903480433918607331172026167107255256734209216088547487564747255635016593725977402082892663498813254623899734064493592302958930741998238296137552058655963279030158729659114522654326648163089868445042466707811526805798560261361254539771979632239536589048610486046870306334901681076249637791198720654548909845462343202740301250875137680270502122392905327076733899816099122795274381157819021625814393719007270296460282966022584380233234929192054671420726520266784815162498691436856013056181678434017988306771837191822389720006093726010338484248337898499588692185696735387181341411564239115790414031766000872637625656133610371348389049585621145315997861621187507587170294754245985437974371032623028854671510803587922583820118899769879228553399381601353069194546982733644619063132041915273095183601719083399103957129577482057304994513804268939312449116742583717822878318171835057970905331623842545890780716661426744974346136986178646947804970169650115190653355243855971630176253080784401442805970464516420239108296582286855391700853915166861446873835999991585234653136382194899383532050730010320455681246216966762971776741822014800848074817302998343555981525216109112868822932146484286863892072508211834315883796478484613276907833396572041766780012205042972143796748460512100527756169488421999312270424812825158962206215356785445406494896156793085214051258848878124832206573750706555516684087968824361932398968585407504267314246885453399108650791331056068932182082140240626694803334651726361841700662302394110311609241717165633560999848783600808723775630574988859059151009278695556991858951273459356883647373356757469014407398675206156457948952784670590482500679626321437609257195411824197432730135943366649297688053577295991565249899680192364828864023997547482645116577121685729329625623945909306862413533087205087649737785699581152515594611036988128042173589390055510790542055103957076434204581724233008760297874909148075104040257988036177074877439781563256949051982658691611473423091905885246846027389631368109968843373074559946756078123395533618676718436739192201991593995484940337534424812118562837767814191535185867546998800985431673513974465288949135086507502820151244152641672299628592023283698863741243315423929284594307684708753235521967283484427167136506457786265541812742516645332775672817229930642774458540653942419336838201027476425126677838198406844711875237464367206957247111377654244866306649836328793036561698148620885362883558459782433881117031310618642467453994938356198754486493854200795699965002047740342578941932239820832719485016348128192241867906049814926600318737962270533907403400356346695607215706698524722971546173111180079106170047784198403267924004327893547451840235577776409942869779192532369846212843805941821893101359209236806358960861804572387389521752560467505963234519845330270572713967470983023181550449888728142697462065860147420488457708973656888446293911784615310948960903733646571150057740768773993807085922091201833580240352481995598524292441807790441720330855361692867704886191348809294636795006118153280988306376911478469700103193173163161946106738079186598212461472030795372367838182537793172642832456950016750029260143226996798743441136078243281338730064015803531066808351883031839366742118089207338751423769138624547648687925207384743949406536848019931447775314144473874648861257021902511449258618616474404644541397602855135099948284576855787218251380803132471585934699267945861045436751971582092513714742988797024526591062009307438428377029810867134106514365712183611199847920090741663335939686981483861057431850048660778081872803313645319382928086527932863053338866074905454399813138720472971784794461842401843913348765252614377877212291033923401390226821649897409916472061918300999311110203306243755614123565247393159595373706676836644080684311641707153035349220588440540859824907243352133431847767323204800440444373826919369778411655498888012873788807466958487343540380164903612839726190497062552647097559418843709814888735062062843250021169740193191473733955302630067723919825201012993662874874191821768114668416924280719673564574492131591355095118775085610842388461815524159740447024913123999568868214466259788041847701828126203963905988172229016813958227662891741828411501278477133034028143428693785202802741046578897509296493018451269040746541245190334338216673890494287381489516511007017131969656595395934632957509735511733421973431480199191835645229770697439427734789319883747341270603902832141640346181131349102168110920707699352751492908236618899941332871220363129752296390618879085761756706839415822079938832233206643074267999991493242375343987583507689128956486064110667713683994292171755755064821852914194496141689743917597118873201776614402922317244067063735262894854534260055145406792255084015453496668163311708495086894372294118309659671269728674706773031658341597615007459170706535447816596002783724640902938994834175191838574175284788843372129471878396919738123461674867243558445284884706247595039838896914874640188699647742803565138153560443603430110654292954619275107470949623842146437511834652475045852360760483528526119131923337858423258361989743825862910271226787926433944129571284603692993985389987944669531704173049079810587495316765951363537659273592234382386763398993292110614620852454852241199477542271902443576293791904810878339652010375910855293217580077675028558348937549371270553110528331004845035586107314159465144481793234627587841271707127299187630328842766935717487795133843693783911125477777442743271728924367165184029019410301057055460567476081327158139300952801828019901176571230617448630264506714462517982075509819065054751604717436355686812209612330943372824580398443731133308452304152170168724314053338629028273090987564276359104000481424909012847251234223152045100603632532236002396571317960006479917059165860752879381609100051630299998795796389261387207297315242991540771380441902703353876063433525185112812739856300885325262475905016141262000970285807621032590477017779867989673748257635006600650137872315551261516803289521930764949264435802539317443407079410297849440132245553032102245219745634544294632686858708277883398459685425486740816253513243851077102503388342320740536705588966542680277999778340807190594787467039514638540054725212697908734256136664519879009545502916997338672821840678777474490984779624840879899634589178124258691371232204903204208534139489708422043001609765108568924320611624318498125798982778755492933335012759953934004468082251449306619776121812488314314483838913648941162943495297046022651003672138488543148964228398322125962365191760386307039008250725612778586715980098971405491191013233683231875433401164217517156362258963817035064606200144839972828426592982469952426578163619222651551647245421015348855246268006622791811706362226668106631825598594185168033678941288438834060365561034857241623222624368122717953145365298663454149255600838113282499595094813191095490386902159553704307262320073058415167861651828682704617395606611712820960621595141845266851628359024741402523097064272739792653273448263465991042874147365983567697035874110398610182599544409561831254618088125258079285143518839263601976589542061183474867381542486546489665694716112461127587286846383055957807659002198621786669783547860902796914387259364825340224576940741416966787046877413714464697036930711155384054599234955049718747132767984801093309726897134372515693350938939431931596478015529036945200035583598291192458353672123222160993802459197194443755412368409303266266083599479722350894116383628440760649499415511434057236192493002623081320820820204724351396350047414776003610190482978223733618791891707193461233767145572285192044595343870293276172184886348672318652460655759086577906113489630134875899800210549393752253593198191131993294571135301921208644568394409954938362546406204171583855204171593634393829425430567484221811614836379819163638580525924538123812153908604117865298286588540188539356686777990139483700098724510643193449689856163894240332033327792106004427173004504052905292645294773843899114334377912877242414471438683377542475524116628463114610096693156463749306430887649937438484511879300400998244954984608205214064683150582815387574271549305194629928034849163271234456493033683854948585344196999866581330273508279000185403678247977549171005859739417469494548541212054680121676458597891010523657132689216332876683314380695614475753259029340772934144975833469891922406882933428514158793728140264813882429284399217263436323873564403418078373697650561860941015519237814919023993364673821425677658697073940022636054552888293516248116949290083474228095724624979466928502917719989956002899418284927074143152245049574854873368405383262920860550667817922171570616652008775856405254725627454207939996414720241801184667919854194589200292089722359244267627627728432128689145254852433474884713285601704462469989309698662350223829142774401932671222745331319585405618453764511666080285765185054513098227909655556290200911174140807474251743248707411153656746794714779952739457928128469895235203270133373757663744973729884787653472673844819563102018804893044679740614632802880657143997003317203033050897358832526518647343154170884695837395719223987539932125145382338704179141996748919568730069260892743938115923145794155395865327126978322655559779410708501705693360808423992795174896376184813604734060361429879539168772856377240749910639201161519232869202677437732856720592474354738185472325629099308806037662387651739614136440710698716319096051754695233448046504901054172118127236641569707876360354035199210900296847063271014091653944368586296629320088578869388169694725047731410940527428548461910299394770264714414790648486702117607259978551878308881502768515121424142089178047919690537347457366502203535471133000949545903872883170429440477968182147097600166171417910645845351267225835040341812530468790670069132904380067678756108158402440384721009968737777593166033321939324859517168480439930750716509732491643174163570171738802885662904465236907141515535771359713592705049334320007655201977169872555845191948777946965321748230597763905840298796164820667054704485713766598839049764148905083392978365487824662125049730284111269794631947202173841486106308352206641865065054543677858660864796388573560474528276215706358158328012398960032370892483790807398835639614246889241099655705732498871306347965751762438266327643475243175172386173387654712262396579733461967494578587697409569188948113075745572949604770210621011324843090801039658986735484111679013451409086237758083251357578935702779218968380022369573989998843259789065082284241485682581035722424793995341707179925015494895315176339576820605316348125472082258500832694294558178827139604229502642766963432582915217072200426715134530785279588651083926480458779748188599842227045654186389823686646145774702295583593513111988103288144971038460607497860084428329930717278041464167248604105184542272967714380171973305322220895437278182567177405649946372644064253586658942111829309113181704779787838050687931787925073920686260489361692721370146173148566789600303985391899684345469097318295653182073630492146317121655438868757927440777094521219838309994968497338383855249405219125565519124397488979319808333352076789083706619333757446537613355637479125922919708348647107419883320721560751258422226615876780006480631293921713165198331797108279086862210400907112308764194403231040184719526522589937336002337570059759211958946727056224814886323602995150412122644333100629158145778949575629684478337211584473784963575031246544520099915309495529353450781821421999952047028930577005384171133125261264416071090635579135929451806346529736711014948630909346844643346291599963298141224281304269991105502522607281060302475010305911948906351690742368493233455413566575778416690857286535707447051843582030404042327663998803418863748057319697014256180878962566660024795673738983556848014583790384213457054287182855835865764638489699395612413458201101008539907204195846506947576825506488090066868723640166083254838588302113931842639442735010216743706994818979987888570964919985167781220501016566369820435544489432517580604855812112786289005216470428910228373366948784477225423898290153318296736743324752104316426880546159685890658973702001733593370892237132362040934080045750181653393898467037293201150174088849140321375208971549840240969616561697141401706650994936384558244246647663066859742662994611473985062446488528622461415579558713855320790074804810092678330180049806657965113109967916040376015458250483222763737512434361255672378523506507935186412669770281901618741091906561360980210676413264232246440913854344559122696601395756705168007605681221069444425419428152241773454036962158410747087495935250288882165401717846181211725071529520635623113401869457197517630469157098903554936813280425693429829302791368939597548929028475699530957605964756374686004101234874737376250792914492607739566348511718968869817445561830853338057821059187728833386337275680290763204781599760576489696556827531463086653089328366686271923870897904807142277279164945174078626705805171726259310371431797013436605222685292847425242452304271851761730355783815964073333480897043296878121925164910261674192587933668667483566207902851781948427007846513597313405025117630632205339133168669440083866382229661899432426175559807284894039487240293833767689306906707126798494278907906236895436869731862009790390448568371312776659193343057240109509066854475680802753408990574886813041383516458215456020574484937515971850283324237530255283749744381655923549422468838240770734989513696268950000761419262112910121392442270571482085397060182442779109822998062719197787205397477857221852490995388633463366449617912480840150159562491515822264343791440573271748381593888384149153930229882862506635451876903264114811994832311430031253531778012394088964382760599619895444160434719364007151258808055085702632639634040246178861607757903938625936685977844134689855887548255975809225597045157800564351353118772067093376152224593429642364447550984213224412507876477322469295127587976236715718972608967688081453426481916825477391516747863974124530862520828098448867113768853944996341904345589177713465037469340867554977322692709108101368017129572941003698357348003668418737268549858573735558775492501265469667971302486171552587099477554912483712607318125669944683840667353253449249324599069478131869073057868250212564844928377832746574356426252133109082261180584984898469886494495149336857818263887093497027177462955348591287467892868607639549851948631282348922631519728028311297719130475086533829062292616034892937873581695848422385149658877825232028544235742823091296353008267436223431721486301761739856263424297362322998058849600116053984314408021395939092987568178530704442374080659047190843648576401722732425485593376662669083813056602109625010171837936960896089033772855425327513457869807598242396644486240806446551427164498236999565342946740120139657598820827836771629114967384251035800989518941950083531876469668420007078729802988754430993597879780984874931089252864136044722511441483781549674561140664255429110140880732581634610204103801505163012625101148026270169317814140756001443780259522427816100227420758563570437187989080138408446229666641102892377627399335765269652553191178364121329941924063494685188168477293105152839464080063632317523646310963544735447592811571719010167371240278884260015939315735964300713484043242134840495608510368008201600091945473900185867199950054483418773620319836062057278383530830391599528574110184047747164168589843320288618551499131334400700208094334593943569544864206013509915898705514936264560842918885336948082877315495269586993931553159362733392737768451163499425508980960492684196493796495000811420409865553736549609603314767152206243748600194026497473882424401262322835658428956004041957273391692969215129037195874173830605960477039606106101420678336709901436501621486688084348677539892987219904390865156889425623476332523532289349800463328944987645869726338665002496238401070347006268058741260008482474646317567404131789249887273025091801928362009926743194678406026790657876091798663174781850879265216197445078536715995374225001237168878256352565150724792737122825189578490405554111714721811979012856264536203249604669137952138585781812702706534630244114242924839749333211427546424782143046742116886225360067194169304493148966301175037685780783731846177295548368229000104323832347344216232148565372214203724170327818384723137539164082256229173087258981399697596098657593878537114368404304073724789957860360249991232081454458863461779800049764839783130618265580432487471455379361032413286254255294541234161430718983756848409552687545624184607866318776664350224214996486544262904693619855557581082562500967682548377087088592859776182786031560885161743882875989271942856907813671651491596373611952315498056247122933044287310872768280450305059760062721141892820973721733060273650153110082279422242465371144875730722419647595565745194026200417380313252290734216313884607721649319944476525302172118246390715340000681583464037675016030057431092894761500032869135225704349796570553676613711122976191244376113240547141998397085933952660376032224737608952958775481356311076055192695323429401960911539827481901809274082675573612792044811830103244542602913300705979418038899850542721416352485104810855068529522285267330261094793438073235281691402891288403971209793653535901346497959170444163599811641759314227931693003524121874401700328169114813731687313820325620640076355690297232141160905603133864387878198508840535456195573165775206136396559662632973784321367963112794556487514537976085365452102008822418181800420135820085115342128298442137994264543318247632022437526614908595839750324580823586895959129361978826617027834781368681646741253036798179537635255415266607218324742976656829401151771574761400114526467400627143937576753110137968765440316771812585374147893536589054751810726785606870103873757399138636483304448719234557599214045882922603636573309671417918218496085492903025715005269921556938758266747658876807775767951082875523660311252841231661258619005917792815599574760835092146688482288032810736619734110452935389253039662377318252178046798392777177570813121596470466796217017986759283422640750217687098908188221501494124242871841963741272713976401938708406635015659217458008358911543734516110466605683211421664548085732277340071531789231735590545874462583271894025232429421803671771875908818188155383127987731857591477064229104523287188118862605850794498983357819891253705024665765755879512877957810898633516620746641342399830675579123458068978512550169982393635209347920115076073427819264832794509670421499643556212873573090624017336822365246026745356801829754751466570011196505857226829562257668666206069808934293712406442663695086328936816091328501048155121204367846402282255385967143458160877725820757872653813467856444334004655538390038171050319308335305377867812298085448220421518467206011598213697022158454137689985479378699225075690168033886378970579849050205208828911989892239295143508252405890015821945064615740755630834816888839625697349707841801101854012617461672199487864228509748443168157853117963145424653879008248846425369001966346083910985438422944954625630055526712241872594695444036190465529031522101236211133406662058639057301669502068172801555983954640922655408343496283307923720777983672525613711385052651107722985660767947980956277680196622912857691638079009632019428901997634166798479823879741268670804786145348458713861825561107845135648244876860150249659941959420150060751702822637958413928000345650296994131424442779939042732476102608211929865243932310694976126158933891551833114680676689126923509165038928428829339722304137612915776411532335187992791261850575987311633531206004980505973229548174390766606087978732211159134503150071399929974879351000077997465080129317870290735111444027926051187684222351090348821317347302212581227726001215654750435101653748470066994648073939583995423870203133850481001743262535535279572688683526304551902045926353473174698576183596052927638177902634035803875465687887719737047322627171205470615141517444468567869272809039743065992797458481217668692412545298902796284424682679187547247171392195962049054724204406300569032432415191474589704788335292531230936548735411355233816049830670935530219935753970847336522318712865968393315326981001794164125926355459781208868119205638516780869313260207648500997687195008489385506657876045540956660664597189253043016517546622863537123739733659894961978654173190608910976887204150313280519067857904888229691570658194671121117892452751561044374425406450718113898646388283288614724444711928420004539702593031306125798434911501749620394124541331091373514639194058743217494157982238325015672627179267252460006415564273767938068712075234182538708719964264910778375798400251341808833680862144889003423300149334379374722003862811752348591583969068838597590932052891796066989845132475682361357953700813117091791111923613919582068134026086125861614418569364827556094112571191743537388244052143866020332638176951909186654637952680989073766829639137881963839439524971799482746198765407350761698795706197256543537071977729861447338742165800043201659891970143550265355697153078555754372658839091561150341956561965795757340242300445002087183739146965827951918016324699974078465581014685669306662530780538580819332449206293110788299056734663456902962804017579276058102123762388836526374699298934190147530492831531993163847713521942480006281418356946975802791206622372757108201026053182286627001811126357438727439488848006477549025414794122953511493379536357054963480365386594127002047893889788163664578090283862963882602210105468264103824392407895109661458954209423684679464886617027545655539238596246674652947652420022667998083688003116313049187581489125594100417467536461322603936468086421536809750653166434529115164133614619621487033036224409403768393725144336964094697516409337331685530137339622676473845282739416788817716997608598469854336485563925708427722364262529594953643137891137695174173341708168331682517706542771293126830422311676181270426985719479831706905874369731045387115381457142852675903816199057392519691227196401654641379958456770774624632448791232860292323862397054007965525845185378047521310269832825005294323474181284755082594504193136737463961539100613973027230827223086680049499382922758365188015579401792018310340660305993321959124813430366156641150474791674317722746497147287846162869044729056284751842237141561098905893528288961642518373541987750466428674017158877068409561989790709141987462391699862573861247059622879907790237468304286543468376149448528642683326499738502872196984468464530441804634286023695315254820524403804093331720497838328541528124779083877217624280405740428923700396109251232312807840910883136424329364357757609457915378803336349947722777041860727107482975987948386123748944154441723131136753162080487707994317298389530526344333645059645889561304383584740023781844205947272649695872228574560337005356888365276372107361272293822310102510380084066495280801581502404458890532483278539710987417390229627511416895125988866456030950716020887671702833081736804200917560876849166173204079798128030403067547869826074892250109746665235742292953358263028274417819025066987185661021844523249633360662559252246228638708614866448378842544886108093271290308393977646596809489290583111256445568664882346417273880749402699274713423124971892776045752688494188470903098268835787788949608434893157701128598982735203146136860755294071119907614841655555340062226710939024702662066563926337776455078014502602521296512327730533011800673892558328121139011977580135550973568527601612833186555931042072216878019652386463035620614882839646198198478999076116115730298742779820448410682506654814407756611778119352658928263641387392991699798757006543104242030916717979743252786544300532688794292940578903473896926623070612296121032361492902658806935870203744522785828816251172933682640950515546122622235628140920534523341328624948526392477967954572220258859169239942206464759104881892020238363630736564939074472880685701395674703484224602232007315789657517309040991322304998653468370278055558685610984843228272661434410688835127171647809631224618223657278311145867194487890051324968651514081999585296376120899459641093276685652815528264495289505885079789045282401143945791034333836046780699303541947232696754172093704322143206811217093485671738442846980739710126370470093587831007264396350286736881574489824765941502411003960646811063262214725428997380194253062124205828390076926262179503586714661863298772632439264399846955682260782628767849499993209106468787885583360029875488458051789400730395861667708169744438724140541167635838157510712841670522672752419156459512989423823334268327888206736512600792174920044921943847147465295247996467672291304053515216850396540745654690544785963592191083813884635772111404164306988334841400020540327383072044427703996995850403264757809282151053624678404109568606545634645571923042441248360943697948704089914889144684863465087946398925334855669798532797133417582327860528549856894337027371271719580044669878028652702296155284341363239173077543570569090401756470889270542747210635116881380189531816065263721540371668718201725968872655411735035977147293121174113681530466571748933422654034880846082216697282914519195027610558961186537634479823277128345898164680381956032184444148639944477066499111274143929769485650718706260777686564462448238463404255721741782688612295948327812760520589859501472619603204707021354455588134363223190006927787279070254023707668589947862226018505656226081716068726784527010605050789386996298802068318086035268076280431968942096964606112365353621884298664814022301106274765778413275770134775010866735453534426518666338629533825362489975888785218729130548209173311594565558594823851359992811923972266922575600716945587965258120543852142591211697660002195782770098607541577560567746177112593420463960694049168846914438678239283721477825082286815893933269848229843725100528950205924980195537865145786212163461508612261264726167819555971007587123768530897532752994250560616087421618423806486305712093889420259613126137884235373680495868889211458329840268151823630671768950604091287110580003109775743025997263040419200655075914766822301204110387510323428472826288907872304037004206763342602426209387187123976586753848249558062829026839378114606601100898086637690106821753666808816777750051184351391506750466853215183924577276897420078953584900444580868129464403823092091697224669291092483985499843196921769023357665858241874342612008069698086635806518115972837587358308404954123381959033123059530614100505162965762197211577918563841816892059696222342447953569433067089664940873259169575255486997562322515377835380357759225426685991328658832300299773010180638920350988052431096291840786578614758651848853108247850539285103298423682780916493259304649488008950829753272406327823476576165972720542482697468087232205580047482142220081004278502858888333700456560386328684098440660758992286948576148771111832728312885058702045538965451142008798177783782303076622561148718929082110045125570791352667909023399212653353952220786480375000654074815461847659545862228704807487218124735770563236770499770355626922190121004995938681518959960430819910638875520924266848845361546887954139904318279083869081055034241287528672110848740732739125901956316899969472060601090419899491388015028640117635931735468928902275128824344518740691281435579767005679877206896289285786129854209158297344448702173938241262811993021334059772734799187933028742126685708626955651034989134064027740434669423170064569695758482637132900054659063063610211994863429253140039256197178092664305458028977913216292408641948701293358752832534298285245036153639105630477768064252072136863360846431348759118472927424295863609669027044553318593641859279207147133387376532312225760319609361501257312158162111272829618146219563125405294116378335907941839570878546512131033525522822867642328473122356834430471128050238918982077033582131023100702055285406933078472890689158159627432600625932853033335459075950859989135201209182580335470871427955310611512460949427795358759502976071306750704443323006592219023439316240744354404928498496066158590458117813227324699357075274780350280498859212053968655754404299900968826417552944043977144094314895233062165110986787118488547784752911019669521440014432294539516865562009054474564734045524194174330099089479681055679928668246111000820989130098461799103643490962653856226219268216877757589831309060863430427383078133388404836322953378420694547743578015528146682784624116161105292343810768277928083714307955080174507387647622855942252000026610963062404640514920294593907004199853924448739007877187428777361358583273154365734784978893990069575256991972824234695076150437189425484991151962882176783377921058339711009405275734382867721005412103105346790152156700967857758032746110151148424380066692323839651342439247306606500970338594298247579118488138094885503641723004840562671166560532859543360538490559638128871522555231613240642211387983943644001682236545794847727436313321297505755728505425338563014606303290135506838087517546454698784955974274347296408068614360133317537213044585060477894790256311784101780666691794195319142763373346183049038880297904129683307987028739830904142718144571638690416414224408912763990729697514498119382483496710596379777655166552203679963894604289607324521407961907460533538811081712878845086760251223169382519607577388196512404197497513083208341748686951260706447574188129771138080414506605884928848549133955054459994970870298109235357171701121237559242948256696002371725190573693867513868205680049947002159494468166647111371772585811810294138517708068035681333334008708437980720398179399612645358120559934843474784077978326863746244227691258551974501268254611222799040326355914486483366901921063814150399729991304117845739073049883136267327625643460318345200557876562247334249263696082510193579241488860857854209148201762688272056320174088959001674347474206628952071347814140561764856088401112035115855816841824584416601131168012330565730933537736838109804660574249179996571168535793127604856275334651778713407664263142322395968193470065480629472046618510686421383470070198953283584852622857532000841143094114019078470748958685841670855337226541545799935366866457568664879699718355446177980076950930188284381376865087591381217795840391138391843717050495956304308627884103671907322734666754401611008984672116609556469517752519360531382999090099903376172514462780152013394674818826823860935113728703942346213565831153300483217526481998131278771887179582799851052110917246630191530404837336949889690765493565664227358312832176121106804127660982694950603738370425331069676094138865985244695085286512936235174692229749828879436161426169376916850612630609143834540102695098950863273117040537439152422708739335011914642620925911710363154627591960693877434955042241665545888002441909630089579595376740231046574192959552016490828306863819423889108304798797531265111658986470936443141639615040414638259085104235105100334895847092297290922181511703614550375112306368772834132441806199293434253653471522818010244508755121049161428588948816735532470524655191271655382299846593015066371210389249957006027517541101185359930121264921171743922823047789149049777842148772302553134106657500773846212541690290510832264734908439596736192546934841006601203954061403572238633253294416592234948908844028952666239940090959092977931328292199510371822528373721457976194975158037616223236051156841906777298508270891625877852884919972369575745927641172053046491426342885916472824102737953360729586335673236794499512797566248206227646183535083004362295565969683284714399932690647132365341044634817251856177287753674620001260904673631259232033940950274115160825916104230755683044470350460934353856445036163315550949644692804497000997265851323291210876776372181232491946466986860225570103539354436178239309170418791229727922686696567805853484942610726469872420027773350286918671169307607966472276697294873716874078616755712732822938299633893780880847664484673773019898276131074657805632367071279572542853942989385035645876402985524084903858391952465276486202169767436776291062736798135707094456310737525904334412314396329698757973466653253632168294914949741924227317620698987247183371153540452655153882791544346070760860349286856367869463873481326742338317657369268402244741584524446686028907445755176175978266333026688202565093380758130162981600275727776592691363404421511721767826381025862696355899215961048807518981868389428244094949377056282907023900030310605944148162138277436030723396686030103658565831827686942936859059801736568597703744676559776582297654715222142419251777374528506530194241892289512271995950971472013344703589796494118694643932038368792492265460985786469232785257642147562087305170821818052041258944669232324179781132529258312002277377081260875170217095612756836223798695036115995450229089297661992014460222354504531875630957369703431617193052128438656695644634104926532524317409698978458873808348554836650950951510422982222730904081334469769079858652878284804382266499107842198038249550789474440810381144656449906691194983052107229290050268166877195749499152084322385581991164706878802454095602390793740252454611845614801326376891715354042002326367524050121469066907575397661675108198190238136419017230929918716670520365759639857296791758612754183274988983907655676269250055564928341417696511598128765505919682458166579755690097272294378079644347018826705595267668019321333103028834736867732214750378457641348680719281394353036458121113990529044447422509015364158328396686500385093237695021903035659586041470307434409716589578498469825953710346298300074389445215389179474823976454652192004749265291185877759548262380201704652756915197876207762758093163351192468259800705197534223970399542741967424587169284968197477144473613163511038373138825990934336453426008025499469820379799293188927480336374835752482503148821499954412604567637799763206929395055372282048136395175036100248681296081968586965391582286503537989182871487253032360960544528058670296281507919022587816921458508222596414037094408743782824333954120627679920839036143742990682881312585169928532769450128997451654474148864291358773398221815673216639666289198953158198943968914996800717800235156720445973578595453551347408241340070672812789537012261632831199083589176780096438744794015748987841452285850560653592272998842101261106767496095381842284718544331218202886000970313562853004145901795033755401493997388888741930299806530675163774546852424008359838124697418179976780442891681641433687931145801730581061528661114178631613836901445997670258642520637304010497697212773559154068660127781880061695020887390000549820281010419393602829946114034614502207356788177720743225664562617531517387261814691268146242117351630653307384857418636895583483400821010066929772574119453359128326977228542539655723898157370332202750982125362586371863064012230213320941705710738518673725582301272325495965035464021496938922849988041287346270333620224034417207415433242536990379286934074337332658177810832059434547941235907818056907413114841461264492064839436351934084050982886764215576659850192761091600272135071652947632123559086488057564381587886129353209106992841838235688253043085658966611179695008043994216960112013729488540921017594664590058956419902966532650158681759050174268325405846808073395782854125024937641258937120803321627211420297430114169385044658179631508770896473745171805988489015895238335003506910417411943530839947999213867755434293632191426643424956600163736961390745011664532315524432027418282183037111865218142266682578711305922886617206231607141787662128284502922110345016010303248493490271112668210996543059617573872195669545785484291916698682134572469044424579320318596196400574725671447195977518908504507725973712209317029687947251546206355461629958213744954211335633352566073714539142915847793572697968712434799272575366232104181563204896073008781830385794055620734507585846719035344545842734668216094298775316016855914014643637654065832463860979634706243600862091196625209354983747673054079636873074253363443306083375264415122852325668633156909889284132522134264317228767555439838927640827606888337378688741961912936590465594412733490965711367445385963902750124927229671053361095375513892731560493724388343903512810374468317974975571754804511763617524465881792451918807217552107513648458664085368968861276715561201087555367296892562434280705996527535340451023202471760367776284304869761072165378433163502228988701518687182668806175341743548090671962085609855232474262155142401521159783287335540281796138745771616057409257010965863171884462987659136886092761232642405240287920912005074499381996868223114514801562858646233870766519781426530110393202699537053146897682767745035261405320514830021489398265662643804444016861368649512560429066150167219985091849920690553274069410526502133156409055796399024072254425944987474876904223924612397745010183359606605575929225550962762869476399676291751450370859594870902900162436209450977651600845679075582608160182924536935927593489566499713449577484676015513014780626085334476490553464543757925904645931926366366353395243602448872254867450908126197573801460446456530554308965742967038474060290822879836625086822102324971502326039491137498903850824275629346359405758694055922373282537076115638390768351874324579549018001672712755138142864360120367788711382997894081177952663526927288257926840871281002845391078909334125015774447677336674737847691277602750386465243320636908990817843846003324242382707670533618735935951098312902241799505077671351140597384243345197682529494304001407911455965574121353446635942324468666541158657041471475651365323283264315260733443685004098247646902322862120657384706420255543444505488693534139782075248515661896339243077708781823536490191607702416850816186596559358665646303099611188747295690912811485818469299543191516250596424157120188141005362972285380839998881625562080970971235074240532253920579875060198729825541828778524236045930644561204821176331390904118446674805035727482590380452392673762320177288334871004080023705512991637278445901158673663563173363668734885631960887985008806043094870564606125418113505677149628882660278197558654833486487386988336516007662881290001791957098097343960851756514970221923605349261725740150083912105054985621085075720806052315098313301840264268398127664859987659166178948103631573829227501931014461581506595083272257971756005436955945157718744574410787068976205955698562559453983477565649002890769922541783589800924839624530369403106256985902220297184310187523714842518786030234244660995322043713686183315021368171511864516017802190645804750160803163342870483785224369140918991821145891431208975685731038998863370644292704122454887853398512466157694730355448781013541926339000643777616635916696575620771570907781831471548373489131208958335020659956427057338217711882268628884028021340689937277635241881483170675194659950955357920552130492644397711941942959439027735800571845431244374109700081776217213818374218301844220483618700704680975040418410461180890408263322626900954279639579921543706524809570033006110627884697654109929711225094894888642187641662478862358640015767281569276562877066777748854012731912472785404748356148186397116760152073841090416809348682661231384176821377284570214977234569597812583989598376885522074758705567505671793797558740757359435358651622310535774391305579558474502514988197720849839692430359529352224186243376059427149674887658497728373903673219247644212450942929111324189067766999648480213093020605504746395387749438316687163159503028116041547793965683214018225273704543674785818026796768008606078213929045353623743926102664369321280228931853428664712693386942935563810218511010979710098943131495982104860649964199300859036860847106483717873847775720286827919291858438291834740928155901162536297596362898124541506301741887360665002584481104113867734893660865683115569603029569488388429593313933305035531060969224099162380501481353659745314931756773710705616355152035003610915646678162805157634194576160156784749469797003771863607954908694667633207911245945009255146084400288426052092304645833840912401082716493800495548143906263056110048187464716353614076081310792145118602771974941080230247149904237082609790847182976887687992337173165508874897808697593606135260879292317783852250747586290519583962758293653456922015016984387022475202068260509698283747300047054530825972491839106264157267684828872786718664129350046725485201596364206515191612542808759812294748341253822300774489142145996283565782433294279860205266067838617944226495034572258507156709159368156864234204568088495407805973100124013820425058033689194499479510868286583296383279642956707692057075596792359526992986308192194911412578603261196881800799451087706558110879063529956902771570970770327837199082387295106397168122422890341589678895242277046729789171916096653889905127059190274007702482665050577087290815723409296615426591326818414574203918910445975824548910149368314423933602236080569443243664788606767534393131993694083369580026121314162064628709410587171258657537888679625987757928967264296481268007897850264924339301846088706746044644342367818904459408789408371220308132924802337841446514695390941537724406881098466858922589245390007175342478791192794558528292881233685617740874748673753971429884503362396505170199391635683191483729320911528933450297258999842505732893485560897557674174277364063464686287061422330058194232701844609456304294267415082862317189195425866136618548752216924946347547797338952270625407474294865457415734340933636641238578901627738271424321554009818945849951508401730589468619213191668207871529765346102587562798058261677044192545564996906809840767745019895745327071880496374554214349459919204008028300453491093002732393970179906908741882008313147695750862677925399851922192634514386558526084775866274024286502591672821343052209886563052101925354795024240351125778597112366456800148857245234352956439199180548547403175611141396301242365105144462133981559345441870708861666916322909920773027147345214566459598918867096068693221625146037798741499060935618426702813369755625098059854699412874945780875060504162576539441691630427750357040807221811594609938005259003316478215484479012585314592277141029259581346443885787883257425803799266312368341432802040049568937857185366520707843958519231857086784354954712696981666166898611303649016990535846775327202321929390617183254081714321400259993052346619052064308342451577971797962095409800827409317894154977669176525794134803376677349359584180824379275521987232392020628890653120833247218243290215583367300083399414456186038556245075849262389610172555312715605695925713134859513612445832742451674779158560655783215237004905665722737069296679806490596001507251010077086496554459960682131922619642301448450964661397342119447887141393163942435746925371273761651482883725319061510572743177513140924271284389682288189476191429179908068604755161496692794135194989773171538034630234235282111787110649965101320658111498128299383442528084449517507046839075086712992569193908285101565154291834904975296060340898083239512231922629489874714565761429271524062940480839274976532340033344991915458827212933081540658112292976646187054842421577380997400649047213723526209585889185006534223553175357745632334914092412381966957728911480988375941174987392854487248239356561538390921350904768060948124825840942786942379161936935886139408521686542877368200061384542032868957108953712080919385054860820538892091217059170646455190618853970891243186886640431399397610653510061849164286826753156515961517370264668665213217526981009844567718808401937110406652822034493555742706464072240711128150222945943984714992934001745936393332982981927163667920270390525892821815049811886461745020360871230013222581071099012909548242251685433476283585045377401673946562400176185381909613162051289150738777331318143805310705892941201084314689145690716104297783325707605203988730306041425707191231335328793900668437273099146111376480093765458606866317215179559769567913321038376755727480916556872255559599897796199297289135367607838095947317953162246410466070172615307188930598407155658223706188411297536307777278617425131280174167090243101021573064735517310003288769368288191714714971928422031388118091387606856205594039476828797031626351688970683836818530567692718981056166784241461369581437019068230044951805838218358522503235373305496852945798495644982678585360734109622861455902157084889585123043761779961608850353483348062793792168145004753529892485881883280565233822088469837392021477037958202544221441941564869624679415112769693338219377921818975138711234037352174043360480193999605447370807112875292496839603673341046443663818388807850317563908842987519990186931280433229867259629981252123570412864805078275089696784819847325670417407744082389736336880123181489387191425782174863490243539216405666765168454214386790869695417552935579101929921443657924260833003567528619399251301100405640546673599802799293638222888966098498936871572687887721153061970188343002259417021100093959943149122270896673341848979518681155428822281332562241525437850559536142180157914480095906036045958973768831766305279979666465957284026245552449854518312875634610766606222038964158661688920126959902257102283680509583318920782075414699221924615072756760730565786676828527395989060204761969652045308181485583016588893659024777949264402832945457797613453601481349109291136352846153244914414886314397735301981451332182698767014404122242215066316580900171791149469481845608561625799940474404306180921872288686243263018981416352909181090319111336842810020342738684765424582399975171452390232865231439773520896764332564742366917648433883576917385337194924585323099609217805146695432163899212037606908353742162681861549111531428798003958825834708696053045608782628318614335874647107045374856130329541599147817123710991611167876671850228443532258850201841922460551167307176293655980801441740035898964914113774448001833917601284832669546067076804327407934252105440105798523746600938694198726393697244258634041902690395664653660924862397472613614905981572071185408763123258571999624579786872577842322131555547035094547549535307230045427868586712471803828486134434982957518042026479015842270875537588437451898596083760041715350129560067988995864016744536534671154493431302429480688877075747752575363873562762511257680209250365050630345801317614302976100159292357975588463927481347005847962975036062603427644469923809975179977185201059771406769594173631114863567531995878303676022750950848543802015871793308366725348236245978007362491743553254927514240411718499526675371607605236390221082233121715823147879426881121838019385503212511852052963708421340424261248697522514890295919032680464667952152242236576308692461309054702991801169053783060098306294597683833763389713180721549756035658354466792444839835336025987906003403442275399659222192818199957902046330495801846092613256715983978076599289058117936625794071491865254670222999912475276493274528743152277808319053033780652035757639595334641161884902450866446117809796987427566634788279966148860562272474669492916442974416842590472219520007058482757743126579227300579104741867451350560445911445751256060839397487517250130590145413579246506576270687359229657079754417380665660134704319448566644032686648970138668998785706920859292473657689996471237470672192854655802266973116442148571166401268375167252481244670882228917087475380653747872630199992979799960042270463113718691432128936991239482958750208361322926566484667044842186985336766951733885611274280039541066908528598942902518037825893783196638613586822290967841508682049242960134343370061798980792610605391978080308662242521244094107723945466523238013648225697878979242179991013459441063084011666763969105404227416836297544594970687437031687530558330848934854483279884399575267016008808589800654637432891357043474381292961676111170977648648661818783671837954480489041550544182598020271928415229941052882466665417074683393009400745681139779554589158240972001517313720582938364456287941659298153845263448674723112900714449866083479801220457744984479648982548777254289572485057599998434271682992631225669250573104105107278774765886085522624290931078791808214359339551811831179911825734552439430672980852825243493807774312565326785752662915206686028930973518766706095997381267273122384157875473282887868609849505981017316313377365138586981123859319652723083338489833048314489729108685725449300576771464644609417237510095271753379822190609361950657848127440042215402516262609018170404634143220665410570345434115460652068149477071119732940616096919203805042178809280567598390765623708572639715895646901232333484909750979499457151819811867536149195619185223315879393957026414464720303382146929094385471863160131550418752179562248591522460825893348496081691830711399636233377898179803448819775305564433864271656393979749559294329154518328249574142728062894807515807145427381579004806940535421982217141074952176873722030704661593954760847391817901343657900013051903585715232504772604453680297319368992969015440815944033332279397394036135665323197880522239986438463708346200493377534036195289618857340078890851000628917704809890025404567515100736993656376487373519975314567191258707726973401724324303436742728394359419848617387706506206065936506353269209723305928468215968014637005458701485368034916338885830877695785001282542652591033172490427281824273694947031141779266761226511541120226062332225083666556410249339344383269274026241963698984544154975095770611736329325310729325732304131528351982108632731534505886300803408587740053713519007038566149310169142047791170203180237808512436386199849187011683706016701677830212004085434663310676193569070743011278598703283262512957009769086901836326490113863315378514927386096570602232776893601086150823739323224116315545866669466090111502675727833107351745165539903847497915423516421230386933128010098018322776808418980520937936872329319814707655728725167098610780948629375695568308449081536401428967050876209102373252635912497268230171074478028918305591002123644000510252416277201823139494933548846914892482398347379823841201878655584936681078692878743842908190476098875545239415257998592704255194600430482207478390106986227678393882441757925521498761773912382945706234539730153825170459794599449044887465761378098362198095740822755996401525876997330825527109414226022945235880370737897572029166694226279890992540439350949580222607727510816878561473312741717119540172530825879752308860854637956742096438832000220201077158959032722163762083879138671364891654356079146887763586617021179256540033700168488813387350498106559414337363500090500941964497982451009927387269985171816069206638408811153391056184811102336536827522740400744746509357413508430092874704016969820323355928786764122354680098045878367961468826044690004721535011976519445252250717196938583834221192622441439840248698498382126666052039538534986579744285305469711391537727324150049603644939670412123393902745718302505998930066523819647087333884474275714010421220255601754782695815746100686964375699426883399799740946090594966168163579121346450156390580935916386332713398422703936957862132730177625709881970918537993347872178272183831943746472802207329359881841422838692181934542873542703611821273259891919681234530145873122582597884028840532595169090837897486005370141494788014559477515052426632370424332211502062622649001448691034165601668275319734729923652788649324809955897205387927623457607733871821854206467776775471212669877241716154901739136466156265361949937171196739473908534792239567770965718003952383321068635698168346007067593971186746388408929889563363179919492842187775831137822017840591772600532783447758141997557699216848143970159878108464949310471235171329784930330855413935234103117817800278129841571670723899442701012999559782897512658601825813243442177126888654061131639303536321748568139710130702212637073651187091822152560726733497214644074822261304208655737899104921600722763779104389697795475214879525350836790511825405482164017605498525656809738843836007935887791101951090321337566487594013427876242520239910273603058548529417628079310771043062997610010105322777965790239656435967154489993514697051265068183728777351503146368957278440080518475755139509163637648883874035044643356432860865293327943528624965331378783360734657858721409094830900445532555227575711387181808750668027515982868007611321593470649166971453941649517386157956121809442409918299856188923333806098545129481640910235247086844545416338231142827570921954283428031193277058222760093822033850545396078975893489578085686787842333015992190241527304904066321089260953211187139843771272757234028752793937788411665421937635420880069643159060788261721665344315792666342857443746149660478606572525288026214400226191713650127605891755894412360813133223513645650822638285345180068403073448343306560540874292165421177842724628835689076637792389962538630637907391773953775108730005738506283147650652508060087839909378574725919208062037641312725924853721440514458067310241431190991598618962528848772748116576130235521288140209397181525656613721405349212013097393920518313186135394726953254429434331285254116604536840640596604003565309987001627783264478656610787897420109533054723671337294932213080577027333810094120865963507388364742168329305576775452386107466963801892126402266659008873589522541021950002144545831952467619421459194305314419128883980057468440236419129441198400882194984596293547049463817335299137611811208291561841063738216393944947287793521415198145797382476173932065658247714828956665019709707601416139092431095359838791910436070440278874451768903732705142816948105383659603695829250964122793099095576443193156214102723641410637158309395463930682411736918945726603524560344659864471703980392441608429283201847094191373610937740999882921833435401592551714273497959478851143877925583151755411179858624976987301967551827130468817654337137639353816215002366061555339526572414172576250847259314857808242920862559201069213915419934485818511016674369440083850827267571470639592910194490597003946658300509938438749132877605197535788264994043112661717102177152771588743613198298913291188533887326550070065597856054625512910991195363379118228547778043440567271233334894971680105862937386917435534229717206761311812983908317688470794516603214890959084533125555936484103387774454773593841509229700704290325787596344465983084340943578447292772518514775210227387634830488234701393114553300305544192957717078752203476140494645493912154949542053099858230282745912733455969970742778344652368264756880118928382981485281055288716989836479695309285451863175276260973769888448285709042320230301397202722648624180263549459020275076108627769529627726765616283403626673564737586747911483909985272787825692028746705810935563383720107677852381369631712056492229801050051711089425999845484382204727604758603991565641368661534018031773395232643398482419594644967715044942010025149109319628940180777091300538460841650197905811759215160095057617238027641834389422338983844307225599203961432998283837866177674738446976706433775866144899405890042695490308254167605445751429170832891076438987326622270406430791581874545705613262675516352139877350129113621559875924788171634118240408646204865042196316507867887245996525083262528355754811844588545882471092639357437046198256841262179233478961693559703826964610612010294333853800351956652672745418119863494870003407425763562613356385349250626966562207962804229259104981833486414103783366175356935472962084246126755996897291373809573747791256612006901137593626161690247951654350692992656468126297873830713878478031790682893583908980264334540783920757723473178521950953196444805697643834898312069401923030222598979406794874675274747885271335015973657300672148182759283346595057064304158553024437534711291906969202664817137243892065400904049423087968089717155126213317149449017354405393265106800456187452797254156520181405893910994967676175972824623164027148750132705219715796961437991966071622314694615554459144409342698923780279885134830871002329305703410857955833550984964082012383483034647691478148618894997657161188464516865255915260704638395459716412525069954330177065095238801998812015478781679390378728291101895575735288817831175505819885691753564627798227557599972695300652461622301538392715488661940752929242662059043965979744146090516764620135148799258213183440795342130268187617008153146921968843599876992547385350843860221780927384082395989273677978995871383593811314650749114719751918874602077101303375530519467489383588404384831092756216737775224433578149802891715800673684920967066859993336597699086689998024101404140326742771503260601063283135321240359535013838803812185898823142627160779799892194764793735605297845823768012310909346179544499707825719489314951175333153493535811364873234317290907048188054166059797068976587115400020086432264297176670806603068202781644821296872400082974376427730624327662117871189468197531466636986615629011930409798791713764169639558705483959203831788547541045515931304649059727698498704409728771756470000039734926282020691949652922429108925233752427787808695502018316913849320631482447271750480789365549077906434781350923895283699703078501479988271503465540671847996151232666129912851990878927060091637236356537001698120264551281144033529555888909586942550817269350616477327208636733544396012124289113468125776848149684273615475131906901632023419565280917615410110006777450420705497779259553908131722709138131298498997947493841482371285623436420900571769704285931744418055116786059009030068516313012393684537861865159222929830250904654420764339194325970563303548318727475631906714278187446817145366965132873287910187247472087398337527302709994087691015632668479579955946291182218570573703552530525682904738458606985620134294403999701645771119623853087002479478716911048659524173989660035438817514698217741673952183371647075138596135051582507460228611384877837608990246652051380691043112656230062462931601272195453147321039642655686761648499833758202301321749382593918946758694143728944136653837449715207021633644235555829793194846496737902102310889182210616010317479221317588354937671855647482368074587651704611980465791784768098189096564755328278945969537856043160288544133450013846771187017764030612410727619093319105979398521380043343641574301334178410170608890753278125046882893521200375090920229719904071094804376411828199423444598290366464286900118941222002922540556414502134656166345464457457918893440979782342725093160890749511744040660844630022194141339861920213610857140770010162165454593956988466805660545203769230830051971396443127388932567576764698309368499329177725866450140169932229582528789481753161672791960687217069824007368388113506973724607768943792072156728419859287730653465209713711445419846086160880482837196928609149203565396379801010923042812100188458466464723306581063818799563256313015823906950732007007947450261616100605154858850849927608428785124569902399070152510002376773641794654697037674471394557935188882561128223032710525525786687537832024795451106913841762198462540060472668819747971210911158129177572323108193643645783089219583152296994856333172433597671892261946287468619473722128318469269629032281863223083242043945759111716628138948804747061234616637585966647096423776581486165115944192694744958650607369696122507177422203354833894443409913577061325870778416034853348482064742072878962317700784866956169603769468288110974074550005145028085815557196188437868004785439545488976159677225889208568736566428908083877107737238957587525820337150693433837270183964212824316251667556961124647158493485516718524684055306774000074706979671360692386452873066781458936328620217272781927915816322388247259231485406997414285218668044857606483462356136827490823690481404037952399484794903831953205196999137938656477217094241823108948851175983166658389998568604363721695876211610947617672460108873367590896849713416903892451362904721491093190316145424457105831327452768159179070511487033677711282435184117300733513363514617942401154281057896384420736723802155615260965206937625577741981572381592675207197266074436813084534209892091137284112446883309160930875416240653264390842531825940717385494558161077849294474236270454963119961567829470799620914996012937039656140305432399105946701187283121108770948878175091128068123608343341986129838443013860009226310314887656379279409107210483499785494700302631502510033898417363623021534572190872058029942608896279871410715883256954010276912279287321430535288088700679612386513545757102251668295564694334143913035861831278412635696038996367141362585257887053665460063543736852268844850584047444340436633491271249515651330930080737275292722129773907050945093545132383927017116225353242094035921603809221619523310856616917554082966853633716166214062596706451138393900731810338014303086854446926124276475728363135715076293455219590253003682316504557270726544911386178376850535815988716386189962886831193078379813813761095442733189307159681123963211360940803645194878128857574006496436124554620747176184162344624904084306058921103864349210239351109326583782684597500059459059421632828503485458986718545165194980306345336719256374292063536082232327531769782673146292112573913097523377040564454356592381763639495645891733388194268602383496076255808063441278422425789463572701810028999226669456625200430768021552208512775698386058358219445476451788292428408680571615770134354453176592329164425980642886032061874810685864660331050090236955576556636021314108481786561149018268493413084265633809739491567392572913698040804164452598710916884252128214127127868318323082721505051873542153759491930840282055249927802319350935254288713560019668937176375990258087456924839693060135581796852717153101979902455575081507402776289680086815682540164510781578127989853888068624461173542027033523039489649013839670760925073884956763982082428099295734104861323393541611171196477628918358257943744904626813423152145724386181253148189998070945870680152706428592680379831160608856921806545803837423208232970150436900560575405738108018168627787704952253946153959633946809656243332800300320298555075444028468868238881847536146662564311531356301661407234445831095557947114978840488297771079127208958807108839235777648516328813965498152441806127694797954100671591265726036486945681366645776656612313780089010991102771611087853707153959396458911657947744582634837556204519374601959795886690690308908144799400693159683035084906845367475898939654737083284586653161558581844239080722524841483254701002530565254294780872601246936953036517735515320273100508875362220848068424704150505554689735379371183663534868914891480298714973992085368034966983527811685360124222899461258029127607078137149930155135240920914132387766495767283501455938209948883104623674038534066422679172493645509625493996924147865414302642945092757682843304330471408351167261828374453747407515842163409857184170978134681343842449368111375677694721494382938705416971061156941056144796679220065594756788507753786786695981140843829720160909854289906497016031247832403476738963263537993695467820454706124337157000461966324095412359589351874660808966905312319112474036041303538531636364310636003783491709984524038365972194916248056849943680066006024501596421567167801669831767835252029429419640964444582171772363569691820614579949878043923886886221964463847651032684546708838895520353222683877274028740908908939549334673168316568336497957393709524889798876525514710041752700782593073604180159758856126262238018593866274344211821127939995838273079264101997706580401097848675907876315433876712584531626925792502593770439157870696633126764151716961562928357414812811072854174658323434938808206902117173153546317759915823573492257721486647692847779654829452488856230898722154107737553343147935277312558101716164610281994779799986063113245080783160984593176547318391909375280425647010736958991033212845309345070451162247539260651539450277776793451671880375059352651870581938532396249193359882254602490548120204353421540316891940466502229529472368359334617953579373087549296859577501815325897895912891459352429770211702124968038921529451898832091996696286948513723946168109245225701706788786047741162208294046043361239114082682372253668799591344695279730946330660101656937126395720600829844838822639521626029600766396919927250386513803291138039948951993636021834666139567867304069787393998347798847241815524333546608074374314952586576675076396973975532397720144723418302292200146728328468400604534536949594564629074334083495877614015372111525580544475800465470519993154915150189307980854959873802857526396408579197686766675585316173240507848969259777403643540079069066798189027724385341114826505940302108490932263734204503156090388005199037447916347059162861695205863668216004000623182185221649947160258288310577108558941058637860094194933269814616567586970082463010563112727699496570492510576305754338164516139520593349117600016155239720372164759978251040018484602525828506550023313736221654059431550691934357054451626988904205080265114969763281343660737186543365217597077429970298411587860335080156512716591268181417476727517951854535631213455375828120640359836205590723095709035144296320128472319463620349175135073023390846109807669159083111914437474314453800051981287984829905762710308797455678591126886552807429210530457359437211108026172092603554710327117848644922930094231665949291649667911616357812618325407736605065478979151817845652314544359010638607323461236114930663417129838484192423633278051259758006965218318554624654651665228382825222386622367728930733670655183841135722225469178913995627288235201440982334233395863784151308994463372147206803642659370354119540025417045396810770648665507134654739792394717232389888050946340476815151025669780343305200008623005207572408605611197524192076108235768475119336502614878563968369445939733433558754367993924270459685871818457202502696161542801069845592292909694949134775514089404921014676475387961913249374341493279567982458236122923634508126851416791803741622239340376478434760331714595718631666027529804159334465153363664179635443099703157459125953267290171354941979230240291280736104065123877530092893962101285057537579639437123323122576328303503832040561442976038276794586964414417413273112808554158261558288375164771125549701816711181368594365082743680564613540433899179552971136288102704974488125258078238416269102342058922070872984932187451648510592345198786644298594358895353653289867884042086895866705860641893525737087459920989047286872564126166283692849079681602900246324379064833821775174528934322227310577916320269063240895847818001054507527709498393661136927863522007937545403043871480972746244021862688958591890916094238175177332469602201720159068563749548409007284626785984661899362375407089981599747271680545294755634851310288848594061321765954643082324272687389003967688586990528614891658609251374257394299615142642904755491229843497461276931741346400299850029006189219961056279882003956052829401126148287763419417888115760962078714271378787245062129521887395982279886713043567619406658179522372283168688527739629278535728022234899316292589678745181438249016438471308211501454008182045328805608044514354261136774025655322951939001410518218858847870233556802704535366910454361865986466725642339418383147512104905083698749009994299096396891445810373772556458728138588379195102818679282322235239191979109624092862813815658300347502718054351723314085526623648656399210273040196824055970226904829316992513043682619337207641993400221401232267815173176123209259585694788498891523935146304184064651890595068808786573586459247099255252255612894526034660696528841040332168435771044516549069730881721813096784928619927042280109119553163475552067293397386120720251906060000444471368685047500744205337191544415124446868007429916186651121227381096860414273426887754926425270642404533483787164366337869245636215268791967841653665398552306556367173265304255495486642703430605645055239835078362628436361111186450979330739705383606556502770326117307812744679957798783298379349204753861608407944921240475699668872187096074814000144894516818401893779148969917381223499347776775709114092925330773008610950524098033626211100897907016435103357709307431920661980845879464752176208282264335062380204618493127649124455534450674730796313029012127369299287092018999611300469817368990695795209070726910890581317675226198117729529317916305930015688976205331592939713721301759439278303468608197967576099406440335888400287249321932455656601511259427231127570408256631764035974779526749821151737856008927127046099714705934440425151941327268582463121982439918356654781459122371812116559839736706426533676627593103113388374781558457435904541306186928101899510677146367270481563819664397100258556109854573348081618689298642824077225244590858215935473190711824665212987260382679017056066915791500530155505590974245076241773915884256300926451929226287541032595633464207197436489113510443014428085234246111534668659040432726046052492692218251443207973267773419535399180378854352745767359634431719351273497088513771958185264990889198397389130292150036379173232458491216445831307338270300693267404377427914359360606805516600838612645362581660982034978078482381790628117209603695487387113680990383315448798734286947889882488155804614079348490623768597783702509196381973342169687027489000836065795769670452369578857177375642912013301342262707371766557966233510642382270452414757793894320822532354666749115259338248383536316611139952566750469638855486398217212192536276238446657394054393797190428972552647787829184202240974276087367936908241241865731652350022018388338406714613195067914582308110196170975004257421259444488325659439510088094480746246237526688408188553801471870154994257276561836498965363469066215745842860689985358032548874292983054439734919241727081030820462413328042126267850267264110346518469999066155092974038547382222215214434038747026129868160744417548042007522159660483694969500875188736742015159080792702223827281177159421109708722183120966057633778092857547186083166284264243922372290509772100275498437096233775749545774819849096738387576759597774280888929444551309330952559292702593318956526790743758334271976082430914161331025432193434026518357356479127277991715774222498675629476004048131885435109320153552501436587365709442015446768275925561681940380991600802333987785215982693753576202731979036169399564438108073363222397027310405652545729166208390970072800031248074002480995742772368352139176988710150001006632812008482307465625107559475660501380845150786068589417175055461187781362521559667736751209608688936353812072213884101055864803542745546757411353634611592037837955671251982740494216212568503686573713212049621472778836524675839562888440130433749552874936204789064777304827726513570902501669068188202232469468328874444359182637792064036044584438334228794911760415070688005371958923949640697248812441026826531957739684171958874040942258939751445536716695146993358925116524318036314733441632620149340474342550170998344937350560109061923127645223093940959429669012951134425972535774618059381383560049587389355633458595738145868433718281871565762870590952683572320972492496122322055936479502331718025099088183114927579903631517910338926293069500094461808134532335305019491855882165461154564938586075119112996727990632089869290510782313381384552234979646610466713283311355851826912644302411718696843310592735128937528428864641887915342962026081615758270166672397528079883435604612332561678559033942879116511066642062884431004443346098642099257547059990906564929130236438014779230951321046707353502796514931780057752793783721096498719389255727251225681282020216764698788193007197587030353102183935503153853579368776991253041013427832087376947777289313525837879141871870309328742630907205813739992708979114076024045155253559070836955460298570950033080567813185911245406292411388516102870194192842179673340871890405206477438052246167917830860055010308881546752968757323664789638633691613512114701249707713233172830911284512997803402388779172902540211560305666625769251961852648560367460869157181137347738385784817096394482847390517381936301280446015637563743036602490733728001726615654179059220165809672368410780844069364926682125827375066225640552877176516916858469034973110726286434777895679764811655519439896783607201942655743116477994738069544959961975956663456511518772500877489850377264882290553976165345294478343832197367674708557092703984291327894731561403892210386942329100982236768567159135971625749605167847112014570976728453881861200038862590187868239762237652604099897801473259331708465176852793696640428716573420190370897127311855848956828008370638797451192661019591565503684709531258687308571024611909398656874532380951058597337867681280206697301624010656753401414180524781145510928375949313184347650627854366316654315815300545344831426623787906356306353611179431554242184030738204822095885179448007970432693267732725691844560188081638668811909297952712426762771970344776851778629023767661857415799814368029183733707841304352015070140526001622962608650637265669910711905446410365307542165423509164865379245104529579980930135012549191333170398714409342684154304792384381672981151495649069115820962005324665019216033241498966531905968294259838154839369882843362447014218525822073327807216943990050442827626014832869883806059728680064839990060214760682647133175201939479091864540180339598764478059999175339696432003112123369734945578281767105877429626423836878948278600758115097646531844659857360091635784636905816229325933277378185606155040455978740941060727780467317889430002829147089248876875826374106585042760063506873205144133221169213160226385144858063662646331016355177397924040086239703170837051532377415058219701569940983733183977697763732465191833447482652778126331887096481534408579551316299560200859832459763540929448529538070749699785762155250004385916034473261181204539386601676591603940651152298939039589959439246093437031284767753087990415933134649527287436722418955537098321654714590912832105554577698895625959355174729330744853847994336917381813428377229728923445973952686855621538846214543294327043767659574472330969846048423862312085400576475060154247999199641292963273198856467375102257621675986636519284738685538591045422471636646074403313734412786734807917207997250707076726881167257715386160987084436118290876260293754078398013113856913270660728817682845947868710895926728489630369341305204931902882951565719096421615624506550088634424488788261492639671358668281157839794802096603433136986885128724794426921860888616928894465622813329709456147635047565771898222084308678401494905783618824364438867681128820566990333339729599149746510145832281157094856500296461455392111146573874960322086281431390541618145473230868530201348562399546538825481967502463154387879254734950129975289891419077382974443330303181482346631185878885140434520794886312742179874900277489314269609857171514796953671893977264825864323888942053134253667016216378031631554911959951522842479633297879105106068766487747070782389333525848793316754840132807454469666070058903719961699052014787266054356089199183856966109861657791821358987512864646818671931829214191851376267861654532952701903597268128373487794344439949416671016754073968389097730752016681358934465195479948446191636326594630302686732700941614330054979191372679664627564916405701227972731859372691669591322166538283609892147365713723651372922679260799190949128943675216575189258550857843100704900775703407439890245833313183217760280651813212486025293612098022784743872379710868874879005285154503517563788706255203432425498210050427032764021239266517562362922345749673015419793232542266732908115062492570983598843557946905868342833025824122711544273997709372750783108974245229184443373461488301246089015423358562991532109481094606298663972849531558036280910200905546833934531834258983812857246388683530612923823204592600096975078953708452006036042478416180271679232138766078283043812190015376088422070712506903950760548617902084783476713038660394858193691391246331162754981372855668531764671124459235578876818287742312474149564700462920971496103315131220738777817689399866931446328432425653772978991190558058190936952560878246308077245894651731775633568002035978317662512422255168112376278441794478442984283456335594606011460584764669552225261775016769226940774483566334029433871762599465026964106892245492404076790555034462877036210331702536907221351189057929390133956934588201689459507298811191255208040915496462343271182912869684320519062466552542508166416127366067961099215440726143799483927526907178699777385744991052380912597742012022604139719096735981486163026975737316961195333613859211049896928474035116206449328186524624411304892762901086286261598319863584866983065997267509068348018404497511351437861471020409695301653942496724463990642123117198627541884748125193549234321082934345536635838132426558711461067618529322480082214197644474354617751252028158862697217632932506915815134715572046573314761284962200168549289841461983611159538603888074459017552983244677983580000487211812291700480409516388316693804155392899046387248146636781723903774372335705647528078808673010844548288353236849035246383199074827799984532119760592477287893394410865232792172680930492633276067873644322303638638768062388099250216203110291339154075532912326797609304515871413625272697519204135289747505211332777337478988049914194566657538676658402613051872406591622379404333187460156279236149889710996036368260145537339866910325105728219794229111019695679931206869106110985797669681170508688938855059396930158026038684219544678741660152092744857152631168990631262160150913710393412184242980472584672291178539260274265788712248114948464510896515349739971149719941979549172289373790054338917734329941882188955222689484269815124945401675239432486893263142797252198891573600754394496595205846614149672852971413553451581420851048371448006398488981003850340381249489011215468208300473922114165939426539321002324191195003375103072075090674233313152023844443198420001367290468841217855211519242888489965721931187472305419601622116217321069400761153519892893976820715625060110885609301199510438456548300963752243207640771386023406391872335652469943689663098445865506680432975983847793190077154908484267866690367463709082308552764210634346216721984324609536164765765971077819506542313633976134656123450314071538025152934133063799278883772884727554119051690806134112926848750998246773408552298023452375526551721369877963695910725368986317005447201877352398261393834467620619345296554798717364718294174347336376214659311329651882055578237688772227794883056387543728903198460871032846922804677144770329637993926513778408028130987316374831487011641515603851920983431887480813157060958250395831871688328903124610181753084318275247096124389827579703017155425612890953569038232420321742802525308382783132088121814212427142945852687042491844149981489105933301171745906285286574674593623058126991339601090957053445137114251994457693722808187311184341106483146321862943328469652791510658692266534502871143190145821076689702419353639507020685679228608079257859304208416215749542598700169104207521473655499083312853381295561186000570199678500073980810522905405802808018124126704811805216755343041035890176322305885957811219874213265027019339747119017456205594459397926532813297487788797485406796529137618519121157467810034420059280166236376669319422337417255277066912130467646653036411276150741224333751618200238028590383905353816131187190817169574606612373732688706555637872410204237031466370793567390806631885595974359101002536674786231149624147559602218734336749677900068410454575237667517615703252275644146409969065538657965802175729425904014824033178756334835077809343675682263171441743395872095002356143157399042839271206796457021589808147554580389074646639600706151020381506369499828374280411764650290766160268168558857053531123035390627125297148404119961796968984232242164105509154418442004052678337227654981628058770519271253266170162850997192052852098092580379307524545137976060694467733269822906142914323029791406222771016085939735937142437681449614021318625241978928253053518834089671951989034251831161615807929852637418089340437471687449128002623359662662637660616408188828691907435910453708368688901582411544721815496498625793833325307074464034078796401465358696557992506781454873227980206128336662720866661889435436671834317406932280887437925286214487200079442525860671118791661294465885168596936217473222397864342248169403374385081679503834318082693409746554052898093693266078670902872286745358734487444176934933525133731004337883859859166316357895376890591513754724195557670171380327281250445591699610076375828755518156854559661000057467417630954073684510942586614006591568753826485549616064047745692857723625286443106889414126642973759332894268434221556865092471047912234745129028985368887838020021915307971030846922893598718256129622427563249660065461888292747326365889174419175219503674328892052210087403876484200745874863616251621675520306259441316553544427639338132106850059997389064032891026863796464656241102163485755120132982581855133604609638639025266436286433777056063757392549188561722976480136852420423917523816939772827035456743629066143698115744183410270431620032527823318984239557356991328579766985756705486269560170082287645973819868959297251655917137458691366203829437037202326780914105128624249529381128304728093335138024096221828311716399941296933300350495396851962406347606824942106063128718585175433054245542544269340725375040107693925098745241680633322576670070826809146418704222129825549835823033058578490687164209186178891126167874736764844916688054167144994599233553684841861642950799814322160211119905269975363081283190298092757226109785770860855641295897099534967013383891967516569396001626460170488734766840061479215647116795770923452273073467903406799223125034042584002494238996871571493591628172729052836260589330788894798092210321528921670656511107070638712262955251556925152564065563879144207656335247090766049084471389826983469854538459055494133099978574276717408332902087147105857675546212297953856358720970420814698489439054617914265024641917730817840617367416083716403422016792728006809751425620287903604576649466358006862238284717134753719403664588993612147510676863371585700729944873423374148634585427842899445509066123483205429760641525348781007172811623231284787343441755497886260516139778106530604072752684334776669195729851991886087390804473821580890259646039317214421012149553038912918846459987538710555153893390688250251908612913822927789012648568271961151976684477555920774248780163367117232851942526777480656677015376898154598721850447921538733203907756563712424631663563156170562460459409780208561663817462476226848578664000541015215105697896412001651951499912674580535895678367230025154456534717822336866559857558202889390627121780437678320394970633188835036680238750279543636871692809271981647634754656507791263831972429174093756445867471154118192975351610491417135168634114574181356045947981167350681134812171117107712071597983675362596976559938031160853785161574987210327093066492901737871293053411675729139400317302675116449371069486195742931343008389523773271716028831491991276964538147320805726795203587883085312081436917995648438786708279011442321809825120225178734795203157503934447266082586139921382152446908271663413740330908569126360207360169204814032917426177379741167725190338818265608342733552791272517236180387482983771215697141381441952725363162461266777123297145588248645517785597452269657407584997977749802630558981023561827131698303749642784821891178325748651442989932868709536576999695899413079733305583609376710806823062480282964524004064533651972812799940989433673115827592528244350888563570219677789788670423015791895185350182710615809086920366040328224417836708056370470711413097368960093310611638821087390122409425427455506065529339308189665031401039025671678517558301125918644354999392579575323637729943358093142220308216564964059697173215151036447191094970796338460430233289753670064255123507300583457791810464976599026219317604440186294717147632863513235071115167725196887443361462287712070730029918916673055587949222747326096757358931096287703092130078063925235603614581435990059888610823654422561126258591682653695654963983276938390746120913298311036494962933742020321797170236588880505136659234528479546448559419128143821369320244102186779402519150229257813997813081676199481467232869474811736986591943829034256162039340593651847050330526549488849621057685372383955907960463632851354676053857369951828534748812365791644404365432272566031680031225211801326812421723083146097544493151071619757267134093817757334823635942375696973006659832106597343444447842156229832860132513653464627432385815279176931713636431130300808074759068116889847731789095379641491581446052666774491228935853204955564060645474092686358686513984193365410223330744575213878424949362045565388635414784681007827277059789150376473527172356593376965922073336193048559965143724547025172042872243037760398626853692787146388114041042063687705994918479809263193119587868311326969258465460766105675005707700600905122348338170354705504588410875278329662728388764647350909385887386417877063017332647676520854078890771559453692541668103996617805648137980494009536221748160284322594600218349549819695147183281076647649418069929032208775799683065338768022923178021911195940332889042121697147767954759977209016040909257689108362018573969338544666638027074859806584800412173416672737120259761046546366718268930695818658796098058624271115997720151441386053428346934537682276257664144284991675040085543560362915132153481707191316566531354520869643373099474750807278578759599361835523653060183748045870390828369064699560834755305550217870344310167530726920989920448857919138105068010980107513491424217112169125174242463096314673242624803919268605625494086212255692842170200832470914973831308641308756952665404300445557955654883407358349842277427916183740131445820150487895819435242198407725847959514403682634149646930759900967544761528167308554247068228254880608281980940434384679058330136219894589407303608087891515273265784103076422004065004666719977256471336854652448010413317983356090442763126353889052982205871181772561240221687895981164733818322319142634774684160468830487502601370580711771259078220493598186725176812917871174202189107192782599401249905525416753517257096487539045294492588532844870866515477881461127699711020056568561874017824980216638379005254930709427206721481087236441030235560947294114089170297144902492655856495952791651100305820925521838029798781967782304642918669281689644396003335074109902887600361188767667245197625115440851711773413775684623506405171248731441136191957868651003274329684962025849004383597982384650874151729650866194241495427206242549914090687069940560930480846706398397334013249799715969607515558276058397976321287800441624482282252889189561201911537083810347196199204405174153890620848930468735303441476441065622861041839816860174793579517426540672420656729308244729019843249523112140490447782678432498326405404954460641303903014961602379367959962568880338808834815116895054276137899946585164638248754334210813050965233602758275001936958809749081677524161271360336036916594631252951477346375452869360928042047380003577530936489901988068272895375543898253103005605495992694744436823440269251572239998429920283205636090134743518382152521109877889259619720496891142801309675758797162288643810991340930431701473835068912038122641602539606959912226485115819021574258501314845181646514258731893355403416691493810889584266708519672788572067766024081755197469803954004104190731455412366094962180155057257712523419516060997043346363213717820684594046170079429258769924402599719490235045575179361444696236036914669376721659193528582667465602547028928312648566998610567248003229554776396352941469662298820831434656622516569981820625043025815512696560309732378214800156417040896411468094552229667108918151338072061916519964925454812589034639403634591018313047012957269272290669063428247610306436486223148129123516439181138335482815665061079352573346916047535999541896450145749256523437379112848557542332589448105558790310215345505676795013484480369489494582488436204000371432952613325041339754551811879869426390183199761735299293901002159873357195055805524954904696699945938290222456925062271712785384301734041276792779763641943516401480820192769649407213081741423020879809732860772081555292429507993907802552549606916945446075786382062957305365831574436784003657438161910680586090945674004965072810646727919630351663215772712081674605392900481925042103286955058282124372664106652324515591736694646042169750708914112818984469344036582187550104598333869571862235910343162154352285676862222102247565111605930141637480045329567963351527498074606499887714244705141915964961633042758440557103280627834711056804352611012078451525475999854130778035651128474929666296979755525881132493801384787200584367090775591445202176007032718903928906200579456418262341508110877446742960185681494855014204917232344598387573639169481355805269647496749629640665047334175446064240394013499751892625483330471615166049226220853512555673681300557373713250925453409829731348901588008048908069102361573120226986943340184544693169945342036540233685636153722473012794902368254850550998174383545007197746583540967140647700120258397720841633076561099651520703778848333471796230122021662860248255348558013215352427683421268097426255673022823022055068195129724216718063191511442448662118030335327537223827679805454204806524318362946733213069745509469950150408053877123281997237229731563678693731780317884433783118261574930333574461578195576950829498094333867023724525752493936388163540688641023429186847581936656488760265053843697950325855803842971964124186485068728700945334215970656199293703963740683318053146642066956245082780957107191481810600595519919302403745986105311445571943764310958078579373353173434382616797045055142538732962846821594471403130207677168769591315878875373229367190391209534316230970800320489018939739344227938746052033764035840382928127025594233489446797988778277149641721370923673978917675681033938552706614458985531512670659886267250174435568359544089547489492924084089499540118641021153239507032968896540936528079320958514780169553784247775796304804171912165147969227469501921463215248389689118757759379074568763084804032717606367542295648877547165623337473154424246330827577941944676480840403854046375468013481248970858534863686913585494357465357305940909737732006010561618193872667640854738189170478027598259614753534254304585294835775023355082269650755714638232014300764675298639946561505598768091671880756427079955762168111428489409680359787649119157446231894867536388895128359758580157789750974417010495703972762460211570113486257396716285982394935311532475752448129918410301778304782127519820844591462238354634477257256417473378446218811391493201189549195765182024453644203166871665141708022699474441739079282224787300759315529304087046007605258134790738172525546029126376500011604297286402013174949662203963751241432639305193186936483563658969657427714017739313507200110773936877270393517924228118808581027099731887611517307951928095649572300900543803074248260706232225231847012177078747641050992765012831123241560990269268880138264950638054885375761859814963817687631790666757962934807081672960618247142381568459889801620696615398555361448639152773813411965484792777793290326088280937191527876653905456930426974797209401967858041744063720080984564663551861330852058964607985516159145447489093263776310669715915851349872162333459503626562566033023596110495346341870423751682063425757210111654815268847714527855535966207070978816879716168940195451794748688562715925957025105011365463200303589555132485616613060483636115921227189447740892246045034060759219800800382214854459020760446540837152779165769600676501866801862312461298826771835322652804683814365186806385670842228131376282385875950539534396923850431988955185023249928826844388553943301387093150264040715913405137682066979977602565671139917146103784749985520160510950539363088611856590432801084197290423227178763390000212068697835147339060914500071592595140592069114758699838081977871252924044882058955553391702376708299983975999457690700272794198278276615573050528281893333394124360997182960057736214450631665782302746465413203007802668786503301464211922662752451954819509680835193264073990106523971109310213356914750620425765815145227228492999238832696218156108590008134386183195020451884783155373234468462447146487517681650313276808019550000688338794972345748135099681170455206287483452771254371557944464995502313015260403386072173814327014261890125538420635602800788341327916692080773024791107790467018048055292699062774177392340226179275750562163830846888524897199092499467546333546852181887026148672419754361794470193828084347767423000207094166537510135305262384739678417180541227650212600745631558183687505295655187350717831290246437532481673029784418101944463063088566662688662059682782496358435200734708003285430142094366399755486723332573094744708058839818687489355831184349892298684235791960272802769922091226684488151014415760731353070875802996465524301713854819957687518660913213731384350300506788191241704716227840922850710634286434262332972999612261375437886141414685065125004446200122383674437548684406259164939791019608100461708889732805791190619452445479468374718180822815070228185926892386863692069140640507656792912481017426939955297458769743626215129980039410083228073039097512783853575762637346622010357488984441149972644202809000557351800474846806806513933676910389527832683779265278172413796584927482311431310723431034770929401994717429174113510702581495376171043097558352448601879273785138249114645536339701357058089010588028098097418415495327254060402488552368360511979377335943049728824495011316869578508097455539774808607576141613329413749848265419406833605100976546411104729860339084181611504645609616584069802540314729963391545265444409791360607791981216073183041871540358301775718174773928106224212837028482879256330702760485359385563850052431748005406292632536795863346175521710887662985747375921121947157611816872492414617706198019932578336889471664001733757447868572460033411007371122529467242038966038370603699940258148796939929193928654470114477570997376669541532614312961883968216327016824090832749382823674080423066739717796811258051559512489447209835945516211606159434739020641363267358334019810251213797095507420951161105278598391203027900717502346846637098396751431192391017395730680318994431193428669488265424885135357441667870717444508901308308588140047950892716005628732711614025281965222632337486805056335802356457647718292265362461933186430961088628209847991691645239997556722062010905963852651558180382409552247559069483215531364305510508881938821738365620154571181546197696282827781382160248715195659529997445552449087046475840816134085706238526587562491914168221185041226274991526148105236013859687479193630608963527399704795657304261149298322711584158518288913181876399416396720210027114973854064539283135676384171140307486666756241743013456532781104783674238234601664608528070579872080890500035255777550610060090162599047940210332111954808633107002914249701130101623283752872915702527401190440448526068405027985914839283153088825150974608130917099854773933692888644753304369725464733383572176089553522152735434584404479328946509325953971826143731127618873914515124456587086190852881730712942354524924275573214086372478570476860547472342032324345418669041806081186709447638829011557283961363432905862306866982173595073828136005835493370288431785193050342824312167345876372867657938525750311737427041029968749209400560646819191087945530074539856105794180827980740011335044892672108825740503296320083010394861109366808303169416302902111140173822926248999011966163963068628632010703607181884856370881503728634442075495436241901982584440664111868474222114224455634217764686271143249480332873501854309800002731242479463194521769365833425183123377522245920773194485067412047647258126096776480570611672903455121210054455449100343314128278822728494641272519341836119400872427118703817714967438317890827533262384638457530269532049639952135286566188504421594135348903600274035200252656393141488254699177354131847575731399443085724955156598441058788628201606373135619887235642325769083920377844602122186011319792205336411718341476144308244286954481685181451881868623848485616536956527130960009641159009485158593471532865981691614269532768946730898699420185412486223999466965023997638425198935073579865765661872532229739130174485119850273158354182301750784785417133914323715725672400983365673058433561159437813568219650709663866381893393530158585617999474170061739284965528206100455700707507381115143063379971407565383965433665410661417020047902470571507173445176775542837838768092812922142861749294124334059976710137854113594444281330060741550188549730547649903657809106086141903747730529736234596771869975807975696870453923180401850715939311859841340103133045114910866317203761460444799162452049658268231020053897275492006818921200084369475555576317038919477987393733540989510780228366608100631033904166407431302809188283086936075915031153148227098502866234772975594566464351449016327247739937390543725649202678209539297587950277178902876513686337348616390670186156269378356651194550318963933811138050535299119870276474536474445590278413426545794271411981192561430381152798403302116650700744025769359776663169584638853654101151947627770532177009519674559881375575517352631800904426682200648406383786528495221534013977986042464438391241537255279764509632470000235164176396682160446158442466499057194272787308021070552809819519430987368084889983587066378564009869527557454326147757589095181291913705681169535569613704045538241042199133352298657600249982009393453325565093993201800510299838573187639303024534888677541045310306848301898380810249965138397183267952969708659774972762942784623139446323736542965728840852176585742312611512136338999974496596891890345818797196688599637362642627324015700584424816597562674569350030514473944450998482916821147627855934045636082741083196330507727832101084444814656072779919378401254787004483308570276474653913936966201964632503969166560686221665897111083574930809583096551799995631694688074682466147578117896048606975303556917593756897380221980598066433741062205137658308333684392150304075322461107652528322314005901432138968483468838359750024543688381678853444603241748206233434811705840739668307604953164575324112810683017518039028857243106575698603060050390757428074908851796519454797555315250372265470147038453681138172094363415687785197868401967860266630021652457494353640126439112577951023125082591475179710512585342059820275152114332430477546856682428736085382808219180670137174652644353672075210310961724519601955098891195280852841252637461582407605009398512404071013427385313756218404051760989368231814647550777478262437635593670638258113154054875197297768511285874088621391082994333180734168737183486214596012306397923544757658121995015075495971657602028593738236872035642976092169716700852440702428522935253132030562336001682462306339328952452591230053445798836643878944341927228214433960100856646317840315958114821509500071255972615111849668036511282951255370122361684194716825453825466235389298366499000526583933376475877017818204869969427363181590692392024517509987370759383305630926571710267809824594707590619595184474777228159301050766018518044635122795277556764652779583985255505938611589146412987211971837586185696076951291143268757293673124450083738514222161132003675913787579806873338957855403198968335778757725652957821714170182660778168264117650104945626447183362664520195317706931037336638085679188856238970731241912179679030014842118424871537866446580996694002357377597486995988191675683620361282520860242790272851107029285023540187191079824467291702844365250627428044640085582665738226811361934010426266366824429003223386786362276165812741398425775817738360426395851780912076818809390998663166806491606382506162677772379032111350261434018529265184418867795587760555080367186484957457387029500391103505787979928241816799933879853157355729763686406903809880280762670332376619703452461024216765513013977522692233732294401303974147034138845225572038686964910431614272046538101373767560934916273199718772771770420588095434075670378870202366309187022424784467499083287660094524587295006898168454834655274452089900524444197395360446888378026256171286175983472228754732933647250182291952691728502336156579992909452502377602684759701583599476136523599706320883627716951279209081250416501970936851181122152219605017987164955748744738305793084333457378463121140368548053711033651583616338394222809280800325007010280519818614477455153506562580371523185529860999750802659768576902078576271521340096656221988738566620759136558039022531867798089318832111924706308495510385312073383552725118117868370306487011251832479072165473559129310874499821472325306164027212037686261722928124799460752578156097362276018601539457198971801407250929267141225003618451404702690795148141332923347220805299554500210048849149168024859259036069086772374203907673987105776601564576476490676804137439231138605881002161100011418539927796012252534706356515188995488893996700403357568574032853067998981343940118368255429562825396316736800200306562203027544232427835751586593858888108614500045739465165761408592173228345521400089949335613946862477515055957056440273424694747032938711490541445556259783802510657946742653909211601248667103267838371196505965905107527607670006630516719236412991218714405881344815644141224773467956488728098035046441284491742855004355398353849942686350472214154163969057481495429957569666847841160764737973396926426025436634091748913585717756488084614038154177088107316605185166220183855896497372762592940258169324129044378713224754790650383869412741636316792046915903776324531626277493748559591138694832740190498141602801588523063118868514114710348475578057346466796546237585873306130641196140182286737543575980424406019560034569974268705741444099406450103969578269418780942934443738809379401638917133175911134083992789043754925872563632669705849568668562770326491534686908772046681512727595334936105629320021880441601749122501930687263599754933619984182505525842934479093581476715809682805017111265230651422873935647388169758044125409705942606187113675509581807176350734335798040518914999990724314001050456667853208815188054936417493854169056869475300731220171842842704490210876574077919777656225260035154531003451729681886219447507531768135886114061430550769616550179994413474740282369105847411506475794918339874963748771618081341725388438391645031200243012524705921167139357599974749094769424101340638730695612936243553351670779910979519049538873763374217901995677207458633808821710414000792511291002183252715086057616727574042171458816319630825623857467059576532846443601016852726857199878457540671650219780988536353611570065512139139991201139489508046965382882497978382232549491770313569400378614989563781912048456547723278419279668126570935075755954335700718190802899401553929361574591675265054843287518782276117901884324672137229336554750317857147040904625841319732750467313870041415544267834140850001930222437900217870227840684711645884905643826630964661100289784518528446943603064882052657482677279970934276114650430710688634322665351549954196693428422368051439874405210198182496692149237180224313663449008869300832910905274685252281130487173080625477106208634635960908417658077571091124786754652673361629026864270208608560339031489958536906643912937482067710175678801790813805998394407397951361882584315600372983541043282572357853972795173479535254469286291169206650467503523713780671449941396840283233857649835224196720578021495736763255721702084241640326447488378809410021681078756214376927777619153875890081632574400465569356788494270176412802736687052386342567478119555966882511447391562422829180294213179608109808482599103654316209519088891213451095952096153740333388097695633924957490763512278832179985033785274133045298703127200548319753028993113409242608566896691437869349580248080705120605495229773918587467551176585031370529362673983145864151503357532687387949065533432188481161491803653580478877685475490133201473831336205344496850814006848017096961518816516048686662981701421042186612749431778811418423864361684371101275188412582470659446105067373329567237316500188603243129096745459161304525056183409289970299849763094655219136511202038828616949289603105351971806776808641502541160989645911336693466489063751911539847589004329165204482422407077097498391879386435937775428252729681905297412363004730457708775717801245789125122944951971183529239593896352373132491519659230900012061037882569793814995902317575115807535745001914575494585702604274790398165215086576216238677219677359398385041123459102451749607359461836739732770807773540983350717844106300525681475411746745965998531729172983391445031702801376383230623718558462326802382068458871397924077533203229100482045086741179396833171090614662434385535991261825707728662718971896177990294705286831215129742022260104707987829174140078570526627070648962208044212389161227222049029299398955092101848844920927353797101117102152890295156101924169927802392707894547763477682810131165924552856989380580164141304766819467353989904779476070961342878193952127422586603757552336554604756557158547949227617912238982812758163532415592529174868017239517864456170206545957627859845295884895548148542240725121431210765603159934212295995329736338597485466595706415991742970261007847894061615553588223635420691658116577721365409519147417905871747955108755118324305847196039125584327511389407741543906991034810698419695489216340475354301768203181172235977064460723785982472481856499002503336520441382895308241090502678188086106097396228880398920515116991137342838595654751511660082174314924889499570245746039361693690718940111502134105509280169365536505296384541175560336451940107153077935813193968246846712816448656607190747441336395514722726410951814645638367759613798687863610697209384047997091290362315675814679146058585199234212941591722533381995101662657791199729248068491611848108080407307353130924952695977482435976824933537953360215441154612428290313965811886293765420594270401442561786811548207851409207825819720071846525852314584121218521646794296347056674455884234651151125024849908523971383858143026018487108742132294821334107269646142814442592668074015977452208113436802602866786493085531666608477195892706373965525355331104962712865868166961182621129625126072831178741667761442039939502168660295103110648912691496110806497454444551527031691388861913466589056054445796318142404183402971275972683818928602011936901595704696301209096484400348529934013273892391175404251290148201914909302145507069205162540972064468104516461943580814258286877956925826215189132094063916936766012615397734295263118857005180864671540185223806281396642411869118772860441490069685478637980930363607901917926907242386808924208932222394891499310062798850999512913494619635317883145095420726264541879443505898350057016713249332371196698866742290366652727355266843159517452590590554851505888157158458927724090822791275811949993354645162541702579076874688421885877421719717677112118054175858547171197130672096760463937421837255985734341099679964884945340171805360219273217864972943363876947641377857873477288992230598340062658616958259231896863460327681323397280959460661909657287106306991505009774383385208755267334924357075488176173012500843475640242510187295863420678014459347646725625093946142341477749957863652348648301756267803420268371488334673346176788897650334870618207123203099823474901745607700128793921560733376096672142394952503017428015433773910948394828299859298951674862633184606906078549186187815694215569194724434313835519417571994375563688763319541953633414999955866147004479688592997613048438922600409718486560170851126742578452223089353191325366318026549375434641453357508393270508157785853472345704615748629370305895564689651069141453373769921718582920182182193492542414571956451990703203867828125041782246385465624572290622364869242076482593484246589431456425571690665862221888545601640298241816672003395371909797935215070664552654194173902658585491039036204601509389290349905399546006280009005706550351815578912578345736714631142054206326162502217204775207485975758340888026588411232535451556681461163775357131067856932562842153708429162149300327796131149100206406046265250770370503357888347060248374897377518890973231642044083300930006693033772661242528569796548292107984050019641582580502455782537087484288979052259990725596309459355724144874871258425794799713224150159158128294208366734533238635042602203010199552311533479329965756666384179780089189874121241137137262071964836294408865022352533335195167968066896230813047300600164251694400106591796815711126012200784553937066153166833803899397015482966065804658694782579739869174569096993137424820227515158043700593251669501087266971670379270526100218138727903616223921070699530880259442853604471916092918419957138612025536534513969175209234852931255824703536363214690381806763757168821924546587817608367389261017833201549215504014137883957963398069108272669276041439158938870213544122584575216743553063210853665295171555393611176892452972794780657697747606004809649453785487664899527975634486506841068293991274622045287314174848426416208502745415788007486244464716652349518339765418218419452908084380904478732084185771319684188292569829447103547598761360643358699472623169865520468132156159841629654964378087163319789006999302778389100706068678035014569172304988694348983518736333147399385543672231201091558561502422423122274677820991098417840237907172391086924583125313947815758975278728521987047720871427025022492151337064074613895478754239839097895742578826815803673798444810052868623897107876422670460648801328796032454730050396065448665740192463560438507507326440192905988888180546470605204552452331436953725174016373265721786669779999448828412727925343285477092626234861521460843620335858841416801940198479381176466022830926556458690180702278309711474261480695483755620655306550640976992105805956599826682613894905194201510100335606703687296595812374294433190980044043991614669786020930427718536009985070258867569874948989418456944855753523911783269041066043936602154918435116609318636976050484323537981550747139204572880778130525474906791736245289256161303079562100649536584221776552379373135111168685723372282201542477541881434776559811488931535925620891492556924549447156361806365864486448282197167512706385459300132389371443099623099505543036110503756683796074629534089143284864725766601501794590694964342274733935281066486529367982438287320473612092010467240616778019877808863582415478707162997289168577146932582558960345819015493604130800981484956765186554658641827082980786489349661739761062027572685051689832373476588823880080233523354294819038179336885269219980532819948642558301922261242131978798433637720118577189103315804665042013306169329542304290908343269229596842094756773866616159206302122644783388250872811399065548581283050641074757382564191476089932263965449104308361084557720549655561708491815907706733462793612312012812605765818159428200585076380115666956333612847501972177124257531875109458534986018914427901288695178151751659628611413342848816064673276478135221152594885121078992169286019694654888473153642400402057103837706181530449318298866276118267499732062706519436802046567788725139445201702413694731911030243518896225529668400973437304551479320682205971576636756990293813301290577586635686133937583800138467388869586504037245627263205144949867569119723967122189354748106350720256657237390038783427285075855655706554844917210870023698423253762020995436893660533635215365193790986875305104851834176261274503620225758945934771790050633725470563656672596961129271673282739661703098339771345595939113600599182555904983195995289613285296973314495128121344704823849046735993835973561901862162646585922236801683163628871667006642814329168972319766426726186273432708111653841256197457281397745605308764472754345785194567152874860288992373070331824778081355370237514426179688717479136731125839784802048140231743862293944121730001361808245469571199809623057535631808522599025638749960033209769455955285411101644693682055573897827317360692427427939460758970960588365560252209809512777958028079667162512719062056728427375874333408422397594168343471018930327039130172304610230734864599975931712111391763667280263830051609295244898200340266012306737175941375082115026881972541453392093185172599397275875044892405798421903273380799088081610470475064226275257173465424980578987963387699456456897086586437463734786532268958484608426723315885788192065059265084262959368882363264670395079647553089744742213927862131641540847124979730490629902125920786853396399891053271724050263927105818455318680189778643832862754238280739628159618296322078039318442573086033507036430452619480251539183198335708279827483404309510202061401362470089549595135675055802099066912895990827829591930166354732571739990694449800301106941397325806451869670847867521979812522436756739573753068266120872010717606745725701600795024704772132487132226510242032680401508841427740472521085809756730706802594996388756662874699646056080050820073096305296186810051211238069368963747117671841382001154370457474246997085450057667470162540279204017254894166750952706604260536596230976242442295393840605490596694316609036084762877139710365001471982452865378165804625832433967095100496850851303263911933670916389890144170807766116390833097444399550090887381214486669838161871408944345875212508787965496542757016312347106976019533137596869882664065848710778269517331757593973321549098169032342306060028350265334074209988683576075258572513331523162496554250506399290061671930739428804735238184591400589634930715495172625310380136199121016126831150451764499259253730752014768472855799522917479370399958189600821655145386820737516199881411325602489376798085457120490879442302935536811426129542012899937082824787143677805572295033157122008760476263840574104685052694429548834944299613528844374627072592854095070683502111606096547001492834019920079826024542015728686585312052982615177869597372828412363496471176697092447730798583435466174001734997730131324233610494692871758199090294616352232234400419275854619144355866219600039346074300218839454338139466398794910006091802053661965202057049897668428169811774860361220619447733867643802096615815006084996625148697671225787152863095728279796540447743738707300897941025298487694217437545045378777135301984778126899326937941694771980104531561100731392394175547579738477205345411820423137895863119260185046149311946714503002615636679650064126776393354965660889717428929446768790954823114760370060737154932584959678569167746819641572841024991287912057618999946878357173758483112741790274318698050478889518820231566498010968214124193945857200898684094551705138127387080590251245020955461672352259952398194238497876938295700363546569077165918577513863662353781724463223921412126569004787060497017649311503392927311781000931955100223443458718397977433246261102692247739624423080642112849492779605150086261072981570733101468243859008823899827587979120878614298109350961549527579361622086901290799458553070900577582792939877867256939333357493360637011580983648815950250252876595851451633533122017118072304426971448250398656006997369420414370932534475059414628397349317818189537390539080832899398531222814202716020026544567350535510122651436562645388055160975028869723705669918445826030118513580257196704187778508619284686107349318847797984702402660042236102483545518469856670062694914298080332482298716891683791311145379692686441165295137160225019540184299201694473069576034554252902913362418610643809405399593367571437570011112064043514997453323703558185049234808374184610262649604204217615750356059541731279224969794957102487753381738587773900694814989519165981909116258452622051212337846416574791738661309713124722185714738687159093789819503139301534151237655326905879273909855107355818419782686968847700171667423463683558695007318617094711503925340696173914510355787364076853085376129269223970913533901615075993400636991552648500105464866725461545558228336184185961814429798790909660832302679871975309684678048891774455915602374302551836340006872107067673827291919413840956948575476447238110418987412067031022059900060641113518106352384357127654775687597239605750219050197110431321539318341248166317479071423527095016286297754612477871867903659640462515791643660490076404266430347183865678591938611010977840629682541661413981768496885933851591664366403678049848989376709992934357873119243326090315356351166256556464975655767379915406207049895855718557532675289136331911195531937616901802588154738130009907666093160996185969835598918417710454378088361289633433566067949934328932293904284967999663299210975208813138957275197645907929565348560399017943362712279918555488482783862459886776685813222405109235955668323380265679022929203038634082473273251197705444718727930519899856555259127689966511985541669705315774242492836714143598179788036116088528367262102938384538077412682757436111656356483814219730251564043688365917391417377526720462390488942372871021509601031120879907222731419119675998866659390029465458109677335828878350987844758579030960352142578031379658201519481838527035421697555858791519249279465853691667771291292628189546845994318521478739916021138568116807657283592679358237639067474751403806202180676175504902327317601942031951743345169077249796321982416280902091474267243618568582024610955485382869227032689182394295875828814936640271782033555197387783708880920933593338135207919228970663020001213311510391265757310207350348087958637126603546720417650406714597296379365935972078827778536182270146635473933260142610572147481629809424438846773069397549629932551268351032036802948251797869758225699301750760019376908991826758526673396693845091882413419782616095967500000518182381664060982674657015902714719144538800368427391688353477494151449161184055477841756604796920555193479636028984441886923083428039982659989530023249980064734433424374685135105224610788256576883345832460019528529007481465565135881394352433005588754956488089787358601902607929382227923070099983825152868488154606025404334097703612453066188161642550889124846538924780268878809378106817538549146669107720533018213607987702470476865647826338678980188103907521581428700717552330288827418679320245203705642650593789664256736408876334268529715338592191829890943069488231811454309222388520317280308970630158478524236759307104049884874375192406318391171963524757637655397231341210275723673238964853205430711538288081004907673785638786538236624688211154451972800996116583184183124615088229226386501271077398316848436266657442665813828188188814091117162128741044204715585781309365109426521744033367483517135898089230613958464671636926915575032561528216505896938762465520685391099136500662977756463359961765442845887321690565370939248705791052278220735340971234852964747141304523898445508695352342141428578085555491390142314206895385754881299945013693955644175229278944413639358149079022785803492131446559482952060303320711197566053217483853966278674320454965441819379354416251431909244933026563815747181267513629397370864770856195469000287014365879148920602736264940253037096588400744136301210129106844825058710143928898763342408018596822659977036667965329908718022943069987477033637167948882023255254442571861834835499022986339206952515629468266119560493900356052240857796736700712604921238417428543352646654939042926588410228969300511984361239891955745064388755802663886752329168521231504861606935455327279821652007627622844552971653219944631991000156892291543216032400121115686658538189935059826119480134246763410696290135743707870037152069884340140753436066244096812629740781880262243508812309678152854021111334122443613994491529588639360739335153345847733140818777990318462781732249043181906763412210961990935051521259297796737514168480313331563138855440067728686983047495107677756548394912838254000066318561425819693625367521328210405848406632598966540279354345368024730068117163581643547515473772271967000111377356021346846844482673058920681846922132014304156957428264890955038153832224352853163513560355269549410250865456083544392193452502463942409956925483501476302840402233400183821017178090888256812176720329731285238814678134466823039283600590348178196122297415589592301525377123418221826891289062315819790222140775557539502222053830799852822658151703452749227340160009468622207168234552655896028734416413692667944273973519635857039883601856165524182468004243436968070210585750675443858515103924197999664635362225038122180434910156267943581913786066878556228897246223062378518369135569773185604556241111480301848377946824648687812379064384361945416238772386892843047869692270489386371444451512211733643492543931440926041728653229483870466592103283327124695238433337445034667815308947706399792868413721054843803845346949359585658553222164092039184852357924612971202299145160132434089272981749884587023008554030205600274966583339775257777230704851334562637180306223191246879979784928861408492766328186898815184397193480671839082685094542832156336899994844774849548343520742753419236824533991622863323969667470307170564214950743644231300309959084371707574167813618168088526799068635708105644472403673506714229534919420454378699367000680313510973740434169885403162499262714629990741724599761398158483686118302430423467222019182818413154949988285748794098727662350493771054356899463097947067451221350292001091485196807201976938964319011406746489368138207708996116833329920386483265753115752885868308146288319479509875219214369484728965414548809383630745555567194524572417062802560798760674661656996366224695512783568222210082499017315473668416307574273683292073895735359274405547218209929993525535554661793725851735377373125632847500011077171469354295345255372752353347619164155761870134181353414752999253513902040256085795037388828752070727320902555139170810252412169595156053308549593912567614772842701154394353575233920471613423465546419309215520628987055425035922498479495929403313343656714019683850166827783525424094482182175803126228878452088363807177643300320762124680593394448441336302478228062384135114353643961029019821445900878319493569662351920854838726905685081418326136598701495126054919393355364520954741155607889887321363848132514620230965933660735679491129055798906275361750682815851922229936714221509715591797376288434750223901675760401367741282196309323751393509270391480268291403389993243805136599108350675538991347948263116660728396445624753787567076441536878820653446085229063960871534263704110639068643678858335009468668260296106032320900102763789833779795610876687607888404427028157384025247038604683213111107232561960264409037970746914950916877330390729485630405786932117361547992456854793402693950337885879521463338635292170707725859156411867491590587845642769792261003286687396023501751148378438158007439201890693210044065278293992088940077080361284614793750565390512616751171510592631639087745135502122831981096133935445101288391168651697103904170915347210355590524986161103108216286904991332660570776631449437398872253808220953892844708521714213956594295889429852444840777393044257122846010184112376152616601974260795204069527365125575713529934944916809040473326894808898388309640435417931978606037421300558771846803617473630533744770052294544682655538876378234599619879211404886569811185031098684862714283243071199579392291493222404357685758370824842692316344516324360812567466902736218234819870725943788350739863309465495147695521049293081876614929901294513579144315125807645751330558901386862178349102529339512655538411299682727786139522227879709884591251901388192442758674496115880314568378654263504721704540712609392235905157123470626241804373279211575300532692282032934433402925511684972673128201045159071112222583719522242494166780958962735843227482730082847589246885126023207297434702918042863106208890214336806973369510651864434806899866432918556106010486755040035448309133648365811877276343680893656433607839790276845496082639851214502184880971051082627433200981625433462540210466463195845863564400231347828869186272791923269722523935440998375777919795026434994263807279343281701700641522326413994627556541158024264956348706864675829769235198298605891671474244934020461123039552912705758397811511742678727100058318138163706650786976906541509052744643035281100903955787756067912663331255334359315719873389278794326414797312689106790065519428154709962060230765941688974281558871013355088938768844420349191135402577035653359703034215002443591711222833173705618037911842870908989251238489515468351251519965866600561420068649257855292561393811775680715692864265861392078453608637645186415130588733334492228448071658107500463763502837667482423490483859055272997388706336995618844014104496361598487043949520327062635774350268445434799255045358092778008270944713359500549340830729455529417791297531497060288036618382587787972937496159423754402309866729245641430714847557817102915427265279562359611712508083588438920443289936916268777856260765618379477574892008444562140614270959369213233530551534322812903091084616524439735510923437692966879237080403525555191489975399658548495368571675748926339654790480790868120935323189324738124639759748303709616681608526656037415254423910634861332889269138039645710110058089384401834476490274507901135019260564941765408547179756895351236080824108939464437086327207815895780259155327726695303196099584719439465273635430372851414631893871203924032546305117679430895723619830808678213137769258988645126381534034580299264627480970974663192553480970153095588096834509978029424054608351298569992023933726923720780810883965887195920636437069145267354580270086406965033696702552577404914389505920013898540129964125036003859047281531076722805583414621563549612551389419214329642633301831444659881307715638351051097687742555709819091198942113424043872715065089859874220500219025634959143720149899345850862409101505406706415537315777719730998784150930883370493112686702984584804659977615329271779945803669984213265147438861367508516753483802025667540291670831652301384423414717850682668165938113242711698925187969765793511208316747189616487422905703169346346303759820634045538323792053050956913918148223853437577784648501106512620988584441848341568674530892130949185664878957779079305874934556928852867002871916691939149587111901530508483381528756353219780965722381199496268843710691997737930297627015599454356442398845683227472293222767507434348856128886286407632852840809966655783173977519796935575297097456021521347448241221616866131311258718979469108522592158987955288466345065646424492749976571454213557455072683613595342523682670227333687245683226030977040253752321512163812409815949682415436899205808256021769027894409858113698474810695056992514769028595609093072489276482339991210783935904099485358410505488344986849029082215428672975007418483885561909124657615447215244934570749882272020560770778828387008009225748987965215692067649551231913688635413052979508237275495239512507016247048350575185691920882907408135284570830788166023278300674047772454956924928307753431187653150643229898909811649879174245316183137908879725743963994475015832366646056356765846366304896976694330848613051160549438621742205158214868275508993351276700331649315146091643867796345065830380738493933006501557990137128450177644359776493987686876951613853400026078083669095833317001652014152307045657277494012624796163414914615358439831488517809159105934861134990772526285386602542625354513215663616206419260753456180207200391057116154317055693476421173452028378647029018987445026292811842597383339430253039286352711742950877774326015509019033846587160508675712473642396625016744270822409198475860032778491305344622104673944073956508282431967298385062117716842596893506236503818476427927653083169456610972331690655528606850566310358788819077750648412447518236918827913840765792877402887481309603780035770382202317765944079537829728710711356728862103397189740650808676025144844549236172638924404372294205008623550840483395922735648847557763833849231994410843166495864629981502590369991138536075795980197000213757971945616077837638954178962980879618518568295224791706849774169052068322447514380978417032225452225342692314072182438614840395646109301065226125654253737371688119137777646637807030893673473165481125014273503853440928688731678450195793793357444023488898731036877126332538710308955445357573048494464591098220211087945954773816079083219193266544156859758319090531944822480910510838212433826478023342872062600148069474051943924173041645238884117928079968055631371020098860996494330650444534351386773138618392098439910806685152195426102145715612400576569785891233868396866923632634997149993687666711609732720393193344356476273359603169548293587033525399190171132257902835554360921451245782234078463838130315407904745056718664575391453723851579962364594484693700899590499380467702677400244955779497609841781573872262031744453629812559568249560758617774474386163968093153678792177195436620041347090726439866942776328725700029377641676611076624490372324025113265789686299814905310358366292394796358937913667689955528366461762877721519627433399785175202954002607374688757564837648138859922598655194815944877077513005765429254463073167182765730696934425996954634559623371590309772000639916074525767789558840305688033442031807588270846995980074198320865138449898194564689938199966144469597043121025829624981763651073835364301050473045096888116396043130453570434093825476290573794716835373005553285917320908587633429531304977335471540700851106088944759604510045618391067218428271132038243895509232437680139071284693381778537541064217257000208025576888529927022301965761604284423465595619496154301985452949435433532386522400487554411520849154095898334335412346256584308021359108058693343615182834414498135733451323364786379816374730190901192692738070904198462509586081591706956743160321801856280501779083489033892429916298033130255519735144013592587730138660180525257667308495444455996426341823265854252825256152468824087690175567535936394922582600320931806786119882694200873731162171425441260783820477617530240843311277850002191820573479298373142888728792190814307585740456477005030172533691416207308267430682581105478639623586498950977726064756589766410861949307475865578846623607594296304891117428824074954811968350334466079714985403640482868638454785480297386556787286643565709529911827201797083449466477323668791970398807660129188663943804542674728597940986450944989238309947946721201923733540597223254343549682150119914270124513501665983690011727431450376023761487315660228528192437174173119320016746402502389521105132962128127926200042532425244278678442812629528988780371002946251377932131904268955373406458916360635739289872111434107644105315412184918855406873154412952013783365472503132531629332075093710979821033442828509433273703629545880090111543267596482183129985595896945363574333152191581878162279799745465574804281549524997822389319691140098365516557461896228938733963478620353717184687586040652313313950280619244299757448523879030864865183885779023782488968878389654990203992246941470367469541580478910154216104650436140210857457159786563610432279957266614103456157141545227370936095287449808440752591955762878504929114854421240718843339300348018022859323152884170429630173574934203607507367576756810673311144462058861413442420964314967274624479059164644530786232229791158695730238557091879554169621433787699493668319135259483137531863682078937219479439339090621017253315816295432079026664451292702739719642284351693699647475355336370139878606405038688393528599688073818693372343293559614107434177275214589912822738959388603158669215500480965176842525718847552454043936985339506376588995782139506382332190217085247110993507696952418193711706178698475558190197532105334465306454186648712184912000881162962505263824081745151796196076130120703182414681615288166665203309196296581836809612441965442921714317217089819005736394709343038770077072005970387160056547364787072441273748574762407878772618610082608497217720055748524134695352199545135193042478627043694765498821576060297754843329600716697344630194307137552446604637524493623195975319670799112529299058242330917925673060503476891574989796893647633395772567444537547796188952681140858159691362593055481269104186010424263872066844193824426054184131006913538965950947205370045965588896715473490303922671358962757650361033972029891817829137779993302000054347589714058475878994503618115044382457737539216876352339770388861388631897037109507318101010607283700569437817306659142407111899806047490355059690522705122090220842925348745111603142587160741062696805045079975980460481507408025164881378045669917916658991191224345826908598418793983205235296126922563548640359340938831207118099954876850816005442831333306557811656066628961462097210667939360858244895228661150443602248365146023898981940667096286237225198351840025756213369502432237689974392729738751108145308344054633277210570828325823466086178068724890700659587403897869078692828203252063796341553575668798790950038084103932229052111988151836090364804129406479264389957338419925202106912512365446367631533057898028821410397133945134826153975136827150636538651337555630046300167015630540804831029241217602238493914626243919646237995463731067626508841960067074369542710429025700093016560105497086792723879753442317160532063638795140370035851697975055155761793023089486880448829869698748197049933366482532938061038490750110501336642444662066115723717194928697685209891589965645596455714106021282827457127606195820516990141536363074002155637328222583780339508530238539996885868652500091001248300021417091666913668749355079133370881281668168735550716982438577987174665972212605432868430656559176707146909462666629231071900430280642827654715542058373106087253143809844211909696795520869015385491982775207833609524516688536437519435729648092788885035574540367816730121846931909557338695518057806063341647184751583399202503089422010749551478915242606380976194140353743653593011258492248499071845189864160134479150180170021467149700819018596116438567424361078751746705925880552551350111088556119771538929104444337282371032115987457130306717862811031432022457413183927315439762445078093242946109651453433116948048949096316489104060020820010227557675282612876856036294220183323131162326330706783545237179819553110694104945745967541761052849205511557987685449265452370469931649616760590701625130610789040188057085406905893939977261081076703284243084402967174736513420385714300335718942774358818299229568492347414598731795358413811696520691928472597542453478614630529720116101111454678452896593717972401048447608216017709022168079715639827607995890846160462363345482581027686256139814177122690931409238826448617954024385632662993964726184855795761701607165518903444203771691296182437151495546909481711379013925813716304156714582395190948951012431454286584618391225929102081002292986209367787419879684194409009281339188468816811021050788797373169829258181348558608343744942521102814922276381428504374924346227298015595282373843754068886954608595116718145361499108644153534653240271701408980014415425562784038598798213284326041715619051526672260857214077529492889655831055187846460054594438716721926451422540106790186377331349136456751985690878371056506438020341705700699485243813867417339635641613318148778880076536739065000683086310160357176521790021949485650159174635489155893605549703219029594042778470007862740359875932072818563293304567513218435333001478225575895818748156883521108676023275893408368785705980946446283769212449481349185978796121402180548230057447400671422908258804751705612715081253626580272876336472455517990118363509297127794543132725627202780653755931100028294030387088606833969300703499907945271674896655992477368575589927344145755390728671237867499960361576267631181928506538105859108085105325131899162376489588368366006529175653849036427447165192692074327722555558975872946824636748811579979439599218684258373115739802385635377966173301807359046589413266092827749849219539448546732368472109159389433846523978876753069640487071712988091592567005419311266175512163643463243497997649741705057067557308314200731101987550345793155778925196721806291376409484541158641651741720009436800707499036199417687767330989494585559674316944929027807413984377593366569219782967879453653190469446349708939729964735355883000708848134222021930187899482090067583127853006545187698666772870100605024407647324227274274169862569912214859815279890563545003264480762461805814750741901619670494028534597935079961544011110347065507672549282741351321709942609652413552730187599734684166124478219399562442759511480496323427674973391136360302223738690161893361770022934641653853598855865607976492904367381296737444879160118607948665442444323092704830378280360649745074834496583331277889737927490009514423233603303160689527228638562948806760656486011997521219546336781974169806876591924719199806211029517423967170889955746540750276335406508337872047241412246719649927941331378959744006126425958671570103461427465245543393128062930366090085312398475570722115516547613741049012189963992352365150433814657454351605598710654665211048971712611747529392651219281810273507503251034399659143917431221339415743770227558422762222683190198949378476673138943914566739137927868435118867893429733973828898203378084319686001977594773840001918200810812335142063030407432150208454136425782372414192900526807318331217348092793633616717845381739562764321565149535489752287593881917188482019264208562726538129546714296257816845962212879983095797297362368287679598281379590971508274662573424042104253834769540962495206919256270064595227863107393186038451553764233934916628295883608198397271093236754134202071819121985102940470345202356609159377482337909665749205360149255277450459851945746386826844528213072666481144529668875866951514662112477332647644659063250421050972299117150338730369582697321466097170047301912300840312808198317186758296452442859636756652677646949375404835394157489952524706061419219873954148766452714280359783332429918791772253885287073655313200095027517443163708248075667444095560467453051675073328748722819136388845498727543112454572752024062489803123562489853551633139481469489296464143200633773649307735935490190625560819350446166082005829016914786228867447097938213011474242974166780351293657945779638288871339613041205095797842776541871918607566721710211580658030267117097879736219456708562132007352619267913077523827364310644154167951463661313925782182652196060119241459380197511923458015912127045825974615129348286620993283108315506153642139469261972480940974568817082014190324542665639521506143506352291335308181435930347965470645245194747236090979020845830385248788188476789057349239977178112861861045132882634807738686934090766582704440119130912765434108819919706033766192609882470660908538904563499709147494206690759436300414528958676679092207575328699934001316496968333074499911224915878949864063430240764295276764197875574686899661269281681423007787266313525355148559948683984751785593408345951468140547852817125070793653503922430121910764402482356842764291268250334452420025677447526127009703796421947558019025252937234088057758775179577790341422711339590205174711925859104991348209377939984938482575576728003703011462927062824047811254900395693401171447797826004235166990702315547843203115789612419789552973748833112533435641379772180207086856976499028334974265712427129632560418322106174428699731391002532590368623428476909514994767711812385327913133905428003451595317030094633138576446259923767137848310646914927801629507102213753044670068731223396335339282016808630811155114363719168048605168449434776486679477084323444636203255098758043217840744148480534837243050221313973426313695460220768525934954525422990977981187439693625450301904790413088793939877423734704324264808448196044116569934059701331186653030268280761289713874478428727507979918533571263855508700530867506938325960589223740240357314780446910657203574880378632279723436626472586939721054416240235167391588890102901801504349201339776368933270276046267010788338688672552764869162984592001233215014436351334831956938575022555723872102974420495977973727316331624257830389074445743679837143904187772169196805770284187771015549569580191863307269240705315723666899636301729170318810520617271201814906023871969926466101253905357608543009164379834916384157199144555869347733117017379560582222737164551225069965934538465903659741572508132712907513635250251873569977535136901584978950303130333555695719053448994810558242573136994621534420609524902824407349362481690673670335637098954922879865289717456608226578740828375770641093745840877596683720840528339189922762412832274578494179730571785518612932921611698795766361166082384455994984547451041193368418266582259317537505340978670912337330910072669918466598473333493376267785160529237778124866295478058090278464767863809357321312677908451901154539648182851434644371146431357864862268438548384196335948667909950556538294042597614798185181290268090039511184996737072229188743370652068517878964278705884490164874419449219342493218713339728067561019026934672711253164198531111310335110380752158324850205218283425897773243552161200855267257680319984985372400472469641065894169971749967541139279375491371424931868296708191148586262630041842236326036221364023330534242287167010088001292510892536970869344187287931296523930828257973552253967532605227879111622703382159116675052576513441209321630591125590528140412404427425757382777507764229656368304880162967467273051117541523602805150524524898993116840206037383609121488013560108225469471997932301901148404439836737219737911104036920384535212647618592320252963430072463083141983226996534189380019472563691777705321315814091270489933451446050649089216153714341816807663385293128403205486414898829189985210283226024250836470581731513719819522603609515580196666682141239331144670561214796399322290760726053922470232652924126523325215884284580207844526442309601153368397437042382801688931157633468534167226264498219164765980333241611493719592129162544609691516520087894791193920595806773404841378306158017606383165615611238254098243204354136189586277550117655723615457949072230063041394297918764779571054976345822544698799325273796095341733145211863881499297013316064707553991239929719512228076888325864404733410973716397142873821596946812687811904211152830605898040833641515248291050227647457369535345301186731858886189290439591841184009832267430385127674452576928782404464095643108632279878070847643804200418974423522570424570551723425967974827774761181248237093124720910926858716941255014292927316400643486366239480560345403480980828125369663836692550416757853406916401579093625088521444174827086258978750647996824981243423851436522634233009332484348256291965071777009381180976630497594266276881210824283900387201828090252274787565091739216719387279573844280382374286662982152901493939430319778770582794202489889090738342475099685362933262091257376591022560646797173430775258971449955147876669763651488968214446366792546971661643515453767126560173060353227401494743858574441688722289892543570863993065351151034318357089067638951581974509556330858757488309473753735383745620258373309202246089574321201320736988790519626027456421106767364773884607701182451412480868237109263816979791175329043629671216188196236208771746305696882405118538931652680766767891024408661904645592795146397666533443845885515316332134176773894480478569897669351028604026547062255695778787012831320784610039432606601528063625929164397989322190113207858960503618304679091044869559909266981800845553669381764712455688755129380096409027709436606431710093252568176397128238533117132807776041108136407788662514004264671074190828022560301212295989190691009704774724436467991810519755709723279072524819755606783690995865422512857538984885293710872834653645953134256188948879923791741417411936768004427083260995751429392869281358865201201054100955704972692132237961735468080989974438060032682340884694753541636115703249562767395220906425587949999025997245954853262703810590619228364904361731002354971985575749625958953442179502354340937234269740869903069337057005062691854153550634122558707739372127861908551747543343552327634051385195843592649708922183190337433483671653460214728467457159441396705263948440036890417145215482430694797545778344091300849598726895272658213332642979834032911847606779950328833816436908231036382635711642466235052924134450108461968807100792498163388073856719819085955533818848038310464703243417265594532850733017434734392046503508245467534600964882563363552454204606943472148926632805227902132530394600228499972369184300087362764668922036350811536090046893992499944321693225192906205557067788732750622904129934102793808562666076983630536858884982574642356579059264541227448635056624411347917939484221439612688423635442471255581306912369136220091764005969493568223571317737327912750609500332897904247083283821900852706927933122767714589256175062778100627906910343336361440767100966180266568271918552517026186816087523241361882740084001185654264328974966202168595980661178349246096907271471504665917878323934906514910673338639337783459630183274164135625145660899375951556406681789779711834241501290169390569275205585215371332503871787892430606732082429002706545953126895545077711803010956923571246384843150805610441403789836765722610038203027125153555591396096478166342241158196969464426271005049541560695786362146735491417589082136987443133549157938629824087638788419404691943038486439706924066409389042100343046869286301094845238970803438993543855046900679603558155281056534015943136992685274174284421485544788312744604447779465218872238097800092651621365196366597366127566022336990476869043442318335427909861886252935310913906172924834608509511133267855559728297736309302445396671868146837413124187065763042794019933768696444513592184188686634215389479457451194554961891600817753360806188942099145620973176291454855094288656789516784572995710975738460472869737528991115097220989938642060855313226516936674780822468850182573120503624381152343787972221137842149015333936337639480159418991772468402908507132418450507626368709896008501532166264398752730968337469499352578187401215186990140915903494143848266661874055434528829141397162762932486125272680627626006351820765770689725197094491690695277064142485449390609890644013931728359510722613714192698844189841208318335463563586595894966411589083535067360884295241419092512393412671952811436436835330705360131786140543787559966279772810464108925295825848666766758442955654737067891220562377576897904755594555211112971141876170531655781536560842149692601600557693157150100137868005115065731397024816917806973405196164894985603753021470026907543432614981899571397138839280303193095930932208809919601084021782835520583782254850741673848369980921243214688746744956508023975710260049039331855981062557192966784503650206500768902950980019850554099776266028263384793200079099922665190067481618801381116429070707525225583187341712277173947507953850835592251823097119757261567056759537263303324593047698944666689954841907480400569828398748755875120550133696418981384123102454209213224785998054463072706287013332386572801163143123624004504464991254418344589526077004179237241084050828299744779773137900770515503810639544168853791882120580207029886679706414110101590246971131135509307649037396304472943269654346626972068333569441730929402675206369523401280490687870006060781472685535947304019934084795774381233033745519209179241173871347164495571799744408805696174217643126659711011910067645305160008385161496972799604931551928231812065925091647091167997062019343070063902010101192318520279281367047976557796845230155254980995286134357198341288364637371498587881501445609398752185821803688688904639257363433008653915914875165603351952734962041680254883195302128873388786755261128515550120140988461751576174123419214753921216381086791350795422149423949933565509195486837794162803948626910565998639626995771876506031550594383510399464820063608144712485747384517154413650187156288981743231210936994412293122970797352094824477481331775496269899557940979895210507099522973285717377670322354423610566640810083699059713559418861673567409841636128374155515698393528249310260952941948293096554620519995015126668019504417049857219450594384794991531559690412035260283728856352976552523897459640555143366849026140712284624007595116351991915131343463781657393957856167248794338504887837148214650432469046404304126950960367582501488097381784157978680790768063860372686266521739659548315677112498852198901137540563170475756367738661335407589834074757832779197596987967046911891325102611785344743762122820113942756247367476173253688357045114342667112186613163928714388383333472716240864471531117857472082326726580839862695992194879395903907392424629775458045899556772478057477304136720158795673064247263868675154615344131860799243033658016163814549657363971945812408161602254769421627365396951614420263379958907866684599884295505903852630294897368189807899836022945896778240238912045286747689593200484177642131632821016110633780485483428327088017091234143696557602630799208636515862945481208183701862473311506791144528521803441255599666942829885812281215830645546900500806963591678056100720527491361645465233473203174519724818409224976715575926260868958513851290066964616444084346411808351993267111218624076437762304058547953815928622429650573204786045313083975962641767097243747323890539784546225827413400348068886201936242865063905602644613417839903900570797370633633463061378319255256225974006366723631047789002197358389487673864135373082340070809297361621571296143862346197831516086927254784380468715897303898969806690904994421055460739038450129860310387660921396524613494045075249302738042350163011425104230929633298529907007151114326424820057640542092906952334763186201496817088872488226560584692929178595423323613476559175026058120962175052560389847794993906699286590787175627031715276289093686235344772025476869468467715717958045304961913924554137018162928770976465533387202197227095526479451677299864896637754008643146560950453328887302197054270431834491186926661868595000940364202678228154573976861217219452836097817873822020653860267319681272716457816555841189750442218719682250581926809808573369429432919407788971249149224159993558019283612992982311570169396963704214663213874102979101930642901675627644153440893050021239686386207318699579422523359997870175354561533109067890384284591479387415088529689422044185121070901545743512542965553602430672441653918406874167187962197526538662015470279261693052055166452193173700616741172182048781793592495487964018773532367472710312408991328235273947157388925285616015215246138962922749325728127354029122105821472615807488701711555182572806276804931313495199734382310541288400750016346310502258988482853504735667401993739115807387075389398904066610896126397764520075843933059915551009243937893097367957987797072073997006414059481888967656741199251082956039499898399664579053811180490699220655587504727074233929027190871417718026341851042989683358790840151342823559444139739960214232426323772827430244642557387114950342868804927569731580798833746417711055778299919299197095792961789470528932094190799848406015381261526813608981211177732151064354561935348834887368964795792803747685451858524358843143336926923586074746398463378625576689813220129272775280891253606883484877811027020873423369795649765835399996971308870901745467246569451552401366301913954135066084518561555532756318655094715985816348742946864335816800716885421918167696802959310741688073763959305780571951770643636699435428375227760579724983784690057070300071210064698093468330652270742559256951068306967506620344256338643307391847471488504477350449580686565760455556981599310414614741160216703298643438729058607052181217764220908323329698212319602215313012568094778230838664729435350805329402281215921557020458577813104429256825520058299399226156412419934462238337538139849285003572017361250423129920204797055010114835429485253518705163312970251138523202182344114081309946753392312155372506841650855232544239013781902093899949832047674375950853853800569469082379138145689189559497227228209081027010015487765109611228443601722288514613568931794749173570208411774296101125232534861440058691867074219347165149071121500649388247747035669251741691902346528472422117664519563731772403858389503784211189052525045929200711531903875395920820067569017545172207333558215940607439315913868326790260730936261554218995688997803693801297027660464023031128356068831358730926733173191880063770960046854090776108094637579873295612450771122341794994429991848042302782421560709299010307399717664817374518918515048248557803160498555731506911730626955658743623355794746834180555644256971991765018780385446165474526417152669824853179875662152052303539197436834022811167021785667750624919845990492129999163713370409542694806936528903289960441839063415996412134387718041031661740674894068385806468672783156217465394120478525863635206633706456481240227352267574313989014165631098570017479855817914517651752812814569885188950552227084998766395727232756393768996095026068683546801879044762065278734875470026844906520835821984457485591654367413615220886643818646511333884359763023450891598787649486217243289760277257903353546433662848110855287175838882660018700581841102883891993297385536028073642651363718636319078002948930594495116472938802370380566393131627713495384478663699832046940271291956171916651022904346399382791024876606224688026614122721038017580029295299804933590745846446997437772165302319911674365461049361042611057477349527413522688820530372123390585887637858551491334261368566935036734708319683080106464247626472368264647347835852226635456916906900293144048991957370697077836207409445879953836112147706483180194038853732175774696084147555665925986305076686488901680466695263493182683566895374399395663780862873984204152409919414117621977228991270453523338524655475878625489648657474451799685981349555884023161900982694637381220270967595123323435920358932104192634548032767598767531496968453706327989065872289689612405403328529939711874731311747794454501918442013052907168293541189955411906689900988620042761427812888737151888605409570179607225031337606511086272304860876587631487181433800619114746466165284736490618902710267873237395195297387018670361961636212179188522427157039720858148375314721826461410135205293243872106067422823806493309578468458581966508329780244423795230104964805862763890733337334818520804225662736731881467794573287661057413934041731225697459160800596272494219084767981353882327929474244765245582800924261252153153654305795306713286294910880032629614863615748726359914149348883089904860940994831760450490161730257382944830427777462058274812415801365365087608448417425973315030040931461450157393028057783868764917237942965817056947088772816674764699709173206031420647626329938195326184697916264467935920459239332897770759423765362510541253748542876036393124443341025991279912181711542104502400399586846466146293925625340017922447663537811632385044900846325914498513766676719925638607757066773239036343500351516925494422144736306040677011610606473043479013232399728434789962820128264279638039403828171906921527113720037959854518993026209646919769043741905433915012650645083607846297031241170107775648824341536124804951426067489272841221418103714067773268566918129457028306022449191640352414908566545788165952502191461719203299339561049206410094899209153481188054284859899118293213150705925666941250751580328943489091945833193642906243251428139678717330452272484004951178501535033743399866541238002068528535806748387613502591302202387286648093647985395349218243457246808349914167724531736528430104547867306394031442745146986638824907350133911465191573912604841222521565302992466800358311807061612765113015985993298247531375956034369244350784279488570452053912922819673590135197649867652244349332141464751598763721837615274588886702707461890820698394975772363326269229835566839884507758922600391576533600444100536853398284604356361656627607013756787040774672225936928541730305056816297569263528914627682799540895412312990705889203645255935073766320352554122030844925223650971591071774741494674613091411321849612718051754536591313599675504843930790902162775230516091298125112703812539903509259071267651164703121824036006498045573557016490379574770666847372384993214999933513741873147512366049764267270050807586919390810852201718043810237005074329489124708401889653735060600541227618314247123007298970279546656800390221218186580035141825721538898530541432306018126322235545684166635868881167369454109359312267466340302792265941928383898954379685659621625424391858021974890298755862484558045818825242342435451190415760916517218716155394764165085675958429168521517043628706506037548563183391181773247311691266427562660699984092130588453564377720238113270990150151045374601560776603375028536285946234926236251931357525626040018343101476262551022122537063514271608143428111098906736642533776944320802694851318069047945582208717159349403390067411857407378863296059051927994220240313745804689461795961893503759192146357877553900787189768021790747124487223897024991988909244507717609626649072431367481423450421541868929371636323364624312941529024844151414358118312161795011618807735502156530106773878765206460579426756181669250072778647461194753923055068155523759656750007783064155191958017628008812134175694531564714738091521373576150350741229280178652206052717837440676205955078985348345961956264806208336492623133786083312815389446059434277067116325181396720357062173650329157870857594616867865921378511651646386433360930101043237512110978863849300221831673720717361443947586598411833059090597197879854259105441550675383967381271205816896890558929349749807581736032417430275492445840332480426483174934658440626571902631507890506702488571749458079806053039473914597761985762028993270147391861463880806222769193756944374722951896653545492342264383880770089506763360489387307698090084484094187666431005025093027844995613139073450249945141774824927540714638036888712749271583383826477763396279599071255191018467182407326862365791491495274138378016776420891947556793215685228076131082040602937490213276518171057462020777542821311958057495470527420646691557883596932656866853301836105760661181225082391646032191856702821946477568985065386690576455030980198002550698462630188662442817746185524622573005446625776525126381353550103661322232110600400864875457241408513010455092622930844915450582823582259668330294893341766754857076401755747434679399986936880598471635991804451774493788460710683324158990379880670633697184958961544276579530250926425352811429224362508322801571587106719380439414263785228332942598524712574396259963238832870427598208526066707184010656409488259857739660336963046140332365679569378951737229553808153048730393363456626231210111042915450496359619803593294524983558126084789098806722267915005840491329269112478412594033363894221254233380622150109778664104839021717938746313072708257621590803250168743909649397104704628458408483160953173097462920450144085549838481508944579009039116596165398355701492231109450332363578092995498212597623808032269936733472943052284906417340295246015642872288967466437821841482377620405795889654253876685377100929981226480330411697357337735755438768793272330885727072154818117300951342968492150300775273174786259742806232104221871177165739339871174785594882274617894004202177019250437677946351170051670584517843510921797240005542760093521507606937561377394087022878707269944458800369436291486032163024869594396171038725285801132338075789960333977028674557525136113456567380059064255233542067126579346872821657054904935870363534714551604804150256204670696881328370291958455227247211163598933816312426373146964683845256450556240348226265912103696494960378156971546689256432475757677220782905547730409634089210005698577841523042399463252101246999879950991630213620439703398141717135212196512675674261805322944781147138715675528890920168467060369542838456792052321506644631739692792987072515542104926068744255596649382629356333079885970497710340553031483135575074885810637752228272580373331632087400097260868507046332779129884779259248827776221053482262610886525651004710604475337550331427664487443895924369927175633283264121485801980467514291767299651092443648894959564909782840503272673282429084178231720581001255545556355292847055698519143365789646146544507314988984144519756154810966320660121060257286250466487569942156402780910581209840091773312109508236652511428003313399709797630635715668410352625823682925936840235115748669531115551704254918528294044135531543380642883365515184451703802973169242765412403547290864123758631803247515110072534825507316220652153148600816970793384809103378149881563750404038272896628840700101922684279061690411316167294028738723816641047818748761034215923085560395198521791086214327730590817921522537953970322833533908258381499993697702462992348593241561025510790321914492385975705599078462702854217378488512522627749524492726444348289454989591696735131623888635449202130311622185739874576193067430625616517667611618014563789449453318477572438032175094783881442294287719718711555951734563226609940997928363156815708620832785461109466792097845164081423004571868415337309609626515074634492612011951660372663912831379650279630017545877379836648193489849946794291423369627397060443245369705966451449769352259104910082014654710220150497596981706265883642507715200416819377199995879147086861821698464544809610352978026332104734097131261050400897483305012233582907014556908927623483756020315936450998348508844564524877125705148523862570569354988370992141086911175164255890200500079868587593379718185373309839845072683696242142379917503311333564764432090920147737166753907096634692278582787050710525920941711132814761869033091550876737011337065324741457832043628046750584353153990631274899572288485835498107822999365935233797987782354879672186210339221910737018162551749577936119936395050802786198532589469523290640350309309161122631874557052642450155779844667104945392983313318212583294700359680907141798471970136897599180846503629185046710569587331941044444329536325682826101638994388934783218988440168324311130770094900100267067937889962243449014857826159480420890652428565858038742675441813589956277270432683587860918531605398842923131929529420442002199341699876612587128621046628869908115777434281246748417369774711967205272010598890988554378807042476905103209852944022932780090464490607081489620631287847932985303446033954247712560437292350659810248208954813756665183136059717880004949320280149083745860281118134768071493864752722204411820903928457033187659378873765268461642799364604037397323875738270756346071216949597212377397338354806420466047628993151029810561959056223248708891337226343937050836765553536202924699160891767770822407082705421461037443959363155758725004887808564635719512948463038984488009864461818778084254182216591363131220686816082805072245098561653159611760065547397429968773531174860294767859497879977571548899734725647707660856107272877420992842392078455856604280523887123468040572209492017993170366392709252159652750974063022160514267978064955180388933113613866439753309363403574583814199939108034402646539867796343846944720863961718646664798664884984626993513410538565178067359458455818760644888098085114725909543520909367054838278473596115918444635203914048203769040676805368454030328732082168071920706992085457133543098228255193409097234500579390152482164387633174811405562955609367507895240131099149089388333832766223266884367402384377623842121182256368629687478610277113170802791131998115615847560664729520200564634930499159196859358045474820959902713098376873714305549840650237399990865109719978213725112365147888759683389395395160593807645519867432440703953995442681061411522317789290077092823884278055791032033748088725754485088599724809311687624634862122651086926523928611210129205702335824630390064512063599270513320050837247295869679697773728478946504614149596668296878460481508186610596507356493588675558177432181581659002206770804344480912827153499165578090318243811699947288179270139455463968203067512385004290885898330987302911039605759418662302518823690831999139453032611148136591627697396393204091780803697720426664112336106804108500484729248025201290442090341740845533775027175353491479740519438567954415164098142742098588085778689884142290819546467546564080563090800943713580631438662356490509646324033862732062814671747054869813122164339912522339786547082615650799925538196700467320709137655730728116590875829818393267174465362545970384053619749211626598393429440382288836301773197252973206054137514784066117741465055380939963482964487110057327286050372879914738308739971410463949790361687003338423144869431584491813136238556732430949330890862277733249173793995170861667393286138396595731789706155111423533344921586821048099396443617718924753206243249302185402989875777401676512894186141602703902109446911282967014251432169614334875907974861015803077681660660302067243317724827240209175286954247410260543989959185383371528430970116290923084389218476111611340336185417659278214006241221015154671557116838690003289274275455101500155439714676019659980481886471169565161411080641137341916659424199817261249879303317453971869231258345933112076192953881771469381259509569633428094897058670505256264628917301175819323413229103604187670749879718554865809735701800714840311666781422599909274546309066306202434464936382975353939563057987793355634556593570170536821280198304072772050095666652949265401336356755229865138646114099615988041040002988800129842511943012789937855477500196299034994621524516932069107362560770734481834655381841892953325932619545483850778380782060555224431516836052769487391418509286510548778412379351860775911600058297541508042618015266628452261197964477380154438112143870594900557464394945074722487173289792876331471767300627656128551266862759813837837174962064290209145994204674028446188670628443638918256898763801723310910029253871759261844907681499960508978938877445280364828942430305208762067558958423650809698540230224769117580017358455403156859908970266603749004794442218150052377157894230727706585932039144738550223676659159379166857061550156159674065002588298799827748345209736507552652499409404003977241468859204837902438330252016166023382828661833870096628602528360294481889216753868041663745981829867687607573327972157315513768388014848880308919681106923863369827544452876921826169112940705906623608432027736661953407375846333905130119481703330411280555224882711615594289734293054949930327796897418610701801434041102076342341789219869132788149094199719513225245708929083071808755520878966746679909713135460113754326327024477681913652585775802942060738331991721730188953933852473562558437923215027386047214099370305829299437940947079530573825882421155727759957221741221497544800439252977381679586336971511409996425892985229656931275873248107180937178162001319567172402566202072126448018751938371892453033200823719954619910465596406026421543744703590519371011487732763518517765111716509567122842072216279281464070102320784905122111728726354176135658440270620895278374498845155871335623059736013900512830328974067129879682467046150350315253026783039123961648073011715277428718237699320267066457832344249696743928363201297074366261632469207122388024761280694597724499214093101947972565719435341790551341048969690613998707045446872506273012686736000569802216735428807245526840151661780197052622068176349460923841549925083340532018196285004321299620749418607679876525310176540534667467368299415864724964256510263044735867954520858502619834636263919403673426847165847246321669111268669393766908215504410991740779783887432341875717465280232452567472632796698724258423468859539573876707196968011290554182718316787415350288746053884677383008863769653109663780274011181501042837857963575410702811919154551234594503398301905812749314715548038413375338185384739099974302614331192387139327687507671279392314395425510488656391850536317713840564377919954631956116951204202113635118684952621948336341060860449692431514982508808443719515848077369068293148762625493519268742728113399431977403975106647351104954439013063681322640618278104470659263967549140480625216220573029090925220921272701825556506247090632482684747218784760043509807076165725844394592897859347163088411339288198606894720865605403301821143854370969265722313006075732272685750348234951912199212166784530330649932139969814176611362635672753861239462421299976753336217859169660390034341279035309658678165126776900948533015578526279304779383277608667805321439816568814536451585288197071247840989940510303880171831272625774288071011693194740380792982166193952631054878653557611553095213146085587184231719200406703356739774543858810380321665622305807550530671035061052077593132824321543936990500194174582001242900931975963895289801645021899391821041670779252428592404738242465986491923563732656715075321448810725611081179196998893550137669183685634724200391413862903117547465466482812933629803665667755319376201798466464066078937551680657420004691861309313879871974381090569964734173373722592084502292403008565544000548186150067429669002821298449779792199435979293234209167437989286222957614783420306589343129902074478421620965572497526072876311513301850049608851913108491609139374389476315989784929446939501044537183929806306755142305221346681281925764216154841417133035125535953828265858908259411569199785674929416582081470638499434221810829033123542886405193301392748727148583877771974544037194141636414192467737054975746111001483792328829347434344533482110421575277341081974507385843170938534157819874974224716301523161514622566045243064516969980265141084056468314482476570866735638204219106625234148621413899041653029743408718726171233854071878967334122425213964089503962615432100696012855584011454735204942996781488677263408891619514491063266441571722727371434038673237604890269784604390706240958190905236522815454968750805884258115451025823605880083312923899890642721855171835726303799227312131891312224699074072333286897552911407333364922861271797268692982889886016869274428718532884772952904892902194148861352434430108115007219143198946532166020235043670535192267449199484623704101986161153752513310991185126194592554607507626962409010707820942612700181082250613271752538795379798205355613211110727640307734465646163957416389913916939095347500121508299198003830686042843978800211429214947789230512989332152438044691713019779664119575830330855785334632368280419911229822337204186461404556367664559529618650309015308692925106069281930041480455516769082248488217622910463636687019358057703922340426928755747812848202808212725590733669416090193190741078904860532524694792593210207527119345082044609524236326865758035847006209223573359654897425690738683949187363153386940550418936728429114986480560636049869515975084494027090381039122617951905361062399062477484075289318162613742686109553607804505550471025797013822477666872589950856955897759252072549461900630055445027906877133096282333879185503695814891584479691424917173425054662685473047808760505288759352846682684964140739478177612113957085322554788399642727141596076659412236001660197803802242634238447711833458746862749025344052224216351077182196949612158299080613509730251131499792346015129898874020289045941008822342812716614632964072580676357062327756028734249187991749203363446259142433903381879658972504617666527951800610310023259205466959144978928508697832205836016459583988081343487013760156294106360053218344225579084628820088120531619310414716863765081688193372186719267744251984115862121244782400483154539616094287378340758446462465019597244557314591573169764394572944899119680219556922337033254317287788694672782742246968954044164613915926791423115660611702979230824244464724991720967416293301585222836819997606547181748446220660648345844422769442143994290338635663744262230839597372227232589418334529727791335240356916209062224649301162347749038651446817860577590577663204400563507574280942822448423012680194211794602580710534662350477592841945423498871955646596205439209274002376624458283902999107323798164131559207040056099930300091300113751632088453611892725098568374912167455535502312489939830617168815802389745268036786008869779134955006935774359991599492344324916059824748858094194335195302882372894410110845142764208697164289103720166378901933295002708959694081296504875086287472385180567690507837883625381772326002810099292399120463368913911645899522609977174406921324035196194610868041521373780410254928890294442387046076691901085409683506094229221103275039387739482081133064843894596548424522287435164889667347925118897808769626720774765608032011662072614407924885441236475574883772521838046588246935102065365582548762760634206595240071105282866362813012554107970985481312517943663027277984036408652001829870778213799071625122061807483875714846559109109164821326295297712236122753123523152696047156653413968928189097494489703106890234232607828666632475543279578566060979035861224752320702120976040469965249445073361216313279425769292882237775646238423538823466887588164727786535952469348089551424137287318858703756070316950409117540072749469062681825361561191978520774517753098238408412400187421247831283429991315489999560618463458726313644888057473450375257018647759217099653906287898702162147241127437117220388718100624011617741917146220852948408775675137323202118145940907222920585302781959937740779541515491749762617328271043119024708381947090219517367077702832708108726748553605354529929330258611547871846641990012587800895877556460569126627927137434759067002356411548664428998494240328038021725319097854021603414464806732902862814544509559782953457215556676033221701034334182083634604817670324434178606427893834403986496456144120323607240453525084954188822926030892799819326945011525271147674883250109824237037066075682250238399730532093436206436886097968959131062305282273185397327923753713926512509642630551198268116105201780103205716682332382701319144834668927583348445722771602987733179422885719003876378455888205287999505248061153209550112854551214926033098943673574837461747371539080417309045641740734251886213036607362765164170158004990842487675339582433163894155073208377418583969833852404444961178620923186267493756389709146460789016983764433517029551467296286223033270773421278020336795512935821347488489728098287940405542066834191803859177170356935461686903666106586188124306285379968238842269854256810558417928594333949589059679457926731058912891692535853172797343857692888083157905872677659920781904105040272395783362320509092607065351149483953171666623241512604258663181494966341794785716068329205127762576249116497637224277756839462353451335759815042631855785784369969588437360017429138741061566886358048237417712560414598646393450022654105993888465173785617506334657794462606718467852676236851964506931584539411127198323339949264722595410399518051874387230057440690154035134241551762680074629956342132483406469638771994574703003649901509150480479666187548988232199746777105812897439073493035014794685018475521965004759633054180158993387849908666491105353454562409563599093768333834711553084053592817310016346566948405038839495936758549256807348183718190103379477651688021395930364769921144701260727237216452513046948156419467767263209028771846905104904246539346989455647341347133741531880162245387445224698597275095787077500550360979222213423819300002272274963757328352892496301193289485685624273658081432482765767970315490582358649234199465167843663946586853847118128835972559883627449177849933400582062247948203577351285898257017844505662997772248076916847352270847659682798970241579712532669535552941415441215796246283835968501408529868134852739117027676573952832347864983903161204159435119179106052389452550187562102980015621882341579560404522772737000711530646021873800642540480906238058173295431406845101104204288134180962556325883820124772980188550799172619853652177045131052134087607181810322108131356866571631193314307310718044068498914641086765327057795547392262395064304712057553741042049091048822862709214372608511266532306207806406330324674530434192365106730905942902203199499833395441405058386964889832833057310481222840094071051039520891049890778683040343413112443477573924503513298656589575794513010146768911718864557135122324502520469878716165539276608743011388665229801737750482687823384768944772350673276439845912037392601798677296251664314073672464835848625592155875860949779847595007779476886741999377703925636793050253846800257807170843794530847729561004760911017334648908985512710562561977958383324519783182076455538427375339695256299947712937689350320084348049825868241827841802329676788353303418420738136604668495288845265282248364104648668674945178916369021349789065734551476842766260698632531547605809937813876319829863688199442186404760614459657488881850263551792487870109063881773712706985893487709943798653787046342428593764420669291243530520322163790599506793655462835393372942153830695647423372893568000299071671137856479734161596048616322622166794063510108911853417212289848127696059045901670999969528514507826069567983547696109527989103999452849036727126049419590345694777770616547529922802399031072130879289699595187211281086400442591941015520022891080716017347857493855020198249048682071600285460553778494443355671888408791080696281579851675971827163317341140212803858599001931424897236812626312910178777155655314721556048923968895881265331161360627867738341592616687782627364474851703753251875176382058337254604296208765820311561327900282007937300789490661822872220960715267900732297582313807246826770587139151614340806034064504943991783212434365821197592097863358087586883106633282827163337897740516929630063898919480218276753917497794987918244746449221472421895162309000905377040420113168529164344947670212390838200460341321437752955905764443546531241081634553972759161766964863745601286405014628853780606745799325307923433616889956562822324326926850454346130195865737293734065295121304756025124396585582822697901986256458579245005347604605992160992119178996875863349609003826611212668789742469911729438703547406260225483147402052750495529160683135247533651571700899773452353640208938121113900895499434340869102204981442565004463807062643121517030343260055099160067885907578975621485982720408496576224253442602840786594226713626328753565383488083693152911066205348329691194063700744995652547979304628181604583427194618584353916852930008552160815451114543387107627590123348848271056645765913006415257433898055379004219704370085684321946629634483756084743454205171626242775084679257952581751238784236497934792865947050574961173432375162596533748992990407989216408806660556218217777635600784019649582649279364027983310928871081007748732283457668311606855499896441882136495473151149137153354856815677763200064394404495452838230485760839866872183538053375912448924121396357050684677489233968166737167990606516671977639288346454819717102058476789623128812959076965536559351284350901763068339667855122124368850992115875647716413246460759911521577172748193597931441665818092125745138107855143876336379571632269962385014794903504034720552955745968461795306317908890091841212336969409349906783279576702491951130098217572105061044660673281998565079429607897564388943967035977348927741650562014814284603515399548078398827007610830580764022560406953475351612042611822754359164579518563814380116552784748533847856688976308569320280168389661246923418917927070673145505779353470830198301261099164661385664126630105587142893219053048633298661718113034012990523666332284510451990719269584366087293514156320088356029219931635802629805768917706282967257609339292712175769690924940386959384690262475044583183511576302890304641676309828029129670539708193214501687251912863890817232573789969803454334209157077419310956318089410507385090298746363060499163786066723013036615356734918620999012559861219207574600675680235801207722243868898117665637321814231271567221441210486676901222581757537489678430087297260346528788544219244254449887455050762844252391376091156615183772110562168204727630908018453314648189468507522021674956792014372847925628709813758661618756695201481793844500563494582547186002368557591898782728714704621751068310218953867081947174885400802957024135141015574304048277644265004397793755684299991845566135000555783804781522691346752559565568627451805856031373012098363832507443677501677604783358483437352513477396948744971511491026932312603349606836920477528386773353991695516713272437838711925719296639092713965941651656646854408475086348622484596144489744832865062914850688151629765311545058328674438522315613407217530980210063769528914611084076059334071181346426258241604451319062369461489426790521987840927786327533767665701887493092377133052790513675471185083803543284911509037530255052549119880063577919812241910226140629313548247501272731636649764522011454036364162178130075682469781423435373030766198318691831550832503135338536712293118465033162459978765927578384110262243318048295479595429093827311880749975352476579733091738817457907644613506343130888679536030072725902237305880624123111501776633212539454648448235961793680689737180337478842689925942251746389320072114706606682936271301257400421787300470341235201847122324826361159381190946703827228526476219094012912331455967928251023401135661452274908049998727883865613260153501757418808599870211290887586931449966228485142195801887850980502072048892756173924360028903885291877630661067562972048766003728077146148354694526433249336256851636775583801151891701301586078717919504644707826470969163211117145905310595029331159815267041930952320565188702062617769277663259906800258770743064126517100522858682766180647191326923993329520980531101225528846650450679367888250835557285885985130676061896073303905076094685620528774106635332002602518288139198023209541537291511832776230809455796272479990630726569123058748796358600110631628811580351979177481245105707477417231107567832454770054643645092559400309132175099195575564435633681604428508445747352153233675871144511391970929507074004467906714531132710907793516042385327761501209562351064184792924510267358130988912243899297901701563225245779159359142421522538741616207784934039867668689554044962354182300605185763607731285512786006386442583298467147736124535142886106438086079010791523490737886170374233509889912512848786585363971851418889705146322033931691744910570410603594115581370267703468555243540441019933050957891000268167404814025857293870758630930109424937377696736244120010648990043676634244469960980929324738027677056583027642628993054103652923421226620130899368748424867103071663868880083975552711741624564541176252381555945213283252152072267210235431374665847276969279342093725164182534778352619489610280817684318027219897133422828435546970609747865605461664575555160728307350870059374674997231609350041554874891355138227377980279307424072856911452376374617978310250529228551117011765860556360675087725431987641630603070478424148232269348110529956588622824315016211263469578130336387413419944481206151674181691316564688659823220137241463803237880713553139457731598635983442074287038332638899735364201578556962544154400022506773800716545407160442729449121244085275983190916314341112186936937105108191989588078662847508786408867753582882742984639966404060302813278032660548015347976009796828903109039627796405688957706696212291788827003812564025491687212062552035210412804566570431671079792867206997565692711083903595590812264191501629899554794597480555768273351442532199128015833076658392890876263155970613706396102518986080023082151737859397684474690761671069978250759199383530241015826925989157466958930621576590734032725401973454872298241928156737228277456994579854122543999587186113167780838895269127555060001333786938471854450916407673494992666714346544962338123567390779723512672060515159395892352346821512252601626571020444014084741340664391552947032251159413940691562046902465078480013771364896881720388752498734555959228197362087017744456749495123579489135101329941473043297367190423206084775765410000421292982474542112593902571682673618374949310238488043393040356131950582630784453069879069378240385026912309316010434336853204406709337069989433546739209368026233940130954054643676157355240311380870060498648524137013912486217550249331257075078139833589034298901286176983020841317342700699799362070891262548307158295503960828256050667594590915707821920979528663692348245806860580339167477112994799793008540275366135141963813059180652840110000362357348148257384701833882031869693967470716185104565264955191376368502385048404609990840446824479254046876488366539006721263386006074460647999020587795428045703179771812398436495243500701370082505137078219022022576980124513185743629199086844383864485359410505156372818068194488869767508214005363667612381665897479876018445170769861013493430740275147994593139697413453149039618731378966513465603848148660383457378232170237781785701715283008188873875295682350851380975591750728494855509283871446510918639453938576064796450125665852969475636673917603125960499325796448484917360578707419314341576031367236263530315250822317690130322269911459332578977956899055019365926113147726559037107083898559799113497789107621922469319857278002704604696033126735847300029697815379154584819907019073701200130060717261450342924599456837614095841945235178310052949607744687687107160470537155144560649666509637103164005946593212762800022985969631872711997139184194276704565963520595395499994288709010668261488300339469530660766914007679805840249020040502127504016847029380726477833433364863101227395516174524034763153038924409211660595094247903218405866881074954127620455636664840792038059818308726666164078882085338207955421838042219851062702564719344466517799945654878024879829135605664800487682928129187202084295213043665462862569515918848499208581967620477398285434216814906373934157369989508794356393030452019773591394019139147274366560812459416386112955289988727909960886063456157278697145028614968310969613710196661356658405937245364433264698427218537534626785492682795063346500770252688761742058881994690028663433071038742664149233678903380193069792592075815448573464922968265106932687203777986624880321317110647737956373206974271457685750679886815841252499148792109315854230781804101315408581277314899855905078044727027064799741529423690151066322532093567365659428971475980138198247334699493124564760202238991147716725489855525531440345371514230319973289447342940433607690920541393978169920322182682107398765485193189336884201484812095562529633466697161251915385868401024365269754618016452395128458200630819731378067591872583917961554774852279656673898423037140371930593523253925190011831532187871227239973044178920234711408862013155861580849864439670514281367045152474269347350483328599193364157740267473814723147259062304388416880935230579320807870415920001741500836223618516276115846346544051369455579387612058537482893685440629273515549830071881523555067153799157600798418478789870979674218202356408880573058436836472944561572282787882041519091715447901853279610506763290621921761180866944180268585855741944402532980250999509092493002505771411658813731683234167892052432140923576267405846679555691031531338972077855470969308637533608958690360648173401439074005715985652299239448609990751153752502751204983767979079483179351393271312404326496493653131822296917556820685886877230602212420577835726377027467256080974644443877880199192603901919860655592931099237900471650077372530180965443226097945089963245361499495602809260612530410227026354284943997381441045615880611603326988456258000634423432027293591907378313833308403565602625436978569574917199876390737557509675379782740929109888775069184559297847269156791794600429058534716419036216262024556837008534170091739173900930755239879293687136040738500537637996291750126777519594304394110782815335571889371023284778130774293125184058308286735749468461262896401518154825975696384335855585560348818532218256804972000924541670482142326560374177276269008648717972235016692261373026673817308064459533727158619752144369674197738703525591053895915224462416145759002135315164209511704421755572715326438851394937549013155850424538779072306222668569842567558327281572446057053291822899991963531603819325136899555683423292539631738948739378074864776173344708366882422970442232903336659959335002082810760791650645091047069517693439698972980158417341353610815641379671957528115414141868037624028731524067682647873575823924364563614136950442919887763489785255066828252225830596786080923821006771891182897235267669451780576248684910111949832501042970087656773785897032492730930955443689969665392371007338619643184999198366462367397704855991896596140720153382468088354402841062901441375776504178846964919638678108765835718226524502620703334603254120748119782687233803160874656268284059456903546864395860898234320530232274149493692937851320955241473998355740084178331880338565152703854149677909929217343242882396070134590982479744330657505195428712735214053327065645621825422362473543688241521584440203062401006029477976008564923151958622013138769437732481661022697280286952313458423195011516922863013005847607641527657766944848583589190220072126998747967220577361001419559493294784289519060938708347648153428838145352297138004355592875441331311757249712753744629420794086240819850625541198210252235063117044854315430950103080482823176669988665495234918563535742400989270744546795982495399830729381037464582488487957517830547530061865516451348240281041660129278956456782738668955359645074860608755018045037876008783594899052996113829391728031583942004087481331627562310523171909634281284035012830736137348738586903922068308279339438488935871918190210201700044616033425995877862439088190444128996742793374036543678235982763078035021095105404790728263891883705077850017634002329247766623351588759088138253626572308002113278899464537607970062767781203663895614369791672328323286588109847877519524797687384799861214446597427950730448643096869737642085545453753577700728470611973962200018248972524980960356097934033651157360885587738437296396941584393066128238930108010465466529374130864256790644926507196373460177093402274081168134117022796671755353862277039490021763186738081172569574502214509365244985034257825264470669271715130918707183794997670028395921271989408297448192382956918632393839055595636094466202175602828432140398102938935585288087358871549985464898048393094339825256845943404553612095535478851437135679621001588793213608377285046771599238123144720719249761223177806865208924499284919267946993827707684997044714942703608445924238616659295293796586539417727895821666749112754802431981600814535253588525259008247789403367793253098700837540461305709983153505138351113382441203463532170543277749457343569685892855031610141561257617783846768341451537184834481518309419700014782394911148977905993183598147527395421207152626279540104236936737836323083074147301906551267431461201515023481518887116118040986769328711498333586577750941590987952822937668583010789262299429141301198583445806132935943391927462413056410177709195811685218547534403235974512132501577530319299115918119273976711972948676542732326467427047421507296446222729566375161885393206522509552944359354957146907946738799635104284357410065205894061664582470123300586954552451088746479491748695121461508201107958344199194938262697260596116433724164441238176170509092544156196690808061670966942940909930253990172157762820586504977610245092877534461493997886636127384356552259021285113520823898586121435730442562787368414215053728593605485773943538375096229511264751600135822894173669679923796188677606201668270444843189188087941203498727414130446952412478437397105417975059654415047007989031243413063388621492080435833859478798818027660181796797320967854039152622219514704979990550781798527730332241856648551154116590291826315942680833870700465173469494049938850625612304057586197484746152141616971758711761317419523839367736977897322146685761915888776945038137782243251649936900495620702561433442745576071757112399458881595280706934494854169549144606632786101931305601266025946375963895557478539175152038247270046667139944121652108207838244141156233841042501037075216466758886511509654877073579794875870452457587697008885625495185715950621733482856126662899939929127837400806274569746392524903118327193260837547477176980469862518612995564055795459008507368330662924043633576081241809528920333608184769945082821964895148623010356907977674046408061949682583876345665496614525941803114128340071657186457420310749006881725019484692338076887208779806196971620123301310339710250266427574435800583121152448514085106180547919973897684693733480925032798325673999556037826883293763279604879885080737081595052468315422857113612922968344174590685347169042364481086584924338172566855619431104258721763489367255753692006228142370709750853130373468328637541119515568266010839251055952189777389015165590781196582425714345525861495560454800173636971094462050192354843839092890777153153768975637998128346226665133469449743861520560312501030773413602221049088287079013070369497022786328568522668505808105337630415057634124730441552307152595176052046136361268688391971807607366735136579435914990268643741809716378580910254071413159964843687018946713762250750767166062006736464180063034491470754942193322471268604363372893853112548490820965549719032264255887753471646935093340581064265169729389568919649972704919801557128831746006926140422458983716343673052234055122786951394975433079549615393270655959777239857737884027357739400680808050566916722148249817009184761345373314273174888974121889888526610815032517585969493212835557296833182631023727883118534328906388419680469828317835996445618744670543846463957349994128969617090293069034418296117062682176986519293207683519393332954273656677919604499654987941419982606273179086317832843557066224127652578823640784109615875557841498632771482848883398164970627599031722301837277496004628704925294073648012173914262423559888434563469095696255022541942676491340091332535621595974878661230515687783397513828266207095858898258933579273661270193581021258876182531185646714807745155489688014148804462005457754384894804882315700170096765206528174709655657361417751049890174125110787054062914660857396029945496658984301502648048812526644388091748116631409364921358112689830217007490773458125477843921134500349700813896591465544310881667718504429899552956634718698098827137099761031869733959974333364026241326038332779183758869825364562219955153533955075977998165571033979865766090625571577266494282348254043869998986506210427530461819133168868967630264014722710109244984361463990261605927441963127749134894146372918401659575297598298755337701279386856499157751385411681062733466343131082822089696559116953981803175875229826359297821525820592262318820808244898835981599954212045360438808711755086516137385859568427034226153050252353085629575729089923810568076301305217701930130766686257037441728602473868874046657412393170788632365863985872700629480553910335973658342697042267878505655884425348324558548568754194164355950452784984105199462533555077588471130389464470289719212039378664888683279327546727766257228990669556059025306219412266209499236167523745212197146980071950977761016392533321114471663694240360098374709183493491601207397243711725275589665856873498814192753623051499709680525790992355470369143638972708747984113967605580904873788363140833959607789842443366228718057629639957077043673631158017717220685212155209662332509232324584073679284231659394296954836489905971535731444193447745795336223571935840640150443153947754984086888257363330564938966437064131675339740767693503114811653167368823433197305048729799678961429470007274048135935608746784644832952866849099968636400771865142710321269121582851615941451238336361051235491107568158036551267647420107627901497627454871645196274419770542333518065149268157977094407255417990067538996814120320223062825933895904543919534292463211823954578605770757589036907102404804068337154676886848575777634920487901686175422345061703889921974800345024260527468958473110726897603003560512469871806795327658738363146100848396421047073100850990068735020158232786319545008265333443121302869311364515075125120807034908116223727134137072887485010974434488351092605486869993827940009410049461294202701064099071744051748542454384009435811391055895309202803007817064504214223150572488251096700388909436466483116450230797233580848188510199196702607839220101383798294458268477714972906465450368403670409083062293980407586064340357911885226790342804523730740847168561773721570651124355430178113460005965518297602459993168998706413901401515203537171979301013598301195088562206347699367616763972834508561120309011122549983006597235519772326615127014036103579338980297495703573522376721800436468613402455219985205364274737746844292031014491748519455176243972228342735053356885459265504195851747029049504481041991150003796956556617372285852812703661587093940928456099339362955341278930297151711850565682059748216314991911987819200089112361441099428550775460388884938345162248252363952428868617910542431266710052914177082862606124081054695342755246382788896576896816435642729209304732369285446228913191917106377038769735137920874482935252598704813243781902682432642436780072725202928069422169071656448316254538171328923832561277293584109173229069320096246270145939047405817446333651582208164386520907631880881015521456241628782729896717493619191350274036624189002602735317429928962815232336727619340180597137575987520946559949246862637881611360430062608993487015557137549189564703872713516951390519476782020915485545984924447070203116761033539656587679902140194891616764237080386770133221362067675822986973483578520071910039025375340983483683105361894321253195445534141499108858228096791246040164745639595252805880766456439457136586133386608255842722454873889804119950030059136874347495102143987261264983059331139593336984032669360272876292498297517327429495672411803471692519357404042646801902672234662556288186384413654205334560475047361947712658087893187505010464385967510555281807631140558464018634542135376674994330274578863508043207916343522945317091902418519452698333710221699958932443538012409889911981624365820779362817403848953255848347726697352444931811990687907999766304532389531442532858958270300008443203435366225964878874381748548447485209090612681848987619746039444083858966047892077064071548734439775935205856683606012972420678638319343850976732095284990757135083146405078109605980436089529034331760544336759366699577192235718611653023641151382665588952777458185233811557421985943529991984529049578070286136933653528937697375983308874618612038435685606398932963200875796966498589839059945423938731642413672568380591143430414586150976560980629245127168706881563103156866290950631686764645983039718800990629903379672637060303481276574970749582493636788187873032872105699627612839694293826672356039244981155489219325524995583833965494442244673483255130014860185456055783054710874170309401954914045614300362578630464200740142256309030255691532794608459718943471180406095831951361706695503989508251726639264410404704232291674770689682305550459070434498523000835034121410479404986658836737047166322227255463513214142294807839436663829179367277633768089988655520917738112438697916014506639828623125158590129476199620618472794149154266818816549727977780990917809842375060184714722174642705187076335769498074829360959791517309888420295429662200919213637071420115256290185064447036667580363487664835198599119541472116401969226266234309397644694664782021297990477719513526192208814610874217928438571332347103805537547920109269609917789257902707025496550922897479066445093169115138115516914818695225420420966155713384037489806841229562415775270309230274803560671820877033647256142401607626436786011312799456394095528970382645662317986023010127871399480820322128952049119132703564519420651022093813229687831624096265653933683505720843407202921467585831398199182429236272274757370976063127539086677068343577785523954505021913633646686451477060816862250821003389186418709606049590318083709731906334435480041674888314978044582665180430271636051705272466581568952567362407903444314701876691850393585399087524391865142496729428041507083831428034565146055793284496867909356990269754000195589400441865884080742103849555940421175738061620056547753284380299083734537475857853417269470127860810085148601386883883960778646195919059780655925985836131922548058115882578183301139940463412480456650056305434500525075549020303215887900254402824773625337915252643473484378363968473480710122673713127356603304018765767043618541032688254453261113846234253885195897536620085723410006178152577183665761632287010844488287294873629180207200977889845329724957002557628334719999669841369790461344588230535447595910105944851423371517790430983991328680182494062868691382036749232725097342917334332035348295283578497540387708710026726688105030284668525311182360373172168625174010470427624664759160002116957092568697289182592197724650287797978972505805201926217854483961800836427769609461799384876396440663347356827880322232230795493515791271211284243056083333859671492506240296500418429710656107414365284627696575770711362333438707279764055185138486264506149621662506656116021278767790094457651594188241331674790446378593447180904093539570107669766956250167455748847906091751102715951865643983529340453403455558476232783483697890145327409679108753161257812262056330192919984554291772436334406486544953549332507092964274095011795636571717156716788766295696327330475881983894166045620233964282587111634295211934781644257515174342594379832266536157288380005692365811671781183070621246585982925852595642633291409967097097673804575406878175655853406813273420160095381789365168661368272721998071157015976971320718869131119822318012862935987635702194763520955082176580080799822913300576919542097222068560829576041397259169551023725683325715765833643659593612831096344180297504403005398540127988448137276401303970704950620339079293357595681531982146253890523907343085726730505667795658563907079896324946244588117333288922329654912168809014281922032083376158957366310301911171896998624738565265993401072929112307935754930798988961085882889869443860766439426193009779474255769802465751055397570700925742665752754380806141180813376387516704693312811885343885248282455921621753508685626935401341497579415351002426192729356310465956446004992185709192920786407162486440304388224669789283863251802631636165224265224340777706165765673306929733594132183931842520664505180592572401108468130621260640195293168964665748063813780366891105493954424591782917682449769426036199469399024677508716845825328124738986887299313513128327986553344906353185227838421252110910397476447448882580803589795593167054429592852455989874204459747047155337026787843570090013550516155082499352276372158563307311050579821117902147242012138591464023824476853908048664473810563830936035532071471600964121698555698527813055714634478459317753731269288554448121479336387267765406646067162993472437791886062102620810317123110847319007871815726614373243181290047767471390406694538666700095127416190401802839596632545412549759693692890962746149416957950461552455710569827041991636655795635145297720057463697057796649642889033273419549897429640752978915572288251399547892687711921799662593350724330495264403675217388424579976285326757996390675224508903571510744848919926909149497293656708455479777543602086996073332248688582124094509542113666186552739414325984555938667219487978069182545267132677507040845831621493527444260571775770364034924905365763615732326604053563674772915428735526372313579841905162475220935088112086568768478246276347381139886390735240013667639833136973342793289875287302416208964368702736681946043516467810568774766720380444114695368260577791053238500980608202506468773045710357655865497863677673713832037006003766203098114188213691407093204899537877688949922226850456971317059340699585585725986459723571792865460084139984455090454470651717112725650757184016423870637467896781438475012337238914635283144671295784794559977128176150506703420952745623497228002021350427451309941798947191897830129122942153908332498868725256787830583899755904453882781114493961941986577405477188123045188931826660105497936993029605629842097818866692869374963151599176243425169575103456740767833277217896342807829287691932083806407714870229420622014012686837139245865855920491678505407701783532732015663940074522142059659537822220180110330355600954542923848649610281957645329192349827166826996011051254696330726065935855134677086010799068558429267719176312625854062078878546778004384239375589630776744476020972119744979968187476341335401225572698531690744299639214793970229821145083916275600368330533357217754212293448264339688433088692893750605568515506389975618106152921644005013076849165766599661751041492677329982346241824257192883323996333030911753247251478533701451815435642368462866717446355749931886966346892336643966530029264768412207204200033882397277675758358802745450271902970269080844645071835244907493897875379476626882171865341673889862190515232690031326458598000669572212695697793526840134039881909593558880216229635892501237546519005666533463696542233397773379967947787309161324617102110214987032583709013602135153095380088244485731183782135091739730585570469493250291189573129262039151370216239894627313763167418360232220766608299998679328982646880187593772920205090160229845433451857168411888809791413822138443217878666682517725838992825105031463749378348947775737687691632794078656958139557608437404064390840977749788667058345300907027706767856194571662219646935900919395371104493577137329398579685024608879542967638604926211080914566720466992810326320539884815044249180824360669067455948239552766390685544046489490499866082054299386452614641594872732352199097275403892127513099311466352215221279412834791964415696897831219025267553497638575645196610468701134231494412876621548343024413413838225093672686885341183836459079190838677860906411461988224537241130209521364703692439028467297769164150671642475328952136246943110767214623324070138907167613166866962232518772788801375442305153623425281077093953228514969789885031607939106831190690888035824752556581823760805027480466500070906239610482130741759124966217356448312297379933970328720623931311733364865275146058232536663703388616240196066391909732507583978122084669004052572551072006385453600435456881818704204623910330659342900226602820251313014175471736670791403254681105794874961454172480300596335184363090158788505868744671026648559194085689762952014717963073044223989270201380706233529250364537425486008583133321342480032591577284436789676548665094110677675120899552767563830050931730533734698792718306382634209472500052862174100014630178226899905868787662400376159711347886937254076626611703517357684249394325541378771497099432952642067347771399597718540266993461696095098530995420340322623550501639715320012412736965233797495749915874211244261851651671603875984259556203716725621853015808900458468957665858789967683890650173242540507737466992929481790407195758826652232203175193154754196673570658694159570495753482948602975070297261976979106577672518676922817879251457662128992225776710093959390539979939785073778291863654352021679752581071488605887254542525668617950973361948842834752442529254593549341439603704395665328420577729110411822952030150065033212873890485516158062563327295607610468297216481134188896708035633795362056452347514289097041852296539240131402640422842262937698714330957821641227841303638709622088072321145787842876541142081197661111134705580684819688310945746385425397013942766209992759614899925623062247317006259061856615411240386911008386466012772158897900271925636302023028469923669987727192405644584497752561120278090381672333869862061408965610746754642254687620464224202766920371426435024049721095359665135084391434007222640053701107319274007751148474251493425583152939335039219498206030249965605844109234254105700517356157972361988884332644752371897609029215861447205397230115144469052875338198132989554808867281949841709729699615497504256721130181468405602277747619899711568155097175160782242261803519816130569828134843588121460347517512391666680211575829514562069506162470641630811758742383061298906645189674072858778256989506145547089926014193720133718959302629541790218986467262974965848462225863383745160580781802995167995583754924780672597054402362706411968823919680939021557618619977408086980983855150051880759724030034276710190113349980972850002007282101771678972395030537095300920900777831565000726180423078921062854270972024106358774723527974813030826599825216734352803476385599844819495938428426501725542611860824112165944440505688123464948764107713996548026126285082006909148087568356805339841096876100556957281265186224268718145122768069636638399696728887388823872207265465173880001737877361832859266702736364099403135468056326294378369409868500701146950917500321023784055593442598549075970331609020785185263988666871930697333844960995182123046694249390627748509626050327858590985986072483355992582292582391381088284876790373805760110970219562237031491397522285311113453134259096100050955868957523128361787549822879641335307832608635427750909522572791598540577348212170465281514435326473759685119800958449681534176512902518528252010573693746689150518611823147883316707545832668744840489247010956104903296011393612431813951446263336019695765144865003613465358838336055636748333515866472443601494907992532042302370691606342575244885848033990623078555014892538848380626710349219688289636597296494887183573026497425254764139208064703794229800314668530327690625350520793975451143316034337964313129537596839344207090978976481492035364222077154135906100611855034626715707127132087882036259940269109597817933063329751221906386859398147318572398805679153667114857339156604736302136215168696454231024643013066055199288442289278420617836225160580613814322635290084724135599649844091461296305435968671105319792269194777821242686570565682976678509702120922532441755057696630227112205134657464355910005102719550295965616493517779653401747670546276387497423321819900909541523765752859531213482309685444391175643347046698339793444424219436924826229247334528294766599945083514517288763650945696415185941442853435006421771105319437229001354024419669255649191417283403965562139907713141781820095756641785735901878106471151358291433230786476385808277680209976906790263186176598816201201306438449420460165802876441043052521360326056508174891752299403058888461921307689765850820639437610905489273020324119577890270252082382809895370463645774025393153169970074692222076537000949656287224163626568519095393721663157753875951581118644794606684242223125210303848972769895422125263776452249386138882741183444447317784816198948220968995569647932994441610247340569415389926655607577139182251605248084446298200645671060079963513369545082397180787432503934449119480591969320321609081030714979996060742465783885391783045619009589501693012174822689455190145717926000712420690484580418331579998270751232726365254276577299788419567902738437749025286467922583787396143033207346262719694407925402322840216058558780935813307818668489680285029677945547485593337691388296145453834907133024521388370271393123698701797969595741907501831620120388852307672000556709004052326253308910342214744078682173452132188375582513535588735887100666670372590258800481856671069235325697544603209864230561818009033760487264673081399961288121009536120223488657417191120347986211377315108414974014103783740046190966156302776707907776230865273659594953420470043697849874296084152686608365865940652874148351650195799433797654735958187033033141118661968738412358590302302216786281218886866435777412107126105362021559359321742555728200680948439108866023234152227639964124508960794371449811845984595919394740386057967718850505088487398255493440341940523736676997860387392157146092578129530447182160364071807686867513389865597254216391724531472801311394682308963086444926662419516089624900906278143111059049947057055050376591688964945824992573923287981810352942784961212939143364817080352941643740252266058708423061307215957981088732169983115329138667585501340169833096744901259160576665786642517711438558322392537533909613084222164003522757697599179157394992995011305872611408797646769956961824597507909475041551902253898482188321748542342017030986584518298474619654919014210497163031122103082738697794500662651656075294939456444704127484622560752546196174497558237860269189935510830747035396308620967104512976000122990632778196680025909778959799030040299398719660364231968578663978311603079569417868136594054227669120174449955508016057518197782949920827860309242127394135385217874146041902189301613085815644580733102097863494579716129785206564188276338846738026054954269598166307518338586656391406980744232516054682152111101011741953717692041706786192663123462014710446359505179121381979270574720949774336628158869909133264600898695748748134175514778172811791524048494756916993643827660638885291916686472205715865018531668620107515961261854010671401781113852926490845999696247052559509809056223618511318827280859848553663174161585607114044853189582422714394202068094024158312020186803454789234817209786698277123337255180360551886023342174714251244804871854703080577694781450443814350536352239255285787931934578992245047497267576278319201993094371911195050832241408500119867025611045666664027200877605450045045794431325905072651393271949040902387774321677939494473919183681743917949900183733173427104391863432914875003906128446608917702197984648743683817528697342611323316437037813708778995546096021866955645407711587893279384593512334353420834770649726329775307659399611942051945507697622651514612208698353312232420977145735482993130328868992358150828960278410992090854653006605511598287858282195900467194190519834074850939601749897386828511440473579946990320996753944835446878764790534288102769333289360813181801768337600556405578152878774892780338688080784815573157518341264962926744277364744908773019977071049458366145793859401733882077963518467103189822191434494670230110770811844627051551066670427198552086066981846651646592739904944112069957254816710442253796022057858797874058607809660400947525851432053528207342348316923381872842160215157099188037176049697838942927929691164606590681834493117589634045455500198847334942850968761303201109396813514373658950977306460583272358750375967557827103942760934108842494822145149308252089385701945756154428809649938889737658728890921841982409569749021633083562338944663363124851066958864557273899151702549810522188875199449968490436070696536493222532300465165422341988559881996647519598502965559169995866069198426026725547319605001753623540440949304034393461931273300108825000126923831965810481830083253624240866062743666028534511894614183560215354041289985609713507330489582567425746953635031243707924958168748196494568784473753681039361482959976334218661275924673870298946058265302202496473071128024013979820748776004790401004224140106882241189319389659452945822056900661965580919145513796089657000214713308700031591404332527571413733827132434085877359092284984597569526804224153960761459236891866706021962695293172167380733967306454829349931723695638538779221206239419406480271259188173965691810334526505482205005680375835975485808728171439827409124890965929756032451166287022629855813390881622163021203878552054223050729670514294465766405867749359172958349172537775464492082544411574770572065063743882266284196377051392405079077773972649030577629460640553882669316551943240353624180399986071291752840133785653390540607046130761149719992326586095451436815779224152805493397818038090580314172808604975100555448776256157868856297337533421593975489540422536196630732925185979806946194906676379211446194921112406182119651591034901196667906485206705341406311088110674687328858838658566293928499672552635072717950743451315825761098286007591833289396473918305872928852924899008068220124072973346050568014423158717180903613973047978201741374418246279724185983566448098447077976244600033108783217018894720158236866819295463046453109038454401564044183358782264975530140845745845440901755956904782362267457730110882333543111156646394349714349966421334662010512438175838630187599049969635509927141817141025908128393695355584192891209920021197792747342638863935842861151605660926004916041254922801793556461349002106116543430823963224660910089398030707305842257305506128344761074714382395417211298284105414810105276957809607531354644817951337017340878765979233116423280510628764249281174211166313943243794909425913006761751609782079144531411865764618549490924763403492992501481713807457036368538806452403810486213613298246362898108604157765301547713235422167256055563455492847881041670923359191323289522858209616542413924591338871734317613373467349310869471750933626882392238738351694977622941517549459979223031903580040056817354895961858280445923192923681044756257397236836179135697964898933191547884798955710279625931583132457987290408601713207713859138504422392907705194743677253099649964878811131837949629254073395322065629062047661303281005229329711197089060071338706271925774183242461258388478556598429815026753022762609036510252195558645693917558325507447610395378700650036610976524753773944874819237548376515861789648120004461776484104892517171750470553584598533247865838792374048495676476127348646131482412605596899973520120900023716680040813308347535724277503762612633050667363655626946672358489440215949161035162891259736106212036084770113835137382686653127507030877182002180388565399416819877905048634534543689450802551007264544244759991573036272525472566604622421402324464467273482019359061320439716564653831252783608120357936083717752718499266463370726338074791077770388701414298095203383008841618658709787936387307971675390179796945966501556563965345087331019360418934763240341139681019714063989831700581829874656453648529834351603989877086370210436135275797581161236712942241193222543864749309251506558061294881028439653791389101903566393183740324558510861697386945056906074540034868832989210913876044169569343016741704844659380393898899741278083935187722234722130622988983786512410874249614192349422388790781808327897434225700825048146841196663291493532198363453498160497529922550161457272309810216464439594448761055863671999774921343179329839008712768150259778422579853610998706719280925981419496334992351190947046541871568164022995665479161025215967126015096738845615828936216316065016935558297932301267672340439178254930929004862717686563122047167127243921108222712915230012683202672528377840794301821093214012177346548874440613747185211221078023779142500245680172494339519206703481263015094252496621424616249044192517583083698183171493645717046209636413138922298861519103931077954576534288393155828650349134602880031215931192119093911992461947564923723550209812237978671684937347256406586194692727618785047648958128705316591546937100312622106922885341846954198391262912199221331372557345774408643403657960913729541393033928270042323343500513792764059775731689675045191938426272655804077579715066925670331630942478428360085293588014417980029587195891005543527485286504674807713745764435670102882052017129957245711599753260135706445545179040744393855603963709162316059148254557906910344239136655399298056985462813111372376095020295573515645353290968723980245404783218751421857850866423867598649657803043539350094773452098552368208906906543956641962148163718078571207758545096995747164920406336330612175287345896768961214641226280800111942314425221212021718586491952303810486392799949930696519309019933021359014620999258850980719469225883226410768380613526800034557429025609461201842212666898695223259702065035258228167402789028721241277859473547200988178623507957935008667292001020653690608461284422102731426043997726272050425212679933048714892574557205257340898600266905311504900484179722833093290260926321017460368565072867433282017677845679882772142767807618939335077309904809215967697531641182231785889013126734063310882164486563591801480696822003585505936845499863118790272241738569481850506923247011462358415893977015907765870210623609011940762443099880721584811285013919332808072580418080512991835911433095676079805166123755978694751343300230600678476516806552345357556773686780218059612326551382779712981195373532083221416054418801241168170463632402463421212772409178049542305783077138838661065074266156900108763891096215952675271326980218065825547117039529511127045595511014982774100352701145284199687657981520331718595597023919198546749172479482340620577102907934252799214077581116800299931774490388608155441745683831251350100508174788378273173835454337170658055315665823565041916206206066971254646615298735052951906063723734948320946081801716708885896223241007808954567314328441916548591229883228981540238500926093777413222157008415436997015161860785039345432359593139166909809598524479859862839545721397840826618454102696485478319431809287752100662118401706838534662750292310749095773077011732051267830974223857502915752512790584239373651474948671532760824979925209372738147447486519196212457563488148905499212449845956088158401975923831499809721511025985533423514125453666146966250122555383389660322639939940306546299946488989396794485838746709794519735110788996698866592053867336884525661036388607497069054683730773649604942408603285294616788802657766260351510088032376299957592985686329862066851853480981968218700818847877317799817941509082663371955576827392048715976096728298562581106341010051520505400302556002219527732091928907843055193560441684047830020174102513009063345292129559546615303975587619802897160891415227090955455962115650189881447298250846659155802447621849013072662311632266062399196288014698525761298742933973790602871715977005539171700896862860486480629240527654568810479440624680558341695407593052900567760672650271795614879047077076956539296975045528281868294602749223727427558280143917189227170175090351745024845411520486805242813844250737756304571707768951724794834321241154248351381791284332970422220360959299066010806164932888349959487219385362860830394917085802932876494658205454494799753852208509942275929924513485958915153236307155225123397815268467620809347011793162479341966503540278947425130888149541950793851756763280346239935109848136696520959317626264181393095788890440582755674243385838457947529548948300659136748189372435958831366955284942290882308064048619785070978965521000254947869610275609842105054757718671926783585324319840470786337464010259921398608241388391877617489605447886621846156360703017593899366577203914368012231264429557149099060075065031533401067911077779946328262299810704990304163409910330567814991946636321430467826636648391766012208277612523879064567852857232755303967433624585838041554578300394877922955586844156369302573049337616626293410527438862495917790662833867418430185323937203844175778515695356006538363530265122125412233655223177349933955476522305609676124785405304407649239671289895844205293351340271842970899425969096235945462599773878403708753638225161501027351113281429323815277172343824442688500256375241479532451350159539771568976310374790281470080520822533654779651526252447488284648289678561411457801712755935668826205245262575887542116464596171237278392412391421902827679785349821944038622855389405015187181801829787929814443347649567076842114731886648821650202235842086772354610715051617352452419844898914564517285196944103030173804218049700831174433995054004902260639852965767253444237843800167826531366565222445841883535216115425629898896862063301775697560055885959284653181487799825046002018238811250058492144808778457889567257609509444034293065387385197734643061690582322062302955467454854224663613428544635500465806614730615450390218610868085436137634716752919414283407352699732225506685916030758410395289969127167685516971438611504566826226235829217401869574011085543566076680454613839491811420332373087670086973639838382904622273418935521111611048647303420207574624763606337589170042023231801433217685803896804706733260754090300360786609861874120156677593538550269128715701115671186336875563095792682567101484247100007855323732786815789509471864239548586619301280588868740418891107159243121329878163211744486611510237470317311459711097412170363539557967627946699164526153322142005487359133332565006177069174530803259244210153525676292986906042891025445664141637133759599762278698270165596261008081592609371476999287625146030706154589057495687809856887191171508628515267247488108409174471824271813888728845753956460015194216942444753497576633564683885265347839286315109759084535825387589481464757457098848005722699004562128970013779285231963108527287934119570643133642594679863767699322452696073096608938956217370007297853357537925333288700944024345836993925682003736187444821693891983505879866964601717225538854499088613812672711278715289370548175430369230320835139208607599069715437623286608365663790202285773911658528043209629126522190404901927758809254530809717185003143176707713475112709682431536342310604083950593011372332507901350509030577053439659867737657789218216033514777786938720891762571810117438669537455324379273544423482668236590652488177913358633896928421452639786778567235753003993760426647373112813454397348831879596824483085370982994248453144399228235302824779184432873398571936318814363115486089519298946244505288029160302290110190091967457812378745906417408322401992209398411795940542600729814847283916346445933809954374760629904944697823098631670500762825479930519992705643203977032290043433304615171655554675909277507537415054234322073925310309203364764696477229165397786189073215541688488814471574455713286807258204202568902851401554319877754751976469790986320048971951057030077032345759951307439129638371388853221183687429752772028362646761672631378157263116005851951759402699527690142653849619958841013947052134431004571809704547261575617579864127258939218631749820231722747513688505847261117597172342368303277840323420023983290161753634434275361370445254979462775033395431219370128198413040005189431069241469772619364094623107276599039161431586034158933081028558189486496583521949526906437284647906715854319900908986222321640991355282905502822753224880340192104055902756625051665891098826189044513092040216884636829610240202799728800104811882998080863474854271717780249768573874157152935117288464207724950219846470687685529963672743816104433172011751009235154808308629414901977253649567166877719659255861855918078142900194465532789539563990721112724236097698301777647027614242317884761840764247266891076928593992892341259059619082364874695551775982915703545044715454544489458744019431752519066879134958195754203116493339178416359181871549356587815789398891039340412434666964244909884928780072418281248596542796668744353882596591596837012207242390639827926162350170194600777856953301148240002879521884552010594036423111367421570054339311218266384083888917260578549569467304746114654778300142991315271552843219149414403424689701037171763901200529787510446863966168976312747601186255633962614639504863672467364432474457840681628977437627486148068075394291797028914685476768927551796804829080663879834619289606898650818268520654109930300227006226573855847874503877914868911018828629122192230884170337442082711504757275028417318318306040626041659196142526270139786168814854891316861496388745947248944952997673185984089486435383734892741273945828467752721719959486599622126825875993900623777119693797779032730679663420519601278783231423831152195375203058226164457088210165937105196825960112871646514729464578975087939603573996502946315043245797284142227036972405526757524534739797020666654980081319124875576489890229404484096491641275301155756171535078788048924094267299784696394978650539489656297251334089275350330235358630216600447014252493269279898499118582280060025498139977926902217342909335673963473000122627273438222735078795960867022214575665974663890995544839901619505484220595515759383357662048919169907050469578323028618254487441521139353205511729805950697088199990484575855065412196836759625405976990616279305796617641563831886133829406637441595681728122611106515417850474370581324468313794158984158338004384681440788200316563563765378827054130130085798174530689280978650729016504673372471545355654594855237960797798016565390991191716110700131736697068601816389721393935728863996704233860759250904178743109158291129982498454656586872495701362212280354024623520876913204124186159764103885232580281375297415702501022263691346966929119514311752570355681616277936363198426206958895944767441880113146807888509208388690282864427287719935474139489243790546905745956266618249982964351080590151193785536880264574461685158870694750310584119339529874106344420828143839312960364706007627056062726505318310463310950170577130492782107413809023925110717550397102125328035990643191708387946733047286419418483016826123520560493076723175298635990875989912894493597753820522660654186752933528771379959092341296764301508420112706009565903221301080684980522018592686208111502748894949093850580163091590061763236925256039414295762656983910454409871587619198596841321454747858617692567755686009598299056418328589459574729097822592044759636834373155003811108451995173110430593238162702097133258232952823287909808254734888611737758849829329590651076406430958286633370769305899424691600969958504894686876907625676022166131053991124085641006616446052411976748756607369232641590628846415072824113377437722882420361484130456721492613575409437608076408496533273180301355807156540836563543686121542525362668387830703271546872181681341277477130027388122171459182666190924312526417589761757524148536956155498428976443067655905670685593217043794514228594058214231480451866564898308532396142358509570089126846231606643743705389966495987705608957691132152073849075965146876383522795583757530144013131304562163734575917035507844957651027759731419527101354056960108160072744560639966722884076160465697462617706879977354930115221185603510025811443251963809000398308061678096053989884518621275378981963544735992389163515642777945857995401835335975787976625668621548289013030906237804325328105282104497295730928904593929477086229703904942554996286177328612407796318257026003969437876475244570446039723309760788606565538231043565422651912257329807519740991399360248178004146863708870712365141884227906248725025022994124442896148871168345667400560797010963228296329373044189607914994375157364437686441622126293753488505452311589947874238160575023713597234682686599124207136655249885692741844464936213669068095597620660511705475667116839203869224162311793449028402112720861073566606971028062065790128041742626107727579137718336469900967280598621980245706476711483186905541157012893776672972921177413090919950835393932028564980364739287765613143301358373164577672734566064178792758274652894780117143775111910327025397755223081554279724012121581918152317202861781732052179257933133312133694794955471631184727471879003858035092753624585044459471215250951212289908908182457493722367479239304858263923211200124482334559130998477190790355254113643653925782323561292063173018257887069612769974302587048873945115548335040909846987392288252898500029731556955933092574903618716457800156126873963554209340719803815536956905993941278370707986096806240864474360708132126623697432356510921810119955454477233841012467117978209978931018649705994971974264856161789174489801812850688600097530915015226074668083395885077547447970131302152631121326013048299141401149423376826662205231843787454325542273825881023945117235338361902548456136934228949770061494341900888584893311476764349444505206310462729167510116332705241609386607600006456733391713854157446308468775307496254166498429463566116570210395398860692478973997273785858334686222674327856561452445674706755161244147563388348216498986410015340996972232638818182130269100428196493727514392131387944543903658351060680143902903159510292710923411803605868463029964571730519479904240296081384775423191929324489552218449379623671059418894240401314096191070849056657262014748990010655297638914993579731422623814676742245339362653584995804989131398133084933158654958449305027930853163744720807971324048266924172158474549254894297819678686825199065891812182456745138815197577849077922701657097892056188098360145263554788760228350810855145562433273146884084136822824012267156646291171978448606975137151044421377688351883483074239923877517706606990595376581494584795569964024971683291426609399254004177605587436465849391373062391455610815519695989086128730588553596291100319768743612536373280252661315254688819211027522475392587331776404879263880836770641245266650222609029321525237263109846504818145447037184247079614730283643680597943680456928842586602651626980271847781088442643163543830161089638571132248924819921314206626719317844361700177290705151735893605013614081924780956638286250704352006498244047893617609855340892855129238061789066860637626695888786684994431966197581502203212388886365163751572183038146822858868617365982149654829292783577776393285385448090329670145394142886402166826364823287888768957372907735750865394921653502731978965068546092389885935673150267944511983169268484389295807192166463779727605730576663879789762201230473849455396515852556380163538088457040805037793569876588107301293083355017924830769033760338447861547931278278451593801037191313725536688014129095293466738476392581446092843605051331143069143712362087003984813643934782679846208971906578063237221637287272545606346120332784102809830782251580709523321757610187473021214817599405379506297425729116075345817598624374434107620003751326297740391658020220568555880263972895655396413525963967930273500148619770405654706700960983268142819519292877002981043300269533696520635728497359652805832505025254567288465864158970235057253066035104414210222825346553762096240393157837634005043670002172273543955505288476667893120157269997841434744510666267296051921395457882905218327139285139327775059783887309386272913596712754019528670075795249866076066562512961875010906811563683481672826090321537629839351544331977238977066603234986544073794974237008421445510203813104025091934965993641792627977883085430011090551873781201115645090170845905828712488691678805025688400510928082163144630142015688238211697260620988371825703064104019317628803636732513361791408212334987021289158273519939573576378044828924740479426514976296813017996405879857939994772115152226962561546016779516640870701114519440650870043564175584339437638365708914554900535003245879360019545439473142069846218757862807332109056300810294582949311368019108389160437652303662697301224692148046973617317367282927537361063671508493159263277402085813299454062668206503387392402304181500952720561357992316310324266716495065900750935852008516298700993235356872402352465394187088191578373589134877602895021366775902758217305265285790020947600508237462077389847456100654694264294605196509232870290691662095799407341141398264482301634984805441989275896293845166393585133895818829985711025273849040900372397768233887317246684485642695896749306533798463675688117402003077259528502109730821014044116080945145809080002725548843745301280389462164093427240608170456111003741716050588655300362147298651915049527300002905390970866909009849592639667967186358378510415682422134302572239145706085063281491963144778216888514420812779421960332310520308229992894573642834048581461021453005069327824471864732405354198766633575408013471275478008136876757133120749819762299292270156026420415974572724660830302444195834766652486458567475151031173276990464620486262127026057703187073623401244664828060323097358414125959947695909965705710743934733284864527441966125153786381803341357207083192568812955805994155021631818744321374730490762099774346642047544690404691356825156723181979445502794073553972934216330116730146010200624760957826638446651638051477753521244732946400097316548325042933909662804181234910114075531843123405035379164457322287951261286775397401106121717459600067118579609350007961469966692276086227573510420306480204037264817363897698744801677013822222147682729096598131367504600272371841000543990561015348457358569875169164797458332624125635133698620041116854103781035820844391455125535761617223541264633294664673089266215753447037991871392915631125801750805177059934779861370669338254389119527109014224061897606979067182014513853413442834722335906608083493332045304563652276451035933462673799197554788112989436537615156472554507920578985164957472601630243028825740060527946677849659398785278161472358493179575414207574606922354254308693763056327159698431015142726192202041943967616800145816638759728125544785035436591235154851752509714883722122656904788897398705197313036917458366044196422743243927336401609814621755240952897178954056181775361573642763120537956186468852947473298055676880462326686279060307075695695425935091241913571932322021230601756900811890547169206168227667210517031318185446604155785403051626264014589241476642890180245285483140505971924399800249796314658168472947645753997401097441286128204918620926935732230708211551871969608986695610631891359743152398037394447800282952238807789062190191002337860118248484362827811342765140914406859917881422426536033768191733667842733450551170453060994070339940572997197322590888980332208908937466989946380428066167539946116207086026196765538960879648046240629031870689634635140667743467012541319745585999766223593987136107640088590803491315637680174290168270973600479619428470310836509238738082482026903071783362517475501678647943400011270513102738884126040119749792944453604659786614242046748129433456866659028243859881978201859353786829215859738191273900426374396498147924387752702479168394756465645880383646904403921919900516457969226774584030147695801104876788656949034971527850385617048337944220786094099872083645935262034742126163822660693741630017594589033031277319721713386412788463991094799788160943549507302553549399414232319863819138314988885968668207662728435400607795552536740520227081383079074101017383842192824215384855857469266191738447975954468379981260917533760686103903146975242877947949560504289155051562131344685541444828137558738976256761900030393055463661352167235095163620745527911662011845966610770217827780681508540188436710500097200100983288628123920479291299822447531032923002770928226514428395438296831671615937610906395252298947963400734567163135280265225615183441483642232366887079053012093087994699894514305489586848002691766109445715850980458052872928428961637833694355227344165222162955504107635889622414459710322424456434933776437625092520370546985171470175063089963882465500675329391420188866430124651860261465175462408608363924794080303768286750148322753638416809531509859111547815599303815842886818684005670406518966665886435971384428541280339836841925812393721116473028316378717430946336577550817447085220047210813093692206435479214826704702908307251139813978056200011946396320147738885069469665026462629007654499874289845607490860115541012108090532881858866550459251066703157035798056143268861858544300249796603751049160745068981438115461140765629872477665493797562639688543763194674288211627735007194228884905466217406264513807668839194577989418987700837071766502300651691774742346612224693903622964837994247298088886868587137872259923108381118551272754089216409207075417944940936110606262799752230560178680551967285391837197911529452192313183308742982203859592841106129818284824981852137981541562185056045737392585333036988133640413501927839539338019653256840536917912552771647854891650069482842893692216700010316632521434982781872975224873339697519979695251764697544727446063479079397797507444279266180385486488272020007237942748723042134576024497140683790948338390172557427428538935471352533917277454465647703723903427504427352256279060158117831704467982425570028808108618452286466107532122314681200433496318363783879350278147586477882496813279353459193176918268268433383530436855812888604485986285321820551340205920878602140985318540893380244264385666836799759345683763838615758447130456899749743106114167988033708348171952046017948449117322566576104323940640023815862641044961360224986854891525664107744382654037206268147747661082754918467648469717608917247507898477196307927473051734183225157358331356136605153953300929743964489333584466078067577900420697250173832042436296430104472011807577533922121580497757154924192750979340019488944568821019351569630115842156157561925479067048552955212861679091731679330540523364810766245367999362992662049236178503795254197507537542758030961927305969672293229396946450901996237938807356041033859116044271515968492964732378925378907122024849992291921303644305395463795736927439489771630918037611141830624029633892366728464325937796455277096380785617232800242749922119498472532551335751807809740836792193001386591991646686425017413968101732788176845113848056024841783232504545245831259493537757853156920528418690287199597615950100918759231378671780314939960123047262022363120027793384896881666325174557369036237359245594543086955867482971254337883284462460103684672414548980139810855928507576558693631144453474897857408635995253510777831030435962009718935611742004152239453595329984766446861088905713661852444795177461122372160268008575646124549473956046892314261325480972321851054975428688516642769992218578032438335096672725832472202660216857977225754985141477709045662747370822284516070488909942070101967549990577283376221703636508800281370658452498815104750730008095981931944511852532555778090104616296017485881645810558062765406651627128760463174270750518288206840091059039108827585309835481658398267595872224661662647688043000783430650006646381902419803300862100231794055397581883782066471953398611659446651689668478562511659248693847195670534508657729781088307353015462396153491455225363721534394320584788129493574200308961184311010444832106006113736483874984561795403537771134516599244605070314242290856302556933308839730055628590620534096739044908308802955466884945935143290783178037411520215090983394937902516314540361972175603484527899470852352464613369586220525703224343631488934358939970826063533568653471534332042507948281678585417154236826772040338258007334657253722442316470374666118018755575630997446090434147884079566532636429351523660666768660556180475513430826441111566201131328405620832746621448996169939660933765174661805440333272279833670311767149921182430850371989507409494901160524419935453297737937633438331692768060070829974088850581950713006232804614216697637294885918855917318384786344446608889894183947727271706409877637475729780124145542719008030734558249432988831469788353710118010775309274117987346472061179158592510972253979981438229814293371229576847488141136709075345568058288880195469849237453487755672295564621389633654896489662656707317531027925403686873217836426020724385964636269502780431410731612401295041762392862705018297600600937918450625588626657965007818287967268596697418756902466720167388635332300909856654966710246028270154373338216669753260941965243180112274918321735386186070809582300086194442861616605344016369197322096049539801601290886428981725988689079379506963569472168858963889998207478475539086993165773202978573705374888202584370545944487331271071052551257429627759903867912274054198410833814615983111808380739561580229828082892640195189908880286269470602335568543986725320185741088324398342962602717964528687182838884062996632293464426166064129285191119226377168439364587043507140456387864279496989473982965186772444484121775024554047506691012013442432122436430861378186561762361066261932531112970993353092209406527926425122239719287229756903256582636576792957722667729280979972529864170754889599309126156853739221569176583823546680440911483092713167272424098427558474256380771937361922591195796020073503472588607552658018452518025752177535076005485201157782068976672085032912142437644874293449983956264935147476896982273915860170919485708543344484415422420243298658900220539484929546877604687032032404450571664653134485476099583714770869088535533290350264848025117830429563238419772996446708904320357562289070266096860348328519709788373783561187447102327393433911663360242594546687366466576307621783900468578941972536788438851038389341153716187166312414627268440112357400592676902920373945324403605732152879429779976271217696548898654623825034426562219154150467311996924694821007478175483265939637906430258580165673662297693308897739738306205068680452043024806720021794850637074471591759225792745735067690084048064583164012779134838271430134552837638338643645280615123533946683272015491681510608794756902822192040607292355510590750869079613283253343619984234876186144734483692400906517617942626398639465248645181540776945811677881729995971487206884415069918072785624700913305481493348503793938294262555631060607454966335128227464900387245323599125745220585583465256908837804893085023430654316260207885769624334296148162850863824914109509479360711962489112934276685629519338137609049077980005402118847832276262895965612926250193078949798049479580522352985382339592730539798334796007633567137863752936028660008342236676602080520202870674150860391943246994248682372780084606972532775362672264477432852287884618264392683180781586973330925016400990147287991194815007390616974487773120316243147809699730205123561037831412177903248532814650705579499623311492610797652330967407503317718075195654689325118974358613086468544479060204725357483373551917644223824651178166176157818410061924268575149545180638732051682981171136355161213089251013834556871150219108856665189376915818125338478878298159673761389807953508502054557332313106215635433931344211436720608588894431696990409841190010678777518222486513261523209327694617676956327520402540791194172936528249297695491278633550664441544565289002887011937218311256969267111963431093026014149817538762693084669641232893720311977523306155088831006982955789743291688600420575722806041306584918457622194722122650638027440289354698083521365384606276052649883764357001653544201812880985173491993952500925942129926220327671800605387139792056782639298745744983034997863727145622912118797329234496709605146700575501818217527072876201309476424631941051801119461454841590570308873588854120198078349291769555377730941055870250890966533755091731647044932195020494410886119164356950752549289912530771352715846852767950796589857430459602978572714231005595383180252708526940008305469322769063331571811328681327008735424252662546968169726541178400659926527448722028367345979208841109186752721445706711858182804637589196828781117388385241578880661494908345314950003147462637914516492071950129029413132499023185689526284184817171273309816205160159802125827667553418152332606790533151996147666857525892257698887847700192674484553031816086611325098777045354982316574418282506474199925649871989340372795975747521982757006621832797753021581605711801853826710682289842262531653281096078330705432919089146521397847519362350602802045981469243312754093916358710882866639756416525689851757252117140960812732224830646663768241714847707625471386377352148177121225928138685360782987374308977320301773307517414738944077420861153466041648712714708503536070475448092763695961396091355740772539001870288411064318053281699548198050499978866071102322788387847266958034252206798042118936406141962188811508329267237456457144288175486176424190336662929233275389553013884542460544031876125408398669615364268634152829346797497215519086200517627210542181681270579773999339793400085685196421268735371095053871245246185251369415763531326729637306515468493075636860548836513745086667200673764952388729946159243414137055342854527387788230347668101624631763251052512000881631531862547852564018851911459388974501901580631755476505261443044777712364959255324979732704128949617719794074549707971073618196203443463182172199184618543605222381474408813574832925735250187505404824428983086135646650711173216302239423651104630349937922870484978909633394007219320758456098697750422663621980231781338825631619795478609828428438099165099029964298241448692517013638206983576384779974794869373522995629876858204454129599431264360351247419418267372686785865058342244163377968642129199815698234248170428234507539810914239582463764421430468859172688964771835861461101574382574353948792035947630365872283473815243589000700482920584200113380903488407025840721550119568950996682985470645415291540623468366081821501289969518743685992594657663861251805403331221713301238033443924668920202653985071885248479272935054996361961665922358610565293251034286437733609738580806760856704092183036866229123362765790625431772102152971777894072463968979057383382662422158746102084066870613536837269501435173068416783467110388541737167520780584201834238448998892789386910482695330751295864991479513734984334245120095589782524831482593314575407953656475302025051543784277398395307116977975529820525416760076792137013181799485232795714342839294600784360486482865226227207389097632866968433693523432290651202636328424437118945578442903047472919272890364499824746769612093350700718265399524948066701705819547411521135304931874216259972919365418759141385686350049546705982951641619900308968576054501258449841316075456732380989045547999201598265963950518566082936204744668582447715305444793767495632210161420677689463570300873803339073039952620926144575027201710533806525915870772159994686866307789397751936452465689672666054691056569943790164033082060895763468717540939734773809236299931823122840266969007115108287789247568913132641848255083271148064404203719759005429061179379152833381343862888121437717234606691344042779848414717342373268472726208753650638656695653598901107321553874459760955571351181503005164548863760085231411449965459750336550647197539617289501150317293903915314205263737282025267715532308880698849769407549554272789193929472081800738562636446617977169064312058883780274068215394372292086701033280247197815954422863017414078268145496479728176025148560663251847780851718611252956468934580582486155956022954757410635221503313947296393343365730116311844396614147595712552968472543850422956466922156215877332550810231372364120401685218453446200979535291953664286981276057802015051814051696834361110294622535183709129448901905599718852642000351956974964669470344286471164464506252480342846840199438526773720561268945440390583129365539962268918947504403145021763546207065151805426887777462528455184658989818316465582000080553487809173442443445410885743358666133675436585149727853634052945082371692971937202159116359305495494799081624995337082802499884836383200990802658444658713010360668440008032080574550432692214807511973283432860193778306613906429489859439928422478868106547760980651452989972883291322259102041937604116498073341856300832337436723184909097307368399910867570256486056290529076976057040697829961291066143137076093462994848719813012308460323861784640993172336694224515646229435145566068617877834283816015003997100068476117277356068250560168858434761573275620956585083642043177625547961323561690775293708136979421104352540605202286804025667822063849484779936743423353508896529915260618294130259291438107055722202863281838735995983964264157571588458939462101899498241837443163395820732164091803314228274997127813273584641550626396652067528565266776112647761426632231616850824029239412341998583160896126220357554926565986709381215905925605081850807262810665132391343678021881088025231327282930870911173401965252382102981577761562082449939529357187924182602751710114017868299812010624231631995412779653692391530737815292400907748985828080980793804151050288239862527000222071979704973420626360458797068957772501483560097054069950423713503760199282539441338864753374854141186404202115066828581496074052129383736926755976224243005198863563515416341242869802889687431840205101998854501508310677777962179169806147781506302206303449023637091587420384047950886696693171172521716995013437397147076123442377122888002445797305540392461049610484393583106249419667737281967824468098637335104747470342203115182515732075559135037076612346203800440755625833485259333754841669162655977502149157236737843737855026971327477863727983018324741226878927132738168730634336028317303595424994868396039583587358869515267783923993469034152546309872690933225994241930309695053474930132651586901629051617569864471919542023793109009015239285004478424306717849560558324916126149114710192986786852163380504593218981442179844153234444091990244864797799975478262538280038672840348007005067467656982035660824066270249054364698472142627758842075611299746072795672538247352474760189536152185604140443806715236374171905526618315619572237531614326287099989055614421227524920792957799517879222950385382607767458747800158491952666421928641579598663601379342412934332649659762717170938408788964382118672272206267690114820735866786347086052790996963156965746855191942522599625087101465930789949081531735942532265042742768492670069984267280989929272469395726680995710101536993122155141523201932010396649569546754907020989574098558724124564102521838039160662361957829446759481330618824701174647878617990989296052681150778806422447559316630134236720578194396759247287576149293123324805910766818123064236183618370412248315018110048818149113387427344996625774110318095079002099743366859434040451102974278916136606563539568879196241229300407968948005518093413976236856920417112639447896309542819120451212096763159238726502529787588930970422088015793702462307746913417673130399007496627193866791445556162324844215242371050384581584787177255132871389143077312905506432404000085479431380167538309527986328107464625845080029985016262337894870270580466358448475582073590449050198769682242144235022274611552786769637393799402773983951859228984763921783912168988969795278995835260908822087685419064104166418551915840291771868236615792525183542589362384431835347595351272241603890665833607911166767682700200198008227035181032869234368334962855697861008951932691283864950173862797708994351004579616785074564709743498919066396030143347549646542678668591435679226060363535722811194166458102259933884373625381772508482178996477621627165324300038489196295362321383131283046263120579577137437612401155329321770512814318052733106962911414029131555081440762239057380309672355461729585306350906633871850595354285130209391568872437715907701938646226172316951022670434029065378878674514619038037440502652722211224673031689843010391116925039365216006344766473736012542741914232072566514500674355337788078621624746463052345748774355547156124237831919429591564577889967794846225915584062687064806981010587988396856396507237594963698625964538954989380766512785899252119725812566954267068023056837159149110908858989477648652521410950477462338254270595793285420559636793304073289415540065588167031941566492574062451146306583316525554827348688312023708624591879144367418992464434287284597953517659261547068692356257947285105798979951055342779241994772612704088406209386263149997621297708176937811649613850001672028814297320735609714615856210252358922556844683517710207589136639335144513226444722726870338885415801219227098643261433872104847120619605870731778970830779277719387174054192097580853316478003755785269574187975836729623442666269765889386099684603495651536122531883928240241888678433622127111557206206278337052472285926895671540651929661684862494082771126331073913095236000958565566348245905939361939602447455974542504426777074742997696516438078443009100748169673792629793164292643435288861173665415466286576998394698521713898807780354973869216376122796308808251902770881039295717543918144495640635343401025202030949296553419060435094944839508381856719041052278286573819297836267209947076342695803439057666162140691981121940156921508146538894265429272890400766801035110970425562751632914186786110891767176541807683788902042901193350376955709083874740882381908733577380974132362687657577492615890968820830653489342655130246713693138750283186727804931251924395960311343099741305852882288286494997515323718355950963314626617435550429322139614751603488703374716105352328659759401433260631207672348821925421849688318780480719677959266608615553024570995493972914042112740565566410560711145626400816556187784542779158796870382925719193389289867588813917387929351272908594112722444315827942262172417269467346745471006783833872993571566153576848121852584110009565934668087092287518355226612379779311234914042111305249437096528432452897648012906775907413359514222241811059564293555791244081128990500344853070738044196705480455300966874254555780872572903347783373084268496452319041600559926177970550059985842231242252905055811957185131759739878809623035924092965110111490047044412222498403593725174830885930776775712172810224638414702032693734393394686505942766431645140894159197190057014331491446710594719719822839880249870307237761152279589731555432944790959874324470160407911657757198320481834701499160431517767638849518820310216874469100792089414735172306366524536677468470042571292605299710918228207210079446948210236574014717474853986567315708260259727045377925956954378205577751730054120348620878514360093325058551088691918646800272250044310962922330534209080175612452644511393850235676371301796155268144802778549928088926199935476744001313276795454763698512543819652788405598202570193715849558585969795061951482416675500141498256558440764921329265732268176828231376765962644950668811541776183956589763753342349019662898211034242390045049045434545297761778129144217567936581335996282765649727093602415850951239826540960542837910506781949368651978296871702210008900156358872674550689439312371884133074878218346089722768045405044465719603956716355088504642932594065549712577684827562162357856022116140428558553128727383040776503769219162541481909073328435606897708043067751385167962430857925091345336943610735624336473073226912648455056503252884260988838280906393569270200708628226316279144954139934459445333112342453347726750460734511817718884128922710836599153937024163467329271889624322183372242896431760975223075923758478604091357203374560039220969735340436845719197469204800286214109674702364200294287665989235727834724622783208903344019668496259590429512965351322222908721573579632153452326559585472644041621995501670917461802195394138446074700552430692183562886038809825702644929052727632262824805753032259018430838019290984831125856435225392835642973947467305736221320077178440367201536425715681440108211529327116794629875161017885655610947873291041602771279562312027125593485935473915970989160203298356549010706677129247826279691285706558997951318417353580360877158723909903306471362848909454892747661188018117021156126872731804736632871987363583911770403677553742605240935530966100255458545738349423352761909635158049129516840809258905641399500807455858766633445524500615663776516653023793523652975524554770753960855013842234917302679513503627820813254022507334646187842066251337146638623914897875958717942461440746931782887188830922559999336632003803801150862892260839985029755017045932720744168070134306122936741030432089583390738901244449587072238421899477122614570506229175740741104003369090549782564472247850378639292266076565054587549004064316017139968718919875919761237804072013093737685732119118782638842038830641505757603661071182832540252210163135042649122443625167249626128979059183603596489435662083705646529071245948302080945746752505263540590865947855859889600621168736710112561274373930073134448719981234226287562040741656838522033570691208365200578301589544602580102276732035299315685297946670606107620426579238452494821192400835210759332012943919465486083604481010907459378634733310744083558305603403354748672990979214994253965902550019250898356463353634188789911523791411017194559446797122608272743909633801553828136399861437016691399879519520280334628532034716449051170962936004315050582536438131038678969798823106407263647858735771857883058585542546240802828015761856410459556246891004966970035594015592244995025910019961936520106797776679829262503901021884529839240405240416652309710183897516684853732952328855098711235510263350703824469143169843444602804085284615722682652174785259940600336055032654518942016656840280303204270330295806698266132776401127831482427621759903575461789105421992702076865101915230310753642362778260682849531673718125590280018030748858594968337013849496346311301904576444161078910580797511365373943870178515609673652564996198599369310059782435834056800465371985335276316096549735885625503583602127843219400891459442892178098670490949108079942021820237214434305045611375481780939674859275110639768217146946655654874417199811493846652138324949221481130055444327900465447930327183275646622830783924042604812280401801961001985295543963200202520952729883154417249427666613979473206198077995931683759795614116895468182077005492175579732573484451079646981717147480406271743102535928222574750131576936993031494048688807093263973234967012075790529250964570833898500445403631551732264905836197940915554304511207296095326742188028888199905110574993584646306517548244869125571770872628642912538176496766728395552216077781810267554589092306224475267729200275246852295132367306373963197957756274162308030126939312733932519061868699482507255442506370535951357041076545131607505319357473793087846643482772018191965864395583115458880929856941402478890997618839741752776361251554955651457746684164586253933038113625104253272399210292720942439506566789956537556337759872833480428625127415725366861311392259584385836771710630616481900182024185171101185227200378128585651676879948514602622379604836279567093580665619437936091756279334209065826959295064718001165551428314854041233251171758341348084711051827528636295058262660867076630452904064496273732206096417005070523717373348526510196776710651422070964128704308990312546065244808465567770955095905235265064254620087039023586534049298980303484145660877050487680279819672855024862434784302734665870209369687717762049852626756986713637487931160797460302088294334844999854685359221063612974422726331777050009412100629684298589752109351932238330144259899902847814231607909025386458249508719154041694284415082897757717580889467062534129702475295666522701097611457928562140251586563999690368945298606108935814782017465479246815867993129030739558033696992490341339311144401697853979371316379697962514789180781973509208789666691481966464236734984687947413057937234445834637584712235985910481133548194458391566586072286574535342543133779961197107087160115022090551849601029822377349708425321668073990235823213659343044049610738737894143279677020617315125263389691198789814885784152864893303277531209651734148090868740948220712060583456955293067378891735648687862426574534253183938512682743238085734030043413847350726113171423644263893079855733286149069396699531775665315850765791231000662464390712535464600962350003243274963200836365585942042536541089501193970458367685118009117885211823219275531811983219139432790482885453763542019860746306514013711831360631517782291836906906468676630004177213217254263639261257170787660554634819388457985293364276420742929664285069756983982982990246307082851772874350475292335206827151740997915613507241654490858847810435746690106138801222743785355132520109310169404345068892296635698124483970784270870746600876100765626401227609063632870186735159424451220040805983486418077920720237039080124310844551958174312958170991915621732545569159178024394480942535975535215458547890362319140471814735942532300791911954002939866522146596870479150120556033178106180016393116756850020235618072265784335248874950447868074013196159772794895101319924741542653731053582491428193935326614352316069877519056477316823096226886947448519193793866930529632668521817494778029939185124007380601767915449938650102603446095812995253299539199905521189532358187692626326392853220181494515636558075026284847690460482677487468962676541576543244880698422115913457651982836836164889724759825424524464799625656663436861871966703839549125715050980924542920517737506153913152583144087659185541788852835580869828594776723330389261921402846076496173408857397857802822246868847571091635196737902912398926750571089747923951853076529618708701090855080545708514285005429772125148968534230757353760691984563091181790002344336831438974834577452087334089324672868343116541729669921252712487224245402280476145551561811153106896704862121266198459474487091215957851281954117600976074776709892449375034577249699111388780054662225926725334824410982222079329062277706668654205737340920833908635117120478178301600696019748906561475262250941954913766901656730129776353451862271237203459111473862744040693940411463416086797716111000323672469129034525849195745737675681633086720640165988384007250826128542268713866654221181892076436309388155930262452149725984018846372410538470156557104566506578923953593174650635703706331593626865465266470003228840186763422305406360705968416896318722813711611181359901198295659417912172784167949174636245881225523327607047169177729743714002075385670421747155427948516369195169758165487264124792224449515702659701543184282444136525606206347433601602425437229864574519051105870542492555422570485173310217105394479288718988782095348264402212370318559993684050036541727942083368084248396502716144258442625869476207140497205935961032094952204323452293048177870811017866128951967492760427847286702362444474709464491349812304343285954997690155203940993128943978413760248706541949511409094633054222475072873125396345186805333280182428254067829769891486373035268876864677043916752664969362981464346798925508436412797778819803851717652509855136930356212994502118392999197556297004915765566555693299164169244561266809468474948853268484838091730164602490766634470215513917051409793444311617228723446703378995241258709650453617111838383503685103169576507359215556465330527326367643022377706768125601936921811968926120794059759840976432219160666774478415238088750609219042771942570248003321531810234849834792691011524432893427394145509122303912691162834940106185593026042865853697142324253545037094564615931307479144814107773143264586661960281382810902851876376549357938328454205186686123369486206096037386561576339533044452922715920872716282892980471534025516600699319345725442448377742643951731584014489981653867281317546535111896624411161231970269431167675864666881109775945323379247709801039648890261173126754726544315242571170133459943143856507223263780078361284946746062408675111619620691250016182843369412446253163214032486100948436318700578977090745682751399276833089226921266277600721327941224224109156764734609780937137363814224725895127603695631564950209929597723026693901084465822791211611490720292948066382591540397415381622334368808777947908935401119089721731430766863112988666441816240887741798336506290177315747610337093928281675829026208955743863854583745879487780386770799640648488202847337933795398352600866331268653490963593513783589891959280320763236403543237782427938565290929999022537498985715176245319862981221760555678244243264539617260819563970789550536983543104669301275745131723183444017838162847601314451724828709961476989052478125626469633552245847143793859410579553668905367742638108285439574727395208106078728394918450325663949805983186497665115614590849878285294039571249151823530155366752009573234150370280000509258802835038632782176480932803427514453004993661980000382278782807244527096528332343113498767231351511814908045493935442631225654851906266266104274048202308177508824085528702440809145704555173575522712603058069864677883123005908456694237050126209403466822195230801017374041116343143791295349505203208911430904111201342687516964141122708533332528271872996954697545371978954255102254477813336779755421701035925569920884395589861109460943456515927561134468304311962797884656854324647049675277780190211811608514613727888635909916838278096752083636855064242201714183637765776011541662460433778784174952775460299457924573283162684930876149168407795956085210135942089354162617531824428244171007756016876649660492999478086312861622870870511364961881360431555254109284841506749916363886340763662313674281839723716792282281709221655350065526854631253864686040286416708570467286579397608803551745048681761808099861239112280577661513972046850366548535308692015976663740163399615814311270692127348071152701021974118489238838354058021373205341570117123641824809748452160247036964432644647096560903046611393921852771919455272056147218655144901625384917704612668122376093673989155493471651697169481646181292554062052662765915347709818717856835056937967954311568091811835587583299134515359278084939875454904433700640130548706075167725839102610983695869724267976250397871826236638886625008262979992288094464303037906397395454628825233020760138027497768698648819007472576741506553234905815444843590467762019557864164151275827110799845610715621341104315182997801622842564178303668317192504623770690742593537545316821760072078562162622085086573657765199780363748624799698861274369166082433446107452606549986285412147897528373013397929935179899050679552881915008538130745672366533212817511197709136098665026290810791900487260149873926155758277819952140793121789947315378731294589323750554051874541377631026294899037004277119224586391181567703778036300087932648622043037399610821209409294808068768223765374631430314249226390840104339674960146258842316001164059509162823942148221171129771129656750512781688740144605545005944091968504418195743679731774936454026326341759052338999002683202088029598787242898439667330810151258069423546916701921976843030811882316176918742891438402489797225198892100528686715367296258507699393544638030346543344694156573141817269304788876301358514772192195757003747255399892142214367629911353982448675896392245684632484989539881885577564795092371416087271214205464366048656011217717373719556158565389958686193720871787672230390238006357629298995089329574577383490023523465747073491841114689164593297752322019240404407967375815115375698325001132686048408917012128695811887054105152687777698513992695897370244409402340030695858869997285437567371031393358475574998359956405358608628510088347894522116410769305677746356545116208874680278427268626113407892513186954463423439414178472763814387139887990095700568620855073944786031341207518326129756601891702647017965388189998932362548709058257937568243643440873305886547278751537813761930103507178406241112910332507892585427010771617238976240739942050396575912826980970401468165815606958290322012683974315774697583024703175426254900959193319018358770614129826043476072361695284985756126172132219798836822547203147730142101695155524638571114755943752869902416538288809685167263770087434047902897133769964244740021362456679595225588770202880540112870430200490169553371883140765576079467870139070711868990246547925467373807357173545320864560822115607484907788212985610047048100989978183610724899449413337426251839226061105756775699286317830528564949066357403825544229664398351813834629859369162269735081744926362639064142624679146592492873594046815988567503331930018827680637418584794147221668216669163515797405109099263769139788307142706472002713492655880045883937268367131359318894583814382482336883635826272857981117121675353487158608169244407749658181367562624226093658192486612983303607679659341172590438758399750644616394644083707578727687656956417689510902527364320716643729190447492706305240578589575512123805987283024027762418898040323252921441904425580123188857818609726140206553229443576789764059593144883378503712822514991343829411247485789485172793599771360007595870241088748197709038021168652373354979293418055519226650870744359967277712434387114354828555581143537874654089395865093819031295667503499758373462500670602881168657498575772764710328440196989352716820139917264172914196250900670659610539192284302397086157180154736520426970215792525431169601273766744879106834716816795730410445055457806678396557771863785988129843908493057248587098905384120836729794794446037994281251991464461913073172871483367138607023906830911098398335743323254380150740279849245123109409802967746395302914171598737834106606299761451428168122521757083146860995573601595459144191520317063346623627124207493121618078517208463528412929168419144423665939201082334344873627818174994431896061275515374942661952736249560250293863710266248858384953790236534343828727200697453151689607100959021843768271384476515574824476761644817245279785157841477212762348506879408836603469520805255589032056919434516306967339479739753646094229643594638024006920299559585711972198660283046666062561156605063155448349474509750981674230460121354660063683220327968147778053964830124103000775359743257040916419628294885534351500642759575684738120515093529387576496963342418727460557222016037474987020824434617415140883484635733450110371019590246501513665991523403251734797496208414146862725599091501075697578739172931982726993486794628069877514467476781438282280805750984075967062428407236785065364163018360737305745898422970536445544863483391533875513288516948447132724668165215596366992064541457766804976596050891991773027625074142443773821237254996293744225369614252515452102143905322411916113747511631779369931167478374406901871844110127091625794582408043419278097260912722896573346258244317254550904207212976608284980720907828951528601711777246479137658353191047677860091481679816322847088790268714941947847867449681467793336086789484379527801057909464983582359329159983063760561007104013709625043287015944580262112254358217109411001713599636058694424177429419970447135644329780899370145375789398331641319679890707688433577550301114183820497159149893272175953848827816244219067523176365074169650573394697480824194491798366172364036832340989738842894481511888446566384632565300572173506139922739172139472372116242320497672368970824980039194989426384671189587003963487819886539402015154202827243871443547094524558846846065601124862958368530878791359616816554596705019117616210744110434308586158494317527454797737330010605538241190366214344369716820910149349891095207619470202876941514689276765987145679634047139222345848361040420271857378945325795746420698261274561853337793843126290440442169104084705953391077852420063192297778497944550652129586740748173780642465346857905960110472160951707349114447382786898283197875468499229688334935269981412279771975822665507860032277168125840544268807415079404924262828978543038215387999800666391334184638865487286526046982232466813561424662422545564573501940029946287131955640114847041459052104136126108020859579079786095507181137106383017066357701292152351108551661137449945078795533905310477073167529302391935714020118252512781452718051689059931237888604232248566035373132701843156540236665209673453246983075483167395351706465673171881560408826055464737541503694323430776277099645091091077834439566287360590661471798597991327601675768268281879887329228677703654707818071753262281429698914387206436275153771756266077335307328047820905368783610899401298918152232817204648613231179947910289759865067280434074572158786115523687776389342840314223053615847999142280251769321998608591691091180427079590071044963355704276644961305546541568341063766483207410081347934733780816930950345315525704894934072798117637075209087502251973113778108058186960537919310769452378711057919800963997511925943019226257499061285016745596539898335106886376663434728345182530269486152678786875299910181993638004812939590824324096096528577528985397213016825769581117295964560895362031348511390324018937631488817270270834414603508860950781302512026992582645598608966749965712653065202293719725617054955078561508166384706823966625534525721192531371831614652897818017995563254946889393186026502879233515900182367666039259834176375944424310813293909488495117111486188661467926834312393223290775715201339908754726956491053110537794607030653557516769829010417155422344343700941932001400623996734313383449882157492496471751220345933216263130595550784813938877486862347913656415995868871517621839624807842229242253858124552286904686932253353370946182024314256980194330525170177400191128350701690167408269062304717796054219919334678003666027579442562951643411606243232976716850680599794300832578536453599874750775163147753874770590968447797157061976751356029569433074970928247730896513456022185160308542377341727572419434477739067906940859223908255728673579194554137807872789670603499311169344377474488835220083676609764881372885600781471419347296230744470715713459607209977294382505172255840075262413287500004508976355018263664447739795884388083867192257761797654327506621180968966441236333630723600751881938311500551917499669885753391463972506607520929059261808998627747643759099009177995311420455959903488599498205907250982851813711164509289221893261365532834491902533786769456547446200869644850720133137799122812933140885205280990532811864332868154769217589314545768461796937211900941379990581881749344187894291181998831165107745077785884592661637227128514813631394339783858219924930251296650224768845860543582215723370076886419035853644036100552898129596255578729495301634932212041269434039035159969478321677185786440475865362956203624249312070173349365355889831300610890517146970491776804583546087576845627144747405242793943475549255825763886436118873132299647676335538668263163734696528991640165939718529190261796172645131384773959458198126420331537049822781963032674391393148232680198992669200619456109964348550232951292231441892319901410147869041616854076572809994459302191998476477317340841043251007967930476777128036688353698655933822746678322078530644702993264423240893526968693061813854826983452142292670819764416089020131136453039253498579921227045562513742933880943072795143236461123922357265564320114840568043017348875347086187905823421980230863612179872109223927924740567860205694370734227751990348296689588871513582146711725699884928239119274059071744145234612810112083180224846484167955429259067431764226465619854484537437183374947562917899105820450707298028680239434112988517196136761804567145593533715392437835234861823482698228862866464976067401768754270163301582955139768982179606485713808689454547148062741839745564008012583867617270449408585100129473648193453596516733858983024875156852402234490162762681526436772345485526841497086668326063999227672550942460685517257258992026806468565228018285348699212844207334553785818887586949271364478208972190520589428370371981758006014375003482366630833945769036764798727421448679700851899616530497990704607492713068241091656879178050296497358267943232398248749089972586028565691806142144842989827639288644171735029462657074817700936977916481623561593441401715982850194008363515932391816621699576958853088935883483940205606038779391845494543999433231152472207492136642677039408259019820848861427289505959323727119724997839194583782021666864563672449663496295342425988257249677308149678921662188586727282024547309332670479447639567401221610730000235560221682566011698063752379607913713334410246101789066435802225216407770972359800439091764325625854586018471158044774977499874436859851229686058787888618905300878221378512206168007735045899209165753080957275161067364609002087409252459816445338563362306511732080832858378556555298161351373165547102318851849263315868726105920799487906071001676307945431639140996130019640975881684490692120292965382588905421651718873726777495611481402713572337431865312591937908457785305532437236552568120311254331799569483815110950125089456394070738602887846916718040449778790994072823439559548413963971797642545848337925231457153552684627628405345730910814535372244069774083088052354399853620991491766879325480725631571676739843682259067612829595813344677775004295826345934085042351662149970128136141726723701174485893557197336049778417064475676049225152002505157608214010623604501779944101971168134762727873924261369990971079544328246915822414894198905229521673130670615079161771841570032308862661283317128224697505909211952616404387458755379495206178501958472565242883965080284339061284376554234224879977821140476026911924819117906790127876207743411435462763707879189531120748963722314985709212550551565956258542290476214767374066693135750477985609505848830579729546001911219231416577776435843161511855091900794924569946169825335741089588379023878691936743717531216369328649202746269444542234184705673913634611271090697080485864785895262671687346256415783507118605747037591381488506255223535914450029763292981303583593123264486368144081810431084205073702146555905091317248045398545102144870468561086241782068022851879924326309613854665482824504828290287412397725691297797140250031203531430004738428773711609330075068565174317638270764274427730930953142568117017541287799180541076306361143888363877437760028595258072008480080260091212551298938994111226743725100725818069879206885777863631426762766162766274309823086624029595555989335705252643747153951924046212662911791357316217643391169925945217272286402951586706196295895395136467465655268156069061727905996674558427283879899799484337658262936912276386756652309020428608053754351783323777653587194135075629883800198072023601812448305477039446429722606201141921845258544452113576894566166318808651266610710257838412763775843638278856306631892506459309475886927118049139171247617785019426895839398770334564964223586581655916039750800024109498217734047800893072301460787455486951007286994907694582368298762565029539788467382410000042053234610034051191856669733883428820053488044525133155460696965547583699783070775463339621024214874396005655639149791438398717388549853851596716820017202542694851756997036083461291621995227061445164060920017477911499821732331463814626297222316655510634975269134810496477364731707315685988734601839409835310437171725201874659450081278625875321386513832184038547772569683302200995323169495424855024145406610156310293262294317304109312860885625276071604673079970018928579186829025821677220899298943706134475833595822022746597657504194773393084463613133874842280890860047908454935532527946911289315061460404074405248952824178698032432730148393372041074880931799515150712311506704732384829595609940968329956255179619234497760852807267623003066925039967278656757876430240154952392366296205580847700980332316375491243110776255614691587779414859783651880542873879947941857844213461005680216161547167740937283553220417844462284653980492689191160541913060767406280447557500613801496216943819336290495073381609094283985795876304364278363875193210253272294756731917219959090780133720219555090932278271484207944456343266923333913910768107569659305157197675370728778983127952105111282714293017888274689675102969687810591500639665522126724196747167218679253602091627289469683419857481975613617277267296259247026324252533594501434590535949191862408939766577777093026008217948706926601522019610289572226144903378947033875439555943600256267174059739793199241146356264252917137889578988128499243489851841743469185672846173617299630786741389258509095079746491844619611139531671119576710050230562426351783117466216357309924943807674616718531839989397003479868006998554869316118164099754870673678007234832025009298385080558058633667143903649953436054589040282242863416531675549616841310581676538693686046350664805954428896325719221960447248774351306156952836067838418818111167699940775054500925887451062023531113239698230846956249293624058155297001734703153941077557376669214038676200369687501935694898226343026782332698961720732214679237384854438704468219052219265075403293539471355369226788115343577326488405965246977954936527157115575582383866002508123377950637174614229552012679851161813229679206008276647987360765791913027403932662739390724505656203889499763017931697105603209077899206339329961549911705162380529910741482794790557285002444514338936553148777936932858572256674640754298662886824504932184734473536157076635502991235917146303229749220226697936006396423440031761876202311590543180262820606411408195054156627236878845281033640361373855626648443601133968560429254130715202834700653759479577749773877558537815876704371874964276504442851447403855626718118931280666989852449006592264047075746834691532238357693334736808427574549314539796134170717914635318698931429052684267740384667224250763427298795110347687929142739152942884297599056276031476441309107279011573104269729194334831661767859124432947184675989277796766361191201289442888973414337463647546220789192704063934703009907102140724433940959531166168832510627550075371796610250934375843943521256609960986993675825513578519206183771725318990185349226613587908646298033615869179578405685788956475686104840117404677982010864142783439635699188151988904780861766008103246827437244465631806194830583460578877543149900477146880162330813581484424749463665133181753181514509421981892578773383582627485318157801619583816787015757418857439675836742801695855793746227062393566700187013426253209460196326865745124027035604084586676702110517590841990816283154515560981725747575220320254466369511942680646480582320154031807595730128974249576806859410642399044739197844513790651347486843108326931275614842244267494623287901240958291341724074168648064376158608379485445995498874467045945441004209500588899438808979421572601388724786288744925328411862655900092960836260746540005870728412992032957066149256392041689138268653762940272482235093385334988852744667739306767162859542411581498149870273600344572247292235839577929186795334473487695402326366575131645488729319695370465724711389627159253025971107375608080668498935607980496957730388156323058532679118813528991677708009319072958669944819549240704424864768878692066869397607436624713491922079331535343434325009857551231981422851761255445152164979381093898600259602372892268745859105786139988543526970360782204029329937227661039797222835387157847052511561743472536473484214549233117254954325402286394531662346995988752175409359887702199011875071542322766795669537220518640932765786834174874243285970857702691529204039136144118606854702324239184659045844854264981855899778928191146724815285555785522040878931128133152637787235592142814060253358743204420976504216002727672748275592384398746001333037614871773943633696302284377701397901788026376915360448141891202790948728244870464465952721829916156787462430747482067406375926835773191974842335322365091322219400857010402730513790991246562675740098225068929941805682153460492791893601766009698055459896222537690207843667003622794118471998588424682473271688504565700684388466696277697585152968365044378087142959632119728440414526487332242874101837543936708226058174374652160703388402076022048368963465729600148995780265811934964846260572885033900546765390650026013083240301403097547342930562134100702697656075845694343144145638393941834108970970431041828237580932293563513324459596836768838467688407815742384790679607400735564347134959056059450641758432573392888468654089689769711830605212312833883359360536407698625100770854196750229457233161179529178210947796760681552809586925987635030345937322611277146012432862222796043461204281216666059174996157618308179828057198006271087166335391818918268683562486744839155242482903779549996163761670325495970604578434141188933889350161118234326340174532239510690012075370170040283516350309619347669995254840474577944336142389833500467683459660617007588848796935029053337436424417374258544300796843104908124713639936199885073644355432803640312846037506559561815769991081569119155364436948044890516414590627468095177442944747948562959167085432794116745612617513678628815723028925773412365714537205113350272447577559169998918325457168663545621341791376188985566952764129363335563286196133873700535180585621720969653364571835958793166983253511363319157674913678371337567700356090759911203256866681376856139715942820158506160299032803536538619591014236481649995127670980915476871119120204377547179905182236586213625127092051983040057781264103505198112920814220792133308407248498833085327779539342439199601601168126869008906271135875873436032571592041533378636295145320693838811115920518843407641784148184273829649656812108839431769576325925489851782424401639158168887090224760599592397753492404618927406563881121055426855636076641509790901726794442624500952385695649590011540882007228103592563502404368337531921546388232420766008621338336093657706106015545926659719847512894930996244034211224520579456395261536561185257107143141992385032585778277268613643881926415782804287186588647848780205875416495566771704317978150109464253476914411476869372959651007946519769710180411865399661451318531598980663421295160688206847864924602060470966244407792997268252815547828310404482864033564501910541579619949975386336720603362704423317858803110600951618421465192435181397124687882922363713109972729196297130487330493658633013329365876862888799303542151087053188603565241406283602873526653335204213364750705851521112399275482520673922862745643196355042698774734497489640161915656820426715244500292234638763532390427150909247075453440038133551727139710237030771218513190037819044341059150715827687474822270122706003560081572131882789492274014455035380572291032878372625752166143323505053814215938541801664077053990053835031504549827672651053395080504434206573813275731800617645970528562043480463478681824185266182415842636438900947152360853624948636534161446177870767565531828019629616074591246167905048068537849525515032929175534148093049369523967098042179127615052527032317274263993985018826165818392199674682590752468689284551399203218818843701650587667418436701630444821311980014711574507708119226752688706032479486182240414124025537301398998645178305882823554039960837566610477556075183696684952323996518947526184261812361460319232833978848020915104486688376335481247831173565994058271964016411356469167601441000294796884246376743369565553252596538912078051139568315630631827214902025082139559797386229592544189017099540928036453078626173621008369811478754796689495242769656949336038563252608481017985258563297709828029985746261646306332411194772348314047242215704257870254832711605815761338614897551304319797072041440109596173514290869706189874260872270546110006789697078657097568147528058440560078355976284657459434097669538538445201173146608803225127595878045599732814451197988853033613903003033529642364196756528022081817630067464404970038106802200873060956540478204979391691436171918963125122172959488442506998059776533360025391621193549127260710183073600525625745683932067012169539664477977947438742364860364522930694543082417699044770275795195550863852130642576880704567083287769000388727726936010656360890187736729167969348529444852713080847734745985597067495340823113167640675604463297654390778816366118195204257148201190507799188348335771722508885353424464004694380057658523245907348633507028301736497978816412832010717547482681344003463820649575694196119924205001182030896434067806900513925240754225238042726884363463883293865423575874280689294467346043310749451184524378471913308039306668506959609531764158570161523307048009369858390284692340492726159620136224549546921209822694196373786617755000983905224367336110586301717595370021823767997677894763352965893936197564371130278832593923595598913867597373894022960815061251139229101219240436079181370181077379640431398720142106113478583764411669843515410772546467689074378952843516800056839940541280663186501941259379179011952081022628182126301371735024386724429338489656093185680223396598623793376146306642165625333189455344546284562924134033573782154401807648207460185159295660610355139266854631541915822794287563601979577121205110584657132328091787483979818845417485732461733134565336442049891943758837576118538390902750211953346121475972310481075155157044162422291639819527416834230392824019385938243730166649173382254651622416884464237336214522074306565625353013688630239910833443601618732365030959850755795551281934759335122686978209862575505188886974644326400815469480999022910747564375931432992242319174784295054552927182957478649611340842325874446857251402542006981529289226323630023089259884462887934859535090055036790681518342778474792270361365853450457620634369830674811212820266835133349714440528343584660492271739624761873022183748112970319379174714106041813316250410605368809514216677905452526448632938732825221432182577153728091319279852310706518517963812876442605137135112475507239955825131001841453226838888016753246602099369350214922956020988324507713180907577725517580096894027845742834996559129323034925227447289795393113183587853954363335716883227196094544218164937479665559507245471445630732781945970235091691332433155092027591705270327407853720812106407508627543941213436693479766246716644918021359700653209848015646749032179076658335423004253473887093081372697026871682375046093894842056671766482208594494393270584701704092072820715138536215980255546306664177328355334419810589044379023073626283990239564860159395301700739971067322791139966634899530901770531553917446344028646439341987075321135072386250864950897478727942886103560711383089473614807240743497301870325202059766127381252104013843960503982928847284605507126439378925665020980118811042261848163627580871171944123037650082568149128249013723015275596100952964542328478059553570641655585586236768752858380919403776247231309594887653429523784102190803435551098365946477571138884421829349982478590122899364035657578832014932880180412791879678790134470722554073916441086826828518862981896190297822625578903611601771871184451248277063365039091065271690724225091453978316392642829682679590437675175017988373166517194060685864146603136249536521277408696091128150232442385429812770173282946379567892388799146636333029111799171294248664484308960540883977752308550972136248062994928295235961400703553847711486276820996483600066365282088377834839013670485091503764047908572614815093133175884859036756275826609884087250729040126071013757334806639175728844718999020641372364136021248124104652778761966048940379414374575886582037660967009205424375501614275272353777574360482971759850857894154414113953632089717704193781038574218743129622840147139144636917437960381564604819439484198466961449546659233120032830962604320215433759991132887420287119553902054014671194318816814230170287454120451663028644830898344224161400940790087726036414862128397498643199985277460985766173782238071676508107139421220493596366945808719918646123266938745012624303122982020849366239862278467722063025239401206414497811591322675346310078347435264535434726998746331210997047831617572142728012440917424502508074725642657747808945650870371065756544238378399756433907376557974959021608107884307551597960509958627108516248825649333347744285268555697206598963852579317234485814719159968399925846990799236343610359246520880889932680131664568482899753503636760597898217968224276029205068029194234390683394811750243804649622726741613100273821188676967390083072923353659995385675764928981793168093655499035694089405227787544506929186482692873765081515037785899117994310076239604766427620880445104716561418380290856904597184229094261491154058914932233531682371377226063214368663281637693816926178852396698820405155966571599420309068222298519590678647404479299247049710658131169377631925812252808860460594518013170131340663362105149538705257105143076595020358329536753403279528320859727192498581695890743171608410008694804018894723692895272586041166060090996942058591256590547954437605591425227653381800632172944735277041155278445696279574056788774484562847270208924107288003660514462022595562783196988981938949388149649452729046631917421468575363078715253491150304165953889391433445728712061230277410618171773364836443735192319104279969421631835168887941182393556374385443330392304526522588009061383493158246058755965737488267073853778972574967026147067290905543566681758134153915726420927448212813116045505639876546142829468231150163846086305448474907730884342763472007343903861378209891218833147059062863755158475060142090785308453046329617495972423379658005278520119240131168128226909145410096610083031675134605641103086874842580030790954259968618345837561332470676330454448479220717292151694771260058768489679439506975698796466258645324515782351829284485443743941760683310568380338524132818051199637440771242260733440077359104227235125156678237329390208579189873221409675929602661902946066660535340376211178761292060376416712992315732483973329787732525490569012642002820958756818308467351544152549975114539521476992099509002276020676322672800402826366450243449656972403920722279914625842232692976939230330924843507184935792265876447737183061637359210287082695538470054210348430861579519984455826413182485788905698909084808931834527642705289055879647179719713674694786784703445409960612700630995918598436818203202474814640714395178340522215092870484585750388781643286751186583956914633076912227913703947912491345166927932274977654252915543318111792915284167479246162397603965453320479665033151339616214562489612316867889966193694529143965985993204788104566205978005029446534534161288437400534276406309991293067657492893543558407204482225069857710851734977455506563662848150366087306457237346693089415225683070517932549518864994203304055867166666291256701462044588071867692516000958401025897018744874543559814743627623371172068290682029381747848787054684501408209915858681422552162524746770790381150451018378721809642288343597305644146402398550472712145039932254969676770958802896157055043691380811348084522305872470611155840345151821354062768558112313118746615876211869654539247052142273532891193624990114300662308917684232713274960575042837585128434702933259823835093395700843222479993414129126494686474900741454899405233539398277140791455164639733223853912688857940687716775096493861754344624175784340335059737322834951221145374197224843702589795618531099637159913224982642495914832625988533807571438424011535297891185038547482189090748986757525832613704902365071491401593055663882589847949951392504118574974484052432036842754685783835000755790053751677229749297136413120772332438040782866512952156755461532297461154783141498388856172303075948774561317965439090868024814353045678079321359991631866762230167674402228289023753360126528788058054917246427712432574244120855559864739974309492249430150447159367503025592555214950031929526909471895935921735005607494768436218080082677342580655861159066765594050843801893252447079744119788324206453833888278640843931995553574515001015878535399471076146003935856045299817469497064829653700248922457715351245072924107345083551790884369042794050278776701448433864953809675179124875373513815054195383010693183707227979336567974280979275999233282455137778085329604214983496936218284030833055331638913865686085298719512508789474682861158826378126331956239879639939334152217486753078257293605838661633330482814939766766706349111459667177252833688884194054665640787547843171906746592570175919095776606425467609064610271623725439217218672613819131042674947319456639405169373485854299333586416466942951033091054922246970115081487505659377391703654566514375748195115064392392059326092414924113172434298676907955640835610850138614220557551035339964196345072842943634255940633638302520158302140312003620719313186038810075016009933725500663845943607742896493419016610998271722786656690467096862560709245460979058472577731663314578183849578620918428816433631833589829745647229558160625869129719372044423074624832032010575582621527100756895584967607778531135963101066263075413256605946088861856828326595987488407176434070406700991404172165865018922876413284321657558088840596455026273775428893745794775797473854138948995624876709766391786435535996161305911998491655901154387425764675528589861443713497200958717362047011065576404164202819112182108823432288115761301419703505163318373245300742855558407671440463589303062538193262460479881350443959545416538877638557111568806394668752500832619564711844056707911336900721137516234391250387925562709930800982579592325437182719468469331755077540857964819037502211250006052168739353524179506852794792521592388445320127257987792268993901091701016907575186262185026958689747393564521538346492513488688667372919103843824130003588424497535609938539067174808556088809865783423014535177546150835182846943241557477212379575885961486293327529762900689512866462015548091763461523072586677293991142927615737647666768122557707484200802733240968484097863125189686094874914394688234642442976924142616090956804840302217867901351925368235034611245014296518713739298175529411945547893563354391698501671701930642580399550254984132939415280526457047186189025571126612540111771948690583589025600397246775819511106689556789494322393716845076958708321936401018998650355702389683476702401893868813133222157291122695181457148269305853360339962516087976055265301038920355323277338613207815536075307586092585111306676131639933866655642845649740877725766724941986372882744477483870393778823853410718190812099096887705985886754447625904587564961722695320366325626114369528480998048018711386123959737124210039821304034277665792604349348939544427422376201542955479723804236418144158615091505573277912663916205497909325929314659436270742459384519307243193901152816965341712217318857122492202247179013802455686740250231898930576520537037413875959603257767257678986787848156319924948305143316556840198331321570340281279989409433608537037516535044561066327807935090667304323044708401781534818970321937691673456398958412010768630776919089202071169897483833166816439290330870035214287444019280044020385152158837121605801438669266095480455286657170374202359026663191022879412010433357427619114406364598454133284176780936171559916530357351077055610368750240672259581205924187722425738617362672148527293570471977372718905285568401720496298215941902346153292783201765610557118861578825575659135512790216181600398941809608891390734437340689504318398698985590841271319552821480946274092916074868549965222691971712297425382360872179028207913341269617676319619922443263580091085260498716595210926940165118911701616723624836104219307544431897003594467871919441032189356221238072145730602003916831727572606606374720997877874004881692445004269989427685879161877879333061372947880644804304763323004746988768961347601246672015058488098899516088216522666723294688455653017855707740300367055690691843878053094603863074321495137651806374277214839025208046237402051992477214284542732566241176033949312689698602770620125509469739599197551990170432240035439890222326588152092952106188840097125047724364558512067515066077192281659541023011922219569372387104207835716700961505978060571752273092236637618041957567666719123912945977659888992797427863641888837360394303279394588286346031102687245422894829705947297087627491708827236470208222340436572395717609476364573182423041340608250707598626929848194623423866392349751102959051733787195025077314304188213545316436140715435745740865132685702229186500294519043036004754360375025341890462430236728678213490472148163230702155331869980209295156717908261626035073730377470236016151725245046701796295292615262527670902451905615019784237130287231759342337474671875478146475185265798226514987751969814164033341846353839072453289196562318085842725906156940581458908541711923276240886713898098368924921568129111885602824571572477370715813623963240881013864981539760542699815021320428505599253524579361038225586382808212440646288914952718368153153034363422908539773224209181101595091119712625201074924031663716986557344473112012390962605696903638366403009029499883599442929906558391623843467812263531939284694206733906896449732442345386646761576740839373996953851358046145062853543130064814582426627127432662974343615803232625469177199250025454416809461648130188206038612494652759133865447758187628188977444424576809432130177603866046930958440685513402418034082083650144297816569182110251942548268025345371153818708834418527602866909138933072016021867302977417993093818216348684598144378756135907790114258560448041643640697510722817289761638370894959246211641156268102920198283216890375639603500601058827208487983228234453053433135487367905224218247243565318213454027095141751957786184810778817035949726561881921273383125023086957137726099922092458269204961542735784227654438251676896933313694386034459110658455585932345542419290341064847350273642694830219351583217212062535729160323548728661372190022255860605535371844137231080332918428850869069871697815863875198330399569387456625205642608331080484697667143265278808848255407565040395052770816171728026524908824477676687188291441695514187665660447363916726093322397991076389759788364359978658838821972090208056661962046021408388151192921155405140068855911698124373710344386865807829204368134428570215956912507969751114914135351240142780722190221844108761384502651298619347584272397786013674754258567009595408314045707949187158020113479029819201917534377059728785897455273379889304504606789297695340545631918009946184913926812244916790373139096900034661267152020976032363498208977441058078632241878488235459533351907030273586825120147856454475907134473472596636721110234156235499286811142991790875114443161588229518103373232659631755883919294173880524856856051257739809841766393351633821257735232640847767336780150636745652755629403987338168510549177518716108649613858018276992244523516692903986878592055923689840582551516535601074671647033764550137303339100018644532439749626488142320387027650905167432182178254383040917228427879268636235428883084555658265699444595900287303618281812167388561303659566530205034381118821918537764789767310643615402072538226132625846736788106567362225831860147118479924112372954203609601486180968680631695165875165318863217411990275437147755679162870536370119408537162758365027761409610586570585439062822504385225092232007693303988444546898885476134497692810994797763713102535427531664430755745513671406171128467716618219664977939522640809479072259925702607759488527884018267829257089437411403099067157638174256342126130079622692248403141483167382523599974998814006538962062816012541578596244293500464767635855271170043331710229963075804336053933135246006518856639140253629407487815584211358795947765239552111846469356147703013295684821086948449771344621698426482727310392616288531512080805988462859511365384849677516928251650197354328547552948272145977071533753035489546176296469059252719109398631001128002708172385418317684837938212233900309132421559156872480887516449848662360952257842690418760626896604472967284000926392871616662670538113976245548698005543839604190866413833816793096516866525655378507173125486107501402148298535313296516725662873801526769792049696033678031966285589545693939111638856021766378869398106996216647069168408003877644369162251529745236188106291658658415741632545702912812336989772222030007852268167066597510175880126646288961396663707831507609639566607323988474294692359821390282623950971051465467884987183330863870056092866915042384974286485615006848270479038975787389728958924953082750402065838936907285455857229115937960784944379243074615945575940615049735865644376634685023213365509374268933415926204472356797208902893154913557735052765183573424012588615689349551042268175461304388550718157752511503555642856891534333586076290676649609155758974583966840551871330269872082305400616282739866478619793678215070022056981719115017890246169754375248027083502533176055649671545199540296281892602397477672981768499798555950379312566109114975270126610801095475469128793820655268378853576533931054472653309065665393141143744577814403988801621799195590749600897196130374897311506312803342252429554730430998819937197634886933512266100480058373068030467849587992949569919474627590351087772805489309196706591661424708418590716565010507947837833287323625123356955061075955005213072949664791553207062408433258122299333722020909313037470738159037237373712534085681895293950649900519951623211880111278436426026168262455446363343257499478855874628165749053422371536266660165969199090085220098403065721972400750149668106534432246482731357939554708923882184963146197189691923748447733590316476983960859156551675002152246145587811693643914641147066427697051387000015268842677242498755858643477055166785816085330739231386769653207660356659808825826057335097437436826719248966254558018467307980772514026865576050915409717248781032632807416508470142283571127668285750132085287612982560061590595541775450203596935963403606230120082807627260330921262721768239196522070964162598932575098147824610497977179475942585304310508252885438123501049738744509022989663848150574337805841449375095614458638841078962862025436595623030728898362271190913819334222124153962232859469377941968038020594721249933501207617942547937696819995717971688727545306783641044587909121996041401808196287083168262055352735222303752431285043591962493521036236757138889343345845572880326284821376636912541699916758480840833324430285659041536394181135205418975713142688894183523830186995009333385609500713938664815811880673969029566573687953687080619710282381087291222601247872468117275420147549167687570989249219349699783996279942767168101800975072665916136536385450914120564952534254262242906312685208962929836581483647331573499121438994174351912874397229671184273596901999460292950535395785154910539645739013181317055125512181140248534494344713005854984990242626310184809113222468993913678996536441838186591583666347510622035498529246721228771870777723151392074295108495572477876658558653224015464536849930572150467288009692924472215837099741891434853312358519310954304574190583384245349882261732601665996255257813568438073662473669767044903284359603645886227081673932601955759095019686414487633495280164101797784393343376769315029911750327063505926603385026943731119496995452900183072425735514786817875809798574504738491690952826183431501363189851287212382966837599866295067485234422632458671147342872405813442043192154152119612846514642998687722173335430181218215121169521387362494048383486473113768046619029577543893883085533922470339427479263512594517200119895309191889413511258130424002041553718535467557579204836187814195626475589822131064324381711624818897373417035643595703169438383359415044244433926390462070699945832931938127634898524229066154657048979787851668498087351211855786461068666950582508163649201414727541890963666593672601227908464618854518542956066285997103320404125615790215341342722728370692256189038596772513128202075610564425710927824449003630710369261201812310351579518357057876536305191889709587397712960987282843846790032049258368863312368530073612876317572735665462594830430170730940187255665177263037591019791238303096403159787812784437667957063958417213311735301350879127650429398099507486604291977350179133021112494968146920211381547586074541929237351583281587679572521063296921001510103684796271761381264983410284289221286386109658132810920611640850086425733928994868357560550085857403721600177236791559681380783952709573776412483737481281572202638084957133016272645637636956216613121135741870537242106896543542019158265294855324800434989482505355139044092697657752178906692180289865672829830238413024585870133521768551315996710709760359204696818606088102799705822400042754247421007021613060623824988537810412519927155324222757980586688344460373783531493901808768555241629080921991021255875138421193964067750505158970350468841742615529085387338821185603441915319786050009125551196761862028375998825039780609482310450802492477933262584303815081431088257504639808220987174544959464254382114039884079183876827791232464111296083004153065572518202977483013807296358947334331179156207129974202790571063697876059859666815541158259367325368522443271902089130053082292730713090871558207049275424780989894132703944836631249195360008212040420711812729876263931629992647737521210865309048595172216853473427124265803197043409682557235474495222808703175554614429248429729871329080382057973376296490599118797240119056299596809399944690138650107297520538686035751229671224223824776010328627159579321702616324994549100769349703473964800827235469994934095924456817166967184793697456028622793623563765226998094838951652293671265767913742279921739493019606636812500832382611206485445093336955866062444009113804309290344762990229645862091631633106909033791732783068426052612065032519715737690692068024014915619366224676829807558648759061313488848028245125263663275586801780709919377988690080646717571295212827275669616143527003652152542359303810528520063903344766247220656023319525238610518884628717756644576253681952640929123578020347288229817688201202130615863738209508042115650478194592296712753492444266173498834964944536485313989034368573769084314884846225610155960626319076425637322836493495594786386479079504587027674230357282928435209101313546563081063790583758504466752077589574688685965782641309442565851845482898385714532516340554955431313805320889559773919171381324636622789248725870363591735279866214397576535781598402553151363750142616714157731941905755717968399220842950542674851814623329813068551532747160879921089944881299292905878719134968873242848568757231463936243310784869810197828010642139586322007426816969810318517704575731432463998654994046184933992272405740284821848078585867700254722712869291791708385801797788343723585768143475979228149178207141883206836429333872655350466506178838921272795797154317938705776247979071066890677176777129475113588689924371651140412745621042645937871315964264648033781065061081049954579294506466656315311859206173806230686481553971599851740440712064665077014805824498755819224055710976197405302291190952286506722016616132305994573022640714596082854246435351786638680353859448407636058632006997561349204747521614681275487905216985075783845811831400992328154436975503023495961163731998751289014064558116312091993988915159181380782498890128214229012496682328767290117998676005238314813849832674238645057287792442073227097146793028244157658724818777371668375241543380527694000189834948973186217662294420359879583257049931176937098420403012033258950536433480068445212698516261347330947586713684372164367733026910666654381646204384243261027893747654045490547058866270738918312879618450888849818382573944937623371892251775005222002728100838228779639381532835269286931139356805999293725351604454344063214641599520425625053625223908490206403908626965468061895621039373030655857090245485476391451461404102381709558003686178950974092276240226066256297227071733395789674715230549165979558363826238670845739863413032939634050139672513419745251020840938774177124097816805034981526805309351615663332126292997029786492409563101881043556730874963863078661079871132411166019914840948571493621582768019104056424696316838973084679473099263307816948479686947351834778885346442839963354689024587139512630953625838999943956288298891162481705096910884571417960228186516800833481163027243217998952985549274030786127454973133711351495809679873538211435228382172738596126305198808377702835140889170706238509232903342303639182138575060576419947715443780514837325960238268542592537896122138982938733451740110495758757852670913175559433843094996053573333439748302774231281466057913268545502255471035113549922690284292758956596026556456064662974791886954611344463680955695024232639711908529932319152366853222699657705071212465808557279571091742318403861427652933143268850889341835841474059884815595149910461087122412803839882259236326867676895950855628164955696377369490955348428487394728851424418301373708092313591889297063583135280868228946890159663453842924379138660772038209253780107272095376752270344962662189666576485891120001127948279076028838104264785857813905162111384563788591719809099520551509720552133868143130009702220498454144488066402739312006289489525330844782920707880017035394171924133988509388397982302882330730131108688405501477846179475763834076225999036212124804275128792440331943520829320290989100590185737625981656814145455907645963848539466839657253224840954688824596491910638645849553703266637204632400562080008403335773537738614908767856391672686169321155944971517157582816424937107020670731174830590870615697648748258650898116286647475198330196390512313788172231525837781996711023231703164189646112842546989279653284998601907003017255636664584014330748368118768132228457705801894704956464820060654894492346072295365020632459114528143144525038535263664576877767285150351902122422135895062716885018154342272867839653914684397083885239538337542341232386498702873492216592378394574122895461017849560544259999491607488606752725763883398409803552584172368861985148850807795985800217994009675312472982018151480376305539265703982870078088615038072353305409309987727922757959890581241250574602780498084141589280333049511912731693751008962035530412481499410134102480834582907349228188305629622283935315597606427709587089467499670287618382656054486989829291457569980138889144888756674664359710801867601436558256740764674198159027974543192799173724077322446476821280594349092296951900667577674258182661579204759196354174714001782084967553654332056087826441830406577770410144448308747860699647138316318140482564222486760583628859505023736538008165292255346736008241724613311446866979738742987800464055937306074994258435716334383817802091312240157959720991024515702426591521886513612608769527111913260420552319507863012722926366851176175416520583024673502214337843372575258571833639912445583722251786155571786406599526649321218990145514006759765525099078318645469375947419317431650002329659670462009423236758920300423660683659671337219167937455439867102442596920110440300182773517516738685661409625037989115515950071346939887696602948799793864868396482297785948107638352514944114302263735178341624537598254329990041775191202633943078053597501595066674500951690659342513273809732275087764072209131818738716659013745278863086155709852234370705011067646802430473017730541772201622147130692550471128937956392056045710018445511168581816844061854543480301697129661975601851425766376700550712581157213732871496566832749453636128343317203629588866106718402047775080897735355090003037319067437714965693919237327323644218478149842136197648013001868830751563288159015034111476007636788776000215611366004656987570552623045687802207211850257820059871177376504806729275577063471671342707370556828280918180686288170019458397529909730773535008174635783294618098026444738842041512938542900631312262732758967405878739244914698937982722305878564426047666842493926423751130755716206461916209194192367012222424510133090096034625930050635557881798910086323175779428778491246492652209626101619799016441936945942611883375848201260399382139764015025534806584199609005346854060818550693328206381621973224006549340272272178201979850084595210221747880676962152533405531141044487939294159425000483704822362472768445896074758247517326227646226710400972851714251779252922338357682446079867388070443557612457027153733166701576240724488313980956751880311392939771118090038894082533604460149758718136397077925463729873388877391164931364466110731468206990769797111891459277103950402271035343039070308639991998921076987789108769835980490116178536501048567232768666447021289165800222395717940443856150820620444378336263501387579389518080014541962621654969495749852393430315121575063073153258107914009924950380823292938396062091808674203255903659838822673036032704957092371890165463627648098403247342367676729418460888391688788343885555121640727655060773223400053253482336236893929635812321509299830375863077733862998386628310991191554226022425680653525957015417705254927193615040917970858059815946691756122176297771186168362021751412046744391254186693800182163369212356289053994467459031494708175997373248908897134926210760740954956041075970791438425274080245396119569125128785646053923571613516401305478033211125489046805554445923714135480620340041338282349551852094002941919371011931320279718762165592113833372520857806737173846667604437836073029979299783156075611333066538491318753729767331334322074715443342183914667509431955246031059730028042719486772845729928348113772287134148471866243727404478193449592054600187535792331884190461508348326632196353806594736588448032714959445053267064187418327981409034262040476204786990297972870844202921053241779860402170335180998003132098556121516180357439184202348572902943991145482479779417929519015414860054294783488564393221896139755918377223609518055802315997839277953586905788096303222274590671154380788602482010965721176332315142112039401167147127495288600301205568843093262921613371338507457551588713945830263252955671627105540879195725187791989510217963630488274338310215893461140739875102991322657383317015699314208923941682863491285904042238191780079058052415145621925751067422819477666538724863549426039949073631170106694520240253112045789562120906224408030496743742469642049072842913720537837992141765243269785377752327608569796343984238808332435036137624912678537821688992318047209842483587886379395068493879319486604198672234102624396924148643961197712249620702751673466078257754567783453042106188713343914633037552392472831332104827206833965860689560255652463888423440439506664033934974812687015422597719663646678849511045306226604868996391583174152683413585384564402203910764096456786905293979163030896615519492907822092203974126553602978533509395736781046138771178899839593313106491210724511711026494302126873293860404895527248632577921530260958357342274754634365842113805366302785935418283962396139722755707100571647431021540922507247679899526343994770772482533062371161333832965049233454350250451037098580156162431746784492338868535760606395657798986724401133377660400299282639501370265154328444393423619764626561385014140762868731752758588583389577751958651622881785457018379708108744708607063140123634619622894484359151271308790241534469255659967169665763523105907424867546667870832198163767960354568908116809092325046126972058758636380482139409193591199288912419974271990779704016670856188752976154093326870873607493765089047991579979567903995475818447870761500284928158377846382274355177719728696676724493596545015374183053623221300187995718056603887603726200290382663527132740144985914902792062786850211678451276425170287363121106949406080591389943020914855017497383994481962177753290465839521610058283732816914308131227326700280487968310323656124669729403961291475484752664271396262011558400721979192255725672715697441007711100630251875319378037492754792155682061227143029190089204417259166647095712394953123497086424356151091763434828035519961661031668448205767774559321232165432709417635808222422649750462525889963852417674485436031804995265902972985633046558544640391936408963328408552456697544440290804658029044267455301597399801853227718553263797466636494543825737901526160300859551760807049544269803468243080655598801465141521264408217778888898192310902659115893083980295279258955988868549357540199685548531136330771285496962617804595483267935094871320010618809273685966494841494433293640562333295699452774184690913594326567993310989136824465962815967451054879020636966099566936202280913562818245220399906927559470563677323835463110166915103729912876280499702427586710542631786556977471993618162583563718399108892323166048581743948365646680573517972090291382827016097550365896883657933259464802071655684643358393592241154409452558004140864897565067996922445705170039368905834306183627306223792312661261548351986643102008116371453339044841044410384239487656523319142533445392378220893477132271021483041565897342667244142028444277746572194460529996778641150218453236216419043620790283546970753409432233786988765433449629357173538343065917723654711243524328969581975959132211291661931736498144904082144878315081957442702399007449542093043081405869778650755898757195794453289820576794682925787141192211011715352584142229677745631744512851722176758113694723100679834070222110001735019863225462638253127478130749213332750028868898393362795356212224584466999902587261025343983915629958793273702019906602886456335723998410413284643745074757097679937794152630280645827984712855339464406718864918486597487228574474160063573495458558326048854964649941551839643222800337255556003349519514905833751645132808654057387105879468374620088521646579723864919148569667639883885047141914854771657098865246945795177613454749374810678632140737483843562793927948718543745674118163683902902079453061301690803080169403165466199415892409358935333975202269135673033025782788164631415419807493695139331922546981526148298554595231015270329396234913685748134558022422794414750835501570677501301675217509104799804406715171589448161733467660295432775042653471541725189357920108385873025375667503664572680288939455025267259279531218166401577382723649278908454940398977795288745136138664949820337673958067027701546943230703646823815699875162718899518422690807045230693496610486229891973323575423646855521501503135432425182134421013958489678168669526380939522503592207967520470800553371006350470626850641712275851636450503794131473928070945382096011458796350979480071830044147083969374979654438781157649128027527256825549585821961878432374733145187749647599593304030678117257405685502013108487527468297419756815229049428499552475700003563021155177159211909933117998637975466577278652618949874856371856681922107557921174888582811192948841859643627918518600388939858345790802280417452047005859006300651992581894841296620046244293650048520602027602973337802737242859810470048921891745221543311142129498357614795483953355715610836999516653830417777892214985845825772957668444902061418089262400090317431779607418881786576965563709107686376562442054878340157517015707801395217679347528664549963556209270423632414552047874637416927807278188937726433329203706269203086510079896091081240006860849861623223811448398868101466109698955565938487206215131475270951426674947395764080057577918594047851907926352639423975056305388081877194675026910946868434772434695339996176688611650427636839604406660003726927481088753205777445346556338537457791454850995619595958900210561872879735459091690670425484709211027647409714004083737796054899726347818184190540165414581634230988013646954986561201657277374422369680910327073712763596516833496586686483959460788182966116631993713649981837227912646124984739495347888089527817058086795525947632499344051206077822283379691687116981561735541672811195745699149210621928082303684135075500826100790876849516482285479314449705996864427692508617272864070641574419081723690084501617795298422155873045124765953985865836565968103255608251659180532134665559620058946454179600157053398849864656719556295084079395983735730756651413778149298191789016127048622798515317860393402839938881973672950749222326628766380555349480571718755169249829290304286036368641981140575738814005399584771046594358917445576718844202543822743890393784741904108510852258306186391642423888630760333582424966622939874808003636641038823427318639574820640389662436628208505241578526526838653607782298949404408577387820092023807788647709234980719496911569307595762006764829626162315421695438762100768137530033092554232089867693544789980808848552011269852727402874311942859214247730557718495247399082713176990785313317596821717078307504313619313262396898489198241755228210945073023569185241114165469133035088997931360034011576019532584845211317737707558026901167636485242425948442700679756729798803732556756342668222795083429787745350172034108024505978716980141683516967109813196492736741589259278742884501511384587391439413526330259327278730380387306689335544756418290604350197116881239388326422474432864342749169257398168424650337928442904497859335423231388725949375259268792661352426357193435629799981077371473335473139318298722193070147827768954486128574474560216000388793926883817235110509251505944270726858023144832861037587046110717772326921596644612399100441634680497320749222905414140123853657631455575477312008062285024477798357253632424543692534003201130819272036800725543153573758338213917591328530427256884782419215950923284015667105416846977159398152313253228974068540009364778701127729322578788904334281177371351619711860789090176398772107298560121145463535851783608183178698612999786555804886797934856870358766900234680461189187808072819679889254629668541637895269765880732230089392567176249025909858168974086885061851256731526859265776368186357720843838576549030506349314256084583534558923855799549386759069582933866813416346590644090161020343252737276454416102170620075486556862719222518225426033029837462194683870143576435479393331279964936197927019472306314582142527607090947827160172473503033859794888673574700423543020192324478974119474712778973110371609659760412050739619943527305922298021207723792250753066318806205184967887903755996813297767959322152400625997575925264320160459878827209633984532976093440704616915436236345628679816078271694193445545351110126768461895669344649616732931791531276508971783280088985400566682602386813738735508679342648561116623198539942993270626206089318906580177695959123151560471950099903735655689995498481376693211534689572900553064285697137554890610117502055197743218844093421875428578848948774529469913907951306224453151473761855884652336649283329888671983242068780660158315465389325628415221991322633866324029952828311946689802642622288837660874061079677091998773154510975350895081939301067259468771592576173054779029038716122598293692013769818350668824530698692724682844775059260768770921903469141366393603329165424597390726452480238405314069582157481715631673808411202390180864618212592059698194464762407019522373607256866420609413849667165389678381996114383233609776591340423086507050017128144752671310145136310707180476082753644559788167118273025218032251421722174753847186375627624359589716340615025819002142341169916172957007098460016538477174051958145179651935534021370675144121024950319369650644412474295910141197821885045782930737017717966730981929629573578615230053594780059954278180197416271937104034884078784539761261942563592425221307508325713113426844335476293297385652820630596344569287840723402630884508792266645917731968095527046541434716474453738681145081244363353957456057445301784697067885979863081756113536808884831936512277301812499052863315056040072818901997083734020620884907331376041384630029350237126251014970586178116215506276149730699748752584506046338441001098504766972270279190649191815997874817564020511228417377972592933977520147485677599379200060416486030370332152757999946102588339819726422906871584050580712029476843832628219281595152358199733536968243094234481735352285065349678777587619020838647063881706396445660869940412461962633506627293494250300055855231871148504248149814095893219684509507787709704981575470510200279561021332213604696854324558873332895331400259358567157805197821821066177638980056831671809735262751492188175057636274543626146021811349736259256076002124099271845342631071203262676458682579579778098807098525927438603862588623112170076808552382013954960864012466600515882344831622741880139514647125607426271003405189153323084996582723934274776653321781398662685351441700722518190874566225733129496285550560172113993341005386331593021881579077408990618107627115830134275157667208865094221938721915963662128586683973105811950491013939539226153023725448209320819526624270263513739686299595539975586532639374756485120563416607111348084527751734532902733909358302958861066606965376959327804757067177469929060382202125310935533007590470704462247748554088637550234204884327391172070363822631677459376369511497088008187313976287470949874726255121027516137966081057863843378640242745005577157797836471480921161934538298268393733046808410326178792776691100987325681383419840474854892475497157119323956189923483282094569853800731352408687833324402659450506413264797893933563563990610679916100011345300001674814902870365513772706080151573751812560095023483714831970039057044159502731392083680220080591101386734932635673230884190294200358442373938424795780599418618042905884772171608154207423447227239609250290637415893657277068793077438418344316581537340647588821802078631639618945938986108971915976680582259268961682456341520845464524793082658917731801387579797088356323397930943488678451910296744162496124667947052005614213033805743047312447673514986368203299171134623865255956354780043760075164725950972369247513085414969606874240484695105422638706314752856107540755599113976925940364571030444882017918181818371291764847190351487635371357515515305851648101895245695702447278607697779853584888991678107978179942921737550452590756155012171875763460174279558967361477978480078911721871864203702328005040660738488565135494097310710020285497574107362457827092099528894633096687123733617021049941115730151950280381532176200508406034537751725548847954676439665002173665909535146832387177724508490780855998837357612272667192794251835325538907581511085521972729402707619207257340077381676622835631922218541540615207687658483723226341780495322615344639936415783786936379383924974297846138230423499590786176376874893031820252133906747114260130633648021824861299506561781479925789928374695556753613080332072903973057070019235300965501140540798458352870561389225624945828681082900765411375624998483876978209365822837161082424215844599387693655189103803834866380849287346517622337704931983449547749067444301539146580009086040157138294480028649148686239539336138125113241642411340336551401725841958683569472944183109185426892448793524154926865254562304746456141175621612501889307833427641827502331645898371150833102171783854364609806217456821169785952472782876149760840762123728296152534594887645408548479889741091718341628800304610684654989789454366049794936817019551852586758262278051360368682753830172242632104040780292777274896998069636032420555544130891474902146537808070117282207209453388231418979299609461849812479255350071955278003267540978353985733584505624999906172544995015514103846602666991444561003575045120407022613633743586080924150146962699727609211393791964873738162489451126484086521110052255252139061137049850203811572664522186174453842795774123413374680638059582035370511442185278003046831403734839063408352639573822366128483365805111704017483487080717203423775217653110969635966805905140560078520248711622410773228666190580125960518261661685942663563491779139808627161746363158015053978195892926298611083068418379867074364685748654651979605029305685747939767470572913167186054047872499517619362148290092882962006665648497961182818877956826125309575396320395274838277600906134808196799007556810587290231341903339137880655086550606135683507722120371856865778397982052329133867553810207187642146038047627291885970228361443936838432335283127449105025690026479353244370834417818111125660358685836021974899686985549780989236062676201401228817326946178197409990626260513875547951557840205789844582354041033210713352297596136516456831417862913383542201019350523958268334984427479727129990270739289776127046415661289147527801903845348600195746301503172818956613794621716641583038299065271164613459489502466035189073294360390736990808157967548913573040097343539513026325901856139715782658708521946444521167722929528725809633984407461533975690996878422248776969487837798197746945608612637415753645595075656051560047682540529142938585432012116851571499999579093574189683177984756344823132710178628408129085846678464729479438467639375080765217474670506168150029338381590082214471084282407401498409474812669531510022781359766759782020509150046760427758274091822105305944241871131357896977954411890809460265429553723487119012351424027975065735099777956994113019205887973548520607142548846560762168416775668859166167653882932318400014916601099793569570443287448920328463217084226191975862592353857351144054613054321672613357913890496152385972896260170546248179739463725662414144745651615803307139091727494025107901259393490833078158804770639397847765015004465289092034295795155598435512608736187467170708410630294502858308530388308078403774675535575130382374303622464129716527424961588849831922410731504282572867593866202303909578215828941478555989081231473371543238517155063193037146409404599850725397759782927289553882824500121491269353785627126954726699239582037774161994629832182665502737506817051811377733973710885702172649519549587702104694909738388482907762861824070626818248407054963775408655630226040085850363406501376841896627309448775248743413406926347122721170941599453497818531649014087140770152184876583593627253670638057818270777401685147737507478975848641930833685963453426626723156839058279404681063058489108864597303953663668969686663506202631307376395461551474467790495739441731637152435038809554918518893699551863651372516418816650559580697931933610808700872311229082730168827620680629419043799939896043296998526639416768480674267384335053617455578081593313735556889040802564401588750303632940234385552291924317194307740035791538998509849551214127025670181308512253816603211737481650431533027542155136701042710896791529073540395354317712635782244469064829459416855418849883444498058642146096732214218310195576084222451241171345214932181669073405791663961013058466167616015310266289377381358345241890584956169166416303504832893003815220579511164943795320353989039897039741440231528525115817538806330396229722642435348244543183651583760997413566135377217561374173708288004799536328914378834344578771993243913270283043820469842446462113167048388332854407378010965231977786625941595619446403754765506032232450916695655631654891754181868871754842579711147027047800846923518805919559330813938076867397612564257239834675021929279844585394452204250709158050925778205523824217161756367412018647686917143002231114412652186366809366801270222909198698125517108448596754772823694225928530601060093118603904120219529750531221230792912110623122459781202824981087242752212608107822801577987612870178058163937298023570604358273220910643550630351644028132196241008754352241731205269922379845366479093575388312136812340353207717140750868025379397946895500619916841955977270957720720723539659437955745504052179580854715183596538876213345554530033871315583354512091839840296248172877554435624872383364171888504267730539758885508435735512189240878344012773341996400554942468514124707231897961896673840231720451558331200380451788479199118720555529391528468097117616217150055131038671758715633335715097575983647881522860377484822541381258839814992403862735202647657003404260091031756017510510473217586878686812002633174533147726775633662854962029544007182643851668024169551561803122747995206902464922416466185515421416680412603129608265778412993182845075724091248596765410783267196940865390146359265108174577698193637072569251615828176470591606231512428401774670453461423756507145751784967122977901873443787267569133261537218163599246368942707893826615161738500059868854446305139948661501431589431463007466093528259261066716545713555609336543340777219042514120448935187142192608674082326388009321081518574735208880954763421922425303293248409958064906899741460580270130185980364673958298762450082653985887497605617089313977261137016070307404377135964352061425846270065268912219597122603127526832465086283715796336465181553145784196129568475630246450145586419456976918407682948793402501576478961885438735686085795037843099762926292110751111815350415591279831198157647072141253905264370600160320357459683538540348442755425458228980075851025636740526772129215423523900000177538408273756587070397512457363425996884407431372183826275280334678958715726674386698773352303105380190561458218355759536190117688407642387457110890121123973308087638526076586900238438414879522745509876145764153307484189423976008822533595310551583349359844014575875754972199549772642078245390616678555740731005524559929033063713635889782734632365202947811303797935754933338482866317083272707765776574370836082005398044859583489372248842335988723484893254468849293514252562201988284008549403158568013619758266208249760147322159192892439129206915625734073623941255473954071455889104133219989506659284986382938619342852259429620427581773988596679824050581197993866385007289864654249574232319688830062097732152079662457160165913085647440855148021291751758390204518696689213869981598884595195771442045296884616532879384220724384142382531401730481714586660647971184792569494816543779487417686407239261423209620094751760950924159548024928097879392714979598995883265701196617471370356662228397381330261345107581903802577119073812182951313419276662339161031924399792501924110162722651669131362928426949784484983205055670950123050188054231835978519008390994864274984060016278475143903900216243222877777732629416740327840877510262356537558509464028251983211353626545872075139573263492785589247570345905164462387090761045281044061331920017287477208305085942508212460746363407051566750602835371528621847220943234573671438300686357458876024656605660118109712773220979079959260445841789197166144739807904119960454372514814744423569182235638510873612738768505553711318432500589934390516381690356920080947823126876251849847872569115513476456321404909013341562310516568037022059080073083244175284473226359326382127080490982108052291478702370230879219277599265679252829212828163098524038521731761910986882215268159729296502071952418374392761226564918602243888259899124375309146020587954531969011666244435910239036672968198499962466671979546235100814767357302630669846961780135732044400352266579481209265605934896386180335249157914960869541037873796940854434623641800339901208228403145685109244785797947479980207068707419552070855838951498611174867210186287599229423570045550614337427404650623912441691481529182416062762218521710510719647051726468873728450890211313311769119575853255266093857241994136251246918709269366490950194233662177754835115146587179808434915772774073088422094112590953252213652465698405219925175354068644311500974071945120298460897638597876353975969816602519603844886257303430888694927261660701104362904811945459231845539202034479296927412417774389633138283559491244705520302022374852818271490817292157290945385794155967619475013579744505458599991255108167734970804006530974449329548521186219204639739131700382227220392682825035027469807225774462281438104420143503719280350414285205567131911961337560548771124271024000422296582371536224428096162184528878995415369852264437415737158084469230595572672641322376615433365692512664311780402410494717319826680156471207170478719982713467980247624613761003476945500194954048309546927433909416053045827787138689246750061515543789677429276164297057239253825163987838218237751018072604639155254260071092118911422242238537872875459741733874033131171211526319284542162837108987315467398674670725795961741747911601709818678872514251695339941173944217282421922547497343081127382229429595779805211714568153037200479334841430008680432657691891956117130549477834627427828412327640020313520774461281118591451779772337622240097982055897729573891428276796650807389329112822749909990606466565685349532112473216035838905113503516216462445408842174858469438574514909319551959657814291932890108294154425520714620715397353307364359719532411482002105014338257543053348503502387149015161963854991716827152656006458535009668612339623044037664314276427611376131134910182139347347749704573685268013060823404085814481963139842330893012443756583977185921854983290776144466890303762617620468593325459421977106943681307845942843297961834967731597871480543173161323354639121736319189088304931941452816625177871558321730109477268141683293564405951047335224472660752683607332837723748538573772204748087975739286175219742446428425108596453407778977844158198725050377925521745666886068926316678924000877448861841543111721809860755268158065034897538017201698235552244725959083454765945035985179670418640535958789024085219807426834736606343785377747604624221159855589973110179404775190546204636522873714271116324084712364707946361475040683905716680451838456313630340371214237962867128497811794697940232144487111829982418680178007548866192969612470517426673655522239170897477712153840616613893087808783387625495720782796673937783382583409411350593505055202341393435054331865225692686896502924434564632906010065096870823481306589419975169337342683030369048218628578724416903128661896462842056915813503969077748506020262749352451248748744085360767851693335579821056126171272533732147452179461048731734361022176289086720621304222292501188930682373475780592513964790484892748778551722294427751773537676588250149977864593267329181436397469979530903645734573391552193658656222896783482467422162115206730985543158563654476559263067751080673093558592241370756748039174054931634079937070993891524124701775016086072061988123159155572796429877232161943135039066651847823191439206732327329821610067360692054761114234059266084714891073110987695068897711651740874699195701102916313401313344261080194048264595987490416357715924866952409697469321714250386650797181970050519403204476282789062857140107234548939057163335173997893359310051265768727827550714106974839996466802365767058291657067412835406036272854682283761722052960336164362090141649273559796017275993885317624455136716846214242653021199931094454386633428381299970461429018922806806507956288589957898792401843355964163209084740555728234172326017674217642717846948057938107156143979241933162732659697592795106565912460683040876397011264090876062752597621337276722323564113953371618138682808153184654300794105064554981510404298931183827830015558739796026862198972339625827976352915372235228453449183228991533591144185971122866467574008511354309967873159576843175295990011831492738891327915003024017576387308570746111037490481764055075659834153183128139316403246277580211664492055973533714952838180099665481049566494779000390718279273196173590620373005862850586457313267735674670535786084184352749600142403668953881242214114723247338067552882368318116012025192436774682950622891181203153935622154156800258345523761658879787342819305860279284261421504386725425576038204577724252321937733815793503760039439789479703202625908781594192503209823170006888158246825439070271582622015701678171714078131706359567984728191454177913254996965575259556992361970387986944517600214008787013746017286787246448446614224746880419451158928061598988096223440898551416524780522740674253736463032460440597780829767398503316577401820241028473258841567140611127761839789550792323416226088194727070582087671065877868126966458050978007778300798184092578333276145670611419774416007671738462372422078673818077875326304214871104406062180443748669939310699132649195428925492429572395193141422885880851140145744298112427884460559989388469419201571611245360527271450489133324653752186862546356799292659305904209759331850702038624045067799820733102353942452688727799674188373662186329239740908855887079211724235065561846649898456747382417388811987530486152335629795577257044418914075457071284475508980293538978003075823577126809824671886076632486753121951844298694770385893958740462468509613056855340752234458923791652982612359160403297338058205121414658059379901273596019247795265262985532950662203444992218621548270920394780189858446261203929276898980391872554634285255226867067852348240684338739846680447075235846357596068505618146907239241802058491921522879075454823282875361138627731755621869432715740882884365391648677762214361302481202729494455638102639209958141240647516540824481808267732247719136066405578784482466362734403843697814870880447365065144683835699744787348630564937162344480658908883191166859758066668474396265716296415253727321042228219730081769608660239540894232982046769472296055465095161276459291185046979152266918214193497105438007230443168961607616019236283699110520802886167763195474426466510365781982054629297451944623534183811621110575078480537638727466662155001535377876921735629280187490459171840169039744705665126128843096018302191509982605437646954886048575429737862208019845916852068039789046836796535680120305197862710677965741873497486674363796532727698132560853782286955053910558274191684184538998797492038397837066395118484233512648041594329351275965959781421565905635799255185293129262207918595158600640703105519951860811242158321283631615239738258617876440079371697030444620718540320712264004119647733848033687188437545011782159422533070684701421456105680412504873328537799557240689286236911013974410626319580396277708934566613258522906448205971863541488133519822832336707874026936826352025172685739012081271779313941981959611109955436253635461189123584980542350030026814733072806480528104045126312974656346144063213187610451606551257739754032745891746692796728980509140747639656878112671778866592314639251143095733304372308966915784883253377493560822701429557577541072096798768781211702436002778695157661161972673127815208284955104562478645397869811785399486232761471716995305967348549325911462159206718665359778076314259896899639211156608603923848492613526785430244376381793541989130353702761512965555351787694564007343516408581023568657695545431478680716308228959786378849678846878665500745885075157517829704117232274691508980948303719485861978791393697475432440843598287990695066618554688499259356556946544576251033890410870491743029592889527076900544171015876693443879969225543585063175361015576096707436663309736411388558316145744883312098606286243201886357702432049060291469278141710311423434864933158107050742130094100159880089255044932390010213558306347395098755438647985894914400853356058559220626249939045217971212485368959066049552276904623437544516659947898072198729299918808379463020256987613115231977349782315517403059614459366279845708944486758186604926867928944048732482040118957947748365098280047869719512437227799483384480089970705054402648625334291060745068214507632843570356585156258532516666718053438269999324334384835529534961480993802220908742173421988551904608973567579815562200414997339272400259225864443181849691081538383903525088985212621915145304048570291623204962078534674338258283328829839746579132868910106146584457733868161021795886119489414066437899064930778380537620478058113909337170612528494334975726858022652769187691248274313340188423246902659143294823522944678718970407538260480733789619934782040845612260687005429491058477810311103851292416006007856943173640952554272036841878185368721776736434294688365960595798956410891786220989585340235275333163602786857396749593354145053561642860296741037773949805513541610385219471185074507705711496007052804258649861280283832585782723012099175700950623839413700446734848175599518108989214946473487864067497906848693285429513585279110963157678205393799215864024501341156652775383759664433428932857334952309018353332495690502267956188150226324737664908047553487936547762676177810040670313581441944544967892449182108999119220026108596450893309027867816412528603098095881978768846243670634489432873241928101922980971593895248680543923021724751665297266608884472692511612053309114142770375825756428704245116474800993087838725402763697651260998132575052958700722099271377838887289100388800159204155878332379983241342895563290804982149164425402447889476928654554531927361611079015378823736972947963965910343648721141867949375144773020830205034927799467171565507080509751160500387792606274392028753716384762077858325917556937402090318059487034967923951159005311151138297913493267460410698792896877963864829287249018238382680100601885774377264634274755285190769001644029061734788099581847470639376120252068868584844206639911753641406584367449150595684833820970485694776089330017909060557145066832927857871524615752467529032515474230499561181342090038464542477328238636947602559977656850628779259685016041504176659372168994215403390654390065716187527711951469644678182864896572591047958818353484523532290371017557754499650295794945674124694649988391061789032599569689719224512466794575040084561594523707123020084916153195942108034051370048978926973851136362120230812422650069525805991101959727120545351874263921776423856717286616854745869579709863713572384700291744670239494983177537240519477493367976019907408242984383216913122617453271040301227400301301357263512711712352125073013129046112154720272271376448095967937065172398604266252217949946807138913276913425187185135807420434238584558222934447139371273263529652523739100491357150671996971930868062862716640557467093130488514906920120999634961557097653155217780930010765372841081451646620496014407780645482849772604283726327574812638129207109749098434250980559178080885211633050529206867453952417429903050160768901180136008483253183584044898883210936479925396462597680592518796775806396539855075986270054265496577333208446541342837241949093042588395069605832671087812944954461285590704090650742376830391610658304242329461887648964643991829167848796684286001568641498174247325020482401425702116001776007283655807796860854429817802050722357651934330758747672210302967885167295709790754129382943631350183213757842252498716616207377910396241780433560143548289094169813084720216280470674465307816491230803963900626888606556769075320095266700156872754526028448626176958602229818032931592889267173797459674419748711067638286250581531033116808457923215425100953658551626134190040182443085420453779134738641860802665775767666062404485078961333494728960167586963521955649464975215614783745990802963576705399069977361218906337256353665230097026892533322207402440880467539657351516666502521541595677792758349722599246349312140466671342252944796905055843979436344596567465840211805814616843881001541158322915570802974757806460329390863709074116378859848889151040886560570487281649061675188351865999789351531019995307925635237939326863253464747367854352048292646759380555395619963771025760406696989034228060216515811980331828826101544711908279593962969013430286498302221934873813506940811764106405712933625221774902840505281357245558856074705338083530444427942511303574103107300584909665324494401829886349081782079546742360023704517361059886901489733325512065728948891571288886283701858136580647812729123137050949809806285046672502683365488695872861530403555020151131588974860429885694650167459879881025198999336729221084493051941234764211744159421140081631583586012669452311040012812435145348651156433962090444414321015954020305481851835203458055253534099481226663629762743699036036302332967055339982666716619944903823029520195067406305331961807742489719417359703198675628313423144002068668968487597816628647176494022834909259796572758655654944550532576833412090553330987465025270625902791957314329751742304122468053067326895781451747343894578860591328509088936323341943028404800881237788600405978041500079787218226788826075293247243386697211519008740764341535184771261818176992077499932887378138926019608215109378738490819017338390528327713127677569173070144905609698929041132713281083841847893201657074714294514660189465113336591059161225900475926370137248713289449088022054416803742573451148694090428152355070381175784586855343424596583925303962383849731612875064218425186190349590175696537016090408672312028130571535977834639694380160086656362758113141048577556819612192802301354014810418079763669007913741163950120767015158539187931928947049779428313639690070328105626369306224447971734600799735648246956750654867395761403532158421959180221360603211668578485415672116797702846453678813925193575625084721908404835934256994872170331411090525162000484857436664148699564945260859526479047620202680237027055523987825128340730037061441108192102852730997279363748508946280817203700202936186872897130723913672947469050207963469331496712475740237154319789582507530261507489411183950059796343909176951958049179362574019688770664935906332716970844632720293913832078988258198295675760907633382657359940415972359756726554741849354760178671255329935926171921970639446171656786892093228951333613076302478946826865359628448409850107800798292065199959751921570736569499648082350927598871172131798855171243133586426161502458000441768723209815708672252494613985304763832303530734431122491953792774749604971898866261256204092243596200164845162669906570545169866180939166383733368238745984828095164137113581679449638426415140963228656173050237493623551301817579000886376394945306804805498960784830488289499219196979739157359979181393598951364851102998228640115535875056633779638233284410313141648979587204635447471034693346974803617534970673647216586523777256332266244888849337893705877333598152534414638438943671859548002245105710290745803179454317921880411805084160053587024115190374677896741408476344006051651290905242421238951309506621014264609483679177976594617497544564052354453112977225193209925487077557311104535310390783284053552238624740679751377492317488152524970257653029575078031452501189434864325260341427521292554138842956203433366626899048881954181020514723021525055417747708100910682040407269065556887590481437852363619733546156150454227524006709552021991686997427470711965763860959991005397279241865348697686988052038284870544971913035702434203300698092647828627048626391445323213587122881137045306949310919483707611678113244971537935081468754410715127389866072446289707101665948173372862709940598984686134758361099824940116580551570838904798661162030489000480231982464766964360333960970804674798835151713143586205974393138738397198804844268391207947816764741923037163326370813859780016226939766582697018493749834866306917526704058795005124784251973563911291840750866422352307018791795157622480021591008673129972469135466327395448014959106259485783359095747515049839893631979843866408940115196680532505356938559474219577679664164082625243656844912803293441197742126105927298654656576975825605958301813601120741823642945173493894488628007005560647622937504583916822149495892708299692548507574798855530368304973932918543390764124436257427115919195536877965979105994179120385203666123828180838447258538521476087964700506758896739261191055719286320497999484921560721960531526559354209887053860016931314941970538623399969967694348302322049855077202735147367393756086359024324014989879047235696822097793610974643966683718335176201553652201440934034204791653135609667017588548698052878081549737599076006577292997549679416139722987337212918199584269865404108004317419361230938435306599196913942279802586298922109176870612784359836033211375830409883208487260388420883162775384857579509179060398650169400872978308645822067611482383466399277920890524717577682416021874325910882009057192810615423574234499512721259225094977398435867744924736428952159284199905846146371783615301135483318936893042916205282754749388360630186900354429532057669487241798409351788804736370125389624606535752736729895782951596598682341378130463024678529458347313224933490590733538073215438511367936951206317178107248497140605941648720944341437254725415730939857775715490675785735714455062763036368722215189217548193582580846261733733531770480219640257216016517661343803202363689877534516325255601965713015127285530203469510951919615656589613319545611425819122559174125593340070390860453091052162105186477323442000170191303149310694495177023293121380015571828106169410042328616944250869505342747899165521617654092540224661621989025414123869192367089429947199201515955293464695143198518158782968670852889531333434017371525152221882124992367339416687571334792184777725587623390315270465673122088542823165990586935706490859693030864500863210830946987120762338596388808344197619443367830737709888227089346789713104817726259138820697571851203655917673710451103307288539552053266189982473181088018074253423179818724310914295457818846389762991749041212385329530186893657125567191959596428060938151193216060343474053234306744432541545088691754733722712395319367180761735756600965045784788754439768894540337918087919210606100113442562649821848200583249370728018859014863843060555824184920018262518563203362112662586929312844560753281352479063165556951496633849632536074041927139597847539221444195500037906456734666251902919739093310061281607244417295324645602228127677514019618332621191171080954026107254624256080045521710211245596127849229204402632155916340091052626242322795176692828692472635502649506160083949535232505708853217327544040043174010825609461311758134941554022873963021633246321403139435037814319479124409456641440591869379754825752846133324640369364350634214320215677379354245397483719781120097806121453313159374650907395596505169181333639734416792728746184665487058609636082179036669363849647524110665351068354255883591591474892649644649989622814595276963472391067388061374783877460722789388905966364628762758439025599875648079723308610272645667852533109774250191032121485238748387202992918567998363417463459996028009180090891004760854951401432850353495802736582972057999272004486502219199585867998585332139293817043416188577622385876547612560292178179651959534103848914179640225575078148943260180276003548705299357109808997052281542462514945770076470947037593323813838474211683478007939705202769698250422576173180387479046659774979408231070477397815361351157912498860433771499377960895105593439802557693279374639202114648169304623408572597087232576799678558141785651971431571403339987479603253551777322677863180919162000220840908285427610782208831119392840703060757561947156036117405542306616431096259404588933588184271177120284512405581940131375935239996680514994861915382004769615255784290265069085005238442010480200593187625996733834197104275310762669886864609878896360600091902530072883819882361471160542201035017795613553208660471965259484073766602152028941434975886177687036193765005496113067966180745523671461790685873056901080120355798974716939426538615428907654019261923908962314381597124948342126332855886579049066234602518222419845292420923349243842134604060173179928011284682212996955519633424049451743511399085546710045829683484101707238808884923223007872045475009299882624598113642963137860616940774673334847440011044620354712322388905719255488400885524148308137383601730253527873131916237597921150190498138113722516772293864215114166892475542459929119946708107731492546182143665969539413127590204023583214299274223133389660725932281298239639049295336351066751962926775145187515059230705123440455935535038422387834586029853625056137729423320299420091198880743268962848023141868648875545751545090011639747260876269822762732202798131116233253907132508058265270863069028455063480407760059060332880842041464028270130730073409705869480707419497031154641384221353383347723552279141796434130908746871410567901996203858470220325218601575236598940299886399066653589983870652162094240421565910672162948192684945261029036655606329888774574530247458673764928588945153153903338470203046163980516095565693680173447340543774604627590586058442857706764130221532259580569006124364628083272378710571109138943123365828721401885134044352091243796671769081775532396236016911415277668616137391907059963207099340660164698913781119068122428356909270273063833700411367919202566795353733997001861458624913222733918503226588969095440335906373606233047962783142168249496781040235767688502553007530651540451371760826918480404428473483216968060060433413422622351854397872773632571235395053780280341968932143266735837790706810133550680218298189762092719177593743605313838829010532158170053409164496056044164220675127011932978214216345731959921130150393185264744113548239638939174685134865811656836760981774998885746319367430492533393193355128313051628186839215119574814211241626958185798124058253532207712338565914092725453455415744704796222239338532171918954005475547225416560627689769086141796553267282212851563293239467763112970648241190510778606861033316647954155856033366388896432422983099474414755334937702931533195594562724719890176779335424969746073285074890017841144602803984045856647347979865477633206190671143984012409576241011593014355129763892581023263074266146055895436210666116888919775891428221255989132741574015373314654993948106907208707725656907671101819906036928251567087778620900951864716535957716866674625554189271554273691797006545113570765283242139747073825438969263372775793254965519751513867993437762683808258315184835319756079269734932596466441881672245187568023936027047881437536959476940918400059296897206574803410495130096900533149291443990664034123958524418608087983416665444021821129746530136810141362637743949678885952827660878208927826490674030654217203292901908034943915574583115682042427217273836401825481037466712491556145466568157896387752174293457708357454520894004077704167638063853087512101475779072567099851134155816972008136404114784534882309424363607991573964209004598015556881923993534043953463375703770944792274400044325135442179058897005717479237734213999693708536962059740390654694811607401091464619863677070796394455203936573086516746258632643560568832701083094996053104851460782318707726664021228180214262604085344140434936629998163832321695011571465038099251920897406309654265322211328691822367007469134862514829744587112096081525244660485563210391249954209065013256256397713271229152726310748297106398572518920585632945755810125243160731823037645128037935296802022636683926331048823073754936648894864538420099734679566594768599389545733891049977399725543831333989860489932569688382615398943125876910579188832767902999267493187544967571817492537519048334236474137665053477135384450622959749580365847318676240288919866601000119692373997149277935494753656991502893190980295857854299671297946015573220518590261291651278803176205491915889862226015838476252257841061905731387765749442770880607328006010783466077174519734330270554014559306018167686754365157072568936178170031601702918782301386186871419151343406113433871690949980555966940245812065514865310405741951931723274964570056900237831025689239465491439562499641910931049028333344718697340425104181602404615060465245254765404008937025982312891578132466171823404408286218831354368420984559073846887594045216612354394712207428429452034632503427016553821933570230451022912516987857263737942839705594662503526482231291487660675083694942625042686185916223376201897995050326438320485470391575423172900955074079688807336962830006997228724839863639939407815164462249086139462194405763044435657729541565050089847080094799559745727134248578060495487625224841279370074456235573508108327613052665615617348215169846460011748365544384501569269758628862646797307015433278083393300488826933298407959252843529382274168120027823759114445838411182908739920743077721198739799870302523978833155074372240265839178597605723217212986908315069518072256878764832012620423449696600192826152897995392879778315097264354420708459611146154496985734055360126938467818010414489713050466848598941704058229035392355283450378407822281358682859327815363718290003747377493512432082695778754213948595927461594420204847678559531959794370756259004321232741896345262786862234413705268535197839026632439748247422691121410086765120754706328169627443432822272023491309228647983131506808161504779288562397156856112073380052470977155546891678196558815152733133287895128302403946341667009188145127061280570105477677487221656488049068959699270650947586504720783376907384654478154277900700476308311445777949136132440638524160630672830013371493138906034975096864696231777418189119309675820232605959038581959050766743027402559626440797920417210392781554585648166717744156787456741488131453586172711368758013908204197936497696481755954448836258755733658351551506236920309092361332923430323994175231658503118766815526689828317188679859880987339355200947739528548585749540796618836741223832820918149652841488683883932985293655238857030746555963181243119545670818486108297835255729502491685861972092009191229006631922647345821500584808273948098885296904356834166038175460497132353876851504271464241393993490737225358718807271273571461437365441580241758056290841398871464680690215919867679986753859993205552121092375037207805868218078899273882973630868412385438946822518287219881150908919843635180252921784584254408654594697012945492214478407877472020903005497544779678897884198410334861973976238536497075259968085705122939164190827922667267328896723517420932493326851532585963648806799952974423903418007568134202604528803298147718024984496876598781863646584522798575667410025468024437697874887446067257832698048102051154745049311490861833705030492394811862581199464589065716162822107061166504607307557564410126879127873160995583884942415954938507964034976850314706339118584902769218544346130903158332371013111275352547756028037587042044998016869733777565389141729423925819640836510279444104799199309515744343486591065746022305430141630798155994277462317106382848968041830187261462147450838206294148281064309233071299093513774740027858262146327768321607248409421298750625116908911818779110934227579621448115062463511169685097135841555007714739528323750190375206307334988887976727350264599072583220114522249091848890934252679179745128064905185385118760543494056848534940123189179681032517297930304824342145547245618631589747088901388820894080955378560362913575463561216799924442136833061395192670411584972389359640676327886846008100921991893766193301334185081078483442881571537377280551385085593082495680745605386004485976748108673298639035656956853362717423071564478660358410100973739442375092122527816830712378289114730316184598757558827793566568912927219480326535657056910145254191964391996758353933344556515339003265644966331158497206242665601621076383629019770039685040652977910803898649109771923258345763951804296611909893803931286177714995050825910787583157938562999276682413985305863695771868250242897495429175306583658402524893638295054944447577581375228640832128908008330016284768317744257559822751756106919089674068525714525078972947897210902159307173350443793090071779389071482833125449415651739183519051793623501788487529176754249083489125539457703216821419774691824352601796741990470961046374613533759596863749492036288561206961842709530052403485971478597153430738009071575999796320619140893770837203191076241604753007080986803487317766745307557626569984869131232853595056777665448766933778517216957471418245188225325379369095953279453153863716068498407294731205230606599013652823145715449923740735804695719434956888951845402599140515287002150924249735300447980934021634118549320108910392972043095342798650480003651036711424177048776713653939576904517423806902427947376200557254697986976675178240483243962031416503786234311509043723969614039338908898449615176573412764538366893363136413443599029385710899948533836968676557941025377293309635928183603588282965488072679478636791400533439354312474433715359917681915683058747995143269342944363963604275238186630217181141324650662445738716530055196557784970914903071195549008517810152797994148348513320749199474035426182503635993131233463096856086798125639480845834447315159024039373141732960274870599709894565592827537285069586687650891214777225008882432760684625565896652681673703752528672258006659518482427881948947099572843980618416188136475949058706325643211191774490639810606916458663242648766331512733979829658288414207219685811318873999615109339187950807066049281169072857300345698218342416608179877844691996945996725635851273220272508853517439706299685490218403220469784625158236251102788435929838467581053792594816322114349206244111435311698638687368234000083515804696530489612531432871368664384871798644068063362736590614409272863972012740304996716934097919755877372863355100129810993826765152054349401988871643878031245206838032381892483818053228343952515825073269564249026294730524708154804631447049214051655989591001319050433000705555775147221910668591197761021178621104649090417934024886565735731221954448549680779373767711606153940989815247650472264811244842677542319205269132881872341845432788376235375981422512712480945685423254916230218541502644453902238337867258951114047848894742367836172468142023408465292253293757492414170363405065972110458879134655379924785704878329875397883252667275998919675538738703506896074299679307849330791831851309872121790100284595087356598985880151748924292831232587336219141378057602315339755948853526359079172149989599967240760501099496249029992852421134358213257852698780214766390194839800436564488967282866045753246179182742666276520707243902989524571645974092298508232677093953205397875978143196098908228303764156269345340073232740055203628971630242678754115539736020243065789156707692721697977294900329496557282855915035533818464165243817016145046853601962730017266966962509364021682470584333299614604845923735285897891844491658501359564340376741597862995223818039273808666609899843118471440260788036840313169463662838861142048771240474978265260008634414582503567625440705388670666229114032217610380189005827999693315864953142676331693543616265559829067040213174905117004916833401655756440888081736189186046955404878901725284413927195246767003180987668092434925904725674747000956318512146259384952617430232481805195538296714300466182643666577465020913904858667810657362883488861269912972527405011657230613062314458475515084597350016363092772360563021064899304888463163131849342523287399789952496812761561473275282450323512550026591530091937786840294201133366408785581363574859432122423757494690719176638103117697374434614875919158495292651278870181788968827079331968901299547631002214019490710421908092287168813561926725577216414734785586552432286073478280487087457535760956300165707894470744693892640173720389983095181465993514086308380985601943996924180036784741031630240346747939942959374663688306153192908252177275377739687018356172874181032719924227147441992532775924400605134077764663727999552232890913970751840072125787079864917570071276711928323386606706970395626993390364187464195827136052419373704888969834838663838147156762111714481295384300182181833011579191835433381425048984302636006989983997304873541091980400280447390189118781996209110096345861880114076807125640230925820534775697643547694065985673242700497536887811067205932577753737010970771764877382427685587492697169968632618822498982371002399466074169292858366309663158967086249407500190732930739186367177373268400148548092751253252283593920121358310300012315072803571982196925744702096534776434830244067341449255777210081927303341858060808905664789818045316756645694297840672236979485283648127909273359197266770668054315665133786234552579355371010552325011721656214129854862635647900213729620948117562443557993206168091668460145495963778699767789385149435545468709987217244191668762678345607560459128675214756225928818331779351386667427806901196883260095486446592566709919149723996160289832152295212264621577476601455043132856469241111273223129256101573525472081226236977948374181431624168825353813855613324687380959898745726791660281574888879962096348212994581032045390280051176616314044748482969888745093798782722530936347058179411224390337353906441916209904788286052528287443853917243395690738012271730725809411175893528431437992441099339863119133914546360401391127519822499627051650830183244912527278889107536546539669714903272117162454793820425585775666291101175196498475427653517221774277522193138462722884361849459047018942819289029596950065714904139759780299868407180659372279689831468281341848961146162457815080758757344682755824656808864809546045140164357753083023363410115829384199605285782628071365775686132638880044882191330230495614927504412650893720017416763272982288293028226736499597327657226330715032242266291785284004091005120655359539722924178411644728781019665629219389097358920389586328039074517601625950348310777595359913594891855076675543347045193781006981192672259445538091075802444451949085955750851300950410512391365078028240795581937766489055774037283689893208100150656748158895146823732062134862707275370027747503032351999209507329266214073415381996002283011097622721648726550326509020908444693326288153227658349179970545253754958235281224215487701248355457561361738655227302764020719373157343097735787148379397751859935578613921140186239067541086804506030965633576677437347184449979278077398673937122515911365552187518423328755903635514747523112972677194322371303704801802945203706616309406979462266996323588805893279948721490266964711644135669640117090515184825279328614244440666587120298410161615463492787093628496363424378596555899768208711908298918156263799443765361987630361679205769662758460920482394268243354123403081874992648198345097186253949124995702291487080534363125987521496361849199909872371801875132881022549174423475848888402369475336070059054626526117659647609914134831634602106180319688650443635190365669264931473794027030225624177130173948818047115561690571588262769666103150193809376704278803359710969641631442899361417975291136742226483761533915675279776590964907120429252694540815858405716022321292880729807859434151603904605100963498460467107417689078174953916539661748207940021387903029237222798109136889466138494206420311150340329381125706572620491730818353848099542596213436400784215606818551228035323987542258251171427426618246168120952855456938080527981803208192851905017468774324825257057761229144084134476254694990244148032727304700212403367595834423270129685012143381963246465539998514793029469180804951395418662717628353621301965326867646449333422141932562538411181453775094615926178270573158247302042328569680533034577531517841695777812261592319723796005909970152770618448384904535601123575273031218408875475082891846117955673398731746098436107618767041156224776031985151584091841934412269882324018756402751859361752154085971916982202760413935932802631644045457250196462674440247454919787434256732965515307429528061239449306731866699361676237911787972600621872064047391746186378842905927857157214147582962147888068981227078285526687598780225033053449482835631436914730914488876818670591457425911740953177331488200206958408052745061850647727339921723736016878586796146611285239173680676113395773491174804181772402951425745597932346625582655538587004066863823489151438633581611597517799204812568318534886163508569864829295724485647782795461846993714514395095102060749319486872537238999570046186295266524294063015380566012357470437986385283516903925899254821671486651078242200191540011570465537432340833264473503721196285703286022497015882164140248660603752847435841430267237813409922490565440772398760467006357399250139182989642149980266003985103087580124871680480534837252559647785804445127865531015989630986753250756354121283178512773133719655601614687287356502058890403071490839900723026517503343632138952866604796797146651224138295785744494851371104306753244384756579288846767654509069351378451661965363863878326446584136647988224544151380167568484069065905364466161114456983045700384995443935713967259335706663126589191439295245258871272751690902790950405579327543203135937452179177918240278743179366488889673915437635375121176021692547931902710197377666341539531031891738785064043267954282119699160278319912768106082205119083290270214178584526391450371336716732842597367227581758439031944135355276119231642706870462691145337246609310145792334881446634113731402351740582886989973716592706932943195212927070538858030192961072603072409411986738233263559110361707564202885680560063667004457619793420117189864431040982710476672196654475330010863271240971062523382856073839244527164047459132166233156685013764313805732147965996943381354851119515047153160204795569874700398367754050408473620077016516831765928143064062435913429423517718625731278333333550893292248741689601553367714047011181398248394500807801995865155022377250551582409038707850045678447946669311894680962682269042514000373515686858591892359037622982671724124240248419000210870605418869189249349867724827688857547394868978309675743085766440258092659706576518707653493185786312434247103980944613237362973371995115695895014851108629152715893539722930212602117903128170175603760345113529960179643218114415956814394710960729705969029857104909268740490586825440670710893766005893708655185828261839233976170935678991212034467119087993199989207199577441115275699436374817036105862254389311877197659736255128496456541310636572626966704585618389242123948303300231470683018442383390279388560865633823547901728836417586146978160854643727337284071676202812560363653689419165050108431684722848306390064905644547384815196494496020695160952993050662985298389938154961495180385391677067375382834321447776369478213201409347175920986775268107732037986012131710895765133704059647059535561370213418295264365762009834482927051010743600004434876754646784931102287027876830173159214917614879333486689119446827392528329068407223645258093662803646530602209198464806610190254574277571503721346421871672283118104275945982780763359081082310042997926807130098481006804051647443448907960758850535833749576361434420964089725373376358221729846391989536144926053399761599028308218686358368818153338379902521862192222914778856602184701979679187227325659698675127239430179123542627370320080590978201569704554828024506537401558751823526780418460467101428876849602678779244231527933104339615276480988978629728987948157039459799192894194879470547644003198553964421163133423174688845345926501516957346847800713898026025105794491149519459012127033301015610346301735879987087467459207154240303687230200294933339113742799415978027635895234478117142489174384600998304343790054015010238064881812747926496266943477655846552452831660614242765967486213826745828912999969601965913551136095316638585541339547820215186025204818682222098076347811506091288177688825550294391254061656337163628716541302947726223244652836729920913357016226222836783619235999656293338710967796199293906246629668717018147849668348551546330277810793528735650349002556685433054079443415611922296964275035400371673855778724458438433481745600093146529274462942505975205601266279747236667931879268535248927607020113366467011672891297152953145564508859804483944842808533332288883676069400805965901479533600672632404311360233070137795139463289734972190867230380982469244842835738068088281735807386684727786398228374335705938402712486808156118335498923819226779415929633355153114604047140172552860493779026335089399927214775201297612674532041026908120513621379942969965692444581391739624461155312230189224568110074928883129005375474003994164649418353234370673161898710941960191689134264012043020755093002256796298866339939377198544419086102374928910018615568525898918349185409843384311868121364757189905836790064121574466498595540079348195010291357338254224322784968179726131712096829489788374800350611054466895652006440996027948410119183125765950413868631513657241233820664304862596462604668363646985426641792963861806112620747513646489634747930887008155953935111319300215809027503779595804185957359011301753245951334379755377549046774045828435849739630692802327683362680536603723362203402106638823937450855346131521070601062769390746344041264743030855634881599704335128190122035438225331777624089599657920256656865156908483982676007173706368588766720103580845030435721021127177509447682256036508865401944439650604742733763636438242546173054046818879360339889576802048903573940672553936692329221590115131721897957117095514560061122728289106287797865143522788086758064787508940627711895741261698924711235884022580243147258516607841977682026483737897131800379410065088660627156052261983781490047881340333887200881678110202515631138480461617747109131540859335053951311108179890010552395412084564662594121801771530879313339700068551739574969779469932961098093372850617525825682156262578180053002578566982122800287532456698014661129199481120308206299574095000580539366292405903947167694309230130756265461732416399046990876251329437929188134221815836813122066472547734174630452495552308297070123610855816485593895108518000191661413293099823041020572676035004648821809993544209304627109431135341448741853320365987314072498716476927412451190478990756972676926718362287320560636025854511061525575627100765930799743996684535916594680393059600287875184951024322164462847995532525362440496148230935895617010905671654937595569548273589006633073210301447543353777926277830442133272238361575998811545688290904898300340777807057375219696333461722427933231675335624792810832687026820362568644849735903128330637457088870447880466697052783306771862268815698139970344422713965876592679087913797557707918260478041389743672289142931930288699651832681721087021623741621731826660465634749759117381802175294164736990396739924299246097252684335748898772570770075541056056779896600615467766899447086951106156131279292498210515157562244617626527349000876235364569831355933691406493851235679712361536937265845466829160012794680749930674971192721529414264510802419153676269019026503172194087750714756270844306837257707411801152959788535072689766410817408588503842626138292103976746264495871164078267376671364993069811818830069506819294371791390536067326997948152857079323318864233308498681949517269902204564051132544118608665226479625452452754519746487210533638283368490294827954435901920629628932233172968694956273829011725212458012845493919766598082488803349250574955893571492018560630330987827417447083020829875880086045791942843366193257406563606955935846975036120756557489305015591770874584909917477045892246427607646795300646467614323243809257912526103027144864105516568194563587643574564682558723504013305847977716813391649340233239283742162455807607789034298420423614531049192221737069687503896912569166079540821280185396570181795156497902658720760771407727896672523209896413970800046155009688203365886864059916871447171679604572201364487738272430248402210278778025339557043743285447709106794020890184112284743496509968917654235296764483756440549320025693305310158721945775002023696772749423945770170466051543480822051341353868948213482390736213538548940298726990900973606613294628123507201055376760249572414083742274566919868160673120358797006014976863886550432274759135593582004377218846471130518190568685793982723436331124498982803196550771969649617012862659005365662753778606317615356530769148064865919470221459590064996611241003947798127397668494653648555610018607398392190442241324568785563731465625817838846508755316092442850995935457872388991898919391919252974739189632097970859283941641274317864012487635619597511498951137356640339461731954697731497851116004116309187802954486636066264312905033484317838809786380175442203218561273293196169463621582320012537298829847997087030332782546801741082862460044362832083438999420601821773786789514038105244888032330753488646292226972344551573753994893470829492471552233260033498679796489416119671692502280950982857841691950248339723673447827669476690294820169262004705972359428138360339373032042361488839333371685123510607665048039577071112875520688041474248496812215597676548666519043579112954661942757096843054283671076355444174794345131729991174395047179119202560643109133517404249283251874418356685639086794144103583255066880747506967190591734858250883666168280558187489445793641502769846915116936081239349701095975734218221025881682573706904135377387012142923741216491175028960257569624650710248735396940430414714558177543332903290379412879486585720030439601105247599023208803240112445501931434512908126512516372882189670673830662485655063397559062007398037718445950157020118956271572979720351216750436446543142251387093264643533900265574899138053817213424750059544954794587032257839803929105614828683851493950286431626723461965665390515282280078919330709684255654079508952704007584023905567288670503968903718718637698873649963413811601937918595706689688216954224763968704942776805626440487708246717384347743855096427907059134463228977480095284094933571851823414939632943258345104485310011615901199795375168158434314141389112512068610652577948616951794906370233408876490385422995505720908227438712898687380162781523415655573262565072616543198284281596791643038476668576813620402191688496821431421549252071509685701355757132921846261409935218187255526539898070817547184896840276391782301970431424719928050825953451791242717037109593003617855614003436714076842481401737265672752127695943100819067232624965882107719865599927764771254674504944586045796456670003886705214687046286533467211909730427234304006720439747538518926024264424214483791992537709115173054124914117920801705298586766387497174714166762155125269533741548821682767122717773955046425878214984269695647841145793579310729745904740072865801399130227312232135099622060352580165167279968674607513166821036877737004043639832281958406386348406554523254436603589682814892953364017123307883165250849306730558646720575215244629326262283615458126927362664378041376087249423856537138669530361489974933706993805169471034207271266512110771614902366556298021622830374256600779330142354320832507546135844098340225610201885867648205463948152321985989305188698937704899972752625268936904206901752770700449044889187091279950239122271412788218530392352298369278649106320998418602489952704914920317609397955219794683659859805453016006911193715872028448983082666857274577980085042495099991467197343490729641442280831515271007400435790108980814890391819866918920527739873433637351576302844742878718414145114502076145799844030865653378212750571600038934339181903039670798355511625260587154426295856499795446312134948124103381087822792060060987517305373157973831065413401802548567690985623555499817015408846051853333021854685369871630734546502295974032173604400957848254591113517316056976919589752327226553689714590141273841652827154930555817772499698303436313019467823021881333263025072348986814944257290307861387031490509024456668248707030760503404834273590799844210213095556122184167509783875834919502770795113812877612604836395835254563463922669647908403388106284001385711548999198293168218034893265337185807978160633916727742273217211602157173952992141549399960105532063604301040611538330158032520419566591797757644701795642973891873578136818198319272880651571964570655577358594257824075700166842716430275059174125553731324983553964864313611106875272767035237245561591741571714976197200901994368534416308646560821987163609223496217734315726097724894518020044752464427218764599012197005716090586948832603778701080148761034135751870675815855720514666750093767539996276580038567005709423678720093298427422996100578949384052521081188450722997594741465592791573855688597174770998026619280192234952000594328641376928368968097638585782954404235570361459798248318757438481473743385126009594056623741889820453187170890335241773648982467346425463211886364788724045467310256453128128690491049945884198241873577947323265547674096549300688685051000248757793220664293027039415604932123827810884158357430870670017702329434694836589266131349663982182916702902096060443712566406621488535228159391908358560081907606679712835470073053795475492249940131010411845547761204742367545092906999109972121396927780035382355618576352466666810699473106153450606103672452456110320464286533838368376919515479269810707955101118451522314888057395919083518864877152702663492335690692089759822650008576694072087118944088947120044161566559518415887566614605486992461149787935826346410401082216533309941802824200337725414652865194591119687948219651995675405656867758902062281316297222534775027303460596934512660261979720387872250142032125300446154989074802192933471552656159710836378800462852318380865341004707273070804709809744821797893242067823622934837959383753453666619300563370217624057480581973766702389745524259232593900852074027291693483475425419310294369008321725035240188683447071266257610589999029678887157585430961234581266166665169102699915416056286395724824625182518206591750030160941119654616357285490388647481263916297488805344610199026840754655913982802703313633005204222899699100155072922736733367592521700603909173680277765832127682897763860088554881763574936125414654258522627268540670384443283927564891199643546140330052262782003121229454232177158290763086001257721522683751660974603890823288777436907343374144849770800228384822582911777997183124792023182228559874147659691542007364729361161518844522607477030324682989745276079134508241848009273928315044273250632554206060513585908988707897598822281814600907332993398306601487323757249375072448471056912019693087572944088126387302937976441793335140823083372294108265745403571523586248765081433285486118614209379518616657490941220991171420054418379810505673549466780419052638717482797566230788871016853623556848837895563807801230575813485634220453697666696604826938709777959765101159387900699472458863751861628977496172992238350799569927449921069421070480796984069246613414201805104360201473382135068781517999487792365118725573049141614434628575494723777383955712883203922683547906776301677245652951854945164971167189654112481094244961350475543856715136670924991474329864371465035519679508194365326542203516142189249582113842924352897790565632757752271874362377047587262564371312944478554371426230716616934340912856346657538144561086084488996173870194431972386227858046559025403282057757241763027932972808825261800578095915083150916114025841247186916032732213472652368510889685782576914222829573562098097938104703630686255237719692779502006212657064114307703934912858902130124470341728140739255021035802970886514182425896288208248549112378052541571690254034485616450783802229783349556246395750251947621980899905071864890169052905487818212960969551098380202819011952172357627878235401787007186121555205495098142493233566918105178133047018352394410966424932036239253888340302587752599429838902732747668059250233406116970809329345958327174541414530423786630037674112745842424639192470651629682931685027778654753671204440632979018143142879747377321288748720088206140595028160179492399110007211528738786642607095848760526581101972818902607931766236970395151025146003210101582984704041935739626015441048980131492205491962147897827685552444859807068991662539823035086910338355428056057109598562241117918971387173259090851111247726387341104102708329642343015595103180342852014822438001742253224207440995481558949830289799138486645657442754004751920881901971479172787166765080529079443429249173980694151707883167470735214363265522863088278802065438112103138003049158173444886887775170009511250460706808923600898927107081342929323506283603932739606866146705972671355677603814281063483155143036105218529376217293049526629917225715853507619835281280427652733412589855749216279295927559428465376692594265475594597575091106281478927489377639078136332609027695881931567376097712851159297960885111564946288066699420974496053178489398250739067449645048761873830619210137215868098157233286381562885265788770202956632756767256766871799682863726854026603165352421868058559658354920278291676530646159230261418983600166260842562133232788147091516518230262586518017566021655773032396981294657267875546817815169181988473538124508492481783317903673455027897755807183548576976114416488916857684832057454689320567431642952049161186492825516223341561496561157450394165938847005874981222504322634908243819923740654683116339315867843020045237492117310409161253384743022477821356394815572153996788386647623632700642971414067507082788679901327157018426367857788295290372220733883901146037317343322976483079317967620598846695260209637118370556725837554337741262953024757937695018650458316290561427350555631371691344483842486435458064769315470462195072255152233829704320716829347723171399892664647561701575549458852619432727980305299053074765066390621388449474026380345768796231043216443502903058122548801550945595035386586756160257976501969881107201888806089655185617767685538858580055480197591476085023183290312783504100206283104900018051593965792158386197434285888752208961597617889121178838378177575265983387926827289933006497029372285705328282064806887895335567004746746046715406509092514549281226982791346786576069324712960631217804465439819776106183594148451606958260726231419048297981088243529523722916295365052279127526940380717039912976826172561974924716427430330071715874701639040907243332020426854967332220115468636628809439089374532434634917683304481662072030804633811272455307981060968663791611927028214164592600134001297490709961062257567221593802787686230617405553333481087375316823342303962191643669897731085989465401605038459894533489461053366638603345965446734743929723171492727690803005203382759577118146351288346667278631250818588259121768434790595825837403159945734700177657942862279832735791644307039950520117240013268315465200915463950281620730304618200387039135986834433277106513804824506342141225421120320933431297708374829295745026570767012783683274014166796217735891374802635490473030684030551829174006482722399203498433862259527995068505207682493318082651922192517784294092799027172910898037640527979799570836519138458460709981893377673369204637398691706722563708464634506735348066617113575214309563144370272095211926293804163236440220631006175101464608419678727059085773431411770275623934036932471705368848571738474576797110829811826665955954107316942180283012132952353714013162653384530264990711367565770318385108025978804963014544538544369661395170040218361241893091915590013330262165457079724335110132406868279844276629010494451667719102443593518712392752601085517127669231840236936070436267218429906117131812721120464038598582040921450153875404324543225080154829749010902818530295677458341900389058510772736816627047703853538037928847526506941661336317575571196561134442964910861732457236035279855930901532869917495887169473525571791977528081797939842792816010450271124786772278788239157454246564015465670024140974707293678995990482970524761268746445798628081607082810089701873493240712812677545439667328751131861876214861128908205120778268392193703986172580242570964430010300557450429458751263087281774082360915104604636093719290600057475926512969325147862538484129266832335240460259740179387128444602515236376336980889389426186284339342225971576709716268416940699856381980198932956312307353115413221091891591395325199533344884780518478820963019317103244738660269139640809863602661886261540727413966607852904258162220095039502911025211027429433585611769423312088202926779102846531164078473526618438456580045091191959315946811352365241785105665408311850460879565751717550039660312429442553213468554960857170933741571375035483141439119453501008373497487584020036920811529852774257333269703933423984437750636542635274742500932181701074813030329911715912594552774750335064460628113517366199222609570543706178956054850354992024041229129136818648284934483012930801851175532514880852087657580408345796782610865125798285192073380729538768831215522525343605610404444565636058046409017841378175416245677887812939440671532532874333980835138378304106955417658864074825002659674011943782201316628994017376400709864422055509928759145423197108820208856303047076542502427237680133791670882414584887147267050249826533893123205234814421529042820316515894750346023511720489608626023590624717381145244713580059660963468441800323948858501629895816005865076678593833377121854167724788557310232371963490822053790973461650543385680281024022066377596795333430881117903977530475915973931994883909357584801701519040998750831038003054167861073076930648735308596423133099740259779885693482159935410033674235239786444859639145969872972986198593811511235782204681977820141624180530766470886560072381311037769357966356699575143358364334634906360287144449411313256036813618499971194604445649144552613022050522557914238745447626126036411075878302889836249885175266167798222262645643250112800446066823607204732018055239127966220312672961034666280737721768221351582860746507498411042681949489156225280268565159601166856533408664412844580398966733523534416158101172108959165876787770814268903904005587530078857362190441933552529637851872576499617815150756769907834079042884269409650982596105999080368229488950006912076944057395385250865383999319490137052783682444166149098037278805970372555929079024080838838440886629853191290818748327943643992762872899471533450421436210056035511145728295552037658243333917653021942071709718215902629649301170397964998172421825269139198682531806495525582761126576430876088246943151301848824853715729391534048816810079616017409041752423623202259952057546221559168297854331288507211215759107580345676372463822680105275460760336789359020775080762844665112698900914417429955024228696758455136948398378417969274599398441480999926786030837526314072230291888229058860196977516008162751242210123972325708389365669827129964874673674212536695818927401013862550116951760276837302671728377241605078674810833605389499114849671646729321255934764449615259170939042828866950044355656245190130422658213358446432345213692883793054787982413152945916502645322491310824813331188548239788746375669065781838375329314081863126420778963381645073955160439414547025212085901174901109166087175612304909233472701906577558355512749795610373249899712044050082685456508111376946279266344641294264678784851043276159079848067054504698470133564834993395078348429667763165717176320298043457579394636372340257245613091331274576942853933768022809035097799129873501626061649754338033159726697515062790635387341501580113354123635746096719126988612969470898500289134540990161770750577094761055584368125048564212435161112462841269702562698334927292135644137750762147289034399232728470261024597011734076328630017826469281873641161839540465222066262407905272916661423695506549675947824187952329000381152364155876615503051532117260129976155632905010609389827728223546788436678989231387977251829737643480292221631608182840274602695953347411778275571298961330865762809962016218317994894881521799269621688097924923707106300981243790998230795179815842448536525631131849530870981519195520634322712205217866302873329377613810332854657636266461817455608453025685526789467926709030741790043948707203641309676112599502301726583801578173928687721255326912159295684991924367526605570531267781160629759575733352266516954404077520513129600026792155558658370836615303403342196346340692900095645128185315959673834736738615825919538989390310467052704503148274684649505604121620489117805999868518171444995623425776572108532990743561193499530292764009370139822070951806032476666869778061582864086238500853537357035736564395007103262525896594920560174024961520981427557463556828982570441427986530830153503290751090014784715316682894164588209328894386213758378423285481512364687610231399615503904096065995585297884752079239290875919843413665121405396653520928206274873239159480315102128735740523665490657751908689477473038904116325068637181863886497136195490174337678734832753894496813402369368857331411670442076841858024010071155164804949646504314933260218765616652181628702435431745066698230789456671062085694852288599275006655914917088961405718929094528931205820555320091322853466548714103048329205529690857638589012920214324110863576205937539088044033545220874240286589018279510512042498552289834800869518986621312797320587448198541579507474140670465020033705621378676308806440546100803833312018224562624279052204619262347983161486098685456471373220054541569180708175816622351881751287291704732874136256339982733178318967199642142210688853440500353326366313756141014072109702176344064250856253839933708693439284392854516318869972261889956167981367472373034586525866309531360391588969675978734309256589594082235997630827415612107032295754527663783294597969238487329874852023999074827718517350604765460202360216298787199694843535160575529189563403789431250494141330475081578420786033057024369662490181823567761688879792933581484772298809420468631176281005413250870381288258469593978952354802896596385856627506884274785729540887532146681886664214343028630948733533415359451367731714034784484937521087735333209244117033480044596546960155696414721886076542079086051611556741386196289261499514354735454483454956829625693095462568299485513703847337741452472442819833921053777384657451236889440924931429670897621230894236197510349455538471163346973075107708312816243346883262699090623908749580924536788895470377286452251378764026240455246830156598364178348787943208541071113576284588636507861080973573813183331690226322428150531681545686556769886954772208145581937315634297465216999547221347538497945328064811764059078372963421560448424158144283520002611783149862736643158249662769868733210589709221614708171711401370657250105273509949054496755186817388032875335847404219992789205709882354200143234244628744400147946535130821244916773889069096116980446737059258437700441627452088992466757813680985522542725210082974714202973631788295711446220826501515695454465193094946962405179414288751669490700956646362486760864877818090084937393472350323485275955642436206187557197404172627931379955109468971904214168875655123242776226045220019364418805411328071442038015267785716027588993212246825711368872339773487479896167693276402214015059436610927261134481465152026258769741720986191331892231192612610263065324738611608585361084269732674487337612374658659074848524088612574359861306193086155298776436702919245180418239622073316844700517875753007170087791161906839900783873530087731461003228764805849431375518972102325947795342568709196271389318829082789346098187639290972270245586546905886023582902203771817832746334546660756139441529665109609510086469553780671610292158703269767644828783444647003366790206985986932554594992907413999953111471778175401007837029125590604634709741737351033494674749294633096421586181205406924272044738296092840604227207467101625186073818757616160071045840842574294629664554549446887169096106416357410422869694672337421734116301469414623740036782506164988091301230092856052969321632360788241653468743531023269883521839072055667089173816810176876685822547073923472774382552148680517895379424382338923852084478803885379317707567524588290482289390592306193971595137834197558957758497179944162110600619926124972914882512619708581511907070770700795778472166155571865767242051231923732299142506312533076156054299800724560431604337500303653186444603542037263993782496300869855714449129433738870341638834362216433839527386040855617930642168040948740752499422456674043458185350529347770120260247899468874097413572593126642453908386148432696399415857190710162067631951862429072065965586782890917468007143084369304933204183404515692808875750211359350456669701861304134133382531502509458815453915211812314588583345367022001685926154267006405508102383911698916468016881689255655348061827283337543681208798123752588701779258663201385479644060152335164277743143555844615546384862642118899880210554072839318590394312351935557894250875429508130273751380534288348827560629373219895628507644625198348390419412283176215386059072067942319992984427350892077838028485872229654110559245437734081565191591310865703120232630897592429585454760910074054098678244247996766080093837709630957022818110035314270027627297034873057837682502928027970188418755773112379367212414728870455804932808691341166805833796175716895397328148071643471908230468284168871000690087866026978623074676558824302886893171818688718448999017814831993070587502566634772409350868466557697879245775404572838041322886721973876771652701589618137518105582090021408300996699551120792785342992032644165531956762762247502326709269856134851262692334805424273319348050291695121296961307108573563460314251819310121835186701211740218549338015966733914121235182118495326353838772290960418395728001761565547411374918826747074592899124570984640841214778972721814520093184979234866062038268546087524549548312608023196995884545986595539640059770878099775269670573915375809769673622289102327349314759571999157226614371429081972845655241492124985124386527802264747677279768710533957027095094699951003449198645561558543768305720802065918972726302299150039350086874314577668645343852161165530319964116396523361056176705905393890967638425565300747935890012074133497565474647031775738638026970354991739223181455587008373385650946425789126464180766421594203373632469100060161620654435901227220563784425531075255568966174859858465613311795090500957244233286987766185783789335087450164345812463998623346687611418282980289571858279738362474540477836384964883931829000871417031199933271141137825442893235477601249662870296190450893485064379870706272942029654454677916909564319461673878870204200672792019775223689495906167308169615932998961873811088248289638005455374568109381784227612349751420130909911181545960633631930506419513675186452805489992717683317069081390816290575343041904578652527764444809398069978447154621117926393616002539240077895782266472225917959355324223936219893908240642871240306215115954778508374394273250395282644615206589865015756071143173564945923723318852190592274868104296582963786303658793600630099866810850365055173621171071135281136502536372539081336832267335278671965580339956080640840753222911714229828658662040791823262830893540049386671298512940540036086346448756167099073423211849521199966738669228808690928971215085332996525782859156435178548455217574077252184304912932790451944051892184588701099513625239669854179326536356951598346237551340621624156317126360795654085792433589404338895382131994743643754458397682733326973074209896807748127461592463730581361784393716872767263928360880018202354318258824699761725584337731982717513441168886160569424107288364527405119502276993908355973026634105163528090886495725493177520036640685138206205305847194830419110904897801535413511232603022875754293423520027760035932156858962517984975093003017871273616967851647999449268207352774312423628008875455851138506881423498820202822821884555845442226855996864076249314400704489644474682076514550223083680048127162652134563490943542001928834144565860944431982925049859298222924092997443676719447853344733435204746111999841676589713079922511100931559010448199656512925445686824850187129183635176739239857480960342739472623233898655933986504315156595902185579780824894476839868605581765530210485634406285712612442320573459114650698281873398063932973363656954682785671712187763450902587103648283248965498452398461558995687852210541234929519680171916785048748558440878981688500958797496551299266965594519637123012056025374936954947349730701734540960045855657110371534098700882088048376645472116302002288794017399020693995471667081581328192376584491757507768099951240004916906890085720606840827760906711294805627882590818181730699572358723955872479883550508369602396837709708469887014892215333889163303606238133597020252570051917270124450981237408956765188615840349637475432484332018363650511628583736321731202836204112805424063788344861775507995252254023524419811827713045097372098566686606091227339561032872373262110253048648472667170291153948433908920841252090666394636954732416439871533939963113247313010681314298989255458898157204596294015382469155016242382165395029934857417655296541776031812490260967190877855049994006187739474781576071459343370246512721871241723061491118367628718407498049463035915133881646050264674640175377561505219565778596500075113859686816094886475584619356217485728267919245222029181545588131305492405029175851603483539966817715358483341720070833238945001695894519625167088491926863097246061307094880178463168619698508032726293431639339829806516474050070540762264782798352880030989591903697009208121421623512794495512351722205372784166476668868619223847557131857166076849242220873797470873251954296757979871527831626655525993950716288663277112703147135482311764558740585398129191266402253832499225746702299367596087987262734242604002881958358284165295931764583421813158015407575861097133644818273089586443322818697566463668664274156570996769476648252290713611068438418452639881427006208261858788897290524737104414083572253115104594596524502389312637408527412377648282391532859715921785494222970405036763436023202575272255930661431296050684369822145083283848548749213127965383839597747286041456189966614573176621857025619658901849140831362095807460626782779624758425157031662935687338045832686714528096307287506001736808697719341369775266980449184718876439417145844418690343023323118557603592410223231060888118047648916409695438616098988982715441817434057151889170063693853987677742150114654910680772415816771446814556290273746257418438724494091963662539427444696832508133069233332055300529405649816988033246829772757260391848352712992761443724811976058105141462812347212178170875438872873241271150197123047601582702900245026537968099617740173689335753915188313407366700961692564534965314682974938805599268571225299322163848589102096860013603018304504099778419431384016246027832202537922424684267450404401262547070348827100532714809657696369315395536889854614152493913354758830705549950548427380143274434223510474285763301048069805970581309858363864370011704616364640464505174201376281066559265528475314470534000656749496756675666495470309302471392723894055379538131075415905689061828408843317762262302776241620671090597215294472665205381147508779460067348986358524759113190503920637180998382925165358447208200106244997048492782452724026068915865798121848014546323172048911141751264058169299021351839804864823562255375059177232435756499924799420785013602656767568184418013349758695648644946631666959633924090266109054542571839212323210020062394446767643886381316943122988469148350403356114853649435427099000967571901746222259969260561520441873514376679047708521753243901331159058041065872094021253755909896249526195970367710791694515794085088795602916525484385918843109163981274069352424947661340532638184134907422925028439033692279723084162803212938237092709446010958851377602650198222386832187477542362281388242948048224899225708440648601765183213843934812031030119226697257014139068532898994190618998801669593543708547549081905925248796765034001377983399617539760494814033910526005979745597170777223568443501328096801192526380082571117819689429698585928956424629387218575927304079567913242693193148282642296950505027565196625069341250556626308824953949514360537365603764218564065916251435267838941977132827548584101771114078043902335541446795393830300516679462268876945995615521405948083516143734872997336181942675832773793127045167782975928562309772739205856080567779457329136301553873739127524430083456057698561744576690675485956080193983922810236138967609403853924811682760425372440984315318318470642431632870512569117147947848149512406117962503588330095411094794452482373984250280273439840531151566496256238112112857770583803305308329435877702034574423631092786712395562202212100113058212176964306389931845716382815351190644066218840719274149979341953595612761377002650835102356724472181566972137792886925279770228217888753411480596499375208994996437411011771222752712007790141760317339965964215128512350233230921550588080601481608221187031672717044190381356913737150959753947928590139127306262495737981446274962275012623808015903900530458173871318690130077883301752422915991326226391011910686406928838702887796285002615305887872831504175159928723150484405603233676745370805378758033822990466924783865391120618044926832898603706026179685161271528956777186708008912263096259114305838399971460858176608580187486416599449334127424066547217923276837918192110349169259976264678905528570764244084841504856857737109080719248549440001048251071514472780173081542281514755615622444307388574970093299139635772114680608757657200920283344098738231509011541247516383698916861190144118173430207417815207230367529809825620961244290940316044647435628076421273307478303971230906890832590610875538628881110585725432089740454643085608085893625175615782630263482939590040313930069548752442859188380710995915065461345377770429654471123892447146188185326041633539101183056873089989589169735785016585013877212480480660642716809552917350338726342200312953921470849630149849046995932597242453749762630481071031583673675902626391103410193853899960967054690622807120406516774156810345580575321957836167310882110912473105943836762557701341090421439160528257013562972077788171796291623656157180966347870092154172148993775272466302957694447034776729847633302114487878016345650769889630128899745978289622805165584009119694646388380175969331379643878590753059847267322030849806334320091510491915029477963430658080178001754487281870972752572279992308955456021319262130361521083937850534344062857370056649583502895219267319520505461713825513565615589336899979873125288765414833095932721593749962606508286360168211709452809546470816658499392633240077728935300409572046629560049313577651846974215668534600611787133819618278501929660150423284289506120346003185003310213678705061034964852969410471560996731999328517567575714588512472281123284331588062893456262906225681351564212313466310597926202358212970267911708292783355465604028251319527302743844469065682666714855298690853664287489851612488500480715710418773319481212921778342735565205998206621973319730022565709194026198911398853819509016403264675266528199090044683490763944188800735599857540050393182535612646334769293555515203176375548000817855971284973279697707066483838232354990659407852389313494917307323543449257153230570966017483363590098270228656375227910810062732571766428117209868195679989805740157642663035322059510896899084526583039653683094894468867496090461108933958499746241619847903552218022098970906094140761452622896430503332363147725552216040022207743045871036661906759373532733256780806209353859169723388980680319752361545866422282793641103904933171837331717107600122829840402794026363057025267115230565674480145634267805591506038854858363132233861261379092088616889477799813241889791043065914097850269987798440465954212628837088880716792454478605317488544192628150457439596376166494116176712733894069477028018779240964287733275650348699528273923606403903725628840644871340655122411903421454985245869423820333545506650748776286410102736041462746380077191084866414855498667643908451441077834636584084645491152104545654901624186508742683940744123739390340762560627489109992421171000034709512842757715517243309378371661215745622531329062997225908042620174596652327714817450748938062338205375594741616622100964663676903729420426705362830271434762328893451085915999527139246792662481493062170807332970062173603859114181856407240293308063880267037730012756820031482571287530255202504413355126020202885845746780575054893907942702148555473681040216312870732445593313288305562051376165509333957737725963992405464693065251644051480279998846057831831105528206199148027325261110167354389159267946643137005338140257218895778809056122620225429677386400935094308500129055522080949327865093627353972486831386086086728562230273404100822290323359974093262537737376610860612221994047266637237898305045201260041181292012982607780112984567344516208804294454822522030827815363714927813609406605095458322304111575867161615472244354178947591394525181437961171058087736138167082381202610324475301024901471848542522044656119995640938385336261011681832956376567945241767292231148635064999585807071321645947419623023403060564213387592480267822166905828338454976621693079683797025318919960994909883683619834776024341509274484354474358892689264808160449078549209878276742751838844900588387832124745251821635888520608346356136363733174234918214340145160353160999177014584732977207347003216796455147792176257858514614548338753944083330818802060902889546955143678312678376597176690353616548864323713071250654622903252985132497124545727003471427693012728195061514005640336307495844620049062752227376139809647836088955465849318329801594888522642965116622172066795606386925405041796318425664682544316629903743241835053016024373668794002279018646846666608867339390071816509143145806775053449873144545153939462811960991190988961186069902870733016092183735156607596945514660667723484706213013122616381186637013976979063400690742260040681424652849213636043252438376032380504021930937305329624530647262173713834843787721641085376506170571789991487028590551252872422410919849667600400866346454721105842574804497145998520090783755814960342671201205500816718530105262113569044199141371470291504006905932058979288884009518403228920368306158675071255887024700845388298286545385892492193369896817248354390984513429903989963155769711266212799460009426289954801164917146077618325679536447856382385987572961994954807605170635095667561334533041348087027720509847841288657821321478977728253431899693747202172577558526893677664222343045462126771823956072428440843026256702369031318847758919678647111549600284709502191205637331350984373909316141730182530814458519925713692665400660664672384046259133064684392115088936850294457690608861206670476757369976126501378705705002286508744081576229222471498488440407520599976952850684503919297583890800397348931183294206253338432777322867290034417778966194315419493750572851666790385087058653487302468768367343298577460188538105488137913613849675074465405040463704706348135871586168792639381657250273407998358428199536347570148221892118821363201136450541430288273015716554179172225752485523859301842537158390900115584159570656610889308735056027595471835487528538271192193140256186693956676240812261901197263400600928469634651524043366837870193181605425438570887694156323534834586842821539970403382931706230700865221384066533632811025350442264357610971843714831857945497849415279719777972541721769387167891864912371856415251801166405055678976951652787905294496417843443837514114346430565698692193691643116553666680817032053993638548957550998608464298531289480241587935252530154228618497330908259723487721678668409280378286478514690947680028605859311246438611577704608105466360028130506020211966728949728510284165729793340247694710384496168815551002573190922641297260992864074276261191452763917764566448178747042722618198032363610380390794216199592754865863976267771587911573331083146556876236152032017666038623103825036555162338434330539189336384404213074245861863358104784928498696699909199738770509595995792031368210866326703275599726811246644075049149258961420512089972643406617178241046191555226736675444828465421851817350301634009917931804478806225435445731324140064616495279049393180630656945275453249603686365517620872281946048341028699064547035986079829988170852844794672262503965178642433485531680943388480234740834297240138687692763733460687742797342421063242530670586313389583781778375073223920368456558457269418329554493823383295191070384357021527904385199227178035776326021809465946870516040028284157045349731891826508205404151117405081833964572341156754907120374733545832485122216954989654313524367297007588348910240188663229569406344843132947020474029758734607673513503598546652233970337645277671522415292411400254535155097746978047875607907327531676142104304984984046715015661346527918697837328710490696102420667930344350955780704992843703149889173263338411883267508778645224611511363901542496895747886848258420448968464353548105392640358558839278511016963999786444101351377954096101515625394433071250582915542545647927577076117436507642310586592253374659691128153109006966200164343202076795325417619166960443936843583352270897930475903594320063013674412478983417035270716337812888034277915789690891844467657884179907912212423379445021799164796254969532526945535299279827286521769405814729895938697112920455812183802329401328788494475237921458815217147205877443260598520971655251613920854059727953132145950744817672373984438318473772060526710987065526446812615666618657995602499002282937006623325174261200453382447939783297304849106790939246524829555005407067400945923710298377183880284078961828489503829703728724359634166595704123147751167835844536379554218500340248475716974808337724921615319837567960782087717818887173426620615824204416720691950478020751449115995269678862073732209670352567826454350922623328458215422700712439045165663190056107482191987889671570847493818759021398556459097917625831119360160727710550905665104306713426677145813947111223509690401011003957576543808881460767046854618771116742014446920115309579685144589794806662692555399651045248675491491895931264716649905216381515733766413867192250064710346455809881735086106011112544127970988797068001926779839576528287476631576895803210472383357111921280229670742552612065794920137182317707329630739379504675317729963249340162477879145294543084377504957182832308364994759354980238422694857126371354810536329869047607560072627624867872617806889229075558240692887800511017135501881956591138177489937591246516724314497837002377253952119952349745239015563842787192477717313250564015518348150620192423049680807621101244869898760611514045007150228932075815253880532549720569748913171575602298806356929855010787308058989277650275071098001139370749972315231074908463066028112567873307915254253007834493368183995007815989035179765452315392903374962397620010244035714460793836070707605332735682855096657503656842824613922581160527823317802226122944167240374308984760723880516832703207283074086614348311168042352258272529927457192882756222458225234149251039730437759722993289084623876444918630625297333337375294831623734589906596725410834112583929352774219417515943940622731228653287807485382927414875508155567382184055411362492915137408460201365505725321509667981709351015782426455098854168928583989928633909371674619351210660124024390589422122037352975544228452311446839712008549007528436732274915509091909076231767854832626896130381291982231155970641426763848072135890401688324355709611143724016407566130601418771376406490502204325370647351019239149009452373096031868305610097172817981334089541278001611976587049810978738933329009555518620301876230109751782567131418326896901450579953200615772791899705867190554537033203178604825081186070063609402917911439820064443434660742621174315579702054965563940305276039577318525859430373822421278760285024790231634450562832799912035401751213265854472696350763339713751516056852446878395521799679938302258699894430799990589085537579324060646308981469746050932146198349878810069557245126449036058151141349676454280727991463085181723573035982554433443463091024596831840182986953149077787815373736151138935822546395146517143509228156296260487101691929933444631392967982102165075518776869441194093435558363519455187345317990155631594072814224639596277785974219111558039048691478333016593398493143700283411455033110093505195573919624952749778915700112717538622546214596095221545716512354447695231688557318047696464175300321807751981540601985619826228363526015436662945045275771299283471493999400264038694441313676294577231321695990336522103278507481091672768080739555227537542824478684810192698323089031997459167214166858812944894358659115046442587844303466302649635303054756914665903958945738219085868734204330953141725813460259111944488453528551095316847002073402000231139335535746777746205769782852355770656171847459283100302040855726595349943974218308280422586640632172882936538675311921892219323639324786015644254144884149613738229741575900726398894060028016530540916156492033380635065474449702718742304734266303689770963871865160244656864322368473525906328342271181391109180984583533369597654452737255157187476678389866549254161726523601494926750755853327665526391526862367712006164897733299821477662572087982309882270301767565422758819490359450141858197965776428254852881695886963145250432427920953853718349575834501302966748774582827683970384556287578547371480553678257700640885966567847178609728914531030348332254477351213636897255591173628731826053196723327774273033226606281196600901451505561796061860226624771702539697595552435028521336593818114815091823722543916664793849408138158464844323708891656951653605765377793154586988769746172753425883620196636443761852345324649165989730038569837083765938861798773326074772607199803767018728269362566371997707181498549997937003369025779937980628728643960569771033525158678859101530679762687655300733587253145532786747287356561412023835068344636300689924795462874271669840176924632885979672386425997143431096296114655774479665081857735911425447787950970827225149150118460738249828730023062940330809442183329795182597326539297656579765297685331894792042580968125835844858918226680471927146528471790066159763149784017373325516573245437174713869586508888498152369384135076205392975289947188499055722343351986663076883645812229941947744913053418185843045466619621357771331956180517968808812929342274760561382357445482408633029671397695987243159077010881281153393469901378420239067920870675405515688909370382592674184057978527614259698928308238319201175009124653112099866803749492858104657803275056525225902366657636714902826086598425201015981585849549168635518448976192337975678620431462191298908018853745581358206288036390773748323283396389270535776399976942015928242767268039909928324809110917740511082551177463726603517588694826686762601314306309779356203670167403224039675633575542440851090247699109624763213633053328247517568930603114020302097320619942671924983811791126806477905312614252742892827151215172159683103452334179988719202298203791577189041825242810515519694734544904265019379585499049755023758885977539580096434373686578856200054245586121857017271348742729571583008959685884186119531390725855695852894639055192784598004563234008632466795334279426630309758796322585470879126078890710687742502499627492661867493238137973477087186869226869224671088873115462546124153029329020160211618283037976365004168995422956468905099606054727885229721657674316271436119883134103663706133635826820777518374969401547243503261026505619190889779226633181068541667975464029942112279834796349633003044117958854375478874815432087128508036174710769324542405453813501583943429436210673856740816243903769309843040297135848721668611299585926763898178500172644048564252059694870877075218109575869941027395107733778833615789718566019358692599331427865108621532524112359106768096179299851871117875066697309344041424530995561299409696649810303087548194338360514274393740105679043602353551546966047785093060637261552463577793798362375950902203650885599093545641174675522670944743980130141555093489838434387392850434626878261996909670931293200596607397718984455098502312211260950071911107385847224404459467601431032990661169892691853306229081672984903674715159511805269476956589572338113821978764677517595031734616906823616121251881542181587619888941808647316060400667382308374576392218729009362357056808274797005333049755974754675721301378258066505129113141229421392154877217948755161696772607373647247160607091735615268075562247942910451122740108883198840744054618695048898099401993397429839477038384885412428039824760673745172787087181760458828984685502030816084209294343158672785721947855410894619507717329913921890984530454515681977872803835931555438746269476263968467710174613811558978482988521472003957085482645118996404585473724768943716776390483558941586018578364540116781249068084215072478169643191957427305346153842392227850999742539838065153770614028035702859688947332884098433451102425848641263455320620711442295342638101756735910969025770323394941376258650831857803711056324323856132621605577361151137315496638990886022462324461686129282749253239134429656077513165491817939217566225026777399735337173966333062066465802371026915009852267874606661771554547750736996802398710191031696261005730155304914130255188380487835788130289087846914639598798375719767473128884559887745498248719905233269337852245311627747611467543998583809537392481827928696113161352162822933222122143553927300489897641932005583429124351496564727385851918444219039405492710421638787152225868404030417237747562958258330174066969495399704517268957302668183997246628655020982944479830677248947585450423509593543490698318561362198884790361035001423662392652056084425349310954454396917541879956668003036712585223586315273365735775237404090431885215087582768999781995679256371894550428636085829530575321382778051867782261316337298062154630336480895358714791653255583021235588217098163309078293941971825393944851735764224916832959301315479722982537809664636469616905936307310422722546969681813465918999636964128138524547195551121027740558760768873279716235512456427033472583404544611901140005135893343581949547294061701387121184518442207900770034245409705783373823248734293361480782644860316948015801276286130319612010628850461514632599493897999274069147786025063953850999295644965305218008153669285371173305209764508670096364832733595641200869086326215610626759917403724400767716487605114555642514812337838836972418320308317247142686289117732423791756137201108591133259799959433621906155538143142406736742436659688309100882422803948302503563511228752000777312024166355661558309472229527567511820972081172305361542277335633174536873442317436908352783666104785199632528424554618275564286237992699815101000966209643380519685618076133164925191831220051278528821369316398714030166058961193815183496640984083706144443727022153673456527382114026484988787490652282088800008111463895872788427494038135486754245386757301065479767253704424700983478395873739219831714436935844284422259967822836874054081704028502345343627446507719451173872909412469845928354745508382910761083943915527492872407403107759842635245759062253922512337269790882945084690512866612486141002404640843847790250960474909013714652032379944409645381737589851303877775699381793933295191711604458235764000480889595139514171776793681878473749761736308369495043269397103677417959813924500424430548861986993258186739847046199750944261184477385005890455299444561482840503394286349871778307472535998114650401516292523332932479955785564482827403617807154672599737073365045769630257652132679618566677127365365764205630027831763530375620177521607682122883311550718480611078944747602115152780491046649927125860068659645554602738926296959717507013609776018585181318060795159318935689495458869799324947497160381938329615603289057240574205220090701948097884829431972883559361584480354446543025107886830089440876948616156902205185677740014216640809576846478401038475693470586425885722544391672510862569255965935713183158035866104983978620958650350657692509208097772851413889137471461540245158503772114804578573543124824856734904027246199414239336210562197428131675618129291969132875178567075932120417386500910285384134800053266794059771998368791456133062440567709989807105414126966036600265704073994654759951309916518273159064400706039668316700338876395360002748867347900912890870701775369278543778787206953476694534167925143565952842643797785697249664193102453407616516341513166650621036852496135935956838286256849883426194323119774029536515626834485221198757522672140774175025136668740088898797374189425593633966176256740404999514051522681158709072541493592473987603038941068219260504317502114406685705163897343674860375637086189434835230112374709567013624948262304886439312801497061985530789998406190098348922652526844088381381427105356847572956683141679824691992369076858010791648782332684346909473168728255356486291841581688062038008031390851275087467087178149022513700673280499970199519743639531037983153142893537355535541431064155326197208597703951849053484220449159769473396733030713777651649642517992934425841845620976397966014828433224209154588997106445853094022085610933650288818459640122613909085995395566872129498291381912861527629901378543894709807544471805899653040928353621117716535491651424965717663881301810160130849595780320150110012281936718918136423806593005518448993059051289657615963411001819546578285581928118649316164318345723314119695932821379040080007557688250711388000909299206535696818525192938756729954920664279138135174056537217028622575977117481245569294003035936719389539345618210423624935510206647748444285902213687474320470614737390980554707979426931980912941324904488907234389477726514132119250161750419649801579166323179829900226584342265266132982507454983410727697911001279032620202332062489193817146851191042711069128936212619305724799133402055005734454577982378579212587616045665546902696472010912556296808667682512464136131255035245790087918756071418584105592163704786942797790871316397727064705048278505721596192013803286855163030815912518609903626871742625259323170845527355947303465205909368790579574064410863484399410929845502272507662389945477162347030706942411913487033120591945572556767463900329815830279992202167913403420697536239152843636568971461841849458042459512726779700155785915813546360603098536109560063289059794873422310859285521598966488804467313321585212801723541448931971475453367194030687686997835802444186359467558870018972837814069029056330990902202720072220004312301112876558698365554208329175720849834120254354396021941086028027783318365455443853208576403132940117059973282644645574712343938137677137774235367898725017699635816865002178789994955462364112799161087745802367636221027092186369317301440876570862460644766163030431851249823753664870027677124564105476099263826140907826083892955690177881570734418314562023615249180910340273122140624306527665093361663265244813875104942806556641077521627236207826614378718364673739700978931186563780270960515075027966790878401261809080486414897847890256687784706160743025260106800474212249264369942696148124095058889724320588155961543861720727816634643141986956108915232022872698537283372306062547064765144995957169292472020728410341317527343944910139966614908506780074169010112596219873943900533639593695391274202677869700355052073018017480642748709839191495178547243152931737157446852445673769081437717132016740697495376378550793542014724618626143811918112547177197338881920183167317070521073017814781712642578708053532124752023903724202074133749576506116822225597282565687503721167539913129424902603744278427332852932792292272399925432704812121267140854138752450788309422128303590116770443050095392299669132298963254390452015150857939250302115094694075924032101571860006408323180515716961063548822427090795748683608293633026166129663734335522600903970825872292942229615087450036301833127446829195708112755926856304123887971542025252352940481845683507909002201177383757354245404276549395295550741682599305204684018792590905828778942393173724220317085016565425913921800107266136020393438562647938929755420312921013506372938334542323568057822931327181783459671475892272179668718038914032834967108117963627583279552290183630345290465179239219334320814847252271905965495069521404177044835299499050759081768885902109703659672358685261606010712424742583492345059638565301503394464135656982185600311636130359399117311422469710773926078612110175986072890629629576239404145721918439949131463971981242082026497338520728248016560982178473703437811641451429079362052505327347411727545445773774301294469620657437757595563860356532139716866223814612376040635172413882125284658123177570740783712689605456363233592829921563286021891627313014338209297110844310234900278090140255227078988670684316912448508807656582236866762080306806456058219438306725418267706823019665157617346694018743288306781167974244254614256992814247546901465168939342010573615898206407551110745659649831291227003978929280267739700822495173552055456289634729175368901198193581908658976688671456406154095327301062328051900057990349966670277006298548671192764120885046216804583536985996961017573337972482617468663860038231452652714583414665524040701132522313646348876756757168448648361687727396750478296033769919724754169261349923261918931519761737439865219831926947881675340107949594870027134497768755318394684154185338928190175821062760892841315349636449504093098377439674186458143604939555475365420329884542455942597395920741598161742709166092242428804920793042113075023323934110630245632217586420066997158415072827338216030464255638321038860119460354491727470295910793697894202581685233525670898771247021013204937847654726226680149496755510994253313265666723523207736638363163400247891657119568528271774632237789520987627447108174093091911266887195073676758470001076102190474426399707197990840359929075756225278672586626708789438220077235515679160313267503168001800594533390543385113798134261395251363420120712703906013920717135774722061274451588542350473011656137899144472115754672548688922003117243249824572979112585647653273146385125117735020759614624613117073779359323900321868901498519416532983127422147835617792471893697459494705214168561841245624435832050542684353200341329472224651424801131679498133939045537282546074615110798751048240143003410339452035108949485856656412994047130108506247004536833022817054245487233142562987392693392952871035134867517472613043907529237653639131750370859829323734605061336040882584128764260628444819448107735304419550631416649073353141238988486868672131913877451990455251660534295483514508070295102199947485577806334981502561738214378842228653670379183677619682620125131988216824603562466949560279027399162124000478953740816022373223395178305356171642031685680271754699437496285509314434791864093116250456237849789689603979926085888475986496709705527709359773502158827399580330921946990748843949603070547279877036868716771351715250466562621355119620194617614238368643980186096513099429002210897142542165007509459922304825408481608484261839865465344517831333542534689064717696978258875513900394148415940711582120228778665161711917388144812098861299847831383633747272740800874721222722338116154090221797110296702426439490068776547980880585080671556894591870966537352894589711061138239852060997771714360308720692346168871170390441269562093165620179508699218976045473720904977526754463216267140890220516378458809419318924955070645095944763397050294041692083395385566657454766254964474295371294836156987285075959611617930212502003793854111574882607456815862988493308736205550993503959455775950461957510927911151866586469266975667839714944962042252434574395681868289171041382041615547511453986575963004411432560432808482029575196191040467156277098045871825740472263376197884879469571705691201889859298714463319044558364285423590148095619473077659162359508284638052344392226231609357004943380439851554244096966489805534525211646724647665009424436538456024342861035082987481853542219999737206224255741492158100921211881933574974770325612060399861927570190421940134309165861161447848910012707996912683831133199551178883385598714058392125514144146513122302477810902534693850096012061162531780161615432235716633518260988089089897243971130803171964372641957314827975165820311762594265806211329007282217828223593917351932466033467358890353731997697516608780837748412499395831084511068841852957723409027504666743236612158441791019748287083449639630620068192779399075493103043079025272933953759258776357569611731539958912901469402921793838456073479172234297260314975018665227401993053989128930179292138048947854668912673939059802445078809565959410153460188651772356407354565723896682777512957335630576258128716625997469986987999458111125291666956356470123028990983616240441126013560942557346252785522844036391300362397930238942873127307738283468933954081779064319687617046892961980225447238205244565533219728415273225280770603341222482950053541866526906495413872517835720900158822494378968341923892412753314505281158933330206538432123463688902324761246512637275471028958376338420884235579906109444408267770425313116136907034191848892660250828388195221323585560699549370096276332152987769249880807569384389939031923470725985692940401032216924566375086386645662403311207445258026263601025531051969172303972328892588238928270005991848455041245662569645360332254699620224660570171331250627164563828538036200872060027324897294225636233402851010913024776570906500191161845025868629091967549482937707013537014909027716310739278715397492192905490639846643626712101659270260915573753662850842285192459356271542769256223643752417175213224717362967561997086775914719249976321501333286912800670843123299953424853203683313804376438966290674039570456427206521099186652572894142730493392771334942140007338755870375336553974187062072104187431920552357514327403817331279852940800811608737582512539652048897249746915309149579390784741735307155430803451274187711959287020609096764503653217202085056285777710608620633922726081636064222285983801333650929242738335015148573394387608746321872959016403201511004373496371218585522783956033689114088893324745360492736737249117426640770010086337565354925730115103787128024204270063092341313029510648794362760003588828908279390152391206107944221064787460122426605420425566445858420686548682298859088987535054660357932053377241248219508825300441817611188358296878655125511430464784172072321719691162882712174549769291997309918698586158847377735363844425773963120367920814775179530418017127137687626373118403093813641467581160681558242538073105212716739665120827699936644266387470675985583816649909280530875869805326917145784946754653961353812695060706768147569320349920741982288492147327482171124748802372533084334882132079641597354614284874633155601839289533611187483225305817265107801385506232297225563471012640679411995412765137653433904668984354294705581156792094903311720069850929828023110065344943389136580815529628805583085843202429671932497597818025644098975489268103903830062567038799888902840412395817442898116366054663280868609753371806322975647145405409366399706913003066355363296064818472648018298659292589040971063387753141114595375560707377973198188301706921734500140334727628297721529981596935838673064164550879756671588341066820687004406559577872350351623418757730665009011748512318589293336002164128730374453230638276290840083095125159227637456028723045722675562526006434781033884171661325755930210128684755531767863860894601827004555603415707069815386526659631532550032072831058782614503322857736510233247654376752977925568625895797116188605840699877063387070405731103940532254004672490641455851916986366180550989978809788581599357167606071927280362453910255611615951790305722893754586981930950614737017635619803821205228380184159197490701403323607053242079434927636100999714954853974188077309264236762282646593743741425534473730929885605928968796691151796724926079440580478483980418761753654157234054139953503911568430549802606438029367579515738344202254089229371808170613141858617387395296511621426441694398950690016914362206835387618914066343007208005367937590712057074724638625503223271814354952363073006253349050741871355864958339127458485611505079509426831807463236038059634660997835151293111542355154920693694172576398782927742726218432351049369118498753882055319601337424153121585323751281860599420641899279216613569360076302898815600724923654574244292748310137269875592555672595670940284076613422733374061780769636903650990770119174507136292475976118151936002478633464802632549177860731546080610612690907946466763113441084861656909218109785591181444399524803938050385497493824734128883247248350460891677304469595611600138754836068688465042804313391324603027003064980060968121045257186879748714953927729037532655570208511170114562944530963027807846791081178994079082981913747757579498843003838374041572774067393272289626534738720598107216311550951593240932642762750416233472774656138572968130771773631219694352767489738542864042429754205114179039366395106805211724607891556739551318627957978196527229868700082784845788512502969549710683670344296940411231602080699442626692294009589352067927684003178301279150654257653540164833149240377994635748198136833773848596845021568051026890919624965568275925717448155816563570666175008774514707512909212484589564903989833636533735983442501285429494663137787711395648601048143444252765164387835704364517911159238209299192023231124488260106794384151758108694055967863910536574625233691879493193823475785292615104252586881399064910059367659741560230996542681483247548835913003832853417901144918637585246913738386295736675128580810563530214034545918876195921781452924467099577127287651183960898994632428219392526612122009054109393554020715247508075521522796044513209071159400995510804579416079387315213825058895437630973336077524130227892425564141414425026942705141580353475826706648562403208634161104969393850536709946989300913453709922716107155282770349642849970863234811719822779932607502287029643299830369113571196783204739685259618260136813699132679907762181290024866211420120010709160022958521892088261175537596802837608568004012985037890773612337643142304442905056354816837534987792084727731724027980413023955268840250576998205547895558123916167081092678645790346017062210010788343970790519815948793564973969875441013237191448977088761761014819848094361601790902836486456261921652146982838468158334248854464354123295253828793508347668673456460479334552027235639991209842781017532908655774659383822563626261064551688771945050701442847270223971956470124152912253261256414484067300256830045407232021682568883111363157348968850281232325681740877989436365765998227939913371468580442218708652300245964308742971475628138888973430306776179607055051795378828988468149051600532520414914790267192321619943972116430929320670057135786632153364406963335859259635632626881582040862183492422952705980649979297968200987270106311342522517615995968903911753265927680379136186414695404924035227933236605119647984709711951548344225400095388512054961050348086449517098487624708410426337602239471494493671322528399345854229037141498908180234957147225868041107808096211618285732081539440608995964162581065159021255293686985581941705037513002657212451159394754944112184393124119722676111850993919949250305228813250977496637819189775139907202823320868615904625234025769629882336131584031093475338236817747543466046061593392002160635841229315508509814523656868971535382148620408214408305960655128701231300740905629043871441983359869908227516640288533662461278789007189138793125365823403166486422530407001191320147135812874330682921575117726806416755763752163855720649087410173276305328215657279398975181233777854348757036581972057150093303373267006563507413334139213585267495075128567740338171709780734694398885768340286356818724544190779037481691405699970532431660558599160480936678971479587056838673488508313224633182020459022843753496328512313753884191977031134997284884872110415798455297519398427994488301486286386630598925258877346164976084658827086524540755280652226788074860485705409514287218898532669849657275608707747584737535040815403175369350954156279058904366992783940161069300148409892031057304459623192292697546025596420946398334277238178022982771802649092013778890259735482015399209464348053531636065099027909993957749857904585688999497204329201992431092256754538911108662477313585180789494401683052954636572048535126842753868371893586652296443184097522922926394156352454881267676680129652055549690046823652507045374704798573389266821096269855497805176157962254705615715219642693918079613185666455308154010056192176813505194221047858127345175078845807579628946897894297225517564649346853583300214975646006666612679211601276816088664588426976712628896770683447262000984990884751482811078617490006136042350853458253479241627444500978330478916012071715690255902468405858572825415155396165364406556940091997552164498205712967265569866870645590051257272691805865891387227473760358110264005410875977781732440428364235538083891749488573671176898073705503938158844641125150544664460427837156088070465670839399510425710188356088086468463145184215515642776356010752617799469283759608717996413545556012737922035693329933096458483613366299593608879288167460665137195240603146957227182318878458935698580331639804481145106733539514670487830611316636885784508599077593457911187619142503447239156155855916905429412832647512222427389376033799628361592876936046855418380576012881417733706451681061359263899301165530775735067967095952943047325887430773285655910552327367330193975614733339463580501840749596154151581284184550947181045166099828309872426010673560385835189348229869764289250620074947618041992371721928173151567119829722210106144948868323462953656139738056679377469127793347701439942737492789115693457525171128168786101680069642459575434444726662843895266946178321502223122412113584988981218147018743174867833538677641158862144944379571410292551479178535107706310047642598957202169721178894723755077227810517441867046935062362594388837717226754286957421115175844655957026588573492600259223310188519042334663586737833380732252159456389112439702550150053871640431189409966830762973494819117032941236237405938045761941250002062316522692388449380892443417109841769432669646604295387965092675039997764744583590043793105018253332298341847887890845719780119466915694312290211891484064419812015946485421874278627505112641531314743900100631092821344451314456123570583143228202090274870766446792912750750180409658793123414554191835495851299695002054948156229230284365277324029714767169747705952592708865124885351576501018984466112845417159179926944664095503458284797444078450466335295157251123433258942414693705131668412384317271802825618589565095553114331426217999773441900214003094387015233594763080866014891986332195726726721964147573802391479729520325019585054688835600868486678514958774986714873863345442537547422857489345585032021198616860644957858762074253829860245808055698228627701275789699035043511775482039946142990441486430659292067438285596849068383749021192327006887251515963305449373662765753910048922985320169809035267796141324128197226916853596006142957142743036876446891259684153302059606143965997307818387989585497240515015272933259053161223353650982612565582821936625511617409811188033124393394393087599708333337518867670251033274931023936554855439620476818958645254636609695527138711954092485561557852182750619015460723007357925174228598686940200760514229179169615327735707015946803571860309552649819778359001446117509707348019957956207192121183519390265984801265419136572093503270101490948804850090745507261613088796217504066538450560965739592035095966720053643404941482606772208065182423548439733224080879045234449303379922165558432846233493569065416067776592906459773280279975025733145757142546889640545317798954930463685230266526610640861866528173977170041977731552070897410198806170760664130472037492294704148371810178602248255537309698313202579810667658944778308082759889133285932991318251275309327240311547349803489638632777489341545816856731251970574552605366745905990117939557436934942083498234193670938668878483569307637980398850688059485979933476855851842714887282419052538826704610656800881684894168805586426284359220654364838929740877124025704940585637983942483958565840773213941488657079797318034519776393009043449888925167847306356526092013770479913722517826696172268487122446624196972466471725946936231295791356754106004994923611486662347555284485755002999574086309880738621267504457378054837778101352992796737394914535989889321427777343288844036308754424910762304876681386308036456986103298644394886656697847235906462742159676691303008160150296467729192269442846712730378965180333443891294048092318375671343325656253174030673716872160008150141634200593402265964460893679625538316467393339062814436266183345189782424538657144130495136086805663970285720520122504483088574527949785681992395007739543824874417089142889101600168306534736543743684069785940711170819032609158974059419643747903111411124593855869355596435039037658591823913957690858366018599945067756117979730191195420125125794669090070261755463149460623014043551546459747982855079244353963299099329307282887599076858459646022352015937068862238162653751674934270574977940297917572841205312568727882151428883393936776223342417891609044427237562669168681261993334876185410403998931407043483492211834790722268365123282697236817466057778839951455740828424607701774454151553223080479763807493338054694831342724883959702927044115350766190875616493817267140048325946929025115326305110243544630863551520266713947988852732453609904335088599079417925902304109364991932795813496642226825834892300095017116806972226434147284594282014101558583833839032436010012024490757800138405052306558377690762724575204884680208656430772867026999246785345197739093088920324240956843579992270839000641281680436081475420943251266130650269401935316632684734164660409844109409638436483147730614250548437580355448353510990978615553989930031562291085579099877854839892186506694441355976820745159437717257180553604828616419147330108824605135913759324100988228786422694322470138899792493337617192788407364014984630209293497432213581399676469307961013280831755661316895436678049047543143405983177522870524621294150277338757051862707850548711261398322002123657790040267710398299020398357318968292834133384548277391156612459253166086920758344958734384340372904044475954305988831703788931822583452272533649281320868131939902310353850110997269783463567541432567615002186691594483245911232390445095415790247446692394687768468272641409195675331418214958611134090510164464923930624148791964170192991397406884243234517154241083782753176089443140962497967638864766813497307640081089961484867657499323624023844084942944072286606897347957530124984688373704861704421326995294556769941189881873993112008555916371478883093789364738077211246528458269532324881393776449857269592230057191069288713429350438592248073604647049680143831205773833602147749185857519168183789138945467200676852254065466763423631537874730698548897704017328033109328498989384421392284000160307619601089368706022375052088613866981440693023102808144230972025072227153347465091783468187672012390498878946810473277905931172785380170055882986896293453159583002195055185070706671703308129146163263963665475363679831239046224762675752170290960658937269929442204403526225919648530380333836503994356793968657037407529992583830016525859078866834118486954977379213510423312226257511422606317461698727365758484092513393255171171302041923173314635964435086937029690573887430062126193731683439726880460260321461602314089560568993608099152368161474438724061119857561322171675094345150442615971068179763432724012534682616797106234826261629616889374545780720305432540529514704418006743470141345877915335609454053466340314433509885449110163926464334343722523543294871978081761207683522685116983639447889002796356589244858600026972018126100347953948337156661769022045634519735213721764538502694080452613584265483193342048245239157962904279915229965709213835876701048258982891862319504889886126783346764894295477244895403834301205967230294633081935570040861242083821740175038749149231292980317707967521740203391422553918060536336295913018512992555149941443690921185766797433303327545517266120531380178384892762321243045491555701367772975175883162754284219289317066670731903160527652399620029849882069193546030103877506647762710214090249906048700194290803414431610153178390121433447711711294834763895188919709998715833853563649942832613755278764224183419401824223201505937993540821231519542806863241399673267949255562595932662999633300824322607904351939535589694498744014209341424802071189002950420817639027675716625644078222387035539852395210770894177770400474123554320241848128486842074767312368113802802908473276799652541784902092761420196116647575880409618128226301747911786773351050342640426993375091980547568910615910109861489640237259287741725885901613579733035322043013539076970507932152743876635468520008974934146717408581072378198556430436895381425259413731882781522245802990383459216364796087119387005930161466217860825903296192343146042824677323396981404264657443904192290462446007482618748649936639188917445391690211340699638858088020771847108441943217504935971748590580662405130304058683897800400122543839826132099443167546285194766907368883301185540833553735717627896586452360625549818862822743733184160833984171772862014050937470346152467109524339919026223306546752748253912169782129302950697547085296743937177880073085017278233645349623824207762708897970160352816622929957501034548606797700820223323831165981969116033230714647300979783792342227463830837548132588431904561899897482493462701952736695813152669543377516401827833049914015417603585672602040329670977460839912410730514391034098095722546270944958755116171154611115287307706729266622724815627461976537185293193490826958533783197414983719738027861945279565180424503316994345421121126796423893906468146358067738242489815285145115148747121028589110739864097539277107763107583853217955950188010544495583517989399987859953697339849696365579578427729002477026911573108778906640653610705779439061744209624573859371568956979760871573480592424687955166782278696442519756874250783044453109234616988815297820883492280836525767240571707258223307427066041671023102144664896544858149221359833630703702254789715575372429895766157929386950830702919783519738791538239867992061267286476288238068581435674363601785803405274445863663711588306690433849271539981423541986188187277718826970528938062392795882320965811013999124293743319291280021743422165456291017032079362334361407358800193055693147569933565431886549646058472637692718758647755614028868504799200439731262631611809783620045095013169993704507170586241838194874228032473920034387420217142938408895171112293767544827135586011552766629860042024885154387333490297109860156605812957400797666918999891475410471908482853949112916640323022708332328143155329033308542490561181930977927065779749363195878340527322419677693544203118710754908182228933155355794983902673411268078279191639262004245183110477723585105153029768605620129441476767388479794753095630434557477397590463777665200271997445055764032776151629995411440419061893864779560006034110599658560252614683920231649283776757534203459686894163045840546452538631120715106213584580597440417659526607366253059366690423426788842270819379990307678539360031436035054603580134466863806286893236517986356692234930051476489630835399106466947555354948214279103155449089491549954808761769417300233653267835274836504801434448694924839102532701579225844100226739459714672287240852694352194561894112218643025523909762305353112806977494261409105909154771913726293976555026479402386973444259980193498401091837109180351791866655392160495921425803916358829415413384895613596006711963541578508736132077976220453987384758885910053109650965111515713811329735481845328531383094785944302680681043832204755535229409316440958902097857966701906435761035606556184621468438288740843405892274708340146825913546421111594451841472259836749368248638863503419686953343454231183047820427396685741516473098314805891451531001488731671643471624073742927890167579535983724810974163470752442185601106996805023185918561086044269077028347049184442088009542541574745367461530286592631348214101437542902002447062211499062167766568671472606648664772957789643257815899878979175347812873235562875662676449834765920126076382601234618599836328375588321198684727048783076169280449021778798050123034170877110675182447438790738561251947706079969626006581267304504864838268677690295625300946580105406913901837089884551700448659012522379644319272945915944218503517529501645792035596602957271151182370792619432217162987670456410439957302862506338301118844239878999110728323971340442291360024136271973902271288756048891730414390802253021353599590744982894584926601827290767678034502153789955843135119622100055679337296041769894530497585215191966016622535327897540949548001085842806969926400175530715734518224982817980340772396791948592628549449773648262929412182055724989153455755745579292830169079413396017584277966261773620750197267126251055915101978192289537377610733439064527548927307198349771507986411394207948841870241874563475490190150575175226630091819497669193090873828853127930220999062839110565979319691533199689425744937034316811035318278635472435949455968712360597988320695074767109483973835673411874308138590072231919480406557715751041891518193951988942212057086623308154732879259175937575417908748458709296494881008152845570204021106231861033769339905006989530216025296734027833522378009410048818487830234307942903560190430959923100987120250812382989763315596859791541991372877225545775896663497590980449332363008288457103129100765549361080207250524216846247543775984359560535862907965091736995022220060212514210488614602864881612503794949458689072782495760754136315824351033171768618704323746005530367021278893626855311593982053538108329721317267508659673743726090142688920014413345177471417550119293648160860970870836254994759411738098601260285594884529404487341079242042303792524933036677191184030955309275339230518156377377911691987684111533319566693012616851184182129261202563285660193501044279023374138114159941642107306999146227877862270474908306206242543681600561973655189160385733376255082473630585764633586483883728984751492893923521172203455036142019787757903790889820507943378719235774678372812409463823820731900013586993930152375428132587894964598630147606063552670530763444680450539642967009068473443758733014635501280448899148554691160327064054748597716624306872210593729755607793489504991673728509618211833907320473457471035444145774008957651109450360465205978663271225271676717370130956493168691640611562703007486207683314580287637969066144225669230472842264213845150145155999134892571978660124117120784310447478725636518177038166766564267917599057431145955269913575711965036431877569165018570469357836545372826679684099201273262228591334701345718636529853021674375709022879469756069265496217349430649852911353671700511063529852224067545076797949999378357528775789116784611632577866386196143368716060456687171817337418414227784512021156370403465805351553987303260595798257757612292718131094143734252349294235716275961725011483280473003557247877761509586039453805804550388866073567183462074725954172948127514408845467607397540524816773436652029482801116420624532058058180770491642926994150055484460353276038525879810760502145619757490211470561069485291628083609527186507046927889722389533244843187561496420201234300859548140637402615587978417266997553236371231534696452142685571879124874039022759575962737533782103237727689531150003017802850172565326092562519567453498226665113199287148583365570363448718311261912879703380716760959396392206877019447959291623423775735870279277043557020644338755462451612747030751595182892373126026478845693095223661769980954830672384001307556480967722030529150313059212401827652015571315089742534967448195123654414633624392845285995931015076051556436958945488520539855110866814888453903045323686748839481164014034418708913355649075058421567937064175766210204456543742743714235211452987919301205279407769536686352203089406341538127931290247745468620291740415491538776296515253066502125696419202577359874887792929457097556081757743464982739533000562792478431042201687029892166437993870644610736328417626694156540062045410427273192050385464725021675172326402062319707717050852840556840810800546704666701425202551639942004087570913505929394778863076143044771165764362509328669421251846772088803363081324837387739084215967931993752846180660497934590137425848357060901672805087864802802665216182779846976351504327324274272940565907529184089826446868858444000511301866780998851155069214889669093555752870871180560477038360160808260992971275156236395247529727956798504493736396718530112520797337194748050038251667426697631575245768624317917306630872478173653910248107912057650074641626939818862389575608254402544237026453921477967068023873248700390415122880567483521549549761387624397880571962619169099343251283404835346239997063876598028270428609494604270683372209572205086622187354327977029714252026626699670714819477561860796443066199599771434049736695601781872842524002427288123738645369010344135790370903573544283198006379569909968938711335779018872872507230371510439809366782243508986178793117115703674469799053640918980540296123417505429006081968747606061263935452112967608732331932477587255288522590408046884868113943571940797581030863174312460684701132863532940402310646130796905356373277181476334074377741907232234796399802694050127451966017959420660955985125117192270611681313359356498838548703605025854245031970426271310051805951091855558605405097229893206476690536484497708701218376025333502790071062378760839610942186491790630867992502721373436721340205703594576749444004804458962795976620973439426351169642970377502671041496824567156922400346595721909732947416870497546199000190643571811349208671576930595966071795049505785205653738999353884908107510190207956090887925206246215964691056805555598343115991917771211848669945767391517503684275793110431522629090097368950464228446076435278809447711662502052889326446205623698258772389815612312047170927066386060418771286233513992730362527046105688203207170335944669843042332241651864277272412402872699807033735579299008561022477911666624695240070426930535775347100735843390123874049486522005362553140647640398698526061984011342740654467872848825857815520842199340358451896350220258291376664628214316430391962586441007968797961654481241077000885807310647547765441470836370859940933877552511592275452260737546460169833533547522451458221876434674385276895739929685996106988730483265592752450784268776030702103438775350035991594131569625311855515274056484510345813812341984850716926796700700254529077219521693013431175684623753346408966169216554351627885159735741662243901154535234582891343840054704336176496482841608950505515554535262053705897589294887739890456026021315326403778321770938726536639757279254189747759337970447398668693818348490282436914697424984971831182661832328950803254082887091127193737022323985020666906805465686797162282308543159387580364026254946380109629903008684442185779788400156376298447711083426303619755237713533968769864184767635145963123278552953813060770575696945529475307853671891273102771901269792223664894185110440395476454769801562964022505015681733582956758165417875362009292182088277607353419219086715253314977423664926523222792125144803015262447852858975929939463755415451449901702112310792088948394793674163118107103979950108798211595411635678631943583166188976239472568926575277690205861648950338620240607141108850203279020850002114393213438667257395829572621657504116479777728200093696225217398640902834069667104869061494761529439415147388355409375326602923688919405880265126875230229276858190116463075191836054626634893323550895853389930006213074360458397581971814634697345352121983014692951802782157312388080531030153682652459702943056791821274712192708290053621545998347115634220463868910285936152921477736878406136332864848134606129765148317724549817830568646266285197413524885687246870366632629770954150457920992031590539716066514231998698529628272636486862871399933492496381133366293430179149347167731482839687373572197650422626698322852865707345785896825363459501993860576879402641636988417004593667398251439342720398628948733444752119868220580967637686073625851544945829498487013017289143099570529722789541305234672393014790230204733720386438685658958561517258474716293468446268538047681156945357435614468746563484280986859969390166969558906887509541983684660710860786977188356315926911156586600695815254161428362768265400908880474216041724341163837913909151479015797346974892430433104500809780188648058995515137544954746871217182223841608272210517539505300073634709189568745557687040401751667450920850533231113807783919951839607850733891353754141137997286704808260169096777489706849890714910175741189609571666510158598297001489035102587366823859658398746574794483952738202782001866675187999397336368116415402780636454110464167903473466310321678970406883634757904632049731443640481795245546769791866643869510628563730129953182495979252621643852771260855242623907438210729294853740982017188254618565646766971098832634301830348825038105278023254719305715720495895102006991576594616752564830237019811612551403086385267496370341074376440940062505690779205393880701775031892956571805627330696245818089517238106528951096452771677307186414552285370568653186402975699862446172108185032861660979226556506477615788662771666392776021677560448262469280222980373397370863550936543108699911239917873673939627634350585281421757201659251127776159613999544250258759548858200878134510668961709749970472873331485649763231478116424561462274764177581583707055122749961712687222618332372590573723293483018211482074608746745272345528820771905545561293212115745952810418519072148468648169220484434250438387342696931633692490423285209956180986002946817064141400051381707141813439690222890349122963211726807506956321331029143555566569092024389648556827291901259073996678730797863646709750814904754220974845043293078532854642056268178988530759044066012397065480520723710040789791722022823290114752601284038500498879704778676777087359062647322318863167175101263817764950625145123186227721360443700418386764826507246210526251127397499395984160482537647234409803093743347250033526957860293785351044509414996074835583776477065944527303227770517031500049302417766418548564599836890355848565532249678796439426813939077287041052759314071329707855727458263994092663671621373606657113137423124492621782734720701160606622473802353066312965436854669734811639175589857120786959181116774827348506137332545819132018792493675489712446177379971612986884920391185943323452503123771412386927093609868218984235436100136715076067973885402482431709701417346208494919233833943740453463384008217585316537180761143908220622435602055080906694062396673178700985223068758753720472786393283366924982084974672115947648913894703989997772913913537600445514765099843528655431163786420825831999465412851763721865216574854574349991474428046468156895091067625388667396155758611770695180675695510299166837316199422083776776423513973016764839901000849572077727644123835563870430283105794647406863893603066129911359336454626474689074435758157393357263176633821612948432788179588574239848930253296026011468544425254627657162040241859917480966486366842555070821825054880852335461075486760280604514967404920341943878729025033636163151373300864690078872218656832739890614769998859211785607315871950284591187939878267024015865480821028101491366650877700486830071046930770992784729134411715376870055631585574652319725857621741819389774999888057409332238427935610413423707442160976065500239290004844851946344902570615642347118192825092967659656870448990803850065792895508039573253271497392452571074940314818935226107083987649966340940133073921496331740279237260386488723317841758947199196195258997296839883915393700594555719284722813427531111123846071982112623650653135025797847742211911874093685344068115351441730756022136734555983961411203949307061499350161735742019910292236198520330308342739156878414831665923976259475073079755982280306774846586458180810341999189689763282795207605495499596425659425773386632091450667027990872574005469463585217183752503720657279799558928849802909783419409864052213910315649893120574888355421373537834829929790898291067950547921974751818525662176088572087111838896865631342023402722176901843730189753837604421793205014597909140193634236077575490590287589575707896189933502585878784563340052839159387000566708309803372333095384129068678680971920699654463432707108829847394831602789934080959576898735636801786385462801255095054593190562107595107235483697424980640232150182022974809686796579308646353072700869377822607060082166738165235883777552495853959639899159077333271071244038922482529210863492376374164110156010059055671249617032596949594066186316085119585890634294157423966637574087146426971630742210697913333205075822245349417706143297897147984897348726246318620684395608561365589829425049268944466800979250079510289788979107262754664495543280496135373579871182141309110763073326421236895845800355951439103351881072919914919601517161716473211524884717725002472614575888912433048171589762070065672004007051643393773852941941165406997307176168723767369987473578502509894451271608306296404853138962783837557599643515300708865973201004241851259034785259935555971566491546487911144238825171408015599879415767331650160091082279885824423887216063716771350726126936527603701911019527128624103763083007462885098931624968260531782251664217255470642838343357878389536158369459729187691655617097362802861786690789202905072549030788032171114239744638023128768369412513662016349655183139391453808985741624609494374399621643313554861536903563270347276898431625297076675354371479154208812596428691261139518801651858747125280466121806530692501292127949488391582952063535640728929075883536234079859388680727545323459125300787051042036386242703859455004256660980165197962141359676539722618279647602188434777630386167106402831931944497369952000969823995871090144990279159568111190495991688713049302569092288220350457810125062432688315548775245174868052707884391391840075012333229205127121043252269866620038688490308066204204405762017266058465112741483498938336515697333954275414666538915776743847801100939201295144565956744989167783948076545047925562508476359301904926801557114310797929306421262543377307591901176139943402981220592173390502811283375578809927279215387064094595501183287230884945822736766108280455368039932870891857955400659603347052002589928590266552389178711322131537321749220762860967592387951401511742629294103266617813344356062122123338121460528623136135978339983478395459960815990109520556181764470901886145453518017616315183345734860891746067211364360250709433932617800763660170099695942905125183718563724598447432911777915303782437642127905691683030116922195201635999818082412589297356868325312283641483944789357934834138223802154369616774232803407076703443197469044454630795866299327995481722724211449427689767295873353703809959140632794586320498763071707767941457056688151127332281482437888779574615967882543861391539964328978513463634889899127599822065691302042504095737034383167873102311140100813915423838050206046040341316456128618999382561317650096796622128032669950626001653599325216552202764334162687801822861198175638371896631385345191284264371555201900478704665517100623254309252971507490134915513537172193856335551962909356278132832585449999455178517816439863329830188627779268086814934097345361918023067262934414515979093404110481908693758331425004875637749599258560822564792439204343575550006574302748335124093712476703335932205083680318244956124862417180420019658749140813120949774213811522606341567181986087105598378555773943565962757004917669276895609464272120449793865843210688241108897407477136085171858816961661923457856401408064821465712770592459707177251169759437898717121844967391731724949715894909490637218720206460129812088854229634876980388299889878554013415657436694528963273044533545436773708759784422210347383097419861011292456107565767556051450694574102589596901672794119393295255009153161676571221586723330986258621304242381860098889707297651202066888755022358498047111118405777301954607625455991642360756660189988658277467917972197835464262656526606305463832550087657901711121997249787181925318340223880822189342103069169697336214560331229559811397805094114301584142893096866331548222975015085207107909237650993429209434526928146066441566166372876472549479577953958785573534524546624011014419689928508742802340657362738066758573388392531296385909110947485127978648965688668140811934102753015925278762932886377381912551462722745481452847589795247445642282444891274062122191646266583225983687116685889653473942026925496096044520490378674472532935606178889858022039034297497995510200489142222763910485216378035381434731966227363316182915566872315728512693404164335395011660503221849693891531520847125571366591688825969523831998447371510640139435774852625830813989009501188459707110643801453577493806187112036848029902594826343159385788344453586962496477238020558209495801832327010167193176280080691657617333581331453269171895332957459758204417936469163043068200050896234750462374157525682999825103063702557367603470660827043479632267881000523379276705881691646775321596393401509552965108142567354752854257574932763569108523849619091894762797610347422304671777113184088359462224848109075185878145496070250822796825068044486510742108448462410146769569195457146053499765809526634872756007949400445441813469022701315754303421139900070132053826695911846015926369587614336826962803210269669808111843890248316026193306465312331450368845608200981947003388810418360939560220496018089121823485564350744927740393825169423963015888725729088685977199389112490666465019862547034072853659597999343393918744032334218775021811196911001710788817983465007048461895740445694096690242648670049204826768834507515996290615129557040891531227433861321393564892564105354125848850190401824979788696495614122868001202281939459519060153202067215711178994766360770300573524202095422325931930173491963831885845294524432653432662118406647224261865053320013870041509192851412721441607639751092209416358186597820305868120621376696124733041391019677610441152447870428705843528905896809704353286763777301256342074480608829694712717148719619530656353208932290067938201796684179927464727596352139711141482071243250962095026688326007545494115430866901555913896918863377268047376231186074303751359003531606910985654446184243076109596640295024748382637048935062129863697337645826992424910594735165797165852668808079758411301174176151784253553907592460449822683043531889254774552541860551296289732521615085142289062761672206140156030491787421201936159976798162080761821082628348039966890353919704990474827505490180943342503944403299333344142226957430619773440843287278226572405828253090423255405086474983350020156273973980127631375882872515241055510042103484961421247503522954631795327738842507877231489951193760112249246555590333368674647773027259855020778304741950885630079981026714512488799937735844819475710137099262576874500645399778750461328651924284165028869816665358536700692615269514273694616116101805279945615990580676352088028409359856119051137757153137540870426707782197986496400114734093132423100438328695150469587928531726275913338758730665014344588863848049800083442141949004806698318074661837333402775693153682946857014270610011314458436307205645055908622266198700676121798699047239574857537947049288268125553428822966505436738486787665524509258429510504783607613400533021919829175670761666817579059608690360407169052329908784941654648306962286806315396279182561774518853445665348945297109279405018101637371767934898690533001669619028013280431801682165871202398138623780516490402484873249142009980568404654982687887219145322589081890569276979732349793531969417392362126926221878967218286537609517494394151018638991793830515133773019585522458664312656873826307229418915327458984972598161732211244277069585749916078868171475136460917528280359371902758488590967446620714697294202010519991129504279882877602474370656301825151547552709757977483209222641667113976769436976543554743487457558821592232536509599443517107215870733423087808466385816763939005124989094192651021611577924992077951283496793189096632367879002184296994365459652888625910093917741164217350976300161015377684130004417579708285498027829620919314431329322494939913709976919740947732482661871639837214533299700284377642505916655924114663490371263558727424258283703895008570184357182120886415324457584215908302122602858083722443437984449955188168405420582741690446014504114215410660598537288664295198849199493016384222297134190685063457169494738308232892764413991634075120764945811071543101744990578712832889421454396900354873508593341217597148524398755094112581663809282066464092114780433712031783068528445758195361512277081739842539704530780823363773720335428790454778935244001822206227573547856979863915104806393154550544655561640658016423223310660725903662936322713565617996215368608146787752413330527299791218820716674768978093691317547401934022208875423469416639010402658823990645601497899214259556278587570434123693546559328524121634518279060661383477608064557118541061559344904474354123570100917470911605422408445302679331735098041762121698080452317946262990001109295906741630928844840848691531404580444141584929385064743215026978855800072442687585644725801971176804912961827868621391380033012301212460448799350850593394016525013749329249068291315001868405121870718219117207524520593477330945101186608285625053297707100995278906483829879215311525270511033748338416591345144044665099694325040131193835348357145961259732568819310849557924974903692101907061113418883128764833640314621611448822850333802264324233536954293882127956590746273086514567345671366964106963671163115847907091245396042037100878096489300432100039076621133978091036483442530806819765126347873987538645641748938859607802270402116116947381197283270768811997701265973959108586073800290954584206342422967779997212978547750198296671702352109841267518535117578548691610279166554516741717551750076129781671021122797907280846047859508422788706657252982337348501197921643385184536845838793831377080322694766634286393043014354554284070445616986347936552217991899769661525726551079206755068843544609037156890308652782631169341869775250698489018995607248318905472631923615492896637745541216769689082026233511921228613025450206677926946343794944263085574487469442289663870093544777010476227041348287825903282989208422544821821488283007692035231586484098833550718479988338054335256206317830413321920858558385182529562690122507082832114488604555099179677524297840523420897406174181603816987319754311071063908222258827976864955198241205377534062992689701980499552279004245352005209814610784008108077689904420185256556071128539862676401001546842446798275900044826365915334045579400801093310109581499094592136471056156170651821168479240181319870366036729114956716150154972833694497633509120841579866193528577900816148782056991243281061285596084498554698173613896011787163675008960215617926593061729532482522772998328473660198814391101472967449519558147013569908312918368417195601085625941226803855879284650689545201589991954404176832809170506861353792358067483554518369675108191724464377837883217978806377455976001557873003202937755419330405824169776152075802408524306979795985573882550499348178573388799547294695349879319171007643152524152312234376664671656318983247327678324883386793281485944581476515365022941908307806829485158638891220123358095629145547659765116977072193838235951094317012404936136704349702565166504224139404816810397339565821618653182409819468076402992544162044873372949135431377650883834308583647811318439260822781178564797114815079400504329944056556571280468693915903420771582283199468410995854356934735320728154392243056705605520816423724852770366751237903289979033795539669075152344632012607981127797223088695206706884145146147668521307675964766905212954616809887134553078576936262110572257755211447445915843871640410648513122452086348281945922873722248714970950121137559581404580285121868448670555302398573213462835862124969604030906523542085295135093352975557959319387303734930251722147844850365334493864782609888878815696946091380209474774456280160786773439788606359782115876652269956376717418801340079807120781015629702193002679628964423059311245452997653283205650745739361491867612244784657389280497359044053727593955902019086928026219260248665876557949212876504956846975770449351864082083470693160669280057057046869939538076950742684670867930638751828547160312308579307326611955745507318016959841920944821016529790073336598008770420291689170352687515786415257191009419739814296433110848548244392207288314453046556769104612777513958061619024693976183266499865282061688923394840240284788709003681258488544594958491940912962338527019775985522850302201023050692771134929976674338804577043926392204940656698330299579957867325682228642261299188454650662413319687093065298476372593389878244354368445727297620783344152739049956553242957733966260305095182820165350105861667042308258328099273680604193715870129341686429251899719283260113531137590296908750912797884395742279328643818060788960174700291926200369262808049648337399217034534120831843086528014252252973755880998875590917784453198223159859178170728785626632926054628997626367631413308499517953813988486622584284679446980710254865792777912658649234633594822221708333705313895410014931301442263539259597372340329341935983235247780584766703652942423192779859974671641538305339042623606302232183672519631333718998135230692631397394912260777445979411108772164741902304285904041482555252847684791132548055523596268235120668552801384037106345673129305738203800788000459751154407466697945644042285959838151250496475272504178382122522846066968493522903751876547514400446054047142257279748714496210772084424059692872989891640767892681050905003664296824584979445965411736868742532660406250375012078081806149103799008747833647669726507870736459938958723294590500127185133312696099080494943564283249417541710049859410347200401863155896076181518527562906947714230442257198728316821256650428766376075390956679358490734926766929473216426215533622896677023884228621901048565407118003592516352811775212506511897253809620343697971886146804051891684108225802016515676780734806487395912879523302988855645974349566660431344048272860561041618237127820762337002583905648507438158039247943555045989044665237129025506670769529862449949230352980324388724369062330649476073701142660844972144756872712668024752321757166030118521111239286878112382324371101272291174231358542132819079371426187194800608613792097380689955421506137239057633629014928488164610328104727847697812635974041586804301190937151375567438230809295556082160561298756250639026361534297345737770146860677024990962052955515081183735794586684394079216096190293103328597559491087697129711168213611450439925203903669010548751478679815716624609644290690498581804081382819608821289566310355079267551999201343529285398440429614985185013525734931002789937230517852770141375781071470278056649707084849687917297826146574810280643119662566132738700582563930695319876740529888430341995061989730092547896621054278722530869300990431925727126784560384793298431141338709955217568100049087708658877575179947058445439911052346535650465224380057061353581309252670564725283322047378459293997280676078934244400209528562522204557665763440067873749352565402655012466162210211135095148848205519712937767681899891807783543911161946106432382796108435703612788853935358437517015505756894108205447408392005598212955345508407909253052614769498353646649660467027211813593381778129329173206699882593847558761143093366132622039846391537118859275855834296791389024382954337641369767054976901392776761279584920691505520851379356900054166375501493348905022007745525860040189266476981371549568121335906261371068580462838903348397193176988116463645012929558473258880702018294999773244862267960766353935336905146911417010520267882033832298378045716873467946894832907047913375097038001561083324156054700581702167770794962222403978730802839268849773817734788345013720742061918264484598686260340864893837984617170654706977244213373220039319206943857866021790470649636695505440733280291208111171349670662277646594165896109111865107512153277648100321293207322398285414363305357363128155939681144995054474252155425669924352476753290116142329400725627975594047123237056637775898152720093417533953097339852866542004894949714008559031393413277239729959613417072328784014702740873132683675763806283416930500375460620952669136836357869179399763323211041613358668647070685783992524665338963928715951326033738693133673815489405661328777143483199137867432991386390847197829175610407256208168802515251100808538028573000820213086251543253908940903960076426726634147571935060466603944830529955383411041148387875251105151301760470441481778557799304297875260366073930473820562709631449842788355694552081790623225571834584558981969322333079788537154637293070446998330469088010994115981639688297828675470555866414923237863122594670995349344087960788930714795711271559001943661735950531095145565159645015631815184376610850082806347666565997569955493782389725078263482686164741496085300274133504653703666602753392962534469608210735616544750247218788457167269364440563493253666827541426495907231540579601112923411550264266898150923039813674307435414941845529264403228655883738991045231346288488683088478326597297018710888027974494260374273957457444042827271352649068195422423764316769034836879135894614052978937718829344791465934604548154887010293488239731530596487938441177255290496360269660377994963023662505310482029727130225453984722143730995016176727643350108685364631843779033753704738614213317870777625631573594989438411781280421406705203122539994503000983704038705806528039617420209242245751865449684373887248188441342770444207893284060311115089563317196264629779442274914989729947894247060761955075795250207737178064681908354109284091089271445945881069652494076117362846428595395316482613827761901364265376680529147188029276696463915769702634597789699156996871088340056600456120477204309031817940878306931120585836020487657747836162152793392723633703864709303808241145016967798363462823861991856109191108906208777593128716146428477296957317578012241345422368296427496891903209358606249347732171532314594001479538947088897126167836965515638821668166429531520410340829041928358266586973407265740287260817982103944064681512274808238986937949281750611669599991899839886693576133376350488484472518620340640067754090963450813192437317077149060232721831579619679154694238777791094391539845272260620268912173480787220611785667473819112944792937179551632611214513587592112153879350997208754528332008630377246977953815786737761949700400213243050046298495205392581326720585778155033027773267507901316048075529399693696765407296029491342387127996185995970692974215942132935181115190389966510093118255714511046086303922104658423154612461696757839618615268476910935899275004144209362206780251551062091023222872458711016487016534209993650793858219243480821344294061411194168710479402990028860871039349276387116832351589434671606280504653665617756076312073528438084987950474544727507211617257517429777366100361854496874272320971310402023348502260687707866855415932731273940642847064793234370528460441002322603010196413708998381569107996572557073352725341231161452805102380399229568520569482027082626096397614406416297055649866190031551534930543988861436172474986366041778480599190031530505135128829611621863168095291354587023326883487809233509047258479966287575152068282794288606838780923544741513833371640243992131641900172316288936329234370129201338996437905667346223869766986590989295013740549323030010199933424146431465771821589316233706128310276463973320438351568578262752961238598143681298778804188835471568433767085738074776047796137197422356941219641800464942920729108994969880779710795393352261864517632687988790538818425528569887400465187202988986009871234499330647285096726736209448049364946094870608686614514187939370150293405557452545059280222333254266379193270975860644375079786513056715362874718129542596897812610188337449002763302496998016011760854870445289310513962398646204540369716649715243865815609078587207956165221888218267127273793739576076316187009871603064022649511011466857490040512167523824384376074785975637529818555171923400728081107963603291415966887755310870497586923687760942335778295165836967801555117704030047468782284988640243816202562100518495046157832554213433256051428708212817362781131870681533461674396986590261246452319963582413261580739349976479657188855236455229154770873022657101632097864070086210135630540952806341343856468841707626248761025614474613665756363889710054483526095995306823258061164079066787020924775394194857931601597343475974594286885762442703992593351604223922374620295486664601697588794398478663603988115943655382403193427399406378844849875631333475647310443827635112926978650336786920260706004340054940500934641226597840451560245243313087727274023057385851453136727038200196975729844783582504285917432197699768943381167105155056439108730892302362840314393140622330574671994792915853457419321677996154633419500715615677509383284308411438944814890836677139173919086692047041017944009438918111411277029870850165961032808415959785957587144285357951484354944968252112039432654046599308412862371090327771702218474138795733529020551211645682287246338086966862777591754079158456787636527585853817332586102646150431131291625872779540398993734742160789935728285136980146223502174890517680400338156915337626137527545936093472951016969544558031921959742391415569033418228997817295591766029590720704580955415302811184141861620170704909918692636190184990256002408222696758175005896400583709389595654881363078532507997013516379294339312213832171213305988470642688966680472819881084799481810090591379370568255208365324163585164023388214453488376752481241999303404526755834452544916863744565907054221084859028358764585097820128635947350866085060768368834598448492986292536120879383950442275385367271186025240137480284143714151729313228083064621787963678890142886061513176163802922767002699249600500383058269928815740167843132422920650940861919909719194062747486213583595531311320653272768065268545860735602888531029236331928164641340680194639429074286801545522836812395630547842204282978231742314909874329396817264064804641317762953908003846010006935887080675555242602856257818485563218418965101205275847881395270007754014099725118430286173602382200040515120922291479888309692276958932856698052651217911399428460812914927070061050658972078447999452455665877127426870662410165892791079821146180062505141592540196175314493227629773204500509438238426587687213241161533048061218987140248499665491673309651453922349862170678705601790958392916397158252988157972453720463335029467966963482623063396278607245464169663758979525194245456417218877442762266071275289812079602700530190166301174088246654252958990156278790174891873470787842076289447113140480173450664383366677241107120568394415794781568681793400928639672912141060329762809151689934252513171582249269660871456281739440611282440900657308669443426932442607788960895836396592035828598107231249485052187024608603345606047099406492341199034273551705652265791222799922944620694938621511642873571240486781690443281702000572723568160088065594688573996076293595520066032715748658997949837951083865905119494949478672276101687865778737598872403531716992143278189210670440386650986256004668784446845222865279768675110404244564144849813814581561332186906033248005917795712212585673021029022645473911895117415633320201321961402262595533577336160370428848957152731928442591100845662033746426845901356594226977002140019190524834081515366232427720485985198293575106552687451144272034926791512982764589920554134469205779474612379197315889314423109840247701302222064185506806103254147743845368594466258261772656004905959506616558609316688065559062360096713312641630791167780039208046329459040271455976005306604279282664085945871810283836754448397812389487323510741074463993457905176731413453446842815620338807611825370924926849538306864294434520828396380404904978647009274642796668736240629414484706146780481116780311768983601515322797955474638212457024058484236401865748006080858835181150469636297855524847306495705901894576112323820118548113257170119019240588681322239967478455917456997990622471147708184673492506498770202694979825618120320475047244217211981590820501710019844845273275339436100613444483338001836897185080249592352060028687191360429591403186845646421127138322769676078073904406443063558811084807274615523573560319159552404377772182772522699744144272840233835203664564646231725466707315135636716552034911454138019787178877822543032279297829420627541226086016823606691820033443579788960666395630204791846433988841705786590111537449038753857303542899191382180792699827077003024016976111066787193516251181140446091559126059589154642908364903279210006949380280917799142797442799236690253538881525511462270012994316089515831959475846379533858327766435755493848153377837254151798129706686341767133186899662602564501270993376718530943507119397988435600973118284323798981535942137739418276382365963156209883566108659249932799862383500796706283121721786711228258249634329247023622653492270433868761618529398000229392584285451190918280466493822387175994516906113878814179933771953974572842668777256060056191902081604421602690339217216700583166274445396454113230662886001044509102368955928178719308791672338152557083077799527444493579371483724206619714643392969878464680627557533988539523648416914171676840081151955115939132113038458841518522368044685723551416985318148918025317959505910406843433993115245600830827830145500592695365331639545201694547411455031956780153200960919738543274349916287933509657843154052294406474836145116918360832457820846951644218243040297702882524531682885926193580375911315435417307203933603872428008706372198123372920533012083972803773414910572317811422472443104424165078082850961615362113952191015643781871603764574302283439326526673842208803778934665600851954908965242969507971228055619334165282095287134187083743276325108233173057025432684813538141305719212489233256726080270336397144213438975797241218172232716834183665634290348896980888873586986027232968988032680829063713205347984504847404013628135139446338167848168495754456633202710594654269293371399050550021639640312879151331569829387136608788727897191289022286370513210178653409415764302089204021539454100006451108849587144585084086694275958952051955862219155846085435398518915269952260265176179088625080864670005184472888426738753962772050024021218605829200720692667455411105741836240563347206584479622588792793353034383805285156570710415677959991626081545816694341388543603801809767728900174920313553365959258439644922825748113889602761480190941522466095365315719265249602617573287359588568366226236170217044416820131611211159830159748283366619631727114919109598779669291945784174218172424936657370738396867999252851436625376248280053262004325771622726062808903205664981565896651634412173887435336235903290078636577549607517485401512826664143288034561119583488814127399962496589031424731425320266336280276722291148775147086611042469914465350036776666468417120172675109977862920385276096830025011030165227959584617259016550442662866025310030205255553344082784469674313886924678645424216528101957457148215506938476911880051495092171674454069536274751491425905245643648892322584277598855455239352812945573268839076771964178479855445662863281218891908778780762133564322138497455331479756190853783540879562134279193812925424420505724592549667730020230603141632355823710884662222223040058017967014498416007588908474107556548712291683109136359381476169539316712364788402903523165016586976040161602352622464005762417518144931891287416575164874884511099548827785753675849587468375895839731631377136332726936305722242490683238880609702280799632953005769356915661199471294894232143288711414231798320247380825526566314463453167637505169440577560342043633135569654948536964434975582552503249489895403880662384686085885015687986349574444008875876634345908263258964174471988882718316496652845103288176755471744012858522903141509647354673340854672542581649120074571218459710412729258969981412485341861871411214862183312900646896999538508506986843034034289892329868850020215356227287494043380760570604870048578139525968654782400731192413332191291555853766573975895179196386160705682981124309283074893889098550331315565709633205209304893551298593224160647317100033312498575875455569918861578840251218388364190721392174749912678349898949501283789387272948847270956607856231542874380897923635240120920933061892170744041772130695501131858995902399929430824091021122528248172184297355326056245240112434726279715827076883080834552619081293613750753838058974674936041659582218056506697328583937886503944185885461822924996137495283011702009039043973808370721676575529012979290739763411179765761670243909427182272081752383853078179161001776424501595207331964204486074279728904229062327947077984249709434449786757183940808260821308384347301446226230390149813738454964925589889542051998132326587972633836121508522365581811202141814285181510410572857337052232170814927227357900506022046044984348944755864139117104003645446792578223197735622552359933155259897810759249000542174503600585294596372079252432336466215078981143031865777443163357123250290295913302564735730135790363800370749887000789515781438064356124454073534816164285106865743003193027119652485231485010642788498343119004557812336175142402716432761585127000625033265975521466698709876518552338052494308004337217882328649935676871704453595752276430863476580167034718533116898564447916940045795518623025206772632791849566919787056479701405452547032852068946877179850646443004957027862281874825363928973692286570014709988486370218842232873094313791967714249270036800500980058470170353947867379494608601376803346845314414446108328356503954501753194288581051769768143956709501031905076443403134878355902254040214076690009851669006630412302165042726357702357793201852511171223989408435713308883941744497834928425644842990405465312057998774632541954303962483047427939581739897305462130549669013967724171597105214806139053363223672835401708932471162657182621358407349703606429996222990230703194394318026679132640424424217896220336583227329169424278091877300749402997004959947582823253245555782963364164496946925308366660634513749637328177071256362144950538936136172273879921337753748189936716168856256496384869495942521940853045794060059254072805345584983403878188703385367328090253377578333478139978618508941252327729095293073804210053331147862531816906008888549849691248852811862441821467624974384295126488933598378623347350213027723342804980879306121590556952797805509698655060419368736120773788093957316347094125257705818179239746598325577174797204708953500247198085742579506910924695381161375461359320403382549314517009129761080310388410416348782921259999324087736730789820347406303914114854270738457500465439969680720493395406085502358688518039221858963826534898220015880078957372736073894957606825785536185778581142936031075567414142055409469656041755429217201366045068207178631769435718883287793833894584591834003696345593988826791523450599217180143455659374378002532058951539405650843371606544600215909745870728994411018325107686154644496798434420259883879569892751691175050147545932610284080232428093901401786962470811630939022129333887490045238136601157482613048546150634379869959306023207094372739596727668545330069932508651625846994280529540435056695957829560131673515727956321890820555415363795030584032486050886189412706362015019062227777899680524276207607338260579510438049150723394095608627435839113866794904924684193123096948336668473496482492080481735118863311459651143648548979473673418401597571874722155983653671961188181704944769148170056638099381531483346713247586744536248042289128707179358264939680216212794842023109090821553875160638412023181161434745578232138818280404912996797818281567877238823960521203449529823201100610229928542121576898300143099865468180220357895796056454874234389418777840762239980938417786226268501764297623973345299357533147656661078127996811220074870929631229251035364347539190420417879079879613634429290472575612279349425761709187903456343441550221142585054440472068999277779727584310672003217825298315667219541704970846343492157994216773299836385522047259407408776331131705003157266967364944479894013271413956294614678794832922657799938249149923833026392435923862634774545310193618069708622200859720728684961974447274355753089784328014603691630989944186749855439981096370861168419110610224428132518194701312746613883881616901139434134088343876538099584322546597167858662664287817671449706326294001838853790967902792862047278064907168507296264869764803803253945695063354041125707523615133021390931372892773305154173308364952629095569181912954729466549197288805082944151874505214446337295971450110535401522864597461635744346550402606888064005634035705887661417730731599006752883227654678277102030703241843453866106709591041454370664941547270736073066855261005952683646517653415488507742497004593128187966240803797609738173336603753044510619928380685880106971036149370938764009025707983454112509277116645631250064642164543893324240806728230370360296569185938755273094405529496131004384305429748626952298276301118826596247576791356396754159531120289154831141937868471763387206454879762064411608540027456711241649894518113255172530622432347453057187939436496308174981385772906338577834432225277281141462206195000760794344387502958944075680676866333536449965646510097284892809942901301883029776276050114826830825071381878820883808036230784185916803630831152108304883452037090764547387131703558177344074786014858124978252972082968100305548271207227146710743882230788265907051373619205628585018612633671839125035750686732164505920209908950501233541905244235849055357222063547477206287532403190378518621385686273409742595790131231268464431085604439043089824857922221121669661484537842689268988115283991223391015632893700132870907706567341911323335319685682134422764033815920874384563674344837088711914943968338888141941439058893848775353501999358936624942620317107514301308670276193337599893626375968612502762625462354436663170861823772073658611851549402830995856719657113726075781718750496578592543677385873111447731018971182882108245168611049808269748521257698900183491733165346622452072751957518888584218363831900751140031004177195248422340692527473629358301960622836814888559302161023363347555503969340458248688320624813416575380685670334449739743075878516495389858341697583542334083880061585034744527913063718903961777796650186287085749910804980214989130620872241927758063219582335483323879200313316241438269494603545451492198580206816795721238497275705271619805582216688873482084300577038486254712943654874419680705240095434899234713559461334454475136814868643969543115409701826409464440326249896890149972230374751672259712450079515487457702428890256242068133336225956383681490784132342436284940978321904238165526276456494198446927384613220677686725370459942656539365891623163166432106133895767406803572236757369680900019969467153569367642680395435547099232760612102281719880868017261253649576664523499706823797104209555150723849579686583681980240093064089223046905833337612033146138920928796406948143636664740476778050224014067999139942438505096087717113975738784414175611801580407966074078952830035695383335565337876011024355583218800826009105348684487909326444816344318094441476786549057643640826258109873170764631283581158900570113484885774861810151820666052469768760985554168324551412561771297489472697643992889424028501848309209091754115172049121718936522380280299112525445954017691135128267695093073868331466052091284835994226991024490774894011523105808542408865650034331116635491414964777631122233797483029130051096727265435427407272540582916485197917558349513942274458414837413713643498258228979513401071100624303997931957196467276986754886789186083740735067157756918663180694337602167814797921617485562951593620032089421975559188696142317728901964433507516550575281955403272183939027463296785514971176351006138026024902192427299403484034786315909896742482954798010648043100057971938166474898739145203463896570166522104167499311691105453309978799149219659978719946743561016437226836640365540271504067718797308656115450867663151593804021728915059776572425892610540870849943876387673740786961195298388106792463729955604558060796690715859263779283952553925660968224382102221028605881554588676438518042739092557559705365997697641512750399618624245809250057459316180109554949148851639744562431396179774092310576347731338307919183809030320099360247016369992010626281336109911562725770496184979047793767760467861125653561300188838813627879981020617344654263653405807324808312969119999154718889968947886375646685682380602710494556434473488457097426429810412244110693396906419132417527411657090522208361994668882460589958305381231149551424506294542272998816931699219152097355337400720699676361761362880277597582934289420978243505681650417112637301544888991728624807354407587859598285393259795650507173252865350630611019089377199465508684609825046289423124898676588554758819736037925955620010083674082038290884672508490347491803900180157761875178225238185040925472974253128359514322501889040820541266766798467153215084538568224706420113518730153202703739249269187718906822504912845560377129203503551784996808029494015543563335809099689054136133177845203518084504752527714265185115205824887875645765733789262396032279101754146226241298617469723268632582951363834925666215970557724931104775725500555447205275855710012949326159623489525894979364346404123197039878169609162791558886561517715149203343444609485810027439895427418854427535831603696464094648411811411225047482832428974770177553824530987592568232076009118715466746500984658650767492134584692024706313622737619965122411629100420209442646829672922789370021186585627219307743020301275391986132452511719574159293131623788334805233357814524698777516409641334136903788930964240916432340906885901235979194883542892551431541007935781720601344591993196879149889937270651875665441016644677785503647360680360503949392918685194546616418452935192822828179117528118394991720616657471293461938834083292641247078107894448257032189491285864991227020693763841568771632470580833517923413265216451757019280951087577193448420844223692062128749968069394005523798947625749478553979610751717079833248940171487616170238216392721881309374269802966158067362505810962018548515976818195665990537016366384635564155086144379303091790084512954171333524576159262940532633368119920175053121302160623305850279976054466328032523368411348359652367482829656457594661892475169586256297436086516322101500881535459403864213575777192339562105971121004912159059347104924653866040480904890688391585460943045373755689942700082661472152708775236425415591557403581737305204662807783193711677315171096049617380464311544298275222892501057210891153665060843759601209410366743660429093505943187968262981941964512259460310333507922812288786532683950621617593068707095228376707116342371164194100919923694099140743475679338177757759901047581140154473003217199251574733712766818025942160591136304247071534805628138109722697462232440436353872956231205667876210945157629607492418772095403819517083643759812703411878971284970281524103667922371367559380325479395324198033565146295019880857856187885035169348321849263915941855325261648896430136078524332519284094128843677217375901691743014360718499678425059286589720947465594407744528759528311252336938927032894052098311379902262615379470458849331549727652721009201528663389765434922234176348670360189183787997833131215284502053883365137927349567155722593500467212794247097980223492799080766761514657384360567411215985126771142998420220356242953654988538407252837749878942202070730317061353909951849691468818380947840423304492927930611301401406102853854859722279547077267843120764872468057499267777380652097975302441219786750600703923061821515445457589995142405952789956758135048962585735202575103281585721482791170918923221290404376362353222890122669659541566103405014858423574735780757817665101785829655524951437824865807055202787992009131308932842039182678817390995445031989256179701123053936038375751880414769022776023911405285043490320668610706022891825361995217433260538130098075840571801878070234520016019043568404656262500076218733985657521484344738972968895239489845080805989506404536922944159627836351784388504438575613922635450749281620698336380291743283406051131757478507109215102861984446792480478897220349349843944419716194310855816225322051664707394461601890006056602754453443770263437638688871558716065073776747873191259017219838570582445218787162556739415470088154867869276459282948832757607993940158666964756156062627340562542634619017652183804095176418423751566820287100482345024198099640444077688872417373829309835637135152304982854078160359273656345214212549216435093514554950103236574073543635872892198151641085216618896021134032940643045340853707078695804969266736686622262384026439157105952808517994175127756653835763071474489359470302453760084065368479296006723503841071006809150494085335053918703265796386976138452182399471339798048291810840994711459760611553808852381181798884657959130350734759947030037579964845746323377028358783291564792993414406063605049629865955764747479892873345434807783251181015107947418551511414065758529437999563776948289052233816789613585804533343428872647599867296265167384661797148342023275156738512800105286613096556493410407146593548795852966707728330022000038341538873692157293753048375977670935014656811951871262385279241984574460681579932865768800903464441134235582956413989208977588933845705734806534539558505511738801887860911711468637919081976964310107907707813315629121860525658437201369049668818263520547818135771936967282305202661201281650836253218299084964989939894739686954606627964434747173492781898783151858168398066625689743103199317666571497432507621392106762628792402801277299356816233893756514213613781302003667593119593348668403957267932006467243468774965023783480069917667393456315348823400224466173858440038840925181660056247922578947300994524451442822834227270483631731478484912213180235479658439871049437069826035933880846530199128914686467593680740144722418242223592421657814615580078713899002284955207683538127361386313612516843064869064167835545586872137552919677511878914868479070622778052581160161058277138126198025653936908187684113024389155083614775677767993796170434625362917302446661512598428022988584283432288948386081947186886939576273713866022347327013871434990859463973598471242929230876663514749009073388953988258339137066335145232925578561310354539132721403103363244185474789371162928435241989486743658143047858767974172467423833213459668696372404537936571304297282267200842787996058690168745324290632626012277486468976332028333677327755085053107652113866593757932256448281907181915623798007720138052212569101923911215258289392058323529620816411853676648185658761132643694240868185162481550972849387728128230957993735091867784068041470755545921226525432739991279871166857191126707812168745536451630861837862646394573104021278240624899691924463228351496973494172105612577370757237566098801392379258140950014176840219358312240792015260420521526957969990405840952120302766281117473936655226789477393953914352421392569041444740420827711470614269806781601874130855779725278648409173279692180065837117384759803299004197292392054392441076267037765907952691636754398047486780055337043407886143583667226972253504764521278462991848114968568882418782334422256423405857870028325676561338098233698113398228711724138848522917235707730682782705498531514732974674997972972900400661891832054283701581572301424884711344536154469625875656890402933941635086042659060988260055227626797178875487406216854779460682291572732829608769116087929333141039222900268056806898702509781083094275277738067549805251518152093944736560762798127860568771477456870332748264436344864144631262782142290282819932870350056961605215607019212891690750588422935733220083469487669503893928419489816594713130657847962739514685508270590829924109997961292479251209560160633668062615161299572205824286298381400487924039118319262859191912594288295244082997452505441539525073912461234263740660910824687284664471763671562552406883107561136336207897692824876536201029359101262540613197872874399974648887874911618972361479852803310932142421553931827751446839514269682850509894881603306653529631132440079845314715412630557010983697188528335538340635324926191892958532997668242465091812396781999208376382528810216878804858466928431741296811206547819968905742398582232654859084922141112620243650831568371164157195236212498787284251092418098508085097915893085044550475588316327553373527867158446497657926164129486055620973098317728109147992319844112023914619091100551763106350041229014678224889930073902849160790819394431614911791277183494330789991608214306359507423253973857787669036335107255723395592266173538835256042940157817208932034851410177241770317440861256276840525526792606685334882018016745521496128856936305506669695442473762128105384702027316979287227412439090779593920924361555760866882671743643629113190575680197216041839223732310871667423896674785983783593014830782141438261845325284299409213247344727619951859756827679422687128099860413534493955584327488775530004283744922999887498186041245167294725547812964769595500153040626020861766491643293166927728663746510301853685540441296868066977000042820611789291329192557970329042624129443553222898927245186109446694142585554916159610822787103506141811337553698637373214616369975034625203496110767726187004331180748382918479155320434119205929737429823938966992737417760571809598552067564233675089068547609506003877781209114155186805754705218555841506498401845624250988958256066748209782190732806932822447950482415806342359162710292868517191709738445918870099855979555644940043404312280929068429643854675984839270966519426302110368991110154816952900087406318486526322273159731309471888790705753795725247453180450258417427718937942164295530719398790182529897410001294407096869025928969622909002628385712216003228087401231194057606079538627583773833689429029963594299699340520117361030235030232703941288342911124505164160805340826110436167594183904363945704268848326285768703442306438054781394378434393731276118376091025353648970358685958788003244479728315022554794593784467411429387841662479268017141319482924000215388985670772347837340839440387857823205858261345111713996670036472452881748904606281655839262911406487240103528863656856788036995241895784394992781589131782527755906444687098855335584106953137752401654476346050741736657200677158425316129158387300706692499993172755946259890883617139487772563087912705306904521969172496282761812279936458977516849085083234713796711286647931981364296654857679599787784086505011428715120581202419148220151484595106279492467969435575660505549643189921387701909342257992907935428267427495351966194671076077827392514177324408204259401555754114675924435194344965389705728477584744644812121308605280963580963137274447324833876526946590098968709300474971276932256497387226440070322809794067086910885008490969704822613726527759486017375130470432773230567754270386968284273052910652081055348129084494984083028486064598504506354763949433344848952137375278565426575389431610449052566658970108528737018843046864842896323722176722592174699170778079719292530720755567694088986380618887288403770256126208740677716205492128714627218876232219132053479439374429500277555408409641213658516977716359379305751888591387926788145397917966012172581016004342111458158561423615452118183711050679348882765648646120717597984923153517132046514700070788307757083012042788684198088616033259290835515221541740969581559596458599610167236803351752830779587248694763202549935824509171548161133626165028184054854240788362284491475980424740794552184635393081294085843256250363887864754789848249573535957478364425938881012187348260654467746194590967919769253850767282124958726889932249410586929881334613220881748728281375362537526569780287192636781994517372343872434515232970641589159281771453471857680965071975751270904623413952155320504984613514559101357345022048732809875693006877357157030530043630270497563150824426452059990399809442928155936422340223008392306576339278105097209427617826927115076268775317806217097616987146234223423762146519770298880977056904023802390791995214351294915886533507101352094588433649958299482192197859319148420621031334142727313022440159600427216608434007632366488370646548248874544328311441450608077816443246040630458926044294384784842566468834271981108319841592560917888624890653909794231676714976208483106515782925636445772077651232050009333918052199223434388529398649251188161959581136788204713665910267797403259823704611900749557474806574610306435569717595586615369693643196321280733398041637124862522946362005253962963051017870136355713372385621172987926982346075483624669048024360125684808423355964601552837843988188219206813007984256961175026933476542488111864508899404121609386259549899911154420064513191430434530718039779395351534812839062823268582079535144290399936736309662331122232469639405395640586585817489088420404487721185890992434285948815733589205905381551729157441575543194675929127936914963733050199824781970150143558112941305930768809832506689437075809488692377156598098767807924003721818995839750440678699388807779512652651916483222567187857864537590552051436874731412375510876780292355586405893679869074502327314717410432832419797123287565016150376494753755590763256453399388358550079856347441605618994380609659206283677661816596786682835168744212767853940935066154898915597381001504437799326587897575770745888521313129715584354746642617062157260496340084930493279555159882461897832749270392639010973710760065999952401517416342991550914347473995251810992461501305217712688111785837681138756027397283845297207974476642650713588015038047883289405810643651574722547937315170472263401742264485870607353911582921376330490811172043349183578293940757550317514835367868653978715345659335617482962433500948681851589543245912634357715048817799920946158127093967668317910837873520595080882568954695173232465001719579599138193807893584158418665607266201179575029836701939309755888000951836003028686575691632202447259668414087576666467361457742570368965031957367621198490979149849780369580571132348212133214578503330077386272458227834200583295922461420717852293911508517328752997006980015550539709944214632844402629318590220358009101993573875294575363077923527935120238701609753629705214169098114765123482372803689355756975514701520201081383367660669852925502246266664025103542337377395069404549865159516560864438473128287459128095701616163546458153696845006924144763848967535934707380743945944472852227632024921321838277958673169630063995541950658970027055880270738277456629843957219133609661534986754816842623667506008357337951355994194952870364811011337461422178524474654349013656844748698192686295582389531289748645264630964481265214566096566530868219027361862006248414690652091099211514913250893147102884524293784655587210537486043934117744526784932381153779296313400103267584285055849450118333739200106581750445350790836106625005992260958091248405736132364709513828253047237873649578981437314898675156248525400922517137497707502678172265507356286716219191781980379725117597669074752085268237153161821534331231374770664101016662623586573578286079414024731532000654999803592593678544470954420060923113324667772856171429636572394691512717818829895818344187948189514903043141741829196759248016223558838958378868721126147127366703656122003062526034932453875562746238569635837775824603817710125392764881966012614196681147774716942187170346761532489919479911625125287535680756309403159229354452227108321418480070274433339247627199623350920448206485354228560707346317235065542852254125833720132190386642485028119885659950545664101743763326455871078942075951794616858260685300650892454238729802844418856900384526838299213210572374965573989377989587145138755552746994526602144739912410197933735452789555608792517496984134748907629993532021270982177678354019465212204820214037545252226084763914381840728891276072225310120307962866287137577212096867554731106944542622037353553967943859579199277070943731910630867015287200814260578863634945168612423494611597497975104287468638687668208229961283778194456058468259022181760696277557069323467624881654431358241183139414615901159677515775651187312744777266876276859767521574500328330005633118308763436698363194080659776306994433884738041531401116694060981417673332412600277417780914464894174628031771858512133655048469876243086002099048121612523453577372918558795034901791121520907939988513112226518099779557744532071040878692059211706187536780087415285061578609935862527134546432258679037356418809804429312950624175250307333053371423747005293552468215243303904180489774923669423908669448416186371111066023413593640361085746155960303361421068947194164387106289173489523369358514341220616719365692353079822993911068505488340286998540005526335254704333047991522566094821943821944782815613020120709392168611637158531889696717847062570828507222782589304110964952558678691812043625764476149293660640280226726352334646377945015421311539884516005186877120149221679048309309023568674567825395127344958562358910514924983371844865465123425002431108914988862987086070239279181897048964456701617276343869340562778479361663333011478859062094573505182934990138547601945093466413002305854463384344368470918173411489092188241653372991109405955238996237881054675495763442099985876419046923218790864509184106037200746293613333455907292019021661611592978821032296234511148034349194338460214308355089752679526133061032005136296837120075313542784781324704079728921102415695210187844237519450736015883538743839589262267343982420431519103106431784424700472809587587825680823621202187988129335475698163926534654362011656572214500521573103709524139092879564763782221927510523014781128632257516256104383350791340995840275707624460978366057093201114422911853976792077372515716422517587702416324186619282976582081155351489445075350955131649102926357308284270010153227030476570501146090123637597094401637907487727826603526174287219889525598814415943222549077106338105562563015190525577030688873535850836671308108597099810866150901508523878529312593909433162224159467569056351735626905294328355231385470112517082138509284608607906534752022228160848188030151717878369300754242373702969797900701880107982111591485900660357279252972277964995072735463193577761611130441771722728501682596327500624257691399313841945386031848301680472664033850482514518915263808955204971865864623715120123090251268185892608103021373272135620367713058568233285728422084713349433604220276483993910401817002654717467032237764958235747575475912308649558182763759186635312287536250380427867261343488261536263622453533352934263681583621783217555548551085311663297675114840799812650893599741694536357938207402707605551675274204857743511476952799947291532939702012746649344989586151603383213319151885163319740314411718018094283274807228049169365970241732739157656293170716321901123599828756509823456149867955781449111541289530057280378557346289099306711727650467392436889417576101564882387572009652129154086685724380400431560570278330441499866339714497128883063910446506803722373314428640321845352200690650921411108064791760947077744627326370468627959554498521452796023781881446229399930201502512563781201356329456735694386875120061292177185850041589007455611146787767534526864084757533318709277625859360482726433498096248887651924338123801042047148640908857500494718063533970636950297309368419612244520432439896816460652019943726887304473172397464315132085255923589869571813672145580212480761078567660380676772849717731979259002151961391731761422910318923136709771405920565948097591118426798808051139174463865960974802124599125605895166866673142429481214901603586173912511537866501720563054966912012857735642308565464317474034380292276622251685145156957101729864190117376829312019205436407211177083271225971105559797004426401417260956922099995346596312789452258747479574805985493281961823366947227890518046159909463006170047260843234636783870934528242024826066279755606936488869875361075284333666996121052475779239519724253488585685378924129180236357311982002278418052544628478379934874574984120356197918476406637537803989440910253195448944482403410118002064621084152756841973517071857866855667144260428993104610727119262186275280332735500134880931956963652061004768917328363525616613503119834540857999803100973416617388039816692402077325755789837290215011452329385052760890726364008374003189427638587937059487864688296788774373170825438399876738518590347171247934182268271308736909399730274997405100900915514686342015353872887818414007933301500470855345474980134217690871623894771645224391001314878213463517062896800979076698249246991261006241931724767845813782655444941348067564175765040643162609374558644136898616227544367164381623363117101418415556268811476122881178314882994951174552676728578582403551745798768034913001677540415176661057221799758175843297246584073796771954257663862460485960406920836495336286634655257867332548494919552517626318355177243608351081646612662396604627926670823766446216099515409359821783255688096417546880369468875734583996285674085158554836719152401624421735888570005590824901735417806486583233097401212313242154245908399062010094241203625547649163551939967601937060726373949238434892452892495507523693821234355206268606977488044157004053518498451109846326682081144168194792802981523026232164419287690732449654471822816346953513234737996892802279858164264511201910026219309786469888367836057830696195068290567210058888162837870565833102052648881768208167535511537011151333839115602606840641034806810966829171146857642357713294157817850985788739114636672482636069819178105905874306983924485979867873474141870527213224998120182609298033427435623974532328061535141533912389684588382094176603146865210641734997233462214166700013183403301676251845710878681257516722075302112678664190765376691725147745243074759829743470051509848288392607407407203536934210377648375816076656083254639390807495448759693734379081450418007385338990566339175929801454358896604487356899574493420229544821036033587924435384928177534979106122826058051764537897762440417522548983145092799589244613885535710361453169084488698243984076260789901273416816655849610865223116735357968753289385658147648722955873307194132089246596049915906469071740705844589158174518657946208995569838880033679297768126213216992706347985627886605157483634247612295818892268397762445725563474636730387279941423073202518981851177421738195951153098349026515082183248200044810842825925432994081435283437679387268026326674366728720389581209396149417551770175221587186193570776967145357223892757084708233081804025591757276606307642218095521073106799923261275378254633274671011087589942901716710041200679919368456869513475787718801555947612827910209779892308868780047482101031617612401251846198941827075822132570317777886697136785290332486625853910853041627843947380725843729754076276083697194365823028637512452754163597985196550976408072146448967542751756543504092435700578108959349709312029470828202835011270881665970311485533871840584851869042320915847189278421157994319918605779995123729868083844788697388250529269560237973469983618927032716500453836724589318182232620257736538082058328484835647193965883995862043934685597372054111039661724667979820498664470741686228627546650309463819104676016547663260025030961623306994930372290573670316367492769039843993340715749128196961965066978426019818733057805396756427774684430914366961154874463453278404928316193732921987280511117478783466703113882510826465758476088757212907728151138949735106123807350530161232026769906220293136326555993802256659012310455172542432044428724028128441949110116513971251839795378037132949897457920379478353648544988335729928279787316686994396518391676140579391257928565523045352006575616283934729006384902534991907570485273039243606440879512059752151009444590269284981812296059208909041919314403322906829794267647861627989046355864387863419668672837437791867191680718332129701245067445298196278304440123398120405558887425589227635764542185106827608383709583984153149621026956139451831243556257492506138504273132839235322415947163602870238819785392540332445077184955192749303730947504767777315205115288130500341394494270293874753347898004841251642313334648124045286056304548207028306253141911379341267585001817028590578751893931310537579243562104400475772019769101075976925791214640409992200185934877951732108478853446877449052807391706827984262515377141100152158934803963746201838360778431052131993735767404416635340198980065610681389637965115685922601142383427812174737869789944612327181458608060030133531002127147451505915179795464408534955366675834991436587927958286508013631838740486385014015010735180199568191043072330035091253757075809096187463449103021303907237279124164394130147239239820381946316895369021593680872229279787457866116829708152183952450630077715744224385241500316415205376583065440094520766142195720344744691561149285371008594012991121627595029367064324856435813608419356087839500675041982517935143489301004585550408735107641930623167990496301758980227663567488560411428124793325142089489825009302736458690841397218414182390421955233721839782645353734696773343165555630315735317739908365117587221734666129884804568402576023805865706935267687482689614480097316578020095372008774515519711004528435021125074657440065358691776910535357511278500411136785373687783297348910636277591576546165144777427417976098089175856298706376207198311032726752640622766521298125382158654255731968671624607969160917844911788503160763768242252962273349168612605707421345191774353524818676439113203120436298740688691232439412357187680779739786823300156480086277134817794799699460459433868348436146965669551709908406019566715835973523115825541532574031458323834202243546951399685524235147474139366196272392170818720143576383909504409661536665663373433526059399427910127862354053062710091239877067164158729124924381917475261549557416306427733128740734938921083016190780226055920133095465782159094855757616087546177790603313752002127431926587759682700227701423057099048285916420793423034666259561893433795384604123592344174148612545441618457043857653646493391485337299890093064077588687929312716109632012440711178137395941918619123585178216407018471743867421592557967831081609322954161245539840812729117409556855648970384192575344278298479447538848398394668523652650173826601161360079256742476476923303474881735454544286333425563488881919027442549019329616583148526021946902904256623794644797444568052516805660787648658613766428578867744020987223453198580401886323023755229192695931263865362573242994968822920477292217607128260913034785546443801436365118138627048004080817556899340871694568231183043178666817552178655812215524200672624149625476051812945693423249988062719584461865283005084674426580514678842636327514297774870533507850830495004782049971139428881130168335569029615475195843069469373634712779516598568124901836245221307983896016824426818169988367026731395975169298989521267123703392680757101426792248139201904171877183645098016561726610740010823273345079607958954824121898436235628508849086761544553651302424003138475952829417291648057112853906408306056802600570947723601410808243419586774138947473211913880351326888164033046014714751951214293074296661473598670126531930205660143774407171351379915195479835205337117347292157714287306112242111889256789131175444346822937993306527777260702903412575491897628490370688832979665348802417671272972310862034865783292848925399755222294972062581295225415774283382006750003013197570078554512500031046768238890836588208101091357684757262873430862226499161102327687105716041203470398415872184725817865445611582107583990787599969725808481275429447830839682429458877837360139003279908504174427239436554141490447219677141238570141810413325578224328391113006150981887337850541266828435065539679511933725304807900876693642566324689918723894668132675437214020070751752216300365098083706399874264318929097250799278904664108519620735952585565738665754612258151456181663403669029954657982915864164830445707089980695048008990736905519269908890045833747197182565503689641787674237469459546422150967198911359483261071172827736828169073895537120906022181927215790566689017940888742232267238556785813155298694267993256050840927341133185610096925772876107846295101091041823001627209931684418166005669555170095181038823152569850865100288471244996623661202475656399185561994937872142695064411208421835926207979651578301265580993384003264084318643321435319598392387470746493617000496202427265068306534323593707261404146588519623655237324435458830050249508378641166693544154981532732369809923218462051266470561777134870413130807817292069731840374199274317366416078298040723184196127957977986978949726249736795009619852544865317617914728131953718236715204370068273715559247813746063442902348612360352322835052020248050114353063351147198694065037307169575646332454229132013197763215999192815865818694957767145826659566849799769418633739467110954597786718217307100060820544347508572287274478662593972322722650238443072251936542336208783789666328828646106761265879522703512330818345313475807847033245512326073233571457186953835950124119796935657828356233656937451791187670916439387849052316403443363887645322689752718339552330749874888637791562018413114578707015381059148420281580802894794281711399109294431345745383779545170833328664530906168408449775931371802469018213518656903021441051565737179180728632887158483981863355133269887352078158687967422551520140610994554299292948186556395498493804301443943596232580403249733007611408488411563057690854102216468528898131600678228159937859449547942246439379107345598003427068361946499386150006603361975158194646300154789487173044110838703365196552298198197130292274360879211227911548382295423538838963475677947502509039006800079225277277414563671041263508487109807383360295688901763863949714135579954383402565746277216349528031739579281649603135727624820620238804610246250217350514767265892934776738630143347501085275222282087930228395959486215815945024281862305773218765453575669794947538853567750566118824403795357649960488024047789658598122631156163744802274833398978009403331105242932102211948880936844899225790927423110507158727574798924173956922201614857058220152342424568496979233206687685952762421578030900476324467538050236220577349670072805404040938577568843590622888124065403275029645925632013368838624346598033114617432216014853132703573797076369999365650087232770507018082054894164788663614466250978288674390078241375417032763923171580692650345146202254705204254397202868644941678344296288075413865665386203517696269125036670930632844046109056157307601807809589266842842943558268616195625371394464746186300092692179385314938216671100464013891375070172233533347497257022777623754448806969614192851419492320832256230194374375506861788152136518597839112393204857286429652552203993529606871175147885057940473556465070652921310118066888551896700565951452634635718811732208670506076749985742967019098454237174621437151373326756035524253101240237969106159140830488148651062055485907646852150724881661993204690112265442267613811767518535746667148746434181843572985585402503204511163956691297828091994779550837702997045559517014335800116727704769105594000554465009765176633053534462398591552319583915844555296473001933302794624502618365571598986014911247948917216768432234293602806919443450885840748846889267825815864387256903939304214066840299097773749438945847061578148291223304385671038981525082824272092404892606149125257085374204729020474460647824375562924506133942331066431831649314088272492262884096982006295895620024620431441789586744585467075607336716423513793136321348378113516532800748867210317514725902545972255539962425793280797756296464025225104211252580910549504259502688011762990739877964937990325601009035111039149622248267440486618361774014748471340037428079360835605713684311381548674617837939189845382970485674363212833191483372613979426809770243897436061586023063103370679630947962604897664470345481408646449210269952637076522380829784231400962477552973374468941547987021820355892244387025506111602424687514469478639352137912079542042974273311624176107780492568646338164756702461179762189731770057374838664632279604262552478954340948222593886607377626675988452773196313744432394832101957936994695389343980192627982237324132275556596855763400459180358610756449369028761047582648319553349274951726359048585612845046240955309807672085207040800902655583116274722049245158672436114851318165490737710905507049841523855397941394740006209701686452083214404811732226802835910579546267123009997886988397353970714828976568444150444697480538819825046384739918570733272955987140510217150240941267354072968185329775416197212181661395898460075001970616116556331722781130225063639386829701940777101648585281402016256700176273189387467791823086186953218523508253235841642873862669393646623452509914780818271901174886662528589651756151514550239073555687394915471781736485426228230426681573869138445502908185491455070020212179155877569983664688965955445253718240165943717277805617993994160443378032505434597716462713875555222207481361064787806156060952349420685323440020570069679967538885975874292559586568486718694431315236079170092690393811072199258926874438358119182093482244509836796523886539122423868989732606297459847567762009231512034925702993384172539747157944425554031337884016694560703421790733438556625884019805277043454097322201234801785524302220800213134067347226919692418785763105530703188964390433560194861301284142987372521364463495661524792323677308875526507238337579188621185651406956254501700464229651331178344161255133312123248432304100469213135292181104819906941729112478482509251514173154231596269644816422548115555184544021002837786250682401815363020910026417947672041656894182523679249022320319352989025287389352060267244711662174934296971888939907219647038511492305566494689573625881228599383835580757403342894361876539890280421376418943633596280823327368231804038020250934170653219630614212963109320838404592589906501528953856718098041759234461067183073071536259017251761900702798664754522288011445788232250360796065710300499420057590550193504681941304089851316808635884699833960176988786666242696721969974827476035123196946295409326753238586713169440292252410721741573520678362256233343185707574327023909714797565736362727176722421349001461794829137699450050072316116547876014186325508040626053763924287114879280577524917173778018225686814157005261333274696243008603398271586600392553315414070761141930045699001699590590956993650840379415228845587183308211673800244057996368706963076769605952110315914183418245002185704121652205159912864208203103629542390646573717991404003359578834540363204972846123800361714214853962649492186641230812270954270612287463781140564002263929153109515922801350581628798067382135855986984682536950609038912584309746328536921757230247969730455053064142420194868513725939655798394746941561829726976216070835247067937289316499940513888474291580509415938311831305952360933495824895189340659779494056493159314941719797459095316068149796190796173685470794856372086548389552516429530553552975607724614464488542899592469998744221639286417230757219915419241386340161301646499736189266919137196555956413192661876599005287190717786156261614014123574791845087340301732440414838007349835635755029038172174393580758652448103486809735372048807509942316667956311834660189778301960109489783807951226119763727239865336926583361830452159461353973516541798694830573143128519134140484634398744279914237110532532709630007137890599093187367715224847122255330258449372480983018391119496799139633334244064969077843332073687101133616223083261380729280480877515981443559609015351930742964120705863391267597994506440709813908344386255627438992957230320438637519724025383582598427376909008199801497973518305368650248833397914938927305055754361452725540684091301704963798236558011935324761978803174109988270865938146134710272873387284626892869693173527522437584688996057859297519657004675398969656024586100544456993442072823246540127192241172144490335359799267901319682981796151105018852822266330742123255623716190053995954583211231114956837328747407565385286221813955618871738518693252758184720333058531792309525593084126591591111219444094967754542631694257355981566746696088832072397613997183630439590785597308633968966612549473370592124242463822870257984655358536536168035837903827971369571690760512867182943013556815293953225631136141477062781927153657772856308379910771926237375116995818567096136513951706249301652769013546681864560635063538244718095834923726958690622151684662402994722674907278348116373831653489315313773908088825371320562312564562971349818887165758751186019861977148294642721881600810934878390028548739917254634937356387825836134307008082604641857665912689172466339089892049368171056371411082011435898420241575213110700533653093799317297489309945562122006678233373198848074101321442249128538530552573774633320679101404515635721478630051445194242607872581087803891296658468587624004358733560134443192555935849559251650919259573474407199108663548341790201811945132739351146985839711883423567727157842773131433530412546508154358077044360213718895674409488224521611855131496299040955527410935308385428880703560141363043072926019609592701945144794574692317171195105522947336579294291898713386117126546058938023466053199399984835918388816790903498320814308101922217391733853125866695988374840254560136875618145340012673132862247736289034870048531979786582525406493289281958483423205390859516031000461646293127104850067020640794075971546051930651663799282029849588633228562358425927917987789426050655553192641422497195075944114839917473113016594454859293831828472612835635105551046467857505657377496613775474847617717280411072460151529974814635036399747842331451750367046695067384447085934787019758810486602279889813983913507633270348026135730113947692259722349737237119106950678175436787947552363474062319385205783344623322593387664940141647959182608642905979581842853804728195381055175088400050642077599071780654123398070237622653817838360719702351980600603559309564057098333392574881798633160569609602239926929755255167076105352739628934190707248603299856134632947195526813064364308796597228185235606666539828683319195241982151106454460512780080065537587743648235673191455527202287620635266345344407086254170185160942216557919492456104042466470912738234782245693082729380668963276915750868454960736300000762550979126255191472759604295776774445140284376061536296599608085706725086742619396044617526301039531883932128461841657153622402236627345171609362026863099310476784879644436878360867486352517275474641120766323463764918729578616356234101956804719479359330551198583506623411801354522528608448287039404911236806044978590096725089572636051125772420740759843284977902182738505754808472495860622201193542205730861397607709152260153403794744668965788338858210155809510349354708394283086723684644257429272176012731973946707163019483266491304303884134852353333167834386928428512140630894827984341113444346522731170976517107402272916599029123235794441305222606547736761916723506182775353475831370032744163202143525441364000087680678523494306037727055254798979682265892680868134004281293038354605298378448076143687954302813540430354315207407009441574894977999991832497834041423649623049622077082867542320948293674647252663490827895336794947784166199544023745567628274385522773046903890885043928575960853934964505110466791769980301888298988585016656269710728720410149694553088742211409234014590031718957501021441153608659336002168553904511920360643383162450581220194334015674418010211068795398894678035382749194600525692568088277953369989873256007923911880968840935009042628743301934054141637962421224871766053409147359054064342226564518175370221098622303245888787065256572095603251621897073310782832087453196003347080941558179031311518268380178908500960109285723601079249428712729524313754640158132029060161098154609145021966326858119907278027510990364660083429254002588838343189690357124847180484153424711806806961050798563276356180706864205254995122837030710497072622775364310970933640442742676667570451273348141551684329907377292101936807369332978806004377583182336881789590952123915256885951986894653824511443348478853888206094776975213084949858693936258338615294377837794006430394512179004583118150039931780474782486137790138914756461649196984504172813788852256040640274991327176969736487068630901923745267743071870740475376579885690335063931114463043488115270075460789637913592941907268041640350385728718494443075818640653905807344019026522798023884930083621158320440410736353389422779737274191426194208419834725930523107332399231061244613609422729314057336366703321820450274644357838975330840174946624597617021534213253973930131962276408081007069759467209463509948978702910196019869230240867596032248882135527562849081521602464009498045687511878551385362494084988574824108820619147523375299798084031159550784534815592780542491829961886193897049551164152177816155154619492463329727795983091259222024170560829660369002421522637225609417877414784401579783059870841062928189060576456841199386475770776211145283797232204025669616099332482457950800310560820982381637737147803506190531310003700661506639949755374353097890593887821715888077170168411444427603367536201696031160270028840644667938538117017342773615692159776450971627162737020758493055072530238670341487557416201965256226717801912009224607550024775681985208806665065470488802828881334705826779126690290930222178754011906408440690113737405441696355311810708227812382018197881478855724880946796609637139333628172569474430572325764700616585319437849113083807893101635721328372384215919963472953509382115418707626349308858542848332573469527706869449431891721970749120655593579073979650655372425937281730004369196895502369100244379729918223100059253624329539174820812313684879528731056564791314876248406690461215069037792443157149657642372249129315106412235898389648477828253496648616975798745676274952359870272952608315324377745669830761466096176741832626275344452664580593050485882223502624343549742614926826011567636157252538490331560549530128757135460556571509968614137178982571328657968362551484250456354789445879795305352780762149504518708476924323080626119622759381169175143328959260427834154805186040122825154890181341164379122382604359286444068919472191419939808535192774336446554601231181698592400471632477927542411674727383397595425638148092298253002194387878948043972622360204485001861807198240847161703045847514332847238399902150174921877486292960922038806676997357607953573176698926639335507319986807710089197351867028578319099675761713136243049236048749076948220503372004916391030430878603639160710707607566035304832678485132114960433920195433692625845436888826495856321365168038403501550914396286760281297313366963671231292264089133856128208355222151627965295773864397424872739659275426807172864253851193849571376293611195447235074358816300059829230501406414470031886072911676875597454115760655136903614725490357373628441014785205205184377043701472922636223337633411992500231547767823056594000158848997805089615540327870048471560399244270744985063391785220654301250439740831501184519818237708758054312219578227519715211878111667315608760092542652690173177212709740010109179234221617796444684660893616836193495920143543159277678591318362075736852371342868920740259668006740368075775461964143623371797058652122291084415016203205929711075645877685820921359557824591015254488695379090465538265357306531173614501834162745757636855039256674123716509097283712661624611575854445651973496273162166380968946182968337871425465844965779855888205047834846254238851616420444538919500194830327783710246998010277706110396293505372664523674444298759687675631432067710767669660624866195367095638453971442904627572134139894382787430699983521477955190689088223087187075872725146204689673932079287810219253371596144129914886124794456738072729304266868728902652936984279160939351022256397895255219917274272513665364615651711766838771153033188533094326900403313897773116833973245818133978102953454554692488214237220425924050435464331355985710662334732695105465612617864378706145039084996833534090970074960909255283723889583153522300774357921250939517196502582141799485341633559004942675757086968577367346911650492421229668801036421165387214077485437880868415743970119076447608242801354974802866627918841863702437446929662568371628955085123673684978589385793823298891362739913126667989646680542912725296431101136165520045464265877829717080046567987029077175205386873423909164137039155829721788342055891904516542051450354685165117201120511528671683526798431324344659363955111922267340694649987797557253475173102311433285796686427228787965048341111488248076678327959608683285670581726574315324512354247650052854341664577792359378533266608335076695479855554841760466948197659813296634095363432953904411922605599156747861215684245976066005505237393039660549162294968274123901674941824070489791984935966324154024404592278163059918462859335460429754545931815004600465132389360268280081552728545085893286680580598137587209076171552341360916136237350348904407695766850113947640581616929638296383875615744978001547894932273133277853244335185586299404833155604880863715400250003241406791912483676580089075717819141527126249653016090783665797334164955678847571482893475619982100719241614078109430759242862251511022002879956125483943726282875680883143311593674513616587021423564814832586566961076965127692904375932252289273681601356955600979538485628218662934593456951669283893765757532051944597030645937066425358369693183462318441550009685925246930033316139144986860245208627087718041070497219391419938744772163029499776127942595035314066764469349178454210188773295126166283677422942085387088891657927037287827244757173894078148940820430253126422301861904791925526616129192422760556066575917781171579564475834788891046934432901420577852348124921314876756325434547262667939993469457364453235804229535871415972522163888451066136735566844940529175057193932562840812141005345845419989125392908422791135798173477400836125727116106206872953601082883385667724482727443997598421047600923484283955339069190463314353284743724514759274289320344219147439460271059194637021041159775348856165019535714131819300544922140029136745920982419752419019848431940235541608018458805447883313200901534349253791776636113545240811202578362482094674930795775055496122883595477493534225216330947132122517310456870902933041926932075358579736522438562232486400625498088325881141134160241836353659453645040748494206256822302143431366962733040234972175227253544961732616707394965956089449772556870108140341109916630244279645091519618367204821556659147748083438293677970823883152516446408059726969214584523561764707330784190289796931071846639143768276815161463741635523776854996635205182301578927513175508190771801037006132152231786760204188522799830257546054937813953424101870871068070050661772865981466994092534831340402814843203810916289484179563632257145809602107712578697863860433835042274593344579001969309179746317194922781446971259662416749389771500639417870509848936193733542854213062040814576875357821528206780644976716219247120052177377658255376155561257324495371906698208222648608866959266620874563822147151092203989042849026645241168889814509624260988162542946796630224848803731916479961911207026490489138059403372272655557125256530084359677531587378395343756415551973054109898615361655541212321983603027451347914574474435589355923085804355634025433606121412813987514666987357839272476784392440489340531129821333929456737128080602292913056338124058377719639619761850444642848224280609174739188994646120128355456159797628616150024506656232853560276935182771540980641796323652077101540396169692011928567201178013223950327839067467308401854560814890591892454044800215217337326445004053859849038354225153272949507951799829993532634892215396223785630625099571339152174788700741274284555473078461431809929822642609296400432722098964002225556315570539119490523640161836917236365017567227382066309259557295067568018838094665665484297602617394424402496103022077754659986414115896749135903443231978909371087131044613296733594391393016603700952332197268268180569400396545657021537290315083850060070425675231633718736792065167635333493821471032301568772489376307417877123093545089920847917133634871143419953276851014497586364937659996954320632801152563315068139396201128225050741299749508269072536452374878062136286821454610219195528636191385082227698310388633101413299847393253185550346621285513386849918647438076036444714391837802060100397262683749870205916643715204579190276288666710413292038131867176587446278596521149587754771376315201739462409168886907979880392266750100280856366817748112256013171525882092157364317170073237132388704697623150605783550659065825977201316920194511639603354558025016042400189126561846741386620625514412587244797935134995143244490145017183390220212940770110393816805190770445077022188578557086504946763930244423996094312522245410815065638636676756776641182887522574346421543673083569766304762593807933556858638451101191736359645953413729344264303798523851683389622895183142662739670113593434111674876091528732209427366922955659615533016643218383609424702292119438162459911560031676474000791405400491300806627471174387128135959858949001364577610104181314239876567992476355346953731561889762628266261782920776758725433990332988954569798459102857185621294520072552240980350317405623350035389728127743709882524821235048028718446257502718267784103659647829592326855033893561921188761155900293177830331062491618989560427666366229169419297771338349920065627099655329025925725676706386411618012976092866410785108299230664051406813853315516471939170906137846733751734963891087854254755366081239424740766152691276996250769721738370875603303143709662045369026738539552417741328463677042424656828360662221986529307828446374343628563877198740393286498199386294690662316565935551570869852431573922581906757103737589962635578407719746237687118634454206567887313203293963707167853548057687121774137379028222179972337576038245166539216808956315511480752725863729157523803939364770220549344834945988145015830582914382126515152762437988376719457445994504617284603599354465344223594442312197825402564425249856084347580387180167169732952614423695184511741658369317379133492518898069911810973557017363688334237603001863113191038500373950178347509777762583069194856817509496920862242460412191017291374716811680997882727358710264084639202457677946956483997094568331892665108781645000471839780363465327220098039832923746939809103267328334991971214313394057730093912304635141300046956896988035561854501173203985015133068348494546925831210760494429610332005676324134248383946706528881737064574214603585039330392404123119817435240898593481759172953050653524530136160266100043775730500267637848389369211789000918779028305832137471686999038121665922983751125992106847277024012570033320207574371182905936672258837535112414974981063442705437161887132635981178214648022092397961507041848973758707347524334410568948707498423753201114418796180905019910173628960146351184961301650980121582732703625981434288704034720851753673460546121963863697609204597872854491240028348241394434688835383420935585806845424874306911339650801490569116462948344363386468993339701610947331929524274250746512753676819413549689688826502842115313396679371281596627162292000176706434445974392107845301766963438462993496025250247173754098694458614631087133437796867604584089276779811339585530607033630685100600903709225251826425503415729863427290272898256386032519085166703096669347244003063898531082337857756524269641678754539365520106529609142015312638357304757156614991411657816712770188264341181324815693192218057141126528502217210297381597581425434349091021516596168977928708393597599588915877431939955623432740065027519467959534728154959196415039623801563864489093306388294266696604982018300562907929447048109730780300573670903912321615727512341902260612008539751779060298905452374722990699811684881702484933295696663708650413881781283940967361049912963926335956561800263256248272945583980908344679416897239960000127893668499384196603408179797378981097770238609229297313162071895874989989903145301554496789650611745854200174887003082470382062965261836368064727690638239769631219611431106978069472100509733193924152896133904088447595566944120955770682359171456286494047488520263694548755465783058018892483863773950868708371223565053216536164889307267610033034488763695309438732853997703029202648636744314215583060068220674784506789067358233714554584241083596002186403743297629155682087222078817925480127498443604182138300949704364733495086710929575622052300018121764041392917420947346185518759250971712323310812206395323588152311042339079374846194816777573654477227587243978665441411014171957567400641407805022269182487747916785374521456117605393531382236695253720264180644544877036053236251061830703130239665187312040235568153223566994676589450251941653895006123405053095421118898864171473674151880574882514039569237065849585527102260141179920451259929491288098861388971899656858621256678292222130697927847865322233563483678371988573580776260153237260843793757023025970103623886843074277185957013592871948837384850376121727451047766456509789341692246286249889239357564922699298049650448944841313399255453962816076255162195769020577508224508538400995834621377161721464320219957451748832190033406272177059095977923075471438225995717059478266832311286994286401843095346827583254535492178099594452541477668756975100404256123011200859672678221203290088995790512078608555959786141142735909564184494134443338518905443081485486699066190753134628825966021311439592532856728780770386254239052967551311346386562508217857467152396396490659262990316748390697618362120433449626856011024493261664010818556045128569896087882490497849976383019316614224297241661113182474256342227041877385214015733441726460122663907300692043961648567864598488036098938807893161770547635846216713345432676125464901837559702833689916529758506411247460898913207795718560710449701670248185897942104767358980644501014098798877541256602731104098967163516127999157167117405277835953341980879690506533412036891008000925523970592694642750615769162450007364929775841628857333576900172497659767226375416409915236473586529540681094001949415000408837374155560051107367715430132136419576854056549819794824376828505947019868855819014940036083784080355602544873098850669198440931460399437585647173029564177141916950713130080851248094098695044960097556325727591188715715653335715203273344800634604511772769338384263954014423006064709024855172947973091552916161145508430000229763338334878096657288050620149679285666393152008238401997268688881624528514452948439677618963583570065045845822501670701157974370013247940746169002745281925378540389054825689822989984717063652442577456115976922607004232609294628794534146924251348050113015473167367339810584084260125594098476365672048464765262735037913268615109100570749809316302511411575660335654322832215940035060462423760513416196741743647924656907909386381324877455144383737706868630432904352474381446537572433190707397481313616958764989204898336956436881447719244862212810115888728850042307583510888531488739181849941516290173460890100019465963345797424944024797722252246753632114944480331526904771580030472345865363327666231722122961186681747730673741624079247457085336612521013274980591048366639034391524955199930111075200807097102329858186535208005306127793200516780202713809916738367245590731675696835410358663230952926863715662627968327800282931085845775729546574316971787474348173730139945591279156708499308248957164354043182821572252839176252037931640587229142473050380728588500824097675577443705390944073755838806990510319935120235001184810790400180369478201922629919033687984658157689710007353532840532910078834196730056055051175984463838702161604486387177877854027004022435730269488989529261582107725687842901303238559679900180556613651994263677387436961993493059125198447294194740362552718338554632397256417335467155120833930062876562960147414476304779618126350328335094513666885839398748667277722082466320558973021477495331912304144172317671888746138188065417732956002179541054952020250165454027177363597965285834453507718028439104120078633176014391282986883498584188443073988526619076076817224900836589933846807316531156867172100452580311972923167637670382438539815477360709835160370569306785466301456315795799202184252480396686228472513676980101881893622345349872871139239576237449880852786522416923079960597107025792439485625812032280777251195843178490539528985818328876701887003390230852513863942253785346477638346654365033958294095719689618341701761507521387889878656101520328504939489233115249625807180633838760800880731915291061868889110532748042842032637231423966151927992131367487481634369384999134928528174179045481357815272716969735701001609697281618794521503822860919455997635202589257476749367301091303066982955851715557656011147108106636463865895109189341891096789757818858399582277661043791238728732839928579132159762150644523688893544522317203428524026102594061871594289764631831646632374761356379308212075457723015604796057398230493497144882959720215637510188849151046880112356925597166212940343776525412101578838985786139874524954698728320031920110288648008723121411366156499695685476960769122924240715692179817149140631872758224526349937616862872732758942855273755559515523757478229419465286569334969461171828527096938084308562915538894195282453675044683164709650318314638921361848812303153292263695027121241123868665472247220174098520381848788636803110889193842719329429930098791030735881584613983137251136175439367215984745719771817272996249702202484302308631234293706528473745133928848168061873957290601877530091471702631102277770353807004730412710988439869393808656287200159014538507961636572232102427172212410793857019407596263826018896237873870739824792664530376118398215888221915795879749483789407030032563663120804831700757664409029898302669431073434210017095330529140234576353005996463770298689309222665601794057385770778905903190045995957546183304870708065703230525868325729580588051393978685462955784992772007186221637745105210794224226295358612422203726243474306566155384677876542483312409413005337854440571242774528363212259299205158614073313359567183930422579355662424987052044790157704981829004627471466153491697096421892138446647129551930828771492562878414743470686152045367518132416018323146785923237142354695604453054660370846679428387228175263241997805647930083318017834506924752908832705297920230947996208905610665877984121764988693262432377026372359528324926020095313130999498526448721659728158184374792341887085093646127461167886042922710088382984942690478806471102569903711353100727651071358101820707812892268192885376951464903302346517706969854275334178746939669916960116941002116787654109187898690954037231115812988617623568718481989395858002015385397798013299761633020619730309204149033805900937479167015350577114068007420639103435743189336269241976687333839872496377410617139914513051288475536662431767430868699933605324401216430721138946375835292123770153508103550992975200451725656262480985286525526693108280260830406848564152067155907151504392614751405556793283305471863466238734750613376485203400941540113747611783410316071578274076711965211005962030360167485643831686862157785600025001215121230922009069052724867102774589664353936591369059285496271985578107961151655632383811851636099625959299946452547753521281107728917988626872145459852982098031621033027253629071084316868590196912931922555028395819537528042990295353757736104651339481644833899357491967104876843074481450677831844995692219574134886606316849906375735466922464907118225774843544478519783947230382142348099878441127910121650702894369352651067028886328854779120260756175753007779616829387266331823428227940282422900900454664548265410749052208302818092364794215584503892296024024984356886512283659026194571356931199102390137386722385453736776471572071249821665734486360048612414907687399448446746767531979060759853822729789729007272475830831043416988878563632794773655084941352370340313749097065358673694403306993627649075932682413996095812992348856156495692802615267275360535114359977011231872592206317762858712377613056001631357914819051909716412906691138883573569316188474551144569643084674007825832595902127405102380196261034139157528464852045136869982005095301310820736678528464164009242391075841298690986349920350054994275797207945626001591507694645362266137427116641692255117549806549684074401485617743334044270821167548149472158880205412857342869821133262268748506102909229532242730366550456040983313650989256903629238890948092767520324540991562916700168702941065897910351014655495449281773200914192414422213564288139297268723404206277886530100868222214774011003524014161861935327609246234093683878581318436589801431360119133787814166508135784058329123401460091095004222238268933861523402142824131277018333497306003161817060075285949949556395520050946211043441896357560918718775736268780311052984471585787998266169118947384223130236630264887772656988395107829726297065631141111569562037853485181434684539154164898070389731189615635965580880543089367023165061996439570225741557417405856077376549008887552436185784279497444883448547933441826428635950455318974187241007732415859030768270771814273484754524832882313817916641177401449305297254387216963271890113570773193917648803396320393553975345585929436931848547529925883578890044356223944936100722316823090496328144759759214113349466345279206109587110654482399527306760082659574870847619200605226567378185627436578515281069770442527128837442243332902080974164927694950410982493467477581841644977688825592166227991632208372337296609352022592120831888069520246525577807348046166418878926365797435771154785026697596222350570285998097468594036221095504276644595654013478451690481197676656909630822104134367467997009424234110649236389530206569373170840292234425554541719281596495662658146346198911063276366070502051010546293468913394501783403279596236355726376169539268402105724011660639209518192272485626411317062949959973963743127735076059298505978486888292836978663763527700774594357786259700199270054872130633650793035536864928208699944777852747282590236196741264908625976559366005779689169479872299639221685850045614918134809040993936121496605855099140090826974580781051887239448606454882357258883418062339432036940022448635370499480308641038037391943783339922870713522048214077470330246355838120802902649795897307890920699570509565786870559059499034932582652308399847667482213921730828921348135096387484849832057272638340042360709687141954251435427941967526104246710119979704785164711541853920108959876314094028380149460267663840356846434896813268256194515756404129874218640094119947813164164198158663126991418662513670815064162440276463216249448678583723325309067499671342900060647762184602375240651230446626119309899053314506719947816943529771013978738496268196590746611379974609466510553836071174383616337602140704267001405916538642348320928013758388403638195024110400076519399014592926520418814631494249301004251289669721633948123625552459822369430138810392269769821276493338568935794573210062556367718945344205588011900201097076375049881034283050423235092171596766708532112319590204452401628141598122625487115049756018991384056155736726071500032633836838241114551344515119193749641135669383165102932805282316241920511928378257296060786686800425591368210048446082053420368871148876289145880122723871545262546444364750756468930907892678664737362988756585786303704667194622096062440261638113005461689344591680101421897436151961030866631401119591903662146123248195986277988666026116759074647730744944948062874529071758661318206219064103993593968461545123976553016780055138582513115314800301187925822614545345094830476951338751214061037810881243015307553530221747036137492981250390468971091930933971072694221449703804855927387738632646429570570217023022798517018137635766270469268790240961819906573749216278228562380604478020218756366634183338300162764783030148999663303853785537815416514165526731758898285050644916110140787045699437564199547735737469840022478416945156095284026103057542028233547352703454468122490500266768745118164664424774817801447508181467279736617979272283097764851983580195753544971206780191842650032750668804843737404376651503563836317926050658904125117847414267953653635264310124585251052505077161915548887549769116984318243150165900718675980113864386433793754673162687993103582969928446193820572338248919765818422907123352797046877712925010526256716818234090983782311252388264509299200171784588183576997876577276561528448633009198657509073005170628974625555011734339482989555234492436515284192438800205687999453654534420136968940434061354934693909917205572947684851385489077803730697574283354935069320387247273813247437385933951240882847472249697430786460195830804083879891543357898645411914638613694245447578105488875775715542387084055147717834545736004782297926244802169331944587837870047810800284809088408736376312936359816320623582194984716270561914654374310753451858635184956200273046410562157979906678969462850446296436348009544679876300188162623608724002858449951400534844848194673740396472486441222193190480257124910641462952466504056588682842332912715993817910813484371364830961319618084024394455625776258479026341640033863557351588787905479247970154274580003999168002310192534695532229187595379946464215568845064803125927273438804654615740297656702882248166292244979771577194910671347741763433450478054293326184256367956221208597171792832357296112860289975888282362887298810825641868957050803480287259023661274135258845729114772491230859425711531755582282425312860360902435844640817711244873783211262695434748876767612296959597793798747109725942344562080291893615920616882779192367714796932920255390703403415442918846690545498181896112675547952009488224077346964986970596407468246000992747359084277520724671772908468110610608134425352191001403233388611495069077946898711065077008583700965184473459144746433021097316906157533574646419415871992941601930222322753942781569879202451113976871111099117374242275776343112715696212986189927816559688736026191631993530410220090890218232813361349164981277522927952138879073839023644078865316140204651918479696886778883136772620622269614901378975062870254906046582878570669681496931309553402283125350775272963702609083809134932246379989195354914823395089868722505788438875611980006108879633452038565081373707999163698991518575924310995478758965848889339282597012457178125466689709300402062965820075594673302441306841553781252713514178340678727372882805388845584549322816499001004909745444724936609976576838430240622065528518140888822689869616019220721081093919968236075680354759523806150426474733384787166129458428658231884669569243622933851926208012023184813469269011268420508625252265528618532964758576856306926838671377637959196121257719122794262539266191880524668065775510118734069586027122903575049824096620456483254545669542304293250433812785419773697775747116340162886420381485684048529039515207072024149158277830591778424336679668278036908919125168373076127764804901051966538546636780932992558903555653567350238230239684245617430976046068183315070024115397799855789290938201891464410851448232637685796234857343692589762656842802195639409837324567176363236707375980232353145584830694421495461903265553741391344414588054202224198993840116432340701532214633202735741833182136115627677428278182260614954728471593340896946400761899250609311028956673654447149275589498523860557483918176476531928788758423118119122869679144229463429438022262193080791413027923550500001472077414285657184358077069827867748415052035652281368052896529588688456656278465889941100021286410865415574240664237275875941972031323975724019999950940625816569895110505910415568277966449668483442361618400717422641848782578741728369656711140973022688910201123684697019325282691954354743674477600483966167630108217721763426865616681451993883321944719930162174645560739170952860264444919449894467606200884436245156703151157847225979288745986548912009340658413960381473172641117301386917867852118439383212908123750093097357558513276824615458481590356530506774860068842060801136331736459842270880579796418986051013735237205697774872532578832197131560095196437351256335743400241051541104751178824115585881852050244745781892966427997556938607595263946832363783751728141588371879135025237607728762987569881285606143121674428443736595274806182412412762399692058587939384513482712261353049430327251663920557899413234968812678895505333076603370176285594648066596046673948434607074454617260087369575863069949037530315671636445199724041470292320926599940217831417330248606441204745626454266986484319618344896285099677650585181365393257326859006830947227091515578341306575526685716110528870606784747893329725920491248487793065269426005910059728428236157391504513215831547182389081743887620114539024435209582417297484380099478347173559396483145305206514005764068738834222134086888117058936449060888180549817220254870657159568437449185350148673788966760381759513054778194939385755011870226975034248815484622043483122123907097933935040853150347680264843508113662660385242487587694594905861534751526894585394415637051431652250307170847786062145518555855138504883813138756829811013776303079890624571627306683847472102484689380577331799371076765596606234056935597477681828395382050531908240282460235637621269783022224431367888555156534080482947997413516728952105828161243780598724598282031229701627099211115519239088187673764359967413249847006604561123675180360090686139491029541775326606658454249179786969732236393753540932182288998186537341897700171032826057316000091355662050000427929928622184878692320239033543096445448755623289967577577131036417421535426382066685601978088388340317444325915739874050959676056908217216005572132514785066992351170767400015235074542920490857754323652254450271845661342917483246773086673176881171936130416848149566006895408546580623843066081652801505940343564413166131505716288033397981196502098323624613217787734830882596739681161009521138489857825471481781316816916456966629539667688627814445814705938397983334443073862329588266324876843759248980324998737705234936875288987523835608468417297910183694891139663829786573603661345191217898656512787880104841401967170888362046098318858638863032591258181927092640567898107754439340966226503634429860858216781193846956962364035215659212642567501910120343256562471489433178164029393385968016018689602269191907831473655986106698498690768510662196216319763352983895653255822307825727959886670530972703313284706032377859314654402982934688061430774564297189162084069188089144959594125420770215094050104364144491270660216523619594097458926108017054351805459975438240236781077072200097643128724045527132108908953511229072543961964207475030320640395994070288460069438239116858786845525348623948926497716095701051085196420235520296007756646182988603198524576008943861963374046313207044162562510534325889458326924469461050369305108021623732138800901443226716772162030173155879130938834605840671395301112402292739871396614299846523001220957281710212901591723437346216322836237172594897219399821356444973720948641943784533445030189990753065339517272457485580921245695761393274722925818811243958610435404242163221520966917723277391872595977967689579774406503687733152836328980710738098601426569655343698542461249031609664187544956022086080749963443625034136489618371761688313867051919174465302759436685213641985600789118703302466842636158633749587531885884589529167437428083096637037667065139645871358856285362152230580229797384576590465530973104385366347421688713419740940519104956145795995604347284546153092629522883945867378234332854028864447067221608801752039703171642026567421462713493955786270887960478132468213437220414814245541571891064088414911276254349129258085025004309382005703674845999873283137370788691324609476800350298724803068673823864179934826521706947204234058375398256712533839726789427493265619761873758066964971681203838589444438257280642469618088106565476755008578979570880475710955831006264782822815819185638494040085256231643572925421686621284202211620883945019845257795160589921632475423908578821187947204864253331757334748861110074148069716888757767520257299988909137419143575919390281747183356028296011169934951480780399847806676932674292328734487584308091995708108418677388646159164497405645485627514515367046357498599874740802126153538212825525373315651868866819297683924157952067654645923549427671549923632872507176006771361778796054652412614695988928933721308477048425598888339271971806821497328275479921771217892486916012626081236118524700315495910761855487708694097604917744707314471080542082932002040066697584393134276787276134442213247649890886888837463307320549734706735898976743802480885835132106893043981681804768213208779396165395443799851341721010704135370196283678705800230147412225049366817460601932891629831703901353538490767823464065626712035335210219946169717628895587182456756968399965671576445987630827571207981859777639203861438522650712318982999999190249311433294231375362304951236778100100918506448637527484481356773989346103754775948527244364224933388258437567735963184571755781772720740173846614297069564998056302993017356940297046154887459678812157823781048373002932444321783344795676133439121597710812384789632055120985274900250205735975969295576883174823534089364634998000307639055963522392047124673663558379593526463407617027308638316347333513654926053002545714273181680385380252735920160683027639944573835498630969698264754504472941664875730339864665167767709437891622955427913688420417833127908096362703033531264552867025178373355064535584474338210763652796168559921737036259121167238645185143254798092258369390102294184735007535774020626985766099502858403107238228365884531919104958580400469802127705666746991444850543974582210588022530427140646499139920440921420024454030465631757496064911011755897180696350327223290777814125775136644179519022422963254682722430822541258452363973114855923513775020892870731419405352844302291471713536062982862173039742429196182765766329814844527490160538556097487713291060494875638674704506429844867442974358800609601717162914083666375958636906329464581917287482725003460261420266362679969332786765494070696650430712150582872602961328426916913296849142519876544677339240214914067298651066430300331960589979889869722060019553348813828227554723927114189212076826405360519694944347721592011123783618093124051580183144999212266702386360537233142819952534909437796478708658844252863729870634109736659864771791324081363148816479241189608265410558860047175537166886569846489505544762125141497740945778690594794706318285130581368245411128291066833138214266865900091828841218006876530951964467422305904309749400539156066761874627145660542329478149471188664347416955654445105043420492914490005944701477961617770274843855767982922452483005898686024374362479411278041563112584348569373098971468640163522388688392925252084192143083071167511278516461785168287597276938929437568413368596719347912033244310971852662332492845199173555721336562717371526087967602285518134665262754788829879108744139423351397641578255480068914235522244141795724375898818821764511983305472652236492216848506490398173409500418021047542006597705661014501442650269649229159657520637777850814615344467143591543544009931055015971449503689559649901661743665295984021966871912252370588242348615937622048070594679337268369803975534864136142426493137150309856958793889634282813625701961193015200093857383829797503884238812203870722350780208689055073038815479508832926862092515879700323589158049634010198525653489064311875228576816659798148245767842280711349537667287042073182393516226653123554963750901019632079571072220542964553115640018510012653452608988579955661519872903274634655374197556716154452724184551006902004109241017997442026384407725691223660421738372563609535887862718868733965018740475540502488210038770849082089760145198905941476764361054535870547026910421341553143677253120499312359845656616997800936850390845824700175493663489407613477589967044562873745897996055398860356764492944563271536273879484121018404318768408665130826855945573796108361769210471244110720221477027529579528118221470981861897292534609060071987449858041338124638611127581646707302121791051355855153503347355690379607087461325935294700594027732896864408629163573615633407573063658791489257885086153654219128735342655316867575901209167937775655932431897786542113648593247074446880695006803215420760176518561948696383486355648350468611306657247511965902413860211542317011005949320717837010665453705197080822056727788835070863748166415862565917749910149477860778577578717892966213521824904940582678952187875384630631795669480553070696270449904751943598124457735937820359001989157549927278088227310571994522159535766925593071391075040802935636320078614652580436628289818405834187059106650305168776063512147491704627426483364352549084854881701837891180538770182079653062993273256280617767374734232801969984315933195874965501391288519189857021648195303496983034724213591499102540812940548110792357293612327797505493039539546463693539311564379378875452015979534197218309698021240800011550684373907188236482640402455355230662184255712039690716570489316884893762474726806309712311767823356774741993809090895250629848154864257675624806986958935230276314525171612705161518500334957847436893731461891554381838501339812029021265550461197836448468054461634421893897543621960662140305454823851695921389338056915619806126418719766823650436546004945228452577249809767054541544891217501993258901695150490646944592521659601882111449913607844284293952552537129354928396629044856125844461512660472718204213351875258769179098947584801870277422717000116476072501732409819667922851531197736025028354549184807045069853003809618541890568094521153948043865940144405235123490643007606839076990632546880092433727903868433036806818109419693279144671013296906428340679846407300971721913886071098567653903061296231277475325737869170415374677731490156182196693869394711347036251108595632452261701584584778983609232545543583256122078405560551958741326748726908330917130942598430761532211255571455018308165905773523822592929476106563670333523938357903437755372456289256624982557459994722117376173631847238608028756878180301869268485529863889550544674232453189922317993824937622872992915467971751376107323584019973513912764339802106921260672089590669369751572896074690312229107675894149321422328962493756015459583877160278972978878340372917294506201793249938936049434576525002699081336381814014806259921324150487851805296829425306271805652946611791978966326368592531266132260194390101372835655904318793900887358866005223156909294631133194763479517036095795529675066490780889633394028958364636056772227756125599034816070450109979116614195042570857565809762015548646926335726737412508761782826289838739551425469311813019522314129552730215316035894153566804991933762798016540274822355286333178683788500633260557505678546382191753823084299381002711863010045426832835345556905953503246396470812776294025228211236269333417674464372433528524442476002607997949293761173308540938010147652244265391828678563635643446814686972817187480642010375299943975288039476203342522021651684017504888562387646989802517379016250947650531975869053659116456499030268283954514479510916779577339658679310717711503707530229662914292279611921610688164100727015704783969408693555286248681591088437089501654155460489918239853929564046435653709385513026833489450927867242551220632704059912772025850035422096603824537227380982369789836863439173739013349181018590123799226082178546331350127116657895275634691072658183103252551083882199508643629326338821493531307671606666471354742303002881927201214644476563272734365348311090170282808986121828627032293643592934534809442099686958148028829211929709947896300246153274167066886372089576402040781777016523103631517761978336913031278775840942160343144739895891982114098013247381360457965816406181643415416647685855196512323266117310752983732272402723955972824374268336917355649195791334195459766562177490541965854386314262458119618498014381411352475268542061253352637165689902704909289680432492377710672470567310484640825172988421205663249869209609154539389094255112318696105999503835711863127224826702349681584922416708498259179906540421642710978754569529308463821447188972262242002737510245227724005549521358557091908513824389780948990545871630319226755961629590144088497527209938573676241713730007041492456083019715897209593569713500515099981749013873781056987402950252786379111189810428163347557172167683773518714515051556728875369825075541185035577102716042872361356910045320007357119499197360708668227250146968464202082528659156232869720295266143140885390982985531403920774511275419106435402446634646718074145363737678333953118862306976541420527255274502027739794802511618135692322128789472083551346005609890604722997222845941355660561534575175497129562063134863149573923847968543828876704537392431602930442974154665120090071931880589465564005224564986287645408030989392470752429290452440301874704637436504884442865092546515152010984900531290784090282047495558219707592970886219749735734707347779563864954647818845492145128661119224380601986272428056269904105343728924853781856645334833497844585247443857853592553182500029823151390305310357078622429809336556657423598560228051738667096488234940137773729192217147740952571620081768279661179926477203688400963089535893499731164195527995069418585665262741278303341838364071209280161197007480118162614086574554255955344860817013009411688108715346020920920360735324819238694070846367515648140573376861926737632902116047380330179566043598093575591691603229118889664977020182194733195724961963289883332006967179206650666301509201036045157247209543360240230317730212546553969981245721499046398562173857009597578956631785577821989980013916910366665403477389639231842614097759187406839293714103573468510761098070552046877401051445651181604746876448833118886451367762954274254257918563691602747131909889981644645222357997682131178657875221238184825923844309597874484426322023299911961679558495488828136323517274872849414903794901611546107159832288142878991705235005616596964539382099575386527372522351156466263693405125441179173724979835622472643335922521465220439320302570112875482115954303125495170543891727449745530114254607791103388727040369145085645478907238731261518106402978983192952056793993440858431941394803116197973000226302437105132113585204554017295050149727901134221952429567392031629408412361648717353152604431218503829147249673325382583448769930464412168202319182949239617870362587677257040495121207695044049280518769554011449543783569228328649527454898491470323129773460635539721452101540456625016406409431146666886256981387835005538568642246068615609071635591162676087940146288167484017766407766719359833462013944898979115033855298567104779100807694806439528326427950641787429671820929998383265601897525128109249216395869064980670921226495189958382396179678258559125345274689484481373019168404382408215311650787990751354496902919908134247472229708230853848598495051769070783511293851681305831883162285981001965572762469677961716223661657133239801212653035922512419953192710135236187970106015811625999682533078307766905759234888800596674385049647062975215999710463588575553189789048425550206209866997671966368270018374940397413625243673825518271093519811815630065073195733649510293024219094181275380280075397471136958623972164168645469693672395495618698768674965886108861001762250210471205374204994653472543480691902114768527386106908224084477485496386181653159245263566160128375248496100141411008994110345020564148386996477363886991953210127726177420654022516680552546397031163497632296834118342229894119922290707409105880822135549743360961902359820888114039182578044035234626400098047940213393209184114826065059729813650870930774527575398069838305321471410646012134477785496100957762248123750638132680790330688537406163341406028131145403740206404826101166461348221454765191081063013133976931015658490016867951194137314866823424934787942440517606069785064976950937191670368657650373864195877515268277016285655743721166108871978334716820873909070147351474172529989605759638466362891149732345361491302488507947110987204866242705363798997905457230933207558828030454563515665175067733539457788950063231333963287824567677832571084500313228148886397473197313023622091479051707405855557916919844527488507926713321989393872736379938551201689562989111874669658572588375405834612260151941726383776089776998922880645401521417127479490669902915279132073082956699726004287505855336607383997934187492502173649079179917920640556651744671340519479010229085477847111931328335743288529582868307778350233760881767354840503508408678041488415664652565305451069270836668151437256482732896362130296819087082205565327194532221563909241060571611743954885422279032584489960724713504011633720114228458492408335226342326536390080380830516415584016625458001613802537961732572769672451451445132967107417890852399752974522085242475978006875429286008665138421224450976010804070941193487501383728791956533253381931370317263576377178623975631750987483108362016849860737255442811157272172439780923781433497789702767177306221515479472763083828417519793843987625476395211995488914479854043901606659240012903936476968285432775537202981160769167129509012495790625554131499927224072798859530917668947160207811847086923768111162085334856821189018114177262386717850561861584955859380915870063192039968017226526761349394363795514778636765585134032574492062300502259082512463760311109945734689889494077668434328833958174829866552255226347840627058280455113010925201765364060026213743240584427854263376338047479411495351633287582790665615088311503358058452539835908131635490096944938607097396816975492562928305616403475580700680682352156682212563396860162977447271381982313717551140895555183027617104047648136836940580994371823073050842446790709367662938051717385232727604297750127934423056156006974849344641435447651446593699091226205088811019883890360723411973002994202738056416291654796773602481812773789411678374450947166439738740737621807008636371231717495308201045887623975138090706219554840917185008654379549701050272791745190108311440900922699019146130369365329077334716130894199532251926901540057607198579564404799061221485263565679317981894292143572329244967470219339782247749338212930918300989280706633453160156417237023263215503948804028858534799661021018965003896065597632025399329251918780335485927388161662450448581596563920801495612703168735273577061022635967933222591591417650189437731591166406505803719694812502018449340667885009267335908235397817381887873400089497637757029315048565305397116872098527082197729207913178441450461589605954924795828014707836614824397914512089343859625073794388406139574569136957322246585636779889000548202361753637338151339073622992544383999263683422857126670283396736480441611178374021627419319739873280869848655118162799486841270119838610236759951724784716235308975583604092860434468358894678455852651232163327985134235378001971926317623548021808781223933228411326021166423215557138076251348654466224645910419106670023182248228851541195530813257309902264717893852001417986750753641726179407349350191711660379794999218400180430172191324690773074893643391030090700924474844351597059226551633959827817090542154618144921868927489506931558871337792321492994384381869286038211070369188930381070164862869422775027145430802208335752770350270659278288304804534869352655170010970729738876627825331936189646052514753911187881779611956873674492330508366669975063718769330620298575393898131524389051662328749574106033566254527210450751636992318026157127619011763548051157919557850333770736778268571027115353007189378946907733631668257824625586010866658447295754349110313264711468539476496082632238997546114892089509586093188363218229995920286457896634917088033660827117951232030931275390353584803611438129575531011592511950708993710180509673300779082894060818546903061330599375308011629966428852271229202175356217787574603180680955747454962779984311856462477306736338854402269414079994623816777372758756198278628533089535108701357101953144886986524076861328905837177706409761736294576304597348754671115172660813868240498831676668597416338177847745628595122909724310638148175467615055820032938479510270600897927166262755544775122713956518510257750981188684505320379799161597827539882304889617404821806288213525943993837841085756376817952555683411543688272378043243739490095967432799148440773415328758939179368362766326865801945974904076334257527536551129012278404214522645771209602273717395545886846013740507307996112612034069638916692747927949125093720288122706807126064165305171099707236692849734571996951030008294135701047039493582435777954195003116727304837919214080685320960126476256290877943942704165608399660343721442105865662897232569065003672058637382875393350167660270727965906209612952251596723147873442751091723375925931155275053157985442700557458992726035317515225897029326485818058905166669579514255846482241129470672704613953572602565518111208578701268780143004206992968552657293894571735063986430507101019585736043414364538946966399325981231656342420959008248206921857840925051521026828318714336344130833423331587684335661322800543676743339655625748079413684652453670565170597852810938557670525572368301645659431205039689966470886045378173296479532457479626587083128188191210844083193536041972990377728348902717655993908441052001642621520836024639392498294111244860368633253207744778214624398223751100894766569833792002730877215683569138989817432255866558159652433987154305743147057110526803432337418574208369512144412066114507103554574909999458799429491287142892110167571203073580583687494578714301332615877455799743908655384045520660824004971301661421070845481918114479616302833042959969753019526070758620441771499671327444358983162661085462635479159998992133531011037200659588183028013645860824450347254083050499696500711773978161927032957747810666606820586147301811716461900440927480381046271828033703729663009643388428681015861719002169115481475042531969693458820600298406583338869084885477326573968465579172587056387101158166666447293107014636398510218707586723883349332239558030142466776733459760351596316077303610655813673855743198905661711150795948004815622639163181894087426922235842857875837766512649941724521758175370749445266095415387201215963042177381215586340279440331142202914033600435779506014669948650064331969264072294564940588591845600880453948585132656899511402728907438448097541321915177571674553021177247187036519787985007510175116231584144171006183291980223352227890427800764404671092265171340874149750236463137678360871103931447056430235839271655490940050712327350337086221450588464546618790296608843270550457059599156544618625379191222785997980900508117051044645573915826451444975819098643583020021661430482577587799902869905784517920048857838838222331242732077228540424046702736926257404517513217166450723308094912847371704528810404132349008065870604377977652254453018002805294386804033819199831229974886920005562311204427743261669451990610086943976486116556521327129113006535185509255277657813852790731470994764970583980561115149187619577772893265415182114473557559264431915559825526450527144892362630582134837250500396457236371266709564275461119208943252193696932738049528641553078023060439209626594308660632732960226738380578461219877819404807167426045136541815578963527904779161260374895204427700501322834359189187912330969114751027330138125583362993436824646341776057476936058201482098180302819118356754426091201917373206842996490260030453648971596086962444267943372211485368505972010926039091711071837057345810390120112113168156470579087554796685093834230797272528154097569819439872862896265215413341384056597190162735336537721064317641958043601418340464883738609078861337213063186533665144771393803736929232596448289988010722029444113444983355252033719337361879906351556689670165381113387679264608440161455482728496181992032060210826377859247846418721549208275893433440476952622169960842590791942303287365585926191731087367368324057607212788621195404638719801759250927004667715265317433663329646367725374364438905139346560118788185247509551372901664715688027982172134005898238935308515979757764842906675610427701826945486079436980147879224778519261279459546262169460758621658654405918581189108111602327236273040826611349119140110870224477745551637349524074804835501063708681824392944959122478056877680778060750812070367975110957378083150119955340143782756652348848805425499913476442129895893021278485861430713885038985109053708005615302579109082696059354371100849971528148825471451045810687187741334228106362843281332702171482286005443542518438800185447145794453001079779172333620832237907857339313113999786834183258187755658536303302836113173433550458292811938969095564476442577855984403830837044084966211985043356456341137702867036172734488102575196417647892891168522430571412842906344824515594650507882466474350898215099336527713027288867874127959703068845209165978316173714813614563874572315512870621833653888339462702100172691747635512808998591952041002037939350421249970649852144118625906431363308016990982871822280412134874067442213716501924856503161156138012987884989976017641603232665886456556112660737516845937449705974550511025885061868634255102994102439901682742557762162556605942713048517197806282718106600088587306883425519705450036273145516140207213707827556993756358713268469360753562526008351644801455218603193093052617326864954463275609768832417559416896041195790559890376404748615969078073414897692455752964328822375493359875528705469095107543292525309087848651709630476768057162431449620134327763018737270923977282777752456485475834662040341925145471198709729578705448314464437368403870224960494082978516786197993354783617801757093366647870172922525790285137361143281853548150567453809668669960427067840526247674269915180277208435218535102831202668554083582073480365327011191370100451325087313829087071643306403373113930651815083759572555424057020553394680980056837954766693502900568150222859947519348828002730460123714740968347106321203512455344145387705409139073587280940304955431111724251978522450621256730160338362666124554339513267397321051489700292334196015963302725139756841501930749622984515118370233454233019167006522748533970900160185509788126681059833345353567192512161510430546179204195087067974465363264981194174661088173949681497482355523152912084733090673871922866225626599532319417535331922975229880068239518449607104513843900328360661638377962555985037014358168895620845919853599832120640788039390509003618225985891370612401155247365456864032939766358082996204209499517235766561086822648252855416260346414366161991152381432580453174425242236305052391773437055523252236886393605888920488262647803156765561760972829782106512661175348308330053238528176840027415663593274476929155360005500098331199507764055446693767795373947952464649592255366934530416960298066370113957379225417117907885092802328098574216671730531343114780761969219553659652607012461710976468608256322540560294012142227286006743500884640507634795160452280673593626630323768518214132762464986920835959899730288919510920535953853731156990083263424639988305572471215602961009463382821424770413025320510950151125484091351609257691686474934457833555073720976546581357984617241901445340645286775954822489715098100745532498344001825461498120206059005826568822586401905087436058496888492527955826387786276417832544211105988067168072117661342188060766236254747148068125577249711324818853715610521365037354019648117324918231218714273019048142213184158504959920022917689539863857093241712954827098775145018066240730907093553274577210911640197232417965059461847085101972278792419035352103651766548057692471241698248705188676884707449181876433000283429495163263718600404595821581404483593121736567423162939866423704781368385072228334798010584004638805379922987251063418594101465332309122233894996055485700203317664488376723579838548310513982573742832727542583252298741308195465416745125349087189618583373740354674722068034293874799459807425798789100255552315023522074225477565389355290555952328602462016762746645482784374024856069909163293180897501152134164474213742434179425959916942952698681546455765016716665752905231277180941964933262695932638100185047455297222509596076106138001957660275592568687465182529608576969909660922864582092407835457980485198061146178545072013885278902032534453205902586658959793537303140325412902447990232176594440882944772198596138354216149070093749430079556415047628417193988402230671446607731615316321224010515532672341493364037614006049398422864807787510469692943044203765189558828385713612597196186050546988038763732196652572775486865876704823032246160945254736485194101765751705447547085268533734897885652880788912604981114455955956762966408333139243138220555346740163275573510982757533102327578908692019912375069979213617155503199900945019942627446236630098317977407514135471631126908797728482825831020307963931118156128802768864653016829307883466139552732364533461738174643063016396123989386312814011313409088428554615149405466999644291736607075868703640557122288330062494251224284949010036329203707983471379650763012868974474159705900542195778044538200466811577440613231758955530421804061096683356601691518257682937751917282173777338998427532790242680129659386429434534003819842552646185881380787746980878998383305764871659508845516491885361491452250504988605669394136239548258213510770282207259345845446118223628301120166463698030736069261445847878961659390051131801160856229386049807820778061724513450296675271697627252440771386402877235675577854657142976357783646267765697281323250634327308256334390963534389591800193831317512269867118671461368996452676382631098683217659382200381399380581768125651352090875640962802775584014774981193936077817840643864509594179608023585409665539442331379053938762756075561094382566427537143245550920827109479251580096436929976797371899155591115266615978550061615648168583952025697884472787116158205028199275820373673977708621819808163490174419361959725873222490135991657595957305406413800883732774315333083236769113777563586639986776113251859909725159874049436239248941797076364028628920919367235653218118746439673186664883274876867995039969106393636980962217057548276422806918953962783691660603864392907242930854158760143948039035717821705528852415538938279265664720462659292437754919393933931276343826349586655220604234181982429369544872507901699659979452769191063370726544616917336688893524518745202361476016010917531684192227208593463325152568764816995835756334037336160531891415280945859610674087730921119642222239532573575343084927181943644337065319821298603524053792576081838052745880241160872901477646639074243448921226833236766346198820647058063470838902380285381481779520663951536866153924232060721058524561237081687989765760819135019664717714452747331523589993439977675998871842223497376534211273069532615573242788402063293580574694658868528277075347305107843860155032492537252053631084610099261917451021845413749088661975162495470610639412082239977163182286573755547795665056826992041804545729470075510200945613717181289053884563615897297285383471055179619919174812489068818141925858775339091792613172923920942948985192937711515985633437250387567642319240083271499563935310264497290475355769526529829774306546146407616603976319544653987658448475511130889248828201683713213991312481412652566634014384869706858031652839014698596699212403310011665995944127481718996304183071014748030334159551010256837755143961790286309476604050240389030435877598007003899158099655330100336635496245487837334031955147203037885520925223555935318683489288646508879292699092030252851505526092783441829475805135306946804098963121293683099179082917264096155268742475722188814209400714043147066685030915496943219590279154382536593096862275870967909412770620773698560432935249662618788658317249718333664286345531173867445342087164248027268125497967155377250711252245311608988935586841083922492833309272038920677487570743031433128620955485286005279105485925483363124034449155436824718585727316171270780911807522413346249647449899083258017024916513945387542993575674863303652201261802876266573798596629485517385604230989754577330772317675158856667950002088857500893425722880714012729967285755141946983796419002020821849608530710824089367900569348288796291228942525957498774532755838574846669031727863966746441255204339006005724163502852334779860170596896012458858527295508955386587554711459796809154969095050595948998716652303031946112893914855912112709926313867166732701540308633251421805380006580748637280162274525934713681181117107262723019061513162810815774372538231867070869116064434682520852296279512625095706191380625275288343598510923925489149914531167185742783894007882384147348299715287357877412867585043924295141324042920372960248742158184628776755241504238675920734629110378469397074588450227403659072412017542439674995373516421731202939633557942713382167313759743667754312546443360714422212051806576659549748349156102310110595133033679284948153819774188427553034300062836283536851543175765913033927533101144325597540013202145330859245950467267746702114980129412953148390008493083207100775932881848290318180586027829881003745618673747131836326330053406518928871393228073749220882810472688955392177299435604077484922309273416881468771366790180806923748755170841546923647719724770009690994282328083533171980600882409603812016177907316023126697197057783210628039690616018418827382128396341029288986883919828033107804501302706443007715484032334594692974869711466376599225358485109702790775009565182773775601954839645633410457645613396141501264752046308457841425327868398712831037148828270028948067064806231534202633916398729538963382414913272484006255991469068301439092381358911974142483941211684654611366047383296416428466856044125744614893637734901695019131499078982426059760064787484851203517353201833494715503462733630403259131986008307243459682576195224795489597585727272977166392809039917527986972934444401663322713656589636070150600835351860815997423336364304831062882320785770333525715348882476542981612623977785902844540893591521742493487090466036493344005672707736281975739451132755181470314444557518698089518793008236543462678531452290041297714087464148852526361724566429679100064508898725599657885866533744341707821169384621365381612844283263527436553858564595876235483698282205443157986226076054666751886915864441481070241117530015720588673375413066536545027849732888328181454521838595285457908141414542274036363109875515807839025861985425727816031530649910563507090482865563809564815172218650494204886768145187397238647028889845440443613550010013145295544284250773053346351526871509779632021697970222090524187657610459837890699330976483441447505756349336463596093021188314780037634004348321444935190194759991654043370113658775061832559358637458521558432457674462748686180841108577950504091386891581394968218480718732742645434327783161153601590523157957927032161082794353195837992669591096992546511663767582896166131059658331474283570219733801661612698551562438199533451061139339044770235785789232924167101294011852394196846229180656015239076123543299620754492593101869596489266037501917076897845083972699928814500723723192984576132921373186337167874893846850413958800565943142988643626179628240311134048641486240920032302875678456980876452216664053742387938661631023504448954049770524314238744856197091501968493170735505116676165415503020571270537558570960975186061381049063076624920327163437344771429292719610999654073274081626244545817543484716435567633465295643568442483136706213088947214533848970642103291605962326078986135540044886617624585823709056262802730381835240312599047180522374626139476316881773881687814269996637652689457251138936003608680274430889465393454589844269492531757732188837425192985334590403330524229164616296180597824847496879639245693567895693703654980030310021130878735718401240983231132290076694195752517316624246124330317785809717417033920625062458602617177152527636370807068374056147420910807965900706355286381444023073350565359703093263363861232224265724866903059575216717992187113674000349165794627777179998621499954416472828164063873646499284279703795673849338741503491557338629351971303121218552231252672833596993063329956898543504747800459486148208611350687965739478401572404721772395714222646233184639954133540518279012722173056572037665868246050808848960554164233149567089538589621998872847373442660850175344221165355910032634458498658640104344165601154652503946037240896464378421964892543635847592934709796043914097549704825831210520594141722743742338113517863274943225629890180591494484045261015310846871977865765383421110021743365128280952609954253882622988179392882198226408199236566573291234539760825137312923440114779158337193068713043611916133274543427708343605749620752903569421972745971214924599234211998373101376341656332138749135048308020090659147636993371860310313260585491141183693028784502179651106560236615003283465657082583702940662768025958928231975547857901337793036189015785504686139772769030113492884424687834072844206668940719567114441655094528923648375126095693365833935466977117410978043534748477444046084901497990149440416783529353077817563946225838926248792405856933613855815216659011733093707518241486381767129458930999299497936837248025376794695835490616502038845065898595660339869415267113132686026628752894133481251797802617283367469119103704285168880649614215938506247922774683569763335925692998868882797578531727971562685489046922613115348162368825214213260472498573018761037301873058644363811381059300505037443657971002838754381383123561725448711777292749686323475183399075381102903755843504529695778660937383252664218589369472327132459583257510066650940025319235975949608268240438482245659831924823704102246117981360047624440629212668446520229280966616864371324768254281243247604890147181925576827040241640264634919207023946917533577980746408602723339829528362822721441970605519444668978269063868837776964193729774150199075740582117703871526077419642596420041134279905208039866836123833578017871614589186947257460267949772391412950015972153330319026299390998182606908323923074634651528446935478972075994017516386411607461013674937595790132595633287244612569139688227486987108055325060667839856016623818575047322741995087360992369408825082290490237269155515459439851339695029364891485781094219128942946166231004568277162779749486084437219330414129944526557187678410458776812653995004301785829519711862559118368660886744527833855398432567325306963927915630862434231480086600130472403384872710464794485812423351903532737685094709074507896499521171210938784451265923079814171146267109696612750878076374366295597925621571362177449588294833866428652552218451973094961861095298173878615976598290228958152336853548763438912319556527835922935832665641108082188104082288250802286860205369252882341513950371589363766585195446373219875893175866020825583662898292721177290174643808875174179872319287161859922360987807096341126676763083969937971141864287855972806690330242725705733781801356206103138687558052415943743204592065057644450992284362522358501114470362544180726186656577146807998523914595009714487527020781282896232735079792711958815065715700040094976109516727324066726692952890556799906505566183844728513477596020070943616783261506318337647476498765024947349525810117129749078464295091314749535185619128973436070448492778876287661684167012830769703730263561602180141300987261453907707026267022002474629951946889372827618065047035189531673513483622598005010319532496673403618224829532311080272098592562012314997387895414353351314332581210936485000276566264249167775216912480251772270648286478165485009386389621099295105908873895664234996587720165744016817614891905934732415992999045853668041246985344289997818316435800640703214848852293983251492279235194624438325436172629680340618245311217145043349342650877448844037336607804881661188314473213302118540696044270539622868871284387083131883713582539327962136160504093232331002780397156338173072852021621238742715337650895227324489118527118436239598357381755999278240452970659370652919370875862759538382145111588493405210955934097169784983549258609510369860932833583193173415759870092730350934137905605168500206689042759985793240807565904727601632981276495718720019921341106793875025887952992475338582972215261733824588362675377764254221333893147333382809618819077781543830913180368513343369834688731249851535826948595687806301239113551344249080635197080136842161508059615081720010006709271581833891134116158557376248275538695112128834997514286779459788179130340877203988452013107711440813636567651806616589318236429313979998336652712150570070211662852261684989064796863427485775153037950057362144734480556684658817807641963027740861086771281526067131633197967942118768863703658932780225421928530791028703246277123605226438101180667051336710093505330213917226795370257018791744391460747765953491754400990651487064954955248022166802339222673419944693077548757226312595866670566641542667899022231578224465909041580294696888005121125553965109085669718550347094596623956297866519515415208463529193158895450317133408681417492710720849732499189688484082650982513498650235439120354141085011867830328780867592613528686770144892629660270175485863198909996128998243512152147585276933016283020655488020748070929794568527187378398868899230593037941947527368922282620546747141312341620484599266062483294799733666228284715749422329178912012886455949223601523644034702264543787990978997909276032128367112683815386624992120071184192129941779169728340011483139317796333099306041245639193171670721558068292280770892901723585290505681639112619869257391049838070334838078932897696848908841713570865443191488927675903781371724000779216648040483028906241233270142399217674124402197167886829391776467340050425895439302530749865220337239227156614467130771636109678112473411622701397357119076607437027542810539107203811055086071127767830700750354385111166170214714628662055033244202903591516702084648733914028396727653263798318220277860024325959453277122316301552978282385972917532667540342800103299069834586079030211550121821504993133694609544918073196005820192995785588065454401418655396660452966066302470982554457081712103819838448630498893827490975255640692931657387025355347932808912422440639464449985149173910453127296399568383706266057932666500665303174884905335476324665427423360298460047836102414391720390317633632716815422386340433018745048453492940852898006876310320010068015840213830977348427154187164071794178594300670063059002144591137684039575800959399182175478680469857522911670825100841083730287797586124480837237003658614587862196754787930437518427589416299115620721344219379184520123974963428933883415529947133993308557260971245227662537010035977964612631377385656556389297682122532282989845765197387540748376173138269002484807892494261783690155930049729674802429770765090024066536404920072861446024444586325953513279955246807408460020479940203580865962613861868589526117894126225771725272077405094397122618961129798754127310391459068886446476416679867145102809439466758368515630686196116613679832114551825952891845228861916982729046673324426014974618873495065951966189219509169924367596202733236122182440797723762856764144031925551976748378339885332960681360597136797641062370103860738327948991797883630952213671928975970687302413066331851923982231590314489977389956083782432433056049381147800619777288390945840178368177542689949302663392508958127942204866407883802316360541128993260531199823219333577843711625846665573924120292124632104282767706253063279007183035790117064362158220764223316348934277536319488399561258551892018585816705935666132009268068153307910174140402572491185160767591597000031737934134308054810932896128133350135046796829714183911543612939579973429988492581160193209379718563707581445754750625107542288184895099407856390516126594780649158034301755901143487174217767629167717711895078615086117083088595209434803768997238769764257023374156729780622741828526379746455377617415552885673164371647352364412692105529151978177020559970535303393976996023048752361487300172637252288178487851206473556023708821802587563982728370253629368684834158636854511360017103398490648096829178892774581664495308999853331157899396593750053596177090132342716153149844846555037985369828621293571491136598837072398967419902916256176849847863204372335524027038109324081157399507812855732064769117910024998542350713745235134430886097922333259111706232254657940498846896473159915347079215003997877357701248137105042496859990278209988332105530163504460625348849008483765000483344818152051837025078840580167494789051775872019915794235784421304777760936891846490866543516108481488725658073895465739890633485924211006947389848699646919707616674194538944417169344381880950781731710747747418521044832261752621768828918069962427731800586153882581621399078225675762246828792587335116742772867688156271876474904947022327691535730861740634572716527462570610878744822828799869087522682695920447014569087002981134630377579259190192572080558349763742577905244173371017594153826511827592110828235327544885709563247248094081961611227490148773183723289991253212029997661011816489489438999427372154711046945810644593530510024061953068584039356712425880052391762622040314465829572776200444048702515862146231195730553986420780719924339832068525902404384434381098086851218062622575614791153041536117746912228840519760937232348366401068260817048785421866132254894079341779021223291755288143648783344813034720461186439868600106841721758876143734974292607099212799965324854776781187656852778051970148926149389179923485490802507855261113135887521623860445363505412736355424540205673437691897245635889580926721791785305731465288141057183601497170800015871336093052163280002119852443522001128506140392027282355493825617808923063167946478965669715922367606066035629777389311659191919083970301164786863567314974633493424268216066637240384591013840600721973638879704303987954343155391040012774378344960357972288871887952612976958550811812360140212292926116613601035634407511630757711859276933462615151866466922111187183956586142236151876308046779540178841318497995794027427863655408554475646670198370081257982368970952727803724380009142731599524904957851913283872586086767730895515779448676329932928470172263156892740018786860580277258284271692579140521193640767556001653447514394618710911781873184910922899005433571240941230035904209094731199634803369641528016384516364044360822158292836669578159470252829723774160581121024912612580317205520487358185558522776640653479735073393343897786755822390870691290718966418597765726538312235677832376142745699981392896023098452098150976807949853687671387697749081118280649846312619435360206645931824922559817605408767040271331751926101408971591678898702979815453013465673628391911120467544651016355634199412512043654780405338308399668500874056654370622618516031498193812051954042126303456390704192691368736709488374098733596940619459527711469773088574206289675965578067929645638594981803912158611918108327877497735357067820574742026223955773516841268368873945265992769164657553076871141468049500720452571121542557409890724011677435111371726515138692996712524604532758256050627889135285981119428941770928043170875925490549380655206676579207224376786551722209756260674742397122470393149092689814245106502826643531265036395412206999416830811546916655208859769582717427481302871706714347013359581860532403883161340808783640899206587103543058589367700188902508722664988204226422336917601118323981423890399047054526332350421299056022166056659835443122324376140272966377476060668668041794729674672127537114149932506664246271356812972548756255934152043971912413182098150363701182786945853512109801037267885841434372739123709956309938202939895932601932137568274896742573802586193940088472943111906206490417820956703487555873780238529532114640171009339245052849881718271182967032089281635038765501773287296297977293233386828424004583512310512243035477391172532048412660139275197449015192239487477538169587012834435523187935901753380062695552599169291912645021743528965009381563144919570917791011993032818746749006628178904745069505070894156257120142239497265005749134297237524221669468982946820485785689712307342002011808467818639709386328291611951992967153666234598636249313468798721388309226481590640337066103022899452004771149451254289961686379395350151042767452271978350235324102603451741362331389365483401423017386558778250335516428567945291521847804761229226546746569835285469788083981110382731028670940678221248169685401127877883151605204393413273599059140833156647352561377443089304746255505160714630801751926628642485763320699149976280180199412197807786709448978417923639097872323916403445226069031995101659303408662203351334925943294951294111329557457424970735470743260677841057520413592823282105376086622706689727065767502563015885790949711889544587145906940791071302150222084400949680284950130535115772248182557270766689822127427996262517835929204443339402239738956244088180170396751603394392410484631642742661243914937981072142574469193497553853813430922670343605602929988663147825923374147670471863725629268356878384812170731769673774521106182471724938113502433388225352501959299921010218274404022549012991613420331535328400164105294410118694248582183223292632486966956020966277116666446338259421984965734934135275858447599602401448648319756252160658295971764029414294061864683494032179177758407754562728146614460744037990922054946975380345802769207017278430407139462069388318539364655299784623118719546431326186610594493536333310483436767955810276708849868326079549663287320273881779558894483540034439161643868780178221471237440375472593905167220306338320818489139790907842906234737182457943614088642203840323739762625195828088717041826597486290882789888563589106624558456653874856520070147233401669091819140569210437932916782940042050227104927888119093352557790127065277787453625390541617211215655290139109695818049158684726639332659701167244832835814404290142075734159892592733299199163232922423559782472689631807808789963057109001245357792604688206271370825197587479616978536993820932287385140267821166021653635773640431434130891406341809556700811183197630749390615060395811720725936075556397564154328433053087775235291034454517106445731988456698376082411714615975458350765138601169752779201633686915342102802265572801218232584695758759579909166063547093950331671637820095066428006013904240264776660050118152541744358893410671217775137269686008144205303256892061332479690525789245168268137596995747316159784716749675410807626070215213859944318465444886815809633152672948316047277223814026720699993754451832053713749889275219690006850897396725635803708445125341632463900189598600957358381289024434715906121590640840176771059699934917682879730264351952021342807080027209873340593197060843661199963309482622779305678399818520732627393092314778379549656052089327253052168807006363219985332351089273764082483053535435805030807575579714013019676610840134726548079202384395414622059303249042931217809099281180633732362242650991363757341062090876253037481915798623643965575166012204530299674305097686927669648516983944396098166909230563366184994424195635488260502619546463317123576370810944193380270355756825568028449030344657222077692125500258165748682156213851347281793318571296091944267703451079663610023476147485232089515142301809159207079637248659877952659504408180898952076776491788099481802737584039750493627676040912229479695556988874356972425496450680565975764507382047379123811028474137343846805133523004432331603209169654081090646985687569322163462516041021382773968097721840080729450679486966235582465030557184100092867320941975423322481797672668116212719405421898932866206566161669696725366817409693235303346443629520768833980122504052358984028280486286501243826400073921113064195508161076751247895925809567530604272174515378630015609972606120774404087908492434453597995581578443373190150817651117882343886391530302347369746155100744916439120956074167094448797203105916349640812679526252837436081671832165460848677352368816013558866719354754301000818502546910162200693390588253961250512650390596687883772002866342582161654458128220381406819306840023778369108256740716176977095301123136869524915857634700279740733480094664571537554972175030795943640351500918180490874539274536808679324818522500359977505559233966427588729224874529388336925008425737086029913910132885960925228305471395886308453265756083769551993972228720322195507127042928570113662471416780918386280649497343318584773770690502899068781156571352428032825298657344487159122417057802046208575263205354257390809924242501278742514357226531232490279950290334682945091771389314468309468493249854221644585485795386481528564077725519278623158984359831382523348047917625256773152224492939511945205718242663013593324504849293412372525469182160633660151521787499453680894572347604680588345545838721262164456942189050715031228826670619519033145670705762199612088575895751213456566785425371507631839923913632234014567245683834466902869529913086858466635326653150650101005102202531604578983798489161813263675659689995425866571048640488279086721050129272985061395441457849708739862753438844872830408879039599893138770511471756727567735950218358895040817794840497578854822842182559503144863449044954084378921797850672582401075259772085249587012283569365105404090202331267341830714537337989319759540237610646967390353024991198672057226558890364386207536082332791721204586697216750843617699762979987037226424411858720148087822341955621524948870727348402075290053611682286120820900846592816059414455801717137625074639053876275362727707479881762714647559581300779930817830907763191523507918268363884908442556590399378710845216370610609463500988868923655854750382580351118298116822681278845491136496368210694646506398917314039169078610566764200427726317439701119376720555701222635170372429125106018195125415180926676017908747056087441375469360047553591628093729282314814190097904085675898572271513079809438820930318079810265160376819535631190892825151641020727036116711691857688526581580946766748062809629271523417146749241281418308740645471544422301533782864155837883795950715525725722070508411161755600878909432088706849677426299976490080663425874197785854827625431870761243979842696122448801996238473520058936506369199493692556349553586000489326049574039767119460539123120962071849110344876002935148761446871841536845280248294470484871663431321978153992307951830292136364410339866608625943162823433740267615361762885667257747704863311311933457659007174675452090093005340774470958714211141178616919947749815553416145099612790719677065454028357631376096155116495780049988642360535843192954710545201164932121767760374416094014858610106839974983753418088046836805188609022120745235665856017010930271239740279778314830808609960804780584765871710894565409045945521877075431649894894165773010682480352363157010898410678983893031347070135216023207310480064884983067094042024439869180975256187111595990164992095897659925670863096805343489201906126134056887687379415713411573885937011835167900525211789649436331463558675565089938963762759265997532787624756035704934599498749808901988129682716315818726064611328035978477958493417491084262282838111939750115143281665212982730503286786269157020846997261019833502615238825007313048039238857760623738685085981604719288843381262141443669621053754546037542909880583909471192440499358238078035262895090323633143744130593841272169337510769097826607351311096174164907096128053238891376720092836036159588474051974230163506219533730840985861128978225155889778334195636477561419931391797412842103794572558422118645004257374963127868766973130026531397421311834442414375235550360758349841515399440751921169500379112234741452110227628510019790116410753553857273115337776767348863441327600280293704704925340050866506652947148811919344308024497802736068527442556188287037389285670831359253923990269526252652645095464078613808875358828401337568068101068409872026619597277565922291307662070925125084698511352458258187256577857171830392524975149076087604249022010870069411827852832427493913654545389529389275320684477306233531626005345538239404427141124114334516605918321956786161926992968277905486453079160161351840872752692384374545556026643826743131105342607144025330407176248323275935627463007397595644897593752599263932655879888516328174293087596753154970677672611048277954892440086294192013168700393125992423257786102938371738905703257876575134589405154273631374253176966759621371954525938536275196094923624390261919336302720522011440760135001663012604462233065159932370900215996177073639337062699801030436215453700207851819282370879208658230045240805806863550475653224158951749594491104805189905102069863680833057944749802214688254210334625147166506567211597231553502521533332015512628239688394380589320339722141779820222395805850787511240243621092566046433998541958395444446814528302967829911463853748091492583973681286453700773870222143083438290319009458617529487405627094859956933059363093000454384138500221030321261072645134480331000221393049230175041443370229596639519738124760575135271131557544722668222142237429868216199603336578469601416941883181408741922166868695006931473093266738444001121018212739920625192473212443417512122649706953964504629428986660947457856199889458110349844001191784121109305465220341271803214352757901370049554178762128275554602416701245554592585201166352720529962450023867828214961782622078981643774961146442009068271058591028858571454144611333593665654668200037458756906949363364687741635301602056590846546703807783638504840824731182768453807777561568399775868081699730615669621988431208289631645878708761908303569507105011124146662535704173953908909701515397052457265852059687110684208838687983237505575468883723397526425591438602252308403463813553881023778969414755093600330092972318329486130306210322862315858487039272415461417520828788179925089609462336580894302512840590384359413219335278701122664846095404460398640342481926415482650141497347884899105099131539075628429761831633612111790591155985839747354847632619551418244124832323709641422661591487252047348240959573986293610433744456982955995635905572546980907120882259674060477683699241491737148695149565091757801624347852717999425014560604360899685097478393730879078888672781480264960860704051203085248580553684162058666049070040867198713718231086738198354625906384529835752038307847640311027790467582234925330400132775811976965723731390118227336225974826829753897183130008390630732316854472831504757136178925196172568863510713680972313043589828893618345309796680726804164940495908003221835574033497233420618037085600469057818863993000194520321717469501139946207804334004897593207806744793640245681282575290257030309577955857286721142304691557758872158459162196870082823550662752928377000253166581138114011399994892198994316550166128220443047604631307224495480881895022453359992913729106078725094518325401563855292328960698840257436329269199626827140241718873075819438847544596427307151109634225545909820468134079330550230286401066418354202460202885580671886793420458923509481567724490725029004897139869162312121364553003931611771268653138950076503179515445094606680545782452507858045909021667699019121333975547356231466168310089265840116848932398146597486923890035086832928163226606914643090368134034369053568678136450949223559549904645731656915224548681241837306165889891006145795039767339686940601233902164972432025850214422772595532567278301623047143798886916930258419119712969908337668694859175022994773254981737771428334222580239624858590842643587137340618955845713838736275525545011307990721782740811132288857793485698941206569431333237888490564824003325547461030927127283833649440895210538743955336923737638888368002791735506483458442129925959433931314385968530342143710375368943542503967344913690597113364123492148068882877722665160560726927274649757278047987065407396750199637230351059589726013447844361913856056757421269239727501919632996629133724204074156779003360064217598954586073080074564855472890381094672581247257557487180372855001691372583052618995422957779031588336946770189653398579627885242754390719463901543822729442718361214136919764179086808929774587278797680459249785741736892598709818447065430632738433613878818128934385413894567007568740885482709141751447241037371811561251367786951668255898555075805712175361426514857073234860011525323259531894415563338605970255219561967252391866198975880979544248789539953863578908140278162393281474926425581622914994982190271511959622472659299345487962906222830990042229290949935649767431322146914034974337765657318831192280905271135250308953463742406256391442646992963536564579978368124080012722670472266929439891090964106297317795393405839122761296227720545908711292261274769424569876265351670205702141107818877353593162855173215702817963251582587479868648001708266434348264927135666548967629852461866093885482271486801036956465560299370197382105500807490091266396558877132857844231272679523893407105132407105020336938414762678018834152383435243771086407850484400774683890005393984179451877333570646940266916660143881910663357637421925202014761521782388414196884497853497345211587551155499861519741012251818671729999315966937943898351815532534349069875303057163590547138961933246919325265364973259973144549257024732185371371300693587465780234912173816465093400496113665703174010934797880209369143677541884672088334956354002048653951890756088789480439710323016899155473316783447723133093470029793796037808204654682853348463908422560514122049002803086413583465650471978371947876320245721792849966803774136113909835049186455439987728680156312149654207652242265843542335571847825797051778098066973644239359331984518937916776898686991378060518409503229399093877503944412476464197132365303155197382852725944938099978259527013673368539444798237847517320038439669123086621988501661594671205014422283273876535032742595270003566025407247300956414362796439024840065413758679209864563581810273530593354913187852402617053649614458615961307336038149734439145802395313218605995175569852716493611859441281572357561390219267121530288146778765586018482581951868984166222455542526893194440625747242553910829554414854678283273487753180734975287868094977112303214452968662528248436469358420722268290838589055941893441222302976874246532455629787154759019683835805641707557870894288470214280190890079048528545459449172573360198971365283128303409463639360470667221622309953711944896608689647117199723060968332672235531087606531286330026500728234341125448565608961969261639559109526758310714893114787210056187356871934078616659181784290205562061657170201065637901259459537246496485388760272257691772469067572742604138500700604769428853764011411013076531736764726338645600387575859756822643303149282461077961309357569568203084683943572423875387790089331943821795776820869335859512237821420101360587612247351942626684780804007690290583988619006847177319273170612707834297357352201196296644947781766590180182249952306448195242359467659817626715654082756216238024109296331284400288822263124357685746412692908178553187935833256460140583677339031814143835298985213412047836885772442419968293172398893462811959564329184458025372021367135247747384209977332951979424550612373950258178609610622512936594205348695651911109844085855049032155872606492436063960209170624733064348653598444466463218916295960733443211169496908777214242572075724347977886989202172480941443452531992237386857596273894640903919105132354101990485907210476521923219700446911524995298447822955146038569623542933214578665508218969510165446809844839689680562142923503026988952563879637627656843813494220624187034283542544816651178126688198445342390385394589777178309507068241582070011280346567162377785087673370312450662853872773682179589551062798958779589315109553988344172829669177696835691176772463444398231261685954779706210305485089820474451583271157428471574571231515365431536593992716130406132338805395470768723856282686566902591188371679765562504982496508639414624139465384896408821144549902343927611696971662711719027632246101725878009518149805064548970096737094896602691238063634453758950806889209076806874629387368174073688402574655385976869697267143504510990643520707357469722581869697900657406983184282924531853760290567219297648563584561805426313417510547599647968975831115685282811497427954069909886204075913433034483009954031036345977566018011523873150817120084638304380475038727281283091387669251575178326989326737578344387514625679762926652545819452892587414797605159834770679200483719625926796214545450051596971659837682804308746578595243516502670688328250338058691996587491935593827469173487288706980323751306592907900188029611100182606079505169344159324487811970994524258707851856517223701908677998788310109025231981125618415610378244958981120117174823897117544189267347901943917925375327130992280674648261223793261872281763045269484405883167262671300290218592687279102888657107432213583744654903553315583710319495993982810703323517585282950597493564385563565904544622974166817357926827633658578248807019689693259644685942282055781812646854711998887673029966405549777125045936050408423900366969844738178799745683375886206544911954579450405814341796382272673652631099548772800810470339974546065021431192709904227638757695756506639569340682274139224224151976534174137855011364658361626664502095604744081796932397558587166805309969430663983513339890154294055330652202028341101770759909120488965793462173745579037203186351660012819723941721021482242340893216064614424395324510280116595430808737794822329209141519198180860735579284008586548242328384710557343252389701908086975996984799154400952251231205054467947302712673707466995210360813093720800241546692390176227642316982645568702900079345029036234388456018446889180669396938815202125638705695146048601481794614098864426808053037282565819774814302240100840461166048435426070541342171789365641962526904870625784296050389515467362291054793995933790881974102138356438794360400093837800162145813757463474078777948196787949016258515604161451590638714702545244446719237431004681457318159041503276561111766449390129357142399278751321484939456921881862548820634669491069510829684866069893054088702141883155816935619547247765620900360333283761632802402816746873049018190039358461013159721452832545650930600298358869320229129693930348053890372196528318753005869984395177270235529137041452670260339609872859303843415677168365357390067374553224304112746339904550899092277782928836960495411484334784025741041194363964812764443378757849898305283768143851107659570824086764109744825676341886284674633440408147856241012293605431389731274376559701381461023920796902673629336324211863915485358127192532629093687799296702230616270581465991691831573328960454491774550868579603670691389767559648637292561699762060833772603433783718144231501197814188262390378738866867152861048304641715913279961187338075190925638010782610659705427804343510472321698618286810969721095776559273375298396789051074500750185167339063322400033821278592166187289632189207920184053291117844453365715999040544235931807354923899505428381619032944610558783023215213088058393963061852963418793049365292840543253683761142856276995510940679947040255676117479038368707925774869438006810792411221222583827048366909512054035622558648528166882696119524702620636985259895137307914475059313447404799179375294513492986985530723145654005960127708058350709767411908003220612780046616926400726948831170806709716070815069011880721303995022188166410778317632990034725393512159162550276296395846245494129499437800596898794371732407604109117028835242056318803314676195307164176488384942386126580770784834078716643707842108432671855840063336432869122537200158339579110598542720382909457940653467068800593841165191452558524068307346335772062882233548119897096013457359630014617386695963871511269033513727851334576732998160246876040288599101212143448973850692750893639685355738007529078146984030599088994771358189186679672186138760366351585821509713518707345873602883314783200112950520507584390351620595595900719425691697786343304628746179764301798090007977784579599150801646778738016782071890313195485489448438536045707812107870850139432442404994810286566121646571086751009715944585446007156788478813187501990210933758217399903736804587533076023779860698028726127537808461056680566686814517711508521082645771010882611348965013448898699676384699578961839961731044395180338613311206992773291274774500748548758554011361275654440937783892007761430830347085897702389198775843746898462590433846042822982787364913014220283475143248074337281833753145560695950338864872242191349388243872186233418602521898191922859654635458981467044960664709840611466042790555906355417971787843688926899124403500386099847276454534295926608744232904489988527600315048605031276954849752748118461459770178252891471513170097085720677223675675788427354578157089457315376403693561739261190165082326887734003166228811158242181828083318587537446055957963628447312447346738957813231046966084411474328171504941857314510045135615248236230610306966441273369419608234259517567241969496839444300267084667369934388400679909126726396180026445484522646707061949347310932383990708897499427255032458463092779197135771877213921916890896696631426583542910643752834712978145054373544296819961197398072830076891073092403638731529427731767568535083074855553502458627273900230284662172236969500136606041657698090865229270821579488408669815015730948539371449720398428488840870885508347578240255497246261325942091062187741240715719212524128213627839882021602129642093979085690323287301698527101121143137061588877993067534871205707024703584768542056026594592151068724466840075302692811414799275072938396504925894866661937814548186127936812563097930100650800413885973037644560778031016364367340346421487494043138938086911849802312778703935025198747184627921519343665537379053948488981749847918133655146888901417635284014246958564121261603027392575588590976412962450388955329556619581303276100679405153246919260657563783225354678873102768053140477085004007193008451935573629359570746584579688668909607051006633815098442629068434053790563694662383136244129612652993761555587259193265496088113782094236649606646594052727306704648487083115652918785013762883724702898752310990816321926718964181364127730854823742717361427811667422259407129326173762821994955375304469048304487246688055422866069176389101857200185151425215698147699406824796784261805463168891689454093877490667387316117377820480657021002558487476766748437346669473825952569105974408858948504487076116999950208116461318875869080229634153078258299471066262477126948839518599582511788327031594026352980997410595472964211964057153676249637408031420584282377415591263215085848805829717390071511427756837562712267273829766026928022652880916803828735508472925366140640050070978602563249563820555942332912044181797597706550901526042235781541962795422569731685828878759868432798322043104608125518062119672524105449546219586808634643323147647558599764212832185583319709912748603285343389221032772374778570521834097804202555971836899973424941100816477224794861513083608739525735233907513552371866853478338138557457938729755843499062210868613469174516134365255391997283782109820796837272314438461370901379897853977493411982032123612960743589150082061477142524211121723929510587584439174125988986419849435162357278449415594278253606399635858087856362781087419311025524193934044287336550854303686508201714529041738099366290861247908465000894091493043569294217324748506931152668381870608209413385614425259092865147972563558085544395082583495902119440150005570358790769444404930562652640326841577575570481248023678590372682043356524181229706154019965675437613404575704824476460333373019735470523391625931354104180186828801223318538926552791977446287738109661051863801376035969778171474705639665096310316083670827675727913074731277801935262433124557189792448693728488510503385384950332079599284452834037322512701420003165383982360457395651838576516453934809808303424812275913225579277942827636896553420002064369055990911529965236101624696983865865374945590389483438875241995195876217835333947922392713751070712086714143161163907801543742536567401922579009401719036651316198593266170590912218763155933944244890733632918639723119733321048770806412559998034920846782859362936396350688401383651694835224022976794778926461196874333714344967158809270322647289656039872262740924724300275796331223173474968074550994729074701394079944200678200512198575722524604179281104835792310337914138642623638270000358874957991210827714403444933040366004242719520932235027142079755987077927866674433498616327079661904913164541714975489012109457348808644133692106185675121255587987995296765199820221007091234760792683606788479343261126734805347298275567857047852085090435750007336039549955147487855666250790065898157316138450077714813710133758767352265129516622960799909920377801062636481121128291642433931737544783229210892202476530285481428370508454150626015569400014053280259246216015870637006183874350800102128861412257296752993398468872409468663828664976351566231658240946395373308880905397870146067251429246814155749243550538122495597704462358691290732215622793346540133584927962316090587050928245871138819696584210503833751120935263727768306787729261441351695553190903445530576147833990052881886258935009399992622257845000251482047831499547174552902971517390508084083902812450242518763129153262392350226018548606580392333981269821623005145768132668319083418215977084499901565258045976806536767556506495279541206810811015642585645854400378672687999706261352844208508285645303821561395455469340812733487231962213054309751212578240229204304288851839236828751450839843174351735979598741779171986693606503484584674903894586394833508875808562657077343619739899192290295433439224508996549694343690008450132182672265050728330117795419210855141699433866594463084901999036953421709638074767548318337251480881538165734128069722794828067380647298919683606563779256129693146038387551349702356792908269092811066344377320962647984099761051085832319673614724057448591125647601618199768291557900056482586509450139613370376109042731474059684421179904932543711886751457262470439863173839685616266867454888865924340928129716446089055318196161085809079835971834582173970615353347078845760952753168993824437684188335631278095122596415480157495637230322685250842765234839070635646208503753233812465878931427344354383289113582026139713484089649514833666977647584293917702350446131287916870052134727157399937838319550591471592263755887434025425136095096261498560993289995558356469411033965027847760067554211445745385235534204868055510314325945158329304891794287911405701816675827972361531730502371914173916862344447177710784365393214233715320023345989441837424428657848350778362756963593606538706348239654190990432800167691409917750124320481496906558458946882961135948974778362934569481362138047014501888451997492191743690732413795432382663978407904034965623976433373672014329436534150373714568617173902377571584205649544368631216574831922428096391160046513895747516654253276270002959587430515135435035689023463774792069695194413497494997041405256133797520228142419115184880751499568417072845865790864154658522753272293157296206713660862434766697445683512944838740039686315826905146684820728474627650055460493841864787008344900874520882017611152257580998326478935677970592389618415053083212841168215597357468146057708980906610680597478435689997874895475133442395615847391793607106239560835446787313831577296051297280692841933630476492638418916925225252128065490801467120064436737956890265854297012623927715415619466805361970850024220868168583815672161778343580324934504799435868379914403894541760703235828516193916206082906399375558222339991337553142854184709387927992652553778040609312225132899514332941733053072406717525515525358932458164499822800679637678918615983630330294666047184157787793035921465397572454616878163194072629769588928665471303562683007223579708452367020357101930582962693850415912021500902046803695123556317428826112807372484054402662929281820089836654547742331754090071774869652982472987511516682591208458257025519182457822016017945243240842153898759593553068895592950135886581828506478326344202335161096777783294319349947089971549161329281736418334251758117651653502686946854940612539240655105210833260106424238673109422022774033827760694086627700911779476913021510987008442351774150507954590641478801266651132138658387244167027945388699752564105747133682641418409406379929867887903463311814483264007307111830270883466138202345191934813767406200495731130485180827953207078968220807344379854820598311727904252094454506221759256023857822035577027104345724989340472820182629947372172643302201095068063881388005970449221360180074322653303753117619364741157644604100170442841913563595861051496218688826183392600286203900642506296845018992466893012786225339889256464309567814265482474890894136266715978620170759811454377069913562089598009816281252241054291123299283543665078079829314310984814020209906663811096476255064509196141180161308905359839816313814815998680720072857315816309731421387980767696613571307989003904896347304459572211112938514703646377995868380578803473067420941055689991727160678609650069184943424762425036724046388401766560764310204959025747039013947362032841255463650407609132881624374619830120714897224140402952929289964611995143893268896157007079551406949183194989405937518833091062303602763126887608721688353696035872831520962942827187397651747924027424892697353528656705634081623706490781147069087121817514468506732604165093507313750868120801879102312421984823217215562955265858317683887074696784090886046696854597391075144659091955852610235405344513404585986598602121136094306882895329928973555067201796899231432397808797101242113865063019345874992246683379296803503256372902511720389313267773599720989270887979700730514350897479331586886451316504903336700022537063040806438347486201237110995954907778995243157968514426092427328194943340419797504078415998506862678168731234514412509098155839467593616086174634190345718525178920969722424607725442622693575851427007082298443685369210744857715230120800222114812265579941306883276169243053708186273922747875774209643753780090622871491884748462147178901222092258255866508244290218232206755813373061319157300150734581875617465481881287074006902978345955265338745247131753061828250708500054335879310393807129675967312915846491280352606660542159334508869831148524860528048410470020099833530637557066397650923324615810512675959824354848308358723236158496826589781541827887686509450610372962314256588422521804011855725853136430282912376207380853239888310489908525197413983771153842517012755505405438196780124345046643536357731513496510596350501838300508138608108498230984094995944504132784138682625833378901461378768218285278371517523008065953380193177173676572140084789621257581461765433789680253187082600132897037512926212309682752233412015227063240293638632864132395164984760233514637211486937593721979253131664916461676037262753036925743393492828857113835177130299270260097935673345494036078503520687560052524441078336803734561826793621688496500371621407432938248039686500132544723673968730641221455034182759788061117690896598679265714254913755722071456444190733339940907635323764579316448906169381437311437748255124776912146104013846596235385191343866841093834466719074000744557183048676543023495617299047615032412999167829239247151032993839314820295448571948713446981127562878236217678104303973309347509189158650210687752406651943420053248391465227211017922456350714785711851760201483674328839425004620811640593899988996798404750726758825258862972103537514027412569188351091411379406457815331498127617768769772634529897238492296056006069735124139716436292722487652583936252624228195309662492005085905284226291941816088532494259057389335908621475178542601536958770332404932694053098544117296507437065812690348356690153792406465454600411833896820785122641695180758340520318070188212365683806190967406019117373761341548941703921063859098549308253632413437120452821145528358139972347424385378308934745279372167053000498805005854467613361614590413567321032842631923614167878519603638023309378639409670365649896483241778775018962449090105357457801618395901306839373540619276322768021781565391408893473080788858167625766681314443719947149743450679648588562594510287466531676514367288888739280584252659480877313119276667300953557974824810121329484185225361780208835187085045863354375811932461168264561683901855146367398391381427917702206863668736291858085191498925155675513079418917483002834942574123887894106250532193209901209548557443258597523892872924586602927909428556162752252450887852645813707775864007240065521681295440172757380751952431872670692482403130611436560250239381049923928291373077315081346626869060548657493381727907362025386535439815568898638885014848200204842801086282174295902497748078086746217690262802991016827008453214613473102565676937355315999232240400657803938392304944926648273117413172271684382674424011876582447029409634343463761987603522204930045949760086108974722927776983881086176937679928076327426282241588191168023080245330100297388747779028275578856218653879600506013656537992280362415780092405368532962617442040537254840484083091833264172675369207825143735450027913119124956792613527612011712027006092216141898993675508699682239528572060168319056656693631605059315598632444757790103873435760817742347867859232249711538325828914954091035149801322192694370354502450712158537400898003420736075453205145077323979322171058597393035090932772448143351070745038460134674676097659376435185631798395020374216435414969484716583198146514014011695555804274657577949121095148203272372754319856875480029970089400562127525034535445597696655821496198943380098091274674915916996791445708536166360959941120604497822544108406153649610219842556579006445912330703123385032060697755927743596315424595746881231947800772896832553876363609240573019512059502602661805559634147602397361975553339798977395774141607916071817506072713236492767425103313842785443061565943491430545108102547657192986345048948246998866131240113011740892615884471324202330308300185264251033291967445908428654881380023878356520025168947014954623316216708577812684059671702918108053864980312671071059726892380341452693206943766977392351334836849911500993565161416490085137338063575742666630613881295395187040751015177586981672512642558752017436900456181351076282782936733982563758179412568522048787541619953864592128203628424756513903214289812376939821340725625194264588718429181714286183485316103186681266206331681851384186352714981861775652989394094729244860274395172687920706030928325562324551335643047023155742561900463634720174574835007795414184014107426333917726190140427941056811664770267916326356824321832677389259881298242345594731910316925695859588746655698218675054486644223504764106252042770872849935311010980883911457068594023343937060584630146151723211029141239515042995431122919391707442385163577576220594364163689945637700905072646944374852076607999024210835910283003467101569896741845500905676122750059675870142727518177869342718514374437684374165779957327209737063453818366897312631894502321136455315646201147006735926697874066173731618135213497746731961204019689437331709313585766411614943366966346384845259762213842726014163727086893322332858894189286571381984681876124558746517596503776382492567668591098563537785221333177613546797626526022125052373067485158159291989227964342903816955812231182055917523646235086311731274164807731939291522710534180026118523058375079541195549472313466173091414222635478795054544019481146982438610733964199518847178058164529181953636638119062663879810454565907255826470403683801003421660137555345652607672179057610150704778554341472800424659286388810982113309930051569778842616163050668441518975518598022301310573584082768672348817541327333782731919903693545359072600689580246311130587139752162009929095025008117024598317561904034775221348139620260753633848947600293163807158689527545073258820353721214193798903989957219720432081781595689532105831687279672593568221130135240262137501534120555377553960150066915570105085157637354506892166858316330582562986989414307019084334397222921291146945147293852577232647921540910246683667501702829309415699116784661674427154516390623392329597177317144031425772767836566005644906790791645002266869878959552283577232250959996200975805348606352462155631992344315886061016092923206550996262841873265824428665655471666459944851623425064913654712871194533519991323177220931207526452656351948871597713980726920929266647751791433452578221558434637475651523322806769873193799403467860485963219235450156430501401507001102626112496104694138775397863236584381975027180699887347707269584246204577112487470188300774748770983849199801527637784563166182151680571574224268523729849748684252211557201225281405049589344956293244254248988449764450790049547731163488233987714507008128797778657216377677175438900349019665352291652986376870718295785634860980713415123352149802194913618701639601667923890874247563450614063756934972919017559374024834736727866122640212117473269316194279152092321158882740917816478044146008067261171201550105169912611194399445635982968937477327385695530376282260623831422121643705507273275022487952311207022734057859264186604835224808989306563148787179809453853604149068476072317884984043125910621673408388475849258102228836125591637245539222869152144109575374210273311838333485071385097904592194490894416324926372209927871250851107370738904696307985596774237786100820614816082398863784730745184722843519220397264967878276122348604496540584045072609354913441696525703014875846874479053265998460834474274146757328697402668553694728838755169601133524022890437198318267274720656491069552291192427670638464839016637200113194386560539002851042921879724759062478773873588935849912175948674438571219064323473510736811548994224043711583358609930357673964660647943410348678227696856244586289415000926743732192386070491135965044810395058733440486764643636704091203194300598602020439216016478007181379125521161112334680045323899620313147922843927454555954485770328023803891883826539311651676526883927847134886649069535229760861722952340932829206265662962870962181344940426243485197500065862706941597126683391319833173560460538022707613207304910902288533392863819253118021935379557775086035680239633384779157687417602882655748123619076009234989573780940392370046908122123791130501987054892831794379824442849155838997660876268760846406582286821254814275336106227878309321567142806105292201861291078840645086938605298523089063358195479462626455671694774824079092142359047561882457507667031528978262506217130236727120389767851659271398447619155404363968699207537039775835238551634215784772476360147044407477760638709407610408611760676315656343579560662751976833869889195804958702660332745826767186645075247607940532842876938715352848584927918714814847265101367087488136132782972525500025794962224226692591133398350767392721747698285629801010863117440386257653281527353040534972004224970491234066440655619467723479016218424066734330403892501240219770044789923959537831574728194701955673259342796612351411516735165999241450133574134034783420983497318942630047055569909710457890705401662267553103291226070319087098389194424298207438489035935246000746201355664528259449644377431778080918346786102125199979954538938381545165884457563581031791760738542488724916465909566827996259452104583402752616959700459913346557999544283501816919473838097960330459064337682184239437954166392388692610211971702049101603393773589205643436764367283821855290643236967670629808393167408313210817405104867867755070250779095503013240446365369372236588941285620762514459074589826253959807625088025048670790398178523989023432259375853627799831695337064826850546878114964514943143258155434962576783945147194402010537587102808451675963085999171241323736949702221863861173540993222546318001935299283792253757332703452770030199124593246050062853945020257338728155741571895660766288557259165594793048467080845589435750106232892936958443937407091075934144330985826371605477743441497010654775372237802867769926424468142996232811450755623917050256046117915344623520104809785385317774913569301140116932234102336050564841674393220312139640453347044707824480801095361309861641721559799849374594039617510226697452701068720440886112619799050599415772015662514042650420352401409473363773567592724007346995796957434376579459847542298707406693823312305733508681339277272842849946176211642361102002257561900011784182677206087265475595786138065957815489692465555841346419851750579865488948229310224207089488633609862162230193977974641029661943667523252705928107392205735613181066767102160957078876891099354992249840549173391669771321460479378197873067318037745755280857788704155741017572770229429247138168933139359477708203687270349066126133118216134284210918195808086943058060827250275370819539073124998420972403054321292384916154285393310836450258689162788054012709615957907031658325448768920063728861525611616430847327868852445607637459945314545434292710325922551096307162586395203368302639465962122914869300286303727434453295090815866498187857641734780924049568258697201946573466852084987632388370958108643450031033193938399856696041140354029444513853578888089014277355600109021763431078898830687518414674769966000680194821297334677660670026703977510284836957832111094103490906217323893215152165328919666072599514708169947435503591410793073679427770934589549060818308886000489082322213496268983569294224872212042614757664029065075160872473770996945820376305978003468697295351148941711205257545690321259144902852525844157644098155691485283790478098520004487294638993563443487678194660269212229429941027124479765934283121129871473415776595155755073673637975851791960075747939732973116813667768754105285522861497259031072395106783817979529276604779167995572481998260651694699293440644309082363829104035715219433624787731452041258268958032861171990700038309578494833107097765959400541851421260336652928765290628239262047499345188319102259333345288018614726938641566379792697077194436097012953238158702428589346077167178818071412049588760024914552932390299759192822106462007075191975722160302127627972919877434227619460242385782434041841056535582779505691908654044954931956863261693385503979910608899209504919140891934707251023033643240865502318902921922379478669281494325085704639575669395118320777240804587610071514330548632334653046844952240795684342169948442568726604147093245822257046998168752882972916221888484279503865663866433482515933373708250772124844534064524331623718236785613867432919184618241775594382799760247583892048280097904556654835644262147796355115056424058784022764189714566662027202429731228748936988846191349179513740916427731201114651297603402993386914662904674053515101531595332811150285187060892654918342852988782694491310395489874758274394768604099051365992478665925145668414122415500225731888412690201324434833932273106823247334044495771860726970630832203169769576256727345538122860194403126558202438803086978610473755951255652656419359303680347199680491677431716751413646891559865283918133297756385572866037494257165854243491924525350377092701998139658239924104868426098190931933219059342495849456523862147513813021318984671068747655629553244737608432654852021376892785083567397237624952275265515786710980685898414483160684557335000954696677661414880036691664873384730903704456507562670360305363717628744280539409833692702997707478808754283571789708788709278356794047136271955118261028449347311986140748097652339761209303105626432483721254638773970840768754224780392173724740882590953124174219702493275728676647246572981802174462078298683679353297639501528946326112929555296325895284562628432279392914879815308033471189411015021064352337127521501622021834821893981656047392424498782442385979370574288515909839701291368463338994439862617728709297330963596618916558389979903314436019076486674886965509282966991632030218780163497395756523594295216119779375372601769830069034100146340489559089464569493204033724437806360527321059994575164032899370487752463476102292560308535015261833931723952053197510306799757761929527816457337739514397016370608126007753068145193940619005906050918904545918406590683729759416963314014544740854351285663223763675133529487751619874975489014878843850063432064386398441012327659302121374969948852702990904127121931698379870645518038815229893045086118252083980570819465462026662887120193343571215743430548204686678507549369023477650687868726093595895613606227018752700778685505979462491766700515996121798160258001693869862816079112406482792778262833833113197513713120320776904562437301773268386934940540858801808835857992625822455948262598191210995979966624981221856067110682562024366988179509062939902051885134167751558808948307103513607778008830231385429248502953870038826141447368888565540379686461903594746364041723713578263317769859523080032516421601005493978214547006045778182805013427709101954195835997034463385051249548697845611725442591420862884180368809910786377707767448550849544283179157717777428410468938962077806073301917348168682351194631044203833394608848392805994326956694838665438044614353940352609159440311679561123587751764498554967055512937091623208881786326646605210154756141341447307814664385590106560432220712843115845094884543946972905019389856241486806501509577247033153578054050337207630808358090532546483861727517851528343301259457626777595948183728023070915458606721995564687135122917468240468277097400121906347837424858600014432231135291049491254165887577960702923706323898777245157583599177270786196269829231663564558370056542617332378385558079364678444223443043572137099516119212764057646900491472905096511701788610921120484761837016311709711007534861150107666664129313275249339756494971255630500679938170529613925468500616013196535310595658045616672882900034925123259218076778320738148021091789658162468121928676220406654744195457005262456760979734844558880699211896910368502288187681346545206363116931833562261230504726929079871186836698435666186273732045374744853943378667858629117933088213472454334655225690084341128562970685806895207595446599538343248368222198236092680648032654526247722523303680865617760985774318479357559843389539056027345705168726960704846945647026165303934128147756704354853745666388917201046994068794804937577687208541254741354092134275757508736259899445121159815411166436677368948771187836776435624262500236545751733498712129465319134104630899448701405165129256448194165608341780486258755940555201841372424967479033665851016317747525866432688598678184406438673315219253706640520609061377707450593000396486701454362103516220565203625458342908991745808659936780722226436294346608775145234247447940928183550869586046807296965521787736683958874837105586260124881651325014427998381933539240101162167658968814517863888910140357082548018605279595915669264803720039414244536807044066548851109378077260896759384630482458481085928931354001448618457669125032412627009555004426718947322875977373751901069031561956230567326709717874160571783962810329138594502926815119970767828444523380016661926541085209460855418593552653745570446661715987465655960702254964071533078429710126575352536516791488164460673302125406770973400038405865116027907703706117353194994112068880968994210952650082850157524755163160847119717549121377017538318206434620010625411474118867983491045404946811398555831653519153651855824895206638132101066589874009625117904654190866558153622644937764724209758554647326417524437257215157431792936578089199928640741976533172295544341263260819630777741938080093267188523653332863607295000379903788160983602230505922738889844033441177172763932717970608595117913764611360545962069130035913345655705856796085114798295564922682894129626821597356459499779873607893526827430455846379718715804839772063114829650020342100952384970083639712883834294150752051312588305207507796765265805959899487867130604104541460523298126941641299759268928140386917928068890234478671411090310348929607236357557026880798678676304771385522203800743400682028525015542637057653738802245089106713280845385347496855810211556740819533191606521271359496599463174041086480337771247919484200833617660292460575784205652186477169851833780380511282002405492959699080595109495509852546225788406167852373016050766376792859506983039679953533747191926894611914923754959508650150706706077184215276334251267323132798849316619586014959728944937259838978858778721995828901838011003177510951558382601998150614534376340255151780608781075399896531041849047205277253665926061796827849795466446763330679955621007025161118450468963078730723637777841518359682996375098835463803168327346127691892205270106721733824760001841574306255397876420430856999060709332498847972651636944276019192770411293574672944932480738981377818882859442911275445495163570071694883405695141338754052346504905596338398250834362217122863271153647381528486207480648684999208713005617222169838301604997176631490480441818278670508972801225507170142866162069020039490462877172869019656075560484043429982645387312902772496508309453887958942369737006698333553647886407217428721860696236405882898659821578022572892428528213622226363533646097673961850984038706169792226469360991822942425503023954190915207146954825626779712716098406575245456544603108815330213701955611352726065316143132158580215556008674601344557668925973233968550566774640599382495523781353476269800183492700318394171681837250976509634831528361724619953871770655305912502920658516676988811690070384104255459199915668380360948872356626402383316645748066451599001462997395487861716998391946950258314298940276668608175532303349636716336401412076024135991524334287289737191115676613335567126641296299114383950017660371321839808837451961330599867833592651324559457188888982202249395716608554387384954470859827804017352456203264460732554329359212296424766495942889826486270353772084035165610817252089123874641742935084087079432151222980110233009923447942384159562337590146354975446476879967405193319152403419209697159243993766011877980527332073163760023615696959514878410657127190072515472467074480925660387399004703687463571200416510972820891831786655503476691312234860869688225374953187951629835288919109959467483032448363461568506826135850161289230652545722852134630210183788412103625902212592489801919084389235826441268771662371508726169087601915043138952114889197440912159105014432586361706414032223738919530440691228926375309157790881110090705042075326544313828481124029957563591566848532572810208545469220588984341265654945821965074114203084007201646116319973540320781173286059925761721981631853098871669588781903069383899382146982931995516105097614253746129717781171936900846409023827807707374389275807655404524033943241597184491696364025956595221250957373554351734163332282156270196161653367379758724084477063572072642953248847708261961191195972417663466176885154369989602813916928260708449574716168582413081821487420803142221122395149238405252777359638205354823178755283984511893237114482537417481661306120773719211350866074004397524335355320646273272521196437628885025419682475614264276648093654354833842101797042647652911713906318330091885127546391141350868988169280386533812181329563991071732687836872916589569898942779563690456415559653789895955722240565282252108341332723572914239010396457742711639866451900967379885211430825090100016396921911716133278170401499722211450948344815732948807037033300432531667375465398702511493125771064861611410540026131198059766596150589627629537077598905352430355178000412717975566764941993923890197471514254450235688112743449623548852416510400074038839061259340543564994780249267998308689628473204725538827613904963302515653557445733643525635584494372172894326274477789924258149616926963123571042580991052889064365233983259526962836727663417017452497534776115852499826462757744885083375757634492273721999445503846518049697297479030463583455928456516351653252371110017137591754778157170143157614171770929807129656790067001162739317329501039728653820131193543378989572540968348375618375990039797622805557495722085824693942672931973984570272583162667798776639112310049195074366915090824546540666970787355122676287667756574756905103226644794596858183493490111657365438371417091820381375500528110332429644327451164370433207099127844950104541470034728084493874007208574098054101241171748503345983582172711368791242345653472329079238961401246923704726079944330089895794593289554139063281351235057039945816221991332096909861316308175744589718551720185131844116544813336974185264850079884043620779663166180831585594476871375843569589030669867179178531545681184442213663949434471490606219924227395894570463438324312772965742785376608736652171208774668076693838394252070644819878218073408298911485728275874064370305816932855177474332525144934876993332258161417716991937623337333461069242785357661968603339444193275832778866508128643784014224506358854022724236225221988620775774529873693196247343592634884207008393562000986965622622965420789830716992023229504462727577231336828684688900709757858997278605000919077570396776111904319684500965669615993758379513836174406246792426707910237613871397091995946660445395410866582773442018016956309965853920155678300256030833523766688847365652499707635113960012052313091093106515833491200496066838633079028823735758158301680215600802919509531229403536217739522760494857922964715950907138855707714013566032549331352192509892792089149931817413732567035789837308792622604426464436232383450527712237773121282073734846542892698250901796554007095762190789926769822079236527277483533716628775713747536383138563747322986313645730364088383587628537426726402565816270934622651532394446625433980250658962527107433443424960478484029835850585116508925521862651506699260169384849572307986526720644577903623321861424610902882039821307845041423902602792817280318620415573018855821120822333611829101017662220729381612062853014274880131582772103957927447022391549338391167058694766504867126757617247716195717930952356371388225435733193225324662552985286799287720296238228400373009272001262101204541702555665004879030758606242174853995279891512949531859533987973297291087939921579860539729572795291601034454065420540920572359281586428880162535432832530469589862347039947995732900857937709286546554942935121844719983203727191973450618970376290482912408506865893399021353730115002213178679003439766797013883895890801328366276945368830785416651588062159476667615383260346699556778330372816809317586210275208319082162917859829730966084823858181148744772411964321864927509305480913978066511046940719169845955597375726453713820969085353442055861669858902418116055078903030013706069146553814005911836985977210570224774969462145718800136968232879524178157702374611487139791153312223541252591809422358256143227612042033761449804141927984747952136949445400526609919091837206287708028653254988572430400563822234197573540458266344249012889510995540926464633191932069652858209331950332703615602709213633447351520116588977184020544842083464513838336622469771189864433273350678304300203367188771689277691490062053875250230925155631206648919592507207934714760647113039249748241941077150977690657141417079776188864545678438332815584820345803850693123635495644616825434774988666744105572969119479758994598447976631423847836089096707450296869808781740332478443832230715056894323196662011004676314089081156936660963798175869331016132754617684418871370712878785154128363453456419660237640932663164360637570245579278762402172798160855621814601008985121605594839804884506869405840167990040425282831022404685742841579375682800306285462187360050501635642593082317291833147338190090802540937587950487764782736682709708913926521649571683625146135327349542057869276999247790228064751955125403199129467431210452093401083352703428910462579112519148095980696635496924513645824507834597296197058427976820538233913597908797699483209319245413424973878168200815261494426563128967540843543319946933002818163909160694438189118044091519250222090080276542860966121264589424560748137194355375918391354867444300884019769257025023565204611686985704960736077619035120672459493299356421346415517024477085287931725878330380564530113556936220642109220861356338118722311767592745342166252424925134194860401219121458102054896315459316727749455441058732856186004129092598561682749524895173788692500105131499168337588729810878717082351499313690887131462641321477916943353185600562488250938747614003064681582416386067539390660756591644346308077830263992408873553149941571756669318801794222746306439068338252741347043222641441492746295813894113907011087373946134695385619457372233353005133333132230412364212255193441098379300697511702606167947307497967975239678010927816324635909755183213737419937450207696333264768395575352967285670882148848895454268500987172832128831104442906855832581575033685211523671128353580036720636110614168841957595687720783307979302834489852832404586197158949703022486322329992842478193991528095614737288254378523582135424507439686055277035928472071280219334536552587686782824992244950311875681611259052920951377150805288794628180292451060441267255400758125937692538913299430144717262827243656295491893017315359786160405211880202074679543978976988370050495583355506044998287217432755207719788449948250951610710123444691995987478771061698091178826684787768161536536326602312250835711365817213293505118909252261856982976395141907597592197067405124224204152351246728837688533786613367321524876914445959477467683178251935489504833162156741145253822982692686706418503298021546331973013822562690839216876294607282316977647907370748108797340429237635189131956240358997917628318822504803624450583922908289212984608445343403635416328151154872630745940099016239673136080424156338010942591613565962001161072186783476475810361251066150292977847682053852653277094809851878470604297882417560500054636515360235193644114521226885005225578248044845928837622554063119310039134507129634297546953048111575900374751590130923777299036427462542008026467359582004206532491263618436998338624835161449483433807253810353189451291474951940354345589784514942041153058742995402014731964494154955503524534418453458934659934929441852499267481588989501800989473116240654628072362877102689906538262589746136856972439648068771291816084000294137127152766086944099420688691363973186898529572872088736174253592524965010798482383364971012096573963529068214203451334021459238929190217796958543533995003360714006075248581189818551917909895466960064011419969234236111955188562019288002366873850941678639257380622323516312235622262118352428806667423184678226282919079424590963839152399519292792693711318294528934332532700408797239669996522461414732214904756440667510787538377474993093757975323001087795542670432999743617444291065125094949604343567752563158052195835613238673092576555470741929214870178087885357765897237773556949691699046823255627852163884509799382257475253475993919798806416215131866266765383078916097856123304610139313024336663602268740433160616238179383386068642309919104525185185122803466587187699880598459637616032373791917009428457865496439569830463037775298325892054948095610041529943087804762148162355983928291977113579258559777395051008169152903981779214588289535871385611235374682676067925904750226589057125140303294399014780003500035982378012746698865121729496210817305565513239606229813638397402915470115203896294724292928829452324550409880860147438713634311983333238367894851949009535658260388377881191117427470541999854101816680920998785997258598476856494290471615327167659068047090216286622412675642697540409627894658205000504524413263188184479307010776515108512386054681176617253912955820620837702116488538485566122893546194090161569602346655165866175915148260319669974843607855152816877351265789749586777917716073162334006047627270066435113721591378166202972023133972451239713204183793806584776517941198957387334575766514965486320301030500419384214304386813771123089649537020269537515343180502289272855126764223681635294772435000845469195957666524799025573716303227648850170304407855425132015348847948605479054725608624794986928558443761904138856034565626724874812436898341162459887865220752442587277328697452155306136368890838587484905652881232145740842706102741058670891203588011915768035412812198988948802846302464530639864375383128861183404562999924665189097209775483925232725084665965781682579687551788829689445825602203656214667722701101070116071866102548407241769502461641023703233656056018356550722410027003278549613094433578590469079733461437839738136169742979496700314468574558393546378497876424683937992001591013695098238664647182137503418851134547323843282665577593843170454110636363496939445381088287902100473011494422871878254991607383677734839343302625302075157564696959350360835703713388537064580831216710535582707945984969847661472264134078437272034497989270193935428301625080651544576645831549855829050149186023053651829616300254124183658475585954759546071085211827693301616561800529677243827535991541006167218757923087891592776538224860742980315920333709833688982576612265327161095558193578051449503339036719938344216045111308529095698982464476944538015545024971083155058565947702509629252527428038031302103533173259465395472447146108619790592089742646024409069918547602572923857287541758541565733864714973148707852699053989787808863059593570628589640400542363376523942011952569386045287390211878269026949047120378582386189746088145137992135617768365837893349345614842220085030473234941034236001833203353609737409783178644837342094307817679838520436712968060270212884470103601305502741182571881547302399646362730999702048318520000571980398150439833422454600773956612243512752809103401946552886295675649161976128976086950160919713357829033498072995693585693330439240346320398666289234982579677262708263493296952843674070475971536118515740536754939950541011992130979173267241061429010798851814855740504727728897499588958241101155030126852410365732204894150921237875401816192564489139112937301858712706982265277002465467827499740234341767003826255462981141833714406026776893230879823671894594351720503513592613560254934531850581527605872770734694343033032819110287915390654745463606641004873848559550732175975276595371145519314743727473673650413362431635640190150480499168959090729332016957197987410650504731326418626286948420243427475268825484795904828660159845311916195102593444467248876533792847019440049849094135281328123163066866737106999428473209885638637332272190926145137492228807386010944125090734054376424749131187741348480798096150128979234670966004202055328104748273566912115031620782619500107984126574409564399053742402605825548427236919433107055679462575882408778735972082427601532195342855718241761575355814786671062483969644666355773217731160872917034472021120543423465380135014357773071031290980751186527900089926120528180543468937711414063885836572563416641256127264020834641665983113911312751389556057262603909856066077416959301364443647328129275648220554676922692916844753481776029897525857891686819727785727781772141025694597502343193654216335242028992093373894575501716811305689094559765171253003243653500285145427139582624982192188156807391220685627943837075402229123094319805194505355248607417960156346886291279420062261292789733098295168855885530227479865634503029249038893789511849276616447684215884231056096559338700608410986397572471731118326706528949512331155459968721417998663123195281604576005509914240286145472602033705655500328662867858571654814888565287209179602874015369078343010053278903124274805780515164045705075010565490425139618046590721574735387018977968494091393313965068080441515175236585057232842490909903410315058259333184747300866438826642628463736426862440800848467732462950961381980831752799567538363626143196716361430105104831020546302809689756677657755203508189296440613516560490466555592762123123316978816251269106716655611582024114389393821770374816110511865546877871368055611112878583198600286603797212264768245626032390157908353891959675925473960005114748451536295265787126588929226808068616268887032416926825420942364527399311532193864444136626855868084041759241704218346301562083200219298570774191556217703045340833939335703500146294469208812757416653486321940069461620131335398308104905941558317955730069602699506344874411351694520773089067986054503648338171427220942472407763963388886818745487339940533395630592714708012266110873754339213844892895510163459210587098291385936709955244828087278775825147218991281136577892722951779132162538287547214456475000886043212281960325290396671046884327493640067028988349200447871849316601369854250905110616482474806980905464437842208901464398301992235925270522011070885736581282511653398137726024526698384311432972689352812919198928903420727537749121386298569839120774861113923204762783020129229375782427573422791732269730712680682235172370525149555654638221285674340390815975617186669893672161494463661404462716830119033234983656346205052505886682156648472687197407575581990285465131732200658989303982924991733011374124618221825828883539425520614245080605228616305751959748591304427437378370517523350322557114521159625697262871574647194446531013309676186738672049742213151170664292496464570757693135889257328932981475126944242735508090271138130534265520955091672752084644748783651431028200172514418897834540746311489305620020855012738050470375192510290221881047570367519635598083584110790304569377985171965583548756297129895620598461489398802960812734161081578122860181155279223789736368631179991377767806522234146988132157457557132230561624185289253234518729655807658063381911944687447999660302482685950863343867853743502486135134107336460176756925902990346535918609402904566232241467129299612161693654745539185630206641804076394848567325611033427513239305819173349012422999488170480383972817499500335989251523340077207626456728775148548365736520251331955246806167629961240137914839387487672088985110441703009600165408617145546475887836597999730400037752831481035460135178068504192376772159464391098697088183127868086233457673598514366963522672301224005682482464845091088845754868182784006575628547361804873573095962257571850783112145026804235701539584347658453772638904460728361835704325850992443259532135398042603097107039626454470937490510873463843799823761133263998621808769658669362603964027227714878438590497652199977730933872495342414101166812297036744571658286882525165449125614965461192191623489630391949555399764976705910318406975762339360071166918666697077497361808654809939740190674257683884304953738655050647212286827113427120174727382396831943415346463537904369992766611741479674108097758191488747861633445904325868033281957718483479092373252734230161374609824627649579614432799295576154767331171437876098279180107478654673243850679766121632414275438499325162603614985582890175817623018188505883565392135949843643206072443254575435210776576905900300759831036358442325738804356469342605716740750288957383083118613633814123163841919152330785994405973213836967832271101002913893026997744014865381420445010321967661440108990611835520468309788339807876921562974233683947772582814995695833604416503113007085227225701573080890268494095775603256774338148625510696318966441998536186183442378207730100187394268182899572514063842680181669640508344076937616427247425284282316405479484997439063741750942120087307643688733116299211567074879455425020892567121380158242465420686433966757385814283912506114488144397979922919064178649952667085236101057966638169812134113794447009446845549229661456533151385094754047963869806164984598582858823354429320557059629343147664859230252607479034602887434417952400689842277798244439027537952062958441976399350907343836403931837801651738577782258260844212689367628498788198597331139530963202714935410017229400964220466618187619414483706120928691129050021136820644897047155789036457076861410005250315743796635995796770782680578885661604765194955024451674191643842986425638338664954689950031416233671715422935078638359245367415726495395736017387537370675786938164389131099574462867410302805745999177337346577732112785744481443462981668952739359040968291114428752617431771930438726617836822625066461753764161625699918507553867140325938609841328793985387898633041612170251305499775900935402498004873235521824313098903466459980961014344276186408953258822624094304546757988793802865772341816332431501789912382124785783578634165886828024669518478875556832820189376013065212766344102558494658181191567720702481808242963472928427764950236216629230413344912102216009456308383738756626047184414330944289515020960543908587920179452015352955598238354146231007148112686924825807029337703954457931115927970696516595611691534087739734733395659397347645227748542035225900351758952136429581242634905773275429082124330428391576408826304761848898328455092804189317219479089281408819615777354458164798105441755833530226011144902903381121599047612422281709045413301483129889321936853694939595724675017495604308911900579510148553794731031441988899079915979576762457446842568574525858885528304331820436697514439097268882514591744955088671882072134892139445532767211905339177555769312963169311381852420328613855943779449990870531625622832894803372922659300652413365636666789161735662573897874054006967626601323557992402985973793092459073374749662475083596344595156749429809862286232677871888174181343389333963478896704727241765605942834615297853447852194515061576922842107470399967464923859048005848284344365650509023408744274656450984568713273882640079548809199371807642843490692986391131973824591433036612734156427087086163709056938956954102822305786282922733280447046574826766720219709947095988957557044562544574493393329199313225373766982577265685577067565187231672949473121756388228608674286046765474439335863360748544504064742600866230728866466964494968810169581326629283089592798985491009592709762205948377695832187889931123105162604132391701512400883347520230212007989747452879034035950186180121969447472372429165156356623534099587621820127982289190455274764144397148614901466360786403470424395463842047799900841393417625663756953483688134185428184771452855643769255844218200658699105451042088887753032096188944864966076653825241177306526043778403002954647988335292420546431045033393523338333669181957578651012510886346112596282358089837104021395043207423948892033252335410379115132120530466633976058578792877194748769123544753343685262716559216669630919782618161320786863776348413286044110479713907068512304370584873896053640412505424910080721486027917830939527114591502749147217765899595314464979695756871141952935293485387158080588660489242226002662550326020772707088482688558605205847047036980745433928023984992417540808482017769984019067264885560300031738707596569421760527995233907415358121435035879554275812156184631417673393235091015571444566189208392531864332875108458636299799031824319462779274538996394396050901031669926200761972796123153972971580455274849383121362535971048745970724338669510913869289853090416854186187035423653668410755845906257742508948308097608739000209190997957735761703796792743878705664113054181207706809026387845257766333950059018596077105495709390917685184270021645673779728101674319360538850901059325399280038127713444444989745566518996350163445399645866438737906624432034492563697291814257837597892633300090396902974939148747137013189528897035945966315825381882928568877311280977801411681080372607952940379725743984837167284393673041258516244612368077221698115548148030635239800238043073719768406136699207473609827529656351015666242084937480527315212092424835429021813702326760051937962874659834754980563152441229846455133544460360876120879845564317224757233423332897986808161259688934769693485658849638240565950920737954524178530092986646241734273900628655812891332231915766731481873322179270537928570594394279814586804031007482879928709733113779936001628933352491105148861599180629941928558670640607577020566509921253502710150065107555044379284538542684140469697112348109755577869469606260703604424384934050642593635485082241077800595345707225129503022860647853475288025185369058683884090049695281440025983961502065512447005723350068141660651875481121186690368031057270307901868844487374663997059115976746571255614328445223300012316671620144562348347639163641610568220282909911659542619922341456340517734709168392715032532408479034478825693615282594660086877860562401194043964769718478541961461414299563626433350822381300282728933765605174271497045333638617370174531868084800876262707248030204436421410384572747973088123360718830380071073568725397362184965364509121065615084742901150355904393828269459439429432125946178002631613028856029128930065915481968423717466382736783274388397199330209168883791650659003990219350930760313947046408101256306031891353561895242496662092391921615620181254918427893450033888775770614850941999285069535846224753730514940100406551348889467263342333012827844595148398346392041359399137440084585184487331920600763275715795365869993584762161218518576104444372131768060847747519511436456052015642900337217444243730314669824968695580977951825111432289423604702983523395774956355759575435580387109876766516402707576972405116473207275225169374185977599849386996169128941722330903937385254344961838464705945746328570223059937335362897916034260715500023929452285141577606148987412433392575545088907570597275195746238383478015496252398262970077373651000227259259267963287935535250593023820784408663701089524671896759219354282542755176603373797019225179962884485595963204722185500709836413591839749266778707844790157362964808601792512099678082718945786101561516768483117828294910911695229742004876920216696081511749138220083845917038111251270480087698985936508497244853953370430251788643179977062953994915817708854832721295101081484467418900806447114933565234854486985960702119535737976560979778821413296302583817762557263636480307256223170477099879083529802057544019763542037356701534037416798474085360453044301929097177266009772402471275535800867571337525207185976370296404728475394491210664517206403244614000201897835954262732623692976091234380628809914056619103524417421418186772633562453702661605304808950013566672179398797627303634247122515420402721613481094333435381291227591582335423461092396960286866730510996457979273071477072409414631934648736084184561742827378553306378700156924271861686582105070879163799910355569275386700013486950706684038336859713145593896869972991368255887664268796991223211764736558715993373963988117115814095339951814362686208854383654906337856105258116353750410552592850879116463277719448674243698775896523442586873209039981792733890162025164190513479945699462192220343667656392522185130474946614569756083258801712450484611570876806893052118682468098307053020344228337827680560704742944714957489919145916113083641398269927878385655682081156464555509752592576125631574621750780747524226935264667528605643407706990159138016060227101595211427729034747123358864133014887934345408169817814882886718175493993112812453524116297239368141552067196697220247229225217272980514573247042666068399801348952465358724214490487698323785843636235208177112602709850412470817326596235530367377283343179225039667139991191496237767716036485518861177912851457488954168206661806528181510458329312687523731069209670266240195451908376828968051358578063460060275819447731630294523507149219155042905390507258722317854507386381162295378575348000702605906257788958604708139114279951487191048140042952705028279852367527776485920514814241608887117916562913028188958991413690587138646697358982076943980735615864908590649397917217368722561198500272282820110237670426022259584831384878372227255203131979526469181140339870495840683510572446239626502367069745011687241982404283515815685903043604455298988199027367706252838151244466901670207015266785017161020145401597305907447239066403674617899887343971729391077731666241236596018343596151184840237201143692550358548633965010268750278864274603243722835980733439312580686739039747875704634523863192174587010882923593966684912661733680027928391269651446121932783752805476792007837052232623808963993189997036643558025890677773800040829214401553064250686886478449745744185995865562857035305499765139388861697875389010167328851981895903366596969128946677374407397394274551022321783193101572360891871807553360565102028893552573708014574361576440934019848963992215515750744632123416966746726149029301748356352313546237112856162882087235409724310980013189242379813542256092043110790635372009419251615583963219618177543857389187270696758829879766774014447493789226988486281845980117606919977741613670428001611334781296408190190826127444137835152678684642270367118853810627867583396384347212901670013595265173825251867307862577124612784847971079948091436555098029489465238211097646612840513839240784564439056803894784230346263723009269807404467255111427630369135069628485255181120847355884359036425884474834182619786761410358178140302609000906112520764426726144218572505080701214620519828179508000005532870232670155991952413514009412816481949831305459297806763778786466483663722298224517136993634113607192097065288135374305030163948872186160152013322916258429156465783715818436166697965453066641267477456705174433672992444164913280267695342798928973183940696126022552027136244396278957102775095705092508451874107785327768867587609818989853533216500722401221710765500640245858259729685197212178595541629747845287771309542020795796455213722354737863632004147508319723809715996699661079911497442983967894157298389342379309738763181173220899624175358359747616429973844890214844508940022655276731256447908822857571178892956396715813923700116290407798549311153814031534534214390905650903985454171828982054883628071920319147685376477285636161538119458013977042479133308545216113981135793659359466861945800561615551655962212672900943905938362133944353025878874078105645769224469088747647005799861153824106691472233193824222013999999032654728137900664771500395250590766158011984869678245778440097063555603557853452517155456153972105311081907812507453539873739596134689542887099272348737779214698909196677568167687229760751484899784728610593105911417994525233614927629670973423366597570435614759085870872978014572998629645356394222069055993670581090552547950253314279087225256903543273989691268998284672289585875693670614811857712391097678483544907740710744003549234043357584515514086438778551029725116240291708072364936349996342843620075784370255286842836152715678398727204992715715543043567259042625180032522769864136289725590056273743816493224072017140178007534096804506420629562561869778978529314563569733682463330918206359828028921982313638249268521299572094944428102846265777722045080524960003933129234241831422348521527346861410500156626070033011366904320148682864115183583804864823772144359038398602961466436853889165336498241226932434153420714920080802875869909244417227777848774277096740909535712300592108753304493044758700569090032884011022018801759418479285581861390474470826213348152240505193229861193509851492835414526518579730627074886142298980175770463043957329851443164269482425183680475768661533621986638315241455822305141518641408603631031410262642475899801449771731425643765060608189871448759762611928485033186931243811551815095676896131752974679720371135839189367412817385817373120884363957534040156053655081249228456184102020951201233404376929235144292361176654803315539510859297237959153162715701065961891388521311438739942539689625970286383899597959730017687864523354652203638216860429807790160754103661209448372132611475002357141609203592133121649485455793416265678878886582057382145026773089867231012321890174400070241581562989758502604933444108498405735169551702416913547250064012039036819339041886998824570052976893260598131461324607348650483897516236438068028427971248922971297153833764235304327285040335267804788358001065276283603829563571347007194955873155737784945646216178380250413901803375368098032396457849499503975037546757158190674146821187561651585570223198185523851707947076386620659157883530322881255598621910724901328210875597003123012190718999414202712264760540951750901057802618777105378301490282333927280907122724729930217792844024293215332558279475178272432168583642702670087918076472043402415079697414710139832889517039132904870503776427986908519577788407292048419596295917264941320914005623399180229479441074517194157552269928866056817887594201691573674100588882436645719862551362401746710427046324137690390272347853047708278205927611833867058486040333855507431406950080721103272775640064067174103222504387605331869696409177781090796446089541900042880223196689732822248366079559191283637694878218227632431110407335951634274899891134342638345960639262529705866229618886508321860229080020235434750584984636773606840698728616166972590860554725695145671403091270705915621112203955358706714030217497653328586766127900781671472964746969032322975751437467471004823351375756213559291424488637578242897797034665046781368111387181530279516919488943521165555092132326387704689455415405066507406560702094725903187725010453199424312518413263284063774221248047707653490708513472329590391172572704472438493095932569653428510428286843901445041971539731638890968762420921681527755375492249986379868744041622321419012484784028260335444064679107026393215447984508504081628509293849148623301790206365506585830938768183679495010999360685527080813046865668443932922777203790540232034469118746237305147169682232645673756573095830877397377219692869236395820382389104060159700624689427017064584127244705670360469315428898369504603630007204394593943754243887967815136451956066987832491591227193203486087063100140918073689240091477284014652928230699757777354121176642478044893560410409037594952691826273846581199016136781722161013199192687061915119593697080937952858500022764714170007007885088939511468536253214992287101103684141524358691600019742679339723285713738327918710043495259803728202607764228073508447525798190212759353003516690302781729288087136629976741159311914671714743994924279552464909970410275633858791387518022319353207944590359810539738321828564680537211277673321027597835960285376829126448708719030422877360443472118780499058706910145640029716976926819239394941429445700114513145103480548273487782675731253594196233205778835439312670129712191594750323741686160095508474637298347384078754851764345046914734897931412388178684627845269782287382529286686483922752646013222092892823552755480692766115035518547998021547360077357443579685481970234493970087095084690163940894546617762489570429663748445784744115462580592463564519892422997422349697938360423240171026257147096764991954892071073928375189140970690312136877401079480027005483476556484610895430198329964319275363505543257139246318382700702780882167973032746963297986484041523290620265731434083789866679590953809364656942519492823434334595697965065096203709040865111570625953271964452734315030223829308321882895646993443463923173589499846283128373863289956091477470173856039399273907775887185909641123497027866911638462207074032067622370198063025313937499466403071952518298498870295922071968681098638321361335436958980412738672929673150255756026110532884873308310907055515580868557698229527330183775458183135802856032854006832840992954294421543741882546953053634300197428115209310594427905465788047133557080553221720973714666365567983237131152315111404688290418633975919832140323846215605705821884431020148081869686258770582793935559084732334961907166740868036476023322235122328490902619942505838527808056616253204948865703347818476173780376557390701727211891967114365028614459549123296835739402701879941666885765196647447202482391248319596025746891904997850192131290959368157211133065655190752862128998342338244567082386455289031360874489606008170353665041680792525597146854716631787792070652716831926760924157569365151154237548980231244231965168228372965901961465220680058400784878837423003737181554120702227013622527257517133624581027676448780832667864494674054683364181559651051957322104467815333720536821219326771496857144818845165551832482510914526483468100798395700181153899875637829251759470893990790651823413701591860849971143133311571747621180732586973539491868591307477137800269535436941507662138915008127404058896242017921280643279790229808201852071014779690183307644567601663799863714176250824431372080112433741117674814897769968099853791357964324339313189092318910554317384298529203952656783552727381132869050503410754594450450759042287708625731635460287969385976413725904343303822135567315673634255782757733369831082538517488959656277531413853006994842894526555255893650189137466419517533896737595095447066954014328752801774286165500509255991634152048663305087424258795034895673003863594502224127742348986331769141473839164971900903717816567704034392161713844863853472280332616112493989545223501728640304899002516217457550732395955535521126213860598196361986157195222186547335966208144323947341077158504622525273927158021562026408924161583597813686857806158215061328613822053433005139782312303511500234440275384723949949748964692119050374741961807215152411270586927165034522563379847526591337166214767280095419435919319828474245544823940379068948155844205084301589833413230374377191299406023447549967831404855926721849840626979780903628983927843560682385595527966246731796679049109934447121221055717115564526676754425279516210968109445813002105670757042905937050403116415193499428580265317300380225165331579973299927017469118066163271805600845705402040884593408267305933870962079157745021604789305978672200152359306983896212415081678546276784948523298711360316918680262742548211181416480682344050359162608262607158606073020965119314530378750502921586980321697888326846421970846245075329037848112440347634304173204119339025753931576846599372610036771021261917448835497929639649381176895361448688599228963776470458168580133406017122947033491628046753813814613505336274360456784937333880806226743425747855855475803817962280515252661226330977323296730769357199815248253875754178822085967999855568340134790120637266535394964862386770605846620298787216564394668377007280102526317606193612464506605923903997600116214917543773625559466382243537141801034591300410744090194997139588067074653317845055308747397606747052330205449127712361849338399066127674437057222191215667292736854405472851470177262918293102723795997046068459594511061581323885035898675001978868249226385456321680024634499698470111805304715896692929744080505631828846539812247096767910187119346224346305116349582340345756196794826109489125553985819542589761940474609756849872191671349846370551852143012061158227776468112503431170874910309328503278899373340681282369806484544019805344243866171472735719435308642372303810564198837787041211459841246764504812089035956056853594774558337928600495010741516420287123038292127161250774411159177966995480087093894559970515572751666951228466353783920097829401776107115499971971190406490355941934817395313869856701320922674132042912718490589059061320315500390397533657716107694024537311167367069134270418568240917507051953460117858263222849701059998760332084280323361091708980523067601723917724242224268021801094395891503717947373217050963722530798041741521730912719185708032313893409370275067488318162696744540886912386829590036594774625630019803159695269602987191613099673584237854667624795311158935294188768844889558200814865351431404203784927233193712379112433682716368373027592147006271658133375900190138717668950816458798402516694203826277883614967758936634088000378178288418272970049337161343734240062622914288401273000616975841847661744824018127096954272528593846982305127701567807767471413594550643088204948846305792760091882488563022268518541044727037405198332414825360229921970329001015508971709969451238148229536796228990193058681125097684162307687144215746289009519844557983850526833547489793680731447879727053903403996394887552007492740497201636941617053099872324081915174369939719324977392469050982591398220731172794302757908269768609787069876097968148635147738940640426334894230274467719760572491592861702113112681400422784571720610436259965723941313175619133424710521949115992145347274445183464693246933288355823449791715779390794030061184239932979432965423024253616353256286407038293807329642309431696434887504699906926089429303299301159200260507922250528578990588416489454938414001691529715339461661643754866073477740122261675637030426435888845857724030435297514119841303449974574948746553254763649113010972569145482109788599305297540902819253069643403940513706871024366187907369162543039326927787877027119788684685001400441059900901197338593678777402767990307014533627115912593875387302396491275377763039311450310433630063925762631582132522065999266547514727262641668072162919579031652920761323227239149377746376610757784989545380109884529569894318848886951182045306972433085095804317596261441200291651597310814498820245229288685690024253115172387418596194337019796932075362572089451491707956363975312716042833488480029727122848754116965388186386194496742353123332289596288048640623094430187443266116255574302520866101403798554830487635168000325615693399444336120502803519671361610051637074305302380796658228290499086979433874319520208038322885008896267654545328232885092527948158137101997382326915088861516839812353605684002892089078228975459745605993196685728797851193437941569369242563874439603881539993973755413309428155564349248536873507564678860706661165084645784620805270750419430177233130385904523032089985704681117709685700582875499554026088763403546994344052599159595859791048310663011516526930601262121653122655042807654958995643341007071729749015159408478338902829864350447620015641109482999276073556989802643861699989285861027211890376202801942536956985618208657333851339176247977065979100853554473019899802000992272399694209243554958453844320903363094981463245499532464464073024076531680734144064958929091163169803634801029139895790737132375442927334783970072620306127833425002356674537722566330227588575218713638081213146704144587990324996442137701868253418945658156759121781955706699588237140601812194474212375808693933418057418505500738735751939934263646267888150452745813113616773344291469979382962826219939587956718214276123644103077363850704336668319481180149913614063005713394590326136569675707883378639641581770653403402660364572369054665000578216447934264875815083524958239767703151542651549250849207028741531860986513336388548571853449786247001375306659130751132701184361483115183666583481763021205375410539982405783496223532318943268549558724698331848010310340612204138351539503531299121156550965602894545804410816078847836632843394673711628084126042505451453248686871091218030050828361426873433961720713784913444271108738157681614669202732783461238044238906522328608118457072394594594674770314381190148040746382543005923513039069046290500687944176830881035727986099752151585770980690646309566608890474516075510291007640376274040775836896374724859403342988189594928990152512383140199570932500953683093245644529357485337238301235337132817846648105062057292309188908690606452796635814647023892906118459276780895212246808316350085653296028256654182715711341211800948607875620555066299451039166496593371131851413410365120671870395489762022129474110746119007304494836213430517355406597825206195498528974635393442568834862502337702431497492658435892809872172104753172436797448298295612898907033922367712366276542465403105987838582878848067017314609770784095616461398076367232710175131707770655969520974747948161653942399060756254796821231226832649830908860753510418696276565881278734763427292772435844068956198341225910295192385115947539823717066720898743938873360413952920712374527880639898717923250285933161152004579321480994529167766841496578852894752149408579592221739673636683977675083404093086438262962909116387315454538435663703157422725750468270234641124040694845921078863131638026687024354329014915964007652471760510353487429751921102972974989429182589227142550820272086405785704512102066488125016674600159851361775455854019434470203034917609867804638124004030577350643788388696007422843954875180497164869625753523567531141867294659186369377409601693003229558957686932133180562737689975028128328725711552552104800759719132764133973118403254413747642662517040383966422872254113148435182863451936958528655309941089277423316380738973309295040361070569869555952509515749488034172533639611295444309101187137541662288412547772505645957309658440508803818504547480719555668699217399719399772415002568855719849850939816627461337539307611977478452683284486737735774539891226753939924496977330155305762279928546698263922390113182944843563317432924417818179993792083997712407274306276810756747308504778315128702801893546138356932529257379940776911619367405996081018749619655340202645667676729612424898369374998143224798639769109642864676574392268365631987781472428312255641856289513905928531365448891618050602676645373938982625285053570716248493033068278630157534734398962093405230641574123959158224535172448414732751599765927428222810413975234341479085923081987606244770373738679043676282030605413168629532825995081987542245524166594244045404015865706640095468995911470750739755439595357903380869695501022406781600764357243920856186485257608187053567236660469567106889916600329775054125845868370629176418661642539602833540729841372857651602076211404095511307469151389085269333401399342679515296844945217337255486050874074428499594809669945701774841276385708080967326911623972851835798729190273798677865144090547291270048161141928533721892852198563838558736578034906344779663627412100949015451691405844378762684639719249149276059912258450800262404407039403506188987661703316766147188116302126543369589165747678897977067336197430766896657822002616241106100375433921069800483564645940062130856559058675719985193992911178404283652493470170237179432512319390011281874052401230780064401482730492218680498173745332611464840139355243859744414769350950366921955504473108381877999947935724765871053928286955749962624915950637286436467420400779852503766262518889332932447623044381524216843461186913310960115708395200690333949103405266666720955868409907439286852650871932874993375253871727582334994980450550007866711717130881989503322928650415226477642317706719018161859587290550094912860649970873738132058678322531254671658773652988965183121031790140752801146543274361697631173656463600159569552273760628463038884283995336941678506102254068223268932083704894374501222672618260945246728651619019650198664439146902868188725466876665528196613047280468294265619873927256330418768999462826959916761319772740725168814530644464354757054536841595205463131211741994660827395472036273070845636887207138739877117409700150361045462264645439967009784591454754244951529143552761255056242552886600214136310785038089180066204994850274302564823813593202162458911818791065921799448716754865127289836753060477887911947286644683425190332311846391382635458269862595965576591166643680025196064925033656648493823654570628255001201257797795046931876256308741423884145963800019646498832326606218383091296136047369614279260998387883945433861741377049066675799068125661020196013845764494485870616791513310318423285560034698057313473126817302454688745737663552667244599517024798569737401142828264760256253312769537199130404001392419105317418166950230148596699568299980263550453219422240943651872746348514632608550194754709350608113224265775074026986213682986719801743234440768451056229323105650018520842650390168249577166623192019168725748504244878340563358248862846384813699583423640267561961213117577623994485594933296428415177811674528080392693240867867671619630933441076233306474957137179142297968775388724739596700842390729689584987025756147125670158323118300079640693206641508305759235405614657400265070952762768195857798786812184220963807449592248116633355400767561666625755862589769873235097436004318112744747097324504078174101284855866028488576074915477247019696139666891627960333647015454355481501442272669062909400675365459170471457046919992416391131792488090385320634449522365615890765694098051313507720697232772983854453630088252277849477306834087927268966625736727057115015639070871703628909869351970662346640019094735687149978354565744993060255564975184886310347784014604851664529564201766688705450096291595595298026551769882936397670303833211871549380408310349000085851951767601052425523091897840781838013383338384026171725760346387537461543390634461447999266590682270327408507319791841043170343623922400230709245766980413970348431540426444252767597491100917999676213450596765003930020458357590327500572585753066212086874781658641169119392949328207222198470281960988767556382586582848591883884531334795307462475998667408671398069781455262965993582301188419474676505172420805864891487442127036118066748236585063148697259828232556785801324463598602295941133047672758043198862469059486954202580108927368350361540514828613584667776751423157327913509227796649546314380411617864633805936261897099889215650407223856056614715000447372336868651276603420896838586976446983678177081616762920982487998132049890775453323835430676408449053416082482731106996735957100502432910882669856159876255399219676394960621265851756791239045270644468964966776876094962363338802677614363352538125201101007115636283295953485511362336374969772611456260303250182792964520345886387805265888985849256549687689893559103915878811988775807126096008265381605163647632966920199841383107309776963638717276666246896127288042436051038409195604243922664248888538711366696937448615957671375834420853990845731325054908394102095672838510880373791278272368396109578767617687082037034287849098446544358493279351032227680255293309223142629830873113496225616669395582899476934647466081204506920174433764926799874124083283959331909999009463757884025632903989923227567048127819424447699969914275252353902483934411461673423780375004160140399023144621475249654660316445444911766146547221381823723853411227948254595897452216655117583893747780851302015142487405513332310049043524930575545990039913069131879488259378065994030149730755760397029657646242505328595414294792332998171221279650646620397979295029529557262335341597223918982052764468843526013820677679545165814863166907386129994102790826462996151130865242039884004901820423738883355135851529484302218613083094301646996710720435777935078127365650215153200697762536126291770003871802811729064946502646138622301042123672463279361923178431213123664779627905397689063464772543577314616849581070021120791977179002778402301546035378426823767356904333100866991796916971037373549297910988416289883803057745734044320153761872059403778448384434944624426709396646700925408034606816152264480450326149214648613688663871329669585037326021844568274043649786303546924586100062782063074601973641762022916493527532995028906824320612179732850901008611372153209355465382794092434857581830571271076377617279885670270301987346008410966319946468572529761692031613381575147564229268227777532791806011377894540904608165759102410145760204132796303370148476708854426311729392087837346502495961807411765070701620704857233495141658727593492349022911046597449304394831219778970359858336374113666712299143599476020245692600247793146161675422060492460792997027336891308630421871270406840547670271978221920946451009916547921887337288320459977028995767616162590689975467634442854643926617978642761967461333278328519577449876262919345332385063110274097036357821786557564312863368054295043284733421872878419253733727277378199520078650993678427195041831517759066223205822293922183974900193347670624323364505837677243403508080229995470531105545457376389280517619801466793409431133642413587582108504868205279598864481042176837217239440823658589253531201770189068681175452139032698549427475376978889368700058058720789628013751083316097553844629648704705240531853647567604203045314389711847496495298907269675168509694413136506908552665380486320432492944959561784240847475740070116386315309257402434807700899666723600180683166532049125778308271186370957176651913882826186266575158580524498894925043519350350483366745481157654985298674579174790267415355244406568395954924916898146190516000428450927136313312914575658253367798019325730234751155626224024096610705706566507655243912259553409353243325834107248083128075151636851366301831788896175570287871404831348885568742612335164691537799759154914757802313500949736512082661871878363369093955786915158658123398478167408412634425908485555734863450366506284033355601729728183445497369095587385242249133901969704984250828647426000659625532579693498216799168130531362966669521919149533048086979191913772761287466456815606865754195056113303222313464659487134752698353013849581528443728551941505242630684702933989142737424496871400219385957710966897445023179653502622906059099416210425935621546409292898822268315961172546330209613055666932329535795510586375927643109413965476020961493272029630413065127575454461659385697179868077607522801888472715074034159635693810537441595391085279499414582144416059804255592925023577598354781989846582898486150110837471046617928781355318999276685576063681271775175796860474284369371742800138297702640668578776608996021796514894665228477760401912986894594506064776019906538029295809547454365423307818194966445330188681262983230779247516531261180365682182929269264264595625012576540590136253992677470489207792165304582466971913168664427646052048074642907116451848222374745954612464348253596293830464479839388995444455048732826772787655241427130452941193220688248095732185867748725431337403046095513982140448992361209889231892358243924634782009612340944363365667130649771313853221345212405233380145626256883053961665589896074851749627582045839881551647143474916326984503966176040904201892563027596001603098031250342744137617787666640420674951450275510844842006730953177314858770399928494458894129887457265991589299218399270935980083630962193870792432460201632722605204174380458695368925509531024707900337428126978397978721992709024441960727974106184088211063623565363667489512418273835285718613259485714481785847876859249262013256830453591585125704300639503622806557004525170059836961767254983492819719090534610724982278699985763727000711603637502683295307215486220266157279492330449494948866287556340283321702993632391956644204339333260667173871351834743196664920335713752731337571965668288465120323068547265184344345486562555872632694719281971174586936280574145373524322164230436274691345194808925739124996792179309518754047178477912535751825553451217002822166553002884128116546107227948001268948763444026326511267618745851753671352660786267668493008718845491953060559245366632013613958622079671432959048384474809059579775009731098827328137844460765585749546500736809048233772938207495943826469614162324475963676126077265304851739221539724533233857563942816760007836526924342750635732915262480843992659860151367324804930294362659804244282335010604649279156045476482530781845190351489572053472901783392029582558135674726618431389705921097304074067110213574380776904562441839401059437895349943056286996874685704898989048718485345745651354135780911878898725002810176679516782283444202473626917362629454697198310267229444568910820287787101969168703939663303753771734111896990488936781859065498008466886251536060250801591384933797894688241416480579733986481937486273817306206421204915009638642163964493190082516409506127823034311727358957880726131764092962027660487231297380884262043538174582466392536849277324018544376280377357820153501190297452097269095662158798442831134033561888292655089198621400817264305285657247490445392534172220863756693093523849682675218792024745882852780213584792743670053608323705681914835057183467601710290875152898641658505907741443629155754733425571314455745730769030876074946990544800185836061452306363012762133133492405546792737154971271154985418186016778157698784572989295991426964809300075929156919016133012840146740211699427544183754167710563557086364262786214414631658314829352113891455969163498337475308379402979344444645876764981471843072292621109933768479143424649881641083711978331499882756137140665546273407652184885909200159166557551618773224993707884630122956360494410284119166208220247405369185754967232746580650252949132737360139471720405967781948676585757505884009509483879422865635886897281852439555989890673712000834704211638718443986762333642129649954267413655742215197259687438247808486510828067139730233134285165437422848205602987298027685595144587269514894346103781584811378033662816508943373132887656396596389656186055844011867997175651461865375677867998139974452686454893262252821062768370578987740793799873915549510288888696554333005853925521208087024158593537983207713538602155832288438641838856858717616808165815136000464340308545214940486718326228170503422249485881843993274130941397320975805967290445595233453414511449009618558361799864807388750155857881714158440208285467108629334656885999181437861297133606162513911417840542002578594036408094763567408622244705887425651614407127935492798049127898047299793923752732664346738633391421815681157016893465289302048270800565266675216239097455001584024123010458013872704803106694887648668534090699794246454110274756913095624590874664009527741578487271851906560196861051898794037746324066740192674669977938375163404642916110259578419131567953613744328249247637042970721288993675028657341977479038516628116048681629180291915103759936192951086207341656249114112255162245946377149231287830002022695645277361927092114494989655209952273286711070326570787925826692207075445087130210693537319409587060761522399783074460783380978610459224216322377519867446005350017574266144578698300885618770105313801019448170251372192048023171783237125659907331633604854851302339758100903250442120978498825686486697328196654948981742170810572348958788422939909390924580303423795508243688272384074140964071825546919979196753939366261458548604222566135673671722283729543740783538523283660717749069230631907152596693029399547199600254195245428921604360575734646184038036187197709471684958036835079316963713661687991242661314177232451881597273713858718039981884345947143386757636359665080880644843521342415141213333238274713654837255375697028310833811288629176880198075525159769648344188717405445071759924006379040905588887220907778235342400555204497819559668333898802577953794566883312210655665144144052308833041461603254102758412148642121127344534032845604434454851402289387921591980180205352820560240815978271508030344152834876226274652500932359028026846703638864537814184391630404921133864198794354300967784600828394266845468281474743240895705055785724911632488853854584661570074881335334483727035137161199516178066799280059467510572596162221561789667842989776911980509735989452876577999977352565588874566902699320562070620308622108712613582591299118027207950358370939348968976062896850565723643941551484544710269308514935575585287427223354413792651130412935315462290649148045132075802731253119798990426756019941364639302686391462467737256018424702079525579939661573950352909122362159070237345315882205023229020769941051941089267018431142678442395159851891891468309890698411989869663791552114323873002033834918749164489252380872512567145338408260256100674156069073994181166434105398623494377856983493988425946874423368519591065715895056548459323896245977649995945175469642163778667213479710585433513545925470892476259653995983399642917442731675472993682397233160447821080658322312231970375204168339240619972648901806217034788421944285014704067725691801313493386094535315075869835262386244967249838443295603159826288251067770992100696453933109365850020410203480121027472043194284930743575079271760987550342951194109135300335137582606227473276749532569167619663158951911141396999233024115025703252016478153100281328873285764401557179813916343910809660723770122505240395075651756719721086799558565669697607252883710866034055225271870568746867468690308233312457566953230565988230102372803436107913364118369608760921526146036112078192020793551125831002254526235381373363180758076394351687969797765752821789013054044508664939026371884681812355501169284280202090920181333561963842865933675087517506763321200577518961905564991788804057035667438091700802878415048648227630998964628738116601339109022332119519168914983156821576816681613593102340057947881122392187166899209453169191399511826943100597224068590236854932255035166481258034921618225334922975725356539162768868561973881770032000698603463822444051735439400449708664751055448788382099439598474238627520450534230486250549616758602488163189191004636833498209555182611035812859670577096750701046701930194483241796794382282580300875103712087201246952900952080634844270378293864253644889467452440336692482238124987661033550764536028150048020759907980859220161310866065134813161627713335464139137471188357154387444793080041051144731332929095110288836729915249441232980673552215254909262785119058213947005653236242132467247365425792144604989576051883083490198568870388968402109343444485410782523217238603169919896602391693595131714365732070375496635065970872346906112022120697310310052989971420208103815087176878217602778866100041914553448021424407929393752251644851484855460097407313408016261141222717496426825937138178022620836380663825555095576170770934946147895028333316308980127358224729527775020929237067890550152771767112925463468999122595725404767037109378422397832699110956404329656311920854313574256798711855406923011735497579669111696333782585679638480595724134349521444853782195373598390485561438111513947239042635823646741851178630232981472645757207203622724577757783116727419321926541109128811822153366902248970712745588157126170915225930474160538172747432217301229041092230595526416449418401059879571726699472536433056016551827209477919745522037808556976595045763788827144463817518194750261192353283031355403485351325162677314778787356479133841159475395294963127632730865455898766997063956447752166942858590184700756877203343476979000035897522439825925497318474675914505252330236713775342018447338793561535618268977734358556138953820243323631786308287182705998920359171132756476410865109313261809166253929017844089051799812391535995620010269134080485282008094627059174133791037859508082999671135719882248544840830235777580783732407044171178901971773825036929905585914686404545142611726160025484298623431937648126773173362398043297704103921613585068445056826300168883302383864484059705231123259209769753036347737470746113817690809283335660253306017484006111651303905620063617610239777448970159936476498329232100727341023640055457090825293476746993632418460419999133117467138213997334567052960163057881562014012501833384805669883490435695377521990402628535313585053814237517739180593306513665338157578066867927509170437674757004444968848574728449581891676458542555837032160226875084181377286324729887394134756557099251354496704143911446830527247676664141537958593040375578373744089111995052051836558261381008982795390965796885111227064433910074140116982395594237749677238393700150190014042787264687308647541420995546383471477286614912558883649751407302722301717995561570868788174580695094851701503943699936989740308531300016992390578319466224603882545450722812322995316571253485087618697539545468303070700167724266108668964252543133960325760106405923704752570038018988322421850389006485319577109447799170572630892997928576068602232464752917063571583632002058065623567719007779263633728768862085936786601743235664554055657781549882246984200329821717118145221757185398121605869104529264215113051329626866268153907624098218099499305735344279942788552196265208619772298895908404916044408423351782709975113579719186843617902621481911492111356747399793706122347080980982032710855017135459230468066127036558529557468371764556891329117948529856896525472353745730954533423111937605086277151943102062758398977643954571228560253526371347951561945734741663832427211751805691250658929845627022347977101138328456826808115720478623386615115849345209930950663879084538735807209129920766151101604670425693507417849717893516259924648134677747589489956604007163568449777992541295434794779170430065502928716192695394365831729224989474226573242237535722377765282343778884106362077889289092888643030384873217396749139122813176585763321002605037998620044930040871995758350027819065204608306818864976672389305290448157256422833865512799780732720764596819832250852182621899998014389197726279649806182227125226564284534850970746169948624910917339971951204736709505514875784584674411128742581842073164249854234705829571501370352895719064455955164352934010845948303803504567208713456438026586169543118717243663610515920421532140267372256532328901645295261714414297651568098682348542559102264346840102280516104555584563014489043243091745782699452289404203559905328415506573304439265892907688473159106318108006909535208865547237732839447520596541023362301900484458759762446140426090607830687297244248244401762596537252495754034525689240285634397410223535898179444521805216162023705391635154889907837761647883074955389397409471819103971145508535197392437504033098214597957744280850669822143809463495011951584790168084334986052713148703468909368750485178085874973129117769991097960150981655098527870557676894601936296562628842103567364881415299163726793277502472153616392020400140250063036361105910477866076264527874517702644276199828010556086201972527016946210198028077604467599788974575500013307504904362885127730393304939960653737379189768721675648298075024396462638664969421429471749895492092644946918054371444113970089505689137024093093297710375740253107264158047193312154049165038868288036489489337845719483158178244029863269945826356454455317165006366664162790886739186467473394282275932056314852327480027643040892837976677405511334456186144928443397291505570491283405400463937633388752551187908751761822083256565722905436151180770162048877237821877460504742822817487714853345016848711916045670997508561933117874865169318913112808854028532398077919404580718660230733984609221682561426776901675982272768502503213918407618623244848950947787870399052652223607211774769182187388833688229817230183772048561475714440386951267151760360885481423659397983615861053619859835403983268200411683991247920022090459677847552644889197996334050371067333767443229235559286678270371375344963162357819111661834574883448619981650273356992854529340308309702098976886423701600602513660904216827851511569115490870175380238645595901602377157019008819799403987652315958410359780438255565191325327000708437223561336870868934262878268869416531485474959950503546968983706589414422859542474657105473564402507665886025313652358439561208496691279233356219702377242724205918326290806704712344202321564949521845415059266933811476932404234045369932052480714713393468566466947920966779105866122736453633318642933878453316121406826502941169200699769075888889942836835245358082727885401855154040480380107915197263967063471909157417484825355959730977958767079737307595665689492262749811965499989175619624525955793637865964024389620178159174492819327544283331336956913669614963034562079017259625341213941488469738199655447456384497431131019734351501961870525933813460679417972870258231303178625342948552363726480475827859647550153895648854931961954266957106983636083107471327744120038486464718629246317291372286810071105703368710022532058837385904780315372411671209018740475572390296323836358483931982138041149520257116368126074389093696447772536945016524559644105983902878055029415133855384948797905534717993881700459502550840742130161357495911794222071458766080293393875097384196397460289947029138884019176054893200690163517092771685695395215076146485821042514147177865959986921927038135529347449813632845340528187626609441277262389963101160913326966998035573783891676885879045166156087703138479628160029825791229000204720100066543802000627966500610977154876667585444070206742538864023532915896085631547721126097993655884461925126467742597172699240495291419118971259427795197107419167707358571851408594775952462217852241412350550576064415850085405413483200103956592092894639579034388252654129716261686594914704991736178376432346606827027772586208707248240644295408255255669590529414077388245786979970082368569038928643692344063398900087529200062157889374490935519964443191590350743159161481955244407637750884586832283001720565685527064878634391755391175615321355855667140833588051766241465757391187691695576925116112446290980159888007918510276968825518755708523830838633095885042360353851931009150893144025755793874855141959823931137544640911471820245316033674985109690271098911525711704407142825951811704872703686698475682222662574902202538734542067577082650418930003660060343688602697684306060473745166067312596347672644547858362372050846382774942251563462885917553514753606436632810191953755164735996486915473129970678495608613172283623730011907061563804749548958886776692712493489646293895873123407522288264309555228078878639557768148127106025496389062195549617612662157490881840490478808031222681622763704436688167816983885956029410339153333341876314630542487945945741750624069415768856758209531098809497584483437362408986119200654462291830539225435556792772854357074096264988658004872374528114235487138308692703200254305800111355612881183364946638923336895963966873647800023971688087082522679581248142754848285946039933794484750882108230968012620244053640253832971570697734691894413290438804182809178323111680994942727408167351381308822807148323025082777002568556139370595854631059393036946448775061581804962929860777190279426353707273044604239533426454083957122190899131091600139774712616547695457149425533972592912107066993371822806795322477146522473956262611081281615934005748338168760102347759340604561331546477330088452817518539159573675131338228084938066332651622455649479233415248126967284038811820444781222499455115581538484907713834132357462801160760189564034856095336578802444318390878967773954788108413102338799634637276914622297137236140825395504525689511878498240790021535407640347849418503617805092851402479050968563971368132236935138910605189916028160630821573744819333117053164870779365301151783668683440744906348553804129638068210298259520487400044614732453108502648939824415231006628672924308985377385917439361730821704910707737636908142301737282726590228030683979366635981326334738048908364352194200561644136726625360722683998377560845335657910903556021978174391644847161927569203650627151403717136155365010865680445269988793983236119108358922909904217817951695782665109901486998556195084160682322131236597748700156095981842765381171237272803104408275000639798829113513254735731306125902295685121579076201162331847587043639236772198577904788771054823818558443493368354698044385889281568076945564488589807876371917066511915811120741359511463767155138762868017195618705545118823672929080902743129667613988938853550890339789068975259532110029684944504467030112791362524028916067469942928619583042448648515038564363526873723597208666155056072862323065375467542963854809275024103920900038161148408706484639581800697818498602512809722430879648491413299587868702839562293721000245335676157714999189706036717631841389382411018441847613385496323880121960093214480656022325509409903471261819042021199636840353587750871204657540338404408263652661040845661954937698834931057080941653652675605427403298865339848498644417971263396389804110093257674625203944287336482361436159557158864128198633629243937762814468760752472396517562450000992998705216787179807601168564356227300094945190819892980835497200600032586182663747322798113333061279357240404802652265370892975994451280400609687679183083207322267999888546196320098829850041531134008496224488839025823486258115948398481964684236235541297642193304188812373042522863129663683342102439948563339427966068139361802537042026346332347190361639334819060373493152401996886570374796219141634928855783567670713063326432485106197569202270272979434470840769492191580302670312910856099236976285069290848874353161978595475457325295183508182919920742933756158706153692154013727013154498749753371810089362716616274971850105139165798288375884863555190976196323701023902774418536801209545073047207644915271461990848680336151896541739384942447592499302476047562408958666634269452079351068482194246738679541343893125917954547644099365932065241958566886835283659850159321568734586296480809685796710723761176944258655693740625791541525242917767980889391573366797048229478696010560608541577379989854052248039010581129246688595012025984206675084001220106969264328043275807468496068711496683312911105410769169286029247109417846434859324909213677162104146461548772876715561323183877774827058351987006836891504599888939489083898183584397547890912982228984498867249144301849649917895425491684990991147882440284292348884685795925122528346914921004027017162647946491189916499798441749235694684185927696558925592009926412436004226832414068638381902402533431936252445194054770627624983733651324062164745307356840551615181693599401668744432186365049730489191532180613226925843704978084877389420437818744352109898041403848278026923984266644444544102383350537393763476201025281727580108101765922303407853602841914148496582064392659293832733882576360308959987359553116643484231306178157002824434084026478194522246433037908476059406733890375682043628208618573577591332791305532657645502574120123218071737188601853203840486749552291279652020835625651614672258999202825761536619395663420195658482743083605177457465675425306464023802334931668197641195598438664498325492695047890566992949161920317276698544600003020519903131944215438994899884838230661555857682278635348469863086983802387983883864475811261036672243281703622037378820763305177455946804768850093741751276037696215931576681922454689919359023035370756010833348384191414309390650079853338084957701636450555616353502775274402109810151399410178136905815820443234974354792906824315295934473331816854833813744984700461190747926884413278700063282252294198717309483500566322244370109693843485618268671205554389488740723668505129239317436626571895575775750387759429838245713820928277019114431143542276398237075897842626334143521896069118719938739515598882178740623291404814693609479479345813219746824426015424320142755310275713289497665484048240651494258714631038929663336995350050654666050644071760627579993635802691067763417767901609269199619635741344983467921556971905978220807905376823314037799961665620783135772345892343602314995740174623295179241164638461187103157999534806751447558350707321623882546711773735890658385904018773396865187221254733984332503207293222917236559828212073994438087556826132670233740082573898128429300900678107814183048115186254803008988536983970062184304995118666056321540003102945487629946621404238854128473018649585568215835849977122748351724742743206249031150745156354679498631833669742968852873489631820119902150163202880290318106592040392753555766825900154016636458952746806217108583391857802520643516168782421007903589698096071123821169971060060322115611190360691643718724247798931755693019527027901402890896804419069831022759585227255492563544832111087746175131173430333511468321060299880095392136223288837640031480448953431933775758584564809334102571304076372731519695391533592383560219175206534180079292880265571800812127034400813856150285039464626151899339031641426173121923508761175500589203453843500574832400260183242801803948061814125157870437103403527213180181528714714232051051051720110001629420935074494765838820748498904698597532060483291976516138683344593311423956291084306143142848876978629472727386723365913369281845939717935333772561055775404989820677916266016971261713248657048502739570285290323137301095497797302057068435408387485785206456403067223992742684389683233131751125698090896563587193615371409893157388614032467673097128768113991980522448816902607668968412061599317789732227865422418770962304345780114991150320216131422209529376393715967760198531404496719904377457926127540208917525582248465562686866018203790988200317249391203755846049831961809031613285562391666580405193654778303985892449738867704066467802394875495471451795803618077287786497116044664871690848076345084838001311071462253896958345006357261061269445044949336255947391117083358170981590627887792661732586161222113916547414894186761768273014670536155470844910393157071373555912468913125331270320179521944237107536828958190546813275207213915535122119375425100332543866622610030913761908247366399294877093520138625141207540692845334650045211269618347223768935526485887439979636148360246822193129536391230341825022473559374249989820290934009136240584015750725415739223552275688276635522840291736711834147790651043313715568908659484176487830526865543774941773349484490142687874944592818607784353969312506230541774056800626638905654557371429698980378559207961895338510857873630108303562898606261456444238080025643421349718023508212844691887584361940168877016496252938090729066523016440930646181366748685117376908438100674975652234773086601523778647340480650931896252902441500453705327295255736005779595647356676894153149999746480289866320244740699558837541365737602336834873355504201287343297996788332530119400837614198380306057096938484416024656425148773929194372145839538123095327304088396557871383106775905922392656849340499910951692969795876430264938233475416759814620151339336933217440879511577855450301124865303809984720702476689734205599907556146066581306725033146822564652738957236549043329937360893481358541052689164131278412732570168826624944481225723452426158614748378649359590780031580191386226543022478039160652735173617040502313691500687718486852210450279990075006321949534062356585569677697213991067493142800636020731479620938218068058062465875484842234026959310018944200857356677680840759121230688352096859538383100054092462358835300649360624880368322376622232409828150781091404211453610132570918894976166875428597643068955680012525267660415610470088995515376576595012902129200256444044292489007604816038274585487312484746233015432850657294127424603289703446184617895237450445802945642753116631452187231184773641342960432095840176725578170433122672365178928082841753837876499353605740483143350261088379948467416508753623974549653143097482219407097908437727181861121071282714494405735878597692609189140753797780614017903097225411597851578971615228919301102445578227484690275313014263203182765733275666157493495598529926029082472777200805592786036297167666072803934410719405924975559358210901095543903563938949442050190805102623289038743295382916135627732693007885513589118253961454022014315051085134934913192616473690696852735988776083594230808213197701615603534000696662120210971253791956268119281050654408116204401244546085864880531585242268966752795333699810990109146637294598787403162802818428070603493568141651312408008996518487993574987803071783498307603332038907187439595685089501251507087460617115137878723196099223885896028363170632539941769345126627620520149155674115142351390769862690789414120558851713931911503775474902275942848732244159286939118304606148941954606078747678342398921963629467117658172924489267216986165214182299905644406995425210153027974194314874415152886716470204358645122921226107821166917980227092982099637435380728614451082507421172627239358750986968064048222141144387386946882914861299300975805885600104193425404471561390042404101042574028477952119122293788474257952170692686994439513753747434528460629426332681021089013885072278207209004124244456153515028787863585433971412190201855344955914906550860470900160603343075295070854775796158131472853957643943949187365666259668085674271342349226450425868993842441500206576393773038851225719344195713305195321248554070876562177234832465428924438276668622798246435552019879184549215844879662545110546995157905224499022303857979447859474548450273592884137315770084860676953132432850759922103536274720163779815503076796386823009832280153662694315550738581267747672939408487083227360767268839800121804380277642920594451075286891223058335276446543222942676711052006891778769384676812914532450419468594675296255168404099161605960862473190547026244399245388728479568099197035932800508026286320819466869076743287346695504165630478859155165806433583354397910478570389148279264595727221423108335565056695355756161673154607262160335751447536909955844043319331482628533484324613978225735341845977620242235996434892386990393928450259423308663517556298584363684024627319375682379149684857193339319784644625603781974974179634058725634924376138018657097846054392329538221190182213655279141377849186681673939227662526605263942140613819918314476791310706832587724889618534226747243872160096367691804023591292283733969829620138711072410821250877108311268281403672807624525788961259500517484911026906924823833451692217394255732113253572667604165615495163834206417134360337565672737142027112591084160717638298712245440742857770786322597752483837393513612092054787393046466898749396668839888724927778717280193145925460648550338854913957152242726447615285661993280897831880907759919069746610227105737087550315895481887665974966184522501364899697924647867100880667785505572613723287445571603118372527883200774201450760178433873822279073420967180680031191830661182940195506541065278571497618974854002894365137875159522561651343698646754791518834006879679113552686559402746649829582259557240193248887960736578961953050506934707954343473631358003828676450494493253503643055081565943237555961995368219168855482767419877111468448163286207418537608182255325533468286508444582511618248519859216401320973158826795672139605035377094542166396455686910241701028714043010957285199268366999847393312729697976655627080935145288661421667990518535730017117935653510389071704996716405795978843375544444852651539919899393548746703886566076183358552655581529530616202178887320965165026927375722248443379860843168185581444847328680744064774327026440520587519313227507680513082431253699560693318992816011340871083032223598779572386892063254717995164509664659553941104777254700976956165699836145104485843026597473115737079156570390705782885506963726231369692838557724649128136736296601828853407584923748967937037295020366870412322129143129226694607709931271003880131929436698699174080011366705627850119669806307107903806801605224537111041045643056646156634901210232748964426325295397772456716540627029098716138479863016186318580548066273947377064831632249482585894360917150788306449419475250205702585773782126319718866678311078975081771855009248064730392796644932250378495485726131269548449188888908124421555126136253934249892171630300468698532372033094574633778663465490483171001362797875295945506378611363458467157012392630774100106173965435462319050535927631886913789226239391408729385476820581807799678603754158968995003119511346174773081434753845564401905350405797703057306705493957776874884424454299625173923524119564562565756448353800823689584985555109043932546417445122937366625062869248522979133538188359489783340514900452710985870093776610450549713519510550658894853119685352835680960367245787528522626712761138228054878660251120721348417839104646009425396573573347360427707194120690489164102033948514798720976235410567208128603207184423668381673834311404447195986797211561956426598902497323986334387547286868883503374661836144539204376564872666575463756811684852114687456736845319004608018417045585863755955918128128416207181190673856486664561735871761763303382427690532225623732663776270955295422316376883111656416923235307181071160799887851218278357695485206775309494183307139720007404734365565694488894961655053284751556467058709455490412599348644363828936147016431288914449943982156341445192062637873672372473140642841431167844113311529551909405861501353105967519112049167081961380274611335895556313502747064929196165636071149611196254547849033252340921103729305104074206730948755641486385941125998206356331251467322609328589350162810210918356590366036452742634908997271798010621964878922936825807200899952733149088598926008021296615021394258292805223309191227214969592680081902370897987016775479401643182067950028004744464566737269522650761543004707603063614529755974098076883307250672016632120745320497286831517179856567607648407433878435873794130271779367232189982659491202871647592979986491890857811747048010155513459528196669893269965774473237266073930362000097365559191953931811620775146431360744003606817077749082637913222626761103878770246405886344692769267257083236642476084782214913386367430381273923408250841618717466850179209645968720202356118517852740936675267183261340010208846277801685747828594051030966194384792248246015294692559876194798914598947330227791557812358309032480682803633729595695705619545068038390418873107416620669479896204700539763259583453066230430333707342375008481868702384661915218463584979099810596968941138290684270432761229730450287433951107976977938546842361060167914914489166811003670320771768095117612234519416108215929283823725620431427089659811450041428771417492452153573075381843020638784104840164256423747401632766525637699015197895687799864579021917522856746723907529517280962639337864935268579737454732068959664786889474400011066929039678680061103839163996440978167356142463469201863796576432479179106846655510845879333188983419883939893327729645436607718942636292709053947726703442774608991418358363784107745920358360196812342539976206533063484843095860798390902881808178451960232659272915511688665814188489062409942263722050887117579555069093557270137054482948995466521997847566645964208105567767228520535761405560749019283856758376461705082327769096170856154090904717848412685691744217489173552682856704964867561311494536774930275262362693897665550125368797454828104598126172937104111574296013638607549254173970633669613850594012984508833682078894366926696728017002924680491842159993174450739802895411504781439335284008374524076656130235111865056419544736462439813223001073435219913676191985343038877521163869228163291702741974367981434422761925040686561341656864649660913181368268945073257306219258992901085844735286219490306291024261797260480786053125467146899402025617907609823545268769827625015433259792368211581222325350895116350953744565625311462456751656310349079711702661462774163249968773071359471986587053564397676646912519996318470121952954906682578898695801136755328939860111473770377214695451203603957464742524447436294425596669687855861902527242057501154859149178895898574757714665090716008176885781340832204046138844881501606406148773516968834740338071461390065320840456076881054199701223314634311080072748603896653158849124077952175106241990284553223757869814379335984879718465908609707415043607307950598080397892986599663578605121427762564439421893104045132525066565583924384790111436852791167397985940776572820822617623271771496531625938251584125023234820103666166228568621974404324082497607187879197058788499916844282989310333415432000511757225145367357369497053646381813890847760528026664467566605253268332125265545969807929329256683476358210218329926502903456003500830612191941124017872994728212025342747787187155202044372032844684157137448073931611873634333501176800457731530452713268071844915968334703576761690107138883383477775786984932420697357438057932553834361065716376084532454579998603199060978272623080511402715608300193611887490737781262280062059106631730687346884533173073505109645808386380651982746403927867108403207995497344729286029430513168401586569461254856483553982319168726702984617226960017573016271475262023670146759924129829010961728919776587462656589595696282144491198590708187686711192726521961728611777007150420331957370858235373184804581157276851772791033798814172359887397728902771558888902849387058168481820786335521260012891731106665228817760660949157180021978425824980136017520261756185474356744985779880182018269272852528005790576831611216879066438456748606944286028098660221583508183320247516754630792032192862429610196883587406863757624111820531415345032697943698701703163641363750495780703713979203919749550074613357695352970261159102314334712307367301385152225087482507544165081625532713329795913720319210307321218183123196177425823460280183823636929494118290281880958883987956909681378205396541572444535013892132763282461668265342662748072763990601124244544771469525683688725167065407278779213032603838888086250580006080912104394342565424606013257339593624960934129928323307190377509449380992587851205537793246084657691343853934261303310815698251538695937925920796391109564018424272678969893550956195011711182747969838122698940937755025224826978941191350080981906347161494406059793376878219538174203337190773442492233840153487512395444267785522621069228565145850107957653998547270682731229769070210066483343456117954911153248839451193294120146072654965250703902040047308579357018726737136918051403282312226442897861488248342707677767535045231862649094287932047183086738122967123495267004835890478873516396053520735548629991558188479740601046080959544375639847332313624490859957437290552310052320982540187148377034885261358335297828524215396081938878721638816020218840546351484948467023211036443920532668665067003428253009969739268769809869503610746042263204424455569264574849392998786572076669881276381888738387679572761828587713266990805288496151836496360278558368378613803448500123397578878229789048085273128898224276381111430111344524439286630405847025908702766642594264106981656832756623663819931930144965266558983125313959221368935973863567268560935466321458578068099683708755966902794982981019764776718372535661719778598932416497726593088422472569691484082554432191937080983575158666303213625839300969648423892023726850458422159755202079521582294099730291090445099841104629209272151669304301971992577511240894896403783518215410565332997794897860964777316212294181843477807423345683695163852249773757235170269177827517079439578725135739874171261614349169610361191827482845364634671776876911621272612415704544138451410199065943947145597932867215155006635886969938585023838155775746232732220464709748989490823155107958129958400055452227237983572312863794541680217245358001485857479720220468101187611961853998497049480334456320876921023764252944639542383397783561552820541999865015535943552334705612174989573374476986863870838453125132341572591657638549563798939351447216800955217523564134498795405032596621278220478732256521965076557498606136399734022517397506698615116824573194935675287705233338434819773406112470309259978046209527826183310646428940246293602736654028954148208935583598964513872820302771180021406502155756726707616350655346930014840889358700161045140228738791412981810943024917983716408692494768584175229547695597199775931274032392488239352952309826813582300881723163430395091957232468577960525359069068183889020077652606053967069089415955739018094494858917869292160811622386025610835367216922499052574837373149240627817518299941540411794607027097859309412883162922373926154000024608147760772869222160602254363627102612985140416833519860028618603513766658583278603537462936301101836566901696638463028131273178304221867526572948709262983919837314039386323790482181152591809736749922526331283342219760976113944576841256560731673680319904817811604044783200869298699182994362382990848115607399237524827108489161868414810976284713397188972773712775579660050206145835126520012288505796194312160883613004558741370912278873055787968925408085748197835868750261245306828570015682592696779239990726252811520030145945367877793133438821912524788906994625592625206548948712580043691098818343054086188490459075243984000914168508706244645327766694004846889876478926024588294412043490521655050869623445395250120533121343273449516201343126449482954251061511840685010089961397807533533102645368662767868402484011275146115776422894498913647522159948217786902763524632527197981246941231195959015309303271377614491528045899119503602930816120273563440095671372371035574056247239378088399121669317645979411148466098174833561423165997198209856650138845977507448186433891153074383022901217275195969759841352969399108425221570158938749664650313917732602043813762771886227397600146252646433329001626834279703040678604356284018483749392184557903584907653985296984253440015449677460894211165654529083823917166703866711034477841423047810241886213648887484990543459564156618901354442439655753924027934318783124402863326736701094449146300717653161441102505060360195121883848047051877622073853176929082892165851477316235316600836973423562110409141364926684521240676150119738357720428255848298158728617668404323065931615117186874849983854145258316428840093821758885393067028037457952565807964656350370420092702593958436114020365955782749601283229267535704211403312987609045279151882829538466247667506382787899713011675189678189923856681740249245556631354683530345411117222993467121829199146963002868229109678591282172814857181531585521554185552387154242409756229546995835504152790795699667001094905264854636708539070862821576479400225636610882652268677937106116900166329252595947356398981546196793581172136430979139685755533893132786414422412734880021606610471265229232114305299805634667654075514525265343152787548367558262607741399436683783050100513653923529483241597217420848547857429875144307764351567013946902774849717647657538677866905875524113206642547833879546317053104835098571095176671770265119584361460943838103173317007476868155029198095404770262399993911929878783418143381973157157638744926078348589639791589315971577834076234725793844155146630071919701093430096555903091579021517033943067529431932636883321736272701587559466367667364248567164433354985745687701351838543595204829838119632760782986703443941553994845686929688927271067864579403350676848332607163597833410072911260576912378292483318035186094044435405916726905167414799746387449269093607692337388073372518419921633017967844077110920325793550455772971392842316252123254944779584378732905725261347235305736388519346713744785340694600035745224359491830705896807466244724307667878497818141402833891421001901587323055557989742029566077763293919407287260832079182572795447139065861543057416126485634854158476691605450650201056880046991310751303919926437147779098251193133106642558033350844132290474361133520717954888800174892319372424628655920509842610528507799109626641291174621776953369215139794447095011825192162823868599150012241387629133938681584354225942165987841513238448901171990784689415735059540367419441649493607927748966134599810093232344098846610777688747883986749208223605196306866191202163884759473266069424548051301572249227118057614466634733577912448977216914402065727926689074341199080500250768584894715740770806996499385907427986729701075716785977574736628657695237040956508503966975475320372540282010247013699449733055245148698289935086660848980351516678287322450784265761042147722274031221782485124381556857723367072037522654563019702664840469051924422827283809608361685884470086543866350886383532048218922090123705064266291585805380906110043861761397619443930351574122524826771477367259079688329502765180567060482344018572332358485794419401509174805834479644079321877889563970933558033831924679219458709870732103778046447650891719288258555678820196848922487438109432853907369546294907351342839271390675882470519866424726625039199204234223390943037337441103509977758295153805784926547865800500755709072770125019545459806310113194570546744393258929636481790091326874654091674713826760151922001487541379748227442901462821197754525051019473060704663031738957365580649241875714912941086471829401142385490772282741025007660505419692450432979355077855070621786283231229559500294668679290618332679827550095750741394519343165697112050970443483906373506203360495940407265994107135572080684560042721373447562283652485769609489239451590818216777498446284945991616756104975390529432480354819800095809409251529331559049743964148746114932449936204947938195040950681031142138938642869017979994192190255818854487796996592527662781244521955556027450420955739271877983143312693234888754080290473323027068486849494633368334646583715945489372417261956887087783924756504908975454651090650417466261904743897333669766092729582260783707572471357638703920988903360362728461576242938398593703187114294538868319726988079486650346336719441511980737539441620851659912276564711653358327412959825570953968792442646781953853863575879316376211159199699647901887569044801317173773216312082110893884293445437051085822640942646517333258871623074524198923186776124089713101771652490657877511193937238161004746338325415932068382938233000200171511479424220115467409582206041960077796420037452369248409712013847124116978328533621559512050981586732390742730305704033870256222449074052201931056991256081821104229474486954782868420870946032004011908610516980855844250510824245255453246337055515810262147023717725761191510585787716635624011978227821320940426055515375538254079111134558425411361811314723004885567915345019411781240230006319161367289130131281664461682279710566105945982979766236649893057946139353871721874667641775928613917529064289541990655509727385273720600644574777841978394759505772534535648790055037301401948471936975114781574986594936607307617664077678794686023481670664276861356659188951590441438503905973180244115552340346531090582603075435004833943486330025811216085513106542990078622329382185636823727913201712622575403185679331518765801192883025074945413847873436988711249722249180709533183663989752298037431278079518120541863611982711383959688655266634840660162170379927772391298277327949379810994527585139171375337245840285693487469066457397114242744991751549346828316360433220111085593145146577799598128853676703575406621361762183677237679412650113739601369234562719478446574399746317961193156086741993425955626961054455650445354963213795658323833964708607719388851767439659400587554300592090057674999807059598656641782152310952622282031318622527642084096785805312185034279076518028098284034555215309607070320293594656789910893026459839532021479281845028976916075378881507569250436327544366351235463560410440104924632085156260110382825092495994939478461423247325445020491920051411891278443823093738633641315879438847033773533496463064127207937220270768536099245851121058833509102033454576251458505119662438233831656951735442751705289551743657434695254247925250417604220015406686973464630394907445415421619392931502849972372900458385935563628661312966355049211600120624982441683315327915235618303957987592732909009600847052837615975534816361237862224407691599577353215390973749178480480749752016570615659427341595627754477760979640124877053438381822322569853083656092683237578687472056086652775549466844486691610501330205042783433669528525614046067961398890842340683499271672367532414792904945394854223232138256878763355352859688568148300399469975077533284447096616321703744840829378254098542282050702523281544457019541744638438980314083811319146702589381811858701551942205095383005491261461390393875674544131355571501081675012163240887063157657107951744662900347164581490103021729554811560148455654638310976537859943100718949496891442141007246888202191670891746901411165741911531162273534178396191733054687777893804824834338886296017807012230488355949354929466365461523863226039870046446504911044332100783228679474334707186320820778192968413602494383022712250639365154236149637507962762984617660669937854054115988049472992365576857712936937236894075675861396283890449578230888425320736110806932494452923600780561670258799600441539978163910461454692416759432655825290789750831689537287370355406809539490339037657172976349956337359319051294189006169036702682804442107767955495242769643676619226739383050076704040137153254721016887408889628297338334337256600761058395259487582166865562329533289654191703965814816109426512519610293771644025624873993105809320094694313466009455038629569846518628905156699960931299575034113705880281892100425279985598682448545809976162999019493451319881979905161685071395471244277095360576087815520541640724971368379003031350280013335760524061118755869433960544011598145882143009712276509348761657872286873308753641503422349155495743842231552696380641538786952248577325637018323431233990124082026236380906072215230744843223458913926728612467632905545251396648298629330044161894832592261740336170472329590261246520718536958679304795902459395470828975410708499677601440684584744982551923616534466844027890659211798996219488283033556387646033346282301583946067224868306749598011220515847861418071948632419750640870301067528452710534280063899653597132437121721900009206936343118139046570480078600061611949295330614162354681517921580133127277126547194601430133751813853208282262508221557154322745723505157180750769080587387702944500021104699798061076410937271748026014135483009789629118347391927674954996073217696974222442320048195976806732876550296357774348051687077059938460096993284499101668756722990779219259817227928594594870122771056623504453225290290364415432553959621583721609594171285980355031071602526202303893234345576161482162733032479549968552753163561659426850633509572248367863993074749176825632245643923658850934952678609118837199514479794030190472332843649891082567215015964011997296646550796354413006177374532107477442211678577601426898038740149046848633086643962208816131559254148191803100350145723194998601756389147148347142317214845834365499953382770899653899910786341932391008044761534504543334664899305619961105980236424908971737232620529372432791711766221549245190510936627395652118216222846148615956098996656319770673041048895548458516944282604883252228358603186638999963373599260585624513277869978199295511227363578225004500420735369156274176747584932416862831367137277505016292707365429968424093259230203149286669146196483751324856797820880329960474068100113292866454107649726260442732406361733620278586630293089514947047043455854522453984181701807605014897683409202792089551940164420279312426956933270702576482832695216846861924778397980909999894512676230634883859570086583706260414100038698987150593421313801328209399264657071865435907590239074791299757023782736950543266925853163223290054657144341300219285260021979264076929514055369991572444237104559811950246448569635498304867153169337409517559959872151700579066344483001992637587951623026337561462616654588481250258565950498245259820371608327448994196102044732745781360573961470459829822757597116324159603012677311031914077693186105358278441041244707369033146129614004498618229385175379616673047455793110404933546402184363017266143548823001182975066906942944426313959105410980752467121194925003050493691207544751257614948976179579163639232936703445140607095189942365824927581068111181824926386625519435838426434889195402388072084629825829700345081744502389674445683312526308339598801256070929458170051587928860586273873096913913280265409980749211940589931003297707638812682167371208463418554984197908926303828441698553901360402876966091605399108677295948520532304659937834084853634768584701101051103534877072659838784951363286180151738344549401425037527392241052004236546951676040953161132123696022602062958316396686781101845866761399847582423466316089006613142142773091702278600979595398852341222178739933391929350413065138325387676752702437842552496824483351907918969816141752215493586530712026372163752391294461648934375265404629303451835772020777496839370578295647772646743541903257136960162424251036602247826219210547131742922042068247385398325801456942750402125649753691940996418137334304430812547907165101858919814555003315475151033966708021359369214526159568804366653588571331562875313241606434885712144825436947222872937709889706190779496744493101927059791962018972216719083534029981199215259256735099933787061760932909495624894090233195150694334838422956631993044005675050358073234268124119490868318348521180919675295896193605835507362635001854691182815237706054879530739128637690031847741655280542020175926585158727101073623193871192030094424986870839482133369148951848043442029257327603431947720975872463701921253849114189348811617400888808183593694670301058494797384600837844906452761930932546030642558697289079953439151091769030867235895981616451866067211407135084500695980190600542141691288809370588867214150260478775595354337623792749690175527625835545536945376595831320239496949988242951175696827532362326870450978206488339813361855246721451156023434168914031258321512187592561558767463695414335236364573719612870599911879505830232734724660007535310871143455100255215195436352268992484847979704691447635683017556969111018275693877321462122326004021912338712267041825849244258257971204130720001556459331925746764467752179015210708652792774932924828495823145719925100673480598057886605912324917716189102342564250394785441839358627718853205512413677851228556175764458991960676228400582705510153113889527892552780586486278391929003083215193863418482817048820082128766721541089767897050240651508602574764270672384653351358065967789799015415382721791096982146177315993925227554783412288601469693168254943907264580948438957780385648908031628966987275328999959282156345760053032808792060775166946761205427179503755837314694046371073154640996114964669618797964565331154326498424581341163199194651106970953973951796887048550350118375369242234488100294226079188653222914002685438766022980368108930020831870231654765403798800993299845796894634856956844200303406159540250654512568000125716515991254601558297846385467991963179950319834419660147299701442290859482809926375161686288444109704510583555171730347465902744876599531439625728437139183978386859848277225126252132490769452000909617432555479367652372134942900569490526334404219938474772867460680170841855459225740995842949105285994769237468215529360438600298782288904607531778421180456090506499231759704666508192854460414734366051084445328669588610717801684890057400836209306802577767136698093938266000783979681321467268349573478973429601037626433162848823302336590891562155281462668602645114343237380426623206756817425229224556349997449990803816983752063124505497954020825912186131316922314594124405354196757131259239959169241066851769811390783339267456670385490632512083956819995665808857669697127659079287942034988328133163738110557494106124257200587068174946027609623028273378341362667904120736165897822468151070242280216459873460537835215648807293242061219636506484750046002807307733445835013863853198349716569778165538606483296445903775488221984306001056494236193933578323197319194178396027774041611611619376417477181466567279960397039667373562651236947333970094872038866930839170069738912362348821013726471808123573519839522625861306525126941828464500393717703614022296554318791578974415848498961377568174938757942274899492386722789054900301081034570053986250325104037166011258739588354070600128867229895187639306047020562990701292611747261493867672936635317784252477721467730487012917942745345548825563550874042798302463834616192618265242269159400989775304003972707520131662127201649052085423039227965079985193607295943223559158011087457081498016589531768956641688113522499325346084791138785129555062686057519874597513574439360838343895061648814102178384514600018496021318894795851074543505649983273648029443670774028646351203979708060213903669910382329269078463685646093057780485637131591031399536194022168897191045360936089601610313246604057114438920991868250589395496013122353411767733893997391588424310587388683931071997983225321270311239380169713791965404132049228519976101425467985105882321027235444376751227083949449613927186577012387696215106106169430814234940933339648356780526777247349689457189916928580108926596215154124513385066788506059380715664989975923378618857909042510633139294447508884510901563256239368620145262200151932727475889072058532946164706096937645437733846922747083589033017067239478379860246212164220932822520699314531074643344186314445805298142427300419239327491754102938258268550379825118621984081673546506722318809433171083062450428991718081629547545928028757166284415903058753636663962776156913991211576591577115545149176503882668942045071819242525899674511369308021222108874370676912583675237210212694748050774580096829141615485261384107665644663829728397833243345252735612353199961139512026921942140990334161644117290623131638632609521443645356819236910936106841896800659633245740085274562053886550828936928600207788854650524650698492294177514266755050609802285958345790123267095933649070402308006561087001623247707386694699719766755929530390145550255348304366000777460017241846509823651662226002424920444077382706339514318218491996319516396033601717556474789177948516174373940618441999099048164313292012652500023195827191385188123509517689680443707071974863093096875410967558069012241051527990765590983093938334563102635772746859094376495850393066202340792648181145201393288715014962821926436519595348134641068337184749164668284134324366662004098903157823205484746034514391633635839056637010040524394007310204458981310623413021822336185056356050899560910167226505869301973803036666464131155092622586964517007992221084681699504734803751920740146623848437416981568131982215122987222363244847518106496131546737870348674329750174768175333131187706284089143051784116404343071382709376141457785769049427239522873421918315301761099085639668952990874029661030124838100531794386673563270738396793465142617065245257844225579716406576112078676594675552664122781068211379972519776758165598960312997221486976682708489046955818682898113287436880099475752456063213091356799867464834256259219582980662131203728128671224937373236996530216511146800540138487170921902194170226278902393910454075659730580020680198794840402689356664334137817001511604894854773087715597298901047267739470198629712925948542088083694942767161639726304584498013293945475223920724141945246460766950989040967555647922152139355560345766818739073044235179966305221588528895352930444986803052096980267402137091572324754259554248109352035873432692840143643640642357503743057336629369052057941356076175653318556364638700099367772077154020572994985674238004970136546039367016857490932458223732874356952840739174535927965900013414954990105366942758478054464560335916524363181441932005370781137027388503223797111218437634661963139918660018931427230780534371589595010031206091702267149935748806735646521536092178552400597498897675250242351310264469303560797565082170588664193274314808246224869564159246210032039798351216372933125184728451071547757636219100214269000055640535340767717048464177002421425009218802780272926868286939022238861161472976022223500492450710106364291707727380424002223063750116340037147067188030753648579797275711621171241100868435340434271282490875972837748467395379836099588717380027087131334656107609270542373655981486825217683381321939506244901777820575654693608737347855138174346496665003970855132255714934181845444628397858914414304376832479728622738095275864507115745806725423179727124407529393815648220373973679653653362121378868274317144918995485325494192849473109294524860405560375767037680047518717299741956039027875822671903531896046604872665678020312443683117427864943696965880896031529348803873558776635264924310094406168520034229022608828102385586245096499431431592861388440597897548735113980949931879207764577469120949071783353105338276079657954009624593231196145708405882957808031397842893470077834132580488378865168022312746998623233749934257308985042512170553041566384984701720188410192026074984190337684194384119291262706629505236065321515651898465963226928303532298854854062632916820125161842344989794433888955576383171764528848423097423296861387179535622480004979460921825162563211427595851326611943323929685692863814523769776594024859013213391932259027909172900406863162014468093324071967394074067042438430213987304273592724293983125763270253574616144589734328963735653827790799883698963058610116161501045256471811900205824197266821423044842499143838496644086540010643037704621014655913495349377466291245565716785393651438772694363786086554006211462461968810686207612171451211360021967338779463356237897243963110196463728776806760802958416986078610291045595507171624547344316756103411604593404040217514947431338526321069963069686463988895942020716735629486930778739050234099082248854064145903177593740394432382435574922528142247713661362868048287668290613631290559524670084984274853518567243751394194687038758523863276879539837490623991150830190443389151617011185092306123720077356687179027244170924476215978199601430089663681549476374591449544149809109433735477312771734821107186640147301382313204503617844294408423173520577555801937961261136682978606494179156913908306587182279069903366243955606484693569625223004820756172093415047182282607022976271379592277127018406213802705505812700941344059070342658742625403218362129014401638678271326889026251086918135750443276289259441547369863194129553918243484951326305586910533210892742780861290690514273642978040367178975308037750287623937084288693185692896618137229975899438445653148330699689712141778670823407661648854376301720214981628537233608868533684326984888986586716928445940049099428338115819131195004773086119703968952753612495865149769867611124419427821261920658519431537389051485985614391055027625453129127066446150498367812386507943297965293736435567904022364116694690421907000292676372399074825877628541887651958994806088060492350372802178964797691798021477310381738999394183180808937609285473076145768122800123009038271896766052227113979273635241594093384451332537491944766962209454298322517050386551111887935973426899283085430098985630057999089108122090353636672175755162477066250589443494487788458981330942947382595323239239674691959259828202701199152698149830096544650029897556961955582517204865276839341937057639416890511014665643313362958556167231165004069286092385424982700781648383800779979299101319742107797138386791612106282631277112753393573720209838668925085034001750248402213662731668858258620551390157240877081382875683389525734381593111894407730803678238744213522963424343244223632004991540115131677038524647418915309759371336268902244070654644386209283368862785608821297737047190911346021826360774319014765560788512440899483288558467917016237524373431564062066775463874674625803218503849888951308775774645064143397830252310747704483529222556138625464706475739930070344370971673463846721207509207379834851096492381769513405490543069660502005795023605492014038479979856946441719538205845341277544829864241455272923105584545394193375927335297544217522471091251140953343668427057230406161380239780272661135217133742950165551836030845655493947982679815968350800450105945805980110356487923403145394142143527154622639019750357880077705204275816916713909970602549018945860617643744234139694321331651528260645480276092156559455174640753582872062429302987480499141104096575758817344781007472612304309333885164310065476289770096866553729786391756882354501380759648286866654718710242335788355147783311964705277359374391039194410656611347227688768511127104088399311693163531578353148974856520617777222214882515078306485593551359238342322630222788576833562769814305652357038162842046059195210939081439865404028861736384217194845137950880776092490108719190999676030085746741468367147872179861804413978959520243250807044677964715916802608584760311113889174424164801110360575541846212709235945086732291836731663785290572711008262132419866474384815081537437628163637448817096031851611906609664542984733589757731370640359435664639624363375538699998027624619865582981381133495732137868094154600338962423955240529130877224171213604533472010809222046569254519163938340576662603180172543385950201596713685387664885677792611620305781732508843610117060730202638444635084953048796766855996841140259488893638682287592161574606360224371275283389805275293599313610474719206034026471266503020037316480713294282864742367399941725663590008439861470408537049457403404826840323380229219265912843115825282038224932997618927248958970368901801444473590957022153109021759751493903720147933418601164680917271572624293037660956143076338919234392562264675714293310272368006006622792287624317311601306959727165760934065357565234683849877233036193086868866372197963175213768802462323798380414364832563797738898564313926164945640014521796724097749959062255752459212511858603836950560730439930642258609982871274877808765586139509359491811780832521388962022587710865758310696290203104637187121885285369671558590186258152210943013964533248855894364742347933746706769744068878331194653312968159164179506004703551246354291954094741057904529100292869965293974753183336814880620633594058333304716188044505962147327439395096313620038083325012011617854579089020979134598823036376549625679513155864672440214817125278886773518142232891602695640704174832372486218056115029228407679859804682063562576722081009418599534512084269740609481864930448648817107103962455212921988575181765955711901427640247474092817149827243817925708614074887067457039528533689591742102338416074343161349811431947429038975378072917686248981649977749493649635466058588454337012747627360965634313294965177861840850301528659406243036867492042798705662222644815710112639037914923649355995639067856147164637310122646371317662042864231255510204975997973381574992143498723350852174326489530802087698975087870146031906866323755364276530619207194935328489029403046729796782137634756743934440831023779819566416360488286170974678021601207443678728116070694229580725688426074810092657777769182204462578887544768287803489190348372278846978555974441406579179185187143370690532091015473226538137853548030247199805982506021156406400561973340985597510097511334888466910644974054927005474399449278203416213424649421377024853276737844465143658985332792653234636563929012530034251159944823359304651910563314802608976924931118539650868852801643206765598767453391835724102195906021593093147030719622714345197381469601155672215310183171406082931194237125410035903529246776167743147526681858240890270028656514598429741708330407260014307800321476563392321827594193279672860250691965540065853613695012164271802705909456912727525333193571770029908339851739775827347566981211311433532829370167222964808289660011733045508728483093231857451475549594625093614036212289212296325288987843137498876601737500992550978019385197810182664449920524178076845845357704127852588877169123458334284247036424541224151959812178286364955627202389983819502846182514111344560958475468331750384266258396443856485784539578173872012250536628396100835156072697578734197899937084412746708279731598248478915788315200994853354659617186580875949357921220213047699216848109554806682103298447658426308393749677454714460187810009650080429150217664072611465816970811510624241014928227633429105984580092548132704376936945332128795899671995941515745860791835105912379335376677411635749468083782449268460484315997455202593974878423968616666562038970761178564744516823679583649191225161958652048639516619384785478377374199438943995006078202800230110585462641107953588804060912456018774680040066190625617112168230101264158802301538044045295143947283760916136177971715367138742188323813720836751387177473545577239968577600966727532891563132309720948215134002430562273159239786777271496008917598654639597539436274910137813661722967483249551005009319671991261668582952610172802074022093989952578347830300164784591619007746604191385981544272737121949002100325545684096748210510659510739621799066465981960402911400527244734637951442902717293552536409091659718414205156979147669651671338970496892148069451900389520987332428276545993845025179531305606023137766274618585276330008370205554369783375345699531144996332959870449752516188818206150120695527028132304528989359607988937640895427321940534701262743420191077617432692302284982923008863339732331121187015237907481588236370535482509007062554759286225595773863131001180030636453054922386730143325418358103534271679696863331044049982380411586628130223021766816412581440649399938519422228642085462802109212219643813217441066352318876385954801232209446939515138200138417709618178353705437421517353564090419982035243341678304861411167296544316984006872642314091834360798081230800342664245095902902765430755317560576647223925099538768926128451932141932646773829999258415634392145369443863011542186610440633398488844101630728403718784238476103941467016802292355667667707591923645988766777151281561832403088701894633027217439065210638245746452096101041780395957017792153296326217512333180558691527497217302679740744774902993689421449975711145920789645546680201443575860825893025828602400556268459895753848451332564266186292728268445091603723432250245473917674431124593374228216321784028940268653322827238389797912807714040128741114850906415448069832572266991311475853586089331401701599929129697437025569620020212414303288376896869394112969349632731397060013380574724696255066531056616441469421532027739829308711301553172883424931436706483929655403646839429353513915127445085511591945828417182381098033182419640899505228597787269918593615069750371243272816480334491545484426711536333418401142981417881870455517616443561607341925580931311737062865596021293225817858085803525047792827744200351219950364326305534252184364898450741069768474867370279759659463550472219558658363798299240383606485480880244583779411382487978063036567442526689229327646793390606402259243956866291816237063887429713255526817511892871222207880881899071529191708579778142215452281944369224435770960321175257566449859949229783971790649063437112975415651961637956216068389224675941926716500245605328131087430559889457511009763113806820183568856993751776373681196770213225656813822713475639241713053591579162513622720517651950043758683318314663729050358461415342298567261813878987263475624968454809999650967803123670873889649641836656684717798047722721095472552069587161499221040180862106570390884268567128094613547745517405844977055772054204591630918617601741502537011067224731164458429076160062114432990031594478078815601737816667268152942915146343476786070892252022232126713410319640938205214230582733594693647990556861210045008325986077367992856991197557315597050876793938413224646210798595415994622497124151969620792820971078659924054357085289596722513116173499386397344798620320571016804990469894737930142925381099495544551202118672649486949518705386661678261666116483667899334884351105406504597035056636077779859530933288437195008889953898111096591651668002456251530393665853822986745803546731414670923856506335417868726339489943595492856668808371245096001209418522207740123558906816861050121752506148699753160437699388618416125916800266542672358973186183686802629414816334009020326234083941599591795477094596559698997620043145355597976711164625718608482955836463953231272924582644076217988998681794181696630398205250812930225403763934975333909067068268432521905667029182433536099905681807390341678978574608223266890139450914755585746850030201911892844696113009426401303493886402249639722843604023676479975194553655993796949617689432871043060158321240179141989415211032268158609281924578411661822170741774493077402547066205842738351653610103690633922323776961917275875603305135809190122715856604541964541927964784635791054109962191617043934518641468565106824822239998766154516556223063743677514379980151677779475198401334253932556955911355792551469855538570171317286621328925646800922046488465524758257549134537063196757437713156433567579883397839767344196090903074769578349582635152617903409854392228202840645012164379113979971522958281734678864397345174593278287603138846775318932343717574982936275928058194691126300584494598141108272573062215294339019490651477896023514604719889198950202481134047762502428197681700624521256713815450963823964399303099364497166137529094173782300916916816362898883201157697907932829759974131097185910087953259600543892049500321897942277635748878591902279739941884990806028332831204544761972176909785734469327298935617329516354558543999252068909884108595454698645107885189243237750778230109679523154322470159361575982444825400096796918610964148548710011625022106492776226459726861647064560596116926280182336771309729976432842567412677723250066564489624450857165043378181020819527456918494078604469311279859572457711478900480254601987976579319833471736296684467837097857095049211585879633540485106948457834179844142499987877721710514503141397727582037030075957314748675284304574059125086894072849921988309711832868516898847272189053504097488778901359590223035575023105823609508463005915428433878885949732373065150779824451604796193307580033281561529623662931927808553483451002556191378317657933293655694790880650383050361203002359876632560210923150288102251993344984179915129253911505427198116915834848008785506065680551353114318683036707794475369926056880970248917920094258711650696708338130154417041309677788074744918201150837629991172197765113851997800478644738470391984618750653757660610178910580118980788582810660665640094348141139351690983895617564308035593526872461695507186490463162440097839359990114922586592175508550840743241217914504418007650801677815303874794750573480844956430150663565417421185588563463547775485532106810893180799025857687696527698680994086607221461908695043675222829311226628613505868313914409770022560950655215418989531790722752067203454830892013725123266463610930495419656891440849593353257155365865206956853693306630194061454925063883555594383349492156404304002123865267904375434687315026838925452668811130987651499182154596756686808238373518800955857194045544835184905722287087050403522901067577369694430228193727169571428324509472114966766672087175876784410654436945912104562801599000182109619875010118222741496942980072359659415659668101805358328828618069520120529714883613839709904437976888512662977917131266585791696467165991791329806099663070907619347592343742983859775885979238773643420404678319469895461978692131210493694045513892612268024449202056843270191160039085947029869590960617620842235220416166793560439562900674276018500936188012869539786849062371063391882249778632161492717439072004495349303776419815207204457269963757930244230393751850129841797956919762618193447997126645019705839480779714152929058001585968608156539184547700973217966280566171793787662922931205929519673540370053137349045361631495419340852532896007559039554777119560361704012248304839846918687518540159864175624418631786678233553243078426214379097852027276530154097949526632585904250466063585475020263941371361023574177218742545171711002386988896649200382622970669641009921873025803349825039956212386431778705214122345151730375606620293208104453618175552022853497563487764455893873755031960403084182612669724120082088298880635206062064000670268514045988866913101617755498442839443484961517171922966033001726740584003801885846293301033288998136816885561663587533364935950802283519946414520123680473275778507324495630490067542768599415209746028536090650557033170886580872964882758261014741091802015433425263362072026974451954030487472044199995535573122720034835324880202259126403344619266416095380214789274042969962708037681903344490500064152345670255377975902596899018326475598638735367524538000333993552054322332623999658732109972559469492986004067649791603071533105478119696603831828059847327988143237077008416303150084861904844152183228974793984314541806130244447378918893970738964508141018066142403007881050819680507567317497854234503780955542658096056018748220486290373371864460314571431329584018996623969135989501183435269078978779331439109161854219599467326140850617011833944384790082749694602243739231468385494919673653849520617712430264956907829616286136177854786841386764683041742642382155578182797089513848680660723487777342326222318805197978894071523540066040574236069072858118002834841237631193191499396944132321953735208142896626036077167699726985744886064948658253401982146038690482941223193870761028612098202282657906868535884150435229536862280748539753428423677663022904810432934837130003734266294176076651386961699942466546689529197255484743388738632094576397855564897313912760794866141606301121673773529509833226370392052422933957063438141852621036920918689813970911301184499500096900564339183774691544438589480871348635640773298968134979872157478616192857417284571731438909937151919211792673225180480691100623595360048964818078067108980280038039823747802647715738575302966288946762955639185777010023681417076715282812941280546923785505158953245088844332406617386213039598583187959348957975059608616121182356135082683967627703389389015020829996867823741543147858700093567874835754380879600100387351726181218882841695956145112768263301634114246607842008607883215842707173125814474033058273545671042376438351328123604630894739378443553414103515153122197519144833545641794132361383988627217763385691044626501459435442278266203605193208596995356015104404209370007496374845491952490042083939347252894654001412374696309520907637870191187201086670814771285397581703536760987806029580306740632099410328633737273273447056541926388123242122140576833845266060036907956718302137133008751453615098039093231722709432948711517682070599467168750350705775420059838320775758168437371254221005608645904679456424959125934877637503048461553017915274642558950064566247859961908686769846492402502623180506128325550644697189528100798973310827400998581714442049695620992590585028087164677490416377576560226040451918858347041545209468244076657826683842144501118123357613280262668156480116058720926036436479467032511520062996310011046198587848599901119333375339205779385781991634511049760849115546298138967635481641224597502803793011306026855226979074001799445541745551741225941765443009600440038016316284499274496820926033467239048939488259266099252893106110124017635986267299434985424921954708335036264638736587237090666516367624742335321554149794467262048927172463985988961261200098071511802255309462625075787467154705009685892747030363938149223943686812709810772234891448670872630187647601232503796637917089061162271488197170367876627167238518696096457346174525040743941984301407495448956536999552326482025393342875132433769455711894170712580298774839749553719454292440026915503943977880644043485750610336180705465301357494272691738239361645676764213692099173613549832038727030842029188753223645689881923869251217382084910395390653520326004096338943225285346143934675178028778969057000389444352526412734321675351493820030515269032378097870211048567331392826176885746055640716460865660186030195917495747883613433388799638792738812526153637464978519186678222071751856899801005015593979611453808693124105471088484971275632955602542263792806177048398474405331885592500084911913041272345297792124116739779108975944545076406462273794679654872114174813661734016405787497406313795213507625834024037412230946036582104110537460290037581147009616346356201673332294284467677931191923424765568551449403599766947958390599440077142601424228057689459451070291492302677109379457045907097050949626548207857133107390170552174292093402148874932659724984659980222621120370505351297859379143913779661001172547067713490835679546162108566024753046381690270046543311971960830468901529558696985743343234277115757131077692772827263625212860442281455471792460632527164755668168399430688576128009490777031328718890126635283907998581053650678282454565691383679158395295532707112208571112705179172696958555124744932436925061272395326591952592331611364105247065790231089582246788955752722202391491085372023525270516148195416284767593363734296569193179799344657878813616023592961493356158801983071684854651704735276517640274670231956283011454110831405733043623609262852092791260831286089511668138685659592070639068368164519769008712271697828399623121058445748961661483756431485803457860104521959648666297721691474365459204574617282250492649976803481086307622134431283011662618947846077219274106624899741429404056712335884332420680156039378546000440877904302941303293726640665887552625588938717311405289334994072696157402056611235216388917405896809954698552772198515984249973403143788600745383473533152874744650301872911404845915058448896047188379116419366044091751086137894791017761152038775794116434546979885811015979024039820747264231637111452406342452987405919566762115612551897238231244333673793220905459686799391911072118810194379887439546575396518243049554211602372926909304621575906212119391124586194162018711289719546619987748434447836370699937330438677924596625864157623082923823697077185889447681433726678713871025196257355878156419103523890657304053137167172376611311409507281685246560806679227941410865799255767365671685109524814139832452393925104927622514581782575309638063012451441270315894829475712586232753461424860611807464047704086314321095922237804909064096043908881228114472582963589242817813077658159492199984642356156572448782132071174318892758820479937930448182437057202686084402743185927623991492488502323684889533825682012519257657568403654415564401539195053120057431086479025181749160953387225802917833720559633437739288553693659251820523028340949391098081544473341957227966376789389198878172303007458321454022500440397305029199917162093355398408126420591267363832272272441965599766591555990519920847744779281635733891271439419556042720403659865310316894877425333791636916771579227654415529392205772963206453773796903830675062616435304630865143631041178399028768729604694190333400740851376828083700887818525059636462651815186041095456852611140042467714936630388989487701368132674269938486363441765109227825083435037012935367456813091697012304061918339618681593947110161747184471303960410195225890018633016935484754873934046642580176320515062617458205753988504688444258677819507019471545578230738079230732487863655114006393772909368377796489645700163892386623854385731654896558580517274639710953157583761170249612253969163270215730115890820657688878156506311154801382532896323935819698576669381071792099991466106076286537988762281023245388482306202166028563674616120094176264539920509700331669681793388543779913445368597615081566260614865644105740033636432517609512181938949844470905793857163359837789286280208869867271832198348083146435803405391898374620354474133941130086653640616325344291499486022815709779167767481816639211702397475680168388349223413103388832281929295869444612331121844671000364874460981875406484553607866172024479810230622710840822214856668012451366367714392232983897441441500725529364475795244985715095680580298792893993255803383235288313222843544179499614947836038034934198116196573608228379985329057062197518199705236451201570346464965227084849466888533417729841739671526032509521183259187578400096392393885391331306036290583329454292464318537634994536502433788694636304707213328203649310388678465086604001978721903156066320379341024873649103004545735416151973457988674131795051125727985341053053769619437200474353679018841175309995749388329952187981833860346732298921017735174028424499952805184823136353977562832953831608885016760686938420735183079308744808647611045641492466045363320135628780646659193132833204106851371288714716082233591658361539169586077872666758592760133013292777302544064352273108325699745158205967221696643501442808191153521833928012871213091675695466797117327148128620772124460622615554184478423224871564904070237461700799815525952668231492753055212389532978752694537330385307737973971123631891605075383720653829876703177830945588852334653466349510026167898967358339194556581437173772696914343763179932134913189353899497137321139979527091618466052148116972391423603781906995368941338476860158016575050089875535888676042195762636766077884101711789733128506167401969396253627469580350379946590721887872346099849941878758002769435064091594213065117274439108387461422521793544764332378896074259006253727428040087016291062761263776976381962923736046120567158578101874184606678091310885398715786874992343533385595103412790396560005430631831591865773440620626953914461426760101834701496175781889596327336079414943332797727701533488916068828148221230750064226584041521764908683041105073690683049585950200202903462748010063854742174682150961768792961836170799571209600979869997730547096261162420597068792322436633118939940975157475941172620115491891653347656915560416511851951423830977495620147009813803366498205544810901400607947176291918517920965321530243608713336068506745825367997511181703354756596602885126521469864100971633284153462582972164673314896709406121571502535385629598567146376784557345233217793723445007790508932221433888026373063527039569886283280086046043107274832239546481697808301299989745560571370503275112303400692022237514885714577794942584605842717119458539629761085923759856747294721330738893275809668274274510145692321097942568252151330674167487313998260808428636104006603542206780566985761273057336356467065389728317814278374030372853049198142826327304570057213216723486399190488683594167108421007889720360216330217929163880771248590010092902103484376255279641232332180936359664456151618816274319702721342519683114621984509871783998382537344435585174671152126695068631410148272953698858789659327494666302141467558170260907420976009759567895484586187529963510349637208762307031078279638078761344757799834888995143277173110034861632863285277280854530711815451607794562672390059703917752545732625203880230460649211918476422157826853572394760063465681296282530778651641955362719583450436051608198538821198408597980920163906547703663091170784428224964494544675049991194427026524696862811635232361384363771097141611828488918096686814469394505775980145379673657011992463114272625409587670264871909437318464648942379194941042474948524473281878679765619170046408778847954809833595631404650453700404285957644632556906929138643098353996543999502617915271946838418144410062214706822269467456107187043927746777416798748844546084777232636939381938115035117009350136683149908332725711987531356144131430960839509520333223721477272759480744210230746723182718587217087526710450319300306966290078063207200370097051403695787473581027787158126797009459599861674712853667945964696884474529616124025326217748375002733902594065402643671036385999790289045876820202918643868397646701194493831438745032436631902655427006877537371445864773219231420143712842959417843489468344821293333097743995327278106288111643185545758795165720796738476705386806668931501354280564018293845796542371857099161951329057089021285652325613894016979692455851448456014553214603345610762400561561988346542853208432952215551447975640129439962660758504147550835901826603156001253664539301426776908315522980558834713113490426721201440377664582062351938541314002297222075516025932477486864270745657284879647730160751087601920317586442796203128406318329481560475986784196862255097048662151427264538832165684353857788371021366722424689975850124841055322820216935129531986110189092683744595858706167681730838841878328945772441602131922803777874388768491543271211916292226356372659832958671796443060915072486609173458646078726255326510292517466183298353095950182151696005424050971070689730494206018240372825557335114751952239168733451225398430562676150697959298425081924046708576300407887638233797663167573861428993207686327421551935547158925745347239775013728050736464034113729016968765716371005525550315953733890513532703976758887707542826288762298448212536112344495619975708916182717119406512700011486084401433696858399991033100858103098349986955959109411884281834217974985857876257883801449142582538137591749616703341445180950357362041290156255622893482442263749284162879016834810420168099439711943041815945887371590040499751932628512906589110787446736431937194052125817335697545961121458840766071848227892757897028524661362555291703581861776722522559936231088191487219879346079256165502831938758567739598867229850700160883445054710021804437106091521341234484373283196410250828895871738704698816793307720332238929417637770696042310478623045129198528886440186388459074164193187777237643615883874464678142864283681314636453609090219881165430462168845428502829807906489259863624534923307705987248666029293155043845642464734905609114963592723912488411524647421844816128327099117837354596782857133473213345873996091379598626894451344317428972096755035332888204925012466303758098109956707160525321798683860445299236505157825877162640042529168285544529579756948132847135600697235611147117176603497697857036200742606569810960992229610621546319728855261048345017841242353739720633688521840653109429983763548429618041949878661713896234372403664958410456976192301830440845271544775469539980205289818083024649963296839049205561566013302053386104155761123740432855721463846679329671576677016625563707754965377611664236162888872349614463732251556659888054990685132018859574724961223912006753232290265112587291873884200347492785549439730051500393318258053107942434817590336451558181875586266045888420473767025426604517350769647759053707241965083838957573640623193440018763456252067527183262823449241490821399723054751658255486036086391821028513905190271055151753000829186209469348897911020087106129690158975113680522406852590812642900525522302072619567893643098444584176415527065666614849513597062507582861232095383435500900458554750998484520243035006048122392652453323373959079822374346541883383173070003760397854129379564369681342046110481291185197415415794510633255536243321552689593107029339972149236623008106191432613404915971150718174039341764155997193748624002054583473141221675900745550188513899649360218123072207013030152743530487208904314893122371571121384025277066358220093240462127772598727428996419271583873722670508149907268364844221821675212828955640077053606603062891967392096173000491010355582903278166934326987099592202411168906244422793627095205378245465466588256148684886214899658723626617806318583444389481030158883649125164694516457130078782983775365901146709034431354296925869135202240651746163161617126581802020942425094554655290404454221588921552989179502862843686878625389074553986121956186810487437457318071921502811625724228775795343808101771569845508436562396782377156451507637196944564364931072056684394989983272501681354913223395842675547200884758266708512708066278368588053874971455288523936249404561182774251070163096088085305292348432466363132835296206280163217878404861110962077583347187246726230266760824191874595787880730003731527279054555441092794862936781142934261027496348147417325917939982021087657335562653156105427615513396560488018893382519955357516439222968892172350621592571145277588382635811529629211697073458183338108959640614953225337069878142857849661546155418155195683479714729960223167968755241579160535291626418615556062128090800032149698154136926178931369101967620560718363092858013995502268491784736022211685962898442946352301110860484436138900468600494664068629611034749041206202208398687542704396882256935203018135534545277759098865140085545382568255229764464338329129203441843411265594162741940159309831784312411495008632444243078049682127886555577651643180583153698276674773493163492224032027065896323808261505783544689501149109862259196432299824984224783093632030881676228367085365169352188544440239543232281474097971102636259968473832960437280837623476473482439858229854898833226024717064683398387227338600365991079978710133473594220053260939320935888128382948230158246537907745359880217688172358445090979951227408636654855323618227032167743162390913139071413760212891061067699140332897294729947023743036378359759565510703818970476262717715135729279709637717194536614215035789273990987199867418869406444358328863450516571982663560162892182555014280633285967165859741991773137114508838725307523436025180490206277442089417799278264837168225157669731948313472618394597084885489927060891719722253219239914583414519265970058757702519389692645311128188939587149724552424926881210066538991308477144147611557870457579629841300497320140965461762487265695802147670256173986309270449495183509255874288499705096244222227226120753400606483368308012326654034193056351052998946994680817681402513318978963934636119904960645096649585881970060751446698455185297488259838338310620021309305402583898409869548982565329903592961104842196783204045206196534278854634493715001732755046856913408759812001393076017788304751975702488048804297140562779424857008174007866880803441942996367296007949485124184628152555337545760818794284808416756931621836964052297969280615911748360086531985679468561841894872965688991462052453171941469392380400663859024965323468022358861047148371947998337829797331267162682953726933144338879077411641576039082684029042819309796067210559365860718221150829781704394380126718862506759644199567340821254837290246846613873116188539316611353310928747695505269722556149652706245537213594949941365210764816704135169628987687940406090877147397891274188958703711948950721638203753713192529064524690386580202498979990173641786494953218170771248232358083669392305681428221085671451527829368737388736389422275660387364029231265170714930123865826904508407661516973678730765101247511657695881410787606342003577704306962124351288798203339273005224636760260728189386600742686702658260318660711387805855308536607504133856550060784582540288182762902341332503624783723145822241480806101971986462163059206316066803180315767550497208710714760379068366237181892660111173279905237541516345461484430780661819161108076877390198337387964924575598340262714823605483698544168959848261082315356747868377198088614067328642013395118631424717276561848049616453975876251425051000308751096428482457450515767333333265824027727822317748600832653988821461891306683875388119193317356270928201991237368899592830839688966838392213409119606031756704061422469389278612207013272412159686720409022694148849371919803002878385444814320816421777210868172337654540191576380404691369156360539454722752923591300851825213351556734134428694090738708371144449639427849504199500520157237609323782500632638364480600377930770206172006800022369703716923774910685401102509621572555427467842990692302022920946696064374391991221349734000840103124511493560713190256030095324147521633549146559494324302864859598889654472369232047567049848887422867681578270981503655928621003531480362374196698844025572815502646579502951796766238046187948863914031387116064991547949083408873429564741555451297614644918951030077709034025198149372893009879254026898192325592223975973548646470829516554843886527163207534745829690194455597096482209957497919715303540948489298782849874434681545850299659901894454634517137070563675053899982336903383644583604194479039532553384089436821329922083171210989880550984567234940605264650125163546971698688856318187428175995768259757445637235866489555879160010186613891785130109367068331141542963116442817677009252190536625033228942089554178762708153993751505123552239649785290299971916376373830145578227076883141063168945228920415440017453441718197571849519385903800606109552041105004699099858051800409766317260770309966207298682436528736161670367508924933420890917665908857150733709613681785417939304525876051693120221566755440226146159396113376903292338668214432605459502620645177063039507527968131861972865562578895433899945795998563352995908791797183973645684188713036933745829501998930364894112708006109289724275719334102136906396629163048905534573066669699475149706162184516777694683438233643432122539693595462850870744854419926405762290710532485712368315754634259921931724753782631153028067512565878264435777174059812950039303742776713092637262543953071079278431721882209736539122316506314261425970232997851802165000298636604163398320149090820383592721703026820384788128560476586373344833012896140689239381587614315139841405898439321101960747956266767960639918431582410316685523874969911690938477952017267810138358224865020657877337113878251408515026465358757947535333978730979236630218194612928742525101625930775606484185036251727313730518084927102727290856764490054228221107577283285138884070779951962131486987514013223587156400825151692522672415777968234294921762660128283400318478371079498423246107543827760673915755923027681439980177097971779682001047456787041795886584289178092243001476813673009075574673548212973506995269805080325187440613667171847757754745282468045240626257205228562466219416100284377238696463296886155261506352499116113148966249856259570417482839235432379764191324392691667398162015468147570994377310487751587269960004286973557939709451733826515058081334916231358474866527280587192168430205218262313676486652268223948935416017985555461599097725897660790721508707164077067763781217597515595798631669529716953363211708278580131770246738841847704299551359269090084740876107817690711952564569151456042326692917161131669710357057719987615281961963056039210047011017006877749757470917132863717056308120968184945138996663995489581017402562874219270516561502552998846931097829343295439185745324878484214117210278615774707891616609305680159868024039444888803050936170728970810102885575618224604678238858905058219356361375221310636945625522415632550137611989747686856922997761559419114664288960373978635816875115953908850020169110842493324186585579844983705529107609122611867700614929589044650664523617230908891482344604022275092075990304870031147921134576250814189086562505834665406609814332965202394684903598832061925528500896443113598028037682267312175741581646808252595627649034359242828157666079210062859737714993543202263646323406031297492860343740112347340555918479474356560219235189589913790029878815773878663559534661598461570074550483631438619527428937816480777380976200432024999619706109349611479059735670545250451737030480954124513989454127975790333120418781016267549695974362995983307621191827819946438501635840708805460808317878521808155401728173532518140498559199115585355988098666458954187945390050604785789834550422010114636285547008817011714428840746061273179295833455938226628231119137110157944841720100349268948907278337011539273470797291962259511515266826416148029349840130869801972561972723722650592209351478183304239829108010851199030715603137499091919389298902665332658662748289861296862439423628906147933655290546805927002941082656522490095028256465457981907506361004704263024519514139227137494262007005024229007474876033023473916488614887357763258393985646510817900999794533690903206221861862685949285212563169397976201068092642576910529694554002090993011697811549188621812150392683461595834635475907237775834508683240488842170750931459795012423681607900774053279873651166478855676034670294441034809870263813079526385067576749674962204695746863347565587703494075351141689865923597135362224784127821217420016317088864898098248834209067925048393812693760022554339966883782468763481382211427082036990964048704057050929406770638474762194493086494530530802491331211235359898057345228406900428346385678935594029036995943585241535177091458843040102478905078738014385611293330318042558675684902558125175669292294823708160245524776935079509105558927749888687455865206649387484516424633409467791449859566019994720758454244107289692549852086910603574838838871406232653582085580675701253494767368775041381945517183980249748029900722223644283373499311214797805517152041927347897227064669393021146115738854659777045272654031249371044447836843326387845104074146380112435839029608994158143219862881123463391863528341184235564031596196311696594959538827533821740371476948827485435425743648888279527547754282164578779157164104554233951378435469867519840522928462118623346333861906730188021975289868188164776104907800156563330411216493426616030982060088751774396739964158358191859195054749993012798050700974477189025380643152112333483575269959088742038321173567579202828987141212832490231269762608115993918030177984038129004747472578550824887909394828596151708316795221804175197219826513294663429113436971233694987419020037140620079576639137548581649613862871215508953555538070844815632873062668804197511791129445839205845669547936940309758642119763042499983049447158088170064647813781875917841355010014418050259683852358954844655468414918626986951540924033824334126339688153483072379052583654687181226054935255346852296649714999955375844738500581484062591259054350116345820503677344879698947400451256392467747530504339058878981703239159030689448267019805039972944548256357890003589832478022884877679949724529052458804472409491997948665911179597150822563245551949201173031128869531484699834632097585097066512443663738150636664045146407623549847758851745308309023213577073818749828381796813996879558408461880961735009899941020435117138810175578093027117692492224031965672633229533780803987693134608045276544275736989065140848075456010981785964272335275639050449047236094573751997999544313210493725650074775069138120022329906861097382029879010276182787637003665773873802110782812733652542425562304858442760238580354716150907710853997397295261968342542516466718648513454836983190959474516840480108057516276367833636403371341409822315976311534090436455392091943441507975940360082993815504119878410782694996842888311063923456285439455451230540223158994935515856100433086811040328269784410583885280211923309175673754500994176482678774643529661855079547683963922500751786277566874155929187119568119663751885767980358084299676756499152944660258180718489814440610762849957661115433820722509431514028077383524811901956985567443183496794674079997794995647320079411923713481711772621943414880721457597195192471141011745334267069782048496570488025630757591755719464825359134036036781224824843476636257764683994803453474392113025995308350982138306119944719898163881482104460639056352694495362026286789968785015003409100475379025595668539044264305295221583149553653726077293956317290167315983049611321999995639738755964284870090966208751944388176672005799857504783184374561489528249412585225521478319024462212438869331841126484550363324017437824104916167652396155679091399869837454742922339928751225537165516781038782842404718635179870781013637554487285925034541847925762043848802072335213382646131535802777956675869970203735619108887686301593683386717441500593818341509304650451772128006586661967887802584284946449047404862947391522425097753489639632436991381624763637501773946869636630918845726503651396284049657648162626994529065019609532726301235433681879933267320863350396936126126017723442829430553853845245704198342533933331090296331597439532049062066698737006922744234130372801606328195629703642340611865208325665283887306184146578851587140096179246430893211076967947758423501361697876614090469056076596415900170092450769869408587385770032487638618907003304988381094482661705436823516293760736282484473199486361844311782926109393042700389944058650578620482857224737751491989830963081337543238409795019215336228669081698498459073632180719816857420553134419040980346222906763436230515648044597301534649937734821396524173933091134571726963799085146590436484615494797771710703644774213576621589332829975066189381621874134094305406802503633819875737238973573131080396615866577281690758383852792837810012631891671365518924256244630146055277505387282454077196536783034937682961489582634489730318168728339826021012458501406822276152121455644850172175355337137780568691540145466807363119711056531979859944820972326449142453579353007961694954494572864484971851853491138681019920831097547672619712145342785370267949329790749895892417229773391080927868515053807738367510724393334164012155356832615845186050030847147119412374762943521908543263001680810697418530391583638414161375530960463498055013785415819319351076579417018069058833142329235495239326353358444359842568857821545615189313772334120429767295300698019102149628227747655379880076778163481825728606874251540222515133398537499386342113862438182402063184257077246518778684341144615733665762856329395775996126449724920217846733852888812338935549933271909434789223584082754647885323546325225205695233954334392197569192731167961318491105562285607761597530760264439901258859935815594589833565299111850509897365245557386386510140255551080292740424890915938798163948856163870722536040551638203474847981931408577566293138059124110459739640672737711870353148689521962048035578285947447787204071135875399860064281778281476525305584120959564126208565347690403653395697520348466870833924060236138928441363807690396373683255130673955106827619584449727351079514640698389278173084811467109267884949081552665766202387245947206284742454160209290337246463567182711912633061457175172728958001817905787118287942432572025036078083209602361867361329279906382550198746144216183130078736085287234001946072683897332647127010573068832165403935293007345077300397741888816941460726158026024917990893590759983772582215275386701707156138844299115148777166302075765753301418049787533047006030371151841110249120421948340205535031898684940245023208900411948499031694959767834030745388008347565058396304487537995173067467112834567397142202070903150143561843098144147641470726761711479771008793664409146169207783655492693313296728896814388446538145875272763022155093245543559217576161294120612261054003452256500844155796396137192433799044467597970206741056241912321224432949666508982936359254062458035092610488243359529225962526641048413170086010309995110329146628548943989896613128802975067808928546915692282703261588122139666445086288839811483413942120492128853987400077132095336381091709044936204733129442973781172628766595816344421937796365846667281335303109961564274638727372244548784062770183005270257287368539915281725661102187156151198608415960170029896546523908909584488499302132722278078415739441653617268386852279125331220170774676927353066307364599768689230950036136272801008893420181494711525590378647471585739966869906242731048425565886827130100623554302392821340365261560656891655594975395747599400443227331207052586481796781261998982418121672037988271998684348892474614855339634024322662482911216956332894694678466860323056322255663007653450926918605805790915022811955176706985287348394338199250855218135867217171243209131599967384187225561984907069032822782603305531210097898212913219635999008077660201741243389574289537419676592054599955521653477489799898160379387524362409722027512555486379304349868631672920290259521455498775133841889779788811852692261004059365135896496572861925299686917071138504965458843646861395998110196775144878866847498206313232285905767082623407915954676823932598033847597029186552205930167544769841384398980031385509213640683492984217324500515219839753061278682036802628642935412141012630206988510951691849231682802117200062894025451830040531831065287241402104818625364046021921365656432606998684549901030996311368006845274987306357095976206350351267398084496703120432834209508843363319409026357435444471225427180982533154049716758595679155459334957557170265606178032916775666631941125495530662782900526044323124499282691830626315702735939740826865317150569972479839741083743511673528421143074901143380985440040954289872837581075498778131002590401337215777111497946496571695833912577479971687433948606782887733107226611909668573565254825339101854224349680805107498866597442080354396330997738223606849728125200942154681650946791259769582474569861290502953315303389192829651046067940589579084817750353029634415236192910051190939805663646383351221762251579570638625456539867683823408200605525912410993078627708825547770980069290507284844520096317271261463893105329293368756431803464717915791230421701747107186734226069364994573061109074847762851700598209231263166376287888625628740381807222306535525784977959740135675071747944237181137004500436310200783331022509706680608802994359143354666751037767444200784603639528726280405396438355708643378020059994988851927212018223522071370723163093151429320090510277267642626078712161402981054431835408959694850412028217990944394301935266737936165991134439345663590419816586807011457900362197742104937340437574948822147086290308996175589826257989198756220089672664243123073476806797353577782680446306394674654123102475444325096580291765289777416104170472186960677078235692218050550058701313785575310196193241296187832347296596965907750218924512759358357648073380441777600669358522649238236852474323949475534193384663849547408829138038448847963000462275342654328417980141816896882506662431770491078449625858286699337917547844426662504277545280005082164072820807356529241618294831806234219624420135940410114526278901002873944553048191744214653500208015190715227331927100359189134286630100435934350523315298395792324353488111157610622482580943324302557439210707498008552509323647896919559736908217777557488191716917025280517852578981630706298996999854744280226444156862002976028140243296029192413956776989441932320084927351760864147351170346386799407478233120740343384370194578070807918420043971422613997996350470016940852647477545328081633920522156417274816998973778689157994373454344810634997101941874897588152385991975942608555370276168971867007759128744381120650191652824827955740198690100126090385916461822517526136131561401965092994747122755920326957454364494696446491521014750346802841501325299015691200707411353488901786857348664229332842548538373830837789370341248976625145273904026222971858702050916457191584712700815517547580444479892755399225144031091589373342932126571517608161438362468060224500034477995533837518809558678557641896370493478225770497659245481589770204313021395677550418016077781979327114751004819922083003633772421681327799037347783385398252450983437654000975621464539216052743772609253624354474320227686286957368714456868296973291623134994657336475928605588554384777385185686590170393187949003173745246182630561560130471396319481244115107788517882223282660413445869284159370175371166922455861305601418808847785083345270013667927907157836961901184331318264255706064991873807120975398240956733877398623588794188184859233087608420909791146529842325028032191766214982203718535453113398231068224822007081155070064389634244978764863039774494496139464178490193492270683071178371599571127155076474960036303842453212421240704840605255292172784706355275100009835976071452740110221580636786841543134558831783971993549246899500815677081504158857312713567783284452235933702165375519319618680512662756909922394167064203967138081414361769041119750986773142415881759969960184611652299309098011432727155125981427601388681447170734290063560301388121842932428650880820803208732375076108149424712035758860809782719271488301029948427724139232696022522950298461601235365824249022318959367729292039014856565533384359046246494563213535430085976543483096440386619230025876193694964845812722608048757351255537514745231744934047916320353922307995969442716622622676794114473554554240288574038375465167393852648417573653845481362579604470636023424543750965129186451164540053337107830704146453608453891547717458566493200153340556794066001942296660308157864199067282259482706068120652218448348075259555711502286891639202089022920247384691492085398358276399305269499240150913373078991514963398754065613189153647065965675554591371148782831027037967195089304877019042502901416336613685030379166216410046113816071241968471245736348063716832632533308329729908934223337929935894355477319671937909900951388018430161365131145982545304657766630504091049775524090962087718729212993736916217152591554998304209847913727018967061632011379573019981485589070052245981262117933265314566804356986815845676950757917991748032671632748939368929246548279666041420192661267155683588399178078647435282558672988742596954434687264521894388083435520407089105618187372901711719357198162349490036866424084958114935641697471987872446548746564141810295955142983223471206326277094383425199564990888456952316850424946003965103629069396876512306130033077609539646408566887297694548845307566517944514202445737010775711622414744928761616759954278193264918879237229016881502906784972545858297754819673722113833396341098227796495291161596732212217607651456069295027207091859714336301937760404497490559675655649591001097573497019327682126952805471428339789188421317884518096148671731656593131753357850490531493729074778347246822216168322663356875275047792654047854155321123997314630131538396911563477091228241271825026562387882420332968199776822251347517533825448409784124804535514081663863545187031622250574867241656376150311318478943555798628843079610115144934547427832786769467247429453983109148784458453462132549543332355595500394399310304577072159354153204745775467056799658322465310637413552571733509799380531362745544654488744479555459397010248574734982795389650449462917145157196850236600941304212518957451970952145106312542953356695441119791751767928731707901460261711057441699490028747510273153349273116021454301610179209842602612697711578501244418886066784578778779435008478750951421488845579194857726978681544771995658312977049171519031499314249820039451133962338419973297309586093726059545482393768998151369016160054154117294701931911069032592840650713804552485959470709481508629516112884239706128190588918343126458724948103169017835455408889259078326832163858366155767056892716087140739576026863824399475925996681672898478497235915759332945247431132120997565058353856261745138780931309522746703797690807461324512342805256813644858926642137399137752728992748398813063734148646290424490338962650348582779409403656114504506258164158661068477121811833042849357663547271843076271390343258398107095750849507017353123910834929785664870073392435582024818697545704227351687042664648957536452219700538628389861767751148125333088976518324929143782598397985510168292775918536083190412960202048686159096404618855022033441895275455671567390697183263393171702931698639190094525753377950649179004696150366799091764316114043465472692387946122011293311292319073869189614741420714952414950479414752240269526813834032818595464145123838458348855003226615557479552341701224217688057948037194426043092497625815462725620848917633022224288898888686948258584808751631866259222188674842994670508998270380754282794923316833764046902024054731817128543732245657548826047067335663518680775677638919306157542951489683793494378646961103574514317357120021064385526153459360848516683386101567643197784909258704511511110946919281482888100599812881755733647469374383251927674025001405426090062197760680532015250113158331921034023815126443947502092311863871129876682368593539149734262732144043132304051845538949563193490931812404317517329697875068135712818790967956494315066432896867381287996730163326146043726930532113788933420645510297491641042023510004010896716183320591138070104446267370178374699647930200170419209806425788828296115544347352222656212002055974878855944797233106973900731633022600683452982548823976705798796539227756381098721359003791043225112300650938656783086520097032009066406410443413494235914056411438537657939905553079417423141642700349228086208827147595189723116778842822746621935689179781049610608879731764567635650526375703954754439976861753024889558395265202221024563929043182938362516905599371108505267307435638959939649215176521162403971872224940673169430102742825230762520788238000435374687857128088766535484265921470584194857220015701325626422966924707871381793504149454851079087918768681111303035354226161354619275380522747167151347570804097968991913305191106373285279135061331895800952321075943375479551571484626634362140797868444888807424558919441895317239104424278097894507408625353646615598329520634141311528241688869358539168771599597481604805013248053665835526940361439232792836179276767339536249563793990929556179459264746757699086267942362244263983461405720862178818974726906134511143675586786593742158459368352389547452387075894746244359515313439527385362391332423251151708745288308913065613852298244637932306707855602045934388487211170374598717383832723679506156427904883443312969332674047142478751192362526354568229088157922590814323119932135410087639518871785102213485930869522285111280470789170919728193080078307973972147414329310814009220276042585115946194090942824416533962871603433280873183650729981481514252807441579251924254114301778301703844003055916608963866876259708112647300916585841847928171110192684430363145740729209204209520650345540589780420265590614189367257072348830852630936729528181189185508079765636886025802675806032541202858801328670360547659234762384853077281220985667225756028662756045622735825189965079180181165095099866121612905656718730897198474982923218175652876831442403240796586220150144598239040323269933971374089444538405133914699001239222666171992026490741189554708384459742785571219114824327757703454943971133199735022613285812941071732827744587578999919303512885499293771779759651401781985994663031971535193977487516677511733615253685843796061879084692722698491511055484181018027797062068061124356531591049828077390952059562918336993422863401081745181945955877832758604930639024521069774486772515980699515004167228847754547229027395711981474107570956678703659665260749679065201510636716342377134405880531044843950783432274936332366189150862674520617347439550983054494275838621015624521813238716569581292328448427478912042606325176313320083241647821831552203634218177224507412956462915446829597613137803840553957251473520631942731783317397093554863406579287524360387050398291344717899559475541991525462527455636439471282259816738239956309412569506106480644676213800041012313269690708234465547321763368582282089593207696289020192712278574423501474455332578814541174342327274765254193256994744906580302502137422929745981199062692317364107696437447897080612364712539370540203927947746003247811739133757729723854776673621082066951543065717357255312105825603694767907050145383504375744838823220718177880267510813934432450563644950868270679774969261958204867588367858428002197853281742722333303912395646332983178268961688241307469974044207368762204609415549883335678627067037871439115243205765075938872500321141298498046297163399309779312558484278338666931317276701400291340895449820908856758860253709330269306898590987421584064223565822123538580508770734684412209131119943530560607286632631954493806991108968134593168587492418640334708538627979539020347307628285154666276543602042980154054147185053108497117482486547790990062911649061384055583143576158857064242346187304345430546647061539664829976668508583877063169301511853429356725549242569329048512090587496029819905377100132941950353600837738098791533821908405408122810513268106390003158777741015330616992459865085908469794325213199728728253314675680914885683478013884439721186161806175430157774139821656225875491974851668380464497539364848567814102131536122194532642115600470984357111483397361784042238966044109836253317443546598295397853844772953609735957909653866574039812845859991726162183161377420692924155940011070180132356381120029759424790800412516962715633698136243496672080752555238583540583842025063305105402384985122465513571814558219633181263519783055367115385805255645880602075753598109449259689790804086221038936187061217296542155545398539841630706638139960211227101731091597831085762478696194212615818076360327697211382798123164398809698685305885060382876361084552320469151158131327302758896752178284992555062376272114444599153598140195579560515645967421926808454451871419053708555254938409038710405788852483224664982161766630004434199944007450974833041082040735509920695826624277412744288562540333307532201395346834909667363508251504667324388108842627778074657588703207130896291540780317967803602925370530132960153422537082544411052231795869931267111549769020057701294022189966534972561529685874604257949712679018597859626698338228943984317066640735878928389422664185960687220256358589967267801665514598758502268071120534339903639262660009788112469279504284896318138249492437296173861741373095237326488384797218860766770846636586148779823757485839176299185518237179689267710308457328910428774324671633812053636421682226439341320726682720159250728397149285568124258190038006462497781205864363583282723815177153651571358724098024171943147227907746381126570011907524695135581364484280840668798524682419766111339063802726383661828322676201878246660833045899814063124456616442198140483090919927329789329829673261156010071168218482094128792914699181418721500742879356936186893275069583871793602815251293464968661370720319826919291777339477930686279206558549861067917967677506483740947409946402064408648375233573677360978899716066947663253139955989814309602657840498860578600619298203967647088558679551159964931134953542769096471881428204697930543005141865264690686669934717435505287965548558223908114296188622633047435576681143614601907344608495936679346959404390059957072883467928472050111661821358669568452843831016392340024095553141286767581955575806458260589066256499278863669669160883089065936295466079303925823497469216805308252498107752875382858524170264532620969148457639485031229672240450048145629541996196945038904974426325816299667138820926900934586817257957007428799877140599591229213737187254862414991202851985007571653521335264238656865150267202022272285047877767890654327024854546605222198871317038935081576757547471054681202909485250988362440608449390995393407136851419096225308090882968252817844417918618298972564593173615321308764139900374199580726068988184714368183838087415092427762225489941595724338555227805014684899470824965747048710229632304474605187617257765638648918149402314458998855342394854243532818986397729033195820499424000201155320162784837420917601633072632696445584958789347058079438357002590655880829636745249776014253088370296724234258212049968495766925725661990218664897451295127864473615074020946962350600103871869565747199707169658921087757247641319822162775311110741468905282914039958535966658358620066338485519016436671147589503781372867335440029775576169184663154863571615132367638628327189156829647469816923254442769608499133928366317276231322784397914615912148846769650477959278496989262893479288810353076152313325563402387801365744277891549929708740388509937395445900697993437662833697716592905137250211124986062655242361986841649641264903048868846673561466627740231815904712439590141567559501004554742334464708494485884346395018785552465470551329373949458133471470740984851281630630413646774868752044905703957895612674418719083027463887778324346732878898162487119453357046151958519843884055469845922096639936085957892707027716920506474818225129641531261788000780249156670331851114988805854374761415638589946551227677474784378658791131657632859192089292484448613062479248194480072231104804058004554830048117622265805494876941582612950746491732434842135097384157590669074950576710763448751460422860751964711524013903193463862161894896768745830517467842689634196262726528810733859781698718853950614726231324984375852812631844087654897502788406226152616041898703937286374109756277854871314844517188437138233156254138861577157794455581434597465009135297407789936266300123925269932611882117463498271688439478196970040764601081420236409817945833499019090406419894044790047690994991657145720815986583906393716008683264163028709212736918822743202005278922348486194370940801940415073753579486139439623388634314891403092446186828121861609202842059230587667932048899140656384077920851437995035197740802845705541739657405354712892927416682680991606372999953783323475227621177216028280889518391317445628051278664298028829652333345828208350766892232441827386572307835017262041329845110792989502539172007827892063280423085250654135617017043274406985835071698246006861713362710787472925084527357991994625526059489411256712652859745359716645859345529452018789083116351760893350169574040874414042431631933909740307048672050221431820952130768299042927283572991925282190503497049427252977825268288773916414189045779141214173606383771198202611637758458530225550045810244906865405620686762363765147291420733523623812209004500638690828117533291372617906968404812074722757624227632969595662528094939249526188764003232540975712925496312187655887743889447665810388767982035502176058779164646144058264199770143912185476065841087945615097476170056179078453853011368078048612263534525789923008524521014088160438438363308260411908761160298849659234912297886855114566837596138192974900680715415660025280172433221285560868964865875178466190930381120414122445082966513417993607042370016640721474097555655258938756814302489826239342049313811894425715826461250006197805580280445491461531720604770240274204619315365697813860280613511447975916019347983565246644265613823864797280967742688287429814374363827026631497538976799950503518528395782313816470699732241151384115050477049861841528076969790195461366639870140588756528218097781007545085089444578834402953923799079925346337932938693620843432863044128738985724653725683843103314192470007930692786249973244630799493030226059925819139542967068408989257522987233862115609667808749459142969760025100882202111875724472191358061514970329359792612890002022193570121885667622229172312539703689050442211648458839830652107473501542010547880540649821733441564141698074013016292951012067708114550247802072461931895874002622551087465567788732737658400264173364904432460692579245502328393319637537528635452705122538312883126608735351624061236358206989208947507694113543749377135320455409950969746088497450878918127598598722643798254657822954986689036996261805449251547578821200299989589435989126969184924670487156766538067835263287897588365082829543365461601049473272877731394458870841940362710908793778807537247253220111657538703133990153835510399440079214525279031864764894629187531276586550084771944703451178546180065537206150145749587146149199699316444510749252503479708332768654229943659510727958854771503377733003147365645823573957689006386102305624979579809162298104261662950343728244662500684971009276920750753874626300656103859971525197423538140229454130539739785072544755094385755411462176704120500862433037539319716709016048499451469672283410310068924551210231382622106613567966734914746696557306212462902041437105589040576035087847898502490109911196345039121196488751695197656008494180376982082746472873784928564132125094728238553018540505272618663426982373374877209457108998069214009115185486222854838787211797390142042763721842605403717091368533714752841475377670600987568663874307979333905063798510774143802778879089095209224879800757157268236263309575141834477764546139664714168599908648077592497821358499992290570568603273803358821916020725118419387073622673626036119626466058189769864911137940788600177996140813567004998034070065964977836757812235896575344079811556447436251621694549489212990875441005342499146385394141609108331516232729435027731651983919002225144050610142827439241913119541086970203887553275563377789557980401240084072889533564815734599370497340624868550890768843112072560361481422842270346126967863224870925045629725862096744024666131569353075720936818436294373311675800631042876600894448560419017886082282968340900427071064464808706100377250979520580773760307199884012118718804967568824614628608721174881111913907076780671910247523299991192148974188301969929652034439571643518889419922000088184652747081359099039858871256611518117851205279362793405133169321360396052505525056259516081049952832754676783371289592740287156560455191835221165857120142728638408826191718947914280953566609005448624139740057906023155067135081819102486117934896715439208392485942274413930359720064745808859981454891725391660406374467241820880464850464945524460641423003964659023226547183559285807705385133066598963484051710092325019877913112926779835959666424967788408247006772224977360781736822485815038095012450587134525733450488433171573515654251810100422008511751615461504786343826938050058622405332456069160864871610510595228978409956461314429753549051791170403808498295714419411637164314040047419154698530791633807589023566518429949552300855373886965726363953826491098037254680947116289823311284980075010029325762215047646503615807436934710837697683433365517214456660454041930784996768147858265181243914740608541017040607178811173253408866139916533480331059526496678151441203402035190313075849074980446345868883832758671505240617512747010733604801723891754877304457051112305691815411810160168320407007348098664376446400649909829085378422524932860154001322517125263770309099030903718774941540004503063300450798599995656711586175914093170823967130272556026018136966705309019775447283918117494579778131972117374508303819320593545741720168369020650165699245617002754722122801628518324127312648723019797317393495443066273213826498741292103357098891752049960640764034945451951444991524868322581191401545992185959350314879847893223050674329133727693790672156333624951398378969161371005444942649342057064016491987592861605927936226339855421538471686455248512626857527931243653320455232480160840771356669812060111527942113538717463213725001809439607473482650288162572579493623097396438197811849843401104086827455581292231055494867940086574189010985433666528535594392880365604692749953616141591186600083522414593466976824331501121336712516641690929553886479578446773324212291371821461680896517907318338652501210798524098813978664586965778713272672192892973590470778702242142266937787277478219023751006534878695887326850053680730753843213180882118001076774247082861010575805629332230809916741589194665399665071725474305166794973098231874405996826266189065316095999905297484229141709311562558844018004665835342325776381268146868699216864337919884047207410991614621006501262000513940812813671350897284808964198160921133526358644914496585935030836294181643239654484745218513130324500998529553306955327906277502047918392688844510662795556169732074463950089666697738768480746015854963411339983445164598417086292832366138543081958830510314127239557343886061114860570104490149242694152924298657205927975231869455183751168896938078082241927036376598964697373806942600007281085753462688150569216965827258398367719904213734864409387449742641853797897525349331114668534514717915718983979878767501625803785774815819103359636913412913971099151454678700636599469337325878253062868068273964696457455863734013799333477918251474897642425969581342373854496735402837976974446545417961380774802127384054311703350810675020598269452744667789866586753600485864072233608392137133206756116845588745362282084790038186928249572848748651500661570197722976474402255157832512495311328452033424850178978787918680777435131144720472887938644391468098338839415954066490181584733555471727761932897017408161275006169314650907845904093178002627483658494739277511900916232722734332527056404224811616485027502716157678201958191735912714478039247896243145112050500753879767677822669854384199871712140489306953736085665548803760415409072852207113013028027413217108013032099215058839182895550003208770154347126366831686032161881722608468226565133357944803617418423993876828750382807098695929376456473482991763590849307802835297326783861080236062454650574897398472025654199140624047730328428989284353721446927025857618666451726961263074833467780664249800298667247108765207332498911875027768001179614179026565591180478909882967397377447090507745168499633775895668943505579642484289269385028407133354225075911763482698799817721984033932524958229905863021773925340369256033569128778960294149140936467627448583522356140873340509707302677205257964274331993627598978447233081947484446937029245246649843136660091205952251293443374908753809092609071213264024609468977764303449527185729443084854731935351166314157481989245428825002346231095313157087898755634828215277598899519509205563827520929445800296651487435267394301421144630390796378436648356840713680396212101200269829421875031368985537111620804960462317393469028335071295211036128599691721924592472150376253445173396939538573532455204587069345063447557339429103426147376273459206485545693304097584144706223749080207990270918962346963995412987233274975067588656743516684009688196371323452642545372023446348497329431194533803859930405324260875309395834319277032848752830242788796693158610459923806065358523483676186049063784347384040333027029241848625332943421470309794898980464773362991785603710939227435232552600440956981954565163930346124229855423910463640901449257747981366564999823101417559993273513046585085892125393358852400164268262815135065334121548821106433431697188882294470710493352083648968050508175488851217512492713449781241521441879722135407574986618870449498118440954219589429192114976986815950138644861964267316241206294566481635769601523894395438617527505648064826194863535583973097822464531355481412731761836452334324762735180269189677448925863905043670904506529525129040322331388304175322593484798503586099976612438475971323314613924928611824939478691518049875069526486932404825909294486819523357515990384973375326114966027568856324253381179189819529643453010259850269926100437237028750223153652814802754910124375328166594461476039040665719497110152215311046240625627487717262494588930856796403412423588248873660504735709268342917900207999156776589241736023882981208856128877628813669020641736918208545871850113092999435642366263374931112548534521135573977815806139275586928715159252809381046304984803931184185700229965398015551631518582737292278286206927419292534018895417486166994701285942285708267215550165639281240323209374233416600089876096659435295471433190264173117788816573105943218981507908486717749961883827412313741268154328364855381750894049023745843410579686815366620003947816300330850865271736427426972128904437213633996052838888509838678440141473278964453629108834101189706311151379280424706626700422933596092224259704695147941914030887431084802002735897623108792492861233174836480162352905875225605885027499377715978411838429885241483158514054486407574748749271933560696572776370893054190735944913310466674753140294785840296302292940497027586780355194301252519035820949857627101664999161018420538903548883983905768328382088356183269095191502562083336934604689446480599570043969260153048343645754562066841352250079014174303053966976543482837555638251189411288153561421536432905312655044748118206104333057449864579936084066038637062039625326607485985664573959292597469420879423896979545206933514006272098990554176854296680164577085722892211469486030390926814368210293416869967511884365899974261497306737889561664820393171531702425868464437289272569513429221157959958901605810496073710875204097704942848807622204327224850601932936565880598676275218245567988436397719184076649744422878364453451168322594101602780250785748912313897318468979051236898690449573329058075925198094735872810455096872713965420798547773972529220222544856717320397535923343054419754544497371183035208867265532149171374908534299570350830638782916386299803114643449145334624843443954378987559558184574797662369827428082576258069448456004716948284237762733182779808615941546067790802161540826799527584066188659942517686899368770502918211040550388674769022089234854139123678683018721612240549245909418006707107022936256372677034234052591355609691406626682305748926551259118964574385170398835720777959323065215037106501556806197380099974437588883322118287347384855538394713903038887642214310418931265542036743255855522223433095754098237650666876078012181450018547391895785000833675596501039687423347971570778268184192787241607506256190931987680140599985532477796357700222977272677696498283711930217797684885899029963071263155585598173732734137787632070339769176101777796493075523427500896709925772229071089552935750880961994923998106550780285823257597536918489633528468567106858523745425943425208162329921589041476474816620077955133082904501516643547300792962905369537866488286420562664898133866709595171549837446629374117288228110473522058507677514541882800036012893144735073470913226257763013137853966426077575350652325525299353959333967348005124693198000158247748327312859786010021972844758442840744286101139370967938209123261720132853815714800145642984515520559978036363664391013453557942949693680260212301002916914816902772498521531492057325388093083518372254738747899936539000825824683337071571483737993511025722407192195707626536538463469958614151363247149837375007494068661370318920461830125162350140943476763980858267726200545923828572445028468784474816768424249121627290487805081433069678604665473172517616860987052253766556765395042074380825650588459277589628500424334394120470481021897428601121261371174889717980931286063813448965605743999999426456798112409926308888743010832814666751778956442799466438398987534885619674783138243150815392419406162164533402734009792149468150778591299008360860625205826259679844797684894315706571018405601645635295647601896944110340922911471784366383600292481326200216461826674391911154181365642380438414388120113427300998607979504097220228919486909774327868392883450398228047271984036902596344085402487639980834241893677165328468003812498688315538538845378823547435859978065618848495601008305561938610707932518228665195237979386234664181707159382983572976942645926475551788449285810000522789987773107809179693424011331618379583153830987189435183370758828148874947558948829624394892022429059039853214251810262458962287394630011217613804348480795098207504090533348743633640613518658758372453804750200327664176730355887122836706584299493476082552953925205915309891942867001390802300646539731115086987697974785003949229164196990999310440655859031387565777526865604730342159610895746906712625258258795597081483710462343796894905791810883019026805567076686618912429322809902978013968373135456203581504139499124245374533310480209533678897161541380876542287212676311846864050330624538030463647283473668019097592247075877336857987651351649129887522253125711508398569558941531082919984931602380217020844840598599799265575726408963661043555395143538053922376719608960871221679922815132992251693075836657137143288090109820655942637587925858896741430599475289401579095141056115783821179549041380226319517120409106863198986967304277394930385518319531042633894218302689132387003424704609923427956022972244445377311938674719741803649301896175536758623088034860868614657357251836201541175006507421486366479141038735788117770116439157706803589454150270074564934733441162757399067872387661043976690323303670629995351358594435724702973332746522587320036848563887220590611881540335230588431767945994317806405250845066833525599468962725494031468270923431330827292281679006918141459973272139111933866307762206101992920558850426694814030412747080211955777553119697238719303593562870478460604837444927224183292264260359534060509208525170746410091279079366653316794494270694497631955738160537679403989421764598610564596310155378377057807796942172944437613112004128895233594384167825142839969633255618704575342002867522030731964556310003197645601096221137575354333086784923512690787090672714079343416272586669193344310432551568000638985983112108429192128435992874051338878531324699749739362204753144216361216386746338189386707791105437800632292668436559576303023420985275380738679408973615916839442250684891832630839723655357696680407308708142172691446727010832124395340613837926552134355632524496039586817545151444415059726841875018846272587791831454377292947939506526600062860211786058897326724713789541158757154332858728500315471762805388299521056213810876451909732695538984780924076446429310910632170073546506773759993938340965156029401929573048216094241614161282663361841590744857657756407546977896571167762190021356467262002848499949066491632739123440412090659023846028870956674468026751366780543457106244729833462745620577502463681066879442482315058207891850458562259431197575028608177179249991518076342076427173720945963616244070819441971524102798524029418683763981293233560437099569297178515379580336619703314972280384866087475381076070515904882984859591887156775345028736894819096113073384585340822635750560347600938979602925255397203067612065440703517251870893210800329849260403380265281480516759677026924589807803281752829777550991058052491479177124615706416192864582604085000957619874648217010834512082910438872648289354399105985514902986832013810814360532123793734970542506668291476065399585350452212126888598729270565918326438725218713260860576139809678691425691875308314022914400171550619511200470199233583707439289973079169252124036239887785068576842313897296601132938840858641175671415667515835715713290093880788432780185010413884781611288525394435081965610802548554592488238974492979595641933665498414206835868220726293972518517086881809430236052363224953893987637767171855452981617831045794836097113279451240168794809244901435972976321134832723400765932366051420604193014648233652843464874014820011977436416881865779367904050659675468682995028803598231545153103351237769144317141863271108792544119862936374243705378092442461523040608829567765437861540585795577092519165713357188123875243462169088851347686413457889712625967280507132870114914761959531527872243366004943874923227541541604773993352782646346389586899372996083690121300198345444726790522986373754910085893919603147876806939440065614283050994866648925396523266510411464025312854409082074468728919194432018714859019959835880288716849737377498923396418467828766517881111477730213949605044408370679029079384615238737518721418553311848737130752619765712375001126742521312932446267668503270029216745588844934664156445538772054582622016788798521616479568263484324943229339694363721179643379317563104210732031358165372420250991927783076851798897503787289769964625666208223471899480608147009988309999681475312182247634973843456763542923082421524401470445696823524393573159510299498899314869368981167596082058530557941607562255713135700670422097204605385568428102406263617372707589909946759531156699659681348466240832168418821444236994512309424283957995849289107919302135395517854507442173711163174547422293571276098678419220779420550211029891629416277107242498184485356948334334001556019077505673423436083353269092964423232106728324691465211682057157068879005710886914863019378742081501824785397513275871375575199775564412688919452349836785268463969278880667380423783579581705814392042397779434142110657162775102027207839536646448838603201408374894359313763252815190440225788673162108630916431747715277761304826001525018540375051569334791881202328358762510928329586304710660204995072965413264875786455905634146277536973267784842276398735660348164344054590252974779421429122228301863304012151474808232773211366001325498721138273529694077942679716340017888364787648979688912332093083787185767409114492879104298771969287311744268692591870886375803865247118986844392697601930368079727695152388051815946800398067613213834147949657708448180344143976586033067298482800277172257490754300546385949727281663506344008090418782509857033253506200549017287866872110438239781134580526645703505015844015325579482188127469808596971954872516683586867078079285269318462076082573478560120025425738218939737190942191093052693792274028798816124709599316573723809892454824005930607966499384137490966981120199303522770510585085830275528422124207625748021201821220370426290675276900845432248952727379598432736053717714126686296456692633029026007926653377324305843812700259079903841435296695515901222894325428699988467029344545311231606405260832146435651093748048141153568626456669938246112623556400535852721990246065700074920866431502074828473011793996138139133813805022067234999507497563574290112689641590822109009517333023032564391365335462665039190558924187146994502109252935860020689161147151918191692826917652000134005110392002980798694764633263954413715260023928635769138916626225588826656541739771230053867938117749192479139534789652511303087033835998929696111057922823455403288318922437179592456409596136906464078025522223414681756958867678409796438688782199226195436605084748651333401806760384245417210125394488157965724455802921681004107736178021120604677876664391456296225010964195862293925526916161995163434468730825293648417895910948560007830262414845466819210589446502588814843983784183539227843831749445358674506981778036996231796643326709575693926263597868868528638376158964421624456081526095672887908565166999502107838468141768702208875990203958992864824461169261532617944115418795189820100222044661585955096564374943744840055021219249847203287354075801111659436948666100311226443832280526163647573672777777354251395649338163686128386229812804086100887540375711290069727783930911038037796017689546507297453382282635803481763342905533884569156625320569378672315363247774684601842724378702231735527346072392398376744357408559429129227159826865474265015184878145493467465387331772633735228733924299041253367613396354521274976825848780813753758363064459586115794546793915307316904542847951146993021721231013880582107443586338056992045201534375558897210143228196399311043697710740828732360155236739468335786382985384917416634894231336789103878954555926281812598142368604717175252442928046893996713752374730695715158207769917467686563608400851143199947331653386070474085126779518834458485987666070031869196981082933707229985814032295966954991192613323656424905414554785046313547861298443796174993054196238804109100042982442295100269136449022902968694817502013447684515424890025940393807868934789527316640185941702458745700088731684095882429590895426567074498746684397935673549434140034746513975675425555957343196261559175119246146005777307185097438907168849034617265410197419322476136529849064400757563282453888418362829099122008684140227211892236700081876052557464258975080460828188965276437794861215274609333353151919160858582906608684849164401252482351797450103221878992412791650963106439466645307628279689723315672219184927493604993766051261241664598564505278212403223885981273612469990818711750235581062115746829839590169321542446383635425295883100576871629802819557525890063641321320752544671122139417310389064443790952846112215058488515946147276734568071832917077461025835491194618324946766568794130623344570392882136537153929229839106625836458981111327470480957522186981562011399239900459192296786065221886864602438333080259469705675419923574801875081422756082960674459369172525336782102053004957479177274909298401551946585785550368505009193124357468216135180350258972200120673254040891882792133024004902359293590614807043743320631065784809198862777053425991876506192136886859152454320698985658362143362288193546862294276598295931266911781006146312170567296359439463452028335129485448202684812856827703083451252159558552927360095049177829335951662958194150995635403555498024167735028195508133145570266428262719699988722620235357622490996395831037229768335898396872389705753282770116930216898896512209887909592404794078290918293520010775222881596046604616353280897018642318734206709406043870965314319147338395581873893862297383374312381366507325782020975938221360377657483705159468157239550558241809031472643831503939376286978931671310022078939798343819972215941104847008599255907987191574961708082820290206603956724399060787548937576952243405571070573438314298746089681449975297936748520283898904779617791949386081342595100953077060601500879053929692178042137415362613436107297815877366397159443818016642701555620469516966163299252134390004118036484130550400442148795318988321622734643423098539307158097212121622634572966099676346422512693174729431568046183110241174901820675474855827145069267208558823281729476414374582247694900316759839649918401648396584381942141556050840805014830835072775085272736778222795488793529394271633254560612976458903646343340150572758158072640955966279282663681777231417908628118597421784336517359926880903130493214816680753802749069974656163226196238275962375940260793544026163442798227015194604175691607726733291849105389605094717913333599977035995417404868250456863292750312834095683763543687459276498918413929715777135363905205913381581131434033201059910339304669151672166365466373030877223240718424346367351678983053148191811630945772364476520641443304232392737117752349298070536139395809995369255872913084171874045175775319211106178873916041028360020332165678196592380435093396381255128993254430649938581707114762741166988218671846425599568023172181144086390141981970817987540366292670999508466896585239987624481161638343189123075809286425738044714660847089128949130069131081480203094343996044489357512361234867152024981514295184284582763607542197285086349353930044575236838123682547455782147024269077204784549401109553505454589212180980823683311120507924976070526653319523628378657722490653357085648855477213105802512302731727303224575196438856863635077549385059316178581080964072335776689683255545601495683026253403889828747433800133590361707693551293327645051935310578201049524062322744886416764791664582266290177127288137092762819016112488372710179507488497074209319780396291958574824017442905622799256885964541973779152905648288808598089392534098536576039043533858899919434945985580146263635141985244971853204956309885192492941774694937244122265068648591042932981551219393752649409124419853287913444718220341718307246399619999678090906224056214108068471654393416819229436430654052393542207540732222960250213190422050296880003515284041258109883927877952472502257477408384460850970307870920148964311522721386693365932349893234784070913086877908833050236800812988608254810838057959239561165075526792859873831120343379072731532292628145824292094912847107643632655509321441076064477037102918092564520866053939283813171737192987268920150849116171683493719520868879069533048469578565045231423982723976562246139322154897057356686404082906750297149575851252485745469949506607886386928296519625523284390706366733000234043900012458718851593487232924080574261743125178499047430646968021169882768112192556809719903491583639773561939242241106565686662572764114251360550210103033469021676998330491322374854176050273741060235303502976981855200501292810504821628268810246113785797094042514452895429406986212856989550569262469769902537354582052065822634036768856801042828785365640771262777743673144213178690577183862922271292900915087283974213584957186555493619291700977454887378591389864105517590819359448780010218561447765359479282350025120564402253398446732825793628013631154718324385074022919895360867995592024827336624692843120911461490515779938542102203587275067914503908326831016879271517438924743621017094624695377620240884940404215718144789059588382513577081873727506086521837813131561876821327781652217530701035819459298670990927601885653476666917722217515174794302496492889326984424216843632172529027599573326341203600103777268578458406894951005287610867294005843273717076167771145196623425681006426831391201521830557097951172194193508727853281951326195119845099537495417266213192670881730047179897862521014018541183355915260753128524684498803801186133981336319169881004963937727957340523338672833785631166257118546385058921942010822217950308548831985797947387827877969366358138245322360871592424042175796174981981578528722498601459085150282596651785370332230016067638808664774894193016868327984109375519382165750316176881104401821194041584950826956376030771510705593579136943034505477991971440111550228825147418644911111526266475581076220269048986767442133599465474545459336203602633469262665212211764656926033570749079335976352275935514204366163511243615278253535092898037250970984728991162198603306642653846334577314199398011288749205495043363659575507315188474515275550860833653203074529274882459800870909238798778317535357228193282227001206488028956315613062220234642549266176815131572270512616594373562764641541965198205856486372714828184113111365718846101464889367559839286551925987824762596623283002469199884232162188284196082008203083578450750235050159098637673500950279153495845660357161317136559453390632535535310257385569794557615434334645673937126148683989695506015060048698611005203532114964475766723062445681551436785205383076293671631385413585730626551826832665074952675987832426698301295768672904044618455029347630410643105005940785993189930807886273830254769528200140296463506454055080939435852113057329583883131966880410268718917972430651484789984743009543559579631247859798318726526710014763123144349364445714489390988844036713344249668280443576994909893048855025324318976639886664035709808631202810108393807230015176419850264541072125820813318581205182687673149688451058524361916090041318231941322558349596407909174953315085238988358488665357235813982504580029357133598858982499001882395184707571643856828841428274182899144326202083485174288117076406176996562478135485382971739894812020357045106689414436349890966578720248123428333394109911055169108102931514643332868903516233266113483080063920622871424148363426344603615443260938174675856318840398527822171478972130708383152099227753849465413653128736887803716592618725483919614946792382803463807995110133065741187101322796585820617152170189194266302405079682382951262540527597352154413734810445663198692902791745839856659836185445567546100874492967637420355149014685012591655232957853578703429461056408182595925611850721723760624647288482201947443487174260825832587822987648767410465294544025035532568444701080871638897131792938677346561064292921726085088354182198084340857430261265859775821150483018691403680606451871764533871417280259979792675338987229709705561471882114624194339547610885166190287669018089086080417443357938930101408317329351169357628606505914165193822964053631657421189514226706523362743687452024835806549292463776007775664554791937096556842671369815722026210035911535221471406710919315658478233177983611939441430404039449163212616775687872246248138918269434617924693213406943560227649011230212404700423080865182821081752102457959844734835432498992215728830121586738805938605574488526521552078531470117530899324803021692900562470277537711884937784104152987392633289171998201179863667497286979143506807343174332103410775929055156241552723596927410125497698568751491969976860090034217934135868447914049814446178584142980654154414763634707151045946245432639914403703876404799621500046768628312276332863177343355882873658695307431678330445559667373343819500504733736839396471044710240325297753296080000764592644087768997742111828011480578880876475702600231817974246485071295472837384273285958547713188657294385052700597796578271716256569815176765266621672956056377189597495050448668078449710703855360773161160780031329647888122100544994149247554406428493720212064681786364789515255317729084539192898828155633273302397877668633559347057109794681963448387193451409904603211815180931805101027692152497066691835772599629290627433340761914653100626651214456970181621449272232683939960946919764832955952372120725732468652795160419947016280793155287132462272289447454056896229054140464489897742180774890884407290416652191655355735357500342432036677045364589001252127676159154462874871356746295732506644323832481405608778204971433937981418543343334969941008947985217341129862458309543625481221558037738807474124099493349642444003772400088216381925167572473108018675880967666001882480756203851263599878239964514603090200216890305629984627914586568935681852658965342657037244532871175972031652510820110945685908297634817899140950574674721949656508243788420627028810400630408606028576341362395683048019916948904403877524353480848676559948028592869521836418615471618445648851802618521129128489170685264578415682621331740551230628790792135307386986321002271301218981493834940200465776146082123409755077260668232749616640161600493508440753207414329792895008934762286917172557553708282059105707562593783914415440587205781990827783180243634336044211491429430776540308090969447201924649248307422626425781767155113429980042493556721687528164284872732504734771328382045974626158318300676436063510303553158306285886180277972896710004011821216527604905366468718822699566475195459718345894173773988096126261619458289393878329404692554511884168660657464674222097106873612304300706580772086248261649316826081926814551855259518068409974951330515884697000301543182299636114202938806120446493076107809282401179393207364859301353663979137489686354606845655380362289007022621448243892591588261384356079427555423901735145505491799725846046138923709500105920584037612639574041831022139039842763337908608827299134227461099308387768204783296126656980756379850012654676282273301143239895145765858964313869922885587036311376229199181931215800292763559667465899520503467640699761584435863223640044503006249709412175573150804019751031800503476162156683065255499599897284093307592054093108517982783495379035564062685233317022323833812385567610097731613367012109980613643527434651920533811800610127625468736767796379331485174543354324755871523106842420257412307951807972330541160943646724361772304089315506403693121535412174553463813064234891769495713165374771719760734761001621482839749777882371837006296515620785263527308501196884494336100627713900633579842248775311921845310115981070626607604261313771372746466380564771698530289211142049150435785050519271012001871135871682957900034485814602348891641883404376555327143184426727551529518863573156045685094234650148022269097503389373827780953323233702251030916715259646195013033426854966370358197962657083205398455310572783415446797477420277343910998567774264180769848811269335505966383099855686705110898911987250195152538300990756047661190962201036834138877933293513310399422390533219947051518252565700603960520593947459304628704883477897537610185531295852162835815981575573510192362133284612720810589662446180447584614631566987094519500798768409084638758026510817034411921826828746185437854107920557245437114457671521321319237539386734234471446650396736343626288778930429501075153844499659867025414417318552669766467867385005249048005864364438998015758942867560805428954639394795175601211702619650018945320684279946899209258292117136595192149706843173006374262946613791175925015224513283470732834879523341592828163219854754835584371341338268349612598444021046566743661896737072688839480367194394948490095972990222146097823657404749606736362815008689532883147127519491842550723340524443948523385081457998656033416463408284479252942827907426063170633724441432890307407377394391213618624282843755523432186508073524341538096495680010172080519310032616304828460023413418973670156053608371763447141600292679751350860732446677361578099311165489197534693528956799273874871031882278430661246972220028487968767028251368383629479610251462763126795462394270865243562880322717997114330855130173308166956114786439562165504926821848239714976469174111393394742258829388793385176380782762795008798386998418675450122004652740361377431209844282702538397034984203186577409720235741548380376115001901403383917569540937610890882871574921661406325101676750179317179910197860955341164749081088482587451392898913559573091274012955671853707777187169029824862035680124769462459904137610059496793828937748916370886474061189501991343755175116621911581171512197204030477796199363004023949659801032618480446411338209255999579252269920157670776616110935661679549248874332285271936694342503881413655564824302504561312529938648132783303669101558320035829523142730980043131031575730142035494117683581779508434475752192518182230917290484995697242923484930272257313367049050555932102511777944198908794798841073796664583109884548518913748537368096455240468172885458651177741096677014027225220364736780143940928870555011905544297073073099226623692534152713514507164164833370741993653678878168615108924556416123070310907394441080294538653899806935848499298873931735654300057789977953971880443075726348928328739803916722705667741862663641157417466670519688394348607638741226259954847027493095471646395447393425294066644022974052250722562130762486294372154617039478463173408913935673856223396838848086006474795679410777659704830966891130870524888500067882901477151947090808825650161016790362311186295436122783917767138885912989008246324865347756846840308296566614095108873571993482220922643198212292339485369806147054845809933851665763155720600779372957893801233621920453609684540725433764822811594886621296178754297527215469133382207516197774130184809660019122043016471548056299786983132875592970614835566952312571604968480061579458845872867526704087973229409350283939113687442141054675129383071944021118750934075636041781482017309770176653967073685395590152643107466969821992870000942794841434246227748882448586616033159274686002308269003308340280731665771330070331241813036784440206204766931982537576110351142361682880663165014842300408896089630429665880020697377801598362964081989088065262132585790271397255439573559881071990547157522912252126151378004826344105112734941730834162962077796008497624866201839356225261804500610078173477961126305673792717410144604408308283170744484081793413418213036315360286349854259761710194724949752716286174738285341223996882404636885397974568511404178742489017796916419463766970953412634106521620723914231782548081881756528651034297442044035826372874216975798226714807533539747693740196473359140912576592538049594146619114850444844567768825175446226377899791078534568935976144255548985731779868431513751608056001818633612130126781708331784985941721432794396458133391381599520243759260497491824718188727577092103811817637025252952559151236261641500491396113960467898223974200502296996616750833411086053052107031054004760338687536820561590645147534448481714659489934922934951759624758462279711190766711674167059667160883213537889149499032389895613853900870809036503371365069849562388590423927041520546696382533982136000802238316524306441264970437379924044094657618294816435766739571235057669797966034937763056311874125540565501053181335706126744230107526042155841512709678399668225036261438720895803711688666102748381540129021755811344046669934864936704276715952874902313921484803639317254373878307114985786707606725200959304127899310954128992040486982197275867096121754031328591477615429283710269748484106494667658498044940635173524429306037148678889761120229380768297460441179683633000199891875539406148013558185376620436180327500395491198397675116743066281775677914839978720993725679910575414796572516054945975599549986146851049387292995402930139033557645313872662361919574929360455729750301850901915475243302800571250586337748604326344022249973894340296614028404094469496978469732672230446226137971362482753201030224417203867720596178425590940282100595495566757716559087783777599626215577914477670732082875650028994927967167332327388888942655627821172352985358775458241257182853371758765518638367847032556982994791672576996894171250112741422109262350234940217793344993291770202737383559668347002238887373619178194565028256402999041351448942071894309652377768080627682019046626830593292157277673404578703166866735674627253135539402179679292093675723790460302013358701008846271039633868612786295783394699154517629964883797079441984617577186093560853060067565114300438017144042645807613129956383541772968654423857376046085581319357238048904489162401532447795867730867901627677105864664205151364482167883729086370440402907779207829527951262146237970858877020841644467686095887596614726265063973676925881683534442143400835081396414629742338308554840742719108157398506358534110287886045611800864250929927586886790836240612023113926789448497710935426872944157745186805411009536763108636095689858661861109012738998330610157519736407659916196281363855440337814280749640226276467841915484004890753080417152044578661276801921687506587015755905997152452252755617713895838954122231261256488113077823012594313761162633367229118391870309632590531280953056911294094824786364132182490306740837541362586230361548921767983613380219329963517840305705685738091432909619116355768467901644008364409800737129910165072803047708958080860984552160212796177647487018784693716243202394603373672935693009484618792912500855589280204847138642387375814718108291692493180668758505852351003321196601499360685016762781813882841449628115485299786420283139898490333239624797086890617753789276108266160967975513426658315308162976307477805248056862738084539602441054524260620936539722335628205889424482979432180970744140887924231733686905112630128551681784904238726692722454810070604172828210385468022752397127349392918564283130374218422076732040656890583807715330818830242004604280666281533378575013566809656207904272175689542730523391588743341676411245175885173271647091588923121533619876797657852784602131725428658178296466191583748982673884423125394950369008308370100071312782931872016821165060052921838233542827284503503976197910382909382153183097824412355440346712975611270023482229307416665271136756701259889286013300996173785348813737079564972652441436729042306632203980465947636868252926149147553969926165143498390415107165714613826815186318451741041272786931827307382460362897109299232556783504329344892715520630869876717733451896866176423832691387048428121751689719420334568975338297968023642937505445792297690001757036831985356400264435000786859734927726742003910633860906417609695916743624413361588391828741375792494780798428250685112837912599404470516722315360680626861067661196168133445023985299252727249699147743257626459824293429352419718080205146168038053484816115873820488438907075405433462806239860975989587484546301958570106341728803057520566101694018758091966869761535096728025403976682861372761031866726974141274152307709730788835559827767956530794315866691498042552128724723421690354085520661762784057003620664617578662521759998112816092017353399783577078119437142073574273052908881703420104280496004471315131523220989719358621199440161274648898706287583263390273893455872643965697810592645144538138198399330569416316927524134156923570562381759551606214218546616799227954981030512072717539010676308086961855439567676050685060055757533244332292415719403897875808085616159853915105836851003579862086928755531800434204296189501589055438331728028482582362920272700557711897548683539078524055438302262821751059347076337901973701987357591636376613185551294755405223430877809494201770382992087767439349709081291975924636905292061270414593117892914096802648884755160427565863954554434900912988784446940200492563948421758112590029826736421110648399543984103088079027925004000873236383348852321616336655363572234875607240532784952388794635233518433894366909851065772967239660882831107859934172270640372330366726892907963353122934396018083903825960364968972396670504379339833887527100139960444094342224948320854281164828718744232964035152548755425208492865556546297949956397058689134844076856857929469246195586298437584302699823716822219804926123199951119621156997336749684458415164404447547494402651534527494055666187134865306126236155048438373164142532485661010291311620457067344325033896562322875037128306591640152027077181350582698380032953537023893848556906460724555755881530012315180515421710033436217718884748047711211588499437855254503159371183527672805192598072675746644937660105769017657026361129288687101651509040831207571881766209462096682756642467865216885559788602906515924256340741076632458971960332665994564649228365242549297216378441026480063368270272648207617465501176004060033450853147666458472799853279522052059596600387521820834573121759239718690061222753288897812407497852405577281587101138873929983182548101050385718139238429666004504505697802811743444132744100689296806283817676005502497595164766701439867499422737187527928912204314965030847602724027185208460956733626921187594756715633466071713508812928018913874118744114641476684718136752728616045082564965774867005563297522238717129019932746935121790042099182202279533771073179486346464018018421092895888471039036629832910932259457840818315031843995390597756297684058891809049615834266339233799958256732000911133491101858320190429446813545926967383100533858560207004822118567038777978833043370608227551540005925557822413909535214394904064139560419882233290513388366453711238448247101819849086612621576218821613412501635582731233431360468746216181703893503717682655247665633764206746601629352399923231648260005459363191030677073208780689120185779315239830575957058194491809611074781700110542535612508443666864130497972814131831704647890420542975105850716655201460421728370733779191675741356311382635203468203601531031078725024263762258265232332220966880952164580444026394136193554055986337708802353018231356964597366317919027610935788241556090153583982161004653385955333387695328675301256273013781796525380996425840839297697717508717804432934731148771534790000785651447865344211926527446663772555019269592740473383540114768294398722478474365993148115930382585392834231301624633396391318067803265896386766568599065548938510671040017073839056834435969141866878281460799259807058629582407504899288908249239135397273949847181743024629964701559739182998934049975502789322228682135041361336857492429266885801181917748705382114444252704464931745351091525081129951459238030665038089878108438625346769225000079378433380501536442929898942030073485454474302502212507340132426047886488447165513891601660230762778849905339656503289092980512777314796011018698856651703348013000441539822483259703368507540117000038781622709205695125870151357612134322655596514827920547880037232787693889708944560094459784537810292397133626046831113640944094920275812987729243982031530257146456425481195179779161316787186813763395366970805924074876399053539694830968509529268326558201018638373389884998831749833830828605687891502049644415705415266413733807489103982653311337196572443564009216766595394391644593446096933489611038989145384265684654386553934779262972278793387546786580944762814264959670755723912510548612675620549118342728994852608531262525697594221545688897442661191765366830747505427387103788902439231384374207669203253164953726438831028870095121578801777459235124167264939952264752648961641415515459172593713725421707333948795746638440563661180087361874213112653735302255784195799868682610396545037439388910373043692395477202889586756327680214385677514622109037090425320954644934305599202651292060062410559667434556491748760625812608736148406052959334524023691485981762766999197842788299207713794080527904555492704512372882887500855892342689231953119381236074614731678619865688132524723577739760026053357542644442787815361926905520028965667930146861449552886751992989944235711546015881953000772767583651372313107736447080067271812332100672858305868155964918771480859087364862879920672825772970464117484471817477724867576800090435201523301091784517777150230271636289000326494834182756966373616304353163587445920517366485300559522265559143231545544117291646269376148376601259163894924147216671930350500330907681612790175676435243007114587759766868212314302908946643606826211056270491516566302111575895559031018193570832615618058888563240937092454385126444118065628469804061222013182333602146413115066542884993721974854887796946996786394978817942311725193208943449231486220286488750058368933401152882715909507478945119022490376672113119061262977659937697161805671875509297921490420051156690067079468744367939468814997567817403764610708789186086750308901641219171302440730113733761300054681081842979928992875953909812579982841629111604010545966945424597405062461324850426686807794251954561244551130379757675222763295410995481172222309439019561988775566286732647975063082733134340793963066398812250010165837219312979738805690691370456692572409671953229419410207644031171189390073307755588348065260945659768668462201889413582044862349742642067480945799018773089877647818107735269875902096100745076235806770390911051298115147020908427703972492891890166353792641079548039517398967600367277209842441193792941710306307127065999298398167467068035366977651709151308289220377294952408886242396944320379230777667780172267189102846159392140718208036016031664234434725710281856671921190791820963350245498802468372782227105054099062018063474086946099685559433655669814893486719110178953172113768098532402111216981721015171846235879534397982057926303600283211063483793510660293228980745963650184163655045692176037939877916228331406031007329759903728211885058308292633606647276725069211562293901390056238808650558646278470181672843865468376154423362698233987051796235217571286438967762189788486055679072923124861128546494483054538164044315452621190840934270720035251879264042009254435930038900397722136633333270126842619634486216485944257885351781578564285271324580170139773194855774625095158235042474935685469253688403056295545772521065834116640810478704311884684999885770617367360754975116193522384347869714478872133466896783291059781576514696407899250701263443607792519619345931893313416684163511869111584410975878668558514565548748329595635025116401613357410705582087088663328780814011575780169810487578938034120385662965912323853681979688271490249410518419575200757452725094395239140211068100194633042243249138743489679132303326526398395783377234622141461847045843847046057869095750710608314966928847349895427340834925378799505938976090158516420853411009121293499470930267530348486536420699944211738384192776307506108489801928816106872336906905541625125511187892446534711110202544083096747110532888416152714332212552834260212811704432036849865809394889544229418341171017459490564422717923930338518770602339761240348529318183735778228628012565072155626504520457981026445829412609065860022772264067324985341477806023627001202412215065650573533058480040043683869670751739886984998934970095980579184965885561106834494677086571618759932831761023404602773307289447733447322835030934652139222355518743981195727209948099152319746995446582074343910745817084179592209757261528988076524485775443862517832015589889262038410609081192124095595484757015917092641671449831696917198051422930072941831139802102339050157363605280880118899396565997424289756949403856778624775299997382424540034468379384782027961651287657014241857459860695843057784791883970176075992360121190257585143465279391519519993425078876822766301583823033382280254963900267536551786810395215253811649615414155487627505278935171971219191583325357021426948291921958625256134019783716970671987631683052568924368241812469422880956833474200524038074592847737602563314118641550422435255983046565365022269264125791544573671896109542097610688870090263319326606581197801993935105524888693321441377526422602081663128506717203569777230070176206147988671259133722095355757225686166219224860623884594565595020004824590299299340167360046273246353489562151221884992594424115679239446384081904509234518965065647366100236283154953643847900416506308690713725022286819335168071356806097341976760596520815533633861091767715785799445149975011679049401971917606020166566283191081092382686681417467004986915022365592541618576117741682843255404546351898873391434416919198988061382594241726873947528074790683422631434096485376089295910617019269453689980005385348310700759713920067427650108898179630406442924436921545388938797761974648493362841967226192323750140547364678184713793732371922903249122456398672637017305667964988300891327695187926015777071887192370831839529417950194791752085598320879164218194394477353471525748380770575003537694830826386445261012626431861676625280758715422388123525601475966276788986718921058989177693604290431454530240163884844354241537400349837989763402588170937344564921331388810001700784788500680118612043088408842556489967794792733382706716854758367359056554332683196855302887389293487637637344865551989698528630868443961285790044464625721082747786193100210568377912219674677005226868581317124168352504189162130645171194946690246355752625694600420779848174133730186672197673394284635936296480414107437451094973884911092172831080125884073693399349026733616508108592163338814938742099895077217982897245884188196460084497144564449218346069203401265928715831116337979899202803459968869680054313477165982515611829067986014100792284979779797838565090259798209384050915465056853699530062700495473163802679963611211710269989768555233312538159554496170177298868922217691664430001079556349445205263846323219620494824138896797402470544895172758788298826003726652427570196102380845937473161438843154007599804866319135963378693544534481052772811380983444501628842184158845845105178564786844997632049580074333567221462290581320718353481428449286596629473113318946873476511961960847180465545407022707833394193579269216739306316655532383515519423934969038650807528231471812063383303997364330484390948848011636867861362886229549170504565545499579186456341054530069497736477734043599987788540810734565643935219166656235650410535921014649517542870978309364151349827900949185597881568017461370495775527576421329530230785544066972832044752496476103136239449913958058382739655476927011112406869190890082763126833663989105218284451388345956268874437867383873590170523961594773095192366514352023205303227200069737036303906202915063192624688158187058792061960648652319319633463556909734565521711956077394039993871607893439047413916059550106557017577218573267899395466701099039370119239364415324257744450244988106637374829067523448200509496431896291698355367260226506862344327478819309169141007755726097798112228154061011139810135883016139344288606220158766249167912246284925187882350227552183986272924666151025099694778388413033221147006601233965571178774061239737724340682911401294673904817456999429887905878710063040459561843182400578426679433768360961096473668943585933419795691668378020352339239724695446960853269284720549556764766462537005771870258175697431236299272729447336847094356803163724570082255649175308117071671664337566648974536146858985580392321822172626012811085640164950351321423986959197075467164762799164386675891358868620858967050567797587283684616134929796378040785349744609546104205931479471220555700274205587733436899396082293698782604836936978664402557828629349629761717737920928848915553387110301664399392780707075673826255345163027534211185071085334824306561925543118242840787376991289975707791644890664409140574442216557856062358757369052261806414596581399655271424636609817647030798897760386533586354501788397099328649036493240281952869930460897901649003362569844792724728951410522775320289721984650255433151559252275963320892625648394866775292956512390740044831752802861015388307475899783016823049278365426463935579478549287512095138245510929141327859579694994911557392004565055663102523892774571614960557878382993859081775270787609181324783208296305264607995539148887481159491752283100441884197778523483019850678767151972225386360208255679999639070545386471221056790456851833650984592697339109958951884666917056450825186885629717512454647967738910907512386280411769370457594778788551334733370626613373271607100815511619000500332379532532327337645107789167360903239171281345673961835379161944548900867508108860040112174439083616837468607287454018141226871609347523819518179401353090472110261640162520946455603318956518016726960453827451367491912384207790597788960708449273066248517043685171070961214277148643225082566274604458019099274781317246976452388739574464951896626375598507203419929270183116005506238360292123831283310237711362764932588626853351690646933319089504955025184655621757874307646379130381368381970330180192363605971251387422669353307817610636260504180756988549845540246365703066332767190276383970196666126029934493191118765593899545371384406671712869853019317679117955624882496167053857576916809574392490896259427831427153290004102699498822941447132357299561357403104213088031065992330607510609437782000786157344241372147482363890763275945896658278706909011698583964125737731366784601238192104301925358035310225046406133607908458314919516958394684802087759217662646421096214471359570120793973975502163700143294478357144316529776521533299423198072300955591988357475461582301093217995638755210066771662447494293667267250497476901137156191022532830288079238684671871762143447385584467813195823681721376631698232502088895707827197837254333162982400250145729544158386408117983001513597369005329434678349642697185656375340401367974656270909370908877771081106990273236503883079722521287245220130705562117895426635177373510679932488403353198307269572411433074252446461484088109020761250997511153279002998145400336880025413663940358098564059874122094679457066857587950885731268677148627380606022660148925995761867651276945035473335029740545140501575106310096790083684168763762775162487764881291198057114969334778321879472414897914051839639012902125811372991190202563461023145741773562822807461751651164631304172784749480377388582105767331415163237267587775765931415615605222697149153347843758958474489553536648288217124111376000146549666055079363753381833547868066061110366225666538501893009986192347444336277066823172050902168281578672192040950152043917601607592237124755430612764889562616052873819004652075669835480416020191070103403600702547299291712794193428066625230596149729367490458046265558470202218847971220096502435904438521126837406230767337822856386991768262726478129961258968236964429286484038219870324521475170856183654633555805164158769084975243310536123349088000023532950320716683473513592848234613501215256247340194266692307865320283330779128275825258660438403776931495756759989110277428905278107289761444947633876394402995822005017829342603406876637896001921824272877846599271099552316977543280326182042075158969946747778189670425372009140348649631718691358864779384112757480324621766213539118623048263874894039096536983575328826644758522758937639173714536021063727520214149617980070625747530665939361717147976664094249285799055738569435768701922910321514727477483726116244928140499439264944698049104606527539948147769320646077196746305097731229460093075447513391473588734705618524018395562765274436105634755118332491363057920685453761258989806107255992962814391121406935033124072658186511117710755557292594285674991760319351660968071297575373178461266224041560892969253250600895173873278352765068131834806171484197156551737443313365697952516984791464374097399033302243991968828855329126062582267435944263569306692353607592193757428394998086168435331196830582951341190646902129223926215482151562464096422976225894573948581036918281160076002134072836754103354123651247513556161757790400828312103087284702186747451482005706549662507075537728100959037330884509958133298362717642532288790142293404925205637499020664172744802921952989609252061867876094416165562871997258439289112618964774311731909842735091406355691026815523030746550559018451309934155951832930554817301829606620643795715237845086125821397779821592720667848101253278636950919810218036215168255857031175318469287724902937320399761165374559765456316213250033310370942299299783786300992711851448231501607201641166034715264989395937511793632255202432045672377890948786234324384480186617196594951155622973391832851214662712931721491914960709158881835401363138891617809869446927818801733433261261801949000165456943151698088716843733426178416475472671587105140538837199163639499508949212906650592578592685698292155661086334745934912545636041715683123329839844051081923407274955757249987489550794503140220122958651786581791518436396050439491647015395947315827170198655659259015355169471695683314505066323959763031025188238155214249509062671135331910669217434813381044018058698540735903922217462648917268559324607995150752297373338881695707490421359177267476634515107130822597207082751461003657244143534049430401397085213384638355004619328298301792482590924283616916538018639536864963828145577182822196005432091922063120458883643988551959133757658502395581440246253176412200552620840470750179159349781577224296873969145994368678351762795976340795952099590404067368506434057080074685175470325675100743951865513154440768038313676856676345471928632186662493399386638938438412977682555024006499660149343323065181444835364773399786749365311902754357681448620760866138434391089050198288331011369638628904208935980890371936456607431511107028727032695164755568135140778893142355026819059444443080911350976585072648286156558865159346882396016558171925838829159713420262333863173448878304159358925503905281772139910733027975297621617661292390953534034115878670058628540499304683811627138031909638745129568502657590570858129005530213786446557963438346864386732833828366424319682343327238067668243159737868821188913638437305222633360091908874570336582733690596569782488341791290461565126038573447331039926888343772518732603325442069202525958380936068166470920577579051911563189207273325565952258272245770613524859518942203397534483156824229749312574537789794827162736669659676585150510624686977338529970272324647078696231934262214197716240005695100252528531203816691959204451281140693325698729100866394858658127663977661707512770296943703040790740028717918435491137371593630385474332785067558505025838973445546767324171892174676295303377776066128383123441069184211054572138952643055715117783427173450524433522857001430384413797195611328639189112363653016769262901135520256192496529040839409300690813896374944684553171844100142174668025951090662247205189366871834747996064331108402316436912183825080654011833919226896793073139902725306676651473382239620271715128242059848929144531885972106933647114071298356954250667537731686623828281945079167662391549008364924627438344891472472551625717097868756666583545028160987370490514853222535371697070506895262988150900267044692075672309990171434069745218503641617401691281331162468719836417574397480454529512492405833315821324194371325376254093863772440738320139759294559425897738883344806747200580085059167669832959024304364065674125318066890375586080931184244953962480934314811655332999814948425927330227501686697743139864113089983130039828129125167435522003231293108526221217343796640345224186270430300748474959526990275483067774745483428345059603670506215472874732132538616357394748063192248490881818414227079677675154342835000718347591497371584415036082338468745832191288058310311353012829103605849941317416900278175778627959784691866271887481533555569659489559703347894376860806731959335801453084478135821454396112021448499609389701699315554594568372019585675297893269138298248553917578363810586976376476771519742187357393420877244232721730565517380838165688992660734623728467267321083818061615974753077902341530383708179875804280737733496720141878261724222819446468832724759602521906943146571922026605409314173713251365264488958063948747040872446002643135505986511190110355089779339856673300815285710194765012964772536273346501389501434144872433284979172783185926322240323050884782272947771584377626989170965925379088449918515444716860583426739655128343313753830849772610386391271104345295341452306879621099000703830914436766111037622133000354732988465020821411584518607633261400659101993446453678317499301886123444362190949137393284183882297043990675395301678864815810664269106229881744511674468981373086037267683686331119323433291105160064436535868601998315945819830927593002563960905894267093296298627798804954181373597813270179834534926388548495565298893532325539247030750615564764090356229653996681033360297944467761048185421761298001075706825284262175548674279405014346734404463778521648877494387701910948826906872189739505097093699738549538989585003404304074090246896388188646142967762261517883136491868442420888596736707633059910081255051606546089257511726355519840872926235635705562748201568521256297002242957377346341312715701944318648079016072702919996320235050367642268598352589489563405751420353374886223931271732822881654003505954036590651711672057318522215839660630594383403274492761485942901421682483663730295432532381346391938752104630509775828359870901965187353668756105906910210469174443251370801016632707613769333716532486640314304954089164195696875092258132813150164838701213591371095009060510598317829355885199992321186097980154798597191942463928095481480480106500159008591942396131310548703410413366396085700095985917728759878329593471280144449335297323134746328618045580383084721992587184942181248570699873605630642291555177489390785595616783808211259277751993006264707976492129464255079853023812338672735067826283964657558355499358480643910036309556889930404650458603713508258814798199849139149994255188057011284206009409992753188656931328215465210602352847696363907003641201129380937979402295108563899068798108636556312785908381785027260550630727441741327830232468366999117013760510199193572596487113948388882221781549758611893567404945058398119222308309135324825924116210635201197952399562065265728725677024153030901685202034404330072798068381913386691099799262329731219470956484936099025184979604850225089829972254834920116368810526307097568549897851900312757778218690945376896108844990461648023719220426377468040670670902239485040782984286938583782410004327687742942168751393232228301976203832175122252031879149301362449124826577419827002913308009970854289138224877094636023032345643597568432785773602824423016508356179168094089054060717041030899354040050542563477698674179559176486085835324719175108426258527030860974569346198627337124237956555350655069753603916476062669125136622485344808492129818497557171046123136242582048848216487535797592615532670133792231736230609737144124461868867242526638876275826463834145438257960517580839411890165788078001547181871055747732149780437977566372336278269189298861847939056991438298612911060948257464678121249307789584077571031996450174321194707833605366458746053644163237162499002855250391060553313691596365857136698287355151357101756731776925929344721260367996854274622378925922281615548390944253179537034378349032607474548242391419626477211254034287002525175176666887909936328692379310481002315851287063752274396828916033981804814643116236897902304418900286163768125585115987981299392717011053155798641416431774156833114851414233187510995353119375499046592252599536628015181445294779040182709786985710454262038072845764325755199052977492862701080216831174371149437766986165996158789828899644618288874565500952499673170904994842186910939747057929105678253549594020542397413660804782952494082924111136125457837741398227210861779278326621887308681291009160243369504447850281091479156356364490674635695041874562484721458547808007059346324170300440247448482517863107260235317660386819914337063053524696767881234987693553810867691724559020558848651660691197104402512432930075304854775098257039316956181258664158645649337955951772262851706060456806516323795615399144246058793974820984065650352644049963500250014045921750969693452917556707835330493857612911104648334828504687414532559864819949743108843509121783075564077801884271975695252338878867370516794153387086264833786722075835002143902498716701797049208762722393308208209926000630748356656490967527632973287358752713634252286418213037531439791918695253520517188005698107219977273241267211229094346415967112317489419224140025261183166945339232072575201297472883906090195563457635182040954124804946515810939586871036322024524466664684580957138085715622474412432436554548446655152769110529812181853096187976210325814763551631808543003891748729716745373555325743854199980825949675568351448107337378602958914542457068037392382514233759513487068242618988409762602270807569011004772130812377606268780971058506875792016502886218150319421693196143220781451893343751301696081262310242535355002665712760956720880118312441476173208607415776128322196014712536665682349484341461253216043798885518804109032379619994155645737876606607554588580795654352976829158723933439585199737810255961667142082606804025087153662514446534362930518345822286485126757031662961833601060644626447586426264323853138622519874231677346600644229755664921108895678491705848948833611965787836535174489744028825621581159181619015165431238122432902655416016463625641981977786319069397044943595019395501096689856195087931366419665529011205578462493524713785876101006976762665715868765547418093296079178848833659464193476570047527981357939153143365500424460351233295423540229844200692997389606937543842053954233832846730738403806325333712362633060549025505426808179176462574712595149897414876464001430633897271642437851609048831298541460965215218505427439945149606232466395256371380518038641613684028889324164848632716295669780878226343167489372902048379098644984152668569148788292233075954703080403197788758875843792636610437213472846090413352195369294630207799306676734887911315538445699874694171232402190950024999206386249834879328074720421255793353515642040923572678986475603030711194763538892116684180907428578794050090307725620037258686413748284690320340047021693350077175147785078295908389036751556134617166123486362178787358347266137707470435464395424523790444346359274693025072502893302008962010974018599068743192290411774537701677302763964891004104501946166816230398330828672380654866826781217228691621317554842966036283957572850316014325073031069726360670987189265646418520631330594996980567765891920970098938561185959224563504401247468371428137601588656390380042792837496837790568655855484165167719216575672409940968054606161443289840113483271758461912141453797113578780855798006381024218527608137939028815610666289364498374667739458676702029189674862518107128784274318414484365232170656834586786185274035430526130745151102306916350094408850395529674270856105841720453644252871579292842737568208387432513845889768852737567948448997838541950429032713595005174401129668522639893211992142894682054899880206250551710738889350999919237890402577797749867522694004758302715797707484203784960402532339189254874267598949569679217885505692016993460342803474394413686704914078946040312746571385740250681026432775936503794828298965551716042276251110789420122054369740517897347652834583135277622814017346548994546842453523691688863335139892713829817254280042569771031976300445094813101061138861103005732670734508602646902668392642378479523905478064263603183662087220664781257773630680312980999132786280360811539965954313081523768546346244687606312666154464045325958633054771058716929049138030283088512961650477728919242406970365262827971493729148702256854708980088512664379663109308196328526867738085126090473466297798883562952634837955078828852328977342008577121881212389714472274743183683944878280331322765142319483425792458199278968478562086899282623474197574237449907803149950567855166671697856554277070540961268306722986722755384602212013141717528208876323894245158381579877422572480765317289773672892267651289212667854332235506303626266855032964221231950838342591344899575549315771680446606405098350278131697257636361776509521949175427556413921186137217081571126334532545815877782652369435284035179197517960113609929069723899655349921282101994893664723363273208530846744403795771984068159605141218878853210750781346217190836596037913991357000570646122028548116182580947808000014170517611639217168640157084349739285216729118296055275103093706209487144618718343200352436419384617956618828532150126823178742859309376647834340750525350017628898533132247048395391933985865044545541079273051245221131681950864458181744295676779908095715415771258917939848989057852448333343851666246457483412243524786966994554902052624784489025520567390490757714499902296202692019621813361117972690355115423009558471992635699009201711865857876747285905219373430129238374296337913645312292773805831984124446858666474501762377319670080003948835673078925105473153395531899393373625373489477045996827155558488021198563668356212114374803856239421349250208718607415441343833044552015287135836627636094647376286455684858043426184005254690334206260148358986164689686835792303682340631988736458541326355318526350088205044964571987732121359232687181407462298498903861802068106968742285998590589572104784556279814660151680984318214745921343345015811269075189287845850828796616464673777435687226611065182523733193439411496363796416458678139770177045863715314046890759777002568522299333867650829599905957522481920118239050558758695986654263143969964546841835653897480140423304168631328797529823959334597831367026316562488530309574182354186960857116618653504793758120773241872529163682592557753286915380927310456663552539612691734523376133801467839385399466116977804526255472659897953876550405282719321955335229446256615510457638596245825057640016460574219213200498218751795777033956440449470784919503471790549101564054630978004620361563077729790005594953300193968269037420999026741599473392751966084146699246145342032740869662018045988500118183428814927909999292620868116065186401480085162893240154658998389769180025414481869356852911718674575549740572305529572017768284041817282651947786598738597238215027763183606540409262969972771501325076926655969787448442552449585847875396978957587180287379445035897455366459868864675225016129166649269165979689164400342521444357779334823827322925074039799909059423240011824909880772455449862912048708624376856994369536505624847404072477769784471609261680325816254194119624540435915433678592896658687593027086366804369442853697108156951059980023724333314669687176818231856448556775972905964704685430199120710555042568439330628090043759012678436552441428576875297370434113241516920068427199626768863770323135240863212306747111980651088706916183823401751141676896748374438885680763438441416707917279926634252989672124396892518095331574859615465553778384449969730806332186515458662135757306281756517909226151385109970428484843199541162548171717607315154317118622004199095257365834554684576539442382942480967204242934799676970346465766823738919274789613948949890915935042479645259826001104296661865466480716304120701302694455423380542254684739969456001669821867395203599946495436615346834759346235941866666909516212581306643591776733755067856787199720518083603988380541385963433797227247836299087131129455900137647714277641645615459439663895802394017564557057062800506655638400885806492993150083367795036131465275852307338528452154673827521855724437456534400573199500079843010565547982483704942175497371798972015821843476083490448877349120707923785413794656362554563604764578581726487956775877080833501634611350934406120681964722602278387400445645024217360889607584740055251983034644400940233437583987008393064278350858558965848322689493670174349634725208106280876792525172960631336962341141810051151104580796727789357717685152996991109138829314232287533228237421041265242779993602156591013508511879219393380402643235321212239811180438005969470055732696199660146879445459489398013674004604926986278421785671969440609646654904696333073210123078202114897907335551036683983651979831921710092073499177530463308136004046158929513026262829099333428804288737706895818017664378806329165985530526660471286527454575802983732473084086901582874286855049061601962087855961242247882991477152740653262421915355952186785392690944417168705969380290161194162706061485511381079753819648266533161676428122517566304535196282424204640899983213894801189488530770354626824583012667576524584862675945428238555978434001485639732223850256249065583807462255653452491220092876844322664686671703721318390380369035985848462073548643394224484316943999468348240160401152928909425864912186004306086722865877728595338424751598024026955390533217423003213267324024588307607131646698371727413998813056371136881022706128019814718618955166929986032540216258603953372868339990487973732222160504192151172151556277669367438601998104572806351997652751443516823923690567027917696325181148914382377370776625340234604491531308985661440749794148508932370556702320559605030813990995368964366733578995433482413952497968988614801568068613508835926640855239877935476097378349590469514034468645701098424618563339969782238418391467882548273823663704561039666660391583039652903241196272913294946782543636284002320440898070796293765933976398267680951689646057252208716309675820793473577710821390095360800471443624625671037581192112313479604655668773469139760503060235124167269160337456736889265005404102004359174696882185539054438177909462324714221182674753067686142888172277328121624541124618321586950458776656466578822884836045248263866799347936733322083965303455500708238280797407283525767572509326883308846714818148982837368441994044197126383119539772608278562474320770850062052369342167646919619373623024116729233483695440248526675006426025405492337447716740783976760552011551968559788916378231617220819113781688520310321473085383049378258285937687954978826704628135647040990373579956848831139789566443655386910747747311958963063783435578977529150580476121896094480210311746544856694550088200432691009297345852717481888793335083895240371046464078233325466250035442344328208021211565000435687296066584941107048737156836470546177089713556102882357080350974315571934549081000848969541680139383226441539356682347136370598294808460423245004093144816783827586967444633150502544536768570424931555960440122715533653459846987272393311768686319144245594419039567365739693550790048059700496557463657261084648838452096289777379411691966775139577262392054556247989691423499984964530835802937991030652618158439072899809789881570526841364409739676415366795941433750328822494299098654125722632587273533747784145900570434956730661122889560188033095825025602498035821025873164823993314287553510034366505238410958194576800060308753507214855485583460007999717553750827914402488839090585427772682915205789061138960201326971820749521959396386661618365670592221580741344776743291028150637940800001466127104592913331700369897944715875208350824043209777063224170029156975976117901015306088611957716581367436673742150334836035255097662373967463386673855373311340572591864675935294459983469740967613209201491112546982556413187716182767223780622020980969834086201882740900459035967883467857747850487424249205828006417176930176123983569672810019784464707052202168421251610121661660474090251318986424837130772776193452929234934359708655546373033551227033155702650993152428732578831241295396275788917907177706953907823629978812623794929014060783107999311065670835448862134454307092097135606874473491240867081309501258217676088063137233465754954123599041482410678814621733666040442960249240559050833424102633949012360749449293675369317788141497791820063918885996789644653496374087066964322047863024425585623228124828773934999212020858079066706760539639299559001646402612909826514661519517436420680994087529432390364832813755250188010217369812773399483434583156857701940288010734696473429766887975698198139717390727313272987885320616514978166535674650751124958992552379781662026290648436892174416788063414398369861471274597195278627943671640960603517079738273765921016384970186542066669364977591139121736207758387581494613088676701686168503280445031399111254101640653457782162437535672439639841616708334562001412977544205138432285695239690619226118105851488381277446807697024692899321263139790799200818801137068424872837426590081731654093478915458777861419270102640293772577069287368051698559331991271821469879437469972729496850226550987212032625088004371067916094013004966320201483093831735912562464663059899194947768244978560555134943602077832592179421821582430885784978793908893456833842511289824970761141035682943093069539885090894501401976335658899219216693065438107864830500867311292571513635460147816194493419854861945749956834139772687415775349201538276177356488625404819555904784741135711864994603998561737669537254056151069946847598339014897473844639417120636883658502858948659748084513211027976502472008247043778258225068894566191441982686472139230044017058452329849152029726863875870840896963311372809704695763773986446713525311880301068940407333496451589408135286468188470310376919807205037211703360132123455682224322933036464349832655339606410864684422339210075470654847054948458172071065850424565118003987325905213806218067585968488338528587756306075121479447782142361616151905425205727094676381614880432313375656270594832765669646304282362436874512858988554532190261130134470315865362351676899387208037352778996362652249379615760584772804852441248661674716852316487736146222044203537300739678891165731215673036728631430260502393808028699923402263787104559680907211061910420042754701792087216858833530801465761520042750180650780597299932668843748433085303456721769235782711162184620216182774774644418040613461678629597738184237756272488433994549964676597612799278757538227723558722433399215011083383772043292826668927547305779187479876123502979200344829245339533587870425904267332982113839417049307933137461733149307517323558813979196572581639536005350931849142480203345191693279194036567425325804555046618981666347634896088781415907499883343336504123272147445462890882240357741592961623300695116083462518202942176928276484647250802303787902133752433872761794077376636587517889386736753464079808962010552098425324545339385652292117879008887608667073359865298994831609396155928036796877269504519952749315109642170622461679505988222833587808375396987816404888257620669125824646457137700361469900669720853351085378264978208419200233647281573782248270817799213087987566383982747774962434413449227931808442180287377141835798260530945735534923472658911707767972805148403311362938470407480186660481755994093758313794462241221599640585238623099266964312342813740157226393915137470899584016099402150420226477393210627006680293438809234381909350896882429629081210464370835148789381001955898757250544845713197435925716388371516878853016582091322889011491046091329101740895413405775929476815443736526603250931942838196122909046299897372465898975540271172434949333655338365103293905227529685222755455899990900511493864371267879945782284474616686251099355700531249082816549000336591496025113421546405326563710981674540307010902984198864326593387467511444079236164584132973405812966932685587500478461700799004992000131910195297170352481911966304961519924750750774834906498729851823431564414756838698533568588994186886810315438123125701870734041951577358787264250171627939718237912615607166173421904674961663252003790641874178050352818309340069760947182096519097671642480961505832708532504687131913098985700685103749494491988447303331072771969647745249429202744865107970702674074264939727380225909062395098770134683635384578309530787862038802260254395568703269103132618347204808893361967926682068702542436513743504477192285781964173751250959646506829747747259194616619241116273817376319684445029208556022441337618359278715532825865988108152011121858087054728838134167408468203794242817681624111622418180258984628992559767516964575187748472043215146768977752114109196602055625607081857448039953886999708083196663045806206286963545461669533463097334430754678389374799293976012722306904218858868703031820205533434360987949734734807188217027599689211165866718781325126591695452217268229343435565621042145787664039410755804133330748864110974812448431324770989187703249637494628612688284509177524815920051298646783153622573784978722091291950276059369240564057926562015149795239537081161566602040259584517543029564435216832652540132604302966733344090952924050579325104318700238929315433467425633546173313461286575475236215106696810876679602712886842408194012501059805498002558349792486389718976411969191660426416616345002077241307131205872366115469947075796250396676459178735773440936182566004138628568175198834165914076759797119337321405200513232104172259615525441556083422607537089382016562102234248729120712884542252390253338574293457224051161265368016861019680939080015249615029953790148633592349348589212111112569717670056248657753212083661805175879185298664200383543590432036886559076718116995967585782491826573853926870733986337748786780475877427171199484429057205172417731102378799289135789704348632804630462759626901097732031474864268968393630844580002408902592108348363438822810499614482171375696174427813986543284800741153596078992578996280921475793680220286641051635854566844841033923395604419871927029566741728471539728547280364230197490797042499684022705002958168368058608138116244757879095238347369257332388950512816299475503278479892361599360402248754372161585111330671087433400235424588158807654536747471302575929071936682860101403013737030888127223138316218148484854120037363764042499407775887886797069341984817513453954381758615898341168828614222155008032106522148358987504674281546909270383638495564161989279821166142276534353678257615671722820489528759327475672065542710497454957806167878732911211307919755725531226158349547142877331775831320527865447476899143275725472161500580637276294406095979325699717565718518837361183781478350005719719898816811580668712846252554147957309530433219189607010062043236191840739836648596086005490075273062266155740993507622737190141816448907236609730721471366383196736902759062235535095100702864362361769656135968146972988208499774705400461505726237991823742462573326030523517991378457116785302994557354850639543564170969789696511367635926171603948850807247084477505681749275953204943544385087439785653719090113038790276761975092712548890545620604817846724204046508688147036755449822795374052905992988235310480858294530835821799429506460772572273493831551614504388691396843042465793087679496320090042115572218276390292465195572555542744879314828043666309196397706914707895163373267945212933620578993334728442139508417492664355541641699086934732930053053565457201402450620914271658697743235915288464413730324065573444583775503517420778118409712331065161770560755136288734921146375652119244831537860002726342094610678557183783266830165465923111684217717581447997389485346993120051540720155603245230758557076764852559360345565583631335592123376665141526810423260284502777050521730548748905648304624786372503675988199232864039283493739094668359243720151069772318163908967871625521862457655591500124892241498538496574531336171613294761884274342924200446615315133771400046564711022909778097568310530520848770496841948790068681243232313486611255850799582339081571058438406025222739936901124433932028755480248513090391983666198605163398188574147936083169483561418883050537379578776789511437758150130735047065386192116882279372562768082168594977480191604489170219928842242355648282164510581595439859124578364002056427039342465479473405498966400702717563220705265705894687381720181905488643417525104427210068115701474791669610188417514640344485129293194346037098971259394667797818896777637384151804286145588630800604419794228830319014932629852795791747815917672757043287510367810812579524394527239470020666664094011403570287183967355460404115143125959084059359569224729040655616062724227776925011944560820737067272438630520537275843999712306571985985528408386515811156375052036369596783796654237518895290342575459281828678903732573935919412535534041602095440593375361515248860877286100054596768671418705021203619172092682132053441994603151777447514351104892614509953880643998348169185888364178284614364009244755070978589866074495269590994972945216218345357281125087445779438944677061340336615831979480593681001773096403477629397141266289978527769796225590726762635744060900317135195317658324134177216032125930191689663444814531990328634016979806810678311091952062820999697607167998029282665200489650117703394618635557363293624842406153893821269104538862492056524978052110266873136072060807009608474191495718437311888334717586281834693936597435549621685860034795445136480979515830591216672320249175129962230780488585612475768749520047391294697276892800708950503344472227073012565265846339663970654706323159310797424387937237628652284973471007769776703628387252154511132151009654142047247263617188380722985844226826018726874475379270443372552082423519815608811337321880219525115144350017533086882486085932047382807968883493361434895076466980530919536455814404023827370987450584532729076572455238065837581156789580464843450444420717406672328517278022510377998311882900682241443480510545561426426753902133048044926337717210918765094873012158372092488640835336377748898289176136941322759890671233028570190602101847583559820301417896757758176562515026552845159139945618949678475047635151785851086990725784697650984262265164097098092416222293828852584245367207814564669086296094379339357167772663490422927848647776928123025920807039823325168676838568592255060575165470469098341896290035454715074730032956861471135098045207473688489057765668790392942044069659057300467866741255084942334240305528921017741977721865466324358225763577238947506212892742768875916444897998112250139598043661188010527976606072134949982857104516636901576126508252234055469638903563613645526118544579791919307602083134384601335701720168907600805760045962154521163963817342676189442825962595686780688705291072476611220427406066464698630409559186311683045073390885565183440023890822978055680068410753564065372650765133444049677692398169282203850536169187494459677892999742293699582369462840416594052317233052107623277271227688106389692790334448446979332350270052414286830867902752657383408400479034572455319811405473432034125140214515666798040494384854488915844970879538220651773390699027989407846671841387644351786375143365255231494420952718548976466187990802037882829707181385468546916529653519870820839081090982213946728976106199642221237769655437065648505748866442477352294352541588209971521156575360612428431413417569720797392549216439476388541064687835586339169634847458029404599269011517370660597594206613536495698782413389958319678368485809963535768727472266220780627708508357859037059442050828957918889573182781588444559112418389968683749623317912933113149419634263928884844138835606345877870641402168225602037268679948915251632296695324431478779008929132019803918449501198666256617042311953516714556669980186705032872376108110936813874832498580105658315323884737056714628241362338603416160597910366775633932018119658191164647660896709076096166830403311499477954373997031733352141703721342369161598958290376400949363103948891344319884016457421268340677318736694308455780007122078242507599634086110924269988405531789745416080472885987450948333636852329115301503534305005346542689235886166240576854590423066221463272921483988832438462759586142494475345507932751628527099624229854199317049450617941742402345021030632198642358614737712093979696295554250579084386261396445395301007063987946785126657395468573603568037283858445757723428506783714098356494805374197208795530689083880572214027897518960427451319210156407531832117062047276234841402888569135562807191293781103938343783619650775019486033658683649697320260330176344463083694549417265409351612192484670779419539307521367075419803577101090275019585282978909668607011883218408770772439764980418818538518983574885243858174218323961426580216104483764909572632913508784102263410281949540414866091786554623386967995532003927948546895355364232315542079678068749034200280392617620048464214556813672343904777599171604103108304058450393824465901004800006161027738583766807157274892063814328048223315068972634884994117378474192750781797417163708843134386248835638173539307990162871494969760911611992358953590009724806839482242230440336835362272228225382682437796473253703923945974279073124995932787437901348339475742799137638518622729794163383464188639826384808090226251256730140488621945501765375901488110761182685281648053538693938840033404027002709057207779432720717396326466545067894296792161833562466696178637884671710448130794266106931477489144780371343782470491575811219306332553206497616073815301545033238788279102786470855367279659236420467325970926177205329184101384204126929380245434174486407325394982664040856777737652053536409028012764339880660841522263575738796488698439286292931248582111764543006414335754945118947995571295680260955448014844327450088199015502456448047742894119298344852473104508853466177507259916296745463228509141357955858155012042171918033779300432612277641508052185399623203543064503647083276498515285404403335092876665410220624769243747669892315422571219668241674433813903549993030509934034696050150031371027521054431250858549905148653381351773402457054412152843518319780464446433084198715378001017281592279894401506662706310180665677790814044787486645924113612613368692034442068891211107912979817132950856360476285625937518820567687438217551024838672539496211185594036709160681440500295715246062473617298769052307264679266303276261959997928551523815191054935739945228714883189223281422838446061524353386290796281468866828089025232466237800131631688784354020039849084469012971880651656592371648883493841687471977857790161211124669633190387623695830840985491936391765883684064174548612577393631458623476326885852465222756494894102612791349315056211077175941835515934421037503039773564418645937202035132915179668448318383750236905345593425922278820268255547639981151052961764918571836208640749344620046700285658905576199114163749854884766515531644564689978418680440345517922040259251860533460379327001133428680675094357454848290195982266648767879695621309074547531081404468549287130079046439206523192069528859239625179985299258259337839207409451779458682031482369705179160067129623850447395603693040013310101747513989001647466067552232423721255608733955745061097203359873793113538362734189713093588278720254831646579311574521991443312267750056731773176625853296552552630159712705458799317473786656727701179405509304586210811389550397558370554676565928451575706529928433768707921769625744266266317002796534245726175323793441094947727043345129520022083133519479240801607851307250731803306396228623252354069537167651203206107247895693903201966337215433420615215949990956850779305451573421735695635145754833669111208598155299958501008978183652706482754627179703992046156303470834202023306050831956077677714619548420088915639378929621334872102737190196186352778977215005980237160184838679407189483617535556998087388516909727114600062072418558063412354717932355723492756269047570096606279142588465430903635479576307908911717416136905359687043659451717123399715604296371668905622663770413696333277211134777458500143088739837395146174788122386093806518169042139277864927548591986377870847887847216100928779713855417736569160260668223739810181163254701187802671709864071576987191212550442452399201375556564213216329384640275473893294992248452639219684115335237532104907791057381901872565146761336248856725518663108477780637754939996025075779613839129718602100870713549273097610396022884637078787452547306192486462800737437418622695420385967087686529466286736155300486750331497106852064468295309891654559099797072235013940021038496556040704242938175303531455141372326628990982778301021384471355575767363942714053293021768051902011104494442433953800049108775334743804662314815776101232639083551864730555982366276028472444152224715442991746146488645724169496511849163974140848305421727956253180321557624926119342125556416845651310557714698832376693116094616396540733594964173746198303548440357973934064276137707519720235113974802508199341575290832521186681457717324730010656091168156221522759356861971104274266110255333905961709612089196304943121427305430194407565926214482252126585795232152404548069922651547985567018814404071362982778411301231740441802157718803855200963614157689633772751293260976739455802434917876366439042038264129463347029114917326453800998985764875086481596956434220264955449855638203213990629398591790790245104196154311375317858035515742139348547841091636919284218893455746391584329570028190421694052160753456210771715733405579911374921536310965667610286464250507638356252832670741955622346742339944447510384724916980615271067281896282256454987051525255497584053439383124978178616872261589106851792899582325651280566248934186754220133282718284920643807117135454101378217682391770886199528291268609091816970320332836318025755715142270503742557443895777372468263097962401238087530875582579300952086271740043845351508114829430064581396419126940062153378906162380916839583845565949246534148882228831955318396249134287533758229501671051823187278494720268774071490351882780312794604666480589223674759295414254600169442007883420978864982929166586309343290459071222125136598128797254442096634526307740969362839995721018361820858317391654146825716955870772146255083075763190176517459611603310202009403718553383759265661543773964353103552497480834617127659824648401393755513665925486797477532786421476234722063768537579172217969981177393159732783647625696271696934829445904129006833787671940656818043383558384398106049952380940115213861838592597099268136894537157642410916226362824542768276301919354166924427459687520677552251868517855392014094868131247175631817207646624978920390578387031895188151451197712948814695057851910311361181757953730954469036278180464544218471929733611160556876080642428507639916745414556350546893718867148549945067825495043440259190556685836268110402453043129648279324906697443828061169225534571704817752281379071019612879930920429809054804696022296781814496983784976068535800465975233558474051707048795208640657940291679785089243852975457215733427288809406692751440425472475922190704062182909477051653074542583772995970186418364537433260966434297953330162172824129421947627785608352492931312515325089476036153735760458486712324939356363587528822465172140028450863872890335783380463810097571750942231277011991431957729923649418642149074860973150668195054164767370896444169204700084155237434058646135861413897680835505002352389629657749978275368790224688542603790688833962513764539456949321785860035464537735085726027726041591482550273775625506461771783702960974818960807870162976739851480750444349647912514978004293390980353461044893116885500430053154342335633483576811284262862299482630159518553950534594778286475624395051094438781052736108445415733606009264485673365528368363544055292430954381681342249890467559803280289506144934263365767231590685040460791235974486221067266086265232736412965799107688843322170910272696329501105280253967349267364385119242697243056500410391518185351910832233686221008707953952365396545511309582496463335737873486758107223896977308420425450579743454806001081299895195002819311597527153118450248921640213050205158582678408714658797541948936861010614666960533933879101130709899770696975087995050312783977162768334516467887225821953883467800394214842759160499839987333381773195115308296113626858163717219436371188952504750100623312190201783350841376441936900893796215041756052850775154352502792044986105041370208816853069746106967683899619608290857680018877770732265218828588714731998436302313727580869815248455007225440792529725997518724018518719111284198919667386668968064014533529714792217639600173420971965336261840048193814402458817895532555057247928403236753783644438638916024800176581859170609829247009015356451797490965456428469083791100149775774787250725654939731113899961076330241192943377915241870436284410483150979462267581915249550898116969940194285407054989428906628787208155134247213804972208803411490135709342756177675237496442441219662365728141635045727998778811807428911046708190057224488534860366332334855793958650762953001510105588322244010175333086027919183437883524342735372419771065015537338605362887369643393041970075323413938696544511697078452918017462137257799987549130183658174342974846326386991093731992491857697849775494282492464501828585520572155917373081331357377578951384544156239006291969082040359627218061910665959394044530667769957415448506400057853769721125982919425269466505347346600553188505864224931453308981510621362297550292143486377427443092538598426332743019918841096131646014394190282438310639164493687281470003939972946283327359126479776330596670020988516769300193119421677878664945967074297654055633082186224993598345967996839623146168020377765654886984290649155204062291333611767301466797881879103294937916167039855587586765214775063475876156932341112534485755449104843169650169471808826783317593502960112656043663061159298015189827330751284398748066293424471653913605081563994928601610062135434044373260151057105525930955457891860671264419587066397252768915745556469923052004564959845648658938457305197984804961275002408859173989139537396161390404525650691366985351784655559535327722234472793823267656866735665412014500522977523839345967422580923117296387732297114577337506907297484844451027682885717302730123635569984385261517027046129119723766539355327878110896712758254794968843004409460445052582538909067030234695966173464889568953223052272885719016679409246062917942210130496663666430747333900037609535168214789953900381182805032836296095926341790207005418334719336854343858671018441705899268781152023372396963440824652944261367247076134748738434612033161214430866011723417657521486817108729305280889517412693123626107456654556232908593942224005428406776441099127001692833218048049911726804610284810545021257465450608771693004753793736788792818562272701664108268923368115374841681507593477611626118794002473008003148292061481146613941166733005877211029005158931625590427818070224994126706286301790163105597930376096729198913430184458741113009475807206815588154588377555846242186628888757767809449483580168172331573935034469973810491129204204422759275650048179154075487381182219380263329186711824879629140734809095456534766804886037341515519865649643423086929557333912613472332986560902252274027793366722124136236811156526483374695545764073911435606170110679579516487676321446423423013125925731163612593500184623436047774242201281903523170288238463164359232111356818236187181047718228226565151297871655105248285364571860643554513806211301478147132535454770311833665508876402958077354857281352386190863719043415953500820395834771808798840066381834242164207698497475018545260260579946152230493385702968687478433476419145850103714754168127656537517595258564362986043190510403990195163272132204681577150235920324380270151957435340021490109106090019995874974727185591099746875197103427330343843365877688061810925036194147799728550394902658488288013529584509559562660339888969644746350625969049440061263313126167054287017421608922053234420823748761261955108386865068622357046098708057289557156735017105463502211772954602710747613222668581671511479612475292468654577710658984996231963781512919469835226591420081399679089508133568330839011806391679892336444746621042811258407373396194349205989152563354655072314727749701913803303221850173925435926935744032358264770035604866333209526922783727306340057836070070533268076615562376702683911133112050950407494989597205895504089091625341969222583314155676101854051481530333380046898127554643878928780980236146514538686037050455147002396524081185872081727340093768452691343107900174740095507097247261800808177928460883565282052514056683449617690862339526895126735873456911102625188223752395941247790641588909802153122363788646503316548093955697205500547008018422644082167131670826800678940457880528891399633252870066623544691398458231038941839732745168217370034478296354372860379590522638158626408988014101990092250365790143288486904794234971465378003866401231256703464480477781602513591847298822548823178468691548276811300076770534263366028341559800405071460715174579772825301565578972662767495791357035730406567435974723713404741513278169598845958473498028710385754009551984443583263681539924463556507728312786453067891974730322847191193068018121289440792764117485487867709460491054951360372842001812161342530882378174300724243544980951051600764499441576422816299402213933987323724358473625930710598185722370206293290300656972947064326847349228824740968094083127922249895176397458234779780491897379726331404366124016188352548040058766775728135777840529572761056790654907356877541888357432564525764257944920487238182486751132498215403360814243708459912908743048658798905981971935672981806904763626464124956599866583263574194162041394985987627996230342005197547877729327237764092771111070579936225290931270586758535454741604913624457431656308919389668137145592088541211736861949979871645841370394937979942417125696848310741513042741853717979052368180690853948992856347714313213679184180600110326227536565926384257931890369047549837151955604860314580886556078399561224333811125770795928965570285631691794773836763955378666430844348571169972311145680451575676917871679357624127760430006857898225001456943684137357993477777542757124229365968149866718648906577697910813004599956481497338865686205203011540271273036424349303817546879204839625169043300932948407366235923223415940038023863402376648850893415015818515937110562703530818638086480142738456324459015564848744454150245895792422113410428284554742633970212815049089475362721702643756488797415555989721571850828417174677671976740839307740834071282826003355638666996282167245467719761250513506390402828258077441732981979052837981500587157471949327170585763686906062998506459551028015200095291480469043097529831834677933467214689910855767890626249345348254278072509575681472658249660915611168258256804508367786428052231345718126833531985653073151173269567798040423522832803004274025236444338236453689115557961811609544047602272576664716478063792106131946200927971567982646908705650029018201540083254754760828069546398323459244912959579500358998955035794176075163536166430969754310390155116131377440104481434245107514084673580770872851999578190100232272185922245150918940595927442132469938965270737214104205552033259133787732871885225076806856399900570538046149436986207527515174507570311576177332855412436990288082014139799449384488161974287526058157329679030881860658564816554300456718611841402820946458024890970896624207805245937984680738289169592804046462770918444800744406133830772252111673631482352340066859001523877432493594062077978620134196622505621651847569012037164735789694556174860595489827834368846588851121046610085221831030351257844440521731180478220135429651790012535489171989755451079151931050046703431839370948056332974151996657003658127740598238721045949310984700421611701446299416291534359475271157369062929389360388387953499578048635597888621906035122009250900284872744145929482500385808922147968136388277631319113102575323512418300474647055404956593145541259738982914684508908091376969734601187117986290557804172950228735897529140880752105670858751992014975000212229920282142346253907044482346937786427657223288427737897309439719352098536410391951036796383251593733024922132602980163804951279615339994838311996388118504716008579406145149846590630079495358510072403724263837268996546406178682730868438103479443517214540683088759439240851925588505013241844397929433355727756673108970893139888492722679945193730847636201114703644161903737456737734805488218114999333689919923788122418478440781672993047746601047324733089387254215421414883373866578171079963532173843723251202793127389531791023761602330642325170021625980271780378192806226060949564423202648921052430162524768054798838177112146373772369476530570563023240238397670621805486063926566670486797195272253045086771673777233625971153410690687571762496011321757329534029154233708289504594723480168481330905414052765937297090126912672121502568875405520532420318576757056769071007910264745723471834264777069525093224166121586041204521658603389008481207822380242336516007839684090796458362075896625632668372134040017868580991184439912359632795511823885399469122130097284822143457044162703932606454729896105518138872078769737752582237262383995638937872718166616188374771247365965970838514713079768510772118143224909182108196332674542162662945986134074974864436756371480871007892458137734961600202342933339374812020252041738478258003136961790082630363195957442308188922539608095083581806137895939249681315634474261612263106705160963422745424304609267788629329768235819350991407230697791705469306886744589136065660044773563323971689306387577954631732205871052283621868243588730088267479224827898254510439443935912079191216284556401660796756484505450470077307659967934593737767219062227311792386653556179392573495689419933095934387926918984310172752592988127435413321889979792901169265935478635496503001812154301618109053910198102289506575908981896513149676869954261698739958126038275743169979055041565405633029701982713779775595853684306213241303855191930681179747721445218241724666082244807503714655241541082866003703186155646559506521056382270179175596886449025477651398466746909022324571994352942166053411579050549870944483535442452842337420885734585563414539083288670262696162116318388066480869740680626020982585310587655382500079699421240100750931745232349781246675510152933179752833166476152718740913313235327121561583333958214522518724790347762197639908993221222315247613843602297639170226907931307978545322415958275963069022469129938166384618311981654168878418802751404626475828646142316397266683456665157853705673654524292269603874486931565810592220667549666352624037215139511131732918294476484166535912936660087454626013179305917553018061447264424038483670486210698493096963620230568466012553787628767498701585573656613055834883496223521201702781403456719406102074423799371722552996712976525534883919953783445413045454763694196415759250946392098238047367428724070409033217007082207292898501773201669778921122735775431502275009263465862343963312152257069390371721063294852316056396733452323150063393464204654021934810570372794292065462270133008109280596002742757363497490083939617512050968659892086142383664004675971526736167259603254859616872093020282473956973731633589105842595929115213164668503318392780986540383274001492399834490574381607848086959480170984965542549192218904503846552323348450703306395119464976354401433906243378946945887988264523712561796621598696044634361569440689073900344975458406443061211741491891100945462056481986341727663994360647414707444412345655634969789908675909399852513672969814835915524410317423370700515072801011121328308682791959355704400335885194446847591995966889598338389690714944023111086468389447883792725511367153431309913057628876773027761518922924050716533676316007876188197932100304513802488595053675899294082903011612069623241172733108161874644419258494477113327088594779052147383568910616077505243941699184159121724825526820471745450842244904230407164710217451773494826235858320007921690702270941786509009801459565774136699318349653032846999880089098976238806290408656560921806513588690605279806964507175815783785399590150629058347997029338371150430763914499555927644600760727834088486362104612140405125038142524778752847854222321035816135522760429192601958563158926721584280635355673631867839281807858941084271203056917530816853542992822162946537462186424191822007400484813943598768675386650502586062267801218463821125688327763515368522864187418453291160327640702523683153647361723051269007325131366955769988714899152819437755193638879999872820965470050759018549712096277353720045210518353993507040942121885585752467951817625078400350998159084291313851542316685377462863378534299301012818489367265097161759568307038067477340221238845668959137885176109790252990979247191407340496808595477969841420474517276869291393447300936862662532313106209046414179187658218272726456709695164071845568318650994420963560203328284962358895502120302295302721371765511369891776956897585248489321193829820973486133157417675004167805791561766041135585397935040885247709675503730492034958282541026987645867821097475193996931557928834390621259798939911113807627870710407546947317108962676296670726231813543689969583471993467031168027772354816443590447994371917458768505616076817679549427403717508451897318580947211322024707514294340900067225332465397078031286250838501606311906288127094655559690706910355069828054994613867628905160105945448935105985651869428645951392860108130504344621778461519626452147985941535857133576957269446028268462964085278787794849462515173945773521656738446434631219246974148844528688329036375383347701148446806334775642176126510356786922686403833009925117985585906475539406970294217725360279043708492721424383806858891356915383894090609259689245205353122005185389563033088539377003572261171117306481651727891156781706306931498391215903135154598096894784539251953136552030181338763723081639832444055775111795810811463319641515933689691546811579768610156753784856861412436200583884879493856624747079408355620239284616618661870575414482394504452990972212201893164228374113710712324640641125185476137501008700379978833601831366003421604266502580199558165720924493942335462739396191590243074082402452543611295521056597819044351990814313068904200641560086326947230710709937240891747406672309768877326997016537076562333938294283988615710224376006861308366838686678436532463256891769156789814960678746595189711229142545000487014301845184744296095275259419501808376400419645579517930003451676053038485942644471392150256621270896841147193687822482062463063320666005704061027568528789715884083832743470968657795447666539030433295334927128593482376755157497072047681418387938623009327968007726256865313632128193287379828655323137031168736994505812895816245874804268719540140138256712602587192811331980459019164792945639518350704154876012238345289713514207600652274269940750363981677568940501882297454449148386064829592180758440836721812457629154677743811884677914111658778678907311575026799635738453900258266843144947846043873050513339759001725747226404414593661561591598832963235932949798681664516684675006553257976033620142561553163606421159408911190626132570265089621785984837244470347608536975510271448482555467709354702134578941718356951067994148416476615964920836956622285220392954825635207639455121985063248136674882054232115235911037323255077893647429246753313038781293932899938164164283796357833235444694641807699274213175991638587391841942454871319289539858421362792868578950150450155466750171038720819561512562048848123803948079010292961462746584342117992074311302356870424605044688786992155960616329885127208052714435623189682026960560993925383890791214208564412710022144884658054248926545895966862004958622813747705887552222405302688911634534521849102648908390922785476683967743893228837153302547306990380250268712720526976831087708939123578896285738608592194293040463790605093194707564555231802354757448769446783711685295529059813672949543030270609616469618222438826652766760447804889004933458873543639246692677024697213387811406083688909423001923819591175167350050280585849414999276605925477540439512851049395047504376021282915382075663900735898092584259560582447675089777818146097451633312079597654741857314758175970357165069702381292494968911779745204125154028468935299481109543887743381543853803704336334156313698243526483974174603889583983098679329889412895546866256870050126389973236029040693374360448908644001968314644629774577756736023426082183613465045784894379720810322981178597711331837705909882456829074334022957963947525339538390422744677180504477999009096829118912102618144561371153404842037895135242626483533935631053602518072228862670919441571267208348939771393699982088466996611746463043592641282922152013531131855497513190971384200743712698619044327404221642090403517755948555230330758996264893301988987446752068474254679290206430419991935110990041523838838097037378056352331043281644192634686937881854895535569573080748755104381235446059822009638232444850066366190333924080262167349751344772196377646992246328349536028451990900951224603849547226737482200412484740124789592401914239520695460725927959776439814701837193971011896915497140873816697049575457423775553437774909751615782073316910576344774140315409633669759256546041075170163243816025362024602375159555353391416208757675771533892252553054224854937381656817232449487059653317011636106576073417633287086998018270606069727573244721408571091341118424517606128644784999121883166570171742036484265300405875336206722096388708055224557308931210573034098715102874962919989802042423232080862784676219928082878812658175221388068651945565225710601456691178079890666614141420928930121971989411522592191743252194335564606161370255302683721432194375516133744855040475484825292116328589053911370869485208208517689337075353171405349156223817228659154364806095955926805850632061246529812420345982855836209790111334233389325006907441673903634014311129187042240778646928615689042647153015577976649687208417607161819643314565472155675146059706946160420562519527597089387399174262442962143514167692403929648419540779838684064811806153127782610867806039748332757138771604434240575809323036617952966317962826512777849338069328115320961077914034495181989245646807408785504865386277155973923813890504056594501052467369889749158519804062372198965370098218071547636394566910487845977538158702926456774818888290913176880423687457945769880447185351727885274763844944833101618415173254542337311150641216674708865097654137778320896516391119526556674995539882417479593524300164817694125551820294909821066067979091094136238107243861384514434844137899858462340856989300359265688336857977049026538740086555776404326712958566775640429754401334573516253948983757373376446848569284324848389073302481614425209234080348332852958043398247042981314139039572468271537477642342603605550919864699506678762218790677328186856534692877775321534145160212970066656018245014102723906101493717989568566149838356068051007753122773471910465434189660006811114576758148815686380167186037915309947279045197944412017698746371771871867729296865189987818375992558362298688312038685625792699821912776796134884162818634055986341315465132867601236535758799863860064908894967566617758189084814743832947038545135175435796937605988265708843619979835420208891374211218147018118247865483740857940944314299175434400099646617760524760968184643772568394015758582152660210040554510772333698254014504243896190244990217113811698707864938868263028678363916417099826366009559909244472900983764022872222580974691651830737306332381247921379474545300888301307124109075568769589837950713663681003271527701023160949351475130452513375286307061392389701699342161486109841087070786030560728210085929006546188135680022948600165460413531142271459874730136502999559450267617229956656203855467385218043943972276481301650357458520375277362593421730876587528796213901623417159826895656111689840049110638949448926654145104068156417244570870344658945651426100942363803189045354228141204539728282029339787123167372390302474003765365112361716575323910662631146541668618320997451139528860067257940236321611061862443056818490880833122716538601215854422019765230293581952333269994746740130605342758886407098240657839848858918922164660594715908985990626977198543612536883150172758374862258687562348326329487898547878226738572337923869698185161643588825108414388144218140646286434735025991313588846443055152956916710360318285787245910789882365518922243861127125095880402260217723480377367606272899008986373713965683869266839432318625808128998389592157100714688023340030715194876782645047075591673386243465818128307061402036635878541114794160484922385444689646991106615803998726000302704112670291017150817864780749108485777245897229717686956393518775013860037749825337059660683451266007087304780084643352357978434523763216294211118768739100345842950761719836637764341891195459903035633208770016694643899009946896064537311777560959054420197675074173428437712135869285727284370930707877808903738806596977522700221668026721389850933784575577802719948895379607786634431385276440241273146645905443522517811711593532247821844187390781631784806065824238478991976609175127393692387976206838806409922867071551160698721420536629868659639128823401629262155038726109570063811383510448423685063481066532178467173323459477910600600218688352548661423170681356348781838341751256106589197785917282066097507373570723185664247946351171369748333929150613647996668974428469869390205131710346335213262583159645035387213613480018199028441041096601802941458339973086966421585711927018879455300272324009803879137040097106998928975994770690609586468823873971709543939082784505412958434951802301937125664881141087009287807931781469425426988760547281320383749983017978791704250597563842078141801259504504543383068172162792318737233622144611094075706625699227943410474676204117699196966650530937292092904163990774573228170913144823287470779474029036176746739094407291132348677402630198246452282200900307025726221152384741547310280618855308868179659672802926293304904659390219553380788448682309013169907686920555622521201191004457331576570415098507253370769606049644920047532414174052845415876209586225758383478934654298822919356997399349356148487363585414329659905746258722161314757870136596938967385148784236265574587678572851240453328028513859443985187975709255520568413990805310115973839103861466451131487704925705952727740933221068828576435087853584388912376946888065746989153349149222604643597593377991492588164234220903416679274519825841089631477233308290196186227053688883111742941086837813667016189221063326314982191273656458987109098422319664651568464905039640285889156742737552700819052570588278861654256408359102119129386925748867011490169440632589126805596674097422404520222575455786406695025065166694427286204082009124367156495126026636622934586194854141471329029982272024025031866092939771947850771869500484593108459225808817362495695743078532496226914989935253912873555709944363787329112274906537012247793759794206362941106925861007914290044906875174437918492791218554209492660783752020858472436687806761119032135183130415885348620388868747327518034831779284723345093019908341468307941380474715895659884062763371847188460498685395333066751012503934624959483263361512218960689878789699053193299778164647515222617791365446285526323838166533612553524929058321205213720123335150063148959963927352555533345755740882218288451359135230364860208489247158167388279773001904894837688470222313869679694904476864525780380144108935752065617418733949051128635474222617230544109095763562216016188808293863167086366048315961304571733160861988808906521242678318169816219366246318397560170138614545975284634907879699935631324804439386107407634435745776163352572516142627589446725605919237857713670172505681823419702093505093081363581791794977930144890487654417453894401008005204332300738646448639428153589692676171102156940462526604237091297424804288519463290796690697690671950028846020269005356285896988534470774484739878831218929402693900107542346975711347403766390712032700794121070536087933117477987415398917876818047663002287138755853887000913050825621375375732061592098010622316036648336931635181858654187544025164190804476768288074021733476000409048197877006092835958818669543846322591845234721095472898842255605386326707084619238710539480207819072671869320946383349846729015352012172534829486796490118270448337738210636168972018028547230330340945141307248005005549429528152941249781142808779097539178266300874154180235150433813990211018691091221908379110978028397686877739822973213394909298344907450656514333541981913306631815112019854501783659517290813847109731466276489419625994816662637925607477732835162804344943192693161259140434334859679270717322218636301655829414893539179022111005907945011664165760934108266231633007126027420816960561836598612832565804720809399304602901596490760172807421608321865905414810202845935062329034596504577040871900463186781351861413516574176554118798939323834764494886970803537452553309715390352061252473838602077824449810249137658771049227748175348629225805609363992803435029316605913366604782527894239161712766298547733250828156810541122511064918685151966386434600152441742792053351337440814739058251179316086701599763744287962279387318358032636728717138072203458298406561604076354539754853995526132759056183897126136138294205746207298854282231531626251146228835703708536130054308389468237540118106524945645270847016243288303910762083779005060952219618762874901952963041456280526548800621559700324026757123416234571366172934764286299020095883819860706959253865527938463623928270663600258427939442169498950743008693762017411635475787989044328937482781363034605185579369112245812089899145520447550731773608373495642879609918326102821886274885730490287698603036297390126055589649778780069069976871335161729232609958815201650461429274825756200732829114728247889282132820898671254818787519336719440224018132020257900694150533633225357590110959921546786978907213549403408246374276928353073372085112121542203353827941226063595380470326328233287235846154662882112552056343132307366783392907048565985604681107573152162378460120998958635421957340133252899302748002074062304801106321160938487133681814349154565820919781202074270826263229938441846134058553048641036901116098654135025279027857394766296077633236603650063037298661269227692715859007209259807978416805941710109533813355180172362673744527172523018208324179666906608097636502555927169814990157705601920413150707153212975688148087228590468167040826361915147008020825719907469656632450575262500950419341134812568573915164661498720521246929993440439587141446973567448972092430862283015658562532671336828765421832906209686659916559463782704333918278112697485223555840643268075129053052695841139342596555132517587766629755045601302645584412421536345119864082985311208865584122364678334876111675354292198539587527226597198618141373759618953543658745057009275813258378689511197742105775951019670037840736655692838485289269140166460336653948765821357373297554763804545329194359751282169142563122418828231988409525114609991061019919883339737456213344268793156509847304373159882038074949079803923514231029976536195145858725518215196473823555354102250140646449248429997059609736645519442252800835348488095978828775787934947179468247068563572495378563682012937406426110381551591414963926293344781674589219008783117393289924102758699988443007625090008146518255932539002908381206560938915789771581844195924657420388384819969214315111069804908458249203767382781056420112022011634197259243779345428988857626092182530250531571151042093328152848568196824855518161789049005151622279736769072728573420248931340312866669471219019856657169054473790131570128364786717029925861151882880671792269635743962545258159556515898649908425660068063137330781991018988261542335600821870752264514635812739519762491655755777966625877521831487560649149155463825669460330993554585328368924294638174833017097843671391485257624145377482962844702935466384927110407174339965278982065385669522001596623476825739674052272456986068480599139722942170159154813315346825481186790423063539504035487577510623682972614533118871901610652011663917475756402772093764012488062208144305464069138142961699740925122423588829053030486371950740369209628338260520177460223267738624600541345617876356802596646061404147614743528352514634311141859078443573084963580977226624645103291829842777761173764619111896929475763404063260570201021700935714351267655594611601461919883532781325833256017764267034821347673341910481144520294338313432383811507906268107724075922101209172956535988364222133446546660144463993897627157320637036129526393986134986406400963442834481922078717174669587791946881414425950998767090363034488892721107017226920593648012833492874193048463922445345733908435491491326563117590470824735707786510340998918332824718849289316384265764165167262670140384050493665639712179743888576905248862051184655522154835898475560175069569225759997438480993921744101994992882585456456645976720280210968497165883794672383620662364914112209892441632291257765408319405047096442673708017165671710308768201522758547575148939006462084283474690929092785785060581634777052332737152552932848816650504303770806079495029208182164806653030902717042844902682511495790320371497592117766286774873925907233570635590353615291660668088380668476524490145737097477042653473348534225622695153876003475488938135307528610988880330001450599357012737522577520224683019048901579725144330871849640431970895139441505094461731126300845412596851670276623557810514024869678265926559563758650180165163905831607324391680812157208251908466139361769360179178024893617320600422489545170223219006616649497369429642381010024201222553455004549586089209501873571406926486525111003390917953999481042947682113798651158798596530592417212788817413686866752822721867713199516070315856001242703010800119114645832244554440637528818856323362536254607151324300393465157053332794702046018824212785851274780945169525540032096473677846465019837961225898514048631977869976094444532298417675303466262024812158366610635461300713859379944261071673008987149070687191611084717490041767884362509773416294659032458335925328336084463570415020330852064233643121393499747098120083892090483764332125650066208049995922549316849160893618323027881725261307050480006206688645557925113283109488532333765868162065749497401664193624202282312895500638447431780120082688564844047527577200748179092313748103765871891415196342323758495886587261074319520657712461411230922030447995596408524099115430021673142120937281271138968282968200156661159293906336375943654446329911514808911304515669358651498301188332801609686477691140269928009641024004610234741717701056714170563479282888750891522301983612544347882912192012068801118363621655998632096310971425278468352144436411362284606974272299738125050779648815347399766810996061804899747943139995852581322636451993583410267810948202297217873946730765884344821663808808631862696093645358984201961756852764137186921612406225322305677581005842839699806342743973332337905645501658415445601161156636889909573156936632888847656985998264825264335365299087170134563472156865713122509141177340898644458905867300374266703350465255337069183176703591966381867468420196397097321269027801449987463859869643586732902966687541379367397277812734917794630711494613161102067279725096759988057628316504211397579187330680437765798670337246934320899741206265137352998987965670558424620163091364961394575863762135576460482584574476803199258929440853710462218635077477827400234783217017712167972135768051993654746355795574893932833026084335718123289860366806424258989847112753024616544140404693942895242774481214156545100176495163973685237153687919889105239015396685254954640652255550272494656415545099713063131996008667981211748385572585785074769719065766539569869785991303360498172200465713028315779102311951171034935993914593572078298225945233948298734924767395874530855016525313688710051522513603985011033559959780010277769566655170088981314264031784223185168118299957021779812582414185265464291349581452774930932319431703357151290367499224155479356394453709339446485756029490375313385831794074627034882410459465426856309122399812291851329743797491056173947394466378560958722886945997236359573190719225428101443112105306481337983627029846948205267792561710835475014473684925761933521902337906872614638399471314744946049907695529579337640576523156483982251401643594510470966384332088898990310683630470157290034371447252642415244316559812832016745577181735410297939241773338561283187676630819523613028179888149488019657671028336580856534649809390286851312975710425704712856609039738042511479995053725808717725617807376174472133241448834418597438891039823094913343221840811114150340633047691321500795838956421476935893570411735805592934121406397416535521676915621623226199880492245228397398108072394208930436819230764122927853476053771898125306615720084802741231207500835053586260331684666369124102057396241353811860154753265292559203034644912740623025509791681631947076324517231306072787826613570561940691638000326689825655313380718456200669060992070477665807981484020881556937320571689171869801884321562882475364489121913196331039685377733075040091037613127937283244505017406040348038717930833488692429715046085148374305926038833534339978064750094313243673064428035752764901393435751529395284796435192348589513822400150736101867599402461219764923870983844711521767385964416900301602675718994511925664569162768606458770301656184478709638756121902743433396065331067032221391953407789292097059954557021219583096351910679476175438124729475466565310297706772731221166052648996744125883667094094044645276807881682750438096742335514555668640495854987315028181410564433466822530140569354712870721716191552778313726606035209302366961513434739268279487118044974770582829011258160031296995489866513794271413291504550593448372967586761699376618043989486777358836865687635180131672306906890836887002019244435607982175125499808030819804300870596442529520860659867235001905738595109728522781845892267100022957834346937102878329704394512365584562096890973111220218911211352486431444615263405304323560215064003227841795991072989369004830726578044450411457277495141582780554298766718905744325478633524194460767055650580205852276150925545618712007816994242278818155951776424941672359069517303738618285303760072957972722325784430324410574016357352377931787887488240698466304379681504170635502873451220814240900576350341064937605042276159948281470667509322968676127196961327850969976526194176258389596798158020038638863773557879490188077364533480982391323980218399612464763009754754455430825064053430121649895769026001361503399628839298704366985765664813701938341042378932072852030753050108347274623242836277180039753282801557206495442023871629233130760026315002246510320064054052320941353022209808155627124135042290527857090637699635405154087257098786367341742553592091245751901415974055735819504370674720624445041173343566662524780350522827184766709675240446793919767764498186053458174129300548801086743254123653376284543626429965644794336337041713466069089457602858593760178810323876112615123906657932217934511276616638804888394724096797886669406576445346395229279752005345154606859472262452322131151882299312702102206186001207758589946396053414363556321868375435081323191183969645494709372132509353414944717437112516377982687541444711550857452833867486886862703905430826601093425224345549295159072330157707764272620868881528796613061675488669137595315075932913050244358759213350427377699376328403453694716098999988903564133440015737859236332982998138938746108865763499268251519840597006563497505938947543298544159210675926298659106204003032404769990799066581750259874191879676847109349045138872593793580774328010897336469038209096638052592265758858178331510361401292618760666430740463810623943375005654279564659092691906567288131667338186723290397067457686853985324583208630347197497958335259656411533102850918931801382419018717697205254506365850920097405223908107254809766735666025628231036462299644400546320853778080495593139732250691665764448918671218298986237448189911520456321277289102525195278004214703361181562397089658512839901481773817684877671209952987310911288729012175879928146091440429522459415357113932653967189628180692090378023574432588860029414010590522403943732700257520661720626883742516491436007567235738481668418119693066930164940410055324841913758378765183133537632886259842006158358479826744875263435531570359499225214832139262253430538931936970293809430546977081996725097989437271675711970867110050310621565721744887916930559788825635737985403143744326367745386237369783789053064028895050194168561669853704608871759084112129495530459963947474371089291649533171561503343542269067651881467588346527024346564878105725912195421757638875375634623776479781541838717057948675228923016252913253290894667655778801143916268756304131599135066867829821964218729818911447242561225810602302287215556532564140709451480145970547882649901513770880640323349755844710747514053295879044724308785129841785180463745963645670588987353480594960015788562250088048925093027378998573012585268186513243400922455975722144733039953307601428636717799461429658996678970473175778327126826285479372962401272827040197313936163418140572367531098601831584371679316619350616055308733691496057681550985742117610697659384435682838662327318107964107212739890433733447429756815043118351299427422982097856151963084025794911626562083610193514304743264988544698651365150567503299773936440588247886416510482445160187545092125450043561587874796833023160522062634021424380665181993950352070621906415127375404923376531689114636117560263082334342690910806967899639431069367365699560382299492805675737573339831295415864738494127592379013639444146243919576685953374189838995354873041728745577236767223641537724493625294858351360281261816056970251024065243505891439671538193511026273757039644335781172758892167384801876076356844152238708426369065478904945463875684189142854601116235071430781220184666832304472245478621827521046356668719303488319255832481545034114872661964849043997843329667204252179911130528416468696584234042784326089406932255344949739200701429347460375639461060537299880211110379725574741217919937529200080925739841083928055788690202981105485735560950530628351686421037492157399814688400764521671992715865307826825090151686977106472932756749735637116194073318234661473623498217773328521575090517679051525643137654478550304728759667381042876143965978091200959828139958448492790758582427175702688021929000361745477434476361791850901058032497911044692145350150117031236024604435264775174350218450831359415243897661139002680088874542688468170846739994691678435662388814291736885378572134719486263677086604245321121013667851397838242934472503978559626242189191638781508943615091319782391487216995016676012175769642220018732750273827550748064791092388550772844996482987973828283157062951271300136597224684727054839336012453643727714881273977108487448140106764793088070429675216342928921130330607656095338523255164613716636669334804946250069116547280814297594320426022887673348783546394101984914983285639018579956371929065753143484491370870882319962194963748262341467798492355379402108431481973726066238145139735008769970982566425881577722482624378785767457479580808215354835436588367001618294980668037824996629332167440913009366418139488290361656430346169680352145443784955533302851653376720484591270530886705896529054662569225033110304451934311493442742760548795345191841307217209765348157078884254411699213973416517945466775712044259656548474245882303048664850815841996257672236958876455171745942231195547668654547241698577025239555793583907118832816155167887040785662267603212945020991583290879226429396701256584918598441398812684297592657859128674006235175484334471090214919706995574242617058265601118442967596054480747444147336906672721250996575590558881101620045479827855482419865417725534922829094206661569119971235823247533195871077793194800093844894920600512310653839917636422071198348890965497568543710671491408764545277574280433661379947064774863596313454200982592400373887980968028136228360822566661879365433011073059846569346227750963212461204190768428201537183162555459255839384237801918952881077561758843823682750623253520784932711383879124885749990152534716253949033898527726893133946008962652965718128460531413900956910535010514116518007079556091342342776025726258209283478147481349339580781220203540137294000511272339146867772118425956427482886367191825138234388416431825106238661105255581524872191667470832841453441172295441593711552378192955659871153292780038192972551985312901053770280828749268582728897958929611820894567297779780356032279986769829037961804150949102798084309027847580907387416055192379546990845314425231107284875039899530749730009856309715559645612413022430112291649576697804120842728334017279835859139567006849010715400323926452729543559703694437806503590488908327663677765476353411154722729696943117557862778096457465557323020468889295095376147618240794258815683408574370266491755614299114102680013599862218348868752780846957245501977248090364729501317449918811210734475715142766510636460773148261446288835656479363152565322566185226245093484328848974435438694078261473809124594178373092283147733702522778440322003793091330473811834730371409518649662405224164489413982073114652831896834552812007805310354735827375097836544486998327903826168908761257180606918511621060089727916284862544244389848290826719934479644287400559516385879322690442055950127009847569688340053546859157803480790158269545461366250712652347712809820836798204571820696534450698102339992851934290409851005175023129468178911584993738467802733338069610417651345512700417273934949935786430353077021070735402609624565342197383502478900046227128544085085145120164895316753391434860893282724100354965778984453454004726178949751785501466060247801746831547987415716381752807523454296262513414021659361909224096939552836575187819969912627988037371095567767330749974352411723846215301602152192673378673648621160130718411012154343537240447179336333719162145384644858222338108145358666759777283121427421825166878142404158402521900144514967858185987471970827382152559461461071037200204536165380345663795677352670374896843511581548563781508860349431243120912854198942322978156548690096142534674301605715857841322582329669528034216596327645603742817446456739947915434256789019691878761411965742056272864708158912006314580698656134820915399967551861135234004859629335847532380592960270666604794760022839269217321188160948047589116671962742743608349315026100873900490202189920679244013370232093841895049865470338812064386085488965598340298635669246195535200291297403702657303398818346956257953895529684503203026353006680049650468589825393155838953132750524676628761331941031883779367767062114823355556160107735994444558485573481189505244283436773629847292077583334194831314525937198210835123524199725725031523686704442263242224793133721916642198799503380281006908316243264670468512865161709059262172260411671732458991261011240086681305412095614394944897344318377796593064272362130851774599785738331743701932642742662154117366038261981473740093290276201290512685157335313013915879301260724674689931956573663686497099266382686880129239370856194410625512921955815400796037565739637591305514612642432776731791559605283322837915541936011845980447624197395669095544569075766284340731806099679804172700261883807418810523250442623646416462666696229468974688910324439132222056802510310436760566077116165412345615493288354641768545054783577228932690708520257223240774927541057452671207120432986297513886540222795644117646161598875405789799354857362846860233711884966213671682474309536674191543252865976004605324039829998892202528315845885242366446010326067108697668567944787037955502365518194565249958838863009382070975330143015444892887330635677854097001836354512736289677963037109664370303364702554473700512437061165097137907870362536807020896296760609792992016301924563742166278203650813004607170768169908014660977588768354594425780716733927201674828443218517810736863686681858304167360777664854545138381442769000591491112851738351533209502445137329064337226985420781864015854326607761884904854412388049741106075416336427464664356276733812117390610924862178288920882905669118923639581886715315642031430749273387598268369097857431758964551285973106701743057773121598559153943620148304206790455019101994636150767678446629654724991478018842063731510803743459065757939539591286488043809303995278064725227463601384488791415288944886330547734774895112378181757222957482853345980318070951548415773998635229517355437603518752605946395772411794425224381673221660432184163182517526442393923258609508575483413762635322083467108455348709858820250606252213426270548120082648221818421993397941737037095790792798403112246960700088581718691150615185629790117368850259717670718784275329394626061814320390783744162158508465355056175708525548646152793533528054264368832209435237344160078743727645257448142702855661204771563804738293282274220663955344035185192069461705748613190828239043285382199361953666877301739757861306607197044469052759509904179524068936444763899946965259252269383069301377264553337329588358824932330751878608803792139036744133503838905383341268902646226093043348468494278465162422422890878935331462140602925841279113994754544973941861437074071286622606834093054587654935368839548534857107399168351731817291612717422906590081964545044015015432522299171435437703326820454242558667081274319885397872266759096958021466075720361697702793924843422514540003941668428176803460400883112286740778094527057170827960978141180158449222259799341518359247271218810970313192767065868340140603512247861739374230258619257515176309499427495144861172520543295343378995656587354800875779850152066066303251827434350539597011224825978088846830927386683987508067570126111086877193842746753909713656066397762092268893550598064234740771230818166898791893379708893591399210241896779554835262109009411340746386145244419102520232364138508822993925619035109842838341045246011362646086214199649330268348960294582058509132084075315892978140247203016565473678694183201517300320997293205139450759374554128393772503515934538463568764405556323079622554309561277512495631577815802186250371317960260743800008575916690690842384350290741323721263592947193449036625745614183907432665356394924747777857576777034023709416758746359843222878821769596189308893882131844118055937772622351458904670441966722918572924676577513237069896676725597081695459042403870918993968635158043882619903529295930138859172048250424458437863419489745410696201516965589995792195910472254036263521637751338120640057224898685180723397674445021177506740075354785164117983517196231532112936533835755345969864697365663539951964962198986851133023010914843082191213569188567743426120804663870286632427026795606991011294712700451641207805322821055738009910067032968948917684173546931066382387730221891079774607080846809407997823519111299176005061780662162627622773752749163297753699050384697173426277056967827504109312622028335831382904237459350820754997054777149093988591424122481695377689501509586919435249057768657314668878617284578246060052611054158956617888919708832716775482041765452523291775959512558089521325185159684535695862168258340071101026656916522770455790162229955144590353911748057120151214434375181690556658795822310083936304453442936239507149655182698460220793756313869216104918527834499192876336629254357739757163867317424880978527424901563896208490299799071930620472770891124851407699041861481227141273349009136205467709589197192532116622720680965579794203639080757362895222480489383550654768579868403508327833902746962690229964776605551180518555893983940244942305124039211837693095057737741532682992618513043389688331372311919618957479791249195522432057422609081961748805876289520358026248039410358639548503721287224704662568289427993351566768042968411185696253335103393449846232226196892076019269381411416994693851732613530408014756287769328150215338078390768654787906927437796351961800910524641072366429184847966285859606517177208936455279413202638333957284030375993018363754454047617738598422132814680584356571232882871451122141359181825828553744173933826739412561047441360866814859493795689125790652599592279200490806587618752951515389480786996974770678270515058884136518703250063900467084126914710749701151957443691447433265429801450350541268006312709000307581343878216179890118153803589017804720948392148452621354296864701085324066702613944150416826000147197183543073903249258023068018034749158204719651238768147606297616261238959673384175823658874475475109620227503094016757731645760677645847002107629670371295145631189569138118519930687663229860460944381113766852011149673065929585503724530563434978537652723853739456950807304257307213447170752745019412251791608616783646896018478660411231286612574151253329768142951001223041768816703277282581573801809680968965330833912193845082624525536798455899992839441536628059695830966163360063816105130344795392238601659346832367841570340751357261794691991624500122658693904772552803314738037066041399414902162676529832482855284044718564155497455008301635297316375681594462628441300986442189021952429746106230934944484071878862879065831510028875794176096282615340896088316616740221646435526222196787142202627327379770269202480233556506251242634036184118851441480860297203150365203055042013030892419988143055315526162673655822596883632143686490136251670785843546908914067989142083904835846443638034508556579363819510842549842144508871129228043265339594001934684779513124524006604039263177709176731846130439442229045023772684409048125029401953283247133192730190741108574115135701793166180278706905891300293875447042117167339767277756043817165935791905072533097184617837129274591595527032104403856118530479004652739338309172987956457671223950228083662631745579768682931825367479491665622790339297391478097837627655243906399681103137334609980607481897435151645238702302603970757160717769876723475367071095952153145885488187002755012688176852673121266414867608502469862860275584463401037024395132160784030703632806684732950386931596885464903059159951320832337939527342293168733356874312898086261259609837573090747583701551863452159002289611373590181167829151518352493585535270040775675454521548271541073859389587839895625384188175853830148477937597779731919604852946430369639620506203075396453123313131774966730967194981029270101979662893161354497121714894899588141462720249903985458980232564125754855223424027082580368249431972422543466504245361369782407640104908620558827962775772931313041831409804957534928625399286126010792160805630395556716779294540921145646096541535593864891889426370169962113420060980309048939647445986006547943261710659663925270842345478551127938529374617420208007807942311988272961740836788472319231753470485822006834326643312993749964222557164101226430107442964896338706950695726816530594547160931949956557447254668196655230399627662223388115745371398387385038499892481462178791600665237348478094608371041223353393538064509839341563870247050796334321274096001691005931864447064199315718163163214336196883748972903659136653741752071976740002922638583113666697866792496013948420898899500456969109734712863379831557451828959030353415957035100762290382371892448239333968741711203454769877362770974159101263432544575986894807719048757746292563839231481376274819331395506847079732435935118193381042195656108007303905856945018886764641774755205881400973111820602500630009573615092770419887241238215425890272483057174516614522211018614033609476541843936721611100140299410237074087213795308608991725230937761858273712543146047194785841674755661768152161050314168931898159058266616852029500886234949073286357871238804259537525875268527231581247747014473571024052970953636304885463428659058834261315015584551369168671703899897643193040801024649501735716916701704045036718439905551896132099122134617515536817774821624302226199699003431089049500378556936742806253667035727512113620666455994193813709902224907085607525743310336213006782429103927373798487953971612992525668553637629580691248470383312590579402470088058739640586302048145163208408640596191706395744625383124924738031795596881698678280085006428178227618847841263492925690357943705519978534427004402205833579170122569594782535657875406353066392287989926812728583315847474100093122540691649577008572963852797443832344965793136262966756659844370709284561612207482573701375551978045907504711187370185926219394554554748936378199704331330191834158964877723065320566322193617881162376418420809072119241593758638144466497277593097315844674361103539086318529650766460683334008569252132193337236374392229618204376734131326294441500210081396516119033164251411735346147993313938704462557157756377568868326025733145718692123231468473996788470638027776809984771726399290887861801254211934679415155316896390410515397035334690693458388737387606668482969463665859064027276853382335889460548785958748429076310986617101699166136612735495522003715085951312504911351255730058109522995873808272083024385232600876266871456365050821254194262206791666558595052733159562607398276503752742878020381321044457224122192900381425859211208907680951682442898819499912431537314870642184746303301485495046354553248615740295046765805214629749766304229461743560496128864494826961374771513900184198346259614948886424622580993568155901871855279725776710052630137738672031129308298227889376816778954318411661996029962596258193755615619389381524311615181824157441759122511339581411817695547826714088823005066290016683932614655296070015844710501030399768427843459403559893729103146358568433293170838416901926125572026977838499136318118331618983465253244482359891300640843765472951597217588464363479426323134329866747970522020112813943725344664464317344075663209983675995090863496153603036096329710901281955922996859858829964606885952434691693136708941149806563698691395173619837306881918961460840657339115085159724918734663207169676010346492857797782930165900168695717594408297907171740353015077739084261952165258198009629476156245399158027094972571552993995555977814470193703088839897319419912148314235905144091689777136733667050244861587805740177432536682939554670046674041564236390695094572096354241438345032577218250344697032122724449312369448887219941570005512813179995775720947035760984374328352353400372030146258362559148084570022297349959425883746417472030148769830176540146398250756923222448077295871061243461950475844950971349378917575206324742481450408002910487022621036484184288310235756959703655435501672389761941525627145045475971725730715830439050628685106746330429857073385701522241123790739212940161516411189538795075003187509110250609578657530225148390041366652804906832942598497591815676744943283404190336730086770086083754124429977598725273851112331035712157696340789021840199158912385529543444659824113755212892128314002593919066651633876849571543764415437078647263937162311561117210287830892026160043403247270201859426722130508853160863217115537738323524419784792828354105591119886969946465110608464191394750208957118836432988714780978792425615591199619398256010498134400674445583631487968442721775350562305860082457358780427089152690715274619129819928581181759781503796803915698498390668105413745960555049977810260329088640626473094566441227480617329901271122439476155785895083624225036831734019644283439808277063579616832484394897401685844614317684471563257939824263634251452446409666699590484150652298127829856746986943163143036607461367375911619305681447005526599899074013216326004791368264678131549488355046124392409101755173796079476520800756043886862654005045092184452560286092963265722800471864845208828151186842951990876076179840583605632619026217666182512628442945918212051837768722535032180287365145517174895567038234759291044252881343828146508313006710147393837299853563561762108354391233057155553813547417635822454360195992212557185513441980752429110238287869654419434179268932439567974358301208381576732214239089706256370833696011377192347290821048460595222745807995342592716072988324548366474464375932960149790605234363921168297277920383830088390657380447270044751360657901382645680896595385237072144489849266950055793233208739605109815338395514184002154026107912151765073303817114179868582622695972697741001115257897560170627220178001390916705644098952875674603210066226030006736227136361497236148906750866880609101095117967427338268006300506648719835031459760976795555585694483716158573141215826336888349141325239026642086837251927630078794919802149070036282416529705466871871453493361969370791815927966898705897622694586374043761268795387655710094017357530805187510738119278158206030718408994392912542892139523238005895550946043963216350257466004444120876729949676351545672042350030169681469812998827937646532208428834723106212356117056229903935679644441939143880114687332031098588778586501072474335094280826850285303884966485725837584436600766643506055637428726483736231014242374734326621646925414451349972708478489260852060643159208062731233066969407505221613527660675604573795426542281261604517397664360149793774855276368451323085728114717338346820700487676824597582454550472804851422182759553198775108807167104693620998890131267957905372782746240090485725846067537423617464776437375815936477490061602814177371701939377187125140000783887135788313960260242347358791716368842820237061297420046371744294293048175424583675483475198603941353635296894721613409914804502706632223027893124304878598366195396753906388566121505159506918910832040993095352609230829882192333398224080211507508346067532384812013012751681115533668988413959309354353664016178265169648894208411000443230784948466547347618395842019741460865196679024248287388524680641606901147346687597392366349262024978648875654697593727916221331561685863217922879683351343622140152027578884928902160670532758297214866252403521137998057252995311921230841709522842429013703657966198760438838103870449267815961903605292294685933121827343642780294105116602701825986312703485749195617478246990485181167608696415843447587789598655511851547249238250363180393309976696947811030751618883170459781206183578681349818602086654544876076399161266495852997510669689973820980149363693327456844343026491360798023955358020803844100595996504318991453313231949619457994862503468458526887313075282961843416167208798410698067585414776239247969388614416520563136640343537877556193122685728103995318610234023735833906713528020648967715225794766568770115844696645374097957384529589494859515986229394438832331198102090584664279496923702640261137318300198180439272171995186398598497875546612485694391076686834260266625450744612321674617157273373181850483414217354216236462461626356044366887407285213857838207999011772162534119912703870008232890555665157588825462277939041951047756872820971113959077918689241805435864811213708781510927492533332711747896441803284938930261100798501044144841103750678332689030073593767764215937423669933243326704843016757057071828840009240986384108372124494550334428916471585241082442729863690190947939959773617792185377678573971188106727345433587989776729739293312849770905937767798359121442364714791770559058025000417862954803042849042474334150946617157251720024532177204180484045668433602805506959566444911828544641415338393244094048861868827457907086590586455164304845620113543311570028960530166422122942110666861330485827021964165999003391257503823094631343834554256368244836804424123225173021354083163234542068974073179245475369495090671452073867819334693447940787748825287606239643508185067906123321931437347927150781121129530898563723839864311004240205391814514592629389865286708359776922077091929235199271457626557077018959747906797499011460813070825977517089755867709663991991975949579936932537543918060559254092820935753153957405372681904384294146627254427720572804499211016446590505716439384594912994936574935008593544335635162597086599524127915460794007832432302269496683451970870950076609879201975888028235982670766018154632078316605796185188251832433561781082938953122016395195046599701768952928603058118146927595082322557515545906569084328507517790969254073463174439756789987544473224732713039816161321252144043756881432235445703420352918838788404187650922355983947663130943882923166123277845388140529473106678156117239476156052285820567875567768350595394720175500601852151739573597336853056474496475157798161747925647659579688343627769762253964737307731047182470554911337767845492884925721157196429344535968959426078039519700810143994806201178944913374352546226272750906680637003367254122848128880039908149162856757756353868382316534277188793239442948283012685964117176905376311700713572545316767965285595843327412965552670575036520508361991835407672661395173595870029334959090591025289952921719712396325568552468027280690262098564581836973276606404285129567178724106011341060507828803645945608126113373919775376828491048130986918649151034490024012919929519974937301440513783275323145800939432113037175155275166977903284877264284437155651297719470442949792283685297749294519978691884090648511645628872688439539684516058883985205593580931997105799565545934850341968706570070469010429171769747871813014105422078433243087337576480211822589732050634152578560513709718564078339347510940586870193280771435787609711216496975552728279384538916028609441218307715463137979887469063811848900526020518640516492439162063585463930941245308015272634835803471638650663638683604375216506408999088598650559704928617457265641323962289677268599006001132145781943913496805165999350803456015139907566826737785284645398817986730758110761215917314402528775124618426134559345234132113808559756990643672764677954122829423512154832970087249498278830432829405328816634145338503809986289579049875321885444814873316631703052443657564240588467063744350214222197831895347145920893529803618632834737215385315642278439537725055605210939173393364062481580607841847307897099017655376912162940879272003313161865486693249821078899169191816882571097352325543481035102029680087081040284326607196626898560026217981870667908116040540011923215657720245078963716101768717365470279207426462492619962607068777818567578637075011439112031777504654175239314855799835002719220582828234882258387416472756866114508352308621647218406675913535167409364108777302827933041215734841966110049769719521631406110121180223951184695975750701224260320927996929433772592244854465896497937792509867897101335221186291375613492329085426155780495658935973143007253043115623854569954825365053926817646475224128532251801046394328514198732889320677872193704178286984777223967925246539551399714974590180533734117134162844658385594103689630014140581812136007278222988148243688287122412135336575013999677572719416643284377482878208750749278482660155166317016349654595809725205141313941864259976412166732319665776515888089466374450515839368855006322117651891106646209354979756215231983141770088854498050968621160382456854548318983061846821200822950068242821698301098626893645609930417046976917427229226690503095855834365702862066119884091416857789290810231150421167267991372572477987224727132599848639137593094879195807617391450518484982663290723007365853174468559061118274636308964152097391534188211893251751339179830208434565633029311487746640289770742682169432398174316524104114565252119329375694141350664755485117835842589395692536759643689908500672671632803879890123208667593076902714243217752686604954744552355361391550221530707996249105321080465642432469897647459886793918876366076463180192627510055650769979107470928347318874805110635237843846685347775439007885824627151705748052444125087976229222024226048581366844776731288173243135405150967519349850799989391467555268827966449145632042579458228264027907799400214344959923856894874244907634826026695916727175237125589014458465061993784484815592920095441084642171579069091882285070553428426487712357753872893551313296058906090384121314011408508036390524792039917933536089865342819923358201069989299015443451943532606931909630245155568573776567038678767415175628569121240659494677468708162841486260388814786388051226596931473997417019750394128386547156821687709937384088260088439581796823095272680122764949226633139726877448701758559389276243383690386265420442124382709191964775998059067149124270444292246742373694000726938262304241595700172207558705084081399079679251239274112281882754624650599113681602773977478311087286676247785006023573506878113739654177106801569735060111935060515925729879695882303303670722612137339613937066411382191713152523353792256000062466803352327792091605269534865720739327779804727021837854793449114075570668678940012436605384749443322562175251204192235834659710522345243749783023014168931588434198908243280105668895025935788668156353385757284874121877760600665266913889487351641472986439191563136022082212741271419845858802192337444185198676470257681403462188763968098578097437029444606233466250802642190178599952099504683570698011147211935499233691801611719989208773105092928196247792099358206028391109301217881077867141401688626295368893334351145615717175831896874411560374111419309745167036911187141496379613552364555419577288378759240647222447537729187593759945005207494455576423491396389466319138502320833767565432604507408429716906092439520589010121608876607035505301713488008707149212430582694765156492490277929842633539839082960227778304026281965913428457149990661080830188016548355028414407267100640065602461348023219748673837998464480963236441545589908229947010162479164615346437203415423943542186067712686067686075024940361635147302302394693810419012225202360785212785892154474466024284248199782585329974398480432045435352829259394331948245470343123051796890676996922730618268459239753538020358490198918443559692782703839316461256663492734884626324468801793600135237123326248057971471966822023218603710165105057800502465775647999979332644985072149818040710423004252168405814958018244138648851578948118058730310734932895425198890083378176091136298194134305361971985160318234056785350941003985289709020098203412343567647720333390972381255373930013932789061115630196254184214216950348827193559237237810097653412907796384639349334692053906932680287060321146780583494366296942344223772158397100021968204668304333934856197076193721861323235301942563086067508470614911075632080209211908250543324781633246580565316444443134026617762096816810461132034681928231751183983753774387967764482447625485061248708566841921868845753816437061605467872331268299346535275919670310096899417845610548959662433569766355882083480160102202013366828371372900004097171335278824840535690613620686744039926082926281164400783279636671180873095032697787659994244947145686935349391734300868529268741670160706053947868258988259375657845618251699696517431179730960698615768428800415279938260447663165728522877392778033945007025864511193801931899343694460122223826266293288737213195980035805329027021543955577068451619784376121965846717144833294799537347124593998505428929960182234672596376878777898154471109358986435288786515766845186455535986230184528179422156463600996676661724887340414821650909274349891133510916539213439281137524987748303960856001133980180023442853451339684278803698865158145123338064978035211789747905233886196778800365718347238563824160538729085976774699405031020845343007872738326007432339766315651184131306109565438921676406034391252129441742480298502097222661138249045598944550692558817712674165759513261956474090364250933669851888160077155907712138708862430287180290849671868164774589924402622192109727223919630258952545846352639984970623372027803320470961539119299813839748799958467103007278923739340348435665909909966917694307873749068552779784568152302565899981228156207448981509547187233917185527988479256805323120814941627534930679685150499509124447561325067823189020194804672232761802279222105265183177518584508344584834827869289644768664662698260131521615401869190333570407040621852173925195830841052936146848749826020551024935874173599582234082032007093428917764112951985061490364821015277855310913019983137970657940410458039282370528426239280151053806223016966605237460274074100504773072018657341058785193183412052932940999702372668229986154861779054246210602850197046121695869840685829618980910822258524872733902834178642704090087711272320481553650996197327190205387908443290427000005675891006072700430167039680240018415823526271360331179767450433768771766492966587929312296619651400333041984280623411293550062256097779409365892657233320225288041453053637842359177730959607346674538415774825323021577932854140991783613916328554470184125622067474239383944711163451518733913770915883850842638659759759561491425018234938409453189862212290501879923742334784984023627182481057478437113344601439808104997948208540145473590473643422277386796755286174050741888218294953997157650953189045643594506159131267068468839175007146781146473642817005804113342087916149257686671679866395782955999300999822997549388896567108428641902554681502855873887413509313430582509460044072111953683038564634839275691184604698152029619881447589063046742845260983032969588915153651792462444960910052725105460728129895681212051275526088845359363009892770964393477745390517589497055653970351031963381657226430285760790298670630178317496381923499167687020156024207592307416428664218618284309263838419419508704581449992199102307506396980076425615619927938065420479878587732488583656890545627101712439342558565160182346549938582045239220468080483589518847046633881554844543690725344688168300296873076552494455814829350345806901561123815583087449336780214666768328725836142958588518579558980781814360086835091811326756155658266830603090019631216698909395918627713585324840894278532076917947718435989906325907283982194285597570091658302897025347008356478103940482202605644535619730890553781660975234022908081492174964617669453446680463614568510056983078260939914362854306218758886842893232591880642193996416945192912730564742717578588613026259968147212265772329847341121390731674289256420764369447261534713841576363301371082542103628863984119331882816906648431957259635319881663313520614654796315068073651895839152438636083305450064299909316453874314734564474071417781696012787357274975562508954210108140717830353077561677496256326738984899599102710515228506447945370508125812561222125797973229761480730027553385483107455537745574065554111388125110994793339698356685105814191276441258395760212081859854339119070268561353926211668130679841232654731682462718741528312725657717042784476107397509232208419268861345312708895991963693264514241525636436013151738649144392393295078190974935549754857460980258556377555650530290116892209117586915811096277828984124358548555318641222842070070043747960429792875458515791603145877512806985505719856983861415811844731933373473028777405665681185470611605063419096963177551953024109622905528651684608008924081076258542984779716382534957000069813819461857292841840349107285611000973965092530759040208030000033561829421464497302093461095768987992633943672733724303359195489314289135850670147359000500130129313931125599459838429240108003024441799031974216081784750110998803835434431981603356852576571590778233469841271111623845471009125173913973694398627987283946511668541604647534067140844813591554165255644403414671465851431024014390580960727011182603420417507964891820290814336662383901614136693971103996285899245514914530829362301979129424217652483177635313688634072893335307104596503047536411271829605142163942145556072224731092468286090688782568957476723920872306722081730312784065418111245788941957900816560052159091739749600255940850647513872352550823476867922045525029740992934600911127656912378202570719696728022550970352180312918257929189897343796806055117907838452532191051814697355590724739056663452672342819080630151073695089527339019972847787298611826899451831403967595133033115154232978050654129673038505412422555716425832825292586926825426322013365450908573447887277940428508919929072807432485604737116881350788005742313454602590207685503701294915540303367265348084520411289681186026538161823100997681140297099206587785389051234548248713958205624557422878035673099447403734558258278207754681853186552054418718931723432500613995683712493138145593443863576795799660323540612529455355097860643203883643238677518963674845295040917326962028537587074250120032054444134725803189016075228193448179808778981803592662431102170214342397135720474507501438808383167780859638411420772875761633227184231969540100703563483352535557026991732985320905838744004587493669498996982663747066529408555265033422859199422239715886115651520404578666174736205518077748582956439180370554565033924096537062529635086107787537152574979735530098820545603689537844359498983269103338156938414771705332131561222642705502773003296297048201749123409484970156276936704837300096002283589744758156594031268771845668565390740282038020094516473817645948137244773255755104197573726977437960587248500519136215305150414839465128075398007564239633395459183162554448178442583041666861244728702660019307695634564575646433842135785482393994589813616543134319163091582651490249140840565061619322848251168940256235445655872350951512192499923562455849985249608234461565105025956605287998363344066430513555082268522467166957081638262879707518627018652783406940646010661118761311308949404714260724076708839334155358010261980620725127334599244053547644294414100536357760142999044302806956748557866484171818435316414926772837405327289775567276070936051581569460403640471440309439539936017213567993388447245098114033138102370892752410379798621568753272912194549193031875150125651065762030485587074532391440805871553462278414232691832974882988172340500387824564555065014220908834554850897198588519802523882781362335339449589990755884432825652596930312991652435472117333567613357935743344184057531224034718254161462688926729726435134428661131871820255536890987208962206477661827387797489342498895123915713334202957809619179584604309422286395097585417960092448722204119481783991262815111968110075303374804069183601681102092719862869684930634682011750559962579213119058513584434020525432578259406855844686445826870299087912145022424089978308687622552027203722227753327823423442113764030493718641979335037472391104935308723474399751471284492484846916650895059722889546292686504089990395367554346778520181473475116134413377286462116269178712174604446508366573729008686823541232712673118552661813009876768231532492719587280237057692270309460020445896242375418401546900047446569923225412043699338868849149574417238987691356877870153587186059341826991886261187511738992036248804607714245111139467089898615568100230336494838838177806867997112625289425244108158134561649102209329355507827823628566106365485119871062713018568891979312859066413975126854787187076907931439895772555062005726567372874239284745700433845517510887828610264426930141934010274694281660743069816207084200952550441805283142099912028146962306606645025607696951107720061730093040581022838718005506355931957232936802517252039996698508271326091707505642729056022726799591843223600496230336862428995532411002048696669755351439649745316625768456195245175203071101333547776766185213576522781333575827960761367722088245405039172646321387961833333383829462261814208888609600749288799118647185970767401038653421687840360350656990278024950033991476365900614178580030390822045106408777818942545541106996761551340758005498331464835187342230387497544260060416756378815256585905474935487774640369972873886582527989378055966849159351102614003587343708768314983518564867482596091973841848093781333741979515352985518538246648681304559458216325451398821022490215928316195988213448188733515083551562825640554818917875850702004317711978552385212865568368895907307282801233284203728626735392356432845950078360884632972660018742753112769427845741452825695275387440307407359835679641073734148048524309788656612258122157454320469209007353373600879391209293866568926816063987947700179902495839425910825413410708593592158168690383690895705382032681605407537973386550595435857273223238400699655358704738511939773150130660051040282687595257603913487165863846053593451825556071597777833078410785088558025914093162750634271164564700486251857321755777349616309130423412855463601307925463809107241309132043508840888792513242531545095973066601008479038074948098157172396567797690824022242405674572479288397249409705010247035088351251296483162156833602403858162607380496186884646537001038515249821553001246585161937532791296603054551547724131491025049588332400549441027923732749020168146962046052383535253744460767358912434312533634890033897375543855387218059352654149463696874558484577989114108174660354504796045076213193210841066751804390526302125593990483624821722209576269822235936259192607885970033161985110387985701307259920851547893728421992499320433326801020658576403733588186632399561057906839887736306281187634885013292275009215278813689030925606434933708624770750832513448270221425229937459918515169198963034423068379686034903224361218387214391392720719662188181578369761789215200682408676181300652386878437268137430331299838739509195815822710891027579843203371480923772872664892554909506228987480382257629659743368767719122716803320366950434282387458259502344353401257903448980197992531035426246002725231594790117580280932636381324246434494549342283492372291145227430982120064730352683805447540030176108930278268929082682923916146580374947377452463893259477686075928755591529876364720895459677883650813243186488786620870177799244234207192678116736532239248094487269536545215959200597082874314768927311325501885701117044058043730563356118821135149593538509780648733783432634480680105467804913832299841521207467803122329614813162668210091032172437811864439144727032375155498768752373977413418972352804285006228661320244283268188243408477218824906151820800784141139741196106049348111502298500926201456007704309567858588397602199101705469808967194245658185404156702816237873218601151483703134485145442858432108907321564332779923524165085214676323309321248365907227472797826416260798477003661742789339704821289408323960674541104891740802135978333094337902097385471739707532551113725588135890114934538317433761784195030429450667841555544496205372214947869231842327666893702857795820546846440019198133327947770885226197654173973249174187720296686545978611817641317022449999198681037294864058653261370321274828687040796573363348244927547996129130692317807177738922489137264283436738619268939871409858941314970677493821653701418277271109048455886729756416425060399800057970049848186531912350471308992199577468246226069057764891381779314307762717757883144593882978614024779661079241266147524015314735848043242614371759699588717994775452981772547127844135889820104333630039231918819999067967688535908345011982532793832267619872204858951287198913923583943967676539621768230285383378737899068552611537280063087173231939913309675337728816044135857516030287762750291212917988471613102477049192344190410469801544121511835468987963127534606685403848793523693372748294214307013149991556995017686548213930374332675190928175264571410719669054843558252214905846850113605140237218238754782162838709074951542716371398846759649160886593720375458358079195525632308347588417722236952713206655247244199506183400917728880947336229374252425239463448393063657924360974095221910380672769271863612796880939766917093686340618155056709119166832217843335357751040801516790646334613953921822555064144544212036356026242662091177759082902627287180876303458523051968420463222227228546312351354056272538273349258462479483948736965059901820427327752119288732028363994960289335661289676641556466172306279382886745451461300781928040945656437487496902331500654947598953857375473808363131378256089593332908857876236308395026936966204111318513506902247367943180334831058571732053392851456107250743846277832450857287854534180711559826334976358265291939386512107842823238661513377994848913477133380016119052099946295626797021891500074425688732614482563243255190105630336303036799506446787596441407278858691287667119756289115906874230153597417673383960143161757864341600641636043697549642122412317192708680884153800784530670107481115864639653501453551400213691680142495017788891368192967030116149436192896130214479802472567086068523334723474637802773019648451601135735124950598504186041323968370986617125760176623504181413797923738959826649965912822784609932864759506095294706766927779014652799668229043918402211371019351585851799255492014112282892836331531556902730505048037451806944116229735574189924182962205320098011389705530427063734870753229379195870835094662833696117783194427518585092951747743787846452948109121728870893135118556118930115928831666866085539811508240147359444867358181641988776004457613850821818079422696299619340120616390851331116136805275195878921381012197032049373367615594518912306712955532353423648949522792049193544947048453327074941746680921798593477247662747918813499729059199678796133183458742578971967428112000286269111114841798681970440030826801785655783344451987943320356821592328200993169099460621181322303505040901694376616635620573507795344239873496327429512776979061814323239735645637051182935308547773186299903887441450623928183623327322473966683842115301657446876212164291386895882268837219790834057352074715984948402907499631174406383059480580644802148161846455091790026271445909047416559105974568399173083462176215048401285054749272865929586558761664568143515405297378069665126970164395945557680883666198088825119408833714604403162441227475515387144380895837129813725108492682541046081446006534018021902518202239912775548042225822944032166842261317928353715945110269745807622717498590694938174556198875969894404869940648127376223576468750828090933349279764395186232153549680208414853834815276224408123013706234872212632879125663772155158521909854426805190103719817752460712753768736093154454645882903262660057146740539698193032436728930377861429002237774549427141695032940132873963372506309324342047096869056616878793551121847905633391886597879009812668637936667088530264551822898785982910114571586865460034042210176676128484118299464970061889028475701731138275252423676886331498976036371773853530577775144802892235000166630662303759109653010092471589280101080796721154619272305009037523571590886479377501323170024187158937541722324021552537770021357487018203016751326318361869353730469906897074390832862074760272808632246873026256441715986496702574763071933043227885116153786147297955303278806237592734059840546054072011389903221743677731277724478551989029699474653824217291708545000641454760512571615122617501391383304308548865501983732853962291223246475852453705943833963590175355390861052827713662313825139890298452632817282994548923547215036376907081257097965783023507935769997526275155285447126691287068900065557710156213059021026400142368359448944019442064220109221996810710215835442127038750665060855886276401556834036799237562802058420674888070341244558814778037922753566594428352889171660548215662434922888350967102413006188853059116331568632599858138290062728108129331912851731885308276276001775601259871183419253240589358349484109887866350240290951739793340243971082838404847520872814431667732773974026804297215862165791596670063591551539991526316426301959886736421399251681743079201792466639776065607897262828639986661078506562999882584409947778140927488667289344255782550068583772942818643006027509236621145548623286235047011352023786735740529866411846704556997919657355647902026687026191742316140005338869543785200196376800587863928874987657020769525115490207323610663153750271621076235292079368919177732992048342498925224632769214503674432194325307505067459448505957953088017691273438992569307441473228572491618068755186676133907177826919662290164926582745160536187431168954267358491346436444906576525870705539471372229087133182375493920874231787738897366497559032882446993348807713425403202217015075670791851888515669470657026640488031117312398555379314876781171253683225777422219365671277025912529567999964755197765671785403757569395865539816952379777131842065646071948899306442665472849615077951561312580216830926766175780459789469639245820774292763526535594998908497770694861172905452916638753906730299212105508772404910330831286984379200695186033963776126438151387789793167990613044219500186590698943796993860165002831079718829167504457569662448997583102685073014027844676093438411813424958654890850842393507422641997562392986042626483903404749163326883208106922559850928478443056939501809871179520582844556640610496473734991140531991183962607112200446352150806459031083402274449747392060499517269967770638172438573304711727734645460550430982688659257305418549921728618734426003241714303906313359304552730530204395318008136111112707774736501609705272837617235208164637478066607426101643221273741930366889866327917433606053122798569527978544689442161455860432894740185574780665280985610061123687308015184938592525995662412595130712932492327813164115418979075132708283282240238384012921833385721996017531485079346629753038809294946769478795969677350847372399076957781414831356938940558395666203841720206193106744395329481168956655565958082866841553776439568878657690035338418608270657244347049241560214647444428707243254154956417390430432618926278755757991696226806102554124755857835246036355472990769533870437121127002076209266834097530906702365469915793884425286129583314083074930728869733766754199225678659083343427058507001849148556360756771156868940194977773872420389000637064756735996075068042282465766164158095188768501844361610836902902418021305148715667268413981642850835078561270335168346070437114126779459124302686428889328017156613255816265725465573039055379437716851275874009693803081278861000374625882753599151918823216295997522254659212330995002177053514086723095312374159533875396824668875446038663872022444071570289546307415525175334695762589906232189690102346496603814815861101097537348632007758582910311923828621302685701430694797308713762427805197286869497175890903622426647373779694808498842257524229891432598954011990255591280599546798248238022009530758655733043047404988720777544819960677364379031579630389293368444268116475044991222012204220118144361829711812652169293856502496565681843032628680057433333402950040496767719126239118865742389585062587032404559474421480712355796260871598290695931508775833296033575750755602718899728199482481843188505825900859722786501276987773627354168707820236794123405410360589408664726037707394249338057964949265617221897477390014615385535466215604153586445295260439145121947998973183433609131139676278754170364280816085384330923935817579385781316021400525132527188331985546001040035458579985797524517079127090989464212399275894521858358634310553063771141773664581388685047380065079106696215065235610309374049472599832614642557117254738739841426819297946344409156963406555521538071251111838420856787269420942224574788519298488512235104714029560850280707499120004269948498296407625193369785123389689956415954887261174810864783708160957980880899483987185771046521715577595553297251290548890266319604309178686034287984816822852668693063079118021424481051398126608910531299737136293487363325792219085227620534461290604234213261922777277911787938473887024122171766861983514809381428408807799667814788360179380561582449247740057747853650277531526451977010867836134418375041203112824841909835849973109229907612686149755520734316466558483752205381909585780178666480878725514641586871178362788450687930129398732389875789442796234670456095793382703706270281740522860680350032468039630475498401359088700634821031767638357085564284847336073218763909070385202769773709627382686426913116396686674164665736000625818593849693978484055790712893466044913361767016065474433835157069382223965294551263282405689101807364120453241472241775539986227693356561719699062725331006765333492572856866892850024795007737493328259897007319009586417598276358976495889281367325066795282471240595050931661036944410725464568338462938880798469469185990839075394371090209268706453684571833702327135466818586223076402705724933837683645403083402630142384804759405233578044828874466939765940911248495456435680585502514972815849792904472332556463900498281067401966070103830888225712239376374104604345377292547369347617050417515809491378382545391155548064504475084087171407861101469454588291167674651257159306518609200189555700915008644987932791084482673350852997237578537427247494191129048481817047348028946061663670893122333762619951921889966585160742114359638425922652540977246930214576167355697019988338675925949801718758939913446483397599223689607702520124612362354873898149492118804799974592473956701707712148297001685168905979022447776679463689900575852317764633639568331361685537780143788576031279666253374377001846110641600665812685692571068654592021939345048785992406395094628778499797616261651254020292301595129867107453068183089672645218007612247155453630976608260105492146868341212979495397113651612067566949590265351539252273892243271738791880522024763074368099985634660921644805018639724066535129081534451547500117229600819086614808204388899796831368590358416491847566457061719342645796219591714703917775056373442786261565979803747797235042475496568204585414030521713719238016225629441967858539374248606875069918536699224607743257350201664815527221255925176235674756962533201251607831259437494987937083992439687597620048228881819485223717186922134054467531527612369466468175271997119152387603415229042152889049939002849998503262216844292819218804564611014987927572724419631306133528783739133783944430764007312204476376615378153560887752873676046686248758162252454344145847956276760825786917798872554293848242041224460733838698723438397012825244980614011708333189068138837828115430549617443772416036153539895629743340651385331621636680383066485890098611765284460006453535913547425638615809001692332888109782040751466595165264626197753048754238348852174941733527484271709249320738133398400001032856105462417016864730970340946782417266571708809605942475020744240153612624124036865422278730184070756747851258143539025486818718389838740780346166907790046985604329325268794251453790235210749497193274907324193059918606654758632546507369362555796472957170304002829951260699765983759093797546496218166178451595546682207634083245867908394620608427004855321534869180674239471430255955690157801026022321650828052038093324935101594975483146977521718741962667629313087322562307719157110178796141325699262208718541336544377989535336952988752978984444835002455837601150921228365082615843586533672813543862117264775886856929195353400645721613151571978040697693120028800022664386826848313295841121982091918696018929445106797044347692789453588684264786962797358643802836025960927297286783262405283686901972885753459977537529503988592483555731607781554437221831452236931087934478046031269696921020805824337476198388662770452662693067488910422312576995000834811368734842045317648379797919155853962972772008631761921385573825165112264328872628393413315364587409087248889785415605642736539711125324454109397709378722982375463256240541553878057048891615844399059915651601964151150293924527932847849082098239023142671634600153375248147119663916046215782430924057502629556987346954186152962387418455053573719163194222602242730858678448431757808404667414178654952871688815209529767176842010231062058458712936463366288316557307521839599753402423716883095601999225773478136221731531476526251654926713727220468683281963586452727273524670365210939120173934445561892928927524229230731446361738747436717676833294244853796804110541793627363244631194252128141464656263192280555425474661006249907882595808256281768705569909842032208181606675213109283116404474412897621467901593413876810570004214826100230968896155556598022919126808012352527911429547950406519249164310190801566763071201589585570008038214263534786564726572550868194457219416555222165667272549576062301159547662463468804712091484994412555958606922081033358999599181262664457493291567665803338207898327087511333514463959127935056238291275550212864270378494451266735798231494077729489509239710257519532096600310869574023243532455220375599247243631777734930533501468322570053181942140965958741538141221564615261092562063619600180637808152990540218112569997499518807540417710565481360235507070593583464106820005295718064982372588092455170015056724172104986946594129742675900529638887036350226734651357303543392489361514134386726154289813491721436592042032818517546990315698431485992399166302180044486788977957522473132050883278178201158520183474767657797038893048606102226373496498980005258121951075799622998550441859319991337795014403741501974032319487496056148153306270416754262467947356904687294725725916463632989561333168391821552859669787907955781094185256370433648982997211341400003664574930854302944895221322898255031814199470329480996760121134273698196902727108852648840536402235242231985996733257870228833481858073988600828855552047981264968548548643118054011893732759971448641179078300073235232076583665067239933469852834997647650719069540883382906646563493047694924493032884902505726094904727281632450060976136081400533359294739500210940821968571091632552633885764896401455699200412716051515819686536743413934842241151674184536711682670738509220010957731737091243574363094197642652554893436286857770057914419027169941550363300952352527046948332822231050014689126712250205329441052499244657600670695357597744852756358954475750539390482363293192714607584026920816543241013520279638201470249410217224369879175427213726718932772644074782890611929154268297261835035077443372481772367154254055375282362036027810237376052342253106450320566200506657373092796387428632772145634363230313860106890306210218115445629869041048886295510038374633495496279318800524397138115877350597272208742665492334910448984489905243772719519996290136114014134379454635379574119897957460270591218322249470653017058913557887114963775432031575716860704417385121369402924501701664085618332800726850039220038809149883962899362879265879534071122026660402775146726788996657694908528971441042701350193113784317064431934842998160932089076073022099609874515729865717768909825159498059943108405927593285044823018026672357919552837668288245319610044787616503038268315797251021467433091006439900478831438477784052978087814308849259253259381326147773495234830861732179078326757603411305440111429661976131234344476035801995463500143259142471570894635241235624809006576018868318479076015250367459193784870988986436808217237503355588677625713009022858145681803198204795697320301299275943816083710532387311905113807682867237366915210622697696279586099505932475000369221847443744017005175459214509602367169524608523607243448258333228264073620995309077563698704704917391157833905202611197637764559125629541161990213872084302972871648129067878320375766255796163503434557098294022249831631362936400211469406373034659592426013438141832134193873675599400372867039358323136193117867877029334355387078478725021751266019222771127954207348916912997936679143164250116126357487020606899976014880743791959042492736536760258301579951851739141331733066297415650692308983921204081082923277576514443830439215023490238167549904512560652224064092468801381513381092927883735179643255854246101086947264467547980988172996716834148063096429393236174053225914259831230127271537454666238520617790211384705671742736074589076325077656727340273248591976890005037209442689486057166860190780098971504312589303606422365708316210732133422090720257495821407492411709350287621878901659281179100274687981645625438792655772662027532117529168211470887291169343211315038460752850195981520695897858276296639892233282294656764180353627159125220280868336679983992112790482579202214224455636043262843737765213750567566137321057476858260655468847646733762248714973331072316296475123969894606999062869435118432445281370401367270758235374495611941944075487078831304247605655328203921766705674675692672150287559445845254456945071601380229490826344058397330863987968490733141464046931635959293787756123455880769772008798415234416547026856210380610150832292592691730895530352713494556114158479123177953282997870165104387231271660226457880165918916999454202489430761982398217525279971567881506004856417139481727106117246066953631582774045393344913853214311988085466457877456601629625605028743302777276903923767548579119535965333961597839337325473469585670670812782924030269141795782094265565039898938656069851111014038336995986920057043291875315024069982292522037585697039434373038287534763528882305318290057988004073156012325081426386900738012689282921640368555541556774428092517864257853336491050112722623694641856923235736794064988797261573038717068348600164110584496824235141947068640420083023844281226039833404060499185763718270165478198105441055368088691516069196394074052618867468215692882158901344656013777099689571270816677086645872628596503065509901776460443903757041686122100013219340690306867731526710351355070356557527723188191654033578907072237084888533355948027633544270409965865020531946349535551622027684973050993318666645284214980717968350451988670972048005066081816951352632198994109432838732071089940391430920455157411478939042019768643424646054854403536510459913251290577938884427882027662717650661620022789344825015401687550842215729392956132649663698435329516172378761677519435064971220023958973751079767651622771330730454434671097640360933787848192666671247585513779105327299471426754702608321567842057967294501796630222959384739394168558901926210026316938880887972966201352939590310504049001606944016538781968037147667939993406772389353318158621089316689027752152178306987983921163528922265438624785945116202317150151143575350825426730116759102925052667804586284817448915500068314918837047069929904761401909199496365741370243220877036334005787209763169599397731341170828167918779209907792556147046766371447631975628015551169228881267835513250161686983230171862195376471465889557162051872601504510948447089975519127312015457133733046349071806007291786393808576188996747472368609756191069160720394395275259370963213428846916696270547394803017067618049159498654272307472368465971214872454172322971432031611139808086022058212943266433716591165009634425404072950231816903329138408054345272126220184002530374004933824854041513400985666364361660779534585083357651899998277622402693422761588211434284291232236882889126187699423603436174287044629303811614514116060098795396689805409343657581216066021567486960331134029506177502601633873017294212651223488032428164065404649283424539149454356810968906083647987644267197203198512750146633587831426260479637379915128231290559462291130547139918685428840801274268345247663459371848380726704095746657998656885261137166367582321466240701559242920893661194524698533854647746534634724379741989021811848143766392318522901046522165878983633175505680352540257551447094630617455224825378749533495534760774532731647637762143839896251220358159540978125498135431820739896269510263360347223811172355263883698698640929535524590692846603201675752172520366342330368604918783486237566099928236552573306210708949726857976554375774413417507235232383255112600676758370443457569219690584758243982115212781437270802365140561477527032023180308966878307811057098097275905550908702926559520166760664652141064800558970040979738826179038268730414506917680986093820724042158687832361209287665750932847888191042409126911752603060664864050627918086728561403623305585503943869102574502273531993476498206278802592373017297872348418276111584681256369665160164156450098946337905149096773433261434813302876227172859635930301279005423883544495516972387273114407220533795754600127984352074877057629328685797732247363600981694641262300906185544037853382306569491082480826443534563648988081161600335291745184613104431924331370969974695117264671193074789618688461526314464018730023727535956022897016912402965067011424612894455650872383270227552128413208561777132869591897473718603440569601913772298637329564424383795998804370013730185431011676298656967577931058352839930130273217253514964257166769686555393471582970750033543877895875993769771099754462207475155726680942819232304983684957830881745684843911713124937202123996697302926715948156638026514146385160241115491624989740157948215047197240739371115930353735882611737908322481621788176041629625586639704290946616138097333199749996563103667171443457858556601470151591472594647016989749974484276482566313493004321907548241060340395684220322531909909725067293188605621186062467091579440837444072256832680342283384208329671800301634826559316103813843228360598090973451241843267603718422635948864033854573083575537623720744006269275887668860388118598560874950789687552373553690642940657373027510407803468473456543934809402581162259077474941337391062382182999369704775741345390601664724055989109432555534525193944598705366800794811086152254459137235348496214589784957177215234238714748300846799215915063345332080489952483184233330759481650453552367995951026743026361603218916519415779365534654523224938253624741590503927171173781497977892886419769837020650294301968070773061191054005114182742431997450018333010674643821722243674205777680881549512603205945772955371025603973716866753006359295969553081877387433213228041388462983802568345165177727410015947526533353433561716757477581178545528686259783770504125143083462973670433354894371501530647665103621178971070446934656156058655001157133356211946053378973982299977523218481205877949543773898885085758425329129493556159369798608520337123101418962038914155065151185372451955911469781455590518394803779500094245831467258793109070911605053286853264703826787429775116481427639612569090641273383932435277524157621494314869076896640159794241902077734857364079870848897187969647860634077903129894916028432947719163394109825770281718439133271723763705885345912610055457584335266002212512733743310872815471609351652233514203306293496881676973092604811941020022339284774748689387982877765383129935368169408974858048341962200032093060592377751610854596820633895742684520168448799837280792832740678655642624223152382627014661364375438856769033483107698597371364076814776438643069368730414274832862031353571631592943383930232321347827405305242818245166083833924657758464621314635563680786486595668393786925453224349908649418661240790649327346913705655507297072153265319025656230326245739290152689343332080306376536295322579051320177816478101859296786829612305657972285835160524798743214149321994285006662752563059835302281895881138702900793284717020023652719566079460479828076237747192041274313694460036968657127899486050237150459464795904102153143336702719500597365411679045922659047756094380685629758252670926735633156185269820477301045267711442573981252750526921704304248500989734224531419783293392467199874736493494865713307611494244739988469602577745431269034511660152264347174026982394751587912760363751876815515002886701857178872701955199859148801221117384532480991350394768179683519334332444334266910845980631190221302853002059753703053731381334396181017780584728816073174398676920986728162358146381578614327837595274420706884172904709706181174234565827813338111053105874793552899401495132966268224189006223379345003389860479933996559124538951043714363317126551748420157511223851553020994602794645337754812821009069846757788396948863845715073816695026851754076708124667470219739423124162003863228696639538013487089170822933302347021283103602535363101791760239642166614350426551796252333325264521242937911250331350995649592296137130939379448820332661214834608282260707694522273498329063660984957811590646159211614555848242718308862561587143853502667914761192920794096966453583994480014198996457162948120567377198389564319494535111539259838538547447794572105911073668963316924752589727664847593823348128645514376195972011073782777652599029025689970906449991996062606091857375314722092411833168630926939723018545149654776444405910456203031514767517724995943657785473145570741531954029213485174197199709408717041566595491773855936047073167076641396005696657095614395614093455688258048709770910995111843388626383375655376341378319085442568095762411867176933817547998812714213282193837822910029726627012676345988673881603611038719947485660242355454817923098150932359540936968299754312724224672408837799486776861306343162712439876603011476891408685926074358078499186941898628169292795870760104243707415635499507478355724831165353894057273970182837716028246293887771214442712036650943292685101907724537529116312815486124273245689743330229276656000178078024026979339214049418801478638053537863271366586259025231813584588111197454910983871487590232071403959138916907005206121475036748364525875427652207186836349824327686721001181235630852987106160596449875924877518304037352335802868021474978529197132141754040291687877789029335891286923232385881661500571759357233364422568749144660262875750107821011735414754854034472576790345432876094456075018898816940479973921269222989102021439647891527790928060117598678723018263208766824800483648412408626204505658434060429826792174045416963151834345823972997330228070809425574783348768778794647404083140642049289939642289350986702342036201737198244084349399182439840433522946609333977168846148870849346746235130080868836377026037905084578490880394950979671232844110447195564550190767531955732068989726078850821997676934411498432201328662971473633744362159180908331168634693183560832035680911651186465288501949472775953065167608157528865016801632570385628504765084065427878135933407877412825808118608275537850477296207976453944223765189872373626089214877891052920314582051399018875743091110895203157644831849078283999522642645043621999260980122934543513894714855446332533671332945789996352618135019221316652706095611643987256735092704140035057199257922811905985740100995090983497919039069991727407661637451643479721121091024003598727750385574627970805886798938009494170777524251581046720711065201631414222183320840073713666236266430470147591323121584691473666747431926090569876258267185949756934113227252348226975056321913289479639869194823899616635333715216355769136527255773031789001573344605494566927963594261704853726473512377872025544198627772914462118351105713036911947621142623103827374065148809215555853493462618029101860140430883281319542941620223713246768160922629105989572552599360996755858304131959748217762722842594802985457939157401938811087720953166319414041657009794405499139602175735452067595556784347694919407668021343370446284906063888998232240083178891144579606352364970802776242197710593258518196700211631497248945439264863218582529865525338012890166470298845830898560971370388080826546058888459420154878261328752846777971108138937879723496885938645622077740458618987539272033713090224019543280333222693519772821940269615298890061656412593312591215741228423443795903568985425229384865185929335901667216002984056171119005469192238747495154008598548852144037020122480834789300479306763736344393924607155737268245982223092344574365276107624992855415805351964245895766596774370520326981475563136372707682527830972187318529729097970144043232054923484907473883096742968100834015380467529640435984161003880361450042262147232486142848477008495650576754894366040087824096085825755967255857668674134413172325611995260525491263644733095977311547866805271534661949021266684583677699544345923447023886441326820209745806147660950221072045408440337088256230683783650298457462391224700336476218640379256265172623715665935317711392177472827183226283754724533646841452585593318598967082591156927391342670190794919930648427997538622005453911224937000887295183702266728882257692974289182254628456791556797452871305293081056386481997073963431811160596612437809169032622127034346028343070885609579556069147696697958183300199111636056620558696723524988139449846362670065707358395842023990737827462150172686606093404968806488318473275178085509348126540289910048711172034503393330627915876780122143526358443094690864895258295068933439977723359892623440405844330887054132912134567833591552670896709004737062126469484818151189098555051807863683372141753566517184216940843683695138396622228307396807370360988563155151218936013705639560036279528040353366426071588681568624339477033329151358583709242692122901763092490051425897769664069202718526462026314058683527569544006303749868971480087516267366633181284360004742585284312195863890534339436070157459166754290030325703806010263213691723023815416322583994135217938761581282866323127981929061769417311755947099110615482215688002852362596515054272058394147822751720337773010044784820036025580472013977452653828022235515343225671366728488144721783990305463090193189995532161196838112626189887312646606670174764388927612952907854293818867960105024458456659300462364212995634300273877913522165406389899717695077690287560276171479795529151215712756174501478969024374208117593188525331811020710106523375145928269571908058333875885096453930052509262462652746372299549875756807975999976448156995950919606249161654104854425829406412947525552997761733801561989091860942752708125022424421751753227109727628786130030319796244726852523985512018868805848788596575039651498336515983029749161651807194495982136203597561059043224442721374151166035699830569883088589837633932404427637405467925176093193077974667300529052595835957450104006421965231488828918427305792036422181793210055499857830068571625070604873549346602511196960570470254446654470445291031692676121822534610211704035231426024896454660196221059802499264655993267828200316199695206232259238955963044949362121991642459774219451031397357566774109872743410730486115001159508222628357680583548708810220329094315063503912947749787119791973530510844450285532555179371166935637152970045972147493104190130431928792807900424118468110312329866120430132227432803492964177649403752639175195000419099789368531744767998609625432832889134935550130017927091292146714802387440636463604619227700902821080338505973846959637314053078446925502377589653980963238356229559661650408793837209597324359164579173405052698060956763019796823459728417328628125280859114219666298873386808261118478746664006009997791661420693945104661417277875813408963794905208233664420092639795407354120562570732506125406774705794788326861279126511166194641620706668428741480641551494162546683082801573735420646189530959021061480394666462167750305434645373610840612375126092630896346554627025690460121727710551227328567974367847228401421584229267556525596967336361937316400125039155262022438684865761350337248766961232480698050696080812291951109543815792961413719612482262019994234052066601191068508093543161744779384964681361470613900649124392546680233265034433091690150882533204004697312419270248896152907747324343735101036223180371178836096519220011475402202411599113345208236708621895509349150121813808760369714694977510822577896459870029588919938554409852111204352874668406199568176191117975772830985456885225202551684003699012206480047032728277088909941599856165288897021400236336344340459002742040674317481115431990376661286698142925640168982750570109804324570189607924432967133030134070713696859274936022628183974447781429248711827882703337035521298733252818166236597059117872857338797513524499389560952992294503957912733866514607909163804111555061863561278765026420407650148206974553796034234743845152752799909033999622125615602283656998157070622403883279507680455137512520339892882718862700001824732508140147803380827826869703469103648203802653776647911898848891774934338600548370830603637111551875653876855100008581086744378768388484622478104498419808406113232823689145426161145558666741922399561824662684638107943066758792121360345460180842166177814734901757602508898153479040908491289754938861674334191790204336512306383583464539976075824315439224974881141272449519832719471660435130226235046433382476007167795232301471849727103797516126739226463669640615769542808044010815738360466313773457838121903843610406723113833374927671171359160099970567129454937443565679669329995426647624959265681255077437132888772408214156190892814888327777516244057420569564042049085147495817019902297049471822564294029054340350844631024605391751297228065304536134675740328809560028846229479892907178465838773668128634903475523406181833374036594084168856439511280218991096991506272213223591451770461429584099623785447443794140288329844964720735434385146529410482077364634939147693080471348909599592279675268445265012391913644236151600408740495712863246775458008748138750356664217646061744725225705381208647553637585872397101492541953229919927453651485134551748076831643410878197051587053832950098517305916631048195909069506850544360654420934813046413777220502359527460843074416211607370621515709400927724069181439659686615646253700808626758862873195956567668075900023398054476846396469238892528420243192839179791260916898394627394022784514887575858913964706911118428230733161880143808103601093778025169925361176914374083636184557900441435144079869693230188131342280021791745087457770560053818862927991546724137476818216999704966494879394162695650651739985299911939547302358242698718530329864140236595721696328631763040313973583653167787579511872101652128964941722507641540920901144369050079175053320144057298270202254649072780204222191754421544831709578841750854194866009204411041320730089820309308673627235997886438140456460991045340256333314069526192879469660751886800561983992649647993090797168828354358237488038128109165001537724298124200071585062935279195122049873437196850323120294353962263656739249227500861811594883753708512721576615273334071550655706962789358678868736338063663724849821546490544052404760103728184958998873643718345187229269159248552577158848125970621207548549444705789740466138422688079354871169636079879449124199413736673347532735424360617894660731491604577524195558683329923259568642992084651086033602276957181197462841112747958082076096053176455290475416543911238871663496501360807927380313133823283914244802069366690402035970004899989465953565395264661917079487712102473138928006471148427360381131932838428048295821196317553006410502051255245722656454229693929745135049812865437266190848867277181697477487651104768946820812535429688785068402643878437681475648143642233872488988851218750936863012495836414431465056859289079955380866555591870737204381457900627461923349715338657872177338280614826058059066797116544180244914202640303839810587592031143606389699704671750512807208590362186386224158241917382271666479993174735722339311607227344520826609801753596704340801206890800508879542095411624107682330607213411562319954769787411080003158438792630075351032358977610360901235362653560636469708417253220201624390640509304813475448292016517079321143991519423155432092713062126371473681779108069028673056066308057637534599128787782091986538561743346116627072698968509458186720030659535630151106879376909112429620223876790166821411551580290679611506202553439285741782519609299989731546884173589297078197978335135515364869626633647651677014998523096524091803881968643569804575024281267508004887922025998060024556375110519507443946961602908976709008037261508532426758389119813598958805214059522083567912224814448075770849431547276175800681634774350405198060464275315834381721319099528793813436339094213516379000865979652282913260146331748629965795483263675458405877460090900753778914238576001716837780221955393614551988648564106322593937286686426797226683622935661865693749340208874908678755990123364590647525495571200979461761136893985302368258673022061077574999708402819057905136047503679986663779895020470476694002814760575167426693996327858674258448609452595213602408687412410427917751236257886912692191924329609338083394058328823961331440554625107485780067116329587203712064753230062456084640465505555610300637052850864415665284911096321311923160336351953179815105535325244513525095277300039678578214762549083358552490293435183444031203701437835885440921916765567271884462891294320106784111463379493604869554748079784622011377371294673189001245798024248679153680000710177683839751459986166110564225845891613867073651156832872267781443118550497726788039757980173791483233766089179224285356422183168438460651578006115429684921797292358544429772169550748676986016097467364738529032854485932918519971951889127217816051496801630952047631444676634217118898406570580897750846582818729607053708540780729075561272618784765229628669797711966220891120168637529097639497397314442396822496224043361276241632325165214709434800118882372288685436087742516466826856147462809100928324816109079557151624462039067581415581063741407730096894491049321008272247738700570066995617377157419835705662279943156925800848879582471145287671566231340989491356721437458326208107202649203646301922863857014717160270853349791880405442060812667400454000870798198048423398830128245632793956599718785922517537315312884662956302274868822479020490218290630391215533429792309602123562300643765555558285399850755995477839284882839860648454362599537360606952336105445738110685547934969524943319913455044515783703881933955920870515459680899788689319143562955749719427158792024133013784483975343140018956676238229506194080317707087572890837981592912421924670261013816014847368732172988068980418061963653578443763345942338594464098645511896183368013653379509713551336190679024816572753163475782247117306736134981333157510959934961099141018079172391296404553513055072779927663491956307695064991856246860189664006087994620742170850593420022531743849025505842016590094130931894936239822770491300874804468444403712740010314778284455745593121035324113251162905156416242604596768068514504610085592832060349214407311395817810055093036857167818581207324704157787162756311043614372994945319166452503275867063918462529074947742555715288985745242217669863918618563286768788226924337431291806273166401756688370667164674972437895326789366666853467747931539747461742885281098440703613081709106596080413197884931434824282807575221837203686269047007924909519524938295655466835796546446991617047329778517699808191157471650961445677747163855104802777276062998866915308014190380512459671440763749081234420288280439380373036466128790162688913818634766002481170434017060101182894698080417154382956434608508332926718696627484921913522924203607009284341946065646636601560451410323006739770171363175897956263345313440003497543582549731879829377768709631836724513025304143976358202157454890156072511756697570640176569141177991286193617946407711503261313878534351912145958139550331274592239795036328607138359528172923802615535010734814000899361844034498989986583697718890528399312603110141011823890745911832557463901959526686193186480662181251016788059660368157329470184125650653341018965868059860526394270684249346960329293576321131471216138457543216057534738075828601567897862337455378262098169572253268408715010608819064542738579478904372452162022064422215066239022835717009643497769425401931678016529118242562998008081674574046770509624958999396883934401509942547002758940660191851683367183887924327968001090164171882258712809486148206364496514004746728702108692102862259816430681851499173167450107833126664870820975643729263838421250259193231227060439682456226481805866536111376342852195191279413576384542296404657714912302360917251134965037765588567563760263972741959266830292822310251067529794477422414005197630820880627994478167883878527024142788988699094421693755753787833803417096888821055466047330206043275852439651869007064167198292971077979227401516955287006506060436699045120749979058213080120412945833394534436542092747223099335738923014978040148681360495402455665487604631635525317195172146668703757120360324778272750926551273203052598662571850869489894984820868205746455487322694242892870872334976720399481586870969389885901035681567075803037758364787934248791405384284395750149093943583264047387548524251315790975599552271093343340975271463002836407906712334928287209878437178432774587818863821484483489441668007967504824501679867008692317746845936018991286167957591044753915255225956610293052625419994198721956800773425693103628403603827828827045505027362565779185272257885005334936124533595902567729307958107663121861411671603591862406310349524107862043294826941552478610032247272585107857008812683413828421487248602749016997545627343460143174176264684717873267006217811370233371352909519345745993596136018751156427507385779284988255299239340391298839267895381035308941855698211581401852697722669197345310895410409590640429625475830619310383314380038198390466108407496363758198047131495749256227336057278891229033410304771034536887204974196414631753892015867681130309089534754621640554375145773252143723184085926492394500430843334862642916629568543148080575929601328322081147896562908508540378123592063179258506675827592799345395019061171770537933525228675031229132453935965121441072503254570943753323127335051841611640671613865231211511158391262654372667412223921848280861450124876875652068903853266544349297929344781514466970611544506807592285204786901428183026469237458102938728108683349876718214498963196329346070175255670729978075292390797796618532744262543538694618201729141557387889476315544011555381352995010703402637722752853925063141504733573170978823158792191570423542997866597965029638439716474774669457590577690217653264286992813986386603181750520596514471448704593534219369301987693749785088243607206669259169522421534286673092030052191266328921387616083565812331887250219922756764043272642644380569020347204680706347406704500772254358685442298360339027199851351685638380673017167988065187456140859875688210293500059112295681520992289369244731944448624719496782160596595776569771169333927398774380335674861358150382812902438588207705250636916209359186156601970141377329749863396362410986818843080283856412517034274743449338053980796029061260346119878127888117732438155467995349065184002364555824035274152576338865967691165512623812758501301865336714406080136121754834510585322504081809537359760518167504127967321668796600451885037135204193193087694515369882917494264469432483375538481403552242945908205121768007968092881832490032742397457499360052474758645026148284774050983325855183071561880860447782319929821854423925643843233541101789431912523769768220339989005106831966864687394167729600590154732473114954626378095130944441751236009119175856458066201693556943747186491916843091042032408124185447053124023401361222966609210829502931915810383659012034022355989234709656399289836723653419610800655722060567063119646759486652168554316999016978498970355239154052081081860852090277833091094888377423190238457642580830914571143072763687436424338797852385095345513564011585639903180816193198475685687846617194356984232206657513915304856164825149996383412150020691077872577588099406404651657521839344938394674353690453549842994244826151648919552080122815319361656226741115196250286118920593136344027469633691954080103657520051028066169045096959703220070786335177157248279402068446780349403060175489111774725898055744624811521564385122511118579222939434157268446019238265574270846333210867401073131385534417768404082803242749035623025050776602091305100094370131105447169231014490854144026963216716033142140050285820750054783975852265918800319433812184311170894687085074440989680601136963719100083113175353410917820362440184090809342295015332033659124917893146506360333023428809472587978771213679246198761565639610124683878106841863177071846690977252274685728171787656996521056560622970115190288418249317537515591651821822231228912258478018905550897470958614788197732996188794309071983135492934122070633996376702657649953090787535706731074570711961771177121658356739051441315646304522300986936560857878896469066835167064288542951519124825385623486232150426150263644323452390808827028109884480416047140517633066571342800814926789375736230171788058687855591560154378289370348097906546468543887289595806656466214454230390915364790726423739062848853209567515980621011809211829627431157518667409929658928716222340406321681161282876513049725324984299513168779224531642741037207914105101062935601043300016214214655620144886126491091794917657449035786240699848196102218294202842457781212426102517509610742415855120624757603071384369870898647229660737303909231508196957957511760271001154888526395108226470164769362954281148263233726152238951667731996849785304498565475286792282607720349153107263838925452980442870942860293360099919613295230577396172403327319605705139612504616620934058237766768393056966076584261361011952691232951401902235080155088728589514286298069069953954426101681089371382679194683348119864526284413463294386696693392906517101903600199280503618160043493129500362388158014657978075371903439064689471453942480347292313931287073235701578662231152193264794826871836178302474669769243917864955536595444544690092439323864636463058203650624068836546142069392976840105842717421215193533897888653568326417507351181018400351658677556450132431260866751256690315058872409489955922381284353741420293344057691490018035931603726342625247735454003504935061065042215344106434341425127088369409294303282190916509418024679141465500341693903013514394449897722475801933831863352844613198721350882391155237333061543842186483463330106088827435106024359064377433141592659393708459482659104066649386510417555138044045140922807648297784430740671194272766870956041305288913957237374389893443753335086317722434510249118364010874879757654757500777814990700214279033984650318981945400975465123877234830912823492140833274987671370596894896527560886727260729077814749206296653570932888475526793396542631930071977305888932336320510023358677387671828400813500427475830488830351184596366473226772875720598015358343311070448612620963588391297525011515891828993301373548506223495543712010974770170393943376439568093693035720886452819042790826801374201538264266196974827964427833766074969223737661791453009120592700786555437006707945740388710512406639579023343493297379951000270760859811645365619713334193046903802115920958794714985677286857767590401489206763181515277024689652560267331086647740352849000131787472707347447125299804630664922970276174603282475528513790532945485904520618889135709040922669882180284254636373575806982773055427678538868403239703847894174692342026787549473519898290032782472489085555493067475571210015193398610434499896887537931164147902521153609187810585919084240580127956720746183454388850941321738291489406421198400343839058371807229128729704463187432905567807185391137260743477460800765368870168738391953533225718872150268577835389391424320735724291516700675732427675156857296105976982527997441689785697969291639429060877913347459951510895181256747715782780207575423330832097408372395846156059427787021260550860255005882576987704146040789369032736651118543130903915376633558565771523421158367827873374752467051670638935116294859401113356350665718718580810739536407935558683734807697092648240123186930122743186348681520117846984157699904305711064132856153076597065277697083651389327127047610477604268095631814625906810895215882582484322161954571038020775381538187205983153471177867544821026595315865649656287137313569601140373319399586325622017199896028546686490455429584603756294477303876783655966728323398817157239436209404267258142691139516410889785604509679090007405288803061773447617226697511744105222699812294919963905237788620940934324342470774402203778047626756776259570213197123715024988004711294675637689790420449987455093067226004638631901135041141524721168761432918583049274531628488380209235208481954519485999993441857442908831759327577261598232982303202385621570897573053521543432638928019442838223025452577201096141311485712907045297142399434031392430765178910004485895632155315942852646091118974553536556011523015560006776554895907874424028681453762052315837912813743393325542297297502602744965180834881443389479193842657614403912822568311477602656685948514572520069832503680716875663367701267439444138202723966956197236761499639371024933958907637120561741093541033293594520571850323232065272426771082860224808202099283852503144586295707937766869237835155419252472942438258115790470780357499360999418168645274208653347127295559854918497902366388955023981814126896879300367639924527607300255125184347386160338241245474113406120563397754567920380684748039597809970622684006746838453862263796457849574390485859026773633473040405791534885301700860381957173618679124208042890477806344992641108189451495708773842350125478899232313677945081036926409364816097509729755630372079677743086602021276566487527269472488132727705898305492250431606998577533643226683286383297491525356073865141551088983277595177135185113825767967300853387429652438563080445884316098620572574719282124435943192591893334621038411460147777733466803472872343703576133715464438561689426858171844967569009791265554593381461074316186612932847908701907327430370251316168331786140860491763948693930505703045871559379006714628205380860183386121647567106588460948392175150634907761900792715995891130639045180915953739543225743652669191173558901504899663171482057422966028174150317780024280424835641965268325522080586626330797049604952379160372184053807098849115535872780102513906025672707246556086344668713027465259714362271329422744530908865863613596829908708653563568159073804314924005060465434341000828276760031205853597366207216517516143849667472514004783676462496316432555435685122054536974083230122685475445948493781250519042803255148613512794576040174508997622863903934165590463966654678587469945550194702241261030446445304525559766418173156232676627320600815491512844249912860477819799168179695436945656339057514617652693537658542888380584106491205975458055520340941893135699991393045353424019613220175607977550445980322471971686454051320711910197971543530401915255297034862814111825403758982044961436456862767509363549084913763848662949199313048407205225101850181297245876769792667113230932313010147993953157221905022621820377379405873619231238589322270321633656522539922030884718413223385802324905963938221202921656027076529794421464788982324598811756551295764554869272130522056158886185938739578940797085108721319785057609312290276845613276519917356237241412109812544970991780322338860326412336043303889600962915311055107830943095217145535029607621680994500645221998789594299536748960938877072849730526689624158890192784908741574459302641581515880288404039054457422939396557528185714438203578657738508823241602586927446553402492908390279291607939339292644931602840907857798447321610390664690822134113641695919774480683611892307393837320638144120026611784936586997553354489122320635794148071470600610081173170557177271991477586123176090754854686032369409173392290730607480527103805582198699607797839256369819962669662845257936450985271858882966672683857258425291044936414486558883426573158008094155295975255056517804141993930372330610479281253240605524149753699029987059654472137165359632396846507260014564776572953812424355133142509626560227215660810353085172455208605087803083783762186459142411820203600713737784733820230204946644677488735819337039220803319614264017100319472063968376631310199868964163606456691130536505273286103818237582289377345123210956222348547456113553540083921256974797099859379283557934896395843974652624806293645176152149735254914980342021452515900304623760036976097250705165968727220333667274341518744758157170320433362537407652416711262841464497859177931056736381364769470439655077830607296456499996262364178083047425556936869626232391234012953563773038083740014802488688179019189535000078645729258786482711375287497167734984410376091415021557173918767498125675319437395500666856882662681548437361380696450202480204483364134885027557516589049621708398745085553732541049526227124819813429279516135051828310454365100163178769920783162366130419037188190262862449303402787169364873996251434746557084689759868427591241433569817030752578122360600826667659218665626723646144490257581665926896580899491210143193383726242457365085874389894510043981087495266180615950132053639737591250362521513949696413733468377491457893097334336181850349555237477780331618280807721768844542224359073614507218949802414050818540501526438857446903791001271311941463057955339709623950433586862595430777443952162120044882303284915249811211578820183212648653763864860853860213096652959736682519124697593040483236550549806057625594868809153097112443765451168862367014580806932906787905035560031142434728985833906603345525268709454153845389805394582009232898222162062734237285336133911963914042598346417502288558363110580886170482081492809249662517724091507167997793768717628261148137959367880785355956551169109368136118316291574121279483532037268009899979016817045987342273597280932471430602477311654281971587992125650640686596848589212785402464826939068430369841812313213991898946596465152479306675985822562401509525258499883920859879934835689812910051323301414742494291242913760085185007721436484918522881047425145393511069427182425648369789346525050848883847031265301847451811684299821219347224615801994613846037847274135439057832115830385229886830761357895353426241195759417222492604031996017622710035720945742022828928444371983685671976904011001612448827706665271545872007319873539484565131355049388892478230128957891001892588356975860640340820752657191144918293629489089328509564418403790432426648925645353689405353312167649989754105596386380688405221310170361786628614643764957715840836412662300903540814505827461766804742319370004848056294899387216682854075014491678887142889508714915455809190914227496791552286933746058058946194550373369655454079594413690524143683274617630183562529359592561626568939978646755147289717477530419577192948706189529463970642058107530935799471912241738667943622160383388764166812570675689654289440695712766980356659567913406695098423358343364882500327932712214708939440920141338047513306286341465024116367112058042071089194392742999967687958277067645756370961878794050400133730426280989945569320472792192594827569818159648843191767905701795525777765159955406878191256762815077620147533662773350459720172601951707841899239772641396145024688995998189226478084647851124649654219758552036997534195795070026090104447716738441615294195247908279792506765951081879592904159641515025271272222644933265570397846636099379615574025495472948853212479387707840636712269479646144531857269893496206991338434320353155952997264241650983170815329993102767892733067829944859974842361050016166901868654700181406943291142103205560865882542833891453965511140170163787089537023571570592356850245157991741584932313169168073919960959480152697220649710970659646563019545074803854711738803290637315586803368072358214035425001787111067770383852613026180152723155084108341364107677023614694822654366127751477932537312231946488061769242097739677384771534500376909923603900542274336336693011397034443966079022743611449679846476835353698454374807359050160966383884631897768381658294569241150273133815042397963257578195445620977235250251063293099407109018637777448768439981027308502422075231554129502679063165864256668023014659965399459780896310697981537584936081217929208579245028271941083031786382594420761030295104997320697437405103457549145347120264787463482484585726781498987935347012879706087955764019089516848061067454579756628370156459396786277892116466351109254237113016764708599505397427075475990274839419614561586297062071637069463355942103009898956457057263604414520317817437722938513976218152337921561524195269616374300115135670023060078854769920242755920787574678451838051416393003982541511298639952214065062151853227228412046596849263994268257543939028173120145460503389527789757685608664229611514734356306718570226362349991376241977844352967937066479211256433567399409403179713257570921482037291049102455932315398031910631499129675909050012037729359816292352106068329449995565102595916631114789491366706415763831146606047328141844995450627485849158212382751097514455749288088474800384013494778294598765286729206709219517586605820393982335514743917885727838215268035777996554725222200940813257380063983357430011374496709217142620995768432373114865423984105240728430745258719988978034667109224226952076430930169741815322432394885636169455147834545409250773823539783366773584069332710900876376511762335855163954018849823299885629415175409207684139082383382942140435346346510989835604587655922669207937416825960116658057477362186119070926026317320282637463663380320335596771529321914236745915745281328446551222619322138236638907499603174605122291043470546577459696586000802751796221983647977351944726460452769691167087228822737290875699779257664593576901951667350837571694638471127184958695636486893638158838177595697129896804659512478251210894448770303498199397516582204607134082921251609607603822395885576376168499931335238262649489835318348049389612343307067683865657515309966352461441690678445027545252113333487287725394056069419532610285863363223919053175592427205503620872228928911695416127796303597185389181301776859381597216306695100260291345483864564691822588311431685630441900552290637761575079302749848597676622375001100631397687052068907639332073317175151672182949090499210883671826764085248748669150076149984817844053205022932975450110362451048223211992482852506230852364774602784409396023141936297787668637835710204742468071165162604671984688686562295211454460161961287487053264189285665438236511392597784351352675373009956967589546576519407686009188636461451719132866614369988575357190152460244168861442343643911460456749388047626583012076654493748848676948912497351772677879410037766902801911430279633194762958380896845469656885555563559124515502083136039109512918218747209406321998816891741073216102929259417275070603807135096509358001497640436606396298844887612499823314455922408227671404420635115059730396018133466625224212129293871833633793505632773925018446815293029839103870466767732424336532639324787031699344592881919245483293955504490741416848156117000547435581691649591346819135486595108678767332651892296637787313912302541707523903023329898089234153306007970619760434480701177515678513377026961432798681851797900515407814628709526801906764480612872309246364432726912838077250760544826198166795810111470769094428271871573667525441794575505143099352155675598340336029016351182248630558388245036247321666037562963496987405954164850811813905898868634407768531658195493429146588824012403621822123174519469946982543562592157088907339858890488554073906886508380133081517914813650026522930234308457184799968992427698887920807535925671014742232929781904443125302152399163301728045452377423664309845315661587233715877669141370397596410941542495602107450754600066567877433133552114483151463705987753843952308160790583935333807724875176712001630522071857186294396338449914665557210109089072909191590287928386593640349708546672871632355201876428880337720148331186951492309059059347263897228665139599632422533170544421728414168462458616798725188863918453065454687759262777390034851768752788639519914737708164285164428026954604363944822717212144835812226821300932605769654230727119840973036551208773447428289352871044442019409419890637494888826829170987549885567498708053920112705095553424584649001341911681742253090723335156809164992166272840625272467968226746040599577462739196184669116442362513293603919231330569849302391901582634013996901852043534246617206858843708105770164453221852001221173017501515321294542711414255456003265592538410811891515686798406736143443073696560891498036861710675480801117317401968908778247579283533069665581154469660803903292498219937689044606510807526814545521988226614458419924930447526736666957684238952543810076886241022789618208902979649572525760608510351866952574290923832765502311308380739091394114217539288438254424752245325567766546945635531725309354410071260382800993339800797982744851467790927434892641341873754456744473872347515034595477356567123965428354223542964753691577267018392212774454666495779587023649524291794985554486613266213925386855820500998698910649084890648081823691801829989401348519188422626315303387286486496352126609990287704835162736103720532106637205033577467341076972455971134639978252872719332344590006836692633584093376671879539651765051689367567517938781571642607594708673236987800520641030381348588618330525671149829376548089981135913182849924781325774833071256074854600374922817258280435768951592775652718446326621792476495270236490631459777948120289205211326282359568161867425258152447528490645096811210053432127095591524018604798243179168694890955583428244216762032118498109076766039970232262058014798385552124106404894106710825461037747991153300114371458101403327048360850572346202724085494970094483973057154485231651133854079765961171004560383287035405392894515621438292456733664399943573370200548708391546438966832334362931522200256810406138618404248209657709740037399515385832317201667788240946160479872509327684456086348200342116811722892151140777350462006253529116891178219369397122884124727698481272473207611784165405592013537922502409684574741622284231676240353738805469348669843801534430370673938121280417358795691501197096798618460619168459604433630594677835219408220203560266897330751634027695005568544524492987064468118105250742307913201984860023809745083912267324776930199444184143061369000878603782661432245967677119391401353083731247612267016299342392222725990192649999314689178952682506756014985182291594521143299608946120770944165077484210861802247205089876275568594513732547573731074645425780848269008630181382858917831547151683392978331191127859258742649120721327184918807105687333689190534607686895322038486083532770998801169896873758954860905794114937282311169880528464498799094980325010732653584741513309524668880991125997649574721436300238669995681385775433302194345889669079830247650543122194742273883923022634614671611017836453458383936229679728026577785277137586224883340191717602773673208542771453497404666104264453455535768833452166595995833116011916952299335583798224808143324332419915284703570576645426155569649971842983324810729333890143643224838975563445736703184145276208207756706380359080654518183128289561696396163333670746724051628870706110840421203530313701057369184266218539346049047508081841684854546496194980381738012401906612359015917735996892731361633251702547331668152861907663079069541796996677313315692985588239631141270725838315382593970454658969624533074572583899113168847267748607458739680620584936156206932953550015182149217368322340343946447291482368468615859809891197212911838213739176020988952597838594714889004495020056656453313873985644100529398438402619682250739025739559145981627556449476131422642291129333343906584761762712155000372427037074192530041972178989771831873016113867470844326221133457356734968587027408576730926508520291916905904329216097034069410593413848210220491587769394053639603618568544781842028214214242062664749575044333512049969637040674099879163599752527415266997554000365994439202379763414977952130224173891684707036492243238185740696913737779962529438215272127595327592069636939884964591206615357987748398948061333403420914644478706768743041160267040205926678482045448005230347382629586418142727838469433500804695340720999103352725721693084503901629837890477805832850481920594832449702548826952843932132925940472613270560989202397775716664015162479408028515435797806831900280136216249930789142797422361829942620474426287786298131962650148328131147838997065318895823891600936728873466811511764777703890263917773481668506774069487580623006745109635780919058254590183082992261480531507348565592687225443921730318044352907809903234915523218928234528458394183436611308767779027440960207528215341856992169872967076492609615628492237752927095094878334432285218173822906720266168584225039446027770838708984160423576315205862795393854164896255935837781884230789074371562834482398509688056762634263915256693257931869273863343192971362199753238098501261919966621327289282104674095450397984678871169590464346834215774495022183762303241015886195919381451901268777390344374289711369143190389798297389958204656951559574362405045959691572306393583305257178017523304925587738682166405917925320797115212504221555474981400194970679420201092331534877554215348485240185388102817107797131376502723370014272682546230537927683010136645714390276007646020425151133582466584073949459846903181001752820312638859688686116752456823432476527680083532910908823408050591931169178352059559609134432208399516427392113748504105176854986037154816549764629521080726176727616016726138478842368205729457210984323148793789468305855608911118676588742436344974236084241078760807754590700251910495749289400731338802537161404344411795670715878095096133806411831123866878684732016272992397577959193578252074076465427684964608474060281205363838780583107760097885649131636601378740404371099583276653293513444135159416435105582982917710278531316610387195983699474876540953195828162886742671069682721085327977499888856192422346484660219596750920135511352544863508170697155007679506428152978042032538277457919993995418984387877457032864791894216141671555345080777561683630642042041294014016202539461437079521648714419200192369257649241571401434619885642171414298541903209627148583998824996436582984601744847891733154547591885050002664960702734883440945472458807306286578244102885986394614454273388878661870145023301747569649228155850861129022340932167810564883385243970354383166748783408497767251329842033992701306745082374016747714057681504473547264381276739378784235381725078796127898689808331287764449527891101835743628371079672238533848725464208207901714519646408641534390936299614981333575409013932493910510865753728370637775749604866995870930127425583171034768274471574157880390537504789152384767189236039070909968196393393317697098688437903135612163539644379462865111993757131057620761827745853154415697792030063171163914311708558857434265199086245400459505594333960782886498428870294478292046127916917576403456739599351596164354537607060302074529114925980548344752121452715133871498065775620625105646086128227898644262944467841316917981377282659308896276311040955223321566365355376796108047495940231540011425241013796542653169612734080987928414032305709847659537618089968548061711617515425686747623968171346136262881444205856600020953951680092193468884634841481240839886789438620426254365844283180008296738335451111917878104306587095695128745076282282014396583506126233734906444301349926258065192009545179320167377646428972611200868289300582115729370649108332088939503960410353253003660096404721045372754893553651154191758601442651848613774390721452346125674894378059068772315445051211367718244305995184282198780095863427199829265892667301405960768015205507925894041233383431103470477308782629157810753149236233181500145833247414951288147548857170863039480211956681328890913533499341634900088367393022774453296013813770999917743036017981782745803955010919232687701307479353687516448731692057561537189968572667073995846645843225236784826957158160925706777433333517565274191882615022257974511187855017348984777304201565725052701570419579016280646347060543338112767898149217575501183461446062808075526778693132297016769732263278652223628368441885994405687934709792020010945744947730718307880451470306126600400247246431629586244252263037082250782075026630361876166689054477112924005518605995398899256506623091870171198924257376920872227619306882797121586643084799235386943964946146391306789109620349659719133046730540003296736462096031255307143024968899915213538097910604020766471575121852445705763198033145009900240784321035207187952103096620014969816604541434744322799555591005930698742398525466007409032306786593298408137378770757582327120066132889587941551216282232417233754643619941829146894273245973761200093589271245362260228426676261295951006452467603186307646710044890786831357908303428562311897463040529246379193347099535804194114480108590138606285322619701421992635957043986321510800658059673134408084550601737217496896971819509686526115537626268696248779559302722922970447743093434022536788784388580053697807825464172296438751775878128860029552949581898053760189893982215707057946247455258214214824681604877604399154944887163874209917037078611590793682506178377412520845219529818486937242514531076502967139967206159413877831464967443812353549851273927606447057790715167772601365486156217159212596327813780708964281785930542434549917469811396312857126015835225545733786035036703077021097515475405890278530172294475552493578126990791577366414492299353936973043137860538541735250533006890336514148894338590243015983472658349120018068417696143769316500123553209910987183023087891571233612818538588341450435204165678417357312422789254113518908215123668924226238663975718480732201310161851542241643373543850278672707278569662579723890248784394589880830924433330227964382024971787698980869925237513384956718828867899428756646238701115444384610141762587977518909133672604614516223488039998579106977972772604321903155123757631138017387419891919877957337109170627096862914518473039318638852411686661812528841901956833782399142888439656068853355685467008114114652578904234963562998441716750633648867796254025594536759716555126810453589970753573461006485780373047369005481675843135238569600115944755849158397925103342259778915643661480720350181614516393629164647799359190281474658476230682169358367044750870331801357305793323369637454310538539063494544882195438815612728409510952138249712181658509582531690634603216661339833672081945213614116484380424953584907764633542450026960048291986809844105379743271051086005632011524954442440471003103897773621285575614209481446578708651816281973359470192368626466542149499294387548470482789083719051204585033197855871352862216099545559180970967694150489161298731743201396586739784227859903272960257966028761125428902336048883488665119768709551629544197784733615403206466451846431734538127775419835895371941923754121657543529043415955256064962733881516109614909956563157923954694407984404172036315213188651425586766748624252013788238321525929124981941513591968310984012540296176560106942598380691808798244247853264451907474090226488189343786140972903857408314846107037148064424583019619448395315899887632020949710185403906731951650298142499023287248819168723527120816207284861457630411528494816047471248019784364886928638502289262860269584396723494249367744186467824565587058061117500969613618070228295862981975418960632481396048112311483750054353862267210738306344608245862470167200778979256022071055347624283965819933720775878251351199367267858368179458824526474226068934815141845400296555320270246426836300318806232961515749638346804813343392773881935915752375205345028085052319529309698256824568449616612375196225236332015622204692777640251284527097541143694732036616868057752229937857725325486232832256213426373841299561762147934667009907437403159359240876322783810051095638596438986945992287037409518501217824566038794036875463841759792474219569351347083841051526365980092629343997136461788473987181241672783349327992550798443877086976196206715180554547255655548820678329601315788658386080621687188055268914517092301784926953887412921176113602752098251240025590042463727740367098309484685248709516666962868441090871165445838840277736486334731043057982927684448922816640778350290388714024689368711505783517098313642849490989813419603995423837053021146331885469006490986825083460156855221838985912440285150852217996476177185744915837510082645342781708470500812870871258780511090864960784027664612480138990515938310998113873612060209169508042044540155314805742244461104035377830674814493899504146682902814246259889441825971284141725746608372417036207359270344127558145347463406121838108578531839804048653954969023068578326329888298889742671438134822184361264403359591472060491536213876058227152111423042619659576591204066338447817422551134900021694732859192357302308428855829183162784092954256884089464014203352236058721146310356729136795939214048768348827707961511093221014327248288693985381856718563768302927034666085839049631817927439868044673751007266237396945946917984514476624712436289463387596123388765158431511586778189222678469712809228922672776773636442103501610347997477085573098392652598074847544178799439400755376615026485540124118100795666755240961921468738295375674783158301359730163670882037693388135932973753841969601361504737264859852377970925851329105669827438622163217944926851443613482546003245840508680612760826943832221906341289870189069261483372893750778575694340541135204155577054976340282443506213235982166012770495811588064561807224301796946330060334033530662509604917548814087824742033802394088776139875492833787100368621980983320826673805270422725687294436307254301066568013290082380362117361415724175750331106434819260047548428555119318851135219679240031252067384599082169559447639375674989387622798067487899901726143206995270549992927895526763457669333007072021634361629699871406774076841056319736341250407844613269649961298317471081395912271832537623869158913031167443535957123857486219951395920182098389685351033183064268194709049982856344892617526198690016778241154075549058712067408373211232729167537766609239134792921493509606252060066983413263001447593394747575923337603795541898140353161124331558204265757142293151073684124264995758669125191604996857604229497939914413820253407550707937946761105961703923740399693240359539851767649779687495155696406863552528860054788355367364036790341205936344480991429648502810833477258397745463279358379952012873099475035784049359771217792756502616238300644519167614280968514590295124889060153028291123582090609998542003468230008481160060428664504514899498568958279741461789219045634358710497383832837622971680667674760204103975135043590956570755367068262391877292867004197114594764147159494686630162403357832285940811310960739725887999192688027202742710662752583605463093400491947343836283044607399787348827480500764474355809020413733615266997051289941458142289423365286901542880510400895285582069996204918694057928806429269147924345277094160296351674158655436664315151662051430458010477063743497900970559039884905552903073109771316567683121405067787717506349662050870921721138244496837808604473652651401850312907864961796567843959822786706862629121608129770719586516576857106533264413541507510862589345418246543152664069891710694811003565873843927162137976171551267786303710787223347659222062809847431182592565978405593164790550764478624363398418774967606661137431549445374411148837095375989596307132668833700534878223239920226002920564390279725764005622113493499195631687943751269451091931906707234566853875338377439101609819400161831419828749052066209977371877011537170762273679048061700090417342539290804997697881254519108158962710417286005242120667698751661921855689728080926687693676327473109919862892352956341778400039225123797323551124232970959906587471147940342675710068476986105382692750504755244927358433828455025822409153606849754202725099774124948065054552029745987633857948203700620721940027537388236491128809208095248429310200063873011031225326735919123731577930165337264987046756700917378615819281719473052134763344617758346118959907532786240180028956203438196953802725619019098893832614903538534933890705970072498617636140921043421048997666323795903538945936479371248537743759085666534148725768398275308739978185206863052651208866612080480140702303037677574322138608579175376513051872276033746496012833762462818657680010627232041470657521151710130844874761239198043317139711070234269675689596079108264132685564192247843032245267726932552426326551428953780621232671660295122910569341349020090917424766374581235447938502761289907413945374409105225284286795253093566824821327202073618459528165628856318341326402101698230493875138479442482675452423480408765687987422927549153270600902114841998989384166224220757845818009844938865815653481377975110822518366798226441695322232319903003377776758641892918046272235811213481445540036619016303674487133176495951470965824718572366185975820436918707248764795363938693948252390964637888423629929498606981913579461408360305439422887031360517827346837968293652217299150826855378349024310943233513243483350251516322790238617964490014511511935429019843337562169982736397024802684187870743271066606362707797877769200039982426236669224092133129178396125091412605377161222068944198004617764225378621452663994473198153008143663764281589133843508362701983079722922322054045280498277016947484108821142501585496612558974676318423220200872443819540696133256195499334580074992117366793299369896619610337211993474947874333499849977098022248687443063088031117021237475258002272663837571046431459681514727154355812973238572921395917202166506562539634696097434600156322339178796214106058267873894868252551861535973569644516761009303334263334667584255581690343063536815166603910676166787844447852282150925595137500715412355544378951134523943174880767409732447386052116389390593229495028606255282612060184330064702700716519188484724764435518460832080497727159279271981952163416817862296737292661086485418481235752596754543303303130381217957552581334848147334130122121653124696069460566573877216131378809656244352005957710449717507611655085574226688655877826282792335302813067825733357791246489176946433311495687771668196856308078846940527646833149906871460906029881371040235761310724549095447488796163891174074124708376459668515509882903982862373551016773960486409683725640866688230049284163943710328947646307646050663336681704849764869256448128323877304094472345511960114008697625029905902144917300219153092677585770131299965024320773370190254569612937308246130636230681062150866111639034079169143970102937736566977358482770207009449583672615509330052080445153626810584336305027277723562638639205852247957053339137621085345079087067546758768291084247010146214821698597066044031078481237554322542308023138372553728674716564764179557798549480538772235991547006235066228057534778533854653963737588051113629587238710966982085067601018042866995922208061129095965120633406979656164685087671137409909513264162523230472325143517264476183896964130037626873922428673636392903641467050456364178537984916050711751547361846848415497052018490732726161693008395142533292697140950328293501459932634879838110146738507043299380821609952888697159065605235561248457764125053566171382338507278941389242273408275109317495627895397203825004131672130162763321498469003489820423591310326077914836323800005727860623494916910974203381868706044626311079007981294784884029971305756382931972525236374733875581511430764770563139814329449992347396435754138626162608068930527530136978236391027049847968609830142387854397083738992495794211357060535786717315225529332642169833143555261292309936107610656790847576324280444464447745374654931350802767576409817822488660457821215448523803806750627428201935390578275234776725088355976041068335152698443922513980591927966889323437207397677500175756059851727128937273513103596648632442042215189925197483320479213110011560354431552386644921612964232451296872643609354943699973565303976158785877745068559729079183385901988722441043241239396376191188593651568287271836103981080239582312297472272598756851130685745305837354598568092892985529423244795257043002730106915377600399498374457613293698156696322645500712304247456974407323969513167328673565557203525690744548981783332437521574813176878564499276723108099236903882396665006821679812179924748689820272812354857862141990951100547225335786461740082257699897341215387511932843641191737161483269621089846279914597564514541380199750467807641821824034949331268138248618858863447081752483558303987932637698861529703857748922539450736339637892354958963572151395909893648826280830361775826229160771728217775218876533131174519676154863923980574067232696934887344963999616526628266319526960046733975762905544153363682145929502276065787004863364408919493176007928829437935142395090017494742727914431158326855866160761594292435971283053739808974464342465074758436096443541816478456127690630953610825343614522758877418539842888878784625227397980781128756864253694010519724546622602404646565646211648817630897885877378383508229341342509918135954712488509903387644483066909280945287039782995683837979817781472194315954646323133817188333115284873896017805416707605133279898525057317361531900602143975731769993926009571996180692554767081447817293087057008445472353258515207257627081306607654680008318733361504221629174418892688455476890938273545061072056433877880665849885497365944976055443495098284260398553167701748217294624124525742550405458078330242618792722583532443476445999439348430736417580680554118592038661866713925414583425050104192324993394671373270439093793288658089089725191630908830846269066527812517442755038956735340601938915650450908095309409741862480753877223342474762698901438018355857364645962859350817265190659636125927153776981961440855042486336645606714132974150976519224018813348763937375097633968604778259444198140769886914428001867002653702119967012718261405905059321439561389113754944807405641195715984141488908277092538611676485655173957535610844001309169510683705118507020305533792706933043235455265461714511307770524801329127989875085616602718625912566808875684519304054841277524940465022748440044606356182049192733412925348394173549421490519106199037293942093005786782829207782711106326848574038037395374923396928222883723790824538307076323641670752052105608940168074759432606779894296470268020666640830986139701196281815598045943232572312579112449814587545211640349048432221109487583620919831036239803022743791846519199045670393550348286840183355443992176647769490465104750974217343924315132394849970926435912744512205378199639934485446303242768872777071649429552427491502576676661009150716029578429407467489510631268145342597843575755494236511886717267341667038500089573616721957394187713459438299468805697149953081291201277442812994653487064734001061928707864388674810667238723585795230937968863060239450698526016228452823768564223482450976276998171079701649416767048758497166593985995190658964576902324068176831282435768207060216970018422817810304583828338897006744666958509824150948655694837319331096403304292402237509178537735739131151023577683595916122347797853107161617138045865720060736592875089119596394204050337272416099154170348928767883178638014969796591851982867610277318705594910463682268295894896622589184069307090848474451357839652979380910083475323670707547713841700890772441006393947116061253938098912202835707189113042159131389550693715629147788499906503640281679736094418156049519938891262743036218144302985713870687017945127030922894609032672262065212314412050717881641080758082073004150755999464050757615607569798435483433481327057230524459102972606123428918577662957186000819722570855452476012368690508216520710429401361917170303166057496477487806824783360854484200277344214469377814980513342567087698496675420771695695815472014842672871394240369780100757193268185859165138744981387803635182610594583549888615890478294016300679039141668667380109053970836348300124559935909514622643818335562920615924279549046747881275870727084288409481764526489886014394713064588885417369817989356890217684942986041947451259741184259187875816344990643685998963048445868834262301612186600930780347274801051907683319200787921125801791077697054819852973019814193568802449461789995756809204189090406739397621449279520926969812562857842264310942610187967458147241420601711560325145159913459481084480800769646425395391977912004609247628354486548256238799283167340960791202049122496458108062000883753982475918174246610808008282410558406462577826732875421905984216221262732002361252552874525316540096695195623207345884771997708133050159947556533784605261322077377039276360063577630892233631002105756386734462595327249191773203092324709216459576147709754085761420491991396444804093011224665604771970787462951659591720104650051269879539824402959222167149232352843710653579996706675842810723344605368258131611187190429820061434613778525163867093758585088561248320027595049630794185987304639489114779680860340208437541909893895058202066402711841918741244854831345841308323958338465737372058486347296514176879026089266184948026002927525412807853014351460935696044887878412933484006362610912069294397545905458141855517431384731939147796295943744972860954714438123465015155904372830836789588625420558948528968037828931525723028187698225320758807370477195669912087455626368283445656762604961899884032161208274252302431512019614429776901119520651853916614854557347682234945607454542350397710133831010518113490172012682118730708477532874208532415816542343445889263749392901959831025371791557595830125985059302679165530467289256957387180596202893909430321561888598724444428329036965315181728534418332274154210161131376464448206481758777637600841091421024991119237572627471550249020093886155923717605023704215449019842255947378282709086556093922716282144780637692603407157947075106809878622675151217308793222501400931544234889959184677497354986848257402415877856472749223510897935134081312910403606837346325056718714070447719588278849579251171889964449011457453315035432786673327013802961585197475879684860103305379607938007352687103483926321056555686480444614085659156490446520661214967583658574393661329488539635425836253398525165766541862741183351652790588493600497755267696843545669360167970615086208423169465118838482900444515781040464186811235309327934637930549724819109141451720888333002064873409858528388653806923087387649492267028926961367616081988367371628840154593407871294204294383288450692549397484274017068528247485083417327370751217600707062617458240817780028033605551566211123406960813303936871710767351771568996747572997586269578506667786387787786479012627312243429911401230154062970009261192119480769885034496657715293717974694497644369368446263025168270686088034009775994138416890297797517445652349405771626399224015892949559914014839454231656738872615796563001978206883083449782013624878592521560119917994704175048595272033291181670175210365853335654868250400712089765117385915115254547487725592532516521977511756160290816136167050063200087771746307731844871423312878391067480471656860981113807583004632212028712111891163083062508078660501677988421381307383048544585708151490469572028480719936479350885305131930474216122204267720223700000425956412474887706369438630388257861122127989906615190372845216060180497648419587358842480089215130160706207593942401819974950179164509059705639120918042693014083020186733103803946625174758520622206648457113306197897329434427381486304386493933354148242598064950981482561240523497083108456100431632082112308817291416071545349287576086064193442697491021170540944558863094277598283355707831056692814489430463402474382447655935969010020939097410738584796852058040596470767680099571541553015238831097322319530997079457953620586509032073698814470346603427307027228111772117979705852892967542493507295434278262511441917121664165086561974246504179312527640993603099320301935138890997264011198312847649490223597559506322947503380182209412788882116531503953127958004409787306786203371639286134593394034926988231230151425661502799627301280622863449183528369681879671803468500448555544414266642940516278234546365403532804664527195675045902089747482271595414631513146208622301440718676135858561871449563866120238711398965007294868903065925150591434656010717936803590246226666407577126501684301404496687844144277203279249266379414635385399604825429608055813207081477366264350969263043156320806063270903420290319207989963577160085412932359904621994236890897024881115503376324872426837290132844147098171224878027138297122278135372850459379670369042343335388279560034949089519907635980200618650176822940436637664911171782858112804544174872220314399200110746282738459974647836851105778132459775580270300367233679363394405405111636362868294752560618815259310686856101447497757189029648691487757113128854342351904202996071050604700845620461613632597761382471964163994931464212746817223900329593463917988497884749206983113960726653561556228025430667790767664864891452935469661481033115362483761450946926535818804201742201978287956043186232618883974388472598746746129039327328830263812207500337409578833770046395564327206155847028028520361858380790254149783196969066047592326782435770245200944128819578612089342414459430512160664249356895208878347975376200757951945294522211703522904180451328376275404717814375738863018574253863300869080697984072311946848197018581603758765006310868575573242558487475778907372152300123489253266501075428742524844699063232731479826718039223894324452052229908448563865532265515506955313960325250491058473476329747890463601193360397291213108845683329514254134397545605465108796292566622515879998893880747599511417839985209488274224328472559461407959854523761786568032616454787662895933592498879641661329217780401281406432117577434987939388987707253286745881093192403628340558656716173549345740975369953343792059776052223714780614896143255690074863458010771780721154769383120544291319836303488139119931068609911956907868502583039792654156764022843228756248873517096047233223945240028698396984443066497181831217784570256141424678919554330150638798683585996800021690082303293319893054060409705360346769841842803251588043027686944697501827132254665717290551434880910911950978248277273678602969791091091067895321528436706076675244253405799126483491687665779235898191091161843406132952328062705475940237690827431923100769546605245796379066702888717594321811844333133459756962084729841018146610241407796653210159862059856878294226450771470488144872597989042852812773360826625648299764149063406756274069718145206739354452785722166549622433622557137117377783917973534176685203783782293386318280850980751961629331647969225210217000284665786201291943670773937730299604958059177173142904470383846885720650987616508431503451149993164899553169504139631834903906146944479488735967329796653365974484011609493400878292967664954869065100764678378757852606358280574599247125828716781749725762929723988487890893714179171916484522334994554369838622233146550789268710960152359315457550534469542532930273319890631101652401137142565571880350250116757203450133733969852636261862123934987449501496065383664947685431514863615617782685328255059432971950160468777754911172989665241522522129090252670573838264969379791991585580022891155495856527144738092934809947779747393278989544531599846030624784648558029954467853723103261253567187237181998576711078716220571466043989156523283595437087845773857622933468671649828229884701049987168897208107909797519769312173541936127718000531375113677892343523891747384166493718194273370823406546660851800823907080018252275542259084590536599939743609457407419654990247341388748408873540868859837635468784902501045468907954680740868960080514825284224683702611681244667367449643508329978066421264787081550725218447463758912285256022037285238751182206005705044063330597505433852805952720385777668979323708248931669979808191945166051116405480615542662242519272081973109639886004410477568385921442980522355080749384076225240492926135924091849630254308045598007835541032674995878947706317747069354464226176964401858942963826921722178043498162527473683664056482036020317245369835307995335423035492796847132308503821855982784220801841851287674140584635650411057807819639426043042945010617787975456663912145127481375664939258402129793516733369257461430838331099903903603103943290711378323246175708705356245079965499704787290672053738302879979297093553078138221465679203272511109077570985635454489373297102928986355142268969644843878206616138554227258856254875384452695110396811764795904551909313255638821347454429824950576526959322199185601567537526477521489636352760945883340407639370005293465548794980162301738274481627336245144587534005918962622409574206918437902660537334141536701207503487340677742258347025924772411047474253000543777313024517800317181747257865863351658908017734687693589648513954752594069123496458023726898335912548302457607812846173442054887660371683269005338285678680655235954759165537192709237999009223627183392492138099096460208633866612198627311417058942694516070930830389251473112087699250771536041197147071662258910941718163198780786831910692619922954454827545041292828992645185856845251859868683970507166822334364928000140204273726746672911222938501532131719261411483508519827137373980295409715953631772085208350094745957239061435838343108691226422700191388128342193250383222005391139485697757460308703461692125633033031303903552190843703977766438698383809887138115328692386733762796328252859290650379376338182805087956694143220113058372467422307005188465435283442807097594422690926697108761511200331389715149651288141886008001638110388183931741218118169881061578620432652852591433305468545834199869534856401008474658215612731199441699661375955506775789389324662929121733950780427395447147668169957220058653519704534959986686114944394758052730597658324050945713503271950004058632026461746936852046617137956267407092960159763044224992002231201217880286209409562547778598252875443378751094794912745767895838337853152724710709647891337317341894345908307169530163652859942066062283430962350825543383693811045220276637734892461847485303560505830544945235621241795003827221676073700733321036395759945909308815400509199412416602358386654312998256937628322508979491415413626726319828244713318713815483519352413338590718488507228175421244557838773937550743183886655139412528191473549379651901900196663049256278438599246425565986289486361495308842012992295908245767364657173082343851841929027758478097858635646832870245637188008509405737364871626976052285588344786605348358340440136695768830955188248835330890953342312144522607539850753195544070914152181045507125745419042248453259743542712974152979679350435131086121350553591000537260525903541322396945497516992750358921805098540988274958030882377545923197918301818136687890934604036756149549344863905492293812164179153139416269469338686242914531506186566885335316061211868230051832727685056510883010645702139099018403643542158560252305536814335031946896008483731058136766255554411720883053609908360916010827532508674498962894069218694211769266499541026667347559904441171007938781222380668703546987225401605463167678275836282270228475000813456667410435738278420298346753968256987536795973608894345146646412650144968823106099317968724316770780410723092624526837801300787094747859388936900204071641769485579604843259647587010362560701464152092179112961499456918431384540110520113635323608205389226323738482670208787712443964792003877578924193657690949759671366287956154121637758103957806072077178726930377442711613903437930036412078656526806321561829713826733584104879619081622752354294860402555872086940807428594171232965761834790627422820534512430287969896030933986716633084485374520009938057227985148148423737754835862690783564778687039038109406033007886053040121016432494985045587274503975093940981070055628666353152444883712833047898931660792844962298240175484211287857952423923005246664859696701075678000286480614823067264338779648889795017478531462376019982323417300909094456665177565381520356452576404921373746149240630330396719689944311967782808327055306224183764380613215307554330578141362601796073225455670329611609320244388322361822683929326530252466556070232277116235277065050067105493169306105183981765914331884978676544819246631000105858368724074065191938419911991343706287710628020609238658868792134339141565919438682657407565129230515405867854625851543260885092419549306213231683217806885622843083243003392784257752215973495777800852679576480744975677432038625651802744925653473616196840968038564070429460674594755290649765227643889532044312222514977967411316418653556968116247880912342070582359668377098167115588192083329544761694939084443900918621737488714232369621632227062988361257042915104049870903246662580179762880655563099225981874718049607073428555734438482232585889776473381949495486972148159870342278368995453310351962702880831613197399361018994919115995304543810652684953069449522098010152757332081961851562759179447946549825049916669884033042678119097271536342400654920089156197846689071581060212341525801825136227606913994950620505712819667367622825012762504782316093396141394130605596566956461664686449752382415612619749358990360341400282401912648156539953817082796482273646554396812739225929332689060767880453826661224201357039321972388610398270935189896320337965640847052408428686356965498201209907542645736383634032009024900199357591469783184457520179284417328987239621509218834964703581774122206557985187257568386071268838456537821223675872974595370938647946123696175100214585605195048959161261107160784421649094510945786701851084394306593951717478958756847982795294630741326647450131833969126838983188619323833172901857129174236332733174452263785001858116791470517098494215514834483322582693614023715024448227549262960989502338377915533646852539791697562054570641512426825320283787779290030678820953307270636537475609037957956681431143484827262290181408445227330500453714576676710165224417380644784315866014008471950778432028592907078392080450295102156901484263865500145639744065560596955133503793391655597962283462322290144311296938398240934968244472877038748016825349756030165237564652432545685775712758216749074734397087683855347997561991892692603904563767414030698749739494902124101165061235369685774161304038260353954514630441466145640022172199254652408586735136420859711993624266154537689488913529574395594926172086183680757515464257299525459628000489342850144480541835241655507326403855300041494473649690064600455363649571466991993406806514010273824117914376267091304975505045249311362032128888093058605144170402864754696385658846761947068136205190756963894222826473532982077230544563458928876285510210663730841966183812576525012843019276799185943847469361470701828879196540538233934430667714511587627542278401741538615804287279955164846106059789610191975957278788796978790097618431518570926544140331623519430538202630569863613700589853993173144212517442952614785397624509818327161025781126055714967137336743508890455680869135483384373708248301544013102364810249261909273940885931689242450647304351903674865839982154080191393698834638155185817820314495056339631432407893564859651297484542343106236388534548525206352017149456620697530478051446240813626653098553013913189406458655006026460979515839895036332955765095820819436656652294262242144451139299683081960780239829831927734297735123217711034502590106330096853435011844098279356716774174504272044629337076813826672885261081313288130323675957976019412311227714504666721553108116421716672853643802865049124286506647272758222202124581543209518919825442209398596302775528969326393627205137276203648612176964829827476368537144394309115113968727568909751671285057398975621425358402115374724704703860267332603323621059568747194317645531205461606667861521481858409767543299433939448702231915914953545272628318116623856505491051341493208550398215203439149311152621335884649933628572705755396073198971857361515948712474126241592922407424451722600177771724408554534707257973314235838400573005411453547481971965193491053902415533435486418375022204612824205947728159262810188318057469383954355469892331208889112537795134416427804861837770757754876940903715845126623548833351629331290669490665218030350865649099458563022422186295580683703107567427501337487660052712106892641444381207934236536452555924408507842791486243815706585381177789711699435626252880718078654945621956581442960123512013333618528865919375233466740320797816522890441316644266585085517927961964800046051281906205058376452029180143918163079556788317830030827925472721105725979580891639914142524561232676549935831028038886248301792751533617604218516315025420119583225427128846570283508655970697693029865953569610110413317172148532553170363986084341481005833855232514912003702824262478557497500749841342825535101457844967737350490734269262129295078433635620789215046028940200425754838216549740072669565453912490229334008711734163603033573607170000977266983267079634229478931766829888949570024148769460844377165972010706626749032609074837312879693933185301814040380148225487091884234641704253688431599284269617090209650464167625223999447785813640195732848709394279390966211242342629913152178981365836619010432199165660421248295979060722170894967242248118458957392720739746615796805532306019689713302181395036327201861303440590675157693380389665751207791373596807403924424144989411321135874564291122963092334743476522258242891441991479697419513490799470466277763170235305509020306293362038054463558949737339015839729430885414455081946916502008894066700932700435488189035358605024954408366143145157207343787063165496005702807079642751383137526895590803655295077206985970198162749421983448444109192424779143503283969868479896066409931665504667529368187007767094196399064613899518233908588602296291981605723982939872117640417969200509739284875970442726598236194738239931444897721607566225408098762031755695380654543852806851314533944277391184018999956670798941280416938143358742056624441032971032393150035443439418810147149625607139042933292814318722523255490327012506447317890099804513100936537367406657809522559913903467765925826611199303701671339020587404845806165827987038183293770248361849225723365171283719702490642476216775453121373602472091565410731045376597022475419590603894604716055440873804557136571147847466866464854884830066686462218231820806908923174306155180118474961573174618266430734190191515202278246542887517121310505960089298596638500536015234514146665419134122580058484948383989282615538767726007723278748000316090369317598167401350629010444627955161486665209025879177702864792061934389351787118021952564640094129806035047903013876112500826056537104485489270909578927541704806635012410754524724248751162077748524658103711686909736291404044906781192857437955963638479134073989350854096531215107498157195438216367742496876518207381307895353744790278075086598232231937024301132690163152588941970723103385281507847395188319337674481614690921930239898125076839320854277257796313295434765403451372965049781099341668883768640719741782329456221683737135245108755377790845928020702494072833025806831853046999408792838210005435241432333652732642267280850706417880127420957347495465035759844285926928889692875293383987875153100191741281515352065913168809848893301955972511443904844250499895606807972629812537487003387900805341934882227451775816281520101963818518702464605251160670570452455139129056868868856205550219448461223420885130307975924182848280702123273942129393411637790041032019355483064478774650063745442132088663628771008197169500904757019890606528152343355323722454833565397212613378365158085100504283368944641289044437522155877315849841405129345317093099943497100502347236210798529486299508180174269605036125038312104173050091056663023853243093459942785094417190756373468983868990948629451966194731993263195328823152065360768056813650222287889792677891792845856979110997722037682309129846641354452419208472958294883996823047847518693037145056308299803752316820198448352298120749447441150670835179009884063145127004669292590927371201809315278885733198094338652702383153038226440681561859061194844585953320239912850199165721999623487826562532279644398718645314644317916554952908542072699067545010057879595766798938524196422660904314397364804960000197340135726829584831946525722762708838854810901343587839855417448290373503983190042336891407323619372259960014217701358719337657964078302455723836905052300917091899058819130007229144327865397107478000485214096543751515365300359348413606402999256821923456417227570861804969845734673566807706107854243682770479935524342034689674227007298096291420681161402841826437202859032539253074129993329327013677726222481693025352646585752770661249987737826257327927940870144546736464677798672122222341954690535811287773922453043742462984142661484801173188171403656188222670477371338842259636989024852374402838535592213639404029657922073812400994264447827155166716827410090149970019527813769453312098059889906042791990452142789733812407716335273021115315565526912043733650772166837718023986502546493425957685531311041219477050743615297940572151513052312311289134144084881595681773714645245780925226985097058831852526833117299024955946633712688657593943288384909995618731981343790273607212803253466932732240736541628160257564834593088964072672656679800548884869736556592156198500718437389866668316761381255641731887975984527688860782337509182666149667562627925660324624175305684690791309290545126052148422997725099705172871598080611868366843378351330099247526548488692437836380850447050308347537082215720316655674941406089147482854407562055425376058687038132436436330428569265011115461575112470720046743450319443854253941329657105961344826183890209345313894503068124033428275886338167102490516162747042354390459191502529384888560421132368117136392343130720684361191902612885725278902854929824760223181418149723194824719036779790634145371429336658456480309709230187467702617914162261165326887144875111352145557699590814291864115316711872166899156776447595096258557765083349263260867985238325526411738378775495562742673585405766104526260739240817758730493999907464125269303316646262152627536089094975185766257385504221575491052368800494069486710090916696107514414774544564114435222958490493544954949063723154332570151367530129355427592910004868646143122386348168531401564787755478692220267806425084637175508138400908812315681078636607413465049930110574545895827587246968701360973182343568396619296093460878448750597752178050244438482728327525190714616729777282189045675381502665391926695161299789146310281894491254049393811570917427516959565309482190259297434485016614216339794941437938654340541447631146987760836131142374263430485266959517338841461332581338467348458483685624987372485401095446035140969486288031409472368203847605283327656440298286401284931446919778600412882656680350799094622637133298417181048112337184649722363909570716706688375220494950187021103587058496464679810751741825402569747242907187041242542046580290065852139150588078828381464559928760942593035468673388811920769110642845419955577128296671775527838892715930548160626419762103808967683236619537843159378755563523779082463629307094931499983379320806823347474412626337434542150468838435702318709438444995009300293427529347964507380534205660434237550721121165257172111300142264101090174501074832918124074005231638279559544497950836701116400464369942069785835870816211062307188562776218801939351533319451304813427652758501482947750892669947188897676614483765065267968110443740063403842908220276898287356691455655715114563896140009514313129325776056005385315876528780776081689878138933449696296025018621697396435051426362333282411920897374093327532437314558796324220260835057917520132468378010258705897815828550679473667838052901441997945707412059777162684430714064966830454078444719783765993807220768174355124397831126839833218232676952280318899073303935787657573282514492977421242437442461572749085051842363826859115521475572188314065302516932652388112267957183328200607448737964450161616019367341989986733975738042644008124912100244447366576691812489211574172643330798678711336587365705357442299853811370191570949254886479699374460148629174463508288115541826869049246917257616924279900241854804774384242972208906954587276776971583675579119029467968916882786875138292788780592726602721968634909705890629606343539983998469048909878464897614192606999732248886059926817136761964560837666094477943533685291454708604694620588611656570520065712935059548661885919674982761256129798155413228016128138550601585312926195723358029345643627520307692014713660983454357461968458903968453740176035794301776358481676105968851419544002373087667324540954486901380431987052729330335322524139488679936250809300128824404579114723524621560765871367292268428783414550315950710078511549650071440984732670366165423344760959703958977912170659936910302184402680662873441577187260324650292045254174259261784009311656821733182005002786700695728813428228507601385735100641657579816736656067258441498318511313907537699249668509533271610060112690958569307993239095676642797947256311198234088802862683367477455012886352440361169023011236607032767318726915099357477621600842712424032948146438141882103969315402375657443234350233131488985201007762982471898619884950757290320267665269024207494690187546511236820051998976368169401269617406647794678200929299643356251087245289386308561758505547775539893206329211795717568425127813492259922501193016440647246442128425153340923806328241780239195170191079260064046783401067693367519918734432811379156108039842431456944365643330354680228337962790964376764607085487037295680113291784734602604160099123110364782151019835419634389167889266341489421389163211296341275141257794035188590293741744770076837176213196200873962079732139222053191105301019720954210384668880534172068666692751355759922001118424549272167625693540884184695596913084400986274032589515402258387656965016968396702328196242967858695745042102231398140997409570053414879718821057911585931272919705839719621682638170322819952789133343019017153797479914108102663036041052893471241878886860063403075929728631644244090275926674603882643307350135963459809199854687009880262746809398672625548202091378922259134376312776728781434583114035244558595460393297283203687502392063497353783432239201876647034078345401740560279141060731122059890622299388574691645089855308444096496375561349713692015663102798635846765582066943932243758276052531122754134193106808569511684179753342733172743708051915634097415037966776161660276019732980000348894425007141698000467344604755780545645218270333487283620511807242997520504037334417777490821803549876381978373282604850406269477770861225364515653047640690418051249967366539963476785547030196693638558298552053471002396492099795969001257905198123614660230900936999393484352129959794698820810954812659674978798940420264663785387902321174562075068861700583092394498810452856833151268417122894243710027544054059834599646120159849489723356774049630212899064491072742102202546493285484362269009329325152600517676024709176336025740227968798410726901451426358204641972365404204726285778686792180216483310821424203291415713650623830060231118486955934410135775825309872339617808474194460141549021794759157074078322864330892131560600830965564598047023286574121268018904534498744147715950598554467719064665963278733429984469315970193642350556935964416684253600907641336002307297704167590813149958668924554810259249498337002901705947043771977836556588525452988254593623568279498124003122119666485246022515099724391698958017277205711220965569656448026889575652593760555995121688858875793729693562232720030169037367767709005925657956185830189636674362164017519782889117296899244679626244696628366114488999891718239159655319482581448532303640306138366213733898489993994981807943797333404625337577862063457362162922054854408995964291794819740506035235129022680766508954645430760175226299392308504318940026945881194301516991719870296010992325967596450315860333422465228276783408930423388564565657854452173238960155831374888546358193681633126651100612530403955508720064847896912917380074751463923183568277026706728486555564146001375090825661597011143785514390822616624707245094101363730241813462177041016588635176833958733232110201567250396064944945999905191282142927798993868878662949953044139722403833334070698851916501779747213059212336205783423997313657947813849650804815856011533710859141183885091443207132093122183808464848480501187408079951928012167975074891285199911434717746285382971129027386243194878588644600312424138346993092445517223186035109971934680863788356653324009165863334770283629288619098895681585627267211726073521779660458980563768772648714960853527999255747801175929047601407177517599416527520789597290631761550857779957769228741421411071344162189277514242350392242237392451834688860358670229239347412029645589796376087600988587202746350360726364728377334598834145413450827476181492544293938838762228911464606678745657368079026864332748508369448926005113458323935612505989368695512265918827491726186730590003345471747253833458130656415482905118700477223693311222927049151278955060677044806418903409613971830921951335191871214054897851944677916483929497378026631922017228209775427547555117135118585783610229473309183663606017137648733980722367241411358244539301152742084552922362315865074620855729122881532601581894013366908701276082558718103752052529566292755828116678892027382098608846295348244935770558618723606704569839873316437131437707217093862764321137566370468110262420282504052081919163914814106680977836258443397490867290091586321418064736026751244732475917003278696799832346574393651424756258820005170844015093821703708521887764723607200394460729636757482503482996932416780137218319439228680816808562231922336555328838341793306373990717917691260074447966446231324054270340657172293608445089036123996312702642916562206508125967055370542254657734298505056192761880548159639153325009582844224467062289935733838192843194633200082541232011299454808727992830144344071604737554415714122643722948802266284658684023686717426260138877461261210008372061491703659908156236753241687086005880737167134352160102219575764606345352840452649456616111864261736779116223295087763646147821681864866410588905920227263016947842244631046325971851959796866031554061198672348724325046849072174776469289509653833004338575994069689436847758003431087093998883711742858479355402222264179696624599388510805776443442078899893913296483292688307373134149264168228680532180897489439854617842064963599041535239014285682167623753115007600591845755945261850322567751112062927502089390068041951123357795237952841565667529179681924655165991538322976480717844438357201321720209226203109754912103182619328922906549142172583953476336301049075360001209570914023044580343763509630196341636879855627852962958657607282299089860426665782434196279280920680800797540614176444909681177496499165275240946442339878271489099966379346546565680027946969623883294062696927137090392595456746355921398380193510520080024654388267021530545840614064340470158766992002399954243534088899986500823923320820949309517428344605593345284152950509908295465938907111696187470370144362950828176198172947030073517958309044418841125225593948357894969972211789512615181814973393489397371050001389364929144601628293422070251271811467515431011918628117907989126504628374708795443197232426089380364865014993318844695070855914475938269152223534158588853555253201923798394493479999743963395573276041663297394745342642902263479389083133251241105540991503845003806326547077114993603597628473282319502256323483387872798966987834132825570071843389722287148321447184934990522110620999333349710148830026520987301117305900260827844536348720991819864321374890536514924987375636235091528263874810891757525515598522065547648256974293183106938720393001374142486995223721503066781478668776387526895799871125652056891460524374393223754794064021599990544460718145845129062818513952554884989385961655015572800252266623430582450525589631958094928018965624769587565512206256144576232440412161414914485323349068136031279717861938244173158563897997855137589146432703047286326850632104865290925358408756504463974645511335258830078274917613124993598746334232060288691467658468583862615795428617488133297817105897385480712483508864679046981573366905494570425590919830094271900081261202618762276856100075573867342081771558237524579811952996605793250761526290743615212197931907163951371080363586800840265124610777227688892641451790789746556700829002146933642078897254693032006332642004183580026250417249315379837294565512712014246866798897153974226461362695001198454891504329595014714379684943407332542071695306162151443687287503490548358062581951171289761162829316935200540289032634758026791986318849484019364948782854661701402211629295804250741832556386922389132315419450785063900216372150450084787044235917653507632308120755148367733667480228281836216737925030764457616626570969456172124097070309744989149949061457784019248825869820391161626795990692101450316817499478027895539921103655572577835149847710926133886738368103722656837737702349700441815570937535271925463453225737857469289906711013100093197137816090824567999906413924402032414850096058520586268489202702532450506285569176255421231803227154225852123895721590623444055528518133836280421771203718000319448070231637252084222792368247841542625041318315622950845584867837478724467254113301000997164615041387983240479937620515277671408833518551153979174846907185579430571500489528310015942846515488778711422600464181823178862401298229664736905315050598757228283200854318551512120117264549277447906491113372458472306320207008451634312103358903844923346868198080899012687813036636101628380205830188284111198543104545672174826803764233667275323649772889841254221819594407645898009781082929761878896219972023344258530083858459358945718851561777216735676215907386161805625350308495734740956138897191991705166636258518581547102049135528547477636296803304772388094837234311152460759127952956203899931943364154821406290007061829252316868976267252190684065617353194703164118969681774207396315697481669441831254231973693548352595875920792520476004741793887833753536181530236103504602644228363063684365719904979057411189250096642705377699252694713381989599480081446117079805031394450493109918432447666868658377886443106603558949766841033080998925737747455077128940113271240989022215634840907207407124261987106824414913286525830731689213154203694784179691820708485207203783501908289644332407533635054673739874640151871500957235108634237503220253392138886350313213079663142064864831022581773147425309950252616022064869966892866626771785568409635100251678067657056936100023199108074968510018531702928815416578974180311320026835015029129852308091664235012856470733561970398801409783261831412959517208415900392819253686582265567175459530444399936556206569687387379729807773676824481003835664429168553366085148526903902836134304591204176240410607248692117993514425006137733428477587375973554590088325639412131594632517045247501732716040058189531720057221709530829433168475348590117634553306545520539820731377697950141059505108678060282800194092121745773346658431978628486487938067360985793173148784906059668595530599702555609757462341432550277963364239449986264208406693723576877264582055589916369568767488138708217854630375424842338125117267627681591953484849229362332146513373945302941291071600893913016205177199989642092264419604398379111399819280189092963687702554198458904399805702678553661115449805177826057703195352149283982738385710677657551223707556691048601624810608197774048400186322451957696372016603769270159258883985430292045050469012432196527855884864973951329805975572959941997391576846244495295416557787534661626138433886803731158530551889803409897247907615438119589031834429203115696730706204205642942896528735078502024158222334959762213655301908518095769278282553879611467080350842938860091878379785097238664921031204668167690714160161371874739128816371572043593584402311323611669188664529007480425877355458420559797865538939530081115012720278067769722029131742206649830933245161886055432537703996486810597526798104242966797835114258471222355903605261037669653454265910249439497691496787441787190170510735773254430807324305582481222843707344086273603117900735462888809111870728178060203664070060926782647813826485234080192907722946796649995282301884408500385694853654789677666281554345562484552136726256267244207549116297806115717356158014932748667809495121072201582530083867536580125537591338735047542755774335253841279189636470326969187376648141372151291834420492165714515742800550699632902663043404274782149474778921193204256830922804293154927901282252478066327651461921685043565605281822104300315192921832871211672558545222290614605466079896428927534927955627291046765851482540274891972692674206116789016747914598176123015442449607238862860846358011380842748382886241275224407394165771179920024158936035973935451194006076351162229882216748126342894941745987763875697234773237026240220142174532604387825786879020328401634398036942458982278982093381512177714101050505874402388652422911284071331995687033854065557427219911290742738799786801551116309264596793919735239698649586172426585971279297622537563193142553970151502458305028771121991617938592907059520195257685408028169803541212264503934441057899199224391569292858404702534427102854415179634637324977773793280718973488404228340195739757252732260101404390445336906498415026220191393584939475028921395208139088754364558260712045935657288341985094544160900250545343074650589560290412153873337768411946796789958918104858279222672584425892250400849526153393070193323563884356487333564159188872070640200282112712888751653011911988665426637130248542609150066282564933751213391209929270666305494405258610392585568407474357416534074312069954854538958111007877640286423328171381352020516577439763530734447888972486720572164931046277300154563059470549019284025854848429776357615893407657393345032341826477512072793753966095846287730771749071234587349156028760308873298614597757861809700771850072111353224280240476281972247579205148355078093256159378518455999601457872074214992518803952976135448929897677808946491331242579208184449814201832942652364083112004997002957073774562420047378679019651422905478832407882683972314539750893467647393113250966859280504972049932531220521647071929801246999702642666533673056707083920033660745866893210070550242787341775495199855400454895365735355263872466114348151239961332958437913377859942475408548761084958233263872283084116850064361419681734389345528002849572843084835175694417993594986416571009121065405707135934412546839647468291552406960470076954877505409688622893803756123656224949904747057657335083914273653766433695043876058713717362668802894751088361170029808859691139891540917452059492165878017809216221835558460547630350405822014400702011399488681339849827617648321080784442204509217290088241633827793291121672338782788617058871352376486145404631291722119274504068778290749049046903481992994052981072606565459197831386135054636757295082941602749024977799614961728716878668692478070207616553362899135028246929648828798457246326607615990636263133230549869118700698180657075404249237090830913178028349906403953077357158923623032440153562116375832981101674994114538485526506631999008521764517985646626170329641159683294061573681229176323995238304179687238172249087088252114663241034043129093558685339442484606104284977954813344750840578534926587595104597367934283064614705101011357741113574263587661790941682762480885264908852622095553106554159295064053535075644123012423241047522874835096058251359357354469037149857821643799020095973687286133125617220337618216168309276733706569214141903759803040063227287006635484650506345900581496350431503019897890778938797526391221403820722889373760152435091476264615974489357349372002334868551768729833473830212149570601967657640893022335514032684026375267114624057703944620947686901454517413546839564937210837731120961504423428783537701466879367387352823834255091650536237205745081837602282975959258544271607026720050808585228570814270372682622670492866442914897758893563772576090813972753240384544523400845138355529432114278523616771156015789892719453009134304496749888048321138255313813149531530039439628471220836671744260734918638714538175902614972467025119708518264451271746287712732373634981383646299221151723949554144224253302563636992849883306923285449377618635620424854305612406797950817540294161625728565439080892945407890532752526328642728669162345136082744005542925727067074133175370145202835669018733807867461490628865022224403530372532235675639412350130470612927974844965913861205667042226630143966091183202465419881936799907281304602003466079703091356351633102718311516157838835267689814965548664571654460937516614425656206598125619278916197011097198573538722529361294795090681885467770074712512997975965743772155743306547109928276836334194249353787690781826594757868413218426126085642526499143555851333405779171161392604677171910458406134140885204114401912934958506838354990825086076187919248819570482773955022982993353812551920735394089997059540254987957975762626678235321805250420754934651902041665073544992640810897627405089344527150981000615622474319583046926420566036892696156844185736223878815465681817782986812462834797049460782114744324357685963863734779839871255419083507486284310910951082442665859531137944018409236055627740604702973553509616396385722435432053684694822546086120143917488812539972768391859521071983143407966631849847373444583217894586485576650109227732874810153929692454041990955762046935852932486230417577991118458956425929584708430700652491749513168566426609414691438956926707748284137064046801319750893014879553797733948060251380900422246623698370148434464814995713683903685564082106938588603370972152252417995289989872020323360510817449733537792653870258095834802596951853498032421477972228060529461335421745667212022714168634347145176566740765603489478555772136212215352282704489715413616963892565825463394379984183307018544449142094435588036360371881098695081276233384098483292360554411390154627101132858368371349113272499555919737900757626257598330037022220722082053285265122915229424107167676411255329317264625770091794514346872650296757765628111217218578120534797328420368522870698816628008201069770139019423137247216971076992905746402200011247281682217885996595750230423091414781867170748375382373671189642771583049357202396854363449948414880070780727322725966571388589013101852342796668365511527181781154009522595911334869902198127674571792004091055285034405482519018086708617959936342946728109768394718725139721993644066045900478908711923388300345828444918204169612861845032871960514284705565018659820239843780970250068158425231251587792941583458419284196253213827604386501222656494981917551386709773358039971284791573664857832394033062917411955250174272899684909495394586387964515578988219157970137296514682696414441749988405575903633606106527004053815272890910183093745700090021092002733012130795949455646759155967681718455454594552051085418014936736550142319426273104797832049988075629085637509871099477798793319864284439644463758576420001648623707117303751953877370007347549563223586318453648516181389050940788452106319902031403302826877730761210181573050567369216732330310968984398460497557428760316667678592802678900243177264683952668940497404928421237259250302137601219044421863666623836358988003316582096632287415184775978331124766879325061114580496944258291211424130191024186923755425587461755198757776935518160704127365363402266214645276490512111551918742429783138608614545699570367077585614854619784067405141649093764855801378538657951865011242257760907630762797182153188548957485941206838143687146063699282777428525144308255469817127733367272355886432175267749696508158021890785384468859349499544730494881743895163444892799010179974850277654702619416541838388335972852866695370298194673901507304876202736070190006379719706618883782637227457645560411938262319363834610960127398059329383261304100231896179987811724413624726735274122701219338642121268468006995632545949839407170910735660243288221935986520671928054440772739094548436162722278489271503174417710006867910163341530417159384664520804462566030171581484114818130571620986036324172178353314036101071529378963328395070255405170954784698333579259910871721338531290879106575585030065120474647688881103752538097718531138275239964531364832887863214602681772692554753617257904680385081332171562575534074773408245513683635027785748417226825024841626666050204029593810146389710846250078471274596505955276639396196196780025121339124800026649994374222509674160683687811520343499729100483204711925525099016687680567673483042612714409295009232664596936825557755777032141647716030886941511596967982882414145425286521853496994874040446083091166267247896204153501216196606793632131200735029356302660177777116107215203223087542188200399176668610579504385736999409253990999786062015546366762455990985072075536412773617773578516359083069928377617745985160468884384276877609230353207888865309870972684646375004563250430987431418708390279757174966693219885522609500590788129448766147516321511609151096524366271856408778561604656889537897670612976222742947002763530746019645467494951999178887673487325062230947561317076513171694509262495555987577169319794022998217909748782621666319995919774812220009650771422681651866536319612590756838779172681677660778833093002356049298538315644639686252225863591875088898678194990289704523925350364451372601111703950411753026894908181886904749678391352116940147106337463604377339487410404419393729919302791584965354941339176753268482472426783878111874078291039927751869725387335227659525429521106823039400234529351364131465896131250314396275781733191027279818916914107394367439882440734719834606482572387800004300858729999882281058609915949971806580597354381694419823299178851673837860065763970473085041179459377085129892239303192272311531626502582528241981449040240568793313997637260460270085757210000784077119471232941594864117620147869856894952820977654901349457257290713162474828190267628207705786128998612975671710423225377850616474140311424241931110175191571461236486948095524689171147732337008225646188464876507908215175069735358659812058153994127715807917062357943312512827839122314560910658252608417020640354840900202888627635607344674024081459027665852263548394481273174075465552138680672168144653088787017637290256399103226925217618545238912040138312510296753886688646580790018487038513689829370213029345673704321883209486694501567564522148988109416323067304163436142269218601125450511646752930882994231351622224215862723878029883728892582635314312767921702269109869667905815008393194420722921191707810233983915555930886736245822097966693573419893024691029295157027276272966022386290281729639647471571951878495162312938550053201459658668040966739650087817802262468947080818513613893040932337795381340587659570712750863284724236012014137083958765899905298156665297296130898836494427640630386414888196810952426530654117945554485162668912731714336693927274304777019156598168828385561154752152056613333308560322005705644148358788550536515073314722154545229604807907710562887327044202414301530577253967448623891872578185562476284826031499235783325083868555933432089460375940539167268851057123773292674841282182341161189240554137090308516695883316372071115386357305203482762665734476048721303912189969328454057934563823323586214833159958782750864810359156154459072907553833756939558010070599328701872180304905057261774204664662599684022368369419003338297080013035455143541600646923671539250986300510833749723313918154164394407339825149907541774284157761915585362259986140866819353230706756297827444032171577997159470299083455570302296388903317976664359504636532448858755107446983709597005335039134886901986536010488451707895335170484012891779179406844296940121693127496069137993967973969283334815045924554092708987001655740656280720037581433899771129753731624742945672889087814784008178388963417555167742105274641824211373765188783500374534670812184883198550903243760309889418510970669038686890417933128401530054918303636065165249324012204248267502265028937650191049899002016459809657563820075136554810174129947681980334815171279151263168484052347062356258647990285852434915143127901638458764250692526908500398208803950044792775474714416474783031047193485852339206643793535662649680154401124292967251508222422907843571771661499767911122777961083749838228130521596951012195796283898846834897357863529666378983908219464708014090788466691936054788157915923419883728021848279360170706335545595999425193714646374396942800041940524151982671753362267819752885814041091569702304592937756106261904630691781015801350501581079367818933054480849676726564197330455409086795632149460251756494193610323004568891258209336489888678260667688690169314023898509610720708289539188616545369881266975992293137919679369886220149583223619632734603463109675768045931318103669446816832128659186919416660923902656427747845604779176056005859487557457697333337551298402616779860339340114493163613974264161999009182916938586654864625367061292404951734259223303263503627808049027518416817181530837950819861786891782074512232807419784560550289152271047489169986537240044007238938481031649264752887452713961881109027995045808244396109389714889894032189710242732032179616964187005044611323029294422709454483130615193430467059611186750616680634097412652658462488306071339029086841224809703800341528271042254730548343670625783139590043554291744193156618086946768713288382647119230245789047808394994696668928315286900587631354058509587517414425105807838722817537694263839628369143520623004345126825028264488890002433983111012269288142927750431701003784491314866069677068518667662862506138498987791780744917773578009061758886052967773412761315157825472985543526910629839317844344177099396531502745473998575359826782684855576228701762357059116019192588832653203335275005632093940757888882007941858297786106220959214427866001243871108301340358344615474007687802487639787219764725218652331648982063706136002729016208597047618495827499991685389843305315668515240309547446629029447844898658643745170458351601681508603285273617456561118569301362394973904767267747121757022079912768388153049742695283504592170733837769074009251463999878470878337177761435899690104022487357668915469639662191414262923821934329880209039071221857471087600601102878681557677247826937798300574258161012242850441792854684149509775411024664886956913759242376293436708115977368706086689221302262878694755834047521236463434140337514197964173177521556474847127458915836598624871940523536349180313985004346874699738854626293276821390214285399705639474562534983565355960437106204819019973806470193824934111062717428109614979861162823557052994495988775258938102263201263622640841558173703696280753834959458308377853066829089880999384632811945703521893077985224758166468707577465890889617335831020396385759665266990443648487366778979405030265914793102158293021191318434754962476198781182490008083872954777214727120989583125583511223793972108147466809224899134067428926070319788550216396219611250606401801114709348664029883017097753983493465897562609288009134956176019361962843079368387415831685530642407013802365388919245873032256611977047927751217184672551493560801759890368080139660634256596775751043289961093997673788232885353046213458626941288063940194147388588260939870562612502901274137527037717199853356806974949145296368172453340427219312590304314674723490743090399453135951680119036472673262110114045934129844937291460856683557677286422526285402597852461456667039871931642770518305767242133788001565998583460057008065259217610752683760995474532988749297204134256748891872004707983827068171824940923209310046322447184307337838883289822032570822608051539908290197726461602448207789012883171941298736110495392035008541747111874108916721548143093444203553788755957022684733320877843645260155626519502691748696651235724254323779948142878336458113414799777883177616162082847439661117236663628537653897360208047087799350156253046543284999231174804771364529511415948585893152634233795468260889572387806328318944812742874883150625687871350593590155208671731317499924265880955272590595980425740715503106218266859546883712584099124659950168626847761597166842710616610117243397546834158042389633996311642909468847556369016507441657514778033384237206759382544536676868145348962396714356783333349717884263141735480623748149220206800555379218279390696784511383363752389693936734693228556545670317938345818130094565047755391365081167694688888045039567127459713477061066013436750894974307903262036570249019488785280282566639575995722452682827786995282880717036756338139248963435740009746882437627541251845922365341233419804726281594520578711889374251627150872853533896915553525947054291925826726783889811894107774064758857752451707082319845067295520396510654356709319419523018621555621055503145506167991530337436434193142725973639429101908954886932999446509254233310477866344053163600589269479310966360855513255896762410092585452572001263511774874763148032022606087391549233352242374596074518032408369130627505411730292801166427503910511827317590076730214661107125771310757043760885016463944488298846875257949284457205460778896509571964628516709249465976906535426548415003105255757870616514592517507484174614223159685160287070450646546975092483049449213966909175336062432045183155990225544663248398764650987454891285751107585010224877185429657657002339519361520557921287078290130744016875809910077127875276288960939761499439977859857504767969597253069864519136565192758892697238024358011195651992694480737146339198728848560546863273250234915980742571250592035595576456284092418788359947368817448806717939041628408956915834063091642840534823138882827551979573371554911815939847022150017785566943839964655207134261960207815402316386377730714219499041598294110993455369401939446888021480432067086115954708974892134282811139943909901444778981133130271293868124988511575586509536956333758155918459613192367779732434514482638995407177673684405410773287920876307800555597310778389097009532315269345161857978192024019830481007054087239799925980495850314071529063009744214407964947847320271985774675751640493399470112231824025451256770476005547267416154557385897549960125960692462406635936426964436032331242235327179799868959137321728455479962333894189353923999211490580166576327320799975836527907884811675671341836755998398396027445872099167210780399959002671360091602989179155364407204907897102666003604926553335102309079911337331660127976784354244145045673989179259412778887073979899199745725435587256817152882700516286578153285592877248677738792190392383344592684894151950168440342054456780287811943231768365314628140164888842318957537147298330329480527781326161103306007833899796179484704568554535404599898770827219932853221715191727859555693504789160943844926145061760228367142324880813554104784074908474181263199297650053151516562875615906635597312244326000442106990580915199084180318702846461548615595938405192687602850892814463456450963989351137415954836785947317768586999901621570975558968435660813150481083686699703011740173310460712209717318914768299345205242035951707586007309139206856937310246579375257070434167013451758224999629913484338848694694719754457804821726497468142053473632486948828382256561779830739395154939673558349955570377807821405989360458183858882786548515789937600520406320489646490746136819136923734676793853031810665507419778839739289421952796446183777824231731340717170994179964693977782565293138066840160101898165417556043385200398152585717143717704359458392169823646632027297587313454021954565631015280270202993913464015171673364426373544862116495771425134916640144712088270117710052442155461344899621304306501801650459239270146593781397715890664296007246890023109275313315367584999778507102254174075555368849348867686936928254086111320488233920940039757330358327690920275231277285957059423060459080541418089986405184198554768823112429794378874231940810984824619413266215691716799108596121729264323629240627065327506572497630495284116493204986384207711625917689108211267159732652873992145506694528433869455101001388476371272144555344072656084804737505923271199135086776464693231562569465690846509042777306619147769708590335175790363613143773859103367860631899371409070225321260279702978194024172006915602394373501040879934535053173683342311295859747686116431336580618918601613630622167881094691115697965544386525843743229271379149804100066541354923184899817301846235602664873356386722644678352664901467654932475619078131172445725963052156930654653155030095010223549888157074435630147533852078999582795343036293265178072910964704455286416733006222063007395898130347870882994619683283525681259537111721019950482308295373605076426006004847550430546068544639278228830091169772968166623991527055865592110597036612222217892384168815093068407300495967392156468549980164905150194613216183365778820706467302626967111207420120735296184011060110246479202347241683948598115769031216853168041301347182649893316429724592568079693631685297843922119837116479042954791472082041172623300083024760738143127581113501785117910546093990490370301410241022201532443884351351294943510189949083169123446984928498575993492819504070187399145019555002049293513422399356077107208748420732549358991076340261309403550355410996992598441151998212206000573148309571433898139567436895331052447163443795271885104696773973529866240753203059797760757777302209841339114240002858409081925137335906480399234109191846941591661150334339202170312166445236427038275508954875607199266005674667446868731423851081127090356053417084394468073260990825450420833948840475166112354101853799084869592384370270041139103124568455558870142410319242891593324688016921146792458912623908640190099830700479914653057446075232656687220318401342682434088128483856038726554067183853311612071122774405247014017343103825970212252248877799992818551015520964617121248147766157724516755780943416492993001736204416522836817564902711005281836464619980550678021003314443463699648747925673112636538400414951873731412958936978654958016088349059036879535574752640279313999807840113995992169397381413228499903105845522319968504731766814509093305758174061463372741626712362481460493790960083277733609932917615583238743851226841858185224520002920838736846669497395488405367535069320689711432053454580210108858384091503924637836463157938544874198414293914931343797290902484713747335592983360407545916960717622421623990841393824175597616366426234136736252253072804982251586455345745746361805680077998394283999048247182203686326593459300672223423493819512224935311269927030369357192914655733410314327237774577629396881016461003405964360012224235539618929435689424770812542736599699363384574546200475387259369994889270732543856854301137349925958722066647869771116027410907378961648552300525549969419658024130770098444204032892228387301359479490562306514205683596121874379976695624812021937676692188613073521077468827119018820090745662685994643614476388305023105847641800027672129696738444996558582751303715057987678521361765918739020160827592502751966896013031753661330551815382944714015972343254332014119181101602706838268190520162175758505571118148141050929257657923132724231897229286731405880786613391576502228159685917786579982925335849783722724524761780575955022766659854720019701877649128435062140235329180650610473598933382536009312121126440853955626226834015528515847140185972026907264937235574609952328873721718479793940522739724446322101672483143827119021185685095311192819352130196064021693982521190407790369049635680035637157760910965673897707116378219276564224554430779015882881029080802581964718742170379959965425967326980989825700861017456830975475191311267561012155722815756741643506538651581963845808050529672809042308154708808025657111827060278903638744471584006045366273446821506953051077683637549903516230583802061326984053103755752098780816665570207243422803918175819281802774700203919361168068220757028154114199542038120923270425184271053658664041376840758193779441394926892031636953519603933350551532458571201501649759768963109600114122282957421443091819966166104574874020988347785771737274317280984947006529947564803410418711329854679306786227362931406236617203542462659261178553488344919555853623252808696832870947213065650013148413871452426067439731107724007448215551816533378567356213357797949831016365346394217003824496733401294630358645251076827057314571131593243806868634608078037505582077154432770806768924538158995782884348437429332976688390582585426241771989227324254448551088782436425064683075716082847298258273817574308852046495623095576003744179414358069207119057952413326600582153076351126771275013817986058459197549486423469598024977058128176946639639668424911897191380132549288048555239319019351699034260456806986103434121342604127541991652082870189432334778465978016920148813005467528561355017719359688254158809744068597291213883936437891101865487229554770637920318458598579426088030261776775253096898020821450424941111817061086348561704404922813531333252352810843535014124214638334001683942217592675548484493289230277940456208311402392334868143855588879188436314269220062404191868610204432521408373114517167868066876004624214575768209229557695671423350451026363738504303769075333703796322898222085051783822556810184707216945211141199671483303512480039397389710393579832265552426426284729426862087119373706740837866960336882768901659451812491761616264572392127832812496261303128073403100326799716636546592779829867626866890124033709311905874829914816641180237435593535977478296222275287245566651765211704510920363135299891324181222760534781451360871164731080978594720185327606298660889721951764923015862666826131894067046403929329949629924285809973034150627447033900456822018465613779189803606313357564097411808243537268101722364584973325994801190231569649701585527878807166226276359628853727238918739478474003584341021013873010932748424092965933222811254955243421124429824069621354662618193719097255629032850977529504139295593041632033184290503434905099209152909747039372305447364964544150780364368274063351930298341007457157742357230117451575176603008123727309142275244643789470984228933558673167710366384885554429199417446983309934135991993547299687203593103373747023151664127033645694245953330485456483995659750325919465098476349195837284304406870773202312160131065076740941050449702775293442929337925957458790404514754505465844651110463675840403816816205432689875312716143294164476700623396662559243422877832425556506747120932546007835155889623448687953442768674128240458154228380735145535309820447853578348513922606007402872258836838480574333934491448992465472152131247192034543793484036657542662106008760948971565293930720336685421150633455325550781406155917296519688968108373507243869346108548488418619560055679435796316848049828969030445535556323036528582822038159303245120935383237778199908293017928159194359960478600813092872369074568068731188352560127253725727034800718755167325604249985897124153579886166662140937585420712851530273364212594387184252385945888461315080220034740749098762841577468571326314454814315903840363005001033504925847021495833882976951207876255858188643900080101173830334578166757942400246353961743501987809142435309346914400525429657596763563234067792170206974007353167900158623574940539232439517217660150950025249936335857261799149465605935174030456006178410915003650239683902858534497037039909268583921967746705982050040405490415251409334860160822905485420868701648361843579692999543435608784116809454876351189132266195515209564564233894546437187876129461778914562119274524351639426684035941108641179034189330411955832024248954019685971885058919281569182049416608873236677081687732915762778983948269442887608080309878949112741433170625392801473398112409234808105865311925829462885130666313413804865698787453770880907463630927532154035185737037488416062744674636776364593540612145771852550908292705350814701443210426369598649506878193782348729692880659186509007286447689217519434385059946896831817074044356219742100747934343194934131172960529672430914319957245241246129655305800604415920510102314548693328733878118817578082808756035059144968116830498452029190149312187881490119252991297638677911103428664811995458092333301945473121941706886337564655565358491595077258707883453586906433529704150314490084311092415958670045618667868417744379056394246292937841286370059757305528670234137141313114299427049420035050990594699997327135280419320372863590436088399340414795885754061265814024110072479638878616823866167821953318867925930742892081612276460676512463944859162425402021573737842928024982149974622273054076650288276407285948964036896431881129785856978023078454643122673554180089392286336682355379901545985208865423211854811863620301003814904996741495250244309104043089610584452016360399965204697929289215646222835778241746914990477252942193377968429969633406554991204052080913541686470617660831270150124994902583738182138890258344532093665395714095263268358452767340928020416553457069329545316150695739898698373252180428615989930890165967876951078998647403009108420538948610851925471539272838573740983743283704085108654045177937855656115498196234020128726705979296793368304772295320386606286175685858799065405848301319343369191147332143438851478814712757089271351891750479532875607021608685951534269091290835306292538977146432216676089879135597055728096334513679046775841399136117889058762325656601699869281243306768452446892620089153671030250035275300938482749051379823928886966685413624228815004660533663619615951160884712568739265323086027235457867860152034624274538746746561679936195218047513168196976685488545431579566991001684736060643573073019798758742532524626292407413564726517837919836146809630825075820345529824416601605319236615159389711186885336371441483779409260922364366096522237228652288076830357889739157456516217093224091620545089370066541957588985670298202237914087383964543410106652817941560320692734941339880927715355608489428346582910190264014209519844997088578977997180361930167597587302374463561963315683536860672187382582423171630421977996655854127995537176080652833335752052358429623676099116905754146376642464115319142912247937592148960678729851188408201579595285445441901384852382249680827036808315483859179442368347927588373049972520193601314615587082126329257074846390534086379020741117584721889555665889469566023284143459465425014355852329507477560017760081059785522176010926847719698387244094263121512377016250309360037419087673243287113192883570935536074426794339256814255858185278927764969549874543704813599614076190430196073065202436619296586538282770748588315219039017781231106685086706654034911379492461641361672791194304400071237807205387153017389172597221191282627025122545826392732234173894358746201294336784503126327423258378125237656421108392218842012779126669730568022601735719696813335179244253660343189251562725653742806711115760691773793494246851382336241469751334735315755243642253215614457669078906457075244943366630111577956365469363570154846340602886412665678883182005853581236849709574488773970763886935848677881851602584779123695153066405145463984677654694760347987176965425896522327056019063994324202041674405632792467112931703460330597856841879012982267749403560353327240736512817109337604862921895134087758677327561367379665364159297801720705885883937766764629412072790769729795092143292498933519830203686799591166369585606223263997166887234648805209556610116411349933420358189766443432834594691296890730962828885813408701767989426297251064072876568676945301802267849832145856901810036561058410063370350248994037397269087571890050544668695581826167512991976119810612810523443483969083510266723220005149717250479144032054322728419551432154730733940354215896000102317047556613320326130388034887075701948493900474164931014937597313961710904412090156523626189846681524173636964265339870428957398055647741921963625792217400512159683618259098838380405982207620402737653737746504349967307542245721463864605196106883378061697885117637437560675416441954907880390601529661884711427440386310604019582031365975150741892551119566827724899239746723769802096336364034935963282165591596220682494135570704935844690753007514619999765440297083893267168932230245962556187566164200558075443773714047007941314195550327093469027456209800010070392858665405572929813827144373378178443538167777524609292569361477046797181527700490489674524859408235749201397860136342588794481538486619280763529941180552106042577726977427764663732407151528857230145900298647299801738518619936616462056755607188116941932801152284006426454306932089965475985149955499359819918879721391066857542774988026726715549358369769593530434395998280054159676309017911176226820683524363645635095707121501847617513466078847182633066653431231371250210644948012895774169246271460195053447078432074371669390058224727116930940040031169542244521682692155732304230615017004043547010687257037676379779262483837408501067925191120629212051896520183056463173082077561182642477097813288769523083486141758814976859181150201127216408491654970280423010906670693972579470905203433922739007433514162153768105652668098440293603451822841155931348656988929203012948006560015230523131106716442973847554674616012846820515779499485078683542441144873581261764957825187780315651154785520896766730830366073215717516503881994254874752103625255156950037786315361660903531782072786275293367312510443912270955039373868704251025873852734536240709485195639871892104991663994465214187138151044293832404374583878041042475780984476638989396011730665356458467393724425228456924142336952537349257126402416417454113502012770195915097341718602095491117736145795043956323273449885440432194503917788202496472467471969783489955373479642138011514707812037917151716229815864273352330358758342356634558454184881683633191378807951404073704404668513993252043605462320979669026381943892796222929482229078341232671020483077526109385663788921792493723262987054313729647519317300538436268144378793867837660920383183863193533088143455170476271742332313288787792605902372137519058297695592981237368378121726179818860429321600359251451215173542821498708077952517912025530697877009775965461021154195097511667695354762281092468524974049605798761270531004935834022425810907590080598322073246468329806198854197971378911807687299962385529226337867390352290220820796383196770185496500738245899245631849772702392046271344876142607103594535665232184466291722005886233346014191714194150858243199537477302310934028493058029802618163924564700505202830911487843303289126507225538145816352264643303937743237016367760820417497881257494012801632102549538898959781046897994568485014598121789479899713455955332851487809553849578193519140941149565737154707901631403318741095782097172369534410052057603787624482078460045982794597078019061529883849100514672477452052564089473176788641282439015078816407889126917313844548303653688895315915476779950222939199771814761838118801515095333489530858394284528586664802838729220453446591092849647163022806981553228787861709789817075058230099537135740959341383169740209849556680678162056590722997428080781979251794007757267274638783770747463419745537759220191624042574517146785292496205554565527179408650602867112205061359808537308068271909952089764330308310426327771931869550837260284868970106297633572324099093359301434666503365428540565288612842778370363419695458963611246361182906575770626115629774689264819396702060715866050079937417514343139936137168518220820289892559694628741983313334983001019391040574282519956768463303119978303729244779747207930715471159989745705136053826111668082021925701864895967982291519018729772723321229829937411698461899274612025448797587190179911875789896439605934055208756494995802527873025261658523793901033490399778454213982252666975528498211510629259415627570113942289840796903364428052267343653381881653145711100780023002816912194847874981071263687952391066825758682782755889351096413003449650870473790497002328981364599751528777799016153738158772681474512729005027235845735282558543414202680741833165701191990024173885235389401124225176287439912562086683421386884702206246020708219076241929996881058897577892655120011560700592869922074441975973347045428648211495419932164811795226942795213050031263907279119896274582096465530936898736047532140758436311068247257590961062082185359583863577538557147974259152869533239727614968215733283695366356941610925191056635442861850679768829961963325786156112298313128885001229027596256986148535421097447779376352438864624509816032446131903306309305082624539712275570169512688265365792233009998078629241401249309782813260073483939579787968290681614946439007375362862516487004117106096524368061704352674443510996024159156944746417513740075225633669574178407199762387663291480836717169843163595927937979455203541267616372515562661160745168226632510471935177733520314765689722559749185246489098347752815935818001728950132575448841403463044449995544375582790980726371244789973903860966751802683741873396890289194352048124969173964826736097973101090654127917162707099747153726244935736601453554791741774485604820381543498827465541111778433170727175949204796849410006832614350057305188951718461405641072357477925307145231033983472965779686226578890432558943218557145931456347555311031100650729422796112981112926533850464722305190312268344450515896873944376276072119325692846752495107490160306470123685748345409864391023008329395738085260682227521555332594977196987515972701463279561528251332174206167805179910657918306003097166893098836809179346907642163927625386355678383583475304078042229865826270929912217264551527413843059349878704489778760671846420898292847783776252380575103336761056004174095604191907055716588483855917465089557916152717554557835844074042565265509166909563639186886877681007256833176850615505334487298870326277590068002386182001987354820026467390679756836023417627115503666133534912646392676197763121714800519997018251006273931786478671810295871129784097668575757985504566532814288661328994921487483430327086894208810943234654126700817393787339247144380625607041840896391728886878400778278080298174256862405118327498080220129929882666311988269250672319172519133912786679147514288304339308501561550361683986109079597352535672716010836738953007243722535050077471252634579223540320773904130301865020659320083901655379577603089256210889171162925379717778582770173353778441229554257466245312447367857450751883624342049788323421795577033146367388390314117518086471984849036813097774488087060741140076528231426697414347686391293778692456613881287444241124990701602105075895896953006116656322809568163690786566098503477836326573430428980391010759657526886050256642108439492333549734430891725212636928249786687667178177880661962667663583506825693303249327945813019804971935283920329107343783265458556458470290923501570988206118853285573413282214692607884486261681589678087101654298286369188155591289609317276454309490672922699374822316452752477056454898702295450107294854510456613391441144573548518197588150747349283834232902569822046126941333249648812774194716227163668285331358236702835310758577646873696978881472031712484056460675005451308944119222350016307983422124437559238504960374898718937186947990208264926880237586289146632570676451798986952128173236694944800380986995790905557312703511646861794808803658236432594348009113560258239705911291995130102070918736486903816686288117899319941710339700469400302493816112139656073560295587456581564644427091425630304754223301303838935805606851000084332413461277875474400094316819161368200202923536914743702737605562926762343002051060078075312625090067427559106286908378214622534820291814053975194421778492907788749568968735204336640025032223049135321218109651773045125706257215858808299232947610903649678032060818422612331644135716137611272394025688277934889177383131738345112165701503258923031581889322510206113498380262883618737359719689452125410846398263080893529477016270918367632819126899037050129020727213611185453321066962717917664084754676585733899799082585208489115892606053802412283396470203778719690561526022184094228244377351929025459354922756857526036572609866632347867968344857455860069407845583339209585925432417510497686177898681343492750303746116203693497144291788880429972361872361230672810479271487793185534505905708249846619137772621109513687819268762620700301364313936368333713219814172936243160444153963931951380061414936396085937053870399434543269545829022419772457381505700048784788166900578402433355646430426972035256422275728495338743189494496108294019053611807338131957388316100223767844026988456723359124075269725071151121640158770533377283489782699312535876315926735831846889410139780913858379577628902048536031588515482587736769173846660510629392379508031276370407511218760474703469265183415418452615777398684886810590193699465623773221887665017735198593203195137107525996160587762030461430085035267300004795999540722377244896499148839334789633037644228576769836481617390369899246489904448255871654659728850755710076415127494055092532651096501835668850810545252891283887938352248495796473489449054484741314706675225113094921382626548543067187485177703701797689300589340262366340758122879004636457912172523387647452404000277540464085656427090922831242419240212194210937242900038755908132219318469209142078711996241069624329440206546680082792093801386776152257408193123623236300544673357538171568183321288509213656144889606745122836707017406142650386082299261636160084115973847544071992792053891378630222629753612166515563292679183075860336173078983622482709342288978188412953391594691048992306880585758969511330556415781004830999740501128083328670855700540080387902145706288386177534546377732201372448106454552239618967313640170879227179067755459379819665575966767623595130000814570308710177655726180480462574494858780166444859756742825944079880698498567816852728866942065309753147923831303006857284684920690745025935640008016683272627535216679912718885664921723873677658590465500724014242588127773496246365032301487284628385148531689681946735258829552239943095783369166697060799336390094343891349771949065907809651373490024445763179619578284215029058066755462814362837597489208286652776431617503010425996249168082314591593894606402377640435733568052601317352533051358493590220025708247001520164603128236236420866916697384772552462342652587210752514768531760058800369160260502919615790157634776517985884772538080862861381726156081475066851039715787242238955918859151992455139949347924387503637569110396242785329424342053068179469030004669262203047909833869691828668290131534444645896310065770005818166308611962435226454474533328586159585721525435260374598205682032736743106301939232034071129425043870694170608393687690641940905740200141737897671709980123382496040814679476888965331771985585823902804412140496424339347817205626896349668498746683285089940208956114832709363811075393298602095255908918525132890148551850321804589643213196854547136867415617442185417119501984362235633584380064733520639317848900784378274619952948120195220065768331896832611905580146078370911604624200120953473658385246141681388731308720685394017369203536617111112234706713905187939317970564796903264847470349484517345653474531446766495021278441716034859304382493816408480580004091244337217667238812715335112857235036099257500084908119062618723904787581393111358171398090346832451693341463009176013971474670239094921974693332921221215496858782439351627471524713401307388340400061976813876411779723246198013824726111482619209811981880307664416635093153587777442031608198754011416606343030814047876062761700378326405549069788552093471650907772807947703101255335520255802327395022990270435168497832604323186581571786239049933519539418019335225757975600110108800367509671373878941831841991561120871523182618794046355514159252130784768471684398222817333899536744054904423518960032117420975725844647661413281578392844518188345145263276006133707062915812601859966292908575662216698607963396942380161473920713800015058796562058618470926144906473232843896656026718203881477113034444644742789431717925240227290943729718110652664060477646861115446712876311795891227662622066246909780331572712174545475403456545541100260332723854777851443144696614620111134378404325108837545976929195166054928036799663355087448104843452390250745765665179613826129573580726332755164156886278548740345741172031863996485702388315018401460517253723888485999029979728981822927419157722436926394558201997092770306332008679972395428493045670129280740851595366571766124699152093978818710828573413765692686916460560229863573650044809361056058705981189110667470820413392093791917427851603625581388881240291604427814680480883053659832865533305440765501424421448464391028143982341690715161417010661335660357624352324514550906806491220213234428368216465152580645382721049594703935183842408038186739447308569127348325158191300197236370142878270662575043920336645872494644049223043827462422959272892203360760436007101076023354442174478225476205993436389638843415837119420455802970205360736404055354511434966926093718722234476047643865911827915579320907913544242206220402817480996819116540082331998379609518108033451587491882535649547985884054368972318991449716799503745104627072438318950425863448096218862021823146018978152802574263837498167191558825725207647746803487344507837770935473425855332994563782055760859657504872877224080437059368326539158459350521179901089080211852978980829304435414067318828549017790079515812463263099110307781137937693906472258444991025177757887739284776051857954430897954609594934480794831288495317713833208799125896567565764544156364207245268222287641202451460095843595461478331272941486464204000087032675496091596514438399706474330106958225782632673748055418440441280529573518752248432529646475591008884687978631945648988533132356061480562788517804441041132713838347592804864719188842009306220060677917497396236499392859781198403598370972892665581238479789103115960202762097149246856790645958962484319783931272112807221667420800066029025157696237097364073934795260736118719917649299646773440874857100555706068216518491079496268713178219433303347103640954046050977372128375308341337152258162428303549841396071579404823230489652910822264915924197467575413237601170972437113337111002996198893278023067126281807102342503188159407960443546055678855143421623493712128187706020623219556293746719838467197272675789972600549652718730546604286034137033735307180049896832988067731575245453087317721521214664076996059679834392074658164374188249987623000177474878916458744293458114758521108735625849703258532249159868343581151113575101210512732816740487804912405863133405831324469132093356990624909121044948123399735850006546302031274178323460361782751566899891139153485579235804501724915727393869185633316001970874501346261012578615137571228911301410034640103014308581535380165171932566500904470802675659937559295641836773400970080607982255428459047430131863866038685507943802832616154665577268661083905694662398101184395068402640789100371407128326303372241573583759335043280672971704423822253482549670676391940513623577764720812998999091587755992796934129745929323382909058300603300203706519957730918589444063822827564208553492399742375436598163592688128740713340624817279386141402448488698121372425674478481109868463663845421289091075858496343544922453645332110215504888697041071191032591668413083508045100244889901859883841326972377342972883930401109740264700159013778667782219818556911694061129698213591146678683141598162193524775510661332352709338639459032565277611833910264435786077429551640579825991739911216760457376083477184808764286391527005672885453769082837201495071890267711328416002371948702160157711706530469300400310499437340507901454605618071955370346109146657995320372848103255259657337597276296285340484683793140077361705736680742306938048523935389434065193928341602397664348130803731636937731985956742758757268429989407593833992942022010089442988741911630044622030477372571848460247280001925682936366778500135753801240092267168028648737286714675192178699388338809478654818147603681633332261018266222876471745147508440467542494656039638580801772625142767687712643924975979982109402741776391799889194023479940553876767037338443897835179899593736297906392032586474782266745032257831934078298731447434255312751216483677837622823938299045765198509923152960493012527006116781661962570765358188138169255260942185239248641231589984717149598317210905637719333391214807190958783033853884193430788097049833855388164311528911711143775849919126502255194850566148853459931791275692705032963106114748850320253208160963488646596394768035625622471336844224396151187254296811901152793833461799973276540043067750253654518707331867823367748061603562905719452292760705733959437094304860732794116328752055420299715344979763196925036237890410968354325811467956717703545254560712059270704713666203569581552911727659467386675027835858001107330711337362141769467639121528700279509928705578233847400254482724159405685790250691635235639675564686223949276060911050895780413398189824923361371145311073455566488208733517884473035311016517940446838737544453545277667175091863403153062315596853980831348802519492329522121550463264981204780961305807437485231528918113989010596852255664588542758585618912054736165402780485967725572298181750434155106367900061580804322523859109668313833731703575842520980452011749973218755094833260468349746973504234616318212091123135879001646840271379879446322972885580891431687297602490679589759443772152360858787712581195992241209398148889484723400638915214757403772256928781598454284766207131466610295827269335272476941193257068236203056666274640492164647835000977528034908721408985660105837525065072792756380308435181466152851406406086505018389764159450566333544906474186792838816473910643011240057072369514254873287550051400099590277546000561545883041743669312503407550653255527012846772676813235233424505909015898401767639444630330238254690641882214181374998651653458940860026144871114185075409075231655518430801146198340046040774404736574930132644146919122370741322088872697578892072452628201460098214395907594655741457330081998697240641090413412548693558812266934009813215495625538177598514263263168601103201799179001298229153704400951200493402553075908032044733528864030288993093046183045737787083345456526687491724363311746289433921665357968962431274642184068620104797667142611693530591596010877584570465580680285995574233974769086947147942577133094959065919014922272332810771822351698890670746365236148005369145570444333297219633135931019775214295820671121949895617359156510974511835370158587985695342748801604477183742190152754470792121002111631929699169680174401028178023347606176093904413252704186041253383423414976540483427360760932495760618017994414171350244670865931674747158554393902916917323602542720206790539495444454583696469915140167634000004990050883279253702424185179813529979115583829183951288848490041179474640985167829318160757210524758641541000973701146298799248642754124224771376163993890570704601588499853650219531504970253762750283579971660121507412926578746441606337670425156869300073079695176353322770474081979165239817405291657766401259858281943394740455486032491451190314595611051494473066189896936670204056696969514135657229124485116549556241966035546604703565378986257409151594099700009111242357231760121971758190103169980446668470233571249063246882143646197356531577064398693019853109384460922011742104366432182021249373504458102196347268291532794692735651610211954848149817629526837268087159177584518679465533429390144060943741630150595434069215951044429305264434595357677571281055939803419658082102819184984028551889016662766712097646983123125618283110634658114714744753726254484335147783299206109536490671540117021313213665671123399300813155864929838378875533388440186721942534898779806920485574514895679494374726986434949891272098730072723511257421370554043682831397760220684267003369742139830611477204849177681721826026257782518497363593933744809848498519085405707700948008842084956367144802371386703851425054055282483146308454318211755633471805923790022265242889419841224946051831812866294946699194267115213055133171618851911368367267399537190648376749275780475094677051452093679667485589337465468007520145769566982947763569991503940334688569695964886875832534426141479756747160384120865443650811855606169949831063743479868182895333888185201963835351348826368203373658130424625148164426265732714081505580377422605588554219003959955214528795805530660015057419739411607441956885947208650425387079448388439824068687189480428151292235191320977911594381815931193063669067604102265793848724834980596362196196877446685841438023147972811580469499048556429481727556847827706661224776290154388568362405303708179671761422218479550093824987259215960834054133901638166766641966191718854969398768459331187709050553054353828100381260336807067462351478434756935059667778853188167442953412026605648543350312531475025016940874874826625453873640408534375247064284853948333913885326937439032940450578929562420135229258747578600392457860404182130310241941748128316499277693310464188889582139574189163557317919371400762913119278234907298090669787410812114276068992183535800340950737047747546683373900726133487541366498321290447736926146561333816035242843457586957626092454791783851798087361989813139463060600668502322824891263845582264979438842035872277794819514160883186952017463692749238917668974467986783481557423733092113589506152311538514680355286960804333745015577406182576660652321800831189029247844522706322057085842842613851877804853245616679608495303417732817516192896076634551096554046472848893263428062866886421575595709029931001165744789989485846708314753792350386977420617961254898897974959183426438118570531175081026811972368728032353212131339123665246122100832194117993194786016386539349669582852807352434684313819395393585984278932939229162473362399387574430772929345010084278446091867661006164302092718220735186687028924587407104228260572199862839147524721454065275840167376206805154926496893999669814404076796095899182715020892672986986179056716224789050826600383067773014390975149730578475108413668731115171340577358547563892523160925075664621108152678123331841566477091537051067897340789432754002867614289638079357112486021954669305137104997730980568560736539192305495521812518230502350876068258883015148797092681984034575607203198545342167971929193277331312159233576244134879953487377681117805899794666820476371935811973396629387103532050084440028044701384786721736760420727812702944692826798589662970920608199800161771548393096666405042614519643566194395440727488161653912934188795910506584107185943946051263062617087453042547343503920159643367823583804653770686116089604144105150128382178496326595281758468027128533891180116761865437483716408120511586621828193900402363413108769795984514387017200722601999874315030184429141133112183749766355564238880312369453261260389818389119573342851646138338615408885222945624127579882382956948084820398602832930714603806008606585898999704958723527144140392413969417802534861897023112842933461082151163069732475372507858466267209909376188749512891958437529452606310716601096384953369606826955669336052033117660824275205458703613856488351332672708961220312512230452263619435179163999608074271940290727861817596760358851210693631417429600366269760953707072094818628726454530328770358247235997561748144340482051490471795387910988533075603196249106407555632442627258670209495469611099712515751070480589514371803867951078633924621810229716468656585966792710117638977947212091532132720127600129324524132723898320448199634779378047096868585307440236739647446451430502657240701261387845397895163664619403199282919283851538774496873585724989777153866565999739154733906847126834760678808775560379984029163896186134214809948636545259901830998470945467712775619572364593185568751523942609524066425417336715728240392286481004712210906996294768617347232718980046014138552367680562710703349817037807389200244128280977051051359535040199337511065103807164280496731047311442438528942422837940836072861461979251750643053887086565887665540214109532837320574958315146146086279976431680924145159440267765241697911680313648510542877529901843462926526245924616971946918631973894810738718178609988934020604114553162698495060946506271557851364276391057414622121581852893992517070262808923000434252776937604729899961957681589929890108234826801018399823869484483971158320737308723441201739644335214436981030601868073131225189719326013288233613795945728403967263811547142086969748787603115216688552182904761954716495987326295473256425945276966807170197291550737458821618967331141721645552476621464987195587766921047525395792822030507600761652171775382238420333061583057036001379110958833726778930067496216486543029508120800385202407769998129195773881851418203976020622151957518055300568941970057075189285741589957173837796097149419270475875231132587841149759319815185995002126470083720256958970021507409409892136650204060054039971529251402436760356791986347962629455205227350658336131245703066153056443915577581294788148905989878030857636586887226776080868767537825939986166723503054873441486143227254175538192155342223106835329591047074031328492278635592866445856198310439755117406330337941943023200537100407015319592752559223321379454093041573149722752286390429516932113628628029078258330270747902892715600616905138850207701250231511518039937100506939330664281617135410299911213617429038184899501214572231863915381601517246298073749235187709113511740620785706188316406921984418202183297306547249057466308234015719341319240281818852435499592866924804027867313809740811482361757868985438229005800647616635659299874502919230898481862597880303390600062761786381825905812060650849620870913798682750658153742602935488631328809605071093250590842982143273226143749569901060272063265164511918858170410628537434757731441230934342812598708522788080895866277168592430140015911382023199325664802751355840979894900862577172677862413663597073184834387127154400378064963159336624501980164007507191113257196056448138080049511627439220964397446326357250066409039976789230246414984368008549141771731827698373870070067446846509628984825502975458942859046547399255220531860688381720682524371700752272556565692168868179156891982158664568031884613102472855458658447397411133321475942284255208807113365825210734220066221326727126242544243088520342802186625797076321750224510328216778707475174159836362723088927851054881477680623417869276666725931303898054699253432248008614974063583005791445898035099281138647003314984134670225957721281887687855974598596850376667962153761895401096731279302658741111394342857759820337778991072248832405213957923734646816611717731867157646985948302857398794421757854669516164941514650784348314645274634715937941469805452591384031792661379050675783690026030397331894170470843823842291534338779904945576180393039645914221911123382855277437049546707303140900639489393749013782687360293446548565585150651962130600202428928152239999555253555761300046758352120616913158956046156598592264804023169765060487837261804691033982913297945694485668675735611624497444523079108757352062637036976447687899609380221338509292348923750915185419659150748122681806645527046002454921153964797840993315444405757997284240797724144849892433179525476645255314550337598502467320647813584056893914336132797664924228777078311670275166496504641853578381868421294186884188802619554326110541276361850932483117616081044932408342813835063479646743668376418250464943644895131240995606266571223459761388723396223572873975817318125815909340348656277570217478350428755430991713862205585662049447882611479990947965121171429112221606924464979552432547317627109986483619307435680542722312072816987207339630424488563092105629074037992443110052001573501769730748332317730517309552759567996695589492533978750598639686810303282957576365662479293910217721661804598182852620221018335634208098874750047057225969403118472457579666922670085984368918635783203739879762551596459784105640213967762353285087345623393365799927601942053063744199930750749692844552741414313975800941073938562711428278965280691860394103308714539479221441012818679481400643838146474516727984146927355506730903272885221737015729359410148731513192220262254885914700016844878834286099109647384759939513400271849471882456891818012284249551067756361989959671858562346370544874151904752561738162927144655336660820269980431582446618830434656912764458829088662796648842613211440511427451806227594190951866367834687479123705540368723857712934719140575993989661858966620048096504064558436901698937550956527950138918478323433012953686521596184918705668517516414281773016471596868518753006670410938399170192248068531659674823128466372886682004651577384684696980678212322195619703250822450935588593428369160621767529085799846722647932325249112231663594056530769593261613594552674650682503653896476885629446669753205804519038885517122590695656802447311562633332217303268602035548731870275398275778879746839188280381080224907193900266337629546279483141876404080191488589697549998356545727089579074926605663146704607248257557129779721896124462008083690932710232149997315338647606611376139872916164375845896944486567797838111436466278405934257002778066354054006362668435777087647377778140969544036018684420051407786529688030846207885459756379079233864530144109459395836763526050256582842277630091067996525972045563810770382650615699487753468175011572038961864061783270280108758833102778304066806302404985528692876607293746351016446432445134413318309788472586478335526298606107853587360376925542011175209719147093387771498113968355316013304265486667574098250805018540941921747152396392756755499035379294760429062559061100116261286440971805155451126417835153576922268954753088979632882038086457567326388390800980766360745972971197640578414488670326670727301834945846780007751570381074779548140764598712814936224011311367875203614175601520765521386883734605094110346741173579694644322710366794177903442407196523006434749602400238689936311541369707063574011407326822194131641561307993701269556444853506049556916284072225600513841989458827360479758486024492415509643496427490863587079672941532456679286073871721053583814861619818923577750413660536262254073186551764865308854502486411671496181491705372566753486118292259563793195854255419010861109821798034910232777205159641629229635928839694639654971452286963355978447251384496141593997864741314671923729501960210962280936546121916887118948511898541789609934625406561436977714921971996046377731915078354199862264875330876676647320813484811049550295983940238840673483692605848516297546783332515509024099591703419644986387146266407142147666734994159027907161681331990893186662745808592481370517798147668333673075803319971471152713176241278466484152335979494177605440071328564298490567415555224696290693163196696180507936714710254279823524037015983598590193172652522345335238486536800175351537215458299633890502669731197360420758347585271602924635846303545502398103284429982961846188784225762936145440471574427894440899640049387736084480961485017434956272614295066201155470934879546774121678054116632028112219941423647453139289092651379852253932901525537236588700022401183301509963847895893877769535373308339123705763731063724231017840767705547220876601953199851814251039415812382057719129177049933024026389983336498681505818106921408483371925610546334864945729300870170869531803284909330930227627623186595641449358732102872266031941261697271018535664464308924986101878678004613798944498826765184245239416073241994663189026350013344352698185104378270728486886888549338139315560439599842040189627025445734183567569846152832407163746585815794357139553013573636192281547782477866388694899462349074010118725629953619825745523245831151469638023104770719119031546469559329392625518064458913099846121704054589008235035564886541294079968029141515623952384369173556743478594720409072841090834446581537912779504806623114013024757246161984265846370272556282665773804908324011606989509213112509324028207915713056610449796544596323571496367726309710722554485759407099231928500444134150498625327033849270337898825499996398216719517399390413084676398881755545531111876650004090362050735216896893738523263521101605579069228285914932985722787213392055003550881040128332470621530023745953105287053638043646625622037172079690981159788268285811459597882392622147791741279361533011477754989099527142205790274629323809039388363960288288967286522247791181839908545861012293183369098173115598078224740138302448149772163252366582158597358760819577558661863997080490658147738988780726994396249648439063372969976808532543508406083721349121294286027784158427505841463655117975027179636617369920340962870469906351143918990910562332570809581209142118931744405010184091623763533534006555299539350587925233195506062890409556095534897581845900214360442879372100232863185839854468747258893981136902095186842879961753667762965417851511765144735639255179842840280180427257296931884006688001111984882365976889425799613201803605781382685569724974707398985968121205056617179349352677542608824516917251413349309488555594080422659431026556852413041771315728974539256393999411603597012145870106664167588094866022530724037711988140146769195836397466346199009303647001259643304978655564123829259637176613512673758868948447022202398398420870412685944106670650131460359160447463388105049139880458698552927149682302616151558402602494174173469866260734958226854342141101577821526938131773586846097010490989100378805889637223215729135539203001763838417302140182476875455797822182700361502613925992044591231327406139583835002020323037592731306930565661157610953982349312954724515721850505507477353086955953589683509820162140852899559754115435846775696159019084718685510567283173234989379903904039693753187933402941740100525807325297452254028436075326050124192261426038992351350091347860848472059084849550375884276706709615346656245254267124484465945425320297890009091401528140569529000570683606717769295924715583200852940950927021819562713088018631423876419545629493963324430107691600368606994063497978031628258844530418684910246600403332584657522825865031200678714547939824533420009183660862725425202636334253593888184294761506472742109089104741548781082295523795841668505490622430424246900423340818822624055283965757793494708812264345525821592101716956719679937290730015920657463535310884096992065330212339393177081580511439411901287640849844052381287761271957267298371855280924146187049248827956375571681530394826143376850557531030870099993396612901343686299905717216852113080063818499863710765025962946534408155812779428244619929067018108381313701360462293452166246336799876720427554753732290375814851681236344437112828601354811259452018753986782738465997041285819288346317310077993158913753234396175744361695367020083829312977790863507492702818646282839008674942963845849642443382758021358063900827585104207491988879121850819132183579484309019788119962622374536512924037016802178012738165549365643806356566124566457065491269845921870590973862712326158125504345129297605873983979640524543716519631067459558632217153798452049696188299101347512191231339373408483092979181700531618686609051243799279693719584391543601245040656995855796841956757409665372362744701499259973474913079805726939020058238525225530044389217922112035444407508213880907242070502127201560082594851467575494569005558666392771373897181164385317847294871574396997757209223621214395939894569899999947646491323530484588309827802151919697628068463979457404552977157355296547273516513714856952086650906619356099248505952397103916912524367102781811541363808554888307910519936109684589001246956914188242260234792887676121250964712494482879177058433292267650801857607414979229619772795646389693642090156282739156685885602394184243013536324116187567796335821632375106387848850317003496766353332837146467907835723678383070729803307471048079901399354187279817592227124848890730240174986625419312693932880920364840697913317524283494753041827132552500316135997408630500665837802629557103583039891347094880716954919551971323695521540327409038377852933298272656770099115636794218798693656463082942228861758461824596967759352124388558989733614811518991920001359355303231956203820241978851252570914693648925265056937475236254737029454335478162409637746213917507862649903836013395109341596934606081314151719772089540076353786410148334656556089038073415165415879869096674137572195972518617254827428662915095860159549067485327961380823168032358253944320899092959939165727152486800734743415695979925700462070094645963731321024969293731337563295956684036002702197265701942408169357017660865539211168136500879253454821840032709945954158624436124229024432984229674744121924943360235719769934027590999417470695534761749637729918328066320296397661767288033865555573335120216566445722197045555206329357926091710760430563839046846129347097595605569653089672075794479465397986539400754412132586805924700699074309300726829225477773843460551376462512582864422572235763132487085676526742982896397507643412669168748224709302090910726019275268713553158440696233577520913124484194792846966468832903458154607531556701947733420047702172869384822352280458792516120664909718324146911343520998848044559567794971904822248581882519358217314626919537392179888689976053374241298478651522452004476300361754677778215530136768939594199869787315967042913579518138400324935618954864277642761518846955112351412349994108918445270576016095114271024682337010123420882904124867385477768925459386599258360291856593554874565168037461451629297608917982339625215366769154239297157859862794325682250579274972154798556741260415549438004703363326630807138793844027265591110158671186400753007331778143756796276134337562891880584706564676595521314712968827521912068436611271421011681720212239942035506734207226306492574840172681683198629260283688621158946229855579122561617228167812986482039300125902987659388337458453792788446514221311197860048993715551640244974749016706367445445970017983704755711050680015671191000649736375923746747823456531635358904464281320910507207022071828392048652590415379704927433697390418681434644943079461318935300119407104732169028202692164067330637763859733045835379622702906462539786727203248856869495903680580557856634515464272087279151357453700209621117807100455116959525129156821397497547218746183987306871588772156929226218636155459894661371603298390102802208837477698421655039114414447747442457322907969259942300861422343385484759368035051482212557933767447951033055072825711593654370768887436135591507467259088685709563897558745779579098835707483359613379893866703081543520485023618413377499990715609392927995988342553608671187708514783712004200820399857626321281370077013873605830684515117350778726531882694027744604611637211008108266171637674080109014551585359371235347005388609179617533929342176258681112822554029045530899564999990512914695507369486526679770210903464818121333158489874234935585796424164582836156016214651391665912370161305525840632325918862225936429108910312737217638264135419496849186929044431781496227579523538942357985856805058438932591013487127716445668136428621908934427370969577154263869606278261139451495562291345519802271998563471434907896572692758245786914368277449183446963574779661370610782763827351216071412808909232988427953629777677673536216639902503623294756546026252711906483611539277540839965415055622221662193221421177528078731260749672740633781454720936915521620421297557055543250424713575213361006986954682321471952304268087098663233770546115820437529391649066484137510972002752917102750504080332981735794519874521209750931177694613279862766133551586855638948854303338525461413504647110471070603925839723848942163191894564240570374900561072619057746374214043558003677871750339982678001550103781933614099364104398434392383073083186366078189756781662427141561222058728463722443134153443349928358570443517799513812964745187628085804104453465292291865679543453224927967759446542482603384051323144011320407159229848335719450941724909419785989842996679187752259034995396400706112052388565983393584465250044182141708521898650617999787453847969120508339796952007591422065551858367435169362462495736698275213552067505103020451882464979412153478684272904087735881608698441129000354007172389741853865839163805683662625545012964009019514333223446229733146634671547392514296800877759456490530844272645100367155888326517082123993060778954420190470455116838621216081481081971608176052484817217476790591326603318401667283367255719209390130715121246013682276032644453821972281993460885386879191386320680250340882098207223891683362376207331769150583429686027312882119758954934806423539873343511753363689907148585897086563710840633930804506896413780973711197673012752800786035681942639930763204474083665312887127281181505474883287292354516098139033308589682384693219119937927904845704590143654070932545866041073332997763948879879198559520146081064127218857397196390977255061714094182854874989615156601940990329622168344049886922378439389308382416908698229135891669914662697219418239756963193724350496977009440436784365818290882418149811480051177125230449106199088381886559770536053926405941403553033302916341979614267891175815852192874229389640357913717274763980893843376534348327192995754131934636320507901212577985237712405548287528398634284897700797178452731152674950607215608058073615238358502570114909741816160707916362647586348958274025324157037829549164742818977215831412885471669543340741325093182817213905168388644500626067775171139755541749588193578434699873566383060656657689023885119241455118365583040651365295390536200009603134688946498364834378668404650207298275358402185594179601414103460394131914617300714592482159197808306677023190943752546859863855039169946867259006855821643605259010298434060395135021872122634224781808093497094832802978500588033637406578360237677238279873088815840691126527492051717317579194453495614861268033094144275165118612281290063400377867266348791335401002012219581868916779140595924742596058922398355264095443135205706886935649872563942684387069251016751370281104993518377904725816277118385801408731209700506889155963959783383728803176569271839449272405330484186567307675974374738514553782088196354487790497107824709149804252247037463189936380377245681537592712779064344177834040463704254305643009819591661925884466302882648262202136607793915339751363532359033069647201938017757556677439358523298088356843316354606838637959493052344602639660394678367300713555927476731714419379365843516134232054946264563201139093552322462601213154355631405802354375530997504812945215538125357195268300506440234258639839232637245821653669956297666012172282228379819471436952101885037065381696196040155726608447502595241191471876221301363605778411938597353321829601008136302449980542464440886928995625876137081304221097876657447467054306617748870665746167898387731254126013123760703715589491008362221400758987109547184180908992902607052288383987437659434243549280794361196410023170701838120059217272040722832646846797981201336698738775115352179873264764706243520754174635555543719791413430456544903136460422372285276681190260328176281237375243990322570336572393459794641367012402203643819970648500307709093676054004255607223983679049154058322521947274576282884582645411150379052094612410924030729688593961775614948654672508547673377737731945693429135653131210405875121571766618619361263154993992853700096430502780854514077324686544094752086458632613066785195443926680489715917032632722064300581852172403379355865738249943266627985476505799697273585816926534803462172365080154897537630703290275201301712841320008963542902877431232924601228718600716005327276892450056962431271273289378195154809026730137582540142832673552074916000885975643547570130870587410107498302046125671055423304857662364473428891709514198259184705770896337546023065263629288225733338480894051261383979860617539858873539271799151695066766871624678308080540551759126887391245999440191636169557569475732630142234132718300561925760114056217702170995913418472649633861852678492176569776574083219077546908282286981866978370401104358171294324655462320192012896238268971991274076260851284845838905398623008324345082589904203679374000547951824610631861979907673703547599844263354811028469919345209502767137982494638233138048397898215079902934188746403454287307364141281095815957111799324299824819560350254468207430965484343328911130975287223114077999850779384418219311012219049960335935540386264039191457705421000455197316839756758394516222992518008687090645534551833326897396848485468859868369592856836012923499614069731175302441528089985874959139328064472016607159961683994842940666917856202963515884188148419934731916915267420401765258900068800214459879152056996595501867206261288502081434042388833239720119139117876890516169070610574868628826890226097161066850420069720232367930962836995227501678108540126982958037239578763222817477787741639084807511538023592837372513049810587334682804179946772682519183432634474710030456856328750746230305426605712702135208586407350103115773803437562238753403600377565352523251054192626020475967690775554831914416149255340478801431988688471048355352547674519044247827617758247720533263314485328599346825952107402779127455807574729332022522527988050182095721152437617447856306503926442142630777055286567298549961950981715001496055626981493267305858467229541072755473427247343751368902663933089973404474149479607787953380074861035423261761863165910173535440078567173250912411652930160596072264128241714658102323052661675621832329968946502092387788161252722157722183289640978450352376060712519432722948393085174013881727470651950847007472254880915930524140785942339257472928280638619116555335530759482959721974858700867153684856084631084688812793990943356050665056142996452966229980624637439782639612275037924613405714168003619232553673805393576099470158446890174122633702331741324138424857056271504442221857485020205202283523280787426262041703163503263069124829239186652634380200367256746271711298162935132347684976220846589662984240687022778187873552222800262455053687792774791444078729648469362767049476354284063865239462630138605219274911389966641386210519402519635506788415223123855444894014772682433897478349955222707459506152257320974624964831102566121039187603951199194876023672701726183108585153097467276695761546681924393943939932317572318791342928066813737938450947375684966342033520006341293222131742215690622627743167835746647969584655278734223418244707409920207796297393285096059398567291368459752898468335974760711572039554083239234654944075319461726609777293763665333398248900346191557181823272367407422256935297087327433253011051518849316145876993692837380710444518092532083746773138635902750289846083610730980429427880470852425236848295206366224028167355531124144851487556044341460218119188613747546651315768797609732496875918878854279225010284390590073649817731289963278239848294017784429938121848650531739378416771061687659525393218168703494433121554783202656810896850303020744326863384843497638566246814844156896383694646746867097468369838755749367790537570390025438902324103621413387163643005587072969563422614598338775770406084903033633906636132272944477355019561987845798556689592766952446758013488963029958102305883770837158162540847908257975772898110902104790584883117804182002970021398191756712663679727646213484124739158716051937335472604315182668739273401367782281004527052103578715142991530049657460215052355600429292631277336429444766414068051539732056661497700081913550563770346724173231541019403759957354489196188703094594759317806987575482899377994230843589271374752234145987386989113446123502890913992617539930545917230730264995010753569291283073338259123975323211842282109573274039841514705997769239208680959935342346888083753194375967827473955634112856376956949959198784405781891740075186774820779158682957825318726094839470636713126151304884042291641877446741855127737058507120813241245741155097681554875773200138996393812299823709241158327200707938113764599933576289652354378430369278464503836084527791070835881555726978293690165206574279964911547930930898803512242834310102978875362842142342308491829444090790699137324163407718971055158629240250293167270274045066045651364399479031433100102512797599702691461458231779150367123990915748072748036719215452469353823015580085633554180154384207615503915400505734183069834896919365755587746258288071668488424133131306676887026217311183951154701762082300246155164605326948841519348299694824819662169371818571806360595040144223382967166703748196152900210710289498122674101955951293885973876592553999352527424596352386814422483704451075404173142251708843325954540928669664008425569486690643126772009934776923353543634790609445548625643779754747683559375479363483876232218091233421550086826858273034349712757181130012116610462667733738411526069096266499234026227319511587015144573288222691271206943205166038721428076456469953164900824047986437129222572374302614929916586705777337735537880632639359384145788089782240567105877999419843519667867755917574729201823992087937134055560106136828394086761931978593334437434527223573122265307595131589753695195639518357199937697380345806396479720378615266437281607971885584649447397888398339290147417744987780603093314710676253994682502650747871134303494871821549824810160659797548918857714498172992421987850190169286326411252603846321560335763821511145192107023495272157398536136092725174448418480150975735435654658490728990159785135511261369074269138319406567280400961374204909400021983273216387502559958919997323499855998531302148447651373586516148107168308154429295777990467578541680652501774684034845646237943228874827847574396823553446808465508970087405886956562987617118966413496132440649270522089805961517978643715119825481940031138588092839735091742870338944544150781774665652416377882625984404047755887634044930891358343969620713472945394514463598785690690736307799340983914630847303382828806710724272694588616103667979978647759083825983382795066380778988808530268091555175861600677233162059088100831033496815904186394442537178921132293834305703398345549256045024568829849933676792327476971907490899230159290223968900807344977065954617680640836611076895217358665207546558129078832994956335615507467429984353385364517603174694770835391968040603194740624113223724069089414138574193835637976296042576422425673602290318662774965600084239522120060798639270868220356759459501871197439107489819411690349578431612280278992169607792260609332369611649713588192241409287432140657954484132376507434678314360874196402447877461264026421703136280964223956927678897948481013487156514216760510767812956983134900569513499877941159774202796558203426286067463499229314430638514020546999935204365013385443706648843825683576843875726096452911639216732778355857345186359758052397187606239489143593075549948924163795014489938619057227718482920870529417824466799243974869543443073525278956520189720834941722616251361732835403157741707211012245961232682946075365109075801360407332091419347364334022954813276739953358256913021868328584420428047148511364565517955139900142424567003519576082329624268130521178371235420206061130940090582762747777003184011437476163546765945215974912626817965417968251056613506025069124843574820536703532948009853731724921324993179233633850888957867667915827047626385495587806429696062938392886844341075936732801968947051280224065334847331850391562219147699995419334688345214826601000394355032450205166165154119798605941162917880379037327447158094989271987579979795191000991818975595667930392170779939741290481719000139198948113267311686177315920822769744630774005895063339871820041015018979075683100520913486669052738666877305253415012902659732186805185522847922334329016738474054737400544318702931850899331855589901071526646628504660939426568082490207636953319879287605819705916109768865263146224447611188909180006933053105009488762594074730957418795705557616162058817991389582529725521638192391417089718493604439957629140127549356859438194822689027312727652788285355577051592057899240273699707849643674830598565082909056628653534684850198185482437160949095760486834350613368397263862127285676062256320493864196583336059843054814566521009604518079328124018081625802775097717583818297644493292113234201003860391775351508282466115651447283424597067729574579987595046652363376206398760848770884759588281682024956616812806589047707202824750747275370726298358377210200876070329744847728568918193675029853247650341451949976987313626067247483529011251064460211585198307649357948805983027591669376768336190597779127934301656236113682692362906265722063304071995428784445733511192295630836475998326707354677957226281406074849498827257229546451991693674964126879421283514470030414043397711092153740995837028064373184942558022987473451752982144720114797387806736194778828123642511670592575041942076203950699058804507496395952305383807607891791339970345709316732915792003117682538349702083934055603479741731053847979346937538498639748239063515214991550841020314943593435827445795474895211676567231359044608473751070827735085736274785068482113919558461357317186811584280663666109288491924156769190450156456683948857303042294950135261059853956883948715541307748863879936098212945385919616747606627641714881559362079359598207879570413172497729084352813570637034438925710848898052682640747033479735940512747381471512921490967211725595051325148330757504059370258123854326272914923730360218109593864977905853055961238994155358223486745507367935634072978089392077262812512497827369859811511307299722881356902096404654998109027227090827799201558740748090248734965437097581569172472822438898698900068091515245563516225410722773463676197362083000544621262119234612569729507192488142683168089433290899127943602811445126018691953675703324856652340758755374224628466781385769232665048839824183394056476806603072082763431641541111528476708573557387974076311577788713457932681053106328503073433977802692000595545386660287390521745153658348001802405187293557071458929184500482485034930815569604841061019471893815496478954330051158456669997412188933475464735410223562361814240104650299138577988083410134280401209805760694266055624226642392130248042676453374804372329856047331614724387517010350605029138056456033850693640277447802508921514112702898027688520463361722556629605347236189976801956950349306367627239173429165935109023402777510749843130241728331092203795000279528439777167322121685204810885022172379087184684120592761152029338898646843455554079481997193724682528218909415000097399904775505477637795587235381319800087882233499320792680982379745132950426632954624868555180870937435142301650626598081216181315615845112354117528067284256816094104119298377977744688237293909778204822933190257130928297121464802559897986233139692664289314447940085829872916013517834089406920248049982948281832465152278374764695087280187583769730225565725762703302753689590368993571917369363348086248896335839613510180456926561165279898184684378468334831888236682459328285493420302580354299887611743888221257495405620429582207237139332672833769259730267651408850626131383517526193532835075337239974560768335741563357529745665847519908300367883050053215427913593226690695894075159789258857122949923248399577469866045180959758683045424204972233856440680782424143350351896190538107930675933337407956453074641765686670174303633228219762366836200835702389234035957685020918049512164790976527721000225152302566163099881248295828966978926339455954965601237193380283485260895618307770416708367734616980329267858627359020947757376713496579329455750729828678253076584783483648652263507061799568158471887326638023521720390157924157236555074613350396992345387113302710529502867527125665103696172385714807155951815995316896860131203542272888848087426373774585150577388777694449097066336765978475959700898627277627075940188030187863540186425834023547620604464307750187607782325956094395162847447280589516525439868732451202454759005356417723171573524256886247959761491364397681285329856768383884724096365899919012941036382308114331104965787581829486902928028407349212028404947128616580081672098837011801763363068175939596826935120828767038409858267328344220584582180291214597382054285498327350360736218869055799074121908720386569334207847610261074291989583625011759004672783285280350375320798793543887552439789697089503188785830746067568694111793921390157196202796601008034279543127801849708897308713168462005906461075294976364911292143679128052192158245007627717124676938833960340022894030665317724889079430259437592583439773124177403357065880634390744703982457331136121699298418584583237215657453997819089645300023800494325463843031095791610731243183856252649672595868348959254758722368252968580476831607028083906653619815786438393390419138630013995578098101511484114823797299027122253575949805526224724348388256809651832098674619857425604565937904006525801749949278648819405607799635690836915811580740894682394098976246369945814940702287978641280850193472460958988636650991530734689577367097194827203711513999091476922508325052206212520858243999171144391353937464095053887521563624789502488616392573014831574783713586947612670554215375975189113058608820453399480303827533038241671769025853617164103497482920824751399701406752461701633030761396041802936338783547073657233843649326673085995935395718836679990348153239616982634004560531288062684176266315412191778797461167742407386568196264741169526754752054272844832881293545822775694909022960243064220063622089937410614921495140147433738981216497430945530255526978183557005883676998734573013491042432015127616852046662909260950061469122331910571139359971700915365144572079055177146588063706610848472565104194371610538567265626544151989896194323673157495989643731433523433901450300564745863525021734249080504866562263561346287962911791194462864067335664460972031616140973094775285662753847971469349931532186920530809589911540999052944663848931026614505067560914399298378310142136557696354041786819339599530729489227574794074560707589973079808950918040151537247052906329513130149422097481807275527466122962111859840434429301473799324481662778399843033850295312917247714485856046422198816964083862388788468521561795627710276785079062680270224474493117446982369580088464235228255503424409689776786518814724274014495887926324819839961303403076758950824654905970568463637011571197746394864652343228231065891738717474783763436575204207153631670054580505134999540155773713291009994909155169518163964747082685076226260557962071059450930930339459860779178878861676296575811967839575936937017742598155204355249568928766785601154571072784795934591149226456840064805897425015137220959683035779665725796173742976485898947671761334087526285620423307007815511350735107831103494334847632853876079683005881164460325039683951002733900550270729877184618801336573028198128938323826583889165586972828025133235956505880835934877764851483680434749259061185707937015173121912587744153471272505435125207516591551768353896722675995646629389400572576884157355514398179223686680415607139625893860054471872326249533615964952326317145227428034843964169493866424813425109636570160778580729825380539391562701297400723271855527220660552875448738775706503922583375911246267700701559780892268163859842778325817109731969236363190615284698226931661083669010755965726229605340844133264042685631612057436517993580576873576110430206081058921699916967137021768536538043274456741696212564025264815478101640942333708083903175632785161772718715189444460516112691511438544258164214263555821661291791270672761900371765856950739909721845445332499885994288348599446807141712512069406513632821309885227171501488224059321604876673251929757002993372190076509698193036113891255342021569666106218939020727525057229442651035152412717782175331517513643048154546561987412135367529709200880984606363588270948477030081823990776162594278807431638812153342454338579541790078256892621142899430431600911896707231053769890993001922999488588326305269110100600688478788974150497715776171487606977706150259830131915890382132882042163969699703645995337562864567904181615194080450057330598433863583797788282433225975752633999722353489627862444310145480309702277299356389257855134289399397166482620999536761130129765375535216438424559403145515375450732933267910796729329949332339197677459056003774291828696952435102821922115300015407965763700245799316887945777299451251759636077523121242764959746425887012512285682805252533696858112712325299106661102664938212422180749481784954138290695617679338704767868628470181466087200482634688473188259966193929512959108173634319957719137677672172002867739301715260866744622871473766755818396987842275777484506335591993924540640949177113891822527020318850705046129463553637101988165934723280808147569350015127198735271607285507267541737558884811643485916251659877881304436274745619001663919750566734390701875147853383169359024764078736179376419814862977303390674892298438240094711017370590391963917193703884517974795967092252988337082891836027094824030499309221263772163820901065354481261675138848436280994997415586040311905684654220509300302249222351371348964041267499882479482805838327558995773508732218225654807686114824091399524516922896351849787800662180954275281058783621647144014875075173998477449013125089870778026902623263916501771798431276931062378049078931175059450796698873280583891056915162933186644345997675131406620699346246560996942917252592157745897210668460800370744828873278431744744489334544834529716821721751967999206418012718173707841654244633204084935450875440302882197256493408415535864784215924603392121472575964667278473538095972931908240073806074765923854017441534896915099031742375847135331921603219081082880496776556096480650824801179668707303606043397522178986938428001809002453071542440132179554197678632963622125204975805972560849784370971212476757026017388238615489645114621852015982419169575615319344665178803592157946460903390001950022132501487535423594184972320218559205477089873536614351343835279702777597559119156011607753578910939174419583654999895025348146830199979450156425629445638567321437477052718839271016172765102037462588774459520995439333173420566432724383082634560325504830098971506081859916694958948700580459342615174055285457254182530423310166858350661871405208366291142973819528525821826492181862110154481170620278988153488944166737683976928784063340514145731218668011168946223459304045037968401059898619651209019385502119375669680718768364733812999357393039602745485256204878056070420446685269162860021882253924621271393844263704181351462882589484766958249968644730754808987096448103372744156601255035395809865346787467466585320536571007304910281135841912664997736754671128244949072192535366553866174684853747970877329577809803597673869884958710819829348490990643591438632815449735521859882528949243385173378258399146418550009341849132749100194253955397204734069477163275382789246818697580214076168439667758161763480872742071108502241136983503455087238546481706406203902013242061359115782320787879751872942963928651547110294779811820350491867858083300144686152751776466792613108664354617147435381667177112639782175879739949836458435611940044161734189118825399861372095173277659197871126991322890725646880926937241556570381944560319918743683102664790476372875592116391627164880746344304522119829146271409166240502834704829989539779170150121520749381211093228150535004340290302319826120496198158482531510926860790854640576854933203230740560265128385971538187300125189710838209997519856060145781648349294268236138303531099268129134999543454377319879637041755545903368626975394301862559408619578380127171873165098330421040260319814048015196989552949810376410109059524898689808854694442840129674080019274290781695165766216813057242446565524757600151243645642014886049841243981308534880519148176135359757234907515219944114445126302416934816403030694157094524598086902032872803364188794006615225329467564439082302356246588361765735265880323760148238445920994696656559423355992364518433441919415101911490490510875683997177316740136836042998235609008482015343742204203228764691348439441816733408365078183260963593330217596025750660090553031241212537665582868062982192314867393884772580901562254196613601193973302272634169203281394963241539821247626710741393213611512800891769758887390244600738306374103463226944604650560101162367671435326498981396405748096949199300137611516189029481979124212908352315643342422648106601475945241850265710045789518793475815133402989129070759319681762803825055788254387016401228951949766960904865702896456102491136086715424641630049609598908608775601600474186691090048063587888906167033706242074765905628302577389997076526191658595728579163441734739807107624694132751609262273005286746139420951014413681689654834469043035803252569116378173540214406495178725843880198450264260538385278617929335627303541917789493707296763606176823307364153117694211777414546545780957695248866234309343962417988563990246012994064907805900541638733464935973910581572944286822456857452794617701404113636503402195515157770188304101052691412875686597144785024993231359776214770849077550349525048085327487029189486346805015682189772649318960019899524651034742521083368336414784030351481645876166136101375820175601310870404621401481735478022344398386230157687071156589521210232403630879403033448988950696991542200399724613306704748236333173391619065254620197957960890388638094730740313545680476071276139143791288548448471992596444920715515850929995708735774819512339616686090645186356889968638863621686288401624488595901201761522206247370397025195511608609730287406812873664858576391538102793596088235858240036032074563676405952222656175819620291461966817200947301062079639302909108187733099549417019630372561772135679752096932621717432925221628032741880756513767794997697742146988168159352715882093374632386075666103670968748483563657647642449184891407346460207841200864031775040957815525330993974319581872634133285404754566688089804066845257335688135581961990826717361705727888930546765430643374138655318681556342024613704386170378411079476059949165972331124528794370634510665272363059233028769714977432297513429584154336661504308922978746973722183776861983200195318560374967934993326505730574994882469848207510063252228964143297518037832634609739349254967383221707410582478343181736564938986142542401852941210165268851781648919636278423004137209170838805506137024006425862831592415174860816583778309330608719100126683660299501332781624158391622919528574139535393791184926998029680314219056844306193371770853181306988897894852532625950121138573482404393388697137767896212512335772524341166920957944217242252269905081918598196000219250706499942987455488806158685431927883268296458855805316304116840959331946661334063149707142889083514820317142458641888267250907715593148769127739242525041324186126452111134573414305377291253390141543710039610585352362622153333724353787337575298372865642495959602109487035674935350278309178224237467297892013160491348709041908773494257284820079362660934446355548548382796632781576680448779014330494726278017370913015939863177350594696385171861364403314076589431115082049826345153756644032708636319491740692795493260968069886228301066047797685960724210038711327395265182979161458984979311240706360239114806750232950315965625331099541249025023125176672061991298406069902739489645117379254082727726768120728031845002473784457520994188549472514936932957500905434553008549167523442932027581200521231275589608490939148123171368190652429471796598119958132237527818832733221509482543356782102750340533616684567538298653426645412634759434146779783539790222110941335983315699351780859269409716780228211501233713390531614013485723269726470556885312995892901402272990683972376222710930934916156468389935813054655531883384245731431591093687469834960853321251137530495490166135848232414768434639462814213607605001097171180841847949021327563943639246747023385606344670029478533538082001909693116842351076093625738238644360663502386868944827898458866234594802013553923235230268431526457185509862800817665910653648392349051124928667340852185078829349286422492920712611653470492446769190328807207157333795547779319876456076154425679518344504461880312413887968979397300321449112625415457761139403582633968331317838852075354952206141278058092078933441185308622614602753520710076829127761003810714894637468877626251652666689381530123763893466423770667391599657735543358985630091008664565114708733005661260019112411603320465302073054674774006423066032370037182047667226452142881779844898925080984748994534589299470771352016761085777493274466234696857630802420665920706975597730812346403379600804925355687842046446137310991576347461211796473559283874129503059537133015852141340667793968916620227428660517782658426756004155261574669607085084688587461273291929660620744330116471575927485751486493897417032988078249249140668120988392145364379038109902464425460220230195223306721543007940434092387281817273813547978114393049761382480931870439911508660768376965486728265942658670298561231082507369426853602794751556498924547755125149475966757935357120879286456102901332073315993433151941899890145715205750904288221978841468881555363852209056906072138287802682879519795869808753854624304468506544051407678059676008675517333797542250082201356605640863646769416139554995160439074541151647885398701838372193807097609352191284239313262619296523060193423116453907519908449714261674793244586629459075207880313880911251990506295682345997166281158592934859342128210734253682963883850829655361336246932760268860354568739305663945957813325948946224941920827249258877670634212553603892638561108729219852391343539847000810803986309845383532893159235589072267238100948531031032575367671787789297888229524064266440171751650714075382127897900357201081090251550640750911630748679364858582862849388485743528211473886102382063516231873937726270061175373170736818608910138400383598499393785668059328203122243799883643732559118271238452071165205926485751588876393730139434055067080659841585496939155730316025116963521198911336212553465506189297442034072401118990400290809926977238050292154704541533857247038673212946561151322936485791240274712819878683495808949424862937728079226648384737305494977746171745372473668599184694230501961745393067514218980962313792641528240499513335808015392403274404940778351296042976665424590625584079686368128975048886041480930810906803557890127323527609240813394226416412909008342288570064040457751428547630977410276783788692432184116891373720193255619355243979965932183228078307661661151549493925949418925533498252331717851784179832980315641015841824031575580597318460649252199191119860498579136871358572755809714654049916302683600486094334617888914953365585253472207818866667807783679973425929626329135057480710695054887833753957684543878426072810291504875886399411625638641308838815260755742600041366035484837883225774205184465391028468620689986047822693344127784351126577613929883897754747119658323277355711511401514999242095215943575428840992362445899960335410945223720115840979151654102609595298594849541876435376405933777849881991056319233405001307647450869133401952725556769064655900347867578871189549801169725041665500484782734286323317739176656258338308640751542914852111147971485014096378078052364072050043646681578537067315451060623976788854451637953995419513352382730514294369501972029585025589358960576535537616724168173133917866257684466863291877712972957432277265975175215742415300939648591109093768358230055197742035665678974295292258148467972380161752025190962497166769153891139461841692902340030001115954382134989538588259749447585219681470770193990985547641057380654062593448966326428608914733514645532601643701281715363583537842000205961051938090377491121936407502785628895409782250383800854212585470031358496037313223865911184333269849262010604779495801403312691041066010528330124683261710037701164690581308746322084263807537405468573854480956842373539662594311750208117053611845758563635443991202337217835500735362351496157676192857175898662241856389872108597349309423552507562874914965305272467420125096176938298725659817772316248565055869522202546558867119259283624359648443549848970641999808119528025771446482575879399730175111368439573152331600267406242545549251330116582964038311976612382897309207106071200946034005887740245056624719868042514868169328086627368385438208832738709655643224371656922231842343509138014243205873854596288884902769381188261129524426079622195619719276572553567590282914181262706579841837571596279658568953434643691667210699865770198849358945129288357745089985332483965667197591243186137657585039381869462171446460619278055810330804058229959064878108203094209801989543025988870503767097802660417906369519900360203493836989827526884749734493738859540737993442898063085635694210378389562521499549225477677491364281599973526276676813288837799979993166487354180296694503783490906463047889372200016219971951084953923597231248136919042414443107534816648892808595612960077259635183005331356099193451272470128810546728889286597234919030614992854024861214809244668871697591384222417629493606785774975012580923560264675409912441046707980193548404118785207698136180863827520323405430327474883872132452511584400220516538325591291611948137701674634648773701033165701848519290153412882559089297211634483965576746129412764684508659480556811360877221948002072574336982012815915141583053234033175011828287836544326032660001859498646396823833784201301798100015283083631925752570180468369173303874392438678283273527623494862555836453467551693741964911406686735190389303583085844704588598611371578003848177969880394667364797808700680834901065006882544112186110564141061595713383441531984142957466029197133558316430625353260963545288825140717736914555936123884774917613031307153066611279768072363008339695148266620192693835302445566163297847035333597622465004953280360890293576415697687065068353432589257842758565631708465675282515759054571885192468793291763456851036053228255703364600151224036573698561089086879099351771203052144964150827560258016817756963876042508148623409280886313342969124921776052981985944590828413334571438716089485052769807336815357584866762774408914094840889821790592738192115441514716516051708608025459842589884613685821531653226342380185627770468545086627431122268499312272354676952710125859215515187345166195988492313424878033398627766045737238049434746924993650009862088956869143335947183824553790521565985496116585470126498803434143358374885899345372807777024883215186063518929681083462734429221300425496272472816917751176015742221843108355461814774987320337271310771190668043109621069812356232208541272462901555236018558002921277478421194601201173159248047608760788118723152214181710876773591983011901473003566724579368671447249169788870275298852901724709324141441620796408242498417204607154593428743026060466006404509777940764017190982549418356763517204157467646574317011190478634703180083612326847151559741323832356442623436211274492280067946071487812608202548780015523616949548038217833127202576746312599555160019353529021265794179193593004817534306325642170294889867706143882799622411523112735316386459066605409109507733745139838073706678816486479332999382783024299934788604469197841486006628752347780295637115886695539126681780753514285098716395283104371079727919270535542979245407499470919851659981137704487990844176457653858152005069489301694460486209921054453321851573134706375898448316968497809987891367738332033771736494836034558647236332038842184133557803160971477822648093231255603107905542854160783347520140119301106867433781107290886940421252809659524357938905089996742771014156846219971644036472705775765429991635407913473747860082910214320656302448105389599168801490941333151609929627966362294441642923409628695376943543960334768503539317974327103870347127308260033164031077592386085703490369404396085124915617710578842406822815323135593174986941905199028210458078198910160236427729296688082151594350272779878553510138449293486987396314705885973676338666394137717548809977966994642826895750909378981401967648888432874019056893607797856095543734388255383405499825911365489845963934461245984213833070381802256357932367378484012999811127581181228165187607308254812377537794152831432833200705440510226676043436812577617207344899886045688076047697539052343859822065855451157522725407375657828614045352375822628748328071992347279664184491077660947782629790466086380393715028981620045185142192020083324363854722453764156082685924759504938495111073533109935241693573605224151649912882382311648518014228150889956361957693215927052607173196909991294377737896881866879650873036545142158562641164013015366171224092685499328463663479918144189238332181228552236673545101990056865013057537193333067238155819710581079086387149636662665571448335591987298882001590336602420679561937762446731403636832003309035084015322094767839236264430704010999221870303702989855898940169334845754948035043175019648546659330600812473602596198177791935777517593474179592864032935949745724521923658911449879256306936757163304543070370731545183401318854477250198749006711556198278466931628862593521185056152083891415765868586197586963514395019220032235065794260355280584387513917619115256639450629117824245907626715092365485052910528157938268081208581330911511193178953742508886669852431390758380047791467976047589446406263279539221155005480690364921714173007296767321337361460692339766858975231412386042188930375779216297211169331614504335961825062500724845800137183324438232394802267949156125743481625834200955149598720237195095959676006833105643868560530350873911973249233461736973805542746389688873561845226648582172086348039579252973680843209179376549203612142934810504495377575900379204466422722517558998694346694922641809124398878430836728006642964421872955148425968582789543474812020949089462297831935240011075993395346288848248664080390661745896266646230369788973001945393251953174364986192856150463457705602106721066945276225232626419889831095879017372702247124754512370108778644071487927392004583022104982959967782931537047502433964590154478497540016608363301528397857986989536484628362903000838527055745652419861793324197625831920106933549103050363041616315066197078004794738010933215818550482999784604554591647595275717642545986707182325352303608851304256238597707106459331071401013462552684352753476122668470662209019166459527472817937424025580655702653138884094400047662029586714725309281692375093596548369074568498255950517529382859077595107900943253905440350651955605851099262215258550239440982247108169875382883727821494904266501000860256371188444118534718864127732452658692538727613493048329783826376366395569889015249674927825324671507813547347896400881199634381252162636360490447992724688302565510285597253951900308591973062064388725018529541396879183341446764438802966475471007716760348709616317268619926593413677114794104806916537675186735735276771099176139380246490277572279262236161373207450887836899629699498709427867913646226243830545703854562078503194269895939986892923704409105051981365215168242661986325466163620622775029253230796267698282779318237531828227008528806607461294580512655247722819692695306630982112075138209265279679508010853767898859191172445124757839895519755098785388298979734471514250025094093055142940810329491193760598394389391220292002248409298078428332500840937176307064787733107902239087054204220978684130951745843206738327644591039260435736919131453634351930133731856482036890063902456688578002576446951628070718408075778918114272234308739772911926254223598393420867226140400062281725101857079416195987964091650386287297432510291546062780713173244883709179036814555581476401007186816794580233654892515764225423008441672494790315071560510885326876393972325361097428208276935726438324823416067836355987683687364227058771648264280195884247319529518457229264995748017092850212792662276723943211510675857508722560105485594797810441809519629553281248034855495032139366027541937900900243390384906070741719628517930694482004657838992032053893907019095247841290228791061001831446102940486264758644857725401338526192295701524399918921633471303185539825397015401144996749822821980624896498438052130541080068449570088208691078956126199723856864335066613354534352071987769119089502847710015134719909693931343783747685451839584964321967523311844983949605920767415432427090264921125637615847130158239502180753781340237958766430980977873585995441962641090491116156068812768172111567417407188503823990199399156262462267574645833122474588400819757982240185806531697624539125037856424642071023561996187309146733673065051820160491929788580376608829372650158994083811986388945295262145908225312486235794867547826774096650109773183137774295450188328661871895376990080414510002861269132069140488913092158847869797550957219218968432571343349852592265389011925736068687919869132522468157831046308228339063569143035433351780342028626058019221689620574773164017979627899311251113429373244873700712709399385561704948226799059909741290033317926724074463000656194783364714319187068743372648396245726225830820149164613884279680122264764320921244539357227110928366309164603181199258981059129581051811086168543654130776459724017326572538790871340045909978410008059102528922066765732111695225770833283423734895613783531686831663394448184470505463744018506159864921193972641131097404908222410645082229060998004904373908649390501582920885551711713795719566346288628240005279267298693559328913493464116984800648154955904038427099787592253755953682071701841138966085339753581474337700603239968514952400664921779574741165987290264520593304857639888130841205640963805609849391282937127499426737267209923630640500993220313353314436314168381543957440787132188864616748130755466025343687594892500375943820335711442823604965882232318797364540286349633449434781301958180296968336807250542743328338471755891462306499349895346495294262469570540639532743335862388882150735733180157694675716455948031679141520990214260208702356534912481728926013513630280768305168705233170031939201571089041749782720101378273456889042957619922774053119593297618850416554136604292910122141696334088723231636544506963004197091794204626438062768230105812544557993429638464786442526504250397644265299840883898646180406043558866458428074933437420753203638599158662891973333391818847421190670047616758531287511779329520840390726013686052673486977194750494678152028745481875915494444039996969402359481009343066914927904498623574789943461906523709466378173178053581488517608999324203629056109943543680091400584571848975953226608254431624277307084629379250811174412750645410892687571483933057241455172926900266245281574500704470502568607626894832788871861472779897278307448370191639513159522240593508182532043923909788604931708940612649792753465856860564803926698187912358166751758556617422062186164296767158375323909245839193104736696148386432196448822030374897959871562586047701951786856408611353852830218704711001804379440096638262525823546566317728309671312063647633236382259988032982806814253976593093714248617457567294540258943884891081519723004904881826208029107020753421426162822012819100896503354775568359821234636363150616340881776299629748624383309890671395156623346631765896071163778154873602683528988692220941758781550227391560097561318287555527332077672338508044847308760852982729200199766048645946465044271202218797151279391188627304189744315320044135864732767775535704858034044778950178713096189802736517578663273485424817908040855231912046255047805032415035762733332478512485287414096624574001368401806599063188438534002943515139756502750523432520187003566709298031582405551241801001967470130258280934525668922227171941827254559376463313805659845283679091313563873119379388520155095653437078818578985074028399279423952846276906338741689081722805426171392503003645151893326341767522206973435996552252017125204099627855967961221243054883103140153288820827744695286601279534401301680154917836374374574940660061103329540713921118454153883074950571279723549352719582791248825465405197664399133026638047646116279386326852589246897438434963506182964838195548093597264829439023061411834231614297228177897938931348513166256181400815582395285867792583457985762292418079772939835178916894980508962275521366679172238344990101844802918835879242115351851508639657518314523090802077657141757808712204184924456186330037247865527571356053872493374319751338577692507468864495361060046407170349823631145433020153625479088603500445023445427849976317426374025331307303729755174971046972598172834503514403408801337218960341345417894655842952822287761598661177016876810588775195012814171123301390467858224270296732958856327275121497429190133088357117600044729192240158794864073969361435572883420800692442667378388235375401348664915280591710459240381442147767314995392369520517064723289698037281199669116356143094078637136852389437658746693050384721481155983510420666433558110812737947814306090052739789540404474441164183918975470593193835580511411741751013208836411210392039390758657835118457492544403365014056723793036691591339294420001590228355025396191912381422859618262046372716692102969313568742557708776047261449419299301561475687801808162700336536359532042935282297976594771228724487690410529777362924161306065803963228987149544956208494992947662589044391890965405053511295831987219168207525761284228556521839504094634230360835594010716254063352003060521676750035840153460997008514651694179880933143491230742418876888462762417559291552647443261670788473437922575455641483441070568375061032197049258040235967607463495863688661913057618755021232929896994297605294359672820009901168342327991762373949345812754324729964530751463295480637021528771104790335023396902445761964980069158112931476759959043258571367065182431737938222514157789956736731415259718502540635841645787426518382060371155201264209584944806607835349458545471452211424691386213046492710220772499926764155465260197069314041757677522817282329577930285048373551774297568402816113480179875337771854614744920605964548823377482671551794935259845805115831773007647811743687962968598949508760786832119125827514110831433254382204514607512819914466987450932903644816849619350438820407051916520276921230078938856777019357139177110223934005784069658218115288818412039232435148282435121269196107630233298756885912294748230098886886539706402460548885233307416718374629229754851278109826976953563847306954197141187693632729578960553694865018068028188867781003007740693972485004586558101365567285499212363426916847559079230703280026613452527215299086470838230496662507291770158333665954553392639991760687712314721009612178459698418620474224127048788386198542466141442861596471820544237676857956684521659844073547634473055190768947431022880095263320588538838705993774473935783034500880851473878046611646136999102608508707490368247689345912856296084982248372434030404413438627772427709441893366935797067960630997152620400224996403997519238706334629189158365172893971297989519800974581028563541090868542717266081806085274787349583913056242462188398528621961446097852689378913238165791464252068088438956905528680592701694566137426057269077168561314240423278276358930602093856219680694432055664625045417950783665077622157392500325015240489336685302981931541020860951644723206144122297927224103654580974989811558051046489211128531585654506089328257561653211557799144376198113002552587519247772975493066660606355984295578493857416486722183015715434741817719018515392064957696813401657975046481297054802927999554434425359634770711056670363297517418085672730713165771555260508046351827089329259156824220278968288525727976519740790840660191556245560979436962099318907848883310057084192609940516164641081422872087115249218488924795523541546678112880657946113281807384239037851999111820366483317191106789236229436612556430278249280048628953271130279094897770842469348793677683486406683346688232504546387072422664113556671958448759459067499894173194409684111487876495906100091518633451332830794736474658171926096346157551818723678111961596434485596238644346595065706809809567128391157277842577092028256497218457921302087775683712286986336253816891924058824269678893749719729349952129868105575433714882435164104332996666520426017633093642220967813485113199083791536671952524097740192542165246004644099350841128542020699717304227215349089289230063240485148014643612703011069236143596178387688777003721450981085997690654299515261472577608212516540792533385109401075058765761275071188155921530779287428041612707274305181420918330741544952979162845376281326474273340427297569945485754736739103808196458602918639952237218012787908664075190512224791830885912178094098566014029740111977861308380833618780860808306234800242573021495916173784282374999812118910858471379988514066528076753900217380715619739681215491544537887040530533511538136773347736906627974805487717948430525916689763926795732206963460294828695154970513589345691008700083512476631562306462102480476365806687589120435708454018463676272548497905008753588092628501610769490261020324614025016641373470113558731172882165877339741170499052684160730169263638203106834457082130602531703798431650032215409873069980080553331732012337573242851563860396645012620674388497634701465037555232815693102378327519038627998230257090472217674628258688461998513543940696072216800938915514874501128607093249482664297351761846851428271031274073594235348586454046148919103451392120361434125717587684436819783092520707746374090248436926891206465366728347273222754666546347437456429011410170264859996108015440815039136760904048816298926481175658870652944858333933798631761710567705605147118029362541458295477963174979831212225602433051434015746068712315979537646811839490626638436963402709342818646245435629071307213936729789812332054806409215886783393227898882083187572518386380940977700335257328113115912628036327534271161009664574172048527726126580639284970838302450285868853044743663539888013644460211222665760558983476555375790861683095126701055726712972154602069274910043400153428857870192899553323308078557252027041197715151130566044718537391360279974095099508124219213699069894012211248196396993182904722056821087246439907057629015844901702006382838365855428976460622879795348261724018043501775867982487381339781243082869557961910764575506871382752400588283946317252775319860429130340587304401400423678061281554368819925967686551305975687979768097898939838600849001472863665922733029809948941935367838183847189309054902890484638200449977712598260259674553546376627358841445399038909067662911646962138214900159917490043542049530958235030925961573445323413406289353101008911998669802464649173740874239265163533080907793457773042476147696216483465395592245865362606017910319032573052058797661907803396796466992813613852308131020831343255483353831826957122980616088706980762613221825291535924293922373420535958746574045384933303600130550348100948118382727512089296864688187591693466570355812395434409179482544249184123072379170096972427942643364629223014423252494209636260047796061744577643951011674747805973872499146569287270465871299765012205210783576963414262047663529329162779155380524961164873483740151403534884166441673882048718299964776657959351015470300491753568880862996956443274401525804297816147569005711171325118042832898538462900833066961922177685389715418937348357842484504095487239278941519107785479295490932910078704547945872173267828491635164462979672460677361708911853821091097194651999775119193901341707843155892846143838398925953047873915762943512558888555573719259057809841150218034135376776397518168709255091693882353954895340068386626673552952475732794107762621485473571221956357221807054441326778669905924799720734027929456848683916542739283593352865035464849974839835084151256925419552412430323123915458692741779995550521397719053485668035845846838562633589366256787891594954311135407221221372383530641578370365773006036543224467010584087217698015997597913520414126002593330277342167729015854589727593535774280777277226158760283710986193929362133588189646388788617064598630481380406494072299287400680442098291147072900383374635704494961007404658379527083033526861548175391486626249486229230271048850393253656158772855118023901853630495553823600973682984156668471340451871033908076847541108003241512871787743908637471386488363082293711803655720489052552784643044215416581466303341850042878436742078757772768184303100425948153473639925171317077920618043987090870929515577227806051253483429622147567466868877663228774618717690156657793766238084087664121145094423882728440974233843292420961660984507713934880740303925055096659332592525266656089118047504286853134720701595733293896632680275873029983005149889991493870508401149272401745752659552388721119719655074017982595102380917425726005308146763962409477097205634587580177209708218205824454032731713118534364532301105042692322364166383693379257311364955440718435710771819896457916245467428484574543349071452683339378652252736615125836162117608981459367014637646363013025047775641664950199557868071002813261397470497935311260526522208701550538475357242149289771142136488449921923977106422396058751451197025835587091397547692235287102603927375071088908712793873606861948829957312032122921728410816048947530853283841490552509806054451107769450111514037183748742327488047259383920552670470928350516919684605733750912537161131986207836832989713498355399486290433800515555026770091082378348594827219881370593923241548899940635528522465576582512563320119500680229359424909957650160500304856396424330211810078691447670344726015323655145166838081597524974088297579985141905166021100909529029378297783330765390305915579913346590107148373494591270166087236439712360579947184300177223282374644940086827059980252746958035129185270737659121347681682583992041005798476654519081037073635136352942729719855495714281898098204933589372689232027318773385749137326269320486311256098893312766606747210802813908474449404359179448659981644340269093873386335761262078932994862206302932182322983151392799025164628813089871257094515117915514410466983181474134935527884640362085963141781509724907219862650572858000007605573118704168583270591296805014866478957908627141490361461309950058163212928913346281438714215753085277408288675947160667160261915224859447193745853472510913444412219641619544688761667013513695356814431805905151161319372987906307344468137936771222286807044813510127073273894289036481574754319280073158852210230352856873623987327136025235454075362090471518824879148451343551806573340985272104269632477506939408669253259478820581585339152529706471637945187916239401745218627472735181040446843831190424247748123085043190301929212376526978806093931657578283981433577517970534519220252353603887912222204761701655105080363970255622971276381410457072787566806890737799099138421698478315565362785604599395271133562397753988629700284494200792444461197760978523769198696501804599448220572054592934645937549135513169063928195574855172835544186605039615960096631835481956040701622436375525946709477703445639582190433970210405827640170994722647576090669136507091537237474738699839050505213649038262934950732011429830985917708566390079405080628283542852655897708626087624530576708033229652171773402741817115905814990647085178131256678687206072491347791164527620986864684290318579410473553916559837948130500795158960620633139785423007236235341050450360865469645333146822457958536752955267678217686118260902387309973595175686795894883259285951375448550410856559325675730094578593276711481424814350036244331433947121044948154934300851191821140877967099650684636000622044840786623888535054665772912678419490582693879550680466257368975017436034075357092870452243835807865900593079914610002104897001315582299369092759937477692901764643394336095497040929487601417249068210960859540303535337483861500783204620622847347721612267542471340307069803497898612860041943197912197049343370330729779797500674839063829731333055090324986257428076662397359162755031046481896099388184699610191121672476281720154705870377276880950563734077229946825112769383778418433463532767351630047194976223850028851469874873897921273061919842116084159187849875840004525156577050209128639415710940611373033467663663039788547572838439378128052462358374172178669000967383518231026992595770780705107199011035264369325686572646544094746747861065360270827550916386995154241713460125345461993205450361329487524818437608942307689166493678785352711265820620907543676303161358562289244689173474708156058667871659506271095824668234942668699023470650131896671439031050994241654545814985202965217210043990812981616411173355668466653649256901687090857614289234067012284054008827471736966407749233584375541517838228515084265220804031086204684669582495084253147941896777265206970100834439737230166300683815227727485444918678174294252551582040196012794924018002123165876473345451479508568055396938892601430777578872066715185937604746791512137705142180021246856925130194049211871009523463450423630733546958305516067831854513644293709776538605780994956755693522729445955486399835658490643157685527039569626845748729847063774153147455598264704988411074336145283509012704795794728550196722591490048117148982706458027449842196939965599682351547941055427240878651545293123493642071802033119654371877107788425776439331183838057837506047659854906833459490105394044440542847814346445334522898695190222192881887564906815621452065952965180317678331893907093011494017568458250058029395021554734764044648834103634711887683487629919206019017384914144994406987555114560016903142479910698372606426916890219078938043943075511371674386965914831523447095302618404519578914078887094323187715173819342849820656690030648905663289099965714452317225212953089760668454802130493992537636626196302586076246630322347014155206907003670868945131970374148697515200849640027019864758472897277858852534915785267110329597846059341628001636591687409259118593889545167813177256814476772256026064196483119006739044667519166600897603554744361044413378157841828770701940172918302197539695143644650396162295900641527539675012454323634230964224777243007723662145605599164779079294443650226689015522113077533277332648236467235125572694968022975306096514843766896091386521598383991630144229242195713813116324923399521366600504523247756697973908592819851640061951388941957911668163088404382354141443002855407765048283091463731777044304389002278419965542437229113710525462194458433038402990839098241856095576742229780947249732440604712573533804216384671302247260801236533316650020469965931087105159332443548533689044533832806265554006103990659011840884490037346196476989076984272569848145765205825270315106684279383748400951154905745730552065610411236347632272891565929271724124644804248500629050079075113437217180577090873664066254972361424396776357486029150946386488917025469653347805074754034375890173199483684909906649504023279508724736227602814555046743847900467338128757203393124678558247944749650401281086405603779959456722563526360931804854884274457543925126665011881650777885588221589067684265230322898861860262020573297767731561523871602895203629131203808900961104980650122975559907290188525626830340727635838849901937544641816227438395005863868603982469061087613750294073211798747486540151259609304293078916848777634389209338808511124667571697838909773818572347540688467091011528045174161552384522979319355560462457040112877548001111956410743284584284899254613049421827868204966280324224676931473575585033627861677855901949949123668825259000483226130611639736131811777859026294116516641281467884627685886727416932566168784876140615300231430048316381390318621525302752389784687802024008611819159143131025747932585427573235621530811752876225382649889999309689190560395661683798733638586135006990209640813884489821726267107871330493093128271405728363508677832620316898101966244037575912818559732000547322000896135593255853936661627139210267008019724271132521032184387592535130476500664801076762524925339192738926831369784506112627855932011382623491342591044114470242322446749952133615528125450126890513563383972593999618641150140481519716428230520775736877192311618005634870916137982976837488567874559644903463479870542597919908722897228682440245306451069290059885046781216989016829898022529319582177392897846117990002138784864397111516193772862797414446522241186598747163553231237035441855441565101104828115150750432282431232877833489778736970263840772576534142145714889605301601093206060873253940435927803151773095260879914270042505481653938744880827904486936151315247272643292706025977762420053630459833808982833023101270324308636963945716153566614887139217670877046610248382496111532001233595567713690921271717523287332666601812136759554012873096549456968936233047215208760797240121941887267803758515525104973450672298274187486331887917017317824721854191468184201065932675533717568879932798577963358906277683156935973931891807361601229091399300430518939006618825737904077393956516823788462577798083751500330147519082833364555023042587619417783793708118103571417568751758738526006362256282645063033883017764367833040245590296050899475564316804782190011462686413585052216458490441283143379894037731678074775970611561307294859191406829493585459893783813521681746291531880101363054195036027680157033063493935730470469141540204319199932741264269573277478369610184741743714678381783851999013186392692818259700406647018375535245633332999042163954854630193905659779745072591510498883971754193566870356385252898394813742710586882147759852832845906906846429182074745972727464632394153221069557280731081787921099303189908605092705226475098736396077279898113770676402348967570546191208898000270864021920014362526726531788783566557082311582310955681375015365265671108916463101880975844194214704382963327362305529105097273047224355982504139574586548911880853311400774567901174830259234671601747196295763852844663820859409823252693466493411553432712971556505538732169770246559908987479942669072046134061047267914019278517270710577577983801568683930488521381631867064584128700349731493293172820491488718966540151578754228181807025820753174577832028891500867751207668383985305116856721156973760089015375517155420273505606460671687644623594570317147156155375249534065109382877255594869488012471921519408353797052612002428526073535322359109556575752704030229823406069719064264656564409786750079263791280310630937836867600215945312300428887230673644449064967815266572349526429555360339312621951821077424734261618866638914377001250464856544439428349262972661658119079441096408615239640177388069714142801978953552886726800714504575081043390362489479688601348530513099420714588587626842975985376675114946165323679579776990415825279026918330332868217537202926172417785205068503958062393043536868646214708900596824890551172017236777681903481527355789164851604658140249565232938295356622966516961379272470843606566592506490754899960842032514515187729084650997617793938272441088783903322801003102346491146893329767917432375802207908022710363366115384180420202898088961132640887192112018530404061210383821572906506763772899698126509852256732004754579132272754101977204383551105009863372080280665101790667183387632560551755943592021281889355790821612558376629632539408193472288210710596704266648174566610593159790812586460316027500715615101750500769603521190221693183186106407241626026233350894729498495378666017211192311485679666261546284296884752438738433117088080478998685421321663134248012457877354809775970948464782449843948114131220942822615666444637071621703340591723966520216005521054783625107994072022518470564441590728335762854620944093001721824246124011179657887571924699239949962682630900714712585844236072665019141614741517538366929515127276706441166048209878684392925018568543937678465356090353982368979313825485519066572134824388987912457540004825520800120182863008112448239148299018726188832211126096062018516208069340398963215716313777641705780639895982775204720498749838611468400834649281688272153189848345004819754931839214159508268716502425525849821541013244485303821957898811534719359438789428113820998312438964247901991782398327869082372635453103406766727444331264553379932463769741178227930596657957071056478529094350451343653874643012668411394058062481930009591490305000504579346254320255809323082284621598528897157749154732011197953485917674086970058765087738980169177904882231783029888497939702039607341547179117519564262841611036637491360181135615133037476707354798603252308607578999338063127400996365160004569774998120156502503540639790390123157977685323656166364150684382249601399736420707122731470570290801098463808099409946356019957319341324463853407082956209579132673552009572219403958624841423623486100316950204956000257369695954818103204062551275303264152997036966197545677687340760368178007342871713745407169909452802639329709249281207441270431181262235321339843299029688040147343166806609223624817226581743405270799412240861932761794073700845138728219274692025489465801314614925658072003743888356106145706817126835392748049378170154101578605101650126257810971957053903324360460617620729195702804596477561209791195247315638300997296960351153679870205478088080346437690457063573643064628617173486460878102949733664661278134092916784037928471115448002055169641301771390827790590225400910739347887851762812556506907436965332919166682275518166234925097264413293297512202559270886595796290094499303355102221605710681082988263501749020946108732275734168282869531326183491038898827847008251151007307629735233856537692864230754671625444839633568160328285166116381469957550422550957173875044971833858038314574597579291564270452159292812346556880440427861721487957348855472331654474571431850669955367589717642724018448310500109009396912951962531594280093984851744816438080977793890745397217880355321704456665191782249520021493423819870558426278302413844758538370915244705896293378908273726792141433672894700863519526645851090502863772872765988963526689611811624423914959818577225574066031793117510941276440231351289177881536858469439192510020221776791660044301105939424708998715679907928126238756160435350434841614234540552863336974967820091902287137870355074697739173897945134626781102348990938880514522925213674190959307444975389629456536521299549216888049460039456669148204595260879542145083075527485621927244761185578871827691332556217135811237416029122391610510410054501173509675467004297355500730737345440134979913022822110700116919635593749863975444654489939602357776123992352964758416468370988880998626428127363999437919637734641887106989099667828320307446414763662813312148287353613605761065127496477623024274849349992101153771500491365218655403773858979415880459726291050358879478534505253273397972114570187828582136272194981347988267544266646187605114218891574154239643693680113397528049279593846113412915808968065443087076352207305122962234721660622072685308689940091994608614645998302989035057817447478847207330361323273881763567706583102650317492906853022007065601009694009851840788831192440196748923030207759650229819953608201553292119835764684247504615319269480918396358349895183004263675332328323297934455682557411932865187439148099718183375146562680240339285159145424807726452083626008536421356786831593492420965220136295529436107424960179800448725791335084390873863738637967364259866306444191917172671468916592214398862807904494399580125321622312270515142527533724807448035727629120001274781951092662362615220594514956593543308922233156932345775404481433307729070639383988524362686893625670600340815213242003362910054432011864288108299882188299850781705302659097924705928746285939855963524992271832924071615644803040388545159887918934700631911807264783878595935923337245791447059112054161736584491863052363303129974414880575286241346451857356454482932871064783638891017696115673414987793807713189787217877997096462283206714683608889527004783006297575450890635075680657237759253645198579681405334580791438968128863086135414333266554818056754323699330298805300757791749874621007868458701547283210142319437060205767151059984415844686912094393742226239297065047237957540907544731023276002270690480139182415704333625855896655495197396131883446331889438564876813957709735287252344989216700047153748972554811066683778360910856776603002688192837178812855337369477060415722078601871748489237665717772392575708370322156934663347988441414398820276273757911238122149874958256389386540194928949457653427639362680172025872677524038951562114558982568957257558962265112313969612551458409386088182705037412494649370604096614988486431532220225638957924535293454804960421957475272714218920214438660674123447717513715574385777687337180284988745534437955006023386206036174360821604031099075264464518920286669733973859256656098584137094362619057720499851589140574547306317308289612719036096427938468985866494048576608141123214662995616238898378143326092049316105135469307616635351438540282818523924947406440820865457620321759517304866423373896535831699113036604461411184174964409218845556498728327214784040136366786436169538974544543611129565191132327420233401926750036604396260113387604926350024856622282593877065173612152474737013136141531871326557861511780719388729520246533333647596613974826182739731188906133249141997950768958388374239462395638621028665656749025937130828744372050880775464001386974945515623884257549098150499378966455956385075211341827967943734431737297803615455099168646280967566961449733063912062460848222954235423559471189314005809822358675366609525210319805525869794153631774648794177681976587026709189877647518045473883240330749742578258516489898684435343630101832625628186564034675755894625709440462818464906790224065464616733272259330439374328356216461758666422880057028369781687342537336356551737865299643115999526610201111251934028157249628041742485503907850562679817318051770423991959590903417847235806721352215728219956783968098089111110017026237068007027623473487806564830694941487609030316709267459306799081966829756146137060294983947902756539184028722561510024894586887578963128668520391544655183020682157049159683438448271862656126765497975207349741176975106500136631058428311490892430550121575837211141063509447558712194421580698442391537262222562070824668238082326921287717020314258178792996590651218284992249099642247801164629806937251264533277153889685798657583913700810856791691131537262879714469793406568109066555015360566557681186699819492901154771592687742623177295313827073115302647221805734783429936969891384109860341091422525484182963248954342451558319487429587379124388971574338648224104227521111700351532179605175250104402450362834149169002280209340062402169269711525739622074924560220180484318193411799849124790822513862852395594308860285375280942875126738519131636667148041896830943599590130099671239739796798455962132168888560446810614471749039700901782572670418217974682047864032061978546473684623875922483240628065917501713174417626485131846282758662294649642232848277325453157912965426465142583853911759605419627560296919991517166173354331778887691336013502618775239512334220166458118001786916247168277737188470811329348645639688523998836831194465242571630513481611318842695280516439434052178036803258121780345831851343874497977343795024201421507209037499800533986852547273234017328153484390096109301681935741800842987647426069966272898150271604662307048102466249207470330628236216357567740579155173424972848005314537501769952290919185952161706035351891097182887356947285221575847162778496567290724412079106880444271012376970492470404711768045917526632705270281731089254536992186454130982237897420312689837049617445715730201721124980104409651284127470257861155002516530617016732734451487775481679533122553607649555594118885567989948387515718550591426150173838123703186660519911103639315102427335020150651684182646611443728923871785496536184121586051565746343107836402482816010342295113770667894496511559108744210440296880378086166183609567860868324399625947052382669402084676024465694172072388964545798385278220588385934914256706899600259634240282167734774909023713119013074895867600386120979334272236214338083648580506230767366544258004647082992572340934919477519941733891101125783812144069924964879651241090120288757081489094847855663314957813824242868233734503927609449288899677544724987832414504494509624543574651164063881737699665278859605706980478778189596722598185675463211897866262554763419898936833811962807920956127219553695829400739548460961771703310933582705295899133471091542568927774635033807026159533645124401136254806233297941203242708298971665147655163580384087317622456128127262382463540459306494860031927190083585888908644888828507575103754080265039050667795326190477482693621947319452372229740523330789796938988786105491135840195315772161505252296688434009935100634593226904005586871482902495744691216209033243922608203487798819354491950046356408215246948600929898597843695303317563083993104903874266602737988773802730455556519867055515293887888462422345289656368062851503541105656159608944271841542820730147570773563781689978437404683518058494578221765170284213134930705390361375504894800427198897464706591159745675503935852435897030714944270641740148923936145400709416726319476022368484605626775958503159267325758635381135374315897810858753243807628928362868775626763496735385834479534110229959648713372425381912449365458587971364339185500882735225752105002519336169497690408337802362915173855179580771575239778130139885635490981025164866256085778542849958561822139293185840079734403557971244105134903739391079520125073476776271956655751085942822574847120993942975035657536122740167786150186785374910547204643440525780597978934307604363806544291290339896929511215127153455450381708662809378920024807436714673419845037816869771157222368389744474467393614232188890769890813830844402560879944391682079049414484330306695304163715724076051861537634014805957941544042705910663461740072959427260921355170071236484281829477237715931859224099525381032857511909727154987264189867397983460922552964649978083718038293942128440862958751973670259044515360877998733396139739698009337974828994438434400396562330620910716172348154968351396465203470966792448950066016801855794285583953946345678383292035411029324291759698925462981345709567719965143133438904404104293454829167771159811145345919425446512371346179178458854939987042809526243088675958702836597110657289466519042612839656353637108517839212792014951011489202196447495425163354690636540883924274238708906056311583541728580918432854915039045822645199554627524982066353299694844965353014477571529173298822732932023988505719139895502541510425905473421543013195595655887361315664340864933056991120643802322581139711477988420351090773992386288305562876222880220699460356033382325131369915127248199305159837119212522122620409771265058199274512251995181706389263931054639242305619377759841416393213042993822094002260305534415826273257903376588667040307960815202711679552216497751957886951208619154662117735232889587071637554125553096644721918113681940163562260724670387082406924922496498301010840557300187624279432677741887953971830216711595312625942145462277061127317961877043467073909512208972586009779623195858926948749217461205657932310010574535990553003719652063402424173182173414960147916010526038889004344916093225842517611399194410913137512456771283094592538694834269254511161453136769794536349807974816446809590819890078550471744665623469480088273500002597619388239713020637858183772109566528275745573854061827326385823263643766370273639043695318826093879552123391839159146199167178112322259442328757821269803342893869939079238599136356787201388084346140240077191514326104538435412013688922719703174766387125974627629108572612104942862262401715588655170408499785562104398612064559040159208554556580818598760096667654167942321162231634401768537691532981104038928126845199840400504951388451230626389204732567990603165679851881148489171742846617281293060392227738093386574886962958616371217093030810588678257718939350507226401284118286121401128338230579295176814759847532259225399657005083282183373769821865081625204710403407788177209274695969466961120371751071529291127489656638189979093326289137680622484808454759582936847681580847158436501761030065656197862194278272346616872995751766352646301635157303939083929625166420170205640660981420843446283427858390363438990580730286771036679512338617414344580913159185747525788195689610415436773680238496021563994796115601450849348639011020132908513001413792681644975252390860657076065601082837671343674904364524589695557122821212529592543980211685333266973174127466326192106914793915664391356727639875274882987951096002283476625508412721634788739696880847145984473075710658697256363897232790476062812678283189750819606428310081933057170498696246839062582218447960966166135751125252950628825299654949165697636338666315471595888115253880964826306366327012450582514704902194423562722739846574919391498128165339002012613078775599818228104175463059725316073298428383348129226751572375593375272568458481577713779541747584696496414307149535105383369228946950725830571978469829622761358426560112781418950501160718676296741924470364644359911800787274493844361445112173976142088571316034329365347988826363657644350017589960188011536921012109131274162812334656917064210532987296636818647360744381264005693604254769742718281421526567513738938550265701409560114573901044682081765520699955005783677254083058853552456896300211207420285868895936824782964725323329215620678791832748965279798363506282026734265517433405663580085501142880436966242167609596086247297565758140988735319616384042162548355424938082278515559047877131871498877423766159549402842245913374692645505206383536919510834505359762994711415008337337044438929262583961428824857828985258616212665908668820083149266657728579995751339332226013263195975782356777828918566693777669336530988161684096467644004976943747578671127386310544086639293110519872067738400668999454285133580982214179656116536675342014172131910182066401227055813301426294212886737555374517541188861614671599743207386786273563726861555847965827088669256542857505698448330637299552973713338918614395678630862061190585220487142527762400558614620611947130595097737392534258469551384674431252651149936018208411548115024852347024868970567234560705205905489296942128145561240787727203326461066964782508600259418509094178191553849505816462727101740771491969891124480445387352500014059832877052577313270951253095138936568552025158445664706541992693426933418665559861128269411225775289313240836266860107901647836012500720870172131765377601166604322115201090933592132031350566454172739647362573726942821704958232510484070711112417728965041689713326313273440619706262808686969762576710130789354234021747345185460642479689661012755063878245889559193941523800897512474966447500823423573881393796330839161658543589671288702913239975535275928310633659869488037324254204071481090469529354810899268381000170735673259998558318101253344924332995247606118397003633011769580787870133123389799251450863029162936332965286369513677576252568149247947152539405033009780156998998731649040362061073631498935860435684863740820988821422035196979021988782851090895861535069522735597535301958782504338305206684504259342042848374382373468722858265159524389136760941057685807924423007686882396677759223327253074479676071938123538155383840695162661173364737139395008542363929216801726334993433929350711023316407309957805455805424258230616798266407370068590941824734207665622402227650581286578513419470380331106754038598267965947460774614770649716311361338225006275517032829427547949112090098873436387191832964819820212431141521645921166169365047819581923194907844412830749419961401306571889763111522234251080489943179653097378711003162164395687061915359215234650959709705607789506689318006810993765976874935119902325554199611113996917995981568214908231407923717233346194655900077630248417003700653729147376233818623590973046587427589377084629129720317963764133200722794971796207165061644304697343538069988353203289739030507178529138591605292295477181910000034896435971042059235597112641840911532892335781635330837397452842880184051505867311870532306564179364254550311274950925074613524034898011120541564180143927221086201986908634106663398128857283751459758623894754037130336513574744289744179888623478983884340022331622324993668543855308849780417979247627233803695659285948932478481083767416886555712319816775845385107471817766554869680838280072872942323529118788532180804957662264784321131715353761620637880868984126595852719543968916951256409246755789765090982738950430731649940750305978779013472745503320965348372814426318982153803742483973860961077871118738929740131036748938199942466498362186579752854712941778510292768185638279680509429261629396780911438176481814934357383008281217985367734743176126231207739929416767979047202500040048280503829023920928913797792510373135326123569795001815822494908765475405002831720737955632058105719722828710634484053018814871192849278946856398753564851884345565118993434638407887689774560186776997861108689109266192413657828568895352492657728794033367748342351760081572141516228992721467308466123554979768088072018941426060025877167958713529931312594525405638378508183235737462562037857472465479339139043775312383396206184551576407758922979676449231361284721277468821890608099375870176217103156157267851260885942987948611841489001151271640824797086094354357110966837147058566555370026662138400050653018346670322385930885973758353591954976994129749036472344022356323928325535282700207822978116736583738205654149813782941340674749418864930227405065829130517655995382136465728446887543027887669192126699148612389531816566699401029667016424532418532313496816204230856992341831732298411423358486329348416141585632756466400639942354612779754230507369655929701506570371642922975437014138221871795073021860045981434316954042872796197080386439692801987871669245765175875624496812615767213749967895810705571953515745292874440416927804111431175430952115283949713122127107971625375223146754987286124009189352431077717767734864598109677851358002163084596156938601170201539168253977800607844820877715741946251961134936816754337079120359390342868370018156404389008604784627421596972693092528829908131664834430399486050760134189241970130765355151763177387221265589366203920299363737428338518131992646081983127097747562829529368219723241580244148144715752259880044718156295800288897227608728750618953383045399169439711756040134940189672311564020890139839892979249669047898075972217047258574222854591875243391331066163109241381071852368586482947120819177246307515343611985472924565206024211864752052560784081832880686413490128212983718920331722565296522682571928223757122121812469300274975896629526617617409974596243843826961805074873897476611437777556729345456690920699759459925732457497662257304936776365449088175393093920343863418579181099011201508205608963357144954533354090998276024163992413796410356524070534053990359169541453686427653945623162709946831023440531768071962179781894260341646757886951538195528089393037957758853694540380430780474919129114085424191480053750285456720431911568895053833968598754173243713373865867219998003907879503120200118368151158270944704414763150851948698100236383943976159062751321117763479837361481708693674797521689782611562215405710476260091554206528354149436350507652034180448851802013456322790601271515617259947915732944320774757604747056357785133948328158100458243975600842584942538616512690426655304217655333560191688486165139318827085846146387085646548198270409783565954934573265995785728396870106254777307056786596275661513588361060888955058464800809476593677771614670981470627689052482713495913384846830207473419437084523326119151721218498371533303496913220714107624154783627907340581482209515758604516299694160594674711624485517231729763424973399160590702015922565721017373461692721971375019197038264425857618500910323261061484958462237465503989245082389751593444939784781494694079120495426262168931621024311527081647101917424013454404696456973098387104441936744827234737335791900423426585222930432975062608667998251581298136720253436143515992421172761474872609706272095789172824564895541286818832932202566133550589289074275277633932069284207210196851470127699481041916035783206464837550755956743247761754031208338623426489166464411117519479700894892569022077583209693791006775618589013356740800890203487130007903796967428426477414667745059979894367870364146694977618056558445568033172821451885765486549650599637163984607281711990830478885908471219243106947878047503678317596235046925140067443975649802328430008587282718524387050920766458227582550052674829184700187372111092304210912170568713820128309741403158845417332874837893458074987371930757601897206228020157962415444628780534348673267739891951557890158669346587332567036650454934086136784462942440902634686392614512086142422591182471324030850400140409231453826962488997033968515666535070630751569055023460385220526404268065732861743790332903629045167963627931761270427691015556896532683596034807849894077019999576764457443252135817201038262315563258669442776849000788898995503393222753011053117015703433381681674868941221300954061198642498070704519202614682539795916293386847585396421965252089134557368489924347299209069354396080411134992294747681589540580523243019635048698970458724874205056078686200937860694993378808193828895068190350838342918858670097634863243890220077118028881953338582919484084217843426028987022425350107699877056761728690391992477513909578087107470376064955053205367936671783467340603791313044566702723179525171916397694735377081962031090792963778942732602346703971996046316090574879849594006392894209077666802262925656467172099084929185173033112720768975658488076011337527261810422543874498877754153220503220352987800946753557733934803417904629867341887296970609168691077932689724207594992136054009725402992731779341520447691779132627543190708865279189406920315918425273089716110978735670792886809948282327901588670083599834892054597506096809524375738587993044077111455887954121738171786417097011869697619612143200576922931477837941704457256602633882222300724413908690164904997551143001851240001663649194433413752059137225472792146989081202166050973763917231333412982973690778739741216049520765983352152009420766668670833274986622749942577785241053184308928949256642117339807060304558636091379979095700625361073487197406380142215109302852906651496785354786307363866300175029456193818706474112436102983519747570795814905253949536763303578804774210222788474639989038260284368609325851065333549741999623305154725786189723883990764019347191230797484190948312687378325577393730780263327562622203626335006261528767500508125656743647941572924409210240145849271307767501967000605190321307580357197310116170847261316764354516790642852544241513336587895106190320704539868944612939522321053977665518220952699893188212556939199403460543153557401546066478392937816418439474085143246796790046906149429184318745160375722731974727350757135074711739389480936693353813763358772003519225931063957753401764139201850742505736515015276621818128405397114730194721847322216447525644976065729784128902051390495931777516218799645986881501343032367062711279976175198923560195667341547662006724318870437743530602459607323057531132826339779933666042386744472223626657082824612366651400597729653048293444106148829391249860782215631115478175137224072266439081376008369113654001723591238516038777349744289184635270552231466619899838009200209727309094930952677442950606821817314934304021496917942728826711000374056615699668949065702164691833982417360433318306505638291739223327860586429164086160463835104000017059719427136335857453392799825268249577376119371234615141901794570437248147682661843899815268707164589665351109597407482056271855980685645466813480163376249445425515121209000708981946445764700855018920178702301814324578873874971952254228410594395971831269063861599544092545540267161880764066653547193893663745177037698924373024466925325157483962635973947989037785116056809788648374840810607633967882313467320821112625713486624574522427151318079889308491274297450297733768568918627168719965075852511404853210564627423986939239224169219835175556382795447865962517564551890954037365710003735406158808105059556057366809641014169843832454953597642246584490423592469802601244733470658031268826789508696933486565314136362854554641656493644072734289565744608705579719078094274083846176475958328644667719398075287510602882914463101176374209199942871442424535286301670720725616149453424352596649404925739893337232203890082628417373795989966657516912472050630678683896580727842409455375225249945245404460550855756988027284366492013694987751282928064437744224538604305411904495794557343465615923036664747055533960214089026022034208325142064402044931772072813761582489561315579597475172321630759679079891260658975357634110518246188608851111264446594248791551321179462698462454627890274588778319654727662520504156352244541679142563170581981930241818089362552706820641518022288910462390642944965643759924542472647562942983391531487504649772851376984976641669227275580887598410338851834859270564617713623144683483364073584669261124638205646508763848474355740185926729737158420770111099114215020465272215218134430363739154953629772531200466302970019940567136465912506927980947992394503391385410775579371993057284726311759830114120829035077003247986012256745345652888337418387185806338622227562411665857298520721191556660869854134788959588055359921820488891482198618462349413647743792885686174771074320543867609213033528983276802385734491592107354237622370695418563918479980912745290620040894740997626419925867817411486501591644670638590078849878270408498146547396390542813701247110494844598235145302376458131418495546299857932328184891112356115504102616910280225044623509484396160823456552774950102148055439509942486911236904702037151216297430713818476152342989766683225635552147784175750592115049439723108387767073974228672784080449461070060567848432703901715565458099098770500454363686656744378322182312522586040306616320397145811037287849093454577036717305236365153101198582411801702172354490817031421112081775014396686177711075882283868036430586362820609891267699430009330133043049497213419018282752316512138056100943073267466597982628254480674609909864555538179911006745270535073516694197147061281104336240859857352734623173499328862841807413999098270153655571060539309689565102017550671076929181679235732998409578221007963923558645797896034566894491192607017639839886723584210094715302223249220908255346968929248211890381646203847363201653308093822213156201138265353279243478449002019746303703046865633826911340515576561534182680424879276174182470867336614242592585314692749981615295241727488260103359891169322456222993072985260162344075545792965932701843902979570901867186576642847572120148318582263644538129859371761725914954116777024104698135455784681216044123664137787377875651907394952547452975279416093299949427904789919422027304498347790867544915683165265575102541634789293186937722133409238131022626928781353502980330232571817639189996093875025992515710919840252290721387909065006750018315332697001170415060637949989064945095183050564884528407854644830553277066259009706160066619442514218761930220387207924844507924024908761125257713349278304338617340652790315545324588669619108563248131179480202089810523631779161735677646745439313220767066629907279225704225039614718993150011065260538609772162033212225493972558159258264135466621561042744786608381802552809078402870834991588007717240939262250037380822977695476443294782692117362486960793723165729105386457790592378809664508457847333340267053319728431637857690549906999521295929371240883904336334273457947070804650845945534738269149442380252745080982024741837573847355883996125707057871801254440648315615961519635913447023303264547505168212481098942167012279797067044794900583174107846957702580656025114977071554424544552649369876656168747286032648709435026604451731104507965302633357176785650700832427097265099412706880435569430579024782505341863933292571656399110852906424878004659061665379750029317446058391404439401631609125895929557228841724148884708710156807047038630648508050505563912009707950816084654213458071832789787833340830252068366214018423123370979296470257308202987288653310739763912091254450686772397099909074351301875469418598906652108434402085077270455883910510008938949669873714719445230233750960489147626758945137671886405572714833821651307311513767743185842265023492213199945794321219965111230807945699925481475639386225026380648092112977498935380123293240887380217354081754423490075339640894176319663357451473551919074304666103608271836185666391452730072192534856581471596115261740198125885481563645165450689164972282531236135993113145160571138511298384163121614468474340315020127294072978535437409673085251085066980576857016145349314475082375535473242457709991601710475906834732210329424003837062547196464084715302079503841599667865146977655469467744751841184993555311559647776664701951822141087002873998441076727747650344910498525186988748497727411020012615465190333051076147240135352752988070571995459628981834252852058678362958205027264590355452145354517802514610817805383440816542207792241865927890799552863860800472865786210283969626688084269297044787752831180104069946485639843039972774702634206423869000875638042763228239812867674345514149161318270697258470328613838456458515495463462671393657776147317072588105437283422030939975923332020379151723232771531123759773449229005263587860393050331171598054421085823287693898367403315326885936098743085324736425811593034833909117599211602564978093243864353055339337798714940687490057109256997263449165546801690098094555377537407475811919712569194612016937936247137309115452415530737224489321191122395596798251697859454322175575982402039174094380318720172112775017907929000357588314118623164404725262443255836724360595888535909763487873469808586293950297027521245905524579940321098571414763620014340301625411158977743079134635041366577122174816434025028176891989267123149829889477633105065543430713558127792658785549466550523580855800149894399492548571650509523787152180343310045750474862922895498644369334999816259324985489533294951642136447851726345967503617174435255355525342468473191460403835562079437413580026213042850959300724810572718341010431518766427929952034945935560455801129720518539349016039717180704696222691714435105428189195612215444625107744548732073675035590904473840221536028062791324077907377072972755651155977616997696771713816643475750351848019855346772280691260719391753623401286783775731758191886510868391930833060939006809976648044752121326872202863089789209550131648933479623125224628557737487487485981966922878194641223610007084682559775173737347957194385098404100267828487947841648502955271372281005406193110571944484984547939427435405845877475330660854046078990793636047306283096928780392958596745741355992257650688113927210940880269092372945176099987148718183738448694251147990675879091141388468762994082173287667817965422790018417098664467335331553681096240189259379470310003203964242863804495170502362241325837657457982351158612256699751899760667064538454867538949466989435408421150270718330213933088801379125497775053835508518079794752365171136914974046363254546811804588593837326374546280154064959677235502107507934377628104636931770852922665653746925844291055045088066594938839596923418042327559144269717174082259840080692751490209524348876694046453314032967527992249550895729612371625964012555686533393324309356697785629586495046947372572228930456258996688964292109548617799029663588045130774051153816955211867569272184368221237795522061233922969059014559369428193103292115084941847051607548023276275100401800659074132589765778077678446502685026280238243939180760408360837810176223342150597912860504291967501115624148510495489868614123734389031603420399169286176849613325999102754547824405263535102194691994728815991897211668483271698376250749442107999284799174528480213094694915547438106166875477610467668794932153211597959185868340421765380604731203516620736130662821895841882772414328679143007298494325993237015054963555536176927623733912139922337062140290509436017587007819780732039503400280157256341784995497233222646393748739768709016174144815501415973640159269513896954529186612072366586386760133151429304760605528775810253320371361146072428800461300321941494806103698934372016391044880947417116582279942145736537453936377587562887826018478240067853395098986453724644398515317058958269486755014861396427986747789291122071986266224890028219800115225991944559832646427886629814242787336152639579031931599821325808903056030941900345993881037899859204206771041662256783443363472373058167723635893110078311905857032302546496451123197317189570908691170180562917622976556387158131309100864766134559266342218329603267812291760759303688809793630523283314405467360305531244183412134371522347800797386136960204152383846411855425836570498261436269128755227579759094901766962763148754519822619379463578247397972806404547760987578299428512180766328766038224657179089569896271688160874147807445785103801584622556949041741050397483596150024248489399851890488165636215470860315719106334484864946179125369155122151618993994628303844671613965732173975592987866508786341485271458587922760814244246688683454472987864723921461324349193671475414408566362542315188842231926124745286320732245796039202483626510391471923686592737823000082954550622741846063063432157775084901833533034401981945768237435893569677547405050394374663998964115629482852313223854215407371411662865666847076064903932164268108381667774906114782457969089218356636494716371119625442281703124582598369454682301528294445579041821452659553504222287426544897519246422276122621260389817341982806795884769407434737577860098001035242294330949466949363437151909244318458942719825743954070564019435360511683499297382883633214984969153398197342800778501518922495449848013674109632038656127741070684111398674174816061859813399930068575116816166226605376789813762052787870284122080329557743847218890654111342493281317476077805505989177814686285057330451345753698034621452872045245218505005439499976990375389117465506384746798908215471453949795465077535139000375985139453661288098246743474416228316172562692319030412099005601930773866863035911561559655200016250597542295337451465554863696310029021939053205995618173442672923487349673693044138283551848452141117067288406434032918972160674909892644090902508183318364471767687051536493838411873106904371329604505755262776234789334586289724303925395534753548496094348281689483072719971146277095600688610991722635257309155774285041189514655837547687348907577094612586727592634926263560242624936511386696176385169098664856837538483578046721489044904244057796840332125082597217667461136002595799807117522377394495219740834055931180791424599316742540014144756154057689192852035409872285860488210292277152357642045385738971089989073215429453083701199820062475976385308192242709237386158756592767033983764975011011106310244024887817840097636257422479008699447963680059066542881794238048598376995320111725041108128289237738134158481613708990980677706007635022971988493747683898296514421650656173293853782005258147274477011916594225235384174984748144211545513976958635668864740877726063918066167050558589890786472330240523510365031076019597923232085336246693996149755134245862718433232531794684110013568965847034923152222228986726815895128236833411144278018583335405566946169812623701274474763097241630534826583449045705867537091355162758911269935462609203429290653095321745667946372364358886740111882043540088323806842833425521648701865435811414100608600923775344284849319273138712672115431569527895321046030892985551436376032426825767121050827605722333160064940759726832007015534979897759353769798784478937384768634952687355480595427778746810645896501536663574831200406280663323882133489394351308609632263449185587082984371851226907069278015279174808224430739592494248663519759425274548748798253822658962674279223289961383445499384597622214808361734775075425352296263680782235765731120588439768532099387106645979649430444622394767619177326033896697296545300903078062516838846651226112988022784449856274581006629820589243882890406453578972948198312521256989739899402982468996738433605207496949983000121220433352501421998104143960848543745685478114046534608573516826314477039578299295232752771268452613566114426891326228902722220365860378879790097821482514206018217611710214071414566491818255247942777218310964212648474006776557710010031935985953812200455174070193963701267743604160630516972530612766266785892378455812373967087243045080359097015738479551942904610143476944922359323768203643561773097678019470412925797538214886535449604966500207162970734175360430991385514060127360752216669931421753068870015661537302811035391800349582652125588408487769201569791261790734216504402009539432932338521838897319839445090073002258534924230659386282230528796992307786255857340682001846673897003805064766837763016594270395892504155599406857002473230881626389515380228100549568484381240165869175807885158553918038465557014062232710234088013724245211917306093749515980634877627111817391408338324895078222974260583201369298201559322114569006296657647558701815345024715800281780052835126609732889945796777583698983325107407475901965063818005348121524003411410197426929506950938601980224939703095180205266480136395740487685603937834852790405557897250387206451589836681400890298478158266631723097136297981640132996949460921072764070402301493920897796955014679125957379622926055834995524668858128943596828176225722248810906454147961797478905590301834418129576714484282521588813130857377731818662940171153663109030790116638698565338243506026365571855079556026264216266692637802690826987509557717932377617837298483212652279904777577316436449131111441803819038626391841502617299270885035454129404597164602796804220411886603345480230710672079011271446840849616160455327433256176495795999551385035331306352178179145430579619535035868968246407205540839311548717756151442779974237199670159308689533627429118160114597924733168546653842646288597865362297727574451025884781712223448171139019745279575811904512326027587943203498094297916029541164367325405090066706834021901329863942789809992025309695958763040680337638192533316106580952872938749205684971016186831426034248595502357565698348703191845624695390990098649480038346670094938779966700081674331810462209232463247617075160381981161457387602726588391577536682053730127523578104993211210568273046414962287368054260984244019917833211910086110202488116800779845827344329249925474152038435855345587311304230986479600417870243458441482912471719081519757407974511401029638181076482810682384546561429635153047225461347763763339178906248263648992125201282666912689450973249529222357807589649013545637068933597121075229049089850297960439973456201929559977509401936942072550157649455677020172730666193347964023801320883806460071833325306573471738538932904817753557042421794525915652452365406313853928859794274266961798920815773105409009075808976753144775892936514221602313242408828983333742784112746009398986749859367608556935740479057775147223124332076240683982012983067185118628634671957223021748768664301757100454662527538565740339000954659524889910932522644334137631995715782938287022784672329792787912209793708333101500960272097841758371487384607256645909019101049786119252352091668100390296634341181166486651906267195250139922022502869172429151558519361030790192900483686190848866683333354642715402325445973579959331863000406541107002514626257302356381389829424454029545774050083918323811296384284740622966359680566752111825646355315074149404256811977813573755463677109254933364641446631200837278714383083476824965522273029257953791636101019634507348413860077404578056041767914178469109761990851837462506240892490368952671319688253315545747021192282196652846448834612399159506036180763272393464286445468429214671143445440308174009806991886689159820147740077146393404460421600209424666913456968506797538231361252322993943376959838692966792520509141033236337751009815929536298907154543831993030879932076982897941057841919042086009319300030256611790193581855579671912602128060593198842866893077614099171661113364300195841273820851263620566215678288022497051395931314100153970153922948694684406474172996909464189621373325958552717957034190260266988179856132849067300404965674456900237388020783937208044608124726998897080642915863239246912452957688449374827354844355280799216625294428575064947079271289759089174856696637403753993206520455161650867247196305349021938594540317801533350289885009527813830602935177997559554289353784945339545464495019989639878896133234954682483108308105923578747429895534601490918968814287440949061554847947587463431262492273462464985192288776247424009703638007735088875184167147385646913387058329272399174288816912460920617851286436208873535775252326179162850565177091519426509413033094362420738608675129724378180809472179731172134353096311737368968459031712616659831242348224705352112824935921962819760524680488517295025308598681211411164577686502253557525499693861399003951581641140271518277206510973163313080074267665168300884685715437465388219039063047627933397039479341148545972247465085151884087861854694752896497519185610555414407451559511683509966636136916111710026711378096574129982282069397318434766714482543618518152927148543570804324298224120260494223716391290199230313926825320097729010497007664506592400912562250957411005231372748136650164067617808992926207818395938711651743195747480707413431576382514655132476726719194839789574470186312130793546408228621393760153155197887443666446209798761992262720508653732934544208251485577451576543256862966830211405228361823511451627734316179266643832642808766748522102692279453543750407356930553846266541973375405313419410639917857652309109016791460553034409314986934176090431853906093859069857667742587791571499801926904789635092252123729924326172933200827657081884740163837537158743932296987150192599708059106965951617765971436026659483097752815439003511205088050198069596702283500736480633755321904661693356537771133275634585973863958186833352438440235431475865017889963409775533030692103364660655214318169095181842134552817272900934669759539773247581136150934452073466727325136208965371590217526713335027417696226895325589792027200958657088386664532519930585028514586525386179972529560895065100415185532185871199059863490741865761401373306676937720505088974714320161199322920881316388402327834029846473123210426360415664984347787231151429050395748496444493678577318016976020145148948037690737003803153573886700916265309007216625647844339600912690780305665840002659977289790501752080815193254343167666864002910247830124398452237109434050784153314190448698866667994026393891419005067065791790091403250809535479598308291421275762415048997478558664289749805730497589343451565183044455748079577835811713395847968490074829075259946565264947439475554071928798571938607732565579374257275730826855382040863977762896866601738233813770536399930678412562898382100305550211192025247451937188141148695086862350420016732175796673477532250467829531823447319290284532403957791017127398489986912486987279215082025611551239106758394616077321897573964416469602122429908597315302021775170756682309310790369973614367778020168013754020329171152326134303089240096918968975878544074496441621094039858083598663119042774039742241566463854398917096674039042391046291885393104849393051333201864049563172688542888176834338545768241882437315097810174870956919960954370835905934099370913022221521021728265498355549400772451399371287989860261642106329514544983854930848018134755410565670355579700635615690053677910203612159790637757375198076154880597979387226509241944529997775091181608607589051061539521856758238242109769852633671889328013540510254793147283751706705992448510512877337916487008901095941893230334119735420112574969808952710966386226387373406485672825462787596729818869270780525195584901848303773737599570683372047557772370745874025414717297305096992938325998950063890741080847898615818299727259536437777551698728672213532735885763292556260532941479573524948391181104196701734303445263778118434288759257734916641321257416225636941326177054104257527759646713547527448392916378596961654746747201219311595806274758058433265668884892139107534025804329160147183748837835296039794765432459910503470501707450653647669444897600203491781198132167147128631822960188744799911552052562638945632643955151311232529543190944722327381744416112974045165920560102863852678291905660931121726397793534793474842414128499461571951767947887715792700913992493598077070363967185595403485994849723860995521293545081162484002316049430511520012405286698678978130124175710222923010026399327064331752417955010139105645201361170439891430130196899610306464702339385803379998725597786900998328565540816396155401170551363479933226610107327086887230757277050807382791845903941347233739414270672496991143107717775242520094606797717608710996057403335347623638443434442822032861444040979065314220825309840795886886290775095768927968310938127025017927908196088736439065704566660649761524524006900171557506046843794475390723125108807756296745317527995798720399211568563396981496463432773349016443763280715661434570935513819896915525486169622643835758160410632749590394118127946893072496304094569845303585864105279461631160878204293039979585967136826623001382853734526537543166069176208453809141180964990467543950594085697121099710840673412440605480345095170210968915327390110172152527758637387767358827674199262894851485983053020554831414170154055691642230322704927621532769159526389403108801089259936162129635723606901157032912597833196119378891815493733160158993861501343883718401180337181598790032848984907939327327234791863750663769907473579969371389675940139396799098908565499718942095789616439824416696552269906709392796374645024006732913990797123598793828267317839744856166411796116147097296223973605990353468241939452671335173043378477376959442773866466791153280350629624546440581056549882971965076683723813342278308357238943409450801573455070358906306290181091526942283755119766580091823567478518175437235147330323375166356420175313825467536186695075338313875074922338266387550479493264693560056936374764741774289532367509133445590651053306540289727194720391934484121162966877406856365384122399576068416495536633013341650493544639113618109164302415455324483209995331570163724367833900545990363322152069081196658816666296985963382554848271026378508462917700635278883213665558700215938367619373555257049868134039242064131649566685265405023044303834358299539722657811853384690465819550586714309147341743015837502341710119327973827139569656192813126809176567716260450219135312607842124437492351264105619448690485487632196109643919840630882626257877415416621941270167798157593841458850175744620826285368861783679218330424186591031955764681458622671104812820651414084812409088252245991419802080304523402818887061525350540357313246424106846162261257606555542135812987419424843931296462846876844735725820833518153621706184744082202825493766020458706886401972040695035877876259584367334594327806498699193358460768867151379777822443856760556841169774598043615068637004626421371891282754207525252404591681343020258367913191784746568747444560871763044094693117537237095251565600018840085396013724921642535368494947698139980953541348201654141734835098031946088376558477196695370786049864164061227770881409977600432121257582098551172939954722239928056076246969188589259250720609867552836822480717804153442509839296101192706951245025497394096508718089585272382670207409249860937859486268719659789614610656828397981095758520170063550787259462185409566666590235666310587731470502412106698911685482592799042603781011040288597460882333593349947346957881272338942915828555785224912366091761186742150141949599552581288536414633068766188729828711940417010616139718109624854442971112167586851811427864488458584113326352774806100295780571986019794879630471310659294754499247364735652535546092633305265331203962164262461504280393720532655432013716016035228731383693663712877159526415776881419735439326406693666408685149859854129891262432613782842419176080808293006921331472199204884107333225446000418692509611371616612142548765767920030969858479447879848031670535554719029310788345479473858962327545856856070892048331436313100665801494834189946139447129959236114770940049227465753006103252768880670439067309489896997620131696174101813512135860121395978249300989456862165645647633381772879422306071695878736277669118564322864764461103528294722845987183714028506579183042237172061224725533616841592048193875368682321685586180194492957526306912543098121481316077909535286103714386169303898095677049639966451548239493496817707657946334792768211909531343803440076524217233248765766939952308339166996586545160212652353076764228861781438021054841007348169489711572274463208536745071171698002904235856696199477881005572725080018754659452183905692227149780981252015051904626066572399739751176701994917364250202926351709376382004224326346492472462200679121614434393642377847407226771566595518297315592467348269524742849908886124859912400220209131656513281210452217481079096401024137721681229560282332902833827461582294551413723069395108753380330140806047289422928964434302686381687270954313666272252031565814590176828824381611944299404113832634920693527967758101636922146618224852772622069184699626160441779962620384445619483328463523119521828330975998560514396256614360275071484095221078270696966100862428904396436425787674571048579858344725794173957472550758178702561765530564021582473602449027661952798021060305099448568763681349165018975416641250402464947258210245893529506753705515214373026693028054704298669680735045503161069050031452639137022245806957475131984123579791555892959078498754609723892448908165587128852421917293519624412587473586129402677010408811120624869999092344527901625235064005335737055681604545749466559368631601135386199478386427555464197525276241539364143207853652945641184003366024576567866372836734020689058390745778441170123136037898136716234612485001513399065248002841539620756876196288804058007063790076125311947638817128512316603727912335322828815229686288378759959331895316640158444716551938915921050266563367259806282516031711868898743953935144200512613153396584370646545123940158206456350105695261309920219051702989830557339126545126376432358708314525690283849025739712678509515760138089049969543327123033949612171788631483186511201468106495886184608608913017619399169163571845115348521701536238573581258152080058196713524110659985125561316234916789658766899237193597832050192319378729396635458248182228603342701596105041789093157778181249603331214557560074419550855191297309183068455592564820837890740775341081934478339781034027035413451741329879963843955292004573712438980146887651002752028940460557869714156221640974881498450849422397854099939213888696419155628002826720036880474403086648528959309694712502958262209616927106058438026012021442288814721997928747516794396411844983369349856962953500068672268280779193430818799321534757617406954406978147132492665462437001872419705843591138450247600043726831089645518711279304837667596930046074683629899584334008162469172727273037725345274970099344454652637286858980588696968085124488642176047983041073663558830032098777148597036390511115491542247230496712812572950051517244154512909158023138479506224290368433458531094326417103133013842000953068404007692364030832331265254757365182771145856663207359052346649938464598210519515498779717917232674648297045103973809677184239199987374182399913252892246607512347715149874393440779325369915267773431554081693701306448936960721091328422402327105612777462977719053187559982572797222223372217601164554913312565017827826402077229699220453397429957787285572332576342515655460258189928402534796335034043927918296768605547966405030451172778606549460646161017183956051130692055526653683954273951907659822892515127414182392926784492229378477882448485824895186002771513016871467726708651966993803765609610219694261169557259484727629227783363162897589769139458168959874119872779212334818380950379397078411796673639367512353009964555709637067622531326728714045489948199912159032727484079554567080170189116835678795185248423360207793922090982763576895716902697599243948460234315816222856161551340491514950192231413359039656115438105935726802026936066722536558582771127732543649982618038459862876397214892668696961633528795737126886485669242786041163831258583991987982325211986715952552135945229867363897825046193133786626096968357477709983812762716890428523377760403377359949770994362746322322775394073512464596982836715050121581379381239803324744161858830757038188767713682987081494598042178496274701221733406547498662190172858642773663107362102646514271912618538431325819251987477486761490101549033147108101489865466296648462294509095307067622295839069009177811743994683520059831929454237390034708485146705482125750809116408010850245317356898971655246564328681177003757262992325464425362191601911325677595506237185980505722066543274222813576588421532612338011001629961150645730293750614839901842675527998496928790496536836876855499361128470877313948157962057065221577122901213036540185920864592323863167230244781624035078847088003872501283580509309023914020480920379726333392943554777251805549341173073306772654528041071660101753515732287162526889561335156500672097249139457654329842689198232493527785734109239380462870900013403735963486321146247706372913345714070382703943109148151662154005073945227592372107116450379688951047226907926249629447859972703404928963206713864548693536837572721893574525083641633277795559579110498934406470431972496026581880180937536061911151043245716984544948929806008630122421236672786647444706667601200768925910668044545835478167040721495541158382726215439223285230731075975209053392244937637001535035013409533360067296584498746306168192882978111737621205963102719263503027284696659479476263009886359163201383598972571726363956691004859987713842289323504336112493093991629364929797721853309579899353048377986363536763667089109213503179018599883623050208127158241392571422257316101490949695570913791746978153175594776897748377842021055875093903521546176331333713350167758568000731743830133105349323724561575852108170664504277898377110754984402040475530158087149220621752843121336551119851080050929725813153509072297781385698047605319843710271472962261805736445962267584575172325057474416725057141161249619868223398183506798234333873168760271810726095399188917620324451086123396923878904085386380038225829601533770379631661173213412248283881950137884617217139641016505158590159472595010698082506798214878087322278876908456760058654870189305801899106822486910473318209025236759783268251763697109927967063631614040771874698098046540678155999254612489424635048446503295311980563381397362812869221814161766086483399171335351077748163460391293321899452241505869937146591833225859702624449460594859799589509052882169016561111107203826351043612400458316806085088607176514008407359172343262781818517772995670393332583951509827670381446899256540638002106448190585429900816512684520144576120704757465029897185475877919902011487435776181793982182777831566433112612453875121632431262069368701062926514265046416869608348585891469844017759599099320757311294862687828052643814315360094107341853458698736581606201243028291132553756584287838621036370952407779935414934216244682714446107483933968180441725085538386714856531369836857505338175668053735566716261680532239811437063166374776414054801485526807913695715960550311820861235809088739717278506641955527976892557835113329922069953607365321652350773574383168466806775424231507937694990610960039075126440287280006664292295195620588279393423681143083855430590379253022428437807983627744506296025007420901528067301313353538821497259154752355380487353892286858410454040909681823411271609076844811117964009479663885431888497946794245416623165599683325978167249724172006488849662020716425765101377281538898846569337610104892208630526547533090904552168664314503974059552181945858889674394540573265948587654294723588514164000503083768046826997186917773028856294783786588197758506767450517020199592244851522723777007764789758639473000431098419951656711687111318892256025766829358335871998724738524690012035232179839161902345266521600361336955591034147456860990111534787178533938577158270480189892865836855425509395634518065932343635942457983248208243155931050882337207498516475100653144105084920645360879557862640198151570634608875900560836889828203616927737059706717500571852359139334937921285074349413739646252810310731099154433464593777878954605844862374955680142533582188853818544288661640115691257275636943946815716301649921715195233408220565280415563995772178565525342536693967293981282266003567239500036775200002700718799820022996403573031487722434090387728989449695850432831887333772041722468560157960151963488567176985531773517700019286911180940625688967244008137208637349180814989766404866234358302020175323768065460771467425381210474510773376773443191115670125386871353589054974366324444329383046261417351473412292994340705046026190556449372937104432594567233553818103077219354214502957668473293189426811958995546196495762330493639583660960049207664887299486710170278561868205011152416514776244715924021025216401830484766672891084229980883857911536542330973741420086106148521941216126164837569792903004874907224257132384856777841636162251240016825413052755083943047205744003007563220601002647556503189692602455963633624184731358263298362257943446006106960485596501802478768356535252930108367486635889984509820115804076895211398459335958117922502698922893302350787753475183527189519516553707282965962404984693263704750892439458373062437888296742055275308446001942759089361726746780309627152046028559228402949523544972096270913740093045615438245332100766762814413867021966252040730159835963411787217014372919853490811765131200091066727599467231756511696171492128535900979711936008663107155917640772818274974063536836923926420209683011737429497096834963479440763810839123965756699286351116771176142274518778246458471851298609631885154816313379224446987946823339132897389564535410120747710268090721209081967204371671247831008956192696668002516954235740318688637351055428391547435888835892661967129444977779004486778377042684736446377060343559498207208616843902438367197452946103993809730558175090312799648069492951015736604013771625672935064232568278786796422167191760364091229783197418742267166249002564608635346645671754149245049926812960945779035272255757504019900888888642253555107821258451787781693961311395788813808997235257677800741004991716139200104295587933494501254877581995231548865930157262143740087614961722377106261836306208272544725412332790101996862972707163477829501590541059980542531360228498298059679728532134101760966940136689147616872673803626137670559634322031730021156874470717393438380257216443515739932501944693217726362858327835431730397179412763136682216871781902018566782637087863665516697209223019028094039491896236598348486384952330172089693875636439074014275574976658385852294017730379683560884915274586142065238685619503710203905179960886229384036084092893475350221581729056654124376240509463708053803018743207249425575789774306312326579230338781276857768810849636114441237225223841786029516192142297172612987339265345630060475574600222602423582178041113583557896905076886489259983976128603878578143652831982051695132814414155326540870170134863942285900039961044439050182145799634239255682707123408695259328725321460740911115082029120693629913379214976147537315228483596908630380139142249884689964534645169380124116153813872656950598533539311967760100008485443352766998243113461732659564921051740569012263824247893927976549021464926033000327886031290768725952036571210058703853000437288532184000020996875027224276848601285027490925244679481825638429867377158242318904128261860742632055352880735008246637357520064394954281176574676259502957996682278736670636454438335519175933146177175998474050530773168833865713235173230753253615811759412555763786747419787146319242880769002737906118624639781199812912847555614184307161960460436460364058000881896020468593078322996728689346293423005084075393373926961530003114781387980737145848619410699908856135375445643613866934109507077094166395605241656472554563753629919510727735469751762900189743975352073381297651844903695777079016380807283428748202002088319047496741262094343330960030883474869939444406112777310130836251902311095263795324051858708333723833740484587041407285700792138299868851970264195818137867610055721519044446464374880241891938124390686133764003145343514980863031487655114224459895384866537867051350341728231770316677174805660936220942517918968880350018696479814184642544303497251177056187644324533500772813704531141655793604644497712377190802736382781568045298587842476774426292880004727982547882872587163816879314815517265173419961584838799038918548064315697534935991306858877547516955972166774706644252406100916493806101020084805771547828014702684671326711618629136024735671999845189648109526872265191961465050670050397254860961311852063002427327563334347832206587867426128143729978577789902049742920632530379013673545393581787290653790099703525299722261823353206938917234558889108045530338527524254513436313049114901676568608947725043810125463361356314742035943087700135101777938328144259891512915392546429891925224320549612670451711603944088025567336148338204282721613476836445864615308987566788405631787636875686047484024013706909915010266344458524201158848104100642893717401256324600599915742556450615228429013175018034965270482519501263714907108527872608421061061824010235937856778524982335796829417235121597573601107837234860430575885145394079101437104554488962809335056530100908095964102496075353482971110635169826075182916176154207201412454253583753176103496423810269269735904306121818892952734419562746138700713326017676296680585644812918048802204156826130007600341072980749714483022428717027305151310456289224648059670461614100867166278841340815128401629195645993221575369737509632670471513098010452714444051252029264917427325735901876571846930732668189201141634557207887744039865061259598787590445391867661390580452796786032051313832027247169241006135414930426995589813274037657380068559740493317400797502765679154312979689269681101374507221114540880459449304677931448398260262904649374635150486791382210194469426714123719609092282248462596561137537463156331887378948974047880693576417472024928279279118143159200924584763218366749798828796906141571598608558209722512380620224872094319945272633600469705235347877615071421624714012124030805338547343862846005506818169841322182504939564211617936642235871230839290196145724544704845340808495806737110012209607845423375872522011497260417353514666492870323504169614119538555380048804720286386199594521486613683020375932288278097152852095698703689960623591954724641716574500599728974888338762475034960832265140939025927667270071857668710687407670150709281297088406126930020396532380940615277980230141937085741410182300205489255882574460738058637659607188894489864209898168062283417472252859511761438603625756053097775477893519606384274908584964476000902347026097386963673362758626450580466300210216721339929435843115979135341537536682787690955170889084955782879728169856849696604807018652948829104951262035256486037471443591402856965094718229877269470281574736559287844480109228998877890650337633535388581066590137956739038278714719921234052021142732791087750505336819290378360779772857288842642637103662820177696804437897264418129944718946831172336263114004210070283622763595271810156453971082462119366420360243938018996433680363318185923161596753767439796791155013533364297641671332295634989433893608566562066036638259463026822512641188138078146942296708692408179098094910602285841037452668949832919231461642388535191852510866373230341056627390792454429734971765277624571561355876553747845491580513288619090253829211065718115935627493111385324950695631422387202921603256110676640721746460045129892941025729018693454031130106513759167617820800871924370311528087646308572405331658752172525879463241606941661722874486768104649275324380781929505627006729799992116534507497696248346147380919680897959244247462733281252617815696500510655331758059053242667530574774209101665707353374305325670903041461362963772633322780221005546250345701054874900976084594845649945454903497095397187644416756724006340348844685476986649986075952202629798032260977391324498776652018137046832597194243693569817909919889528932315668876022353559715671508860384067248488504028249911721014807787914774323214856359773853761367326101159488933074924348853000347334185908359600936816664581466163150699198712308780495229299717725453114061167204213479573793502461953918798700240412503326155509444682364776800744600228033217490143763230032575571980009923668892962937578559297177661615225002504495339618644373005720681043169724434552167994991480154833438139864879972294560532641849882488513307048613719160719052464051390376961702224362937056561717074861623618943179910971973182516332651962207801062651859392279204129442862541236079316330355619719298868282024378368042657664898060698487787296246575844984063321037884126877429077265678903144718630327004483662136880938713497959003448048684005417785778180050128638258732637258252133018968637797387792278611724684704306826705134063201475279410370975403126231173993065056068734551636666304160369560562699209651007575945013274118786101246234867739214648789937822215624948877667927582733791926809685732325916603621122379836463381021732571459667452863649152037792619995928262000836638283959236369239328879290919380458012418902238093374787869516700549065363002719588081884826246465183690618177543966722726867179037556219921234623076434160695508535745387076177380421891827087692255164518236889889413772630651151901635146962574691056976744490537526671060846816566409141169149682208898921296205206076469340425557631908930606964326557653665629485091401090518305503216408212510407546574459862995170040710526057681652561878292427653256014625804887378050911303684268925102148906701277775966452819522744046358448603510484444470684952854162800409558961804234543957697594579112674019351291179284846431740746238632132694955949610571687179713884788470033939663618085517071448303737710151218676872121929145469986662833378312971004702618107862408849366851729556708717455367094135725420855506453790673655225462945333444493122487990230829234373602088766210462536427886268689410972513296200438255783162211117658479075807359295300676762040590638708755564762098709633303115480106125038719363473109879170577594621181072964589869193855781308962003149945653307326932360363113567652782233899422898552134667764978694185821052671641815501471518172407974279532358142023967902787707347665757345484464283092896590106219798900627138017981483938330237475836127622848895471477041071025127361121361051958330575023666084120002570982793045824709976345562448457561957485771538739898760524795917274994838277049607449744139409676203767122026602251970049131344903906075611518558408864802940514798276567994908610555891237427540007960432920490829576168846138663463986786181550631111665341220670759545032598792625723129364296316554803484524971455830281659677726400430917187963899253278014832056769079981033433461315068540021440680216578706292283829322368176211418581974569297214479694727940588577827702523285632240170483276671447975655874654248644693096823469959477476432051731215230192954732223116239249852898615897894571972053972834114172403316786429488544469775328050622123815955547453860921519389655993830030407304529181688151359510065598668200864563267800953462224395827382137831761301815041743752929694471910754151581189062238119829020525850240522280114209460846475302172174373612874024721934696087185699786996045049709329853204671620042935973458998227667667959605416746542357032201967712058582171033261428025227451608498180907352112261410178433564813455682310749813050393138771196838173602210874568114476048153102482856904239137842667366509838125640945729446270846154195493088346951303093051229414984971228420623741501391738844055405493713724027733031315547208386728914151845536310588092046667876392920640414283082003368229787154304402677747614688004005419302892728759661819943745831571764714111333850845687556960735891631032369253088128642321273444000847815943196168807295659254221403694475693432070968526042276962198460955323143055447220083181583069951243443065540605423603562680943699004696893507873040809322777977536008735618792263170532729473909283310548445973434093451555287146399965053510970528129272128081479797530293553562057106897176984211249474016558106407011847240970343699493859164537486262272175446391765902245933277590257778994105996621602697382123115499886724902138570086024582091909929753301587196647965335109739645427828386897183564952474878366494141132590721681161786403543499867232585800248503907444773730820437209640844222300019269514489761234660906289414782298869929345498316071903835364669378530667929286285275580213496716692254904651860147727622683183080125954846230086452026529835190826073057600645767584560562135303492809968126163858084914358391588754338864403330291794036715342123457874090903493807356832219506478833115471043153016972481169241354721753968226028050292813491064133642394695419352212619199521157202661894398200906295233161900020397487779164689488025029737774120957885176920948384273224662006413645451351683841206954016140521108059384146878523536753632251922866808360986628368625647985348099008707740308236802347906124950247190548126240813286273060707233468503690973701053383927040551283985499984564078653818990587479286584513510128838860122404138259357490394353503382246101112033087852479097204415432943659741178096187524994475562210750772347619059678319044807543868404594171308215871145532841125216109500488234477932231062628497844559021755853248925534510911030414753511182420350697256918886609181802778375249771506902411456796557765389099495426347510663743603556553648693538366778997910490304545598969482042539297713046183407306886931182639946393564886229614331099517181722156323132821191456668667490313137606899785908136006461621823899700254055055893910470659763102981477239197157031411218106919837438297389507951454941376691625512132808288139099972739495898030032386873887202113022143078366718622134794245216318322438351287526982930135991127832424437677206405308819898329444787852166133891291779900697955907421506086368041318246703049946147978128428831886246845360972192683234895692528505549909935610428227767859492833582833415119699368934763663526093317211206694604375365643095905644954290808214118159565977472831067749327505288570539043655970470678355098670855936791991149761589527942184925505559384380614800395726782529565269743902831685901033807600403058867051234463636964030228526399027583231447982492302793782500857280832603325746178412808808250107949325876905887942825587854709614607881205543588852577622248686147181966341656045276646997694952973998129792387323525673640841417211913012266842532206737591865794583771661393185107849864732761220926834483153457667982267479981193125101043568848681298028909524108373313167350340671426193654053718563851240045933819029302411491262193945981202923041599982842145995348173346477391055838461264382060142202241669729155371539508871346523945334068548626212611577843316086342857077645244098188560648622076398425422693312956137737080497051732451033728408019969064610836488018622627684987498255201459092115957187105479456679891812496220913929924899765998985818675281917729148075875174851291910610418240209766407998566340715077841724820077102382822026436342640101883076912530451249274065238328717657553454418453469574025813658074075313187126659003842906225358683122097105041880261544179227895166411311238260587416949380718611118630965744723418089714319719558582053543190559171163944059379075923558786549417854017011467238555352208272346916650911625955471867727577434508100140611061203000840334070379240473386355047996417481177037036345797702810237383340379744094843086141514481919664028818419170414743827189184008320574035970864412117487395774059258197247170046405025894030369872584337842294014585278290070350154939714111916402092140028164808468389261805033554906088970745185283039340045793475211593874254511337486061286612857824837756301273774628156190093258766678488446684932731174583776747514790030752398827230212408398384835331909927046576427262528826530005859313170722204145874170661109360518021122498597858476248003439950171322967393554779384945366793363948194723975601991669059201975530074119016175163965715509935394216336262149534266132392302011037179188842595883895640291185156581261481803411650928489175925162998630576578636639873540392082357008559253795237039131402820576547248462591275228061800772800145107920606926462922421906487253770734467549884362320608442674427355049675343481882404075315883239820955162626413094299236260253234456660276626852864068605973202496222231405230260906208189275857347644019584763747178419687671709437301990305741324386648016766375279573689808948630871001270842350662402039263957613300494677805908913585432110687848286172357327106390665856195256208118097550909247257689374752655557539236111938739730134849767740347341461882333060559335229306642219319950244749371627187044158821016241892548391651724885436253383384068381321723873121656710428673438670993089642765774563946471928395700842079179210442401027356930222821617117299432281408594161292942195193317155877043177199571330913628689309738174023221777394523573571247635079378060952337238871962993018054039316620795760778788006258321952474057038777244946639795508403423729397264986399641217149519949735136037791429386302961515096819294462318356630882606854433576571961441983193148303017942219476975580848210034023461621923677956929291849875418558408058511243221070286863109295999123757168275443285835332424419763970634628978273711131426959316122861452514351880905658995060407385048773296066901807876868663776417457446001357926476309224417182498482924758879323336029928454904963426694515401692269811552486393436777827855166743806552918940406744812232248811892076630270364459540025690885985298374699106689044096611955493022756634660277612657103591892373287507954566804422172314229503665748697760222626586344654293172196225765489529532308883133005812665677315321141777591819754477353758269256230894666696586269850158558092975035506104729017216456570442636505837766366171683422436870640539853445121238244659405397887062757081630675129296382184051209403615986535109019846692945639888403077360821934958043101520552051493553512840876065074877068131313444013611505955996761853860311148630588945105319505988355531602261749774169051022016543765644532161117252206661474544757810107494361414703211772557496000580305304958382369735346113440891674581305469878052701802984873638613544137748944617578669952629152089711908039459674324102508554329666283832784873848642235958420345884783735989638822518126989224546896050942426132728458821578118105261919343043736211751852047636605804285150245548881694662427926529736242308047051260194798570334614237588263394081921058750593400726434445352127997362551841688007556312563881409806762967340004243887107627982774377089382774491849792725269806818327015400082507609130283470205611583349345392996888748975814219446005417573214835256765947785105356760068793342241806615834096084398665561851026437539353642915551092894223261793858620152245734264498294589326740733833416759817363789414511015980114425413229973594169900999496562138264326775275693091817940810633145398157971376186941947714531499379175017445093190294861949854301011973723507120269400624460680247028239668418777021884322440735547884726122889705108079832960208891075128876539961812251147633091601193206320188937060071658051741236602462394825110064016662241150311520528404921445672852035690537110541745964955779748341263137688048094529018460135097552451080491618609392118502389568658573969665030376402306476506273211886536271254134763882628110703317899440932961082919347390804564573507467895608532806038605057625551770702460957239044555094920998844881028419544358803427056256633260545543352284818329937161600382907696446319644163140377352155641279514094187780209261189670074490218539254065458127277344279787662797082072557798204381358612157078785737224241403640536864817972140077049316938110579613108171675063720607460749716535628797988548095156912066781965466284323164854949857405599485324919110713389790210911464390932880931327729891027723703373562803934368896456923376358385093575851098679731331385101976453395175383937178624517603137636446073742222428873381651155874021378646653699675539710094009717396405882863747422185920233322662196076000634959137808169526311337083063140696688753568988730504273283304544332315626739832427963174728284273850931419576968099154311374484854032353014192608208170872642680224096309808445923142967270759234917505957842317788701885144767320786847864862864975282932415720500396588797231249146411197869061506279118993201675162712028090904481241174438011115030963985670366866013419319797142990336418616400234339789786389316452473576702913837887842919196924580675568450536375142805801696406554789099899920850609237320452474318107412855752222710759964101381697571015413905391389858655874970326373477860172061464532378401865919674939388332772470550438920067838061317698629518177322925406198330273751376634146396449495120071178193387444164679513836552216872298457311066438634743298318767423836199726984427118800384155962184927667122269149244773148196026348130389182381693956643448824290784648413549397343135341306383462779849666042816338455092307036157690597980391490841075013621875651082426758269751652563189577799666218278532117968736287513814778819389709230788841163975548758654351077266271445250025150260611961938224042067992028457150768182410267128365725618994135339930767610080460926120417906300399187966940739074203688175504200560653775494404792270850885227178038751145727099420771325089272881682867912949311984192650563031960163551829430088857076390284492755593107467931637078506105794346667277515929860758848195574046741856702145061010990497466389928854074494539942822006448718536510995395231359856609688375579329598697307748880980190916622770746300658334680058510665903824041517776118734065666494576691678770580308825196169638607569570261963212438507279280894677168718518983319824088976096262228720817089715587576962389956912704876674961158149407378533742430214594732669005836614941655420947856631929245275028903316011284054185735533185148571752088810754232783770715243014745622810201065437935191213618228953605790269783677520861886342802304760351358957056249958300153051211003703125894902350247440413500421875816776905160442562018603394759817543821603823121786890218295824402628077018790036734305262741678158285699274368349154115335771183673680368350136638734525487470767042044437258085921273689694365547598951841322533102615363347680725697404349668484002843077213931177905099046540150409688580030999847325678905709664708429997656231933735120390088446353602796039904430823185435670793549140084656252064806003544064472122503754775819665517861986074078490211448503763881944820626279571337723782823113719413770484967959818052761552219030219910080848675499575317367989438104625971943203406187607458940762881475472771579059357314372963874792523615745573454246178124722479337645355395411609993302144032119346013458581654809549457709114422105081095962353784636809625142160604118521744893469866260700201846457110789232612132529168212709136248075448461481646315813340484644823463151695903864655550878814261247975743201029039813311124408630941609770169156633660868274505064657935972833024078757574104154207235227754686656236124902301623138702142419410765522193921854891961208351609805095243169096957691993929204976934420986973168265222591986269205835087750134153437377362648658069421488334957259194200961123334230530457033935022064002277948908322751608979192991892265469019262821540446828629718778382001599193240653880525180106067945659243197556341707223002262750636307455707417535520964687315019354745552408458021506572743713375078582198150956895526564722556688884712283906015820495475669114924272035280675826362564725232950555789649137807307769733687536554905933532087764898986110304511479527605586208260882026371432606886158194034381891736859444705418545372160419093225850026565817362725402532326746162010985040544819476794864057391162155924606280761621243972480747522856060221701535749886444128853903826626991923875760285509347580740324131854526108366241518379948164372596879195425536458491576591497152614867742349325580026700026420855554913326431163623449835919537943579214030219140787842034267014482235829949150280749781387713983715245571549610836118985146423183639323115533353013354849310626295236074415870572420793854450196565583703229483343087307390940768521608181396544179507857310635890151682517709182781029890065156078758983119280118384220376154562599099346074720574409227324019404514897008448557659250220433175513224552137931089762113614982099969777532485999376573171289962318513359667629618492321279018092893328054224561273783904138064693375970182819179608398798691677797369153581122633020507347432070702073975454797690340743282886269674608901622159047418941736681149703469503876920018302249606070240251189096139660903411663045159022019499418532402900410153582707155205111002060711347412941765598064958115526193953545657234904879077116737062080675922027694475867231338204351058342085736960420266807882015822370664944519403526617662948790371841031287293921447843823840795477009789339442418248404021693639508164015702172953092072005589141270546572245418207402419351761707147823149679610493778980834561245350089699149173878031144037641430678404806058181941082915903768262773064690284539473661331862372650605742352826136286410202729181779913247190634922491879780297443824133107128677972063300826467643969374307233159746319473077103236799120710780544156205762008704484474494744658828373518849541057197810695809232844636078805212336511312583405695199766340845461861643299354962214357755961894078785984245064346169050120689424338383770359412113627623953439549067989927745286788855803625831094586433484567727115831987292387034926410362241972588334063769979063486085756317322698536507026824427451110846719237401976212222732747393905982979278318589475885508968185114565393128491096312712768365642082547086793519343568741254370789699471693113498616963115207114495347780971610977993914242992146129549390148675149565666108053972868083897985664754834981848436515408635156368509010542836798144746042859932225808105422873528578321008757343197632189132244858161283632662709589899566111237304327850307796516621220138120981843437426622780218661200460443381401861513951323428200179776408242189561824627886731659728163046028291376405612966596376040460115829095816166895144792869117554281838855241901029332418518453832280442275752159335759189832935348950136121616319061371454961116380916168827784722260620285479260358314255008965695790062239468675513742331356497560765678421615042875689858753780527318293895324572338579079963431115406729234584002874371785950759594659990635794273746569883574070285459560753589946966338345793971686863587783998826559967828677001275576120746679422277406140436798024657052743397154091909794854490556983001447945853286331743854100850334711470434720389318395250940272050637877850337058726790969216707316086905333528505401203173921198045815531326135792515762197904486142223872579724256009705757914752550088641910576834377628325449352962065059570116510577527203659014513225489259383306690627701059531086684309261830467315418135234788606297541548130169029667065594025217430369180906285753715928373686986474251995554700667305766325883499833052381801659895454442439556090519078560374951648236964884630523223778732481466431630102229224207502986151457121228015244123780100992691187496102777615105544171572455803789545164840070167578896634812087646480090125947393894891018035320113076959850485301999693562176745943840457356611121242052922885722747986380515842142418820064461058709734575036405900800293547220463853568750667252733988087991225976492615515705374337735958773615311142147752194121400643504812651360295214777182042066260431797661562846753696799435254026020536180407715735582287302789286828066567731835479880558297375100156758676245554046869022496439359385740191780685997090652630975004206956305041789365149365453533321386081072498473702098893173423173863745416449611340272643809823474192808922449648352544515784029506107212780020790193030366941460751347585476804205191275150844331085419680368882676118949317435679558948843123507150960598480833529679150905515722986793668446655141619389866617450281724436474850060526395961843393530838410824926602348587157511916228591262346700624556832211871081741985667469649190163561999395954678534987365461765092508419245990996979211411279651922436083998997879145959102640998424135164532655869783281446775394590043860036051339042119026117224922053459349343144943400216681371775047536999909908448392061529169530019998358567672631486816361683732327345251648910350131871302517975175387159527716602307354312488057814531357120036959582609402236434920816373248074900360640348664922853432327749799980982093235228573547577349190992271023982892156078987352863810854975301884351283705877708907389659612317769450143370988813008455595419018356229609463169524154127204030000665808707826541193313624448503334848614184412713663713737353438698249051295917290683693270877087502293016134857391798903864034102385157125348051920208674071808075014884843912033943615151582335184275407232450561524486327066051721725164702632344402796247144196606754664908883476785694896381866933278223328349141397933949256880554323992197204035785507542079141102163771829281544838028111438167549261941395538415204102384734549877150473504828441613418196174257316681458474488579928362093720444449701586249730428053058451746340727511883241742623489765550347886845528564882051022255654019401908678439158828218242934784636031256019878192453615161633224102529854349442168519711771340049301092892651229848319398418799430451029403150616470858040961980844715610803850552463002388409298811492719824870381054672155388668494162684569156974152676009723203355734332695906697872322685074612921780340421564064144609248680859978267100239617888302513499414502145566853791743049820745982897160199145499340996607902514505625857054417623234834726267201783706036247434389132450924789545607949433611659377945759180370309590512336317524701748878512235378431618950080641691297957301145633505926835916026727938628564284460442838753314811906299952284845698057303243929810345235158396417558311444890904599671472776563784101894209074275280776284364880586471788510411997797517275236757114825582309721039884415969464053703696867960714078462034744996114602958747758578367322103813049595741958378020707626760065788727728104253430809111276391722634313903654008405025240698239175521836992406294547168378637913749635163368949957989535837057412341544933552724372625326466309573909925936463591650131002851393117997308311218640730618107897065223510343179729504070363651269045088133676733909892682102231200628657804502359785668129468089453129568703989698667064090924781110558347443730291192650701968962919578478817094921407128464087471240687998657280555069546557236626947697322898867701360907054671791621616678226207056020984835263744340787131168590244380828981677869147672222289896719177911424977322943360815803543739448025875413368039176877236228095389438771550513975591368651291381400606910988618219029296784177534532767860463069783469761908303297327303499716799986922847426348207298245519364450261303425369066496491540736003309686384036780071904725137476501409810201284855294567678087779206077022601503162312948893832537084958320340019086893291377076995860946068333940017294593944839514833106451003661061410680144458564351938421950901693314046313912759101456209879219670546262631563062295305780414147595215516003697697677610619667721371507128524563510333743142220401225895827472136478086032584669406158039396255547534668219439456572985968989600381030655017643167415950843680833409941183153628762862095732047629337377679719562534066585238665445767728649414487212606543907069569838030468014006075162606163973193621621097553274415246764285901819555053223142167459660973053851525334051591365315169039406645355032087346496834603444456595270914109376577066386850534288030647240016164028350648470956350307257027649294534492916575974165444261010887037090195954853564655077570581402906543077293161005610460311105668926823920399831361792464153866122501098771269993735261919125009566638034613670681987862046554772917007247172823501964270379550826282709791256091394336275656037574042352615466334938049316079562007119767415957354668616601973783469576658491397009865144107408226904188879578691789127518866702658636236228849788167470884471441553806961041239846066389328362461200034332998067538516287194476215300328964706769962583924758757253559228436494619514910029278669012795402732288454364530690325345555606327808192255508990504547041413169101874287857824096231948143194091073748157908689368038514637821949755307860881481379846520945538025164453043581695552786059884751841381295804111945202193777901172584258596579859328885091005487574051961029622634960246648153606932114980402657576184388882542462904964048799967589584642514707409454667983910448957515422534337932068313984068998080409991464118910126254977362417161659040955319820967607942415437107493245335005121103283172152405504479407754915608360753473405712211032891811350586360960004017504134000595336698394082200489307738852325987574542746321444191980097754884189800512422301008108996020714062181367778687477477995675867116234794201064246228135215942525053323118036490503840338051342727951229435795174227049599728961286038004753433590031580687729898440787854554716791154731237547713627766409861377045312746128354565072386142721525205014461624319740901889224945805091942104873751853549726273463563280572072698197602720587045120956919690644819456499974533840581689679251998703255280674429370088535715607218693606302060178141626751549006513241087402908302459277370884562319639673855623017082837704785914857215734506709761391710974493830831922854553379580198377343814671570521870745807079114328377561356310172214410851725828470438416773653675370228109179341059199090013378292795122168712764658005196282958814922920361110819802790446494535140464485405315268285455333818369020403384221009559019718728938416402986218284340242435323024621404837425395757048215458882699847135818636184806548499254195618684127391329683870187957669074612789359252970137562878661227219183990464778001495954687341790465240182383527430180058838418892335402907815089419362909306961835395660712956228608343015683207808531410199898411947755062360098354391807245529232355485982251771388456426149523496573066986641829587836444701592760590683201753631468033629910714925384316361066063222165767285129681545100116096504807749608975093870116825708098213847045272264857946693638296584441116990225603832079394579318362858749233488121463253269114764339033961773115181317213662931568458441768050011121420825911782782350126307524429625474541522173827161419433110801760125015629180612506302919691016992274227376793492504150276514940420392241573562964801876606185321210808702378447998642989327402268039631069228520380866688768118434132853898126536155563348587918778081566701226259036184585213258526952491459971258642529634830519896609505023347925046894954002785065399141993729207298319412271198597697116340638726947783500699598196638424379119751472600037127348882342836501609019453447306070739035973024336214852131993873626048054701050378772533456648291868275903658765736067610413347891567913295506001057525814488282114856685805327268452150827451185103272148712392676719067131987055044463037899589640960564076082810284516826157258407558797105196997525694804596560687203945219150666087074209860806411322545189444243603365808876185165481878775434511779734588667214066278912252328362904969332362547759621784263251717915955890405529873048628425688453369950502306742739132614913142113158285780747115288736098293966966263215335420989309217879813429864988176944370792271273793025390966658644124816024892434393758910366231997036835319691378217263675635887563700935928173301066380419278292361537904839599294971908529975223681280728436369068360468424928336324393366450239871313960696948064584853482079252645287839890471961689172262561265339489473513191129909485372925357756754498471759843606667783019292603323694236454074843970154557644016663864684300475587111923516968939009998057357182896826338771006844973330863004776203799993739049186218462383495556591333558868715727207269497874959752774209843464546771580466214556117803850157209319947360035721577656493794582684955805050709746440445590513617719916169389083133347427755545303960142030347821838860067657987151863181037686259740704162133524317223899500932378825380302921372715959152199265272116750695061091240096615838964332636207906267100218234439708978425728316705583508103222412355597047972211823079906931802714344091978211370384921078052416817494151085839868767039284576963281134712326913497284640611638165553743831056832897747703688767921880305165300110986612143979571066073380382378878910031757303933569489650579506873356541562118071190086173312472504575283332441054818139223757302415887516026623616097409318210002547418539703280908425752151376823810939113191790034186583900629254865125449165313605491617242705633058159079777223207669544010028064628196448050436143388296711292641605482112891602385324161738557197003270750171499619636420044405475798700100979688752068165200763493529153428978034129126682022068501508437432688537736914961836541171514870421948447636143245811549326186199624095187533613798893305507761703316846789442099888408689901708592569954532162675559848252335894896941550102671889327412228987618632785969841413040335512425889037214926423107165780489283643594638666833789636312488485799931510393095096390750128510523309609967235491139598691513626512367863774004915420036191120877307933021494666719797185481581526517304682761399987576953832212185135040699937412265572755316443220005381655053549695983832827105158498277197045714845855603642860369739102849249806837964846640311230316345548969922670187257281129297569098562223773301173412669671682236960275898623392088246459772699902819363244589647440320236306811431989035005366260683535515087372393491708510447553492126726909016645038522341161196229425818558147295114360941953495014443422654540108319883964631714548010856318334901552438059358948067688804846798523851333846490798071744063997168685932217886639656374943747174182724770051762681764923505132556664281286263236640298655813428059773785088894074280316571666532770834523269773271234133574632542809612101878650093713495752676821824971894153451515527985969703581766064976155251275070595728407836071673447642670007260108183078380360393534245400927902905034793994930867426782455949943192327615204594876619922465186674244970916403929974495451366377500669280607390223613972672971417360063875222370094455125009195295985492996126634526368919639018345757535322248006300267711184634862330921450306383093519965354788196855560706548170547822404889477844267838362815550999587219784792198275404546693468332338367851955267443911493523580021582042438263244191650593417675918782095778923678193117856224654386366302732957218810142321528931305491049258764791656168072364152419790850045236949413117802464288279005477505855033058991302056349616046219015871595647115625370539816031495610464328453722821326080933942654222078055848489612679135919689580238978134001355375960420332318932188101571460918399380770737632017807083738759182277000828308262199434949339593756040218602805816519779532147416467150979962372715848351845081891798332926954296009813170829260186146361532080049258430088279681174553308046792636194728306883363245615368628627733098745681664284935567935686001625921122725573616441506279629398509682068034131014740219810467220059970162709550368902918373748434489457221003142783240443399544567275604192929128576544683545673460599656099918585019529203604215898898543037703307575339798730358671745959563223306352472677033291467454853515563606108009649894206711123333253458691145385800639192008140428081988237843736063869172956134698330571981601102921303248260573891898050690285998130142696470196177292456016315014879147937462504416392374230306102968959927909022713514678646574760753933353234637561191171679149470354019284709035760788185520914050427338415732854213141428543084801336206635574580431851692971310553747826846299192967672272669104567638592427610586843341145533071905591513080046272866893005932732406167789401267749027734949941205948906448580936842026430843272321186582679460983673198134603890188083060283002873444770795658354618940256775619748423622720203601652503859142496277902115149537891200655144088774353940867740948443916265844958146239433191423669091279103181335896023570281996588656143344436207322691615779927940919282348290761175111246376993116066640884455674192068251375854207960020401915048335167368724020439036278894181185173845483414173942485547875676853351038229600341891490175360657023288601878229358250645255650934188709043431132954367710710569141746034466510586408347454094735129512199876777147556909704185400072815159999563720191700929452957064605129388250377368010606592938912777949455087494660149067961005171564909647680646458007064025571530203218691262892014793349141464074963101173446138664872925303738448147129493705291528738292891997604901953473219033181116070609276876557240915570469290713239568444808527996188424503854054255914200033778651515507864474238990948496055759880436473576047003336264391293214330651194690705846835051142050860786304958251979480586339575466516244819181991177657073871447757853556554243928616164502324396787935135196484719086857268821297524746724188166640968805050141254944003352532675360308358119423109787475145533038022428418198511896577648849069210542191710945219705494612220800315728720220374527692927916461296910338475586717318004203799996514125319667879106287344158965604373932527016886133860915502144505648663061319651268373056979337905121325466668836482243042469053716632675596005728470627128322326162788077201221752882410849706242867775245064456907594004387001692928210318420930823662090471588709004208702130834070774920837944115425415748210626621842890108146447860927995419611570552740674986786607734398765188988273397797664740858771062963606380134479200211832956948667386927556704019857771929561386217451622560948717946305804168060914844784659420256910196575140941488447098771103164243473128658239445175328699211446604756041632635671633586177598495921032263012084873225208430881749059279972931841339188502372124076844912397605735935007574892828011297182090994129133646607378840510742067020340813641091578264228994775922563959195186730646892207803097449489398243658896403269668702621071292674078872788256885977430543939493775732154991084148328182077402606771507329896016496196031685866638082136201009912743140023867713614991441044115629706350712861283715616113645731353062509839225620119435302122154872632065726922379650221763904706000390040664587037488726568495979238655740408721766291099851723877325823296086620333025693882723403752997873464568828844734049492590534584171769083262289318094291299724093149687934003046635893601642692446339599943483871217294432170146894453228932901737986071443718539125512783923234550805732330996846521594854613390323118688642287253889565037537985505802003825641531263148053029770478724490301771863199763188727391471512466420123393704660675925858581754497337578478884435777465183606340464767131974132641790286349702318260326031112578288732934021663590005268895734874523813239357656341767867810757702558543541607704396590003560903138290261649382303674482689291468813462154933324124326498921309508278053821043136561525442550988284748271989427838088491506158038437337633680774038193138930830497518899759056540327685656290884556580277703213772513032624869111794514129435994063831098231982108358165401591276620504629250034759410104802254287496100981242211220949816562427438073524223214907110664348066170089974252495614262691935154335750172391311463920148795409503115778955445325048797089352015122685328176317826040061536227798651430979383646972171042438998587680329424223638257078049658415256722442750507469297093191392907527451367867324273114186273919992973154580871491025127245034912292447777132547363278519269093483128282176325194692449771740424806238486955347245567693913075238321314676868517474991007846244304338642842236571948674445191459552673934049802993888520254670501206076073911138268286288701715779000809911571683697024610149403959148093262102318195610639744355669970826788995770542479438263162544004529815251611352600837932541170960822218772012613320011291111190801560317525447278545682273990999998350848381494021650226922830078680683996547642577975450043509664179096694677744906084863253514179787762960440332727075160585987661872840945791744206418473027603843743966962748253787493206438962221422656653859111841928822573694749510397694872371348361441333851403825045046256911598211615993974493700187315959460426062070253913292415964130916042051312589970126327144502165857711713758806745727881959541970565309032179337223622218829298702273699527103725766645493672272642560184563966491103038692338144496361845983515796572436674736660002222725716173606056776134546368408865057118525935119968506708859436781633597313505255613581509724971653823104282673538312201854433470432651445158784095315867425048262205285457075900243873704934791225969945112362632632069003260554996920902800100185603037686321350304066500520089009733558722598772452695510610601524618726972389810860112124289974891318602443421743443996682116560622381119161707433671612293628270410259021075748522799440952685453189194644475689720586497408137574255261090362549685111336613139658440627415996287867067036346479057488537876491737763687875815911322611010883029873150979647730230987439413320245244844295184372613882710060090923076643302325065936020378148800293539423455270763680675617937655209917574431547948743023144757654957610652132616937874327169743027807620140544644246040051205060594761460010456919047059563075327573949790154935835057548977361019440007217892318135909657694991780356858570338239654069213208101722497775106045195952774598228103949833034757056193258545752185884852346653029868168817502440159925999381149826781471849526924027865363976175118673622832675597871440950708839081535061156314978914877467398708278389915547000744840202199184329133877587638966839875626429354334411207105810890488352758172383275072159165318276814612914193241123512382303808853016337927341843346675598510346768972055009747904097755190568273274394334581260470197027588269453612792202982563496438664611031955224230278937363498099330020743812575941558243844439832006200715231457224856269390022258953854069756625885194832094819038270070481316732145898078605187440918210913189990079809790388024078916456844360215602968960825692605926327699185055727732564387156150191199551104906015376119178426810536824999298353932710849142354821784908800120141500477697519323910190811797769193607458736807480552546416801694145956760232116518542758502587584193655861490847120002115215978702736286851180958665799612981790532670752976506066451271024466926277613274957473808817481615609373264491498010519731718142198358181068567961587759293805424382328871247663058104282236760585989475252080309062638294989499280200556368266955324052118494193811816645132916213058258430938219735609482266871387677928066848096874472706522225212888575908247336854080389292062880613499935135246337555275730769980835457824536291696945508122010895191238327171631925113113568824287811068923606281082202400970669361909226639498048324443121490712841340295069828340796298591796588728479496758239802179667477149441604226820454963357605635837033117154769488346546687434162606028902907908448691075958623058454205319941615318213409908241718049570931473240663910184407850783724007754489714328514060939671950921835138630325255115802319920251715443963856802839603035158134750160458852309265160585015952977404953986700200532265627595913034132745874116790262158188954107664763276937534185960618199421009860105661780319507225073467814927463624693282804375912162102895820520243709081769002847778028478952777138644083092401353837859363456806246472352978035240156850294934672291400271910448822878851941048655382971078782617934250466978938098256421956589476196805754079762540054880915851956009758304859270424806135507374234444696345811615146781813057359499736803436996985460786430373234490942220029380952028246346346955579356018992767580611602577645976721457550098653377905942139182077338515896488675147924981905830794011260065797448482182996755943509301548333011701210169104207200448401332763337233368553212765210907056900763016433225038427950403814162634066057151317322275249277923755683746811302343453603784307445727769220038372334492419277124531103663198329468652869765606246408295632846051491945533243015154986943481196424038474158727974891575219024136323122893747950012702734371173922306053950648620388308053574136260555965307057529248168986645047523461116372275760223004863188070628083875050625466534049530680691783177589217137732738994474275901703446783262879933298824931060300391757466148028339450485501783666232824642130618709584289906197202715638320729662813612937206327138800363841819876615740744695052676859327820287403405595950552454970364790099817075298716470559332874943370700234629414468925643081912347003148985540538423662193911453259392914502262496496439395162151372813126667367847863758692353021987552773095832629543752375510621087830614321097482628541758123789811857607247778241851518035515883845193644820271797908970106339425848221674467983018930524068340533457358270631431047086667124013149297457343532765155555248864323390737782509388143211085318273866873226630765936961463474263020654269918826869680794635426529563550607432136183776517770677153727648152758991150576299754709435207359276586516524857278552078749453957081945368444751193559702092086550154740307439771368220038263535731118532077930721881834838401111721974350521019279498610533022871950525494806766828954595509439242772028928304736608506006883994375617630589393878495188549492901940394289923159148683408412748759333738810495158807656624505741150845007168286953107732955784550963749735692299697215856925949006581678473250360439805413652446395123147405979881886849235700152879494482733351244579513766918259711081902644538060858403516568799005942779293625294802507416238428432482223787929686031062195104045408273967258129898118215323837580116717964799029053233407303021449947105911677337317956798114715822816237536050058786023356768224367315237029265563748574680754086228115777213265128842337665959549310951205862195831711017832255592972507352312047626791477799676111737808358731069454729410578088809615598151369113008978146587914114768108759523173948553343445843306087087669050943319721346679902671922235060224468579635063204375974846816853044564347855231812043684338824527718792586697389037302526567506494436283251443654533353420339137777601875371866692725091782724132834152928469242827454582873858538737651529354477723481948139439402892706770286163523256914229393480767861280878530657438872856897640722706421907448534805027251828387746026408707510465422242234300115589294880236904523089927214124631702067795466241311647018579075979742472171815617672934444274099776933414984774391873755470402496099754752875464439064878618188243956091824793810799671124345606886006624228403417805992216512459575958208247209807006877603029074566632715598270120396342832449622250470021063304255202962764107449529589898508796710651609601901959884646000104225234822385073367559563045003998016652035073679088415831118736473123937978455666418987972690558692552378776627155277267413775025808469298814665259939395206255275683330141338721667318430319136009502976766973306362474019824493475589410833101966380298740571184483211430451427108885011242885382886739051041428224565193097148685945066193710987688322436707634892299846834575420899345452383916736613246427609111420160258599843871581957320278849623943834746717492275749190640655175519632165414756600265465523606388370162271499229189809620927302702237541380105999001259060025589707616819422188344996563307513694462717555276271086877121899276118936408249127765065610708620177799880321646514947742342108282540981570602487304593262428899231797873268913704794744431134494161940035109997132547284605673649209956328662098040089125990856084335394087573982644188544907290095122428781022875293530462647506851213312370860953955131521070682136984377519171612941065159057815626610685434306905070831361653343181907842027952517998527248908552004205516412719250468426563367475043881739147007804171298866720072584751977728405968420939771871502711555655877471164235522549041419635977697559720992521098729512934733659862475380924489175239125310880994146040620904744995232861135479922403108747074903237703357419863181528061365690776384139404310006305264113125700428967216282801366975321954829065815437194543380579239713990759621231849810365290460663105148715117937780885252440141310723513029468153420912746655529618262060570311211395158532035998278311631606887115010831998919158649639020462040406230726533816152716994510520731054821564355739938376088634836693614647026978459946528016601226930523367690074106804047878754390201704803763987016558567256169471561907752359898617259795614977266903704061724778681033727404238336791606865483380749370959337940083852956465830298932477129093006062564911488645462880618016217994984383498665853095883018715986865563997195027623120175320913462834253198288795994071089848547274251942196166226540383014011848125848633315491696859713000405073078496871154380509986059497711428071148884179203121160864967462906530246687213569245265197300410364782448584173591375101138883961910297702926925587832283810971289556717194289984897104344599944566030436534321230134944569431041103142969687745615339463782086798960371357113071598643363366875070173713712526363809138013856703408849325339365508163271522799423890807018112909816143589116256540031512049642569304016095858125803420872065292859731555081308860464576084232888102533922687037649395048946183431714241850616782996803590421249027305133908420256408458104439586918761405511855348460575235889990980965495710178354909037341890956804866879915508200771415737797776965466115537581351313861282326026112571474011453741425136771668866497134536040949997945801451858962890856308136037596526001525467633728989978349533145841151823214404659257129554142363724706450840748274854209295975770349627251558322325808550416152548451761366354814501667158449624892512900725108557420280911294939165667233048938776097360676200228838131189806932077442854738751697804502327427415119419798685424440400363778595446595181378083929187202285659635718357137771656194154666231315055936542054708277573497919869142529974253647466962781893641616236197078910933601162736203178168142229342093751405943670029467816921524193902823350366449151578700271619047486017762330531660836539915990643830223455339240277344101836330054097259337060264367938141609747836347776438521773944704897502129919810631609228970589370731629093260563976580955220111600530528782563848089961194305917184561106572443375501471701089747237725018845579595332808215788423084593236475097775674446096429025047827369391271367388884389093733012646197850351782886857645344944929583298133531825924795433187503543188490492446946112823403808705311801826601329685673629773713245899167386847598090956901593568601245257560732170496445688034552530495947984752140475667719914681918765271449785620777565330237481630733957565810173310227497335514337112170680098248005493578236515088490611607749027940758250629034044338962857249778032746326022573179948632141240344024525360204009955820796015007779914475869629068151644949855137126543211735524124512429596919165218878070545682376263358444486182430935816531778859763476499611584953623155140524268040625248964500339600515177955689953714281546513487196261083236166535846408352084709297663173932826134972248243355558128919432622796444719567151583141643384583264609693518292079510110835509786417337331254876181970466355561938666322140931093264496133350319140687405080438372053120982190766151725971403065412052704018179617377248247310887385267036700306077735629737061101595697309618327698122220988361882869821990939193688510080852051330690535920288844278319968719639220599437451696155698110259267914949609415463876592334148016358257002039505365971746542024949011191493833114454368483676922102382803695351757651056379933836509822488335526101013762075090539711396853534845748792675310980239773659596221296323505130260918552958328516536333460914921356086560362210988020013064199420658565607625800171555452857897004770353945833379851951624675324832582733606429908218170571615259802626853867845528375284325119228346654688011681415358065711545679038134653538519019303295646976948628176892917842333176314998833996399702385191569585065057978338333136730383677537719578771276387649078210332839751468474771879486332398489848508648502448511618782876473348351724938580054568505298278020599388717623521070468495926672923154845229175896395473043298521183677633061943219718583665734503550897935139474211317037893979201838665676318264730038396175728705445541362165310050050653349490829572516675318321489866764718317201913111642818678719081578901646579847206306646203276850671674055667648938913171753928735843772630349227856417962282665790824598690242769034110382410658093641242038856126846448577176792807571814054460314202157145852338761628803417415138390284184179829321137267034801737442271825479193120774925414623749680461752725168926197305178981562605384679538139603042203309952393847647082835576200918309006620758387146249019284370385883705623256583118894922329901380564622767101398215255732013140161764522006019297353149324211744381301324068808494103451912470507496648520535169761525082246127053139605035094214041134191106266031144142555405336244103124883433365208885832759579505588201264590825313369325791326367120978583475595808930668559627034843981134877127800329033951394955984342964420406313734692444719190986331249356378531328651173156235647959074124119470276309563228840547086855772225866511181181431784559288133955017511142254815051902757112683073025453904615329891394969996106192093189872630568633136910019877801926390346867836769350733907204410378018212297137620695190744330618678662898646450738214700064705690707113028796462085636395732665226797948392711613380098097295542924745610571200557410565556339859187821614377088947148412705074226326284826751749677423830650993259888240714266450974355053076517987809427566225846316061174182486436969720102393368397757033172306204487582325364126979103017933440549572248103435174691036114491467062226185073936351846116426846726703961658708675932814768410124986406276872072301308322943898898146970314829675289912141898809192566416348243455354629301906869818995639506340246771444857419528463472166598122366412643698567365518467472886124498491185443025909705101231899939695237031639339478672757854160519958059300908035216608924783227442954963957082674492097101536993122476700721997668884185280074756483124703703084395592790830024773492723157252708496574363638988128190656218796425806961698588833696234424101021919946537720653726414728029146786970764598708073786037323895452782346026570578604758518262396884874346878076600165511412344360262253626263073410950342459619458871670236711630601393946233697417546054843749135224198962095590236866294579961509616568633442872249056939685342690551718234670207091458784409380437093903996982681003766596741237443730373740519744647997490612250431373624737325885023471971158506891442680781806465971596343599808300985111412991641047960563716064761027549956022674182348080821956538437155225083674093207685723945422428765988973947309694812893781047886527558727690890953302810518852951292667651329709447838503911408327617989936691912994667694750084198712593510707055490225093995682332568294445713292274418068190661314273289664752311122641381342002886286133902531700904702628251020498147382149846885829594527404811785786647056183509386462573708487842295298436467068917222155528454461276934804996255217967333140953330546113287338694186377654600749120899658080791718354097090000475396120500041241145081768375474947339559882430813701204180734624082416041567926042976067133769420888000915070460229522288199114844485037176885343692273609090910570065247603885025722847182441920234151236239921265294232521604550099451331992385768902750060853596888094616411148234082423674494622714862496586416027030922015515809331833746345193183827245247515498641397827450851227189043658536286851843746031081021140533991098015783201399740688821364688006269389884360285695848425166658916698657720273210583126152346038761798200620363548251339202027447453365319835577690837445955469505269633781458836696776748627583133812306781048674772957279100720986888052512563085247218323287220825299931914302769630653949701374046274243465402695706890788803633539009503557792275611336032527751568354780947935697328865293857497714437407221060402175453276757680691482165777281448745361129530468559197540769439745620436642919065963395548864017305966849544286831844177222043367920770547665820407943096266455938386793355184348077299829531108669165375371217080768459559139193501184838410204252161590381497320869600057357529176732216133134166747756585208011348291112450180136443408324102139122242781807077336039999833027188827128694533494284800220358138620446413641243722817473502973849577818885718033242910890293498031965138683011689697589632647271377542293111212663323829016046442598591113604189226345085866592913697828826158308563766256983386260848409677181534664485352779823074835039508364799234705082661339435226128876318682105949069226081101750353104619636319663061641304182008984758239957458409180697699800585437397111345250277082570435210894244457723482443698101957878714432489212106959954056462851286330606249626225330475156892069230443778697897951566061661217768341064913479682902931858183544876626900996207549727589653725571810392044135717949318586739848484592387493910399062399291674048378722722036343576838423928590948501912713544377052000061643495445539828190226072672107503633444806011666338923909584670687367426350358984963058745684839599942620946483602384067396891320348162481563306603923451257950851293483414246279026859953004848767825198076177787831483939905624039949968849059907215366703550870461301660889768429858982277729312438984844386185525082778412725237049084002089276394330626910106701170766989464645708228249586057391445776242316108613441097188505876992114769253194192641608554957647802391472190251994607794094035972447084820307029485073638246872119901082292342014817741657162954674621408264372107448068111198334832198400250457578412947355781818202011151163350323970603541254648254529172030088345116810906850514047426138424471039609058502099780380911720576381845988358155524916451189255065523700398588099435339989537225031981921964561029330281039780049876287123750772276480636907111480075575901859953919598472616615800669220888571186679438898060802341440708339523398355547278177314827127207388262545965375554475041074732791982574923111865237218013060109173854482393945098751731237865847432436515451331557632874593148584429237484527368325544464747926557409568268489815013129759802472711479684429114964462186375931468781766555865496752035970790775936276758397626009793790209842509698575913507248782502578770818039958728324191241458306263163987393804876004400067200869057292537480678556372564726825337606576654318312895968124472910507412033739527444357852970062544230402758706727628766224578996873224179115757526814105237385877551973352077331039972608396479240942084882188467204730632487645243028123155144638999509884830112942710833843876192424145771816267627454273193632259581041058764404202550688714945446581043281897020892135561490653832111597978718695946082413844859634077146503183500021612881056604851363040470138492909463195219190212274736220730864820155636784352074939580963032831647312902820692679635854802972872617864239090450872890037124547094041018260817267701593368096610161235997899685969735021117435197411652174769654245592194363120569020213172055785635739335879127529866451167939589432203083285947816528695630248231753241045606248607959264071641519650596404001274974003509659201287028342968989510796187567068759219702104707989944024763595244577847648923025665009943000992744609879833325146768078494119261177992384320628696308368936063960012188108439187803779713897570590839550237218742442012612595992732772886922846770455596263068054743555357157214624860612075842415481283941153970174981417581536977102030900659684821988544106511621425271841583542011806252236879841825911274452895736939133640918940616152035505240814666710776318149068666841916351103314664361595941315836180038330994483946141119522622082663327129020356878289591520154085696113096386684016245966343238715850096328760835867933550337202307467390291069017319858387498429570707338633801111028616304772386340592928423550152375931533990873366705465141572129141830826697654704313970704335077088932138515891395992053201656462257289295498931778486502149076680517073619974341645835275932508476905029350955841408336489056034463551985837071037076352914517492189606508562057573585608222009937250673951127674612914255494937159490643607688719934757555668488937888519108495995232043348329709316859504431609480769916182037375662743798836045946587217389708066448626759699349661854180107445955926364661266217330491399249130286439748497815969862189052715456705123668067285257651764236355329974578502316126206568574167866270921394577224772029829002489249210786631757090059081567794541956156485307259506582549430792260595107137954445477348808488327114647419835205293147367010852311553747768528779436307386020006149906277442606118715994909427000804125731707461627015545452974053115822699739140694430757579145760907871793710545948075444580193977156479123956081781854584195249195666312375317279984903581795869906159010910588690826538249069825612950456709503286906418215984573249300582255455576213344561045033696929164960850164563260484978882773051643213713085066774066495173661887279362239158127958601158193225684247709648207232364123598941968623248488762792075476575474040007684081782810134105255344144882150347592735072416864522024793474276346496928335097609933925986169972062585135908991318287839764239707486856612291458920547486502012601904774299218455557587195958078326142426719894934649856255480603598437791449912024042008273964667249462681837034878269073253274137445202320167011184144498358993101303313602771144806426186688957280039637469704946030248921071050507873798197467211478047021985035820512696517706135932934911948911867330664056978315165306472548243945321715119976723400899993971121828246839539768542199485895294046216822793504663015894901254484571885317558695587701906999054084133516117712223814006319629786014505721053156327251634551430795027447216256884579518036004231836872741902136133229119995700125942005089283731420109858799863015948024016389873119296094641896110260262034256126050549761376134324371086008408165163897537654316753684531525104687099154598538251318360812381602885976631129833513418276884394071276939215212247066346213399034992002654051641443546218609941530058639340372074195314189704916747312363016180518492689066832962987139012588516812678048740017607233473662793504110338183334358215164916464634086514716532457221043898291372880778350493038382868019606744287959891419609664463476685968084136610420199318158628586993885492781986481195690215544575585994507601563851498619750443376487252228164214614652483069984774385161427243606677488291684855841872463447633806632247112778765285338785340775335200249651807475814263253105070890911696072826260485943407513804517805351297500516468059143534741408677606731787863681648300791803192645036340315839585836842842930302606932224657089877551007257301150209625990532139076847666035936295958702226226489121308105320995999749094492034563498848759525919166477394407193019722597994972015738938297450617531452997876538774018238315076177151612217503215123355493464074912599877439545187138983459642018394055483975665210309914728026024762146722857877858161030131430738065231868406184493386794813663669428347338576157615064998073195931169373412970799249650060349936284186677284287903562902585406786012612051623384061326251977623303188393297716969370251498675582863523150293138956590277385389683002719960852435195579700938940979744462165221456315294590438846282336331598824779043017654944119900454788329015232892239518363619247554403379155386622609281626909400876939965068622637903136079677814973033283031433527316871368133956865027886209754723480652426675401092407247604578334303489418630951030172916707444204785807309743450007321966615715452501912678237600734982028529911434809263981128269471605624513347974953837123984997540588961932478410592549499633128720245077473835625563383507566489792848450940610577408530063925799835357356060502281976681646368491950876346952792581405962794969366778536224442578340103578693848791533585314592872366961860895203422724144967223560793096766494706782058622540902923602934174679107101427492939584826904114755693381618694316870194965971536369468142690766088483391060619748113097306287868394845645120257095794942238418187121967374283868470269175862375621829909180192998781665741569552019001692582252617172546133096565182230673105523343537135883690340286760666386301589148076188561441076319223779290213845778505161975797960541701199302154159159901875204950099741650500183146469662512229306474248665742880694312610562232635352536643036209722420431371976269754347381504118116651500702231128388043740686612863468249568712514066272057669473760366570496451576457200211343878966826763844359180467296732064090930673459030159308042168874827609544262162434437375666432170338098065811187142702650206002786573405695330007915000193509785936507496163139510164616977296995600094452315091616965434439511707282401852621360956645710009102603549924245867614392208425029611533951933280323229449902651453929909375219135898940402118507978488648092917122190956426169877522186255518476717499171737303724771731368288362563379318410445924477480082816590389190619102311985815237048185005303256423655194712313491981400289460551097037120141461879133830207240778488401680051329439322660500776370356202721981113112204448519850000760904710132009561376437640301590072261319032754917494171147332851113694181827451556217046352535518635806715563671839072103491413151654749607109940994401052487052839002293458595629029508627593105333518975128551953900162437344044030061044452632969983663239850690506176161962694922515567547831858591623164514244106054455439547563520622665856038078309291188043116237738934658700541034058756981318682427461691309693098197200460412300508433575593719168199380217493243622323652081662774458505038636249618817484141708145207067814912839807632256924911891000016336883603183487126323299651675247593814844177117599614410009819586446757156823151997050816689403625132973182990530751185359920487675841447384299253149953882118500905068377910161089648314280180826720007447846837223680672350376518215567792208489779944644687943808114103934407798009146847717600998840377893270130577202707162579776713801800930127210118668731505237773197685864455091641160245795426470078423117618306884598303491071649369616013221574967985768289781765656947365717835590637974462522895103716977636914354930713142504618232404502450714552989101727072484104601560238276897357392949347641959298654903956716267775042174939438574989870243025360736100066504036211177348400327507691239273647436345576864727230490216589707995994054640416727136287444787525697180125993714633640935043105020063491756869707694214143954091218008206698296212914249003304312639417304955260540310810116925442058256203983627833472341300806876609119982162555389295785930361212411839554528818071597032066488698092352965838054161216399022968170589888754314138378083700174469067167317563977801846615712806021465935177574436381103330304659333897689385530834046625024665276977530463143879456066142518620464892803727994563648659400592989066149013638854421289448338801668183591460021216852858367105555675221712007475700531142979216045503136134564482140612788412054967019762132634078533702763483761589041122986847570489197540336298106387938012309006183573919128059636040375076711712742316065787005637779378837254586105156565477571674157809937457950607665640483218759439074672379072132748669638220370380220591114109121779758916775892893908060040966294500433967283276944113883670406127099012105425259129914549763302761571735120735983717552191484130921943574018506397959922151228198332641313438845689393381978002493587243787757159628197329910995391026858003229476068301758178339312339525226362537995984113552767571711484867885527096682230094576133191174444768873188758170965436947038328099665007497754088878364075663602770237441852634120093874982114687989497564246163469117922101031445887027836063860368150113073844319104370037329167146604370099748919453088656345283403303542691241310882863244334891870996807172760961586057358125204822263792837958858692082678195771233721682804547425322312347617396088389969539786848328293078440116643095475650174226191031817382438226005804322312601057227747192564047095693183485570271685919061027080254676450707190401136529284210451678366732880745708115307980912672371610720959259431806010756134892996235356522173459525520678000180496048756753352052744656679908278417626022988954450713803019025610720740972560463228980180358186799823073911219523573799419314708868822278221169161098641783875531308113540003836719806300430491433938181079740887113545790977127661604944288394820063633075759122692661890824304334110351688471743899491320827881771163817936880620400789192904094111667550632135710643041264454109318759507042907413260336982355722971622876898955123953848793043516278545610670768621470193941136336613105136153149475918524052882131696316479661404813829729721682207473476945655325912955343434541454715103759811746312230152161464653486038089197432634780087405380268087305955031941332433200520779211750816459755054573933178381292760578875210275134472309694889444985635055860936631333713258095795393215647412303671572219902282525309166234686420719424642102332629850912226616459673474002308501370985619576000171003003471283668626851822295570884518309940006759660559396304741621172526321515003532701425948790889566552468169279622955656687304408441009689136892914065216779781129734358737345659127705641401319682211545639059244182808992821334254298123253563670164621758083405710450131676605595018432325459906195652947583776885419856074943369231613861878254940289086347564876165631891788328952353629778103885138947622363454496617256089155915519879496395710581781266484912478186136880595074637771643222742242990145538568325351535133223718733351136604957091871740639201912666407109140255907912168660037804465629463556660711826462525111962614078084454997748697835689974976626251104771820498999836103520003156834243363177918248799839040527397830596370768575652909034870070765761030718115389593339073219565768649183776237246784621314554261176038804783220072455500133881670921540680648405259333308767838817521207567575185628384679960452888726130395344244909187003517493992616263751738886504312164571340375518502251670966156787518117146450964396018162377006205733642141411281101141404196573072252406455293971801582425277804150230005342134247108063354018778580901538505398964489263358949236759494471781442234924726322892896414052145003941260437213735755867774095320511557601863377346342852021416675188480794757643477462963048172157454851679988315112306428508460533379896368879847023059391891694222430380010600616021603198079666393331734360970220066014993310021336904549484468229984803130581944378541937222838415485471619889443864278764401291620886714770346018866519106352449488300951505302214078832695542843543010899417237832674688866273519789271786533021089292124776849671250254334770310282429810112635671256268480374171809987201680553048479876865439898759521259559952780769237826943083720619404163060158774429162183865890506292536680054498148077690318303018191173054037317552351364425391433371780154680436802330465270657273848217707038146643736179527440629068651663876504618498441241214218094923272569404434299511143445943247063481303847237237871140612152471746838433336022684709177651096565594533201504196517864374908254210496767617044334005585257902512090045710950777347441624162615966146795928279952733220947589889848632758769101944702935369915764249968956950144231184085474488504108699544448349602248230308231667514119003394735131159426169289657314151052479555026502414204789895170699313365475102068015120223391180120441990372863899079292087474192059783762293851684163304960310445064371574098331651141542111188159839863474738534156825769617900312184246586244909281388264184406792352028213791890210246990021304901203822201251494832369485323043776358200982302338135512224536272226869653619623261000955041212780964974342445718832653368729204445488322518711572871296755563258791492011708474623307092195005503079063945416616140994706871204961360040516306296411857324896300713365795415914082294114232964584664159195101005050469447322443397878672882993690981033985925882312044994317746512838231729221987846266563743685775815022453951491272272856458240379049316523806422630108966323501843611146501314847196232065057951260199062198885588925635207283423440359797655008978875261529333927004510131867939900835536453179215834271240592068276929220442804513613685702220193832804617078582525651470911270798027419294108196857524585123282374870024007413885879590748079233092211256692199049354859358956577583805864699348920989977975584128003435229699839194214670334707315999252012996888255135509339703868011059786172595604998528371242316208411427510251600385473519561319913159337568732119952593733689753112010150869145620811127890600508213111899104789821792830147941385227438991669499100857417261005304325873891232113983177221843470013095853486265105152606220118405522126827541046403186772092430667065005124960123223664812364830462431828708994377556284639059258193717388484960426040283164006014392959952328112874142882945603106501505628539581604023667499455937664764772960666275093747819564869996892326551180347738910007537348666685471121904589407413851997117753066590868877255829842882578160991132524903283921453240071641002596398757002322158205766291719737494786830009825342940923798842772432692400577297127523462860214141710967772531220069427296166936956388843439376336326227305895066722518628812452246331702093971363227576791344327635392428583283443876779883033203334419274363895682376900116093307309005563679237999190074045787993911262373632241614786005564577809359573696375416536427230840183687148144737677354941705732316898233086193944158175113716495420880437524062926568020657388629249925745946327323511335433450643344291918952812425834319997114146158737788324222485372908302987524622519534327367283514456823096151036647283112742075220764325471424154223254747085483707343339555200903304610148911788735850640721975293794725287510537573101240582596358688908076137831488317215116453725131602823316899956871891242226775904651740053687849880668172323853890472944170383197058404135740395706221959374051113755887225146885794349731292721001510011148282133210695719000902762530004752768766074857711241571071522305372233382113104644333470555524528923367064349415034806141365919026069899950446036029945155111266659535013685509583267162003968729703888595533495822479437167626015520462579758837722284731026337508500943008409209760777225295021638836493282083687783171672434524629343341879425427738609232843544654893360210355275819264268521360505153930713867530826163686894495207395959240516714662703263418218579400926659484338800804503438436847255438047992297529027745618112595639928020682878348254996844821336910898641555240671923354208112675878027809663800380096253398764567134952991124701587111142925349250898716090161001536337722518585977099426776775152718738882063056221921553909618771473445663476165667738379652579919208168546506326621015459323040073663213956793653848047142703022560023458411460315145349224121052666437814970054812624500462446557083448983074628669224463179576980100173450888642929045958489320811516363527667326036944385866300106854937634945545147525221905406958783657138360612795946619494470632175345905948498005313617215945630520152519866996056576770468445032478731642493701345014561758506651835195650273532580345291554173224340534337555998346275906174011987521045502710226413328270361492933472377053191466715389354951713813116812905455089287516822556160295800270887313233410282990901381225400311697900662619709544305474104519532651133455365609621562969926441097051432324562474796299910122063389699261031395113014776248363557404298171592144715201061688044508751379774714730387845439507741784297999988371483402717684863946177194285310060396971462795101091108369164887554303065638527884985846341871536259204439033392449421498816120272129335024465405798400983988388564689355034623517691772008780860374868609676727550002384786843243837248119108051504487436888163151347737024354404967411097998693803342153998648980118081498468890604821761818826830615997780677829996801100381313862865651339751433651450260055733485576764877411088632025363110356078379324945469742106523006485468242327591663163858713289774324763709490297859522597954256762410244841158789357303615260229285496545473020263028118247924883891825952069185911705577034712034959111730704268974256517112943706212017520706412581152244124639795033312395552752027844893559732630896291834764907732409540772179651768773822750819041212065542471823781595391762968324440935490050379128283899173141638268433596934061149644583877982288664556898673725499735308903138730006566936818956694069887285837182748996114721524102134675464192597107974358517750544649548842918628449643888828786684150335104540810890330042121036928594338477881272713965097681741648793132122243913611768749150883238246030680354473423030893415728146353435023834974717289472838561628484498958351811144738270750309266496166261982601075836442414592115723802026740679677954031681556288419451211738387627315110342399838888848627977708300799958802615051306390587026355876069891578822262730274884590570465051135834708393878910451941775340886049349770719054729361700877331769164252828864421650175026122135142115268057979165412184682118456869457867814320757671986726013309019470417622884692359573186633415883035513725236655962159970237252441028330662074560214028172249119982115409580784842211744626224564157689502748699759562858322748616728011820772874122283388911385891610535145330501048270368442066099128671302574401427234947506355818936654675984210686915715853812173754503167548441877405838392511271949485911598560354372518560184548345978079014762576848384704643016128030630474816267919172009295440065298809210872519668385261982848798116799562618142749589652886883041801856519014941848985361458820189699635888927160913069422339883868383630849775232892485562615542989911675910661495942459805734377805108319426199949486002942643581041190105484822807544253929744119583369549254485284593376309934946617196122712689073178989200525045995346759148604404406183579319796147064306949429460136324949854132703140545372016858632141149130137802120856773025439672597908870062002731842181061813725164053732680772144586161582209759321792188382630712426383814008198301114026035080232141571422685811797722433234948972333694083664576159892534015059102656810137996791223427188509201849564211932234080076091270868835933407461699945574521899034576722591151204349885037327983095514878553565848400223632152901257776376093493941041117462185990871914849858366888689949976969806546498696433619675270918781896921171859248421635699587736485287077512926379335937143277848937507816138413530536529471910733142656195302823965990872923985246455849682900431976303985222796667287986392704505845593225773174070199272451880677454341941901410380566487560443632656508769244574420270677584193035103459927924229848403562466350729298824280242286291943231871115592105475921303276572397537539349608783207597467660957000592812421001491149699480307682271925228454767046761513994886385770499932651297057369942538254392472522267294099946496415641485386399551187237829980992791365439833185393446427739641335888865127048407771255908832170635227519189496467315139021103683526963336809182076183849405935482742225565426411737632985110172743286286548717096873940434185767238106080199692769834760164557535444625771385786137743330245447489280111720569306048118378575708068505905733379328390742026439681352953143332116374563640778833720827637957863467814332129508799501415077442336575083077308500188452002990531720312895410605373191806284212580820926785116790887861493399975546808851835316066929580910714251661701152206375811021714551319204394322458157127866994277277206210390509416988755041331555931808923636066761801496568987739239815051963208688178926044762779407126464265178007473257723480234842544526777732173924173707108300830348604530073439000582179399282778709602809375837454523017641896156783626483484109982123541494073312800437528548882519156573097252782543271840388195178263331444452863209960682545171483293150396079356561344345688703856176094286913242171219956657967770143381531179069491130762846055605596197142727747010777471116595151984713544251789902420254433773817004054209115034510656911869741688306777841549224076477446005575466006467972163151605442304196836837360077278117418144121800770709187889984642960410173557299058718917877017859778951501119381946653561529274312038487661402401208996620876646778021828819499067518562595781389672532251574986714772289522046474610524258436602577309307487023214196139659021379974951042781198568708794559750683303850784468605779476053472220145878671493398584851353491610735784814765794913775344205375170726034265079576939697440970166967310122703485466908963482309677839894347796948283772990216806505698755750895694890114456974115836835084014563129781816054976521849697021963451597074160597606588970979968968423104656261128524585703353977242139295137965411940207318088803068296509017038513399914823116492197266591567751935539228282391497369420072160356207703072264227489543902691870990499553518879954110795012235402359007722575420061743774687437982284171374821500345702680629005372657476848390411793779138592125036465392192127029201534169174995284641645251887214663615445406306896149411783291003809343218272669370843103226868103377682595331436693454746433962150932634940616277555026581689344460544402189740353083343486825221192725575163174086862113635680361996293555613279602912211958349278981927587548242623963901889649573382909635154736504680702736657142868393081720748879373072969252903010438189298645372126269167235894358999515743659663392252722144402740636637080165850381275871978963177719435054801833426719863706908355809619244502631522912854393682719936735979158588050413768736463884410023355862767626538015659950068637202866953341985662054366913625438154214539489961565456203858438733234692786905846840791806940544204731164826157879747007897930537897469265829893496036512609034715968678496706144954327392839007483393281739380776240243476285685044223440197185427569552344862528696590372500293739755692236539525821356802149745910414567592802604906261175191377254513566435836619434049717552694739165864307228203255877398367194520840210163220892265923510078820208758018621106299104910832423265629085296380048383756543752734991688952949077775791276596152550623029040189425643388711731871784582926975796442108098020725859396995140950974534472532050269757028238683952270817514198681558922257297549915126625942115456905057930396613149126769031514341006240292275110776882088592384811674365934380224927288575004219580689227165146532944500029360646267710530148249257653395248839982515223404292594019089033616112788294394825050306029222213616777139638846703341322185608191779819539442816094511055682998655045369793979110345444004772327806051359850579873000507831817910544359168658888396470951388575581232962636493544903809862271847891771691718337651889450628280818214589398872279772532786762272152797439491584855784120294204391149795779679492399740456789658093299673389603959981693797642203930536838830471091569637693030450119801477525953911891394576894251327124632965861969268814959043786263237532296316344964241383419828217150011875176249624990764615357863910593141444928699390868782072503558893718877775298560058859255473919502910239818373277026203140928742509309434968531613647102711111135283206989131922956824841160721507831480730626246855267720735926596554172225336193129722597735107404651421859383439581814193438170253697285706529493863203586455471320362053082850927504162327858291279138291535684777842338960418144410949147524286643216601089566114807957443702355889324818100802438704343066600069696476704410986581472779316815792190871942079147004278063797577548834019048528024879008294233305430887871649427472939762436888908661851238198367223230977311607390556319422003377918235972088355123441071240842523765214704387260364634813127686357603568771677399815115668650753588687575670925248448710595721034144993063438697924367365357192090594497881494037779073611340908354890557553460377081504026495121159788347577066008537146381894693622486438491631862320822758911079681447056346312374293814067685009646131884002153928962984271451778687633831194261694060404462464239100594723702200294028032589565012670022383045908302797867141575851630637701794561526860493036425155407386909829504314195168716822950838178275229864051937943965139075669543143176239424703028272294399426035171706158914691153361776734977381656419198700712256922699702343652046066742144197326337282158254988622555747096618739467519575663835705402473400741921587577888779613880544970924418256596588777042715590960389301915367483512483541281698194028325753005186665924513826603569125667078591622089045279796056661234561833046306844685296247708497215660506220308873844743935414766763329275474497638417894661357606546335124936801536971921934584619726087086108477373342636727747980178855470113858416353090737908512429650111941525798711533618854676411867418027512497741416733750737685503863811157974963585569914846595534054119695513086670905605605178713674815967219471793903450927848106273631445386271436823889743785825043700534691246735444840187610992893487801198041964521684834777870045615968462650980178595021610906675885330368575443992507753206433849874437027950252285253262809774259155941566243683899675639621710626519376455555280445692608863962664749093763861931551449045290135184932746100185717767439426426222078833119057719891812855713301374956736068284404652413508460219159882423252327853331217023449557503784985717612035858128801032067285787771941362241081912604331777437075948697165588904497290201799133981904921824844248371506756059362034412188162553455702863260478141249688528116108299862864932984446604630129645177580909355896206103851935122027856225425619326349155651205931841336156192675200804099420107664309961908320824003219309877819592452799694649323557953922262192902779598372655620119807190969973037561400027493359164630645945904267835013666040409305582672478177592944327498683286139482451496845006900917256201239110194501890734426310424329234005134504692968703892059457410318919818027229867591288715121939759520474003816734357765385599526531186270941882625890543770998951930673084211813269445392138458633515980881077556452983638740752902525749641124138056036757417192812617107213056162657295109384807820170138350245353997410196514642682100417642561964171286427055629867687897709144423863295231968696756802091666206269639769611661973425292343694473795600033035383199057149036022146897148545371120879393690818603938441454426934099624019747730373463654116062874763472448351570401168542779446765015990866671322977802030434543814785586305715048879088292721570337138587138444884351278344893273465042000463716351619811317521346470388429183743131566489233171067772077552818740165842111443134924981833540152165484134524049875918130785626907377559769309485320192663011601709891352770111651022423093122645103479073899363888044632433319613506955838267985697485853871419765292116585895815398865052116914276569075979911154427374835300626706838134142049748453490266434202564974978768938124290916566236268999378138752353085314685276885667254526909559109321613593381913710007089299484923338352620188526855926412808574410688642257094814674528988557703918169583985876377594256003200279074321296626429565326928252634426209945812001086958266744754159666288249713910871403336200932523351538692087705755789655122595999221303345835827235857820843568074382659319867720382196833181736573738526848724447273817865764079083911422989005786930926805807446521527131824940876636914786093442408683645349587721312637732274377521602840042218155635018826371700078498216612439628449564878239577926346605109197060056789751181031293914058509296737831956375189388777645033889581292606628581606412080222826901081611582155466397974318425937420510598873977697134793834419518704164425623704338643274528310100009428267334670195309894435654514295665650783308151534142387932575001008342782622832946169847718953881611308645182159685347481333494599507223441669397596037698480537280533865860796209480002290171513145921470609863536196322076452231708412532321862008675049363879015343060577051385544490651301346140517872213016489964559906223008173696839901781217834446020200488009548630809516038714195656757981135393463879620042576640100218408625593104218049457376354840243903282303322780733468454851053658115322362292208375138261417712983045703759149712847916339748375136290239429454525994335869700770463665111269972394004262620769439788850058540080206328336415352279087780949577963518839197773960525929801789986089635077113583931592382138089841847574859885762752098825587153561084954291549202194557648629783217334846072124243768091975357791707028036807824828258335102329064578693667852864713069557143886477561197663419623637637737654674201468651885778915699777379832382997615143022000881220167729815580896274827826564214164764920759094633333947695700892859180261307305793647492256601779574425963916002558695290606814594403832720333233328345393986930443447565896758057821089001948429587318757494821165446499775141437076749951006134913810544892755312393791100688917779760698622571468439361712750906393019298401093164737038015355548559627939374931519267124616289515738426864610989123714440615393330773797591162146198626123163970885945496567403119102845417705752774912242103796259565123881938307223555315873713022943893319234885796533849376017848541762050249530014639016982654222242507425413024389340176117447825375087676754949032292414575496134931732197545703384068728129091777020037663212773260520719276159832375582925226556970292592473773820896964577737614645067714213440246294494761727411546085947410572831830653627884139771076000354204511870069269705894658713557424406267931059847498019664865678839761271688724098565268084974371363216700718419648608490402289704669427724253476538026065468520384339408901939625374431318891930783210537055409688616168288788155212979304500199740416323639863764137316654464025899734660689491327687041800891046054604568140339513308923836826580335927445968286064761727781253282911666162929153123700783717211748265088507906777140141584682784365338295677580149137596580855900475244800686604771829163843214099588204473956520005835082858360943310412456947294924344306014937298222472652774959785806820354162349585807282568685347942733383827577403861718906868134913012338577595787704716731282346706088768412984387319618089883312157235487611960039218306285880431207684848902966670390020708730269245237552709675044597061105515970834875486439519939368537153680107432894893675348091875421229021883398376341515391383680566654687040351952929417402659935573669938894712126263591738427928853391781747675334115185113330927922596080891271421623615506305806987433550904606791193209594542342448679098461563818441924045520086652432600347711566538106387308390991057913516381756873156095485848708593799555121571701059377391130945890623731882626369570063221509655016526142992101851449684539099035519954759753389675932337260269941890468975813570183814438726884610277526829535805464561499478047015038197638520008875967049148254497811816186222471926157472737948400583497672086562576013173783012093979568071643215374102188330048292696636112233867561011104856601759671984924103506405214739182194317152458140345148218460389638786284884578498303125545683531857887075767159815366923804834790307791507094736389909796772978785319329798657834323097459087115647956619359980429261442597032141817416524521192752328058640002665732067020909027006407425634479734655497816847059970409233519291570643488063324946482863556792260847329362930731263404037603098719587104699438768434102618249013446149684633968271693205104854287128162711670254179158672091671221663380426875779818856405056272437156035004102378471303433479252151855987912245604186660507014308386562324450935648096215740250167824186572969083073195521463310043606799891105747032711733253871798032623492802812933690481641202619911617452046994102135025596863282642963403277057705922557644603856111146931687621365159089685724652501793248221404666736712171446511021060181985581662283074163002588212473209964737653428127445394341192059570966010576066839956728256752270822849551328006244334983635407337992825314615978649019038846053432747427135363717150213163926104832818794077816924204732220071251369097042566445337850351157592089751896072372773380732521373312998823485789091779099380567425344083075188158273966451231237958799614817112906780867030116069691810232731187641537112451994134996520424827646907420574606833072055508348098993147377305167278626987385939832892811978198046540131727947055671330585773031809928282746346972437095117311640964367051018425833238032594925437815772369471120370156921939086693379273275866113527306330583453979131576051220272365076364515003969770889786660925459320158398445259091508793319283527747354177694766582099876383852459018806825317097725183833136367625014054331371011020562215020573180079461726769687204220020770129504918020270587290046498721350497470488546847973364029047836652304962659462770321881993737200481259495018851387216391960185481811148123449360153642738506915238698656118136657010775682803247750938326887128972787621788669103349703371347013641030829443615497451288328155779648042204775540604590114269922789829154180240663460145455794171594122920317746211021585027113188196279106492470571219398624449335780216383226775534097237334636874060471895409206418832303097176119629995031268928500027148514161868686988252604392030836833592696227814001895959397223821664007930615825501745748386897702281687946561918862582028315235762373247490752148661204780716711662614627915740075125935997161070009522191562418308862652046138848861743823329233334581666050046164256508995996892838108190185648781006785997206189859385506501977779735476681839055085980295041905360712162103351021582440265370330640000307919181577915299854280694828651630417382147080080207389820459458990445992331517765052978136269554153234126333863519976805128347349968365823034274078781392997948734352792448884224735834965455154251512220776349573038061509658371726007790849487471777650949023953498344783182242702362814098732916082627783895565139806430313206263821498050831845446583983060170305867100327069291261416851575766296766149653579180403958121034354067737403000960069550249789533561468785037774759476558666082898645897425633710805022024976861503100664707198357495739533204332424958582723721594749967201414134797762960612682915309631240241980057214166260069404473580767016525732140881058404288292681999378464559338064683825351163945526452595882122832454000458347028490158486516122983049129509316478217918126242737405660181219053876311972327183898661403752900068133323944669258377155237891766662305990821144565698407497763186230941218871542987100699240761817590158770249614336647876347456351467008883430419777817527398759676536948632499569703014681045297836170726521468421647741765501710325797731085233885528983867003709589621800880130060205148419886489339549468149373759819888772790287927513517873660925154234321356554346441103725045248928311155624447191574095173068389758537827579173290095739390081332602040368549531893910173914325907388271024155284076444800255390251547302444258721730937787579107956387817673768022534513612183931737650378703653602545427412725234208699690886095829099823845495096072838003735182070678504639986244813794399682698435152824751800899955675977073598034447679100587191334277321067439518256312321242296026593526267881169877337264025261424722792274213556737406031103317185916768111743150249168089896732357687865634014351653614986139448576742681551745251385567484135566229327475324263580981046908150547872169222760861634906493090308439897760793014780073263464707051418263387869081998459244483074189022519723510743612103724005813313123887907952985786098223039289509341162412186354375649745232387201202348441650072525365226325596577715983424019851348049668840726724603908192341277640894843521874734460805919823129065900427080624481658573723208298839483294476199972528139410986146012806728974636439103469637418111132544313145232952481582712490121226696460314601603730724696726539741850403420897570156580248183084151725062994774246298559389191314817834891194823787522018381011155297753466720768778426130896018362395475927807655623340753913205978487154931465075890270388119641085393015323455039227135400616517944186911444735308061148356742055081716099791823454450945144372077476352335847928239713848800492245772851001121174147660541113773350410098230860794765643227351861398473034534258590360755306276121624602076988524767784120659932004533815714658772910291043993674877067721607725029577210350921346769929962516639310275439934461243887588443139267819056431912896160161010475277915721347786165458274754850522025789436782785366177757078835998612526801523774903086889650975981478490991826944807044420432851039788784032304145695446684356782347893773930177602875909522699446910018259687256932866634683404104787787278079314413490112101256779877363715124351508127647720379191534751472943125238003619762521087524197303854696272069755600870791585817467476937204399814697372095347619808741838412559322074619563373439356897466895585861195579080238127329746376410720845446519086170132320431501842807590028029219803503197135564935899071922209338036902630128912915725237494204972129720051175015656240668600355885079860705954524824111763727328600587563231581328512546259668415044905319028944669874837855330096324822389271634369489529759705196465478618521209981303490038355525903429293765450613318906762312776781309082566075573078308261500427132748302564049720910718309893013532640471245633233215718047935173570996683439488163267152089797140080249877071478895782790477817602267208144531784328930448269566703777862224767191591718973987444435449695236620553412383678630968323142130486827043160205263187816143274514186743339748941436703983130470532914507082542411902311596030059465530387122681725978816023204111020041384883511699963055992609741016808114302670742174665790994909947618107549471846254534057407053054144079392473677446173570351677929624040345859334402409081861344500686856362919924665538678387614425608205545261596993498418190447730608409251490477970183276950278986794213349903587661506522281422220507081063780029369783543730388830535947646190879462798814320806354512967662994700151336306148936453283654750498176759221751738876814098207111927448306090938770024693734342883475263434422717523009332389382129349350245120365842669758606376568803396919841829890785258374493095246904059149532053804892451306685897530852689953363662511899141719073587486826143309033263855049201910717497371486163452122792711706610327520341441134040618829682018937365045730547649785892941980796169428016886314436271854629268502457231758145552340746440755947687417518046592201184963227301688236150228795292567393418314911868352881913160740561240021514489678949203138984468390254182523504176252610177900867054110690788382830715621031967574980938438046477683002663632095845633103597301500725675334875089438462539404910037344861852493379852495679606635310798291109715372683577138049154440736491275943970955916557005102561540734098900862744566691616490851109523831427115153199031577860897377141420791871115495419062488424703867228177197734747751015089209133201456524560710742963566576877726280484126971014060075623894276211956658836868983189795206284165392024511047687039201485294217235925078776480157442620970321325834432743424882237699678640815910984379387893349229203493737277516474549217594192414323102029216207253921799862257554379315346412902609713659283577427527294098116353249170523953600905463871613034695522152357868525482129051789043314080289740060136498020072326063614987864617565112946262191147347445168552328078293365068369085637495125538481246635816541857516969231507307329044226815338250234139728458013065403422884051600581914099577277014730896929555148096537823548072734064453903290061774931501379328094111751721455948326328937167098748940696433142509378057721107871310020308933326432670121266555202976997006502259483704639106514269124269934181259152525069540556324829698384693122082749895798090294698525189863284476894837377813965564651611647778256404794069274526743427095664613080290554710841496687456252778910685750244164518634460585953081552606931173988127784626233225509548493198703575227133850909803325232664310656308037124845161908824143449309095805378571832584696381156692995098770147538424262932203848927587341804433852676735024547238730618536358019558246436308959854750631525313214322174359737705806318361686400468640272157675126893064608947603308615853750682996759388230052913951612225493815694331622073309190941421422818388307136700202441401316825440507292185572238540081313018833154108819530454283936176455987012293849547463925935604963320066571530979323148748589955173250763729704973108150252860518965685580292538848201483327159567748980502340667283486048401703003527644956735399822264015812065576713126136774642055817287713705995543171033527886733865486595310181922357117573293423709522375722671213195403097734592439308420509618558663425590132497869466049924706094809943062718868786254881352978893967819583614108839536256586413438349244815722931006097365229913450530466930273801663232501161083142383341636783115363451978096269601487808255029560311713869379727601913224098157791087477571761048705688946738703362117693750205318529411270042629183865429727518037506467313831961598056164150485315825825808746487663044830055205797918355861231929349089232458054150251101017378143735547272967771939464538934522836177082409652384466859353414353614631418802046275502499114450125679363038727088249045825085985624917410219344858832144099340005091186994495698036267954858610584075264373373652805077781516669037304922404259569634311658510992723882598703652061446500190401094049145287678904472761661744285660887660627258638021730487292834474235600397982801337392347503899757983819663391501725011256211951063151694940476069134863665887588963019586685865569444982587959806867971286415297850100446009437410398215046102722820243599589002399409646650518301994804841633739812592967112554205485546748893055312115412412896598524305641922164501979585301721186366809829836340988228577650465159258814158316319777613633899111928150233416602973999998860983743495942376895621611091627717707725739974748202688259026471893185668134126143952943675369993378132597190080314931447870080322663997766223676834729861410077525093598773072175108696803044033102014465392123966549660648482434231323772509564195715922682561049463038400431129653795186246089392056735584518949801877842587276562636645404535344588623743909526518294388967600134537190933545817642165117187913550697656798172858725930409001564173575968879882644241082644440795815740116146209133456293399628079137579270082374766468507723428770240736749726881516201593537199631006088339213782301938823775068991865824223142637839492930874656598066928949662305624485568138160965891770618184808979552694120933948326450549170953043866594924222145524673351530010234029204906122627684025808208810085669717958996225007436461569421586527938582253978986311370324306695432672972504555916083606173431115249731168813414876541667824582100274206140173285507105085859479272850629411094245434899607966012568726460552347744207671729265953992594093716209830016239267983134020619681820233800643043155262167484686040403953815859494068190317185332819831637122319592557271284674399491439183222237954947371408290390987762943126958642511639582692546911396776429204054873558563402494389801782416326759162767985553947375939531387368337151771599343091385227277720290330354822069731333025119919011456734521927996816902250603579800743548672761307615218568592097570821873104215225712457112944731109241760020540503738945087961517984593898442220623206874162819047302632598399634237951258737705755846729173351572472381556816351673484695442384618635716432624480093572905359035966083522724231431670700030282684937407533398129689562128027426449848570868554455842450146334556626029928241728872842824421574715620281401511248294481550846144024608233141037789043683784491723089288345195095234392709224277757099417819653324649564065032036381755470642765013751500353038059345713171623138577781084062981866666514342201832051896234079346017075231351811495895694751207267085963494493399416790380549329743350875565367250207868510655965518550335294787983963184687365136485601113063197934813980271085356534864818299573304716153538012855864836361887199541402246356677519567314064533242044194165247403604503888980162907181994409984913452232448648661390923400057209621772721124877795506318450118470199472703610936395518981974257488680239787075984751529016573197003111400334727068582438560083301389728158909318358831283389940451236505906386446408100829350561615895109611500478213998719847418810594842463110654664156664481623465676017428105055303452861778399253456545208052776426279083692355090742741637152906394540047816635111498375187586334065072266542156973088775187156073744304928296860604508113072416425393686319875109576894128759687284975817302172311102674312697274571212746530188242593755849165132217581594431844951566386749990395946112833789370812499573895735715761034283146538588817253384143153142701813087626312862699252121187663049351421297933070035103807644129985224813776022081693080554725146488742262421064982524052966828401630357794902935819340232101762627888467166865999573725288244848373981440253730059058956952475189512771492917604126145316531658988071343724169631598515793216321697641395181336852206000507513482025378142038483813938870435938707822141436402371613364489543009729842383283244817700001938513910090400381341208932625873170295617260729140293173308493148066994539037418824578391380092031105713465672235642523349736919593414489499777552020103962983527534560687384569681302240915762436803416358822542472917865148348092934953458400445406522054000398626745634216768646040521361655204819011101610740376037530974589251496206468894055154038768758744931723825249106903808569589675169147342151046206499645088248664404967692652525034045720133506351896698511013333649455439449731339543616407487308405080476223930235559331227315409369974490143097857086240865407219176741574024299185004564793020886369450543977501596735599123976243225312789003746789195479755035253849399952836982630778286328814242988474838698496163410424858223036178440893671114861659378843168517562316107779935592930842710834570318474491456206160287458120030268511625458185376273634020993611455318053369273307395311309308899234188301377247794151640247404314277908854613679480503377437755937362931630766415803313555186177395460357325842666695131478838037529553851822368233010192236159590677346707661203739493821572761190183620840145939758183174450807841253853143233561807790446794184684039171779174885215031963144543308145585395126464874488445365153499541420922799085766163817466615043590193669285627349388670619171583235462201364728141920613742503078364784876651152506967785970751164758274432464265873307761712232343338855435436248134794651916332234765651737826966022114056702630881860531795915615741633145782065117335989793343987629003080895802079548826162401870160367798783643973183511732352709378423205943113772307200648588916255286739837404061176194022315702756470874107498977639582852102111224800297114663341094270482196491265676571650778920749437528321827054813170152930915680931905948458577249447186905929773869482194074625958365374684936725122276190651341397448028904168464022164913271118282880811656639536320664210009512116611963432018383904123438815355825411011656639951494003698934785086289179619087871494811037370722914171210437819247637369310942279992606055136816196382939882401267784720350690037848812687180335969346252436966806082545198554383923540082838886040177099038034561998196975280887727017647134380220409585506330664765566893313840862758962555787124325724537784630600859513978832381515148477146386083489591898401189998582037281329181995042416718885253160384872672928198669441942927490307567187008227748521909192446295112011384321081037372569978945689013904260111305730382139754110799440558663388134759947531054264660965821834782372607338192684328075186810090049088066844044052913659558751279158713115474836827030508509370761193248530051273580075495388179964525439161108725311188865303742319567059939967497157833887369297310709976973868412763801332425693327127757759917094878668298865975857647312189849685289820796169462166409156103919044924153466090715229674716702727682368089153779290968067828944758962291916734204680847631165507292611802432794269755714501406183689326970291017635977453657760031427450085355280781933631581870603896051197301760110139076475646249354052341561922940130753669931730317198997197203861618404418013644915658449677435782931905897664354121635889852340540276142758677011393165221585461977854340376943890714260081557482879123471652030215409322153159680859947238085624819921742048437770945511424410841570111617029066508178835520993034108491818795890864877108447717571691145520519442105565531614551498450536879300296321403043377832244285823661966511911975752418824659240942605540413827103188687365054170344204165318137517806145210376900008093575045729459051884469629889331666643642574323217937558587598240080839624798297145870192083251899933083819216154305548675258159918164945767026300036444241543906764658934359359204085569892410570143148693334268976114644556785892006949283388920480110240456052433131784246882782339779246985375511563383381095668189681303105510805505402191605265777020297968888900864793978298055932814878602977305409510553531701819202148865052270039126070761567214972969530994597494311950470069501019199049149881509353873067516930114305414256674671053422127194177586660149710564808093444866769340448962491765828450868080080673532177344658460502494751276469643528238260087875107765030440149938125825253318037352584400801886769970154358115591456956028595352920031666569820165776963540804602658682719645475632653721995968205384025420157458271123102829965734111681558210236351987935443263562471206988780219503711127214795665098951766453361110960730282755312033541997458987288612617509992886354877454898378428370236369867082359635942448114095161138998939637919533922115695681967813765296985800292110420995426413526571186742224584462404424638287473256961825190462654901008365491355324226444333657601730371849260134241714991742446622075489557051169264588038891460260024116312918565949134754532593668062401824522204869325261818482451882199863178977322475104040522793662583759049281145244885169194250875629880955803994445627516399448497975863564920036973880888439168495915837325407995119216516837702741741948905494850317642524900235786176657968633563947029423612548526255560214113073799882500662743350334851585243262643423068362703904066801949547774164557209102903421711627440336689923614187425919466997924427794037053293419029916911952677394601880020167871608346183521445519381246470657559025714046411858011630198504252959103750568528110931898916197169118540532043107730943771268012206254830959232541512836291627644517482208125082057493269349209441438644214981706359032081380380731916309520062463905190187370699712109375761097276524467518087445591925014295258349705262727567839362516969415605434267376044399538415929590561580267181517632898995410767739808846230605276367645481201488608044855501385078654554560964427053427893147453127092086144082513845375794154229246226163137042119361421321738031200731593586346653652076919499268213698203048044982271898947858615365940238124316453150596622204291743151583208411965317357407459634252245704124091286635227501025638918421639064564934734677600555973442990394890676827781114945582315017527298729081353128346755999685437273422142638546649586873687336812398640395904814268745840397759012927054588487798966816887854857845074978320190602339129574626914389811693782059729529724828297785157277857497119495821520378965443221486138227113148426490237841396569275026829390520323027449165363190521815411652390464508725551687378898472410642239143192738472372641637623904424278689979939827569617695450895291920313772389973422581826644679879825071249651916418710061451341984345924199695014441046112074205456154422227765605141870510909135354904452434638794408343254658206259143368358136325481752059757238151449183545477114351386109277987226046109825542211563809796815769058200064683332053601207392378830413192774182172834491577404053960488211934157288443773230278251545093034633341389924058681331254811620399644443733687831497441361587705375407508397579147767482992415256776627171982319337240478968501882160782797451793860686701459580784223004480929924385033213515665327832674931199930406358848427843879034697481098133386717416880250356467889739838541492942487180273330081918884991300081960216413889166947175368698533769556631911151736785349081953585368320629509812666474785867651711962784676581967186578085832534752456699694275751343162677184710691304794300709250912425973594178898414877273828696760483203078916458165989165545779155680378193552206154636189109706184784453946904151247878046520213131674295151901435219832557510852122450244066914519252461475243777944044545588303275734380920973402105786899770890009547532932401671660338181971123975248656740262905886677800116826299180723257095803502598677912692972830307652382784855462903801473993728193980850125994469835697066285395758584707660277740582182617664652252175948912835645545539073300814705930695534437951421501117558936660744406377031700987343492987857223294045929488985488868239453815461863694356873024077819148978198007929690538661115054867282136074109034003998936730879031638164241555927894361437922720439535508981194707945407120797361383452669952585698384301865005608538695081848806650001355482767852512858040262329245845288944794537261665447588532365632152154176544547226290652717215016754098583624478697073776511055271918419899739425864947032707700107737351718106752064099630184557639505502268050938216493054503437019464891951840318365627244857187241885406011158962190472142168642872750671765373020694349586982393828849925062472466712960730426386745722380197961274525725727805266687604534875148332088569345376786578428504232618189639919327896041922513987163229890075075959048386207989677421412092487690341730136814692111178820682378144108554132806543117128067245529791346764212700079888992254798998479314950655973351798518306259734700312047828891539347649831491046256916951874875304558393387433842357862294911399962908869681959942248478364122561595207447112705761196166071293502385274152774530866845541366750645592037083380343014347327997173543312271524611230507603982748200664767776527579847646201332487505088801701063616117038730750977541864640088662052058623357807372388900299737094193623821915226310142541087198545648604311890816163039609168328784942273473901495110439485147245282448047724074088635423107986539645032522631180254438191974733272339317707996342269455570793236233546349851110221807072969893240747521067521984374329814584408826864372508887507053957662438277212657686339262042284881046608552022064052416923866787378997703011613879129361706338156350465845211657151183352453803630797570994018377575855318386207985439421720837987925316016173805543510682514580359908666202545268741148009874024846510659200680827744834750139834678065103052199752495695867444626909725581136096187042545883590614878400547706123179843479923210791304116786348953200698447799281626492314339973724799037415535895662683022405128245552385871043395473234325188625341828112192682069310760698820442666332613568055421529998455375213402941652479571009675267203223823122430818691927284626827965117127833678067963618874825943240541613015121924625742546155227251894259779830122059731065281624522664461941178990299122999505853471377051151191807935517463698006436704231044344554216693864493443006078824051625944306761141354275407752161243006795927089609717964231825842836255373856599604510296708053696643114208379722004083441916846670158265784772094520276909719583923937221683852564796904123421996572040449312872122559444508416511571434790202304060367269401712642312767132588868273097925987735351963126696311330427431495019637538771127549416744184350745887718397894068660072123568733160384562222654404642797271462766441696486419631588122813789336723542888191370015715937919319155579005925988852036897835099570614913284040853786338410376363818567685931243670301615777321341130473538321459286797021241810327619220153880134306105034758671537197032914876421440530163402225168605358295334969841377038065405758994080814983953118925872175751089538640462522539324329097157741312613145513533094177359895052212922152043898274021806247727626730538048455819996573254585890914339317216540454229980208989875730048883850018774240400578053860450941985290239126052357219342456135748998032155828956480412165209492091968194249230904232804902020415694358084022376923059860770097671394262506972903393718656348311423873484720101392093161996352072608442991094495054693253139266585999307568879862682692049638226600606445161771268382659389664061909979737763730331327938360244907851275544751998666016717629624835310655293760483370020585595807350826084783840029070726706876881032623545865186587507248991199165563121707366606556320589576997318526920923576065644602545392144632578302889424201060396368765621273452851833820392329679305335957983409407678102682172900347663579104388442335762973930158180095172763254095155181241370222354540600503098989690603524689622020771558767692118446391966461555153162966508097554971353345136940325143533929840951002752512625201773919936395785589466614624250956208720399089998126323364734130162155436292733454561718887339472401382765741804363934809713279450251592483501200454245041480956364015764186202061600354315916487976850271846965391227048151050404833900825202327106574301271928874509665042999709458989424372711973120577709931157699445487081101970002689070212755839290048806969355282762417078590490637718331070268186842601824803978843649325550285889677186623701866920373994967394349592176531090506973510989103314336479898729922442012376669216513775695339006081549340669099887894643863822707535966620972927033663159721555705945136385214194635561329547719126632023522000119352407543245064329181627496311802488030577256016685313998160202897467564164291641685366432398132595207037426793533220370148192547747999793895610435766486225002294424970709887314107640207643065629544367078821531852597079428345230777281376421337311495542266886781538084927263987831997019251444785483894722185034598438215181851207652673483825453226093206490969029580843448003046876523754784818322472858241986976509189892401053339294004261488773355591797207747882296192838744024559076325481203763688259540098000134306247419690333666375049398263591011458241305682024423930086098371219136309207010256440113578853436674674218509460423422156907005277790926547292778929744139939581782383598776944426182898765936655780060084827207862479728930542237712059530859723389309335151974118685204058278179509130874228408717786394614418280320566729051800664483194997163143600605533444466076740900705198875726454948013638953317903307146481676594619727427545331728186176987837586685213967019756493634042151238963069897088782117456796120067745882911109523539279203272410680029549814747969309218520344130307766975811711685744807578711069839047297239270228565825468649550910925971749987554319220989856172696555552030384232405230017734458630736193825678052163754021689943020089608493226350974481196930460720196608650066636499340069531043093216075299815642653486986703550912853424237141680973181293278018964512799848040783886529056496725857262285118322708931663464483756525756867074658032522315231313158959071957470912532607865570229557489942977042952061604508984359290434296460049014898906746551633605046225475773944364500762263738455455585759283004920626846849246290795832356801818182982475760706898852419117839088764518541768699454427891478915976355712850428179979057025449038123620425180211687197548874225964198265716008061274362422290735147836113056364884534390354752626755588701929168539717788329981626258824135552442184866798800705446910436944927947785370385887574725883405983001471460883368060419318150445090301510517946037965542026057786083592899156649762064036235503336107731856006635430664254430372946995377260496672961982018381319835891499269417160482692721479655527257888989646798815513824868096229978304143127655918449232898113949933292122773325149865431917503246910333987799588439464621897784399461990598091581838282574393126496634872164176579437071032942391085326415616594623022770771731952397587284535927437540973446829876065620173935564467999054162112263104105260662840594212365905322174429839735383462247623456311350722784080443514038563667470990558942158272718732639416484568202290739798061123204078649182126075345118830609033040920299179083147417797741280833413359670678056394285025078659799071501876673611393021983955726590734530141525441278838997512106433499630623924766938634301028838696515776952827409938375349372755042171312839193898827026511559042602482570951132961367030766522091528787956569534983982331385199007016495472004588103902499956367560109721052286879155770366701257579548169999398338026209941176577650133255485014584458313500620406238751760486007139371415687084678850082185188006942221027440584035776654405547117242487714521207398410141064936003371099144336839185772656421370891036164020465270170748803964142709573547886112630990658336884699585761715607079704784384909170726106553524896744967183321946266517907688166446720467336943068299217011972725797416653442003605581417743296604485230219931376150941437397902780082660607168329883747204185106881545902383180688588411567128678871433218901037080905221831962583096803743797860447620508462711314867061134754386368867485524067511406079027251475182847063526727263775469082509057635051288792416044852409346936255410805144318736359197089098481998429738384531731405054845175993526259548964923139180695382141937095255926380488348346462498220955527449708875807734679549643081639323574535723467780258879993698829941420032570699116718171141752863025481028535865298719269389113524052712448028329684406514616843350111491349628245563163275511953267560315129768208832142278646650417236721354124121314048128154948478588816699847497953123215383154334520818292020910304589291239169513983980067762289279147890620740597061578009786914081883444355653811667853911021999473825701150375047439044920107732631037323066058645282545414236925257620453452487230777819220660203328053605074071465400853510913835928888021010963693030070246554880551778091921778607858109741205178547076775641628292353963906272862815573855840747814157492845287492789923557137438230949167569804490115018894273966248891927829506956902152719418170119052409859831082110388819354094200135981765674611530217004287161073123438929764892373789224071347868917378325169324465918548892373374977123034720194780482352287502331513633682870968589626541997140433672104597362794264969831311770883279614759068784518091488448122980462037868695373325269066908874854991975606182775645272187223195081553855495483237736895640594953778713103783451885715070397301100125613391951505177506430577844487095017563882744807810023315533801693218755988614810546472617899713892190581859454748542857229610111018719096171360664553363615273620132851747465819291187089866260913373933373711201791351142531148127976747958539544660832493215596902121347500736002659927298387798653846394597168422947852625668171339588797491553564843739442887859568499225284556921518081387533534332932366304278669708575342028100350890849665173642707309148418349858004948695034567759154206862523899715117979897602801489710837617075918667827940226909107905245086795308856186995066197804643526205994189106625341433310337783360172970218585488347519998561945061387450457896833472634742606145137300836836420650145899861554356085167566588706355450280630890437768685765828090677097956639395233554603022888128006727181042431109475988693214934478892384900637126789603378174106846974383807372252649175582548535439563366751704298124211787445600602557862736277142537493015871720725622166052397876979879745744880533337573809538215378120185195728410791912476253203266073396496702614145858928494370615350934733455879806616155867233942756724339452150526172405107750291169634137422646736975561967592036739590848508896882064913693248752289371645317081714796792774341653959937840708531280546947625479132677741271164374826978014804740452992148160836503544266943998319208981427918163980134275465939701289613467600768060806444748713214211901985904680113007228054377559342107273512841068200434248113063967519925259617505252050998118245262540365143715782567552743567482669448963908436768759681790616543945036021549080925437801794924360914587399901867590846896984570805653823603229061789171589663983604316168153020216960806087164655284421057194319861267091663558202891694648579697493860227949387522267105358139968385275859530147965452110121638406473222354912585237424486107727832492844367802811527216172840309082260916915175386101945014192158661773290505129979045111452352474533125715650444954824644703301846719097108245434138069402949731818801368337816044472537661179693087274769912400382997493094888721034341913932794789729053149148404039744728228030550452399772655058721031560201168471421289944236310100810248378621971346050782240134553737332001853034297874606537335526613183780320924007005145111362010107864136956111528113546950388333969814527938601909836411408023568950954638326065156279235412274252352276699827217689239375029885268035617015621262653968118549005360520330494640812899275736124572022756601009671207941590825688212291978042724330655790701491678432862089199287821440815463522741170568684031228175483191865165940514157670979909372150266102324430289882572608283240089126681780311463681484892208124644396868322123334367664699741350817732224451582678757198471676467616009148602366015157869181351670763333556940531662030216811732969673501628541140034981966895990689028992623803162802904809171215083302677799744508564205434347614484817877079498049922329617115058413386914098806738639697008760207746925851474872476085471477008297928571268145756654088672168875839039276457215068893100474544976759850582079137147645340038925609492505483559482982484474031665221944255973090644345592901420277750629093787271520315075815802032485784539346425099906462992570541872113789522080880431685177277168749525001693038748097479943053441705557466272385113316664175913017730616657916916293009517773767908959358926447540994557543347987587903672583121716315534662305535749893067598518132275745831981357861099335568889039635191094949028237739295654567272346740856078875354399984178611044398206225026431749181786570206198983223403758024997382810202873436262764153913224355057641434763360856772007063661484760982950570849439448569402806528116011345880885348872618229129840233710302575816815516287254067018139542032511986693919339614307257218665887328787761005138967626593771158081555817789188781501667250795521909836516196342065579747598671552773603718473340894135281830827384311860892936670066728388098833927552638344069673116131392222841944915425128822487296541038651954672566519602674146957962683077701664907645444203604719456652145582501217692133951699955890528460719037572433412362456801863298754813647605480858796415237479340965216865695254356000568459434656551706561465068374359780179669677509930439845711936918919167372224998728753388479610805774063433877301303099186494560769705747761901448732987458340067107799131918826447148976068372263276701999839787509005797056763855876492026462374326170160807749643760242464035377285706790309955056846274291195680588030017622514090330588148630858811275894554361873916340586003609711736005361421451300028932794185182793296923120919751709417300005403196000617481236537347487723236144760941209424752067626588130954606804976254386448380143583722338185729370041132235064497842294015901743880975903970775382428044744365861983119331729118111833421554166543803950309424960445528539836701811917027716849418616698814130965135450449833103095069042826357178834208884527465006680181502104960720180295971441717894839171337224236862217489750407823536937547737872066400638476195911446530375575341117297860912669714920582946577840026795651465820579326629077072552800326079359716644244134768293151961924533369819814535010570665354117630451936633720932039956911423333465072307333929301426507750830802648196357107297084600928859963169309865115447249679202414174870632333466210021873514261863702832747459125110036324541024260647661410580137825103604757831474232020241782678774556887960865555228010018687273409533188886863802491247926007005741555587295999732708263114962482316629626884837752925688483170097250057638851877364185142639133318015653552442354483103475971677264716393772371435146121075659825825807953232617415887564236526885781317159364564937580904839500157991724715970739677719119383671782212196368890600051720319731553741135122304193717177725722206192427580803353645271945675505333856757260172639972860945717391484749698692388353132230001952573882439778786857381259250471728384972711264218888513731028075764713318522801888786929869640632242765372095226450859689490615796176683877819341228020280605959822497579292518416635866132928256147652839344075525360241833302634351959527548697672777263453217102002019430014005962711620224099343344173422862160057976894941909442165254964818757639566846823569103270871316356108770004698490651612708032157370039606682309007810549532326074165288824675614428271646102223168903787469046843396161584527109919454886144742310632167170239505703316054180308422395031006245525526993746138845671227661645406927328215331602471131326158047478023673613288579831600657306299568922013925063995259339260334858557041078597917855103411582178562554841416013657729946455283866675659438548132438385464043796595882592524201019512303853632123082035456210878181568626288811269338530813012006958830941402554785905520324277079324754339684912830299545251023433210905727170809390823195142530866980117168789416882671892831519650112797377436133817442349199275516494872151497200728646411154047006295993846525103380334037442325439734775084255516086797837066414625239219385168147598780575376717444626483615973621868741372825558394346809261448069316941762726450921213025224324103019168725647025530482828068638129098283884759008916751605022240247659741580172414472895041967342025116225402251744787463993516610697612932187898479688956707718799277666192806226571378999993525835350625371039524999858175407545320615027368658217918950166507379267736293715821209249254432946295421974095745680755819457447241339544618622932550536780297512626201957845468964348107764365422922498612443198227059454584245522557645335254924459364650928386919399279989573782099928331724727291160528722020667270648866801273343062452366966311476172700913834917905030666201893738371730445234152793727555959866300239673379368586655254644931074452388433224294263345178840991120420732455690336715528791312382988640457766703504117639343825841549319867689109745807672872556233743606023337660878585769956027164243814018608207711642491915536953734364793091555012760166345585967080901874405407264598739947446470673834714059873976762518860580046160127315006646250903218032778608923720542556188588133453024115761151402970014116668200266356820792673307717071337382169715810432556474026129667683144783759290170480153654449305381965516480198093782047848104628386879031941503261427336499248301620887878254609853654855945786394654789916623320570037200515981167341444395383719314409578615258529385230724770676315004863766807365642061994196563429933338191143986776088681507492237998791867185639030099298130637837260678652136185268737161559168374154004216570214660144544314821031840635865386431013503879027532342442455626070781845659283127648992259781710280323801421586078946124823370421802274788975633095074645743255355265685590994733707561928287924983998046199602634459111638861311337711196674319642192473587537566209805497810697530272724137800507386901387662773300549012100827914756534396377099958635621139198155567870508460417236893445957027978689256660088437969257045807290268290534063184377765147346289035678849132047221731501165347707229161592683644053670778172448730831591752742261849824769551801430044258087483321041008873782769841451127076180694384721607141564725962175026938671143042693864646151125581608093349648883004594036042518697581354348264334834392882124018945228320787554408384956548619804524216406944527721864968002146335182694341600124865411951511849239867706324211218369276273330120107246706586179558838814855665273460565713481316851300919794629884884916851642335452717019442821593208839650233535564484154147079579472911369531516761365591156827786193815775747760405731245967206315835600851601656254402359384886421301963068617566996244028716165180883976712213601161204797802549972238289608665606162995107749409858806509495309200123548670073891891842087188356247115463419786929621429531120921343316116091484970595636313234173072126014649875888616824499652585330947894779101345780534198506359012884620840628632646252642289007355526775773875975267548352325139498288020289983537437738112620506019724978300862595822606913428823701425354145494304105807472853771666146423298143992715924324468226495730085999918647531803182232824372577942267925292746086187821979839316395052871305295552560063523414871102549455459664272743112140188258076151800767510281036678886690539101117967862800959246326032677530210657142178314184544703588309728425599294879811341551482452804491687434080979787699081956727209945740286730178017389206285196821261177355469047566137946165263882516915248538837110422617409788995213280337103530378372258307486617568022541376259910790299461044973578574660859963329855530681752194173203667390029978025535498926971952829353417149043763102980344501225108153116816641726789227050157769998118049961571522660804407615449582037681800437962966805170580424307482634098298848663058179826025307707478121594543550426132673550968103257171801087530383966040858749634214127722278820162444184812352501471816340226915211089001162720952096950943726762974725061767425733033413936851253634169574138699291114873358750921789439916760501114108870574525278615595268724353860117174652545164849635721057191141197168318628937160445812699233974661484371389458556849541230212394404035966645565131321890701399295827560130462055780826614058690419680303624090112269725246512002307724522723049290759100425776764283837139996109877044188363649649844644158257821026306287721111639934307409217177414399057144507746933346940594524661087786088009692236440019439635160567717925510722681185006737620041500614496510934688923686414644558801331766148917273533143537673647522436288963903283982138518570593317210729004336593584525903731474090466911663522304810342093813555102544474722154828563275963260163514700678672109949455632698221662500612431108020193393261991234259511777010224013774751520562286470733628762217189559215217272648858592649055565625457008983095320291623699056182646667927302009959988672719543018095166170794414912315059263496457232283699743126939511183084098737427843038493830332038080316975286276785447188529006783306663505346596855384765555433193924266100283100244492929456186237267583822682919072685997643460051653408184601678353165127375064139787640299328186130577669349563476497562053141030537502162213612107559993821168687753191412956842968145247158010233942534478619316598132134157958455148786314549330086635238184555064638937259493817224915817161769040543399109423993646518385752556317984434940391079455616825591035563559563225936686148216200432345640170761148723709237270447153130216143467483050810669885220504947190476584062972045132612196385644221634965886452688870673094458414419613197306887983264138290700145059451490137767098837357388106763777933126002050639839173808236215645757976345621978813609991419944383152223039430491126756739414506378400752411538903105091683763687097600271929405767338200566388419796232786073123921016236514866037133927129987080530199461588405594217053064305894550764731742582509974710425611043971857660318159314611177707297744217937686827998385006183866691832659581306920837808433327759621249798219505558041876580850061910513110314608157686595271369317194944601536132066043786048497030113580819746042952297479541175525177864494989079839750248670210398180585534571471130492749711810255069896746295691572883667239543958884908944206800181764143694085592939072956138328919903208187856577979829014094431021829421251201530963691182516054630401338264657976874242142526812873065733827628546150451985794542751452285087788468954715696950439273815684382001188003237210373032495894716049920947578221691769975664183045865589790255086631590663028126956610434500517512576994767715598032835205522132751867144785302753323239106146360674341008238305517455210644821900156610709699953911065111517586100570304698515612269882932658053022326549730044938215016997175953218932263891465817035754775514290632613264573710827023729372299942555926897917666821292478392842029738722318088637609107091396626882826483444808253604980498110168724830922126220898833999088112276542126224142588650839542868057595625028500406436762458273134943819914499526315692417616517274863521764042750424603079769141634713840200222178006151802871683227769639245900740407061792065435501920923399566991391194174180840557816836341652700583692817280246752089610711519151289423438050042261428516306163363121809214542038187887861244786344416541830294435592492956603417203321181272248339857075696901957236292734144061318278884064177175479963454672628570774149169932541352675275758304208360138925126306674770730860189064381656121298872308392544150346027893814630405781650984311141788731169463545683057187803701591889926492561750117065033725057259083674066537115799379049869112268429588085335097189654887270933078292307259541350877535227943783973527040874484412466240301713057567303319625612277129528553692328053322901122196191615155548026615359471059225884634968119472156843787784844983518647128096437753405425341272054219593135972749610583482869083739200055876637659384426441455995758174460073550070503067053660274221250572105945970868468658740729299137691838883784345570597891684745841037186928549755142531028110046686268899182947050443958949687749624607887610950229919127360860727220435010823170784894912899870682632967077337858227042669512010249074366592696775744578129137430972764662510927756134541050362304157862515432157776745441003558498332955278122797485932917271521325363703262524637467801993716972632814842999565418353272864301793582565976392933408451581941122401974239882008949337449929926878368429220168923684670802474263928882986211977423833992496870416776542498621657312042402440606664563882026790945125504395924051530811624314908553625876922547799786870142409199612910674048319324763406081219170181134164944242540463355382033742818984217604852978449807831056479081818654773602490517485268348479020639754661715540515411274154013021396674685648513481915729908378854105234328100750863594496532917107152348633777323105647113026094573825666005009091239657458788028115530784950542450182777430049964193600917233916100985961866292626686135288146598978992196682407670987520012298872458546018137157042494420081412082251543034108068154491754499283796706969942807227964199700494439234193734891604830612734280430682652265232414298879783529471998291739658137986056015731839625152392402671975591199917664085371794386337591914955531171594253105438329179542331985663251050656193932087807978204339344079380154204186199524257228966947578097314721658475865555754603423703042783039580512638599397094773181069685755987863186044199006997066262975330583654301386630385036782242962303465780006149363246721131667071856480776716788599656573100547496938448611809155542540480284044388934410406895004192122595435348107668413675733214366065421175228458220784790684946097413548405508257779630882460287957523720830494404321924299258484574565487376102196840278076098994389044631895492121819764164723606333533192838522617576016749986397059050466899764140699910962965068965698773014390259142490982112133166369411850672973020835740369495161262276256859370363223207156793031985261997966038056332289108619832126978554409876082015242093660000915618066855273146928981109192393896384769064402505446824681183790446471442677116390290901480214262480620777313982089962388717639949873469890148203072391539822107377646553707308286398283684655767029750462773216182033343963268369696340643608133756509978952530888547061869731453034894587055125561698363034832122827369250847463189389115570897757916805670103022397347287144691978992507167066591332447398467119395348719657199324550137002513563221684567361936356844669935279082903352575842433706182711773433266676576175911041357845481089457747221863472392908396600031987313149282717376676917416027145066524500928130809896483353929021837373637918775873589541175211885022521967913249722821296280307264018351115092671457602357862618820710306407161242095790073963139086338663340336492534557168057251847453033741631872807586629549710175643100923457032031114204137495301142673336371611413042500987338243464681203520003537416889093417857001842254533851609554529153206039906490510620659857313022765133235533811085904526084103340141358177189740935327007589277801238027922921255505197716044781591731409985834050176033551899632897007114272324476974023732236075280944950788435855905367787171085881148350848658155372539420220420827605109697465440520816576565205585032340390269337412786205755172208339038266045574870109731212109668212649792763532599052448515127061151622029430722088396969421110117498794675234250815683283210638178770826669705216744006896634386815997019503733738398120288469916145849549494123705327108974521328612027552800277206194059291013543154378514801287580451821891628353420227078278494035353737391390525952529764561131745703022740943971856164520252354182063040576643024904478501859973697706579813304227042428079479432770323418936414073708411261004869573299518152229670936468846100179652935734419335943565254519033612004868647658959624606372820575741178464091047146385101114501733650622121596661675980421945226569640006007941183892549396744679495389393716741393449421652317723946709072400799679591782939363745945029035691447786379983543226991225402638942872555791674206091021550061902165220795737548455403401697406524501116693221434333634971901169084929681356356922702004449231371549682787819159555883465986138451968407229513845678220947084862493935985327543482998362136385574778119823890395559231234096204796791101968344809181202731195228029530474566094148226507599642817488832120666665024036312506053036533078830934301513527567074694163063227128405460262977250103802014627079735238351996756955132159060119060177858233600057720912348861766276295255840823745393713279758488232106060270661936447175309300199088857196510550598705377845811312066627553184195364231982920786335368333823737410415742531077550031479933188192188570815901909334944669219641060504842475578259517249671503928438339527739392724853924253515303685638730435151684322970622088443810762715802177897355001516044096446009311181500867468104107728526104096775964110204610624188532092103241131343715569661531414059520693439646990031958475412822709446076072889101441043523264240629580862724408647373927352433822704976586935825040536940655397615763937713490604005456200804071699703722198035887962394004702834517301206043766126052261047656153567573492605551780823141296826966562392990061365360076403643827914284191249872363837617553385008021938187474021861463839320513967180237092528452161059639074761776064317577963332659953869910743603455993528450172649840606553509667312675092032853316427811644139137251717703858724991135147147501974407768597041618634476219750352198554602573026854546872551332026952129581978310609360860205027336356829687410399724628070193302103461134728219160748892442342724060469389970533802620234833435402085014509696709472137112273804531777882394288759267176492328082733346040681193412907613992839973192075199887803252256871847763014149288958405387302950953594160853383422075472772021324020164411011813948232176666649884477901764392210171509979841236896004674709896495399645006981909419314888611930897330335528499828623172678450093940814143991326487173827390711905021836401001548686221172811536936300677150435930302611969319860742589512781559318128549258321186150298896368186705790821581380911654876558495069335884033685449600863811015845191584169256840686828966872539803316799920347916720520667149556263288190711346210667293807182289171415450718206539882809259677110962679525615869031723509123492647258479149246423355654434896416941119797232900461838943528941053274034490475954217942808418481902025115752221474348701357579622572981525834124271899214516166493995640608767931538660467787099763510305715359424939540181042545742327785192997467315744498877018763836061479220313291439428796399778936639769771821210846562691211818233920568481552772297548912401248701047005202235589339337526317142257687258247065210185978639990012770816053217559698782269502505440076531320507508607683246887231585825189590040419632948937897397974944463587749097222058719593638041440152149565741584338462884562043955740372814087057064339318424240711042467346399763903454057708465671938172685986613015155503139221880655471240504398128520783555254223147641312139716908056345535393377397484084836732871618532479504860656837778811933905999644582971915255642571830499655480955264066610293167004628992766092326297825635518746790333179664066594103853029176552535218758620612651313603690128756616103164062669156633387158446197936525836000146178407874817600035434238469377562792381082772268032743718461252341190115660754224332131888360503402732518390962979068936620482994115221881414837543048543541316868157929229760641137694476670172116533459611358631947993103240408874600250915426217461473868391495860531074630447289752931493143204518499542431889766829489505485596768010681393716779445310297868219911369631668721697884733964755901469977355884421459053423051104184240511019390948685913217093240712384081216858742089703841264709600702051894874241374190026992728373079454100978348288241842048054803929368369414528140411013258988194151628655936056513453533566095413276072963654491452674023001681361750824981375067774333152508101913705556196769958956821992902207355630367728664351246312319037070170972310669668673231237260356653812853200737071280643671130534334146313830733137005661301911372564786817446921266356842540561955399438747152845881228618767081554721632059907846996044355113603709864823459212519501056637274947359662464650081723556889720163533126265975305449689781636416393538525837336037639699668503053142467376250355198686502857193817476217148113906263603116640110061524643432522308128800634157577316822489214082945946257237222278778313901456181116771975173633049569802671269722206408544559598624439015637144451104786744369881424564741233174813816232786574293695506614257279424111620009404600511247875425912703002578023394671684980662051333504615644421587553882397358867686515519338019345256455475194497922426434453622419885207682815518314775721188813673309162904148330690046591320467922545262587908645678449256497377922938920026548525989526135516112151566021919287344790044680775864052896253599171925306813340434047892950353367342734390864600415664324364964250211249092006099919782692147169010501273927377188717067997224432935967870076611913657099367588341313528918921796788878531397520614719681888593949012696678294483449995868831922712648454439417730432020422685432896952372148495612303990076665554219841066143056098685169024351389443783516569420423117118328463676070495902884075011954360365690203686903245150283064612869999388376675970199001039656510823831614103077619885350675766219101373307263161497181795276206128557028916850510487106713223357962346705117756568529751584450567831750068110742007752706915813864906455828627887284193132623267202357300675547069016928696247940809035517498995095371487878579151793379842592005136929184883688239468205237167892545208606064954220436262028478208514989785557971745859427904007613762990045240226602759037733416306557098399693014167574886242463601598409566668542738151213342544759631608528824532235423094065724887067428821311633052006397872277994731459172863198624090576309486540456274492208259609030344017645209174019811079981771420403831614262403209056751198390648974364874065068809877514373832447573106854207298132217109867754393187003089401162350752451046678554192978523269787176672786925935404087300557996553817455092088228624541922113158920220086392674606584444828654045509157414632764873959984611062950266206615818829811100785560392927236247951920371326679822758715178228784615928430733640729859786402203477607147385397533665494380439740824429343028623052650026546218568960455705048428902657542134978457681736144043073980210095488050171892575214727549802434800165518226173165131608252430056633424142704226633855308604830045491252136970369641229978965503019339601289663225023629189925690927736287949782321979970542122931423019199602394744520958743465120577844627161428671137213646629310600490566165625350155279376142978581649736409011378024484826830946201784829490176048659580747824034198212126110856966149805601002327855083217254149854069720372159525948684310943191001468701107618751223944813861998999586566934577962079166699825725583762098123484070017380195278770917108366529060975778949056259735118359436226487042289031049246075602843687829879707902167675833491604744342247067328156575316729844799960085970197306490751705018848967004482322980473578708150687826740897168658348247691620007146857666582424082376235512931808903501975794820336314303360514021787227927380726963672026262424229672381280854299890667476393702462110963267305936432031162095698973431283091125224358337190999245253094854775807161461396076929391979739049703051496864840149327088563615342016635279179348871187902046577237615057064645879125231788023502491461314025834068618318153069487060359956676840206765080038357060416727129262107516760463768769481545807751119161405023857429612525223803550078151668831445512097666913995825218173753459100116025910128430277752992817106322483719218097152749238361627238401096437600342889437449302082404096772918168701044765558208892931299734162167097906708444289228024870082654955369410894379236997838413963190967664451335216164916373390531534412307847834961862046059247612329586794797931284591418111151992937191696514540828933781895491497377389864913501503443564375870974611346641762983662162107592540868801720401620188138610200600225045628900540281570144955626590161653795203688328529078912551652969142432103229397920573442390017415955843116774408962857262835125597171908553593250748519777451541123251556806523226540848481049290963383264736401026254373820108508975965920653794736111061385183421762032730876083620980822067783006028074524176401466246761076990270224720520163661103227222473315776199738701309693107274874978370736026863333237570354896288801182826736914770760858114302277033254601139910238705974561332071901159416329653138453455862516012247129041352477105633415861536872679289189071227732202984306825728178037342313774749961049183469106950815859073787542452731892849505042313926028171763814580190626783279434421487203275314196054928147281383321956972129629554835998374281954104106279101148663904831568376098273175796443361053152668348375032553051624647731249328349466876193886072676564339711116785588363301214766946552164849806919048853123770169070400263133576013194669484809390559859374865520036014769089533302683496645604610111698399362025652512216674364250966204792255076553343025693049118757173643442592978623784057085480165295770441356366146669839186939865365219611598771448682471894012859819970303796250330623852715806646412943865681449358435007259173637100178383040412041784219501760910599135926088462414058596720772887161471910656238832557627210539317587475473075012168380210637051768078959638235115896042762998410557669005628438492923535881080264092429330788409552740296122398350736800824964358312135886796864040803536386537583519455423700997162574865887621105201437611218959795910654128331219309219238139760866416034585822999049220350547377083721848631930846858830562544244853763542518433355096497471613048350857716458370142158189764048435173618672725634696877689095976931134125635447501885880899696551489043896376846671339069962630911389911503783049872100543603169265337804944644582399798917079062835554151129536421209679450209457635309059614698486456066078072282822585371733981011306055654602353218124982730720614187694766215622827274000802537291235814203176017625181248428803362253076595274581945740282419091375175255916698789110284226835046605959672561587165751888864461112940678106651793593037900132540627756877664033679069769601031514302700083311143657067207985970315689862512406788615715673120078167539902633626009059550416893170333226133124322777753886036690105442362645668438337439764022110441745242278331212985042086135136611999308682244252921977905295658982516677212964100469003489941287790994825717451069844330212243208778466550289176358305200061418499747379900953623037993551211701949769513088558466986165892353439961479066544465577061960349673188710913976100032111207161700446963651057006010966874628768408871962158387882080366946328047417415613602317381068150621230504899288823456105826873893927295419379196242266170919485777887585510770201916071897230421226918509514636437513071901820647730222181163607880200929112065633377518830926116060063208102544218772945787063795220356739191652202711588176067205696355563946912270719575316685569778931717284712762761267486776490106526203441314585363659039311090506220004006506611289435956002775811229544244889212705090443184900369676746942492998660920900248169745385122555294476977082073791273251709769519970599075029454342413290225544387274624148978265228100161032173274820807913410475270855694978232507091430279557708182022402738237474095521950172838398184493999528096428528303912109183248930124649617756927492765984882123779843781428108729287232481218931645750280098421821247346876916678847784140408864630211006024444027920804833651931397984538505542059285440466060128212681901727636336816362865361190256673270438330764273391418208694920914006428744263643956814381656094929002518910982816880022178750238840394327587962240473811213835893350754879361203803585398046049439301667371017975428451688984886474394738096993016628883703904483726889785184376528062283747672609685775069672750862971404724489360004622836949148806179804536212222349792061367932583293003256124340179814479179067283812739529646147595174532673251468863314251199216325587293897587549286643075267635589915377247075407988833251600844574926701609986450104171797871968921985061850268676242835045007474045681614677323288111625765501780957615899894312470286187118269447989540935747157623873660861710622986529631206408649915975886253939380155990486287934884905075946210223658266646867997176835348011910725975058554420179032327473213120183950297186769677524459890410861460267034395746911691401113494377656853129521129640728466117787555349045417530651855938452886802912691288728521057548291983819610377314464958486776533980938492736011978811578060952617700627646957242220409633671894263878784729634629577039192965415407007925674455179908441805322814501961382358893151991846476833628506733849666603943944962522338518725087118774204986255391439178150779584684803199292118410157901469291851517090138676400656606236643772622893071564256109746138966488601683221103729437794290348753125957816338450023372538436372660384047977669253830901340811806080999520242298034608436955015209822314302218094004700938254248555210081282690963521157606135124170171468058332323067801309483264433890943322262878467326726743479437415792523272002614106680439471675610357790269285818639286953525401343519999905368060331284408523644525310024494314790195171919471682467008867849825180979180593508484239074668566941519858694825774037741912527308295601253048009453572144720980855022467187745965802722450754994596196323467021302152860340086377056377350070973477675581194572984655274278530561629175833567955884446757673695758509342269252852406968358289772815265012601757790507764611802462005727174398477934909455873740205423121003882772509307156707678740496820985419201232261129707142480975588142735801833050866846121383128018889818300114902916266163218174716725248484151037026500355140732249222035990791692533505360632670925371315668224998147446507007491449963678459246193328358319396249660213114467083600495389962868347703047442190609893489816789532158375625688657963015014337923819555959263888549720771770213429814789257358007238445426351735831239358844373138174271515120685983925989091595427126776078209936893035927756643953346602130553771936487773389104869188370935998426884732146487060667292674542350638160373720876626765000420938192049584247291489229642972191475544945589365837448118485412433369343341327441425072230222192539319979596111752997388244186459130833641452128427771875626624721546991504302867806274204297669562910350503691336767812485652947077133426785535397036078546027253840375294882283077195783034671078988583682535297908065436808921668894328352274176897552120258689972372357332335806420012977604583243679797498379894293088972703467884855941953036310444978857618492737645241183389343520643937912843284984654546074398419900222021802711339108422003635276683819956089159460262647224460256831432315495895519423480399722362113098395758135929141238933027109303759905877223185297485349097578980400949072465292522054408102836404198337778522737951186033767583810642758776512149114068240917944544993575887468930516599926877996705113239434917361503433038456391650925474165461161796412469004850577026876053566209952708512613670704404251407245836241475252528752982506630121650396827699798617333754190357665308948902623595947188939967172429006354367805835261782576667991451730467921586700748179389900495282661338198422812504225191789613070640308959288179670379185660740385681277044435634029233198053827099046348639812935594096648313381190617031379238481611966740995210403056889161350886157786159214598462090599947564627424938780449888138100319492315625953191465484460733482080697610905849940660492808909358902374759010609621775324301825583477666587412051227106102640670971904908703276914990893434239422188394190230092053218978678317809346403077091767610503119894785888591001403146085013265337290297320168841567217716819059739658538453170702016720656486221062331012174978050992121098024968375194144156800048708001306739837561584628679134673893483000521791399739484076236268052817752602119906067135326396932247802197925570900267824868361163996385680398041917441298840392919845346713049336936615790439169654548599613500215019449653042653288684763067879766467610178968131363987416363830338656979585655770795494179301100549728869666117048941560848958295748208435827699608342357170597076168696786470842080078766904332618337805739365599024611662039515107038605450750512614915551827882542937353964616049727713791638648135081554717917734268861108322243145358404305602054473817330556867421733314713946392681304129771548746151847941233400229811832024734010115809074102971216130609481756682917765430926642976454209337652794668503239486991522464707157901775442690264785877920731158098678230196585966400311381468877135001368991588061365742545017244876001643608767345851225787418531068338835572051094830469624749337362306970709807746274189813629320677287339457031496345065852756197049609541216893867746144870261426015791927806079841781470654507389644764970222986338273156629415549434529424860498818747607372137685734026759901615785945675399978222748917499912449183080315458950040076196416129571848537913456987692785583054605532940535370663743673492806892343715715658611284949757490215983370362659036029875904455292711539284292618118013213703110143466676165361590539863941538309271888327523102494097543709132524207647215213856058161630727347435436620887807103009358050379545474374200411828493794904168260951386138953553649673524978734435469858258961827585613151597515661110601403906938379434508993795612290723675734011329767144110599105622799789437078408271676205459415212768139894959097931715268771644803858474563551169549091080426777051229791787573399542482470875485967316241375735279798187893068170835534454720914874509545399239244050152740687355218884557236850755930834920718005969319548349156070464803721509198971566463493826315029407257672694608627923526206186547382202616569473235742296852359797986628554215649172024355249073004455107766990978522900555846139598169428594096218912437637328479618154668077065439930796725203127777692300135479008621928501346331428187574832230823006748207402584976266940320917272990121137857695303187007965198469936949429725245909464874911846498452970003022228500444040129745636145852783519213941054026771055272787110125368163702619274508038914695525436512743596571220458186235584901633471363277654284596742824251623852047741996078199841128543142698274956547513185833287420800525805303064100368336261899404290784155004508345747854963476940286947014362145963723557160420111847293859334089631799730977849040934795454032301376476943081804441797368593866450684347985699267369867614152363123352463605040769606194337177191828128431013623493217441054440378466091550869107712496954369617431893167625257914540693124563741820696775157448059210036792578491896368275389349002463540157641768556309123914438198713901972428470332783444590511792934360693264628612875354168870685053061813264429686146925426595765772079928255071331382385457826351639442371466774904176209999395033160693206329572690456565179055484489909025493253317957986937230746582687979546689529366769086782324095782614738934846519787090432603261139229339826163557268526128780700891341561917795996535340529699194973852319243306396251905430497245198094187513477690379491650565405852421096178599060129655587869190869244601938019627829517528167973454635965253786673258882820698146141769041279679139683230202966403276501660341852592253152490468256124310758063124846214525182898249827172094913935957127070140177218635235980789833313275227244767455582275327608582721887896837934270749545795159785963114549046032732556099961145069117469524907552705873634650804904888862870992686007497890373906356989920149183265124480003477802276607772298054209937984828313948182238756548276242882789309127410873199260096617194701414296855153794547713342716538287703844532749633904877511139230767240675952161239738290356829748722852736803786583480317650976927245977124710916589101165378775186605198627514032910121835078492548584870899327556722652852447780574783651430160856330253122853670482024760442162015819530747436047316558565161905242801179229123896246752865539251605852665255376018098045944004394566725131672718305198872067489699941181800380137821502998494647833381233781676104936074724631341967061752020708976634999479793742059469859366636227262563033810689755077349425040754436822584910738229491699488275793873156026387192814084803919129953627819250637505819441811398080551852692445125217530838264015637845640151283532129526471424286944156610519085971058179879966049114001521014392715059574938393610933646551747267944347237559646419723901267593929930439627051474084225486827797092002031653066356568429966192011902541396719857505020928771373765536404012050404754977305304565874436294747202507485678205807620825885770522190534065813929573592845410887229230838028788634148658723845923458537686126069549753488600382974980669527073052444802178556320981427109806932690986241132297423368477423327260631683784403389678868262544961104756929141332470668501245330105422014611040501557522595158501750256053694538867602784087738337239535410027428725610661790400752499904677481609446207749740201058891054278160982778733969055693749581543730500754016971687333825977791085173106400912600901472304910554897578578555653578603683584915924282842260778302286318244078827301489613602228419670255588201439170706788563803727989161598178857994689984911213930172057428547342274238961685329392259760886009819598008241787531026097440364928374957877170688877949335532006847414624147051815405749195584332833719782195765908877129339227019583467149166060946187041148186103303532842863904406089202814859670890710256385598217970318044570611548421261268885191088792203168667832271191590042085018255004867826300370907580908961467652299542148442669673562026061663189545948780163631540663317846620552680807156991198204466751512549889419486812975862688741568634289028832774296106814600241333226575764089461045484872149824679942995854093677102149269066111961229155626297403463885249302577304884954404154248589062717979760946715363775255534061444822523364429451868624290960314630631757653892619754436592269935169489344800428800706409330036145185965955361889513397818599393118304218375074661121400636304902058078528456403787540173861608883639672237471923783803237858996935929079931350594295108126698854377728354561049984610433611489696251555788931258628898897917953241764602583932726968863210083998707985491535919103052654110455966625441731889315456204657856549109947801167730037035086952633427753784317832998026275063785929362013517534279493471324019081524722293003261561035970286712020837581340333181757804988830814949376593509447272256961075970111905794535226732139590244822415794271342365231594182381045820703674161320574339477237990252167459318440597073839248717743279331881745353409060010186069921501962053251537898709629311628026158889860293071769040714946810228923277564141479051967365611921424331744729056983842967864700581858244021769513603332235150142642540440658085123882570425509941769670895518260827770198740349523433068349233379354784975546260835660516354263451638609373188871464149772828073977590050207473382177692441451545435933099841115462984078232705305320229104995991999029714299675616243919827907873682665551874050167021316185219789718689957638193308313347073447919350724696517453961764020934737431115063588986993878463444341132244418791858151847537153906412463215949887494781700976663352014655429521777653712058303400326528483556037867793800842328483517140344931092189701301673149674525627459655991132676901859326148281283911724249728354195899579048387876011031195408627156985420671788137204386842829828885254005348764824403135004511856837531157619744013724367367260345237611517747675474346021626534453681502030641448377680563326464180578027909445041018062406540810501258437484940816504638647401824942801210168258847364659523910222419654404205986310107230534624251365383090154078670134075095588419989630074346794527269426443471569578949010645970682271337451344106006519553523500451705312343482994493759732937176840572921117424839679822495856915043883166843994182815041185247900190555765150228199220019467628739922616473818257922092792140636284765232351744094157265115368238995267526976777339205518191316057146024272807292652238163302771373758592178124079595157053443898970450723384378933815283450282465324978791824416082649750507123065188038428533120402332582029640327528010313725804406973284499604243133603653958187683672536663549268421776512231511148047305456650349172031015988883585595302211076877084193109211665023266647244557833044588549483988030115068886091049934734737172779572289178371131885254892495861816787372893396536344758621835094488750130850793606104464339507878144845722540642053675038340957222251387893131460390644471047788824074488543731756936397669686923924884377553843920397587580176332450302397936263008173449718389859505745753815669472782292839162936540504477521792726952014417679224099865932775186277992532936770978159108649395936815803565239861734861950374889631209595711187010120933155940427222904601620656776808817373444640950125464143587052067447298472189620974783972102018019936161370746364831745305934319564270200750450242066011004538622266786903831485332907601706191193479399750585621652651838412966996018989754274724662362853989806701936912748495344575399459629380260577775612267951835216435651474157110171667296019326310787310733444339470484839228598206431268607199954854819171453086578749946003552502909923206228375410805636574346611547066755273508001584353677832227725595266641155954516390059977352025467792324065429746145387997419092294593409230538047774274370938621689857910183923495316119145581938975446014139036138716711195246118425339528774340321300131679194990168430450906031012488072180863856542821372784836395514771835945414652571555885609483008579440622561640183399278152843927501997730695581077499931955669280527984996592459694659495516288378506485902197330081496186553052557679114224708966989247710091560387812984064025270910994145829610267768128746065097996927081286106689755444151741245853441655333558235578143305264239796193796017103730205965600057297647185647134655884133813050836906303079137742205965445335702382017528555710860800790489680852475608736411610898339090794490166903922548756686607963227538591702277660800900278509344202474059475899819473637564741834591009905819125459387855901887864898393121982131621398992668336003286986141978062959104654924751956257508095325009126532405859930708885985271698191923951172305600011279508613714994779016731557872976186767667492291067041805316356804228646785952975574807535412302396775045031827097231187202305636478016815592564062299386904527739897037112907086772295306148902528349747622228409872313903737903004399402281426291174640312968116399688984572788024558758666661270828475636865886603138293311767355289777717306163560533478814413932176171673538642084983119661781749771359716768329718520108940173946551098533323616557820831650550683241515246242075451911940537197448443033847889177305905851461747827220832941332173528289735437075409684830524787801093665193524824965004901881314218284275203448696963517470372841777301984729005084052538423246175740363804291981092139473310473785542961527247400956681491204295955232422070737256235501094632651846346538496649033397097651688711097083828897545665680839475021030472612414464147797417441215581393581380416869015546533944582607910054030656740031181002616738747668188051570388437358753891600716330337771872046993189283387919519456768092012366348327995913512871717566204737286949383308714236864034000192329523360513049539893527438039684759475845320798571523440080836213043492369364799350741789989097943118554640363451122967849988921202865211415380183357345382092875818650516715928238316838372230322572595979103917543063607305873755333692244071471317215069818182334951727650803709787881190262106142768996138709922576115002696113842557308302827198268293912487246559382532148271831812305215367815746394715641093768399546485253938972381586196511236646352873214366014331299670735943633235950888000816804425001826936284734314098254307315040987122367609652284608985044287005199530115310129879375492505977659371725665922719485110291925917012128940232396982586375210919359622811488233557571294347500229875128319069705215839386803597115012997536348101279331991995850359282740580124117806795335222475028065154284046075369592076961251433614196584826132885502873983474843916257800816984638706410477552691867492344399673750914346114913522517249354286184426844176805180758301173911339003511767207305987142860621820190776429510695678161014657584659961856083260240638193437208755657118794255267583362231823613202306556609238644946924934293319402950604203641261589974107308870084200811508126922338086091729934976682808099168715409088564189378088810627344464568902635085888292038406539314910098043413076131776725036999554511088645551181793384141500824375580574794208340578664043713811644263902281372378490955993286073915069094102961623719309494866503257248671386055898302493553906589327553774639111269490874280535321325796950005940367841424016708085584370194291627844130369822910871156047737081171735940113806965888197068557097171586816100900656402761291349963495681537927477232893201213821494456211557445953481426788823894900936691390690754876025627870587425666147561772948658971733309828251006760270284697902807080690026693036011919860963396980170504920653033055702027281933859128041480909847067861367328418839897034699239270859207474366562296015350685907026447283321809986480949061291988111751778753164783423194699354942612880152318417451841790699546205193957145628847055135020277537893685795863566406568074626302030040055275523719114438502014637675807162268720377223643993334781830098258183374862390169028869646996692331831155349042077620299202565174791649950818541093077830438615080230709353550991127835393669948520688344787284846450384200556051287167598675016567783985379014134803717764497915210680066051995379168842152236895719350168342526696024864650611987549641549780117798562160281782646938523069801764542128780372732942314408689195853985608548651400426721973107616903339736213251973199953981336679029759764502344118065235717700106827975698388866946726931064966793579635090350590819301649088034779299679672240107744159029160619714526465950393182107947380823298300235312675039171452708740358828722139791077505346983002408100432414097250573986923313060909303340763476381085957123425012099752351720080220622793258527129488069161299231486557711201310261115139696458020745676729764495078308649191169559124110113842689765923971018438881903494627920692205808723874909255265610237859385871796752692057478102122511632313353002438615004846123689642866753377890010001972795470362908966504412393489759164988282099206385733505676040318815850610631231163141566033082625254616550740789465785311118773034556874084000904831515588448370235973273109322600641709673899694147337879253513191499538442762415557775022995564409087678399025681864561697887371351835074726882538729782068968128605033792621614941808329315147896587617177834984854860059654770072570475963716955268636971410264178585439580068097802026343197300178511592557098079084091300759278302234156313612293001293928485328064066056146023141124619776140596994466499468996562991052051653476056496075348254201019296650494191399318472690763826940211620451929899598671742752302243560729802973199424099012310110111649477257375388984846264362786797515651880954282215707750868261946313930646910607281334220007702496888600827027297820850514100291156845578682612811151826320537031069736360709971900029662803836677903987077325295478798162276337766391826190452773621138844523896252587095993929904857913387124738546268155238632212242176680937861462971445705293205362642100666898865423916121293279993846272082403525652650961409649341871638578584216647056670249668295363904369871722330150532600586532514068232810555611211980364455573682144798778879389338654813419815534509511184331712288014440341886165551639387626531262385972861382435146455025840758850182424561966861312416758393563688913455914117548855370263807401050378206928352682087583711634721255853400951241964001286618717988016120625086625865102075502192119122047941387574157686929706526690231527071202785836785688622025657189080687806190328583665093693132545521751891391773509955616993526773499784410575490283669771239874443011591829296703561319940717569080517278840574948827424285128574823690204622020815611665320929152980673304721438921714284776299722258500615473054366884024870511496298884145903588944580732870568362264332032148068662883804072954059382662620034488855382207919591438747246931239995832564172459742354308239732607213067113227819274543142156102880044884535386579443091384103326948358483316942220533871789368381603429379209866118527029472060891892882255710481326779317035457743968682883072634582055822929025621824987977178191717286390796433709033455267222593523768644748879994519419012496605608633630610958704050680746892606641921538985033126963724917577791438319052082500374043401317881693794876128214252486414579271083800005909262535617919273288411597525101479359197130390375210872021780819877457712062667150580079872883211960142496809476059284629580512378231664704979982463710315645580269551713150051182978227452664651602550827558443815559538879059343578162466125350244266150361082686319265431590140964608126907251291802919690021271600708820033769670571779708450584278608599288148265628432976929331645895816380411366349418055572024211942485239367008441887863991575881628200085228528703407516761180746271374815012887709875739745352191756258858793114657108876889788500656056238414205034445924658167156229299518036332726895158041674960531549398548196774425324741594491429557255594794109989927546501498807379420786770739904923790810600326190489855368924726406427721023502299918853931774841281438661735379799751415600692517039047418427962963856042644940188279986139837937545642724639879984355182429677150947652616218160280719757330787343300392129071526139006936714376493046752575965021895724578705104807508153874343351460643765279267747628954797708831636599442641302136974167122142056423277468686297586597945161635735002305132805053567177819983027167951219210664487647508826070939875112637641671539508000265819092191305999073568793484244998808315243990073352038958840400410527079000488290359310194679086103556656404563455271052658232736516874804090729768562771794310262499649138324198636735891164701001431833641992416324475306011482164383395403020703747871895623090372439501980877525345519666396959044405171644485781480729258192600975528862773836555105285489070345900780639081384135921936542711242251534657006163336769524663607018481225564899582148643525212310265123034429833336297478002012024294986558216104629302040069649202823523286427512501131426102674645716866838494834111142365893133226857370346748860476428255792585889560565769440092961278137744063089231623252655426293313095734757031255595739447715384362297347657853039678760303006285290835917674774132375859426167991627293712054101348914450923716161805465914036998328173281952987656772690520788511566220182796113571319374394571787193927432076677944786666215156919292028768550742964517975036459999660370143189553445883619200611378162275020250545363199126841172432425533886214711504587565753907014984619888545225746800738472095333925749316167472767153952235431433391495520162974301185838530842605314297976827656370222056551046013075088113015114300933486738695206090005013903080691417657452571473153728170698608105793121940611057298340517912692423029921666176867993180963141111185985858396476655787169021908914772430301522994476689773937342258555539686138279308695732383651255741363224413891814985215871761080178997288592763353862531108633842632344228549636054585718612044084970300660674420407179884918193062535979600521725368700730826726158987096245328653884528585925071279092681752453540152514828834793193140975867524030221503439214807096535213178674458953265365093757937985304136369651977006415251480011413591891920354253222348296664822809884547887305174109592484211876199361722121732834333033106859508587817670148545204003909990412631826330183380437730061330986295068845731676822290800089077386560034703622073297442019172145688492590416643773715368815546960632857851920257382403927488399787412013848754903347539902069973052270821131380098488789842170277651320708443832676182048441316872363617098989220471694065052223166099375916918049125557407742286189150479433345956094049585627322526070399474870832029735262655672974751165544917406248560535542394786919442191172770971080273820195507518818430789852799331310736176084742212969371187265240808676513982680960272807677488403549763517837758853606567922092183464040443355303515727943096580719859774712889254249733738025478251263466544529281070067568108535099187757956314436538257537207179620136884349549006303397495906147160524167792314205742436549294134159443789745846435017307105607095710700434827057885997736553011677772933845104025131139676048990308602365854641136459952272354738218687282831046151343780810215242195528639615701488215842738526329482729450297654806977926221833204070750150253379575969988084180304462050236239065086343044326821239264163242910871235026347865772805052936378243026151577807460848808127607023569329622468612632439180864292702564320099863725456659467875665618133514220956935668735581545583319448773974678173910870907151467884320538131814617626829537715784706479655435893640304161111461679088449619253828854726038567768283509376241229804611889655606286819362739545245394759972566231062959601216560795852269607252199765585162137294213798699292691803995627044504501541032688080215486239574016674673965352044384775882804924766693368813775874788999602998943508633168815310943310003996998272299889879582974891357616508050574744314157458069987966242088828586528333440113173744639896765369817502019712487522998647734030235887512937935758308866720148242239781312890306572956592170130518385191066465501548642552951890525420386352100485681095334837569974170305548566992649241443100302315275534218322286551483586588168296151530749304705318704602632797880696556643557966155747617346345698693531692803713418473634930088495588009740221213380780847805569491521337460765220119682751835303804370061562971543686048958956484196475271937968669439646479455776467338227093435807367332534435961155749320258872916732029137516168703716075359188736230918542518988538988386183241643405766243762842099524292985543921309656966043856362224360674520270952539410267781000766496444008366749250047229538319398993459144813036231253385857364302098368690329080137516241634131002487788555920123181127794170805131729923585066693847070759107157597413129090724876365318034443070348260820317727221129072609190876967939173607151439288606408523253335605529965076237796954262713620861421370666928939944311751020620881551141199421311416863422373960693625207768144194126841924176390988391124630469828747820970321860940340259721237478060366135446999523386308876635187745549107272693340182345014310456552708248558194403467473735619434882828964750548981740481441843272970229620073539294602533001882669247203759945466007315598698359065194123185805816261378871086558257629231443177958262853152073291675110912688760729672105859646174106792627265775120849645728765522722247215054368187661938919189686166441004969223833944359271137731439115423838693250321157945645477600411822201836778598192172969235171208156171708756077958016012094790575737799399104619187389733160815380646364490549361052877890156488313153290921906877867138953596199286279700846490692963129057388795230942924914724907605660131555100648371621167826783231661192402411138598343918733529807727215712168177521439449965547761642528225312645317995657117830301328978523434985290673023942500426381415544064069266862903346160054216551618273772194747026652822010339109247041745490716730975235631292150362978575304364712958338082061461493125495319341897352169131376960849349906094008439353928686737602162385403454227164866698145596855527797768582131253450748115544530497077789892143174114587201023095978238275329835267677773813555119137650914414975858917922048586777446246852172852813917135499038956625075189713672743317541512730217450187028828226090703237581836658893213911330223274542844858312232623995300129002661674169118549254434463479251110009577743712665487915895766567702401584253960507687801047180914327584962809575998035843862593713205923046907606590245117857170632062755210254413368886876697035722167897377684041769944969629644162584361810153385141236025986887156886538418214226990715789012364252059160055579035773889341942127639925421144250654753260894502814547678568611863383809988513669989634499496623736680285238475396123072479718224419846961157468692965606360778482809010554027725259977963565831859449887127403460050135054645239256023081044005995296236010295823834872107914994608763775762416942361178327643115422850989740644981580784921605400238279336665799824683246529049529233062060699670492054151359994172915035584682932721754907533513243782998137977015352806612969960992495948386831343082490882499625787242357205543247218604534838224953638573426910330800805281331647367668909770596883619382268997274463841014546587161236345670610403805051895606939441369889641672434681703670673932221969137901376074455328188550419611832465620292120464565957006528899558035800396801902694129072015056984883422440923525487439577516904697804748188370759400400179556618472267573334962599302412445055504464465044173775823150633950960883753794534362535456015758887356788762650457462135636237936234569102479867778446385472552430953802433210874085345355187233848309076140188334433726933367065147280202941932950132914437276939661036878001242265480661801120686694652789970584907342883989201566870915270424509724702654124544335014695099962988774417412121276519490265169467460986732406963582957211859178117514936474909587783054832722055010428329221573904165704278666824977932081960410050135612357556112305051521093588175999167298683897754833111191079271660419709571237938749292745827258939823359322355637115217482124969219462961443317617920582745523919352631768454160839173207479164890523628427291794752338598808061161130066396455713823806742957959191933506030068290756126103045468026129665159527196122784529369520492535648192903925987807356507177626120343000984229823819127774793175374087363829068330699937389645779530292182570196977848229585894138673773876360892039676541039883443141218715886432606289535556542708297247095292827188019639966695018406178041390842161318423481870921946943179176953427591261560915806570116626765937456699570898714839221011203371359898231297301500513283902642570732678768954417228513916072637398547473090629399342575327527749883333942739500525587354816186889940077548811232424822725615136002753376094397629016448129551028795486016231986170524200926967486061050361930700539334477500386994739276405176747020953477683002336535464280067299972660665810288898810241883189103419155000126598116003581749412770150511770651659741817335370548132997207421819645862023369383730006908415069200736430528388958547122817178526320983393313431515988975292440246407268514198420141322747995964580634262822663135750587298117780618269383271744183286875156218164833642445336115934607042717851540096639264179303032894023792673839033014338965023305396459060601051531806738760006437697435619417438149506559765220124912846766209370730467469624614746885965092256120863272572734447688694074813774698326744917678603384308652959026595455943089572634583439867785713947974826846258280668277184979307304830560861425780786038666415958972144655222516490894878575801088042360448771066095356204987641144329973884152752847356128347896402071251800906589202113782152426688210724098262699990096455751759474871651931778065506988696701423998862903627636061063763378414085299195427695585007785065677996734901852937580389844789911056142317077664092551278284609137639552951059572462764424568417972285033459387807411410564840645510982468737858330332235270688351422923654296046982138255825941143272404188616254366930842924403074143938360011443552281040782855715029278742622450815309614488481246290373750919861997246436517726273051881916203584320516470868504903569910818060844903297993436577994868365355508703908570073769846992206407018320829512493749853524413744445898042965630543545361441926902363157587416134033933328562166864528857116120883996323166992881096179600682832880723865701026946095798941784252196764115144811650188461258742892551778431618149998439158523150023232563176973137687434922976579117122122099991752148414740504332426446200161960278203160373343438502694409027815594719456321141338236782756671900563048360094862756411484126432804284701463406923090579570781000271424736409833580486805735739405588330532808452731334729884802105249073522798989803891677934488888654824723464061835927838377698053584270271608821372219540406298965984826462328974977452469397842149605757122395557374214725252550473521513789153019199514304966784595212588037366503998441943824986512491525117828010265579606773432605012470968987966507213991051729569034122311561021990406730832922088579159552335057794202199802501986308592275298520439885720854717220908138520460926565814717826767572311504011168487566758924213643435739779371878241287337334739944816256791165412757905584269344551561454082324016124373327570561920089822953087406792779982042213503319565489947374156625299118662317043526222077684560178075231968820532541663975825329060075714778692945270932495265767434795032287389620044938869600539125269417974133424522747007688054756924205689040959301190903921364049867072895923317549935054075027127142812924720918418955177964091106254359655934039746641570388189690387847796971199454524140924029192983671333435336304069647714448377383644790059241294695268678814080270124391646429797664141444259962125537043521521938236058964146407540655479789568964017619469320113467305682929171888054272650003660965427054214309272788780376017925203277528340119774496488579410381974355815214813801609544540953685774846925291120467911052183501870691090952865261761051750875614472118139594133493057121543776209293830625356560687735449072571717185985072685857304704807461075566578576952229825761616365783491917359970341067909353215349704646542089342353232249134257902950888188293567184711104372638429784323027547705944187200457782740411320170609004333655242537444477202449843687782711856151564783292203327285220997367062114888474252657856912425357901010479245108168494492409378383336075242701689218537956789837875977206052976394739945009907249901273353779787351042865392827706842780916903479441911468399943060426676203590843419878061089140434182927617200407401579502136847946081092979145337891049195739723787165960536642955693427941873744873084831185673496495734297742156196879059608835416418012836420450888851351313261238264780168347878189302846848210730372438260149951801702418931176040450696046686328352067290358427232462055795421192606093317038852041347909933466353069873304936150196575829778427025788883100397042675717370361782503657873451536459098360775108647718511451555198134221606153415766258164644911493389478474518572738231901350280848536287228826446832357898106347150697059910198387085858471787208224865989994094637264895179992405401891355719907025140793839055224268232404675338886724137554579146343705122853439385005936899486844621870458486039474666764752215603505070436789537427283268939965167184286403513814380168950689324629054618591240025434916923345454133180242627585537911805264186795475635349438101814430157396355620867518313987191818859108046957274521134520842072643473705726664020059864390628321485843313209269175353418534172256781901782065374687894665671960608835810094651841726546688950717671265991595856342881818607866086928009247811415077644156052079687499184904736071724109112988467088176410253279272107635965560613533101234847839038704919014656056089255916457286001991445604323469004561346213367157818744537090439360291629104512010047682766861339740045061754503065543644001142770705739714761450441090338376826073696934151897480966159168406686979128839437394545392331785855192484709049312432402074720394400903075571486534324337401956585692010532438520906452691225232524173242751207208045007349802910794384256664130168748615500421055470078885517799826101255742798433986269185744610159357091618852078519432849510073737933024112921736430248951082993413681417416725219848717662010445853877697298389831425754332054315558063216417887612813755873992155634580486113773299403126448583307135663805972850767708311323607616995111503276289692306175899805557713227464352779801616847493351186734840599248877928709965145882305978672815909443409198136142327646463720735888150932261831302946802237614055708702649994571633827536791096613842071814959360237500313667973085866488030736642572048498829040551615826631606731287450915915330734949079246654021455569281592404600012713752991331149660212967308948085129841493935484195686940762283492556576166451460044359053705714138511723273913391051489485701725826318416628610607831905521084609081885410976474687720715481083415969476983899127493054003651435399610765672299464440692008419552236719432796855754182896945027568263516154163386871156534294104292856987458052154538287406780703324976925878219705266535776704291538379417944462463418744701969964541013694826015557018081752770104462000256001154601250300359713443153930172164269612314156647182969948021655177484011370847168830548747249794341332141969001819291561308361029929867844273744502496110012206962066477688486068807578448306119843120940222706857035298891260812838351455187609549280301116248851864587572017788828366739793870049316138087015629304677718560640813107818576732524129898146397919770796889452320073278344761991421163492060631071762064432793916523642347229749954936685328170121091475224927704123597794304141613635854704146419659343230296084788329831578486580434884943103492624612056027290344160772360902606054261077063002612280970686742332740368542056499231036017174507229679330417540106437535669665585963111394299694327560400898988872636670711016806520652469362489991413223023300687248572703940945207662240784758040342710894284341265231060478418865834682932246756103820221706180433430067985367514904296886877413688883044896398513643704244965895186500589961716107764589475335812256004945790708910555664662635296039076257483736567824824745237517556798698301722816162159369879867405208545183440391698635119330365616649755064237750303114539041013055556271808848446201708764581061251909016696206479815288038354775403651124191231055661780592200257342688703703522745414709344455481164578619339410832392957010982487298266533582374785769134908630637965078706240888686745066574851644915143815656815842978176355968986498319175827373427304724735053547473971746816589439633401620273937525951692543977699658540373461659600417634145097912522166335539899837568023312766549633825593591999209163493837771323272029665744504399024172953278782639069274815641736664949856521912935588435533699717373101829378258979776253891021434964687141194667945044089093906276813710111194763731418857789825869204064380004632253298733271058965870833323968296153548483333385974029835963689816719926297049394351394129958581939357142008761332562763312653504829755773578177752590239969951301201337373544610316542396343384309832384373212229204484031859769505518351502016419386531326314359989813284198003063024236362273448075949738724075853911911465843876021342365241070976952556672622674942505575999640153094428188049264567911369502452557117446285740758760598794628791804722986401190187617178911232356592304976608620927239193450843669500822675796526616625555045812842484139761465816805166167063217712124105485157023798505484367362749938166695745547896103728376833169384662643750005119883096369487221625245619311990729935992986107469467101371708842955613899313514126117041880093448590476689117511523293747458078163323324902010984065431719226246917490420499359763989836968427009583969564288225577776451640126571167710069554522448990892718549802369710862593653967050988875337643782723287897024689791216968159001129481050669990253225261266647861940865807864719142227846280243889007738214243744167621654809963640110318906888311101249030484044909540265770249488491882922710161998782208364899287105803437140240398325204880742600790149026869588682513842784197223854510991678510732671402517204428662880781429953564675136091290855637335752492118798073051180195129001737374791820825585703720753053649511927480079163441294766856484185078459399563438410772853232604013702871818749276723949874728563014057102211155589984467360878916643661151207623656723332144070514858528499009271777872977958128982854069106005295449797989687324498807406056174182267155250908840982086653575869537143761817282283715383788935074299269204619113060449055436596520056496659764895452228838848885928121392998447839315776991270904217059280375467091002818064119871808571509134767734738399452109325242131172310344220187703691619728594371129884110145177190163314215332307364848041060897674732073450557377253349696855338023764880362303953094580505982840155749431395753551565725593921335917635339875829109064600677084122036165664586468043103115313608867642882798917347098038624151720785691826582323694036201027063870314679537444984804799193233705527564910770347771180860654237192186492508902450527129451698148430280963005377751935056065147702828798543513911144556502845062064880681817841437174940899367880664720831640209655981265548893520758582138852214709227102446021324998765271422562665185723968970560865538551133116892847380567256091443477283179091927853857902712420406823029507503263196915108881222207101218905097109257569185111646631620885661274833357848304468211560428623177104615927762237547219205663811678507871697286231747413563891944668972175180209596098870272782613772228949903873935230123582079932491675328809189926633135529680562979642224520320314183694871831421911923817234032877192043510479498731679026445311856826351040284338846358715648321182282709347568665401853975680857444323181463382183539062387384401815549439560933575097370062275104007924575942511672361921291020841222955154755314548843891087422709052197240092997363231395883909923525184964328615316761897759611046542518727211844019559944649181353319311721782806012968263057292375056585842699686374577368673038682203706707086985221990972721367938476057105634116208863957834000438435323937029044806099590108126306296686572720584449929065498480191104218436204388737030006142207564217331124638957329631326021035204512470206837969652782894720225900748418879999288018814555227716958059162638965734349095233722852784447577918344526871676148705363507194166919526251742824777030034272469062298247927596071268492031725597523649673396340687620313076388857860814866113399500723654059093279429901390261963536244385487026262173604737752378444285686772900534452498955609995030900910549471780941971261666045241778930149267641300106156993177343588928281526448898047294941793571433333709484545171261080627303070820839292677582213953783210264433029040482453596426140952274428120657427650943586543223580423707101644110564703954256319731456884601650277198945259865914985690470773920886956940746455603635511405927140217122326801844586097861897588887128889689062115064961738686500084794002335994306626625468277906255986635819008675323239757112498969760580488098761863798177054814982488743669939767652597546203047367329286653256972543921673820568764328142289150850673449051002446819661361191819772696142707024874268988764422414140065327209210450797273828251489728763403531610617547547226558650119299349179029363022138711428609757816489110587590241001183194981388787951021361955617171456050844825840469610717308197340062452903712095302774702070529082264032696113030393458258667722576354142045734867021743446876426440736554899216579196116846902555803602352831535144696750316602862017271170734661820412845766033299333029666366092850922728810085408301024922099417254766967041786001456139244090325769331400999362322404857054772198150023333720156965878456218125192638501031207415104364470597863969419275378330841569300895547887136916554565264172805592992900529882764995106959965895720538831886481369069600040184722267929317437654529138725443927391588417227465845704686209218574212549491025746622330395522953637419793604756080237459863444192501713626629636291191995580243798065998483002166352537196267744377945490912648655911723600963776876762849910184118462567423158146422854853352113393352893553011952565413307858949026854488481179027690629193545477296715478327417878089778625429191154164145899645258077944257384051217298680976222206550464316306812833581244234948383614945016005614470491010680325717351101708128325118207079317665107223167388039113624765145019975063540015459170254551582238430126286570743130402583000783538681068752260982520353803139133680271997058329205334055694658891958322984744875667875795941596196247610720999975468387414082826694239997272318827547278789035009770569988052986385165943286113762209339840446735959421245243149611493687984475858998523359637080503508447967424751496886572524358029046542979407031645157516284014365585490579063305919961878469581611038818286385863548644664783224479611864100069354901386092280843245774045134806906393155520199475334323953103469125317278564120707255795146460527578941165993999268680708543264719424460132841583472183652035359622680062471327715286159585142479289509292705967392609912780300980353694273139332806957992031461978372668696867736958375234096709468670210356947618182017299516254726486812781397928422213125983871499131606199202283352762962105251956908256080552047921394760449762105862689488273740956877979512065480184469533758004745935017695409415501458725713539914622454331807935224600415301567656537532960161833590871908044782892695651268669994233918789868537953552236183836690734512911858531188539539906050944878508895936457587408002169135787974080113521823161835700723817790618932977928731286529721730025983682862932166528342264938681461584651455539045103177623193602888277005139420179716369684863880356195844526037319261901631895748522894123096409889011619389320501506279442222361367117875646374277666948477732743505991911359187242628592906490292815141925146535152365554929792148059225641619135663865660342992944018793922766750296237332154363449604479522860660175624109352044586291238522304993999043735304289035663083588651357185199226691088221587996012385290875119817644378392311892294654109577505688531962907282388157480151120546218931871665770480332790583279238877523816642996089619624994847398428660538691910723001729442516990256770609599244575922868331197170344695463219390587110677492778543500253305456136214044958978019425908696423182808949083073538618673952090601082119835050258960655087030701329321850617665017896892202549242117769074456201454132503756388915978498515781520650709333451221319887567136793187865560766156680495804916872095763411761519540519369320270789582198850294416699485951232690223923370958096054558099788050117653903104449521537831666757107148052385456087381914388964939229011112080447423483830392242189426514486678609482219432156592069117776719164752617364471343853758886753593877977682833430559238280138023210773322539339290715555605428428312043146720730898388230849841011591520856109950985915092691364726034236068389529390784968163994106231198984464778979396433722370521947882454728676444721083822729063775026678847443476480186479275710536725383321715618919043769704662608320349769398051053039259696461118730636040786690875098485417617348483985171388802485910410781547485560653315577622250948794468153734267548682867023848416050297671374567067404024277966917923072390915546219456536486268083349930418980905346962161237188533327080256892796159204124954358750676229511378968953256575295940339768661913512911912586360574870673748389608390100600206974075974544580650932331442062254896466092533973643240921959645284679472942434362598084673968906211764844518278437901101690970155183928254469713622429398194072551514226247210462111925988292520134591758892576330045306833974412753976194827879138954562095687279400622819212839676961130633126335468652661867364809601832641271040759520650288884608435549398110220127300069778298332363450918532856060099275334102093229809651136250612404625085498680846057211882667176566637443390478876435467813232407656560240538069405269385254288954880764367144019675206154074144908532496777051640438867062703030636002816839077229932348263300119874721416771203097994238768470512390994770693836747763145876990945008561485235535330386917104154364313576239966455857686626283825145630311165662438876054818055682518258457467681282154565364911295024361046901983601379817493447113552980911062569189528431758319228554975217747964106420918896203662679817791066366566976213648850707267207432495981186981466068770529230115888628270898136546305045594790548787728943614846726232012207528023481227615577051169864380453262862126744038119742940127126221996451497055077628238043952334363783772219462169553862020710310211303834161782741447990487702483704886032983352884500357858875445367381462684595329971478865260864486971300256906407761948034093458258553019557382278942441032169422168596054455004105146601737569320713168746855404275963497341478607983636541443247300726499348997441109249771010573670798699910024784779784375202998146892065342875883163909024524513283747762872437325398523421935538412790047351903671771181261891271912296871078666699548730239643664101499594446175877244938715241543525007060080611738947457360391395458993621535063547968160298615108684762089911557899187448942633950382834337697881266420712053214069805453476645503833936972915121425757976044149985118483452283842358976201682532831009569124590483367565951048235174590907647453335145894722499955970470345001851326721708149188830593429715332348093993430404420063977200669657496828576424731575282567786692199493954647195872722374910236741169151201458816582317979367585625133687582848075229879506465118309181504549203881068297062207783374874284576954271676361007627945322246440558796830306828573446903260436648363506657323507972669286548918316365973223754781928784060154810913206319401758472282974962697828080193060756836619295034658829170066797675113435159746760167141522258923380594842883819641336551096105210294302949614211170703583166628942014287916323537583505330861841968812800134482920546835470299073231922950838624680741970360474173960636956104870835130392305918121296789267462810831552248986771883845273716164344601216539808471031546018769557763484232179234727615344589876586943204302827384591551881668446464731416926428363062570832070061472072398009367011649991027371582393675257816367143268388609929571800285528866652318144490206352672441944903570183606898476098711869382641189924383031406045304851201925907232272813050214535716111508477619971577772974400142176190443960414679132701954374099195790861536146191671850611746129633296845535738131457980766608899233319665270489348516333714444074489803094793260382919526878220494806214081442856564068747645617821644699927354424603542996996844421890139362961616347097963656736254257964866836993751695262831393943861173770969981590432494695737601997183458548440540468640321744864510005237959455692390967664455587875475302501960143637713830101639091515995975341185627379329768378314086376261713424564993268041623847091796142247622270277134817248991322374144361018299156565681172793281812585992592204921890334587538469196198132406464439542069354536012573343773895716675675616274358780395230580886902837961101603303179080636212843258473243381139878010954750026302574410267137404362230619338213330829281173630641760162939244111120811630660566292118676644063534526017499297107241807342361618430920791098262059773398048180398971732213809070497314564529184209462090301285127306348172277320434816066746221508010237901130581547825542759791677181815001321394431915619584801540353571791730001454971763769633247474574415274255440112717663001930927195104746933359542485072534927258374131623705701454809037707801075951603809345131298510950515936918218218226364965776088579836902824732267940432008815591956669187652562622117867285626559192089151561150383128396211603746160360985604410542685751361637959884325455302161500794620814514302329218342618693430277630754826082651830228480761204775263839240740473469612561384407930853204992792557085636744298827853789626763012640595612552385780971946244309765122327394911003895033446573739642907599948648487144369115775565115571124092068933306489631771148169103803067763540924367186820555502028828940743343588441372589753976733380923833035595402234609320576882513892974758817547363665364947113985955912483756683331967533118202256170348712418294336470991836677010568352539871091641469861153204172574020183570177607319303482177921236094604043502599112216556762720276137793751248779991425175164965035753331728227672402325878371324595437601508089258018410034095246745737735373432950798088085705799526740784574337363146943026813685452942839964371927823512868234659831671519756788076011052854509111489850710593139511843745939960812943416792167842669374610507490213082876085337865262163975580585101030432502823181069723788696609183835858485736544428448842863920934949059712935790791489000425430715316742622159768846650011599686318775043874441080423455995671319715279167897450138457376556857554677425392325123365213463732399399973766703512354385094794665249130104970369612857494867274292850743218236751950092180856342122484398916045588316783166804995531439816637948951818203467053129954768398589665377278961059748921778279814002881504495573678958516767952251439879769225362855127076155544702446007493008112885848483094859639512263599267639098573842609961327179876002588275103262936861139986449861304757956427767466368591184985434947850072801270693411110796216871200943584657886578042014875300598713980853603928216205886867591551485566417629065318387384396149307069233459753665916978370691068691731342222454649965975105763627913650831417078699783364841775113942342307799975887530048375901493033804833230897873876136466845825034161496742066779553575198367388154204235375171647410340327673492671083031817020527984576469299341625753061853038780196064377632729054725620252243915541185081445450753467090839443317480925650526393198967263521928267000583469555936553464967281525637233686809239985042326225502636721325106072633111193454334831403998247700487258156028166032589120071375419813670802993935372017353378040980129303092222696482046282656483442404405913628741234243468340593478740601661947771105713898797508254573265624493706644444827208924669961744681300125132348319602760016423983986449231000189325124501726538882712121029372974439477680983216950158746266369564001232532678655551091731376757282122283208660699254552666305900465717521804856888511933987759516148151094644447114103155908411767764024662520622517436987540785108015558457859137346539247119938620486781006888986533524853493505904513207533874012270021186906729188730413983256654702995689171268813328818887066541004359294834141942643149893469193202062332687938199364227748944020214111393166248489672712590877615525338858794367877442879853331261004993675201915339432033420766670107594395203320793752846724237083106196717929415328837473161257595135140883778242349150293837600604626650913137857237427849634471313890284274614836709486036103241775115954523952601222227642814485770052462233831723604233614524847446966797267076524393448644702558762607601400869067784901390311071140452110352964789176874374392099688614089140339267897460081171620656945644239723587802702023576399185327783738090190007972291793203839319248837811023984236838956957347870248728508895234259667758922505318415847399132923083204813733332524876598958264094758027287014992535386262785372499182560385881647317925885228649714802546021080654733384089832523356202099014936018698309176791437406679682166304833568296868896889614403392802892891811425239916120121488285843925193835858695926867887724053461914796076760140746911285159855224315733739442349673586188622462152171318417117660465224386261325908149403702804310166301872661143222518229967803000815735899706434664817706491562108802036500228218587912408462026303578175549579728033469734278060640238231469432149128315639454749238880091236267593377245225770792856637036822711411504310590621533147076341849253150025804805471868078170069497750304023451690455738028436769875627056461866961653164944641790869227301042825609099167264381772472464718708720943917858157213998920106923364870923001877798666977687120492301093120228235494986727275659310651231083137057473945327935705790801644163872166463706578804668158164950181402817090339685738976929194676151470778266664258514491021300026066526719122025714201878041404089725947146669805529830533363854005325373156965103840338115076762062080979971132197786364440883677273142333007172038984079622303861774254320535715575927768848615123194038252167323586086111399849185080248905646774239286806916144107351951789680372658821935912327239254596881524138517715285891824888484529270562355786728214965773914415641513536283058224139304660801995059907790270793404532983949107902044165181367804122785150548493099243000047459967418707560003335073316787533280502873043508522852894972132336273220491341103941203048433945594097829034195935855643449720838474543126852501109774156664136436724405918616659115048891337748166936221444228999266826645023689895911484175965404357282640009378082761235701342164546250209608895621673801759100281703032997765449501222614595660683125151252096707899964213527185063512595273225548079725913208848741325906587036516350754149041115548709639989077881692901038333743110375439067616357687877785786370551440509439892093028086258874069000675341358721786932788582906128961913275576835883970518370525100529405498295853797154587118116577962960783330429785972698702531004904958230714652200221201351914128072724556280385123385354022808303451622289940797557410171379479780140367438689235870317670056767328893221017179945317224380479267045831306332120954705587153544170496286634785984412058372929784566694492566269356573484382763973351883536695565750518686548737654732727992781283406514835957215384909944156712957199016560559503470326114619535049931617239912464322667043960814045749251034974124156804859074366742251955072868956387633862735187696893951147106626877903165423248198621153333736697425177051111465644687531753694684907301351942330869512703318787357572466347380200061991367342656091288753108808795794496370429053696240918452259228838503976866228157485844830894735794443398753282107474482178734295363812280376089113126663590972457007088131943552281936210065921595354208840043360125690366771307567445932113243319121651402103685794737428456022801720222232501100595700722148923206587876865108211315364688517324272639002391072844948205006811093753905477469003414544288146819241924079902775115969890531649837791007624645759424047342811141878819428708571064484392376107795295312357441399312814051169403767328428553114108264629606917284842962237429831570285025740014189782443885722105565481502327495371107515353014677607975662535090265274375756282821566049805309276677363962912955416615327594822061068751271836141639619429887139803897701904201437300572074708949850550525067216715875564209411010213794290882575205787727501524704020900060272541090252398875661588802514476520571515169412451008848536178017182793174344139630242952023537317910499518192099128728995752380703826660638075974942659252619948623053644296592159096575217463537836857209964999891945097942604935948880987950249688738259335492916963407914971696527734610007473600775702741723386769933005527486512013225070349476017319969429299473237096536126249229961436627156699452118259269314884288313469127450698500979466994051965611712528574542466180993100182135106201284437814754757977459813018171833129448045151448836891593436443092862885043683909046394916081056011407181491670232946096736381190692554166616897764817702485739187918790722694502308435302054688590529162712259410003406505326121478842000689923623967396445289262107723649693228266935387383288897549989216567783408557849190343832219862130613699392021911040309888136704326044715677329625702740724800296849800181281694309248355333550686007770240676239782575766909547773530405035223751955440357153619751000534397915592290741514165147899666764218806453197537947119843192215806806898570011486128454497205928257393758592652846791884154965622032595323229886389299619832317265251708900297624355833984695762644512286112138709445134950328778676106536947662988566054093075606896928297469114871327412193775341992966327657029636089355483893279281048832383989378882492578475878803141881245686845484689958354603720137789222772273580304943631571783410802734480856946787494363421386755085282978611873853164632867004276474741668373941606237765219790261865628923782099367068984054452902697008216622949043818124322770927998854764855241397877322423277647316411378959875319235908602265343924931274559134869023728171166315544835604310053212422979377357569138773023266373460964272241236312917099038973473527505968700801908505193762205999143377192317730428200440351669613564256487764806080575597384631543728406895511403146740382679578006385850093522067068081070204143498773297665004549859783588323328041550535648959191025579014049836115205433184321028376455202292498012752839031959203769444592942120361916529230102351828579304848004292112577031969039614632712695092699634025872740230462947618070200298484979613071714261442493435398042393663340389329797815824904314022445958104670209762485657934206954601784993504654059611116944305657325024150333588419930576548498276835706006157043779403399283272834021676939276617227031199111972601378320814065374234828330228304856647068196988282765563003237333854690953193566201122527219818078671431001920950566730294690385871400616691200335465625239171643951331200877691565905645038402189756980306087551096249849424674504348443557043474995900142336104954439928427119079258265465661255034937718309448089827093551533820304137397693777931149999447517483529717795761258476107021061753383417951811177331387764113483717365583979088359572489941955665450367387661933871174708482190665520953056412873067354487295504459349706269012533102934551691970402783875200930560900532550633344995286434680700434109077159800227120999903396908645060259214553776061586138358399746741665824119099268803751027742888479154818730561827714704238093680835532160821319384444356618509299179634428713786004958706713607758072155902939645399171818089137090269134230522688875375930806233659685947933390092711796181852813092199689312593808025895194013138712209191794801380063501828495303458908212179516075878669902229927132439265639749101440409372992498360262721503366208511719710466555610972126987574567476782425035114596981547155638998454890768248114188501988419910387916830077886060603186005730409518574859053907229849850105753660392326773248676269101131863851336485179022422663943198483874873565788647479484754638925578503061173736605002183188544039595591851770741969264668851528960718628824006207094878428358872252947265232118621780620519157615974513220527460728125611290441502606089348630301106574487053030997710809902041709058395100463685279222697828695111967776440505493015727786909551241281451449977814084700470798989798363510204741225511043916524131974829923961704843855930285765526879289524531146057705972652416688639888902930208464906759437583431752023622572099962530654068372484791955167748428928718960775642623551882581571922270935574473063508324109419090288234457987821811698213664503666339766319689162222126470410203681916242769896704703198066094850453085715523868937664592490520740402319242484482090823617022713371358356450592597425113803789325527571119045264086360750420579220287278079145131990808719541796217065384316345750561398657059326713730392234931780170244833550614679863837233263320219060785370796253819369978771154300725737094274580836861204357144889432922902655225521170292352083413509708267724754946726428555922103647568085361500637647998760038201198426044197198258947202533009615946097843082212649971913946426218295290050147601763449846416111735594896052706643562597001713116321072829577234054056304289166006018256883551435634806492378395129090440830552217840041377029491290008382440581645971251994707218288338315795544067895095262327425842214174946015528099055958063911228121004682871754685608273308944738959077206647951034997497402385667768411109889360706057254555169857496643958007909324354947403155257269867932869727916968223030958896878469574789364914627085515131352213465589351546181953275885929628679740730204276258641645784569384363382225318842864964741065556600296754224678396371789303824283864449329272354910939419916941502197448706033833278838967201221766085254842314655401701147873974098364296178622253343568140018192600382284849516725206610261731013964578942991624777066994835583187720667045308726604013276551232699563830644751998742653528113176165887330205859900314343983318410352975391815441981206907457502853536045521914611117781544469964543494893719253872660709231972321391024373530635492383933590536436670920812754750190873450577134222917834470705093340264536287761073674856879904275082539029826223457030788883356637770567414243910021189274785596453917652239726384278514105963513456919639629882288079752301081625572916025049140637966701209126662149444719178632751630474889041958721526940174008310508179442055110603619880210905301443855248836438680013238587129097734553386657186125821839439814524252755244783387445287349636443759062773397497202524438389275631392321449908001901194695576547712813579433767767481505812593000510693533223580784781594843785800197545060557239272831863607495431960516254447088757656751042939857535308072968711610136048701922663826318645012592489953175969478598657632551207778753449140113370599962528624861691131448235143040937881805504110299444960892449306859763586174506013555293441850318546384176590106595719095325484250955223339432395718382047887934820089569783037259235535172293429953368375060458866781376396563356764461863427206244542955705507447912621115277622958164706752642253824801272981066921758470726311787099660589378136836372863189202656343031225620364819647043346127470575694565346826593209661623983791747904263207662160744083648310080126945554057788577862551688764158889153846803850860492844313822772556068621496583251886342564905287619802731756519941113670662710871146401856134475225304755340565393461181868005231834540582273419252078457264523328826008807012572221925372853626347760521543044492322646279925734603369254775319553000247311611884273971106708650204655630014775685676814399921051513968691817788255924032426933727582736357308312966408358478574361408663946579776512337359776599074195094992611627154797504346625311513114462612982751972776949237354000001548437514197887345281672010032764732862387790100193435629159858014711306781330484862588761580500064183448407273497634222351804729149452770103017421287575891033390320257454520205840264165690183239915301922143488691438983273280070888224550268386967470955689036017933592036543200901082471884746505788203264345867831715506218157993611504168201680989283663509899673762122638402496143965497059369244145667088037972559269758372032480856096775023804499269621275503985821998936826662657396569700298699851026489996962581570130591688834379581325326444309993402261727972280242767659505635822853781466035546428843447105325411690962820098859786175685825425456695750250931331898795465864701512301997012111459178338550483099156497002133309445475496260720172706796912801549192474690901176317298810570018864269980388909720784606723201419096614916320950761270339757569871475972740887807447652089169747577097324274812363124676550903411060216588539560145955411859726936470171047062320743882306475102680040685016243287978574903754353905802955455459421818027013690639625689712685547565452587175062108119970881784388344753789941115488214330306619684338120935781638981915132089801076101047247245378052128855957000703350753294309159170586246317239966450721836887108262316941556123908369684653579653224830903517929737125930467301945310263127330288433168038016689091444045320214762295955091311663032991427032694531690504324238567758144416197356115403716327343575437787978147085540516891706806462590273251265602876414587215661239732346131380808671846841801360271112833679150631964218012235404699484872513781466994358510162011178813035744170860071397742337661702560531856755428482700114634385705050824694108473520981703105764734647089358882661881836501754175599305317225220075767843530028467574352887534681858386263767112173485878811401184833127678848225029624821039502575241096370884284966434218943477032825620754418211517018638512323626576230569845990357627333506685783088900308921397479482147092043721712772422017796529152365280297207422050805523815864761600478054070703130360181576301821585222379807166176951693828336913601848659862460757218075746683899973848157131677406355330622562943365472079197508209605880572958853410770099119255958026799116742784232981356727573325747052114560387015683698472212419572153252205145221649993499593968423763781456451179810346716348569997179622294728992963107661913970768973642045567938172565350311244498366840987914333642955161025945532463396775368404517544353303792402149569544980916789546382057425461725875362817990273719843145485375271131235642866472212804462490794895618093130795990466564818469995651544864087686377839348826270486837099366810205601436844601629937559451629913500008965906116501350472988121268838906701330204127692203463988685547511103901501041288702664768098164432771845324770783378015744708977984954433680631108851385082132615064584822399786127338993282248435705596245611215075849711959152779339639584300253374335832265958050874700839290429009379679369305532655317854773036914652297333282879262067146493357253932278922473393261095312279725450514335087952503866261803146085784863063462915835708074821346637819539026812343955147217220260109188030426688790508725928203415515275294485497481507567315329484108336525367218994185310484307803390337317040607049053399535482766990930328953121299810304774013901765288660145530334914475462071657996166307592440639300253820425376055032401743882866948874751091752032555156779133662258520640517065250858424543235995473635333954973135709620811234459288368536540556684626977582564058460727529349610146976369075066272605018185059186169377569852727342694026328164142138561601024813286262272924180939811300208503152393702573081670389399788617376433132366864855978549286555514716065075221486596231400873625327128153166440115285406066499278004371709157076031468571346704540297892563965579477489825671038287728512841249929774890043624943742142225013370259769217428393623749390301872423735844225752034852113127959893033434781383216745270889036747811713127660228019997541227623408957174774640427821158527393269514657574610183998886951477198877766377620571874761549595655015966145062071883694625655609659796255814143417790801410228604547457584097252119224264228284843573737472329923954097221221618777614438713667413640520653105505265092259885266800372319166194208053646385600389662501219818938063134393717453208061833240550171643964019866594345298487420864802604329843606821377017413176426199204712883091355393889303051896369297161896509001631044040592952410818480416182576496737575862025256886545037128794056218253299038811643050350767463488428398549881135779826938652982232975943734932739945287416487986567728510310085533183144345520824565258100980281323272937378193116027831139530225053324518467143984019977857158811195221643461384821002866356217776082497602925395763065875816979134019432703533799320857671587228861705127281179377623138605991185068316182619420460077407099533735291283110748857125455982050466840657900069882315012041943482410109743677717116471658758917081380044292790517341113151650765092828645363790198410996846001478203444233815160022090272840409182021981489077079625943018620991701881283988479219306033908764143776506146145108931690086622982029018661893188277459051228652686655944514615861512810093482639277062256008921307587454431616866672391632083864746001713691109354469044095708568054016808764219185279381993118202107150922860579270670550334941189554405576260371600152862647532110513737525463288872929421215151539362724305145586676647539310094434869693879074040701634591188828721343206614200576586289018547927216996660005444335861676156802353274606502174308567073622073260673878881605947994662541028264929804128383885244467370835399885880509470132765766655840637385055755020819530989834744509921210515490596492706245327064007512394542149524822476130181445318779839270047529469039985315713710892107086325240612300511360521908502030199921704514555214390266499705388927960439943039310837339328933085690287480095545774226504096809701809251151409309907397013618353620803171646451042873228385456473807688441359673271891970548412256011212546459873950164841240833516762711424628384119415624987818848001117017847232016960645298184278732513708007134761598121342485855587266372462454919820855227376326918932662833909821542129350831258543443467106217614009763268302196458762869701552118675761780161177324667075674990068228264324252312487413806872166965010101467971734788929297244931018167168216302889930921026976217760198863755008029523013538306130089518804045830343237561997990673075463283617102672715672584063892189535846810397656319225948236030652832474317094852018029654078130693310535549714071019414264923125281812267698420976218290452904975812792911630246708495237310187412095434843070591614395502798099851611042623684008909573189738110252093208805374764007973683305714230587703639586500813744038870237890950413740470013032989555042243365296171839283143334780969110888476895995663990037902400172435420749713597308559173609447885118270258624521241067126104980357791467174137411263801222790357728783204940088987220736646182440800980992112394685270594270843690602919451357540925338803992242224959389065481063958442398837473734229158113875251084698203306077945441197864739763601589668321802379080922333713349529275841562223531721853388975284807180335980992493924892195091142488319638935495288147709019471531907446952970815043071186506544266384010283031509879215341736172474681887150953157308796766521827906329084441338286410527279320093974959289762657206344351113152626742341253138668448871426462046355549494753136867447410495575140078751843585461693497019186663904672391512454544371998288009761902654427185052690885758136699730035307340742988797132269754750196956622804506874412634361869267565457961740249466055685209478107708516762039604049456143719259873380682940860894848229821618323952780040795530956535869927272482200917409717959372516445667161918531105775060002451218342852049007637965251109057930044965166236622642921377563756816789867250368552855557840186055835757623249526886067998088696662330241320035661314343852222638917225755538167431063878486693387096879762382555216493395916812198397963398768234643694760358045017549622149324096186447092007022777402066362202848999336534209913692970009419456902849526916442351207737342888166735898425707017939183750301962478659329559223888993026368522670756758930640224247932636083869091913655368710669202342158222795040563870343229354792203506730436785361330049953919794934697806656759244822029056797634255147119581826464581253553761852160761505070282880715284991244068919581041318516238824171464487853419406681938711831228890444514749684155800103748476328943710657948061408137397824422939369106625150283623319509194809810658785042884861216356503828253555313721816712169585996851398323761574157873702707596293267107607179633391220844559457813455592039639914749006874704215669947227272073824081315133373827463344930354499746522722498729849574943683534402941791621756323644093417812236989235087710453658083247552349271596830282395790785976935646454745375991845801798883900641549257288976195475972002985246719249934333936649800666125325590919268258118835345877113597238574081395711101787455959631484308473973832828238893953262816845271320889554288975847436065091597565617102858284637557163677406531881948530527082748143846099257593795026343986460708787274337218698247607589855097028436315209762147032779807040612722895910713097957597708044136936424636238613239664752023193665059818584842566515449353887130235000435797143049276433478355776478219113110099274948315832608144439558723345161100952268141994805148415635177399681274296692116679012915915698734915445514880736942843154824040457574710488525053204976288197799144270432932034191886650094529805036612251466714486989473586889682790623879085246139781199643359726511775015934191618644116553295982294647958410841570480560933167080244000563857175120930557639366318206345563924551908421790762731499972179110614754502065732728972444870326194378968501274324946671598061158493456315867853958845220751440910902623319452099943258339252955092254976391565002692418869081259215797017230557649677245336590215202731595062576876338057537352555249341955732574199777433296391984356074772600814576523489876715005449465246516709892347610211385986289660333818995034964194826925421494230566755218842379622815493077030882519883619530117391797428318616217648114745162981628820859409285733552633855602090977194620477485939091125147900846632894718604937324870865976070139693055125075355327377889387732356020420767149037590249288347641003776422012456850131650987826063099832152051340782795177483667920668377977179747121272573737094274067953321241563415301348899020078893177923822996067915156133757940443564152392088853880463917000309788032314351861156527470384770884105174460181856780605751791340710771244399913072853598680693433877356242642934051014207511587821889302536877853550815319605738139886646401364494477465363600582567445891984475483246442470248578517932180584553115145355754431013944373440757241052118005930644676240255252451988259193543765312011573311207943678803591171292014050792997220795837775931987326976028130055950073337693239483983839907497248934869407177449667695209872015935131592822102263998759889747545053421827200641445615332023702095836002728864353706050604957736063869661595011607033834960717873687162581741853860964469889566108592775908218985497414764816594792975183002098600167792210689974453409331379696548547944171503078251336440757148278818512521675219477656122453933792066042164936301723666004526782673271327913477591967152601921000160315291485657431049145831432410948394354782438879941979237215583734206517230890829575314051248484487989993659453206236068866417717552913180428674876957661825922284713087312128761314505465217082020688297576618782414887222282277979017101064596683534388643435111271459518503496402483273282083119532988990208264010320529460322356061714904132760609635887805699134044487078349037802043665553964155193374791149636786795649749934434190173348263792256519227471566827723611819556552327109383660103869207478315857720498583306479049608425308700263811192769425711462377859208000671260282131327981341722149454672986053320812823857408634798165639333669543325719539598460454352472771980308788033499836527426874567222630505614700255581654117632865142531790195208078651909190135144638934626516841149816694461371464843532478419433747407266808741743845484156562762465151542925424147020661132260779031767634070316200163364923033223623709474619892647164627489765681434162940511503791287199494504507446832069730438592759108482107792654812076332720454273286302616869673576783094940085938537376278713935654103594827104394793259127135764485782910766485766756055454578318464679775077990880350129885911026830463840060355557691491655487423270530077225939146212764133720697821300789990222196975810962856805164858260269182475297622209476470473561314020668785300110946110414843607824878928868860442578112915333409178257081964211936709182630599753938853943640839801363094451724677558448358865888804877671536759560472552823268994347713421700769112281089203863928385508284282850423812781236434464146871316722521222503259303222813868052231506938337750223800546712735453168176916143716995901734030388820476021749550396507237466998914327406590631113512860462589795876720979030205314901048827601074783820283499757104035144913570852520664506811140717774219895670969017058525083002142603507534948395625599273914246471488839982673461177805268323156773053208668859512475847780143634130082957928355395032574193163655708095461533474055149496487732844818531037139485452429173692202755390940875282392372892856296148268817428087270761039723950983993423529393381539511938950991408915672198406983253342975531439852201959780443357319905372637028489545538249450527688469026967160547846261050635992283981308174005843434897394982082844042350687735527669351417257826197712598661813365980273808735136165966930285279348657780096210234728454489997590649430576987981081883044093658934086233710014339475406374676740975556237339321662943297747534066617116973236979272171199765650244260076255087449476686234342457789307476187677908066378806011580141046219104957995334042193275506842268619819354210240518239097996470219677031952223083138474523481895065688989472962667671927180859641742898930422233912458482902208025372709576923548989253166560519066701632198082499427820452882689105718251692977414500542082430797327415613478165765957906714967414793879270827628925794395450017156889660025469639475662061125150159346351754182208040827133818814858163025311379440070920603988785378936067038086573478795773052472028472809944201333215832980217872430685120812192976755662915816573966234814899303746589839284689525026925620445109113448678174658818946668738631878851699715819089076543795154522870898882223318067249625499759051711306186281560627890999339226777450194039962940429204026891133006185410547886535878269301351405758526732724160377121578374061365176833132140247291929116632966744787203976432366123617067658997785993005502203941339309194165752310785804125778439533581798809546790262962114721149380091731506026613800339568102267193977186149776184772909678226531509557824994286591614490360270678005387281758235660042511944708851904994987163380746566431957887132326619543157852013032827400848604435393966634301093102020997024945798741645181861786353058813406249263488596235400827075951127109974357212174822311782468984709990158652937701566763290738476157598924308316374899329959073681669226039063171740642361760831258147692575693100968508422243645386419858873831355312372150396428243302798423549992084413574502005352242449973885271060733561899936442709469428154374863761276300142589487731676442367494760791223345382080988848959765662647329736871726583066188867435966549898933437617032529987593215140715925146374999187046269283632306733034328706921169099390067745321930310640196116131202796188055561863151993046381121723389366565656786081221596288722763524087776624706565231615844710865194058774283959768252110738401095093155450196861633161620309535500658908453635928670617949702857256223566628992020973232628304502828769271734291945175686797061588181738296352665652717998613787576993097724769922547400848225655069788216946223326323592761101168726327033166113146431354343263252623318905406591686887649405126750335885107337206187861068659872499038576794272320251062749159877443565811270969137573793796317710793287415607965545544531957419651944421137225640613117686639936184142657508121323919907870553944830146529490660170779315652838249807954560886140158605258784651753895998372195214260388778672899870086999092883951355429071769757271936674361857022167146376235881009924101141030782673960755178403404004916523018053497358281443516674814682373004852581686921418412490804691119449270375196358185730310731511794249741922586645953859736153551839547212359725710801799564274910385909949131737888156823758696137379323622992607370442902766445004323722343265929012841576971198352903145221007107472547137829284233317424804701349823496235643105983651945379701700989602326067398411449173286976257458104384918678176934152692767792140410950771797857922536407451958934027358494787605046935645064374274694078726631719289123103979102466241456652348246239364610043261733258405794208818644422651377234193043043282069229779589113978406545032637374542946496223410504986779340563746030923801677309445423892644656818505657984492729968640791452411827280412825256469955121342900350909777720069248745645467042260149165322260960936195542976368036220261190426339241216346093884961547833658792847828006955344952386828287693740866328945310042041637147195834938674891735982549972460660432668658495646597698206720846966351069040710795043058527405804767881462158750975905899147925508050014159743188251526961918506712790024172689524780725861223475035566735131153900792409346000554403831791620800964169112191691048910816174088989399125574909769445753559815414683392356326793071439418901735288020542342849362162382925822711082783781278170416027526100153716698082206545741265932664497965400980141883463630509086126139213986236510996806240896489493492843335222817828884687688827156947053498778696601440403438983145138511078605020723884528628906864134288486767122464046506554532610093244363574225133575934235726545784789445506664901269341032206164491195432587618213721648186637861877379805735584924486908088727799647499717619533736309885550714061210581588863576338781833308872550188847572495629435803398317350503647994365035040477671952394285717378679651663453339398161892356662763717010374678673260369575607765404004926130449867557023119863964007668850788319917941907864637300298877842925019056044095834261126261779377296149416509945468208074369014452530445406885362296050402466187584994482855642193077501958413167598765710633757804454015203472763876549456579591573380362196904402877693903913125516714182083581133481267828138176959743061595787106671383389577925629091793366817382893042724720936267467999770529051671839943376210471134084532894038634741922114712274076544167591680536649621838588383036199997360279792731557334025591112768404613670108816646159899165798132526006425660851846559585153482783849871418979782768978556536423131642753118958434786956734769664515361273860250014641136891015241183576143681528333647391765074595249649586190878324845974603878144672770649637925119747077842751859557567317504168319442076118665655603450477316402862203867611764644867361051288044899895129060919516991052170434963127261163543931581823510540549672592974170602202368974441349752762161884171038545881079274085874099757698238189238875226373074536100599056333693015939191501685229958426404161290360891401590223275926939828015494993959551545262774955991347077654524466759081281250719561215321077038792746821551992583005837025520764201039637418087032857409987677140224702286470250054733545930538570219529968336540644004250741365832190399673165962316974658240072079736342440652802314220989265403868415106206407164576656112844565367455616833094194521912041419070176563711477315309486215210392787790404896444739314640970938812788583708242075204720080840707012009705752529693543953631477693291882601089540979146483262834896944960830237244132125130482945318773802953471817321323792762016318163264106807265014267264040690375054478535071480904782225268150768976375274968342721613174710040661392266501237283224506500834127612460721594601665009866723579075733826807394979077093060165527873802239317583399109715497371544003384667988038625269060488705551924584134071452616955144689217823722940854112000253989675688978547878669412789078441291622904302095829456198116268409372895290606315904489339764761306508446337360993988159897115756837140855177501484123327643272102933044697694472248920970190274294670066501191004817883173417752611922174442666647746714849906662328077649534634280825240581149428354241076438570055599969857299341716320434492103405390417788591626066980756605570545483049109751144194075126937381680860670610152809765313334064788682692564812906418265716089024158441540681389306116254693825057205383187063866900068534981705241576329658054458770251078129803664369899476919975637239470540768641974560789840647743828517766126528877282693013019353325718429250349255401333585673000773916461786756402626949710236853694142961871989006012276701796586576546369734169318073760184569158107102638185621964736739271832745129935407936727842382695991495498612511125492917688507171998780879033464653463512662966033346698702999594532620514558569599151867285194326803581398584634921314805288940188780731402165267038894040897192877196784594905618145947945505860123740863258171185726663864229019559705273947890008615986607407538837584272812566701118211209014341193146491673495391782095133502414420569403476061260464396365344128523467238144936610712871016687032098245468449626577811227048440323984048311480925423438885080918632136914146078746935085472820372827303676256750813070931076770332936317233072458491001526377163674315118102228839959647785589628363335372089309413210999486474728964120085236651272114274765545197741083898245907002721617107889501477156034378177296694260844417912706478410072055974406603972621993201593298805267014760278973222504757300693351724689484559422915149278361590569008748391173310070320666676965005735017683782212642099420806119426998086324491956896690047284564662575665338250633084853710309281468627237463216333033075518022141645965387380519274732400269539768168776503379382990376848982566224918637848419240581145463952383616695813659402059617941221758632218181576312696768086817777116064215487492691701788272472988349519031156540424089822603224209300893119484925079852835171455375293958263489457190017354385699265719736030817523458113294755844264860514173166355547757420935025363407772068934084841267492572938459443084417889363551015104315736422370118144801546342745990056194013761077962656958877985783869252681026164269010914684545329830780527810136638252138067205701571316564076527011577036999380244062390105925068114414004092113030721028555008494297698311319207309310405467719470694212378558472911242687124928948627146265162951732449321397382432830711846183466283828572413625176795033084085737015222064502016501482164339158559359359759920394104207165741297636551657460033989681742312554797870588525801732253055886972418467109540210179041139313952148348558185390773043171440958698150008524497961875915346400019187783206889847392479019008858992646044035156003329543735940632915615118809697054940726904493472117960025647803709882795830357689625687447434571295714507078086711890096534010400410531862240816808349229179142720328304414912907606842959257877841573387522045395891942783881168946915622353059243335128338589271453229806346647142983800845093502653938255186723608898177524111061120813337576579656026736109561819022499393366306663277174926613338299561128932227832209393301604387674956120144001626477868261322201730055949265174884070300037849258189121888856682914888228256682659358900138512674251386584691159629948933535460035986252921323098126176841420910790552675569611968088133087914820849884556717969519584949035487396755638609121836271887182473813883414295187086761368109334741546072819861524044029667742653383178817888638685423834617575222396528573299313210946323776712120756518889937023349399943858461707720630800730651491716789144787391098740653260737763444499241161285087484556727367094611350815163908737328701810238019913391713637443041966237576332918493208859421267436961959158418179029262468304492580938967338008741863718460099753182809897718965746536472900182290742807404980222685691038568872111200082445505749284208690227580990401307062289245412578250897084928023550375831056461058498285704129169332439016161338930451335017502441317193787056327465479476728390051527193978790361915642967118091025602464636617446706216425402724525496280642675359317883390562901093872034344476188344108134013811074746270471135120140374754691856359518650477632829529762717893023344371490083592059740333784375026093755791225660578882249215350250374016782888427780841716547454879010682599865603695061746172688012381803879903895601048055927905251004834265571466231022071996608162761617108577884924052424272544995755156840419494207870592645679345704130863098428374607599290381345133029820240135911566090683898468065427543027826994626210926910367599155486250254817011194961994457089742588804322493655127583616850288450837160162151919825811416485388118777508854668406106948130933594819670602467854831635781001766710882423330663298915465613587524837985618418121529337826760974560897964879211083919148513732824924706831510756007546227161355862433240878794007224462334726593967273705429112855829027703531168487921657922129935592426416936612573612291208438492337900983484658756400473709699920573470242623186676242025502794565249512562055866672700528969682156763306405381653491035465805195256537494166101676455471061579019668574104800865511751654330735931915645525686574634459457400600662151704817533947652121526020306085104323167456372171029606314652963308692858566953876207704569786638322103198241605265548859082346140265598707688045527173783546816925542491479407209588893519126616597163290290296056093982235691078234206379979425907481650289049295350045403569580201416134929835201448372847099649469423302668687049777757546260598028045590621372961424281676513708932508645582249197337972150237070652222994594505314760957937383434853436101136586321728446720661692557862642354782480139819016168929719178334735768490267278168576449290169048289178958483174528132783284610665756820876613429498486596845115649094211118501435106030695983962213284736731866560106086881715881461326585234429929360688637556415929151467776347192709223038796022211535236658848277778988179920216072576955616614823979055012203918833252499297453014129902829066168905873767310247961976923452812962987882661621252122022316397761029810899690852372970455970712031264078552833421854078458964189932030060007927531864697354272761668274660090275167164278943705212634242709079914228697291290612440100681776918924504765886047722803194934085692920017003585694979855365399201920196247029033676646455395093073730193491541199925775921390418398919828487373051397131057952902642008401708423858001104175124759789140270916027940809934587680249859273692399064439662935194922402102356053677639885848267932667890680916649005877072644969328542398564155590158419283495903464204076036857603097241225025804539733203582873978675074172214279159059955798728569769561327004423715588741684791638143158515912631164444601301876910106541173972575457292464760368614023515590931837678923866370090060324444915598917530059838084766086146007164984108617789236969500955150452229884870320598393430553611875167435738519234354965728416747357695813256910185675013323542175115227842335099310468992803461939105347664242912757426724062072585934964047058566457239777814492964095686141528240841716298479643445127372236130389622995416352467519738693256231194659081978620224704652512611903389887841833908452816026988772840881831996947834940554135194520402818753632181774855684890985160438198372764041158929543997047296769458600159956401383409523870166925939189966138685550610172997166944741500594938073822705876552027060611259281686592283114418665809972567512356027428415057716857116180637933937087986418584146625394230244945282472366929377682866155301932276769068210209881185424869857426285811798731889753731412591767766995059401925210329096014709484810934154504409651004151776993658908185420444193445249360885665230802664442375138154469139885550925027255177014896757948254920486388620980339478661038612851879432510958286870984858275582656433172418162434790823408783834398992577661020438540533417803379877270066326924364603016452390818844275963390770731253781174785856710532657658465534727677332711486060032858342349127406939797798616501348087682462016964290252417570402442341588732233795323611178040916401011572979551141593616424398391834606316650769410174029298093941144194257704763032834592535892139358583363388127448674795680884534432543142255618959424564526371088156237231698241865551700175576347004220726194431629932238626491792358266101244812932302482609503670671321444220566426851060774186548247222795519207912285437308322135451516710860618484907671475505914956644609669962894992918981783633645531509191841118286531305953515683417066390171998430590589143102285690308561753203641969256990715930879885634138749779984828272967176280922313092852111104405611004397055375130083190263962183781810719135790078095311758511583086410592352648786339434754789912714351992336564890633454113587503586791990806123141570826722064033700215653349319749231600981791120895540578821055642106694380419679822481483775411518367324653726944963101666067028829190189905228109371148437031560264988397512972241398150884582056779558260250984839927229645256886627847698885485581826575948438647607162732948049950330110436582371944530299582497671501891109322811086751224836927717908303893898000447414132477626084309227341664494841854434766893170323455406206448664390088633332176232149554230039905896833107549211584150298439649352808840100923198068569508699858680502610229278472628799159202245481945443255826557960162875038133731319191270817107215607593658073108741879853264385034309286174726614475802904430675230696518286393633380169592942926810264025090081273991764546174212595418091531113221508228951479868636448909132532078994398962970828839862174521563581709597189236597514322946746681588109108260969876742338716511056938618854305404411503234453351765157020769908757589906905946985666027773969109934053564280845986389104944021533434236074167734120283762253697934919623524512867169112196006039679980035241794852386725525650938081031207852485194019901257925006247562156850848512901754428771853766088335853590977494928705538407486500857243666528235743485818812453264329792459705076851872406792854894712977810883461113672385201546300658845374949276801073362430859476288464251828298391082690468293495591354493253022079844588422196048388208554197358513394126525042336957454501224086988415767915061035086222536447278383372577698650652747131710778090256533916580684951180470813771964267140629288822364946626949943093373508552056460080555916396050983421767530610668232496713809373579905595775671866232822148852951759362601021318388806566700175495897939456621891864867223584357432651310703460021635385586912952924648229635687690409547114170226381982380920116364421273174088966062309464118299725988303067830145273517410572326393700945781258234632025783766611652653441149433638389826815185510244940224609509498425849536551895229116907879190754353578028862992727045906791635371941957243219285858708050686874110354816671434918098986859586493368999948017140715006173410971807378886979544222701031202654792518042228148198046821261522979754905968436508144978268371176231457858725846351705897910723625779744282874446145798061528676346441114066784851229295755878962779360285201816354585408800129005271722077815749957740815805983478104062764692113985092650231424640288567547008564967575867693226762299672481615790290903348848815826807120552118823283209649780195252950853598205480156192576783452595916171984749870854669877888140539845418982202168085498587508024096549437736795262736168892717809766481294011801859352962754832370899558592621557241620829058083840003633618754952149706621342239491404793839304508219161143795633869231318514566844883190667496887986496793432973421396984387662528526811174043688421284149547802756882745791091848562507149283896419306493855262209808738930072005414852496349212209645365320187446280732312818505700271310102326960266969711306208613384483471981229799703492043811518541306247992501329627411139690082276444290627069519885951612795138159948951240510067703516458315234193420387093630010711464647941729384309461461611839215459124070026919051437627109117844218803309903240906592172498593765701319827918383172126743255820150543083097203035738862091787133475742492817543987609978840264268432726158423714208481715234259788775257370227581096275646560809401184644084903705722228920408970672966714554637610745326251361324593720956168052123972675342057051582364519886092439986948838805864270525694968455359268755619628067978593955688349529399201400528564476426200601228520871467648444834515777779996726110385724253370951472870494967278951603690589158544412355446280510217286816616823590200233094361859957871285392278720615303657371212535338358511374625098809764176081586341673581334894436614780129437007231762297541183062348570776253960489262044725649338908528203773317758471440649578864504109066402871211278952732477887155487625527414323323003278821576388827900227429702071032197624581782553782733575795911277748722646903526996171007996941521722533461889597177422162337232598843370058994339580703705420947809058327656317161358610442690089988607586317073537160024515901399930092272216145413025254621670368415976049044465464244516660056355028240331579127094530724485106221082142786800753598654562863548457435731157607539370742464808914632649317042521888417343803275513919732785557807600189982001444415713481113080499580324523914783343780926561070450569600685022503925101068791055821115916934955207833520152725135309912447690372899597168157288809918900110922832952989424649079676443172417762801372093066229897299833372833383426973586676080277016883232160187955564228876197487496996775733073335868159613337061096958299341419565844937359767781680539940657950258501984044632873908833730086941420427728627626751651099400868734907487792058139826087918062216940713671693311071996223597628393829272985056841327398109301280130138180033479085587419897769875782229497179058106369214569258965555882068401812688471472449992009986841351140906128709655743698958671210819029667535137581177889214996526475587596682308525223358710452264672065522723751123466455876512641936318400403960676690696817035672929901341578066723207586431367886429693187814099906773617788879878553709521716597349716731640636548973523796518687665518639942554957017791403850012881285595543083199415004700681685963996211522997576193061242182492546291233246596019923958813079399112769011857527011322504348912414210271358737114502978186615886842319125985454461914946286036429820285728265851953536246295056002468348907811238814978513505390001270411317328280857310000235410225807817638543563330864189582940925533540648213773347227188663829406581923532430483769984825188033347420232182441895495292680038279011397269994847799709927003603894527464349909889357484854797925026035903475837522455264346169894183506455329865349038319687758638888052504401159209496612418170792125840385553811653876320875199202419118939597622265107457284626307110253321878884644141343206222633431287955562394254176463587337882145513923831567320287686424968897577585284586460441503488480379861987491172236624151848298268862870411149868454297781448300406817403065324169060538662367938166272153172778523023862165602190114196927847091364210550055586519049075950776434464162172908520270640343489455752506938913832447146394894244795919798694140186755998714608806794621428561008411812296771813827506547295573423349362001091498884782091946376926755401853780924292511474434405900680651897763874351035036879017756331356063990141047537335625935035519658879097713379471738355033500508623633947895258414254708963767340897928589080777048083131696658107896226407249588175618140810085876445448678340504212139299343330321037338091375111596442630186938773786775818784292435691903800564057911886654466113162410746582148676173460153050775871907799371092833810495212211877418191896868625588428690986222284233020914774487412965708565517090487027450905488645790176944493304073462847145249162572885059212059900530774163591506523203285881155887582503212854209346229923680420781101148649806584020327772803686680175922091008090696484538672487333554393666832905296836043660049931679702275255886064438693050777255537309165151520396061318305251167143024416408900031479259914646273364987110866417719933724502662353625209025353103703873443001686676864049720299409094283025409325651445481425051470651629004182995641748566516957008279351340032347557035062273152393201698485099487041911577903826743968141784846671227566330790993938208090785524730786325666880275551637717987199786452558853346609745807716067575914208130655391435239263599104023603970777202053536466183508074272792132871610437777080843919033475436007361887426672916326425655501676497618303783930428692301144558731516785776873172980408536846923127168281592518401084154112942135662351167463195540467676402134937376922656610660121991057306053056691938366760772213651148526148715937382222402861240893723639311639055598824946393113349504736132767200551665013778844024124494827750209230591665795980679530528296185710920329571363971535914760309020644768450239038122824788276973968069812134680873933999734472331773712144509512816792176570881331053278190214161026004242761711066181483281170755887065479626788767624242215278924197467106717919980211867554159889724687449336202551218685080432682504020484194909332433449192758319779499339933351203406686888274651427177125343070339089866518598027889384147769308813968381769820268039769130602184019432032493447375634959910458015242362526367195052303947932483953660906681210862632245252022760670418836310158498003026276823713390246475538789078441774407067052562701398759551291103534260655140952148539334587417578052771839796306034189294899895808777385414351221248143388225027400259060233609695968994644579149781805544092246416362539414691511843044145568819567159883356543612040883630198654116003016283219467442796260540946219470964384865037071974715030968901616753324084667105632565578786725820357391480897197685427843092460632227219974356511896922556651535192097928098796417310154956164220516163538719598560270261201284171467733924251081636553847893332637480894171209843043578048142043217292625723954596650908492622545418323490864644240168811238378737022932289272734365811331339655573407252785567888876115721551469844384563957553966072081222560602258157451997970091756967051693597284942709377534606414407747886164026772666470027143182965942794430500319320165288268813401650982398185613750937731592345807021974038030123088103540917459238999819589835746086789237108540835006054084219262780876231496634098267299073614775973369202274264877147372306207735184002739988372832079918212615551116251343178153891728165764733052805195959362385647846610797260252562769134712355255863763760797886920321703160688405026892916845553219974820029863869421538793223776139488714503184780619276513294437242575911874011055352739726931845240801231958139809023968480115931384188664268201399746446723617861333007903864301488461798344557815771066953440400915210924599857830834405914642679594979003581134233787434143580795484083804262111741125254844254869900356678971537958085869335538602768264178557774896744938669762904210912273842059480602798027832730395701396707459700956560134772682183843175731573540709939719467229234177817096709496005383757169457236604871032906285173044839949056438955378091947333540252849171623469028611803480634078960216857006986622615072582483082573314833041709898670496589567188649517309693122693985075845052057749716883405894523740481910724939041153434322984571444223137951263826991459971619090315207404925970984981091505319058702954038211907389757891304588135246051522561434604214714605643123280261463909322692922143660834556887388372928078550626709872356611789612497026209404193382938428010751495875387557100292989569774138712226649127180698379722554817819501015686183354027043496055032228598906943002363042595531263832882273335290830233674850059304969020673371345285333691942969072433767312435582285596891607361330034825045659862243659674270270256529221829326532780870677213359906436508121617951783818815163597775230145593259634186226470459679130695827895098249962860158820916079100711469116589536980801334452034960488514504804418745333489685776556777481572375654740714771583537746637197455761044077046608995602850638779319151944361784069879293608485654031046551723769258205035653676730409187549919179275983764048300270327873577133255353031052966013083587474095142795555840701023708244426651295088044560751958164215904650504796309783657532162086715933517032797621215573079085981807052373566991865940537253929884910493764498459024191446878030121864911526218576171902203924581129919754253426745639818947304306319364593043181981605658179510499312374219560996990293243288294415009846063791474180532962369101412911518870460282997252806783624496747816355525258205433195775578274993172638685489507710491067770209700352145961751556908968603863875825521173384115849357955565659954798343477651497705758872969866276789365596132995702347454180232009239806551846069342688680367315793851079623562679337076227352008276794405781531523941461784265055808738468149801071785887900981531837922208754420863455804302919544503347395773612724156097856140003501298442180680760604678941846035496122810588637541757446029393713729373357214872425457186940660060606868970682426206533789424803693841775710039162628977250305445986854154211891056694801383099602206937049562557910407013410217694448056406256697075406105336474363419354103458941354394852304852241665062434970330527074308093872665877651201574114176623538097910551161148996201958695111056686611128075397089805489880123146788666040954708045327605026613282417658795281364220892348547534246606660610599882630542257118823484493651402077270128071152609833012157589234978593777894068353766820575649834819113484582775594047370695716883861975595104927962820394046123411204787245552566170706921505169079515365536227735649763145168061787464380278299886941529867353182926559582642096768921990460503233187327187899423152187053620598879499920122909085927127919646882735295827664169570950958313770034752889128940219930667018198091433024367889742119498055165425683628546546207080707232691182211022322793249891991565418187035223363495080549854836261778096396885007783498151363702574739038102112421127207930560160388115746305241506696372994504270346390470408876241063268408439699284747179771993780410745256661766010077326076377312570000032544426825019622348515041634869227719566767611034453888486772546419206682309519529453840528101955465253340959567280210374069090678543806419081589835056854164587091959442054413910702094947287625076568164738244062813583441879712790297270936239323704445571938604198989392683513667940525571947497721357634653966626604119685537954461045658611918173874354720029206261169203473501714076989818029386025588917107439947124273427228460276115466279216071897496353793225551489045321431410199505439146329493431356195218363360361130202509111535026195302982644888801664465796432196840267655121670319096154026247917379761530433253582161376188613944943338080677802297939415360589060008164716012486938796808262921420627967146883226643297564886194411172813119896579631591892531936761964006444442379839562863997339195774941130608839792526781629167800917458473228662728911234744066197694081582934870549626022176551445067633231360385019275757861799142692816204283632390241205624777265904620962465789426222182740029168363460821136472320261073055115195734648840018952934463705016756082538602358071848832860174276605407742611236602184391557128649371750832726325245029824128041490509380190813330186455496107082110901066373537931218591924516713022089577540064482548485171395752638694672346983877926536181806017819983334190856349034293377497584707822755134326224580040137624229481239591466511580581988527184771240284704407433322582759680047466309741495608223699323630167164058576189468240001501810748509846161179267970853909846613982493479212613330040442402186983061217679958200723848125317909421485207249749251319034024565240687601587202768548886037151413862273880591866487664314184991076970202849777259535870540688831738471562687588718426699146432671618018181994882192418896067961776018062621324765703781395839674687947314580827190813080261077694227375547912135606637033310954280672572678805250634852057155255661225809795747166968273408911840549935104085172011910710809258536155300164706721975961627739433941640471854931872477817671746325114616119737392672115759518224400490209088390340239536027912170780572336561808525955997697646724675670010592663416881049060024764704776816822176644574345719256187138627159880054161643346726363372750656682688977529637404251563334534138187315486169251479180575029102499237091107217603370549749043625440599094581979898360544556394734747523788745472214844919095724143462397705418022177774135337572494065700799334476879390975325477398088025510571976080699741412563055281638595933418196985381553793345406109476364030240115321906676059707176300807894055825831425019061191328655348764479855573706117776045972536448030011491838312923417678059938509521190337276804504989611173727239076767227112175815710893990689005998939780210460569369466162985958064572715746043404698133960675908341122319746260577643901522238067234149130365132531121432760246335786195026187597238306264881006962149610973387163070807012071062900315409511033584576164176833582124093735451774233903387739589104983596942035318266526104045144822194565122104261921974183070647564367038723371861804114557101263722597825942980076896777513487625223171960303980434057426860861146111725154789278325306596798847149597867195646784412226137439060857054611779995280551231311962096008064627690623786008466180023785662088925602199232419219702276820170151762772291824946760588811087067826376110496254277996338873257742147674035642299542337779686458476852072659255552271140869778692765839597129006185666887663817081929461787749430659544239751761328459567714036655356710374406712947598679745724065632681480200568151041623467065076557624233291567717894927190138178158724043573306938698929903690071298668131299980259216358753482317776102840596939094635621453323848978773184453056017926125581547179645003009815109297913066534314702142342256923039667978986355277876688590072549715947130429769421731990583756699570002243358615946084160134917555280163905603235944384392997802391831614147605466567406358503474182212408491369180306217949355869749212216102389730213169812292091678798822149237071495278289395133697145647049534193072954202206619867368788131699982748308325829194734647054544073962235956980956108752456597568220568130063636919319504339330330185819538673136640682956885653450608241849518274218593247327084056534697845385289007049308897400383363578061337443947465940590303445562662569823271165254624729259096388426490960786955989982393597727162016940110627587533106317169563834765963290734940798325182308259694137903200274158033703483421992613584786093694160774441877582902721623197365482280918626893984011430813940799067211715513447292637555706741032191265892705272407278927463115735956049637131654881471607212194155553296503500858065283059088845245881814745694220868875805492906115051348421076605235357449573670214858114120575446521810181949383809619031319068365763356157748856910681454848523818938140565032454489294760033942290202532485165455809052746394967690868529858288028193294983326352502668640868074161413432311884448338861157172068302223492771086206703351404741518368898894182675509057443879522880515397272727199436130899265252022290509105043690658325426462591067376218507581727986492265007413681223441525095821854073637822560149149646310573103034805995102413013476723886243096347409864331164860734521662708501737077477790963361166527460924526745779105735006100580135298356706177134583943978740793494249668103959516549680981261409208184820676971669339457969856880057079611922544421625076220232314074216895428738394151737269135721490235030935597413078671165468490098237907697613785493067457932345487547937330792717018250466840572310071114249067579601632576446121614922747140111499528381143476765750274388388723045625922172657536082694523273044660813960869902992397673726775330475108261019878661964234520187322314921612501482765043642864429703993898168560742980324549903134018372821503079360731970592091053497085035539833353867481147661511130779742391864242095999532447868806439134718517643286224571787706295526854094464922496689048798013145406574428358318442013316374394000753221845712164561806810947634277005073409846386487097690348157582771379425802166628300705843829564801860293104694771024518324763324655978813213657482242843050944168524774374909205235084685797559274958696358448206601740324880996153643413386054796913447082463337132389501997727290056366496425775979249620338538716483761948075100692374331313278435095733338863364450018072828481264716450084214889534305795439546106304297282658577124053228276442690293078943039896114966001113508080816321219775064679441702088566016063128194093043871176664464078790787718827434182461052388345513356031469946305159879973004516441137855136339701061931946294686445546981115387425989881367248368690821155061972982038878459797235640109360943484562968063984495177995388533505100718908562664236606163431575543594023190173219198169002216868501579487574047745376361391592789804043775921083696329159593033146972867518207519137065036186361255022224009026815246212198964135532347309756984035329893052730335412295876279575966028012511218577984686253087489419210442363116176822578951936462802650438809518601472537456950371832470389655886830278929764324467569410417796570327361078479213919064651106964154236916342760798750093137874006784469605040784359665903976954848002093589596741330506944327673073927820084403971119266943475501266128521506711164350245814447410054302108618728544791191059754639107901606739483189342903598241667236258610584595625062103318662417584701501831666980513796200869857321253515015069322045019827224063292080373720422663667778618941611285447267893985751176279620970709144330750741650004540821265549039187790073711137711281459888318761343643580787280927896095929095143201481933598121832849021621449644194157248367455853395673481786794163901671640720002552757295096964383614792080749017832518333609940063392341496790619587513920228191887643549246321782012066073226068376156004648802871585952514000901822336231755739249311993637529931404265881335433080054030054131205790099375056186949081857053222005250358727885698735477400202390660745192467652602037465542396978672894402763130095804879204029685298796543543564571527619097792057083632266887561599948108149214684494772842736454661825583338668298052379364742212284040584488143141758212733573486755292830236374794464902140594149132034280354520186176550401051925574407121144120016056693224093664612477461389246004176645879969395484789209799355013673703867803667823128173499955331295405934911572319958476250023491969339710926349065926354944226396789470923456940779329820143720303289680386685775278301583608813487300437525055679973424752662215674556752368393312834259814580086305330938320840673616725451951645780868668450175766843389196131477521260840858560091410536971485903749004969349817190880962282474749413671203835756667858452214413816653588083112616897239159588718292867449600496779525504133195799742683104421384628014467564039777354265696684190645147886281219429930904774851310466301202386428774718344362998182407050280138594350802127980967700356655455753303267007653097166935369801493481473734066083873907041626613809855544063836027483643099690717733191669113342624664010831089084612627362884052599700513907519090016706953685640022924308215149643931026131765994901439478619027416239854182622645074470996190817920986185237268622308016795233283905338332497813463801699923476778563903702963502907435097486373410545008738756366495566701217687385256271991679095782691488547848466938234519742402574936171880595147609217938502545022757602620249176246363988972901693326959411191672883433066759786419588635684526066539894710197178584185568520520733050567611554201361809633037720720613805762599434027053604045998089048726963118312291122192829117933344035818653268995726041990869630304369299557311091026372338916444587542264485886875914625005428538849343928761519289882775866166528451837059392858605471483241745888014857886478806424292413034605577747129693664818025026129437427906524607378394854125821039183191737648518924297089211421805422309741387407283316401515726934654295465552096544064394700251297038839412247826983509278345185544163241393851819963281583679720068850834867757284725693519318165285705279119187952903157252201271603067304493085077751207167845510754223913993110887589105255184114725236836574634474691199030923157071608033201434536918061636225256912779055577025240641644839273749577717495625050514625192507879930501452398545773511556664265138782526165275920241754233071155576447626870197877351900499605520175465899075300357206507967837640625281173581875750248336427298373833222899678565654020000558510357144085179983728314502186698508409118121809230129723821899869682082189927995083408305971632199711847356610721815960865896622450340167044295061959068225634153411500486502833916960799292769574270056715087768697262441112053998291013813770600450293189904985651968747843367954206821153605332950048696416016901004697012373895814829700522113246726213199786831546255410986267961607421158307741166988955575474263691753273913110393673922096434683914199563511907402864740815687178420388486067436472767338201663532460268771879863576056270675451820788933025372798750582292221362759965218655696552298436113565348019693708912386382979541658715107035740336594249228428700780315057764435150046633439033974778573395150713819385374070255336256867214986140763379707403612823225498617732798259357008200096854189947059472950892709153554134751992080750081677704284874812652590074443750170788655639548490216703033380598008277798157982574193517163300712377667497916429647040533261340391561472226634910695675488264422541812613235295765068570661419565953663112145330718271321519401241443421741889395673297180992008216362160732536729588061814610376685361853374926980106795508315880623987266625117487557102222192454522299295083615009818913764791102233962746716035947747169552550865740004156942028895192157688967778732124097155215460074289586035264375272735752624569992197563336837911947844031177696385359058516429281910382604419071100879099722100276156525503383504619348970744772405997113055725861699642865500860973198214478921200749870346084253924524948044731406705279981125109210642952804877329335485516277154061619384519492595658721056483007511321410564639222258204687904075527492338600521455889023130483705658958199245253542872137204627582695441757466483607594603494230176954613276037496663010332153912201390282654080671756191193997714016758113333964581798502304741694256310961256894215120993756195249274323795550746256585243723610235289439176694091801164573651827753180950408736402302000044321712349297046892756120928268746228201825993373908793832307339833520020950301488675099806751739448232503650824200402925545221519046140429159454514905318261221107320174383913032317804886460847786940674396673831588218131029176487411201458779926112435531315551546511004988731544102838531882387471661357634092819831050489322704457641630196236525471677474283487972347099008018806893751353891207087555938104986018129166164911408875088763837677297616555111489221947739887224800885677526342560342657479422963492213480504535624084700834200960935962764487529428949705927395963653278928283922500979201163431313684589845750685075482790834709181582614632346583156979498604974372222935399846768706808011174017935225875374399765887332023416256620082229491420723108609215229585848708809884623810371287710817603753725276932784844879401333390493594794221109442509334443664506353384292993124454889664124368345467355346170322630044784459972437110231146758379383836147331521294619595223473846993047811743624332530614906605242914615216905690599274075956431947393607955747831898580817970372808421499337268662660373692971551557990958597156401070642045291307449628980011454104749003475220572929686957688182469901505301733891640207613047161688691552955385075566714559511048514841323369362432386651741202298253484541944998334893853960271152481419905966783158558641081465928632568725868596275012846925218218138028549693427359066697120367836582187245687247943000853142457194923483562377126315480570096510614895548335457077403347219406354126994028139368626051184847143125188523815439544982138683315339883146639462634006096023298972716880797724497852055427927088710146245600195677658302980993296643898820454300745345004070635376778866819183412887072160032439128631130985051808880009629810758357512752691327885719254272818657185167132443842144342453665540401585221831605811297885165736518141410231240289642666207964410983827777343524022637313823863601610862622075863620184728182278494191231086328728351799206939939209689940753041628308726952578209797623510174254145432152327127452501944501328107483767350244636862102716250938329473212204266163164881951022985014725933050286296284379756399309759354271058661295418704321324916386477244578696788565540569100515347426965078959861231059116791003823514574488688220664627024014833977275853230630102777902977168266207493678204335259269159785388533167970687345118037804755596650302860616848791439591846787587364633749203854742807389413670075761767745078133770954682528043622894791989336595706790575985532880485359040938865235021144698987350168953567854434986085960268843277628175681650413267755820174544313781285827853602907359570637243366576604691700042510665547309475098451811379088399551980191148051042929007903474307435322868455626848460963873036438042410634450891743581087585311845135534347812376192079204653234361657664666530306976269638732440489311200352457632339091400548850298885509659695563713625753095711364918822262125969029686530484844052929935752505461326220133026270968428095398966261671153015236238320266116701769171186019741051977395450061355071853685239807030321430892207245307078460918342395516256541745668174909357941866325071170845477219261931988801911315118866705230168709203966077794022403817003019283774680602159863424193990846966040320503786008229581658152134955050372452759624414948132796753294536361085874283573743591764344115521064854336766763811503436503781788334353052049689047832416025559794270948875877648245069414276495187334010275192913150646565685153474430799328399406580496192775415343125391649869306487782542274367508220834277551914362005688594729772521375857850829653199445196870117087842289685448444967255262731389418279937374801966826006203114896018074480448089735113788642478633575149515882124459843337988547606274954962792595132991742478984988970937631082503173818717140296876996721604396472288361542100657916848451338371414782546542493873638333917156046240369516797854547728053903561167502491501206848527950847917182102006586245635129084045868844274019858922382236009015892420514111883770643862186003240522453525689871743499561870678545454175018443304615232532691543895135971597648364293506416275111415374548631675110458821564156629392409398363750979005947919225202027317493360266100555819285843983118078357675126921405502436062366877710940209947150752705229200364475087784202175511960631647744719040804312789415812768007146585259168973921672490882055001890734711423954306504704655400135159928256609783257725819031799186511241100040762733972969564759957216781291751523383843724921263170836821907316746817201293445573091079818343312863842179107144230389595198283428187742805036066721444286138941652604774966570343366836189700098394953215241507661042334368715782553155334786390386524199345776431507554368843654992482197914610871542697237326131352300193736150569548822680227323260477562185500989854288589927523033955744778865145559291416728658544138311862348911142181121213308013248722002599824298205672887080153537040633447000250783315817453338306201589995202976026302391286992649637487186050265064862514464974857889576381488145025847611374821128602216543683308085802056521017233656675172246314200255665050101739487682105718453191885262933638930693132427089502422736624143587199726910481470043756746457587435059725813281914120752633869063222880021323618502517227806769501128272930207511791665314111935692078109466381206919856732256711871391149650605889329917939629110595580681637461353591335161324518865375157570567900931671732319949973206034699117066906412303104267710583514935925966875534945291498043405653233265086594127629579684652035723003537934701274256752803030015804709327788788260189424509381986134259166143105682624914516115418472964464759977222033887944594495967797350099749616742707209883573748170157371725939009590002087080116761780422571500177601513792298618030864853465160323948764706227362353846528901543649027997035988578216566095576498004090645942184810643566766985658097730699215366444462551457203484949156859740518728813426460780804564583317638734140221860428538656364052197845321161783760860544830882738660355782485978385093716915824557617898692170543278098407722808292072606318338569794329985322102805143986942169579813072207264406953343493594982222249129040944667589649051850978220950907056283564949019987294340994938198351488752346377786285642819558864230711329294504409503543255487732231992661387741745017229487240213901249098115572127837659921751103718489826107508579392995543653188105228179997748772939887712086333439111214313183606341829261859027939319256408322192261957616088133233263020521174847291555236940429110120038264291007099094263835666087135405171043408881962761152932775746911715464940364705648690452887316713902082451392665419556347875796514064884238873334099167951621609183278333336284023699322746927255269084869748553007617305736738338360078452512079294695977761134994901975351850191361919781241530396948411238993600243872183864823191982765863171079511120766663651977929965552213260160438638318734898433763392003898676513284478062722938099895209169727194226922691535165301122673269097027526633330350215550830400111164907321746634141179399616360223304253881329568661640646323974320667196074365539933060894797766011005702540430570540455524592200287755867283170018197410715652119382476686323577844306593863498094381134468334628813929135019202541712968201059701858279582692729779556059695851502799544705292798379162231820635125198417120970871812180376482040286598146330014513944932143584774563635440643780891782802581659305816502583830226547468779017915805064786956959671188441893534855894903826949858261608447017262124223678693177919829960132877452165668140754474792255289793546227389964473222693458111922585603745538713547213172294580498388362170708321783872672898109133041581262358032332255204057856692463767523920096963983429905568760281389864386204061781728353990204782036057656688796041583554134155123809355007450615034802317097950378740711673915382514995141253414006014212560314387001996137703262285543755835190035742370660862385472390186798603444776109828454258341140162442702163419012984744575491870581311439702591753377494591954139804924545826692392635082749970922481642611562016248624012129317891250588433429263171878731182800567950070488930599425962044300461117425362335793133362356091799707138630366339259833899420202252308283262949364634547725386353657814169785129424907703396333395963335145369532778259950124654832941181194040637805467732246349004281868781434515825105033943733843108949826682835248731847443112784259961792394966463955570464749360145145270714290620302129763302943289956360075962508795183158458305611805348915246575183708999678658067772983604331616854177150344145066951687610042055334233767650706153672754010117356471830126711867364329038954227246377259492174651415729775935492893867216046782567210269697739797532926763349556543180417779196700646622254979175548488377216260803218116871304730854667084455851885176178811617068195650384297594050636466214722709083247827615248334135562862966053240817544169818202050554462217147608754519722121017197613083538729057378242792042084279974252121050434731695210931235481558596329249282233164149142340259593728300188955095107677446675565722646260853332456340223045316989736772683763708474315158644689859135590327122761194236853297745350878446335946049886916360654647020964376219451355101361260799175188070411794651050215013380518495786287103513282525860390177408106269543220667196063121923871360989034398149992603548831107336142187080005942079265573417292443369372047895878367466951132112453453381759491473703229449167750141991785685965523737787009171230919681653539453750938619173379172044455699669320120983747230997026100612145050764045962498448029851970590763362252487411655920219961909240808310295933411660623715606524108414785792804207922578229263228759511014521580498705041930712452432511919628813878555395476992457990266389447321294785696205428585800463640838281203115216114092130007571565997315311926417140907418510224176297791932523584245091205227715770661306741869062510443061964412365123079626791357050396064739772527527083681973160008495020939032951524367506141503015516843929252033384668465413739552012165763668076685860006595123946631414232257790624354199939709423997679513498005417291876760948976408781577939266757796970007136999705594094309857238149392535565615498134622869890093787292819449676674458266653116113215441032531981332032914995619119394608865739204507225641054050951483729760786037399901570824413551626647988483679599145439444734661121730949733580502699842425621148206296919007728421822239224521721695968713439053307276080898554703330547096062159435147915677833444967703419586170799180903212798126169952362103920828784929188896607064808484579309687099207337366929194486028942642396503770453452466644492014407074093093813711612385763560742092887461241746164871773145397819415873502700765983714860334344255341995001665012449064000610603518202567339746675174417763131171022070519596509663796182117288610483153922597829712625678148589705280991274175594154301727404666861753324750011550211970809233090615122486842045471058519984611748138732648494791999957390474806582316401949599257634018650671390971267284520693944128644737204334087731557971805335877682420883190338028137342185822782439403583960009826431979364380785063247418654573875620886875525054638993680468087252353948495316255696500637578171164186431930646343350638688683819386885222484554923373652569442217813089780277721411073271522843990853457610312578016324434565468972745084736702461356138272397173861356508572427667143577960140743052114595123497528261050790687306681700474963350734585197313614072057302138091194158188062438855686763805544860935718736186422819590942358428151131402556144190176829331897230530045732779972133246221557115766110469027646065494569903099553360781061156275168767330287983646936438431574465131212431824018732098915992107748577186645641741271265957956615499194769576815717370965548278489521783248474394562609110213073645424233070604774096709426963152604135371427779309984062299422426959085234514543583531619883061098991577438006882510273187894369295699407017465854519687149998916775167187259565841480678185562835809545596213769497521465238616244438097565347686914291621503591150510639743733491856605753634134685712393975190420967874001110259869418202539834655995095761984153632100254403302392629324239948176179132769351111085851118771389044597665433673075262649113441816758090436694331869955023218202828199520076581336134223173945987597905513905443754987621287361115792757966466157113681578061107954328885135568696939243038225389022395528613581670214183507421459631683918642598662756907672441159741190259211735019810246096581999630602490072120492908225565778483003344638883272383687329899014129301908577634696346569164575194980807183129589783348739149231573197028672520892473399885860688180655055791107896576035113313406398396033356839173621297470616084416291626873869804176785630774167890454537349170640968412299339715905828108080488924730084939378610565202923511365866786894137433931091770400648058736684696549311485320238065171648903121890301152533441123282073607378659853818434277029874172249311456763009185830828525492251824117987966642244819182897487309357773959412965067135909789460548905759166472729807073108479172065098848227913782674874937073745704834785064368514383462232206448725167364735672009213072331383752196727650931092869246695546641488223873446919666846215692767286859937186250227700740570401910478386676059109250707193687360525796911697756439261928527088034441273453554093808304757301322245782454697272077413806201899851469458303507347614184960264693703705301316805162733136560428974566583311665017128214014882186961281127137414841300797939127010672551932517156936899408247782000730796935949981627447537356604379404262962721559599168960454725528389755898402446001093318080230558026307113216799572581837049122829573326297486166820222900601614614426921341189693449669558053903163609830947180617527960961782379384664726159873267956857762519098872925701986708137886659531196427436534630230482430201408617367325506924605965885843831811577927103456283341012043720377688548664413024278405420769955335938748383723417993295910558269521736468328834637309161178761677150416578048359636501611040248477426894451369272484774010176663710048978531252036286632766828497639390140446022147473189594139388520967551416075497778827481364036224978575468697228096732251298043010304432272939375288434787240229145842338350769185999537023358645286939000719213840186282418676507521922141902827500289224190248885799417697340450123257907494425037109862424673241124092434941313373534174651455228185589217513572542137996997270030400958018569069764097627440109349354257538329284079125589437306081039689634045200267506566846385096106310592430459472104337429366337738987652703840714847940523292453559401966558709242295662639754669072963438469145957048817270939423023017774677696605158629390559466429273733576515465105899300328018392769122273197224826345028325122816566240421599376207682252750462020779411105333804717804801143945855095969527382352434752907617605016308000352550191134486777610536883740081456533525212919595376359506388571594413058161498494885788284720026850576341149482583975920722032660394026722242544239908706092918133309439893572018257763349620184889852089371107346662778034682411141427221923059043410365235364687930438064192810331474278937669219904162846703176765766287213824583058500170265572212983003669269838335818014590782482739027500243200829556550323784709276826981264902904676523467395155381202530114161276603586408205036424874851509885621404474442061591951780736540557851000598829595639281751503376825452820799378379355552661363229886709112197060642606874289153960503190843352873545908126846015979137464672780849583184418460392874192128658241435506518629010585700842685239478608752342790127669753849438767193379979380463582449827361652564110954904382295009449525965817280220954254609861248266662571036910553057575944833993953177470965549756346392354190082884570384857296898968410869384628874908934748419618019442623402032853392526644565739663499620705743862143600971428149204690586272931012870347467154892714704899705349954571231611914787847445101613448335225109083095380362691247389581427323672492553199884595241391898566348378208931940727378871304610195816837983728238871352757629416798983621050645100627664939229724646257449316483097660668167688744470252147639924722768628289728054850730757760420185646561532446011512581796389463020584872218160514111132204338881633708879329776843377364528775477186208484099577936106643565945066909511016788957850812737318266911192745103259293667832892698719804117625099507805432434008676473203441844574880891440321245001876824638737687786684129584240496650967161179916179687738829905972411348476347074420915361850323670164157993832284906294889584007898532814178593818221743923001782524945823116967802286123924437207884917343735540219528816558133353042004927637323590321713103761570696040958585736454986891095413526941740942036143133717940121610143956799055713640060987107090189257063730291487350334570313216402680387819753824550108840018023746011378788572868148631951067147151698514363888574300072454075953106275881562530938440039936838854679839604376132160008962958778751671151757711712263474837156341846080131220109750240659900210599299477830139128755616867397623900535197340453394587904889566695476623972816320580937356454909133233986203757805488239715570202420089598321982724336164970633590937154447086011489706043702378084534939375009601702314674040449003211869148168171461528572487719031306310685371928691470464382999067065491533290333799787133022062608076314391064719094138789298169337017597117199519622850958724529712735854069107774575649362404807778830483323288345966646761377622612570298415106130287382594728639872355792377990601863242639064466706277070885954324763726165727853793322381396169603883815789624371511762185511952320931835606622077047944041439776582963835418769779690352828193862000783132443451072960288870993363528427817146812684134961998133238730720346902334374485943490720189229796835617586840702146291716240928010281636580606435825736191551876279424513872870875099175572334918210524250115943166390261057038061491804445777253783659568782880666314108923008344235595891815230301370289836312639285261235504950491306015326773481800078137319706841770856503853832797787009206205309827833320212130475450310441107760245606793635223143775362308686291493888810527054144956630456669661312338102295179085850237437813353702451170715099636678495268860106469228675291785630526827203857880636318360416941932433620005788180510106017825255075808188996827776073831071595820354758225728072161933847113154374144722471519445141493279210054011781822139971224001893443467784124123065181289675460502082033764988849346139902951903179393560594371750957475159066494125423799139535989346356938987961706691251028945288857529198550050151186257370316461657726601825378627052312020880298496192290914873979725847499159874989677230607740916062640925191754101404030595313712169020583195747886302886402410261453217953631549304292097178686364341000306745710772820831997750950296847880647317003122000618398756843265476247590359774888867453070201758108073797463220379047866706528295819303202618305363143845159120437050556448592934234721839035656419179758795726917208606979598028086137471112491755778478923879974417251531116377298386917116080129150761039600743869653547612903144075642676418365237241603659740434471593533922203211069986405775663010316912197403025312836854289159203689971599538002463096816911493097953780235524036358255530685946888283090224268764829916146328594870993395492130414587529960608220600238248992041542515461227234117140926491383636409057715926740527529461264419912571387597450696803341886035056367200039902068989698103678514316650562742181110101673890518638517572517898762269353797299358884047816193721679627902635074409883516091305911602589815445509861816336376953518333230398082418854030108329562797894810414304993902813647372350928657517280229184761818548435744582635987568012768395739683326070725816484736176783507040812479284722242714354075609591007464896351872488459453555023833566069603705197428405189633806206921482960989908977924297610376132117439637503971192067637662353123951044391595655474357235438604313383768183923602167175735548660938452340969952621067297820229609116697475429459184276763229130055741001199278141846784789227789508247320004952501463955100610136175639315785180964727980957157495476173057537704535561643391401469542603031852956236327505055886338381337403632329816147106230697072044192855975177124213464573791329429712517743857763361235533694058945348916087737814786174394810558180302428685752857387247649967860925341337983633498113248345144134866402201162009623305272911444106850470527487739865366941392959556043534083479956184071303541790614368396771769014281859735042751006535852856557702860498114548883184845931903662031531546156595477473233079637159959982107427861417675294189117091341187392500898741277063302283391451153833604222740047607017577718151480094969533326687350037257392726901083000213632511836139030819791451679571884858786617217722723417583100539521651729391955074519583530281852658724610740057012739328240456225100120835621317589286506806543567221860301169882696723114487198388859317676918599262872094885869651323241527044954402852384038964912549070637238750219337816727629991095684690860008806003705275411866199555791475421477604111277961980455941979528151090623209191030934058694721168567576263104198600125888081671535371801320578334741956746929270436785175086660480345802771353919026351409425172161210906831981243720633733122915718798897411801067288903833727101062595809049619820581676083785619648620229557236266868980390717949314855260232340643465961634556227511625938977645351726597107740676316443538523331247337363743897205409467764392821211653084956901373811259675566317311040693463040356272676561699956151370340611253924060809070675491244921925986510322784194341380641204534347358100449199427474723058848254373569964863857337318896718981102153974535308018158426285555248258182918025491577759495852244038811136687730537233761903898049327986909532935979459537828594448730643888643842883438669506938759876849487886104846011076284190023742451274052228903623461953106642869935481373055261694170731195246436226635540959379583768361104263803713983827520852012541633179043813842544844741290903002848485464656373151874899037852458157730508524776707627124312943971006718247024112404223838108024176392031358317142469326210103754332455476836863100695669876274074851680628793709070041563406894197741599415905736559525874074275429223829700171016419638747166991809968264236242085597734951964359141759310437732263813701208261270147267390054319640663639124765861451767571440375901290743169164206277815033592340190138966310429917777267988477624196923681262464040126629451037048593921170271817500422341835432238752850977623568960782871511332032680261160226911161087887482720253732498352409458639415783926534820136798274343987224664937494851112117139589701301200349815609339574336271664893860617605934372046794710251132545406710149596031028663252076055691233216361733689688414813145421023400916342738223005010853741804072471177970746117902768689657414167684278484094459980639469651479845512099210479611729311104151862674976936278496196678696514278224189898697463269000436979732865952785586002024061844823259266638592913138927664348118628409763338050846395441101397059698879541858042649382980324198449190013170864816591056785987463118053041753891655328290780090094493515493049762208957816257429628024469058050047429763586519380858883433113007429843970183787897005143003060353852206690714593511980126602664998376105625243185395293351817459869379301812543400311115168498085603530681380712705471015118180703310343380118111079075576705101000324793460808428213434020948463087582760197366705124860536108860757774195706901884678387336444380650200208317664021173612315970678726981777223164248329492000055618332778589228818034046060213651521213193559133318918214982957358475366292121414411404007643545310885997071617405604518801208871955082771162470973213125410971938256517828943416844826870583193842359084754891013617667286659908667472441875439701913835339691797213838264275520481873304216054529073772871331191594588486676554608579186263225814369408617107361372663205973232270573867966187926008565487453766352550833518181478714042454810680642018636496378572345962287359622308079131678227437675066716868723141995831102146841025490587165066972541275619374880450718897210458948129138199375864901253125519650311105313097493819084363198387807730874860554128859899032765111688701272787605183405282334750527621561105393242903632926549434125860728212799679571666498712916242203119356150524618019798101255967069506452157983865985509311804595118790292532858099937347712290644788528232848030552901640711322120160281488226066976951238448357679388026476298639284381397348876171279538756920949752896470855015279063226133331474686707255788988787662805665480408412201422024023714046065504168810415858070435622850288360724216323325343158314690539803164058868558304295903118377340662328618577578945676540534412522277969618618076440561497073991896462440800824931280438616250721369090075499528304411119445956212025684515490632613528671433038814745871238822307792794969184290502744380369897628538493669251619678980373844356036870974705766256325022669055319870821497237104532338552638198131504077965561233853292824593213615463887543445360449637509890171386355689439053809513179923865930425401966541739823176190238265496135710081661847644940880927482336657578551652514276597518748479836721651014100253914784790548705006230292894234668771913442418137950626165290088117042343688217321719435004358107685015822706416372765642633951297166076063214593634639207515834914936104656970916599568821088711128501246348772226284001871336327396584309629248661381233883740548608038540137251346948211536644772346784591945500637022634956095304339789991102840048485279302675441157202065049487774484961430799862992246661842411927132905097672104417102379926730546732625900096065048294107288689500972917295525072262052261616474525507194024340059920079933676363800599115339240132266368306395313833169682430322850480669242141979276392613026523401091219948826999567448560379046354609337885159865514630590959493518700553521876979531997013908325764947022749009177652200562210358910615572783261358348173795687727690961326703653209083148039430255407082299041789400616547690675275848498345254052354266163517717442004449903329654768489002121110823009242879277983063478627515323662751609607889292119211598638114292742187610213674328709407227140686853711795705214755748858750585081753363642507701172921786132682242445631386721915466148124598975583933479168138585448204632369207165482243473594717535255050910970468019312749461335009239340260956202444311232936624111214308944935140726442104115594023430654635118595185627456419968335179302801128500267615525028884403807694545352753765457528527891056059245275042462668381410359510076905170605167825353259983983455700038912201601217028331383944708289500626293703347365477904237535478499116936321139561357668808723181087401257146891465027553385129039584253905775649836428657270879272597039393960069842016608528889513289873749006456251450356156604717178681136673522673345483606523217563137316085110187340483906933223418733851818789624659606227377190219907870145857143268767687660456325212742206817727659715048827226931198652496553561296665963950833557052197788931452859412840060952162918519921601288040676115231102387637889383924428409607034869972089447093497938470352264105377182766336044234649736699350043641436364986136057202930632346575268604012225442507480381759609032484743162814643570117200582747850041365648034556244152525987849251972779509770727884836895382005188364314877510058076647667016252497883764491758322275978405920178682388186363200747090786419035991452235868656813759327461827075588892342668583478730207667528412380199667496689327696740596834726574270662248931447113094494942675612926500048696399738790805744659524017096369628367877733597003444425991320155656163374659444802305009632823423406265599199304776355531593584693770959544583755435343773987381793342561812355329720039491160342097894035665694295437641263331210317566750586305989018559360047977903841301564733767575341398857797237064393725827667738687202141404151830460151261503036212288781473664583391979048336613832273809182839419805254388148771388343562220941620735452618088242353966729457622965819376663573999538870457255857408916510325395459012831060347847090598122962459726703346278137625666710780746084950309150858084577671263874283195157529639443933827480103848755465834989430652231887035082768378463873184650618090252944730245149228630784599770253843610008872607043551436078315563215508869271219520577639205401843188228468963000887913557722123637190277676429208312296539403498158854188190310118006594940874507829435169874733626090522841600309928979182276196137218548906362217983981409568413206561305004894106290868253547238802673153014629134978655454503204525003145068557582701402697696401106934231617204088933168396959236795948636029284449080045007937902708015994342115406337272625574013674658819119796380419362186741886994404031013896049916061451572063096128169001464715004572414362975776147961258095093557910879310822620989029792761749763236680813218902710128990650892277491664374262882539922835258325620036462457447696093074070559269989530823868801389524869989060460061831333433628545020964520953753345283264113852165299699410258452795878231840777649084267384924518818741886339865503194740801994439138760937675782631231315907831341791849385774312873044529890053704417807430616906416110428131380545228297390537902740085617980203735939151995296295705771338936984973015521860877609413220706954096520924120218233931970194088160880711085725488033207488166699189229196567723262157536427602115569513612384162628495230286830204834516764159797639613495283374200367898077949376485132014102606760777510072398074478984057454922085828179916822572827112115100825135119593853455559189870165315972709660339083694278846037987865666118414911698987163863758144607273506373960653957084140144432347647273007546630314856172329054476695162233385879498201353034903603910653771997169345640321844505316068416883110105963101794373175062937071920419107868001162787698755006721979583807202762508856070497417988430001412878431748772253598363922923432602894529073242808657002908455889062476956415258468000568425016205832350996115000368187100063684469906668132308330631379824747929651594195066592598259253963777838373914927794925567069397449119491657560040482631720136516233602639426858516697550664189942064013589692449260791604946103214706341345785418705909122845289760515660790399997698202417432420724508170566671947418745281246068778491289238080825614123957738355765653345720450109177711557346761961064647253427136586376877632773430231489085885430641757196676673597833774803429429897525415197745697098928022811914936204341433362995558472492094256827420174188411647894599868203695692594010386315589809459426544056502127747451732276184391696365736949683212253108616205038361589360319166598864373499872066363350539933057111521106480708492766657983700568615951364536668795330194328675618180286058242645867510776861996172823892944146056804955763390621043712169371316645819501541011530058247964558660778878720159467331816977877034093654507298182634083847273668147023166981374324838678060877174630626020857322981940424741750645382067919863649308459348919110282082365811730979346928120058591130180461506202603487235315039739476698793769463905475682226108853712479123029154257344191973831922682885181655544378949104473300065247100157895646571077354563809570664560767592055079018950694403164384427895187272591728493688719457222390567382664693472734878950609584258702253173995499657419094871526561100789614577834756687037718036583103879118720733802753642801163365380484179672390004059469601311900288688511956642693777921571738719544510960963081573590808099311484566764619661886297859926212616644426353379317707492650524704004435081576125906447198214078182774098936520368777517373531523063398507199119173899937051122063433595710984161030101698795620905007164433102106535585906210613175432165655154445938844428546086213571143730539358109338995828230311989867291982589260717700545342323989529896423402191488375192318217954544439653958049035513812246836739188658277111247511543436838177623193815766220604642809144502601132611058306984080246066028967989940059854306443395929546867654446677183190454783875302250052931107726503823620295937755252850106958616496490758270480089473491358071294386050188908745407855083158498879091151860870958148626289599937855590286980208410650336595374877996385652893846133257207881425719596064194237360936318642753789158018089517344257614110165494506336023915953305060498070986677228919617086370392152361089382508720643047927656928535358352504135418790665424657947708945161884097981307436422989388819553268611792619255404525765673790372989766798218322186931665870777146949944051348799677998724341268794923903434897736784684094572892092511579715291497160335187147729236774146890272342458228335716155235177304070072760979492955387710472416550899275691778526486053290312587101343424114109396298594545103413418502818467473303413763025429137330115350690685811289763677278300561977276740842499915398759247684019527698220831557484263011235813729775570744989546785418544056015972031625932538614212153925029427528495035998416671111164884782609820308357540797871406526780881346418943091307304967718165925561697204596277633283811168944198344338965482607747862462176643517731713776798046679309204054640948289490568303390794170896157875893236510822860834656322602666560590256902527057520615974384837765718743269707747339634392295178295751798284244728144492791087173518525080924662360492953206283055534164029647817084846307824735178011136707903616650621491712145021270530585780133767335611912446447516053964105711677674355892883094207327877432841214775356293361946692933435703554666704704812955078104135077160853351220191120075516245789070557059147248150861311377105301106528279624313808566030811606250804521732020166187350013150217897388771022879038555823860025314830899998378363556129374549603568133938799416151814422381093402507959913231219298204763868502718383153347272102650229380830099662707846683340528632246200145596268704862533822178646811240021705643562762152394324057763378340268389879795001598809728862742213462976962322814711710755767067058572503272283758925778954528112287952208222546424356937182162750310453304523713342397982724296445163674311496235438457604784423699070430581688198676548649839701371531679891081306922696894302374885256907668268927306313678586781116312392210438179624731833849679496208607744039055498065606772370529947731811359881845515573240349941499220207854403809750920938970104165831931608709702243824495073341395562467456015667813864623642755868623660126025864111556004266160177802780318550510102346661020618566151408062232582865162340251199450569217920502676399739689939749441089351630548804464636522585695889986663984798383100574379335081746817642694495464782784820124090241073197888356513885343078428531031645461055080092657688613385239866313261152989085738049843088993042570572230172278260462488429513533830833484941541698744398645127946006816059577449181963339607392533389350455827542422786904505189820340465138186198746057685852888003816439043197115205122558544094254187177402851052700026928211713282267212573152732495207004016356153588710530999347156564695437094659135492327232142338695233532559022232760950820359303621947365221227886506169571747984474114070025849181651587623100902010211803637592801991442003473985909251930578230171026370701635764665364066221271180347900877022362292861238141900165803632243553832577425489758548932382086825800722814647168044612337045309055207310958437041344734276583563922332012933390411163111834575718743834989795251964395866355462608639305939384592371623406879927205963806410342204520503679552922004291210363549421148918037044871576999955906825792271526313129970811243432857941232456687933111169018728283692454527458446337866432487466177941279361435789916691945977645274305264673092775849641485368924112737502644045193024745791730792588693458987058546566180251149156715235420240499657488503089220169577080110646182467006550090777795783516426921690222389794778028267917267503918458198922392625294263810739700928936560154179195777811296030599280959245775921157658617067737508913582748548638126307127690220103224198105381172002175405000846185065833465634303544733134391743765301464364545759262751016067996439732773201461905547442549158053065878254469025048286554051955938501475781115778384115155553843292435545367877748236052259103811256893139960860032758415838145718170599069594638770376656034828611438277144780794934765579847292883299217189166339999331338581516084358103181046785651320039813864511979502780535097928688892116924638061872708107913342841651934273102282051558922216170845268577237010149132144550273188293231009629975583917616444532390915275211159702672945047344271128253292697822487449796496147070272915746580496279533081652985238579605309159292434012946755846351534439010348492513298089710400665348286990051086665369652444700486322853634044681197290625445036684656810852332559537512172365718018631232112454906007085934217437869370434679154347068987090774557066039017472290063709554859365810096480453903177469315666192250275114205561524697402466516740984496975403268808150102331724955109540886562325462647951774604969994824374536752799062699777634423762547836987252771511791852587928185580757076056592757540915458811825115978813856941173123938671489309527818877174173980328798723077549175082448744742018725671690355314849146750067272733490005726071167935393814142248052667806652205820979501946988554121932149641222137197972268973551290927196205183052541799246134077182216150072944243628723148873309854124066974568034849959742822487881096004945508773688676721411832454433854924080673477550430480493368994884344302823686833466001660876195586494257785493257132585180443678250997445192278692842886419309670793666601292728607451385873554571172444807338527024350914364558635064231174043323030576583429127869066055922189673394942017500349504501253041242822400959336630535028236970771059655130676346089586752208840454837259089978683159854461201372352287935104906247450251441727400027001989542808204307536754475699190296129519160595110064845797688284931577507353191915276486180166379743661711509746563412828802155905622869592938037301039994071081510608058986241791229618341024067426886043454550145061771546280881892677953377487201086358022522796097660856722208218839664968969044477829543654492949155946703964001830243752402777223939146283449201019746893744369925612458304904262066485707085532010554863267301514255681977851975377719550299807196032833190640073945646026308917377483607162653873902161717093397764071434514782789944930618351715608176335531082665533240483667913442876575433397239098954982289193754848335157702904093603312197368836012082682416512023420699233368018269360680144613581016815834367664855461204051371740412799405599965937917830265564824448669607853205282464008758141375872802335713852819551279868015716207304365391799473978659595642512178784943091303873147845507622484872976150300218895877671143488930002127622721415572099156080062599458445211927464246528118861387435058735533197833078486522576684878312727219612024961507907667056695235446145722131151451816299055311861836004337665118458549177733892860608394207377000139599244841439023529417347783954872762161637537344472840002097750524901794654409205081426752601615940888988764351553308045538481607999956903382224658310643728588036435444416907845638988357404916377800884695724365663738117200749615601182524871513648959990675029186441343590046867231286313966819505014665651184207281389558870740254150932639807652622790039408270318602684696645658131701177167563043138903033887300982868021596122134580787103446348164887517930514405362389067641764445424565536956120605853187015271533196335732892274929702745983765664299962904417412528436709269799404855665299898712562581971741228592924317382868075005943459249807907967973736034034938812919981788333412086180897624866350821757878266808546210591521737228312685360949807010655073350362488761041313201030220115502480915394920408363141761342969784157763892536796373831091344985624520200010550744830470283795103377259537601576205400093518278777942128544806512209145292002617125969583099631724536332131391883599746427212522728964708042823551127482326528946503052080339556277742238486891388999623791000615655961302199700789112264674836829327034877849537480168273813896734715915741151885419928959633695237968334008704355308391509711251772425218165353693409017350602862312176501059915310901671189426477303355164942595210232263843249902117432543882888426227156608155478478260313702941604720280807110203079156230730991886237259663707963684932681500944927018951241908181896080613805305867476931484863224922284011520983897414790103727709184243523397436056399494444107887639963244400573880157337769280147312987074486394673765918853675581086660531405035688831798683928834076881765136311087503363988717715003653017023499957878427889715111753071990184966327220799937774399962269720594886909092414442749186443835655681822736247899609179547994482945127744184548998455916671333884886184553544111425585221032204813294726159466117645281360800158968814388480030508626902867384532894182822309600228873153431290761227287425876378830390990653085859838684100364082921714270858481281813219375231721617561266250981676938055870283542104076254970129982460277512722842129927789295603101299656127309400785092162679767083421080204796154454001163046173260043231163210859163346285540066937237973728220990374966812985302974691359867194575610218239116276415287292652305371481471807404317546820189503107323923050052681862775428051677757532290623837819923271755982622017389473637975464438700844676313072395504518050082265804888918263834393489230811120881640821785756886431592753944487304950081353325804519941200298347470315828128055128971482123810909205677452244305997931695305119001599698785770029526359145023505428710701416877418848113439324853385490975456607543604955988724038463821969165485797780261601991499068267720196323120728595795161285243639744984965783104881344885688716052446329308537006179173232904713332905897847560010550199927659685837790317238707655279072895300345133828789011051653065943234537739311989709681082263057724478306766935004858120864036123595028858751414213280137688055867604013811502075440727795916500351907327865059868593770683058227631547312166663598451580467557912809888663164125353671567212306542286197166383830660511435321582379302864505375602607222957654173853660889618876125857164419109243916051160174497895735894493800997678653926694413566245086371009138672406783608048087099427640763646900938687861767315840159571645596271209419385510724629242167317361406607067794526418518457900064860817436757089732278813194468810803236505375116302901816098762936173589103072492499170221104988613840134564520857616759515462562006576268325972572481596485116989565752344512227371978301646551169319674016624608136371670252170177166222007617435149042446819153987670585892744915543901964491624120953811795896629319783740546399456664819097832196534990508336299533397480178483978023122243644148626672715716884322285708374742013740209030760700529376142659225192391125399330856181121531571087519661829998947927942765240504432323564480833859078194149605861051667791058618266457239740513840390526716377779916276195468952975148510867230276915637746517153207896295361184177318711263717846612554269218365783684226350330324332342450218259721502234204975856136633514858504283520287613656340733516001190243602340861742440727633313975883873082721999086092879602564960835890060877520352727173206070234018488289672221241443006954098466971537185496703463819024300204285049617205403781448448254366575731301323872230728495769611830930910478934158081795874380051412296054271234151814424255528475907760273774088965572003306121693515386730059331110222236543700561660298791397973317580934595561195514791751883071082920482471557811046466509769721104421842140302156431463141554507967010300600006892163551116647932635938369906238355205953237655769061942594285219446180070881679010370430967206707674623482799637100250136931532808013746995985344073870354781756026039963153879857206301336662981843548337927895342417538632426281319830587073260273765109877108702373336769655887484666269075354655818575642318269771697499065521080404705429484525884613837578996671760860377025034837228137154227617038546395864700552640798538532367201667949536704483812893111440808767561846161595463973836995682294019285788872892699011465641119046482886287183714744324048502722587293891665127051241942571594182201431987688738441363431725028017425045038542492372921319745091998716556224473768361969941403626745861056842646563045956699655579447129108523563785445199381927069740642504261178464437936960157298660817282044781907465060918033704316554408973135405815501970461672474724095722949683405529429066840714461616153170884184709148928592422565240509330715835799383751589263487636667216587338032934814271397529530828816459541175710233300186432433088154914030011597802179936928922240905781018467822998416305077206715804960004468114844910764104272592142440670770442424669721920775125490927871315140275985046821020916009023051240614028599357325147307471355452603829175319918975440827796251501157385832052595732554254291456221407342945416047328010360905643141244529883301521761449718756870978336196669871915965194638313448445521798795034841712913743040980182895310719151757500645827810500663599598556506903077547354079629771424421915261279614748929763403666049878098110411944405150861269440825731626626063048411170727831602620062509524154606620325778310548709730431851260174536388678371058063733668088141988962651759118953113552103601830589489413143850166656556238697072865021528069969890895482868314945622229728778066112262630444837797568763561856427552571442475103597919844275627678435082818160383808717040793806940053776195546939608222617002066283676891209038826808990046041150130605172964671000140136113792633405539076748731883037595533516059534451067670281276965893010289203761338364532682552525556456654741271269969903674845228932405944510730906214062904534761771898318630292477888016379047726951617630532383039914641578286928586329304689848363658264780229144292423675308661502770286400884417667563017934992720739196724164298153718524854216292135409726094205204035900373513048767943267279141426842855555786008330342324711551417498189742890180535868508127996545757418329352231710672697542081157241597994740574276381536829212004904602954741998809453857580872876197586113536448909059002055072586344943544786984721138238084148111320878369745904783435918884514049832426715313108541322663223770622603022784076218909924080028678771020746594154682604063936418209850399281963654114595695210544837851346509163663531735165964513719372735038310604725935709207187992465932495015956387494526944052218265709757951879413016439695577488546748852942972423845393035805484968499290120790068783515031931659208859551982896151266050773187879414978503597311469923830057728207851723554754813416658156220386513837816652671398839332780998244721830221627155440687973404082634966745919472532745472218235772215616179522750700826065026590699595735373964365394269764003930154443891665714573388957517025581258812170971467542733856507280468125780412337114408502836313688326543142392133820037424200927600976167702337308893595474204216446891192823534785505029015274237341607298609748769610545681801416262021040917295951637618725869943702993960329160348836820759283835701869341762098651348497551818608326289213691116812307684109616453565928917563709513537558251004133147419278323542500363312790008719584043473598341191324851265078947207281336505648510966722616679846814355094277315157185545704715621492586223452921308807705803188624260853184610906011578525186194099823321785542101595333728197960694314077956046486989982831630572331158149459113424944522292113942210783060607990813302453764143077906074304213075124675770906011057903176487524649221513860250383139628542752015376886222710154123126791586045829103475771032455538189645501643160838401043001530660423545713788455362413518339277396296481737402880307124479636485076452465655504378521107515189405317475626976732489265187549458968871985325642426424902177624667937914613460088894443774145885874912380266992172988630842160123490702962418218861525577645128520015013612608260879254163267709035973235855617496399010386619592660962880544610075346500393855730689569147129014664214537544842920312939354595417208300268043486648278778859866224786999493345772224610093918944497321511558483357748545473992785925499858872905336154972454519470679105667868914990307867787663210208694855932878296682955676600320626341660571120219626882940792614867932095373210198044551947216419925569206479685567156803931526138863535340584317896303814856824918277785087425375539916059183518863855218978693960800585590094340000261426555773141823220733435436628067448772402178623678431519388166011558981939147276305907540966938293967195274482216729106600914035415700226261509127203862333526337423974931514713573877324840762399783464187982222396819089617493130504109773360892967326004632287258958029794682739950881454971234646709019781421517370564979796051089949449877379988406084701113873687466643172711270795688267511408220812586223701453207403594278390665453785906212712523870436671555874093008990617692274675283600970306751450266307808324616961623495574239858859964892386977068491641591355238899842104979332528923639520611101963863759214935235984332340547021369992152508165234205426486506313921734918444426146175484610082485650464451646161575978789319443312813305611595429395772492334799593161845350719317249987347832543266284531369856939358828334653026467926565656958726517636557062365768570275966749361925555974284518770549744900322952668773437645801976592831395544091773479059271081433266405303148673515491106838082946991687774935790400358874491349430225108668610677811591911628803608942372618148265094710666802666211285229374524584321489011148792821348953354545554328079327265986952719982792435833553609382000878261465087116766675566139035040972932007872591008944957782216918526341508674905040912588331384996217672299523738127435986592778251103659168746479610124363724813433957143833784077860102443536313367741774127389812134772178194240931740558347308249259750953426634446555430466253786582135901113236100184395577099066482590875116025709860618476444433738446101007248612499945387604991480620764659608273342318278331237431250693416069073572883606726246723769203531169895417241401127440546588827325352622043888178661327153930170579928927515581310992773760595873148402026009127971632258093481799277826931607156069179882197658203938951582314360106299206509203472680766271146571981751392628922678401758439817723596417477073809873766119751063693645078643059170943637197107162485772339189813738226882587234579601446662838887935973597228169894654020598304887456394930200723017073385631056901812000265862399668202010681445577415679582484078089683820487434559308777428556872797383736459203014391282341664443477258587611913578991427017716122853943707864958647414038603546981569726958077422579118282232631244782121440142255774865713322026501631035826851412124973383076760343146639733642889790871330979161605123355108219915691533516809315539633564609685769498778040055612652238181021022290143768490634378422908525069579060280021585231891029001207210319454396002116719401955402900715029164907298533615341083254542456868133647229609080445961591347656390513714485995856083044844298267368244454402200594836171288869768267020383333526340021056131209867062827196898004198978390458739139886285136671024851288065430106542315381886253173688478613423840934406286268259542279024096234771918675527086713817025878204969119438971898036299860179625543539617163415889794556519704513921737248969145502975835217709064259547473851772459200327777010677878922040813675152737524213508418021971356191413108194696267449274976837243615996564538801835163572528032902817613107601670290227735382322603016980216620451739125274573714593418781117543137671628762707833285678185190393803683526822044563254132591918789794234332627790723299072827658111676132399015371749177210778108223528345161610723915797705211889764620039269834574656177096816767466571649683635975833985795116965037367468959552462392144330386982300198160412098893718126262210607160000696259186994192455223345617407151427256956434170912962444236799288478231830497505997350223376513122913622149286926106033901708629139917102001463811682073757047352986785345545625762761490558970152484762960787922662344847937147029561943502608743503273911316636387817078663546244950336653805403599090485066184697477355816983552547089833064989781603715409462440256963346789840703957487565730672661475110771856834287954438526157951456148292029618344779996493940156563285214806165055588466338903556857733626207768973028518071924493969492300200098195023655077597914894851640011828141604015677814100653380965881885842474633646271624256131199773703101640644814401791804914483817239190427097125293955855743785289228990675876899778894191473972127383758598533963591904460592444907176938832183743069436719890813113536328238551902578592750050589091480100808292536685459356332381204898030701127615302417332597440970762184876653853666417333350815097986833395063581790398158186473560157663273912412096723289307929683585520158074442142450203981482599043173136525463614298390172678926357202785064474717613814957034286809523310741905852731882305494155915424109592740847711794564881303920864349857569455586919507437920628889450601586117510411517629245091621704478585814170272843379648362148157801342512306141868359623492296619256517293504083693209764212126321181982391649278370339126232020500464307718003677798118769543750116047028191313052100215253856395859751820627559223434367401095372085634268677800685617646609978997456460915340551549516162898932479225704080327734658436621009150787820652142971291716038458947517575943262526495827659390696620345343582952544937725642996147400737970982934221171316613808013103408566937984632431887770499392300958920151697972244013148041027344512677305465742494728012539978068965152766354773612095236261681836052798185399506160865823325709553842874829316397599961223535099538069232529800629172776483055619207447892804034781267032403224314683206420148638347389102108603691469372436217381472647500064449928897492583391050770800310484809444711245763207700307066671103975555819508810195083939416834068273410568878557033327262959579275827305567502980886821192644091311495140503580781331748822802500307576129202412583027127144009471199067319541150768402677069923078469423969134007048013167971658457341781051006953456314266163271074695522304937101972594019679889053825086396746364300980837151787025779428499235432166645936618243674633686202108731951373242748413113598940003727403061661308125518482763272535930326026687892188348899121631885362700033139357495595463991256237670348590483911430857397354656985217950427069090359513951180286388502592085650586839826054452900664795009670098771468959528538509336135236195940109861650633585922940328169048986747253132048027466136095999129092388027340692015391140087580959682067851936409330373410229560831877001929182148831915890283554580778795703290382362980349663308707963583125142984613685885196935716745288680288090876206781957228960617341370555569953363894002925706933113087444746494261867069616567848040969343371779217201385671224092831876691398618885108647714166323180947314550181066021755050663384736417363201466287855744112529586178655848834914823257659343813876038025998176812675303190468003137528635240752407944221695631870311895490800479778512337889632794554169247774056175067645612485924219445211881008448081247089216714124335668437376500377096077587798165346952381764226009490003309980048557791441836171594546726586848249383353832845191683057547904416921840186014479279142537834960917437399680210964797842963145675634895081780264390180159167946102558642623596794813431797087615657986290515088249309441481931278416191391519127337067894150167641122705406449906556656283910857954922994631078911017912491998598000070710841163472292297875480843847783819073917408808240753940151953874085466157309944165310380331515086418813083947450082257166422513534995381884510343467045031691992209229043611682422510358898405128993832173260212581727242497152439958930355784914997565601579222437669561692838803537648886063353729507848249672389966058028746857547815335992101929714405498980794142481089845890999598455242977647294802390829031164889043568519950706379509297403191264678009891964753675319732121269332167971217620503537899522641338367535158390518388606512673175899002632452094845547760373334584378445241212323332235743407592561858633240763042986675519647759970052481348155974634611359985267149197527872862585046153831198788302134173784985525187617644013239899954416987857174517129757739733938780807689757299197216032427593923691456741777675321036430892123742242721566415376279280582904320029365704384792745110357604104614379728891662136642217672806988499426535473556519874585894768609571365970826649568686575965613484868602310937876858046462109324685355077751499235866910404454888651156221740940330731267724645173119444723675106216587282086067630060757071788620339717013715379875241544046201997750135587492662124361903462050116726399667947166572163549827804026109498165137133867068177549354252948160488435501449350483755726873328442235780948594826543318563584832609180021400127688269903297632612086674335006332907726392761704867986834720545558559559023203405396368915254472890814316725006080831060837621742136208993327083437879061462911812047543685809400878278217407873185143565501404785356959582236776913741010974808360372718715082949910867183861539461068087932692411070510177696261658465491848323691234332033983492372776002124686799153233201594709406457292295620360824017747811959745226532998236265938579609358801892225558724620013277118255125621156850573968620643731811675798463750919301970143670271902235262931447662107253180942671669234832907317490849730833336878848956717859054617442483955081885626132898835489071763760660396782190802552312686856244086331670731958538083354844700923487432389194413440475370726619982108559518604573139620084950597106187756649694871777090342499433242308455943928026385644039453359454063547257858424719143163194674959501655915227844537685075937640205975075847641356095769293387128889312131689645232499267236495063521826770578577875860757281875730971696071696233895337662783616418442647522345825848776659668430736380166212450855954514549969181045878496630483360750794902970056684112566701834533886535129904284707208588330282073686256024081637843637573738321002263233888003769182487900591244052259439243948317213754587248101851203998841825110021077164942891450783714175960888387471935359874007743366967728023399927840620778553478409431377960491721470762192368242501977417112186716743488191683982881524496601952501171169818575710424205665545934381019551171470487058965053634132145351914638271061111151785435648911898547803567286498867416285316248270545791025726538027470769988242614770752728318372315349829395116520038969172321126349315208180049760989613859841824507421779871599740024104339854852298238999995234920944576631700294297448498700824886493909307586727926352249120332478913379404644987065891885141299022999273298707996514343811675947834964755213399609160166835321883828210032987862129349339881671443568376881751051579585981996514509115531363435058243236028310271306519825241700279587696961999285879081665332275846097427869759281408266680584895117240874723188997631963880771325566830903439846058200934901609387797993989374400506103804023356414114916049427305312724376966366337330124155810272066390284662937086683437629521539234718176699536920740758138911878887711204515149975246404233029750757954695981866715934316071313081284535855556967674670998234933472423002875507574268850463306424228002886124538832463095576226343678116109990450549499991517981574650538473192699330530870634534123106278304255474200590692398788328810056905271759232961658056063970502300439562218127261378267661212227087308325007150580850441275539499925176994742742300647999126667830475840691797788396479740223886049312166508543796001785198910442402448873038319223015596176041100029316616935080194533376713248058278986070981660652591610989838295910794741732050016078668111441630197114219298232043181878236854003665615534947466351453514220497955384705960066881714694655639931596624920934924370019934139069785345471222535746992734916412715790212331547125229133112038953746041412824181603732489342490717280513795900647383094412716196411298449138195837455498396920274085783607833866794724959719025471001024204029964284397029425003846584808652097675855404436635324481159108922844892136515305907825076508484610907141190300354988903309728224090290631958389427410348130691352010347227136739223096114609961359865689585766947543660024222855981277566329013851433599381753490992054443111984373920455933097022239080794685365347799125575707634452004385454444817125460689992052294390348841763914351947252663937777254348295356826575201790820207805626286912322563467308237097264578136043135336468772153669999844985252225157930854267818499438061033944075086297167656769846328363294277647398030146349509282045733836846366526722565019563104368115898270715206906466889525158581460171547563045644914494867149364408515330485330060373662453221062496231370316216428760310416710045494120180825853760860637989602167307046351816383824362093360457286964282854103207466897195147389833799117437606411273427180991511995444679241097003647678298891310138929775789474539963049669763070000304289443959758161725439091247814077822567008948534067482509999144277917007514733518788194136946833354964520587595473951662203740342112753132124026404725885013461547701576809088687272162079399515906460749851141207700160231510619468656357709238779948340272009545586060389390049616647885297568307428377511329275963593254101520702737314804349663632846261048544108992945604643521664539157105119615901679104777859421683363173025749333167299200963425363792836938228634249606847428857965622877698943336576771568965217522556247999614399703685816729241572005317553615422791449015171924689545388383697399010576311269994972015726167892930275597008165088803016970564379342517319775854805939679513965197456719700830909564655474078708271052687295698494912106321460834876645745506870606103957751803911691859426659329756759136088932222011900810093456815063594019875496287367942524067561645221115510779920446871535652399881447473917447682052244043192880605806402029463622256533174790349560302767332839534753366297627374311445491575239531262223642445942823444220006155295487668557833537159237013524235359606127714683036508107240582547520561897972375755508202404695418436426147053414020786656706299225763021835965201561789022500064787150264397425277064670315336431577157154428751908713651956253265404198729601800990335035397035634989332298763006908465654979380566790587020733118131375417415565853762103902816851569804540281169357829878591418804242293656971403279307985039299635200372842933566330158432827269911734729103159064591994638206133686052569251849341547652999331710644703091186112376512324311217794456720852697602275142330481805246161408279372318134926136906668705557305261088801849942442945826006921222957166774249491588565893604497662446792423065867128034581665125456849871328711456839898188837111663670413027852953634844264303252018197210935534147376244918414611280375452195805833535670643043309945128273463456415058895263386727932462443372164873457012664422086984525485981566046255602312479229905285264777115107759428428987325638064379168973852668262186735461324754246961451915133398893846847419041707111889498333669028525406711734810408514280798300195551346379478175590417722768286365872662023363081737305291985162939461513208393017297511212620344728506695251091642569076090387328186723964579200577708421210449153608070346891360535407086108570458424740379774244760083147991775156297638962641466886327722234826423789377049170430662363375102849971132693109563182269200538722303980298869731473505539218979779382985567295254491720381579665015327109427525167169797914277880219946770542429676146271006397557197492136561654391957531944090893169898573506230262081363970039317370039770242864381598831003480675503128787227201186785759902044571700856329029925000088355853572665384549277825589702185667833947394699638800702820585331948253891892857749096169867654801095565890114735694686854324113384260808229927001603711911049174039227953270085280020000051540029947909708842053482438764644469135259903745330858143542372197836920944989474806520030881509192650231221617501036971583475413772332113815415794123962440551440339831652270612755732992472537032512689026046164521198597660797105239476924919170374648419000436863482474596422044053281187697737115486640179561092592797993310577447038184316752706087260171219201379442958266058645187254081046958258919732356011850869910410403668006900671452423598206883535908193592764377410272411270272603470269084123675922401144376368463647726512630746154088598705099046244774058387164491539662070567250573739469693364804148233171188274852064274350278227004076983307193109488107928299031192030642011703519636076011052439924463896178131686542307163400361661333300024089373737161634333667902023223521684646581869256411243311772410167420516768041086551834003902141151283486284467970103102240812229650857305740494466579686931283305436544225695349137049915931596126383201693024489946926427544301512461473847086764541165940277737302867702972145687806131554416817159149534519425677060731046795157215696884956607173693709143451434087762070586512351049099160875730862392096350117818592935528977651592913615010730246560733990891815124595740789684476078283739990532938611027938459923809569937699632463816574684412957951844495291796507196687503579321137728357856323383895816101599232203855323500128592794286087094452252420218079612721241724664022059830014664846266122477897433268328849112084466027417726824820688339603165343177809334187697186714366107102919874912092989131225761999424001357397844651266932688022806092719018721364397897014898952362827164531460630636186492842802508271488499414242108753029760092409067754084252340721575175154142054097552058453042071893160993249780989836545566431012765100036362452379209337590340174387139625012170799748473913152097060004750082577795624775755000486451002931416909774182014156860870323842409215412585823812920124055058814101646470586515071104918366198757489510048146145556362269858849585583921288028386741284219724335743839175319701921882697564548469973755467310778163052259774512862473388530713583731211970860238076640278608082272479369135989039568472122043732457348479933832081063448517132193368729398996087267728057806416624400796371031198545072095348581585178444854968608948138948383002063781487290586220177798537209759968122142834324182552561553152060426219301075540478926073382794121096758775483390755312720529307134982075934354892087343139912028702560481838676787510337099604708537973665015929857296448694326281125262944743377673765485934371213539139199859648206023730015463378993144463255381123919093990092314760545224682942671617547273237238394945122756619758362180451396758734375639387062814624701524896532314539393148721306890004577972999914725847051738601868047182553055051122946370012215225593089628042549774098247988464115796953509223995965953282553102533807875212483009698324263586826694370211358442234890253243299691390270782229575508153906075655385342091266865944188290463057647704082912364836981810129528904551305058499861182385913380512422027010840785491621606574789692355144989884770416736195777504396051901599191630283065463061001106017115284220622029957754772551829688591116981686969268268792864551680047532014732300627854816586627142362181344623306823726473604470146280960158628209451764833006389072393896825074604679567292068916984536297149185992245071760590127699574274884873043422341490735704929504601068402350000695593442110429771454549783092394294765598483015056265679780523377408722783109121288100310475014353836323297428702956054833446416737210093105922122729779464234372566393700097972329671678845689003026318485745875487440366354917719788473573691734325537933689945220714619324011898370914104347201923029129790797709212282580623252395750851525497943320553195955559110594738066911298642818919678022483525021155695315300443478628432448044681292042020970225217561438741033341268093730422349765020832554939602809051215597920563954828735958669759314719713726412385756431875350377402277239559494495146405061609193486852340658498942395950643942987538532034404047802197285094432456338601363102264618102675357652444114236409258598769169577573396205989508573465862235008361411993654795643943705161317066255455860763681940108906576581505568725008960326131918144150242082502509456492429835706477641902375384568317670385082141453517193512884742678156910085639154868618803490020566339177805602255150248800405813423326307337358111238091450653954840617860780641453389671444950192800301923878737988349145560540193577709439372337319121157873390675326601154376352055451722868732311139898313017767712574685909345947244075937437490267872091468255528385613801980665474219915349377084765195780090233789870769173431711520244030717101580074260597095015192692448203575154946509733697907881844988845361264874512688035443064024968853161101188991834741503822629543494320261594786711466857546982289072168273948464016389575128628795502394120349513038954315012199917568363285607931997897566021569621112387135029411584166401933910197041266511860662455419553094069164804790108333555610674352905261978731012746626969550375037060156538944901281470450622846118985654463361799137205615065023146531164593784433344601640217705893038167175502898323825553706828444716543453119051904582758540517598633279753638440995026839828337424018155871473132703136594370294295815260437453895197822647171379940936913423539443067830722805463494238101882218063220259211149408489331046444093757671297144775828133813809855572380127024443391306569738827008713792156922210531449622646364962617783882370464067452470340162953533444550326780279650333432036993843417976786797409902069110412353584436013196865481873481065664092619373135730475538862965468036301120324592786061009582341618588027685883577532927381321900316546204834085139837312144270333593498988375227941877908766088188152599473703347040159334473745900021220156112486300366220150285518413701503227546966027235617856168564760188664359034548574539960421836340952108743700013606096199293148069207821494460649131901234388271271245904778506589451563429383177777403925247787906305064704826069545625560151380726844754469435865418612983877415901228210243974765665364716454931931462458046300893040856489513001381218342223515710612162440155398862877271903757088082646955173782465435716998850849265611352473959897679893087526553260681527645307662712893792702994072405209186944987511410533026706073690863998394931456961811331481143011510173059899893362061531594938577340284189317270120554829955186991984088839414962128328125992955264902805103735094272697024979412070452124257028375556365378647664441999245357646616639790610915005601163911310642876934108771757587325307319000898197497714562141389795341527216559416853056122027903471511299108957544564340254619310964691844436639234015950423594637220350354106050649005312938907790202982561010685070051710511531352973530541011377268366128778007217098904317530192148845426549599919353780133401179591547877754542683114380261684025204445370670422863936575232734633361063888079428891583004943170053538064882126469360670810563586424737777018376895690189646602557352732312930477322708591970097644720104706577460775260319106155660413694500892326114340418914964267192531831634707025049499083477013027264520127657053196380722740254937153567106410352333901706114324416720647919389253775361567957243794660591328079660939060500362406469468173398767057605690353166572100156595264026854311329960863333334147804957926738588886113544512867627139779281747649843574046981691322504483052383093969611009302119055768428797829310719727929365767146724003622693901401319611311021019626176989454258235821218252795225007557175212372071719513024305131606517122246449916210757066911469407842380427456279596846710423486492927738556985090117584012338664129328337912911522770410997378207382240411354420879027012908279680645460889166396377971729948925988592727832400799822650536204408551788286800380171388566469304659077295829037292350663455158367189297212494000293858433042277053563877030096579784875309056007338132438331144045163011284902702022841898947871263510783802437763261938155137684886358705212995804608026850379836139830835958222472610948699552401298694442029450768897751051240969875366853219756595100064102840174494604154361277272965298351492169790588908768656516363955791033312484933156684468879631393336035786831346900654993728847902777903432329058883942776281482547193757692916012037503464926482741513583569498699108956663141776350920894953819880194500296417017033898703293257056643662554397661339887558749863952201339631756644482513146382467316183451999673246325873154819155271273450840736284088571011817513333534114251392101538829684146275248803202740006942282812301565588671444905324757437783743782612785851681433497006989538191155488111253844084714946013599591006903764345092002638930562892418572567540334517822453423798669136747513950467292143075226597690880347218750541969160516196874510056466240898056537435027321010945406053697126185048807834384243244558221118910098547622362340179286549684146004705204713332570079098594005513219462079454690076529232900975220333509161426002101285147064937042956817706319959955231900927129128816148744859326418400135030979130019575520514428907716821352179840477062481160040398337691382907987038176795615309215123643334750089062050890601774638322084460776068045452912047117884405419841547635447910014733461807017996784497529716654364377574120006581237957957837710173153614853634180207641607335897065578114145340913837942592952748296067012446783572003411248809080662547169897276702124263694313766735374124672005896727967234281254677521904378288659959548871682264956142076616233681003557675315865054863368088014189430644508634914714117065411468257808286194191517097984760622860619901289090371023236374984431684899384730912399887422053170121554020924271200280838300786299011336156891939284680561152395366418997421649072093503105068195797337918333669516845789371354997243624125886346774008357188855013430755057996726737867307894725955341068924191022249808565874530097566899775054814875389337017504983394641135634877414490168537894518938016865927496362031745454186805630191516774382881709278339015447062381213250967025845853160482270219235010094977789004962293241574005145574639825386525366362122879211351690114377687397259819492906757920500603366911196559259707260079350588648543941685437038479475136295284299530604627049128957392900335842977191882199626522781053709182788522783957598988524707382682355160455313189233307417918088614340997986518201471282392488321952682637928069573996485918200558339699892710415820452122513530877876505407385099885171859920876535516733395647295991123390208228859697712079630195483037548302942219245602753588040638793353629953133552205101292067966496288340161204797325019226455186152724007201449917729434516102120022191232082961654807262842025998948648812563845757659616805406845898599464601271220889608064815533654353381330553175169730139147820565537926323924868236369188910727495614347738741832607390453209918639750639954827305129777080087703269131136247943206021748416644096476866911993803233749854920740261349767961919541579716404783758675579803872553977180854013992304944468216249348816368697992222834776543487448167412801986929991771970165446630424186458595618224809793884791531626875327857688324042239321960473307183827599325385412022317318388188351299953900161482616838912220219325919658701743709778009947394123788913345787591981428133245508190616205224462763910706492310052983341710748925623606961124672858330171259296249161165498347040077164972401225628908850066654864056829656692329792237126792432237912321047499827108084966153547445748503133795433376396638345472296304021498613227059340403340227678187396006047954231889537543194529956219110998744068170863011829669485748233428220514209957549166564293001197142359565056951577905645416606178081947100091881440359990982801601263792631119103689396844270043932731615093441998461885327113673737389361588475621635179809873971755391592824794248058452913881746755063145575360542439662371264793274407310905811550778256048013284187114979447485362682441048095091738187360788756214283754410826280974393578203085754174000245647355264896860864934392693169634796678933927559250010390896038755676539106096196901176440325832241279382744446783456119636808742089024316531462448467932395455979539701509566458399132958583226354579529997472876647755323764358359869840119873383309965552875154019643107053125248806979818846313941861466622877868599655521597241233766816195359738812378142061812460762515067540799251622307896098190168961128206066313073290201278343484516225154641379373745474086786232278019297477683876318233050702955700728463158511284195129086926358970309528345379442531859361296293780154782323301345388292323734720872920557549265574939237248852350422976123532526323065431093509981656226995242436626488269091873599464824607297949487358983007293690826063791244080154085403426344776426927211918203786700780987011036252227019928599716117744217025422773761372974920209542203067783592005968531053964070407616928943067635056548089595293402548169510399269120632178088588296068035654392812603839700221424418925790699326431262309166661171302247681670119689350823424912399004440127576061974088689390958279321533649902638749900885443023771538786248984843453674802376584132406976121685048850090081827798228565355090799417936483040129129749661701814201501920720915283124022913070606941808452338334102144551576481974198341237101757434227715801680546570438984662726422313066642635094848965706906274213116342264866594454497239569015721611187235229396159966415133327801557344848226842460257693301249185196591800739170921905200743743540789100350432990307723617894103586036386889701527410897364688359859357945573617260697249390746607179930295783495319979010584636983781094798482905087351285079458930359442340305777219833037665311454004681790253255041836510327212772095571404363884604011932369638375509117670822008814656327941798599161321240666172867421979212969803127103417646443947312927838555798536813456948192487371412485572872978504701348485523353966535146476803558422304821893026382567763309662682642102926042251560403800212377591090870233937724713419312476010682806609803832196992146029888390021402247925809375160811347704427647333859859493815123374972545776316968908387946930500928814132262955830592845137153033014063790138683079631423191664654729743844141495638267195423726183068665466423572947491887260499322094847137293060450563276942890916278900000544415865761049592655944218652811188023602395771357614737270313236616454368200683298337815589413751411284424198440625613925912319901797567827625786096900700898088367881147181198816255231915020247389298904216956691694641332635183770994073097154719219780883756273372730027498476451831254384468718647026094288652303588572655721470332224753742883445988363646812035733934032283604707334478514433022052389674495530659453260488500149591855476726059767311139255485663938277431153097021205099455507643300150900859442038714809520880463763201610546735894575322556506725390601216791537658773515836372533202353064458598918952165930165218880914879819211968351446998410497605485964662467484950747196248281418101447903227269915283242661042451844040262182584764701860415410031106494245765641193012940422043143558426776640648080299982303486706113832015930200331910153519417274410104578798024706386261786447601373675616212739612263097576678473503788312810330227826620882093592295277841482808502941076437130081400608301584891663218305864756913174057730658769950063521130486249899695201102023458275175939240010746283287721872597080466757681304064778361653699920709621871802662093974048690585190483720590652641914891573592129082090818199295591585304778917697246801166715047786740645318770404919626139974812678608287285903146915757288382118306512659163852190292459188711715997306798299521180149596559786759028709048209284548521219688415048617335529184427443301720078242209981007040810343738036070154146858149822159713784462720426586828837783594114243210806124372988269946070426091451825701170241221328273527835234459554999224052616921584936608540168162461616478256601367734589379145937692249715981970845882888454978537796163429277756371485134430444241245289605025901847627272781365382339425476106043856034968839761981212127669290487897677992454240442227853152625422520228110172590112519293090522661138143161532866285799481176313529261368054092595669340980681688454125249861308082649520309591478416115153067535393852556452074116638649077229838196687450296810438853552174153849095415645809593744489722555379912939694361854718132647340964627845859704912470909969597140665254989593824957187558878475106953656779786638958502556070940901485248459498889925798949120896806566115042320646144789096241608844205243400677825298726540412993725241750239912043474390538124352512342152046446966753527559453817092596292332413745594249474995422594501788680576343877164496080111978234632958049178053843302242557402083728777851369707253888702944119838280266069105842886763272028869547434691368551343477826080384951059251269121935449890167784428640648444545571705215894144646482332309508845388425965732391995188589379215104787921586276378909215562879603745264837338675750280454810427727834535351156667801045841176359893227613843037753352392615778458381277658964869107863187022533243922469620662842546759633702049228385394561617385053883914190483578870939266651545357627026503795103230757858242919403810711688109355274112732132836116537356752482697738219936098348351948334434434520362653299048571870145991081664143356203320775664286749894151348186330038601779024266641288514355264312802204865704786702007515349911607796046718879246674551250570206307335675245863560186990165340811962421164894328809162661294302865479568742283584854280502480223686828889722044151396728090268123179119758680290292379189265124419378708083325085628223788852970249594279510739902489694395120151719427546420744933196053293115697990568982933060884625852483448387610653474921641520735980057156947736115854683807260782078864318242886299463431058490580450749317950314417717212629625733287462859579243960996953259215381408943460150087704502311659602870376247754544368459774660168974147467006490204583257545010733918655591666471062866095674803761779518717868180581788513577680007404887528793007556178845763695752094227815195760240287678311202590590363778975655296126921067879418385668541725564559859440483238486846128470916473922100042684242691237749904418874418881169225654445582648233882666715260494244067252553497659144203348605926696617487144896434242729427033119953731150199299367025550825972549506904013575306379942473700999948326069435316321853061699393875505940635057457581363508795524181659694337960441320058424225195173367085831109250412412137115765031445452413726813643088290574346744828884740844298490814529600771485641832031522954663682596462900770719074584355806604178667915222352403808446365204126766121609420321900519945821843206600285795466940298996010920922077237502867135591619193001511030553234942294459999259020326259328128317446341727418242945843950055732786625677371071171835468476532974481760957999609582278956109833379156189603659974044482905645245383642706117485734688836318087722954937465396703417484990136553178574697533919466037675877839915636416591072660418633595065785485888231021951286539242327001024399878486359235996901272128658898615568045146271976716310223036352004540912291230054528267589745026859190634638291952066970802324637090539338900115577481535843884508368476192558664814379443698577068246944492024357070285085640787272288553038167822912451552777030759594967060345300820550438933111338143302730301528766674266066516056588385778742668697921786117354724921270871229805930596613556095281092571115962012391919067397564219613501783843427441448959763994932218115454894480094437222156730291281655736199566272643834280945273726975429948774613101578897420254962583431439049528552409812207343803636330380510626670079230182253724691234764406976181760008139286165240216824236780574643138514830720589005410433370590790305982310020483165786328724138254516045115481440611997012171511800601203822726675109011838385169490025306418855660000432333622591246449220141521564000947639292985371473606149241761102202995322479642671460000509801754916697357860570170550827679114087796988957480137581564449883515298404240430628592359389338445460494966481735575267585149508748962530038666811234433022239926713812536656271569778337503122380542190530993975212547167957880861517074989224048686555918616666043039744538685088863651446387423200605894053008966328151723622802096897295446755586322977076875672444044857056772943277533671250176173013493732003653555928123822117828169391480707078731357390568535237748073333199307589697671984017697100526503140517510821027878055384387379971552950477539566860527693890108398932781327840728371215869794696070849986755803493773291098458246053894302366600211207292906648450629974168301858069672088763801582400519474407825346029034302583585395535906974176242258466609401007741739330278602706631387155492609427966106385925641414807723712426629301020843923509474766099719343826049386328679621722699013431483450217914655874932848130886659830719902483923826510979515114315865408501070972491565923691441498530986476154641460517857293864749956408502253060270549544745485930980624333132547428895785893496882362642433500556744778272266049520065553970106351212261861081482538818206039889805370942044059138822372754213639412952190935606466654709280266253896503347902471983543060066791635256808814302196391217105299274792295173997784084344136806094981060609345613384754094069416475050844190667186691935447882885043888467240943465046305058753333004167313386935006140487383895998238733844974143879628372322430684877838807981028949027094214033444951873036789464454105492273133659164305683952931488455563308652345299032089157857058425332027735377107444815533906785794433285967036277275411619458696508695139160203261537203563578854689521576691839480988373365547997262476069156551380349638149241880186613956516323141153057359949705284055413387784660445942868001931124997332104441721999954236435641341496147089689689243798792949735931365777937635817315351956336708413587119005678177818335362029231987803531132478512489680675937066132384272432195227141137008876789309029743141216472610718778413644990379553262893953594616231317917006000796293052918094407251257596516173846899665186723789950537723841650488744113334855302521884503248299978844855214491383313179727016127167539715077430933072868060636495158509017909623307667366617941457963196336600517338329049838663686035534773358986898586951845590130135199806262974330401670081002160487937584170561895759974922677001764936015877675583903202861766866546989032342473195618676558802826161920873333214556941921917079973805405720958188849526501801538489560954026196505419770095432215284198921272913522700454208641124177998309277755392771024259070544921027685586981777247879493557221949133593777124242362035001250508346614180510251619417375211949297005506349861936023353482857141642166894193453716662993014712282654531100797220405163389324421730552646165621241144855531254016580756484313938607496998536015274012084438309586518915424463149722208414044479770634679134300122887041959235945342983765656741950937293045240009470332530620960754985526104576631311347041458108872449620409831623171700888685118170489201892519097728271813723560703532286480567734604121488401540490649435253812797044866513303833854868442898169746680006832013608840683376341713416955110759343399980282197775243285053569208294572102399731632174141481469054851270208905712532536097820661811646080243582973182811963878451489037730954137929279207766230200512435478676998841833875620045436972116722850594205199438289045187958583515988515686157690738414190017970469347448768174275465172445860451854116872768526662782502908916263600449485804425727558919150343876794683437926801636036987942537119758698824015819693761265048329175094062046864687147895780464667085419959386444274434510645002326525754747256429654237617702009001863615641488441593642421802473472219254567581879125280823157267434987910696624926938532469253551477459859443756903794025715020186661180017253619510119406947254825722885994115452121500936866243377178250413698315285236158153727965432664491082817965381982211492694124115621404742246152116812965434465572870779240437036368029005372793094528774818459025620100002165148487324988129982040210481556164134414444885175783420623016653392918434095870095468423161245367217654847974086178292509791601472099532302379605403551185094870437869466420681871137728253130344663725075499862588738274536784484069671192724608564932378679474053816107101298387412983892269615103638433645537993753595263025391522546612806502755048589081011841900983333611919875038433068159234048308081981668876004688859028802498857629469255928566623024769438374610787741282299149167521542446326986478916499594426045785337766384406099253145997684512970346825947509399074785121589119699400723520292016865599974231969988535050287107834898327945828190740042077489591873782808925722883617336980573660905152910926149983366235777415466360961264081248846209369824150655795656320273935351044524124313026144908100111299544952693302197855726242933611512290826701916758481777980074087001481273350017738677216396748290162912003149867903748891532923617572512807210887115039963926887714673227353212947971378751238379697330696175487762648176135698883507584062207982213018167638008927417836683222735692476555038637440955546519561168804433966689841650048423024371627277434974264753350230668392202281032057258680120109964911351491067251059388360021899018736232450941949777956628034672522523708296584441600151573361780336417635594758514598481738140090938676179388476977159119062734218527124521409523629457944269600813035514317162190000556829245257486650847047718646971337463948295440632050686960919688571310489276679232574240890444868401233462180774508060952113103302149822499146890469023859439680462911505341808312716882418142892616538786632821454349583787888337294251245058993735721827567582369490482736093181323625881550956735715578815830662561875332020223706803214006934566139930598188166494609975593817301767756376871598833273244422919699834080967997944393038634455347269716521055544214454694891357755886567029806652721789123232757401551129653584319504864099943183685940934763323766292672895239573657326074558404183129786162978587297024896325705059932912734824239630061861835451454370749638735802397378208752885649184458764654404347026064903341589835693041310467227784386067373575319121841728951844337317747993075070456686724169325572451401146771295015202210257804852123517688392361353140352447626426850871153220879373217683807090717314191741881292944396168528496015759059820631201346380182805919081299008380955533695516672609103394264824084452083539809514080037918614982813422510509284536163357238426604281484033611298388814867650657365006691977335174464352624312375719579833993504611330508568712047269071751255174561547266789683817643227297137977418541872671858258429321741083049250567386646840796038155103664616608410220233491214047191323601493812724680470067983209439365064908464025612131961346903227631091990922307923967613432839012091193409704661067659482905954555380759181275957401862689031831048206094799030477496471631185400603404233667464912464764271650606168422304028603635909778489930901904502042378463740037797940292974374778792337243481870733183517556325812358716452464562686915153297374046267331463523204025935175799409777607487005159522382161337874180535758801053425633936682000065105179332269917835983930430669910242878420055943126804189523960881854151481952927262955731098226908006015157514398952384196868941422187301585200628178886360792490788456985666516945963291052021921808518695286702096224876772751519072626002912910140872518947308188131798046272473493733200108545583949412471429308999213177363187882253596169643773876770126054754723992645787265029032813871905393620882981460853751819299452512988308444986745662969549896609711301479511414822373599329771748752759070382303231949595539565915298430900717910781058612985223792655045924085315452935279248131408420494295453070692232668936887093038743919012593575858316917718741337687564738926736911949170183329569336447865677276334988124675621605416624708909727029584632311087204307119747974047738177802767180768118999924849383800456266608731175963168442147206584003538878071156634977432290624859867902876591966028485539991269636100069742236009843882535030905098943329933210160345143407963832697070153550588031607005111134054854748073894986268521540602645839946451399510211994948393879082494264855746708452226574807218596887605978015786090904430469207238740240188751796836103871676352249018542575760152092357589643715528640738105627078728075921268415563418892753740080635738026990494886349219265357623598876391631658270500249535715037527740662762195287673378136600382546527574107965064176714208676871327128887879613669118298180811381998634387619979611473474593757995708955067052045244890768946602240746259145485300939954406522901207522214505357424114441303672932835555834558873931595788887373228801010595174520570062825430681754349201478977451755813762375151009471519935504259646513563338352726051015971029843744368877410333864373563364095933325991320509449427547694157070120835552978358798583931863396186191269631913237873424003742708464557039149943084514203608023668175810101812479594343570288371423494918488218057827809830218968356500676341313434916628471645881550623174777509959697030970869408747638396561870282340571832326204385935661313982989259924561572290322252613030476989860217270331925816578689581881994829309237867702512397080023202536700497448697965508334017492938625801695438395036069171223338139594421321776170551426626226460088469216583597905481140010684008216247264438706726666873451710481092917032163185546980256759568484726344133220126002481184749616659964877617330911119009095788983020914317538121473217025913224141796054551890748845199623372994876165883414662860916847071274588422798769098248279244160543535740732545808102857797131461989023448704449978148962753948525639365265750312758495149176484058616721130147419163740237845000641866162584330754134364145177401829648337656151587724232249376126730344070816645389951677758061587149275795107782952293768507402668535920037509250827142406995250424283533242105381347579311080050489834321435918555769047728420265331855295537410364218576479586026189193479668104127846292756528995545633268281080292031776799090267179124606650097680898927890316820926908018051680735457284645776800028405824787046927911026544809282400430249528839704964292701517539588875290606226808545892941271389816979864849495814161958977966801117143597072919748212135876281446014144163385353324627727673044640342494482657235735045421562878406553929209733760027870113123895522045823227302666102240407269177233242640087196823944786604254659556566690597093432790063264254854316913539959102754707332769500866224451117372252091671587626241490428925737380218023430471563898766235144900256576412482344235063973452310436685439972941866087598324855140554625609631551754234350601372135941479519187207816064685212807826094466247086522648829640447357480009093234912109034910111225269800689086118747702853300562802534845896007579731221899680112688418500175387549044980891417094426860226396138096531133682115584461534716253538475864888983403921423331578127031351891871435368863986987641793939034441777998110935648837223907339016790667408702595153730072255029819681540172600146203076125905910097272410578638454582285995571284525055781463325035159848579242364043017102512884661064600585634359866836076694205158916011302985115008065759837802812812683156110485397496025810173146828689242037033639087801999199709109050813345463955962635101944541625024907890294145344778393882766602262276453521608921760213191456902115444599559267126507068046181762716017022891304248674644601892534137849932402145253973192506535842257747285251581491479756753311423237727244990468914801399100069352942090114932405452820450829658263461939278002375401539276005900601515492536002424120010471049534795908210025626954636757634441471925967487123778901817623234515752100614308760520540332012509694505161295829323766202540334108494712187768207877003289854542646598729469993541344604603735544171267070764853351437331847692710724271154236740034027436229284628965273546713909318070524335894863213965115654991786399102934345747647773139325791200394122002194842024215604176133375212961215511897092567903016540525767989439563346825437075244658684720986821188522251338656657686290331312078573360048197564961341182322943637493577757094669500262275408914315529357709743547156434500531800040284940481743303370033412617020531683438635578230163368338529927237507668585084244021184329233702897373243044845602018428673465412147259633006080013358795146015884172851096397909662748397976215271079485778624175823517189849717904701079329818960209343471126724690192024260907724939415374737975048646447419447340163401580239733302217142728137251851620584793843609287257584305121358418157487557738019849362055483016337762427523459911116091158667496189866220886270896908310341618544306822280124399240264641516224581750744391343565795004972206230499074417240659495898168035478915184704633965873213206622111351573589532754574192321194822070120956266874871759112692429044086012340580781533473627222778902112094217613632215106630185114191703097920347248595922831046020358030551004890934837685966859699911390488803459960203707628609473917135347535461438673605393011999387839498270585683876762178186351004032946404794409288853959668162595836958208672632613803517054311732778886937772170136734415156881979715542998162621819737258301230684775483682138750027244165948611883144626233915681335827995289920233816125586764504369197136348030195838611800564184535123183975631848541381607141073646096019682434482403185324766589134294114652976391699755480377478127317494671135923664100127070116242515977904207244678836020392184526397138676956264451899192438825609728005681771171412113312282825599229264885039379264105402463318341040902434602372841860169431087967568274521433617271934362300498008924072071994938252886177556475115293987794513591335713952654424961478188109501844579461272105158192910132111666860649760233423557873732252647832155926997069141445033274268850620395972768125602071019701072594799646305976345957349533072320596626597811502645296374610133083916621054907895451004773343661683345419518529556596510535938730933874835696298225457574423345308097437050300705104756772912984442049708755592114760570728717472540584695668742282720045503949463958667888390965083156211904082694176393905884205623505427274627232013101403445904008272729579433597322411461496924321066524216990826669063914771962959668766478047628566390186531077716663945239070244549713692977515636169691416290074709541305105422590192106632485102672502213819126433671079427516594456877575286990823658223707451133629564047472850685906730513081059454217255812191769390873123286564352597195363315202283447110353554826064840105820379450758439137853292508894025830898153890006018529336234108207076442787915265195576014721391071745998333102829120368396370678638844800024290862492730581827467430381113464992740031398162133362678993644052178235553796433163086798098916760012768552760486366353209181395664641303622516719547362549711003275265120163950242508037280383470586242449214463865630641943274127770578993368357558124701685383640862634877528238055107557262029766973064579351554480923764717463045007341164280760998322918218195441097271779814313398567487190131548853542347208488665337846690325868216150670077540886430569352670943544067281709071643426931185208024229336573891272339808166911004878680938645389821063796474701334663501453003165389358509891848076783475585111429501531057819574148867132142213006254074244476179460615450332080957377264697071473563392105876910650290867991520250163937322117380847172377504970783730697675093454373344497829799715947960032704030398074175560613906992608761886660991362864190254230307442365972210023282805129089966204474122910722146150452871095002741853942478213660680562432360460087528531540021182887263058862252794820722462386729813239261274468669074983886366672689398995116897352573444273542063454080975331233678440851439238969347308564435037372144604780183882120697333372925763650902581168402146047647827804109574664745366562752044937241221579728704717417654387442112443856652916343087446624975839422869694404444583204519662554141774302955884110389450911741129868912044354868130399962760491092818525336668766490579333757095881221786408914838945829194945233620956569249032049739177036713006059793448507315341725309506184584856163146239335888692872779281772204606991476676875506167933096027956128692406474464349632040075663561126538094870983174388080045964253891456658896175156225616211369429107383013447745196769210354866772889969539371796681607213500061113844441927257227637931734062903894019628936279286292574912226290208601707733428199676578952033959064970164057229829223744150081666644377546247751003725590626116804575831466404972643836860384498910634443014759568159150521665442945058057367820982167058211031958508264901527741997934850410576083880930119744830059304162563375089423399866682923614471485645208268554285261354310861267584315429065230656659499970659980844379568244386900305595944907526639299564575870149871223738514513945387952980549374877489637203697555232884513467612549642765975004402410494341478139448086519920128692162971669239687865778947028800500909980108858703883125185872729326248880568375449451195746688340762005632615065914730557457917640925319231140568653743478182258380915704794229862239830506985175259760726145717006606842894359624406998286701690555256305137786682494258384547206956167451551315545040286396792028838009589151808401525207618562892556230611172877969807384494956971441586597744206792017741232391450893634309598118189358890832157367228946230309145185699325892619563674459912240524301138829651947097986485264312364761126689418668776461091216534233653316390360740058597670900752189816065849802021469451390684109057113202778950064916929609276443466692712803098275731341127470752529902169483287867170303685314163744311525883216109790490337546598195128042476718890819653937238823316301559113692781873595710556110764832560338617587449814301954445652793565413982794692596386122991989799131476060655727348625519345709753431019069435807157609195788631619706765459001532938531939820491106496379079631510930999694704054752631388340181009879187594095686433192159872683864171707365077968753153956020798461785390694852889294162243923049477005823243905586473175111747013298390019884657445435256420525378241498223595003457306265667132472726657191835776494691034464274098266557587689954186163867002773850921307376902347228787488731944313355962982258257102153060479286652027378590509576785334333414350794830335331229480706526650014292167213298010108591962639766406455851640069747603874821026015164878348931058880525784192387698498250745556903841037950894125266641782349503591361004619224161818080590752330273581464492360720047388682833008982822817337413040744072073384855326220727079105605680984577108228992299905673603521015230211016581173295699563664510616747601493590944656284097208768530459146113993201059559744893522523137372110238157577543217891352621573965120990359891635698290641901891309165259579475498371345153098954607862797524192273862649408752096194386978843237749804275853574925423789786286147505276143858937895274550532666570606841228004579308150328720702793281210446870659353491983749429156435784155380226481040199598394974174892900659640055856266742441233267149557756583232857818413418072236046427789848485236422146132252320322492836964048942686929401263215162427919056938862528056142161459444635091138721871504566419231625340739756011705241861830349501353263403469166400188368783238199925016028824843113400475813482138996492140309412664894513279623216130668873273659254076286450693887831329148688211007434029374028654817206604616417690005457290595336066006532572843799531372367505161443724516434629943165791707419879273813119473486387460461166351671082216229232474642579596935651794324103680033533324859981652051964093234177733730983518121830343748142925883554980547107643162590490331750923162693554988995897782505567228798502180281485054199278960452638896788724227492283035801446056645417263079537983675454610907448714584657411256532508281009696117543609868326239112871720722925129616999936977186519900618242655929390824250117749250174019962409105773344888329892473923306386511447553208477214398532717187335403705581704078954828980558312721887959578340813904868369686190437144080324635612571902100961787826570413550058738512421481045155294515757176702228893087589458471719860364559408953273555202178051168710055788860156726012288266199213776481976631143299487857675294345102384729057955383228464459249578363616269986925673560850980721806553494041163982161591420940635633989937417027278373263137855762936074075245313168981255863960147644938170330353818873871106824230331176097493224501250962247110615233227937378529937870928387927306026466121723719138446491998070002764380901624524442565116647907673468221514367797811770022157750149614698114068241469773405445451480468797090193286489980789555446080228612477445284825805713902198047617880777974511769638976828493328216468039996839999308797593623227021905345624680818574220731387622775139390730545048743432438952838859938842167282650992220444677021633946537683895212800999428522084359044012563969854761509441021816714145718997643440220552409154268397630144303624068421681969947137390960514177601081910816251422188318938944765235501726446066172176990993663443303788279675124006336465049832344570007762970918946456458340485078333118027264172314040387102435606065042030608236453153109609688618308044379254745945845363155688045685550401313938099344452732453818009618267847731766634468690191081384390740372061198033140082918048726218886570278624149232022845216880895339951629588552994411929978757154520789210637236917937073504806657359242147388884885193040435863667015997360672575555582737589055398443610607278369921609195300254068284956333037448133208944736653736378035309853063900729666012845411190454777965917962237174029173284258262672193946826213398647756843380760185597064663065095275453098283616664665763520703814000763239732738640218307633387303043154305782060126647926139683711770945940511217509993667421278774920103826912404651945496495505629971242643187272019935420252199977887611800244000356163525668927816637260693658942919136660745363336230737988758390985359363925068737029556076099996586426834739962172542096678766196559900926906974561950636663958053798045312985491903349046696537987989358715025702530841783106949942495280316701336198023573141044124515603038022013150002857250757389339052518492687041250299920258262272289508919481172978326698362621659980237594955047848143119469490236947682881446161743913710853419949857798428918496645337702065169646432041304344443504924453824107436435187489534564707106869290108842528015351070341929924142635049708211145983121025728841400012045506479142091899159855809347839794283774654639788482483910848533778195474629937487508425560762010910349001109069974132157193591694083511407676783941893737105611344560530308753085801428523254456575952052656743895561102909730357194331021929920943398681513951522243396469835068894931296228987907031683313156385043976027095256117193006338545239290420515201331656249902343493005363244070154041921664879364849308702468806046649295785835801275900209238223814873778595007615549728655398245355112277269860149069053936683840916371837198569013382478769794539863528975937931778450709798272541813896883478702642975155766276752235703527148753412629619305831014786535864349611484388419441412668677793869414628306280333995047910845742696866671144321374038816887422857574447335612991207597122476540111828687751950792188512450102023895983184631061786222768624112457110721749268134149283564308906769347309018174818032533679982073875927861882132223424031608356870848922437380112558285277347181073862338505480584554298093441103717493165228354235257002490203330946400822429863487637752505532716369297146059053529750075810694850170768560447783398579940885385114648169371262483843379354454582636030099010754864550386738144441906640525963429391527393147423483347174207620480669843887451867975419597521517942892132491309626755236119379147850084623218588781607780038570047769350440325636083207814571591846786028699022850797062013436211617145462806863373812146041538378064163172020412062591056392983674691660852308035515828964174842664164218605617879502465819792513954943540740954511860803018031354253382643740729442968007334444772434514404381437283888960226291100694233345631394750844904232237498201514953601506569104321074084659718701093140887152392808928967508542545784372875575659866042753587472359615679428971082122560962435846127083426793893652440169303289638829555882813311502716050711660699542017456330667648667098318360203927378112559154665724103496184141264741139594706528395037841216895644397185252896678867849065692374726951354823297616861515464885662681079775065006381645453887663073577876896510148635246870878123897977325610465304030098026856334646342695759194010989353587712239085550596401989387748185644122569444324195522680497899041157363596183386176191283661362718825276584508931656876721003765554674934629201892294120400346690538179328562828026567205215364085290376831965487558125921325427052423426027781843637022441766896874930978444523973272044809751517893811852279817558339264849779013112587623196820847726088559995484136161816106043259415179786648752363698679674008198960373173205958160736583139037073073349628942687430332034209276020965488249686186992113747764817913117360151683100989213017347175162394095053674586817194317732652631171541381148309207282000845982825593806117658082115757485090202867805786171765370537469016023482112379140168405824627475024191440260059040681707858267382896164940475284896668550369282019358946358391962191649284052231967566197300177970583066168773432331636244928782561316515526266246034312744823688916485541595172491997991397455298276025204312101475681092294486122660917805457188620260273835397889845322738801723720119281573954350914276314583396660141059537106695986921695323319652809772485347995218994001008706093437554425465390458903829505658936094119800543776771210472548819255002649037253464544066344632966062052309003145713545114396900392174473201606646210373953425184387853540349305692922515393320908740132864779062096218400466055840772794801462438385954529011837866914656896016815548503514127764719961776953949581572872599178140376703460486177911246547018034071219161331608354545642422917377338828923232226895148803459626416502592798950530971688369228649731187778901805430934950622123789864215422665149651891790388596412873463102537703956122093107730232831639876406915965908677291484605571315024508324519541206303781589879411848253807481636039063272907030247840471659646793260810682032281859882084822305936487085938515647900180390756615022698140079305289841961657320426641181877746560496776142304356394127922260021024222507109832739640059852654639353251225195107504669493737131642665608600477191602927087890593270557545987299659358606275018009790363800509089225511291289338686594982971402324729120145944084570270119000295642583711877849906701405746189981866709311235285179940676636532260439397917356136078397560678041574792697406605431391707816835552582041794560856758081610310933307713403700102050921375854115922779272942912600003234042285500328199961415769301427141575601701160711955701990670819723020700268243955802754734476285901809690188460753788517586864887553039830808793867266440458156649044611424788813511928770876483621576841827845263382658857967466642631147608783632160314442206617385707047418734103965068101260198406234057114482316824172106407911315717883922568014611763366226042565306014868829155726396198724558489625748293005783795673166238785950254298697832521353171977541971600675639131674579947839103873179494613156634312752088680336683086102553469773817142242424735405869510925777349666417315279478517318022509589207742575785316556351970335636914554778805569103819261126844702257145749681091070107350228109931134440545427732957146930658120274851669432298142319949549431841040594742376555469744459653506487654329062908160325375833592656799488335197222906657512557132054639947823814932480951928799214505265454289776270827288417488673276912986096735482278480620284221930746830876483537050604404576380320940659048017651935416663422166629145582661299711915757297631650648054078897709406649462245423573149041547378490854864086138190960883825999929403214614317326798297758132334110293081997358359704974187092663521147699067752176113002199883735894611835759888356990068773441667517845675422541488632944554231309027392462303487295398655017484194905477315819867926356414859836472480979359581874784117476188457726351886587864140121546999411079803666685042307807169883881698912587519441082239393457762313299747164814715813558277859993447058071908579033357134933283079379467663291024914328243253349814912829560401243658794567605047618210885410946058481592792081277440858218944424858465519783883263427224264813153699297375422157650708298691863542684519089187061670126363412489791492303962992991994720803274583844680400664940501095917017981477819000320202384332821957074763057567668816988765413199282475963447838375802415217014611983222934323913787752654709863522100904328266263136162338693596607844723708433722407610552949416221833725274600703904755710917896219226883473474010802998417190414769207414974361109588272963625473484413361407868726132367466838594639180233633451178734561119283555624203049760566516797250863202266983904821084999935580611015852849402370696670677104143900403632384817860027842683215450173466220460885170422097480331666221566342539999809286973598544650546956541652178831734777128427465788485536261444538013174756928002032042200289315626526841240360760789778092575471506572619568937713193685882881521528030237035110634691317031261493331894494580528537121854833881812551101320078315239446461679346696130677633460198060800966275889918705598175395962623214926760771166448879511663281349700106578258658085942991891964675494062682140219956851309848192609683624824681543512971271574411997172559849348987050423193215242331614179763993660961686971260561386362757592118315660088101754522682076547899095048782855264347662935059019224611169224192334671740489235859761507734486226054327915198141794640076185585287087405536334309977904101180522950928794714126508122288611784947014224091502502125937009515897656978308958780197562825388180769375848517346902919765392664266299061995843669640704115998367548308026069856581988018770461061314496030472217768460375966716043662268080481118874192290272737990719572523904284461603652245490230635584127672451468352988023965479801478583192920818185027311651501704122036107815295603800425515268628979411383775259706478146241939088325579331758823295175861679692534973020418579297618350668682008474984441655001829451565063230575007526076122833934262316086666539656933241902888455101108993076256503051252763915354278081398153263714767875081090080996553867880394159664418002377731573601337704873581652909852468684590061972994916786113325398564533800457004723627802215756868550821811144684138075823908523241581464984548005660787904746810373406073095820417172317567291776532202857635851404992354028586770357743932935394965976387588495099892772061560479108078667022026024607174903275767321387606046964744928836223155716840606611860252189732228923459293121757220755010241092556968682706276358831187476280885255998401929833577351393757309024102367577372832762759571605569994993218921399800737295940441409698734572316473405316638864869652861478838574517793322636081064452543599222704433304967042681730724036571440789509967328056039454614659606508358242130946701919037416384168295262657191978265606823158792844117710975090972162755620936678812887708759829775868213356468312918908768227623332370815934881518529555194267948444877751271246619106667900884718398354122833479069110158112627030182524416780759752284206826101415823757231123749806482156947934616880372461069443431975035841648126921649792764925537791146238027673946593659465905033689625458425151318787961456210046549803768214587235585263218200105418000396186992856885520150450877158811240904983106283476809480606984367966572774361184676077931476312255919370038535201985878970333817599187717061758251447008886148763710123758379381319329278499437861494963700809655816554501985484879141905273890445289033721162272678052455605535664864844455270869255652257482704737465102189221844107528956474173938242188070067393614826911936074933268749831543589323359550801361597251067494254404512832623537824470531020373448047687213681250608552806965388455770629370654750074847738598924180649655695783509259661479769950091764175488231690739716664667105167228014841431221805500041529864150899145408864376414849090933786553678061868058087433011319246430137004607969450680603471723365270221558139587156208891852307896112435312039192485931276487637611355816156631936386865185204497202019538925144043766457580218429325859606653068998603019032507068978167520205966053175075285689478212247852588536859593730880762536023246018899537205603566258970790647061893126825491146086395458595763722185695188136813359898997191286267513439904481499760353592018492943997805206543747589126102776855481156274991949958805127012102501638517485338190564416554105504285393940902897879988349395100525853516985126804913239106975682602854693808190786537054819976806536895052296140965148503927207639796573590848914979972741173489046655019804807122305925703480116522262945767436913208571904613848002206651358183442964079830474344563675479656162659087847213874942983589161700743272904528872355231726567992516838041466289371714701146472594945117171327766903566675342436159382637998755658628202578129036846613317947260949136593390061672866487613506722711541181039173447485014031114476713956575156075508704606103713143561855751747560978529835714930956809534284072530465201619035084651452078235050180259194430974908217392371370329422804293627429357356381924727802943132905670972552853002185336167541325543758430437038610936968357196598696990267284124592263552425704292058549172241695685734915652855715937936436343576971744481666306813949289978488515971733530002100115392574568072489877321316673188835585526667889987883487126685641378200455856143779247517733351931809497132390435576906610419535630989595685771179123233561611889718407820558058441246440423485895997286677102910169006928486493793631491929584271410129343991836030879663237743063523198240783866605691379777727009459690604673331982449424438462895610068181017092055428779921477254878623929885284078168793106611883587403702319339608529551586428003689245181692523574422668528752232782096138419445729780895692967740390049371752687240666072523753142777309924849300938468129072724535811628168761576702258647854258241310247161206630760477995340512550301276003257835439859000071918827315382007175011222669444712492024155288245392502425590544593006110543969176065173925930485154326876620690105005266614122284935773050819346304614801046689702185609391974061072511157130809199897028328135447496226218239594041993208154686201756210966341892080937603580638896565268862045937747154907794532729049581676497272225815501054595720848507642278288795682652983487459729566411030319780505029574773377653252167381302801489064533324155791431354487151197479026064773521707594614207161542301184125994868832924193708342984130305530032019997733875756902344264801559465827036206125917648224163843028397766634771942385363059373103403172431841236764655611270073047753761408369226633225423683654362106408743417630217805263181119074283632119973810389212349384886011651138029407823782732154265820849072276281785785716038817360920211409338539965521926626263821439972607187736070578705659840747247360484869792664613703959130624460332997842442347655303792391992067093692909263330029695582926416731110529587999671466252532744538050162912813752605110184584948829230572770361177388428148274097288008893256253061942663586723814651452997437458902981260938389218833695212400151454846449338621707822048121860884068060761299145278859727699652174867725284561288909053228445828986333810794944038679764779378636333620703697444939267163589717231889178654056285865228038498913708267187196984586774721781859475668731837298345911697921906927740091716430107223875632976795073359841159949528731634011762987257802911995632161550917219211270757595054373421614123819913290264223163881564497551673888494741819484337117544577433840288030772869715497227357009767491968900604594018459928374154002873746336134137615684794501602551739917877406964895395558075647356390907482017206856466481214165580583008138367018447527449382654773250753476665138165295919543264782837329198780396571729561804271091165571883048753214492635512565308203324645891988278593431941474723519140624712384702673942044400914987665710174302308760006473063759391123877505337121966584829433625280483969852728003843000217122770127813690387362242966477216657866681107287678227337662651885454895110946763421990566808533797183759340880320264449521656211037047229308313776487555863767674765661560632047632133698451145038339415370495157144625069277326280145874219823803958800912218789214967976919234206388756649795251991248892833608008016949466808942385988808527320688027340320513885092841113155623932560028950761031801884036961042561770000123644711496528509399464150207901627844063655061724435206536124169050499029793345660867251530088693780293065136024056942159596483457137914131811005526889033392034084678266178056475977152158764282142977539485662556334856025743538506776897412440344831926730536164818482309987561060421651525122307783004980958059515855808833473681210974041740472945600913557203680814466524403493232602275254036251925465221375422140953326280036011740679875572665178532480551610336460092999777993788889689711998431014377034382198604231087866610841626297222129413007639552752077298953433929795565956824403427196183487306932773674225364191353524105357627682811521218061566144171487270267921417018674554520390656515032437992662121352830817532084695922162072146471973334888626273440210800701512449281984760230979573507674766191275251924888856542236137379968927193104763436196586353458410849770563622334328417179621486643520869307790255347840192582113408384695025328160316408943641892124853364466707899553714715786005798657511914995504972248593635931963994441993275364735744515148807350604369902700015607430928403732377226951481679418950383573284520971226833613883610401655185119622833897378461396561813450004698295717369915809978680421402254224513330652897250362083918837263158443029550067920446579902032194566727162531305058760516185097924767483835513981231045741452728660086821691746356161538260337783831928908458298968695353450009577394908749702886417928072794544459366270839896982411318256081149613715359044771044020626972900547100084860921951549439135153081061627625580527770351896046229482218426883377794532828827169541158535988725665676425821849364296880374182322002071328149095608540648180208527688196309990836655267667769187723897108285388481049848616819757555611796643487954501723324374726666219902228740049008992450785676341787132400183903731882986669666416805897293431848830120849421037097662850260592533126686832954786740899791906784460042946457217105474674949094868986095554701382944394561367329309969438505731640109518472846408550460323875926231679299014439288841056137408940147997401274231834654138104873342919348105004314538808982773415948944171778947808293837196599321530372820778127391139839294649152926861567047483244534157719817083699430879132710420621754944343852309243179416482512968888235190813696070007289451434022262029347310213656355516579331787532649450886970344888592859741639625497305819819830550848646105126887254477118053906673173290522894164667664909249164205034675244631589440717433270856900551941267064078688180345683129079200065297280635960647791471063127389399241684205396185699086876876834324556119538473655646006919587907316719396593754866935275542834902483852841517138436619000298239989398830392671136902815326546421631332755766739776678314650253585596484935710478640978134087509468711294010930432208708547948652886652510340925075274376696811126416920401697123835587103754622393978255329041092694726921264183849797881381382627980809024088425549081038895232582361418336642153358256388227883440124933306557123129255363824138351372901172697977051642135200487925776349747980416925724213577331846444180636657854430962940426683350904043225633858992931654500359682294285096390359148892604195246017117850133580910079587867359001541461145678416321234701806259827258308359525338390749545520558168420629693223691396134247984907616931234773453195906349284086532081402227429528854084360150051424805376698016261359454808406924551259212240932587632008499923663367140400471265295795265106536448386288155423041634823014317498731425675166531423003235497738554341484613351042180919602878700756298315793539721585803837161444032963688846648102566548620036042295527014482914664455737250313959167107149664582900267632705850578412393893295033094188260040625519426247574219991019505849711187549924175316781868702450341578702283034702829481417747257597893529883917071053990834604944157496895120161553692956932323372707549746943654122430837969965461799783252279154171410220610575328474322088498564169692057747185581521254836603677585441228756250348688989839842931846329622341695922597374535942824818618737352098334597086750234541853013435840517527917205547257244329714930266968033300270870828600392544541565524879383694162040456449955745133123389499676457198863369759281630933747775671042435666256998555049765188151461776970152669121000172907763679175088377437087523433083026467795866216910946039237683327567621924434090279551028304009490364004512258891930908224972240510350093224846761248431619003805606200586236757725439727083829372682636417611732369239326788988551153010431266539371554754622148057754777191355668101600106009060599037661267880839085159187344356390663653603479423956848576589890569284758087000711700191428330977147334282553983654152293539208827292021630042160859443967284063234727400015022168511174309045797447193560894003500648756207629028814888554368462294407782632235628197370961284886675406231068486359157526391707247559293648832569807265499495416064553026132074939569220688744242319339225412250040828591643013801711698320143540518340981480015002561614302649670939233825434123766478225770379706361288208582310292212708649616639601922973761611684159475588684893982056391418564375836500789139612132336404264582546020477431896019215877966380660425045335729875335403915051363352255917056520606544193505915470786251499189963761724084063099837166761172950425738069775090846354041880075975245528760789872421787709217077836383510920454198885542592521333224836849489650950196736514768537365288636492198038051847659188618791195322090819912384008706174256590963082329268154964474741608048240076645143176022599293330387972508791839308375319854791204557521578554356841358856684142526571921522904574130760868505208912598108873075188864395183267090488755768288443753943101671231667786439548811691864954471091752690247896595480184182002051867600677598201687263752464472476946760157173288668160509422256591554599349405364548325882607754159135974483331620592002734664079624666466828195772135974463358711049576523083859761642026128072640542965169353343321132988836374917040708818332426666135116355280642864335689771499693932283497367915838601549481908645205324348979631887281072682835534968415300920742849794977654173491961020882188880687549941163571119569858463249966073915359553039067335247219113320291892313363663016318217008985537654233539406418038264581206648580700987083028227425192440874691825524547187625328445862222439209650353520288032974411381394471020518261337931045091716700736834636884764354937256845440799762710783257029975936227273836469269598383485280772732766750939539449853071905197459123990720286714893119786606968697271561881986010065308137854815259178801974644860862212169449222436450413632218304794472965428573736572962410510482647018552726897595507739129784987270721649041284618414389087497991351474637371293972029698943547431760922723864679516256997085721234945960341308990380363287462903992150619010639510154736598642259516052687360554173658870986049227510868450248994947389647182587429768799883963090795704808883366613135987608200130038810778186878407548063519077213560843543322322993498299950056229651332932494371502540516776653591071212995337754170005173186841110351655308258657637663996371091431076711721485978863285838026593601882953790341275880301966751484367574267353563914843696058184148284123409528220720099114702928090059015507728870503592297924328890984540390852021601657887608185163325519030849435981018284881862717225625600638422437528154369394030022381302619768906503314577950161550294796251450328520002796724731781058019243186873798945614357949868304803197865828696677471630688267671401825950633423939647505158144359971098226263673195898194135906585890759229622106333174975568064032143295192451855555503378112081882333160883981956433032828355076793380054193128872990771461864421912291429221764263851416354521598047025452517735722565328734638722257080221094304248990426842744497686188125559877255492060798654209701999335686388815884885833564265595629666583050034475199631760722461601698700746250747245559342339695354706014840741137201724977023387816771020829206586130904357584336429791806926158448765309379146160342758619753319404551986119482940167446362529486967544179446795786282944271775572206561909395053240410812702106565338648535985008194573107585909442807294761651922157564072556103554671136840039132748824375122925342570286232607248510007314307161825938948097289150557042189484894938976430150744027839154255321121854990997081116053486182667371239616567495586222870204279673696688535215094669712626376470974222442442414444790216005833452130000260466548610125458419893350637135145420856337003871619053053579593655438775324102613542715134707806204183891427962046806465564799398059881005269150375944153640380557063067328374203636253451265088469277848349826359890238316325054884436122359334751328750016440815925284723754524079155125002900496898182692681558794024614119149175925193789398903839082541689872565558867572534754378287855516206106768865748003099933930561636090903512254753663557270916100152766493047199025099652301957169245571496546628944441968937045222599787723720135858746308866874134807307231789072089450120118299435135300327716094286870020517181067439729442466979246257517772971938652561198262075049150072848036953614717477018036058832114511125004187621019724556108455906449217175906712681066067695264186200482540552674301501048462333921535501917854509118048195359835333562297470421867742783588602227760962840838254010273941452708185278912681597893153760661550536092318554861581108101505887223599120082695025342975366048863176528256595554775102512246532480012661098828061097221436077761105522601580660466947754249227740308278330393203261125387703458516597381980104717117875902786888088111642009764535930810757346058205953991601653916745534159406578445780475602442769108765298628997672303760012849034345815408154352193763404222920098396616691391691084167992039073183555989487911929035320443490763530647777241451876297234638789737167146803362256701305681116832676156620963578003557994402859660210329852305561513142035406518965302497400974674318901571843348286778693250156055863266274721333180917863909985294771791066878488409448792086868491194812997218436941046910605677453620437689916257281301735955567104547734407032070781439282111124972055842143643139251601121852516748019478691570691573406762683635386787790789318842876576582117484466140546110925080919911190243090381982915803456909377237187838914937720602481560063090580322543515040004002195386109270686363223793171120289895107448162941618631000915065619526679911289147875807586422383747353495969527695280370957808908443663649147481081953928973951811932804921010766481102250013111334174676431981801979939399048196855299337007458911354002030474052311909872413690077113144138307087998295519849593490641858876706493221116121075414927878406732175900050008204515601183701194458187332541599464085595599057732524695763641048097922207432936876903609504369217577286117677769867166037541761523705204661950183837453476324400327520681493153008315181344601945621162356976788981846066231277945823239356840658896846493480332751992854702284498575136094774277024298988941427032623727516774326692164172106674742640116917347422776592308430440860203843340174153344904438485684445868875291959939244412180934787002060671585189940216530135092385104889422916069100171109682429654896533429181934240500174423759251451035677833687231398630303048040825145828500769222741554643794551535401619711324659914608003331038697888850430307246187211268347387541896619951773480144202389240153384449683512171897029586907670621749618127663466741409826363489946905924402261439835197341750652509265036369453765397914107982088048810603942073760028338335254553412145667594962103653095653992844773143927701103255427330516628961441537734097987044747491057905382102337567156780322289702901501385573483122148102177761941531944512842455130660746804293184897933023788980950129255030013634693352034568575230126077161452797420962419354853601867351385883882079670042631075900915411438713387202426340957261761581344682940525041845308511297297916804838442226381854487118059249255950315875001245843915218239983115015654550959673148445511079006770355931736550196322819421646146481651823781147532195174200524080642206406610228830264903940498780495274945771151237542121355349186797517804715881820403931904972054859067259903807196321884691838492950801347104234458739173203073089958041419688416710216430159709920763137447531950662795851851895509245023917418302648463024071912371857579677696733767293339566939402380048095868741675715504392334807566255980818965620129283463535578251388055226293866870050935797374098761266099263996481011567553184700191096574452748781341408616192471927654135323968063966790546362082742166510989925731692379386538742093159975850279639187951011727824239203033613722766938653985025041657397070572642948386141729466421371523359666244245663387251849968612205802619723944448275865499226790563788331888386587167624883187214708859711653850238569641427577640768029568642851247600642350531718448575622135883126732083681693848040847324795061347606404790905454341052423626891124174546229334545635681792950729271921542686674425847290961325117708173627803686300900328851320443333623300076204956126316056865330758933744599788887669888497310317843768514048547487010588794280385605681901380708630475970813877886637855981850410433062517969686463700595440152680306921574070920815957471399299178162672980130820132501265998618276974872645659588908984683483603545296568969461078695708612975281599672439038076387406456016992916233424386873288035655993275095435356849060667581626860283649876103905981313837931005178198643927788554083574974954668441951785971523421771040870588878937765017180596829562324532060880774662774822399979985667251691626217454820086652677282908594737718427180598916029036806168845429827962126515736594351891593245044379634668407256315203835554183907625112402780081057211182295286693652654939536295224258680472815879456543171465461741254501654182803637577310630049939991143374715758129691659817323262842973750552375862990898332173099842587136256548340473174012433690908213881352378323665283782642236709167184395415897251148654744870758061957010791933639628694947932448411500712407580359280850521052709560636217857490489675536699743321504146503825661230704300102322714634392212135462761351692160690978717345290234940523067507258076006992383906371651103420921623154708261776240567957814116918190864575152174127388593744842678694779744235545053995171927895668465451292968395761878488393004890106298545313023266285472986132198599546323332127036234314273262199492291628749396950976099044754918813943174202330407910531617914156177215545846660555527692671505711221167179306726762863094594612177936658339776179630014184753521356116611107222664131055163690736741983678010977406866602671994685004012420689828818172167893016031955883982451639642235839161407221350928887079729918313504373741483860074533268538612162129659172293573674590478108498625864027200397697752925470152207192470221931075539261122312733521928894203323572437036929765759360147308655117809857039998034778661555121131625151085748092974344356043950943262236783724288124212646703513834434963915103719739242534525547241214280591572371834427760739407167242409274565715882131313457696712971788541406512150629804864385614471706945072049381751801249774180515887738065309740362787222202984288344050870326407804653101830056567046303844475208749779431958011426635216843822757398892467502195264301745367489368018492216950432708872335099993856156821460383435138357869134075522168293941917237614235704168758168754679418743307100496011921876266229828443687798678480645070444957102641809240336428769099801476120833984135357514219084246900269158149930272883340572026963431205752201444683776278443543867325112573399667051184120872945294756121943879231529228926549960217874336202956283943082800140065437616666420235385736337661384153315112312094666327205251084048878093650591676730199578243140400205093086684043593267094237957586642013465857386687303903470838005803739016351184439964052328346511734670942745854523420107659608330813354347293752816104126352166836408946834029447242654144724868316577131185401983398562416997381751262435971492661668986525300705360616522321190884957841837388435201049186083831598072274592095016082683299541358921203466772862873565235385198260146674162903767494110569811397968892144681580912148527379521892389124067541544930117076334485463158930549328613828278741571518443027938082125046495306031332537456654636628868023636918617874651149865637458320489547135285001006268082075719201472117782830312529703189705441414197666063425093238579939012363947815549318392076880043508052113299481949301495369088131256170883952784415084224904152197245351643686064933069585391380118182935018555392713957547317350796636585412052706740495192696425986386173202488191630854742664603748868055809230346254315281094402049038730755014770997066298035971733761814377913083771404808331530226307160524888549116107407301877414044899405797155981119939903945414552788634788661086274335439806014601380200575704720851654971964253338258627857299890417292095697685657958857297798206784287060455867662704073723771554253980399434005558442572211446304985141374001664580703438040621220396813648654537205224891163860160832980034663024984558140168921398741306346858685066150995398948857954450325727071773549494810700220714890657615464427210547231981104640169108901404930071834538508679578391080669966415388368427926557523726808494319576180812497846005988527965371786642591825537237166202426005658400405681182525370340463198514618074956560252042564080500648758906663776290113011134920225310091962605238015019159717193450868937619962714156186408467943083069120051182423850284044082923633309692003352264574876672090843661627247970819059358393656880933748925814407825037101690153650456373270257432337583170805897822907778625080570316481464347524662762835580616716904133368676636285597217243863822489574854637032951109978932739053300450112307215023517033630278924324371888922050315610800965558153290636644139553262794258201442254295523075581022517872906722017752500738595322373529298856494567515731761025226144624237222253812915357533379929094532499362004176159118221826009002714238521137103648150200019754614927050346467242589984874973197131339991635785980657070563575721615343536012903746140332464747283971769204557023943319646013844779959456669628100219074236194575762791950853389846834519169440048191092875459790281408127172130105361736985811914409693504062714578934555611055748727823173446964929164463353489376029255720836085063175824522989728531901120575480263074294760257952649943141289859533212620671885290679547916106507010051305540158077038284189847016306479380751321109811742545418423068895583270938022814081128549418073292214979471051015739125781121770088395905226971345660736288713045976221595369081717395172884047029676946526398685380169067514125155798057758847837334467355217894898835786888839836751448370843273463770944509104529015137660784222079194592437540038568504803211683429869150813795695243675434570701853907632192097646263197314578876645755928152361061280083663634952757435777154740696698433053822048859216214635736410165604138820029021073100049843886190272300828610638951785844533100228939749424080353657967962773478963416568106627249624836293536239700551679445619108595779373218396920573350324660917846873154629702362343960813329808485431442122264453851879613005705546935159423355350752595234270822350354537427300966022332953939978692635030001456270625379082260274575385129697391464986541340585429299870872395230827937850744681018066209301781382207811696024726233098608342473245850826627420245208831852976974334566458954419845302447301921502450320808341727966410233620832261810565246330212320598545195208991625109257691055890406674065928745063344798257733763423432263803627068643397320978853929152826507375963549012111797892667519243230650213453472817973731409661886817548924106293855205121126163395858344739476306065227357639089225086029199832750784073928378944871548260757770762233390486915014604570715449022708820884908729213950630461424369642159985019711452459317844287164911359991733464698174872943248216441086317723852870448347587570710668858708445611461475584206442590208797085047141092077103953349480908921593914166048720572663639525078564858309840818860994966425152952095612496990226681347462435701084455525311207158191999358969901064970328305183689325152120644745138953860680008649376402700983514213578780710780466405090514454361573805306747758532234171637116557059459565947257083259416854613860890895927983245495219176473339237754968638100927102151499176537993397799896576252921399829091158358948826494153537512680818752802643130048180901136925021406155205514447248769952005842056556345094614345908277395594759132423775960950249135274037299339793567736436189671380911234149013642039315283575974992391212173582359835386046183787408807247655584460109446575389293739776381604726820555463145208115997297397394522753965333710530092499348208019479837006903769695274167209811261072896251606467762388816971438101727460221821956395942541337740485606887420455319114535825133325008622168092779592383693495832022305885883156068361994618038010350187739281642143945694321446805441281829275655271222361940926159025335409283404143730809648362759010292761858569346559520443002609715108535230170613967490593175294180198813321384083643808767683367530013864448563620888562408936012525704696446225635104791792409654649671229114548161651989084445095585112648197306157214943193955417459924388965829279347440239723327374346837894014917795881322521716005478701451627841501767444240898756135831220579900384759854158635653271891923028189180153198041545151227181242064870082888374301923668222884236659725301103737247066953660571121548852687517515282326991569669024974866165427186965186475920205239894445404876143040340522554981274623675958091315830307505165357141173060135046783413300716863148079700798438095352245770917123921718648435742220011164633587695846729180025137238968665070397131415147588411449682467180437511757862245296507449805580498844630026861076759788452749727560064433895966949722631521231649082294460597369816940891573959652367989021244740229750654910380595018934808337168337593208603800756066563997151459597717115411058029218304687710442143154771219310071893279945998890544414064872002966628055007719694019226069837002771608357775498385406055231680293256012019710303890435294161572053431143815498848620380202849056587512424620083096150881216146100933427733334077193950449405693388416096848888312367307561244635771434034351255280905827765950052880190885282269000982576121446372268472668233219693625532551029825298348595829827265280349048604177004991481851891773841102877855475676640090713980100094561117523390270824920478350193352539945625599829678424673135548572310281254079528727829507638876040597223783405081568570544572674697225099712277332814692720657453805750945456047160387464448354766062430785794236618818952191529946747122054106538534016572700924756297826877698886913386795719993512516004310001624308566218780027056984153917350819740042655502218439597671074841759952081623770013836382049806354436868067601337746972828436456046299088438754943800197638353600307766704547332046717858452559253414265594234913579101321914176630345872471497079365894104062921894592840925684595669681151261916147693208321130111735508329814643284678086654544470588489505548952919474699498510987027562285423062247215019089290501964458051497411780218083217954278039870647024212292926093377014322861412890314129072831950865659068045111271052173345261121013569066588403596886816890789284501858065980030081728071004089095820788894706592921864042683021138105696740838893075809370307045706988661247631915359257598111081635500311759079128776335721114874772190227029595405017377419583202497645111494339024837591285548351639205595082960087632491095096143349782140850490219748121644935917137357617773716243851466798979149970648726586984554807778004972082245385489547068909989138534935383007589017980797409259115862442280827490257167416240976983289059580680025378518345857894864657911496228222943391436300791799437691638900692976832464063216041641137747153551899102312316134876600193853733492452469788250053644181174586474676973204633077627946833063026662311241486746201384798633357282153275159543618257786834684790367386994754165745967117389773719089842929598733691710801834243421355492658279767132060291660854382518341302740734276929495342818701204474549701905977084331678306017810166966213353985411091145602000430356964976309577624523443195848572684431339681094773287235110882510770676144306298493279691178430373654153155221649078433158946989230973883827826753012213564467145299838656555744937690809026631985528761054473917026895626586167704169783996189770895877726527041243482159696905663370763024397427925155957643769872386320396679308399284507301667243900875145544549238766229564751003408364413468591177569832517558775611650185920451002747757415852525278427454301170658502875430703624140437717003504410315368140872902034948998770663710162464912488936415003437588650591354047311436794195605169787591618482447735387801524394442862217583788271305666765703688925287761030210424890418155389057782590900813425341388412294840245514019033128393540245595467777590338974536952667826496478805653910757842918409311347310923089023664093893264345126407968178151253783996798549162008836924593330053282337628061971962355556762380268034531016341620649999796534698081691878803262969469698411051458764062326143705821948884067079451847117595009581120223788134640641126358147887548471639872578156221129036002608590712295590270112661744940646488728008573887206311056449067440542817545042304922939820738385150663320692153601012456118392721208049221142686802546583460664931288392698575098355838174087781211243663534391149474825345715318659415331983015459939693839530086029208587164306832444122193735263750515308755273344572415571306615396506047797817640136257624243117387675008431343651260486013421388825055877984867177311603569255841798274000688591911070749071249762805532423937888014139936391915597627415634524492933295893698608320119069529691297948803328016843667919803694522863759373020515484551389695486002620925101155431910373426583910145704486846380123300475064122135828505220923877084841326445800566497338862140535849503127605862413262779326114316797803332142390994876935759703096309436092741424689453945603605271460901766806653266925230340958710125275482516790964782594842174221933721503786567871720331910052947919145489573875764080280398689990345271981900395241781928692447299218350297033458849528575884320377229530494455382146664657395059257733711751191909005498147013136037033204626356008129698314109261214682444654655813234225857568778079128357689938227077802068612814062062639661811375418883322349668919503990336995852358766512989985155552091338624839614906995917557276509778958096437911440153087270594363906999788163662632287720534736618497639745642276291153864170782108231842646887479200404300806495245775217750529860844679264880602419093909063552083718938956261593838738375178360618260412349646457324112605765578973851770217224520288994927522268124331549639753785621156469139734715285116473156942058233672926002985016223429361304158667629776966355208573757199013496745250142306157288581298647385380962398307485890940641841450406126572460634184750536761342339453310700285636176450026462912981382778340436619478611287479857829296010849079852843572975698627495117449774061625960659598606945383107480775666308456968696055366235713667673440539040101545869702412570011754565698751937974956984191362275006817712821189424826967960620137157451557102277272073049778383899574868368909316095352346787006214132911423482401463633379951434189478738682918092200959124087531682098720073632218050515173983705489676972306622959476151124654892212574783538529445175362144212799076990117923111725066666932575083629400453906499590444670812796953257649755120833826784865249105880478798521606182475668331666010902433302953001326337127087688080532214634050622893360282608191556694834328426319077085173940745739335230367116451152273509819749432288152303680261511106528646316681847152816286210124772234521088482304229884354141608833133134556621843273390657602863012501843075122316287935340310154661523506525225932847659831761640258130333012997034037923499421848620077568959167368514677609543123285076932582529439829084986980219993392609690127925950658304413690341845312595915908146077616426205808429967204195152638767979857100055949944071113329636070233220747218984538064493731515655516365733688795434999689543854796890450273575954638453611313309628091157448607090713574769520975657674658791046520386978804467660689397638212431152621030791744266761796485825149120095807800896611521405156042350183917158794137938827711213381885866921533450693286613883483718188762966053994071759684597759558596259428515714103670502440326634717296379640642907510572608000928245607395875913666365614167051294088779863522274346439476559979366187845961745905903293707167782169488577058628526007868458087722160535020221913957621049296717958908973861314597689104900897464495058982707500708731502915805884737931679398016149821152632034787754565300267898496023615268192866113813695600972840102997601367754351817631975764975584649381982706644979778150368110719721131241366313940040128635365110774233125648770646604441747141659469042816199251452696566391478200724861723549445224539744585854301763289911051598567165967095663170033937363025927966746327786562489569477970349105293328283755018767451550128942631200250369153127219983936949610908138847767818839183263349168593647037073008134277642487203853240852080261859395523728682803039498873272298164789480977338994789404058745158977079531398130682527179983551462716233508301227272203907757291270958171290671579408660770816360323567887674467783650616664100410722348092568273916466629120338290036298301324542206039140767564837926411954059318845723211656131205157199027710888185300378749775951992410467659442528716968325830566734295946090311346480519998024638771865873621503615543023439709865433522818215026315791099705837555251379955318707858683233101186978869185013871660320440025709069956265372229338326850843595722290532065934306343335467471431017617077042978761816896261332936475081021512666274906201839285912175821867150911990486194936882256277683763788138342082761153459288484338046240723339686995764383017124926097971463151596515101676327730005502016468727923372423675247032731877563282964655053536430817679293050667446858351901816340729286436985712077660846826430823056895701442334043124024092906811368237092531909890951240240524916365257983185320072188322324864464295649638524286033809456910375938726333206152106838660646762463786390258955259668118123838392517949841350691030577113605838495671369009584742794400838698478965149166160012275648076917363712407149675267108482995133186885722272963197390791195670455644774743097896514726980721721431150728178797661290315265069234846463771495833153416175906129274788544409185447242340236122581230842707710285187030533804740890120604216692260810949070924349666705501951843506403535744150490299716638742948985368478812491954796067510536753934184706435364601233371533226019029730986714393916082009655915135748470996153212609033433592427884348685489665427833265532430563927416758772840339320451861882783123933137214293058493705854431364339787366734404343359044507914994322279808706259893708575333058186415950815464734756900441665041579248061354492743425831185776873457391630529143414335931416780532173068634908445682267323285145944699298232240254086046816154099662628249873104413641197170180744297220510537833842768260089847423199024639609066755463843885482459052468101188927016378073574812313295679132644145327147134575592815333270633294673842740628750770691206862672999083457173153817460249841929277483905684474583995643632642183207744366495751846883639530422360360013665864535613785288169339410088226031687724355020586752590105774648863605352640543899754583414142289017759669580405984900230022968765640438681699292139368393780397147455992582858652346032985757163138886174872589283179151524450840804689633767511572673219473097398070456171094901421257581712854118557881800019243857482665438199119243255398245746611256110650741673417685770970139825328109524471989955826662414601981882292898525167096077145128158282876474055679712827645224731499552025027657003705312687689446029753854311031288362241988802150805284673593290750796271438682913718823030548144912339075541719419654589057026199427153445015413403343723968747694285133013125296252841195078124855092482210627991989464953028283691908876684831753565209304478437876087005367848981623088632363248969442359139548708415830468720121111500122921469330377627381938836597467263563775878376197096480016238216826031837176580875114238729375477446651892102680733316238757488788725146661898045606656935918973873376761795596676402908792080348486441677025302936322150993495622924245970679501406948276656957592035562883777336145042746188226554764059508705356140695992054886718007087182080449655302251722497808395285179467667142546895221498069473421987928429187938807160869276048539809379270677226305168859463430615561292807437214028528117672151823591506759133110884749304804415512116226179542450044751000665655883307485366584290215222738411814590453216843751805165168709767496740540103373922843885117051625611172698256468442202913081186545470776103316606656391303345319153586867736280578134928235654825936791175352654349745074893570143924030909885518877196915015587628452407710129974670017061971064153879507082201283293840966007261206839769111490032674488674876817031307550508455407604216751416712577050086754223345112597489487613907077236696247859964706224691627165635910927909407959349918882182411037030932460848020288882409479383610453769603264583049857743188066495788995267922658412351197388692153242593303042367807432901046590971822148510903740991949990349308867306920402739762582553904010485370570254893525852436136210053713611875884780443266145524536826629263509611536343703653456388322012908672143344585393299193886702161452104482346494150746547280550546724984916013674380227395667412986598842614301022874000523619253299553890278401874435134865518443124057283060396200384831046888299000471846553112142723595922222240836890962636288672129612385453367786546992508324684954746372698955527220927087906542466424497892945054571685100603699676668099371138358211589731044173267854709287586194332977145217189416002616099237407388931636459454416464434765274097039518755855622825369365576322750066791137135553560044107043790062929613407375795420566263963111204753919552995663568484081377330414474695614772521060491532601750233512436810176091580268682155766094921549656413677339867218255784387687207716612771362590250550531125043171893739038215359981323089008476454074852681254518177296963400132550539821778536312860960251182544434602283519194537477673040033588454200019258855057087581153241592522148630117285606415624003583382271889780964810078688013926675988704832556199597185248863189966860712078368276755471251462152601586865749836052209988109562473159709827077496818749964209860839152165987259546223104625738891732674074730217451798300883480087796137874562790519446733444102401402916296407198435136826661243811925747317960045138541944567521162199851368332667466975029251151782812300959601309341521448625155847134893877910318523426876132555209962948122101733488997273209057180003481382413358362987975988815085791255889603415820040290215278189695057261245847115606530325477571233584421067013541494580512760623371750032617727984559693588368212990562376587613149231629324911693216677851126906932327539872041491931369891397835835406734780598043341366352776936078105715269402875666426466125146148349715877969326772910909478834625737303541485154981078643279798265043855650223835578273856357819832557272183540367423044098603980453267746590869636096392680695029482830943031839741567640129319136897425373302329929304799993059577302126581733522402443268103554723746524311175167951589757294119805006099071176937977587142994223763175598456137104065489120407308923104606763659430306135294615842915226400121774867199618756474875648976787703430520886658737279492136077625501918083701619681373891212319554759618184887713447441355508006652367781099580420143051216151302519316595411773800974302399599592477853018758480565998011838301649207132891101419825570224647256644957726538834273880907011427454164318451707480231199320615770344669075644480009654974202746550008652171011509698804363347709177235906098953314611534810377868369509016739394869984198337382877461111836365826170518191508513457859396687597803480568803043053406922847270930502537339370840830947495708290755380694525673353877261913156339394762361908504833553200517840213980089885414444048527857097982728352970320822033847743725392916231617687316413092414751431169244766472965214718019232777017705055419103185586674116676223024450651493089215393476361190556727710115204133177849414978407723636787820643426194181257009968450287296499939786329266863782372185428392917791869433354229059638018202641182238481265703264433693815526721287114265132401051108801218113485678716843913621600480916412082290765425761196169371341651537959782381826162256405961601928994728785074258569542425392435818192024511840669676076239375900532551537894992413071281534898035601284722408023312349100662628370795185538640426024390903699845717727715868655026866745709932824203856421251806405485709460153116020348696931534871185314849821948029044632007990200967911643200460738373338096708478704996417115991140095276192169681457435760158620273366665587557344349967307724854468814976064205112550661929280807727721627058396135576405196469576355256987695449671080236487837909574952077259840513185018737587459072151053852048174266363498339159889294223106310648676802507988270975083271913705979871212296706899046332349821925036066521806443153846263594381413826365779359196642876078625686243852366322130686359593645554506127823971125691260632960287032125935612946157663836615397049529620335308777073635898507379414057048550093664602662371080961611081782393823004544369204478454451591215170914944741617234431690136831544175520152678017648814379758743100196768472968969518701689854698792275903581196882398669322113159746996248138760203282310986132211931176197532774669627627156560722922040807272123335009987242447661824023728011788871672824328107959547907564989590351247497372009401482626509577991415371644201466535169654500543938968038339118260604299729962660378287814907776927907174931498922658914380201505253217563031673859251472938130254103286651161744898624552537321234878404069453396562641993252784668300863354394413559645315315804175278030847897172380915581526085175083253808360796334624843530942268858811643079620460868579408792920562811894478510012265975599437727380077849511370395258584063312236577594714951632204170569560010057768466304885148985489367050092027767906542686489307915744093849135958716537090699008325113187027971484314732233044886412936388582675381421593588776859895808124595518170282335756490765985978344992049555539529965918526985759119014274513677789881169739744295202878065473975844896038917843408636471688057492695771083168510638207741307560748042031500900603193686612480416150801859613464778769903127466888767096979679041730999374675997985168910256796386751738436387296592170672949588085962935440618930178439788307815246816324102588916330162980094066011645600842436362800764270727282743146026298512307080319963454111115330323728880510308910326410327170034100452359417540592498596794246654379851605886550331648304373189116419042771344407022457908097890675659452169919909444344316843135545744786745786465246991622919062149469444994962082894103340972623841523148830940709953075302533586159597542822614485712233771095019363102924740443944765485553528717501127645303108836199482346771195715827085386726563813696454307929024927266236732562823409729027490967954022723257920827441875254993178616615065815477348887855602413257161313314358648897374399224637654305791601184357290336445115291647666630348144695837981133550291379371949749040609829864570604190739442465158713672270367464317584826227911017160393016254782953943299340331776909507839774745041563972774287732104146860761537766722397124385394772754006636254645938945402977010947422558441889451295379444501217480572749802090130550202397463749047277204227563517737091821756141781796585082455174119238252522498369555297632603666984865565579040542801322574821314237988822434336637237978455489370833937409326430728243472022976903192464570762395508418867428247842861980095973623159648022251402270619966164778196863776637983699870854783827959369976560841087891256775980545712727063022564973536906076581621803264565175265513634807330954742792843235048743714266034044944376425180686495602689330757347383091613224312879254533228100743898388906497914005086464227334121237558021466838155840828371017198906235896242267514485083751273115632158143416513242049713200001718585923721051842254272415167252218865827195337789969033924348446196861664117638878576690996357382290417535108659520085938139813333325140039975846601415563831633343171992422494880739594502811378896028480852488560975299888819520555024003428364504931818633291765581298090024266470689226752284373980283988917506667043823950272789726798690876448633423334615428726005199428405357231266514815961402885528783524348313791055350627847269060444214810025590990446778534063473074269373727083865169639992831485169821151843772984414934159100892903114384743203980131512118829002795971064882615360983144713182733842136988565242354159336928265192764832754194847097364373219814056497592785454821787576228682581253028687885968672250183317620489261871867422272656569659759051353635280364335687825841208470957742961349842445944392710507106409443927417067946977844633151764568885123904574686825049836650008041793764542608233358297789960841870339277791040125469041668252846667914259458192232604678318960075851086745951056010472859839292006987283606671831835044778681948726360758258710385784092392542726786412145325486617283716672621410242480901236256393866980968590650973198728448008241084363285085177361649242647234081729085001136970595944575083918186653994573553732745528745991037128591256107623203389278336427954639464248496226126507349860455268882910570831186667821827283562857894345554740111677204142177484584435858569125627236706385406718154827085387552941869430053489984950703817245309085265373425599644242811383033223248431305820125587251458434572853700980603705637444870865189542836824003462735335098504358643726501623275616189509405086381913369539600764050667256856662235386919700969197296224354443833578690090319559428323538634236664613018417034612642906640053249119234516379388142836756341164210151324148889903516069374244751326336258012112550344811693400126820774940482781150072420680018209592357564923125513673327742996955096558747291161561236463691739683312454973234199401595338478576985354678478303706815693313297731410349729456194573401992832994387466749168653847502605584450645690561369726619669230175177765319958546867830365178102451250318935013499808902692896602342456093019945079634382006465571312310566591865799360905842409283311332982309929534673938558314693935639215254067255153791844205922606627168577973931100721569508852671502534163035202929035795971009640396418280849333835186540204438380753188812549263512513341789153295095787232101288777884624199960900970563121527100192367826598975531548306887610568512489495141150630007132577286438842039872940870172500507427997546595863917003071661519706804418754633441963385506883205192973742005181713179530349398338553696888736625824748138979184747342643763597798492670693651885395552611098830608138016013476649036680635899704892433038025131140561010112063141693077135512512902290054155647358562036672121549270850575050081315078405677471273397828747906557359535559230754466460754916015367144390205228095286952806500774794290847026021743001901523000844003303725678726812713534044495539368882300216920232510121426331910744936304094192703222963180618678979179563076920060573560694711753214586156718145452998926216826625665642369654412174841886931425757673515203497865838838906544838472323436776997928137235300923143437106827828629294839018132596345035951312503455200420447216182920658492191365713449369366772115009770831768077436755307472722704969943629596645028485027589233759837617876909234678009829572926854095720588489052831414651326149411782634565357010271266179859770544031070370412032932982198217937827823415285789385682828228454844363293165547410349963388670471020942223634852758477025529689248047146076562116585578537445570780845827638318840173406618252143608390846099941712208885483269341084472469671105579964407777960041942053715284415206301919816676243470296607874514813628233130833995048309924500977171989672039892849445909130549455910965884553254329748188530201366821831498799372038198919909798584229036249946239660538971010077585358578883143743584225249436155435007062029472891076264836006487699028650822815957051703948147307443594106125903529928852480880617651475975993277148903885404568209554791815120418201427799107152792130323852679054962455775665789494363876224536502594901885403757334653722082681089717828576516497509342731485601904783906704103649926129805463981907326483790739588502555044354429888815822082520549460337504244926138466613370445262865461359843106066323834553391989198783291160897797417365825064646475981198647334137410600879273855153213972169079730749526129612953072179136484814390836818758893339292722391117695225796720090757088595991503362154634902526848835812931998084797581889278032138652742936070544324132337975976941619803255058168643674241969976282330561161220132102067188050241425527522417564930545028332055931678961168257691609473980203948617840712925890709340174966834538679384630080241320509709014422265738902346618995153396601643563882877898596684678143133895117347669352767075116290504952139493685590446367987664622643943604547103660202623143682264302331537706565771020836677638814966707606972223335795190028852043896988041868607453526338279776279372916195510578264128516802081021256830504720369132736949238408712416791859923225886501980524850400118908239655458028937279802796107692096303960002041666290180212329008011964302035688983327843328886178307242923136498093903614612949556065816866624112740240332675632450352824370832261410356519292576247703635207933059520296751110547790583826629641592818380433002090575445379894372553973941864275511246960757729554692059658131493600534517558245293337361024127970468507458077747297424272618335290494914945428629584147582487477585041983744849005409142962651762064845503308501745087065281125402756222175880437334582683306734302902785187898149433143531757294139637177921612918818474290931255817433953381806387771994202896309015815633046229733597250391285185583088409400306112628131046686635172716117777421131418777861029335384204364910295290188018871290498787905425840889051559061552852107709065908582128141908273810148106880320893713515006015168888011832490359662031737993754125424527289036945978259205209489773054720560975298846104914437240781411635650129309306741945151658794798390366587279127157704136958146413182860923229724267431633236898499686681428148362045365138221805800974467973555260713214820953943076149034097576788620386958471183537434758161884971796161699671302941534655517875916020387669558981300117600691382828901357832366871888283505186117594311503042025795237877090571357248311863687626594540912011719225119692169249505320079268243359480912585874586073650649260646904744600420414038750244348946011276597675368972227034948000570719646927999747931488982347050238110217096086768650652250824689021993435809187071454950324024321853136804472811921140523759111583137265687656159338924961152407504974269302357689099723272621630688269568203502041864296588171756737461852239522789785060735171043870340209414223129685949275758596726355203351933412147632958351614194092746386898059375466941834242985780229612211591772958258787123947058474837929307893666475417291328305452871838791846338257697511375828167311304009075438386985069211536607424480807339447610804609560724758112308086898590626660888584743824861753951791945533280242929202354530410577619579963437584619775989381143401946641612083805637372263594873187535524681226507791876024020772216210541934685688876726089362004876290026165026791950606983671590241292435395909912878838066563403036048923170434833113895269700823968139104690249795506404677450593456146373925277206767867094554798825236169176647948263890177051578423112174965864129212781707430066270784765350032896241423573995780495228483826333956565610676675407156880075471444183179255604947146270002707429023973085512208443188568640022974669162753364001344353624361559722544705711690156287438855314446804046060918311341162201956895241293223295996402728916169388298876473822481457608329362087285344070333476163081554340893520646140839654429392691810000490028884632840875586949736038570916080671503241783934744561589676283077953626402833650278363065490096540416151155883023831579335864597189675699180710649683951335304478120371742573040573664344117512273703651244884702040741662921817439665765529082658313724484951342419977739937332928255742853982273338119071015883645795549744108971035755720193889212582378577309749816336754949882212127661908675705154669111652812583042390324924906162934717154294751616335106987286664079842655221818756303729120291410849872639832926189577519590035439544827173684458997051366993970178763807022125911207131662760462281585489149115228055445430600252160097385330014642036455657275350831142523034310792867021105058393478272373275787709887327048019205807322843462790660355223497267692674885260491427537591568445007001534375407858718596992524293225536708375267948529134801464699325077420887737547042858753565499651066761068698839320828106159705534334742221340324715707907599399511234260240278001266691758764918924932846488871284757456785423847622293677260092995487367890310303956079250339576308899937581961306433606851436211436907599589744967004191456605322725119490279708150800509584842915414214357737690929733057641589913106569214187911156876925271873480107627648753023189687347678783041506996410161798446321325223849147604973592628959178811162688046519978202666930393096988357368370658230876930907851503649699325117704518619505321606573086478646320188185581600197333759669146620025655618788970274464399487779009165739531215643508632454317760966808204317702166873478986356791439325257027398650155173151864609635716406892868819193990251467993086762142006848294552272942380408113828263990410787222914980750633197036348928799823758587785373932435728768093353897509894804439401103887859385498942687723785477225815534756675935124629025835292393799217377276492321040297638481971352294200856745038847553359243879124127446326247350570248907553063297909542151404423866929741492325735815613749066637712664275726003815606411560299318894016905349200188942905744700687082025145488758701097573043935737852921470399093319448030051961115548407810504356441861914871113933967992646063243354368374304268524805165066270013808633097605554246629551216376730165807781546236848397967024033549366103054058946406542880238517123801261692380858475800880697997774546455367348837995976744612482649833262890231750316542009330313327642549397961376724515856760811511331035865038207641677045369003014332394827549111500649967482818291862589339005426883766821036622952686134076277531578643907745154261162172575451612884509094395826792819299168430408106112557544368308665214449764484132274019806120082330386960681180205436893803078578572118250359998674759297145894961322035072787747227662378426342669824485310380074131149533776593299270860616917714549145359282875715718747123840381307977238876504352573034421287870800054925586536708911459927626208230125677991933733868435995946882351290734252591291607996049535262587495833138571853891247069358108280339951842210222789895023888269094397530357404475144960413603123066526301370825562392087015717871838510124653849047046432565507651744604547644261723469068648351794019036879844740532955071041773765009205182788509002842855126218575413822481442977068531833234952957020307889445377069719503773069788248111973171692180174537741815229413802706278295532768596372506056626844566445590847865388720850254331935898223234338446796895168572012358731047549007385121921710715918420029278008376608572109381155332042707662913093162065386746718887078243193136591989251109972880149102990083354244200269462667564410963223001015011175277054074808554965079292251812306381825818190352484671247688344554972076940255642952856832746619254710138487793066701093453965362776875347296594076456679562207327738354253341586495568675241300396993042712190900138977151894623507427450208839871588627521402320141635483829640564099282725850375299246388435436097587644091041288404078455102836877323560540895836357038879140568833968929170696538550300888848141867955582487750583380864003190657832919312634741590328902065546810716275723656754941412496606273963849565162150590697625343613128073610779082115595285192045368409285541736157498855528551547511147750390228283434423474193299293363052168746834240917458739701325659239543420598676396973943105678201068637871017616115223733735046419776580814849084925439222485767753117941060452073438727730332176853715566083218461998765003733991258979304093523950796418525501802948233965537927121533301040062555714368046006216105609133354817438325995841857272863765122692962592514498627084090610474362487137703498695410567768341307687405323198513917394465080513864586467021158389064914254836973219721595498727652587652186107077169974640152930566835695887845509166957871610100555335550974188662824317542735810137858229200457897140767913014021475861608112396792758453435956866289982569499408816241582625686375502172678983093340753730067665187936862314251036296007883600589721085053428194243579817900728179387316643124130910941412886694982781270111950736476011520113612777615836095131747597995278528687174208953687149378997452952797351823298269213327727897935100602240955185382005198561111570683513241859421612783776568637138250513153137405138060955502404228951292512268712178327001788702022636781638262889002152152950250320092568166186907524950941818790677831619630118306556450735079476760458464562707877728807660914915138247472524900385766149730484597692025052680856202757380569836904070450367925565743965940911897949985048148610062941496201137842239295849370832239392037276797713218701991138307855442098654834063267283659349308205895983133395026138225234046184935975299258131882688960507770257300934438720761843875682154327567697938002181778076066598031592587292346996497360960294586666715446322809080328479593187724825094782549127147915155415290599653680824885158510264397118040976173431046899386014778496786514794714096714998717668743913935968130461521755955947870505669734948072172927012491184570251469245003809776206278481406321181999206071566600654484886101866080691861108212933448337126058036121600457669328643746553777999226429149414863586315999858617573236568917229244688970845447098847196089527141322566868645220388985435089513852944652492727553369898008209797984849966082604518977275227251624558340996458266523954466511155189949322215135272424934094445847601565873477279184529705793105072399846855177822765245560504687136100835822637624683336417333422289337177812884343646715402544021147152309565490711413367111269148809160612717464425711433877539529112828896211427982649810274180342216391752030390601855344230962162683239608271063537078067757994592651727683854674443513219249876856301201733263721583045018523358476391064661944633774521785311487335661580302009675146852373745747087698396048881694023331125507948383602897066468624627472794962427979221319163232461214195262451370202112322393026544439521145351265592137103833624283734718833699645115026080594057509494910686725998789887481308899351199890590005668579633770242737013802017423868200167095424255789930486715140679056794530213331767543709546438692088793411177304811838113489740649867158128232229257594794151569642352645744569722118119965090645642510688943792747445629079999290731753217775974338639075793998492026947469120616866903402669768454460647599644344036980539622293996377968796656663775370287563046654426490332194625329246763024806296268300397754369192415225286888113818790119672161676605772893516105538324427246264516628011734432212966915244201942882606168965053868179177407080270846401603450413196005483120092689435014416477131389870865595993715587468667020916321959983616868070847626677686696875267186145052416148965895602793373981841958093188993109906245889590601491672883067581584692052240203159704246289888403606584701543502609083842130584270751014699862424446647807973734929118669215995103691653356702916629685344862570679436684505641309165583918425824032569588834857364254242342680719703289022546339716723210192175805279526571870099472590567949363867244445097688380488465661145752506171376193875481490754714984972412206176055145130205340531184603289599347968463142765385853069027243220259337516391879848414129247097909306595549661970069616012066917304674900091501713054966014442795713349448876827216099420105857221432399548807745509161239542036228502720340968586973501157256427377561235323377434224202375712370463388112408638989785055757862174397338390007905535955293253799179512671335349892695694965140755403293496355100806479655243224825833293362594046656832174431677132991725857431892611574078521718796487479057466167708266734541962943714468815372294401044939437163772355057378087693146151171106134367093636812557119695031102246816576212747282953719177056589835083602879671063601639539008951630824043545637315110719544687405409859267913579713702917773437688152966020997384231178787600051363894721046661740087218528244517375300944969751554046167658582217147277207560151096061459097337533912012750605656864815895487259426017796621389090410369342149713298421996072179739398063509022358016008492721241004342735213471001190862814757569464745613245954147087214278861455372206119654756047117468085547362164607787880083265202651808752133949627744440691897456891001973232872797806987887720690651114830656673244571874668353871075990483882997407204883035600274023730372272978204211697082748262846503502988856446037599412630239379504783112932682764731015694137755268206701741595454030398967497636215752488723364323312003065556801695665238040049789429301576040212197403909732681659854958730684259647978694625005240910049771316277346892154025595416033842098869849632146874521729765243145947810624184933671410876943469900081878994439612228326648259243204472089270985515602965457066759485791200706098821892796211148893641787900066114713246860507726830803282293988084120029825758272012467578023442972650305585879097786988299863596195804276981554253526102598091366894533965543306183305420576545640504274320468071458308991516921786967796808280853246874942771499145580203046916348045296182637405349258751719949762975422345080357370959523006355924142873600733035531032400050319419638720281600078268715274993582413165729222145536226315465587657122672330881542899496486173257543171155090494898002075841987025320802527508339017659420502639747673262402051100331845310149887779038942917491601409637168759587029223169381927027947312972597971349543838394715196395928408746084645620204817025496240186405358039231675923978294332246563024901715613637791736856270722110399370319156533155210952402886910255629389142899556052720013694627799512654964766521201207535347621543991292161240570775308572915917503465260093377651605018796327094139289375670497120564343367749157329991566288019872916250581874252321221926230073929171433563046264270038488251081740012058605928534462883854978379269940236907127541425443749944468907487630321628906406599129606685247536608657539129922680989430631076217154884340953964215810035412205646880727590616309678618442893225198162190677314733633631982779237379853052151388437644960056521207347527796876107893183659256135026510912255451333091310977061772009253998785522984609708134308149212035704148233245213303032405271477144483926403266824604860492955883154498236551683289624006458581928625840786726493225321755700875986604360384218523522624993654403618610425082586426975382120742502875491990296227410279689960088898331909544200609325620010288486174183978449803140169078478381062687441510388978592551039195004971035335537642073027384075437869145748150528955229359235200296784847519300349747414409937762900878983309936377032628692369256278900802332222615732636241492057243039862740054805210790751251291133760406138892110866852819566242032479649484772362699924692041376583865037073706598009813336637849239972159699896965476693045841213793297533954036494056747859652868293320273221725651643804398119624723112906069609001670631077263315897420415607269617697919100198340748065896021786984476066165809961546399482786140967108305008024985347270050239416020898082767132756524857615829437758529304886267090286030836445264403988274025630215414807002660597745241801508719625585646356658746548555258788104030463133992381853824909449782398853453123772362188721351390729401407353026540774739080473767311520997442055059902270907545586975499164275427454834203594094519430709107330154664281228418138293428454686073253692492576198618536177923975977081250580109852270094599807327604264753647940314989026209431434400213505814980398350219680054080233185807324466779566754930691007476804408112347517698497665732687596994092714308338162085001313618540567390244524287555094286980750902502244970309982535352009492712595022207435138737400801287821323850637631341053115102106832405179730588479029165001642771928319511752999638442610676514525925674781086215605239497539691233189628052840737324783941753862027249901189166035904449959929315497421860233125445239043061161702108796555565986159795196609964116332170095449856692256473182946003935066285765028376604887287563190255439589717449209873595214289969994814674470046969502151400312367605795711083509505392366368487519611685075023719611724057003078130881826969056459313969658650799266657278497795043700951332687717208093173782791535843553549802863040412119521991933125596763690825492367942122654631311762308575344385691361654788260950058092287741796209344188889458432915671957400346768880136169801295116686249453650625793716184936918676620181750210747796764262415940997611036388286899996303187362070809208638716641758749675505861121305188338581920819449347270012394883655147348283434681721554845503810778768694431861761071720052444922334126332591869117916445624223875213282713856963440282074008808958347411141819914286379843388384006396002805700909359782015099322136186868890885633563576110054478717126244623891585449474786983097911883195344069026534846215125264239432396636346399068505848837083991913810866816449325866587859611166984972168712345015021571857831574950896086677048591320554499604877851442043848138921897718382962028071144850970001928238863014790896583705544679815841789616930677533345578416715279010785368188129579020839922710859166095730187658567067662907262830097336244967734838449808006606820223534976113080714311284250340649435649566016003282347322903375161154036963460088222770846283208842866398632238142856134611186621772643465376886028116388256766551135805704292571986660326628094265204918681730817538944918079398810391077632579889717723903861607856635753361627878118487313158327604297756153520432650140709651359932556278331673400441960580546446265903917342339245380509235846909435327386343529143129177807683352382565579657757625595471889710716246541175278073400183740771249668557934333550898941091096700806411098385997914976772048820256897194341499462380269738969245726401181527645319849352944667340979704373686034472347987749604737253851272738358066693088549272091942521234993096234344119975501545454961031183819804761162957381492659598993423654480124265474804570231469347138304074918053732647001922507123412686648322797662488238617324389669512773946430419721764107298314733374301049094161374224427837757928415468154811589427340721567028905652969615865813412794242582941025257612214698530432704695143225351257796601728305407133553582456543176611646872386810935212340577450906884641718717153167693195092391566702397958340403263817256950984996629005242454918859432853687995774558311686816003325777039686339115969781754291291603636635666344104445197095029111212252233549239062503666439984058927976979177617131265737786346628156482994614899863622953773147928505030409976266259695141233214197615035270466565443340084065612161912627824965882163569317046892401882266172894057596806882085838646641889080080919271793866947347470218946002133127452968054191744856797234729414642828072003720932477099825272570980424353612202207187842736199840085624246166456923391930955424039380390285411097795968451926459246200183575282812996929327720569120805911207262332924243731319945214696153488067432664547234197099903969469415780478391066531428245296971959391163845147243011212692556634573321953177442710415059789987567604673781086303535649020717811810221552800211327676692104983998574914025843006484253647174715542711833804173922049049900901091369567136142491347191794354780022400601917704662810884945584150065410167785442276193205203891818681338460721822829326619944172392724589843365419878588021373351266858011993816735597682385550736391286523883936001149364003196676585164629546512260027222390132667960118263399883770821648491399759217518537503033894753048453335698940742064693049079732807561824788745158517594032267971075422238442152774997771132334992620331399083196073178276500731098757884960543461119959826228643386337796321551628494971569072261647570229762393896719261259213183946584055691691292621094852161033993270350781632031332183851442761444291448814059564210482499461354681766896963794299622447540205629079609451282446559109569939500102296089514179093454019981755542195386549045567061185367157645515007497572709939365603019152119624477218699772565644068287056903643288310876573432282031043253157448657995285584719872268923624242802093083950796745162238414902768615729186955480984971701066305563982955475135118097550611442417232745379890419539082716214122981352683990520117872573280260148687308721418406408277195069273442381585723956133035422252656045931226466595263380943128386793867415093485980926802909297390381628113905823072531469972912913693711148854645337496137198776031365241934661096474777806322050135077060100129425844868647038688420382000639408954994082703761891161147777773764876798049331057765176272192156713381278964021526107914168166782083272385096072107860669357102722866354624144152082012778218521384979795624700058263250837058266267433592076690860930338304714111579457935630839522535763601853465475100262742100767184177546945524356575205180225753565703755735940878901811830289878815698947412488834151136000489025909064183403230209579949343963734238307671295754786719534336341381346796264219786110625018411453737499002197367943538693966363421956055292826995861247679514583955692278868295710822665402066797322591528775464561814978190189060712192068603319746554081598343083221191493972415481393892847206967867571103463907642482670457537814476355582432352571201322477231330376816612889891443466954972854583388646466875627377833470632608644086250649300071097030852586590747120574873425053901972837016655583601878154057200716722255172220525848643887795980518996861141734965503167620392468939021399423884232248666937321785262911017467555666582070422253106995764505856249957596659135969335630119240210270015367295901034390916356540220883313996417385182681599911944026219860917289312550172913079696215973259609952079879427193299067293090556966715298166249097479844921552264749475210044937836345850992324327642851961985176865466594794756520791494493543981827012121193142678170011936428577296073610405739393535206969800297955865961449645587537881652421275663674494915284662100926234072517238843108846258435278571092013756658949237630398485723015252553710238442468501515942333246033415044108720220660018348753569989801100578985502789450284353377618662576990171992848181562407221460318233732241261541244673645044661815977065373868073419993727019258963255797825229502313480716920679602491088251123735633738037722079425450356094775711200304382280131272950326585131583523297985873869359389358908546792390683293414408700673029171406283483678600334937350925474277271583645701429808293292472155902442392672840178393947657465235676308586638583052874057415918327775244258992954071210010288109896110598110816253089886324997625926747975148175855717105997608594452624054609346957840625921193954474542375582635691941432742207754499123938210145513940413485338913864136920116649409452580237505641376627703020989924406010062268105044582925250448591727538475951470651408638932794141638779015577458257421732515028786453042045446622776594635688297382670610191499481559970814285449869881034041057659968396071802516961096416108519283038061078930854115396183915956666097398119757815797043849608086490727894555389258841969665877619036748984140719652197237900065489516751878926042559745349570543075512478216054008057889071018392433586840464312953128238577709657599164910610903275068798616951414233926448682977224778049423984426135975667837607977508051543843609332865514706683514342832852135137533076027440125358687038629375550985540789149837510517961564862054383244521063805056129507082707419310734987890450437911753705034841297262588280632024382585121528325186451602937809863625734448232860973814407774527993033170526189281659802902172547241888974835237964477350710460206669577097256413158937386385652392361930468580050544694082027919854219424036620246630949714526786694246630869612761106278058946898807655872161592781772361286255260758002497612712251309144357341717974888814216341310222335402534706193545266674723811132761177783619919403981370767976213414637351193182421078090271845566576469438259623617412504282378589235396106085034381412686594649786755739895187047998045904144931521601310698013699745292350689284963222749916622746950634829920832121674583348865490434036944792828289197764778315616550729117133081891564777645181749553989237291848365056142306709034101312570201854971009940744396547149325531066680460357586073459777439114693882350125184797163154857059805461432675472900906342541153698450813051620963796453799942207883246808348612960035046419253167408006260816712411274838643642174048619990351453801960122306965530760328819166282500847143411082022546837403304824324594571099438341381104101647940274461221485019715961562317014354101424028835384678162439574694267358703584271506144911577091596180735265658651842606262634672700121463828113014050303168606971106814136597554477111122427337329495696595254141417435208450706421750356046598683030529386983126451018344844187367456436711162675803755005506654947675650293544395015162189840061389705508970883672002989022048604434349312693140119870936543832127772611544752683682291072851941344702376359285759493926393858115665152384577106690081945135435200542002393773128055290151429264765589778455853702448101767573422538344602082519765139810644995636172435242084249185465455104564331948912593671574801220606280312870997088425336217884805546607906528511991337309254701577360331149542960572242009599352162732459877227541899850339035258593058288209269256135227433158079938430460367657994902433409867105142663835672620790573403690056407631397034428108045111142421978421819772473169756644750231861918501506420483408648881485961753237638093325396866619525737697520585921687174726072460175926457351729676550628102079948478926134027104753825153006833627305743558960693425325189878575832808682571017518406434037063467873351291936000236390063228638646547855677974712801863418256860376752028388306779135872477103865141956721169461276123084727036289851044274841673751278736373672387224270474775655935097174235044847982751640606116197532202708121413044725049440819151484762009206344288752176964764916817654377674175453106840411716969304885089474748698967354620411766549969093572551867057911926499642658293542754606529521606459426455833101694382533896936683885668650658619943804602028783939109827193145547128744750479424244022896694891956645158352158203430887165269386066026048594161075595235874109134354763684013598475870007665481501583840785338799124913845977787255557704756601493762609478992917729204412760599855759089068729313085925227667882907741911794205919632503779967333606527921807828443710224079380424450970382879839371363086472804858548883512499092896076869161809451543562973884734359892047007722570264636757775823765774112566894352163892300727986066103836829680438053603696390940414087443652271736991639148058417610030896983530212942481752325766331368252228234236990540779320786550672722086576925405652695108323980129440101862862685414617812722754007962445070781703630802593005812667021230101587640557041826056168674712959160127766509416160921335658975483328748348269508082089694255828406138899941746053226047975933598629722123811748576962346961065558462921363281710983960641076777890534854683868829670822531216820826588001208628105615962732006155569962003252949266881463500911032135661380312478990603291764070295711026252263046210649427412439286404762235214768480721002435802975944705438441935209298780863114639105442519657784894563976460265839677357989405913727880051759414673334669183073924223930834501090785653435851661967125845426739849751966980728626620733383399490550558001418220455634532817760571851039534685288848751403758609106824787040522635752907813332124377611205962759131747500115647388191185316412212592014666580593343128485936347778620252623857278615136145689818627955511683688388484780158441859441163722522121012028512074875959631713070551488377639023851931382389467863333202724022672685577130413627628893933301016193193620712371247651063613789859241877910810962341987682770371961321863490992408524223049845594716472636148520587455703310091729931877281868235136895458650951531945851753159471411765276546818786667677550838629635092633158325387939936054096930540332142033339965687216577662937192001182365664806436662455240807099459588658460535012597405173902002200710102269076417305027552523481715255755457602992058360967135832147777056602173676850621402304830209478727848716659377788379748703458158754968529715524474395254717435387111961125701049169757196450369089717910332116538066899741366665757671719636767887393452235005380191699033865583650453222749004030411084582960836550501533296189197657008004832177652446852904176000829311650836602260690640495108381286444832195057157263449625298564565607028082007121300761503827143505215918328657528386667382878366961073349991612941306072363144072498213878733176817953669377807882519115512434838697871793283670344635563174688732416534629659574347175838655451031232386789009555901892379987488908656768033200543379447703245305813313967364533021037607140373602408850416499084990186249635094445743720177764261209306153445174749030834291209773424546744056280865877094847225049318801554257546535385638907643903291137641765491054244897958216877205993037773134233138116941664166058864753268176574799899199055590952054343864639121330081692888220654428139552113377874794829627583794060756621531274882482549561507111057240704187800457822941877584586895587345969057069275014813598386438964423708485667729109695040258652052150826589372236092500316803601137732775753671810379462900975680913122495541469246151130804348417184981438922756931302293725291546105825505555532710633997784004128570947244557082132285063160602004788607380376341601606169974986716342611697302367042191872401366487813491318018526772900438920403910195005243020300677046441587844595621493745056060220400837900112023446331042159838753847745385014499951913271232837611707036987564000163592587397564295901210333204029193515728965393243323801787154578266557065015108412905042297135930923414585890233758080591945697144799989058322514581726743834034388428652220136742149572327498765122492732999857046560263470324495178656367270866910438730397761600517028585096893226012867963343248649758884787933069190688447597589065697783908480078052887063027496104471647312699887975385050000107073585874035581374964205667628254366439627069873275867113514070375250810914075000545144755180040048705187405411937684454121796259312256166228985125451627126490134538615538290868494930340216783408832538243799546115764488331427664235741813915062030588994464853479660799833633338704571952768554972760911344746652362508999539803196879878290153219775244234492247136472827946285676153521791755127374432184128087835759455641336572933032741467436801367576363576248014044975093676480582810631685945793047186701968085887611142168871799462683446690298192256566511776829696470574185528099241746783700600902593447034409315022003245804142017714535900028647341416566457636743724219309363913919238529667348355419078533249743647671444802517554326413780878115939728327918112828730956840877721722678327669550367446652106562089389946362604830030723309250315979163321550819718345284829866793662602062164990676621471528730199662625255726352254551469192708800856341980158015044534697682189476055639024792534113532911879590126076357321063093085858199527664537624467135816870516406752558090611789828617971341196236654561927047392849969463368675920575680299351054230316003960649592587730541115988613107252603934217756470023064089389717702179678910818871248650763212008859717093629247995892309534399877857082901818012630251041663749501531023717262528047486415180688907610152423745517831043938993953235250849455606493394587771095518913538357221441980277163191661774728553376263069867286421813578384594864907050674411012712608420013503263435953135427857912673211517063125384195580589758782898326373265176358084487929825913661190567486249791754998074112706946658979988310074453491502171801934766087413140031149866036307092706460602303163754400542106336650032184362752748663283066930512048095127921344518380161556876954444395341269727585731066286614362491771810478800253314897041710694120797809218159250035358352203681091320932802216731036541415339155890902515816821817870118634322692780439860190254652148579087300493554655281072369149038485799069167308330029518283145379869450657665520658433385707376172545724243022942858330434815223839021269876273361022349143450990313925618330925951049125414713439544830491103481355361426785998852670779447838529066485577712805621627830139517115130251879014758448959253835989344543124730404216268501041637637720352189997195693156040440515126173703782421733623218261616279843012544627346984783380809625259579719802951662830329994852687752221735753604996461606620331884572768419846269678960747187231174162256140390273236560554984766024534571499988607958418841057386994338436843038298114273645259830790220517872252386552504194697685823117497219259691375638383199294697541430182842100886944066629132722290995570087659583244643568376401371501407889718145708988044358521716756344778745578745746641186734555474115121722922121785913352573872205126318952637747643308395531340544399796311913340433777403641306504900867153301339315693789647381926777100340053311702165689337378096867730456678566656789030324629384973188091282292078852533150723559984237268721138324596457533290022804950888189578849777906061389120995870561965441080332933133359724912366222167251067161411111367314451715953709488774882704501572828162333840841294386822779484263737240429572573952538100497655314863010332321873652458191188494667045173091471378799577892374552497901775774781315925354837008168527154013058983045930609128595025026705417308769734998299372725755894105194537137215707223921509656791633041652453593813248464019451795108402186186747880347290431959021201957556763349712522643190692075159292463580462954408161382329060847681447018483856820948415141863022739747936724083741068107687614308846507621536814109773062922122646298367239111783385946084745319592590604238443859281032628402040272564391257984432455229364165043421621376959626120530897404770802164702372341996889446796907677358775678266226403962521440053077886540556611062054507196495979716963969341526554070215031774032968070405179554526717490392036695923808057265671300572111331587168721233528607713458866184250024507328999663211135304013645022725497050976835878570528914311668699516542733033133179239563463595441894711237761397079652222930410526845622866021406995440834798575376875612469196919349191570005681488604146378105460360213097545870002160635556475101038704838103388720081532249699147998555249178307665454923042341319176514007468389023617308929055051376448244446934600877802361632902895418647815770327231663882158667091113542731515305088720043132467712488597150695312954055875781591661360022487791898923394703725966154197724946597070689641562175611164965626550250931290503671542292935494805241598376922895464252689993636283630405343613235942576217425524188653017299040354782739969954178689545788704263254825559921298341002187984673478401360613948291463517679744817901185982809464383704027925100710248287372412026551857262742578255031257415888444823825391755165065463456767682074259716310801770254531262917485544737409779527438897992375583746330394509747944645560519238766316740820970584196172244263707448835595576831616271958793916571964497131420156644293728365366608104241099798256010876862354614231467679970811031767854603773617542882439458339134561612695431880853567754686711278179758705993004179010070316932502390638204108453126054272216352355203985341784959390416135747408413795277803501714811154989822330415429434832182561187031977765594360301923236175187118906956295569507213108001019007477428140527447347984651348730104274204359856388875372501282718424380353732313993767784215728628571208107540798295854787840148526431121589600030498270333099281096684879276580127622786005032143363132487753531179772097978605936931767687892093751218949858832762784902055911827287152835215295724633024074941262269537146911657433875301762426257465812340842921240645746665550678685536898579743766192520450201912762003611058313356531153734998102562431820257757302960350500485736153183160796401945781205561343858429424337255115455859008821937001388380170652542111420259180788899368060679015979679390372123471995379930724181872032073698130545428049130326922720699387343764244919033114022707023574841023694172022069990357922615374378555168465453852746419401512706697362281693180741926754672813816433779290885094486791913959652525421238286308122085203220709070970314249786390122775200823960411063893016172457689322179018649125125692664615685677709921925269079202412815106164488316736528500359603519636730016281287570661951526622902703289430672090000984203473686051480653870370700862698598699140428905068152297577992221819343357716881408711048481048776074562022823809550406871805909251973814795846297320280172948105795304802955414233182221361979129428899554800917419585594817299587614835943712873071260947748365611693657813240193501516179237631059657424179548927547551721386603341286419602536448514792478069299100869006513303141470688703691298241926357960080470454617360394864575690727002606154419083248390002479079605271101563803502605373828416185135643367146450670302460661128626649326271431825984526806216131307268028233845454318747925491995559066921292180215356231822119399438335925989522962476500350506244405923517457318017528475307737399898440088532627292325881724873783384363377719592048822440203411189442191690334417329644685465505975708996735035743942894346108925801225557970773650050047418891163537611213915872621958414516989849448866175616229450104668072723694719369375735099814798534749086271911832627707877255105932136274373872281318671127991078208486795613829016234245675229679226378686156437034917038940720413214881936249387481581939975953412607294212630996972397156072652904848588583099010185514845235771168246129194777198802905225223075919049647541687616696043899953490765796414621543001049174070266725339586712122131122453874598270969134171801916704700369798367336499522748637817717719320975815948358192915108948716862635809706146192239478916402364703908442248750867852259085175726096606879651197212397759993387780772314538944257874487026304702845622732225338800034857404533408497794416345119513898787320573416065075796963317267497989006253509896352478845397805429413141226375022335254450407866119754153228337487416384234940866605775637964405378030139944550503458098358159332967817136549575624763585297787142912915691017753409226739025946217272041320089168950484026049351275564825181555942165703050213537782365616456977602442473311129330943172709371388970114248357614940303603398384065033271646168930715211663673204739275362953458825812418250914059104442663082485502718325688135910435693377256567555937518296557193112932895507108162641631097652027282333006170242318322628010823228704469131444540652002524364753123928977932434000580540624430850336278566760031804094070625459538941628188597265633424137956452668882599952125833796245822607606693918125116574892619068981436640915897980896229700419725447406591871828910580082078568859417565794353589907263417856909429011249834999806847038957018726038493540125474223641086050722818041029078095838736006849881268234919001949082060739167422776269426742550593838337207114552433160280218710899885734666311709788405681603286887863525925661518950513249665336161096125357503521802933860257895056664712436876449265771044791804415735002106207686750008289415357192299028017809849428074805153256390554742790603560304643902306307649179117999947173976231121950555391746048282768260504698721598542915678975803536938484234700125371147342493496050090253482102909482598919455634182578655449979238491994725954782221563414004577631525951195970874644299949390588829287760178168551654512688275310798293924273347449128636785455320801209048856868194346885839407789582502939165800647040319561593917810710204507373817154561515937215487265751882177016864533381351499038600149189597795550015021874834105776333682744269988212842954754464380242846509494398199409947620922746934565931676758309931447897792911282201706920221581028577536852754527212715147914843338947103695384772071776055134031224559976860502151101199572526287884133197890706645927912241263386483045448183707546814406345552765846391258355470667925896705880033481591004611633496307553072079051376821880825526850333984181379022032753486203042614251675416801443832869678591639225314413430409132451288895267127164209872697620074064468406841369311763453411098315252729525597478426064508003392817292993890115669393053239953922011705400508399350240462986470733613259282428612436320689183436296715252325131865548919865979834038416189162363929346947170423359354084470615448563827879483213446141973073879668704871161468281046979343240348800636065252425993974812248450895700686263799216468675659048220535561251906892829202320968342989727016237604067884152713742897880221320615927573892684517694494696892734035350518921459631923890726756525034694940978420010289061206937855201436869481122438654665975131106906312887967685775304933200310627048403544391934049867527248942037682916247372194636469112113669509665865849499443821615627704081963462669656854275676366969672481016265005996862716345671800317417170350171000191843568441895253788372445684053088733399365192572252753976223021694910736221776286101190258725871211080541145942052405164514553420139909487503277935184247803126029187975523184469206732268192518082966610121032614498980328264116755427114892088091090668655944637998160181621029703461527896860645436639489328632711734350254413433652501752210608209596532824577054205904276561556115670633260518685074756647370021383001742571964022216509000629211454554414374029735856313284627237687692661903514800350664064478574082074532552045446780694518836508330636959778474030371461131536211553427438782133712374645887397047613702773952927495976238247093318953943798436324071541755559924496352599987385248846484763219219995517160940737210210899799587864138022406184457800731813871306374346616753695955415669382533918081565300624151783691894119452519784657629568361503670691386749492190966103511465702971685687334642504191353856475127422634255685158853443095563929943672243263917205476548485753371884618734031630483131276132993547367394373618060569663598404378783022389846706061395232035602030326093088941410886236560465965714818513607420764173941778285649817003295261311909206192468197424656536163409678829919644928145595673418312762823624224597293719644558320188183287209004974863270081529863187666993823176406229609266089401546075720902667955107484299261034823310304781999599904964606415509223550510707538938744186554364343264276082999858470123956669878847178877172195712499594134891870821870393541981438852825735740184393436916822740623971776752084151279490995587092569069090367333313834036628052586540214035895178977614161927900346797460951826095855140878827019167668692498171523634847251186900504441991950001204714290789012027660254551116174195694288295375415074210693980788392947676470489855383725906635798819956119266327470687970884320855173065805156068994855918135424272710521030197171026490029536762284375201092088282886830991526994092218231036895156244456033229870667694675732185890072012686496171645003110928145975842269816441578875377548393742154171723413236181556431490138325906631144564514623915859135313423970252071040917344745932919319986400574870334184134063103953006051496235811266680289889824164548659583226300319804501871118451864853248825863725298372429633478384506030583234517155009698008441653210738784669204271859563669484451207357025466449286149839670542282121233420818892118101003017923083293883868002446803501755589277139584140144205646104595390100783997632055073732643806239863777436190108476591660427640920648615535282429875354415950042672583928737407426143686011645137436563693458229773294252422059168945826066821988553909116250120445458760983137066650505808791928731130665292282425452189972895696014621440875381169659003323858642460591700486304204988456171906100878005729068233324610040506289978601473926980498302648987025460229800104228990103770258546988485343560632807056856096046871987466883622276451341812504105586959093280996410505740490208344908807766663237487290574886313127173042219264616400846613351300287884175877042775345600880994793659013123894802149034441317965081918395313469230801476647537940267699133113909448764633844208394327180511110166815173012390629556424103137941511293894274266225189766284550911566904220124258859379910896892642969137450200386479967304847095101567836121882518791648098256958667860067501627303219046872233432478602625835825428132931976134690693488603985014253058545985309576199394510538000545325006847625274037346288015598566173156110359863241588922639500088964841900283687596812550911093328875031070485694703287368985203138266432681543341987605488609560093418803613363543610357291507445549049759478440512990124097486253563800245463491331746060346966312763731018337177101628769624200152474273658216996738572148800471646187486852731921405357631485155182297620107816968303568407282142368357444923217272981375674982330821393312085977873859553787197269814709742637640622641213694710097081409709530999033648604070826685653076753084257114058264278743548024869336274735534572012503618433949703090871730535370499897523104525774764821692028469075506177183708645660965730819598238049943834140499512817428857225072512396061740497221025211089528706185284304202999928868941534818732304675592453865717900395952014038663576640924829626013930866687257719030973442167463331615101063871772418244603069395963813099654671593556940220212287724261255031790441856501617122632993276785992225995347181771037352587056645258492126452655888377632656499038731641598539372381612032880415339656145607632615216882062838566691671162974977255644240061662280318342867344655525638446920310704779914758277356516240851409618025367597803650451089855850622087235490355466876158882216057222996303091795871947965881360556855971475490912224315170526615839226643236752665440948097920174798097124423029341616390991270591407376878481372381093216572890341135513004562001906113718301409797438186578209028912131391793137378203557634459829083232261205232222506400003815772171441603135676640113110928123869072079114017357448624827029669214574386394933986842972698360658057313075288227725648254072482515438901070135500933075915318164379804574669618423746240321177596101101373981102520168398398057388396551066882484317767189314006353559268299733373704487840894581554440367459013063531804097132394040531687897844518454726007453048536546994797718913477477885525847204141554842387746662905498917735346443491828011899427433016099667637748941542538093649013775674669208704965442438433752103962055974218638719365692182893120054063935766442595957435312852569065486451786684965993285706179713163479833996284694765826459286939559442129835790106952733617434500359424730706711383570610897521900275624063803993795812886070023199111002621221327888681072751205880584717613095294026216365863650176948971275421586040673607686685316744018535715581899466496361911785362920429283727985990923255180653847073756956110930754347636340944573568653264044951724218279338736051343653008462066131728369356703219871116488717681357199756764910595249024386555059141503453578249625925362656273594043021203955695176796872553329371218874608545152099887491939353474757857605540206288575637022545855392576793091647594800986625755154165750644906265379562097979825035619922859005320082132557956016606300511319133753207366807995629337419960465302531304067254704867944592058401937048891828950817798638367453225008087867414988071171888702913760622794023682818795492946516607395181757712574821280270711664450580489051373402645909125286033835977820694748226775406062448423308651568743675714149907724513238250868757765193220327829148156425309005916843320440927286651085685008102486440031724171139280965273940631501673016375913080253167567712925827568538808700873284617490932286082358256327961725920627437393874094451866467744781550511124481306479680679692699048414071648493177480065780163732312647813609553639605906084663903297847103821002838008376191141634902549109561218189700769192875457424028767578811175936574230798448810890753931786740718970472872767316393889004868046058987714662815831276093673878832628140850942627225376320993617475605108544582845598096163528713770412491539411400261626329283803851096900506260001451160227108439809214113366950516618666184876993030675055404169093509647383451784491464082050993334792667483946060098853790229845074826599631309339077122749951734280660252072329158127942389433361631557146119996157613969489590336861304555984494905723176127663528194790270359420285850462534717535212376357439785117036560784132197602744762077826734855248833765446887679861029916592267792201620761538425411860488156357245350053571409505982535882992163697117291730237224727325194631777076862890837930251237587821488121502841053827171522225518514176099083183218603359851488132728706648515374139084146878501380893360705261487589294856459412639984936988765373663327681783229233744995950285021323544662024150827227752537896446175853314076908253232267344346668446737656675477759652598602579827635772141382494768196437041420944989516599517257030106012178511933591046866955797442225155443498703037516710518400150845437873681711654464499886256082025724525098957098453434074260923343828610446947807001976738116131901863173182271577382365046941408231060621175445639136426782219131731241699890601408239943997871016352986918303845425191186749127313719435152414891075364798256703532500491568911137926033361217341907270361512577991345417063861089653461608907213552002899201503056684831412400502780591630756788948901265179008519278924281495336874624642172738500312375998940006937045140604875931179388303299196130871237063254142908947841130400077724437433786829487778806148678040554393686548267565144405570545091810724666941611530027297910257345572798774555627374874082215169557211615553498426150201811860661798044676223359775105553367910087423936565706925821789091849340582274772719837936681606655141783636751004412135081452043340987736428688623824304387342196201222101500838491770565401787275169842167026573336892658418188454839571794983237515888867119474318838675927875177605502591048669012567960828348917066121843879913641479646738045417905656480942538245036698179567365385809802037720934286729446539213099397697928831001470764656881435483984922915048025618680257456197037467807661386804855195334654385901892289601539139720899515838715911283382166731332331575812341741165437017270968450762399440562042508501447263728435743670390896502771414176215141532899477108391800652811160182237451474762457406555056504088758110685412134276899226408518904524273144063550964335131997269545920743843611746321829709819009115326664668695184081163453090367366170770752072897726932494534542541422850632221003122779026933135993396691875405460644329746822529360444906755644310992570164079917106637316504229884232782383101669830783261704663811707635305552072618595933195713670837136714234601332528838716179640010970250664854109610815677104535590559703907821668523630676943691406656935355144657608462551981198250857963150243609227571955431252369077691667928377255356168507604890298731514465842326229343537659077632454087123538160424152937920153380391199619437237224750867772739356070318060626261935832918854456386274469206498334260260986603280354974799506956032368104217703360659967909326908011795441858013404658847094932357416136366525926635711526466081203500050470121307147650066356357525616474757039774676401225316210936192233882713930004831470193093941125816187197667364398113588930830438822615129254105917049668026447275767199280297713754516350133165202879674283978772152277854822339926432603442602583993114588988423351634995026630552768260444477756667466817441385661550219494226812055634733213316328331167914282761732720026825716365217010689854918101352807880385821639165472599101999183255937695227758246900431179146980530290626696436648567906910423185756963439831613207933370032020501219136951373172759721682963955556382491668774623724911774830191157155432207356585161998783594036149004539234706501849678301770571919655670954678541988252576739898577322350665679991797764305395933335976613626312450838773265034940037289782576598247358855135657246232643707952737206866612283441543000727841694627852910570015399496655472936325962254855905400252456755124656684329809144949581995314059620812217354456176144807448896665710469122291676044152115936275552617748589985934702911378818899354394506366359922831137828411888820085910216314384651797431283425416295896465189314496166882197494881412556318221217641232961267528347980601621290278211061738123849294867637907810640779252374888920207054916623534029088800623142854158068915554359865339603208755296712524397462648252647573578864630538540207317661076771032870982619210773634213507547865048009129629743172629261037184445497870924467876229461621563365844963116546266214461129363124579398537555665938727971016242755653479495280185286218868704447943267860221159801898777779837874254588046585988300839454481027180786656881839262134448746343534633537849451958904302862726403044552801752945484922272434088991099731187682745383666875828658099560118298271010855501238338187633031825520310724066711495671653649482470289207163566212220421702946039729829224010251331161374468461382802359127733789767074512186407948017490167061813369474996770937308411965503754887766542788385772910664430386633598646496567595707621510173195998136766631214479223796585056863418778877161702968426108242037270926814731648074219062501374165494498941222272818689545964315745438993309698916109770165190758921780284133469579314529665071186361017717769124122549170403401106308252067525087552978330857831056386540506964808835681701585936585660757402353027035500130685930270524189419128127171691100151509438781878851259163797357576250856606171737725061379544871264231409589437033732234031463318226494456348430891758004401605506909907383207499264104115811808664232472756087944871946799297189172261614634775518999037187228309333492329187587923186250201154706262293407448429863094195400649750233116971231072254318383969458113270985771757071786505365530712954855799260567148753131956359848896163293918523201639403004021303378890081216422174142484399049416931508800210236969864870485222427993172672109355600526136910924360156918937590540949749862766734064227404968372863655747913068144204450358756640905791629470448964547490362260172479615386602332428074954627075985857455553064934677577174930739584668869254849882351080016840337013889684931443973044775859204410491986114990507986151891688639293190151894653241688432521828738573215357765079185810573926815551544768435736381868387189114115726355271628271046789617569320980016704350314523445566599056062449694455256032180062651423395167284120495602879613892921693445559590799884378686597030458615708197797318505476255228554431428224416023853511802015021770841335280836371373155099073638919298164649340133590536200794942132359846665243519256519076971773671910765000995466337558341297337281160968675104589118106830747078095372727756986382486811123962148570834575833958973822988869093958040769730515581655886926709899500723998646396958782541765980463379253637958640180004459109411319207259240779590759262088196486373784919348619846055122801144366284608557490622315561961009487666681726716926957604214805214615559541405694082967994311870797529672120059967829276399151223851964727340690304085676936837955880706890237598697029877458740874119178591104262214200432623276886484996914112467872210776829426741517259328302306155048964816342460661452719645988217780090248335321485604018262254967010664624851367206599662340559396227143118778968369140368675221365823176953323820761534511307413942757738791897426390573695112384535583032337424307296554918729252624448833597657241565275253508598931214388027465145303198736474899466618677990418223437268422188209007297911851188525023733052661859124467199254015764455738782674526891982026967373866190901210847221190030296020659186564980722249384277722106387852418536006867764001396235759173838133902540746313609024022898979724336724005284375276339170489588730557626062872745726930324611431365173500977292920941193940464527414030279494075380821364072771958678251293795099854197904282566478712200253958257742365343823761184725938593558486477284231817062707439217696853669497944583592801846907569546315095774081653351755853390648873118191256234722653841378235698895223518461030194222548385587315991182845404178041255186651170442986416421691066556040027214229537221662302190233919764025815232531046365075731678997083718510566813017177514895199412942812954120886790996900601278057781752509535624315417175740218641229443724202087511752810632793813309096139126788434219025259916005974001259501044405316740419469065216232888945117953594088953872427304245035518395334127759849999327057535334739428985421295762641048735662234477286273614877268455472838245971002645561454808841169653178611475882048723187089285520646897660644081538577158729374974263479137523317094580568927691015511971500493440018804714226625387458992742011280645764826283844473519368152341878014618577753562727425353844770574806847155868910018076954917165076809672333131189508223931496040845170990300850590262156956323230579464504360325196651444334171886954579251324885483710618107243580042267083737078297931545154151617127990615956741757428898525839973358762048565536431885772160694723584731781757821169526983624231269498424534840133655353796516452117754729084205778403125976953391087240528031270319638710828715811146908419109297103438461142053321639126818980062206026388389013640710195534283652323325662597589532830885574698432249343353520192484110287853833264655277032506780587131709632149610172523313065595440976307089467676431908399405013090526857063280743497860859306518718607244404169178264352386718340143119299222657594583653073117680354659365098003638688279025859399976991081424415144642665731662593661979033978557776832244217501352082932160705318882307852163219702860218868200567397569950522435120236558662319627547146838100993361288824109608522921412522953636560101393424424354297999649099456524065531405862761052902821474622482009243675774341190895854804763996491233053900021101994847946489771333235636722288735889154748762657729667693869261099396950546936397509585656994056191686554705377614367974589197984135433654250848346292604439463046189306315260919061363985891242703587876577703427819981894721775918046180414934560182733231787141829628396767250974232933390000079242102194894568113600510402002267361695410353041870738548582071172328426523893357707721201297710240104851047950173095926876100113878427648895517385296783458781268909566042900046198151556496789425011836832707208348383281718886624987985910548124378606122972653391572537539277461490804717324582294529029501564142873954772161505478740007430157530016611735556084751598207831308568621588894783058645434409312327311433427193355871567337249447808432781301331978345823059494364262030007159331276537909417120284614719541905639694465706888783504576055894606778693754266310613107215026649391888673027529252446300733231434803414626866755585653867762552785787446688078559226912435958165616383070326366545040788483571428957475393094800875783986927689827208793175763956450865902276553475916103284881936170170559945966477699251585248874440955991899508819428082188863819045622331569056363555682295896667242725357163075993088019671151589161804646129986311270670300338747054324160946534732748976169194599951167136041967646874930920443035666098487385003188924336337497206356737152220919492249231301153438871041518742698263169591627162265705794130833386180278749546736094787609431439774372514720157730988166808295313369253002983177299619168035511114588038577418163311761552205772102582380152872982636466718036856957106135043884811652434825920361317084346857559287886113054837673639018594265881103728257728573515236629432269309818869370952508265311382688923040763722159045337379255630036617171234559262164739512340914483072634436014009604916327508900853613942443279262105689805521420520326200936367497089968753166561742039821980615605975311671390284260508672776352332646681272443001329168916610538355445200826335281115583808710967273442065881137865911997298552889451875988705415742857742605971507427975311267349155147735402530817398123364875479213467928523168535971123452002096556372002261231289439275545313377686999864914766935044391300941114129377858645943769275988730866439897891106348127017915861842296332280639062652067142726469386243589110076977979120916110821540949855051388940315835901681454831736097959113513133948621166734129166059907348696364048143460022883635776159830304946137760499038589758491904741972652015064063206231493281682621546461194318027150125654799456012426718012620065192608949423627269515708055612099172780081441987618330469555054067351528338749205600232017792998835296504857379002052313610535422001865926263682883472465252201031594221787086944012605442939234628803378850369845329125974665760760342860197693220752379734848338145997939529601127076657433024551810787915005193534791448685732038119740591507550879005029621028656050183475269376724861796121112529935072756990102747817045508299192880585933016512631347972169097281560831626079712974656395074232423221229638541225321772469437190324636810977549894449810114783493165413260673496063324718339957679502451682426166018755505342281356784452780889892149135776421846028955992463990865436109810716955428449717743634836534717437593137046759187112311269416826750214042583861863670391086936750575050693482915656049559587384484387516611807838644464119738115469309654496907510358615421875072046042472351012473918503045874509419160392670651350676708195834124685377901011699710417069444448958234108218823367622596292359566254769265937986307490544718614020062939278008675977294648055264657977348588226811110840333343107147102032071413345283012843661611393895444736671424062779784098799162792579329072101583691336478884361863229514540009443921685115833012153741586393167539114677374563660597517467885464001813722424910013265163922008255184668864248812002204213339806383718213019148251613924634938542900710382941047303126064663937242743002491192293017340141768270424794608661761330265512703102478264744594643886042491407512135766392607170489536494534689147669644125383671071044952786411958559181780087641094577356212490017713221811682680421311957083614415655735851871987799338933538043830389667027840024195301137934343870972882863107102373589005318570737076810556324052661048058992679599533256581519564737271927071868968278275563360464929379900770957237883494553563286221809432808060857527265290513732653887412804118027934113228991486821098746495780767896863767835117313479402101268713763591940514417969688274165189556874031809111631066142766137169795732613709816310124314685453371521818341183594451524077582969965143940948198933900315946578689167514827378094078097637776494265525001515891697735455445867129949423146168415829724584678606967606863132073262677709976710903246374114707443526954300188987512623642712235281484024423589273525770479707250790519344860954153858422531446564171638511023056650202571168357543795726473861750197477012309176097717779470845047781750316623009216356636084108201344993042483152343230096373629371300984634890527851055999389159383496339228097073292684414022102553965190767905139421165648666347925629141647868369991751848705183367871638812167638921005748883263578153208211220099209287109810818291999503362785412422371556115698337274308532424006443892804355324884485357505949655007317490652327215609526476847521134759078046632081942213331507855497637196725068361192145606340697701224729397663344086258798055120785726407044161362258685563840754716582511503725228484180498836409296361362444346491280402645619969740804575256260054451710370438747183535129535106093059665942479285186807295575751230415055957979863922841161710410740401322799591097215760040924133641077772826747870060323787531771759336216575849618623823630762222042878034678599828878593603207338802008166966128920130332713130582722524501765668410183267915186105106645753583532252702259275673603061940474752321670744469041630300814940504384308831270813147254541528017737155585642120928849551035294138650563281514751337196110628677647183454561638146555568915204221991627780458749835282891422946789570491216041023960640938425301000945698124141887025149063864312255294604432404922184875046268410230737502712398892666125830754988440210529696672533565327912275070773686564311735852379155451786907692460941604036148956931813677236599914788399885643056203054017362438653053655068238154410433346315344081524894456998529236754841371236329447521365586509376339654925092693508710962655031594369760848742760956137014032763156171857835800504416989431877663490167007163090236457797005690969296710189373550767162047999951062096935521908858014462399427813487396350387451199595066538864614417557857471486487226704646860255874714063291162900192345249817023220381522017775124630409578580784531242907393862882821590068876935822622843095577448287715900421548060960570459107607881220012730790353418555561339847505578992672635410531604758688031680074575049910737314696933669040926479285277937700852448624301889639866367345061334374168208290018513168615204244275767654493801694252414503881452947839331398005289848588231293772778906963105200073870336188149012385921671864486866862706387529300624449105256882654795301060265839912330594016371605899425192079918398068876852500051025373370434143547198382078597543023976706509374875645644567230546218336771988992706172342835344765947612070999871652459964294198479182248560749658116801240005880413708292372520172147640576773158290280724751954275213609242849138676852533818472891506476690565937838287807142839763291402996792103864448491673218954382918342124987615440842257228224657609765141228475304583774564704468020668874812916335354395661123019054076791190281845537835466963062878057850360550769643665338682994617950968572429038677615601454419876823993536307746473694868810401141093330260248653493488377878516335810131846591043929214080337359540418884669252669063840084143990676368343593481007370344505550169984415743687569013303904428068362802983736649018276845747589309313070391302128409066936338703289980799013692697727275953526009977300966247076522933243076362779850798821853659079777711793534013441952334368275557240957094737827553081235058373768508646254131689659577054081997478882514161466534174138303923904360972686361032101128367757031848836784836783921269680155952062943816412129776805898237883800819799840449675684420376806643706459685875595926994810654152960493421849405377908980669967520937625329672834320629901514001228115423264134361034423885275921054251121487688744779948903728635416829947247816562953309795092470760722937551567134310117001531589462729696355118846786977823034184338836356370651742600529938676566900438724140737766115809992019815091067862808517053280450728567679769644093830557275608766747179262567911546547895933102227811696866869223447846630546961122367336923677633002541044922982010063283145825440176222273224381446918246158227022363941269957704793067414904377785063143016756452954462869753287567769698374357862696945571040077411697522990785992715162447552422853454392864690637559935280615836502717318000054081349862087610863817754423235637979649806772651437018219622300425571724413734912835878112455698736508800424596086816212837340672743027825645973933159365912684503208467360405122494121846804048330798346237770739064219239333083512795805889491695200362215197547700539985203520694726782419673849752888182655382118787517662776741330480265501332977794097979032975437887702143175021554312916064954008148950730344626925665009500310073650790169372191830810865206826949600423903641262996829889987422494696064231448523225569231883133287525332768228645843803089075931858628684983460938756158280830166618042691931598079893984327327445979169497190584157210844561671476275704871309163889351026858727998286131901223957465309411581159530932686506839274823407797718296009227987952525052750279515006537293896149899331745586120937590162615889646275272882217304083304364588026142196840918399118395302154141709920638655360429877354382360100859984613747498415441744346783214303363872966857387660855021090463524166210395762518092975841837148229331997919923357926709016926057373837655857224167768012439669100628007571400176473811100361066215376223592353459358746097687493287849588780113848698498000576897816617396461885409091047253468373084168065514221711906953404179310508261795730722537597707728068327405413584845483557482330177260029088136074592586456201732264715677280465380417802625582257770347992283604649864794579620261377783257816370380296432452018736975513400320307610927325409534956516721562441342839246196022320715486860759497524937507058140268076434393019124395663558844644415533900137824913862030437926584976926147197052975771496868168291671242857112253588761725055316440284571807136096472573022800021647516587440872008682786075295113614137513673746195985737901964276245151784676096318538104847857211853067096052692944075522900070135705157162470791038653842053849108187629083473400317210595009038877000612611405933751211246864071939663007354289148159332077822990279326995430782809955704232819569300864178433756496537586458535827168590615583532295321931784851626984392734167303169516872853072165878866033579938696461083093769704708932693206951670935632255500658722196076704090611084602265459266541680923557148209323203051065307620162318209447543717181694926797423157370628993726366185347971327770141989458057128664885286239917842778055361888067220786188795664029653910601055906024385650295681913537115737612682461708075985193188567153419514166588637408383166532265659046642497390536485677850395426375322667183890321071698977309538605664817285507529035784411687284937577464448205140780934958210698904334667288751720152701826392001068229131284219261312208634430667566429156274904434961945749836867436189817188793509710980309676433749333364275981859810534878542187363070118951916099672165452406098791450725269241047594225187768273003257235495057415965494105086392111375484587310058043566829674297461655600480414224043054031859559184300071067087221357964791315154725230306105982408414032594374891068900323805782596485407522569536336467994332599010031153123848507169871348383596648971061941864568066295127174970721432884183678216372196455934985471306128584662787324887235782551246163753870021504075916800977816271979024224810237803836943974706345368960806018928498908692451762244939259615657594226644141385473053979064340225773801508335633788134067409425960857320865553998077983259974799773929311955048449278061477205367034926637979351931600806240154419705082551533773860490564274677658334696063198889556238643183748630654376729518067857028833975711759366670512581011833984143448951389301848634478136145265436116193413574097194836494753370979349230931020541871620610319473241168716268707566966182339113745189955680620521055593661921937940962310057849238172595128083528424165470367382670895539629953554456394662107357772882074531822488579707460318360578467897047882684926953034409065122549680963061974464608203306604342260695104601692667121534552133325270058379974564434814602745626253799722906705563795959302420694198728095038743587726431955739494382129775172903251322828605918484477064413237900855646620525819256856103433776852422753508848798431013318888863903811812803034501357358036300856090842657869157439610925124753841453173630962276838888517164416074912202206516127745415286695990623925387424051400849999916039764498104321101924183536851417817287915963097784250960578138773630608633470488528061820427767457003111400177745445798251367811645757726080072096742456804967758478357745114245126255220653392238102427788325835643804396044447574341946579450722630374089025798131298805950958234629608982298033595418802712462150844007450339368399543927658553071321060210618615819555469090408465861090517426984588375184418078286319730610876796709945825750322588314365471963631739420964089452496595968773206866819769592624303239419283675453050767058726627627107842831780043207140276427978440071814081935403916165839660679064533651990610933147649122810760858661859456961760361731997022423549909524632537323484288262326559423116255526327750246640576615448747649101826477525320430106455244503781612445505601791228388412935059607020883962489525650737175487576889642504475127426994569498019955319892972653578236896059297982134389867176274458329548547688448335362949986408287188073021485726559548692486611797626364543807804797629299928055149629306237450361490821930583646848511216640011787086223406585927617171536069122992190295549310023091077971369799538290798099286229326382155199898303877317764209938329139253323558528175364002932782553162061134856504708801014044983007833094470584949082416836311107918833916114922605217505385130057729087055231103768095904282812959731728712560169705708093427404942401854392993444218932448956232692539086449021242419590805231916220605196796995569098449949403454267575606912396530232684665499322018851120065174602229971751461154650518710693818219914506503569469507010111756142985985111924339871680310202392069745359352211229553330201032379424078046778613582248132113498597368074439738532101249102491073438965550753404008263810573050741632552503432898755401371642752465079920954441331583160019601938336802120061726156449177132039396716405994255604682348002114468910935274175462240596596399205442155996479066115859936144891549739522019040969191502696336789735764117629708328355846849535687546210996417045952409461734508849562110737064426030954458305780207742554802854475514941713765875352306337010441075320170919231834513637457572630886721290447087738728526267337432759734913471429670217829583044267119170697695706935125292737867134928040027115052973108355964338313021729410782451257857484309061574327260869766884553614338505950151965075638659751068928579193229545743198426294090847089609735570202507780574899377105015039615883906600860601257574696054627348249311201224881419889980483593798411451405485817180621585198003668348656396360213746779603547644337035220417208435845094109325824658895514826557654729190838688769794986812464364340704007442446787028012210565239401273820004015453691961998643044628446549123239301919566245110250285620966365851100110039918222458870736759902560304947342071368225406872668380713518795781036528249851241530691400741240292826007790850673336489210591127682580972792764170842354071723858558087152734426418971397516220938990094347130906809963095500266634051263539774695777786925649161045624189783478850203811302858686282546612397167059350333159782026709171214276498094759642349798240455418165783284668111530577656447153962219878407924989880828506942518805456241699467091487907455585020972292421990443655640659476708514224884020508946394486151543789515045846148426324810966201449416226174548214537051653130191103478159178919576639471922959714471248791314591488278590843595325431200499140735112718483378114989400515535662600043824115790104172863330748033731447746419830785716582949553565780072136580730887536817108897149447579027991845640715480281086007025873937536876799791678422606819028011141454158814407645811110460250586689702605831759512945432832329358048909070738525970875131676918593362702223029881508389646227172861251980375769579572509390671845003297041753440429297140752100074615120168462035296799557932748277377336841717729600992086923787229075605468391059509660112661443852191935471061146550317908479633425942693066238627217967477224820564138365176215576730729094382507736931491491061969365326927669439646116399820006131664309871370804649070420721194364444388842623356060100311022342226906647960483592423674769806347891752547500650314273966040540203912698837744160646145636231884876120550834689177570033497756588733274114682040891600030886360762470858338744181484482832059830641250459563691976577340806003052986794395317042998519394519855769614663859564593856128873681607187075286613298025305103980169062982113421930455909903999215057434774079632050532883347156840295305930770431522938614054928769463686513901270523005132006998911187383519107959308724009062915127354353195465190721308297668499420698276150466739865316801716734029152596497439513358958008906696476823399148829866991743455761972470806431800544337422912610373008941692500892415914655734102083293447210062608755619771996770920830744048566161777143578428021291038419394342440406382341824991060731414962061503228357069337673678030965401306191931687967752387306484339718830395191108477500136027658928883770172076500238645122752128519407454824785042473893378449028217018335889690683664854013231412308897134805688665574357060067068367090851497824366584931294365924720110913433590919810567294970408109919817507756692526105508394959925804743202211992786852844872248875048285782337385935356038136438560044613486460379288827471335708208060721748147414175586996633819450756153261669333339554314193193727747692551330044856381268680840469665858348645949839190992034933727205524184321748762736861664855935776516072768186278787919550951458969749336176248019484406012194240460198927451105652905070233465542759523690512879358023451445233985179972854052527720758353197893980808380038395322604485819472446254116561422340251171561569790652486532765004055458965428479360339160173404176516594540058336290117049499899637615420548032183848803564954501073753240484181831861587586654547935906618390670937493824215499552213587995130354012091152976633325086603850629743692696304938098361926366073770301916567577011906093625221149734423710239660192828297154103678504757186451681672591155343314752983790687021945828060375535804595444950851849800222478013284023084588443204455569857097777785710510892284551459706409418201197331365564906374262246767813693405337804814712776964994211365436591196639632424920070904649942071814873715146296943371433190856093833722508666349932035947363956940233834853283192350233754706513694726497876774521268863975731287576419747021998423742306159371672414376855763185217264898912543427085230994426633517060077627713597245260537549230589345052737765341236725473276485920921762883142905182083448283399079714980611996161273873001932386272053715642097740473968827338018012389247304930380703418856630031898730142304767238912993808271909718869996358735455363552759486964812618800869776362726378577442488876089599413199394099390564514376730287475097668221507804956491785517151216310538556582205718217708087432538328382262519937228483685396937893404360897969313548747601182544421474061686165472276824749531545494250298008709349060677815427329152046938232732703294771260917890193796548633243976444358917471569368568647440858173147013318576793179981673622105444045451437825284126874776052069495132749515738994108621057897514159405903520571519312713675372791645307400410872776699864546807627145949724533867173359796588686931035142596357851141681898175135335877247457598729007817043193265293662450811978831770524752275000444791191380568555239455065369699475622240156907329141374945559557724844006306494424906139819309556157221446794541845183711336395290541261039462493608073979423339812290265056673141971134515258920516913528047007591398865049933325266358220073715097223834476422479299285714482981347115771729755065932466186137052408442612719327898372177419940636540232886988248630736640239865299190307084665278713346933511033804181618483528475269665962421472652681836688177984645386861405936327997262230989704600479864282095942996757899920639446135176570726553431836696127245142711124685704435725009128274826650936704560658983233826455930192998593827053387683791849877622177836755564335580927011209853985595715713601627007485125683957764539701977545764496709318461952890300532089648596632590663978555648585872480980233345353579295568457555141781082093474241384364302623072445120857772486111074217659029626263424411359213095234396835644989051510362754252576528811293869098551576715744758695594263156964451718638676210378254764788236081300828899053480711320119510142038595385196115827468914966541953464207408547605033454605711677106592435019182889973288847055051301004600482635892749219158193167316990325389040579569747409834657251307593674053829344129446930755115821642016574267546337701085620230618212944014449609358253341334948854564800604277930286460120356439638541868421536729277374163849080460087492890215562347636990236570164954625724418198558059110327687979880597437412146906382813987565114539977793858238264122393096355055130051503090036452801287370177963816012394773798394417201260375111402947309553111648877428945760177808017110660388084678867597758530212934603555008223276710296936121216308818222571420470548531373837489019520564605447667235638005619504499025665364876537115849385190765399058031767472076019374791864833985665755445949411906107791866292776161833986377263574091236347302745333556756516524492095235414904302199788314038165649826203289500317620632149693670281030987607020023014880899782801973917582855537268970962478862485680416000462704687680011622186982070643573089673113338370879060355954944872675680304031943025721803678770053895021930814774223296837209650461152779862769461376814037402603805673767324468408478344100459280573590226318124821612766029577518205453110733686393196204603683551021489439329531888562487987737478099762253591119564471921273988248777619108004969715592162433416062903125447636408207420289997031726403424955948496450516207537364155164952319036511432563606602788272821027098067811947019114610798339341805360285723390464413856508779674495130846598401526023094262675271026650711979651421865122676523191786068113725091971775311494847431050338545000688002664712495490055280149589001412052654537352855978118085796426315246082817838124017486600734654188964836638626489405267799086836497707771484611128978545668456114918447044755263201326686746897906099106335558643591916593409628528109037600209459499926037171258489801136062448321797830961877319306027463666412250532811366765565785453334323949668917711226613062637407155994200785981762824245478722183090087444548971869856470592037346351709227561313532326394604204459511393373400675219868255832984523707819886736549256260112628190345456233285522170836835533148657339682858490804328519583528263542484047196472077508949868206482085940912989773620326919916712604720379899338140145585530533194220997252930770640083840022268273075070762222549076547189677125724079104139490379418034343015805541633485931764659313782170532839669095193391387741575459789010053957916974036697538697673937223875130767554432813050835156811664223149664834594713502019184200077578395821300313114922105265161257995467797806337123491749353868814278154700893793774797042450963626277430071993025471154088567198434127696536566177296828614392648727997480943257697268547808239164693862065764602841248741904084774826563390414982361494128258861314013923497416931726900993108877983612129876392981562514872514158011604580160995962686718080653368162809397694452543229222990649407866622343202816247802975586737787431370187496583310472033106206483035707673569913699315636951966844996703583595391057732747393464021413223118253393555633852976855409409104658759251841380013993173984607796978481803965313604064193823052780499557450340517397114231402410469542551401482774303523428229800650273206213791861076787588728060840696438184844191468569349134692635658140782824318212980668904305204599391209847250961444365369505757903495161455180144058637128162854927015464116042712776978928551469267236943451154783553901382792047792178819316150267695560059406688817724870165528112910392271131695600649543631095305887260740502376247584589275055212583949364323679362365537654631510878633019029725936521295146291326908588409108149656262939827055258021336553750278986492601379324964631312080406975137895777902692573909520620704164058792621965748118231445419396550085857208440766224615747633997564720116949525373369708425259016534146011766212776495084178606839037786404746128329775578000452674326596921259572399033230872678679273106827241400151021470361291882969414772073023505428275917876172847251672210874810216337734673873849370664564410789780119327909858707941486933320384371809760869847760106485609110176906555607522750844081594438859453118651522650636549690160184205889961724560240262391062429036919567655394015736700782575982584048621903188730443648161711414159169233406857109460628928123793818036134613589861639833879688881580965359171156423955528463691716337303410967882792771299518160362733579633706850098603393586155051161490711244047856330766322572542134695379200041438602371053869353862708130191974917025965680875556951031738103832473110584218229989971892874551950487092775068591779109335256389076373256449798387547399203661493129882008421201382487839042485726984954313837437585680205306776981008189332688689039605030362145507949736314110572749449432354576174192286022236244912581072507069036666192863125915859811153565663571192512832932075773358109849491189459625954673826456790354542083330048014261125370588214142934601340180908760368039721537782324013438379398707306631849149989831220878287170490297950031782177161677432676927069668732914073479475470577840918390930813643760256735265297610658016027333805483168689244817118939740294749185419039005886758761731747034472615010768797824334479386419184720916599320764258024701365272796115507500381677837480703923875614539467970057051426043890014929595712075982957848143751684362223771918341129387568461774793111888517768842402461128921518751238104645331338130657651377929048285852014535058548759113172373261234437404323657527147466016608096792481077681607526385054323829086401714308520146446746721486970148140163860697076877813377056587632058921637128662365012625700127924735831282318066028266161050523453025489683697392552002861081486655298441803828648943853422027190535543072024202494042231436013463208024578631466262010291149453206584747335552423044438211772198241314160540221628032767827322970720318371955774654862259166091367140627442035811714101247650520443996411695623769002246949187395387375364928593034136052690733687946965279607189373792062573369659968157623974030447294754055699623146124105749090943584497223878527256528099058917165267189162113432712126299524681821674874294503285729928887516499621001313265686994435087327301267838822442719429780768299466621780534821839972546930070819133592138969322636669006236645202196874347330089626963804447171070480921426668627390068302358446566288658905996221359788641166853056989041196668442920174079031809110709452334992327979472663655895540874965207831428244226447307848534185676971917969271690826336908488133888958756604039294549119767105552939636249021671629359171439866282330040039104283049252667713488977596711017830675853869892504806360517648562633300547802824287141168694923163200207945030101437554271200605985421111652720020368209536243753314651498600827270785435463546035419089442185852464704146984263832179356404295379258960113933580409680889766032043055725216470945281241755513863807176451885923262396725337388585491081298776406451560377757433323994042883230732368209757128907455996142664027622942694515575551002984689776407700186284830017164569810836404769893412484101854163247663067549476483122302787110443261347448051857694921648925624541680255570103882312059206957704465332549695706964201419338221543675715595687795906510472912752120136963279911297697292588033647997291645951815288549272416558171866808744078347999975788232223885077648309917227462622632430478731983518277514793851480647814301272305395115978493510303221053535528900719829448512952414715248027229277071668718068276752094137015152215295342126539903619864245084609332417601052247767806877871042339752310153546624545845848043724408307503728830056346764939394579191511927024276983640375234219719417674983816469111988045133480749895814995263180129931815748907951871670593333557928274740603098184247671470269149252637875418895317236756509632643111049008320741236072400879692116035602321671383236164280885460890101067048674180462483404058674701554803350035355948018188681631098568867626307457030789652954843985130542357975599340274694747034586734614911172866656430672128480397817121568682949542300813261908334444618431343653132671901189593664823140396841838603733134728523558698549539140824598873874718230605779101294066098468471352872895181545032305147351647250164020582907206478194492746281008071320664863738750963130313250765154797316665409463553959706270564941164360127983184723100041402526855629767389833673212095039463494013660111925933618213102815912875366652415068138024742340231354470075555532929560036450698427558178731029014004728436881122655263186322453157412012000237442812417253070073984404609065939739395593772869947206047457005441813005913567772034452850372313121425965526656643690574884205790844148672191650141119293703252735932627594076798413726010899695839579401705569801295385967633156615803352768598648470702572171233864876475276140761047832506464461006278977456702322236376448805523990196973823871549989746422772880765448812780459185942896788692788985660642410338296701002344940170500665631668673063151550838545488375344153687170032132850704225607449851413666454211225331262653617451470801860110730505239572629933115759657164084527606400862032548987687943695765889151840191349060841601700584649005353553582519583741871826960134037714987372180939311780386490117392728418058116746425760857804547810930600356218794675273895057720190776333013714542979825238715797559598156114936617037906813811152406271414475426971154479901220009492235651023481942472248870149226904571091763126982875542251676810414231938857582791194865081017708847191636552694836965960356127633142242626982108328229514395706859290388914494405118252347838169664198081917903909685180203989428197140313681682780459611952790584634397588120841103995220835865440934040456982486825948723868626837016162641430485786154151843585138881236219278585693110000628727050089401877635132849632255863512455368622417867078435722305968661344533620991429937653027604900392036432809463472249521595642152876594545990270067570493898309266520897993212596688443287384786129978080249288583760554133169669916597466524385098132879620175655558956098786447274136589533611754231551397256760463902221398602612470436026230290179431727742299528002724227932001352152430474481488294260850113408912549320234552660658326860879525538508481093324722016393870461011460521522605744769213120414436121625680104218032791279063893898546953643194465351117747335694972710554101653708010172023785769955579267076593076038693906942705315569619957024322072238869098534981120027894619330735248114612101302127615358765744735688898637611962298315127232052554742885187552479981731683433030634297732252867555721489545910813506673078436862578607135835551313803873212332642528733125743001456634499610671984684406872595238870157185200412837144608819989822333242379399466106365708980316237086582797971338096759574395624896831302610156198282631621027595940423580650855268643411098155222761565650223390044252833422873085727496318242533498196294561016603084992180379112581813292600966237825804994691899772852381202602105839301097253790034529790850341166887726444964227443548378799277977528008058156852925885036993396353901796717200936186067746246773026406463449221577355356945277568856405531168113199550419714442032829418744339225997048582591967100808899027579617597846391742014981368854105212629609859783458330240946628237700858272062616224252395162520789604151742259182293965609706753185586084266873007793103882690539979217877997376157003654031002493401988758169542722234183857704336075781169058728836972368388814604213943726922609016570841789443432073204719555510926424220988701826136017216066879933150519088372900942302399322328582220676795086696921873670040398444737482768320721110394189832974810720356049065917425120136334829874824550641402704758980119190122300529280564087443837445320592980471396368579904286831496622283456662657299138058356190117495887402118476371209388587562025434030775086897180596843489225798058308506543664839562039829188833733448623878082191884125167922464927021796966460907948843573976921502755515478452212572503717920789060690582995849526712194090196689332429598968175784534429852318039206345924597021949040189174212742758444122816769139235803012960093167565312983124020765336194853094136535237311543975715024135350549838202674264367120311732215355525786224403767624274277338967531776906260745215057639740101893316586369576584061384397826130858781240585890163110416124853018132612882154550785889260092555920265451432804564791090968112165327254371047009519233092633751864723672837418825760016123084415184880068765228585772532518561626335322070161277360840673081090805237289087397497687669757557537369096075598204702326418806626007531341545688305151032062391646362651591033902873228898735067997060430327881793442172006427011994845324581055073256386503219145056761270945986633481791644796004494534083072596616167143584723015808762948100510175609332671923444656973523078571734318402369371872504715078018369351179592362429813382443343932840199493278596459677012783097923527312211444241679504081016342994425658231526179531153616097414657057410680359705006733582277911872134022939293398989175497857921037507789182318560473526050527332246048908104999352780212455108631564066401043819185904394375777413173940783312686771378938766943337181368541049321975903429394643302650649462776896404858731881819488129601447964688778774451370263169917288086221085780540055366641434604121730228428752590597163334940023029411494746579974945264161082094374187695932041668213294324283290001109686289231935418169043613613016919824717999793409462397926425197810025660060558558179201542279279873654439507292903934114216395289235982152644375092046774703050912941854685911940354920658978423256982448975929569120705648062484132512293086339873566656277908512539521071690530425325813213644069952003796897321392859162034383721382774624894189340792465084541348069652383607713506126106551960089526302778722528645967565376775263151314465678465810953177576343365352488560087456211063088876549987566802717274373918346976222425012170907790682153556015955409386683315795123437572137332641083604547876802700803730248785251713197989709015913883496819962320783108917253859836429355737915464412059156293610755879862801983064274361779085528944375867939360914533249971188299920286180516805052151271995423895298879989557888928733216685510612963797701242828305615439708621011862574380376519979819897271314964806538769946144315100560785158698786562039030372488196515327656804611831493861512683466979377067284308978429416227953209822191491690913483938005607356931100457455782021386080803164177081915583898079907465142971598843747721263953702319290520100241773226698155432423604064954719842480127246073920908800395844736675220802273030860086856387954133347337324616182935395435552463539413524464721502670389706840919325983887997175624220692921606868050027912238102137220612976048991121998399149695290685826759363992771826609660329242008932761028102493963801991770730494075936081587942599002811840513908885364399497637780138980995151633041994126190035171019730013487078464529933996176615837325942738783888715564235674115286285868678949591319727929136054157229412534344377059337250429538643835909929374367373074600651017064056758118396822501711221553828810824433855260077313328937901044058719086965533162900581771812165015976702289392655188300671100311590522806249371733021295710150133746644971722340194491855368910533042620699042339169557626050769504388549482380334169238736528292115946096555730514472021486741730659212531198147485583215924312042927048047698575404337218041673941307590626544840789512070599000956982983442682672618865387483135426587740214742315940500768472634659187094250781466699711417359526498813796979083026532258277487014340120513966213045690233028548047661586307439036766377555856740574861143149116053289102367034038685021453344553803058362272284038848734161070649521398165293271856888656189211228677041941119359853762724404559229684676270987535806687486336205511055581844318382221743791297232889251167830820988332680861635708597521154376211098078798552507281514694957948527094658665601184758613453876162715420178871281513991877088195871892128652396305576321101747282291334424557056076235851612902596583141335694084332905546904247023379857754245045204582960204525667259010505475361343575192878166510669053102616834011270824397501017059579556749062505612105548195091605378068397619336061078438649717572072235262990642934670922960310755442864236321342298585591688144650876146231754254599116749711896938255542188521303423768856402085603963574397070567965044370690564472497077498420014013317317630421759215000007735489154789149481741587609779036960062411550371460748621376357503336400832526159306208337174605013189497249799806622039514825337347430699952332516927365486504890405049546086461501689143234111137251278718928633148824841684217081258747122706913658014633495683487621665099933337822698690829563699502383367125272951683178999248066914958059736373194721491611275152595243530190626206201786907701105129104462473813157416401588607946040601129756194273527755084172109650398506941133625627094313956594936065022430104531648033052157417019599735914247139468122043420092213970537421341070177483674125184766241745743510186878397190671063464906683290719709108640770886862518007668795747095175337115993468181893795307900242047286629157383306531486801976181175952709941759478019737706577294811668288767322551890254134790532467472704942794574491109208987107239204267978808256411504449519690558420992191141072391887988134775218576233518703670684346396115173938045633184327296850938452063675727541713914619352264177574015116257685331677105838708603977101654524245891443282372194126092836574135374024682168952019138706982122987372307257010325027099076409725625956387997083660777949042949444461265688844867787559861383039336144537228597992378679930034162830006520350484208094617284151433929922217556096536200205651253233387176008894550727235983293212113799452265824118500735943836601134692113442647682817234677003364400976531586172779013525164306477132431206010154389903016265086911706644920700658335486447893544690483434913305423622390701945205613102775415384191016212259560905659956816578955940742765161365212827950344488101997906332200858000685029853579001345107006387226234149107349995847010497570642581801123053444634470908590827372540707544985855437979349469488650983764197343386031357002737438015198762597944024373105857521961788316724614902473364567703883874602845705487411238171453264010143725310471511105043242633150469275159444782535595229985847464566147336118658266475538546274068228234334718198143364249350993422158612963927187019497893433878414010855536421029588676553994091530294581239002095537857494022550024930754632639385518929339391104475761996317957097367977760469532512584952808133719040077367384328558216947660620826914111088272418362108679605287319807268099882343240468898508113359459788744782477953589384255490976218784502801760919426910938614264942728842209830935500991730848933644341291326624012600554009505797330793769793463941438876212775403652777850552945246237330515310186307677759436268587137360635580203577022477028299935996399801924237362339661606255907884095884845389677670863058185301757955065574162396549292472311937536106855212319824931731686446465918676536704742604985321922918509027508641316479624082394069500775316602685166870101221676067248931312991238778079350449317272828973512469934761187141224683323462071235374046749048471681695188234411048491718031127231228895856313464212316000817869034016773973641153330258911843378267202795110472156040889667183934304357339272072278170764968782796922965925489441143429477797919651691643799892791655258599599351916696611310157631944129599148643458713784917690631145389453712318739662388608650558191856725193928770478125011087935050336887092516750870528157966425128960907427918762403463736829862187542120471526445157564895797968975920865435700195741506713536998351267091630012441619852721276305763804414285175633617292404289611659948824765887721815473321776314532453962814621233307544063815876469817401490401193556644851755383249909758230604250355412094401380715933579098690811596948372856312427949332484518875110445668916826116189865716518411031105831207826066883934946971588140782257241417350038120307489319462899681459122163016517375052673651377388363364514082909081347860702307431383543919739087721492919344424834199963639740687061993603369167989249699987315072928182497256219470600106216785032252247557314403225829387179819133152356235553404429239186358761837643588743348459338188499618973410868726971204927919115642488042145569780222484334012630875303113493337849728223308103826902932297409764898786100380786845101416512491029714831192404116701558213038656133149815009215087980121404673573464173114498953254155869142621634105696938832553738388699850670516940599159268088408098370310482176723314924487274971768643553370154056421097590955637929390329306048838233243458422501175770258180061667737366726025670535597409194453283336631580271841289896530471643117999367398784049424405142361568524626633355514019341543037688051521305573500705835599340015066792649826835752271942445157573631147152758026059100412108324914967706933399079957706220587534539002870809256633619360565296214620015852768019814230320873291775817278165794064557804751838087620774268972447474663126966758893960960268684044923982783363174188748581258851959512627298569196760528411655018644291921016003918366130802880039684860641284089624445354293243744279174591697674941296201480656242057985676831650724413739134610845914012884427179554769435627367307188128900105565901690733367656579056477344226239690007791227864438586496536685158178702750386862261272188525093374576855197741572493537989532789051896309048367774904710865058702347764583262837471567142342125886262710283095696299113361924441314853649767032593241119273214188913869072273030633342219604304021253311282484685189047551879686760489769560366301902330601377665529938012636931953162773425290484078107199582843214817004229740299104240776700239912549848516587655968991429935941486183986969620463948503430360320521330515623236495974037219033370317780525015114556878378749425445838538567156679665011053958486054595688063082753898741681247514348472902976479865603826484222527785478347981443149078592026643591034154316559514660295825672637655591025272195915327297182162860755693945653605521987614830406203843493056432008403572106657123988118231062275220812350194107941045823958901420104602898334535828279793705483492439826804295664343987104465080287454431151086553316831017676379674757006190375781741514692564467355174682167299069390291414118893608402164983181369307586023942947838600803491478497721275407633203490923459107775426527933608828374046161585202839695008513531822451143592716011292897040979323092417284642864927636115715652495689112672583577713851766589499760948178696884587658237429237223162085625157262990487665602929365555372951392043626831022059108436610067952387485688961325859039500122483419474085413013334934840226232880928720146305182130229622135902600530485859700200040874228529434247149668783205892888277717895653906514998217968385600111946886906342412364034186658033700893220674373845369747776999816023251714864160518598968643585993906324192942584761054072882655730500697543439604006968339315499467225364938579154518733675309525361708075334946856770240939080082308529125075402639666755399214547505152141338893459454862688283580843863115925141068288646913318264242486565380593116282195381149806407798474184325929306077070967958209453270748863303182431003891758483175677451091089578654788604156323547737684921239574789437404348998057004396754646827246426673571076714922536503755327557132004053594154018453879523108365722609088599115187454317677025557606002543194421333448781417800110165865974178373544562148637461379708976040739502567999198871543671390453193374523141533547571284056916116811320763552804866469266954639746700972827245659864679402464626652979483695132090435906830472591193765724834315908241747713240275696505078057787677253797258530761472481869065354384042988352560516832840357099561454658516969081881648261700299665838005008308455828872987537062581352339095713959519913372165260891687836449377302842403662910186179298179306109254360133506188151979002791641121460374352721256738662822487679558646520335233821893866507501244691022120876940424883820495718409923986571402017555735242161303915500463848037068122552638571892662391040383034623598095807313913189046125100885755050170967586982528157660618163754205744514867360691057882862417301763310388249351848737943129866413190315039779922155484551719808119149820634023393756507407651686566592918747902817325700855527858554047164228826898006077160616223298343894088373034654114214001989031121452055339159475473860141336443033463712537956529064865003444265923534724715910199121339984165860492531378292499908999838983503473499471323161628761136686893872097137403918785082092028746611305621727704306975285333623184073089850852940329221444405762028721579049061925175535806828878331396410455387606353905178570396199695433065594542048817499860914388544119825644653109503109395098032440377189884068463502960319264542336141003340890381205456327734182931564596018684103364859998898522341966454575358978545292998416551714385069573655710458153679140453896305404267908249140578637647624067528567817579555909232142335156217634315095018104880846253141172668354894358877537318734564189301532148611741106284953217791649953006740321489701704044139248870981849803071191441448938063739234318532687790747329929663506750459985009047254678394601607520438245527909318030508319243117199864686535037546505043207812308407540597884359225248564240239873154567135629452104057271146113539995857659718014947962747819415439125010082906541559704661247076506467443448247724357205644427632236925886482767014374900962227760103402533895508593534981913354631496346512435798467119351187713331383496714788008429599359123138490972463480496202803983842533379761113349911780165096786664955930347400096017286592765217406235047064656851164184880563402746807173662068529505266953211962147979097185767577709061408901740491451763169361934234350540407271881887776190363014472156298221565496662102403105730237310641988950158192453918353124956448222875157700900632254474984191119294299844966453643966340344054470732141882693799918600824863127208865585463828378185763826022111984200572726380029246507457963064660950420797551229772418426904494834673054729891662656379743838473870385996499295837802305284698309244413354593145804249523526489700805712788867735498064742103820764617112336359195153716098892503453993914277257066470361411060642957964557614742515650883697509124198565346422744275740269919439772074545979760233316662532977766571474124185210000618901233056239007844036904870546964281913045238213434919515792800805461953148498493903454896520172331370950589334332435966194758973801085279119567469613395205058325158150846428399440274440274974523714653289863440859057771385476774844845532522419658559232470101661839927829878630331355248738227228346702762831812873560029450081813053071973886040799019267707948852598337738450760135172604447778126496056054019756608185724244635378345634549154326355629409059922612252824972393381108627380609824546195690819830313512649571186029893177683058027632800840074417284496726498540451677955505721395324370080508690205286729729037321218761889087599584246907226171533612122501970606496489464115356709694089034135447320919662250772150038369839616934554972102782211579778509504944898554541330546004609188336336787173337462017227511707082191663697454023552832037489213849417547354410041695427816741790724904908922574144259695439992857290959576572781364349083660778242996105319543169645950660915947284326637769685381990696548048484323937000621838733322970778450034117681602230160785840364966799306335475620600540635391509943802059102889108827776634224631096106147941684094237962911206231446299546155902490535008295976280493392735051010005209518960589168029269430808855983116131295864702091624189559892428100650146551243964299095936909995716275568075516987212872071897170103375403465701455375378415770553836090134832491271061282805215290274405496633521953222636759011905480444086587293418487613338856837368101246964403628861735390378593862740097101550477090263496664276523925942242028154685085420788667183947538036722369029045382324106876605055904872923174397999079445330458608647398823211366174431108038414181342353294632278901136833739994105172492440463855457701437735716082959415042801667297610522363812613549326449653605347094017605092670803572487747481285156058107340521146754739080192817877541046992759540966394645650078357553950979727311152281131390719800028332600546822840626332252105379795552633507850368022589908571186396280111085274012375414093445481797281114225152040420336740793455286271619303934372488066939879985204317829201850444012018729036304003927037827891807381022664553750973736417699009978789390351318113268047177740131656807559439085893000266263346132401195403937181451504729469556311529925120740266038354080983016308613688044500313980243090254237982404914083052718747207076243341508251735848162519866502935254159117809330834531184797452916628179866439137241234982052256677508505417028230169157925736510468160952228803118013835850784981360410584145440637972835173439180625733283881428477467949935216840357704226835757358502762427038356110750453048283474411956564644820298348908667748968332696634254122550983781945309910108974282944308195824735281290609619986728644224360222680997249312707026478217789717778032225924483450652394667625984082843398496705424739499091973819555247036944499136162369949523018353275189715387545235812932102455395316539540267938236625384838403478007859678063633820075970793959218339154249105535279515114349564449748524761508490675752982391549415895310786952440061279194722646451865616945639300074567004945556800660874560395474571793961627372312289569485293181425716554290719612279997952107770642903689156094654006402303661063690201237703408288941914380047131023160470555336174978880758291726652331384947056825959501323024588114840822895333552462478208002487674496440852123864980386255295656322858154751507184731855548287305853938522413390096407051714434346101519959045232126270212776828049649397796561965246735556110999083507351681852788947838775654027033919001605121968173305200393684232870374549849796831263303183972196792073704048411222745577641321979742830088813691770313783528535977530967791656679780944521806897379761905054901706003485666806588062148223276579745113990865840950206035573971498344221711027296973095683922371291935503610114159133915446392592124891168142323169090087691545574328441441668883261386620864903148670737480090841142749808117734246688408309985446132055647723160592877741663047143649683453550375755912246371514804055469378873494247609680707654652453766914443806950193252758743642763391398641296572812442983757674259485754306416089941011102040829964225370031939231767682447270076512186461099227111279482162802252175712195892376387649349160797938472617141795747361763112481559429283502911461797140896857283647808553603855394562154986450814958971239568600075876809588796099365413263287646215183385203795975941606078167921962025490191790574831354089329485041699422852940466243119783199663932133103495033337059415069870031498000252826108478118027638676177174888211161976744584900159023935824025076317591954421139892684451120401153056104489657686948751962777327568438126184875597212115850752994054837443806430130658735215092612308593373801282901065442305266489014835527642071183402229847617746880502984180629647191328804066372585251493474539730749833790487492669537692338721920031781383538111423912617250992681425854211956333080409650719421870372577392339742553382744190633777857689219897027740949685670159000604289435350430985847556356667964289998075145662821435603965427330209163738237551854846709892396593483282985076755686892429862590100577576512241064114745994631614499428224393797804489903782008213751851545962075587322549702150198943823127815360275533423658843651445851245379407968438438556367431511786249071444580351309720154534789043335130169064744795470393438432205767877358297678859205127724139127090364786828658093900755238390638575793079720346083737225554625166454172606407045475145060272316642713232725657112146999011978690923566023313165859140505005112561593946226553859038327146840320348836835456908072995831947230767611859795696961673947732194686634726951627836328928811310366518529512188883483171252494078243001861660203278933522836201870791340991396726868687417983776201595933387427587398695646556598077772506415954739456883251734429726866850124743809362826762500643527261070172613318322035352971566660654543139739217127937428769312828601360268579524069167136242381944366312944185984789559634579232901088489146804626797566342412249808536899716079173053233972577526195848753142709040496129170216945367409880677545338385758737599619434151684646475315883757912365620456529244110442153352079792283587083736212781392763040887115008126286766141670409799188252898994619587751597758461144229210656954710338730241240824421827545306593933667506352810778487939780119979580855787725063635311750074796014382304417183989120810122112556636748504800221411359311760638932553183139528465584045725349508273103062057520283748259690383452777699276768329757616030838170769647909978917800648894850107418760317637598836389129966366852552162676794041806548096589756606667141024247157052118228943183222919352376121080382944488868322764382838973068086907436217103477968650224459035711601526377174650475117837332881636619070147787186138383394850607811864549124812602090772390661645873177249923888397626423333741608793222921224652483618965138397135098099980705120742095494197208465287857882083885344452509935003205955229587659748341226895706340858582730930930013105144559307494568227021180253538372906441360065861813168916301215109637023867424215604229441181751201823277685961510027923752749358273531275293129022248780776190294857952699389856937129012791247782811122206177637274202772783460677659246964439031436578486995703789429219783981711941055129256399882407250436586854477496647450506024903844851076531591886008192299109456560199822775698898738715360763687767544932798915740913930392557196143065260872391069492337892518269696040075270776775731635396592657841297550946738556646483105230172653901412430465133468989112548327168983661104125551019581886167697357651768581024567127825611456862836922688514443964253237743113666597272055128327023445376227357793664267458748969833269329569245171662064668538139512347475822089133957444656043385814575677683717570877079768975844025666227891768949934544006803572446135113352930125312976779336411862194753195543663377465938687515920736853401985236992223292728510053975311060174063497714143811666176103891343088659343795750861415233404018628457319653545408154118392548879407427769359910049128307611584936225885194549393456361425079478857183698694515673478511990876556815624904479746860095681360311649879079573408513128957971265510429413527992466335546257006831067364011995713824574513031290420445813799144529578291268581090053140953282866799951576777328942124699671744874466003803174744368460986841702769956446322222744669482898362093658407443458066410452529868275424630818553613539589366546968883495944200939993442757980725411449371045957698828030043406354722504220652084096532083584077446922595679839655078258514246385854055111337981979704531428825051049719119314871804269315091269980713750078881265929801851514062656549827870582439270229893370083044461468693794150007595848788591402014580318485911493649056434674676327901311137037702294235946888048043475467547733863195207564872710400251847365839991379879293549408627239679366543888819644240233737757152021939529543167016093882415534612382010767372429070856715305628869585395524834998044115884647504866189280005012080699767134208736469133358494970997314684340803836280179799448394750110033170393639833068420349159060995464882550362592951886811123455815784263848319517425995923067419934480029140076727504570531829744890611768627316070700525260188067482482772448675659582604489457532868689987944705355993586451088763757239619321936673542211131351905691559304108706303491552788388034645663262987768987955418222245535854619164820780701360125230547701751877446538502257965910236282512761879757691176035243990524950570342383106359032446996075402215973406032469425818953428433520020734028613429766801519508215559679723019017013204374343892586893832137905031627540765607393066875073710120607901245597410131679970375497368874585865533488657072250184546143982803745383637999533044972118412194805922669419612965514938331645808694714163618465256556292866965849267526093050783284220897924984342926526857397872811598652696622020650715871234243845008167223223135631406046760400835276946558806583605884805507550424488610315615598362518856729657700437068576281345635195589040855389850406507213096499740713107485831272639666805430482569054236996465099336041700303675472684261071439938489110963634018722327985039569653183798502604904817222463658368774889160680892190872986010172373583012391905876085428620586905642826605420930963400747986888616040619993568146853183211654862109369988375167638252406778565031886243672172415884435972792900167955281372414191575097109389485020609192720882928957654719655492506543841312404586438005592781018118346342737969598069054294810693624115099335025717035659100337941830624902752260188683261481201074919751494574025707262124077228082282612726548404787608509976266281635712537381958795767997513172152298278704850508048466891418085464182990928242661871072470171820441405896204621435849083444127277210374280200268105706296145089533093200490664749056283581245478710198428840427060385044427957248459042962793217098319101984136396517358286247209487407068549053095463309462166770640807961565721112556479133858977018524452248615589239293449035947346814795160020120295197645086019263061937723582910997008214787241531432017285681049575732718982164581435679252713857314315953036018056339104965279787355903679404020351914769687911196533690238418913213319795609437545048540891436708083854045956511927977268320311191663243934051033824610881128039916773477013722462588093189723261726154189809337611418592430741527583097852975954815481037570091222789179023666639365944511083713254862648235629470403056547591256971880277100136381042693962025433557639911488342611774806348929821784406660955992234793628068819754411698559387554355544122712869314309099879148531005140701184678516553857165651521001690758669893725493555471484474062588379721057042886399641057377149668533770808300337981842477862570291769312313045129132697766198996375078695803291432843295963057145902145717548969555148498345500189700739019481474719305097207860717254469893964864472535653055057794400690026776053520189901413149774143334879306913939474757203653769801668450417340348746060065093165986866666476190502826301293664552689458788132589267517142200354621265935521435992684113135922223673078030591148486707955225214426587650956487112538823146128801952669638644089816134052887467683475184403068742554185836420503222803164123395559040222900433791755503786811604405994646659185039937369226554976122601519710495245828141280636855208629567530653311961551407015699097137120154922645803287002937943768345063667061842386969783516784593306790978006172485530780027137167659899437490146944952217802920277788071142920372135913732617968587603832179388398557631720768479683692449105516453665470041252173493382524496631598819802963858696574713886389271018667256892326280093114720478753472698488608333498722460543703189502451290957454945740504672373480563903671741323793037114388459294086916051559676416057897976303801722655528470586071673093697835585601685941673917944583286217662663902366617643956726682392185016774243200769324542179030153969932418124135035739483680117749102731635166076708634513472004066287763759346021648380904461739091250478943429809303507133989944942703873778185792921171670843635101461464479069075295631035546753782035055490861214481583416789144756175512449551545247421255739055849326866219174108357895727935323349659106388546757988154113372218555177506086922842668463595131226129812715406651609833243123363573909851432500224586153382573671782240609257340953632904920745754344184711575677444544315244303425680057489428656564490639770841369395430039000586170272001773794144379880383766148880533499551531108980977120690731820153522802926983369188034792181451389920345148506604690385656893679704195461290114270367431342003147984125084059915484684229396302030150820702066218208756073679120376546129630226862048074910718489063612789157989341955704714169030913489186743806427405320763740528523283380554418697557719149666888862359832308910211815128143683864979283523753360281140525539038019439310477195022920577676074581755654724761313573762489760402484360673867040952245398592872521244321887401249883809690495535477007126468154872900438622865292569048579952212872676466821380445863555209794016723222003311771723611499734857922886392497718551107813171837392823921917405142417621582587637190632321302663984974079113520099128422386189476652349350012208302133909038142501215212523907947736202872776692301675079599284815291540633376890580631276717411141771421293277216190055208509494122824155923275233702846838734574784992701466653664958539446059686139282655337908653927442206031177194553697123801347106715596789584560936802436666390353697961356557421057230722403591167021158271571430398209005998264728806564140089272651662001510839797321539718337476118411712070328161390145584985200317876589164105204967244663409374637439444821272336378295117490680169126778133035115173133487351075082931997910185685121349022590884081148811832897256503201537735666518313913220595476032707152901838552727444904378622687116012642373421012427451804678393466406581083317212551961413099872452591206183406049752629348962999907713532284714247040640886267225382260397584032350557058207469263749183807519617776535795137547518364473076514862744792879556148750487680889428683309226799149724565954215401430589623486117047073088152523388277627301033617400752997779598463818663506684495161585113759146978251375430975418016245546385286013863691258643953346893177168348170255788377230119004913263006732693055345821852814876525754880181643725292246055495211159528709543077083374739617150991782092632471352230641400716933946395463837103882134471851108466592697867407987758794481195367246270418724528479904005168484695387967807660601322721117012372263689049990302512235783493556919661299935042435689108345996381932430615708996233338050870509159836037000193921800611821146555166802643745182469734800303335595083032543755099542259693788955822444838621034413424910554747186222993749470292805919002842259004801260056933038878019825084515502125687290527903830662715877275020072191267721200879748821150231434753898307738873085961555429190968224110145929667250352744920676287494320024213197704484277522524162960830992811186518353412932050176131021780171017052938166257760928991835435029585080094348519208188730102547613057639493441567841098613010043644215906510180158913077436482942949033691948517611770996091728238255849359252476576236219047540344251228489027551845634324978954001660430429761594284734709754598882279218799116289523243218300823894953387803472085376997323445684038093481447158669149573854545540394523473412415183601758021823358962787864690249483372385426043215938387087433458232855287222782357551024773913665929874194165425689426262044718278991090723508769956474517136174791038554205683664100643583611840273292300960207364007748687241010546143217835571673069943427635338903402367035399935267870917044973485174485491635974950247259220437956085386791028654404523941792942195474454764664957946217666801838518366340633127623544758346131100389578010116028616751401829735611330234714263189616796258849314967026317249759224806375506161752067162030183625297575944934175226300490695093814961770776625395996689444200037688434638062018321900160175296053222369819322993364501151023115999197470616579884726651396004689791039735127172033130614567720088545221595316254289141484660615484560304295941439041048467752893421215095195156639964413148364922139637634352963846601727114416507184798692626001776449581842944938750612691066333081749119184227979390664864556524679360397046277104018191315917596119161988365646301703505777116727489308435184691126343341399888869435740408377788826138352616994138984152195604898345365327557799461346908170548035370930508011556306295343904170679181465281422817913991900381230027909035177699589326451680444116374988812230100128168154744928082953009776962252638191378789079207285557858899905071573596464005786677006635924153433787083340082910788036981824790586515057069443380996100022737061731448453604314798781701330999066628776921390267017353153126592224438617893053091990234717479476556999671814948771550510561412776044221150525714374978763560168018551267089167704332929777967914060890622898023449185228591357003721517566771985140345747929611626544215884833983336350572116795753464599807622781199814173833042661423049955293829362547518635425758637528644430063509796480712004419737714132397861831984803730954332673543908722398510318953096589612052871126628144490966873019118712045764289100131755544090460045992855829488084044342244535575552395549200801226964835121230318073206589879960295414762473014612901320757005363558706725313589669803325686431372407399186924312883432905055581465755927709482626246120832299096930341647010870596156572575168877406627100683598151043568189117268323713775190493711682198547782536830156039838661544313528520238118130436662129128369443813870335596043175858663286578619058730685480096238276302194135003621290205139853174657055007725907997170384415619676134443719931831001646049178493437824522629310743224586654531768766549986745167167143079982824130177404556421308767334091346155371573325496955207933514100670459517329658437307542305614131098713043263432964738907620341224759590298527978505816631943416240422345679582292094188094827424336512028844714289307110207095208740469742980629985426822769951520703251367317310789150233435834769547343830863527425956202875165341806329937617083906246471692660585653828358600870395854851919770335120369513816279259118649738697309078427923291766639301803013900157209453785121575351099698640350338901361306592646771618751738711757067050270930797267734023529262847277514094093139869315704833897537612907549986294442301897704996423790131316125243426333091786147814882953120746490853026722207759556352911321987737519792910203275917627632596554790448694690646676686414570689661098021082458790400228983466830321676869862595204281737440426731227891977223451109004865122427975294267002203104340741276025432470085268360532725284703180503866555312027630967395285407240026805903761576606090116939327611930768824041291622485899184268953970022513502582459447033211670733148449519025251372928121188965788932519142445346446563844251165059140775110553972867251049363521530495397583044633242865405684275957012251169977823554423885445144645212246734798586279069298613034648912194079388398046012197085344993172924019989107852908060106338073947086673854685193486842733318863933491590405457461650863808474717683341247340161995896932500225393044159438084862186382258174399226062475322566385766294799476526268602051790796334973599372157002192218807564351399162478686024798259427412008123984107290650576532338888460432828621157067253487495110161439977622493275527549610033032890880609768924279041351826559360294649404873613113288527096050491277215874292960417014550530138965234979223778345863363590758121901074675049665347117388337788812108071499834135072784033698894048008386049775867136321561756561409926551947297339647337202893552223508499010560762930912283979279591662752706507363389525733988158040478801349185824058912328139692246112208404134107055401369510439488779088443743349367854751721175838995047869596278602586889318473551950509944805891953331245954545159743660587228724936634243100479042417337316419022757607116981028841513011030709123212712987282614189979765346533853251211568986141778455119798610711442976322246969974932651008843868755458381399792901753824717099672876483503307322620103811720419757225180190076254573195277681417602600813945572266692345622623935965492711194456905239187879167731944399921695743836462534932171988571063356831175744519644989552052471499959889913030123541223067557815485394981255478124718404990360147848968635499402855091740207031248033825621687160009197997500115830052371401962757683293462749827322761082209083021639053902562325493571810748106123786435875868655550854920208452114395904532085490297690023843230195415527945927854637263970530376049634143562550534189752511404652069289620411358116298293186700815443626301044846903164367391403724674173654335038481094317691438062849530653573356428684362741462235149374963169835121518718148747561347995906341764962127885153452667095780252842303087948762818748512469001396328325587667136890038221201791974758301817651875615105364625414091010992285508864761107058549690802688282597161618659778374472264618712915012759846640501942107893545724194468034844610961130737840319626724724380121569403486709216695603339951188486330224292349790661223430973790670547365681543784619549293748442573211449812371049974650432117549414554576716180335192854001432386891781601615369960720173013638525594078690293593691687835618375230429012437478692465343666532570253896754354929655393129760607326024427615332246485015592410003891923187644050239261605325622174495016536849724519752293497503335768534692191561550625406870518043212075220499886498299347234480205018083565912520482103926258741576771452953445409011546373854757050382248948883143680793969360061175490156530915855341520726592212260079906468602707131535238467746959564421294204763214932506092806752920733423646095722713435030515683401683572623034845352720084561354517913942649674099127184777773315383479165780133832112534247770002709988440285997701920237972456057064486449762567713848289726825006204555400720684787632478511477588188519711927790730751967051988314238194319208220868661935320858876320474945026225449955776050655113972901876915009968758849597907599264909368565271352027827752562070377767335817965372325594054709970835349858804661466267999953787727153498656553696042992303435243363755787813145648495443442731209144894049101201494606403971650897588148321343650326272844804958711749159917207068100603034244650213383939954634074697523397636740843134568726300380339853250522022368622325220812750863932558100451068620346721065567898174964866496783090491209332749827949015886170313971428486899078334155522994012936183613950088022980212622898270738348252149001912597545942772959734847422237169953597069883057635574474444548241978796339191823321747968123254270816881601325187057286038161988645711809362796471503514606497238129161457054640783155725515424304612620747422369351286466668450584360083933248692884785665732559500231124679252634475732384009787561245630879081816002742092040396226363283991595876116591233749396240323228279910631763902170540813591464875298210504525659268459273390202945619978537409030993709551028377334159931628409498197805990941942163757899180256307274438541275372447753367437146118166737786162801701383530848418567792422580572038604010953967027911997106724272031094330088990081449790686262034390300636504793666833552176279296141573586399333076472573420784163106696619379864164057432181590724028955866725422724092595805532587457829884895491689014667443065720005411686187288128823416249997054461221711730826072827079856232772511626262675001390919361520817272511607198770353199367362644178420952261069170776972791370864395096571170008358959874543305099971722259761923583135717713211352395525731812643294885405653302720539652201115620378503141632058244605973037355324370590777336072774519715859330978234572013470798264847405816579649074464082990548633696562038822605290106001858962393507516726668879302477376093522052223456148753734473778179161457835511506379065746999375038986771211071416166440368909776069806561495593084248870336919466618506363884359154022086328729007878881938480448482523961868892093070881705844136932630491913009050837639331438923802521527889526951810525160943531351881833314830589626701017767937581157499651384830880838131570862846673572461889238076801081504446095571227845503961449338271460975135736662401149264307579940053850708691263475577058153238619932674228950423696595763995621144756708786336486549366478678649190638454247532530089049289336745979069434650896188543931100390236128648218027145181687474688924559020715842963772276116664887418919846228750833191160785342365076217570141277080106285223571468057650093623505719900033813235534015768530054885683375226960995700172107265070593782715291543880434292865725553952796941569456320205998121061194826291426762758225844786745742563334334156955490119054020553885611803057495456331054183373038959484221664632141999036281306117189830981893396481286214623726290267762896576175650080434280018541670917215167244436599561774737821733869827904242447235342570914490945496509821132117880524287062397025289633751559094896709978838620576362938466261812205146103108164285003028437466979299144763659585566973114283809146449581508365028082414981311630921677469423507119478129740195040695609213028186625223951625723091658693435197010453505861268088121636838524371712496547597384761309211126368139043833550171442167999621699980089074473184686960480925394897097283624202802470538944574853122563876711317729010367944321419217470640559703060925572160498741332058417691547588652154500276351567632432884905251416752138098931296460754887777526324378278757619052658788704699642103138938901914673459425672669744700098151539980432851873668247962576112329185233145865546007047856679575905964268478687020087925956218753630427422047436910737417493912907781760793474384410853460644790968120909557135916491485350561002904121718745154161980664116617089475485140621198438851821595925602464416967385483852727481070005757773896017757102344046195768394160792315274502995306343970212694020133951468595410752865192979877126196881609916488152799984997597394711217387400983262566961524137594325295101088768503101281608194508210445864454881765637125063609456993314519980440851312221489235490960604877405479421932481938957002793324954070574487052674218741705815092472668555293610413996540160071987476533837911216807970145653239589887231968311372341512358319890916159282254947279163451080450519509564801816265146679873815443518926266814273801912972267558506551561326297322378707745426382897570621222049479196624922421564334899917193661080371061838086276026300131950792649366634952664281076426771341621607467366866163758368389578045363075804673551646594610973630052908510266432304280641379733242410354824728122637801325773390031160825176164337404987695556179884263597478021483862876738348428682809917558769601478179402115484527892843038587747050412974217016301986319867174175815287001640813833898071674528172131290056118299394932097741627606912503480102098534104782733258304752467001308223370589305846403722482556913910998081843752810635077362960347258794061693873579184556797073912370253596347044469915795522245438256075920744019894450147265693542265916920324888823978025321594521470555003686140561160679286492788326284694976200380337745927248662656093880940619616078962029715624805523677979438827527080411756125696121797708143014444213714607038116386489928293329954714697044669538144460447720473503194623845071914238311908687120618067331549155232322294488332831062754682246180399391062023442843318314538889628474346947767569113335826207995079825582864960050926237600041505841779519658379314363477893252108563435495939995031112653250488121841200321959996149159207341184910965221259915934634611440727826784211305315683543533635574714579538795312259023966060780900123052105793251291950563942626668819112274464573240228733684515525663340185021934168371951366322409284020988885727293602900864396808991424202279956362424029593872458733704863414908228016152030649404407436533979549298445574096380937138409065399852143395027847328604507578766052221499207686498931235784045885998657178763246304380261164382692722473275284010194218581098896692968426133084165929935144665852032030133828254965776259673705215055145322947699701093748537402667965136520030036300816613725934765973073075270571800525020116044713145835662903788747730693088820746391190845352776071214114372306969762691128269496268424660331025717554563285846728331891556134899047561428618105520918154907214203893296238155379631217476281211600042769287454129633909423618549902929594218957808901439029940619876521168745096184792469131381789422953449021671381277322959824981990065322011124031821371389767223953977028826072780398749967093360970732926824423666471273876419252727765545186408222976803707783360220789172336949159726837681105702390885536489498352245921970851832573287535283435961078259000936097203711276403596942750103757833013356976268445924238474544989973457028949693921109227478564538800663229515966738202591912597989630950195729691931002191299702558012974551221470346176164168136108378955582142517385872263136104202000468307534925740690789878112826085796086312624564790966861849735330851992242595813782014278742770079833424502074534463040734880805976708079399649507790879311405580758427227031616941628610611790060213884416359794349411568365957329951452249067948706809603288604571007334740551028407344085191331598939770643299806489765105768734322954234667980756017444062383277449158698701229112734853618664941632253746560816752259988449150828983219098402847399369222021101476945559222604416300218497342294749782924527340714841371032325411428254663730714744114038575822271775893925086350579558908357734056649481672769255226115411624267185014763178887980162649830176677146535394663199855384827801675377133969161053187691351366183089751011918523543459610087473087735931223722257699466004790200602428391770695643632869838921420071976739980863487840729222280843717952685329270054701019382091687859804060916140275797561657021689144523103979222779837081812339152837789410905404657712293124017359092742485291885221978634002025849905715398073950294877848997838761589808357571267052311832076134783387994457709231793175296525904018481860150657329977921225433498364600137711768947945018156185069562693229700290737175178254716534653882264193672988462247042094008291241868023000192171076132158654384152653294005171641162844220667602534073855949007160960270737173432605191352273406961835997132800025260586657642128835501886174211333596460969536312062580785438628401159135376206876974104637713548083165218518305482504483012855689456392594941140605325173060159478119015550142859274322796452326069045564063422856896950177864454393880005700774704626387604849909995006192081169565015639144592364305128169659005398107980828579768568158817763746738435874498399087078091732215095055566611535874365894298907716314682983252298866783325266041154593156373582766361000096262956756732500039804366159947495796447668310706258927119199426738500953069514504462707304767642403057131952679831852081289277584852103418636169959597432142774924223025925440879124085944882349996351521553625805039137977303077618523830750186615365271119169663477539619229514993604609568591693475644428621313266161789350415698610510096963144478615654500293508508924763629921085951903437904347861057175875456889448867507763176932881762846444229283687774593413532180822861256533407185403333917624757433370921229916387022644541060042726535767234825951294146002689602448315952297149398493800195352637531878529590326257331612819948628770996236809015412095715732518015212748552587671753821326531692140954314626259936962342142274246814140588349821630562503988266621342015096561617804974179379568677912468196438483771909038486999085037185795250857379800575249265879672606696347474935222874652151167760597600281610451800214396438509581155718665412838306451304406022458298472950522370458970889668644510187941280750848708585976192197092806914475426290964498092689665095092604717681207560619996665605463759632844049305514332082778423897492170644491719861266208189674764784438639933565620250835624464584656773784042812210050076401678434823649848339148695861217524693743662221529930345498625590558345177519540383675511659186695321855587222220024147023633171742046899001710661267512322879127722837470969235767066634495937951132533555575388081549788012666850079745625699377678103914110951575690447171747676883027962689940644845466568164294175903050897746283956663551870580491616427935929123486943435164797502209906844864869864912053451474458395650429144020792982747729278007162193447952354110016356489520964207886799946886092344149175017853782688519547600375372359149514899076978825639558813085308305424161311238886744688754946128104166341508189343196031190953552484774881105361505715375760935230058683804502266670394529613358651833553209181297561552009517624576206306004522216193069371106589133940707649848024658920118278139226270553394740860395721794723053264217787731885002069342274047462908947539646826426552633468826714421034243525046796403386993961670207059616183253321375013044487129584920631775002967787069776724624575087928084516607132182182795673796888480033333029706051795033098136055099747036954552267934625979222596725925437430421189967332535728418024422809195248328694965602294727251736505480464201249633612644629162833307970761295557730159922357459820569948949721027389144207880691327283106452754710008288120342468313512161169234272871410977040295455849223348643987620162156851578998503598634494362480379435609599219424343171178504221290047798958706063230918880157793923620559355433178181349462695060775351732618414161766588405711612168387188939343579944622652288268171371859354068660597544243361283038833270665346620480084739944841143726274898336250335782812232759313661352740009257316664283729051324022597417769285126083510885112197424169913987774519022754978298422350786784028564083142832817266345076526803846576852260291321996791424947925008952178042405361458429533454980155136473805607639280981975929016463403553860543157045243203996207966026778286679207341958664898827792147532570665543410356589047844301799185823683987612488949668813330271922056858166828224741486515125510452663209050699581196988249937413848113670842680776375802159403746811609595461364724817176912929678060272320689375767663844631805582637059682598687782726840692350230651378548842965318818317364775985471642240090096518834000105235210514601049629678974714983688341614406156877265311064267118185445610666543794016004210517095986184808745895042336794022508706247110502769629954164814665645208636940700883326763141085892004078916027615801433428834297655358069263915587912979570815777945958166757915275082369841477243680334090641806968399991080122381752925607753323732679143893828230865744209473315468274205202624773042674656684231768844408617959531714152299956868512902104563278685261944994730256768640536421109834985522531504154438158864676542658384273474650378157679438036638423486503879568467032936394629310978792211280438025693629390364931521492323629244118382060868180796290632732580964798988327055303048661660605764413469811323870540947980898853246942645865543430994506040707799311392157162873952255835355209991710250378868604988492886029448329819403249889024347319971678348046688175406462042807599428199514117404605474968887864398529985511272790165319406097236926494693185763867529665122425466841559237453532508171844856192739584649230410763254833076704179440486019137181925576693286427925813802121987366777235037385291067782949383059183494156605051395826531688084714150595199190578734359921908530902811851680787499908858718393558479696414045969980524737657804302357458913924101691011611184900170109048395245195965699139052414329203572161744097028223864695718228753684255007905574856907181648879901844742942300710314515581606693837619286746518501458995291726303017953639934738829459389126137493789695145804620462205418893193294962493807720292412038829182782325708977875643693593001572142098953938459679871623743584433128673733550335628459609765680105857022309872301490236337504499498606541365313352915829021212582417040429926619803800426799405518345154177882791046498524460609468155605016389943194879633891648206483144112452844906503115478367417850168591392625753747074324542802652239289754115170780537602884296801415241914250030713656771406071403103984634393760890835050891793083662122313097828080590596694969787151090409406269738528540297840626123722232617965656954772482770627681315293644874319126246823920567579424994663435389467305233803751208090670902928785958031301188821622427157702426385989680677614430268709703567097206871408878422575989363427438801653590460920325050441301978534772724740066322549860361718774944116725254965747625620577144869498175004380244754567355970071281977623743321899884781434687752894531197738824463776636265775675827644563597174030390365040501137776807744569206165230689132050594916193058060872734741706459427252895210138036935498466112232166536190733787611007980380066250819275477465149140877969027323736354519076353607510670271319723824586150715031814985226951892368616220685271164833569903645324280754695536382542831661809231441839055512442479171685521750845328232048298692358497908203904063724400938124769326458807237956821620025021615170933634710216936981793386127672446116247692015619836616045989786839223127135029985209740907363058680690557207897442637741639234886189383034238053493707531548148820328710894295660441547777763743732560916693466457019730751152035047032488231555749476800113340057364759271436538800506677248075725310892952346277520909332400088938413696927692896207538951940187638764527774830562476656754322676400489575374871941738927212627083633688701107989385987589590369394544553822229445028265973934403805937930756669763875514703688672831252507240476927178942083436795990507973732213776945788382947352975142522334840510919677938682091861587492554972092754774215565928107679063305960820613918895041277050534524420841008812221231830607217551197374090511990530810590607078490219288018288459752975856638609052229268083011063738841099800612986011469246560798179970690828981314082748007057758221890346968492016662102513719696419263511233038483304663890271877599170839118888664905533627312429012834300052472331402417196023064407985581205631303593951356568420749489032839463321229899548388858739673972792552649126716723503118508716769211285760477428757422765029909880355107160136991391157942269052542791915236374495637840510477501367674806009167459696316670988871878964090669449635673616525658946708006006221433021627166964241198424162941895745817430050109468931298845631784079285662588689012011939349211580938093890299705065498423954594897388702670113572516940824581061730541427195995161315949516333631280154450721678568316680209706699812575218929646082476907236321833513448999865956460261622836976737967229554601844708787799022262784225393723497909154057518503521436022073734119877071630006242999842088259771949274692302723980610210518685706598978169603244893080895739030757599835759207458195803424902014588570313037114843215135382669855408205360685626368569043658038295430558916888989929412517364609868541298704649663350066569307395415737445237685026271295444009001983242623885802812134520514403806099968174536374065512728799827261156936444915168269330984584081679381114587401916790961808059656369701390940267239472249706689728956796474658454027042326764661615553085284450544247950758583645184056847002262380392881166308680713770028405409217147036753815793157699976111852895949999586327078832178504860417014138273903869028557115922083349103908848249656173906048619468498896278289769431190412804442043528758470072096893386461311165234882124964704402848285413595085442959286001062290108552398851344834097613275609066156740267029648313442914158872778895029325386711605377965476825885775046364026756271151144742254266803080479661221907794381362839453484733041662676493860512387926065086286457965381033256499036904131941202645563622870917661883972016604982829500254119345381848144535471359948077812053863103841363184530896992917112706493254828716615375059997550451242719532517816306050830657010734058248001202272845884346997127198648541757516552425591781375643759407183568631016339196172630944384988414746425589282127583187368384106333710173734382759064899112253413592279740438853810706022691695034918100771265748681960703832421970723372158162852724763465338277884876381752126684491023364945435411952924090425377595234203313300681600232610099644282395209334587887487434785522847472372835723061926341126294386805408143245652263345326775647974259004661359626439735306800881817616508182691623162192704997449341475159245488604550484287723604748262238597307194224841451094399484158360219037575338543009419802289757849781454044514491564842806301890898335689692987526577591255748429361473559042469816378390536937537876431127764765080212840200149730592993166276454160709900353627113669725738501595703181595917064621189463472634946695976049254303299914892985440895548989741786121740229601061513414051337446978321610863846664144521473721521278280724430846355062820047403338073215093334687456172067296502206267686613732296658422763665194807821217131411641296774176176906929981716192396409821617567323020515961908012211368491299916766392692384543384894140329238478130399673145553180084404124379811228190542116612766779232949647721774051446531914843851817710188008357899309888958236301075353960093535346049112158284182855012287811429767281379888133241064623966603293140321641447582474175756372837214748507329958897640475588366962011290974868061021213174053132128935338267988280091655658217415539685677165385527102703686134140853949795863756399672218673603031553022370088697051375595479425912657415774005053485725218179081627835524646105991001464768974579237506942066765584091069815430491614864176323648897969011973262375150944981971960341401681117974994244697437994903928846778023202464901254907068361764813890489485118791686311485415523955834853940172008784977272280493363242701836737698577254485517918095404101081109117581200641679611241586085456409380392438679136681193950972750331789078893428004742625486284931816306111293994512069687048563198051767064893925839831396892756287901976784398869002488889874889133284321976144422419407064257065866509768454993224875729091176965994948241753649777126814580541761767442655250119664935567074256575165733687091207796878854985865560592154149145842244211919109631993034765626454508315049084091186462046614393235716099432460071386924983293909082372238061210110023995697805178274778955403323637599735776345610264663337022343652540064029095544212665883586157310547752036207180032367229566966361152306450519153841079678156228224576139830005091937873802110559973327734384442319517076219546258076552659020582057056845012030112435619580378853391356617312599102182681013687390052658277562939982459003210188877632898249905007693565315111613608376525934852152006645809576653156668719141764690577024530340912814382232727703664199773974563918648115517392241040239518034281739543020779637721958814497246552939262719857799363395995234543227102078107899192010441866668148578570467303587827449677434957613827939537530675149118640243658063532374996810177479832870173542601213922387365618643244754201006746657973490448773526982426604346464718682230794977666013084544924872294878653614704668014177218779761244588039669646057424798075211233630171740573057443026632642247814049133794938960232625830470343607566101603820243386653774455432884466323223019685175797907802059456030925838179024487470317293441777263783153450644599739772834553183664618548105660585424929813112554181514513011582026388038839908049230640139902294311131064221298555373736038753438296530916985456930627539243842031316628598821326356878628931036208504256168980497978129735089108991459359314929426328641548993972721576787271808910185619259620702470325244270592458699746627960144389042004751166923718805781497494735381840440683975228763036777085806662953974341575992483730568228741205273421213490881989590894296584538695635025536168455490359487733028830315284363398683422689514966704524798523749991871377862846793746183762760785264019963863869864315815157403994194824087485497230102637467215097184234592029060886675940891635054509833927001492171816816363761252688280207724215254916304020425498134765393386842663752605425920852614128143249984206108577212798542081547424656323884581299124797742223373986750565314199017551107112064503835640606355366894967742815128353139920735140355695070489073924425364805669690059968042883820319833473093374272950268060484201960597221565803093109288720487454077883248354484362310403317110979314412079939192185522967807779608375608641986815799134765360688976057932337978348416961041859755976974580867927582432705803605280168711396958824270246407395943398557319066266647094417382550988816727821352500650796567759346071530410863009292469676157208070603269400414414706376377920661444369264069419203524930946762381648626446350901459841933162630656870777644253318769733068104752466147925344778864063111882527383034396011465620508777660280287050020381096750866994590503138120831992803157567579178395795147924289316556088419117657931956988818768686248661193664123030519105158362894478645200437313193790713164116032413058884974991879575225765161300719890676903853307291636645931047710862556367005620055001100081686104273141523381313837088290306498117444531860577726019202592565159538267606181908594265225664197400199344513515860111415637851436675383769741698596503647040678861143788125854389502042485908250911949934585214890465436169444407809425893771744837633403301510169290323587983385129628674803480009213856757047692740271916933874287545746680669861535346513800045346683671281438056697681662677375851797902946784577171977093967616401427646023981862052385526702391837919487534612255622540313047881269454389116587758146138730744917524847293828952886670004631707984520923497377867167174676095343487728945623168668276838498369063485499730826211827774787103631165853755287376852097013644678572630078164445806280152832170905770404688171786842388954663468785067636482610373077152501449905594622904108318758876351924678302529850733625882342320569623317027347167992811753062888351442602533157049975064652453672646367748188812308050847167248999627175511057758246303569485658348377374083006411830421058389368724601597841584288744562492426327517294022028155272270703299208964810328128208953342197733048302568038653986079111090063578708838868319193546274557927942651891337704602716212050399723062449107025720231944917234173536431493164283108249197347531433282791457302065455326976314396527329570612972506788756582334114031552196571016561563199334106179042232134041654986026623607209036472011665229570307733643766878979340225566476155584668241983848205340297584913926616816232789423988209051255841433423643213940809012809731018889775158351222064548488846835224824559981312552096066592686647956195536381617021137469416804954185869654127839329020102985654725122045341696839653341608529631904245398918556702992970891547934204176622552517838662608456129974809114921566383930994734597531195208193079585216190390299672200286886114268815700970498430904415307256649808587935082180058818758258497597257434879843671413619933903981961652812168941013083753536235829577172154706693810910713774557779980442523295572313947964481739853455539974922261651623984911628300384533451982235228609110984772039271042885175180262412442954753219884591710141769015154996504432228289362694639620409686501510487950472327872901453807415201027511899009898146255349322460632374353433651859945185170724186184301383348884995093833418183732850257662346304941066513821447800230331232099776713701088633246562702047895484375432973029267552977162015745498599797450381974689318230482837175904899230328802927094530024082827232628879844129834693653112140108752533660978719644658646278327524881039419069781583515920873026029288477538599562060671321041710003763745667033439913401880795332151245333170617590099356056507126010744021271616517357463427959048929085711273447360583131019451243735790810314126008144584269972207236478536124212563056395873690599328294815023985651659883158221400199123050895061613873965818263387688935063104717652698177040864143343004812861319679801676622303444470648688701273907094399684673917703488642426685043428354963263776831864600973197518101540779452661280857964941630033339479106630647260534576496993462807571194069132545325410043755745015980088022708059380265263535209688793697149885793442109030479847416858710565436186966271006411931334085254852883237220908489693991378802226591302798701126734831239159828361591764758349257665954326759626038989390978692458952191998722509743180678586501113522344095383327463958634661366071897242556817962818333878968987545161042668312693134503275205119788245803741039121980136164450351956997461868968291320005167879181921547154502915287807132826742443603217992997678122300416885915270979054743496246803548590686895167171736915438010317685249500476664358306298394524982774332775117112725172260832705606865329873486156613965535723048496394520048993189422327536780486741986725993973007790961954427086315565932356567280175781574650103298439568008740660182916886221716579832382415569952391095145045835555341437830786233679803555762234554795671355154548565357560604925230992100000400933276659425838126811339503349112143802678382466990484915182530678290048188945744810823091612486714462895741638093064747472355897908968457017831220845307090926820956216811891375218026999455135226665864908202958730419827779856445867107814336008028237615998735364671544201321522601887992719972940997367637299839432833331343595831359175509398886264937405661407005196316717122954763709327630863157372218233350140220102243759441061928098360085125548620137187312583693373547651302281777919113460714206584445704342790918312359636566963560556014509636803583881079259186021713679478807145614220863033451105922065703302263388207046383287264756776755570475432189178641508780516301065221294487031527620234385096648413243390760561264947663201533309153596405635166209469847899452718303824941311073510047054031997528806683447223976885790252156576594999076539700414082696616169038635062163235357447161674155036832940527291810170432249580020268764040307341988020833940036758888377140015305981702316697984516742045624468760691001177330799153824093627838296439693814150153901048778915688756667751505461071739721060626793059655834607862381070427726003307756905128184660615764592558966790673931806493844028412508463088636429788842085069980244515251475593580271583475151442198569838639420360631019065544217461561432716095237050662713146050929763709726120154747558960616331363732696434243114362954897237375740230213490852880405806406105867304656961881655268405979796762753544991825685157115828692323191037516513128229373455124275287746576943957369636117508252841718159966685645197993493702713839259621447191502373738138923336734065826197837143556061070922659940920940645816550632387176709216359595803104696755565002105400074116862742637828085065118749114360517899828810570928034700027174826847501901248808068501202742953780071519430595960763014923933918082680929421143820935095577560610813873127764755059694931148383561123047264706265221473786074080916167189818645814678177092650993536822411734723233319187530655393901971475991850134249817439691532398020678810085278106203581313290167817611792781794154862579892463690171326314693642319911271481035556258728305350120037987673739022353542692463550447151027015225241548746625289587212642154894573303748965486497495527581317351910718305634127767274123662889394708412267728320223971673791792891610128614073399337570735428846616424941993326240419822355971061534171736983395098322883458062556782821085970284072904665271194569631971165599826809840487277962362493496207565523386028019234518675880543797656020805564304457934964001069602257425831588093248119357876612544341324337686780756297967928003883343342375733472187705867776862760557355112537180098680025908020285455762073156952225810366802789677967249729393426222627933107460709366178488687137302052043338955473542677229911650042691576410002080509992111689479758420542180549856347636615315422685314552613839484634886351872737597615020681574796945503777551888065294637222442813074036211833587073272083610298554948522600860112058159487166636391171148405406301077262838895467101643377300695635299013285889890502986950531110360086966976022293119430760834648287067209627953376935554414561923997028670928653481226802079030054211536895821564738881644760786533038636863547638861915837921253745130207162478741343333213564928704585471160269720355397997714769465792661955195502761834616968332326764369973007833216311375533837083049602484459686303544754678500037400416058234680157770547809651618529996512307220062162204726091786440449857666997297536010032675538111972610693016694898364706153082718172765704650773622579665607750860555674670483387258821383007981248703725746282382738279696109317386810739574082454016201061461844866034247608416546054774617463620600721691403305627195464480304244230636754775797653921629418254463382077884157755011835967634234485952464558975876379604999401043275487835180825305535016000038093619060233169531973907613550441039366541748322440000980009202322226734673269925740063211141875746178409413276789884768401343271994927821712613200933522207289078832401302714358968749990887351808797685593556322663003734216583850638696021857218034110191375205873936940036851044383435635253566653063755237066870281135641989790757123097686039900285674685304619387056330180002762475180358312143617620279398301854419833464094731482548407799979732615794510169328867787058544108884022193401189382464304423017157238263897525021470012390285520011452995423456880181896694885836348520165681399020933303648418806750210265360340739864704542539048321540321966240390439187311442690771292640055193659474207338901598271532102081012455353192135533187202536105083196225757720708516387458254321440471137340283616620031658923274915556334043760381531116369267298469355953827264940641410869062289191978906948576509213866703472280290992962958210818664697263695371056053673431663555018491722371325209245890305591036707873725572244503515239383418142708213141512075669359192734494085142089466072918474462892724545308354747470284609887401074965483959563662633493241247259886259995232414301536730161140223890149972351439299314178619717333953658383332920433812758699691943850977259590229645326820909898849604235447961360267055262411026110624896928259234173415135686286241347175022651630869244441693703097989551570818991058167263201957871194981629931364028164448460448243577692738481918741651246718507538677993571748219145690842170401978984870620964054476925299074448597235149865347760960203086601623582172465584180239610345457972078062528986212898687139610339843486917967528936185819754939258478318606601588453041557274721594759591582952414094108493741146064180757977975054365867344841988423535803548787085257550289110293462234719189983715176517700729653309733146910109094129825565112590906374100385439585885371083183351034571705482757645826722113801185922439985219344595426411779033587747436481602192569562621486933593591607111589269498875082012350098659566842723868114264904455667222059097855650873728440072167414027584978968223367001608545493840232106400549107147041618865502063650243867500419536383247879598300708086471697478174559371984367364675883677611587377783472560269376223667084966588356995261702342086142722282142200153088536831634058348685813725076744138820968698247466722664606820199030386088883274406472574912405854492941688816575218475482807565076438856059648055237712637884124523939630595853771756373423838077120850703807086455520668928864668339959787247553738434676525596394184446671686808491529734595872494562407992015240204589188059408189657854459167351500944829052632791916781011666431687502023401110536821071023104376611281613794010761120896002137628344404385240142080335025295487202235041777760805229765897642216735710776662909619585514263196612543881239774978186498042861202725195923153891819621762628557735717509639342387720941799986757961223800564434580737217231467668846411533783356438168781434231765490466753261639495768182169146827874120675081014962247934953161329490462850520662023497122157187601783652166387532546189219712701146970766960397359500655216922275270515284907359608638033477474832942898953349330493894499048589253679146255805407844196896748653070908180519410241586705765782906101619681739365207166293202408325332049817613232956288781620168635771838147198338371711725980934868669138367668145570854031317516882063685011734317940285297359326613545791367984147885125826098035128828302256686369266250666285943161855330830851534772832164966324461296524189897412750962744617506915532481342863727114201424910684223057802497220205239947720334893882779179944594545749417004459681520648366043843652225230657889819698766517163973096501330373402421734800242722659394953450378814560887974707181892161694158267218307603826584465363035096991438639300292168051934647734505682149800121410725108493239314676678773857113787843963587178717569803031899942558794633785385110233955661488729603325644610874028381221008986780468086029105834254059766710838311604056567825656256768382164158585900678967256003630422651741738802898119794805864401983105292345498183200840130017042494847773901926651676253729273154527382523588522725592430133152887619751058734337493314328323300712712844376755037435165884013811776690570587933011649873671225101196579677422691998085467417293860957624987933455310198879141722689912676782270191199713116296070081451546320797780103476577955431543698802398462013259085164847284448096254730414280192932856042796439846244316846473601434760973914088147862170893798828056034080261244272079951236219952155476915726286714579374651195540780571163684488610960147422256535944587608416278782423767177597894258414105012860508550438182498801210907801726643133460200456560081115260120880210344878931993989143252926166863526853043878574663816152263841009939163307513633147100757124999596143864933276275169310870348679285802199580664212423841930631092539063707615530358779150671013659081336454012601538150599171714251563861489963637987986293644544540603039870182022114155227034879081236697098103467518671383779009527340600551864606282284261071110137002898969392735615109902163782871157910540362421877110298318456118048598498546890989003921050621183769938924618630943937968365817692188435085410592661965977150168009834019750641709837728115333172640768022525767942034216088725596305181997424095579143208389275605433420394570196601568076919258670531333609390018222536468604267360879717939760502144180851691238354605359972470751009696446650436053632114389727035489925393454415625701209387804923166347042949480465584300824087101237478132207091342709172266721563605424907117940610211702021153335008565441650656122722801770548752966240271498901177334584680085419405645500524934752711252321570805351250301824863150818378611649521277730173201006996105170889766466788503731518140494248843903231265260843693993527305055638823292704560465879447864233819757535234823616322181686652576605227886022376835740472590572544386818116484409890260941009444791226762880323448439795101525460010364286349778926354058358776514389300871519682540340135878948496635342204103037273721863166879594809457264778309626657060932044207500881924728474243756019022176749935127223926069872667333651539001414715854497045284698889861987496411439088549392800634298781823431523225375330125790303911684066436926889516933117002720620321732585801297299178315677071281374262486472966069116182691284353474452543203737794051234765905682750875996272658816572280786926090757054250529108101816850199205124903962285998062829071826340168530376057741649894659258591140157124653750757377315443436766112690497991748956169365792154816589510011554964128778477664048501866493646034368800474911871082586426167426109277507001302855372590240057010285375794497432749637178884577594683187197276198628384521429035776626363755955111470539154407514574539996848709422852401169814664625905042130310613117914568862821737044954481899922406080718488154709285946247145933043662067507242596233975301006889624215921081722653295882115373016112547544271467832516524674272970506464402737350163012510669001991357022012267018509572047755533947076672020940299643469261243544294078592455386588535733207957479899836957822856489578533302578024094892356447411243023555070685291721612610484337125994637420270884855536869369053832657018301344603775261259988608204611682770424790705297591238822209665779011873248870217010548052886483629778134614067696044443726658333947639068575530314073068857455473331692002909215618940677537897558368096230890220003491216780319828905675297075162483444174884594954298424019331523875879873796714259442037735973966404009925827380299125495196584295018065828166640617428077924135156620852719276329411486671875759864550705467019782253048842617326328306343677882225861154438613509246112485602192031746453216992423587793597019918443498279350832393451254351106094304733811870947021606629269038338071843083726530047333177689519539823528473631415375069399983630171222783726196296225309601635835054904570209270372171989315514040032165228207267807285751812603945280045290341554029045940672288795639197163429607572132446677795315330903745195332404946198468692087711222846459661401830208976278259254727981744457989031709859751017794255847228123173015212523551074164858378378204899496026491965390064448941409111897298965741616906240358073847378769307278320568735379534327963473901919744121882164239954371902708822628632987936574865978445049254757921337925870425390160884825201318235260655375420146013393762958703110182548574610545540870149952728752056755143104918347036914089567485691601274204411418160613547703784193074408807533430079343750567354255792439998882668612125790501794142042528716018600058172629314210052008182044154644587331528730530253663329731400768472835832846620033955151438262417948683179312307666754964870297209436335897857505992988104991449014062040881141020051986771683186127040335884380340625644813348851947731556766598531111548902355786613730847528998416433324242867569828335685907943737354762285191425541950796713782095762465869328268163472780524794692614843273669903446546007460684217657067765281925855547191123351856805796321913158183246961863866096150713923308541229896902454732246410928676106120304308942269880047099302719358897522523074829067748988164912103295607475979182340425242521858965361490835555159854861914979390794444029253713806446898037970700139634256656207350015516661782198143288413247013454457424604263183042170506827842596259794688948272074115820968354166034397738836647208678187214253233341802350344449613997346737283699957853949886173265539802410730279988844520218849867846927357790533656930301133999164335654759546985304281066840344557662745461381386951116675841387923789722870627603718498738305844162740052537767444314345111938579588111318590572000314716549895119052319783755678105936583396626100138302797813078155411578995956757169629274144734333903930361800177908367959951773458048497264704698842810599327971385370508063940852333420995327077216309863823573554339974539884669357581170181035723247331244193173251945132885672819656706400864665416026242890226103486668791740180950492289932284213786878497980024384753237241260286864967119040213528780682438953658245691898844310638613208256455299586500747148930276589463796457066749126547381433230950329908912304200381718022185071765459339557243062057736182480218497265595864179990058632548239280813466597700011937480103750098470309070550147874116983940569476811875211089372946787924486495862894479722351619710810209633981576993801407511750290455187974270471338193007778221104332142164248963279258311180019171895286239136151859368178666542520265215844983377308495591459128112302606973890868249838301102340579921219623568430936515385925411762680776628068484243947798734778827522632902697436956732291485707045811052327399292602592300172352110030767342227666338230923192632292273975483020672993267232359566734996321404418555001999584636608010026997242783429940048273414608108796693584535822836057464557096053885222586586256396470088144703617395573957589067117709722347095205834285425666447054464981703785403053770851290745713437489510380229309974707726393222426216217781535123422808103608755189185459502305473615127776042462458236640585711765372964294693811025669905666004953230554408464247629484121512366936297520173455486495527629204285112871008775547459619393836331024474243750818076270624228445367057164404265959147203206774607407831822758418755113496089643390217918807991438878484743266927515836646363528471831170885460285597722710782579380176245140608510075377444204424393605705346184348180729937374985518117163974137392562405688185587750827282776769900035074071881929092786794422514677571485491559835362653208963639420796127566236744038474393616559959412297968603741458868477874834218995216242623453551773853124087751957148371316143571236108589245582975923244171753228749768589034319104029705937582124351102966904489538057653733252186463945033367355368353543864283882339165101720835488371244971886198224375072107273065705325443008660703985888196648271856847818613386522026039361388840822139920128118352036502597395271603540055190842504402775563498074303015783838286069492348899416081481756925285259078908840744212846524470239810326800552458057914606491379618053944423663283841089430052777128865006089594290822750878795706239302821987880434706301250043965073163370149387097814021375555010793650543530302298323810496339641940619964541100361713068805128217508903435462220452651610609362304510626072535591471475968957646905417705417947844394395588736662557651951442271074020114665486178238873954542025135053262610407424740933808758741306524331787990933851183350794725782758742235577941601328856718943695094494458739097272063794905851039955514171828654554134384336062542958675150749689170789037326769257093551053061774382875956429801191506170860224541529319566583910648077471721297209180779564620064574330454589544200691370889307350728034294853437613988697606345886273804810640990266832404237661702444652171680819195456896568885648740098614643496718228041235216812521054797660604768806181787096032461875888751500169633395289136294446868457860909103299037876762688866177161869571335281453630237283844296698172056903724076973554145290798887207833794612540996517149220959342671361773251685164500179241684131890886610511361418945996277658866821751250870092243372373134693112467853980750933559767009942471605964300577744929969649494790818003546690993625681301302827213980795598398263170191597143637907566585375314898543014109700922314137510806893199314956932911392274265633709987726477815368600715038614629918203774549861762178646149719097411210947511253117982546283331982012864108596747036154030579426220114556786636201681059155177893879226666848604167726726333355975249960801182080456776498514386066831511485435385406145328968162491236783994629046298729615275781843072038375171216910401452443396572451167440169923610137985543795043149418327272637358793098708815975998738633780253030000656657336054530533314487544813920846414112214498277173644923730233068368748510418637688555154379840643712781926260876191491624718460993563214926717843813997474721998083034727139560848185845452578069646576295537914068275737838194922576295510027650780970537226245540213446600110659384551266654604485958376909215517904804046684014464213253149705039397691200710799767969577827754680175929143289131654274062979422831939645338890069834248196532807465963205932342647345688846640962872507534475941897055144998460099697826240363891354760520375716729690239745874048317386651770045048763507429861828296023351401007494344870485139293014810967662668395777198302257608491514191136980314831111280832465130096091882809691574110093391100525861502647301514040416955210442181804960939126875474143055626775150613761501695124729119187682904068789864567931443395097059615187137664071174422321476405536815319358389374629764568429240660518465136132496375947654432841044534046102323618338071392056057349863976253977169973409246316572642581555637263638197026148807110304218951504442924342446842787569461140331743726233643342712770521002661104754459440028580519141312487674641955163493310791725521374136753117949763456581334264905284407458790728084540864304481469115745964086297731495236887897182049597022860063538337895492678173232041800164037456028368721743110841698177242895070636286535539657479228587126226622578808438203271537233227251793728822503600843122908843714172928829910839328034955398621142797199732185617406634081898182888583720386946081707244024999515165656881791549025077081554051386169156262914599655691065933062432475158325315353115111005013039130383836030234830863109625977282450605330433830027298035058035059700436760163500969470674532679963549139773951971548775094042891802934527479740645924207828306535165935264836324142869561381031785969289958688259170015800514353074514918774952048400558764900090489572754061263724065323050816432036929565122229757131383113555628484189801693390691843312924130804431901456766694932468543649355163122650282906813862155741039139796009152313851258862533540807775069662726231232381373523551650613108120481004325617678258857129161758880355471658547990032138124187194606920743971666828298787131194177478341862981952385888491261765654103346679297375919808916936249650880285842611177507831629997759390117154512727584056559791352389729488244257338462665192232182165783049539866058657292635789903040310332992479344100184858501495503675468992235023576439540924577798907164761100971702493397383370197483876519515783347795429574206671740795974552078406526805197499556126783535588548225027441181314613055251790095037052070551244348516764371241358333866605294155171781219322839009442136322143869334681476741809472277483626687006754308735680298014056460080733909675146164856848731814210943177471009380432367547977012322856091040365882788243723614153073325622549726799415991789090610975496850947208476833087157517616051935786583236424183136335477931086775190694747004606120868753690598504019139842448191044202568192862459380147111191287919605441891890713687849569951986275477822320269777715179888909420318886560738419422335299041370823912964187153496169850475766111302304663809209791539172525902776201013244913819863366788961309852124436902166395535617353122194669493939754075726302541562078593175166510831660811275464651334207057596440808431296866932784014938113481531118310633340636067932635961518509904865008544539187707399125919527677294082854818477176138772025962391451722364409116911252240790832426140052429517557177545259515233914157767735249371560628276762569995215381933258623890026782002536653521927791927014227500505925937154281564353347445107736301638661465479717594424001429503331701069473498686844470542746536006230826210590410723844875302290350362817096120509225678056660969183232396877831366066870904108860175682604466703628874125798429679967087080396332702582510231787847759568385111985665303039657424201848282458113555607086256623679323566180471774231407919897857403412605571908760288166427033682103195179995782818482234173776062111988025695425827542403503362531359843108219452430859663183415877021277771951108717427396911916294096446355687589949777783278730349459151324079556007508775798995472258499933884317323968346421336976263630922017474751093056685088924426798342169177478768945026547599520584333526352783217798376088036397827693406884112015960769067766729788307417958991037157779401621001596113134108050089443029574952752396738838824558302607359928236347860603030792891800770787955042874072620604402030930650292324371820557922493131263669833546615866138067939484372639893694406384693729009793292404992329881387934201833135532889970160846718690001592147679637440562290890679088023780273104617605194611035777738753068971068330064988442812639906504180480201353936964592492302777483166206792466946685368069711863009525336042441891824588918403533691040567658897675957183864351997629000745715535678204955037911318210861752962695497622958759459695227600333666983076418852975211764079515015369001369441605818261245075611376229912240039021180931406356120957465879314929215700452387012651740200379132603516443245013658279885977150979825380099541450655849046892510473979907703405222663277283490654788847096896364043070145806628996073021500802828733151228491202948551163433510053954506334726496733766393987215584346693333557181542390112305662229664275378802393227669184250921388581723930646345972680819575729918037178653609736556376655683610148274757081806823134796705076487163018699009877803036418872095051440677297669514985136303114591731782402663715211155695902015718092444890424138666351284976409437909104933255943015995384448490938270916308771300897344279553709536014207468662556792487387856776150256046647185384475275599993045901088567555037893126656240657028365062852137029950370945453196812721068084735075054317958066808368664572652955303955080620445280358475511594252193947526535842098301831995215294898584920019479140259462756439090318254631646001317444730240039148611866823407594768441730835332987194385058754511541175599370719429592418938840428152372912746759511745004641271588452358427561280985165142689345631051199649886299104037448204338607968929171855868429386731896838859170409989297082214080006854230835590691273009399210519034137735569901331421468950800195245230016779765582581744258432247605497945932275036355011239585527824838713647019459777854203477999715851597228252556510717239547883369942671408501200918038180649101353819360428917784351091490611375250522153506757979991873009937371940120348937746436652416757384419997445526529027978919673290710749310956542533724264154292150056311370043844840833007365581779239162374754814636237676797720600381181589746956546606026747099302601307750098662935124811000148876074237227232821762790264848256473982122225735914311281380896156896983500650422005423159789611528301074424503710435744731359570977851256828649277539349719883885688193869030550808897381679103009999737088737789506146673967011410034133660015810012054013669324230901901198832401517670320440324631546788851478670033013096089919909793938656212923036083299469123258435805773785160312274240185856177394725674583887327409211131712239264727889615390026355076893669418133101398215450936015905585822811011555717717391433980393617638147949897397355687516036586415068012820903294284675138000813340877965767846060615105093540409257750133851624044666973694977033910417662495748348926014255710433732338163528937009053905817441166252470151934406375606131835350901818781012268227961027534560149737786711106076302974457758677757641337537260365116260682553982679367853286478800325788214560910193358534278103228789243680657576317073261766792411579986229001170275230212444852996837666237028256375980228077223821565648758255892778987552291447209049881119233217623032878419905777779077353974192643528412415687981811945285101733814973420217223381939252315131535684034793397288433050609902674890789863511712142963639389056675283108451742616803582768180879382985342465341780078671699079924162415596478145035646811161581525320243263971762849392719841538484637160648813287488601966081482440741952360602931392418566557122724806369985556101658640276251478527928236386602687633255379556747278891902161331233741428425885430552238827802107865600658933662461363691840730041662665696668820696208412531202519848071667972948862984176784875255910536414600269416317981012081202747380789528312337494391660600523319179607161679253357929572010302696706832143221697353700398947544579719772847718159858358943332187389655655180453115073028601838174730650008343998646624841856221447796556009833263451558660628410303303294641596220897604712823796635174522156741762482294616970783821196718458454350031987574998594724420231317061896600639456888020040619826214340447516404490626713692342622990659626413127552176417047982286421009602477708788216915348776400855728372368624889771312467265938624971027062016611515819656466677965206004047571670342816175201262269102532561829859155524060738328095758580625770404977379956828335382104779761141326483789761204998575485726175781364410956089421960902936398357754965432954423807834475403315460920020633635959489486012821613005805553853983550267869855943930027354312488860805841577720177240595756023003597129371608502626818513026296826353249093727856082350268546241335319937279378947881740982097838039293454813147401016440989484061143077725898247908531543096037116354704129172307137146495882839562460484517754886764287026884830301812068142169960130952847352097453655267866895761954482443640707487616902884057659633751578830728827583874264215105068889310709161934593170778785561191518403275955585624426459762983133029977588446253547267785853429683568834101150228670534546623475910637533782678600563252431691133832446219300859905195517646858434526792872317082880705526403892348125788018805414299437902112192467778713219468088941537443181028962847007639905305742633565182963681523985065828876659537472714972455418554063736215436172530213735351212844676325248078597880436692179184174554221464934685393558953792659422900545301360717632398848373999306320455945194963184903881774172371629218685981964090578153334703540660516586984767351558225135908428781962426072069990032623283290686188069539132229314555920877878271777235825519657801119223414777634682827494302414256295240293016024180911857795340306423064314491492527683593594648263771373005327865645185179488703706574995307644260728909099283847799324417240298643551172912908142651449880062659993396522320145555568555010823129284358768578991642381879637209715260766295791499818416027516906827480907088884004564123011291693051599532583192596189847107428896211800655489850018870151361372274486578396912307511346507921957730497179569086855170312571254513506064814486779266693729168894245002033577974613021550302208283279250467067832273239796508504643967181369782027541624102309731292309816830412206290798224412940393033805486157761755266923781060062849099567370524653497164650112461978796568550165380675693589915932461634355201645240412787088346027368838837836995596426071621773253122368568030009767456529991413812581692956808242415599131677447049188892430632053473361583923468197137218492379464726358081413054258582159165564907500355879534974543665058637520154897939735463262184934774446564664731152215525922112500934283136498020489098918616642099269821443893450515177088059420732204054446985361695799629027553167522126315946229173900324139518634401353776941881886044095529655294984403853456762873828129536756452233001176606698676418668805032511326562991193685736348396656644273481264550928172960515786188046324318360968454657512457725506070303438648843855200788385237854261948342185512805599298675437995860760299930132410861465448128269542646227644664660252002385008372198278445132162400518942126469053935688025903077625963614111277859099811483636140260351748977270421899361723019845156074687495446792080846915243559269997813277667550081265044156118018933467193814254154793869904229284209335179640151653319162649267588187321377245048653527473738554543154626587371332573854928592035827384442689934965792657992153124877454235988081496161261541467784464642318632055452641137273074094442254076185500378835390181536684288624299675431771915895395383170625061520631379858952880731559201173431500245195239653488832482021197561214444439365644029393369825342966374367627100374467403083639494356348082303791871659145245143715088867433981822420907280068919618797856283076765613703534981741343682819464002739084798271923688415251769191245449576493204658717293702624865797858034993648927556129776934180065877194837494442020709383109025565722759666282279743718263114338921006505245528385994392031758842769254482331177675243059281566157214537016691528995859361272785064766807171741000945784672406853530198950252675229222374688804012455011675479343941139087906492918867134759504316165204095193681743123739543668717413382374919509959703422582725276132324744805141412767544635719379613087828204280906886477500418474855189453165353930503863054290675696557591328802068434993956399617548717319639046395521632991755252457052593388127419039548772438714605057500175866647859992505170451133911097568075248853871802728995007357133526412876349516012778650312516752918116750932326881930068702246418660468884909611996945220030969675027378162763175524323132601720167151586227028217884083880368594325531939932661502936094088538835685098672184984769990399461394425081425534061827228084853233396930566020505745889229030034345861039740666641339774503568435834155094701899743220662771108905536576180790654365673798345720661727896943437948526194348550098273428920461999729482889477143974339154067251664232461285461800475748640975694900090804643161724306132726331447368329291742851211049578280458221440389711897142807270918592862972177912885482277202850848342052826490615647225995227721007048054947853228026928429368321183034338950109733162773288706365425159649726294602270165088490680557244136580865969765005554393054040915420005996750927238031553579176962257597547447440090413084981359337129702525893417817713004556443124170130883044871177253172532797972313069960113868087855793097702789578683208796696463519060863990901073020225332778983184314231608853232401341606337941663453682119250451782678466423656505840167767158095107788578967213105948983763499745257014842531990993462939637400375345127310447274364363128063515109972200519496407656395030467423521924837918946906152755950465439886411371707580799990683305814224744359191405514606521843084075151995889681753682142344863787640919471768924759143308415995557391958996571095927695944639377866317952638160771631533450835036438780492469767193835481530866898267648475729266905626861784245902891567559154690141220894837590185218703471898601892722476171465836948981617674131693120759409985538978013026761951194841978506361671601850671197442978390844228392512061053234785070100263386801716710903436806409207815025311648191717192771631402375247894067559194587644444899207825394101737608465756787541844262864445151062101207762555753835495575970728707289800901392529782409182725930121575347944677163835786876336454872384058302971184031663717602679031252940061119259620168514960626472830528277688515587044400230295145828294688142925006859458272772793326825206874247236119504838076065804194444638982677599826961083237693584472819544305648910516708303381286459884306020822554098409615908785521120227057826284757793221018339887836651297399918951921748694903486019105897572496414609186173613698903175004941402431181244950937506765522548882570710725158722495984791682671260971792481535566924615706887016350227639444952755531915448013038801234324415060318518017477399150443029163939642522858869398286429885808602318592491373707665170076255638261737492047713838538989931541941368170365445995694974404704093044507522820894055151843028409434176146239586556915149995188358192587487474791197088523514971403994857922550308379770272896114950135999521912270761200890779188670113506882145619603647530236611377030447650075082186561101787663345865597213847121846764120721983681395728706945418215891529354373254804241396067897049784322881156177738321382873904359162740116923281537751445843815672578275633272907167199923555176533626720863957355302037733569363093536194837645083520758717051974110557307809885155851838924038824772049730808510136316966019211033115984007804588362186400824799704808370539965842490747562567454242831208564251861371538953840788173911350940271265948415149658986520367686329718661451389513318624256397799821542725665451812782741079574968323462831263540851491482692491602767242232403503202046682203757892560452667602600880915342640181257934294080848578465841461884785041723635863111014070617908894197357231910485050837989332317256192891519665609900137203394627746239020624214747908199149928104485036311409423427488533715379723346522296778933317786203116416912577403308426308431357973540958031946700154953742183069689480323906747585151422161169870485121815246084027380255866342167985868798931345307862029239092884723329374402760191715469234682527400351884484621624618957474998239423860804988045589705429670080498031454565167115146311195568830555194376257048225285762109417475649548153995420660057487870892049751183431279858993283130290911613565452424246657871486475487027975100110584301574097760741572432572132082925858554161378474795269806479940125210722866485557140586521935102446388889351057134532903523067634565330401310638870247928088147128423750236575544808147030110074502058223947176731046115053371177286370551570059547587161176560271606143702610844596862299955767047286608890340669538504520310149672269862034362076654019923060137319642833713436089530151561708697038419708360499892926956454334963892889219408344440462549365497719094726236668937096054949117131536948246614203220847080429325262966865227618216043181832580275358041189764815284281002725582059455332172530352841277028145520669209589731278692861006826819086864537006015444663900071695246206650407777921504982273774998395442579425530999160452320784362238686601055123718108779506201794545674564200515285964023491608531080082764711241990760312833130088711088427710609666566272251639338875216411181861565425552252469755352689330742076971302118594736238078466725006227237289354465912843104844956124107952713553080112490916460320238235611288150727667198467366423058332386073879675739737273736246341513455459973857969520145218538263051798607524928766306398358030877038602090359211920781659859561965303321471157045099994279724517135992714020738740213816423632563166566279400068807065268576470362097402414205608134523474976385426355831420198038514814370185128892542186246793610301479802730565121294038475526742296976681004069148057114137277744070417014641382178579228672920811230212654617473410464929956309173087751163585791130288076397537335662247189461301733835362903384847995091315349234855731788643695621240219916406669050954417679142854986388440728433054527546545988195425147036488859018889722156633776192126522474278061634751292097036072787253243776203322317781916875485593820890640419333711719087183741897630586400270247693448675760454792995650882913443631662552320921682844860473193666557573068391251207950311706712099963090185721202607372845962813415290735844480416135938528490742240381932057246511706915216382402872092762708335763587235837169053234266790485675643494393060608090238172965489107075448436766994421000509796666274052352149020793624951178627137679349681351143728539224206819910966525981712393228168768632204246689708641173540440891377372063268152913683775113824194066201856309445770856726557762845875735258676138500271329457919783372320442885586515327876738581433804948689419177102890190651172185590188246657365469759412421414008525799770035635056755246230591906921619179184382249390108879158843655032395601352687891893643294419785688160833882066512659619433582187675751297945795087585123487911033641953780340235280669622242406446361781820046834378070288184471050018754359770210044806271594022511245936103945424676681752422009092693974586952411744776364292207910107722476472912031488030281726447767028397309909737278725363801647093987864842139824369725344734181782090647947703000904863926123754108868245369089169922390663624869991855200645895334785918758560074401093946979521922366280804440003702063581113894709149379095334985747511656683957195736707400972403682365001725016731748773319852849250080700479454668785720339480570292687720258125760752219406145869208545115365928521943032384661246810713677553501960868118272953740336446848469154060239292371408943127312567607254730609129531098769807971255525097480540578042255168816484680156550409675829759679851704591496355825112746139694466631202669932434072157361406278140616931453020986138223754575236000830107825112803475690693653011735630544372172319199351736029908898845965184925071562629086767289083339497860033493638046499459011516766424908186134859157898755122258323970269708897618524372699355937605812526990378159204998966471518274964278821577031713577617099187415296685325005156780362846783338129821789365032257701566259568842903204102274974203253056788665583946420231449714973334112854389546432358624123355896298153458522187710632241836745072161831683086791053497391380789168263632717797619623112153550293226355374518700680995913379532306320124742676539258210859498956487894615471264459316001753240030184030765600026036057878480869455515488724463369080499583075717878223155742749974280211155119161765541119545803330275082323778555697652824419668754268643500801098637514832452974663463080439073216470203364135023646703893280475979670176213493952745104818713925094885559315925828193972525859779652112333114494187177950280028204521456024363811103776802472952746203498458055991621386871874850137057207169478304060763725146213879566146217822265220915397339384175424241499350797369653369997514787163448165300597939167468871699528661280514699373102552747972287197564217757537098413377516021265559635865004835650744469206731134380206312078092373751663666774588696507568220258055325887662998475033295056076395051999661838953478783107035079499766675760728806405861617164084651890692068393526271183946863660603250444815533283136688545890589297009808398129242183464281023616617577091837878603878877672748198936221388462980064081458424495784899092433746382309306203988138387275673280826001158625016215643192212726903456996276805554610533028277694928998897602797301353389760919116476108737943749731080883783265030688406839667264171344662756565804104269899164725788652391248419073833583648133128973782780579186529730287941017853871521134952658561688606376860380602101098998259468065088682183778052463256417535382829631100676163070565901708920770365789087123151292073447366719933516812635864421974334471926858323375152748801092727932968933584551120945354608831495111107450120518867983175983357836903365518797085020821237358247153763852045747450359348981286726582874543482340205698852904909097723546020378781786129671386726985976632652454791195587539362677451054998227013159740980418425916133934131370300495714358847700105918804231405488598248727047686051641511901188988073500997822642851184971581848311763937514827223262223245743711149592700018964954996073513865256481311608679955183931484155012520861631791819423260536540804517503659506631355071567339713969019780759302243570752655593422801189764612180530316686703191080698587760772395679125733672134440082512801521314492601492248311770944888196014430635697682038685462598020743708648374653604958403860034457348759828662239815669218203141524156963506202781064372062433582527076389906945583267939697684680318082646542320619011100102522318342872602843217875423903597277684754415227118716693283006340534487368272942839348596555154653270240541775583448244412421679886662114996135540092078155669685714489124540322641181356890962573042038657427675402071158499117194260190640307894282997966504123966444333529035743913926715750141777623212953287845385326502693819051641387602100634898914825815361279196343198129992475500993226618686663099705318770728204112518559926061286277005496567819856483218661971351416342031939145740961702189407535836198373155125857154884798476907814477206073582232821033790636622831974548092661784586806598021530716463822601458393270453133734994349252975291605450836409554391608073157876674111497169111619722857632269318020553720862830912141932939962203354468545837311066682319087596468026310466051499983779553302822598787066704000819507627910657853966861190740791803798696471257072092516546004959175306556430865574857060948798168759741345673068786635459135695288927334914680422740635134259287723457563990012393918984120826216472633098970148763571323737993675307093076022427707798981123435346739652821175109121019034767582797602625443825521852980266887655756954657077550276116807715071763656507672853869552826650239719169046393593991515641740928219334015561349806008727894634386857046135336910067049245513865613524682843872641193756069680984023652278125588720398249825918429966937682572647048272956397191976862526407260147754951164171476576394620804443936618436738981226989323121447228295618289248127535608807094285069763286745579384103832917907475569520632948957252409170939478156690190614846497512203093081788915731368201602354996234125212948820983384093101713224884817938135375779688836317500109275929540547466946291890446169371782595744142375602005123986004222517351148795423626960313140492815470414658670558691599534447363475899830947117609595669917975326890868649303853807980758470961117429563203660504231058766072308023461160185201762550522769677300278747718278926223718929880882825521877685154990106205865321121688337806770087009478336246035518262932356785913405544960843044955638575498748798577640289660275901539314418651120929372392212722785133097035164277175692554018179601646337474216215891301868580568594885718601296880872192552705512961015921124401753151932416058339627423695436130371599984935969086488127100564895465735728674276330924693336530375525808297376872411263256730578624785253585836760189856634341021854618920491870999898433712024199238172636753160582580177690666360915044989202411871414598760572978760414000028904635688195514002304843449133459638460816394638154272023295044240721572214263925847127836079672700573573958705429129348582490949708575694519483657509084175969056300836483907104542020408042967943492172077221040479217485456442739176535515369028518903465952374887410571238955520822901108300767238847059911713928454781026218022201838940425947856866654085175493151159092932744959062893457096033537701201079761025586002213061494620250375238537455491716972256896331274626207003149942894798915170357959025737573718130417163334837452919745721341006585999794609293767941109038925469870296128716341633549564945846962859279548222667279809884322373444557565785637789142974585349586861421586835998934754708420238211778421351905076293926934247586653481223229144080866622488262421824297385772741788262131883523259104723427565436818281052110772861535120534171099286339032502333069641598259309929938373715858851592755694139982699206800901461243514510176465123760750237977547844410062636032787381418538097256788125898404103078844281378644423411852102758409735403601106838288586061736907879798522591307550098716243024298397352919734308787620483847505982612994987294840289054037884939426561891447915859714974936104183962851177004117686582444357083468871024473434253971569119607688720063810179601808471314484451796158861741030444878769923143410245673995044930685189756021102494424124691515353986955991525158742651329462165900891849616333286732608595919322636606362183404730671221523702160717584678497635896919473948850656853869754849313495804926990349584810611169793729189175531696063427393695912224204979597712767310313158523752869183631798037726350913142133420197722889049276991161319317787557334380415138783391766330883007745677699178941423302086341629736068795566794984176149428280404739267274123231391249210316216407906558677957833944776815737114923596521083520659434149844572177629570237360017900512527206036524078176299081829044930765050649255051117557644699925445796941486625598479789831143335984165836887048123369712977491778475134062103592651601445424167804547943949753972473768093576064701970187462775482396491054651331492415812541193115905808619335741399412466104580559785720351051409088463114166941900135560747458906846753731480336418347346065318542387225225610908021957855791912033060391634239398116403905484899182290860898483294788416816698855175978233229943465187125486924379239013745439479719229661184760511516705425108896457110164710030219085704857286804811188376157379923045602803812324239666549306849940580013544542551565255181954163216461070386780651452339509116739828633814363764031834295037942746560585056800701709371750025549170861046032116717904926370367141891710876820160584657903985867022020886284661536044934440568628593384365401127337081621476200969270762161678901519253140195727391168291069443356020460740302380459640087484186593864319560490467828573325723313896013035259938720449674298923134599058551442658903321670950775110350272669716973011250329233606659277293270106846902776626885281854985597551071510116057275189547967564097516406548910933275254115419084488108300652624724300344431512298902542527190243933539628664954092485756121671350274097125679547035716835170162606029121551389356652884436700853330298727678860055262389307724577302892587923301944568924572666246153976779321002775662802005955921626389730382560911804462290137764810049912358686333856997733683992753175783616909212227826693424057226140910533183938456758082680866363336999822044778452981163835101107501631933286396509243704497484901818502871527626342356449587502613703727202997570999869542959602400320329913283017881820666591236392263194740662435788913864487016429706461037262309018903490082866902254419114237186749614812563722622436474116436965593009174734836502202036942388378941924647403636858822495062550540887194347829491319470917147647344545820467318000686654557400654178780652299682215739981957010053395122604141748974736190581381173318311295484328360582466169483409471493890983333560634852309341734412770312061624921995981619752465258466792699498610640066340750067330690979906469585884416237231598660301180933120587210266239930454864594074504188314873096164756275389851131169759684920945969640072793355695171084571345743583269572413448207040342672344529025261377157333433879072239637406860644606448928032188219899726025584522183855540410985821778343958591815940781740727494136472803999670751291256701041510855516436128942423310336780402980655444273655785512169715094106245688127829390681108889431251138155590892272171160941022534097043931737458016914431813285122931846883350641925918637996282443272372671293618469436087874108079773055270602688388076846668092772815022118490345078088410732114644623713012803543189659179113086194394918681315401500851303507075426707392772555487110541638248106715069639541321409425634037080683473413434385437042876463829526060430228646322500413647883583621440653656257351502198297613395996173305028522200534654755482531912013612436089723368190863636336520992882985295463497423962711465461243068656735371031902993116314111086939298245557587525688578325058659873129548196453134072524313367542751731525005578944556004921732228680833688072619355073995607260398437567243114265007486923942519798466300450032267320255668772248059029489452966619332500914738920382472982807311105363657780667638791793104947924721437818326643061372162349874132686186419933511997289090741928948958123652364127999326970978369871787891854773654776012696927155050218086877847206390396275904645231743156924394473510082370272473014255153435238326270002645570590202215116073559630918482461766313714570788646450957440509318751966261675456809937765784913643266106848068313043702843886229322268692303535184992975632903028668386003930749855198675311219122011433035446866820935994161336850449077593616228556488379917559221372520931060232065859423924406450870206880605290055290936680707886154948778981453107034398417351135121576191462129161509270347525801483401703693594659552745602039687883180879237166521999895971228956430241300525887625950950825694263153021780444465462968388275958165945697160212776144015982525862863426172152107159495545822786078595824589098076429288060030389158761435542218560692788111851838302457843070942090443433424569472711515308593065849292800851105254929425169227541664060971073287315319014761083273529030017678584138548685692885241049179835012311200180759916368351970292502486970717541672868592935963878329233225489403209589322672167708959997892545813506004775334850735550846217769714959549220884181473947004636798695507401078886873562658881885498090922530722594011591033823573591620957881895820877417151886307530552179992409446769546955085793079760135450747115458989712038050816555268752450624489534277268949921815364869029598041322420639849612481534851441569117350641236904530332996351078403223392048160540836747136183843440083808498801624442405963271227796270069830655132327782133625943684369040536710996963730310476561226319024565290035327556616876177785754733958050369646493312440820350065875845620195369656310899156940329901318265917796027941401054123175860051849578225722697811051002182592956192614321137009947385129171695177737540904724159339501761653000838119247587888567753697709977228998480187135104829167571765918036948496693359352960667757069279938930289484391370931618443760271660632793220133682734277505409466704998944181202381399224018574677290023737273809421033343046111820635614156724020601000302829201499373697121541305837651128330245661390216178210560783996602146168864485955546214747389849105295415723936732279883442712101292991069628128257996462847601162084219440100379756228616966405641637186905064452074196931322535266001903286428058105428771285483296079934724163872262025700416116884894885757851857219502126190736654086467217927881719599481578728681607977307753642001409679356274680351921113833125089485825781585490752843600784541990328517850967772341871752197071764795664660299808506219877558408030758649496167208711073460629238011060243790596405564414568562370917846493193438463420566376477167621631754287422069212299822891531687897110716933269881253855857551911547486702308907487416295767076740839850766309619356996150965800406693806197110866775101068295302952771245545820770308677164399915968573504371958530064353594452975529439923922889009405290263456872291533344133452488954592850431385068882081651012159724466062636501805006723158729829752009273890400545470780765560999724839168471836522203414069504667730756556769495674149976151816021388489557731620736974033023790847008156448711710595047574311876998288138241566334203423138125171849995007394843287044155566912934449520724591521085531920538454215262833257715757178815437113155852077458090904690203780051288481568255985299977466446644090295870839772148137764066462194673880549748344133047504991616967312697743930715081115722986866569525718183694944642206087234819828979159431779501853185559502996410107053887362492255527619261255252975505732291108055701044165709677158843282934011126451551634554202065347876769206201605998288195902808850208123406821607271099183148356812831349412260274032597281312832028929169307463273246047198078329570878720414561132501374849786990637060410213846937918420086219475008874168596430397854506005800113490669273950905283405682121029582494583449850680731374358608706043242003105847775033969958180124567231296110730641918165655691551867114698142680953221869321517227053596994811198663496897294911267690089268760932656164186884790227023067806797352744895310635031525677880516428441676509511915983865647977881790754567277259054138310131166389723848041807447366182422589971792924793788090083012568019659598144027117464927518397518081112759002401658393297626948623553425461481775515531011141918312228050791669663954912776960462993703842342566844111410552877847659037509957207562994256774739085834288067348350318327672167030436689689803110063461053320910710778512868688561693947858014674022371529045958027751136047201049217438778942558823950123873748570152529381792212396059521169509293670292730263785935675201400502321812748850733009464781661364115682418064536562457075955271055569746925181169420249281260675337893906726207145864972995209811887611907610685799768734987313769907190940526844383862574113773226536538905589984211672015372407998856114442360716737725222463757296124878991339721020689338196086960943841217271566306804510329860452612999253833153538412377995711028757759165755288159054354951946152976649461536314660314472571998322672389951285361971853888787153657409566598802939914536845135848609388976385364659579647145665585389180728829346415381519160899004925862124235583512305276098585212164890568808456358073668439262173227767307697145787330597118072896020519528141683963465254703210423837684989526320895270465826074722897059469147984896314306131184837220909801266600964910315735286576359787270037516991574625910455502146728938539532224036659466496885187654256890538219075588545127230460129033854702784918108762446802482058452431059471038280687255529095273917977428333902782527536140386298552883197842841062091331818648175726882869458514986033400371002821910121914871942813487434574748484314530316505663860137772681220652144269586210481291011268727315277527181590620303440174101647945766972189177540409439194085261145012853399648870802857747766744977402550869338416378246015320377983751486179380378194877092915163159859772462316646670677873155820093396521349490289604080134315840275710272865016739475051294211053054653002454864980929042434490931221775212392270520043632847534832150052821206086921167533465141015692858818868832566320792814325155960864148702523207598581264066996857796511066818680452019839087454515586805602592624174322082232291228852225012940198408068913686015030148711176678987148452640424364737602874452890082113789067773033852321481456079551355029045583255962351743751223857970979035549181544711263005787639971898190505519263815931391918144064787428820474394836908373226369216246837814035315708930451346998016968000307970648470206776964493556740667731566328889446934921875200894904895319360037642605872776171013655315496187904720403547323324336369052788521030084553015241594749888167026733244785318344168698656044692505408237150631901220761771230568740778476960893827788876338494012678690787269442646539143940430181038239692590340457039352695440863887361417359375400952294387893927985113103635201082032205825416177211392625887678726870839750783218945784662379046088363886887734461456362704490710118885935239265887431743287167553315024377688381826823588992243747797151220875026547721717995644442228602427677590698853575980239372955918681954505288373728116991079154999935982864467331815308920040093501724897523434174273633776139551742237558521861664951777105233564107652903813214161103756246333410960707605442494676202111509882042938836109410114400372379391462120044944652065611130991456370744667321481874677893996183904896307584663937550020793837561078288184438362063540611804154234989222049436075899261373029057923960555085103615956509621322461243691337387049485266405266170835079293644668682133837730788896189741238711660116047426468017047020555635111863905487665643333615449832696262574487397312812597246276629884346495857047285177179360942724302149333753425100833293129257809222328992019606987966219948887380973217876444791024613698770152054731542979905533845910882409462840235678809879393763368651841362971422990965161581619365398031874038317782427418991455959487865133075037764914816230982468578098521059833648937726512318261726557721182060232076677759819765457723086349122610284890748211699182253350537773799058606702187953694214284343114669602849324811589043189842702282823243253777177678513095341529496697474691380891449705840543464370630980467708129059064214828870636232311090113956550751001644380909166309983134133509414964328292665856731402375099486820297123457212802511856632528443718611307679143394689265390325294689918313721687730355235842804525947333778773146900989260706092219154029576972249646445747740668005140043927553739990743412488063132225718462009671467861382357072129158081842902910273849715393238765697658815730955100113942497329202884246936998841291641194222316245627178388922153970944889066840739882594651960851836444729368357206468894376211386338229031899795976435800290081133884833870178452888063662673015577825921138725647846823209146510880633934837784366270565234418273261192806751957996197546014999554870028613585261616361716462232357935691950661846603605337674234435466786060669803269508044036990282794641539706858509858911645856179333454868531390778612077154639188030017233703166712546236149328515900383140376516442259277151816389745545786376854980904077773430415321188311077966534392596207825850715584731174319579471873779138247757874381560057475982096172260995465443118850769249529757634446919883120260692599452933381286294724716214582668645674110734717281730181015975883523291148580599229530341537649118613524015590092043405055018852123785057184430896603211876954184337180854550229079317286099918207079847269474550172821636894340213395237392953348472629264297485876663307055564508332743507426763299347428894375958890813577654973710305477347017585657076322209619089400323683098098107379989597540326588766733166576007817332316402755022031343000107052216467195439928073306198201086299266888531179344228429010290921081287234947086008329042346886081369540355790042806028139587059760234284481314078242968678583250352331713048651022778295750206483556827403986317693280967678079475393195478275568872324940388766733073956232059199375421213588340799903785873369019378142705511182079114732457175375295368482531632741428751982129474909317108338390114788875401518383313857676520864781248047193480271065475464693366697436184938899824323820612790675132965274412143364713986794305367156401483339633125250461119462036486257082848105325949168916496169741377237894666017942118930945490104935253083289790667063296964915501544575157887662310750041854831290178541981608496374985675922775201591651420779640819251618967193781310156694041359371476250734317047735708466727283453648157373950276392171099819037973322484790396432459099594142338547574998862786253169315522322401619537342217176633823149051892665810953750745076098571237295326137489667014819144986611073979960389276120699284186657669627122944701389966226936583322799657196385273699507334066600260227131548278422411757668775143469709142173709878455607277743868360568228297207247789883343009283240747086545492769877767650614253307619201646942517113468302151420942282585849370403503756421276276985047268044269496638375518928421595737777840929720478469372400412318741738813578895211981931392755861790414107595218028766866369364672713376370595016653267307213680728148801994659876835777452333916549713177267671522207365106321201089236146090284442511660790841816110972906978076849169357019615028879211175087694907286585651346447808078330523289447085478731961492115503148196822603971119835084675256705651491235543662720805043951010311334651432547053791574935517095659793790256163177407606481210477483700910594110057582499568897407782861656457367084835824341298701535642699111285470414341233755276906943037528274601331745090546148206013196062222574182283675265977095280980577497805070140055530926653803745115734607362355783183167738757139908568631432069077311948465371097168570152492929608605214717507487816702137675218529815908677310698185434690227516640410004039193809035667028587591182571307410288817722371190876063002244582686114330445606307886077064092145880423807790820339410926369523563350254549904605436176586132626493485219081519567583923230256675837796245728857021591481995826942007933969037153287253204168372683734646712039934460156133057174484665808126032302087432851154940750406484714340445304333387446957965310042625021139895494770215135605561749944553173852606057960047914164037078470125805747211607436907828584603655402199764335469243356600176357858488781623911600421108399698184404149094968356521077062938645607625691143635167299022763022545488836505165568251340331879773582149933325970313250274655677896472264397063945998474836124281293258365504388807244892003887672259001434215385801766937509831892195729625356540014503438600789575672902140706143748723400240836001116937836074072450040388799923547690840771583182937341079606155769730466744238654545534676104013768115209251189666649728807960441646050580680112085466751234273434224753601089226416496400636172372265463182144693539298666202205260032616097790334177641356498634469772711354795922682075736924612089028727961203999726971248058544279376527546882622045682703619063845005268258714632927309939837660010140288190826088021644235284371478936897353418944451497829279256903518361226300418827774598177573341611467191542430428074897001381530183438738717116896862470528497339052572494905568341704563492706211240745811646501855961408198515512202050387523424113410808535658983544909576573883549130913821111224950536178138977332429713754299394436212404283291737717853699940169015970943679512156721603993728866220625257068603710542333741395698247419388504258543873661129347516673339116995913134500494091866163915403724648020319298098405834378224298926791261783929169977665378271680157339379186381781864299157376946320162718287396804041011078858645948719641640003809698036332294281161244471864050498502531298128424134714268460384306251874743383308021310216641091027508231665868241292829671025527000666011509322314691998661082269968595249320256606427476281978869203851582119648193259495382989720309720384214541850880496725462483428319229006241915917058896315397442612898594135170282363826491467679739458546271818318702030194729929913449075438500200693716362832611535601423909998918262660253502121640758643303634886602437588016872551584760285088935468756781226310010539606449207448394898219238413295042614330819689376076532404071576993322485052007605185401981116363712934620819588181777218631363396261755588332527034350739816969653143886454149609862406693708756635073481893949926006586180237255873884376155872618897695252084380737598635503794909053137236794323861946502428843025181592330547924318447540699209171655964870912221288955053051548545522376621342501362427077098574337845545964053383282489056811004642177883993334106726320218256773544069508172834671252672908516978741488447659778960182089725417383727596187558878034539072342458637024089300977144453556777318160322375258952320194643001909928679353027051882799991252878040978170915520062339989942722398336939349621508720356396865452658450305125537312681005897672196036863265705697710763858276370588031674860193320753896550211465649374701652941645228889640795144651828781098249006751863165930542987914554867823318476469931444763275546663140779143262070084589314327242246538973162791631866119961012542236545420721853177991987977217477241402370835579414863629011867426601034220724120015701649852513825370411243413696712074627723753253508889070883785118738035830080601545291086366036694976814844109469844841374175861323673636765649951469826346072235591545649962130253686469100734740232428250225060040684202397626794511648712222027607521305747330582832079677736498343253810650655375260123171083035868861400274512958657132313474001149086505025900316641624812014520416507199865062790985324647228994639336682132061305944286912231348893065447008126082430863575038225347318378276686563191481538274736364711556730701327087670678066384185669064714467235324280637827354516795792826818380119035280737779884685746545140669394355453658351000162675941335410118846461084724046080321675304428401708659807971535758528238953252147249767529450418828818713162669244931582408290974254069624149197888021939779041123804363997998806746443664490842033104537043360590024555162362552035439039995120166463014052960036169183505495037835300271036433544715540551881400748648956149724944719279330833476300496052356821585684744544787102739458876734415947908777738519555410330977170182126690383330981603705704630223073545192934593775070674301578491531150302450294474156919646167055059626565679564423248568972208464048671877526394686667788139594506530424711420194974708781049814147901289098113175942251911894036763647541205556091480282971037183043892314719028386020440798936125245746465130925498406285314610186921852932639155038737600247247640974828565568540482482268361116226188208548777044169836205365389718999719729750748258788498849083648267402860039709844794774563709259677721410088343334042900987156320499279497515266978821243198164548201949077535428015993822410709872039947612050273410121013273560628787854493483872441630090605258648527950113150293103935805953570134374831582691238506350801271710516053504058350123854243797147577935860256352139143065868405592166686566046782999315389763080417718539272582653090446669437790271326912731344586181157717280819781981276610813975218098659280019845177128551453472043289218398185485152072155754292302772732124753826968853993125129514780784935835929250386961404036791135660799441922477384065810434700940114312547328829243244658081159715396249406123186481726419136652207336368330466508811903465605099276225272263328141554357575153906958432837870781623841109000830301495069413345836141976361992699617881930711603638745997141654335702305781282390474505575019661745495141276517455916736768256584756561024631371654146898903412672767743838283672232122543731774321932368289158876882102039010325359037975553535018414285056566960449240402990064489880462968896618919652867145462543770576398449625960634455262610671666150543210662551861726403552437765928120132802861119185571570834666404219551005064574759777800508981534198884562584179794720334021046194478026311965669714175477993170418293600523768960427065682029874358040975026169928631318365966115554109516061919427588187143765093584802526995791510498979783906926136112928816666060020198569100189298141852546324663714983840712461275598680284894712491440071498124071575017241070089273448273770395754157785677144234928352281312349046762970098581458793016334440348872931655376253321234328897804273324493387044236653435069644556701053008653466918494556473544681736014767232401843797377122488938948416619916189518236462560780056578948883078994761287353406169913573479472431492194200664264910371880652828958134665681624646711399559754674412515211664119475098079589075795211967698495508959288842161251163835935019992327557045390689406476932683264472292175456857026579724601784682445243271425298620704090765386661307302777027878230996057557052337145929180496065181622848036454751892349294785222414119202192017426436632037447127114261101839296232296034869114885854786605055235304491000788304711387885798836669230534872005728080132409628374192972927783418110094929239648652797863232705435389177116815716340786174222744528841409248767490006238257870069538174087765665102211986019096245516759764363722688953100920426982824932140615637240983291303754189677733264203738952205882682514482238181802132941455135367809666858622169891380070637909464464985432309398391748552524972514451744162945917301761743713217799838131314264182885870818709140692084018076999942021229306684958414113901815708519329072124320033537333443522705072376937167236949353222713212546107656592795443268298479965578580104163226740196690314651391841084943199448001320565822342128403180345129222128964685918191723350541019483229034674990226740732053947147170900865405644172341360962840937766838697527528888368481093840826621342463558641652578611523438607310907493633148867260536136674794314627969394861328266662798099737326945773738735948491151695832436476463713804868588960802565093309655857210310975267517269914149418880035022578315044448476036893367591253541673177414744946427077220198811492467149570836531920843771046291820631621378038148881403462971887142616596835717656644795802937219773697242633447725171075853291827153442690590405294786567433863852683303545227763121514466758965996642065445848973245907319798185616348129879908102943056235497475287443085530049979309191480638205745323593386937812892172450710746925194853468207441446786273910386318347723457493838965317403929828290951351336585338829683982918116923185664834785986796646242120743480913173235096103016745785835198233506376894294801296881422518582377583605379083625305145165414215264617445395011614036081493290005591861073024857997861435175630001851564858136865271523802684479125850714650783507744260136367015028415113297593265300937727216946733036732870668459895786845151341139464998567415471962796426715867427184868470007294755642302719852654162371992301555478210847464836595537228249981429036034470542776043061710907595279618565743740206682803875476945875447084044141678966692831731166032098038034089221665937238520660527878566966168522586352397099844390012440600032632489974684873312076304476415958946294892054852213380899536500263179207642913711123140617437194420046967363834647090806380684455780939033758815054994331850108699550052558851818386108953029231084148590154531684515039240587219024783501688606702300702461694434787316516718906940150446762532872172145074959122109312427271024476927553122476991106199995008793964965101374316096519768902118494724629720434870283814766494446098832973444699694966150362408458734071196504771289606413094421915074827050872042042234607771806712851680365959781046418272046267920177520638034154688729930126449164405146703489367782555464137575849763349251079848125895499033297935710647259487472616663097018518448809056725301708806599551507564847592874092977009955236554979655470801651449929063953116773758426192465402465568369907563521438787790246493737390818789181709019967938372757167827615309205936354756205427658015334618518725015092782390221129903235115370752489801668799292567873168820369499999963899319660083616890925672153098241456090366279744050743587589052069522818771630840626367062309710961417401192343021601305295445857568182896331830816598169624070285129445628559368232596401235079536953436222564898769176258439607637355110303160317841882261440107886739242313375563405933824538064826680532781133007075632433587881344598052327303733651993230300281043538018405809369192564463704655272744463235626118769724848212414584746567243388494927928386095139874760169987821751820370986216202181503551940711261286132960161900504488840869758525501152946770228167595478921598189152653311553614276654852602704738396325112627420195182789321922713238352916185838410041869214757609697310895760880850705358184647099664952210503928896868876779012108726163460665646374229904703162396572423243728143427019848351874552264463503639136596495778816555884074780867934477399518078312472717457847409601446543286852224765292236569817482502667812741812854646878269267446742316482573229860810417139187947578991254823572403337918897155268555954390903410274466154538168748172853187816549839562008632747485237462068021659640030150926030843397812746613357811743413853069556924529276529440744135474285675710228881573868495923356835884409585603498779049678120655766740780710612373652429435199079104129779066114723315282384930856871968839273181038066336097793869836588805294290038233045958307404569916613934638647266602485387364558040189867343362054088465703708824804033973903907804536319800069564955108950805341697728025784074450311056306022449297654073286289896268036937491166166292673848170228267833909083485970347244797754651302365795939495221394241277292867678275169891859089977378722508202147130633696696848755318475711144232301019950716037208903172719677660533918334111540034226237972957964644839885811873886421526053288155635515840277375602430072639866803837004252361566692470564866403628435217731522546405424995381741691082115336867662342536152903027227997985036843576194970930087754320851350246554383349015730620549857770389864374541231213923093890123862856637037681821156041812919275673213458594737837359592767462906824819567046762792452023596424360631950875259601529899881658102000299244545792981870369306267955753578254561238709494197781741766634051606825343439345067877764303701509504666015286743993845056164280100119485954457450020846153845515208099577780875259262968553746854812214099041890565582393931075582209713583010242515363581316901582145964735561973290676782748023142520552452054672041272428778767417446528087900380235847181670843860940725868059278457807770312760419987553892022821413192296739049313922148084921266846041964826713575504414777700334293956046416749236857591526553890795129400838626696359329067424176981488200142804718045899937035250782211941818585714957427398440919999472507837777551897764708480522146683392450227231679456171269429650525464765953822347229022344094464989144269897324117511689455228212037546483765207118408153124142420773542787175148634060097282250368308995080786784515325309384147939958609352886420027070661893193250717298100931742370285789446072761301220979328716333977136407263016769790949755622520095097381673989899420930076260115734004979594718004037113395361694799265553771840441827430581321875957331964023084166454472579499991536198354252218154882023350210517728351816680043798690592284107537805373867600774594620827237200091433925191422119464611503310423711801145752126088901897560756563516998808993041626901932242101446124435716904189357999961382489451669918770881870480904854567753082085886055663291409733955798740928129004310090546162150262893904910862543392114983946469387308945578750344919728977984412203815351700209014055295559843786644527718265054087178596011221977915585601547936512057780746200821098092661349806592875600610024393582212996766949217052437742821180497439342143955759410458237937878446857673705360733174879476655439073231951145521463648199689057469847353480595312931637970179329086035331072845231436498279357421197629716068607981745053942332608218758700695044641217646661544352792941427121270026294144976954467805334063256899102179019398640498285651457597381848126865335415036749069699655189912241306239122770772374706854668295893508863580591762007952843224134167674374736314798108385813330256991672896347494072379425925696287108545735299113030446069733097570512499774692231871061343889794696326838365751018371175368346019019483864207746230253326120402923408678317999277415004470630088850387855888567772340236178333928870884262434292512960749079529647737683964044401367043022243894496086056367944026084042178770300939200324596642205165896640779503226317796926380068475935049960215308419158452954064745644893185159246969468385598577757478627561153733044935017039349899017343475230908579208964017680335637354537564788116876625442502595241093283654199605783291141888008223038361926860141138412955434182013526117102918726266876098116978084482775177653206812435793989984851624254597895223045201876331560416897799594205093072168480693080719222473241577951247180193011338820437371103079991499618670520444360016195704172527649277180491547005438217187591258469224274625133640902296573766036561159172953397459586584541596365135800015261071092229603976932522438096264043620002091629127989834077529952075859438331806583777104447671575576781768169558047917098168916400043878270549497332585670710202448009629239332267447433896515449173366764587303513799300030132907374015654337084037448369234224114118735524189337849853241499687994529169402697535127305753377648051927255318607634059311227032906855623981000298542732719737717195826783029680783907999069686894382522113239628216811347925099255831994381625397720937851776420724045214540644130369711364237503746762895044685237564293940450451557766885197420223146470587475981400273723871742744812695795230498039150906113940814463064073706027083154450773555423001637535707827873759887516539172566790410059982745791708526814276085258992436816271337246171505657112347740747455608411461336222203912156740360452870978674165379529047288426550270266379646579190428756691791991540580706585231655575421247944772494870179354469823207441217772257460284884209667992230201350893403743059867053486662827543549729596714391461635492130976854568336914816439982854714280495417350508252458397848390784040213868166591248717751096819615359407136168564768645546343597590764074227566049633140842444775340588273076261426774859686918259538240239606031976399307240120664977253009393131902440407456486215540149155753717567170286680147088714251011913057840725825829277800492708378064438801711020188296592519264882181816118776209222581088423475822601216479474514056410856333437107949707785877967784483539841035561534754546441082054629458513734564743385448963108723214457807484724950074328815718873934314677043742410974423845113379640452183567511564302564698381246735630996161337386629486021466419839334971306226121710108783313856196626994141402847341714648194465878987674639361117768731146087452364995691967109302736208183548321424048067658997666224613977555027673307616075580794531848291904799202065892406197009636423908403483974602564132213281362631761094859802273664141730200624410022065653663743223463286245285242161437896144553835628762993968623149659817237033089834652072622686325199181944388387335634666921239942745455129534270365035880361491775030416418237050520635648265423424720869878403852706666858011460597525297946717623289994827270056557555241923696862934215320835791174257963487205741770356579878862672458894427878464293259182192685422700989984429183564887338737202972937024637982681556296655702527303732585787352976605209091707822794562070114974646957340794315142710603349192606035730083639312940981881904359541377729703223569077715668085941389243782399945588192863984467175314592568131240110128730466251287294814783810647494882873861187539625888530886950604900779807840172275251227945632957637025265399998873159450668558240132397746898766754817001155226210056330016213151329198165415418090904911485525759346763554871756234189687904453078141656431384666229963530654037918040201788526041255642106338945956175136847839323614400486495969276941783052926854146015365577645692251134231211557838102698925059786802509060376279808623567576225251056501468814640449154986873940103473073176235374793123715477539443865516466809475358035242579217480249767650639588154596022461808502705875376215439631158879086476613482790180406516567771076179254423773375398683969542709488955795411901162814351313181168345309143898328209308922625908846163009879710234260028960050050259586198052530461307066190156515372538781873624301850195220896466785238544899764696476700175859476729934125817492830422226404098408866641218209123543547508601489615499628652317219853859557750387152894860797650409869630987860686737057215429080404418675326112109832151692661554442661349032189429932940453343764672695156446498592302191455789559388206950155414038743527629745783535028184766819788185327605253672988834465510888281490327425556248482306549730543405464953231837928757947038356708257842433323295611419502853346726915135558657268166557772369164223945298845450828512368332590535431773323368992558479615875620332090223465358585139524232653422490761303344967141892484873529937028544040930262603088175405985665564898462085127442202615642117735002972810961480376023411053760629597075434074395827951039551371591516409165651923077395881079179537138806006340830531136770949927700376534972634894574954210244309885415160572768067101926444555604084961368808672531010347479316421756400381112675533692737555399223440029409230928682599415178531256234653276899301640030898910167040626763060248372337674895492486568125549545356749852326767691795957896053252283875558705959762564398809101862221609164352203250671923787861683993709101199421829302878140303057449732862731704054205285501354712732494564267645765177236605317394774681455817868831427942519027191476712530113190288409902527445712489020104980687442572698795210307598551556658517260501630905674786615041204997056074128880301697974866296569419989031485889496802478595250907973589069991983708307237942670678536881113025313023200913674595261109839589397956065269140366820122994249416596562355231423264349720489592553620735146664592466763876932799069607925037559592908090134773214684050179149145877407745476226743046630234232264325021167520758598541432247992233187840893893567043009658764422144579963208633527350863183912690501829464272919968190985014545671806802460151519903036253981573208188493758255763934509718548614932103064021142196234724917882015678822585007117424089784471300240402280973788480304467351496892261243402635408078136600457447086133117467331200105688919793025842896569948517874907194367901353325485386402357456469845471785002925580174806174739963242120507228884658356185129909905494671404450620903539762326221451662908879046186995941206989705535579222676917910794661514153614186136067382699806814148548600519031322122493820159123528215520625518619281275468080625711865413269458125649748070415110280690884891459213292280596924298514771994753519420283767238254134268295238317333459546265392293817078006359584852996656417991334838498270010976195564088951415829309567229541979996972005749678892880159064064309658777352938609099673131340208385756043583309051076444956787768636673325744311159090082381921353248555905711043544607116960511759602696615848888263916639262847406568327877616086839197827997599477528751876777914261518970623480277437550479221112884381091697765480797063530960029935381215828421791502257221860661550502238205005961640456965273296644029725497088283800697343391077355566665238449842929274825634166026781194076324101917385633887155166257230976776465332550213422537942371022358921954123602291779291227097314969788787343442677585779801731558691106377503768019788075943042890993927229724682157997155197502685050073795386373049111736351201607320172877717863905931529512781651525313154266990326696760287879548375662886736315328917402633160046246803297584117644777608434448636362571726213668941361489439291877923990430881609206938795883273636164345844790674795751935280870814644257467656359351087544987609469043662542241657656315363920628217526151547306744490094904904897828538035211295582226409218771774686231006365468604497693336733668704784589082969432411507420448263741477681121777298129631470447070738432469661584045700646116075120470199095410977637155989039495694056070686491045196365812947392114770561360018452457411871094474874233398186269997024409328368063534837968488703684528078148169294539620807403755049837017151441383407233996801751227789987382326732152617466543720689951112302574119761644293980542408875066803450592532286575575313591062276878781530133625559417405842853946529627133434331253400326668884170349467463533859834800114291741913868910437609778787026286855879988742570815130485085016860209149716462114970763837701577129255161910693172247171009887777269689359009324054924589640394132275086423274977128248725868568082327193064170192266325462582616832933284206541966157068524192227567689293715211392595899315434677963604985504801606554555145331559506476728827630754951868624676064347777528350758355295869220858360682121732803477919414454334336023543170942474808184271047319001898691246399472812733693179497280741933387553105515254419033682692494923456966734265236210908467914428396132776713190078325435369133011792835523238723406175148032596564484364372770295447664405936072317380884918165445623590687077292814280672407255009229775851900674942544391853586005115230054533347132085930959728471547609567387060091114956374343074523659629982905889896003404756000475074109629844314591975691936265704672422003458742832815602710526113110298450512978346812835855679569837024897449823734591426331114866556102676095785383379768021590121800163726095055414330636012113515548529499205625416936728205144363660878019164357561810315043944665558631757674878884137754281287650984182854326536119965900713109349028598937532637667782481081825160930052502237813927706854451536857671131558462166262275864922753758832599026511659293424683230589811643035538846191261620405746022482447558235022976858081051176375962703226019108761678911183029732493435979832811571805017858408360996097276881354876204026092152667739953047149314691627782435326036927467665074874527246207377944077239465441071438559707724063716713480716371144600118182802008772720555430538968408490605181173954265249794630251178030551072068077131728140326271111850106388865755485934893898086706803337873947737217613640627850138852774135807388275574180501645274230195504784470165743980314593962075210974680005225919419313847329015830903673462304352963806448121689879601027703649020277663223037167043285412199003266852651433371522818406596933973281715577485054044448214829737455086821742118823908372780943644498133057599280730930072583382942897264952907576635189058197529521007618304235541479550139631600427697822830390160122204222420874995513125022490110134183571708078031862480027429648097383473494018597397208565246296125043553040279212313511948705261149088945705929662685050784777130264332784868199156839859890164490879098791741455054850960982129092230462600253524306980458348957614253977727869824303979564684708467441731500154709133631761838430638479222753224871783234092549045489533668027053703984443945996674427040758656368130638933231780897507518524123351543363817078553964884937307979157275882247999185959021838051158621400179846019517797854169169706269049802478221112377076412563070045736883814449790966578443525690612394457840991467191348965500213678914694169397011298098738183217813291874568718129895005112416262910632285134411424998424842791785922374929240507343343217222110330678711654926689813968792701578373417345758502960836415885754730165486039333422076346167693851594311177171090752107664274101113902389899588035075565026409818671998780049688765802028232678604592258407968123156449860784180938270892096768257604527790966778799939983400819446259699304545230669431369427226660136569521633603058501726576406195593438945838960234430297389262075748098856585653838594839771596789956846120802722689350648106761841621474188893287279764318765335478260757728246574482416411483350211066245510378530471290075928216885420825451766979566157578025729282490430809835098952156915059431323559185269605346943343470846357056592625232890512472225709360658177235582217724383989574570077197613800930378110474235980903592521240125250567577800916539309029015612625107439467840709207740965850256254051590419086792191750077687892435907428230838763422092122470405100638883087336795403539481188175171185635123585130619063554574860286421655193619892357189199618550666659177442295833715161068871073589497123147547291201573077252098616677525542385022881430696305763231403449309843187347146490084880119496231641731847221193243627738904715095623444317726556554636295373614542345610010023092832814382684538406495306529964030170046302346435176167587700287123352852408621473764233640402647107609738190587035413507419181925407892553283474807996028131791502724369587073995848506346114327261801108005807441696874261563166376374824488789008945779777592066807990147898167216120177189350349639377666731150149952619849303292455184500463285609989364152337424638225723781975834988129051719703262801201664487964708175906083119505517124800089395415897858291051627362595638631091737683926427977248210605375126811957871158615508241317399869261521028874350292279522543747775248873439902328749684685560426087861669174493966768269136138387859395586487517578907316422568438390619173261747847393296038298752378084926288418911537946600329881362303392273139589133261769514468347313594963725276495424419438028429536562980359466322294104861648248463790344703431170017102609929046653661350448890209272104090325106739953342178457373534977873825272599254445550344476596996366149657751160286834824043554580766612712133469318489675330522401990960979534334126618248088515530331512112334669017764172505857497847963684901774788291898539990593637033257476323798281515366235421356490716094787072977352139855063193402594760993127121333884304694652424305773810483276422106271357474719975290336910723808362390445081560617461131525532861404869548989728748891824240586451805390573120893867278926175454399670483189599575887385128612806179199621555345225896699596161448424575924340946254714904029151833923933100712191567828730049374389445997882838291608182310896469557397595187464706691551073442100363873015740534514300049186515550739985964391634113059306031541384365129905850621913011486057492821045441522226251362633869886298862866957700267614761096861551892051808058169060123978931624673092059079861316499536373228446841361533095073720150928128909803234184342602936738897236660704113482382052037635020890085819590548589986326137683220772520049603384759288195911137953948446561829867287607474122943513650193827890958551704675142326209657975123291857134804232731076195742632966727550661663941278237248166210415612881632757855208428613166357775563292550681169832536972310934697194357458743197804464103063011718361158031312203647763425198702015128957756993898725716075212499695491731667360146166172573121617829289959591510185797349788801450463215374907349664737526074845500840548115464868526480370558709682296998606257985973532351768517468063887484470229330717955155931093326039887084575846097533042533744235706850468630656199310331449225187067012284898736013352851578385441759791699667922787738441432645458263769891320541344366098174168294961010492943138174355583541100640159540824026538521980486133023940639206982974440302002161428807411409977808301514400917510321961188110822378443610574626601571095510908553030241346752740419832491424247650441078201905273377105237063896155245705802479265427864830194331738733602510250396010961207384633648826399829116856633721229460841096845681065507114324386559977573034007345688264198613673791046681705837979165071249309244783210034540334262921973166627022193080704668272263871688104990065711163819447689615038383141850203813950282975252824178603615291301743949166761776806042977639796319834083083073684366342943166869249903425631312014190243253078818983408730982665068549764138786399057132379463995183433033718227957716482873739893614326550858079152632037222895196230268987771559949581055525083790488198347121603333995277728434425755996727396184238197877555736939597598666833480574311790549185128679805890089094285562415290055845724682657593666130689488136197696582128437476196067891069028259790720814918841666799503702030112890922001245522981733931803986983064982013284335197769620359069519474400193942641374593209985429935067835558342316504425713056970991648643312739555110303381334688085266339888683542923343003074640105559770930621495857502944601428493222496796040262704652593114370983690407601870034174169575580094085337657065255414927019519627010807048090506969199709572266264485587937420264110781120711901787266345220498429898077174678132905431838438933958659388321469730684967041921255608319696614736311329391617230007688432576036343865639708965876383994183446966470449392024342548788808580501661863570708168226767902883801212296420686357677215007414539356420062619500746667640984665752390491430713900443924918920819792766684037160198841659639476456001387179344925337553491444908909283365101068909252176540509546217094761779001154496938751686588373963585180479800822370537119662252776996439016580518452124167851722630445433298881896556125821696208596138665365122067655349240843968740424465690283684920282500795797178044173029317444259478315768678860950032644772377045947838894586917697684350437634293067384545482660823194346981310373001492042993024973008785548450959645906003511532996177238727507022479982609871162714203630475777697528025990118032645034207480904429815245463666645017859586523311037209929802052064803691821078752644526166369496276779286082050199916474825301053239229564384496447048841420730430953135906997101072342542255964781306027162869731817309159859915259420358586722135817673246726923461492376059551867960712717936372956496484676515425818841109816193913370360537301433862225469622248140335636421907045027194417226257932286149055735088535392273171542562773005118375929471687984584514594887316651804292698069267834174345427617672042539271584975047821373912338104366852209936620346185742638338077959742980976633829911902621336847878281464435340297425101916118973167598293323291613217743481976602313947321581140015648832721612988318463540115172872426603250391483611054357885466788196243882825707112510703563355049898816497610174790851430798758642018470635183802711673738525239262274799960291294406402977116403531922580781498627715721539855880203230023843234941832713808066189042732099954524402268963281157671844878879287637194598682472963933859821791298686618952330984918497969136970784795090169624515514169391498182738904251426227338079697156982255172924034666126252800029041112852394235290923518415558885051243144071156088318383192659312970887647807358484347609272323171739646629694657817147422676589965284343285916285314135159117248778728928403035067763177827102427772132530196886016190315468166443095963088668767238304462329397750975548715922726688919628357499417756357027773555203725925343184269049559900974851359986297150223437637551741191435707725026100551257581343682445636733316178894419085803473829461300220405472147658338207782454956903025252945076895391200832703766780722583009906796520845712423140666722759879007111861679856952967972767753531562168136451270411336754325395441034367841142693384247553731953555888116682670196003391329914329714426397670656509897023254218972380144468232108327816731200429588446077188572697335591318366339342424298565935271335691529685565619014056833360766536934053917040695773659016569511318692164738233895394040645037213758341003616064000082602828179867214161799974008423013570382234496733421561411708845698759084821775844922041493293964710926716647183465651235400914497974069601632640503666078697541604005188520841562196113793062050014108028277127033907299773477317641948175159011871529951435779300355801587274949015053310033867441984789843701104150795170128157256624488310860012089304789005601615938836132310198924821760403420168394393917745460654640605526445215763501930393211580596672430256260086139708242528649082400144958295757521425653968369088467475547024976496274877982901297921879607272695028930736228069846093537835118395606423186772461606592586480796924368286133410916125010959962110946848265025814404696992948928762623444028342455944235829020607526895534162331401944841941848640572429741001600522202163388256500247446635148368836409849951780102473093076993027436442262497303056688006376304115580469081349588379005145388757482217609078438410396943620521327557400851451754789009425601877831048561780017014836723725606662734214825609382563655787408339960126981313563008596691303148676237221741780602018173200770871366660565669397003278204858116189239305700700820301579478328252665899638833561711108313869956156609015375517962883289767907819894199817061681686393676175920093884560586463486643608851668838279860768616805067010915892167674678321708497165544873517628638498794591281648232099528611041810119253360390193876828545302745602068523356993169838062310670018366256246324721604978183582465768385534285865630090562274934539995987771561285855407200177911245918666915044907392047037665884659984354136755112759473898556297450330787538754641983068288900712873901584860113666915813904739246485340914455180051408427276331550835077568534601886603056464157590627750560232291189282413441786849779779351292152454869569201836695535467827766116228397622934300554409947516982015264071497103989416382107944226251635898269976064415105897378149943299426347256691143734209616561549920803149574062139837122694029385131269857417956778571998842404078780082079491725540920989030492807281360568231879782204752883060109108592007808371045610522004573833857059172925282751559226926456719819198213240303642675063954639039909412240050950343540932610806352791586366245189276597310454846496463751577471812203519377359647993176874419033319578347665616967020554398127322686828096535510375098265185380444890943033889496458936486959478409900823671570380995856860103208197641219558146810380356580418443245416939523703491710511192370315661146545218583125324399345317165636476126841388741484361019327451247557179658202001758761681025560720306584845913964952690526667609447348514669844359397842480357969361072506212661748931922210809552047286826782855633183960730546918483305104614875306354026835556284824293094037654252334646043574053877408969481196608903885707905261679977947964402495547587370087625582437812289257734675117162050905404509534127510254104905383528210956798081438972832357220867931034688337322031270788720598532914035826230191459368906115944415760257685400584465635551244858985369761218574262674784998766766263487191000263395151307801607406626083922248456187710252094364378193981402121634555110566659676714965301138541495103908225816169754386795006818097614328436799336620799378936398295730298685434228345747020027505851074496075072419322975364589629614435905383859437798593084383607485432042220090344584734643839273056568709655660118333963906539578181191543327305988548006935884940173077237477455295249731196378314268911743380552747199986782304017898099814990914199320192267022081591493193795810135971107831758924809934887277280337770167936058226909802646504698725392438821168209962654407374539792267337281593071690189948312005683224454931073773817108011936645991614173952837795028931037956200410719857660336409850686764000560389702103290000945822660905241292109138147569659751840695463946378607696190795809080687575683566097418276200768029088288735377237788139797256870957237763772121024906450509680653746573136985907494793356411080217572373935532603631416515836318090806896910973510932627504513278288853388657920000913145513652486580299593896707532726312993827596384630898855908389915163737729021494276305835932357747915728783751900000537761101250257801885241670595539514196656315397325450260862388408725220017498365780305623377486991551113174177956597206506170613096513935401917221249290926796010661058474927663634780110056591792742800649628396218803955633008015300703361311099003622703955291976521343354545646189781309498618318159228329406491428106193908975174361615011086847376260986260841442837505179130675725203029541722193535548609942419579565513506032263185890926736135397592830754615450685434358330422263736604905834648912146916424871644994066607562284811909185334753179263202987136806249269547243720232430999743230215062286185383609613798448176008111741544147009160905463574447441370289063104745578210189492450010519227082508650272591358432369333257016698153055930621636406794212127633546501823563591670769470334599052943140247775810126945107402637637934520673187699706514853834612761944550580196964360368878918323261890672425377051121194153212434673439750535152888391280071335590633815206237764836132882822298431404612514975111075012133904494860262396459724835630222686476967844428760307389946677019035596052298004681837674836931708993383621130119418587428851851739386530523429574356763807283526946099870505872256889161563871549777682191380811746238685685870080254942706349440779029125500112700198153391078383389688062475621183191707291636429839533314164955017135208077817114581982196287979310521339538958404080886407797268576478525542500995032989342748419035521044638755681562163558687172176367986531703944928725611142533535090844139854645325164400649484972559340524786190528655827613137702086474738581537704936848844048368286114506081443385840681134074849636016742244065218358973432112241834739062187624153679022854646127297782605596874338725942453154441109688531318332851228602577522735284440397875852733560092334930316795027274205457192775735637551540615235568628367801437441118879338830033629022998919050641336340096144007488837359053661891649142227201174669038063674957950155341868798484197823259608429872453226516474088852573691745692261744743068574316161059454000215867336626839089248322882682657908876089903686357148151017174890001255234669571494651106762880506258265504554123480821772830300056062424061747301263542675652209675349973750472672313178630193445978365287527189031916640858109491805321394357610710833360062944381269209573638717234829379721578925235000939264635519372918276961392118028030207321116609327342337574928931028496577713338450295140223624452572497097392602642712927965251930807504519619444730713530448419993856069413207200123871687361481994972041662373450798447984312440501121528453808961721904708118330803868863726161105648583866698887623824653058144825028979176380449565317548571927401257019208448572613963022153619438354437317813524613171760173986049991073556008532180192046232504319863398249404437781937982980087765129940369727602454614281519818795101622857449155153681773642878317550847020425633295442855915296936279364804870228769503811466514313770525584544411086214882766249246489748196508201908005085613911330557486703264947537106341765959059695868249635564780477425362600849095094432350718472847969834390186891839065296370937186778820642497349253391186736546870220443872730339448770750180084292029748994273188308699765537545456409867186727202870265478017790776618766430386455360033655084117542019927335988997013461912654532158561634803335847913742799396962712832661822755551160244831792205169334915568278429294165482018834277682923144399558343941774787926526291704180933711883744112279996301171074748482068401237396732616287297393571511926905615376451666341620710617472180286288276995470269924220660313043349805888282360378162210444854977653657491507845639470602855640880373493572100045673635161917455372771523345642686808788378485456706498428428012273483213644343297916522608452408250100020665286850484023438501451637342092379521719882758304659204744397905051302807522891500849084525121277451708109200308910093115175366879318628006150081614725040981430019114298467425454462308448699834562920444381738449623035611794407422994784822635859305503777821074291028330860269417623546801359871942362058754587951609724208183971823579403226799218198207589568396246621005356133665750425432715497494590150955123809390248402540773622713367600767498021291034022384890452770234411645448299822580699445865421278442486690113667463264319509270934120303660369824315973489307939816950410432961250120008711928891231558076145980450518689359600088751578430714402416498598115427974889156646164186159582062310449471690353213850648007973842034372739860992661615722342508074966857540480852695520810421524516573610350306629968275393756618616669477415923417560739598597124620671901507801931527344370175029738881968447264133666868190897717290985153830729367448610081498375604666010618771089661178422239759298301358912913123416944194007328320972648513703702892959781329589689061329863161655727066661717798529587305151220780781218098399301078163176816345465310795082100544148398523407528622055045917627044101666557836782033656759883998652647409530579448959476309948776327756220858894818581219478988836448941206935501057234735766033252781583236921292109173278802239239434500631416510835613273335053042590109299105214841961590074752852685849984303135851058450819099778844625474708832016633076229323245506803984268573658992613461946673235614313397078402217681002644999103246356106934237135991646894561394247851338714022515208260757020432195702756356425141987157583121413489321007227064191806848135199980907767518973722303525104497696979183398164873642662600312048280573005471337372052001302315447412406779015553667390502115725849291175252441048404758623144124949891739138810765231785335249686886913748910634004117132707863653248067252522129182293829281254580925847342467238299349662891065388475569193323468960934739665090946572132570788687944962583690633073699961662452576995784534049273653445310932920546479813385295700992601834788485695358449582045555414049413299271547058772813718256344821512237980719095669599276854484108205348425735774970588221354737381355513605558075950914875780483518263424994746530848751264712170692082666945326963936147492011430257963134150726740215267562819880002089186385122801763184680028390676934151132663017344343835880655503892094047299510070676558023176761121245004736213206895202432789860660799136592898369350044952892046136219219385579958905773555739347678750693973413069018333104150296293075029940288010627629852658922454862183023943685415707802523614767727039203289676074357711665977149968010648406246631636589739390333116653482785123256043058107819472290003163222922665892762241012583938375770478578765149904314902810575631954528057858531966791256598287382872292912307306063151920721988099541896200441022765739940470340314887778752898713664585530493110853873282653766867725959210135172023747031425638971634634264814723663660521599078566736393954648004297386158654386282885946925486569072469001378145112904701904911836918874477726892549361443361696937055054987632650435890865789302108183603315329332926370618070652120193142733087745179632567041034799602938205851388900172932897801296083818217740496476789868067065522733205424603746196841286536285423018132775797019212606520579378087542713009635811590043797317442346762232003549878392500965453663309408708305411238517669662019963935636720742552459472484212458714259691226172521025065103347158470481148063490821316295928656267139913694756550933129737586999152647748855582493749169746125778126364314859046482782757796737650661320990876179886252864199844723722084897155294908722417202325620115762753031599226164121178749999436674827616871203741327134413210028597050732470535610800963493349363384709689583492067270675736713614298541791516936098927433202699318295627191462952203779557024495270338303119791113060108998668394545829083278416493930399827041813801236433410129482976409728109638559190621554479793250745513832267042804829590302601990753261997961878552686491878104552314661994556303558404965214583571778082438765475038217089064059497809885017567963768143207745556321666199197125663442936027265123004334219625230666812880634718549474286815510517413655905480652425483709986610104354783441320246150779748371673879910558267068903817477908865090330121977908818270417513024251046331351678393755126688205486005896888392034233779102488878177041025139009190124520417916183771484076964933253589575038455027904762905797825898928315289077026764751563870928065741499826878654402053366954237693612945858907176515289484897968524022124960344951773791538510466311567803408564000891784369123732845115785682188440341312368525845603269820764277294468056133226910021514305245948726609549070989571919933781764545473674680136878445155891464534077354612588682322219827520127697634957733693666289515766359059588902674281562202262076043767897189155478823016235044947700877083071150642929016951234516055445508266310250868491953963198165705317597763137958183113533905541358094880537153227403569361788183944216123826105558320058813914318858492887965860281752192462245789387366108161151317833222951130051202188458865892965097564756426832089441159734489511924111750025200351574451918514230218130568539999754687936201897351085628775461175225103091033524754017059212906866467545004718641445312254115906216510809686138234932862971654614472250145077370430228468410040378679945816961399439376153076663939164164874872601029410177215268398655488102700071505018027269258395989272024080783757112601252139376054307029524752178020945113638766903621068140844802310536694163689497154652216437210201373260655230108496591356117129557304624705770124321514478912921605801183101350626944008744433237169444206228820363330900795026592310380833173134848597255413675509888619382635405436601851102835177209406206623933895677406679165206569571019395427648249999646704789537849518500189349989108184116978032897678793060722611098336199898082413610550499383507208180099170141683160942155878781580453869023820509322255805445729475452951218363686807303492545077682095280155869161723087974968963783516202595825440835489889176213394565091110244624960331145613049777369649952339425676183234002922727884059995198247123828951665220366004749524456794142548675804519603658232541242959100820667233513584225946225110839213457209762837153383031871333597471514067517766775122366624956827729930855896559184690372359873282523061251964644327590988689740108225965262678684157565997069770704687090515664165082782960385636545086289149961114723750199507362040188465557684291819957187915949765035800842977596538604772952783438742644492175835997523721117477957998081437206580594282340210656186920148338517998420398386035918965575406878706903840257396176526746066892304747288056875775978556185844621689211945141908724488709984797005127533282951750664803200918493088827045759970887871167267003114195647401657077783545754174261659160564469401673697337525826560021951442209074378082399403690139601249463622872079977908729174420365988819946475606295254210830770688413859628645036154282790983607603114601168537650002469582114654781570983442815698577039669782880760685171028540332788360594374185471778514101533974035197815112502045893263129837355612893630559228163956265626935687960443472046084927124139306416114049340792914805146554893608031428313226944475467604571633077854924701597247475504501407289451009309498829724708377947334400337715137110648908201819830239840389372208676416566315621500466341558143790382487860576220723090754527632897851075633858748319434398978581198827298129307706943673860062232357765522941883841612883893815661270138865404271501888542900204727060493130841241348421150690598228080324473345900333021418482841514838285069770855672029808409339782418698688138763829020740441762073194413064121126502238699227296196486857566325119689690667103482447406960056503864858422744145400935017540001847876624415997778709430274368710985126776147647778331751727582439171421427963267636605675765086433894299869361142011450413814819252454742040686290570071795902869478140085036308244379466101212173420606595146210803761036758672697822466072345045995353883097918372899225959077301434309242954010436985344049261785596691388936021064676627027516506224819561675987364816287141650191256571848538944995947890659686773322813400844666494263022500466583921098720241234059989312004037073974176886521023423186440528177861135763114383835821109879319668176405372647617316086214896946169715561999744600330422966397620504481324729876235638276087956499523501085601371760825676883053827332997536673810866047612523561487905650279774923433389934053294382087141562330374076122373305400487374801319190309545309726483005741204440878740385430182012224505975023208721800053436335574993187584785732978581984587653063435590198010469739990308425859683266311318846399252630025275316111295879292870513451652433872776060020725594064836776185897541142945997891386131753167318381486118967634892145396105183530554664098017760541672025982711948540910287277201912021606322496428679645189558954819115175037716729536887082891165554115198879661908413784453932496926487573442908844349959664341297352841100290471275231089716622843730088507949002814762672484887420355306280534502272209651301038325125103067245482731853994015138646762160390575105474236559556337898038668469055361505290232737232628494699889277449875587216818425588982202536695307859230557214223441295462578571896016431900152938168450342785155350159648085719001739756649868602444533474622446599330433230180820433505267688017505021899278823721393104706920998837519567775431001091055755361182972411587636419352108697127624661309393344464721804792358272905730503769128101053885708533120135230866942389001808841690576695868156981806261427097952485703125102245310650080681290031881175971108131575713526441711308745836219891476127303528540271457467524848467628494017567358108644458196458511160197098785877146416561533305864870440986984534439766280251179535085958357632971108163793176535404158558164359386466362352303283960704078054463346116937878838177252316241935983639093255927776597159550230965797861539739060981021046641449073987418016673541452922865850464852345635588206624992127395813453359394019904957790408229719101526291901550303699188614336238635061101532831987122343341996490865536356788206708936110701188366540955292216217087322916833146284799905274461373090467037831002451003483778137407901409137398979568596128789938296968696671911897225096543024723325945435534875183982192795973920435975607381475787291946495923817619689738629185631115556590827691980165242629113152668348921033305434845879629690693339604970227372077629650597731675711187848858308700946739764611132494680019458483807114909566671578933001255828458968730082927261827211442411600081866276379314818467114989995245524783119336474600168022029686959703658048348271971149107804939230213790129062145057676376062696555832650836694868026482980571913116709149572570888680162451849662779452385147936174507159523374274699047707502175021090993486703626921752588540658745356508298601368099732246289821809040501215414534706244273668956855109532852499669894431504569002660014124071432121603253936896949006252259134471978439001138083727748150617495649878525908421803897998116298853463301147351437329245344072008992035936111529453749045378417669830547288690724738606523158421392905288065576671001187690114115717394652299515466750273094380336076392405465456856543686678264163140837841549369972049043552488239383109279822169199417156705165807759402274304987171444325099601821294829058977676642714247926496461143860251068121588906147753736268529017877723077942643077026713016886342540291732908446193571496632320221794099303496214276340840816242495411491533665062822135634213455814343446148160828230419088363156894404034556056499596764621302874192022161246458042289466361688462739602530913961890390190360295136963665041576706541631264646198057827015625152948813043563583993505488618322370585245779085361603053333839343663184330103112522609277725168994134986347914113514252107592494790536273655239119117430717212089782898336399895276208095007653830827311668040566720908774481459839597886273805998929638424614928383685813371168440693295945979319531073669276001129982918452688997342331410742824806548951658643144104930619383499021859692994006203780716904985862396159972624064118392124859125707887402025709357764185920034975558553270374535506098196585526831908814301473013118268939406903674065419867247067165410608017746634106787144100584302637158875453494530397296042989189734734676080055601072153325729157707593716470915164329311024455929453355464866406027082482949289555561992576210484915135674149343558797167182691744533180257150454731643438333378345702488896258192472279118325599466102405002784539194221048257399316167981612288927265556264883728693854083187461643759818851930492314344378310279095287016683509927819064144799011485975693600629426100471743786161393950943112958727704760866439353939605130105934066782189181242798040568286096819170837920215717039801532793497625936390468189776632370834831562304239601516112061656336731510732719797835724206421537395781319215702316287273566394461701186788357805967548816593104092102747854427250382436193125495242241136922460886328964371237312827688992125156501179205554901682925241468174485845610130020228145164663848393951328687061690990289637391395774079275410931077842339853658390770891529066974364309481736008152117431742645771805426805579421171889392287802555583897477316856808446467139167343899392128868526035021005467224864273141787099280590937473214655096796262486226596802134427427188679586042841227433918274622645854436264439536054077084992150150464745368175443441188101958584476304368096709234356500412212544852149301886435597792539516805143733328532846964108189284329400584929869480053263784695061415709471198603900855854886361116147143754144545630137984143888436352533345482169618588213491799154813685278332625923027116716964673332705613426222653682964582058291480065333803400328914068896174197272617340827629219608439410960801245628587558340108370567793890477837753581297777132195639899729700053756505393808247585600405328228139693911959898731227948478942048356265856639200373180501116514909140520249790364023428149922544609373717256630809688569142014864817528048244397305828145485560922897263016767726877634107323787169245569031463149391212554002872180221959554904559778806475379398236252072575565408143176495026953840391393899668984004021941236438085063084692096830164377424354574754422668752996832045565019249109280399302026167399125252288373497346760804349736157723313288230678353505437410973152064159904808401882614377260854804236435138038942601980117921721754221056762073671948399904887661652298615969527290059132899791035541424006627588825339684175678464764738062830197335038512653179769907161489632015259430693906774129439029402047396799312245205729831004407414129786933060837755768902317457692233972425161289982486923193789118027250628346578784862589541240933350460966150225102124917004670347328874793546986686406539841699965098418381149489256338161361594932143055482001857994892016237787797129607273507533594760451147590563407440639277573174185949055833910502468069340791503469851393637278704401705628655753228455123785881659281162483406893652014663852317714547957841221637702965064851424046241806343404124739410093514979705734448290610705195324155571859590347447980994920370366185315660329711451575632306391443414200609201324468540092840956924891719659304745598098884906762143368118090089773900281514510218815540182185476062286710107062265658846343070013727067576307936990078466932943349407912812608305283925648696806917922433645504834646986281873219029042092116059216480574736050770432829513615670786142905588598060835426616634004086316490407258466064927241818391696259161129082978982334063218276309394889791301316028443678360423675675229774523608633166968085377527506587717134159537667687117090071320095851733816915849780930811148368738433668003635720874311069756935646186902681552400707832517207288592433149931532621034975417394733368830282467018311608974041964550755499595563791405571521411428658410930502863232598721280712145899198980567457604235510574591688701964888802590373146741004187683399943091584565514215843277836085820672986710149615415114531098437424044478073760927559359889917447843552867680543583393705568722041115760082513859856460113016911079950848187088323646859572036074221157044515789239180393043351851413099812201649832641443858234354627230290913664438179632041966845045894210450650586596160190206479793013829570598721126053791068517297878714282884598828752826914388569831624937372183663660701868981869499113797205800896644038284513271156642775882151998247299831723106658838389675927370495832580595202742167266711429636162102420967785371775560149700078134336145784434328428035842490611685375319850444197913612381185024409218338363739417341243359644146189570774825711491613232929266342034042366040853992798084573706174080059838983680420780367015175680405359872363897181631137596826857464500572022438811491916907591914070018151648642503736804849695262493410119735096134679848253909816080850131204598831698690041131594365821208614150375551590823795024410318509978675748045163526529048064272451657503111827765947530522114067374145319985832850846356421792021416684555014536953230046688311650775896995598616319396400272535446596473659150768388455364127642764745114233790007798967583098200278416220635681497789498293983677895701399879818257735494120691395842079054663940414105495546132894952302218857486156105673988185090019624817128487007445583851396358913191325847137743745480563411181462588808181814824197869435070188069670048035519163375304956072900065991800680545160345299644982348994663647226097995817167793775830574130105518401660593231548462194330635433602581982256599916827395060581714781464747436487705967447323808934479963577705418182413801725239937084676128643893490523856976884837760972169023188091707463770214191063687330253251296918847167603966918033189129802871178368813622513349973344838465783881095142469742652389253920233772268573860017110091707557850935507334654116268151245562215375073323840128036766111576390527341112009362643123227289206423491398144940240326514107784496341411940692224783235702421321592388368962437666507469776430948460171960607619217759653674701603950063704479577303638285883686462821876702853762322632355265934615388102438619243033907022483759939806993320619409627717139646753069141069238362848958681153628768556281324685782496479667053600893933730904483824729525301947163563428186225940809774000442382771036579442270875752816509230223423473445520751565263408197511413836331597307827496335858257583048835845648790164780154575549713936044098283487803839839434491959751620736381849828803425741885812321665018153360218025140996534401246036972540936546346598689106717925508938249303827553518550411234249937749902271408090533715127218182029540496416138309798327833876525479291156352470769041944603776515594327819247438760872194634766209573614682280693676468855937977392651013223586755578425689273952410901117509286054298834666935756345350491087425121142262250368268808279821557464480630566489882863548532925757317014411109012015674891999551174938597403847491810788100978718103022060153826171610823776747587208311069865186942724153189123547243188988698110299541337547475234813353829240187106952476984929476329505109675543513193901930979304235003242809141186758342721179246278367961732938122406199095505616148114772010527191794654984199288850768565690856347085031917016800094491229076417818485542665201950764310631951317758717727520956096324449534073664470919083258998603572685964899714278295640094315427127810169063484837375575526364162022920450107424265699415157646826025186000853571131645586363003752810117559359810157799982078842648270586613786538514543194442901914879057096408269091820581872967260745072988027668500141198222507445004064695641007622377794740938065429793569104417216674395509032679023358376957900991347414863383804462879189925262612096286837619327629620298768626340383280949072707031287212730831003435732970146083520542409380524234777563536179287861839626827681844397453099310367620870973368550240418518548026294614140561819962952639033812588924848256373370563142144121778954060726635424481189633237702906166802250160160262415381483621214963721749457339937110861256318513497145963636563037128291450011068831397771568116577404734210433392609016928782884867486791645351660726435700085186949156717483117651072283009815523141633067586899365799145931885461098573098869059916603139261939923570562931124130515674191580958370603441853289338976186042890400323875798085925644169757790828821974253263977946858487446269094567499193776518582648074972922540922724046757962251232077975515781296609575500501159037636231392761722769117247292148880132270696685852702692003647723197720835964503635718012025049707668472412279007779786989312024175499116985644754818219856870783352995577382126618336737236209598992683916448648450490221138374901658869619270200827973098065516996011041909889490776251359826336535371957852283077876426705924140254734795226880103330741461958576680236677902271611129797232214048223750910606884563016842053575909472053153057308408806503752817645526994834312944817383703839353707872665627044833546933480684313278749455817172461426184647040642452844984405729925913877090814197012083497940218750919487403542129849242636836329703599264309601876381111507797151961910121205986014542126307395944003685109463630992692590604914943958307314679626283082730645505935261978371553098381776904130813223921128608412064652269859653403755944178489257946216681424892252373241490736726723261921799978413778614883950792899591223889093485231784736839220928601031773785898646736426072878830580817050050401024207345210026987334722613541426380567046243798546793185042725539678893958394099352614842996940836695536768982751157405592110127671501627299013774689437213301509370473943425047522963819019653215073347159539386846229648955354135448060042699741630948445819704614892170501402420206177220555249914725388637625330744785986100829657149242668900149086097290809510619155226260908462882369101864769625301961742118761450255645119587933876071606895040713753644851823267219988835722442245934699115923899986513107606750158862264960190666865293535908278991186130757964941863137452615222954083268140652406804352855310513415371342436841546647841936249773330096799847399343553377085925484801883461058463768970931657773976338752412240447844038196099180569165770112681098928651017698197623528663242389230201088239721516759788832852684657975444294540847199827518567375088454392665514897348612957562299016517459173533329140073850976946315308600358135024504244457944681329416123446832336786566221109611026087834461924836371104701961432175769974481635850510775627101954486728494363224421032204262607009644352690434622386575058881111662604809688279097923487192311850300485979986353839515695078165076498539102810810957097413106324882100905910571327233732580738355742367450532569668090465805623600616372631588663950383391228300104080286830341858461024784843193212305090947693989292202870860934028908159715505229974012378638469527126944900815259120491180713360838028594119771880953237791656609592530637358204579675226398579634415932346681245446570359240422415887887948464981969400933651507728313810913255057593516184539034193110724728929102195272363446680541954130867623349853814044193509891770015392485663974018555818876056452403615945828135460820253599976558915085241870710946984330967180676762112164491387920670342375905323744199478387662606480011243808892810667171116627242739878433337017757193723742992460993889429636510302643799926521729688877965957559284608848665338836221625726879179672321180115686083173303234143673047732321596259258180256015532392577983527464090219699941462995244621910044700406876846793893439791566273872751072021133150181667269129780512042565201190449816247153258224021152931646291642465551403829894089127796781429032805120542552574602233300790962787669608155019576778243753879438590897909425946456040538700191515947186340819618471175171715018544720258610174639528273463289042488748743799652098153739925283973332979260616812071375588124448314888280265562278497301339540584880250129272151237444042472631377406270517569058669221539484347411482369691370870612847782275268983363033779515072623225030154128094640545732064950877894638075911148872652947441139113378647724924324326446732580852267099848702105124256143882938662673527309226073858071966414529208426959523480531610727652797750750966990097468100185188242176811822046168521107219658032468539715527493975269504731774040904996061797949846805612179255112253986113735075716395133891700877890236685116293027394515546699974701469581424954081361171121622948327836160001857919510891036852482331983402954020441476894228058231952100932622175173779992765168831594367648042494114375844865815746013242601507009306612179988618737189207702962342610004194114878607517329685015668923062426229318982463087089490985370208423677375191705205096346349682304160363298819529770010573775955031866402394368352543443604339207720017668756840945974586691911888512215506543286894155129458581994834513520952877849906363787971042454834904521563073078197821888945036214411355861267257855458842492397590454579261356218258541206256412056555443473026330776647578925867953660167790469789981740612047807696686669058846443537653544116971053222398953911583388077849475218690122028935175340963460595700334062422353272352622733510659170126730461449714879898851903590107676247735444495830092986861618478898132344330578295352911479979915380372595239166257034585544773115297312455194219534736824276282348806692064347493770963530134182738540121300486507627572801737648359025281034456103933163275453472346970372089698349975789787612259869136887854663144859310791829218377338615332128712526321342727507686800771345721962982162258734256434603250366132262758659605277466975802167551501148299324560270596536506931195836446657047982469375561260262797959147460388652571905733636910269086374137269418340160205576162062385140292185820185636341115497635840309984040251088269582750166621270426598134812823423624783381675228917766366157389502458978080699852840020243651432306860270664363832766532238915497573404596564894090466661058454002771636679066144094593308291148945572038306476661817298016889940391371728251363791333988062387257993912535851229736393557009798094541468038128437925882708652367162265038681984989071031598315792184443269325516120086846121890630569526237798697612133257580366508652392103991970268830848318272114444256068703678513752799437180665082644880284883555158563850083049448392672605805298791995509262967555639895707377642266624963388859275060634266331586284832474034833053384511635806392608538298235113694609611198654288931848888071716892133861215350993735273760007549351738813515222909516116954840481843246264777888485293530309019129094940513261733148429036468484565747856260056007907798272395607118515130910374475015950701891611044557422122056035739067649328357389254710492186422782721037546655603801074182794101076307487284646861856807049773530398083451620091990047857128005135850840019262706004755155631116324751396474662610298389818555995617278637584387516753299209050913304197199913184185574566134866130238571679486147884098006383112320168943016133935639431603731905521115499965015895957683720575454375156084449908086698747718716602687813362264309905013296117516358377905487376359700575193030905294552598766360895749024470046455104432069662386683862801768315529217285906089351787657288333445809871480124212508575208864631029164577706397060182791130475260087579786206547747263983833691612986484683197503888703168011447329585651912934722816436242604499283021187006497296474158408077878329873078532244149369247984673022913129654449690138957271706170777499569990235528531679533370194421739628628522867642231634443850195602994728356454312253623571689924958809644576037678279825395229934470873795149702299765138667669394473629415173404371151184480136046032905846361459950821356226655592364581602054334438031043763144663281007516405045562584720559823089030799140393054953834628295550007857632376497266877084693476992448291198434800869794447269263334365634890694118465001073352749982782863127231707808509064438399264866495474673353823849844623895750856004813157173318925254696017151350319124482729494858333120386962908102901346192403529883159442646839761348663681753725337211548537096073024800531471494855717984275518083735959938588970742866181097586460202746356747266687006004795620764638811406946731000976926119426707155154814439598863509698473688980608908276808240168680866913592919546940801576485541287159184376914433687188369960474220506731548790099648736839349569883191574107645131081187343548828060553451118367157577314752791295720509383921285891563712744860669117368131299114538003870727812127037003141177298763849911644820043318456058957248778673544041079971846958732179508585921056214191915612047633383983106767073572391810966761473641885135513769179513680957346713846654196170075970904241392057243817969776974671801280394935678286288739810098950922552671028074055474904747435717911243105332057691840022282376312953960931762241607744660138792809305924214629570813839790431720067818553254700596166109900237208591104178043327672986137946455026329826849328789595295739845341200338040499046024047618674081524315567515917988199494928921346775894408152941773286562184660308166710778101412503679790108437304136454810071545128426051452447017477993351405485978693531039961288958775525974600894083604385339835123479019884166304169113685941231953940477231978326179951693767828870464303624524856335896552073856694799658256151265523320450192257529904571944426438142447134133198676233812352602344015003355049020793707792615572171372794563850052204826836718608466081561100969142719072194456940405541989474540892067435175973067528970498231773684911518552927643527025814197364718026590800410498680298365443057234716674728272596902908947596240920545075087736443240228984809273445533902663934922970583099713825044507497867450904914258410487847874903410816122720354102504658102596423783009312257647762517312893492220826988250788870271737752014104544650253732592479782469769796613454936507063412645162354843527167033918877137725723442705564000526105503971873574259743913922280699583650336882875408933907993773374148524205430493278688347290008897525997232832866939458977049102869336476100313467949781525895519701644354215252740890414190628109991957409803119707283475343001048708240870341081861631431218717337403696819037828255494939613655673104523901911319824989766383969532929680405810117021181995625679144913028082400429343717194866165567081997768336586998426259189556544087240884971690110362444095301340437747624073273554100838798418121732128523851457471419202819225247890906666861155963706396095133791849933679569356960383819814246071820177339095987554278761349683356262346894700864392121187593786724824075809639682029110311525764295739319868472291913232664839054211128532784331661591699702071013836653544606779286674546041928368468412598838059140178352950666142566905144844963391610007095561438426498173423843018936705166141566067797338645236928851523378962997254659992901403188457863393144404195743776878412823129452380039752772616948822253165988591434862124807824768856770691438062072549242191254686185788662131389886799629248744793383204694457541746425198406729750529449909783672222715893240288151996467407964652474583501733210913063212366896072945306805850164397550488685774467471008060656693222069413344220992455461064920393349530661824554940358283615020845592515603448399709768258042476742710777946923909590424832454748958011027776777074049125648058947737453463700679291149035221340134540453193470408420402026096171347010727821123599517499815083504817733965155555784743104076432355971529993667024341103133475230642944997725502999022164310321096529909291227213902712209298358392008931382411737298039299985378891363330761682295744268660846373702416465909540208884162645893209112740448581684598237200021171873585495664157722487274236412306344072493878151907796839955639367193403889411692253708229625437303178169798481413196481019906528393514606535134063482204149203190180737431587744959243833938628123573460595964559721014934809911916197204553232925689654233557031340031250405384358067815928846885731602804251064875304728674060748884613923165757408987561833744850623589915665921748177580248315994642401394818045627816914651590411029444621601032315025375116174204895193620115595236947100428054936376951225291570656842957065360219982076460670454257252695586019790447056224707117323592772866550076681228656671003134566997454844666371071573369803527343549157201422634852406411374924101968418010808833501985104429262468261524751955137074257191675651762889260618052799486112236064823476240022935940640834254356391952495466827070534644568077672875629778938948405339396771852051180613685637526072592738938033539554513040089960477718516439278428556812099517525662564327385599412802160304319293931698152978019782109534445358547135620924825218979633748230475249144243564608064817832798756042610065388195364836384950551656363861342261288274400713461577393490492462572545084433522820780340578824510839646218966445716601892536618554486932962440672529477703290447355019163366991272989037700413572828944074152437024957219978652472999817298443772751367603181654207220211107794525536347128477925493758938592365872610817727932305168682440545176894066295986095588884501685327199184177112372796396377845407389989871791702554217455067909130444333405195441865308865818977592671564095842922872214147006082121642209394538879150388337728359838222662301562832407422292887107226922438210767440013497870806094671552851507869778608369329686167600863750946054704478477038326075767063788782748742666361889635732305679444740336377705077341615713454125714991013065675628441102462207052942756635781822404081158597205602271394588752138984894653574008612334712871003466969229411029089243757335977013560505549349981589033840273503727004760140792638064902215134650460159018377432785861112808141680889293471459796740334318037093253111003443212772050980976786100227377036851361764433599725334798359588630847720765884643413583907599964115394609204264578923529395001951805324508180937395961094426202569268099465613920313692885028807456817115239806230212210622632269567354947305204675981946682822238265953328292995977825920929805301806336935147274422218714610487001940864172599940643042001787553942552363640325886645815401532548146934850219955436783357756270167083310661332459945922163909326034143415441295105098817066322021260668241504012832345579466654248731871778837235247283190355798356733269382595918176149296143936830472402247114725472380360423674102104051552733734159281941219632628346061388608790486981030521966264635932604591077513898646358858753440155537297492317443747735260871923341307346082013643783791559745429409084411483089394885645736207917911584418141493883978954015709132676038543152818644624964061143702534023132666584926488891110233012461071548578310155990265575117248001748595209541819040191171294370570407743453416123890240054883217461523003045946361316471458057212815060779037667713900380724429276099169709393911950957027477534486112960753008083788794762259743227646275216613333153268203956131863933848583617397946103962560028543776431270968194645296722347688369040575022902554599193784234922172744548304190740376801279066519574393335458753330811764381878046321198974606286957974377469997456881242378659243099617728646168243986818380401331870348685870980782929736751676043110480845442565158257911690290297176990058884444153110600695167534648147757734024781404235248455227350561855804495418348239376285150680796103244227604113005041168559923453524130305785966738240490606947941600791154756497820117436524583842036127359478426195028815638569361433419454143798996870283940911134191377690493514551088060835877276583791961476467043664529476918129315706507566323622697711957651663448573283783056850139150223320155367701757204402897096394288355690702203291565768250784111585278529859837771685138870649920216163829637770603769734144516464389404634066722234735528549005403848572700545907338458087156095897304710739721995416154191258561222054496794898651490255142357453766510010579658342161386840241373778343163101855101302275243679205000502236291577991756051339410492611321602922160028942794759865801207252877545424044671329495645320272890900719073532685708884318770995211374313008025632765157929086076693040179806877048623748781471921440693765225082985637306331315600600103509807113032577967157510980526675314519081776376943789956625862399744860825826298937485754525486647008025422969320920778150861585994471493622437325484878582066930997209782925644858893813848046334321195611227900691337158742998177326983966571662313718758917624511408619073587089551440883987499225887472219122572726614243299529541384759022490950650976698488894280703385695516373328796452085785293251393280265691768723802083008503854312407254000695320112526036588861491737426868195578253692607063462477673381903803982156520574496420835823246555444453220321546541791702931350459334989610120125267863317891978915054227604857804630998385099524167403201711647132015649285376335630185796632942119824222490005419086241684712132368617312145185987010115032799191823368260240057004538772012928888080705602974801191275380059602757485128570230569498419869156293446972988326426932378859797085384442996012315440448596882741720427807568754109387180374851448939004276997850127991650337191979804911565993024820054011115319323525214760571179333346978428215316766169491274000921041893009236190140821501496504743622721971031140722138682743588945670559910832867479826300256832077948279211834251902252199531979909708443710534441975463187887701991835484749242486879846599671194773626605741177691042100523621517055843256906481654295472734029781830851114897404069826793442647502699755175250940647278797575771428060436251161997401392708189460750786347882188844918591369571394664049178669774675824780538925502720359972902550465666409177726531582301038492491152319064339418570941720710635702194083284703303953985273874681083870637945723409857691659174016687674385630489804496802663969204039440524072674275910525621145104986677822776136619855637376112683176953555481566540505772394654797827437676520663639458831455743723577652526187932883689732298814973252688847371812403454809769960211484017988547379998423167785524088981672046656780452424718012205165293438199154499408573343925452992208720575980108929044473411219196124330205789198363623063005592486264988604712750526462812587350183363445455316017438036956209811940019235193692876792114106592996111309515980677366840568167843202658028409535668529053798950477104636367193836998445723049361527807291061234754351623241917599446038545065514207078214367584346609850962560620727660487095244648845593444562288844263970183547144224578861868970460458813699926368659464648548614672144049090725909123400683003890966756006043805110477001119948031214774175056840634987012679185868218645875689236241610591600672760174182088707072318905922655533278388876913617617057741235402811071765680242338040214530933825914240183515545606188261917554629800338611590049448539971652909260670318546704426102046853204810176933401079454106786448628466199428484398912316630614376257202377745816954165463569181661011762763511555744247223405983508171592241938716343331488602943266511053922736382172270353359179144766240129091553886874478482048263895510308424020822265722250709239871611015625393385440778403759126281062170271743453212883079012563417695804635155629688964353130578075511141087021179131691770729887147282828677409167896087747542457257761677702330984325494944051678981439692976969849167426607233042541943967629054297180953198774637176481805951625616080300607463147532112473547663182933252238722729544236209893140771229648078262491072681595547087998934170467816555744804337782170683538118134274363385907456322072025533890484263007450977445967132700108187215021901905163411891510269895900545992489858200594888821664715331737281572575257606179050049334351311135673936058304196761867652695894384266165411228112243561218726327889626881926006493377920599313287304890364934828079886203066086129129040613377154723955207186201796769045891002572344318719261204800566791348026463954618442937700368257970008047406092945274605063493256465596498295860662562884489505248429712113169624814131303196493065432982960908066780901946905599603677289570404059928701299190770036774689562909119975980910839361841407723196782573075081438265279363082152513235849430414961958423967886062705198770756176270349935603744594082422160985048989498148748788983231299506416765911074615059441659277881908129863658300649704006932177922139120080933756016094889853727229077999412743894873838148198020265926827777476428726057342361116045917038244788269232809544276414344029009953128623692772025341010859744192942762383542432561174484524811329825510481535060431612592391569658887511703054868641261574984826495032353698769877336260658539092112369110893077625813616348832100399886347905463597219395693878917561814868959845835435096246789079630626785064795075985291547497123891267316261728744115949639669026077444315829284992709731414868813806903191856796256613902951366631731839058143958034939380349888146605781311152165816523174240084298826224466553460009022684830116886797550206339704836891808879331132046632862280354129690714986129629593179485505996139038161229038604775915469698383055838088039287598898702730294690499841232798493503653030410589144393928951056429570856678892671720593459125898635725250474754758570388842906077505695963942956186012648734903959072429112934110810360578697854226841817100328924905554530816262047355875674152766261909799914403105871166877213318830880657302335525786340907849472857446407791365762972927276697106864020440792482026742933612129634946678444311704415166654251002107079782149393446264868622283574544768428832916845048944590739334463957691537422847575692819239786975949340556392013059918954964530516639547766170345055513206792256230996022200709517636463385438246772954680456519733915678662799990787748202556877063834188088493613756663305908390982599831984898774378147938253097336196914930597847500529519873556584592692025453262220173439746298489656988006299374156814120710536071063002797627794148540828696439780921606023619965745179555945521580554690687684867746838521134293626938385825466150033189231581029777253397666243681230484021887200064778329938376604294631118305208413339797280938508574068476706788386649457027849739858928266087875568196992675850443633049148960395026644635255206183533397700972876052019852182287671592939776439343958623132137371587428537334579287097192083518485089679994173654027348816945689284542443961138902880637774258023566808741139685164565169022236363371590578934610779804737410182265660798396087238111045344956209669348493254749360200244505257946344078035769033713248597302006011030763263107855284754632250867538097020811672934584062680966447979414739174691551800337320967303422790235291368311761575207243855306690431794581642274945673920326536870579137733085989114002017934393369678644009482606783607869540040151985612907003207251920686434184953310370968685683950575669267295896312545991141573218132582795698756161250520702165043423359591784288128578013121848565847138718724756761327937348107526897700562843328154778701537738190461227109502045249793001347006115214786228123161745259440025475467797678057496332628688645801415862319728591944813003289679067024056301674957649601402387981802831408555156725441658688398033768288293792649260893361044957303515425131374557172971425873963419612724543521356384936526340883791379112199355869740861757322507088463784436052072154149172991626124570610402218636805980343684272719455628713780266120426274655436254233890040102082476961284098633561181173659415259145054698561627521014616357502608281321153490549774852622774396340050287968591911677301636602069543295226813040212034437443575150771891221303993877314296347640469034989805826208647416816722966029013024456299430421805596053390623988516972759227046360488020520104223795189710461004099191522434279486136871943394668848687421995447041765293572217198860014131431786819839711008295441416038359789151039952933761834705521492169009038733994741688657302043468959654390333734735935878349045982027335726812475622719609249159832859540351589935087449270691714146773967567189680229326780384589928695655062279080977652035939955751420523335501884923514941416146638444470124257475800136347887692202586599021032760542034949472140371473644782789675157267990706319812517420134901673667451390477434529508983216090351877489564304884487814754553465800535957838697763945062418839714916181580663959063261812411714187164082565648210812965880383486011235144527381997734869806462569028771433612916214147348125097490942207125563372583939890602723189274190867021775302073644617905484767312640566772376392692226346275184893670859958339699971021900283788202729420996608596706712106598070635249181066176292925229771082452574324143905251704416460145629038603668935410681688660569973592573185252368025794373330881431123813423865105396824155669000150543400079890662415829534545779672522931202910122635559487673105334967916629036830201228736167026875278563201238731972609471971198423034352485121856329707839478766824835266935745265283521302094365046156042468035084420108798214493820538184956486358342390707250403478024212508747066879588638472691021064253978906569692465252860070772932853114281332054091867769418498976825424393896953466995940644258581333154971613668132894808272347777583823466744039464035567663227107066015105675196350719104110072492901626758454914974373554438146706016526149071476862165031635773572037974408186735179010271533790229965053029939123945248200305442570941269981623253456585352396037087453095921387462987546171249484671795997854445140834557771841560241569713294276502816411819390342907678502528888360535170872234675674928433132437808552481901626509581761270779220682746973827360927389624385247067370711985065292605038989424850211154858254480808878511196478357468220392219866716591344684388348767526526629775690799730886335487318034913533143619788661704767740726516689231054447079903387626735182597738165860929504435547563188260185397916387502330256692291140933055053623129091944169449008917829346871703235959643574725577174568260933663186705374278237104145499536772220577775992053614110007933991395376641865672411639508698454487100140184474039790617616448594513381152615952607993396355084946277691293867376706650120964785053986319177767135594193243994239275865168878636022716376192717018193451232051696305477180002240090171449326248625679238281599570676394982266718942517415939563127219684917510940435854363773057027355543247224615504287497494164276843693895778815981359422017985043111490446122318707640480425826362060030135987389088917949348820248192800202040041785742065185169163536332451507750257598073578129352449755832842546788586963685395025111891601001238219880478812297764329631081017075945031423710043606589204018113602388879655690318380718395425997424097643481518991773155455880853008385094736611188486666725562367481668733419116442491747300045063379226918556617010878956849214659922581016124292265045334277726867328591301338398272771843190839697861732182677057255975160855227866075734052848161831898832328508033064250197435535729029802093083605010951322652056175390931123712791558351511237690706522020445010356212256668048378866689482647986280650823732482732392988055418994372147018950011118343211696051905944017945935867805234564627382465944833442688594980599396135357747070653773558535061434560066279818522541897289842546978976398503274181076439407952840128467744878922182439599825363919396110699618421403331238958540748716009309295780591022379578755898590386035474308937768823532673803947501484845375660368342199346995353454764007768796080962409984997262552322057464772886676446853513795331484903869927565831981331251889710203941996434021780525101976245375821599848665613225153691930579967533166533500708604519653100329929833622931963799108333484658236941730366570368657194479936931741039024928014541281274018405582394337109037462747707744453800063884399192897257412147987167700113737227291515918911092244190682657489169322336364913127727468431181466794008842064617926118118837944714246738844917024119512036904678485031408196777672604362640182574648209275981117916193366682317301144433127405108838516741700088538592782877762352408606826900754812945628552808106365646358492498954735689716469914791849067843867074180220075727647467626473512321897498685825039048936323002128750788564867422745876711696597360241168821457479322036549640391025866424230774634767965957184937375213097058336674469912301259116911525546301234239329647309944130989325307156080284722756132281667105354109228808445786694020053537803811746236901587151690896399333217249499464456863433085017898635421933992152765315974322712506415049241712016231274739929602550973352804760577777571007497425122520661648029243125301603876136550428025919260928172274193740446560966144575223301466844370954279002205233430373099921141143720173632030875122760902729968610336971081236181627498925590308639318420489066926336876467553583288409482198400847493946022839422122854167964038865954846050737987585638557257905641047426540775354024152263337222267415854909265970716387330436659417970406381392530342806558796675201433951126342127165600672790374458103449601860457517435436990509391847586315879780117192762762261262318943002975715997793132892248339084223508828064532749958286442610833367885124967618481009675713751513729664273330942876752099329823483365835596289316811549807841685280453690018188992944189132972951030518163270199993188330062730902939892138541075785752908997496009527364988967158984968380520970832850096143887099770786239561745423619427620214110641701842024563925175314132581094989738432738750420710075404541641599886041744540824021416821410882833791172599697539187450188411222824746542932846909923194424826042224681208947715497674063222202001192629937602248499717802609362869882363577399762494997601693232264448628610310934856720559636392566892979869831423941417916287961356748302588640452962550555720162670100465070611860331744748247087643917444137057223399193325556004650749748147757263651458395614313039028736691398478521761709956401736032675261163192424583691499513030479418401953203657338545082604631311833667656382415653640859569942799367904468177627711943499181372029873732999571272238397610408704630673139510478131025113904124599829119295622395048665043954290797072532123292609656761414042989907715419728034620147909923179482088789512436890522200963781424725855343888435940129374278388941599719963386179089647029175923783654064360285212930496670745227358371749461139297556542004618470739074593711570690547725580631766184486504317092917749836550138694695157474580680145187708397004086311882517391295984657124347531509388876645146817867028578946643164483967634223962551651725748789470309366924141083104082921641407410615380212816356704898427469298559961316630885105504752438080345316940974635579166854161083589329370557319116321274097268630834185561630049725846744596468471242541491372047550448243263065848934495380531851292932066630898197474446708808687400967902372711049929803665622987161286927351357618876930265159717066556861456320004968297103266952785282633344472254787793800228785949529335232348386640664398540448925995080172625540772669803982803803954987790508877801566958562346668223528949255652421335966067600875662568528887078607522595276997365732695201140899366480008474855112654503858247220490666981869989412432665440131136499334175126486759681802239024698077070880055338687026831750830627334998128715928710456720307040011363342341033675210664300316741371389628851916809698299925424858317398538383224810860166841881339664861864386773872428145607062116388277960671366905023418057009597226787014756101416607649497390954236694481989116735100267057767802389990573009153019399355108658789525953564023612473953642475448293234300837913416398128887362488679819963128124968853024221138056132832140449858536598440197757576637963352915172259421607833329806006343374886882817482489521898376692332444633752236033094100126787784981715335964484483652829522466368572595250912582581077515040188175516900821990804964453805998212332842285648715120301588414236315073179926346078343852453551517496676051954840264825013976051024625087171045466684192726630721449286804569718203597600631180101599825023616759560099265884416429622369390791116561680032669453003256596827769246278289541867526071947719386318936299019268218415746326252855717189520198821545042495805152318741837051859745199554053715717671470062218076413265788872913991282444263813993756537436658619351966157277937125332014522696445362268931099474071772919458202175240069078133543112571045652739045847852681957865741044575100141764781909262927121517776387931718392022303949804854608814967305630994000483663456985923439105274469537788039133730533746205530285887901140930421018027546968249211240626747007093708282317755439544478017514285394652292136756212138724922913072133550527355010728608301029247814853674580851773542144111611014394800910010905450058848724141423036224589432342312126885988767423803374587193558251381497500873920643063751783823848320774654132647742562946117367748959494160720479455936806358779118095433761261934023367285585155221548360484133029400233683837673982464482584948619158500696583945951665351249164375439859659367066233308733968284723926632129081012263160136225631670380093188180796702057101017638081174601535352885050909700981517830477538321328003110847188389431991979870338670871763640622199007141146652026211967879538895034775110860048483233107154288915591665635399944812604713514717429013855884635461386852921170246252515808782163768180555747000906454086380522336336201857565646471946454667459632351315729996532877518409717387397164124854656473264568542112539604544774488267830393128590362914859878354577284561945654238388599065798628221087547313375271401723591371416889128044835704959450316812797733447238072911029053928075014305368659271669643873807143728383742652513572480853165242215343206828920355801903248428769322276433446117446211849430279145262112969903975502551143813040103322588082679215082298716776143973873489009982060858218495672671102553916905482042928545229049859430816431118513528615063810634887765446040926533499903222250432372041662485545115689786950634183848567961430747266745380393189761828881591799153254579039580734340444583994472360529941756945558657322219161008333587195663850843655366574537557305615954142246937096493449388367129757886279172423465664241447224940814469443681548589024420109610277830454280497648057579085986790349075690878927187380146490755676821291453262219156951268747056926549787299892627150133837275427462814064348522033254104872173577493321763511292345517122797478870552138541916637277190277335892092810262279440297655902014673238703081906189244123997359910107798049263864885224920125346591489346078497481408977062183735048542558804708409835055788754606807745593377003254376437018263678531869677637682078503127847679933395702193586299356834025392394656021109581259841371513309939028885848283035292324757654614468504635999939159889129793819321863450476987510983658633501800358537973001518222992305048409712365763233118770576698574190806650432748362251165496799177415178067017114796678928117479295429459723397692925611579232102881117150445344404740591213732997731301120975200341660576322169039131420997120034551938093213919725640916046645805454667247382894373571580580278720660904347938584547718889661347551309434273274739880393562427964791715691902590199176031341801661839467148559724530771396393072149424327718600923611312303532102790153628582618608083730986608068950800491961448328451017894332349279298015026271812341444133904266447203072368715332936534690451617687389316904328672574281387468013538397349604989052355724490807972359356936929005382365585298197301795450714459051385397668603243559818647362830635094206752386312644026577377076156883810544189294014531345064106714992321480109635242081072373157706931029820189339890165335187973250108758918186432523397995855671096217388891620277276207593282712678043945077363234473769294917065374855497812327843124856829800478587712000290431613730972774552262100656896543761078161870018746944327871723079538251061975713535175453852603420772503030588364759820416558217222584654628135317366370495100466543264132797179355716297859592487560064282069682356709830401722081887991060604598752128785597083021386590266341197988853822198724445480975640899024295616965641570682905695489202312977197297287990445566658169357529527475885893679283041249923907534118992899677643270468019128710600153706860059574801433680402935565167799974418288498802884648302521239216074963435077258246190691176481028818783369611250351249754743544759881727821252474875540393000637512601966561799825251594183571032107267882715583700883753784030642474740598221533841168596603143081778437920499335361600824017882020990506368891296110400588192396467916194441172230253204785372754623191855069727392859708431470809164606564929815935446473093294340573631571850536153498082461110741713583375779203281674063729987330773656180668395024075104463491953908142741423040758245896157475522929478238635219976980580795324336702712208242827729515475302495263550617947528571617870119817565251956401689274174789554721811237460193616506322435148377665619894428610237040880362302716925561313866590658828250222084155325192624760118161316737101725071255180048813817782087657350459888339581411574888739799573689529410480503510482748017615900681032200572477215965123514454595164742973372547776781277450617736984354718685436010947221949467862265805249437188455007236326253830188755886717970284642500543427610491998113278478965374697401177219945926525730892241135141117031941639046732455411764939983787906223789923777140872376085303304237266226663445216527895508948605749137189424528672394515885563402323480380575034969266623042020169657113644079789050012298907964642480461785023339637036042565885758837170448129950683190333704823988725236276300449252517350275486472372737863270712702830423167397880301706754328263849769363729549071615797882922313200004177553064383228760293321929149401751146974043274763416190790048174232313132192293204029856487276580560884284994421257750217430108991545256173635182221808559222773166977645418372731084758353965749350023207233336468715568945911506384599872910745394665535287594977518521945079266483857812999493717278357665492879876838464090490411595905204752455443195425507762145748578963189974334640075419401746437296105506391805397053243598831830561212036412642893309336092067046537130355690839097143889726167311800974348471704698079820930014935164742823993510991983781637725149618084998530906747166522844670405141951854941695848052359797803537241237099043244654050623135420974269699217273236006654495635121721126051798276618194122174169947480988130056777079960769424660915198085847119095234204483052124910217996834769844725625460700512994724125793512758516250616025687284759149652438593281691385611688659284428736702799067112446096344609831484908107372998946899560974585696264038936375642896837499373348488336369966738668460892368683833009918371456126919247213193663024417829246617948586470220620077473356879146666155355975522447046249370865907937754276697157415565645031706541914137929688124262774117902096369185350597138063456436986829291005120819213098312521657124022416036937837045893214788049048046752963842308911698714036600162969522557640810885250236439525302657419782905130593249868713222651699735204581238574047606754523170855632763754071833225388091160557135465538310651689477026015354283649030444380442234802387302043584991566179732979989072688571185018646756866048805034131337304726957423410851863223091655185540350721601355904943037247129728713157101543792906582377846655696687180698823486793221161260121296635680341689980569720432435833223512140018613381801474665728189943243517662536442290111797392441330743619859964298796642024307564602712344102838038094121305089005574025447258325370941440139119506249879807355555379935755268455836822182118642314663356946062952656840227169772946982654376464117887966106327159300391692778450214651263965276229659347182988819541865912151267886484047249801009166761465272270369664781202525262416571797153274983381510119117313503002097188245459577911273415158867154386709413200532328271779429092052465249642489342629912327468031044379579528631432670044760836782656413579145545687210465128476226869795462863158114037868143412694150087795012168709443856874076640564081060368720866816070872610223102513171307753900814928399514951518140683146014026146612950611864542193622622882869566820937648824862086808466853980999123896497174773359900019862114133540182059057315052294968541982356043083488796537122445571232267952888676604237859016341414925170420216438337578905001208913413440385308369257937750562871925351985648000253904853236744119112203794783798085459029722016305213002408623491559857075527855314805442733354484781291414461528948070951246665546769876026459952024625886379373779916416517454432119909287294491789447790810037527396511677127950326202088170158798827911392413213413966921270053416128541621920854585477713265447107987546601114683637480538573275663220374183845432485532960835906913645045145428419960739049640475830801131973984591841529273766779014367183108673138437984330304419513123577325522478877244250353164609849645929341575379108542363499585767473854462997115967616334047237553233276382296850188123996804037831222304851147151416042636409301395017060001778813652014485206633585166029438488193870836815405250179515593356707137930369847781233008566439948766243610117742945761824014970311468486879155694217742045109662023814077112188658313016835856942868920168985586290852516669662429000256447492274037013401130685434550907812319774900379520491907346277352201962017575580594812571901377194988456471759129349296864621016493652034552715282121111705278199030647109750342330416314352551495957204813642959201895628892537918126245366230250820617195106593036921433102247007165499764964018735154636912054056404844928567446065569802389127760673457228015648655929028503473899311824011993446014618469449721184816435613230458191066531765818841538064345481794863614186772727131559848934558599332494828800725442743378586426282222686580469524523545327131697734455729818235649172918936866455268941647143589113301865568267500393012527148347180396611994281688604743337288250596380844247049785417408245367803263979627872516546883570188383452452095625939976964194860765800544387428161684772287724596763394246420776044553106792013486658303175974708333986982431763369547242291720271886579090032268125741071905086720798753851190335722719122749468093046346135134968234567284880588562294359008486239316762011113168262396051284003511582762938312354419097726506922917348423965344459538080476960727881576664275250967931928280462214693988808822719614363772448671140219344796479191247129077849997498132937118015585765348764343898417768864109389930201613050849320980782294489552893478000744368692010016823874984226635359384575248882499812004786477087913702899033326839247819840766515979865943390583410906992121908266581441356321372855917758919706634848174483388655736538270340557287047814992141706483005353142090027183799323890939269327881521924304289994307623238618596076214664130299040601176188783271480648899281567603458163320994016404780617511524260375329008046725456770282423430239667542393861897051126610310589147570357817791758756258175249942132892993265447041123421455213480426119507622649015006806535092022249542934179278807297760730598001978324926180579175594937882152025170501588491143452873327340026795272990689865694310633682315930323103936572626566759998987023178880893499556472960520514897093499146694973265741339359770882622291530905494648837334106748645431118759115713097419415972980831562622625067475169337319217701583270957634611109135444781565809698877183078692675872441591217960293947116882919764174800050924355942695267471819064337955628149005779323734250195441255128305978447927408448742270588789524438262849323958830236605357441511761974754028911734512334736073889511098991496703384606552215882842696958544526278861360793552410213159112668475649462090182498761743166807657678593564973930139922716466913577428500672178395345360665202313245697254805233398949798322900370150445824942229182213460760726013036123550627541660622572185856341151468807640189147899916410966156029830575321524575472512214917063812268351582752797202225099824693675325433610542347656736976859666919789144038043952927380538172552006231423134169631543241332390748655177439829138819173485380609331770265278470529758403779415059923809527955731320488968363709155095253627635515233115496470760633561835009419203830850308630830490724989327249387972245097681563707293789019606740395989265174475726971933919180276661029877395071086185197298835806374814135425002133387729326235257498788290182887735357575883355037602968890380929635968700918890541894201949549832220372689003171156293391790669388447564482314218265866714967015886433792060678354065502980624035798218753415736365386022537539047124985968416954591074257731794994861671743117896983064730451270836548857224505392601891105074751854417963293864862709847560223151028979263854674590267993857699751694630127585316732117402442305155474802629031286632446029788474723116853748334048440500588303218192504190081391326965225747192910818490611298414463318009058901865451743051627988818736288698064387197966021330871196139860428289798394663290394671823612115551209015360478861601980961095509777603650082249355162973798687914226843122154424430450114836506017670110139852776512343146049528361149539219280535078184907651934497478238583642836787133638780618818262307916195274615821651171722592775579178791595202107706157323354989710453253803554208880924857625427562288557694782705068061291250912319917150532851126033976698290731891479658369004919902001462524995233339581039536068863343897034237865283830715980535776630876230331172384507393182224722076754316935084644950334026850367076861204466118512589690157281452703681781828366106184083635894912170025046498324494914623373206357786313361263872604063683116805291642083320645238945538022134027676327246731162886160803370056243006869543721118120351830628785818049305827777742949099373692944721493590597499326672597918671761770358279342395759612760153641474676118155112792287481031307902008621581091382364744152486278267015582545084644911457012904113884281018474133339773440930206206132692801917456332348493992983422276330663367529145574364331502840136227039595863590468568220901119869603134914531850242418572671789662912208258994526310311425522605964066409869360400946412724144457698057469157687127435182803397179666937656387579841527554515351412139037492937270761993054681663185617650476130493685226558260776988109402733985133795814567798009906011882784911096059648494060937629117721326762735402229004344981772322944338185593547680211436734851255503409158776590675380993817493399931979698818525278120997373097126274690058138381977221340436906725012649314555698221103724628106850473116464791130421125732164445110326050167664779440340837431932388427205715997270308980500576016373976349564488479029999306249908382993278958238497510003504698408651982306508421018006046797946360089872937570147690108232106795384972585584616982864098449959744472312172383661339096844793468499028102364073607981130438492784604599928441115140579317223934930139568083713644566979588703562968317476693095552976239904287781813054764975713414202659009509134627592088037570068656832957435813934321602779014064983733438823359983128336999454729985521446324688015328635523819138878751002300734867600127063461761240176639559891135800154166241100320667562410361269417756587182858561610305475744143367138895063923363014675064752380259924915335080256492999765493136890795190125599093597200801113429398042069457157929855053402486879279062702029314949747128876428400015168822053429539745888131091047834764139924853201166894169247657954189266540081445617448581456729391075683354741704197037545288567634511931889000308291819400684336250382854975003627445894489095995580587788522901166144019063052941444008592554063290744592943338858504254961787208833978145926049789000072171018252917846681312047855451681085091775226593265916812603236597273414984591113085566865794019701633815745208353798005657436915611712597781039102357713793553032836338360469464731864891488145812592211056917222015584135264863214087841721053603962827706840329986743338257629196098658876269245870508961039127901065442946796102584685998363833992065754227346819782722823885834454419992317230067959692983381124999339744936435473920236027668589545850431224297984286495923355014512134223691244417632981840265061528519789908118446507517094313720016418851603843094990676807171758256259344195574405388841696569125850853397105853826538156886903698545723951032941110844607242501575800441196241003798543526606975207454648709228285747996543728491001110098779821148792404539736130636271319698437819774090763470089469249213922581018462043663428989400624713957099541815705733059978940920570016672507599755605008471607323363373748453244569866591735823154922726584950561899894680704430006210355841515450516373956424771579533983567707499989245812134656693780983385202743093747561424781098428889307076272349933647029670357982741265301950212554655755795049712892922863515413258450039443107720349427788758179470799715964458311484695675846323413916471966544166578823422238049930383534247006591940938425614056511415769134304351947667593775002373472897628276960287011028945610179889662903193612985584571573569478799256993694541671897584837063240950200095805605903897030735940395565487231877799440484180707333334289659304253230695226528227023023838009556528537868704379420895687844249706089179498462853981425188125038291466145298332028534886193876140206986755271496544280149677677363385688918377065893616135776416379470613708405574762219074618719621885676750684935420014132342445187981634967570414568531004607988489149680518248597390138421172185955914329485999357585007121064701466148306387868274886322150566343332161987704436930649127507999633923514919236455462078985180999095171313970653852977395477049633696268264971797348029511002128535471384543736564446989865466474606869306776781067412743736368358193023403585210313391737611092526642228809138986497540667826283820199311552557998557277669644932103012497165839706379428309138997775617495152321382399409338006149306686171952687077538614010127228410598496028456921803097470755911727682123684096876354181519115595115981822582798838688980143071139969486480456260245432710106008970321295940031996256938459759877146540788497922372184666006127499196126332260199412489070244552387076925147392906798879639034219342085182990925179170143726745326374756470853360372427959922688964503858873611731796428114883096342283819090845583401902538455738154134084935249845053575427886169051807799174714632168368197395283947075178281624394191551952852268026238690493136913383085148452169738550823730126191771555781203876402679895910611420186619607166268840258364324501725833398514314093640658018682363348850254974441465450723298241244663852307208100617709212103465643188647612596462104522815893825441112521932607033829078287835421879638806495820574589564747805595719802858033703954842848991823818769579252166294163681302827719753507624710132833331548503248784917128913126792914252300804347781786962372454170826740643912619279219467876772986340820563073127040064561659847120620512596515161148824487673076647312885494411196258697682027030563311998092215955601730918585124628827276516387050285412735157148240859511516397238358634831535849161791872365397694410759219326986575429873388842548102579624893693995086940208633301479775934521234766749741932664933737928102579513762618887348402658271806642354156061249955877229589718875205852622491901545875644740000014837066055761974451050293837549699110951927807203300442076192218336843044141794024911259009514409403761769055904037729643125565424841821309049944586294665355663108589096968269770823865791133577802463670910560356187348024792684664152807791042221717465006402512709409449874416554220622157006006195727168061319426358480088037605546038273750448189550263165131442270125026997023396723178072420638218533910600294872250025020818854473402750101003548790543261730582747075238708511888029376303532015776382175589783528964782676995661436748339986149593886007023748828830685522360522323339574119867505057794562782258709774559740408333102175013837458930683233501703787960507760028507914887320379814031493747994684587793685302736263914978015148690645006205893404186154331551382704700280119807015292503535451806165062546048490715770610535810320106344950806377471995972240961950818579352214421771057753784333633629617490591498447057876988224275090680058991904678156157685807114743074036511189032271462854394404397696831451949289599964637351035953770354846009310624815145735002226937545360726282117462929037559505023062656615992390624043239302384268909201801870450636744805887390324575421290256676291376851308097171939310976763641081959889541848869189579747484870421712991461173804957559834212299883373578703724819146264367075653202783194730869539201393630282636797974255412694919963959904781438115594573332096834519127630088152562665360654368654401991127558498823135149138462149290031643778106505554366186023607780284073026651979651689757808641628696309098952892156626122058406448149598274215060380497665611277862345691982121911446367979287766996281000805760996742591928311430343243213969624510679563469472213154028693234156344130893251232243488636422691854631567450162010705594337147872471848960454979111399152702680819909531733167722940378460949280122116012178568417485652380762518311357874857137947905196006214781021246978168370475617382259979750029480726090459702736235649972074707606152681546193047486886875493205976175590824441634656402103126725972709966922131163619001721131131546666515764044595541576350566957946453015631065324438961974015074185597568689843051849677499322611378405267145823760903355377810723500373688879714472694047826656448495787360153912811987512193755414082107558026611789797680771733270253224366811933537055006501127708403455363854768681293416460889862297096455038538721681213285944230013200177001996516404362481440593549283713109898540708842542457378666275447541141480618591862256101936230023593595809042784207524938077002322893538040997372085069411550462342723274431939570144802511732706391545775258293488225483998762985403261158938850263638660009615571275663548647681351557968000149779945433677036076435752329765845725223485602174034948089687539964298842657398218156557657591653103161638082311566708448115605011858161454739453454643588553445231243016567460672538972158698076258601013188566393233336181504112744293337710154458751078269105736962898057113858732515319780804855077516783113359356158571928504528790181850118600021870369505901793769873137005587297309161066614570651487409392354444871547261305414393847135554275555910793489407727895203189016418108492884711384049541836594948675295739007421927604244862520325938505278851651362177081006835892881254351963615764303934799350931700620830926062595871822714078595876337241586480900114103916767367645472500366044176227107855741655022551634329587320769619384585658551641088656868346521050183875346541269353933023087846236797695749025055145614165012538412159517189613174240206852017360046666823270479693704681319096683815986117331481470804639051900790229659411368263365513231876209234822899853201161288072511916298636713105490131058294128364470028334071091145928044721240882539563114818336032625202060246754805550845688654532429002089555147816956076943993574295922784237663624039652852368782359272026077263350735634350224985150119659541403113232704821497603438843259914917986454145588011660308481078135731817473648632712257791803646650359036977483269178311425046410686799958840639214027289865104731063077249722743313403561502017742572069999811135825278249609013478715673955056935473235319558482771999531006037021716466257521239463461675226291481869538193559240713987020599972445324082018554089333755849512083955897495227564047117629419464073522310576357627367432213476234811962915702378657034600278921515866283812577841663931099207879323056941436676543266217431972649172912383999448630629749042879146365086206358071769799968857931430181717392985460748846920132537528312444297893742129445632605715262997550124172834021694618456470225511195777266355023681701866962656570895610001358703252233984193705206134199711974739292547217525842585556916027375485595070618833410528612189626823619256958198788393424112510377072984359686828542446242793860892646786470312259535366738135780659271744304491612643201864631506136052747958426574868344866700677561988195945070542116087550500087957020321185931020894394997252746353988550625685162386889163418915419872840812407939067277135509785368832954386169701394189478759007128861058335107588876057504124713097799094495022316561514358514358574668075309792885434927652160823270465527428742225250915223614267394116432699789456545885991377480348102532280324057160595382606948515414772972070499626691335336806817678503971532929271362209890362634692126559008730750305386361881465779357003072198756665395022138415049984365975677978285319476629342085535923135016090796694854503414847276744868245667020829071797263037690786073662624449971042779168214128411576176042809852769684486091136099512374192620529477540550602072050159688920886716923867243519174445611974812226505670189364688822387804167406967246981893491260639708319635366930312598169368673031043244647404488470912146616382649166106059066207780899918268652369249023787849679284311787104590295554602272733153294050268000616635121991665102775837457008229712668574749656429386226070951915872526424573670314306311816110559555308370738619977488133233255038241926106910591956977169336825607020374459631502003368816749608326213861306765690958435416070726651076867011294916376136731494611845564589281023343402153417177376035905150916690229368809416337805049093977824766456598981983582516630375050282569851792387273106404757904871921242601863857051992556482173695260389994778315680106747337193321132349893498959348203263935640497451594517644783102035482063449336732979925745908769770991396274684713691891945694367835388142248773650344332525548771763800266870924804512895785580659768288954060945063358705069383597535113423668476147599884697210332558425039107588233071503872967918112395733677605192631361628847273512634354180866532506919055457117898492919626558829051172900270613059164681523396687645846202688383571583964574281923439512552081009648921449702379102367801183334091084172532838554825373912240921836175929730684966433780650352609621385318877037419833800299356655974015359247109369960132068017016287932153893518938184361089017052190341558825415864647448847616619394941737816759326199139232478153209237296860912071946401463541338003455671671739837283067602523362558819459322688019532337554144388076932288780335459279029118412982532130622659477749381417823327195264277388408134386943755875809014235992505822805977292684191372809311448592339000233279936406445869254471106719865688898225551920705829700375674038772869318357123844355997822261584779454461699825940844981373332070424924306114636440653389851498702855863399580221181974026541048711545442257732146263451180810823304024573281215654567907312857833094497820446744008706059213812517824467356191034786334373593032973181140259577225791781490067173645745201623984279000803868214810960032159905956498151669881487190570826503472410624378081581082245793026601191684387945123575492920273618643858244791470118967748306273033630852382772063092159272436887533786961527695198133454409869770414514923017553581771076873759377794104202692899241346587478399490971095279497655402987767014668186833490873948075486477329516759795542021552451435440103736440338291494662662011340579800388863686947887098779177242498825257979425247357594911015484194851878554890275660768741814018095271054539687417283107564451785966182130292855673383109439464948309617133998578432448843046077349307358402917305743191033456962744426624122559219365345152371889393117173181867186369794159359578351704242716317108748492665264661639149219573344264042403570558429176691791827086033744217718614588329657618259109447437186133068879555358340386021421253282972101659876801260633489085108920956943262666630396901791297352620126876343656795810406423497836151869784890610368149541208087603194596018717119490023203801430578683412342303341790843966849761183307927382643669703439806841926371431862439188635229320500580366105472048274834568647199838679766811569322924132321693260981232025827869583972492383395523765506245281957851558146796411982577296696176898756777186706808213091848708871161734522710129322211864935561074297147745254310601858855151000685236073375860993057107101858703941526820695598878896644937182439739739046903396299752137271098313575029758539934234905730039555261025343120382296751797895670798554119265434474322997703003649936188288295759350749407484767842369113899584928488032464813278481067209986133099675968850628596791118323308739072049881890278250683501267734656599562049282931638075511303019571007782971776873445733711522017071923745422389315492827064180268193175609544900775302697662096110782819297765452299200932505839794590114754020325009680296303213675217662657119656175117626757343047888899625754216074143997330636939669784532712999767766349745163124603650074702337106368026594841154853571596735520692822027540721134210416505996726301339658780132435300916444325280208179790970163593736734846214776782912424835992060591329162331937008393563655850257501728821279546211051138691814936645814052750328054337459197232367930316068422219717711505067491373372415549298928566900041256294138387192475885832190427793353203682725520755245079322006881002479812023456200824038064812191267253033317156661801103913318973573657737985887855509651268212192063763101631626584295069752590648203079178035441196559854386381449947691085590204517016729129798670220992303761493572144642167243536481892565072231808099196545248411164036095958058753533380015583429518978388096354054298205920683571195150350519906440249863526029894564572572428844301227297340415686784397429486193806294532150388323425109940532547999760859061659084135189603592309956179375362169044261794065946068587790902050825102001653485107067046353636584607365077962425911991329884236342293621890059961616340669003661728478878310458366287429223969893504981537222676565405084721807715927102945841025595472972022646302278787550258818085947423020855031357409817930719801384489189654347286351976083750042002569754545795521461820413711973027387695568428520751526397834967096040759726513516885739683804767910714200013218288169847651227976275178283941701228631809474899265510264571993256329573112338421066525838068492222410530296259887243050649379755433747638828518892646435605764174529704476837430570599639315875175109502016336058248367395613395105362321693462920490192767639935949450328322900485375568953105826664221297838522509737021818296078901631070423750021823826358113080345464707825328603406060372533327119039767002814027672796300473452745095289634612966430661249936054577686180529516301252380434047372145076472405192336867654196548602537931032546465116641451849922547537489994320256052203710254231514592483822207135409431720448187309160681223117831893698214167705545942888371486393599379881167919562737633952999955221973232317184138440721878352061621787228676138812626322810802698473366457175895011376331970419744912223005316542736552701175260006938986792603644276297961879789331829618416041886058238968059601114739704880077459589792047993384709091109153101431903588945434290753233706602940776357017903480250979948975439899574147407917202509814969696631669018645582529301952835326642013862690905489624858390883153626018994716693368277022042536579109098915834222280173850574401813953086975861693571584958664358128355844894179670534073413318661035005870320027245387649005752829248651174301048012335241883235470512498958261732382079579211606327721087576812827210918197024317259055064469208620746782393678052910659690788750136737179920262893025808402635550948829123051661789669833836016517708873502732315725868385792259697217623782076562279162016482998536102645533199372152512708253069153679234501721869975853580955678576584592894744261372974110935451824318722495121027263147930478779406133455957265587999891256871079005834050816041101987138670465509555127486987751335401893606259219280989077472972189386257777551508263086400330683203580717070604014637740186087524532613283504870609147001582889667581438558480419091993347175210905798334064006104406846624510564950409297518057702086490153181281051072200622008996798718658665914993601189026122457101837167392069374058432229153070690667728599578880248651499331703784737468022754573569849163015714200414877202795568573403624094178452831012157390287137490874665311448457867550015014635734409424930235771175118366315163945410214343195850321269233455911110098609911031067197955483870377406351642827168285771643062677416163195222133225003270390510676685440167852182549176292260843301037176939205851926988129276718832251841049167996364777028872006434307129341559782570580468730501179346023518959290116023874287785904511384337960878081184697563518862225654332347195926078646646610217073023921414936713105187612298227575885689151233459890034813318387358550248063159947879558929720797897288428072344060210426908452654124568267948754982951467458549197241619984643144627559361716536780073101580560976564165626004916532109678643347336471302217342127325935609272205535897734777631839996945744815744149853911451455545683867251930495822444153726568088966745481658256813840684767796993422481908566506976393201239266788866543237741603383601135606907054060560603794104357088249605636670338366582788209848266104480524669413960847394436907424217787870305555586184461100036750407991069693794198035750563058472705474485962494942174436060917512665008004123866539170535169311552829813382764653689297162585686282304858612039104935375081509567530555681891335996772519078359562411448897033405291951445892341406069988504116394704310930357435457504160992599601734437015374128816853604255698932334111468788024740185637005520608424877132531441921869830940998707258045652507560766754930758293299489468033628911766908122953387006513956662723911524096778791796931373779583471022810606880054316789580981422754465693590445749965076567878207542853475673285561391703641403761426114736641091858959449042828001926329978034749198239005827465647152353307312212878863983723927681132480055554952470640020609144305095187500425784919085928425447673977092404227760695438759518770016344873718495866109894396704595586144043105947712089042412769524988389547311312143185229955046887809370808259030393244199624951290097512389693720081061638565887305087516892782063449851602054981222864600831453696429859302924611935510701881230656969602308465905853120956444093790245454732976636324179303359451988333461913632876244152770828686516714493316330229476558059192134840097244697776541154040435277778165417947684370529479733155326626218284881744494712361285714184393425500901451790822244346836208021779940857523016419033043870452748100637321969499993442209883415657438384130190629219463889365285059360116464490683715757697767676935076546849467553498556620953791278320902977462645555400691579484001065963519950645147284989188954183715650731839128187675263679458974453307448465945082152973338806057295201001388201422251508770831868643441878528255521802248361661971490201839646526399374566297681694222265907546759392325848480494631296144408299177085267238459399001809672066223447317554550279218586504542684417099084081435955803317374816181173377715020229869752126833484687826219182126512305109467051728822803373843556461031457789027934576058980898154627263977932788249848459429614666590746724123647790840358453050327977875412852837838039720215808799776364983699527207381602982462845541682211824249609247011576795871523506648659597835626561316997844581516155635742139128954684567351187217684994438318912698792879765818585543170447303117172417388584424361925035350040524255906411721205185400804574424175914051953775297394073576159273881516285722543207184920263256843612271413151275844807840112301767542136971329212089269499076633681836469588475672799900433746664544794396410774956326175481298045155845642517750827104591113379233495432292673080445227777953639319664128990416514252095937654901056508538214038388867771974965717418840028672757156607456639395990684443310282943845067249492409820076196924144055195031406322371681503210321948217177229233752075919840796058589915166565175595334756837350124078342352934651698167621084692297251599298163246941545359317760088480376998262538250150994341116753500186916928488665954749532265333898227715520165099278598101629166564509933443522501395637408598563860891994706396801145029257649334014579153004839527323485219497238190293154935652158100076109491024942773385392777755925767704941563718654272170514212459098318829615598556216975036113178889338017282121265695611924138968719160330331459199256801091676392820444626056599088250286891477436888785666322248521780921667451511463560193077405767616277231447091791436216631383476822245131147783106343057595590323130577779591720397140982956064928008878836899050123253095696801106735665017492241849137825589962580194527544136402093276603059795057853245743947968788283601270791096309719293033886556260553338069729304687143678093596196623922059235767818639114048784826762539455672667659649463880919416340180197942421144588653472302470862425121056873330505619506294582065090501966049178384232256259834182017116634246859703078293270794782916060029970845678448978889511158762816645805552790288337312768410970047703942133399289063535623269366887603157455870579298115152717516688679095228228076059245008032661424124173577610785594763098753829024397884680264127835111240508341850210263410522626674944337631196635408755721884480383867215290224427884133463289328738831903789133628136663596090471776859411298123072865920600027387931396346058585044760479150349739949769831245666202555058193149932220096317938162794526262852616154263115603761083633370263559752953055260624107463820873733463778057722881094394467130565403822930779441402030793762658047172001908695289641896473641720589514619312589314003420681142012264385015269005647862382638408125746005027393485329307663076385502140230908063621941732763669138127378127443582777253918063232172819500903498867952496980803591248990534357924526330549463483871693912108306340115330714160865380393047307392693061903461260371223956061062841901581342972325239681638786487841934797270087780892658244364376658361379024727123079780626864354020907039750146560497549799212522719730761397943978403667452385232246429311754596273775760270340386527941648556934516997269084429280583685977591699296540642804235793223105136082384807096258219739972139833760418303758054300512667620737063959520870740619270525376856418022988415757255135337777937761380038937553684920247835178338060205778216591856005828591498123590666231031932410379503039985319187299575141136187965166836728522327755909328393305750568164778640587514035223808396329473469643881482379305404349452730274833956586784738900786645823247840412609307729416861753548380521886523905083346145595673709025217027924113185359141871864204414058748995023439525660705520891610351631856469764781950101317011980713660788375338109851048695502149569547392435853955539017267427590175969088940166932736931007300722048198777545447006410656338257633803469470001033314401716785993745572625169984587118565302097892623891831330101326314512306871135440087980193543559030210893406875982577136476566967689135847016376216208097902446828816889849718343923033716989724514736196733799846629673318880772748609312230710840172761598348502672523376058744053355898682954280419204605550452077483010546396627879485320659128174825777673609589863271162103749109126688718613938760260474905736752633677003800594390872692460700568935311070065774343663517072947636248803429236805564287972541431623209550419235462722953694964273560931460021703704947592982025465638682317635527291703270692114941366930313362451180938366632787932632386103744077129653205878467113532902190171824658134632197463285539577341631430043456784482916836399805337527018922604079541156300766045537507001945181137699929294684748484293420240179439152000417117584505920684138193751325585101003548551461932004874703414500767159437322948887047974475794693989369739698411602647915430206187390235294058847012528229338607135476304961230190442061761475260832831052193919520292898455743009323234557627823091926630272722610287653333423475825573269022133932712283611021995372546409357087652332744197802971703187227076887448849355584194924408020751603802691982149264488904190590335358665296566415786576494823816321885737038212015153669906794317792435370768746067588481155059503216682082819526344027586004058262857748730952223012586980975502271730471465842379731015923366238154668689085045584184234449325787413939723213234903134941432551271003032991730711736919289489555214327988079392614787808290577596164251947555885030921377448799113739131753386655325900376378560025535786398018465170577953743594753598045829064128160513445119148855032846009411679568013266260559272702033100211427180985409779200598717905716668730597829393718758636121066357130334638087385215487075289746588294307942959534503836465141327770309253076591444292512758957942893766046751949990018210005420601285855482687541326925751201581692013961761544715282911858272735537360047653966738506507495801883274149206065974328286520864996667132600623719195186689837171470790242423496435258924428767315665586574501910971801536749512332328091431943920609922720335605666525296008766964775478800479412562443141229528042956728192919378679368469614335867728570664688367562132501870526128888169289551663939111429220676825220893385215059743490212386714251532304066821688797774366320527611669130334636343188520762980783760109507147587676488161751828828183638583388208192080983269624625770985236989998552907444476032731519446309804071507125440182111408898430703312890276695983748945870897180592895563982291644319167232633591644582966393282512773020993387434856455953668589175045905251847233183506542598894825262750970331803231761607981950905617501399551095750321793964628882267134063336928772409193116840983682501475704425057010555112459025209430446224953510649750124027593394462624277905012627646569165791877916300526926423189029204468973946692331575125505631391922131058261016032402550683783682558216634488165063026684059003206451873134523375916002894993299561939985900786235429917048718224323056825303175367706806561196648520209926704989288222353142525665074808719767584020813883688884951602640030575417931719881848823027663492955501172132953984601419751924502628725397008867975573168643871470116040947946184872575937998013590244686987854155985473432441869944349836752219539332935362986509327042527501686091384535660033122485410176321599928524425151244715255089235125641189701957937453128467895961416034346813335902038213728908954057571394338226595891885652036446365277289052206420417970759091927245174127851232392265543488139559842446518828470247376417574500320679276830035065945651459427839395467127697876738340179271426657409692091255243370251991687876085822190232146973413411116873008393410495960818427689997291332118859281159561880788727006118335469857993387691172112777314671136046990360884662435804709299108426013602651598685513598734123306975619813065103368820535704434270328932771934009415534308125104147181486824751558082151001817025234793030534537192727596555332727983781900975979365019621481961352270373365070543072565968353989724500481824002263519938841658320443412398024788549008866518479913148181080383978075562534412163861270322746628234321710915342910611668212517638298385371911462212349606900064654947008551165145813904897630280019338097200682622375880826801134814699543877943007546568832987606631991638974353507998510407810088142288574326989000542015777840383527117967021324616744363975779822559829827626395885012297185126865491322688638953288773674973324617577625631235724746188635473773624248342209361971687752737106031527304685598848825644838881570345270384464331073423618266992004380873109549609146750764754147932652364772076709111280147041812048733793755777299853691863893645158147700574297586305642622352041380754025821996568617945558850480035629341745750392605674037827305530894770789017844208708010611077681735558333564099853294243644186303556696483610496436430354120019836591375133931440789287300492630881547406246793380355064611395877346372737790396380058760274475235700624282890441356209853744985118271757891023920137916229862938680066544972652746904128207099990621820740472501306524698897406086358644290418897982058944339960449464368837912475765573472913248528945369158972108699304708862283023401001828848705463307798388218080549824027891753054741676959636227325211141985805942973199330620084884936204957280545676665582411764376641852859960978780139684413497217686167972666272643923283667690248575565491207518044121740220273995319068293269475216766265063053099036255576782022433907030546763659345061194740135968647668560230142066281610045850585537004298097026400765653844361699249024749639791062585177491436519406649853490522406373683087808114008435386297803643602004450027442264813185367408368496686615537923497368132533012989771170852082253023223193300519704554738024387516140084521979617044632796221103918336975693869107533988397735570403113176608058607405665133177341355302126099730981862328007902601463158112623267500965846436764966671162473882651399647684247711022933596676908012530412294145885707195497532937083981393575971146332077015610800182816511717906735763484239786500983419740773994992128526370734308118781595917765978920497339777726659707017147301082922177226072566453915690707456575520084167718827860643802535984844037182548811958199471113994279236875377647067879308588862736463456029987148970719508076740030625634579292570983171460773628808026548704348136204883318326532587025330672410238735876483413193076360845295107386411777368960263474693795382139172767413668203409255986339101102989610476524203284681671837810177146312163316362060428742123648916512626846014717895818944369103508761056237556466095005852899734851643569876357129322202916005169378588638137637468095718946506770029936629792682266883915678840992849694202495095587037549597666129932976802474490160950433375830233575090407357424484184760264057055502825004675561934518911824906411158273677404815337667260444606294945246251874129669608548477990638542665391566634254465755473979971608597892445317953946343546586710663138395982955104632488652104192972596499199022898925863026785946279349308417849719152860457698463474253553994592415912105435588519268337456918296511540912498022408539308975530523062051455187292666357322665811862515403959190945370328600649331246344358695591286327890271918441545914508105739774455739932414647038783273779691447554209966729546938175708644981279394290262357539731746605122194432888059166758714397232674964613896704784830704247570761658274364643337250937040272736002563044279210729344328209591423991837177016359331402073176566839479086821352036854699048271500003614152162519433550452599297700547572134334438975936071903936170108040138194948645307155136238094255386779784830694643536493550403647637685696218025590695981626313326776309274743683549353203401738818807656589379741010423715849660547314591905893282725400043298038263181269299662709844532595492741246967148401157215905735278043131660319325026765632584827252240810217267916530690435075789403162061086097931889164699982214656096424008424210738578426420244205115419618647132967754713875767506697964603867149379092833769785584229134130462295894490326767958633347175374284427765596764096108580583161256269789802208619306482986317900411206493607510139164924816595062485581789523177771305058321124213989278959282853290246792338583705542056511848841507305327128964520800638350483563660956330550047520994479375582126379567792811291064298252828172909889862337813003335350763401301338821857751124454660136277639568992303336726299481412102854823642888259205693456525034333956148977704130045679147144077440020117616666065442906317663201726480367090052959067725775746307168581290883805747684491263654578467193147025149040224219625703793986871662446786353087006317219620810575720352462980630799671117073659593221191845558791265830653602254899903803945147626412079307241518034834229832043058184093375740561011375567189179430920838565711506870359374750088663629624842581936840707359341891834165088736014024406934188692157874250978472600934502873388702593683272692221539224471859901996727869944862399932037960686665044764579734296739852741660183585344755443163945328500270191104147309901389236617125038684093922259326355728267098724154319197633138129541989491310273385481634985106142610830934113937418782668328616224229461079560298816795783757535722554775234110241582271900654808208702501294833991372618930509771394202412493513461288041620981082005253671035827740554590110866471209631934121351253386370259007331151833419957166037621130209641031085372581358649440110750145863295832924197892959664335361516626661680334565057344726482270216103904917751939600926402217687184449824178749287522424437413253927345228602457624977029154640491906404275828133628733979099010924575919661316578573803782628114656819336952586854090850701706060571223168869563452400117677253500664861762666612698194499170465958546252602167019250244912325566021704889457859991838651818795101826064367336325704966262515022859817814188360284043257164230857781379320146526049922618663084534538489501503215072223389138731531320158377575382235281911571140659051244336064417334292090582683398658068650575922043009193505933753889555470156871891401720475579301042642784207005396642980004810921925455555421021844734494688760176722096840857394657354649999519314262339799103115905665848982648443943578014247182827826412971253165522553109264743761887253541237640630931480934559521259278761966581671376738655868252166481371800471165661422536914570288867254386516793058263793029375457028020534907411339664866092717646572427578725931467899531483208593930473705944450720030685523387189175554680704893262750700031067595185861258988943514118455945075810054088200898593005012906129224737566950979053252665396218885162724344488281493049511922369141307395113014866776496189244003431068374022679617720457830540226840267169030025972010971044765384109942900829784409840018071712357290269333379919485363347426479616524360828670861484835316225016323792879692589296055422205413084093724735838071277377907692832826494799249347480507558986105846152832610880518021825197485531247802479071383224034822514226926090253697094531226890039747700894789049655043528470767773700575139877255486011429874786175503533224215200885475466708780810044969644444431680047663758487409820580931571148827904485582994018265793156760264566778511231780437243913319488563335318217566626712162269568556091146919990500966625753111263186348773721245915053141128245847582331830020186756905510428506548231505424668248335515860525312683349019644310892324239462854411370831151999040519654259528967079437607304598956063571706736607312389233678162086241145095066277537303432526542605492364288008660669850653399993026537084865466454355164281727245852899264946406089934058737943356048608912890472066753508240336540994976956825602523097444817375193399654629296694802487293591761320188424567873088112610062661254188869300483300144770002014811530463102700592389266728148296255665268759279697353890109719970038673335355763724677523017383869182961006891467260532680422876665513032645094881941945630132054980116149126649250551683902594627759314671439942747324020328080015352562397966331149220830948278436628377148984246136020252778350427198289959291147992115167745682746690262338966514021009579215273370633381512491068844660612126752116601673819978410571026796535426925255658210710465804005814625058643128469607557497273601377318813115757396221659234701408304791272321457347182543343340817290785582710184599536221508502069254824962331147213573285651745823431077586912832324387832888923751963524922275561129294171666463442408020974341033771236564034315560012718732517209400558045909450019205146143495146002846462310546169420891757567374349163925317837573952203311942722522873407991459883811781224613481809488865589586191992679423412635317290704172098879210759944876398153330963851642608941328108485421520718166967573247041047824279787888890514023085437568565600619000483721739374141150406979784412485900680811092976524321582816094520333615000854055868211633236573702826706058427531453525338357611835657448209676507191713141513471607058438954907206441727853281268051707808536874441253473346099240735341526071323523076255152017984733732750339816543791161412449649493890654768530596215184027396806782911855257076861511531708499146347894758741694643841722118644817350360934272334827964167363334182702816831336471218424629123975184502357516544826161408359114271207179701982240772220317463259321059811703107398900908175385972066248660234997440562933849569139717445687046489439845313951988562591612549247704309728135918480184378877486739986833275571010001086004766915988735354806705424836083454515863867372667860403406626921583598339278786232780129893604794649272735242324622420243642726272588670833702639817140873442761343479475859365887296313391722924098696749485387865953373420278405414437180876968302600401604170042149989979043965917802391615109706032805093745654822323800583517452246678970599116052674764015239406561240820279575246440863930931377204281958206115461065532381226476020778177047692414258936664433613818257116669867128424229630653886905383478883370627353340753228449718139514059297251012677596124662564376216303387035921931985033422264475642108152708715415969613422335888882876219275722782637023862589747409934782466459097979430685783223351139602683267092656440093156217989569844646664593845745441389641779395184560979316444431075150449624012516123787354799032295568584392944139272540336952238540847902716881419130392837004253616365626284247514743507517386260610493156140836825763315464927294176570935687326929017190911338958446632282052226683703923958265339002424833457394034019073631328202504369844186861581516867723500702958834851020565270979042310703098352459951822943678676517927015647302008134334550577970872292525591341432027558725962175347310428272173497360309615094533796855793525795329232270277001955380483372744927732701112246901173361861506537249039884153181054534215726732928463019609450759800498106775025982107955785889912098332870744266295379340574281642199098833541796006474129064044964778909411200197529322154573811032247977727061291402630597396557879392601121067310159591580958006492182022921006571172229974100171271421147242895651288903131068516443853488118638974069780130085545210830641269666950499879314769758396242985220396861394739601731610284968417020151661734721157744231356966476466621049395702562383108847147477019852535575365528065268315858771768853924165436326156549453240435870261816631167385538519006802836207898419133670744011315736576914420542599070230647046854746251636884448676202958372199971627852143498995643980208510313886839874369442789895515305029764487592983319734882153770216475065433683858298763728096305091240684320868013666270710769545567967077106057275958159763313640364838717166773995157078584976086192279428996459828285222218941285919636645214368020765547884478067161034397425871176275814964100472013625861824285483963206440310842042540037224505521609054288719841149183836523334153106593501496198898857006442253954960373695398189757584437954772250044174067147694940421720285779164944752710347570318399561839052016383479112353246950043127073518202223613758291256209847590639875601822917771929425791198316690233956379447145083055859259492585177746744452112148169676638806684825827973072661570440922750691406235645915654971332528367747968276235302473595787200276486488924156289518561828825103943107895606975725169712022357150859757914825543090700649407339153751526725956805263952581648993790284105497014965678566376873639712164037570403158644148374459494583434137017351381622151706999888372369518264887210546765182331641862809644348772449883233602944869001772425255113768721387491928028469906221553147848619060246266098005736389594324692420422300722694599120623734277543761827728108909304888753414847805294020919288263638020568061950543633349911463654684986431662786159016615514162079184525191392655198435549288003927377787859313495375741492218479307309655773691119901390477616922563484164002874633792210172598275013311013312326272119790706599179169941845725359937263524961225661868838807299366305652585013119516636110984831977485554469590042285004363125106896495668720490716181463316879027187276848898214180478346790542709244037249585632399880623331247762981762973233696509829659264950038614037861688128763035773978179350059327782540279735020098088605697658440483373996136560098355821976710313057023130560759399824820840241309873961530358156391714781857699775641307340189651861494674459095891101753255114758283388869287052399979830244103771996181218660565495914687377874860360895046206924522954707648276424147019040508480808880167531068437243973421336480469394321394905858365053896016563571506978628315019057824352407330725951852954500422968744296844306417086246623924422212220916962096803889550830176029162319406955643103487150408065379395468837987299185072095109046012601847311474603016462657104452869854377751284249417510019823284348327174647431063071420259854530594386278196317490918779778137624228093605775730219313380900497897771868669925164748560289121790669786617628639223357031904502082378334650629455937691440715976561181298912028121182917408583451071543210833868572453110721958698157060858320624742068958822446343329317455982696740917212021284530244969541782760123745646670113600469688987020212482777357744841903316207974763625960735000974904246145797860380624950458002993395891000071643420109832697435269388353663657415768884228209608248708937159408732573849111151012504891601060365426300603445609508810615956764567673939950410334562516992325192716454188383541215251840616700790701018954365286157497798679815045322617513835205778849623946270982380242054067371404032380799135296471757272501032743023126068735766839348632095352571275865882240184843668782680384516916739822474918316139459568015601196124389487101560040322417388905510489686569274303412416463616091458878611751640481621975011486157532273579957680954319199983033135906482207148725718647423480109546730659548724336529536898379125091396145935888158998991511715131250841223090299465545123075743069915443836113873921032786913091540358371233907178522074652548620935947101487752863511786775411476185382905149779046323355780675529694640208988634531100078574303390181792796142923805938941439061887857572454902692577813270797731889821289824710129751384271277798585767375687640259061931943973000436663595899259467197563959541238894954256236534772687125026476201504150954223666202231849704045243567128903759030170032087357507168951309371303085313834016689253300479352536939909964330726881505770327897613067555007066505106994818361433920207804046803333997278921322307808699034306787458678341683845562379973608961631112789499186479591181076277505515417303115077564816358031088762269870425250417079288414985922192769386799519722940366355387792934036787885215255987886422339704038622306870872224522328406241858581776789865306513113359807129886822730861829291042182528944212273259045983847284301122772621107072076092735999898925442450142004246095946265930549751501902909012185255317202759704554130783353277553433466674088366047642042698449515484293757088338677211375728736251452981372478882922405737077667008923418653694423582816664449869404159860151642613200379449980033800359260913560760904643643117535038845678527087522944926314908632949602961460107813072119092904023639678895107810948245274157097726577035860091850664538223388949697372333402656029048644090920680984158481517134133677568138417350532784075043713736126245089281073912954823752824417929618743487022362961002638207849339339861390247350086693951968236419545968107603357490737387093911439543915688484459103329580582485436603952313931822459555018036857839913747881687969825744685199520784003009276953829053072473165280064986399685094456144099730825183219438791547128503929482134627878081102822487905180398489830314614517861029890247484268317727871682066578753272452660237215543801816511642628067614797082187416956565862023335176794552791002102584475715704161513441761950034310935474209004860108969004479052072757472037540828428721508324469379042757290211448474652827606511682659887367874343692618623371702348916123168146296543497876252683478928882492281852511098810816207941070651246040019633604551345864136453127115950659739628577441125390102710371046091649909903798669527517158567689989930810594267633040460184523683575410148506413962090745259314718104014585058211556874773041801518544326806978669154682551070840968560330650955961832087985218875320970359628361209883894939524444204632373832613491468342295808553528444478555332422156461012457196897350423897916606919553239952571753676401912924309846371789465467881370626480215933887463769804034720577229014264263792268096962522078802779081578803637049792183686248491024183701664725967785947721683465802199641684393215532540239398391109891071306847914927668187566653531629936768294252263334001851697015625503649658910905752202850037456833182404936592541620952795091752570494816803885015048104644671181627154834204990148835957502663189302652679896967963075043287927498298088728662987448507075920696573525889463513768747466420017719709557267017409971776787410516170509976639824362802706394177171528884463654962123548915744293448415704574264276906423918020414005924277845398736172164030873735502433966420970427339892448983826123310849230686343344320711205587578813049654286604328990400512636837997402880387666037323166766547163859125702869479099558464336192188672082085336567724914603744274854445250832778681628863248861746190162727258031271444053372447377941377129902835485897428727868548789025524286076704204257699376913027207072808716447243274661691344916706216293849726289587043435742390632429104489991307620113263730126666572105609457700316164209724758475181466830115643871958848384659925782733786195328051746384697433307337800655924681399969002864392299598139184694193814946231828481786794866243434035217906869860537713217771844497246344632074087353597195807387358321850819337097886982345740629605247839491893245345195648141267465809584343872078163728754654967506245270656956930189668557148049281771111992759167638020582813753035743396979773014700860648157791117390300395168976110350262817802191077844454961539550035901743864904276383660445624730525358607550807889906326375534889502831129947471195201837387083428084640370383333188675293556790390919448011974729622750225016839904282675857451011997990900721165334067206899245550806258236235265999821852412111544020511680992326117051882671830263491967370125937636949784453856421412728766969708893091966827737042086893279214203290639275546041684108310334105000773972514372186301218460309349791348248886129767509122650964308248146983343959980370370228672374217536248574123942698635196094765203679757913067635889722534321444807578075857408209313208619189620103394396042148939283001682828318944331778772771931473056063736395698998788870443498824944287019553823036535732293274007480597486333568890856578764924639831207579703589333112494592350470614181050726537513871712896630318099197978908930223391533429258408387191764609087165896062761620608205525013227020593402479112352806119876013439975911244893477474608630710879720744418743471765702522986316729765386681079211517142841783710758210051912107653347350198350742814365222964523664522460919383891360003517746143991233885090831048424622282985404245009512514392160250959860817645478278934292653998822539464230797384270345205140515092726495722007912350905538480619086761019923807136316003528039917564080720126397326940975314221541952830281563808867931820855176275568831965295393325354254344762486044535589823067890770032697402258823995045158551617513669576075633860264680211700296241712208843011093195569817531537943934969919991398921388866717777575852538536943945975501237747351344214964750513673303529791012768452057579394826229643310493818534335057482206034645270119354921893797665109748862504039429673202587145745809363022765299522501535044388192362371813129341426635517107027640366351372187620581715986967600005608789223519557385052732923785019005888283632590784631080849912388162246652908429648145429897789806200043577962661179734615440168978400366362615046944086593926631443936187688800609749752632537623168109301859121712584470904981822880468509244972667673089358599315796695109131576087422261470152375341559287360654387095694923575573257433729258632014563148598380785951975518950142484483495219499108828174798513014839551191434153481148251510414809038884787980418689547888420730580592132504979924418778286271265703928104988328687369774777197960605638800698957320999142059231319328796496064438202972938348477586850175003421318255907905049674453723109747037792735832524362393798936490949819915142336396677645570642313560237064110250709492198444856527621581398116111124852851249040654774850025311137905401086626282306608235784310679324611932769123704530362516259813701399154684435628281661840672384125315292829680461266254834329791059111864535278523670607215485628568749134096500332406026571600500177588728587467687033358721535026816053327882877167558390129550018822481772641998437077553958206351968884332528092241823030414228973608748400149883143554124156755802853648461119172541379860411603907164657395847017150657148255195194441957000640475757081871490111150845538916826483668651311187288283510332932752099593318031694943418435601850775708052871511393481500699178580291324991610321770611701921090078958523129738200687688398702510330247798901795141755114383070652973438254894019190945788307779801947951152766302810744549220705733413793922465823911707909875349728123106606956688134117060740148132136154651612337412218626941189980911568252786065370665063787789052324828870980493384309605379633853258754732757660726591665064081621050664609338421040483943548128354779286177404475490394530256262513140181410102728951931092926622077583612812191301653934342191361076634368025200302240311157646324981666739470115041676637117313166904707168033666051850883626957613005918654296467385777957328811717600693020560961789232611003419257069306702445108060565632660589636153035674831574861401671506136378669782261946251688459043159876785152456669564568224623618692176551855686247555411822877611373636214645031736898199056054600021063391129163675430355731793198919674274338795672945001198983242996015376522002024362846171709978014937514224110768736799703609662283760847417205312518892812358861619321095427292839977372301344406095068859948146545162049557116220453641660131437310829242098148554013829702473849549352482318025107557148491538382744037296796775342213471928846128723257721734335992891276852956680326944811016679325804288883669825386341705016788010182388672329646417338067128962672808416896282653737305660318530077180025148146270289521732895024273174399277163658941325173779137004801476576264174664212548344840187251533196299862782047379001779763839547051507217269391737880605781864904957274696397375016082102967175122996572291259996254571217576736555447086524925403621569221432033701891629731049964142830560755868844703465385724062084069178935941839024335982091672982667603460620268259120497557820733430414655156539061183673597583582697574594776731096777068200810311975356497241607205224948614713462843295931268026645010840057062825581750232539236574818851786903601798080597903887879513027921108876278600074849734193592651246188239458667219237963374937648381745887882867773832648137614332812778563499602351854702492700236918473999413438557681181756018138280095858969841602409445678476981720774878221655716216761224485317636688487801962538747080154781462135248236607370962091193594970183137256527053826510291019555393907143655540636815370692954380118015240958339010602612058475781180504628623721462257658241576471677405752799756826659017392235489171216631512452327187822685802810572503209068663626452565347655430018647492653869103885104434330640425643432625403012565949078567615253362494765402149644791923546549479747488570297013807154096539009063255120115288746625313032845954087559929710100068745948666335268393246089565917554574038426579175799097224625333288204976973066268589583301317190865503267418010336529907845849064203040166585077277700519297108145251082776865082896131475033682513138078529230832223395699996062339984049173447770288052327677523514477381234217055954240102617703282475754506858389972358443879254858094385589806497573031518308701701579445290753895185541502401471540867742861238544455669745688786084918781376475106685378063321926519070367738740913910708258390805121846780061063831265633338781515996017383981980212313173636675824368696973966527991667258673868661696181134618883869766936175053128395116893408016268034805814996854003815657513281704369473120427283452716171121261181353776432469461601127107987534528855726549567055757305757330933138977483558840536469092404844199804701733822806789343985734679795685902102966873450648312410401418941933528662149657216327587854342498817478970522698042749226758761130596919901499216182553231828784869250591979827977507617803793838253007674390538008760537968713011194946894661737541080220649085498440904256296800576188480287316413112455327229037559676491274292808573446338997860566621938279967053917982622153796049734265372834259688640481935010711694506481158580035412077574762064155876799725187273147176456859110675974948146218610063944448167089926073049543584674584243697952233119834210032179194523605589507719939546691028123259707506189063330869466575533006447843679768904899352188522198231168460095275615687368283174098959035867951181014712179513922493033367659527961496015392454245634559372025668333116046078138822763508770172335967784839956176591918113129811365254533725387212211954407006166167862189207534565650114187845393175732080036179189122106495167508665337159756420067153353346011744796288810686172802602956068629072410716660032243903797692244876707597156979768255340754001556937909807176632169528169454175990015058968494054462822077917616466008137973037853964029354234010353614651138376338250520684827577671008761649596152590833377829015345059669801111799523210103383832433986099696258704314447134157379878776796009589785096878720906559766472674372969650790381899269753687888249938625450117848601069369059672167353153381207530008260544446448032809766867824506430164322569522649177291712996801499657250098985987518520667093251537660763242927616107268265130984042107115913726936364581474420281179965196827459650321227795645273804980850586303104803068640597807394138200027016001922761815198731450656904968291447367224762950153476273503976322349155347310423548648017178636953653072512552827582909830989804628528341582863088009464448564933366407097921589986134297132901130402907822703055548293214182093207729166206596482265197662062784958188043865562658027816655322174069425377178949434391987747021885088717222821613242031416962807989781010470530087597777681974728540913545580836916080616642683677817229741746950688203009844696227294037389573122862012743534402282231922736811213847704718546250954020150226881511144146246893244968284113478744251291790968014207641384097992435045792805702532130851282399381615408253884162678582542021049858216121852178344219781735434801724568498069281057937262771042254613276611773374314520346293679809923794474766559652725322645774389272639902249219004380912223993751913314455942212079561524153154438035959453204373140860528186509138862293897139400775541107292028859363957970130317131432554510383498449231906408915478241241157756503820043642133244919764820981326080773688179615670537767809173884616368162406749259060292168351727725336033838003349727635959184828354805546931600041703683490174018322291713644062638988686570435512767940318767248305348921585117201174912027827484032694702071731288051531430489599186996903032644330858780837273165622718437497001241036842938256481941658048548259110070480619662715101515585749030682851121041776108770271010737216733983860733487471698577647802294732010538814051542969493064082745202256499115364872164321998725492494144986214653062044920814310252052354450625910807865645496064503774302648179986608462920151010360049252506953261681508908194889169340544080215560865876044758552846180351366301023536535549033606232393490109766930369834182679149919756896923257650772322498798396793272429101705289367145031022564466168325267782174412769193377517089627473245705086027205236094118915048772187184864100708296420532990136985726860292297785505891220100884540042401221740159797807747442180273230277208877677668406601190849557055425889990644946404741824941276857204566341462129626614038236307109062517821848767549142823138112966976531471346677962762713552858147570597568191323417459361604094224417782054620279181918719207708915346894505771693528515658322294580217520024105677038572155325262274503515000929655452383015109290112872998399182334594154056459370452614374601440638907615726669883848014079105162253872161908238597260483154143100541383981459882542979551947023137434772822663157813095649832064563014564751020293784692223801256883741995007323056094699098083295590291943014731646546200172757054963770017376340005623260393947497309592699735699710664268403785182348478399393290388033089959812650816535980939742540091108260013195784160206156751795328290470524681972422955621574867278332554104428537366591990444765331147258891287226246105124667912672883429875421464894863792968011456543691799475559599428333014264138838850024266281725810644096804883206080569574764306091282557629211043353907924686195126506415257976264781230627245351566704022950488107786640416009069735406859131596578266042161337565469504099088440793407956579894264775153413168655812486228885150043931254969972711131247848882497690989597376051445644095361102846155396777138293993986232755574854144507079817211867501996193817340060714060118043140704686882853590354214229275026353243378679877994696226958790973672548777954302324748697425385848078866301955130338413997224281082378974786216081591261789927781324534206991846301069555960562651134485215159890091170223345803379681666927449624075898909836084879849710589550081066557973607768995757461963084742440241089708995424971727675639723586991452112586986202852761061371686368407981837710400182797963983604872152787929988171804632246930121470721452560737431265354425699819665377671018008886598456341688572160535277825142161450243606541911332682536881082000712377903592014039332863192227727702622868147413008397759104999379884170524425069581885254534822581961209961724596568993218866937093863138958872691267259388717857591735814409208009393100113128348778626357058262050050212738571945648903000269435525866912383622592355042113772928629106539057682910542476371918347011175717164564224632415976966669613377534519911293596227131709310430177213890485689383480329853141036077500365464007314338160216373203084523874981558569701905788387901462380326464554485756689212704704023267698181297249264340518083017168593621329627818079514772847756741879520139366012991835385808649742817702110818219499518465731007001050220834993404090467271459973038726443892171694047759789064844110734218765156753204968138999591070782879696928688874973197869487129286958458095221830584872711761418775199719722986145163494770901243867576360237388365023428009032644601743307525137851462786195007993132716044414101399652695874326264257267194622879411304609516070554803636869956247009998357370297146870268833658229491211444906907609288021838333582993610830923556069514826718411323570421017008396298219858896252625716360839579035634663795098752230947831244679500529218287975667744242652772291958542605218921187120431941353204765619552596652049346762349853680521119954494194721834885390425950049565965520853372894811710864697192960291557740209067381934932425344890945547940567419875346822992922752463183201665735739134395827858454943153276624815523903754952863268013767024614302473021524355405070472593806730261339105339270357395422910277097102377156785410752350532457739979512087955347396463163143771566096637551377076103981047166041966253946043224418123041476492270546086844796178704973277882384820912559035803369988629258650785998108191828380218708890789850534895218070397681087435164858091136542663231707701308555970701482148632721226064573476172380339245012057882952436488286143671787523124336678740448415961703814216199327647238609014719443521487649371865428083477514093466935946891829016385242801566354610004333404614274179025481026390666732670554970215239022334639869106447747682719689508697811286174982845389803105000782026734710602681193237795865382812927723183315035813037395496946142321013329999527846348336423999389894667082206772818916606921311022625613014984725461043294810784138306355706997788417648792367248164426863679630165769585853301502057474656476930766163349150694746128638734645832332748282083426247218041031174075304142257780339830297200570604794930836473188957374934511440336424339238959710118335497715722124117354647053618663982440703631369565836533399685159241739846268335614731081484042756120700916517642220466880570702294974482781141864393061488436406400492740176519616720160739735809823980688491582807437499187480711756564042494645592736566605698094266694587785375493016090646573142167750704185724187610757765994472293450587471922558533666445779361015192216569100265469593075068227010526965964520933960337958486232615856352489330389059178379812503027336709293454486822667063052608320423933659368225803461128309015390835964354575898544987058215659903179579138953037745060781042729633678635731820229995449753802224819245721099451564565524575067472982826296883509720059529542236092461785408391424400785604845422914233539805219220662136131709635333340961700976784217598609228667509574243450667247577403571287259178261586465879795678835590438235263005810750785151159553939013065605671595504008561572442694293568248465259950254367783297028363535488329771550151224410889589565196056145414177191840764227912110870970975433853130050596581310868123297392146441704026723962596799318153999861475750632036476337298954436642390009531053458406644325173679141661872119582819494101411195998706073870728750476196762840246466954687506671526091525697662587178576232122547941248468442503881057734845893029930854681032076151120674974905761160837492541488242911825498287716061416962410651803606162324897300270488786554572005994419032050975201801891985278675076797096631252938225807365033081128822203079834890675719732418018267198284944897977236419954005354571866207390725658700347263541735936480491143724163395255849115362378482709253392982959550948089546682733903474711339411765349326945436382396332887824682365063533616567803397066154833915200963588851998343185998972778340636260200790256013067815157222864322784791723919505399631290474950486337434048194769092494327887053852155526112662722387092011560278739809873472500579753488305077770749940090402548598254021799200413433584473354650349232207573136627835937627914042481851331003625817639952648391109642859984494755026418154215851570055613054866879509569286752441415970654492543302713396992014766574082475679285056827989056691257431773788486152478765347715399882187488931508017573832184786848323684550449026203293493084332157956818483374114669332012456414525740604665443650717009128228646289015475666188945700012840626949010450936601498423924626891984988512565616916908072000733280420717578716260650581250029711338146773131178231705858646989014038758802175097980758278237899670672042461125167463860174539310062950512722876107340682393807134975011523037035601247701256766995425590717677408049771013641301999463458706435685045444905799751214508043588363047184959670327572638939228477129882386208949356730199885080144888872125421331599239137647122249839355345597470891452684443951326568222525326553483403719858393011032923676229007069394187982714747150893323290503779278008755013214955763918643948139011108523671464742000724823247842247875635156102695008405398951457879639188287496472587509792968868729603792381582456902160493055454931778145591169996695897330917273292262423172786114591598835853459082968674261776175122836118033602385854477505365197579947460593205991910030816167027769263663323221515016109840886151804714595820358276147483203391599997613210037984580201538090872500619968350943586337466051379743390541902499945875926880354862511160491510809957558834030114979687542285101204566275405084061763153736301820825390561627019244593581969565312192789552248318956217560478434629354341386120095277700980159826151656665365576486656727399374663288658310872921792513198160544341880473759904268781532383231160870824281314543989108587619772732165388132867398993015788141660498505566591491551290790935760307078383754080403974681435089090147076390443268242133810074747087603978550916345257478861761700836343310260775881188253708126723412979503287148888618470878527169168161184152073555898861683890071079943680547971342460295119185367926642445277107801862163063114060372125984050807379958431634055432356751558382595280325050453798681890415039832863193118127980107360911035712868953704959363410677913777551818943289449371864343893425146228407970229915727429156945989119053555179487219062682486323484820140992377966982643450530587169892967834927099604052040071331226461023893858983156967637133698738523034590408171627023709801142078346983010971591977151698355416010673503566290409747729637273328795991532460472339473130858894782222037520203755772143626254970367128731447870814225061769673667816409281895750329620041825058560442940788137069532285580408189152313915462449897643528817579276693722849061528247994011114907550459207601107748068245137709531319231255664659299247655968315685934198471357039174415717907620242433847144449824169508401324245300167545096826918487991563752462377986087688227373167916092496590944373510008840908048040877409806664130515093608314542523041829559794986596461636024346197178280597685955597811229519014452457975456518584428167894845630367922349679688293240265375997277924482518771684283439413707534328362016687225066329726163697872840137821406153995982320406555136606302719122950337126286212355506683091632515760491014502698915965364674759095186933576854118025035607909349335508973463104341676532735425257109082029172969023730447769788021148507903033641937831523023814651291651565929501860206662856538469579176289048758153540663129469485017597578845255584546075250144347598353913799384673449365427489311591127044064234996317592693285209115686535468247698995287937649555837493623144400220883373729062379638018207804411931706957457222336541303475840405155224220922595086471667211126866527426342887580431796536519878040439907905039911986218634188967280993513985500851715339369120343414881828567359824319190968014340572249717630826806845145711597295425589629098437975805904876557548073109556220154887112410627043297239664737858744365179519468449937575990042521834964423188290067032210866458965613821416886652607644146128388073900067326468565952725418030519367116652479587323863715255586190908449364088449508943770016322106350571429636305158160258222342200724474253073444633317319926298191313614731303773561917645517030240257630440949251607679103289219365135121267293358497206812253071278297674400927253394045417843648689622726634176438501828505812556416380091677167986102159381824406804941189197662639501691784316074565536100939229829608399468551445314557627854278251148119010660539516570251722748458845589781782578212859019485673954513027681675853473062142398468710204111802197059127522206609305555782927531168436289645411853787293121977163921844733331106598990470848249397801298092928241868349929582868960749939379571130308640083344975495338254369828695218502881174041599921423248661189836320958325566614896890519107001334108768373082489474177444554635681662400515099981047777211278956522279996008310960955556591827804165946985717593972619511472605531159422047003883534324527092053244233507189801974374814708517957175428252092526208343162780819042985800254628680788098759567795730849651865986165861393076929563569456411538128682962461499095231522233531884068817120952354306116220908461291089612461126503551115903846726164656317857787510797052202384072173567760248054540446427814150919818970333245881251358587791144954625871467826273986151069228851393138534357207741503718097632588237626980055363341974753393090775174674174440689029047100972766112937517680319768929991959443820217606567283210180595214427382883831979546517413400561036561471803559905932484589721154423717258103988060996640722011460968952848998889696830784499714619127022726369424973187038210277096351298471170606288170470899932309046430829150413494653099320678966964930624595202660885818048514455646430710459845529327295708003592498635496951975392368968215931362012307307318580090754378104517293627792301017022955949721834095232786833127793039258573609577292850471728658440884741733098625112030138357475448879807916204218485492707666833560669602992621702236569462649760255128386890063390069303791885834771069046513837983769667899521585492776802619151279988592048543132932525610245277527319433902214625061470986611747147376105410768705359379662795883139948210586797794934847279276740157307927548966158069559009743659170247705420698074740834236884539954602704922916792032277059650351901138367811366183325197354138090649854826248553018941623082350076473140121178981024425407271301585264323189845375794816502416372261321967194274704890515793483130804974317566018569119220953196722733881335367603590390396062547690047147125632320706033176846004410209366040373550794393403169850872174499625389335338637259164297581448679048316900453981098349003024532575114457735368996903136643600539948864054018322165882726029494625565898816116068384743736177324788018663256659469827998797037061642880457421655756726738752706056756375864351417711867288571463820895850375868648448843346918033146601322178689761403660422021897438322452199418330453032157551434230644231603357675234930555454444564671042301635389706085362029306685268594120998831388791221429317190290893186474776818541554094968903047630697149041204475849519339450539767566092321873987298547007563787383643513645225294876187081072285747419607190985357823345223429699640186138741239565118964738424348212973055011917596919230919100519785391366223987910982125920309817078884492840484584967962112800551988421793617070201080013184343180847538351039949151556447768374167289646761787164575800383536410521586570495181927613796914898825848603295581206091895601496220326378403133287722043756452723774299674150639957313580108295564495905318775567134537412778588202294980957941368072580435961038337906280977539099551559110742137401215261510156834769511256261175863870140931670971025013139506426588379043975927713908519515495482260379742896897935489192912783941901582513447620641800420840796145650493215514578901448252880446363518112756507391281324298340618795145801019714288284563478982345638630985782822014778630413627509270404495116701468386383101205557523623444220596809548483022337163003618825247578119133271647236798972960912014105603512723185333979251900183926803520398813517078625616862811749984776790210680992880529651731094007027678128469626469976087300664406087308532610346538809771256199896523751710167953235448110195826701850019044297302057118967974768595526871545832673374316302699930223520444795083354496919732304235758004701580757918256740091593376854471654609883936425267076479662118464274195895213644745904449091487926375548891626192255544446131642625471768328798621573530745235481089530523047751203569902883618224163079171952664395121363818727679525872991988340089205110979075797715747366888423457865110099824562883038680871829543485640744911295822136398917733658806270746328230411881154042023330675520005939565405754673128604647941229865242721147722110437265395887473652806905656088853260108076378867178356541632838916796191178739383800353522130490768051063027164611710646567342511644182609546797203566860936385441888526750369655046917637891024582027404891511313965946571597168314886056004380728686440858038509147130774547219400421247507843660358119921452802082633902429783128636065416197845589434309948801793933253592800286174597486602458932059074549822578163305099016846325563404483641391862426922698777247264983666012833400068392195827508372094135484453678585912215957329082746495980538158950737887898220967573575153649144932779139223629317475124852613272891396068837884066797719585181469329973693775761551164804734064197009547025742286131801800168093753279152364828548306595554572751719421715011476601780084006149255179324180105880259097566501352637807616593883154807363514633677243181795037790273589311627465134795602532228137104272911557967148088510326452686161013439528343088974047062365974784934408829659610243804773213481355714914666694383320617879983096211798173682943089344555254737324628217650179284369393729734240161825123907157385106685035568692357274425820026552945265852454687038434873699031286983631315827988879300612833101831378790161920713181297726907978541279531452062778092173328812548333244181210331288492942604227892336241339460098700201272776924201330275414589340062936624410350799217968390725971154924043708511439423497625371793170206057839587067900345168928733757611922688511745852447701036985648033644332300278599449270776294225613814198442308483804444586716889467888427045396928331207519986102725390554542064545048354587232972991293793673125729459188570467741983790564171559943739419041012809788498662351710313879812336055672634765669078602589650684639531926032142659861239226076173701336858300735342286884100817200849332674878085515803304611348919841164165166442736921178704158509769009714167533244564646284200923313013964568055487732055233727294312886216136451034016103355718638667852428346796503424215444491095294801999134882235801553822729582832170433295877219886576427080611280286233528122404241053522625117464822807823519331046845799370686003314639561608833741836755893697089736859532050531081776518002393571409455507850273938418522523502886000032949213276671306376621919824341018759788511233745956366657508509705519267218142865356181882590270986391513150027558627275293856746842155478365797764981820993497946798157392473004758171573156868129360573610879619166802287499248065283683912963644416716096352509094178336618939107958439145264106067804038196766599538754016687713089246877586318401748250815804785077390854534946426490712986342459298952241772519307089845024225095127737597040281136704942266399435704641413200307997153497690298801839615317486572148348164439812435440595725909699262369762619673151287482847928923031029199706217044728478158532223371065135427516526063729903753092286330031189928704462049147104244915710448431452838936577608048951036331320222492457066413192286226107617499013527175388041391070021817369473761818360232038502553674320647965530605645817992512728237907557800969731972709284639357625571752409383207347782203644662071146626326719519249163926761564079356342703142832043069505101551791613025195311217377517114938472577586266996965437903555426470758220870520011900941143189037781027227725904677439821882004369977595435225992234036869816465653074174257513005626768862292851138319472713731684380162348272926644978630679606663919545063597004832406974615796660193320411085593763029032211824660496048510031977013706371995896017538709834303585702316264300888139023672307800561284503772808220124265925553094401458302741947276837417239372124276688991984399651687210761504366321929936660897652034377633272544801772795216165642767111799010654202273148184598547546715918530039472561644245476494157249628463865206746923826394328574560065073631693723806306774147519451221333917816365379109879832629333541100754139780581101588557006225028416532290227232753612406738045662636586086406978102132068030917857203930257014461862592359389984921646062829335549909998563218494962237404386080512966098098882119525060922205556783930626975625473187729258984981255017814948967408695909476536306337881901338303442936692795829817635409977627355511569588216233189598325529557560124041614266660278433479692332708013192957929948019511704410690924972807503940113927161798323986192763666845820299521414756228903124439588106361551538995451320941291604465179923698343168114395461177156024742791090151239733807483060203608150791294663382386910600300913386463381930695682916045228233721396414898712836761020338741342997565311692262109771021028841103736355696822733436505297107124185527844637208924254422859289244410623911749866886856856458072221157465419818965929649580968334201489326801784035323574690827287328429209031080682665808319582014860645530311721957500401075959710664726666881114463200685972539159341735162178992957017989462978932367561375022641451085035232484508330080925839329583819581920750348005979923653754640208261642245513482676636188108387765806978682744350891960333690053626364775766705642033529226816352744525052613377075348791083949212495635879101474259897751629850501328171678566809296700927476729105635025016916864301706285417747740156346870339576545313706460060331638245811202959298697325011950865107472570007011507134873617062197920046701717163013375636123169814270306723684543995054137681522750700838829739875123894746167184028785319478653128589500986089093070877468708369665397249927077195130606298754071157586384516052982860925686917173746145500775773614264430507732750862894509191696915699931504996946340435014887132326369022673098569973362096724377547788636758102139673038099395472171381990422326166439365321363635818227167582547941400612614825815573592829434390996585014323982539064950509172808508168164156866043019043538998820233637652029973943598670816410909436216473481004770950192682064238316206276376924581791944379876717274069872475537602452454151818500981497263250682256030696210162111170086868968338216403256929338320907356984429561924083217934502142745264397354716351315537194743910300922996801723910102056366605600528628427671585681364856960327265453131891684519379224187123924442914597230182195882923573897570410253503476531090866740063991277549639694361440917939801858683209240196869287603327802351203539525150625613404074871846844178081771666297774255513151474058409066636928958205793964656586570614813872288034875644540598739316334360759852428933586056440164939517352589700150172931763101873305305768610187319264736372950107854534765469769277743517308888503459632775169094589269375416767580516938829893059370234842554918678562132759868156347125271534681058547650299345144514119526215075039691157449571593542212757262203104817454383280235946391255480157470320229382102846523946227772935220691308399572635026006616630947235254130623953588301438557903709999430979324492641078522020141398090778482528711451205734582851477726491323184561711186647659644047978296505780380110742756650968573356733604645561673632129645364031908552784355605155381269561378196505514499303173834543062836145498775162624201229841143303659919299441559045957565988743800276453996269943820300152306091220036497488053483492434144200874356179715133470021216281229918475003283969668397477692579942607858022060828364597275492901667753536616130049496380254258922308582181557587928112726405413770589818962322871155124589361111158246624540512510755630169277815856657923362727305405784162721578002123426583972841873516352554098452538505015588322519821479459634557064226308977135981260473991509038161738774507531182103974341172166121647809604201064424168740773509989490329451909569055054637307471456631905191692143225871185009103484830267681385330430812269220635258930146283069477461532956461712886915909879889409885382601502914958420959146030797726098706253691677697221885180175171808578430065034646387932004754551648976877464736785785951319940136549332842887192571558072886322982036999196446518301736314639429098948272351349224054550506551733444192475458157923161299690604484320405614663568570374670135579820114613735790946091506091243946602276771363510095992473368364374930071231994074806893747429555002067237871822687346619646530863561729537272266321253355179224782401357505171762152806013333700421410668522430605962043928437797859540461129238694927270359574883065840862912192490761121824706595863379431622501611937899973465577749430258944818285171785656849806827653628605071781145800152660526429390208442615496180490547520903013746894686744283170072990002270495299132680810730755109705124453776017940268534853455799594988912819067458845952750116427241508552316687164073960891083939797789288750516552161598929039736312089930500183235734091249624635742141482770260226359615585071565841658720578058289393250031148885589191349140159499797727108337236500281077106715591239022683412807185400557582670944062723410575525569546815073412045704837933576618915653319204941661721468519236056035178313957680720771106007552131665291245321952152618366105767933941732604443935255954976106749074377445469008165454759046760123676215928122934958962826318832985169169401046550251090545387731370872976145073682519259814955590304334683810088840630979545248042171700019980642070509313406878430412092776547059066012992410934756352888734413414242527873999964708521067685687763366773177215826298568701929460127704762235479680562927015713929672320506798916760354594437488446259664534651212795586183192190441968538756789820781351458291268473899699242593725040205331543987076513714334169423259207063190963392846524482212644858029979522365974689719504385930361155729150456325078035187934354006675190098252841535063071109699899291104255055211251705426887242526202632007077904630814046983778431712871507503831222272478725780776922159220117873882463554470403053565773965083009113884531148581080630271835023997645196596314704965049120160494661731521792033386593951257520172193168713224025869895127445321986853716039778909895920031830069858318147700342595051198328626971148283271124557869890105897324295987284309910348498790621796256265233163904041935622219677557278091781505970861628688980513535283614696800374986661644945491414222274729501743526113698681309762986615054430376769022187141919873345692656747780324651709720139557161178201885164599361587263465627538249316517390325177916678259215608397711225363929398377285821635271564119019737189332322718375910926355540940642895093344918779713966452890576316028801929376598269536644675717873466258912475549556491630691898462264436323251620899535224022581147757059385217272621416449214026483196443697258138100149566376105324002804567067548495764537896620526392274386478183613606520824067714549478779504180828030720632871566305090629579849965574133265060286473011080867162786493329375435624331412953547304616463074010801105036525539859151484899931272453288808310200238472280882244523675892892681946706927691725268430959625044411828520401878604172006148493171286747196718912088291396684456950927146813415162418089697428786533379840450736966418566051537589665280167550475872072719272106953776112333139547570952100792935554097837537184875259113806200940312652912000590602894272807133195497023225733265080558764283996624648338346969406167862072687550548746606048642649382132282545444887551725591160552136720597696817552773163433890434587936454802359998997202950512278545857743980156927946514824378016547701146938338534972579236045731716266455322293336200169418591129487951025529555559045153392634791104091284785685303223948353309769933233378582008637513805306114235273232717856296554485466691315709287108910772790616058938483250403419729378485779703910458489813984763093732868651071002911123409772277659213871759572325378341857748523581034246580269992651964812268561093173075527649529557442450994177997571586575844562063092786117361210434531374954144682418272333675507367490206931058401889658025844608981623546252298821455559350377002034447987551063391096867432836165478865251909222363173563881969272297787255144829963604366673918969731837675744046357615750781468716743078546755359651928652931859623074514784122782863487508333213845499860006957326039296384065457722163643274166118905069251610168280599204032782420751468496127130799898827943790476882201834449503795478298705591460128959943440449488373274407179259404352459806926308581678729395046432770612845491113037881781831958532545203328342054832272910739916159297063214034986025132011476062797276287570376257394089127051872938998037012826876026532511018879352929487540072961865385917074692345677855196038491408023562148687584291133246726260840343730891855326936265122569059202947669432938645709363542096263781481647038684216517994343228116293404190760040413743996731996599015945751781732372041204131310590823330154512243410987641130697166465667764572610460031252730056958497628693646833060278400324284203175718392920708242452745631819869711090980208827171190775806570545007923062919517605299351482430003947706861613792022718835942716507597709759999788744603606770887442094955617735345673712871716506147703532470891641535731888674130582651416200553286052676926600874250367581864279847681376444241419077080615145576534449985055834824005225451597521352095631752753055227378412990034883317123643090702639429156964043797015841267672510016665691645534131325033027458355040603861904245195201550956777332178629027676111320953284461028106067438438941408788479897004187082414339030143291054895645036009713247694906588468596370376055751322846019877207676981142047308210070469384799559725453154533005730662388312986763970104718181650323162547344959009196981310979954490798093688149350204486700894656131786500402106190665475010373523969224438946761156403740112882882837713927128685592220365195135449076600893794892436912605636347305748392006521304123591020942695205910011575540896890343209681993242262940956096856679437593435696263888504603747178775154535891044898631330203955875192084118671570896437391344354108601904623710753435032460589926114296364375836805394524643660339875924257580088410682681603359066956770986626297624031019951232797937790089463834047413603296525298498187869012253637848016531898691669325804253855690506308185322691930989606941860892959890261771157779080559198418294316029505892908679897306600415751009059671602337892920650498719399254815205260499706443011149327447456666755044624096725739498712101293689013584060285974013710229897455895126800786218792025028485398706708468293710279653146405645211264381138122260196982202400257098570075140025699735305837070320300965914190293284203569791302966968397053599759416847555057693283527300815738540552547456186427146475674389521854761898528547477355958291191529414722777136933357318211155210013408058424444128978890140491656466933862183318651656327195039949737818298077145433670023564112553770365967721320668185577641122232742770645096990528600665992289164826767695480073111216151356023893506273950620568873354024683347409521588604678336405082461416027331468502650873951263644291964630903545944649638160071484432842710713621515501002863578705878162359696068692969843073996096090276408453897638327677177185793784410015547579107417590970693432710537578787002088183873860077281951799160847859948655572961752993235067331555492300049031601685815323410123580841873843107640882686953343535998900810337395148910206080474433100213965840902541170448019720536993078027948321092914100718447382299214982198255698335957548635150054596305227813269072196394853265478580928747066625977198158237350519370673524686705347555635136742833575093669935393752370378276889058628649311614292008969895601583814364246231906420991225877577033264659904190356419754454306255439771698504216557373778476630759849017915374777074760010847192541780062518071377661093304263742789382292094054490226685604441906596805668197354277295745764181233176985045434003323497350311362711146794133120568517181527168138198942165932939149826926511952453413643410139320218985350093034547711791862799284283934844452465103920965391502890371163182739873657970104813854245959661624899233860407449346898670699110696800366779385837212509817212953084525501868403113320812816668571506295856811179306304369715627659475863878825685035403877676522403839951270901591859482971532292820415765432411622115467563014438420146741660684496588414647555879325739661159994623355739910840475699089942710116173070602098216720622609079720896110299679443647443408721658902177250244780065436852435089164826097173431605172810953044389654421125384777811978604871699226321034040474845596569578373264136362189857874639879609921556490693105749031724341880677220812153333201696042120883603399299487503170841656319116824308536565466779652034559697975641261448512687680033520593552899858852047183586429516766882772714674024077670336976119313909751680657392650462127165676654035407057307932234971238083115290194149722748050849620708261733382004741668324483864574136169589403377303097325952335984560750482550139180974670590451602650165860134762081882939221423941455486343902329112278469671719733968533487846880578239333659955504585368824337710548229608751080625225117834085575613293341712640561734506236782355177695117824335928924609782189532275374162503639018991969007721612128224475920186651557020416554432620373042205256100174663345259477092205531572102971255895781780222574986643930370929630099064284537716646604989279682083015911179110562328150949707057529035611924929471740543778552174931425593582131234986090857753744056500366405398919628227812865572730490329738985077210079965340973013033543079159309467134156952896861120424530369274346329374088111916132970792616172108767145665502037873666143614172469485921728641931739635924149896727572205940648756057276166953991051223073346861692517240231659470816625214348206821173028262522282882474683080173007766057441015273806202756488026448874417842285474928229528060330312538453466381795391630612159798526389045431024683746034716824532068170865384359295921314608434366855193686129070710327264953331464864853071753201134437370303827984865117040077545826359751444168351854098354360946039303950317358048790839697467168239704657921362015918727363112652940025253577532176322535249989798783006391502005105585757976239479967950164427148253951137956252806355505025315070051803147998085477373680993715931538298129424756714255047922818480101481534404415213240996393026937158709894121771326149698599241607646058427369242470429958274339151221144328212028128669043100589876571489481303068182525228257496408431094713622401787599869431517577356246811032932240893983461089224097642001672732764412360844632580658917249957469941578653729901708313675998426523812177258211401292917760417198254844592445383862093965742868284649226626143212700525778027207366979745531732403869289407314782972742928800031969066569933223934034252412347455224840149364815682657824534501230722215123422021804178421598932714277980492495152651018488003560840202450518699897250802065603499581488486841017993231168454459437502807617550260482455823899678029072215667417535971307896736430504754326549089370605780677424415065184136777994613338156820316634059369771341959365130469594355088056890536172298184600646148240347224773831758671459083028897652485633006598860834796614190078383276544310116660959211505338099990414503687940053331305971692636981724413534695437686875194493116690201436991501016393990709703518196692584146316802946777923219431043206396531640084607170013540475273967665980018746580658428369556728719338123646491937681483630933784920317003166775509664291849015392519463662954008512272285632848813422505785933861520966111063668343816461707770061165368385357057685691307255587253043635895975164352038424346362151988487586753437427737259759592364781672094243744860424555191727396122100716670226738713464242933943273256963299219280564389631313864045875439897741496043773514260394581040063487111537632567634488310233015767928653548849728708929864326972050338947880392004181459208476042376434963832844024661226669276173730906370504092688771339693835383279677853028291176614825330571635342672158217016780024248078181524298903852527796897783617205193169199358372223293703988480329429232740989628175566227232917882574958317316549846540911054165812876681818585397028117387939941243930320177011861884131890308919639676205899030225068413845196914804655671614911879275365498082553413871215503498629179739535086964952167054758979606504360399595297171915545719657197104496220998499252384502564495154848767949322842236098891238624854287431680157364738514556446750393693943243380880202388776921458023577979954739034013673942497938371544243713946356036378681983369595301286712717062528628005013667716755499915424116901647945650767487024414462661968630196390617305957700744802838096050334784853691583024424268097812505459478732040897443766582463044707733427789439519600805683691991086351053386692415923289237823532926177466558645665289666230181840765074699138806982294381910934189194043523250479606022284944552257761659486722770736296444026178009468429794839487089039828433010429623363371870648115884342946526468680835097845078839409926908713753396272836750844589877625719311344599750938300167210947133994669880878575762746529969966533422859684156051857656275790548710511924734861089546891973141976308369195733465832131255645367384045834158051422446422591075396791630357037790072285736368535457318817679144415406587671554524987926154497608406264460192448831057160228593682956381300222339245343898547664260473424223934287508605864289255271377273118948671278263930847682553054672870013719800790061233469820546766335269223270832009132613760274076917929524430171776240968570300592292382206900771694379574413761941077974649756908223327122660601121601272078401822295980229108313588916924872347696888073694137762308000036731272695750291858520966112551274765891642104241719019583490100026292534298532038011156542696076243921023392773767030296525000385813090992267190413263217790163980874382939513257992236344982643550713623303484310855609950440161217068858722046464652539687616725258880809717549089432797948661673332020778859357226471297317971704031794391231417139627289797545319082004643613118894009994766852790169758454943857909480806807035020522834224719931695441945435201574021755103536202690467225301340135673563007101713594929333110762298803563145231310555400482326597053575864236507103136672222449105906508061852009846036187556822702971880496922143788447286284003925418756445649075346616352283541902333457007286206791287428003976908088505906538976508163650010443350205212301441564961352072173791198380381421580512279394830689993672605369199577368900878941210642749604769240293818340988592984323821512715107189106038699476550880159011975148936063748799381584548188295608800596240752269633915779078590962913988533384674913552307154503502905209886480918441768670172486264183166445756438667984129954597060264558351363506015188034514049768691130703978537426550142761491428820355406699505221784760667132660478716348064856715563504228751350509030718916581483803663631739058848889449949226841184871669393863229334490690550649788801296945469790812199858522583511392529103413436644585194728906502767141452521053764352329526649643568272309578710497454256252352242143638454713980057962193787430967121712392461546932826255656031058910165676488369050620551617984164771350727271660786377357192672865556182426993163064544104683945484026884352410767454857080123109211197421195053642645412699429215074249152058726840061033707032741857529109518458581785578655445251008406898724641066498317593248931925473597999547991238160704996326898314648308062407513709087916870940975970886283680228096820976020209119369569759308244790319750213894524733195284799691004124522854964903942950218238066628259002171424195896779120677964916680932044671102753906547288338743141272186135712331447542443313472824413099420868587078083951036944698467056494060434437014089433958264574115960299373863367115009543986486490813536090389634956354407078379953203614736693379845959187750152414300710965838640326759179405496221632122967046919584212108685244337701855047565050585403283804163061733322747940034308727242644243012043172743923170099870266569769351487388506559838822078748027523476130852515850605851552366218874016634556483185767138197863943601359542133055774989332794878046247103647431167168051484315284749047138325714839881672592831164541486012643130101103832217613337132418221692802413773492704513799279897170151557623839558522604789241371107167206360942658511401450819040527899971308413845057238175645413126916005301875223665575446150312134579397355907460764781775035139176205980493352619699360384888570101184384603491744515473305379554390054364177092917668428036294321893066947244014320702523283966050315250912732866199601172641519760607783746368629164507506216253322394066288670926545508327017553693478412409350544439688944275119172721372199129214517913156151332078637530193821050223636406102182361536036026222532851599548681700813600581346793396840980487691857645954751791506277950120404412629890227194472837070010964711753425756706432030727985589110358425346888224833533254466667721963135982117389257004661215652431543281806106967477534776258565584553212204672421575788924281661478844085375878856213368785332935029278391765536235076701897516021926537106375533984581201964558967596021015095573989844554689489864540761777165880733837683777948628252649216342865889455343878170877718432220633486970020421381821322958931683373093545909049865170003022092684039544993529536899074405828627297821003638101677129973266463147507603647405930222986306774289360289616768318740612027110454292403082070092964485986459717895076173321837865232784092842781870487244036316984482712589855783824028361771845612703233373582572036575198186094187443907172022764159765622155179289306678889597229961074803484345947362958438178690391399811826960939959224552385976707124882446833537419298219459212686550045696789254033545048136016616280980606661318549726128210052006092013165257239044327840621921714191126736380738366459336931732078843209425888363838172338310822455058339653731290432118380209889467665072654181017353829785519340878587595186423298953161408081263484051006015657042760068110767739660543877991645510707855183933001111711380651652140261049439558716196221322129161400867890744437827374584893562150655643644134080802099853324859567864669893436818188988825919921418305609834128651144632060186647228428640358266876834009932944196712568564492997002001705030877866960873913142559358666137897157299838851101919246449403143727930394940143727734137493860999588486923281897485900485993150002805634840705017162511562089225126226685830648082410521695368148350106784222186696012047707825938400040048320618441682494707682431908672068836233407734185153327792741968794082872728304703723464946222426567259298102995813231620914561047653266635932020500771204217834803890154806527874170193570272068692017839473137104582470532880230448452125768983140721321237776327734108319422543914651406870129894691971671024463099317046621170642350224613281055661739521257273879449798458438005335423504547029302899402504837007043574288370533399727000573370613660699254583579510152571805562123687900442602117335780526726080650413357321631967059030768193871410899440883168535721560702373306737110585444425396308071849502649270721074007518854911127611329740669276048292330300502440275929075667946430486990150513282749248548089006796441248388999782387939875951417147185648003895655618802263495105611546078415969622824022909231070715821437345103028634010732315480288390874595489504239469527685293196589913642092941737832114234714681353160389315739808604606933603328809110444632807302271939632819764465627725721782726741971243764491175965043935133663937422064245026814092573481834011530838782156011798872000773597329725799114208526463495913060287363020179684765706827229417083536495665275009871444463687161658279695330275284468317018013562246265318442805686183279869267610121090196667730794308574582633371831787978507955927813417954183275522349039710626512833115801775644149452804140657936111925789491908389222152756600033775948729716288460093542768317784410780411440087574344449350632669951192980387496518158449355496526747387353365910139884351411010280165853177057124661816339926835447905116032040955062596803689537249238260968748564988285867095182041325789098179680023905498557569234504921783128906151465015392595689554813513682131357688846529927273333712992741142953310395442434684349765070741102806584982427044393990615361830150755152524051388866750539978263670215747190660886837657766611453755778901273119972925836811769336516133039083304569155766165247961662537936061132618599865230038317054524162392311691644116044686384636732886842419698491670429640595599900824342656068273645984054120332529226729574714624091667885029136351929363948922977101332008065890250679961929791177296114302702136652845808953331651406973525751874089485667620170433077730817692261837004009851697309134655803208330006581307719343041914821303916143119382663845521914848377776812248079649741673349970546908412402589635599971593724033894159616820203387698148710241697663201299089725255570730524809669638043803147806936756398892767913604234887383786830014474004249408740124209498407125277187848511177662618954856966977307940715685227260377524169799832162681747208493829959386255987566828087970096606534543960723388079254312120951398645333328960707643053441715536426915263842416167595348139910054709668397385303667414285055237422299165254999880662969246229241837400644960133302004135315099190725987150826349245182504006773834801592293322267332425877444625788975746637980477174724921017387839565748825938907106317551570905271390714878842475558647635991368745987090043653324678393685294388869213646734574943957336140176090460867363592270676494029005903362160958043490673324804527879076447515598790624605901699954621374577953360543282990604743894116547209732769242704001725810695924043532431876047915955663691605216290047948034637552952946014720998197638807123661260797799278173792301249467325160374627474384601932414922585832397316312086095082954640313821614452862145744286307535813830504155687497289207184909427606521622363303480574174430725758634552355013276855317984426254978154319905440498925730911745427464318463114813633527842703146335363177035738121732513105927658259760502896020023198847683372180500051543199748576306126570824500625863026392211592839893245299786894386175763674656652292016652602893590955787484263578793111211069991580446023654095250090584152605449566072074467293208592259473776240763762677598193948026212597215864945692658110217321713103097382822957803923794972193308249466446002211011862145056109572068179515702046570206832784146237236581781178286295114962306550790084319808210026446593938231014242433337551597177725621188570831698355682890163867995241481857241913849989483050010585201371989374753380363189997053085584253397061075335429503327015134415202688889862564451013057313132921185321266367327357403705405938752076966356745210144586534395710043595208689113806708347932511682596830438443254957430471843593312867139066696082958851103929109424358872783929776199970350987134922528254322758884805700421596195040350106612232083093087909889631589656762308576076624194060264060342023192950379243825926552771033310292793747933513986537035112502002692476633840708427135192564152503756796009944527746689752839348351207432228967744444659734269981347707613717536083145857060459033459026128120146320556032744254895175044274691016076544625547994104506189492759890443655973410870794874905095030071889416641627188169426441723946268361751045482850038200593635046733037895621619874666876383074446199990199889635560539102484911372718794002309282647004233489774858821365322622233995537767851724267296436180641407490108965289431614235298881370970502746284454890749402265180199950311136696232810390839576865327672979763197113963805622290205930624168066162246256610355481897899690373927353209723430081125124891181243585256672464897547357133489517828910943083286937909354546173409680917892800725497472606659441699223607985721762027887949649724256128014792694893183393883688976323636004006081790866267200166012427656617080681051606245692244859016464044116208076434340861727762273489849477027471405637768967328022583957151255059819744159034034920936791585488162208636403062632879567706410785111045705734595176994602618514800006681031958501589010710027240536483286735518688700077739280767017759028381264963173149294508237957699318084693199227036991032483471132357870387422034869112508304175387627866182899738533728253822529175084471942702584491036556574279128947307165255004089804706193022680678481498307886974021200485840937772093553936306057072809865578743184928117027432011455056840583044936758975616120630858104094746501939834265328632536553199342869021539641375276183006069757664938791176635873146577013678131682172801427824590046161717947242486774948874806200576452452168122285653738737551302269913803625698952702887212559368120046059000805977034595698421825090696894286549229255898282728107492603908508973962838052337117109776149813229297223678405820972348578879352382388444614352198703932183792455243400392067789264204567612821172498981352745807425497874363247153893848917027471244413463067464949432273836559996542310904817902886050995322479407555649659045099770843401205682226505785488461952596000620268390406996447020468900356217679596532537241906269934830506616071264178321980016291257290059498441189485400564849156645054440884986695799981717862232746999996419007913462275148026756407439465819422410062699850444572626325990256956137732863591600053218877994476631411292398756988311321426221224243518637448747545698202532006453419474869376942077401137347344301124197426365883067175816211944157321624082770371290582954788250903041487067046842944490760827521086281554571296901917115160992246923277281733533960182720416063811786847355182016100747403564160643887414785497450945942316722602385957865133615132970436134235796739219651862446883047452456955903184638733198782062744941882768379354531654240743615378423258804925587814117849785413551634033657684337132600249458066030344800120044152402045652126993726460847088246459448600685426480917128125202487703306658367812385247310355962821880192865520699394294756378939578860146743590200181394974233636709294107456714704099916134979929405041837565100715173369760395704629211828662464914845803832930084073891244727145886253967530704028155819594790113550113272078232358859496076795239090932448844348227315843590373675795659137787359430613943950140005879763502550822485194295163515528924341622639571721948749555664965225797928684436013444956168778361017046947954602827132016069845499107749821989535084526161046340709405835859773678322929914760585303461249594129086118366470462277882584691459079913705036865440452214661771165236578763743160775036599867111182042585061474419860015227763294525801398988398031634104071647691691158858873496180437290100334740537456306530397631618737394920303752797063911581408359110854869428593412889065900800190505210891182876849949631186066524836527203972048319593681184704883376971858823970566527479600515059209940135617575515859217508722389241576050941947926458763301984019187556165120489401066155688777199542312148948647915882773449901778977370426323004219180421451918236924881287358455478174563628799685404496102043185988860824178162779921123070220115002720017013778346868746494713428667387348058145859087821181282954033011320307084990188949175902205441895375894460320664754811594499017643268329263552678601176352081961652892897634721749812208714291605202803077415778366568782144673818926205736982145740039962477313999144014483509536808848952180597582326039136490803652335370110040718679913621365642605751055088403709605806977780077696292260136060765406167683663430702169963161004635281714245806251150151141484766032102974536258771358437691139453468579097990477766122788872211992441713904336607680317160817091701054085890598223325357060340281568820475085530611267325405304625436705325883406050203883739407514193393886735149933912899579791450875149936093070445873293417775090864670343030636760027617919731662536812367599235385520179345874617655717323167977947769663028742692531715768206814452980319512452693672808763564327883782569493408958166555994420512457990577499478913892946886239480879550629997829700570199215149907032491766387032215389194386622515212030925563235398219027780847038437256372795411683650084074786938153207609604560176410051847353322597606409491148810087506336401556890004565608148459594389229174713147734615467044086119043628727538136574729281056579107938876755872106966219332837104036992634117439514639029826297009169125177545175446797976458229088653146742526800959395914370002466773135744409151238672497696199642893256299256387795283520477417899626066549481329766256918458671982769261060956953178727205766689604213530099723883156695595209102338252202947178960954384607332731579984127785217169072316416519840358582831598837207696627977764817784891664476892997562227174348901093169378836439659560704740798524993495764399278106511543125422412839137774254671730606801442346118966116804297080734438307191444451213343171450789000436744134442352639913946986877788204102086027035425431108347467463473682983605610814722679916137728921811860754891078397352407922282556658962594755376549630908567290247038811854184993433994464635504359267227524824099337028589269626324273672490641692308017351444114321446688125801044484100360872164383933981894434842428634046376233807723159577749982415346309384259776014134520719864964549823739518377339935483357441261626118047328900761630468394338647541037755337544213678233281139235066875587044073520836786546735484973933686322352071535552727574523796694643382393064117746624352845505842750089466585352101116335822334983951750154695344281904910987621325993418774413774820362112821899177859047895419322519873212859984606166424105674387439487962804859716372993509429917741587373401288730622698343924427290207563902998557939681232748590315431128728341598554183436480704259791580205838772077390967560201608841949412839079401720304978402824057774998581839110893187037067937243331292537040876203856738482919749230628449882664806438247776653530223805232947653519731979725444801127805265227967780746519370146940811076579785862480162484336306962546752012995977229502652494623891958056917574058172700225124413263230802528602635494626327517605879086956448678012488849332895930377900101133710960726764825923127590055107363589518679221525279059882905482673443740288519342440202350887833426745331988282431973347848950282908394112375339416956094928297734677897038966480265287104787584993438172121572429912654089132090874342844055783165985993609201138937143567563551425247499475432753152671232319732921221810688402495059271716680141389611561324687698236181842677271382505986086857405929559554926698542076689032721776171436859515536536619418505285475463267563471389664936969617159983950097912241172422914200923470129094645256141589869278339566128508016523147054541577001355092534457839074496765481555875974639165153915790274683031058206482532404386814810771844895177163102390244356940854250056169698598735132595312036746073753454868127521373368727299059934036122280578619741657526187772757916987841740476014527084718066609623913006150448497736568942471099063112360896137275031377263563021399980524426166483813372564726731079573303260692610035744569191921288887628122623416319669632310440966614046996075793301980626383799070021002704994085898547638829528748614295951421277237956449178455040238795714803209952767416347089969361078992763055722757730703308763484369805775227122068109055454230444410175217590656536136669980211749548378230103339931310464831587449260724208999342541016252409110169609324117920034766358965066332364592755010499214169497113256547594678231829893293344574747879916366553598158158346686074173378128084509946147515093058609170369431261936081037249388600431985782502360162498841235345638407269114244879434565942663244481565159838348736501287365214242055643808313476221639733758765735356624692137245739878223300161444061855431501223438077082621554504867429742933416317092517808233629853399127083025009970047221089114370429346706097064760445521297877249357638161781706786802072008348114272229031746637820049839458576534136046114188141701458294895645372751393303469521762279034100225847766893288289836640785384117266844433683600723929215337506072963369299425013284499948518451045611401435403144833074264383909888447439753515741778386661948713173909243593334987434583765500421642630593451713235153017622267850883644759485587834618448675722974250643192215990857870969300309420237968917897838249994057158679393709863672841310869721970811533773591561889998937952279090750983653747904211670603417599852611549458924699101456619428552384234659276988362151811938008543992256891218356353747728768515249979596093367165909817044449925439386814236561106242687132499347201304783099524211644697370069067220584097220161941282601361576578968614639120410103697165380882292620803489609791933285933517398632852430397626807973117473413339020753930059099981161011482343583370763459933279147854191428273038640312124120724436437871746256634822196243564056306687835463230434484861931643646795763554356322472813892535286455732958663720978714092944774302141480232940001440406277309245980600360665152325878352409939009707821927876817588649396051335725152934145313439890112714875354917543248981196635659921293441715513369298880873779280638523538423623367287414202775063084762282150758475840791462615398505900380055849191210769524674067315150210679056051508845731140255497996583932736867875112815025803470206513351101605901653202074564242221259083414548696505619932054131776623513500809801180409182363382468362277248513634438996406973851614837614948861698513367882956212973896343178912944281264623934005363489734706439842400893137844793884632487995576646742039455400968044521036611141916146524958604332684043524637320705960240571197796249057376967698797278061302531620833600190196706853831661750069760175782546892226496353568935113392713774699720496909005844514452066379404141434210089077024603805276745679105604742836969986575487225470066136223398754159965794686039685009937379031609301253692347953414323001086536772255461958917722651332060708374737347630933567086039758123014585739434877916898996220606994049449608691299876359821189936823520678572567938613935660628494817733803807658326824698338370547149201453556940565950169036153314862363079722661685118415513139516106464843293500323901611274975815528438585017135139861947861894252845489195444192378670068351644580521776630972790688684329110692649696755951434067876693955578116754280446227886169398072154063725061709592266893821235705694958346695601366574618391963930043719748219534852931671638417920073760651489479857194991608272251568638899652482238192018761378129051947178431121109945622232416280316871841549889000413346377556196280659811887599421487421130624867989601081261921767817170464411647020836941183774111067706222250747079863672356703024253584551458289573159571217647370594266719910578862025665894218684179558658244154683682301356612768217765180833713542403420087444714077287286767809937863037439844983493762737266750963735202239312082538909775503321207780645165396998671452648505445899702570141935423769612938521051041029953980756101793172160403787878598829581474059029205763453864377569113990182189052883262134357812776130007398011482973331295946498097707766709461201973465701045663876539490114051349577600227745360295720525368909958217015045224864669784391572260352408402252271064158426618802523438619209159863097617718414952956470775155280836931064091875991660431900146335691795623372291078880540846435539577899887519488901588535286614639510757772370135257943252477806852731654054701746834950729359589247605070663602893392754283283763814678252159451799268184976351369144067885554038751214162812101560226698785656931541857043819867339119834677562525879111689125472107543176569323324677026440532167478627666191879688574138424705419937570710562196545710091172340735928134879184377726957946806267015994834198673106475744491527263993528060817545947860520054330990730435192510800906731147334903705392364093298336861927247285021539354256164580458225515194253027889908643652272271366604736828345920114708190556728672492771409070336963810709764912772990958034486303652446690978598797554007020397312387737345578153948670024617841559803381577630898394731642050244246777057074803591575204908515825559976306815774289045658323651969965623378177295350302239023308865508253960534624062736004398416372188945466032717326063178076441404633373220671420938291676521932786951022077335853588507804706094444643924826164098236087042298054495436590791797579795533033255170853687310831588067573175045886166277019182430469015097289533749257916303096519645167490934262782819073989777925940589599949286106576993396708073654192029817577528043624130734710929998424876272790082306757126612132015860272685709338557567985687210806432184601217731400332461916766812883858605401376004774981328610352835438832040473748430245265601473839812423127799043675893446377927850965392538214271318159581936501519830254594049646570534391346917369846276030199040544764981216490262472827780394322361223574531942154433969089619527506267440810475919641798108436083592156811461379928700247494247159646522200717373346487979448847487620026998875411191640526539376441645561492765706040068783869864746312507893178544930988672535381430393478306691724212404181924687567419420984205481312494795318482565583069609625733710623147406679079892691535844805729377809924986680873272396765520127229340124410042047343041129322810524403510257301608677484821440651033513812375152257113076171905807247193524950953848541992171896577684985859307753133983067090463934580278682509258547707237384756361078352038714464167548492620676298095792605838625075988067848875950981963145799454779548432653829469133942776530217491139796375097664391916065470438775841319385473942363485324129731636873669841463284548116589253396763861027758184284321874345236998428468042520931666691355903523142855744533851954553379046469392665923734803241967891339163881228392877080149289429400059688769716481369833734555394173296815179194486950667114082755268733503192078423680530118666690770897652797661842865462619085635185562785869149244538892484943201936007496841016549362361451123302258851353359342141463785541218333612111105209242865131521692687146610915942443402943571259121748869429891042014827121814264927215466899763842989722015803286908203666155800349391461278879405137809503052125442613453776321098092397712776850909719909764457382624185148144841011306215147038512714994318682138378626716042710921305109655193136933750493214594714010196902153739142889861912931659276338426966077197624824262474498220730854648967294131865369941931125302721930101488134085968547572792081973211966634148754284281352644230682537689030321362115531367995017762810483759406452839655126105884879041011814448841456069121222607121077870000442611934848799845227561690555788675110705294354233872440641554599278389484650292749669271790688550147211323168155642262682478452761194692006036429622978564172010218573740210411721047909492532969458474829797397707632625030743162377217091337470025863328737094249086767545092540507002953026676180886548997128412419749827880585946274742204809339835705300761671487090329054069759551673281212358693811998832123162690703363173891767394106275243003258684134899172030284872003309871385467703395911753477722255286206367899407644913250276914303064484672959586191314559355191488435798367947124835933771931211595925900161290583313480124111151029377835814003837233217786262769480422714774683219825602323321307597627214618792400581332104385635008643746817475281384374493950557180755923702026221645425203692719561652727582553159921018955449652762528320797113183183279948260376042006212620410176644420324772702445917023084661527015548105976983838662933425124935073771440739033327166431929385523734328801180210519366043890009567742446847721488015934551034484285749150564959001153725878901208211247547455578475870365967545700969353761666171951795051861462141846909756977879716142789087643011790624241812910634877197182642692789191504226831236971941759035322548279109485990404490438932441180667877532542135093515143712102534175383599861234654095661050191041250022419460808351694278831627497822376184517132926548823224470219908586560553807523968359793290900955853588038682638589480804333627489261105416467565008796076360033626942233264233021713554041360755701636403231365598373978213187434589210343309163227011668271677316161286608825016374009095592653989761364186278095210761366640525445459039941784884246911865118620043365627227494845688967615847963790986736105328779291244731424663057299297819291328193252849648994079631615845424954957168092331306091402600995606891610968686240534343067303375957059181446300152277167471694102179865656121003433258755507530393538740779937241550663004001993199028549582786422926972519959684424418937939081413570366073866146190605546061643366922334062127521943003748671454124908853631418908763973711715763360710327252460255537095462510271867482456715582916085695412064519363829200865639559818250400784565845748750210883388682731058454375617492249708691330039045193619621287201278755088724899575259267914839479316462379544823055348190479390909879807373731382007260956399168651895684826028175158656955290594774933379767770085290908681169336197077229379490474904550777150173692013670044095727767057078497363615348168626998287993886655803045238442572189804879626766565033575658162559147291150311773044245798395574359078751653964482047250278270616633718043441087950871111519155407731557259960524507931826101979024977406614704085874804977534085712109261055484848120505733785522178380309320607192981553128787263842342856283265457983840613658395972821032418826833758538937995698660613181848680889711561909100664390654336524269034151589691873554954309686856530610089133643741322968170378444153124799745240107434180358849855551831884004125632912044675542370241794584346992286790718938269247075147956581954860098434613026122299969195393823030959701831395832615687435709521444555715305339955171210267861777084109550552137129864184862480627159325860577718065019123773236226142962540920326114922775082402413457016488017050856071138314633360491959795060078904170377408489774685288127360239495357212951246577688986641437655818255008363929204575730322453474127041023849008315974924501737080166836066608858811525294209739970969866650793948451980349040052399447862864485835661787438855396821952443412808694444938533666726025423430899249399470896516619591700968373071583687037979959836558467690430441764634352291036498212353110799409385609189062770013679325917033034134119920276228145822671679975345560110118090067869864650461591142602307322774962520817349306864676121604405164608442789044725693815000088766865132761073112080725863845631422168565886349687093264903970100686221324068843339392314461724202663092146332634419465366694069095065489370482798657589508883661369061044358499851779931014147353494591149785373515669058521050791558394468858589795288122284492280657150436961917084162669433765378995118089878906120676303290634462386813894563722922295344396391015333866874379254000907816151601508973162074746105817518934168778664474591806894077301403904491941444618350863278604056613161636903196054777280640325838023098378861229307567013029791998759889009133435781483782584077361018868741215499488253558036486221416711176093348208471407490455646407918559967536644415498306373135538824598353164458055311924187682778954259849400153015571932246593778943623748631208516835772519197235953861343152014498000059714609867002243971259614094677914856819453516488419659303598609019619497425795493701236324141173517555933781532536959256379337963160564023480227155533417858975300653506279404226814338048150113044408433336073091844412716731975364215380805074489080787896861615030999887657172835323067442848658022293979881916067197051850117725551523523956387651293594569830398582723903826775148997061979156803385587181342364164926625956088309281186340689842011422702190691275323185014569539549080386314156351971141392254114521356627661663647911482960921953047997678654635369647552975443802254836622613178984927029025036757476391374207116984287762226307606461893650961480318374850543882216631213452169362027067105322656276037428972537041045649640945621673375651612457410637909290782229162098368357653392086976564686146146508609421953084611192645966160061557652453622623356275347727246989732865783366672915395193528774423266732181630593599670367975306522560197694857954298119428061391471207246892587597800575597071342594895154782404208477820782580361552422212275514202581210191890760857429811157922784266890909006897974514627334425842686064566963383406072099384430728721782838971472782056513878906252377846172239254629651021616766519641444348557707293642747066333286914161457491723356481442502620270892935241590876515582838052468697043147143502167743595693297776757888757466449387201848512561038739830522225228066849682917848903788433123086729767627104018407223811326473487641998423936555760115054810737354488618244413867878749447122418462624562248423087535519512407222013520485591932938773757331491263992839513740785228358132698639130509198765858281765430179397318507953839575930254830223396013910139104564277936457263151929239944339470166504192987827871482921663290586580883450381758681270448904405156243370011825840798177275636278823490404623990448082500328694848531959863898092200636506785650168788923092627642214438929277833627928722088682725174796441703143343121312102795599997172676131060553373549666185194712080072812728587561250788031474557983220592529860991098749881959614266680776119844428895662227975865632878620737890808738394849658992110942155636000677744802144446471297889151935501124090250785468475627558071036083240068002501814398725414789841772584727517937937356253684110505353160101419715917245088434233861496745542484659621409205243528578072051246019353585046947412614740822899433089456241592781874031521816700535553647705936290567386607532212539998600399162264154089820543460937087714285232559408272678721634915778244616616229667814972548420891181676663054824233356107816503487688622416948258490468282061219617006733313259433757098154509491483717227709731627349368995559096697442763498565151034012388496520550473845191635947409894361593982914943981798906282223336105336090605954019249344808904471896754104030174093689839715424231589495425017158882616585962522589959951764689272563016123977962788855703586091683893589294888643992291195481835216068114628745717039764555527520108806548186033126329820408204167821733313417675746983821767882824872933837307223653694361182799983813027492253184479614937046582205114934929584116138704716743121290535210165273954315275884447699433634218118684414398184834605064515749082339406269079094046355794744892125223438810502673441784188924511188181604705407619042198578327760799146846707150859984172954939885048294669863415823802263198657489871823337456868096960175032903833464124813818111065878913769293158244188718074688024789939777099153793217607496451524360394989722260801358854569835292359005214716163462794449136624168794614285010422886226297963976966085786887193230282330514198399502260470709647648414111396569308615519485477869313253455138562075138539049380201138244828205446906192558869271646453330234545074317566523488114587311741342755341734175486490116925478322933922170090557644979653017903063106693055913796369816333221780722803537204603988292997986644903882521228922959240122222838769167425528589494827364599990577966966001377790259945727616184484802797565693506062098408681150627703182928756111048095433390892179282520332692094134977123007990398130362940987099180618740761421275830595146491074142799983838731359523087378625055527232672659112547517839821239889072902629369836665246953569870417417781684516304494952808286083278240907594329097257710917710880365382321924140580121467847823660490717665531957808051404849682389912523858759472579191901636941269186554459639316688241068032498965832327818206338628096140541716255473287726870479438964550034819452127112871522566373445736660552397108833324082359892393830563819836401877096410895600549341678369549885460004657531995864662519569240097783110307737495418979733116421770372569655460386556296735015559441467888834513244651452041784114133311382816055877072799393632834814266684686255006685337548550931941675291835970364667096564598537474382697337337750198367673974527718146574383728036094962109736946614965477856866006665079329898471554018764884056155057549336527882571212592133623630766095940650195349230605344330006747019116329363510544371333295111374737814877423390426893261925541804668714634496238899912578562686930580788263167902526706002805680803972767164456967331295938444139269849012048532936819640783027651945397612526212873966471371114636070149429204021633659504745892421674571312757169912202083811465356886830671291278796627886526281594783517622354972916547706358414558411221016980999989017259611583340329511122694574228844238653071744618081751022307981775286373605121963230895527985147626183468219275729709660231344801372221592544666864290546124433816111535240824453374287737100252661610981819584966248198342328341216183623475291530308281919000693676069285948403858562467751694585006407451948984989999342322736975059042676908829008160627209017654331725852948390439421971684510047110467922295813224902247585940128974082274113089038432973276757775431751705162854773726583709383150299613075193362826198203860244144061465066036666571874379182044325371356911998243127695908925921344454160939140876698568588191144439539700857384980568777698308144232778222426641086682873253498119931250522098127231257288365065273237324887306499719991662349043806748075421605927926216667587439826024225014405012602914662418286274409201157007149454663909585593654351583540695769895187579108387995685911262917479959214806322690756456936476541458616476660921948891521629215133518297146215069014109927804777385933849714784052386056894023242239686769864160395210936671881870581994122731263509450125822217820812389733583924487426343961651972644680927653085727268527375757044924299271747687540894137218492520474863104463135385055321139846189864591210007591433134793001398133121156342801311357674327003921826102490353913895172446034459289654008630032226221712360764351981874168397039971908663083102013075924166690677096274678337713730607682250128654789379466225415125275543065917240540096085397391189900943502171721368914051908277633396444703428932637270066803346071329586930193568532511787505655579472093791920155217243624485779839827639065713885237282090317094764386568504535943720983265085350832088125866304423107742805882884109074746330355871647275797668472984083878498879322689345568657448481449723562516888835719365300849553377573956116941792377739188324556421546733839944264367725239601528971955662218576682987730274049959041217850095284738086030505359083173383579452004834990205446745024501719300507192252187876749781011095706561139568502965742542626363037535669938823703692452277181696218824953369093933344627621436317121634095331988242860996597391658722802519610350674657823324881901753405169596153958268122599437970667223756830063102364380749153463008351632322250600975962726529646658780280800330078765790528945901660050395544255960818534745269578936570088313099718334059693938861111987559217780062758742743985600220869009774285579307848373054323943315593755185797410767018645681897539457556139813464431740344447632409495559393159411426047675240978899164070979131313162274479776506049773320088108729518313968351832988462032602991778981261638153614781831326959512869464157207086327145574496159413316076276989659342854123987852261696072543188616895981514929989164828293264637359928183153541344582783698141285774464224077470229567495665014501968275120950334394970303250171345456903712035102237658991561732265161397361584561271547028469859344079675700646079987052453937083119312958906467116011397758755793433146875406624629424952003637627531353222369993130189244778667569095713910870888914195243373998523071944314798033191374633176466335851983310713305359640248933064828352965020578396741627874547983038142237817091085658589750153047001235237405245386219642514831343395872816286084849849699761581916353352962157390435324177276735655418565462439211655537836039478117527661231785862068892651346607774967801688297281188443487507493268436380490608153590833566966356622133750886407287068684000306414815419826266417884759817709670087765256941766737398368215993497965665311590845814664066545987093217314567522650631126953839060011015984179951439112909323098453171632410103164478295332515651892193971974326274422171697035579407141790856690328021922375202418978032003387454427715482879368399460159192221065252279483206754065734442979661194929146053595822524244552030372082095523482407004661673464023736521237649955774892069453258878757827201478939075186195165248038476844470596800834519878465618300061820508372231828734523613639091645777543891409922997418650617310375693171281528101707046214078695300672588960216401473789991437210221516732773058447215487907012820731219643456638387484064338104534891842553476720433608542026755016144439727249266607282041308748953203100679169263073626359749209101827842424705799586567893785266857068482128499930668460085056685044498196745042322623673132386122850191938641866317590135991954574273764905408021941777958721897782171395672455594702041298848223320719479319631549816790864458274477760563883143691829436359547062053347772432860905506420080347170272243915206314751830573037899871784139200025904681844299061613608335748639145390032738604430599649730245140037670787333129623562420387955090383511971272939443470703794136451682089859244636275935126566014031581052626356881059749043120756174300233038953456035841780808512114374043453703191738467122897254621395211898907961951916323647955515281394536939407281339679790638154526546491206802351318653264292983439818408745939189466639540501710550540417238992448932822140591725013316590655190163599994074557307591587077558630499105098337158142411010081614075572733363192830033806729296936428585473529485883764428527625210293905195676648698588697658516805721630576933638825678088364802868995859157936114163551411371150404401741533882437535232809799751701633700936792374581148810320797572975930985958508980777829754546752920045662605483856280963285540904429738270800305519561031940939472072163441586304055905951987422205185486625629395983175847542793932429413643577631774797930243952089523750079808270274744035504798345549173772985848338592404648895892123455072382054054470372284602438565164051106170819423243852145186845876534359027168053167376839439082603045585213409290664838949413659507930907073953516864064293514169785794158762599434857164567812856837540713850896072745759703485647752934600363657628732620941054670808331840799951916681003085071235295350990109581642026966127043305142055435908839106176857070161695911991080199908984185622310419462046901442936374146603952671336722436623453635783702816102882377653401803914924710554234358790342699328141826457291236252537086501140422501865708882195872467119117186800136729865858882937627746529392544897652029479684877489548811702058129897987057460573887079949267881381598329549564011685453522279825149837954014068967560203849093508741360393064327044287476570692148748040748172908492373055802182090707674589020785447182617760701901552565924667548440332095525203561361330026323624839213363853588626368781308412710668385400709229342066277175387064065054693124630584074737880025433124552725495965563750552599968182619498935073529195743852545909306846507828304440413896053059306940649206850673695361116806152758764675201428238240033607023736803081254519213282488832517448852249014861058935774193346032263826444672180247508090703677850630445987878668825344423585612886437456771824969882403172862168259646099862565707303444304029873358508089357218944082554977055075560884390523029107964902088431334144628708026625861400438370252267349682158399908158313950915868324538601367254466716281072221963056583901306605222323765292205324004347358951631856909971537742932868660946625227107886753793171712472925652001750057830640269294311197027805893773154451720049430183401932600251151142703665647610386279977399774268646756276207665022687871205358121047503977979175473355641382194410378958883704163066204635826670075984211740140318947342935605268031871671837384489816046106984146642724356985033918387312804900591151013079977011651259479763101971421761791234125085657981038322279317895848139471574735268582873934302922626575160661135561761625620621935093021503231653705093354086807842537175502587403709513497096981128373194198791174602484340979810887783799429613090598099015814917439921896537674101770664587238810974640889357048576174169753885856915833807684229234636955274229704038736440408313672931707857535001325289743573670519003251885814817994591774957293928638482018302901588684497405501320502123845585714812613851945969282268461041805321802305029651318272790989277594396083657008704385920539200997081913242417072951290520867181168290460098103184335136253052256722735090753535915358428576771787930206455763966187151206268185353985817530473885278907507985366903784785590902905074562526436706216698468476509300008686287461543576599213401846749241580570532962903144609311416858406109821288727809128972213277632702150519947536474940485919662376926157808741623202459928342027455933004644490869447488317696253002945371340946384335064403746020829793529115395120350260384666505702302530572519985520874519431332227423804570584357765229953166958480058275752826340906311166096107305648490093863865773240973216055588294352695606162576179636896715288875464685070442804598581285408942761380591927241676946594544889892037901775381036912654167357230673771187345826961932186497630680542162875716764860638337930827740919100605701680775981279425002445992194390716898950695665903636714697717459711718710826650349869225385181332250308767460730032549621838131482831473167710889740905190660574473203287135193408431119945431153085566127319206443399872981381448270229539029908886681385079490133950195235421201023752395747449964767036017394174258922319237635261506477798983773968561845153569142492784320225871843964460039361747940750837563040035937552194400236847510433225830123904923431631937994948494702590155537762967149588624198283445386047981885573054265050406444748455275770704952859778887553684936510222391247026847059207852319561692223039275081634666661049913689252113792440261826195091628963134052662788401210224814407611085241796203305068816651018886411870755063430037462112742881902890452048815271435753194767208822838402190928614857805012679013922714665977907610844850989861190651441428035133600661554366595016533174017593054106011129265753162022225983725886347920775546420659479522321861522257854299839369708902509811778691583739580259487392550801331473903589714751424694174166817818598300847896931351042708139213706336272429125128956063896411383702309474932191173671687292867861664538814274960365893070867914040766167853307419841899566718048987160023371708554911965235985063663810308465258223203601174444793682391273534087707031529791399444231258014724137316365314546191683482231136503424292744542916634380400472930561863623394542082700186591625849648974522629426082612364378419425581165628259575548072340029460049669063462154619575279742448594585063044545751174526875748509514247156724722237065409286998348470245783788464129717587025088087393500509741735190312069021905241721884785379046588989689751108740279831477338227355062609603494260156619518830026910502626563944619891600551311182384950507363078624653044172874938256591711081417592230470670490656958803164195287692820826086386900577554409994226308007465982686736792379435073921573005382294263679821163552072186965142600448466432358577279145713243709159184802763207124563059047825246702159687463966289429555208353372281091852939913560748335887340706887557704127658755766030837437465161513092358123625609674480802646294406862525534380744617334874512826361180387095256480574372939608056799243765150956281190772162457501295456789896767825588906321274660915609055284012711700845700703914858673796744517851665155590992595028222165127695839837000932046282197456164625081123935198057783609435760536212074065959863875045003465029877414272156819615087170324775840589072412478256404736928074524812059909251975815574652578268512627548268647962852156527099869981560108977034504310936396662436269919660075987267243125378448911360497273482098105318029011544388435860494636963224617287624447845800951757698378145735106554608074770395744312706655486808552428444236895402321624758896526414825102054243668057673107443877781407707527303503314554941530110769525224646785724819209844198886480240959659995675244310352671839623035944591639031198661905658459000810850230860327842000915118290177689472820735757670184325048112522075733680242768838420878222477585447529118514866288034140231842928379242086243948533211526590718486794882208200396839593334656364043408069548785374535116245863911127518721728031267657467981060173604700399635789971193901884545346702125944160081924487393918932334573062848091260647946923895272136283617956145569514099112282535921925875606002677798811679283615793998420329468208879217040840253066593208547681875687295363661470498622660534857020152375446294713013983852680503361730324562584380455453830156179225207400369369634749664782904697491502082293078394950734705085665507818628014215896892537712028239884364641995566944175916375656645427161060310064969847885797389670464047769994139734441673645871424372533948772387829577766443571565753356652928996248606704197439259557119764410705315520602599203598073991088364771329025084825756255904350656671557069292884057807781003962428463295883477645236415277859694340937928601336542242569919101891079216312450858416709670690539948234709375505480191837234755324557302169066006426400640769267332563150658033132568524092477580553111289223893498072656746431254364701091996993354501650689666824698666568601674883335060677771376790234763653628187154129350420939347044376807257156773218330074966098242345518205768994510391744988402564751698515956963566183200097119437870693510203442529119954457099861237701916035547676189477372506535312281568137604508175017237238235675758061609276755119098849938152056494102138164812657538005774434499021941245419010428546241539215915389090297557585826718380134567384821055189739224479791407990555229056240186542405014197797825589046439880152864724943243364721375297377148913443067338321983020006904059924741886626492409399630761967969042205672084018160275251542339405345675002222214861749801224888827172034128091322787015186992011178401705478640379556056301904526915452009819067802108361323458302786608289502136894040049032404490909647083933038917329183322797595035376985205054942131708182563094800620552672344450333078677394047039488230069822059671448256120460521407053922414941382709149700996229573344898135781342597869009568481051701267037204498767872116784917823531614456138467005940957209755321727962748086462085666829469174769727424100578507902626900290111281443443688613008288524760904170882755202462344015272776686281917209397646152484742502272472775233282953980121740666986128967819481497972017367999525611422677180926970556839897405069862326139040676546401914257555193581341492345637017308157910478449773542075074266976203646505810484848496005226078322780994624204746610609362282374383054769427407659178736679968436584747143755702268487417242840499109697694823096649150800536086797122658936295392777407190886001570308227613955923858654329776663454251776473694536746260757732096144624464540987251351713478986275287941152917111408238576506606824667547059994400603149963294160792982276587656370928660476450866418777882413226980948678249271633163023654042281840616523872192821196330251767901276019334124985942569914316947528084763828493567373838688121057046154368596868598866667810689806232814193629261379484511433254680644567000292253100978970785741192684805420309763305643619362911154423940692892089047849043799721201876914969713996802425969352037117980909422245236829642291749981550389067976903492783993303849527346875171488850735857835743397175823613695908657638757198875977362218705508800192298035758609539620026115326231237721498583489793482838193414966541464320468332469675299692120713678658645956551946291261401446289680870931305906489963014591349483366650604625153233346220220661660592670745326012245357127548325095824257729641142940121204698125300951114203295482334142791232218775236990576316859914775679514561641444428393772366774328378552239067638302974762543434883350006709046192738590562914975180472005792738164035292090712932711562221583463629080481913298399323505472043653510380779301421666446108378066619060289567555937828474463735518368610783746631789648474214047671425570860432040949472427247669363773994789579953505026501425218924819666103658809230537853976407887953428311312461352493518478338595596024239449630505256560720163348230420280545066864756046983426772478474723809238501207212880189600169171182196368776381904976823247769254318177084387648360500757573426416305315223934016051735669448131277290104309409116955503191908907247277564274925140918247265125186328808860753502997500625754692765875631329319924040805256962682960645481737147636508184600196562556565748253199477995411362709167198917387721027926983172576442020707351514730162763524203996169811040481105769023763322688365734748642059702615487951210835701298957212334825901588194714478077686036336586050037852031196388369626039785463847903024210521036615081677005515242096569120503491609388468568745329121624613250504638121884818625573441164149772061552467017635419393063055566803309943888925562496648803883252528655101096807936223016881278858735175930991360770118736506789276941926162121609214834763554859638357529407367895667231216918939656324465077240918760562535312457513161896597688537073793528078857087479085244180848116760513323743231320678167414913867371669464526221400053024968809386188716542124881088115773895107806323231536754372359708523263394648972053445115054813037700741500208309072229084517028248479244420181515153526963242992403276724034366730235556478767804065312999518672962545087453004227643442120403356625174554424334730144530988895732240161466662289703311196767609417271331811004085045940400069201691358897103111122534010937634433307734918389470928200720611642195891363106646637545087174540664513346983363631214757231896850213992453289697423225053515543749360681097092119778894830428482013324307152811781836141642287720701223334539132764405648889837936723644815411835825698248845704461101916658222174519944732737199004245717769232221569747100071517930759680255313683044579913266012584165518152441066842321167021017035097929195025460288368864353443576359434949318993661699335618545780143857376745489907259596295589778672071373979179278203084736526753357867223636118390923139540513332458188345236212874373414814054731359984301461901093565376894804408092833971956127212625432290120193466595365244144539415457327336451032680955224375955678107406118521315176790527968672596609395208733579475751401234866757013728758434399251045641665032106246515761064431240259569203363585394920127937215499044090566618446366817383369173905362439946811987638959350770170078744764840094977682210225284223918848769497212138024740695693175679216800637542313778417897779066303727478770533191671532636195190100875014053602348875609003542426919027258927191034670560863621532082154275358096898326270050636551583071728384976369701117431179439240719316900539734849389082342708435076017365885518057326653920392264815367866698814544379228776489984514801495103324953979721731776371055047887762968834204115851713387187781820651591927101541937957910639644400624278361626321913278862936990718779920665167246729798966670226651452749806521992282755838891966818068628643781046921597982750217253255713775433067044605606262375882904168598646230366679025237257146381116716086433522380915919920089670703442450576862554779877597248585268498889793756942697608818293301110225900843484578103162673201109152385849230813967472309544645787881524414382301808144621030666695889300181212130537138584343898639495677555901566541479042093072779609836313897127215806381267966515984353469900185741225679607409765345985847935892393697365754336271210066208410955286418552502801570424659579229877329231714965583051671689153049375740003576277800806987049672105807978025816355434817943260146987552975926384801286989736399070361679092839680312956531181515298606399124193018676316368984044027458553711068911273757481725706762484070408955258778998084529873478192665928957973038881688130569754574663890171731429692739578130604288216235280846359186141558027463842625322523885457721953480044983812493572412411716242230618450238734253093559745243812208477269514045896434030483525899240022669359545227785715411574484575013668279531743439811509154491042117648770106061715952736522417191875748942577997334412872805322211616520464416030989814158117225058627574652148513194002711081808426341231875596050456126493024092789850823719823451872659096406905804403009844911876928873179727703021562048789745811668189279639278245218453694898952121483585158571107835659069554788237607935368422663434839108080782458986358527259591196938513232866234687499194738229941563962431732431340841094858382639077090684942079039372613030314346744241859118915705740251211833076378989026694582196661415741425783887355232375089382085127661196296797129872308290156976905601728529339572181631176171464165553396032098759476360728107339019875508561748751919566769747917748974206781234599492136955977261292728568740129736230877062405717755689407389462503060424994593868017293565108668175799648733413755467807424860032789260369456935637010701076449139303540372221446046078900636527276979515980448735213783109954985528382375284035647148797617517244162670987704121604151732328629463667445368072047990716084162941940576103133236842107499585739749218618103746988162757716859381405436634297532692949854926859938555082811916023920656937361500692519636183533082505324052246102173510586239533095184326279023199634219040404197092588200742452105715787741339237712485190351565623937217131134818251577746914961960881225954827393691493797278155864734690914299801573939404733080979661342227835866418464496884212862271499766829705414330868802335648833265147796638717553229566164910419815565673411965172511481141043676308129882366897385418654622670121492239627758114192153153005912376978500259805757900772383436403429326083563193534140287014758820548742826545308592117337765681781820216025024426306524611329381137614016254940022773215874462375877748056557234531281982177851889215869002416298513411359927501729676008082803035543332695300800005913179870387936140291643744802624532194206333622201539081158082173309915689027571844832965895987992397320614040725815677685994718878207781594646649309011192130841843896639840691554160039455280991583492670081419922518922638256843475673658590005124330092898149182766014106437225836253856058124198312790882774725512683460940541004593276038316498281244135167749743380492904140898440060616538347672266049540541377355851232160330347817107385022290726025565330292647975771235140433395661435397872864276534789673668214649958742194416123502818343309397997645633156280666136895424689804292284073889177278512674070360790192751398027219907579790127836380592255310843084346209195461596061673541209144143846928971774797059415324669705632518714016867793567255046508478062887938792388034294202578606016334269428786750249798284293895756764860173708711294395238134031276155747849845715733456562086398984489538966623881584099238338460863813406112180102141854181551490726892142441364316552921982570545415490539785397776123520846569806331159045802599530612247519557513240966985909008574065235904548839797331736394611858588690780572294859796975259660186536605371889382295182735168155050841437425875104489028289431910862076482993316356643680627800703680562867435475301733652624741387773822125986350296096141164480544980648100752245779024810903483486308078545394466454018094629821622655355480218079574305515645475080078772977779079850204470263889467593033490369604617917100791695150180550225903199662317416181633818731661104053762144515089751389832425975990337461755565423679561429509935908175016848959667226995315260678466132060197368469584218396097353324625387327426292414148128996918875904432958809149872196150650919544382141975165082811832464291038184594349917115173776810178594233004859856035786178104527899234092752946430309437719586860902342928407780793812929326334014921488623064295467004546384875908133544556145060432012783837097747807105394472040478563065410324632178914922614232814333237052392706342207306583715192075056846311800531743759965673569079241718946739785745780491127380203395801874423881080649989196231888652632763602503516410557639090789478747277879784539547868971227486232494764029242340248747985034822550011613102769828464957608459979493792403065556886805264731927752906079284852522063988976753871544211710085571416911289581268964210758713464326661818157928046787622805158971668388777295326331512744525791633076084859838998685722040195221923730547258026586438637324621438680523318675591663484747070665217460094282696982734192254573686055387447698044759496446483684028481358632574983669713370991194809451787611299823366426734371448642892983709844251777870200103879525085934933995176527179370722954721886707121105119284703194210866811240053033235918922475805124200314657963182769301739777842984517605915526947112761130109272984908527140972221885472408649030308164464688954497968315782369608627494456627134343206068690462067843463114234008666247420515842588355405906082286443018754199254646236191108289622096298700026776025233584601051076791067077393755412264014821830734486175851275000181860299853230489713104915647578004885565720390821159344988883196884894515586844878648188119502951610626125866267232978762220440069398810519083686096277219671306673781862077922534228868151668093405985024891916377546302550202499603538497198645249523585860794753443643297667825600243227791943234590043374203910367707976930806805602421143386889455001155198612221224031905984484048846705592269039458281466828712473838807479853526644367025726091496776712999216653166383783408477288368446078008639118495287139224679890533593340291968754552295531138699600850149733652639322109551954514879967339157259704159487615016650293494364482995749274576657856385745509739520065032548170693192870723126845364956463135829303200895716312323474901830472026648741981198051647386407697028421418060671856852859523168043810220322532664993852733878328089332223400481437346941689556351366068630438102615651755446642797397878797515910791910875976045575331556820680348418592544794857952675458525715494897821379183388293732252449722287228263647057028993091639245048528951889499761570285420154170658829092384961216401528972626199755700960365074647201096441201872611847854702385860845403768941021676085684410401445881573806948974150921728375100823473661808427148359953739266477553516079494528321664335648310843123213684233141350677301608988936946100201320515953747564784670247886760646203098848828521285664995934240323366667721679402725263992843454563662170537572725448128586829437930268664770217890418261681966744002247039692864457280995033222166835132080463927488225065628549466084509589579789061847066431143761467272316790247564169964475514867275000171638153031516267581331785040191446578688613951476994756031454969262307821739806316656833660291107442412879866119796401537011070157389405031833131102138377421544169689401224170083926187908780063225706206246009431216062003095035243863701873647229403539125081029706941730748170055218357556419530173367988760675235090640612424695596521888049652924800404034879127965531130790031785667107962203581292787650556929651986925772315954205863121606898752249024691380845628179649032393894132567832315121605601418150603974802194616867575881411409930422902598051297608711593617186505474787870559743172416702250399204914108341706434803380934129862229779300043389382473665315580149430187429867899457179874570765592661491485225355422843275036251786567451711528956272698412304856983963033317283823226417793573205797981069294227905934464535740694017671639710637195692815163278252117068693770661990773198259457795927328864217081032714382933290934704659874150349202731485606531756830991846315525699244233817809324342179362038083877445163354972551380079876448809919238201942301720505489854734043722504782014981555538662587398526298070907489369278595233123995152011023788466782322156371011873928961415446195197777881362263540065945080383883547232875421578723028156541851885720214675535224934641880175978719095643990784410274693367104396142208464410512165792297382526568241833998394990700285770051461383478655676514604543762255597593482681684035700615337947464480062780166187062247313556182740238357440566415204794403997838436994835508368519625832454088392660958821735312248391054536949194211301263535818626703445943725496377768987469147432884706849508873545399745363851997643302052885342319632205883437168910223608590861074953166810282325121440913161224836330828357552319045842903095589340823521538316696045689125279062348996484022338654942709896246364234554112643762382733168752430525521901106746483789324922057471468771855268925237582717149685242266514829667460963853017175968491803126762317326733138315367555750853690278139801356307909862362712935312286751926715198627965067326955222588735903720393086758988314180860379019200674888152630680577607464102800970305735072845159206423379723019946323176509683299179512252018325519208617541156055745695410829682669976779815652930290595168975249450755127831256180754818290954669742930822912428718959462745195585861492869006251527496221994377639093014776383883209660900552310686044139806542162667216794008033920517819571279814376593374073123933358785405603378534556847350597715225860452773101848912379432947789022285103534827356434582772143112369826824474393463528190528369729618665115184250626476911667410576720881164606421722084093961370193324233111603247504704451700360439642644708178906865276094577859872474558184942562001683682384079152788407541346176664128543658265593166296579110367860637072994244838585622929478883762043776936284335135807744940932379119786900024959362757747592404702596528567447986980224112343177777057575232839874610392103981474787099613479612359368967236207468883125280897275421411778011821379810189020466964036894633163479770203945579891979915405565858654640864140751232221428771392469204259330950110712065122566008105354521401887067839627967890753182266341989002690720788266025823683328829717766847736158168518518609831390989741565243592292150840060972726120946424248322228480723182913691688499034268546751677158036138231836031884164387923169147709241692026201055181097011201280014154237410111776676520575496230269968607923978247769703024975233162261698728224185038212125760580695611578651759306337233903046697559676809785620302617869963035359254653694094650860271176432583343657352158899859828741950717415530161915225003993316189918410194061469252268580086798017483835512715319545883959392073006812253971480605113128035854244521792811169483101476272358737651389157575067595039860285471806875486319404260754249109608406411524373697683914557243748377260711882258315019991928446449229287620114869030337557711029782879011333464234555096299459473651896157473904548076906548181830557394852329946670001113986841465504137025584052649379089378291784263177691356489193832954306334898921261942354331192850244686022101231409051801446791852273609528536361613978540889809345498126480069856672888408139450712468323353084241407629516959763060514096407025767941683796796273316601226204426461452774094621659523337421273219666412286690822779209615301219965879847550479850458686744332492842976327407865659326984961232660022283854545543585767600562677940024182931242616390029026629480926078838644897090360476629779248939649914875530501077528640020090226360827280633461471995699598699780108846814609578777539369060975310250941715484084752025536664583573639589210734505432884188011989653389515759524419571617113269088624250109663286594887186357868441273015662139289167177426449328238423514021604526683814536092415884897582649604838214183947243209679518655813572236344438025277025277911381286344175318157738528813807406866568607650871250815350854335851770299988956069690066396475956523203416037234455978411028164497933025376870800412842414345727370286460192352415259296006493448610179338053889820841344589854614294354548127627198945495928391492503923459287651295250304128308350620613824596129772870051373467910366783973583058992901870203896660463867724059496551930610259978671843470560773313577071925281659278187118433951565824702045016558709562330405819205816326272859235064740862312424580460112534463433210048297623244417472695062522020430320183477182755700753130130458818252883494196177875084992364169610260846902805965859684640477210695634655088415758980453764672523924438461641867687319217838191491582995661437080229541939220112146242090338018345415651500775094931675685313183437441801867138377866216490657067741997997495854060525543753569035967835624041525525262945176007002037966597236575335029403672099079991380540244887889104188250298493017130233070040764238389980905872536973569517475987091700222037779738363595710854697097187651947136743876911196018467698053991505254625945004174233430602241193776898925832123829637078891786985411551456082964018570944602412450149267041481531692947052549941683111572809689855392613332636118200996414537934740968379639760768153564730439247921110105166543904111790188302817187490060323544000299622911636511366972266607134758295306320015996525725859200897050097806571896032699870981905823896254615483840434827648080763186227404470258213008534021137114846109325115074680115567551951907631282298572322303637957332904470881367458211432312189728891815030527582672937656140759181484592485601229626792955771496166405588368859533614792497522222657585559680584578523270621949224394226254648258034595773243721879161967459104822108191821778545305618297238888546166451342668757069536233447810178884189169657979135656077800503663917320707148308215449165201825166716152820047855174390706737670031640727833709047470992324077168259986399846831030258238350156152730555405939955797782857126568772278736633315969093100481639794339847754453367040493257923482069246936209687133860356438499177270011666401981448249971937626859975508173323714322707171417193954162121932515403967737340680523949957677277633443919064407806345532071378207385814105308773695499082971603893564774769923680491115625263354807650819105286063222327982281034004105438775381937037011488509884048306945419749633800238739328683530870514006849797284206810462817949833367164239317477587805211807506539210135110504889155918320122839996554879780724594333505041851327141942968529625291992940932873262678838636652694469276153528308080735319543593029322697053598593236903204412856634111735171218108443394159805899431110543014511147002260352317672539292662276554901716770024184306410186513617208752868841675844268295733611539839401995134320517981189257433606852499835478872579181885956389681460749168074681999921775802867864668355253939785189145517097599460934437861978759647513702418042108055336128871348685359725172055057472576565517483798152836668273477294683846858981433994530249517862545088555663021298587569864998418312257074252856669004297969457967382582031169317370387922101602376295364743418392926193259700241613686497968283144996193977601179305248901547437365427605413474863786445488917664724492642967914682337345400841366176188900816951979550687444765734721794223706079243142745346282168078895488001346094101230153912099708810262231759223601010285563213215615803353333236058453828713821348123462442354613363240785474777516152663026305285904758215124453329755787578696368447556881704459051250327892042911540471801541576412485559573784049345661796143787056488448646709819107687152190718192740841334188118523688489996608966458418989722129015298754266417598320137639773286799935847976180112567441939252353382585689840949815519403870590026009707664523763655574661939479647942444625998258284636506965749252205646893188348200981928796484594264405926305853048981176748712009338775031568675452636104722186661925191890206332941212670166583623005293569062527938347724314058831104629189768371189996538160462496067429224700305894909576282828744867660035340308637568564692915340914388453459783241070599837640754648572006366776071559193913444777236578850142952179380620313377401905292864187224281185583121102341361531774511862094110136376074788140068937665249482765389716267160307849550527727869518971721096418939582643681584219149200942258225543015704432879594609886290397780437298114065233582587110559028830964852078625369488056150010869160792698090766774540078026087284885307448460917744638159004529535949363512584030654045203687368688480492739173902103446264332118596102241959523736030688105936101741208263692174192622527606094557414953511464616990429352616354135822430933016268760037088316413718277316049621891859921557444416647857177497354008245283857639902327133292735549938709626863218061759324162541680608481292868779606463153421870058132236760368429640806449295241349433715820176316420593263226374894762583309212423086055222452456998303777633012961033563433544842343770056229286937799202230938882633519991909414201492298667087098968208391758823138999927997375238933456322595391639815127781281971981652070768540111572027091648536045137180744002961746232876042506877938783167514478567111952126067368947286969439035849352829519883522833846464065738344288241753922037043166931668096157254285858442348050693957824972800457303285277855738799028747133886689581887719076093199645477276759665848588588967877723938348144852502690602898137320044457465174060696908182948536420037135195621738673385025276986798149621364629334149229290815711371761270425739811872001379243551382961015578036664983025266067971570893951942848006467966106835449340753405163685161713155330254185095790442756964980966815257930894702768658854105985592799102816267626442771800833181032356971395724752903038934158664317415528280685814937949099349229524787471225131920223429481490803077320919812069405318669119378026517076768306209665656996615827406093463906634443727232877680412045678598578470762458890591744723692378564002347665628470704439875819442600678222676272883233335129443793999111286121315976439234235546033108989258676398624796215785493899398376815737620159276010636949133816201463827084917533865438983397138056044033182289170405214151540543871049739221829561263521185429040783099710628258661329299667581955395511907336604108574265122668517711427411752331584347013293363375102459015687444586068998760412650865049680682791727556599457178049335791754304220749757117982616175773928826865640319020725891598467581248228874782121669774558909627301005016802714555494173432926770361745692445635126458496394251917356981116842015481196099088503998698383479321793706913668536630325203832899322659149257202051290332234083960469253144557446869637200299995347289270148147220122760960564848482085502164275404282796061735617341944763743019475608092715148407130829519006040415810582237743981143502351797599935361706752119964680719460180927191829986860975521770543161256939559816593979387905998361187498480721653302596112682795240443632504630407564482603940291033364348765655141540710701430655232477595683157788550685803545833801753177996146439045904687391915115086023892256450360373134924212368363331287989324518655527520081210501954334267162473958134467405770683002450589091618225613830040046563142949915215365198129400607560909552043474711784511048385275737202721312821835263682623987223788359330608037444122796181351034877016673775194061516450135913594859646925891739634170383344019140990055196340533819679494481451445312404134423122500117508908401660689575103164041569283896556368877892599636014037400165887241735353176976836552034482605347535593298579406496999365132067678408033972820272508170836690620182453860090225269309326262751752081644623949190978489063297515589939835022685451740410191541895673785629687817091624399982477845883030596715492820367733139618812087947360669112033932514385516936988626332468126367921914243657844590684553811094940802366500744524689012981384357240016604791833110880613414098217591096970833851147433375106578727025992519333370818969143126011759166496434229677260399079192669007746990422303116482046907825109369596122992267294105915968989207985122048445870710985572200138807479665353877386316144763655088484172722074863512783146230675804473343549152683681665926535797275939609026264484150515915751659591122583223687052686715373796820697598564903877337511748206328604501297480803965430690837588890008373342766126053290908899408820842760470465845569281329662674366740090789878685610019797731253341230620060523540412755602313750703306790989197338985255566939317700586087243335857851638572352078195788529282099617508125973713970380270310383633494272710988695243501948294758663305580296904227876210093551913611535626799512611354563233183596928476886040578692956813642378174128971958554968912832623012599183504937055095517041970469831666120228580719686832036308548483190876969595658647171819568915814094805755290980243224940322437538593821871849977323354814536780143420810187833078842980865534009153645559502501975356176423848151736122610351304541916226894351148009849959385381169568864675075599501781784257503516094150687662932250090673753521566585295395588049660024855850559603908949178913100962549154715003109498339314492122469280322285125771496966403878109643990795483924509803600593582867200531827738901730476895027228539237639530819787043073337206917167516969275588252488978429804585614955793093119486291125974940591706408259044123049262946216587126843131226721241421566714375518885801141519725564929515010058826966659092717686809594426179272236415444726481143472887454563582714353797963692505365795238738299991191335128931643352123101452891078108498674043229955316096511637065276057533154168591814767882086285413313435023032396863206210166104783326224699390972334895383828081871830372206625669073134253513908058604418387918113106351678680417026187446681202294152591467257752686223159678877893458582999326871841366698717295843964961916439301665024822434685057541798230712487221212015356489128405165855326755141963400793505632554141547027295633876947284525613982187024931934273377803898168751814653767774463622536638214185539355748744939588193063341122227456567965354592864521414297828553663422946586568249104998034090611658097538614514993256094484672089475735654165031828228705972369626141551862979046160665221553026528921628592263061716778749611936114018114428896620526614908979600705599608622556358277380709966702797102603071337937035989137142565094071981642042151819902137078137956740907706233754476291496192826886657129456089168853581683126281947930656440749217519462961618347848416990174147352732072925122322071345013000053013610841795889091325980841756589055651861593391724413345880727873848504529686496548014539515683853733923474509177890602783793336449313184866728809981533913059549712361195865718045530486117427334564297671246506330040290214279604456782583790408919112006452511060193146860081876597213578074797201324795921414236896288875260591641712142334147570479308664571471680461368950440940807703938737092346934818229324298785361182485958705220984168419351539092165531344389466605586925937630791319415234056605565044284578081647387332843664316454303830630134470724147873279295620859184067927376993569945142916480668360255103446437640819041652520689171987822128179637033419919563315340444920409458353788773062632084795684551583406427475301870174765907797666099704237215607575877743424225283584082718038666297306761850379982418169715546384925419189472389257099395141866170245005405416084207798703074603406290628930670334013757729645864638079413107906230282142712336595983157165188738112368677661575382753208879899944435107509989101492056190220411186128841187299704455333521923382464656479188152920448220568803215020788149076321116793838126624507047532685351702992143051637324514257293411253810728109173940051823120169740975047666251890080805465364017913431313753146014075499750071208110264286747971446569390985189363238431788325134226195755669817410071295488885702181034382594354043175222241001390506753503964361437935271618211260485434354122418683883960430604023491298860917417990851289920100951522755985735662809294445240425068865123497086677923716367763706822918636299748892959617674329345123801977234850731795152359788313175682224568962083184676014926409709647416034282647534076593857438373857820490671055280587958451024558985655080582877095042577571329415885864636825228495393829535677538932817548121923164900137961169514096430049154703650503670979270768447828579221324885226917702716236945534208534490002725391984605061799744019152977810638668419093616321968465923150989263556563228654903085075376416407031702178426080643748739540503242898852727356737226009107887064340656322693169524493720819635317474773930919433028736838457528429861638449021665768841357036920475384962330609447908789584133021153877334493348489213987404267986333161491019861527653662097542627841791502116852148455760592028353787055808920103675084818852338959455615673699673881606987004337707567389969124305822191386161636120946426355534569993153839087726490394077424840140533156338954725630481615758625158676038581808549872621867186503579570527273366453502071357474199737791001228788067397982132350197617067067489569398119727470078831457866143586867961013422163294678392565543471409623863166439452851909427700925389016639246472540320648812928018243807299986816143248064602088358318973537698891492375174798777487381736302172722978084861152231967298511694218502071996674558194134947010958296962182194831011139187318194231898699204974002185337832652864113921656244408400786124631816982841988611506182408526934564274333228415524942070622292354981503948639930215562729074185270705494533651805290563885942335037795428192490896774113921516299045909639884988896009938126249683860331934370938333505621797087998660616045603782318597745635853758445005845205600464213311502823202774019157734897359385571260045214987827684632741873367105661228328982354481597713563422525308761874478889272939397490867002205659905199511968595634353201683204426664802592554984017633427353527256781492918597462028312840928018197909821832476060973518592911350729437238868331992922787597323344426534273944095379684744487602284149590330785527458676583536313964086220471017556255560327789403087504906625492716212428358923587267299277544153582220504575039648356043874612952832250802051155669218169149272161089159129066443593779840030538807361209027375333055996728847211806317219731109952828181545693335706277114409436230290637137908594597635703917917005089009747989647684896169017201050600191799336331763297880064638258464175277561458462086230161281178614327070786934653943343690812289590821925241799896850104356726360866073970305815198619620253209641725574485011013553619791904474262796707842529578603753818093580235195697781350976921631915405945533531404354834128309820949071430449843159681572871445404468528801905262338221113823359859663306064885103273687813429574813347720723537835777571013405029149974661644025452759954692517476057884556200404264041580373609244826317617580632835727747319593014607990160053025285523935195290942306678275006112135871161132553789679328684035532569279252888787069048431727160610518926221964499569508946565476753326205118686456373884477661622052582874996199475471688656387619188678710702693932045887638608146461704300596551160012652708139478756698433151042885782085075940291054251880225094389353603602579111840605363459967280135399440330478523186111324423608469705089679034337027364930594098840037779245252624586774918847757314264671247511953484242407706960617910195923900793037437108500804667589885149177359727853060376025990975131072117312129172702238182854246257482000281205287817877512659666430126548683329481935135756208459630074270505232821502570973190561383158631431839226934962121164647968346594408144420868909657423922495299974332129979726863040974859098067497249393007130347485090828641133783652332287768989286180513192911374250023100303039626145082648971492849985115555735442862534223730509472074081063045562911063181316845292657654761391180897444859715942227271944280855674412036761347579073982990192783666362801695949112626378364252787270190283894211490489678269147684639124728736545732357128629512150228968224410429018368317788284762161298615125371662482764816828231097170247761364869571172000600625284759737815497870913793795962022384009943319190894638808380770548647984722295443387290136307258399905548243595318447918026934522726693238588840108195407994859605574371109833960314435765034070271608582430358528401233816527014092898797277311820855909223883001270396213095420193904432187367189771692638523996358856553114152612611908121175233791088673195459514204878185161283853142946491524608521591524597555154398098665385048854646604532688265347946249980051917893071461202594290301448833775933625757225412555207861765060715701631357970534004172873921022065621588792240687163808812547493858750345166539436055672575580718475204164949180790258708659799532655692972362465559702315656643507196615042314745054494581904474748197088537640692121017206039096737901957921128005952092171993218366192822403774104600232350244195263259163932135269662862740364949160361952173262425574058781136061319757581715600507017675401066250357108844002295388237272246031533216125572504319241136500111286887789643812587147797777495137839284981424492503550505040522263246101891671288491478536743025245034040364719698838482741908803718507442899056917892008011872759249942891632496051668122058814466183563057451987103067851497384722145684134747885425491830379052090377836332691189708949443947445512464858978612101814827221298255281583860520868601420708758770464544419021667358021141568627125139543882416173108965275235068458033004393840926559976165801228132036271626991018915712944756747458189009463730394938246523430211358122323059215080148205171813879062813143755541205419877208548541348338733377630329586510482924341225294851034759504142459756431264109911613347854044255552528839230142288232451369947444434703365599086789993590533605024278992925794976174689153964239858720674179613741980651754296700394094484798687426199252897299222775125862380358431887098267661271755673309571154951147334072809000129372170777574477959865022732256934618370013387596348003865442130026912482914849393283762644200496024323252465741251032476527666624105560666336027059007767002341330879905326201359019753761598894959027099523245314179482099450556515971286699349184634445556677730527753608768008426907419760533248704049981139203289529364822089571981121734159654189200246529115675716149366513280220811803688757478055084255050936728717831414056514113586612592926808792078087497031890232201110421520285027744557829784645286236991066860039985431351765391280312911198740504009824729546672661361389496434456213193933616392158327853120378005478796315132202323090639621891700355381885738019836589945106518212565965889723268693166906301581036442679721328586606036687487815222917842196150463963495384707621357119615357407617851652859429680832953382270855667568429733554204036394243822205996904059534985672292810324900185673156503049595664599112322258051975124273336145659779578363361852612273603320696507072517173437733758936426190743898154922398257721375477036325688775289754546159882378681721142379216156439432693302543555310674565259773286714499393710056477462645935240979544444511732105695186746664488315294041115664438039008448922337485400459785383606641950824281768298022209049424758833984711502714096268961250192354757499806630279196628652229987070839214658482953498668601759024743529265770293886984399256167426441960557488313230301347201918532030778033125215585130317477568030727073850172377608182980659510306395231849041287624964573858427200133978162346461129251577593724002762006161330408942435140923839381763231534237630212129506243355785146734369723286396505517046280583448380640802738846854315860121104197247050405510969658817084523823954838513305591828272369966183647324663063452258807284429442647935496207846808737971178842733828372035397518478934992021308664716629119714524935406040162407918421979730361997848590000709125427147257145502240973629638009322028913954711062238097811404727131879627074412445736695611859466182148540248754240571637861268289409600536126364689137709583753372299834430720600932249029259731017420296686590784085450805353762043085295554826993354401171939789377740379445345304063151904084915959291092748523088125295243611284123116712828826896479145613875590294062739890136630135229771515109125805251892530065659564992460878753415606825170717865935732292785333090494422769223126842005964784410325097479963229856429814386849228970550109025995486806371099542518743382704568365554446611141085769246442590250452683462116353839224361322330107937337616241422962996292957115384265850906867991858158812645780298246110573620835360707514283736793144226232288769479341963771910432394854331079241088852517970498408222839777063926165506568631931329497900034132055502727417431430126136569389270374411814363894082329614175952388544459620122520447363179566254819424121841910731012466337056444399311972636676036630652896384592616933803181753552712189594289106567985568497856630662500346222030032085380254559444846475350085733548708611843896739380934632768542376212049641967995513013261118489233038286471285405250563092274856795870607298968622227271844672622367916661879701656986474402903710184780977922807237590320501380053291998790600258569568349115271898145434240314639296384722712486025740489439636182690330302182321694267686791075083391315479715527854392086626059052377010801024662558757494401518963506345089991904464101535672588550241199598452512029059683189358165313756370114842000262467792765229334083773095919926214928593793516867022416261076702830884168930249016652163363319481055953630388540588781023637509605086725891601697583690341480422125074168967286007452071466230206014250250188479034976451566143339418454351285761533255268704772874748024082039345408559690625996285274491061778184958822053821862819559063270190541420503072247692964409525756188896311235473455307318775380511508832367624571186640951246330007425583101611125948353637400030470320832210571935831861416479741229474572852467782503076251151715113118945454581103024067641449907283212120647805981151557031760301996472278810514833019997366994650423810557724502070848397935549744803084195299982073155226671248648923301912603154441153452420229740038196338499673361779506085746354325527960987131970557734033878426012434347819047931059364533894907351761537720656415422746097964922293961830423557488673617644240326907777138130424570071180848887895975206538101259486675570746102249694043602172364269459244564059761303818879468271148255122592136854672015431945678938616795629801024699984291132542699842917213506176464529195584459562830398647906976931453183866690269546252050678288648159713764365814239278302451180507780380695125161420863987151413651306959701460592786197186090812969087841391885596046616519345039480622012357368304078509705343313777926327076129600235743835380526127407401323592641367189324931279887376429379613251446684146627450011570546085670902664322039011320547659112950222818219363852834531082138779307969082734281258568500096381330094311240055341044979768897738813713867790840704905530047394142702214626387873407911626407026041403668028158877633607548960974511489029441145141241080690506759620413314064713114029707110815250022148898936907345276405555886574083254284072480527820719321346737699904052901024379187580265965491000191120029744573195334926671584033260632391742773605782432730929287765946811483628297510343194318244947730749711272143222969959056744626694851318110130628482761004827367076764495576153273200010764195652164390828381271233276457496687587947754093976228580526942681679516526347470923674232589549669251513176048918418048542388139385419547361415685914246094970179534701624984565933977218694055403764787462504885561470264270868471585650000306505437726792436180840217947821996613993864736330551593107643097406887891688799636435815015612138220356397857724758862358284565900505580908631369381390362490836054634836314076823094462146534258858776272367528250398839356018220428237792917851403431086818475263469682997244770833587081562077255853314203159938961196639655138577238097411637333871506152495394486060913169222692188906789108020606138399311122922111100782805428951545083192552064490201277102928476631904609025258605796108647590864778258200904783124487362361650485327385761485265679093619019973061880477771551081300227248107976956927134780482594953390213438623435294526619998273666388001183054318830676008850248259128871299347656105311686906718977284928620936172133497611426023106233745360861388483236667262413671701622290287831434997497309706841085402540100729591896157067750144241306533428908282816290296917002005119699135834236265240039607733227098476595058031606605904395708071465912122096259154866021984992190183381767779485333011634492037113023494363720681916275785366884925208864677603916670217837163005315240473502387041531413922222367957081626095815042363532647338411347906804309108445253427720111272401674809439265203954684901278686291931879636976794630408412169053982488887508059805211050435419643655365652484472200862965638393540186046165264195638022672433883947767459939276235104647161506176154366469535364443033781958101840488319460241456736899441989491018067196616192469010314114953120913504209588775768528442927121261995737630769982894959001050386736512805693823516698474272426515284929889554753286199313559701119929524126335935238027163145097890519847448749940730188984377285008178647956624802119102691362738773485597419041569620150556881639757972308027598496810505790323838595276891606767455781691077146412110163666084252941578301479314497730489754813961022176373496553663563045277630005207678584920023263453860204816120219587877050992581677100748658536084804093091904213685163649702509588696622232145037959535424490782899085355171165186824434268559109160001671606073480194704629669875993255046901404510784604748490885201493206214451220540142775850349349782568732713301591094563064226048050410713977377397218763369415865285729629530839579890521040807600033642344842556829124073538668730628356036958444323414161327025932241784308016133951141725959964467214808942565660777351523138344795867209445179902284800475069033189002284697160507857369585414679874578842883383385511737991521716500297171696519733721559215278548764239053330303972641237149340334597452905389068816932205136991803317815591731995918975820855151090779967462507010851196901885358868881556942260804734681068208972312620819816997742256747561727367960962629872343345264715589636058973540362220657096403194682585323098070157405657226467250155344698206635743324086838544652202674189214532215950865739482181936541208267670091788144436200340852404829433291459498378149555635132632922744814595770800934974255658332716570847914667527133033987799699214725606302185740535110921583307097541076897343744447869451841517788304547833741702810225990965717309228633285295116148604663367159798499996588780969041189990286272359566157501320281564759988763748089570602361037412786693297715946935881766355486860749725866260744730539681682879922772417324384348360709161268463001716982524063067871815366912799541215475624307145548037506353307136804194597097342732439714146874800726632362074042320046803172820572899774749415041734739574826270510965757360822581958788723302579685559702747964790885705327181741153806067000572179364629005427439536753131061520295404973978364930098409979091908660867029329633021812660580465125127999819366484715476249046647053510602616387402165195871466594902334836320819149633101716834512383610564233609282558527558830631824709093381645161293556958163996168977240408813743430679737472852418768064873751024663630943286540827770054954309489623831364393225525173041635341246998700801520409501076748581313277804977037414541820667712837487372774191486577584123909349554472009686579519854330389178268978097517138012188102501073755058606130799756152988787429970375207648731645708535087535314882189845699202430648872982061417083006738038305575859533386069898061351212333808328519725638441684146554297390176383794603826000435385537962044445504032054364448781595839521512868681850630596660364832666467207494706649293225541019937420617678858008330400987349479824085310143174727018124020843576633028860508330595636079206986127811844918007392218312611091725014863641352670917697811174079354817801606811301580332060319115051231678944074485432607728811830053204845479346044873992866469409686154527624404512145500705302019314937402908428422330710510078870803104476164531378032477936299390357054007777724630102264256431078822880233370427565506578534875714998617025344265413504298827265705301673513410122136056750314177115906243214811896224774092878247301474281732876000495136054297934165642375654769188598139554342137857310530883567896466514284540579106789775129818340883309709536138892266565954134476807646275682331499693825576629431543698299321339181571557649368292820469916201765372851662517372435951471933661544972759684023879521494145701925938098684081757664654931939228766355765341171376302832137457682550783844126162542379561239747637312139899282451497973173415905774101338187284469438597518345324168148546486360953393496788340756375945071945247990715149905544724382109682414459750256383599051028960230990911016471403433864868918328920024756527808778887304929337109674041935165951539514271967467845763153808892621936398160003519083628512598243732242877890031070765891820738958325912247246910688966127162803593288898356954722918607156417482701033076627364870477128446732536120701511328525196101182984712811694453148306954382501090835380721384834850998874477853049480696158883006839270976509148382902639710529123970762704950829766354690816452393935884405427404388929305172969087109860450667201285359802830536568826333767859090405504249794650819749828979613469870497195508566528706934231033834020731565623347606982745968694866847882519219522391855598412686346157414398491114392528738791702231450868827998751415547274519972587168800274339940805603150054930362305912573736711817615989492636198454427041957994419506652803744847287653071585693065578764160783378360708922607882991608069131541043209208873776586035357584264958830836202464584142744253916364707260700705408556815901817470554317956620340726448158300039445552023816369703717971515027256064566975645527233605933171748295916893148142962761531318220689130202693986849410706776038638222153850995444275242123887189209761269516138588722992869412856077029165326822340220954182037532643240070317850594890743081455164042680807846466507906062994287227043154488762089252563725477781946413361519653033634240733448664578246389834365471942166702097379712210838047387454166808217119775113747691167370946739453548989797018789476785049618840240829363936741951475803682715727522770899276849881691386041014634609193556273828239371797122235346236569019005566473700201700707438956427438194506928094234336650500059035949965924465949159818691808097160534693130655752456193078258145863462353169688478158532944559441302886278631120473884671178107453150943747903543159190317654613499880978052729697738286140108136333603483679955238847521094673866437515341716101736966784961675565486904913187247755834033151985587806263557696769192353304098651912547572441136915556587178780297923070740991390555626363015396348207252692583532643832510863792004981972310910781674553888411312670462623356705189594282695770431814053078692752391613678264362506850745557470351882478244937955854878631130089127064106859687709552111729051301916884561397668833448539886586926625734523143195208316435056932685248948483245277794095045090713590369031379422652630767153310001997325696094190127262408511933807836829776267720650142609995537160024708348280818130526723651689482150888070440683907680595518877294440065233275568719586021937644413335214380761327935009601368146703273797281460602120789481853437651146231220097899531413668118908457989548335922873729199107380051255634200513613845565003674273263857785680386055078857410102435724471843600363645029988900157537390323542131652450462767071972668622400839058783895109477377014856110359873991166251576820227596120420723608364836175781819579233307814540699815449364713715451152713844391612691797782883844348466433857105754221590607579395566258005077916160622328934216381660354059364818038547078810768320626494966646603694727057833126431643977757973854527326931687254250385631908509786667240800738772590221729073271652019729505109770064888884945250521650186855305804033315369181716572506157176207332510840709244764327790128464127545685307839638777959579963711564866116294229119480408535230631432003214502106585892210582930191544652998918784488173569074800571599204858080131592927345693899751150501885151071869011073941239363840569723002885025990154391380090294631603963932067887182927317395496210214197114281196858014535063927129299286277243671842374035899665327773239767020363806638514508413143456032732277845413342640538734486718346362269341206137618596340766231954871860567018965865595507916992065894298208193392850194366665403675202344134959470621131015004270659276755278995967740353528280014658273117575797053002294428039023472400772434716666168292553126129380332847774605466095924603817161578786549849842280891259714234603682961061234796950077288785933752631315807131628400875082255336965503244272933953891121710027281200593463299655728586269768438162701901439637227819033771006018028708311489091957083486173484317913506920646979003203153019599428544636316084797866143845521077685635774876101364300096893769775326492703897761465607776954011418806663275887972467015335996552735447651272676331303881608588006760024222159281219813126385995092447615641511537113547002264617309979484375340498507637021970856982245057294604097436235713649858055549536679587748595833637328038872251362634417696936073803681928198054539382102501242444321522032335236173841463596651821276955788153412861270163504802713295651398859010322158745214983370437502487108141656593720672419292672175613785085149284244520732363725844026192654185274387102529845124632257392615841149452039987525167467149751322819097403574257560904225828249449438165008086263389496348778794257925727701375550914339182212300771200623567455997184732785470261203437191193744753106752147238528201466765397359859241017630018226208130158548839025581443176859298312752566204768064671525872373398942484336619415993237761414338740475612894517121320355616072582681482613506711094056493517961876257878067852465782710087753562148445114123697426758121385226489645590803410432827177186688937393086834084711869008527909270167736459932032615369331702236535751409015708291274611578848589137369038864176906601649378171747782150683019563035136927153658092483437802749157779079639114324006063500163347350360865188504850131910758504291202303055901358556983896941656590874460535463571836216489608401529623877123446869331594670802767983388490948935228999369868695161897027301470169928127033097827387861429005913535412097165541308517829252614019243548738780636816744067304089157677740792983737285540419996235274522332045904570729653721880310866532516372657143498195152381053726010893789851947530388740574706102968775361134344292817048560098035554345783760240435576632063502864991651377180589253091455162440892143056775673270385558667525013703669556820383333125876868164338004292180552973440304485085574821686141026251717921687391858619986854709471115655498189590708832673411534770413422447868099424340192808528837121554676451691446987346517779351571996193844465829321528649753404675977883688339260000692189468864572277680979694108282002563326922095828259863572339487143680046377277430860453459859392161771662828800184784031586529405933648965691858901378786929097522397750873223508545415263450883398513654556959121961888344317567221058163099043679314082660787324198311731688482350668790114335025161031005119198417271458765170436663359168573071260566275394760514139709347942838165468172342030327198992068021852235006909342074560866223563643791467036647728813808450345367395829762753856221004393813844247588592438646708124340161642978696457701817604229716697167156442437342434325449028434559439482323936298871995139904656499953440110151309963867926646992282470062695992400585582284989011525565255393412740313984518718141377962808176271546607283361371830616547570463871352752446693600904115741961532008816114209985457253852025984456525140466449888781106035608235424385029245353665372937195132762158160053676770009520624068474024557187335884733460721214863616047904280853736728740805765466872792748383535535125831370102845154219915296544099775372206217017417746019227523371275611724906599584215042017417399162028613174976007257136633635860255450582847527616542294005176539661104114866892941401563076524732889537148415849095795349123889218006949933050944328620755825239478769587847752018183326966985143387395826671273043716252803067868534586123404076634149563358032981433747414782634615471813550234774417043903510934048594049215730364192539307405372636978315798425453442128158983223785163948201533360476182320688049748661327417191104360391721560459291273713698347318923457648937033450336228492039390353421006065434341641058774985783583490765021243330175556596037414287309643790021065586737798599950243804152288105737849630215462625378743075309602210275322164337317912465545910873248801322363116174190028563919741484515234639207096544164979614508834258519457498714426398039816973213045651961488677391276052441491912857394411233054745860931332919482391879266097382730813537920415211509379038852158112777059028965828697563536028388406218400190754376041881942863447062878479227084036018583705223648028168782960406510859625474097661682562675367035728062738803304431754527990254534785220986688857964624810669680291236223782412606755925575726538758529361241404015340944336188000048367188575926310836403363314436632748634853656874960732062980777076044265569000230741964414972120913078871627571068363981433258535088297533950331645227670752178644493127302612949335885046185728652100747379707783867132191010975836336396682845633212703776384456772979642543800168891182629612956949921973799284973522297608317135568844879793160647581648792584054895308267208546069389725552329833017934963670690050231783910729528306094599463532981287017690357791498522030465094681966871312491710640319928833995379096953283874519369748186312001672398414403936343695790425753166600683760797678053726779212760181819288220551069940699133631027631015970083917058998106267691038934819551197636065460063919576153605097348725522510461987270725957498891317401078704782906990708882052771162579453048816761467371463636850130797631624545619771480359927727270270181146206188301925771101243049294008238008713490812208430460821940405542320455202081148677846028028275343406855174098950545768974716703399872306809687370189145453283941833690615059599390413706096736269064653044666324492326425762566540103170885559269876180392425187541457019462228372403871785322841818758626015305265349958096431871255274895870850490805986755728425467062858827189893856005858661803692139954764644766394180655606821995115450742717452622501188976703262479905305007844717694784713955202121959145033126588072902150053294519795256173916319666013878786574324601097184843824285247033060723423513858720335021683525183993861913192190185553459376713337357296590602684194185444731867987176266422537768734758239955345025458510747851586222737231907192677710609393626973231691895558133054206176964673680424653149451528574294824711643556976214680104209933696134817507738610800277815430167155959758409503795788997292871102785139964447523248229775211244534319897492518499675843170793939767633224625870220106373844271595074044684317834827207889142731259751780506271376800812057229126381502489807212075997391546731959056369721670359578042347288151402008916202130243916247119735345547405282522857607279680160172496077955350040181731515149605734513444576399578371803202281069336849291156025835760756580983584126207469648449171296305910328561757631455509297014414252303807676682891150372220115353613825478479564283041895921076703157609022664632254888162817769465120028879211354168985708600783721344645097840953354988830041959551651976076804347966997049657827361734455312630233084671426861594586863882713581758940292228251388719200257648043792421934055315638535204357197110784045909370028676557288052165821128453073002897730983822532876461189300396731360958297765936328102254167664247659594389651299067853795259994001771554126290534921038323302640200040432142592885780466695743035086071116898358223116961026667286428399875091867870589095966894076387071381692235628230883736243278183031912700853403807664980845851523457024978791240697878397573122224446416484456743423508143637891062934645435812678475747550575330228639027909195544620783436971204598385789694353262878120345637994508587387179006953204799178761559527963192999663046162361927395450500742441381445554571808780163269142725019579617114338421595517914317968490758682999187931723328887934786672280825228721809586950158429889186539951882665890816045767425720683237452040532121329805430780974267008712766408562527251711394678636264386184913569488514785409468701869634959978180353481623297054087143559120221457959280813129931535621355815925037434867045809723540859332685194099154066491823552083995824673341987517774297466808254419544947254930473659876551090243160246125942594449611584113415737206324285249756813618413653191004719948089236340536512488533366461703412898745698943180581052327402811408916056327079978277769493233134549625471352199495884749265596355517754634235089681930359085813381928383107721953647762056932822972901261534211074797221726700449595852926980058881926789314077422443644790189890159101999071101729314222678201836142792473917410801401163099068126031944680053706450051841263171711219917480535296835026982193661722275057190445493484921084033614532210262211461272965027590196115764713601889987645813416418051591754021697011287098181261018432628857236710155933900657845541532163846654757697789499949754553390728988799672624471057432311547511039086761683526761963016474925059402962405119004432997399185689634702158588535968605685044641117931982815150393934570623361552667321073578752859076641252691887928500248862032487381763494306518310276416703831513127041660992580399010188909042895664657719259879587567000777410566009091311505889860497275595850161540331074949600031281478961894378139621577709515865005163648451590038982054850317771543517525283690824532184331721148141743353074281211113503502885836547395812261695607252258927314217965434052919231772935934857182867591660495717653323846343500512388142991283890275022482396688990309453691501809669578630849041924103389293709749288022249670893100961482044595320528658331058125023987528705464593100194707794951930574770956049146176207962449247035866072360297986512553359348978197249507649561078200718353218370248960665682238639172378055823487920978428626137646949230624693316518346585257566969162225177575260266044071810462175164846025942625846080192633643766409035578606156278441861622715526813854077321241360180509693879753300898570383709899092672579430636248652147960048024340798412007531179707962157926480055050959186439121139539084902413317825086316553922796984825045545854293191587966656439981884105748502779328702578195983672691061408314972273424258742410362338928089875924386353869988695805513745390052812950093219870469815430372619998713687389230885862083794774375427131589637705218089393611663689166282214980933004684876271521286382981745872861753224478563728726656179668572307966292340353278768499605670203549360587289004690232262530160676588476445587849630114836552428337115601029123604671768458291464969814660189653684075602402775098981517329368106528275149940070942949476526137020439329154898339043479197218533584548745616196674062965611535205229921634250487738048928719157827550930942346354959957875785736533655040420684277369007423529797966268608569451131391157898581464692808154142614645293690678097649608653833196048736738075323182872593741439567217420776344101118084676939295784111782929042931739536304934322667925971285206941444186644136866301668511102379279706773024216833365480542048424287317356007235266477025632249618753155176638631879586776461591699428559142708210133763242885535114285994151126916419677723742001011791589196500250745162673493269860989375135892960161448942322082348334317448251504551893016485747315552871592071049935061056953426242845408624718418681694158894916431073719909204087818181750621014936097447510586343910456476699475356319650756774324530206679123617481864826736979751494112153166189225982634575900384485262896569610832632316100160936828748068292841361597422593761617594530383865835684291750981262539900108926499596885961239039885977079074743650500544015395216328694562378120303743700586859828005173860697999400515541635699738381534719367334256074792476142554481734024708040983441763846182065726190946490771706877310211876145892878112176294040219703843143665380619556475475055477888823314513981820228615066558292458201615165727810607502507685992302598293011174057382058612274818180814307843241315472972946329118341811965261346430009095228541841550915545822968686958779032625347121812670855198643823754088299378268435632582643567508369310613426877070911376504677217122061645158483483865148013693823901329219580587018270025639297802232101876069837341346285717060228917941995716634380537648727319208583001852037970948433359499608596191793124322065099214655260781652422973036802286213401803554605043740660528118665809113586210325194118602944258149511279367095343422044831382921209855015523159858406964117834173194638809456211219709264181592694383306838639524609857560190214917344671712560100880761929155552851075377083718568864289445563781624965380243969474063918625271435152406723701290494738554855143837354944526062850584880539444535227365621225994608802812783896605200896779035023218078756622315681805792753938496996426392762404354104923302525104637464980441158644740797389613882925997242801508228883465679566867334703560732690134831515248618324178138653513233316225252340860054837545126929173230906088515358716471259636301378972001248229320048709523780855855510667163100950013813019116705531202988048514033883201336200951497562541826550843217509045633088577467827578876339085910980529019432635502802075547218705133178437165592843363068322718701398567644457367816487718149179850598485626003795334176306562985245140319660335540922895601929094614961608755961014608991913578144064088840431344254492729308433502815505145152536183426086409646648875432283800371527642052143540234769768284804664601559866204841479641433807522159482859049790933304694788626631114880041627211887723801617113240942757917532706094489762622468981485259722216158967641315208053268711129713220552014621189028513353899643323386368961973030946133977693085662648897668191785036590390982233749200480074648770040657875402055395917158898354921261594522744790340718898951412185219373828346202013189327658640321453853060860378438014729350970637417962017963445721615174632431524890052518464528166433467353644899298715081026642316626603361249839695819301372173627673972476038908416542300127705782164166342666769905590937508960970712263845944573586439372859739592164063844278126563059377944125428638090628849731284270389893108688403656106355107523789780123871449425274819276338304915062744309887303045855031144016919868475718693382620720199722279595863102778777287562486021262807356444494817188145024625679975253673732303575876447545356056877666807574190264440603339363897246141762927124732236172560597169439226066328150240558949364564227778741882954538009967009639431400112198655054496640937293291466410952786225718585708041370784183942246522601618145379622391775531719218222038793022736713726952078702801194806770250637695148962327535872528482436365808302059894106809653323007909522355855175300835092859284387402710591076667870778275054448833063685483609732039844366018696673085269635838728044417697794989783716507138329917032129279932834249415142961547603572598977742572230903914961361533121005081249968103033509784985870827441932599784603795740989010637378513087358867414210785707906728025700899238034631431067939079120176046384838191453563397235353180483996761901004230843785279936487539871287987492874342070213237169767256833155672452760269921279354492632323066944927956364812438960095815680685439772366947259577644517857425982029636829017700491101267676695111904998991021154101418496104112647327218735031432273721935414973243076748200581953192710958980374103160841315342440863936731148937282084432264504062230145581905581778251090696548429542003744938663769757034398261755406570130786053153337216429589847125820579514509694356286640187918764908525558519410307036333887636162019343796596193752605348103824959003792925005620208016175408322097562506293918009016597769880608311741266522353149616914195693648970161316328286952773733741778878392211886007954664488681765644294754184257695448002033087046536486668832582728528376773298470379690420905206954408505995291762462772307512477234522617742329157334484911724357778231145042966359848551136911023563157044696458341250718839768171013730839860257698573503957075002612123372846168089027143164554005921356582354507232806457894917341781743820989439183247497096211668877066170057875142952066415094636378400838024578309344609716631654807765771169635541220077753429374910339952124269538808288051814215372328537092248562529029576419758217958740560231261446645906356552009611511595190747174975703964654588196911536821039201322806130225980942027258102389520165154377986587566071845687938989411098124943585128030453937485970415366334543711499064385394385319827189873837390003993981962077966997008771594351865569816891568639811484723364783557450268176306837394323614511469290338032582705723802778295299309164635647320184904808699684183703992159172552966889167671184109154655629808470415494291662925912164323514678317940154912044999291389545218380070460899725231360092290791637863996250026188722881266370012940369864673981194933178526723365233996308179547188709539166633409202584900344121620915671040139660015999396125840153248120792277931369096985713762087972286850190971873672440859064534820503826039735046780906454170352826722607065803015229422626299300930053204796371601421829313520917951788383245306237392280360486015750219113433267329504489125278675345998446210067279846083543856473904075330216421184247648393744403314296693543385085163194361755307453893299502835017744093304802867075373245546173298189007173326585573381036341461083206156091935730449356360499831114949603232594961820799832808912152119690101536786538671463735983651966296981899291843801312844955729573692030668670588310412953392481535784618817268969145723672213445900531828214902233246229468717147632357792979262467024298667737081711523106248765481760300056302939527046203541241910627582884356092461238490049619706146236151945488073757654261630617179360908258395371928031583417598608438865466688550076692096929399824731411136980458640433554671924891678415204676547386315268869874409300643513108756599649058461251253633757514416514454332729171027937430193546229375284521173589964813785934871219805897694774985039313319004102673662951895103522288307678786898037596117397525536190681566556110436366629648516303803378129741188850693970551119954841178042503486399623295091126400751625538073025355333489197065461472383666416645012626540313385231418367065275025871774170766727045111081508072173218495651349482229812050454523839798752163444547597751386393925383938278042053602029366891345120698006099993455540232052019963720422969258486824954784890898607228543709261701148528719049522000008133038278737866325197228980335837419651976010581387771832339353151162828299024583018749692928355864994059083083938713135847472385175357788869760978463206559536194054456577841084495460727725009489292377848411815375702989777685727196989135522959770895087212433300507211900247359609195548475304746075779919871054317861465572225844658944578661364659143764837691645627272062142001300730225701419973469406504888465175616194459410911475686514215216027472613185310002135155351977131696470844390903574833674477676088478775621967383565599317957530121081575940368911687803159323324203928129333525524507490984872364620673372333116861831139230311247321977770748065517220300876917670652486587688089387567838555900443912655644483538210903030477483689154260120185380302449167105352745717524231901959088382065780320573815059749233683938613094804268878566444467076107953316110258309730258556906957359782506015793096315908267562434556489868873509893661752748400633300034723446166744282287343433135835762268185295718935319400870813207455347536089956472566519899308707642542424840841851745238370803949048506426435246565593152157672380520119381565075153604147794715986306468555878461783749104348852869380720552635006691902323784697607908933355688476665313765040472096975919833498366839446126002419911770800333891901979647280759027099007521055928836113132822927353015803277790488890950177429300034018122803211966776456091134872727735132903163870233531887125473600879545380207387857226317681519995429700545108920214514492106016415349453595926644695841219298373538856667437968369341573438110719838032426329306535569971347665460086424791785039416640967525150582597537718101846067536446551393942575792736418210824569740390312239222655267827601148463273288436982461522668746442256395575704632349386241927340899470719778585357480135773396943599656840118022815708752955510181728380947255074984423376871827040275884717606144925746726982412848775742115357703408527311200840476738552551462263047799216800297772200732860976421627427884947296350283419080690143771615095458061829620898721587679364257720696432894716255431422849921428949730453603491340080332869320680842548576565402964181444954665479933079471634612321978725164580179905420189352611418187394236139619301113336580145415215644651770758220936453786395131056061111006856188473381426923646735568857845382545340137464593482209733034881660071501698582231172150780790489579553932515014291998381605368552852722021391838790123736918824295988325432204123522126563539746197213574677807687594308954740297616746277821037697642818109354519675458052854183283969469007912423073503622275960534918357543614716501669136585941818808204420107467983551067345447023859574035554248067152749252999673071117652380011600873080083124447192277889820363286238013912138943006531171786491753771646763316315009520023681825445579490141925808935904727333479148551480460002330350565699692266868391614906738190053536838579861892683726823320223228163578678409318558823143901531077227653912454532608762827000260650917803762781418154677411459041306989508443824270556240535413166457831359852135450623258683743476401129892478981787743279157149058200063548226261793168913908031166338373498815523102533426156916625091872626547898255623653679362367928940042413702266161393521537196417168333675268632796568060203721234412100259255224753885072704273619252334388357245426090423960761128988848175864275389277788621496006703647475281208829823216295942014213161533963050957027371426298395837824574764830681404472863084991358964438022812374199113655820754801536309728236959641608158484056452519317340935068261317305116457700872575418339815225448315677422551190311303879015162621875555186336909616375302505682109585834300550752590410048115734083039620196500955048864885777036855256442531888977791443469596218164143048983138896681710394354952307067028658161830941082880173948423923998915495305850892444152491597258620852498738510711412767912717387577515828496720966787435576781902574829253620082110794788456821376001290942524862060360315751429692795182387349037115016513064727005215151493833979562216322998389538694465467421124673171087133077924269308871483586912984528900274454598341947719620590240971242952066885180617313693083474654242196587197306354610923189993755884162925350093228560179496930179657284228746271902675801944392167780534081984921308203590865273353314797236616335805236598557722779872610130473795599052345245029970467529888689323866021454258402767850304458422163302216971562108766181327875462300914791712776938437537948963396292940057793568739079421024159914076765315890213227848047038992582977527736964360353546410463788595429083577637564002916442614295141467550837099556597094164944006856481154431453168599470670851737434942844816543648079547682731697812197175571752553447331669291269194987230831496651090065028092458093058286701276029012253104505585298928839355796004416493740983459364625192286257161668241926389150231927983431436104592199496377573574371782104158203335618293075639594817203352673310813816225180566815692911736767922979395581351704274904701932128945993459061215146777154384008291789657299823895248866989047692574651929831152465095696237344756908739463083999213052892291061637320281687774480476309772860885176547129301187281468047216382920954884635557613866802103575394022651156613259272304288715386272636151203219576783819681350960573441800611806663129905937075298101164579538942900939962401029488491941570813158433790169129077073022958679999949927299903833832454800199721469527876972244746331112409459276136630565614981082540617145925493682577405609723556257228332310095599207490963832973971210205164391637159005702007585724273405109141606663794548642049401775184234528023468693711271974428163151722211714314651505711599802621048896865883490736266715687735306281951435280646178297336396196635867940619957402055953804267809965939358820519284372985138457748210472740209727757788556016137836293281495470108906590057940983756764961407599644079270295728440378418151857257955190865035406630860375183036592051208922723968689836846468990721153250860149013674390511985139477613444088210898702802458143885601139046565179860689602614850556024146914911386573061333182649636896066141466681923721295269389460888779597137355163350999876194800765352524013592657982188130698635433102684659913175577575861587049377920043238477021204441561022565207659541082439938971231736079775295607903986005921184790474214156620597029599986075407177552265801734932359808859518041990074120270873297218498586393678959782402700303039936766337092515145223574250891245067601897702156360869391568720397010992861254782041511361096388420759430977399253863897114690190971720311094731391144647310730201533093396104151421444081675108898481707274844680375556064390575021414752477903729525949471345445304872397077177385226077897338401289389265888709653777085056011241371006653598760959682091556304278345672524629556894158272240405423201564041035299499247870193361674250523238953068298594128387056304044726422643231241953050640811031664404767827176926514712001788506340748304329861532472113441195507836720712835188478909354505052245795899102247026622212832695876789418263809456641628383863068530074294354933214486287689811305963465696730475005677250505730648305553955862639973729723590672384250121126157510396514708765993869967245867794980018414953659676819569219887019073291806999622290161814762746074882442182307175116575017414837196275891646072307360203097081690707218895498417648141934289158386440739121417390607549460373243880696619385443466213439304175407757264897346154271022802920058629075363615214441899447749012773444829445374929225709313336297072116236850650234739573731614578101252896776136198718403977840675239543151407377529481720080852526433148384605541695146338918394373167758397213252668993695135089594270199648371279456339217440699145595039031676091228530502898866398847377482461848514501657297899000888031245317618527767968836333728836427518262066476918223626972741454110467418027954095788998731686642582554424015719680214016450089593226177322914676401491559930099061838640498874133474263445978176824192797387259854004180058220555872660246569113025745225269173787308078429145447292059090099405396076371981280833305188595112623401423981203706841607902964766964516285904891608404947544361679501683191656371566742120735109950029383527869525433080554872254538880660590011959142226189976437468951907342966146455385713698624374620010693548778424471020060286553508548063535994829768485948274699884522924395438008795949472327982222742975520202653733657884355678838257786005021475913835185837304706729864382399152835160686160922193107809689226414611963665345823165629469215827826103210886161200670489638188108132459066452643057975638433829556555021316659013596734320423536268748935708175566561635066729925665448083095296808372146837364597997524260027187524883095182944480259607420238763429223788651845769086087076766189722821835365644382875838633137488505203476803377328555202581658174166437471238859473005458360600348680490774720412644749983732567014274939943028824670404571800618678514179515687546351854198761479197757831046265865369249262680682351471396109485560321739617747287518336382016281786328790541507112063853018949274983656329045149445916574543078220433144393455953764190394830405236437985987736537425373033398409880639302584914568891288253350393302311318791433996810440946726905992613253696182819908125753730572501148864752532180389576815949621562859788172287767973699332685413887455465604811481406743816403840944926654512478459330168405759317841129111398227103685657983832012549999643315062072040402566865570506010399107230750135347900810252981276075579701391101285455129628134101508090564622449116243485715909369590688647492055607459648436073719246478476507309070076850986581715197927305861534161921358214484938342661073684084170387440132660491012617639145572175676536607074845102940191701116904543082942676575717204119567707018985171219490035049778654112060622964247336744639539438317134717277141151914313848750573167300087104560993527092714363253893512765039720402159703335367834502511422864220194280303524010470911695597216321093741539259862932636269132598037495476696590668637405086286973843387858094916320570987782109727536653930281699175393130318064917817828922985052012237557410281411323673344099004255722298650361819614982462300266501268797332910700089366309239468309050727716022885829645604053107265042297130919870182917510617521817733136940251841598133065589787784059981765868895010694773214194186382324033527195387382275573624450565967061647603089337149523311024236443885366470764547378080247855340298434375082888932887790725319211457341908599123074792222795704855782820685373738198326406056165073844467854272277453257639550977985623516134543926691292682565046514166961952907753896427490841619122472271785775357253238153687053136774881682319002414655336979009236938853636992919888448919659133642502585238214720824443265551218907104161128611281173549631188706177448046290099881129826487087362366396605352520425525540940328280198198468323369121659503554943072429135706948025748718531333968683946571670268554772520776175085348130013821467005463801388196625988185759345216361197657184894335117474298789470832206830297069768772917239516274343775630219736704768458987929458504193480050078653011693090769278425691597827001734522153419715877152096359300355183464503266842195550933745828198406163305885526278514579224633070275612559578832541175769818492160105707472095253807695556691477869803855181866126338416684765174393891151519855979589879387116331625515225305612044091259595186344451611635048993353000374008149971140954718258086568210315055112500463246985089363717407868778868092740535634503856773800676052472598226426980993741590783583775996318656582140309004004777994375251384921422571528015987648103109835867100745088727139794247380159975547682405932417598882386083516370429522677547759138024122132150474885764114011394487806797346397168038663597817049925840271322775063408636743754351809419967243917488919931392049078526091001818464810496963245069480689907639423592245657262593844139994606594691427856607816789870937896425041097292014484713871636235414554447772901909838449269577677980767436835743824488104529322647024297374872985465858807860806135596882694136290769028197183864861433704809361971286017907456459191958443578617718279009410885241117485818195118381433318171622077853891519126438313438717115173236366099244508714068746305234789436091395484889795547621208357154282637339884624449678976837504243140936038267229368081141541993209262310553573513886606819198674478935981986822421196446422998814631351804302276119045639865878759733064430362187567244115456850525463013697197332857566742966399907890183140748217749221337711819958348428741907419850066869048828990771099678658831621705428650116563833257928973361366258585233700296677682892129872349967268817461927683906177199641185358090320959722056056295526220386830355754902558138333061427486086342842233730259176265151464063859119199046074399023231263176831818118987084650285994010134098454269909621606520110880442040763327998144478928829762611455642476385393536286029118330786945740075640433670874781434558412876988805427273270459884253381153103097709148932804162688672128562089444723124400499432406203326668327039772596446591287045469433766102226297391161394340614934271767718703643264674891417778516742734184229682080803469591659881134738289510893835261590714886425091826253606730275762521341790850858012138813562542531559709546426094820422618560843395107080293855165990583748599545469703887916344681410724296439598266862798160883523136312214571601772587775919672227934657967444413223489957276654768214097196864069813186153465623147999293911019005489582928046002688272640904920733851322934684180862026082469668896467778683809352412029305276506720309508022631520503865033978151804268372142689819605358623895177436537178201276436104108967463342933029695307961527147687216413114929850476534322873653100004714990797879831745970019830675318061088836308222350714325315904374591381195962271150130711256415577993171870399064556345490776800268346817622391090534311411184090011644034773674670897531901432795749770009930864747920075986482668636537026904829491537826373667548278475436516864317101116634999099503579005648988941201385839693442333880198874375389816443858247592396238033022114803403812621236862881332005329503214962513240301602757634177554554132756628195151180994017318876510555554872423359778096671080942381677074713707724279276249704529633282227556030865556435852462346362536317084978302896153227590870152370636581119460627463140031494908344152044910360958616000739383487371115719713936386239765528721243082068070365942544895894406387307865218391080089212939310083655798860107248101104908146721888068479362681840057114482326187797649579396348751168731824296011665336044519884332790617628419485303746068063339163855713685329517624572628982281022661192699607284174381283075494720735070465337872947744408231691226891932385356481231829102105519241643032165937956440963630879845947791561345041245650553989629090406831006115337775200028034547421488097370876386630917586443636976186663605495783060367897490468452098004486472756908075933188466846026305391904201369998334359858238628891650003216436568647536982757383901675222375046824678115925859522560505860444418773129868968953694339031912015415151399500276693223548828780894959988936385601662918282948923080472244588472814818723085779029679474649276273468973297245697297970959299994466558746363095392796681427287591773508901031271272117282953965839604810154790977463979622772573932797640149000195728101950652746557592047596765472843797735935197719931060489059297639815648489564938472674163934641870820898290514158871973849541561569445302992074947999364381106005078976616514191243375759366690826764524063826685696918248371885282396627948951169332115794587569524458010760558416328080944784819663165638447124440407060368043971658507656255968737243923840266623571950363620141612995039638605069389830250487920069084912612493123230142335260774964262679387460674816455294770418916675110445840507843625260322365060419113881698629364191932970982793010534325587811200109264754072250379672170764959314629127845532083441250785364910811402701061097680905891255330590587353784158570270265150370195506552492371448289022409812521181878172843615075066619211549628555407546022813143865272216445549646549167001642036585728146757080874369831695744221811599175066367540773471165041908437981035790116709592820954409003860413449998137329250715361410379082588002011202792696790669642664348780077070164205314977282831424661632267576864685586785913041302066391930190239933599126299778853649411481374349575761022712022573759621962625154919948939303822246943148640861222007249297627756092351302762441957142815804241836663049644833285039558657258007429045778123941800026295464211778609895349973120265697698540192067228393166205071551493474715047332756110215911726437370234822140293891288594137681947590506775810208662917660281533321080380038487610080919425215529021883684550351596154581310312153101787033731744206145808203914699658355002985549713263747022037644643534617672495505207396195910432198092446650908106737753017129138772950352834959733142183998681887336437799750271412146085281495146548548542915646988416915619637727398577882695252454339288614020486851060860205197501108731105413606399307088823145316403152510324902541565699838688843087503915784855810999034077767288766444247473887918368530083621132126889387681526610025434220438699842295436768906963855323926441131912659221822106610695373587348377421922268168902253970197781438764885440419951924479778278689841325249722394316866755469474381368562580959133492395115916142797872877456524747396956150641440417222803807075020043209878264728995453994579213983986949936971127904320033483837853279951785198176416446776305059569159874813241352553480561463652931601212552618494130957130249427186816027485056429852678600233236181961337848246470093849232420661360892803912818940679571034283131500905448254650320122039942115380891497813627321965637636439675450472725880907849621466141221660647737937096575989070543060760452180598259751406735365565646786402295504008756426788855216103869801271598656708308314198450774661892824730122962596392852909150199994187159309541032959083244859208398476694832314704794811312123695907305654428492375840157772405916987491963464889702045752672531846032367481122109823868957553605259593203858804111127615155359605468261564944468381982764406504526155247403542797919015243047226210944812511711608759036173778700775637410179730235384499061999289765737049704303600553610855539448165934617415491878690955546143305785360007414046739429644025043593398201182993610849684857753934397031570677066282279321905199421852130776004557239858590944757326681883470697048334148063762401072839568317200186299248996942158026837224210629154413553561147152103231825191954422502533474308712211635198282591577722924073025511826118584633322592000139643043375177890392857339332335928891482661398516237468490314984868460813196077966280014694696146970644392211317909294949266187342836583035996893391934146488434043304339915848268771724123162459115651028993844526897960591559395205525605662553414009707440742031878288608849964773201518498948452940799453729409376087174746974088218842025285968424277324449379272483515428973111098331580592980587713049716427885612690920628060269554404297508072483958888971220053503604184231133005295685461341649285037940184069209690443979436353558574693503594461418468817983246115016034065143329099799770785320269599722075655531347136227775378029718740002054669668490760018725196654431794602921229369867032319451786219749193060328090923942784076764927533101635051494355500185423558909172330838359877221913042414478437348796325418462608827541425435228897992184414858086189572642599617524864905427671967922481167451445244902125051303027529279119450775129515164295645403258077810368502531224247960699612765427832970705753444380661528614296081671225664415482720038232044512198288605883186288453930461735066897854102925756633801204190124615612501545184462588037657192040494655677505602221180568366663152819925394703257901322078061981885425577690644300344830246353119942893160187511313454691739167965986868706700108581263919531170865385817453190560187803969441631743594792402301199808662229568721360161815159899700056807091723888440669789075057040344947650907251284255560404212996718875106215656252973382836139248265634725615960951473073715552586818364078520722761563771216348674447038614101692822769370248255223511813151160893795287711646784835083570229072636361115019618454437238386246073915653839382523878677678727453209029905405425678190281224749098145980752415423052344062530916984925725921486731213537838064794519069837087494345858478175716207333973692562882795713934741608202277187618383633704582717910676606540027146637385941498703257708212675148945853680772479828842694037086062322712874745381290714340474350203793380886531105230570428722839970111907899137910103155559940865055450462320779123933523616398744399336033117772515277971580230723302164574101554482261404611806427993260572744708827233420747801094499095630168286855897619626388628859184819821284960254488677347285221126158268726242253595780887458718282790005680692981086112959159659951820412258014539879225262282756959420192995068344643472264073924576254545958178608881689044292594154217615752047206710309310511984718817019475802389385774204308270358135536945787310247596754623677301952785140886183713774061627612591503294371336929748684588253234292423443050617793322966687545295110603255558570104142225755956214636591016776057846244820698048025485085194154272482914161635199691207167347208328855231766559735515027294473849824989758598758408825931919373062308196441665556354671720199376262010779147446538993858804134725314989946171973570185854847730865381629866285752897031308587453480472966493766917485658462076872554081929723187514072331513929075724691289629202090071078172772452799284956961846993547553207971072130959843159996213562813035874228685110171561933982547826444400870833552846803107724387763614414691138619680246512020486116949911801406766543405951932806479744980370084630429825703807472900268780347367529799238590466437623641303072435466443757134893058513958071451303792546064318813224316341287084783589458195768329133578315642226944404704903775776883362594945005246552392567061419588527897101015303906553786695997307212642347412578460088984077326476945839794389111061974248234448669287732431975236375522470170273290509640717034527697026725179042716581356780177795886831225693085080755534945277482046679357321293485283291583983010792053406052702603268494520995171269523974877317458954121848352387300606204116041751156649240127094370190342953137580791643618242077425273418338862367899519902917266551348400188279633161937453778006911141710115665720091232627675729331733195312011062449399089920926948818331794201510414266367144554647996404715666598378561029666370789774864929759856777083980074048297574327752478553049522240591647625704146271715855452319787311382268872468577196498065979987022748924837884754092638257482724435039789668079233922624394539443539535818059465531966387391011242749426202158146621420983462822588865053947493466332282784873441431997387180647843559852050581051320215923140224220884027148902610191995991947177534691993191998330713853285404365969956586317142130737116738327165162318542543516495130090401703096555522389967444443394738552725517663662102923884546907632044666077648195523508123886619471387271174506439653914378003113795887263082749299164202019015050041214597933879105307124296971155841910405509050154739738808026799397776850043561834421816795938196001061823897090491405154821830621654206919620298620830422078115694943639963705568082091850943400771819308177320003139110448398086410302553155224426221894558583340691159452929038890794303836429050060378292842844311762549887736314596582684953893550413235008192118923091680732262425788979145950365727182811884058072614116756919037941105681581975399323599342142116869188401161364219904164281998649004644902426694258313551963190166020651398192362176937454676401859018512746398725844422660461614526266238353290655628917501822378847856637007432014780227245534446168464682973306946415166170820888716739187511627891345137664280783380373957559301689579418701319471084978036977414735979065838416612200685151874567681635164450203553518027714088325781848605369162608845432178304841269997823830316666882372038074239596149658656498208741772745131960245387232368731306035312564135402637406764195867485318205703345362726239000050476126122268172204994938483308792467350367562397648582764139352962468217800719295235816688774549493493389690510375565654150102125072458266344037550241420058358853521871785225645904695599563220014462030031323449494707408624635903045713039011676039500672383502255710110264244781983545286465426808616094782315117838925998878895978995811699833997271473245649917398338731219397699851199939692888659365495768121122834042067714210245483514714863608163031631556794567076880158147617936074376228379454992074272031534080665165266466790889880152605155623093011023472351930525096711325668046417350615166701827982741709503372155302389697406146072485190922007476703981531485613222918381489586739211023635154529865530846416786412167375541527672024105465228608054229212648981295192135893435278991461853839294106514192000470846737335871399765197724313475079243597382834284900099980395380257662097789254629354651037595682707186723309954587709167524187739760512476215154902816263849211474941584045534013990906036189554202017655029586720980223555239671998744089999687802469586344461419784345190727004110479916631849423672681300886855004247276771602899761794813886862940002180009547540753512909597515163441854330486708534544882608829077678193898412104438913376547634313601759611891807283319976337702435474980441360236783120884570347658691461809840116724611571316765512113931912309274404388572572538636004820326860037168569760010271815826610491287441982840887222865254286495990481438659165848454723376472780909870050726458507855542081922460744869315877174739747661723052773944301106132866772217866198207131457293997715306987254655072735964627823448845159509240670494855769362521841045073269396147511893256989572103518599182304093062250855049062064312476090341648077730063591928163566817598455643454327079382661370769737903181703314592826941725012751128652333414927324432502366616151026595792567920323965732251173805852260794837559269062111499947167442061684844521643366452203622014766564766412864861052874705139465781423232081995075963861942328836892356912913363727514659098408210881768527858568588046583177192453205103652835553186026309488288824236705498043502338268673017411258616974167174300734017556799530192091350839823096023614782776703694061851221759522868792991391875132618347086209015482858780973148352506309375619187147526838376837240070915216451703967304228207963933723704508962144038708705755709007674897935144835845956111792091688520118800677568269203408728992460705979952162661851509576313281997802905492523209069396260908673780177374761137650435244171994146776194381710653254180331214075808743586610216740689898985605351554240708219606925530241812595663686476334233878439668980705317364193754642160223085663549829937285894605971574203555302015603184088377955148535778447465582411393000090032081064359712192904395329033125084334787305975676782979741483191804464442460557338680545585047958794565355148162692223361957544981362816561426770673429875202185056167537385915588194240382397906453786814383322476903063081553270776399202518175507916623236201751425991769265340209903147593377766678170110286053680249781788256846276523633263474201670160172240692646249617854336520028068684089950192802518296607506823605611145123837013427132197167268462869059729654467120390737518870413188691091626581665241259339564644130433115678729802046576950311145740730335396301922904989317866268266162500009331862648824321875116256141111039735036736132111588857081625297446782075384990312980241902964889750628329653605394290020915248508064357588886760078058672518355554817447582216979774876059936217316822930210910942753269472642807910038948428686901463110559804982814087827935215634572619722505006340427166331496274527722751042821021958560142818719509403196380261883731733046757600626964413854061019956270059917054733192391842688961367331085031655963828123808908222337255884865013051388012914314271565204536575379647270410278405793846708100913262045529165176866379610805324788832149555912820816448760611867762215803298314585362351007592921881480244519556985588863059137447614593849926040003854613995754512863505627487006443458831529569331670147915692966758889390063305244972825591042471527541239733354026805386211279847719982094439755187648368691569255353956351816776325719754109502084542797000827860404683363946803674858527673042438697190538566039618692930886980597734176900411881880218008037011066129654425944939240035658346502678196266033736326007229646427828655317681300911831795082848083869185346347099518515017001412497830726546441507980500417722404853228602581666464620082471658685607749118983240551665913954578852312045816727696418972132884192712917777395112022008860097582588973786489543200074229423838973641284134951016854274017415684101228313405533574546328840580481981942994754576504074293748988006927753048599621789611515362136946365523135088341192307486397573527973361732290082342857097067086165762114333423787602662848167775294483361354113075813059720885934726657212479542137559333824839866947687994151618496204470173715106918008815040834894117657087948036181059524495914906921951650460654671334738644865386795417533050641113554052582968817130126743928364501616095113675690755244137450390002382896138676069599690276843106312695666802416807257192376755921624536663867572248567487474458074126048366741183247631993008205648267240990049343202606289513596758863909561861292390188968772642435271370253262712723853137913262976236509097873127408824286635818902574304267889454048361436522863464189305895834252620551038476045329216290618378479787149511878291319276231155935333929298805897412238172163782316587676490910940511800457646605166078888813920045671119575242354820254414466483534530921890231068263468388018936243268622596609760571185438553124991303306571618737625414585964792000995226321496823387912910810988077231134245291116057121731827442875676517765733979295573001262852242226393382328431740572844992642332617035278489834771564502361726297739454705832055617630533991431323378925924619261391975623685184703478588000637813264219016447398299958924856236401246471750241691332047657851162997484820684540230492749802055112685967885957271985184241226676504291898363953753494026941024649122141894305108659933268848640791658589227882621730980324860886652402734300078656487884679042875757803644470090993450560213212573542386985600685181333819836978121020839025783181233306892223381467231642215164988053403170545828538479447230386578754749535992983731361723418228784347843291178703586112010909542385181012549663789114474340849814011659602711254281814965583229440571088489697959751227982379663422672845787043153870374648438016965970604260249419255159156353514108404129047653452172803682678131725660579376059703796846096796237050400040006153316966090710746633348985755742287611929107512932984584240658509341486859739465885870531497082842451307504454838461186177351895195544542440036945229912941115354508032605564004763696509930040098835303446498988796399088128241878870796354234859735420724941666020319821324920919637820004805844578169258916447846205600663826815554640992829088767518421002715015313073188938606397827255606727413986178620792665233386634452712361851761334647614684741710206067515837748188743366010257154738238852358145373355459844119550129795796962454593969438229798141962675579798394518565947386587993513369835465767624100214421785777348588910590203438884702746120181348093628301371275610941336204135291939297683029347038061922571244068763785728384323402953554437732790803229120639642920686844879933410722503139638854065146907534499351434550052981087662330505862201350211897730183444974506625380245872113051627378401634276708980300825515643883953264708352140215576174096743315255418232822741250473973542395958586770306115348914815870350008152777851058923110504582386301698381300595068974955508229191905517094477296452402901443302738401901015265414984367823245406292579576446084777531519913230191126483265300027726365990050765653715581027485133062046210542543032560093961932243965857446761012232867148509032253266446961157749490389477856368466460611493834344013739560346601692617684381366517771758139579776294703508084989900608800283173519383082423958590914633175422154866891382642402330210828328824568710835700852373524101303509453992017536146129816201459686516781260611338367770527760957694370703560936894917418763027835534549457902646408629351781588166697326878760951073885279833471785705050318806067238255802567661184164966670941797610489317227442574101784452978684010041386501036105863645409225908837536967354597849450074181766020476843315771183325147441433682639500901494604314495534790418813706160494559696391252924269806652428144473258535206229042254297990087414308932263428433428673070350182457599650984262894852335792717184891116349529405404877163519643144551722396368767847766659137636478135145119394329154565701687455011226019374491628746525383907943985491170982169617268872904222900897179445690097341660380823185430493816831695731432844386138391356007348377080034640829524586105797072407527867002162456100041059786197674883494383469714640326526561805288666538536417127456060966984652020807062204512934018727146035164898457282259328888778976898310066774585608046968483114140967273330336164545596006366103656049176686463773155581738534515070898239996153014625181912393345979236001355949464062747257800793871625038084845764840386953789493025197228397529160831653655217591332764154102127349846684445214747532103056264004894296829980371634412105401551748168642471418003423928283367338524328410214782878458535246405195686943749134112417788859367972584761858773141073713164515834811345804444746692221482880709254097767139034572731560594296708301162339614646246261344168589142637194592420804857178072296476314919516445726384377330733701287578201699557543812658643224610421904649647022138199699027259391289926382053552272977064320469840785261794432072252149279512102926687824217461889173328644645646310032213953233255601839196035548624398912268518952280613580993626746746977839078434327328282201506979083754251372731112315738771247338830134095387239856861669640601656177581367893733464696501968681984574342705366121402340166587421949945823183157472257785129929706364527041817280922496169977572218743162990450700751766851463312196039161146518765665924263838322019418094201983186085103428056827055528936724076174905651782290380450891004714601813292886076152992043716022256600848769093306694855445306451790020621024651451744720594411103196139625533919452556295314168179064900706863235739677635071899958830558542350808754426195255638734680650875769859276027911081535010402754192931105732644220897473115300365772629458869571752606811911098747582577092385317293409218539852848917282898918353248997007110996885634887598048944878649079568051059986045691661801573096348971610186181135104124775806837782274652574880989621671201414640650505811096545232002995974625123608748534262895550140134765434403274782853266199899679364076345329935535027640260588669236520150355608656049625919562482055512066058664520557963282326362059911338931961285545795180301272779084223122241616118607411975343133215383461820492830639049148519299349843972442242514505952306719411420628681593798429279406928914793764929951086037194737420668524822322328705390423017430558217609065268250570627163999853552516903891577639353992985047441951218326939873658244252762491864038974726773819313817127762276436146623802441759596469043257778503745000007006507140559749241084048105734459099054783763154309875521885767987865163521207976866568585982468793306510531755733639933122750909635530642494304806573531935515093201867174585945376203307035093703066202152640225548275545465331689373846693900830866045096933303473988798818927135482011855658164405763591950374426026197974065771498024508114833110497393783913487218563824665926785252337557408788374383806397040054609650584468516330195109303480230875953488999145198610208526124949395528025235105201743956354209100654517378311273685199315870780912041084193182505502877711928199916028124254272058601604004773256375024757940564047517347308318224753337665345258203089233191883899913854766633094425599069083390759809469792961685218164221805506856614767615351921582840056340700478027076834199366916164441594443789330478331648643132529299491608236456137190716989093621775407457723327572028673580636094039015217982300844535036607575934165553033228726741830847671836357325684514618985796531311572331673982516240939195447867356346273003350801658023984005852057942277567739251754038148036765058246443970729870083395040248853883739947945314889916423391872506255858727596771129088232654258126574867729465697546085305316008117778061412003757481912343903583595333337144966350618743239935251130624325058810718130274193796416217354011618792799272471204741103853263743353216814053250618065962095178532288018902004021774513497971847038207824911824549446970621801566578095865220728387261098440720397228230456905404542002498691495724192249116360538855389692628034765070819189166973801455353288986245894490655988140838175253777205208272812459374347496349519617448382469336677843050923486934100438886555284812552663393238498723319466512700665387515882833378642388602948469707512706634608552277550506911937519196955968608979148280083742997009963302106683944540418666801320410816903480236987237116123469707736544420107775741939520688389868592645843406219423652716923860855138671553645823628156170558416650895436452367314799053101314935582591554762554757101038546778424689528716859161107316280544777561091168324751035114027463164095004400183117605988308130952543146645194326240807167397531284623327954273744466414319200357826691292614476508620894757586052772581687791052122908387542622332129732217468381466962118708829856928174155078604079560199522703116574409932220816230880861069234476793739037994071981866480123786466513623235245901846469872430075747261831300854653546820123312127840698452824112931687879019491844015607380784703489546004831117741369112928738836469756845142067770903996524474473434239368384434192161029703411040400426970272905265209608070986394458072111107382732125416768310887831102828871055950204878327069508157022851205797090701798927687075946935062123965535220149323574214900830303962272421728601925506675207802184375398088141871368329749478991392439780839798671254249288731132484758150081432240080752674283566122923338060711510397268338671754022132788530665209417382611781743250340649894886600023967984710797540009327317964363341191617977978287493635418065933853454728978930283440561751697358322878726290714600332919616693882820898820787724155411575198494433478866327139847449882949347777167088440947689803550626149384259372923627859092159449443245942372923917553390610669332337261680019208625233487766419867551400588329631164688179208203645974313162608046489718741035070408033071266128224422972644926128707264420144453998102197005286591662336408111835797498825961325898203612123261122791138066740924767461633927599163877513348278188256117918960487605389161738546431318071031329391538181965996643565719521584165931676118323298259202679481079275715703888709194824592737025931185210491806951810727634364376631057874966845433793707934933550252908210422758316508124652208632091378113285739447472955547318055765349460651113819423226565838764369796704548109559214880593254261717647279772852432418461365152984075337832697981271887160002868972512504330686003975911373834952624160239477663568031308367417293263724880956573903692779290236752874761250821274108996956637206927948599864588345989513880306583545630598685262204945419389526831087952445602245737736946332018367415199378233725250102305723033274334015708012369211350486085740229198584160326401934128762210868191606034770345272701157425981369500025853390816295690796513433471778315830464972976997006031231111531266595797690385622810360830744036066996110315134181284499177087865542646387164079896984067904780857838219810715120142035181356408244799369980282089818067998688305084717279130671165239204578795427163172894096087663062222317391438744510596893054295751705015234366664300656069027545948709755039398675740672815073537019096910552479688766946575442483550700733481392497944669881604053826751382085757451311777143731604392564460603673373319643460248122480536608910825552515384828352194900879099282182353957925156537261578562046232721599704359250982979683905183317436143904019119566083645935761559134522800667693453533876805842938187398616203186705752671990953205159919510074173659133684199850505393283033868558357253826760215486143119112408096967809421163801934757563709642063067451721029941332136784596630331105376271967270096942615646424582460318236663008142431343143924809130372034265280900308768446478687269344675626113172462220953811585085372561275145127676550823858360798935269680260851490122899591406003713772873287544515187766316694263930627364850375976116793666681962363123940960226814400795155381003676685770519712264759254642980471587844380927772635443539633171121952319105245005173528504227819087383033532435457625126026388676233294331994648014915178089522443961268144248188126217090889250997788600615256688738273889184034297981671092360154641902987536244274607378468523611733857088838812646918372757959360426679971314865530359772914685004229922815654463064927080951771936208139629934663733811987793406891474758643592096174763769145218474984618913441569324232211552001973486836175306869079847952749795980993907905763712719174908123029202314291499262991160198267858897155670143219676317831940910503444476159150194781402669030193711847354298355114917755779533962682565328392069526444809079459004835812515831647116567955317084016059038451422573666956822911734976238695300990227363297333375006586923173468587832011516032690989350838178695856503408869879324644773405800698269330863113405469196561519899958238998103953470249181259262790681231128880140902357476352769248585504707485024575112848061144533076965867463325966037049152813614342802024677467940254485417506958723178231552040871355898214689729737325698822950891660371686190892711438641420211448495196697157516256566268863383153594744113466608399167804553425931529525460437394269674983091511845201306488797268213459684160083216272488820200436601511399737340639788802115876621617573062160951812791919772300052128396259107013861960526357150689049697156168557291804253186824983266372556104148431594586429124713588725785654172572869743139720781215084962615268803498767665264688974692900030055866372275897520814595085771672892234272676240289168127514325154010072527456517199138488271410887234021758936092072406708852042243427163434744968160128532926868264853361429400313484125718911266629251675363150363514200247128748369470387201138930818154669431843336233677937733252937145590816045305350188124598640305582769231475308325835702176528790923186963643280930764607063754507378034847640617122907781908694707876922346431034534316548748742442711895264801556636921711758518860281896042832082175778810254930721727523907477428486127532684454879324522398149310684740110209953100996835749922988795227845191549158782671477394270770376408835014313591882256880870687965479357337998404890391119352417615798746835632656699989997245590232052361544737823580923036431917159892500597119883360880199398045349286212053892817889890264038169771303024984984504547137400960302105728285154943567673334387483816382829356853086406390665273459560181788697776160264794150628209576260699983661444319722751523642314610803464059406615168594361304321133321717993499270060937725642276239850194824452932228360596581536831968619182555777563901833386737960499628061291032545482196462996109285487383438548285302712116560002143117598688065016098240985685066941581207777144925975655445437711615358240357461640363044319813175622928934808235288961115669581635158630725759349479671387074240577241779614380559691493384685323637531542362608412055574652541326628280719166156499386209008093101636927654467960578557767307956020534524393610239602060813085984806835033560542397179519315330085610758434608404858653512778861484556809992305279427717977692572785008189062941034189688184829026208152050963394585497934335986613830105453505760104522554813217010524469026411361464235862720198553825972231036440889366092462107713801976190012723344825255733617929176638126844157327618143185419208869068321493776907947702545163408657718009913724664581158607360498557231748600888265111641994806143283448254649351369271294991258808831038036169236716427168744592064198582717081038264069017440038766598162231688512336206645140442947631914954394216564905934567885647302904686549171713467280207170136624730499095743838705885019159627653791081932509236651830811526145142243951437631297931927741747616567833373758256811087885652308304940116396998306998190541737024480963662660319860562700885256093838996674053530843336129545329949714403810154760794710282608814134954960956032282505361315700256002653239738380384659298413627636250867166603514930061043021722396709097916666702511989271126734052722543577033592582022173333462745061624006088355764476798133700408882439153361732147714752868253274469097388633478233708472556519209193014226918282086756199675261211033952513907498759525532309321917942022469364452278076972249902553224376687667430084613418402519703938864722060142424356299653605083510800434400801140749231710509799079684225505058456414293023013677954774772844644919824607387033766145781767305479066603917550611584351261804207186412737071290929135676764937462564674578194543399666609895650925650513983961797324333936361843872834106684675110080166408897625090740400545407479406152771797579908232933342585135900710421741287591572822736565578889199443894142671260921130409420468842649565032345012736068719055244940101306648429821570349002537324044698741177216403913627896431782210408387530779145486826104488474264920123609534176776366560573030036763356320846507487090202574106039194533278086613076153863187721636875274926684618954084173689433285451905734373850278200469703456832445744877686561846037891225868720314457996199225576422955118184417106944886910452392509237156154132916867744245724038518787870996720175070878955104463924958113239803455605381934725556120642197052868525654858830286632340613729157743139716323346325622281550457664184073366819248234734724181452547159999850821866212278811816164483144515704418493341526586491245648554090964915821298484321555768320597652230328768465800749225707713765456910266752245272883539078255173779073599747203129494836641982609598832521057825237798486683802745840835388097929047321734776317361847555169574755114038914303516952146006225900770217348529679157305733019020768744272068493263432741914238012537562081732817134826174672214040346805973465691776021028081815383980352061575147195808594024256467237436293086658233962118478503592125573706819679394417036093169827332436274834885563871839434341974113998997793342793305643058030907673395069658659839895597585193015633150766457396855405261873079219855073865878244342341498581600268624941286778758127586438966168786494130146257362442468110456204398361301721448452093306169164452186079454686613591517809755404233225231385013934762596690508716307527199148426280262072511594410108968609728914469029979912367037079756484066937651570274298280923823731367759793435601212082302543716588585562295426521082729531036678363859072980530410060933437859083094449243178255182798102543410451376794563739316159326420189312753535896095507726928676707764246910839314089177858953229536329090248335908738461155475255264342871785207625462595868973681609118736327896173028670307519615391431310097648595604951607712289525693803094181474018826063431821248134261401307672921646821199472212832457162476485902138008675313914789894273198620658196963541379154944806123822259381368533971353588505949827863693248742814414954013525656137438560172697508658225313877341187630847541747806624615720425632820913486974932000638868877269860097121779913842270956016301102097213310435327818975716906836801667173151112699098985168966063682161081008256288832680956508313684488408202304023252760968118094820918802871643289930396092122024134419102422172950723012744312143180502197124048386401679573868753223572420656145607518190203193044014419882917912772540614541551014176848709823682515885691331654278961479371443506680109416098023606394897055641956031282242080325146521383554230998500931286255440622218830771543835532141967417534367719982360515000261201007736264922446711142039906816307366451709450028398248249103243776567140488763231197812828646609402026369880891749069190862335338589975396550175338644392963715189525284498684944302809835292193455592148895208199867222806025695175982493427899006621574071095760588545854001552049677442513111108060535977880243980663813163002318325393905991793962493984422170768704932505952407098627096319252862512392878957417531450234255415107255013644372631539018001079369841754838220908262783784845823815763565741836108884515733408754499507308214553937480445772890524791758411347621515967070116579491781990492100488283451409059446670753096911395445911790565283734533910808067331106726383551158535320785045436764370846340219510809160069558629482662836248204901318555663334573612840084250346000574717748834019613842024136824789737008141982437740864346220546284611501253068641468546896714568453407928764653354054806939856547790313033302018586915621905158420190804889814759814196349622471322000619783753490625189871053301041630973045608545485363243125619147208961184292660958745005786997370858381706359250601709222241134306405545083598391005911845545803279401838697422694199574957639568483258031552565617030699515006505403096343646605494025114943329647346878954452418737463929592458899462086376164341048609587750499730251160367747821376877392340126965480177273003502477036175826597420190619426734962272182222726991800003489857692286773495010051534482370301502236568421785112193549065738556971914011679489086767189749167416530519301093972150603086687712938878683392416182087315568797121286432343254208537699743305141916717480775732713934095390296795705716225826305480182021700209205732866968555396737146493932079671768996931120306744843975497793026823899296886980905691430803790941729488956511341869675166474440010068787171093179734289289184204680527963894997189463270737622448988080400301241818818681221966526217008501368836207216221981247642517405605841371309873811093945003561798288029673234315790677069304181960331529933671304100815306360340837210136916538723790941843285871918611214210662073036101946459979031842318130683909980064277156358881868531901095833972748506580979002861643472670827784254414695438744540452777694261530057934553042059693941363567558937678883843051080013479125958372179739725154143225848205722159583188483882356673949951331622640141924312859658838222669281312259292164810916946670437985017503276480832118454125379342652632228077273487054407489503777424989707422192372867606474041044014294727206419431416464576948547107042958238244259507497622334827657770999522502127607837140133343209456034749055912056353679207749390361405384091060682800947294929135241967589927172616047757383768409483452119129706812525861698399198010177880514467706461978692568312271587006488053391491583026572399277423038097859615014722228633910588492196894608081653577527777871928398319798627050658162844500387897433102453103664127393614595150115748086938802941334906972270179265451582068138662826499489548016925071081123139663846296521165352680680132971497965325399494601468981883597271508035824904876313050278359833532949408070205300125229031413328089220695097690074711586769179127589868307299076968941983307634758106425208969599836925096308813461267998242017001218930441417785817704427991445270218415780073391387678172199883987279937147936581919930424142437260558839829418084040545577893051399740530130506155255719686997062005214718587736408200575011095103779028204471875611259236138795669314509467290654217319965358367274923866576727948893719163169595990896442361504604990850597695942141701442274704966181936112726289864626721715035555741759830003698003445354296025500694328447720718746260667439600858809946485635205722063427299223502642573730227108057394920183017205597708198573129918179829313492752532897497566883681895229079000334926527474783583526387456505021260576423085727712364999507520937286379234178262135562310384403710988830796690944397661467495103401663948470659308850048629722220833291026607361584089761524657232623781055619052165083497423486147872668976402486155099506254588564260805978003033474983197302585811363375683387657044234551721412879975526835825094868929495335680747227488748427786097408717931461295214644002959138167152769762259195493982037563757575320355718185812363019727305335875884271977020101214543690963981218093957818340729908531946180380550558933833189388504342597769897616175814534506822397407490638877655076231345936118267320335086769931746093944356031899330494031348051043877063918293745370495607907522373455419715297440580926106810683673431023543924041412534621377109858350861210243690143809226119479140654896163142905999344165932016385886528487227761256931151687807792164906625585464062658761482809423992518385571523849301830309109041209091051356799815028634798701365511378153934754389583510711620778605185526375166154050206578494894846696618592308140978802550762402646681472546190424310701546541392762142354982483221337339974875514861458781845475294079040595030078255530342472578363706696138661363271468381226518695872759465319194589769070263134773726341837189650839316437708434680946065723299313670363070006867135454506195664204279561120559058431818816724618861266818990181699629586049874611447244888411775058599475075879225557900232305254220575462054717477221098440552567088914555751006075103580009620593365868629308662306198516797780030792584575178160057887704797376783313375923821992282881807985528895320262148176470305778410137371787992758055600822395016743954570138664938267973413247261917640743622533161587596716850786761336572219744242156202450162379602242300461000163847831119978517106097697655561523464313796113778112400911062820758908169528662067803796811184541527522163556734744132944930709077169645326378705840863639889237377579319469581156320474699986727098034714478384555761909542622023098528626260923170726143719811830048115784004910078861415092664370911152332367926960783819870003756495346692870709574561424621879998662759698074755125672030306695245325476273014436659276847683016463357008832827600594861019147536383483341387982341281340770275796136765167469362596273735312642247048654396585291470440364700612209382805729275495033748104871147565210403467368869557670295647772148897792002459311266749814165286365021809368370552533485213475654164209562969063354088913179027597125473538995444967589856516828235905890055222464452942582583391451990151595542037690473387681817621611692571376103011025563595728246179508100818726931854468783260652767727116011410241846024849004685015866491759611755320354922180836360733818023150508393188076772234585550177122230750774005501812752123178091020009535924438926411712039639986534801980622645876593373331352256741830176295549087143792920896635956991607131311221524994091834686652420805050960647344500375525682902201351890942460627802887800253863945851280213993276712041407943074476984966551645587815553639319166469622353082882195808362022661502598516486411023853287255020311375363829589338854807922225204995206047030210930583374396490733580882114220970737858937554210648098354942414749169854690473517116045038535190474615545504696192400456584152635385483705474597423147238762254006286577999442715707725357713581915976091625771224740885040537711813129764411565835233234781797548722774304015657361852923945487938087284895676597242090451093866386303653970168028790381030232334324387707692112181263284317230606552556094965455144951984203470125060690512481003679767371826819653771314966310622072179694082262011530942082784542890817222966982461730618942057549156366469136674691690103581677965376874728459071160350348596340342673113942175349676776840550074844488903603477138224161081343746567305710621942522605202034174657306418765509942792568098886211188284778792690481781095342812639591921695328610358674443076685594937564197840613721859459627513563851062863061783110517951782491568999441462418780023899978890544966264529161203517358216066597932975299715497310877683477499874158065394898189584464247562852852102420126118781328176838325603138088559672143964506121474000943129336150425117273311244204984421750051861587272843960996039211944560236361510959609848283089468130577396078332440550913016004659038630352590937425952379153379807954743800788983191211971154616001408778871752110612869075060796877152426128837425937108174262758009155120460699844786756056582459836783745556485659633535537655168765280317617651541413951949592317648595541302423939681940161953034553045154459399845004563905343697898296573936576816531564503643160117690547885010177035998523259097644932862466470761665060541859351287172207741500120118227768177498227741477410426856999892363091511210600839254230981841458179357884546902519447627784665494357965766000039513256251361553034241204549021501696689679293060904379633504640387289607878668099266945425289817451759806808399487428648198494613164563885583799597782597324326551173082251284824060066145193756756648552701066093057461991006419262397791250288056712927618150472848658267713832619132812515070702877239347602422667280583987165926418033854176207141092322693265827052847142635493683468727143426708521054859244523335640601587723726080664305376086323280018635010195378959338200061369095403416189070451854309803481567385958171657724806075682057530854901615675405972891578346021988846527438124879856687454364374240440663793175990328145663253338443394098643641820085755685532804916552760567881919732538137411410837387741724118478282137986134147946729886212102579229283165757033372673142760568388524445386318939019121098345068413777459504333050328386668254637348525511042745833714840667346569205095324231478704030558937247267992868713130991042849720242633646602677083625107289142519741816877524621691832960087131646240515829089206591204218358658708031150046748266445976732751953517085767132746856673672991599633350900871657643574912429411107858903572391493203116515395264170801146619446655863680532971702589939436197896599728283485802925021453085333088863581701104659687625346087062100432625036134799593404853894319099828931029246658672441129835420592486087868006598473335211607975211501918439586341880174726857256362003568442618085996943372919285827190768194785374042582218670568021324930741416043203714629392633939673862389556333782608465466693985538150265420831694187900932989892909632685322094560531453899453358509363340470975080266417901418978445228551131267767531292654282784867134650401873465350043499771249143792449425138890995396192581854900430233854817031730712784446382139867252658290724740479504500134002781418918005215337744594030512149724489585221284590440768110789067210803097491524417889031877217082589310823576421469687862298777984214047763784940026873451774569708778541040770538626372917538314797956611830805287323750957260562654726002107637048482111273194282510831784745539373324142474446142804874748012862758049163889273346723951432534814345316514304130142639462180315182438885469874282766417918583793555841763172047273760221370522774918538871098167189923774991083993832380876684824741115450323062234141379115249078609577823765935786319458288530717268341587726689617450930826451922901780666451311594174392351713664080945409128462132625399936106843139549775752265884596475698190923522045831801644003541847022658052848204870857937740299121271812122456684376730570524267596329732341786129213716001890531892366053779910449384480471814513206677354193087289915954179186614194992635504888699018800944381273597824175958509495464363048293746133582240353698154174499780098765932936085841585640850508993774291112230406870006122485641400971945177833965255087630684997316992521905774146169872811859651940227848214837447439541579521542660552632512021557855531883031644689271607032975576744899020911718177126472683084493890217703842216025566189628669340833115266088023103053649726722839162189567536014244964216522768723985052957898743995328634397118337546799633592506458613588580122338411266939642585496150306986788165322606175159740915264562186443422242992633251826188714456101356892004935898002771320978664740307442993191556367747151537615836161492365242509093324073180189187138223411262478410706335082784333010791889987224902862658524382712316569646880244780612038357937941444252563030304114009704506048511263910567489358670744847907042161558474042538497462770635781127898202943670607388309422513540882804221108766355541899369108821067038929609013947403661699430311579388410460414830653893972460157055355092541357418897927120216582764514111077697279551763156330019360566854062469932251760504733126441619361825276066016864845093901392195589399783754328437529554450950315568479460672865880905522151572143002744529234115470309575445928871051854490161461945158606476448427919435321594833274142310688582840745697984390986731403503513508709997512896170023498083601580511369324841857956754775492525454229641355925979079864282199074086426854833839291927842742807289479901684736667065646565173270300340560041985919104608580102498487089532261102703980552680397457679636103727158405202570392307832606330161439150570417532020603907963638365272572493084344022655643682218380961569052426142607845002392067286230973746474847039183573383968423912801381904185480468521000059273716099947791821825020323842304511800522268979840147957717484075688073654127391098496760516916206992178265917634687160586552178561110464289287187455801190749472416459338034777555474867044306480696417214147742700861732450921803790455358012005481980326434067894410040217614131666338903308138502362526369334952944457675801497342975868770096170361282583288842555754374426344302419997900103184191159516556071824680640695609144304452166060253096330308921974691046369480107768675830606186471199832651184138655057439363900101465450274406510790683213112960925058075377573253091107873379361404165302991771533055157136566067675396133436416211497698921830321025010171529712898614580835676040961656722007271247038854725906338880016284010504000982630287340546512240182615765132941711019077283341304308579909122500134936123113355268898857671205829703540927886401395942850894959105991374135229898296835855033583131680088935570882362100386455476090435635976462457687368073421051751967362147823282233982385964939588063971292170807921092512606023105049549572313034475917294160542194824739440815667931406386880252221485865109775135693160938865803815933720973238242928515600311768490790179810638539789166995855603016192075991776173112012036084951293555748774336057986767566775825489865055286038559807835210226375195857717334061003995594049080377322705678707521982480895315120511540670068203902731508376492443381065375606954119267677627675911307428941721801977716542909798671905280677843393432486091250696141371819531401101177322372005971160226487956244761239203968973121482349615037411982124289434939113202974059522079228226645353765972150871726991268062722385789494326701851939016423696563529725892444261119797710518916925338637148821758434529150850342132489835360308643454605659634395747776667708363145533921023109933227146881892422085136110639243663637341690469008240343502862410232144460823140414028717220628530215145370223658419017562220987007372406173797514786709945224117422229463286731766829952320555925369125332381225436847537510769949900318910244795338745960133726132942177604114892763097035548704351914981446715495548248975151081728407025318063215753183630136302236270274681338876454070199494014693808817120713842868189322181699088205657641018840136139363825180901689282478000140438789540562570706571100128400708285200484634861309385985459872985290510107590556187959202465007769528540583799628091872493184624933640870141105768980260930456669213897027144985550978300599545810245219864424258086149645910844815923045925690292497062533300963924106242244487643720946479342322246516495639155802848720296138811699816364441079559314835264194403622917377945017599158072461237910807015511514200601341461489447682132009161970521980928275193120736641628325940352379652291969557378408024387828009080148019412538165976596828184951996433954647425279137104489532548848548519225234627752570113036407529655509952440457265625076272092393295590807684645794492745505889346276546465022697784839363534996336766258304549466677398937861343939767233023586780476162346862954643836359698590640804820557738337695267218984510682887939721248743349253627078351323334451947684889132608116387352738255881889333777077186250604182221159211499762761920932359355152127149154592559440822131304917884464225750071428783107430618368759247852057734814019991036038258912866178504428143285709431487298829480861284245442989752748789340683183060500503555930186860396424765444853520425007424361333175688414667560403967809968110591470770197188537543339207692160939942297509360827646634030416680176950756561647059226731137000150518979574230318901313902378796944354888851329054472091101344777260431126890982847497931465648811840838776377553259237185714575707801654879199660994218888472692366419118990710141538717295117729289481546687967198953130722247643980029417857704599390785700325832385484858736883521135280036413233294975347257308898369446293114126033353218519284511731020728556368102291727392605228177064157215104459880353719630981110804068532129560457784300426053667601550357215580503846283740689936191400149558517212676999336125632114350103908622871454534604283472011368094698832989241553410406741821794644689398771458153655682572844144032842612851030117008806220809758187100606889724230928542508778359561181515375698863236690455539750332402007281013788547801434288112261929649836284332900355338417241930510847787548211736391672538790884129949047443881692684876892154645956162834413650210339477328728386901167316721986112721492033794716138557694695086072321841702027015645992298052530223764300512358296840714583165031406283372953313584917220814907740974065334343413284683970062271928460430494801812104488586452045822145006349004870264310497635998427228716294366908579019445868065168305155676765930890739930845805371942175530667802485532734776029739378748361796148822135275904584286945406373901430114005431025331320628916001713972346697712241887395352311305047185156312516297255843219670468384801453685730605709891857452964921483045082654404585151787707810704394875939291796906226191857100599457725819334911618729347723260235083387050252054008561716889274040763004694572042251985067524632511506835799019361582755171669222451004306433205889352464941554757405025278270396449787625134883687069425541444220472180634580186462885471202783653213990965890658896884454843231402232162612522618121046613613499023738075861588076638133845853913315530441503260097873465683251729291273540990906205823317917117275959990880680757217200132856762652083996634562196939069738832905790115835729194675910884532242625481574015789644800422833232566168225113927889511896976280346656991668065563043638539194102966061107475316125578018065237476596762067496411457587925129190221460197379891705510959416712261376730949263338367943943582898174389172312084749200376456042694156562106896015227294041326449784649407387127004850775422187029775188300582619312326039447357739358985128552291920412188417292675814672579177216861854114585705226990750669277269627149477184233659369147144850001852832954357454964094774509940149257839603560036695888930097974367167260216692075952072633943488688604457456629365000242456053744315525582107643508852523178695640903464231427880838912028179651278437578332180494393172375134985872797839201961528917864025077539892405892197135273341612687067775863183246024931455133587082254045087386746448657324275570788695253089888581910820289596596851282751126290413999366079686155878732267794569387450977175303897143635100824989613502828506069694888506520314808680432977917178236901995055611980707416441008387151140482093350566207722498066326887115794701079894193722871463929161038962929021082398185834963738885847159545164310494254351844965470675238567203315290654420252178440748310523660815373748922119915769203470433369246992444235223190232445826163099473597534896650206966433116127920429638221518027638299310370148224714038507706532170963250685188459042383505920967931345974786043362804119008632910882878167831833941015301177932192852385464741992070658843744793297925521540488559649926129130565862873845211619642146952957783920483281214510226824793755456706738744820176058732299152968631950115203148499300741511801694352885355425276032519312019399206903232997220883059658363780471518457728645430401966083417758000970613500060802235493548026513654438398090556901922621209838574902610902751712463167019333287964926385749694910046363800772731099605514989641692321159225439369034246562416743395680174173397740618744802047848371418371400661491793896092257999231955868217836660582742943936824666374063041480876649177650377548590565274628636134166337493602397881217939708918364847266848772240464163807462966116090299325730376901848932974310781439477694313981174301019818162166715063553898245531528052171734022112397589154638973592807321096311039653862297236793816003630656051400840571478095106103329302804072991745068042043170809057819896526340486873713283343115165303105679790231153349133203978386140326523998830427893124185677515278565649572816770349205372524912483075048592105555895485727834927928552176651000327063867808127135108062817102041002850552645106370082085463595205390608837872081843884139320463874220145076596206828201532213088871980539003632159640123415283519575490345182150754443196227671354390692153099275743904012933666113341727518777297500798795862214878354721283662785209565276996506242473596931110308267958436552629843849360907081762760174562303114709903864286312150508932197492423488948777700694506391830202200952034833576122014006806379881850785702137520256406712528508451228659584106818599016855852458604056818632797991490680762822163031741682196523040158000415231584286947196054614601465696930957952560425390943125392987850313990542661964504254306257204717439029091307198920999398209524130719140980092994685596781517904390594885256212227151887047204568051096229840134354898695175317639556820421685061281625147103682407373569953649671856868535847219716327606113088866037328096061553742390690760664702148165912025568804028722717538964738269240631483878004785137200337691850918442157950975420444093468545732825772578057382064200963766272725571027628163769909253249032686301915302504513940144530052509677475272261945608480259411846413712114965859415939669937056242702483860616430978164978092879122466389860145217210714780730799639194732301240407130297430356664754911317242013803609089867678411376762873154541468041461891404954610658138895932373902353318879316980286180232841728100405268094520998160429019727074496522597080571755099368085930962382232027448311217847870470465330755676723173746540258291321551657484894537930963381843027199977810654921767273720650399736095369981678670863552077563973431641511779319466213502583608086020313414212810372815648364716776252915639089195581234757187804580973683336751604272313802880538754528537970763829474400774090685806606932879184494339525899043372255192949860975656252950031774966149113512782220972422030631980414966605885138624038583185704892380177052529068602183972392137901929015662308720872558747715276801647120645632824322432708375494451577507832279909790375747711752737708442890603860544189593237444008612124084519394415184813980143673383916282052232912408590345413076867769487770612031113164296246700235252386144585390426067203021540233557217356675617247121636921927867541536713291079769491910116796137312979899806679126701490463229851762914969248983930636905559636497249307509803218126739339540672870489047885806613933825541629879540151796892979097137690259715263436582375773792080073142148857111425620032449528027214299601781041676472490813453609747989557431135985962398715798153084919290744706632153781927683191753572786194712572769235437784744573617707868301312934105895166105245951497861289639580207669828378457608468299504200888439083880906951673826500906696339440579261319480472517539008935324691793432368138466312959183343489900242823925577287316115743714033012555740263662833404378565134938865778606823188779440301426520350708655341446018571547852491319549059072760565022296972223929822205132171973647419962637513268852210451720648006100154800312842013595893326070410092172524767624662612221587756188447471230246608460093379313585833646229434954944472224147260725497630359930887134086435133099547726392365233694661927464297678987309049992541716084979156759250923752753443849036006572841038356609348634828814214786159608826562572505931402805730522019804478232299450548676712792527104049574775511031969687371293501623814370755946090497883894386735541018999796084204843123700314762119054861049300761292031294015041579842665625290362908811831459104143809678372246314170030245450242534653786088719354692815187148249205456535914148008818063283993118503522661513863502255159886630253320560767088130364606050778406100867938847689361812316721491325595403229561210764925228035352872844712256431405385754414786339212380821427005686051377960224019855602156019704317308059654763495262769867036383493647560829193770812749333052996471546808939018722281206776007603610521789101357174303280539329236284971271685556912538950534317188373519759412376384894896933946205339979365172311534937091499628695294634643294174741487397081245089169217576598499515077687673782957702268211697742899032695630011025159497210556152377081856375283336482923979108369017567749606126245644036632145393819809818871431506210756939049418778723464313020122969079977755205385689631252120852440439025119259437182603640655847020007178160540986909613849127230136467609780728265757188282088087244271731869038266410791285146268931752324255107632761104149756847748949683488651513796469942238876259014600345787602565815219622733555827827142495272350094680096334293053188548271815769350596425943707907329667313916419606737290988979816676632390350870405408712915491793550209888164456015629735937046782373614513282346263955171096797652347155117175687972632581073231420114043981064937175038625517945758829344613203692872982178997775374252949648735604282758282651800321498121127185900200951448752620478082716774797737548116971337094445831714647352717339495089688003670420218343964440081957354572771078667779196711263067702382516084160708781655470997027108393057138185416163513003906471521858425001647718965943495815780204630967963221750462258971432788954011255052568914583490089538294647405716801441384730128426106992517979643975604244755923372298892689942293599183647050583040943622560257187272670756597374779466652975949117835501892683124585135604446070950952161816476045041549179457462524461338537938477237000835966796328977214285450323113912993158208839798085026953878305965085489740060449734956748004146049117632741377379725352591989531273030890654479366422190242714977443967955487051012412149242428864650899093699724971040114310491016354715542884589929706429557700057300852708576963712586994405016652726298125292459354941605752218785929084062097578833308640415897254882662871164102879959301129390022380748447400545700488217378376062488434858456939904150776251623124953272336421175827121197738892603154487859978420805648941260834905185441912061772386130891361791934513752326091416947094334046498820819840974663355807312878637220078994570089004657232957648149690637449804934629015516610160610738335198388140060020510378779397104673965508026772516553966437664154783514420941100555034031481017980354700937249859134925018978735163914547974735898408259242782987231272103586019061546351919638303559206036655765519181593730486414548492099844206367923619034588864730360191869176215542385688648606803177966161746699437832488674362215682341616522553007943382910486612209802277902597604575477491842568325218792212829345211741003418778539619631405457325115020016451767028841103373396057377470019532867309215052503231002719890704202503377244423009062143657624123401423861262273277156266123851008703107954834659520377684120800834585076246747777671338686524339370524467725095850564323859420743460429086256340009401681992488882851229575679343988977998257709603626501443084964707347084889104013627933761395062774716057130708787223209225787773961440663978990879775995920084581625824517031136452516978303729801707131656773686571251963643881758645486513486669748580867991612535832779764432622347582692776933883204933161834133195834109369604048650468791141298215082587404628398191899652155959231874623437259651389952490534731888327962817072855237054842335459064968355635181939214371379671709797063505391342063187550119822552999190423828622774801394050336559529011448193151771763113176171229120784486306089239681720486288094842734548018538272036940457545286815822158805683081151372782247574531349407650089995780604667814289832221959281666443670056780186567537969479326585576757062931618545311380959067543252856156188285123123933174646110056780299862661610471839006141567878755780471251836085716183415760648069968748335181614074055051103603934161735877487985089748650463802891534009539947031348443981314390731171633488725311733673028884720142249771161290439943670264048686604348525768098139517555056391777469955722142949108455137660742554965303176097590891893934991957455222777933737011903558362623876059200509789856687202552181945053472944587806345219691323140682371253847078933226421032133440780767055181754142689308595906651482807290832255280004351620857312832762982876713134030738234873131555531345790271862381205966513212539353020764781245758373680204332088203929910898460926637534001862923243373915806212189587889734039957552612822920261768091999052305812844994723119026380458291476516702069739498806828305849335548376857046468359326017328535427199816923374876920924384686585706624538788056861128756411096780343096458607922131630078863241468975911014298254407643558072237711096307547505293366957579463906833095718813839983311974930680067026489338300266907997109822843983744941675507130678925349702155044060264322555601622974031989336424690232752753412365533925831875075341467144700392712177922529109054978093517528804960401994088895215094215727616037323364514769602853902309044352886601993276241334485555376592223395914615500526860104271471980720591606491011972970570623297563486902509210992710121865230853787837511305963610873900523923278234059200475985375706838989708894102584723232860414782924944976437356014023541353487960548879914903848151801308966477983627235075544652117568038966040087726953699068716805451564544869536372629925198846043727940609455574387747341025823829859104392607522864981997188751052160860938370349403371352785119321323044322499377288309944618925618829021842893043519159175295328296905574447636694470341398006086633682262147278668818119729304034335322148878340888912110398263553488804983633480424213114842041690512319511263928469706785446467591307282659017736786940030765600870542746914884889002931739933639238493622698507165461093158388377172050891786450434884021855333726575668089237753735646242258457750111350924700006005012077521848701577137312755496488384143069045058818436488130389408912800156329292037643296026255372328874402533610069151167890114777511315615782101789140195907855340934645475579288891587760696216816760623690108945328399668635340939485191628516500638533247335207934844331888029997129941015242384327361019488747780894097174345321554843113577337373575256966449950419706505988832222666889420139616896392679314637162262459107053706064340895731049113178715199724337904314594111817633354144070112678682246201547169948572791957169910000323131571735311214416148450652546498702814711554974193514986751249499021766628306587482845743237743513109432769128325594623764140201624608897339739275923016081727665297877623415003777027967383991559827849376331203148470375613913534644028037650254050138813791186875511225800092519784171362752663943997568634078057629562710032603998961650348738316923634888824630286839658338550591093166800558597159019688249692621289375535930471771039430165663828106303270934071406730899721131050922098173306032693746010109793056239506064570545237481945218789407519755882945360163567866964820602217748731482018760452763305811267102824830335489434707557125277947301903891479824900431200897604833863065909690428323216374355588327361936574233358796833662071551162612158393917711981702707484073860159986281725380894918866525636321028971500920889155863773314962206045674778718908391534035609175428454598315260778318785710909815023080692504962588505397368094058153841751187963159717227426574465220974784237365719034931467065187517449202880415543708573071838278723406519940514426165608705249355993169669416777270366625479098470700735348974577740873626078044970499084599397777037958699580915071816331262105565286365434724172740491320535016196631058759320644259756838391604633824605098896880047823301595871750293759959171930061209433574266961730673487769212944582707872218491565854660871324890226420051724618548010022453837162621043671215941715185494960407977161236674170759049353766567089841962378815778835221494148230482187794199104996981049770083764429563339862384306171243882093482582820446375931729551291901581105880625754801084019364307428131005308269923961258034613345975944902008552889575785582027065979809325266561750344221420359990786027541248143317245913223307542587575691558959598296863181922388283987274413979677107596218414258458003570070853443163402957387173234385260081501098289336473484933957317877322481050765118345173568433190346412937251659107671512016550726045428578022636390842789477677605838859825924890294167351994124485343507564529214140641351161257064279943237338781179815760090726436886214026560177212562895238462389262577289122693839133374248664578029150446682199549073177518247704236996329902026524422008534649415582115135884674416742736944687484632390850639178319564661179677961016999978367841782765870015412401524376076992664329068474848744825460620985324796306136243229818934142364583900947665765366602609746111117632575673111582699168532554998833162817876477374003021614027251959600224948312710905436297623026833787163250187641772480440376646216183158214093144811184383080095261882615774998944287091742370571696411581174289559046097042728776875918093415820593372368776395980392303322980944039626386187755387584233781019631247142468006618963364661510842672855629523012537708948783472345257915725944981350551673947951250581054690106677719051511190134823806631703740186615294349914629558810696908977195576362545596710715615779346694969564957121408145372923758843136519101946090326827462400356381100423616496207743482158503940154407644843932073528430266957567422600373232467343847584977189925915250081329898911355197176702858438084273344777892574899844110900279455110365648782876129049531119737215553407626436024512856308387659408392595250114609479848092662745987700779996499227010540590288760164238805522698199812256639472512303211869308428132657301059814687766316841173824161910747104698478337569970505882224281300529894415244285691050355472329168623641934674275875933539582985145541200003500181690492757053485558239548389784084097057780834880721280400556488514591040340155183947822474296292982293511702845450741083531337401795128714527163233097919688846911153263389136490483605454625838333203853516884183942193941657593341319262934673861096611717873713211341213144340636446765150231165196652554702244489348172406641755714436303560903834599547447209384884595883432359244638610334281758077014054677941543076837440700634710063491424861282828823290664616334310451729795133733483245205304335797141574179518799450339236490538978091982913192451453548452745732660028840656303210468902606210110840973235500474562163453105417347337993785784763176677219349551559283119683447034785658314063971769296926424811035747307147686904879928511758033923406541772136554188704236195749279360764069049725501581598963021813707161671083753384235050936705663756602739931843384136106145962708045950138593457014525351741954851804426717710595255280689031195743068576914622223523906143482297508392059162503236268973222582561427476625256128327426853334890217113531603372719205025000608813748669687772349868981387268073582117820492819945037864934410631725783238117730702191459718754108564417761023087717409600326456755134362101232321519453291937047224998057696616567575594501690893834816501501448742429007486512951064370147315895839552040670499157249849478520894442761228029720256519508402060523401514448973714059156359276626331472311659556455814293588753220476975746300300467970756508777778119263550876688618999937983864148452012189029312330057968585775709334151432072827949353735804520374240605078202635756752940723832825126001735699419988637550005266152755678402989642176942354682408430481280881790770617999751051494748327733859415336539651452597552355431452683046592329903391181489647260859154045822094682706730665429865326598592047043606749598726552544190725442175271227368327097716724016641949800763066402953590916820085577276139811504011602332294340888805582231125989858880416059164050798289508866984342348854568412994075180606583883812883896649204471743578001689165288428424950451454506853398661244072476007491892096266662486772518729624084450056181586176146089250005680244452703962252733436123537935384576364976232413536017134573854363715758622778592479548263928588449130870133063818019440702895861108875362221890007424416853968992383425699471941103306547032161519671538914192712826113647466769001704372780247304176386665716894593807637249409109979196975840614934080598722199595734307451635297871911187646981342977600729882915067419452755660052094003354244531988252097990988700701678175021090954333628722705657719369103622897813985740755664802379236632633012867502233047582342931702507826089025123117490209878635410697169066658836567532164829281021141578312297189956851086445723567098517024057195559986344138478392847774845233977371440549162456056801225714674243484945568886799435847068591626090291871193275012816081090829797087681659241172391030672849244846269670423281707308503844901139124663019887348463836437514613753827474808939513145096933749951416774700251347454791851256353697955537383757851837084951438022205013770731017618023200761180739226777418781666154400596227252699593820319464758125591195708812045190108392262891279551912781146389452281218376857313856046904921100928487685396794373778030278115278099372340440480841743674332071330049147747662141817269950390241269683868025743460468060256193036539246764901721701543124108132071206268967306617451664348056341341502079333441845763409334065814832786389149859521820720481736915656980743761753242153353856762930004087860939617329104676528609851751651794779273554015735955951480853031364304919881154175581916021369502619235418292845572401020532359555950063229950930300643298748551424889102749682649589260783247156206620364325451767013265945185822048282241154443603435592422633112243606043221446769869513880569037091182835244650085214649590445002594714695789366256594161515670390788594831287831536413592028555301990850004880706551693367666111620422465013633818831241104865222061811391502836448221607963927194445702202813015703970176613985478674168107222922791831428768263488266585759960780960030461119525769751141928755945668410938599023664479280825056683533289770857841314256266641587316240886434142285995373527190887007313279198776447610950793245853066695526158719527412927845266643158954753633904550217161841949834033694274537002533459567685375111357466217947523915085770691064433084527990121959570765476210803465924232286218038627299541705125606942084004417522814844966005245354863725259823563560526073967277729955859453989809215615900791940828634586671626678658838102464112131011618624708723221634005001467506266751213142730718533518521708800428973180781390251731104499933704330121990062941020808030459995451864191823997999537424898128009277820193791435840934049078784880910132703266068702322712530623740688351085970891492741632417477708321041843401370152973104896527505478402321884846674326820897129293848441477049690111992462318736176317150161060342219311328536748964494679351054905200322193905345636079611923275586432845698027802813313627053094580621412339768653598422786267951418321702623041921544165998311509818786367831820532634608998837987182809658801511490329619930298342076665689333124894831100178636905367863653338002620773652364300246965445367871512751736020397904956953090624150329046197315782428956890811743088907438889753030033517102787290504220582400357298403197890143031634613079083152698714048540653290816925546405794345789913015213155332418717099570703298149566585846075299801916233350463240862299023682660648746570765785269768716423742507949107237908633256434009436164997966968365075101357654542678592436208191077130060097713058674013442907141721030594777066184149652080428218355544735995265032231576441149242002024787006572592384789200752586859539807170690212837682107738814332610026983009272248896537375154659924507070949689659494272475295607957375053752009521857495743761712183900936252151374147082018244799145391717499022232431310022709169384772094766451725399714454555736755613133413750570106633608334253158474788938266786900884961433469131089581267012211499053577045566990753316066530084696867186037144160389958912181108457808483810146753866502787905285726696485422026677529256459188362547444926840860618316978191347134336811302734032258865758817703416768734915174892270535527068057044543890056352408391476124817433148460694985347993109390159815331995509547936246086385122732589424171369025401141216075806554971827938447467473192941087523598662028983844210502337591872686251318517569894753189888995849494344760635228345089621954683322980787602718536394226855020242713379858473522899209056398029664966664151891088240459284723190491970898747188135654889441777426534649497197854867686135139103998497899405167317997154432030448895852897188273385523865910171021087916981778963675897337300497308813795728114598749722866342258666081293474677331990018601631654130378631430181997962653709767299782818447895488996201341169509639610617978780230415058944845865467935312375007187504993747902423472505801285607419342803241190745054074376639376913318631002563368790157117575244751520319173242105748047115372302666298247845779739931766838676084211738691682285735775385831957979511716479396077452768019519332442297133423279077330222485037454226335457494436170790113790409947233065374532520589171742429768607402954708190505669586048664298532604933265587674443578460495510972308943002332783451853118225745386678614463924869833621338331101314703023479052833358296884305611070301109355075699121737077739856166273002501109849489250168561320790638988414639088799122348373960866619724824241083153271767495034242100490973614672003512645537804436185080045229278413580433671254320725076992726821246110832173046986657849241787379194294952240142230511987151837276339949963943421766643290656166656727357162551928020250591544414990740498152204504529863171735985583538135281568735333863561509280433179031998829697025443482020088223254490355472018206674830479373084452378981462464416968405233230671878247792778066217530999424467903650878012640933893492278852567899707321413199680185775625089660266021955204980497554107997121460638576769515710039706766860111047590560277151395199220238837735366723151780886715389234198953664099598558082850382312074937149005043581079166442360568415591027153659342834254455621294945630110847805788225667250631496321001534501462041477546708744125942869878884114229928879738635750370117236046535107160667043688572367506811492231970012749525140137570163226745410848464380643527041735376524017260234059885455009817716850298594675781822914723214219376635866614821542733890594910899004262833080166576948261623685744439088502722578602420337929191911636907123973591640807538080005707672513734139737601482104822016042864023072961150732982552217609448607003312026209549846658500809857402744123780686250156892555034621214228908576402277343962172076118710733255615985720533061640304907185716706672649423528685944375301406615531616163139023376472527122823536476292412531526958625315828747591683970713502432481180561173617903014227462449206198549434409111899053518917485919443169496220793002875117337721410708325609303455383096719932073213570245068053136093940489153087977062494198719399642754527245664179913223762213004022417795432543893332622424921867598192620734244531464109480840764708662636815927226346957289822475158188187124664635252949778744770628201914973577573479288593558455910151947774946489425172907561337541756499877783996440363893063423415990562577395968252779858152099107216819760920747883104524166633413220163078084047997579599683266036218535442163432276776406445018393071052341307675040736040435633099754740400571450130922200886875408415443136039785924848675637620263922344095375773538649058655736020451842277657997498846857473608296682940456381329101302801496297207507105414477308920716519994646835524507106356461813389204501485384576366546317432973769356610865313866280694596451648164456567412029454992294227756325836130842956913757684568834265598430285739705138198318588910809526312464144914994501771668473184446783527429664716769049319341038712179244824766052790747598834925376922113563321458008965851787153335657065427458512021131562848363136685551663112961728644382388798229216578463245401343220875377354516514582264298973525691074184262934275976772035133171846255997283692613557651337922242365173045011178360776652071198325446722618061494367684666615976664601430473866351831970053902003470673059932006990350328560104040703993827678930619078912163040195731514679419029890202688249483651355204966364738616110507952467374784383393614096449488783742204544498449842540691191283286746230106991257803035980118053137381201318922124988302809501887744546360816324426148846465048920403736494743637822410836218761843368238646010865388433032974066789820700628809864457766308569040117982997253840785014886064474473669440593578045077145658620431546666878181561144711362798560743783896349598908361672282724154224304529242473448222593689116469193780383104942032373663411380529263450795258725570950232647049836758562554951599996270964810564468581410088202141894523379445140957185769834689390380063130197956966600588943722755820675570966556716850437309497480789484731849297415451575297262751238670017898616517410255319518947641934576033683162620628473971218538160671679927998504483994498620239813116228651584636833861015580580577164534198985857383033355265719562536817588089541727064757448898534669469978983806579757860754203795258909400645189491516908485726237738361257062839274744562117309043640456399389853362319312099157330861103106458859798159175996392740020226024906189436008436432823778232335542669162764202509073875663350589427171070390488334886001835421525299146946753816554781097941740046832671787833451480968862436380233471741122887288886378674476984242972543841092871390523583250889737422949946779538700243670224406848932195103712410984343459874057758771529223844002353892012720543193494011680017096837317261021222206542521440600529466950422229979053169209984412137843018331458557823797631565342884060765701636815343429068711484840097114659347987913045313913433045983342417643156215829525052974094910068059987514078121014864074588241071770312082477009486234254096654757326976391620304931050240049574010739260964524139937221558836441345677407500071330181878142155993328812512519750609948249345646568180146305910336830175669209797361756873631093996987126244603994525501451589957261991421977271511324150049969511905069890565317145773602784804721889456626113960029222733763030813846986582730808010697568455025445684878581953781314788885800228554361675135363074145335789267322908111633125951086982020723969235685774209032281140614224730952629618837479264554741339481449262064605526007334114552381056168576979168060003751630467578257344701877516228251862693264497105068825015598849636746902560783879334867161299361246312728647025310958957562884528821210320085517811572950626465143559329849637345191239255203446441865120127931544211235640533223455641357764458323401254471363698598343043297329174589807135037548772267931725638679859437492875657031305296295964588527865881467417564505701208227828168487712632564116800838257825037206914411383816465072441988653972256727511381256635513113154939096559176450855467258121408544093828062768929494110009112058331509166615712475627380497999968536109419384071769037042304217525472870948654267863021110828591604873727873870484365866571856687905566474897417071278926626133425664573084033853485680979287182397255050313222954918234571171804477212972232168818709261829241269236635885628798473964094168714439691517887000333899061586803099256185836499374101709344253409667783723736772899229139204915642493807748603480396738016323392038371765950752968754799026251438131411780874392856154626407892683592816520621065997055237036653861802506780312707327781783498643847904973465275946100858795755355538047466131395504343562146191133311072324054887993741129120532389063984006841427100851464020084654084352539483390512498206607293573308106356387932722338688342546418358726929407374023142828214033931770937593529785398434800444566103290108732481546692425431079330145842427035577951641867694758434628656843986352013317946250289936792105661942131202974392687530403414556936254400422128187540469299519292440798601895725939880849495190451690986251912186631983732555740571057655339620618335382054604798450566785057698742589199101901500037905849967151529939924127998063959497672212175876348122585167468758996573195623078543899663766201488388078550392585570227736113127630757093552779597365290559822511684216803372328688395868764343188079669765203026402679732866895011945930269376784966107097078925302866611526999074925146475517829674540855001956290917646628154050807034488997153616119786306195371294891069679595637728038123713799520737206502765699609534418818357244417264211002569096279088628263540779299454125408366920802191963611108640491274233076447767466486202988373073428841515282064049202240972247510761200595036198801822845971440313005623748220085759287120014291425786693285128294296514687969018465438832722451164968614193338990153860536373380063352539836969939122375530477436935004425927229356940892018799437583730482443543295081599328458539109445257238444658627474815930584449625704997941192757163597903642263405090376795763412530487452113284284069871474596827302994114744322567581125759504844382433505463338303354618199110532149945887285082975574343594860819584759083156901013400332548868228190694312575755155065802493722017298269607058188502375059672455708914297167183236767926890118374949618511907385444025980468954471540105904176811497323579440939371788539283137448481970627160669031372242230715312353992826325305016901851029319392624513745855608030467682886776002779848684412184331994234966555255920334189262839212881661374697119299826527674911423001379711084851114942127907929644907053552702132724226950142540627140899427805602973187155598558919586456165938122163528957256782706488497531091979738793992458357277273358793249375790534621192259176394315476104583760079318737700621965560824716115374345680781881478333877008640357779172116459385911344570108133973311787801697310026687054479454296769829004268448982738062000542640988905862793244854880542334162079380405500137512394045090297543856050813483924137210157025420219894422547100951118971674009408565386628178457802766066247575623719801479931723549614667442932640841348605277387128760382044140448695983463685013454108478433301309366256390614058889644108099694351859673850923183700937480759973369199073749666961051442667239572636863004176167514798380962462842839585772790777303371469873195483806685613252265570187450348775783313824488232367334075967929776606513424084250237883670111632288634840544246441614767359740508195879914042630622557807612111802015107336859596176518705673606404967628630909032595116609926144893851355185576454078458901218265033703915024824896901127816707069583832901526681343735876599345977373188213649895256076779264680691171383557777681864400092759458487649344340179025857694762144151736382550336281025460891323779992269048600642741963292089152905860046066234338143608794146943490697624696010387910984309404866011430728946131489306933915081282053645679616739137616913805871433559501982723766614180838111139629138638550414628757289420866800525760493582400217660870240024070436102415667260021689716965843866877691331394840289128419692121065105050859701066248762742201686306793861676708233498384984452966840898123830017116872717234766914422218645809785837382814110661705183460223737567693789709832365108668220890249822627661313293666294529994831341415904822538686483483262124331042640090268432338135796852451414464224643721042017925246713602899392403610401282452893678878355553420321927922967434808183365634283353225818246170857618145906918290669239710257391676536225022543338304767889347601343520735609347077918180393664580544800297385773951370523252569214353349721575559872676944371261806591138231130398421620188737204047845413296627417307717178311350485309831238807430979030627650171863344614427744990330209426625766509165101741839740062894746802489210697995838926960269691238108540794680528128235243577279595897564864090983264285449221985849274210341842544781903707076999489839750560668833106465065113772302147779602071831595302995352732976065151847673796195897813046809070680887851046530804845649543906478514917207814465855609546043220037666568847515134293368241175400178094885161542910835365241495264728618951234624191589142087210828520442776561080243037348456506195574867032119232942135573366016184205785942818855277524235185052504254881012542105254607563931546894858169871856381174764562829596329050614059453089053093592243732237085132936184297730334828115744927934164914985673038218762303398844428826637645578038415330300936224613888247886290792728362525154779507595839225940200736237148726089056020295084002203240812831726276940875737934075078539793522909996391963700377166618677969314078534336988485740714364659091735195616170481832961198615515401565479128065674934513466412369946798634084750369422549496864229759212072368086230629827451922261556247077619725622537826906936950215408139063401623533947253688346315732557383327294325135753670846126042421470692963887447862381375858871690705472436722436998191240988045391401098674040297446093273358268005334758732963197894851094288387554345998823814334270307814393174850650923251945027356914231683713402275270768277710384168416334513253881336519939514425247900783524317347595311872466981533525902664905882651095404237410084282583926824571977503969962419436451782859980881354786218843115018349916225427662879045126768876104936768041357739625420507505902897168378457830333951516704972885729196925101108306537015979142787600673985903891947405004938355815103274880467148468005499398968313176076246727058743134252093597771854429266969487579346604644359366135987749759183980757989121472976624429300971833184650083813459012918626189075085445323982283246881724942970906633519302008782202205867393942481666266018400533556892643710896350639173946431934859163001395492927137958929859328699364867615432672803539942011476706537595867451210114049762904733408072403766507370510796934759537155249174815035310982336823194563887380565735909118185899283492686678338598245095429275665082083299974674632432553306441017125144282026631929157320139858817178883096914891132521890081306156608669284013537973370920171695034138690370099055453933567780447571169182823791781561320718936855871143368356132639813308193834660979925255925399972885504810445105729202684469018780052189745132350478208887820720128036848095228147463612484333789845762586541733187270161515884617294480136030451087918914610888238553792026757070849316901061635684078596176817953655960086420782046019842504666199356913742735533940408585995855258605078772785236302497766954246914160456450624703874617649427146073023096328403941066876651843739593231979869665753607576968122675318391156733340176693359250800153188832465091445269016741090191203045385515225343193827376788552830695937373633686480373140264414826217950276424963589932595089437235243791272175644117367705822006020761610877631680288193851016358051950756711436140962663887014056913607004966682896502702643497309289122737623777752043737896487886390687746793693036900247854793064301217168457972239993673780186450304278986004367402290044339242571453644657314166467041919588690481697838939548576179159543518013281717456279319940803144145788591003445183960753758116671786608314206806044405660884199902333412459201178365195084175903735992613174440733318027939197814919173310984885323652572410375862662946660252401458602522386999151018080610571113403167081267838180431035918472085757103811686200295534040748171813194696336414795357447833241278987517150779704986206299767556813223304465166585964585651066427808631324471380047660163521043893034235400686057789844800313105860371911066920329445328544836601604052142608024887580699042532110688410073526700976550070456655321835409726358416159942927177217183349941940149847857960930151480303378546238013048425973135459717831223941883185622681635187284343528416551425856507973781751926029500508261130759810972718727535314279648418700338809534360484856019905047136700616351962673386801305435981306960025153841538068467628747447444193057280681431752319630086663595076631911085931750156031439184357139860511570873824843626469149563420181655099877244362010503404790438000873089114034223695370870582206028615149779305327080277241231005043226479832692939506592537412792311627881372817465943185027893188644854007810511351512473173886238960343007346824495090517303543002010536532272913872225040310190666322918677864479300591878805248892799589657254899139294014491262935216134985116063426891835162202062822290820409602369135234792099888535466116136026750196687970556055691899043192471825797826447253195754903423251844020650892101375722012762996858860292328334323791081073469904421159624838100984049812487392243417824392250484243050470224400856428754145921056614993430429944711743917446417204197639041060392004508384563624835884490372122211725723313848725748660755891897022675442799945880953738687153739846539147426880017181558384920513570689804742167066571467914391887608547724295475538365833209549278216348784429236100735504017762739632662069630807488146297867715705547098737503700379460020332876402594725560923346864531271299180932320730764898525803442437679449667185303283593334532362330525482752122837502313149000873629529666624472678235061128544542435769448742148573395242041446006607688112398448679172916554644257285177937323533791339738403793968286268871251602782201052537328319964445525379190686377706785523718276425430555489773347699659210375470479528787593861746202476246860792074661691819246017160896567533263665726796198106969645161835083077760459996376024824265400958583723862083646864711418640357287337943779143215851006597702191396691718445690262186326735612223160425739854101533169000340965530551343625084100082557576493770268274083402465191307008124284706214605863300801397405076019217646419087736420573787419687910002657293666590969576493738653434915003776278619188659327378963047040621046459455407576610767007071448529689661650895444745784056978563052094717850331059705735588421915426060201802378329428423208305286879835796239064931298349331754298375909572216152432605477227210405495282562908308683053948133048385857917545007514886087651086993915511618560275496796068080514843512442429302442824754739544067703874307648725676218052546857007393565010097426932210186314561955736234018853541155315016029332954528715736145709337224987148465074850694139156585602871216650834332104827480670685097255433288778251655857682175714297869500439921132921795796751944732058630559776345300627185943393776839129539100350371004249818632805608192590485397721714498667895786244276107077462751798300101088868675627034480143539698415629920521768527166190852968893357369588791129308050435633383579506718337369945675234709884415639304165977844760695226217185420194588862578026839595536353545007743958947242690289422135819563291341337332671273778452756882955829585902321081194325911134206627404411118969173493690092296160922104833187259555483865835835086559693053049328391215657925787596947209915067186894695437057059271643971044785693034784982632277678291104194694618253901484415769968145597225946199270553427074226797508405985365106388499530978333304588345854966000113205582224812778891018288223050913475618319632735925611230550476281224353856802097779541972728917544072284456939829238738601076806757875067960496367757331792378610040358104557042535594638287351610971587801353342571223410023381892334192956769365330732302016684855991525487965022768130098661459933781883497649514490699945164193942336340474467073086918847151981022084742776375729138392399451861710564320243976293856233760600728685675439341502340814573451725223335445363600322318198826209892865718379040899181453947010803580755293933715273410719895199136631173744125985404169553135674794782835066876508777819744762090102201629230788197153574069677055618365989259901623311871046647371561197996170594770225636485814973668978986130792060173730450743621629242255767211068997524203330684525745913365444046727247158439609152192290880507386054060535169999146877681663423657871952829484046133562672849522680994387164161115564982833519007086490220267087692341301852369761626021993054393800830495359924556613903629009636585080280410771242298440593540746703190393861574191368538441115677199027029075132524414528669934067782173088253325792508431886074291702220852568281228841994453770354706545054951059914413031839110666851257810451774415248892017044838739122851584758740659072716134825459937430338140189873787080343403723153169266002949534825408165807324082317128621901471972644006881028258358391156699305908979271422013379647670335055715747143254566726302871170785860949485022927859514229736326917067262440295581327082061523931004577807678217463343349539523930071118392965410414701094783021460297374339676528643133679398680555010070471048003199137741290571475528257170527539054701194779601446088378946168483296833219470438323067495441861680181141542200782466710891177896719002146823363196705971911949217258165087753674849467759274723065642805066115618671398487905758668518983877203275185000074969712797120345761840169532936161928906576967577017035708809408311712073860505388604430305185548285887347188673518422878129624774707908432790199500934281461679976118978294791291186085875926580665739220875178378061728152069679054469830622513166664290296528454751981272246783268428019344651001078446123871567577344779685737843929576975645554957560885326256417915221765929379926939255892040929697410430046060246288558374205945636814854545054800893312225161909517511609377610865991240325900077357820758681952063091129543879919141250846930265395315164293179777830925817000390194838185011094867209740953266952848605551899916328724925688450724242582540452044674009955285761853773699382500646028821513171578234335221757036677380260498990347228839814238049469599294232241986225752988590952148998299882349079122602055281355617862168564360930212041036679764941462538391293591332325468696760467126392252212788488838384470227657087079514740695915414963796601768314930312128059395130151722997292682851114418992926175167351006764949059026251745675404479139139223978146910779073224639495070254910770287226557869114252073073358052983583430932335083790586318161984825779880824932551466236073348609445071420019942653329646213995142670339278669668625183673089741855845992230884491917848662440196902111875873298079136500482001777258685471551670295763592644951617971160676862530765064204157321713449661918748962086127853732876642694354583276025810944788029806081733386675381016258560442626666984597891388078395197978693084415359602037156068473913685628115115860239804365799267667803986908819319685715898966929774095774478492974956296666885334016323667897306458630414545938652406762025899891902187227258193410470537073010073937122407947062787519665061485919922618655264321261884033432712540354797215129651756480046019906014463656703339175370020305057036987071526745621832739432049638920993871389074904330808968909268296978141273502548890942331322133795453413336613421178681683831402611712071007395532476052698916057422588771159954885812321463067297748874175285775050150832843768202423311290516366529263341792668398917159621924895803063823806956891540455133474676312648480238716563765392536060459207455253305162138896939812413666965058015477320906359069347518377589122203513887044462291583174934003602352927669420675794464994124705903923938248444373489759913611845432512157334985432815119185586026734618339480451459921596600468244760672241392974815547463199223165475245878378729365470186392779334283536190204806413868923150634173564775762001221877399340522192404173207545582709195977999824675045781735965857652870207787926189140321795173019011827955282036796508667251999551370802554438588189956241243959089477387631135528645683449485961556290847519654026457230687196218085719829964379675753427353734994718470532819350813005625032612772915024328609057499456020716165223874486622890229060230898100627949605225866410468316147389045323770110758853546310135358750655354250209069596356952538158228851696484568571475999674962807551818344515585711232387523816037242610725370130680600680071342092575635214762914474793477254242025975948882496817725529778220755700622889407047182656237638655832588917705477447230289582895314126713887435338101194577241311672120067003744487534749512255835376569566270207276086771632352599914682019067585419047013587095971386600532973852428999678463616541231576595954163576373984194354224447661740280127369348310889674593475100054330372892224738560042326139176044386140989863247561997433967767284081149008924396121814172982927549876316199739821080219923780025066152106549200228716966271308974033052659464783300751142809150634635122555923250309037752190191350353319885711984553482509317235116586049065116738066617490291439112080946211711694455064149155364918645640044086510760893383541704614839784741346282622999754837189841743499092297211165376994888329863623201767047581816315694671989860624813455557708897222099021643691265004441266154972697813545800002446624335701272196441817839427173551639337887849697105209306228645335669745735232708815887078990395116392613191262565404723872780887909674283235858472880448643637311193998344695047618388025514211446966302857336683459162170878900557209481152356144674609384459488370510915849548115274093046833319157546191065180299219896748671569631984360504948080578348813728684423665257356554464023694493971726331202138215929472282412097368053578055990364353751387095618656761539379649647437282454943550598202301246514322225716917183064238702638573932488382316001613003408000477720583063769806436252019585446001528843792175752812533494493265125160739793969767252143241599458037216804128960340067924182369193504223012409476375998663654904566015467553580748157551072401504209531456727117687985177089854633503224542994315276087458918537764206528994804510293046826676045619785224831113591484987759260900686583394350696507189530615331681230160506214972311219725965575546208772387708432639951909331259488700481111982648863018899031992305498174072508487847790992900530952769808742416451446129196710482865458411495704555987417704547654122729328624274733689011729638764209112755976232376167261785296103754077261636492320077328498074584255608347418009866382127699150275371053579334322289940987846776747364375395058210236704081218331068150355767038482113306334804373816016039214247592396332043926403020328656369346126934536812227870104893253665442158595889951297697805948616145046651626455066337107087624443436840679769478387542584774164184291329757404159977801403521687858244088261593678817596393295059354271673813278051665438332913898043748306674434282397885876492552242169233064872280938984116671042921784309256314836828794443553995717341267967747243827869086636224902406379488276366710442375865302476525973739856667639900720429540651360032660182035344238667207349521594806947402269623054359074606495006856678797972805271636175593165242246323833527548223569341689645790545728059744566517848396325178704886758801884397006067658269534692244604973933204989170809115026340763272699582813330828956550250606252880264030386202783603620602152578454051702077075090437419925531526298566706558267961359195227866174894111630069665499007659202076581314173071843171694587593239613286113861739013063297053601871957709363574356214883326117348929845945166724670387405872783433776066472471704303162215457172593681462107845076402319179791786204280779176884516980831850126611354211504631996535468019419313707509817002046918458809733819009716751142464777513532846622187329310364086456367849145754430508087592329688634562644501229221724279954100950260835786397725154210863633340524040406746067905549802986803765420616127298084942531533680997397277743887845764737181744320776421220291940329992040767648927511606921212461094076258976064993178379246297333349008685171942254369928500793828783464659509980084776900145749627217620741270754239825892916472729827189330981573859486870165337773793330352350071849481107070680801934811308791195441165848497186374058708486572649674275131402823445162654855840790685424528569662003328521424025766827845645684527151997261428851165638824563615222939104155915365428562188266517577824120776292046807261460353469625188897422304010638137868277150273690282136407599705825578846223508283681197830851594440547585953453057707385659027988000894196848958156464685031305246112776684053800003372238767599164486986657398606219284239786477389092887263019330812254238138638774293008834802789468038811504775536011993254127795654256733765290498524199753279181828621899711091037899101963897871149413211060543578310888547022944273692468679888140519882867717397592548005096738523418653481310938687940995330219182085492323180998902602142739306076384161513507651954261460047445907908068358660308221525582917403666877521580198968910137348825337702360773669490086610386659267425431715428387019767260758102458946616350466855381570666044575897151746978247996592255868348919335148389882588196955123627881727174960483974049036900576169118896777983253810269239459207195219371815377488740224776051916646667184164940824385583294332398639531096023804107866391521763549074531370768907198872833888822868311498420006636868417350149023584414037803536205085723246492219613259219498994657490955443530462651761248314530021270190811470419684082854067624828060101045829103630569775067807391855009863420716011998842900972007650679076840526730488279831198126638431838038633343682196324995846646036277366654065255828710954267456985180989976259585076378297761782924032638104434457975189145652791577453346076564703308682726763837839649175205389107096809630093785036653368763004257446980312156964799333068017474231737531651763512423773006507151035117630390542302003370156789747155239875782613637002614372859598185018405218263079275780961711099710793791433416738746219092457429941297107377390015631964360935023663646106061466296389226290701626617233883538747853729369172175982037439307892053421775739275336386005647165788437114736761708406186098983333462108101511927742298662413429561983243404942685100880158816092612159423048671584962494107546490797410149876487023119077222506186055843780738798510674669901938618666997728845906821639052065601737972349723902780802389580009154627949157738098862246663359200532616628710147652654177428312819328370324359977922974577025848079373505227831163754344414545798401007222930959363464296191110987047575825899123530897768211013299347773211410664060047016746577947970302842234354737987560819282378628512915513170254981957356027473240988794681092401915177138331193559098319524957856923842680769956932246986357452221513822783364678542626279550622999612156749137014906882219449902320699987954675972222137353737941697986583886946433407410917848302157115342616082679761665589930115725439126131870093957444994890243135039248874102979855207625000140937355553622255289935769880216588601944488299460695159858838430674952220531580164215593404841354258962682428385775003919142928995752774448790005013120240829694662084720572021343298388750511004517490516444118314448493064901845567757828416030026892727860249024714966334791676096358348178092867560903467135973299620090401467038708753097434799684446141027693349401069030046797523832276886524365213020973705118992862866199368434905488128508155778228960792900790432841583729761900357673301740237106949019667932170838523818544189257321801286230598569839942007436557900034268676747096317121759943561706746538347173886827581627986252806833263013195082063880304447576171518792568828584295286463828531655510908813817826962545370312348572858347921091626520292551234883623963660249371583213362280951646880706728627186087204836931978003753509197058059314771693917241322826944021032351362101409684076588137677814816596199387171351844147525553376993927006088262027691217435342697727446957143896277625546824229704657276588055055058189242627148589378236608675027263370308679162060507839486459611477893613533402091005460512262194220150181312335189762670832054541840116778647488854623492177497411826641889775380930980818315708297247655311639655753591719137781690439416018318805200540767947086895697519276812684089022494663668456674236171623216693360871846339163907015701268838082425065647823367711150182238661818005977886752788755242380295073200400715314388016576231802161177960549118878715614142748109493839611471720117254606630045583349953757472146244902601591383669319513383335228670258287850151541406202179249916098234937550384313649366014972746307091534602305942467223536538172899371486895151385481446056916063846856019330686800022785750051521577489791665690381810962708123606495721917393500559801654468827420724856404587770527022206282480947889337857810507319750244180666124417090974372386266270016167394794631321027315861042045731376155397886557849606616951253304431286425116704034731728198161134999329438136867665421361281886974072503386165122461205723855146999459374812232487264511679508455675998170157823942928482215657707149490742485828358024171662689101788021992138371914474864953617605661025108500042204781996829680982214397335421473498098346471834850487389796966847923626302277361422638005491035745944847555986081237745885927042688415152072374429125138400714089798844161264530150702277252014210316264551722142823979388252540701973945966996123021746392492203316867666026674196185739042378369591392587074228467511375082382789776496739317565979466678543748858042882061175420740568278936218813774399937658304753911282086084824503056561062213619046060330200393237059729111640546446173762957581904642801689243146187870887677721983481147456609750893790540648447786754485896108984144024381938466394556838132321619642175893557292121886990756658331274857036717206126817245409167132368378401894610454679920892095025198875647803008436573323608587837140913239713491503806614542259390537581526895310343240101518494385072948676221314612890936656209046482245407536365933635027444938088400905362608459832928884269418019331043771202482008736730404341326362973336458752220637387872753801703637958237051117789629319080842769517170119799936488411205985011355347938903085496613349006692222286238977002756596515480986848684400669042063009639204149265044604869306493078297040266308481426769892423129296233858778326999381923269304769141929415241829113244819864209115825777626563168814779151619300314965434546662639998316635856867268610828582903722664252040087568637706359490975412122621562353626502914957407454023427442298199054161423572785936275706092502595995175375798581932274906354651349342597533615335184376713070677843319208209187635537149796697325676463565615899483613995021752825541802764839950396838483681623456079819430844479171299682512476564578318242966884463864852848805819352955404248043402918844162927360051249196598851556783810731365961272830267740918725009382064518350929935571016478508354380904679816708167846603217345773956391511866129042956040149697592609228025055573517759262237468824325173748836115635897970336751479535720368537247364674107418208582158534539845200488439243623689019834221958886882681784979081656978529933500194548032982362952683731378795980431612151689825351953905512385742903400911037122257352207418828340099613034894175108107770808761919925298199496122451978441553576392360574697375468761543603097968833873691521227963384252723390722288381666982298414785618358215816602756363056528056631759644831833366403137279789157746625583939224855694339290417043285571154919404269320473562242040384511113661616514786688680503934726411907565935190919433903354236310516402064006264277622272707899518310300187212351500380598173850626125820557316777298930097319346813665108567907328147568732448145142269146710252496034950194995755677944644352273507559784801377578468073171214538320783494737802500719472911677022469599368058796875849807114774241173272969670005781399174613273436681135674407673313861986208165489836599803500524402200562376079970238185620589320094233204562356465101694564204985225747705382886520300491130448951519116766430970160880518288402918070697107881606574402318415827394870078054595617091864034199826195704071793024651056424243131748643391987732468846975731812797413987546352087185040645731533497093658584883621012316705770976335908798891615213524703495663337076304163957896936188693243427320576166895392076054228122051754419091734141646118892873777127607668287010850330105790374625121489837252496974996514919988736111092789359089366283153002906331171230055468965240465984984374280311084840464895895313326723161598851365103501850722250079792733687683214259739001879010777664075952012775351235558068476252847124677416256241878446846714565441549376902020775302551709092167373126388461520258155320663874549211805536518414577522283391091673172412587480299407806289876286441363654379704038495381905233607384878001253203851262117935018966778478154501696296985176505880570499095009797894724960220533793521446050980286357165085626691700031355158207818092135917042669718146850897222369324322972156102296335747586253704056255553596760141703540831565241521659759204990987648706585525722212284589442671021241705115969858802660327893655948180016427876420245562297031164735433529864239531059538608707428805137869062779375904204746195155063613805780611247949541645743198632945722760576050118235817671835660638328135181098936779083223032906821957129442034490097902086658885194279265452862087506960927739133416425071212652088517039737947563222242477186192890299298804910073800773868781491211698558601326894805085295970242804500778433507643399696345117424261673373907705771667192107963389673797480687931921686286497291657044471681021123674700974750185991607437199983426614013340758509609807385834531512952327512071468382527269123272369919171299186311517354319553198308468035318157363846260457034683083549297105905229811535887494570156823771590081412546295266312989397148075479312165426370817504557647905328556043172252610211062982089273285040420200983244062389511630531797199547252512996707472723751452604058933049184617226782601544395782833149422169684045172366253261307474079313392953441779564031547944352344263835974744686649454386728884088332636765578705279196404707578763923834166089707703738802835887869930715658124204371236315614034050172899056018580233111989109961426827627656650353478283345654535034887388892906437616323713824945709348996803499194670981506695024471870380143162044851922089102296308962927422694067467392305192827298895884747105428536731354632869020988841131996607442135017489001636767664534043846147906858807617849950916998171531739416250045993477347025035628469900873516512307288549859048977987675254240084103414907493295876789683790331245098018284167317236000710924837125566631547620506971018786376115106269233984873742324629439968727724697800840256677187734488515619212306909020218431014605833437217934455905658326132139844747372498304690565422780113537636509671050333270109352299185959938193398622678053549234995770089349725750582358120608944074778838109377015317634592169558825253677284880338049769765946822442683322277321616212614829776505839105935709124160333121210785852883332268089518794753184640425059618281961385932067048538474852556423909616194948123845648341038265267260479831732717345487075568221508064333129645946571871573274538367792539414101249635888812718681043894317477572515981272210455933629023382121812239163072806907835392329884457695770079176051787195578168215607279371218834860564262014897196090015531361803253489892051848140247774234125034297221287902088819628386224655061560574497481362526432418226509466359422422689616591343458758073743930734562144803841770713359876284226283397155817268959417876513072986746742421703458286730170626806493739781264727568639638006149990941095237747730985159608795254984908171840456616633722337264284100446068207743727618393192115771976522520851857868317690140175524504108139536581413724991483443424319803803879363263886835716287803067333412047855216894197983088034474017480508614491052477013736912591267755159419095451465883025911606159598398724472555609284213459200336108193667236420009692860503982955273114086935702904686897225331445568145574358179656918905787521389253138290992659001105763969266974938275203238940278722767470353675259519194204418998426210720496554903402017516862030087422871417570208029888731772576456744170815666360453738005935345079014767747503769973810174411119317014915468666127168126973649634334044997113556967854402089238581148753570203967451714521304341806494663776527050678360992401552722212052857070350862088365824151765459776760444944109516528672197343656442324068546135440525761701668466473338050554785017259407443534183776439012505740770307285700433939562319173502718506795157214283592334875661799821618167185541922806347721521444098625163442086362582551058001743020757432921700342020413088939374514471757750192389094533053735642316450262087201448687103865494240420574498737792422102572716789185689710212400116514604352748884672321110078359095013640004703824531794122061928607772140300099029330183108971828354767436817239419278362660775062204524700673494744745428036670031761730450975618139626444973893997898446060815624269968402609777460698190261883842413850759625266625390168453239344532767121444073024697910565028840651924640858984295754746176596128653294751680066112046976119457543430141274140430700373430292548072219762127989085433723831553774079729318363844229097483694744009846514444747896137154836067717264053656468704194434042762844509282632375444525500962396409969155878837426896148959586636871966012773220362308876536493602566639100078799950980335593622396168497360801690437795017445782950403774417104028925530463597724760681288494734731843290343581219319816160631452692527211740993032051410975190699475768402071657632374685457437667317095842419698799494485075493439215792261833684157372214222942912609973782974871380615576869953130908242296300000913099606527168584410831059436613743168854520221730259256605032846119297475860305179570970134662753111903640897200579778408621648618190956486483472694789888177916707888402157145306991216067770282075088081733874383168425514974084484035228360462144367697282234843315496726856014760861304024296522505004131801383495598699103375817898039094469087696660352709904380533307988717598172295758810017266512029446420031733753225227463584045845307632061814786356740031262913914601476338697832254496044814401787517062266095025892331112793374751866100401573425281544880077505807364125386528065017452872265268904614838868455393507454066559321733938000930148582916606534250228783971177515291729610002203834296832384034041494357736790861188199792613455836592367623060921124275803297343113601625501126570545081523293281139460128986063349655032149779779577093733636795850738502199698506905846388723666553733851979101572917838768408029952101078709699331572754447357947137974186609750723508673786569683195379356514561870334064017734118256925383340004156687929340596587899455454345647565970187140900401879884395802467803157770739216738864834769593884825849954786297905129236394766617182948417585273105306039557401222485291613592745830801996560397829195479493662521299795416538106393488725854105909099791828642547232315326092335081939806189969107989187414842520839483558000450267399654796039567941324342841090145147721616820865564916193694188103737694454268856178760841765941776930237251577140540788993599422244164988387718067719670096827475181493223625819462631403510653530067057002611851732802507584339085278376480464497020762036864059553830242567866124856434621902515962121128169869720921176870846675258377638761372460536562473066461177325500547268848388341151480247341196424853573314257255547627790199058854361024568811473407916793840630479899719195165063502545369827874552449300330452734648616165559794489912914921577414525897574777144802235214018073566681962297299025639983504670305340828356557905652455250997800513198314092934927132301905677347258949316109705028012856465483269593428563002422529425646110957166637700781534059900325512676659322745784161341370430770121992323800942738254249667171774772200187962507366912906172053368475851414120093645296599807313479224637833092213205761118172270715163005349088869122664280743751768177710911524833188557372771889626673243312914998569788118832634304424656743342621335794886874532269582367142349121308576794534723714267787690892179412596432611772587274389648980926230911506067207646502735392396173778768042928353339503435455133744695673738559397922152286664969278704715941285103306046905472481121467239801115591395471130674512576489335070770952861378835460479688156096360514045997651185437241173817525578594730580400017939993992583280982869285250003147659868360512964588433102012061716855758741056070117316205784976573119101356526439922316441198317020946736838591073671107690979140752786299753874624889264120976973356600680111816670151405915179085051024840134223809954230129052206351035402134116276095404051888492659238184106532705428013148295508377707938670940480910523702096750983621218055742656622912037799728391591465406730468959939548389623041943281616472405408147567638397270503922691653016403990663659692762674007370639132723297660365482118999680322675707213765900360921064339511608649862971637015906971557056518453866043942159181882260801232524180370962183949784795648973851451233146633581654002455053548947248176811842229602218084275049779659259901614681017529354607975796651042972405437859504489466308906155660332903496984262379929506346053896753426472009410791276597819447554086211250929133805847667419061428565573469656230416856502909729018866519119534244505141152155428146500300809262187631458953176915961104974032860642247533019953980389111052169769479087956091249702597363940168039791069130977593084651206295087138402274962497436889811383467456536953445137802888531149540575842874182740282370051757402860525640265323045229615565204076072571582437334670599940032823893076627440815256879708267952509426295893520915050008217391068849079807705977158090679531782032849824433661750551801063230132447629333754883854671275113422613634218089118923267462096391698189106456577553891512121505396536806045133179237249590379847019402127908318017754407694632168374670719951119050364416052669051526950800471727666434296777762134767265492279139637118241955723293976492614788751296094993159677233050827199005516359334783965875744137444477465712812112746024857021342646433944614178132200757823351131491290917410175680259547381128446424580310172776133517427006736381385326590874789543083716349611516776991705394886290847677844772317983485551769401139473625880855696594367874842155888530163615577458950799006174866965298940484418747727795235229507915945077816043709044093654786661014357192783697768125115949080322236157196668975286177553610786306564163425726936861240088509184006148744443365017827084197522279954135231399153384563074622308513195711068688013915228868159928449588198010712538823048075298758151908216680428278251831507985329757471651888389626677185804404405977962358131482852986182684834608224479299791578170679400118151933424407838805114748697633253880946344074653290585135632603538040103534484611607689295860066641542332491573364041677873770129534202764630293833593834345790845328215488504020753123362703577851168283404178593245529484247137746290471477585436254721229974262736417320006145980418407920186441991355348235671304042054140480431933424416527316941490076005655961143573868969470990798907129783092924736204827228012354269792423019355533284388991331658234948261436355929042145915638163296401530561561544464799134640237650287527772387017578346725913403627482650096472359232687066003092712847922195409507320226552928719299618761865208702702213590602253991505060654610034500361414816486928354415690316161583186770858597903445608097247443028969689775248898826899775108935300794903051899980680962740878698755999772531937402623048903142165136685589904067068608034086549613189461556969987844136599682794106294595531862131442033112087140892297234526016866266633928388511926955289829706832052968567538670670079392941815958930008368218767513757281667907343897367033273783694645669611810563312396555476977082512504196145320042464410267188025280233652470042218194231578373255765576408115980899217308963464623888186436909256878493544182216379484894247668889407554098993359330623733821688327972152523515201475881699931817805674275398784608722204063568184973908370836032532904693763520927829448189214902455581655754863437548154674339511653436055969860871629360641885963717263609974184591414899311672716322514351250165623127799374429231801141585440120769339842226189905637861811000517337009123501966930373718035067919793634447371721990508403609165422790168793182923429676920024212929281893095781547568363737809039801432278998811293891981725014156898740646266913043293537877659169632554711705260964355849358077271819494119897553221818596719448297968273983148189843971300373698175040382851126093685526573547072036177551645814477416268724306101295632338834621868272162743607247221558890777385787387938840014653378670068693765072957595846032387047458524692702340443459703466271758365531198456821418869341301275338544822935748695928070806677082391126088620960566178606777908672479604300873958558334795672623695562513401070702409908936267801633684178861839336113855149835394049211653588308235405507099033371458750604326801679811042851539599066590513986114484699206506389155093973565207266845854812972485485723685945173530895053230532911987547810525647817099605991440536872502434721163012145460846612232205056995214402238053631015967989259584019895656884100420145994485352652775922293964178136682970156471808425436686252657669858441061641157554452843508728583014638663708261741928860447080015018301169324034991538975984819638176202990915980904933965785371875032997673868555518589769368614989701513528091709847924925494597050662865837443973320094745367534320552224435941870530208177530741282411946480675217956753781048382768874897817667538178968500927195991272072336760942964373889720154828279171964576155536599491131751601087800967611844331918015107182405831575807916421195908263111992992446957034339006498315821677308779680423342108293618941674616658006282090773827792768473904103054476273933864541194793441773527429076664045465714878176723198413405100537360420929867389813414875118744826486330719095372028808063712097089777336512793418935081819200090811657138728577111921640540199548364816966820683249300826961382377334371077526750332185376749708887040361072556700662446631186112225627321843681106454790658166000953428258621987300949524679060481657239180345911934668458093306598146334762817346810600678196535331177950352477634781017291292597686450860324516605559650405643611130136073309406242991187297797697435088811003531582512685646610939472699743085501435941338028204397887838819591834065666349534581270314093325877470451760916374696696588010486453144973712930875691478887527727668013029713949605842655983453101155727790000787776873955468006067387930881968645934064903724513351310333457738778112138320540862497793052257664996887237014011103735888783990575812647992635591392224131691603249139150378349039773810966610232634582521631463879631271456073845325302529395310557903443413441401218065151974364167107303192941861060824268967166471113230505846693217152106043664278878347161981715539301922295530175595404990817960772927212755928357006016532064373558028577344618895664899030995459484799573119813626719234650465648403520075297997112436530124508848090429623131840861395417585619786117345355400236180848814504318991361875384595615993652840467579360252763195816554549611670062571489633682873986171303065934417264349841513195316474085574289649528521187579303298069273287047857581548865196063758421798235355855090211528743630963789554481963981006972641413565225151277279449681394077292302260770897530404329646334844604463953663858652487427764828059303843268406179996207452600335662857509284051211523950690901531808183993473151798402943723859857488447726568516802123345482419671733872676826016938820895467289226257956310818913379222459994314687597416925794466385764137713911252512633274960578544248219984538800319711419288428877781785418903577725911884746031328909346433677836819325214460412428907172756772371651541105181416159522087238386581032472126039494001081636542369669262789447366003808376299055741369485944397788291183475701621986468028642352621896649528155405280688295075577539038985992258269882397513114973058051337170400361659928234340942631980501579920179853724156368153653098329427711159541905775331432924011901601793985407099503294214578873591875394192719919109005615079388759662269551674028297466352040940009290763927851772058481978899997419501491581288111452743792198036989699888922094109207705689547048539464294102795207062284855148289508445480483916386770006174677295488144229951957889799099031385389240881722731110262349987137442283275766966358324718036610739351508900601038943842128606033433858136034584313178324185285118421552204166830756263320664922655698542136305515201618677247130357705069912672920952016049336873848858611281335609949668031622849857366587774376313506595536528840261207539243003149375006426138590881659713059187776658350207201765134440003044120663324403414088285943683479363988753525187892265498863346484406112272965068360564344993933612339480116898579561281657993134173279783136984319501350623035534196754033345483641635043071515903361227017133953417950821971499492153762876295702732839622903556480254835138208047557188792155355448134172801634031802026118587785418711212826075437097514962396276822328087297151680619845400970042370561815558939959419184082318552763902546196487491387686535606751289427457052103261144367983221022768645501228101450896085020401411542829888919158892927420255660475092726633828279664771712864640730830960947777241583597029443011010273629259861648417500507607209246374879050007766661947165345338837829948543390164458770313124115616523574820702095790931444933503022257007803095044583177090782092690994527688953026077787068026413918665952162931644715037018180047896934771545945356719845119844519071631285979675395002345821858613275461662709833681588084799300739887355981908482368072134518791884769033660884666311870324810408033829720260431360241393518974494622816217453634448050604016015310174503278054283321001145051559922394126643774065333612163115200117900379671178851537295912162862497721859917119948730991274158454095981479131901451092135364268246802059363330187390385140952269056660970804528416300986159496091601798750914057544588354962364380249831183815758672271822631528740935250595384945034912184099769770264217004324455544869359074469062975236029509101785519803395230840560710339065327723656352921710807110460961580447362881959268603175560320731923959931631175101606409988619139761158492466158975086104721871506776377980276692326281217312863665561011524139605383918703394772539753848546577057136098960480266186539496353005675720410307070588258934018101356275081773820560417618747806937158880457946607566635439593768784923341556734602516509458727849692932984331889980980068722070167034421517885046592525240209819011858217807561398057162782448380618026389300258925371031048348110452060765901414000476964467358778080970893674185516329351948008251047422346663528787858566235548149668320473050131943768833368587517220688777632437234888393525539898108521707168492217111245294989159019671640453139634209863058967567602611461055087620024814051887647191141165484416903071995156478975427718391899824405257825556134271487569301941590138894951695475622759688031937506107974191227227094875527889745638539102442991325674570962508882113306252982063651427998131336431229500227335033910181192331404695538006132706409608432602144572676804317925168870068669075723890762119837266408684664555604474545144738885283023595006397139537204964229439804424332267538333269954709622170613860063538381693348916139003123587398112724902061553882536902005316777214399529187890612540394568120697023140514019490629088304331653333174435761774711556422346314822347698005214112577717006894590799873401361162496733816188171865953659297370601780257181209175178778203227371128238484290618253900454311481751771543378690026319106992686236568984236637363001402935353559970085014402146404014620907201879685049355482810308889134376340840853702136992729182089474672848182078029681043374305710490932866254991368322258816045300617709107518564440408607173762500584471148150424292952172562476666264211193156158159664801419418797646208897065363025338801804765166018788155320323770929572351001325993582875296506413156286998766172415559787210262596629689145344098676651868789966924744811398706947633552102979667947682550943447600677897505278930516190261814597926611948035098150663812971449185671140127591983394437721970170689385033723140736334210061867403174145969542482942549008661101809962144629981663875670808792014700197720041307339141440844862969546083524774041885590114305439811807533214436887182158576633874491485524307297378270988255198127675779009964766094764854539368789724893334173881902386802774489002140640301424634437157879018274639591032713582747809474680026097328087383557105484562959999304676324252172521695582363026204453482201067600056866463067799294571314246065290033215527646437732171765616635125500567700857044145041183689622230987422721356930710343589132257376531220198016368814868749748087930709109602606133321861032852784164419274202171688467034347754768190533046851317076132825679502047707050039152805690587691260064808166258247171159728397519689750239811427691481983394023222270957007985522839195640989133470532110032634522755547148220696697371719650018639334546025498450749871587419998432481121141754382862706260396180764847961446451025299086918925547811399492389214239379804351088974374367072873452870713536091769303656291426367737103830534999665626979131122517020622513837948942607048102157644942057506435579818683434115019087570386528830791971859846292108316714496780027126594756936429686954360005180630917505311622734383821363862014750500319533494085096332291765054170028296959280388844504113498649830812177639548190239024643485111314795163339115348648632610974261003862729753605662551460034381144871159296413589996618508787847245629443539074471997671912166019871830247474679842435088631086135062814712615762112438664145182287666867876908239865413077269730206886219108584925049608889395641712305486580394732716771078301491690944304640884016793877655585526785641259865093819504849981767811993212990631622561205402977537289132524703717339695349570857427623006336861890635304454080459313178318960071141001476491323093846604115690740205262306986087063610869335118884044822777541218378711161177170536259082562050803137100173971103682941324370126168255207214785344084979889030029490850857612613304326499101850350506357202075677083148107728969736139086113509785364690385544191156121505536550547547897111203337110554247157248195992697364051918785491844478183544363354652333841353272054665007368494174393267794316909834846293940124923848281261063186861792079028600903830567432607829034131129026017075371845060639835341609138555280008220011498164188371858730786840203092727056393429075185594537628365712100796965422845262985066534381857153495212385529496591173770043238989733986859823588030886016137854699676530998590302703449902365956535223828328817932907921707041123257810997898307875417787621176577560501040087679221348484454520006101110900861046069400678709372405032252003538873355987183874337871954157979972369491989075524571345312278430363755109755441356705984429313802392160809272098764902162398847883069634823036679208224095032191514026613992192078404292905547721135953005756651458197874718006043352569509198979836868465093285273428857677369293203425312011953733601085293367006579103079771816049476566960201309126489358577739428095442728206442217207352843590681200322889976981267151471031331735378671090633865553898435701629809141445663131372321389453291142964873103477066968294191530751466049137434694297685355481682305443558619610934970210764342960100047272462839302647159711411658357639308398858724432152601762119143524648799469171201508403354037845608839072680174575474066091868323402943645437854420064772744381360942255425891230782030308158977864455727743541157189930731590086899002158259163026502446854184119795469218482872286628786399876077179632562585907416151590427364339327732270575560491051561106576020588244748991202276405682082750322477915766578519636135386934937384180667602241055680414072103071506952542186505934067911565306262864035781202322977477352271898519327193048273960259514024283294990670070887473563466312251543035098321595363953812518246197418866352135993256682411012637989326983355336806739806341482274992275072738545296983001710540741216604255688242202999947121574302112282990003234497223949952378187246671627203224368961208499794477825161465339440007352873944572281976226908680453480958521816514442602754037603218007078289077451240845468840543913645030508396683944562545452054982061642625240098157723972396306377782424234845126970592419042525312732401169017030941296441525596816410402430018888225086910175552382678095350615886249525820643424027671001555590810922834689576675525028489485721270515656809557484311252689440901130055117600511947501727518995750986847412193213562604091142695552017295054610426332130791489657151036288601087632105568822948195352937213716521292162651839885505162968342009089911640166975853748810021035470337743491764413251754296819909973377373461135433661756803952758366144186365844652162568103444269747421113411092076010762066225153847414443765730368674541401507986085691127585282590400786964534343798089670665480151094105887003506893497628488966925162519746699107921962553804240135636851587554330642568131957350260030774106870931672862936411966346178222101384207656183442907277785494367926967146194402819601758706773686047528215067839378609243601157518933262931511637633455778820483859604265477848036076923979668481229600120395234297331155860910729138162735850897768339095013517632122630390717776114253153466727543692340114117814281029192344487619098537634797074574464034408230842465290053308543119658051521433423056080457929371913145097501551932624776535836044695549650816218168784357160535637381563240165812509576545875744937063226935461075791251924494985962612726219993333470425802091620604863406697222023307370176543820457295659911457384214427457397567009842175930580662563841434618347435349914846082123460176663778301305341473242138126420118513260926378290785269543870483228738453141704063952902377338168246913250820710767968657100854730481372095843199754083685183065152193122610570866573473925691958376591086959931023913365028922895795967705019580713651974566747410384677904071460040288050898415985972844297193784175772207068504089392916262519327823636467926645164861140289698983087902234991389057240312736000782416527696292521660101365239702214916632480357584514050675799341302891750886742158824120289651533668290031564461768757506408501534594679688710707227921638485350197695249311350751097685537854198077716849236862307136662452989955307270555148449201198930651890785549688450186183285512068302643611093377860396300720887269515977141866863808121297220220314191460279571495751374146276573916278638457844452702877248382582762600672398124696107505375248220035981930795456781654701044032796255096668226437055091140172484914093464232543180411015037391133128414630242815109973953545667021312887534161110029372791412052787066224141877333128045049098257442444907257307945540045659111184050749387575501520818193417309154775900421401285809370872075037059624227041857858787910098866463371872476429041308957895130970128493598682031422049692748691113625428095017411394226109067552922638905318557495662300136742222678083619290897148342690935807898342345026064551976808184899657127744831284432640499506397083961403007842349722009318435745923837830540982155552051138016409587408541568427567579522085827777149030273935460640170191754134134222135623726554335729375660443725024554528454175231475840409209504665922305967344623397399493251573682517756041893142291234145376741797970883258610613329155710653301652852233725606581064592145002140575295092873218671886241355556816467962302579493745062426847866708911087560906765063604396760098713803443659814465225691787599381218016935287487308692154615921784079190208546185651140889924392214806747885177576975397472325133515002731892731814353822982806064097124964468228802869454185380253062861767038612767002742887105169262214497330261565285229583216404693004164698994068989605540511808794768316059539139653636587142824385658882594987702719749312865541054356920042154032198529674762161753372278919165703792854326748114513220189998744082582747635535636295119881841285918630560439572840075149426513233140849354835809445728906680372389986346332000266499482198389820729564706195397725843509186832990158638730150535951946263760713844410917885681722257131525533883325773549609919816177461387616981750919101111829727562976427985612469450193871984614643761979817177287031631611850593190976795066064160721608278432914633271361056215841925071901506908753076620935783498212107144498313081355165161549542035982238376110383328092372795480081210958262892065636733132826807451513185578802277880581219375963044231236275093446284092085607378320309038783324279406941564175562942978954309048776900097936783527330444117103432267306309345439653672050163443413729765446619333661259279821968592631047987949102710422907236797610048622417822475058019837901613575031740380648148070571117653788327460964736706080611389756383355063758309570018128276616938393420016833114410861766375333617741226867306266301134343296118924536952628092862695989904601302765462882389761818658882332986711146265282471784669801503194743841558458238250403543169875980833780388677177089441820625558990421812519048272385047952398719252638387438434585677624857323555873782949005555801688883654942027855411055187149480583450942218915311353850652916769941796856878341407800842213912507103068481033736029256813697134226122637394080182645021774614458442247408872684940645228779429983328316097010711728322898712611606976299769769390219407215986509190158989148381502542773613397507939825533353091569226906286098398475286252991873007383207785164028342684425275905907724008863722793052895619336374089822746566489204584008817275179586182918318589557144345802363051603550856888647764574005067652220991344658185203199553681983213957384634281293790610021213230459923047261480233936017806391996491664739494982770713798934575214517320979747301592378790691342395640231415121453798054107076440408735431199655947857708776065833164837900331868645575243387301582404955919389999908686267103511338571872883313602472853573420445559292505312779251465235237157411129177751793290697501683673551128034983351127295543788750364202412822558572972876364521660715597083873926533125254756543746877507032622754895103529885237507338473631330797584932345324803046507820725009346229586453674466314862491206286477478800238450388675349741211045038200330031130049430410747630922733602248100560583420518320974826012080597370609161651719762473451578313377810556303902650132111704937421836500864733413580844624580490744146980210932107037395807773631241959112742140951679126606756377428178907458843192695494178114196359043753954597194439733563256715691295315211728097610544851137829431132458592829057307378627088340581963267815020062467924631121878746908365884009669021229383539469012018366891749302305839644300380187417652383688796251025512834418474661583932888594856987188222943737219103969608767019049079311051320004208971624977647212402872821236630489891856339225793731961300473375315599460469199287440649655461055707801677000932162398434254793573499386908155249086937972492097955676656529476461599879762792536517438078022011744503169547855073488478264156075813967511619325149972381547815690614741533125206535638126304258624583085896281127235164398200378510815388995679000754586578303245416791507087223661806124177862882435212730042768662990487326262145600834750263449863845932650269467118815890954986538221208534317303096422395420411349928763943207131876627095208995676267350285386680096547190787009141474939534747332308676508789470714215684945710129815246156718171545384067711219317005189621638395602635085416242894283663207103699051071036929187483961538319350108937479814136710395060105521250890395855183969096358958848330685156582264654831916424134834399361606693378962212339079963472709480139362328345110032494779098421942751799555708087473914137444865685002570822211091168195461609931019665205328952908146476021337020060167652641664083288119445036231674484422881667271593996286390871288332205735822039467487428096233393000306775411525181084341804521353355046918794954306894382291513132954183468299452286133577450751927258809836918499909967953670445874082370539085732383715985699512667139947496617345983948495896068548070671141045751948499770771856050990569534630813725624163531446163281064755307505300854009384171305573375787448057520956372702168424766697281298421954386761551326506338385522793902112972258728899058368438643929100602461394432154472799962772935285651524443767856330440931952354149171556547300511058750999604973738804900382217611105134691106917163664626440700763713977415544936324458501712146087229613538843045395458419045743455778205613587265463895992061518978879057991368953585851024909709439729808325371874481645739844531872184746901119659123306227471331102864775559752120188503232094767434034077968684122982011153554659925203311919341721119532852573073655607313371255541294136786500886708785043973810617006978346339438170436722789097421311743144436269808773261597694377291980376863382074259660192423154130986964576235813389306733381338039743371122635473886929505928752979621677703566862798480679179141134826583170768397983513981282166253607858148601308500367237652328496895384278906225226086554180264301581729918268842261893041687167449106960410690712420318002802460064368057078366396457278061087638613069437425755010801160169394663036385168069737479358750088205930017955073110930925786783960220061376650046793474925824983915574494543277959694989290146983573566822917298036195944711371417264271264028588795671576863878420139478394771305775372623416388148533848437539834244470441856964170280456636006803213463991434465997026496600829381294227035254677523680728012728269804240885684638685825939557531147397952291230461672195724727011447750673032535517283489649574495245342567245447081883880792258582781184772300477090356802698365245372895800894141092616041628207868809756095673209903409515150302115706145877192131913259620120742782803805175754782903791081744055854212634038292661703444257432144028785594911126927157704193366249784755731080515641176701114520429789709324602942528997244590418608276704250368092291427928132219346909571042336529226565562391644075387967219323891215440077078766823880015619647517920571511848079898584274815184081321416660870356875794462677368577334428756273944998009688851973311320469754809182548570392620773160151467424965035026308211248375740770806131927622464978792456118401655205232142879932273174617383654444939855402446258549669143268950354074330202999808579232373260031828639563177939477459818806226419398628319849523775530267194823524597049802820914328807765088450689415218556743375611098457483613331025569421965855351783900428128884580950461366852888772086392493917137661542471305096581978014602850674062357211771496643901933817706327338311817622018953111582144671197935334935086826268360307164530080450759659418963160008374193721856737555105769104315398465043940608546666185234032849591477544414242823165485982883535363669455776960532201561945775804826250938584861037063378848547150756322658186842247280712692590545060748241297654967734462569316067211473984789334066973133023138710196259879060474023547768061481218414048286697335678126259043729110963847195277218052378046623582284508160507722722262159617528041687279080772082564195535967904991437369988423365851027067384827658360550503371479611899950055374714005268638575786733874971330397769464328248199791813358907144707216604399278718497511298688862761727947441516346855563030129249503791972530975148744348010117835420644834767797070749016383200309343028332219718223338226489201692321289107459755508845510822330322219774202013372090647161483807338423318832900511092699629316311867174349310757128630901597711165145485892120462922699752527707514266642273960067269405067679794413774397876937468519516239738303142309926930830939358057475808846349641871811224179498724211262171506696454132796216291463733675094425163582900427866703278808782081119776646142023849797165186490023195154340919796052028808229337554827528834502108947560067855364873966375289084965932640896253344252094857966321597183153357020992327810378649702697948954972697117536273044955323294388362119151017113516408495808197851036598135997499818615797432400652995218730376581677102189793764671434926995546195813392683831156419944214741170776512525391635936458255386430539998803422230036279254803173933834922131179754891943657930354984713656298285352786274565660532493111033795657964330976492979287807942095945936996743375836870786914756624318202732583119365639407531297715017339000765064798681069639561649738231235800718933622006132731415009066422532792549442379898057999730845827868692430432783071802152559724634515589489115307080326255369757991342739485679288190276724582812557489909211839161607126283177548721782586594245048733921817374345804688895698548799398484244080370229649290823090228255639473387831858883518231468032841996996737461391215054726032137636414820422159889381605426779944422260981047445163905698868924540713834779637223284644654643055397527742687540195386507863763805729262465032436969971201838949629661646114064769181437614459870066201430932541568563454708397422672047715691676735865162351816278013059517699019447461920867820114561465317868383899725691324872279992428501608756885166616646967683746026748110389050737409879167539179706516859671146277912451616689826629351253280617916212265878905517406078498742940078766760170642522499379589366238618624630518675372102958096360774995744635232592758857480435306730017365519530924079226023236200452267034915279697703869218654089386725465234689670301457223985882713938081499851555972313061766639879152693376547310422490711750857460583332729553593233200437880861095635052328500747314428278145671705501321043909181554686763186148776553413490192880587328135310798000485274032849493123953667618982182591040067921654361920892721728573459291955498917743195498763908981380476683823958820172690396568621327090148569086231473109810624548088571046530651469811607085716900818774463870194783210844625380394937982190987132645994922478173253634228627800761868446807756708324830300386350399325565642213869161392886507448281359368619367276178264882474637148402407501558101323074316302008279457820609560472247385372679080049005210120299138996609653401715692833205608358293352281480916272550021043916774366732180438950853244101459042270120685060073972083402356787965766900936692461474759351141805111795163481421665765976862058713454591207166418238890402552802578447060615874461444672104090172727559325760582067817443179221428412693100127406259841846899738251682324581676406165660065544624109781411005984304004496296029754768446147514656617321765693861850982584387479092859095959053137536565976808690851679512480817078361406133955347008243600544898127860493712571524289302198152838461896621790557659922310676259830083427431966087515133496233499661071892145184181015358134116781739924732609372964564560986914695371769456696952070842139597784795919790638010623111921398761469570837935225845120425818982570672161385393564153451983144556021045284094100471035356674180573047608726247007158493436991158670090317521625035403568218742645594137791935679658145221426598585641236956675941519488964036856896144963253250267259519746360401729375568863154979443010306432135191592469680342024577488909103003679822181253682542102661028711160975680577933292848112013615544109525802918034697767955249868452335327061375780531170576111436200004250684208072039732126150387701697312920118638993436421264209102213964120017011962114019641218564219066973091838953639158967476509875363085239448903983453516435387679182464621013464908953259560929063238270810721149267105078581816015610965674450491720360831309854241348881774387684616638788724242912750977274321967009666793270554643463229800554905330211319338180379482612264957295173336934504851959872997666686548318579638546111237122873207714076971289666295066820669980786027251196447674494227117904480144096132829846629014909066265514615294643287769660641031351509051488763544141968917814045012409779618681490703874157983153178791206800401145496984911750274654309002422940512762861912295767772348826509885112530592241998539776732823092316543497567769277873667050653640073478127515906179297045910232364605733406647383988033812570311284280100410851738122090744478770232052585983668867618556052892233332346422607051732934442712636393157653923094964735844681518111494733450938763320056383706804134017439316028106951710642425987181663295781330961928111121400799423517685622973342795936465832905088778844253258521800119579178898331103256285368583605366742948679022162136927543860613268043269593257710269154734711436141388758110976616626447272252388867058151542725010191807806797324352083404687899579541708349599522246031636675298380833832674756171097390541843741369637176361531391964830729084739815373646143513675149113511359881148151044013295714188909835981276996833106590909066881118437729563926530040077018124497192927341763338362379162775423341076730913041937596787158350006348873608791964314449557454132275758299661110760582672475211996851436018621302562368852568089017442224563394309273228913242448660208035117787707117725007745356949623923169842476772633612432310089742626613944241394068899085390935808218970478024360610056621022073518513196251206186814798310538454829676499391038829701367724874966050508957492761659894914235242634407258481540618338299616025672442682662797837074931853595514373595812669872084598327592874634853103160868584283216660601751167443540389375566116299544203108911330682452234173086501156496671828319340498458698185920376197314793598261463127107950290362466447694477571200762109457396727236886758828278068224459765581869931767813283624319439449631009858037009029570534094325419525948644290050098410961054202066412784690704732196299421219661700067473557273870120673070924815894464029270315412052328569346390148557722057719815767989688500846951438765363366800519465067471099918572754238968328001159826757991481125754045419527938928432327202006724276684537700855458904953361181129584451139412816518094621712414287912582165034391767522915472912288444060866767097809803321091855340650894802828959155019110488453272587627972122492486649742577859487866156679566989456874542399979384171162799703651898145727664178044693457636001328409178014478496537028155629611594300215895909608477591575293433923752915586688111519018387947033838322299136356603683437751038782195761359457788216586205954083039837949483601666862545316701740442223377222572876034240096742487948951929478893786199098850892934595647934619616299994961263207799547239309812532823612226132642901508487288729044348802513977096856714616160352852944957493484541151317618199118466996628819359099401152387151169904073531416923883341618110838800595283109078582065504786420046792528280518407980742895316272987025150779796332512209004746657216077996622359553827389937313172386444048412602734663610122053605962833654174926612612831865073033021543265604333923948267569291967906184887777812372816998772170236270214151407980220511461771045906200358084194800657439024410701893596480447749047275852747950641341017768677751265589235434042800785957514694514297779271335805458473616810728542212982563355325754025303466034041081133754401079233171107308291719632636305732638737805933775469134669963106064365501875454130078193818003441939612018550511978836906932820506506474501276429795761764156006481523533788733467183445361478223975574575417044826518779015451018184799849277571537716924564021633525689420946053161054335330704140330467922591821138776964096339171332231938672120885591853575177995564189472567192886969465320823906133030571516267155362548981183255365445565642106680434822606632751664211120065530602606644806150276390011347275235163513625169572476981111884559997302475917431701461822874408713640170442631947256845621632041849074768464091186132404931014850714830677003258782397332712290004281561023957821997557673290346619179977034803277074185210915907004502029333188528086693330534296559368174343009565874994625396531048257753032427395924511606029143471227365304370155882173066956461950773001532807134178062316674714468635834697850446470152284574666820067637628416847234470219945207355297607063011960260980423546544325302836247087584946808274173510238044914021936138113372988851708769172846318982245496891778820968715261423451148254996612982234093057378919375327081485175345892689634439013570447528929241437891396928287664129731103088684392047061769735011272354341468419389795840907607966807641393746024051191897264536719705738519593233227244802780106436788271082316799127532759561551508306740232509428300871809466405542667121042373991340236855524578961499824131306007708950764988743201305210109950138731506755281253086791624905525232044176632874609339452567921188132014361858129456325653526831793187336034070223461854360310717864033540870842548371189056534237708347806976750007538194914925087366422711966531561096043437302489863007002537273123641156483018543737366338554822990456001418667321132567346715918372065299055105516374951897737682123462637701984020868845547169399448743344768776086102224969549769229261958106805644638528977005318547571031130504753961848432738341564439056773377076038774157110396113155104698433134739444073370733118824926670405735561424127853386431649729001776925554357491062614038706304415573559787089429843774774935435470562143328882997341639603098437317305283773059893611060750354205145385318646073110658983733065611240953656280553922996522356649996235010646099642109145616705651266426493897802807212190214015843391666566325977903968131132712907600783457986916691113097488618725949183561236571815086307363343090968426730927560907045011240268166421294444747253762968619733457086353363077414114886186879550049273004310923803898215193096963948023462976199681832505214332613558994596442594340840763285784237457902583982769866087322518104630778451626064330315643922187501686251320446039493429577517806427299041326473425535668412836104539412415071580523243945673791537816056431248558030466470518970381846704203253311878536989732158507950071670126362993454115506775682834206313107016851158510529017466270970213073952835666992205274945941798132889989572618407588183071545981569514078555666683370700011164188627738521273924762508837387289909639232622812626136357207017212784519618696794837527071307284645844573641785186459851049085790667391497998416455991338737509359093822696506690862832767058711776680272510242585009236393334656168276484413537717303904535469757564578203290680209737570161086683099355077883086274244231859651909695979324543735728698652193353193549355921035743845838940774061414827538036665848657498533328923208669991907008046312255121325006992007814267217065979080486764193264810205834962834118729845893337399728545439628023064508905581490587666963406745248311638004729889961856135746840132659773734261340464136010454662883874523372859529221159905750759809906548085915819254064454368522608773763700814648437199039953585330583754636688720998704354272258051025117480669998418672733495414752418117442395516604716790900176324036028006213047868730575432468488858798116350923071328759171458388761523035807238834836454486040459693140585167711265759985710396981038512665673999308675362268907848536010713893883548123797724121754625003733685883612522711728647134096323845552369261683803430203397546153320841397807423770242095200458100464742833724042141726785336094535835988528470365943681829995364827211688388985144121526776784075128181867024071990122231065506509905272043340356388825694170465336565336333391069443607572356070146996761503931055911297296172762953983659176529959543987480392733841769729868272909141294613614996244248522000736606117941207448647393705965217501000084943849202926317278568439287344562755245116506101971073708679248291753331021924164876992086597708724736190019779880205903026990671739400260867737002046613613854698092767005288534659326723945637026449109388297574745847358099065457254373614240355867167859840923097882311107554521277312278449876763047363495548831485498761832783630581997867971996114802661898241873182337154974491049793460649826149193511630534206871757160612453901547312423598883097944502238542660305543978470368672738609598466466899871520989311400345574093171450244072456491974060082097475791593809802604907981916345888031843835933905173247644485125822746690710177945693204070283943074204022992827606569093502742197000461500325861476444995388880101129791659362999839438860099650511509829148990366412866853956416644540358736140787716514623916201054759878218144716949904683653332856253991798409443454716149102102337813715176860495093665160487891806111120992997233892602020145109861714661302597850559219262002412811766400179505399096663361548392497341005888939744622587421988269286768297208107078507785771074292923821061282583353023079460287033672279553473280670278287053803608725750098456517399339492332299026050596324193676969439390431075104975337476058716252892281284371519383067078449618820725173545711472115600688950873354115824886366676712306168479305060559648432240407005250329365356326050929637745890877519023580689886998918868436976671087369501190755217841794332696670696811391930902294952892527844646472457629227691566257345345792666925767376141056721036282674465837074580234277237073996316350844243672923404893854679417071497631572710655616742325031859518789712124010174909857713306653394019300661955980284652771556823821944871889029052633882932081994545540662776915305603363816038796640424015869489260919160211232594931402926160814439874237542055704966954768875187644960062483560433283000341346432640721480417689118715933141164249802771261301208596352422596495844955489582076786647216909616386279518338751597790405747474418331466679513278683135433995974137167280960837137043330239168258633453052227582295292171184683681091366392618936181469369765222575672529760426896635259481957306769608721515961662149596548434180315730374346937911913730813594147560384599711478408945513070101964384980453876184749603953379222446077549305472247509701985896188402402294238166395285783417210816681435355453778753292302789647456780926075786559801638254759980784288865410436900311356410826222319742730558287604846396149393970762702651205753889359867341946519744184239240616360281043359362787287204005029140226395472186871851998109170285999280666545515638689501276263182653217119979960338046414562258126128215529307913307777972749496919121885641185090382221747948622424154463257924656874582533741770496762127148792637049299615927175638029934967144362074058154111512355284815859784763922478957213858966212434215813366247387825477534825965126403353429814574323104280294768206207566735170780135404699086587034177452518543446100352948122658196133979411092112481609554071085023673825349810249457955218224232749063418887668867813277761002980884257085848714642132798203492795910866065669373891187196996500796707582531397619721400366932979910322502236169078050860725642860990958529782412041069775104182455115791824350859496263242836735063047514854459420177798945079079354519680722161016025172925234262764237483559501266000403331209465595750820379377794026380674427955513474069934037971288384088025392635262107025156773066214781862846211286805700973466345358421543302088246735150348394376670178641408254304180434533392064370307782275658057958452107673161503444985065574900873398208362931038720195424859177549354253688704344999958097001139193668506672282801881248904668525262287654987678775221765561575434943410344541177024970710099582518100535909730336822360520167102261889246211157784719956621559915728034680184501301010827886092479729214435287336422711312381200580575018450420773306863160247062477580011740140448440574220546456373935511780320436783418749340774564183308160821890385923528341851055992454452353672501442573767988745348515913965507465670545277885746863504378088637208405515961411148255550222615493677850572501143507278392397619384661288128945755514459865677478648423668660667664694959837260981936481554653045639680166567662851273483952292142396279697162650163643119155636793091905690245290479395523879201424703317723347518880459876378760719572033338044046085012772653711451926423191484050431116074944486467770616445753407830331523121839620566141472923235626933108978751118676889845754883131556871712612988036966363116682782690826287764081984942392925903382982090888584398596335604298177211435699004406703324253400243008451153164368282337385816424003872054910397246780317100173123270945407695640533216580453707281949663041620828789673572635157024149115421787972060620796851098316187116559699048434656352492271964474192443653591888744431636790552937578979916190959995722078825745406381465869710761155453548868378151051872082141413258387201591715067583531637249700034379000464210296908049153152677660053866955706030989971768886654571818008716157237667329880576737284354894370981146441067409833038949068624488317838128110804716670517166634306539128545953669942681991135009201426299868856766341365806257948576708337756158351881894495508490205416759642070444614130282248292844433011688206984748919502755518897546656237574559316808426090187021256143358681879344202115066860110190874256126548029296156082065254841093322560107745367795936993699188751574631821494122992724941334342442050838244187539431277357380816591016509489975179897744805374739371317596593111496952737362684393743832409099932221251215255358595904641974830324137734131361464113991895455383883712579462911672309188519187590670177445417341520960795091488481969241179702668554045884731794463762516315998229506754479033317282385233357874518528165531199253771466074216357288161525982088929840194555887338844899498865707588044047336772120144859556437966302880958900464193540851866181315480576541416182254541408340495388537934984791016178839147992629431270935114103008715774810561551608830353118647757338589257703352863256753440995949281737496010959811153440351705212541773388000020297263002876590280539973470949441872414726723847787446513167303382555090951307262537949353887622724904816811282203212547807526923818790047826242551246350767450851873911830862531339405946916122173121848493419403510783158548275303837506558515585022132739053708069024607493158453781540935435972508671368152776804661101460814842266174516775127990466664836729290332819552679707006610906689829907410488938692312409001190995287557248815430393189850782952003764428430429500459692187821862561665509788733601712012379052869713334202661795572336579237235814624799205179022026935645421701396725134134836308757176705581892272696872975050360807662395183826894740648906084244975742559810297865147289038369943222078166920418664988844654475617086355758801455708624714205027845510913871764546295157911434973390598349594415328057306546664341096450492754595300140906877205737089514673484339448426784320135676403118152577413105375421417611073416470357118934913403395370762605759866547082846888928140170643243999916997427764286411022165432041813604214849534753644054588417673210206846335974970091291946326387758909436582182743639851879328322380439584007402741240936401275951526136715458800893348649602124927534541500509337460821339495608531596813527314839645458307211631631071612284478667782643399216638693485534073342877316662378367978171414551011700665689056665187055276312087314272679310728188797075687428966908029608906745667717400958835944999663350574307591322279614974491288558066790943768471005979759846654681836966151452577327783139097462123749404398699656686569761362434766468782637688768062245485515177073885320005229982395310192584818535962741220914304999551872914706183764840118079393860984397573803972720874573165423167717369955493266840033186177633034967807431747204237111520325860606618418165047489960192170615662633422608210643297399400946741823295691296022211702230009149907258037708893821284492491434418079166797302668638598734429517366366940098570495706030167430540987171271513098877607647112529930401536388526598985494284641328426857652108518427083255450361062272255061414349432549752530753730689114565545913043046162748825242806617312498817164099537108116067125740205684739259643537937634379043380158761256647466346476356209032543037517450138145053132754770669151524293342518566230403662736751123248495271392543775318030059675782447432642841937456345089002187366061399761236095446452989039938863019871802766965017664283879141003490784499615046399695547828119970834673674882323362615096443748961987913465455341484387086599609929888751769880364847189162924460193289012926902403608690750357260668970897869952314997187216623884766017610888345609193929089055890551946800514857698898950607399755415613880928284411950547800633661332838512756255537038284011245005566455399460165061504379168915800062457236515530062515430640314029216726385896996996158393626075015663137802132052921299267122354950725141343985344771994840026696203966261534661089545783384177562739869581679454342825289527907136013862744097415022897519148254928544224867518551253273579775365841414063944282762486878418066352282433740486774254795336049432075836964630867257321785644602453070564779448234039427601492297846003461868466348080156863518469091484538180341451241101924550143879991146279268778983368211217282343988599165539614427518564333741933618073155024062791533105724897829514595391115569022277444752391666342066785929988929314774309408046925494376370119672914800524606374600770263442747254315377190367941907162264499529709330273985933623211001792834731944334349748494195552180104310388992623722546085759018954527770022177114587828810419298933000240972389300090362228770400880178015624401540823390351177298835791372202085263271023780911796467924548902791661414830614873923485542675151737288993518892785301352828848234155617140399712188403780012102053190058756524574546985912054619602400350448765535008884175596205564738249014396502187988692455229786280802490727229378642377074930549150629488122790692167038812742404694785675073589071236628822390794156322642784370858143583596536787254039600349163646580832323798679384023872760094173909271497489828443770514567598212025082019554136223929840876810570333428675120966331058359564786139978097229210147524978729105212236481726494175716996363862470468890005782881004050937924297487252521846945638846692776516278061831306762409191541246167908730296112554470043988332234962231358242041314862676011275978984301365479086724352852171306883805460994114170731767517577863392617865452786608935971764280380534261190184550771023652132197479144376293525112749495389867038194198147621073305474001139471381163053196282714229767848343211410315260644379813418182805889017102190830596812437596772550989631136181081034287057782280813922015566142694137497934846157082679151798584728915263381233209611962160022148887985815633947505225319244003387056197954766501034027670649784108931385005866250731255112494614366720823465946374062224351275812765426847524511356413293282677116021600319787595543982618491964899336314137578687295844908240690364898697669589701757752689870067931592837411280230215663020742750000621752069990061385526263781735766077019997163180787090975421585510881612109162781198040684508252745481477866470938655195229041627170745519109025105256885515405103742447662000536438176729585919072648039787214270376914471789787305591572325856459938447678784408897797395868282443901035040786528635801469178290457692495484182333855546860777716261303504516540245904422457853956719969208686534725077580378066137654278242862021054549313640738701574649200784534040562309184652221829974114922722050940991629258209655104312751426381546939207863978094790990959266006511210403976852790762620507413796031267381027379533517836336679022152119729238525266636102756633997932541163465409813639437163469615270545589477385167313532229689504655597752481611615454329526536998526913284147704734670108941688205450803640521562956961997654888961729420909655586192192116477965033419752554697843019840104237279748072439581732232890767603006141814319031830130595679000466860193331944915599465310814406435464507688866323339166842614462647758140705584703178284787425461991737999120005202290410306584634256061229343210424896134875997675763073146851991498183834217768824901355562199697581493754976385540824129628723016585597252840706388319522068129734498191330956682485104590205132459045750144269713231259794946393257799738608850740726522486768666037716488941911391640671172844443637156202466084292584533102595336699557913835744706475277907697532451476441656393471408908751126563898376635492321779343288111443439784528927296385122726130779177188610038314354160800671912669458542201618224761186889592264047078528484321062624244532205166700316254982382299676435507501600255487517342111884983491255390867929262021895227826229461060058804419019444503154172883630283526968716999337214637281899121549917867021720576178815953473992273025509745935630679963789588969640066839087872614695599614446777711868122067088367517208076562670465220194277299331679405709748715239469888839015115624037799789282718757361388952667069447448435000388796116459734360193071033109286450599516800946107031521526176011947280165448165296877287106036507707419323816666540701604475796507995820025841446834265077212211320813904899650740980571713159066352979021765570238724806528795971327422877643335433438429770743142315742421684853288240291506162612096805394742104624888794701395622071566554477090352599314790742531999457093259640534940698182518130567524540189057040956005912717166620977389096989423558042224087117495236500986977547735900046443754445386066577911984671055345116448262690532209796013089878517622037036569646298670733614258519449752246697826230471362229267527708928070669919113388631745213308301520124088828831615620637465388194417255847109539725081235752213886162800572488200633856001981371944687154455047590735736906353171736440966652082665424049861102902562959187162766422171798902890533175895580338170002531782145400244497249052593962248557123470114205213159250924389315892902006656272566011709696738144097670685809826367066967137565531391161188736938177909175586771230249731699764208712057101504733331543081679000075014336301088008891581506928186848503127957373729210141186247597568361248287604588995942051304977684982917527011461758155463857695064509701092454314329616046954479594221381736703904848151752028589324604863574262739476478643665763257292211371892062524190259998004398545705771125920471670742908402842336355000942639999516345595432078006510438653868719204954331579435783991812765819086942153391135999980185372119205203986230972705143363756792368503922248223192237233222972481342160825747298913189398981911984481268962425984016373818304909427036214814206065421396254582643257720401069571753795709071403863704095638008758963601468929300350503024195453993077206446290310788919735585868240568033983749449910221720924309893584795985726450860476065382018193908943451817187770703170531263974703731514160559074725710952092061439237002741140376664054030195163999201690253933165910647506649191672464324460747199065599505145938538286390452885386316840670014970910121541214417868120365019844331129716838167438357954945550071658465828197727238570104857103022623349941015757660553170451427509408280098140735397676949101140259145137840451781350698828722774042300007105104702736437056833593811138391619641094832204630129708138890162885224310947372920870574831830574163521447686135120790330373760585537061674929536417980203561655838191378121604612941136532382061835893240127675196161572336342560192408522096466961360789311948666324653466224045253031018862324623811445372267501198886375784169798647319554540098345113117480663417732917510339417113268703645056514903449058819479525147872362004300684098749650674335822359495051991235177338716938635521180323047394527099457853267007980773469648473860506183273062678634680319962274273030650025496931556804220587577051370737822765219059209857008762809699475827742783256651441718942627519404343834304236638555592541184656187946720132234911574803933224302336750391024525660412712970908122726748792972190998024868895057560104695188506866422166664495376584500344763234051492589316860817879287170722973501097030288992323889837419233203651620038056894348698546347235520269179119450824601564880659806417640970560769637558418027753589271881473038764181960457555476460698446593699930986470135340389811573189219928189087381735759016225832819177611802444218140746856379293166895506920528580603208862270569931603835101236284755478857785358302823420260253162788488188753719696506455498044623423250904072329829784191008142623676311768304769734915523646912881560778200438413553694849254423677173731259342057132612186205064790257961963015639337251291645046276578835603536447510805400532001395431381845039612075742468408141536558734490310707524296566216370307174218154463799468829095080636269475576381037267716473080387488718992456066702021020730147883051771037087813848288149529330273561548504279412962547458648128068691696352060780953695596540190120070123044892711747889750251384040834892086319531607641821646388922397140025987717976410372867177448634468849241263790677248662900790236974829194659915386782539572037861919670270261810144849156250871644982805058337195383956025878507629370240663805345136854719672247333545518276850354671660548006615316274951999792455451621056906035853141990408898991214139514499087105434474663618834929323211476042569162165108296471396010187841409545319579322696954120669777893265132210219059074594225310016370777511447079392395454874187703504223480968762186334079587928628509999365316375737013445872569816450178242461773929679310040464323914538921999534977167643737667950794446534373750893137929307691842318776992553604070258801384043041994452899133550793782228179367202377273506176602228067106253321952130050411933461725895109047156171605190809086460161373670150819644000115318065561538816274947325104344881924604102150584323648407978765893586634115980093912233779572260726985015373114519542743154778473523893001697910483464728476005285807525139360271616438130441207062446335380590160179025112369141629958121469842350412201156150142440251063528378212889242722964195922540863920979458403027811995533147307618572725991644023141534424708393591231947762883724392002662208350212052913047281200129640041625868309588280302868657298711901152880047085166317633460926236985342218198635895968065899334122017927156026770559195299764603990459038734953517669843180257108869788287850388740699709977309141842769895216895733226055400376708141358784731137674028175173596633864714333610922586035166330552744640477288362462629501583863363248962463726256722192929428181685870101022640085996003106441557980334509498604941097086836664045827335385942923594279202369497178396324140269484398154774668424546658271631680846115274381213291005603794496598888173914359539140033444187813271176040219184418292468801640381415663088745352730547485874330972932554142786600287010013280151844233978567028559492441529026823822808235401092708801711689117663647741110978430575878577859093636296362398643837765310460980592436690123456439231682656743465794514915420000131284515409323681923882025295806403325240261565252009819801295463602904860333410066075846406078555908300216865157104787598142114228875363883292451905975635687508422457587683050095890579811549699511975255785012794705780412382967628499605792162545216424798081692445886100334784491921975036360644187706081439901594450848094974267398490582581175479486248207241364517881159170095321294486592845665620319581652260743202849803020306401210652164843826757918192278396957089778812338222356923479505875100944176345072999139238232005575006328935721943420604877229667702260610406815786750320208069849700799847097141158383314843709556530365153302267549971066423954878869476029462530825436277713331285741875892397985387221721568835288595713269851433158241400031493009851051138121922804120656622432921275718970112548793299264480623520823427148102492178653649834877999619659908714908858869343627078208802784360460054844844672234926073023521420654023717913206696072018590236756083130630884354579697919660258701419818121419729940468130335874361768918889374949552631496022002728454030181764366127530798378638550158921212911985829140530705417874469334769165451870624610906873733112892508874176700632611977302606152176672433732775814101201677298095946480134144217009654213287924745518017632281589771513081913264245535887420455865693398238621857942357682579780642861908493832818237387444275816592028078594591927707364177640070532967592657726991543616344300545617564016398830701517117633566502682588025649895686989001873867762413400130207589538112534231613935247360237466388862751898128855539657456555163463874264932280903606394537084355125071874740375751795547394885949693111031564377016124377713242506166404377992313569227373025512749175328569238700019687409466299761860750010780100112748593198914097231586204813622597697871203267217151021114460977969795296577776951700425276689981900951282677454933600639573439478893424600405782140660465832593811005518640073802671735153621444166807579809853712038884840758259471687224483372662900063257159124473189935018641698570351397260430548940565007375968519712795192161008368405407216767532336548434049703683342887322494554309041500247803818031997870521101593981373681177249858038176985537702183318585947652313802089912069818200329735883847827279576235005091948590779970102107371311738823954773896757381767997916831039741554083151776826975743785176381411580662507464114747655483868242895632627335186057521044839780384967554433602723365746910811233454103142296302776173728478441884375391114134647580291854146203334568490442145838778472683704355777584043790093673674592284471886190777810022759156930630706169356017668828425801399291013341699143343760086805793445738552561640044620826995383094514425771981964406745602271801727851289833839709898398817568154033603476229668439082717766097068643975464721301764029936415851511298600706928943545398138136589320416911472326875905646411015693988670664030126175835069570957538388512617525798393477127631879189600991117438323481548834806430208346812623168200809519767970005555199815493475861681812353000380396739190688266764204526648519853228756148778150879534360004858001616286893214963616757747531072782322043476781898074921656788924268722399272072153467696148330671788590458718925944574841372048947015823492443248780997423774733671510567758729105310131384294812235246867264667519459875264631522854350253294285456911005872977543297109450013064331384097664835362230564297141436408805988798418210064160892399486195031292454825846115576971922592587020514151217261422770445440495849044065844801450677462354313072395013539169987574766309164920706958806329615331841052716693846108177687192281906488056361059570857950118406832089492369750448733713955380908573039431105333041416427894768557656321573585592989125081416018839518620345619900240674815033390708671693582423802671756920495668687722427003677802522626567666279261181736246579784235313197962859006943881874620065703756493825729755839648765523558130026274993956963688665029073512467336906280220031941763952755597694082566747848338640320646091244418987718789694643495918825269786244138187716060983482183270423511807218710136639663997788993798843833707987025510206052089739662326470882005672988969788080917679364214872847727284562495755301804838266879092023919456754568344816361374939282558141376539945828235206921530119294340100151666411845615828964665534443202523467889208643337320819396138868380106222460815735249563545469087370833247985782507591194341820211959352054053301600936428113438750256052675144666258551383693053618012750013014225191037862914049523992323346846532024601868481218931524586595845721093993550773001451478905760071687507382440904114939828033678541403538085123827794120784650112904616200781651932818306531732704503518819692703156011968316584771360032429575941425373240291317949544220496024290063008012193522024243947188243137374825744078841736816237976366233771633416410935163884353984393062834793557969484699275831275127470843972069928858765005299805964199459590708673845262460960609919334043965443626872008445109823495850831701411555274839598598684465906383732705623689906459024198212128134610495380776236635322548454306826329545508792894587744402156678596067687625702541990768540284745227932301502995388556493274737006878457321761858415116270612408115547374156833191011393946327932059848751541426171964273775470021389608031666557345307901967337970252844858721262468703555466669128822422118022195761760001339110180397311218603795842205918172911089182658892368894750168044641814651516667796301322840077354329562435967492134723675078831217295069324754176760170329368223199284158418917136652220648524102485142546163234129593720760794909973862602019779704133366821317582534182900363099038767361455280598128276604879349057465372622332206479276937649486108986823512391120031078321626016593792931675115923919764949594072913602687801522658270535205296165549825922437179485818335347400199940502728492628461737928435857595282067985639048439701468741300832094637358643440053932973007397630060183636921279250564126320190905227165613132519468252517956931155383545818788217566158159763483675619201483501174691476221018348068581648716560376534323719542696036073200784520921736881315329942795350076309736062638474852165760778137116327230358777723503546763446306779592052341914011698465134647903554905082652265546586807605899937005423340213642808769264045389193504745220080950780943085701610272177048642700029410736109614238861131828590905372672620100426510819206660705600664097723478953756918386762154349737040402525033411172145008576900103740142766392114388887365449367094071906256649568222996514883649944266871606643318221612516475653556419434201117213682135436216371220620236732171268245497306640319727092661810887730465634138880746811682471382357004730923620092564747960478564264921448117541995114278668213276203884033857757901687785342039988624073023342537399933996727540308412724913420590845862485507047815535409622922058778617220610077817553959244058919132259474202329423313146402230624412802858250706986409195618177021492470128582496437625276968891813521758713856261481562172607406645479815052600393381561864858434091754493190421335214179843155260874010780735810016117071880522040816439228598315967656878427023462151878987496704154799290565427783096665370279271987867543895790632391560554740603502118650773438649244909058556822799055025791254835864172094791680692714002068797581866711669210937665823173478302793765206883918392828838448575022733073364999408761645713054134501769570648851984625932911824043146621457745532629534879435835151263210087279734821615044712712538729957954177651276273535148660140347594219771013752161675035052186824709966453111015695901222306452787651846293102950595195918484575889840330760271912327811609177788028056935117814027758255094361912807633226985341382185174834855839663395123629043664281832333867276251884535647828635456119167864755820274959134608845400850017903242243104523420678285093193783168779758104643673065101580184130752048814278330949528145956839291373187286953309418998476324958275842868240907312087418583041049211682161899633636643782526051411565217360288187482473991436714715799564754786686093022741068814138201938635667812878023699007930915356767596008269353794986474248265007330547348151482101719572373227671416648126837491318508678652284859506912633707068233255507293154650184940622075753925453479937686953009925698286682202912900223914004355415085843728237278832869488313695121617562258675241335125907004959695053127280757505700396452007227875215521390957693547880823936363288199205337065201711329950722384499489471296293220444126358001575395208579916624937454351438676232153499272966766804515130220620393529412239787239953645199968276882943803694860911725188928351162240299037640352417187954622779841160298690138503713039642793253873191243497987172140037497787705570788119378033913036473295569884865401227674162012021442609032770002006452232262066986216601658967449174738008007650290781804517743232760554217372651008983662319439412378887508830972554751166444221874789387354915557814067926047505508578615952927559274922654507150792505502352951376567580178315198066118156376821038913540704119678472030719284046198561840212048143058234828520901246103275284350463872722592728081098508437883262971058268662649437252503722842466292240271513812147654835415126209285688915456918376944728100653450349525246962693166985800247185226524879678558654831552370893839836482594752495789102727132043288667792034739811189660649096894208425360668982036218674637957056505646433527512246022314853463471455647102558452661222703692822497683413815446334986179743775395587176879472835328866284765635321445703617671284322247524071296175923637655940724935711031815595100569036080259382721398371969457624108295907829095045600875327738122985223040603164632214293363655090661685324730555800958081986677528382113728220393908911981253621182754247355255575003081199477869327017410508956243352234656394924216136626619625188951760668876776153262882054710544178286003087536222503765541036137277820879555929813613498949865470100995048048858748609793359869146191445916062476695651713807535050225898992621205687770802333766540970472444603575783490251911201800827527813093271445734495382777213177818037243545672436632069868291472590237557917693727636953096512712808961691408377403682971387465809912055868861078209489354384953001170752993961141202197060351174883891593396131459442639897625716825957183828506484028245529862420197597172129082752834941032176674367435458269087242449500625990517590880695710197263465085778518877754469073724964060841854149299929308336265167996538793956132757333446015533430642711095162981046573370818992692014970277708536680848658662598121605960463110553046619059652383478023775509153350063611331852383141003390467179572762294468171182490486917393478622430138455212571441806719686015075111226412357485175933194521122705724504677348710810000123240969378504218345384686271804980831117857720754221655242521822696806806028423191156541000776427066655773287230266899962209990739058007511740915318750225710533278445281356585463787335083177525946035550600667613522143133803339161073560366935090862633623173306015258195668059184013224422059250804414108194342990147944987431228049160640431001239731834615427340688923965592260618271204186102163758779706563908110737136263268227961599444083988305294176225199633579341844209664696319726648357247275433207787114949989167304285557106100396499323701685124943218632582581317880287910722081859064948816373722715240016356480945502555995338401091768250599193140013662857334013969166020176297013249975593656260638882474572124320284431835891630766099721312345692937579186796041953346674564972096966794254258110867022834526104095221026251034965795877418600339852021317832483595354943310285076400554633104205882045066316287963864876219762645327571787947828640298053411554476779192164038026300814786541688874597286897454748129663770556683339277365028206959475115442550557767850191789010893698276063224233528144181920098765264030537981455833741231248961815594060200751076882231539164847652627761023623574536807992621664956927829910193295180038678879399184943255807294486326295331312504847321897480895199589001973824107966447032811182880674417690730764990005523466328465742211849304633529458924053278071881721081541158001566216010763685897694285373415187665906404097010958426256130805388114579602506738612361200137483938452196868905127951089772483423131956403463610523916063670010930079337612178995912859301995396208058103178577656511351727478262150018829011674564182452330590276228364817188947440562127662902643600264636560395905603843496131512694506443813018590305113636928921471696583814265863549902746308283074349951969855637619546705458085848384139539544914047958304781992389290474737066654546214808334269992945228749336245110678818705726566795321078239812895284624102374434428982224975432502776583818736767255420559516672203892962760393036791418422162803393360385692821607228675983755604995745873988845506065257879129729162273753909608587236208422724345613901675993004683343626312561343064252633278304968271498082130314379182279705882365439313936736622926119384338240207035568120468619052151652559674179311812210750865339136601160735622795333583801286490008002251219979008025977583397948464377358218688410396376430280090506181569805001738851387915765462834784119767996152846523923215484232504773310609961461116797189531274652304227858366662731881233492011827256288219000040613168509203123494199274861920051595615494418733108751977122934673668486152040010586045526552817478790502591689326950013527712950147638614322453890758626338939843010182122369977344003908239764102072881050032483103997211267397022129426440023416110162047031509560614498007561849267933177647966557521092359463776292084642584396298269733445630745933960754103488583050447270421828690697035289271226311861071455031805935303409322742750430496649197809363946887632381351323913763151644516367899204736048783884690221165045638114007999891217526171244501223854327836926376393352930467917559366702490886505848219367668196909196403268056004317383533216129735576479091674972053979393127948606281999474194163297947124762647216116248341740090962375587724715363555411689493168967390112558861324610276504747558467185391036550172838015499874760361676361208434714033113354202928409366633947133238099823410635142254806246121364915363105217263117072308744561482299825472745039304350450611896653699884118884217795398137346517824916228374359834613214522633579159400399391760874384858396608732106231154132970430526446017642750656443101444494617358367197969786849485037612161918408097602377765736973454590765577130069639046628037973026596681538323973789194794380829906959675316394641265356039519629554967793127943328288007208099659959226932684477464034437558868926487525530060626196340810436805144940360170562667202816327076014075955136504956409109268945815968480303700981471512184981363712360202510318214831972866630185790785892374284396738396617680043669775169609957018309422425605154914680763701791513993034027968675096317774014471186821477335806224902318343795773758018110653266594376637424141588226342049090078956820479786188405681419639785758947591252870326363448263647711665979741233506917482565466581007596153125970066825981711163837754532678169415037457767809679475078584844036702986022663037390791375693447858727782739039180662758958320016339506789764800183204109579135652791375991181426022977836213748876264656315810312854534155691171738655084041114055783731344040779898822900089797447239116809323785647766095916052998117682916299338401530696527862165858215537618403606272055615957700957767295252692546929000529719395921916357941721031923102074496889889843369629952787792191812285993276162682167204870344284803685213607433379801887923327967627377153761080721715706004180931676356013207751081633891075506267455755078491632931761913516721202794670729036277044059634704669081192958579734301993198601534752747136025992947019563130937303732869776562822659259811880466003533537250064261233869063769071517769939656714621087775622773508488962521153174623811311928120056053783134596998935567128640710705633432644169042918366953678626098890005059327364885028528003134422723756246062508624336877973369297276743439390737774176745372272117218789359624549597357797527125012802040326946993899891852796775317427687205446455731698577266751334193351466912905326188536542533601347437052861577643559561627948559989986220851369320402915216205390123643951326283781177971601608923243878944888330978924592064089160459148132828095957595112102341434942070998116067537816458208065603754972657850883605260309048989586460210448256726282790052048048533617999335549926339846373332026301488249072221223652726494871476316302512657309286172341305432143070039023280508745096295073333277018795927979573022886260301573785872779613020511755618415006092393571875585834383796972793085736520984411748430739772087771666271139951735755696999568781982620631107440674272621198319112134468666117875020844709426041649804413244579200412817109283225785121057995422386045937439185549338233454940945633004655613709342557664119035374541935938269342664363002671952333843292845784161552633509037173124093476254522680968156844729334707271179314049920823430231864046896442084895132447084377143178305237112604411180563152943704826961854319821612888932064848373758765703760247033630664752023703645167382615448555580816397868690572266840072815774012435219369664954003371206239826974814313812679920394129938055553058634727746290298019042239963739009438018255875815242467509552518125134037320412969847109576661842084499483035208358197793431717479198410064391011797601122820773873508425103749181392879509653884368811048809699467199798293067493666690446211862339943936378685259072831380957600871945931440831914115730907673306065373367642746406116080427100532665217430660764319491510020992732803327610451531946147987860131014249714873146774495471232652872734095513831101326407629544132603819116595087121512324895947602518748713159962522184814391465400774614978891736994141017166148733675251283336278290440694538081376876623327048847127313300229112360702943823923783561709903075083951334791582958590407379588309041614670912537712990551831348082437480067972469952086885225298887267584417115897859423373316783205021001727410391933934490671639426822775867905038443080625426288947564737457876982210761274340697784410731054108690490594076546748911694388670743501835181073132420084298151888406647808880699136518405236286455780085186835581174840322960358245371447638547960146037268346235761047084020657023825820584433891151831455517808007604546266137136023469437681162229619144174182639085241171694873184057358572857883567904649409318548428858722503851492392312655794661892833331497286001452519524018975421761494107914247892795431542764568354136992031010314420062599466333509382502627205345002986914906244616168053040944896466430975754309958651557031330801386063574741180492479174676805970389341166708456832976994672893776952110653586088741249409123813038598602285699471181783995302472465997740190925627971649525773798821629951889705755017722930017783682574533036341948663838937877272174630413858883423885987555398053610926034381669387346038065235398857282429625914252258965360583589586047830938213078384251490230946570594213381714156121024853377956471019720089486172762066717788847989110729539892661865499442351110495811498840589094721468022810371822211918344128229195934627021030732144682705501595243557240385076465993774233647146178422024006239100548251715449398498706461204649876688525242138281781247736605754018165274523715653195812803333024932267352798899336716049162287383643370587912038585734943275037086480056784056724558066408071302119469671193223207401366408463507363418556265237177209772262032865096586895496359118991349405804233598233286160609823235538307255530581571842139151928059791895557796424712287242871281907545794291351444631456835815227097122694049237994404805760065700360343220903281619956160845420254482756723736424053381310383207816210295401963560063517268402154620124289213498546202138471293324685384488382989494507598504410669052026366502281328934917217741690703897806942775382095475553847997863187196833534923708700829928645474906509862780560281431487719413887091631482622215485485314680648459347919155586021358446333439844864636001471917873294509763811571259933970948702157128696305530653708951566372107215362312450067088265276263223824471172215366770479133744522595021167069721617483639626592749545942640855299040939361149405580360759019924678731280417919529151846848202230058295743438065252809735584983064324771444735354320088242743911323031443516075726648751175984821044061312531771446065974027579121659434306362067023588414158350762364871590806915372063165545898720015990676557404914892009288548109909469647946865447230569669710211896798383839866438464133816422179779168053234365926889176591301574156801054963873078960814051903653072149071447445800055776372494374073506452192612254156967054977734044937809770770696599709289916024853247984915523084461496048067268187084739824249371762838972479307552865701968706534318987415828145491573008738623712587807020501574579874104714614860988252473132519412782279432456010647538908815113449119483847278408194599716779166943027017823374925592339361479427105923438355194255119908546811842833390410112469216511728517699328981075396966513367245173249133169833317251167665033392766536892029748127439579166838842139813784897335990804867887476563346435389536964629306404504341224623292181254536888807511252779505893466208586074788948193310794730653081947969276696171619488329109286511173108308698072366757645835449684344422412653518503676761821152242648206842216640274731013920372361952671613363145305330009178756384809680502219650278007487485564240879721900601881039629682974733037178603636683317127431126491676324017349198414702994678737845681275001966019471801950086374304960526159129520860003139924827732159510742607098536986848400047500288163566518841657556800583885416756277821814043248289539769872267455146592871720022661418930016353411124009458369155246843866863032715951422753070824181516785288525004393761931057590084993536089794095737559333880106826991322911973251964714912853291341891282595306869331914779789620420278634108899603868015262225109124475667222706945611177396717856661505575693694164757538244864835093531505303623905742116281990244580797502306829740931774899781476586058866623841740704858673008146836294979317987052089061702118668582346489641486179019732177033685752949834929277584893002046428697286225297326104665224362054413158146393281483860562274127493537610483853257390174192293002562104739954655050634115438912013485571018623448020930096018709434459743817393186269011149719834956197788522683063593032099806159175445849940572188478841228236172140663898584470057158332113806816941310696555139527472511326056960214351231472620916205761617393934501955063221619494549033037604006242794408346074234731041362837299804820333467308242152010186288631359628187717788265211427052229686001841307485566809471550963885346214826791318761626420324590851157124855378305151395730597595013639906955465092788773695527025373018451439763592036080060656229257552892905800677678676970386972385409929921471058203202536779762965734997739567078524410631948400257810861573105848150906461442907406378931015422364768749489214514839560614520632112382616659120410786069333974686847631189093964907971947924399399259010735660677221893704150715228873551802265879328529322364379719923108180815597228913219561226678072367277261989211906326307325505424863359713105413595139237277746410089977073652265772684277789779063627065821246417919198860109098764478311032213741700987344750326168490783409206657179044533787443040089436519966115577419719779160884461303765232096961651163620598286580153086967788274470947282868556734591342088228629249259443414186175786238904883504013367795270731050727217149982954475347712241383410761789152064929467948374460086541889892440667870183653090732236975602893980839753725779170004954391319812922723277698872575507570625186241818739765727084030761635077292504192121650908875147053405458071384517604646582841252186225697864332758546621027602186050301747035402978698430616803073685882450641059895179262357620246066809023100815085642935406672372372511420288965593471250638852331991464658678404037807339566654450078761186728685267355570451994187442553661960248633988044159257553793023104076975731983695231922173361257313029170465725004840503872073731124224386064161809016826953121164709924210869146384836474643067048826195096064880813584164946988781310871616105809303956638468790376437777728135910356729773848676493655609349212487195964671722527761287494250453367216284902303914398505156191235560963732717903240008821504380118708362432766574231045843225527963256056822240749088632090256994062781479700729140302527062734363561562884761306216718164757428537393908844864113475701639690872269105960824342023062576808637940105349643047225869273753439721359429120771407897172067667729361192087575482268125484630893909494545512402883958757287167582504823703281499957609569346974488667057497347210763139153253553508572696166371553054149935108483755701937685856089081443545767401327226692078300150493424069800605762284085797300146539700080642651182151983436874904961965226401315296984276538709996791844171725003315601492914902523132248105688374726327667722459246199602463441498208152183958936790138327533716342642052012116524260700039978773224098208060791213401115582916576120210899441246682853429069255782600745837340745946267004094597398056960189842446160982311025993140533550524023886326851283951838191322067915045218916919343788980553137771948481609721524148061064741942425131607890540129492266821854756723920066265305252959315294164745175279081296023620884196490989450336969615599140183885642731305766501289103897549227031353533745271356857852268245248994183790565638997018279795222537014012401827434432702978628262937279370099590496105979058160125750769601869487319498265956186874099315767038199279165874742709663261106101717012821961403709213700717440067240982063235210225636294866502579817950033371052933334174041291849277140449736898049295377394221338454367227411936147682728301179160738225818071988267741669224512194692104632092667940553489633530675454033458368111492100422793606941358065439436565355244442908343986226818931402958782688282926005184613963377450600358312152557879093521295599792014588360993716364823758374462384267574359204999119834042503842754910559581238656243317722522799321415813980745370749085805779972611002088685580348830580122355403696750970376335364155915988525011332720888961612239434086430956549968264387041623700513229908125201341801573944683546047961113504524269673536686873019853390533798793722164739372891707915651735334521896796110271799605630126408584959818892032192573334584620846250402527759427210282701089453797178386021828453490218152131345565744454417672958577131121032574431893973349374730087526261596497823289857184660258977907630563238002200222598418929309546529981433000702131337729856295693127448883870693881317623792036373430831279956667906929516641916231673411471942289602915378393143397570808529121513962931672494950683003738587285852545712528983590695736008789196147391531411401476158161634808584241524909771612257446778716460338662976019369634286393256097024924892358967187218244031348214112163670660733513316642235689171691108863765833515999770448498258175373034409328832070724917129489137020355063965240805618792033569773508476181105248220589416172414011629493160234653911943471468041553969796872491615804483616781403628274336945100982749063040416615385822372960210007311923841436618940299161641729193001531606046257308760782094759599352938767076284194921852676944928044787733325566191258337724973274327583209633361705784701412117006009986191402296528061208704753944069131322925603554878344754046843639091251154787343612112763739583733125165602737997734208490232693504854816998068839829960991619238893101126554473261461972410737472006373075024609652146833378197165838401053780582601674717363623013413553105634774861530388468735067738955960332162837520046405235856039135726915673890422299040870834512769807625410275225792733444015605556608564440560932430777881825454220413554500990911058448541299215245022177710512871072560349854303092127103799656849344265537030620865973293071315625085803560051136854978476364389835602869066104144512957375131544482825713492320135715467575444748671566944136827991223366229055702514174409393327223953168140607280311242509766973228253843346462000023536726516782060044191911016170989838504023119033824686565677047170837750338428871468847757080660338529571480348497941337581323530496158703194396168135804060046943017943153245175688932719044496619107142610147769050570504336229108522681364713561913403892690751204975001914206110956484794306896827986376168498329848706059441268096327545550536308869376939625079698799646702386081837794074449363166394403715589865436291665335622218502141434932048901891539880724577990342650862476841534633194760587746638033996746386112045690618743132966680875195873852240965998984523185013217182125964566365350212984442967787886024813728045119322647266975775732745839226823376960600263769945717978722306050332849039224030188585210502619677400325137397128778450913300191860370464680106643691501835404537773912507180673688038584536305742085216398604481503831822844288783227819962406963167878882133004467160807390771137565681522387357015392935249690591896832561910521548001221316862568056500232844833411068036080101375444118332399949241674035176892086094213714706670046133944600306030536554889809784106986318056049810753774590896003267713476504595927817915460200144286358267596542814054486825810606603305275643578811754201636648645686717122398129867829778302840179311338588240410304156943349018376687943243014251031820272646309437334176460904114597176463363223317915183371149007756371822666490522126685209267743327791584477854208327973279066603106822178575910457197135752446207275810504638468566502743386661605408947118270454862249324738487442986246461843158454330690470166738157582007494294819536676904440731428220872345379309538311893323318475949152425456185401118043084697056562786700389924431038282100288881815448865405578035270422226498008156942054588108694263697369389569197832817291760234574590278506927331492183079305650181640761274976791896754002247026280837917497787748658417905069829036728305481414481473913597054176731055137925433204454848455244077177799109860297274515147011965798580644874827714599557380332524467315823509551636079414106443120138477493967946001972350763606905728184782987465617320624310548475398411794798510328709984332002432527492506325870756076656685938301489642128917861674286110543227178370948027362380352959691928495039472758132465657152400726921297711131357626887084866962133182255746208558526790882720786538551201702372303367043173721292360860768486656912752602256690132754774445732656962840717727809527500460213927901265176193487536361645119752691530237006112429103133760984755080409696458851939147313109741367236407538996553712191834345700601451674313532794405674920733944154485254104172261948545037929131741183734306736374286665062935358369769873168862502111852836644151196831370427104255186447674208479491181768881564209674235709200601974774303460353801701437236756658785397828915848835349522845391416829427464793481203672684495448859656199604470282326805145952618808287422653888449080590148711306257468339850096171445900499014759221645526714141808595485961726832573759349085249837726235121992126032281239322729598057388013475692977050404592937849042599932491330478850986421369941258601145034646995810104853207192557310600510416701080266486307451369056419961126666356623618533388190594832525983144277455212116636454566634139800104096936923475632583248280554701661130396337846919593855208592496869981433418462495752572465350023697646930469770958767389270918353464996455907258848489286835526303135121452741762979568726379926112057883930630037899731404749359440862372962780414544885549025535608490028670074062892153439717544214490175402512199346067099217240674638680020583549886616327523018042495394216246817375113764317032179555493717310975119981976524040476666819162400353553482159485276686649849053426188413429835919790213492494316077996061153864076334133365141220507115054550446323888526991111088067335233371987376420210867343801931038445992931441148671856015582116214454321831685318407276311527108243135260630602866359603263782635330351033727086037613686992107806034802995289044768468208417490432056902990325557038372523446486550645707018703185374546136206926544244184894469796889689076848887882284344487934745395646674990209425848686571910973348666707314430333861158672594754663743460428295511357538717106184841153609210476683836107341210717913107356014661552798500330644187035636695828627381504415729404145237648430897100759144271396651701458971138217558948474930461495662579178374758056636597720748628450264194512311255264919123266870989437962329152383810005345843546510593000490537289099527021074601163109788278739789452513793025614950762798695051269389507547348479058911572378559888612061448887637162174980767904630869870847453978294500235164436977858602063237260377055743536887337984701267885700726123598511716224704318545507616321581610307016014457688412487985881941006108552565935879138166645687838247242814750134112442492222977771742502852832826559627788222701629620544683225208785149780501375797587872457245587968712508839649230468240986317265839026635246167351073210598669406004346540449094131422307768431469729303646325611835775897417513084957268100055435251342171243123963473451741785137951631798396608473715439482793585598253942104180602538252157091585470442919947261271205522380977052645691480831568096753346201173212272651548645803324166755511766724747788618942462453356355691062005026042361052752607210655029518030670822405512098556569151219833897315845580655718735960555305553896819784053756258633088100730120081111216142750385263027593414488143035646623995519092193965786462050953772722783360714322351328902804420273426498624824324467076449714902971105483077552792914059754588312300257566984195595888656245169077707179775136371026247390587089666241140731437807443490722928028159940901111971405485640996540677223666430507238166498998088414235653329315646130030189640795692537083522132177262959429503619927887206165707582226755389763950575584110507540196059731341107364306430157660541520792290393492123313477278930101123764768336114283070665394598006260342205449706801320255669463874958489585418941075847055014553603038055114331479013874814240770284836245440475145012488948262432509770440344430520551448564141275147294235477877581855609528959175462444856799182664563864428626130384430653111571998126812577142926035161902073499808612689243562420839809813629053150101106499416870788473665738495607209963867866374291055978995041399130329200691867180491719352432346924833480389319609503653127742824775331247691710794680392668241181146795289564828523915041083785302073789470285301630204649622251975511918845601003377686810716593362983964831839616047291055709766717920530212483512368567152951402311206388303135303821409699174103820075308376545126723710340761663498878061040092832551132098756613553413124496109063503352896989339921516865228189630846842666722388153353849983624778785766992488910355743956449314493803358815400643817861945647110891365046086137734990282875888359486218034829540945316471508259749453309768431943857652972613854307330633889017368143649540579757706585173828712821379834356763845337129382297154535610526831003392162503686011820884481760448046245514638470100638649358915305528264833133797023064888090742146288206425823506904447041788906009198169958208026147851880879824283285434520652925619964378550877119141971470366422585717301194394932672512800859204234953781920262562050696754779986570690222520871928164251063724398037870194117047226055893234022310088900739073858774864280931766319241530194430579526892369857493165465745651829394802132050888437465601758429858633371806023690152853560058069686834957242485834849252960040724044562575361771405410803264949208886333073069558125730933953515444257784809431844720633154957001364535960938002425986046053070195808090347719702643312415499907750973565800244919921329360175678774065805174641215754232923505395377227567247727826702990366289426753334889629293625106032167776471800685672599480201337186718547860225819568227235263515546487943031978176962108016476418334548799853767690290941471873662975853869491501650689526495754752413977216081259936767175477066821473789208164682257735156920597195969721454543452691378997360520101061165723158849553104476460818215402789232639669805756001190808756021003043499774415342955792621415370591712891456093446646368606417382490437948247416664251022202619585623145819318338300468140945575539743635493400010057448999373662509618044777718495263293059469793229836830697428184469773254527362922815947755717907713893899109994714491625784572710453116536993899502641855346720564779621831978139869946591929872572133435206820381198612024151998869958797052780368804969357301728554364319722377895978913464917745342088859365277331517050855408452623709562630725271443927728752664179376036559612713864016461171865350901482956175874824876187050113807998530746159059348287312101096326978622687682018861698604838469022177875655568186231654323112113479202144526607325781866927466826038076999030540087178110800081522961663491241069914648180879271455314382865859911628433956863770632033388115859043646370341478337930519247604154050719121713606031762293121512061204003036038558852543674475568115672843223703445604313887473029695124335234721678164817177684023417660113174425798146449014593756561055690755066045821077307627874613494583842814171119289882115908720549124503813992459619359604959721746707455704078292994970908531004949612464685731877978753659150524551611570332874044149742219600437315342370171937127043193541923192115153191642306277009363628981231418860002384480876696040739934906173473888031519216113774572935778291318680211027484237087036855858693210053679849226887148373831637089746120846112651366170222392756710987106388069222342924561484233865195215537910688984640151536603771963200037935533543873597558323480912375345423330313013953945232194755300480579278409256635701931835821405536700423868883880695128151328189913694035106436739273075888328954398848471261998733344139772828821043659486730795070952551353574948169595575062613683094917486628106643258585102719904085084341331809382336407739837129840069223128602789460725278605936093959134780238668158892664187043207165442152530463334016796463708062232335170981821089627011659091121040146538381811477937006595487300485987704382371169528628774646658585014421694797956286319175805454551901841403665081814248188218427540868039665088764340386987674932197381457445798892736613574826224012075074169807765673666200469209573435357922435597992310954577012447607784202158262048635397127205217582427645161883132917063863031692280357695179119289362377611837924889813744768312090226756063840227896520104753702662378055482881426583236441315799666291633178435769433674302533746073122243454884922858223583692516333429465332570819687448660542635297528138120777090702943837705818959269152793304227779056900155268901774904652234037440353101121105328304364395252434480651885996392305355446474858449519809552951781961733650540731476835066181548183010454408914107879590290653685135538884065390773849282614582281911595962755549550753073618452541003115950394751208952805498204029333225725833807522361559411795209330831767542729587566803527594336389013200128020607805859657872511703272141977824608474924735622621018811985900791371355880477396405216078810144747415338415248533816076267863670098999698446001875560985380417758223789885129018009958504942476404879936862389156499329213389453721811668929909567559033086451399540892450758031075127516833329569393900072677083934763800261246994098189632690430391275152344776157191846296946349811506241197625790836326796232422415971225773237742149341120141623883140262365635458711941735945319997007213355600764038429014133630580249780017304703514231974958802248417752095781884497910333915631268183407385362482950965550523673348257742113844873297450436489253782388839529506465805794827390945478344664978264663806918197864756192260644449350393741383751873026737293811600124311139321296645875801172677090924215988364213866501034117202504653549393842261078813834899485252052264195153168236477592536115586026760843132939549803141293485245204271379985774285268348869619217062577152996089474968612346490308873675328853759410879793879041895099938493477248474568084037890666276359308860724688973011089320196996963781437290710760098532861438046926291646427304406288189812920118081486824387849615388568128973590970353077089145946112966640278005485877573729283080392660625992752773263352172644307045463573643787186450730271220670445700993189626319920816355641422118969436051932357727504350431399614570917711300584459155604180126698956388222019484476647421583095560193695688247210559520734690462136250603702909285194746333593706792778459604708742855102523046702054251000184452211843043756971748354072054704887126148140063048578417520820576780714220087464040387135523243083850920891590405829933737779833786846060008774863636316400931323007835908649558048711868366989906146356528911116076129017085176972084774269603067270340320306636868844126459527124005272673555872960565638321476713191988086300706248514743303127205922153186468027142045572046603157485774965082568619493660286236287019778467975697316472018268837020122384721102446062033846735391594655881737218741967566903476579230406089112762624101997861661758335885648483666841132928140726682559189123287585671840391972812958528624967654758328308275566588683082243953127288759390429958120453968812012747562158751415436332118570181817166579061205453147536672947932254911481975996980807160553628953185099973448149730158078357925151236591519836749156062884482238441436937050160732859001425487070185477043259834311710377112654337546123817469539159405490148404110908435520993991396567709914935836345123089688958968187962520660804382117352351580605922974439168469655044601832580881367474212819740028053701210996169541214172596947958796480492290124756865252766851266237273324069350834388937362302618422443450247921679247740916954139098016407280446220370323217178679970490978869990838997378872230624191663796461699067734270223597975090543085420983529404981201268491002420495229172632749143302503596050380855600609742826802690245897206684924577576675055250946156898368078740277830468286574750376014185933285311303805173212712925759794074731557952167744831967806972441307698035655118678274642688824753140954151985884233050045602338020991528669206620071258822614510999024990429511427316512878910835219819742256202786610402201319680382004948424427432185624045961216644364188662483758194883558711382452912132193578629177885526719847885871163843266403175848299468378614836397216224142188144535634709806685223743351302048689004863386899119752001657703935485948186216631298916604415817669094599058744817272050006186385072577078052919402165836423339207963671919668870713423948531534718083184263212399582374588141267261686039648604694602376068984730201575552315807017184584871308190454468998228525086352700113098917187747533085637248235848802730138226275839735005466113661838334463580297923458903319583790129475469092650889555473639115932919141783903819860955040369097389738071883239655171978557880550618989037539034751052196941289492815150633158809770403222317524645404926020436250588774269450594118769547267020444562722230254114201712085889121910249354063361621992755053121812747522628474780871762679499125914296509564406604038698092272069586074861599757753457101695212179986972407062955309868083093610536530907808498669339014610344211076119470000175561521028821623020219798649794268177278977023330182827956257203034742002391962617934963651912007651575374210065142643698439825274955565932793280904334404675153099319639047558359676769636830613085627008543561910208994642315625909883300230606766434430680726642086413388937939754129066471037761491055732495843505515904132178362397822121437756321692699518636353678740127424463206448034151066690628154739015219215136236087001014387542742938304513329121084296191209957092091797523086094792935162226521595147528558901577830657306026209689803854789009643073792192243601825081539850284731677973450483358229527380529573879895135985658206212258079834223158283836422268470267050445799660210568936110484475581097636066852139479867780566640047129797885027668385868219766561592270099204838231393211472719446146797252339093509542648539535540528352572199040576405712855569636618939535712882179258890247044326489574573826995691754765473700077672105204749532469866148079330401270570544284952798046142849835527897201982421876573636898762067045028944179911533885036716972434490037938096571465132428795626329444261782946554507248221247821480726087596241660932736671063680549629772833434606570414472434668295336813596034033541788681533490124099233391713163095344422770469377334879005386323400920921514212695197251931935452590038139906382557867074677958451102294193713450692158115102270732499649620290729937420093152637068888320532151279773792035879111531014761271863643413709073200131291765797659903051345489591532636088798878823720695503319706531074205225545143526757570522996471478468643680727748900367063054020768043684516346055301413220010036171434730424813037112849682983136356120076204560106614923028251608225009995670780634699092156667981356010852909936766484551665475788359006678501575601421634045182604720937930822615696061496977182019034617755231354787811845899693643423906440149888762102690417033405887688569338659096454521148231288298824150839699041957402952803166651956385389836974576132673987708683433305803213243994054161726735082701648701797951100205578949340194215982569187130957894031520529953303918335519533132080951779550790223673323560133898517424077637626782589582792291678035327197881732982333242384062406522818111205280314691434177227806866254028603001268094337069906229272263460317148377212886733247589008679994013075611120391164862807506639823703333241702396627907476956158976713994784854321529327716964656087368532775508876903645310053706747679721742150846628642246793424893852161753177555414567542964331070267023476006438945677701415098441602574938286190094412923073611758825612534744418629937735472013153063985059217378968275819169128498109960347028877990130223261265303986780163487030808854226500867693614027082758794861031404335838665971648096759840427042522106421253534504256858399089750692304161997607097471394616931695234674771015242199656194401869027246332971983679559696125059273295401071891116222397306754267237437343404469450446306041913740749231349435674594646509328720589264101458851868007079076185255309829932411124063628396341864212817587775056233051072965907630919594188484396663347443537294564764314619251909963313167696080385540652098904830809468192684317862617029350985598024603934438016233373931853800665499570018297430130201389930931001714093955519905944270749670416186432758639970989555221872539402955777077127344616246160815158271782006169775554022584930330124351170746943276670811917323821763332550532560760815661420120485648505385013042648304464923435903561737476627456723156964780018596838780309157625908043592397265426376408591007051489500345258780955683352825852243015202957824179775079117619453384523590405271707985813363135373130826117831540298117984312089306433540040418997430182748819237307916857170038719298017828489758036627795775715455936275217920204394287447438290031133924722778311485548991330804351218199987883974137640994411614954831986626312687938505433265154891785269106206964216395689384614763922904989039741106140387425837107823849867012924334811495649466514525852042647040418174999794353104278576149384720583499732846940674575213501016962883478480768198941292161616208037279563227847145896132451440632775213487666685615115500145544253323267241407982799947479995931565834285916345407163467504736912230294055896461724862217319184227196139681250866419958567378346791317788907273016659768702130680794234671627743766680014198412998149894983011419458657512985134519014099557533134931814163574578502930960304336332546141259511905858053416434288261206229825096536261798821480695203045232100284011822677946986478123237157659921876034157266477658828459632156996420879667024223652398750355716909114567169297208319750106579443377388228328110874995644744381619772700659887737718116864105765355913565446795938069486730221926595152186910262847377448603620674801494508990778168757264081330544194397593649257643817808601034310416611194562791470845258808064717505781577003378038976705103385510758365964619157053655047905438122260151854381740001789894198604801605245004298846929782454962751458303081858784034038660592333977904207115749663918707212451214047229447764539847810600265518313787895864671574308250156106323033817026341467816206385871172625622275607191279703934035477583957962407537034444569025610926505566869707998698989204456408568244543701123980707448190305261948515234770064109809320671730636169541965722278874791139737745539950584078757266595329260728197049739291564162893939285655420486419827823253450398220695722094519579506161359454834349980435682364212582483899259260802971404059120587332783775138608345658818399758161275502870036371168483840496381937419948553106799543259330620991937363710461933736199675006645594193537840787375174895831319107607703038708118268436953280846901875000258529690031249528002451186942284313209629339878107988322919775818735527108426207050836100220018142371091258991763026135782159894226499378078014713499524628594791883036675565127361718305409696069579015366735639161596848752489517532223045606730680619812896005328751467501176774623431698197695837483303830462662966680179400275677808027889408192327361220603930410019492794981316162039951121889996231497340393451013750087517196974472471958180209639549091923973860917304264280412464415230608678311383846394309565000478630067326786873695108110181309982140712760647523651753892408846420491643762961741360763468988739097679108704337875246638772136968950266637904588069935877953249913109684715506994493715960423205431972494880394938260618295915424312153759472040689934027866067010037261325506624921288910359266248903572893357085650141626531019549191993974812373186883564692129612670905476049142645809961342960898904325024153624354005783721336291737278658300451781795044347264648547779131045542279108433200872709691881334804686355609009372455432949249108732820180442491102082273355552502043911647005121086737767497689707909571747661416116511279796190820539818407390462881064879027118956234630957481537916456861388209467849918320528488271379944680200773151732489596091214601885853659164687482520777064540999041310520194422303571648627389275233169019815983867453180675356434168067706502571958702811101859349420497343835913777253512524404421215006585480437051975696624190559619610436453061852080785053913190690968653306832924681953649843960297813107214457132279477124168315965881226369679546288579358719346256371795323114418215770225587843520466501826983919169026551553928720741913557235450242841308666983191951304694508808202633120783337016427504637106398036086394200994075118399958740723783124853861466807167328870943800917967773727161775126522404998871687403912167428360256975867900318053437410776216057866513226201134620595044076022211754024148840423117939108562116694878527394717253990958395880239680276620447507288895404935838151708392455340643052519248362231585193500582321597299843538744782755636441985859357658061209605730800768958399052439072450137099919864170153735977255258943482804631245901744303349577060913645629925408820701831275987469336618862576824136059050038722479379305465691643580921812949122823384796994055352943465305906025249515590605019801926946417359855530012688150325615289643157608624395124087873544485650802028998819306012512176995124085963931677954538806882327927107924700091294361071365746496305691901437359247808850814629891464058780918717364399931248411647838016092057669520437745524555496866114775934071695172609159875845469739227440235960777416488417387546590562823426922102116148434152476358875251129496106425619660797580740878657459189232346070709980364782668707491353945923820053133924276719759392508326018198981606017956746558262250446330846124052593860006456705397342637650826171566559156013906783344258023465615606555413637364628957456206278956859615187776266703076809256091851598726626717082982363421314217120944290153628883293191641948937840275818408987751775408842382643197200974727912690329590961219921185647767251502776128318082777655699247957110563612695666822847070294607792195445288706012436322545106227495884774692056373633435755320932636866368126033161272416157277541765108409411923406773254235041671006101486260940970726009167959945378823713604453519424703436087309045607371672262009066315981315115330407618367983340558766533050340302414839911604770158406061739759243089286610978009726442184652564399778318925201735134833306891468827557330415233993788329833965583603438500141849817835903827603532757705643896530890243565234498582978201635829345125369995087002530837377254197395852332418507560719009155964357674059721818164440534155251956376592320931330047925489008032434107662385650787005755016011212466120808965738181847757893281587307304372748293839990581644809396319301791097569941364218144520143261063442833947026589800251019592387106378882979289436760557749378642738452552024263015115459555729451548873130035606181947644230391035473308351562271495828650803666802881567467154445688668035940645729712132068736011958772200856777326305271578916607455232412855824929848114614422437773567900882391678688834805526673568819438588173454242633953552296239736195141539755756085994906716587539682091691791003672423216142756776224573986818267996431437004709305830592958633423442050451340498689525593986501207277573435359098166770083396897517868365362846867694944813613374475996881841882265173674423438000555230799352524544502431901789733796353523019326899879021860395163324658100417111960537424855669593131483943165121057574500236152870398763204689695342501704590017775954353292848985505039048486150187965974564531604905832564215572533973367138021096277720697900840750486587786765264172516848100979824919112545058693318768147625565668948692201220035004431118027067924767212602760770069236636847467829474202940582576567280838923911683069301917029580403276407381014985476549305297405722342774383900452810007009502652772129529613974415547673382121726550679517806087461062402017032442502619278830850683907752535618802602507669857910380677160229987488512689685557201590635655661190225150688203038579631848952201651546620702597414752656154074986323470320084885209395917554042016140129106949866798232381920105073487559094167196623232255782207452461775706835643197402951066098878064903093504976808046248512233104669044701896741590997467495162641123897923412313690965521516582641262275209866149495820327670849596990656776370736935098312446946850357411190270618751082972323295664139362825220151834752096255074543960446460316192276971595671731111917152732659884254747043507233893042874460210737079600775431289049668185512077262054044106566877749089370528222304728847705162695009969448029825550774408484623594150231196136209865526483556456872544720518428709250006395664467280500013034976184832903637839336798739624741066849816647678823076232057976630295582028888298854529913392078488262604834062958582963196923224965986836777531833110079054255950813631384448891432024826211867631925143918035516070377518172060606089128292685677230463741941561408601173563734150469858895903281468519915929755010133142588166349799177363886436080360263214982757774426748758236862895414930522456158224409873376568698273982894518388679624247205185473688471157834456894042286847289296990254881319636365705285455571936043931260644210490885677431130456168882565770297398209095245400273764879796694475864544254845270350306013127018819667280404491238743843037580932337408582396608039345010816356981511483998808468471970924020821129996187251908122856172671831635445521316670921488052578669593720156990186674962635435311591571381275005950003029030627933064859411006149833443511916443033701737650891131830398673380309060469885847186161165374560960944140326576254683597005705228360241354660070917961748258840834202926372548332106640597492783601830602672964212543562047385877353471736677037353244558382864905921025425108797303129718625016910616284827126126645467639456556266742069872328960043227172287976367656367824049841656007686560257675412558353226191820880998583460304544193388484006427016710028969607436220118583228144299142812734885248411900864150529322884617075946624489437875410915929773931713315025605238477048079183204173128212773480191203546707401781103906046063028032844557301381767046303179084504732235673505330761821678009683116179512155532637466706043753874224613109070369387503297782757947885141465618931425357372045211439737859088702709469210385411802644782176433122930635388084140840166979583966778836939323440068251736551342443166511137218022394420839949020037453864275815547300737983915817044636747116595946060388921790092755178849378429727674961612485162352127865714281447687196323077195802286622541076253732466092510680748214781113374900045412154935947522915123646552840033654969594634945646862710103266594741712514724963116031431681667133324408252605455830700063258751629598001771079675702749091201012564955544469120316553181724502075457367272622829152082780018379690875421625829485271472214837717261833399743743404752328646827906839940905158168631942523938400689838857637845621868597068940399067054454946689306257612846226628734293033032668973712806586324546374268949276224827751249806386814921512832007443473757174115201368756617148670879508748541340370350973010490729368016321597135997794424378259993412247272984653123717503183407587934649442893188636796633692195802527527314018213010245030637408225845651372138292084709679190460954552833843682705742563163019734170985768586151037934265172785722543727015294615651569818532494327597007022088158049068758620689796814501178988834114499747459125248605378008461263489016564878020831499132627717517852023527060388851655291500193753517225221538416393900059870313615135441628414532635027896857223706269685343957134701131303514281409596878073115087734579890045157062363737336086422485560788267037201258172931766847759213502008751980481964034057389538785683720269492525955337019042416743172686518832028606548895070356825906682262380925830352928322919004002796229304661626601481252500935693971221793454645455699334250063196353478231800886719727858025146040849101882670564753614315156121368070122963138339225466337401698826205592437129466790096542368906753081575961420862670326140525956885241256137926202688267165692065424157074501533305212156884254703590569639518983888170608827126082227252098925599930624811799917796879911582782359235694634625928321735689234912237702453999087946309143669907409998227822249029985911076642860003456622814151830263245190545490399559272051478012824714385119393038579530093909997975314148680463408732914954546939942084451398494893404053693722186868746066966822534268709121200008456581437126119508794709017002683334735793523238641647231563271149493907224000777585980415062255177480276740467866447966119157982406218178535429631251431780485455696399566136531968412034175207958667700187693946365358480470846559082738414589317346003697226482598075264752539364347472569426086375172116786985466413607032552633342620025411657731294734425289760246495237907069571441180736168633279264171300593905334911504872948174963860457403434303063212619010750638130285446728063184791618347564040031148085020066524163788621631722992345420817849343021732654282905574303833104528763328417602758056253675661010239847215910357228083458187635058705710346424240854179939973994974294560589325045693523563331654224413097762642143329507604939045628176185397201702867176043032509897638350800540898404867595752534553496003579989179366305657719918860710262714550187011105694902599565516016580986657590822286967866268101801614147459020118871976408957892350229870088525610789310905258433834438005573552465965284501781053544493472899100027656873372372798039845140222941367616598564613747961298355495841536033863703399616840874025638875288909778775861271276769252327808105640807864473341650608521369546995449896728238281684007699232535297431596645085074688392981470587411796281023431123157341231005754242538355677690904921348900545343679656731406542165989262937616043352869203377094421312802253232476369098594234190642651476364234148574864341306496656800253825676830459701963670169954341311049155011425366855064580443511953025412409662382266462431976892853650893526285469505870506820866781646921468064314274611008559062453720005394600305057809343883386419523403853444468517818130685672438266332113813099760664746377473648150751779154175096437491583700873275364211751145616421868023212419804617132077384052216222804955439358773976501036343601859688932234334716867097439343724365697814879450848704665041712374457281765086319467883415092526252759002610484127087323748379872562608235991778544598399272355746786814033071700820687474425211728488796893404421764315340730984568561812785089743002493792029397331118757038598906423912351261347206519062343089703747342136785871053385525318177615231151442181968089345564685891972799900955959998220087340101265620850183856435714484100284181970165282430172256364568346988303455996634583986200265332987644700519469972076432755581357472308380431244118828986323108128728584436033836549775356186593355585256926165299131878524209740761051841543676630055452768322674137350304381236111125097110408259332670143802189729446902460226773415690294938812065379424400698147582543678825275343918673171120910695086414355899953967688426427455223725321183089956574753760751100723143787170111803404795443087487868720181312926390790789655535077390509353056457757395114370176095621199394030408438335759222974199533342824813539244517981990355966286525447345542350187297902051321605467629761429533706173183223346822735338101102370154964170011237150238958744004256884634101599494193339613342292034624899670972434565593865619656567650989300456037623661256320026769923323436749540812247981297983188844318130885326518526770044045776409996822642815681112569086852576310945577126253890575636199325561889049104645601647095675417896647803189728706245151909703457724288446577453568923611823216666451850311636174099926002181615895554683808428585148031381635137457095570949139608493553629437331798639869831771343140556269134279931080579304045415431908607977004826545641911320083054317723981741414807832736809872305736598720817860186099390342642354902805812176428362541691666640160044749189100260231562348761068094565484385043058849356675133403081155745265712839066315640979938779822884266711742616842021352452820906164989209016713556248807388544536855140934731979828570103912634609762494046035485091261293152503447013258300474091056105088561845595324088203479495143346771956012769019252391020074733539396953845154626841012887174438267196900630226639968344741940640464873942804400511074433025473033796358727029775708205430831808600556933756085114845184191352539237958024436076138204037619737111938272253150380477897158301154080773126981560527438474526611271813285721713658738794121930201177979524413437030479667258857297442998206427511432304155320002333867747000752412314382287151480708865028091392677870473412740920911876753534364939876293712103588772681072783252575792625530375509307043911700487565718161349582223235032349055595004899602151233544462897773191522692931660011552049523583941693215401385928705632055538490069806742796905057618154473381383424085685282843131778914074955805486788178873019027506333213371399460155102258743857875105575063268621573176155081406905777121496223374139851405911084569042712684368790523239143085034706949640918155828943567798069530588640136297667207419957034148108416692891206318715803599398875146572099957981856051271404865691760678029053723744840223580856068995561150165618611404044396619296663747557069134649438449091668439029619763864555966101359128507244837480987680933891284451250079000377598769035587973787023105945589548898310455479046679210221347016002947177856415748778113649840509178925955632701547962305102414148112022989055015083420780842436015878047064793361355683693587706603607108375500039918941431787938553736892065387908383235398136122560188794814207603465932245369303541575832346271078965811063186687355915814097246472398689844251832220839987382951635891962963002021184267728135658024944336612086003666826154698636582929955932854912102069434649992141082529514259289030129716427660844166384144603563622811965602353463663586557787536924846755055096012953518365895430151088119818120951578527469976936566626931788989010816075037774186681113626790980095448101192430652225429174708809623618191730047038983239142627698503192408918082878004941712028546015208956180721517642572759847842964731115133185823241488391231668145851354012519291213540842348227426389493643482977754474869080029347032299009543204401525652349145759206123410500647346333797969348730508543849519542757845422691565786921180603627791639038337048642864577161305916385220210545207337791791493492570434745029050331733139376661444798630575393592872671059876180041462688162096703416148157618805291849541281718708199011718346896215845116986073408510242221367666600779767765085998019641627560588276830610086837729660588376112491825704703562053276340676562706879144775480765593057298683052750336267583391597434652694257683317191374294507960617017542480083399138446078675126050937710451685170784537881884090878039609249552086576827541041188760192636611951393597503890190023541540450136534825149785086189542324576414534675321092057327419749393449129434998007768088929214863499855878524233564315471573419184302165852258535727300739930945382970926444771723702901750316896281776330073195129176340848802452959827110939775488449191531513079516260808390647770024961092837395796682199452640260432050856486759870683641510097715613035476438805051744181284776485181819991692919633999283757347285330645901812970236513686585529377071433376749037612917695368194035701351465309577306471692953481133189147196976705067016087892350420091808062939269242394619800141428782840084918347616565920705397025581265529503122874131867996584573751141887778017795953136957486652643441543148051228373171645093637162932123515218298387514305836433279723061506982447514866128142829921346351685558854879831664251799572761203276011641658611775502612851871429490608775648376316095503913958855039402319832094593846570017613299795054383890040480700414532788100839902704083807047646250203584537502451919857761368667757694627110777851099525945947246269624084200604401668471996171433615356517682878258721901484430531269510382389776260680852409265631901966566103471010666929356954062432280786040189433893629600913474070164855312307349274657366170928696247424700479196992408046193380013289959070732850875718814517492662426210261274858225187300893010406188929156449093095291692078064866899419231404694326419287843900396056933494958445039320721677844313805709148177744630883701413676708320001543032579712202001482409811058041129809276849571003484798716026121750429021047318036931417909042046950195106341616733065215985671195016816531073638796649229726378157982930335086556857788535108391550043426711968497589145593455463823548733327161929991318123572176516964538615681369329505352942558311128517600776528082985263427728731649271252834049274072333383712798158026159137371469863204008298374463099769464108067884079376740813720553980497718113222842627394850128398900754970333245515161420100580689152702801271023120260016923087948081743967845297832243292313678670889178830046901552053366261605282048999403762838824426917646283895131698671287436106423646205367358768294688031066855089203596480477974390359508619641353069604561135876503180752960867506268187739604558146192370090525902026766270066284329970138187812671127055273632228635871166699640645675961252871961623262950849604830575453939201029214795546136551933287979155088490313107653732998990283799887415324031904578672120064919079443495011426580840252433661083548291295978449493231301009689391865854964732906729372906602906099527489579054435247987816355813087590511144266419566436396357361479410484576803821253597365950980926100595216725795987460205195555624959925842966217438600886467498671570975590977677287997432069728144088329362514466653639897359845582930150093075328800278244995999956053553780546307335577817463299053436955594409649789229923812840591584648890424163253300275511503829133922897216466066747985589166641959770935568350857276582480457553471656528791405375237756758316245001072159897544074672475978008018637092924076412778069655541741278313691716782290737563862014154280145530890257675346960093326449930891069115495844107046354247830196026564602489548148458989386164243992565422721620311778654877178349510534765631694031142346593932537792980426055998906785755652059574285652163745927121741412433159886394874987716347055396228153508604848133627374361704687078876983600126184970557412274518552674345007688786419277004752746590951698842530092599953765674436530305062072215753569343138810073546673393011149179284988650327493577615887524063967849608816890987206435853652322038358820124359352979814070866799689578242156679583611508458449480750403950616917230286417082130596327429564797051232948197587567676028558911131611207041551630014132178785560504157734180143253726114429042574758164617688134311797986045019068942998951176741385058802367934365617239222356650924730905478386875961533281127948525231190218939442199589933771832661289318875646470659891754039129959016363848923631862418236271545665506305275455078268451027536352666942789120964996458779611496092679123215286396973477588670622446739469822011084713904897538486177378804446682677478992986139366767388999291194822858744524472390635926357969780524891844958911448271699924693580973129078010464590208787745214642857471962113754462721815598039565560602269632195690109413127217827921933804953047422232331178262397032585244925947889049297644970928589994520312361757741762321854796533066205238078063098057939689951254577174949439037984274072612849430745590292234410286794451423145833932510762379885314704039696449081799682364103007520101568388623435735319790966060923296587668055967105470967875714190334131209543994312582720588510599095189277408879772829859611792916982254891080584929036545420654626562335020880321115145570193873466164997812338059949835287211511630684224074483483280195097321376280897133183030294668634338967699159766059598721743522645788138164103126055937171319380033444246559690099633605770606446264840665915195354853758868978139546147824992094138573487130595936478272341757995261498546633003091771983873093779282651648800556714773449992542788945394958286689685401881873938299035355817068679603208675875221952059103107705181034530857489711433408440674517963347516703038934039301529399664643323483804902864695121022384949642306379249734245223678234401660973318841197751777017222300263526545730693374532847749315857642464016365376361085808201760499018004986839917698443761289289424463964949220393788287719425102759538161441748611345719504894720721652805429422307883633501571559783003264216464414225184514950902110872980290532689197948461451192482527487857163115126514450872799050348663011919571936885083385324590218821626113627622226171719061306988034788505149779722675101211903721859730320317457664817201464382686011864188415630316499263555656736393853002281596513063036971149030008087080452034661173845659294886997230611937332700766862381538992683524868631776386670625764031057653756374784825479986638289608807553811502196358963681119049882096042464755875909847234253345104290253557942372826236493467179930883773330787285551354823396523087665277854872484463235032246969046458685264702247743813736501121313953012587694274588119765849693038941657054361835141072821900972772737760312446315021772471445249206534421901305119203449699177305257513064030873273830287097130863975169669576171919478194147463567815085994710312899381257792380213701251554436382467142464762801159777850243788219432726347484060492231268193292610974147785152541132095917250504717879683577564480603836607810377511179793270301724286291061011736122895802569657705693003286254459072059139792477227130208147858570548571867114054840928820999218251812630434140148213463084877361469539018537995818112533105346730340791882343772869927275197202587712257543361975332501135794233683072660456193473006103625617579188791827526970302692960599168066176040365988716907772746653702054641496017546593103784716908872873776796211942527876562591059529834248640417548543960733745254918377154050736333986538124685289406840036606974266106946630260306921968025501326798559678360183668966718444576155962035268434430435855713989454319796173585975779986366533948370031735902602013251376637518257708052113936962048972698723806057256646325132291719434230099745716340420088474185228166780051223772187966701979584005157473334427787149964951956791779563810095820640598354919533545103324640249115045976168377045516387206775002350446349776834693372799684171486801040509844375566632968997963774373488975841638892687243316038597296877172257490150452568428471660081764379410976521292311403332738249418014551335813475258338470430444912307888920087109733271295140401935815095382460718563123812040199724122916486002951776551376726206580509186009378172885224201139226620650723640117440635831303600954973901280278881614673877038849990496982156999360611167391801551080599148945305795762965464884568670675722595991883906844354452316977986681826733708551276057961449557198793945601712611843510955910269181517544448762110258652840865765188835199038141690750387864806403311532178679957634950131496800140610096257720050966725165048787890947210453121998484180325115779778464381156951248069754863787616323738290116910470330472897344453942727973456875664647657287007214779333712107046622547714218206664406567145000659792395400729005575043016561700030343491131562579907441534171282300181747165780380151753077258626056208524489985351266744925494922953156811761408625338348034578959119085036308829651938243041293517885356227351604048604999842591097726208271145411656466269567306767982012249623471027323279090673818297133680298935056665773265119435060791755229672889602117182721004375197790245906536536379888493888694717198432026478052533749747078879138291520152675326709789835609098572654734937731523078448388157001639299566272291930475558882814792368403970742750012828405227075326481813149653306066105321524157132939321659165712199073167123191658099725634805286526435722609668083711857827661016353628229683830867122920056616531309288535259541455129881871958521706465024771040404988820352034265933657425233138188709273974773536255486895445123473505635786612787162207090667343880761334766290009833930505205389516897839860941237936572834303615958369950380803267597595592214441806584584379052185755789380800969199925019406780384384597100318254605612141633876030829332355881915129817616028778624001431089703486451590785028530027892418270636917846883991245829632230730896470634996030437613743574408133587588648244089885803395848769075268150882922664805202800616158977873419617310441385499820362832164745491700491621189731106373915755046223662556608520334235205770575130306023370995020349856167227418820822401595073435991028833590510482314776976654647166112111734353432013751872244218468591412075425122991208572275910100160742901047948298416789948136677878713088406106822535134431697537146702126897509341645086578891705413837160272376333863118440392020468863716723833936690955232217137287771854650452037108941476720116071808098437591263861977225105640254448798815854217959304548484691866889954017742508230847027914036586017361132917867135995011590278196322744427613122970881688985747451634417776440601196260657419520159410895651995436477959715115197735947460647470450432566681393968845517334653517586901280233832429126492451934800526087416156557590466329143350030016978931314287009351705819852054780161206885875495263811350327582630390038151723801116466919835322503380089368167616739277156327641895225788564747836600375159120433813315035749089720257440098531187766631322806404911924191656470902614269007358892230912638497854270617114799188161330602676716277136125844259496327901787880594154444178387200737123216585558090040565306801359925266630067793511534672329954995667419196114001408459352097367030034040227739477708722709039696836439933737040782996310962231688909414196400499523907458641141471488955414251837213339819579985013605882815789448351062203478641855008037808625218170807140745099532940214934051922907337791949777962877659981301069533416775570873951778636918014340755099261033363501420468058031598506168979173620298186752755223206184671156883276489204516289880928844672742279957091763382674044968210504238818470381378058627014955101312494410325739263654827303162213356499342044569986852348013733978749319760640999658164913509867225254054107894270392570439920364534563215662457301728716190923284361868502801044636029399802840270375807521639662116364280608764041774498548879443549769565350100081274021646791627621817179192085732757817815671022806160542145373940013412647811022443738893859620145151772792155324021408901172338612506192583209382298771653537009699649168424326639170261757224596815700626672817538717265221478004531082067943352433584902137590363720619309260428294256318125012106350000258640079857195028507818726030805693839036378696095333539601247322270670916458680978136228626008045161721750408802056374829399623050774038539733375908861019010913761629287509323123191845586415642195658354003128035236899978311660855392820358738073435469524237420879381201293061722889515943023404058338357332595026605385491694912887106594422524959401182176152240423828509459179808761284509487704152707704220292942528801545613828790037073987160567585913658146862173380115796945985389981622698916700688595458746159151184023426460162309626590137085922851630135972179337234782123256423322848727690203901831141085786685015462866672006395712834225746553608770876315153774696061464239839845302985030557887041525137089359531355758314915922465454933405947941563360633644344470581715574692743532134168114120729851713123377154618905050079443701083994239897040887918632874133896127007127701291066149501990622924255106816345539389477512931949576373759922581351451386895322808075814439569416852924205704102282635945762607557946665212042462465346767763719577584928537717547354859734789119389511485002800049765389360307835490583091096630919646605063819640489985095569018619349990681357668809383309993708818368927715955965344551835434462183069594906369172949957419384822120060163629934751729856386975336337234558877378934269910039019462082527106699847115608025767332599135242934838889254654856309222639248855747137675901258627423729222716960251360383176400178513020385818487292524427373426634010291708847868114327509609081727535306172596199422536974331755360620397951361820756412587892672905584436581784448615602395262818356772774016993902616878328854401964625492905529797001617143304244447591706520055280694348975062601228099669888170009535943927003115341790547429054544279813366108879703405137343480361325556574800388492948067428376462894461794421205395417357302880535900723563294199057230984335791011197325257246580212472071040090218176916605818637687012030001042588356351027209439135536303246150722729684050027187282540391508478946498214179160973511390760197718725352253520039777214416832798571617535653279100941773660840797596276098598048178182551762023089858322066327750747753937007000758833718301619273696617897075929146528540700076021760195048876818481218827724899746652592872943919814847799944211654746122206450733744951501922058182271700160947674781770071497091707044887640628200385205569616327293436030440530530649316199035524154041334815159907132112626896275406543918761887023895058366724038319375306140790971366029743072777211535723191470474441485453663141003110052189017342221488557059969120422364501158502042864767399208730409668368464989239115115225450107819572408070095982771711361431470473253043065665726616575496007815384023990024151081243661477921282549695117958058862297926857969294165963905150901890960735128977839142020785032490496097317778463437945751379020032155179657483071668605062081750753655384926655342578853812015959183180117965695288388274338072099288456292501857414039977644006904265464514920264554160270324186954487357527742104349963205304599885080630318131797043368175378729703638644369220254400223101661985241395212559690797518238937938162155299559730632789428846873167276220362608265123554487445647789935581179789238629746156354746070733169534458364003709169127408350049005257364756522262722902811741477232155711568576786713146523318676012165146089057699173460647929526095687798350489189024247197888824198203099779285953662735416629535616419711789873103858964477709075180853918989847850295337572963147751685699732947563302940197860308875921764867960243961148692354862591486565284835169335276970213603735905476646234739957357734582037716361177706828318918052794175775115797176233457575114537642312617129745421161680344088471334372872970351001036789960815867184341806812107637995256934273470976794230204559706358400910570764568593506377294456937691991611306119492610137516027178450144148186521889355217086943025396352360724488768040781652651073983999483193219927342468800586116566021996987808229264763253941246649296859356219294152218130228076934480560048794970954065425741585244754244718553063451726908719926841395440765701390206386797891801833153617864596646261015516734960628941947098743727193947004896129456814971932174254239463102994039801346597923319393584379775794561578009135900917764142752973762459167562847147255237245147773698867469536681398702159939235935124699900382077907508469428831661154850877268649774731624481444188153913678753293745331836730491863133143227511063303450177479761972057811901917789261808336669085655616995216719922708587377099920021619972926382689856822418713903151502027815552793882349478751935344533235028389898882563216375920852925824020739739771339134413721859436695729987539322673605441128774826948537173701092313992563463698578820467851634827908816684189462962056714575946522297100521800962274416986846695796544086076966003749887751976860459947284707976806625643953019278531590329568570832746401804433215865225877415158878789947467826383199733575230787258359902028707229031841199326580095020762556147925195897474359745971387708809763021653919639930438445601234315567605824264480793739988193264272829455194955792488564036031683356607985837949616256396015596515270327277960518878570565428799932043170021517292523674286322906845771011689975876762352576461651659974961520526842406468117925265936896276157667190396747536310372525882991153878713491679286880750203659214686809405210856623282441943822341996788101548728015060473519379733456327252520738668659018320426201813493021492552232638618540130533409402045774010006173501037166509549828128772373314978255397466611609665620140060600792667257248417510353507557819622907477837299048043116308046641908879469997440717070998369926608485884768603219862260290865249340309043665698327435577868429816512391102022480646495021793182410708708930981444672771936669188123583818085332600514616184697617909756497596040102664349906222439944626561656421798678895029909963350206474898842594416400059513882871133635566981449538612822745192683003787750537501186016740873698658395469716044029809516827017617941538687043993875099827323596677873641424100949623671786603050908443355952769288628185262423098600210438238631086873304392941862784342340317817890875752203196141060801716943964084657210083012205637820680578264008084693187498456797735855114649216927885638508558083139617734218435861152187097217251405088355510367360699805414255426032155200265054009040735361997830943992132256621129529629267706207569273818607078677678723545779902019597666682672579172304869114301324915193666818778375668656612483003445938171549215900805171382490166451626089146366806353753428361860062968861267498619504851585853114679423733450488185758566592833053903058357919234890207469537598392603417925811078300380907870921540142335139132299990337996487449951712931063301631547694636669219717600126530617915841219203019287759377280948046025463427368848856657806253258012774368617137868484128560037056412445490481410678858571506679443050581035236050754984540408742048238990858139348155707213358816906502259549241580998587852483678493168529743011869806672302215285915016660080575587701729753222066362251244930950590611927025621806733020157910872662756948673899984912856094881647921435137536341113462764020386238848495803317736048774669116416694438527422567465754738423359835120363302929221629095830161631055209629546959861511582495110783543612224938022041634420657527228124344113672016370013875863089568277116324358416167052304661668633781988773482557538910069994921427539342492530414642822115196246090137062530580912509185323590046368221878991028341379138205489309096810050052348580560692972962151787306990449420049653106147976294058853611233726350890621814966300339305330631321746967255732889212594542979660940092445737337847090967348415508470770172653196344870530738797258499335125105538232277658564672642752437000733724580740382531553916415169679078092202183643566552853416792351245165870331539144684985609497010838289880791467816253830458717476249964170539546135652786343068860058651585203559956237955357817697515162939813652880312060920236007722217093733008787548781702855298390706039585978202519029549358968771755898833625910153411460059279276216847365646106885478229032796200944568125145781203857000897690789055661680647979070031931785838863129760568241616739859312576838357303127781264937357522393329803419791621884856203592265838101247103094364049717714090353960731788968552606450900530154051049590320443020847828311814058651713747581851912946721903453718344747779850322185367239682397605320206032510354382981930129277926867062958314844131843038390431746097983658994104869017464745080589884635919637693635519482811190623060998034049677934254002582310004416918114664497751120185207187616544648504876633586172888091221481717021558610258391548552959892719904080641474351575426781492113359055662232554700183329767766464345992067466543098911471997604425937479260244889192432580298616874978488530365735650699923778748006249489576799088481902615676763578826118629709475420779183459302852267979279100060186870112928661760588215665433753978968777729459523050525219377631272081235055755825433934640117739295402111883325121552613925487028957553070829033808094066802093399757814047866448980384278828424985833248186192442132203251998530455897009659973288591463535513798303651906468504209173197284767458286345554607282319188965494749214500981182473080536605895434735026173260869924847667876382145659943360732563057583590666726504271196587151955153484405662931720288457560306996618542217488077532936068644935932916425035059061570098922157925867903539334962231800124287433509764849649085454640441390136952384044619742027233596376071498466660988178876308916015253300671375079599280789295953795247839518274766418300582406367506807968036983602066584237130633312875906640500311750873087735946886722483298142242326815246884437971900624223782522621692604973817223623069271656419150749867266951959925477132800846678100220376555233192855420255624132528721439874719262696348488520742410337997919958318497718896304883879194881614460169174052987233198173783959960131065138365480016396551864984739353818714719912455884779445542952781234714456593473105174155002222533021736358537661277034272075606450991762097748116367225715654219313047604052229660597589719574901655219345248038530757169821363003293213840297447514337021373817704639312188811728204855191951332202752196802790196349939385831589124140462473743208220849665183164036272338665252337932955560523817652647561358729021670310880196057124295067461287560279488687329702170241947787131744425488505842904004207001698306872314220178931177954346462150249099240881951490663787422502392402037608146050030400442805611720869971001374729180399357395510694073574003933074054462246669823697966292344964765413303149628743215026637407923296686367855075811702318594362639018229720881262823660094841837568577119222462061804505893951791334162663521746307028870684278227305893877630610364935068931758821345510994038971365936567708311138087567928229687881805495638074117211858775850724578110544493405133520531562755032130190610326390920370982383154484764227641281242163802600156473633970194738748869170109129196064419089259674187738718119013947120244674056720694559271645004636321582522857740555133538653533948415059662740806209433983927742168546845474543395547666133828657592751883341384268228146619738361188123174797389087489572344360441473943445135631219365739673573044397774808886411879608899661858329500622150652974901795901932378001718863549505400501532158565774602852063086461409796049132203374753255248845371516867103755906207433943139765866758929256300677095243124837584762554124328860156170972392109536326919605974777081388972398952783684764912742776440121637649009394817325862423331133385502769782813963052083850012435902207596981095570871115209291974856165309082292867427866289221819578196947725807771651900055439685781531980279321097995623414906079773609212105218349804396733027190676927616672385547228012522607834217645187029195729837417268648734051438634829284825123200882422970994794944423259160558184006576427690645838159484555893582807009622376476710601699347128939473953227252914860150513330230092381636781827198454114807821030616241155460931071575253650268751048440529367350633558965526831617911031722013549548348845063597201184158493735551115081641649022222575375269808442972069837921395540965345012797560211425756640588560884404044849622169091546034011144936587272043177407640651940499627922331438453779639381301111846244555924827588814449246484609314528643675221631486692607037455233061995504288328045102018392740937805699594998635569389750570618702432304473539232217285366026992995405382168044290872355928929142192743641636305880972763092751566922870054402138796545564524743844809767473965242432523998205379221262985407188931797319022215630383665919818088236470696604145700090163725350184718855568613575928382385218854990145930634836627677995030751871382078685619075198149136450564215831147971926558055351666686980880965727101041319473210142722752706117733659230519527568327006192908781955565759677861136411892457356890818030692936640429301749868143806560706861852990146090888521018557771588758566839933168470347933507761892512240347084918818001663112722515504668024499984938325176988353078242988347385274685662872998721203206228529859794804818654905121936604278057110905072224898075470159153413668431046064753344231413303509744236768231752068744431374666621214173854509517839475461764853267720252433267988140029442807951028034772043084423228205355611057977835519836470836801490087200359381994026947895026155715181465821313234272714962110791080024267343398162531041868713865793076382886323856249656083826862745095058503115807220594661045153665863310873627679048614982852284695995865988715595048142361866251393437210250294339536758294453547364331839837158218721653804786816504635810896302249500481784562541852500816322800348931807723614504495282590737038741695897326421203300677951536033598766606542276433036115559499988654593258642599810215329736931140244334511576417384522875311215375568893672822859280257465383442288546960497778411102669754311326135571831919512039254060274053687429997674382243623306925856419337307240416506306743037636988092010727981066963612319654595701678147576829295453810524537669917428894847261893854125223252360449905805155001974992834267483051762331522285542130383070646140815267265308862829138771619555246776535269572466513889900949743409017119907231108338388439349526042954111618481550631038710824430623367453914252173601846489840604124587866373971693998715788886802432208251680824439356199474182809234139314198144481827033043140575974410568215764667758683789784281125649300618129324876061823405458836844789784136537771003129514779145584921685298070734263579630287470689550020366991818829718320469977709411177712510576081355744157264904319732928068587559783688970880880662227610429521412656038534335229630734247796144880446232021945105724119459046224030565779898429014382919589221566489765127993603285168013317434442889861819643143118068924193524117675841939310402010583361506858536110644573227049130955865411848246792260854037910745004242562245856593769783449876612684586522467116892337227276877329631696639181374313704491341350077602340002598633347677152485524953789416531168532864181728569447323346385658104892190551536270043370787807214640346693061641325155151556156753101538124127367424645664125001933306992761521066173395726689958364351951397003981619007894802742939233016311407344117552710292752931172027531889557905373665950078439442204935559261047466594637076598700366807444038456826471878266371599122520875271608567988458176657498455217973449837133221859478447762633052081249958400310831976708351548931471352760583756589582649540514635080669456529989768677615652259445360118460277627158626414847261013667610018792825987013407100657667219040560757395387722265685648857143764820689722244471003500558181935429534779093035681794162809292033325970745151215575605128258461711980462235778922279257009380663551812300843756683068236817547106523715950523937185249253155838990323936953206551330582679960292976555167701949087359997948516146980935879900538959722048231812704292452608862469906216954393767366156767285145438007563927348606419853068165283962353989057051819708105324149790615710845801768596439811481016020254253007424060703653268040413565820006409264317555664281339658708016750125085886623731182573210852943796541102196130034937891437973259519373391081073156218269738616746411849764522866158760101097677310071974662580809510741077425952329304088933869496223045224889614668463003190507412553893831735788059577850598379489286768265457146276907122499964489358014791899562692274136316032405904489676537091413939918743019857627676437119512590334487373376242788843589590107147843781828988917527195398736318619516721575705930410004878982243112957556387822417297133798965645937484929762761333523487070882252624334966244432417305166424523333749137840428522352083310977495031612959127673803773079317817241022996876395709427584930140254866793051667929083727461379843460731216800562137722523301481165063389168983334789688390825933763448970326150852833956157619123953754020005191340180546745763116601445246607816224682701720246165988598726794163413557035695872438302324131299647651808586272980775420594098286008319298570077409931040107250207154784599588736282962050689801780137324428978007200662723400721477988968699878750585030390975295780869699686310992386918757041739453013325826377823892591161018308742186435230296584692131785258856007344947397561332988169081442925923443724865171323705716378406527787194947299792512370751020956602407057304083611643272699485364108646680965723363955520030798116276806214576614238633602704194750107108953518452928186070483083896508035459066574477966651138583793952789215606932555011436911981108359728823863292345554374363894764891306308622202568869702800398390505870566432165132577938515458615603719124513213490613244082341426735386481979833768978962531734862217284783135787778182032587440415682780964475016001946523067673224427984189193418624466120403567319780367131530584719309337130923690330814906814204109174727256454272967009295850714471434225984884972026994506621547388519822975002009730220497595123658869206757197451484993757884900276910744859922781143210139222835730234225270268948647939595386270000058758280036223221344421739464793619467128084926940879111655962893979860035620640751092736245894356295153618750198108981570882962322824815590979807422372201587883762407081847872232912860249556258215473458325846952283964358085780620124677524391635336802767294680540512705321503710681115763063549741391751768757720006900886977689108065031220245453652031783697788539406960882542675855930323233251017922281663063298773730780344977838849454513200490906830676885292052031733326315941419568699269212529575820551550904510469442437643820579212129135982223211104019161517436261009722430884109398337927955727622569067736810780911087700583126024886891815479917496202956528313092892550738892195556905001517359906661678309982760970073709547048237746048851338892669551156416547612333900727897162287064569749065316242194034568784774369116996984276697823531530962768394565675392787377572959556259525506978123238405576417251853127622222579855322730057311886594798058608596952142361691043829662399314218755366134309546759403275038797387966324706596621345846378020067765536369075125308028735747766241198915569097880768775883272212514879901564011119786353448451781191747770954925568586668156799051030573030686087478185587186168599682263389335039209891863194845413910609408877410298212158991701430315064219775104084343060670981115627315777775923267781496779502999887708676362859860124101675853330021732169568059680833541654927534969593617539430909488460810697373609162941946242674830016566358495966624990680738059341073413328652834318004380640741053822426619266976977447432311416175802276216303154124914094857009914767524170105512115955431852172010946350398156478668541839576284078011581156467535805316834327939722090097333625950931046822912378165494265989965974804978067836174466316757011984809368158320303744330349323788424729229243317098347236894059574887530221534175557577807797600578157723930422953890955002576034456690054671214570512672090163750839928482755893031858413077795531939048402358885338965631144873333659937043154969736430132644041468023017478901025778084901867066982035621170383120930167420463744998298715823981281855247475951708641913551561974857658628218889062400319761583314181266597575734586827308830180134157751327319143564576447066168627501454644075899260963929508514931912747843933868631657602076112057451810589804240751748599642558707145617815880238218280327368869049654470721216867244861034339900969703193063989639497815483242153443733270951324065214506897769803394405860584806414589435961919062288003570049004242479259368187763497565710017777662893780973683451310875757069622531695819119857531998121349395572185554212736651529889022839736069490246622334541914877486609594149619664523619841053451554080772887931890906932174824116456391688819837611285673479660952854869855939378360964956702855758183001261000877140821810386421881554290129536424012873168733226029292700294833415325762449839032975822539327155027341762576163841939274024658767797868434047359384820438891834602593981531604939991031516946974867921207148970716913124154520229611261574761338647187927927906461003015840493562082452401091502561890075382641144164559287643875654169722441788973198125259719097955809035589823101761443779931281496258167843498646685661103276243683209096851551600336039743678725609524189067984040201034365659323430610499257985813750907547367328728057508219405071154014009573926840065688450314044009862109110657692458532630553409833164790983954058104491060233864646727220587182158490602481513519020639440200994734292022461685498392825761118246486088876336583916169613290689779680855755898863757915815666563782644746906457346713940569422492612450051067168817385875087577151358544747476320200501381975057781256013768834050104716627260609361527388455011800573266969513745676854619412821702938928515852861229144707397158587993574829454941012817783504414110058738511641799641823329841141885566764913819696533305753801361225556193108330923498476099736783128467066802182703400147869534982686558563259342240490712142480711618431983581730919353721786752982740088590377339534745336956286474090029370681053345385222761544885415524682043172064776775207218049078036267455389472410226582045160408537960006526400491085609944723930332874007817721088439695564584683768239499571057189894504107416476097777997273542231721987321636238824254671912825336047157666824646251906698660768416779122439022892812077684272416305038430973196340449650266473926263118932415420807029780740442278782246281457106965710391555603981397743012487986592664340641527472905020341290228488401455631211518183208953707965991865806376536278376869088725944520510254125484942356617639628525233676836438768412609541425982454088678982096390352048479221074077114342141246335523225641795336021496663917070198861926487865335656626220531413529110590423231943663684822601855257794273606029142659713795247316089666450143376778278003253977782224466023829331944876990219171793848867300628422048739203380497358895451005355390288636355886189466980316716111625405307672102684020979742324367492130984817540072405900507271985751963214778633716542516543529831775976389503163088558598109829653902540491928526869340427863990116030763759217573182891319332098028907304445216040322119278185589655947255260404231855158448638836312638288298609659854113895361953323707208946653335043770777368658577148986203220890678898309949271035888440619242229067467889076448933807018690650523326422525809705902744578340793927777123540854422527193471838859700355341272459708188408995980030792155454580341492554070441410620597240592650645602644275172483902823147550629147777845577959173499195672602691708309132404267559187882135230962456715314536176901744881393975766934217519290715315547785895267239748671243828553050302532129515521781537519132571169754641303706662762727482136496198011966550359032299611149114281711788212688994276661258975994934739050565983728121725343200745633016926498596828840366020784203910143426961584350609120644561274825736922778786843724472990618118689085014412232983923853642119546654058093640054399521889194899931728502282167502890056928508428060706417746509864576870774463112912244091573491355204051219888547533242301082927259517890425493443165306837558796704101039345250552388293859312589109338662587558784273559865419350624372593248438099451153325818758677521857887878652893151114329120336902898387123350239035637303472859566397078995088742993756611012292971070109602585762979181818027743074793633624991011726868021460298047696399437893292024289517714189702464620340901962617695139562114955572646196674779996135611491853672906366707146073428592145856350620070557909124262391631233754110918580516453999020263457043303542563186317951351790707628196643804518444057486012298255614313304110923909345688209885783840467742674655129640434318573431869790872241866459553575952636864840565807813304829496676893477424085309311930989529833793231714489380243886509900207942801293482952337164216916550434292581405780806845472887439195515541654838894354840980204084927975890687260868322162437708502549465815972572984806762446870131346349908847551938273807866705595730402888054801672082516135670064114936482347895010352208069126733960229045733954564815687417879735313047251593678521537009705272739667854369440801898577506017712955217653654454538416696612233559964786126353910741556081339548784867705684949757056027673920490208633383782810977377494054292174312940273723227508178634390071779977636076914883284589550710186329535439176154380465349156913271487617409846068823632445807274291990360651204495953866319518669686294384821074423909600248512506644957501439533104172861653537515343828036220028202826313728387780062486206707517030604672392318901723113991637793824402680736590775385220777657560410139793886831058890338430711534961349906641904353672617257037079592679873191779994247644395283645855010039100200194329367820821781050207041323650079014720718798994422367172776373462789927348015661134124585922398478954926501868061419856987606482382791310475565091292940313640348131939567879279954836077592080972937696686350170717048616398827079949844286283760569244002118675798037741699748887120837881051748219303677385188506159442688665081988479903094050558479289721850456515887290288610161189898447081769007706338516991318941054116709744128140621525844031535768098047395804635679648291574103853676774932771059134986743735340230571994576571228854743923229285910945023827103716263164468586035702267977856428562841792284669541845535799032843488646598459611363235338090316838740344440462419605588256597147707455436040016172968569122626615022712356204885362794385393166954359013178638324344433399093633107472075093387551886939101349868505296382720644876652417581088243964609441384295843099556111315566905848786341835317432136954125845087591619393032644110973220762564854408111647222888482812274205935827786426943627150434017703928975119626634532777191381065257854105724419888936590141416844362379103715271618617864499347721290329960791123607407692844769331527557912784060323207192897832314226824322716210909679477850669945892515219706357398431352592935374077752340842792212661465601328681983825561513940932282454705210428736760785834984159675039283870208027957895201965387214211479497635530220830804910625661249650401301697710573877253464447825156121988555085372766323894154062654523398562292701429094557787492580325271333767178587492890950706714528423801168023133599802924513020003419071703240593380328512432910157447619402333982106288449507404142133254269430439881547912659046031044836550993955377007397859170447659776685488445793617143297585416210880396844468294691620497121093991359228229184666345695645662393240956976303321687772967048905267908266077347742385644593423563252532429029317379908715317067917710940039049310198053492581682397672055479640599260482944443930839281336416855491045548517773609644570443028435216380421704844723714466847842643970968459714477304024478632808999996965953436137782809103469680156254768090685010537037192299305237289629262063913712119642435211202193821952498108725725405813666834900577971091477967335608423181693093019123812439836432373096978083304247807253830435959436142682081857778809048906557461235202854784021804439058690741363940434431085635010278971379819627806707958374940026814748656513009091218297835919503259098133009770446853863824431624192559317586987117841981221241246077552436629906338903819990644636919141348082167920800781419307118910840484201498907647933580301435763159938158054511225548575576488802499570799537615284181211819637340655484142205673423703437878054062250753537193789163348133696216877055220297822854998697930721003255080381065562738420916585932420989857656324740322155476240001800027584641435656021357856702164852561382442569610303845166089033673501127120862117032195446986338690848530253650832970244424704500929860269949924132210269163037695025148212195754005513194645190418613040750023336908363846080574044549196592080549818113937407828517191622477466202189387711869912510386566719147319133265530955189619672929107677060992187217766773287994106115234235220577801189791246114261964613359921251912410949677230211706788119352675752866882161798598909929658449390191324834701589606434910604503161658571200671614200223800898245674076699212999255056478665749980220811687067747649997023298550201811398696056224357729329062171519346722816746606198762657438110949528629539385741623303199010571063600027314864993214760314669650264765008481495275653434908804278455382249512229076229757452810229622126238804752148056071780409225259657730240890914117806977304532664440386738911673539397310374540490824862651212935135224020660487175725029097911195396725687335960979000998581767976678273203374650913965313102151041195669940522340074436162411108922788854862873327932761792126796494076019585731212419879844863854523638576859247619820558356456412048194025311548405863112766737247609705317971521872122721239347139431968189359005584777969724321941775527899805509886680574581026254894903899892239460366491991294667305108960969074830939631558930136118917536321547758831231751702705060244052929192516998249207824993926886401775341121044553148082322826727481487489775454384539377198733872884229969028722046474973560608770404275708978477388869670631347806497049087758267348964406698849951995961334202046678797911873463652377612492284053153911073456640981488432891146383303928332387790905966618612439102533839128142843878708838196306602232470624669159749783103070569237960015218305938841295506167294382790238897090846397127241214479473908670084638290276487137445857068267053525141430556625163028917378124141031658068615134987045428840563020673941368727415697525832717235126200099535735465562158272197133445587706291570506304888874821060495728627024718137136927381415758414929599436818289956496111435413748701602321773186130296938649994432767798692771811005542959132775109451010606475623064401124412482290341982882130929275093525704055586755453810280114124014797534010455124403011151935483544633496806557030238339784415316869269028282114741221869492988814565609518613366455643207755855576064456700114368428714570605439427420034121635545063942273122089877633632556820562840059981027929990527288999058349029751672690749448113883158520545553737310800558359842255740810294980528032505480574880266968928876799520491948752331266823262979604507137303358245975730636121455623179966044780908084577114943245778412844012059566525061424922547090363102708854906136313405000512766926103669208725732434444532051603507101106629275691808505851470451017215511729459785922156192942805834200704874192912063383193065865081812808355539986830730854967663435263522074907003126797797828807754868589622881623515490686234725957019666127465091695854886584803078720915187826601756705229721335193362400897593153002192591838321754084766951518108986612157779936972522317356823908899509582039676759915183971433683455542756895171228237884319312235045817911564680559535640999307061701717044857275947184811771687014592419654510385615704301043225779172257447848531469725001022960287985788627718261675179735007460772190142796884630089934298773894211762840451050742476571705061752744564348103394961596623719596112787495327759281818221087681388087770401548199373613626146052280068574285894802848178614837082341832617894935181125611228475782707010371499054042111036760148670165365467080947369758056149742085554452681961267298267766273059483006610366012223482510095027219177921314878248584193903023432186277083054771461393428910673080221807183409040909635084792927292995646998029011094302200566846752036040160629719132153815057066700331928300994615275831373981571383369681856168459600665750795854914244339946296086708064818610474043059300619706244516893373159239183415235560434994033853559963055599018643934322067642960228932413454467733180225642044778928683396403083261530398612001693084219411505625577345367124349384517911595364264451883167928185331740972967180065590221049852382732318691813898105214223884268830396624102384055950104212918807809333701617377664520354905521607557088998927321609823750609887884894986205845385519210293956233273282077727616511489913497990445289814656167333945916666828203390300235354641142940491830459229450691709708516775631943395869846714947148019094637387315166174892811853179799606635436559755926395840840205064476071319831535911421170764686389544813780123355247190595909336242695323365960434294471356212403576231187286255136215832131627375326598119465244697833074134797477697764662519194056491441171582560001433699444194717544306212093471786956914795756155074398683901423866961997951983275168265690772255961625142486757258799709358251129619208911170075830213319090170098870287864739308956558638908842097990147979745139054338098188279072687042173780873235614708374948405179537815573506735396379467906550429986675022221253224546935113017384813449629137009183403241561353889766369142775944223565938558598676461821052535026032143692839570515433555572324549426999372522832634087466008280942284146877480973305360800766537946778805188156978530493746735819133488152701299911734168974987716270566842557218644029194859600295163501411731322252642208688958735440843403009504136057397188831096058160277746714822234090708679837869821960842123023320710660632178031546203332926141432610527726266157206259523111173585338194345478584232094104668339701863486321476839767833486741557708702754555003074169101644443884991973553658262707310883129886248395573175176489692547478683411145725106953737682450865637118639471897527004292226930640393629837087100541887605324195304743771759630814339381803236458103701564180475888984249603977480633759186956730823328279878665554258858125952423289984232945405793839524638751799357519999075797497504891635208602239537672024641089570121444849838098707097161747052918572164295799306524846255139385943110044660196929945895435758807207884742034023453956612330966736839115002380152326013210728707948698060028154641687380608380488483508551825197729755603824857315538659613941449717505648681099036944838103691873817594504057436143048099055914743435218014068017566663738185807454785756725703725806344725728007337471082094158704596496988277792032400684474800643637588557425957152471167838869383842893123235052915281406015182605342327854344395110383593825390211537114612293533645708462922590880471318974643198757770177317106563871038930250019670314679038460955987909476003083797207634626241672311210819314293060716104465308487790759517277490612972723204818452183068477137881551084185705292301994763207587147563037218989919933287633519829806922335750890862107909266203146932178640207282077006480646232614254078365677248740552921432421852213838966227970018526727116245841149577105721037322992548524272385594411778932757679969853829305581579966848779894304381232428362338154936271764549522492503158474604931040363280244522277980090740754686284710820184315702984758321483482556243447379413760075257887359861728342082597814609450445033427028344806741918460181468370219625836256194195377425648947055843125000841111325987076165268377847318864102947128608322144393083922297881116759696930406888920889710131650133839305288993631429836888873279512752535195763431070649102374514322231565282625096831143174026881781528128757316039193785597410619172686074562522818750695454332290797533449832684432176017016478718943686704099792258877795711149761104203956130999617066059967765715365774129493605518911503291902800515292152483489859447351486881985555927201642520198099164089152251255587247590556998017430947223209820012019769127653179311258667141175630859962197418668529772890546494090429606720561633655000451016995869694473569378766294354066187499260677530714728102873125039521667073395963751060927697559101889694110487556627519928905579330988885097385287013882148448365153986989739411467396494184890109311897668940325516381621905135055395306859505762026592924446700304329834787791711812675130724605051795944464734345412653818044785850078500294482737719402462679316597884491195106792103645831939785288496217371656365397255461037949127369078614811879600531124059738948069859808301099033157020328936215412288687871376092248832483236245258380517215708298422721728478585731014953028883425914529150721457125864732713748393547527983474186704875728836414630133405406099013815983311601513678637280372176815869829860540566553193888787699986277686295472055868916212459037896749616776742854262713637715428033116567803792013860446695353988071447096439774714948336702978967617094810735724296460454527754799066392923362279839651006966174332126479511565312018531252133729876699332516078896289003346258169269201323440901113511504601202139945851891953878791867683732354356663575016169833370547128156666251018436086643472754040113180722947320059488271288468689203849041325978398861586723986418154166028710661421464828723214589935710378085499883301840575746248395399653381949753441655726245243103061880588765056251873230704345860158153736985006031200488435904501827363403264046252149300513330143484415173939630211654545575532593468592701797023936732713828944940063576876076067885532127190726562468435866780774898385022345107619064727478028042111778147945758971088379345292177577485651683786718917925324970945119990619859626098846414340760802180043315594442181242852081676878889591031543020143227314030965233232117831027470356486581174287039040763012347682175921460555157305145063576337928735504443304789925507028580830045397158806806761013038804889055083805988015720254268133510623328823786186227809737239912059538704461904472253994572327170567964658651347245969907843421023109011463917837350356698471537746864686908945393925410940183813582129206547760475565767572538387603547798121418973251985911719357215324518710683121531888757353787724083668703117694862028201932398023857264184405642550858626224391866227124768275494858131093233035406947768313490908616087330087552945247080860699409556634335792904615671483671462423982161065741432332127477162723753068012529377762315712802920041075272477002304774852165284589846372945183416390377607821195148108294269868575919010499701302148784991180313510606272678867233172316083663636285675129074633722388352543898029734589347605841192084172318027697674320887455704301797918486584643882618731666482280255179373224800066868987433308681473630670572400858055873676073011002295128074792414161343424823913695367285487051472468563840656760969345856948931756209970422558008164187844379028100505020771888752161530079099435550768774399099114770639777734801351709259909217655352326800192961593733577139615423260550689590392061590382969739453081724635269907351087798749465410994634645963121730294877366995768377339570228845148839631999165468963137423898231374860504646281509016473707031193132909715394603377007585938444067058694609621209184381660110752552890948845245483114444188617633395776480268127170560959698970987104247759804383296867841144527634134886667795948917087289103644826703227577920348291702091780097179216177478816856689674020012637301587337958176960888768468324841380430090475782654785938752351473795150166574177872962778405814495878232262050854490154680120501353657715160591579407521735058100041661915834355721859927230961514723185675133260932914580598876228699981704068076878261641661521666400376989131079966563822315162211021403134141279597517803895059483424637360785689385425579778518482634131607590234378557615464868897692945430753941763217453649629609455892967066784546172671832974910200221869644572793682262854611163311924040331309689005324583972435016129424270092057084501746771664377915115320142120267865545868919619871213385266986839266728879396816381814079306159342425609993927086286901861819250255492256809151706549187642510974562200788473162509569707005913968904935635718645138226317394657672201582100667534899720562754442811721716540231681531539456587748373671120104665992694584330434746704219419559354805210284378170137507692650716388067924392534086062505166361736105191161212836196240844559086414242499867723394358390245906861090138787073542074407141766767563992028724731515266512538075071948458645238248695562330865488832658320283798775590174133783776192029881548356693053390970317751998942497450085893802217380787307404001045270719824849676738464774929334999038037714861975825967470183809770060295297118471694626203743849519198616386212763495837482755650399401067274717465741534818315267456645834133890151576626097552436699675942825928227271950982794275543114826354365698700224297846528013549284189220415978110232910967936481551109229078101625380743220730189108445559157966495050160449706579993031171642327015169499566402319904482319438302149247624521570434437884530821412747632633205791721059573366549149677833693738493473205237321616948988051471239858796325503886293227380654965573367122569265511662841586226704103360591397946543489822991807503193396210548877831513334091640302218931253092309351931292904587502053614854489077212138631979223555031583861085671366183949017178108167955912683718562833832745892582747402602109957160088043100504083648807907948625585565393363041824008211806296447965989421392717045348180911420893272377199740123240098228731518687819988538566735736539614539256535608593812492283594103437725576566814201088669765756388103876815979925398926740887653619583420446706043763577718497751874721371909958453391297266493174560187905884859498692650329981571682949507622274827844376911323491994900319280448579119916412615619028141932604568769044455125914852007724780145500380391920476965058675883065246664201419051906307701321544542214008548172462061406224878948437438740280762537623451671849991478793393928289289582785342717758592951951494518278224551250147905577529232566772606246918494320751775198669831909393270243946961943458970777616194428469919256925323222442626078516651679953545485381088492993560160355612171015689173043256266562854606452013989146683961393832041147184974907065840631274585884098065372186051199067657435845084674159370837554438367541049755853780492024009824535771625041756439927525571485606310473358492083334046661222030878462765349317336992261280942319392452070335300404843051827883466083303857989472150655901309733239115929213258793281612697978870161678779308648043505354770449396537516315845032473699317129203779186523926163500240966142378152929504203339727518664592541007211462866781876656875149175818499927365676669236403933365713290218556266499459625966423273751553549695202154907939389942271043125945207393193553402212992025947176826534475603928555058395948364581807891246681130829298534331639892271869564999686882949660985525149408796672751170405048989358674857169437397803279455646263576763519659374625686128209069342697888585993390129198154768685965487106368892552474176211019915235600215734311488668063653184196505216408749478576951575068117129049113754048303137925717890905248288387956352982269444039696226083992542970736042076932757421939422909659639667408018045630725800223014853501658769260793281007452327426050155959026777759781225036587963035119307436783869960379683541487701166372207848606025382763875967873770935723832634166068596784517961016462793343797952000647601581467055010568679534326976144102411909338155387362755973772567616843546998856519602398468584936594392853565785751789846649336739599647921372842847540802822502832189280476362926618104781649389646832739549233800282661062982582764867179419036779858141213836312004537774040882812022043033918388542312320543629801683309752295177867989816869200348653743840189095033826020402556551743677109828163596504338968587733365197845142155771524496412771459750876194956543312720656467411479538603276394807135550786623180849270309663530064874257624219915517588729597460837580918451533006947785819806512593202969188002449639648281847960789107606219354658856617273848575652816460871163854233120428173699143619316702565966705497715438115661463103095425838040368680961234240465586239588044216505420071199872879789791590468052223021478388404839412237014906973815178992520549550313641654773494704679149569403905452568820848425943720536450095436839018378647838640357089787093620007646776236311396136488702022036929894649372735014385427100632103897901234420913427312296729688066623085960524762638980453262619299448155231418313187407735563830869093305616049924015384718722645463799572100354317728392605467056997366788137044508812213051845913337062771533264036950056842131580263891341122807639444522375240613706401706864656632324946820779544796409617073292882477640266432994086636236384395973707928641613642978738609368362345944631558034812665767800443078623995898029474708541393366217735616916647502909410200169821884733880336339515609756325855346631419887568831899333523524420635790420869191156062906787652690886087400675448340751332341395843827061116591426993106909143481864315996313881218278667793681969168227607023354462523852803154533498313195060824311365027471953780458609852336594892253603764470381050545938904724277861430706243487475916230852678290455224525297825937227606755964323563587417473623743319692352194638014671112353881084663030784910129092244887379485794012995683735110565996881674056178398049252580086494351719092618417768826832188780444294313591999203589236449334407576701392148022026285685967089798422720608773205193101504351020846359844263776959743408108595825153880658427216201627549746281266410217304759451150774046929522941744946422684701208218444531473180585420806045030243957853732344927866121475985420427565576808818713945412927191302429807604505988229798536939510108885747946745464696736339385672236145471071623484547709909509588579993866441601928647852069655293918558185310682572709918674630882222329937089282803849874464736427048988474860028087347592716372443548261247258145311412364173334168124716766711847562026165360867541234964574387537532598335172781674108514606134078450812374348919364028132777800885005462738197237271846304869143918434980916918998393212395409985107494971479636465715469709472326619271507058567967208694247193924030640669990166933661055231537497343547991216767606496056798613745500583654200185681000488771142299654437943567018121044383682906617200870571523808336103862679229061650020815074372983014229408377533873441712607530452764816540340154367088770167118250878493378318705425945937872409106341804529820859950095617070682031319182690659992102096922900385906261876544709620881690857650712995446372922319704812570222347042307911073672609845126057168327521868762506570030282717916041563832876640718131740158799135082293385177911457762925376869643619570228957083758848071454992554957128305874328060903384916252579351244997678714195736950519052995880161317156621988834583197374696614133342841871312535046586542167265090602915293814017233010014653225559098792579774354363479106436905797242344618115348633690473030289852708384760237021861125431220130170741163581110279267811538970204369448433131796071736580922035062876508328418601678295793087960087605342993262404449559158754270126015831467192854014054837907299804454481051404144257519678478114209168270613275657370358785887487225374362509178410034834088521828726029792974730435651513010578474778781371673632334103307946509996334930376698602871627957598484092364666008755445735950928801970701069599591657048556717133437815649302328415687749415166777544956436894164883469523251950771643499360938194365516564540181915743462004919686600478875631344209227648734336690488981000417730677116012606604643866562366437340411794252984026126621310636909582363362162809605915792885619377514194681968324270673294439005906575571104628503707547341310100479513533056435271522306900242150668251517061197194121196735329840367446875939620853600061285640007324075039979369265864975871575243958425275843553284357455969238511330702449457013690474115923919711718521244498549793573461208646435311664322775961057300135739155997420604150534384364138729228543874799664960726480845877100817679866895807972428112933955213161845412204753387546567045839955106766668066669097696826741286012619596244876658109127813351433221878105774173008638467886909425872693304080109515192892245349054648803112001423443892182699093251090723912124752787789490029804562652016353641540683757784024062769676568286412371926701039157080861717571842700561802669568323609373751094715655016912154622805333943177131123284466473893483533187062937777817405714728882203344622913254033875328786270927516525030281811309567161757078210003541831991526020142035811574846818960241312488723932740921953606893185504073611213523799847120353470052760246474408946859467593324202120097603016248325588579357988637497976256022694399958478717485288075142848382805843318983954541483166539024129092980456430875200119995403028468582660928521972610466242168104003780660172006302105768357128113322201502092517458807526231011518679158810617270625318521970258229673035752179088464292969679967781910280226904473318670366682705991235493159421665491328856317368184143946454016890408042689216674800233346155484365279529047053574824006354610770109514609120087952208976839998448910548259189801184102242798726256972706152833831854744163330320126941333721834207004055792177293171983681555370044553539393847311346030760484743487856026771500098741219171419399764478918090105655960999637760755352860800740430825082504640824524852023808658338647256018210537255357000624636850628574245651897722609929297897293327141011694311666803747816074918313293988896904507941897935914796272970590264225400506693875442424236681598449694857688877036685095728432070584448668313402184095112899179129946489003754926026451452897277182179465297719307704339149396711116395117738399308894221339342314782592324398600644496917611861242380676243738162868049751491694055202821334537963420496598390921922268472345502314050271918950715361923993080451104178584010515601514251894821371003576539024310440496908985304781319673154832744530318516583990253653534563655852659675250227639801344644633643949630186043734721407928260537751298642801418210260160398221534411229349829885066641847596334160311509581539246284102465205050110728894358847889534207607790367893092629002850426505807333142837910849814253233822714621251388324515946021214606688696489322721729960253017890440730893486341633381168452930016896212520323658305019454457827705433960757006762744717021797897238841695445267319994550958357073952667206743319593462759824947105503708413495204821789506752632073883350465400217427232506788289647277725662223560423673090910724983629913650346659004636545039773412829068092536750493866463706108479255274976412987295845490534565324538812634134747786846840663634069400252554721356587009899297224533634873939895606385446532526443058998152264763056520742211421784804155673742864814861591740749657516946960166375637613455452280144615249549923603016077865830330295275688388574065790636148673286398462449047809677466523769243422699132497813473008969142831953537508495014141842585922720857320794363476032384790324686130040868828344418551872271899329375086113359027154677919903208792481683232750767536451889401493863558884751576691184534038822008783595113283946688745026693455061713956106748805147654632069910985344787088227898735045037992895310575788086575322990761423496210990358958154798916860552768851229227225753859319918384401403932582474245423114327760758037034027933077375007678379796200984339749292565654919203850375619723542294178085358069150185333731189781981119300793597480564974793148051689863080876568913266681313408219203964158010706592357579062997858617699114864195605197112913319371565685546114899931263497276488151358881321504128039110795896355780157425514958837323491586534721560992452718201253035483178273246547301674853577416708022756569980008791228722666889501522692070452226962630294337717908054275212237021655042120544693808139300508756074384635932157996354731963922644503347782471372400699472081657980707983122735327426577976569018760231945672501283553876898336324792260145655783801449313415817148299101026103730420820231272000494381475598085650311435267279083200804598205553253662020566418427655273883018180470938480938396603775425612589397702979408786528624162669463685167915581534576594210313323672802639124249258334607308368109710492542086312699591731045297799227121633029135241978485663206692738078342607536274058267676465193044094713002773327908274807061080508164296279245409245639962461863938955663981605013255653147544943146906402574171091069406253589414032490807562089579905031910747361154300646737027110776010576599114728264321548672378527699195827393510805118769106044159145354829934384308135742232484363237142267629152735437716765704308934201785193321994685015823713530981113315852002372888614983054121082352380921384779208474599323289515109404688753202779208520086998132723003657185090397949309469034284253373263338414730174272577314873008828636846204813303829489482148901487784374334997229520803000285412824006781129105282283060470446156843643135396931806757563581509801841076032417934525889478902991956467296577371022078236721523174498263899634638329691416025067956039119793779752447906230141288632466306658188536571347938097125659146677760243195746549719856131501337099188329707628818302519605651364081874539894650161163258323427445918173437346438337352433742285843483089806465290894162500850089866676706955073372828622802041919281539638297238390268695660794827671113889935069573529954215453669964641490918409510257788920382102044783858258885865337853192617548896094964499428191483385095497395959499845158735580444543338149106378279524253617908740897966088638118936266788366281531256609448040681166859427294853430588146834790482955733410503276174318345702052031175528474482012537436874165324794064054036046976159672125199019828368346600415787553147470080864813048193361949536959897983539800521955478169098473887517236098378599684937898285106155223765149949867314854430338431113350724139525089146012976451219225312459987197236544438390149554789331022265364325165479689669371412226913184072487652505587896188038171120967515495984535464005655361057471389181980491965445109101214509521653922989625569723930785366526841870425730520032050180709216354579016316978475247292166844987806969938683344611518993700118210825399516547053533709235507581271971471198646905900648172679432190143531082543948166087589516672323184376858549523769021757543364091414221839413293955536775169166429682354498760169515365737378837778807410884991972786703178514841735420371320879290341976583774491144486095232974412917359698658118920508534847296449417457667470637471731015497606174704061210105106097358711236271042182090919757032733022852899687323559607202946284413726645894846465823243745350289116443296051349646304118629077609937516356154881087460900404611696856057812382676922704726017747647024399218846697206027666484430061646342059712713943665340524645317277837817618575079033621327904467518743685523651205679931405762581728774209860349220103688766097505027838896783558736727874348392251334539058787580876547659735201071004987248843896397904408719936535412253469221761542055399197201083898715595432570098034060881522661021351615578138637139886283134113570707354802754576633193528524337407697144790553840631008966686286067451157177670471955549007177680043661712284425101441136867204747245744626367212303887267983198766782284502598848103486257768055134502080081935965719445027515239652614224046753843060115817958578947658898347373288813887204259094929073219671393270482168011861773996616470403573403790289568753016287249937883273970397840515148123828865128206540666906745519349739741017544849652056826471877994230552978404463287924417961465794320679144059139504801691014131436789552570288319436641104116109225563341462183606902349112358359517317382299702465057670902135120836055061902524776653145960443037829196486790929647354930457468000532464999402580584097317045015135031628042603175019402711166758369450219100733637065137294000432458509685060113128036423037984832361018014104744576676424045565411196479715654482916439635440465547832085653851628851888486675126384275214426706657689950467654832312695328308966319417121552808628260226396690882901676156558518338849112139663405167049225232337919464177173673784195387387401959058683911276750386025423589469784676807511573427531608023180997394644145717681601968519147457636321132145497467080598035297241424075003490712383827500894635971714769305152893317894568470301709622493621006468119159942385339843103038833474268755193962573560978382183299372347531665470122822991208774355153328225711544171027531980208495984083495530480093998383515982498082701216636186604967711705375337228119903067251825087296382596579326184482179753630548766136158942882146228108658104963725700987577024137627873166019308861879218541455792547847639836085704850741107830402676304360074331362397525105185136445788401062252106564621070796342253025866621258057320279618816518878140079756774412319435148636328384973791917706482481871253078404482839601824299849739461077035432027448426861302596559492640181292440038284478403324103623456938144778487500777737696013118927706388197733398887559652053533111932707199217579388427214208388658096989295275600055282584186472091656048267042021911547676467824147912647408219461460512065749333364745778565636059615291586618769643654860980096270081805117337061118831982824446595591074426230903761942566990361402971892102326649381045064724733045231702842481664127383349078229460276332290660539247659819229141145542549973046874282839629095503128560963359673041194294017030666149869501467308225854649449476243594789919310864387469781043877093440515059713522886610877694858252883398991966987781067881936241341765849040748237957857428739996611949556138815049671334075700587634445758009803675230728496788202261798078555128896816130072665615751254645436606739155255003607928721494261525969939067442543098787895742668032002603510982571492368514228637417157810190528105486572673777911360811711896271733906410709259187180343596343302040634772921087985924375694827932597014343660187556210707208516971906217917325279591953112245730831200559119777764204201527009712396940852099467598848149895736825972875344250393179185507266497141017505273953750930952703378919588582392913348910175916308725352376890842956738162082554440619794714955947628794470047128258112724945411401118934751575970231261654846697537735064227802915426580900278582308906583561078925886670753027527271784027541678311822269707780334829136436014469677618264439598879934010359902483562469645177926824144999506857581132129010455619502828941527850733667801314322838887358304871210557471941077823471436216084899098611359647711636081226790953912310895399957939823917628681032132150067794526604715176024414143826129923705413142557201344581921855331700570133516179571872293724858326816241299157555507780339019731483853485288856795773458174764041449338982580720620255802480695053684319399422859088727743486295491327008104423814096364044468249805759425767698407490120126911254307878016375736554230658503843868987949858789939567447132995160073520000713704096089478174615470885733210135707456740512361406297974591379547848075207150810740161277049203601063247240225934226914260915287894489722617832063023136359747395012436297892359242867030642160504815370503833902317803926347524728459480995437822183664010246433772361205507189777374998689625139305167658176506406457048940200686545102417708571393458483433504730526022766924440123762326867079097429415045096194803306600355817894796905054016825450534521990878492037192213015993887295647593975899984110203848773926394478686390455058338770178375266098253202107052182510410591507480836326252098189355340624476104630329424762042692375363513069491585447048445298516723577347818770452237551713705383561300859123435707580541666325986787567730033692891430095475572778276326240834906799143909868733473519225346961110885046774769109631951502300547394204705104408577363789808624427347892967744347921136180901716132171279033801139307052993036885323259506471294414298287005116747266880890838274529582572877969860102153183234556856593843970293636039518821480935611790126081300295656118547704611259261554219182643256408027589558797782973608747614949844773397154294084413709659028406608742115471800211719974149051625230239769401040296628331953956994632466592476761603515208762809562569972256086257343082143811364925344977287986114059947941667074473498286330691674966891811915412085868860960638378132178170870221112907328624919092450448303472082316547496697967454690444488033220431126439566680654301318008018621288063689238743140747633593227121304289918352400223111471147891667058859624296036502796442638522571486974028982843723849961738779013815321840193209419028436842473730675025009166633259370224797919385891753539949476379780244076934274006741706842056543035189794413819357327046336278918903631038583684666639296418525465028633930340454063504043129225093168099350784208025645665110608505950677585532334843750711799685453718556828016844703334488973486300751906207340288749171469712678289326734561808192718487352135422353832018907385907074794904154323791645475055954178040191521428635387033136577302110107458007385275865709227828778830475713521825863243238810096576387334900307760161984943800566196143646120397832137046182268429493462573964744084426368920218758546834338777195760091214484021007377219088305063902944109983792142182272724227483326094915548693760160886040176772126843275095657801020546594401150728128384154800645937915687159131290825443300006994700936160094336431690435263051169805062403404265358029370828263956657171979271267878599961721946232535002607036562483349748321539794676958651153243232472500808356553764638246846286670491052852084850717028874401938633410595030943185322174787704171008404091983061331666134651444120092740355456801585368438379060123570703504166431739482616723514232997705718463163296920557336379441379217693723661369353356765261742242483374366725262902240370269368779881039858008982231414097965982291591277159329608839889240619361946784632883582707776327073510448737213467124490394769590000550579552863255092173281548879436183632720375064607040778150076675428470982114719249481293091075876917011305622863270067005356969774616757900061551032604562093136230974253874040576479975670186624740655563677329632498276862709120669975516625269155190226997625962513741067836720028879208368000307633281972032320420702615632999529088203521465898663510500748739734612971234464857155168379825247245112767469572658857329117166866516669063884426456498478800683399753315009893259682067830546656025558683300069246478521896296755121269094348872382209841410369254491423532165321333996702896267101886308813278150209406299320336998413445473951611276937524514311307785522951467298437516125797311502980664585495801052029839806297219676223005332115111799805603707523813109654462450494339750689555614789188843048964511407064653004857424977234138702580160510687829079426781657923351842968497991718692056225472148812385459470786500849633609003145133584918906173855950139327743530258448101416676991408654042175360061205264193894892235331218265825090605281246155110810045332845101375902718099153043344284423182030760148971570060551122676352960372370390655952808899220426167257609825631842465020962089461421470615683478913323589914932887581106402576609077772422224915655923210032372049817170613571184032855026796217230067610189628891079906561967512040930061789287340946922090919934003166415907888206983894621361920743481355011728725310183963166247969148554479866142050020302500583151757681094737827182474180959119727310006842523247289807994232864309000988360799216743512219532795919995646894758277425532335837536610364722001355938650144489996788880384262353228334561468682373285543865779910871181982009838478170400704671447578687751100651368518113883986625599713671722537989870263405601370395692468697403137555112022910020585796037339594493527786370192517998835449606094420865657766057371975398337502597365860472169514066159524127758940408901820411414376579738983148182869811671505877818869031438455991997059556706647695385221552643709707872321536961466792072529530325007277233231739079022293688649021104023776203539722175474493545352577984403461253712348881950478263249300391203337826571676499121386199904960715108379479156103910447487322087393266626562622494605897512662675258922124565658213979153535602039270608814869933026714406511842354371112595829865870541055944838099878470912630901149633466030718721963185937382081339268788628094869433505555332671564868687313846203925322521919019090033886751933252108566990090469425236226057469406954886838190902403263810529850665097097068789381365291460125927338503286278540664803087142148425778613532455637059614692266073119205351052633258592598276238888629267664873045060641993677480328052273290951815921054782230194901423072917872680527003408932381798907259227674885101494404018139162322105382490159698370915139567499120703185830384565892833432651236508619998401285894682500872273233182385074528202027331918947404173931946764043459156823716261379377887299419585075092245765551823472402699449144067821698137261799193133876777668662925454387117396866423552370626389925564371231812284353817821501725764928776769268361792118981152747672387998297964517129761485807444366902970346473275514071712264469531966387161850667537473086209684436309184906740425639503467088561243839917216369621500654951571065953650617109507911367798973619338449637751601912823821801176973661822154806166006467430501682227512935877991932295297923813516755532047756693404907378712120691922073640757481321412795717089383624605976406571081864460541388684223110003315763331473961724578397514592511592658821333937820255962437203486168455158445372037907222076281530709062725997678657781710044144885928707521800560727175000743932921224290505779870197778395872375224834380391765966587124379801399355302682215524772428604580521161884743199034909400026998425651164343644433474382624367761735326528092847913413325776233607107217363408907795184823143497687184385382434128390849136192586837559568064423407033959126451423999933080734937471684229642833536495304281238353957617638424328243287209873605636637692153596602514280002665422046782900335582606137912714534871207057735486790938924147698273483430056991920083733595602950132511900815331811696232563895555513552500577845680209047852798429039258723912698908123563928353647718821342478310634534478642468576832989483622090373632177161081148251239103647347432782354577942983684873226621075993397066964258222951130963239174095620245583598609164818848702549288513469364212211659872157903839983885993987146367847116946827605162405479596416001485738319338274072359758721880335178142078121394851938445920953008476872779220945650889187455661714907180301426688679279714735936602699821181053775414796019812364572554963457447521738071863739095351896285750031322488568630379367824914716220480820624059412648049214169428669433523491130786373277799104329021336889630869101212909355543162901179563606180982347680016375190820616609643333109480101475913301632757921478210882537910328238823025958807448107080720201913520959209006594668436674824119317046076859991696330240765613205827840436703793581517082958862939032364854102426730073642928748703510436932562071721220287791710337893284506444056450584429818710604767308795415238193186524945862768457502978096591283460465070084639589302584339322936138386296983296043433059458756376485360456444053957962123673904666636262018473505600194595340722815903150687750430030569215448406017159917788647090666917415949040859412272481600656845855357646950219400782823863737794827256574462875964999538686890149607044095717680156245752836434227193268969363017954515991954271516326931930358343739480319176445449438962675605969578921397911024469062611959641308078582160286502159031426786143459027332636325102884059368323494653782775102820390649673219558680437918836248656300258883256166458538813649199135330650803206382404155458604199071607462594666305467364192699484688767100211044115380181952164738885874180247140792447272422799767782491317049111460454664015775437837460186892291313893822813149931595839595851176311462600413596114050181001348114859579450337787614450052628899545247409874187049766351170080309282751783118960023518363752216791344299206031204189330289943972848012331651014409688719851741667209333327951866084138769775907642437597516172267734610207216474983520142604602020801443361863467448757894053719371542141614282349452257075773286114587889816800146030212659948673560504687291098948231927170426089397424161209551482553219799037487477762093856437277069340905520550949246984538139470974699253062723290042494280335110622173408726384528691583015557239984602945031040701939911633143907657623737298633353122058460128046464740988258238979169103483156952400136916161111380242661977358524811633347002934466830686830760245972702624621009825947094329760909042064901455692529621912348523596272714943180789431581770175460950196295328754405254016973416873501056947875462378910726734545091111458693477632797257258855552685887195965337072720022244287198950099836813405165410630413975592062527805933822719517843447281583556170818631359507242142404982025902593091022935693741828677685666775735364429933179962356585451325662872554929157897719360686054018119163974143364166096474340286955174077350613343831438884733160059337813867485577725908177723830061793313083420433223714465594600477120485357770244999437720721309398923531918946549456275328417661645073448930051221025867826510340814091035839872158918556463003412751191625243849883971746566761368932332710777660454105956214308684939790261724576514258026246640886920252339342099402166170382578207800598554574677364567473241779474354777653565387486672400547027696647638968179631267877702342778878929267391168266042682744862235809169962044142366230356875887322651685221019394559424288397402512059846846342999078537294071601489104940725992314631578088122157081523992281981365456872983969750671771989860073068488137582942235026299993999224645652904985054954500922196369723027877081300369004953162028085591618895620898669253506941548516167929279000897588862465853399775238694584300195821704346002133348055178369670965866928448283200558334906564149031621630757798196274419645048276953121286501937566164083371669543491410849462448119078510744211954058142547436704034961527920782357804929484141939668100104422416524224148374972316436032131286867756867864662120841717473737867878296338935680811087995814344245121326912846448661964007101962313695293291475269593860050695976158440473966446376949328511670880891277968472026406254427340184306051358045456477854816830833119568670831568784631979224321145627498738440887828603821869917860671630522018149189906449018597996816110609678368085350024667219217598008673755084658854774665719917245332053355983884189787378683735515448114206714766776074645969149525415348116365658028843069432140578230124918578108063506868811460269766836062834177743884664557528966807023775404775263117897020471126133275352769724830169983916730291740848792979901397098604202369250257797030505348884153049265175758996102624287304178840764215996534471612512391930665442006516286883651259584003963852624037356520488247748199557356429903128317696571471729581806344681357453047922577875320655593465336614132174221524598343009942859609102907635053593568350355464907509618241893885674242037471865000842906871219200967837149053808773103091426439353153432601729668200567500703000313450566497562809316756486191280273595747359200007801926957578221555133171561815233094299206216665088288500059175485950777040422890590572601509435207670199742421260682260514727102241100797997345512595746656777469949839491206448072647676665299563819845901658523386878546068983283294139309203604109651756166232589266277815537257789092489119581939599179991835664382879164455922159290009891031373526628867828125724683150143988616369007907738677793857114093152782626975320982041888493097685359646160562822975619762655420687993633851021121789424281219702453487167601233407291231126123832000471641354811333436800157114410766051780011730315598716069170267629282237359569984984250143144806859981550594509102957832801524154773485791440336939466160719550097637227928372801658876897125126550390423489779534457084131793865808330709468060157980702141362710999763646016674700517195970176347179658023654117097408528165766283393673333907545192568036580723340076114761376105224964379983989884318380905386616217458062934275575643575233001067931466819387473655610455155991133648592570872791189462577694412127089086694301126017954600274835756899043205930217160316468157434213509516878628382140148535754009948220074385861326458496195637979327330935880755946018587823346605561490911069780829656276297170354773000944401717519783725624303480434856876907334527233495934915163334639643986373391280745465953867084571630718584860974286036859703646053813184317292714776509567596674756739052141193778992059341209154396525773629169643962835294324629179248571414637477115175673342020251358292558950851928798226000050913348359670949508734375390041811803911390020433125670943783542105161036016052401391061330654249207857297511662924940298446804465317281092242300106279751918061117778410618099374106889503316261717618102948972978063174723607242390622254198003535231872673945084479660946500934174560432880693046038091760259513532134715461967524538041861189562819681516818686892221186255025387968814862155863354627255598415767149227327756538862891771390338888130217567694417730818053135976153251075190398133718426200953994646666021087298134178050681899956655047763271312542218104664463785995702477703057530641222118910437741533924916472145555985061180664807834148387444543870541275794267954240988211545890527101397337487319947573517288754864017489538558653756991231955147914777268311269915069003587746912787719835847629730135822596045693375865443731716260527605314468525406442654868312310710226316248950515634071950702091626598501801682046561479884907952037244774304656949652055490955337051841470366173192723166916208859197709591497679237023004243376417778247760552862531874589306135528175098173245422541481781412446666120726067272556491147533189165816404313494044094346711482209354665760012577629817207268515247092415503302226102634182479900669291554454033215619827735524190168596705879867335911866850067778936347868177859358165260431267010805996659685502361669545183128252176241335865709545920070350178408272768045544704165993606673390820440685670735867460578446095314616742879196893241408832557412242312695742532770769446692055922374074748326805270498445622990171010798016712413261310370746583436763516879229598456038186630759455774597049581566891479114084756465988591884155787908528162554041055486472145447161107641240529396820994579718215667001549461547012406520923772649852732561219634131344385100714318657582990840462829055479428218356629875305187057553545687057167836805982098149897249863214219431660981414071619319451354509438161198317613214070875338116146948033923513406228176263135365870867130466111981376859099054690647067723591218103136435293268471354832554168236158783207434552497135119928594815752230815974034205417958812679986145756539045681808412943718366758970789026027593485962354567549146924204946265069168985924058777577566129607498725587575424702230029725138964748152789542355214759334737565285921738362089721594051674993482167258841236240498341690397474710516354571914556580483505025271064496271330501669284087861505803096631294608995613888365264039428130917898421410699056620401305848225106820456666013214278566682618690194670968960734262437995489764866777109826430814603312809787303611405603994906498332429350444236476501304011044524270852393986879486101803386314894703088570136040557701114640904229234473400385728648128027388513823151029300504232560237905144390811202109422596439059167784454606216734236276998601440987135344187949852651859549299402737767678933428260137376127029609571139493469330579847384569833491425516854897399120911742357273869392503532994253371360993192850087428326383176876121789167103967454521275675836124379982231051494225429748735618296986657436485779499491944575039404421624621827953870011004266399852617082920694164085225682822923799477912700654818938140448162509910941573947660817965935769766955518366372275821914103641800416498402470979397035250547473069224044949956492999234060151098318539490465280528141255593384478345678894675754884003114858251096678421400798282310491624311535733628751741085015962494113669500307847797613543646943660028197663853620088307965650015685765582993301600837508970282975453234871696188387142011655411552697639335810914998845280857815622966787881565668723025076919590532732466836816725459781942670701763551929378435200893578051249561470550869695941679285338162692571495332372444504688902936363538410566685053074816043462740634119364952884771479080727511726896579990726496612086432091158555640191659525141746001170016103211388790825469832579112659298721713650065035837724974011423302249150315266566011934192664831769897863816898639994161828706627290464955497306900062114716281601560781308528748194476202304189906364948429829690374339328995877137163905461590240177051101506063153399144299448302296402203418183176142479467061577485682122889684692355127893156755111974008859811111668415582991642576656410878289874417124706459047866232824040796023120843741454940367816742999253187320356982635802637516263367946344276681566595247433369591452468014139137168692766566778941960411211715278772808991481716533072572122260081643994831130910426095535068702577388862548813453429902180737018569618013448070059456964482309159643239773916522469856781613212783748960487685915009320711627751599097824432591703543229494973016165443091918794374621497457491919429466542409555890669928955197673784387484583979741293160539854454980208262512346715246360702747363579690978283454967642806000093996048207714342033349872833659028479932259173906232758400954444691555488544157824554849206957264867345422841379354036411745771205411228084596057687284648406688177068926580223995005958007628437303458727289592409502675777779265313907789533497957735862238908843161288394022072868706257420321724284829553597663327146839523801060190460357990689671646756265529080609627564431587510800283252091376593112907506743144487518345527013792294774538645074537489411953106827188469817823410371306104038100405267331438748614109701685139556786447604984155495558743741296188931837425682145961386407154848404304090073277986118620394109767702772144764072293047575254697113783483763178717390095504302068549776777690030104632550240140195947639919571669102989474088193081265436931246144036861611884777163684037146393817073443139860078600937174382851149461390288681095680800861169582089459473490060225167065577196590374488711006244187901925875904778567702235695930618508063575398821680481878400125558149973272753923653487875769358292838987475671377054972510826040222912410663790380496985782595738175174292126119450289067769406262729484206465941076816386662363107575430952548524803021989287070772470537370648263960542165857814672925579570857187913518550901887715463176014873950095810101999162600695210540986628886923421988489383716174802147380321524112808725982248717431095866421056728641708607242135608652836157717513163599018113040829824052027044671414882498716535708653772100763509879348053742372854091298175917120144068565110052367451181369499030041717696414854829620552223741194721445689206851178010611035451837398892144050890647803190293113778382079994690648593586658509286803103859931481512860484595703720640913287419511172243026661541363056046216093716284501437986961403035237722954008370503024041163853210281762460985187045235889991512568781971469244072093787721762168699478443981529920336570433923887594503078534008306317333261031114232569952739671505523721749385937736221998586071431352999747986923905520771770048792352638831300879327091902982089333173626556098024355436620456633111470997901010502186936986527620577385660201957194668897994570922846903182688102184855861141154292314153499088763841506784895475965502328591900248137908326690065219837649756185485080280756029850178558153638396353167608954300044261523335256637084530728546299864502220289020922938728929116157634111112130618591744954088586114569287365488480234274743938048177546873231979153972222050075792555174544341125524997658752941757216159256190500371572524857863967854814085455201672508604366871091288689159069002862139213785928873452176068477544921025884435590969445622488518969426088775794725897485753250916265302505295935850201388566752834144825738196997271063272406064024270599970672791927806276114423865170516184036104022939989835817840134579482628554439252146688861749394226891505774807115073859447256273896563768475828746929483736789995671731537656362754665861262648357501674251777022480255797871633801446913137344392694283066911732105736571081955399230854941217824099076615512874218958753399084358986272105343240571207994969249278423444536488355991082268313337129710955971891958921765847156579029132861941495890405549399706298948141742950815651407313165377894889138147184149891075640586906792106249019634416292700956677475535659802376759154571287874216766045093519668965325888499154410974055043892101691540811023023750979188872453484163642868218529670692116901900371869281703025187178079356352263296662210605491425716920925008663082356724158681713454028253424270086238681782869710407117893338036665529176209903446655332000062905796319197667297135593631384985531673082997312886179316517980910980563751620655805060930247026838119886607684818910866966355664127891020156936039192938816412365212971169588171052272813477136899363563398095244168939045801333321307298215050261987300818274668006418279164040324875037830053913031492803142496545624604857654643795896763114083014613306865762978793968944840256409268614596632971198300178930899200477500588653262561892167485248886555360023709605931997559145551949664626966635828818380848297428296437453605316609146564398617077206157981293728958991573642743500421731362895867995831200243231740221686737202617196169503527085243128347880792105570507880236608584217002092976705449632310586474357200084730666605802714045150650660394643792620731698364502701074607883398745099990260463989689585908901480844953982742309328512605957041127472485034510781846876164145377274520676771233173382438324074666424823195700277857756884613198896578168153065100002527105682082435612209421103478999971771435581004756220271649575795341933898632983831106601145288667992543882191727845022238170054847109159859357733779199344614833449064733021639644667303695700034478728433957168204359630587004070422345711023152239000337673165898051727395967368265184222332727742168481921805036168565634325594242776067847329028649891572086736922807142948528993490959893200838101288534305153227301284613492361830438048535512942394220111196086171056097910952074017838955116028219548017503618012532335173728963779280278603026537718351651193258138678643917259502415613687955056946211607667774353743079839559390163771183727008495281160393778755428022546090317205374370460718620191366632569293102925510292910327098438843969205025178722998732958315326824215080451163030917960531256821911469456227923910186618165273822701880570861870933420524573593240135490043757411394317157968023286735727939658841771203131915805051425125498523933013471571509033638528595728265173577951017618539307592601051649354306683017383642138349590216150741409597984812419525230256800186698404478707479898085163355971589154426607907411504680986059963716900869746503006566773990085502387203462012383935715224479169563373569743767366406738758717644984069877279698684567312019758280356523916382169626382740768003981683805593600818781141838053391002514761407093863951707886876469043789953371553360438426454051574055788851945425704491478950185529077843860124987453813957403482603951902565760336908521030760268660723657688633680349792814761273958022551592969509568445345719642020933452872458331232943275010792894780429131369144222742487935463992690938624615229478582364207397202103623834230823152297622046551522595737206348141699968293324403314421530026466813480239164169454685892790548795554556030753380852915372625461814999174597924727266316998075917994723761665848935732840211506397294653345672593597367665297991840026844244621414678884944916023299749764591639383924356537780906203276390053200921647570739984135481794336013198579325849777043377659392614966024709749759505713826702164812815677024027328545812262307908928761215657539283154357080347701401812130047033049069788996434256050509145062789693202704375483714663338317818976935374452102113292368101914797942734093093021143440128755967288328968733613904990686556033057741691209721269026655370927651189268715687967089058310609925209674804637059621570055335982981844781958121966947787717504542006305532392382886401202865117772384877699512102423462445747647494010551337673837415859127174723563280233207068294336446526327382275273318002575693914939089673251067758871630051142143796899859003910200769947650612601994686802961958635504907385179419030295285251239237505283075510023445581846559606433567315616349314681715392928265383549090438404415412448646291245723940201632968064330219727486535783259561260655972315978176238615214657573451475376566714734312657111100910339094756924420740989868583238598233157301679133939925455919129165514141819124738318848100556015746726526547108438529867177044006081589753585719548995999300526675422553069997388140391070560004481430290447470101659505536952308378523959845763478805615188297009608617338464715662906855868995798741834659711543636510137297950789560816207602436347038215250837902643722333728895168090995294066447855090521607005958731119595820315571824083863145378077878216430812437619321051981322046193762857217490615629385312474318815330687432511102116499548926251957237095562687551489613106370706995353088955956052070707722175786442973556716123825113179877034108855010923905009050431155085590602463416881458473419685841809970932672006217921941608185138565324454903024655329093619294908988404631552673281327312577236671324840664079285108536672070816422173578389596941890477560725876689276795325569818128116279559205378526758637268825012297183482817479208366347610630495997821520868865569670047263148832035295256468618996707022602378124494117146667959016445464459722809030261777619254040046294200560790758098845705982208814765101946049338604565603579422098969194538684035769025563205514180971548475903281861314231374775448085862253948422278530182625146333613214708524257251753394748081231675040843997455605274297829919557546399986834208056888578784151131130272116533744559394451104638255143807413785917456743327432325378967262715446499253269612371167512327677397833849098708929109396350175694175966826910459877871239188951647404641107885424197493930425641086098692377349633832189813279883553518544071819141576365920195415420294974810297122653419227047964346945625651636590331244173531571974511861285348436954479487143354818316945163931924601823398317460940869903759385903496202416559951961058825175229490374117378479277128309049051508589543682606924332275586606584235303105446765635643977691432763822399767883237323575492530516860912384027223028136297011873545767510681276597585019028815434878261119648894521156560764659746914334479389990900997746599202738645727523195158118622695102767912510427249460287132972792912060416852655698190945938684510638013180344917010028023122206059561686390677469127554031575923805749485837509487474820747405015177084131117141622442855427453138019121629539287828971744554247262683165975783194770283356422538950568095620650599182429399567743298531129349493237363815098503764165622366943485676270760230719909232551130499193233835595275493418581033385664764327930712893550125412916112004673291233084308859229900953440019590151186546456853320792842451792719161413090665066538227277081703248039348714206195629230181812307429669218925553213682619353330447446764111725798325241093663573172058815461258740128857181506933758795772173559083462241810133234911612210349088501724165514446083516055013794521767393121975872112743256517217141639328113013033994400921636830485159291610962600796956492031588091420635744169714034161883373905713585425545270504921023264380951931087070374117326001809047469847356046671023421460560972127443185751861977585772693915831683651704672628789405776002422550401725411558961002376814454840680187951677636908882488165099444296828076910735295269996176532539141010606758644173388790474566365712232062056141332585198549511826975228882775733588692290159793697433618569245161174285926417151783823008749658537204672088794394239679907875050426733026843612414389316406997076315569459026623560980035147536662403292645348806017269151757185511563800967733898307723157482473621039126694392561185690593469051829795959634353003611014779366557074561693043381747897889989348349890847049394836138388402661178254552477403707622185680686284845775320344318264796432599071692318608035491135706463645141567771074290386999654343673085857743652510537060919685722402235350133524796178658989092062727835927484139533026625754608167643791563163618569817092584833055069309169177786338586947585866045561912836451058141910053555753244810370649636507198428435226433539357426783056468960016335959241194630851455787426674394543341631472792549174001566404966672946962874509993339530805468758021591615846628332136709793825986438098640914825930771292823935514062667009397250688833310767179571506322730109700985310720450426811247503982779867652246302511046447103184074825618370336263867019778330617087585453079857600617318727325904588122047540633542019093230161871610633010121354791885116606121936150374194823192254875596630782485476808397571422291235307437664264522844094533764872438830342453352010957659166390835092854100940914943294195600660085327201256475817804447151198481155423376664995498414242703615244204263496520793179644909650229542124572913790357720031206715908451727519582083250933945676031726265051265946094421100174311030681987215838983747501205775455090724930645266917405519583972878448937572559507703763054916666223099709769811824005293416245071522862429961614979683898236470357080063866973725071425805089998330558074964907470008100555583033215939473389793027191749264919022341251504167766677385823086755551614498228405938240952088396556042267627698264136915744454201502537407246824341795551758710161722018690723192059969765117760788065740123350255295903047820525742195435402391077674921226919567713336822505857743170878230084734922987102891871428762712793030543878402042220439260899398496239113673412446247035038661042009926333598570552820240319895915241461549502597071480213495321576993576668255402355392501679269499476139962241066610652250522605524148433829401663614160221726359124026852305655042098543925825581359822464610419369251133868950057121077683518116458142308813429815802367683944259843421064919369421350240072356521295159872698262819379706157599217182899518997641366441318594217602364481432623029154272103454672557166285364154316644134794186052750462488772308270700181691870141369079788131407246140049364415424427781520956361592478010835081952703606718984750863447991574130831666463403801017385477437434065492645063733089542725994437715402779373264382517266636415929233697009212125049104954147759184494174444242980879461087743714197649327928387899526538660787808474220120562049944910838634233680700087054526083118163370142834847388057672691309466361963968842162473095631738722201407820894512454721375254057908900432981278838747838527630712729166730583895557590100781897729684289423102287626398442725371245183049478918954486316241431988998218226475813024473413939092380607685821246490085868097879461683032970094425576222495231168687144028634743897222015930004757613871889451008060027476621920195995851576004308970915919362898183153755821318576157267585645564939567297472097963652875415531808006400298762890630176234671933305497831388612846063737506361774921937306604431013589256673163351062178460786138192518353394017654627017105135166146752798711933104616914083227265342419642119408791676007328578833257380694769384763579570035676269398002297452539633057012240667470487770773878732301397342242270414588929610290488930398554021877601539127273307938894887931957729528525611161505895706522268514912098481233475468601699031294902845060607456248578225839820288937999748564004664079278455217834359532911419066794364877191246000420395324590359931705600631628922383031875903747461798106388372940235611511310792720641985798157287873801151620051138624517403479064111409668374357174587445324186982708716389716494149219152501425067711519967943502224346078247541631090728896211619140523964984860289468816875100027779565678032040113580558110356277401101010983762453094826761787614988543031602534184609968626516553116535201756796012587381794950606279022207348367813096823652375423417983598880604660572196184446264680303320967245142029173817158568858664525242826197056435557094282224050000487871061538108810341531894344723985268473919279965826508001766435613691379757605699866524083561057965357769359170074017816163312235577200226445678179769709449682363099194195426745682747467887403448424717499321558679862298315231500947194607582945204444808229283387286192887956380192771732196372980351844284447750577055684814173204996202768676647942135846955273224358860183311188868868424100413752194365005598204045936625306781295563501852217880568010859101368003182061880740358153191976399215876213155241433948129869620604489940086455134325024861203122655030718789420963510733265958726837768184398699500170184017547369126876294518143490953092057915697621097997049845815746002840321097277013920471607146115823644977782692766772610303716654413597012668851871977397171386697992684859536362467525891092332911530556606850408743167833098664711546795536656468836506402684692132221946151831292737458595539824684897902995539690770244939421003580222639805519656912392645400900103493737107099777792869917287561286633091505379345016191808128734278881424946554105955501935581763011289488744959284974327095391613637730509027342684721946461233000311282189712152663333590508875126259676843442409062564131058609247993244379496840600610107290736777610101109322157916371764458199719351858437265775796425243258085319409200346090578831017076302604811585607173924658054852786625715245814519864975540322500832391681832807845596451442347132066014634050342319289471912786909389976157634639588084758222771519189043629121151294791453859535160085044695821686290105641362988894541062226256015289262730088902459539576803052876854783426654470846626570446795164067752192863601197577978822986692650099383643722467461632198268438302730898289545645893124310127983922373208631810623803464309371246594817173297638063771018948757327562444275743533365077272182292170824436695210968285212734600439555592161521854275539838325453143883256844132468756425797179864799952971461316891326927559480521358930113265673803224786340099544145742135476049678139980117036871087951771451005328995669697837436325138952084669090463084011233755267612681618907987479382119424398901051489131648147269893388152815532468586115838206567812507006291602214011001325027992347455438281425171104130365574811318694044699604454694630947723708729615118133341088139721015525812553004855067962275893282531617882244686756039301876374426633546627537103080230020726184554681803298375819653274950101506631220014060752013785707585257489967766054822229137124992044266815875372871419082636079213018839606679326724058084344571091973960215375309449604335834863995110011749474436734185467629467248141029789261072461694334422065375111333532346975420079012276803259518441168734688540553784904675897778574826939530509742150774214371959550163512337231324978531300902214955142497550525752157783147595290792862600774769367460293159904317639091485591725560452176530471132916361843465210339831562899333826346379648582020394190048657847118017561607430293552294798721219724318716439843329676133250614229217005966368346938475527808240144574491485088396812515699077677704384587776896602393700380399598438379241854800158177950349960866469505666240248483674957625293706239274902606503387433145592801498878445000961844960840583213717539055906377933669998239833782009106664282648065828169598860301763259179839413283236864682401492158306583741128713931849840666606457612708719773528704705259866592567830791226347799725791165635363127930373263073495529529938537013631654652027921227400718034770715602290175134690438781249481971172288695967970701227842132832035249970251788756916007739533068777643121310810102015943075177531221693886623548682997039084689483881234041151330212152413338659656002781530269437490749337084952399606567054698471125819208842030666203707240882598036705769097395284028119889800181070809420590293429329337013120515747079188520700972048484471681807512768936667319432727147928336730320135505570906460315437750679619892285854502480039396985765708893580426019672031885012048941492636931242088729037041044437176099430956318789513870996233412099919212782957969391237650844596211078626017463372386828369852828094272111943732663002597721676664294879187546930752826431874092899009687552562182348481890036631148152715042793942692801309884340747916131083777215504002604803232824903870751181182138754777805187225224842256871410759424848577665459591446143241017806459951385908018970604995230422007311403106930133776217247971995080639517242102393706921137428136910022222213902024850652353071781061864256574007422846744260389879940852441572578906126851948105385132091284119970284387498742025819385303354029242997163348471967148337631422998600519500085738177854959060290702640389914506981070956752730247703607609441811224322676462252988724659393791252412588666361587059471074760112853204168017006814342553436698100063352373807933104310403967116447462587340438869504246456789385740357579011161696501896575946997298557158813542084797264449341502655294307490504471870581833370142610250905519455138784568720881840691210882554599013957826921662005098500049154161328312420704483289648355731069317283623986502399319651677353905884219422253827933565549881071437980575579613553540304670388370514748531878814036962332397825655778483337331377303165087575811807838026714827843359135714767170762444719672489685500124239832614847730790949858919586539986310269725662264029462412246221656976984784651185937950976159434594439873201119054990113011411555455103664154640330866074162280402277465327997853469164219905147003050015465501638893032811888123317500283111028084886761751138764531327594928773783064967207971870672047651812712868274059823912559271976008674288037263772073230092783032419251619863923518034325504128384471211033339336657537454831360890113256166216965061940113096722930315645579338391139176216760990318552691741362840281406462553450102593414140874982646554268036884641159082903435365820831161000013534137434887288045791432394196323718210584598050632471343587111435954131472614272774229915216368862588560609110286903941284040117163770975433003496053694488470849508199372438909929866594466049012951025044764344004664165994877755135759794145664103417592743437992931229887662437086382577661044629071983350745845183470597446418566447386856091014533079341360022103398826137025002141339920072220823602787000798437883529197430625741079665248921817073133286520648170382154991307811010093743122364190771728029556606784030167870303104733629975004524383167945464224929143328817675923140168537855487105613316160249764111020235927523291377448069579145366243084547700759808612202334754343021436719906027214446483216900295830516148950799482496119557496526364918911951617308688158643920762288590786212596376094952445145425886324784008941020431839832303953009120591027923326920630128572372418429434520551098505161046721289267433849298058918760003978692422843067372212478677753234730387261910472200890130534254251699138466912102630166923232408891111870712004914502794912224599510946057767722882623568991527880701997024226076824857641511275336691820397180089030480937844565070025452456573296436818370157071483484518624636547643537390389900372788006328667713131523303948849398464674163444916689830447677718505735040596027863494776419352029645706785454937559493159074356839133772409397495573021271135742035510866182931641289505118561629177482003646294514941605675846115018005001388832174262822750580168635629617980597266633729803506888002301270713202860339407423179810104352746570526287874219835502864183318529257500825504197674572639798723264208522050194411664241536690907964700101159091100887405780245693603185967168945323736949207694270953837706558539919505828163220160458837565823358232543878224577673658587959661119539556166865211374375716475672900209935992998641359054430075740140019355616201855988146505569002920940127067464234047704693062944537275069399890825961180785495514741358560180147177061555530416539781776925717193688143545672152127146768463404310436796666806796537121066725962707762779658857610112762609927807761327082141546914791009277426519530306977221259227788798323522493080125288864391324386993903595309487800470400233168479719890020061984994768853099540632820734871245136357892814129642460398972823776047868747289980044126600120554908865210886536127742429380940372421223040029430907189440989571441397558025844539336411004343569685919181767917864527996571006838952775561338709970688873098240297291757405897217319728659680360857841523728641834949816525468291361823363028625163375954744761918284083254930210811780806405104930342749180553888752534117548038309282760677391183775775223137993462080085236652523602502658999667572865229110725167359628320037686546379005173215262193722362936408422935771655719890059879709121531855572637749449306331454388271244632419396206965532074787962506542883241689634027545516365167752021955549898247375954242209140599679939175467086184468220622057805542118130133133272686502730651402299447426962068628430081210461300387073611087263642166703582156074264460257905789708005533760597099117459947116089709673523762431568948293872231580933091087917980266885637165688239754960624407666809067481149043689834652411695628555293615799578304802255802763389186917854346820423106081000893519351376550019736921267825665852540418778949138465097091704692147411512648030734395863962914803103224836165268731747519312863099411239369750910550556749411997064573987032876087611943896625699102615164132571718997976531163349290569952139998687747278159318812621843060996306081286055983992194464383698733670157502350049140951319084076273141713758974498003783042216383140667790472906950399428184075408078533731954465644905650981459564720828357264090790196244371337261152051511579761582317031222306763302710432859769316585291992501350479845424928778510325557659424791881395929545296309178111379200560487975922488212405127022369927511645889194431347323433512745321215968576259459448040996698269128426013715925665256092833306539859089102336079985543942994897495629448733057164594582928934259649081613458186263769750947117772466098680177442374922408202969368946349278021735419605419576380264870760860958509115664491568667747036074817485735456131163981367679567159705089829467667375710694318127283304971151342254889457632785906044765138638309696269118889720786053417945053288729990612551668909573101565657445303155052163331947091799010941729873591754052666449957463076115463016006551600951397711184557656412503421049451218258333401386445290979623609737575295057110147847551320584524867095301561759046473180899963754246369954593885441679475270204023478157361444774197751472700887304609272259661454609957554943985802149909563362785467151193611783294554147208525459197451402023700365635711229069534137101374055354200247862227666485701686029227948424948324975499331010111344220057898978413764621185133915163745621702601124782955429550279705496184499163751404057006266072124873295209718823911948717793529194706123604253204374665268454170561987879947313424937695165931650921875299605399612772911714147207071606766288845503717372047333914658626071492264344254887053975959318890614296846699550505287189985472977025156277944336490924013475046927399314888544160215685734782787719115813222542811357983729394525105856266631992002579320506556227241365610467496665621745295645372749954045242677936546019947468399979476346470731302274678778207588134982684692537341464075313534481743682523341393795095122786299473241756479684248630243965059443450659629278275619952382013178500078678349180428337201200547551631817039848248629214325011771477532255265484721287350466585640554534272748261825825380396040239938453037653195545111470025078479501029994603503332684975389739387977141829877491928945642964713101369553291549699318626546434228236387013736532763629951920514903135486358289136642096568181230359875576859355410543945052354260901468662411403543053539900611515142834145418325811083308111708290191730942647357410842143818580769808975065410165372669848875974385554457673292098824341222830397686371653802339498394157063277449001553485766957455239979901547396230305007990346734843597550292444432998976760761192968292552918585535331242096280408232625850490820664228194833213056891803271573902115087144815270930067255550047935545750026511744592376064922092648232630055022505342263471937534788189708242039687575275121390584245879544836101613517417989945336801289518040303442858313227952224642894603790684819430715898295167399315759943792174841079668909331111053645453272761702434260097754971228269766961655678450163222499207235464449984858382781951328014159529125043234049358674162478609334067725224969625093642195514534900343207078881090138883566437161009299404315168443588421780964722090814435614967821983221944668300946420702813720461055037963002795200551467844026630167079642485861951554880621141289713197717865275870241719662828442804738331089813106258220778676097672799926308324859157960100321332681852959736304395521414830693566656485152163210762291732733976926723335707143090906116540507500216282932968151536664344663396879005004976356629726805252699205778832433404175908973479447609695894096627875991764847611390795399622236617390753699403623798498844159643451189823541470453692378862701689458273001373501477771350734974650778717451826142427854570916694271309855787387284960947531259671325755397653052006291900226635822034313889632979028626542179359121395266955043376809703730909989392042712090963924779824165143413235237311996718540115739810908858960156716821824431627540269024713705381471839920251460534723038298254533509995576579436475135045558630713671510592601552211074384465309845113337133985209123124252723300102853862022845628068850709171032950254119051674019757608351335201901679036218834635649894064460169340332507889899121396718311135312655082581124983475169642324560789470101189246203626565824224704978407016384969687211174727046906237300642423984443165570768820723953214486072438179684483798316647755346487881003436772923272401816917592806767596739899490613408893030033044520184935360651341561589488042745346497457285066548302363996938803294336513264736060801394670094341730242120016885496299951789585839483692071277335241949742521539270402651948423373732892071864220069385739804571898623782496562547162763101409111471892116938864623481652704466751425596949600066376557852538525039677527094540406906442720604985826388062481813352895915040824363021226407402824477601058525783565328360651256277626915588464288952527698748749291648995792642364630634704451582690294184004133956951836473270226998592136470726963903357074627747026686288488706633015935121019768582772124348385681690390256141283518215039555299515482767018925107074579777202840924590767901467349465398596586809895050072314493593956308161008122849728026379431396674405213025500051685165826018608901290757103903758065779338230893038451121263099302782232776492294795248926061519425475687181106972094318951626936448045903896688957271369455142205719383633662666850366798308645234377826320302499146983022911466227498349207016063114780297060786361374221081912100084714086241156190880709876745692825043544926639824727507294603693578136867021429545510854867086984230000501570591064831907480779640559877043489161230258969795452558474743647835936301188690500690730598454062938264249331928408355088518327652674158858638821661710904739639006111507607537224376383059784389092922376426821809675905586581950869518525856902159714336764288346163542696176705518380596149686875876565006401675166560495969810951065142141159533498261252220117965415857052587755603615547295383150154957724349024212102742770007342989922027295784471159537858833149961618880306066329200132854896925493826312678617271913470085407299332535200019126417723256801557942602540132630470712106955627546192229754227049634137363398335034714265531568201248005238326501494420197044624607465419825945230037977457465064156856497688920830776264887743034251451043849460378219339242382700476042875707023206646329111909015452746621974693084899172741435780053680837352466276873372238476770084086390071060230039513550585703763253654119031969885698864086994925096479797689734642512553495067798206273471866371133044987344286705536093092944722392629198961470477399264609789905903633437233378254165367701633642036046469293401170554701595446695411684945455592632933347630463623615098904807526304411237694860093375527744030970353469393408356796384642254260512319171266038668640582082034541722101208009449952421049444772736530110702017130670557325617637193643800420054513330624934035560935616570702864818919143972920644747738492555149828000497261626045723081877525627246336435920015643415146611399663273861922394407844211279196643396831728237438389239696059361312490080454963316085038353626440986874191380428484780915499327357854789299262716234445873290580640613601648258015129153232864369020482476363236377254982962344258174307415411991325224663431557874296181458964886879011188742560975789519007047148408075678974278907670392903845754472874637678789562078910807016162709228179437636286553065986813343321600583738367539182105852805959534154407521362673766901099727095666415871752474459382114593175715308627113149818629616959916429285911635301795707436921459128786928326252750090904301539848081892500051246085052325514797206602494924008400392861651502119270138781303293804899352479513163941190524526757453721745540692220758084591565848275466561546432537668994350878659043981274647485990162068612705971514421924460278069367900734073549448267450078180418361854651069321226284809688535772896014241386423913304440132382881183549539149000625343832740120967561189405133731785540755639124588615507552087222729974708208440297902579794415134155416266347613793295096265083873423050365232088087069055281594111771847339095283431474277519452480901945280052372528573674590940155556433642981507371152277204903196279753508515879957165897636909643715455849449314105668808645651605003201120750546248259035201894145223483494900194888584517197521688438348128222357579364133865669007807708506714608109011230310867356556137949236176603572559416423184511285812241149319229801562295971659148437756242463393127122796939539810066168232050778096345191452356000428558044053343412070050363247667979444938648934832606478609415497333191094406289871399703213258445980603505067000867480500443489022765590994792385577203061461965805155141705276538935884627228088920520073360607455417787971733037278397481437562268133994084562641691941391732157834389615950944910663234692922519703471352769498115798311217892468469299569487514609624460478957152223251927054448646205120118337250440174068333278976333325594663268057345243844515816451253407098996007617265000800017935074679387261959294468126868446455859253965987584974997530364605767891771457318515049002145481498135248950786635843782032634803827043239088311791880400964721129106931037883237042210533509811932395967144314182981455154615729108486977594863479142591835934158059767877778783845717003443202960164581198709935092316099326595586541785813925974676383587616882162004975876544454287954308151956074947873755227652681616694303733684725786951927175929198280629313138154255600655612253463991923553153841002422002391398448996696533500258618553328008422399908429162070717403453347719384249120564817547896894901070749566944733281154183528087545544027845106057598111902562409505843947249196674028964504015748380369812715306404443562626638724858568680600298030637938924391210875978259824322976660734200140344645490019610342143075404692687908354627835085280945041943451672676326136935153767431141671653281182690574859467308824568101453174274552189785461722669173150892946799992680813529491016738758298034557649488653602096489905575817378873035871681885559933089763899600607833228415746359119389722371293987159925575223189715685037678953926211449376338740661287256589300991244948788011946927574702722579658948566079308343300506549532400310697188807905783561099406806760474416226916580418169681351504736019411813751745425232109034439503114552118698146492213415130701370970752857478954826539095080587186887200576402710504832788435047397912181205974852846202322068519730964217859657210351546502739787532286516332387428770535336498215837309160570947794951830726021111975970204392390474764436635109094722340427616725828068600930844187603040430954386104120153155220665184769634773784868292501264819464567325880666006411319216358630883539854917249117367682910297367663645796051842515599819924895771377878861807170791723957076293953836909053802192046593936742231408161661498695230662545641772920727547776493177936267791308219661704336982872334156246409183611685081261049196273868578352983047017026948882274831585331805446865473875322465801212786835001517006986602611251755100598759222631341272539940251693710184058344298428568635754609595910460764638026371765756663535096674462039936203031217300671766629538798277809154639817263367317505275913874202515551843668518917796219956235973497092841936807243640679707792158661529346814099608691555224940623926173616336783945735594144881829044109743987425393945640760687157373336194311350025025985922666243087889373975331918176934422950705229974000893723267662486294148968347145681550063898583154026174751706465069089627848585797347640549308547517881334784021236170276662235036038816574700283592540395795586863472563014205773781435273517489114461147965140805714288807940587331259665698866371690205798228452924623871894141706629284522171723992815069177038224581329080737558618150373202249115184917315696452059066246600860748237793574545558761773377377757591778113729874362605677046054916506753158256300505409905643165163245442781803248798753677958450425835199162568506025224277638720730510664260574247169693923954610983024396748165038631280972794254762423749575265570947721637964953767700744829255235712753724274786144824043248446048348817429019334393015584603493826269425044540363060078925313600395860015596402718842149394190019445843953126466156986343573510928731423746212122622171868804739981247910995883556242139616899846712648642414633046252983357151572287597024890272178057742188238613942031609214268345106462916495090723986686176335685174641511925722986369915425679565737196702053327827530127579953784808302444792076383713998535518580113618316703195698238968898304271608567064935448043156478368608157779783736984556257544531152338080179015497233142091575662248554029263306690707584221083391368351334087558881148684002870631309399680159735607294992342119411993922767852803924304797239573067459861924691194749912366298607125312502839680676166397086262400593806900635460307957467378423553048615077860145637351500812197300062748287815318274844178948958943161448569099277102770347741928901900131931310360493406433366351304279742522315733198348184468020050332309788333697171843018510860610958973558297311846241238764597276980940017560998541879776614038008115474278566491727148121820139994851780318270633030986804467359462892379757238798591345363804860283900412548527570624300387303713889443221976701615777295139088462229997890709655130355149489214426019525623813654114896041836682179732744633943820165546693462815804958042051661533225589469449490241177220407090145658833690271285841104575322821989920915254293010156927432709777222255690143427603252183068603716268525091820855865582711793462111868342472344627360731332019805438070345574979107112416109228214568135428912934913565384157934578403823045056219925731814202424648378283401463621792745511543825664883913838758789427134840200066234169744617623397455309367894456920755528778620830685630146864885702368931735849207472451792364775018358890338888000195732828707549282957613965381788634834944293321570064643078256904321961259175577232009255589654509013095302689697010907637898137490793551137671035663362272385389814583354782228472021972999649084945326164683311165913903855919795232681421393165165615904969298464961866085323790253197679036386753271244750398752946662824334273650341787911512750348328047410273942367387750447069848555585114899319264849285969369765984857640406363196471857133424067654315898559730469609491523894081163852132082709991696550601079937425393977611476968120449744249577443823454557132965524551761525354358287270383242099117909323148251132122841925820164628960147165305263064250773242715653181471876731158948434929630505134776763696476606814595378157179374328534098112943234584177099011140512429134479144541485072171310342278009888208336168597493810524813018016213201470023719229633693351111496759176099735412440540639267839391857007578572624910817766407381961349377195841311870062956819898980949783690756392411959492877155359352448483065141220230004827990911194105966915625852019100473712276415603912665343115659769075701431268863453256644947771475936506163548869021305427598907477892631672967677086574492482005704063043543227475836976828226805882190740719634819952388293158663960008979428780991097370512654185526646655107632899121316329682922424686304873151277627986793315966044545276885738524231616968802194247960462667783695255433614961238016787890537050563088326032358750074974324782864923444838708882751686746248921227397088931036933805293156435451271200753544872012651614293701478628904314567379151082874143319781468573890730791426860206698675513155735047837235635693945605978673106841588259934953294945007889002156782313535130502661553605591121267560023164800972964164458842396708703848216132444661582988136423553825505152523439425121761888465312657895098349577552383917772346022264200528539196092972782589083218391188447419137544950101125343777368132483364759391880903711911142191801899713628961626343737886007611395485925842527638082289650061078952092381094663758651332331874581043193668909596621878770391674957048833343000644564228779003369188327761202992045083686860676636410970529272642242435096978968399530798646243189708665454629761772964138705390566813030329515299248544569596936613908604184898905898584420605111197995861437127309500741506930230464721698094991176886910468838154191044638958739199959167506703538437912020309722401926960023307979023331191873282471365730916281743403460158990878093129093963396446494412135011176268770940766285205343353245090618560399779148962943381633447171186575239078948341442204660487070919339826591623893384288945680770040977632447602014884781831267595299467499661381472517902136413590160042867107305002679721843792913724407586834735693107116647993402140551020295057930568764863857326372987639685948760605622436897325311936016232553851642647555610525433235425379814581508830255791696655843024782225092979305764390676698325067093709982680368645530156436861867073316192852315385155653906814802732452747349371890307903137066327752585001249193060838903538813770612312716989212367469428499320424519897144296359457584570737206484748321938283935519845926230134396953549829174079900297681705210961550472508030455181160252915306461918695049382499736364953655603452903606835507619953269539267560266887544872053406588273802959145776641471193047231909114867305191335645368291517346066289059360182267300485565326554445022186211711619576580374877663595063067796401516810797384937661969297918376579744839445167715323986626840351622309062259030074410239128787386317382657984656677059854707797925991136985646536498192815710176674894853394760301494687629515022274898631389505574659450923198495626859563691104524126997735589148427075467973107129725690200308684924039059231633391918466699737488835572018836032988031915914009606260948876713600259833101672422390949293267303278431909170924766902700118283238927058285693137346775993697317992641106782794858506371172274153831076828874989714156550032310759510623276740375685450700070928243969404512121040416995325498379787711137713690715635645408538806270519111200187847758039631423755978765946751553422882069316945211111289788604550846353440263742936184416488619671208295563017454332462474192279793677074038373792915226252258779637178626748183474311474972895094848730749346848351800809790143610306391261245214094975377732676317743088906175284413148371918887028982855292101577955590796554318315328308615492736849901454929800092303975283460593765355687952715565921602239263674967007554686701189917158391322413407213534791846396069737550984670510254302151422512582042267018183004532779125944794612980560140503791561443332433320104635502450269198033295203313485441031089060644515392497588839952131917855783376115029639521063548093393302617250663934470328539273673595573831688483771970238041938272359616608777544510869628760687828804819737629911615561014671427620027304926003439255556473360037175860601807608703751523056034244121122462209969484197764217533386326774023439104059322938762193761496348859803689863164888612897498024122176314172163016593151332007008134313023351275600775690637863560027299941413123820418267884542957800023420456106262109505853975158223092220546281205337295520772328000662149533535034632581817042338663137040830923740975135274468362685885899342413575250347771922862641392120597577146603953397677652080963261781296366421286331344985114771227370074206988451493226600042405489867307054527775025305419139692682620264763151613156618121918572430358212149020305010379711282772606240420576697436350031833507574904334732412057533972420645038440942654431786000219220181491007836540562959943409311291272041706730197917120155890980768019516092352518993028448460419027695935833983682698556960513773633497442249865027914426599866487607313869756175461701109412177582503227922958960652620538663680337153337228562526029850969678027894058858365907012992231903596388549574151028453686165200938051392830954690921140064948861682453043953233334614212293507656698792232369946464506005568749440007611936389606627053088711432068318259388630536476233701144391213103142670854677578979973171200150134345964531234364887737905797122740470716633447530956413283669317705362009211759905058139408130317466754258008424644598827697342852477985657882212393176585707122064983010328159589304354411125213672837865448654015300674096942483058930937216043594200870136632380940887203770779974298301263417744813469914064611461025881860136313370613635137799982052104403535255035726516223916034301409793477552224133140131967300544209899139570825002858632914339726520703606951632235412299433589705769007509802470783025764845153520196401449466925710112432035374003380385646416494579950404677066623970715803110782113069267616328187761324982918309355711626276013018537510180930250534521643280484247690142577932468876196451367834818031641834809609304078587079085120750445844136256035059862792275602185219914458605064032190314910814937918712221994299067093212830820151039910441935871597955156320813113847018424330104679642168791083705237820090400406366860082162216663996938330440126119600650449091560642636726666931207287357191457238327751331573902909997843392649377948670273130092160807781440834818335944825263204424044613842981966192413152999856154164938606203425824532836609771369952013886346534425582438064592730620050507664844419481488177800595025729604671836214220987027937386950513439710351113612511514644898252909937844840468684584801105047336824823784494000092339025125199146386602348048503615406597520619578615705525396462702021261549561908817428355383449314048164400941381678035698697433690274803706416021299957835438936273491466293760837097736938488076747162441051554797856901413906445662706837459175796944247563496516281417394522348585055133661929401150167520549348783225497706936865454247350751256939261946353739865985788894189333213587125391291118706260603331964393947509777755214481320985837094999819695669989890342363452695404819893632693142345749075043118346720678154281849069865972571667365057499735856936067912481280551808669683536266594412539554600319186928302259424403200008163869537405962906765380614901611350947593446590536135378299229109889790345386852961595805011469326138937577586667597150446533058528556089687297896287155167247794542166331649923531007169484186300156204902300462082001242704709807384832778215919816699113865843843286171155721254760544616051122733354582929608908020030661797474346451406473841850626040456226406564595237019464484900920167858920278312390611739158090887815272499969735378744455305818069235625515998804511293037739935266416082677004027183824171839376324829377190143564754303450865401267726353031211656484133428435442444402363288339976356627029795014437121121561554310628639956256358131038493889550935386339046541113834051252486446316423188921097730643835281953722976569846120940647749659932050065680134600409007278411362153373605078249832620944145971833438543940277686338615874654371835583813347195691728146034024585737481372468618852612928124218310579462991905255506284937542429535063596654136672022799568433672203837992281667500233572938485232994911326927536090815806512865628895835846869120109169802062044762550566132026253457302997044298766405938714135297413818415575045275616772003346859861131169630113009319184055154522990606735208458308773761565444413191318865504621694183203707184480564523079295759841824905317180950820343395301143674097684800070757168963905161801208238124430356566252293070942425425433951688299085086383113323316084786371054122873689594716213930924538082308231389876173063689320803035362952056838163007882855346364110717421899975456088506710969154436969259931884900567296998191223438867531339386917750119448191447921792328758686491219939397909535734156747345330501790880058840086753264973629178944371395464963209930163359291839953601645437214018824016005568171906953211534416372790294591937339996824236284568898356017338156850244256174995269752818076015422629760083441832641666022155707900473798110389542528906255704916370588013458487063610403305173039608438602159316521878518500896218480713735701262910935802417195838592735051289176948299446211108263061956227481451765718686053271080598724292289072708892753473660694289658979213388825276846756158948395258488359030143314941688826372203369587147489487826154844653493645551771571235120902450553754173462090906496133328688205211142166791887730866138141252251842026921492687640235788744210785447938580275545696220732425368301189966771375499533783548627631955844134529029076474840257667121015410940854819533647784969635180210760858215124197307801817677340960977669796374420753953919791723801081892413030391931645086442901759955677913918484860325834250692738897411064419801981645791544738349893705374963157714601502178744743434334112599657901115758673628807579087794668235440705965533023390993641551831018940454593577109001580544901786501352757509727092549140215782259244257988721216334380831643955337010449362486545035068369191505589028910586317247678731868304811541542834477773513537214435798300931104093456138997594284995960131832966280676935767426185066198956169192201415835010635144831509608451078820796987888643970514566491635565443310399210658987664604550726922293623712974244536396256721105587638519303740511320008750909323121508351195105982909993382830267065015174061975320476939708866302215973232758423680685999079862223237072646024577777596245258202524191084026256733007796816634111514395414272598905641315613850019578517110520270823402257141608979207063124021834232163877239176844680394181587777671084905180699203337732338706364442836103599913248137897764330963619902344237799264577986866095620325479926492601651281858787908624478791689295598422665251801684547421922566326435204682603873531507259302949132165350905482603975156832565539004952091553083321394227964652265932741229718923663125282120273316882356944290386988314814534070766687891670288596687625112632486192425994158737712448296073830180086737144717740996024182669698947040973529296631292268259702938039156956151787412684737037818432539853559418389234726180572861088032783400841584990847146140836599245567889772937229644410286441623909535428368797281168491110141467127824770821475340656779263027449042043362163898892081042398723759485831861198958182947929963926279373021137293290138966370054950202813677618869760793707025529887132029840715570688035592171968189087564280289738999608626167271317676714108787724764810487988092429439775399394268162036828910736469711098047002147753004194084101796075576171209509390495624468101991451775246977165669756094850992732891974362621403134707120270446793869889012108150702243181860703061534292631358219802704801825126808422844879481542839590934980273794582053150775241236762680012929780890116240860598797981130930737843174519035142104060458358568685938239212271328741902292215279421145270518298250108606908738287596942664017983303493311785219233442651606777150193963358158771639127968693684512509958667523563024918284122068652730077970171307802776183287022245914138157879906230464289550302544141392699449932779955037957814823216988978665933587964983911322655304037980563239791886238491483339890045555038432636993646233417290865621882008228815642612844763974585154661346757459870110499048568770258215475856462130979427204440712574551559687942587999479264009788965326501111536560124194430035943438960036549274513471522009629952199441423380058657605336710908768853678988412218420614115955981533098777991753937439476680630308617570916537239033151896962322404458738314117627423383772092550420982697339921832209964556876316832679158632130452820167781700728516484940088379477090072797981883202375493002111391046726948582435663026127673509941471412414760110779484513748897914346224615696391481270418641966130477229983714371506934893127376216061201293722903812472892098445745055185478419624250661654980948078460440870629212467830744639568749512737397091331223011273000454441012059047812005691057367829410082056134304152624023557440534356731513117191800926422862550873855302035352431011006971874577724687029125533736255501077848664007536106113651149320529813191376080462991800081086957330380931058916491009620290116769295897504945773569632589524775547008995076401184418885795404701877330435058068054415639742880769997794150472018045405742645328336171006379680236450058364004967084791800737765350244784454842886332414086877690691879993713113320271209250673539330722024122417142241829152124728748026835158082015297670585600746290149651590933718116529716560326597067298644739556848996908703133995184774141333143201077923951663195977388880067842289161608661644825233253167690023038616649393011990245194169539351101232851803620345826424450189552303710902462061293233400198187529535347204214134856864280313456434814790284594381069589247584306601318357363016281857962769013623000521591731380969894975279729328890367656706968202300613572921698895595032253646671256758469800485685563627240055057603923957695449887612117769990122880661651114936075702489406671853868349094841646170832252368708644138028194360288373107600844073185570316271454236170942091007988268648830191543802023596448489460183251486963239145345414122682016757625301882706348256084892700715411664781173472378005712175583029316226273173039893570891326490258647152398492685929725508220960840175364759910635398059973601200467708419390622829968494045805283884609300217265689525376136731030162778879716473146029087814194366890620708974731729685407313358729055041153042456014150762079734083865792508659080816431679779809681124036212495722515186711555507688878724629547894066234558918719581976033971085206681679473705876179668526855551094895814791300785016002003272571088446954257421139236908516555803748207766243323064592860790558938210250132367608649343821137379033781429029507750411571150035336653604367319979574080772086796016545629182264905857921393932743764285228872048269321623682622061472746129406871534677623831909841552079332187211925233590440163502584980074916018690673755768449262374287284771872753945371261002145495160262859540509945724991361412345275001585917582290855111053575912305528335286032806683417303222624423139917149820240582841625127473680852488531990944623570143246250468968042972382781791032979174626720802913633211829410566818962467968361175939784658684859021700272650582907790830043531492397604623104649627991026693813797383325348220262764770403140886711409925080658508356965017567815767629938722433638058890109064619472438586658380907982019863342726656109622029597471465170164785214691918932225496907515892858527632412320492532739649953604361702347884174291622354646184048962615580854232394146188162134890348726908054063919358679087523772694297541531565394170662526579818152907199106869656793237258458605856304952412967368075639376183088716177345565717769602666324144928249374336590542811918031127983779593571441887034859984530607643137164434660855392425112945575936767053585060439719473712886523827910562151413823584309168495869722238923344103127247232729660785270136727883917232687873945676588615589346816439645319989347981181400118718364332594488984119376925267836198013403789726639848777806330616470676408133342335692589024386851220131168096550059000753276181255862112631966565146846391328968884157990135046729535634067598705756894794969482199219069814606053386186152680387200350482409901083864979332618169719538246952209553254925850645154172660242827795831586408684334314040021041937595735040324225826418063999158409547121517972185880883455782169408749607577994907265669674270237827408009602930864484368238577557016369849201616301398041347169870679402736874826547725592670004414424027835545172954555349893738974650149333432006191535105640438646845164536604215675966952114318107049439174571128190164776733796023030053757617960401925061069436926465892711715050927377760611382806093494137246275543078475703013152796765966177814101198802114087329399768837597996327053168300890141974181263630903990502293118027991527892577853112206297966348109949734640261873126776239543328588112466827580567683190542170070630022148920058852566201317659512697140962179629142696331554103489326252220690348406026939509088190783430849102779794202395794911631287244993595149007325453227222515362495106849083141396934906859390654560750944186990616228527100444262606992742636343859016433198060652073833063209229635877465087672665424376674885308831306181370909972907017361008301047831569031143056534593806886901906906990084221765370053065714265803558120971205521974263996749566751969699653239948879273286251752495933996769372807533638362597089171931527943885033105351839751392763208459879034680869571403743513805132856156348877417740213832694150806458911106984142714333404134340172654513590217278247225282936238560733390570643008241819460261041872607255914396524280483822435302166491423198962549478496393497227078796936309907351934844689285826773869257581577850562363856175058056975617908608367676780435114013019440847358623923299519056847914632514069889392522092805970582521927977038401878341959621877205983114913513022640719549020699580969983611024887566230716681704525565200517286121792895063661503410810636562976773850326981147556445263116836166092227428084926960801927585945842818911382027364569918701100109333795111285158729967673888410627037172346109563845014811339031932694630561321736362519283273518770829062322309448679126241782752550467423750594844315525443282432178496815053985989306101271552734639208282514284677011742135178884659433252059981444782319099084949594401289902794520065356001907080514030643080189361136258779008563205597925395863986656631537195711601650537008541953294743086116510533423406748372709842492649581071021355728864076111658692614138739423019545775885660458325528085811912561960381959513386075194614169677335993468507225371243177304508432728298722273187746422199600502830181735107062126368369584837450752459406949555493432596771964353800567633288368065620763667729234648540858137766525756006925906847797962079520985725411742260032147279430220938225209941848478303817528019234968089810946944023380229255536628681915676210333092073078974768526903895106055892605441114509414593762729001348410835885057168332716637934531819441857735584919549251192527363117224271525627312913774534722359277981055548161721093684596457959369235075137250443747875374532219563653268903304271784184909057161274440866011682032652086384796684979006269291772076071088550325390500833954943259745394530801397598464953283059819165507219035329151153986399359335953772815895974111372645554030713806127510298217713035768424123195162375183822748195855400791314575705763595866912032762656588547958206819565699204352066537236183851000627846157986984128548020599795127265066811487371226611498186912581505495402451338932439340203628376853701070917003477198534043314538667856721060735911642675076195204426522101393761891214504769768523593434515327664060157490127163059679538366286426661388192449674409272641814135635106436382889358956894699711369147159825780183434499418788525277982972198262758434672719966268454043162534399497543829495401412326847890877951006096764761876355184747609818714054093249342154089875044931173974372529971764338617882530057483715681324685251981872604578694085517079041374500793668036113713167904384905644023432328923796403905062165482775458151078498015550877598511942036040217644151407473932306070431264238694327438885888855663224403328217214942917968532572561939305102740387847962263346323713093971592594755184869405182020560069401847426112409738282776149151411932747627066168322065740270473450712901704986973687066441682192914347584219307164742568900287471727657972182077509745970072240276660043802322990676472987653695680329498664493559301814170789570481498849428208708526406703900715399700243796064908439019885193693541293939623698689282526380365793863880871904644815579489771183278852633703399143385800388268431453092605490313331279084841988094504413566480637979462234987119698981795611716684945887012749332842823603236687432924031141881614932040043483896775543566966531723014130857059160324511722490065792142007441025476537830579900430684474400719271369786292722550504271582367354708608446496477398328201076537967660266026341802001719565283062426507098813975474865890337297050427741809190200967316836402666265531120252409041367285696358382581023994390943777400795821216370683859428170793120974077476548757720655644597841687145179842200235383231556904358637050145279040285175482805113545003230146537490639030314498166924747795445049360654238254178519074830846621065872304570136609614892407625068454375512819247594739369123544826615144598277399554999063114566841615074039822000482283046693039179520115364552899894504130311221356768930502899910859260578154960782138133602813418768453752657355227943022872320094558765547971666791218482544714979951965378567283906226557778450249136411088502329306887919127486275861009051624236763398097402115525275833180560201337692686513853761761852262695114741507423038711384862398460196826947780113190121067370065787059152154151139430304729200780671253658101571135153482208565177186089062668416373158294270284988767502862644279195182838433600493197306593324893282553504290981519195725694687995308293568629656847829169875369785739936470595838499054744691520381054420847471216229249142143820451140938566297407214500356739147792044769555186428029327712839291067894918474902429718811261563762128465816570483402966638602594052160235675544763740993748575892213205365975888460464808400798854547327019937361856150877935203104591663934347565280741164756289373244372805346864657975950068625923259783795786050411405391612324735945263312571229697742493658543812168493152095824536548860349869142795294987084527127209438383550330808472263155788069565813235493495160186600213613973716347278715447921129841706552780903018408466730073882298198312266181964496606477295932258037428922091266637462065267939684874207109037048571278245459824839451980811056382662731626116040134378366620580754238248626031936837553531633037412101841135393266419410898480088932567626968364650479182161751653392261328439915909090833124908108241052272113862525013427916579109465802363326221946392990309785407430944048699098636263701466460965573583829901638446025557167758042377928738085416061812360605655066752527129988927246896685443885936056448031412255316617592495482402023418441566552775424911350061224508763040832292696206406936607609996503766486413200141022602030324631564123333657817397345191726668528902943884072071679198787871382564111792443245164785331846276545841140381377180889449257049204733621427954500640053460037116748251946011757272946701566881482360859962713462963163270121325792729402953503641393924054459834417256572448041456139572707981554108194462136859093943521431689188100534837757937472250801562714170234276259761704788281132009372035411878876827720370940597748056251515935441429387991550124193013803346055968428649937105790351696073746838774300041908390423425221246292108764201610100541102210637901075155043178195548778788448703502818168962488159068304569870064252436559207039523621286517814550930396286248638274248524377457860099481873037892629121970172049535710097175364520170402765271680562736351914004926706712772587861495067140581913378588884287716460754591027151526934192745549179751323536146288248129843217876717328179042866697025654281302517898171437725398201595196903102698151283567979915648277959098292406921047385475747051878040672457096918123345916220156718157108966964729775207216670384145634165279081476477997056568454966808434349524325902315068070475403887160438113474864365566448837843893432324062173657501662776181278737103232288841836024667031904347668078604205927201520002946984710482600601611226580875916100302407442272183471566354202167488677977794341189649660626446390349622435519651806116790190456832782141160844034146292516451597680327838266058812704754674459051608283957740754619810903073412968516626669546025655075362941825178046831647546568531821876946861660348911006285429842761836643422068856295448304100093582796052532503796704581268256314525730646573868017836943336315476072132177357797644408533903301688284568109436236004478701229845091284434712673224684840528360588011223834928173892020243372255885293379444869500007281884020164036439686730437818647718794292799804882508414837914656400107172217030126397844984389703995746080537721800913384234477915296129490378338425298463985873599894799216332755922388330205534572994067573442141694483814614131518861407549270642436309291287309812921982379458501204293276879532261039219915616753414240851200282847727393696281598143516876079867786663414364393653463328518320661938433427256648256276408000452320766748108084543733927256869370535592922380168255204254471686313692223480968306385412783849899820136438460615933611391175016870323975374651145782004783031497547729403332868435870914657926984838364680379331551404843167173489741274081859587374724774925122269371408710611762100107061118346352413009566125989503453995471654629456971897903950224244064090851079757077465226688889909224317761698105909195174423822580511340745251215306843868221476703097140009542748870889607304355592847598405977034021602565158360764344636887550258860453044016592701181135130265178885676777187835246500498832063913662370431307455071449107947680776844852746329216936490022344185732246920397806873450155912247843731162171813880088001620311666000611452780230834291372057120184128125721023461145419821148442586474021634227661813478117676649074002094349522652143361324678215693905258037987863796748667660884371602871103367828407544899906028493268860298061269424204701108710678502759231188197404022227933916551450574644703347819947352034164820220167799169388771974130714357754718007609519491603769773271477677375117449569854610021693196970869760328129090098838233893355504200593527307545212463811620183411035987682981953921410581946070307964354274823440430818652904666907197839377440172772741164506530462554004792471344171848219204089449997469023873144680394153107450026988151699572027614365542128565655617458684346872432698943948786695488420460478142073254278539520750377822323452832731480106484854366652696932744255083884789993310334857804190598753520311002152326662611452568459202668117809103728051326733058508337027194756604552731752321705285888810734111116148436564662845930713185330409483194875462607514087957341965726175936515236578393148284220365413392463545553069369924657990589723808182234457063777487591685973081123999850990229679220309174275540125927246393167655346374090960173214432376990605510780223131749726952206550059436195713902835005018391789954690816129153340638430883260091551509273694984837171208371096838680566445089026676941295170589627985292165111149515288034702809052775204076549237792386702073797213039197350594498107126079532334091165343845543996371700950563236992681877364260445083103610585527632087607917218796735323322387989287595402945594669143331908862314535181132165208503678811020971717181473879365742985765851218476968853085359004607374978023354225178415879965126993582279576502812992542641036001248488044738056279867631440416418534554432212974193598537250056017642723798362284037406567032522309999145089405929462738172142268907961991589783428561997526008331468627276771061144317052102702812062638831395887191958989545779097988610310077240018084818004283164327416528571679884498576242524322638228750475399878042707491773371008194883365001898240343265136728438284172573230486853644386406590357983513524287919999978540012044044205439006029918406246657441211787380131762535248821985735555560587678499967011592589280857089039691527222151326101070412922709757208427464303036403478193832155866807157742585716068597781511244964908895672645544956319496963794043006600842155706898441739682900980907256202113753208600947546112302675164559930760505231015449592903606827312112948154772186528679051642203219503805390729913304178438889787814322615598832740382634653410795840160448681873187128446952345176293118059475107017271136683562973890623750873544855635241814911795114157044902955581595126273450021729418186316910779786801641486113857045129441638127785644908325010637527239680395558211221277839695522023286508379141605810927567017164934374615046000584269508490209892869222603524386145181282735376584316336898045514537928905101844948216327966530834399920398640829040332355533391338312415284000522852810649847502137724762262625595690744492856214606527627467593990011904203348005784817498410085316600836120740771078879055117680181432611948866638038577654283799704378475834582135360390459973651567514082715283513790655124959107434697992427206557512997574379221371085598678686641545306689735639581242563334212750296286641709671538788657111109620049866539109997640836040677128785814491219633980295378953118378917631326288434997798556107188832963454101270058680962120037575429748080767495634313813793555403202730405746529825373711280499990019565150074076211327352775714813581790783011564803324238999511260598822450328161104903122911967478094370257759573203466673476046806582437497260760963849955224272990568471105767996800273836277924577035928376372712054612935647091772563191470062318308022672339466383255066353219265438625434731219136870213210709279255177264148080597439088253914279867439758850082983826347316962527785629323326285599912954534812578883511158946156143667166593664011763659291504990265074920791247453689951663604510281153677956830443534603487893795484795532833428376217062969249455697711145532510984729727818904039570956643557595031521864401643490819042930037586860003035530210827709294647300827784499333290723610395975245470889233361458984440338941609891700165135581153434242067453778997316966399310119767581630395638630705257193401264276328678307592625551442420137109237246287587593659403676877230724188525215656855037914385292349720502925162757703754493615673704673495356390637912199028892679135138336712681439713276409586231685114532219113458196392048895701036517677341049200909019424102153356154396684120670100207563140068085361299981679468972725691249255958419099419561178935788062257357170078092271541739703030843676129070391828850836294722241116552733525116693979555054874572100990556114647394814684453229598547878266380019775809684956513849507195666511738772548694871859193326437776005702422265830772942480534133238547833064190793348513858725351588737409723645009769797484186884578386779526946810386665564916100175294242877632330844957854309230087672703877641754144301439161934021657802490300012833106714842250065536292916492408828129179609937085995913281786525070562772443040425578693926676125207240760888629434216994903151341205058819041841180841228553811712234560981155004754643220333838399514483871657217523823723373974267761576260762372265648853742916483281574509809075575962140559940547144458817167182453208327162398921796774599034536623766458780874022761998624661340048132426826238520497709307667535399710870487237790149301950121274468766792512699101434970764080006842338087194066962058421282534014808356965770830241873106686896756627460204877064322995546863362135332868584409307211908406126628206405458946121777751472901360783305810412419653258130578336046922678256160022176990580932140416281706528781944143697067056458628472902022994321210949569728442401748845666205960161534698758705746796113113775265254671504947085944652250851567813009131402585689444707593020437059288238913102531075830381879398015566742426560890549555252276961557402674578826395430360099943071809927234102224305801564009290996495254358011223031038390325005897491715235040046891796485336896560110725049293616664792613044847688454511642070773424337993023173264213315700862078625116061582988738642346931982503905139029827753850293901030490351831841554594320808333604228449973653597661695847606852278204788925009665100721513899032083409575362537107056511476746151809486293072673777111091151309529736088719898217356629392825555837005245686678414766932063020232474400941690688054325026614182100551934217704172788661973079462461402903281083691187228192271390948905668785234056073916338313274678828171732669337680146418827075098978263226069304154148473307678254169649954098402092784172674462257755793832725880417040919306089065913536621194525832435984736381877262869642481358966330331399434684039840884145283615824026823519880193758155041341903341982327319437122855571410242248398941289007074401661868302833840448200237057069855924331695250305865945413089791886605089639023877394560584282496499850424817016130858843070789318978075203079167954294665778162714808392054866490114733909969525515160713027340971641150851154090584970289582899038065120861604897637881544447311153974732832875189356469501810374028433773874039613399201222498646692769608018090255526511543720629732421585941433581840960873403284796869988079297343200484206764740973041909558130775425071607524361230434691878380285603079047473903105275275314041356148914879423516319045251698239182716303992669523749602810535192201835845911778662074192243599201145907966994491986330666960248998038177372123951797957565632319681209570967619136763523329856593478785048820586417559876266525742315266068332269862435053290900635913836716845881644719941965040247610457014367805999836979703941025646750614370454652515132651758016191732782948949622797252186819270371068866055302598415679543960154741279344811003928189958628950343131610762537687915714201244626576539810589226180613059285010221399489831642826966864008100493584718373218326324791018065786046183871300161492958480295657365362827672713868114378197552195336169326094317219684270041851131415127955299738207887421971026882378220379679662381385990035868414378181155527353862043180920615295294044629555397507938070509587284653176352285501138125777040659407977809062066426744193980439733429578701314231047172490253314478245675683429681436364253497589921612221585115785998464623421045869402403993147930874184421217919223979431073490784984536387750913940341803362536355307381928979407344847148096649664939778039980990413861464885416949720029449465022466502647500665418928882429858671569678577450966920884339722868349981523792628931716453843619437865907043893749298533806143923194552192734352561232207819023570149555326627732356496283723260217152592687449815995333055612597512575274754440159211147241839772949092163661185778665071907235501267299529034926856904474554535278680294505540806268254816654335082121939236204125656011822783473209039470937693122400392176172545011874515665257384970701714766249870566373488338627086738988434051608594301225777655863968770407282111706436632121686803186972590008917513739635223360832287643301334661257789024762898980237891525771397870224078464059287445351356317023381458108837966055807704355562948928095056234666475495291860140582862029381813501108235661525628845518071315660364500821603775530779179350091793866997040576365591572041209824832152630649712346446638143739836330327951879411717338461231091321478497047566352172593013770528654591468259305245716149611870534003670037288905303773164756899148081343517222536793382412792470818833448383453515483751102199358027408214420086206186477676783575406601025074733542983234485204319660650315775737333242189411661914078932516093211779500519707706695915643577584065869473033338828677588895219777978356052527038743717688708491799638098264728468376554095625406935986972017424266470529091494499373841591429734249219734604134270864811415857367937584187170665734678235252324453830190906931156527943976928447138488847470036554430505113959813460386668686027298468967138175860314640572126280105677542549404672334494421309462530983009060611786341824802335643904419221662253507643011067572568270047583365585451056767360822062401633301939014663028498947006031651932422486004837085762203067584343853360640226565287176800875678117781962875409772956511776059756741214280084748869864719212009312127957916828532337446311565612586636011204450290957588334098926802628610082919286683687096998787420905861426048626850587594975749864603078300638270106291849245165726689951579375908315810071332010284541792994550125257901822543215598348435822443446293491699797509048586237809454834081789741329725561425584757693505010541886268714353972147355662122520559937236281742830256438079548504563120025347890780778876650094633915126855166540640785522183835609375411772492061128884580669078715292851151883778060157483784478920516658383481026041371380481632226911978438340006811068054044508053191947618133222772473571934674135026327616840058101686745667079813420010880477465603490188905646487960144581000716716853716687396409714040679544574861706800336703188029101327886908350374679274594301705106681983111598487510285941252751661244005796408824788958420760566511453691976439584294411293122197924981660965281126035122513674893519104966596672049844329312355785781111603123158435953169103018560955283264764562761665174847021988919358202167574966602106735964838299522907339231457887972574266095698566210545620276367324535514570289398789657521297192134483410089181112997425226529197087576750562357427204372291394265207959365611840486325961099837246739768208079032428543005562382084023837089619924807883817468984661346441303318017563993488331983362263921694280900077189456435957469402351872308278015218623822175334998727030055268189027414196460564740901943894077439342485368666757144013720106330876791217630728409796224493991659913182405770491373095141998704937070458866985027987618692682419396780689774746189065131541723742249567303356313183779638201164200436739941246538418087687024476492915513539615358937166579314229520388034670712375072740985138381354930643136729886404079014674220303489353292869103709303719644754661466190014639469290318976366719887480730573927446474984516439498351426801506284098714469021025815800261450656105071083869283722105024468034544213434938742680304796640090443938893730246524955336740814962387369028986427804542178881447547133664881095699688731414209452858230382845352838144166890846641587691053259718572897668771871844736403078225214374697478532871132336905309719641830082813264574307880792538306556486041208227966294601737818673636676703837526902685206345727220195634037835313825864006944516513702211247651859812662693317512565065728661647813049510351546986527934637801066913352401439043808077102794202213912450559624528204778632309166081345278718563683281230071831794531328294998090869847332482089720186772190931555342452526965011927831894290735883051188938763329442886963850754627889959084560644997023981445519572247279387669435874755303317910429360004775238599428408527230035042660768451669266383416168378262543492318302583665225197118039968545117915549137740575797762463951112472559786212461238946828727135336656170855487141119941324892547160820322034084518237156483069674075284431384356841667824990302330494622183468475469381600367835657469148229994391021295097272916238593721432663890828601262683312249056769135535943653654612020858561790430287448297232792883333142792804265463824548724123962774398741900377283317089532362029909195481883450177318214786128993761271346669547730640689322495713662999729619793031898566645788621410696014304676825722984146958193621532245873522164368007664299741415940087827919899014942773900491291095360466769101603662520874983734689603895518012117337691603621634976741890367214927578504560321882062376493751230200563610415569932528148850023923769370587716338069379241279624282529679745320384070727156955390759980215192472306202811994129112514268596506929925869923407051854549354458347312924746220325307601551391034104657343087379862626423966398794046246864286210987466437208322211392567621408370315227488201637413196575841927082362855335792031136249033846859310864088848136797675338418213518227329687748382593979126883151779219109991041194597908826845656644662237704821733587472420443133233961420211559870814478841422226557607527293569114769462920695736452688638332957009426040432942561148446136323358168756159570033799311642678713822379453742385295722346093092471478433982481625917003582418612496834692889697506211171014035902376547802101265768524053694045200389249491871459470991076099643980250754360204843771425843536278844195061062732223237000551820179640691659281401936860811086824670637632298980986767248928670274548776018478250227627108730321137148011714669620647243372479343714184672442472892950595254184592110375509452644479128943525146717063038730559547913551604917283105833622559575776175688980191231427968190375631574221569774710729033590707598654934062414391710876746991901206708113206580960202091740944928991795487926476085939306337541150804907492719493674898657629576476785171123735182382523474914251740294744234141634382460020252019572180660215998213133246176188783618917693201277508434987681680273226615491083326098625204569718220362312155765937133481422174766771208540274238064433224965570185808153742598350722746399732826126496905148530607349155993292796359535240360709859352668590665166205905377015763798921459661983552922748060282159093334155116970794100224183456588188436033802266935284543615453270276333974765170301497975336391142491653422526009260817012556581315283415423987295443968890852881297075539302225052031540136739122717587757687945680541369967231332838565930222728225806943231912545634116396852442275132627424997780195328265066702520196575060959937235493662051175828885853804949537470215228742671435472821462099048128323438158722236611751618042572259409166606361587391046067701556394831859692416419854684124179435004768233754464045331492498004439828606045800032967929332724805614999711293235779288063652889554754148498520694595145015643739185302555092009357802166079586104509765198034064736629754609549519624527527800592264118893121213760810464345976913612901678030372077601045624607133038655272824295095083085943421478720464119753171029110038079340486239260736060147674910669794684281338379905698502101699852874208695573613714918468143965811106600462114062807519928717143882261320124767474678516064068962610763025376186082244027364898385899559233778784977426173240776360549863571431058053188203123175715486244646091350908601195696391703630643920449850295950162036611383261099880988004692819334917267420347758047204902983182950811943783693614556984437414984188340390409030243639860876084608966458413033847459360768946047493301402059166112103483850250829028293165136259382175468145075747453933518538227872440560201845508375887980228875307096460582321542106060067456042796428207946788213410511407111765085428726433163742542128278799660686094804555249518393959232516924340083328320890502600520071999985545675754037856953844460064911967130200716709030748935516826327075530564498642488323844822286391153564388062614067599124372534886265239780425422663641450666874662202185462534412043774719494283240675712701333140355203454256585858221379512548520350288504977384874050453781559696912530541388407528080722796666940783384726739423708752560334688457481574897266649329718387167790176443146689353325553867801853472028561939991278254134688328304673810571764625792572390604419658986995777518844108384683378171923246979596298385590102438606608035434068145492762426690149127108556478085482066647873797864455302370247357133940003338680997471660855761569583113826165501189765594769856361038526468907552504085115702053885469583600936676065348850703360800018596017770188770059478227411890118152727785972842981814418557193873154198302894907116642024561202163945633085840616353302403394143168082432516376554678482873875423051112509747655400508823508159661097921088200561466965265503828610444762065458555476552855361725768449276336805067405695856277012661740950537534883780947194626949733887165551535442056616267933868047609365508930078983778218852273033330668473463981424922161486520849609782004946841381220003780518133548047608000283268848574616100614467996642169961767810524473599246279064439230325517727742934533522218789213024052251876874458665933154942544253269363613220532567201327263068762905059624757683631604221496633620758566451300569290167156823202337737358089434462043967335214895612536798937339805159390717976886089403438274554073923352903551714365001419723723540954889070671580569091865167689317567633695579098771302238560404915550843961871795753066159080747259987482693142819209998606875666579323351363899566313824238555615289299374214000113645980092439772221482409798591800532244978170996731299084098090296781599338957067514176253612716752847665398481019385518451005173654785213364530218146744237915316275545228145719730817158502213480810492001870421196955248002194461885837273002634176786485006300812760574994249862141164105369307845289768209047492989055658770411624287973517896272313098209981676275931177191302387618233053505861641358735053866359978909427668089397243590982716263692082491337369482603335996910775973629463812696592632568524502978299157415207558227366728152395692267764207529060564012162379972921589233633257006800202029019983077937032812097208170173250750654729674561947776720022661499017189337549501814041586140386788819369186353068911304301698142185348192262401952110059497557449534636514149031505680031988174983995453939384612796856176416483336629261009955175708034607865562459882779082346419359075311401423945236406357537865351013583640334807219980747812361474985446594428387192019429558326362374661957027331209885908190270927257370241797895243289711902745957033805043363254572922865875440494178040298723159461171737230444166402977755997216793940687321580435729579755629493630744836947347343041911356289806089801886430083047574533390195035306320033132846027572024543225253080348627835053950086972825674172160457547171482262316866979570979939498810911388427504636229306389159660380416138386362620730991952077644319841675583007327684954129757182959624394373794103584205407920434444733840462877070644445067579652821544401233507967012168633179883225871279520941921453795099220453692132334505311805533876083843680891983285983463184959971580511242962790883278220978764887224899833137568101242189770628805386362738309833655731619575742750987626268836199214265797723977493734550057172106503808223185009516169042261359432078688359801656688470114011915112149702861029004387681206322363265436003353972943545644902329940723979451889499976694283684236856055526352671487385193484592918365042681123295522869998473696047283372454608358919765731883331142355437285689921686321846503953862559801838541560361053203857915872393949616643886465562957685526781791356812494758352995259187935802716007922685740590753331728775624848779314600956717537178750453426225675275744743307771481649836992391312264580986744193708099042187122650768395361726005908741734380453883128129076724119521055821072075538430645699556352347579190927369236854362087128870337983715768072665016449685279039119705709565517049944368314534253659443662965512597124598049191111100866314092441819009208185732404066259110489252623960349997703047854398390710032522697529307355278655223796320764279515638490007989250128426296244420020311787502008839835052575279871331742364143485093635945073020345656775618602715538116335909857132445740264296887186380646672432953596370199213115783489742041803545179789552643499681640899122407670092761384295236612059735904100597475846908762780738987716229874184050010967024964947434654166993642871289405026657018553715344513648043651629820905143407866469234712241110399934820974794573001663970697987191938592126202312034028004263294557751521194956539941290974767522661676226014073369881818806736214395976095794026121788980872298186345967963357370840227679916764940392514225547756493778320668289608629937232583060797208949228105649399739261000820876074353136007276844907687917742681920655667609833249714100431372729509132793912696870885675209954561668818509731475826035283858965348963038073294370085590006697274891688932261315511218518962961816303941430077202224527248023944488352995676971128439316084168366202074738096175382690753727763769107768022530711559479963708191800013964359789872468564232818355087297313229505282788751879410327964937576683675857229257799253327102587232768521602868039782060025747387928335870614181048817623876078806439011813805819136216837055179589649535132040499376236314048089200372052116996199837950698133990205507168130710873009984890290784477450785650348477203700381719733905184358965424529829136837390061122376254192566183672605398246664117379143932152789374321078616091438317743539109264261551830970460767085929786342193262945246262157305729409380993622250609520150571934907633711072407214206983981300733971919790754443779511549538585591285680292650674882142514708678668940218004588969565892496249929822029397579150300585824113768495060883579847827917081864323284637570855635601967891751245254084004679541375905859826531861832076685672098343334500346024554803696782064223636712383775957393200631220143970183049047599837979554202750462660509650072782037286710564766487120608494655086092624763941518337400800302031598348284731116145400161534563558761731020026893915753759253273058335582015894605449754878579678103674144108676737410782947831171557994718574743148440703380902652258710473168122409322411404966117079321337431616067462230523932057038249573029614728691558646248659605125814313863651023770497994133943043229055382816563461722473159355078691836634702184833081728804500895272411401541461152061149411127330713923253223400147406696005165732481054718420250797676862211950724924151066003355975114932495347182568818252101409381621185650100851155152621157617122774865652543184215180109997290653633025032625540017624207933150980345232569820447613134327082946997360502844423026122295158720332104858363304186422480224895204141610247598170847299996528629460717139244622565463800564815553820057207821242568536983445204826362997531806471474469363585575726266594020628567145372762285288126018885180494453431963639418284452009461830062516522765948773448241671048568879963886660996437334831605351224493794077135013121396794233682916442767724264212004107388135174134780031136584510444496879164967324963761740934877980808038277132743819301013172155799838806875491726038250402757553632336151106044077497519510232142487941169980219032838772726889555042760589268489639193989063236928839486142895937033681290526486477111134413258584311493009293453676259402045633424663490914505786742635092513327624065108998448815530452993788125541276595116826319670121436843011763094997713240705469372118603327641640428565683724709336158077556496270042049529859776301214197974184224516553190031390527687815551881287725738093868768733244525462434170197418667576359332537092232050694146420825944646302187273503800303883541008542201395532228258814301162386258315081099259011044189935266341509773955157493075684510787182482719535075195637294446894781647749567928434924741882835487279658138645804989524235637591189733558499265949675999698593798179531422783013006419239063595355367269088654513911652861605957471367197636798361616329076145119082045912834381940173014357333696285223666575921706440519298010607665146734818932866515571248414483825395722096547770203029461660829868639103050814663874812748450391177466550724146909089302603169769330235827183282689341283101730465946653002834376816275966510547430527701756469370131010688257444643278767533628782604282288125131335305157850432876964571070074518062180543595856598466182382958515013390349677353550119024296747538776803234569752634964094517793743758265313966786262746192839521682312318019877878273047125022266868499662455218762512897341227008259303731259668494810614203614603716105149869700713891294724195740199830744256058964271361069269408804262488752986311427842140282282806760959375448813657205213265253059930115853024814975844112936550390681243299822755656408713903870355733802093747545311778213875169008939804203639130909534429484228466600336936964593488605602136172739054532741285743702015398996941873549051804548722077221771704898762851045058824024851019988906306967194113890368696474196261844106143232206446055050491415903197001921962393350190200943765518877258652397461037347468115096417432277462745009426666863786398251288193238943159794715201765889722165187346184973915252575020183369673960734653552930201638855626043744766952942425127150299842970413328827995369325809681851932794190673310869892019573000343230156184199078396952882885154388597727884325462032174306021892136803062081458430275966576353589051787414396334358803602530935893622288023292444144708003164075794951739240863126149114075649048885192852439703260872634468408256870490304692819240917808342708006870007537799802464298236436571419743222058555633544919742634917705006887692519399271992491043754547908847754055245887112537406403426755513251208770412087704164617134644078385690746231924830431457028389516127672235990679373928532522868698732853259427213435783153862122988985257297637052237526285907641621308658854716869432962330384462394176558221320152220959557070533078505087348223151471296927116913246062631773694916782980506770065699363816536698587055914667452070279603199459940993718997486829805831257892195433675393837760472858160061715451023764401270967500785565976914097420456500030665220709375770068902691855398189346068031233909630602925940512470100645276398499382753586949263933396658759046570379015219170203543612518446926262750077364301125590160358522065720091897789663174895553638119265018173091964323500630492336295774621909373607187827949678084014762165703581490484945365491868850065187958220366774517288902897913003318581745703532247843388412683554897019932430861728349918815787993083149122318958501071560446649547076296808620898124613425406426698584830480414553513142264348919396598534474678018271926277745385643400941995333568459901001765939890506041177052909223830869266513945092144487972375709155839123106622843479986988608335554911063584343987374482048715447376627670068807281416421681643982964349099584071532132067278495920512298866749327639412491370352822987229871059605425770158322363281102337497618526420508790995913551939504163783301890286221304880498343532693850505682727933492356478738249546051776091483841935501407096622567826438340937238668227598045875073418402958423188165926534153746603841609784788082120613643131125802866584632666968318819892015113323404665006620261010319834718401516736843037407113393713994620317895752600417660429189884423535599444619637866361878976455016937286951317281007915981042518712078436306440686290710277608966343010739338267511438426559309695949176504109459517893724297952894337972727748863738587357429287032964634096490844154371838634274317380970064470045234533383366885112970746996311071056614810113186100409127942869945906311409117525796942081132029904172536381594989531981250611408801598554598111232263958310669533466213418874442368915019440919263009600169965593035962768655262907852792711798692691836519962303459235639165771842783504003910773719492651567838884260426889275901856828167200774307865925761571925519538519888908649224016198275541334120432614379292358083804018604415871234982447520031588159488799693630619188794784949158157651627519380819517225905576922226369494484113040007019802077697337164535477865176956267274946377148973394277331461653863302409358967026217048910580757890770994611630266030862764025606129739471656548321186929158209108746599431344602416367975134078490700202286513440368509580588441364297174394726308471670156886235253016257876645324302837817809436069609820434690839678408529526843009392975915229511049090189039378539420459683062241291775185930702945853537138283519604033273109056457493405327864852152778569524012489215805180596805516838752968699674803692436261815819776844535978097247568932297071366148572881779009662121674342657549909768739079495116938389361615680546346359290302506505682902735033810475900315017518766711776720532322665320745949185273098266942546432119950397917368233332762920108263576621007643167027145809814284477763002674608449475059487799687000643300728095651411624223765623671351181681820758448057795583759720342227759441285916298898456235665936293915937207003815040928221468840941211042912491569506217039202796079264831077999133200412936638240485535000305926191961611849794661230175390148014947130855531873543600588120615968280328004760814838865691458033538236018210739478741489604457952508529692083240650717037865390360731856566664819274493650296836774235376292235103100664464336373975476297408108892983927620937354751035729284442681905428770601720238544069230409450976525903653259242302941434726713873922257203983428774571229877122891175442050923197967793747818517050609195386347135744572709924254502558423269949064624726867422767133704762081845473166357275850873905730377268567161345349411218803018595847510469882137493933340536461675505791413030747424788046470532771735437275063454208242216811479487961698511598528860328898892986517491811988819175709255470014025147500363841996898653905369240056364920568737393245167913700860419703061040736624983149603832415573755139785157014030059223020025724010430829475063687714753307328065031501838783423933574124890357139218543091589270960937508796550741722632143298222925079195788550798353564221862698104187852145322162220101953037899241412535013876491489894845612888518328264508982443926469252694765826631886233512268209199753800419906869477872274536063923933726824022534095779459008993143709281553014072137041436789309485148909159508941705041725019326066275151218790225667749590541614209120905227729137397246304330274110813516419913005637732703225100728080100076350431323603998283373168768577306258983258379021225683937078965788154912572703791981548401100505934552272484915054224001347183612128841284677563511166127233576969249772866702110521047756339171766227623336750945480212541346641913823965713105721600496431966836645781306473747528790024097621336622915029089790497274310412914424281248190698823152487609229866162641427076334125585522687743819081865053704529757610654474147885295821566336651835774840032495905162264339804440625591903111915494080796677523576214993400234378704493661266261059220384171990018926321856544014758457345486695582670590677837510000286219773963337985163101178301260362015499256415772862181634212353902280241728552509296453478902230460351023717351923290593674035002186439665360724317540797841281532749875660406738914370205533519237384090600693940969889265065557765366443628538204285830216911369519974983060496002604097617969157475069718565252563073823801223915468774032769168936454736489594605421545715263078366302288552580898618119129374916285003986381582414781095485317646736722255216727714537890425893533903498214258770541258630820662556435276188542778744357048921283484917793088673450275527827886414011403445596155685906060381445865584245239067804646280789511544851817376060535757502012993028736611921696616326882356155936284758974486541069218502730406899913300163070838714237128610457717851463851907283139813019010734968287076758932107204655396643318148347183296225305199914658335468495192170217685687831820685763205662184549466567136883653387746026290857331515314322274470158840929643191091523670401574125393182848068413348611500941298424816150397701911127817860197958139494916192100734176024053792189390642915822564202387293874875122004147887146416503567117520698465275102160224297259785232111190621464264711497289325781873625926753613456708980043458365955503329706124539097694403888626208002932592122301809297268777891109927275362185625608152998824034044668228342942909023239289748338003165401476828216492549472054010492043614600957638574486724185030333601652433928952213059067140770707612134952834104934738227554496104172459627532784878308225440172027923067519517680394212504591912606779133198150939156831487284049704779938074389747000968969471599456240416748463277375910975250007978239132414998113735513769758388047610344723545088524606209691222899208765218905912909803487608936517531386009798843924102080435418339076157547941436921877616160924332583608451939209481774993358329027757898526807712371694127149021366796094948747526510420778414245721083596761583235741134642505851773355721017302066575812926815497085578399405054907019662604068428960765214056968021876176780055500140236456036667999146258989244491998838875639898471301942062741846868757521926679827176727195623892525728674183834397776247486356247386217548801124805193054251610511961048227971558715327126666737758686988876865761925312347309608248459985123259545017056694963938898112956363681903184392250319953247029218540556357065632563913936516658599735186636452367123352579397811246831500223699900785743599349190599767940006848498703434130908998235886897463578189950286852883000978378971182354618893131043975209307123652172423434452149095402966254257427695155526450673312555881350388074653592490435335845503918022275878799466188404118895621140142786517456608524406013107407981129225325322815692206359596341219303732484700180231683546127277423819667109636373389288615605892996640799917479198241773487384663627076404128239569671922133534353755433853664724122337038161394066261510363157696909063269617989198178942449470136068595528216323333000859642473503158415006186585737159832231801310794235151430467161237100302804833498685172797764091759847968510066378625211312183980846975477502634576508936078059747211343676477610344314934977440243106995787312696358650187817015795207959973369940796737797470713360951304858555945620652063580668176599738865428791893547155032796623051389297776580609288259310170158198037048399021687692567462237615907550053159229666049157384474123317557094228602884464015060103139215908540256777253194639399611444812834954117636905471900021608995546189401379254729371710484398614124569373230880075371468925169060208381749876943513786312088398644264631109995102442738753747459810284015286367781199625579834111852910699095703196924042496470646395428814009626927350199377848427374324685199635678193564683525902725259823181649615503751206347526486154727064912173337388826992884564934997680344432269926506456641975764612636020231442155658807468086439772114391314182393020241324171211607147824674824535798402389238469927309206454616036397466911603875823268949176224281102505917162494443314409097246110381722664870862785982019623602598664617658673778400153542880674156275580431628761828477322094094260604203725338455908494785761540760467993254128104145941165953829358200935517974881441856901421666422794807307229497442065974817739197531462989340407808987316150631822975801498364540003675676595819627093745472185925310897234783022430546415648176897612768834029859456810629478079000605706451411435407892419122072241648846826832550105328632823209959977343979659809133539737259178163894721326669046260911261644073350455329431054864628387313615785700699454282963631780081412830592597300363132523529256196982128643416707356750521039754625251488266315806128299481345461076270757372289028824570657906437218614147792557537515582692477217437969346108875542282747621036154064543308416701639432255193553562312477712822198438187198054244099601789679498484750457500306958135334082788977641237222265811939247765099847506117597286898634583688142904402776522481314077033161088141412669844118892249470497896148867784687223031493983015362554336000769833615163478776968948910242987681460846848544236566839737121706748883600824372604800237355448850056508682472627904570306019593684570489028341107266712005206955227357074831408986948591192475324178575319806753984685698852731869827551892439094127479483604883279774308475311963505352816793583106616313970662401903742644709361252719343717557610914598979313119746000099683135683824496104814557040001585616719442265698437538005143943024602060475527701024133686125738211952158643075358035881415065946077827549041899742623917773578124732085134541489584381893077987085391998332743993200113855997086132866547509388107883421906134989037489603901287328144211636247300814679132730203181969251182196497591212768575326185033929079276249032998095504443484143103636315372330923421497896621496673708621199422069911403221820512179455770137023434102192349589055773542502560544337556037201739902754150530975042502183012810644246568251756281650188011397426930028759412740544633946979221320658950747295743276285655918071897882181857968828773271209347172654634856672034430914455626515203805748960575988070075175006401481902893720166880230363641911531724579155756025115696558293231075730712151653196098728343071441752563259938488230564445511979902353871920874201651468468415154877646031486967684201844135465657518398366857174564505923748273763251421426083521400992804983002893670164501040373964337587129259144542397598802796175794768249005516926673580560020109306924838323234283617420225954639902841259861905801073958974920658050559054639365188446969282780413407449657297278833866980390948838223666449084548870540903929160428308418542190630926190899261246805150568012679544524409147131488468202881705271001306915645008353089897635163854811794572825907625061681657687174759041225211217448908709291655588239744113393769972233440285551398168591656107141798918796756064070101269892150019271044001491858873478596066158345205995693621457264108114891536189735289924391232525564281861677208872671566153906327262908832161162280059255097271448142240245401822733409965030928160444433308365626176651120414549657376106978687807819048501119293211239987285389502986413706689141475414282103876883322650595931543087293121117427380980068161428554068773763849137046681532921264650686529062582229695201724128535883747623926256757028872034485507554970022736777619635899237295594683102873006020671503371868451464074862397963576841854230635014344871829814755542247832431541659272695091025570658729325206687532712417621405657234364017642173194964792817347019725395594154315884543624045959139807573019681770213721032470272484779097142593044875480241768641453977386869374803137068623635042423550844213505988252639822278378380735156512686368535884917353287090988272495069847144002721409379697310874702981323334761005887496565239116662292360489799889018071425089972383867577518793973872436842567634345500116775181213158508466673698385987354525707978381077802217043812230153247385947584714127147563330494337396592996819310827890122526687727498262602192711782484569019792627291914259101055180194777497703677914069313373942032012862656467178176747666231143497230176161788036444311268226337285294815838634842713807750633513165657734548411267892659752624516452319629534226465639540745360623127236822129414485676368147357845179218546107977068528067561407256885052721917842829909178242589590045747452341279902476692393536432610199319292895020108964438298473389536632752682163497663475765457663311230860001990329220772193284387422617561141205633036900057546168407703472727383346950014092120810170626663348344830346306383631758797355101012172901928315860436924634213477024170434568776382804074277698727229746219584875485337849454671103922258236495551554087975388515123000079851614219212858599465941064807160827023282097739845229451844737217309603292457302185922593999079764480189538847858256796599925322597727150524484999677959730280243946459142546803982287420678058276783538985251589186371279726128402366257826863112549959322676883650381535977895555551746321030912120685488518682873053831862772098362301988052496435087960758241809211431248706648194354710707527311317108708628646478249969777743146776081370318124271558600438908690862056328596736025409068360662762968915717045482608518355388675813438997118654716763032458380479337447830611183819334755972308979592892669465306380214709625798735401684323726823692648475848499917214849796634235005546761457218765929226790068100680959588112258280086757797863133951701440161475263111321311417794741327461048633662663027904071625225406669336655521914034928413584266421304021424278022555033381805355249158743500442667290208218094022151417457424388934007706056367553513399789642288084560105822847743350923615015576237223926149832623717379358696214824027034229324882574298054335509602808431797024006056566277369512252999740138806935529477203090877858152140881669466710148188868492281300934541334623843822295019225472655714532245595374585684549574062162341436342528054798051127665227570195146323419242125011437386765925589551459994373423519144181654086991783305971690870480005057619306270069747696542876957417920673987235774428242304649126037790141796977263032745045152716767428033280060290647434633655919038265649567554029933313895606253268825403072435810891007648991745341085364703740302881637971002361091109292787687548275148752006389730064743357562941960987285549712111944842866288978196857193906049688567281342969883205313000554899012872427931853274772972065922055850506614188130713975237563263542958171939376797753220801684827445256639434380008986396892619070886180768358879757309878752440967617275748097965502436351406916970388197733152797552410119356211705761767615459666606974825010893463741190517884087863014395948113729074027366918987888265880366868852114980812816301119987733799279171222746493581903673772817622332562512982323067860325413704493887161637395852329070222500105764584379653664721997182782347141082593800068804518857659145418380386059325168952898224413760548463197684827406299943687341247352658864634997806068381299466252323176794956392849898533046356120441695513989421091664973818393134406217453597194526597377499324480160972243976071816213209797562196980429322604355268549162605374878709398039982225250935911404426550644728735005347233144268815674911706375954005181361655028355696056191573519753989253278134157892725876030055507819625791562236676849927643152309867642633983470032330883521984094872859590708441797284116878571953552615610019853397321695920337794005387376556361442373003094146160239380482924563380651564783418425110338811959699521802771441469935274372741758666120331132289448169598205809764880103596004861601243620248397673328174673643803282704775639373198440947498290815550379545184706438427685875166008989481019280449517292424612469056012605110660398415762000282690594686342763979699701861579600803745528711862931986529963644752213965870800162271623400165427960832192507531141062564093102245066560949078292418813388383634416772319971146045545562596583661167787317759319587899227724998941423231907954487547629202422515898899359137569197535515210420881081115540161933816563954881844930906463560802990264813573790503253465387077230416079424422112596052172363211915825730699605787840041734731889384426872996449625390209632318863259006646458801448437743348693751062559110350422889715774252039277678347196510549392133347523224397312079978301662614273270354019185848132023910301977389901815990080952173078159920833931037357790793977163194269140818949948914704396056174832429346383266646024844044085324968328572946480987539080507313156247303280752247331449545143447146217025439290046580733574213092458744950466450791991578033980349858729374082145771041385030908013975122242770132587231464612095579475350194100690309575900277081287672336273253375851248108095729863472948525896838855680084193362609706075776462680993721512736388248404575150646163298523739803892539981863434269906869162162561254674832879806918069731779967526881051065631177235139583294996584944469415589908108988943531289032002197388332790204339241119992288843731543127766304633305255482737865646222506344060621874236990433807113513419065075664540296461168560868584799119891502244497291323445460177080845797796380196279926144583415031806950757297837259954340460052348315343684099134241497061890144840113513739133872636652011781166924219185252551026316985278825879745790961514281545434847561990372120736888928595916500636712545506684544454540587849188140603266216915613889460089874275765034323841480684052776124957776451673731772401711408095287366995538759586019309712012297400428613152180346004227823775074611832867087106863231107044667282770179713274071692458371370964177789634153664283360932804952292536480322000221964254739160849107826449777855217850371912428502834941123606299481079470430039718653616755115648831223221752955503427638730683096662721038861823585014095086190930486373139080420914708797038434285687658030390053505881445947460652815262612138338839888673727175491114405080352189888833321760942697875180070282765544667192752788715676005931189229432834819961955437309806227552451377184917133759746258779751462977950431944134263250439350873180259744228872982468566178366324606533351932800854362868741911569150575639528282738334437190051661936463386630755019773369817769959421777018812343824334993332528803401359218363695779565269359261335958603234712560172451626004709770724001468052794674287341840172841588620533691217957207460779637913488889828824168591855691728672335394925073819930176237579637864674767170638757438779176922809464476160824507048549698374048488067762463229402890914692646892169657606135327500497239949055076766133349503841267497489043065943274003770811372344886150692443466384153493695340886979932282604034125515249852410253003003412968731297654416683606037377574620276288727793554186897681146380804292847048186158699935673855750325759860588133043903222225340761717843401029801317705629308854333485632127347033972704268116973055087442510268995910377594804389111203682110184317101811229361077382069984653978086439405158659728680680714550665084802521601382771562180173106608073879486176256375663044196562573039074467565806507038886590564523206549452974899312547869082644800107544198602673850450856696738541748258899500885143928653894976076755181122224427636851024542076628969109889212669973552885441550490366358339283983805020582481763630452177931575517000888378885533160015319964076212017606893528357618646958621353912125510771480898222891777868686189001575196527323528405615657590743785216291692682666459511123496612109593704034051539396482561504760732052251416063685554766005084798527019883733876807113367943109132782202119445748747527234835944268283691937880524257851795858202312008983382462693559346941410974938396193289699514869245682839061220406479457197423892137907742792666477719900045237573594442650853004646024850004567452434190999052321291986332864351104214794126889362699919950051544573646285704706384045681592209445041352911486879881444202781892155435479352091698691828557371962519252048621404545435249994699835476142304766006881905085983466668461529703592644852178918763617384998921642652911218513608240943627634754775587516622884747008616159586230880806667008048996187360052601551198956358421788635836362961424021543074996781573866196904530925170358562154236055277301652766944939082915521006930690487756237379702465592163979019339461273184330286324256848217471373162338880491866369371663680334940629947669009821516786351565233763225252769611711984118815197837426674885404533990991777219828641744876003335140076121083090155500083992641282549774422361643814162108867290085573429570973277979365287971816590246551607174798603888487849778987007286636950747864618396695434147859138856344755901994983826497392030986374393195949475793634078852069666490835365537580338043919769053158234268348824403616574732354087983113952599001579034456681031026610047588309264955078403108954814755336553457714659695959764033299344733280584104332146033451675479620276967556120231650964395099042594995575776583499066148219082964087575027019341202665348461038883351095124641256325178980696738432366653052176507095197443181674822143454426286232166807551312049451492641320952582183424420090995962187789559821411658744984020202591828150785271802228854421357686740413686665670701084615741260370398110556162884508649743983232057563606234948623430473190761999929920369059606497627733672776454046158167643570287452955207191098659923375583768487032008307717660493987531682413972898082451129677710411021601202367247888181570233585020797123537739904025322049964944220929195178964158420375436841683870233950115087423474273431568039084154809227455915275177226894354469028613588344393253822022387150768175583656079165839676888560593289084371805005904858263189463602790426727329001853802358279836832731250461565114917811061495795900113163208364671475065981795439255008782992924338126334328877707864738456047401178804787029548511018562222604410599117340626067410974042466024940624151035624183352150648651701044306317403622186578746486546263275369143713386413318418527750037918783247293568089296140147809020884584284396262079863484426193972039306459202233510958992884697256487990459120833859018924350594818856267628530251706757391001921371684473597095451042182853915135451172664886180851804359379708417868143849949902293785064048286875706541886520547455073906527241626712982095483934384049612422752977556209260510609901840404108030352049934592654746854451040389264167700604488735234916371923736675463113063856122803612088332015681636425679572830476800648507942652513717722414412241597007836741996407256810287427658864003335461606037157627767237223302382609778650041879670965352019830801349478051235108465148154052371691230884113516605631777441501574127218894210356091802833078533420985549266256433100789993982002088314893690850184689040636679227847754997503009915774405831603306250254095908607583874089056850679033041167896178930847774054922901135575640793848725980975118305827428204612831084222825910080155863469088961947174331058731709559753036066400967624696888919639899673568474532135969088371066886192002751254448924050263278760159699362680524318496556054096332085906420782685138268674160631769390880380385695141725885034018722243484044997061106748215390311021040598120571675100039069802465853150491936899595970607071472065228182347666564441193766809786282544869611260233407520265060713047226650865995185141056462927335968990791304619419240768341273519449731508359207604937096095032227970366515619520391509767732492448608595099845517786022698355197670839790454369423454746186657484654591853689399274300674119537972162370737584044777829596789786252317082612144929400099952770909640665971774779218717611264589990996346560119480953284994472452747469473296625065515032433486650579516136704935191615474600527354599866386945712844149218753692541331514791430127341153420959095949344495111552935601485825646035353574193512316521545911497940283412729115353906375117956003145498622942012226493664428760756491470009605772813177198754164850986584683485905699778718078064316407451579303774795787700892530489106941013760807595516328317019553918971291518779225106713517579823468464686137665219018736940273252790703809840656506200604163507441536125137664274300689281679357351363236651787380421976813590813960619802003196638444407471092721397313174874250453735000324971352902257589350095135112733471319529157511199050912491543924460130791750601423041385736035123228263461365049798599861919894703497313035570577998803069090971633114646084684959545732521284732549508812825731218815562559713296756434623318275374641590233450913962467969882499652302470559238316121363581021110726556467647545572373453109799450741662198757670938907146010911921543468122847844050183782655043723912113628647254433225305337344197635862802357022049105182143076297178570433907977819385522573603807922631143488230637959763704329141893256108614387175701490847691444084026340000371518344315802949581442253876118353778725677069600022452688048835526222150690851213992536436152781479374400988673576768064288446202265345445109917218231326593521157618490896195462604183977755084480832252505067872452640096951893545653507366783329454782555310512170455530447103670298416972851794039858134101879378842608743304975771359313567331163725717960276975187872890185470379860214671564106656377333088366573965992064296000436131916744328352240510939557110837667154440732986751141978372449565059990934212877141440386464407031939170485907965031978293633981149092505648614147805955177078850753877145347376092263003331740519913187358384701524589662012901144349765718863310204692274677858950834600228465707075224227002073503548475486234433969338389004994648928010562504344218832243845318933337332371557799005742562153159088261357008377015123764843562014232403568890233133925208165216202096548136881154989934676346939959563547040436763825470086967686297827642141544378161000270350060008032161245851061593168954060088329130066599827380804415290791612617467580683847977399026937031138239456033319040213396557301246197254322340159667456530153950247999939911179057120103377674200111146109761749663351722735029267984392131713125225379283341232633114701634095605710497064405161058797254180901461629158315083939468963346704092577505837440152565699997078773413944395992589163864175801749596037911770814250876436140393947520603120839367134297568567354312482040012774035907204182013266017210995306186772143441156489265136431331456440747656415133108249655005213381384482213924750374529547647433544307433923531187625302453900483755877476434962105146972502013854262792489822689033412945182764686005495635850251576128947049674425058681116080200096776991459993653553698100840916213460063037142692148550774309040542157838080760290254711857080355963460691842625421326721211386008949637176793613668537283406477769744649663471626781782004868159365525322111982448236284278695455452823253457282696432717879210747713858774130494130426702934528485007780220207193141108206178405883127157727808206811701117017809173433397584111122648590739402495171808357298134649279359732633004021583214005325726123257874162191730417267663692759366960978881439231378476042568368866046724476609937438816930919407300681394704358730943682629227025426390824407924241339855069488516376390076051063207630887704195672833811176286737294866139546683486804569975069756771451859999523306119871888637626803239904980793256966483514409630948638612600747107335822449711835936140215169526719961150832491763386196486120781582799085908918794363707512891546441836303635708982960485938360957122420328145116235585464526899815849152428122892365121209070243760219828023782795558157523919590543610195755000259928839997898278805246975617609273768751860521691878478944278503575054082624513104891516022078511024156426179958963621828488830214355214872110515763569870409748653218192419797535206985129434239188160624244147603103279673890371164197907969108011382654587382310028035012376634704695227669660201174889453721750466274817903472431294542376381114720067624661887224903777538091653983712586960236947751372401558381882261127892599421530044500795891634717634746806614077656889641847435823355828179109163844717394787795319402782958363119572607476048557562734459679234221463742870657324626493666480525171606745016333834895555912189061911249764992659035923468151636002820311217439326245204828324537477018914805706665631618585395074264579669394124703280884483610192058932577463322066363697582076662024108497166091270576207099990300081214073668338199128157217656347647521631359058435557296317175638217302503606472308794882045536455527654534467394957397586119523745021881694557397200634604195579529106598845471037120628547461862172433729302790022898016706540786589748763348542985620613410394603239405205262627979647007272260441172645090079176462518488309895417626471871003051856793360634481128841501296846380431163224102865848232055483095891506830150142057934398317121687060836543166112253682706286781020795828707614633941146745897373699405588424134843373483766720194765536068541327362178823272796502740031794518777722549156865324626513209202959864075481249779472661363610980179062948990090345572519654327740325396798186821568020276720247594468869049658265602187757313941073591315830151875070950950121589703890707259122873794734357053267578919846544885217458901975841243015792580323247206044133045601326923425005226677783793116418946767351191908193398058075764400905969943092503833466730432468293641513280160458111609085683991710077851973896391437059683116398818373126688121966876136556801191339718889520496384896083283988160807859579271014734518004007518974445944416352142990335631795574818167837592354315296977110600699800760200659384881006791134592119514132948144598314685481203237571596451389935071711920869007650540370834341272831066721943935973357232730225809508951752562797838034108327070654201726355064748265805890931009328392540928451840824874956047842352700060105567320613203041484816821309127545374421184624027981220772641554193663259559049475320532412497258262862305821294292293692963567588863063679802668040889596515823769783495040190431266794063889459187183896030227592863054347482241081705038544864981792151392233704327090047118496496259648689636064635167364078710555072903610749149877657150417618193519051449955468671741005287119136503979067659670212265672324690600809237548242925195318094387127782537023053165261743450086242208445254229651134702459313572556669722702440447117602522005227266528956629165749040834047687046488823809482142397275315824996646499516444605185257142226900413756562771541178562808462710772499498252649739057817266087102639910655046442959839531026938407114656288701137877764658734212901193518706777260335373877382303137961524778438200448594329101864963097397849400865389340228656008023616030626031788021879991696650678224181546255255074398289288716475001958578946405228360874953483450619167990179849542959818833336900029989040061984037838942641429864710330233222087205760252122179001135032978590418195726017639847888187597471935180722927388879194669469766749000024406284663575980054831695451207081273025396058566962528391723364059869219916742375601278192117135137886715969759484280492430192252176877552245250216712701589440946722852161114663347155400942275960829903984653374103194954643481285405063785655883477983403382289392442944015744888878593745297527700819094878281907879945688583815095272845145389826487296877837546310254769920207357466849432070733117626291057415313393090656552579013668632825286322035957154873587055005290680213074643003736247288486932480327419251939604116137392051629525823447622093606525400037057189617081327670550256708430576963234161322253801420469826748226946960535954554441454595761582812923238120458236109970812781685099621142653721175202827820360096149681248882652284187449519871261355577674272305513580260665487989280734239742466245801372846869663397526162314901495878599460481126943717652375255773103371186890154066140709849863855234746231663261271873618041750447089417376413929663918090588207533790337535098764142438444399849773312358716021854923144813369812719902648548099654558293944170261655647692246791281792747680550412922830734788138086725104712166683566131165348538027131224275688008482316212091947882943408631379922157308838009427918238123223393618666908397991681856407324055644900047259498204541459898943667965729035919637351250396760353637470532748683951620252652204650922840830183620812917472065676715270552159437154391803287831542696826015614473090979755334658101909634951205628159490539062671140197963686023845744134665947774699637984850123641254026321423823128601702469661130049256598876401793523909713330343159915799943850269623969186844075982276019270435349418596183176792221449777408935150681101506975234773432790905185341389205449171534983242651732187545367516597781520665126308206383133405213736146224419295484459705685968740216243684193480115619613876063502451067502008317711232588017822407835025564108870287758674911518887619879781922092796804642499887563091023002636998614572722355944785640962329907535331396376636948768339976176572531716745968678909814759648263360297519120671414197087536673057970414381223586729489662874191579158517707263360980850810583161182810098542007190103023786169904397165358899567827963027672324534428108306071457110898894715950008544844170796199269965997645603344325692107717137521717212136762645619452943808355062878409311160988687450400753632308831144397797130137738141471050010689822878191405272101953150911749815677027349981095972826742453258226500165032934014561789544724992498525549929890033710316526492986695647945620220747240371271990598171107198058603681728061447019941214358042567489560268690589380644348781351960232172435036085691945306528306694450757906878093839842152507617508598574871908381100297180990737317756265098396404791317047412899193409827613097241217044390992454913088115147870735819882592995087028551430759451999546647846768333731413711784698227968210337663335734549826681179020955230660332504088808683967737706852324698240449395522046000954440677682359581895094270126658059375257431397638230094423689318798769229777863789217995400921901756119205003178296037229432459438964745978910742837554187263309006943278121588778926041355406988932252230498214882027163517713290134898482397359064397611748625075253031047099843153902737926385986219423161327689946529283493663316184475664863751835454084747272256745500570268065354699495960093644083497049356655077860687801727586507599710712857840661800062515543003153116230098395143666761645711380991827143523921589353750767389036966989993719080487867388067812262948861625334918702397815241192027845598508491010114096507352630919821191513842946529109807797194009885238619888914787501100541714666596609186934696837279551821049196307450303198115055418001968906124294823639178143302912430962193077220670867205102770596391667401988567944395166755538188969030723480593375795356593675313908708258515499402645467495425484241148176752065012158046562562005306946543457017818256538187744338101021668667201226007647035844502312118583190304147384351766788191139709687380246803595921727672924153678643427077750514494953346551162134597151555454277570723732724851335602473433547106132200327163859735834561585884287479225097980666961473688093375280948160123467225968592320561622621218265755557222150107206356147342588758609195394018727650715476462541909609635680664106643942294477643389458551742615966337530369839954782798364418867510773705243856789146664726785048331104080145870152184499673142755355550803463369426244904606084276134162351729197069353345613476074067068166418402579860718710796602231679867490440255170779396802148688558074201249455848633647280064785986519329833435212547181821894627486644524796386914105816611373681373727055633907841067217147638592838512152957698766915275990090897954332919909151420186715480214620749008434237948827125475124240991906907787390369902125720302037502934462403655583533942586650635373377556263117914689769942425526258009849475370359367733406657609765064837990154444608047387839535238654594506727033160618358764690640692700853867452813147704329992208869015516012869903593559993656883318041963354872772408407613923631123111760728514501929660856194441032973690381093888035895125320189045930088538536617383244266721853115647025523508456085200929352036203080942222012397103586746676106464971911020933003247929646039558790015885140498626254415959827588851058319706400751500277428632756170393852689059542584528763943533264647789811687412257795215088948587972221548789582273489824119439262209240694625939091480401363151407056254410371518902724945468619986108349727057361844308526723302496466215708843014083162531564649108264917932374784264768384900068301149843223017095942538933715878605431098475805275974337442940305950588076555119843419892720722784514177068666255363615662860356906832479364763397633361125059358254737786488413011998499820724715047889254370384906369410348926312953679830436361315997518144938460548410761383451670758441260945239452963685218673605345905135087242885633938703728790463549306434907160912604514625908776182158945821220655276641961321560374742891436177908103058702505550178756625720438081419483608807203883647265343500959195361365787763491759282507878408238473241811888218280739759038604901526488228750571662529337369052236975597128787915863441431685661557695114524184096411784526181694891068181966179365970509386722376091936438148636102964483634765076063794612084892136425260165283777157139762513941279344368596068240687769448807639907394574192279566298951576581722863410156511170472345434009818993723891083759374154922735184875500641988810418580974841249964170947846202821354514407967133578648584558990820595488735776800510026406851842526065808138786926659653392127243492353632788982668114236053241619517527350893051131118220414553061151769469124164821799468314469247387391831211933551531929481910272767831839937844297768736980291279764932420378458550126554111514169418497779827323549169153115559123500500204863929177936913235069909587619871377192657452490398762304687481569210383101356367129898783708932352155303389880445035224689265286258021931137321329114648073764256794074140399156930427044458102566995731407482902488368873274173492966759235669565460957167347264275643129770945535056715596955367729393894763506858293283745536310266203150635376643234164443690213385437719209058996665780937463951300203325037089989105000492594698557915716005588507570645862974398301613644860647029869822472479365635084466591119875953227559649429889347554250650262440393605941991856081719019748618885004690726328317794247385848896505148566708670586723060513411433668229370270008370322914601299004204268539437216990993526875152025091058855628331084172124465117690502584933781780756029969175868686278787179842154017256460670069985756127701433157361016742506540791004602358371840652329421750869446606218925990014857337349163757187448013803237458447076539599625017669728880544836372506964034448887140721600121883435229216793480350458810897003794775360597456822024783956443708221042542097120531066034747783736435662092482379059615635205665444193669844039544465050011181348262827580221341231562621618077919672913306694858357603640522814637028930029290962031596581681314111938452760615545268045905783477586049881913860003868984866895683909105003005133661091880101026550266736597116876297093256770352252381638487105271397788199849981994707109257061241070318497236149782209137359955084007171698092081781185261040544858553164062834861778756091931812748895161201300617230198661629182220696232294386025662234153477425271776993029271553917489313482922028684086789793249017704511247193906432708350705691087764298904736791116978006046387308126671741699375325181476036176289895635542696972736614615057237442587310340055837165608029211373541986554721412146359796330691832062390844104911744107082457081827638245073652233510131885899119841964194401199344269361208368379220419112308570573826157060872932487117395228102154830389505072666297139460884747918438038950213325377914713256071532427950359669933380234109931777708009618553889979785119876080920382153545518160522379866816782246386825869552195116685298209937486039159105872076313227106418006357804504514669084335250120593437124226163914571691564164231492701118675826115161865084423052663022978031286476214874092350108345512171002771572474243283458687340603264542054115646395344590450728570600219376906290518266003382140361937968585769451849283880629342041674649487381408604152412997279355650969572924096733613901111258412107709870339037992737058624375122495607838900982945813837549738459834049326378713857893364228639388270170224488108888476041912658706541450655853791741989696278323050201927779880113542716241919096582088558906129424923726842603046466933664365324137264550777717508878882617835763927352094859262912805106673467585973068088439898692738193751309509539626378722170859039687750646412290609162812224145276197596686721011133555777077272304805793801646671016035405790114476001176704606617049735794207516510959878081317783092707611705108021205442065006175624433285571696618450005003376634962595078273224937531609928396875490507642027648419745536778637043271106836984055546444442990612500199163610356717644313450155159485888860572877037367573155000458580763081070676037059521758930459485436563912183280377649803340363235379638418111963071452073083587352316933970332696510836131042601952017146568203284335851092318374409225296306560920046897153237962061923290963484610725070517937937916687318194250910005395953786878670007353626498062489281379573848838991713846480368201201265653403101177263807503175759773898533973880178375464657690277133857013777685505641652070739457300324958292991672460643317970323335336666285127872206831893421429021914544304736316350274591528125071720419740093388284055434646888185402440517979858363029637631415387901512463975017230696999217696040220296796275937704044151160801907347798354163445376750329991998525743597060498552301653850756743039968246424411822005794226753018579104490256388889557108915461666948170934376507346811283777440135291241969690369508395349862900697174625222061479267673295185736428830930228848964495415448318644552510752479604155707839706658212483262675626631039780738823603122086722239559746761827532362551451150182086909366928388248160670418527796637722140392172771990940091660985792747728715939133866424446409142804398366969670572540376416143334428755909526072723943471843455860284265407410438903011108078685613810275870339357334767801849123357856617586920438115048042045950624721889366984795659089968159731674088374793476739112754088425993809072051279305665677890028109401967916409058590984988115461976939051924138580861867126217234738641632850862871422545955105830080227896175586022461965793414476027955122806978905468231986261741389054980392726800175599049131486852206160131156583108104346176783794196989160484501017725402567484609718896332500097040045944280832387761470010750145365845031216985989313824557047732499667826502623628701268104446100426265138577403419519364252383225173129609744063446706328464462780690565371630001095121891272783396021586578802606182405893961312306495706601765959745738035855964029854156775776509838478327623052415916308925812304125129668743727967132252265006671977649875847789922353345637793659950476362252532450762759351918930879479887536955013709132803094410945431832633812974197144400228164148102994619204414794546518666875353475838001629219452892389233249830910309979505662247028879798538832624105391446636781575382535813372429123899065141609546751822908885062335319145880834578551192190548346634462821815259379754355857182995201761330011987940439054806191612962074946108369568067818636391057826872310617162553015702654041901806983337846594739301306365211302960135413278015389852000996645102547523094202633623969676975188638220444281487846634264431457381754053704627868378537450288446212939051869607020256239213097554185757647488304242597124823098484844249119315418738632033134007310835561375521242921715620287008724634817697902135499832331713046443403270938061771166776981659467075606437351632905573843841782715210590735410073196220851851062460663434219896597326478157504747749081729835080596069288109672959691478632145276273559389022331553944864844577726998464845124215550519359445950451411434999476821016152116409152804541485172427227198969743207794521154891534512879541279311255161057554348071389468221930990010158177037892044581102349759643401422025931930049249103859682012794353712975495842394251410275141563852634544707304203335058446115781175849820436705160336281511793684551394982733158038849595690880694414020182977269145197725685210279105899489062224834122113932771205671130973686528808613398714187721608537772977037651482155456404936371103764646893516939432701171858765241072842728901081496614634557063667949946332005587851990600522977662759300894196425914187890695223506848418731483679827197637350833142310374338411649244244956951136953324596882928935603814304629753120674795599573350481057479450201711396026369851518513823883052677498623370935165034087149402872447504252065430755183648915270339979986039911695380402118646226413829182483064681548842421659661591581484009749671713346869482025891054752942944971272920707992881898714695296754470890858480866742301471876188503446897205209257962651396909676746331374334806231770855793745075674285018354809986847685450243507063386607968556798540205540588601731803399976328986617613980443607924678908221484242894858276286274484887121904758678316502179246503817098214360150993021105126345284311646021802620917659715894144205339912229192834539823311844709507489456230934718122000896281392994701499889515465131380437596946020939720383984041150441885388342004079923157623621335176947200346155073159485211544337579150536764266738934464202438018662726446492812769989844962230323235582505287498965115664052294569013646909091032652525227608146809240837601368432213907353780778751359731142691264638814038968353146105351917319612662244699740461772901920244611321796127494210836003540815446639702712955005636967725044865006947389762959361743627163097222884176381893135332149024037424486270401600770982890230745277164813481413490061705680147533697106752693997843634318051839813487462044013399762853605743529831389969354625932492988204331259695924121971277949005229805149395960012702231250525369550246703239000224259031849084826495029530928893476293688746705788194210171723518591204189192403314138262870806404762891487694355869602925096929692227504835030700293012709642816891417298467446557250677703698817114194364443359202098902246161809206759913537892707137442018657085305793250607390398039335972533562246701949077881938743370615952898943737643913884873732128898853115826830685916828693171287738633061982311928258010797615413567924594647485351173733419268529670504145627672672733546356530911000119812497574422251622081639154965930967767350044933353683218065438443180416156237910723848935783454600038819194718652981100476174424813327200717135659992314281787220524254153193852735920619330940163037484299589245797384547924017104816559953030494637364193087405870713545406865300487874245617768074235220738597844963673808996928708392852472558257668667371680623562001694323458060121713982036344144446933241917638710096985247090047439578125732044226021424685087020597861622338559484609389788096777779934359428894840375904866797470440571186562792368381657781344824717449077993750475933498707329942771185511655607485042408354274639292539946745293843857910427564915299195332134014949819061766547763579941935394291062652279668758928343610656731321952284013951272148725202278245064334936237594629579234448566557732500263635992867479085438186898881299056913605898068311154584046343961642184970463806131215042608631711591027371285085316584301379385163563278263514783548426129969048626932496937073863198948420155803971642246043744701599901281137925720767733625910682966836685573023349531512294376546322815711654484946499238353489822033739990103505328093041650879891465914666065315058229873870416588762571082874354927997355703264665183166688671961284326860914469389689340860281681637786656377747333018314528446626427710515842296759502681161187317198730919349568142551420454653873737181797765613284818424672846579638825405102584910205125046479655778448700463065521334957982496578491962666716633255972385029826991936345772759134413199225899266088965511077860511424355396982311292921291061601743208915968361004097722789159909432233209012657965595599251828861805408701203113834337442506713515186972847818043763307486879635095589428124988559172963893647078011919365119828108629764648430517162183895035589478653838078682642882967546832247858122455823146666223210661482334323033621736653294493692165982857602015601800598594987057050538108906203336082472310012875842646214852567373363817026659986575532502843603597846301320660978571904711014056351051561659177199707759945081511151297282312917519069361886038066880454475013562514660550016523779459757372390694136267890489767892603216379420388777962860760744801338601740958750053467651845948704116643445339618068804349203607305194233381642181747171988675327711258413544604408488525548999492089532896662865514742868278860773086389866303166660027535054529741908886370965450788199033818743306301994574670671317346691251059288354858577765298789661786039023279196845881390800988666301580725078482993399707119967767818000916829460487753113826783875126450899613040678861025650843476890324115743413479335786478393322941150565455097893114193310650669384969895094010375930074769720630149825134662485352483355003404323992752033767097747506869385499439328644225847392920807595345626719326779596953334153444213008608819918365065277522173440386263168784784837788534301390142239205686745420614512342945733559225422860208903516121812706859861851665968249695873387371625810211978048994729424885056887570979924668516302327519303498659904639006532710195062451811442544153200784091650647165993893775788705335659112670165828636088319834305182899623943882711807747400785639881284061707696013604595644073514503101716980117127955566964635008165760586672495132929297372097461366685174889301845913066523434936688948198283787714486257132379677303207963758393069405537261423078729948555298078661154945620627506777379907362404276480465712807812957704915133112624651501932217734761089417555540288200185435343055413223960253942128913247300628914572440263059009247947293466098122686350916545163932971328654315342849537563877982260967243969788162727325515394931449942996914686744722418859604548403372996632892064857893966234295222033902620247449522388124255978018173343620012338267703960994456265187086895917203259222011187857064385002459867107517515718989948460904273771959013048575544163024573119674783165529896070938429982131448716265709168267628092732838731976102838523714357689992334160877094169945534707163809202767431418528671258059170898337325421067582381877738914328688809285657746903743199954138351646188135772098538986008503375182091744745213841649264050567022852507161433533784866081806777830831820396482210202526044451366856316253456586096851608638897274852853524045041846244753998276408996305256123365226330366521139147681365726599300675909025585687441618927342392604223613830237687220542685266183429120715376053343167683733559496312665291764291777227536767342226185237366333866000140224969717859230426242360770535602999327054751496412921094308688815032489446824745786132588512172623954090233281436339701246577666307305771055761843426299617545815713200116913172130380687967403121522894411882356520037639024350288507894035445733585906669774624547623678615589874271882313646618904728875315072261022022102438286524812400788351404145567649468980325895454312347569330559199423604839670539614172685808435532471375483201484440166410034023298763656288281832017931419402899766462287739253570543241077324427046521433491114638747780283830812722280244591985182921111119630086132312771251419101065606214906329300113653595170834928947089004802104988472198820777627549350929537870838323007819740634913826837687509527174921018680499429973648705877742001635984401135617921161051663803078051028500540568192548918439541569171924616286442449173798667957189876129262859392217564701707443611148108150501541349708108568787694152984283697397605780732519453926628755912631683688278654302204892472273822561628744609561684854707188469422584088804256571906291671209130198034535582979685402464399702924519214857063702602167893284430486383289069803289667279769892735255875550806545979622796229599483272084001563308961145624178584082982550707487388640333085015264697659151902468950739122506914809827416210832908726530006796348292639056868928188713890257812314167401769569768222882334101097384778458669940572898956281304022137787071139080701819243648964582244112241382315558461649128487404853367928250562514336501428972632528112761018049494832584081522021890630443030671673703453752224148378922329108773812163717303776630857253094381756002898404187820012219113301118056053664871053341894048699677135429281023692908740540863844592728279811199282999993786804433024878954021779494644462371854377290972105657074026262748318015571034424178178354694073818191054847304776186351741923824103658851157676542255881038815910860764028663423885186819781622288210017020965942332357174153076718548831659962646448316856297713196298923067646977683710352248038209226439185099295068621185038921798851501117385667751423607461018851654275307262705222974433197210137241794284868705623310456887686200717350945690688442190102525810296458058369792672908485495024854681158601314961481756872798316447662280664803120481221755977340911823809122205879802737469164922889474111030743456017506287528483834054131479648215175176208574617493422447144730248175443883751720550341652375518146764661673447447002919182171139742887819125740458307585913338937238155646354832568915269085603400561169741139808301687983890171456149399505062214159945567803005987014383231252845032220220293071731218478767906790531655011849877843873602403870253698616720008786170322150491847678949949041165558945551392481290670829826598578408356367220714800881586320041223090350746526416000981546635442916440163687559422836790786277575854587354530704289681567439640538486881561533129267544484243854258334756180953140500077832093563017575774369464625899737960410709457311077076319989701255350598410249432463428994459131437263182969917268216304473448184957223118106985521671038364980818943330595788502779921425443960987735515103855317650506393429338214779955377820330387866393194143172486514391405877357253131561943509597764334550130205511838045652598790184615860856710682248634158950671934002306419691504519451149935568643095802649478801168892887789094405039033243990067922786486401430682982218225806296056548702205082849023341581447231588095217104359012383082001047831910094698712419790838072804479050616922023391621926900405363479332010145295223149320018940127888531459556712325912862131131440762769249952136621598199007573486077992540401701501254720256070445540967693118892423881801876721958500240856293651201357442357429541124120049308219677934156879513414190812794565752328771254788335292609703552477602408474517389596542724909353366727251414866145638027731727665891810234462905463982662449507580142182602593450955306810756183721204403365359040362554982556536306338153921809757710843332133737115332301350696480762629107351044358068743081336402524312219749402275380796141107507904619679831762920371796805149249406569213116585787065031263876931285527521695469258222215068139749629851800082570608447868247103029397206097620303950050470371726002903542559472920630392481054231772393159750320689625469376306613086912796750121588689282450001628513216512667578919983927494504635177100597008864149980169671256105622442737556175015635382150113951359683809429135964208666899137296368062853295996118081562603917498905222179350145790413225210893873888812580433456817487915864735002239191886781285409184891302948507265790608145863227809091631549307280591062546930441790476147215093615338653491384425298328550494812601843350128801077252035670249505772734785513512079035987203607982657177982916416923594323629043266621657443847292936943674733585658555193873253782851855337033458453898262734225688865689872014944094752121650427158909188600824657932036669868712880896667042019570507164956352316600584958589613906613027002390399493539708736694508505317819433857341949919606729143354370103534348694701231643842464279345880400717300925706260156241021610478473502411324374727833367242138366649896614362831550950068276266222681003298424299060012440316258713536090800500092012286210256811768519528753522807230685246437807642207531583641170277331903344597206546259358255846309436838941954544642004757540939694451315688813315909782608360003678427725699959340953952375210807143615067529187974548243027296596342228956218086943077798421695497230554350246923847931117348989831272743785138446652571165372685838273613433032734007674822434622272764966117421508631043891121917558340355233368907804094892381146718495957594250670681502569128288884114470865243911617348859607242420690911316398288356216433556982775501934699070472430105251778101751710559255030013289471686764061946910727015057391040003965455287862535294769035939039136859522475406583457963671744002705987056544002137288118609831217092360438225857668663294682534240810528710024980079373585050457242879114770744189940013212033095982891151229966798962122531870393634028537054490632163913122835224663439831185615067114073824999226150774407188310549713398420669465934793398007942862869645758202621636694553081831072899965016206300284163025168739235444892677652246890635837445947631750415393985084929484757578542179022739619917745356886383168554037697470413648466199496030779412244882909579444586804361467099216761821868284785514025540217705996304632187579462513904840762897122525296752017956377817285248514664427207712107955243341500752417106650390632640862690160103555153775229740112333561972730299261583634960704976480839478673007227986553988491395566197286057363508029508488484768594430551875525933255899016392993684154794424336142097162532901704599832944581156758687864082648225889236381440630900723705983304388864780038457865391583177358787964771325717390852541475828242773054103853709237226846165792428100286708229569665754342379442069320352934915691393878447327210768023905210228550549779535242329255461497980098616101518714183839326625212498673777769541160475417633471691109846283939810446239331536127234810797650797176233075401650559587290970527081807657267510685997100224309523584922083479558310547774290983746100156714550108400461240426193786292043932274058329871926959905092014493251620827039063569241263511054800269017249739618477949812468533881555086367459368101604518828463013501949662852453166394671228318333196084207422765354401469405495028926217047356446376440328399344911786873318463252297471975378965366666596946223950671441591833494508374141277389897869632165597918328047740638605808760362175005129124036024519441021569652126925583893204707019902991619366098324359792731704941812419902065432082745500254277198824976812912575690872262065366822961583471172577797455828995110969456655064073359263384802686456533686630276832373032019359637226269847298261044891881147667900795003319853743966633762966310296678664092564732209519768088383339890026189877850790036569554681849695840658372562033146086545064859148540248642647330392901837483011788286278656382417780359264880216319179625866720939293627514791526002552430873432081691125465122457355357187068140133758543562041503066810302014274262656569932496561344979535151960468064790804786133323696647047373013471009841139329124863251069017537030296821714144408817431657253785724119468282113543325645307801559502036122865319632396368398043845144776497889049413057705942374415987936586594853089503192908534257690169362525695454818973467810344448566511031141408863512672032548833297827812269457997319859890673657689843804662355726793794412513916155142091814090073386875832790716795021637959476665013737486845622673801432531081797423252561304072555148984229185658456928468139215254981754053962658017241634174188334915094040981182872770210827617434661744849279717259265936500962462241265227478083329113117947435611264862642732611089380184278077414317390249718181335366749396149147339043891094830832445440426067149042891688628240091663692040921388066481028566802689924527970386446839041450230883991550184832309652761143835793283283489779523137226941995276124041829572642738828207589994368842968098741530340972230529807999752027982567026166686651067658128510828811146104295856334020980639950560056463344438023227416998209425996878424937544310999270748285048349789087250337181150101319584845560410758839430912040307418661727610630095347704699644567595303870191883041501141831978579929568964351786508615950022417329538596977387431182563486255488729611388911064671031963616597351940422821870979919120977787465573367043249327811550674278560413989391978450819535360287718357025612453794302879777962829962379732059390028349059699651245813046264796264553156296466249524591847593164915351513687203733961060245285778667093557322845731684325857616873679553420174202054424613420523213692356138353385544430499594276527768445670068935468971080486716154101975641645834099037763048088494119784909378235281195413193289400785953600030239724731401354726044461260592569351579338884577897077396220873103131252517230255515344188189871143098550162805319916224180305943198108507740049285537820535845666402781608609167770073517204803226025799736910923951790739402817954461139091213950509160683367227212278329752728365997535848909054631035874590872826844279623918629635167623668534452995497967893824239964223034427351281161293543884327639306122858737393633281039948609677347115312289730389046512499871305933014320932705842240335661751621877272211178037901936297412751354434830103146075207808947673950284093994533936373714256413826985328712487697242357261517994329986969720567427151134663766738743163808867818544874135870850360981616714187913081480303474370860264301674000042522490895999340480278663127595790706565376695176571535483714346786033498206159643716424893296794002630183944680830613974443941921536996391058326312154154237092427152756620904771981743319116285668265785314174221079265182807096386639176852051817441138528361964543773434071537747615061946614185552572000013857628046329260699172696602404582598560241996193411837538150180683241372274846647977025911232780280218657554023833293131972789832613760965334035741430993195992319234197863994210165633694547436735005229238968933304693193766518895911720667272703684563977017415192287452575563255873454865492419209462040284983290709346989425962107002445193452407506551195081788290562284228680880402651779963272370356692050176143559888393086647921252345785508236051619018763526822341892918750450687732087776078740145571266423074221387868202015566405846399945908994248257573488303941702236026667666681430686816979909019711316168223508786679203770492910238795244042239721614617809392353493157530880775061666423962796971697441527040353739109663475623425783153144601513072546843414197419005340899150357707244086912969389439054949159976335081031160173072332493733302883969844655851675779294949355653739381314998402588076337331677268979947802973775919729152754138998334332608587191511660380707449533741173749534809116542344179130143504021508783985221658223358570154178797395844025318412461675150137561388989272621627949903049157087327382685714371277744799103569102716559708410517250287580105183132235047916459030515318783451360544331839729339418777792931184100368379504464876593895276982138959014753912379297495821052747993679034516900634112337307362980624304406939752600663111037019084947001125660166425746014974986861650514218848560496054715952021143257309806809065887681179888334101786355210863158132176416384173027175921201387583960619711755176162222999330818582989462143196538573251551701735428740716018086842133313811656951493773194717796886935640203107478517349417639002462163377751189752571672423123248973755344386297644199540182619648634205163700612872866405793220805022053965740518069426369049572068298109890553418356279777419169448186194012357721226899801070438435506413841002478666869504956919907011699786668270553790290255651807262365993489611808945543341978098708600593845364883740825547095762239074088821689147149974276826960361441274946796792953713880189029851763912352112786081189146489728817746745497179463053801065801503866729220154898382690547354949087493427848654319281588813953892392473328640194976852217284425884468722877972776080708881624224484134163407824542553550357039878066683117339146693496384202872666238815753859105141301424300581915351880594796972853884414074814460115187672699456523205821602613683218612410807533995290396781580203572142634205170036148698962731205853060367517055423616030666124763883611026293782832892513162342204268308084433022714066246166739671526049686134887994012382953382261280496026141025010278162723121354940415607506723578265729401950678724646965767236631059946170212546329389149315355317415408975654655423556923705612936080019172952396398178080892903754908907867848167855682304577609874223003790369126367613663680584065628330027843452126175872091174095564320594804475839016056772822326998544729217990862403444932679852418457084775009786874053559032270954364993806080134913864953617465291047873554257576340635691781349853710007660351864577716939891096185916588465369105306282912683923135220367322211918703711016611334736487806464082740495833101629587949665777505443408721388085333807909393448382106769700014656496240587838429838232100066542198934761406281229081643304502790850385714433294054475076763313246094947896389910639111974492224083201947440231014469493905629628305828766512006206928524709195819765106949615488986541482236475926039296359842015069839676935242908653656044830251735564024419095993949654398902734500215910081690053992714616015503221266604835216359064216066446576863193381291030471966853900725554176761950064351955513096701364294326368564161171803719994631428401599130721532670726281681359455878013871410659419896327956125513177986267697212513724497360030700559128898541095448103334529176225015480907663749485211924816589355113860507918433335499732062239801083832177338437844841023690879780056332716737957712361091894430724543666866448342084607897412994757457920461732884431180156499577256918772877206721507399331374045957600715861332744310354092646071390265612377731457146810279005636489492110721421287672301935892280255228805412869880231369949286494888123520475572396465140791712683848457375954985064231992300601394551174480721559693590986271935006496416591753437141849018698144448414023867232260035035102250624343771007365599827231943970159540332188574556648319184015959932831988368737120787213044101065619736905106277975394217640939955795499820300083725453241812563022445547547490145896037198197981463227867432248806232484578988862529521849705604617591344118939348087826145318724736555723622993181014325898185648421402440850742963307959012321732407519928730411068925514802704591471779259018832427107673199417194572223045182277597638400770455961526168671966325017413144280542680095932035006046405824621339674092254352264161729818551292075790562197614651474324644121460483272311973618016889892503560040181205652195544068465729812407373718098729596217194897388041893918488201594638146134569050362734989123771938988602257810579363249521667243991672671991759938005508940516252549001681504219156641213842727372162930896491922797155889278614948575019760681871389326109795340118548741689471858762157862901476053635240592573247146346881199677964658943219640694820220397807286152061650722198391687735504580953913473930068712064371309828662747928466439301943937218042224090646134388841346887622664534320881508262815517877955737587506998013873051410571205940892617115643207706794023730859569007820584052397115717852420213610329016109190682924836419165841265827818027121220559252898859405715323604086668702800414567138490464713660463924833030573613174218677293315975298048643395306212364386011079516225413398394989515733068592502627207567792165060429464824024637146758126579674193255522808267422582142704859616979962286522733595079305521625137656682514527614648779688135912373330321387603482533918930960788272038260665089592821498425752275828175143069134493635852173876076861655300015034776078879769999928228993235194855515427959332314480957669617767480244300406422082662404745188275214235477720657329958891324364104033244218064273081779581959340837552092819012018193556696249682576500983399545489941860413858230111516143776890569213783421358342223571977471480239607985060987517598960450418510537101271364021501535467490903006869143348224562827761246594931127985691563470313805612983577799932475093360940356353888973578384679900824909348701473332824853855802679070003404545069613575330748734114986365335999008038719876148943619850789277643991610075081316859579459519830247994586109614172162287158724092709868477971422267902598340866733654925791916847512226694173710664983561659396919627300704771668546766781639522114615701218720356549437883373528008800817582806482985112148485313121007792289854137452783836439127739776981362462732474273144076853371501985196755540196303982983697254409457614518782153006839505931914121174591359488458706693276727943939549851238101689184194372896823059719091394724004552108789693748947389925367366423875533518900220117062617062599606640319203869993575255976107075970107878576765159963579298376184729424171614098601431537937820324256326170131987348794632161020447300842231409377279426563198549394083251345153943015085981171718622634095378285037698968012539893487412374559329426969408936897093554589364329890212940119490813413016869487563390527199355937807452676742702982883793734445423367395442597689092809280056962932037145178802383346707043099163728798831974123884793049354495876651545957241987018551307816045102077951899515980941493066484665705071511612321765581731922643565223788747196281843765972618720377574671464826183593112630277975407644041100471315533312106233574533342767523667807851864426968196729093575622582735610929388343318527835177085218112574371000055776450316848441876030766236177224845714591554726776388239809125863655043104317507898826081227522571851771322593776130784526004928271628500020470039547382439442147058930947005338693281889032085437939982842985873841718833309526294265971593238403148049715229470177435557457638167528728282547930188915840756334497570069827295290570259704935827440159353079921282519114383245236655595352443030870447158335613718111299076478410497132606236992261847524712146606550007201810735658531781016855348621292506042588903622367471755561505035328052714878122394761433330626760711976109050410406828793317018553790265340790520036031744066178833354064063374499270717997347291901136252655822832408970523822545422607184533582693969172833243573274217117704334745989787460762257178347389727455460725606413539253744312318336335926615888018107569836017443106346200037202257149660349444094580070377598399240403841101681215031158003184772427161029178453797098820138012111457710900791709636161726797349500490236760745997861417214833487579760331529130296328642545256747979771638763369732209387108234730044807882784758749909893325551005627508238162403127280439902912818584106438460526170830744856980381436292489874127845659186898402204024096404050328046845046815366428587247510804388784543537554945432572440822991017678307580891452446387685673592637812680580062201359050032446218563927953104843509723986502981942505485039238127014614523658195538749786206719536302277286268048334988274072137535604570479568445611980857733714648237041015597582275730098791036518645188069967432744814998869088470095834491064110255704795973120034077142924239179309458648732869167422034850563978076060051816025772373105130520803146760393983951076524128195451950742971491998012698002668711680131420974929036220546432217592416894329419004868938878847840422020404077203931540927084353567807669339213547763127473772945514288972254290917421678797908354883735776604763930520616291253389770309783425192538979868522775709442403956152722698477064707153003305345146508219045463042866903947593946933294831717610331315808277541934555066467412872704491271612206820876021718184126986233614133260390915075357387855865008001480248737933194625322692067210880957649961069610492243552543560292399609506166364320621005680695690505809878661543211664728056228250947986555799186756806028700476725765960330501627409005283913844297740811968626861198669571900646672115876205132297975080696940762709755773911991071592529804158251240079366565459187377693416681287956868250282721698328094282043181453986917125449973479068215051287631340515280683238592811900318598250041249485186192779074084259125901030567777468819387625849930802712117876220895487547310653766617216595730058852253613905599356483231732669752589380673000384979077147407123761018489432978024589383075826920864117380071009449093497772200933585430914834802360422969008354606381183517478788647484748399346533235721941983946211519773664409578150390589679671434455489756172021335538727719117761374348078390942935773173944004546275025221651143373544777805860994573743225411700595594651129454409023724020225245228145338118630461277196273068776195629621040805198946184295563980882950218964396013685746374165330119271164441576711865503224969404096938154725767213096113662037722335472535293899616820645001940312085190167075324094925094861268019205091980246002706000210317243964397603841679841976965337219094654585449729357063509643587327422625620679069968612716147881601350707959203043910656896417122236702723851649930763713949458412880020778391786720972587471801439277808462724723360008711761599867971118050993677926604464519822445453834114972982365794823750540584311662730875993828428312178630772753894125026620556728666805697436750298971989255863803356304035665760595432571623205972935724245034933215939944292385818734832948181990433922364406736143890194716292543913174267872227455751701025246573240036670590304383997548884339451591837615747883390878004507100086588295241319745741815789040541273286650706107300478165981993715736270119952805459326410325275792869012357427098531264901692233817981610046906254440957332850437626350356349803746467805453482126905344706924423718033499562568503269070625821282125526007787161274782926062756151145543126121081725868403105823738885359890477355584678994306067848110692272476626655092634066617905687638009529361415816537799282694977622911594410897091720115502602827216293317557034044193267813421073120078530611219641010510647858273765481912787070993674017461270392717459654587006131993780503101339021815120623229917817982550605994155268750287894254244295227469103762937348452157146214290105243676786440609837403500078295344769142998844533468549265767488563672644645751171588274309699754114576535124887599232056426350690377365615213772418156223341237791952287167740770984121684606269034979979311873338771081352526267964381804022830152559013077401713789314282951631953964415541478388182347650310842449250215866502123342689875061694291005910135754163435551552964988632020251989914166161476451510720611406805127155608301460604967323794572963210038758525869882655249443842883338704789993108629536796615209623841145804161459542499219792025304310548162129010422860695600666284750757197006306050426307962178456372920936765939423758046843178726032421978330170796393842783935072786946291024855862792599779128903634210099145474263106987516085125445377316525456297812536234864829422892272972907458212625200804457208865870787787243021459375743710295675791170030329561711482530775815350583946941943852931162593873697071601431336112058725807377205650359508126764042177533503076928765388055129520374630089233283812701533117510669564863052936536730836424030120391558378280483572261562336887921585762130705202432199277385787210214493609461615576686183050270236494426349814838464819604537883317656756689035735710648061533584118909524842393204797833044797732337165494951944236724733389429790506124968568367762030089304914097013857643937116118705276449541210823867872502153045242078921296188139448785668475236263696259386251635239586012903638572770745400161513699562323430510345703194914089048904814015719608312945111549581595414850217141589951549230306023033014791623084770450188467168593365573838801880806653990802703423306779149613822699834741964203045432490052548350880722601602070124736771488337819494013099560195386700621347334771979501274240650991542080080552283146354217467646900898435640197024211212823067974537641539545539708872189600025575038404071086900866960239916179067219005813805265615148345965881945937899781836464389289658200390648848070383429690974278779004122543031925062829184169774557049216154861762167163579387004964267423081517057365968988023231707896954661692565995951229291536385814521266605886530483155648199809222445822769381064653601095319317534079402992637718010776685674401035885031536662729572808319629976350758218085252347568518530412893991395518621390523686766334032115837176247154612406848893858274063906890100243683361799026151318904067022728281294672863034748452076312742556373362331958118383295489239343940676124255650454250876014588501006174876905638145761649838450512853196148921201869864234520192534037793545847091287463370849069634782412345927922221108049418917975584361383025536420268823308602868983105389090194719576460943944195823411250277260216146536881883873810422427749893815826737380798525471534535873891578229080883005031277170959083455964471367137895004134740427417369276051517021744026701792833026332377302387121190939821278325850947603382996203648890804895685806469345467677289490888203558770306711096349353235438554933316537950093415664774263254017321536327686558217658157773180307756411280650560023340842679345824774875323566067375675693919049402934320081397836907465051430472855394269919115635731489669780835992155312578433661444972402112819869375237155739418008885515757758527235577329596447080396767769186503425895292085609755247889868909100675018131295424384041336207523327025335826698988486099117599722518362284131661534225700851851060070981844355926105467594967076821859165803867156719276706646930040949632612391115177878603613682497848947425207484508177777275335836081515212075444993008574457141791072487763065723329160746315166281055858435970771106284978311561091498962155812781552490768790436051074784884895646140284219902844527110583918258721569512241907150974457043885821469792209634123663849861843693168174701347658841215388132344557870090879302376090471529441765516340487491388624459554623884125134348185120303995048335187074716260957742313461962109194092972311594639468961545148721808041425587743371260983949845104812837856375181677398020378440403456050761757066405183710201393134219294713108051967057307093974531629748863854137849903527798739877267838214085202148359346881194395801668432620906795132079742790231122712752237633590519548428776237228005419055879550336955664556580964416223617275040745174022456807345543719364487885519743758285950447306752678653622647552757735175001161837596093067157744278396824618811399618431895632093555954499685627973793782816200583702430300964358147282453765152682098192812168034148874520446879984359448724637051928585477448660570143065059928569703375425901543107182887599254615524285808238550962619471608867364211619409491669442595352122476994738679685737608346649220387786355783668756717741712079916997150655131802966223587124274656717506268305616277732461774042726869268122784519211653881868858148812815094014888482704205278046235647076822887861705121896034714231824921158983143837697729219896785719070004740712260335953690060121651800645438550952766977147957900215598409534379886152546832962529901493996321553465443670939146914574918538873974948491702230807552359483614555399238885828936931360658230303537896394117140135680998530715473587748549490027507004813826618896364293968808300010728580703589225996577246642521694250279809676498861857667351924058817135591741572379684098910617453197904287713268282684518759970676527916386645730411721279256986972827487700955384915791856825505202788457194804167523598388924764378411431795724801264399421200145852350359873250208641180512720582178208008900703126476129394871141877413760942581153112575910531718653781453618084960985648486500398725742351692596034655781840343500144143665563195216813329861273331360083869644567065508527222987777056247112336124070961262629919251326368163625144606734828978908299577704081388355501179851248860856578836090612052459681569844433006124481342031870671301170974166899927583886715730577410283007253977591174818611932562994654472488745132656915056331543610965319353029634174318835003807928154137828288223872366765513525800429510588531154021840854523828075817161313152556781905661981711820632677045996249244590721483533993053345194405653329842815631658211010042518045796943551421030359652423260198790426451048578982145416480943207976558657522790968179331722274497192329734244170158675085545483930387177540884848021125611245349522371643724188033728739802984976829630390243715904065882676795335818676823636253941305599945542765146012185386129690368863694476678265085634332618293199911729837707552984284539726703420677554061120967622573836997244393977027202801888770152403962604034346858122298710414099210585496201703194049485691238808009183160919221432624397315486510848425306022942774707705254123695853676025681787230288190287844357151710184018675408777391020051397583443337810627934808305750944818580184319435014296171715747077410744530850861640220806226526713385336187390899105460662825004066423070495360926987225099586495661113357255815277367308729882274731865482834608972941265640181491230057161321087637232121914490711790477593292129474978945274720890673660382176352360667462202170058133271988935609874617312111680100327470086083943962910000939930256072430825714244638578346934398088571681279905382392796859165757407310119281049795180445548531257682724787297333466297760593489514832427618042895119561814308236802115552200511539557947641598393961463066494762298947943622360055827478100969381180579994838506661480772203978018005416569770722517487919747410740645239451454754635572763041730552868553177166535093083632976963488492017520295730696312695453641974801339829343190636804874235093562910736465348728241520971608695331174042804363658866650204229919284969685585549361952899021427315653021821482979449845255474110491863630360350144316700632322053737291411457881842238281844879363757313517679372830753833124431992510143481045654961834513474694005930253764353972472077205189641702655974320847664965359965451332960831942451204732414092682889554520136637832087334004619683873051016401376899842622516534575607446287899689485759919817831507764909520903063163891422538152635344927243283855050479744892493362687509067776677457459246812665892525318026575036854406329888058409969987454871720393634192312994408753135206764302333464858095650493840119096003558796330033698094230758269680617825035524179841028517047232129411948980724327325438698021427687183430133345829585461178865689472245076128188308804878076526339921155994231450046987756122506914161755030336176998908594042014851088600883452641000253153086815893171535649947008425280023223471326315694997476107431186122108602202147958173857270942309627559321585280032188190368381991841924026641746693431301649134478627243935827469795081196257456858880608846276611187249343997220605072323240681172819572062731231182237128029833838525976620124086014379281768443320279841309415199138980750744091186247078540804720260643881040493594163063836530230992557973546617440235040286414258715345109348001911372654170278930175089863095619956650904097804221061708492511791534674645194971857233387859811611572629686849925474645494642108548125747334567057977060700836689513517228938419057934918769875719985394691617816762690252687925714777025368165015251252179873697395053565977445194297739219873334069153602652458831475608237178897091594408023342630078339173242622089454182465573623664722309444420964428583586991435688127378516944696193535226030820110172989193950200940855374839109545837359239341008767331196886830394782377680875741097914942163264385368246547858769649112141838297935460706976044828906327298143660679841255442479337751222952236610567400129994516184716036617873202547488878842889740915939729733198739960437659188711254857352668690528723146819092988383752461668237671439412544645517561161423181030835697062614254839389276344616599923005946538535914122396291320828563682178199489802451140186052887671401640685211221464532226652824592090380757016627623554548466829431086243119967800876320118481931013447086075529835468419371240811785597969995791748261757483558024249870461577382081295297945617555668573279207395741978859835514599711148961573198258408326697526835645828682837486719273420132761525696694694815286418182519503071615510106682772811066373222431869046110075118336237495820148928814861938927720421192255678872949027345883929778766743679365338786900418670913584209361503540978476402868228626068166841692706286896518720617495595524485715277681699500567274347167070302064983194368710206851779639400766202415729851521889273154935989728400488402661902454866601238107994541841580697037139392867199720338124443526424527895437778498578610539333583581119032920826737511642656515291721901224593966537426134995310302091062921791506865843693718173057221684799704381156688414565748469864592956115068318249219052454185822881259004251711224032698717077056342198856155077471582104200534371556648700097011720224098376064008504922695053860927660542660859521939212595137916996824740993974814820090769172697862549309324439676079257047853438317267714675636360747040412212354522622583640503179590588116366083697345233969292002114316679545870142080265600702916891374077749886739917754247754617688265652131089272393766923823801978605099198041503757140718846465201371252484240039604835991244117083583134386220138066457748841598628741786493509099656855892526341340412916043226627715626213855962976541376374022016770261519482668844701486394396096429592049460915782327014941314107874278118118612779069116109585778843579528652368209677469027521887924957801944733643421319112271221071725175055729802004397609500808346067568079213890811853448024215817019988523510568305066807454210047210138592205423683303808069062239798021121434129884440466412198573183799336848251985269396861288301526952605642354179763263778421174778991790695135503313040580062898481710388551919162772501676173129471004921970073721015137861099230872764081027893287037436848539818701245307040575963119850619614786775667244168344152072345004260766376780132772013805603290581497220298898377540020244233200272126260378190316433769309327444704731808813509022500013152816420206201787744253804320044020047999569164839495240731687917121789375183607547552443762539895216502027873411958125848759477049669359367842945362591231359754484773777341902534177122010265196904754285217134747589612573970853646741902881254460979111308948363059374669779995356664088101592329497290633244383175477927688315258504101939302768130794154985904908672027772313169694206291295067099942691063377247620982044199548691238771709736537800394601408376652648983536931731092835484440036205182160835383473371197130275549535930996884379013332764500593718860191690263683190816644535676280559198292388739816900366884657636444942733713692071894689479954175597020462057997382402827067811220440415096122176618267264591495314712998389680302666441827271163687742610018894576971141383281330823699284377232113753332367737271504495504014750677703041707336682418711315823639453010891319676999744403566443683896221126340539307051291602688879262581168918696819749646425417667054928019205102223084128768112002909360591159416968235911263041511094068233185920900102992090115117056730422555237611757133240842073144926906528733271131132672910963582609067368248090686992735327729740235147542508506720915428102967309547201576887346103124105066291731616747814120578876060968928642576330654965708953026076768583398863840278994509636931151925156280294278876035917504613200528809115084656782402605715068398203370667193510973414722338479956000476941438430421900700150468839304879629211926785678494276354750371263193138483896908350473246074178055077391023563220839529337316491114591566435298162452692899901630689864968112229403122791982928650849997120603525255640169051060207001449213032192479764325892683211054007387214482736854890287833507290247720518205310407939417083641199296646305343358422668096212203261253223031107880480273227602213723428018450052050445526031722117836368716313074129590336072249741918547440665525138916887797503603821469544978942420337432052846176354095883847001239677143387389467798499213084869804880814027722548202335551424784471248200194941093149186223278754668494463279361835466121697996445357663399353344527024434796589962363650867545078714806949427154635861547059491581738582852560670167080805712830684320144776058287600641521162015821892067930843317994022341384212940814303450372314822920212178493817462357955125435927054192904366532877028074985897489994308663846253805406093402372504294839935906776217644358453467517002789542769172750879853036700405451101946071247789556367545945995303976566965770847180045220845247528285801570731108562895501929799154039466079203535870899621537533360061317100286272346815478268768129838766611846402009727322424423582696471507414441520710084755164914088726770446305044939963617257645549132972036415026249735050371952663008454273222534493665099159441318142818575613835615337671547331810525763936946908297223153142453270139726004354668764420245413663366902811291935310369819793008668163636418093039963373140473824142194310973695792600409778189315664028165457587146026575114121881000828665664983738331395767134338703825881575658563343537240877936948053443991631540852371955956854955879985964523868705435835356790399468789999308018434699213878942152658257068757940981664236027040578489817911239393710150202450730450663930207552166191339541449021666301659355693209904354994611329567411525904220612382821813894570660658179669870456241623064296127395699178874012740420904420886836281578908269610102603428187615776553785454926155708244650628311717197067712515397078729244515674559793795481008466541968991429907757585853196243429169231605217494611386386645461389047175106356411642795286516506056183294435574964096950637030671952917506177197123369411163587332743819413480612188440221908625430244200901661936831216590635655129149675163982509368029179128254463333776551042318142902115338387861705078087664813910900561838938608896859444748109821881178073042228638296831441140416435562351095145717916395859613122006288952371139568034927328138915018609251707240331482716853818585944676166349054660466731445776693805435563408855448601403303256786507557213467181612163877792964480328584502656655809705994128841536421988143618487936848880502969555065618237152160633759837731188952053128854457033094029338596826161180697727122143057465086156501790133469911313153064101945288491745216911243535854586337786808656984492815765091616650169538726096897296806107959789088265914916994936484680279151977789680458705172142096375338393509557114716672685831953584380784747308882687764764024454094556038310367516876485204340844607175511323284438446218977705536741195719333100341351153001889251100327801586451669376089662668824439360321886801047554312462358462049097919415283081967398936583146254030517136275180453171168242968360212303619225729649984463946343906226168655372832298310777210694385205740886196414071280989029225371253733726060250721488663543259193188584914271813255480116956882542863750727336829306807719567218440113664783828906788044508587691091647946586494288110603829217207765338044675335024834126822761179453813534747833067729287169334417203494487226667281566597042918168031828532498191139173672025816154776347946340825318835411271563159299351687461382130287466820782328379328083251629801973887509635759925128355246747162909956385203749356940594130024198959233053320647049752087586348146522385384639116033277101576557475118167849877787419289813146261721335067301412900322895276560427213570981454910669660476326525325000084107254823415354950452467616864657703508337282319485874438017651691100942445888433325326951208390117392507043991551452007653786255891347629890013540621503904901176291968365939877655332615133775033979084397504412233400291191949567890738844662298016697658667997224808194847614074810578200674581441537754376000764035517452566367036906103793093016295572795854278144146511209999502057992836609164211270643461591152341830105039969205301756912964550504217735053858951745153731189837550758596472239554125079220982017246750703943747685782111340246653290637426239258836427308450750535117131104517422330473901475694151318006628800064266570238675453135696637635894336068250056684887250513237737467312342569389767218202837069205940393769321743934667690934341430243595407366108707772804536859949552518373040014742119265367234993172222627157751105916344024706797794842899101668034749612260680111933975837256935860301143568859626101635124888614970958195917288293738478849516022563972110899574194007622805856325868206188157276414124456201067611437145763993395626039341176275858556671620877622439131927937512754001330937960902053130575791455356240863407326679571516623834876134582808633308902424036444847209240307265553622178041648220825299267532016335809886040412424838192101299754799078726327024026477963491867461957920537407341780519011877727639032351649714976598086713844125527743422233030749972823944314274751864031661953253134006153747550786530290975151113059134733286698621510785190334527459375309031974034171738456949744772885530272197228946973728503674854797532108498932988328131228722086326716965229083314913418163020814795640155178018703104752791569393520596937469437727771255023018462733009795863836726221109342875986155979247180151852973219421944174692158501398940304061033039010864219844664423410036093238077217023497910856772905459820696255765324218284854098320541317387877356900216304138801553133888514169628167019748987176484973693040541749196106693196515244530340128737738421824976187875716314005568780296167187851666659170811890823971071503324811406494520996418386826411809688876669494483825128997833179103092577654252751571182865095902815209214080834602076856364194413623492295827101319402165145124113178636912957364039956431587554793978227474409525091731041690775355538403146456198665523098495929819864698075667247607727636729012484484227612827911722718593907718070465469840959560132591901051549881140366916300931117191197055613031389518439870528375215222251175614376837080515071245759055768054053018799829007801753673202255597735916395287799038627378751241477888778125945848681018485849385895026770459194206898199808209097128621498662268465461135345530894600470147791957457009166659344572007179776233921436934041250326683461037140118686665669098579579062060443598621729597795179507908597637945231256873613404439035969163941993253748633558634240364682696788505775458028419202842271984947925037218666629018221044676601069189688868972974863583118254916807274593120966613468560174884004598241112446608916808987066655502414187653065111121519737773351552714340787833952462481867412412018313786595777861573156360652216550939615949541198782897639280723627019484871462286378287622675675107751976857278193090862071006009506296256849258660569220647047714237822432869763589337817034469253009903825230776699765953139833917123050481789374238763105914342047412186230663332905581273387519630946738187192555612047372530824296963437515998927280961892591943361680568414674679139328353720056305813965178226592823640420634986727712397654806608902762151378079905901449588901855921949112087244028121047467258838028905578086073823110101662112413428204448380654195830364695632165598313419912905389645416951392708653199088255637070133341483710597641065604902413508082140132514149305660609470812643418439444656993012931179344472409660397924668669716534903208983429248320968453695301363898913399971582798946574294379961435369072388401854911859288408311833876006543307382012087328696711089117625961121367004953439560448932847371729635246506594127065893304835464874564075898748217690803224855623658667505516873434824561773679794046471312828223503604459423175758371366420710532555218866152965843117370862046197169805085950115722756894330330445711589748991117289236934321273889539980601653686687826780612611868448634954040922571763380202795932312394887507228468725621309633444234001224564332613318101412019878716203348190114916147203953489147956602558814525254179774103636624941881622999404511633702490206580951142591101786662831248731464419511326209363750948523376387542870553449167802437081235166004222823955680021659835772045995647427693805943457708270549953129862186427802717892589352925686513871749545396935170938218201570278368335451005211246904121830094972713529294394554293201958409360214876611337529564087079822570774744674533925389584814008323479248954959391875561105872624156679713547576292209855767615186621761284593248808861276880460728748483020211710930565614225486346021705526379307349422516218562067461262318669350483570121315103465546011360718618153311575236169545022506019013551621024514506456075581167883248071916278230280667760919287040191596540041576232664996185462298213164240546386945062095494614578019955355977204983634807433222073582026055220082864593311435132806772076074892214658716438831386676005613451491594842337705897079489871961232166639870172197197560666703613619441488728863827195833063150592760813335992315475175183221189768192674849043338777448789182053536669104372807996768349800468442911026607637169149187669156581421847152358399686437771917647924704286874561717786520833120094124350369409698781888786386392642089368802586991165898736689380452934997045701390680939519805811077769045764826069605117645456580985170600310539656774427117568369312598251422924881246598522408214652374387049751235105592225161681092288504882551741248402888925592435944353789949244402769624777569137798524263823131305023862662877872304099752415230664125143586485865924502515825329324738185129198804862477166658882301694045955048923292172467938616813720556505221364972568879954825461780354843689567089099523988922657735655994467427784154208617520398693872985961735519023375156423850598981944860192879453027440551576372831192145961264063631578553768799848784816147032532925365473158270476195188358734800421296712931626334190848371159148615332076084013502501628290418382544718718129523922287548715035725834827402466689667006057122349146729237428388203571026054772410614560497854080925002991856131504648199964353025541678536126057916771974340559777446622326037167275647763139054576516121828135779768398615627776257004943587404139472589966083465143307663451225610202130897591977988366941084074929727410378947009751771305817613672213252657988194196142852105049159313791379869063989473286333012094732033005535206472735182946688011325736239277421618084241835119482275139014431793288191975160506477080625744409544279512384293218978887204991707426718892540020107235884578761420678404806319602852197883393548964821525794755169403999230026230278893295593778805634890168139720679084964294104593842995164388664671488502410667393926184596069071230041713923493963185816449791794834583554337463733989365395248641200008409043606182150026753809346630550869020016596081072987597365692921907653681886935278340773504878857811232814534736228703929416805283756837065486336406429822384772851681962518787432945655383738613454918221073066834501485570378983061111537379287946131276384801427707600957696943005257920343331848201696432536987431998275058397951143073156142230791150166998730545544618171700773800849260126463360847589320019890806310134235735920472178596576046446068673942216371332257590122872648055255325300234340225860602792570532177976527174661025655255010031622136315176089571673368894497094168263118442584887457971947082647586740369171300079244501853016018459835643702609913369392963910260572543508990305360957792191685042142437756083999275862864463360241380294489974769186918031871805024636562651880649129718600548365840955821710051641609197952988964966525525223642716419537244372698430537175898912939149308212807009129046180487287146664208936730526243234632126436975415087903965215913473698514652073597640101099053522765416981497592560917525515483761662801600303665255415749599083091111532404005926069147609147006252607024389614275503893222886482270450539693454494337906124778987594014077156730310776962064323904207127928776012088625498309126556639416509231776919475052045692127390546714960670310239697331574802294787741887512276089189711333087159966364195258428258854494306892751937712277240806334894277967904601119945747708935168021183722731826835628472203566986045202199776121619784934994773486153029966702558992552025536294858705356267647148525623005685429502814436391145443504396095206797677043865741240958245748141426332069993690245007327156774907981876037629429133525729044368890355446857112904043005357345485843979454785112460631976553741526673802688742287173501358826885877419791442951882022054445137887439559072028981924891078531309750863678446132917024992618458731616128977694798509812199976766242472739521533206659501534897727998666025240582882647719551967248747878759909835393432256157931684841367297169817608713456090478484980696045773549431431815201200546728028645427113280293853954046347183293038564089923960624298308914260581706043708852582363238036840932760376574941290526233897569877563013636836339083162642295416853384733812692310517672199997010488097452524051371621663188300747983831324289521085730069282335204149511260200047275033713975831302917499209615989365961994034589031625628183122098430255178232669745206010567999701186870104181086824615451586658971883359357616640696834039553128272667186148552562029499136513850199825821080242595899222473015790708333891465346188587098031269351540223559874516227776142214033524237046245924804918876963539491360845583758965609379640833354423270650454893456438883903610061573732178120835868727602688608439825870877190774155819233382130092040721131949902879822095991669913599764329353802308493803081621807423443870777805599044238586831731866788359514038664170166331210857528704436731430605175109616738038003602349926785543503882644810824595831966590877612450017887676730260224182666064528049138645404024064541696535881110826948684187787582126512936428565972545123342481103274401495057033835678206200952453872252142833771295953727191333203989488452807718854763490977397653092608852132872337795925517222057949223089293753771129436678244433679981046411707627822645104604480090481842570307273294390027272226578798603553457510399696093647032652052515836384573640855100048942763004231252337330582972093554041561949008042207787529272209616593258411615141421746246868927450928267374213185888919428017093554177716978432297174974843100498988295668151478711910139608172989710353910544300117726043943777843793117219848353584540228591121078650146587652821024057061434796026526427093443128664061897237113149629611978972383106845406972965139864341916939721397791308514013137692191811944283902357726784975726041714147803201360731308026771274220428961740055056553417764840254841642052978435513660622447637535455129549064579972364752986986815407043964804129657464233154186218453718084429905299690455241944093560977280327365603799745952679266761607376432864703163863668395990922231936523534259803479515902668732778360557910386690840056113628898648067604200707700912485463735693341953153331155656721805114047230730262798681204805188798391462529070835737589607724387924619104347812871085122525220484938876480198081009499344279591682664731795354480139570275064655204250441475450125734545209930213348013489232252798412557331347391237182393754224999631035122135789590564256880897577365651153311748333372801935168281448889557221328463314364950969446103307764995844452256529725292742591905350163912683544381932544074606045445595697882691945555398167481090005947871383011352849509465948242160037587213193781482734870163762843031746702682240067689665115678803708230070426580317306728499470105460150249345288187969664389874232429026769267814480655405030922220098356776273412659834044266369751095563093913982289172844721740883710783506233419364435022109514651306481026168572424581689667580365667046814262588467511222870673343755981355265264403115961628533416857303331149590106610271819230220782956307208573892742821715369797377041267579270000481566520860674570643763440448392142484676398113733688625014365766565521071090499543623094232347063498446089119690655507892222248827736849757709603777107141668030268328769393660252101791649662566855080250402022729677721841347828056633803688714985426552018755083767585916200209698946679918720352723404006060699105740239909920072110688342200281981661086854488766764923774923207738917195957016325991252400704968692259145532420330190500851714827425470688380824782839022440804606721858609893204365839211743456928980280080154439097830047484415190777339447105554046248334955787441387004226517507104213047021611484388990228965437236158734791387524335136864858510425237787226789952364468296969218807545909619702723507132710238650468174076250572296713924121483577079609727529210515472585402882086783466371396805618592197595075920165167976214868941034176322078656736547399053382140608521468155664116935344352769582570902112934626771411006652961477820905933621364898425889827413792777450457632597421039852722553812934852048209626369347539789564567356956895826200229561031054314606513118687996174378168165711276829503428466374241422038405064691995649100864497491529885661804409251251443744126516725944193553582221336794459486724744285888645931360526528663736602110116936317717508923596230727602623067440412697516466836965348238611787209359535737521536502227981409006435515935704881718912437914758555674787969442350411759054387264688066085346066888563165289980067875977771643236194722612488273553407798335316491043874548329648631834818593698295980576811595872776488350394570908627643991615914012498245015030468136109397872174348576056188872861136198617563644671931966994906980273969745696016403800943424784181842840692059320316802633753027317506478704038630146034760561918543882540958519785346731823001998670687794667884391756845698025562937285394226785420183746911954088861867595006184714630242580666789846131803838319233817569981147090678626280563947596100423862608892675255244844251649219942284911512959149232546594829595804126501958200289053706396424071738946175424040362738937229734798215333047595308069460757486813141640855742789351001730826765455237613559181454088978011634941334343696718228120353924472830706172256837192302779018433386622419508587558958473637183404635964002348655737741034264250321133066737902645719441126669016070357062015957386754162777316646130772907174994002218784348454424355755238783276567714281183959200073499320522059491848620315623670558301947689686362744359141702630569047978888510108470839875885939559596548559541801919355679705312974443686081232839624232102518381866915976945778994757567216294842397624994649589482768246035467493685096164615943946288822547305074125302091946804995616630221457845412877057046480142281641601491308972889024749034066512752140436410676332297577679842643829645631164589287508860613011695467578389943427722830252680828619245276313434795715234874010503742111392648842891412098733387111456544034511603659172348160327819930378416190982090976231471728923488624525742896674772862377301003217075000279373480937658957092537018656139775088410635246694960235431781544473620213788247944188369458338104304997672493101856065079396100582728336869642640339867356938574732074565217563504702218518358859219867850446156973223396871326745886950146771471872956103242291103779719163266043694663752080592617529848202833433052189203549734578437555262038742350357650605065092894205174550528903882998600149139031546708780765796307453202028848837991475260991521273964620864345331305549214362612244714424544801307715526543968163120107221186163158880791238530191802410222111598044537862958424317855068791187955922545018556887830497471350390065636907819086550773184541708072521959119125764757137152427836018842261034293682458023851377279711487642492719863385755420812440714276380357616863987882915111966612701883117110589893096543353075965228183982959898263733414112936823979186971269591712279339018670357273842141613202038771484502465634978877431875632634798056855677959671203672538575672385878004386362583750390587937290056324259732493454727593934698598581297929148581219712888754148579860485564733036083657095436141743608595465633067418488696956269065108217176463575034930740771037874164303339008404409875466062869985736084267359738226864184995179853748412223237961604849913670648254422297900125637191460387007486629456751476862411512240876531974137695401365860404808944109425905235054614178321199414662855447635792346573535937279181143008022226816235164185027454600051938778951898872014516067478483769360092247841761349149803726648521858918697569091540936720599433588389352458083759221201361955377612346524004788112546007504786963261421416245285478858115558568147392747928250036762919368872987170925984600508139321047023228425993084954314246053457249872680121858374560506718278962258765314426888731137434825350577318683327841180451743021075755411232242263917933647593728153362922316459022801497077140189441481974541896512878388105015049695393007315572417249352226846902573863462241974210650412017207085264316366753832043120809912362460849457771150176468591830037812387742313712925907967795193219698858698866051029526080566575322643364867318764614995580115216591758873237830153489285166280232476563507877090968520932994530081524771978272464197495359586423159447754772981802003440969209453394085442264398076644337622920258939081110629207860104529399191946286928254715171676418167361117101443406242943175140089300927837138545561551511681960273985432619033124969428491110461482207894453624444848862214262724332830507699176682509673930222455538200940996529457595231408923567837053410085525993010888973312444491858448024185127342044279574634388987704486304073195662130648544381582001997520966759213056183291216690867710154460869347034550477414742313863244455358447527317213793982873457280006042318118527880914822658692120061953805968137770150336600423108477440899960311763185275147432669771736197191431898994608025077049216268830164848448963880683878857804723446236838079890807670447834831639346494949918617596213132442311027592395920881742216852133864668896184753367833394571370676075868531795944220283995118475389113252266544273089691883985141117939511649554603609802689832284223131856771599389688983025044932446692809894614675110346577997278259263537629946928010502039162750773885892495438330923975469381813859325068321502399567905359103645510436585049949839354311663473310724131537700886284296594083572669939492789993151256324391427918575231363003642193906439011897157424195827326100195168630555029260952372634386722734497246568178157489323511636745166732764631043628727654270110355759832889982563398239501732661226930106359428664243161820634656377310504742444407843909119206018346316394199486935493063828765013838592500312302314819895130415976065937533999711469239005663409430383241675839961455303559010667784705143712705128095913443483775155147055866179493746368161234676901337958989711257586087325595604944600435273679221706388508480033226415999368264841226958542976608110988756624190681592634636773975018037693825543094886771305944414515962712697355827639486372178083266391645354965837891799520410698492079112875678882509212396333800915540430345572442450138873121890189863778896179218783755452583261552216361946232611758809774147639588252053610139310931130277699319843746366651728438920640862591513467634810844748995307840724952987985361731223385922255081997498776786979767852478764095558293114424633686231651630398006329843362579541254312802102907483141089951585929571555570593331393951539372837992176762793242901150065252279742087993354590217863544151493530821412010944058682317805612771411718680546962366878067927109115560481482684518887841822278611598429422830993282408698219480126025328394170602000346713802988372969713608492834602688193809480633388940092466066674894720300096407573191128849415841111633662515253090516503191524991281169628268897309257631771230161325278182403776130167941279651233338138435854388215103544726790167969107376332785939179636131844837370995128449570347048253507705597584637651343242561262019622947319718952715335871057988926430555754204451119094944404645162950719002102486629724496268836673744064517575771513538527317552819720038752015184000091491190898271109279449492555008020580343950116573830397927856766530606480316061571591846502571500108932600221663867853357856512312924011338917482354680782641257691802754414740221509850672618251279875144833668858206504578566135882914915816289441890922181709093318423917860790105758763129376122923570683904477100087045046796771553888275367014634333406000264682559879807286706046852854969761212348597722940406467574711544774693799633150698247633492849718611121339942894327588470234425651188996699132125417927801022772160333859699229005441117835551692008671259244391664549952399083452447857964223503573639237422805561046713284860893547066557930846813245541837029071934546355917799470229034005821706624527922845042883308371660982461855094299045634609975477909573525595809196654064508567885124220231779194887784781769819922927393392194903626460740172221066804953535733247924982632175034466041009606957888142325517161571625439032907157283707976079203206057428820139401721192879111843622463591721798599569679446743354281447451008628231749517487465076302851449470465734427380938693965520540405043985847216635779093513430527562360255269875591386546175474725018434793279366075134475998443703550877592874926220825955477306854207737843061097900734818700073617954789780276793806826280415515281975393441144064791433365372343919287688501612736340307142162991173955769969917157776191879293599982492149925229876236665667873346668264015751142743499249764575138327166113131901745945620758099108008814988313242709198004669150474346827158408347439565889042054541528818244677300651749485240618411063033995228962006431591633205000201342959966935942963938132845007481921571236921020479597790895728994689315281690415390698866211762993714894024241751623359603115876291586688417421862852758468540946776815899872836967103934670242661083509150767622839715379579655390918674983450733481004036169477114112255404173525000777778539475097478131952018782101807682839046509797785445082704562111257023115232580953128793131815088498640294312480716387754717002373207196751508661159399270385297312893254212062622013306795589222667675848704540980425713594309000763086309372255282074076301383682246281361309568376441000124262663831605170574440090724681827812575782857984286490339562511660972209201620989189790089599363278555093830634832028258423858769607621163258525991131442203312667071911527656422857459381072520503009128961816785241512549824337902161820696932046856691574065819890050364987987296554104777179572069796258339551174606168806360520017198392967650505791130875530583945869259707029042794310827965951897123597451059771620680778869712461955061318074849594603603451672676598115792704472387800882288816127456860872709292794349177826376067968791844686733889946233348342720418177599113592782117921915168687033071955337611085478608291187437750342131183995221568724660484760157183482155647758854085364467882417353573886025218356730321828818830625295706774946459954301553455182475197429097412180758174051534021037533672498316011409042775128175116941980916863058691515054518122719418779366763288214135975278599111598101550859072003445760669575958228152655800383027329880196496536766135490010841096146495719523619697325513192799702961484056384942981103977678646658988157904237920251311312250889672252027989760277877969596212685108268684719484298906081891308579993370320526425763628952319197472686640278796239072898003793147643298598991519275544189293300101924532613171209923775886593402003321490058500619341923908129613834319703284598483926484786701228023906598537090366465344710309302788699846954994696771558525929158057887552086885173484240790577558457127631625466586150629146169063515460726947224858249455428246660712550845074838940684399048462433103544951337991229460059083070372883127615025390688184961158270580242342587469907306257315738686735457639804908259504637705162877691678018574303684246204687384271194568573267062836566479762400906229927430946285878172524307198802594395844155696176406540872226263603655560143109265125531832758763478713568471981880088063610108741646181686936847992090751292692516288623369461499896908096310668562681453618348179336109432883112232407488808333145147324528917039962999992435505141411972439401717278548448028945728721751949304283391291070275487451069237508804256722285314125435674278967163539323223067220323252568323332574236595075911279003708952578299142907007685526158940048873005806735449416936064788178853952688183043486688272646756290568107723012355464915402952438493681394392685722842897789087690065374930456209367714375548824964515376599791966895196579862081210055823807207934660615105631568099621555727480248668502753027049634161457874470403274626378029238515371895216426161509218677029985794306322823520888086063844742914478317530301929368277567120238755540437604900889609657657569939744843224929391399193573907645621129504872228742151341760327966003188986709752456172464971586167704679466331894030042259069331482162038294340380591912845867770368455951593861971213110243396555996662991815869796040758521156333358365137304827121169239339915623728939749621770368587020200617257647004984196231320573201496756311869212713498654550148269282763899165128313132383368842765973375755135146085674822412496090305800208063710541238629957426366782658772203555888143721714544921853747255773386970793750097436110753916498367825336353928106473319587394194523854438521797303211655416238604051302439511836227728713505618553208471901094189010726638724117553966091158043965615656679786567895782990811811634796385883822326773809471133064983083340879764667466568673267634090431730571565467102180872650571897805062476285647399430434245873466713662301755781322511006413988875041485761628439550629443217550225990610463799293135537971006584073547610295221602569607643442788844360534234206058331456825267983311591345723544918352015771939833302545862628808191662429428032529427851177552505565891074596459122032560081489961332155966703718864932970942646141431013649558627258329770903735680648816134117013184365328204996569498833783394756157335400179043309433292674293649276947974949959177219459734388245804501699838531895509780043978796389010134856579349265503273628246169524332163691765485712586350091682300769274706472752212170244397454291468305277878060129037822679745513007784350284817560946391830788193236836063088610784330754525057219865545540260209906759375797489141272368422082339111968547825402048709235940474514809311382909024068888407222256553427549077611553667434336471886260927223887371718319499064361404160136792811084062753510184172661430602836925247091639874799663238475056438725720840519006309827560537423425843369512243975078577650957961177485974158904009381080119555406011171064066968578720639295875651106803034425521100555833793907989841817751658693770055448943077426202979583086930813282018221143747841472299050725032718307799185663617677565505227493873226490884071821615056766493350531602265466118882329892637008460396918413640471704680022277171522875095182701268853023377949135763967050784400955319616063990018663926380202743122666354885120962504410465090080473546035517391097503362719641891498178758983300405692204197191591807758551067870632137891496110595363366151568378602587281537085696872051769612406934582645629270939465804236421753677635913457398653990248674045643980570715495833520850554735982799196145492465144769166471540577117258448648922215716474654394891433535791196830373732202115925156937813240982776789399942600007101261615460588482832642757476510193975572494286673753807078917917072778461147198649988676609385854318649164119231178936944781942899601829669108751255038232799784667176527114159890903495885373576020604528635245355622914141830982313599417055944291621121003316066086963624889446958798643744018476327897879333557918828464455325391466928191963219404196919608558801099432365275189425205567103462609963313946052253430242104203972776113642727724010704761217093042991808824871279178519274854553252921852551392742748307687160229410299698220559751528322209933109171354040861840978653549493824887376946215964019907717999103514115378597937760001358700455905399762711353789170664571644098799709985385904518542123819534973907380813990566468832954375625061377720391547064767965168901381774308273468413387915549786191583256461055118568018278967716409641524108705437513420943702995663502058983634108319146743884592881852772261053740247066821573854851335832263562326035663676709386523071629885657696020338379072493677314177817576129104020507309777866838965099839589153696500135318680274163726627966201831951609974000128202095588173965293665201830434854428916866582439741566980191832831528853326930944306628850044808612609367125053091870886250682799170529660663017830652301954068607962226482080584061596433546202721371242943016205053911848657102292325926933693457260039933682145990333280186852097384377401821143394097664453713148375190249668447473774243823889718343300158326343948814818922895818732455946885065274777596063191501066942666227800564156800888954054699898479581921163862644918598936147400644241757927952700959573863787015682337608464705499101164429863856910080242730396846701851463870357845713693639719344110178842929964237463112029042900490174828312878678775374737865410011660318503218943952499536037628208431019677532528052996502741480995232963001868504491199220512741770167853496073157763139208761368827217691646836714205571115712516878959947155936946199856833864471806832209767042394466034342286639774427249263618566569954680234454005031878047638465765551651913742565118247162570498642865960939065724599430462532647338867656522668500938907076362766135829535894940187008882822545807342536000642250327225948072456420388747201230174648846579962118362322489677345060724649151923504818583532836142743896853509995982361020339789919669486769740431763233682847378243047081132405973925927412305286523103499507284125050893133886039610975802264312497957899356561956736946161802176616729996722394106166604427923817547030824835626513482187084107058429018389972909278565787819824972924061283594117549170596409452176564659593192255480288926921069534477920401608642447477546766997637292994365239294503911420742590195802420458110216954465586261456616725598346070099009771268253628852003164367241547590787364031284944195202581495213797562567481126980839032299087743443691478666918392186074277432280820765673047487646378667562289209259933265629764019758113256063801698750757804582115481381452671868412805032065961397911569455932784422998192506299394865374698512511175458849489392818040609584858953592620485980538126774141017052852694689434938974541139029880495092051984388859490807670353099988170009784859699095783393409030614545375520872187510062473036378781021655028064615317584466639899424630511996090820833559977780906022477939740039974053353957011876016293276070190213197120516332774338853848942285767428000458553336479924566115396840475776971164404740652376601354903122995526917088192228531543155091992900834419237458091355639401280597561435539259843683236808199183655595815803356295288817688885821631143697464017148486330276433012237407810144197471388208013474506647749903023468355437004675954659492510993825277914738848412484650662867376283639634582784677800027987456866728315394327028824228544433275617154043097939679085414090235226014357995714169689558691002785487755478792414341254520167071454588902286077745542392257069877944902374518124477595689121513023200965794819115245474310854715121184363794151781293617015515172235652708187401547273301219460823863922845928511128548876613604148310341884777490501586935763533754632816776669686916652211374325693694004180749464731106486270707617888217381702206222992381474107179712036738765395072312649447499009478022237327933780234160138992362393977027456525431457514104497690856260339944856075750773963264948961502110494726244305162268758215255721495928735525246136079148653722749773213176934859617811536728836131488801973937061051898126048512028606484563572186775102509219960925724645222084401559171074137151488755773904552202118644283439461868177805857676456237561197855297527905378919998550022414559668245831550666006305182798266156722268867277655973269270232070618081159325529711464050737709030671789364110193560299168013697116650576019113946311664636888541067092837142426321121954367603263858194704647723661006531345435821983826446697363518498346285091304792356092469772035181162575474459756954860347758969581356289235182354449439886569503764381829934502255243378067696032972434383111630240264898430545138465783659115520698878263747564289538137779399984204052271413785101071441766370936130886621867931837888368583825243945950745184254709120021931873486221720583875815665060522270418283573769675226442408461536676774180608957427501236917374529700940983350948316513701782520362181493565579554331702142414619211395232014764308063802848323553885340547385107229731669808658760146625598895537272440463760004110501967247191828941345195873247085033257386852535420070258889745900439061514668960327016691554178812098106522811928807896733427031806585744051642830577151660142949547761680818332522452128918947400244482448745666365492372316614310661767775332179307111419377974243839244914899828230903187199164744961202407275581486730998809543543860597882198387193947382067820719615148934310141353034719426454450767289594849279681952170697767864708318774733603822060178818417365211740167627555646181991622775276020219494428328880322463754506659272534428629276444298502024897067338957621681325294986682217763432493561391090856530573362811090759062858607518736339109638808565157176420794396281517035874219816328883259075072494254798261092256848957570297573686547207567135110777799812599196509511055125128434543922634416398491253968753580275466710809935632709632663078993768843219371178220119032561583723710827550966266146182484866461534307117302025602888596779963623613959904424381068536986523205805278389146647418461359303703523458691030738898485215657941042506522528067281143548697396774567279957485186518516377382836397467894045026898456802401213362997419593950576277829777315340732103235946178270952047358384025965475988825381884496749628127372084436262762200491482266436853093307055599616534864686640840374920558601871353102395616554543516428721499260335787019019231370560423519143790428860953083694188691621537778615483507102034592254184701610681856495295208393661810058463045436936570806611948644911874091140289229851131684256687255054411171918523875832437699127111241442615685256960802641024156114576187898504682150984297213309940645872618486753091101235877153441385958902627883058267232433245908659947955287653945974108603395888565193852726020515263147941690175613591850203778323804284780043121854925520270387854195313955560677155520782347560635151613819134336553046712056933736268288445530394513652720091312466179954814026869755946091886117019801315667225775850325465054922019110571423423928214944107662724382104928735110698802612467195394796439828513334711111807618378141943186235344668576347424272916221636736995087502079851875290541970460650796693689313690032904488245752665816472319912277810131065029711516677357175143786206757411757586915486009182760656916437374608505199003592353352836305176900784750066987566398287421007754211599917192356485362311951737214622236113132548369574096285871977811887489849568731205849958251788803743628696626440529242620752977957852063544225081421482058279519164184178813635443330189180704820428666210411150723814266996571538569494298349391056504867024714704741934916273100372649285637568853847236815979013935521152408045022799202171114468181582562975405880120719168511297376490524762102261576058934320480684093486820764574268293902082106265339916420708549947928820614629988335516247019045109777573366689453251541241959255980475437021332427258541558310605119978994555272665112979549252141886802197833852682741658458658833810331363403507729096362408544381275015347211295553743421662400871407700140868968122428960933397659051186669329132916903558253367177259354780028107788622808965402411116791398309717931947449659811826117023312554163094519398390589628082835339464888267937798980975771384680155844563455622344628792985053339909849655120818911427142903349463494306049556235805356398460505647646133729489642468605281702891863349966612539299419715404335258110063568901545830793844054756094360482308562530528398529586016500992761153729457244553050498241860313570183247544326743162816184978505825230566779311338958414796925702775975244826468147681795249975639690495127688209845124642740015799331448136645903521337230003149459539787591618218999957771331529138169314599804067667250915192520042879330682577662518582622970019096056295161389803142963437306648316520104612440505488467078760444411992450698197675311223004194777567486889749310449375535062101491784961919470245471394778610891530724881352176873219599077014665626996908498080633139106075487729119278780008264467123723330445348393478258096497541457462175240595719305899044956047922496077777090326514643699343498605233520963899492116169154040412114089396929064188287093790137442434663016808065612190608111220044752608602914735865301150951028905871107458560330925745183389079310865138840197212801595072105239397374848665655439431992439625720823709132273123936528489560128724348606480570923020894346481015641971151916403272969495987600143062818282911986944143442720947694579409820581800860816240019541170015880654326687211726344823034256086572737919531838568210829685564338173682669832527435566777156270012893493358452228400446037415769054625371101073635498888359808734677725007333858656034817308538587114134833378183534068636136514956579765218194380981412870030675853721039466687094910672478602933680568928887738961212809096048708319046385207646176419898163258313302023495158931852159428045936472497316421742113651920408987355853472580439398740467331747740433862375245627795386781776592000270738760552212485449327097671968606889214850036575200322933766765172054508615477229184530103844144177951763624101553261519974748700080972614514727403546092979948370015784721323463662150200870947638293015937103172791368698973737010848792557105979136881557227967827143846471912064715721493091148024278420644135523521707736314142570883492488675810104720876544904961643880570677012459056734665819086098598737731877570615584299114101772459903606101345876709373558639703676027451826672977440032316667653844951560068068272742701980970115245909078989363699930248269507751137398041950792779415158378878564142445800163086454413218488145610131639567916918739196800513667351134511777506934555516045380034153429063701067150487060834430663577853285038340799546965869808440911786638323983603788104930075810891729728953809701716383810273892880499078179058272906122054916996062654531453732879143205978419400100936271571581614048930384969695614362022964931573178870438093955551051272307233032804255225493471115438518291797093124020123726181096671193779732527316479148764685578312393057165443066901052915037648607871029458394715013991775773058030067334024828344925585368256913589126844004774769502996661111108452845601099670039444822107614803100944116119983739954735995126286468476674069512982624295100009869339636258141687360329855228902151342836541005218824809225202538221853890768900965520113891151346815098423183040713997774694607520216929134298180632281038815530997071983795974216661881216110713537195901953987354446176992473732785873593014793893323571324208541971037466614079942143156093075211971956855466217213755721852273183953506482496589242366419779250763788997408081033649001751108307055279031353297973166399152599301848718290012630426165528969090755407078482484513076786464667315915965328399444218650567929979418923179432557249660502616872602050969592864413710128757153647525221255594460440580667109509439593214982167475620941127334953466821305238834585906664062826856293014921852134317466552775182063138644396075947139076307634528104985183580578811854606759024214943479749845157676940600358196856752634212937013046489283485223832435001103674121552750562794612218186576573643556730426452092546856652829713540463714006344812656439599947961533976143806393131394669386965462146363994319573784291480983807333891685878075827784414893102278852757789294621651905067801755773329137582033990474710777584704927256024393920969594447425221147418937742518382549696381296870001919573222915032846696671337637476507685983068386852027824821150375428658624879488787152251339499636715482713851899620630608321469496547179472532110327926547281918189823438677086841117481764592673694937740339514306285641802887243977332794458683003357822391102521598615810885097131279313393312731560334531446844839412780760464818532598226190254837344946916395092781894804804960935554225661007722890179721587224815272155216783638920856441901953958635523371263172418083104442038992320018662799913682075816726953751912270041037062929496378604307994284853548420900692903200118289287861613636550063575767441921277324331816911594597254673404945754349525305018619683327727607716333556637259811118097597811537780424268416398584281989364617994616695176893829439857314082563500639150533719503811670688579903794129113753874373186961792424529173653289824857030218680479707741792715119829163546337765617819741652782773997615449816457940218204047521951156786635932505026543990137387375924079480208693481626988815945214017293622419924241506662742118001536185222642826256819927325756002157739268430883763631018124972931110415906295448392911006056760986791738173272851729573851501006324098387002646202464944841523062549270542666193532638189715379713200307919960177972560317763139198688159202999931084350680244703078340937018321416321548955032055661433828403411010891235177599357968455261735162785282181316388158510938750940192264225466324840946704649228658752177198699466814371416629183599736592386449703178889192005787300346352993705439862495446384991317521026487498927679294924226013667342945725529432507916977531473694417894783023536615860504168645113662311778800596114596326974268571811085745874324127359889068211810399264516024406626748514756470733756829443760653012251919022304667325204133111696827403003377074804960052504214766053059135299328619581634674067091675589210831814231203802431340794190216267630436835607756138695570302980286621258953217967460262554127606596521248954359866941315588023993078450952858059675647951549114743791648076940386650702628990344384997881173590094216901499365653712053436138418229124790548288574766999420255835482561606044599205580037660240540381992682820995575176665877455139962381182142027953629788716909997891952255960147929023510712436724007842011561921261415466659889630393643953901230581988776990703435657296062130186181656578231000526613128035689205667003571163517682715461449587240977162512572367826726608272172126150362108872834266802322132142515745697735234413741186883523051214648173444694097955733781379474019952531407838251244485563402324295427811875207058439382692486391849387421216514189147873774041551733708877132587782095773534843952330123506618561318980573687715760930806416319931701192366053162200285545158750347689319385788528026289266932687527808956152881870055439575247157930741108690054492075226915740082114122195609952730737000365633548685339313899025209725775182986427128417926606694240674927282035978946592888583962520016679768087747326185552463469695821307544267274612761184920128431732737251194161492630771403713262524296936854765813704396965347755100907719087562338965724057456162830425250217753695018863104392283109388555675678125324159430759540972642967010966235608491649577513290057275619445890528278752638981949172474151044208712179432333044460503424250260522102635627246541207598590613673015398055036686120989446619831431567326147754975815599224449935304680549710818399613133288749606925417618190646809775114665234572304797766594495169024028336081756549686173111257546183871520501755651570841354612005847249172647028176778042355410651894054525448855165749034704030878727991354841741956271143206291747028031378250738080456076360864232540575534733488357540124783729305223762026249940481173415006385022796031542148946830389536339909673630173095111972495708065232470466812635182741942970992831348832209223812629670792181800795102683019530831269253236775609306170753831279914786979956190950927454350125041558871810054299828555245038941549314600022287747988526930633565035087757847466566940674687805778118579366246168622473580982343016540907690688705048850673518560213540267739508073157928970934218073442193827899484532088704704140972558002477324853069730932485795734963905105960096991411253228548709622496437152386579800600664060009624688906055841673268503100643512172336237902298559667702334396977978099243316039349832123890545116344660923841114725709287697972145988211368417057366064701789747415723608610151928392944157753922245761205971141572415549075756116724431853587280121636151233166795809878757014195567899221729183895157470616560493171072441194248212153042804805937055140641253889885102296041972367349662404942609901686114006999703405509005547071024929413889366314294010677359331557291591845676204957783262814341566711171584324365884259932462753754787192517158660533719625640056445703221363986507764505769092409920545984630424824729828797989207278759974628289996247669179897222096034502993936922793993826446900701410985151309722240575645415819059126087519216269476248705488004756521774954253806108506883791112013885271517968185621456507646146512360985542908054781867172364249039066329124002714383869200980228933996401750639086217505429332319946435315967579465809900857852286701362673946078684280707093239453268095145097555507660835264615715461653298774274902461819941578513342323065286298143719621707581585202818470995005794317833485100444119946687200446550306163297364326871027221011497329169972455776966827676848082878880997574464023422542696218320413261889482963500961056185681583565756974156837626401386766456497686426509695611586216959563927232719334134854676338937893090627314508654340238675502429544951637998168937158320584343886862847823639491863713679838124251925805799183917815973504932433966351248683091877594508730840767427300296648619617970414825661923468670213870565014882142753270129545471681120274164050633672986814905021024792604651484579277451682294491056466219027105128164037155767082040475241532948784367763415354623685794801287393555130561951918815706301008279876266462049686943135688865572949028291355732998404171253066124240519220318637330691325910061860008983326501949043323290898955744888737723706710945375264564013934146837212467610762754486230751025803489502491577240262156932022808599081854695706985038456153178118366421973252348244648059887280087817512108417048869768450579189688450763898384406337061711099929737058866934293374017633985821061993198312473507439618628382272780051340056181357800812433194249811227719782962390833657927579268895621763908098821482048948883036662286033620630603790337165716295328292421991152188147971195135536353658723149174689732056122582857889242290575426897474896021913099221847741690542897299509542330381165983140704140496195393649301064567997073989781359762219633779368794481366244938728727391635511721589910180018421002311623520862715104514329878037836984368048686366793617282532056887343577435247076260307361210734987717815362929026035364797992028333556888894282364774913420361038620959798320939315493955911077987805820947695649102656796058607537230270472412894687807525889155593415466005830048369026265511537654841670454929527762784917320888670723015397042567355590687938003943196239188329541349407626371641501983906441203630652742833718661172496698600675677036138801854284283029247495910265598305373334026947293669099532892903616881901615352120061997724719319401105526800386340797726807584564512695335123303431855344462728841414837713168033375421435646912046098683507080991009324492682965692452026581079239416498174878481932183273029741745005697224905635460534800201013965338054412179568650495906158485063536721868519931638249752162381423449147336786262485319873851097580821692799966583083406439348583178036388592324414214320778076412123498024921653725559500191771639295099265679713944896106963613110916990783711559640070534716052915598930069570129781126489801551306204838701196525686009381465298214063400296436312674615688686078583722291604627686424933751332236449344882488851917751240302416211035871562752423200621571654810988617204459888486057883068748019806219424714982679646152646169965371226563599169932753068693988730937736805953262962994365647431433144383257151192083667356823795156210317872615907708645890038994748551472520939376478135053949591799492974227465027272100832319855372929977709497996625669500177558031182912332314036772354263517879291235283266025294908063926456636896267616069348020492106730795202110117186096340077281405755493923482758344716891529952226930775530489300838287738499717153189590439162301367752177820448629269937979009306182732972273713579970756835983637990311433062820373513151280862225321936525547537360894538441877894799870130740417619935795226814367873631663050622374720485323802808541357708518567550962605724289852891822702375596424612705133410811189673053821838365914288787441774813860501955097302259399847336765819855300360101858995750716197708875133183797013221764060810851536817971794988955420753968475963867966214113496353567233407676803688644014959295058234662158132446986812476957669817439759806507452267185649352258666816003979607048600180993783159105263334786447358577615016575346410905918803657720346581421329614696021791081079799905772768657469179879708986297413209444663351708387674739117081062716594175430349580042537652036016416237554833292291474859328476514771779592912858706977986699035859913002065729348112966735148540055551313561569037284347522691356927005932952876822762159252410147709181534538522895087414966013466013283334700785112801875521582061184495000179267715590643024775107709667465751942469393936108395039642294909747426969807351557936877525439040879736659062824564981245300038937785125037123811054276349834626630218623351833291960293690598701951643199484979497882615268173295342192656653815241080457096999858435734958090992200605425592707175623780628996458798052246139054249244274146152717099837464234616163483254207622317466165154078447692822510226769948301840446528028044622963015474490907937774750191653380597975753863577728928622542563161332106868817255327866785200251941926621848165826614933528872592799853882411487431410577579913732797301824917146531664513963832468554250361243610981068383435396510259592234632241788380349895853417486028236168244991413785492646706318400882699509257224238061228966504677251278198800366494721497043424798492461132214235317230225941678021737620931339471809501712679552509628399109818258904931551680982016273028580860116051098906825565781342737435640179309788390777348870751605022743490039215628924223364422186178742710904051537065335494332586481050157383490201862153510583917912639066506952454972602850007294795949291892234437125570531621368444717415917687499311022518910359194465638212686572700059608635763320049596315267631601267893504002464308396219269068693216099010981633097401749419627938084744416707773316907034496645630366451312633663069964674928135622843459131314754502800844353395087042454618992305116613264555223170955607511831973935498027200564519869211323013969984741197126583527103412246826644001121417869025912540315142465954975620911730018176828208010564366301372229873373506904616947379385418942411008026552296605905119475755164538662396714170482625343543294336979277646488611241338724398813140776535195899386892525623385125782273778398945912514118892371970235060569330917724371829130092183282212702620023915249626656191305413761908885130567427919145067332858056930338380691620511885985543892485897140143162167504039293682103744683568938080744690760845614238027105139552149703085561751282330722801599801160913851507145824586823913199128697841523319607918888282672915613215155240035610823323244308231429429047729501370215719953236794661984709690289757854809698434911896033020731014853491677164057217655882357348966540403107926980446505327283597113318261515698326356726983773516216513000178861372297199741616540093083993750518883874627171495346616787728509570337613194786518291352674110983036320029113150106239114058049541580555497614750917129974619889680479817851228761785321712800681596600400134163655366748792676999594121419130503112618274723606498200231234741814105786821483181548721802961720374938581590436353715437675508560216265883926283322275572567855583513570980049309433436397607867587722739947389537260178857933346998626492933912664657251317758354356601753489218149090857520374713547728627774111189090765609513129954378995773601204203241850139630701502482613764638369572976849129921536318175161285849191152650175117367559696019257736911709571673237286244816031609325538731968666171571092103730774991519826178873976746578927157902164280172666423041654871153793528428168738594825426303656958795785705813874288738900807981833507478095851680925969944615385090051353837388229132555901917005137172862828187640234613264323165453984144382287520544772478879366072942034804789973348745933606125710499025751276346847030542285622941785713152339937284587182237252122438422949508528818800584549359050860460448523395167691596365414551368816634774599860620986675675261006236780580401440555188067364395538507389412249935439941597615964324904943585409784347166093831047570158213927726476588055892055493581491191144404927142744137408300523400910037554824718122362117425575937110136045526378334524326455537766470916434066261175787030107168347867153444935358172004547388925829711636883443284270415630086038312706332613350105526894857874626372530721770632625531106293371046754309169677921227914690820030958313369496200839019348255556089938105101877699753897520942881185480783499162464748911246213606138214057439042681647119524919835846397588348430854194886809940083436868982959510384398380349223573684927146648838559428647678208789530970205058644385805529414350203706017234213471992486276937012239404056250237752568886091299945968057122737008545300725617604807130291346901628523047511604625487921672294195875120637001579790261413470644024792376645652261451788469943976271000359951074508024151958215903373091308522774370268810143442866283752258628755213897561857352228961343229452837610702579988115007532743701979020693256201377315795103983123697104242933951401084168687271452133641683214647965871560013882947657647805655642269797140175918341678737687866390276689694689170541196443569200490131337766665788452616781299961240484243671237338561426570809541547085867230156081726921533155119959538242088742473150977770039724752907834195419080144659536777052886842686089915700956452196914712521055937329032510486957555814364026722344710032544493775416395299425832990507219254350099151517291989146264114064354081463056157098761253527508194182117341768762721668612496463651852649153823948385224227075612130074689946476532270872900889968931108390881856294672478001344245887143245459829369414925352838743862806380561944375648161390805366875617148608212795929910637257911525401931245495595469325892249811203254898705306386164277414401363865306707857995376264252708177285119347032534709232709079965159632539971608949374848731351986717723783975644923504330568710142681409082743887381577332854347745369320491446428248678773711114458658848459953675232051693258970369450038691251463865339003620520409288458226772568994792745579816756431469309925176408887649127400084109024463133919284016888549208529667900609336387982094475321431569550232872535151695043449765266716404562843897283032066008737936707314118318889817909844274941902573714249262991689061931042287219398181341488900907827473711117602437834127921518366765649203158590082343699832911141976991546839215484335288670365519590251507873565880050937579343678984152051663178604522615353773365722432403146004918412005505928201911629822048257917488894403165998872541532433141158725828878373801871798033726755183988056671877053163117410761858896925862304698986528925593280181898627217458320768851043314340557059852896580014893876223401259628615187580925280115139028746900343554738996959830836828087746437666425190271518495095909992878703943509989557903500310225880610862694715234439368637379982994079158169184635722808384363308589586991626610826502324476930941562333926019808811082474993897699738139028351261021145209960816802328317189683028362521897535423002648136799968723285939096907167651406961343900979380681026425721597835344621440566268245338466503975069069585314998603209439442547034942382417276213781046710711169937222441384525006810573416934434716153641461011539572403971299320288949347656500348564469893379103942018392381562685354319490823135456919493252624972318648477888024890302356757491046764525234568663806712620294366462889410379314540169816386838753814150952407877462797498515019349639191756107420245080609696749594328664053758648955888026704948723728212365066601776497040638700777169878768012940848786478522931525601946345707667577888344010692541730572026141400057706701505974676023343779662743994225485481521376782745049805525096075362684824327245077658880005560221076625830469632481254224527515873746151738161507949946640574328433258021746359485461176662228060542601461616818495528228436541368269826852750340881306541567776624772319161476617537145906506976189179221760323669490293359031935851698581857059141722682838125867043131197516284952019851331623727265458136426633747025964744123278077522123235835982497844164309734856247236743693756882572042894119675342880681208301176993895260788082182604267540086929486815810121657795770469134446802885446328985071848666445423317578727415948488612238586697663930100967375745964358326734492514783537691451321326665639112869556743529038507886595095378781949903510032692970712773506506733352666287872341575659124736104406101579511971971265131074476807465743936538808540333868429764004616954964951667757651404804189617461445853707611871306065882203735354840689003356648455208854631336446893995841922607350781485185859949758182943105297391602849165013164018533638741304505734858578880925571193229138715259585537033693745071643748003835258367792589448498632504501733633383342497539573875467747752409764668192278982309910453214473785796442962594453997177479141391395006720043094850337093551659550339818802804649714525199191828136934778782601428067014472700811245343188546560955842422147086521184463590465063770088981265252764168578759560092069099321431894760785431158027274214757961854633418162188065344882481766515950512928031647924873261870299621507731818468980365577490588347541446305524080303258570035920990382556699710558646548033746044229241961858427608795364696483220005248211428858235037094332515941022624104274481560924625458283688025548166086670519787084956517281474679612379638524622876044619508670397103565286887465919176358343275041918276914906771343426077072571048940632041248302892180561748678803330166977436758942541021017361079424016973478795585575996195646005420908359253292437850496236514891446213063161345625670577613954366911485639401769155299545216654713126489157427556319569491923562050169756916326575664324829144983091088946543238903690889022478202817838284223034693179553027012121517414870253951455009719037416749349870860354875857412968351495143475850934622870078651718140367202338522559823295682475149773708060620410370227603135071456823277250463115432655117311065756170716984719136989273484062560071688955383268383104428900313231925395863033198288221121467507380845837583820565635035085325035582778523956827067422988469812099285501939979101862298611150031151264674806114742048658703379528173990983620284281776066096497800967081609829343413401264689585671471747739179347679730563942653785543210224993326569701449950885000826142814845850261005139363065379790151020111248874936821306714433776340611283052010418505476469364516746486456166972589706267991266682325396117249987923244408287577320369846960293708398489759659540968272159211870397480391583454318608805938947017547914607592788388141551385698883031748409401066834057143976616926163315811223755386347636245876192493565886999431204275453051615357210739996928270886834980226652386816213868808242476869703571424925398542508434743085930938861880652588571383553694312004904675434936448271591044034399552281464400777983419462142116246627530338617071738280172062582633641615852193693061468887246458453937471742553986720002367943033213777855111408404674692811965980975358347975315341642155941754345078850406094860988353259419708860019443293774421078327104099263569916457665507476517647393381646255673132517355314754714722788764851585369451527479613887644551659614871460431406223252448437401319351317639238928926598398866763248252203925999937623275430303509259907210070221322796450695589176395496277611616890605830820266081867774358837893617437180788127515616055699303635190825175243169543970243124695177875538840869839622892984427655776464952846220158653999707698936143830662707229353840480341325976892525727052101214819485444770080450559398889963342324343623234960863007722124376485254458468760976189815731769347745364009833370389877808313371546681015190117208172080177986174011519132550730297840056667487457532454931242834604469369575525108865020707342451530442839619806888733140002688838755163916458035594207562269889420489899203674851206054393551843233402033709985667063798985523001406248440907851190272816432276233940205312921113361534251511628627526888343699984167399268647275440494948265763848608508802916795628738925182717503048582925314371537320374990481589005143583551754868694598594294684157262639037412623626216236508872979552767692596915886050236699310087432217094857878300960257341705598762684768134905395343212225820940460929259053802061743482242405846477870468026022563871145059323498820827978631620263616643359820361219640293639524644273924304656805584830477022913556965589580119675669356913008049824619982438448478871701328430371466881874864932061086833451743164766303486872855189650129805003138379140977956957759701167301824155596747111238696012348746468106214154369302067823838025233206867723491176756160376808676483653071881882637635807066592909658737661067074403049371238162644809013738327403886119375014668933668183048431063858222436269192777458862044552566328134454429166988270236546021936433764572766234454952593849487592731793252260940471497384367277560535596584056493445694843050508267826291121906723503265047566952327158972194799615218626890949158411588899381996813825894782204908223735244926183202899511254423771316443714081854808454402986456232060513275709775793092443533660068558170533888324534573250923000393457811311498944880088576776842460831460870179925811583849190139658902786815074801055398640498368081879604333459552314170854944391259933848127285709705453955250600136064995130254244514552496973711979440353681670781635520758889058125335363185254231161608043097002223594450562763932017086346087537997150322579233648159626992881927032745394101809385575890801308096961523483434854039714839762884957818911053492257360369261590386577546757495378599342521503648625919108687254555015572900216774483355422985662123108712637478702146210456503212591849598926171399240277780718523286081630206443799877421774686678304862780727480347810438674072254575782565061986594948834876080198818654547507013374300661002075022975258101713845634407654057214168792486021643572880743213678847508123535814003440289020810270091073529952017685401466868976822335991960569344041022670427400759968747631884864771192382780175399922093294257075631848517847262511024495255327841448629524809770872451960733263115922429138701795025879827249167311390188546819534098717368716923175409133700859487656803463286433258856710143167569679440590059262393869342205661766642897107723414882252845297956584997956586705895363391986763064863029218254051227788659176209656379868882974750273368580554174837980424846470171933488423478339049591801112342722321236598471511433443339600727974814601010602452620109841842911925005002450656351226500967819634689735466048708653727725377138933621379095514397025729100302142580771517931671266946517261266317692983003442562809699002545272169403866924949364539474138668448594007910591290584218689707234340482927086968640601614801217440109391609526492014848621082106525257086800580726612027886822582711081052487512667225074167117141849986702244831035354962369921924437165915231511387993564834661090600555168916475083503444235643876723452722678078325876619546951003649922491487931262891336433142122657504053014680665099044639182961815411985793433630503433189422406922103316291605939756351542903075817471192887475997424809384405231119277086633969995156389387883751464435966229672870469366878948540688765867353857963747755069535019586490508556169657104491306609961459764889290408303748137701749494304045864480467751707884584537617743931292146072973183595963567260777636151083322580589012379961804624893596696097645740705018199391822825661790173283205264607954223731647339918547781435443809007503428987524725929481737411720325021400634370415499415096323834999098684074376073122883237174260448009564304679768769232641230387279484619548446290983523001650861731275397670533795647874267006862044524531798921585807927411702146995188957172925640595581276218283808553561778672782918923594855157495544196229199867380321025770822296552938063755827176768229837600961970653328410778373554270651974201004097174260886163451967097321400440803402869393190752507262829159832311308359095491518799967433669847154692264037995187805205496110457238824842799943178525858970419666804151262958760156634438226340873475754558599492805402310368383250001616385476754190276211601568753651205942980274300813686635800848499239650758105978009343312638294032561467128602658347938910449411890337220367227697749568335955459888465804731993907679618898044638982746009390722892929533492318028311779479765502671219595631685741680892734215217148810075382769716332023976374627409196051726258408834955451927623733393575831292176539988889615010701925308062902735792459604978659167263615055918510204925087109813745182589369426153940300453433330161811929162703333763891284547475383410464110594082430448875862895165036444524086024904189699816099862884911090883982047576543944203208359602508033603137918932347950637025140870512450351787854912750648861698963240810282216809816093476036713576595003109400384482615747126811669342692421132274928221134756321231806417575983896746036419630257225111039965323894984016178603369817356956216975553153353771486975199890796836710170735422138048210246372401512942241277789080984932776120416181827349291235293407838191204563796612987942671858345052254181710384067418920220851110205819623277566594532012983427796929781103534744886786327859247949178111238122395843161303373667138869941764094566388455562203239304196113296209353096380295354325841502562199225412494014605700617702850238285877219868818102967762355831839618330483919526791823983125105092617893137301440228621963064133532328082711409673549926652607231619093563246654532809279618828063161034087818120730748267850291396875036550929519378539702396534411770555021122854125291982726399987516810796692923590229147833325602718164841854081602978207596161029436520251789578266210184790636292580577763499485585928078184771871270036686926765689887711873620893670002156070029132258565986644062599997111173363228745011966689770097844556340641989142447651458175290441953806321606169448304047748622610685450087902655035584537675057887464052280667326854008779796642971195417738269673699454526269326715477264458514399392630179150146778687281538870403209850210440055976484301132516222876264164197799003137495735435619246548001173875799370146645110923614417725415745668445046594742409217366497337553642294133870891189227383290340980908301203886710858031547218718749681671782988696709771284389889679392961576815219372964223696289871701813821955999688094716560449633275943200396273346313829102337202768817572336830459797713508457022169040606546554410402320641917924459247959122603289175798755477555606758494836109839069046669405733871091933561891098200649730978048326002624127058072319596070224019724578871913908153850136038205718138677658673464094417917951394767349926805024082031864434326773559207556177184410723371129489470205787084795437556145549086830541571002948677896774587996925512462681128418680540598022486266640971040625081330006429412029929849349933419852240835263925318144673097964924174731747042374378708675140608231619654216632964848334603218611498607808889654684204414861588482285940689414156343791776046040047614244925019766126915664174983665365133239351314770615038703293233062108817251469871876988750014649086570255126623303079634906198639852125105910875736276688093011361663282153463847461548491282235793347103760726228052009018533894003841506519874490166326755518804502440083118937297409372628783967742906521413193143088401216491920910899611184046954281541065320445148075610442830294204425202748520094900665454551195367654815159766335229084792063217095145427457008536130602453420770156947872909729439894791511625782706929025635137939537146611408865705315712972103070530552209215902101104933967232502310226740687507477900451556310974813602635389147986198278648755208244013249848291062868135835712481422657792280946428748998947907066468020470211343307559907120012287595585111686221510110372448052828446429547728059064331845062129972997684548626612344660961730896829165771419556268931176976921626431093160674072240759322075750998252842726324364411117856403708760837546330044221758226597194371558152896790813426937308578629808501055009630035409321901143791633179311485880819645868675713071561304345498861870190860003676342681863189213009728654791039310751382519360911029149360283580462653332269187455481736522962823656477483918829320493921877021172882535717357090690508447568370064159801494965665406554294606524898796220702279239921375388911324302933732182341826430380970221639144892510328421097193542967262391662423129025307215689962629621769302530958784424345151413264978724781788941240327379309418224073810809035545642388699572924608989934188203369584070497604332749866046682837760821170451157550252501424269137273730199004082058767248434095557039799588613273160451134510106791545502153001154183161288119947573903856781073897613335979918218955138414951416947060339058667880138610189956110559050303497968002794127904595948058696264804525736749324394397823388253479264850294260121011641808581724859062838242303157796421327484733054212009856393226827381939046066210371322579886968692074510077163313131367607843393652558850250053243259475038909577141215943652698752411036717548675987448254034427248385963222230349799851639732004807879227811360889436942074785052133637519557137456541020052357156013390302892975418466235511438846190328139846348096273873402224810464119821374957577391156662389484328868281911640405427343074810759844816151070820698638255128472638865918312168410775836639722202596995097030981250237435312403070742099978562879605903307699948830874904525835786328648150709446344907242652283542204346176773085999755807515534198489719192891165518423412215318593464312986137547047342360056892398767973461718864170584451627706994198875730490413621194827941476078163108218526735181474831632474395069199921532216469394602062702170872867876110601249305671680494440794025587909467321095044967333518824770954544947726386406543094265198214993374952215360819511712334367784657384523363896518003112735110915391646810341814729448821694541316648355327569280859679062198322589120368299417214449982869980115107811090220067349318137279877831729039935100704857932949518495839388497758599950477067582590796965065921788694192163557613353144386727027222022376050786164373576495789932479765770247109150955136625700164432178880636289213075607732949246261044443759252500212300133551551613122300890855930509119215369512919828677434729775654447279998614312318890138076820062208291783655346097925232928472868321173861166703697488128380153882090222539789182156687665118852496828352917083314618124708872001093561464559253973385397591615346237779869845439154039878538565805416970799180776102687175509630184799449066387886004463302745703603974084059337667222934199283376353534004361648378997240860551421193672851147004048964753502880855977143757245227482773523034700035332404639557292586580278964273542958379437363728560293243845692861586250791524356110878477537217070836559210600253287266414824317687022306747862031260361951987153843810623598422241270177649952839760297075901047286186338000233217137526427046469920218262399326763277759204860373461350114309776971495501436972223221661455696845943452033801730255982918309626178339407723071858616040702830772540094992597990099202726552829221959120925887386679215761542479032059942684091718744428205435582826318721934112775117449025595875156701335291088242513097514019201199651258384952991747456965827188863277738496898527785506048067095706112149802135731729076035834555328459150067415935284814094463238931563169000083666586196446393052888888475204386354623510736228899838915679630346194424440476226590824192215496211905082581202001348080255166915886501907895588140988777827229807808256721365119996899367258854557389591874467217882411160197385004556450100510802687672629940531759987801930162642169104674109910077092555985168042674058288300481006649610624159560818465145488972705026126354394940315763236279672107033372230054960653490553235684377839578207367030730856939216372876305567554943912105714292862360342359021716987945914075419887741150521547408885629256408853356971556214226896242138149513183092895232208417042026351622001787048446566555815049945380672279823177766084699725451128631346545872811548684351126109461779884684767940145591294130433577473757184844883409196222772819298261865751450369861572784521248683257825004824583974697093050859344341217606738820043996815042768216196334677287260103844895782226394940686587644600772918877676767017233585611520511727890480417938978226393692698066620211131164603358116068587598399807232221153368228852172982461143211313390160414010244012041466997796820320978285564757280813581406891179382345244696968609299211099135929030953126009789207136159942079608600256084928717533316639380478639860397841148082062813997241973415524992163026856538617396525274713109605125653342889353168500641475285586229200938861399752750586879148830593335434985513219677481712657613698665415775578409284473576939155035341811195943661291462727790993162113404130634544089623593341535945840113008827203455971548513743461608954120166888540441847125567731533363814819623084328602200491664703082116093417382544375023997304151083432446935340919653654429997570357865511025385250029192082225222088281395269046488184666083755888647303257568090899231402047071419772334437526330515964938917633009571775563254812620257685758279480735536720417848849670859774469677391995072517275478920248026947658744825829588520489465737347134793021508734448276688500701341350684776172451638806856540589332615585612496079039226116450182273007578358571190448299871035185740051290606584453832961509629713248271677467108979910946101401375169728052326209016703289407777167528656168897600284287314958112038546316685258533289133994566240712512651846768514431032159929560011460294716651678911041069499821128733601776436842958685121978648350536760989195756329232212352729414393403387223701962245223212111173117191402546296141074017937379675263061381297676532444469233979372619998546396909250463205644176737298541417253321284566569835338472361304301126509628309038546130470558267821282057811411350646540272107634443629991596624772319143770927410335286834752629103430439409184619211662668171113894658780076672439410343467942272255674449195390135125304337879042551972145201672941436728772520870894327889689683248783561442735045111906321174930756492059840699488467993972944355021161000102601060540917500604834050486379139167753196944307768725232287717257047990837023293768012743283560132099806539808229950562062783136633117146572579915590419793714873464373668527216624659972206561201687955828482319705164530179671512976616154556585315641643352087535173345452795101966870289350177062209309253095605761827713937019200193046544151878834078641346927762220476339025162372688419696063467707468267698470905062495304681983613023825282144174232940935032792057899264346820108906530904262071352580235945196434994942325901300356003973558518979488689049897448291754540996901222169559189714646850666137314560426050749598927251148515342673101307795201799546752404607018521940766689955429162301800894932298058760552604430926930578189010476774393082685924883235665400472624555330547338719755160486915031320725029337946152931150649031714767087320220512469117605899293246637176493864493224111018115587654788811404943727221217829810074291346095066307526536461337368518100081498141570167011726187905563926138564073371200569575347480502224809928680681633558837059126083734548553630220140725303828467843507207071745770959029978867450614859347266970360945472071811189635044782679419660166880643116481729085964971923163868534325310002073692759139079573499760781120046847892373572069455852614585685565884220268903002412851811848325897739211488988251640889688070182696075604303584756546208561701662847881474417831709782777825691940262532784333013644512302095424118303179155882946411849924572027455142225580961169003364917187328065923599446628897976067742004864968871461436915623647751228757544233146633539570845611809515612571462043448492266070186373991304649047406306613167777975721230731212946337509848068919746403284675725725688156365051624114235055736264955789465718094902845968506848677234880447793665325923982482872050130106605407165012276825717654024678481362373593522283943967552082571571544878766853084497509578669666618671440865751115640731644095909779174317258734971103775106076372251764935402454465482730271315712616176905576388708976765555547565220138904069107616972042821805769571314328814581807520277137917943119273410099782890236392233614559146770443286973131505531509145591235798024866491436054545156140919053526829572566357137571805769866909908025081837305051162935808097484805294457069671044881544437444316576401283040629149589029303549739237146907834159417613669951067191400673374017815632837236745795608426641829220982424697101239626989055363262921650186314539518795298500294977255571523977078075953363727334792839032593709846231179122019089148829442710707619768605179795519378848869472605871411248764181971408541075149417010297123180497838435243713899487269939788710878513035767007159204510919860027331423736275369809056498544604636778686462267651525058478983370282732245120623520217518423669786785716406872564517131027815175298005335972912411999301186140773951241160109357773538037297343396686476269916759749612901727792727401741901716217766380204546380181085180695674196374479198756008345995047959892988973628429126906854518079034261952791616182667926853892250120360084684357209795632288683874149770155328052095631995421293827491976002391770068384894769900049822889448052179190718700956601992269535448982408339795859777194438207067289050111668283185410716740998584717773865960398079597610430997796495125458280777960874474168008610062020913338718381636705721069580932135378171955515745990191418151863946081778224092463382754795828564920971319993868111687993458294457863913922226532849343209691372962920892541821901295224961810113570000705053303796190202677765104110174725987602786253750071503696775999814777297368736245813082727748906584522828791045114541108806416233223372894718629342555625040859188034973619723090583230134643243941006344898706679752237581449232354862134342637440787119166105640935415503316873078559192462513047523469344471852646848821986123273256794417660423206609308618574633627581187852469602274415213980511726098782896327537098540953863574560103355063060065012785517109113639265494147934565825648156178265376408849546960539566205358086300482763193650656576376615158653406883958331791317512656201712472330669281121017053802734021200442889417978735765889586707622045864161119987107457929054407217950798643009615621745945512567164417599144965490431976639044366360242608944415689116827019087814342420944815589015193031132673846313382090999818077152868108762588252859894589160097398529320692153274064024295634310632321666986528699773267909620736166550459243332102320445824979622409288935481499285155299607678567636314422760706666044542304228272068648348893342626507110990809948139602747844908400177423712839210241310404433508303744153915910199529966814368450895473686610948137801508306256044518822122915137529231893623388720931507633172310343296046962915107180086738093140550977448377975396843390949149780704147851787932292904016169094953777495537730522010788401803176056090762398161474072205884858415152080819828221428899577313986669940446763930987248513369857922983126005497086540823518330768355048276466406857235463872529577511923546826714509303245212557554858213120526501894644592247166553288995681633581956604168791369587764825803833572376654430318723033078183018525340909518018576641656426730437991729896185722870435914265326991142110592728775522899174768529582021911536149654056417837882541739974708952363560641779627888921105293107244773629422630204462704985790887632265402951070546181965373260640142092068009234392866593322621688083050047113316677205195758779876111784350018546918339953006096375674340975097726750957352339844430387986808055837047492244590864785054347599497515029018433296736985553898111902203476069475738457633860064154689508631329926512822373476596601480669973983623857296133757392099621829542469673063824899506664290525224108333675168266335771803439603126590261494566205155550155951695839392937402680776429461017745531119734163936801933588823427483642596586496667410614543610674499703533551025644896768615758447439807519882873831800299017460086937894881129971022335086266517578943188368759111210248482505532150115296445729037519635491732057599689196415105454449452114961288648123396202715210324514476326416631958234245567735284817951393620084310295258141517829336799903666693655397542381181256797915007900972066323885208432921075821581292695954029027110871219723563515667291188641198726440819137081018765866639324209238637201584467201892011365031364860083743458037780017442704569103034880628055997675597764699321330439313333931111888343539596943564050193962687734212075640409805889580429911279473598835609302667337765141836303172392257968221912973459087229351023160004842092445918213426256756713772163980245132779213994272148197882114297774649423909054406558564433425116584709221043755636044718973702499605108115613501228234926434352011899322614508187314547443395370695894746629829550536881132851666543111283267174377482464383055423827218889907451265055695531894282982193966640933450762890389562106572926543941569944146813262550149140003622444430519096223993787189304146680909165865629763506323648252080485080053899156977623059057519688458285293642989931152942643200779395626777242296412900210581405785734916851228984395714436206351018331279722267729262397667888587931323811855033520961191609987970439033975992121778596947091317017168878111295758886207555158384639079131528084896972493353736119143744032584496547672875374198755406708682043792102097748432056156566553039568116935226988596210322483095547974174927679693788733331185073865224619715903930965959117534943069902862141224843778295207929278693281393906192918452967872467957931605686862298761214952151995836334360178149238862955325599862233029824874732832163057869455002633197405372885309919528808047791486660127523339965819192519473880146625428730225413443049950628863755950898948208079720946990512296838151543863789257939324143820560434082591222316769204425504516391427461796687704506011842139351456081071267752633325328001989152939387282275862153643128441887557865524143165265909405047210131634749401986179583138116883364847761333478294795750576910426939273229462164690985951194929344409025608149285221209930061486620626792216245571772306609044315979905001106504723912824056218617960451131983750922637429909032788258472406560057705828801570478584146803918223663462411733716739176138450860172007992800494463632482616745979025504354895917921471068061271911544730205912285775204157789340744311954044071789385995741440407075436676909889096471677576594726681355302868997236498536009200963937575353984232905728305161237471089547818209110024053130395418332857572922858585053718697988131055037074178699914783268287697212720708033421052113125868723719525383090680566127166072704896050291665427092551491091330386115708991697734771666329423383156874750562173299078430126848348931153844123202961319457778605067974297437033968121985284559322614024912675721833944666005956855101442970071604596064781204838450649419640856564142981765292756216911233203729723533751267260119216816256260065177280923324582032122868091336058656874175282893663941594364744309888957572745397848273065394388710554629329065276248518810060536684910248298335885222718563459192142382630059245633559117568184936790463523875685848989452685693897193614649054296181671522062397779523226726660039124002109618627773169627432915874792225095300280295273980158504208125569689685924387468127867107232044366529007474358262309122969498492417811359959259538373924727830900088413853800932878248428184362416178010853915545968047859737405469629999197837924025498625850076206594552293767396498415488727640724751086388449371018656473949554239225611901807117533751077264880940426622338885402940691628504235951855272947817709708137639980713966367925368744969552263391447973137012017735486385502402156215494495019200973008633293365002322451038042041753324505532749439084405091141003749315707232875297781128513866890923675309772106965726879742931902634890334477780384011166720234302720104762116550678316512828805889295947729806634000259357278114615640580005996223463828247781118342667131855674390763956611654884862236715416332208369878928783294460508829157737094875369909946386319970067512194286285911857820805873079870215824929100682147273979455142398070181182920625389739563721126446691721770080734216805235775795510167438915375427354818113993512692637285844031047992632948242160779813411373365123046786788565141204953470105870789083587783916288506006541113939382142884762768129441943896591220488690644322797922673732028494155829454749893463050860668258069229730259514208125253882478817161817639915918664919461766171837471584826148736869775187930125162517880627017908460473118696891158965605644755214505772201846853155474716549115644254004123844452710075735336229209663965409030659617911161720632545553284081010571361592996268025835307488948781491144851369158016135168134965759348331400072939346399635464153978659667938871507342038159193978959691118762052784274780681913239302727492438570735565190420456937263235486845229635589910951635602550050923683742865424688164588893541778498684215149584498659239655986931629335605464803635778764518054879915640901990357160955472131428597444245402528832790682626860558557495681011023290761519485851488694037691941154598242675751872468206351861854405362284134998022165105312215682830589840907195021520290169888640929796560645307049700505963438511905285457833797724177824525630764101050454740263772672330065777554736776100097291063842695082054710054688746726827138803784584861442962615853899648969506636061254485845682553084461337376675625590388637417344736027117600694778326131936388693002179455399209639446961316530587001203378706876151362893476516090041684870843472171478321060236247647328738167168693097276110007037563958984085016316465869343692034145962325189387639852695349893327737302392928352924007277977478618800921046799698593644974690616621800378346909544362319605928924233267027368205313510915891543129684420519116527530576510023152788408710265920508709753536063319873658052905827944120105088468574340131227957429967265955942332590077892269451529490778785765514616739660885331894510322665557702840728323187799377680188327581632357361306088672632294000858707892508204543354754192856521588578705694900205312250212371839806481689086762008831029531536021727320217468251333888417615554473431534980343666339415033471465618056610892374024821541581608962840084482924011016541099746496148707857327669029658567060693630416404193529720983438536622200182117057572269955268208778184840078935818927318997343062051302314899540247379470195408626380024313949017593251173433832582562637031915711045646440071821880468313980836355167392751178345306032198619546043772060310372967745680318394000375938661975641764285915111079280493771369160712631545048754461771111844014992006803138699134691315932793177540278297217480213082366651051156257658493987299426575932014744163839410381696679566238930764070042401925796764008060790262986351681366000054667960696937634772650183899754602158202849681648414893344623757665051141941412751070842924110333307422658128800444983654194512930211323809375917068539889354462310220075134101030562081863915867242262010371890150533178662162407885568846599862756259552059859548288035686337061884784182381628902266138133095850950011907894295720297245425777183322297977038624284337661432668142936114345658176986180111327384329829112102223356186431117045932881041813941691694869674481489375397953215803530763577105046060496466147447013600904083278893729385992932743744087075105926964427568362022453074797642444608219472416679221098815938212972197868151798473381107329672945911343410355675707441589941208068040940709088712120583107303884398334855222592928673053626718452069480601068146754853698361109231741419887216653205620866370462282797472558641789339994633641920611346041351504437170410550299062894654402501096069571866165095064100011925473981919205423416900992671564372473550180628722014597366967512116995612350082646089173317958127961756266027305535459428090677498056403516320888543897513396160202724114930166594350243659384962930498699221709243441371495664358019123165688670925001534682745657419482858625756631243576722934279238562962414826760065284237674469514977607419232146730156849767482339488926675927112450255734291827786505083666805021330410786511432094330907106656383227697318022021872269505951558881571845996908745953516249516732211273684625982170492209587168937052960035062415534406747249438714578599721354965274266556692279057110841310508033408216219288174043628508944308232226388087739924917071688224346838497132860182941458668902222930629760543447097901768948578186471983547158775194181436400825183772780430891249863853196529851210353165499510023471884242047252847867493784069773811994350920538395953531006457850771036336181845739395077492749247033177508123093733710818130365388054985174883273483360379448085607521096233749369670915353537971099220839952917746738856727888627911813073929486930071035774572761907696618698499317990141239506353963202201845967572404323652725408705479518006902553107278863860006573736090345307716849083716696030070541278201070042099037134310765790508827367165533768283279213424343956145940961617415341689440408588168553269189389232557135219693741027803557412993066756783534708607131247283746447006468257285290236723896307806865659040148339285957238165862100467243252880362151553353738772243587852878688617808612108333219229057102279699246670496318182292454769202143822888537059692042902575323148701794115832342310010191703488255144057540852296973949683748435033399070126281682575454856616454331455913062790614093946572573506041261560613336334609342019448148584841561850640754418785030486554322606556500197739430144433450479388277308560009884024716197614468722624654198700846737035561266365003963838199996193354721428969940842798206571760903381717496852525391515365650861837732127413026560826362152368837849554122777955503723223469108015115241634317726576892694781260911448235593545724468906528109344855156461968950167776126669986453836950060189228596324725804549316359254725439890120924501779798878467671861379923092526285307056403160868646598025567358386369283296051955458287661845344703814577409142964215595614162312487337823556234813489957161342169631014481434757407991355593389637002987100170354869967023608698468195294491002900171262081411595922245322175324100227793895946103729040513345432640568123481673338370085377557364429603549165463446194278106082628231780858763900274170601112225485592321191708971952938472668798876146578834834906038219832355253579625507798647499789383202930126209636687164888087458908792585281199131650652856525431581549703112557335633049091603810048713597527578103911889829014221200864111507376118443735267528363497135859802649994313669458550141443026696525191201256695729135392279691907451504473918504344206187381865879267576236086808993682926268536938878629660307639050646455886159574921097863677960263632429764198221903863166852575771371477990200170771132294365525311886316019982171426014044782910607152217647190295121189743205613129189700449026082204488512393120449662763514263150046852639494739960530648803185209938660223389703719893340039853968434218195439004096866188211125454897776101144250424001822539935276507763165429458472632290994687193399207701719581811233058325162366467438765366353952186781443585011442727228931257074797126044575282901047366683130608099527009304065699935481379668016302950026647474226820993945728631900745622035560610918716809260669113213245274785057042935176232455573587379505014815608128881660410508579839351199925298057414433053412760552136284459722833265143654415655636625295742222271848604037558505639198468748875724745265064039162896082642749902332301969798407311955263704354324722627521954313063827649538937460180588605122365631290689309916300490208413792994467819734713591900345987818180380604592800048731021622283459639338242266095025505634422012955390760561852065297708556602633832890938914266289305111928061195388481005804521029354738032244205146809189702695573623819440802453378139364884038939720095350212132995150934613781116614988948115122288600646625367279379448968030852041269440332577890064712110473498997609925871420833284947273307563412950319618253789755268270583852330551231576553218980158872809945033555421209790198572201836774109434519683890180669900683675204564532464437291014589871236446390541295829019158522675701400212295530562455839506109201644605418263543995233069840584570192307692351454592308298931258533552658185832091221501171326661051591377999355115732586674898185032088077378751944817876797508169195185663481541809107078174483357206211530599221565020817285154374747903439031720026560533217396163841221796439341749676455311455256746109582436342745622239950341585081347075220630457736381257319900939599880050215724514444191069993104550937072569449876118879322365016250562277045505845270127789065512889597281421603960442473603217962764689684459923721082700159593728681885848353687501468971798655882469081441207329676159436074299376913450728442313154730565344767766516679902181765697472529617287291745713620266671032294013480125456962705799125215221632294970941764229744626806091920696531556955523520230094868333826964169358308933650573144972859977335648130929284470861033064067550860051172684817422706822077063789961991847816132860119627412336398715712766793654810447537063715611954258338685789026452098539406454072374299347307389130873045597728146282856760284193713096979526230756424598101168161368115692937703568177611593421072572437415534690845978604265046335224629798411414012854284309427276049119468766582830657100266422826468037213213748537542532208545568082542552030756349753504596271353640558401494964573519597602149045387945869050144386115431414158816798014230125532214117483543450076198785971332579257797202213907940961501578320399659698765282815410561111590063939162154810921290969688535483690163175637572345008908610644847306930091603482186626075026343121621268360036708440082694243430422167873684270290155505914025266696082684601817535426739612674311811107475906342995904323665429163504382589905336566275651202546400339941595221232638347842801210427948477697903032242629010299805927975315171778252176452657763471644882216696135458395122857710368836129897623200667884103701780255231806691088309357441761782836700980172821836139404281377573741288821158555080256545847309167417261133890355296841136230908846429571822232027624237227874688762245349635163581100529944556631598242543912921738078557532848802289795161276519607006818832610019693409342020113725546597822558042652132636614561434591350964388666770989185789621672329671655542339125699327491968034283536755094498255249535053633914115092188551348459239125711054535049248695323897501526544528426432940695656549654047940196509818612397784602303301061604041119516576761893524961255658719190499195332476158863028966518688406677083023323550367493258777653166645424988723933457963706721341798968158351792360267561694578762612511483384269724075955324851608597988270338045243926801707578903294423783282680736629613872222771326038925751105075331774730842037273232744033606477265585591706306288712518212718352021070371107599754050130474476071649657583829774946050625546112453387482269237257925415318273127452611445620835378730682466044578057057474018450629261365401455530914673242697649704208153288601934061840755874832883148525095397871307502471070909860984528517625916525892271181414151179186361848408757949751412945099099269416379570132107853234764000022239363798294177025813723572443608470129316887039097726376884313106033501627055009106509142866283536553876230115200159513478668538461397347205458832409873488341702695475267016291288168037892678884141515767812673295432281921258668697888470943848735464319162642678298129225995323199193004986560567687856990620630234252422007865343379599814951170828082803120728234338961003271042998322877443575445074594158668448234289273135749755152810339606755439132801756314018456865452509074864618543357243818968682581282786062406259178509401039752802019631637257405428434687506727952447973823302603003002093876616517574657272324914972644928662227489391442089964860348372754515768595096781746298046798057285442367837560719342472867404411097779051978415607128337326859896035539165676792457719278397769161893210956945152857791388029999058438169279125520790877277106315458705559565774316590282393620722895132763020913701494479981421256781112339564014179238167385409095364912260714836898377645390729287176639654619343734847678529231609183977230992547603852017272986809189288689025559206767719391656586341570894460340957512948924912595687572555996244867440521624471016934721555085858677994430635974991808931201893217447209083816939797322018343906104352957612298654374780652958080100074512641533092182224502973839022368097309917154848837951030091034908348366218391853437308376241789173426190583880002781664886591901375209373393204874041324680049447354524755069589782936149277053081087868909133885166079882402494141659288183467238780906004749130173452958954706680519297870003808829704756355127677740091732824956583838611817107251934246752068869756151161542278473210060258368060088324017545476014009267165225745437851535943663758241977918464282618398952656874313659384883215560287853567802931688224454117701622234215498979752146502105384870502257022055099744195934448241193229702458674406591424711313508174224388949133635829551631955056135697158861319641098416908439118564992261948530598617362826180107776612467543889208355519356650327936150853208668205054012584466484620403975699471613486797639304882808470678783938849708786289351310780364839892220160188204080698169620443349806717455112141006433081720350648534064447052424671225186162648995347436733202354071809033380259609912776016753200746656132694991882754764540435441571686463291094148739538279617323852879490355531270127034276425112450599277085742797813886373068489799172000950720847632676245661103581593559747795990060912146888210651656398387096928849812759684144451854850263624725752886394448649067952302831760589294985489613741357235227647424536433236579760027046146035433679683439829872013985471471250984087630751406050518678459695111908081189087389556791342327123528626019188463146402072210167305969890522926602370294702189582249937907339737428391797841558417398388192944576051563396518214680310171697631708392632606703074211032207423505667499365356647895268017962487824946216769356360327248583128372092870293003000667292853728894845120242332349569452498893097079424066305672853886912752567959449538482611455138060325504113555000097951934198877297464852627384190047679832621233408064335509384423305229435919101054009788770593601924978652386858827352894065158912128421640258969958464010765141345443986607016519892836936750603188299829552215458847366728267038577436169947365527570561344770173286777034397814940925871609647734238827637299586849428828600316441876214240990291995411473632044317185535704034976260323763825257245649448095894151339278841435614714094293758346047265469910986752769345723737949119830946626984037068030156639001907735848366206830522409095637948914695963471983726878479576937705468908908208192946305253987473578785353875005924393024675870259367081616067919385984968183943114341859953152370571318945090355364588980850730594892476578351120936076479735718587529979624052402640863488631109980352479685854202340115608915525170901970020125496884876348592042267868124754804932682620568385120559276450161341401468287989234873856721479865220599909618493114026031711928292636950682664571854654214874134310949598039667560086692123748227142587986760069801309282218265809888705006325779960813545402412886211431284533649443025492847989497768632561413672429222158915062040031616879799511249649938666140333749457288734138652232540082603920821233854048387512332993869089312157685633040809564583886498229673672688512672288509619979450444426206833412290751547229235921254555134617027518796789972836560271468828460664107552908298221828302966840994047411658475098449514632763774058135404910754114473252279315587537196924009185616836843799386429021251909636309596983607139018457996856525389809856210603116322756605513284335099622681856968020248549781318158050918160029604386235865225794377158992906934684084083059414846685350272235044261753186822196954406330767993088435440444986451994479547670418878294358673057877324728718087971773820819695371599852299232787227549648657400117738330598458337068722456223385169750800413478481275997922162219157746128201877503851618886685112390784556065122377715178415575355177428917873737188698364663672429078068299920192471402442265875200749299897658852774818752511836962708757435174702144249883315567992939825075103535867364801062792563831687663080155409368448266327967358887852656483433781618873146072413457401995708093775665973914167179326261282212691260478594075760443391792843965692382718719551428950666984349983023118854734597294548581108056335461984941996720433413842365255533612142088435308788919635550369253218415416843816803443081892285366097882445114396662180458164488275781172317346753788809174903719519561231174952398126862649084507535337098456338681912961111320169982848404910618580307029747780457283348803135853516044351011009932030782125864653678717708278985944661263448625839917636968881093444524335006027544349630985539746521602756353197276831217356981064931347080269305332262397787209389337389774904838807882294817747136185740092422739272653840735255583580049389581711491776499145481097345959843002362516882003214350122485597469185039843520026616979168148851924671757553349258582420571173032265572841015959630708712294636901382587864581626940494019639971562127454818960048367859763528529555501971172556301310023503585231477617060814390541230043089407343385217726714146266246070628293877287501363291114838811562632692912702109501367157851044025547839827630037593210091091199509037484630711371477538933252351102494320936572323034710735146022021474204454912194137359207590911184516776423426484112300361429740580443774247327723794330393612031391249288019028496839788820777146917475271179892177961807951710256213572748871532321375526184322966864939229643592712505878627643783695997734493791513407988470661126089155696097665792683085990407841380660005437736765189972893794438386342647421605942468534373772853851051890930357359992516441497220633274342703847180097808542804164603556832997238579661363376610648232227485725886172135193374578823015975707953748487529306289819252735524714595964240802011965302833589431190961789668780363141137614725591775511110280586962347437771057313516040070982145151711463475344419574322860662141096956202061045091735215937340798370009332944047958454173281010975273856472523108170307024112144029575286569393973011906736832243890772084997906755836362292258781936248429825090294730435461697165853445140921159698089090841962276647113481587436059544868822540907162924655713393557556989662045988139860464236292094800916436700519203520377073652331806535965761829876696480359378334550111490312638296651387819230281103807170266160939604551784992003544090415375435967035346759782738714127819444319713828293151954255765439482653866887774538696404471553984444540133132537545376929674953938312816001638048232052022225439097172374686360464412801564935844459303404889941656451096285910304048437806480926926733837926658082363809892659911519583846249778008498440717060409571726140108524761125038086976185933056146464283779925296342312464017512035241588953123104372704292978035212271509680885385301903558101163498681355483465741434075697565209292725674053252847170344042971147634962342877642022062737694402442440853140789659559868648171199863102866712881736678257666141899425623493990689147743847760668081888791067707352569355686284749344755161378043734553914060175811150673746853202251249967554894264184031632856129657576980738784392004647020895358060215111557245911328873912933754232071066875503182226052922149031598220242008720031574491183114758345579180644213094162366448036756190211853874595951913181926154461788372097992837753566960300936650949808430838403630311345058277174084109340855496427498961693940864261660462803620808665475552193663951037656627404001397096122628361132812088539991503516096694146127713035327205190820462882480791480197881353201564849032744296701837998648876834909743383051130896708815918217847478511387463206346698615028929381891129887148487503428892642751958349365214199470295222327672232122356368891814046778921650768968866732090506663905932982926278441428493848663185251103799432106322093542675118621185117505104286327444992053781619344657641177978044037247251193118244294246203597710896757141124015917764832797496427559616020107340454501210613321190494641811815236564914109194741057083610080432543696651430162352203277315762106370377441581773701401079319498343114657808418646677432228712176551080319556020414651216173707408457324447072173474486578470818993283803867251427015359095554488464459869607523322786194228906726762081510541531289772967804515818513132966493395550225394000732637594332960872142617996049557384243628510155059749256042454527098215992499296957602669483220544364092965340172862911201593988435823493896110859529054141301113985094757184037142924198006081292405656972673106034917819896650204638714935916376209248617162610301471927002275572444261661979373882809936618485278654891533089502940998224232334194164538214398289635568424484377982093842238298019593900556624146475550795665085896012498125463073152846278503972224480974556294522509313945271086887333849707303757187928093870084493496870676185716672208736093926560465055259332797479736036999583691679220502290636132590036610929698793567998551766798685610723772296928341423655061058509788131964826823899393240988471245019420537244345541710916871926348951309473385973549309378358705089393734678400952426338124408165787979390918505000919055467136397281657569546508585003831668771589220247377203899780059815185511068684127830279242824332760083266345041112635868705329217129967978504842411590116124403052574571207672015424788942385873471728883593505544244135729149806498395824878625920624653039855226363976757646106702754482242155429359609855551402401318082903547313934604311650256033679709381096824475235446286429598877833683173843952313592936063393396204548860286831176767097390975039117959826748944744576797873876477962981387557552493114544794589025202961305006960572300551051234761259297440536470771897337302579817619008856677920448714990971306612765638364375505430713174836293077608852841842683314856802804888986025402271593192432668392821269987369411751547196814717464091381627317882991842111584903090925569438283521527301136586711504969736292583753632544861382994032313613742725638734046830695380663591632013474341326764871852081935467550065415432413839674358459805835288384576252316219911988489727527104936419844961317968501143895663061881159484073965547343173336296614711882271109714382416908957520566067434418646847569407211670534189318984037372151480180583328920517591750601220864535693624119346346970781934898472114479529168467808580225935411927128099141791527655221180687135286337921381204481222301548649292335064068038066588029254423774134462100767152695079055374067311436078899489540838092768103586580553624955885738343386427872806810244787833498923490534807536449478151071725100622053532181058646112375989455324710175509870913795517765977382699779240055525433985789876072878166592017422782782869938020367657475185091258373648805433124889300532597321557539423457589871300956821324875112829388728224460867163056936899062324344606823922854532380313474515724566384531188101921092288956764961386637423627475408027009311821279988227551042960692317583323266804843775640998735206034569350314742814648063584680098639485049135922729275440249470765515179727885213267472376343538407616118455582200659401836401539782523767911162077705226102256789187527320614838432285731246102103967795782951014994846255064537385188940229174002008457614333288275769842500890563391767062766637874271639328108211273997487698579825211422103365403681316812995776410617994009143370316369388588747959525829357013274293310078878286146718318334284656818730872388621445109189872810974964366823202026038947564569557690773438518624145556443642925595075993666646800409188324796862527204909563296378451603066903898221394770711017530649716347996984636831601571202903293431545262749010433339050590272511038316528259997188534471183285047726528780961069672454420930652351784682756396680247584071012188766211532891140873708136838014606405109595754735637312156537784131242042290207120825992484088704776751752946841281126329161106247000965915164231703659779241478004774504807616723869706815159064280939459756319827572149726005539626530924696438558069573223185566136667175973028911357589560912065545483924618839893289343063837061690851353742037156663402922417404222754531399878793430096893791634365723242614421330813194630663888648234211463801729404747039154501734048969477506625740271579287122138692284677737838655762953563426761200088388082783984054791881076381390502329413329717734612874105239376554454961592654372208983151965752919819410258557535033691831474640444040934606606914413289837057398927655166209897132644306140065197144559697447676889475844698111028752256294013177172303884658255968797106292641683295571827097196754777146805258312722697226241295788881177979598104109710893298423954992186734641457011481058412488130870171706527668858929774950971505385253676875526137104237414044069497978478411999082131241820606485813053447556436275801622251972335002763269167238294835560319855238662392488889508715998826121701221879962234085769146907880274878666835950639255636749790762151432205672297384671330472493847899506711164868792036385335419619696036485634710982793816373648994787396348901191781981804992307381232187264220416041414078519636236736429641901735940549480800815746834741707897856115842012902467512650299670553475758669937650459200775907826199903135149999023276111664569087244982047045714858122827409297228047117825502469624936349846140486138143487230023292561166792746039035782706555283977812735506878963540820030660318775083035142905577426928707410952078033171324820258807583613682176852573937193509625224421873775145977447422489772516991105007986766425370892717401268500668118619070193284524060871624243890741683688540727529081315567348507487644658266263462415777274462380814270285089174616477304746556017166344356349453245984949114604849881258467546285553315736323429882964696682035500780650655251077950091015133356116653143989350778653656388233257539113191273604045840593773762657677071677723435506741799774338121303623099714072461977122523960713013797158782804811844777923537234540180060113040257981555707798840741827296438826222829120068804301819569580445638707270650669733117709682912573424944288764579760084124879613651580243225537832220766736107638346827408270117752507282937357062005901103521516384657352844285586332574696384163445065702002625988175490419753303524320109723906335776958795842702362592168067465897284776328362369176982124354555083653059865849946142224112803264039942165762585127357027820310341679411327890971487260879171961948962395693340050549393619212165455558385857821551059598553549223421680553166498422779680293455812827726215545223858317073150998589874560316738298524011560686410847191926817182560934949516402023590182246156175825405175216372863774758972237980128771602330116468684805751167407511366728378394772989198045872174287707576955499187604980416776861360390027181120057176742262888645445742933806786664222953989542009307992441329936243646751017872757360588176025343646486047814714660693402615625863822190735917202996032506637976760598373115249453276027142802059485854871511832053270414232070090379735625011307151985018070698812965089945802682515202448057435802823455725663439968465419512849309582326900578619661702152272348742984043632865482826658169177422900742432183701653142814928019847867489652751590724744855800706014082705792025477849161917566812925794047814165442791883310802951053972679084248965350618145222769781312832615239604738668616585975488105695696126703433713244979689637363154520907610376301005874480827119171896107328787147099503743751490627282911993808580319449170457723834792779166744327646963217111369469761039590664802457359722368093114525181678570780180240942558619682490636812879417533559905715276412825522166180019984195777631648177648140554053380921054782575750519890697625499492294594004588559217846302585581369496096340054094220404390128225676359903244080756569380468334308869186893914573401024144097897705901863904245810695973636389812799310214912528925534802014212291318943253444368535210692929136938180003349794133428046520549615245679368597451560828144358282429972569406105119304963980500688236061624274673945520199443520804742671802893981185179327904756128958125528257967218513050333688056744778696768691941012298839279243785506703700814305980284969859421153008045677140886779426486673273997109593083352036789152944298806005960539507147752193529864451005516932728709341746094316964637870327316798313384504318689115264781962207875401921199025858684808680896338701904493971511573813633829053355807758780678675272103288875345978909335879854643905883480894490520869727428596392158668017675161467460921202918396579167719048615916932456232036204216758958998727219217355104338301086199697818382111763457784097024091496248019911116246838873784953223958669948231865879574296829275072057049000802443702854125225868743381126641139821079701130759582558792864308727527039118687605529383653169758020756527659794001387736490665530635772113921120661478976323703651453931218132107745017401635066356831426210873885864249605410754022720529855907117440447761763625068613062274664289119464496357013388614032103458060405650160529811843888540173885454545992540283222199994606334156867756765101832219370343296208803765464183275036871017125740804274741203895615072096095426697733258222201889896724747799230667323366473526451846641063228872091974907646602967550742436884339249978687712636911447883497952723588517724293020236700466836265055918167381672903383177321919348914463935634286910436090139804970823917931874588043051625405330677323379953317936443909024837793845744714322166690911587428961405464555610416644234577973437507482134646602311617728227492769853468579082477578048297132858000627882413887470465359060722519042011273353914815535572883492571594270116818809424924311854724857535846804220487245158088193498953518595829787485008914108219846997353797768933920540153817228936139939154240007247915644686306177565847162962653928617891138299381281147401384435178843505866785607237058131870552656759306034024585810651978695158966855114027398614346892758889277175155789289033884814490178578778174221920580319214387335745183905625690762682363862258719181759135854329781038285796272436083679158999244727918807958603733106915272443430445489999545575291757601308632325129431673994696698139979224338863120406694266073939218473284534069519419213461268590197111279128078085235528518566786224439341575686084433132980968396481639727329882152808930186850058329310801361111317557590163899588945031776342436411153943456064483578740577223803691968331199234965157574312173310460429693494159772570420260653135652288986005887622898285456958965118449807354552839410331289387334055514497420313473342621429875351108451239326454618913619555079147386199488687408978195707430267899198182670360213474240391032760655834713123112336854695437798091036460778905286278887444808448114357441555238448372164428972667930987441920264662678125497591758301636732409194835110465086337222583137041257228822752896975960972211253186369354893513630466191087667989151399703438314704855599025119071624426828446835383312368410852081928686533876015368073709215332809144522184394289728025580864034118671215240151336686138974386618372322868235098779026055250908468945997690581372747561181000346141091845129651816826578920982467554377855433384067428970013282958265496290249883719233423693539711184842107996240406921514063792935296633447445802620542099642832016286241547127916650019711029840206000935691209213704789049133416733672102961776745498301049612642763603885808622981046994961602268423976803243601247465642807659413966727273669603049041287503874147248077419003468840816732492598854301049869173978246943346608085488619513150566220094573173925184070057817780253394034229984229118630528212505090428422032684287742616903504752776305068516837247612490973478416818237981279974472545653894756025091120160271684755476977804718949437500316294381743694492891755020464142695402286854505692584046260450207054839238946431928204969271596006614658772298296317681847524745904376993964765811965699096248205951270175023708676625753757679548132369352475281148252879162252433642837535340711408290297688145651955974086525967327214713220462527457714368962061530700220905697781819631588623745268897695169726384976133385822627386939327124103282384842719647813473584133033513532772920874302200711752139600588980187088299287977104842240850845550316242892107283627632204813246552196559266473951971021600030087337614759260247825265597076303831988374294285446623288586952983161059011653773688588506212401999691873010641353213144303097974491340516742313632745857692770519906713280666482926353730160933388247575262501343511057323989069307201562825432744004150712192135387546379070361770138025554281904453272415199996850090626564358890347906133035048745136338122630676537118332447229131498396245484711272648593097813112371073233297530297231538086056057120571284978370067169264487645732927791432044192010489314517424021631168484643965051939092630740975414156270531125104591771819384653626418010549578578641604811222497080070731244349335292519834881250218338182682383748990196463280706609725410754754729866073656318316735744017730602912623708252679361411189413848211706029999102977104340122843948124009894008667817203920338802228992095630321572327514444933839303998885166814593963277954776247855314959753813288753572287425601399749644434268110698910443906865220337844347199372297791301205970490578978620203901114864336233067109632064601353330522992197969658263000582248084695310622833221670724991505070106159989841656383272786494339968012076658555628691688472264926167294518197714945897014876088827167977413067361506613547543125223149090077294500341980635967113545582820647681772787541465885754001902607894923735941956483527886525511009451900074540828274251764184530879760864000105766277303366303274520049785492112772495006200077880304679455697765704615204360686502624408080806777261006368673869509709777738982254971034911622707047147010981105110538562799867070722627595047625424512058949041874500739406082006281286614815829746982796449470526936112103281755693782919834044135959986479337767987211811031799710761612128141874162142798413758758958138604097812820756801611729199527485254606012083490226462651776228418884901655796816279401261380372573960479253362311646936335881151263762718653143914622287822385846471157570066338693048623156328180098610626737880983737282630690776454886636960968772423096496232151519196370100730075002563777921516194117966134037945723995187230884362342517575453723464611324488468465808513502685451989907484874567546653258515141072000526935095473409084750882232155215436702708229931853384940387006183574504031200685813109518249131558330710107289178628916213672376206073030957900443893994268098327002643855983228477290935758025777910895943010752052932227690005424804013291257046286182842238990260887877550869308240834152299998051395019858384165975573531228715169570378529904662128978269961797546070935639556290435507425915823913565713168515743052460517985190777075340183458116273249583472089870044401280312912580330822946187397314311545658952347338789501685160243062189494267062356470392906034282377071230424077323009057621798081288350166480046185462377845574122225553326752521396306574230386844665464940042864995830671288913267385612998195582706899878861960557968991619785897253940673174970081713267214013712776533521803061108962997517259158843063607417842475389712572753933158104080175004004056083976018330532095779319398600285250088413481321663932068906066743370395918800853226556342836461307473620531385274986197552173843372843451155287761535546071659366608154551972876548380861097066945912948309408844837444469960417623887220562782114224486046834334803883509234713045666103939946083704915964577761433017233281303126290671573454768258547448071528880827667378139473701148892328825297552387849387666337751748290469020640761266524939852851610196217131924620136011269487776618705180941180903188891624924061244330572795175689420653595509109563153016031961811768442446219480062185047866217975084235736344730588942003375205732264363772722217925789805213965625486522946514665807631006210859722893821897274571796606610699853664557742163609861627855510192732254303426881317138316021732274703643633688604888004433398234079575589292094730190337694862988973972598116269273107248903738078697492630226682314228992906174459746027006885144127279597668399541971302782478641584023506420414476905781385654145705671870866014910568287957617859499742538809183455901464275637123952833859119805289897867193809440646869965233140649754486198222803290478122934787490696618917196497593942317017621533639058383918793155159833071963563642750533583023291241782196224880584796509052418345108827796473954383377622894110295409747257830054278228485909387819246931636516368306349392317676971353448262946977915826353892142169177237343636156711256731450281196025010885958354955876012122851779089346807136101255874245322396506944497424152751988074803505180515724049631111659908707480348217004886709660974230423884452378612219254699571936284500382333317457083932017995656508050333787512723781448685509455411628457452217344235895873367285643806692124358660071298309231736701462785946194851891036664096851821367167460607838117144251747336937305010375451426670308940593001732626442620720619042310592108955609232431382883353663642846333756209091975581262012094193713312728778536695672656871220986357943265233511305855974357621790710002746516587410786939139226162658517451961825353065939573334600731353054013486855066967873509087847053219790311987608064779887330402767756653936239742096953262319014731161354835219859210744223350193601570407721729786193918037051221986868767520763485752233154360788190435887483911628641367371017519282971823262603035332643071590567423989255955934003823742528533832780933866686469769612527456890712021744506669274735497447801164983009668270263515778997410972761589331099502734390512576547254008437762298831854621077632017799427976952862536567234475181572369101685415677467241161410423660667100675268511270880303345290829989066526507888230571602899730613319231049636068165139607176942900731588167822206230452646819043916306375283225545739097814129624754087763004708244839239313376398914599595741810898981493575164576314255477130206522795022387719778280267515228020467809489537455581550048514177740737970402002774470112261790224562569815627972115199964762122177684087388485553768570479207822550069994672731023074151726295150220195343248412029756049601894428557657194795757402430255322023912180702497287008802915040273420296160416182766048636065256523140058281299911052001373095632543607821135625245079004410999406446010239883835320699002809831812790831963516946298024186522836629281197800893438784520926148814889127974344110041979849851260437491386251840929256604013309060396291005654263727236270948666645080255734871465366734602460269175802872765825752981827688422482351746998320662556786692276268631557017625336013236356379224882176056099476102689010593715157605360686501728553960672232982739700652999906946161636390719012933149226698393331258094712013726281187051583976289616324752780018160688643108780521408020012173232414148916882568096537393959934392572917485851212106753542855726945947074675423896506321791972535561450272729051165075024296218851371886094264351808363600914398925159992134251702943547040437612515425653237467846906122394909468345681398886333376086610413918601183759919677311077626449477542375239221292823352052468300764969539625974271281840832885585194807405748660242754663362623088562318612424635182304693807375265980951191893145364669148670716113136379053965055479470904615330312413073266246138098492711656142212157523117500534003314261052142771512450267293921279105877299313548912028202268695097977039960147639147520696884864458103236802544532223590374296186989530036626854999506222502047084298053767071094711897408184210560981381773561118953419584850692224072441076699761636766984589066770779142933314682681782012831644567445616339936729836529422736271756082063541904890949121948777329198316711089048657491349070764075937596667698673220001220306794278590157051604058531259498312238178332641594426945819401595048244910882970164194596535051722875912026401467099547445753119858518013577152443785269453231651386911638099144545859610446543852240800187110489857892640394455099960512370222656167355712219038004857121959789491225162851139234014587158510302122936175803821487570436255812483897033321579899930696814251451133108480930513461826355855570337236543920028158462068994324095120843568466360818448053163214901503655508439498915272385576876043916837754996472212752771781971764109721630077575678750814849984474931743839315245861957268922993709111202557988404133648734963163826208470710321838313432264896156237322869882294019938425685530213366369965548600559476979833922804911425122435967165344530074529687269728942789147880044830607688106385837981598805498725273740023933246329583171403189006421776921968027563733113334978831955619540399018046866414440316629868702007618888953621789423755890121062889113411386075664252286696049947894187290474683956508594469606718479588514475995731259530606777252520219774757153611760856988849420150487536960807675793168614635162986076070468218779125551296472742190687008659206265761500830858238909594721712400359285608679237220024941924758851576771953427975593874777976945009173004448136419982334581705677854720007401398628136368791988018026297521852533061851598605311348184560004535569689839386650432106522189215114007273689269574351393717916007629209565159246251835907561175067801457234026345020516189132388914742803770813127549627852165851843996581465904425617801713424888092847528980963729127606156896939257404255577348109682578550492419066768872949009118016982578502030952972584951978342253098756121163420048531469617528352339906053113349161638386468839402843583357828457833130374979426207348882476852458490382241813112723244146666912845755411328135725644000244471657195362703301120310795009663534712121429051929054481050665796255961793143731440803698292595315133929890667733540749940225535197440356629118911089416416856411212440307437218465532395282254007114091638738964142328387277672091896685798501762760975599817307822026275678292481365266579220719847614617635087737163709735594748122073365776966116282710941592566729521425116645817108479461718618344565045044347079985425637504773139221136794310702553821617668726235896502447612181770002037385200080874027893549828824262150991072849915654148123336201734638972800915593547092781185210715953198683121435014071739800997128980536254401587633345457938811024643281274420202087808660992643012209481436292496005675640468191290832763535994069413468667393597008257830900862432184458943507205612258787475809398643165511063215699742212843779590828936614069844133239660070580345491371902718964758947969276784281498913583434464693304860431885981313619342235097446175461494259213705553863033208879250533793462790189020538903708070709068017461073793736065849040134269429047233559565619514026993532762398856789316127080350971857879527178467268939064349628423980845226976168206509480748980186987970108034756609605775747320329976751793605334452371192810424424709599982511581230386805590704916092692061872219405620781565727858915491209256256491889832121021540512822286851952393469852365367609666970016518983376996300278352500795828548057975225378904401941521607236368166896322418981230014556126327765557044698796018957504663475800099505612216759330891794314896650262188198495556982148191051204049468150678856656933311556136383082254243555795609409062097067290006522115019915962196452651860749410354277606796561473084581146891713066390552243230396861947654287229223296541986399716345301435974551247082639415994275900968932805904658865009189297248924094427619888675357425497902601811708514201070543836373777517721263377056767267034678457350498648761966266972430733390969361945289742111651243777329603992320072709565678704592006925912938497297150134812915818062429740937643754117152533165960423714310228071674451816031868205468999024487202522849940126671817218964688515382461716925732226565110276805089029034348622240794024175303598704431838596940573289295375383235512592752672577781701330279426325578467639981514017771017529867635830359494476657828690488287917649163626096704770199751329792854870986328028813848294319261121267807341991119917430693973167035342928251785129992269082529985869943579572891165525571123319972943341956280052807680636318126691481921356189043130253558851085589847176953238889658306037729690799543598449607029060375632459700200616512806751582748347470022685680036073992414084266629228710063922007027633982181020412953580779807660810667574412708983267734942666434576574031191686642962917915825665769537815902469062428159058780501280597218500929156849745949640212510200844840694208543558452405973878934350802490610080594249267418631368192469952865574107204550233445853877531574010392957593578403473449803210879299905948773110871470160413358883012803757169931710338028602271939601268391302790646083181342857643664458110273243981697435850435404072941739237726901029864651116020629184891236897317092171079880212461537650404648602661792758232397971412499034930284343540539154800261592111915182208499241865468222022662737313061443841933679278292141304071791200404046309348152863737096156990746714895362340850078674743986234078447220676249718176773383646337879100920991598956253748728398094922669930775301561910722565004308662370356603829111069894028447331940900373227432629833775285832155428853711516496285359599220728023206465519732497034599022490403757278025585357171891321459652812751878102043391635024684559110032801864390380676843250126043839719351512565559547765669149055843533924030709398200551427793405754443263481594225112886657525119219003280201115131596743811113940971813576401295890904654017719573882358864068767290487145005254982520443971359409110373761086860237611721927750023947633676776444105313563903967547454160890473985455270026965838757900671200507244464622383775347749841956480896345147058942651574573207541601438193202468567769245526365992998221924550252412071849880328676319744577353703889667771455680634594323537792936482464697094908465497979669619154886001775663503194179721226067274331441548325126226322701918086070382119642326915637915186034751478088553566132999836063020833351368806886025962497831677999866607770204302252003334823222690375686685665803173506997723223069245538271440301312242182208602107287410252503417287254066096545853252037309291210184364226966551465459942935825991862389577985122529272469361949579772165591653074029743774863071709666770687149489979345673508419053832645433310353256079508351133698415939443738190511699819965268712735805139227523729873237110150283087824040128750641981493943063993143498004332188872788056923064710210700723113945496257767267872420420888884783060159992058762784535114189323817159412199530164391144635226649315391594113361300522253642921527022201075603004856348270370461337505370157929349769525942755880834063372296315439949619705701815308310202316342871981393853673075490242775934113910046107655693883919845657689893391640636751593361122699817589954242374537347330610945892397270997707646885393702374408099713935088117580151713990042733632450248172049422130316334555529006496292143519960247062509835907428329062332272971256820934337521224377090531455597657497726670503161300598765420953734161783578064275922979791621111721161158314159234230522951908851081570668711037086557833761851090099896550747047771716151913814474164060441678267884081860553428302457160796488709734566547811658453203695773194822160605365304560902360810088826923555928762820470309632571272630320843320762597188803212834452658074731486980337773629197808341307887353687888523512925802046464796985147807046082985154641033320232204320491308006809795124109832688980490503311226024258643743441125356916754201042534217787609387162041650068086224188256409307082735219845830542680712415647278969826641151524559628515082276890059512587197503995854918121076341947338943589176479006173391716559739344396504697087724107443534964720115017567249699625991629638826110291068501647586259605354296950138151264046954255624614030437177548589837540341460708216950054596282383858630899976816858633311239257107986072095705663486783022471621512417827532135237149227117975891790429079919133471006100984214823397921377614996809579318407052277246293202395574288326252515629677186135738612337596399037675819118465882357806441809547098914849593046156860342831108479255374978337224559733105206231527211497122815181359544288273534375730775688664233759671492606589215929265381500045073985987734412079787927014887033284671793976280225138683293531404262056334400604324444910099416419888958606354797479241848119821772262517321259210951836991424775939192391730462842972284228426650812010150360415284913744266053988560793239062216793580259982101099667781206076271152320585626037927512412782932630070707082375771299514428531780102726771682546736736294361958031163915618040670561733516418653556514792580213501615566581934760360631651082432857887364978324070216973759247590988888753839025987104122284464934066542645103092029739697152250195589115662643355141588026223840102029547144534767272207781661589936942551195447480882071853223080670724908522396150964974823622599194159860752116130991205100736439204220456865089811718091268392116020829290895059885831080438703754544037231980975506440392939094094731282074228715521762167050072702464032922049089884240171918481445973639468718703970225252173722729042597545455683331792305412763089699049003582445289315962595152939192087342574549335015042982302935761602971872527185595226936506202787976781558748409844688624881828064917094477011639764081988545094465030139419714568973064253724936677686376191363634602343651896632620200808841933910960109058150445610689910385214228889778627034289774829678796251976668808096824327525659156568392434853946485572184137473494731134926711452952777453071608441069288593403160213219598196103345128632675037557775967349297749685188526663181927929126308524918337542452853477579949280546690217186716493574446254838665206844054898743975694415856199869583967870636490993510401361294477075835376093122899249654980163580657965811996869376609698092937805394826459103975469299086895141425488822640723282101488213944289404565424356528458565464569794070164463406868907176946925632811156118611892139001172687721939453439851038243895008272352832607159063670036129341797383380120084380051504994914925848066338743784998812464641012864869122030811604136532952688009726506189166847318767288835469806416886118084840341032410044308563158191571207911660085627512916140265626038305899211980950486746958977557154329389086889574358544467037049993698555083103707221396700582705619640550176710367089555856457046796471431406467614618465864157592939160244402162975565488245304317762951784828183302983577146479448462368821885797833080725708511062270568929670672558452475934125685546642814479353005624681967389935460225005474623356913473614297033733255470987705706158193725201354871558539125569245150978254302302781719053044106511571062282082253757094351880872513035320585748601131410947474829511754636476377284060462762456483275669525998179511775583037615680812884110038078748099875444655205184210419147437897096076506888092135071749805751404342966346787296365688118686739076752062833408715284836705219886459858418871261208795490623894664955369099100327111992537927479466865590530308059382316834449595130437759652157965331024203710639433661616535151725102020790113409927321706034059472983276446702126609412812611458495277521643629126019178739801007651003896844320541996390518747089785254207721867452192591177023742328885455813742151334885935228746359842387267325973227823626576029984621150051810403551020049473674193227868084627175758186539453687465104524307293459332699622464483589714779386717431062551652038140026052184610492457274729066812928092151336549318942711616127856789634174540888284735362916201854054875410713009477673892401023057156642666929210607835013074661194750604905416004258527694456932679027133061557557130425259199622963944226734218914904740656580957096911755053590512575157606633274008166021401218697378719541525069471142118729472418569907425554649364190083787420046173473633214712361159008589539141734443279534636499938722196014508501015523814938905558094653554192898240895856396439294457377201299494372472281479695635120167202585770318624513483396253662387546980025046698757641971032170913649767734943677127980413771083741493209024232501155555988648676445108486268303134568919996683397513883760173139240236351775300362783919214371121454959344553471901360427605299847069158689293107027069713454997060230790619491093628635363978852541554996153942710114147147049176642864062750967696402981836267946243677292369110882800082412718960695578286614677716131582570481132364333258832659521726493785246353414275789323198433955851504276870027658201250038681462888230475471776195171405709223567727970442741915651956299421013563735410914028558735474961231868571560564466984796659669877210452161661532254439472077507557132295823082666532134615089897724953255800798865011163606663725478276578631488293351715541340355289630528497727784533878805090313521035072246646375535097539873130944525370269421637016934524316413424469040790978593759555244505496708207698380379635576222622867397927205753327255988461774333459672470636373264594521502370877352941528836629093259897984079802285040508615917774590743001861633322003745818507782031076959999931072934752953415280712836355185946336830652082276224850738313214041966770665457327700135876767375391412163384232777964570378700909968930717718854873666097126824863230276781856055608930466047216135542975773606031639067574736995730810801523978990415527382380245214250492323574626369446819127149102717600046034248521197218874916551509591058760007912768434037828101834229856273838257905432960846286628828547851909338937156667165494263124156250443576455860132170729533380056187266973465271346688542101190844271176196188540192711788352530115811679753792533194039256152351801417942721149743843144621683756431791479472843008363287649165063593141556340078735117188043035595610644369947554018470222152778884062071919547031007028675549640340023099511072931562135533101133359474527659680417613753178953962443531365393252799073389716113208840973501211512817823137881846255437852464585910326619605383477430932642196866741728514181767929325023935276077292785951042402081377024191233051824329320071695625630842392896259158259400606254446363222269399098447458730376027311199967757952448629623345948392735856002506063142190491035021504342566751434479691233633757302749451620146404734083865242922787302988943628071884004180411445034271316153952274821013403231559087300805509548431710388511280903544777573831284862339490338518686806694814500641199036894555608264932483483456440636219193423278706264810851536220722153546879935828875257189045968029230141385242779413297383991133157723902320733223644554010357290447705276944605658223738357721478179678555600343815790208410830146228475223634619044723798187495242769578250021323737349257807229411637635661657909332336966626465167711260600677741379928133434280524128228086345574613652338977843359892755799998976549242892453024893523906892098996765759580182873160638587585429520436152223517191715106454692700051907115577248884763371184547936152294369365374847625193888757082854710102422713451868122779279010060413778395090322746393599993069295964586253266218229003933999865093794575064703794411467583518754587108228348291643853615456039301703811912882452889187162406717161365267612992222326642972707905579958502091366204542755981769972615205978697731565543536125876966426245168431612547328937396503212967234219830407361641243312628116771914760711646241622911670220327174779987504248683345847000341675918243842243707635307182616573924136987063153044472625565076850488624901649261639721084698194034597703646256863942356283033803687964527856370727519016717754567866768970268540135173705995343758681126983965155261203690651242996685795942151173366235927200521238980001741338043339412651519934148834478925382059625755960571964405751793882156514900305731932786939177191014353811350967034234838621573482996001114087840223024954510079139936177720921532133722704488513257694435195891411230862503354772635070163471081895545310681560332851483930874087289746020062347961325578961019465853487260986540148478850183234158096001166331118794145097944957012820031501419541051114816588968959689914180199172651067306318131768726918433511625220775382967101947512087811552956961546833871455370125290953054722761661412241339754469517317061180459209043854155753772961771658963521801941174808935382880385787481758930476709329760460494448521726621660085979922867514988384600112985124776748794395426655001501208960498366803138440488788509708648850923722068791662877791782127605795023316451832741244900523746195662289778091271749941711986177678308703500547416417083716256000085621003643213403595592989697781017633076821200893516196650565025153321237226809097115887705123969761547855877122004195839702937295539543492578773226955351136773166147776656384123115091827334523504429699184321426080049043247295242211842437335959524238239940373996419123221313032408746458622688937706046176147075893181616521093836977759248889924939958172294898988411259838115594803284801482450870890538278110353885469014082462424914621814300492266819137275489771280126287876863266409800295303045867745255578486919940893403358853203099253206619108035995435024810755773724632427607834399442393678164524428819613879458622961308656557923282617499047700684312862663883944429876756951432067539549290783530203586095486072361446906705658083569985778723828021287234692680034965010707273333114151576336596621529822912816836911817885411322400827838092462898579402399550652037724167865619387773007140882415405026905684075133460776464718624604642651095050859001994484301700761271871345811251071357812898696463769165184293207311269782310227199788101569457920881905637878242457476383032061782772584882893772059148147966196339343993905026309955243606985679250129531687282361771411192292153360891612100822885193181167559390664265606000526282758332085888812912860391664103100637605639412698703424713129104063887181506692660160892119181405936818125980150970424965536313678567167894335126314210235842425627735841704165395898112488848106898488757150546450174032804138171055217426111998754740617371166854658267362220231401183817178113433959325598918715199847801906463805106222473238349364194998360109861505069176533518488985923089802304374701077929335800777516031805316590212964503415970439798867749362795222207939175289823341607906427233273745719056550846106860077460272644368301593243570873357680166894540900299482799834118760659989993444162576815729525578770191433470522468026055493415275796250674407193637312679305374510566369995704084685017765178339077769879202504417860916560931479009973396691082380034605520325122704529492249540810904621928498622693983788941197436803917744628603081043803288802321327135907915706145462841752315708290657987882216536658580742395928980320190768022710294734454178635190075229248095591103161663794658706803732994695098529871859443700937156806321135381628046078888392695616311171419196724421193291031933988857359357776877823400951792691917340643445802244658690559828470200596798480215773872707455817421780960657192237324387637389588464886320841190934217632170697032143898520970925425680201164663448333599696022818840152289720439868636944421016143289192634899157078715808433356073084087024292908898976625818222064468094488605007546966627492455753456947874570424552837839424913674600132880169352890591435727215341571356544524681784444314889988149583569729747215145075274984469023256572819731065084691343360761775151503272156636882440736548590568761044576509692540234639948415599025892640653833996007124045024397921241015072893745122371149406523016215770335965444550035180497534549032687236142932678355290460077944151598323178262747561035989334465830433106960663920432811953488709527919033383328135700643004039636897184696138519271435964547223454147519697388962169125506980684134567287525144502610232350252970407825818897355003559647410164015758602923631738321018041464103676061486184674130934187475758686760213329835628235169977602440738705749432256951507109984470849361984345650360411749641063047783390051597597111830851066170601753632251530715421143975304469698698079424504730342928963596599374400706800062580575975361311307183235698480879263958757956882779291182631586340245873290320060748674762305969931196226839335881465741842057818912998349939115053756652753815204766872372414196903904836901197473980462699706195022570725837733595402944035632711125623425630330306055091081147079129721108418549037851181770133488167811198481426439178709862162583851973138241072848455872344654914561929301008349308380188825380313910552271489614593009683076340286718736759878481665936377918795642409054537263145655120557935555379249076033102817929881800224266092343910201839950709891454079999174968808949009596936690071072546891030307868911346103713226878967802774769299494646939657020967254443305580994098211766224773304442483350386895162947333331856330993185423828324139455100873667561589827386918049484321515627985906292741736588977273532599687733446228910904824356528933234169799718506576586376074440873446850722521509074700268436635217405559263949920809987551152182221918317291703296608993084790549617235208297114155824407536251182172455724361094645107620110644380370518206226122242811736589392138529031033997840936761070108515467867940964321729630970644656163989971991809878692695725015467899514950337315371850412781540547151857403327337541012680511614183169506041854279043254900728353166154625799522800150637988993504688022092884791116718979284718678070820967495531788967933184721206221405462594608690537165229020368412107799528483387761122532870893592053730196077031060122265611216669874198600637272115791008118908929238489643306265044642305531883186642621406697054930927743029829433444120722473495166409485411874944813927776090671854036311655364423168158050647839925432028055585282993270730860445644702275214398213487448819592116913811367927674392984694264679379809244676215986371116140563453050498431725770054950578754771725098563544198678462011615465577407082322682468309795338203802131942772636277870466209926368803531773528552800017911468580615426112989273977597418279007637972847378103568374528209702233452743492668131854032256806225367105089440993144844842953997453766863626429853952798090234320035297703475719592398609009308299322117628853661364551345149501320460958489102764855743457208158945023896685193697022493551645285416285451283132721674873767136036261345812815345268166233151121939905591908789017260771626009195213501048268192862304710967736986692082662621221707514119133062041341512900709389671065705577188105716561511520601337115129597130016823162294154413357455194076962220158256993380930689046871520947566592502924517640076345700032204782350685102476055010721728148161765879670301509651713778386881823381261944241837570170581720886215199229158701160752513279564444570921029783527794787611353977572836426199625551250550067791049180911557409907552869969712709370814220759184274494807655765141782370119631763592636999161450055187363469534412062645624948360727536768846341290101567982249984628094743999912987236118938127138920921063049968126993495063907254878493698023970864556765826552150605217819838905630971559709232414260117493112091775763376727266149018202542988351299101181493912688441325509382374691285765697812381205910192026692909665925768859600747212390483394116963612640555772068053919601387604215486430106733771628870266391918613905417247835599178567095011393767009067614783655820730071306966764318092360151470007345894677228629872120419625790004411745373381453342295576014315900128795019495829828556493115513758148335658514228220578308893218905859955150790181508101826422269659524644470124446218455472843878914922992654584652578784686946766246755772065258699071659406994927912826926949115373252010134512395796497308866893447892047367111899027368629133898289560497204023190915019660087083775586553546906967311983098307731468222792488578910949128263507337442854691865802323113197631688162914331016209706248660221832862697743389367991206281602693993251591563433376099259528046963609800827869332390325569964725370169593934485142745384286656321774862636095666954304731438747612499749741448378842767720959744496519680933867331042201108317762674008173719316511996205160252509966515444608272203563533182123361487640156561007710265365385877582495218054383365999880086845775983580024121476703224736883228495085752163905793782104933012592482280414556283631292073581362828294960596559065262603225063598124833012283496437057815687041897531816828776321017863766487420013676419946420811004821933681481035995315393792764375279809962792135513609723265307405324484322645375010514791235525243816526060884679155246943929860469497209707711435770555856818883672382289714617465480196719536341969598399970755980432165786300917648122875459885375921326981476323527933634991468388377853241818392350945645533510471373748812583064462423942182543052385406332598086933286365182230427587674328474956758482488550456183803226205890917656886639461212831133925948254668139164613888569166852683898946178488470416524723970571126795383070403312420128217456826439822456313738593322037304915679883898140837429936864907273558995401690232293577163098233184063619041763390046863533421916721234824447383943726554230925027841219298839993377110520001733075014298235727558397650518551457702795525226462641651171134730570997696325175231991467039781809348837263165593874669977181673092759348383454071497947361788922407279319260919039799574638694187172892636546361523219205717805924502276746009257875433822495410134082340825993930268162158581555483644399231471659034221105783672046316876765033010787477979614141967351623828910822615305874810352440260530719465305935097475066014909693992597426819243438084288995480670351447355906083519074685305559796369076636217082698869202077207385682875617452303491474785515986085001267851791662728932542122008459367897623581362272751239543167716097536079988751667236061233835455903851390682389906094814835401471541814132242377402952765709936540678876683758570591053725060810286234225842024324093708561279015105687729320746969453595629481661073547880051081562208181136038951694175681168262063806586203903561942600165700813244778375118447701185814143443723103282493088618151956709499885183709290595766737114779387166670304279466190366202742092863408633838291199131168900732350991276215613040880686783284221601385747616466166960046200025059055600107598119004087385365826773775760937091356505719281672103391091460768288568961855373174661725015271406557641609577755473926536668059270249594972905251363916205927905378000692607431891650877941248177368318758644293978677138085445916426835384860134885354978588054017142809490510177266415206391872610536692462404141211482145981202461750004343640785652695046926775015008705737465047585394271097197260431977951696791790753829693584786858510689970355721407826723488026088628943315788348376105359246638812882769224265503255063027680246887404394430619077406019148230483051256417051746359098074267669232668649012091398601348087157388240857743598447125875085374485412775711663173288357842563766118417191193294378167957495096478381742044808089940302419387284387574942610683562061401433249699143465631203445705966580299392549666434809740348128575208265717725531563660093255915709352751187954538106042399193931276968719037301438041595157519418193880290976664193394261469533883146642472684683706451762062271592115653218434121523332870710253893682078856439239318685843233880441265479659443888367474751977543720708123583980599881647494118016696966560130099233969977695575614815299260964143126621263055945105538649966238093034139010862648852566362807361530772995414389361953336643381416448756557292420805914009926677789012793454691154695805926351775271164308242022785660673555297180484621805729902312878738193861742992940126646758581238406660443605426451557180634350612066775167304076908985972566942605944012849620695649090184104930766465942300639506145009316674120329323596065814803305663174879970387021092458884288197978382375026703629527537600047269007701552350806855343619579532143294309047984682526397606420122270486473038323074300603167982112479706859449559553129865806101042523103405944463144011342632075727566023782845898166179694252032089530454203735482823394546009046859941417851134639676195587109884599897410699056680581273422714364025512313997916285154122127871764456674668658259930819245453765256052104114790592966054396384098084444910394673298938533831863178612540675425708311395384623804635588440014576350862762238199358386862484111790874861562626659640815177926976520810750636382504683919102128571034800089904055638040410854722845933112504480847747325987754889720853119461511745136779802781067939130861758433562720444950400455103740228016237774320980797368422037542354247501829953412713421339034472355691143925636312303037948461628448170289511420875604164513983119723370402242814902226776920393892339118582355234932721530810780060698671984384809530317345627427731318594120607897899374794344126123565671112307757410423335926958855726463530670551887578884309676180259235229880386205293863250444359726197421371483471993644656906739793654447977242193789586623151479494312005938778084622701769429569065517454279966277208214997847644640390052328733981389313154895430710409677448046779401508759735293435813788709434267453365415360659890651678222689487037820003369802992430625872306041735576107078886600565388335732092683165529584480633917718343743624019714759616512346837855140602196434767084481695605344936105397965487607014977765182354539043434397031145932763884970704496663331321108343484370366733184725983075390418218036678452933720431058579847367554410386754595267254969729603312941794463539379129337072813960709310864047539079563699557056792572481320428475639995103836880917921209209466081245581127630171487770272355811914324585172052952192699372776903706299611080681000878926847039859457835884225181456329661645957158453906722827942449091991704283437188999353406377335975436501137852573104683856471051538158543501166900720363647072861987066546529824157072170701779513566391093524498616120260591335700630953304766822931967243438725626199296766334999460682739050937739239685886383072398806274751388675066404106694845119178547285765889518213220842644810690414940506894220884426483372597649092204936142675538974213393600449468960168892874570428705086674391881248063550615964296197551158576566182273607118519929974851362927497942567479465129113115550425344352319540767910110008133990192471981260127276373142998507725862854373769383665648843303448457337671066947075464491539017428013236150746032384647434466924495887178491377943025102840297273988529412476160245827403285437491598964396922329457049497669174180201289659016219726127696056053835018533818627091149703829710852844276639756566797802768784471569951974540181506181883979638373231267052049477040066876081184544524291824249708053078678652872090528047175633235502738411227947482219156624468814327458717137561237595441124143798340614814610699429758059927248169037279458959668883581886383300579824448210781520238470445651683745207399789394088579808548253335366828446637788920521700834033132777586652815488289419125449440796423682956777692293021284038032236476520635282790840420379150875384087139128424586304091511897876266010860355390351267512495614222841439446332361387141490360392032833845371871689449709938571464946366722873564828548839254864102949559586489771172841851291691900130077371666049088256957252893627762889720868850418518702206828295529202791525311950574060406662600119221019403180402951035578123228469446419021514792677560835683220153540530448904815559024752710502380719105598843659172792799088718480092105955786914026651925541174763915493941809917250983480740120434761929605416797098559818479165943028348259874248899376348823989819461072734461026093074316073888503972265017503888209842578144660896174000022084117212375251451273155973467524804084577788411600144423407570101253618626037303912586517300191161463798337435731341534771912277996512926943668777332344357264867410738239590927461940444009638958800034205696190702048902091175897508166766311906848933490315416482684185039813133220282732145733899014503937962910589636224821690289575300993598455214862184693489524276613319157344735431229305838129044051072936301103803058771230042072285194783889242233910561804842758598765450745095802866737675872198883217306416211669094394063968342221718908958000700679256011519623465257430232824499009098161342228242167699737091760360953563339549885578185558891689888105337681871554631986420274820790695169180740011063453931990971066102758661086489705519631277828156613540388981562969232160592986602088879292023290508248139034668236285283661586709116269973499025000172455745030806774171899240124280479071573983158526396250698730284184862762918977707957116841230640497373123275568228795194349509751599607910093414029852995490065816768281740575208399692102073665515223514370164177602820929021367997937329624823342016090776754866826295988174195596175666287687091658536884227924284404686871444696488811803722052342620968173944091488804957468794443728330167424743686818565236783760419946800263561119717970024771519618622396814387689191497197761040130165822721770680070153601377935401671032116519803016164313604904474182707931660751890373684739392066208206018567015611170282453134744757516904006054008882119918022170346114252168189410901223110824409499182924559256285622683289687737133219484063030815232228171632673615748719917608790667667950943056414119322252711820575823067444845113779470236624446217574039772055498347001821852930278972611086634763639525680341273227493143224822498431293798242897501823370726783888292857086078150893739750690982541098650475887100157482083366098579900363410601014817995475743348222449892828982113926248017052522670194351178911676102988376930279078395117705918040668568001436907391219130171980324933066311705764584794722075397807190523943847352383875711504234407479280999630276584673167381884675986160056064162859099770722655149187020753509039649488100556711505838789255927726542211437143672585196747129768900980661004942339003699166004667578150143449584454416318233081523662606727690148540434853853957294825020918424397626256819023247998742246255289402780382868353428503626339627577209025102676400977924241772475102023965244803111411587958431373644956489985089247915106216519464188719259221457876823309248726618568740571211868305573357315295742973065340802895484187279266251101848380496620828266742639190315908995858061326234744662872332629416014014876867068120907005630875389408923394875804597542458172691535030069469531111497314804360191041486979678066589363424996405049778660937757737104851009487804213520535397005734198814941771022091584636819339207376130034722174861107662513982854920316602554062073171962691924614158547131554381276703979661400514816741349781378029050309826314641765965636557137165327095621703563451434541599792380183138994352447951898339279686912345503780080471772308822749205488926936118504776842557341746357076252748195506629434818409366242598774066369452095340140190824349023147002187550878412938785673635503286876061092801779631686933075682122917145410430535911370126291624471046311543479395908202701123327495218956118835340413698358742206988417335817668965886707823530577129755327738250208337356919793077778231323224433174192662187582237993971638401774661810926593576271893773938091548318541723982308112778567353361601674106399402248250512290358498110515991787801002159543097936087671708527979559035913319209279606773554404928604576876778692748255565972303220178933033060915886424212881476984602645081020120628106858777598377210898426130431518591446142153519216691159682672193350984718343950298417468479270735366207515384237761380547329354787733617577111952282303636576357339256840748911266303581718024704710816178422078581881535383385145037142414175235519606308346806722938590060785306339026107963618347910781072265556993070310531909406823198657686708482762639442541664931838456059392745041555328135424609221801356293084780943931041885506879163925688859088890416146550310863679810351275634805143028664498351243757877314099796320546393397446370480859921980571373713809291708975907490909129148320551246763183555105349995588920935597690854537981148388563740305287469292665961705569841041711353270934738823088375038994795809077181137119746112283683434014305327549507895479346754519148756636099703111623700865861843476598172718139074305974632482270824972312289224417331100310769078390277556631273427595307833097620614705132251249843185458326662095416873423185759878377959702926217926605378537182347054785461448080737105422330551145723571754216330426710223805256708503783782194936780080355461541473392058406861055814356677322245167151718289820959597761334962525737367652114124199918477447076470122157594739711871221937428926969110091988844601971829580436932940985317070821089791843679720572415886886262634480754017184273942711968293847824312334030641379777853934182032271741138377550646697368419592532041146761684429307337203436135194419863255492671710608293205997499754080602159011307071897485544335796770216083783802081541706795257677751389086502377290676529800456255839769404045860243789470825254872832893585080805782436863156708814737393059964515659748172712851071406958401510663531364859863537890614307726920866956748937739577747063326098314253251845051949257839638979885517052097492484224430732304061606231775746574587067049987864689637660099566809843916078112610668650680848376343452716421375186083589479598456850305194289325240294178539972398788743690567319052646345846182834305416959168463217287626250906456291177881526418963447098880913625978747544767831636931194801085082016713313954063334960087620835672935553902985292863053028467771159592383951461790778063646014679769820804640907669444479449576600514670093826155693550231776487096469706567843136865453317394008256484654573358454502345390950028940984890611089776357955365664729573785845893512915320751542311178194862896920563716458764711849890214453155653079515580711067428906460617515189368196810791662964364780016073046809811959483414966371600114263989113139645854380141509522579784075422307954952318862629789657376086462813651043036559915657116701330114975203012197455169540543146424078734741454284922938957781146903974784877711549038802771532241215793350786863792247907369026363421348205345359590937883216542281964279731541046801943984499384526777659116797197157774320392839783201927673873840424101177341404189323072892483950287980575015595578996229984944768659444281252960544396031622842372950309968107696935352910784674748094557214473784352042782692926884659160889556101240637606900890859233966021923006484669705725176004353599565756328092565355471150735203955316910046573548386995735125718469479841742842392886710663119229608995944122557616999586593440165937647848340547098926514143592028450880908278524814102412934867726056548507371052869844949395502535632044349314274779174267686671495752050970329433041212032040689123720340233282213490525125761302431014716931157091379588463577453439079009389289002476391583274166167071911351930335197668115211377689604293752003247870306689367237030612015724117608754282397504907974524274652378718916890969632777839781896784312447943386543739988709468206122390082467276870294256974845720099408584199968178852707848503867724260890870037546678702266093534147189478653936638065205967198093079049605747457565546974903611919128982489253731859736028054271933304085454269073275999215178303018783097175131464094499542294148940267211810512123709284629840433369611227643188301684131229258745133009378753036280287808049808061781965083032846710465601869740665418928395809601123245690719823628432715950859028016542099432923019250766676466499079959009268608989596692566447605825230544157283862673639301551266998707997827363857858658117367941269713463165152642260795577791995322904399819239637199829015892205794522504745544563515184754779661343954970762599764862155821175235689441242719095517090074926996634274454061847382483412385223998737806579735369163536899134517420323858651541116125326095375710120663014845762279970473698365766693594803182953219867662790406794394103873502315950625678413987427950423597570007862639492873112508280035736294345368360820077849515505882774850529240347704496428550682088978128045057782887833108312752699738736546268169884522222808261469732122252286366884761020235287960927005317707935745897369953675890517718367188762065304237604515752739824555932182669588635130917806871908096309340582824211908331058987962262066547956537082731618765460648258313589227311449388805703368287387494798289934272289939335082655878539312689066942575342783152225779020941825102598855463272553825167419913785196150462717811907389541859239176759737258492648674236732740746582680108402025735599970723764830134280573524617029976475994530271483207825930369783590573332176718645962723459196878901556022736946684899667593794278518036257662579362815221519015216888963286063361476650990273374327156013111300455705692575411800742736510421914929496927124888902246863372822287434511113472030296140429016971844969667139962518662508760926032831704375953304606617291340790269336442941809243892501467688495214341075217223771071030305595849734125315204836163402744978873376085006879175421384604842950944694542080696745380737239680066818097466367908596978202233800152885441964982440026975062205394029439499751630671482059059985922444931868504582999642203515551443257833675070111553789534117378402773502891636156792961426888329293958998904558297527587087070841351380643113672322925423095269625005426417712124368451202285381402642417096995177802699790557283336942742816393028744846694885405414056424510372088358695598500021601799878764663904276793855917540704204510012993376067047111333532379661639740137131188696434491818611942395373745183798250301483930759018886181982266551195611969236769701576940506991622869501084594814349777853118202457109351450990359554664853411932154690858461878478469943168461331945268992002387320617081319442356340555837993408635380062644374482698279502499202298417137434322937016083706728269943235913142728102544721350246960305354456182203821169566339074453235998554210315655882478359923026746409632826303877562200331745942552234999223279903811874306374016005429539927113701935346256133394756536236181591044389813019310790361119192808533437135004979303123858038980636998558880132122953327315779818643146682150631082315380862909047736872936254764360173033846639670844051772480438934022077689204092317375775627514283176043747098651621825895378572832250159939798670458206889183284334416467313226956696513727088334875539845657826270955639463300830030707287120861326627796171386397948043449730667069632079617393246573826989790042560933890050883253577556505787398701412888097804379643635159207870895094344500702810538364427297408996666694928752751884696889236008742606965668420574840002607738316205807440224163205835816745958365472247877417805210945797938981811311207207499543693633135548482500953246579543653248168417711567098420492895627838848134175917585565949197399279742908794373865046303121849044742368331952774168710900408712929768365475611217586207590132888930016554489315897450762344653501593189712088451784673863397342809508249679723513227808975176677487558389860699124673472454505275919743324050883634876999676649502520887348409878323481735283177499742087139122679408645624564755055252017083858045323096918122851122229725022202257921362665992145582407009727457128529930994608737621884305179722865502245245288365397151833353833818515150983825140952435134442841089207271083279380168284260669627577285257110059868990914201276332597441598902644293757469341067588961425087026871584766551563897806023457126424854579691527345121202941455198294964500856717040323001700625458478885899438730121177741805041994498953663266717654620259300934503843392706373107899877336127728858256689677384329457956457460991805480245205605826035571614722940383961671395699416533996150498822753394304852614093106016872227900610081958824194665272816639424258848495440767083175563615539425438332242139050346743400844791438796201674556779980717253641514025660730244441289421249327113493400358171918378349035085730425577316079690227704382740824372545474842096043300333636546505207252358314625815040325667753098485517541026376464930517468991654380068229091687292785383388243234791817729845935185110849309843071526678678214241913186401752876337194714112928406093259635798953252303163684247867823799851378467719508938500398789764406139951182192112278317442411182930049707106092603113114790639152691844768826683824912622789334344816890174082226903963378945000048610144081779887455408347681854059703818209386349695100008715128602189955024476715844215465336771939021990975662033286615029068182996840621311037326882571019560155156263370034893908929230397873239073029437424095848804268901524311057198410000420027230689336245923584880489454710173371294816826805831389251449289819915128383707800564092268409957328788269262232890781493777130953438563584246657909692509754664398817771549131926734147188655462836115486347220322752550638813891093330476407118189975496036154464363849435118143782581355375683100193801945875433190575045973690992754707723879393864074045900116922250700331165883044887352329247926222740485817703410999245194550936738556481960237179336522919251601624308081473668279328145759081632067048220883462316895895721657806240293779891321640751415407358795246889723475237384857767953324675344455682387659618357447905088974909599496181682150062170890548713639939739232870656439613690218204828308063464590880436470091502456906887131000196833217813790877246198915469166196380206422869833836641403187197694625427759570309000094644996391055515093777547136684068039998354166004947718910319172325899067077898814693163327002465688534110360705435677596170755947519076486095041016742568081467692868835742821130094287410939506372098940512011135329984699579345688842542745495424327282253331613669330824058070471049865077784062560237609302464791546238768935774129782436775881689513578386140770259326212446459462575297904607637584997689783537649628976916252493482119109161817424711267425837197960909201629413689261336380888010174921354700408362890704421924546653780715668676014590913320980185322570949952735772874283766560866530204518695008992588601374903356285830606853292539321173651965080768177087253152959561702251450520977829530099646048957607058985058609552094484747322928763045631319543844187062731539061782637715050517850951495340709475108854631191990837146020603400930450510860916655419729951920223483490121785178809954572809959493548224873216090671834235306760900352297511400534050264665983153318747664072924189087199822292213315753457336179233272499957993713934048029250812193813312383066832443642212061284800361981422530192300808157595370843965457082514992793201742203361181585294954397645868759685730208688762418573336572261532874519785330732183113165502118500778862916936018980929018823110933370067194016536207674991923675707614652884398606757952717596567834866721189257964207882068150155820370546460897319030744976468389349872413184930118285040804192188710602898192969637546142079139422871403095428851107729289699339412486758271027306704176786814395603264348225115767794738545077562538768823089703922508479328618765225421727244144875524042015265156508326462377352068458137121875870448591765183258937710598624345919622014607655795860300080466975016368179130423907304018249427927916029625504979995400589232750165780432780859854736402343077436815667899523876441385049622794848911907783141650888683683488443270494249617226770737597299020234764749703271262574625215969895308378307118006698975661874840019502681147287964111305305657651928761586774478220018750560344782128090895071996904063607231740844156306888961007767416215519481130790017145831978576624325840269248050508928002434990114821874866673051459806100300418235318010787969495972868868403646430076697955717140447331654384790283075282046383715259501436831330556568725355116001290390995854352904863810885973281917516976059541007504934274430324935075917204345505927061585737014607927355250872182707028259128534220584141479481684575686577468114542296162921660943747755178666257729995415214569572135612439548717359046470289947164995434159787011299704825720558515998751684819426909196660662948413274952049991838112819811840223251628582630094303127236573097813239073961105032420211411691385391002545580206101682780042654633433753856459902345132043496520936325295634113379028037545178429641909754676460874097881401436021015071937664707834829600237979503639741482395249516058684387611394556124804502384308303010796076599870861785192847469189895382793774602757848467358741151092801421754736415084702706859671680158536880481496084514229506268769645328549011939326580525579937486309692311143047634042706342545554507107320983266179281432976620201499978998157827223191811978165588764311147073463891466776720121448548475931259718810918499658213504269942210551401107590540682462644442820705624136772703134348265851376198126778967342599183908998742366829362457143556411807261909159175451969429399133438629718715918562676644088933377878948539063935601116053038170065957122065669867477553817402406405317823547880996930501871749206009755092525605307422683789202074297775281112318939424298063725110727569477114871362442141667100750662430579241349220002613042606715293255847580939531650553675016760811617209589779717233534471945574366334387570004368332753988859286306419051688154662287260866425664937406106276407667579793534090930667445695308182182008195211778829719191199910992022184399808391990330974341350532689251946689219324753658826252276002322161053124740248679383122200722336492444084719690782025286842873442920012314564680619443227622651896299869631269877823903514354676200330337032257369360649384994668469191362922004480690898766289249013566698103343380353541944871454960293756643426587800785206223648877272105308281649711269368134255376194790627217572308837207355280364964999398490847143110559432704140066813129379344018446547742152487159319750758806638599787971497448361377916110973972212812855344434418948956318749363638344264649748475329283138352095469834306413546346171404877715108513851875101083076593997626818854247818235019968285740942230670762883208052115370671594549268550264310666770712453706069137718996759400373135872436884095290633576884642290802355339317843031656264713528152417047224406377394803823779557965385451458466701012470720042668240106129861825399983704646768190772966836269169229777624587521177605753211222265692726804727673865880070971713246599992461047030908221746319349510522738073472225219213294455552312036530739762602269771168740191421427566962392258673404172251538281029952773405409978511085898299196251685839447285290098115738916584470950248955742936477179022737929574222940534253143778484525610851657694447972595229343687090566882640894397999883639049971207152167853814501014918118153603869156702753737632701292932844644996636178847356970622184173237889585104640456601433267059097451544845005277577720415437009676554993153714851221202161459816801853014486949381039165089152834545490306225788373708965436694396899415230276926958792388732654269351584930971824739283186016598069420584909991765061137175441274166808008748564077076233317498412194191660904479968855299589864732194767638595353335971118049530453841284704062456793705927477719125358344346425311321604055023960222003367046168833483234665879085844035804440458085121349235913636355064595493274191550149009342232419894911750118598389371337474265775188346419519506084283012395563476171997200137930007491985572196633033434013793856848237517131936934365148445611066275576096577967144487523903671268518591205329817373115121695367541561065455102856687408944632938960482293391563931695611346180295259623439221161694449005603885619871194897065631025690691173166311094228607298256064262860563893104512444463794623260138284799074477713333509815465563038618766208407209567510642609491745695274549950314274806520178080487089866698758567442672209913600558255600072985112454373402562538835827011826158796439583819770541269291135803774732157069463588256013346564638245743179956679118804255743299811521253704204345972087577912053068371836560930955075719936942955048669132459158821416921059814616704360309030464420827828494374860341142402383035551839531495517469718287926999756020043841922584807585854614140342878893909798745699998094842018077091373671882749142068455441596490364248746168145180923621788854958721505437708268766028248173352543950484856890346418164884696541689715381585896845148280798278930789765864520505057477840700896744558133903443400198646177361658007971869973954685941956386587884186851999238288466158108137781167079925033758442884701574230587185721384866419328395329703349477602273025231173546587660931927915718288471426207243393576967688317981351896814045871160006228299815593072550640865924695091221489376773432593711476680308991293680504170033593398901757711108522560285154370603173243946152725520810080897670177105963773683575874426243949780526235183593241399632218679952709816115366110017030282235976570228742470700084718542099164619274235279111389603413173488806897169092851464586101003236859598740796819850109845180320964515471501041260411086605207706047594315805223285042629697688849590598510085270152309939172668870900811079533917658137898502599205242123593763884460406462011105281379319107991697583204356259528507148389328398422614026437373174362192834429776493183620900264509189192838514551554374935910126643091023245878050810088500899474745953692820505752313668924895221460195496408598636619309749117383584244243704352027849695417203855043583509439498785091323132741772896579919165706285824504071761931700413436657125459092603744690103589850469443003285784336697447584814302530841232889987535776076251227928210845083280960076906795196900742551272700637461281831275093097605416029909742426073816561387735839111040602859903098333410145258555834749210744642485263678424913646679275921179587024680364932196649175415192141967507617725848956717419269744594647017789905393603444145385731176690830588291691893562276658925856805722892300440732466981525690803240193043411012891300565938688924877516910130523139081111035181867748738128096052845471762619091584715209394149763498895992821273951137224673501550347942116876761870719500546283740722951510890027067125473990100818025166644299824593354568517796175854027108176805256454267238008992412828194452129850333755777776980006131133353313127810729846197653356423338518256910012632613620436626183566004008464553339122230644249339234232689265563326564421634235572399713659203544400470166870728502637797152492443085539088479743145605828544232749872194533574622536741908420263747037401245421929161804439049481388756908459418077483769573521600563176931065869643305409068162561115087411134030146036044796469226886768640657731154868779181300757101336680355643701604307077730673626697454621202353667450262624693591562309503165613774342804080306987885786617256170567753671645269318817374940785812161436115171992432070390073807755311173874655219008786064215447058722164499411469236860849168972930710686766551746314551921163009270952374995768343674062759768250139469316857366492773627254431690337754127457721658152749686860730779162178076649971569117418626092400609385596829182901277551950561708938747442507168531819053489846008457680998166124001177118934997285746624205412901793950790616860937321735370400133972099355521979319482433751956938387330105910983686286356685616353385711621787745104604305503863557669079914072416089717364722307371037949782250907287286156451722148537698422321175602953054761091132295180389688255067311817943139470119398197284346256634530522603322207834336225382537081097632337504336992550192852875748408669452615245429547160201293146334162053023854387049939597721790116336389940686380330678884040491623388537668501751960002949058177332209666181443411549929105406422881844972100311903874313406057600349737565450710906801092970480920297840480166241105205262486454395490377204832687939791950604869739382576348232429894873526247166381541191659707485986148805712124754331179196833260277720134996995018354289679357739952697622764198744761794432373746209054664197320844602137267127296464073768858640678579028806434627871603707990718424742558349329324299322399562846242845336409669468107850994301537438720724315456722391461825236779376992662108691479869512513098264642609377644123100057922093344524546252641257814194387347214654121478071972603796965462892049064496206547944262694238897252798818766089169088265340741622962862229132371501263169738201267162415328816155029541702448224034818073082212376597196811027283152491538314191356756953275853757506720976031552245963502103098888382066914475222959811317498724263995164209581643363017125979382726738382908414866553312750361915140197089162347554752658731955275828310487327259725835249236378033289427411189907901998216631914921421785241831054570193522618541962975773648655252564520329222494497723601745260112437495692864059349734922318365814637982900019385141718602096942468493337449373808290797849011653094128352132715090397342068109421982472030026069380019246772332450526257627675091580951518825210626834990325675307169793943503077987723765496604368998362421768443866984442047482483536903678581340628929974276341126792683581189809404639617127101492078001217772599634044160268185378045480173655785365985405481293171236412344109210056541669310500269336731931278901478475890350399411598867869003583231933941644179425084121003517900112068328122728445815340602493417808784796040775769075261461250489256237719316700136060241971184664058189956453529074905652375510079873060309571362279894330764997750384255235384669910547990532795818782846324327173755354300549190694496696468884204999600606452069559696953578876307136908850570515286221470405116636470472649981776473203749502039088578588134687133104235062130537659977065683376987600096149263039241560035423067130841064445637046629855496164206367488444327986441174433027523254549154176747417996053929765228484883961381226117296781906286217216125272609150365640548920895221288124406897843229140595423587508824257723031678931790200995272794517050718234850163883711381021683125532462805091736275344751573236368628846192520866505112795245100267771801095089901045113541206470145458514406340559247463450756734289402472603196404368641408704643554584542334036349697081773198769416620225244042323020955803858663499947806121388979287175206323730466840530463365472927823278348982910075285668650457227201267862660736599140934201796777765168542134646922577191117434793814818850795754244685285428886854539014012685465242274055722612295948929620766765455322432251630358780009725927644164578876742010091989820411627107109621356919881106018391850579045240633962888874876020865741390266558948189545083262979394395717621301803919131681804643254206694898764564034297116228038591177216537259338899077651544797018188607430410636796605501702781686398144590431807531486348867696330217556994340755793196867017177482699444934371820847244806487542013645484311037820065248958242473858617839078224185076815343886552275210334728128390138423361452556799727608723768572968207059386835757808117327713624483086699825218935635517876720026578315097609638249996625466698778325839257949570282061220753191308264795788879342502813071622099247447743143196871953167060814518045766269430768355581183268116738203434043278007032311812233179337266454831492343313153754960256619089000546702739737682698896062791464906886859427332810873747847776218860367505427101269779735776342577717446655126838206243451393672925639007884364236264351047577743796501495623961930818047579335619560500411629930430102119455692646627428857367500255641980258425880507211791909412406407476434483148562827589483590134716978668714140813220207072379497805539355398309677207316274496066996955583822291605400095868839899897189809072933031771537549461001749654755695400070967171813670738395559307335615237135683763432101274995889099295799132425116628618935468507409598374546838577899710194302089561715255966347113572978760476383380537966839884307840295860497144317274641744207851619729902756975090761522310385372650291277442898204967082907615321202620640856999721101907804745322969065551198698797876392267371367716261566676881467999548458431308211135949821080655135699489414296261654002288135074265198447705439335804144156082337700650891391545373477833198641476147026653305848584326699620663098644857633433836640791690624802235264439406420159983917734199501397420394902677461841674990418110620172747992528021801382801777179346825346380872561956514889992037974412278980569159528130041982257046738054890951441423005392446820993658578387081712937369086068860777779254456175494052090762490956089497793971405011592092436103025163608109387379104893856176458116960941637782420513340380207258989032439748005476472435204495410833601358947833725326991136590853559556501466378005963764822690598318316585580642716443974524073353848875628089080267798938229994010217140813459520292717772333684662868353007078059731587947336721264344221656884368279170510480088153360804085006085724803019964964381318100885387150306434672021194685188416198067207760249333664677199870139158777416394490286822830460818622684066274941017154479087131568946410504191082289636463231228499672656910955552891940246214954114849467832511195815903392136191515149711935257308835713027206983955008040288764119411446009729848170523090572659850210350600514701757058799035100707127394743916853684128224448784552828490904359761235649931144681795649119761575562756195954075796417954160953707977971230432553186390570267282915209638492966383625746945102434528321868610105053821148434513218033086571965788790969132581188525145819169550116204768778308536180595529346844267773938919310242702425530330399188645043006295340477090713414685013764184031527418036019399261002120497037780000759385853989053840083388991539670240100031368169681158701435281758339954813530594308518293578062440834909298728109349298959063060062191392398754898948419442950723368607871383734131720827259000324242619093991959563907625989202187651473239530913850280283632896908818394712878977764268675273079275848054080245511415690535705718526196055966579681476395500471686187126629102647086140962488385576816705377642041925432929136980835260155790536871743879377257884045059429918887125897564028750231874361328451520804401841394832368765081829703511905062869248266680981372619737000804036039911973780931450630476226694679137879076886095932009932367803279785384838557693815004436211479778627103888949247877974206578384795287750008512467949451360475338444984159527142986784307834374608484184470852642564120250893283294136898151681269227874989525464605433221960770236816527476295197045425141527632446479113822362415725642451549073051706580479271544575502958542365142833438645595845014447079219841479570946209350831961431043542744222241288562825347723976060752561203352745879973358287709477630614110707747284101847471775597846379742059097498312791078565838118789840027243437470739385878881360891144579367949731860734013209771038110058766804096924624314665387363597160693915221439574499483847673689135352103544848323591028782357141845018704114648233428860554032364523002941912006939703761404709161046757006249865528373556555892122170384618496530032255395984835660304077480285172857160201083810250674911464332197964077694147840867475069485521044850146060778572175112936717851516596958525191885625283439707478816171544231901740521895019915896921524951629208379088225868596600249453518527473491985472978969980926568275436383822143983508333820661317819694705697802702355236154024881620304122852637819130873709777284716257294733891515945654875974112841631343650013475251031571886170463869071691196597347539799694213251629506078045194983694800332659345192993632569268256145180056734879696521877106376697952711839024398583193356268082398683513966669583122284016980632144369772856751560440710051681350719029254894782764789807111795004414269663387822307780296474935286472927108003214755003267570320339017203467918099480419564267895503945914577127352092715326758261496051072784032394371908180165870851979033205870711721218903909075692426667541776614000480696256051248790546220420331022559810534486471086567341830931878018401070163568186294519541943213316109835095135575681185262284543475199137536729140070128816387129528408779583506192659331406905118139276872618236809844260148427949310657051199478401516044545414656348092873591395826934118047708285005987599198150433362002921835711698784062078134891179022750770859379187360500536933845684430558946558474439734290935071891878733566608290348957157252196308112027082611656167028098636928962074654650034145484723711025887309009132685080899657671086163658819078988295269893904724362477734619325602812223192717747858802963669755597183821094530339777999192756110552921284069697239904977848125283547771391476333542075550485947650638707292808503398081342198671881936191736029543230945791861689733108046659700699723742659616859798506782361616103632509487572516200449749412078203641081258503140892267149851210335431156932459791117512548370385125063158638606789549178511760296621164788665927453564533902874530595719597261226863710198802993392515015908837276000012397545592358903029345977040587387789045813047175035620084366489306442701696315906145554648550136818669340450874766802096322255176586046458369492364930889653138352249445652777509104611578054776937382064754931212235764420246516167611809986165046465063127722137264302965010575339849137858936237329651482381832613647852539032645623663322789936181666633934168916929354546710784548294794664934396492301534978872401967976427156178671178468156006397900964794482220493458349946943774529359873999952021172447621830087272078176433164093650448623938652083095672240840582726926908975199152719105851331389275894795412066148473974049261338694530382104127876064706974589600807259879303612849791434818194003694113016115132651928899784647679215038655441879303937030042893299237715106795471981985011653842271663930607536653837035160289796301356053746679793774451922855908381724122074599075008875972445594951051990634284637954069482001011486877343968276599638800501590703940305920355626246322889316639907021165559503897937403019624045825364602797182552224398373004277176948182380177469759785302811817226006865760873769297542319193935524017126327664830406824861554407378182914095486959223423986048988051163290437443033327762226925073789970813393243193111519624884338893631758437520663142265911910366499224036389829136588178128722929607078676443196424684904466525713159578481069083346531896746982671058505488311709470926280753075879356817997874538323841506384092620953140962141916247016625556091581684599217761436308656569367549102313391064256088410260265381278063593736365177864474367910922228736835216784157512306367398182057909481783118058424070641438843280466933194594021150554342564416630437653393411989872027955441938961788838839858340273333598978227501578001759349238648570495680850772481734045455882737654496209138804515112487796055153498880424437963015544235970552616829396654837085982220514368651209663712802884605726998290220009545832028069028362920186994058752861953466321199736797475246881443285095910552645259382920380410120547254899038480358738963823263248276958685625507951952449285458943166323425767958700265454905572407953472312254887566947221397455991990544112994077741136529178478222447805809064574448009492180682183084697861536568249164314156281288056036843190572835419846846753641036467906421767444673222238395552582780275517923573585813869184715461209820717672220418669385050610280168924056834675731264647758727953353979254154178143125078432466542237659559772289402431588603873030047420224908154447480789069349531033833632926871680224413171725543949801061953727284092576788783661409592049102579755727788448667256477991088022136172856704931462918564656312340107595965655707044390582156275351947641982840083897549491759910853021382841981865478308292418303396484220630523561357477960562979321670406029422409527941122658517567677645717226508469592971370405326027618675622304400463158419480238820765025932884833775141616147385175421842432478826114956249835055014850367797928961574600725907286097359004921371905012595522954583699337193380969319764790645078683093355907034970892708164294528639357014980786350540808653304466615018702412549566672412254317666911063800254600888461460748071176960035807788281977357086075223733791310943524643754414580456869281645667862593640490805432449324985325942470052165752466922418652393321915895545581704057439275708438026240464916891974646596639440604116458769698248387781472708726244545478801700221322458906906286753342395834613702052172402942257560173384816392536983590688228231553552754701452309546701217589699898872725976992959650411154000876193834887639617591327208265995517508820589752104543541455557216875080782492453315761661108098729014289963264288333762330633104471901679766164638950789633184410922311840832847782772196477621977703738948013019872906220048984380962383891672842841720391863753839856244275066933407207691443586896799280696900688667477941607126569169085372380122722991435037296917721575472302774054862161575641387997709184561785581975361795449027705437919026990739875134262339036982035722501877594381191500461754429824346056150678960164137247711116779542213685713948849551086439055035884110925717369851426974368735058235358640981059043648269824977284437794762626669032084586260697428425955731282298003829299166946582555929361588917728507722574403457185143929689197257707518017200793735471271794688545318692916944424113697889660023082299327959731527814476651370003344917961658369395890092026231417249997851727655726804406234936529025380431105214026680040637398424678371065294592089215157133212042098156024919437825395004014228542053410128276023928938261622283345358322491633980526580211838617690680988019670062774009376513208631484808840370181886333953384426206579601413249901231252711239229539778204016462970096733260061320417881333970703580183305098874090454436659572944097820753954165610890358201669522195017775179348697995127282115700725326599897921710188621134359603455030753310176620027240573789012457407747042430403497311956124235300590749601448841427001847629617274210099655191510099034352377946022785199008684779853539691635041174919638225759276400316585705060872726259747386801439486639802315393164747766578673160011005849191182920834058194511122767046021549144824922821239181474693654991221167712094520044325474268845802945064447103771301749505904493247159243605987406171649579105590770804665986151059974417508148984603928055897608283536858204511143808760020926899245809256339738906631689639831199120871047920158847465986621014572267167075600008328532151302175420130958777267482533085276232100342162914801655670017499232657299393521789615166372382162225317512795247584387222735642814113716628151281644960468553007570586294233455184907040036725276006467613130182462037643659284446452823925414805149828077717881472201502763872055330941250957671073363320619743648113702339734791208480796660281895178867441565713684765342016340359865251439128792941239891216177950727808168741921046349703671947241840201447248125175596912972976600363931617601358610418094466279709266041744240133216110666272653382713606835382401742634303698711092525152509696942738093210975598057588715801611206133195883752999584176312517909962866467099287778256808146598117675050018394873895308141122802501253119648477990661883601833155028369287604870375632527198333538376526605925659366211685952455974149309089209413796743532066908049171982965695405428883634101113966653556245186891151606046255892939274107563947929383379556533057674922833694933067175744926454759318782279404141819432038045994849989101176310898032509767121574885773459688067567980982298017762871587174959530307724256077197786401947875956737794569361143687368322181938659856974705386524538086456152448845303521413838074283438057255356641450227349924738825496630673881390268481345375451184253747741755994768263463455913844696269934492765513200845669670441380419646113755245015197980591281314731944347741367561149766724018610630763596298259033538872833375046520917943713033823274139811242666631445529455307580485222513112547688426309646135496349576921627095399323363623040217557949695809845810094491318743163654804102615571340138402869747937382726117667256636492964352828505123705887304590039727875638040895480582306609400270730693143829816085802086753155253710315508420772154092999388885901426069727769891230223517625886455025669113550619070264623471822554044074551531233297727670919869777333962543990151546195805849961601767858084870277359394013019667063097809311468916657313454694123568035766100664255927660020450763724745062229913009263863086662381388048950117365122460434470228618874942069104373238784704207290561905942051301448064208640764082259970229470461683814122751383533111873657492876650618462813717158120138263158334326287080077952441858658772771587201643773202924495736650976770596345864432933058231433112229537936709200885360400040114034494372923692109279236142909815655506613998616016315261121165280708236631760079869580331340663429909835667472868572556369202640205906902083321048573671853513634063010636458478695316938750673215983889904182281136346265229936050705723441516756942617619894093610920594703470778346394041385692063278058437043809593392344703857600382119627237385937670725755002452791391327630123519933561015814207468108039971920935606282586166859617005682867043947394169898981002378905460437359113568012151126879453608700985293196726554068896956927783733952128913465724038245152106676082725824540249599993142425835106502447247129715051898242549879827659663298701215998501330867197235798846274283612025170576977493457909441172786970674887224862380001355545818379495851484450898413483742076328634107617992983512970256038208877433887223467928085932552572827916447722210847843758769383681705414110332343028722869445626603681087401354844328406347505229869664700926656761860843261794596815503356673976687479370958902184935878895374064602175826221454396418147049304766618175611663750281138090541122686539959926889983588455855864632000920007627279541213744936250637956942120072947257981518196726336220220861437778713014673372193261278239905637682613670081198821280983326137815100034923639879209764887552069770992782558611857527937548262302420107365227278501638055353432579686017042670904706689644131931064580701824035715329149431434427196265345213384905157589778782496190977507690964710052993302710754224826728177198472810947369718574641285256477374488116833901466569670080402580397601991862165469847607468504096540319226067287269930237631367395998021169890288251910916133982983926529791618888759603916387601808811120011495506515933941418290087160566833498759782222082996792033743581825919243566166857473556899125436483400614380759597830058309138028081778494768899139989751512787850805655642386062382577713694601825927375045954212655696444669329297837612203345506895569251413263293372814329985616596236678754099058112244688112468971796098658293818269380047456435444181131049343138727105660204047298266648381649733474558956059480585623766414695403051205886401333484524133020294483426529219449892246190883043791377764939279277295244958317171543195411773609554229372755543117142739139641443578861152545025887382489333631065054680187658680968714060088230848612495612640471234135932029588276222653501395239638250596346645606861177360169288909119278899483334014820668248105659245151832071201956813699760979948639846378170049089699118301963166504850653944253906167807810252212661428954452811257700097142716932677645480742066129257505965887023273412333643169269219341872407043434482311009076220379400810171737407405308187063685091371627331797942615957159367735531371753487728271122061099123330824795285973727460510151139148074764537400737620416960466196790012196046890214085769797453467498757416378841664431997421749583339484337572920317298241361083178894445270967504544557666615314606015562782927143733085944265283061728215970501285606584555360206714661118605982861978173332799684364377832955835528441214388714665207410873790966672327686223281641738463209099913459777481440948234509258765866944756886723310864448040625954091365896883185538193014188022627621466452600140581504816370804589700146871247658196675370495889438786909328293275276402507871383543146558482332489211889236924786416393902796744796614715755089617241356111263841954551644619846348169661755052103243826755026747086198762801528451437827571517801726109977277110180887784024364975732692453509328866890952345531120131997460737427754631714393731337488593081283343628123659844234735632550710115110610319566486923244946273896656964547678034925549413346014981519473221744247372312342427049278759850417980457860150693666839208870807624088286522601652022743576094291696307036906547891289158320321423980468561163811586688041218624117359845758405791712121440215323960433899754843925792560695353445789998050481094311927903354755264588272219677964570446990309621711234485376143421552148406876074355739008235558120426570210516224209539588293661510261896154053264570590637267352246867299356118880555031835530443870295290325824406952244258951341796421781819502384751072275771485603566801626398855984333020844080818127748556813736500841092837095478182465748539488168103997493423985324454580156899310190611395842141387723850398608590813646937402459698498274352652613034153994672165418147293671908377364284206161989546494944544280282915895300911979384787713563826714471782556491737695624604244669849713166248523910770143621920932149543739367269065013257238887049067827114619898507397929943799264932082401454851889972834190860415291588518274613473540701231849113903122098833131413897304827836620628512512604470792942688895990673766441911574856292614571454857926459014466711347224487518597450957958600678278781218843557547622811955546866009715205929743701706883777903493250566664033298095859090822361606008936439001051040031732448782026388813448769178216102094135934560008430588444652193423375286159786862913157958051138336708067864729516842437353785898260905221476421682220012725618761289657249859638852739486736346543270475485784642078348150207747284181699178122601259069102452490620481480326726841466480396345880805919664519738437203898445918040006256525203359481717998436952066889199063218774562351892939970498875904402355679832360865369695735891707716888977605953883026997723359798576131160768684558363978404500194608558784492788983074884369088524884989614214647772966700211436515623195881212239299132148655920562278727036761773524174845921514325557511591141851534266718618916317665122508824862120985636118429240045897677704658566557605784862217251593005744771148528054644916169108385922164157921591872542308638516112220629079670458474539848478134138546276133319968064567058695898592585840234994918001063806882693701451354794376093918333750951981551663232929384683682918338836024551233882554436825140669445399583853880627904966559182362020589954484436762256189403179465000789136934370434378745013051513891578463383323990475412498838440000801484467952863100201969516091697034652741690524742664599460343237785137544709521368723495721571505386459298749797182231388282797557354112313684239329348574711318555348776097526041688888641594507773506653621973290008579132079259756468445125868217271671434023226041234060020158651552796767121606146821897646469700977306301520559988183737451160971438072992186336251856937283306914745996180926994662408975751462169855131174542496283251054176006916279079298949405496190014924097647815342001237448209844513180849002446848949638990401927053545375475199393954351606068455729582766502383266961527688654283930068499268179797163399252623435935913709033003774272906322780538032456395630717849502133841879808793120789652025203843089025673198409365388512906965792071145983465379074736336760681385116092360213837852128539450152490720086748510168133462585037114424865972916156103611757083250953986887070745753286672872374315486454055774599492276657843720563543676395138510118105215807536316784665440611101514468084672696621422807167629052225920363475568629298028888588364380398423693754082148247180406532734601548318336011208204726551903697628669953889611396936589073079773934741012889292126864905449155213361954400764603116022888243980986325890943154644558111139603267831148209590370271956944657706226590360117694116309143718870140240995221698077924648078920991122350960061745281278235025926381294790410838944975140743324859056872282102136501548507367276982491942171163754557925365058561763442754128001387046945550703539416223736319808739782889285181938933291153612380096159886339442223755500731289692085979435659091744979459169979374443705150182003301585621662875496042365439358652768223992120609486663874844036619855601353729021585568213284369335837288768832746472399872283424740550543433689721571306610068678136555943322711514105222671223910059152306297337798552467899663798645760029720521109099387412821338832557991475189365872153860336998177686370295397493887466604562659031200618614297480076292679290374970443267061859236111787732916810264863676691154895800930090523675905838911207692904850378994116228567246839426900541467234780468216183781828239708545412780502148512116145469231412359892880101529404763340565339155119762903792190155615742979163699333116894231891734245374992017186076876361351680303427533959560498681180170961813213560574339668096060111580587085106945839380123655552225507760591792468581126802588661030824427308262524546820698784253176702611246090461574534865344131945759962718648976285349032879897245157931964691983892257667089443333807180682485125182605177914746442663283486736315824494973008704934149321430494189302446791006637191639539507118152374939433387777529925151044215554081475827178658416686834279236844059481540382520459754121515056825260318358780867386008383886674437260475716753785898242692228311563568651158039336862342457329125508755463801999705578211036967451950825939057901305507488522811717281122030755746823180720540373735294150234582542351053627845442963604336202956656843361789818230971303074061587081718603094746596838076345727678815654595455265612083146985791832396059354608122543949774827303088646849009894930664131622369728034246319184486202586552598134119696663926212797520183176102513622484920199362573678891082053593777775642974219597116227789723486717046120608121298974285123036091163928626770693756195505129816282851251316785096372181225693741097967438404618372110684772016433569671229482709537198549014346006646538752495175910211730830696344591770171217532517332835910915138382854650925466090880017371541420658632097561830736577255881691663585734157591935974613239432314657083548962201355052141975213558313493925360733359199090470893968908689954179300579269615332177021744098701898135697016736774777618285935519265798465066488658012594052617130639363878297298536985704333190193200541471746852774160636420497947437353423221483547619992032347856223374250854034534683433975190543868579266637893802959225427490231983730929945426077441479733099963609716605891327427537200170994635301350328720261240701032850617141061041431909206235818873898239869532076609746054865435291558293328661636129528813053963244751642878350712780314377754004401707815853410440491767772313754030968124527910970464949166804971909082408675604547303991656083157172082265438278795838641541709525653970007282878955281046010496022584179663562618093948024038857486898312935787083392785341110046469072931051250545687743859408146096910216641644817666694250083638074254347809870103726297190346946808867776487679575359578261877900490423675144844903166044677264051815136675210597512891539258188583853317860740594118573743673602053159972046773542448435303104686750712260137820573185011310990382541916570582694167684212008834760031286612354869333612475480833262699898397112111372434495978234556138609752085628667152943838147847911019963669351636139001962042863454793852629566864269288700945962306006376146783755242170565623502439290499298157079818846679334943499842446898028459114750702540549662776239131001496828776554609355944130082983877629173560202038233246022966118822395131865981602724944159021132152991030329614241884012760093081748872821018908907635420927752512551914206361613380118943618161342442900587265105759089684905342651518261135440089945275630118341099826059334506658953334581649614356895476276752925593233883217503190167029405431791001744702097587720920184684340218965510740059977709041340505657725517402002593552295439695208203350792226747320493260833463809164737511404625899594238234825829574822408499723907479422641613878752561816050098368577211572951431827148230681821174822814243950772331410749131402540919619377559153106739985317912034281672610015073879516972185939203922029191720518819290229706061019490633194734144587089997601963233963070872983578358680829597057655174899044222443160339382339957416425845402709736634937812880546122095730704544772750917628396128378355712812273577770641363482171694987713311417356470160563383248480954810775312926547941139317481480162021926919861589213865773567024566958071218328975277429932937163996025523552089289801883262311609106922789182432781476289956558940368824207273911112268524388554894692978234259106863054441082107593896106356189752291173395459235824032797819461032910930914372340940863364283556882141901188267194260505205958828082375666044998772052723647631117074307409298920921610811402937283993438107982427111508759024189746326827224141637041845609563043522400233813479326631240111401891009436661323372286782444395889736722074378760720645994344910287269287436541019866830356156609507762075634969654344473724836740623135646019033841889430254758171941214495484899245160411018239136874380216293647076852842509974631238754973121032943800030965281410232325684755879962927299565815195723634373861034756471591808134430328830207135671337594404205339820450193077831274449335718389436284226868589049102919516698648015679577683438842861715527775994499534467270306695351480990921463239521898408987201349908271760240512760407372710981524596591754210160549526574299102509228128495485583119343066567099980978006835966557447014801517114905162817039647224202785146444137047593065656783948193090182000831783665718309021761263654973971628109605280203192983080600474339811299795804178573519649139297680786935260543515605369868630359220462613122248060271359474515770925841608462326915460614189003017110440209184229428655009202776450334031394642685218791744343311947746424292218640731395953441380753980298054342633070280541699407122776989363415664840592518592650884279887766631744856666911436664347715277691492177104733098591645077179769696553656969042975264735071697939723928704307626436647470406804282154831295999361912866562247202964073998157625150586544575438706586171652472689659397194874626605044504251650051765586050137513645662067752407105435796624600135733039858272983763099115166477390166428177737422716032837848634954666494080246025296860273971284880552309471339010532837716336081664760346715347055901368329818405510057654382939468645442138997643164616606391039608525072640027384477759401084181812486995256908672400897816079174513705258795836885647943788940351275808649201867221026505088750148104636599954519438006008569297538694330691035624620200239628937640456048086588318248678975871028300595501529935700998890247342883108124047916611818094548533948512097847519862288191540847650067054290767568128122843639860407276515030919375629408774992674242137529780568932446570328901734691209757675409901485865326317185576632931183369919657220513928265259796557217728512952924640824801008488268599002365539730364766609364169711843418787963600384151360596237533892065074444339546325906440699543800781236544112323400244845104938904105519670044589738772145074050757877623892416161443742073975641088073393755243547113998098534307211815874746322064461726921577643028291331552798477534463867450049223492277472336476300310330668784389369798068342984202297671475225069334048683159596245596756156262987154502693386747856174038378300232873740987478006825926624356482373098493659376732804220981949643664414575830251205331039944257160362624340950880372331188213050457718372967051109269785818034452787559330822818805922624437084512676710561807853056056233397990340288232037870907510033473192215438465720981970806288244625316564987476297879098993840884810683663492876435033987368415262243182206386758658959446815365696503026540552698017408843812172942659287055994640886664360214563872933220084952040735586565477764053966875460506160827400144601602351379989989014456418166452869689850058950513946686229883300605192129053469196311866428860252623368701797986122836817012919468823847541899033601341733168013184411265823520312328411448803874840178382904893466891840323648656405305107559276051181428915879165187149530751798054593197157142421930651971988755168713058626042202494183084379525184352000807414670737855454653161931221698080081902022260700737618401902370778781557027860892703039213194210782709312879897102070535382148230986658739647326602743189815482930108410619373751106058630042994968879930477537943390769862364572762579275471999852660819560035646785912120887739487049246906244305860475383611052188216913681376442407267880648747880726739720719010981019834555370833019310888197646108874804071062302311409138517717113424984375424069290394321751567577999764687465570044256979074730838320853791004421897798816048774234939153149379889291401552552325247452220605829803028036780507360090526064329492055076345485345831462926880595681747963782086212766516359060310955709366833814721395212966172086662622392403597298869851582184647447970670538636370906657263543239406638643519904236857373580711014913447167026616531815945208481045453836913852693248417937726389483494259166975901498069421543476141655039815161277576446922480936950860540695529691100035611327075429666314633214878506420870029319596070708306779794676637678113276125783353640885224684477259993814611050435503568417735123014227741761228127463644354388830445970453445492063874886579072437498278585626824690615182322488256295425998070840937505351197980905545971857212113778096108943995414495337974311053208721040797334648177769827616759482392576681957207309775771470940267552666590970556034957322565495312130204660768448818168998834162491492043027397728400529295266249494979026681637753285621525327985674963923532008621287667697476543173088158791813872661406334395243373984280032710270892013368955374205689341819356504706577090661255522313060028128855618220939261832788607505463720165237501893270698780840442615478232417090332545814017379980730645893273004034344160545899250686940124535356958997701994283604183881425873558534983960386972890884734932733269322687513711566635636207852966368729341621929127323698898333160180774112185007935876964909494200596974240042421440182968747533323241938218998292052055449363569564034439407570431288195780913342358900835240291212832743480015893780217154066684211802802062117775614122954097829892829832842053937762111707315919181899357053234061736130198137609034785898828245177023324139758306966257166210370397697459872590870868065130752785887992458876776841420165366781654420468814530313704421987256470058838232031515177324924324833688647779931241137403252296843697787314307456875604750213173550569234386828157068328835675876928509026674731225114571532781205368905907728926225111796747641871090028834274681065265008122548149634281813197981560557362877139261589456995827458608140757178835764711475889813698173258598189609218063850026651439594336608527342844185484002202437891966478620087803290204873058412607817708695871482544776863587212051019590167221192462795178280366975472576660731757498307091361140877307239876839955970725260176251452953061147762050223141375290621536739284162724116222027668852048021223651532588780312496486553659769497365148351496942647797602592365964739082003101949504457815134752004775890650036934599937663661564516097614203052697540871774525824328916389625812500010345204107153813673328023070541822457771994152672622153310598675112203809112279014240754263103246200645061478530743998105488162584665743262307115344879813387909929201812682054236905653588221290822630990391026452497935228791379736207533685515580256608857585637554366607711854574258907332658273610325455798786096133548464680367545206375106034706841991982333125298558469152910695065853827666308562111069434104005074750857989689581673359970374813758166390996925782915578860106566315880581038654398663878885283078036242762521428135027775648389279163724493817254874500196314741442509883370958750039088896412414823407354296369899528654200180173852241370922705896224189079135455363715052735724041031442141347943200337807988718738163570592325514592428865478497202711895254628395990921234448431946404714179442091231239676595321322498138319702190084901378473696666560596578000030079272619823984421714083605610260909300113419887113252560817806142237403833191149594860839628654000035505254060236215612226128472312106303935075863509863012391828881798307156410887594672409485335790497126149896897132099414067539275867164177545692819344205507211539863256047435044378295095164793129556271348087241507028764070859756999589075068539923560593511156354308709766753644987229505806148552021355360194742538532710283733414402846734572794338895873678698605195286345859758297150599826250808011170619850825187902059454388734371194255040681050103178176857312792528280367891311655701689092931146794344740816894058767437341689012865324199449959530781869093393112014215650525324483298932886470287544168656989695753364148834529765501790240984400425288781329287875622016063956432631611626826874789975871309697111085512947420936345881536471468796914066847329648998914155640647997984900016778272304988192861645481008536853769930759758404636245045869638799876949404887371410474658960096233259679737632188150831037502895265666255481165850081499407300796181263697920322857494014617980390461711082209909107509034068884440251837414601065451284412977275631695487869361560451781699255546968668132574154396308417156021373108988613468373072832976509787707679326255601179562901073819960307030456119692917368926126662126480046604096933540758339257097369626169535984708980508124131315221198588045821011161733847413775531064395557984782768376430092027121596490177664617243760890353462054836306975254033430111289969265685180745167328624024738214392063825961730301370751426525989131125717402445474454086915611024269189148444674310637162552313568986929772297513900453047507859164390192481430014352832848337977912460550122855034853621030290337311196092594466262291204254244894303943964450184726303120997273423297594846092272695445917904022758747534194804294546986277653000482608834336089433248960516581664810300719873918175348016045766602844797970279784891297786945212675810124276186085222403441441451852007834973102094003100282856535704071186189751830678812479138529093111698450383743326094960179236870931760681613910115403577675602282526138982430712794643172708739590616892072182601994419423003481873396692463240322952246918359616553206801293593058341552880593686305813381339823073455234497844135094549638664579946664663062290737520819322442809325252166988472024274044609534403621444114909625282681434617640959404000321618936816894857841655291248818452065044857278850766420203809095342039761171234253299949035023374784927016894149999324980437070563746698360647741683792536607537368521753034491519999614644706796127212869346629363849238295337968900665933222496339583253493364125114493549994234734377649618526041818696041573127445067191214380275223412596395453689828274378404608520457568519886731821687976149552237788365695297567789074342180487567448347576745397568890765210568097101846573095736396706078603569735847477475094084833156976864790560163645450885311606916698603213339876420974344785656372486749120172157160673258601693850678032220753829209216455382993648770714225311804000383029790615237491222548664558446182542260610772399364957336161870882251101469003049978110612112505190678199827553627038719997281334804059611161382599227015403870959736011912560915158181049494228003599662710165983299527842858371164217747492128298984652264837098510516098681393952018674749790029506837046936175785218985964318543371001632226014694014297330672246189607093339019704509425030626230252534501528903580780564685885164553827683325935077004041530912471094494699601909197051556329529138881233446403654185521465634329362128256747284309698611860084325916813182538295423703952258343997496534340583841841479220221058847508659736389262989662983606032020727989870497590122771391401776896033603219583608660352199751294642209264987184151660014757851801888762281328039032696479434903898227905956364974611950742319152545265870550552498509343991470482974172864801941820591680542803459747998047225733068638149589503293321730928966885735238821902780156643606659816690428355949302423320295850406938511458725635080257735887290461400342279421772348440739384092675078514786355927124627638313094622902751247864707175326810578020755997201364629945547963233984280701544711886902083857609190455276895399618272072630101647583467896331388292970176764215690432522402461816030480624984280489622092567483491675230415648354689627438462786801584245169919617538056184041259697341843029523341046385033415695129753797897274000009866621177871705537499404731459953323558694002585198319229457484066612426342499207905854219168176560618014243678915972691397541731998748273666904552204043856089637140675135734319535296033964818042178310228844993600224910960090448590867258061861246264026237183159907337421669366332464890116708441925749545652670274202092658055221542824408044563990325620998645952853900236078594622211192127358655166367560797216105546208974504901444913675640593276604334381813725228032560044665641609432009308371760511341467861421001052290377615051004813894448665007606186691430518582715199995092412585715449427365768931190122781781960277969055620998770995141049796049160227469451967904187805281014180021655846442128048764597308009069481483895780308259564435264287299479585513315657892825415608882350061037922063872228852874668709192454026299183199877304861086361048820831724515748985064766010709546606456763562931695125129504796593548765152753637971089533403843104745840662188653915482104108407087301683335929630594848138554528284012987161343573802728119607999636815864295678346408458042333902055705113587229003251139288573000017236577935579920371191823102123885157994377287440993554176434151920386305802394121396151687534091467083785090819777610217175307872437582721375410350082663004498336443383983912313261906662638408640569192188851543613661270217661223048511084076695150497299500050327991276883876353030770663257496135705824656946820778716721448298523925812542056311966536630992389377722908754995319835755066782961217569921404103294808114307810926162842792040057740879398803344620610999627461796778377917320471296833884080887352476781443914586389869282924231832777326690475638877254449373334618586706441889107432170744711744451719377284368356247199480871552741623431015118171857621343734664700948648148915919963461794762159162984767736229668276757068949850526946911702514095938768335062387044151076923824996987759725485781773359689780249041221173015607088835960346278158513070345370154906068299903393905291264036630112161236676612335346392578365748327518076068985941925144270291201731132043254003221068283364319864794785803447653882336677407207205152336936660348162874323346869477676463576937643333083875584389771293005507905103230967893102496480019058790869961360018182678223462304438336748486223973975778000047577318459432594637460737064197670017376435393901518316526041015740959849546137406886606679962028006203628114428501213821597462819147852781623354589491985388648976012667617930381916196309871064315700874947321368419575083630062814117249545007297151505041579177613158926123123109661900712484067555367944238725773297247169917263618723109745440376564338985360051642978503789737861466792345211336683567124521591052695462721417597885079517823832765387847620693220929843523268048628628737104955949231096441106671821306423271876774130744047649024878306993341966200716887233236882419308742689608439542747342618346129029284757995959068335605789111333008877027208035249218698641010766573822637711950251859388241001335838570385205265383964586615813561191565748172826189917878973329185972794746262740188765412123626040946123136341057577458453701171306772778689033734777027155392870354787148726220752066773747372503336448536562926141194721830798233831476725968095455675483771255878725719114052435496274210847011458525541634061216330924975696144700568061176795590176477234602864057451392342616164138146962805339806650323618984197038240033652633984741096828275858850609237675972249112850350318789003784597175626374169508840637582012468326484664513468551847261324095920280519118229279739893813979768200826963715761187010078397689698001730057615543658837503689093379971091186907606101324330708226295153378218191485928651255873540204330229562907288123891399318181275975681796820915082404989905742957959636903231144357600725802684421856756948382627835019632613559726022390866046533808996580873692801525041259561438178704212198731734065122100684833385068157934376953265958885482197206005518116173711461224733874658773421614369438356597696469140538074227939357520392935449818776022502669168448007266437287288775238834963550322135016494936620124045277318642512337056396532891020081499497231480692139079998376632919228616945357923801218480074369684827205135453425307618945446353476508381344675345032623970877425140061396370536317767719236557241503695138732448398415695149479694256922602764276613425539005553858600393544777497667148963439061783435954410689830883977477472274129356775896322348596413988216915734402777768215696971760178462020023059111519482450756052242780805142068385462329930152357754039452539106393177490119883250618237332342172013248565402248383149412922522198856591208995404306575095943274653890169541113923077956492242601359790375256996563439577782613924598089961540191612295948945210477141306376678698678121355158677419367636806367552918664355140991170672167017754563578442006062125175342099930143716993386925741664821707417413197648620932119453131303668203045141498511884385378524557511516740896597497504347705191404245474955755040127669878537441798836438294016847549251415640767792265166562722823232251309244992902867196858323227599420714487313165509857226882221876193146482854882806826607563579951268275458893442009221296408044248286776189790545779253798644067641065457425117453822120500332396689292885300346483202123039226145472520424841539850104902083739920894356679587058077180773140657621027786512053937073381642222377529404788005459179103611515430278179604797065429645719579077630548302465130682345160191761438353836415769942646865026210674262083657415432550455396054765917949409919611476667965952264504248333660043423397180452785692971950807269698194640382863432005480942142937398583095380384381606700128353206629574114414523071983496848507499363737839772940841990682421346561433401738370275398769942124434948994880366655627875059527037036656393503816172026768049508153161203228103811731201134469527836284631878004011550801470450314642156849499478840631386366156322925550588376957679847923418282969074541852437918556106232845876493026477316102348502691132768574661682734910627732827545914789119625853670994050014346126816048134175328772988842218879896459954572602916286995983796871191858793528732223343252679814269371276179222340606943945770458100654680420072258241836879603158029040381948893275507827936648100397117269318923674219956746302103820228483017045123130876862272457029009009829144546208890450568763450122760829236753247486577908509796132466320466046624344848524628593353327012321741410187454976319127159538461381132224202698406131254864433248231323816064136886366978085340999407316664094407079958941922297458840389346932695775764524139695117119506421100347002525552694331995716557664014897087745386152408599461237066497341006215754966992337284763422247395133207041791091359287461866055937373250971192544990074145085338503268573625387806574302398050187327405069691370052285703019579873102064336099295894511345373183147657593947117357871496907964505972657834102818529065572544404734693389132125598450989965672432961499661519218823352773529041194149999027819368716388006247038445657970856627364153458244685682106594930604225441842340690134141385704014557814766554520941763130257522552473336585056656133404888132144502853463921662189615643492180819833032893499775440403498649032862573555379498126672817145584152843962154912756895127615123393566982531881752274333106417437919021301071929910924119289671216027112704524756849186674324354061125896351557459386899130833435508167611568940795162694798989648158571891611751454837538892570318735778537662480540247825742690170550496328661715839331092679404445608355912872210696095373253543401204581752395122669143293846492901428896949053905017606237254397979201869365275906901197017480103879573939273002591731923662797663139248526359591440761144727551492989862738786189011513301280786468066460652402282640809702143514834724355926827657070279016338064360501319749081538245665142410602463001783067648146144585862580559735650268136988946240778664111049973479422809132673062631369463663983919822867119894576179017675913497904389008819636465793605234309000842310230726689675963480813729604437432636798303407443660107122702757689531327545610391770108662177770093456359969385151837577818420207650249660626112242694711323433053536072005355242460317336218775024659742137762090916722333324310434365025889542192544312532168747497281440937647219040869973263420187688154219987981633137710341388702681942326903072073750313642677985508902961161708932154658844766566209279327201497132562650030760247781071886131540501337830971712615796994835800824431692528207733031956615381324814096349965841445586203380602250935030571899579337620818009094214779468081248905154618949711958016423739245548982488182345445038372342208952372125170567770161756524571621594978937239674021511445809212038348133162463001706925766823270780352088322099797454681795579127459394262343053006038193386474496207829104831865399975442696267987221217996376764261478957745670458040802067967763536421782697655366186239572517210416906703622755777248569869279793479143041948320780733269731428690284003625314814462970535973281904700294456611685222457818512601199041936179986083052440213606389282097518243263618422113369090177976285765020181881471359246878213964872324300958336224549449179349495310915824569788188434844735917243447197407697297120242654785832764777162482285491682807437739985278683434292005511729303381425989282220852355286523085500029391913159766601885936000182518470109678382721230466563649268668271598340007162432470355078185237336705997922446624843721043547502276002951494455702719395832905041141812605499025979948234160377220822159193259899354234640959562928069220528318439955989858889092249224433617234910460126754342607207426233040588360585816783859144900969734852846045698118329180691798975263837683624379650872158053028035256565572876870416081090067942702761821650654565085147345142850163939746162200290506011067664005041112321215164477685520555223267329147998024639484256367361704022304578590639229901847937825903697257915258710746260394335595333110367405078531809325654706757898414114771759069264520381647305624966062699395874256079540501101400621133243768557474030997730461078374859701261580237473149234637118953949521053232910583698432647844053227943219388405251909460345508693374176793725718313808807311454435690594966782149445879102055763330196825561616788360102171863898611493134508583653088052991739915893224239682113619835043279507161534819528655577375435378841078956305281836463683705007710005916263962109819230566621101879191196548395267825318865478513667967325235693443107256493658032482618712066970292338423877657332241215751905882578112174881880244296378362040533673505372448209552028520779949646919690635308138630947840788618870276425270666005075281548011330781595997544775841586877250849839721071799261603378190836870423125263984650672604879516869586164759056935799581766455251963078724835937052241867440758159849939206437133664278965441007119872037215996192787969841985355432868541123998476961959893204699946794970962299755509112343006326487676712372060472462334313627255909854741147941466731171075968778954370736446528559217009570481046896187282180106518215443956523497455114500718083382441812619987685109455297986601076296346421598608652891952675833936327167248001325700074004975481689228954264357253583280954739079871589538026725044476802779748762561302870206553398246040632379363342855318984870520203963400044832804585839478787422569665232607466202528302787074306183303655797042805793056554367799251169457560990596523366188978937467315155574586287463397644015014131376424596606953436733301496110047912171007819981648592922386715490965118956084102073744511456316696035409365705216568718762830512581570546770365563508613642353098046002080226942433937091799774065073522058058996200368075100615313819463022013574287663904467099059325329929219111683185598151590766264188158741635609975356437297452798766182913530671072837248216257573521695278860220924253044088046342742493694689859212426933179569526805000882908631362915117180416475610939717897892942078427522920828918929819795187886743588907576979038347706338807163665805721347886628730449987493605605152599049217502843442602494042658650484326344175565734657704765672289129385290607839596132885164869552741584294865928690928848139498562313338561609935278729210838840030408257670818286494303379036259423115737677597697562889693167229757904093152842387621917985799430394595665614763153530453517160963042295338436603643739340822689935280344468421184087679010529590853856535003361984654037355422101908159839605032871011705001374363487456530124954730495925125040845521226332570991516629009887386772125671304891277239851208829824005938222252425920355226864720058813754632855908271530670856243347080733972979219393724085689025651998507196956875672059393952643875663471823489008703163836507337268274658630674291630630954349194394012206659092325413489494376857476585397604290595750774810262209283957259508255033752533733006560550704464598814630967633657114340149748720616126952527403348412433259922774435734236700362585584106040352818232476431626443639651121441448794047129383023252942012943723547368874786446670608464224973067375293183694725908823023575007754350446618974396300332631083540309799662916025832659781323774982640709645494723514166037399010447586120630646706818598000439660317246894067084150190837356666459709164214906455648381590739052752591818096866795555886238314073360583082546309354504756062396914388063303403741323234064084400139274516246525369650278189769064128900946986987232586063223047431743554533065177978275946779237564410835007067803245770222156318850703215824215507621915965290066381170432062653504609188720647556718920335415714266187605438248496017350826534625964673116748963463614745223863526576197986072751125737692231453672350482168443579620743440989003470704903173533762799736623045189793930636947545127948487697216155198980324654646003550834026441907568808193682518788166390959203403531166164740966941521656765821737524930489866209263732514980285519907642602884616111719935443657101155051184024514999302151386663707287716090657726535600807899720398563504490294373954069489463711771677140337807187459141899567329414819844461892986208341362087062844225203300796411828681305185952576104689592200985455600113773043995728348942200036262125145525250036232453374788356356782004703860819379961542563693473514453940378559716998661189018067348257121567132069043608478028036285992413022534653859756032307853982912844411286894788151980031601232496215655856567143001516298206792266996854944777108885644681732231978112053194938595677218585555310816447918202319498603289800902148377944699724065540293554984819437843196767864335388099304174326001520696721786160740892499425143885080602269490923460993133706339091085402087996821795909469563224877621248505893887767961326957801084339645576824734942502992404526532386068961197278547039280651623942833147810699435275780764659255756225044311152503982834715418400124340698210332540875530312317755072007028686340403296689583963576121208197366284544071369924037382439496504053822024865732166019394456310552801406564502199633991455793633733671493236995086944372259894981453758149612856290021606737519752395096260750553079196896043515877190520692468106235184450510563325220148682132724645833215432131318998094597949124197711420411156829644193091759844640380022163729541191177970696620793327844125724970205047486611009768089773128365891332087571148981078173864443681152456463934680495509001255981407301441884388089231212520278415151213272826455959297414755078725390515766087014920026466738475996409428348880202907355547189477080271306200716763386831837990584107037304592171746378243571774755076710853394749982612123026114416789009855586239233987476245244874713321863214209315970339897815695780549058347863028962749729515527089702749685626464417097388575404871267786764142247717092431090784813361437366992675954580412746308888737725207502950204261309532632868525297357844288390295698034891658703606902672089534876020679796706722267695787545762314509135219327723296637935497567774149484129316695770325409713985004688748625955259660552773627611757302150654348872059387322456940366558641921693970892131779970963224269829923261014227756579719908790732303322730067580034836001530916675857966368222368727929700149537935251424201232823267517579207801361984744761373949766286953347736784036511672616759107150093373483378050050274165811439402491108335124364404936858166771756898436847139725487120016093323227067341387101583507111548324625936615943742807240160786475487891068809750057779543873883954734590780618186905158555251357133872942498228151757728728088819538087324908598752303564872357283981692140996205790526889284337776342733401311799707196015861292846295968576145354658724734253659880293412678637735685928085821784954059910375873209176226057519363591085549771760629963719672076681589732960177185714496733919989050267404858499183181661245281704760469083524386458904691335089058684048594988920095024856803717210102353363183502136412177405840427260480748545056089408143809344639116391183373066724579853228569456327367042801365072050688646065762171811655294113486799729455351415537550101619473813483531214215193345113071974848824767813795923438257220929318615133223100664669638657522314501278921022359458455133079050106698488750711805553606071113939183120389893168357461411807960571188129355684269873409867042297319910540628000858454036593938753251728637588374236530677090292644411829130994545427173591514321776050340252625956195725707885293982216645873636287739926742582779202246359439499075245902171670313395238084142630799335752863748521966211675883421815561184382396683544352052888323869091474177288586607426123787778096335178582413195213980110569200065491151687071642018090345932365012747414403098275150135578201490973738540325628223011682247235847149858020900328452941440887759116610791668966007634023838107341591655436648424712777026049783020188056503286610247194942031804022265861902522531446077496049123187786958865659769072312655701947949846764829536773123946049986215750929246290573169483994392232669269905326183513098854997030109265176722694422294846980777111196852179997417948918507116742754801801890122489519336840414645864706395794660125516578215650769203777079744074121551664432878403911673399824419966347402800759921417975254731879605120729186278546209553985480846980617576507910680154153867993773762945729104337943726725602335255916089252641435822736519767329730745476688686324230650968589244029366000513293708571290871692751505399128187379986166144467494588205749036686030834282675047644153261657954308837023184040488881883800310364435448529997527522909998510847027600528339932032938903066021622047294497264689426805783896450215961911197228314624270723051144272824428064249429228680314162070328423537868393251565507737495201669007722465533323659686608711235806729502228031347182745459732507781598238872089901845415304729607238628022257110354834433342552671995650454624588004314955966988344567427505569628914334416806145309710286706965023801780441006716834877923804403247320508917773747312213271710209905481763398707013967368445877024601980097162297067177997615298023910065424391559066679033345685958674943739907567533220452096263662895426050848656530957427480907812831669843935227165961509473596468194803731117282747658825590449403541852492736401920854240815227642576602857612998606494817344242439438307841198423994353311442263721489761511477980852303710859220174899802778890932539129601569367956957699747340114201005899390722795007678474413922175841118569131104651947686013557477928115307499478548918656130253374287507251030537782912550474316536237202729033865524486403944068950482148381566559318306251049691896093113467100103379537198503102929139276881302225206763191552965222179409022692016718706635578724365526000896516467302208966982307685764807228822696568279455857134709174161696619297129102934122654774064725349284690786695139627911929261922214317893516419804673927524918616234564289669702405715729998381706266170218355006241630635748043933243176535328060867409007589469755854258675756055119812424738753601254556923565952398952061059123911647449856740957011299975634802775235882861813409304162784123316823340521668894258553797141711519875163691409690404322453057505464547788531301669610532263035406546169077248312622746858030980914590262998955057080563744159209210026236478831686138829454728173913861582577659604899455530159194439120876349715552337533089879383386066644198131705007253190134517943581198379177189088736093299249201778565414333103806387143849054763736543968657974982993663328932275627345206494681907828665251224383500356444554691861880448919766381171266680964178225075358314744030630221507632386519550339729898571824235292388009631063587455438648299418948464679553708938049425771365534310416420472290884824423978828134930963130094694560932785825612864217209393087034085697586883786219117443426446805905121389870015614650051047105599087178645403644913691749103001840941194712641609043617048610502356511751459130937016129212928259148547797092337757772239892972937910864017914090257956934734848251159249668915761059233820847213737808560193817522550400816280982877636318888963189300034126349695984182200584605566469381109371303909212292055318836858552236676231365445306123643382045916743083775491961289178797321047006392941317059400390472284705018268788583798165452215932826703077010532722014654425205891990119939796818367631206188440712981119045503578979199200558018897846129396354624126451002111006621619539432848677650049692902455313643788997920953231839779800436355716208328681274091775228610883447472077209592597841285332838742244339182476241801228824928819817128044427292030026661525690265167691785445971408482196851932701557592510202206488954147703289314417260634410906111419805409336086843012625431261766221022655554904608831384128574246385214964151628444302560180016073801798815559760273815369947966991601822897292419252773081073425386438789477275996737826473537752460577647040307962749632497542459080125514199053096012390655510353251533223370401075791140347888798496653981512005096645120825821906506819706311955350538356085585941514605651020175705040553507054565648001022446540204361030530592168785137729990451756181459110374178267293546144619709070177836809444897498746201935147038870675986946999041946577502607820065407959917069936311447587881046563606584645274244640653465289490527227050295320142592064001760282990315123081432361922333789756532158650488684707498730693723701880988320966682828717820687859567247579613251676206741571740911526004775094677783405201523033794533782001339535940759877542620457238426680918221399091689991487196762750304437507431454333827152820486916755645317048473817396847585232471032739533795481147290628404047089820658781430930960153724866312564898745809909250354660590367148291491793358369028736336508658621718804596721063328068396202357702456655749597165617891894958375030048580274787248990293548625745459971846177887463319720986538059579297481063767228221780989259957589519037687176288887557791363834942657060496849233451505280718569425789044987366193491959482227057847982220909293266246462102803886479733055096962527109863959711145459209615255954784933624457139920091874200895842622061008959116214727445349821207113182399190829817020194901500927891285044731962416345218117905898479670975826791042344387409103790318689845844373613234626277349596258968885407479340040105734247853518167547001157333858319644954118208479647553662592241469861091451867271491794874589414296694347319747927614014997785114680410660202099357711351898342013978754819590494164599057364542312065513973323503544657302529000310053165161951133722866844699171426263412856698529590842424278533417323315786391250299281339513766983802651691626801456503488234018680000916811580489590510277966203391825147308639768870792842951041793831298941740833524464835009159017347771970403491400195300073197186792712265704432097772697899480942196030776625008880152094477262778481069362359480354832675241228508275365374409904931645310046465196772384781411379813337720444728144307276478904861128855506899194291637406759727649497602482414302721622639806246288687042101255941122422550715074247147521187699896419824001983542102435221508785081761023190739101950204051807903817432079999502208887833006110022268554844642506384061061321539671640184267883788090402184532306476694340092036567891246006919466656179335457327234984582073463847625748877318343826160727098304832734917560528023781041636581105839530761059223812061839941670781848950593503753966215484261603074238717440370529299266998774797791467565687233847525307335179613074324279942822457581418901657158395250284399519504855511996487551179172536916420866005066981625639574430406087748600505284040338018111534022596824881735032944198835680338309615512838762427964285620091759134064781720320119047386662004029164892202270260334063357196455692333989742749788013698196465869942933451318202136039463897150991971369057074180078271759213487469577264542038421670423584444564420655800064007460612358745022137353638409334067768513736902527083712750561243137247906406955977581171411338320874329775636136701700474049022140844149849349898404620236923298554673507689760895966376747994287348244603796763434659885145750615848167584895927264887476768944475679537940112836635242534169656043741429968139033047035965210453496373624507944722170746142914824756884869195188776421021605425461438087502466613628727695443192374638707533113939876730242752136860786029843237949791271494386405323402692549306828721735502339780843416602832420958122962409265455640290359694918765269304494672652648565716368057681135077461636616835910484442028409294504580648301033825495327197282887711831862251852684763984508879552521023732810980541135688118665148341698370806376472195912591774336357589816252119296672720303662922961833753701915900424383590344566954181890930675622679017303600782447682226062290884550590132332616770391436974133771440705333118883706284425259668857647411066798221268430977900879883380769124134652598844207203715689621495157514417515451267485938172893025158209220913089228099697697828454467308815760430939339613956191991744028122897529253850368785234121826726513131916064603087262143460438890331265737396791708435039973440304706479297664368731066064127301736792439068284173994795914824998875320244938847183400495826074356117444400908502639069112582117734642053793586616359837670415923796434042040320704032439545817806767069717967675642069459256985553953510050852203862689229656343491668603823540772593416125472506165095423131627094945954595080343112969869728678659166707902954949713721034719778638434937801072968424794742466041233176556051285430850158897049667123190754923732673168884916889454005826588846958402788159664907856753040527349537451390505452538641372879659741476459444443882963016661873946044267364463158780805176817085935467362684801414155236756203365890564187258619658439568461669600609154184156590100740192786796726779162685897090228546631800098810421443131100844621139263051914770952002855926300797423912952715308128716654574275862535154774948682092256063282596781265084831026079067508766711868143285665697743891435420032219316427554229236209745953369417387923591575207141157406061492859327193113309369389644106145810225505413249636087396700291293996927689330106242997964939487472696048961865084594877621911851776191702013115727870429604466793551986550712836615798438443217546519688305163234791821671745993863893365130409043448418968904472652240499337977144010847360398168491512576715342704350218824359871611216814147831701504806602627846157544755978098751156140295705459950843838904824826447929264732713050571607159380835758876297500206041045208627518869392313331913623353334807861830541344506676294051227805800746438526216333357265426040847251436358136397355255203877280477517664949260719893377833071822104884827985146900153559537780155612118617365284006023624796422301545644639507680026505928983939648469269236663738972432957406248419264749659452867920575858113508490076743044307256120039874983051905116501390922283402737518910019969450235813717536489436615721803684227727073583667531956688809824074041957313453339888728187414079410656999853950390555322603666026534332789464814987507537023302761743300613110286728353358884564599236150863641819386453532987987402088707089944192149356042393887876233448473580284763298847736799457225320193036620597101964127623024181296178956307013150304485373647706793497848661414381192112212626908208695604758312138671972890878950422875753148776517255757162743725018675704108157905012627486113277086733052678170272489736429789100843026726933839474309051373490057072131137436421800143035146355583287020153224509434935425278426115446541356858811594196912752456655461698959315548074329823192202807017462266694508950668655333078209600810025948780194418393159230814548069514144540313001670271528260853898961360999410667569010497341348578727703879713702235963457040487960905113622074887829679364828069817885651082423155986085673718880405087474939444451595670689280404979824071492311241786420177055920100974185420236748228285079588535327775874896750639494779870300430706368093458098455256470626153824831750983035400906045571668236066466872532866160463446735082031466890703279817177349877024303918258463244913727231616154218921565558069495953787851555950454545565840919561140525171221048429686620136831020250531788937238389673507578749224988371859384154999532619916129061594396675732880376098541286978012534601109789317022972361280050932984794774459497451976251332185878586932866384740576677709886832021893646771973348293570840914413415578041149768675253961740803058555297961953759529102662641423334711030521850641751253048695397043104617523626593132734633279181309891818602645077164855980345783921080147965545246141848224928421176338143734971846178831874720515275200745709825514543903743816910649821050774560442533876464163582611115551914570529990379874056620809728424914256067324509969180715271008215715290006337306004662693736538284494715666068125324532419872600353204661107579334902102581207196305740051056142813733739277235860760289574308740603487595779747749925876647216803512649025885704819294186838937089220661721036831935478908969473305169550061525001192477041416008284420029571619723873412349327462597387979009271788803938588579390555473178401655001937850877097513272646278084005757288407413865926265703417523422325382803757432989048174502776917853032365771266248502719464604928436302213234711273296307848779945951476375254153271810409282673176396360227457077148248384366358677147924419438591280204144364765610734866586062814333828490925174770566387363402559355624015359004696316922515961974958744217882006284495186414403306487825702036546424277000356697879294604935464355311560481616950865361840111650448540444914537550797648355020320538064442036372084011536523398486056816989450926356063003701834579297892891016336070661788427777106228157582428232050729291737072206314623507639999957297937767126127829455996268571925307527949029895706879997808937338215093276420167764543707640210541994504913569806362112941445715129414147943359161449126484192587213380863499587598011225549534758445723410114242487511022516326405523150551797403854253337501081268393655550462573183988775084791972782734588358410242233890318434462157392572707629357564629367724693975311870160705670506071067006899065267111619526978468377514440774797848800761406899995323850469638054614356318781871526915833264285437533915507724858706738108626581342890428751827328206987067427500323326583981263933443739894793013700151817965614615475278036544412446816046660758247021880929877035785604954101865461517278435450776157395134720376559787703579069631889284269821795779121033591703096429792142279210629181714301388420031361263878109245629236981085402923636958234541263032662401934470178077396390735393358060432009436135209723962136442603297636532328333585951801210425753646161402328697519474209241511675337305250195933402458764100031818718016563327623385270220535633390519496469097245094050381874342055311975399715847675546378740158609166817647813525805552959182725238351423039682570515833375054939130763195495226996908932031559768528342108257789071007552581059824071704819237521586332916807354801733121079048516788122580948177292908952967487754629936295209468629799859003048622541931439628584132830322328334615605287705879291288245645139124760035359027081362212707177001759190052432486913639068941990810577432084960500422068077793547155444213945894312839520019798304424933219590334681221366544357417893174434165711692990672627017925438510289775800872025512315883503865047213928139906209626073597024990415647801274256415751746076677620799656725717453992880284166604917528032070611797761720164292776244534650428437017703150188695275578524724475525976729614182868638902085337305649884746473582225262715368882961082839639807525465020283770074244836736372669707142459934947507286755257550263450006349363670460721780887052438380758992335575002517639845869218394498663060165645262323877149143200049068337254116757167726603313657828494805528426849270230805388250332024639327638022000538236106191738977049337651709891993611322782513106276167999996112837870872727908659475402761494660178363708322282714690156961944231062370256656821900309954348327090043898080464256808343708678740153522680045028801833852618920514916593655768991986432534813165316652696272253595837639295743172672536192648625618370077683938514439753871000376999881471496207553148343038821226566564911901590026253844195937977244880508325619200387890996028821503373453685440969701408164423708950787640686399084361637068670621527725938629469528860860580889826122905288182348714454843344938486667270867457111170669545546727850004891713359032884392225065526552605095078416905488891383290844965349999621447449737512670221223368717374154956878224852444674103100920379538790427159996076690472396487104872278878366665124870900970837543778778561642227355579466360882972512211973001071716424591395490744150830292629013206934132525826255466292374697430847178451073969414624613040976076332488907343785490944342228526316584287554611598203688840007879793186587992021184806825794396907620173577418932137692710867244035872836520936420626757151073066110257992333013928046769456487881430569729813236123484655500626247000777709338196802242242581350849827760090285163377066114824567777931007468219987337359814311355645983246683354261693800483579415257149271109571256313462155513448592223330785622405535907066005229034042401638522505796023356781037441326225952048986848432598762230994329623750204600954043781245535060539475706283172795156480396498400088664734515723191786901469481449368315644397718018498739672335984018439293531907565459885156557289817891933672459785803759088242328178758279615714594594916586536881218687879855631965599416240045638944558955559124201450879389348921822681106286550708061027732963251790244360310921735432396452354626830433990186752481681376589703987035871873828904757359606141487078944667236033290996391696501557084335962428902614313088786367581601071407968339227879670837877109606031078008090660635026595494509722479041097617484300284715132321817095899621876357456424631629823846062095297543248275388973103161340983735451071558355831491772838770716397531599106499813771991692866720413374893996237147792076111267481205963194788896855117685936111305736103095943816234468710990268512320698969149996701531822250982289145711136367587512889465951134622874223151764365618755927617998356320449270884138144212514318161821849710264346076573172003360337904313334001689669970423312631610990133861957490173571797998599467225644517009556298029323979369220968526656417185048731581964294911353419995722707089406358756775409577167038700349745294532938108875525346595590529715526432699829308646444949765537431801761847285214591624401463529261639880774439078251471537990348005733216338458629050935406833589367505450972912738911481812713553912613273814557244846344123398755709211621668957890046169749102706343328610677765534162568186056300235503977951427174112258577558164131747453257408141617411873196799846170673276513860836393577922610334352429439539329935756285995310667205906802627971623346923873411536639304212902844735281747088337202177359013886062073431309190264569709468404232192387028173532870013845683072722193340050714574564751289054927017789781199487980076570453401861041553413647010572615752841552136170572747520941557252012978156719377310580194306792096719562351170993519982976683962406744526948445417271630573903538934059821623876515349929768820608969306825937581821478929357174085268248352153286673789221924623145434875216184919551609753107530133180131758143515256451506747603869864120733986748153760435183222850914537733297741429195878512588545890514560912233230620686187482987301500943492968678148895169785216063458886355814235105274321787135530505215198634106162013579221560452223206456329892451176739368357952477589183207440894904725483293582146023216713488790326044759921114892946114635577021952429774849043335826272197881877373959479020703151205871584556047502282224387562714545324827802105673028777005858964395209811037785216617924301599699232130246346078783596543963001025100175602770159937844829114246139700621013004905959291539433169005461867313301915409370302867259755840183702734250556714551923984757682001519074122862929463358829091560955274858321491863552363000130418458380413074251919626148981744087751024175088492650982332552822504295298515237552564372356035087015224487611856180297295672616980494726978304836831126584733757572948793429036608483334149234157953704456540972835410524221004870092697222406438416317993247152699184708095827934087360760670594986909446390452968585038841321141520473035360247655019482495251450951283264455033353891069099996745299916215924944797365968710641514550504829655378491810197682472446562718983576090081928995007949355922928350539843273781847654679689593557594542234667003540620127802275250786875712122315732553824228213189531952989337664925871326640392275871805769990805489317989970994347109738225900030662073426893081625806898256992432217320076552849168972501910442901155868877035670973683423717049886763068752593083027959131064348234711402521082476062938136610829302428540289982704238088907270727076955868258547916740489623176114132321632671784550168290443106581447074099534028410905802899518824756559851800742054921718773232701704711455157366313696319081591824534266794242563935926631749283837399984148010138294206372693261317279788743170071607066555882619313686243986593432525143308679765507729563321617123617937826547164727269756145666607342617094087673104892958870148703415308904310129610709516748665419147772298216682664279219826090020230391644180824027258540192109775430533381195662190267100029891902722423887963668896292023617613322574198861955102269109278092242899008200410806503808767456173598373999442467501726305559711096177752587622854205303828859231282573075680740704380103163655380219989788389119222766088322242782214857471079513642384092432229096169453104074569808608954408368033449240558084980207199554909673434590584441124253661271314780777393837121194498627457641237417536606892498849879116493378388873262930341103004003437043412319365474803909502243845950474508654127993151018711847114595939346500811752406551783229939324277681045116627009436315075820176046353526510300882977738278391427017939977482120938859589068932458650848911641370500320942881570968481158343748288945222418367195931569004712606668479942061407744189063652032395369380923860184215205277936726846210358745029723397667517711521082504289475202582464181847329849849300166215344253881048363014920227408106468078621900510557055057382435662331929129090521845389522325199263134156772418423601100971510270915067942626427923098118953544379746300212374554624894671295557426214759546487420039410441070378502201649416372844241924488562034912500071744354824233117135270623237500984381492005719255999741545595558473752656013034430256020174463356781113190166337434728780971683531795917990453092431494916001388763267121689980103392136232711335656878430672658443094358736790464913327944366148051084450538306082794381382819215123246310446992652632912572899029500288349864892773682693752874659221119182995417709719042546933034844982397119390819891768439992824762649534349647807161682896898321434917915425774924491710824433916265102149935487459002823031547786867155973517130458575829510361168051482815626381824887540073899275572531019106361355390678405745687872831560020540885621198744809893362927310246099773880454810773911095812881108345278446068098711071603410926342500562879555596016894541445561513576844653283026889387126456554098486003407115625488847479174227293792191614424028990157669421936759208175931497503625643708312796416059495546425478547949453873133246521680285794822632885580653777280112913566152974516166376422645278930491112827128834355125714503161793562703667519285295158572578428596523587457116082894139730290523653278526526615992198187239033096583396976521507893645565395343720148489003009398110373966239031172985641426283620066848533497547796327200670973644688635966308706095283003084109632436097767013190431689145006484941989472603157694031163087997230352649960071709983048213589592546966341858225731074431413701590946882406929953311640162589241388095021459595691496212689120814529021325215785300147953766599389281872279056165885445712806719599234173076166554426780685428969808734569187876839942798787667032396461623562320868152521399904124372718741192607197100471006971574027401766551888852825492171304511437553478250047264115831046500681439671272164957168846330218925271290288426790599226394655187640454787021189826756037907278385466500912672030920775596712274381128915127139044491843277301031432945682903429893293760538311546088279981670656749562958294437927727270788012700256053061681051559007434626027268811407446975969684063583550992592962930140393410722584350964012801316486752440837119154378502189628291537010447771866939110851049104111523134149474624173758517115493647786099974026908773744204666567919590916767310328248707363344450460376772308693997110706408311489105314646514165412989477481540556980158602645203249470427707034945125509487860226510134388230116480817593894419476421553277006865709044936640281918833455610319026027796680260959413835555072370780875332995693180692756998883823899719436933404098245854427970743457495389163921076334526258414039455983067189796884532407461770745171114600891144827721910959369740169919020240182539280814386130231162682412538367779884450945733148930913088477483779450282153369247402500317155688365777853720237385110639083772040556097680655297508315195591861209319538707277299462525224883839975466763917383106505360274572040752839563800040736707591808336030543421232977290526980852893374644410158675070584352863698149999586178759485338014850233941915345733419037005809479128281687182944533081540823607295524548922156136426148700932872967423846828730365769575699040950884651091782148646915610423442329492230062341167010024395330139532185980970326695155632146551392247433180158385615423707597977271108646307840061718027714210854320197269848962070782415518053046166997316815713526165711593625102856747144297762117007406006091768505889258081622536180679348395901517727461487100410089987977457946460444540819599351279900210245063534090739753233495571678297118831612111989269571727510374898637849469224323498330373171356660701606161181612120768061583889341072130118407537181327387041722716101382180605780567698270533590831582806893650345427899319342741670556740402627399981615186124450331280565177646720979912751319823189609992235814089340357457857329135907283279487945387711312374412836078290146544404655340637641238683834769369862973685374535707186520566878556073285005954807945873258060944792785713891426198323307934843651250920517460437408778294779787943564728402993161519580585582165492751304055437696991052755108215556712717500511591991967975253945850202012198864748378163136878703173284937192673188536106608053949944009620983591237020666517036982681332857065830364533711339159402859687301714325987918718466757296702440539584285929614514207629502152654151121695233462326533222740467557520814394921660884212926361022298242245834175608109605395927570323511828885732802211985975427878932069062705467559918359894508481311866102618619484014503471638462325263200750044987475120101390580490624289749966521185885146566831359036875486408856257809250239947872512049132230450906972749206067016998484816469003495157778930397626727663385879762368400023821730555605055761882885512577405641192447345750518918211190352485121880698120653715617832355907856086067951618905983461524455881541612719486766134087355146763621047550018672525271340366880051757397512960659887932659779384813731998862094094980508889665525114833690629745987320703032267939197519372360981025191935814606731989311276384797047476565886985796121223150456614400688039353131760978476784088385141886277103523833980135893290139274220659516747114467663591039205092839841352142775197621768922591098942529572537392194070977929577610938871718119161587731772299904465548098105738367819254021415949752196201877121047507231502133046637891470344605504425991291254451192721319516697726311829332408431834436399898285115247848774030947983755578196678720578965447239565154084736092159098730481882807071065630474928866911220114206139563693898899661802048786700381031778474324024619526853859923302355135888225416326014534672908052359725964699329579129349713150502454610806610957420038534085142564637952524652211096273512787586666263329006174652757315688884040823689107157854717306682958293390950371181845160452377053717366906486521694043554264448129617696843351185043438230918067544827687209840648978263321995903886603410887130659281754093306067912062523447529902557818949978249024415525551977162653580321561803262563690486468724838830569709128474052754649053604031553288643880640063419112973524069224395797106863393416303464816538470120586601144950586769277005798778467918600938433912346338356797190020561684733476935966779681121207839391833455818047824031771135563325242345396845394411356152989075156979777144137789674583547153802312739973684914679423561132942101321042987339437711318113398879816049754168852555414301358035162941959021866507399006638831362196430322018033101816615567283116378422445604621032381893204379926911888455156612117161136066462460645027759574574679740144128209387987816562501820914351869523554314610575651762306645734834190013837699227350980053976025956494800686758979328597953014737418533272949588717300064146826655030340904111309714648237314403260119324974500846042499122109082039299460256843946176672320552666772633429804496833352710684854697737008331569162148602655929374109976474472553225902054385745088345622236541465310919419173662350211684824513892415952732353730543753373232126823226678930490206475451093222341622003276615462489600143285053117176609651128716987323043776514414489080494670411061737174600166104712343627947490151990258546942179663156966420429774980321892829848351237553353507684334896303244878943381192931045398081002434590591009830887208281145279721354119161613633575537417946698077762075446991525551713051197832339977493830563395437214352292270642407236447263960834215906523335088939609259339096601809626945046394159235254597048013173883678349207776820918932796280490979755745820670133725039370213379752926747117833917108248842255519014691550689597560299322919750628210802461326586070821191592581125331059021819973674543347521802784448291745870989469061545656217572092119451879810553359580153217934865570193746086794069750246625819787376086787133901440823147810498654998100103796876108499651642330886185418013013388463458735102355052585912347132528725838536055545574880876323157187231392849276947254646367724182385419862131228038262457710471826718841503921190147322748242544567328751620856260933561286622326280328547798776480789400201463097333257631255294936716878441861525005267361257704728412981256346821547069898182946045709595714645021657651379207321638733876573730927764875095172166237543418867962362254185751627799592250710140008036673861025793438024403718485434527061023579498451909223895743610598769464594142628491537326957893123180245018443519325104243096107660222394941904135364301166339079060017577617511237946402398885325135949134730746284933006519523540331452722205079210511869233393478347477610105261673324070763352029828449914383933287364636026839778935593026473909538692281680229964885954540156235484116677639181636517645250886464063152793047037414394627814255759175151874202525395558693620037347689201642462384127861959752251782442434183328474416709072515541341120491344570893125247555861399065344586756007166879184901734478760499042412032216312290413200729126706514595374546406439683012263073424384079489705328018026688776282275040780860113737487670473742623782033332441015032413060720760347788837333321573096139996888902831256786355837348644733115963037783409998044109221398819424101629657686961157093254568264341665776388159588326917139968895248826236802968890723097008461786392444028888475231767059616491853802752631719468484534309792681148711768249453149467663180031103536754578342294356021772782409640673943524840793903784343809183467709972093198107099278984467162899722404323315566536382405806280038226892000883661845854516902591017652876070981438130643568052104359622139257383547169206547130651456378070606667074146792988413244172090896297814540950216309144825836676686511252632454957977663322179047594851433028591145388162206452443799426486366206559026837926645686851761270987378799050547384152375771002118623609039126397762593736462099269455495384974688456670626507483292607068449046224446128820419857010499233781872416191135528909237253225528068317831241646636706910040859604441777136876483192256214509840217918714600619807661247340232325004109702211062185253135228031699659074123445405674483043084055057894724224303441905792333004517263266029288829918311622643300732390379475662376305084328660393984564383259799644066531298429131871910918410878028740542976310295696640746154240431851454592036588030820677549326657785604639361245416136073753744167875734023164504667127017444701026282632369407709447691288015215880166907806565856013857635269335288021853293805309961315725583547341361812555903307960412822969002319339431478081684969264843958003505238576037200126431665615698314558311894003204790217590151824210788510174208700994723387829409751991406367654700427717279626824041533406324732448618602777368269488931250717963762756631804833303914657597886986138492863517802669077008190705594532491972667123254145729756496081199050475929636891776895583018393318479403651503717955879354885476800682891749419724169628497728565082498891950039457548718598539408354794909604661257912830893126667452249497411954937718058615563911263488215859557206591696853608603483116514676232360170965803919068309327767733128447233284656981615400426076428572394171105259488899660397337128821023449795608622874587260669087647757991542992020080573947112626353617349649065824861257190633334426329476955657926011527365277417545964926775585488738678362815710604372646098383711525436763504108574515185101575631377472498675121228505692614485083712095818527251288927304407769542579267364012671565749892094889306128656184227001700233030462192639279702949744099245813948517786681695204232997182767523533721098661614098150807689527395986212214691380710283711928790658164706856759476203520925730250262839344568177281961547583072139823029302548896253016636018640804240582958452228890099692842589659967728131266665162176500214261045597403040104977924201150556823389140364200670011936365212579499715622882081299970677241095000853705031059779342399679622360418303274447551406120160915176613419198543161868040883741936863179058761377204767487348541113742843221881194480902015792908870222721635359356253682161439084607502893399367293083640210252827433836628354224453146786176581506328362794996691794006356981445364438390876885804759535968799195535915988018595943588322069199250350796215323334108775414883981277558872808338252654491054709499538918082502893975034333471402467797451057863994766081750289692069714043514286614963746342378536866165620677492804513220954517511808417745648721156090926538010223027916145391296429727193714229404011349961144265107555649862590575899620458632605168573694254539413664929182699673604739576068460655285510458535137997518513244230081399926906893087895786178933819916506336208424691614398109020700275852332388006068892119811844793457773144708224481248851901707664700491212668735411291281033616494048710660080483018481109491371200550622045385061077319112029661159770049877538082691928685666386020670305875173507526759855470746797201836653828339123190550661761848091333064417793335164600136249370130714894515605079060761911277141645738480395710699749355328214449567302885411574484298673271097833838686852951845774676455623940054639194595513276927653197298274509729293743248556322510060301046294735278126911985118244965325358438452913361175769969170799527791505857221642310430783354785607467365430166345785430804610473799149573506420524301634462136463723110972013078260529774062681941262539808695699292361319825965758938334097643813110229483491087345865826933481407999764167735208410663141045722787219496175004611721233956429679390774989544514443988667670924189403885769075229740987829102978078264019942026946977730668492741754501582035868216613959073666863600262068312777120914580970121805743250805802794050950000391572909599633602113976126841146584366904555423291331771084458709213808818815890404837256664383495031622990004514731391945305736390663286217071492612554894790271667028000457148831868885721306731114778589603325134744753810130910669137169552158515370751860162484174086625478092476450121960459931622842163054098285178335388726487119708217637628483623696279984114256510555726267072112617665730348927609443453535624793984471725064187961591587932878913293653625206920439051297335405153936454951164939452903506501713072691385879558018201909698058976328863405428949637324551178827965836439581605922331828759068403344860939043979563357133788438740297449257836426901713198489736266525442273548355032449561051960028901383178774160971264753424565704642598112219804220211986357473775136189284080495514743736145547413067152629222764835717717892902697591247014699608113348995222483105375072038837754947367505500716414546378162496399974444766880830897167448196069307204169178870231396624695928363722657184817055051530336180538569524933186039939449125879391836215343931876925546823751008607260970454576624772912635976209288709043460955330340573972836548984554177299292092154179223963342137771905393158406278802133467135121377038292505410641357765986430595989483232767938284315380576507455526534173015104745126923832981668072606204559320333091254726182485813875273658490174191207911045704347159363037719626029996076488362923356787738473582046361482728285922101252731454173835434210044951635186167066043129568487875850030233220281071799940180336922685295176200023575108812516107622717818925127807325862746406198991958703277356305236529010596745555805922368714325578403982484300387971170828165691978253210521917442014315236162407627184983128722562711053980584913706970876156317270952285420461640181970949247642899063511259874466185751116538482145062979737593391423676780187984293424474615237604142244792069150713272135996106764831011047228728754422607940537701592970883722559074882836880937685512680451214528532402361419956983040061702555941361585980091916736162090149427211658203823606678128657259809101512668010659717389849726413267797956489947394111897898610314812396783534196803680789289762220081676003408016790370826145617132401667235931824487091957597583184493748578752714331489247782430515117676112067955240548292115297434885901494541294021408157935553729184574480943768017521444876261039931069408548037327789615945307679227629032161464578114763906280450508784909272096801899910419362790057406664363845465989034457712491494034153726105175468260049404508586638247628347582262441267498254751156835064386483498817039275090039233013155936460831152096150334136885843000832593442744434211009936596690394067907165986530293816979275754329969168325850434606077655832367487506705035962760924926627804442012650839916228248112785418538252747219666683246987734255486738845040373424837090189192632017694222949992078732200839511372191706433309419016373805835172711425889895713649159113348256837880651483815010874911887273278625874153631714431527116300950753943050266438129033273478153426023914010031346512302977415336466788800764400644614227481905478826860165306392230619581609320891510637982480608912507362542249719806248535979503468513552871124608748599365443560632313671834466007643148071433194548559015451389077885767065571904064147343533265587711042589956753426039531121576077262811588940401070076046466924268874513807086779588924234550358178810124555876488668084477371480015756823786895120793051479824133770004749577774873366148986971333637975256486883283701045477927821074596222302570387588313727836830019102675127283733650501977328004109945969183753161768146802061910969571154657938415356046792509217115749071952090447931497924203485104143743352119265434541799906759334632059993398562458863364353626813289490755798290047833934645765408673484105585938000143358668502776915952679723977821458562629376346022403626529413000002305966832899059784676553367441852580288424095447371525104353604197412242915714441265417577808237143844798656046089337413392633133496381591543206648388497599812326953906615299765900630817641252661139367713684729571547672270797437500026367253699714581068491984518976993165203711369635822400676487256191865632909511691631102990473887675828985526788842607435647854465869576079024426001047406371179077918876943876222714778088965156266335829475717602590753668971886235459551058792807930411144386575796765701252710380234661508476330732810661680725357130352685472421419328500393664881412288738914881562090412641794082988079719986745365246073549031575935569734527978364043443446721487643207674907339049373122550305572461372815963504211492021479959725194203307470358907357008062449753845027192609169923182494254898300479297794975654328158089296735364576918329105955448196880385305006677437614683591636868107082621531351191993031023220667674443598313881124672864417896313061585203458823382361781141143247044285316656816216109958447727386774834293126861387470164294499444752402490624613760636103440751812336141952363069956641887911867691500852447567253850819285054134516202916831591845801339452468473423230386802862930663831597372934083606542974249196829755950080690161963344251133578802446641398545211529121253745232552592182625631537617632950488740559395692850347469682513173188318237445019993785388626049714699804641851502424087340759331277062766819699459504174657080862155210547510308090170862829312793497508144267083356113248880963914782983131578942454475140818564536209373342393860370764887940073762954348253634013993114393582525281226189058810589328296892346967527041222901780463672449526613413724418603685830607454238452623919841734552946473837032912602274580094523229974024436775823955385813454877159680776147970175097265079874635640549564393269108656638956172320133525325976069502775402534101048025065860360755230408544233957471162348727903569953080213038308400390975501386198550064287810328313486724732696612355165635792247717754730864832457811843609528079004783043838740552997271837484185930578714105382408855904740931184351040183821575267813398796108714718231455885139761981218464866760130631445601629670728654674552586454462224004669241100516368576242894996015583502597195720965785263530186265727611040448581116585624031138618882680946815918511519229987501750119111565424623524066832001768405605036315803379354729033291698844157571868924120537589421710213215439821912547845523595870125705546496490435847887178164639855178567840968078917689863555012956416448381137713758748024158503879252114508730630115544975092927083443755680677282257101421310684291980435590362384740722981013686420587065051681582906024537100074704643629123337125401654013231767357160789078484781164930345240626553815629870163555895157815375062610879099717669401261874848007839517543045308732892168954039408770469852892747144012048584420793887317398130464065857302655136089939257041315787380840899107302084760129401894712757622954153341422570805367478785550538152662995625504999261496372914525670483103151759148959424458002797505030330341980895479097646607116845570729939009170594000783391449934106497727709213545628803329617042668127074847037257748693678218118589184419774262112700682838381611962967825431090163750137616738165377215460106264669504635711646497518215253869922082361966920316128324793847204717117241263427605060824212283281605846421461657136564418778053990777944244082870452301218489450259743298041363875056072281623662661135054422457802444187118484606286806266597309962692286744003067515993518320553913769142386482007220178337052509937653868252615229720808302293920166769818218980491969353913972240809048218003839998709812093882080348621168487198320535497206568685823490643402192957482548581095586678246343606469542147029772347888525197371228617825174909912955162266485410868348985071168378810182282365488717622075046837284745406260185813750530879925790288856043759765513261933006010631900408602209783585025002615393173483068957799101096466435035814720753762161390926952519879092971177018434061094572963153641113810703963928955665621911374281375701815485502096699196648817676612744221140515640922639377190126548041033100557323750955492743895419241107444417233021327274982014441439865153767781889148478474472364743635588389533716437463366783360087716533451384807073690761698651953592784289891812820203051990296033366615003430495181498449270664507266125790656713689667118605161581692699596713760152687981665050381757492279298431477964607082480900267032377116099324643798934507381358266105578647529497480716331281094563776442856476826331757863559982875165488639774768905561341989157346541769159084038963713837586726894835271887933369815160993252451204207839921433393619910389805331368603454291957876798997428488245707659385428352214486103016782210355723655350686589551680088690481683913040491746814337241943345307273068184698181616418558185064439229996337141177932398250260240427878308545736020715049980417606097718693153999527106924807449175041839775992179058820070176235857629511167522927118123951434353124413018824089346766930777300285185927860039553285133533370963725144232481401063389928110399161740770913721361101079304100014035300545940322368651330519227162680508387887017324339427725523887586219040310134103427832179481725762889348643809393828412796284256674200387845704333970426371492999004315257924965810292423700561073348512391595326445905229921695172382086643369202564680175953537594020539639265142892388315655128738902330322610338844823722634557852719302295950590069394118052800361290532625610903675558363209267484722038977748340355087788956567452300553069909063081534320818119447057937718645478379734888957998437918028629714529822000894510350451560280122361617575754002984134138758327060950647072998423725207727356386164965631659833247692317941057740587776253106931019114603339929120581046412262493257153558937648726663066846238272566728007392311408831158997684166444969639980051520373414515601195021176619480441229374050683462940826979454861416666484598693381058202600588589924879933327725871859182106100111163037221604873564989520784405723925583370693540880537511907072091481239184022068641068840273230353959990174814014469497799336690691059298585335824837064331551143930261638926446582845464033947632944478695275566030842794159663296482698711018855458345923870329626311559172662484974358436861184259357553008727508305110666380448483721154558784170929658103744259946504016594304321281556105290881632264632323651758803468550740056282223791705250851338718547684010209344885976391590697644642630127904992279795673210608232450132152256502806987778085147722473178348994055388993582437291789721239404990714176163012063567129948010947939021644405811011951558350035199191809315098717864438489556657730549870120041516435599125479971891450457388305543341240741850078426197349013844592270589130857683465637167657396670715133305494660069358371614142037440826395572181140926056836235356046222651765154335599681899091709118771341132943800028755086827389513428789675204352679349284978294848868640394445009764604604441252163375765448804779465942490456484792017567063834390555724529021506893280566747903399303967184478412602572635283624408205523300779079945264042580768285669010122030772951656206068441860125393860077163491662645072214620684370967086352923170306938225347094275216637598372969662649829574059441045714605395912025753975993192557824949575356060699541539339188619442639962122638113756655835802093888702689952988932051008050582829595603846845263299359078858995538964036495069034234219576815565565107963031778982610174780432327407369022964114426823451904057568770937053849225661306511270501440617727600883864252441029168578049029107280413727299779381508134233192649876024098651610742933553135527804578646725853230868847789350008411046018932787138923132563873642979438658446881427985426123439734192934707754779706582225361145475147066717839012015393575587079607461402866585802164804480583611381364700123042973684850975449623358795031076712202481047305067559027863665203257145977775890156029486748919963986184811463692024509425579739205699189973821779976202994883582525025308680415256434187648628955957695165492338097856113739144034613615650379404012157602302803478301244132991253340145738630121234956990562208364172872749620632822094105365209735932410795614438350992946962817150261777089605762365849652907629688653389496490349856876044448389817082144972871936080956447653928006044823836655711643036712513065996912976277957285934393433921818219183724626407318395781568423898609984267574342919338511634820893514148090104981671573315262699232275813070348175344075414242512100341318222929280244159539929649897657375167765170346874076726112231910753065849777522796235082764190577787942530816246348790916610793058499617481808660125718682477630683106554198689705024935807462712700616642041351870065560929372675268604263130054604453244677830107765192011900938990204410344236460731276300229746092383645845864213314320348890094537125373324211396375088833691117303802712443419937443019210841622337376390512481897315926382874849043369162282425024711393353573910183518813885677903720292421765434061340371191830468325122892837270035991431915693713723873145135091184533646908130907215011227377611299786508938251866372896342586108265573574019900416709463528547250144146206421955023430960151708479917594922951553830201070897826282540693459560312308810888228177914830951311548171148156147757819095159720576839681309661612567944137576992593091060868056041946700272473690655182687317323701225752463310179021351221902901411340532750401967850778233848899942086573031158439795036250193046414799734251299088776647341954476486208492035137409672614991808834376021777132104852020915442541842797053407764624992562633614954234107048148653727205288512409417956076056756015774973513442628134743391682252189019955413758093888129242064281051866459571933938678696586558085432440220569141157943053503183135025177761867037743363308913729953810156187003156481016916306938090661601508275148673332217291002243604651745579990406040898266401670411164359032711025006743216140809257940924935324402171930242430404694751351512910241899217120458846163364592940005253647980831581372159888231068306354042869582610929104607155138175216744733452459477700096048131467871006959843739015324563531704125098589561725920051492676667980222746807423081617037861325463990469102941379356562950850288999761964587134150216296911948745093637205821020654109687107531385771403337128322616478734124470220265317887154792846658946508008256674360851484868175635765956717889596042287986477887871745433525042708053487506288065274326949748585356582390098172526625408593601235632324219336230670028294842241168245787892492908532557536549209640868225942593511282595279048198324937128922732424791410997674962109313247472194017944302296180021371125732387639157296009865607881982233822426828375855282364039298261825429650333490746293714871743376456611369819733316060269288169954045433500936350280530965652198682344716735384063892878427491639703590515245105461161444015304018311111410929624666088640402952242640739827229551284359016607954209942002451262887707381335226935802391287975918073704813956737495508020300805234924729469243555731141428037577796732841391046668184476951929227774127080782578145252697102392826645142165803316557242380035287968572303262903059605648032489743355376448500589789597695716497447773936183908798945896433327739466580356808677629041675867985124830533542962999522126042221120059977689002158631462278378713351446646328886251762273431961288771591463546377211152698001939796295605237267806084578962179070044349889953805933190965696351974129117538097959145152660054663739779571666394992334225023146071278682128942185162653687933775929056590354629583089247092453707067063874070132260232797482102904388351377444816930460621771290640413063586251604936052895279327805993878801505030715658330484433059055080007133999984764699066824308645043107567047950820470214690348922359887730623673929203083190639091920765052358829839061367551525814882488605642499476504560565199453512389729513800362832387678781200098930539076404775504390483199794521561483007827063051298500746226268984374085709538890356703606747080629079493043762542904111909733279286674187915711691258356985468915786008870138784247534130202654739823858648371365894196122195318659630910287473290956481849093557653936587095473291017456108329846743520029072938882650463030686687694986682437967638865831879655049104671753894319998960347197989440274647032141741815298285111461809964280508970609836611201845952135284900736981612410919386988001700771120989878954282404345649284997634837121285364628105209532952647203888410721201166724859769958893089672293851371044572977273427081375841990236763342377688883510805111448732274994717837916289271657824148656005861178357934919919577510439197576052256414406871947544286929596177553713762570587358324528788698136237200806457900515529599496531819662217028976693432389559774070811303587647800298086788284993451365835779897736589121396444155782991949895690556812905473107802953119457737875726438799809515688045803449679524621283406172330481686836555896812917292055780193229492328469362221130032232110320433316231527022017115358515030165219028614359205858451903301032960556414206659318807312547041089311369410093959580958481776853900544500810693737678442894223268616957903987534447860752083889383580204851212820282114038379398935177414613866443805396625917777257596398196138002484843714246563418911450635047904626209568519835010257082324353993729165182033791923295068832209368242521553717840725191853131688740124612359681341312730673416521735517497885578581256808367514942115053979988364722083213768146686800418627480751678755774835228974810270936759884003933401880314602064288813502988705729308595296519460659501746388879978235792160094581023663381248514393775121241400037743353468649908931030516642719994212322346613306369552998545379161632464586877519474663431063313323747096178583998525023661677616286547800222808515777872878639948695458540259689707782857606756883133925570826385653791993535414357794720549079864927810549721111733442924259182872351584618515475210990689067377070342404675032025438538034283908455543106598608469874851123189375174413547133010646737888363505071692443196579393855656824939003338846480871351697155195750833432225132057635191156978364944304199223730724641227891151909781199711537581552591308813070560334740407230935425673453206800633025132258242169652106855607335091955381170368181697699351437393374355670022830217090475596444839936864923881872422446009163782487002884342601004960963791182764009841810587346650631172072345220188519072360033352088237151190411278654229838747814826507594706121664339682483160839220560514465782871101896183434202821254407979685471521655501704576380418695423472064480872525550630708116647659441399469679802966981193499380949178021618002648795149351987217757199385022737202038407514359914415161772050800004084118919991586160944101437884248127597737362785996415041083852660548561533445610040775398630066455424370001034193549925270689861325183210179801689806161859168796503929348138696331958132867059458231002546264348229926818395849223435392761803732942055099495999777183197584522249518753069392489223565010298434932939013929340694502725694806860144906453027400341013024810532095751013840545359532087224598584917638124180871304174056029719237979715178264885033005323642701365064298671265087046915070875228456132457721880841834234069193518480328625734811054023511286834908719727118665139478444741947667207482142070296909448312434704926428382956957055247938265413306308794199095306033874116120439302340306546253610205563580791753033713424397957742700300978096268355249673243925524523848637761006498896948324481575728182013364370263467436655314726804669530892650389494275612425630944506594181592862985073404788945655871822220093321894146866251850923729493958194007380890191893573527314579464202109198105499189821015290590667924574179267394702186210285672665568108745777308105731744377164236887907722944945980447015490069097019035064929428237210360788557544867637778444848826283232314660000577816094621245348938539349322876752656666169482537863352754034243905064950729080481963018630156395543736245190976164748169779931994568815759425174909678850346870884615974030785244554369530581591726733202254214607110805775066613685730399781375868706533474680385650568677560072161971683095999660239861283316738702777687208218258017918734792273778263051214254561616333576381508138885286388893719385808647538047471386855496853185448667705999140185491463828490084590259907150673123035529211241792229650476542798918445719783352413925389643974194842702297695807631810078651467590107298520643572633725302028179616849707593836814879626522077578788170677957841544759020226789018434039478780134171884696681376825809807056874311205068368728457791012276310403114542635452652266348707125943236707754024377309786392362155908632952370447907012042482127451901573771040469082042965622927023543655093763220457230430629549020880823103471251070079410062857258881522637228801392563712558287790505418479018406116480004093532048129550247242230176976904657367976197084688294073063717873683717359150681690685554686021295022245347925161079102368333890650349805204816121360405232929794590473678885986025069573605358694770770708453455186785376284080162493753336514746791388060868430224091657103308079416845471820727559591276347506705712705551369399910292946085181551682701216276564548889772420039929539138738717539879257754613592043271425212787025834617773908938437315795022593134746396480041685586295814465794783390368882645882555185419588700832756729893486711842514917615982270103681345357015079705080956379425547409324636295549997270119430747681006388734144156420673234563084856507208093360888960682867214385308199687245903502072010320558115466877904479956761920804917743455886840291922196289112934230335630716601898029230183262946458505006721880228782862116567982936503235890059955979451490501041469537304368555783253179197340860779695334698567933690971971742500447359445999849907986718849819044159226305929429603347926347432290262035384755146986969462603383869298187613479100134752007881392381817739486054446525681038364419097879624291544047708972620080077981672709721085235217966998559454969401364169512639404682497971428651056038770920902186814341133952141864608850683971692317829101538397960555185512882768231199586726396507388246453129547323914686362840292507306427699356843293847186635827602491259608518599826799382145799485272693581372959047731148005285525450019622809109580382480804120029948177906753403162911994620913743962256804175142034724272274456309743407135308891768459794368939857341217159430246494793467898107788062434562799853743742038140540850083038492604840400110695413254951499018489239209012161147799599302602824165124332520942610873898439226797285768904498805102653351139973301289054259502243550282588682204911198811969908467284950192878028474988261122668217368646139710647178311047186799882362620380003665849353781709933451855608053048198756782495733473069226875399247748140808721066143958538306242626833994697579031585893327607698026534016676110341702888489196649056351213152397825690672317941882718569830285726791170104406224376757935138124974911560989176410121396006740144646702884633787153081649702168911021612575737474315067867260683220210632037356161244351360594642736156711655170623088059826414446770004942542824341237228337130352386031888457239116799528461508364150520710714731113268275617294301802151898260555463330352391258682647131826306966738950014803944304486973694976955827009602230644143170823017171413224808396722736322688657505506666134984717357019157757220658024810890248842397168112481130211363881664243572236027401491457423976368716752613796962286394562835816993622906366644644909949320905339572095687335416429223209939926204742119224192895584617154184175984943170793572136419706047395739625170369042821468315610720982050638401226178387710833044993976170384189622214418360638146392913317579605533702085630381125844275231051942635092010147506565839155205918621211035178968686550624641175597897914942499304381574305439913713222088306627033714229864216893772850433132454923612701194827188400760446666329277448827566553488687349846056760955073324890623348454890911750794561613525885870153415659124877239350867370161226261174341789133556520816966004874387326821539369530028172013036407482817617636104010328995864924778240421199571396325075316827350059847206759796318604101063633103518125664120686794295524960242043010426461214243701501848167367391588917658275971323541276315631715808572233889196852630618932628149882952416716387956256817531399811686605188691906994040695738159444656056607693879252318231556882038347203120439653777902067526296613181743359883438680350240460461512346276063868694931556007725774726750532249588646411364975977981718115771983994221572537552064988280092056086280295159949002671823817559938828703869299968151475676842574477327739551764214971841355294294894070527387593364416169601459632211143849396081346740087271723778144481747361059331608664839719245507742587265954758325179768322498015134952551557919968683512739779491123855867619822931549364471175409362418033753078355343255273175410845019598204687656771211905829328196786696848920129504926049832003905532740392049709921652836347195145354367616400078298049352199759003515473425359313642062922843025427601872771313311080986759001430027262108227301319790164582788153876851319027819193206698504095287691245795673602441673326757807398014541402602806352793470597401006227309984193083092850763832090549968364446133937629642018630385459260512936583173484854087093932296941164844533905378465929177727423010240641522091495341127874807547343881952538743769212087958774705001586741938103855850855732260135148535737920935370590965766721063699562082680588831261269154143604837480168431328791308320149527945869080858536519161737870447524376499071533483519783811520963005488299571651836957869055654507495653970238691694912157102996921995882803844308270733474384433377421725428240807148223366007717774398328127588265640041776291133890723331225689832921164882585140956974972519555042181164674897910221469935711866403266978070277954776287989516620478040921397438075170553591554602276609844081433001466467098002989469414533492291914678274410990480202478969221407097271546170925337497714144392450798285475832111953255571907650604488804366313119873233778138838796699204080688530549131521860979855597877355486210290540530497912803674655094756945167559957526347500731450125375067707366899782738751690335134496842334171596522186700299182167544884543871012222657881268062076028290038528449981834355625693828363245147958398247232783594653203484023396247885685852979641104518670243487525447739382034968707953433680598614159799889762873285493756797455732041333690288460362847945463360068986634720482092867936652438917477316569791724862340532621843536282257137748110630285826241969133095846074290000533430782143894708921425044085036152532088428318506352498288720938593148447370859893911313387554315951201112451502483944398584858409869789152786337679968083406773173243408950223999705445407154084370442316291020851177547239590355390504799478145412989691820205530026230056079222833432935231576845605231252420099171585538255822861816158163628884401688418615806600743591664749449618680430762184835274118014799741455491098863447590341445810283504712111981006999966734249788493082463521920188711971339958120803909509320022982814787771977291563288344489181747850940278795066574502960859991999153797956857623182780108744418483014864393261966968907833837227556054612710870223257522378525927567507824958980576269357821729107987319006100994841623824181731700636187570051098482398741793056552443355260925814083465898204995538151641639213490341274969555651520509475760185303902447343437757054597648098587192565567173551223460381759241070973643153472257168291704541255797498303523311942814879805366228841296090898165499150304924591198792959896523921097679422954538332890920596415062874486362306532328366581938830295609604882079129351314955781674548444662945659486168859621365956935379332155274941495239323511080006616522499375517968486607175178110997915489796386148372442250304183819917415965674834831050799822590469074935707825033726301256718034072670898622261888958841308524506050362712438925442012384907716460088131746733003749558121514064022846781416448676010547324308612669272806890160251041069084412328125777710497807103811771594848934237953406148260879893051372714208887401958496714677469913775099371714198404085439750593277795722324604930175383791153899991298928321997312099061187715798408588757684780130351961473945953743972479877389245646293790362204502846161232730207234256948838102866629687870737658662989754482590945732009431651792311677021952586655381933997376539414227793429280795849891358796707322813950273462465074837336339847920114150716081139118725321365575290787941229927608190316561864311228971782512173559403801943019359790070096184740761185952182383034455612464932978276114642251990165582512712610322465527584437395788344431275029933973933212033390860945016269831045536372424961088609221814306866060099979510887149292577179631436561589504918747526544048354348308647254278280643607149912613559904137691235967050892345072227128783454944236773160205407356905496545458011149334622053489385047133221515248434190140312225060702058260930703636724474536976407128718918342391328494715145859603705859345943100247421338354134293533822739225824750537970707098665587522388246150744114850131820338011912871405009894668573027223631554682307874507585762122624959547137724892111346448459132233505746084663558528482127688225819945029705518915149693357431285646070776107943966557148430925001288757649679544713375470354342697566123722898916521200553547719947756790655879454362022274181288254310057138796821753813693597912417340291914576701840069928688719629579457474293236132692556686146304376948033658555784146524535450633779093717398042581690740498311882696560676417290841425228120948755381288587062967865740317774387498256711529125565628743016869464398365988264707068230962059530802475207987014814994739158928751079082836907114793218529837306238577773491124814848082831284461868856325552318982995204756705310734359405664974169183053836913309345064042717578090826851988791035262692253295753788627452999909494353737833629383245904286016612501150824323219804996651574593761363957096212887753827680637407099787243730191128318152349439758514170264204832765912944149977741029215169230963136222127336046612620061912458986189895461464943194528609044004513515585210621823825357057116719792575941219203561074489216858969086859809023500905255987593447285933714687509990898277899569122788365390891024973023458815430609035033377158680652152482219416312244985016248170411206672945935242487508689041233113386186072547582085551172579153815444569165226437975852230322892201599671823324589934771944410133266935154588573196176681439562887386610216549560842295045980769498881427588472828697939476082783511979205459985349149286293121332980766735498945792241266217574167669024634036895134467888614766766290212133811678806369643940385361065604589699072753505659558765812908259819467798715483977426591375251945716236555477484344536683543270855008410712267776045283397424671987968915828735772842846193215594869679886259779965923111053442899168005056460019815872573030413803108690777864055328142437359395212844881173306123041968323808351341012979310110460670430511481930717546230060825485887577186221929774508913768650109737653278694743313559651051985382169667403727564597644652080036525236296628076337042655880939862999581844557634640278225474075275857814513560406693406384725436469247153297973719204748693957170311259449077526989996964972512104545883821803283651968077246408005558019469554441408315859770559407432746224482817145903455141971318027255373731972556453967161662948810132877861233736284173071142790211558243795543237826407023667536693365956977076699545350520660885825947165434068121790718579010525967904312589257608922430884235790261457772176067771089480286485277101754570297631513695432541576311301826121525552955252681639208792261381412761027399275302321342071872375845269723555343717113604126631305117086030405069318107870881579960555058866571106032576420769428434264593405011781948235712268532153762263914510570156980559313961291832665518024836631917049581911886504051899640167563775128787595232662577160655716449130009340500592672044646163036294110301609886572566763265988542676179706104930014576793450683459192538692227080744127722887510843678603597352768515482743750845370218516690047061609314477024067813129297627334307885336598553250291064496113148683644539808210962106040008375460320279607314578484918884474399529630489336145755893532462053371011195557251356350983154940499925817192946038815834664029056094299014618436081199089238666977438191153927723877274250269257775487032443425458965488622064512846043464749099554748810374020704341523415358841951793473867505557448686229101591746145186020648391146070735226356932067782068338642198580151662724587474535876826567124251259090389364725163942751368132267434172743437371814549889692020799710694357287401116275510889141991362016354426871714890717039203600598025613560140222678042747922852216998027486682628638572555386477195024776416463084664859329061714940854728300831465467228064556955530086984929522254665410081934787752604779790002368364125901347303120062526888152698932633627947814748646604063166666501043013963158385897945710605701869763801815811212315948705029524718666417018989872970339539017636881504083305959340901892556617435077585828670343267287902377165252708676883111173419612995027438464076245411933506693855066654695174319238637985437609290801383433563722661016066357464040338978612754276802775155596541577492114420462881696129940563309049784367841877328074182129344545864489325554230639986656353552391995678866147517789167139562256726549853293724374168175978410733964653757447068181894897632008864718257063593909986943220614610607492246548318049321262962795465363673955931502288536849784334959879379110165347930267395782002174957947810000190774197454044742997520283514594876504983521752132754940919256429553501885862174728612390901032217222541747362332840339114626677886689200113286774881842863410598599608887041799852980908826982679704880087950656559513534140437502958347110619454303221334100709855681036027404201377984801548091824784107937990875182730996671507899870845646052882441368754588914270556836993122461885907542885734333322868735524401481670010387989766738293471525859980197504383818202756126053654745628112068664203789793552435836812378111512937715013565422756703055469054381910315140690454588967115349728294043217834687265177193141355126692495255892053956732323449671121706402972643736061401404524202143364005999136387405187185335388209008185929110639750201495834445186896529188186145134776132971904975278518268554495379738729359975226582958358298355222695468424023440437934355621651677556334525267895121400415506932595190510889812709220379887693111121914728879494127736252465881237049565184936695466755357781254488288507779294426533613291334231506818340900465831891412053450727795325540809969537963407240235671031753473828307438806645598734938657258123823176847321788699651072008285305734830378297948886447211958140897330321017282367536397381340086047838300251464508732864001750276663227227110632013309204553802087321739044307255015611476182009471826450971797686107465052677999224198795480613423550015668372828598582098060639171837577558251273506829186024796290782041807764857761348530166833006693689913969386262203830449909749029242985523899789930021926178559322884685537111233876995624931142542532628679112095571676634143086293920473213679038648729776093523220458778637094845452488503778112308233898132966992102226029331134406378537104096165863660517011771668621940095575596880354454666564351268646732055647232239058293952413048828258664372591469978835752730348250962038034312369370166197007315334802647457637702829205132786184789501552445533727763475837312878863171799947170108236655286681037879012535712509545577211529371526854396048121666254395484573281921860103127839081183650452790682524567724695806044813877825759591197433465348543446289612109196337311098537699936766948380392762828026394775314749034576752084374271626238354200082521100587309583925632944805675802215225317918923171759786855137500523606745544361703707432083811499382239783927920680597834559526742023135222762189852149502529211845411670005446977667266527535618572878318484717129947205173076658910955271453496338818885035943181579000898404119152233170144684676952100738436061803139407841189438758307647314467634835720050539106128270878274583393167283241023268059175637024212905040151592000005186886591921123714630952910791191185773262235596789207452611468940772235780843387786150455095633376734784251577435414294066062160312351022579667080710367979839629801818633156731267783171274597246174148656369733186598900495998176247463128334429269997302179096853885705879741870795851903293802482007636845186822297785057658506255836610741815174817610147583619371279872241475838308329144917121136395441387878051200906508833903027927557576255732004520054994794746513662920681429129681911021163364187441044256127647218551184743229302757170273089475906352838999638922526644921893593850651460236924097217070376402538513776607080460487715219250984827759334447740674898344858586580417951110977870733941894467207959992706169550136999030225039591793709360675802606175642186925874357184318385773720029809390918670169419799034313340412823852394905224169180528974399140191305670504176975116353063051321471246804010755768470593310142333441670811350528199267871309923962939370361117234259199475816455740190686150585735546339502834414020132426351715709794327824585475993664481936968224460228221904914495467110830471600878200056782455374611285853966570477035233964247248478527505927252475858367735347108037071168547588559856128776747183175306859820041049962455673746255972609062641809465511890033943519950987805086079303257695852406156619967335307529992234671527792839631252513914670584766095516775966617810280408649908561391334195601733762105776777159706807364500657116841037748806699177851600750279487517223522593646453163587914797434599687588897978429043211137714652324723173088462627685250381042169002844680235445686789804104914623829132783478993053108687441712960493290253744165811401622112331902392070642715338161161610115638677218254034374821652796099035936209099482883778003281969734788371684117327141240785341432097626268774196116251478600638528675238841725140766005954321348088988544621605374835799408338242565064341303634234264535600193327521792834915340703336199051197547505660044823539941725119206369364130108963844601030559175883761424389007765978293695892916908065325690018562230223498132875966939217782714919655072773154600795107359896476658715961482156290073191237369021106792889960255120353398899085072332737843609152671141209567440016691290219994312409007511167820102462374324501769475524636190500955257429178313260397712835117099010974055607058957227110130969606512153352839945903380637889658945128493386606350120264243600618471541753824893324808018550426592906706719377454318233890806375722497392813634695137856284011797969993621442146061463493195476334909231841903021858694389473528510546160154087124398613877664836954359243604177029414288439069860926714616778314118237040247648609734526520642072199748088434594161397710525818141514285181361228048266361669092698233451910450928574885261615812143931297746389040385755252328298259211603789327272218745643584065686187989947860380755855454531539636069585424606345999715209995314285120795472456295507924179908330239370109906987596159549232563090907326378206643469711280430741126131908553947773398420404538492942124867011691107966407038566591887041440829871647291195334760848048974126653797848194452542382156624936850804058946225005622130283918609196966546034719784497432597431209775077807973030659209502095440644418160598369636043178055524483357323581293928924753865673494111732870714197955621951104581218685351267253272237238934318848540710449492404767239683599525881233650198195167886615857003404158620628477058530737133301952814014895799080468372113145124425060280458908371793446828880234481455742835665816666771683323629881559948914552921628508712833972619974684156742102019617093543256212380975959217243515749184395885053707209712944853793335723908563302872791775529622551678334664890826559887806161729613090071826733898474458351102043905529888776628757047948716417272752778793172503579659731481203117973494973478651014235655083585054752393085337148787770048775557769603455313725350128489590149398796342303035071455419147528866420376447305715811569456091051438826853062730671600752872776964161735546612180813724766027159300435552679087992626963542523934066422847425156685097638761811734949005652264647812374139980471510579390997642323757017736749535834937160369962348003157109167114109717355955133292470961925224809915909666357106999481571344387537710021267110092516792549608938127666302621547055377950536039892090718355877265910262582644439603677487667035870070562135366216852173024947705744159025407137304106488730531639439060678623268284618307128417122881352661763693518285484409865278257085368171550473210048544630493965512553135214284896014408620889764416754386543958697695555845839931014468942128873904261486853095768572696806364246122400856357669578083672567720799780318332711798765792060433335374958547112056864359014072791548394294302969179517288247418281444966784705969995358860495805634227515223031299098740027538332563889558952315722014065668961420797378599215781913198308465813554669680328499658952552133431143293117204172415600370064970328368618446654736959776539039421322864272380415270372829417287453627642541886097645871668075239532819411733230190429835912402809928419842174239947222747243584918798943544745450928189387699727343841812895736619406806173181061316837295415307894410904049402702352538901169789427078085260445302102654302398102986827044268201049146060063140062502727947378328911613826191888550768176279741377447031496277857723012143158412398980952798667064116758520406687522745719564469835260741139853422667531517677434933449519215863488705796614444680806308562325547137480674746916069579054677530955931448536925273103801429250463704911896445649880873441267190011088375879726391842093285992197405865650801743082690983337809732382589383426535466456027809600585631025772927501606885329010194744408717014403540884124823323940177721307598013135508284779172494733487316287388468025345009402708932360170949097617559997969289265970113346892531090200870218541402834240909140190603233846857688943640557821944524324183719185388779272738770114686953765825681395926353364344124666265783134322689276572836994445042651124772923069400524137874396632520340800524476080223970895361924799112608155547053585944657036901320016401264664634732548576183345952038543665477509778247836353436623010925079917369994441357626476517053622209971382378385702574824908936387367253256595606371891812509673733221263401026048330343454304050447239290557703333371771424504463375385455742827377544362252201288237397027516100358050629018166277310027208740559850500882581063795318405799699742530551964068845541368090257348951963591420871825797848270806751477741383876429862404123997172793848489689053514902429814534554014163442281760195764703456875931541994788348618060138642335289731223425694206102529830240658547483363479961176589702367338817413892209626557310288767578531604814502904794068867608647541337408419415430804687395929322335288886931851421593588322763775299232394794680845454375020020072141614097217074976072717401842681355978148850922850255682153856384815453912904137238745182703862415112877142226347203229089049120336458921376925894727825033498506775410585153659416654479940991802490467885738586302330447374834761894338864853325915851921577616703398905592144662846920895654072404598187941808888639060113904971114704007273394079689682884946769864044261057605377614083144541795422557321293658455157285882123897178566276804032743818397905691781409515981351508736205320949923899004059734555361273563109531644135678877461726319063635206131086559136332240344814426615069265713097675103588450349113698365897183664615228791287411572039337580166947986847528508345779572070933914844097338548658328883301458447303802225568268039332663187243542044857669047431050154425970184506024105948636356661053684336254111148199079738219355609014531176099554910077731320668230214470225363988228456028637492054306358282446877236578269725550490825651598903200224711564689841094971737625904667002845064547419694989330291530227337191688128351951637533024586386552876422505768582018122503682895984927776463104969285607836582022977777902661932598425094036892847636044965457613235874390558215983163463599332259190351433780782247305041621793387824253343104898953790023794612636921356112485198204072519942428414254141464553297995055790576178852872474554934998909584252348158827697777886264047348337316239364723496388252551119445295603012749513913142073363873999884135363534622604360291569549806345783741145002205552821620909282447920177839793783172716404688992248972646182402057003890081823483926240115041451784390247938077991801544495716163974504166317710919108846914936239974935421515346267855007420188504649547187746349163499362338406059682050561007419368816691810774037191741118749005810879191190066254533185327258574939397171244641652770242045916479768829275872585190759660309164324435301378158152162017337047244824396483096643930809396629484933895938679031817001629307458508981602457810646059277139276447385845200459022550926718617988756274725951405443423073125490750470665829447740876865260829575636845706592492276316159929956324231049471279579033777167308796518265266417057596311372983041832401114609046286665634446284634660508509954502057521082764801017279852159791567871154646561695947326415276588976337662713045823226068054815152607141573546580977122822135849886293948112863427163106542049472999536342196180733468067989809627956169372122901736005115622878328493100991827216597889832175011961418850008192999774162167591835518655996445317428917048228825990045432013681365464821136405764774859513895797811443586305939240294721558274194706395071576570358124821215625990596728040468086249234693578919342808483798742533085631863368068855898424101225694706030600717349062547818272787622573984052767057492637865941433044994470980534568514864887459819862171473472079274858153574179981302846666254481697987191630772864185730850380383495956837808992197439488661643953714085008950617986617779612996769809839029385473668377965801267987522420864232880661024531619114440608011519133707732663625505761907262301935585808763699613433320606734444121338680099702814200173574796799879292346040926468960034324259809079520555666219386467342796532948119964243990862544068285345194271261457997659340316842819764479327754460050679679760682540358762821921129720896434870999933025708217292707951417181438861456513897878962431405656083572946993367361030003926663363308509183596845890417287685893712738359539281067050403398296774238662077791054002225864744343932406059128803808488070729577469081222303713596593430361382056526489687175802330716517230272098217622591441708867607918830945943223655863910861246425508958542125505655300671199825469187464428344116125980079384664362837957000336707530158567670372630472959816547462182803015925814138344530894830208372083821086942200573134084699187778807484108434244723265356010232085644831935053628907753358223088103038955424857908428554962595610397927134012967446662924399179180758384721121038843878665016011619778909783237903631672489727546095860549409208787208159685797115962517646895996488816004916649683624214890570834155612714771709506738798013989750140340414012551477527743010135149644651904015580241416388496457213854948447913183837882214913587560451252844662702251515301380117991962799925315065240145053205222193541070816331516741612022656958238791804207963953506529250902864954236601373976159224153545366557338440183436941981600197682452727719587436425325751732155835449973584151282217703291396471051623093288896863902530271199723115936152002446632214231343415226079556136851463905815276560211886165802462125956628605509929137103442566128709737725696791270416720013499269262084032045720228361759321816858392790488376310195452091582102063599089173337912047448397210290149200022823956446850857390046235049776310894578654421595709154945901992122263273682814124485758053474776046977560365417638397252045203725117852927299492915756751876676726679391489870841695968910901604845958393621377551145309153383809334289235305019257374250614769813482256877506379368089338631882317386323512782188085215386780455478277493504426126849991779742950457516767340351818033974665128024079230029965610243300252616700637543772252015200199272936858032313110322020904034103805470517699944955723890604760520549757389536120512184383487415037100834045310481088854216006104856138814785153992005559561905423716753451120088630125867631418490131808147040735120547594238130922944162765647144250952918388327946281141931954909647038615673796733812281585343098972315806439121457514438645593752412819409713443348053100062550887203635809287741385737745135442291692346715410365777963444322011373165373132876974251652744175302923751741674530211986633227183939140120386556678159215355720411609866252682449108073532932828359340361027829639065945574298674722152505494977973807000885628698288315204608383572189058708085385145317966771386000150197104429055461409808545225242832682910980153956993067644131503799265704583131226605036472782601062460662613368689809287726962146783834663287544358982307494381285352106508010322865935952876176474005970485310084018267084883322019349587145126590122238169027224785177769239014028248541580796526468723436942267819667082551849179266305234193506290413012795751632972284508812394453313752599829064422677452923159215615065975813012020775909790317659889338164336573078093321392997439834946835509846220342473890896628930319408108735529720862147915970848943919440469736229355057949069105845221334808482678649861233507135207955803685043369632764280138557012130366964400845335416171325774757042681842429395903707818624734760747502105705841951337500704227283440412204456247961188561331519165664407318127422449183467198025665813774236630524268257570371370322137904345322449066248629636677262474461177119660907681997572660425882044426827187960029666519465577733510586470903976362179335120379679215969319891417927180137815558234078064721026981984406988692748266159058853240338131471966814764135135917685759764872643139142332017268115483416699576379661300189024800191860915995844323802466731332647285115554754619205583490792366740487670127813461486715178473400928292015776164905007882708618204116666043388947284359737447313595036944116903575335122905531741240944447663217950233687787512671803958513117123053171550754525695511347779396028525634146220193324202320644307030369118764888239026515281032749567845199282443469337098140163228584665111204909456528053173483477169208456074091967971458843312210669116673185800454915749945967952007937140667113880320358404313527481885646412384976597126662747493535808848455094763451543575044766923208538857904393753208243942888140352170795941480691996803465943414827731889055237713530279668258018319144407525705940288369396718054863494950204495620396933810686188448018148273773914007930957156978420257599855915678550191101379273311378687427912167375206482384731620839043914490510338177709700862394726879796927036777336750864385354831430461618006700725209959380715874106219694143905864341014440438607992660967177024357950815863539419732289871186306939809130351457652347334400942184447004697532846579335654934510918479174701736542225719066241198999545292512032665909521982141604098064316511809844435009285004337295182322133684438913040882667738043715663107619471184553055435974715289026504824656514598692719445261253662836123600976682726976725037039510358632858828365214300572290080450829988649720359497983002873978503729866239103840693592091977165705365454838134973146633550575872110419509784609822817203300229276997229426846847249724976856869457315803538638061996608481363813277456268043283688607711232498702138505146542185124249143924744060521458698667794289846885169354922086459921006694617965042415891446414308944537962044526985465561779675061148088507525094234608810351232973630826451851863218381403683091841953441672763807733100110935351395005111307214054532856031500084484850926592409653771765705637412915724993495710522682796105990124243115424216683250770433980827291396136119368197860089718763433323010176449050701089950250754822680447326896966939629146708053177307762070451702525581969153335170017749183291263000220608499970841231225205100408706189437765474887614857979057783182364778801757000030125941082754895345489578078337404376686011144248247919147012488243607727818141907007586120392618024470066990568860743142217897404178452293619755074026621088163228828508063791754691197984998688171778566631853375895423735713322331826880569359053607129249155769325901804298015291573401195039970297287321076979123843403141755780585166764782379871582411935896716694685656344850348313556417895723317970678335288313888128590426749395790174413180027549985735222091854023188296727101207620488004142960740858386814965313966991920007428886017436509382973393883235196628119274182652448779396740874442221703506656348126691042396820701204349672498091019179242334794001610923126150267175039135506571633039753145804643157713885913836449852900559528318131103055817008686404244942925484771392937247395216763213714721860534399312842423193536007020409191976029725240763678684959719255243211805008225137103327551638466621465941793603376473609024401036272906936571748325810433796014804706973562169170743048445438427953042369988359650150682318458859018102762862867549576681041823792752015550286668386864728564901409007137331232750895140034583529490320216669999494148334641309385199713084684797773189057903607289299027357167351449656574829321304992382085329186888370941470843609967699666778154844520128528571680803365154528566341572997374710339268919884021319819026537634136162322513023485204619047925004222205862008620102512191342394232020532796152574808314237316789248577557550409272768607791517484715473203225977678292149259102423016831438564047376236980180376694541756299713286234932204661096743539945073901976132362497360618692375011379716710921868180518773765143857765662992289154905451568228327631205384142356819540366120725764145038342109241699989498803480230847268935645267679327621767732813852611478169982241464183875740669064671284546526577888043849429149007989928404082948804657174140450386009478650743571490522765618529292508988311757878675913902319765599851823003810639040662862422253906732408560614328850184574853448862559500259660183040337370943720674475864162392998149111683552173224492945204631957859838784407753507789177738544480196007218341735909252114980754557453591319641080572734539992328272487027725119483716202265680471417921913675790004049346034822045077178074434681355723589280762053143418407181465987321367132545880994121446974244716802754293341143762527568854440654399462177306355305314201080255852311799092802389164360474298080427968044877353588932915965357433779463480912519535839201042877594425708018223959710902162605356672094808703743283203043319579388536036786539378368704719236047220334231745386788798370838983588110710959783126918364573283195948059939448095622582199271835849728363047744337447228181286920887603537596599829391712406958009558285041224118563163356686864830325397016528736765281723853948809970009114178546797454798667848798614375623708479145693472968888216514214081875449946547709096960280363313379585009012928291239881663313885463472081837418830420055130768995159086001607390151627828563702326852281759738536140983783382701140791346233988256452089731178285719777694088981299264419384530973491705141869400814939116874437342493888007515148525121728961680388278767626770639610278201970540490566250813651410445045029596113150230396185574329999916941002168575549813618342166995963203273388753627283428278126833965618824035466366139928236054436369935772133445624442622325813149022128310735591347813960614758246834231074501587446302485727026959028684928609551228264122252398114345044183257343291409068351635784579863463199832612553361061137761457667122186124214208359225770032129853973923837128524861931202483827718821096850469356000885769852114568663295824720727598607127685771726661104574275191482542486858652501986650567888235853894755984155081028304950664645159761431023433532989736591841902552468282299207978947734455428676434429624945703536495872474380933671299539893645191810130902049421202222361613118955854928429847717595340363679672647102567306890643344501153432378296641838258100734031595843098701711820104495744628716991411239641189828113467698888312919529372222271064321348777383854607018365519951086489066135171490623627926353986154849187972197766866047913995488562662134553181011724541729210456611459553583496386817160807533955736068761994513592145175939423972187169282978456406040547277697549997605390010066412036151358032818870873572115473001387597690532821939749527898601268858767969815937976502253904992223014003487701275441940439153915031288701690203190622633534362354242483724131381701379573570126144924678101682535806391839336626925838614944921249109864048282084267093429390902867604990665908323769045154739045711612207849679940805696066184022092980316685859363207607800877028117247074527605141121397434480088196420746819767379960611600396780587201250476518103955398964322764661770782194808852804218734772012402348890344839992325764692563333002660983430914873455602887694129189506651037706975082508409912762443226361438983738840219696102716961559741722749204132082463205708290269172656162448619145540520070131897502512788550518150888519026524570111800484901350457632275893208370716912427202705341536287569150659088930517907915984233348329430244180883892936937335808690205399985998104488113212109959232510166007359224681725918548703452006489663452279846380027003048555316814338175574655042546558459532932279030789744164169026284609418135111018787140122038249557947783215174019235711367624315161510492780414653779931349686045035695568540569481724830470851425892310838022054779365205319203093029387274995888751439845802294734435718942263960451036133910259961291395381268208276243289881394330146796186885068324109733993230374420860112183802522600622622040495697702566788395722438875652554012777517913007480842019123757992126848239754292268927917093246554073424562188124220867640394685408476735932680728902943847171882696926240819816953388175044220271334627656280094406277188561227885462087856333205899033621221207520014163301145191074941606679722185893120248693575849891531411680228449007943084362757885255085906278398960638989254763120062615320912595246262958902539500041090388336702250982743222370088103115254444981935106206454175663974499978686284729613030179992831620135182182275121680539589502103043064672081819894055923939572298363390519976399545769998083129504610820562747624610432747775862093184158049406766557100947227159289228607502814646268907046456941098874062980742334168030905269628931103030561883821171503776004233435697773100879527288705915450773780054817848519848702381830350441818021829418136796586124652746399979451080517461870517623617482537094702625056071168333391561815352058687064862858953821881907070648627018620784736055760610648142619445717555711192960269907227325550586050394321559067868699362546000551156846003095614492292359699120964050059497433368091069650423637999200337973132009141941014573136751677182242354630950181735651438501960259111211644820009858932485880747539523532982482356432722064241239709801754945933781934778519016538016803525455219506572911629497897075691470011761980272697967927541666530821367177060656862707385540464666531535774276059450799056998783313372711435585481148870804875775094318551998361854786659226004261137454504792830185458591520726851803843278617967159325452077885247895890283658892779295366101068353112209498734209030268482123893751418568460927808208429751551712360281607948794182139722870738224835114689548217686811795289975723605353907338813614834663278893836591985343322663518086505556618733596006995500641318125237698967994009306106357468410297416412538706196686485756810119911338333628641242013444887880553659000187583703156193797175932836564115336870543185197708654053320454666425152052402937818546388776050562724409409173767010819933014866218731384637209316566717953908593072348409133905104082955189242007982555382707637518378910550519144116147001809648211846290104630133706154923057890102992340066747831707862656996238626617221932167707497903326617977633433109573853024582529319763357909043910179285056230146138579620838066138122111716528208104245973457187663094052979099205066452018282155092212901243037141774514751168331276414277783203382895114346208646258319902077020005462170838845650119829559779091308197555610262015291980726891951331175107103520958321251151631752698452426235880495633910318000328645764424529582229465443467648296055314246490298885642775699902743612595746439569156269473109901793222782458203139649315449093419988535834475550804092038330144524156878128593362717163188303390322016929293035447803474172578657408635168025314561599238651231426599764710640775026053809162312882649229275953648169528143300768263249578148298925010340404910507744101104717259162989738272728470050521063499770384393803713139088315619819973387753382759466844170894153657660533308106053322251648637881961838353670799260820761180996962622040424493756100716323887294977388677591856499605977363399574698931395126111463250910915550115209561436267926795165444192815448399492566237053932052338607908702155388795991733393291900313071600646710337093274879772160891441929041083360813767181460601382763797726453998264670674951513416011712447184233412692484475994401937292726265619293307825811014370512761129912038966077850863163253589968846370320955749959121515061597899057564301879904418513848087297556243537576444019587648685145296590978504439461067008128495352235757836560779580144115369205696899922902079585337975850648738545071770624242151935263883729754384846461170299999207615228454620068556511721689379893670499390554469202218716444477909008512126866773126492392338382018850823592548069883158938616034132045578301619244183575148729523631315205781714447246758676947944863794999461521183825958867095692972047588159356133277074187636891359636036916577995822514273502756040222386312810646083494331592857235253067057376924930036384422542271410686848790259828610725263664537451017321475829241210442267002511514784820464004833513703301735914661811374497565230157561127374127364419010529782596142328688825200388426274376512981187294834050136670432163369356464347454041805432136703627402435100214972725324667513013810128590933833692159611900002330821600176596135433094795109227865167819947347571561874190906767633983092988242349690012663406743225793108626870856102557012878534634799204556642492588759913389719158322814388133140090821755009292694109177674953136807296752240720614967425942848173652049977822222330392635435788304628998241696738621438694813745435111193347863086308738147444084899413524017303526993552902299376614396401792095513171611328620901791724826646040692550738164193890163539519596472089204483971306273521868566857837247289642150045362474687136795537380473164666263266838734627494219075184853963893498261255942720965648177985537564125981575071660192830335493593086460723119628981157578680272321676766669205481987464071864060997382425888267899066080613630651829762444789977946297284149715235537069707433966051790557576483829475040821134677899070127560256153149417172494849517607794815057905268023141885124938286641520529165363546510956868536604453746210362419150614010214024764433356081591610720999930502868911530143952341600154067760136565759989790472938359347721756029874899228292151400008218688004183161587593130193359329838408736292803701434490737296452432920439613639808118121060946470516806443369187022234105366445409527935156152926964084448764881409547763921611331716495251416399653552735438950883856994085484003320302193932041903833700250057299815372562385463263850608785893653858534493282077244721321478641359306278048506126533387451295956440602368840094884794146590100702432158781459363110461248039573991937593248144658395401581754192204887272089749471318630610937169180850185902598276704665108069685308591955829500281088223627234716667503157097526781267139243296964362085339396774483243227149870311775836825848098775593779666166447169375411688702108861748709533069576301515041658975693271140253416570157645941706485687752105769164394184893045542087516701251553498894788473785932410667822122149716468737231763944936497712343891905486096449540642888467930670866664647781084479355724413277932655685239944244257475459297609711398896717693644120139353756983311023046000694407583902388393352208808310639674002634719965208190986120087236490867000171649277820954061538734660361877536837972746382704904769609846121504141807582382866826810888055148168558848003624115571275250377575626442568449112782257082671189170975490358457833267581926244598651178765990309475981982066407104362794721272321679953979651729662898476919281141753902970345184306492429017805835824883720933113485155614967248322333746814510714493308864542525933980108070085002135340705027479993484876870874683757616685825456809436561528517847230339492959041424918955423830128758038366199365394237058049887902198466345992550820887161609718523382476209206716440978364295405718750055406183944250483376025091590908253474435505268893179425359582584070942966269907814248285546302396099922099871444078185386780683263527698541382530076237835843082925057258195290896415525745157008262354329607587086337739129339488743830666490307804410201523526873563072378798742674080398672593999352240844795319770704532343098405067091241694725791265555760111109569181845130586643059258856813791011491043114407850441603949104345029767507808594991268165222996850601148391379432013855128231483968770800791079590024042457683443915178513135761258686906560943377843080383108741115847595718605671118448685519799055143967340366379527816113210546647558528051985211688108181317802211619360441473666421747103071713387259709328295320828446417596721065130023609586645010635836450409142600845243234292567364196473245493734970799594383525409320466696130875203319256038862011833099469784930670517328530888136219279014899101914507150040103853340648628352890469264838248392687192122183184922239310526727932726978924599542688808130083249165838994718245302010415217873000988688891803763151123750288940869080573372402365916581681132466971384481687793863997543398916576961178620090755329060634705208207986367175806771506676547017675003810649385049570050275418199843531839232937927071597057358488230819718062877342432032931736742773969512453182102942475644694226097019324640144853318123856642633522279004122079414001861016047371355362600801014295661010155192353131792530727964233669700232333588013901357393500066442163066372297946147424148894975473521361371956179915424261456765501190137025846188809362657870363494163804444512814551255545900526455350127316883489239876945434939892982265955190154793380274093716749508454918480887237746401585615833565784429670160978699805785844162807743997497057098916422006915148518299441130181135559603719138161525175401564821319051585522011219633645027797595287340511735664867808162255555845142498535916823382511919568706020326448461312027917235952429098248423642240102161761446202648450017049683728833428981231561336645310527383393357910491767392687832269156548313328529974214836074675047530449620867222087341762549615117104869518122663101433354409558056386661590650852366437630883261813013412263671257743801697462099358088738969967777691826636367083409935265765694228663652264706230098615145180034411596849043693706505256136595175526163255051377057158220719871281939156028619821744888387920688195819118159299756330843854903881119365709675158266177786582074182381834589427117928041949281050802154909139280205351138546109596014352324618037105008759867535592032834431452586456052468754782801608491746947469540844465902410541473437092980244011392839071770748582868908971276177432015118892100301626864809295078774406076743724982023273120741858355014753803335815447898597944184519293302969942179856226372117559231125925864671896683271436218477155593496465790901037269922076312882351066122959527557864611158534167538552897797063232159291337332728545800312866807369484524733634847682738474384939465695339918703645855243404956212630835003418746059670355339121054324797573962191140245921670504901151094766543819132458464371692171671416357065221559198536971028495864166261471366528900404857820461001758121216408321724852476206817414298238577401287606215617653158190771634947152297123575674639509017785000224544224922385276664111718931556298037681836704647190182149754361114300020017360107353282074287142756162996811596363851592521302329566161752270784642993256054526810853146670797328687650553965875725809387469207926538330022043764957401383745030496969861424189835797595668785043740511986867600115690158556289933564340652883193121526040291520083771697276449192863985433365964448947135082058865030414395977681977971055577124591456326850750057542609716680966598269487841077255698862032237700712400475560445318962390509716133453680752278309626902643710934995430359194691307722490498136760249175541869275878135786823932046064584607023080415996147351599447149911470707239074916732094805714512365761091160784303033645531086251331152886629803895849221563287897602999370965031109898708312423882293358940871435301614005797502267095221961309395625943612164528666310634279588456436566530414293434300092078190581084938365855914444281202944310783181029332837796813246557075839820100197429031741234403104482939895595837576474998389111288482028172660693415891606968196058625086084817509603221377907237315368230938018909485127105651403165010229013098802101929384990121729580794538291130491090192214786444431882671727629578311278260140063353369324514633657937237190061439208161612911642539674563500220443375292956184331829672233425182071564107525531407313633473690831056850483132487895483819359108515116618385728132113753506999208199488800029320829773748517613411791942979010317786727587514671111086176248670678446955675761913048103286756215985695735491888943218804875252908536374113124332161871058657876864824209617780262008627204736618602631311892616110048910129200156641977270991930200119398117671369168209132519609744250794966938308867002697357717037451124245011589513336324864901592132073790202367978626784235666812710190406790308133375850954912218612074834682368230420538107354258166031252218372990747527424224781599314333319337752818835124167620557114855221841310859990165602241396464560698995363281404923402730437042199556806935505432251027177141925876620233138223686543720819464266068225129685816282729352957108592734052602831374791754888644675402390546650540822804932266703763457396057702498222348933830651202741939189989116036606343394320475822817482922464775580208712676025556325723459970597306746475529707757974342809946601269274492445200758891619409734316029406595826223721652656770857934386882783351341062465303505314522331621316549305913784774529813898373211106473697198856921893398875086249482977174697112386348567226283692573404252671023180540431724715111346480713284223425631717045720155547449403939291659366659640149770357896822486837448857744535907365416416956223353453791761623371674777755900008026048996959692949528983032850076639398086513512498961662945682302261394185258539226683947255909048994030114604012436138086753426446878153769033708044669753748048826407003838172182441295059966699112145325101132647246748390080893023350078016762643731297630788261909076135573720656167929506712056091521988928478854564336883208484845880911399923833409471350752295968565347082615596419761718339835701453001868316222612670984316024148126593946544120857237663625323265187089815919173801516630132840943848937602086605064436077261009348110381742396095635348529779107413618245884045113228381271562727443215443802500179175307583603586941179184824892968722191728169767719406150479912727241367708056313731593457181308885732831166422043690464460310549315453138227420601284980459659902617996781570025700640180365394129574034937652882936215784438780209633805430831595509008932168643556420144678878806119055684378118620573779241651011823532049552202501343277514812145598455961204196815024041461192437350127332052696429933408617526505828314642610278977538627126577970592391021429734228024593398806847454138796005951438957034757453310629054645182692754631606672960528887018671015297711333453614881006830024820140725450420867479333031993976718460978200926198531075848189169953138272577812367367747764544072088270806388266352951622252201734454937182863655875862389336749367839030653987540328427153361143484591958965929059634595323630860528626181909650401694214583127934592064983658790718775019795954380076737658358966392133552578541158493141565896356280816964028444089378974964353884259812201363945332401513053024727268494567394950466625158609813832202360612112858933661906481354026787612656439276153583919935184743852831147247516233422581547927636332972855489036533754641768145301755044531541766675989019311447165280926600079447937794566456798806337678189696234828595917156189392960618664232648312463735455527573511880727115442049721867734251871182603508198129568364764772449281620616228041024303700145659893452539479482174221647079705727543463793296716960307137981224573941868102109189742876096497960498190582758380580410016329329456210865827216918080560043879264170034747695081770786859191047739487217255957499070749840946866467023066860068693712036733678030167996960817879602261567033078716858677748829095510476261248464531882627719603365527234617587155191935512889725341245028680526368035893913407408611508166296104125115058026882769058341393433736762332684718098613333891613205430374519452233465140961399737960513382138523062673885446287188070769266920173059316583793783000079580466512354991738848348925894813731602354070660898842765521115357269959129614739498497216445530036986839057868191062882653828254806250166885716290843534643063322282360106445496344110774928265027882777727230864726613911055165534221485029313413066866299451753183479858222276746799990875559926344045430977031837688412930074190981645487777499738305648989389953272895148593174484728283277828014681351560290601054482834121430474689148591236459331563216369751421550801083340717193729301278908634418180887231396677280171580336926109499098369328229997923056840721694337634800654915954983589874599263603060726826570795112683951365033973599411132702852233655527196095143528512404196978472910592794161447416662653791838911474780571164548001686083797969512869906834369178178950213939471960832480953861770629910923901433256095832473280715860616327266067147602312261363365912273128242630888911038294332248712382034441368734904118719495303139821801452039320911254116060162138029529438096050847875487014944136225572470350520612726491698231905930689973839394055473890673871539689221712546782924714980732679422260159471339163628204410879548108001416545784885674661832249667757984820493361895757545142073634541697314291562499776972658059328240007867743045043546931782915530197544522723772519684598159677047618963611187491663472030264747342457545244737375499673476782561301475978662641833944662695411659938577711374660648223039731137062543696421077264163127086974311515366708657385009399756415794729115146554774794522824329734927479200696145971980731970542634130164717299832805594841137995391867647757923014316114011795320073192512361716768763825982310475771940651829715602885558857054317337105222209412334462878145049050548137913792965865825525669284600154550046779972200940675124077824713881025812402464048349229352103957944715812668805433652473296661158420923798813240355338106517614401011596167279305113791204380791570840716185935405142843015698419183022321899215646807396945772059060563921848752615594067467606366098009245399224249347325098119690373213810368353732842442653628107037951302183113125421480148691934298378456550511396103107366246500204520097833125314016311964978687617731778413347646407932602451808881282743104736188654268330120634284167596893373287201140139701778307441327329867790897249735395811630945221539533239784757433673059104649504673391969707531756416374603582758933722447515688695729304697431369199384863748552597317914915415274597249904388971509921864962118595504117392326194542720596729681178100661824442563144459149345544272391638677149459779706667294157176691941946893146434873312621518467792694635783050300493962778020066653313244988071037413492824353710833326191436732084597254464456367535780102344989900180689273040493936570888541368160853778886308212447245696412080642312282249635784958203114332016198644606017734686860659086401741583858879134752546754296711539928431116557134865660173337886932108214094393634283827046184268531369329668704720820931719544714520438297871725139233171361487960087217134517392907000933200147867479988529729462997223251968202920007838691284542218365833698477810330112914039691880122201014119533878357886418595611333465969581476351344776219529570486079192269305039104008188736850395061016231517397228280766173026922300956974964961123779142415770153176788962765495050797215533438948891514686403659965356672697697372934597144104892529087002093573095144967370726687785716782960459080643757328094269745238213390150537198429015265150542346725838787535546702990805512030994116347797678284548267153063233413663532997427906850070014000543094475653292575401785645702000590051819117669189312951262314890120961728496963328424079091630137774595224446756526737529836975724633561237062278040360476422254964411395189891509663682112207035157920392767260795484742982632312782162147741542857585298748027581940856851787810575474637127274222313247808796734403593116904624764966498980299583249364021214675373741503015725622666323139318685578011913088749809312519008545984528683704185500563523588042351730678479108948467246401518024581232148545590496045763240335027130316289723809304556528214213720427244796562053335009610829146056398538105867600899810207758774827877287955700937391560716045004176827842136656179365514526237210499217482733198566460682252333271726216455125862811026140341967417486167301119179177619002370709226398014262200866703334753648468637658544322438390762781937475384036195158056000210541008164472337558966750955357606761073146290735082992750182736371722441644227001213438748729581160784111051508919911394153551051956165900627380860346016671339221095674568810854968094706848484291153614171403105043835625203284727599743625980156670000762252683761783937745451597798903033966681966152437703789079179745716626100299777556454665317164045708411988048558084790488595914851642035068534582951481746904675863403973623809621297652880699791244867071476098842762648471535710632938627525687590384673646162560309491996712540995950080289530826236517435663588405413426009152151142201847697503569278433486044096996812425634047594293843745350257141993370645452829318173004196528578732938756490639845189721870967444641103050345075499460487493110533510661273793469133080938351104460810462078039161119807710155368691893486837385719172218977398747051275336670973493555775457572350890761518654056122444943103226796833446928710931430598531697514596863497145720017656435104189527747282867238358428784222800718208357401896480961221256257120351573430882929788590784203723700030490762721304406526793957630701344413957557422146977923044329244890631175131331622274979484340289885310561556263387161525490399420866291208401855446956011085375702806849140964677816946717640782217236330974571862654572871678373134562812867303668254426391867728786152384350885282735765879630548271421499636062054267017039999504399328738842000677532553315280160568685484485707220974029332608055645124623337695402460518655305129896412803965195350258608080292947062401696368311670713316761307398391836388875027125040055855253899932245406002791462733731273909137630884819948859864643159668475023044918873770650950057076337863931104624567058665938263672426029536811174316785016555776100528358154964640962546667263365978081985015038881630933109140410346184038876974278785277088242198408042711809052179172904555082642592471285255292816835088894055272714498358647661304844331879793468639136945558394239890694665942435844386249567900701562280466355839034778327269708723142821431927804764592697070151278125685436598999662698750790348247790655091819286184546357131034237864286648598928220934028009057085017063263651116470154978987266263116363310725062928137311229007604265541552645282876549194211212944658750750174111820622574782236822759109744487861418080219664036901526940055579590642852511769408228301918105707860840374883386252887863921658626999456343744749834743401332981446539434231297440887015588063599981013231642555029238984640692210015967069388601783881303383710182654720832167415670233765334035990317996915522160589835044298828830825130486959267047681879711423650141905556902856298494003295983853753013309062493357697997009935356483282945709472242739474456950818744250955999387540877221179515273537935078423297387133863879955147083715105267679677753108691683251028614076272119378962417896873386260858480896752292377675478308095263654395137197426319410695101972679210593703340994754879991112264801576534010591475549378384424217394695873154447162412449439856653918095911948008654077537024238838998901478370217641175428544784373844589366402695840917883480722689711585846378037048214231582539301474014509868929587354838309824515777881684113432825996059683486729658587770673713832328666575840566128221012569730965671933701771246149019066243192787910960515706406163521361537275725006828183982975658717653152149880460396879775128216436900774885314611011354129506117288915152273169124970909548552217961501296582718259098667361555944074800799574190609302314597095604537941619463877389893666089269418446961899660773863264746840156101881897568641381914728747162474882509756016330999359638820698032294993767531673920198877983734339111290478381044716472229574892830097950473705879813910748565083983891625179604489245163676546953186666554637817539110255177338093738311651669931137596599201468417852476787402055083778821655622091266907078993729395209536847767124111596627166310654612108269790743786186667607642450113143843799800193902242639060996831674643102263583405385979335483640821920165287349703087775071303125904355772231413486388277953803161054753102884480160875155592826191690973323873394556669908874113258807500283809036017209664700684949526695081747153883179353836614246274991088388854593434965376152229393336325531120472393325000845168936477944118565002331668716999564085103346119303621405725279005865776777398188498299355115419691885975748835305086542549862612322419540168892206824531903068528107764760062730760840951894309448527461965497718925988330746016973330335410768593575170510188348594069747162280986070497106383495167447888911542757290870275393036625938361452218204952070868026172933175492187810470844302410631868776566082916165283336521316969490879623493748841027486981093466325877613125194609801511773041409340889298356307063492088710977019168938749059907255649362172140039330970531774973280186726230515272080521028371111035614444648184579347036712072360607419368249900008327777039096176123390029905752257611618055238725699031145887386338196371223475288583880079531512204193495974633392485172289393377244501746516285954248782475310796862784817756379061585981286755621884135648347167278057569084864939417222351328410459496279046410540325200642389538919941124273716302176144140029216038585667779924708637724191240155345962626608319136867923430826014526096945687651896460717545028772188163017811366355062223726293217360770863968079515862119837387900805781113254169862922062929422475175597642331519806836470898347050147358081756692328073176171785521402560784937801899734850454497616293583794945357579237822214145324442116796930676513014648301843915725653125211442918769881486662480641858978201209933759273716587911367531861347406090575816008234597175452822492708646906843382799232489424755474953530379433143404554386267036377346516842535337691923103733064460645255978601084050220799595418137617901513712978616817479232487427304918032432683969821208719774636791322159788560159155849338588690109014443719534048508917557793512921076308409558654724479669065669808672593657267556721826748240607968904019301947918608586099526798489919614791053444342864354109781581695150091543099663161253517318704516074352975265676772143284300140205556586735708416631994793026019750842565030299138649790669250708703387847247687851135441732858211773583050360935521239764045448852906575920294985374667962752562951911530885032688596739988196579844827808255529710783673592926973116530421900990648976381850810154826795149502944697725193612664503138080236324581256227322789806739804137596722666406754325255441158496599986406505197581437494100431433300770163561872628814801531608424088116965257892250451645337375192241757104193421096842200572371934295706737231084291634073835275144905279884809426517958585868308916860712030578706418550567601828603515481553640170379422685328443602614219613747264219845473574583331982567734214265592311996727007830918933639896623932871842743510170456964775630394061027601960182795154001215779368403007195301586405219577260218293596877146658540702679239612875407566330936222964747065284586645775721489136633020853771591063894476485308661849363759193444206623592786691600794491371089926027659758738778291934544354531399961704239752903263772456974321202644197271938145883207577587128597056056663709619932862649482287485861010766032099057883342302997067834330406459442057568281089611293849564975031347636202910587350144759454184704610550010360846242305133961397818634879799854386686162103229545195268836835368566650076430609826751327359926725334888571878300349105179537049603069862201535279907260219920975652255646221250201038438075173152256290563395494900469367422060606858398519493204164036036247018584031695489506967223981042373219362627108753649440325249011191880515764261893183783587527094829192358381531197601692516098794680569058774044153608158595181500769633400426463544804635725700808814037369770343169790124679066581279086073716071770805760283141197997090096931113902363365399871374324545529724397124331033484331087514951793493208911754331314038066728127744299497306170025319276897251977794626058137394013638276543374408685235757901462659833345783010242496619133804356996545799986398732240244262306074044806116910208291567415475925876580141836217014497528506679233027709917317250169560785688792042421403127896765835310739453923871817268722063251122990770236565879368879034018864965019553746209074847886949977042167029227580044698610263054290523173500682388811879471263810212287004044705282539852557385332038316271457480859896561242800725785838166383468816319847951924290670907849870491795696588605488550393596098231716226422595810176031512651231917031013725689467739797287999092830460735266134256849361024104897307126654336884464608540647543536061837663620161331149875961693944392376257721509470755526803274879987248610704676055136685652439628093684694066848089798761290377506906320013925722515343028397383387709964760777993606656896706801324139741953017208409977011554149082205094514287680220072301202649182398790038400624281583274216776578805866407804660062203548554204405738409807356544942002482551996699142963603747677546630247036366194478251010744958486842899549090255863640820797588769315593580643157463686698869954159353407713691238382363518227432680332263717424740983906904682421933992127780897017104307909133186063682353169990282234024240977516173443728771837975211670134561031170666011843311559615913549259852924644350988960870215808829340548634165568133747394218155654237261698711195752851290874279715295402336837397223521347227247019326999652016506983420627055560813659952702638288437869217134559507823390527209029295959441484110386966551612625907677342662027317198042112253855541615276693375002639744959919389927847877220297596720892680074504858370563406634697377053899525845812125279670305513355370299322092994692376739139333740808357628781429583048523692961805526976111777366465956100095901871476847643576520922846461305770996918387665417620859711597888150952003298989713981263602834264087522780466950983171576306327765476034729337993688201506625690393282213526985489234724911283100345678913405022259745001727063878038794621374765313888874890210202335681391621322599346189936058256241431552597645591212371586904304274277018677249966081847420715554864932879532584487065060019173280823762289240633003919401762710475731794130237630535264726035967816446561138000144525481026244546240084416418475522954342662144052407930434722069783037303204295754503967924099775029090572284963888025067732606730350248251751244728017170527606918729959595058160358373820315157392349597572477897878231020912062515306942977655187675954237882328785975587084316761718549417025538154284516918291091215380447287499871801512360061409179816341062956500526699200688468327618208899068060329960099656189726333972176188354571304754742783943556680301240042996539733022276133352564750784433033399149863909486006754701219858871327925578650716854713557779685014390217939232422704870964858878270294549663035907806099110461305356670491313765900312858023100036830671916425602057478989648515988533682923042854048913228570532975987525158176782973464370831451276132214562327303834877481107271384798633908346771419329318804938391278386984676826913763909456707829497028984459105457410939795749120628965054806753842542823684760749115630030529871720871274795385362866780023955805538249998292968412359547258787116141942034335986488993117140520976387184778907009439546791525634299633486370577523662720108102311477327239538640838362478124876543279354610628622167388578364108568608336475343642696581945190644929766485075578355618554190938540144455930469388291852503161539870506884280254154155048207174529796861066038976499778133791691349689974389773998404561907677559103070785259494785815120752168393272495085418378213436599275317463026071983809204443166115362442557709387216529452259094663345846601732759412055953471039006070272439755370337280990545879088567937201461069989071159934256699699010904785871269107873191439377616453797858881628424060688979978028473289653221461470980579405710459488795733279577278580172560813755237211156806974432954830306035952789684625508277913695831543315856622953701119706191503150910666877600230439975179493848009209100027032000284537785238906829047946087662459561048552542797556066284908504596089233544675342240032467821465461242307099265238962857966109978247138788772951823183926030946067069999570919507569879871401192780330699666745913295124791752429274737732466508538097308945179340549883619126989267257318146504070771820192838918556843103233481476472031950267339188719446528666000522004270025916498655947641104810564736884698195719228367932368454923975279862974529142117621748961640797862627429515703219939890355365946802006650068826920807885988684734539078573649430349859351621145482375512658325905493554457100599672632376011768778830987723843720906514279384680860821037611803704695390552268752291660330304094332269935337393430157254353117827330038576515077209139501980618746932344509110203357143792564135066417959046853852919201479511162706897446081528923318332444874607358183624720754994836422680276424620036832732905275190075359419195139225865969321367737464275112769536088719850199658242032593731878923435714320937829279826105160899751041127199940555423332571906137990400086138151368729168979710486138167858185482455395570735727410234760052927267164346179795595878299159961620094185595765887636577566429251602482746566883064000707018039795309801258644837159749278952409388971246197574656575653617556637118887662072099449886522958053004168498242155736755184589735351464370679460822392232334631144430729292361787650559333652441345154619006997021657094804639796431717002249302698300856440709005764484647369132834791255618267416243401313676902546955598097395537202967958694382797760881479984591582499640875067044520381988462918771214872659135859583486024087926642105247666305409600029309803180278211736307056136515436658538607580263454284357955610981972741611102433887049412589362003882324157058754483180586666547492704657083958853050240225381275417332105312588100035990619366661433069820952550905357471493532188766460157923149460537681848634571701070930448801117045811557547912088184009191427936010948650874192364393346627991162020826365601163070052356640071720463510186194471689656038443208696244615410121424184155207706827129876549331549360949809477207869463919979161843778801894973863240205271794024043063583494212584906825321286884062951465270193043376975992466627834430136240887204997737865648222770500808342829410402036980023232214287519147359289894368504076926871212898731354495818440929593888901497982490248507193752531856382543387494984741206439229882343417677251246714594127104067545001844339329960123949811673500949689747195720430687844973191139144371143179357154478282312399847446993791394815344932621320524081454981405442905042475726517595954674444295647253036367904245000695459944151692788167672434490130575295853355294606352764070913701695262975322802718225942936350675662603810400849864337941683507385298512462622985099719698760333244196818173113120309623540032542156559554004916039786131759561650829784819892697891224555887473662033957527527935768038253942415382993603164961744457222899214411224016667865650401290983020923558500957792594682388901268611040137297164119463802218067901913062079949112127872637678827882217522095245046682368893933156967611727138947035482419085571446110937288285963365516598702420766892300141374608430512977966999810212530175708610852726277549265251702052444004531635234649288244324476789220077345829950444641841029469320412146029765678059122258584545917883495036957676568460199073115586882071585300425652254925216384912654065324375401311085837716068140426129306500383654658714528013193811458873748231007666611671415789403904137431213898654059659245951170626492481748231047458835625008565743855431040191387491511065593919274934088226955853209055318348818849555739079948039450481413683016193726455728446682044277594992094674461326665808725302722568875484214652196058209266529699056758728186300064078047169351932890358887642661395163573494658543888585236332816636682485277685976945486059954181469390601843593938272402079032601133565652983887313555894346306748135305686844611780665542121831734117118144098876875802343109825122092589851076493887537242381596310672733388907134857661428104785220068632668018990082807706612134038635407097460270676949318297543484660364449661589259761766154031954060302646999511765686014446148369985826708062121961223863121269661832386544719279104834035384330007609213710262872120741963529738738423594440639398578188240677390172902667236219844023384332922095140368083649586872569931909027621579796736824804383602887653659279383736811494484985725850876478667786526359518727819847897545597577988613472412241656380819877605949749181318320755396203427436916244842133456604638145313412754571595398088697491972170636029546173777241106655380421583049514122326562969783493150371084745657173158395155443293616557022268870077009665770312886152142338727944836767940855260516954189642903361947633618924788935366711379790949719706427408760212745394307980265840310728118746719485321310957863008229289785390296043489947858223900164066904603075450244470104146182161993013196539952427591548783014472732934748443862455753947837575144935803044104004212145976220172428279647741960436630884697536603510163595383961082063762057010065984859081427733983025324575715889795073352010543102533436508157846890750722514286080242353629516909947756795655394248913585524207454952390196552027761035553030926410807256570969732293727310032555581840578369740506011198091488530635896002969273551882699716634618476262290194316494576607316728956783044942998880287444460095678598114571402483907706152356361515057556875104604238123495841762945220003200314273271436594727753501720218909642683598239969886850818927531114697242406105358044385206304449430910195616118092598467568198367977893820695370656702899951840443267126453950152452256982783808353295630774786478381567131128759340379107034704324837298300126169113224135258245020299670252432509611777642518254407205295659999369059053758394347055173183410275400871587205200590886249751495386045259198756886672732484061038185696789543876538248829434193061675133437796398018580103735714584348290612809771099231662719275133022691998378096108423343185088135520063488839754760924160255854735328840533694228665397182453793722081475618787838449667810926584737940517703198275007959990176277456643956937869165340565190726920027252064703837334986814090597862692690700237501867186447185040117432668653850556791471846044756004364414076058960849159460259131187474575588850075605615899126061787249745451133855354957522293696886448315769706699777045297950648604347540990727341110577282008481387424400975893703343952396400218731279079071210179358342228890204248168280512595742395211466823890077190562380442222420551739378867522044687302400248191491532267050583486778563617584099906634996444783880883749643425365473652866191292470127425461497158060293845780471471835018126418780222221924668480484705096284466441367457090818089123292143468249991196833361616669839785012791662693586228865583890951137509166889544864861975386805908614078725855433007069714707387222219709749461783284982080258410177143132451104204394072563151175863316765494430922139969516913167114331017297146745435492695473154217943715909474588088918632742577670115480871711231020442295576313479457677033528132366096622394772622394432814471961422784182889011479561310058359506275022100900052068821927475525349358852514945260141993200727424681595886744302393873050008117056094203696150006476307037090312024586031295351024404220640471186424663657415918672990862071503848105529134505048462460328033962307234504654698828591762242967285960527494447031074114117337470094167383951654860893847512346991888871749404247200714147888421053804625531384352852665759031628474668901539361841015154103875446945051269441600058877341710085274867970921066781340699999832249374111957132615760627892056664490548138406740224550549765341322236794096379580620984875699827005903957350667120898670587957106449233615985663834976728316948910095297159240519035214864399188597356565266956657075816107403254604768822515423426681054901251510484790948210893404141180714430763595205256901299268170249713902218858811990522133493950047493155655087908023896929974596736033271306571958371032455507248897978407838971289930766871919166329800231377369317071072608794280729672828851059096497382878926707962984872514414636359201837311204796204924626099447425132983744394187738524247546969364664057924196095862357916510513026332198925689074968102875579024429393261949878006557520708038530159019282989855985100793079084085182790881500965574501930221903763296135042230631106882137714168555914848709746486280477177447038198263887558185626037365848286810277818049032131984018222537184416366300100621581798919618397211112603843314453625451773227862470235641989478311891849726323792924033095547146734663381943090373663929006175276526315472890239206635579473939988543403926866779833497912441583545740896181949189510722408641396296942400713357984151888238127306550809178461286222812490016269974401133134096541453304581399798254992328584134627655276449458904458936875643725350430777980157541872200194977010173271640982166129340187645903838155756868094870506793273313788045622009588751257426771406638855614642142281802537207507912799641412573871919720429199918311221760492160175476208336509908659107090438835876660223089159089916718333073722357520959780773963313393033209059749650392960503190096288997430409210117042691160297500742784674198965128677806120723825478750591657338938353848555702924934169553396378474270112506116661771181603833999677469337813398552601413529533580610376981567079658541359400395574586000069894953792023619891907419183207327511988762468374591622274153138225356241676806412536531547559654842601413819837152409435709160295750708400218276793028094647062689861904460624548711223019083600102449503344883616746505231540988625985079593428245791578419145801465214467236210554516984508981587860370133092318589108405906848776400578957502804810259224187141886550107028178987726016565536636556812187942840126984965232703289952677475248570636234397118428581180176548842226716716668919973379664881068474301036363229306273771866813853079277349263070460747780962513804864217705820830452511023523511513065720408351108708832683938080091220662879410102376347554871017179110930367226857986758654658036702224543985834913237451336161700375577213975526975106663412101584074914164023879102613534964728324209867482581519805600982640308155787358392961317704898652096765392053651122258125433723403370514297474491745154370663121740758267911300691596212255406205494229332030022475782067411202793330085786007938757782547978082158952353782604846388669717355477599117450913183183187354893326917921897687089195067750973056059930124089847107710941584224171215709684804692492549280019756638344508126786102661885882175469893188122535756264197684465319009219884084398216841473224075901894427047405313779771568902839827095128351946734009677899625841851613933320768605243203955926770034200458431699698316073358051702735438835040582934977792714276072231642524079664370253073847072908487642110391496245542799977365347774863277417918094865430934760524032817602536273416082942501962332676521404177253408431789632591534066151624005673435763599375314951961376778498522154585337048188705978659803271469328633478211635647284528630169654514419002014789245037170357391789876073012678347203462286367561460389615073615680620192755859926756126421669754507874849543270216272400766178512931859566914040575677010313935208892074714554336407053925746360558377695981371730660935334278811179887091838812369340718701063727118902268330351895266072990664922991883026141900933938027347165873440734553200573123048313895860093843605161698508054757909158385124187280230625549588586026909854613062596600128121121965011584557851764526105425877061571816899321845723597896180916235581441979331383536688766430508725961975883978844908860877032400829413049869306870065491782379417773765954624726488455826150499523444071845711203504128068552028141753040500250345001740563362637258531478432230251181316484188135563690914627042237664180530074464336581186185697801899779555902604864271301707039446552647668468567265890081708048754103494933212451881688022006454361438449252505924514849490015813365929058191569488051366606371701609063082717939441161065108056388817036529492929060577950377969591253553742977945702645561933601309711853639018581166368172032847541946043704831250695932860560703809198392391336093179788293425334893546865287866637469543825992597106127619861856847259115107539290978714849115557626814780016294639732088414231623568857023664514353304912927504295512299876269053512959315102140760396822141363511537033210084024174251861678845664412059497654971836399834940105564054050861919915497861614396308783339418128666708628488653546395487556124101690171285238583644962902048291495840812737791443881418180091752467097843330766633547819934849437122485858422475663871464202068323676879788922931496804347600992994144876089286858799551629056906085352380648580087957192553773419765206080292701771696414241335327310164202285257514027983765830743730531800487287058172661163313153259460704084864329438357916536180997147050166737338362164540820185666980514298681641250547093926553723515196747922579398595461936759373021030628360975809403416509658314247321697254279230953349701084994767827034275415423166930884826202048434208980323929543791172792122501209056874811923980765226631323674659276097534378918325881913921092992052805633315270669350330916904503382331168060246097309817627204399943668146491300899673510632510693542779831847385226500141228103259838187787430373959951897574486587691809567430213443004347481575633925731421691133225401120965510996723987878228055343150489528241138156830244489346515368733897330258561580629275464856886168432152053246508201477503715972397514099748073171191526881211725432671074280461014412096591775808618210083642111684216525485331998098162748321392973446395145382245947969425850776750885204062117069874491580389613394967416100087688391147804056955974259654892132947343045897459950566336814379020780873939429517648066269385282800506151346658047261031189916709398073668782514499391120320017627847466202224479800031912955563991798721917697020753712041457993226739596175137924625460986875636679264587370505951070345893454762939838494274252546963785819984696890425448626291315381745128175977328792956888273958906050854376569792853128529553129325624749828412038527815494195094121675987654009694178051371939606577753327593895228932614793140444205486558961990317427302846530184626007344465904521334038917248415435171424979469553593178281345683674046280472932428377677376738570852704635941635607880885510505972831970011925276834841359776991069817209161099399408777299812664828401354019666301521545363206502232400150985362335206314556768116287870809353743679109591327707277317208680539935203154539416381899482721123325089869586650847501136629708082946133797907124302789720730033382380507722409784163611225689341294024188552098693272874735878478845477051592731400526470057496755448976186632716377723858150169175110694408518331150839358827126755950856715225902308506931976098289819283069033034348496216412937418751296788983481919327391523616687139209463854084190307141140076200880458544756204161627008238797802411529797603510115298799675023624327102039650404341606177451373647979063904437530374685188008390511031157055852312439139397621172235472856076676003747462750975077577500141345548137267501580961575189810090681468874089996890726150900055180822686153985944164734256431382877605583408138797407228215961854832755965165447327924312693934788760334055784349419871024259497473911528811252678349581035307612390028738178312609194456186493609850638912364727592160757547183738963251366526109838036333011346401581320035071241447571585404468279245255706046137387410006176470936670729394317734765054979928827315661722036666859099796274515374550213165569185654680329487397705339940154787967181696473842058839055310450007790521224427229543688375944007955824495993400171266598005655721943731397152949679808905594021246977788742245939008650146029837629454564414234088358128241535808413111526224690091453688122665763153220511957901133927811904739912630363890271695884799910765010741518488682071563920511129005979663898028868568641564446569642727865245252501886151921191987737248565451873381171441803980476008944037352601953165249517627118183079968666212952373755172951581609262297628113832888670545923248557273588741580858912686811274613917476931353422446321293221888133977879315760988779779897826565231778108245957201212566095070722628469281833888155239408832567822978394651821505049527714196069253526453642313777783651306116633868845043131318976169746363665270695203780378613413379438606782151248473145547766657982185891099894630124176158575717054611541231002037619847824444535932479551783757456403013238477848961540587211143502158792219133712710368592097672950052763148096219358267967096343468641436200262267383847427486992627031909635493450279683728108632701242017336829378497803085709989806366245449483738891571368285251777742006958160822770243678365320488547557464720826389578600061806580793909753718933714192915972846777101987378225621635095854246964198081050180277638600868413550340637268894538698332146655785268014210714817358698854710261002028854349422246660231542933850540297166171213971842935881093961518409241103345126617201573495123038725059416466908659784134528698596324368560601185911330736090375060964048116074296323791789250176471031769534909991558159332697256551750819813989215014878767741911903220055248536447454165821876216525375609120888000583801441643438280809740080692249368733987743948277896783049768889222052084475889843265509056437872887472145389961962168154013704490542197949955981307137571059348781399933464221357375836544341416823037174448066968474584089492309282388081707897056102068408845570886819082253792686018131188373967539073561822806812363736847779530533779613048891747133276204152179241946633564783119933013153038610082796250734360281898095872740861270255019323894732741363206861314822780735874677247125537326751429001514282588491191829324237997608310641201795622761854074023680866255953190129388886122794843456681310167247409745496598669444230186080849690491229728690815056829880013491212157233322718509974262924284647643660343097530106828130720527977978319789185090969249502948711418849569864619914247009472775979751034074031154869270766158874851456197202839319395340758681081511873866569259664628136140604663863887919286122886675749088763345891521893735864710033071718938077030211396572210960190046439292858128593843793126139335653634702143088222844009917980529289517016463660265816606318015997514137938167588417611073596959778548070617125113613859598512343273030583480344304809819881297899631274805600419308375682163313304861477110700454217753346113732919918665542847118949074751784493178321371250388522490940534552471339762110315727835776086315941603474457711239766594374558745388231515166891284142939072895037329322683417042932853268925885076806783768501290945145860548514418864764965951908168853092996177163409494133482862081510756684983263096773605086121649695334073961439834226670727462390048179651882949466939453746013378617527364529146329368874001938592284567187174258145416526182297540616690216412891804215517274907304600424439374623384851496534461584313281733621380325969816260151378091546875576793943913552193703153143980341329487605176706686904911949639862206978230495224187798418660202253828947779579720826117046363725599946742498762934744963398073380511443587286648858749105337896368318840721642310891738697938916103345000101393618127301112260925611230893968165213927509324970105615517036018433328982268214641969812211508000468809906614816411976541490668644980567173111304204182762891882780622574637426385391606977044352294452163609285748549913973667698245592366553347615064293096386506519138138129369696852482019508664478917566406379236948955957878696896924770368077710703495933455641454833635763141158094111781801583388150724727047783765248341477784098942807853665997865772617793645036358296531315351313844623790378353160554964577175920075975982622335160555107928995719683695749306501986457625738529208392660592413658515707652566381650702451706290967848158700718430389898480752147859370206546998174947608474123530202010135524808558263783578834275190013203730519013997058792343821367055967708195951203182637094282778504018304465439878481901436441502187822837071602882225051402736203149071780860117263387992949919668204948295524122648398053966404875831937578430301656988244704551624543435042037998955343957525597434312203287057011729075373051617098645876131183168953690314144097119120646146486484784632027309534362649692108602579626447585635926069597430591962462958798093172982333113719317274338054426145875625478614445370461825443537549363861691306229932348465995819765181687487918037057301247434769962417328843834516007432997279428892422964305979082315776120972373057246947720216078981517857501369791441027285965057483020009205494511874816290948158433968172000502475032398996041335664767749119709173150754616232557826470046713027086179259946184211259495457045250753612110000536061733852793623287533298450119612307403914298650072742671255942475899002010947860282701369793650259599653912671508603159624989410191880265275651381258802420616534304644278068448213285679575932272411285711862330616382960704158515056918541174364642611163347662977323699834326045241229093753948703444521684403722488734150276363719538337108346841805192067433613907252845326853880179224158361406569778303653252133396543467903032305388389642641442544509272532168006044023403546558693686889859368841985542606518654477783705709823008644971003588721477994036322652011139694798025609774828008699125638127394617694873183501738698593897139216743531162772579505683007021351099194015977588354927237923354919829941650139688664053227642613528639221359277041413506105203053058135983437211270319605330958485903333858466301810222925237777904796126404933743949179451095420411325842785706428332056405530049828524066720832155113704242520754806340294099783960432024559526871233028023842878102282953542585197133671466005442081264741481188913762228038542959247511581036280021978167017643856117481529347371286742844056243405360092601199535983304898489709982832518150311084957600641839954155872417381175310680356223493156340620411850553751560549084669840508586843650811688992497897647014354579415494531470542073283080099605064377336531968376828968320560215633714253013386148072144469222336079134041320568905198916189805841370198857765712770139299901042380490266239507344506249105605336968552898792098694109003841402766599758454607065780696372401062728617775012802168409150088686101830755975139996303734500945552070979984493476777470610643839783009480952692707876379125187385880740014578713713312891941881959366230265259861868594220101548833901999250161900406668025764601964685742728504770019328019262104242962632882406798172197815816941098014377346236485371748257136078196447871482265329660308269187645316065653025027744300128892425201305695707509777419195393967037086860466688706413302161664009680688860051632753110379353806361823133041772209617342885569822331443301433033487567376872020664058792274773795452078062524747600225563138937486876543934058187840829254754550945342917833091144412414361421996251511006927836043643336052014452005265617260201125048895254198905860917352308252638465672163194161738649234585147850232800464965383751296502999068946967672135740316858061085601965848189907281799956988903865823747883699222088351666790819012991972819349040161364916171938338455569548059611697244256522888894700722522457345754636645099421611269597915650944426759025960065900921259848302555236953708949735339148216037005812173703763433668074109121193824465050127468426914790570842439072594767908020185626515085583945947758502735058465763294110407581145263772546813883069906561626878422591366267437378809258163771435202509248091066137499634249282737128029155127071586436128157368499367652843862156528888841040389890616191676818749514587009613850106383976689777768025236790589711604822090539498130491459022131509062242347323938172568789242237201644024010740729047274589592055559950198194192792738377369485005850569642846104246645062799187199121921820115094208280190423582753303952638444951292042223412612159132683865338739456240227241098542303554159582722643273454816849194688892371723487648056500035844905413188710686952423281307123674728252477399874991369110985589678638325034642850443041180597110140931487890783119235072279067205259820366664846668283228670486212989630600424766553800544885049350651212647144694507620955462326375177383590690188787723753636955191675926365443297487683601298140402889066616356489204925898595775997564307128595179064945173650859159577032198005557893604148798549557910881921091492592399517053627577990267316696728251988006855683195265453669055658594194663481147131929928799598742738400449603679430048790086541564966986259656509517926710284342389733279414830041381780337526201749682762585337920035090352479452716212202097537435831960483470726574159742372705299663259308320793080994038639610756172551903840428841860906913730638137115491629319037352401844208588888036565412145612297607289751305487463355432570198888418942721921526251872573581721300818110973336012969950497551929840683383773937950704779399291621582397602156573251868116702958569287042822856659552207192316133032360440799575934968658966917535000421618816412600558168576374388477309351605324875094939457988268005617357841438814655666312093352012869133857019815026523691693628824988788934660412017778573396005209369232439986653031565380019480742589607157210553076144931235182555960153755482467784306181691625349943772573687534067902583243796074605818799205127821347095895834693003471141460044646283326964241826103619338832672093209555153446833157048549032981419848736067956119680103105553716826125065720038852705304044880836122976866122734593608827450230946835998737192633541387305628249655898972417955508825111503836674401302729836075418588900683312092225209374166693268212089618326446463804272447872188531600410568438780212297743035132313845931400218780374750331939845840146953432578999660071272252875993634903483848679680721554291636058088289202931433322682443584537745962572807838594043531621378472079926718108437633878021664541711111139213662578907809768427453052648269274441040975562997773206285444011515153927574383933259567175965021688855242639139040088073619339915851756955244428366919072104733005439504917060285674121898314381497931797044465569489684610070637354870465535924356544549698026972003497547697265905694303047361992284068759655854379906621672865944901876340242619450497370437488727619995293938684503037875083876870348945881888504211971694796135118242654166208410573188291880311669571537659617281862573034271689509484591072466954609944550203915424673319892731136130334945572049299461833458444248420648106351974508673625089573214335430175632367448636899040068332001400292869517845929871346144715131350383377379055327421447076287604979362755009412557122027188821465689488006854745307508974644105225540981640108982052078797233182203062862040360281508963392542490974711109023199821007805796595251247108545920635892549565561502337596057654738600102284155890543235382901127305164586312967499327685228139978711387321287995945436722985459342149034776478233415063841179778922074229074849342916499232520864073900867779462610183006659201887081913882120794058198289884657831932627698962351053437101269434029821694740116584373443902890562032142441751415282518822099606088162898456920157545101721403514531793249025867835284155280367486516074399800517420015550937973091132119993618136256087818622010137658934125902724610445810652810811837810130017300314973387222316776449787472995602996200696728617702193407620409250852741498754409246469149487423637472537327840801345387701717855041015165711075863490559752243678246326069364103866491486905363237358693217512699202792904740822216892420031184760753425855949978374759118634141097943555479483592916723536028265315478574123533638993225347872670650917152899255790333040360141699105321795225610805144057355049942887095729647650604332494943166122324733944150897940345606744413735865531095474450753940547075854005072479302787591698777005450451171333362432140394289464211353498213965528498967153523081136213886203585673061234076258458188895073809575175005885745049829236144953474537358660708392856477614277275620076520479286395420919003494510350259330124889639907590021157212667119095589797407935605326241387263273847996446615887039481415235353561684171359573049974630713253534469864003728573738230452438817857566948750706932627438611134535608874640813512110921309972815733529229271492829186609989730897494892737265824668182438157691039230667486218484826430498538574326532842380649335010401332596170298280947780775281405166373524474110713246123589296234393211423741843228881789659301840278482889695983837298406822060323940514555214710106561253234192573890433778440553941203851649762991053282183162457495189276115341465296689438214872787967528242255824830808498462427283453133345121580347239336053753850074408460855591801179319755604006796472499368909998379168137324009729151497919914236821214791060636090109017003964146451252065400595587054265471274820346391926051125398577793322610611591189933053468582706652508390727788818523426221609226107067238198953376055937487788501300261285940688234295279301070314219175787595386782556690473734596367931885478320731328709199817099262575432064669879304535205712491062938809166635654857181648904854224617180652131590323278010909457962689008577582271401454046851544032097616861295059187078502115091375845771842345690144670229620737332532117465032294622773014368786002835014752624897489458238945522569885518171964949535696199474678924951806845552954896453202556467334222054904865981072142790296190440748121386102017762823059650078162313394276508834333811090913705677650410587410103190582212194914639690570323303831872606463149039073885065460066783282931094156670984967106165249382941789593496232171456128439717934705446903030160615284131780794882143882779228373546850989375713808244098429764970095692895622221569418219563837109808868854345913548020543925122976243517777520165663960695831415344882899612266009426245702407728995117423403018212981559145967244782181881291492845449124845059981393931226214911269036842810755748600336219999666396260513800401148708073310867327494841715560813867823559049097517930622497487734931019656239626501890974558550742651423633404284251266696807122751700402106468154638357178704688180536859640070876953019538040873728713584096059592565186209025414061592243825220025311187193128345724445996758350208195226664358323059274797161911685254005765868383572059722906986714891579505511452956903032731005962999932220138181958310471152553808290782047660644761441648952949671492533688844964813033249727253009358976914678590968101821917261564128248198410672472406481888214518304772481311000684457097150163418660203289158283604399273425545361055213299133151764693987344795820542895702485173976686351648788575842805603644850108401309413245770713580991358786936373329506505875154665578685592756290171849769770436422606449006456672160070974571506006673535385616226515996536595643357180145994006182225729896540031527936792860751215579804834458949654847664003437851502087147085174016351118267669373560432130988509174251804293842428101332685754242485587064507145935750722852477377398531732162958985650526441212528630004547541780956414358571127326268436057352844311063372427436014402277398863706256353205845894614483853335862169528364354677997182053806268214703139022337159004958322089484665121628034572826917444300474740429592438873492238375079087211159013293918336578531051817008974157108049479498303495534770854855190719242759628380649063268106802029084873812355265029549115793984283683844711180528376689637485569147490897936732889805419034840204731151988395687916816087880639841743774746791077390275034217931121464872185690815841276904991902838882108411287724908067978807824452952040978646140481352707740693499473556051704948789094631957646595328491960003882474001082367706778493413609804891204749358465804688602989851045198314732599002277512251593591641753858913871086637173499989387459174101174304881465385685316641029704610915025456995735037754480361191404909717790941798950439822963681430471039674979838021696441787663758214948249989030255935793001212306436369907544152312125746549081079889293789709994552351029283992899267430173218602203888275241025784908399429376402701166170465364154997515794747568550799182160151419547029756421687522498292279897685029334355563749210765246930956898009379384274496254051339988679329036038761606172731358993039588907588346017792870673152197342196455001319656924685764794241001675181389315211491073466562784665175591020966196026688500757103585766075802505603529401467701309526706759160984507491826568772455672739290865070359328853667758918620407105403277887548652462761820088785422196159005629262399151974868883527231735069603598130291613604589405230307768300859230843852765531628608614994579018939091210909836166707123009789197297309769215465390620474851859337419604212140201013606349997071974754779610810534706730850130451441969602936917151097484806514539344676474972435616869176661116482849707996027749126550784702795155083870885456359616080391429904988218588162415997152276403872778095601159144272667429644827365417367829586946478357667539317153056948768475779728969246867613144020574432205817322122807044951179241525316147869320967696889557495325439889316035899881950978181649772574235989950742118589012958141992400407913916431832343874887678034037608421807835411446912193143336626837759028779942587926632328685303764697467946876699393703184855992219977850607866246866488022863098954521452428768315827920702486033113657959689947051704576962075038907768262242558555066796430990317976265652016904497566867777884621807753167034515313577220019569353907197941766731623338092591899611579403832509644151539139027502243798720354003480732319705122927700487883830934964413487419717631675553807715580436822657776565458823890879965658073798116139171507815858142648047421278351315200985657966404085182364968976560529646031626323214106392107849327305477410169385189617374616998030975580544627224160310634220059713772014188659363693436450295755808542115790355261473915368924173530063301022781691026671397031264439006547936986294586361275796689697353052065299500124543134041195614739001443616012670063635315668466485186885266208285531774781515335681747013782670053910636839149129196372649462975382522922724856653570675618363631984920941597396132438712402729133094990080668988577491021049373882717475518965098878691173060833322991400899587623902248969049885992137794643871764560596319034919186868697896530063375539472066253728697550897448855626421265568448841670106510236512574919673313208728981060184268944772069381086517960565311853030809598190349389472872088190719630521422108342334106043167992688657125527297850912894462733742034748797420098228457736786860643353054045178273602575625677415955823776478805887300972689103279133650672366653309515539167028768100234712322398272331667690297540385463055202389201652452984430606737513236531990822777078858479400937683125235318521849296763341243563878003497338026169005595980153966452764581908740521185904485327457541173975212829369888652480437621981580919686325722744896266515329949295595585327379506376781019197347236595807278331694224626465152197339004978333523073997475326590407338347720489008134996628849741006938329637389693589615731121989026364354630099385451720191565612854677834394110585770127616995204656425267328923050141666394979071401887355836008530720228751984527477911786293029850800708319005099201916537138578397431413332857122867334034750434289375174283183340181039197376285405625177021551978873865056003944404634941808018822297114804681803545534625016278917179104564117297783599241031918087742260018651177925186162320599943382016988481805930616119861899697381120994941811626293998156791969364411499704020446208408091734347793267425974359540787185844758693288182823292790850380377912744635273398097169475126353467374034034809979980506330073335536449629298383322217108500121845095986373798398816748147471585259067193493478777156973216665894486569322815304755993829039044598489015244736229195431893268113299849032172239504886909339064396707690517095800238182619060914687178278976791857622714430880238681612612706279383166364222782826807243443184668229182301928263408529632788116888484195484892356369333761080899974354758074908701646257123686782051477223849204057932487029504576914416170563590617317346307787147996931858135286915780541382051161150676266907875179883661468160807831959425625568169791650757290711386992860200990752534527755097639810564233809523215997059071244888771638338639966196675193261161489890034280867318556688387548694031432320453194177990120562882331349784204562945373997910890815653855800793513962468473099215051488667581443032729290119693419685424602202605418157817872904459979507581843420719141612148958707003191049674975914709469241994449560239818944599703892616017368984316450515897193658483709924799429677072075163625169349467005326683602836992394361339203349264833863520157500182803329836398458334284159369312641018508456025320410861165245285933499880930801646836793410645857793482488361240107577706080599025222849472446262332656714049691346446561905685435775225720741279222577488910132427188511172619960376744292917366509476764151203147716209092865408078333990287661785707193589915365246685291279101171951069190034461111116907540257768204099400568048739173871671364701077003493380481241636890328287836176641379640377223809362443437513332516819264352879793962199007850777883395357085875320717870942448312658090986142768436186452140475079413589343785030886076347268400098739002998082245822129640566840469629398161918469970356189299311669415374980999941672867002735711061553496039871308155612146353243232554582408133919223849471877951781597757805129428876255302914229625332955427731941106660941519694117773912947613640848236413173359541129804229325137596676686296400880753019535055880665405412385786926349291462797232600925755112272832081565851206410471779726278215763680963361080620947792855735344878774335472620923153734646556267477126991661119458303783286189773015890480513202074023209550500774688673406058646156784324390434691115253213706859728622753374353056310143606861346357599515533354325890673392824193014278192103721464221923130672467565989126318029277694764646599743992998403867042918741492681550333971329677419860194865133693125059864827852354285554431669600000444961905980851748633157169969248127917359305693376199444270401348790364934696577101661274188253521101265134912329944850115976251966331734479719248154049694966943922088441453665662629802250827146543271071772578768263020454850882103534256143370476706150715161827102277981450303179620107426618442460463983967127168721009436955622711824290122759155158244312189075219026857475338393149687247022587007314840677691568425116719102833181756240992173875148745561165773454387594590383378565382211658124089838055358890355799115846332778911980763199904802223153923030473675294705747364313661373938365414284808077219780278300697724524000445298757074633593873767308718355542868876808813557164111038704611847174468104414907620081356766684302044476028453076083626500028728989201298080391052951590121774149345696896226344875135020363450137002071494370044471523292546489162140770026734176955281669083046122940777505991771426630605932626389623689862975762030990002516887123077982361256428202703970097069668306723116168544067653146782211158589177367571898076584385948246939233300531219059503604215149209813139315876551184646363119202720982082655540176180937859022436905365789466737279725193129130531566308793670739649394832141380466030700210103915856790868537951339847792428016669104681110725422283342389219554436727979968551897272104823143380009446893142824250134647411462350481428116964082121386259360958823545414588568290311907174977957473070052612587098855577133713104951103662607795036432799598835240142486695967146020094401912616571223315781957268439457222209254242767225331786286146498771046751239225986731119884056836519691443263233881783870931291163766459260152242517019480028344095880938645694598230423009414388028687363316995898011476335165825887476290763837073713663466862677281832550110785655027393597119005747767395667759964181080967435144412071553341983457166456589370038485261543574686996131089838926605769477392479979217116789197304937992392491548562114020042123550892957519473763343666665264907681857317536649047474653659720510746946987178748610082493897268675477669606832365029760218482800003058144690160630165973587860383892154962306119001966877813427123029697004441732025777644401374146250046690598053575803299895588916947835894435808150316114094522594711914067326513683393614345840761954390145738397658696137052868356661350734793001246741286184923342351607975429467118191886775076249109306790667867166698404540569362514336918558102767296815490267583537336965208686970730885867396992764244172113759266434115152742886380099725484233505339795611678500954878750668832395006261143751392777754459903379645956736758812014772987948998621209603162677149302632379659836938712160435226215615044221436575539028638889274104000948614578649040123644911941473076912883989412945065913317912209524932044175230160545152486903394892388586515713874719060631808846028264937268580897096536175435718151371013146981011185486172500931888303739381140002577825909212921247681168437456050277347197027906729171156901078844621008227762515419488436482676064143856159189515647647982564871917871561565694953818385564469581982783809962053125579696595621704477791595054251208446282546289459041124544850389425122431731313776527349721405909777852688074067796917411765209191987451734131948072014827133530625700871014536250988196341230718257338234037703286523767507816413842530306733671306439037958858649387117839547148103900779613408997374749397757079392656736165945131303318197664661767938990274181203705579231211766432750231978847430159924079317146629579932701066976795994104609035828426963169019531948917742639800716334615114129359486260537419856444697808362738840856875732475749687260341322137814855046189100857660571096473984946937004683007254630808117126986294126650431769147458276381803906032598574700833287172665195177463912646142538585598977450977980262574822820176505478603174505334297437839759636077926731422811598793588278613350679427234807616412620171229847924483705853361921720535666995402429238781710523330542840815116352715872780348447883830089330515769002675325793069102204165006892924466761191926211392849397818570689820350735151661061689219359047056854693769097464029212287900045933810524418184940694231817758976663045368967401891325682280316072946673793479579945176663421737481699043638443381631800839774913914826133500524721821873048465196452157678967672653557975952464025612147750491150172990417822181429565440147167884130216933578101336202889501605189930360508537320244227467122062334793219569869704679681640026140867167922250242796952741786745147970226462556484722059755293663727785855689426138309889834502091232898988096840656824159383107223782153958119841618240424196192601033092349905150522211528551041483041404838493034665943754898452991619544238508680248412093536514591560328017422014295874292118385575990655604685696015592687256581240691651911775512015026150688459652776949381158725080487517537417272134261799992294887443588031595356312762734594997368441343503580221643058154502884748440457058525849069675698581851372598037718493716884602010333219820176867762531905765607522430612320617045245828299077265306658329953100814863369738610401516760687557778535844345767255880754220175023183586565977444114526546490654473815882300771220158197297775662932799331473496249210369672334481517266109417936340526703905034227196356916074596959953904060801186371441475594753993015218485747237455260079871966144147817499323600817948451936026285402932069180913301529954967101374931677182760375610492527093524035066836086260581280817132964739676294624747472227314219624107241210467480233371301809604251192057508201779297115607168238313586364080039344011249484630125072558708715585620246710123960359053406363537396929003702973672064050485798097892808851322782202008164810339215364822599922754060765600826766185551534232073361348661726880542965935930963535178675431319145668286743056986486783858673479481884296181907982240897006722567070759171114950049361597049010638166859440592297695682907829007990247281678383830508228476073569329966536077176042346382451370665525392183277659324564845721654821945921038627951609415960544098247860131556264289757829360131050520452413011583438048557466072152254445012105650314961013510126505451300036688635075321731640898069907278432062834811039622398416214287555044155595746508646899819675811144729342252292604404378780003740631736728861316548086991589113629412620443295296776787377397306750470474604223383850337142913750976312025071335986993883785695354056218097407995214672604983446936977957917560802367413552773242288713537053679545272987309681972843554968886031261685478117179142844878445642319243591191335191040461336291653894027223448818837440768266686354643700538294890452264748317594938191462246183590792924245701995600273900153918967957413645530520426311485297787994133894858136440344493899664853801745730728239580983680499058579913778606162188169663858380825796441181091465701093136987868749629063851478947070629427069981158355579121020925392815812534863648336635628162276846373542189674002993789143164310514759109592469999591221385038554816193071357287043948485726089901725094927391344922700185814329194103302569036949569510204376525556224720332608256210567834803251000132621851858374277483752955433163076423772010665820812989004643374801408945376448487897587588776666182879908845795817624887436430136674246936740206982335818603504108587104148511758615168749227758545197033326158658600927092362138900765418865294295585333395422417570595532561727956367217991996585593284360946939759640757018407304922511762610783585160121505098711879340565624837729114575764865899970510813307851589396854521334611653571031614052943906880454333379206985337893448304842354932097998010195370261260055282510267877472057944855244304744678839167109537906448198105961114045244418862194319609786333852295460157155398622748800046869791225172913735583495374216182072271920688131718551621631778573303065650664521276703738353745762916032297851845761871477037512454089975695193785681774065745943347613422440817504003448275065219375711966862412422507833265497939606802384480357749944679045794551660110215334100139064323027844241836354683753254438448900828660345907213338765516152759271714704654560541456247482545185013819138250514919113427110888379950973214193868680208065284967834289391912643073442099584152306096992790302821890846413996148861147324989903940153219132624209563334564235223811003634721253830886386018549419359763741100934460954056144985296262908799402173373984335290133966305565350311260813637142733301452395735972193886017300773967734079758220838127269750066195536533527948836727308797647711937970329355850057239900645869320170840999659627248941268124077606652004145141189460517566731605965225177802134089288359361744005453367574871141408024014222943019424082473600418715723383967326438510516861745716214805255688911434508489679540706159038646539758961390962558700653942460721865171374319904821849494415405468118388487527505237283605415061189767192041778466974293104937307355513339204948474444069446044545142271951053635079624071353903185955565763972912810220347901693285701396456716497074018182349949563466338911848761233254517383911286998539098745226025406004131536193305664027330548207321876221915971371391912937185632153447675570741984740301723719945837120366381679253216246712913934512382221630129903795727307404416663105024927709110880907242661830680042746609656080858807286514098629489986555961258292034609672148570890163528138477604735783560968067846497575731330467462370622973243535553059818024978853999445732842551539013516803047841097807118925639993326058402215080986613566079289893896326757217511072136902747258493981912867548079207465154587173924541480653814116127030721300297026373164935124696487872515042028059463119634911162180461445981802142987381625978333661314132564813350055776665964915910266183768419981335077400139455763816214666402099839009659159414398282416466898587457643449817038031521426275179633886389376774242497459271175339044791412527333098649501674142877165455233039958195379326276567812506521711095672909062981283292903023988395050251284583487606109702301669846226180332872927855842428810505387932575250274523749946892150263699020195543935934372013426862128006517515840217512982556317087167680581197888932594372160816271397109951174921048465548571988243320041444661137029990024326000957369351838795748497600711479271967839574670683082886084042709185856273287527682264164325185170148050940643006417507411030390226474285734646148583810999655062565207567724707629123297006950311476923451300279412366316146166937845823761643829175193599819740691395529891563101311576600153159820855415893103243125205207956500902438707852554757359245896517561540240267011519210152449891143035944226037638964767710180611924059351697458146437979869186317273619969231666059475733741989994636130475778819974846949804866902341733702801703733458418349134584662531752842491862092042359146425583892585927774048391420824491439211330433940238421592922068805817096452799035270088337795149627216752173683974601178748562305404209559261466063886998118661195228682965688779251240395583073044918071481621128513611951920341572714575672439047149579172677917541581690092572492928760890570268896948971282176002590949759089576122871856450848760562301202920706310933272534396199914683701681249363402707817996320309682954782120697163800952542040750220199929687781898164404861638360720318607652762954027979341627053736933254371155236002249930865155686194636854583333857602685759976826574820534602892794043965418938610645431709674451602897050517089098101783768969225900957477824329066037842175601112555411825797202307231353368010171927752615085988440547666166806783615456601491379103824119680352291109784226382499041428455994510578812590272724798514037931495881420028766132132684390080559342093753009107745968490554988137780448297539672587694728773516120434124580464553409349452335742110097969721225056237759677531171969387322697584047170477263190890279947993514931174786581825932264816527659325452746463200566989829038429561210712742205998195907334272595903685718431948697050706091679531090796918171965336370558391116077379997583695825427714572653443952854425661388261715802632795256653649927912126360198003184128560308788392603906901535625631043806397728093021932514007750526270364027980079678048791587434696352313724025882207028531850463586583518168377425695006643286669979568161071665026273488504616775335067971237378491661423544951337852592782746157994623306645607236532007468029732196222158499962701033357904671200673713369293153051776896528460359596440770055029743435855922727759850874887472984195276917865653172052468093705518616911974114645504113380191117607197079833471478148896985730351581347214834380398298002599617984760349551482404570088546540533396149597171288375863476885964527373645652988994224220639238391615764340276600559519670152123056664031376065300343227173553155823058591786341475025718874763913738652350684874306730750087341528672640439331070045504863770470438535416130551356883222497116948316646168934969772307196336308273089386468959364282320779787926319741845461630257360935939984905533591607298097140094371784073242254190456605502067719468635514341124554321620769287618476169572956555960154932779748007725581226358993621715731187889109320427648899993830219494726448987598141876039129183899686717197492400689118053036294269254455090428407117040210919162137528776747696294573846040572121030450262913632891874998105540167899431146949077314885287346626765964790259219270832978500510801902282843264783756282570023463128898559865246041957657965504241424296429125259074257151724731656312855409446242991751663857187836067907794492230641070548167001707091209999668988711270903579196223583159058123229824420263416880646220792661380984911408672864709304069724804504338940418396173154458617403734874455756017107668939696947559939516683178682145778887385849025051102535445406845684521967202497864949661505556301245374761585511585043910578650839290881617534561144906066188538081756113053914765981489699161444019935301217868768431863243000790083612767426884762266449806458825628966324013465887125479343718264340319261306599115110703314311259729335549073844229600897902996345232540979526636833440939162522311570645610131550890928278699324697711311505043873695867376136709846881439976408737122927274957782226403624263542718116519149338397570149594936111608292261263909730930829815567259252782685228977457817297637923835227156097715202770021260778739793818940954870139740200553165568334443953857488603625188871224352390624901811757872418182126546019483114566830380402398943077693595503709577815640153240136674463704959711444090980714463628476132596692745983960534795173637167980802076138921608124526082792481695412966202379391088997318374685784872518429315567755273894410438631032780846211428490984544447916259530948447286753559340032545475418358439215452396630653893834923844553342860427497633328131073287063009864574689668095522697923789799426235215736555804642263968682352455185405006951703353226607416079007724418529453403448975544886723306451550679301497005679588914305702275175468472246147052756779333362588148610625364679772085643463958773988289950051865046123124606438827752720161992048571720272312489834940886341433950656823569874503533986902048956071834294874446299669515629333367535700659874900501324679144807583892777386163318836583471989551391222785385095141893361905956978051732826187349708853777729036613644748655503122969664482260472704363178401916888091380398956321157587088989767217291506607418115837714246095791120351072887783084928454950334117633952202949516700776226500152857252040540491162780772782561820145451586133119112875895251027174682908751020684389014458712720607943761143767340598400844089958897048855645083974813909258706782455436127160271013901328591360216342996670272464322409193685949751388900563899268750615314825296259753371134380696732568613156027408991917308694512451352313938934650384887914531658746445187785752185835442306899228177612587396858167127170477673226379884001941243993568293545813332374773451075252156991282730298534500964732789355930842311580186088186204720988451912085129591509317120651223721240257050150333365419034171763659477233914261732130056557949431090765950288226229410021884248770209056747925947670688180587766256181903617926359787822447991127220661038432339293404359661922373551741386360380443435104318280541345404253165700933711126584796240407947284012401951963050277498868859031576103948495513764695917410765802751636530960480327237593868586909025371765026125461915344968243128375058026780025022349729533478084504628530778867535638953184262799540511431752603503601687432092784590330483055424092309128869155076382806109544963653524370225735594764404806754705169363986452339034002118087493682494944337925377988507757258278613406825364243552295681728520604931410755474216404347210778956526660590549291942079473901832135564747420583771367389190433808287454530227362870999424387036713920518988997355925779231873765620624908244193082835841332879173839136327394981657568996038823213675285405077570993031873162615360020463949686568055189408367097352126408414406645411534808715458587196401901101590067766560692558680176822084279606858293325194969412579826129424902886638766783987464263146401739144334826553880702100553477928108966412958783559553371550125087274276820325456658721042776970859014643236703144145904652991646323320200661431863138918956846565584537552156921305779031618087770104351627995890004318639412977948080749366799028136730251766395451727152597079305811283631967782216336244365895828257431631095126772747369350691657100897795216055626355570310185968454982007039568362255728204983081468390311710916991157793970589307858783403791975842027015511844730698853924362953267588091392598842811952575760981925312656943298920189365963080115202773684813627919258358829966611890580468685395697033911935500824289489559851568530738604507763000311595199703202404644090410903471252829423893658615296622873166941960350937047660770638072298006438763940907546031417164312266556119733153461922390879019624862576992222000495884869771708135559100223711117550137020781843136331950755438872396286721899176193185292071018828389844544648774139608296264496770865531106980427004051529658035629197671926266093526901029240667610115068176349969738364569173489414803020925852273039269833308806455505896405054522409608880901476910410886055088944039026191081402906922177607292707393444721976111983121131058351924662923182675348507385122056421593208029988901414730997842621309260620376946411718439674218212363523521615932654348618482898693263113178587169389940923290772584664595038272766191966794567507680679666333694658113833506409280916783178473637838858947561886423289421041625957167047292689917588694156660675280661024148818491467635148579329845135426614183018487308971621570891911005279975784050585439162447619648314514667439953610075177374487081198933593002231234353922194025559484596713383405871790412892700716818906859740406535456345324780410220227617386911819394833540541928071073828973211276889589827085167137428427205085338742747801015975342547307175575822712232413715141855302571562143852572469426106660607747388704717409951425490420413200863914686181338690857433194379207678740955261579218523576097002921626074143007566501986904351444736192232869909711698410534625073873428298985687044465091430112359954615549989680142721709773356444189350800174384450752081816733259141525539111665364961968740938635662212526984532619096993268774871830779866890627870652549522177821770484783397699502345858986882436252722684945896175603333317373777580888084150025959627510897275746326120197724668783527815657420192873076870322338028118292031830227809323379532915212756801398791483304114479722106851133291883994557767549251391864670668102827413975908536782332500891687923729712670311528504961368517711959884835222620596817910511983246579431438918474845216935458085716096613999247549280504345280745715344551774826450933926569780925044660034256143866798207382258523713923726620595918187668257060117060707990388129186793878211994747647761775405266055143519494154724495023221172839037145359601472695689480540851446953383575712398212742105698269436925447596278825399080650835900113231601025593728934455001038005103002488377770986795100846758180119373947234427903592549332836240082134342988285653258951697726322978928508866617057183129652695833813388259716687673021314197449050527297036271160493357491532653477778021111606177000227355865010344616029200624119857021465662985917843220671452652820637465617156083868440799948640812690395559748091607207582236477279763794150882555285425860435030385728730416830389743471833779807939219570244487700004266605100269796787632372463708687847469301668140553884940203564291886703336444947175503102619496587862228581643124970971520187501337594827281480387898662350020098885442587629090150376946167461570088684560685235181796088576909903600114081060028650576940599202859122562179621205997748308727894469243281382434223607287401033344016675309741366507587209495366871940696333183411607462481667312597058648202472408869989016198924358662014756530527476700318870833474526338318528555760576135558120164210512037842089713876072037520711927256167470595826969536747599596178959469973888191002339179148870392617573201108228642033195390295422207665162903265576305354029186909540891194399052574410178602641361687451520893483836510958111522764442199115529149138788069372816179868820233872704142188686194752039719277709184320438923523795564514737665662812726908440475945558474724464785637346307912658569056430744564060463825206086881128890139680620002545433593510658653173986478751817009698992635581975772502323128449568434988494108038888501488336483275847182806972891170519018288116741535010581329777631954589678588080632567648295556967710155880827023354223286068353794278777692716154165894111362700533807445337140324349388841255357202812152457502189356155397243129931543470018644509441754701924611721577520782014558567749034183237552407802421440436315481806909009786255477226651747006848155328316670733330850812786526298424335551451839952913996155227803137904809239141173683873490984973775260402556280976300182103001180157130632752158775812514558082676107232512155996517828455605030564910211249084414380493515078572932232149751924428729093939043302460806931462375663360495630011113412778802179069476177174450525371148749440715826685115455147084130422102482060943533951557674859602414363480154273447173447775786537311658887921891940983464750776671842724889138188348153131508365367113976553979159503555534514458811508023277843237956265566646686428016288872166061174266859292211054249462924129426692842338367214796917593262943642579994607109033825793933252226593070774007792185741616799091634155502040504301102727602395958324216203999696524214159775743104985584414422181817701449197967380308595101668861166041032670511245235936969744709257375745138437672936626121375540611701632431484332630786556356041817955497731742021683198556150521194560206718879697423442675650097105020893636279452328230219196060837070092047079801355852922061333235320624462476943643355187305410359758581597970138228709891546895267151527171418392646826680398139650423201413192191593021863923378801160337237444283700819635021350556331509216766864851478050892107759997583259688733443295128094127997053473034370841242007688643817899949256672061587000509755492673476009185331588330983100469901100865331876226072798295634023571305922147562965070778079899299424251508308602531003595395097393484948858026487710997479433140094485551021653925323087145849489128651212709558353512701059509626672944600408201881449956790608604199695855003930422926531219078350189518226093960905428475012422007105336529252556036430268597553196965493825621574004704931496482650124813505278008668332270249187064362417172863501681340344042036487657368681531466992381362704914635154966607690339872862311131375618934383720038271126544403894643067786099573508650531949342297428465574388739903203814955449280349243751409976032793574101380401240372184146100988898326854134451026549496104720678815875515337846346301142121588308466475530266135736135549514475632507932003482245830756581049817350457619924301861814287100800161819845442443064635901433920062529752892829999700071379209664580939414277010574374851815717702485225339701900030532953758745976612982421774459879701968501049681090283418983664028295710016994527125134529221225609767140091015298926883131332124689897650972494059478231847300659228803518090872140824025228590987085950751731525895385852075935841868562569745449805719065734660052627666301409954035502684581451488442957866700241410384371608421262190433583939587894117482393121091882454410930321451585593888411527546394989134623461251408807670792348885147041377261301720221009594091702535171672734816211086674159507632963957303429635167013591997912813008579851873814147952709974807913012185382304727664345346592138169660544593091260868634720841145912089629408716786774279777948620218710058477796544276876877368224770128958225232058902844077277038612702021056537088228816170844708434219983574467524452590715677754501225534862090484109665992362594760232746249186876204394711544960471624329951834866485259240961114069850331727583421359810152733136850510949972911431046463870347208480357089269502705428561902462018936589981546788561950687797924758108347944987004149704401397495905094333789267908364505290183573449869278465825389688994403289979087466223006043988342818237166209278691029460703740218853235074790789596349792835541940000061175985679550085968370965536803544571291381502890635621994386950072891425529932323815371540144746524234240160510059851646286545838082619008015983564096124682778510870043092610717039692752567361332337205559848272353155741029797514708259136085425755394911375941927720906081321157517019965231606255232737057307127244369368211675392561584467935937976798469035747877781525642759826768946990036510696949283653871099013734580461487746854128288769956025608431002701691113937484365893107845715145235147783279006335641573321552593742211742645383386124871155777691780127966646955315238032052891968296158786393486671744946799236212194286965565245085437458956454867859208472115046574441943523045996092031010778697431770308061928675415976253124193203434693668865575515465310031735221105453334611933753618945614873022693819340092867214360204914807019901801990175162245233690975808977364602159655281224895150047437810429005877342891265571213762661151446529372126145000921910547657937972612659652839882411269204922596864873068093461883512197948955805569529731043122852481552994770201952695659019151764630405988779133015182122685815824659061678362621383231369131861876387830562654311820232606180575442731984778763388592991459317616609503385220777653214257550330637430404326534872808116013463882091208483046927295796152419282342356991967123538985723093102386018761068957375980369202607987227602771204515379572648816664462541244242526106529279083350088763758499596906027266437425197998397034643432337318641647157984743209735804710455880957045696524410510734047808199102512429178902700559455965911340918771824121782457599290795526098785982192580907397385366252528850480310458962478267647005656700003946994577652137321413651937956346274383267851739364609051494539855903335799385795238195328157042524438359267495031529217151027388799682672001055247839459960387260538338060470999389855476223743699781475582301490636344459265369619413538499991854012015624527716844919786679287964396564311942614117908760948274077870411913901451467355034164425162917099113019784383387540284881951420911368168651090731021106484116735462819213893388834886564564117501549966868383589089946378070693201739956972201585446819067217849823927205808192411441418842318708321450326177646330553037902663613192323465057048134315173838687386962831027604509771270946086895581743739599188912351703004365004878118979699322179996004044030807488974192221772671092094967699031535273113953432942277227015769290329943776910715000409818491139183048505741665178841714422572314974666987053717900293093895222617521002403502034455510854102795398267116419384816076545011049352592733115798419046009669559774042551564580435224865956167733769976195644193858873718390375041900721675886127730009303591410167470888528627071230140976406656449149661249568051879170888602499265834586291801914446572526308285419477653172163237293746412159275264252087258164544014558012788971832714623016148231093779805221127274925293954334223225329819903782183318255389308161830203525080302151360693729485108290696871793106390572283575373102370112698140008141967409343910988968180297986593590241371673584741033111273119032350706601054050302054516612574428392121254379046916389493558507458827013233856598167919631959078049045596309355446272236521540978221400824728595011211514037864629618773746770479494087707492606479968135465996385836529969892332797001277415121786871508971589607462766280938483914308397901826015359917995429401574825690396992305417266191794340090077528584198707734007131552842757287356530363324365350366381515930025660104322107316037093603951987182863758003388711112560235285002246501879387370916238174939069942856611372654252704604975891888149162834991577757023648307094886537665242585452233068693863607540235888459913575062681533245776727368152388108874213318544478084238430010603490787118350452057335680589269807126340635396079162255858254528856329856260756426699157651804287404484297914861094411910946017915408983847053151616089640795526848338780293091683441622602925975860410448108545911957128915106628640234222413601832952569214266969483603328729243036990431222696664696873020570701251499856918458532482670238470131873387467071967798248917164983088408773423421807460932321798654063014834359222052581999503300462284689572270407277316638996681688985084218259646620972663952980042813400637563271626027611333538559131389136140493977579824413190016415263540908630004420483589956950010383022039808074317011354527989674590169539271126796906450290267308650346979417730527388393222443130916179869678360474444663914140037002072028814409373100997493384026887168637677393094929328828991824002436349191917131132155190666583473947188409657596223491222728134992369672480324438875915390255656002406352668847728905694447262036223105366878815221999672943309706682478219541518757515924547043519637250391390263793714441759946762596504407635129046415994384214142449678904472699347483667214392954194438019432454376169794042780386456960955032693718767350242739512271864361174874009517379976340480563880508170612612124479386185482015048023612145593502293455709396434114364070928191707077351395076537922233873285930669839370382754224772934138958009183972611563079365023721167442559448423421877974179111627916924698329089297846870315697348350720419284157134843347595912461231678797914785824296918569986126783289653813667917359958659409916708221939487625947676129088210518775692619859393786151327673224012565747612426669590355653580215869189210978200736763626477014532175364101092718705083221733317307849835255371578762270400976152384288977566788056517128089791573136998525209339896765945233613245638404574036173234847420282690940872090519068785032198592526874493300825888153703504798738834853538663447019681211307315677629841209765354792523225078227548120052049129902422194762027046945622682441359915201188941651624864132792022037194248266431605411887146887158801011510110064508222644079118784705597515590754278538312942849178371937119625066313061529652317014031561662796015112213738557296198417576891859703840131424197138008493952212988667313101247826514930944942993465846189591138360480562874180421255118372602421420571769192510459959500142902503414366766824426063207968140680936526995443910657428266182766959330691885274804258573673233004917090948799615891947645148309160094961929653349109575947998310439419260609933645528587646044064054664844863700897270095224523781790559475484573384826308065266193333752365123087545396318198526552167180058792668585551261461061178353556557724462946714078446359537067932703845281939736931557549991922447367532792872127875650606579462232646031033441380780666228431570893327128989418208636598925665970347415822891385348872227439748713968527247114338891713671249544541071998327021833239053371400030015836495756531220405971177383374868069184098332114136506016278091049938652015797456919686518679625440427236821382394990242424590025791047309822204412198229693194473744263435437575854432624016831615965586023234706838181556650077131549348831595777750840247940984736742849529698883999816985112529971836707122566061365234698862813257480095948260491630159849368383037268269670809968476893326308389386069481951037808024630615294026362196771684314064687089126783146959438385182319497703158303166831409933232407942895347109960339068168373787460874471398421870296526513736230813780638876356254808094648323117463996106355986467842746812078809674439494535051602565334079612177919543933760413702816801642994325304434637489119505219406069926027516791913112744630167066639522677311860623145490823599209785013037105194204836662545942532051610844390240795437934565243016338027769384098435120636173672296562873677557937840284933361035419378356854941444128071991045869931350812286158749756237691433044817192048927456240475952271363741991334649863890835929764517945630003282416226171018631353662028004677908981356851072158204261809437426974989437895024517492867930666430322269335128818562832264155482792694189541265915034019203388744621080526666494351991314258788480304958378575143654498450748124202768541803375243286153473889415336746335777771427498048210690052945570026239894467134732542131214797468021100493028268412767989245882630236346371129139473259606682163571315758617646078239096804166723528078378942768475349006281313193455899848508907664642418318027229263083649673669545453062325012240818854630381754029247168805863480872991380981978612396633853719921503805399166729761266809043228663248854135496058287407674717831919646197618302563770751586292188032602825034756019901266564615870863055344865015839798415642707198425151635360000030251998262178346073907898017454701934415328714900603810354507926841883892335449000676925319939154345653802049318633418018223971198501409226191453305991892284547906973424443248228062018755171519247445180283638980580717637789316795999024004783849000191176584520968296443427644250019476547688497814108109842535653092744751836164000053588043434842472903224335429176739933925296064985373532854693362965885741312249435630365140520333921750185031035539833088209287012584480801707750021723247962374579988782946283470248006424888039388188786191838873748870907087575955342155318624666875909354287626714946732373177004817636591844822927603985893330581704628349657322648836474932263174883494904702488513651074454977068907187784272585777946297234670543619240186096815912927548810988223748038829515909148062627344247444656047244754716628356900624776032501141532535366078434810930070821187044240679885342660123846195608545092165838911960983438904693513122945225747510337724628378893819111710551191237005839887099612199058007136870966657054682404467284942342403174646454333488068608594544135631827853010824473692055279701508978158111259757585019429158642659217187727401541160459821622487451811501340898957815755721681735090449540019698921784938425509140016113844602008849048413054781641508230350838965516150963969779504780473377877536755958201448366925114464186722989874812078707870957535722462820949145138176717785401273267061206453250434995904389639963978619376107732052263974400976305243671375077725169415032477210637239929456620087330706271728250009391223643136242921315782614419616670068368289655304396998518426648662008968496163673361737251117229258582483205810490026400711711805651230743239148619065647399568478954527901352782757603001661596730590336948484373687131919394873498713193549686281945878386056301453801105136984011690511646838045124197546510296826787303754621091915721331018873148454427282371973413189892373793656561275109260003301701902984589299221972414224391929031294587854505785692850516108359698615125453509318172207925491718041563432666086508699346398995550197668420376959783674026218988066596948177615668685164217007161577585810857820703693653625731030405021295221706435242421625121611894553985402927417112812816889155437295147315125978585005726213254793059591239725964222903337719977887515211456787427692735316600936116321946368495455478115212353941169053403250092836358487824695373300343157132710853838072449026392684646774636974386808294423095693115083908037852302480362314096629049088630823672244418785356711595311170589213472339921241177886485569299393398905332584832328985814968661198938524737111824504133141045206419375129330422845020473796720208843185663564619203399774001728572166536005383415652591806394934400121310337526305144033182869290452974559938759048317092982916667217667776007719348184143582995070588760605490447863026425373732128287650731081409288540110578742784875173435510183616840332646366930549318155936353241902089932711126640354730420380395789329503744061090780877068655473919198902288145875647320016513777469476256401341197326694193967040568032067399696413841206035721409815766104417849311129627314928452742533116035801430367113808003431389146127504587667404048801838432976353682596997164864350743323610387259859621736814345190560384446485559076928111303817880683826739381186206323249231299615952424814954158253375975022839558461336213104496065233293812082372652946587754714095608120149366086170033045679845331111391923274616194390218768163651700246254611336714149037866628657690077688348894885080319524750537791395624782836504073387746284528896838219026863521036136840670193709570565859395087014178546219940049170376406210331243387784318858836093475279845855736453004854574972884941420960520753127324636931932271164958647153095529744805667970817348709115721634241787036646059824648888093229901635356467281464772651529089414729127827014846052301428952979413478810681465493218843926957898914794555537400108867628949274846177319452321499626000978132243502612137806630642587261583169447490339402165811612587027050139974979395012901823587093412761294013547107014966875929650125334543975137904489883607127179276691800828744515823820796296086378779528104493061860300071283007104940738345684352757695952237505365745465651232366482238813823165055742423086371270397226219991025765971029546262437655238567365550596005477651886946868751331216578998374157809242330145054254552482772604976500689155253688760152367460038692451432565172400463178279458226322626819276443478667612615693390036596092612680927996208531330817212739966349721217973705049910446683001897653245692904064969983099392110647506037805281921422847780762816985850956672639833663648000421934505421402283961529272431242396684532448825272474583545284642730547901125640747116606617647287485542462330469541001180070156872764349314747362410568655296808705744098642221809891234213172617589051795326179582821088326951218904109294625234181998264257237492000906722108889628715742060754073167811782824112464387642187935590381832436690031908170223790661561594541964549142733958402777522993339548381107334876639639900199460522402386822110661536189337396927552153682599712623761586735339449888844507046576244214984503714318107367244595473567899141075803618411452279239990949084663274963233672002123270510514082431538737182553918452128780269251006810629391793053792859126571376409408407263561201658412941641725982518201797399875740138553132118055569513562104016040908117927689079137786856310906608611645010598544653058774356971964285397477035328873907713290758423554387860856037888649619317702680108247241766956802813447396783654003705171240478043295397669022186752973914685379775758991649935205469209682867439287021275959322208719323397926677004155184738512541043793789533630718857979615118071759727964846534257920021859662579127089216436998755852094849499809816074152196072146120702298707681890842115990031937863081150322351689516847622833858392442325143030778589590961458089499771020043116785857921748389599606572460135124218135618591372436408395783672726225988266123669375486017479274895808950471245122151435013582319224681238652517741089989035898379866884204290418395138607495624286140309739151678428851840446421581471155161975069262297336573902285895861788180357038444042612488257258896426797033092451664043369178931190580534868542694273764407190362773786940609762306299057401310503100262922048197968106818385462061796357802101892560780597720735101834026879236098180707250199910165322975755522664949321995647011357740960535973069237970624101669549779463074253532130626401678792994057751461380764270352002979626056287335148740634955461706000178015443750565759899397360463750577832951484045186605018800553185896459716489786300541269901964109284901439912523867332445543340754499412321098018973320992632225809051842272271038565037363710044969936846345486214291055378648070440993196550598397911903774845528693509587803763798271358139395066056143517532882197411016223348407218584086883717514950865548439637509912511732855086809108737397616557954370671535624894409011842825387730686244352950816746884888598003131728430053337986930726057699275615191326160237905752832937342659264756647347330253612997972000676598437666666402905154957628953849461981588911922241495718608146352363675537043767961748570442475646368989532049870867198765386723313390717009637263799340534841889521041142686121432605138929084266375584789983165969825661574120639868831633867190261352626470099095917155962709973287308142740955222679137709747913614665702662729394662288566089135666665864201733175901438633978254554645041798060798899496143286255451248469945836448413665226974881623736768718658407250721681435227318799566700927629029920555585075936634262843355264915920509298365377784527735225184659080694466648738965477674742353670186015337884816308556874845538784087707374839043236428730946284598674203373993706383133623003284394295490501507908815808991896170329880534825922856847386111525662324204243415409503640441891131469610072530934442521053785909374311542208529406045756497858300002326842111395324844424126649238691502969214610637382848150351724462536614011839093956475740532219442388160944784488651535253505217098551753686871226550500718452559737823770784725682829321010764069234768586509933977974866294672461624431538432269399966996742189204039063194915743966150565430278073580413186751510282587660425447442790286107624407987581922537985525355165977198110478010722953501109716599323166297500649101557576588248087751745964605072606448852194756661467878094923489864164833153928084958160552077467436160702911008957251604061377202151335930847681627898330937683839192117634006535799267448417073456247051199947391944005322630192575761740035457744590601851236191176166211163596225351566715975632091607821930356839791532552586354371534508127364008227042895699905927418959033515513604983438437598908706898663826075350911238756051016258592874233838367428642368454110894071990012260508766966406369587135755474348751372501083816828079724885901269931389909229960008262973270552302388816338046732520351971699114829864812744277345200731414337111308503340238883947314208477316415660249049264725347340476438664275512727012011008771394363116461696787375624281516943920660648163411644467541978016478337983572844311939421448843614392319378436160245346742809957756880037860533404152802820045466996201447840320953014154867737281235923688766476913948004843066486436501326868386419946200081746878272814443334420356591158732569713699725423273214327267413115964468392618603780041784851266847451758685406110371369213301573485226048712336964689301164960613143519722745338707601943304079467240141500388997771761095828649967906313745402278039743590418714898576287646049683703225682666554927208225555482730203513655824403693888787945697619378748591367223910355795466630967749872060738421219740619450270563321785495785606967368011752602620493082223547659198284331641246566560228326704579199211736250093111999315574128448326839674567692484229662523878141674808072791075107225184381039662449681364639523310368030824473757394596939099839139018987707755563057768378516416162955874308264482335369217025673340498395710013326627130625752211577314271093022374476805318736520662179028581081612274017966091377176749119946168741397003979643561650426231878067493971914416947318729632336371432349189622718526848567949579046121763890083147396491230904478135315992939448987634379393602510868520562512024921865218152385999592228625369564954125953022056849490565809613132686386510653915826183334587885709158656106771557469121504731750305851359754562675822107039873453116219103268037667022271621320585776703265386882203143528550337447517785536706764226712255814440282388257264588772402890416713182953217970317278072249008433547166129591609692063404564688125188882342270569331152900165402892418402042644569699800494149836887137696287801362052712295163094613646100512929248570878242318019039271597241010374625342904537733318406840847429468090888618372611035138316854200643295168763160512046284174363108340526002798775052316361168980476848339205171525583098049362494500127503944455984512457747863739697188482335708542688494086642433445729926140328096100393638004282219604228235056125157841077698469888878906879218512741652238393436300454881598324316828758724650916661695039079497794366848292485815610757673971551184330789007332146076662160313726005140970954945456198385122639088175368195908086296086487308741349652673114431048479082522253303268959253831740872109196260712221735477952997078735077235084247545129757261278609669389717585948245161540962976544690432780771611480802158648579049731724001638798176957597919991441632662673131535792935444021410123798766595026931150357513175791417530158003699485713924057465712979398593812091390686206478229310333131165177698439421089124646724357420916151981698482505453364947853784382464659470421626419611219882581733563280644385856954568720561348399292121493740553447003675069312495668819579998847218884433560690072528277799524784213829316325455735501185875830449252290844989794326953292970410244513794937555402823699643201548498413920525785463445598681389662684296820142284364672619151168431117382253170296652219248559906657149458456758785783620057876324575728671075788946870719479368322420750236757351956380734612004767827780173086948084314435674277492005020090928049604186570865330414380009016685223385819904729720946380982503196143013492860546682199509999635363751831824529817628821848276703268047735426316714599824863077507587065406119912469595886733667666695849026136328804189501867187407096077751217629428699582978866658386977769881931367709985454039293669838644654011207504693027421513812967991243436231777568499217030692274700537012536307108602589987556846736056692553417789247825849332362804690431650062371304972929965168151174236207638024144678394518572894876872809234450086825009156017767136932673148278041175998150595688122859225150762244836919246070306248596235051988986286506877958964007250628829809024795468285132586099486137095439372989130240896543050425756141849397312582373691253612267636933067743809611287636039407494249032280774186211042111718229714939432826694332447335767382886629532392669748548422004246991499142021602903935097652842736844877720220062052660988122880148101962336083629396886334399906548502193663500948950405876824148752957645243855748249115146172626278502374978695484196743096081247472765663879623676014232439324379941437412641452505387063742440730259197211656054530029700389075613769030991837831138087768323352558001957339660272113336116201363808845563219125277175972057306139500172033818325519823029670042473420323758944373411050535733882199711375356011431939516758976148303394956279900811305387885188896649723847536203322300116887565646145013957545527996240082206657114359169093201132693448412888531571938573753548567013116703757426394748269226944956822831425399748051965764075392423725101585643063862016527651638694432543976635860450206321650333009621696683645530697042185400764860440593433850015677333299885889929854771991444845129418920740833707416826023671925446019417955675956730463803934508934206036707713643747167775062697364351195915393269253225260559493621007192141099532967355537426753731553784983893156169261233043431909138294547209320725871073650234524658190928597965136398348562705017054840175973285169255508225571951151020187622072250674746725938715991179348128612975307145371493459134145891055665262797653770387277818203874145366286892083837358320793243214393132829612467786080332411761022645106936604404470711520601467835649474934309886524538384303508717709040185133654042396421830601631462920126279206765890417129039466935779878487844740411600909296600439476964754151040448617563735623022225584797859553304924013303958697030521530365189884249518552892285775238447788767967142768026397139638135850366536571256700801220025928697056693947788788928890244142925724473487249788021697354057696348341786759590013134957081327112471039177362815148855777910189395356696304756080890518173322692707210759924853668479684443637838970147388447623137947869347118815799910435786600181938332918189298601111023806103880447280553523738800201207289764610656254633018389709032974570525996771207534234656654833889550679705027528469488859302047005956270104594429753189721562065818683780551706714920476610768000546171723043583737248583223074044873435400497210290578470710384934099205875993642821440697805522560764396439053462104170810153295545831926613662205243926047044521266198767555283565956294899692225487169245789499980263693000429842185042491978914563964232209031650417875355772231183019941510746901919755597570551952574266955174785616523893728413419937645918803343129573169823449368519371202328727889856076741714470464881633361927688648830432641091857305680865938014078454989136867828765566528035897213106088185347945081909045290002779926145017978117699682144241590503388852406029079844670370774295910560073526301118903723823937884114862285659875148632551414392815194298901714408009136306120019046621458318086885445262202526411830049979678676933460322137279052813540396067887110354802165518369183397979258124291659673652210800695364905706676843605012196013471171868110036793772874327870267424772240729910371445122618561293889506701226480815159750591435127109953918125584247517786227268885787094165966209532746703645938960653981117802730026992489126536502914742014480059636290720235181702235464071977431807145368869661766039744627896785262068532750943338554322628284824485244146851668141844168305313630859731316835002855171820151895415565238403048956542409671634105534040696954405598033227993810021245322175581222184646169560793266796911439068855247792761206673104778846637972390684730639090144234467098995861277176260604091532226796896766899898266499421100729092063812370671932003514263030592130526992496482823332845523337708616003802613495676102247669456076049505139920363354905737933437560744570702872951114079980306517246150840135952252755111479370894915047866970318719017301947034862203751728922136329960781826939609275303130394063622122272590106753825762078143888856488405592850328618498141270537115545659591729287669258198424104375004091383604909720055637702866948777524828849567889743176955766879131779307665461064606131863867332385068658647618177855492755763442919117613793283777189771222107579347288844435951926565997335492756406930270476373397896596855792756582309068278653507745479064430661039919495634098941842603645389608829457837526507871125344541580140992271129182760442096521233090360302891793831206114992266179208042451417831780650105713791339655385849531617579520955102804921572353396152291648489969112808791086797009575296472585079912535441908277271309158457372277920704719837420943750744382377190219729595417826171636700167387097926019009681519322930365016951791406250233466621573897063937086883164360837334589580566878506724550533353634291145193890546669530511045119662309372743712374403949108427508163758120145770110581165179650127302439942763723554091807837068576940238437963221248557220721650713673733777830547093407553851017241183106173848613438825120576104880148585497131383520508252901646279665354509994687648855335920278433016488387039115050446079644098363874356017336605609461642935447149930902587363894487644519878851617092180157859132886657916731062955422642090156664714435500742621709780704582663023764870624573677158756434416395238864037441689599065096371815153679934747114327920171540168806464141809658642026153120792283238831931176474821498667523667486049423251377774237271460336591791058495370125760444496271492717357240718961263313904005054857916596947939315655206855078663382410395169516563158862637896603055754872790617093149143018268240282114378346186897290758431671869294209804637515213280183000322060848966000592821656273855586083743463032708924591936706345166063773106194397831133789933399019946658582522742850087161260516065617036219955054125163807359259214879704297012559944650682223522072208589621353727222951744303408884385418285458994428020255954844032581662512111599043016716437613385556759683712094370260345064224550695604859649772323962248833134710394524728314935390433445195882281550547683777466498739882983967355580160554950151318038462572410427600139529267868009801329010854803511853243546165012519892144091728719414348480104983282727184401333325939871612039236822224210042804434881477631755722862579940074128014610810316268944291429353907258143818736702060546156655505037696588212683329840184199074113443664911146898348053518435497444658110774390571077357632669997541154547503115669966689698595133863228085508915035109119343577113279908423757725023247971078736543063030583311662408033573319182853125984203775851463485815875985394198779848702163071755802773835996798409881192519742996219662131498406871453843726200584550911877556174350462331815952925206400343508361508367240567685983147760792309221321797369725361215323867692776489997690334576947554160187098378575324373953095384272327763510088795276991702942961225309668241214735025580213695981291565352986601534999703049491237028949822089128309166916950753663169176237248653450264206930589652472268870826532931114352437754441592602930027463879803425036833366600482861922450796244482924464858760241014455540367668630913734153203117269593305638957025116890982021354975997626269755506265967892018311335146215648290755685091938858806834994908608660757628280728410428483080955486715970848367485345158903583054053561860013610506631021251732007140534412767011385873009041090845380075538663286530338080317160185096829447357012912813283098617047943037954529269574069920418236650539268273483641091982194216623924714672922863310836417032133332339243696688901555262138082005446930381500321332975287080965813025808600089305654046927826392367949005636287198285055607513429605034738139914098246605917124364795833129522312345270193268172484696889286315545860948300810090500376504603351495899655191524032689300189594432840739901615560777069332346280072222273372288462147656047559148656511479158090452442707109918266983332605810485319745405797179784965260775212017315641169186803745169712896489224231215718784210084722335935301608521092720535924498792161335532618989348625933580843278813508065034686948026317869853968910936083736514278152323542769904284619806407536928885038158541907612175483453654039125119962309799912685326868988310546440680999667866182630315467082005299705760324429401808109618260066124678717800846455166660289601352435775686547050409532183141671847584651423186813495728135812898667240800271974454931566175123499109352693288426226075255682366374570058800673610240499923045125539978324570336717445998489269078721054932782329063280554407985554892437545223900556550416538457760253646553615944042920442047888203296468562442616603239348494006084988776439462030954295597583055672784844502028526546499049582532124952513735077801519862897378766392913476875718821674158559834522815972068470278480027251104519974527374720742190622596817561844132622901485259368754077429350143125994216559519384496011807177969754870119494259731704385728106522275677929001995763155315731162668702532273896859859676409428202192096421043231412860384609332231381540683987071773091828859771183465962455888978650674408815473973349603874466527895366514460247729001528384075024006885919187811523611761737712507157087045162295422962580172017214408669463637805560547081941786114537126124201339006450397611606574547686448775340406479334810974207594065753465665741243122131312186472124802133002780745483370788737150168453599759151392269479579409461799395158501369919362447214509229849448678232930715976787218213805024231759700913873548854763459210582638869172588369448311022718473639451634660637984289751379162707510445093841907841133720500698125305256733552908603698073410309257139654069779957345915174906250459068692647603932615875094167951815174449441216323613487530060656678749414722242784612407114229151441897936058765189290388361410523095190558443883519754835920369233804159129677793043450191646653203386875974822086891801202862272563508575978754019229640277403170163668013490211244528484254327707715410364724801100756005247413388165893073580493056996405258038540835901693248118350820096967696253377441971390450754293093348170204620718063760724835862739154346817042187802142310830227681031929747802315475761604166984988108808308683579511799617192050535617418424814900457293388819313686836182318299588837060634078997033106566862946076689163199799647340339006292476500186541133121594343554901930426407257890729203935699535237205063158807340937793301609945723240389939387466813963589119161517837369642887289590866941417079904101246805169226482309401026622664212171451871747313461125867792146744352524832928245680418357676516078393911416089068423977344444455483370258020119010953225590597527907938331520694293659060077931022529830299884707076208388792654867783629880904301966315536591586820961131821623474551554047742645473998996850833975222141701167238123530048657030906838963131576083621382014502123006177909021041522743020689742356895528588262928940578276534280544725245731918150970316342793902629917826904700409859723819673085672196426075017194335763434311842615698841184475421954914385796172592906601336043037194657178981221154756377481970839419120450914642324225697031258490777697381192686317949318020706818799655833499508645602705990925883879406716657317640013215837967833236655777708571788420272768678889181863733276284264600848506065024291908207494052435120908290261753775809986461512937048433768892177596693526485749381744232066556017380732478387530944624748338570234555337070706794655301287819762458909388697789391668167435373805528362014195640383409084954556730529654016917219060298427781580529235372586430769949169849008097936516297883417812490310648634714405948241805782989507058766737462618490853370608540267789052554280704776126301408974843628839720106936311768860046612256433225346411055974152162972200317233930369150830267024887654881404787271871313050401671882923523324232971122213859022634014136648987223704515205953359622870144139677982029434481065553910089826386710992044543443432756306151160097445250232497907328632687041564778080236335439890190021651912062683246836234404727688756246115590686034459229239053261270289828852129658819981429103468292274578413009848845310654364253613917363442679757304212447770487820528437207849857814986827634316807174802008839906947270270668877052087990159267709270430397291454797700292835908578306782776139154427800463674720647533103741754660960003280679973665712628678897092088881658377981379345631028719075230141136377238682907073990402878902933842748286585669775023251187708403827438279180198569162481415572610203804268474867576390660830456044042571436925511289770475411521550181257084555350223322602028762522474242429219977415426426682366315592698443204118987471561216687759506717242487511574189939551510098144335448235971690675972121498669416659166739143751863268252458168256670043391220882997170258141907714801878834919330558939214761295915986803297242969065703493344681474085124307486674264068141546300641887047851721971400445719801004799945904324779488773651003089291533672315491142009907288383387863500126632296880306351919372197438398212002123123212876351966030930358245414473412871606167805497374337059867429040642921825306462360097337753354108616340823810200701809936184611208507858215782812486492209565529145922660101826224682915097869219182027378869123352912945570085697630629318988903498569797803570198465698845992148570729576358224966239082460158297726811531884460858945407342368808474259070502110222750427533617906575132431796315199388237490060675906698561128497910535482862766376108857607353626760922043834824998615242967042476110297059783786302588294267756215054693240821186077821759350462131324449866823391993278701538164386235273013308677426524026009849460845358615571562039598703563877745921940414752113840343731952628542330151658494943512453267501924931104026491585383264491562407602421474246085753938985093238325501672631791010043765203981579634262656749521545670345153564028656054933450514672689972375998719969589175629505477294076980612912900185889828202988650627906513195586884889736807736879698647927117581861766678148116630616528162314723398848764366577164459020845906042272558912532521077112734766801178031831666609084250521643954442946896018751922688463857827939173295103333675541065899998800444620191658313424553848279768423786125582773492760339492006659418101430313463785621328589032542223968012185607850927915729781554343697011982800345362543015274601935096703789464266303523563632882369162035329513721047432529537364536637635707158507658763338006444955559195098200558751284888958949474691776383975637492743402392262331607297059400037757937592798950875226170528803862272913338747341238395381465274372341177078650830241969543925540541037044270927867225874528031009725296593436519633072396576857991154539882225049216006533980912796835701255547639772535358185152843775661970005674875649600455558309514903162128312699334803520228120040590664091531642184850970083611025443234055450266906839968263587878312378744370090069673143677185827885118919228172729256998008454549440326297613496800450602274756110084542074945321994285041842838565463786933918859603821679399426100031412150266231954250181404311174939065241446616893079927882297649223702069738615200598546338450691026021559101794472750157422203226660333074403593653846424907599131054299598267417223309190876353533750230480163756748265602395780895318659993297447441135998335390718727546372199939330089375700749310642127001296111198414750733677381105986813387480646557219690182844479910989552975042765305908327880914485203659164660121363036098073861947085048813247449450133495379255494018606301996690061765948493111076854418425901454278544697857170640458710847165971069656374944782170418527817317072422402883977962639866286982559081327791715963846766331454419172063438906457954521744586836564883670973206457146642267423819480858900067194289736199314456308991685470240128493216490530946320104313451250163459283284553276311452092574482993541269608677087974014505322716982323176630022460778883386038274234265987323648435112059374925773959805302107150313819570732835636484569011556777277035589939924006333372781488540503147521026348096686183283333011481943215982304998923809068499187014154400167634619467178294731557536819476642014002096456270446276520956973382091498647555524280573055948436495100851329649633369732440984512711588200857090336167264611157408572070966296530967257795004905085704531408221445947349260116769486259140138849020045423490261055151126739281731324008186191103211658969952835880222671537058978142784245332658457624601621102517175751881611028110316730299690989284106613180098784862916526532203545320029674614479488504051700067497973311180557476323471055554256341091927738998811983385314165303243962324569601977987395575240781096221883876392702064195940517800443821736249967620513520664485203336872140712392409058595982958491286343789813533685191148891300830712318782026572076188263872539497339195168374511037128791908339954807027571587966637819067094361388370133659741073795246816050235146080519378144114642774350093930595695874529297490093118115100683608529564276523177356416275240470361731530627001851855051977960007616166083751700965424298373881220414309594425866961278496545124828469457637532747190554743830872205870054680452228234369639649367197373561453965729587911479204054422353160456584906266284449228568530231502172014151601634951458902936402306775369078022400566272063150413127862035534359390616518694523069369045296235088520124761012742542449572122712608797384611573743774650741199391236154732640696465039049082076743981031307159316354943381145678418101362369435291964795114476132898447778120602872913867056635074712922061332194584276822821762650442674370277546874429882668665860624040103395402851497241571245663206809775247238956608485074607988091930066394120289074281000387807849723968309163301489717945496383923626687102126298360329842837779389497945273778025555996756802994167451263297300204566017591796087337176161400955629184993692584625655088783664224251640204947981591112317307590959040394738569448593871188054354588504701053858706845974740317073400038874339601664949001747669144832936598531158267614261519409722571299267232703379460757419403800114105051405817635819287682538782175853469194644549610553278308149540260271753319480313728143557022160664974174863408698184505164215990677416087731397096387252743278915731625971524174290780763761758189282553397025726850813207823206993530396708039016518641920200126296493494778018587549237521659232893540328730984305278339342112246145412102831124470324771243029812679490398990716084568780890773223923609834177124682348133878600215073767663390454349849097561538221650620540280107906980262259195022562582266488724479968734036057869846994619182860287373773588512898522949544133048373823406413105535971692325255170937698778276398978690310292559809403538533446554153289003583719614538640624805879566604508987822796623887531450952275372849284025033242645544014031874361044343904713775939998148106650814277298417824569259669627844784839099843858549901028746427375227793466126855473268163313680380315855109644084024815383712071559376329099320558190638531872024947481439898378932033071806270312505354507688794106367750375402658607730286444558978985673808255146676221112975626976445920219738081566666834454924361505863256646919811075089425712045416602691022334678486250376001852378063144389120234455012799227890143586772183805228749944165462071753238727606134661888106834966649054086984226818169520922511856347611844473097744772513693415687380107506146641176474505491952015301126864215229157052608778988782918530582791290496496752262034919190429443773525329647810557943083672356609469470807516093914314157196420304007993049111374022212894566245414540371907798241802663988317989735755259372861147912952214968838630031652032984372641683872627328686724322831285049413484954888749668007331515584525839064904393578235278804551870034348522586991201190930844345317054522374534611847949682661912955105086726085142002003200826655678498642363710097757238085153984681045090103002237783560569345972376822654522165659015666981071832370644051012907286349779639419476499034807952437229507205400755977049662923834676246037154087284805602779243431683040445773338754487514691909534488824308147675533453712752964552855039200454555981455574960476623523166410836494214878242440302938598218369913250015954493629881846019935419428384893153708933254467669639034051382121945774409604034888984067761428849667330041318795197972311690335259383642972326021924906605726922207414594262450986236728548982572979451214249473939127756567118578386137007568868268386079136718700803292836095466964061623221614319219028930106569680495075598410425805417517992485042702168289516735434924975211037806129208834651467837820143945767341854772089345961571717668804311619367490545966979655105194222505395025762007717874293074919124665416347231641612641198359410902620445259773197681450530497070064600527301935082402370385393934905192043538508379930737267303519837390719528183175637614492868296639684831172381890528504000587406270667652735941674482436507175332587165878224409900018648825245404074144194089618198716640127870145186061692648424837502464019861149449989397172982259032616196694557479920248321842889557879019774763454040101630097298125857894910568134416675527225620517009645709148740305118622939215003135395385384835556271589388847155951683800667021829485507607903724624574708849414239246363176852669431422363235355380973499756916296323734787653393542704330918597202802899632045729661040561907827469405207344680797873181647290031885420439084864718669537782047308450241585597307772344051448609032132507904984152282680698637591643218943736564901048448078874627282164199458278782406443210252492923876569473845259220997596671020286953546459695707743902469892701877785518961562677918222485388172075459628024066424780975319447292130389508836816771750011495719163706395581061705745264859520749376623554987882764048821610476514752091611981519848472755734572815781204166865880343770454723863184222235492300521266807190670468812701055932196061201174272046344106180702959999448101847250851888377280722105522633626878177074928530505404181672311054036138003383498753202778295613070516676044672349366678595300033710638454819911886439574483489949623857354912698927606802983628479112903842894161111919026434638602840033715568606143871582958882570119268898339396058306363368824789274423074420477304715923729636262247426607593331215121160865349984932124337284584236864343014204636166698324112021707736075116540731001977296751870438594830145814888936694488203161454996864735880579015254731162872862055149939420042790148539957175207029760598317433399802360076579192924473800096694889453614872711584330937633110483459298171717450904588651113286634680823924561627079748561702963616567125074766066422576592512681698123004247768208851833121560373354974917754190118011303326684583148306163336051310986641785926406092788908879403211920215294754954587165035150811157931428469527332909717422436681333589997909268024954712830710009075729999128754966574508967123906202034631283209484041205839532866802897137113112665866043411811954055720958377690173158370824091506716099845091971427935791960069325145834772871629248696184548350636076924892814212954739327471942880161442682209396692719464427360599987880944685242189703434026880535604006162107647550270740707527865917625861094037061545312871509774712606527206336009141875146215974339388323697733422632976294685440121761985679673657360756420330080017963481886447865292396259021751505789916188914206722228388744590672309773104928821148535917007173360676893705325825549500857461013100931144528341666929326341623499825224194723930593373300868872876755869192498017310778586154830844447399580282625761652008502524004301422940618796788998507209368903517254584100402626087549023808615132193857075092332438942696048619422949599340431079055104859565164467808351008907009260231542421356413077913071158534036969464609913587784736352079746944844534251060344731890416328337235894520726494991781678079591738816791989720285969120111919082547807073400072926583146741193193768103653830459410080042351348739348092713235634565994821346939374518086088103998883922126756763821102136791564031937444831370794356152192096606983651566005590535470336297326502075063777312934750105803414835208820979607842222017495046569809925726553998947191495922909669588427789975078782444081452465795075212814154416294763514888631665917678125642610078044669206650689187468862125695549145561346205630930844335345769092096148769623089556813640330821966219441453709222290273992925985781372400325482418945683595684869589365153567474199696172029480884033849757109468571878273325319535563586213585642549284495774239981017878984616665906045940803800768566533217868401608365544589510938790302507912388677646442290268394456412725565978441637781351901627581078995414098431277152418724204566920391327759400392708715311659449872749625597830205397029055792852470605178334329082994135443662282338151449776147715426527591324937652767914246524628291785581021954305675998600006096719360799228783304883422378550382991925975243559650585401839198770597779517893125367978614565061022481106334384422265422581165690568319843894136504395728542421708864599372035048394889839180652955788590441718807133476447494826650331622162995057073845486802621167048498354405019911813009158255862346599637767143370919523565389370535034263658673023380144409934992940798645595903562509368381191088576317528623989713576644987161445615301671798547000222340988292158299335481564844500533440414932133562357672228801409055306320554550423929983560085721727127691952665052217584014192550924085842027346642688688396979128000121326105257237624607352881812550257513122849492512941128198362342717307199805929966274805116108093668355556160505119476177888323637652348225125904979091418494769103937525436154184508711855086984722414359935946476671271615738687875398624107462107341509662448444628197768531371973025941344596981946191219618234836903367918384947475362532512517775420959337788007959465055260570510638007650151218470011821603121398268347216274917848774624110921664877544911704855451204720112423794529453455491874780231388445101079905576044017196319251170987550197552336640918535649193066886539735882518765134388264743847094062584521069530244557637647536947715616167438794501927105873128884919023220708920563267321817019588282803473673902561149012641459736873704199408027595353372833610302196134270558587545720344213675394358915976701942639290298974708951538572407064580860802129543065685593736501916171512084093329650625393822984470095564058713079381679328972509884670397487714094867946729009207681919945808141280443032976073581196412509487524452141711829059256940912451641220861636612134752875883909951422025301174776295582394511073472599818695338791037730683432112074418009374195585622619311469576215328035356903428595001810720472028349230059053475902733644773345073020618911629194486761640324557890604931957905349074631158433762317727114574826129707954990790720852829651411692656668802212960988730549569235659970106760909437469913197747092828742104425506256909946848697016089024303267547603323465909309676586156168546305785767907854207111610592946644299940501496460175191433152884999392611394120235400429603252323670165462217024909734874845870118570267627203762499507261271342955648778144146542613722511422868252950105449825703332743402399195638530798088486684568175596559347889434472696576433116588267290046493646612377636807422689634552611780568906378707899534943677372785701899026831271941068433952816149247529369131689636206010888492042219804562511422843471882489495893583757319744133179139209924893101303342840551539158815746414661079961937209995483169723948891654960159530966707471342449830359841018176646812997169379691970992859377666319483538778402603953350598117736578378272736721777136256100806558468269013980111596339411383665339217808445437966089794891739852705703195420563177800802512346488544249132245183612151939686097298707602170641503172639412967526216189082577410742328310942445782250153056085087038414059237687742477391094430340183442662514069588160159433691055977149106932503038610836986306900672962454699843342982265874048358568923453727145450506141609668896540505505430415159136434013272025252490560846435415413110529123366559194705538746645998182767088854393746381710793593222517141477754822798765977674303466735790545857726986481075427513081880200228312443867290017468714004643767376257746656017203658407367013316112121182563671607768057048102061416877622749249029756553173947853783920353113775128770771532824846139192561192406177882443728381256316530778654015752309848649141201908353179118456235610976035852639138216989967902171976626961514671863438527125950199862210963063596438465945600118558422422276117785753401022321028072402771226257981968133667962783458799070897629491262416991283282960030605906874486360646290812470448049668852969941219018316855596479357002840424709792250716247955796478273116850688764486543415364842253594262941320617996769414673767089264311266475322095868340367929782958616015334966509935333184816253970787468841108293631752021016092350385966493000847292497049225377134859471125825114779906527644478602375807340525984124482556859336462956769774020864425136368842770464716874306836788753920252002012249929665439531759075668796537532134747186975291810908349837620998371676063309101246605847521187221525545232125068146921798547928009449773162238842148932360124042521916971102628267900669288873521562136205538230885234208736790272111300567224184519056463564396786738593946220550894011296464022586018777035211622351208728796861375527143067277898516839254379406086186236531971094694770539557020105799015807806336688160153610369082815795263107630250490209524593996801007773561103197270221165232917785857830389258138429815738125398773680488648198869637055690237724108240851784227768229910043656588765610018226491258187993090349908597494258733167126545002012374004546361380433730507190104279492060655757862096625223592219582974697961292350276640504116737037705984747871774531874482437984679574860620885896438428362698177629828817706108916695646641195148548058856291256490975853473776377556744000299337159011300786776589923723548407336141295611857196068115211609007231775962705176182123006216435390728949172019100460094923633720591523508304654137645855040290648850098629010014685641541626844744796674108186674721814180206394395221040492856296366060355232546399437685803219869733372132545316742453734509200707055729708464387673079905851901718927875374146586793411803903369304364578952842801450638553546748793228971090181156557564468757031214268557638223728880241016038289453965227875369363074707539857079788814919929273819117214287581240066253269005894282594570527886436201676955187601987156242657167385605722591151669292004816591615008210045171309099599405121648336466276568647327819370642216133620088109922702965504621993925496338543017982128647030377722271503481542404015401804712846450679160433525536978276227953881345473956038724867469213529091776626364017383936494726848213829709929738805800906047905048003320229549148264150227110125337100074700138982227387062238902365153509845537826078012627651014307949150592833491031683845142140062476495648098293282671470458448797607966870949141213122989470684900093364140021268980917491901516731973604982859664838288653189109591894107171263100966650459313496802848238934661220188912549611697130895938751924079216983567175854783800914409114802748282415621117944469118531909200143877708741112710576264407226931793598007356683319740545255847635395105685637758169358029818881904453485456220144772022764427273178390803850958932019824497995521606463148062395762467634961541719286512188495788348231097384629855870682331389551121181713973111253383958352629213085795726960426632289865898442549837526817800455192623775331049885158547823574244572497985168300299991925270288039243159549974790818241309409465315409970804652100944368162100534745969274737144591555437031622077317308369389547530755225521501254583621025118323059864548492770868573658165390813986566908945382969147794727887898365150681542729120988140032883758634586658661900702767847853312887520422190829958570105712084569473185738000321473137286591546499675109296362479998533209743042855186160311851133997318741342088261257614634311924326763695444862220494804336449284146090221821891195166796242414902136148632669444364826400725071093427812410439143668297982056275359419899220790533245632237314614653128315890388342188921031731653728828734097807222092667963671161576760709843185531369450860133476157853232178697716832753686718137757976233140062462878723533553950142661759487181033488897242638352363553306317409169466527245972454040996360799388192329144992385050881164527702171722509583344896875669695502957127564808855921580408425021331055000251905733889728778103719017988918423652264772337557987347555401015285821433447817593418877974907188969732422885925617527131879816367868401834644163448394921629908981573087378858151234554095894346778233125158275301435501868684573720827771051931200884705207809813973610277787263118703764930766207670084551658408460871038786178846626974396767862669348692799777477661399993446916717285133080222663104185736217026625448375492476509277236287713655977181510811310213578608863142791245842271883338962410961673756344373483210364116450417436516087795592622071783971681626291082196739132458687864846794398806861186031957436054017153347053404986445778408409283913646907411790559306027340339415314605091011484665243794452562345528214615179784546690153576250747532230333635875451772389439324649290032856268772059590849595414927769710168601655113222791470661826265289507985356146804927312797042613515516843911977906387007830729330541647216993620125563933160242717923525768515690173167626945630631361655897960072853237778946858155918619805463050028511263147488379756412334753385864811628105018098260345198598827593504990834924274000233372329069374552449823580558327689746248288077431099389697741541354591345972969937674564013930035418651163337679462365420322757898063484527893571687930102335435875615600451831592425279329946048353064923190188891890753778624953793244751009947240639906978831674935965366013019438979794010914189228778037586543890827488823751625987188671756255279672201215116691308699932718945352383905725668819983555230346275839897834571889972003607277516874582867130948639494815923217812346228324524391814560934373147375942160769387700642821294426686601795223462743079647069421575687975067085573806106985206435711670397055495006333340167265081263512846874693042080710962951356675049880742748756900812819801226208555484046669964705358464903504087441481330123084030396289796837020173952223885827856221004949771667538836686830142016684435176221041393977490372350530963279693553350928532797364181706971905646037688047988154612363583312979029801308884634164207827055562139046581721531986211509889774799810891758949031714698528693511008711901733211226291320242551865352320140537703811541788266868651363151833676230856986160822950866884406845339424254427863585646453488221360686456548514207178232913844871541695173903374310556123205959592568732009588500409668504761563143397359754639736038513749222801362063496231522026610627093803406055823785691011630779939650934189633045252853436299389105067196795317935619226899375941043625347085690896712452750247496316668417180919976117647630968744559075976144950251982688094197024723546242847195058234152742679472420495055218497811724926002761399747322918265016916364151710549105541553759790451224234586712286403619059223593146534974694032756224441685096522135326728141646023872884851269649051901822643411495307733794339038749270225285850639905330433224393497171363335436394501787503035453468578725125893330634816490747160693247849662965682917787404601951084396971271424008544397007157065865795519405775675334295804696668164596266684211295095187751304513892964981055132996320786931479962955917880568035428900341276410943315919590663283835425245878538831810063882976406544107467114513170067561649661697499413151480702509127251873259598227255214308822981316492466264883168793956598458039525232315163271608121796735569302709909434457190877260006522618455905525634097349882234128059267477546914134845965338075493671909748509744776178410086977723480973445497740638128178185083049797909757327370965459712112805756731846238719012876446492286500494178990105813552326205235462599438841140575246238892689923877699084395127944364170876825927488957173287254660809894087953661975901619670412125099721560593487288987748011808512023961597323140625390101531471427033944290161318572761339928633545861136845878812931925578104232845843341523917256911935218610137134808366398151471747133460385813757669042035932683791136264892464587110270221866234625366318213476026195369432504051634967403130501738083410122744351474237587530412893008841208405276351848518125913540598764043234922802992939009802018936009922834836814166630312553806058024386553549286529691507493993878726604415853347301511857655516723499184904007450237909898832050554532703148760192687655727468737571352274025359368491119262613675732653430642040523575834867588110072865022869981741098948019689674670486248562164070585251794214091767115302054506923265454298490424675377011450371999984907500990257792808418942423626007750870480454682079002782947410460229183581204305077554295758025901312640673074951927429437486713887321676681095925367639715596090748911878474012318777161035426603304178103248085878461354545104928563592087525230961460102682116517878132681821255853819912358050183751792405203475009171919820266816696948688049354525545186382270282378945876109034959964944907582834053413481380004007020422120131136463774004980185785019579139658702643014253009310958498394797671849605597608003165117701590776576378098211729841444646940049515827984591683881599395958300965575302589993766700339914224899705902531943570108568104491747842927604328177187414453644598089433075054712560872388471513644128576027447866051989598485641891584980855810177773754444925390770202127790556583236555009767032663818315306962060462774855063130579838609239999528298939955721694036645946760732775451482861025574151505293949097234049005451722609025718279957477325039987942155330532092916906942904600757331030953363658405920184355236705057716336507762386740962086043693797009953917520529988242628985875041320161615257698628037217784089193134647150211713193234959272688421618555140457256667056028805470156221273784035530268582234071807310358070417935297277748457543429228871627237936977598144948860649674636118771037877766117463647415143947638694739651422569580904002250725948107930278288218518472896280151297733619750761253859961539472566233419401128926180371591279537368189582099969986163753273497491254351020678901588206529829315051569170628431486411691879842688628517876195663898779817084285720993689981125816176851397576767326500998115218534077720387500527688294514527423422420375509290100925535502033903823509780398967955998187491485959438508397772727623808220399360295668726692844650488582090473055684059181239765291460554462785951310842309099512877770341298882705039034574145643490259930194428392875573774012110316242311175430290827734989226830185438685366061562295574200195223520569974230130904422909673934192069375693349730713266313037328770700287769325720932973832721993972080935412783992051901998479541650414338445114896695442434761472405029205155806911952080450667969462885338524195023661227233353667994393429719301238862946926043475044554888835229510678902713941400710036640119657696394467340633781885218204279624730036032840288761658659211982914906226803661926689192238643671550987350866263969235493822442179827579762415375826733493054224207227620730360622460173780932257587923017464961058763605259920490656409230730631175211070703586074731551358270153621879366306025460962729501204890319126550840579256503746606265094723538389063692329705693296738728290502352976858234201119934277877294786050029930189187391043710625121457257258857318055289017851917668549275878385382413772903803703906420939379669830448844609734900381532649532728694072028942765690102495274731794061728293334142531464863773243661241707487460338390685834968564980656973152028068784424199810368531719562930608041606847889571166244732022393001306471193919591081707366729344231512917452481771976047888916905670550508663522725710837645858020895179425188992837281857001101154027734594963089396821244424322101633295477429756725849895498995133374516416998154377339160491715455075526646462178701680625375769044247712347581352612601651097822128525359866916125146892992475550478051519308079556366735012317019425866590531856254489124911492964513834819233157850419999495882372441681125189544042242372775348195452062415512201238377133386265644604210236550808059100214866448494211777850767082402610786780595789022644310407719428252432465050646540003777285530220382159058675343194473598953725185559057780956939013726157195122132952949357410953486179740193153939213055684853388105307673179224635196754725723520150535008215143407151409668152953787163033336749329467437506941423080904305218529227771203065279482322251180282897414930877669491379064103616355673793005078835015207699524657655565255331814817136583144052584328020095703336924904002709312125876235856558172060406526711457060269345736495959371978280586480685567814717094392267624752160146336841944817636638697081866327491694599677197971126639157520103139342918913544623210552480338599913434791694421922545852350061463081451998796876522740706572777629603157131933794208694136991295801334680813911687694201824029362079500668328132284954074247996540134020231890706762046940662374491702946062736240729844800395015090977381116264794125639200980532976485906489705483820002196432443150794511621108720989983748808398485279547740262622001359091216390386491619360808578250211919420753512115615499085849995732877830654172295029875048349532341721320330423684638283929339099219166781803982451826237887324609324471042007930208317056300268398241170125025760055986036571229283818702846580848358393008973018869192162023863266680748715492411469393847776560350882592351258418030955109104879898372711196336047415010939268700573354836985940236653664333799815753282122777034373295198751196328278227106391025509962432934568751874469620612995013805510555341880167714411639699687726242956354329613089194750460032468043100785568286072021907440932029853717838452381288671562671598176553495414298983288263678403810401804629762820018880349491790177374709745047114069541720647684623274760520030613524734475470501612499151201352589713247995801819658828634215839490808679343587983757009293656988085101464095490191597002322486677835310740797578373606567706904149986556721587294376231057843603351722766314809464273183042909087714664537914391283139001671915581123471778906535537960349545012154414107411293136009622666776743239409158256070153711807468066957508120720411849896240105231810700712679551061199498539908935978158694960908865688402691774295213566614716221589394788118147687696353036789002208240468213688053603269499436127543568124360872193561172008436376611423986384153302120262423271190997542212128308031878952325923963744952903062319686158833209543560641820937737752886040674378007381797867749328485651176135631635601187949002148449190917134033627922479703754408406328435410648911235674425172330694182181095337430099869296532753998693969045289000202081580461574912369067423353954340636862593315196066940800581554084489554079212935446361117659065560300492516350586225481165176060915793484969757092232378086121907804587201978337738205299195740661815371156975267183399088894407184868812815710042205771857948958482778008975091216678999532889461887867508661315977656964112984264451307061029537373789002032037746848316251293433997772653658908969106061304970738830570441282326936938410880067078862537193987798828214674686755905970003263106649476660142946843987620604690979142404579260378695010256932911668662946830132104498051940700900415508072808625483598737919139963376556801416723691553647407109066317303773525525652094918065727522309247591008676072426194728764873868946961920408900192634238421540608236484622241104131527387474057322168237209264624922420098829801972155799105512644040654032774532850207472169118505317739147421064198920550510194204771053964186171644587941962023237189118752419151009079761651493033408905002726721195232560769875157667455272069093690898517015885773910826271789303371880282089916604884947985493814483214364440344225437315690407983434216991125169416457391209028803079345384646011388507397980734961081526841982137805538204053664133831808015607060543805774839099552196959805047494609405118045501557941607928533762817034450822836508359184154515797904019520191964174121365851444550715861881482951958756524767573287679542617908103222871919333771110445771500878870581950460756329878044460526449496170208385696055719822086856560121282068145311759047946106875007945554955171191944281702230852535241672084383666015412044692497590469912890226974494589978291220344040252559282515081484902766111583991543231646032550601228100041621334902438112220178414592785181543998481612375740399048536978172343972668476611186686799770772382788939224474002281280774477295892952622738145001838384707860299891288467680076786322038861676047769026934876132824877116163921251801132659213591513309294773682809591746815062720819481172142028598590071548216800641323148196421772978804372092709452094501480164312793629490340812128340175317955650207159127111424141568045451422941018264786022266482633872268876649545976091254731624400920603290702363008182525615988207482566619663230610880770456746431613966258610335579296328420330084370232360084509154766807858131494032315091658853784477489791754156860432808900056152518051401463841223354124610656307684936369129594442986009683044701164666017622019421804752612308500328678500433099247385060867114054820373386254068212288710980135491338551929569975947568860161925757690263923530080986191857286838260673877459571208293025774134146708226419122501353405289445516409160079816462998019754398519748032428529550492846340085521856581350230797386803038091989902599349635795852228126876049940680790139749525504309192126961573281818063128180383475488968023964782966709736855128554265230758187095109832708345508610547412008844044391966863794739156415814237268966862106753811022397793565756360014977944009231994193515836426508381865215946162251784504217375631969254009298467057306145960758724231335700506795215668727523992810022377678161789188674218864918182436640920971552083715042162646653555332874688339989059520984543934052220286172343310279728727439103932360063303348684042562327756960259634470336379361560560839586160068706101016278620374671233333439400064777439243332231435035114123871851543026684531699368594349655775820448144043069057594087355495221571000375673148388547639881720236656304034740691348129333665259835010654736211121819821419123827881048776450667796417737256752231595999955715519686501010541239027710321111966766203908430912466498958679178032940513004915114409558261031060701843850898988241527295141767017554034470763237753772593845382363987690370336375787624205993097651268075006663677460124827864050337341651861526759503815470523342922666413922788056031646121330207504153538941096225745247524885520866123153967739703928755267895909152558481316318919346753857710787387167842514883506261202896515987433095979799888792702904726439632128361550361817097360948800965153910375168919837762941103144947469854415787895090816845616959483456248012787346212677305173144743760437955281617160912878044890019731668236324617917343413728030809555848249155216685404354735286772834214721315552825789517356434065929606300706844640865691584343631160858668778729962814036994438832555783682123911826176189651741612917378099010993660405423023949156489014980734124837784160261497725996111092630923409790473970371985557899791346927551457449867211822124081035113645002278051545741255519589018906693350435157714763673895513555440405864420377573022939042040661914277695956172179657510600979272807968585074457538723935977574615118324914859994833801222991298094508083535374535831318626275280154962358764238676388076006909594940919304403998574537721424487688932042827688093907781742887382353940926023425143634218956779046428356291287970587901263052059594811097889393050260110327350749478355827227970051652124590449512839950164250079929567696589333332780178851976702199352019399111008583053709303836995502995424631167322550686558401250321029656179857317821950348122403863700214879132156225265466137092659229299998811512134695542634651691981300342827779828281588827326339164140884164381322161186818061417856171954884143875873864558268378529302284322508990999686383363604284737341915925828891213631416201225314601868759403550514494647404789909325135645934883989444295887595425510590459500978526183612960519669683895358335633148606867218103928031155525672076616763847816761552823688960700827315725826575678504615276995691167013760651519916240780916186607585284690472353498725764699210830018778256472254036794060112260546654366821316445264968208479764709601727548643980916847522183276037797533924510227386322621484599967589333707554336378568089872365092571622194630367748127705633366644272961899622862987558703900768548019875066202967653256311808183204792543309438844856810073942893106793132943296210555202021543855815989811126545307512281261206538930269392794391070332606141912511970669196580729042259939517683740310474479107150879200101619064880290233148391767144931086736328321886426815578848669299595431564689649835855934961795822712394824334402857862457933319832880872035552790653506000663939114895354398483622172740227497396387449912241013654001805083413025901971226288972622908969675514483250777304362720014773489707981846308883225075170866872266259714321523790300178329055071608998985258932605530403340438982005190764515523532332894726709068675692876695633617628993073888423306067917738391334030116768991739326496346621720609078626547539967254919739624221356863306378015015771553598471193991979713635809823005409256745815877503589311886414757755183079120984789525588356232579275661343815569209026437424982370367969182468142294763709673710943092018395474314345123932711977154382800555391276740317912314603054109966868131553446389896871026016741548649729248589709869173747935750341589619104843999170425256787684848674657731390457833630191232034664721630555454685602027437559567267549071929452763656474373227396647164926807347608477006216116538216679571495231592572582691605727433987413401487881529469014324409143898928103932401500650107314900738176571341903712844496125076587885302287231012447966706083905224923789849114004763942434530573927623526834055074446970380262727689990282382996304844351243450605183399622865526013853763441650660585476738723059813389928622934086050769691974158079111702120545706408224949068248325764642042301708793845226831833951810461131697196114673184634158156708301854585501234384205516734508544021032911417432393099320252030754810131027031061933754867366738318664268580710007784113662351555234028267404502210195836955749272829786452569820801096553393108804507331147917859156059794453311958062290325281408032288067351600587202861082942138147632697826338634292589035092054312442202976356088873857622589926010470374891027478201580877444726255269739924744487142557736363574091968676015294715674227279665193817237713356269698279216833977301522415345155691676278641410074392810246722361713845081105365665743491136696610337796947689293164624834388624520230170208081079143888474396652480798415952790207102291414529389815292511113426542557610540220296976183822559105115298154524724889207903779701198224475818996886598234353022030198679803810452495366374333291419964102527940238230376195411590598607049161395583394878293726600738004482341447172114516542213319768661756582174958683097854246784283105171214743621189341271371361046809061093721272282033898618093393736240245413447201521582561298541737104350912595906684551034966012868127361714641332008311436145819804791287553152603050525269312093043528204906990529614294704225903602217241683126567880849924523630748623591688684041171309955690071097486146017497998389592358503730940171103436797264816517408538730087819993405208238046005020656290538660696066652233484186940021834557394263900379691597190586056402150288368010060396438329149354057852188726192005445327069148821748818501842377248293621625296360588165119334206877156378305521584466255075671415950638407197330861417277689152544605281714447980255183462787102087706711229779881642251568979694853767174579471614533295669558171068350809776659337097552870884979472942863810297920965523585020863705583775233627921287833652054086962096253082687184740870645319209191507847787330840980182874607628046619227140418320316803017723506034176638014639174913694240548005153215659601339841980614623637117320749714810386418772952567844612199499665803150975311567804118083493325025281495089382491239628234975136450770849104803554078639362408368428307130340726975558794159595411549819109873240507309207236311471540371852364915934862580255085422852741690713593260927460411341796129933304404697272912216121305864401763957323506999423233805032745959590191028923009815031004700690655504738254152059890583954063553845852913310073457412918380464256194727216044109363177659622262349613444644565489985868539446975591295639238815534654977750389899334101829318341313609024146487659212718247204956112615164584220316029293204499738136264091081729648696065517432773288427724576155872375298631685905772329917084871619211291993565530288622064609135334050789298656275449855858655939102524613554989269402623752809703100490492264948514193768659558747273931296012597815332716988932982530231595240627138632286656555346509278380705308709892049704222869380592391587619732480749024814439232594976301119217703622534635951258358971723746800901463879807190973976844319829348735914317358917187771273398684590134655743018471220242506173782230214694605779270500831729008474534813967061654072258536131395105177209240987895986920918488818529861076331895906993553666950570532278302354318132528418743490086797625611268057118053401411151703733494192088127446078051413592568290523195992283389699309827903280479195180982048463225418648482313649312334167469985393533702963050538998792568760193269472341398976431622093592482382454760713684103353628383973894424913452414351353875036451474733767034101535312822241192530576932958388462757962672831258938625228784457041118445941903432692966416844773486046457001713902548922540951235496327665844505415080582482928163288109749094891670906926528036813258406711430763614324412620156045707095322067903897483218426178508384409875153783604697965234363380425424920422126277676527438983936708945995532318284014304149006649795928011095036162301551150123113801103217963961988429074976631861149000694443647417605231734919152856030341964146260731739771662866353288840823291084647378824733780249015604923549279702350239570115792214655526411035463269456183344586509761403700816929227081854906746404101786954307870898297725490928953306857391173751309569448076444347497532022043815992042955141066204062724654077231544467922905064779314067878237873333475249602236874258682076729814433826580959127780280036668025944238023324898103615014402958678560195934201572854061106127527002177216730741023857414663020318908272278264104096853179081182937405912349161810012430123346905401871907368958732283353166713409060252611125767078990536875423850665856012466635331840313162379075381261341092080771536432777773001856892074617749938744918023399760211421938346137821544973719423608458322959217767191524942506470222816072106587984573947395807708301902106562090141131947776569704787839944952891653157089741826740721773437519513924722425578974224670564604719898521243200078757651088724529635864792515103480239270443684401540506281504581833160923293070001040761595151507112678142638156677606928775002785716761811935043265831197013019439725783651440764876481445930088612647576806483005765724827696742221684683728268110528809356705044690797733085455732006245768794710085174691464089048186343476452156086212518991045501087202569377234912960143097207945184549381023839182207419063436815037086407588090951377787120076021848049291170792712448876797844907838924722943112630359662064983077846418237366230133648696511655186980364086550512183197659053710437716866152467223802858535362737259722966854777196355452393137392293649140956892619975784748352667273417960156959536650103071298398672419582342143400852645756373589483063271494097130456908469988246134300133437452083410497891286423270594988906068032259401944828955692972858261120947790634618369268598307533021064602912276684727670888668220020806343835708338804767549022017168115997884302954756832999919311140401309390680381970270996874298540524055112035410579040203734673941612893872297597952802348491704029978779324943960712025916987040506418846108278341777582783932058738613923817476067657470538272844097285687832198771692114900487061443484979787311770486997901238971162525425926247595217812787678389640196349296861219145033809321231753365067332918866613336220117406139641354853399963995127811124440576272723048380758218495073078159853268640636229898648076058452123096303954947678964669905539374358074825519365501689870441067591342076803312123453956938396469972925668205461820902770508755358513201997653015357395478489432976948744494222115306460058287079001104699804934707608630220605972356986074308109228964139200455387563927019820242870261116982971486447584921508525796605375251498508205142848695837377755679817616329196207268723790119259539459856651466023346373504168478532822040444302574250828811965528918762715743946274619614726594509576803916058062134208915315269838630758217906438061571978180608216633428675066307730322831389168494056987628968073117137750911371944135313480037948603038882973359663035215956631329158161396625215416369205366862981222418057344079593956402935943926925823783253968654277404055098255580769495391169461490578897972724548359963536678344181826463413438436375166756918724137503179466671237087001880605512624224938736892711242168579279385629775756895535373588216779872306748157433319962592946875736063877025644609336706819173981151331185408316750759875986803393978621189701184716636216493311970737423390532150805009296462526436313686873928382613416097326139301462405106677657493658783549681963087200378328460855731036576593299087449171265844988406861633692300943035944539746860901058580241382630287647220273957855211944984501056887593456923006190443218791752175225212646952068083222154715923160987565158361086278942674501574428295890141930952211620060018700040352745745364574185756571298808078960667055476577412498100779825502160309803118305274715710231713266573680822178696453509961883684764562492271632679198994842335296834896225970767992768571564919010878429548552379276784617300190222888178338869186713900759984878405556961182879262596920709397688461075182335996504401260495497279883511111931747726214529051439254060160291434445917771895983674542404205127477389487700123269079894268588538872216092736282573563708697766925582349070147539663289067323234463693455148012141311500718747576033339290267894229226063106120823513587618683626039373554459959293542019766711350665114762757830843041389156999928203228580931531669798497166853713786685225945899402439716139817341551576075224095001787427107562936457037931755956827661143161206252129258409000284435767125921384473177924635473576253630393041589934335102990181630587022371978559535678248517024336233405293327777268727190177497031268935163180779884585692873482376087590875662507370595602852159763871904274604402290820614138031742429391193293173152971803357430795583220016171144414571438634744786525883515203204957913374933231034074898488677422254903443660973231274489316123640485400822892994065767215505413282489646779292427983061225190346319125170824509597995716869598788428598462727060287159520530717713456667977918185540799169697176976730811992524317742271986388284023416919955652446657631845080947847976470625936316699297329155095464279262847706599311228700658705122601282546567073114414980093431404980109131720816479981225654976838287161332343783083068402498948595928820892698902096282348307305376265983815496295149351152974380263328745773591674787215526734294494903848616459221227028611590015033309314648297721216792336697152286869077874606486461671439280031993535856654847490915514885146048215096685365849973302523537858160420511871611421074191221752741684540348942251354383464744108929854185231186848704009649268355325457221498935060219612320507421597139016869386566697383759385321721357223104391248811897980777138044227159596545028636291588020151399886889570423805291314437910105708080544810140815936727035806271294837652258876182611053919097748151109994409055591357738776433215217014741420065616026580482418506655712033045924921980001246726147864514369330408929625254182719924986783377320728991732385598181466824275903759003339891194050642106526967088358210903193663794526598879329535282283924450776719760230072598779482323352889638983234213051235919833694350083002220103680796116146562538090534927916878893558289018687874720736580501850623266930146701584390489618185932184933513376019200965421209036985619231153044941954536880974562812317456106765512143724099631064743250933962175642800421234504693799821882444368193447593191991899369006393131048929301968513582128450344341768682116507288472601486480550019457316010319662657423695469727566632827533293412256604987727874921822238716063688929584505679032442771308807034258438527418518464585558897805581556041347627356865542771617983296466163182288747552220765399605769471101035473859847141699304768522210208031180878310626032366825374230810022747217254268255307667685980496912576647003955239742401898601084162141579883804301950622357015039549346809310797021365184574106919640065102195042814527285727349654143742631610985491747046487998101676916063785823890124864642470349600428731820305362329206590681548764030530053727459390696359399855923417390137388814252501216906003016340927574812000688202586655992434492537421968821916797297822736544251241607352130169890092170734223139730609145163531134186892005359281027491069547872002143859175480024715616390644036764836084988466722601069786156568744025433323397277100241914146748102363859339047428627889679470286441338068231672181730896296570245770919869493721119446585232047021144165760025770332502815793312724431047375062705496206007600952046416417375803627999432917807266965488568915275561121397505001274014920626403910810790517812031713649672823621898306643096369879720883552271235859756486157634380710611125804882736842503840141671399459719342010864081034167705710391608182172606383035104330828399300234607373777647201389355777932861925804998508924917878584745170618744783902279345369774362559298100058744740672632115624383967077465499802441903337899204441456729018580823895506154193679842837493561495836446874147705541054510458087239021952943003852958041328664510175365951214459144046469927491397451439402443122985595921371445307967697338264779632688177908199054284940382084460672616571344033032283094794610341388906290310816581853638040181122670874151480108569254273722788612152294036658207902802158549089843654948122351149793729234535565910754668270401138309127651825801322845795850902090582371320060549352102424017860831537597637018563146044309684320817980031546299471345784317743623417130176835367761689204166413537991387532432732720315833495300678224310661642419452440285572292704961031221096000574350798870917199487867413291256693723778847520577160404689278692626078531394360377052511530598544861639196040937494234577285140680016885790254814245857570136549174645862249579184162462929093519982533296700440231766946048348673678752711775351072143070501711561835171345328517892334899101593815871459543171782963929602822088400286893990339896108399758458195602061610046322894849710292130460008845181686278812512832577397252258974207604965504326785639542043297827351089379260313635797780211863467321407312382693578425338912120045777929873453966196402932320183569522215099484402926034560513020702627764197217194463271741936698253247351279824701491280252773590456530267041590667068881380964951180481599455773484055001990728389546451903597644574133925752078292866527792053572327514792352105179909612206389910573365199855530916502840352860775431267039991603961208621179178908702365732757195096283559505671020163386299914710278890938269855164596075813868101598814713586513721882762061903641570819895638661627420500569089396747555242715327482481142987316494764113130893445592236724967522980538914008275899145297160885290224851812108330452165703889475738969848373945593423384772391088168243313890659112372882883973665628088306247601458897497399148931743689634838208936929440757779910793363078183388409115473185959326792665272501704446699188749010554544220848433801699225266473572725802165616979227600999635811205040810390061783734416770265576640345539914360810764377220997405941574626020573053722825697696767464954144870868771926178254510055031376994355300010533969048856588792382394687111626175713728417765754501426817616118336891372235210958985006497174003484163828270194373160451850465683094872368250451769290709311491151582298427238052312275477327008047363093461875852087782322605374625601817762596638138020803885320795150510194331570375451694710170040578996070360120469399230651579868086370862300114699952381818056070604906289023995307941985684541347787075708696167666737489896514956805027990923720412863554286401271866032176115567315349614747901608982652065792403493026897351787045331874622131369410702126400336899326588689823000977404776999309813068697814019513510741906029819729738885520093912747628703144776495874777488491012153697360581827816924751503666266871327147824416432116386198186065531940955779022441836814466785986688906300681237123366536026220415838677579990204917834504480718061174714347363872919043463388955861129367415263315956640839207687106781043671944610120534206207196523138492039186676339646406801755548259318351170741866521965460979656825993738782701920618063046088494593904947959711362730890880628397160665853821757461995364932312253846950299132912978529569584458150933071356799488634611245137277114978700758826765490842731854568701034613127644047526624057773703031554144814117226635912118881008591226810345853289188227122170763498756214191705486770729198215863664640226714789846873742234820394244909055577014244655801955816183702491477204179350818567669444101168912046668236241186902051922887845015310759389966829937834402470053128121625420703696566583442245476604320463342812073623083598740083482755907411240079940022108099789164331097775409495012601874294718928942844685396621650011372103699981662746947658793629606518733536845692578087096173234452828577680053371742316984985473103772362821643180767052552066901315382927878775805811288973223463820214085916522559431783406500408051252491866810938290607618040361147742076959500334756983973173812868551114258499617598233815786134043604699709867588829316957751991399112473744012253231070781957337945035140350621832899642618250325146617576959953730630290906109513523437442045101004692214056445234955262733399280495716798479079862481869786700685453461078546145075571543055924782312197651652641607204770756787762656529579489865333135022068576838841892196062602972135807191818655515133889809010657947158521670088100044156552093706237565537679378798086053075213468222481652198628439122031989566403692106996770194313185144942221427910366375168675320017381183910381374839304606938906267575496010055685526442092060489026254095859319842507890042952427780787009382716060756508863642765149850769889255834078836179897534624353831223732914825045401755141974719716616990770605806354935184630982134801521936446692716407598315711085880240912423474222371536732247557143654849953720168238246589711246286687523802190375278019620958582931098067534592567604121465975334685946932037310618272534391635011229552804168430598033320359169546225865430837420050427197734091909537576250760264099870767177531785584369934034566024286204528268526153618454050898511198264204575123787555488273110472202843521558475396501989222645038076685285671271565117502779470671076863677419503818743458476742923977186431216629627250588027895424984254418191203552988825213552975446597509191349912332318374028397459717194927714967384741013110761937280833708304183741059192459060745289778124171732125072736338221605733525681708953530665624287207179115347505686504823042297108459236296662164887130651502461623126999020251765364807934294676324049068306153704239403066272646945353135136612622465282910126898216094083210145710636865556908521718871229130303152233975147198844987838438442003626245792627124756107539699852018003749587423773519254641714690179437589940518844109452721835279283871269596918324622335778097527608911480550341903877524431548931076446651212000182240797782636167578845619075838300554650223338127027416454763552828778577900509947290633833039435934084860933921427736849736716838033625605286396590814701024292346692711670386454900090022018671568630062600236265444611830404512954987260728269155561844324471008019393381081185601847518849532386587341946172546551671975877822793655174759142162463964607102959983153339693714407728060962959236944072765646412252303894128159922897603338517131604818216244636146303005818662619233639041489357407521121409844840335675918633344699629794787184743478547836213522838522784786721261984147701530271269337250330529983937444627514600097443818606421193488262635251625674405471973716912361822827579235792639317032573288929203674797917071609327339046799947483936701432094154955398053248375036794418116599410502280621943983499221418333878779801697993166475555610030740814973461719830625729779546328547540805750989622097500203983353122605455283617326102257551881781549976519112364854383400022688484363426211830252047330723560538134792044241272867845466583662898173913016737711676108766896196641613204875349957044000643075691523007615019609250094906573851718697338636733709365652642473814994227274210633519468155258576159084422055111996359960943486335602340959230754743587361099684994869422907717833116337190253097599546307028320675950956053364630572356458458744951833259969942675744847054777435340941724178972330333712751775758360660401069073344721717826286403868473386970746742453533535907503194401971720225766633437542756054799880604651583588576904226251736938519330626006120377785463713054235332396673410873584254578490195285522276288966158755662896249342605727865539749648935105703337348357379917537424134041320599495317779897711679770825078801256204226523104562910875442721585811905411041526697683619647678446322455710718822097472850825215798043742760113107863047374672528863407475956569153339504822481369150057698387460146476003261689182381923928890691813668769082460627273347856829044286847738938152772298478105261491542844272884479495961464977775323472035408161986329677265658283436158417901852374832260133329708628078671347907033274142439832398842135915030377055467057384030397104780323453510038452449482363780155355415841472936719443702188830227322136277222383323592584271642504297149603107174738617841337053547542342139823201080701611923446210077518372532760397101594706910800873729259582597997549488876296266669909165371011625095065769881091530438089098319993264800565544260118358430668884574868045383464219310733836471496012716726961610603905743634874181188558925118200207258118006573989585955117062144279915408487697055643362263688265023807914224795636362985004292252333187280752057128668973619492354309578577153659908810582357351015888756775946259167394418655339822811258455502428420893958844385795509978755157244606362160644961332834961606814043176149776372446564805934788139151302158669482588684510524040384543304897765959878267516914392632565420591576264192731532894872741550530137458562842084721521624148242726856915730497876527524030570666407474929365092824248237200887450034729086524321589483298539340253997565401838580306430809959493225765001791801616433250132724353863080290193347065657061740699342781634350573091238609625062100726467564749895478945629591225113189042841155511921225946537217441712573864329711312937600266029063744048335862346831363826480823132741308342947612912437979683927035846611362276235707909115924572129855175748958569654555748917510391381178425382698085171985875239750304500936022967734636593085696878724597789574194418424390106684967358789540692445801171512775853367417712507120743828078764840202270074417634912455093020600295246993881723606407632444866485434680321862406184996501643159774015265103858603450556831701355392495219435510308338441489580939589800375634460220945199345993550237546374533841669814837878382232357566898217277278951785350909197903005856096801664603532692217437332665983845863733755443217156885478541585476863571384339987776870585062673775391117557004372222838392723464525856213077615213024847970946775904006908610064930968344949292103909172126394040604956903179463415930584093090811773177565571983000346126967784756120452524163595658025767520319601508928121419462167808093068824876900258330956571461273929280208544896106406836059800232088638976950103510853201470769483581195262158775667404364796309833366769988462332856735025133576191666763477074887568165530716978320182122187201381302484627878428761666266615009745943711149092516109070605894466653746032129925721986934759058082414929568881766971038540434161006843712036697617765021281567061699562401349660368727178128234204106613780990852254201087721549766046438947362792196340844770718207743997155078679889431257645858313171591441762034541002663357822914170021310854708351586500000541147816288614467326092939825228783444192440604689085672391522220856846933836693538183077640601672845304817077668828903256940678560227164119261860799599323643533955476029048075464403037508232778177973315487465503576292548254354786214680229292780454112764747164196362274240666275529487319526832303859404755010876613067744302910214760572530319390157752234215320516816749437891816262646648825255948636932630245878095859557720764001651413958780551695184839406619526694657334558215559571767359484724289056184186933059812993371881612133640293088432251400703969190999828711955009979968577646744594369300133330006615754316416835630566212035168187909272545376870403033660941843253273135505562666482578604559478437366594488763879158294782559344357155336296276132023821529616659919901630700119774625859197279566754028103928453421847536714982136099102092570651644162402669686882111074504155584615864827723262715316955341124836687256862831063315867779414957528507089228159138565792926544711836762738137309555827728765722931894764126295058323635886433891703366991168546256978485738679282780456641254615153741147486182625320750344574380695662148086232274167776076838205749953703203911230012625851950493176806909675024036349807719641644489265097933160962647855813310075938306618113168283286788901718574365255786294654501793458451066785365939762337209444453013575895256129553450053120216983610306638448983455029420287070683359827828901796592257270745497740383100493247245736046669587120933291812454298431242233839020153076041183658550525918799689058726188826193198774340352671640248712660244062282202296600263986304030806330252197485638295969155179159309639635928456751075760199330828466819170974150871044105321578799213803429073344938908272195380094471664620412057014173050959610328738047787802012191186397558253551008150698476147891068976848762341500019102705359419470010479413365072786974635547563920043902905653221219314838382401184240251056169471627619998736101141372849519435121951194988004868955524915646656737934605292276126498593403693593207839346747103038260481733807032177810848724198797389714891678799136802574580843274256545515030006629138000602573127823691683601670913671804759211717482212866891413883793617271860172428563115127357578780513916123178316312024848282780108278198116583484297832616721306615676135632979449191240101197593783720896933590891919887354967648690483383723955643331798200779910761387471796856038636435046678286825193711390902151654250419090353388723934574017218680421543315772333726104002716297717710718068202086267726491031316098432056193236675122983589488160557104032275178964963752823422975778311521676015844188579148952691305601496386239237684727591482340009144844851059684841952754941565939509830835345698456147682116459349300146291923646190049970286577014990278170868470527223778903364565375964851116080018280190090293668695486215721763743035606919973475962651216377052165348305347634189143337725020612608137118194811390664215975459599452822678579020579416784159508142370823194575264049314860456548817629680058699292986397585359508069135573067144071624200403743099695745533906882557348976642717840911720099268857743578427556260632375763694527600092574706568686649406953924711320917154630538643352180390070791092349007954825965897570464418918524208569829608539301701507455514694658228956092951892434266563613182462696955658760582841784401087188195090287231017798815415087532585717237114000162907678718220987924661680004859701603045519175237953698445578570786788598836982257607320734458136866103670447482770239373103754037683861224521994426546299210411463480839274455490809521569741950107266223902272149461442480552998328127273623501631739981022208153213475576409961969973141261629275259363567650834379043632753629215725978217885944778209393256095228782834797046062770429048969102146189773642718885328405948897290325395421893097335755388868030272649961918342261122998688469946732729667584352508154856667066133516267943675729079368183600501293064576662662344700614340120607081560564881789831109434985082729275224675746996719594003126112095839455446951995684350743022519699534817587322911165528746492309918458348779215274835249046731668179151841032121304391978327050138083488446654501095363170932021201805230522089689708131771437757497967460717587810429127708502471192153656854902026160448008327249479173073711394225806712758455668663733264556330007405479661503430227050132014145410566127577397139025177912443677436401763303033781853468118112134320213135148109214690831246511559327357515172262752207609705795538797380375546043700156952536876640976883047583169179010051525042429962776907428220206551236855260849015740219732937647162898728441566879257062734967705875315105222172402984629153509094545832415762722464174828008695825742370159198732720146859878949713834609537576403651744187737122149750263827762997448822347098053639760223216976436044176774623100001804532485062014466526631563898014625538254342991089483470472064983155965743369841519852147471382041620528703298668517993787990691945072258576826448084307458554369577142128057677039950954655787187372455706175426031586412430583343273241381903576907947905865789541981253539508114171264656522756018046685133042461529883112821709642534022609351364228191516699352521500271470030086057229759193543225818952977972511123415452835747019760946781900039970314029471915287550433195675423691116426609042895239896994958239483099628314297130197025474516208845168622330801559505734120408945778843305289711400795819569599552729197946152192093084934874068362946563373061203531565837119683557040873149554050987122552095071478015440423129543442540801692645343908969221174515101081334743794572964908791466072636263891784760652670516400758597874824430164435243868167882971649911534305797458313228091466750508025102800426389516474618499563154968533920763609709569402253302723368727335742784276587523581220793224848146191008418785845018221797971630829346164968562666536124050090651895835386144696950987564722749938381186648172935763278079624576876887862518536765370188954319551683321749018435343742384554008980461492353198739145956032243769384531905819722108356513394874565746408751326652433471063797734898193185185257163968376304140030734789035478636889290835636395466643698082061294082544471669355397035878205657456650281242618250299858573750070835276392588436691323085676131093732021717188977842099653233926423344996302954660755031108087995527405765235131717949411200347489516015761744459728754876432614180897657804921761876634290725584802133299622298648698411899846370157958707894641292072682705137949815869864238573699589740908843413024774957542154647328207386391303009917424929715310040709734478085217301603881557861726625958111082636603788474998760378623732808287945541024191921776454434445725046151696290245775415285608545348864408623095287559117228533991955296201203204302973896829938344497169052292466261097969682372585710898033350700269802268375708849580061385324885485569482624951506000364704420921512918654773479993880143359506302313398129747400336256638247712531535378564803764645305884173379643596368755562689515419512160519139148913951727400024781695734019978006797549450523828992136115034432625874241820659893718301579716217558529997074756143912955687248800320786950570468911770480189786258892353878850510890166687734159241961328394663988678333756650147870480943416917326258435039930116369636406638142809901447852288889657591893017358525504860405575780406982994704780492817516005426665878539268738397742156600101327820520240571882097135859488815301469892365481370221515585297958114439204910698211680524597611412746141120488098131071955918515368357366813367466767333996737398699965319498981872476547229274116902190556256995245449100519276137299981579811248497634077714852317191804885494821615668097235175494982615431199105947300879349645898775912301339502794237732353081838877102882475632917740857418866051511452982205686107946586981728757865745887847405259277017313752551495741805450170283865388993804865280805450861770717760068707718635806293551091342705713618158746412507240337967789750884888526157165609469433392162326347653226976740978582543761374466705668963083864610319201215310935393336263812007153328545588108704778993876952230467247141828571362737267140193602190329855366128791978425250854830417561536864649732945440278036276490338515176068750754336007009279492987851116365021640968056422973885332222636096351404197550685086125247679925758610933611922040950825773831964513253514274886666604276170317398897181498692920648133872782967565531056247373536392679412180493480801947201097870773641581320997562461773541057328282521255254090735810436347911972690240632403202166447892298856272175771821949284622971068445480571603861894675467802005149004641185285399293976856061503388296736295147542179449118839441810430537215105068378390670195121914140301511102380186409366068583544114006138137999204114131061714499934209797875818748466607490127252759479762697129182151366364583180303579943329904910628251979347202225769129948516422296766903513741605000490612229864724613489443949886456467940030831081534309867831836669853879784350273831145278078294205365116428060479831355717096251484772007290398821457394935614256997962555500193914722254245054379630259287407803979746762055717490608933718953076410188058101430294741461819262014154015436937554094040912773868156810827870018650395132233689212737179571086197980370035771963826954317783741359146996585195842366085340664506774880402838608116227183912993830970747631132181872413847718241098080860713490778204500517632897029585169498839796345480720895896701971770183043960595939658715815092249891276056921250339908518291339696277902094297211891937122029034186060502834571306641118975330012415006604325904024445012576204671249564234855397822789330497367939234360461847268748845263812935011771938907137915943713145329647092812081007181554399394923004162960098323590871560718814281035269334520344730983179414132814933724206855460694545669258617151277133100445454948527782504557575445563083167901731202765154832513080141658615043103262262348257798690305541679152132844752328961380903553960036918812708909598630356247902589796585894209062179223442550369750251802172809026933981384757455238909251440883440599683055171589274691783598661261941119640622440084034625908654150451124453217673400160037276106539702615089297734881015806397093252717940648205071903888792714344908266878674500437883930030200231232431580911263985946379671679365855899197329742219142857605824083436968065436883632082006328301125888132914298911849212291443425404483650923393017670123379972719014426127446198342363506072756231267702478469169899049993084593545776499098548256080301093546868816112706172556304354024274564708908547421816469996962553779203211696368183492952989354877414330633056972501247670608944833259234340713241481316956160126416484476202445079382794735487630605602941808765325680961132384052614509995993049909017556023486633793773317259594841623234314781441002768219001820903153733592792471777121452122757403607103420971145008197550934721908527800091171118907651185871513238045376891773009402878802473512454795706160207735558294911071254044748848392809790251466062753669205981355539722781252376826336709273381619422396018112389334101379358593429283708488492625988028043853786445929637483142330537525192011715274242691476795015029637387905364350923869977623215404708240836114513824984591263530842138750789962318027013822153788529846777428069482280860890643126501312846492419605770919991835726125841493525778616253895651148248887491593479162966807265172145552469948445059457012532170046897506587614982161641295085785967748327806664998631344214005741692032014833178382246140576349850286417481555297113559675080087235863983028950701597874714708545066317638283973683112169000805415656639392004341356272639988326947871288932527497668039540272502407868255448083922253133554781613052346788105381464908881516835098615024533990858502310328835955487595881490525536686377831571911494568097927665467957134312008469059114368147250719708815678651152211317990738982713507677989463760913489371547844845459184267702341933011151889847954947248997534490586887211189629517623027589506430338985013674393810437152370017287929005270324125611644679865027532970509736621132166314915320968651014566939186375128535369654952915456626497356705814508109669646572971438626454673596044053126018453513432403776959434042356942960947505660101840573796059241143189893562658798670301034965895441095546040380791156918840823135208830675935889327007851936545662416951218511030677311333281087865463005864526027196192802729860979701741113653709430666236835376860328799757280495457913086296944591611053320771425694326539707779377329026174198212704810202107274524820249451220465331130298077851874153317006382584650778085447312939327266171003355476980167269739806370193956211825672300445808601526908885386071696703498020816833570153730818185208869175527648606008511658415659831693425948904960476385068314175505161388518312221418348445498242151746920385227996492822347588696824427937710625065590052475207938652519404520104651405742461449917211450471780607202580114593700892501115563163767621684217408079180910763923301667814458769187444871031436984153783396110313846557057832134390313999440822900475535202726914681669246780991760245172652457270513267475885508648550841896648322308710527642745544110580812684000522256116890581560777934251457037090973532003713638305031627728347674882827845597047136184240934158274201423347686123274955483259732126665859130309875286056790480411291930528328885855114687286158487248219451718583203937946954600864698427084502168161309588844996900834649006432315825958806342249109728334216813746585607168382366359660222011921062939623379082597474133521075759426584414734184829296716537151394654965735511538878249519423635010309389323029367505593065998049624714255119655343761938311678159496226867068194975817067490630733990410512211598355984990647322119653580903885612850260591328408738840869347815590312335039573327390579725584675678545990086869666825712050517819687700483392453062192563154865386068786594172695877570976423253663599016140008261974965094581630143067924481338426162982799331058235127903935251624262469852870910235161750336542040455496793293985706637879807867410042193571249964886525035360784409036397691571339839036305839697427538302688078801743615900367258444784683859684137006472820041505459911801573355742125885257134650464320596635848426618624926931802201497917036821552268564978484353707850509843710648135720518830849540315522270921258048682907205370085050907251446015622359101601832655115281935731290968498925502085708523782798010219648200896262528390601357783428977652862118988728603932190085391607340951993066910129190478313716900737571799364233901813779274972468639057695194859005146820034452009083322768144566558074261370791853150698121174683286218822757409269151665066391859436074005938259592340659212948490828338326138609772931878859503323288236603787375013832311555648657020928712948140992910395759951240392353613107188072333808576540990605710850729043418952647274208779789533424965336136182774785490594288048109655951869825978282039742586575972867552523754705082859199230138338542469466611885987894091740585234890745477965616009215819640471201310868892125396480855408459762482528521031021037320326191440360412225871468936479970726019872698558157426064732255848606321097052657461729018224965906686244567211852681489905492924430829576915652348492450633052116009327589392259308306911569099347906267162303328127869251555582705035134239322164001623123146120203844794495773313968946227485763439919776168113362256702827092680012787994124057081678556569814894919214813069148803223535716937558745841448970047063567426825452945950578397770594425754104996011566580409882501277857583856800173986513364861613100982078350105670397003793844621027100771125518487726142506756311924275872828069212418866948105491218236558999429845736983640583381257334175155947755886289589876893232455955377848782529882300009482794850933683544077991705239546039155258213407906740384188639886122966583693229217990532056594969522851055412359965681100036652876271059737532486412990261050028322451082352519014660230946852164971895962877069993357862071911662052769743037848540495099164054916838680224016803114058498652789626887205009577329128036408553153554414441633136022809116955391357938592948074882588600921940535619568717264757786581666551996467111644721030673366060776405108830653644733365948039390667824208102388028778418823412236737674211252571307718988228200710602419810137393648622792250037550010737277171632931714710877773376261705946064770726236093231307003845910476362907675532617251532822695122307013283780205991002656369568700005658042417706093143556894589884887337858842406143692913669171716769172697784714417028833624451455265789074837746112081220025320979996925091774593239840170553249136307604254127094818023905148533440331854730693332289578387655280258042881859712258992238816340288664182532009954648227572141052495343668038230136379168125919104007661482303559144408517943987752361375701856991131060845935373705273142677269684807934725643011017637967898565311415797692278346217072791941655407262926289735013056847589057927385845177922204742304393135466875284068503052636303228090734029420446939275517639564167466674631548892676058614852346615765902176238860019043357295698280093482688313652956747721462854716748415081543386018185396910526248628361492437252014758721521967881315916561453984204283481396811906377911231358552088851817482082159158613668044338117601061304862890217045915273236684088941425840369153383408409795158398303949865024353299080439023953507876638232010030080473273125946829840048464573433760976534574696087231755780807236271124875836634313256479501012275431789753811075690877612969252942488816717973820610566568444455592507323153147167756268013390049923036001420790023987714592816590728916524879159077295861806232054123396827547943757257615801594900604104582747301673239404972197343420281574460236245067300300124036508510309718275209717450850546116232026809707896024569799762608065522759006601979485719493675582821750561610280410832061913716686261060697204534120821133034358798505605517742912178907530482151268525634407812375775159643604341365144630126872177904422384858882798666050821658308294856516368692803679070481463045053848373013375218010832391082702403462173903932257295842799833998323051693478445424039935993200181517941900681622653617440276673853850178071403018671775667570019459715066494514742874229972859836776420505645482328622326002509473801603763634469467467239410210546804900731892278126133433572409605247413067642338071937516739810564286158537919287378816707692457800733677555528580905265513179523956515756050443428569740457301878812395718982026279572957624339009146962232086037855760637171181740058288849425632869830744659767831207049839753177762178639639197286299696731101033645497692787457428534280437306079569697613704964040286684353090764801562507775883213785238375366081787610796314561756924902772286021025033022088328453997689528703750535977361860402163657963277067991323857503410074776030294408761442257601278475946823257887227090977512407698451312225650758012896509766700783143771931709212430879717036827573456774759213321902072608099934626762265482542919752294327223091616410948771032083313395183623392731193659727117716913733410150803913090937602840197261448753085210107959854315696207882718596638300880687861269602129622622001891896348245947910601013648579605332928050268148489738670148203356404609050855080879247197581950020231007909595242799172886280009737336750763475646487530051410609576896718565450700076686320641028564564003895741265439652950655832470920264949403467701034739060056842500680794447825664543660707488409591462064829431211154633628932820572686605292619472726113917001832814942160768190239612916029033915725892429781035203353357508468466647650333094397839057818516720558464965295349548270417217122833741126448594273127633180472374738214934620827062480392280045003695793548738187179820219881618324390381083947423661556605951355914688051720235454992372103080405763245948262654783761815896613888809164944259845640297700062682551662173393624116258542784368408662635344004964770323859335935178302736223657841621989361230940976726110917960141596882545017825243281896887267812942534889076478946863270280241339559517185442969101769699580119839494994021952795833217200236018020591284435981115306445403665131992545831666816438419049112251618274677605514632383553045461255224292743094345933366096327331394941773047229403088377376754122455061784129601114425725945515398210713698908346777064726393566115226748893383321919346618571421794550078143751107876593705384536533876200834635709176988912107115243179399998755241822444119970385274675987150220153603278175222425783254668259492799700087363900892104472119015730926975221811156519189068791322499477363969539747686688030550174151870929228200223690440740179197147286147584925821102558413640533729545599037562647163704271201612015182889662594883608248678688350112520350227450841557984447981646351442079375572676055879708945382969298138001359791745153980252656871228389981789493535279549214089892939863605153716000428903273609973045108797004200065072279653210563399072244430397682509407482993210169228819256111876265608019380702528745689930574859867387716748622649718998744302237048979440771185077884449520673662443393185985020528112828809341559631550996733417494485459914642960735778311838161321567628492938534857943719982965224823400214806386981140998862162174346308325231642937848381152033853693312808228354077712917416197453791062837633172501234733942391425548308655809055774076199156302894439383938221635475384460686060206593759473921326948992482362793753319400623464508521190340541190274667470969888088783874052222027273522211519369861645887864951373680442484689236621842922917268497172227130484522300774522149591605061075516659946827096181924150171575381807785583300578079898315705164227622313605852516773715794199000333755958808694763803621613902991495825927068215284810569393315631778060377240674377563300923013591737591798027820681385495480875714979005857637521426006292206462760729871366448851250899870409746446226148961604935700258981371222416125282482853275088715864499617248946495396965300439019379479601545631061549986750496075983707883817489638686773878214043857070598229084199032063576131456826346764424731598044675609817578242600169199598374772643063902266573390447277386215125411942879085304843609580848314931031926703149956310606612461444915209929622047825685120829553852424585028016030388270787910045006898268566567154275753394730726104873092950644142280244288996151491755736331707177665891298090303847355595585434290242661866351912181911974625484478179864416315817865489937011158756405479786543840989005768057457975636158326919884523271990608374565342410261978644966132497215658706928912315762237315409306193183779634398331866527384290675148401010814622839514226224984763647314852697936784995904537267917712285503064400895869022432457185155588501209651242998131795111689316841051015208159994261274071373382658353459896900366970380810493750474953123641178258765284913986674481144870120838824633706217601982110119781235542361192600412301667655355559230152548158341157147006761903709857796952959103037299248695102712609102354359884247736920131414939860203647160095895076604169837016769755711750488618009578715484704563056965520676787730741923525997476567824877189354694509455856851317760773039303364835358101785523249623334770194451221903852771565383674417147133183965036997316108058677730291359392045383254304622197716140409283049372893882806074313938789512567409572017960248743021307983171383910110946426521101295603598245359723105371940931481985244987364578528675909810526576751347738378863997792964876962076383852036785432927079736315815205600328957800329865198114500537565394723793701528811436594712895364278799427481419137676002311841640551447063126229238631973352015522275306501899293161012780979329306069899537503435257320707967018185342353453795468745839892892099829985575518389685835578280345405930687837174556265515171352066160444697889423934687015274764963926254149607597033139774418874112168025383161934740543427052036211766373385601373511175725228735761073355095711294734985457342424713504607767894003877169941548615546347955944025266841922595278797336335442450041376285801546226355423386845414952459506628279829866277463344734199218701694395551034714689676720492118595914256200357640815445239328997354588224565461031015878076440834580736520707637900155490132559934369456637381518242608441451885007662948942864458349282692571533877660408286577936161611360211709503259699789370860674368361943433464732972616830625463211728697418278294554521488182211164981227425765239035747327552291941742847906362907028829360435174352810609409237784615648488794284013877180761171815609962683246600554323944066379121741587328625972531970377096345142452889843981733116673629924307280854936610952454751712376922619853985586248860356590009872683661112582043932636704893942301323665960300510472113208126365781272592280834612605868759837284653249359096256141334487815400207589614745320949860182239718235882444648493171882603597295970625506762232176988346155781140949843442323405064137266121163514487809501050439282888617282307209486440458530225034694485107664340635309824662885337000310962715789212994705955242761384266483725864574981557512616254916970659006292597363967733648203043588769504077184335797892745553055141939355584858877901926642610006513085453131018290025503608928603972902449978138958411615338353552862683104700332066783248759592922635705995791008203683450070430078989802770043644643338841693873222610509084434138793220592283137821832631477073061145590677647130639297989809684094602612389895005750379656278777412139728605088971422539041563523298768522975973126223054829294025246795955096994026420102650025575715131337250145268345617134873027785543497489750844933329627633588922995896517522039692887675259619711401454487669277024371311939388682326861823895074466648242818749592423802834662802558765289225759163444823649990515883201478796452155900541782640467261151017410473219348951308548868404056678789233303440484550639667987594989888986058871684640557463674765567558726633887218088804612187351423268354835843939310369485440452174514409267668150072430846273313244142479140173516436491282419443774731545446861586076858978896831014480430556417134313639080407653860379920933842122968587689001040436196790032888187988331875607164396182945674399687085721758512354061267475204024918321397236133614210810552484974706456228728001039163693876288998601935808480378622514272445393119035840192508555705659898004580880288449346797805328812640598572155446029033557366426445169773929578860143070975491645229062557288276130849839475399440296822168840332438679497301992679051912723643398409900089182642241705186920841788095250986219246897182581863305679603711880740179958529506240580482641068944182188643292021340393680777259178053962220141542429968552756518802606568257333276209940400029226097617728067770158271305068501280455738918177714632966716392841288361989113583753643619436326864478581707949149825559400206369464323892949857147855163503718855090038099871326848465711855480896544246244692435795127679075886754864955029938339961889642227674644746066005407977066474241606679441110432559993080403635472343994569421359555897152539219659701597787272712355778458273762939685940525988059731603996641778146517604126289947174100130406149119493340331650152019212432619541717131748748064573066480530637907902200660603589184793303965564469708944847186638224294663131009191127324092139367356780078999046859924900703512758116059815210220279868665916229100088487762268769892873714818254373373136419551372711644075784523531566859560658606782937106435632345291839071127935280864909371177415035058702227477588165903256851581950042377730944732816772606991966700379272347467105074551660781409608522984648427271562899499623013015082559574309058499750726409056211470274742583737520746820139788943520344203233074440702859827462556948609262168909468845818379533438218485948401299479763986178941795540675895369686189246565960938905613386661724499733286429623851305300456184778211167076239626659395524491761300260864338961537900519382227932917325167477755340356288102591086907298184354556607580500438792308105309597909702846536380532517793204236359190892862761845579744321386117228799190823369675494365645538573380464783625595926247198799851848133146629151148724925506452642849723778148221101277704695079611099003591422768871975912102977308319386191993186148564957741815373712426679193406998642672597822571865001897627965433656932894009774241315234874844335372142640426369593496995512224447946158236327169522413961392712549869605337615704697018691735544742853996766904635233849568668992976713532593588581707617642443540978916596292197217966350761909923206871154738154290077194282840196926530290121717337315624400596797145791215879223873158868148401091389436222879531227463058517230624935104920700976732332001697249205954840790206451671960556808368612541740166494585627194471928594800192120517207380928534130044597002871018625596911103710703729708679464979000223965477769906519105206823382180936652017081441710726074358400220158257832138377450038528496002462033469935547340293816088891122234476501968578695076272535924934833084180600437003242518156215311534876641214462598800592057028214914650024761801986163032114631777275451870679412391005939265836944190784989886542955221312185858575918482132190945451495948739178855020044856786056337236343662888637137240382315979599252528792196729693062994686875263002658503734075500155159803176340247641508242879295701106531127425182303097353843814154496703726481683903532017749205249094764644887674855015657045654902553725264698162696282777156680443875464451035119812678958134778964141178942291598989844266299797679787713209330964295748573231782412112892762782327563799844083616353168347440789028158983250121173187852439860048195769583038355205577031913182900622017376323398802585977788748014578751635201227923136294161775334131706191153837375570393470013375242638586940871692921265327153226638391435828832050300105349703452337872234375853684800484355276791458386459138455960969382068152111977158078718955653848691454593133415180868056090271085389821780188401728751631143500622352025334687120319474984570184081056117603056223691471857431093296616479168801909902136689050469925484946136485476212128906803456439104035069686161850485874419350396156949098228032211651601829237194471855174632659745758717077497246427855937371559806050786954975189461026431851232420255098925080543220911009725496239147318104756775640170343105823718530354805155455095936984583802212059870806022025671950114408946066950659004727358906405509170053993202285209698946276667438690082871648433018698539792366302727038466033036485431979163947673605975663164913203282369736438325969317350295783832698021139204668476156682707661557821635654907430907404428904552051676554630457542357401134985743643450641160872269277856225093633510285602724868176819477625877504691400311158248170476327076810446049836089096853888851029614565024219513344175287539774881107112511093532098498649805883476632656422182418524360466861156328463389364689464683305767834942126843342947358109198310173094004338066290436993121279352541992068572781218178611951997743927408035512319302838920092485476679762308350371351395569985042285543927249400854235320917505547027156186585834257663980727645615042669145094739156633710318735696735101906154704273795720508172147167349180311291312752253945127862601883580757099053564916541806618738843272460458058127960954982349523376738815632673055503862228825928006112733344501440247701070804982089609030693847129421068185225067935210135644189063152928836132899028235792505946991504844593086003793017295715570855158992846486891515535602497300691231792914026180814423386392158984666164434195948645217514446295108669311778054251797606143008454272846211058322428869233154536842909467360996031489366452411898913318593818544732297479794446483250196527021474604060252499838511235739196039010386223293860676751182166126094399424455041530546860737399923161038981771635220413074411418453826450325672817076021216176585864751373516753861550482181411835631820829714484495656849098303836878575813200084612832026720251075790838667359768047812498512633136882068591470878654496213718008372049217677090716413985542598170132279000732508784004016281404883035781513971399287639176195907471440304880868892229659693928044697550613498465312683493641523812126378134313962381703828325039514122916944519872264934568721146034939345137066033671254251428511352414751005380745852530380329781092542073779217732272463014406882033080281071349292410224026751904889248471411580645231515785077433161891902032872168083900072705673665969971720227616620043652652584345416185133372425890426215410422692809981085113015270914185486646722013540752479589893572974627063191642327813519706285988381709288249764516917550999795075393093792796481367069525304395973521530555547299458017888937241663182636183171971679994180646256371816978584902804648345597014957920618550079127304878754985159511146024659007928715470097045092864924519933013786292027646106546616363753491613439572866038613974445626882953794229020720491183846938093791348838745570338173108650865643220974273186789504402465245922411728831304596387519889889114296534223302582568405928176838180675562733252004399013930389057282069908032706772291105894593325211302123065997329970119122928844164210544218669304480852629244980482298559922901443936589579860200831319879795326231538840141191930175643053154271728900657789932151366548697322894411356413563906718469868294173961660709781932740285734511690673358511468440641514717033620443227729136324881027950941129858406913071293385228280645918629001339677474542625720446334606072849753373772046664955980108220491658852556590621310991744637136268365666662638265110581116027216597360045216169923738161272450298982325003482697437300988467347409785695714221413762300199162460666199739430084958455172846234951654877077692710521626745188513613055461227860478843975605869115771290423253850542510078291410700805537934455141541321895595172641374403186086686637729089722521421887923105647318978535593204546056086925854012334452587688658504486503150289403876325748022220203302901414589618939893113849022641344625220076812415608686003101580870380403089501289694094745426587506479513071096637326812778963952228523272728851546325651171734353313214539015738113810853624365285622092119249352223833510099174721297037272152939021909735163082602562977897289439678319688888155921519096875547606002005518264411471913873675991976652773395689679032889272421055867641722630092870259396805945000784374116484637885440188104723031839484519082912892709290635270797764929667358518120007104141888648202297509195876541910242622189286203809026319045699564679620849075921426925850843405922996857016817431187718738032170318119018266128066865252421035100043277810877366215564439111588265073345107798059701894913597979893343079749566349308205865911349725641044922396634234460002595801167576985693577587165449131468114260073882932195756018223398435740918683566203364754402544412118154310928590593170482996264446005727891986132139559962764167378625247573365713504825771064991054341954287874464855669819599566637315776489913041276000766720901165137130589909939128590406200711326908306983217770895693855692951635425385138572128934254893255699297469110707254930923154636970074441381538016402756669883717374132471125741818646809354426698962468133594332851718781746942131612614614949518767763869924640796281107903707541111266417348674214819160680848343785899737735100218264139929031547959034678056630528661183783039432591389368626038477349883888089512941003976172909065199429286899136161215274992034630937853984766710791247305640243868269485640717769120270416897762548580752378221034814265892121452376987297986655969862332887461119300930729703803428525003522116669260154924977215769569892780272526940304713737105520738932489662784836474068815035171429190464412590396042217580154747519889967316883737216254570756998683822152289301028161804200729154750589051073435411796064968115199752540108669077449938555443762426018484199600702801776507607498179112457230828333786351868663033520204095387116876038741189192067767874097429415567891480837142486585502018361585785049445242253179532427834017476507223439616210871194167461924971850531786800168103390960839504450892716910072425755581264222790995212731309156196945436179069480961411346678333679407008594031483425213364266118506502738919030729536770120254160742007036188262109095416273526351560121511449172394761210935093987806234825437310867658319261136569272031959172918839379513715675996417767487101621642342926563515941948934342686994196838552533953506148304717075416478408242610195653952865219804102272833161171477143523510377430880510190828943131594156042087727024114951599376958560712499658068542700236029576584521721039424737447261906798398390753768328100259568857128073775233365532627772639759496666808510247192226133390922455710615135763945376722151964902449555568404768426835427308749768763181793766715336258126261256373831818414061146838899296817625374567613493256111907945634504503388908295955615610332098862082786346739613285658105685581926483561878518693342760475059693019324200248761822675900081484201553859682350878369433085901150036069675189533295747326652852917731601551413891186196292836484833255279176190736620794996024771887307953154462758383899603024713765502335167846620391768722116620750787364100477078425624842037865206393840842882723369946273728290906256122476891623529801550649217844291501401728146531166390222759288208383183447407003512627443371236146027764752565810003370949430867374256921802825503529249962235112152458164207562825209445856915395167988793101062743832493630532989321005493091384398800460271852241055832500212446326752655333218623737912035401174760416897296287904440025847270628895789241996769957741334345202162400772896255492037614934696067646683543281309656757200808753580970902922397382781235921525931566038838724523715081497393724673791379552286366981459158261852422521513621642164323517598456108368893690543281950244383619890296519483146036164090844514184314872510719597346549828858860258939100593572542294626460706040746650350912645089302171889690372982236553912828079036286220264008553304044882769770815899871041740798878633789774894952359836605454212142670321266655310127687000231226456038846929326664819218011786617541932274358063191054104444216951584808535987139277442083426073299035696947766420653703435032285964611204027196824841492586988670499810344370681939233235330788967078104431183006979492770624667956817218108010862943700841170771800709195626014612518274774844627595642975737274561316395548603060154747019885435513884066897699177183052228864593500829312665686999062810266012591052554679031774326369685678425778638773857773823382045959326032159501454834151247359324634329255691416447734242241321709560121418444722701377865832721994458732548124764516888502879164950672737922696905557832160407704047545614091034760664675455776200095687686732848081736998588998667033398676805877451142014240268793073502164031761873958041045213467059258466404997902156938947615276167444945245052479341272164014234647489531879712127851272797845613409559293688085480066461050288167618679067928901921739255971587488987201553792361387479606963795744967835497201655401668466517234170906808605334342225082655642760679854931940346437741616488981378554597504769568924079272991869983369102490324808943157066077849938075168490104029695595732380448866474007563790821435642663813685364835651056352183594579348811007500298775654139210286396097255602277515827657603873983128003851258941382532654898988145943211021578132703652998933876585321876797206366636411156091046414233028008619239938610891079977542919009516449119183685217073347155413316272919859944403754487827230075403592402785468790138064187659740542339027700449254079769010604059856547529403499324600493498213115409178227842031707666656876399909000044782934763226748835732935416639726970783604280174497648639707939035222113554503753808771520974869568788110943439880197923066632088087382158662464690843172190115942810907970552343353690744174510739741280635777082879931930077343921024205288026136877915484704851880972853389876533509373745300222548426815723496156967358383505898746273124563005134818219767673698732108440459209388155594973622751045129868387072554296557199182003681961596625575003633642186653647860567685907928152778081479284644896358670045552371096713090607273234708961278241365278250392119285735895003998841487956681955966137530406095887236545167705113920349282867379123399828902520869385663073917781001644068176743688936445430959082683277679741887000909480274898157741915807650361373075727063973190530167322736898507676493300812811694776558769917642187776761381630884622592260643237588003639907401141060889188806127760143177513398602986728838290400693696836013329117112736368673124310615171053332297063005197281139852523772184403050422970966750122423396283146754327083532468769375065239327960971009235973921505405897164647507458177973921831690603825263278461576758199264261455152097282762611750258341360313913950589234982375722225379932871583655371359709541513211699030005170486190853961207163940419037929663572986851311933417218755727671247567182662328210269164157666429805682712224833454368780036493691479058022341344544335243932805619249993091437979936137646857149172557786406243606612612194562752368726005613486266517386603893342454788761248413980647416456000993291943876722007961291467256059536558267314180680732330314116228576590705221928782144687248294570668587359323481167643223049936306970797651273592607326239567005829117676499540975963626340957992828259024767930398514206140171173714785384808449306727635366796459197742302401783840420878193791017662169065317576903897253014355470526781689659617623902903217391243753702254313486978933671327296176593860688343670728392732350974965866795824549232825614978040278403314703457527010337649395636410116872829645947747921159542328678521106171983409689911059352060740725305247238800294691597918844095333411316971895425467668771533830477116625969208787028184654536649680306279760748962531232901987978643054388185145874259484120691566126466209114381030202571588141768533557543695766008742683599484000346434230595594010033341429062129207238017161058396031320973180089476582780990987707410032418431968550475179675970114830272746698022895042309914846726434705029482408631236470051359983562560055839795844957063028701832178333056480885675521736174318054628302370738151114385143697896740895695497650247651408454593819482930481005418678128925775635737248500266950458032339571280062069817072491745355110136665647042437116851404951835608451355548115782044198883856476533204023150416342609764614089293808957574871833114817934002268533595591357731931209488665752868515685712936047562485262242683725975731865289418026969962110165277409056276256449156471536417769842114909394875440303848263282972711170831785050987879490683623728031285890888726566076499358021204122670768697806572516403700429481614666825960630330648119219688338353329440151135182823473088495286435661199268472556587894887992312777604520784808292834285529301931661878566927600194010764887716214146964863683478721863792833418782837238807041962201779965160554865140924943088552450759450658799062094322616066284660007966034132595916714658965591260141424386066094939602782043956309719218374800941647663080272102672950387838583302840889762666990552194747849824081821706642501405494818331185203788545609564861250884127833616543120582421610168072163558611608133553248639736176137467273596115159965208085998460939194615377863582622474904042774572478876212286294151459956628823822534697676294225334281486354410591696837041406702253920874229383826839679428657575722706545276306143204626735496261773091063724699744265525876513662332151054595008905308218949409092954206105108281967900115128597536866597707856686615447724349437546316117337830462881883233231173150160391014470601617961925134727355696696836121509788023190229416769580894495466373571801672504459468400160376368743924250674517388791641444982073817142925567405489430269982199282968424094672546976800149476898296555809615381792274873950289179259451633064474323072591246770367137083466357577190756833778291954273355658237963388186469419043126142399319243355887896245363313822912787578601857341481662786809830527612940213007498803437488399904355195682607118914064685998965081578840224057896140787158570841372354804941721728085322503523569895840624601467445334689015325774004038964258407559791909962682112159181584230853341840970494524401167331060876659842967544696000742280741999248181031092165956059091731361038108795743660337990519249450878648799546699283312712607956513894773120024990227019651938338310120766885793601191163817426815895936603070487447547821347849211613268388362086496804379472319325487080626758041850415079626140358991988335959247206032705269525407656737669103924061147927342133441665303864567738917983708289567783130756391963004892427486290081024241753559069371663923182175377019803703643515512804679173653457697789479281274068558431867996513149438969978296474331481889229851077132625044030380746471874439806672632092744233324117622467085161336929467151701614163632211452148587447601627024809960392939602223014302580547324070701612678535618829194726990086059092170667098564648648960488703273580100919174196594976267325906726340602033231723051854655852334721946599742299758245559812464204739444339588714035592397171281273964872626747601780838758724730361818049985416763091112199947231944542951307858682627597823083674811554090930973580144574727727340727862778911698774276089436553344264169607281778525210702570746911477794186348335529751060879900911842085126452292387289416211262212942242894975944477665686478093356766939561735265279122001717953784010075410862894860799503896000086112907809050761816852822851032192998477579346276247010005068488535450728008760525074416256121840105011765768887186400190354558999138596642696863003730771083704694150390547876101089168518561586044749658358093415206503240800413667153711733522524934638031182739574163935270724897490975943385406912258333908229169573016643953862013172147396657211687111832477251977026213181611460070735553056243769066315425858316147532400029457391667186710225900845630536130664963528696177403782126525356731494325808011921984869362219304379731894823890299532584683448485854540068566752067462624130822223943154777337885287056410611272324474582497504465758202628765006780722171526847576726605881885365300471937264562874739514545591280870658797348710083435122213406848067650465710090188073073074881345777893571779081983313633026835669291295336776844289406472723900202034828820593065432103754600298422833654309574381596414514964711914294781805271349735521712375937098879047611397219719038335498867461115943881897561629510133631680838637282297955456275825535112390182114310365799737459752259043635745417452866689257501839542253857310725037760578547421285093913115933595242748501140936144013653386875729565427669809326683744269297895652818948875689157112996760098421345094806384604571550319895797774141525889562165197005136245110806617105251456805032035594897240028454769474904884812570054571154399600626276483913991816628482692040781592846037876749533876756131662497768255869534162989829647097332010671069358318213013444338885337640897008329460342222245047436337052779847348621564180126700428972305095146078283212618158802906657637556145528503124914037924661118873288285741899858864415263801831999539123509244266879376903703575037764770374415141826881764253339284863522300948536859125372714460071173513766978310802686285609874026743377032160888175853807700715228858655976556086168129390682631046296033760036353306438698426814338935639700987045929877009730016238767659307521135823016716022483061135161888660050980037253175064306057670279984274128018570962014625390441082076087474970292048893590015373872511528324986654133475007199746474731083201564095581612036334684053761527551511626336536465995433716476946782775730998295295218122614362622922231510924890433141909174757799193688258997900461192159142582911001708217094320863015105961617675525709074615100721610537744250886554826157686724265407685003588181486975696278369570991596756429409474463155824436621712933938920302732116719281988590847139688878839653146141348885159806940252566261634008517109042803922141412836822809831392267418101020332152527441328834244351500148511056021702493363723139428194685919538736830838757832220973469786202985729894124560129673861790043220570549886322475155823494424689351123083428269261153971471258573793112331353929290998768207897172857869396028119085995108988148647024436570664592123421373592897907766970899709150569790802261405831687880655842143981752641422480361042579129539989167488051528236492585161383206037207946872299362783615919600079468734436106640065820794565508091273346644952415449005426328689948797492247865536830324117223573216795311451690761658280077054604196569909145965204333484024113249916790975700700138112489025799788297351565507553324453074483207292557975083286917833792759722069527771399320531554866857456569022651230449019732128252917341677330519414125121169882569962524216378452321330667694740547997049752069100778361332888194692723949582053652022592097682523264609580284430867035858932135062563688107717093674276251310189567017164529802380772416692444740877758903138874849661467435771262385598564484130635230657975862165814377190900734212889913578659326578936747522758874602455835612409847376441477331670256922591365041993946149073825477878667569301537265677456322649996676223977482525949648058645795854342281485417076419073630262150937532235826500463156291070193483185931714537531067648345851527971275762183975045676097662290340875205447221958641815424962124144544946180844919838614409017959221617924840451943115198406046724712285152292647697238404665858348112846918870996596447457123257931650653339920383185005667967333674765674384149549374527237182792585306428027018018330235277356125708875454137726223318295803181672694928463844107962522875240553984908656820672208257715272825860028289817827137669961621466422610928488700945459316407303865021717321239909257248752907102239676175507060684249262791724289923478962161927218758588308928548187351411313324631655657272313122236709658347306679522233465548791795248201687726757704125416824128328209970156068782364073908253011075104021866839234594086251332773649972462020460928380143055210245760084225473196682381431929934585327678607811494059827601332866894155876298640392966654016864618115389911231067931951719168645833897379820599933816889080449105312781609586950931880904127069215185137557745763215650908374787114157312361370227160237291586917161394469545560866703197755850267083528533555001491798304448092897823060452700108976235451308989670179658939558607160254222586062318334571268589991575208187619973461061718234076345408659562287655011837045152348460870670322575484745698099735659180658133324273839805249025441150179148661086988492077605679972484718050037019827954932891510451139413890858144980248130557528912129492861571626423254019335994917432516253509055688513149017778251272404122535988782798666980205868628452390873561772113179826462945746567814860546952427759525577327421998213852787763488274873281682798032264409011187352340596501712647421464969061967810088053326333446169317040102604488468849459265511332797793582599725256398400373413842312091682544142224792493329445992149746853603328606845226072754078049626030311346925440364156336693675700025307850805568918615472920893289587093837285783206032314671298110368224721216695750595066100418894526874282231802807107242067235880227781924903496484807758887853401994300988903191008221258509698313046742968606701316939505380419192760297489662525536967552090797927386246294516914669591541909870834714352352950588068366952578392573239944288902229807247706322334347196481622844044256467670393607598102242875153955155092536721004651606583755013727469294019611819015530528443473398994554893896207403201179457852929988189922249153106361912160032911773751657296870086340265849502619977979694236369221262003968071618347701894822427382130302255399599669657311609887634310588683870215967896621682804724069810196796207393855370054318739054620138134992716527580347142071371885114536540984158202186321541845213472122225965495595530815799876938612229583849700350877473487290011911924419680032714522240250351255913221170404618518482134083285942892209569223161659564807505445852730808195185484292096255180826514176101881661633275946208286277528057690628560337726064851196453582470643923322991915967323554353326472285632527565459229925418570998981483344012784493007030587806985873564581137678612291313432642608358823124339716646006154497010031726799733138785361018812202580519735941991068797601506530928333970829249054490583438936087787750249552402857298665430415313976730582793639530101370068967892236335080191165290531726274197766420155156561677662346957989389026053798582138002528420519030560430016529330233696548560831881479220819875228628168878502409315651135697036077745907299856534732302615790337105305317282392795082656899506668102018110929510417504954264303812786404879079625799845207491717403288934169500826315671973015051949931397729553677462936510367221467249634195473166752852791117455554115459295925476006809891591013349405386286887388181976869060618429524406670339844792775195910429044746589053491456977400924683195286321301956912814164372507683744694547392071956158727196667039696290286656536423825060388408463835511826451922406253161373178566151788433087902201850939929028415909898599253820278238866304716566177934337464422742033971031693276382038125483284293497251057212032923380287859084047798628561725153028661626557802628233422283981566538235410074055779533562446902352829895520140999183331015930971825138670346849394713685903428436316856462116740704475745392012768131116700952506808483028809874230035475672330210218011358115800620512056165663940640136032200168407872151149527752609436783081903021389475197987858669943700771315532812119145776314554289465508365440113618194299820398407718574167887843171405581170533320333176400055181406269886013121003362327286103359942314349756237533854493861394360471385295415942097237626710756334200577813164659784507898323396643548887124194890340594480596986148609834393527995714735111420917614779976975603516900605206859698824107710415665747331139124495032919213840211974824233687130234005679333678875327403202777319767103514030970122211269840307242705598052851632525444357875539105203955701112507178694182418789293821200418008452927913546339911082933680852386310827757590861859292696638128110471219195567598342889353378105278394246201917573354202474621767895504944180483907172799722937519421746020331380024435334285952766000885520453594487577492666071325451999682763742774828264416028957064062779450043067522066207255280861356569909092941260484155654136042022565280645220589866147871552411399169535621774246163094507889426301989709791887820314478601413940343570595454128047647841687012339984739299395153624004154149499223488941534447852392742664638651347637834257926963594449597874085517573412578757229630796769764490506344852179600228528714104511166958846406875269450895211721099020232820479003247841197097594738483249069332685910254711508442041716111309756223661137044521244800803682229697285002357109287712333623643209903792590943826643851881151508636087421793182652430321323563954744736863230310021472230326213169475304302330907585658391719852627111190996375070748659367096843664220975692471703914925451889888324036668739986425474332805084328630393699657698545329202172950730574024538568759188414657253273451481006696105260023691413167104373820547158480849112571828252216823851956159726228650787854822355578839845775379190562068027194965548596927981623440063729961180707225521536288465833576556474076837100735576214367538516504939066661639888496350813611035006476934688412794655030621674508655598037870909612847116997845590903662761451646846150737214129588005601003193569699246594079991383540505344615777596095338430478739319380439964298647325605184649204915107950218863961870629114960827638862998510958521166893011700061962013057634966539881157410415563841087522881216692163196570934217504617281634147374540370202453392246961373717398250378387880519294982839733175183514125992259655526611663327717823759685984557149143051106315141827860594233144069619034849208091790117653402962423937348976347220692213604305210335793738355095893284217528404170948510277159643957255726569808240908363078284106814675477465155016671146432004237001397240083697650578653394188956017670293103106214542036516617096402850006572326029356360789876943828542257741841651080774159594080180036577075324128562113330709490931000413789820182509554264515659475800043132705853052488486606277312652307872562225386348535003413376711020710270297479117596464837868777244473637861708067330399658248732944370378045011484899908277842147733404424050329188619669927950644013075306209884277535871874546876985508827459162172944362914220196410394737459402697778247808824851036161983550924788584086327585759022195249776222019142209998952904410450297204341514774378825024970453229888441653699776542891498412752433176143127327080469542729213572925586775006846193473811925282122367117775290095610226178326617566537306752157689578719340611022113139309464666132732722801300249388451319471548049803986224121504419162779654624248633782241706943790121337440008191368121278193116939992869041353746427689259634687116404645446338999776312203246493488587606337025357251631012404138076309054224449481038742817053481284968528806799002241868639495034030676317846889334528881337868899259610418295545081446425440416914416777479678360222440696482801642903160303787720825902478727219489377693905482050341405965887844808456350244214767702930261543175905180675960389074604594403971882618270761896275609856828566776612015699667530653257888287964199599049962134550728623278266068291601962431242614718986086219745905065573769993114862649413244850243557961218099961401783292409205923056964696976027655794374715391105615386089592081862047278586235413650681025379083276714938909483694522341591866840023306116120810278566145380633748192515521462121875075841921942250097170084967373242716264335949647254161651026830743760171472143470876880741610177755819663669652764050655045556538805072659828601175220940908730340952016226059231119645951757516924713172518139100574074080253120385988320479324002416960512583057540331877747122335671288925397563847439782645005482241967845429653460019549741770055314786676278960367284780489944461108658176615467575582714369833247907258615435713230056159693751515730079802318880880105066761868438133200072722087362161607553214000279641524232325866822027066717248208789916240710630733648102143062325535956288325142397636093194732303341658412083865997368518517634792207630876558247201947526799737940622925932455922129282271545096147792956644597330176081713689878174408854728930927750566066700325593183321362928067760403129063376039104734178880921149904722833106720937843301505279905071527876548573870934451995128495474072919427230064395726006791086879619252128387430546644100807123075261896374767066055408907986969596942822069010535541703972451153970037785156986239657627768498631648742713569882489287090245347649071571324069284984555866415176660324053472440645324370984966894704014956017170993570463532664760531437655801516475055787158517179993804655466788769937359208247096870182844457734306310780383117540876674170284567012192635467063046283757361284544253028560583389525933806464265487407120507428786779226509505370830513577764758972630566125508876914862209494554697011719050901642286503651700607942480624752339027171768381180122622917948411429484696709215684634502160110067156462859568760510049372857284423224737110422224963840722554280532657639453985439365459045176666032009131118578625397647923948525258306083980040078139266986308715736740454271694494430237454898383771518272976902472696743870624812696807959267881734970383589971329934188522896913456338700282307430864132742955208631671359001141886741811058275281597365871056922655294119815835883056801518854893419535467638120295412138525757637483753716856550013822464365717396476727516844662262554338001285094434387387402080500407702710621198587552063467015608890507635323499538320251720588288291193943090622783612566126112885724509727874246666376549484662673601688691222921602736069271780290564542809318606400498225990516153432519007482692108627261726570003474987111750646041910742039388329506764066204588627054651072384309040635964316118730928112521799405617668934933467735080664559379424935074073928549176465016056412595945744390872170763133332554199086053284112898083586776070733706335589553460491300639699072998771361124305907919698028040120312475413495365583407371901253011657569313390552532858490207354134919690039187707606125021539796094496975110174163992973093705953329524209179643734471782652169163832839532709001689107727892096327938846712774227419743559206567948782649903440167475721170633271624592589835590661899546858274240713137224411834826286150129672472180378636063446315893951705607160268567715593440989908953261379976095021039256172589507813565682028980947174618945734709248133019664288906382312039794296245345281349533560957693952866823500844237887833327379497692548878519184291746000096348045884260425102209887375638940898335243074264764547112883476102597727916076303945715437425671063609482024671047262623923319587427785084300655906582719072940012224016837287283529889817402830402631441879561027141212785965524213189836016637120590106444517225561258217231003113322317591211129102495638565986977527590294496636196596336655230893495999721957519243580313239403286634251005201769001195168066463270058056336405189642021640034911862474806156602982952222434047986733716530162433018205302922055177069853143916670153308392365871869040641063124872421429300030053175709961626239376372228027286799040106568004022370816686739791287818758511432782162531609997020135216650775158440046473896185100177971614538489991343920374026478996197355620341519160185762978066805010919262707162387540294139849802840500934230646660652677772226564284438484663672342745895679788190203899434280388112187602209277008692929864764917007328864860263287947278996606535205984441762919613130405473403808725959212486531685535913654199265867489008414568365448225046424258270812758918089284848318831268827059725354129441018603318973535187901146855683079592236151650707847065667295292766692043341634544514341175798273505137811039577910251957834267975045820965526025288401720744861057456777890947429620691373025044435971900445759649986957096487443228958505815810774768341323952959604227629565782795944569271866916237444268957229634564367608434815489947690308176946839110729994302760185391130062158591855691821766113978237207320906245326555612209346324036107703246335543254455645011808133548767069029404855892533347960089836341881793164535496013510370764376226734102712448032954613355041484640200209663652758135291522060172276326868662188684790462357892718377162977355936946503048246372071150062716332844552920522859728178040753519159280245119085826345901672342850615572531347279312509493545091528333456430637690607878339123271433937362683996994215674593831824779721748830939235262097048126498823180382923042814870884323720490046695304863136167131500772453581871135609356144934935572004162655664971260153599960829161866523842391783556908545411310959256418218255492941236085985276222932887098167704996098898527091005718591671342183465831766077512402534151030571569890119816545794818668638212166125648249935903217828155164209911893515572428812359643561784543311854422921328581762727710939743498104264829384727998806265689182663103279163070247262496267344551750337814337107006099402929569625325506098682560604843255926208780827420916688805159282707178392580017053882973749536848555458818840866952364214947079696109779206769186947710771138454450966134334831938908230677236088531639243394179416699347940262141922743327268167095992997336408765193591269697155104699047520680783803475596249380899251823845258405275238461919478578238083160383720250628180047744861502851392671591354206993394256466667145443683619503692369404891374484185048711274541523541914158081234279165147880122465029486315896172202078623543477921825099104136730329152248235631470574440903697848904795322495113875150553625288803354977391897012442779418163802228311021628168540802247004306260108038612995475868074069324693143463668854461340108338324944239926662046749234649396608160037223895465128497479798282862676316560951692611235173322124694127290055812400554278544467760173349895905069182374646926252316408133566840042755023100504448478170662908443652052030059053771448469007809720924932762897687161909978096026863249440231136880582529902460462814799044710601450356157869855356560444547472374580602683754089534390407873546590023190038903474157899414693545430115229743933137935015137627742819338823357404299070491795562995240977918167756166647594820439358465581686510751213649059887250058583255493129620879543596398011245161369907888679586937562996909500487717713795117467055588737739719099167969401062906959066418462870279602335540791416244931349398943638401254107229796830979485786002264208061571081097932858095585402399858740020450970541036437533443534535698080895813995347882177405671110626388491858788356580590118284955012682633189236459826629765581331047672792508662002813475677856905436507150368517582417290226396778833828725723946666050934135505768880421091011268721582179413139629569578667383771448636128917222784062574423015861283838062511925989997554777637333987053098643706095086701942589431964804335054568196791630431201809190442870886459783913176386542047421430279739609182161259815813573417957781512767515227030390208235933975874417799092879367955464518582176448481699431443380312608349425058805834751070143519047992570715481637711468074432037185932843385079723545375820924454565256707183552226775673531536982381670315980091621374181456742421161046319412766555460576006817701054947600321529668526560922561516449193154132986758599848313284993088898128428404653130198448295522629772264474549498988171627960830683521493558316190993933426532243670138022697353002924055236910158055655006555330376427298903097865870513644799740426664022196422493164256961304306638116016782811435362957792472517715582538831476834523976205936382869525232928599575626161236075325500762487334669992970146142354846661222314088153693804733764970428050306413621538084248285433719206876584866393653277056681326216690300449078154226164659467755380061530083549171847251256081837151509095781300432611970376458826038658198091766573655181106906918454621890811594459307488253693186808611978972176104419899566071939303960699703066485306336180268933423243204093740332368392695314026865925719108305091257869601418370311080406844831206827423086185366194785295133872687626243743364603757967794702084207359932857447006222396791184132536996902378565499515817940792966323686323035829423318442480831470108526577575467421605882449546902328137016343972669148103849651749793631855617535739653014612768346603360957967328528286746053412075541443527382649081478792960343737843865298321353115967766226643795331784190234546785086901052454700895968259540665574025887122485447573792303088397000695901430209297384130463313950345759408889140415390445468680752517668625649924986169516674911081614745622496518463505069446396120314174154738853067787480005280521336399050971089526755562219374425159028224037111559490796778590244031052119313476333232577568767703246961974463298466161002037785851314580288678397831817929520861296251618139315189298181864397792934923722537804959453669227131856985677159839265038818334206941085582120265544078311631066391461294874660092594133285302681472104944247014086972133643944063771329745136861274874802749957936473808362909741321575337459252310714728326145630874349017048203064357115609313047113220380182881862191252278307644012439763660943592131624916593159016736132335467452692823872186853780449187469872872816235954386035583815852371159317131770136958213950189813502408043171745643363799078157377453028429973038788244149642698736452703512414498231769680037930771474003750828342710736025383281383932691402668529704588783572779312608214584275099082167481601387017793896642813286664389350961143193531844227123038660801643751544166092872572236950520776686587370679299626200624873786520544530593956345617055417328987886504787151971664190704353138361709602603696298031310350796009572186492931869658050567820955672992681642356114130170164808157034319655531704368305205392567235238909935331637441610337321786921560595633116989055527935020382215258576553122577747209130771099789727929347247815824176803753536152517610934977605810123177926174688937452884091952065709979385130953255740654581835347370126206569246988533751090357964293204411343855029863742823804279523710038369787312531686025111390070902211513351468202362715483749623260484394722331867154204097677605056889905129224126614447502451273828022009224861418029877621464227059297022349600198722709071655450883547243840831491865957662784041100293383580223579957611627367033359563865721052709397203099024933151104148310260542225936156221557171553342378274490880857778044006188072554594513574041966840401673478172154740172020394392301313356383063945679457095477127199074960653957775521578835048631158168225619198710964842776434060191918970305294445137414613775179225969949894185839228419008814044932344521071946510377611111482739654670790690881849348689254412328509946576514786103220259056902271285690969137344898470314336461633684801932660294580479900182636763478176639538016285624764232093382923280051048063667344627499597154197888873693335811897207475507203436258670784012923958918465865273935040036483137467660184449056758261758503334695011929594977688424140912728612596839501868586308891803553648572407146369543747458872278192581463143942307439597883839961318640421902717897901415731444444146698677560266575869440182779450533821106238508348306333352991784973547731744832721511153850008176818218058839781158748258688955941381133495622392558140053051069441442566213177650704153015148212380056802526991311453544157724382155325088954067447974450850578405650862925290919741368247501576896559830297355123283745336043105578125731023889537386168242818672239259368683515373161741705650717556094595208692576735714872598459444960636378334407079484341975664278511439425658964607642982110734548864763755288482204885252397517628124442963541608611160750677116784921322941306056644722778048055831016174403029346667067279748557740141392579908189041376602822489298928551760959237959849004168999753915218101506123765063714401544145061959407612753618976428132805786090121308762013332169905933819119555702214938757164536999919462182662603993148881115222336097964417803619671757168933541861994956560929661299599602039504129122333128049475044957475495352526750216176847910583906659971168202433203527217766916355560333573288015729543663661415176483944086213683757407087533377088504222024176644373900804637380931190135621925102580043535810841444277587103627193159079639352746301116594099579543893314197971366367510103130695620725087544313737638082607342522417173689428638869924737853958383551217564772439375912737603091849956475996579195704449587917043784826453543521839469019815355162739679794541351265600906428507941741171712806225294786305144227535677429893537200036346587193773122384536694606017293134624874517358339295652868981942162146150576986634658373345225657410601510652061031079308577189781209118962430431314242634100045397822438413520759934622138566281246559837200390405033675270532590957724779144533679639087712672422506998116241367719141575523140872517952461087997862851179540114125433915597604759829671026997035923192359967038683839230041375943571231465667609287573303894403822996601595838052416063015020536041524123462841558993117804294772486394004988753374397466841564883906981523502473273306646355083792960858290730314226701787152400632918685623930546623333565563630999222967675949490150468581111429060118395464305686107421383835259810200872824795400667008595309863360020277371246238241719602405983854103232551358375459384274371476245547645814944230845339842772234457481123788741074451571938554616761554628830268018155420967023766010593499610933952190045780566470968091119543658920761157146781790758817419553829189867088947603770695484970125262479322865282339121392406687930097502651803181480099521946530262091171640049109895550584186899526897544747710624752605972983804154441423401856343359930946955952032312145068842671063663177567358916248363602126271967589744758099833914648606146600423635699436375282335128585250500553223222637507874141493732471386636596266020320549230703236088836829413767557876804998451976631259332543380423366321911652155910464467073138896137477575135251835595032866287396122181264051938453664982083668814165086202453307261461756905406322617379104625558746011843514424747426820613577361231981164335226662856467445942585694875401144933184037496143476551206978855091999411675865105869789836078533683750507029561806876509549492859987426891038327374976510608835623079126961588797527213234050661628065957524989290523483880381117428830628726762276589552467731253583735007919464374963232559036508178966679105659172088633408413733770348666523829798661530392188015080423790070829929326941571433556231879685520304215429562019893243699670128824133594430826094320077864093246164838452389258184708316057863157063542150935621130224386602485945774112192601082061979725763338027284404627496008677604854267485263186153708106263670534484545314460059270340197599510360989953218062915800104264611362008254087012079379099189243254008731723434044961457020640661695454352863109289288627154747629485436232371910531487652054959137861290925038551188409871897221912573991504661163930228435894532925697999930274047380267593584247073555773458179624546297626622691634585598507913226118975165365853053436658859693297463388462205155372038195552673567454546528619046417892455829042737315981356960496220816055528670154329009102207130569146682086866267552635748883996216125853192004620067494571722988381627737060095659346907060692352879659232747979696862393813764890292139302454317258020997218900812656075696591873637994818437592897558475116622413986125035989002773708349418630512082890070902123610827651085064245341852917114371789032326000328624031506851020256309224116620247537797314852154239417483873248476083479373460929795134712030161509671255441574046493371823737746877609038575139046902241921658299456241476182942905513063953421827108173311128543056633085181300632306384635896699297876402821677032718156868839888144079036831179808095766614319877716991715319131858895810266087844588083343582743988138690294476893910254885288265351743594891008863083399299630923755987046216146607108797951011961717887614306057350866655125287858040702412019943976004451025398847146763959809076258873544932097231809048168992989132870222392497956426059512561998016457001212240050587281924131777661188182345506057961953976781447534270845927774532744451839436505428580487977087600218586902756631106722823821221757400893061737149485442029542669033349774010541468761441748485927368198839546816454304954818774613175290025197269934162603247455118844375351596449746557610825344135366174472712765376393102513599780238763441165607654038449428278987815985906238072069886767905996189018345428086376083406540826875383149962734954608379399892497309361677280123538397123357986290234275840934645903046930486759353637400500360052932205242941523863485477514574331037266002791425565683590132052158100877163856354530205788769407237373409248100679472606117622397898974322095704152879334213515888540192682439523914609257869363994245139257688891040267714098932326582109865926876659952976354192066344664528999277729375468813638163179001608085510611564597959840380855427678111050981377477394833211538877176009334254770488164545538111071959489160924720465524856217065807331695767503661445834413902564508030797677428978203592111792420134232205713179756495805837535248250060009494661968714555508867158710976489821862857629517846311652446175777475262578404251062530044110773809415032025219014831002856791931303736183888369166377442893354122727554147417487493359751707077517131011292308810799950928656103622902333542116038938595085376381218021006376054906290845587179295925099163391829462124422836599020232606250103534505705336017988871978141299738915330604757970288922766053680471923974061543628163336225391070686046300344333411445141058972173591381874069865236837580913553011032865970111784175615318528144996252983796005263080026190920794244191366315922664845624490783938185740756440965755433855893807576688859871987018284071948060010674421881725183298555025971901108533381509495456096103064254904489626037947231020750652123512193462854123513637685448901018482671117277670304629213892043501639979091012315985616974390716024860865962146490448920450387217365724269682414495359553095808946228192915076164971208414479680834544845340875163380731384600614136925394771538773923906623877072618823725507618529465151565687913800374000237494768175343804048078900932245719821999479084805153395599081985271121882711347559612123034995277110647909571972295876857611724667683019733740752421271783623758418087022155638455699644320991345870027651394093140788630324970373329246087527667358048798048346777689206270231199599807294396707767758889678010079178410747596977332574363591203053142119930861023964153682608686313022349159761515618766367528058988883256646212180198563507985574105426297410084377962608789767895177565514639238638181890162210076531257945421126603459782737066298090543404304753784999845046903373145854540509256333903703910226802758970075937947723356035493210176332999336688316343518071674176445685654168951626234408804543391929352437954402513035420203835342755250121420348637005337193688080306588354868841167207846154395396936404352925160045181122558464411260768151826900478111789089817381327142692416495604996790805040212532494825729965545089578890609546736773141576626106523197559065130168679440938107704697192434080136646703902638383767746050720094815976870832204826216150908296250757387516277247003494909122261008200303998004046336515615870031739647337584161377616451591131819570631364273838211013946104787725213992026306070339307102329022852516353132840402578375009304416290828834737692241162429184253827841616780905868087150454288917172975670151118972131058311680473974085864506427592492453920232868020072538858196178095544126118564377799852310301671585557667688604133790752398414224843963648081608597123672962008725785901305704929947022819448910327081528268728077546040384280900660763518938748067664673042013249119059540704059120184240949201223292443341681431963327976873735414566899779800701244036678041250641623785346578889421567615992544031640375228715748311252266363131400484969242142936532426502750946527026065520609318944621864481505657446820119364001541055672280599944720658131557039034033158243614567833096420703163684463744055242505185899755924429309590334913422111845204870606721290089454829883537428107446446270563485917791325223581611803767955308837332532326792522578321271535726989211979278213935921467553606225889838287892257595047202778748897640037889840075968255359334019363288750382010721514455981263059597548585162571900374661964943021675363140188790042869379221145122676283394200618435080360660424068660041258927705210044489329832909302107520639385994167190049557580213457181366514982098698136413121969078065502234803974938805543261581045104014030521378252306848869913448689818499608662164731887329019210431060996085798555056920888085316691287949255744611216151792723881091330159086728931132685782656199541083637925789739144754598979597275229873713962622610194294612113203719405293290407513072278769927468383901372792100445980739377229599257140273719026528020092466022620401380116804469993122701057934810972506315480128477295776308192606085156048274346147563220630705412573316012261708454074481456523990943171888578126098944094996123090839876028767465207010138478677771960719947696049657953235346499996375254728904446370435753879565761470722619565371662177118702977087347930771900872944280506458598705792276069961923550262188526559743251939179792672585807965428488883430283147979843476460373541525513899238565993428107495412723904114674247888098723769384730707103706366473595906542016806367661515358543289105950626049711572775301562288893575507180827683310775162334760711896472751911473679041925167277428528053137492683911518349460105210715955480585594037025607614718625414121980345370262225350666659266730082840533745784564241672947374170517303145898387993013303115642797363323794785374969780044703628270989109537209743988094289899601577817555822505473870902599674262078268870967557870945399270276949886571531077605729525172862685247547285015873570154311021233026839056253584022441744254779642629928755412149289633986873744440142189876352655236576098938770723346642918492281490741011862865962253477518302707046947681339138226623991788976506966407959174492260052386003350012921161840335889659566459267001584147876204008721343142946654882796739801468906057120450982098847059668248944488061929064103922593975869338184656639978487595394261950819525448813516954462796418816421424736079506232072065436362940025127090371788789854362315094586237664121955346291619339362968227159200803036138833938218158854518724724692333474702475277396011223551963297754899178271509890423098094755587685918384871978660258370560261454756868961001754080434494213871489053029384667375211724154344627535272855275646159972742461996132981965018080936661995129737488871161398498174305059088208039340894837071931829500394085375908856889080584544620021697778191681630498552246376063274198318486210045525172794407305381731432491375730889418964905924989463733789258082338739413791281928053907984091996104863562345181815353998463982066253313837379050294068380102040418708183407057345388890837046924976758527203329915120564920922567543880855970761352264104402417181649546000079658910955741478190278929481195987573336691396053919923209275829412468297025597676801656258375159058487419056402286607673947551140370468982909733611022573251189344651724962823605649321214107092252702995610034429926636546119597934903919765017417791102031265932027098845020657074358954915006219636119094785540733760689100880512429520995142619659430596575243431272056835632412167608478134481643023154245059258498903448005920031800343711926316111258234378265611340285236287606615657902523481038504810131435825136457756898508788594128612574603023390039186488984002806051113525526443326410296877337338076996473525874376120109557894944985431237020765705635351461147356788587709159907179876471575594562510219329888417389064093960169206794843234382010866918973851212242790299316996371918906142996719886637836408259032520883585391706609708693124786141079728576927143272251222080184797377269084802342235170340014973264619299168960192830512644787085932805579637552014478605630316728155497636954917551478492303274936094572961021391416715787693911363255805894243533765518782727952087718713517544981574285450980426315336699257060524672793735690588767498247485695626324867134756901200940310398527563896549433146556093443035021232606846882388848067855486440275121460346077138944289244329554975923287457704828170199334098666202951482722561657872706908238503556286820708811886739607362599629819864865767181815759819604291491861787643408328247955832068468726760128919430118022278945942681690447256265964133094842026751453263697018274590027025430699492336795142640850513176133651809198823818686879394162004605501317280232755162962291255585770182363689251760174416679855159273008103631065362141598245782373643824444256562715669405584319773218840424476013822091814316159660492425231798770948662705489697303634122333277570957801648595451648226423979949295462392349086833616746600363529433722072255705142212895878508808500148448624612526286566456534966437984260532060044235019637379933910596611820053162878953653906958073012500325804750808352070424656559820335194447059957262568686244267577203358622692008657941446290339665911384633855014669756240319361031102978399412627623643344180665101494877822257384371730652077547479264230303128920130391295691325906626327793769529464103697874899332062317138193285558790068371039584191940162286260681962675532601850450676683551781161037854559567837923546837019116009213117988906188662719854278195739343209915341288571879052406309447353936180326110086349038175767372398066486657172336598147080674709967369265349940549244543732931241753922686833892871974638852035441329840337198651736566625573585182861528610676588800451782396087551785841402786215692495514017759371853098870650894103169792050304567292527065862760174361079762161029779190972592650998720044853995008332810263457650287855447528476348006438812802292829272507454015281839105268712744719518538486855120175904642534025632684913247132213086412680658689098142088551377263644479293599903217766337358080646438232857875428490830277346142370203404178474551645769235910878472784218495458322045831059316014237556230523990403058722466774236512346485249565721725035506683834154594566912521262026782097880589868613824045901565116623976164148167682000419353134881992053764957213086952292665049685687004752595767053507032953663121334496162461962633102528429041729597531502263430981011592598175553963667061875196396001625126746316168315002905801920246813899167224633908881368933532599579455170698515026754131909891304888204456473664481250383971440748691303956952138145168849210409672629673795317862525302265917561237353224948113291158133634992321451001527650841963292755021739846893578865829928334365675029546597618306203589179085697492289792429867603812657957618660831702370882848911727799943921579513576765983163319575819558839575863748242195682918346080128013881430728247048109034462956590619221390100356129176587596513927409072221696948950989453973687919875735754902881158184315586783437487098729315055937059002807946321657277984872316942664707462276495388125899215478625975593353504296648459255858658710170992899967500520843931067068419447026379838483357554713373220976500298735799629551307616285112455520590534450317807290570560913746798257673095490160628722435653495194618205799592034626037849039131318272451477220625096981935599332831482366749714454128018857905679681493726498896555180028181582824027471332082829102571146572696741275624641659465041755819918868043307364083668960500115309503203947457257699835393930637654385237809981144798704138893632143118644488652820372727685479964054253703441603202320655211978406019923644968660595043033874092901390354456623100140913628327927339959190770974516267002386268380799032633687389588359437006069566720162107016226661059309182713834590078082940264201430758313064870287160957372759963850012222320984802027379189644816158381839726125814177300850962491232266355384215671157384695158985167583677189897352791077095460236980228583886919343401775039933304774228155148982934114049121010119102098451069715573869890780078568413945793906477917761241537993022262436554136076257497597592203937356712712003891988920360438763210557837099970803372119840165351070056584991813354566301591954923870329918151847521880964486393330002639768464135772616794281352565059683121396933020656403890340474028511546243923092641746997786727670114672005369973765358696805546512908854906447499433809362142518578865447926243130131891379179921592000720708781260028601083416674778319356095980687009184251364470980293885521487568780180432494719114754753012753845839610308831179889139098389283232960287855901711600583222708328260114613763135712997707569640256452156933107508148182214457520227483022827802481421691470557803144785902352962094708520594380882374357122558758275888066400358970084862071987978749820717946411713389298407245036969247073306600948793073268946050241630626845856050712654627421301460621533478721787760375354913368453698222967000529154996447405789842596553633539951329612687797257743213678253976509516108455923042379953232325153388323036839234901861806934287971094451241647296628068853959636752573076368498952683150662465031479748974269589156969566244883545711273247785215673031724159136486038547027366959629872748961453448788279844386032280098074585338690029282284648997284554880771921467501326963966395034627697062222386161167770458466058743057056335844778726027357811655004817675861935801848547456431739470656516254870053905473511065766023451745302514787801271773683760692007250327453742842126787811614868088106300754340701061479678472431310406753949588246774815816030338696022293895518743090552699611342651858633101224347900044120687788366284220827769444755006225322548941816223659227608481810569920742723492444409165295581068028562727684399550838589212969289220336526506823996372562073887584567261474312953576487483239169548573729077712874273812347442744074526460104385397661244404947615913701982348082652803307910770267322296200914543138790470333742368042922279565537576654837860913623564554788702869198073540989967441997298941536366452965173706689358571285971754631259779315209679799851993716161903708634567166974038513788093046552896831893281315188740602557632916618900497670618455292312832646283784817978238936911244254225852261382746000707079824306837070816328390567635334623905949337486731795160357515624144982341688185679332139641222181863590706554122383944515516796324393438537941125792231445082980867555426049190198512741504524369815563494890193225225035184893753835889105610563076257023870545220504272605271210690304158646770900931790058404823339941031609273275561044517173014075942573475786044163214254806862686707118175152441263988646015520979474196152885174505086108482918916546086918583953481886337587114153172110354526046101784537690983608851811110936737196611160897860108768609753457869720537911526596076598172087720704202027520952500577303819296209326768937429829878502465564337639588428180747476863515283063047917658185226021282431953464917381621175101311897614936140854064459383747197342409405437367918613615419128631181556043039434289884252789478854727746388367015112973660234007494818393837037151779850131103589214000501246378688333444900363977445876216192774244091115577920092560083728162948214761193003978957262924046004771011454526783326134371503503427179419236276114540811656705493775219447154048369181220955881023837480654739101370165622667446098382422153439071148774244439776641762682630226453726994821600411792797898702221785600953240881100092682074613967853674643671193441343665557588789560894281335555721580611460673037731134974050916611282410654050745062963952069691662716900859950877265708867575070805842560195542314986940486498685989846787575501673373712617914101210719492005454029548489148972412055832150249946210518682448043784003806764022693627462405574241520923103337109612070142054906755429906938133293384960330161376063968830631018540575744468283248579730887424255581286675999646308804705878740509588479544749059163524582774014260700532502897808016251970089540429723038934252538051480941639495307356838043922074780668556360064792823274517501577344890322387376572216020280557969946983695792002840237848938123171206603239595845688583171335272326562749873200377665534661236969364185815271380725424123860448006919835468562803496249006571932097190671544196897763574620956940213769704586823381977980447962410700988459653787466976891207388161702089060081951482379620222332374108906634660999529028584239310044261870689631125486904775692770553417818675687964512181876211874063308591316616701256263018799688016333531164114808307872667533004689635591170801692765977317698608244258178236767420487619616788745936863863433029325063353653346657102802088825848126523315051033928991233724054731146000247524840074245400379507206529224849524641291522506133191284685163021194607436712010552051251969057120484890986967200589258662585749071697441963703076715015064355760709490071187388975807565347007222142149066876178886812526850319293656741207050362439005807445937140173277401062024002073595262087284147063315230794910807386596629501481071935209046473577229229232938181399401350397131593810382371776521964992269115143544008673165290760207919730205859944598042110145178028116731666400758578490849157316358227090562792217818244477762282978111580470763095319722796244710375106981661997871590977662392739475362070929542068348310519002077778696854771805182075910075473447520709334559160569106462182794448457021782978481821002695901918982891574860738680501921880120937246420174348624649232016011174811620283711480751773444216238565823062583458423151025968223534362454636860157776421456553135063387012697862922127000397054796540478738511332004127131271321136444881482795225044697945305219838572713200109709184506124980146539749477284664029080333046875526609364085061539924759282630378778101198200471535133862082800014089547281906837577818367479493517380539941661355185082497393904067883252425307552298883059167299100206993703295907163368337364846306165913537161575837686642411287674809869750573267518669672289426011119732287118029098963814397081503830234647620481380478151268992149813592469168710489316953215633783922163897270131900383834554061450776063513697931392906209831166835089474793624343114640670373129558491115441590856389944051977251289437551988589602809392221312434834702522389520387242698239349321189937416717090738956838516320437463363472639401864938436239624790114569652524008741281015253573322730745343034340518221190164326253823939773002403048785139800927892354479820985294720475938158960880553215534718748578912965553074155693266100163482820925178586809801400153969176057136076219425916714061445907746317555903915909829182394760979773124250205164636160239149432757530441627888253439628864989844132787023400002818623401750337858410307481656372581584816458668591056669949286129226653346156412801141442868220422942095697185294941766625049054963715254873930007698285708376230607812334003286989876743500835036952801238989528997419846779203727716097405425614900923062023101049455189355717998181741051337148745600147219331799727115832117070020023018885572227495565141962778857997792538947529400027033960569919172611866290221192236218275209525178952850394758015594493428418529865114206931107782028933261748102897413048458114389708846603116864929889558212003869848732496208607911850128291574281539546102047573324876943719654041507828601780360026988061534643541763196671694081172341013960602060421221176935266116503599671310122805646030105740706106880104927086292886403767517497012060619870666023066532498099182719407716150487151246686179629033823409446703419882241360659395416595416402074679187846470536767508654722918390256688628796762423868981596756659489342365635150988400232504629119197077969030221714183708556869392353642178395290748485681477202391856046755948460216338589933590088997358907066932780748750744666514161401850389435712298056065449344812144975019267190792097448215830023929549251463538719571435171754609254814855958040411037348253842717198887428506350125837596932722004928775433985201202190781067314975366043622691605254761410452544597822848348281328266661312629753875226920004980273844282136564469588416041451193631298626745220565984125515689770197809283909785338301148342786021616979602609302732656519688280845612598822744138843907071795005674432568890960495329141873416937991368309425317594852180818113991550391681125383057499265758089973560293704533386110931123410525286656293333695467453325271467692345773235514124819903220385704725480145694151480945943910007340117059867624158786466126531780701242568078905724158687706327062431002724439248556702029148978547713768960020201665209012177347356744576453124810399360014471962064561046404775671843139238440315902911528578441899900726439497530865042634056815777565845673590974868971612383123992119970533699802751505453649641077798815693802262917330377582987074067991894559166057794785418814768818166799123636291902171731479222243169996460790394638746327439554896816050310056696533956080138971953078445231224572148145986778674670295104699309441238508099166746641815307511463833179586094778946539059248724109529868313071541163086438719060689975121978637067998206178939281902771413567340920619241008188824500129453488765740581736494038862920642588654007285768792585003219161368064829707079261642449594617999314050050024577104919039691961427942259311305020923992870144725504017705567453559198329981343544079366751264731585094373725174602811420614634588064458470983166698727001772634367375018563084603771362615018904728183759278021858576937668233013618907304319481492769532392464933462740566249574885717160312761768020480996234659335796665979588734151485340689881011566647891760828802897801704842986888847326574491362498348560707592387407191056434331324458212925594051390760084203741870135557964793142953143113475866332652570036017487799152379479702686102257532148501929061131042223720641696229514339945729959309805489331130003611056199019903254220744872344108222380015818819148734954629447866959375181907267870418314254285112869371188371399699413316127225157403857079246393306184315461333075511194364509080294184778432460694223283909460996251273951249351839705425544835221849593890156030233813239924298831933140038691956144068405567190155971455530051485454181002357086706765784219690927369733462855752667095459150133780057182074792915537875090285520962483933226319444733383503630265052741554775493107614385730462433752944275884234446911213401343990184909536156739881716216334813253448407498881726985210469383574525714083707951576188706068882360727758465423976626464260808763992181322780306762161109237321371785948991760054303016082041161074784201876904107438220745858121686630404873677204335612872910321224357915022341655845029802421470177644633139585476073212900618713231582771970429175387401706630980342036080813758997926275045496040310076711175795798942559280452789412707949065125514374353551614298329616671011651967960641820667369284243809095114432971173699970790325659374053010806456280023357142504342362752383743490037236933960023607718221151298680302445141498546545137624432260482891755031719657441495025337385495624155796890244715163881136448197706912628881859898743402357115533708523952983917232964187954437142369471647999363564701494951763919598360634190715695241894328962483311469989858913742466217019130816850085616417567603872214834826919953777498761900271088249656301868622066951798594022682510810308253820429002947340173254106430849914187503169366756137811910427566513988072311513428342303315239449673415174337223755250469455283093825788320503718855636599131088202323297949570034394504346644589533753041122786838533103097130038825924720551317388614619477189166359756212723523971282424688528934267101587321749502672525718540838926632010189057804065164915605859155300320674230424522909410382677521657451203034279203649652859300247351380647525811710856327974891836952913011247948365703303885061305574636988362215936306226327753060631380334152795815716043742143561143940517316540073578462061413103571942406721706794142721496782998546790638116731005065731474041891068585101643819022569629133914552669868298722092957071663579478147698632480863248592130644839213042677018473970069569346869753280857596631514294608087760532955262080445014290659736165920317214821584362712232157155252186177303170660381090889812650715086235711680496547118594474729289604908010213781840066593680737848476674395903341837882721004695873365921226417690018215501282652667440263627711089402161045847598818512310073647088643390774354904497843354419078032722226674558259857708613441688838598644712165348340590343788694456321012455190401312505131296324959724442387261305973682123150302979895207223829382629875289277516211666244789242995251397514053375113625614163122064412703841156960287236217822313202673318928897156558637434595620063966907217029596277054884156806903782863123367406927978129553043281785463830899382502480513181278753447475511528368756941631581153979446132866674447679588500993668204458273771453302692376729882388905365812216030471265266501916074240151678704088959707704819926108003981010273896456841475168404286806798196518798952682289127834902525054127081835524089204164777180020417735277696189966313832692835628460750654619926066022055581626956472006232098174328742371547701886596788736971083799370126270601858298295278302081199511909403661941578531300367894337252824041846207416603109322448960771522713747345069280017997514673026029992879918934742053765540056655301000624972901531182879113688743095989883288454520760497953235676596231732006480159942543938657737485260171792880476318359795693200258385605725446093098722333687155828350985288273049745554802688447347433920646414020071027964535361130435926137285385007221208191479484139369276800791343995660486605705124532930738940581666673472854393038104087862959866075979262310686791363768885831491998710423392401116887868901015497289809625621782732759785994738676626315094242827120799479342601351896006154339680137406034076301792585443672020098869461871025027367917937885811416831203565131133859562647591947708929128841012659702195114792848470782684627146398318329663275364862265677814992871469732922181764022977242664213348435903101694642302293893284087805973003558409758607787193119912868617652321991707963422137489038330362384115284883615224107436774329346265280958679012589849136910487486301067708232580096933682659387715145075880338253158486212260138175107786016370247322759953356367207470371566089167749030104821950209237208909732091978018297130858533425020950247874853052952097568891342998806061815263128548712463052575478571383265333332630867212002690406300939808660946854888582850304146688890745337373036658464146015531001808349370744995858673457591734650610580776625217072557560615144288841556116143628809599029480994932670654202084280682220719536070061490078174377888972824158207348080504662188607437575968953777250769915360683470089595710509258001499992925733495828600734170532776133366403525450130175118048328709665856618059634973278756205215352034072370546794347622004669280775596737508625182958869057198746079816899264146035234585420915954033123984335315554292035868169771340804450690098720163220991721081873100009983158968263283136841956722832594014513099827194691005872794311874308365988003213274823050412772894968035072529783436246676194095319454420278799627064420587034887061424023756335801973332221843528442426424571873606400948954346196486784342020384713667455708191774057571251052949923704506853379408886563839851471013022858609688670135570473325865240537568252187166319541387632719942760435323660194870956132902287367423896986902337071277968240023481068235650873153492114099905636154877322554068194493621406909459416648334166138240780049131256818825930725817909127084780216361101155676297330974135671585891681189848758532999956011420641630950390754015330357336030362050257218638892429328263719668405647086327851875559144215594246523476257940698379915424122420739689741766500669622909992388550147234108039149994228478321683217419082766540850076572554937035681776201449880521751416185816842735243330609238765209124649588509327506670109472156894187222183262662125181319748478995659673393857042407559914648149184517595547529190383467997894303166689631164860577420050282025358068404275554599395142790176643477199689917308347528682607972230922518714676129069058300459391401213459452814903974017699721171214439269031677754918178585554325198451220362211309925489661314980141472369756404925561715654508393076299067869708748655159823894606371508166111035488238148760905745882240230261549446146024467624881054867742773597505491341780205709855128443114628110141385593651824657750508279027749954586875794894132153106945419117095608117646496354076262045907994792723447665136707007085561703842973371763538050265591724088724760541258469124096058267380018318321632612800946633289863801328576895772473448473760406711957778773885523375542464707200540941398912581589049495765399897492974635854619825224559928647555785835857728041857427395315171221154887404942539707691824197293330103997285400084395553293521747039685893501963626060040865509767000402986398611233129979999661806444932124675031407085856045020214509625945513975507986381413639043605143243756000925318348719258973668650332912948176291619680051891282734957923293327014455053537349484412227250624078652719945735566874191016197894601440063569851899956219238517958670940289799074064463201978078901905675565474876580429268737500520795698544164236102839668462835696351259066737075447831641873727130086906950150242748451023371668562484728613064499500459171608793133944431587129716494282182818488507356542008415482908866638680187048383869207285249250587690658708863513344485362563472603568400770742314491046063864757454023845075205103591974077349404419694828537806214352607647174379490774871524296042507879911513171852733548302337416804413998089189991072945744560987098348496815842644569489937214929917182303162589698818085485263392731512876844133740136217381706502686293571319684534362879370391596336656515939876102199221793578269020202781327008457368780890051155249738857714619517607553997520980142064218612413186477819500683625098911605284400804833912976592327943963978163516621604919495615001346331943363165941365437789439881222157602833090145884144909726553244034764492103412885602983726836853195041668835720621586876236202957371782592595143924151267089121214049234887581931488869665337241208214429336923917625058043751760565639355320098940818826349635747838195367852678841375407776899650367189837690990650326035683151259304124501431187542902226627292407284728469041443845637327122575385042028368538738301766666482424958041572058771127021229596478436129965006349890268615918586756028725552920233209761731593458247407227250267483570136502654653129634677301051967512907988659176729221396806905090542651336165655871453686690596653934811087582338454509448513086535176876227738727100158336665588298947787673706291184028892448272745775989265533950461569962642514308660950013884907908477957757759936299501699506591383593858522975711766333067940163525396360192288337762383757570560327179568111406818169001070220997494796998334815545223325488512242207111408691025624830762644430644163265986749071016645328155229539549057481129446133692623092829656263313224162861762411483466023545424760436862677396253071660159450691327607690135351675543329357767215762532284652400453834813631906636654730333077594808264641191698910779306792604661795998526138125627775523779772442298315368012969118798068858480591733890081431773839833024001585183906941085382367357265653225042110849908030740862695492270253533999877038010676621437598278969834008739984576262779811796608053886756629894167370380900685111437924900987416472009876114639502652926556068097341760980766235905273942198276832351785036884021760565778869419640042459729091654061217393227575976350213397681847654081956711809098949677822960469468942286067024644490654958313485345435877086648217277953408194163960226269816264600026679467799822906040989426917262702194191718229837120391889074815368547421627859790526553138446019098789278709013301820116874025399545205039282794427491737464910560149026985136876509940118537009698426699371174257323897121328656656244656827532293314847080011099384658285265091693567393881923679993636996645870121222247230147543146471857841346525908818555501588839927208591229326653102721663140118213886288765172110281556657638863739062974826325300345780493151041659350486989901051001591651903923625753135066112365794815500217930464201920250620243465759216500183218738096887157232903197851444304909472442865999438251889541813819497060893100390204069815872071656297547934869702869128798681667147529200520232813087599392638625019982306264805923119204209265036560040943587517021326763160289163267725184040404144069072632851418255810966526021012463198712379786658025877220881944902546732527723840020364249687664453333487045695556441289829900255303927031246281217503807388419993415855407926314862991157353245625950929986974276087462273801679585334788149235881297360749692970580407151854992547829025116863778816095394121705815211847247916460596906098614220115554063603331752240972030587862150706997658981836821202107589390719726577272438570190466074159638054871714747115144373288915043201317678476754119635411080206086079610678829682632292742636973240167247311736283548189525086457990584048688518437430808249823138591624101436693461733928019904946199559866227856054976758447177573869595174459503965991409054643817181861343216695247623762083128079891605079475943197547107649093883053388002603887709065366041738384648788263737827463501647747724917380336064372167298781063510740736974944498781442506391964198115766033898898835464452875293891240477933885536115984227349290112554623250369878308137094771954791223215542275962945745796035647168726247689139570659468019404209942224682745782292238835490248448813811350518554753597180213026273414510206454096679639947208626179299987016457504564564675179352833281943145014282132225965530325206335954922955366686357425888044860311477484907918062204554898003293051997899034320428049434337516734622123985088267872753731172886811799278748827659571430610950912628244712108548847223728811203636414048704183203637275397040839412907214410901440501023030063074936839212143136790614834190446204836848105662170282385709904785464236747717817366560900867452214057651180833786179441925918588576116701104125696817994074094858346532387065158189588151730398091052337385269762634503210447651416316778595059219639904112367551519508364859625260624987237840634166958853876100203456881298650490962152509686810051331828144362580856563799647570898389932475660640945725453305901503074769561616496651716536465634396535455818415460425844214829503726063903375329367447814073923921858278751969628014846893598737296767495115624135708428240647829700398860392155996165110840210661814547484972406746900959171758589370541326724531140260042392172480970360317517720921696072703981806943290038540818459509222291172242115164455932859638274267112615998485078363509418466137252652558045796294509867108592967739147950674116348381556540844359548210029329341955234052684978835318085842962618134443086580602477376198631712891020364812767979342759623498849510566639369339371697482921681422404031893136516849958539078472120442521522490192106648166471115428114190266310996456098285185780597752319329895796115107851928564612862088882937352735823436585779815990764493792285175969461410515196798600813409077798779197880960907985110614680204848700905761405352123929512690432018406381482127025212073874057726957026547967712461274587592677203639343634287954442972867430471967495772119816841035098235621615738957917482424774688989544183414076576259022688168764949096005751707723811452813007180845162048251096277103208671435948241370656105711846978861224471840325429540470210039968147763737042610647482828378257800737510066390379913724820293835605508143569508139775844194702631851819440818288437244038411832677422944468904560533635971922907223272447858093956924554824011403187973293547023482478349868971504900621381374191685691733269504796744503174363975806896512275990346788842287814586906408838157793822066741129064311689430134708407991675653015866516701662608855824640053317994852828126219417746061737808466786807322587828903464120390737604875711568322935644666243123138736075596276536718338135125501108928116277137016921425723381918050454797275913564149327462203157383588204025615531547361123960479682309060318367071658588925903478313840423788648305850006025239761211558054109644613297890343407322678440186679335470944293541954477612433023759959985253831506915914896919208568029655564181916590088073473660904999354677042461003547626058781811369196720188948474778201109344520540323672038968782479093795840887381994725370196246439366273808109493899971339288724745972530508369207695861720098145889566787809275306816802445453856960237745023065477503033235282604837103395747869912107010231488374380934763201625273801009348744738028181823905520944660778927344980266733783535730809174715162952576698640425846858924703816101099868276135303577806180851402245921972865300138811344933005469956180299109631875794190438694974693376790719318683056008411300227592234926142684344137920682086766773303192446035796548839522577563638832416831006177030574398531074552148088426701679367835490424257227516494407347232198492820017705562158130462608257054627076363849534455527016606524132844125327387823795509269482336406363003428101006807917759190503750297729122352912973050235684591422196520442423045386100848509923159089934943252683836837936178813961838414850510010076471014465829202725378682093100982421050132048588127872828741387780876090765558486813544749588753219577991827583834604290442377894142355890642245334234978042287996090200402668975900602100748815543255982826275747361041205628866003096401893077212175682046031415162858943419375318905018980644081828964176251791615690082539035099596483343409206459876892988800578107572540835624528535822089725877454157026156787867164960819774792867411867317307199063923764486435447287327789182496788275912233381682253320624946268842987372565658304343114274974554890426711758938797547851655532062375037765835263875833560918275343268234949117005750840902649515193117140850210687032874655036479529169216764899968301494241723727961675289776902177862962454650315521092759024836461492351675994433822785058227967954586821988547640652751451548655966705288480720606245629146211377458709372604447789761629803969240622017557883425151692976868803065922364168611514740116003343182851330092441315455111702559718227257395557418343426674746370371134855883486500101805913329513052179008050577174352852738040342793770989651350728559172943952950615240630427829773089174402464188596459852709639941862914904944939519175475754261668203724021836094049688269867593634779195852874908524266847466911620146594374198882588569166347265617542091157043249444621309161790445338519913744718292066878811821769050266546161315291275916984725112433130173247623953202073946748127081686529415366058700184198859764045015751262164539401098190816582696574370891266952742326575634393173915703970960657359174565654627405885598054400902065442120419717045905060262761071415601172398923315321386478116412456672386574427464315625280929372651401810842931083459557683393363831487735526666365506266219468426296978080542077939222184411581572041096422333566330974920676302270013748284377565606608864238953309633487056760394073238371501920810992919016348815646965318711038622250814739302255243946699446021364836658702153096172331559907868506383463521142859719546870400469557817901230464845029280332756700798812381654478723671919781472439296254633780726394264432700332108147425860851006253057249672782893766022985635065137642643884190118278524779423644575215059715996501866508061232935896889318110880234439261477020007367056008728189327400561321195374367190843218897269688237866526743873689721817318351117799617464804198918137832035011224840652637945625190883837502961544464694882723115355993149189795897433808340245064880980561575482579914730718219113563646135149394275285931099330048529462156469764016588462583973333224637326427298179900042064890981439580633491383017450334551796471751003746619690764371634306869760430546965920463587841668599793982774953072694600339323674591606003151837269269135275719645898283576148011211349653228036487771854315604445931740217156524562441309556934574943815925584143850032585350606312929495874216080427355034253831183741957930240218495238764824435967413594506878875215829106103029462450331789641689832853574911084978029215049587629288171360338160439786705792919779087894015247058479660682301702101682843962108734483686124977965046305490466318675665445486412612521176023580599489980511204466414328931090825106663012832712429699053237676354591451461527913809128926793965044640212327954994928288824809269244346713893687489331239553816901196294938300343012558167774732571539284761320848761897750460027368433405415518721671286702710664546548472244468820181337391624528618844481718906558241424964878921525880084900361447430915379584501428212496012034538870101872550223184048194828169162250500056999031587399672379419581924703928299771964338810398080058622145262944567311289234203385540027605267969239265624047245729399584147102909264416277375591051068098526389048432128857856451882220483296134831421604407735225229118226350421720613696088983874052278003765070773748777915822722978416759641539025469402184972108084972781985088889059532897005139249709262604546072284323556463042453253061750048426978708650283534767860612360448425476940634491052546665146993946921638862115147170420867388630389614850291192584913113607406490333318943992593730773179568074233640060350468073605710087690980581184097971040083728133033795324544084762732624918085039904333378204747010853692909504199117025325714053822908761571240506605943013052475234949258372652305433686508491889044811658149532494049446864612013496803996700010993163589499130381438278441774230603700914724082868972046933321639129547599782750138825761677649481180868522881138135491385914967614603585081604849656674499162574930246765248972594980557587564722341617247949856496957159888520902551840614746430222329036081966205156020132387827886256506243811715547513704523383928087514881714196443868632541452969622410332829778388473165337770044990519261242368313371978168842451515583117421537579632533274667739551508474241380595963424050824496529763275413225595793129126864413739626148184381580611335596867498038976974356088569574369986604365855176710358259559089122511094201497903653476244037173175502117363027998489077068199512757002617677811748882726526802378147863821002754485680930162871422184287954893088045425965215776486660206168523188934915023954140896315636839244873755416377053756956493675650926682644409916414151164771821460139358454004653309613975441127205753021602166276388935316227558892932612687894257677330055774472748764116474471298124979155631757842757085868427660411226434968109335226923047910999329549519947451475033475616045776191332016870628775478294702691216980898027668322891523488240794561171952427468683624741698263381962710121417974379369988862004848755918357139527550456530466628647609811966022113737184265058127212315985074262023137043597456488904119978496792395730938507087403136782250142363279005844784334412512820326438345817258557932302530420256002169766228303967602811748652133685569272977751301931481724056094730244390102069212191054990253121503124205263359399723124524788107323436290225472503803138613465525955993940789275277381665586094510610205538968715803879152667025182895002400362796803061519815210023892550086819434417412335054532592118495286666122168169669287904012111971524740025963213562611637067227749628727336400854272232980922741764660940685482759989161836177364333776437339399493034128563496230349556776320709260503755167610163246073075293104460853168647087402209551738608323605352710311959201408354471569488949821159132597948167398258142674450331027121264891701353904113014823935313945868156230733495311239382389776140741547477209268035143402196734145436196109347418560180083610135788181446166742674848060444425325289760480626973732392695468373519445522480225387996265942998859078773107152546860891357240588368220718973675029601981408573351810907122527294791719332415939632814719489194553473451924679311610683908574448653436449543782565402101819554739132344351561811833820800962732206805155170951748098496747875356244115828961468004512704032759958290224024262561689474965203682256698094882066687882101712662156501769069590081360716583797725271052492492441344549432164504378054693940687901210844743091738227682777033758398709645448393861472252815599107088223335613046731372322301941406630603916362976073162628279258183707155574202971374261082633600967482198407356576924645893985825488326759080127321226140755196705177635209186761943775419445666887117771622179275401304843658105425320966354108834393459664367007226726717312157573026543790301851883954748765627563649007625381689973557832593381704123747332106234879413599053568486577777026966151636607789888140711011674286025919090153731738754602879106465864270229650069589696539989816988404485870915499785343451508536865101576964368965525221456974333458042137047307712120787273835303967609635348977005139718361934142876873830824603527687566332229700780637379056311715139470495045700451865259705832530777924873736921305849177266178519713231576330773075577269870157634294388016844567463889501560848708246765495933451232561577522650240189736715680486502207720126313212152549810154629173873394587351931721052119537662178614288153477538926492224683679868908866023381802460885747970686528604683412052273561477323793618813636087398349409636384993510942567964458376182202423822594583759836998920749069754691660488840493974867798846431376143885006136727919470373813187307172845901286176499718497571805172035580576332445723043306711137366424671199655194231091104306583493190579099445139444003311781637015629534293468057039789246481434391379628741078597108461593171449371078425415994116479427215758272192715841320074520209597497344083850691179325972903915044581546718732659733824571966770548856488114705597969344379018266729848734696943464088803891885264462106141799230857669827942238534103351163650964910243825909158720035959379179719859441775728429237172763817993704541809051699744150309616067538648005820449382418694119884799762790630215840847899683525487912447079719453120758123037939649676895273662060414010225271666930950171714700657827973455021057929921114601963319326050265348840143845744906839627550401882178097489768517269848715676307827171821479439842312236375027023694188880848401680377990702734150068515821373659153260173478335198943780123567618242625531052484134574925235568503063750902182557804704681726803564024830178012954780924939377243071761866770936194828935556419446223041578638265522593979810049244663297469910419176887943593862726751475278359015460570179144528324203864010314232033403909564164156810549065608389531357206166532599297912783822499102817495283022769508436440077396027994709002284409427643724330946095055042372985257795251629074577148882710587441029789686906687948624258967718460467158362141135136041774106135905869613951118102302673402556665193619631227421412369167283529536345707552547980146135345209386916625392078611791173244549172168831199047741232004692084344765673034070861201479380129789507074325967613508494707753435367707829510718950402148037142447714126611316483926848652878720449621372100863021310758233307408054308438655331081972338890344564097332644307861490943196576645160814924451706620898081111278968830552662220554555188129050068285548269745780498058588482717363329479741872828648563111959940464942716370008350468467693538091663609304688683970657642768682745007758075732799321476626029743017539138970937621701770260476716171712150415742123152575752406261131495122555773232688268468382795992047275367258164356786304596844977367230059088568395176329973544647364052336072118604900218864439772394696589663474393253162317707664884661852510840127900204225348234304749124379729224992675745934522008606783276352353514593004987373407005831365782243948078940759357973434372239571892008388010179022396468374089908346326674520417035533946979906846983432840688127687629925004521820794693823058058711903345020364174017743752103748281291801658660466117195040005949397460403697512151750047588870665235469704012524665635107011692388012065978602613193262055406893707095282023417058637029018047248746254168499909186508149614679378646872182179240870764461174261471055282127599879951272111384735969757626384997829761617293550036065881908165923578703433189228118306010345249952741404723753678420521788394193168075382717927897770628108429199981385907315649634563077903520022810539385454958801469072943846124882960713104646149567658517462950957053468753442705813272255726943182356517112274868021587526834937196612065549166939204777868355917604824326675805435079646478936529188711568933218511077929948959267337212236887270582836290240086802459894877953501509586392414914929792730776541328480370407111089371256167743680063510197456804428243150834426242009371868173710414177425993907613174178825466906317915260640522748801078352627308812389586914149405808583716568800561466200035200887671577254984934666952053975434050250031857281198461647082700551180844851657238653887867360837905812930727038578970652248334963640739042205248681368718305054618359813733301004845918195311700184445882645441333242523711532018486861847535664613615260578094381544385110852477782847687717485012580616007453853287801604197597682374437413520300666139563045924828028335174611143737097797869879931699098796545556557297428745633533588682101937032549015144041731142649728534202003967631181808191849412662014789417822009657524053926915661125984053375688112856927070967653890555245905040053629502989069443594587816827906995341059158077240088919361676782425934014829605485211859429805841164343625137774373882648671979712477522722086777776968853847105599577955597048632807930770563740528099637894196173063891452514400572606520652980572002020624191656504451833814581507815011891703726693630370557406872899198852191571075788980045513081626505780288482608500490867376879923980185724813829927839998334121525907485187567692984726692649845457932037645308509718234280621515716865512763936952161137389513641147111593898860546599106964832121554568140063464125087672947721245110692558577777503321183942839821557103559130564984774769301872963646470785847730412821870083033082839463333001335735561548384154774224427459882705927589673999290645878088354450412583888886749050499658373272910194896942084858726276344743934073314979254848620244746067021428414484705945461517156923647516393838397294258573529414019754633068275761101123517417037709132457184455552127802893746314891340440006695582380121718558105984057555581822316680143706294934927218586962232898484472403222595566801002094372492093370142692976293249667522569974131548602920600702398316445140798031281405186597792533633962703538622500145681411602099022705915199858451241804560334929612381258374576310123258907321409374365869773050893274313612082315699004246298928858664822457659304404840158960078267789817502917479803182376056419957767122579971099050121949505440617843914655732593926542400985369729676146656693265751712958782191167213691727092835451259077318813034426939897508575541455453625724043711511484219435987168776428341247662955923170519577398715405172314546419908396927399655605817989347815346879916139618389761181995458519000900048389697100049956834340521120973598742381386773444688385084862723454127257335749160727877370477020068998088255760496745532684891506413652582248901677316660334535322410801341836563684067610454870405299791381304533277757767013098872021767684993116326167164135089234033484334635246653514285484856339480653309955345620115726675862687806211013778156395175843527869530447926440605278018204325788986360191415725049352633994119580939807290803214697248132211509405490382910181321592825346434092750375221764393826942316730844912294954120586618458866818230205213447303963593445259109993600334178113901922686290621622313670087718867232900174144560116233669899394275285377309102211816766453396782046851876046336742750868652291182574073187205343696980648043355167535532073474798431600495681965001558895623149745792678530949741278246258720295811425943919916679392409873526440053759302580505266206113889849373866073084100779112343166950070465527581001306918962516303009206283697650436341550362863965163376071564548354666171879985635537732983317190536595813110753484270691702131164269066372000320957997698943932973295830765725516030820000479149884547654599189317694723909335393206131690317590541269501057333595671672044928621964687051029313543195353927425173636149898568244896942528843917839640837817223987322034107507865763082488959126614433808944041722071078897773372477676724888793529425882382380068957352353713061863851809282597810466488054540683926392280267186702714736847789192818631747990997629775920460936677327023232055176114446694027702082059781771118759910770352154043789421297525688967461307126876949895458168950949402966500358793710199446581333973286945137673421151749448813760013173346728739470806707944267307234559509157079488367312672057322128850871950716922840439336098395002434980314541308808281740909419846591773581921073513236656298737317482623873815730146690027996966951400695980199880205163889663597717351565315969989083626445443963284595887624847119805253402546015606477570874533784546964516012878464862244303894383212756162133536080811108692695352914473553975929433604124104512382246025944259291539671129155504631880163722317556640105901695059069368096423301096624512164195284911530136239174007967088334330601771963938348847378962263747638002997383516724191450229827098069131024688828735801964707488210925603974123860311129676181957840943191123727732865580301782317914063675718223219084377784489990718453838669603067509686208438978281191949471441803046046201635459256064448199069830381218212005647736086654407374851412909989947846029927215595712115977927640681518798931125380144292371210150486992812904056486146082835019548712768239184629753069959601049993382756893857925779068764797372718614534494772535576505920288324526619330800762322840297110027377687701538877054709960438752260780168426668398497445022708025401618416481243274607678300826381174289988734770720269236047360963818741745712916601846102117150561462646960673128033948932001190258985207681973621145353547142749783715988020071295217398433068901059303923673005388427143578831303252552423176080854368172231478470044935792083824682396198693586394650336123908715600249278396678998674699585243567512104311068172233816366959275931330444385048229905384326209952517824888619640061068219971214290484335426276329336072921817817252576217885832925137749300702697443217387356095376958769587893636389398305418111480389291818197216893942674418921764729116886374302292685031733540856845440357532822668209138829613050628697541029434263099927807306502916297792277305802168721793507745559838453467899605735136560800928149415343376630407494376484268377162729354485995164260813195283318904883743324954422771162803132179338573499117424696425993785470848348972911758488459080303287223624824186111995759230278702803389741854720356692227843748305166246135165141910526923453852993908576006560495252706268460002205622866472071797037657698108684088628843853441133633837704428406703377963299584708822956046099568816568678897582494026221372532404290887032241485018935420039024788090807701177300902857555894101316402873616992595322986562240970081923305585277637280043115896909061358422675840606545384977125350048291830068338009108949850478849736204847044344812903893325414333105362628503077485548365948564389903391733324509533874508388628849818967112719221684715824982306182797851372652354164821740391339955461912774717589123858404820754399555009112073529206570064083181374190250738332420475886510206877831103469750456449278219564292483325497441440365344686872536058761556018570741213552027261563570685899365782088562422777183808372340802680627822709904332979480262447362053532126610915339557364399289893550690617941576963172912253741851475048176266440156650924672099395471267916228417294431499976484805236232540858630720078096610004175952498464434315510156860675984827025327148787587330589125592277988987388460699981666215767055308085119882675788195379791664763612874226026917813201965366934324933988161154286910453435312112147031181216846176651367463282717098253664564475156395031547195444438401252292866913534087498830197961657121261250133673830155084464497228006571159988479351472480048719752906136788207671071195774282428753437051315514801347446645812628358364717362899305233862818651682519349641285131004215286435140112856544523794276372525715658844391631427883465302670335866152984889994453852861369011582334847194273546562345571486015961197152131907841163952535469182095731481303414501895771553203422441731408030672521225550629822113503220670062784805879815433727723685626347188847259283428151620973548549676719765622633979094975211656725560178044158377487486954937353811943675085604286624988358560796524230516650112879672734544424333943942365926089060922426239958293965443649253451651394221569774842610232938526932731297560556559946873591707919784881693869576403978029332052951731206731796231704508952910150586827778284339967125658359598345134941846469532843407627705736386780901385261042224338233892920399338227851970653805349919640590129022975105500512694709996352730696536454072384678666228662379143495753121024877025507218213210272632451111322164105539009973677076004621315762361901967646764228064063288854187283164942885068018074118490823023088430069640220323672136328305732638974534908781169850157230735918117682413837358887791387439405726399299062899983142785770049437518221851686892828541605957883966981379976872414332113472282060635480308863963077299529839568102667225001793796679158043203975472873285624422684090076921087179923464023950040501895487529336281270076422521309889862940467541542868317152292414991197048149882263579191348561983910187532905744199841548086265385102651434420310067550001127425854618899811773452961288951699678381681775459774773810885144280868534523497480592422043723639290003433496908060627167070123745697070430093711760349754440419104811851569108036500357356438070769502996364069056224715163040020284379993164712296907007541666733691635497582740775532548761728081587371659365768791311024488394010005576500592891208862330756612776412695480924003129873918326032982539090878501451181936548158170010487911565883618176066571012900109919934009394019305174995936984724873377045267985694193960396007336078890387089648501003398636368845894063172862364255586319159602631732708352536058640744894754985874103950453679241673332901933098615592434019451430289188495367611161974463972616653051722829235162549372185333472789864446211203982879013950745690623443736457566631900276971331040097326606258962157680270588289182184017738560082181910162656584398600261970326045558443248243628444523622118058849699705374962983369596696121272471193137761044179412088968375784236498165046543951925685386540186232065898215479630051283851704136075763300768182395029652459562724033746406098998943175806763723453969035339782162289661909565051029681845668208391571706729003962264342879758062101879837126855397949764832350783300645997753709554639415067817612167544270910523598897321670856272300730815729751100766593356184889145079862253274001882761147558780629719507674131144755595039189135643640875207354273037280938712330862437339688638410096779073140191389236809257550676060089322105623814008672258422565861369580335618680813432521473941757219812540038898831311687416249234769336210405189199044098879176950219311307465160250374249499727774249710060355117558464157897478622009643812991462983133455277274365848836960108449627707591451917426585525674852470202545946408986157497620031112008573429347510258392805988224888254268508673950854997097050542971028357616318381985216315974819097192737511473040068915576667919956441748037359702928406802243467592655054350706924407821377474482184011064591876727612789379101254789809792818320314595532021075649643008854206766471170810395180730543214032957213237928112306173048854370067207461943643182819852841300382989773189565725392615437502364182351274141134560494699539600551120389818777684057048234711367251470402178184905310124552309949029432974645624427083553334746436673756190753981660656558887837151025811256168539870098525484791040110251854772423964638709194886755471392480752702046741405819831307028742991642746299390323394402448787120285889000402166102316943957407608185405469256127023700440700516277188066151766212236763526105647374294536492158271508361730049124981991060236921400329873322072401987518549570233156871547284018368517983678493420932620917662319985269389030481545924853686859000047946888356076461320871377401060570098346701169187681760228622394282522382650959244762818514739529490901945049691819999198263151769272527274468895155879996351660718820208746038468788617776619074566429126842743105655317307179816066201537154171950580485003386080791664081821648855723548654948064903686653317982143992023851367860847927627319935610643614072752777664926584523875973759265293413354629828617557904640072881742492003651133573590981267390862894438386990092888733903541865695499801577754619219149013223323216846477345753742088164947319845321107640285309643266178234469278868042793102537382863198499081596263258203079363331343859477253357650991279250872192089163697528223624607984639111953609496192262568082441135829371119560292237242241736649181082434443968335213786551319906296565444727407663179579116284531923564575584133865828416257743544613034546129663132821466660551876202251714769137620239395827595242819437766464912713458763799530210337495945976782954241622704566248374494485574972297795082874992477445521541447944479351526335400585933940560485653505500065044922266291767919169649730429461406250918064756765535475232701464505343160717225731301225116307543874589083182245913700035692569710168435568412262688083528141158717860821399019571338699767257723281629340684573535840857936039204232973844133581302614910841225777465115243664099606024382783319307558839374254334843608813553976439689628038842754068797338682111327326139840318260459011659843574396166948562667384652923753404007701524989055383292145088806962213905611413786762557121626988171273552613669879882916081566241204587619068600269320333020902730950659852518508818098258461244138258201114535657122259422746642001091714910969656585299377691156850945958917615711206831479166069935227276712473465565890272658227026551164633981281625522175607249336707214493543080004846596909128002222164221929050511552678168842300281770531205123499477787404232192463323956992354104776645479314155319403406928471705756097192769570651792423505372995829369482905829272500740952925871456817677792991239228944579662239593863860695688580120014707874423891346261438528719943470776455378075329770752957031081992228757772563508088330759285361553503481974444427954784597191112853195973440793600018503603813079219503393340112484123220863043136700107807937184952243411368046278565175624737818915257040645980746034906884782230768299174882528621647908375914545348726960498655975244542796252981527985492974000577989150306144096172311276514511927631887745405242335640295728088088787196006724033961286602356845361929246293825039622692792764306809526858517011767268707739938801478341411972139593065451060524229975354086356025782719228849479103021459506543950081098244768102765700360435856079028758332878357841085032648141483136827916427248545776461540103492860677644470944290426712788980915708653371519819515315253807645938538726681668912886711055475404781524694103761212855592673262808205786885125851018512420680122822854771479348577150376781159343650588383892494545749993044960622857983707249851341163946518854761161827437400125547582798122308169656100084721509935574319609414706706050154051321779495909389876754455140507350061822482181705694403682086606766157370475712348145598331944077262718212532589253452592820771850351241278556298836084211431720185616369472701722494081701500554785921535271762426380074286888690152597421093351800337590635368788236837174984401204901289712490363979577466568035346086495743763067614431382309060612884404556183317639419959106941213932523413594088284524352245453566452367983411932700847971576430308730479488865877086720770625848905565348518688499671450164660784481695659185319323504258730300137016805544888529963570956741691367710547279903044112036759816526887692926682554311478969618083425698266870566348061455797302483912340418736427156341965069201199602256069746859205282829043475568354394212938366928052668095878248566439635101235391448595599750229268793275704384318428546756711395116540361634644351480461805483368855552795855958421662726628199486444565268695186375284598369197422468844936083498597442870933013841842530620181601283413205993116280063112566072882734733939833184447400170227883744317644207649463647617389910611779802794820844315342762073988084576923456329333630384595621776777119730751919483006819587512102625759112119813348295152470129359848552844766133896956925493162883900925744608194661813986820555596275010383671952578641587943971598935969540831894384976295529249130862881098078364147259350095604538133548758697930372336135746059370539928904327378933925481490739056857549869270517961061569417816575838419224439690226878356229577517679333705321806922834909273890519275468804487345867807611354919991597777756448848298564433093529425795459513744101525969100201522637756500499035951077895227140937884684029701033771737764108448812377849151061064941476344004075679977894625870724050122998859225509479315806856879826409852294999379989704209302573453412385745622183298943552122509527178692012168780013512590633042399182978369701712657112226261646541367945804484404061841821161595132552373806324644627118785478096747046059956449314612587238545646593545147678924583719060602429175159083053526700992141537699054974952373422759785580350142535924368925405508895319689997438647983936268393752274325859817933188803829510393222221030798886804556212098932680603919294224324262639032960624159922196862068919569131490435555574351579690414043255953114141998474671208289775103775472664957930118272810010096633505783941316717423084491843709062020604668775089599489796942134334488177815394476865780729868091133120515934657050498189954702261979285909068507658303489445579934703293670158050353235052247614356737578225695965531052597622716196785256827774115423928544088499096901219010034191673820363047489012405621194778464316048231493736806054861984837475572289782409875107697852210202522547156439751096580388049734609100436998272882283698973076277004152760319578773885472203024322698246020275900321169353691859236643245994813244025790539064775038991926515310747227013407001749768010851263248601018752057675567658803535626799376989748366713441691644443624334594579063763482548221402045894570826144697796280948087032708370969467835287388171559761369666663694303048221360755505751791033414705229781941777268615719147234451368175936353230057696614725703423152254173222669896131940220487620729507585966180035059148774197510681829294413045631039662322934715959006396602904876511307894110949879497681476987945934444969863921326563524591349414361521209175087950865195181682693836715141072825924171818729235452456026944437674571811936567909500490078729355874112965352684661600324696100761473840971819804533460959520592858118858342515284011252030816654153425065656923588994722410754027399803905678815695342332109247577001496618565526348904352980896567096345784955353400582683094199219865008657155892547836937977601650207662915024609755456542709429544179011216780111029204638604168128317933568289338124574416064832804112182794284460434908889837268772045191406182391763275325440475795516177835296257092207454786147833293895277838609299657649607698831291496721589322672211701479789429445630909884304602655180994445141626981143375129399524287583818164824710596350038274282526263938096938679347614108392949795827356686528314558930158942384523869669686792971638847943745716239552518840959266194962640039361485018762345474860946786501562406308799674709658961262332835066044030391834891763463750322344657126767776321176968444960890599419091042897886812393715714469366177645113474831798671644659836070374480670449902130771482936180114949587283568242931294806940203483182982057986233008441732635795942552297834438582276614665471207934043628164031474875074910475223259210275490713149196863222233088194377646362706065934231800117322889594748454035278985256967033595933275623127277659836010541632081340390313784804665114987749811403102841219160297661158634774934230759980645123656370473496719607901076787658279231088847897995660292305077312623708162233262990235874624122610328549588096422541785374836180874826151542732257597338332946792555944140022899319706367726494473728311959428811108095473638706610012002708125107582449527753205753146126635192871812932392194014377240974871780729905989623380641029843011634154004420268616756859467427966868819395342247129458838931280961175938508260434539891378820475189464320409723306277154719599556420873022764918093832301126462835987537027996179668857146123348078802641889098735527807201323684325608483296270282376620579896834016566110869660951758381794190142073736227051143013730463582355806534648460344558788643255014517424159723808338690432930660482713775648628076573260267092051334867445773689304506744944165046003032090567252990313231056228186744717752547785780880310505104213997585656813019990020649319182457781400583759198084210800064116138804224315010069386209950445047771798034232157091935591730911200858376218532996749452948126543703205269725470531750204194750258069450380941948503630065056316984715502773422626172130030730731609119586201409561327800093539357788627937752494682950414418099955378839794375166001515629490979777484296895542287456134210256444515360940814578568217051966224302693847071107457368906757230726099793193559156825879813121464139810512504571436814749163885382588478377575961944335688968541090822558156739777066901549903058353622091693440827320161779015739348286150642662961829123418749198312967754915004907428936659499228524982694154701171662901455679194343418370811562716959999363356690499798094899630153738627224388530026585483777678747966260580019218228316438647483793506723119720564013887336877400762699942719930083115204918876905845199777415413974006198796356206300758498451125167406282842737142529286469434089038112762635753240620096354943936299666111525507115531467745271534009249822455661932823550687950299388916433187689134214310670676232352616731207387333794859742343882277572853667792636589413099613167719066677084320267439016432041458387377039303662936685612516144441666299114544629524739986375031865358818980308258575537882393186270875291147594788697857045917448821201816618287778338000590094783001807091855583702547664396602105466325674315969676805506605972873986399360054251075977642238189259783909585640465601341309001881618888812649399240847306180402965979613636758349396594287242193822159620618266350433846319546370909075684952116915212842887014139895538928687276360848407815091193999945241613137537387163640227029337106167682916275122361761391420744168043186432215040265346779537422253852682833236647906989581278351446575520920348778660870738620980043682957462749492047609294695486058698008069783117765440468512895164556194669642617321883891961898132917088166227298065702986442365889313712909090324658633274783618704249047619687751028336803213119183347533253958738915497064705886986912366775154492150580994867678819690515994565415141152204690468419189223657924281726727916154763978410015110547946354236178789620972266617854883861814160555958467258350347934111380729066117684123965044154714469640955963742118599337301279224512520139692938571901738872999420981610821419824655305338030231239802058370154696579518351372881608549353656829662728665924002610591952348674276530616936315391585348336249174325808056196363135690641807202138240715108681693499117557335606143841720514825662353044070863784915974910950284349330051471783507636266705269522723819321236694648316636941037603241877593701514047972199988067223388811879598953798725215650606497811010586519019589406002848669555603451205136223069261804638519369473082300737230192681587345937606670552122602150654535976989196459965938317248778306022133427099148089689417674539472981424518443728710245286345241972084088812073570269543733246895893896270289729475468014551830003460904525442162702986266085849464485378718646905310108581277505019342552743796828678794392646377881708377190234015552046088082236368357427795248592619178825367488881700454469669781236047362438770664462971079062415756786798460559391502363800861462401173057873930438819326303472227824074167485472018674131283409309242608783762114267107937803658401358349212444835417686097143027534076589547630564418571353850744857903499177806750495529168319944713943306995032367798438828784588983050285384566991280618447035360164342622273169675529447931214598105075473222783857083227036769438092546134902182737002423601214231905562074677700452428207819962800292684903964313619976303519786373116507792989750423800578138004338433270421177831408586655450315819948073995177380048359959618625116193642680022881517591092546514221615210702010800980776257559170392300413627680104168198454803475783638283149558242495824449946491265327389213536436102300922316438541556692867822804068604233531702711052667899446893945212585358572743698935250727059113562613551559560285969555221562313816513849527242896346651839363694382817967572504320007962519605869387572146015237342180632441591219389138870795933558031761940140290570437909360362962595270108875096832783865001229771490700795670927929937195238047322651334945742477482418048772182497577199069128470123716290819836469585143866089004377072084660506159571427082795841019576838920020362088029367874147483792507491634177854010884098373679041230027484570337237269732104032275982381888899642598527737385341829083949451964464099288403619620177423993793164608395754642375842526107817575072585908917280146077019760588616299521056287475355945015858488023410782018435647669270038474951045845629341776215566129886595299568602726695770586998366292900947612199186599470765041331649532933230542274061679436188884156361339466492559791721007849271056998351866923556923646093034213102455108179105169932972469084725367845845403796373953127903930541365355351934777529908605297851631052682945700731503685603306014890484294316713826240999911939210072713189128314376962411705308301066797581492965619372981955921545736250804221306742897146800561620913660664480594008045205037225305261223719337839002476242386162641891270183322226862801876074633693216557548401493337136134856019604539168399038323724786848039482028422238047481532375386216357162226327126728831218786932033606256124311340070811916014703897277271567304747612276749293959222989686828831602684336633941568946752383898079716537690228898552970340614491121826801002570968992074564965947133632712978440286283479740127452167998249156194947580806734647496684615194131514485513992506649091837915787860430842012444766197712856233110299522681432558910296051551188787448861644084083528647572263652740633394139538708007573899704112779975702881500874179650381877963572743090520447937214789874916599701979209384036887247881232385688393502142722206169255451300292136839685354910182851523320247283828601832786703545090587871090968234103408191242463056206771240172082514298388867715954308279585879930043425158234148461975494639656203554263487789548830862029230890603490469617040276626885567624606850725039579945357327466217106067201160692278947319381698740322329985493060023097689845137354396918236244353817717626997479882992040983464551013588089356883642533032650535880627048377978680740340890395183401954169150837759681283261731371079572030843159750562468529187610930223779414701449482050894151716639182113674435168632524157825732007265717063838787440990150631180403202417412618604494735351086563129381677754118929425339836787660925027399586400989632193751571649642680453311007163468382855926158906660379296815356071672445506111860354639262330978815427740874263998671953300048405438062755819164519274221216453361984758914524560612835360064185318207536253179184786141232869481518832266750915673331344244621830137246955106926923067495367738203716705021629940906364698500685078348303654746769166791497432500318497913416747234747474344018958682279008395431177948286620884926724549265022397235315210000946615126768702214242272829056862203981068980923007421977657452258238396002171642039889344778948491774099387527816259462051244736790132926683483419996116104158002267633968190489829804146646150001451764536341729653174499704813144135292393833093321288229163042821019972349494144987774146001123597866148623045833531808374469219711861609669661061802731810868521959588386106376052715183675335230261236030215968410826654835972820001144700756008307633565436975678560755963080399080656066147787295302635415557089239620025821461282182344876727447689007492323316884306450158141625162711851477086115135847948886252437262547214430120529958608390414442710234864636814737896454407731464668470883509926567708552352313020573805975074825004964181527912456113727106614678444455602027891030553538132099896185074961109700165403367235811319473778882412078582277673442944069957026409534551437951751804435680951250681503263641999265408512545110726919304602071357730613675031106440936088575177250667979603494584769651210544654451565771953519486305933826119652228800674908631882949208142984330987573750227272100909219412368307805057966926965073747677368572351207366073702436131223685080830660025963043347056660978099960290463827460484656527367472501320327395411444951834881753878069105207108060921512193215322345198718339923589861964594888844813480497043713833628275990915937512986301850539180473377047817868684487639631597244054711106831182182475529051659452130984627453215347027076394246916548201913199056581301314238951924182528564004871954526228139491842707120512817557244660162487939822989796911176367076165703088762016721960183941529545718783151504092768412640050382378746503437364308276663602318435642632129263325869408643964486802962863529821763934233718063464923932229202630436421962004385732863816266277101737632849537804334754998162152518014699764136769327571161273203728098489448595728409818818649061966080063624351024930448392737731615466561885987950517848540532731978812679456403296305631562211753994482599566987233009350202256555251045841673115418393229338149098761630074015443491203845992158346600324483853774437704626796541029355252899870907918370427196271106964787186066076364813065068812497054767709715808410716225311044223139932099108158743242936697341007921428221026263491625655863175432385552326521207336652081763211625349071594413898861872188873069667034906526903201686839877016968538262088504430382645521444771325565072132174712392512868906872495228077814726954590647289725930056581879274071209170951396558123063032047637505336204322851103482509796338374920558982290602689532329304595435951007290496161653890032670070057842466763296442640357729527985491391402200253035177966365477025122319899017071402105914790180800928289812090234905022893220904067547858675077397210368979904771117593220795422375970902508784191924134363449755430246802569871999062291616448601880214799936297860798759998413947814513066583844971956909551551507266957157392188702661461613801051400694081890050919496401138848641758756577725727536024353262547012613398836552267799952872487862029090403208037097176352226717728893196535872253742102387657390975934316794699248016163499528974732340352287975387582407449873220131378926275022782348763044109709136277843301616468334617678367662961712935681145477177143320331826252761398858567120608697602515686468261503108027851401825753659086721094331853666686857747047878693954136075515940585690498748881390897112383169794996875494480859933025977571892802953553603188911615742189400777354942185315755573234497131058895483466305847209904571394168354685263133388786012401667592470129596164489863461501949785886815493980532817832572932859981071007655629194250102272818222440488447738679632484750714090673672125447417327523584122911367620866145468462464115718096201594831586693264506984116268002740320639502167004726357955216558890548065491950857644945305603757581439426267261388286883007257091963769365063782137228800501445133960745291486049455717986541826405563617462095007847569410407886565232512206180460078696163042092600598982074529703227318186435942184500953957397895698536503622749600198859671167998030912812040593677369026586636293143324255532829389015705688296495567588214695032863151075091337100570098233460493363143444690044100282590026167164045126474452082724164154213469340925418384928620670330611740708159011582123668369470159406636553993552726872487245782428752734471451133797305480148549557680087969768589420594769171474364761283520145711879798267351114619460547241014276572958206986884789630759273299092923117289340390521883462411401197650166911757787049541016298850681919522181160113451239953013353714098920900730044914381167900478655556882594189894411216764457474847554892722851862499274772534168341692248967758513477338763427310268897071023956183187889249032284257565025548566369236946637684599142100827862709596677185753906072112861926406638565088056068874895931751535305084655363717722130331056738225401237917416101751359735456858257966712820578749052489682301658544227741802827976821102380585843991386854608513721547932570920201528495645741686150357582579738107667797310372125341691639680198195844305178165660483111461248875972040881514913212877574614150373529209510039041429955902897680612913109036128416659485908265295028596845043972843912521231795971320725268107493309452257068836094185022638653208730169276581199677312450153079969736479990629662607499879959375686964727404735629852580236589100906052871571499419571496593168223702659111136233827320768433044945432443722321555764959929936396664585589446138306856354224453083417024139177732641877097353760449227082547245729470365232021103819451335831878949508241662625330294140453251815225458934616725491428740342039232095556087493743659629746866204720873525259445290021953194741961877028349900420444351718186146009709927932095480649512786833451334018830596222400712785598022326263462279624405453006106094948909842740700287315033417224582359515968965699974720247072150148609449572806606181516544303134769714372062459411399204126041270796259418654743372322902486742808546606571845139608426831655129363081347148170132541021223564477264034611507322685590870485651381073389201670403026618516110471787554381772130765792421758555321546017760589023540417202801433871720782914868640958799880669769017444887941556766774342486388644589411492167449043362762377055586814065476116349860157384856867843214348874798691817350616619823436233464378005637548536529107416532480769625808725118135929670874324790585426573040433671875404267442086469524819958668931927185997593841692626230867926057586390558798078836431954430029459658082113613475877693359476660826320475881230391989277418331728864147620515209399623326174117808504848792800448744139249078440942613450702256090074931905016224612324697281313889905273882044814098561974379339582595002906477135983950826701925233793705356688415871523539177254623621766291639428521726677312163231385237862734612109481180017867206546077606720250057803821061923321077873502694455373319029011306624295691493930924410344699080343620439115011004899848268546078231501967079285593213863583824227757041080396811659602694860916586098918120840368904880000873908672988761805010576405107099206065204306139622354969876191230436286890562398999671898858361792628720048807776814398051336565644164992316583809896429496704889472372372416127221980783037452293570851123093070905306715248526854900837601245038141146684610635404274291772223709387053362580861981908912048331482662240723573147893392295711132365841709835003144261784357987009913021417106350588149106250495714309415418075601867055898040638888573365815676346272483367992072617452587586605149641396355200897461107040963823707841027830117425563818767890355903907647977042800627773759829917292727350344915724607043488937522317008143338053290316690325182793921629765366491156426364253443730114479622541201869494691519269025682798266101354743106562706117682119030061033376372515923139549237646244977166712833013303546877809986532591557994235473218852236288616454314088438002341283003458675055958526878842343827066028700289844878806796084766416986416117718541728741449477835880705299402015256346708860494312550127518638956517077618175218708667456225102891947923914357018479359787846208934748780137551943603486276593947354481161837658662437949055545918855304127343474245121809192844903691586184446155851398052394176086966903587212506561444576601354066479608190924482161822007773866230275576227763790972072885122612572503095844719180412903103979624609699196857198848948285881723263585059182013335454245230976071480151300790567578275366059103378489165950330450316862295884149358499300364204668055779279371816652701280442199855968856276810476570357551585485709507975294283977040868161513340386001102418003863286175816768149588368086918801008757411330773510313962530153326031027786761276313215338248954970577754056832330856720984289302902356148968635474724096824691224729609787672649549476361396498779602429867450912369590945590153617496762569201009051280228731736657218526636786896343740862746418732497921371364415364130310733259225101735023209885110841852229028581822219114743255675622668460389354794819108227941198212864624806733788982718021224974245455412164350043076755120500961596045358560023468839057268310336759970703942013570537053278719165859413312849594523559980826371725690353514175521372078423089480917294389469819430691851696018465806158975713020067052307792121115310237480256646401952099549621164706712828556569840233798040876414980239611727081275936920461688375141889754060334250313247930541015729176353991777716329892359690709046698603093968363901083089432180529500853841950505384611870153062024264541613346694315321241866091188053072265991918263803301832497522903702210247642346418177024501967518623258856660961650753953737461288875191565955987145713804956334663652209032753227873571126015153611743206521154987558098798248349652375199837693714172294982065308462316180022113229350765921534342608519630394015560283044721798854428296566140926429694495540925552498380784150981017011645797070979515966415602684500479149189575199050363744283685604164716420492199658964812463932427973702695727765303149384545039886393036922378431903391422290626330760779481753329346676885219746606178056948898221002047038673735505211714844988390688952829826605609850340597462536886522233129580593808176818627733942567260395218384916771583797224738400415430336305688657866514104681562760618514836734558713860099146754406557042178791904826270158260393179085506670554116090808479582945746724302167105270590476448889278284211163693396126291732780635740461167729318412848017503448435494951146348869782617581187365624157594832351726097428455842427397365798955687767564096049316218014830600121268982789126728515422388240777124171971245193778561553633175139650537077792722169414640678556183650707225692854233784038929065348134162701839471431717672674687764466684575849117582096272980008031464492393890104405468515400526234428458767811257070510035996642379230454902841087850111985828865183585489412522124580127363174631151547929054449850968315911650548020920329461796301418053506009318509416623812960868287382794396503225258657028630271601359220752428779912729624398507213828428574224170461896824517182086604780856140625642485646557984064778035371029102612509625411685081402442126945833509585358502200581582400347080246262888915768805636218892262620712951165291054680481543433960610653378284384695186819674363124886652800462761210817195723677219111537397165820743236804798010135711117981645820020846715074973900174815047149398393353379218613693154648447537570354548887510323433531772606846904257009129493112506166051804896454568569857925818668042105799765114657682096748995164098909293771505388992293485297400223655592525916867992086231622791605977953968158095075427185195769215755239965801060264826641182543418860692688559842080854237803986504609265097380523997540407405467861630510819200981543870944931773542605920509900008510868535149173722978550688652551374842569337581099833017198140673122885996878835573607686376927053781082206155426863477845567876480628358745354285010039923723594087843435921947516493608354177661442290116428568311937166294653683007101296355211134015605991685469522516999629366669014461530928747840231487516511357688349231027803970247460278921456634965543776490171892775783501237923560956142551283224180313630373590541289562260080983518172178351208965068330174416367912845061622796173933669277034682300473623957755950284875049865167860293755195114596171857408148718535368966239316843105004414258328401763090310441579292388574044995442371301491737044861443212847905149262744937835771831853774711928549821525498500561932572916875670011320793808247453662412519463098290259904397749721201806166319873532123793363368845257562928065734468830264483306569374404266644248475701190958496147504109566498092628305563067427844482337783823578990532735020730687157814961931317410063508861118042053212930774572110325494768952200919249528975775226255041504952208455165535922063724213235015867646412121274681290172851805318626214433228543899466053180561290713820918380366861757651117982588375451649920169263986671827229352429634721784961313697531642229790661130125821398408012178508691308414826534035340247906850093681425057446419942529928569648429423806809616340034577632331809169001217020848159666986640710042272884058657644123510512005814347829982642883017629950482033786992862210003731462505448040828420994082853894884441097967552567691311939388087385011678102400520646920885022798284618117129634185512542614146347836741562506189452281814262161098242690175679408850855016124570048606689732818198220573815475015569805233063330981855259183983564216706294719729615494335356442894823586356598689686623446646357625021195650591152220507322464117255432760943633967657390133450971415093391495858597790889256355713012183115558645045611072214420653208347951905357539045796894711565144175843802607626790397935522806555562824536467568904802397168917186288183822949246105514196683505655015467520048823418891647193391547278129974027063542483902207138546247801533840472305270273858255698122853426301744798497861168075491545085013304423614733942395921619004013679333618361293167984752486968372506906491662861514613285433562068058111979250762415832349072294938468516913545517504567342267223412258298007154522124070010294343503227234349545550942444094232949851621180462306244671800301190810547167342316954905387953145988662970768034680001555613594825197981582328236815803294003738153479878779792070823345281322406966489788617692549677718093846861330243970764516081502319464207123724394855935496515215901431889599814500037834922009605616263410865979138065786724840631456048322469218599176316081242582318922759447796690728320953316456796795150329972681241167343293099723410588794255037632160894937920270301988935071703555581566330938478949370438427059993118657443926312449769162553035409827170083763092058597641422253801344239840412083404175497081055244940531808046059252128176727870134194839067736558744619521850186275999314404933159723611725774424875543768044520500264550307560395058127027900821231849852915439303936445804718383682465294083375646673933474268173991994627428022245928534555584372856716245381161340469802431662760807036717258405840770551917836131181157918907808032014230583889554205136564948116724299094159119678766345553274168666744850879485700880631188491513949525901176978342672121989458814411710314641808625318793159708662178414327642144424038659824346100474392757752768673748338327190208023452790835328965396151031509207265525495617775197937943935648298168372581324727240619316452453284114520598220000106734975067815272840380977387551582406456851995866039225255734241274215687772875973886050463853711825581742351958791600713873972805955625405874554582531318091879274237241434535349700079362803581033772271446038941564529459819975979634062689064681237942972401122638197919057811927897809330897089496906586130611927236005127658136857472176828172149491114188627845256017863846182440431581300999963530006621722725574456087166318502426738925314110182833325882240401820447891391309994168595397579787567718938090535385052519851004532120508734571944642427909630829296780068311481426599819824205271405951166504514740738217857868136542640208359602500448440020149550420007588992671390564240588769818200648578839375631880186047195251212693256604405156893347187273680883366600385028791351250529351707536444040524344373070932404331636769266149234042545513107866405128440295835707670383734270706778971280944783182009207727672495962035073636504430374996063578194375645937412099998869948096966833866738638689051721429391335377701328332098699040754865032357464606787610623508573679677053934148061481300975175325001097920116905953822812248892445246326674729518485410321928469510317098341507318640443920306067159259244937845831761252410733416480225122403999304982389992946495578853160704105599425626338951496085710817594374357670877437233372261375667807140857458526156757095040895844305378112894218976808701754295386260266543961251883717816722417818141292019724072005342189099631250542820758102914237699026799148821050947425794538757626775586258383888290112869182310989388601870435120392023424942621975283227943122888574919123269202464913155719097981330629946110870172106635667470732819295226760426558312369560939816633808840188278691377885058637550895135470418631756038903424419462391502277761173706829135402611049800143772178249762495620267172825297383288508081055670536582502665416545409728654328456132430518235258924360088594734528215983238066537343381990923348766800409842111885932738122062983594163007905289993085829447764077173592988800524696472573779584060921327310951796578745301942362231286613146697290061173305705394430967653831968092010521157814994678840248698103080289619704599885781413114923284399478150014407536650155671565134863261449525572609556788689252108002023076331193973397138504107966011685328872988126418470212965984518958855377653208204054271574974118936611577786330080821895190051638111343549325849160914268962679137165176130751790944813291487568490788601649337397878664293022855371960677305178161785352328920563767895478683357582562015187411252301207317576250243837330203211784634327888275557274876924000851278001394146988272491605494151841548944105024829517427230043470017406588043889936137159730136976546686245800028073817799140784608694648231202713997519142309407228955210182445818698454345292180983337886776743160220317685208329391664298418296686117724132484445538999416334339536443291680462371611144293225259946347763718174031020788108496920294889255422494349756251346478165946633746939299333588091851293462151119860605530349779410794926077786662230531618935163763808228366151141193477859818852091622391278491864177438876504083379415320099501688809900329324830639759520579815121610413796899348941340345721833519707811052057649623355286398419436748458729590964299528204832721578585288277527079127448966490295793133716373494923735695293357422698958244856678296252475802329430055201344645039528553169359870541723322515019949549387856586042078021258200634237588563969100445153029261098502289429511113892552946792511631413107197909208382099736408688785472621844787618104194021532037846733341984733283883139546711185526374671699218509994575676502243337852590827268775361695189535551560560227461567552323261504101693359632973873519050572946273597762879769441049130267470496433884937628255449011621685707826661402434486058509699645276248670921286408773928676226362372412046320994493296124209053596273469962815196707332490754124936098669671627385485683720250596667502389384869703881390597883065526897661655347659868793425089815949493194040805036629263955342404719488794468611522984724702143345854261508657009371034922395772988634840487764324039340654026297808250735552314843387477412041444258601566686607741386664323600047685548885390330773606914929514979447305142566582324916775925608516013834460985563718567327805336397790411520129635704601480284822506678595239197082991281944768261515461133456153645346893358278674088227254063438935727961879341878001240097940255184378404564883754683721944181063604883960903906797266836506876461200865035218797645312200334032657363038973582475190827644540181060203018976362197102669997773600281446866992947866626456545993074984700381854082458496707929391064402512115552495798650895136831024246207304213650932409530377924689784309296810159623819839818474484378785155327275898791828059390935696168603763443991373532796371545679634272073699933960980789856655310713544871605154283743207161134127514093073968455551301938431838916491684274140789463493663059006686579726171193665024134869414377000898965130908344463111989912151354771771212105117502350870456240533434281571975711182276892840541775389724715085001159727538203551637703045257372807213844369527983638506264373489610401939282409018650272718313257622792731049970662160043946373628946342312924861857158378120304988600736963995620590648959816760359754396139216893204584886761230566695753474715023121446270144287146135027741125947023897235889956831562753734268201303658696740337201477153717227515533010559572282986126752929537641923855207375609210045237170659106099729206283674434896000058946762911892598748124759463573122543923988334534592077969098602516001078541193760809349098638771622409531567335764907895514988291835709684590642207869201527279183511680338156197028898014530362598949328799369117219037423691352748370773365134092343657020400545158991929006427543733624926691235777089583557450186144489908564115787704877834293201205574597108390288824158834371866362165564601573926215073450321211913281876983402946460875390782723123695061911181108479879302752182580466737361323756409000415618306167995340976383163176928935030900249302213657817547112533340513637396718291849660791971012631305099037691758011034591786380639485609511830714393553178982438960546468371396935790513007597192386267796161403676796162477037959915500980176884294124088130305480559823185682608674764078008674789473934761385603966262964495311115378315601882197624621744495913164539261333188106241715055322700808018414805116817488322388925814557815168852017686104405303838700803381103985755852006001984783752382657491309291023004338847602959080038637357502813838937975887966131899800984448382668728387642226874334052587682709815983211340517678603079093919646944739906755742258079984156457924250343865087022332768698419861060295469743343955215623074971828602919813582775221685344864464668229159259879561323026424727114442062105290576779302082284678203382116865538482429360271457252258100827514107824984145157990921959369498892336068610671489106605055448836617874481403006144523810981493515498893271385701731397478018838531671655247788104288042394101864121641330961992745823098569530375837544095794168310291787979196687894802010455365579332812952817278720785104164087820317616655756278889778890475829200607689053693794861443524826582151609101196984878932412552025075659847802644353048703647409328153835435860705127340208295212864657408875144517714233670873103605587265693575344535949437389848927944186318258962450692559528107903424115084528239240280232546136560042047921770185597454239842958921874938503185332273961353614542397996588880304208918421547235026865344334076204788300169177935821309716873438542762036660824319137905819945983393621247589121798450125621318642105512536358214858270701468350091075110361894730676399779780800703696059767151301828079661459600935044267734914443024071398007696907998238232189004906334117207951211142751499949578994493103704083970370468056505299651030366503772667213594620800445061100466138588403557387283564377195249513420929166326696099227336610653050065760125484875749461467784773396884164686743305538698589873215368908224542949905864962814590681250882607879854349774426806061317414690122272581012763058385912985064028570573923492863924519627277732395214078040218975313747392890928436204371855472029502482068693261835896465545065504149294215875383279680325537963838536699253955390808950516562698848975786370325317681977773654699562910423645982952385979414449358072553710196184178228302876810993899103035273085732746339297380523850029963180413375097299528002627892293930001494673070198886591653455660936603729764349339656400125455383458426183893111353372599153975448162703521753199077982623590409578299477548296318181533251155630304768358842207829615444670347553017919313534956811090002520070420189629753655206721957969352982166997279029195176821036841112726957653119096545958354770102833238387073888195698666900562554117464401286076670474264592423649589610383472596098372945640364963404099357639132106908698878969844012800110334887297782014801326616494581559205980624539266983078371678219512292374660222395636387372835014725200010004794937935049945494717874235117738691914877493844475368568102276954924347901838663897422180318378751039388142966150730273889328319517478428079560900255998085254742617056970078506065460903819499194620180639081516611983424027820022841686711458118374488578582731299732136227061725309297044819989553195898530734013252646511902291390640908833586072660747527485643443834633967639217434596120374061145831980840553797333844928503279967937845164627671644468167974723623053829681452036176276692806120538478275264353544812074319461137487977872132339359443308373969617976028318362582245643643899756221649262324492115380678596164687995234502612588797018525714068928911747775974850143723970318092903420157002253206017247362182297356279098303103815499035118871322325662673184490424265494885004326956794510693490393468962338181531168545384682493806604469440486090695824414373091279480762819059410760388482546451056260510157982682605676520247277245329195311508548174280579583921407916368432259688826464849885871377482298477414463495027236352383242050757140843644335957885538185784806007573629897711620062929627090487588416910170714792276630753312607383974634451491084665406953222048711541600310488802637790297909895084906931442887156992633567213523145439018764360064858857847863619775451750696766418472951325473996102945539375292704079148365082691607502544610888377760326694118404809784220676681668639810656137019475985393249385356771199125851619330902754481089134007255258787998756067832160599986165951200617615431908678079156738087649710085821138770583834366900986475852883297034572479808826688736041799469938586918732651120514387579745423590354973037597013687846754293169316657605633629900731784061674838274910768121290499085581437189596747657140437765294666821759016605873770708559457740011397604921659616283675039570039887618169356770996563130346823437843926670626621017694508043168499980822922913810992450476058832363320314122081692307097666323141293066204487890223267681767151296484088125233410637064863437205963350879164107082286484670470476297602308473887225715311773713355826457222348181493342296085491781615742764099159700223357067975749269544923111483243724167252847560236409336135263851778393666291580147704650193271834860286627208127129233727182367533890280039361295244093307913985322891033095132034683001256464782186321753370226742445708534696882199033842391316110608551503222866004057309842060965415270294683600002808219981221909778913346440404269027608884408786585537584986114412563995542533613286996128670812710985683672591686337219063554034619404052255366198653308094748467844301554428444677063702615750452275265514586760542949947094099417153465405252982733782342355039764060221872933201687214689696635293645884706241944793325275563817822210261968700293491035821844551932439116217379335610391144134940107127825913761266864261183445965572609503759791723580946076435397289111666443067957454964553043596164077039912768940276386940843296746177090052564895123906644885823293892118501002432977046338271048737674065229553230201163021726683636598267476112848434662457228459127838022286071321752299380843810312497895181016780130781051530258498674348667467428744060026197999879480833300633917166499943799091551629853280035534292240068021956650017188173397715843351083883603761611283444321462650149889256416644941938222786012824411502370388495799661021269963656107573477210532633340990154690791494126579845073609231888310682142549442463955518885621592746946544710195542288089774350735605777445903689685662900108840022955676146983197459744625437350784877840950854464801105350739743882261790921692573369116245415446101978952751136677031259142580738718355868899402395424498506585946119700785121743530617452575785322872607796874661903822060407697099198828078015004698847433995684601716936907491687289676945538737506919863799128373148069393772277353491533620971877837137423382364650288357598711279977777043671826045804193982166904921038726150408812938073325630285730957456751373252018486533063698837101449224631634165366924877019328623854709189748225390707698638848488960961373097721380065281415849894130683909646597311408104621230649150488842848885574939638158317712525521911952332983525699987684556448928423329021139510162573126113052362426360885710840846742452146494485270177262466624865299567609916540625826812204860570052107817786115267198362173675735594429427109823577218188464930535558156070179585434507957424981331396004451706948636417339288088689206055738544677992322822041662514998214491063742097669164431238402172701976874084698914684481306658468189107824135317921543022896380714839806473202238618267685147642513396367145906332412048332069966938193244667141230152498907956881677020046358295488967848959197412042787615259185927246218904558703231583031478487260599928895325233283829787853432180186431602159295996147013263865369677212726496507449376278272413088424791810281300900938482050662798808363352108099451569591500642630448428616816037157216492870327734309153613376656713440641319246306023775691263347108587890812691994694902650676434905163732812747489902867703677311485828727246159348013185879416679371808849966150105177265318357563251226859782019365851363593589739947720524755785340303183900375836947831810004599482225843021977698331927559249677457680408607925581640925792010814153844053633311592418489422475262153183948280089053888918225504756189598077762744030508039280514787336781766731452216004057797835904273356452289375013097859857910287194172847339628729376301069929380831345475330850964760436743343890758049266331160628205351063588353534278060806445720044635509448484854564264798586305768177028195527768339354856726651894899856622396303297542295188979349607527195828362364934846069204910324207811732168266666956332868980360168129576535978380851212125484165391416722958253942126117792918961699514267767121757659774889521821896144662127585526257406218764366866460261461162978312152852038442872883850583562852449063385100041507136193549310065018440572099542635770523062454161692475739803193867899034435416912264704136613963383120433141343816838899498683618159480430780916764712981556783153015027761189052745134558480719040218103289382745899189013650635479712559070117273402600084590170379325905767277977988745713640757348123621699572336057927082144984339359193305270947979313780820433052184173591382260860839566468269908748630680150152578250888077004285797407304792222471162755016210098672299867589710944202902277181663632854446677017776205456178752827778986602679596765248731707663147843274374658389363579917468976695121700834468672687679407870241884062487730599630890567302921224830553941325319257669594307173730764643249371200017413385655683822829013979507623784285672117708670556284334525950234927180219686272711948489038346867479991621266362163426294064197424505958077641878657004279685015232980562157660380191831797407075539408646160457320477985255534694875771552414149112996286132424973100854895298792773529710797458488465825128810330800064738639169324404927827324022116484758057751141992359773933082358797540653405317375280315114691835942004175358050097753729163808962358269529220752948095834053078355114449104517935462728021355746373009660528565139498930606909546766283039588724907694492099682648081789599157108307370973439429772477880681167478581575102154026430037734446289801517416466915553852055274831884911411825681947848166736549826172194768763436137573893707196026116825419838345952832610093759226377947988072726790443616845017099696779560809093714120376113734303512564087232481010023959269988896838431857531769855827412171220321489811947095118362492360927812201775960106864561639284847217049824518545000943579367117970548517541964921543530509505766264752321834017206140733524696243705818333906218534535800492630785574596253026634828307729422215751546715102359996722069705905107565675127465890608900748330206628546518234106506599219852187847713215671786096284195017281556147839327129680462404262300139478704450466919079331575917838673966203967833181689386440363965302480115016999166817919615009901059714125639165648526577277964498355055733897616954657649764618068240474263966214123060383178830052870053115590483025898842950775333874711450989899234460207868301721028878607144282720207849338753648537488336289911078521374825421525341117268147146840044757161153203131072367550904814587443193134358550729198921476672600906596932934372476809687423775924360896057737136723974841332504757566251223606159079341079086614618453070641110406903805056962109305747302669804889973659787177937500602999425820127041714328440461581523295986127351343568517672049244549015816718204392417068880597523225365900491489200396069372783762433857899793963965154456989748197130385212157880150259478482110576017288286452813018148675244406485709531809421273287885191530151837599977158270711988094279516220144452944533902992405245583800331164113272588184885520621427327018372894833764588835867154462045598397212764220344535835997143711775807965238959348654408331604816867102874607886301877853321049570745333289995367984704031820368682260771691502984430271826898626379704669237707023062895417150788179076415965072450448210732730860190426249394395882477196048364274359547332840240024182649247443543111830111461621100324503738342653442053041905757679702681760875080049357543594391391093374160530012527922839797228889055421358736714379244274762168151599510543167927224438155160540844337345909209847577532823097544376268666426373186155699805624465297359590801575988378857771369565173091328276634682554673953710226519447132151862296085643562496470054988034332189661464658587361260842135940373480459440848464535072796660235518802402553104097534960350328904942246400605484753866793395509262299151576802667766141713034521200153911760280690288723825198995254653684118255889299713675467837857982701633377708025403121412021552357480093817209693087480187782411482123884487383542667716670111567250737529728275150868740054245741534148744176354190584330929012965478609109716110673703492544872274146441040697877724155320757565556495502667011408909737553451007185281091245651752058589948105528832469988358538580145163893934766392257906615709652464549477639352763153515276871465521833683841976279224552779313022016077720479029479624744763594880882121000152393620399287449583379055628190317759987914454611438396296823375702358062527064294745741623319157409306629990499837628697462545521970495263500268447413433374684499061690637881427413162572171261495052820276865538714901660359983413442531995148694333426995546209571830005513271248894106712134630335684815044299382689602486364611015963681721726379258294572113933205742415439733071257509923486509907012849260669743539974675290566592054019739517108319743748962940613732205153035657170383238471162236524590313432374236583937519934926095509874242182693885837095534342027311551269742914990775473769189482127973168872298788069839836837710206438450632495608010732320032819437377571594942732751184010505813447020263390391099871136422763725969568286483614219738810586645091933851424610585955281225986937199570040753435521180737168403522181511205694786026792022612655929792413076820128436778290022045723429628685572238280157513990059577398603492058890704113736331574101001192273855920995596033758157414895451183034817213356208509474128613588390760532846761246008537740674393073502164218249794571441875758575670993449685966844291198562572375625465858319520078320647460259481082287772581763646183077191743573137442590721308045668732280009918797595601546769352244988722990950021850458339459539012235623600991688359447822609525659463442031606448165692590675715924484652310506841858088282343536431198199335505891137374448905175233020428161808723190255801892615761782861277998216607093367990206898218033189064939011292305654499107531460234212074801280527379068877174215995723787122556469156359593880481494144328104107854172679650520812998881318909471276969816110200281327499298621343828842425707178486254468208646934419419029983224231304882528958056868120542081245709622289164221699689746823301591128635227131506499239819789584878299357907998795286379760508524280510848933880244264376438208313004933927678524687256406482670350335881396423439044793328997506077455563705985082391050816391123231821024349232318440495025861353176960998956902765347974046406867711741336503994104023937858905014763714523756461528418154992051544884267387164614403039702524747973030256640409993335947626703987694217649235411616693927088054333913583194192787042144422096872196185002057399489135871412110235872048797664595258227664588853736778742725315285986568875546131466123661715340663956022338987679214385568091967572168391488253262850555820703944435055724489618304840298118957091244959354965129031005864711260605668711761673913659038614685575351106871695109177174565686530945614576807928587542616831454580498576818036916990573494514360448515502786501163367041699896646090544801822399215305625677660055345858813569501379455805069731865218980864091499540485339850359093793283980699756690787096569712497983669278986987249121876455793748058334648877422335697620024097632621464703311820625626688070879198248860314888662432923887688389958438972967510260614716440557772648453249235113245347002629039790685412013983112152803635673628430826695874292258887267567035972917450674682977838880969932783889169742672601548017205318805111765600101251470755727781357940683524515987293045439933950470609788967243799817965128716898472826241205974451048346403231592003043326241723060362154112883258658607462295108204332165025606313148587588594459159602039517083190995880474406073978398240917936172340220088382445545342119870749429036191819605491848292246708416200826826381445946994749787814497147421124249079318120074314888774606465661064994101580679683299648484371618936005656028978683584515864861791163379056638336506574037141141340110263533097181300437842484554620853462598379193508074666228787104062718946125861006283568868701301923177917097304548000401680669668106368514843545653469264609009373855639047603643545496736112274131021706130551065202237266361183140103694280935078004211930711521022027361938893779769137904651637727919480671122324521719147221875702947902545197001303728881506828246731929428577614466260111290735308096928653432645991133062368836862635073180358716301900849982071324669639462320023691539234987257457158943078333835126372714546282146260201982619568315132005877343748004286722416889542318168614738425585754750920303843227958583397257219754733834803444062848123549984917111474010229765958775451356626450883912320243085789803516931560150677299692046771072503271361667429636316514128009398267951628374613971754055033941577486109840832107109509331511377819466368849597625455280691788299344827169928584471607932193858874809959440268675049083597332602960178656715760331585399855199344449338361166761626110611301351522797358869811760843694854878157267829202882589689377585150370071581653683070991775489905552465113406042095422944238890360739257149394851686198496391537863174947678326131607751424571299092495000477886234544850685741972734938701459038451676751094305111048964752627721026108165575501197288742560517863925544412048617805997264799495496243642976889421766943625212642436722968360404593298124250656342365198139592713169790194774309128042032287803531290442172304454554157231140979443532965345692521267251754616972797225518340146143519588002468341267247348551632907064438930240864043407761559488197443121913343641266765573413988562381965350518019184892635573293825951550476212360478365618401080368419058911763854831448591759315508456107672303500851797575941136170342619910371906200426091030209871999470158366143278276238831434486253197056002636608758555771592531807235158583933428444240833059845779376573403246657331232411046870027995502156466274693119872878585069509783116184694751641136336891672674026126793326771884412259205184314536404595373263441637409074220189119906977809465237964780760293458751802884501144422973379724590226448758480014327089701187094580500045429003986309921502590384000185855700177664136653141152327736179427562236190398530408912240382906337382679865154315413699173960087650498130787751007006878744172854818812258195946075601690488016556051355822977642412613866741085807639497057555885070198242102971200867479419498696199960936509206143038329586570928242902155028814984400275985653713693912913266518769391167955866036305929304308152984836503906576208588609470925850853879252374619416292645862211910006918125241344539212767372108590269848595802482559986260134610308998501381726826889540530150125320557654268205321516361494927676037838649678154761713560059723045525711890017623515801895987435882055932781086049283153165250868612896908723576281880585394638915299357859733158576815453844367821219399973911603226977172424240144077707602027915111967913709671131617380245808152494693719598997774137611434958202026874830508547786365947665351890000747266998535947674756671998738324358169543784342586186691811941142110287667381747045321529192928706986731404536061817056810960264121109326413465491428780829221125017400541078480027615231153219489572221380510967957142368149988987928038974948796954891359026340090541605328682108454537742213997776396439281888630770912524597749476867212056000379286739483679524632039677103403354417228193629775835033629078606644753294668560582086724678313399060530945169531716495257533100520724090632806312433355728629968922929961966063856091658264538504527729750521387880433183393681357336817258582902958970448521807904389160040930709253966162425432492120003692431252532168086850492439164043930435087527840925500245372796494304449104725380852113423220798354615547951213603771120741530329638950382807237874754305705942650154231040064036503084271512713867346657358897579570557693463623570362190880568780023039890421158851335221508609671743296894636503475851648189170380885323433731044167904229799743330106171959265378390324827119029634799075771977282512986877282301266917523806034132458674725806633605204453774334374302296703705580806815445029779772893539684481057083914151414678491330031917897404576251052172675391129749041786627416472649243665515671251144802156996167174591036324829604142775347435739243405787797611683617003305325602708701716855216962496978269531804689007782689419095951263314107396409370125836383647223398743667017042062025334484621335507813502386578606709186457524315934564256301993375143203663968161011788751528463197971642329192277643313115161301539463199930009871636026928901285244596164957857203298228409580629178163865221670884030873247711456631230089960931871769870881318768069086091152973687372016754839173043393375644596391076452114313110171864747261404818337717802181675005836810970112909018406070097751292595250427430844548864173525128356773998268845224458299876705646633420557887653247671088170350423951690204776920279883056693865213971123320807613023640876759426700403908500784107900039244137803296664348783733434195618369434590710015847586090293638131534290851426670806123950693270737552140066717902210642353488904859686126913525481193348832396790573355904355074504235161212101643769739777297212903198440960063149258036082398052424245182371322231163500125805711116842038027606083518169670069289642120324973734965971072998776753198881637164385702624822758477500152936605172497548486166390594467136828124652865220756102964960068828007707774839119664251072650166065101833299795374140420286660489103176840540328711773299903658867216003283982234141536729521130885884962271963698608544474448414153263191699204652919324037279044624869065717251664191229467852882048232284792431562248215469285304517669289192912008593728752202610389000307085705654054825892258340352856691037492166368950763647536676229798827144425594228348163351540621174862388337920984033330284799418726195238993048224959435985010382973267307123227938494147514027988203263252908204425930864547431426114588668898966104975083169429063750205654786913247063945101480657354322602742775350234037275613815033574888283432819575131686933532222803131215096410839904412552790472281447292936190879333815907648106108531961841944966391379289542328518604805211552930119311165324860390840263382877402671544747309253932838252202469634593117408590409431686430060282708808292442106749515074498733571596170467569957946577046637980661005766997734431635719385811990758752731522416532755912004542874000459816634605128806773215347935017569593912865074193433238692367383355490796209921524663716249172591037112872278170396130338269024602746402015521050480373678682628982552043737601789193857271575565738093402629081038423364202372871329237927537468313157440078830260552225398521278837712085180189774586405759447246434892979483044602386789952426300088965159476824676122267777128798750490515799660406289346432082816796221508833700605569185044592178204896696367449399440661396017292134872931673963264422526438171493472899898822494597622904487570342993914908933925716809533623460315222001481494281948121191839317503707190927838429682164191866766256497446876977359188203197760685222532297742126337917917325745249480423397997503952850457103334943991612235322598948361241974052589169256384688645154870872212376069887441533834232976566785058194760163418125088371874172843535198047585532157200571509848558210178557394610440048857508084758330276648719593577017717543147250628937190407577796198316177790741570329234795524444939142500642934446567028764065369973207946734898668568237739498301370995312881207572798320697027031490917653933655320573268378652691396919250559028102773250091974803828986384341756012487715666783688350568156967553254383843785150541897651391547531674669424295585374826546200141789892375960280664214510609207788051706247594823658264925983158078894625051044140211664578618831448620896468580167781587056628140782416584483635818329064885959395396526233826691710529567910125709820059750704336908427213652479682633766337966156543561591756052299901323197768336740582283187178169349113721105096642411488504613719590500619891774725546309506239096282044801162606953755124445800319337795657364067775585700690006939287490410272491921941473582832952852158205476900581225983674762733919866685019420843311960113191976204268814020224034873865148840163301601414449755882595825794477963430329583638932174225025357962163701581018477479334867530649819188144821611141432905977816870779115836206442792905936025469211151302905666809400100290796424121244500174838940192800772549172155147354700639210657948808641188232542011554350554884102084595903190506034852183622856678950227499009501883187094089335982113515027330083178926019791214255732232872101030253192339543767650386783313337727206192559548442332556475181907723336470681394620328145296763988246470944317246800525269787163298864351168371652797293311225427704169548815460655878767600941526166108568248335373591315752366254442160604998604900461738532803828758171027614958032115469099557771775014788194466392053160506729375157115053863978366931092515774306162405857172200961830044449793126272162264802188115789031607409748613637062957689445834667684318039657904289966605578912384626805597049912799969114468493760815507542080339988870927016509506417066024389509171289229681908709009574857495215738672183911949446779748255987637272924397134912372010940210092645290763199654691523759253667450737278848162593351502476554283106177598393688731696821859252525689451797438444642429659036501728229497351816817371124436251269572055708853287273732018299941274966716391265571029038642306518005826097126234954020157766901113848237667399420644379218043936338198574986903376194529629957372910554351488173932869237513616942110942235826958891052787578316682545869925122317197683897900946800335823325485838258581616860737837151844262472877588407577196446791604421923991583611428928636240736592456216922738393298701193659350346897539528109093154399791867239559223694702838341294573256401023048798755308099292397095257829683139744859741982220947417832367080072222146735859438930533322742770847603111568243046275747107299434505349023396472798478435083225082267374400214168534287106499582368151790424527160412273646723814936173040403292496387121372082811732355050969162386280593405208378543205317140615273485375900941157335737229196980370423675611838806765621198156525831408408352374233604417562348087090189360219414187440082539839858071752446495093852775707526181163349187320056459520651823626957787592382801879577504373967612985315635589578483505221064599051419274330338407182671543246873087495943525234820104486309651815410333268807259953307053297591038972364990988488652674463157139930372228856660868664078416695533563007589979696334200457594241933407838502609467770455834404233427116925498590367239157515971684527383976949602782043977198248801124421882387066638013563494193142371820636614374727409179832811931718452506475266784172735739602982739672928765087051252768826150254441672766157901260028203082499501977407673376755170664212497583625045644420459035119357083098281582880040125486950420236338220943905256682018372495524801611655257772065935539938247636908388534487875775096488661376390527431977985925866011855654743297036805864162614472161897073021321338645641842953954730714722049598080505924569620908047069937356268773691596872926794907178166981487288454605542599877313448593881238025649639981901998516953806821931486475299100931337403638786829880498175423824664277047278623646440221982437606013649673214732932917130713107849638964260841116481378908075018862530918099761740520802955567593128711357909432696426102509658728732037962915692773133675205398983391138563977203035017195114129583896037679084442395002073070315588981231962530765806692008643880449549497618588051169901251329668561381239104028881603509209358424240423183013143864278471367617736573660396103173789986338329467995973601153930792972724278602895729352343831992140037778874229885808625567538193885014751232982334991448277018029237013354575928000067534386469225052533519186779548250218026754111134111552088762660242152149844241887926288256143120209294102621248717026213670679951070312792958272579016471591916340220160020626966072982652498838925703112567541119088965060249198227087032369132639360148313653124460707371748323033494641525572129864245904121279540767838327255731750301200823650141136347955156161922823368247175450689658348276179263563851273221008759436503072029815307295141772562427976662559631114117010045867866139078219731320001651255636697980431280043104222633351715257602875173648029512104869625988832111627312257482216208253794614858926883824879006126110921959129460152878829850482566995456498905086426871794306812601176762666622132207462965269943691023166816374196748709164428748362395960927451477231112387861125925256377444946916166326203342196100598720121606515601118758551097837467499798541005386031961815956937791909815821424748054394312183250231578437567572906363884715009695176254180694202103117415647353099744620997669070593127284386944625361115127570914360770124963250385028079673154415643930878556881066288071598052267704637539193364797881530311306962750054614381715542894073353823022401894119107087130844965504384273286650876911058435778209435210192637331061772076654692135516541695050319398222164386078844201258734315940429282791702231717357120305481502668617807251320486724701000747195135111812425895831043600394921480570025111361070353546942080351795018319688636877091475528982462628174448444692882369780960477508928222975068388105188671261367859904416385297001986165028371768461020444555867292655915987636803556618403106508511712378456745713947141335783790219181615104544043398420773820463988453794020823488550957640137520336696519274337297157980778448750425244824640184685751120349013371275121849378895393985050277896983035680987130635949767445111619363550745593086394546146793743518208330223150648341651599387027804840151158131582014874603508929620383527272291534420221480766486503430246639995037623641045413962148681997710951448437312000426203054345465599295419280466267918797356279460442677278339691294883235753136660765753003513787272711901614660894723908168766063213908175510040746701822835621048297834583725575543658096603813445905862585566419115795968890602167411876589161382886189070274714600794385339798745010996475272113167256254050628320234742213585462621775634150084053988719979016914008406764613986610596680722815502962430892531887553152214006421199932782048559183850817150078972952485808601116243726961605971314155824186333768419117105023454523630061512168158404635511703350343171127781241123078403016714861181814170325327995673182875039798349748381495674101724203938100891042832075612776049681060452270776118118692498435650019054008170874596851436879154978847365736957418745490655214781939375246273538289295829893533498146762346564012900037458347177251208524993333201723878453700691833888029507667718943874288592263823385284826074578496395229832856925442503219059120481005946351497428564936843988684368381271214969028208098410752619123887998215022068153592298535751940108313414325750723506425069967029432412484619776690043268482990924891391144532042501474861660020801645385553468975681178180087336624670256257905455660020620665798086289455238262756228507550332187511704042727634709460609708440637637322086670524622311862462541368599970528764909675691801533295213390083829579523792277443360755787012995294676682698960711008018137192930812119358430503852649984608205942055814144608388943984611456280073725121682681140054160038495214722253123096640611727612646161017658734773363593557131727786706078389409159298162517490946804469148967274306462975212983302298441544332773475528235632992777193229845303204077328244409619224037471293715024404386572180869751358385956806613140151072268380656199231843325429133785356390387190028873765282967559256298130696476766721396418470355119629294552310391375298531682114297890008556330621015664198395372788575219909076334567127249437240718982973469434781023396264265648977136017340378191051037340945082947752586171480505230937742795012859431516448924794363139848356987298453044281680634910488947807311245106453376423994594568556076521362357071811015624567501108888004557427176983975159349586513477605364481331668408385604858591482433742517054638888952403644385774100879948548808767184261244634173695873381996123734709284866217167055760767804065000745399041614683958773907371303220688222587770114368157662892220608340561430687979544546525898510970558627751484343995370519638327701835055100466172545353686813616661502428942154945401208620815204936221449052104551370782131815181873868047121318494854212396750246517173698570475386099238773576472969981885247591837086706844758868046367773501985446106300037637972745966652253662832646677287279551069361051804531563238210615665026952299563502893022549187521204345139849089517427953679326893721924386949761413644304665297045954007693962672244323224437537332251929287879930448685132405582983947020870888236938689773862749665373235229252635326290073431847829729958996509626107823767130488489421887288402073376670007384826961965753931437248556992444302253778689828004516616052917102621100368710175846094733035221681461199759743369689603918655609877513051910873713942259725724977926138778651664639572671525241839758784988309017273275915621731592721888890462705037726984162346149638844394996660473109008660560220379838040515483969250035682297967271840251538790190404040837174288376871323589277694978000897228579421254785151943337187532788820177326819287791348316486581131956923134470410461641466621499884759897599538563552356321765426378055838034984327202584994749921920813464771704266838815780651957121823955584002130986118186569361796428830888267892947609820849645586481971572907715917514960137406528115699751398703523147987999896728752464604138603429234936738501028359297162970969731427071912582708301294886338906566724215593031303858399856333101761889356087850324955512087462783806794269024975044194325577286568536067632127439196371004111376501397402524285659539008242820240693248666233606905633175259517337100615790510225542907912155266877719114203372724911087279744152162121035141560956008229899473211755277636993011569095395878505990736281945281039616162604900826265894964091372492481812328017225518464965102500177878389118428892778704686048999786268090574299154913738385308283617442214236610899560268120461064964875993494881968757534352501955197037181276986650982913406835597515664347620977887887615389199965249464369582354703284605111593163655688320582981954128252889855481967746799659379078473848896559687230768780343298929073876326066913751414337588847344474990659763840490408036660187562846409790481404915518056890620338901542002397223179792628707413883391216986714063216897888584907137852137461808375427423812963652371085806478291034546255179061343916137856893731558156282014639405925194443028408137196613740775036132182138651798464536920779084930643964890165432595832699680654554751190630430993728115150456161275450984798046270099427282782529961192144700689683785293426938381542499410037401377029778782369355995357069436084277902272843049902337152831896356746763932013578665745355692168836148286983732602393591078767440173662405449238002553738406906041574565371895469328751154720066181494957854451123650707779249147479730111497850880542213794958268900083841361849085081246366475989206226269958883759659824623725471540873336546768276977146379502609488941030109871394006641827001984459485869551550656821633929829495668754555887866801672226515280445252098965195306591616553269026635726614244432010553507789640060709245455446790555881091746328061144691315667138548546103280992647989606947516374008735856433825619972828554317134450113946838801066327464182656360990961068935741123641851762526688859144055863797308865351550430107833321057893981726504479165430650246824288681308686049449626259746082586667730515306735670834947224043068758651836858345118457404247072235743372760113534136905714832128258256700776621687919347254729187205026984394339194546886716233442276790681734171464435815072827587995120319660489730013198163382533025015192331905994395175814917762466104193341560797412624669638399744402317951156516475791001537765618029755697112882342248889451632879398527440663948966867390874107007847715569219878322930441889637008509963728095262739788095422702394069744267276897862112451346040305666516947902411906228426338776987510004770898346026558154945395164719084820438559486877722277565294548571669916041094909226832999031380057329534764244090880344765420439063290179498369969050881660507823916259512091206214950081313789802366594645832458759809510609501887368936064467735981916838515177265550897514851793032247668964568083627854937604300769398682737536382364504304427906871605069311892723900125920836269876908125029838753437169997183409111484609725546617364010046321137090216037870355548110315744476459949894789802294331583259704754624593008014285928337304292085049617890484221770704046381427556200377728744296080923325320406957012549404210582081747582347453890473654252393309924419199562661154009125274396525087314201452698261603877979159092113706521832714851296473223332998928882973204483692011632002055502637611921051089049420706929294313826406710049969857466271858580977449752150886235533160204463170287433492681887088828678871974939254355183601477257162458694929248781625736609593277968219057834674670036898472403360377106324798993538223050599528212081563479046174221360764166833051222366339934791528167269799432085995468160613756903184902097327218937978154457586028068580604183109239849702817200268826534260344190237017645303005404482128120896240425595106362338157981291165225759669648196386794717916950733620128708073216823742750613830209514704944760485576348344356921470699981625532435986261781736254697286587672670237960758119831980942182983141451173224370117052003028239678733683478703380353506428283450243312507917557594167539579025145672175537974534698392218254722084514679454570710598725180541167744817387588199596243136752871986526888364794789880396441359100384195215843095211065191150839494216941125121677428175761437477620730783927619903908528277658278530892617989275381880459408534722249334222620342420489087870688319788228456329781102494376980563515176462046585292604171145865397672619044376342705606768382074649388971370549282393623695240186241042845006607658896437071009425478963037397147629435690519464458002774660485808893484287789972683993156454811548060364720080392790530809488293788939910973135794978066993621590823113370669959105882986146701320427349983354846146274906413757733330954601251548775691247125162687652385588363906939795573788781937101692439805354064732925157151972719233563512270638499108065993727743634959496757164762295724151721276512479121832455756553720838299352651767153726494240071537542654719973345492689803366491847396170770782765771188529607331787733154022274737760337221883216706416455857558831156747003517469583930852407563400844965671584311254391228668408470161556510134295670137025972419758210154822501588609426450207869065191882722079417215863365759500306729547175128351532083289411179163905388223616235385652509237794569799988210562377290999982003946451652138512293136904212709431440460653696048435400983573320324591223244291300867143585743549867141508965656037516325099462791531108772181645871727519976759505216489792076262699583189844604044815734981504797942372082358724236517863095404285536244091336064934278545672128328639038596312849917548635540692825754398885201873068587343403360472133169287600011409607803871839453436612905943247560730897297158151141198876016675062709124839308854955991268472572710983128560915407848658709510659990522878665590292387768098258468850949185076936655827397167887442447122946890794723031744529495104560078387346271387333692479354184546871321291150008562150262363572279411309797170403694758888359683455855237208109960279373845780695461457238263075314543325131990612118395921319003470903175409159675608722490485595828335455686386820639439811375326617070687930736271632253937670089562623262106478089585968988911938465727290120738401489871475162173103100642280416792852907952118006830733796531877756007937939456280060927012701501309892732742558384517028850515748161440896814596582066933954331269085563561031312723860973469883864848698111988514276393535141565609331403165705158568180215502792372571384117788720459048667206850103247366146069460686306051821281152576024899940661239294942052820970409162894138536156072434304914378751652691261995703895809837107064760171545638696211000343309570510530006269926562876674504649977771673837436757262371538561193459523660803403570105972625680751682665598471882690877764270458785782030486187980691845616978650407132287235622641511131682704413454064304683171371590802399954378306371751703251880872087619103703155458111147175862652167624097689321612722598944987307378180360478499942160111365471226931976991453723686466237754991584506906422606725200376841397684017050329026301131472378918492614205024177297471456975476710688806212216025185741576179671861711569635775237378755687863967005941704488188831284756869368403681196829985005621547070710173704410165907297528877934902054407049465444577778425455613441782243180776395855900793355238562364705796972803325176911880916976496476317047917308776045043838364237344091815267679583797614492331188902126002160842599327952074754810632830761468225025037136815897196937245255259980474108305240390227412940150449773472041364184650712001102670465992458816512569633786689432447492150112701381861942286525672519690116151043534569119128060038972518742990867908720287234444237587705523449732225231994544577273201554624873838289223115687651276712278766066513944910245461566176688376079447199104517567108629394971231709226881594919768988851666038951976253197027735090033716031865122273162603569620021891815387987822946572098958566536721233189832516420937420603146000393294170234974634234298815862196276662839775139812565551613266467268769134931801150296524113430731237879300643994804634666066538653519095711766269061929484728993899630345439337509973769893053053691365277997032031632489435531708205790668531619881871540080613286539304530601377697754625944548616855412837363789735075144402388035742541741535528169481086691300786617552529695540072143030877771219046998216460788429724877213802978835211060693116795848633841203890383036164628919641860499752811971738025089346035315830334461649239647180502372076179889132718283893254621541301542620223425275918873545188416893080088359919404188371546543109850350232282521139736204184227472371341976975581129468936696822304089394350866416335908320816659750458537763731334771676748803490754845597741391836673584548680664829860574474359123383096876223752155542081756451317875820177536199907579947474795729927326170292362508684314149849977093428918105284399787585906189037990161994597304927302222214532294135847086999988562350463165062720657073947256937587724714321194565615640506075111376205062232999020313190740166840321531975970564029969699821981416926025215768013437482384774839781717289062272226681831552556386433318388978984480716219514863265516418660926683062941153033129734601295662074509800874611556256805940753174138276832011504408889099780648877271491877814419989527458342733304636044844072324698420302655319787122139721120720534733239800761891425644389784796410337446395316455544079698035742496477398876189307259623454375795824477889729341895475873563258480118663054894372060569648788630204128559920279343683460944381610889037480390356731706554477695225125861882914682471215433965427548469507355113888980327799744110426129311228210629225401715974445784666468393428723645245939171037079154348489809210568638004194716025703115925525507942355979121828077238430086221425198324000205744168237285841791246428439947346186261707889379176860009537621658267986898793676486215882871449447521979363495018577272857824087157666243523776095813405562715490186787702305833366493853314605782554260683761239084938789598426781306760482309195646143775037789473314527687974689032489091822695644563259795706135413626172248207159126969601860346545786890789968195780611915489571051267664628166748205662545808398051466167667880586233611421639759650171576248338095629363586497244865297103536379550188727328346851662961950075761429411919172026979598698092079507548485012091292449137496534496351288060474176558464275922751204780484368748623021947813099542625809905512176695630494040924979464315645720040079885042158164520385314851318127124363225730223146680409766065812589717701544231868928787141240054133178583416534027885645222380210587322609793581757437719314610066867991159497095156012710776312176045949326778043328079856723133803156334309317060978230812974811899633229393638064183345829686951190423401783403372756835387185212160185229464721334166484635241362548931271609254189777929932097902255380707623741635891348505327635702143396506986181837261968142388397994478814991339470036957328451728643039139224805627041337548338701036995024883750432336903556673489730368444203982509048148715362026736955793315891322365687457980002498558524999867693348023425296932001280538135679617162708976484724037733397660741850222067813409209424627396540211974652673200202115191427857946467187032922474362528821429239459638283910093056440130364740429527283167648832070752022823107369196780575770675734049395581327027177610264652469853645285734643080523282685350878663860902509456212919701190128033932896212383015380370094555917436388262144086800709582581582597087720637932436674004661097328540543795633580755593893780631506492803881674230790666038027432310044884290872222295527958667618350626414018289729934374875751417281409706192823632739617252274261893149036162316223312939421625365570179708696714215503892526324227237620097698620702673222753466395015275828572755920502669646404118579964406224499872388740115771994895094485154995519520039693706800259367431507518565221519468397840200191187897268995507595832735107902596215848171888314923604212938417422888820040716355640501757385539902918988663133468195810732698385437751585867312762820086494436455421836179588999625957265617926535493690404853064048303564067920872086460277337386938280894713961399508206031997677445115969153282465855433893046308988616827208477774985834566403506319556782843997932891598663515959230329265805651554257046637850504017787793943775962663346763721484425948927894747412872722465515887282083192697138508407122655491617029490241018999403223920259626254960638593727403250723049385882591515550826893208830289297293681407541687737952778408136248670805011938850917535670237273746867447910596776292945754590935308793441418947676372569507946204500726050811191845617832315091405320162181829630597450476532183966685829830805596729387082009212254075058261906296370598494080347151267910288167651134203176736505268885769939432163206685075801600109704909240390500893630292509907575147298092320418900365930152530710362330218558233759376990335137630520260534765839832392764400895761391407111585999567906166794301193748259869118457931832601021189104550437095867812481372061842396268447601344738163869181206626546740265659443436950934349671738375021511690694006630439558241111001436799437506240404283293872776659062027028737706757720546739372736903518483417643070991086030706456620270527293373051874763700057699794646738946538818497284457736037344612309368705090228046839285759020762599856722585353106825436539847757029348173248882455724421928009760658368751107226953588812374771643040890382445359591643284011740335885882527034197169011909447875649623190245633242529449378204182531084553055934805901576852885238113422129440039724476207607106442063942411131768273614765001025973973400027006250199491156669194590320604260166049680975629451186679994544230345908976346140834531051935881655502696210910621236095970340077643382538882191879806568348624742732804227769426868724086707417621854256357716701248740723375284268007600992939611802819625177795622142146806327365314892419225527559706193756124300331884436090560851030139204482992036946945731476720587768000719859566460899611176367393729375031261873048220118070606365834862738943998517758008659282218939396084137145664006620457150562718459343546980870653844607335710795126460051818115551928662802134069884307533084151896877725253597121146128437884786102626958730859311860617150079545056306805169552495941829825004125869107170559038645767594581527982980479686414835006872083872414559214118979008940836944351934143968318149795823959306237247006907191631804467430825170673308915045957709139494901547164905506737071317285088106862630385105268682346395619339907472399321043822284421241177455717222122991747923706937416969460101292680414391469376240715110538885058132147802261394401768213576652186926758882016020719020854915338697226800600246024300742896742599457018081396248922042408816360415968454821657006229794436936315715521689190854407170835595119993890148518231585992601401653707573589993816484820688250161913519251297313877296071480796936260688752208389811816315094162930354719544381699136801932353110327681374695730685033218966818584516526768007977467055480350646468677993388704326244661914823171159555330548532054397686582018173079204190787723687578478026905432840879002963993147973768573123953061371508023841769806885137285407543292764564538340946772414739194776566511870933689760447056493386835899626700545599342442175903331316444511317495664696158628154712613442114413937920099408450059817035040818881566942486658755665592222019120478972911208648444070518653743767867013672096876674063949915779189778760856391104979788387690629929530883402952398288164969811113768100375280085306392731754683980990919209030845311842565879534732115987820615982280861208034191341933007592248360500162444894598796894265436983095563660767449144696814369258108963440957976484592105674351359736488290255924092791169536516927382618493828675215421960040536368781860825754179864076294765900448792637651148338651783386191083040944818020442829313603795482241848042474216122774604641167288564921466772707946811167586151415288045529770914916035733193166547083704295548856854985320721725950388518825154792235715094333680021874852073617592856881698030549382726576507928937364037592100473028668159584416293259781607584064808997419784413480033978973205682047422297759382969431937846525556039486743798363723762849335502025483350655702126618845606669248157795732935285480393163448259303770486403590953282584924769411809888371449600350453153298145764526571698156562523911262570536748019569327171765051419823680987166132253265557135379412233484259281813405301686247574781802318543855273862454562733229868579999058435412767166124241671706060605533929864600518406308471324989715759784834644506224125513916037014276419142150998734458065666685881626994218524467153703896546227445046116702343993461028674912179193578947090727087044455271719560375016190007187985744533078903649267389239639909427843784634931482557485492747553201605313200683171484354442074618412426072163804771590173452260366417500332229812991950756611210619115952325121228681697456902528284634939063149456094472857104484608793704111851088200193717936267079005877235702376748719296978139877837065168377046042724897073680446253809898890756185803453388735320156255122076683094197938247172908397857828565595931106419779442942505892477242264418181316759477676038437563885551994558776318670322502779364624971445503294374710922885035530001861844684361934648783234854114978033685990112490657788452369912045713389770302826830174698009224693810846585197709536154871436719257420291221190083564462181586872055910128630065891638239008306418641778353467780644556619061500966480440309644213589995325846094667241031691680734566899862061392246240077126155976250580041854058093162449697182944512201590025392520822130603565005311570244977630613398328572114594943713753949968166090793576503698966240317345365851252917499777358228892821244046553187195420858768775373325842364647073400815011584532635229021797962751399622436180892584674203957458603232767026908209139980267259353073641843006250228457524707368657122950649403564742799661550834578811389760639806856986454548476554081906922156026396445108720060467447497261673915237910183665408159546638608038975168070759898736468490868127616215005302724842626579784463216045077069860626143870580415173753895205550857827778927895072674738765340533821464771154404212685198495509082166015880708395737466946098592633181609249850707884626357643146324559066333425205125920058771841047165809273173031638827615359790209551662596183906521244735741653622984589296787527912168033549840116907281960562961989841617899429983734817636399723903698266466918016681115944096223556359794029920830329696067112857198010838035295718101802362367229260615575995911584484552986689798315030424010562034968198092987666623421144980175353261206927804153219149029927355479937684000040019405802434627009196996106859054066107404258300624405353246514174885371732094011767934092967563578220634809227696593548231442898919096610346875543205826824996084631890263734317267958422217053511418002429166053872974930361273930347418961522079522349224472261828610052725631347587390317444521855056328075636871193766970862736904986654672408351607286123791103268204847753484036350248478657111982298448139137328656578652150701836979568332921478881504820457679598244495154890020184695854359359881793125114747863939531618447627364084067768167866132253639187485914800256661504967893775233235162287725317845292589133063026601175304679713179922840313701400482884397936024880741127363074571141712627967598977726452287810972362394453155682284164323551967336293901777377805403921259543646257465157660848873039991804540964567485114662035686233378488792415095779013272566574439285226754811300438335548560094860796704624030132289939215997338212607297352393888276695460639347268302280621708074528894860344881826218610084729024822915093934653593929310762900174220109702657823872018461479267721271019098365175138294167566128806000093176350792562600188376145871704534052619270732539636399401376862478148888097380999430637344593741180464998402023280929619139058304117452767511910902264761302288799288439113225615278579397490867014786263713194510730616957541626731143795978083140851817052893642506272407946909861759873429582535199141104993199461699500610775309917890132658978043878706072764462985768789788155806969948807156421629305832850945827147448812445518712692870562269808585360970494902222122573476004412491167035005003140562169934559764957521150201319262498981309134328683627844003639393560905580332272097428936368748834461808892543737547987826105863524509227634894419696777491131623954790677103511375728544467951114295607466733452710466046671637787495807776213074920946678217120538281929125014591023610729907847544790786614708308765974510732028313215352528791705051692493472504456854454806477673836788075056111881841982618081209607665971324410892165343915401925008991912202770916059207747103282572680929903725252968202552243365786620692647969196993529003971450627534998919136457856652035932613166968217957343341262560894924572534693816421168483221029863905374537468952874270680326502910490870487822037940849696026428153026010872135665265137034877953228215828638411006302252919531758735525262419271933805499292193804168558700132598936249685505227012421985095530158814195455928524112947656177014597164920002859610106399545710198935509655410134828403863822408933026117818028186960513222804038374194365383999953004027571175254733481972007259839630310099773095389143357668857368413244915214471398460769655437115948327605716608891824938235609670804955516931482706753034098782285232597459865612739196932852870285108779115539042686183923980191676505889500588974575510483951115208543192803328672401581471268608416839190415323985121743165756031450799686388319846185220058861569385483485929360688050906204255884942447954958486598305816340398451804716147514887960316805793511004046541121533366420742414307753089650434168944197395099657755659628365929585551271510308895980885433894683498972178498365923742890115474679893562946338971223342081396529041128721138310025278981415754951440520272692567640473515529223474142548690435457524597796545300496185522587717606889377227121509916503018932654152087308273298169607400981885870015995161268251778260665288956584648762811314507161074924061740631368816695623003586095424522447528841342511281776276557874619128281425098171466100082219378642053902076439647761657356981190161789029419005464807924253739500691383647732762789655145466176052664748221332890946381649412325228024490477107934094016937125308696766454973832556486117860237437115309714508708720936586351672185258393065706565042058871148620718574362463506319380254162711488742345112888969163312324362233302701174700824597711200905659375270805812886068819676756156537912499218157262230551042135511121804242754002084895547952702867756374444238228451445210332572195663131932171366751322062821320276530196822411320264842304844714824938393557434469586421940099902698164781350703972469930792192931022349783863274851722193614084903660379909382919557008263249687205899164337949996592275542334420182568105052093290174369681990433051425684585861647226273506163626567301092095669767534267429196602851167850075025562909242662370969144294216699425153471201217610515687694350967994230711965540558875986867036936703071281999035320910907394152145288140519014697792749198063721426753432143220407259140629225404130418752713886307904325489773602479033191055079159335826450486604446824938354341090450781020198851852005855420302920486696065038730242048646808514347575256451644893033708514132453510416474130079925704979488180467459903987871492617192361694239616594824257993581811344088423742054843023073976410330564186479553833430362900768575348829080207641786085328485473871504127833831293715261977692481944895871589535195527837195396989802302950878873188067295996972108627112877657390229970464398373298242650864099429605483569910472147193451921356772447440565134252587908289081671888192720246576912300668759719031882618113858918638699496006313190431108802734757512430076591571738790726759651158687794352246540505025624112003250131673321435078677692841944642348922220324290163180376501542727720015723717622206815537005579897644619734995973879473272520213355830182105353785939645113388349219054377327876756602112868285991175360128680611981418128104163339755377810004792900349206752294809403207765752648836022498631091096673998488684816933657478127436477804171269899335953815225781416283425773118482569018273028343027081664786434507592440523405730205205251699949562609603676930658374540932119019807604855706802241984734888756653507330585312460826864793456080650966564629458283711742014189793199913800996027506274761939880265387093142854523110429437357910255229698782483421781165036118093724997456199606383767436335037009757075773640526410267243932795136613873773773669093792750391657811366411913560674443164261320408031062407286964391738155811382373856585810785410180326624701769129423635064735041271447413219361369395072426077105302958332010615965264897475364853663833871603741202409636880888632975212186601708897980142919623923749843395378167416401273752925139287843509369191868815266821224445139238120224138200366551473136655048919194788903684822423457571488303456112429530331336026173921470763746529812897741415912328486485336443515334551692372099110583327448090861656242696842143994621106863267247909446580525806467581268094367906221579906299481272853668740310851970402841428461934287706173117444207415562536521523245441918096514444941083772846650019934018023839984392313638102157240189567885468535800535511082410092786545639950915816569670431621624557672870970751340044164153755130187604230512770430783850464808813712254390681354083556979889112508991003678293480274271623236700250705669325209740325105754339393750691852860943300932826365213412717129042954014090920054361816783651823395917526968943784904153948242595331935306825487206519813079531596285712980888675659356665124168841699465531127696706986571386196091829721401829423808617078829869884724025148750002687478590467800402621439841547499211381788829249124242323651511724463949593013350218297128994453593576195430458141181962427825965985741954255950220626420790207457227622884657443026561764307851977548141008489024806503817489601221647277435306139152536582031821085581084023923777700072095806155819102013339799270238032301432960235022831725894268221325262077718101806351512531808918215990270944833164770635479129064754633816879734418150602820772900028660443904070104122954174480214869389325020992552706048271230148777425592918140082637610089104930960093005169623142862038843255904445331512709278185072336629582922574315807811955108614333101918049330369553727271278819028156976464414027602747058217199275498861206169597264045350621614817260130821727042852157669196822183387717714942545626295629074125214481798114046977657580663602614677221094810857556558532408623150785615382020444443022505410116193405103614081345172825352667794140893883414731396243220129916719100951879632502802567553373093561212903746880129674956852962385352085787892294704426720717768545414510106831656081409042110302780005914690203778228387814057125275971634526861166795760431959523088287097824295004749608754100943834729436670682522004973118457037505761053056049198451216002222105580645115462315153326754242302582732418078685500864032238214200213730041043727390607159033817055527827229171146226371150597061204783418920362523481616449310077394127271021249608167919314656615772251577197852544515781412807884398676382656280027467479969459566689599011538673192090961234481658682922439663963397970232498637032103433507452970983862023078963435684573175879051041174996833574792667727686874477669736853701734912026667248138763866592825215520690931482072268948203230225959930289126240783510326474711468602933292312217575958437012826196975746406806693934879948709198092909079941446069070017678541134719448407431704740207341096364848799136404963913500607519950197114107269708310532509765321331439168525980820257380048289771105183461227456316814635442618883941276274310373174201407627237167487964095525958145094341326882981085316627491995526117652199592233104910269775296722488114140490581913854344083760114313174104947925887573193270557319243111328718400759750698879350302592017955111676051133037892875432053720421522897628948028483988609088155557207445482979649817174603643445235931545541008527440507515879068449950802073113378016722397991501459931039457200969206143443855195824037695410013327731415145040470939921234069604133445237274826643559836895373725170644740020063670408718858282812670039256932641072616319655152893450758726453776138590696861114976404915145025891291555590915379338214748817915652803433540951530536646616133952591258547116354842421119440139280181223933089280133242565367355271345212317432779293645251653985526526365338295801130680425316069360620730313535159057650720726753265263367667791858392512836244183964960659657105165884105913704762084707311355352573265243213695372147242965697306013691871087771383468674617939567466501297199446323059520364267363520905281636779340970546903564844947153591109823520838243503432367810799345824209810514804941822317270587366981705950847257228484852685083747111718411293177188540434870589157464499391499921094106408534239565393336214500481519683859005464830085384695473483161618317768166349987647496597113701260098350847805278754954036398087603460487995624993132894691935088047478119735539829400086800048080421729441494310561881293996961558822424741456722009887582266608415359537719033956188640784903031292521288692998646218400838649796630941369638769668140362813551162237645610020369638564852252645890334164572838996636461624970951658732061243036115862402251765442719687057847523807641857361732136920691952536772437541999456949007590586767294867347757981829409342595023573639639070602617763233871305203491097639891163365448864033634722318580639016114210327947178918217649399039528679400167050042368594787404925788042614988782571283795276680437788147815024405207252395058527876193413596877565242211886837298541206164842621647663307584920142193554124487222712016895623363427627646935320989369293945308109020084544386351957263611771342915016255017579515013816900615029994984246338054142765496999692048326345690661118967159301534945445556197987164778912640663530201918150583258489439196965776850218623690047901189914433386605793436850965802952852788816231504312019068037851125794927579310617372990988120718309018105741793527617173735855290792310344815167782688481730151669505497898636168984325239686164746995456613456576866595788979028511560809246374135153397867312319763396329088854440814399004677390776333592663995061695778363744575986552993527350664403634494193182653171775136688651429233335507957559194870529502867145894299262398201796291070077092223480595626138034614356727433034888117633135020984894349226663396155065890491835365992873724014225937765646099891082819097503239053890057075071128711847634828451761986077187270290281399982761185293143267834511099537324746871607820164006842755421215501599104552459483630763012121073755718127785120062396310498661174980204835684813692767788234484788523603260891127476038590128298077131715225413309915525430027356042907775367178267698281932563934584315689693541169359603708255231646128126785576586223639304362426259964161365017701309063600214639052568272601797614634759073092724624870572148724432754859872119513299290503347467408904460792933798372775884740891660357796741308362059881803336780605384735392273021718343705693554963656534266221706190794992379872252960630877862321642837044239369257750309607999547077746389081091028281277379947819902114677752017524734480444771435838584355900416717670386940566169890613436818658623779104559995727745316972671540587666627170691761856302807850801596870866377802789776469857052801445511481386261392573402620380563821677374751021235191160915264192490105781441546976100073617149720237936135414568252675353205980154696129519727249420537687442697652641375151564329098374058378910625113441646250775574914448826398533881370235695160609739672583504674265071796098635321765558166893282779468601860970095884499064280857144213480807746935524967456598025385178446114190128501463711388378543851220069262956203126159976761200412680239142980540575033244984306065539797423781768293186186723651315965922058595981612928746096387679860113413537512699469776349046663573939190885898408906998710123003745664395229906373637856050419272238356349183072649584478403721827381330871176985693170987440733904065423461777803093376347514959417638607437224495991480674546719984641793663085406651787555843861957696757615936566395606418939531328406670041069367918134928143552539510541862896701936820704025883624585993904536449534212839873522025230748673887317207733426706531802979943467136709306505801390288997041597271858322507184688430288170104944976989302207199901036957022425494530423551689027905030319386324645741588006441330215385576267062847219206719914550667188767539512637477656830409570818706524469008281084363316292985847122268141821588419543862411874666099775016423545205869036315076103505469325595916561453137985118786150067077572660876712868238827295643041993156559369041089780272259847008858593671569827346101926963743955827434105211649374656388898879940797421305518460446911186543659575917418958159458034286508933161980725965361658089681305446234290680760704437631780914793054672279116561696766114331564745110684507033564784192820565427320886861462688088421259826065478598406346774183756167500735316168994802374067334434559179922567267070283916121816767504877819174105807797304393446042566891497543319893498530522771263164615767458810858636210527692315206932991411133445894252883981458186588605844732248947659938724625044619884390105746556527012606888770443393217830668537031133009093689205165050807563825411121109224069265235070344689214022770232097648546465314169549316297055940988514795708329557440115275077736589925598198253330929017396853380109620121613966139750273269513428653118762614500995910593431534444459396096958994352396777103329630532827078074923804798080314436356804238635432644985532111883290902323009334982999269561316102379751564054447528582149606070816304758734776992808535997255610282056591521325231068060551451593418657530548981285546717213473411974591605219790382971779800184974539597682436429887566013799420365851304915337812654330153032704560690060788691977076685368109550038815219417859074494934065805435851103626805612632646239348976655448795577562969722891682600773129526113396607519895246194292666365086611659841706121735896819642649450039429937946844909401684664774369846382377883863866855312210801557956901115921611781985765991162850885515475610536712240520753265085246004899810524500639200831841565073189156002721865513186407306764254650220947150955552586176790347077404270435035561924212458225974369762677411758154764353742161354424525787022777386249936272275259527406346343609733789154423319265830507984494517460947889325472037794275485045538983059488581593458446098419637198070028321003607817689280319253597638329826393514672887260154569895230846422267658582511356369590252672600219079710506517948443003039955966597898706904244410012372693054071568829230936987550146173109981785639884243588186864781032066625373060812162944802973931221764449257537722565079466817030537169689559445598989351383029332821297709737597665783488268599015003070160711057972011429435719676025403779607368213876770071857910444566283922692981310368065100607351138743585582114593443579389724090832239367998346295993241451739427826350956871198864233463407417935261792957383908299220046487470913441536972560222687172116763862377138250687038230413477518909244958657270366902723453203305826672185837163274290271065705453436371335332689340603833132781298861273875296263958021479201539603587424362836445882577020019156102399317114421694044714771973478216500347576081740781350032637718648586362736169576301116389906465733268364872065773756393664630382905713589481812347388116200054577472667827149636254889691764569396020808349555590147225489120434678010593215422271333448180861794687632568039701061523095538855072016812530771435238528750535730196902782086982323491467161926214497939863665748576169710747547368998502294352901153578551355537281642833259294717836597978339457210347952725397937280875968127081810405432812074549359929158249078125183857824230331504269291930575971793777313817248496934691257711235758415934164379519977925301170297399851275598480435199949540530859863615195088147043582886419695211307728182917657940417177535148698034374833759084207705651237040370610543717060291285641785567166918929341825015087664664469955559529515698093791994315256804897856434651671612374490162567259762672465699282788473717816741193604332367298010391598007220869314942125842670261471752150385338057321255192373438527390122541979791876825079808244398883278151066337917765009994177180769996410176775456692413012374143117506730502437144756302852867127497246566932869370493732819535690201820557106821897061040371647218213173246282313542997046761561938322628028775576287684527333024788070704437303898457076867222475906795128531844877839122487817850464308032082657545895763778655154394810048935739399120408278153644804986884837379334677674095248366430006499911089243138784116111130193981939563060461919184086423369311879674356184780369707610247590883196757250287856862556357849147582633085799170434382843307627901408903021308516369421754574552336121771146649816074278788192073921209895191795301805080052080970047942905319913925813325955810673048840325411359761052928247769786479109890948269333639215914865353573861032867835291189187780950883495384029314537312906915621733296222347857771528601061186115023184214600595169422229640099003745882040506964054641159287709813222538276681701161400359379650947533915910278612843680411197973064747675049645287449108132419055031925989341927757427308132031411252044718407002531348979037809386609058613802456021068430539887833107312910426995441099706008459868801310907784678257105526086727977974408785625199234359624105645393615077761660545549034784473082964254476263686127561590588340998452088259716336891628686995012965747796155580149411910128373619153853502610033041204504053815510595152125956365458698166775297220090635465555052067609725014285212167542021249186366390935800694650171682784109279798360702726049114399454544813255422992992082421301468953122182942257972440853379826510803531604159307915872831439934432811740992878996938555067198389718782257290790439992032130203685800813051293142379826884447544540747359618484104279372964071653791914226122865390804244730051699470880870214478735314538018158823006922934791147993493971536848551234299333599210312835640196390013740821997405379465813884934034324388188043968463330811808277706351226198986296315777943085921504265568203418494505833289286614090306671621674621414752473748653582245612255297087285691869550619387488630800180095934383487522062116187779180339823401976425948370789555486193660972232292770784532973806323291366262560367884595293714399599896593783375480608046867248938750142428429859903174797807473614707807715648083584684705970111035997065715407575565062416573657961866120046373403360020020390076733487714511131734622219323897301632408893769074083542232676880541036221452151932735852030802893583541661362239957552541511025887384502240295733849801581640991551455461905642289762703259432926543000871130473468474564560763469015495445149940502644571507705408464573490191513845765732618485902757065947108117401483918304387866894617609097366963861030412863240319783719497047743600610937340645898372845122656647008817877409357716023941453958996781558382511749208934316160877545147674317543836172412668263353577960811252366589928050366692568986722027557183295478105033451151753112652269304309600230140904419299317199389385715649515235852979625784983079207499837353175369056713441608496081860057551648663050129651556802459742738441380228397510433425294186114981913922672073816472121040724788209137700462068836306478006728146754166832450576742278249625177526611141903269501977775683054570046840598472660221647347574343899272819710638044847077160568701718905128738008205404558873998845324390349907828974307084230660229520021145644443176332480837500246278851625624205509591521625876512414450184487786372500512030759265576129335104255252899150558810867270040622180157330810683135719807748151282754591705628614085952532154797474828884340266157235541272605462029472221982864541073169929453515671195569017629427476709684273471940079135346674011968069681853504981108454474751186308350319825587393886458421131631799488732194665468948783061347601767923239642915116560109554733453304952769997640720998259346912851746171747410588376018910487828709009035221389167991309702612596395793894092724920114370533720754509481194157561940463056355702709152242038970118149929528047899663664055884494519145448690586850039356458579784417890719146287993715889391035361671454977232013625858233658545802874471346210077773973729414108346896008054640423040057582587377359230687718231083151614358019763973279090047556306729898233695256105496366467707352519255106302573536955345115774224837691936701798791440920117682476794965279699241932356768334922079672877044824314082654280025814629030014350890051193779356290067340556376541279460458113606492722388210530531802140739832358895649524971960533214961465047354102594333863430946136234914035944469323379730404337661033583559738778273626737524879402034127637735193287156270739767785929154368366301976389905401841793511485015521100999529314632190683047340120607335893687209886591073800831575026221322087312084490363114299109973096553556674418753432022387360666733414558358946671305992673993059337660839590861745632912302177988347715917223773302310959668679718494725561673631851564303784331058033414912513874954215382194252700826633641212018650703429311613608136254045870602582576296992813881602656797279882549854285032667712389943376127219847738542979073538336366738111402627743668750721040763090598017377700132106601501129442869773882017308948046608652410615147528831610604489306937765665821158135907767706260306416502881754237334830209359734461423989575600314258640994933007415001744935707233289020654402948451285556705145266857776978564480277884234423893420220838208590464005750136427105777451565166522489618439729657919948497046334858378346815833957543814223337763851408408319436126028992052421114139736824336725080705617480740432649473334249314290039115021432352048880473409229072519620518404819619364108086931165869887589042730098224187064642744980052157174513543274211463043969215186105308317243915121061180366633714578287465638908329522551348158696352328469736678451317352882974734923573431120707527719235379580179419076309972177845406959255055736543402978569214099573546769721761426232747916452030616333724889439737525886628306591017896616106649466224312852031442891290328670653799704870989797078686769891306300303272531316912567505842729267555099712748663443154935899450584341643788011519062659644199864061772771316145159163846382854481914827591152939526646806219172514727039898058564346698299110789288280379025290945304248279837519035010183101273109483957647794016073147101799571768789997486638493047636524788028716572443518760267684336798302357463423854721797529144225992222647080102998409973414435781101558346394418191972406641235069757094207790273744935095777573758453923696278114432660012376822683350680003053669447504608930415365434574415661207158293468598244790976290356581886209467536273281125885163930938926727123285852263166018080512955271944954788103604431399427954138864080695709318593732582746791332461122631410300275319173933292229734268283369556903506246023747861615617892072330982697704071555613359206585842524225550014877951423264118383586051667806348114472726620174818866759085589056644035795745309829810163926336557531261430505586146632165424269194496454350088413156378617349072574339430711777122399689593739489706485124884995086111773560724682300689665246601503179214020412930971152126836218773473288401623731806532366245511832196853975497390655567035652664532449371859210920009958955190299360809585590389880399241127878010675132102040560300603989089940396467043055256535954131139177245346967391882127310662037910878658159756682405396245736718439397085163847716832156246126716384207503308345690298950429035860232859178726616848338167934064495237497534145280362195339439828319577772984918180943834922671505148549810834626465932632195878803979185057050824092333033921245632036433999263841676238889675579246785336234150357738577428968462016084928793884863370767501285022295514015621517804412746656255722554832578573863154666287441435997318583302791931716747817597504540464066601834922174126463350254722038510437914203603455226677044213117896289510703857186181989195286748688230489480502358051317909841097988633754489578396760733557332430216561385919122670555081070473528049453529080752082627478532722133078127770445303225249839583423308728952591974301774747843505507047888746251802237247708324968516735636317837253665155788232920765217087360701232316935768896462200801078377323508000695004520407464995382483163957270147537360672001021034533464170552033549946245878726679889811961832672685508076502186834110213684578132373776665436873373633862277832739185483427906233381656761140537666066281374199462643190427291614980973678693561393024754488027641518686732313018401559056149916891314693645331605872927287764400271582211989933648123864115035406608751959101093974912254585686519271640812060820769377321914659973872182160521999719938991053232258316549382342050209578426223899504186920876428153341489428463819176614274833197085873409302901238188991635491773502156555830473169720997519809642470838604344861508483956117823441415470052718280695981838495658663961706427449846813567222906314734291129039904803832932930404992210215823897486509732255560054029804258365847248761882313233244977665367444190959900834759846126561256892096803497661559129965722146903426002970007694638484410926598920324436129876314056603706293154629527912982914062612511999069784857585723438753292600925397411563600686941467988038889247033065477411541354848818802764268377497243841137954411788527983952799791209222870333362592010633960483032646215638442737653130153956045882828558909499735071720925464253632943896227586543933668528327889445241190163176483645319163231781259272111072906122401562814162700328512339282843704551419155862050405816118710308119171950522688291865067355696787535672908411351984209880175521693880465185089068130133049703303772155812639022240909637601369121355713412220552141303253374444896249435622829775096183040312114224793224818339061585058826691027603263916674160882631194088713471386363838283900049949625777611404313443785643355597312810223115516671561079871635589016894734565114170080639608051631198027812598719983657133690404491931438630483743985855186513965060845087888613269959911526664344207350664558968988374155273659605484158523411318846184771483985033243456402812924660228557727797309705452366279443027016723829375124371862377951185977089817638356063663620221894658703724769219274096879864750012120985009090816995945674427198299390894130838823130703527365067273156729449251641674334094778324720386894862667752386818022492105862775828668179166201887670361809461436691212170950806129744630023404077812077159676521987292329718516474077766548107601830462173893749354359712305602876845556967681088228614726158348933114784737683378905061499048826006367438158781180349799133891299734175414852093610241888259895075630671974535534228789132691469022174048635600937212055854077630059519123210743124473715309566872952401863887504609894876757175981543460560195902220134470386510152329126690278058165523601367360653519731256513745013920342069838614387227798558188853559498780035946448098336220007809718206249491933767482173955487451630112490725511221362167590954932639796346340329709056807141913898686563109264936441145934315529846674293928772770342440182825852014190331317257454242607661748230843352216122200916978939228925125097650767636089177357736299520036767657296197458753852183987672432587428209081150655914354774292456155856942485273098370346979509972658562879028784309779598486903589426110598822323840904274464626630719090633046064006819163230669916756056435733279517637759719392954023941217601052311691133442200704636530368043501168158283534619632950740773752157933914773857803425795857518022305423866679220321662382641694230706721343957430022002062570674883145749318861978801023846228657076389202004744115765869111438559861405837045541113145856717244283390091102071826169432526802825796084983720541120589205945309595602448933733669751052954336993305880078675623843569238684706431062564570877161855631406825257063780560952604766107035340168962413934649227789289048184316642597803996915443802344404576195635572803779815585932526694043354622474367917926116340988525643823399954773267983524976420118387260911752490025928113883320864689687279904751225973700539535992290949271199912680099455879594044200938724357977274969048181872030624306178948245012399792662038000469178805874703612664036910409957313466066593484576725185029266080527700114052229516481179001416150207898455900937164627417445285336495410435398626578847146179359928182789243172728851980670987551911862686305898270138741090660922652293555621937785864869992655242230944912138925306505928358462287198670066201302171055888484557455824784722862091890219986044713134215842517869547654569671245512937470807013734759501743110880761042745268701538582451814221719595200062089567879673541922191215733055848975754093036756427767739808571088775588538878355352245315786060168526919197292276504183531125517103094376983924226066551767739603650091261078313484921972562912598976770214145038148264741259330280418062787872306075843535740798481078716489426120451151584139458236533119745234252546050008736732340192409533616213591065153654129373870844721769845785764490757820441027269294866683419230919939690715084635266308666160627326471570377314780075311377828927340735279415120219092269993066162682088751547569297551281724866335421568789785181811209383477573254670017892807449947565561674202581310157083445200667442432332282240571512922216736571953360533390332285090560427755130740652397653880723338387490377237577079856401365025146422507490685551537929883316647927161961479632604433417727015300183078786102248248474747503251732564886296201865575824790315758557752884926464157064536791893496546336411867950154483278636900187760972923530137049417559022729563398012574533820929858428350092532140185848145959321513289912622118972014750108182598039015769982749405681617311344585727689535891590469278949069049850984371986902371490066133570842571437815611312075994269863084342612757879627232402234672006429430707152934294750156146568817811029397312724331302653081327198663304124491954745580407714035557343325354106342071682723876618140454545437827099139327320774760022772588431437058511171586559500697660280735594684007729714724182648179334666720275198398440416765784264025929411899903864835248215137000231440676188290446905229874781678593786213658028924013188711738520574140870464092784273803155260550438143020986001888815502064459458654659264965340828426721621261106201029337421580086423752035820992170610500461817292933563695075995475308746822117317605788641250586513952309118707694571103056301654117109326178084064860917705504258121014082282722788796891408222698872062444062888218184800927647951042591905420330509783182756414958203788769260860395313890787163884768341022904792913479515809486927252810294657899497891180426062728262263468940397832034576833389214801119319377407397666202726445677986166458013367157778489312716180388000117632131025360334959231963692060559994447402583179747893434489534616683912892801612024405431449761653178690106172676819267260612199849112073134035110161663075399598752152190380558822732826491904341250388251763841684749687645438677247000075743720915586775845538668538962931028235345955207756233145682522676608393631235448473806115103684438685541755603575400329088739022806890064503170609254480997329891135019965328152977642346641951596095846025509666598112430051413877076397068796347279697212272850802301956039796243970062104716041023927636652775885931648387400796138156270031693846359624716352542650004042025284602586865776066217792837739170721060117693730453319658274832607271108772520009597229170120887749123889948200032376297999815558195419100343839184236374772638334030381982553887710333492809340023468754228744662729414365720009735288415089551545880193814395305773872080806414214484794040421543413565030166415461116656996679725567504561797846787295928261057933121480774435415196458296808929140070643695300887545366239686198241750796651178639461317137972207854829237847685214377943594638385911479732488310261604221195170063368192485690126805702950677921328362419630436329947130777508472989512195537533621030334130081605821420111281739357018338681806411733982630372492228502921407735650460485510831227415711322428653566238862562306259802025309429524119880799764444955058637480021761910431074988835937112119998174239343337144521923905031469087361317018676833579338710882481851065259205602997941853330174588700155115091864616014765545410988943152230950145742119104666218948089601871941563061943336163625413048127088522561087750652229360679289935154613923365081855792437263428396295368095764598966069255042471967475744967035279760871007483514246408889427667202917099431949344572748715945059474883690976642718534527317880540470120817540903218023114137920090246982877879732348959463971898489718942133966903153409036596665843368733708535242589891051680620620212500703255244717590330406552611128090356295614772067683945348609462365250060415659989640146452863213044729583383591734066996412874069836435913286504129758507245612935088682957945100770565883800532352281768176650207143668286798320223281608834015524470919703582533073192456446078682411933302071374367674542178497674023135447040361915665802447125001236118165262061550343841695451909770335362266516554672487156814636126239949709199836504843325261669685651347191480930473039181020748186015862568016541557844731092633762967194942200641475807762087688745119485289959496653417301211046907987622916220024048052054560790733444964081136176203322064134580808837002339227479595421662062639645070199392099497801330090869181294776861277058188276202601900698029829206734659472731046794287647749831825406778597582806056364554283085057737578512342092922732445399355486568923538661074305703225485349998651957556306352108483662596441377833208322360453093891604592445506681739307286596984262632975119819943958547386527131814679473921062059730055671797287810492528436756678720632666181062280413147303377907577932220460830263746242087879363327530584071504081447315374067110854143354002656561439200588423991388094457420223539660804615576762863661247307895328645214894855428692869533343260359506457799833019874387679839232837599289432544480675109549220517997669854986089158395314043385371718592157816564485307870504547900869436028708626150408725246732213898269934289080650499037362127881172816106179371792732651322046614815684017327223083548853864145495778351778592122582185370378057742151263149615634903707971151944258029860254165116647058269386728231088523674485113557978632372374858298133629093550394418101840789074676994809717506431532951533541799634361051776893385402533504391012019565499875724353335015966058406693201655907548476415961458110069707886601324854484028118684095424905233223772261004500188413965882281157275062823561588587874959819590703335014593363032796105754300248404997450670364655572417831677558930892061831930036164832551773768166361647965979065761953704673840813915379263070300071752814316036139338485894551794061352429044590929359958723208155449344338934719876762148566760545218543001663239122208254513866082650771274917311942153195571624389691110797727456566182354750745855823467849389885897599750607656012707556523206709576735936053464303334125359056972333212906206579490951015713825608083553571834156916211091102455033951955404915156330219480998710056327052395448987136768096328201702010274941562397085522439754922330591051905828864874518879766626845199700830961505591660546091313256664466395123468151840172628628200741489689100494973114427275454146156068559555772258598485067218109260446981203398741073534385250363659385912747093266549067446418189584248834221088935416106598055495491083237748006043963421666496386495465258789485409991559844242340257700195111324328640243553851217439585483999214316721723942330883344317783070483390637832353492115712503992930062992448873014057566819896777139062040244112726645480184347465675952845127066714764716927728650384030127453402290829903664995396717459064216243785936812185850477139517102355405037591243261116520020622884283818801620101211112561131248195984763449075912513492504758117283903745711721431853474349814346826405699083696926172002423588092322455051912131937919149785922356025818641324570373601914446257545046741295242071127970832563508219422027673921235580281682151143031355171173606522043418808415105782527797092641617353218194854160367310102481597223897443307716127665877018770454247153712885289148997066645126540501206268765964746617727028563951622628275041261055725076127720830550281082714538759607314157677307113035030549405387431253605273916283242788880259576154457572695426477813420939907489730488212969834190823855935631137443400861301770091588008376691076794537264559677065075239450608682648062114657818193643393116340395990228877296559863013550545214016606311158083029772793374700977401102397933488151603808773918465823749193632827134997405829711759089013434084108792284379143821989533052095563715020442640289544508079563680282672417235290378001394435727077447953854285943051676972868917482302672601225140909735402606163679686298859571377248652222479990069355833091639207025530803093776977453710908846739258434690152659761497216144484382628921721460111545656348408509793981562179790154035155573054769703122207980674715816029462176336676895507129074817981445917845777445652549923041713101693968387355476915035506233552385305656916722688706841985571366344199885902824213875659656654041540001153586498610173295569716869711961534125958369113947136585306252632606853088249749555027410499423905582209697948601894718755589144201996293774232360951795963396320438074164526793359362949508672764355092251695067480947102202407166247836713283591029821916677560044528883916461877764486613716086036320315336299887362215840537566439558147118922395006984130476314254536090664168433420365173456228748119485022926021498002840192928932372258320038308188468346411031161749634683991101499212628195171895828872085215514356472769224354366531663591391443991748397219147884759877348693316629827581281260820851594619945081081017308995363858178070370257820298272002532311875790552718121557247225154050044243440395995207334053583323133746177359905881979979924020961929330952612314273030356419974439808787659265052523445952944543825112322736217559750549123107569019063044928683912692564490516244810825548230651774906324589424880704073153763714562681831036275044389511308252000281611941481878964894610892872158929589126472316088687806588332700402464687549017760096402157103607388467461427722686432210606580401931314874207136611244925486865480122792079689181527437927164975954492611836668770461833077641371124829531068009226518289843843917890168143063653460629569022577400962098729352712801712662210274909860886412947141539467275145602778305378927913145413470608293536547233593048855698670972053361423083914731012676011328687088759814384837611432099288354615922760995504745781317535826987194300095130915474782045084589783023911421872222536026049511010523250364750705719973685248232776769763337433514655148051563245861557670560742818021481198141251436634078565495820803547279328958788611845398033780912350610967552888408133274540978784104294124587221343692255215107791939679603445642538728097730430413153978439333105078844605114418384906937755379986388926661388481476852442590471664003348018542127265690118378803933565314167372869042571023671854891435447558381450674639638407667877830936384486138210610361153199171345656386547921485108209045848565667773585070719794825121849196151248448467886043628849815912921702817021319981505542641003607117053574691937913925708968262904475897213756566960503394037054276860281373082933201498191337939705749176626895076829704912139340544617259178088578772422173598547700281825137778215768054421855549691292308649186062638877545620943344529641693472822228364968836640940309500237359500586892673983885375663977155453787060801142425920024609075426312556640632487769498418760622134860967612678343400404989961030978076297211328787522826135336831836826926724797832557358427125733297370724175808308036511584393334114521454389620131308520386645622823660062895955487959535127754529010832379484841412779190780063582490134652873375235939701671828707716041479819326169748780083681514786083391408935899946610189441069263423255072191792565266882642440548903380519123214342400049713240052400046158804606883955072701924542174859921587570947056481919027719570083826493795314122698010051037531521630798517707846910293835963625722801205508025740435302541076504279037372058554865565261300971941769965509863239460600677291541233492156188052115516730248666187436983048761324078386274045786305078554736223776370456661448763750879677216763951864888823830256998386489566146806971501010322156021735301391692787767646233377503865799280193199249639181307856121699009425324816239253165534712179896361847654506399287218034223519108306336772950722965628909187746782180813268075822166921869240513001599239893571447468315047997212521228680491364006818227737840423396510163583463750058937341844526746638171105252088913814252430785333905360438344425490947792153235813759158868804266516967543645825472599344436927664520625580237072021765832756211813508140789457690652656050415114468306784957383818913327227552369250085153032284140293085770801244900469576333164903436291161285185120992112360290543089404400581038547347106127126956622783511131752142557057982601523591758925301911128725273133216199262661773428020377574000279917043574582748270851967810815191409234376417568256075436415260868142107563433038308745813528426621398182082626579040779759382720397210721944967090040045823286856140260003192325662807254581620870843626712292951501367739772502862521474004083821297040908104021019376419470904653819813103998967212120768157946632344147397543789317737946146172422222245825647212588876993471317083149399970917604346480777311049674162412350591298066790152732190375196336218508328592879745008954729942476712484789128302716535015469025670883082377009034038735452454689438355097107309788687749878702543805488691694350772915860144923813556412204889731490789595606177525026002620080822686802144362899487307688104930238800598234420938696715064879991935491237929063740309641012217386603251445616772538417430203807433369265842724177757325661448801101745083380513582335590520481005678015445582465375707860136019774259673651810702421859512399708901303929670146388283289664583898183776184969474426034530707055052910022968715536967930812477520011745758580501751924677608342045057946084290470562269493460787686171432968779950531384788995334539251462909639741007325815782612483874499295114455092721073438405053880861006682076246580273086485324994329237094631330866924198800922299474888369476400346274432953086769730733186085210600746287314359259059825303071502238899503412610551487376309616970169589740286906454367872095906721233266048445369102267052887963674067279109969110340940032361577304380579659498225579543519175741575399635707540900415173485032204955223156420749585129085129856668013464173564443666174552763870432311793253636025091499297796185733130545460572823965536116328431897401429594607087929170653346987151507017607154539460052003953258970315550430038842132524869704749944723355229683244017497171532559506375166585984899149601803953508971367414529140135071057079142162437065147642742425328798730254442105354020302065198107917460748842601403030388117840899897569126539304893198712199081620015071547167449285513685426377535339407457453646176866747233510318172457967361055596361656503195805731783976324029363463722275368265376598323964909056810313989222575781136075408929193400763143907643264627854794537511041417580314187173724529561883945998801400617081403371843304342259424108603150624102822410354358246162319755289547434369769522410587638148636747110602959580859540515433343030147275285819748439353581769424649367386732458113739444642673766160909691429508544985846035047288681632760725200371338473022627082795448201296314837082131295178045727904634272674333713529528366666647459566373594587451858582676798610049361344679813845729432661113629710658788792949408148821123739694636347431324348549645486941563490706991989542200194626065366916949775289643871319066663880110920072618047246795070260154659664142688477428414032582007380245538282396071160334339610988093842217225517323245625779980654375374691304847279359232275674752984499418683998898308949555571232054626108716809138403366666649275336904653821929978973882094010448796482055428121813337269578704627463745295086706703852046061817900331756985097545699491366003753635956331070624548303799667073147079650453371209947281938740136513287690231472106024264615416213478751794588838827312156779606840610446977937147808203045549048365532298283669871620556503830452796089570398609555650387187385753293993491108648647192851523270391286330639102610550082471023939892087539715206049466551126193107424255618217094724155127827215627767441031914640338257909090849503826073523245745291436595891558396767740263769200835647133282782406946892118160773135943973082828287899749189472226263556289541130163799425256220107055049307850010887565233238133996025136774098408697442849910677668714828944612624042634715847180848189250009714595148861950577862269468372850500232743918651125269834843650660981734381222118576095680262421603127548126680960883380196936354450703412643350786729904349197816410521293978023555201419949936112352867646587553930012527971436543709124470159888345013295825840895469785360265900094214033552282072762627422402412429742401655447437186965574851229472817417849262054959993698447523027538633950468896721858408027857943681747395414831163998043311945808242578785710789445977658377202982326852210700780661573501651186609583109048102062394142912386577919575947475929166377190931073312730869532165168137212885129104457969282525097722764486567922693227922045461169558734517182355093062604873055225118276839388496969240273146878119919773944949935742578641358804228909088072871204476340666923881496502939694642445938090261552372503963066650276211023215661908131200604332915860652446912041448257348026226132920185234364560540866108732753950680238525118153828569834540558932416227968048148136696334506064104708995872468699404869734178144739681508793661263490623793564873229494569897364968847193182223057799425060522293220021072374927815722048310460017356717885431644817427817504355315280007453046875028875488395650162756338456037030554748234050983584385991447523084427716821132040485153898359841366405026188039125590214025268293391048720350621344744360376524944698815376574959095122436134761542918847061086695200633777447562783157847584461817308624004144307689535306400394289665788152743623166709421594373262787212737741726475661530167600298274561515715567781132311466621621000751534563646912413645840309473825978508035684498677919986104370916007760115444480059345790232592524886553923073572247566052543208405253052131507205127050145731083441570354012491648906546242428321248512994742636914478361552042031466513263628071976444019447421767928286253471300494164085493244851988358354485764194354657817807641722867845656555813624434040452073288165281146029243735196377585558703849163033455190503062759196286422955269011490829443980361700146821433570800815718406940812352167005033072683927200220475696505499218337847136861306065120474455066912440957818606911508101738820479392003462923738610928069649561400202090269408312946814230440281633942797904593036815624703264383370693989361262500956315898728431655303721906273189331090672120978724760347449860495445740740783503646740060517704019127011695700068429929447610623952105782882669842644223459998278716111930654433186847986680033465950083933409070333351052273397799468643082258650238537671650213031314391634114583560800279224966050148528973245586509433502011610203124718322741473402980575681168813457157374650416205750731517086498742394445579231122630330570815188962347614339953111544094276769082116229855668624903815782922170637448128828074316243160201364279153261486258606367340391433944043202064876885829747087770912743992441270124683291852191425350096688036150043159306361447363785458829945925941754756529308643512977941730552777118597385668553978844167212292010226711154639177189378797478442658756128699421816783245779857929966439560995965149842001697524207502669680597537036035661889155445862240817556767346286143548256547563820581096096702556676845469188325562568260955162738335179852215348870984294503647844295493481660755501308309469646870433948609083546148254130514947810263610934557246298392306968714424565957539361469947059941724931144977259931902576092161582987693804871214396235273625527842963470668363711539773776634150484470218802684386480756709221970972631507224603868956398924763970139285614503037131049290903948407937374204104253534096717937368683083037267620766558377261745668176962092164426921020275157347325617755092626453096190442708374451700446648095596991484475025658671417998566765411076468571091087670416175260844586382588660828555283641482792249346008291887319622001676711172121086644598374305152431314385395044839494195673574216575355061786665324662617234011326539741610105512836260942480936034942763475581512121243634713186129128791666330051547677912925751876857161566993054786780717237918845720079478475939788780328174245752295684116803896026265165855738805419523473107262443332980170888360220338372596909838529429646871101310800097981609221588763581388482536613922461759941268668455692520016928854543151845631097364272206101129791076129681048227585634210106161585034957698397052445210292728628253192263439336059824112863993540244714992163478833829821441572509212752777114400796827603921408155144350369544887904833266049349407011795294582192686080191235493581125046327104209106661155523447190142637062250896372389969557984586852712032957726154819677446376365284093411634642781081408737219067055756687410910033077082470576237744252641454181704790114697343245081248856847166780035591286109679828757143682676881050590912861013060724592702378386247738020742249954752109751862487612963934426884409356309443276674009414949012483704132609548191367181220309137502530635384299743828047362180919259680718679885883862412220527870865715879579992201155161373831155595390162240443455007483978902779370145039729153550054815585551912960892411681688176618289169005880352735553234863575400825978451811893166136628634864337227018220338010308380257917013167793536039428229147849669305690771481426998612801951948891728360021916113816386123160516836023868062037242464744572476734776960514312885587198692767027679838858191965342477419743040329969411778877521644122094490081928081515072328305700965067535862016676869408514704465547098611069188955020634811159809396168936680638787838032046053075338194954881503872681435640169948077293840392509007438400174831790338178168406121538627220345060026469172466968888721793859500136484754266815202403791124551908370149657302197340436516611011577801462344299237661119028240221920759877606787320895490075520353859242935549412733598438519125792227673587760786788874456845251356443029148636339738883224063405657728412974066020184276302288488168108892816492748613186308308870369769056859456138132846986101199375202713110959374604335863684426019521060569283744954557413223118897208482346903682507913044837169861066419540186076363051586456379545434808925194064668970727506382903585575781752945461605597847459691801555556772024926565062388228762619004994163981661522150568791963261883260765035154007497140831219663039738562830536563234685392967573770533778498533753474787169678034036755818890867856047916865095902536237436419328258226178706232261316378532716363228105955151509725417159059760557738162427117850071061797532420604094446726586951739972677368905431552671610257668726203352032330692875337485256121388504490525867797114786695683751186082956725589454717749503189734535604142907228064836492252113902804234561181483017041697691079799205221371534322778848289340914246083399439229782368174378383116186739446547091924221297322837201169361892764570450713788441165959716143684410384792486402284359571635520418890529603773783088718475610763844729262450192178418295808734244597451786891412559014676113037822422212512550313117874358230504404738585047737143021738717928309981285879322435937644559227946431947762946920997749787846973104220172754156608925744547159817537446602886975011422472148238296167452920728599871882900240792180172623100782301924966211165085557988260743639351956961808353294069023161355596172023220943259800047576953910513459693068256267380329382667287796524886468961174620881294966967670213184360344112722111544672340596489261735648494769766194272582525779319945687595976136976543764372788213750865676256520869153404722124508518058592635703426859712752996486859321405452706112597040004385290768630675388981881979532950711516520476996337855491409233261349389360998332637773672313432807354868553283027193407428128064332149360438289934792726566165122180909847828694049977344836997488551790068613482855639288355544806824678638514211456065479720848315059214669512724470927850525108426003548897558458583171469132323434393547278073392383538278053159412372081745911400409841825763379592065548007473583048944730880051268771395360773127328594041091350032754342053839398186354350976748455748857584494002484804877165513383160399707524872157853951767955813652607756948932971878713004244886670189813698968004493012419264307486932576090301959102605813116550369819234462788618930649005224597941540328900439190074554299885644489560499983850662439397569601072405010284449222825565514181902156264620794399565161980185924884462897351877093121099653944422733428097341288136775490862652198486760581097958196349516114782560795129398667950475261403467294561697554632136183320239837490113408676998212532331789589433000920849552634535790649348242243959027513780498579366410796704941958550838460421523762726164475297965610564030941307235467526745670198625599212609114951232975521356214939934468277055793665283999874172619806715573948648207897357738528346998843123071068619152436368264205956578297024031582540571544909698571488500382566129699417042664975199201371690218100991224218229228591129140801749908570616302819252272753227776110877861843469742141241400638203200155933705382848739816573136345237133200882811646225552413955416164265926611038423650697194758998665858329419868834497841422924306227799387047638836123187745460798300698337339917818878021034600089521657304793425819309922676320368956208066050464249539363755401088786484548526204593453201240650579521129618623666182698091793343280856584353933955977652509037792654952049734374363948634912944550467700962666483716969782109693746371337383814282112482747082519892972914821745240816036714584983237052637730746233489306076804126575005299983759626253216164022151036743219195355797569665832377133926645093992010030660059952076509415796706217974664536688749334035306056020074829710768158301565462509385188154441228495386240932932264579671692061169451554182061991322071395118923834816757317191234924383925864446652718729852914125688421006625077967078762280415787803747115477864738724951644298682382703356484464311699198817831422836796074295298381819092314879288660259205298589099482232074428363751525643277056294066836484303151052336715495691635928416295723154096268048155469893990323140552982708039205702038964657036321987161826392428329245649384237278064630615151296701156216291586475988385109783586697612791801258745915212233796118452336352073162178958586321850328347018470721674284725256833479405339488999473467729652938205755551647378052197287576965283143399487690127283955647889476860396175503116398480660343971412517288038861897534178003790096282673395177206024537382423344195428854043950556575350659597480682756808856178774868856893098403281612827087984017130820697591673343403582726146769192760233181082070144773066370997136237716583144860197505299577228915397267201718595265870132744368848046733927451054581038305167560295940844510733246950094235123813486240004717755008455256209379558896436947917525035032646632044233886641108599733855887854755909097572671585929786580011060938887878057914011247502044931580409753718861614565971385227347534607565004170254739343939913174104896725982930545298867463609119047306471495496538567772692268758897837655058485758567462723164675323014321319909781436716027812450960531495922360305693431892240623224212072718144921320188033612866442744947957855178385699098674107425673050495958942836464170560423682791992923118339912014737634475020983263128609974466650206772499317491641806041758331974670058901147640670486730431268951809977636693038227222764886690027421596365234255390622940956690049373951971816820132613327569595323799289296532448508417094086491836515146615579176087493879973924502960776049226753897157287923361067740298668960835032023264347477112217985834564452326970518200109469947459882666520338831621808103747624082391941400121503949887821327593999345193865675834794555379374962585202269060450318348619077162385158614813643868819368401101831227017572806992392506243085846102893125235648827133691610060239036065903221348785359385688702790733335628220035566218368194787585784960814087872385821631183353588444924942334978925708106628475201070808300961481161594374437016916772939936902052772184893369612275830368817438134399139830229746761509086272857606511287146364181918658964521791319357246661075949808357742518727971343472756112891725824757072343282078155516862973129175724448389621894222379528046061015241462843837602404107740424546651663745646723956706224829768286093515177652921463318237188537401472117998746581228173114972376627200502285776603617665331901333665802651347061129347338975885915014477667849900616431076276974734252150232339626502000970617046262758068623763887394086541512537180447417680908137534908932496411433220073609860722221640253953350331899832478021074441818873410216024602114459802869980336120628064432605317128922300639490946579433588421860314076896137139922364197911766198936545785602729266968168538636842619681493262045929830246803556620853860426933322313868608608967736290253531224947823696580041707611357062569590627834837494737264085585814971556744604005244913740494801287034222830393278186688837478856401518493373453572427524825955001066750772283820695864675340480328031954063495412692521126031448658562067712358502301848334276439726323747488440237746638707357783856496736498617518605326018238960922082360573647637306579365077830721447626236753333225608103060410017967470151452091194026921984275458196056293623573867809651858566387083847595987948977138494407698173644842531373751226414582452159425213908705264685928580533201476009407450318758972085298775305537623960972686620779474304123945005504657068638969106748517503209002487094089307603791730078974700784488143075653421214671449144706314715426390014080035077670661838935337919202396922056417163544995821163712371857105089304722736987368691325981122328743185925847029697045592013152635307702334449976109397684122931950835848600230606425147786185021308249525733525707951164731488054058996602832720318476066038483717201334251121508527818128362838172625775930568730846717634295934978708699427039681095212874161057489452264212401254334987907895010326383404398385426576678684726424298945902101468125979696987620081453976385890214459126501797881779486184894493225334393529247722703325922390635519048598685181197523742443278592712865398429750714999879422349636971978875008904462598884542438821039025197684620608959657043929955642817973237710453100041645340041832029749014790938881335355844209092779354353018903178861265617783432653780793239349764314843802028976862376503720821802491750486226238431852361991313559475980754356816964868444624379200757229869401788992779247311575094189709188812289371738938815370284405027582447283196887056752380247430606151466339758215368381763097468375997800527442342485356666618411558990239964880199639280762736999651719610722898701516306376754514624961017475944481592851333620838198586954884592004709265754506341332944300268776114374504453196466073254021567727391462379210432133930045917814382401240883176573844795085959359620158798531457111128309078074979168456009455726074471182441523188644579868273387573277023107294583518081321154885921551717499765957060768165528165906896321098924647764623585110288815848829421552918192720210909744462043763172257746211514434453342155868601135017822794145563953509746767161682053732472325665143698230716638388435720466718175922076729970093621827969083386229893436031782868450053689830992948109594069635440031419641856438825344027471194550236808776897874294181360045786379111914983568160039629836222952647306198226242793755331135106627733599120486770730278570207579237718594473627821410106700976598952079661594257660970324486250976605871178480908550192717661147693800219852986218025735470278553694224803813057303346549034370286017844079015485546022787883411770106849870077373237162595663100115693639222261904134219496039523815326409269964707693128226709927147900227820985355981539970695386824555300972431290359075589542498711215837489555579293454608967908175243578578341731066813263280919207431469381216567094107402704207305654592578136575616169077117566096376744078575879908744540327543833033645382681274017471721926669534940253215717788104554736639260126680577056941070803989496227864439422401862829096548806097109507886549329645969854183041719896181945424662105353447400640096321978313021606506102096566938969370367628036399883411570596409997142639547014982856802348734609886696777133411577017143527960732037330046275400388472765121088777849084823539885676932081114326385232758972053567964568122648484209414629316384458129017321254377380484976210583670778666751010887930102425819455786952914568591513326103453896661940116580030032213347778716247743950494413267840113604372269377364691632873406478461662833702032306725137574965281066202610531549457027693613639438442240724793677927259216377651854106773890104428398600383454543804888679523587797719189071579574326218675423566466954494543967868832663661943939649174075757911909450028837645917843141220548098752739799524348490913670604511247531748864649478279088074954115234670869543248980623139161648485908600855005454340143145820462645860067561060756466320542946858408166878513609412287088259906079199984728944569343151445315578764202593632424334485930987633837254139552616301979190744883689512330611925973895379645903659678653508455393456947293981205110399816178863327357106838430737945997989648788546751161851266243904424173747756248761496400606047836412644823520825281518593789489819951576629450118203688537352610049191278797938324728070131602032443583249305394618649429875013596503689040100236899950426227060158294999869946068789531190717227535722621156032242242278214858659226156807164598380575099185838904847664306217807034487545588731008997258224500014643392297004726881760109270571794571490558944844415838378510516868076280472035664589640679375256613009923020679519734877529906403079370914780546276136999886663540425289583561696949265849022286966507086634035200110163518266140223854425609013570958653165775621208589990330132807722013337125648105163812039943900573577150491567119913488332388566868163347589737755640052698545725313213436523182897785343799744375390106623668517463929729250839157288803937979511655303788046544504441110076785658204137564961254198268867070813157059380685523698228737632974096011314202295266553233681928744890758337164901340554229300456840023599781462384845138498482792543480194422195913091758777811250093891544957804327090265548864780522987063905228575581607706009191847633615250511491377828873065949597116362661484964011644549762053865305373466935623564079519135436667305549376280888894081802919774389038800883014173676019494822727298881381959430605554247891506593358097136526181383078298228799896119522016413853182203088320987376009184975681475946990648516649463845991173724848441861118497206670551444805951456336183870155856948360642286096080999956131678518184049207274710598218401145285547152195252058632382444710777091116669083230110938743264452101051304332907325344868484040538354525226404326667728362897570409934377147677985813485728769744612614774746183341454292746221529397330150654194189145870612830292665616473338865503832748276114034037225159466212877204220076494198771297336814756683624838250256411260597093392621665524482732863647875192412129408571640278682794857611512805713993901633240880512670380757480396009012513104453286527470093460456065412169322779179342526604160636166299574217102228816503486543373102057106921604881853420340895614087371506722748985519152916925657623021943325904023127660279253694963680741911932226142812783204687647179995092498910085400014568623669348065601933222287665577859878865344434064009177754131954645771667306964319127705943391976055645989505702110466247336335925512831212555130563985117793349811447928299343160183831730009554861241888935594725201178439509755700605329598792183113136505531997588193512279601592392954562391568497286412568536289370427601460714172679954799774743863296736310739925951262275152402187961979926719803531034147955821240409591176873657873676309954570530921906892078850396553759716167967918857557976436550350725077829592958563289352660558790755999506388146415168875836852440523963028966285709864429600802761794667181371110503088370698335808916421907345406202940769082269223023151618096468738166695602078866351208321560745479889130884541643345115471555442616858413978360579488304453276466677653433208772964736361916320905571368410306479387827927289312697371536088390934344133821971112086985281153375464749071054872219619341235223676786490927109364985020682717229376449641161401769327866502981183966384673846915531413562325457609025955680175604599921057800068862031792242382697600606017628999180967439667066655845374011082985959747743525597852122803493178940174430406601825678341265453142591971261108360591995619081172585992997411357778230930322536475698715242137001724886240280517822553471415409248578524433403351167413274478143726621598648764937958176805852723451744467620515420708248250823527880971868557312644522310736962597535348909681463176817533530965180789170365835499614722030892476006364484736769886355282410006423565506002429034525779418369009544949255688525807116566361301108578902195691810838586858760678619694235394854667988534854165225455478472044876702178950801624241913282288983379927743452818357198099030928538322581332917927433426000678104870181435383291151390822092742228671943839604839492917610524497932170741929173501649340033962627295138947704607440330616598122227595831632711930519506321042202617602549897160635609033268479550651747780610695075203484254674969517009170569483047076327540507521721531704349776516180674739618237349731749535799437637351575803532071396694127849625419889662153511848630057448695790118642520449273134997671414147978273436868735122165856478291163532874415929469020936302207696756760853066115000575149679923963512431407118369156382295440842372528829596463698121515592594952061303232963648127359476662473935812794319711750385496866572689792340211800031469458498401377622342917115608619876507826764807304288608600867581054262062048805307799131319627420869297702846255630027666608774290815022122768586457270495351847898399098891809848278835740679626689555598763330782066588984663734568711695364161750073516391585990966179585610082472959226078532035207871365887093207710177135337408285802140939117505774889061258107644703506479296227052622584856750333039134754916526036587603636105915390233967617105164404343682852773954338043205357616344887367851556217776852998962553838124708308771137433271265024234981614411122358484872559600210678285226115610040315003172256989668915858936977721492138526748826300671565525682801550584351015095383153412416367156258388596014854953793030852297212312261550359144462532750128868982295217427443054485894030810850900224302395015747770983288199169769863054189287484537322774446064664371983675491245340235546771418905812935536607341307573449849849274413903495411122739286355025833019695876601839584812943097300392998300600226229765217984141124787818870026553149035496681665388888144890362706868635663301263318733475539466115337557855110559636106925937275391853344840291594403189469180081431292237274297307915314237232580964742066524717674886596861429566264449890240728705951765922465472461221190451809103769989105733155468552544868510190056741211032859138981264498314320266690008414246076366321291935368299945690437826129125284537231460356001968305743595460727487345614006985157780875202941850076736953323136777878578604280663932117767929840804226824953635974722746467754441762122720459622019471239580884525431164427665186898539977912039664851521842850849462049823134638679178905179642323788137466110693327702507154758306399722488956688913154945299715264094065378767358085445635867856520377846554776433577557292441287742080298065296738405822196856675088225343573510415388965967758658807337032829704995704787527281602263525804134286989155119471267660294074909077164358469439064951800973733764839607300345500582463121153187286136602452283542593522306439842030172879725342711055232647335534109885231338714634306888404192499469215342812546204134495477935140284213853730904748939020472856805277023599574624599922449972991556083630790822553664743921715083929987114782156421253311402565581914353125527934064347742146156122820061749323842515742230147253184263399485994552259596104089644824618390076482335368837496637823325649517473994334565266206924724211416864147037233602040716442619519474139088095015524801405944998433413765655635134954991208756479058586974515192098114317145808154620445843358612022266701554256549586038158771418906567347688787605572295803606276211285992592132077999219431104051086821365300007492380040428000371844337259272147054356013294498851223675248197670579857329112726403406693614652988398951164232245382931326785949815933892181076429397222460470949238374080344409849675736112633172453207880891290910364935067860448806128711850766819437258806290840363636588855358623149690030295734375278366909365164031370349105672353284539937552263566589571300340709579464726517781706282699117681426139798794527280939606484598880415727199108306950114255556103289440610785799323486974425347746461126884099259480258989046068146435118057987290547798089480061062245110291547785293450268252158265112718095640952359927144418593341828095458809012438487186379487564425852655561011765815486138454157717694912975728135936468487732601101141888538076862958862051426073141753364013632959619178313575762014119964732544559867275165900998384155704789361795238675234636944572986224943099184928286421766187389717390659158486621538189063268128472613954687910405476459971522050702966599101652494798299644064526593083993290037789378874363456963183926313550904051212336244395310125686381638737450305828462681621059572811148795606481704827040457922649258564048344316042863182078451215325251521019283851293083521614935012095570593857895638797037109252750705864165629740526318890180989433862917250214054274650869001750372305554330861956489943497123426633211869122365196760142784926047160880489650639235514772155995442116634849039204133936101835024732440336077693548602615492922994254439069166224104669111448581171931383618446925238174102316969071573750685110551320018949923545772363907448603867010936428515522270512480454352687499939728754829884133561409371428308216495375578335525025355781604000978954547253404737313851464585680711231121885852606279365148058641216030041192746216003260906184989226676275098180995850361175189891589898885204729470076695739010283531645209013559044127565707716411017324273389526601204821304741956155343673321924874913648505358599909758236593101990250804614290343858085261480365745914779630001235519086499299333239126030039818148062899974448625908500825927004808691047413769207897835504658171021461466816597800943851450054300391757813439565002909143596269022690125687916617861136024855551653108887046492633481212081219808056084222761922804872825124390451818176803964024867460222469218746138074577032828456923836449069809193987130046463320555212199463707496084967861538624253616611337677272366848281025260442871556785805528078593779342986674604837811221005280671532299404177040728747314352853122053631550872572976892367340024317606412131766807303684474048276968678438656648969174361424946264694859376703630415147712994940776857449733881220412373739743823254137975329095378757170766858664959897707321822814617794079350564855376696636050753906888120628563587992812817675804129874297769773981070443843390634326144857696978611590977972293864987136867682184625593741459858365178468483000117692240711057460414942087349739562761014017441192092816214705845691885684358387126053140867050741656466614570783679184392683779501656511476807569918923683655475529283944560060006349458307151177499947765165420475924297100133957818831725278663744303322508353766916367037094866546569827256982200710585301723913920730906680443874937412884018821117288131906684730520418105192060971161299636319379169035754907548586817697371155067864667279067364285950327126803442025111474978719985975921111621890123874009312272711111086852937303168577401796698960980686563604786778211958924761027986300531844624357038427480096696032080620758815150353371966000143138252092670244259420289499502775461348546900883344739076838761788736649539630782742792233344843545581005079512083529822306442880394151204333481740440453273964519352079702621732939159780875627064316724546107589857787864059887115999402888618719415978765498778458712090157895227469657186382474211203209004953888126037787099291020703008609141539907888920385946579559957997163943020691226943700215478191180026353872342277908083245226500453178730898082860674630203516634602727010830003622537953674791242056871708996235642778188285570003402295780292496573323035268922602836264591977742221807233598634588118599450333278527899523941219807597371386871598237291007223163196829412409856790715627016753879073299735387984328902535019255946323532591536857377388111166808269276906801979351316944715286858252214173887178809826434914843232500338917456196480033532649684317334669098021467535088316475191697981141209497946997373016758454508983310773338231855014637916913523783147071613057134018993579165256518110836679535923582028208102063461786571804480030980618390571593599253765490645505537584155999208873780885918637049141350417343401081421120312740856134366104605656752125671433657426653731775124753761027780073305716213209348633852740264808272286434492919967489487169599088829456443578706480864292082010171741155795281269895678586163503161167636489329424294044582032426067298682130535133696782357660486823840795694960868864052223943269070792156104681991848110894891472057243152691219826168294729867288772020655169352914895479791000654133116569004159812277199307984372922165097069925422813380783308115487553198287660764501466404855034104186294767983884121077414848581071572236386794224861111086852991284677178223199137528690015582390228907743795227784598819620538272700418174815809919865967875303627766054770319483510269048804861730509598085808488414389310324905835377880153625536811845265504907098743533297378931799301791469963402507805073304310580202711059835041561241801882282220741038338916668088857042511260890009869863787592276649917766361345027559678980887593213156845875167702421014838520685964734017616132507819119471130208328187622690627055560739841969059220839703544849823790564397555576076766494683390840137903964628971097556911838498277375742493233350014307666818978443304307857937918490132860450515771791838456444700204500133788840959550337582966021530229511251152254197594844816600983067697474652697014737891538390180597481039727249444109253901407811085163234207802015663735059356768306371551487146012622762137671686139283834466805058449153374723365642865848582260877053307535827789069714298545881115749833362229125708197691455197550567707098099939889540253920569351948294121744672249550717698394175440335149754187602520149505074626190673121235732708180417803203233461105038106692353756151592452454657688153618493724423308655778573850153088119175812980831022001159236229389563888697366883436853558587833863834743268933569055461941333970204198737621096416460460094768274796895778351147429612107558800236307036507100256220595989012396171994103636835781575303281511148339084214607697024138458584646476638385608035950602580644508894669662385494246639135585277367071892629529526959717107000017520315852148885804084485889627689538440934938018881308114319824263833007802115526854682169273973176976239158468862476514601893741962528769547755336700657977693821824946200892272075905166739437145439134619323973137071162546073760137899545292623958485065217542141379959997358731838435648632208633429064595160804715226625081413359965481093631289667043248150708008426876472977092120826618899064003078836184226493086206845982738469309354015148046828798533712519007845802733289770715013192092901041542054272266923125013957008173868748815634173000410396828226714556875185403426907614914211120134018524086394439158661122584521383710982538959673356537275025866279664046909775375976499982923216837444363608338508195418088487612343820806448170485196879063474550248965526275167422131572836973745191910868031731351626401649006975926201117117953171594371223354236199883053830486131204590355769307902443446711674921970581940418005499655564002462733852446700663253337057267048041580392684811284716846481307390426227364376353172658508741565195906245586122435728512464172352236186574435189331507782609532630955639201238015289325857225929528011421671901320504977579846507588300446173615176962029537518709443239871656971377491764347188239818270836980777303609110675100685644517847494052216434086583824960434698931535177472533718952598200155882629209240665148274134528238481625903302766519063805458212610813933710146796132490659694061052469786648636777782577470625232946396729431805945332968434142893696487936352393702380485091583088921863434983420165287793101678045357836747716901784512454570744683229735310082777392868844048471862216063572426048722683530226257380183922294166372397011985295838188266622964826075163193318970230188582833781061689007111614289266990718319223637508387580551699829167614151166656943364598796620810637346219528555041212969063716270092103838350900020485823396157673346643312634522897212886103283331377027551082881325792538673830771882969900974508099472182245250449296520947052623889659237898008056892111684100090299722024661903410277816937372154597498758396451648044402497861831495209416634410804776417936207592960897263361883814406396738166818653327274128798329480388385840166385924328103706483932583046590379228091213633328373277136117828907736800964796268303890391922124885502493783461848889130803949369014633236819861960906160395188824299074172469605741165967475027852933006493781551906649271819376418803960247705690655881010564102167814734279276629036134378696327636275680313274186963629105019136372920506354395154966589882896182257800227992068013448578044026704848197949190401046648748807165351327534129333667387751488060536518134568023051469419483696569047592388011419850195954902028958489571918607116303567674790012312777528610222380255898966159463631146721096790470316366951325647644126924957949300164708768484639153456074921760734513346860507559860050267748291153275916240302778886167759835574528152215990332960819691873894831311170460523266055799869311066304819551506034708046557399899308058893163246620905514563270017646862732267959482673903400280699273161503528058401597804137894889401473315157289006906478416389167920955597041359269996923860867189004498289637338686179637864940781440957131326424952095950545268098265392352037934079707787069309874832229759280597414416281362463197860434996021145026941011258833874959941719595427878268535960447138661709590911934668179405800053447433455025278361785656207648218823444504064483063489118327696299501212332286047951888516808907127257432386585301934132755183705514492473860022310342442934590332467077053732633020332812908217452157416400482806279817519134257105717475053992260223635939619413277923629856288281061892738277138181568184154886084969159351186946640406318202070847119878631584066034804758998471147240611592323332370519977550886766412453185049859718764685012002508910765914610292726790014465349038908194385199151953456695339583246090007885323757122106511382943904500531482344371724266046702773778861849086069482387477206471057795586684771430810315338381876834776347338369395561350849072194447265225896180965470002002292602559395897152377084555966146805322853880792801526126581573864564401827629945848468301670755035569534772402638725503546434282997612510738201369960220757762693674897493897730528697970500609038888985900572238832144156711836172267043311656095515906596176809601218081032844169847918178351748416961241028958563901596920606293901993517816580577902500705377608852213495240529923218459312040986766595314102895443826033869765747494922634296926331298455245374661676332015062476644593492527282778157702293663360353290288751740801860175766256648087558755307146471618240171145348680889078053492239021144288005021584499994219932775094442879282547661245343191382163515627402279251065498904950679839956857471864142908995788805332242597972966807462742504480179318521458943881851223919660037267935917229620017330962729321028615648691528572292820682716270616913127922733799855853361092108620555590328861569075724166732203346139576323822399210607373632702810389488042200569185907657205206222887481009993181357860762113369845247416335812218148406364302568123967995987612740732984235682211175542548951303858361245739193763375692435453871127570997985816381475718021054877458104199666947229427202345860907257372828422774463481297029885067274799200582693938626984686898343886763643340580062411785547352288108019484029611669887670314338712697278711161302710406774561482260628212882004707215166099526979653508809729039935522156941880449234947078535724034606023908940696382774251860258405476364945329629811800713856177753554124689367492668656679001186471815299584637612793764548598157966008346441910657844920954811252785496686259502277421936648802103786525567501622939835738436974331151626697667918208124381911018588145353149558552344519980852288629477138858220503043554824510089715573678675945036247893382057325405840186921728424471637278412603091025327518437150791756432841686874163921783034797138376379320849487204321277699224833722716447409398471560579600520616408749059878055801920666144752038307775221256238293854919137365288556142176363641699862742726224195724570575189723706379327090716242784791409168388163982157585299445052466041677406143505461557089905914548992336420388956982518981096880900282975253168271295199526120341257361317673313690474334212645328650020097513265612344785016328270965246046886260512288470667293441488505160620091234278431081441626757614435443690457973077488527898623932445700793657118527807336831261138794795972617610401649795077969122406553026736373225680130861350119936766446732139675107930467849612445865845182663197590835171400147669718079264798176635792692793961168322171364062798166872201371202115720369780893731101231207707872125286293118379769121624093272621066608572560326521623228827052278035593184947684584310049031621360343682090456224485298632667269404436363509211895608033787320466313696300147070634639531943983623523483249248898694715386372550768262356480536609206730254175155618954903889812153224898151576465272796386799271325966384192381716962707956759067397535983373969741132940491299269125356202778973683717723964209362482416005788667691090372476020442641228190692336911479334236020975209646241376161993906769699214360317903097953040935668752714468069485555771486761790454338003737778857732433385945832365153361488170055380916399871737925091868748857752275297120846423455402664394470237234218527336733438655706255968297257989941306840128577224893594542310988810416236620082619265136398324550802002512641156951842437699218736082202714422852172190363671461815105451848278082825084338940049411236469451302847500107669590188916669627489025371985201671375819636540414929527074218650767426108686525872243349294587201684653155361510079664098710464134015910329401058694453703230883033101258962774327691148808187775334023850527808947702023743161045346399128520795728016816178358119081171559047181747517623571813497161634332208106215688402086919718867089885079088590681989596071765501199011635726353464976091482492706576511414283974259162706652463016148064196361077010978034594493454397072666793200089257894517903528691356135422500172960119255238045725235155343611531310566474827874533569974630290611593408299683131099961024116693320226062848408668653494105374545594274395692271028875629949207555979259939144929270951833371644705658976446200297624535980481446425678250877617212241070934633676035897286267888342125308984451275715909696413680935397498257948245405401693519825138970891441018293937202103115313753303379566532519751856571529264654692982894801721183215489389276097450716993619072005458196176280905093717571261072392987105344971380197256622025564180716169548798762696470808347913142742069478811407392571752302310116096928957653417909282284222575549160959159798504888400162138703060758995385012828167010923274815655404509969139739172709905484323492566057944279623501312122196036676788128163130392584957872800728384592128305437358242229146965818656041511427011517725477560613460520634712534955845700982950203930292157434208737349253895239490858571822407395481241832589361779359410251271877614738453731422020148229330840962690377680888222135820275417062238222224270403462392502695458439422052241746296981027846780106765887172677165003225934680988533891239305049010923196199004744206327080484164609216380313887074477030568083563762598507927175739537161931268141296440207314362549576541786555945101089324688345581023688662702805084726158543625132161457744920545942882840232619455955014293924012746817147657109514493724235338494250810109490533981846685246205728906807301726033890578054956940740999363845584078150148718043997561828928882248190258569561202232508372052367644671716728349798953262929698280712910806212608241823165987618901111314087820728972229495949703836068643911820455068158702760422290905416359281977622295093268677248332432166395910783949594316343181553446559192720841120211097008817067329100236531853782605168628615880281842531830868380269601456740000280887611311524097982807382279881206512630799674117611218062575278418604344844324648323964686842339681542007342219099788259778880890016828866145401684367654284380530288803440920692124049206643086590407432812011589916580455925042463576747273230738806414243756364065868929072600247561700288802385321479475295488533195210181250399265518202466863821263590662605170345768788446715685757673917536542497598779751519846617583628417559057940611089105581022531112501263551376368890668887887809274773747535776212382809685144801074615674152497537124071143088702774899509366245295174649685600918761916596253971736546127832677814861307170634142943302162826585393498002445306629335027964092385852649662412395776898371361290040266241492262430402090263744345878173640378756977023581947950165900415949394842775670448926252878679310392130256556568001503545263436519229025381523959743087891534204013063888798337815144198168206495494209164880580050629560178034863839232569685817450716093161287554853756016469991268454239291103803992253137043159464237281685994743920396288298675186272928930049304928503399664355075277713064293557186972630028854502319438975450676326058228276540738356248829268408270632064901902095128781559011513986255711773011207618276131976601550283632432090915197509083616221049116251161759654644932238999114534347877214169413131030308799733152986944465751801079034776667562279048662172221081064653445613649455927065484351627192304467605153623558200662517759280626824221174503161020119060407519590236554769172947483864463615911489590343207943100481329462738885184907025815672014278820537482320762814209935591918873458647842531269206952432835132731747372543777571104504660323589436812722700759987417335187108442732184817516911389613343209447772983622680502008769662467822623819977312564705166772553418433317481604759466228587122218511234972442839828002386008284191685515489182233135282786794995639438435706568876495732789661106647111974583865451925299649197575316932040278325569300643847055841266905445093993590192176558931964335757495908600007176440512076294697581591030837469432626994121486475813530420235169540640649159260879262217317005910774989594816805612502014873216907914710593354451470121967977399143517961508740691707064367095811864119480468504597602208958704484738367498027823096760286924860423939194727275287477651767639584478195016053393178031245587610501206412609398425065617733946819937794915478499980649355547119248738209514474835278237466030634903068180916383862306097734113178434220113357632559998898976117021900110168095460078542270943620405683192244515299089095381900414420230816508643407422824968601847403234927655082856746964435804392392630790507644685691564498461375893521421163154651945427468124042776297390910645235553336469530574057253546113920541176279005365200622022558884286287615864829577965309631350953563792935717401141425151749191599334989162111652094798886351636800546970626077373719927306622695699813271632148829306561625181001237626219517253231303025871555641608427950991886807369491793845844526159634623583777351590635894802534791842213738260518108305883990306009945975397983969676229857453027011716207533548140393504650323203332120577221834068841313984269125250537741964480838281861771765050213905698930945495574483364595633797890063251351312364965327557574935753412225770399911290913897496574857819683894575531879656650117919964651721992459989044583291732262091870835364663314255058153350350302665470856982501952743748117926756826522591520259653810165994153824753394260509731286855928242046997381203596763945552765190737151385727703439281017688987940749396171125756237114037046343233198549412709932885425200405416135678829484164562464524809303718706872048457416075838201589716109163244022529677901913247742241868341951443167820989565829812385985335469837577695890722190572539553487558039764955169343119424009834751611689050535111067674983477843109386600722026965266178684983344793582574228549177266755078963117774578668993068104667711290603996952416969234334412803755257251261341497460533599752696689587931413459984451509988293318072921607069825424407934926021374550384887075595259563128266650983568548966493830144856999525376994363821969613096257952644048260586947808063175696612483419531934782154125777576584278931941826973789288151559532826534849143903701132436564553152341747086503832901066132341557781689722005871367616267492704571285027325656980732839956599651513574616477374456712573138145145641570226756317898318946164183293583103159402759656169421643885272646877236272332753830107716726266106937558854968844649589777904292823788500242172283598093428428979031757607304112336042165641021170265729475184799371443800064462227026848641454519362949768425444245739187251725779230971672203805229044810968386118274251818484154655467869449383968093187583913657652921207381767301379253186546465428662236932074117015840781628630741840587350481102197534378320535915652280004838641179246286659738290153488449263893609563009051374814761192955622422880143757303287470498666911321270115817289633246679262984212479316846269225847434430521041770000375669683047965922419467412604293826171999983218225721480244016742891576089787940739258475235434194068909392265504449636786842931286146040599508838148263574513623585557398653542142043538488208956284052217807664087151842681894511027645730744609583386450215730264747420863002298928312581377974220878715645766375956057503312999139945614560640865592793598931805432309919568635816972516351097093558667038810140349323669294797878626942234682834237820312410688148762171581905029682038365566616155180780684127024404050468736958010919791044982589003318029736365691296201877061868240118365832761154380179216815405331362859592083442793834282181981965392807317853953328103269412580512438984490368147818195702121896213964748974511353160144062541209179273584204804245906230248186154831104410302853686515588829203316990502627150895926907756552308501438512636484867216975429891701076400413283867664719785693474372637353651226313139548033752807523032044921115703755054430698787294654116882757319260857062797522199297682832071784578904597995932607408812781102952877603840342216690894713450937055650212697354939110122177457160508677988392499466573119373465200325948149079071591295440300384576714598940254157097863259223100527649749774058751675418605332945198414950452653529616332080996546696663087925786706740726281615805850621445738350127435768715037955148710011045244888051736744676408376253475515624019889125403904337761527620507982456117123167024908625287508846325272634923746293854493069719885868104460585891654106393742224761597606492735377662805037127932913919957892155494375465312542318054454700794533291952677950528714682753638890320753680426798500474955824511074798427668790052526651034166277984165931378262181229480146344948963562310276752962343231125298407277647727544916350763563779137253952481589680071266827150286341174832550630936476804197038577335678034317850546066427790366290322719510469480536955434154554523323109445968705453103690605081471185486883888351378698850585023629465723501641777289343047339673163703045843207601961532009994358674271455103316783590086759076586368341153543811115138882256960667420191823659372202981086486477602697541104661159407346518663649891737516040166517638463947639332952539711126086415201705354721689987334280031390459864794325159529868803377288243416774308214053899162426750158104982202669855564284465679675545702474658108559207911613359385228244468554784714822503778206592397293277084455749141105135441430393341391605171994214838512493390839049035044960642035989303875949140269760524903913128894656713100525410021167275407256296546707814581456334644247412197952224670854600255187386304767232993514309820224019463778571200611656236770883591009511261000517841716469157852005848323846746372499819596644246311506604257603933263070873105949974676178234102987414025419208182095121664351032512284302726022009781959981913270419028669893598723261957263632080671123585886329794010739959367629506415615723500572807878939844480570379233925192168365506183069396813787071033786929241620522314129134964585738897774228139787648022481411475192030554855819900578518322397288839929808960671697086335616444156965265222608633878933894071356762011407526552660548448692101586344412770090428744160351012085802044641622208582314572136308492353027063188270246572562303374377887788150362073301768652375531729954507000455739259347207300319556889341121764498255814113473176995271610273850030867810132438251089360335952153758767575302049877803660623638022045653272620935042588861037150267703136334677365578565292661594965488084282765492173475121627699535405347522375671455327179329460538369334072547327343502105062814701430232909377482709400373658045752007726433646852363995000431679339599219900021997157650520449286886187053223299014696983594830447493727218484172631502580187192014466877064794832288327188737122109858805517256986592987447181247889282038258771256948537146464665525661253578696262465273644239121356974652232147891995063044336475518174917623328344359469368191616434842940859653203338192057653175556269471845113519843129992810341516982101578427326022068987971236501935056680169555943894427664699783140533542166696455274942818319921560026415558881010333750148676253670488760460335267363100143372292390630054643973307883854836088960260404660257403029388311492926326878824843051714264870537294904867019309710233745690336217072892472058013091592017458722929846124147069833099222716294580781149639799132179723295659410573169170165109350474227114259470949666516947493733212442407184509342163967119648968140446303655475919994258872743922888314666640194979884268488728441170876632195972364964238682345841751617364617334396882146153279227279398360958414849667997991257077263880652376449637564029867410707815799716368603436695331294451521225432592549399522013189824038112915732397477557318146279129940515538884889381634715160012844571549140665622770672493770730118997037328282584753324758922931909135787409752229369798986900245743576513564795122285108950396419690675899091378574164293776324712562914081684772904408005200924096673006841267192164163286487457543714158597398617945432652748547480750284914306577548046142855713101129602647923177292066398094128564102926334381515611529504495418915419007341114382660590736353382165958773124349086295241963905219923834995664032087198912710804173153704047896698683367268431204825829370404825840683731897403277785023478117578680598854386179338542571761896837718032595964096673564206543713007050609546455132493797972682696961827728495426570247685917955782184179721894267866465933128646728830041507264557936500232905897189491644905302080390507973280201877802998345097414820181954241063698909654660904965220982350000504336686497578493097440186183504387401801942848230036626903687434100496859807939627896569240639577723885854896109653015443272360068928454899150740543274593466098458025773552120635791110635396254103438971360845241227239287878798360825778587331452646598128592262359889509575696673815309904596504989219021106151250800983996282306115134362791253630812815686860091860057676784742820561991664217136604115182709481754486117960067729232315748452354599422569961863223162612963507555868525609153637068765331733563527444508458518558339080354357900361058869677425396614084749346477946144392590075518922489581011787844679563898886846497656006396894476494293832915988991646824347531215391659165707502903491888480782189681152366362784423338599068864312163574638218198853891358609041845350847468112737238330435794383811457348780803379912369755268795976271320257206413279346103306516894512179815076991173597582631691170472854721490228993700238285256165774597564179253361233854640628026216237507371093177514962648405335564926078959681255108444063931386625774287005841711225019794059389971857257739854796473661987771240639259226765884828660433211747269102489950208335386702142810588419443353860644174633189905567778366650779869654256241056878625148292702030664464996679502252686181438892458448661219130081085476688305694215467093111930347625022452731678390501110798577402198052318001054072643408228401448821002932227646067340359604276558012287919581368062538576479594448245826489435383619566563262760892013455593103475759074303831002532774104634743054836637673107816081718766048098416919712735618737144293967840389480167603019193689328913862391260103792142819243798863928776284708839688823427769123037111555959624686337021733421871002581459768092987985598278391741957352121383564654533381919595048611772860258603522703455292872278383543280565119206723479533828164180381711992447060041161276597953688876809643251498567255049374381524057219408326072670731796204992239559195805251958698599083990548147319121529344034573358881796932707095511285083014143750312407582943419642669984095132850784859626625674161290264031125234860478288020577368555027637924268886684921103599467706899421450273994543941661409960217293996316916053129697818519583867736640019970267395135790616665095220292022970927264148318134833654839712908641359354375208417794209232226008835277978604302370369618602177686269689259039383345225042742292557166246600155319482566400101453423037888126430819683761872036383827689580801878856322417669014649264693910364273073456125047562635408211353528669691964135664811378223066319523905130827502891904988022350299587441879875951552327988160417262610823163574104963822552771616485133682757529918495489651692786689428561844280535853379283513646833855565459284305750882970380405811260148222830800303507311737070205893003975096700110395401145698984127860356684242496480827086527359718402524697554756544853601653837252305552163885723895888826792280254538901003400236135096084551074516694515894813067551587801037344109362371047614660625289952782668543616855276691057290495134041720206570618828870302892917868334119694508330060586161120935173452976439904305370706774198685800607510993952442908733131860996991548598636903543234712850125630602494659618175127549099469131929307554595433724526647916631229568538308904080597472416678491998276583252366922856567199142989537842257174951945361994735630654243330223810302704473697944159374011672854449378421733238886807358334251155970212279039239961007987059472522991560971846287521155965708485374553658176874866904963966826539574354477878768080721217458140796128518161999590241232068617380787823429911801496174738966284051635047125851462250740030678739589971731817432787126416703695877600282703950449868727993578950519564788063308056325709249987777099747752772941139629032992009255445216861821400681622366275623238921749639744245417263575746735088508476656060732485710421716444519868164845239861209233167833146890526597143507022130054828631715629770244822715909481414952786971026804324515951331384178822988343445169253400596704433853544782881394687191787908885955582836056426548437054186024063873743470914016994283484176057994757853122197649570257233218836480930007393843272976869534575906242890628975446740068858431965120558661051782568050436153010000404131120632366699050339728553304634832572007686485778046166231299217235202364282129295269182617612322106451990196553536286350257045454252617044157053752465004557907597535079687795917808242276121289063220557404795373610946815695571132625787521669897224407886864507275563675555589988620764835128954381972428055204580205368976996892661809104374115013689526781052405065182470851973832690300470609011554336735377400626477843236310227165665775092055684753648042345736495536618700286823381211392134280779719829932542760728048367677878908821388969023116925337150687570550706770909806882844774957972294859659662778198041287318614705862453678114164268252734093191704836259670762792179026831522725414355600070130549700633863459884089438584058417410977822529810626145416597716722557019550397062751143986049380852739045539219076240763174867961686469841762200907176033898875985830685460239803722156081148039556361050717179183812488418979462457290099920195418317061057483968453026462875944412785225220535979745600321314987342534028883935663264514725627315887912148803792083576513383961776488984955622792989471434689305369825581249656562490372928620469897530062640660870455677580124982005626773563529069702175694999507828112819096897952366088661346333914764763149876648867059052898550833846851028448535470771604035608173500368888659157763476917427419385737572840133071649943035583225924086963983154956837743309316861348595448835161174593586191586156016526769868484284361178939285477289957815639247881038966947768351940102382121360226569307534994110904232968146357621532166993630013402182459730419956212751473350009950081359320337894668188824842028033008480786437696826204280462726980785975915709093140285775422171663697767478851424316304523714110724658802340788581410452418370015771634324536575332909009397409791946726901404717992240105656633687276029494314946478296928477936207724162213891843807296459805087174936010134018771161866452374131265180812771162134654067513032852921341954165323540944970677096462684940272030818472988719788039404437319041327548050687168517216734118901464205482803366837332703460440441442605736335432991351576482149090305692292198720027237215563328389241752578904315869255652133148273513481303691815469131321626211830212895585859085153173081549536930869625256788918127403131503190165032931884671937887460941306515835033598681483899109128039178693828331121145931009742281312285725750269107515935572022291195697932789521662155410735334083907835946963468090140482332719565268151765254324876784699687451642501290008025034508412137675089545729348158201498328101954026754382197013682910430261373942679852172209793138013784948047394072095171775539691563806689859099636587704055587750057506956284943400843447419694946939516258615108841173213250749286959468480987814421244326199283637688777566902579398927794611695133459275670720709528117823142230924440329007206370090327419524078738016821120856408533222167902792343142182803274556859570220876385339721577944427643315461918760523014031481014042460571126921187038599583149761733135502644592996210565300037575144496575335785693383170626462746443777822060126020789558001299207605987722603780578620441419737483976675194578999387429498844114897872102707509205894467516164321707210599099038188727719981319821823257018619754853127882879367799180972610276102291820696303247726887128850723570517439525038249719029943533097223954154407065250005611781650784620841482795398180223305805391120371128683995303469734985291356213322954591180804604630588360033621071627790386922990952612217455906564288560346800764051516028389454305600070777141149436124073086791945687879505473006754177875825786087232737703288187531405128491702769795512396870554266660585745324742968230409271960403994797816747140358607912007297634913543912512456123245557645712159292723629642687710750601003088196743865736077420906305154325748381043210703342577795163544293732746495640494885626749783086094791666362307696371245238879497689372782412813863529665337209466014720994262497392114108930313652343403963719324479071654790722337007053600323011911827875829118672509592993198228110929575961852730194845764953501421698277587202045772907775692308517229991277966776952130905892978025242657386661719034045024912925987329378529159569020855814152955248164887619751820664353269157175742235867414752450399352576673611934750772986388910273122166027421859294507852115734614029624873957234438694801608827133939461608470778906560367058785315852752204438889795305003842332508936078886918043218931999482369668381652188467006630013960650729427762034279916829289882440970273007325756152058477312842542940243632109742376517907965426567171469049972222543089887011958059067142432935617403644811782095002870401962078044690316617893106698810748656208983239545069150413728012401298824872908172293776391542540475950846386810293852046996513995687430645242174771335192969494003375317999136646529100537097272630383866370245111714372222493832166936730428729246821168014839201883566315260807276628472054982927777883349918003164668203274345324270869114817874804160112057845171458470107517551442113252007566107649549196288320667808949763156396823411050122620413448582531595959401553440860990484754076934832880709531931905394438990848324203950193831115034865876295085376042077716422443931285117264411053259119679589765458950886625905614441907689656301755037534212520863415947068809242660604014195832221645133147844249351821217655591801776067641907416628576577458399944916123962316704537521193850030475948562646965332330358766746985205150685832109936325811372307371831739707530334243421014149621601657618276129978062765190650014961758704974288573903439607797510598159305808844566885840163288002994253439590663632672664779740108158377629873853011962416030973364591060992591044659397642633830694459150106416396640978440856111538345650817298388996547207179259629488244291260202579597409421822696557121656353627689931947901672476901997218823652850263718274155353828360578189205740340568420864028281232354895085491607582866847131992763862012030915992887519032686607139896832570366648405456524871573905291274404930173669458148679943212343733261287440987674080464580932003412797085046832094587269391385612400476667598300234203372369532761601153146244052498613685012819286494479381388673560406833257859392356741014356423180009892291518375019065982980218134066175815258592208482419172440213171780758663728551280445149565211813785586053908240070526851435935163476737908144914354332911371817587303833967445705318681987826120911540502850902700351390032932049491050454056779051250264507459922787984286831387275419181022608685074587742948159037488800111122582834287528815224554352746992265629801321298516539352325549704205582553001710298794160481158845412084897084881882407495235965103296879244627496277390345771078518742782796197960974826263239560593784177195352312460791443511784337957548401172515790774159962389354072641494058047815767886544932761571365151012032315948221952640530614326129506033304944333459602648872186820481623824462478463701161790719549437189463259189257551921337374095580287339147143319613490077540273715795666641868617384356598075110212695817960751410935497624669486282044500046582067422817806345940693081337380587313141562845422708443239427083199118019449189118802950006277310223975056279669428801018484197415661468734208688226047398673177838490630542347725195423340419503017953200295267015038401643496819978955966388382617912277249995735124018483699997564280661195896728142067986024275847693964888821481165430134260960527776782150975669931982866616489875748789539443148326261654699367650867947723603253429971436662296510760674502938039320119694537198816327810615556657811020985556772311948490390769579636388818716995883653530446248726740561486439694750493457026228925458145570573650161254555201284314026893194598298101854236923883452285759995304224995282760170440205790451147660819385238227066292416479205834526893407464756669744283075426045321296658798344766719515994311808260963344626474816996141158963271856748712908946279659437800131033101218078876391397844260523902476172356489781594473138251716823944749620137517377530095187056984536371952946831431033110619581617158587988752343177226932109651360881646818392927159513175061163616033719177672240162302533181720955290965249252426197000819512762915279504214244470527555672399566831216755018013260566607305515004480833266562704688368768608363471987146023420616958120519847505937032091639341100240865637019124015654782041230438845959635307980590014837223301638952579951216471173993738728106703827595665709666903383860940187034481885246302475779603828485213558345393098328047105500026305347646190153306225856446807715911747354133328666105688088851322807408856305733638336692410910338347805569946418270895551363599545399805968301387726671565905078117436672609720379779942270543029547308662462810586639830425405354046316914570919747493366777666488137019131047684388904410986971829105106466493971430022104168839212722622735879237927874258706162204986134449289536413301460796987698213462050865391620220846067923820520013329496343492961870188107504235595135210863835977265378600462530819298917309616863000593660131014894282356447028698796998293379509467683021332069776719280384644137780051506873294098315046518747574738266397866045666427703937012742446619207947087014973969634699076835301282575316814171992755977026324608619678075757256417540062804180164348139105588730328216657231574802098299747813427112557186865119009278920761985637070627086608932551710456163314877814840438651158389963243912910130460598222359131018891695574620157261922942899391434152875260924709180614530841544406586424853446349964585693797415636485662088419289598319033950945343849576548498521056933888341091785482650436221208345146951445047231849072864729613941145321308306000067610126868301522771604775863178656504066880393535457648265272518976047965767873934871498136134821917974075003541668669892302641077504028649988231006697243461222761099762369214784850815143639516416928894318228043322449330864006438476879606866671905970518001900719561113399056052175906687246217468668202581930180300277667431292892203802376645212332361350663102604154320330705394207631284476864263155634303726417820335581114398088568096183588404308480828325848211551672244890809703165695767050646656917332272683019096110983941612388303633655417108789983175585005105473621798289888158053649970548663294656666961171765056373930077503341033128704970284881870136677637966425195574042308758123907070302138410206263762459986692420653043739069361304903007222890085627783101584032890610285215635197612075148813016765629833562067655399860740969676423046652808685527911117724983160221635170757459763426544404872839532066381293861352150097061134709899318382128053790414664104748273840360608775290958660956695163120520953275026846855681929760176111673403520753675816523350391520946872400214852937232483665439649302065386238004692378707069905049081663050638117987385705885590750017343341959605716153327529330485857405240537388488893545987656626456530739442015597179679334871096515240249176193479216324632955535788533534165419192146130847380729114397864243322947216462937589003957209278967554408105179457427599108684831859272550093358312462034046708666793122441405788219738884590684093988971169137194562363599819805678952581818216940985857552661028790381146304181143472446773572357351199671867699081966628603562235588657568723479816625388459775882855152164265515854539565725364587234348123088227570040542588646498967173110518647388866244331325663240467904921971483564570143789714816068260348200390564568897289889379420452147747736869197418742678748262747718144276554722103706784117295551213341151189651562118289390166355643696562281926588354364621878527977872109826140691209533971306983171639622327373572595232886345418497254750307796376261674112167513199675873544266653817474142330714444877510247434176029830642767898113170191183818250613073329064546720001371418777876972410911784936915343363759380416952346365648173139412150852767775241714981778504174019965696553166632170277071482029860814032242169165780034446843115918084048127548986689288641560610331660098257919732461217758648533219276114507599799481659214466596656724498764377964204007013646767996066846088902794959789718950280017910206159373188298503038955115232062433265498003816782906705858444123240696354302830426228471865531031961763419292360545987927270274141508192442764398069135888460324315733863627899357986433704291379631784324804705091176367520505938220710458136688093443510577896214583991551092168861057283308851691097621409656608446993278744955523353448070691344718881862739833948183706511648417092835799721925787815642105042855157767404248731007046104524452713350210714569669426064496529086508451149647654706736644270945106494223229117455992033265024986082836922743099642142236599625330790807915404897369434641088741205998116136588017482503377055575874066160638568868944580713007870713948907592743327234539318183850857298996467141997492378858317654433027981303359418914684214117875242967320084379554365624197334374765456108439860606882622743568183152896381239678413816490678119338321106659607486727848916961904879681742277440794526190009770639421105644347155098263689386011416058599118198913954364332290917485779467490740774527584299911883526789067049261214026270907482539565200471304389990069570383232402095954992069836853391540606086757123108739854849981429214494033793506535903471948854783023998092065406889525226308716178440562638541458329558331389704304284122647637335524734446321091622398212073412472008530776031486338318193986821316986818685690015763249653639311723505182972263594546323346984852766313039042627104131826575012111259218445547194821030019254124696291427219236169665789857860401022548946638952991535193166759283387357607423811299591681727923407411326120278650880087882427035694275424414931401935243109388981734520871494653398927913168610770636283286733609195063823979744618752055538550840561491816398971336397582304331910105134409015515907203129248806801488925586202168164055822033006391791302680063918217090473193578881661368810737530725569627004860350213159457270201961159394827778923935728412846085588432574165042223026949190552319905139302786898936447341572972847426476729894389912807508296820041570541361542205076557285708217646368787779264423449726791370197476129831978772868417479357148977760871187417950336537040682206187277734080330087784745656460043875267416604222255176563545245264847689547311383017290720091121498615886728583708657602124297822520667677081179436340905666812450416034275161200497207057037706158054842472948737442977873259378526938558801855658329299378343343564188645634242258550110177059629128321669327541570345839061238650956268122379125638688610550015298268842522821433436757402225066393897039664776983426373849473292134660315691452956126574167376922945432918551947118035204363926354849734611513786490329035440274556116072507440978973862659567973430188826687015996119446671157572797111970598638807017603618181414855517278950640642730317165086630794822577945167887886556965779210534181173960631637213604509370865831430398692922439525652396260878894396979443717983633026449355981411063016803495148282929537810113645757865284214774491637714828253544612332954104927266963959137226278664427646454601803119706720372543016262960183073839150400867834527728868270540538009370380004733709366744190363357004537482738596362844430506221166784578617875042133147812499927208801905285830581946500387604537648821307332333442937504225360575451788947621676081058591856854816855619773389149828302652654982583101210932882922689082515489732446301950176970275577004336401699849419062222468881630623048832208971128912856100179142380505512260067895714278800822261960184464258823883826918558708059038927670543941698441103416014386234303992724512596230093525723589031958328857736119534366968635912917768027730447250052166566712185201417950384032007746431508468963903315710260272114081745251931316653033981631074036140491911501883633124524477644342927093162338671725401468974929759214626004055205191297364237773395099111802133032689318145626703532309415846882477994557420749381750256013261213358944179808939337099103696525382728337430703514548114578556025731589862609295120032750442426432387292640882651856023433970101149334730268150945932055635099007489128925381607242026180273422405713447004367454905650583254528993813014422370171032439955679131087161474921254998969008614350463958219742177327252843378597118624167834139202083772422299505840429428192492266822852089322817079715732971540590177138207795878296369168431851577319920528977988747131557931673757194920664939086337361758251326534013588690765290269956275930354609854514924520631485355276828640631071134037344590991560268280363237798587156521695112900738158476322484988552427160338901202681742417222002794794079260081475467230742944774633697156162061359410703078419672682079963169156179334496580111001907076195533178739451141686385156149390962691876421137102694925658034555987643244371094714899075607628293397953107951983936262738668081198523364435698873820479320349291233108638580998211141053350972358226704312625976701926833853206259936135600175096596257417530329637726396398372117441350427560368802946552382480058713878489856951365030380471745042710739485915546033805178954455261167161785886381090250883364807275628904996157762833617381961647049226164043545645823905467730621161727474583219040291650040433592584868644306132522924431700343021724217597863561536382974406985633719466957922687118667792792299641695408492509719027113995956599735380597958342170823522898429953969264033447350014696962918447938905982494203376094323782867808021302688321129029095363685455545191567173185761170895348083342125482163959891216438366568124739562210605104847049318518182127280485480589035317889900411318762976817844606464030174703077489183726740063456362599327167568157909527879549111088365181045888421615887217467789542645362033750657201906611681045066341162769996002379783041664662546937180390435916134816247103130361368372866814896103138055849358458254053872332433738116412722652089164033023449504892060065887296084561516920732405824813589514177440267689065359644438838858828075477351284546855450428328759790743771617897723780411218000799511001355274167418890490168978217340129598954133280962577960006623578451672840114019292440412853783101631821006251779280992672658394989461486894935548473152208830148312625769075704230898849783395482187794499208710863540870533614691248090444039053243451057314685884818089698862303708466648076572090151707953224856617298263430778518894938162938374559950569920385002841459378883140511983733205166711007063207681682322870332144406898053922496953253074369649157878795133277665090243482021292069857681307148612638743995933539113451053679346429577425678829745133782887285755230796081892565395345988272331021807025047595283825336438941571115247815799783026113931299093301377873919779103506614219765438789758950039039888173263257801377880577333703179981227142317378749005915656485423034306293124615513355414280816614831307501854102956384811900628380951177882016168260720469704084484379753081438152810346070515338702859040604805335724404942212819774621139322931308031374449522651792507203687322007030495465954758519324425771425348767098565286981175912791322846652126607520829120388721461177065272714035003972923185117784302060325811856333964233265600630051697028487033230422360490168258079125612435964573908950510988368212232046677516530247013116878108076890526894114315419510246751914111743472907010867368759984503368585839264389860005724387288442436711609354031072233112330635681339671216471876048437056448424233372335135190503342974555257084476949487601415025708548822923227704520791195222113564152332891974213060742374677626038770988984213426935409033245333203288121368817135484894376184260152175987351725606342380670682737143249354664663422926677228080623530979526764790740884977254642563995229091461568587169408572587471320122154498102373615314613603425916850637879974121599842076480768117374118004638451749800047783390512592606306167776108877836302503138259362626040513467666618416018786967635314859477947526002162273661130669597881853510241237092326147134924229266471772223927886524092375005344862184043305400060595018392657693825566167884129607894521811581193460772349650373493591654958550613558499329735893990696692678124585943578989568620999577381861081878425346360199473257230392468503234786593183122609001480474396182634954565119681838949704375986279597424811626374796957289242887573353636292478609062100085570274531544992308852581662716700799115651758188327818855776810065988434005625634582151814818004389299395312116386162880986107518441266561742019407352722688106427805220394478453087987430988573093623060048120866117055738278199457421722439561531787905543194742508027948751271195382110777793890736301186327884102999177006606799172814146050639346311104508650097359236409557405183562605368374434756894687452798970874523475653195744746210826630987512323222192324877912027847567031289126648563493524912299072160954591182452168493936665141349067210936405822397801232054966172297197633035792388258689308398947002927343441479755042499812076095171344478490928294393378682039478952700093441788441528012791799337319457590615629378059431214285320460248432202324195474506508155582369344827773031642541396270695699558999793559854206021736239471136850201872263206813293477904528636060690647584208523941417376421861631537359194410594750260048584253079237976234489509865306478197061019609290585470213458706467517733914104621279551215396385858311621613611028823125390063742028851669573446374308480579455053053590307619793192819733519276773239061529560349251361992434425009407032588424182892583890983395531586559625329950579149014722740762644317919248491565378050698169396320219747362671547869069808995005508728199565042218758988410337605629401667478535852660781931696777313464039471073574038579845915564085232233365398193806484836333684848197591121496709429005945833241621920951037546030636152984226997585993282164056384449109567237374849787800023577770353452249592697390493222740973147479781188678055084175925222264212771785794737281509594370412252721387097424634947548480819805220505584359620795314268731671694454129861915692087073023219448659342339900857521408138376387896882786264757666481090533579799110158569191469174582582565299392961001556161013282295506643559093214350894846790681283675074058815028567062424657702551109012552395487313950111474605302119829260908779819958022731325663436569301550380530091446645961941564952899004781218358384275462090141427261937337486242467919255128177262203800646499733581871429914136380809376756924306463433023341192159536707723784030024687456503675659809553878433752968711139294558680794047106300143341091909417512908903271655698732043482703807804997854364455142989394162928740849493156153146679191733137496831928675785005533439874685442173916939726182422282437079021375628128859140051548210778924549386434577609218129590410541876552701676893487377614039040207857430332078839005928948454081030412855332444975101602630008126525032980248403434498354242433527988649811201351731880430279050682351043621481166887967152671148281865045686606390883291265639299522695632884199394359788337793716399313533999494397612669452598177804597558705426426791070142974996090491383867451541218812714721247347115742089362695001449335676378701200996766896977632464232886452832933837918396770313705819763681381957020633695957871444844903991428416464656631315790709479323286885282027260722819295938105837368919231371913991247639857683577786007305288270674860211848693350460469567539525856637684569969039557586380082374036636452508924176016385416385287055084278154747374942095234449797500860565177523232248503739134136996086981696466087409459431217978670616402449329453710331427900371708774937146372823483856650043138681025228488459833980667372323869504375193729203361152356352672012713080315630497690667986215186738519917790888087973222925467281263156851472353110198767250124841172843281286829251524948631915849202680813659051346779594183750081171620656563436892867780546055477755813725554455420551024702755747718990509660472354885901470220260174329871973686118391664899166575503414107281385548017385440756494045910506109566604038005786458480834479708979862173742621457516793278767482695790996036486032102010813121597533060189040122044033505959937762649653662662955502604105663490616349522189139311560883276501786482712588258439903178219794191595616484583541704145712081792092552020401164598118719391195509912713623924537369367401072699916894779288542711203706543978217723501358727917487764200126744230811006727345262027129655705705472549974552927120038829775806725972222498290573183822426423417991580281727695853827802398056760379435285628480687697071264092639907637471387467998149634918952630833456999703374590140079497620623305138679976426872055967198026503015235633131859778430305650241513983985157037334171801749074069957322493660769763878943255052347273926853156994194515378164165918529623532686502538249077981112191573884075538384554397179021677331730446310655376231189106323954752375051386695365226088786166889019766928616322490329203271715842702726911753556927628616297128639099149984187429279951292370141327917296974435109177593344329406490754713890271507447218154194386935758932917814914001078160715345211217892062633893877545216125189507523242741520351800830207536547423226974570068659462886357380338529221121896070195972139923366049393517754567083941159585108446121280850133777825701752703847489612479910684761383764571411092556036318284055515014476291888429002081801081925640163693343713313626394126388880680654798655651949255822775376824061779400148966425921605526485652983921954706536116697889135060623983119928792370434121576777591689495343058089093823355998313415847719876042600628001062914532117823297518086607947936911972181620820672491803604569175070469415500192639154224133446759515954563125201744913006525239213926930650129902674590573512611705208466416997680060571233242622974659874822294510534937007695963547578631507716727980492549378038351386022638451936273404611131123573957899834433348938168594141123152375956320826258191525856241867160057590563741030189986938945660121828008870693254931764413345117168419553658840604019085721728776476144151489298140375834259627715165216103513009519775637747563034251533865773197378372796170769457281450713872103621546498719371064036030119290266899011084705190520663663319710450587044629067614791890023140964990675454396670261415131090817533833438961644059705244646703442132129007015669418129996860921102946979125200381012466578094755338796568169809485823923207523018251395305747884844635691309925490771883966538568945908162584215786156645916211050555536512975217633061001018322640426374663007365468937959047942553022657455983427665863439571834089354755533689415614702060514867299269784441545982187707628672841510362376345176744399737818644277647349716599386455540428548998972876499700780710591025233990463057539002706376145735855769878420311346271486346509995792291256576968082360203050797482906416344336398872833638234556195373284563614440556405965041408109750944012960168416725421083428207321000036841877846674086675605755905089670541607274640556922545094356616809780679727102194548884827645304009984733282698128694131273457106334203956353848779939442979412862838207811704002679444962844415058507523226221757699301396722441329570575084006395990773402980302103749090821710542347396671640314371066036801252963166943114006216619057074572122809858230809860936713968816389662422676168710453669897197149340694085018459698388808956333497854669950594554540333034207716426137613077239142962583969204206801921583668809130942951081600890092511575695829779131347514595012136100435725263016247458754995523746018071581749931987956053082589514148736240322292836518230748736713072667263565161122290869629174916237396504548134895794236573457798222985378941085225527214656598484792002677842641562563485909278084492786424095948843893318399708460021177328533573607266620750096173535933419230713755314475186677694418829026212860417681341043700921700753073266790038162845428109459192932100805466766417473277249874922822652200882635522267664958283074902231361168939983598058677915629160130553777684313742065107321911142883012413438062538109099234688613908466851739662537666810665859697023633690148938638910896791772613824632244607066887503069626172390722034709616155376203163426166677917479952698308381000518720283478247056957394940174592445500688933333778404160358645481715918676067244338244627770575325772976842371327214049756852794800778865286958448886825692248908617415952015543841290201429716873965436462767554544397257845513490646404340073421995340605580287369812737102015540639116669945755842160583530593828833477971827455134419509071961289442623240325017291075806178900511202614244434038023293710823419755348882164586805445311449106854792288977838840218890236014854501715446373924689467153719971949875881469487789907470297385368597174952565840305388430669593838647769113698381321583769362091242482229505330470801305149878221299108742823825074262266759096266703651377314783041491755086257332235999208492352826390628815811453134920613347519360629830698567125400978772882700858265592817898195322863097840774786880653791284014603763114095362144282716381682840681788272994174923483900505138634513242063722305012427262139171011587141525801550193251228576479607708346855566993611027964994008388053821999018672417938105042989520664759789351490301087558995362452410146330107919067915537443470885243407802386211154232472700575750678870431629873194807676360978647372029274948766272853857946283181416565795997366760032324818223274545127943367447397942383749322407503567864117700320785060660359328204624771369212794228694277044782895242386223622382414132816649808085967660279295097295304467553760821139907626151179518770062282430469312141749285600955519057801574176989278001998960220301475784156524465517164287261954192079217016977475052741023464800085958984993859100974291608975137948864532152198978614194293709394704000822380215478259216297306478740616389362088883659152107586383870958079940227657684325640097172215660976042262937353351500115131848473482762647464822903235388425611268071185355473995348264339156160449548547536009693156952028263842632456120552040853237670491022882365746540053743720334095130995706187680865675018051361321229236120306630001666922612193902906426210374563385309873973571834962321825601362345649510285591095441925339588112039479660590967222270912261309182199993629103418544417420743850741898795371685001753131574436754528443013267756375665386524057668663055287600559366463050345959085606001245353655956572717143754464154428611020028642643335939624914541907214348031811899227936737169748361563548978953258986517448894424299975049512158394462842175238842912381989017977026236415765215520027009384624668890986254717372462072279049281125490980986404087220634287141760287925984106809307353526875006043357443178876657711722560431981783516375781746311749033297343759065696960312686737981858163338958551240473766221730406474997001215287683538231652054711409424997098775219007806575675099516560467480440280487756281569558249195891472413099477738706372982533714146645823669480314569910435972892885390024879599240677688329698566328496886500325283482171047307896382961174133944075075613411388866000629312495201330211671121258340206873362049992478214594178265303332527146871811798763765882841821232115858542060072994886447677145786301000262873704291064125340355872884677700016533277332525330463055028838986545542330339567304336159365621706261344006642194512714406724597822321139231894834483281548105027551388443814411724791632994382773800617874286353600795416035409735459842993541669423473882231218683045913688409803902098032991982191963460228751699602086373312762679628844375657870232926034913542752239875245724812751940940469952676567766312725081161552966469474847720393904419187513214708245541080560373178415794126042171053812912770433284420577549662589731041035448390672493077105659340400126888976088310941958747157212345375698641253825749828418466750404781908221451609832151668484912932331075801979453324446094594015600765050035670622997035053984714466312650780881037339888156229239941117279939589698227335906096638365903833212682252353913024050809946116513352268228018600701308832215718546822053519689133869469588568478965739912338286941864876035104233513871442230344154366046447974710002229369316031006377288560341336286643284018702263762629396881549537970092796432189917507245794097135326546912868397625665188193019787416006590731240214183844556308798448728568464009774690816824054273378472749065899861044632789981732289723383509063243531747112471862570105433262746922776529057981234388167881402072519481982208066689669594698640221308247621871369459052916022806089971013978528529131705010729190114228184737484060349965102985007384501502257069332180291210966837219142851629697962457208518762932926776621702184239133665334823727187665224447120704893136067323046464740219874694670410308260221569997576200041066730311161283804599319065993094061981543772706106906163354057889683152006809198441158641469939985904756503297727248530557928371647497591906974325854403586462404217083820622748366223156812138898186244165839383324472459812895566334607075750199362343949319795296789269746950801399590438759875438337214792367831668393612024113654843855396351282068152064121823263137265288597949264187989107507246157852573457192002364511819265999100215851596898037727937181806026576261607502540389520331380400846188025469527461760658374736908678958530152157002424590803083783756624734555294462978934580066841006537618216619219578798700984481048765972390755062194091133286191685756183135548049665991671324072881302223708751096004186617128854839991559272324505414013926899494226215661348412391572852349502054350673968182717063336357306150688130230392235900577748693103120596623165992844123357341649176063240460182719464046681317473930844769569626795712420984882839184482763077890784146420701652095967675549596194115180821261564952824476620855441822380544013046194571121419751975434451769613748135238704140728120509616485707872393927056177982614064868488078281314570244443388030027019999838581789012343254358024127013700984205320801053054017440325541430403468094141753458257940786110203372637390130135658295841389933626264837853973416390524737764377376184347110991633786957063015785828812165882654278843970381865488503827026131242696065563013420909441685816288074625278980895641528277179612951725637125744812041971763485497930341484878321291095978983112931485931631981778823585908741377311056819370000289434734120813384813514128252012004995803187898287813751735507950937112204504226538952585791999701623636802445475394974228283964799277121872432233877059738893634444165065701771538651831952906491974308270221206741486358079805059924399691528133131476764628435350569217085978571776430294395396379033588575432851333848499046901484981432451254466291676233521280423364126947734062304036706874325906699242475777559694251101218327337007967510602376849157087263375896142477325191750850450090759534722254506891162446193399941440834884942452449018406061440535588349617526617920964559016304503103669599815340140133599886231744920762004206140037908299427626242008536974098293895384108629733507520841429003427209523413177992878515444378062582265572664665249600125478903384257627405264024616917517545646227940949250125389513342741975758743954337694122774957310751722414685971621862857596468055078057287523472670384825580935453233976813080679613683411372437602247913841159599224676118090343680956268371879202765234706673155512532236433179278467096334409291656885564048660180189588988663958802542956207609326287418129383538226482779032339897936347797214214759998574911955085099641009630394094414778261467416257318613252534056385677132081134252482793284746024473577169631340852879594278056297821178803742989311598646343377262873304479210926044805877928022060146944087330306634181029901925912688091911153703869783287875419075924688190911212444265026242440023421835755773954782195155625306614323428633571379443824913919402698818188652258956233407497783051134804634287018858934237632629176605785863401991747539369923166726943444775290793596794768042177188001863710775963379790620434106673503618578969983929309600305996018804252511937454818014069478248415724824973102419199564539504666322976799822099486469725132286263542044286728296342480488363625786722191698258165017568288849534046725047674634654611219016730264087858576447940787222126737866621769685590034229753531880223334055454437082584943401148395357797434903305283760166733585723644144515670155120162103726382090153905285539924485166037666338610299938473477938993064295152203458409538614582128470633412843813242227746773873740926954957359260179619415540289250466926855864438700258383667752053201268534120958764272033173763219934141650376271509057472359698718592881175989943336810425972111200073395075186141679043821567482714001865728962621821080215613298169718836963165006540224472660434619120830457276800006179663894177745015058522370580375709883862410469963619865073301359330352885287306499818168467660081124539319982608314248423873959728853376557019625841903880255568834279146152956663557147697410197586089694106220923788067016204444512107277912364611145980496105155948365135196726002284809939332801218311585093656218272434181817111007792257290231846579680490177873156146815595308798208916466879798716419844121764504839582674955622756074874537844000659290819499255833284268254392137358849128105861344881549402494887929717707005539662503176913187013616859191805565870416393373370233217681592581870377540499881825595530566914916681465036610908499491184123571375599657743013435384849893726976936092568893846915832154830032559252473454893547003045022732261482493570539663242282140326483062216980593694798053076671435065603492990906325061494312876718015443288708633592298654196140275864880910145893061771536139063547734921400241610009016740702555755797659668156871878635107546050681394318013318149318414393520872984262814421577770860557301888031626934966454292688196622533454911143184933104322159539440296853846385604042467081424010629112365363636017078962266642888946640056391791720973057846031265872867488978874161460978509587870972845468931070107255617412512590784616655172066302109506879308985474087037550282094204936262376781544792370805358874598385061317988775022202412557223698022870986248174978296891424485427281628889650216844918773797694646696474523880435268154052458386784220935983851759221382467252256876125227838132441895823352757173040133061335326960616107055558718221642116138651357430341041848970378029698363176513831779865892244212990421058296149380977847427050428357963211708041318532095059581353421871555774074737170773131827909530904453475697254213623842403130574003611695057546516153653393142549702145478206730388351305567420849264733424435750517710480558588259632101671376130832446341535817085847688661289418472182265313353189454435321705609909491301649820311786117091846624528296603364519211792387190338364327500454695382656675142915745036752192164637716858961033102522833372609609966155680279449038991143805322451194557364401869220466542753114700375579343624284930879189729254233256487112514519412029216473715837946098736735230342130298436390744107380688180743833539371472621153691395942948567558041810103575567293670356817976880678293033891287075233934966237477468570764521276319406350150280605252268733531396744201636176854146298701821235656695918951441641065053665189800929361613994485730236450328439680120568581736911113633304299148022152878607560464329808063811747679878626967765246166367878304008445448861607015786676689837723534343872601196220697950922331860152013954013704339463812125821101178738316198952511464373866430254949907322793082863079726689976676734710398046640102910942827912337141732896479384878240990975379319018095747174432322815594450250909014516923227880091172354558008411313868043780773311679721045233233402568131973680512939968551207134861396545549540984466790030431361857184151531923653188790171416104764053044256520186033287416119702836925154731943851276997579560731715880084843012665485639353337771990985147990511848449899088063320911163134823704169274732005432929403951464874620865549371694304136980709770797964775484847331151135926079579151742888463515763056061577265857337313235357507253580091178229843975945461880685820541069715058022256397771426082765068647276333761655684963051919193220257073813045423874671728420396724358549611737755180543575303989705799211563744024213435306193725196654569374376313309104911427822272701978897447228211860151895659513090374173523255381031263744937832728949604769208778436326709675357051317818397106165827484865606437422383824622495043471758160610323575007291484258306920930770771051702905953436966057585717593038239108569523447500031887062981823051869613946553938665116529279613419233184301919375265210432006568454936569510741097481364025216470327026267763878144302699763768096576579521841541796713587824896728896105691163487929998365787498679298011216136874273872423158765112673900628074588993208032602279452880769807317842440837622041880242861097451796532583164991554627047726740951413715798606596851713655879857802293059212135150487755489898073495119727723663670822861843572193285980909101776896228073335009359174684821283840098909976015004582763332276059051303189849642656211868571037696276206507362952069624111013936396372459611590503381446072827518148393572001267100822966842697829149301512493377609290338882463837858709404418258152211195754742438910844917020482239945222446067222421161600637475026055096143292011830127709406862552630953738796724838049555193497615825072299712338409746930901100410987083973662956294558257297739056820137396632064285985741126265251707040385104947715169009549973499577857228847095127928388847386431056332802907861846055736007127286935827270378275578856332730533849460134580561820468737143252465991161411465087548836680595250483144829409571403502825415490993426544296065254854848914743406084062016168875923825573449807237951532417798333681033339501324456680924394919246178975459255799498913709848496829476617201142816288872472371433049029796536971833670084334235365792038754414955991066431617914479669383579404076390091424282463533575186587231616709437722422376480722126414216798689163579625464324927360970878918029592071012267758046879375579258673597994789437470684401025646444432751915790144071664746004246802849447348945843279435159838508041037178305651240544782286397788457782243042516369639821748174120800885898230777880300295467950482230034664898248814323176381227382129499682431536165383184382140811801170971624262780000375485268541380956686974766272644295379911418170836593874939280723654809446522058035981446167965596660151346952533590025704372127236276363854296897926657546976903653530668544010632898938287628993099221976956355887035206586060281281655985131017475436155473511980869604238140382939397238993567656840765258433214099009106170297637984570543357419071136511588798828259375983006270946080051911695412733765664129208959306342411709752481580749806574382192154027929053477353609949780085005084108699588990464875683541755701231771629279039156715635160088732763806248975117389922912685717763003187791796771793162605247528357385329954505871296722537081850299032932831921684422299974386105046136765554275084619633475504286296014737090532303101651007709711569392540133218315495281258536381206832150915551002992497631454680051460249280482598984282553978140387062554392682669686135574915224055099975763997650939702681244853676450617250955688341418057202217151083411980906934422918003916292298687665312712055345942121213301506806829993825310567139559825270972565583779424422847749796203282883611955027284512650853995899789750160786736764966525775256288914962379657907252034822087444689351936341168564816305667815330828357246250346569382504656986231678140454232179484999461647320693289724031709652758589074720043490616176255718594632712566869773278757120750724185325368955305601219780953669874523895323354821025408568943337335596118592171461893409748809089640654133549352284652627079061637320665812860193266651073992051713528887628545095353178098581772385009676416911400218035688846944711372350920306945194125999437035613518362085681811537219423167278499407887296961472499372122264591012099243454691040557166363767427910690769647921630578324162943926122438942600080185145267345971237330994603507771161931373497320702399020548218751558719126661225793093278821782612822729021319167119440805828916917614111949843716987273033993951238101075113278949043054431367390236849115545568011859238581018173921343478897495526193294051638671754531878585270089811841196468043759338157833497407745837298993620712397020552913281418118848012410549140130375430217427648651717604904381589963621998801594649919849065036850631335035362850216974864505152989887039244806052285792939372248637940041456828681331234748913982982848273733875283288510256972280523955363273983616341079159294513781634267275143241275590209875331794080722891316397627207447796299183759168311661293474446967876595950953698011839293577082001867446093515515625976618007769348317531530364339694670776878698050536712280284164785899552533848256785726960760397897508665682536749217606453712770732426933005219165421761312062857701516577036912354811014628613692230205058318070191091127952250942071696436572035796814365752651283133054997356077828621725413220551484683980424138067120138459824145522868979327467450759717447317843618841262759045658995022836593451612950577475804314389769935973144288006517465243411487879658490830324335008452420135972719532407246129831189643010301171775497894129807051388456831528026690710924821861005082358474733780581113213816879965273639528697804809113603179226337641277660802118891678519877180269317322822653516617685062434886274439139561763996299645230197689657807896862937168215416816702474040408772448186245444208808719976844010410224665637345629020906139204692737857426081253737353402638381588499535286013169973291114411436226704887755597523963270114224611242008296185475844809568167321675547592193639722581292444661984868432724887410298375302914768365259227119497357900973397437440278623791088461769998569459606485815216150910862717576294956240143244063211277427862392724375739990381835907414600745075560022622570911485963506109118844473382353838059332044879754952780951365153616552355384465509986619907357686122327073981550742526598705962930598643685246997316363180996185712514962532852456691440249427833023353651943827922543843728773600513006839761729815028633924187415576436257177147228050774330844630401344067548313047531020209922279617332472661917576997386163240998475253611163302937687115104547178490148657095089975149162016567410571062096404149665967939224426759302925728324116640845350531441038797487198967803865032828124087967675233117564631180530894856179838548148694574524550474518230937619763585531265943114656978809988702189129830241119985949806708536045837554741335794674729801653368012150638494543714242264699055611751602914293987085343395486095310353687830278908720357822794629412292883481086148234256696684099848405097418473416600246219848152544829670403010816367177234476702209880269384962706668813847142799502196339558122925377919879172448669907598616018803233175739121830669646091823076088721786300453103066329674220585699072218908499176139925011634379118576152504828867288508684502767665950956777902787422094937721491509085995920121438356391254236629941684246395469342758709330774684023004638878154494251436311664926656357927128696455571842656704751550503717314488697867224178748016342191203886906442959321528891529201600476208612624172458700240110786649655935234347416486788988936976203738053912593328145183407337935494449910052424607986746148735810556972558160133642043214873938719182249415679746504597643263533984752455952118036720909891371187485622902704726360897524898271311931160360518977643020138087587232150972854572310553556410408254216067382160659397939116516251555858014383454297621083577814473261573101401672285377839904703912858767136214346700491915403778046695177341271048352671520267374054807010894386539110680996975229705561966137095380092942090286835445245668770370401915589056478276638927048032647519418547629043517757819758476947582587875897465810272870116137061608423280570652408171706578616760622121439977945758491608969264059538302027470613947328325041896880977944474647395007044364401660342272828725563633269100868161412966529591655479997754083272085463302435463945573184164836782798579997418720155901414687511524973442331868798241240311303700494824562295210831113043050747697640465593860158294816959068357335597641003866924246813827321127674277781476987592427417119721919606017055602565746486764493397149886651376335555831003917184953121332758869272752096091902367010597716753161137149502846016659156642681811250783446613809758401990741532432655597372086772775629881942998926090199484808040738407830390718298978267903439701928098164296390868339380668642641213071500406029200642714523013694030605300963355622227788111147427604857229901621543566828698698687888010721112387976065474061333841635575358947315977062203112957243101331513104041927526790866635598051488450773731312157828844113243819646706420946688452401564357304779141189785025397256497160926115349722110354740848456984179818845614079692061140358192132056849741634922941321796089140279237787468750307195333605000533856992290303571127688083316371641152936715729840033694467553242172230597308055430582627960081052904239517455897939543092005327247687685817562645787577967831397745567929676671640357110069840963927260181783056926518660587322308930083317408895451912341062288925543894251907564228580615591028710868519796766445028456003364711453433262516587049926108201104586418056497586046431262323764396619048590770971987176663716540187220344678127640605904547324386323528329302017679971296220710169162329577462378235389455349228703234870142730705882682385542053495975513077133995230786355193407774861504469551283973845732207364045964043930453925626517863929810805575653901522825384770688881801719099054528371699384833248189931959432117734954503194075197858315059564101571548504627992666373558198117965628852813624422037210631846760240299724492826868016085041411219958966393784814360503051317352574812246310011924300311428262978978131738573289532127824682443102149273024570121526714826840571612919628330673101443805805181852313293661122123748605915006151314572228946064772488327336102940491597995528234691178999001294506773071596622174649156720394468414772006675658757147076471698370945363576905862644862803657418957057654114329208417237528444664185237876067859946402416003773366686850216138849561627022602735427459146702178873353885797791900649685579992456422188731039212931576748626194704062290566950546417712545702404714596929461025068094747371065258618815890451602594939369046601440764850377252335381283303200243127025963793319722762888120098253350598853045599577301752104521809561810066055770169283469305284511320668331603672026900434280111539668212145199300587574118182002411601843530017059951034067944444186581269865480215768381663668598076493721239618765699991095359420289444593838024257180670679422894022202544515786134742945637591988339078985216977049173725893432099943610431106766013124661679303824782697774283682940059206086749805186905227637980325304690006377860274668497588120127758080370617710048377533784618972656445199099596805956313520627536821645700014163615907529530329069947593656614377941581506513288832634464969188195622004461252870219374445485190006274292171855386884849803044912819662852723117839076479813107301248040365596415176972865718292516665377480530497025999304630057598164980964783466034619179241252479850251176416777644780110547596061671575466546842251657771183252397183940664728403492073450133800014372413637528169305780656745389432530393578490080133614506937398078517392477112107868532115528649958967928741584360740828518967266753161107452531514486984037927039100631222414384141212891505060855618852247532646743963702623948511653490360431883855072877480471526481410532398447625606114261685053502624441123283343183469046769021538908085151878910086841100075037110139030310112070124607057281278558195815774784231142057111328093554629220949693925944404611559984970102506746404662787290849668813519866447041083447333604092646229559598632337839219001593631604801709780819063885377301094254366131959848942622966674977133728502993564771712117690396598976541167465008772629517464114930976153989925064939090161856782323349339024819094602816371366184359897631595239345719569261283721052059129689653437283063440668159646393812544770198338127529893774690411800574939405532974874694701964392608557398838790467548242869484075948877683242867865925504117880645400830768862317796190089512156697083763902696598881872271387701317035206906637361565616796331653870445264975879431211147511318861052648131864057218752473753362699364429516284945191822382901304921312262386583609717565898227397695299931983151116740685695971884629656343681101386553165333279714917170156204182788820853043933543863105483727630531832939999686834941507312494615030745023937782327156390800610946769632258437474334522539449999799327289047095971243502221917531213560096304095870351840756879147792135800252408755267873025264531911092504893203869749380639332685303987814466277424022332624398534170792064288127721352675428274705814075401246548035896693470762309335459450592347010348719574909102083884649116456406283804840087656243982296339753989848246519166689663381744296419060399910357264948842923950075186713119327341617588971418886844099970639538343452734853531292719887826552431780456428502469412499218322638261866687396371937800117857981370956054113150139383703053562098759143321093396934011072361539007241562769016469449575602862617150788357633766619307981010958727024784032802639059603039149648088041617433067137218766905884147665843475853579025446348466069269402909993482527271934258817257437602977475316551347618306930832962410288233259759664658704741273929417965401481185178618423009699486031511504956942991218791067276026110789068283204927278830911483237595664766335425110701057573579723724552953278618310129923451440439315266568732374619218838676519459628102938109686218796310117147152611367625996726883820520709562971384415892635961657314592232154565900150774698747354468372493036095846185002422120058675076786606473863137144259553938794593754566466106799295164025932707858001052992827183530805925877697379053159424093690606417143920856517136607848036000186516369673917880681256158930069899508285158569189390819295961879800751973565698413537549483546175073953248799502453708105970319475249426048836769247619729048774591217949782624297828773566255826162387132347063679986881685741435017313666568413539143242610901661477666153219090659420325941739732733839614861024931802590227675848540615831212949855210718336044725252132287153650182681076182985976911084127125107680875798749380870203917059524001826632639725663250595663469814209879679420787301469460276245039139968420494834889828335031198867095335387952776099306586173834491451907457328448771353720214860978338485331242030157818975736828796908014555496349262709389676348571586290929310381964367878667181175965033333422413975251612428623718329247936061681001927398502432037794242606646329865731067500068396305958877154452539020913322237239932204130345723965723515685993742197634580348563780268480398123323559808912973837819423712877825215630443466221665218238752432580533378558377630655231590151959866840370875182838367727132787664334015898505846008183138911832380915018803708576438092415422424726318292060416055581178956473599751560255031490625722743643818779645210251054210563236671765074346660805679801424528832722845773512782300557795964599959155013982415831798353588075635537419346095788748193377602213334827760217837382190985156715495333211783318469347757663615072786985385915431399294517874843809966717065845378560956082872612119736240487176850883362898957595057245610760668041084222603650578579479720481706053413219476157727410715624696684567900909590195086345163522975417615856324224152582597693124593163485147715904227261540089533095490490732259348167711584463338973375752447897814559397967968247664193542106031918473830395245264315936633733222028031925821905607830740642806222328979705912905945711773071942992267010897363950159804568480450461162082162365549149096669241229471431186687411050557228741354890063423862319132243147103494252015573737848804992758360923349243115533989639379387534981572952227651207613742092274220296762406493364775861996609122168275780406024940886798482329893506047719740157248331872728942776707230135168574976554375475819354293298698386693487964356257230513369927261475982177100169336154686606756712836223723163759565793913792220349577721620079787645395591067541213781656129755370974661327584558435062479772079338848680954371402269041048556193216369360117538093476668744017069777202824441935703259571192855417718007670813415839548590711627770471994936648358745072375796597366893182593654442333064730158466954976258638030793354162508323249362079780478777321580387623453395603600096066123328953460077562500384183102916209600812645999392288290095295895476132560464319390178706070816423595573023913472527665895924004251798002318847318439679609391709661955122471856191371237405150235367574475295435501056193735842450238818575821495487561223228399196434375047899931098811066099651866533792044420203300654825787846778244746500321778210903823247910152779787981699864372092128302755885470263858145513399505269895409913166690704570927726432895453645539298294806619239155302438606970367153842947882750351037654986628407407482891377052728736536030534011848574365742365835971910610561727009692918288595061497356430713591456126795702478898941263804026912407713653635130964990123220535965329959937385003813118153497013790029916359149935291494318223915404303778524140078031145515088710196214646467448248308500836051823871180694501879358831168944732485173196657732674081655008375085092302022373876519601017051154572128914992386385565974109479300309932376893032186733916818438293885578182091912334342358186545012585339837119754664862015173218586415446234298212569892623350744420995777389301343797364706347849866301026195103768008612170030628363680333372078566023213551220500950369853756695873103510819762832694906708197109595722858566751015925586743881093572115435943836003915164522866122524481478522817526028350991351001328042457292506511809838055176122134747396802708552695521161328626243415096338169454895420294693388119546492325747651814807449016758383717371487249888862605218886253238902332325556983020452331829055883622012790935617334766358208561844959720785747166833271070568570308763350957984572814889916741429623040304835256988132979448131689774044752927514399036643974409853076676227597666786398752491907711388601794254480528273171890256927646212404703798333763645697213384544760243755662999290203812244561448542447713642753143077807736163577508003702933824254112429025946343287280181534800410276026099116194413633184589373858440571378357985817173059610873509498557425583190553671478572378067810011468336829797498111373522579710620116280239322669934411613136628428215203323940982628188665848143570180875470030560342511753530447671645980761325358680535826832302245903414793874134559922353446747544337209571216859844787451190066370174034475922211435117291241967163153935590613391737907229820118457646281101788339874577850475191550446546396265173546125127604890070122428133672120237880775407946535467909692147199367228657957833059521471251693326197430219395858010961248938170270671068063481000864533814303235833374514590138395256131772026989159107098968823167817344681986815431388000863346979546547789609105475066348000712725971183353370136088205373829559597379918664547474792668328732998157393869713057469724100859041512634237036611761673624687910831424503523699000174737856533664909661165027874590549135351734057441564047366951384241217967228663225178333419284713519190534745159593547132703587753298663186069049687879745130983303920704923840206346542032627324251579490274479629590644480358773558155152442251361713497282625135777014925426930217796687646247240783115440272751449458916271238861455686927155104487383245524227289144218645812642217617248195994399899471640249540499007549577772982586346201654574786450256551953002423560044671053725170084380680379472564138524745479526025597666741228191825965434658834540435873211139039821563997393422003142718175464292945131135529222039116340410780219131491066713864327645493402588225238904628579892556386062063866079284695908955335497454695564209943534766864824196353560550982864631023629588698024705311067403141196380549241709125189686069828541025467660434144015973104413871346458874926195798459165647771745940868224414673692115324550521548543395509518636847566998597152475522908731805159500959386774903110128235693797397878406769328566310850289451836898182394987897834619039076388936685808416721553929845026993995230047624554823329755324583723298950107795350662422988854142260856342158970812790898939827300500863002959739947430119374737751783898422566061899512559354433457998150495339249597238270682518550718626727189536239210091865897758907184980249234248097895279112448412465227791443038422163203143916218906759926737876665288214996472347043657180014701372078760322926507918696114853123458579234395989200934748502244713416587324651728579778693965531902848985770352630805983664754097182202305567145682366712351822541720838781550310810077626190400617139863379517370314836183730278028437619211756922450807089937288523190785885702003312767284097695745605273413776024355223573107766188130920312211600520528415543884606446564271507219308237689249568141119189430260455416478554688863107649177217815746462813598795038984205348924475602144718593631217617835878376035282095494229377633958828860445366981720293277047340066700561911599289937953057422019191098811217324733943566145979270727442038711760125495365422883451538175389792287630494252662159585303776902030539960494798925901988595211917147437311164543276400040957871805331478960994629725324000808374918078836489690106755632155385966195089623995014051645787338029423452835782504616575524934634231641758747595121500274715084964672557143876588222073376677457183519021870731119164832738376299321745003108880704759060061881420347173193890524240413506676181097480541127442712810748848259156817614852661820164005934878999998587951579043933848216756248080787698825642283768119500440341044227063396280202733522210923276945705834345961266221852508345103927850747543392583121036764931767130043238443589944753896698291454850530706794399566782443470304954620393854422839136775568212047836342710363666812697543538014657640405731143630442965981750002124908997580986775393843494066717916573801464149045424025450350541273054450871397795576491592860363202642325780591931565036198150181274287845820978816028137823950749007952922102047791456260051775476057136605957294101544055266534814500153387338057406795917293904404636513669661257523769297799226524074886462787472326919982642254582578228105406743329762050738577254183613416900240803610850754122892245678868430203020709460839442431944129599250372245137611286085037599327948814965978245971775111562280951049356022002779713272455587909947950666881189508868602569747185388451600898622719246420320195918494555374796303702614639109103252551719326398789960865807833623504889882331229785824619989807738295918588971382047071278960894242822921437851964131067026125145966554667092330798038890312727765670057787318650979134201318326908607071326894197862263341739289435629773442803970702351702922354637825726522316340251560116754326601416570968760068895411475972474361858859101423118823361785572940841176451465520646630588330664728192705538537539194911418579376317184446478587353857331522074358397780910235805281329617071293163373873409250184966137346177126793534217039189824697944738990177239633715199075156547426848700113665208419009969645463529616408956264197880404216605838524916046431492199602108829188563574188581078547634187459316768496331832657949870027334064738845175104297473507487881973284502312370325686131577736630360475460300121599494441519237648588749111956518908972968102736036478313995424740603233154335040130183051787374231923975901806959541781932693827057580105358621238069213613117120906427121747074361369651740080270719131878487476709441151309589569135425105643868757364468514833342919232508147774216030207945089156353061545559599372612073537137309690606865721433656050864261569467514092450809593908687842786358278388106016928046434788351181094156315551074957599872189399412914148134003817587495605067708603775698867409490727295729832423574834639284551197078706613848382371841000880995800157040931519083286577751700711711600614345831753787864072313728576964463103399769634702690020649122247016142818274365315521735158178987629805646468336256234164154377310825948356399236030103519591583971885918860850302644322981588211152023840369887400796818498617215674913545348663334037319055289620699044851843967817652068978161417907824071633324149444719459588558317242851957982880935510829408318061480249206820776918718163549338928156053546309841554076293211319924581857859929779594031784393321062450174804562715635799377807319732563078969850252715262347784284285788662218919300851730087276604510561867362191032077558650216605001209642951563867674509088841801452241556561648352373477212454531190507271097750760882433702573604326267672522333398495915984647106811635389633139090283788394337748334579937421666646747345142997166447166910051082346925723490199368281935119760088350854154230297756547687779819520143202672010878709294253654397341685050592708646160116025363293201551072996704243932298523509176976523505860756583949416572612247534201432825148824273817176403411761784708136391689160808525022417253746146091954876383876644549457702400448645793104549166653429805209512019668621048385343553222817963871127732590853635036275196615918003584686778855802155068750577477733857866588250548858413522597932319618278165856177180606833369734285868116101435960303541547744896464581054915169234263103841213275392144295451809660042439822944535084884767792017531743148555996111614032776518748643708844519521052693400524360051923963841217470298020682921791230519394344831542876211701638169000813529490289404990317037391150888206062565134977348955185727947121975839885810682014742254389468624257180197414016122520133798474902854645659891925096368611839485200384800975272650261028242944972597916301588320140619498008639137929197056982019468334793839490270039080985659212791492445751394569898397700280277006773884936909460413014248127909324286522215311858598122138288967167599088001258294007294109794968806165264128633724402122934518684875673295652987769618172410560098083238005360034682543779783504890972487559261071324021454417618391315870996038976696797377289001470605548100497842396987733126063440985903456698149433251230569118828334866429909019032275859549674417483744161422002926156857175280224521374010723567344348034165512584919956913723729254271813403332229878104987550765656210268362041709047368624878566518268293533028792942983624017043400086429966903369454249288259977059247881930539832402415752204561354252209173155817341814806400442947856083498694023824781157834976409205371358682543903923609497141076341643685283173859251856296953319354684873930916483449992015516675640920479936281459080737081264202971208758782443745653870563200818773212812377316499651785851422654763669468938378607899167748329279860479067357100576315192606798140489690870426525718370675705049792382173027410481007472172931921250152639877287838384624472727160786893531116810939810947289651678091485766178565090124855013162130213301070400027275877850037362901036717835814906272603357940146002570422938790245090028189845525688032065959094332816448613458272411969181522756806730426480162045245185223871025861065574579736458653893335302059831810758823599770334808838371490452404800834987232195821291266103718095245281438886286704193349119596151565505875227106520502666156814489535497105535280973751040904847046043868719022857716308067129937437873708081770533088659182011537423670124075283646744680696837193698754039302307398939231443104865602537647705726544327546014037285896450165017291299199082263621304944554687892794250993419163753788541978432186908644749407764189742488472222201268950050307599822802176080848229213442296955548835394209470002364935320167739360508038770899035396306499113399669829808250400468114652856022074617263069731435069599658088979929925261951967915070576996963098965273594772863539355089798548997869932411322359991258707183116685307874092388590842832365850303066956708157648650391008157597232640309360827683863938608369472048417963857442475380173537145082141826894982906040384338729981949841792615538429335734636420420483466720111520786593448783861409814853059186026571041697962800927143684267355775646763348079883717261132361160710457440989255133287129045394109043005777579156397727701854210295287181760013450513928181953539603283733316074178765151212791037416972515736249751139576187741249668687609392786889138865563367499562738613480318920506206865212878822576179090596508996808747654449725104427617999621530980418389002951511722459778580411847920508131930287807581620106244464729169498261819428351584253451339048356785827100732232147719904779146001031845927555297847223375514613524734472532925625993066900670205437043894020017573325635663182357409876643697292840301984061481691871400272446507939993333411319669652419645414591772041550440755164314871625289117184658870450194791417636195117456535833815245895222142446254396120358234316285684142919758289892778144819121913365530876701977291773347025453046675886230736480585265755883155804098871050857461027029404111832511236500545049018390383293691656095078942471693661394658405991281045577520364133652217599350549721882430609432314443296471519335482584122084774412553216083536783167944265353002080586539861982460311311301332371335415235359804502596075279326770300509229297574147532670695417449851252079457384384304918106463738239506517261055706571426842207272476521828011973809984584079433607490397783956346100740840489382491787396370219814754826733814636440083690168605993018746219733492398378376784687682943085944804374710916995022081743057482213929206609620151930265170513956973868642498957275312210692995447665578341836073666471471951384579759018362148918191660641386370902744990934450458345753905395514680078169660175752320562352404357059488908513935579730188566004731973571848528125605426777637091126880650172461272442982576538022891639753590962406402307729565653861846478023689656646176810147940103267970461774272788639726089037064450018501889164227469938418836155437749235952697098593580646809200099955312747064094051060005523057515667530808115580636208270729006221055393131153297858452541821460402907804220854156018865555312694022401902206071285905804007975070429920176610937658893782775157537546655727281760552358314374918690791368227593835471376804352294865066616824421435108757932483896621110389470640386197524011706480433802549549636300842492814096944395639213250041904137403688457510787776690041145659786735185464346981214639020209767227523947350024509633204584927178393906387865779885931661037707298632638954956348168283689305916490427778481162553544403970912846417450342834245866302792843907358141568583498877257740166740420129140493576206943021711311650054478001534233735723178649309661095014085613836301950397739829045976857577280393128528078133116119099030072475769775555580701686354253635590644352013843295299820590747870551951929772955723353296643667110647483043146678390297398089734725299106349866205910736388500845974717983092249985448039577520757493241052315216811654292475044638245338949110493194838636083553713705931375965144361990626444874930680738794195502660824378482157088040743675584639297908070835228677216461603805073117012404033750242987988873436231618503914519660721241959725788358952189102098700343582780353146872099503904242221638485315957023423837921052397451142254905670516729905537343474624516423257074063998184051148088304080506952039642986725171034401106261991106442024297203463689490168653309396202428461925443307398050936208683246005104131089683782482303521686861717670563627632819995113226661837191718798489184736964590706059457786866338438317859180250094017678751895046663447843183286488338537209299905625454806313549899855174299565043634099603206683331366262043249292851360376037582542001650968342914326374464642720647971093437534662669001644172101409165098322273919151887372609779547316011548952407374036655577265251635366740703798853269728589427566604912543988676389806594393645955165796233812693617691359959606466297254761430449609825531086959038928257632071802294115459624433373463363592767464907408106640128140854832238940200644854743198118845810360080205750226575694949780155549072598373358303258321949294540481754770514520191741591914711379041558335538265927792669577318400762400042170173078026615578515298694443988865569438273210424418435841917520732534780370538110150022353048467079539499975449319187916799484308653176683388176194513098280755109137327578917053484217146785448220331587894770396741730857637044339340256063821278981654340020118638801905906530090977361297094102893001960444871987960437102763466130003127527858318515856524263626927038164508076968981324539914917793223687661370573055582924399594574299107412520908744554519160594768391123871156499667063118902831244121818809775800307270531381061249057551854448949595905981328460657212004933600122900703314073881431942663604101534901169449537703903281069363221166962153261804071962398397321569504113260513375676758149899953415087513414974325324688837881042584819378372935005507819672710488318174138006094715713734960255086730111752637264704994237919587508164374220229079103659471335657270001864717023321620902085666637484625331731875116673168392460796989184358163269506564533773765409421280228320237742929632892076995012711127639739701020669510150929227226013685034379139522895144505655793157137552180869268930238599844221776642953776096471284113347492431358919475066771273446077582851244573933661826515776051319063620122779172182872734203430894232268393379101794226089921634602542679532921190186021805686488456123149894684711044548112777177877651830035694154943517258593362842973033409164633735364750357513531632049477947328587002526491503301772059006621811492571536867687237207693649260518365763012393483831647747899361048064533534283056830160053422843821908531515934811089396510489688829239428319085170310375603620769838574788548553456868331970807563106650732967332679360689291219229541991160830588705927347419741968107212897034167517702586212434441771820976877019645833426110708784507448050606093936055252252281223902414932879177665714441949341263228037482456090567503524158919166009942499533096152166626852945242377610272742033911012597433057451558012865957147511002793917401499425681808476350204250704332208503610286655119951836643292972785047474955793170309159716148799284781348260000439085063967078379138560258529162132722697723463233478047697879532490589978348427687872489779065083244590846864157710796968014906183848687131331046163653406618267927038142244629776169520940552487446838142095923858335096823131623108132536344763478701478531456407757514515960613583347923911598491807350225650661456159488162827151430983672362857583075204773330295896566169699258568130567495898794165936540555966408170260626263259886211074348832801170096400371928912404023780608144895909602357261459237993712095020851126480144426744601693207513658100750264270305151162753914000133977230221998072182727640379086400491169471051616041919374544830544413826325978120861153610696048919686194574644925706092370670501986295845307711219359378698184835652249253644421357174770170980952515006694419753323202826875710864296647698007892585277540419991698688649018106458964715046020628611602759279566164341858768242781395618961782489322586180413030371602863344288991025936710059618045468791738369333556145703264733791200208906249068880476574404430839614417896158352653223392737657341962073944748762246720308061653639102241910021831216872280068206118201844568546535842828156324113782444961331228926414903126035614143402755260356917794007731159329949371454377021813560962748657399073727048401270150756533415372306845444138827656260352282124234133725634866720758355304471687447391119549073593261727961463784185237658091219735001174847530270762553911966181950190109045666876130197790029288730750887325104292827144415049860321528099334684108512452455830577606880603924541052557460722936427189329730039513639705451211941721144595550721075286118780870307921777400298555558970432273370389292833534793603486894600573618603710110432887825702715873627501867097049134906391550583965097094367058674342391682674408400859887830906909638883454584959258035761453412715916550098943099773463990828200056375033992171954553551293656208443870705874451073582412431024551416942794589733985031001185539789488119449974595799726096338712915766161717476118419895217858883006584718326932914878965148120331303232857552279137462441064573887484503614793546280368800421443990948246571438742271714556504736651853737106832199886288040555429297671201719696364670893595712313208972836263625627219908777928406049658255547771224033700270818356582034531381602434755958511474328992302342046614943277188049108127361452061391680398213652224776963206257732456114773331456324579190519548109711282064781582245073267673512988597019661824431730673083931718464414991890891967117758556157145468497208476118922359644497788126154702581875889665416877690872102415533636347833829965047834665403038693136907414086667296858626145293537436974410863510163595304657603679490960818269812872220226972466973362615578866964879880909869631679284740791126826136383698434215096158218326813458559272601068781687939587257326940709878406752427046953163601564290549303163631207668915385798478579131050727215018659229123396282145702208923504266217939096638167627478501559885263135508599308748374007374988603359613865800199055536171061896336666978311358600090424559106503441780524139120119143127721398160593324806101647993764678506692628999221996252077437954377150838341901612480236841528620062090839073235734849314083757737050080700992792556521974113395329019748401023638843792940272330946888222672472242453655166360872026253484616531814012105359715620706147428494149847676972674313687115622888292824469771957997811900384994399868382291899968373258370545496943602203403970559121096833619076967378901847152578724459932573324695075171526336650812325546948587807237136772626220045611762344954565519114045563273590788456271699869948175786027361797880293824212985726065455459692075789639672343062496119715312951965036492623960117692697623373842343970664888300949411576687724681818151611466280253609299390070831014088071218570076505682849340071294046085314319065329118577592077059459375412545720168022145415360084509440495599353192894405202225949704612407142802761491398295093533792876943998366208073065731282515640422668647044631382469051319531805047072746463176656853346443611719034946841763327575664161295472894671490310898980529343165905868753824096230306648137077265198907690407339546378340391979907115445802318446194464225763670469672301923403655390611099582084332862542702269505299017794862828942357764056442126795148470060948031341358140292871876004332735097039812931826430817758708005175923430622958693924779887627296156430957154300181762253886697362797701584517569398459644175991709674399096907717523175012752302560556945914724010430325209768195412091399129676751669783573036570007962981814665165533968500056139128093952533615897990904805952186841931859447642074885895556666027178966883993187556423994768996150825604987545605358649010530552699045798915216191666743310758419181338872380841584074755634781705895656241350941262586814231141355323397874438979157197074068731441734167298350569880072783359226532392712331242555410645439488792468735708129975432265417045597720764109004533379964927700454668826565771521986378707050185989526561268729325695253010883453435831232259184605810727580242716981340282117619268181606253422312496231257173192161401597268239673956987979066999133534430192567473952308651139283369402304416021133378553245612029071133495333451671958380636801163266210481350522129201772424681717390025630661735644136654301086473234393731110378186948333153002854249393320846198378301340554860016284304039807206706458085632274873892901204793736217430297310573075971275411154932904891892010125991362547553010018828294193252851346707142722134012478958572278367337162707886441840507503556392634658733070617284284132457666066266491509258389594406214532003973795535034877065782004883069220832405624606606098016091171192059163621502632258824884033427148793414988216150014064524873145588229987494807089127614642751419991030478196216631561208676398401850806128098199909502741767682618382964031556221687168232594878142608154471712034576368943165995154821364567183700279772225072319887383360313266824877754188395111501570919349617267688865008052502620067846447488237512558220476979706544835500493662870279837121854645965981058085207043150852041667577001420613559943048386925062918374223500760560504069044412722175515653848887355295613232009262966657963579649041705249310705972639072061385416455136002918269237845305649541210267727647445742065539743310004036704771356247610427915777185480481009669794839497768714300394533402265502187061670891345675644031997429879717397347056310089883177596864528443141568398016716592717804438466510863986127470732175806615838129382755185787643728302408070767398426100906656519622063894132291298918489056346068593627303204857504518249767426706464260544638810131391338073802871610413760790300214456851775507481395972892720292393341043925676172835318264583265593416522966277760436859979832383203990720688289421690781148049230096845184100922101972715856979251792714411381682677143517988466932542692205221745168103144705493715041500674430972652380836102985841373264398301569357863837588799676111996402105500338477384255609364643239308022530653620147009720596052096505487895767307527931753263825570251232715128869966472927350255682951888694749886165638354402568318039816711792452314523907639428129801596545617152713337067441146837013118575083586578445725553777592986418353195433009884419294937053619181375302584068192377907964451632451846604151746576281976463216345418847839103447060206022118419531811725778257068660548213839990513129759652601702350123495977383150964632477875830101422144025110276165498723052385125018832629924586317967688840181637362263610425153536783869605362829756122578531336829865326608410648699244304015914916569479901545461113051069692276648434219143077771977560926263791575516002618134611433350306976206680292844669496240941338785534595116633975453647819111010599920402900629136640180875870377411175022105708012767560880135401802210983738124207973501939814111440351473291349244662341423397301597418563052487143701062174345985975720730159068294086440118120398652641888004851179491908489246524680125848097048572574683053822445188564359096580564307831260741360510634927138256922095691520102280344140971086180139758585189271803067813135741076982423641803944006001955682442124471296175795114236607287906218876550754157648470257968558805093177572300993430152237626758563342424527689847180360510813159826568533428445995299525556350582525966944380635774455375812282813564776095143222827312983235981000860439455296245343083928387631215048170190335283164919860803947246264894723520484311567871702591191579680023422172040916205087887407431931695218637968324824546383741670112454312709224977777071002827405570902887115346341798054525583749728768205662536249904790956580670592674596218802146893871984341592369050629304827257121556458728538979881826072876532946040500129219629209840051393156288236514342667008047305228153668360888016105521860938397992393633622266725126251486873121685796969751176800645117408099439990027994528870365820960715917834424511938940181741556884002806834581767274864503068796655370127101807126518011850527802727564391987942618158272635106798059141645277286860297168220461340167993161172560742668943885597171525392358326562767456848045708794689749010105317821415169286499299628110912508395718846826790052937471707051715252190405187849665024085487296089819209135621896684051591763620897132874476170943526134050471402133782676564276019135009848313951256754274516395403296216574452063179335809051971919439746847879143547950742821579199712886770365442859291152369007703799940000805032055222006673895635685686984758345108996132330851422902536628163103269169240288040769561232387158807376907137422493918025718690470389852889297569143822476560790271192634053508713549502095519091627758426062468106327071621598985458534177327999248458408796885668340761904980575043151503366129608688782071504381390165587776138969664930327287780410992672742988432863338404653556408226983055666198436380481089679755349499616199451928748003774911707982318845754114324330588382350315802449518930964039059483612318934790189603961299525896846118983877334426464430056577659712026437691413351915380540024391277434285021865728727604709590276511313813829264379791999109469531213649365550281505471545327780132760648016908225743662156826179938819218295843454616590654774314320571700786306543448228231100422518218743119400335939813158478076104060404026553022616783982525299815965439890180456432559047097946527659509083877376698289458325670962453075240791457385160028577922562070714704386729300520719401173020993281918562738852386340520827474914700602099400916467682274572636624080545320953118149611445789163240439008793171201642662916982519961087235246889877584066047383853099071579589316083920187625297812116286297975782003840284892078298404740748624186088258559776966012018756272746914489163985313707900101951915719967455147382202956295547035184182120187305448670774268239000412638003649204060582948521950099282420919239106115715633744881137674183384286959977109704735920884640675282271875707095400858599276598490723696239974330732549626246782821910620241672143410931297854520900169042050606432787304161233018117015596362790120869845927387179060891252517217255198506943554130410665310145467077030552901199185585712399187807324421713875799475322641028964996647025899022911141812867038558473616121701660810897595178528048187108693303672445707080127671899114053891664049550677373532962281550520183555254541742104759783058917554399425582207767895242236988166936330760651223436539015671701236143089927384804945467725649316044146045974250002030945935388053076476046996156300612874322426243250048992442443006872878147372326919847278578206708229576506685610567436408316252512117480378051539361798035256585708620919839344949021553406969892724633226675142455995163604227479887141183112377252660147301687515551236955471962826414985490347102153259329555155378772105969662553448817830912215408738791915615959429201281954763357631939719625972497575494932852409509945078001826659613132982611987854859991548433976826328262165441380483211432009216116103032017205042778541086444672709581822834946043243031647095835504614632966528252002910944249661933271430682085512792852540027760390987778602934854400724145977026005207466680520530410403922585648603590567249793658449338155913139779319677863709955092153366631727723552373589945678863274394515954129456871394284437634010205822911660004816351807273583813820536583958926388387048888490282104689118572453638819606575781417107001780810340014601951995569285288838505336953713122354797721201626218551251854791605468859784151715736163228249429792036343451022583045382600067864993159932481109665361042275838440537933486382531635038499471620514135677665630875369801166215957385223512973678870897925909071107546800291679375203742190355334796368474187005561821898862377797249942518057634275609294817212043181035642331647365179749053458064127192951348465626310292016566046241954616389975472611504588120833541065630883612113345158097551770179421250942429690885054660444524300613872939709899766428045290273057383790837500126398136093780914794015136469481476434807607871233048330452698659898985253104981328818489101278735271352562304064801108524036729494031225975808350930104235182290577710562874704328254006616994210362755765902625409761358419205737344775113102334353597366806884243887439466433391886726101530397722191500148765656183356560342639637852152921890827851280477455208853712830754311833720429479230459928490552930402937713921572874936668820749551155094704242882393550341124151963053499581878041079802161290216715231440425775040791373562914386516735041045067793942182551040851671473587806181037231230471640201744756988538060870850039723731818753622571452090349299199478651678395817197565383895891540863401005833301198159206538739816838068820817820335126137608409341310685162869554816804238013212413995706160318837727028451488615573728559901150119179245833637606914400899135878225807935539057134310686952464325001941413938622488278927195611667833143576336337200460823026363401108177710128161724478132237021621833647918088878552442408193514489996184990207057923370664385536728392995142036865589026277907727613217036380081226378186941441740913254438187700407829374811611373194860702027512192895901965809124406283333845429273676350351370985034933546258747267832727978907609019913071529988543828629944059737020513511526378716432308271520559043725353428545061402583980144411478955256622189159732705052581385067769850266519760241532682244405931025509672345032992635662488340980904095614792744037336040514584600738136122881775688684793522825576956650320365876670327347002820714082779198123362394162802079980511259154047295846241706675122873397330817906272756229557292185186222777207451885790395794336336987787978558601718239513528504489481934704688901196995833950425049519143235595076935059870678269773529289734385977291102818633548101788857201018208784317315082321604950121368658109234209459259887709515182454711789539339632660624680835952957182162982756918907184069862198122829800355997375955204635872182716966657844572659545828501131132536743744432560552881873110206589496228721893838757215405744795720473696013064950977998474485574375282782158114562480225008261664655481742868023043552664594431896147106984222213214027917036332818326985663672877542098276101995817005274154823912587242385376412351232855678614690894590581710971220050932414002744150688141811073407254874010533284161711463014782231937894195509930770383568746936299659204136316089110586174853841636317470478183320544641396833406828296178993475888529060606317247454101546510337877822502456447783292519232587616961914367172113843557800328330595794093097121399683120175772390942437370409418358431577363425831668037001746937261427487793772791607200897550900886619977001439011758865640501724207304564610673429670472461893474407124360120684451451296708986648241938354986530801859617453311103201798505731751854100705824502443354864758566603722352537448348523189115764530933669226762946652429115290275617630155300119080687264199821014447969415301955398854597387442133060231360860197096422443381865953517966604660367993279165105354318354401446865711303774692135251987116274771864543934505083862481862705375930971950469691675080689953520303899829572837465972386284959879878425806566274504633479803496285266297844699489635929509424773822850743466478497185729874705444554988603410027031947821087794817270340421940661525847214032744255799316955074776615907631678861735992752173717391287760973802837332649602275313056566566813279149674511573029009145145436119127530125476348539138485082748998909100779736248292041121354030066081828980476372141885820356652543729592461281438835078992009432722918046990017991787396416260424503050779037350265353091504708190040748955391897252828524694723826083946828606948841460707250888265451247458400665479851611019024247524637238531762457497891314782183047160806196580733573797400722796746867707917051415839294262995060724095093243845349884932785026662117142199152138404896762078722235105886548929463008193910813886184979529350265766276596352146974882008806676785228783325889044982137639128315571990576834969887398364763248102294191414072706858883177249263327064399991139795526371230847957146957388318094477999868396700007600367734662502041176882148079478925230266862504542064831538884093321565532627882233612433844570250785399957657332248023711501571884364329063345275871070175616257072586045418131611431092213444468194664378663590789930834113502698207629210946080147576509446382658563291723809893079209933249134653365183076532038027112335615532290872553317457509992599943745336046254311086335866849997415212145392832102211575236151865474717882942331641168961974431142372857316477603071453588177996427188022714036021824418251605662717403418100865465297717044733136082821200575737818321525928780936032357916363870216936331193863618118431742619810654097317207844047149334797215068797483637546343236830529100722481685330758913892526566267299532335840626148179914648367084042361107960183823744489968559285637345695850080353453907576871289868464702223709218033104080934925977359474515490022452475120485916706430541542014915350337267667708350629524247670527149562715771251417575679674158322519709506020152048249613935252960635645995501979410342874031897689976302148629960991294211719209305892179941143778264786981719749206022877770144000700409704914778670876991921319676854909539675774659423716968480673769809709548003779661895642225794772303662032875063574278906678427567653367284808094022371775992877126038640429298617280583568434455089388228861265619167051003703879623489639435222503359055577788814211753789891033074762988311299995846606642871488793623064717168987422603676818283587171961445999474259737198759747053741766126809656949924397926928235132794104339757684758777748673430049065213226057068630553327420507794197662694313827991470244641234442677315643651292910831332291708616937697592810337497940008378307051717176901271554226451396299819317635987846892014935763397684416328306667429589979498949646532590659489195127081580691347579174379593422060944264713409248024641223676339013040688566965253402768481845003394693191314112924508810202088295030916267463563078432809255070815862277313965281473270193925051981363330536728153562387302393751238076613345625500016838314404618032314252220572346780473884773520675862237538481866333375044121781402564033893512079226781130635847189317303881456651489371232698834612938040245408645046465599589708031211609466832908620606053328383920971767240455902140314866261382328173469386363189004726365297575551365994394223845769196097540349206375536245348304690538260955773273025711095608105949021529282242765309876234757266648863030928386155361205339522989256890477545588022302223914802822619347717621562644274010430701747554196753892869095349265742179163186727435315362312004423434475463556247358832978362719365711331770903747021805023961615396407662437249614115761793190095202064840896344859552927179722295314123783008990885398977380040142857149513356346781290146364003965899641400751133613571759095456066697127464687947717216864806385644473504121679489517118577303856145180147456681162913303231542484096850306325339894077610597094081081770394809192505595598425939545040853662770536918594764564646442736082214769938894827286568904142992052281327018146132946393016002819887788122080378119080640313393857314664846128257073009899283031537393804658781998714208202410999635391203046894188812672618208943740410237442919114328804782896666920684605271776943708234698881124812059729912330594198335713420069416719785583194506692590406723124974417470463508138354722970372519513197680126194317096938809173160139108721384804274384068883661681310513976995899986662230060206787577760141256217330627899014772919556177212350301830485837150872128712912852622324946756499865072822839859249490659595402290840331477702098073443136011006431501657187853755555156432657669868798777271377415486894131269457964388764529245570260239117542661107500666426998259485769941279545118826586231188882979940622421449462733005634426042550383604415801593043775888809360857745908325212547336428581046902792759382859907306520399852081059708859503935796167571125977406638103298323558906966173183731463711559816346809848415856711169134860301215859933459951851730046841772855588815492752347890495942068185988392785361463367359327804579538993463069017398278098837566100664033008140257468278879183110813724760123261651446594021567511248375755913616750162166867355630279651076721679718097757075201397859783526151473324147802799082129086382832527806867233028473890017633406159682088969463492783678697830759576366280855907667827516118161639559385078400768889456769603922529611880852095404248617153990342591123474761365738727787606579180202112709180882657483839438151939264471715363352512244800393989530224593440814823698508318846747875665173415529584314268312815895092344671315783172677200014059067044697869023874468680080902707071771401598921662434558735262944613983455115219279275645749634242901792732590382323028728604439661789469133382224282169990306727359873258791153345273644792783698185471130005424247811651357187413994412379531331112871068840488253939656651561618319810190006907886338684998013895195467975190301033916384781697217029808119141761185102255823720050141917341778464623516925606967495948142509860079615419760273820741469302993088686327381248174014552225073386184757438425124787675784816597233343758751862007336537036351396737311971492034301267530657510378923266610647593817995617807056153934004534109769841883338303270441186888258636939081164631717918157408549580103917271828962977996433501387700167036634372208362022321736616025694922383065280897043148161952633560464604071740467190439318755430435118820007718984393686311782536175235081873099848859237615442488871996173784245386102493950149550278381183955775965347920672340683549559747768394491967543555195321707404005805811534179613386945419320898622741181445371210460839171518925350353240160860412573258961856684585534508857001016230769007143911104950474675079940701768936178390957691278109442821941245335908446546736485052834179759732101410741802168963845961613124821740440541031193146140035617491947165229992586545279600894463268148642470172995933265311275107860816947704659672227816880904076592153767386050487344323519796021931832983745209884293757282856060493732651445833460373123414521091085070369782967253400304287099416272982259149024413666604563858448177028765932214156335901575930549154520282808631230163186361692766675782479798271233767173612115581888535493279788365146331240915647517082512132401748044031033043221302629203835423925226253716928916470007574851957789347858670024273487943443134762641931669479201107961012293263660238539644932773952164176085897912119341483683405579461795682566630802299091007634677896220008990524801979566692284981797100155725764038136991369579760337386200591516914334081767794448943047318112017870982482438504904610222399448685893320306222410247231161249347908412796915039874343009146598743689907015217226860548471057318726472818547345688813956751052122765959408998930780209231033399892181144928608315017101836915208038442850321104952372258873212089151066207046081016232652747451907811453686016103557912218295630276713638000761829299071584231628242349231049890406315145326577548133313148528128704909595206555245874281912759627230337358904603358681373329902122817383887740766336323960809536988434637138834157281052425342513918785524082732441849341957852869670505640709904189675991712435884068360375352702034630497269146563823578438204125403920658299361870467789273591683514913795118165517465057750188872873405074766764573992833059988242315161866058134866229027836019658479297164430710939693107981495379942637536416458794790566547505702622077602797142748768717308950736201066690595579821590274482947405694720288075566612678515644595599640937533283084248258224179358531751073493815832328241497989490737085871901315276961551658150238997434072397630146838391130490151003169554764934370380927268366178786642523550152024333525717628342202033152334619138075640932568970136963803820454336050248876715052710907394245528318857192356055815969069424353129908761111814693336734099154081501206243533067524529855698061723162029393877787032479950670813941990902241263123439704624862461879901223576104027671760566491056459605801820999922385858890016808295761315509504963894722396810816724774557485226670358124522732764821487931978385820326261939820523895469547894013410034828345049899974127819241425477677963443381147610850648768955819289197475709624914493248218283117131203755803130989465726950869696712521494161673285178702578886149290786185692792886194908483888489347977673246422487385727341636388008976117024207941172621599624463940418181933047701273394982040786071667930767601781283701563019144555647457887463260590311291507472909298911982757477173420055126661042681650742110415359070216365554369269918087174313426462852105299691089237066671941360732066909281429329887325714445193683173308446397256970709151040681381432686323895126521747636281108636982343528155190957353643570408884349403966370152740349314475594609334823259723790372436592496140216531478070859460219422703727096744039122809246763326556174625909648912476140974786662685122534076655323980479613405317406717456344152224700715008867715106996769534038569781429078357755204115891089280296972121151635516119808052765537498366241199902243223016912729586227627143833330896958661750396946938577103400923458559093037914080575222191302695286090205174786592389212383255138812868325855832997321026333910105230372891877434668173893780738415369145208496412839072234128689778096489243747688895517482430182897169501955431536924100914644594037806982094828592895503605801335278736545168444598943336866157041273119786832801495509006922646796223048850316920947694718297923362481200218143268406161455096251727220744590105239884348293613517203104367850044681410576276387592573032054762550410782156538173874835888930526053983178898554110586882609441996499468496028805804170224859242713949930654632474153405940198851161695400895932864306400478192102027171344037252432653389024971763119821675912178604226183825238981574422633897501239530168873025489576718611038638661665455947859586878027476631495883538650512078039204732161837635983660510466114328451105952365577805207362118782612894094130166427509811536299207175477154586115700182573841938600684113737184505953456905753369755712504510454039489610046124641952160607325554244588709693857163859011951988555551058496362358574639689483764969961101880592982602442280940638580573346012309531824606366633646484822462151446629265716882874941254835067762442665503083753960774713787214044153057953860390640788930349099146406192022411246172503162396261574363622157199977810554162278684369641097342453932008980556747017675362069039749433194002497548454984495167893036495776744671107380412235593342188822342689516630807168685859305154483793627336040059325955153525716736845465931757812256608695642187196237160559454822330209167910032172773632675308457899832341332620638435539905854787831561448042882708638383816657248742360463886297454533648539338567242646802644436147633336518337550145738890746823396710588679879283476947971662949008769776993378498445926917528916968815976844800621568622492197635394902920897760774111699093145435794917774395458642496499766580982896855676672198807604061732930984174749866450850169224657768281739221869011016295379177288027140982884463578232595233120535903085445532519458691826399793951351325389227684836986268781213117316561018713101572813192070710764873615516074784356347057012530447828788416034700863147000995285104093589113860286486204817931805793641098762731144260010830206795981764070342698810504775577699446189436715902938784325106749650134120849920501823276798881989979525775781314915554781183195722704117732871212125287682236380456904322857783294719484333026486039010936086010034043287723359618410991716209641168151723447808927310042116151320574515308453180918360123034293531618888764010643963106663933145618031965377574524636626674579878627109250758177031313826464918397399167583396167989963208908090716693702001467394278920620136574652166262286134511344987675127719912509815886377755477946441739395717862350828274645741209831616751820358019229026356757575332832285544386565243041536799341058980089120250564994163187944835882650335631631615320755928828802321448942669151562312982005353130900436122145072739465077016493466104750230971957568951442723184878736629159230077009679852227284979942741798102706973101799073435964631616252618194492971945465988186908594195367412955751197804395459668143279725851390812109268519102028343757227912951220490934435005505467352091221502670112058194887928892240134480468211874552539526438233345660119345865676471840539857173249324740937001903239857988432190053680756100525751436744021442122425756409130020614976847911104526957007213396511957108844725385433296154421677743243070663156600623032493870128594240311856075863388126785895712804447460364558195843343603699686602213697565334629784385912788615793756927946261885992812233453105303703126944813948692882392386396063168945448081948535580967391290934025325061527556361098716705413272765198978762265165886989520839766281992783373319542939759960486675261016688658661944117973128489718346637279292656238387811674142701330155252024055114141306770394609165848092157168405025730630163307411283239428417848734175975015241893272848452161818357517611456217334972270537718215932512131101367635983061866144244670123392985501126311736732875830836193113742139364259893105922899549272340736785273874662893881159266805344274980938399564020004336726257071221200917785464982416792678802421559681490097860556441389786936233407903569244872260139546176876368354331650360791274429699926158527531086999610714405893914668260923062109675705339815523078330307832857818789039263774668902891364657211431756526067664920918912575536814311295077824376003296924478220247762935788967689221597295221615197286225157400667494151621195136007192899204280441171752079009661180303984038500226811749068785798492532880917296409939726880195920180242317074764263975317752658254965265458874637749876244753588630515860509938757307038451065301652712666297142039272238111872338417871868368012631460511820316514048612331913226508962724087988355434610233319030110749442086895321845386364024465782679249055880541159780344072415274620468972931309606866982871295325671524306451384161008116327996121263919504049205668112989461283393699831301466135066378548209831301515558793647992659209173034229419835001791488568743561889322208355065100255456062315024349359660971958569051721066459124914714434702250716807747090521810746360962758705837846509505013475035864807643706951165071023405331604243489917172758001721706834206490972354783954758734858914450471103762415424344193668720369640279752534303461315740472849499474296760674608118683985058640657130157285909538575966234133507597140255594471019105639243384563984711919924679022038210025811774366792635852123491373295720890376099675369928028363925634805323252700142000904229346304834879764249387636808706781521240196478546329538929609451395157944714590996605297010839113400559385631133203669848842759188488826310193082181031195801874501747622647612249625952358142746390532316020313190039494836945878792621775041496268508796423669423161968776429602451752686040010245851770166830770162210058692510553966985266186902179631793590286270668032702913487310104038625118882498474677475968738497289052537708304259045919949016288553245465126899197559645879205278700357615830643332096048113081210800664856910324540091374425756362321706505782004713282478208992652832310943353409546726386656450860773685225047265302982337909233096767550950034923810157720992402993449211714272492423279890424102912452125732884542672308484031194114833939658061403282424374824489995003125289318362281527018763733056540540723603531163798390552042468084069297479355756261460333566233478597303564990359537129011090232099231410930994799367251031029869843914788109314081806530140687715875777373241702608127287188655664029722191925038940452285311151372028321849589463697276446245288588020323269643944407513163272105331804257170588475691139285672141030080236994989694441748891834674987011652842935371730349419565552682642254858548489011549927098777579673889372112866160785400238449824581328376101675689285782096980986701791402394668999405306643899804735965759515270418155036773183874918251236258482787436663224916368160072895145677669239589875169716965217487618631232540074561645708461003375376994589512509432387068270841920943870461519004380719242692561184332999593698743155104416427657036584036837446694096790329451596681963684822305449676234311108100073801852245323807168100223471135289491846504659133524018718865127004481307191788654624750912679789901954538033513479256057088251324524953270822696046123856968380531022426995461549347067145513844300773944562662814541134666236837319607193769787437702403956025630381431463580305250917647827294003468591937089273970533341312995257185357664943640592911346190202077646624103995131592417062834263202554605853837347694401577329000955016136342231776977572095848269799585917908628116236291699209451556877681074601208246197621455820855233144400781742005806118019436380434435523837802457317550093988852362286225634607363290999143924447103069821284185725184856961641599184743093922424999288294176872213862202631677850556328759513953520953810272285867282154591429055861801061745032961562983850330562014074059822186795355341189167260209991456729643998716124386401534134511068043255994712832080050421082520891673103181009357833975832278530931154109315711073665469142147951373669414094377544699118756562372899105845791050985160101032041108440806248834212695205259891922459289631641295223048518654449195025778473771250643183457266547825663963261792011817813781628916573189365875454166361592556021579020979403940836882310804784196105477415455297839762327984527226916087630289250539631620268457978489616602411637427108810548644762049985430761432327497742584740666247812435705812521831225862108139640428861763275646281197462347807415983790206007838807097336364458143299636853057257411208900587774537132825143288756679950954735664024680082620681810837461649282499930259335432737034967452831688486942473051566031885413476668155790192883926222019655828073757668853585455094726827497408038237528116412738546792912559578711059345291561692097864407470465472588868478431645459315063345553041848992541975651860560411013470622291848408773768263347770069707016257955312179218344009088093866232511723442584081552852101691615524109807052357901598028187325143430832595321356478451184802003108690751081367530389503801000104051678133377581149137621693988977661892933281793788400490997916906913418617609493717335315517241895786469258067002595376794697370937483444109827455041224968336433248139613333111208914898108586970282823957279746940700522330231139134730103306087169518434024891162172844786543073511375142907483651096666570922717529861453646409256556327902838005390264496353089654657623726480952793185755636244495309670670251704863837357580878363678712522286624595290647924252578021438049643997240346625494139245625258723523107247045638135735570660656824875934857250104263702527009851945122776032981431269160224128624283070742161755078638248258202144116833068209418233537816890468180374091045492180522221071988514942906086350211360906217714612471633525295242287621157099607610628381172612873167852915017147037741030821096102418857487801283070883030601803154250985163693744990868461794644196636581150263056544488651689563034973581225562401161138736090761776559496466603758020465326328031833422637634896256515080709473303911284109478937762296707798577382204398970715463280118980875395247143145028283158065014300891459002819985015352027482358922987908403836497930413482970385425326611030682388157355137313062598792658302300677794961854219983718297631923599873035875113119088537428839294326109681759327847942662165144938996539157011156890177922535402753418575674359604846110166451313249099719263321313245103590968945904758171690139917935582265442615550775559165391620101490094478499876458272957540526892897726074364379404420411026930245597572259285612426020635503840923156696512161462010615000442969408100352103132582557682030827380368841571644219638096805020047456235210161665584471987265257305021847116756339409081837431442839456623898953551708493500748449701059472550313198830247351575337298978271317483003603003340414271247303138435965407136735077471335303913526425487034848252964477636704524675249686847694254821966343781159820601742256960627793521790548829720054454294890572441754530684898337403255611385513515377303539748962769652602383819371056784904573939932729274166853828033667404870812861442183222832015524600291674914488584366934303816704600207038476023556284405260457195891364864153985722057819719644170301837571729293039354071625557790673624217146475292715146332920791460002341032359673289975531107070220000203240202068488539081317648867196558218285962530370064990460008257071030777671523933219170847832088879442999105309360876941917002110019196764101130518041340511642185524677021172441843624667116279656152308675898712894612520356167906426579418290120573243033163363091225912702372335857799502682496829712069640383873462953224193236708792849821334922245077221767124504389483065647538316810931411119918071476740265006586847132738366597020281078591548385891145687424200659247458067190634094215608530082903296154763757729653230621270457192058625561445540826614255877714111662801248943664831149188877457575403654643657331339381637731929529322221019806402615355850122740705518512565253065684033785078015044726977771527618213887684539996016367419201583998432712436209053461669082239432424911177761345174128137511310289158738442447629459040429678821130140214454822116509951540073078578975157243263784984506590306778962543458802368909812993582292343180927751466893627302074699462215011165799368511416950451118645998806507935030594445315817498478621447037218054426952324062524578926826839247785928630415740703844022591095429813460241882444145040006153853966112790627474834272067422968892542939312255053439128451680597071059722593284559657418485392947344044327066751415357912650779796344542994342420471746861222276572019903394085752617994426411532381410620025286574910753471245633053703979256494554699607040202182856735277941716299414485828242014844403347330709191871920211178371113180122672130292026844177003418825764929154477990486207586211937689776243155755909361191716574844981494698532578294106609222928005838470897308184187439021073403211048951433132745876495779911963679457306453036039230236275272125678944449057296236318485958773219862738865587459399680861048695765060256833552694165391809654959848456956255037142768260192047398655107011356809552421910451767254530249412596114649246054165975315155197517620565037472206202631367890635189836458237677315766739447197919515234326113463243260689446773003854037421293370423844562574156276503133893416374120177913952402494096738466765205969606878330576180052902652597944125126716331358187857303457418561177087046123763726455626634749386317148675392918473883865764428706185893106073622905526367332788473302874389695183996235746230044600997129082564841093698239000554709014585496346362142598109745275428426611832002272403399280476923866489424273799894221238256199933668514535404455696237050359222934301367076458513726374830216424730635946942322968650350726460942757631348204668065857730284559884949119941093021539304225032780801400782615674079612783114434551993645045745969730104240054888638859071619911590835723652049347933608320942748135704801710567748601672628220809872425100659819702104575675264040986578292124014768601152850539080548134125800687012459393445763462229282218963053041775720690428582704104814522272011054536296105352762346200894918400580526382997338872517484230454728119048788397331916974499307247127681275531750245293801778288494710760926787739967646496401844626802959598255852985591863452009672603936994748265009265067264676622150457310562882864689360456495257101843761398107820500114767976027295800610898202383510871872394009411493963272010261067253314634849821997588522390424088461999331320415193261907917760738274503910736266846336172454004662974436694439004404873911802659633249859613299979681279676104756155045999142680792441046059379865453514404811417584045668559726191773325320505283143393980288292450668399360829542449118418814775501003721518399665345597143355937867761643435886559396034312655896028435067057869911688712118076084058412002032066028718010181593274186526605324230258875428870701854037342548236335457754081118750069196717749734770963349914793970296065261582381840981251761259561769099083016866965305036198041341714890215413904015196920571734427370140738953461818195827706462244102442339234650072580137666433566484461626698640805636477757251966126648775891027598130119549061745274737195458404527526147127471769107292966212032906777975932601958512441550562272702391681355598765615241114434961436545196153447793738414177355351383845652166227621676745737302710851932198517188569145452073141532834877506915827633201799018054941904340951147084363541383696185209888734784532826612605749816030197483663282073574588129837800313180178585481923982479528720041326438116750201012816872881178578901118536045242818294805493500283856504132100930554375013700995824329821063641019529247483391682488967900251222812151703733360023778195353602614230037881203332175022203079958414537515159455210360403598238698901084340479811071407214912799219182298309963235292091747706991380384919961428678398977608051179323676978314845848494804738322160309696923247209087841885591184823556112678157311345249804948641867954687658839933505258309881010129162644695348994735411132089007838773743237286828818645946664266096787125702727023134017919944882355468280737936978257395986873128939406996087003694081827098860948521288475731142830484835669421142625236564857817100143238877629734187304304005449104374296946753639187453785375741171073062310133040428596160922623729669443725921296626188772498254387614747994065971765140097109000294352200179214997264908576003142334088971059192339178118708966831989624250685650643783183306412210339394164515774209526622614218224873626080204257260488960660500531657720054140327552433312108399241090892208250077101768751114608537160788467189924823534282525340959271844837093459584387107276327444775420355463924502945907398784567814557209717775569075546541104850927680611567225399926824112349075408627163651814461132835857868397461709386995465830934008038932929902388622529705084808397677252180995071350357752964096638534227976287330663808077012497704875221167083514484492858963657064153332521498284584803191164299116690008056423368971804294653898713923858081075256314406091031719917981565955341650190345694275441334407130001157110961647169055633174541577266718956383396280094692927005076037785113166517571559758887094099834388937831904467742350377722498131559198079891768050840247411770889102865713543939186417065014186205456452440848226270690470237604674523408217452654035770364960600464789066739400841960678048667356584098102805443143021497613865128849795184072084624269693887598067985960751631391927858646988812536981209243277086227655101002815033161245004020373207834650058236652023604122376572556422240465591890864283640129774132955137157084607003552110783336573623045697977633113337624152697857633025084176563560800190257572700219792150465058425005712645918523809058161345649898098507258019504114972458275757355791927161908413511145188564009412386493536237719818020288918995735410186222362459765075096051789701394781691460451717538705823533234189111202744991230856086176485336331733601964505083371957836723226148724488576018252230752100810396782507806427034666126529676022095788771150739704107018997682879208140013442503183255994534373405596308067504433569851322873782959274833809513039677315067515933768242059552729040739130609827154822215249400475230870254636795912807963205655568334000376785353212496127086515937724383694125471559016180062117934459252331711203096103050924465058974433218228178393791056228867248244881082895748434672127206016615392823276111118138020753909505797959246279501343823483380708415342870235103055282049778636612933077527503048314939910201577730939989148438492539983203253371407322206514024590976402897945165861963306795174213641534153240828021455835242467323487376821658427738424710967826868143861297866464602463568812451146708924131636006407729757999956378154022606269562357373087924830979358521689868098026749107381474725371356704123221096692054757367716046164930967519516173684567341445107180784185278246123486706498200742708896433291304178065028424017059404558177121839783266359603998248509932111911944118960315020434870193242529634869564298097005167254540236173901267494383126713271274206249359556629925303486670585151353608884686691875427450416048582011965808169696057118976614826299993535859281263841233907378144112719747842712842195516956348464334662162674647825532544096737417096821405806659061171752602270970067243478796479395329400643999648852601359519945571972574569380651356619382673770300726542380117665671411467162739897535065181048829839683938920470412448960901732863435427858287652901439441461856118555371535571016823793636614803141282850726634253651612741309964075709851856390064530499807857627229177196750361187679629072808576148436007453733826170860495654729641833408372936632442969503828481255457482884519053151943058121672510550841880821661490243521940283414415167911037761620388431417511360936274684027481928903246393753117068258671618476543745375935551621736684499207248564704542632293850946832661258401767699076152689948702741050186170905097233166952159769143938002623523652162625689525643290340703590796896580335974950063149726186204262049216419600323568647117273525734758287362194218318924005535461843854080193852387621385381896266527993614551329653398526501120668017911534223786642317091218898727098270288022662475319278028753472572276980339635783631522805865040196419459141419616912144839648711421200222161763911017608648970378948146180237129228331496843097956039839228075993638209064286507161526666419252659932002527527547432119532295496924645469926506808551710762588219860944981932018299543520588704897732232223835487021919243153688707730191606192720217041989287660884494584869523909314099652519078827884773878336803521494103750305160066020607069393992064109355047984418194065343289457126468161516486456514486881931806451258604583407293343084234360835023144608789280930822209430148461395035026596637619895452047922927914063202163295914821285785764939310243834647914572363465830562228883851963166246977994997859754480216282792800988592590926255173967118318768821356773759169000829233119466649544452560453029840812300532524948987365711997413490091685073792096459956686233984845904132896770597758241509921086691931625460596503626172582215184909241946895449342811251349821865908564372260662007312233595675773408909150195289759632233210008397420022838993038276052056960546737576887706424637610293874213359631493477545189161860491343261239622136945841290647163988642613564931781645971520632986446407435465934681327184283172792698743553938861652810991427122353292985402462662650623016337937895602469367861298301473332774682173994131976424543079987084829855850144079466227694383376414309300378701932483930704093550364715387274061597951193687787441966929697322169814804946630546205483861800349361524981798535054030389346997739896887385452390176429350625275533439034662986209282405341017174804474616911260815593353914118939198169692913429523438365859236742976179101701386621379828332783257952446502435603133508149564137372504102748104074160548440844595586808039714529316787898791690690796376672119391274129130735871377174899124129417551073365710604585926405486808742478669267082024550567550876491075446397839059323743706194221140928519675864950695158062249361958799230175604057879104864752500277580187662634809149350775780284817155668246488929898406316918959252596094429858084402640479388367383296239333059106073900875997016634424391859306729462238718827061344432442601694039246195935364565107967058056220664895318100188483431643178641266395887984090796250753620247558595332656637630577708806242248322134957695183553392728037105295589104777261510500917123260518242232809011660542965426701101947472127198991768279507349695081642311235065724314126757865113820072843742958060149913352324819018678583308207802494425007446223930888558702222208006350083059594916956136801394362594513120571708756997883748034263843422583567083979391949306365688468393014040350611471462498042760178980135344704699557949601238234413519370654709833936083499598112118956033756928660267314775274349495720918976480091109457703473880591793864090379957572044456962755948307690223644057447275221280527050221939277282771218517772793529709966239797622221095945304697349914545760494851001981485952947483411750272316785254605790863928601535913393284240291746118968592086592849743887569124777999922611008927614875084522262720452383491407781444593410061284909077461501130462720320207263675816594122651386745953669139105117797956341544940307551272448022889145299898871086743616709590441706919035941946616173263019925046305980577264966973208559700074082605716878338128192885890136799395333349306496029179739015618934649367103434819244713399162805405013551390994514430421782539050955782225664227682643473942297673821703982199553797793967229325786833400711252843853105199049295192248907710038304122488137546035676487578619505165039702953509894916066458974139995833653328117767738666628599128459266006358115136751148884181184577107853505980850671672653078928847080846405067021614143092562951937352459801837227093056364815975658825484147452587873485752237412578938442287878520375112446997344366664459855370469446394990671178733291602742615395020717727058726444925254340808712590775554672984110444127788208331112278647487175169062720054620163379994966410874953390434386516218470882708952136999950012015432837254390438195097065231638039456500044603226807218643594664131404052644252185422769555302326452646318439189360060039417279962878332037049774588597006974940718608955614072045610228530844592125552502043951690947283191042898496959575721074386183281346820794960781048349868747138578958236096655634865429276479303677670881515088409579535143537185937615026176221794066116163076628926689129551844306990122432866390581401604484929898426092613221250893752614925513312733279550751750275444330743325267958349086254618933956033015495357491632602374539900182454973537468602021543389176140448320076633709492576090518977419789377148383821456290784440435339332660078416986478837837289269956024844365601246171219207315227665393900683755008923787648371818193220694806560826028349970361396775944475174356435468246686881549976828029328277554890632055897595895323829180426034232314691246696554628630241681233078519133997396861012053844665860015447297156733726534314665391040414968754099367241961340925474414491050928051516603314501959560326064047029321480193325705216249087818801343880128804085470926579509457049523742143585130642802351136936791512679855750559655013536858803387122785062395609257557609640698378603384534002558624398044174149747577900971538952963725513982738972292498175563652005893133887840790649187867041516875751632307208798644991313060585372451131476022299188936337730113873950511686563890881962048027077404847344684781336401798800439666007178896093265785418884246104830035239010492540160937436234503353860843267188414103392558040622467130314935126160656211412191897113580094089261218164827490955116562751849438623027534286437540783828627235868439967839704296758067771071239126978314979863036756809244584065359147849993854174610057975778373387986385532113069552531290574859382671913689455873425501742503133780797440305244780214593681617153482659279131128660832183969248491380947531116284446641430712009531403059953570644377023672596623262546608713936148408151263194884854425358623941006994855023811566619512954145016647962151660033556778315959291697284602211429121251061647802033941533888172242381126873133333328971250281703238104442096451236399812830129277318026613950359391938491048582209793587054933744038637662046075950878420874424026665715219973422987308168924742839698542312127807327008561228452918623335307711444526402090716984691185123784872506013006116892712288256432480039961650213811943559997155881093556606710433278032746594133043333718771791425697723010213806217906598609903467184117166539695202734785894067917904426916025819330899960734594868259226045264310678507563475755386291248839603882074144378756534174674395522080032789962534750551265722466644806817067178997993758651034935130118021384685368794102555042547411569721611330309515126914487984010965754548150683225942504270630296458220894277027440710903630851350927603186524229331255010486877983150433127833071268211055054978208766303704150368745430598074331584285491063650153834397436400400141949550705856946254630130357527098613472428815503834637951310883738312913213421025271391980005405617432544101737077533011160607078725911993606315591475037197397906273770356073113562567812236745734260189503093018445874107436503945212234513062435214285476711020105304068058011609805093643883830623620545187031642321978124325419700962347725331884798823947554603916173268142243308545741821616795726083413933607848023811461675945191165406153785089119380332524876351730628328176807048944670221978341697667570823995516219925850570279306820669715263593438057469599033630743455454461581107568120360681183340328341209985487377403036969845013787112898375681972628837796701463658408956907968031693878626318364282291330406687085573442979594727756515081702584648409108209774072667556967393650290155125972194035326682636056221888525841122255848085160571547100216954362688290284348849771786922542596521139170694182748221035720320513347425815386735995495337190420254719113766918776972101552322375510921220055226779313881122783572576448866647874969294937875263402895962456507496846406330020995868737688209300415198181482760766137608961477687907792631111805583443671079715236558375168705914945276725726544407917473454389330024651449286271055520311614136062491801681673974370371706920958642210601285267399892741386523304445464868783599039669287039818942217954048483891971165401204752607725399523121285754128695268495837400828621004490155116000368578756963500467106644160466353760083396933003016375962038187230232991521812852690059504852384260488296436649715795443733105271737856089702794551937374271164288098064976894331103192957136650158195895768955904531318840326121408215051309637645450660125622456803057704965212765301849545443883973855562556801676670663831006986405506313795130278647001185520571208604491339895363092255414531514688266040495248698145864749495810092491134490101624815997512191533406720617239467454184054301196510684053597239405230496142338516780097379945993331848939535251818053422856293756941484523500714887798128625904688153363040361867817335513890683598894501710177693212012163377712830823336531504464310452905359674829994080381557121156156073987843903634634334730982318851731782933231078070635268477305825907956785291588441360409523243718035028232279401410600759233740227964747879494627850184742851833150310180129211736007235172533548315919213716468945809803540120791588332724521172942948570585240156025290164429378578523037456176968358423854647122808178449024546141687440002494171767157583964770076418508810419044515194907337346815454617933235991207318940351059950750814950362671236015982256661603269901658536937753376177783353301138582774675213646928929480952750356196261451966896188938573560523812230817579365324783608030548714492910805531178923330957724579700877140970888173646963622743054936873404572340911897276641063688971051962570465079286598473331305631398753280349699209997669359343579465631355345157960429406559823159477438352762222126162222228264133720760671911639051110265926029141660752965708225159807529359180419055217723249644366971230628143805130693208610647527946959172228903094391202087905765277591160176187278539679434745223736221534946574126438556127200065246792675611510513770081229947847582287565124060328781405665198252224184721244866074559984245991093809114350191031937568646055306918994054037556789316214573719292928560093876919833011889000607836196586971057036228716041521315916527332037917402538598347721563549274373591220671383042214603483513094553151834725174229152520266452064668848636663523499141482661833145332870302609987787568740496288206436206802491229734230305674624524603115329026542493338584853284051628752668567718158744802077398760896235388667164470073325951619247400191219568065096126764713239586235062926647530123117403355755914337505975338900192843526826858210880527102746967998925798493998628171140394762820244646857809593199564187194395651228257413783286572135916396260341835691614373628424986909615828886753981711965070093770080250836403858067447972213797504892919046919680053247410928431849720887325624981588377721860219663343201635959454676343860452177373801463524802153623949217437706065501463235788188827135930397005718541403838787754775048119942045894801464921696894061952164001874723348012001548648480196528981002252658768071902808740355190852504566314536071373299982289068880411100531008626600719646673501979123129990759078166435293773362416448763134629632875994545339259370238309557524831503051700502400940993304614927594183415745568304377957036916324708648044819585412969005175510569087700005950776467700718794472570419261840043878643664722474683188340681530911097187946327280228165466490776515749540334103496770618599384889146720888469251173188012917092769702568212030448983983689126910084375185996724034531117740785357718715726930071574091143289173538816525352377214461667007237790902420450475079513209464210749355696004547084789981234785154389121007442442868046860080396533358673817379394390968270757181695226171477231770681558243421243699941000576539328216526479290435242304447214404979618072664343108791960815428040685589579665881341690293363894457876910575498588417918305343296558768868329618505459155685105778914828423952781541681268251045663905307868840919933434890816757641321518152835086707983211850114345488918476977589159819901489386931868396833577254872620209887897597023441625094160025033633101898628875191569404539194091599005052258041779855217862963322364513249952848751313891732356102905098740179768471096619339237985107830962056856730359049166261978176052942236058424693875954864606579605882378551897794963930845078017562071921123065146387094652756928862904460197754104606810637075360690373215394529072197988954496363257353466361264517385059980445786072379247841259968091725505661355603502164259621219590504628572709526526381848037955464342362667933506219292213792711210196846028872748768015234025479773076874770805285125498015555195611740829436406394920668887119271510002074047154796251559455834822062621662911495366803253541846405128010488215761506078182035800367679786315906180671895316962551098708856309316096760943371078757228537862989024261328152141017655111896966120507107789960016614181705088666391278825855472271042305664434326723437450223232620596447548772464373678315796208518736117773462973541161208465367503212247122334554003993832196541536716646664526078876947388109143847810608605811021860477545356953901564583215712600093283914069156735992192255624499343017543630757517957886485601975977479227947455654430161142378204923884407293527210398499068009656823708909106843940761553826767905502556304594110716530126938754950746920121415105522294013849661569060787396757705145439873752276074822884103490332342398312860583579812188845389235663085803981631354236583333349753202550963355141153468413503686383856051004333365075287682066953572197655202656025824615659732475564044212268058241147630512523193027454927478122374728991748566339000310452554445956756290416692087828659518705827887332900308825348492116654223983801111307749909123514977421553823875780021134260883793183542197554621328882541413421535040105221149832078647644838310498506530030384508199875513915958371038755448565944087594558079816662500600492787815206670252092892531318580684405324470458146204570971953607196825433127874839217010037181727606640222009931158211335562190150526937203566198239711502693554295105883250473674199914388663470166316144627141767880964476835880201400864252675889732079675083884687225943718718369296153030615499105294387752102834652383709276073914390549748523903903675904658292050145240984336695306335243711235293021776642402877765191375609394206384981842426958343108719154290487685568910782191494956092815831659256626289986422889653170443468784142547283608055986841626025396922165540261899415195403480103321381189537997305846255949597795056938386380215186895765528615703522744079466731829363320063828211863895361244011529380025924166411533420357121637062054594288996661849191064609208878648258177082737660778465105930765167096457121927848931612333474545792895564227116340394324349207802644491536261218167360220966449177147050558133201396572648112794697703238581319866937135068427019088158637380158630655100795581967296209345473666782541223962422971662823535787559114628618427172003131497401221332571027934340433187782276366092302654333057856040326948686529021426264464480027592617458587987442120319108496309267124743480674689249813383556820944513357860517562746333726855025940360897888791563343651780615679232488816918789851536272142183885420837717226662483372248158225909237278492505451774107738569298339385433101577046148357807486090177308923136493699527685238856298160646916923997547013687612369117661455291915586023395817686620247739718765624347369040720916042625702099365447703802935189840107737114685532877521104046495757175012142204983729804840269680844800018260812182146485019169288792363820341684967129676940650350224008067221846747497328606438325443154611558779461656752619048246243131574430065849861488728893104631791198812855342004752660703205854537460920905719865544130756902839868301741444616146547976231828022090297682826004197027179220502104679529443786610594183112659276945643510849814584053684013099848879838846148135893403956755052570649251323903583556499627138984705812095071673566929728715123853511530735514309237403448761625903061466555015852337578939387989787180423760839127762821433095091208941909919089119563220533668537965392909883889684079112441709162051979271693472913461384900225815609974859660958059984072818180126255397074568218312339098828119938400767542337719988051389546712534891548589012389268089595569896852796604888002390693121034709688301132471798328074470329906522075508489826549106898666306289305703612568983702659151756701212561817901243952136379051102569716725192269759402912401965828261188829064783170480622512186524376367853573360322735205329955653667347157796507979867553546617724700412367346945470658527609471389944915781800113391482992760619505183709383442019369504865256489290429764023993055283146170238641685901548499177894153158514957044033231549106801124824325273231740760647893099294515357176280638983417665870272189662371631902614473164592655627982263732960885150115686787496515454540910201524066303766417344879179681910443725053819780821869570147916110172471418021794200039021725873273630642240418912975771493864102585443898184221191811179662704291583446751363473064300899684051592942794615753855606373970988890554024940154215030698090545647292876229322619305206409083887090945852884707139515795211645678374464387067582769791700817080187068570839299159531486041074707899100043053235276057688796604614370959952536488276700821464806717047032577677470119106794697135450624129367361523611346095439051718865474074511678900250814088756435832517667079657359624686730007769192023520201491638370092049969856542877920765921777813569913136262339626395661784277638555951825824707422585802340768714935440904164477951424251148328233524834967852210783847378991745781253807472743467876224524820852679586961603562160257429856794403452228416036330904821755788392082492861699593938408554313672509370677355821920692481015534373845532972558854496434135702331785952925555173458726241862109328178120435311229139116521413321728907628508097507513764337978063961703505949742993260880135632473830408787088794064821856232501572595065560777503374174958344180394938326821312977172985064750429683395055502147121612869615056853349927566622181155539503520543809655181725477591122171367324832390394517097569551904355727497182025575174672077208187293810241052226915906997062769405252679621628581172788108335484939684725092519864605534701182941276042201597850621197384995892457395750017143392300034709166149583719290127482525002385588685711037382846126487331751254781103289310564721442386407126149081904802759331155306190743517563162458134505875754969452596706699708283378306206948577122778491140481707109395653939627603120782755457066356263144849282379369201395692940103074826541289887595290696002361751940922646237405799751679403623278523013270752243536488202101227153567251863824262854018261191286950418700991956580366198679450707431369324344757207154403628012371801353130550195548593067864603503198177564048813090684418510991395741264192707232231742615785625309260942553222843162029263459013016447785552865554171385970524405626050297906897267311822241659127398375414970838950881165034348827425329433763265492027288933798520351326507587564518480602276508664556883301297479491501604869387778047919475791849018977769079982062578266920085394510822341643352428986437280690544635328404551397052091619405878461382678192767798477697473533457830123942531817076860724647132094621731407468918448362604415686316790902833247263484949497135834542391708830970363301999071104701028965330826507601136157823896563501883792329195420673841728239844539603157864696687644470295899397340146153617582509280816617167329809457138578624526060591936270115229327813098133753985485019435063728183507342609998664105868181046610446461383611759482799169517981091826286791481479636251366512379598997244579473155905772132311247741224030067736002125791502574210470271006321180761158116023770642036925606129622790098403586716344723626052951609465314746551443137675519930631177977290575846558948750643038736217467501793154653111695190288554821902790727986252638469183137755896434050929367313676198100601371910503178781081919140867786292260408935925657223286124593972313436246723800246889705768421668374728110823252002939413729185742400424888338854748451052619826503248106902369492705852091229630394753618462537641656224288228684934336363241919687591286247914211704502271145793949386960088738151786417899924693918808325545700454368628375457948353374047962402366915500032329784637110017965513250582448522255649217608105948467424176301859160689884375999099427412125407076013691152188288387991741535346693799709653095869648968092534541782462255903210573437539210108047636194060931594281920305295246410607052642789522327686428230276894697347467960972858985877589351847275116008087158955517902565867261929684823816141111662385089881602310249620067009881199616314679728543010239941132361632772890987833426092655326832195209634944778975691287169770141809376742669056481590746366461997425636730166906347484178359723559308959526826328881214838541349083962234010396495619721058297692570437741265300479283826248024181249155703029296085150007692895165591242178189408861731546112167469843486289637183794680598741221388155575894536552512139019037496629807983306678833322729581965305461842117673617116602833630167167947057220920685314154748708497556734931713571456796711405372652863805913440951974471711521301618606767940341745856100213998947574040191691795938834749025578758206912976075672635271120781902972121725142945023416519196974699477633635306351010825862697660213503397477335791043936549805009395377474675344708307370290346211249338679739161179858679495520105009326849432974413769949443294315975348705391369822706636125084731935296096170654380013272302254911970432891272932325560697969884334754428749635070894239599151623386595402412195986635150270397252214834155327437491770150676525068139815682380844526774430490141948153958236562503748747460595189849007156382330235647305550934345849595675856174895179332299688557779927350448954496560487639235786450275249538393433706905338459683149043687704418963432490843991051201140801693270293176255517116103932123043182280631828168028862540481076414257638713641133382541262714123149639444014942011793308592683321442599510378805272879703642005395888372919707257623725290982074149528674399996700987505166451770428415500158696225857165007851978993071792094357365187304119006563825966691700026416441383887402851112018327681343885877824545144579245178284305952478225033166837922766083712695071261723340075566154201492572520145874364509354803718314289809376791130451884195386636513144140780018734396547217317312687588066622241874783175123217770664355800359542087701188301093666777237620507286242337422843926943712357232887591650391241219623388495158016281997886756620854938994087654048058556931219283140409800537137319237781299466316636486698394302053769796464235619605567284752129797847914658015791414022155360525325813160585683548276916384464763076412812984835641110132759225081816900381546072973400088389599792207048147141243322996160472523212486197696278634770166663659263378837242319720415934813341090304651790346108006470977241478668638666725099531060123004857045332880501902171116817676235984890545099431951433687203524862923671410682501163353815446415597279531534145863771366365224529340851029974497486791043256261378764090215493452816427835180851462141778455866680123006673065051819418073848053044484424403078007885990489915668312461976188944378321682219018857264407886067353515824761032382016346047029178087260440671280475418434145293979956628098330054984699134534016455659554563323683243421502817393532595641919650455095539060924173404854580271791627519863745613504081789616095656925088305014058126778645812528404922620609195132686109404945794154248153153239588772941843382913580551427769439371559804237454146374181599921409725471736275006402305750912852969967066725685603547398730005457786554071153450089106431802531499607493523126330569485970186060210542699230342853463630203676860397511595004202214773291232168023534160333074178801549645110714512067962544228401094107340203702848685183549281737663247289318594781103299211680401370108570024017344800055452684036197869285421678153281187742100646285622732700999518861217893742136774181177714171908818134325583239439258861264938691822305765746160652327057926313359743670086121605452757466525403800667608864139785922252273321703812553211069921562612691823641869249726565503942194382069499166845900410436246288411267437005327813801565176782857383019439531143403826974920478722466420926025973506075564954008828991195046126348879938419647781490421628529371801653147401279280748890550876406827916163670564216042482205898866935811377138573256112331602844765982097766005036427583402957971514139343921144197636387854638100509685115678278306271748535014010726920933051310730880609925914928156272579468380603534594379079617100142766022779460502665731192090465544546714510540902546547448823677201024237169738016843828938706372171780939015365675630308938478598711110562436455435557419705001474087436236664461069458220389536836833137479487129115857745311033891393586624914331705781087000156281369018148253331106147474027395829694701568023116698587409692057934950682445317917503146071127844774495220746930201727248404876059635049247132346795330617838847390933589895255348179975127252797260214612037698783165776792710160080973592253256805774042651759313841850348115729166447790274230461193964693007395004742965072244154017205300479046222044988882454479757025584130954667610657427186897036147754385108471386099512433969297252179157113562835790723024756100159944383753250489364662499196131780414628685532283600664381273037908248193709618935059834942224473179902833399682642015054298142304451093153004483485680742347081916874506997389824447643568695738615316778901145728080531374361567343413374940322402605922834148896922317464238833370334888415430901629397595924970039227387991647000320428595047207018914043291394038760023675624756332010616063241513160111451492726404902620364675916495083479766885263466567968846418475444863065472202619703013217968165594770178901434147558190416170698826216983678611094065903637083030940048692692506714391961412475413639050934794943390258966983197893366104301686001844423756891900290608851568714463749444014203427148984038809853242038293061214483702569715803879772846826562817887107725409151920475195936085400570813615941518729244963457582702657927581672936388900429542874711733501233383263190496238463397741140333808614695726466385130042088408691470115548932486388160841085419768713621054989889276917778182211865570672858142946089267765431800261188596909275873009067331179439545565740114153004708740817697519610163826317639325506626149829442919633401105326444643897062450119322914784965192649036955701393348431621424387687730313279018244095788787294659892152195124134836549987505510176048951409905470758325020786889112056801686969300083494374794596070171988776460433465283454001560025200559250556688755965676220610493026041396656860393731818693235482962125070710428621079708192702986900490000066507564038092176142894906554471102218498477699537181768530560492294214484575554917577877116897666505748848599601047834883242024356741463025561112516339443242460528260518531123840696564703537213880531439405246713686087033071674268767266421143271969652284102665645624196939613236614821896658802739205074889568750183134582679633776056641095054119983398368068540890212024317850681754177878567862117872471566466847134021089844897329231746574033556236027972527597034889129573407515164257364888210486078912032210983923603242498744285165694733983695193466178842747577567173486096369935627354888234869744444861683182915390905469468740011561426224673625669729833389310516058473596847844963639086773795337296373265316736689569491702029800372462000086324734822327493300931291673481962000279236638287771976282271942799644388833553344342525961157743297046726438430445793876402205012722605416353080284213289227841343597123355775997618840400096845321228274931135478319951112127068074905202474957180309261712392908359102348842141890965403804554328554445554758235206328325243365448638701566324839086298972720101111541313069795638295304113692545283815894838363006273414026538854447485718539164069964580059730896065145067707432566492023505745967049442850551728551836690392332098423667801169114018514225301668354881505122997176513029543314660789562989697423533369678175477333767703960409073911011781864594084575118578441608210691220310366116818938344851746678955361655446210888889779034526036785712316215800613774485031161094904029594630561328415535714469753696244308192532767201771760447671944274157958444674863381149584948477621480710848207909411711483694737664278856210071084906980075679465257162987003243728070564260478284989631289535272553937994209444066323130416087259828524076222401672953357774932514590650363081520031920874339737310019616188371614334808906765298364855726267798554888710747191638653963328218552535748779943999750037778810485599692761023333023153154068475007991363694507539769041384639336835123894787588029393880004062677660018750192864524159525006105903992604773312058487638920443529190237243215802048898273047026372829189947623211118572346942491383858121250612914982915864476700756743501301711057913983854003850492355872279958439194132626669237207549337978029355331343176723481243582736683716317866210755103265670267859012211879167464643892192461452585769046767489794673278927207599339831555123067081093705982394296398956940236465405028250643689741485062039024967715623839843975771960998219685480132840684941820602491366703187683528932908064477548276800943833539585033742771648845040430516544388190193643906069635127418032500503802585057130209486887208535265581194721073394005112953027771056576051048863015771521784715496875398027183984544424839852715321741123712042533827503479241117949866216832471390802863326427991631268960476776135099985318770620775310098163581331459392681495946033107733936552459222964686070896178657590899477934837265921361495673889309025192192687394531981944960951932413006688648565687390619712509486077651136363054685782059428054423910873629816632910942012731554385552029297592549456353612735239226947251463162470752179455013749061366311778787426908278378345111211573077494257916476034154636375241886672523911855008276497679751613735212682619732659426853230275597923148224278966460564982787056758630530775543920783698725942057156763964023022328278150821654390072778204835935593549582798188851168511157276397182324615472572159106022235384138675239974812394454077648265863587773386408735719997398410618999525619153524855070838633304105533874612029608280185720854654103630312943163083308009574956504717196220779061085285470375423207658049360474803728472404401936484603065941068411609100861701149432380097410462002806229068996785517796239184133889904892873255200994051745323785273664129736366081582746588730835901431041372095222522092039594085314324218490216162189057248873079470932886070839013389133977388982089090336178391367609063126431965678224788196264556454894650104294707753576271883475900549019821765098202131578269069640947751631697603214054613929044973740910284326707989472354190893000868144197978111776828599064356114400074864585465857199164624792895008796827643224232582069785290973542629949537680679313413718249801125403163345873640797385858382682515413302064413148481882399632908993815957995566796247877402947190167682792010938299235285848791470477131964331646968677960940812595545525203827889906138927513601051741255204279243058985779899695641648522790320709419497179950452978811371343934603632942264508510222409960671934349202464402228779938044782492981841612954130420176751132016284758183171062580412662445997322974855117681434840734537089375342301686720881539078915407738618659458826810396937606284188862865842283390534151828972516856654232934257205507094648967345302786860760301140763419771454844942403820080538894353806302233521379634752504643866971122159255147794399407539583070291684084086449242274465063997626606019307205605576482824792155286947765373702975311170537005615462044611802448658190476790687919706952618211018683992852513988332187673550827323561327007502207143220637685581981680472918219602067578688282842647651007067111344424012379961578542923493062973361161108646026483030905932948521051454669894240250110568798198961326693254535242772698868646694720675289091330925623949713755682345234683750278899457627175649872912036431059484547000048994933567191135972338170088593806481649376857384039212283581991684231059005312322635995009157340040027045012911613509964867874279938702940582853026250133308328400893171215113649236463294358044101324931571728985656010182230417847183527719620938632473567939473391772132980475554279525479500845094607351340471274544907167419329251683989710570816851378989201525877222184470579123593157338034469003075180565824948189083430604120771744635821980408188046890481449944953333047948911941899804247913514615619571373889979668165815541427662744165452579851110982147795900725061445212034712094847462419095705120890581177133810971412164365261312586149363727009914090563189436032534239523455778244131162388129851260657118804735001154571214955158864063494393533772251172999799566975322147638126101747568688591409875947696145954526063838563094740534954976147753381384635677217191387458705327651446896482724185717001575661686418702392468146004350289243685940448121794004183550739181497051258568811347755807581678407565546955785027643320691610366288640879810592447454362511618278500658165662354438371189595776965224658719945111912247475078070854595456440522681103147024550858266541516840944060429979273097166427992123179988983573671735917331137704923494385001026345979944447710020069203357070039691569570968874908625897681633243725910781424423606182479507755409641545349269647016877519835925877528900116616461101184130736638755189024143054479095470227711475117674861329290195272531377796105172334287866783776771259510105722823796858496099175406467175265800566360578281381155329894414069658735624949595252022945415875203512662864665537793660434818939432403222986367847722477506818869724047833530269749083314678054210108961391937477068048169249203661015986718401021048016947346443872560214334851065709559861571854282509262855195051812877349937305684869835787861846613010929960881987052274679605685718437363298977192482328025045107258234012940786029702590266558753818952423883745923458816592994957223575177601864228515499833349410500315023802132259097050333271674854122682023242901382213625146699987022059114069289738686904068343087895219252304198583364700151537630748844918694928083812204630249678508745235959664776381653472149497002355620748394329504562309645542321075562639986098470424824553690319790397908405914137602392077936715446113934148645553683517334901240657410100321772096472662727048581355847276551786574803286647429791977191843132128458179462428998791499420351360142083842645622730523449980022969934116696078003027186000443597827287227332940242673932557679700891822399240250647264507855156583668517970792666395304011425383638678578596301031003680239755193058700546375967269687650235467864455309020693476829201579773289419589795086390861347702948306961849081013436637999478173250956817741878905782358814430531976459543907848721538999980974486519576338607955911850733540046872081893779139953404548228560686041379742423768083372968961397502350041858082429409517927363282172088036613556403628086477012211000903266901703399537902328104415715301088852058431213066099984120704733385450778052378505248792784321629306297943192074842918138839694641916512287502087737737398166819252734500651409857244353118988788430097378317842842824416500963377352686593959149203990052556191658332946539859950980698254584553390751981343817782514745715953452296609675475206664245851417833056141631622706282100679212302001940664619759618528474994690219273885693533703156949419467380811976756117770160436071447836872757602880417885426702314350760900448606521463785212503676288207097383161004027659775835207659842427934760215689158778649224914960708130677164257932169769854506329955395589224529385134119586804844290978400046521240299250926368526716137191729155853188028893833465785740445627181848616228269468548335636373439610562343903653092299697323435889203986233137712407115009653185997253821975275388141222476410408414675199300333721378460169044009727653084491620628478782783942578106819747071048775366673036618000300632723303439651838624721787672764301506357319721244671933692681120184351724044523539957240336092536300941695835036585443403112095149689652522655851660387891643068597957712123183775445807548904433314598662336030624869397821205648230331345718838160040508916406269051237704831100909140769298066181117487883673647171388905134443306905018884075901982362838090977055827825683494661666339695145407764421363936121508329717293519737829085863636364359250029380476399475098827673080751121827830658865750279682088341691173625907717683750620445129978065615095338677672119456149814175296182989912578449221986886956032603685668475139085272408406952347201843949311856390099575111619784826540086241435299061118057864986579537925942823229837093636297627552988448357949855998859862460406387116234745863657689699268036739721324543969996943986163028218078225419857750710337903924233929032219989124017473321375545732748064395879930582832423934213423772032658191835165307345530175262758337847617733462038201602656634667903339033271440903698554648357133548230995545667189268749737315720390671156464268711583488357720489034462886237000106239312603542162576687277177138090614577375960588954420425946867272660310398091995087458478172850384806377530663829799278371075449801560247398450445526836289380530821587396905685903907880387605056819192969695415366369863526162751509146120665389394378814075956105003912823254969990539888237481615293327924993612231780345281859330706303290784289562170417043312078329135365873135291561899004105274588112581926045625435825826883359712386566812178774697901956056261353046769149088892955693756371577013901694600407732727173261158385383222274119975659753323829552435249285846378892957522200431272075824269112651246876526834096630264692586259884057531699343596773604548149041613960699135268894354966138966546237371101854952535111470197818185810166181348367496637879668038565822989608493538362774794533612132045153399164480317782098870904260009724653796279332232383989779081836456057816220495123362194506498769525461707296791949193490808199180675184129606998578343548620845585208152887063460022457335606425859917991931929969801325382707885344254826900523389269173123749515716538477835386856291765139577157693275935032542729409808117718275531786158220939470232174520077546813850730900955980174556283459166641227355113936222491425236770648389632089254769612822345996152104410651467441024825554934528710318475447266138617864569312525521398400668829426790404566480690497361885832409144996344655408006905755202041852811004592150725487949925163298634462981647391346046845115805449219208815203681380390398537615034558213132378013090345200684553416825243669075870649083094536122292320742233956121314901762222875399227668852148921201732151668416029437422824994702262941583265917570197005740380139092390212188937009550688360567829972604231241178051498010357067829757418572696342139137180576400800806452713752535963208059323454673986233078921865188632111061632447742804157224288442861841040269608078507364807638454629775371603306311722178561314383262369875278694428307605124472702852925459141383521092491548514798554417200004979346642570182710528373008451570601581350231069401522234180607932722756581658107179139398741163673716649120521158507540928335362620375114077420527549502193177081019727909739385731975280089247048182654139997506449721037094446627540863699717496458133336370441671951418458908933278784245488356015932950569105659280257174812911567006729660523581497108974990777820184462327338903016191387163996831226868085850252416739267541747124320304704275210225101426514015120430894715755887438489318135976391944413634602862651591891285237182059574621947526528413148922772286785457318580537216787560080304107636995873966398293697119475544835432509421936845846840848501477769375510845832736122759217573601598094929751414109437723780277384482210485000052396066424479771265235345239787442828955149860334355101250393949186977645462190487609295170631887256913913354715616159755970285223677217205006654591792625443587030702993575850222876314101568775944041779428323555032430017211681395951478939929317610601723811297357389200496832892090175716185352103260764957138997213934453445566320798187120612176536631221335959512700845240604119220969593037856345443895917046864180459384043235428632280648694570024721145367760626915331344676150420904083439047962950718710609205140855838168267832680012189556407184451913071854507633825010709486281926995743374384424437948326219238365070698637839271091393104250966684726565378771732986281896044185587368216264974920243149365378731149210817502855001779668773023175157537067297420073297350248768437705473477161536106183155467069077944441978669767139687320520041336655426486849856542908952191931334707981679072851190415223271424020004448323753291981200490546258727609514490068551802931753618166613722574755968842974109729636528662248735436624804609189123671715669501601696976284963826651970834183386132851689262210958930729558746928583506883322574959708928964137158951106347420539467775648186126844980739052678963678727398189544039349772276711692383281819309244746541556767777587356864926265834229343374226255903687047510536370250691197938019868283393060091883262259677681447692123815123633672293403838608078130076847883130903930260222859590333576958148289661645332085677517645015593473525054024242482954422645308539215590410857168189927871515549016505859257170621549640792033474072264069218089310488948489746511718279117530935336985552278126869799107903901552246488473788224144889120730007558201928187473725024853239916461534639880432822509938480939733572804352710285175293428171596864798381712115357800926492720286301038779637786815852472552602366532510024647009567842449464967515810638125947767862980256171937702861046971348657560316956491250195620525025329533386651796720599937837538418567976470589897332219155974148186443661867343169740234493650007281875371406941801318605417850322766613965063556838607558078485281275860839873427798586182510919218323100584747359507441601560636428803294130647795031405394575268194834355417829686438430581005517581517938231712408281759378267190547965598117655948093586842182840504708865101548157865365589190270961536731371387259671573330346175815225373052314196771515217881014856013656220201855157024643473198599613676444544159942425653148541888066919085115223074340345797301887091771454304328491050545310156959810661816357270145127072962569643316052963118968284328730814527180094245127843091563749061231136525119959766288770321401842317528236934415878296098348635252534245903248691419792888340423862787878549053093834566088569578704030156899169690715081693486544613019021934962015094865506190555785646239217320035132286817902251954061989999670672392892487179722185391706063962540336735449000495966601512435339798987028528966390000305965410374863255653031075544173806391031206049512629171111042588960032816186810143882575417164101125319225240359844789250174885463258899564620185428029585239821570974553550199698355638815831515902452883099991653159791109277633293856677251106413829848030520695316167559954268791018173565138028635517310900757930778411266863146061156782230081334424535984794232946055042888784759731304598522389653770669249422740632318006961790006020884905814095026691263544585051402794987979395407469952147885759893556264588815337634843993050833693114811383472196239422573904513695692660798102085898045176759891537251880825266995785203834786255866930008318828984268314392476447866462507430048465001423992401658218476914641795187114363820492223784225917062406439829929383504886937568283332344016589169394612475164929980361339981719899667279987425312932505245754569706898271138026634082691081134736829888426667215531803410808950127873244190788289878911091712073842980032848571894829842447738781320232579648661512675138282114895907179840766914490140750674514995471366605032606235611283240303987188363836072140626338329273492485585750842721092562156088181247110004483270249957279217611731414721325870686864214809433153123376343895501589180229393714594946934207197424469856279701775783426954842636309949459411921805689962224859609925940076128790174575562760553804243617777643621934199759466714798369767357898948525142911094629079032147192439977974647719859725756244817392762550697224542453993485579664542257700345773197291122676036584504431645607281664655982389409116449041607433507175709528870069222168578793884435727624148875342345179896049833053300333536484108785673503318661243155633898476484284716325392120652473690425085282980054499463749450323617731528527706875469500975637492269463746506721665673837876149381410035823225323508370178635744890075850565218502633714803895911487296148653779631522921871592382301019595130978544373072094208344104368443471746084884293539362583785743900611177766729187141264366995214885725209439912269674607843565799139540698103031712377347807505700735918157636782870041613323302677582389310136145028883311210633783190830564863895137541486745297847244967196015766071748940742711847839824131678215146573345332845209814115991357044864349629983170742791691724805655509165782776878774975562325667094723884516349376492961591224629277877013357496897518162045042896187043554419199083935237064098920985804922055348851007902472814860445076337495256175388128003491664532743724259016760061341740952174435927723477539017585845658157905602647122357343455645860639295818279032992104029995224916778133473524302394205050335743632647652284324858223145257811761408680426312844162425753873132701946506626300445364466821766396948188854625428748235619933140478535156283305646534882155042563922220440876641857617600512335544659853089528398007717718363338468405489462817196875619218218596896308553087679671347119281183786080735021268472436140554332285941864978785453718996283162406155797820986450983071061329389179918424487282845170663018682398381216010566294117796421262501693890647578282998444293260413049543110986940147576987195755647065537977766220253157540270931675708982403159539528635748534550879085360730017442092097740135685217732361446151801508429516740277545608556474707234852163485026438197101423018023259696703264427523044725637704087911011091397778020191732056063899065572301385907382009422126102372061798729100773363967396038275695371362507992778281196717870169810745252892375893919793950464195472659169339488570471845498657788698572698108409519909363645846502048841553016028509501537848373704110934677275529089892555192997056985746686844890625129968294079917914838891166501643035649400714121940640045314934370543461630728475951809867584959261327176202443071923621034649667632166922511709053348208053170017441442418098506287252244149941938725419572247852759023568367693692478640052273824887598195014452407116290742872961369668950756765141040343069410453208547704392377589709796991283003157710060993599330109490718638448901201802939925402190476364840663500658463311814874526366661374008574759886526088107757641432422143032579283243046808617300928664444473091813801105854128180722978162452349561735443946039605526469436674419500386376410710333326511469074679256468100009750200505719027152603791156974896156467790019345606064360821828973491153812153601694911115992394810452445235830457883743947921327562115858143310649853583216178716531121384703948121463792057632633086344049838320072877817852277011887853807111843249360131675837692538649454084085647627837078636592387653997220456978521455990234927134316251477321749698738984992609292372109892999422374163543976442717519155775156849800888996530100785277591736230997142306595187991114419930830014511741746914619259562990629474600528905103762907369667305461366698946844980639760394295765872350276535314832170555021376139093485695281504854629350623345477523503117292857697051221406290859374853419929239335605160947195015752547264657679533504744827961738482647986154948827603391753775222744346649332258050021583844111131041390293065172005050421663392777017931105492398579294935225750232912683164041461053942422250326346659555557232451842486142188133786647248764881515888360475454685598852190693952667221271141806085173140799761909291005796740591906537028514563385947367722111587124964558001157502838109288281239115211303716078345951183817235222684348235742244752752826290002895555038519823915853033003180418968871262736038251219801955978538415390603224883195559436726012635686595211500278999328731944936830140330694876625491776372040758087650580430500102050385279245547758804018588940074463160563272769177344659946690897377504821586902830909067189590734008700156581334432952793408802906789989883172289799567469650436438259714199878556203025174608334097787229631856780677482873935367173606228068892568060711427350969681970436938122230165589771381726353138735256414841416667170029736728799302803967820205540950136235058471718428926365302881762558403662425906513546196419687768057538046232079928831957713825834175702782560387911597586924044399725906637647599054174783433370029221453096900433051456854639521527208982330297677990645340640749511278593323681654756274112931294185948409763054174915076600616642701830946812412397291560894256573737979905795699594263275222819359252476528460025598175504780697021323746512566990623170191209062510283659761318301922578891277571598372022497616011115575473269730286369106360807719904970244319569153959884177791369450002561616118378475504695937906313658971866540861976957596183997880850392601524602383181076644235383640962838989490103243785634399986472925641604127317507509033450276932460529249497488099444645316252955079371204251566596871148458381524567358231377997974776238142245158560015646660743429853518470334632211758192655575026852613129337972406408259522639832126777836046862282634015650633456741761695078297790457418805300498295751884538527667899602763095204971028809741981709336950564678408906811568713151225774203465308906342381529783389222776318479410891803754545696655432185720298491590328976193066199489015399474080037899621826500873593052750199402779732134006233242752337887475979473278498076100052262101764587680262202527611160559856070302155166913523932725007877214028536043277142260229892649442633371040149795723418903679636983390513026720534299216186524835362080847950252770756226758760275841905446310766002240401478501581797960673313438906380115578569855317340640418367715998139078620022940534457702696177034603913499781355492094743916715814776833794101888202801692574419647109653216043887875188693528138832283227055544644422693785630633406716437466999645489704326588397051489695176959786597618624012343450008382840654635732268223978918808976409905037944720370820988237519984689977534360859553906012337161302316509391024940928816668921577945787383679129131332322653408261020931728921294844119034787647413537304448098719886438238211765576273437701760131955958168430624479910489694451260978230813147986242011560026628185967908623809470991670170296446743694506212630843372790926601851444335955832298440294255211576128526266824761933267985002403536779287935225082783302616109588664711280819162565324358295593664593922835436853916868204928793772844698501221675469681003140275286288073969176039430260683061943214064453456610304548468959989074903139907131201442109408602214518601781892516990924021217969352802360260523090960213845417305733938806538923548537849933893600242062453392959294612374940046492742244162045316047680107281290225842644819033152168630778630088766273650231043110316069487143294458062229258701565988203973156409602561961367909131673404334685582888306963989577294056613773627603048952590080721275116477899040867144354896403043494379985733966254083086020731970960352667362174888976476410103228189756988772580389144151351407198991239678657117572835346932263242203576407095504740232161908879888454538207446198220487978976167556776736221370392486465885788729101346670705209897702901843903715491322305461317038246556203357638509941911621738649881719937348201484126035924101690506022247865544481537097004342716747339355794142114591958108976307936710802063306578336044351508625049825231485187967454991652395310850443473159761526232521887048347450723448380096758594066642499917719396124822159335021470647886964178312749684342398226507568621512899896411340243826140410820641226356349473092968016990685655113324910116109059261357273653491535312634431301934426190510457526526549655267300556089134582867589265798415987667167403939879367825654915689364816573393956363787072983957438696901391689889341897419602973183744484162966081112966621106944048017897839054652764884968714872976349335749303490275678574984799285562607570366210649467948819989723352675640989424792213649018504143999777022537601561082995342009112281710749301535293720653074294550994779653338194861620319333017357111716373436651662341978713541197073066104039895039674770057916434956424463788635338375696652824691870155324111545656426362087115101089753840671510640754082015072530961220357774832286772214746361328192867673706948032948663801938191513102244508518328765632281764845027862273542012234305912719381109212063903976853939377932348698140189010559638275830826757909494986569202968426402941934451596750201647511421370875066601383071301730568454606494894140389500919058073261388705376304809473974966678386158637057180963667395048951184384844746667759621936032743615000415829534471527062162067347051037926967935840101143984075642802312543625171300893645535951043763553612011857432144030268128315461654495421530939397344009939200723716006281717495830478135891264766425811029540049072914419887906814852438946359623529042210611642245899131529099254485867392051443725891320776054966421558286808939306827234825965755684955703824481186155133798531138194745585039844321522315420345156762302671036908265741222590374202546602990349148864292292533179885679115857524215028205099929550340912137788135412654760983311007720383512513439940395056877709063123662301602623212764794610868097005965756134090704868188256597723221906836155155410639749535154329071204303640393031482678778610558738484073703060778041863358833145084032575758272455500051727577192951266867663986909035696748944599509644608374580531310642429824514120539897321441145267806634136180794721640833532952529578733779341779482494096360796729270534221184304102196478436041443828028455856011763631793841468285100524719085818546701085838793426210080348378378740145322181633601277568557008006416376210952550184770783890013043962618821216395272557791846776690271730769530146524198510146307619237310120975574322009929685022461906689025687203301921849940514996772755094442759754629855772817681157664957653828113754871963972756386250835028945288651038184441968949973464789070895001868107818844561893325720822463771056281713330930087303560749057177790199876936308295810356638652208764795456065146363885571872525020704530188267265000546424706966888461903994814056485429746731408199742249151154929325093978311305875547216099904049737439448126675867322876747068953155420809537547500400354324401570727145937674262040446573445328961451417226064032161054222934027883734054149738069439545346897374126373804862600973294181760945601844862016795114942212357333132603890133031613397935979648534756632120205534546453578138456198680520913947677414237386532652893400874801567552416726135523609955250450127068482446217841922489298116357127428228701080667337394060177659946975064729816235951149346993428593165987979400049278300377320600331564512625645934569825346001563280735950320764582385881209849826593125763526925505381939212035652535635200980998471181479200358091125144393011335788766349346318963444844778406745259500310841067951118779094048608532657248604418063565299558202538410086500961397243049483420491515404761450364658851204505918435814486330061048178728885638709151552997853283282984697893054328877900718020409768626271625826931548111930823010625725353029529533210870214767395201136009139596086995189905318738745196735372882784384215512646764331774467003234849337832097086584580860035465775769850787957387942374025151355562647846778398790204895385688532993376259691615668469812367879263752431207270398351524558787108802830974130395026656739231965742766687715856315091982179989481547946329528836851504248047715468368607214745443130154508319037961662486927149320569168714717667592934885971472056081802109203152880022599242995999819303208476757144429011277954831019598017404165880241657352478663961368511303936056999354165733312100444736667618884330666509724711867148241623089691449621913816170274792423880323006808343315482005221226233833455764741536657567513246653782961623487639466770945825678881612808005790801019444187703167136170214196333958528670910222773807836343717862745532889606184087227889185343445687170026990318441080661759244327178782464739776328344309268646004281716620000618073795340194045171396069522740389838492664147308644538368270897749307662538280107504003286953047517684265307471134277092694194839526783551504474718485292297099712843024741686191991140455228160188938679845040011728213580012688593845938218875641512196451589853670499082865962251127745548591386643474349691944157902171022656221478859327806405755661955480668398766859369361374137560773895493889732244466624278857727153924481891596418396998734834117743264578650194157836932578440060101383722994002087652462537901780839410686213840155724421585544973486318201918161411955310466278312427580433731818622931279972824271688802184166949280607247371047945613136045486811419980354462969622136018099697817508184086647758026727971124899168025525367534662378324063774398942891576333014471205694893335938423077946522863666018792976339483449437586102532673256906923058463856263278031361407401332236726607257796598042019801765513783880825727614677318640774552508173366295951199144281174905619129779888951749339082542803355863634945283837537037049016963024541942085915769125694811222982316656206695979515107849687837656841823147320704392477698707678537963790505106064891861627302246770386099601315497148040514493916075251888778143924651277337745391321149637881109126212441285984736070483817599190326174355092499467663162623804257697528944612199414052078735300543096162174106287394953929002589723024758370360280336512083329313046949712505510882191943768526992825457267293098783297862152717994200018702299526443423834331793784507994760120565440173785489642819262885662979506687012298675509419592360243932304003004098678900081909054535155338865303396079064570251032698385827407500270730866608343773031208059624818343125815300006527362402708057304854199812853096114271264010262204014841289591790398213466143116486314647284580930266465282302473729680847223266691281091257263530994136368905413296548846290334705587040072378682170631466435288642529277746417656049742522023298597234934983053372731521727415400357549343968090902152671161990387386079455831699656526212240708602735397384899700132323939007630295925310253886181904383803562432662707082473920080808534609304761405803227955307983267333855474691221078515451616161529873528052406583756050360554447638388618266323594845837819908748166766282845256383299885643246254700875793795490930013582487341213802242953895152561390148481722105622854340962650017348056292361601701143683051000884321800378648739845840423464979523299788429881857410327309879487223657486081941812815741160120717749437256710521781371767934317423557604873780853446213930142836830414512375091808453890263076355964278969028234949765367923553277633742743252103849316619067288160026237990265281432383079107967860105894214698585240257656365296366127672833921758988189602598180536026677893478682568912888073296539180445481051474652768132925512730666220793605119240756489906178569765672875795813789862601946680993957667733820498140588616613817682581089005092354123107479409555245954621802798604150814687941015265338327557740792367330855169272965253361334853864499052884208325641105956007863414257439223752090556612502148380002484719053289368719621063684884779400733817338920669856091191835095826546919567927387807813831384259312317964278228650108448425992157273695529912618374089315753726534987808483154446510616912702638593815343204384511704432395202138687236710621113849859744795040302751101134840735552028363470921924708637248270714761446225218677563224607158828073688677176935301585378904355378882186210090871694037649722782946710080080706422099766479285365997123116502135597007168094551175520043846836306124220770394085480048746269047667860577874894915950121418814305741791062587391503176363916890294811991932018380117736723181455179494992302494771025759808412100377025279000819430911920481561064689257975415237891153972439298533882015625479414340725908466728093943185407827414294758806504289751000031739976903996686321856651180402823075218493748532792692303091945847939121458948951477736818355729334132402037021715341834218222245237307810329738794707395478896267971342271644939539258425280106071452693989299248605578279371304386990985923706787622559629945487561227381726697327149355546977626662552492357582776385102278308578419106987847067621549809262233192333232755246713967625447856914609949131405948592153572179176806314653270620534741850826992766440627376917342565761927067689749284962988617744087425475064734370331604725570693131647850951388608439488443075343690553277553980413489047096941994904790960949158193928111375626762003804390787830014173499598380298244323850766504004131966469282916246376803178049048809582704421406363530759801277047171713728958953988303967259748254224724929440220600731226449343047402381327676796546693377915697855975789317977874435513070930267785702195565431838889927722695158521580832813972425613444582263157819562922019919126448851505673601576690056320700471706493367144380509965890642947641840060655043554242464022627499010232376351667145863732791016298371457864988658916280170373943238878423221806496521784214618454425093396406875909166040344897627418692371146174035436579748696033064645675386163412047415670535090142731674636940315638530638851798363325458660355572536167797513619377701528622770513589607663888961091288205491887615777168047102635317769169051139900140953164607854845201842041037421632450050354285623899838202727495570926847733109361922963101013747483135673820059284019729124809481328004497542352181351645181651024436067671978650159238247832861372044093614612618919984848195742855672795179085556518622369616888512173040400272474201773271638912376137199901307178077411836458781669370663162261014739589078913388601041852387138835336735882242015073226817571429394699536637559807449494340863986491485447989335734482415462562969640171235797470668370842385494551109335340204832979944892383778208036355257255853066650560023864828608179644673099400511024206704560653778143680843663161687800554846424583173383817158505689568992224242910192520910097460874668673811339383219355830713216766298603576644983256778744649700134237937669627020611165070963923975465283218491789066662735631128785197601070845627119848030777214001637921385964140954457746668420996931807462646196774338558887329173272336449838869253210504355024822244580321364693375176299839165343607382020219171882963171906152563430991390400829624269061674853695218963035797833773547663732031820637366493405510631433292815126884250227146010537079108206374099903873416439663278225954254039093725107698133432382808494284776463330366136983645513669104291415393258350486441112820096940080007044466056295756505523344068779857406642733783284347714138011031643178513621668167622084926218410567183155205179239574121134931492277042755471300551538643419217041707940543777718618606107001480866388833623686517194447250284259083292126326747490393428821794583515660567764489830524698851728532723318141549069920231467637881296414043363704580890816223779095656785830394570653891298642926870293283930271023681340101306251261882348933286144203632108994064231044536273411577685694044820233873675282964158450321411907251256340466591893598116039367747991179885498675646671692601910855169092215337009656578956356323746628459956402285536210243774008168374736143436605598343338449838854734470091053499565525486639124974534672963410452626754070886945478466130573050953454804426312869250896049097510839979353014353716507965349170488640383330850668681276880199216775040689415808569646810241011249220941949548822542876073526651050612094608505552708177058511737346558081961200731964507531130968335760033436538723294771385176015296720649563793955431402892697130065806312587105235590477493680699470855901260220792301868400086593212293831500186189959368570374879673432046473488587670094849448583387201962129544133579880484920202484365635172856826183476483864534944885850333182511338011504340276185053869467587378435706698168319069318999432765148508152761305799441575660671930804536892137675312900641628057589446616178687302861202332936854132198776717720042617476038255163140321856912154524791354346020878853048129385051690957792374901300132545756752329038269205625099193356582841491703466157987238276377068895661182067019467436880132139338036056274844507781274337787680263608588894020321243960908777992887197172351267236531896974759183892192268503160769864000893344676000094125307853481263792204399899058447305106942174159697976013241783930143662122568922591716459454313957462235157259777773550351333120176300813668442081139290210764071048024684621834586672678134854684853613304111520604390081548817186714747918246639106947390931152270293258736149969916392592656810032562013975392643819117209431561305607792876104528305266931152543725202834638255123489679424209554506757078233039583793036382828852937379171988368133919130773411943490816640616695755945452599990976330049884185908940380010900395356954197397321006863317102583403706384867653569255098095196952710549598371824537793094544516680982213987493132572557372630244402215529489490183396518966274707578173039695715797553619034242809826918086631233850290642572714578755186583588272989795752380047575900067583892364673623036473410512160896914976569372922947283089672179725224956321003323696079429979875046070052434353061781906117992478262948598140974764904805732116012709589878065589899493080873597851256757668471976093018847886462814091308714314976909890681740975559609801145068914481869223354013322341801546020281539160283413970243218794553841268330767112873768225666257451803965503037920149600475712691961381597255169735762270853975757083363492018413229687610254972443797342040404006707291079007878288674754513279039520993935723487077060786371908760307062207411651289176297558273286555079286052521361439610262253934392348616123671561354807118235997708757620939470392228090644359645721358210980619474863293663293633617590645431216177655262679001209359484225269732062714500114911774736579203653030709261042431741271268614494578865256689309236766894981168791346949665780681487067946467844497286581022358823131857743724392704700470194253499548256424591080397453708681521288628667739338074556027392835928861573728307324520081386413810852014395219295892529086374384409321965528617133806695915432967187586119391022076091534513437820598056777866617772034103462306637672038336228933157986654856088045895712955433288238954758422692743110051589274036373040922264472588552347851090398340246154922373912747625559320995417708225434153024970914215940673934957826747912486121697780464752041104656963795170019940690259905010304954981567088791799327652475366125963293839956436669054985492921014583453753509554361810361731613423970823107431288139622536260890935701075512727929786376931060506885252345910705075408551738547509114904019213710991641756938359329465692800069755974802552870030990782542697485550092641572056171578172290610227795252600411685195228774947732956389155383087456388615121269189170239932478325203806191826100494864703800820472890323625476844544079169060972426538575539705133184254880359452776002046654745061392043044673223221810241746166410916785564676947070414050205341266717873573053483894415316591962640641845232100266636825949445617027771714850186169625754003194967147481984621802052294366582250254439292574765533499710407379816312802324151771114097207669192578361966300910378472206245163399407477479195260690098319999563913178101133029463066373715340979222771487521245167486038650584107402968729185107619955246286094353987120341260090720522664025851934027535978657798058423644154879407579975462848080352972976472791718620099164918150019021601534411968587289494691088084538957626809713441132658874710353532766502051533078419443553357936619369447173422958228755305591984389910007483981226748109067160379309954899180739888290703545429225578976216266979144028666608269683343313534106103198878658131107878229692271944559099027725345972685300698347192196323537628087229318032048455188223238212122008926679035957745333812401334918888632229594790424066526869998663982987305112202119388769295404521732949351556558832932842397406497242516082208481197368038475633272843504025245906029203856886748416210420379681774763726000374526732190067878975223574145556758425079217557847076917049588695548090182507222615826616539502661843957134869428646511964133127038020061197221014932023035380368681861518063857703582889482077783105840114828586566889404164735478824165630263440553784511063943616663985262768685244876503199493832653185620411656492923002723178067440381840871998985311368960920912529524936080801720832483904824893391806791028583867395663568792102337824663529697095880723485618339978111132744919262170429659577110918570453488269486762158135614956206528904499972176914936250182715890962841583991249662127389478459357109412984245033684054610142611722297062163050635228819255889666162013303491382402020632482435143991670577030242979074204058416300871329505756011741815063542131480041646040801588535285374589168704078976713267284685223682036819839491241653308185699643903892779604507764970131550747193970953799328192373744195581966154157038449167188692287296554994571720762103391166246051773933248721174511096775954145997104865272829964515440455083666836477515522446531801325290578302583679609490834817220112366208479038920356246018335799396600224365455827216198546230828581746107231031970643118465887140925095782982444849172444315449833868054276804065879890725649816982766632522569680065088790359417605604180527799383242586906962827094228230573529224305431144325283049993339941032913832392960823862285635200809244107272584962315800347426163360158081833757729257183161220973506358845670462654166666410111656133781763018121446153353856281459271769455097075372137338616472655211267567287449728326844393625882455803660658947937936816500819488372485223247254985591832673847183027556784845017697199228108195051973688059738355172332804042312111015882669873694935586808730261806329641649028764931454662093138030410315520907024706376014904340776634731739180197576264499526512288224205477356162912023161277695436811816360067430938293674539831957611735112089231637005450618510404472001203979987009947593788466506947527034647307821166484569964698221336819542927157684262953385542463821645723931504486557395027637845566376946193328485336903035689324777642366242853333549153893260262620289317062411392679124608510216391268923622060803543684268152570392850669701725401433902444142363250446564744217059573514646476298950534716115964259716091990406456107650769902174047243300040536013108189041468197004677747525417029591865148606665612403308563987218186531532118508417251977800733059899427111591892534354280332594731208974203921592375615450475391794458333215633340050735425696855411635471219677727230498116875619136744658547239630905795435919112270775813534975628034376004715475628482688646485158065837538318614571739013726809017285090490154893238814411469764582418129785088426072565368382010284481396882873946811629863904388012766619368545186432255917119764704817753631266576474615771797344938798516675842283912563151191324030799242298315677487788520743771267792450716525006224974427678555428545478132916755393424155225758676110950959657976981601400783998660081862263580334522563994665315481157898968652522835162396161540649304088363839864484166576829033155845218269113378474741571537942209029013882097735873708852952405606215669832204220147744376438657851691760485503292729089125242797212561311439376216662118710538115470028890511552490904807764068677143850156464132381870159756846606497516007683283861292130267137354008381723633988301905593708148349877897991940804209173765844791538634568217489129286890763018520604771912734982655479526878113823835437268772403776638319462129944224749621054326013557850233466309824381479527709897370683811896110318445395887481225514890654739957954320462668035288708038722876326032437904017447183130371204469860365566088383796346865769546566184494010090994359419992463206150854091664755823300128479414596790338769098842861043411391565464608631816411357529286266244346004590094288055922423770023547066647558696530447170869390785170061491260979350466359717835345615398417672795953084943809277349810069780103333973615433110655606479492399195264261438492168416327640936652548326329734713497319517190997621692575843133508899282019229206791185118471320785472437543141368441796574361143430550815078596728161240784861984867836107486020279583536523689554968718197419653338036122231467861618850213385659438241305511714102989953689007824217000396618068000989642974965780531332984958615344420140472750683792832442251195853886260598781066957117790217511545365382171038268312084485293150901545388897251689502301943610785975061491542824262134250611586027968311183397670157520964134621849255960647495067758826684345956863540614672605637673453895831353413855050578502061653004233460788841448242046809343674275659889425848666059840861855439119820166342426251838591934401028768783446977771963501445511336418181324579774939667179084929126327657323959061367385280458887497196393320314294126520872124789336462704995829827576559829259518570901614583526535709445093378202130589295788827912354377044936022651147591332400830694889981461157890963594492013997896769734451464860038112981470285279794058674092070607748992837752917748363622511083606540782047227453036872793407544149270048558204074848070220020593671105251102610486653977964657216892737406332301332860141703285147070919482239769874792252195067990685845551547243576093392953294957893142324090288699013373762321273855913758921589075953028138668673556792411153938374722238667516672960035642160741885183803525164058248263994540010951884102110021491408436162169588873407417597406681429913725367376147319070944028574866527963204329986314906507861815998707001453255682207799104467294981778241252411211353021998055056997716108190255704093291143225851851490322827242048217668783768784824506535554587270551847211737027975014222094958514391252666802367877745239438194076635658767017406671083276527460544390746688096386395180638293383459227448186124456736601118381259279019094855883544115355931695994345765799032867752196983229746283529596225984862502274291337505030556360882488833374400227801787312368983963016334806487354137416996988369100898634542525904945037297186035495751085386514039333967982198923145319910320964551310160294391390550535444853812426900742951012849034803979970646229005159137394079886830896279326691837564936312420987747627125496455952612751360503223435707835445488021890660928274658041348409545627072460211960782512085544945543090133547641776801453945687583327215698877242579795826224162605018973659402401811905226397460824333719029200605502705927637711743037246533877442086782242781415373950809775505225564045042346273327147432411511027656803978963487954138167306589791024979341940609926162724554641088943571245007493619900847801959484893313762984456536532403960244090681842978808951389566098399564520737334853001688679406082501491972499931968542525634855607709720612237509305346970753260516893864117347449008229834907688164479832727451144783893636149151959685912739046469041228834344442490677300922117873672357564265674339507543123724749567281719089160401575792111980250482052977734829999502769322437857672618544997205244260954470572711833177495675964286782361960600646807512055417738790542832216345268654722285531900377470877883974877590520170360394135302993751996270855266832101458199290826714156088427940442602954176712941503152846808728048135291024899837823673108945439412592161688678847623324665757823752097712447031297078859092495625474532470780263558888520983407928962451927946236724678897676946470247387666369831918292981973748538676879036816202939670948779236882749125628614536727164103619744179210687416578155561826468707189198382447571864733913341505603551980913195114035097319467563443085302860283748927043889433974606993506828710486601663443777453295652624284720390448571397515515683548616740121713852755467064904886543465235542798680869790790914865264626077318475559151114274033379199273884272352909184089799461327316664501202304503735650792585971560994233694126234527865305957439108075893607669335548801387757063421787035900177326915229304560979463406295511444703699707252820071935437894849993267141633140345640594821052312095958364832480525364029352474103433275728405649463713214805434541642318593605103924088360183247977244948795474051549648015514589271571430168023878134809553523237241969784938591684005345969150617987987190730020517703795856270983835972817873111956635242641073855418494079075131049948489063864626665931339325653026918252596668019515302036130629586717075443293526741681141860996890571439080645589863472081779568085156993153618139729157380087865272157999004068442980242676398586087375667763907841902181091653340625986191316428227779630925239136307392139831468447244187647309452876328943172808347723657622928504451094948697778661892499671929093799858018790006228753596594974899223350373784507275708172040814728710674949993859827013205990782920407922795414180452807483937779778208144475959068226366955037625764910051158836679883747744722457161583079981352870422759423166416076519573989461250928195881334002186994486071816582755031625829009423153970496950102126279856885610318455599102401961974588380101636133285875857058875802298187728999796915868324143938804807148660750696088356894743274866348777313577311806537015706547827676148024937921793259771352668083383343552622318301725461144781093446573178647556141817341396163076717179272439097691590215840052744224752381419749814966010669310719662738288905416242159288868173963353207366751153960725426238063089173203811934527435528547731178169731203821230989380567072234883235313763333185887322281143963942835061051255617281881694697957242660726591184406057588309276607093308097887056481330757525981242196577107094957913603955772581866398277802198648324427471794197363125898849868218920840769415307762373120403907340555202964815760478085758186080929492528762022443469820253355523071906732028881098761601572409777959994430007869105608203145806382620667369900210004497251656517661881704389787029383501100889201166528057547458988264894957786130894004428416139172470126017272080206026217535953229999991420241445604851484018196196412507306025918954664654910547971475367580615270295276648006982787499864132601306100063671050374919128811900850926865624789895938997538885583871800786457427955019979923681603670363647172120075379108801955681477473145920955941065987463274405642474674682045999777348840551264323712595852723289487151878024976470276823947982307032010764126146990910404337026247569201441512396638254694834382572735015691333051581216039110439532996933128331985377944930682282574943224550844830623342234704044533661238690593396505855031434402025126169462271563285140418724310279741425685434810056742321832727625112853224743934277499196489390092027277712791827008201317437246716204395862702640517868216555602709791137621842939791715107448441339987338272818145332010925488308920586378321054419464266703493798763938961298629077449742622739051512640942953967453440676630264288270553681223515203003344643231043612342163585990994702435268648239632913748709735113970628235906423399398315866227734846281605472554765553514088577231450501119789108501038261499945546570303363593811353809270215514664482709035408494284900196054377216645477641057000286917303206036360850025190281109859153536911857275904548076336127259701948250261873755536698556162929763984261288562349631201133151015889804528278817193340741495701476348327241712970674454281453079176082683098068859219423230648054026933166233203819774640156167520121665801844547774083816417562418119181146106631983679923116399533719107659227823880967081806474041930875427881568327025887683332693617472913962968468207761359969327921395737513583479459216425769320791441611001550147029717569609784534647984222412720105304919525218663012732915256447315108040759296302962417075971962205326479517647151612884394784974857918926022963570068545609231310059741966106662641085986502008400841223033200570214445737680988658933997364920841536308603743229404055863245265668184258994237258137198986848846245987674616152355190402233881569547357367263834707750488903908309445961903687402532213624671513417792584698983082016431580893046794727059395570920220570047066442570314797870057668317881488160607836812892248339930076314525672468992706173879218064410423662578258276180652983770525475563297077197150661392384971806627825563015502667780858562411596530925004355393968092276497003219373135676344982674854649626529783518241158802191348951046410663925138477240652020456739525725940762592062835822745784958934834052025625773970308258504850703857296074096552321226644999425060488807029129594917064894032160374793013847244880575363215052475510254022977274392264004216967921909453854701217493829324517515399026966587087076841510165533581081822099713385815597382843597323377264086570239849075626120985652701756949552818170310174599879792521446828835308393530120184526853636185033113448339425219796920028477684838497452054787336682915138626865440384020170992133251802450994155680835005698474283927965386844097023330577557398180441833125858036100361758497187606726474129957746301286570258976612914327536107941044638827159544943658947794700828949413599278927930954858332204474045246885003370319780527209865997650878900022615890155866231313366974357585245187741431740790404899652874585669782917221357185445952862086298563390604753155917923101903083879578105231241735462895558014815507839090504303496901218718696512471063548167933554292626965034740841524080345900651481590256930269092643401407116719876083761626851554545830661317240068523468720745892922888655594361148139084652975676493955070344878181654794936635681038460967193806773477561937386033305417985525418088832537060766340881306317567335927971154954252078580307288877988679173332950889850139766280183434197188567600969067143395440639958161686523352360333759787886126223635007478691643142461240417450644540295620886030927969816184086670262413996206621940239683312025356430605150409915574800515015418396130314442010472623386859998066777604074988998252805956322270095384129521669710026106877642289502407439361427571709948907870545037644045178582372405358742893047456435395541792095528016142588447701385365616184651513259886121462115541942803163166756186465302363366697964398150245393774889390171984515773811169664181167392338924007010104911955474573744894437835769195109508097511794806456315235776381550834470957071190137778732604678395893248761125174365500345773989027619346725247732598469168223122074214729943341475000412798075356003306114181158209979221575210226094849215169851755031322845854070282530889462058465384402124973377354178259241863145714442549965320158786491965442059432112739004114968832992427515175812535773230221281116353442030345505339069694440337626535200846962450856127308720199601740837105169212662786495413357675323266208520789574626249274539004622792576999734326830623212897718024346967076608960176959823818520910615238033981532386766311171043258991234954114919213517446946258016760563482483587871212479853050368862568764125079189899339159019601854621469624000339482451760006117163484385961909032174326434318366101034406384530625375636243954983033075482635427011530987338032808995463985697362191165990201869781060469253677032089805519797897307210042052015702419931763020844747948931960543178064791320873958968173460163857945911648594555174092084370661550345745482233067028813204801251299877620834121472432833233887722578798010540985031501605899428285887634422185549159620293170256574354862494206051814724282983741569930897917008241423632632862662836234416019304755466508091761411566007555334159928786779684871466701184114347360951770777797646128441506926169740490322879043140053946423480845060072165182571777401977733709513015533947181601603059781193121842066884548465901643374273134252101998641175379883994562187455158145606959001214920571252428005025140263991297118779991723921832788961162965827248011616002025874871917372053938805834154593976947660440654625917562959532382961758822456059207999073357982781500772292507352287838714744402809897200669077604359567869023212531928862114382084944306656359022271386403601378336531456274111773958112200121336070056667186465043468040722901652118722611219374281843493691667268435106372475224411105939357406124677556929802528258136886098199338035797085327645344939146016311496560649817292375507192181456245820951209017532283593149559684586756209816467600948165892943450191016757706402544580295465773033609343465075769100868737076149190128897904775881830168802888873137425275319983753757535085659612828813306816788471958954274805838823364436935828622178793589236168826003484865434315851300120895275788438707957751020061891914937008719875390900568290436658013638678904714210814084066778324051586062457785120314841343972626851100128404336220077603424399970620023358553846418912402469626686053086275289875791606311819095904369340669055350621847494666218335199214943246332353590376844583035080348894370697005169199780408989347941960302904728963696481802398525309076071511703366227701675887059024069626831944831722045275046199349447230249873491921905992880826358316633607640577643796044477415770683002208814623574718541057793584744989982428264593425457897041659773517090400292377413325595707655713368122884563889751832636025343980401842940052455568910746979652484471752259540293304317590156592281150011425182021369024307069066108608419138036662869206762585748238348374403544282007015225898830433649846612846487712505772410218302777047575334498614041076118568902002285083977597542734490056931986091299887292532657735599801927170118439854950193252018120720473102850546513897601962248816775728766367033484237203287716098035969829068595742276541496600884645821884274478969832229213692527318096236084078819718952194114979434724850038368157117723154570431442200477150134466753531350747532521249621690833789445085485532814604075592236367313050972672283011311737373398746786197017478517510517062101055073319602590854391986251010855296795413435067821350284498805152621749599085170200798554057363861574029869635665256751190437351471613185219937139695994602763818640866921739123417398391785023193744410269279618427741992645693598575492666471056659912990967278830461118018467901940365353750275006213529213740446274560330867849831067881559372725260695027128947094381174289082027446209846226344702806544323067717733795110298728469965463740104144347145184295723072345913241120897876218205933117261757737185600567334046106811848331617032999891675862942007493134581972349175408361918396491593004771122929161449137173717523505679607936123414076955028633123458911826310737305751364016720326794818267221437605783871263396214475163366979296728506055424304630369531613931842212183745134745753602553582586212404181296346456160010052640568989645730813013418505844784798228286517806556976026867355805854904247506174829878948123117258011569207572044489464540407843698774331917624609973633949264894311248794679729485451250302892084797222885242503259648508000546131310942873440946928263576841797348936480616356720683203078346417310950399685774271018929477724593161285746509039656445777338725112988642544439281260991031445744113145902245527705375641441724633812797318865424345429583706866461347282801502669071538252735941512420181869638147409094149468477516763275329761560675234351886378240448747388207689229762746934568853634074948513844910625762330825849104652838522116505887544248022425683549712108024946912816150567386983111974736364611913273554287177989724485698157041992417569090399651396061782512019009782609733807023233330850374586186217957271999434216145432690809003131115566098827273779605525281221067643118001993835292268271180858847359021809503614804894689308085348106364739788394732815505795497611925121204577593157306352019280287340759664309743116490318107946415798589029786011657510051614191775988589392804588689627023795460564541277547398233353052984639964457545668817301367040902921420895859653421049800239668766043412217307179640721380079283394523388767841720200226046376805721871082430954412363124151599097826661897957842129240595935039164304655040264513544849678121346994096640543378434786632602624592796087283761744479021141281556354538626292470767441836430784526469393044581347223084247050423147813037635550679328161538844423334303707414228309138420098348967216448017602554049667508474573547317803735989808425149103310250129789563033496837457352136305531081447699969303633815529899904057998670797334558499455826232282978163654497621069182489974711548355290985763335957153074514479002522509974606029247417715015771013788927054307696297238267980751868032555734831698063826077126138612689128184252518493889810266927523448846164774327215806171211638709974895359342746847373165540587054696185630316658196245742647532905461707024598977817613599330907153855788639283430363583255275746120897630091042617298575513641675293994609286233442238886177167031533457471154804234696938263213755135473875622510560796454302268254715313072504334006012331292828597408220584626961280097263543982446937728223851329120041440369308484897418215813878819397215337049532793236534717890540822246634649361664807816909555773368285619782094014085777635089493004957710448799441892902114778961088816899490866621633296969447364954561005852724942561919180727696399785543589908438992242686893445489675098037311905993902527212698337404976592558134726733979454031288598572578087380798042855829345900241339789326482782247598293878656048751526999266124135771631089964738339797242126182965611753761141410968088398881583896387430480329346422250131659689701695137092741629787738383703008305816727395968288415403884438509856962954199158156993931795291830433533959402448523412135990942114130160877639169838659554088776288252346507268536846011143750728528785446899404977495522536092323339336837459844832346322138879017249539077320880741735550857897091746729858404503545665665976672137284870783284581366016875377261228029458652644323431086964485548524830938267588676968365908484604199215670922277397492473644092255599945134740247194112321932715683896706920826722242944011471276803126579233219273947755160018670671425103486033458756705497629197698049010772735192197900693149574707535284768271130263892890008568369945716999644862631859952646269263821094809151136298616536197348209068200922204480112304732585843011273505983416114245339402347879301467850570293521762032146000798003376061458144836472379421060953273487416512017796898454199317115417425317861870851372612421115625274679486746448262129581843900112600118663024057629236604800178409340029406922422237589139765485194686741979477493129978641872481313438467572827327744543934059203639314012919193976988686474044466207471874680506106375083754093343028947834930560219479167180215783232576373255437042331691865433329840424572323549076408675621118755929358456358858222740435608290617817626086952264477930540272904368169838135196920176033222266264731583231379075734661714375262598477907389655068421579607219345638904515191458473551452956022910104469149768118502544696691355495322585874929941779283780336992871498791762651194971020960528868063771660951324746428141979334150656918873327376326951311686682195354054257844355619111286863045031314536624351186546268710790086383822747384853232778876181964579294167416012162011640346552047820241825465218880311472255119999039651673509926568454288566522525705125325465437897025640331264891761412925236900367100843444838677712487551168860376994843611327501249899492136710935099086220095055836350389494062412114429374401883112307796277537720305708154671555798050095144608178959679464203758838024611883037293509687689866864464323602630208246523022967464597362360583445953698484846827818189658774867998390526542512876830560186588748357603093286935476351455637839001260914855624215828167069139874025549092073097732918038376560073968425955401336087204976400525976758487463137851443718994102528361708158465407890998832966421766617263933826038096421893181601885343708457020779069375020513387273426232600030575733911845736731021454090345496967472946406628818477719754346081128956390398232944358625948897146334279893818843513386100970048949683105311534452032637444515206474214914006621652207204751757358178510076411201055280501143567528453694759374622734607441821135006316088836735324891151465977690863350523078093576958359051462427428703494480979094495402334542505625342592128055230768125442101525215181502116287873528225250598345622191461554802739450203134592836605826125682297166548792220535616690453743530988025900828586165918475544321768978604444551936396877977852034579226779769068474011649728473196844353779395332703277778203983956660491789194030401133416582988566139990623743803787809956029643730233988679543062110093363793422838508439530621589742613604479617447825524238272715135802397910905918459786303862200674805399693308247739998307648225728167679516566716418015379369454632511883469609468143862349115124106701304921404295926390159727407186856807934986964946043394987051697672662082957411061186788905129124679816596137888483851731717659551705479406356664236421722869323853401098947195039029717261673480592866149041819898817467187983204165143353790362174503918262618005234035688511987808745725536575064836378481854273758327192405325076493985789225121163779668678320854078878599457489441258957744872350761513063431360792650209508613318128196014170442510635501944115453082494023653723014987680237344528721856609012771597712133927747858503495761080495825348739789383464198429435245678859250749092947871314682451757524274549255113299567379431003548295751233894037672931058510196206880983464203931471638908528694073619840305521982549229850967656654030361670147981012497028675862495820586513096389685722031234323332305744623646411563169448954861217358995420724118647709608434956937076891079857385515534612385142362182182891175689355261079660049072938256240263477612176194783896721735309813027302638343128432503547684004941309730331300117426050259543072946313015088006695957545076809136966612799844240996846993953347658884721153055364822433157316598374090775942439430346294621275210044954204481797327297481261845465122296617085449248039098278619512533062180203661844732054150713180120794493264627422869549444846985648415947521205935602021043368070390771824631698313133728038012312157430221458325906372653195511689081787582779297151105575210269350137957952611329211980493693560389426821811858470875193665208118721572693254794110016763668449775569989995862057457339201784868300186433799443149282172194786222514123981969600108676655462594682114447930754218062223952986696307117418916023264816264710577873151423470304377441047532442205676660283411084389771482821157459758556329524495411074654736515771188910478987204092450518928712197999849186887934876613976488112469825922908183722338994113427908676306403630303351351963258468378297550095272231569917481270431308423907248132798768817352265458867606819239225787305231792732006031674560319369835520300117504791034728294405013456022747643204741489266332464208132363620591200529830358283088781227692201814788400051123388684523370217918283359010452935036382930572643544079557784990723913832655534240028112780510615301224881756885410818161219639627225324545781408832686266150916798770111095781089335213200533069900616427698025665834560727666611890518383363379095455703913080469095249226477618864965451725007403297110138326754200543045759401904494350666767500539616007387903166295426268779422398612045601433951418530645433396317611530139901988406597998735566476569326296361590272597214350637163134596017461370277563213375196502221934980420468597116035586959652949715781078989615310989627776760940753491694311859842952987205162644250937073668328785372248347006504189649706099741156350402025913861287314841031463597790161981467086643431735479981600714820471284715910807620605324207824307874476550589592132161795076447839286694938222505029273564879977236549200242034995150048545999367977349932591001082775009550472532345012750501104915116283653301948859601226257654613291996860946655641392788081952749104585118181026135076641497935928701592173924203901607949984233031150701266470683720985002165547916769967687793821208901238623824807530813007610063882014479611046140772191221748304646093687233006153755528954443289023350088270244065753337926339135657994879160536827479685704919663721405865303048081604369100785264226739132385901820750948358757167242695644445875454367236359605744756555647261184247891205826078820118592511475220568908915749960952667794896259881104207850588607940994558568904564071652483642510267551853526950665759188245523014975613323744450512230065498186783212257087361350051606795003741929577050531142526969085061348182590110681942803787138287303729696437802761536466778103426967989071886664966142427536598989170886400356152192595762756484945372475662344963787701621546215322051964127986100071719051643626836191672444066792829879296150801678378547527776556956665511370146871465880361836707158044378809424384885629745301676213762159314569902796510143881354794009466874740635342781257897634182626214975428630902019230401856877924919452818126929467554108029045525013644017478709113408417362720378452782049718000269915916819367629712216661151531598646142505098021232584994630414322068860119919867252040177662067055424489072716769248757017334940094482694280827145339261063619864130959481770196114776102163268722707743299769842037196756105460666746876620207114145802161514224103894681097159225073497777330854925930459107699945548052194987455787225388711380835486295825415764444442432784602405740800571180587217816718630186573750161422635726224244089924948460180813754943156496829341510487249588747152813691413475462601156887871782486171342354282318725034459352523771956201255821876276249311803777591461956163337942627720035377849650942708055507792767620220004216145033291227399951176788676106315009389818659112326090964757263540750943773852179513272708888838136568050813902535471323844078333060753345370565304326533551466033606017395930960063690761219354467375475939160543882734881291871852535922322696572779343538943542867384920460495961796588400842643413894511872233815910964567431672524371158766256501385587212560157104541157450676614345751589071965107218160943144641948736411983109954821537470088543348205158077671781674914721194867609515912360750420646776259830718363495316494318430033931318164669526343962313145281734521146458625364598132082231012413876983704036996245811439297622085724283879996239588809384016606701587481923170633686912641991858216850160270070611926059122549444816451737038863606279704012407365807247687866080650842854758947027780545817348991643423610525023277633600588861277999459069816836315013450328844786429121602231882766045765030500507816317501603869742486400349356066751942935149072262447165379210162612598659043704240561941309406353620901525116060765820751236969036563216761301776969934749091662674373770468556257732178937113133685432942061253122270799016645509115446496935984901922447574337008827719288197088096901286309395743964296069119907384846551919578390967097095118098325640263922514206339227223013154182124985967657728571071680657968000740661425411844933104541143490611088476903027838001481589181409123937151940871763625278436326715055640372460827925954650736353952570971724096973641887467894932854123943226552450659205790970530759786716718158971559283050909648749332200590937875802773478303920984306960502962673823576993117526726334188139938062804494724684251856952626010016401289663285053254540785542006165447861900598958093829329974699981719548324597230346688964161839677016439668186785812486063800427584005746621128325968600823128540051003794444556483808151226482503649668537560222693424144200810511422037065249922605552863089513093422213363665735536611036051303020379730719081341175181381582321925755779625274613404998889457360047339572119587174897394474549765361474277468751078359883616244869932091849912328537856849114919265186729066005280847736492283481716601819195346630366522054087114620896707925394218223502142489643931839840060573412253624805497012156404568588178358378831030583988745790971418861613499448908841686874318826553881369967964606783475229213560576970618578045045340750662303238265658525629401150832602964641649435849648815153541316613632024832279447291478051507166671697597773536231783717834185865517163859415810381925492320477825685464487515673033090404147201947021620269228917302846196055497730090680510251431376627789097392853676682904430297772948983116404257632161014336541325032496368995123507174783946165924672433136157138256546852876201959204229231212185982333770687326115645901192600437844639898172602636662260214290069147772648388475505966022388908641703975556943423776337633352764892461281282316354520246939311894840961627793316370966254069485826527530243773760884750279163045278254858735315146085231099929239988837985808989627542142641162795802295795082958579866826119817746432280033217985238452325811632771196334108041275876863244417417526679854016540213856499890524405800668669582035680592168739539682259971194658442142324809123889959904354838545211183438383417879697215728082978870228848233877331733153199449678620503654072735164171930812832041523419277986431408031992712531591862572148366864627163880140686474570879954419874894878498604085289362292498835218664892669220250664511946281304978972807891972143821839867060385166152864444577292289287112458040631803311523903677687655824369755183005024476904521678644499966486605782001817001470856616137245020732841516627200748516806787959478815613881750431636934060066156714643132244227563246297408558891186231150235521173324638228085193463113555855732898546996383623317903306567470551567904050182741924635915495596466770952030458970070620901812601571116794643240101132166370645911303131377087404416825171292594014599395117479142056759711164262190970020347162025151247433350936467713118898834890766496624680823350933125515715260577863729188691259085425280980387221981111735588511477402129406389934503066300089838585017855495590371964541935423393538943243662813178404308093156802766275485185207783194459305854832515243152436606243302245474270370105695593218861330662411427572916860466991742151014467648471751993590762959105639554727388477802065337581255967590794461676040670485775175158515120392189417045317715990577231057588496245083196234775924365630541571934064449574302484383523662787103541872624063445733344277540444050542156139501530822499956539303773906321095064318610711892383664761817087626282416783747462194221923989172834287593356009177820516711923587405865453769179414061313005575136409614789528093661011004184711616599445272960421803524086799961844861363443300711820455866447412960328430023779800648257388688655572338852827854836747599320900809625932230705502285602962098954696394501618127263449700399670148584767710314431704197316530583978333696957822526946086933309643172402528237485456128351746188024175819649398258547968735431754986432399673318619088460273511812147536377926177211161304538660186684863484020858662144171125319405553520917212327620680822150853257776287349679128359249838861980964916706784821133744379141738686429937268875350859939976512481033195652987171458561360701893021359934868903658191744314574181563048963663931558093567821634674515621251325551096158103599105655553369395669605657953717086653648704186144233546822010204415340828152279856715242197141778933887606431308518747271645906380663912237179409461023099286178871698123625724781341798990363538175166471397329879281330486638287971688108608642012250278700533613777492073361385185824401399505840397663464975839184203062199283627727704074209017111196383876267100848984025684271581286719835182617303531057170296711718463221387133318639829335276511094522476689510972287242832979615999053528103965964843263524774278910857830109508237752125566843306523006547724959810239857880005538964060774424537933553975216438070972110161669979732060134454434075545857426998268633400683588465042747299018855211795412080910908134435156603894399634665674959087572481329651113180712374463641624996258657692540598308066524702529370698674855379748389817475789150002661874472603206645559192532684504487417040633127277312371079473230014099335229703491216113627916754362820395743205191062171649511010688417137064394461406225341797862171971456076122779040154347555585435575482574715215199145193641816570494155727678079498012909756853806494432386742121086998863251804715303106078057398901238102610552476493279389718846129944360324818504272192354645338492150985200855039728746765832923641569241653434161149449761890032981660925181156431211554911481075791089749479827017142824215336345554905276579604189266821828260547151173278741597202971367252247949950058910272932678879113309980368031177660788709982135034452100462742231275372741813531411526554556552155182889059866199352639282309336503170404192338083685061169222090615323431651581104549910656653227856369370846494445051539128092114216791747514811929734305312745624663970476669631144174914061666969562610880817065539138559672102327182486056680491605209906187054181352815031757540516091958653445222327337044544522579156349774742625133075042310993005276044435819356550429303453591634907486815838400970564724211227014453017909735169739344170290056686171797559201502359252077413791640810379741444556325989017105656873052470968707540395980318041181892384629062978956996197773686025261033087686794815018207822725380621720550772706296276259550220660865583178360693881239177729271805239798605250722093787796927738890868281329524675248746013817286076790807223313827114352407972399592773306194629033267353152455912027343893907977339046315880955383758357835226343582279589324112988966809171990677863542609407601233314342036353948349424003202979415029663283826488136769775868904225836273875718129176473991014525086136736524099266685133632230118896050604411743532891145043978369648147305124120359894017004952999216711815113055690024247164999757113501009153387873644392425751874826177588775282446538052996930349144954525534724353661774543143921366890524676131295590488658329320999563399132271799212500163309732079099173818562335640407615303034913129783722016886010280313348880967092576055337115611788132074152648576446691364586391164619027802268207469002858092608983788419869384002526187189003438545919324241521326102746135575683846572938042616836067497153211567853745163197731914040303061248145106032549709793705314740872004876531396017424049085577303595305814297127893878085458787708808796228781277268272112950659539291787986459100226215020981982292178004782649469141401113348750089071084893027053544011526223076095049270922508794935749539104786423987061556030807524398535415259051592409479147916177952554006260326015398684651053667974559578864744403115067763060348121517402936959066670136101711384966749318890159021944771329363763963733741012265787017160648759872787663355113086038324018293331147475787184460239610360113862825276401703432715666142066018591530059632124451930823585377141981227539060665081316861013330592108607452134339446656925782716693360455016636625775434038652805134821340330011909814790514510600909963154537093525934585426742290533455129954165280813810545900219079293416049246015946593447619598565525189906958628813179953243370600202773107202575297794349518797217211487143529810966490823658225720382808231113739735143177661258991163894862637905185819682031045932476720965046500575315186051724769711199537784641298200077571858688772381932999218725456426888936901170067685775529694386522658245112829425549707653700089687491520305334993814384103743383486665301307468217676781625797615638736952593931763751493739262369131905813531977082848397395652300463264153073444635360832005839262883116777396553800862394819853244720207967107395941283400155275288973257609085402989306305405902965529926282756640153751283581289805782845911012485601545937397649522667602538778393573316250571332159228275907136995973922311309912197558692852983149805601507103111065739937681340581017164819898166391875297837319520820928897152323366432090031436594122010296426792532863983587567153205712153759528467462100626375791252314282309474092073582999879520243249305772170990704922212246853324634383015000786518708802046599144437589315463777522247954729470565429438347681353991681807963773014022267686622805224642997254305860476273051129507059833481531854292176048418701092931526867593398437486128193938180847086614593362980263327026152544820351054654622619184857412075448590369367903054228389801788300689765354564468546301683322436157420004325904363847404492844147915510003616504745185011443404388102337923975923550413841142261304897732778160167276062294257362392595525792726175572565468981206936409863603171169680431408930674141281525858334176411179620810017729004564862339309637027685819636879194203326851983091870035650949549669864740367004310419463113212079362876446114560611653887972092500257690018295150182088821323675605822498933814183785749153397607570864501880362266289781527613637812261852488625376431929262002708787489148848876280471254268092474509187956190547797227160854995070963577487588986062841807207702410544912218665967102811615892286573956179598422572307939349462586514133100424264628129469782645393327498608887122553031481478966884307850029397426226917395659955291990365098800159844114453144433190134060050052223374104364370727851392393134971154591946477376828445344941959829270866659990472501607970365855192919413880436517324602751355528983932981304124472676981993499003082534504341603094568772628340902329145514285516587906874098765771884421847896804782725905183305982420575500610831554958460739016074576468385289186220209206963843621874483959858076154175646233624503413345502465548753919349338047905717325590493228996989521430672499935214601674962220286538868555908999934984010142380232179554273785731201740771256296910684004675740915214420506990990396701387703686167255526503549156371345847010204672178163873987777080921577885316257006519387733654773434607709758116959897845037578132868002975824691574324648498658937135039850140426102428528300716453321356498316766498848140665082683585079621525907406956355589516001625623750987157917063632476428626395670715731028096307090898139839424714525198247404466058253282086103446910919840560596241816265367924756970040852434916006105287814660183032762183049236121034234546323183476285545633871359708995641395991893249217167407266094812989284366757777121893605307576641113946303575526203456900126582571176061425941838736736733523738626653225483124279329706153937040873249939656222913013683735229014079099454763264314803431305030806797915961033058654238129224068177049094910824216020172651276893937754960630687625087975096216339037307874411789606519377851872740873458015342386987553164739813630726768994518663405405185209783354535250375983045712058004340606267429817766170449603559716771902716253333184086502383137300819847054361850618218813001430217323446241764647572372156262860364785674477585240032806227086740279078602907576860717472228373033000719499548736749775295647347846093692949418198309799846159707072729769788216593814055386877370724139233347469898953033739707219254862287744109853991548843167546792744686277217829296608112499023479780681551325104205090400262688840781173969235509236981430754161774920760516858852382919005352401177274566572769748228008063596941788114653046969428852074939400331667628492840436016507321913344656973509611882705012019514503001180430949208113867929116530773632770884668512369027030521488498491455840444973687655979916289924213151409595057394250133614880899383742423078479762079176752868205519705498802613893659576638563182307316708128852044370556583017760788755850792856163279371133987947605984363038912209810627987682015551388558090706652225752981399242133919454094873883342101673419052156386525514239617673423002915140421340200341901165481885098651587656538089568978247952405180135062491149812262064051034109476671753735894704428569512415469510661692083057596124720387517357256211822566772453332647759040123001623089289020208660846653767014562286853135285488846383917522829202077228769388057058304443204575314505822029847980965982853978305700081066865120060538719342647296286960632208908337842521003889818473339112644844008505868773340989582036874694796229625952822027945347731955098925176132819911569951085259049992549067592489884996370171180408795289503124927081652578442432715336175188137251245883085008869394608484217693684360917311924055056835106822627576494016111758865992944336526298926471706835726108279122060214525721354302425600348566760140814604828296556330054625098677651915606834232676945834420724400937007074129416118221349010158229601174567297350731570663289448928699774989226196998612725715483315915135066566738094556968535198680412864816846161795354715083046692289730349007912133830187118505861675888334469747085624870884744344260217041986144700573622451330424894634299433188992675117025551289726171797532149052239242888796247022093417711797190638456253571158547352948609268149492122502939147217025495204225636806025359555343158737416640242706393353299890161631594451272954723936615486727095827921637819623638770022852123975504412559749316868706110586431153934492478621305297507082256400270290290261102482111576539015101409098377010404292008832250316765331099109148530224386413449162611721182255910299853473726879344764143638945286111515081374767120350807482679797530621579594000671989001272792121615400276111032828389478906937564166311625334620605432163461600585016143413297588686522246365938849267203269896142388648541648125843962820769616805379722926602015484240095379473503388883219206531940611989258999091202520882253721533192479080618775715156600463085641188873251404461605896514423154292084613427501410715662219892296847776679867893476011670083920683993397213561436289855050401301814910213089472262453771285331946623740809372348883556120676640805355396486980464730498074115378280497083343453525688033686019081504373613839876241327272508930346214461454241089626384697569866461945364483653898337151636605034807655835347124751343483258748532975660767654259295341067012049062948321948966390649396329838144747490464673654810908902639878655354346009382724529652011114494195712131770881684220117737631390125844694939714081162425167210517573632635480333183174067925729067265760918617334451195922493961899961454185149643422687600677369016529454125598555619880395281839148508021190540031355937687044006143355995879612397920611016972752330240651086857750716746400456678887817490637539206600791012446143453274101323117999092820999023216327003911232604602816876088930188814468768205447043859974173765899708016602536681128329203697076378100815602724994906229594279608895022464527417539254212941462167198853795523661841195741095686446108542275815108578046463784905827523260093616338719727615942655082843201288961297260481049720849550881353987934704139490208071787373909770529603076759900808507486444406246768148202381321768539872490048908014638411168976928854476574798042157173605243236102030684864419225789794723609350664951877472557681232278206648827257039003899746455958715630325793441981017333842544168530098280186168687214427876616686044656779059280612048751514835112782798628211397342764945870952164432975810198135454490722036398250487251667402208053360720804984953443522965076603580812263274609815597432009714294169973320193513132022209827928652111371830602144392783022599111427537003002830337234897486560385666997119069602820211863146643122295745818784137955711023080221354073015060929432982828997112707547885017005622675594919858687739992525887034604915612381299201817361264568515723595179170619714310105252512555236235340665538559699427433574208682428690879169444638809624175212476872555994097745670353929695341553943327053476519543486151011777316820473737007478001496726651509937907699669189033991144631232158916767368908679776140734052032552056908366078194635183732570037404069968539541973319468714859092239912226451731836321129526105877890712753927279714016285877839835660095643176600606455990119548033350776975566496009217998276861883432268705470636800210443576340071603544527997110809916100185005735481670591012397784069777452404982860773668408340938272308109309162834414646133824537105384147446147017841591333591499780412924819570698827241692472820788732693450002839485249485732163564127670869047780608805740102502180268014861521272819316869537278156814343391663016935228216191280349210011145570123985742724554209902776804519162270071538624295713806375488599394133739349238940455339565350482778512156434511380104282239962319810643591398014538160853630589009328978855894834374174185198391577867006477026851566942113237583102232579708749700955823806577957068654504115442047593943038973306171912318813134632412556202334132571712929622460556712007640573033751964172830756010208394589697822961609197492544396252944123089442730446762668925855814914905331394218023511725915547096077735768528646357149632823792271853673109388669037711255141503606951744298114220633555270670468280580515872382164541636690175653310245877254308914381044126698105451073620853178691522213343768465022122275265554152678311115489207105125800463891507566066232496445824180106252033049932667087431066036739245717768481957242752596406899834474583036078739758514463514702755205061681569174849084940288537840473831055393642354475688566303285524827474948732631698719060507741497522575095734287176917795705236488764930202462471292422711405528867609291361868288224840465121874912447946490694492837899202554169472560113458201434039370004706472211756044562184484344673086327848599728996867532053882146588705338749733697629699925610569162603837809971057124333954932580141356902363462073745290070978285898589874870929405762959994155938592262823177288552010718335562919001973282772514091035290035828798843770945978892167015284811004409265529640144381691220144235296154067448655410247857767285726799547252796013487282908344075931019606558370255254786195476709715749171433927681692868165053887976385612342462615479997556007384372546059492850402860955974923655120977296990676847312730696231922348378429819067670581909784271182540702673154826872806617796385608403982011840693476943847453155739126799653770920025728806101868427769159263616674843612481939509669578091523609396357697942248106894909245661204137349551391024154219011423231555852007436178834835728503527867480757121766225963352772776165481363494638814999811286332729504911311256345202369562646889653430053674517326262570050573355267585062512929448850960558334692161030670337523764332173238060024338782923924504312065694659716899207666664594885268934904151066777608937141190080730370745113186565041458095298293093404117451693018724497590124460563557592341137690996894214830278527141250385186171621073626705401684583561569995316618186738334140063706408239060748932210685364036867723749748102194226740290231396342185905753045836001929403279986088824853928056745831210174928779621483225148175676602925483257025684995782853194372032208237331655209386116734739671162444143269605015845111095145691648143491377625278955910031889182984513039760252982632347570810564407682168613370798350847406203443411106184977543252289628244747661526345381181373988741624723221348848389016094816330875974951588568908097534088631316365004848154869408831104966671803588766469080672242537946545182350942940891766777444758111192026718076533209089973339754585500998047355704319578404788149656758919629035839186597291740899968602143962516304165005930065563386375499506775234518062015614590729751278478707696846647265671081609129451567057912427500568317181484381350403713436887106860168420258842694230644570288189179336744396871877987219624816052417344395192943622111662317951020361936874392879338218474313681049665506498087496179345218687132475595524429523949022985738021518305761230561430897010551189664330755675677366705989119568063389817846242814210898457739092572807528173474453877924516286222264583051653702606478903048105840265574721553380869896123240084229349767775773016183865507762366511369169410909923883582320099823699039024967124764895161966853229006154656922525866639616812669811158288822663933807184026585747749356150988466680780526325765009716182275963039670280033222289074037221347711736301446224538066480381441659729397412598945211846780855960148891759067892800670656699554912078190993056439489341321815508842137288637926317297614322330755994826940928278046495745261094100095606014960710852486865327345152426685562490626184883595055365201134019336200744262658285664727744638700937225119858483310091430614437173742233435166442682954655695994868958965116071482127319467903642885930562500238292821235196163693800345927283816465835442297162900788923702944498005071092100780711096856717815622886549901194520871201828089787833925742080847578979770161910089775402203154920123579366382007072237815111871318685754673006112708354748728305079507848708329677395420533177266256744612974521056488673662077222232194093812537701551453947532236882684682753808437202266873702600039626427869133669266363085083184468422802771277101659785377628511165883415006173393496691053277137798160561569521341724343259577508473852162437793902823714754476050812790007686585960557232182901785539724991657812557621589834024637871453764633674624083147853515192614748564154900342253848809421972940751147291568273115729081403090916135233632948682099995035694551692906083375821124034602362731241243449576364771796212409364921769154529431960895235403009548324777602117336557921028705600318867328146661488662976920262057758759661672869664729103675901360406200894531771506101183341564928539139127547630857256956872503799771942684031756162032647652999065817832283910852122917184610724931528928538073443813202077547955869004940371256315601159618442303628052974000340565120269575934676038650821188332483824886767389372832050809924688206342071405697815352962697672804921434271050393568936904836366657177097940570661148132632378116757237507073509888130183903076578275397312042734880084526039762498278741987716317397034824845562739518279773619521146161195554725912447507135190704969697025299314479009612140859677795138821572309950531954984056150983001739564588810895379028908938043377988881097250470485687191750191251097198337640416858551109677240685788580098486919684430189974003292774517205130610020205417087991776694553556422079274095204821084745380085429762223947986065500571193160168408342752822221430535098751925907747249976143639223904717628768984081475293153983176003215871339326177668836575377519764557110880402773468792111593246105124923927445045672262356639183208227482576965902450392845802669579757956239966024243833260963972395094065144641969049921459479753708770251356029081662410260649241148481833309028391389655072730198799647721958455946164761354338673086851930134372073683822672668800272062462144417307009464212097844322461385143575470211263794448401441233061695086764954203885838673401995843998454705123473457864002666781343347078720298976089031587026462015404545991373849793172241223090326452032757775237746755600782007495185020056796182086738170976497408674202184061431489342425881757257014282961694717451875540723181663690891236142868112246599017748468436313950167259778326978572278411560465852767652146522879292744968946826145675727682945072438942505593075872976932353170193524776092224100567279035554152114606699400409160834601296401094587782718970553209306884255194082737753379012651451600784427139015310160413476317444183316626446068011335471285147065288250436692903071564341163646343453185015766288168747063391411426958607838032775909894046403906901066947412622540807885813916914985675412043620302321279013793403193779149531054843603397237931484867960475312789912489511540024147797538806747104650781299437110561151031330378483616651148541312401589934810540006753059234031320524063279121527041934156268995015178846465909316482571331183735776503259799922905462470931535893359899233572882258395256722477631892917359933491264520375073340444165683239048145604381303322474801756783105776967035125778511640059423329764657145006897270292803224768825036068637114220919151669703378395645687954185848086360006973441500319047232759543359603271644437499230328777847125121263404514879560652929076696035979173120821793694094695334772209393806024932576246999806275966916318973682403020031329111740942262863988988282858173433681554051576895221615632429284773451698042661190847029078146085192360467909760195271605185306642679107048429104921639465250674197008502797480777509384933600838109471646084731902817111088402449264924512953414447798824080888935976222509472811123178483874187225444313529389706753246494701527955478128349285369498120264879744691338889863096975318264694472904992919212358490989164337160183597759653804114021676143780247651788405484134071682631007750775572182755283637297130518410824196524866940689362814104026793906500574351773378444542772386975705841525734983586602408200879287604070563328214147037865603059256421101374642005593854676611523640086331014424845683816471900645414028490229605317612413922454156989721211692241433826080058990251869629743183272923538275211796435528423566956074739174267323722378396667501036470812442196181360453432949042099908617305383253238682359380133993395451596414874232382525844682902550785188606294721864653032446867930530956859064353014124906687232549621489888772088388834295313609072321355530351345927507155654609539111132702061754820587856119764087522152564557258389616655444371042099672877351843364011338940689681098280191881905270550059211952754505444594243362234137824918878041620412999400771394063225724120832092427363341696312174772755009899790633937382350594300086965431749004428235408603020281313824131162748661893091900487298128801025613416577918838125183092180606474660227718588580556233472801667886191444705183226862550974079694996802604680937128818712945569048932659638131610454498473344480118734620260383411397976084694963183341715490745625927083658554916956629852596502235996153546778574265152423380247803186079548013872325668310375944698609441564588461677204744228398828285005370588439948433846947885097936886351964234457569954340397149440816037881519744268302628716135669677097383702635085794930666368320950845285206975514392510220480230444903967852098554242600701384485136179373052853983503988162575714043750520569429608546306811260640280560720991816363061268992013397610712811330090630708961141330341292038684483915776074846938530417505089001513404554445563752434906931257679711243946747924269406330090242641836810050958526549235797014054623610031192267177113118167104515889789800016030052503912281216181903405556600030719790600313944518119695158918578305595490429746913659028150141979663716234082912221996241616335970561550524558729339754739729271671724049843356120484270817497981193059735432770221410594933572256524070612426521859606072144118879469990500842909486208726047737064655836477413538365337849524588870738886355360897216514261216363656538231470673061857380147405106000936922601176592094904223432133049378993917821413166825053413231756240310800498373116029816618336399456516229396670845793228018849852280786778826212268256245325324451358843717106552344055243588934586896978455580834675148073881119589554666192562531031564370796669111642287681308196263886899846136179871742917145389648693913439701491554602701796204238195471991382612828330264618805306034490675584559459108342437415465650224161731501786781911906724586147518210317812303737672431143651316276621276821491154384374765628329333177951069626401755683210164511691457999167464107123955260774261705320483121926185821349119912015268822168923073133656536002174008363559573683281470130570339600465958222844106593174572351802994858627440743829754724445682012867623929968797749153911431293236373834733397248933025847608726949856332317563086343976060004082868516026147493400971620531721682909383830205329450999229426084221586634508469526918305603929799565639586812261377824283632776650121313428869895820593596280902605594787256029470187848048553535151325551902411370519360677887524273021563403605158136113510219625710562032569722144654961169986405425862897476110699359305218491889699248587815068426720786247511640233759159218676104424876408925794650421126844345002853958559517581764365632791273800545318146834207652148114257552191172585167944585490256190247467208364999091831980912715417706301061112652986785362933762225617533727950487757254573626750631974373751028273598960331827758270062013389793379038718643752293569223949675678240455605447225719839889789964256270650547262108841524056295413814502979823431071689187735875462711939238183571165195767020606190560315443566056588293141200298027434938873471147372371088880537518739985773761558153118263087181843777236047683803600591903187507428168255350176948572758890902339877347551533157727382687113231926271101784782320686456811225063536726204422320172176649934384983348098916844897562778572943789394353940570464572404134092546911249268619284217027989477296833409475108716978624362718923657100724851228580972723991829284083532568734351134787270648734409649036328746155556655728042130972732601191580681385451470006254948279846572169702104046296827452922029554638833696961231533593611839786077925944003808215971069279954603244717871468689409388110402717139553800331430047377090929105789061205231452908884981067218462034476399236298683687567925057710304905174035154758251775499166391954057881941295557212553743393515218372522129383605329191222873348925142421556238605775955009893038914699956542985031657911101355911882462590313128752760038979519274458546477825206960234919191893582853710223460622635657746804021937792306423851551434044098619811089486726221682234619057023753260169037694161237991822945149505693836092719444902384524758508317952692582115285012510204366649037165723936107983070972246758660933947144171965668124005626417335845317480800427817684629678421675631799027848868089909714013094023753230381315626729280115862634080440030808429999871584832383796733066513678720056120810236009499263062176316822192065526890653634311678144840111462565679066513012085574950391969964981519401420853787317017658840990749097422743572415102802177234358259328594378753984200192463766011610567445340969782026877511115218131230286702117101103305481626657760786361671093958791386558784397677454560037206687793261074877695495519449230738122002195290138415052009969393409232231751084424365381813095849078677081401916344831678947086758727680159621195973452582663715431707196149282620181398175878369551679024947272450298827936883195364029849217311803497173135521501664438364872370896744118335357371154277826884643332196087527999654348172485065054580079953735759627244362002254534197322751065588091046553980572431342125594838125705890045405608256766550108072643542658718059675750748520353537129198332892315558516942966783571250926952057724939916348095414354402509675516714850310057896436513692418409144745962279327858237103350834903025506972307376272905739705045115284184277978028771508711139688942010915594843588795899922658941464127302255177139004273870649753611652710769714433432334072255704484394773973964053385572256335763847751284582058968915174947383234107284998757693532456503980914238517282818842480520407009876050029085395111851646662962962006787844573411332663544411730860872485952020121917598101443239682848463473085983785691665300246293700110622266200643872304717369983297431486109388071988361299146730941416194427432626711571955997209776644510901719764815470736659052807334984040794130327960153681822560642455411055095710894835964441838705304152511489301886655969983739609917168861551252852703897307509442621530213406328508230327837392552096722204935478358695974874247010103210892242553180912061926925182895683429734114398890340011520676890276289466041412238515247685060828923000120891954168737587227711821127320607110502637294449421675531949094736578525070275477439344671524591423733687553796823353563048175556066550276032227255201260638018057017602011102513199373636257118732343526411687497640339218476588772800388735674130186711005429018692431800921600756255530758766512526145082119092055204780523021734248016419173431087775107311639806306806048745863278976341518222532905116525174179988448651425958526903086620406310768168117762586085998712088441334317887337499006654057829623934653418950357924969033950502475196769903761046359946918966955155082041420376597796067809649558266814801515615802382414367560267818910988241794253257787855320517239821888436812409788371088078023787782568632119127691349925187806160374990412458850935747927379609569062322808716711132245447825718099491277281986445510503425929319556466613030013619121690406830187297506467516174087375499703810739473376858828373263186591171908523344057064130490669138724711313788541913131553874282331509860428854968449429731169639056521806862052441227963756542486627925458826859838517806896574930019458986740933610113777988306343132225553576294421433600148262736191430386259337341275837259535975776772536886522036474145369996959300220688773086557456827646790288014844360504053408263159544491366056570407467604288782834149837217074290574511272747314532188159170804947886375641199702079901554399514660223649422570376461393009618812607803225584527494475596347887544091035152798941505136139094074174966087447564134721742824722636017289073206053360485820159983078470009023684485858649659440646326236742545382406564390697915035557286125239830635813775989356594283618190397905755131492610704874545147446295125766467561990386887974546027653379919114253414635396648010047589638418958523127527643030117527443547952882728550514229915202274823881762451416288978860528178820516471434470039315550983795644306987165757857700465832316963357987556646824718475143693616930427079375584060149480714719158849719897198525265181636614600336586936924983864347915796600705106712435680809435469642317505446454001526212607926572150676454520059267130257916039523267606473197912583688308180556231164279545734411181793952691155523797734331669806945688060112712481563301434133003816281082728556925676877807614982169036756680119342920256399996454823034452151136391144353146585248774817508415369960990105215136110953431624660823279873280262656074584678925850088126572869442699199899069776693451126108941921224018377692813981369592763134941445395366202840058614508715354745872198549905318502966918587511514435865754913349985740937758752115658827726180515515105198207893082302487989560908402667550249870873981373674300788503722890838850394905992776610669205378540687748648004944857845443147707064872617589762693232388994888364047785003415135954285175000573756408933954136517300829000767780299244500466106986554356856544679602846547051194662797139501639449615885165271855734264871850589998390951586130519522602951114556619744169182168526338987209256734923002221564229056351550151267880455911824599964543183293237799985962530100977791446412863573964123521188064490103692007002915153327000391690187520850402477129311445889205823978898806174982037235281792734662966670127113925482491902671746626220864122623408046921920512318107965471731731973210337782492790891110334049703146433663395361673957974387239145779780875893057124338314626847567527897490077734311156495049722091044428272567176847503267221696897288452336374292471497161192234858690384396751869029091512250156071127468541085095607581089720335705564948915228283209278814934625459877787848883365724389863042623588181241844512569515745158402792858159583689823418533525721091296865897780050315676208710905231110348808864013713255791298791725411300460922980155603251925904778589360572467142669410957857041606766752107291957457252414618485210958327121041894853356312895329021816255898351655438645683775896379379992460384201539202705767580559668985144924213764029603677961105725941019875589772827254311922489847328043484870498461096555196754372669671555289733686024592693797097489626623864643557653654470784498796931148886363276189491646938525993433740270752755499321525386385577893234188150259974086449412297675517392736522153678462151591158386983842563278184427912300465909839939252341561297842661392568970497629792130516048630458534308065940865593685229294996007199812211089818461565439911367714253027660832181139564124312301345518426375474334604301958556610701139897202370602675700504023722968563013052324762078508998906843748632063842336967094375293936736713830236760729465066908014380994811610803456296795741456169268625479604537876507769170110770349937178641338887457225894287721981471966849119875551279296062586507367633133218235345545037554765223610170625111977533056687295447293342740944768668332219461748310858194208793486404291055041408124786285352940564791141580432866812054853523333753697134030062159490527961914094902840280811883308418806181034399183615607474471788640596477559074818043682116008790403068661081155074519698434666400856676387483193438659757397919095618388031470063934900101596360039474494318866374008820718367367296883145837780873811640406877021262085277133291338463799995841201842943484660432333534016011343189904215842982633048623370911408681560619320315968205468034194543885527917649118838685192970071725780497182739123986612446115500119702486159462591755487849833526286340531581285756361203226242652626338840933639800621589749111267365160036165036181929177561083578824702826455047833848076186093548267474922338421297481469290504543210073498338978049518695229916085952847496525081168723704768352233775934317848634023063107502516452569550474922890931933300241052101378033416970371591094872423056131086077543440296836098743276107955463677365930461839615988892041851134782709791122747239775575946167002946207155132841340038707813357784157661329527698688551498603243469022607084084864031084341690925718013950408378815300246564043289321870929026967173416454532735951074089684024928876564747180641588797162179314393109535708062954598357520035352568155172780049073157937412599713503671552103152242380261167369520999673407561936200892455398795328584338172242555424857371626221939733711829255111084152461838081521277998818335427923412387855763104685495321242263674290654569078696102668394037395112099045265064507838632252657686878343795803927882700574984838668792834791445633374034655908393306709543594059151473571135354865177430834893447194946121438173520300665168527529612770006015826773544176474849870812929053174701597074898134018334847822931915233049889281338353404251176986623928242154372685250123293289205323366944153495492968800997114082593130550873236831703521007078116732955421677958476616912917533006455164032607390517602463337483138215811984113255260328207888010151481664026708180202195140500650506918168922465284419921704375526390926469180846330351604377007174837585546551111736737542105687455598116382447914387923287768472552428299644535882715072264517698556093971307999083283845292751048683200184480027930426699407714043869871591146613074639445178877552129739206700792168555969513385748399823069036027190838273354345288508371852390165811068335637470381423490061033341281321667375614941077508585226868310083851610834121325286949448002671622968482520032747664199505975674992599814207134598679843015024489212722758320407964678467990220283327401435721770604564744378038448678324532057486713876926577229833443696069327473540338013054437851362096733982955084848833413692634331377490210707353725309788079622129062051806609224637489390843198002624508575007125292030660287364459075114095962806239077181695490219635349768340175257415696976532958686679471405688487069343228519651337467760335987937615496090634439945561877001641373025824464601347747488691246833416463445511117429743176121167109549098747526401331352024645469441959556764340349809531017595298510892782948160086049999955096532215512006930907647232718912967798128001525624425000106874266396925944961348027677802085606904072565763335671929765420658413251448130284642253587263031386474420036499784076391898462776305298240988874771100397975250313704356462965574942112261654475441672618215096972813970282617754841588223977153503195787726773221940049318665954029642206890281466893009316079439735412541735326292629037117849852078255152270110975871518001620526028067256409710840736451609966316969813030101060412316010506056522593215265321953344036746442751940363860419966456149361484159969492977109578154671930039252765966771392803614218807124235324010243682333066868071635042210526828215065901521392059609729674736741428549197009061696600597936126285094448318320408938441194724250162217242926083106762602051337098371975715116275907149608975159782630818267834468076999023503007671734281373985548417296154992364198453044637569467675052660410207568867602018478476568661823281150081442534681571326755261895733675515791833596444764288291968013162312641833489245178621448753099928957259547508563045604600488438818752864805755416333689453192620932468295744925861673652351929020645988554545516324855658682922681005563846618023838958298551368291415939589605112094308373127789225753359829652731056091556365008845798422933651887355225723317872470951267048828174560545198599009749020739920865203065342035010400465502332787549602707909476418382424033344151711052220174293560642149812519175839845732030630223835159655370606629238306121557937106855687076004961775604221790021073222153179475110315104615069070930603907846730594335558108300538241518558465704853630295703501809956472722139706557411664464251607155376135486779177787016398620917708994907804510728909228771160695224549852539354609972119619506788194154956171441663822255320894061324979957024951030324642216697811391910355891550157735960379872424986651954907590929998051884462873808415070271998655412769758531829440401567744243146015807524231018486818661289298008507498978259529307936116450959303959264062618663480408654332253403598032384184537187438387854827709822917240164611413501988576762748514907539557808316440868206590408904834691005448064777314543450774241367855778525575455888193041919831665147964234694110126317949494656309285441193739411660389938611013483312408780790766909689078265820213571507248634454832313807417272895315829719599027111188251999452213402757698248536488110235686508952631890596868098019611314903496935700857041821258655460784833296969665949632385140926392719856886959645679364449434148565646824875387529415916133942224601834727919890721426161292149737216510219503265943037950782161448527550509535352875489138928098566320991162176268978007469228039837371366542015050915696628371302972126712548008158039748361539546944952444008198279377023580630129463603512104136894300780176636165753674812379028992121258471795123268411655224284230028331727505211944896639626012798073897199182717589013035186285019155209402497767326535863965744508713530124479371793362152726293838198604113243654484579470722764424110448441476670216393752924590376111123301599412000733741119424318828134680781227077987486174158200615407506221308893399375739553944506989801709775315933895974348690907145492858771366300907156426415370682655467742712774151529724496731804744711043550689208181716565583544398235023695319968064159251533912187021160997990149235950328010534497027529722127069338950274278458944708197866220097437770499256275471279178284629784533768526435661851203412248104332621426365206079792524474845176138932927264064997163331112770410245511568134397405017595222271975880041134355458773369940700206581177287677116398223713132970232446336857908839118897119523632632928135527344846467940128405102065504430911308739380610416182250548147001472966631312451917801145137140449257508210075827375887043592195540125980148685103257447896371119515425560181719115133580985881892689936329449023087548660335271293176880357240320518987626456807801414575580702670591860534915786773627744779527114227010613385253895925616175424488049776693993841670881601894390457301352964451680966016818711922374392731443018244847375113818003403234277924335691476014367791373988915552329727126889710155880099041682117649114378138372304668118816979611107251684108576795512533448410401420954836341663018700888377942656842159605978235602293052912364066154491640557701386377382886251984605798440552661245158914468834221907200230775823356778505794498615880679826207677227157270814632813535621184181176605110818120606843928909395399395904776889366388471781776591252968898492998284193691144294497640110137586283845378250371047290629155008601270467735033360929622981854825305929113781153913112920489142226197873411031941571247806352111521686656965983575947836304593824231591189291386658246254810572221621375092277981619852641131164213041449287759285922974898584561490569575831122605227127214962321382146279278089630319011187891009161198811026483682856614014627007714972398456465603102268130288455989798773176933318940087487653802078947693674709323793761227972078411124548451341934977450614253815969415439640068566137419236737358870662530652071339440212659669236062710773244024957236855294239042222953587944494864945938715706557982914510252463994902198000801336242317564453004911753639278017602673749090727564471994087043201519866176467591133301723803727615252529298749345091787571961721022854079958752663145842542276922168392800365591452657750359661636277452790235323073056337757175080262008825941355311406328079592152844313955969007573447970995049307468098597771558626114335475987572146065345707045865450537564150211872847247609284199429852986903237104140801723639495975172869706807509435564188627064410576050876796985739895284142446018382853660047602764794639868211546949511138049714019773533068072109173060360215695194387247525842964312307498063051471508360492388121186481504614901982585780276224251671343898653830858326231815684558233162576459953047709707760477502173503556195071008376517724442538724082388548211669915818796413612450209532898580599034257277833170597285260331871251879123302798643291670764595386807738539656227399963783786046832119915760042163308716190795819909984391185233210089191986359839686387279655962019801181411487277551546005421323519669652366624151861499865367678901417751843478596654957294163480368285961896570103122890819021245427493177095771976717175500695620933599795686056730844657032587483379793566915247844067444046179089889055272646059815072549157018931366289891243512086074648262680347103377470492336698711575058794250804994932538513527914552826219127577869638138898503884615745772673639110121835981279441288855305562169499816378509389100678739770290016146276767947911945073999379552109943047689323523112842354611309051874280354747369515370582060774110431983450937943615493350914987703165376903298601766424210078649463258450121813636102409827071842387022296304809392693947245354666739753383421883430930314389635363932777557218241386756285776513937800124823492327363900530296448556024430588309020565645196993390273336205260356656666858465044303575005188768634741514339440559753766861457278216024993546571528020003422036637867602990241475178567118725042677519363937959752581599298968305038152706489500438464114725287827474813663946565410435954653209504931184130048357875201196272332514397393054209573439384573268677400861326195700861273287430006672443027634048744371167779470724291081548047283457143491237619817562595259826670233335511197260417105599569266532867025967396655943055086013948960185051729456679335788491052554187997132861893535150057655103788916896389473247978333717752372616015765526598345979454667727347408486960133579725212332243326863837520851672947233555676150079571873398902679251936337349281545291630111686707036743397675246675116372135218689878013587095626370073806469521678860905987670088384324382334938558831860624304356738874931929757783069089245055706481863564875034276677306844118631542876093199196971287556804923537627075509041273271418494897637705597167634810486553370235972163631748227838695897862137677845630886600220074602855196140028375281626395434509549693019220709696769721878574126095928353627453349243693236790661326337639516552420647859410464338368481606539199992282355253128352823737620481476004128187121895737373300536027152557634010125953301367975663855919035873321979132509606612428391207728563054401977811099904455441281220531286409712659477052842202801343299333498548439850167748174963649846808487454903353392640128139801699525131812066446132666624983549819105465119746415452847119452576664509756075632493881264060718857268948036464828390135260150212907462952421287491280620815678263047485786679761006291834361504364405224086149520938096613762588015623947814315550126357268701775881854989789281716195349221668390974844663628102964095057242221256512070706024620157910168680164266743268441341062802231812383651343208856866509885113280780494516015974018573148483253616455548478404580003450251947418972314692495370980801545848915681983052882373279425084231824184655676418167888019248652734107853862986178755762558919125836904483147187930145213593106765643559641214396279598113101005322769114799258737794466088297165054335140060726085962310844608637991795778360578008963350563183793204026709907910785917092440571056937303165879505318286399617228527524229487229499559812758527518475084712784076593926593717401031074444136259511331725592718020974455786380513040111911901421239376154349564545396038495990707949658150572831319960388471810330619695422105504753421049986096255347232397804717853737401999086061933474650802374819878567538568148041966733484405053062591891272959952305926647266386614600875511553872866795486252490028427698029160252735229594183247512980773184385859636984877000806001618123833509212410967310769718289863944845298131536277073092230210705517601157320733889540511363409304196604108605084466091100442501212481614475493347040615616571448454810120960714209275132165934388709990035157746748083193554137563162687977265711998932083484048466550311009621879567672658538737091895576068155918853177083236565793136956003075164673101657665702855396769563008043649916315432467427036522548501019305813633137314649587116819511248756865087895498746180115085360857807676768000836449566353845032609733679189319205574102865947660021919452226192079870603567805526641255404507500741055039112405461032212187617225274377307557010165166312508954858203818159699446855743766640039934454789969746801697934860750259559595111325859089728251781872947204542130396224775940937351756125471209228589797775995435074014156059178069793174358673532756350410882084557491113150331832134154270658082087448179258884393395312837224496161251785312799413780393398328991754599905219401920004012490631057560153355761117743522983467899729681311266749088208988291778477912877265429701695597305175250820979131138350615670799407593425912722058633397281573901790978878445992417977672195780938220575637684120590414653908345089161491140931295564276270086988192424636855930400334890078466278285851842252389585296561559776822010280019244293027131201490810744931501999966207865939636547635337765079673666911045141443086167473375060762291616704815872812872440828813191732604026030464926558502696151742672672314059274868016641040892547432168916096019895524456533933764011879562331692567169959061326182347550543734639676387280582489321366308770642460385114192893479817485237204569701220210988016385127552343419218848764293857747769712447230261658579521676331303139224054045920295923929809637910211135444219087019692365177595028689854537452214987132872351280149698415509895374706338506067242008814629918246405275117529692687166617045427263075637710639053050567120861568972499348027253465966341335528891737013278027317166888244621112155893384511903641703548277188721426694249101125948292121387522329028556461431086545491353117436676045187267468826810533132353367963045142618845346100856305014285317448243382880061421415120539917414882688315466242584171097758318466640468464760051059809243846475525534402889409342016383411424537343083011642313917915685629192900840146281958910102674779200948237343016266667905492870291469385255492777328679387585642589173523300362080491679089194730983002992280586633462905796320594868471401400428757930187115529831483181723815765920051764125706030976908538370215935804046046799537705364230163814644362158478761084141597493996395021707988909808371238829428987707339668848476237754298201671749808443181750137679590809737260350250419890013283304095023285553213673789031608373591368869507815445721950950423805249684937982603940572266107200763949259385897197357869346403697274812678533410131170608382189794358282319874192308070848052984164220017968296358409972845534545878660811699747331056678198170075398156975537138009849492091677901002643251714923564617394913155715246853112522840521711027597917676804469137614821834038027915084946870635574625998258906865174123506068873189970581397127237452423404653085232670958578491915765330441222428641180386520290799799566696817504249763838306096919334651286702423230822956033307727151111289201960186244767898828744523497273416846238282269228889657450807847075794163298615983170800542328667025090335354793402083756355407300844114581208047099468026193136348709398377960177281346809609508794203525464601172471637442749631821042598094017159006978568039716244336505441830501482965731548389285119384768143514539855929171080826713596150395119918746109071804111486063093848761904241056421975143009021204113847508511985635121530083361237168902531380176085841106435106466123580917666595949054902153144450583420871426932308493753094271959577832860207921485255063698333564206491728134574641229205997326301766958796737762517463723555813732080551991217096108400037353841712572147483343555169648601151053580774388470615932071386323855226466865360866279390153038491791718495197671541704125321807087269521543588534702879627771292889444879566288106668523053711188379795474900676861282680042345840395402920862938507508642576602157066988352767077146074893769369188438411391077042240260140681494773729902349818753821521941638722130779318722871076241109631862104586325738158115831144839332514082889070554549400428626442219698006503517743198011425495158814716578170484080286423428996878172012361709746292605733558336514281141470217742794565993081493402498683835007509388990960674437467192086944973122101818266866067825772253807507239468588572366491538406215625698267222933530169038353489324168989839893139134085099919300636802362604902558095554605505134328126552183853211643689256800710472010685100103002241688905885696797648124348441088831591056779826587300784782595369294920094614307449859151139797021805106142812268599886806663214337546409811365027683795237812803337120453515347725300300015631134060753000693545860257504933483463981422360122762744650786936815006681515956794597266971900713528637019625266947100074759099213661264768676056146120247310798303444205982612439964732986201992395226027198830342338694922527759656815647173941442504435604698418924187299850407617789448383522709811481262216338233067067576375555578339062517993973414748880205905496935054499245631502102552361709957393334988215088162355638094364305547363486025198283118927364450987965541436448299892261705921682031974248372431387462496255362251991131196142473386437897930887416281763139013563408486711880035017672837089004213107743125442553270561724894750021370983316385153479893891824878631366882799979046066451876554151814316102548428685041369816479146745240036458800857843873166875627364433972492306701652574209428656670067260437269455758705558975341179341603467570821345352711066942518394898818902298301131685493111136415037389495674874294226714713021368861699848414150511042316316101083272484986888178502095583535661560919395120927484580547268159602238433237839026925609417488555295105035775068419724921638359886510620713923469439677040544955928650489679154741032388007416720250209288725450926507469378612916630630075662809667705051380241692970060673825666150082942043308587205318399514153421546073308043316101263245771061526004041221656960045228284536988902577864926903781898253800659886321589263712826871773084523156772454213178353399463630151581381577380009169550153093099396457675884510142858470723559817937361812056505455372347103880552728822255827964348849359109377674307521463148496502477793633559947791756550431295744314811479731994701734386884197996216890083475178522820247492527186254263570516200402003748298498781721881813896119534722895995818321714632044329022138405753001728980136833639768170024715316481493086946089500263872798235757294778961652815517535691428937702993911470610660243072428446219307928005775685857003459174547759969932387788099675237398178469265861211954813920940683619855594206674867505268992493394138743891461458395640118841122911101188965181300746525952563427873819107742743638759267563456287402590915580348938089482083061440980778272514791764698372645069166053993258869339554797012129962429634949022218840293586023889875426956810236746903484738130927021623568260111471067553233628542524812886231641404214142555805662166334581797022337400436541625386912954910201733091555728898306611737592500693803166955912886033969595106403438533041524979941136380660640794439337438035418958524610566122018375403058519469889577971506456066748818278322632902109808686096508637808711402301500853060011357177174229420834866884414296109700792402927886109003458197076935072542849166883141285606971897451800787945870615177442910176849308419944887507842641836744851206707366975255030790212926297223300890524407768403897569525428756651878275360752557498526719645702465617612199008865402499580076246504555635203662086089458345186957012095258628016752631395319566421418619398332331137128363772880574669101130400626829854393701750180432243945002892670637468358096390702875601571895962549441717350723077201595509711981119541331297408474245885951914703480677336159812259936197078200923217022704014527373857514741514537732256067056054624855730976872004925218105933836647105481794832920183034441568515619105588956533537990697384818635846274861417195922144787391117286949366555535386784102288744207797381185778750351192049853105519723858116136169372859462255374721095083385426423825115247736951968904256748951640123342745149605116052124013412424797663269023734876042562202319536358506662983754563404369563083138984069782932726188352964930022561319014157685199196904429509764996494223777927993881434969019888842618418142075567792463216439209058767979580937082320829105082136429083870786845561053155237881684611204829762318282267795409612181699088621315096911753560235890366321226840759332110235123060248497343713791862444483384905389822475877792752746018957967745387716010107814413137338220105614473177857919092158075238816564903032385631424714392519496374338931668604388472849257426234982219459808296982019343172495965754296570990525750235509126661893137323903855066431090862037806696444063770883718321767705961804336897188062203453706693960850309613041539483417387048293379481828522806255200331101806066632866989618212786433662834083679041221777155034318840806438195143581114372069799554180796324336791210046139395658668649312363974244574547346529708348335322568338994570865651472400780026785076311127695482049837146556884606152682564666085658829496978709022747266881730036953932173704866681384891382077453218962950663539252238431116532064163912090810779422820312980268344277558410381329498442823509025356859133612576437789206914432897323037190055661763917026242617490256566943342675606497213398220370252999414074865026085417495414867275373405255940522401936133796061566016990730138777508380884924717841967257492236827996462006870006982133160028517789414598047106866828561564165265124468865463993604566948056191917046456088458662584585048236339456132066668709417986461519168251858535938146250396683521269986906439315654065590018788260512923293654903472903090381735079607042259116220045600980098972099933000130987823882580330516841563295242303773631357365696908156084210029075528115554112017680392591750468210192158006478110703389362926625961484792208912488671911505660865504837509839504252602708945007447615651195685299108278716219564501388245988165077100665871919494709362614371102177004502479330175590322021317157952025348524297719523140567241548203632009739900815169435198976606631296271220324727234117398175334411498886743319111371372021108225667406039982233426183782691756121674487924077466191555997397633464750385950971659952923372396227711310234445235290426656366170551457799448113816109660538254942589081608591545304744415013477380861437325996513861768937739952323846695621615783833205917426655543739196430076404079095710766061673917393892854065816985014569949694094075315746884604780162319156338885521591993569947400521591671176429620101914426088145840653495009901475989755200606610765504039500000971307017033287089778431656244690668471375249030325811956351781777011522801945871246330432055064980443797225185303169943378420292661293025551128210635962163724238818113344656612342459891627015175909280518748195043762452696203736322821566185608913716400977669047575349454858640247649731272725765212871228243573349898816649046688253453877329836067645653356435854769602712415216917022764315204970173441098850844060296062293897952000578274116762316495033337235417547247135310208839131266629638961419022246336492210309776878810015568244455327344712862969991129045950838856894897150459732498530786937881808687020470227937945871190290874395558325409939269571405836782902999366714971516044045595615832602207542247587442884666941342382578024861978734293391250482967780449370489074633702071426708794337706811354630678566853048762876983521653876490866522338587711700202217103129065135819575083535998759344203661243701596983381453151376055648567204479505471061416230417053440103431793764294162800012293460502418931515502401596252313648803960214204810419016783620777610362957947951752893428311893527174561319550699335423482811563493951696893880344064252810930366787116960675838502131860575813503447829455451470622713694338776266631997959563950587417574256174296164084683713887036736971294595511764618255920834078872040137572916136363732201012421567709530325887621517436369608016512358866944877569000814917849221358471779107531897323576549504762585765744546505538431544313202506617588743613669854640416338776436224114617586589187419380056192535109749737989758651876621647277312262097863816532708751426485005919737377091983188820471306002171865001977824498315083516993578246271004727445265853753142367254116140587192519200269396529741500453909481291827936214631124067891969199265529265678533543164577771558887848600082908163235116145140697866316055439207890681359794304100392591237118633781203472646251260251008603212033103940676446799694608830492070241117050876888732080238611208113801375081168428555400547593632268636528183163099677349311386403324582019851194646175619070118653014371410649190038544038669853902501426740345754999813088131822792063480687136102403771490904005704246062954197486816729195169966312650884862562946742419805862862023308203488354352368792668916957258181358004985639772869379528500172342275801620774305115147959871284768446773118798059022123118552308340330489803753415425376090618838136713170369167602690330878884536327364791339261550638702890198404794989660153586459436348625887503935715752238202587307204448330042644933894467021492525031545309169378170200493046536571217742071144300127787162398699963103355449867734633051114350144699040319483520182951318460449531086559562850100702768138820234335548382822992531846664327638673708218326682185196729385084532538251358611386975514128226202642725536075751323667906781069023582823404486032165817473302445704434782309937671224852901881402016632046881873033034219555564114638287887943449708833219164442302619956203384662846997864544030232780390527752563887564378256792982831878922952232656059979891900664330715661889325508285360286844412600339968823174051844569118417066457981059972625186647369507425610656444314130413374622755848246995876081325279483864380532657078210566858142657877918159383630579210951158083238067558019224095124453999521428430310428835766377682685157945619677832109125484080108525491322251584790105174505763670491036490737593949294703315225388064914338121087595182090209998783331542368986775458099445298852933197190919662202078227656578345910725588837040094854528276339916691773347459743716498331013814129085280645766792474413765332454579881803734255333127927708859213514075272889115515346724669846540110149579341734360658367770603961745484178470079019526040920119803189543978220166040869778487751496256189448666103978250714501315929270541062794375954346241791952668853152247087124933643669877669338158478769111342747491677485802652562498451391157807044249725313428441432418890135933559166045947538679480566500487893469415808035963781494758244226843335631601259159858345377413690537575472661216915444033801222196051969676358516706376840422032207390447524315251740248884383102177001168006456159603518483955158347571738490978380960953031634264298852672950424344496252606848042543778862114950028526497587112855404035089003577277982142548480142097677772227642904613790065314555218204842714253649493073970696881993809058118554383064422549926646901707917873940063319231843623440269159743031468786244095685754451537590287332736446964951709261731879880172165406971601151520835596902668023193177759165330678829814722105606093335605837364497059338783123709947558438734838167431634490947483096646327183400225895686111865912964379578261126992925257863580456131373827142671844339156541766972551959204483127472375618210357178899117467430211746037213553078136886922357287131387318659113642545543968158751694466312925626713100473819090402819004895324442716966911944385721109949191800073679997389658752465084493531337050638139678281279890445471028502017240466225884347500199197866634318162537437573325363305743795703150248657447011036089521422822655886862387404311796633873692642201785680262785330460919429103829419278554884783460537709701909607797863195149154849286620413361747040466676077781150183206949437846307901307611517449061820887888424857677412837855486430713985322444298015247631586423962483795775738021984173398700434831252670570088327000694293286820085621476558087188831559545473891050526856901366425655996958028669970725665637631633742920100067578703486947987824020174130916139490823851120273586458040236394743656744889833738283131487337546838998106359497329409877465320308964860511826154964077088226017475495158589090387046300765624008638331724952264059828469236268555933313797240583008975411402639933354934774931749681713511225327784069423691311352847277205857139024819503666298151444726915847130007169804034480740202565230112276191657370134456460310617869694029249829349692844639917576418145116594986373651932524726025684189329231405846849162026232036448057174140551341000665300154776061800325487116822373553024704374430738730955411292994058763469544585909689528121521973683432985722607594521777926650823060833385016170341255989009999683043562134244673978586402583718360444615222296646148953460739967228939600989224764681548664761211516552339836662449108178072790010995467535940276841408045969761660336285252719740177811640320750494517147949878714240760495670403888060210952104872198868473262805401575470044406074985228677050270566840885115774649224430462273206623911374028101158869630315376150086778191158908503540761713493622038138738908791657240964970343106107513911665839582942836419222279794894876537202266650353060986043552156140865402829292927714720965874511870398434975729826735056004024267709977679535644179038623664529395921951839559688960451034191004066010493093291234274712283007276538038930763271609224486508742875368952362152304430574501087671134828465130489045726561229225986794413816487255869765008573475459030300984102319494727047796190783407332516039882698188767606617529580347847808507752831033448998607991678667833832405107982341906437081512241076699402842909836506553539948478053008245120022964365830313725146640596190186148272454943831606956538600413834094139225429314806957729039741495059481832472005140787921726245159942101345879808718202912054944838384753188076222894536302594749249982013882555213918293589425844374219143619041987363011735374764118584317983201050569186651238848497663299570692970809512299167225684252044155903572597624048048410662461346506375450559518378157540531427611327969112662404054056699376316387705898212813581669987188539688686791226136988741340632226085937161279959377877746425514440610845751280545716452453366385354712444236567820323981213559627429745519918921265095805173063604120029327982794699037888638375112302087939627762772513341263497666192216941365906678336682451819391886067280666168796653691197256439525156441508389627173509718962907978229910638088138726177437846345589509796636671944805956246020411537330790679271121777172165099520058847006482801361253231295720883047460979765818899731510490226914394102354008684176630185462090045421207839148698657016556043814180375658562354972569478317121428181460073225624534729290058262678838538075006951042272879739738489841582110653688763075618815344999006755754919944760394768411282896979814327310810291214812061728906240554302647638048572066631991392070822162585825502334134985970657928133314122180779976398098391778206581814281182879734160826144813727933282383283150328410453371309207330621532559900934398198649482928240655627926614478600756713653617793968317703528732000228923138225768174098702901140910451593903517461952812830048802059417656264026281071194491133222786603738281326211125620874506711710232178445074170430849832897729926053740239158894735523755672055343871402276039023323745880811679565829719617901891490161461560416341806646451198133291237114494822283244937303356276267585672686056704877610767578758730028783487875285726364317116983727917544298756410685767212353296875331661903836178614462908086651190177770760455812092400152756958691444406286869463222068627576372586278166572984155020951261665063430728712222038963698646997685779771594294290440610474142496268826180160947610304784308497888431748339550410310856352508575532121895742813053451581140204744768543206221130357284200185020365266974316158880951951655916567073627213154721892142936749376338639351205182400084128181166769541400100803764436561253509430440034564362778118649445058514666228454662686777935256044995013044856511019055283613489930315978151035372392644976215341843169139882667729924950249225655327070252879250423654713873139439335911325134824978232196260941589530609232218898096273678335259152938950476598383134194477096121430258353085233224808484628426049481767916049547521151476790576625715686818520342991552586378784412861976813393656513266237963305363851872746783345054095061044158656476771895738771022427547416695450963772429852229229913899735497981549661221612009838040177614088025863378278393978437594740752989337769711007459997859616592718653290740298206913563451267249762513183764230024843773997007493832264899451575809011274909589055631750768441132564383189149030890881077007999010771009939048253083755890810917349536098642404503199087882969232265398723492654007852082020268965730781219460884217352774224574258776737506587062006919051790812694935742811600333353035248514696488634360729159652350620919683014167508871074050486172435749043543450191675749123241842689434223257919248234671075857847840239312893245628753412302457089482803915379167952921022074052484366345794608192912280149132038471835167962490099846501837106500473761710777463089398711960687524252599717040029261070145401985175350204056012039229120694809757849370759791525648847998443027409176641606243324342630267974449296719474730283789159840067511591964060040965548706433764645746497531202833708535452332514223603430915637937407524264363536207221431070475390281038570769097683074167215968960187069278982129656513743809741107854952971210957027632110367670757584782282465882588101980065758344605770916232767587198862191543177788961404791519485872920548654865419232823812574458362493777479797497079633672098277577168282927631696296750750415526907849647703433081755228049159456854059764644004412594064513710306580173320787146823354732862420333375300854190580527594700545817498405179896260462938478872968219528419676428093465313703700105125525300891111029914983210592672629290039164447009206475896999148225191932783630885048749632633718491895119023932156591041265087355318113479441700247292043158616158234818028942724652168850643202367427998149352500526905880839526913458495852958638269026578909637591251391303463394127624201395785905834170084849940335464212605640131178525036965191852887297519529445351408235363254617864547562576643401600780563123164909583215478427837978103449297807980056081788981316711391107242501137434178336003956568392310930753008402483742173252444957188562561508957527160767903809623921183369504766896858079588941563823012394520043585692826416397249587516170257968122030696677023839292448243416045967631342386529744318757583041620622773046006091653370918569814393189420048855332981873973239369232134443115164654144328750189972937431425286345133821152665045983316812247941232762251837521606164580885832771829219169352248007732458796953901262318892469962139947282359694243459523564687285042008589404710162512157502581189749566857931686821031891090755680791180689124864712826458324908851700891925358741808628713858564411382262023768257345542491712214324094684564896156800308940210062118442017902909143789959147369621710095722638709119738899599401029224213373407711206310210580365110227427642818607001363990227631686201250963161752928068951219793117638002341943681741535021253485985689809866233704242887390542825781163305492934752257130956705386726512973904319447474764315865194260311567959975965093162860398834026186764352000594564591027111782653708257970763117234125958168329990465906438186611137857427451677455254616005492639643877210553901380134926648104055085584253044423864806089714754736497468165142440299937557769258337394092002217192821391889966843710563776475838780046724954780237265867031362945539015776048284324768796624541767991292657241465837581521428821114542272454500223465928259469770531848528003581835331005806190882951560728437722932255510750794554777660966286373679400680372980974733966024008187700126349020025078081474994727649686068408471402439281415458063690926877276702045744650929558718434128839001254913372767345871671528940995226050445926670327145715025208057392747727853142601913606546607069896676863489020441655545579396327081321107039246434622107081110260698746918229554060578581875261750129209729844370747364560204597853544437478314114947162781732182483330892731150125001974974064328870584193897614883859787405345807928986354962804978473752095305034257709173257493458112470873809793247954418282982900921227921121519424570088016407863813452427225416128370245516477863215761047818962402850036665237649525859533518115315500444090017071488440109553908891156681201522088534843269088405510371173557395950406653405747766544041592196403875161810422394745488324344347225326944354068492691350414029125419293391733849007605184504056002039690326029128994049759656383943069007755428554167516506859529255996072648274986517968970349546496008621227578007857361857321089370685242454865114553194693037096759469083489583607420878236856445587194130092476104101813597866548127666700913825056631796748371656405154663880670741299577501278293621607280126064152448567588693496877456321781452408181412711902113604534630605319596687875646417120091375580153470111816153441905601275136557484133818629529860068464621242081344571451128584175000797775434328750080184175446076564895942295679527001296986963584371210072139836644540637963706673538621474520910620498729222816140557797133904436848106813093244095121018268831210559568494656935979897833192316014951949923992647622428944227855231209522369339989670526061235426004177382123662620639990948863770201310873443647759782429571896132449025898113365629463881160211303164267690163486286866791816337098945066308373285238980192694402795771102634503820977916771506511904149463725026720348050689614830258302847440852397080918383548753980134559585417062077039263166025891107186637866380820890898215225043572634876357058397051374089076983647991224719822168771022203259649317562088693667505597368134174797534934473503167496701357093989133747116344817404073938090129592764874413863646553490971708716346041734212799485427520474094690231669535802278358592837486473738832470091636577388711864200932744130719784923759778621290614644832768791481259433269271348882319515848034934898143500829465460283102029109009682822551947621350015141873026410564695407618708515972337450634106562243081150074993805772122054112964440928617462106798319555988695836468098415228692360766312710148682711402155411055843103666161204806285028360766705320617671208263773066253536256557617893074398208105900815962670359511628699077694162890992701259036703163929274200802142087848340824409502455951045028965512489016127308102208436294715785095086180939827067028047285293558302742011737505336211058180073398741419610348669352915969934960000666134609464366915274043933722454107018966715109748500034862065246062192135776778046160106708766265371070199433505582543241194288877407677038200059090072898168615997156313713562298727115468904729906082537957354622557425238884517594396912619807736873504839814191424499344396756754075155019362983635357908236733182833825108925680238434087969183723882632874322474879016162207659353528072100459045265911628623825252098087199554517032471437243765157823925905349475592372751743620663459033164302789295369317833488724204083869467351485020721608880999689169896866447609083582763550621897019881777745120804513006525938048669154571901997200948872871135629303187626270330685347727410490808530798358869014724177867580625707178309025215366940298396801684018075613700539464544961465072471532811385670839930588839845271948783748170781099647554469749391494177046513916040966975803653829320449665621990598954286985118268676469844828883979147765835402471106155848410849491961864133652103325486535891352425302246876934724202683063369449306655814491188234914628590891406029639123460622371887920522298044535168064134390689651058018938027795646249869064870722065757895321552505078553935366734254083192217879272069627321744916733003030341147170410783423845816038846535905845174872534651798168115951149084189145829318532869805547164859956692527697125368608788983502889593779468830745883211746762506028805733102045886606963196767231131968988234098175470586855315982541795254051740542119519042870728097706428682412714892557375944000614582315844425639743694638681141122560610287097238128792403525856206765992953482479292969508179783112339760516865878734513386299649606749034950033580262818384537700661266186899237254010137177127073375093826658189523786986545532525695086477091107769898994442393606763243885506973158528211825278144392926342441688871043926714144683393730336899797385896320723084596501216653333095348727570282150271257980732062879728349679095958987898953325641535584322420955127128024471445034700543001448664235900806446469660413823129501734667132845913399235477805536690701497623813668689008552995136959711710346444818543729508361408653199951970288094455200382549645666509435074788773991415702063294219286658520914798949519736694830093423694031379318082223211510574077869586902021612626828138577003033577383732469473783075762949907179668194324207158728882764333878988699359189112871681100816283118269140118847398318736197247751707592551841910556950527200836254659005532872133684724288069004725471071337869795810094291435534474068913376596786681231372494196913718461967083301535685207979505780512219425380826357473828695882151874723817771573869350666944953899550685622282617484044464847624704998357811419283702346654989130225903985076047748829175242827641543050765638348712112746313987876137649833419281808631050638271666915750416719197583301357293679214259581610355783932176619840175775966307133663881691121909463380530736009641856199334545009847675209109419055532963497622828754330808867906889050784344399135238151001011910789277562104114161300602013395394738671653365221501711633964522938751721938497212065298779619308107311533744954954062431885042018099021973980831833412170440138316578882975051670591760797739024279241238735087561831613238044239126082380142824193997064916326485257393557451659926258695605189452267453864389868163081294210384309244973784361449655641356516346210486650927234388136721351742357017950909645347037189390513248791100478113478390943279686239000410180324379540456952232964027397923008908710036540212745308969002598785804304228456335764536456960690893137958417646964040818668764360115115248230822431079404761762795171124175771874777815150721121468129843141392166819306699293024698845231840558730435402798075737709528099524002595312958894865124637099262669394449478797604325089466616644088476429160948026482358469204677663529705136514526443355689287684479158260755505044075910791084932602170021215314715582823918998198298177816113755828293234641976748422493997321879338077743981017361445265392913379910634208018310610314822255968538342585604149172181789899170342791324624604781649277481426666389658494456598100665053562720142380882129231543591042133745442978719922035104148209652022419682299141686371295037857656944620118915970119156076275321160918886377289637636408450732246488087924325297118109198660066096811129640299077625717154135790894963967219833166842554003198047927312425981850230301137645411849334372488324805333843838884047867382789063830328849726249732006308625172532032468331553434130146725188456775773681888310948718030176005381474760549803111309245135437685415905535128908550021405111545044612930544478568710309564503065818208629291912333284224611494469978312337082544935105435713246714953596190380735397603880020300399532382261779387967038901652636302503954881509013461773112555180990531112907368891680638932012088803794374916842479495719143600276413950753003557590919910199560463417219893961369465976569502700489509390334203619912132414091472613895938369260057480985399128610164662242699086264179294940409827487620905751079163982096776960757302580746486693803708687830227794567519163850593004859010266857555136806380556229358385444553905686832328576000922278125397628435113653504140970693374621995546886333627538665095822850124977199538145611216362841462960365870262919886045029723915924029524079716226941973804537002814711855432866512142026331660936255772640627164719567871854487082891146734576773869755779794181548942476867500850654674691509680065591363387059562724891375562896657456839944104653350320206664341138035750468028935278262064853342835701668824758337864030660446196237705746914782108289506265241945459184395365692934762915908000482982503337819843757734273369659863975044656211883833788753354626039632262349948063688199330859403813442312718964133744619164013556884740286964309195444197911305812011086171792257437945344176545881659377807026981510187568468586645369766090235156676355759792329997026679348543725020327730073949770802719047479850545350951678967496421254987155823309314702121782499335882604656262021155657875420694973210927266055730620674951116114149388966722853940486290495753476319465412746247961033774510761888171110271539268564042200183533108587922296630401997575291117998674685413216359633544134404550734510986050154885086408449707703465069335973271382927829539760150459274206383001641183130367831368911354296083630964824086046671419789095132316120473135977441943205588817414409876008221888413547039937579871017561718727398467026389201388652770329496600672077537245722109620550094204642662457770962345068399855509164974847092648247278878615429560930349147421157358234277024492331079855108243301256608713765243087437816575191697180217033068483378383630836396987309823146736558065292503092905318742381932541931907050597526493732281628695694637068666280973314370349136488234322708713376070661478251612570940656476306921554727498749525495691018290284244438905150507964570352065515535682097787908684806839418322922373602529002096040645529381417668246368492723776747130104596567473317247307634134968118810891238150383637899026359597778236640704753761852322070347233913624348302853457401779470338178639035460239172046368462431431556641090895790777842598813792924544956042119139949215178554152982689963792014337352401452344172396184587039308898984262043520542587660444343934658867051360213635426124654187453567780047456013271022104922582178756862459902290717397500148100631481075835596491338983459275574376760051152281557478669553961510198083688250953717908286042190459052005099385046853306097127293901706985834154998524813531799966418612229991111580890212062122312331707611387282494735022188995792421249101431960360429812361570632180405009722761928028271672753660715111061913661486315382856830876158883934695438694106608699263919649482915027839837743088422778743390210469469596270615990337156132688215311219448677500547068490924567586469731330229621555528490240032429743934818816118197357112183046302786603353948454252600468481749192225185809525335192131893864811910565920660454572292982245120005244983133778506166483907761379610516295357470883978960921116469597790502285701560957564940785604944412910569879336898294693593982803591221249447409300687381085654912380180646270329238615237749306203239888593121335568420712452806900476586453046796990063570552949051087735306364790575088372186434912742612598007467846922033949798578376175225541734291680612684583999620344163939205426686073049555952918035882634165247329898387887700348391412756392412243485565662301471388430552993719551244016312647088534432496363541972495208152294802028600784911667080213667697732197593706424983012356114293940333848197688864360855627971879743268621448013329988097029725235287185980834110429432846283599720319047869220434887642596721017220599050700193693388866744624237728232380467452331243840516642657809717435174345164042028081890762553435506103581352411402865098040746975159778135271035121506616813499875257798176829935690127106107805560353896437297542765205414816401176605749582271987594548427562714516111212829541118182604893048663644069146644676364162356665634647691069823553534850390672867462968555022440445569521404121268894531752188300990839338014693403590289953042250351793956832641241245304611725824617723090814520191636362136607014170381614144072078103361874035952146539224643346999525217839395029411577901574690878569520908298429775427566118557024293179380674891852265488703666289098969453918608358762146759017626191518578347120293891859000367156269022766824116222686080380734179284683282201548809834005551456987478506127121767453740568127020644737427893776022439443509088320639032919620840865330844013646004553814227848015985665191061044638188848732049673119709194367543630559446828807449731867928691493202693634922309757552446121048837635507488723036304907365260024377962485433747172723058917197627203673499178024952956179546948506874252173072577371386708732871967571757992946010246863011945689812534347776012788711326039441040194934313738726289937170091769127638733068929895355335882616714980629441658967543788631243698391777051875885722903801293454722842374795997067036609606292526784941589813727594694642480241376590875553257153636669116438618514868602035175557280474270022868632264600415290310758613353768453676304938578992241512196437019880796788308757976425047413111944775990842103070502859185728369785806262277658176840200839098146969019282686273221124736606218231169842982967826736211129880852897256243145359913747834792381822937764868417371454884755554528452259277807892175866254764405016075957057442342058523800374723923323121071402866990258644396024534513772503833615739504689837081487103381488100271506011945350376311640406190597158869591556354099550430189271559710264401859840629457682270761661187489991258995160013546013352667834198258567290515986810438010208015339616415004147964697527089322347760107376716646259415651807281085612235377396428352638503668760369412061473902642947284725663447965827368625666801259396311922230739153201338299790709871793580807586699234777352367511035039400217759668137424958663063618530320514655898051446898866046381424636219710811365995624195487551529795614765679601613397088739591579876641365156803533641199513165281229572238931778716379444878128415193309060404850159427380493988682639770491200180881036931556986066214442686907566070258083725508737455833013331549751776730064828423534331768790693234336887130709146044492808464797152331177695719234494063513230253682870013691769065590511690834895435044015698719601601599207457404267604189377432956220070108015799500541590626666896821640147719097163012515824091202634374397746658953326796583501233539007033214622551721452131057168749837888511974751314513675178780361552173428126754594818451647345718000084352191449451075699838842097368299702857874704161236898427870965376522729987887129499870180303650541426298032322057992306237460813797113371799026620284627014477708008004172275324962329726550768814413448659278409456415895740590947777369522427193493125502453789810718994981819568352156739147762697825812781024682351944981953655928342715960730461636901719429948755346191371490733741471264129764955319389512998586619047407149476644752333306833670890328719224595237032544635376051410084053161503476554775505753635505820097538665941734954010403685754063351468495942433306161621072401826752136980769923637565234787773377326884551003224256759647831950830048186802726890399298406781965271632061903629120507619833865914657154949159170065470090765194913354988097942212715298061127469939550032855326960634966706122536519633679520895030629407791436003328490839697303976610504801702462732526595841971460397730596865965023822883399094090092192056645063178439553005833176794908392852681431875109535659975956544924723563264270976804236468590612569767575550528064358112681985737702569199787092557923094635925151596124383372368340774006017246591972529399975793825471011419575449881589835239279190349513644583663570651736463252495700645528422358629749560174740245357092458516358161634654047996403598460920675930691839185582161865853247126228211310832597577614474580058194280788160904926862453559318660591445832672689514524738373690319786953341412398849192085684905812891818474142694113117922690549657697295716846913313467928617605871270534251209142645888008878780236120348015374923845609790098291433951559411371930566348466335975791885527476701716084211725444621529506811975117516010119387088450341837240105896148393246757970090419918008426801752126533954732515234096912780070457493231650774143825161682310727050179521518539965447127759780019473695546444900385385168226544169157829567670947996216103885386638436051364454137887774968400816707499752401311694067981917073371756908361690944181647872123810050858327463951283309304634866764660205689813167837811554570499770757858821306736028584417140824958937278964917771092864800280762252905648534847995027432033591507462469284515301360238619844095731378242229895528374422935858404307170677781387503810300325021623586532443716084197295675073397006219974498313303473702995483563730668387403763720483835786685270876787806720312831178869918182814377348430719330906840654996182108059572281296087190702536957466545451551324485311056173607183034544125282170289254057448920285788706490895738172487519786353832735208606953990916190773323284753797412581213867265306888067684515460017336124993507645575820550757355423325883213322845066587740020429715297562456152810958020042128472651063168598278951336836849121358619822206151688231211051966007357045869050578965655559138870162484958782770617133198574555545416705914753094995600251608448915186223767308067827324648608454364296288172264219898890754743588858595511271856423109742497097795174420460813247919068260675320206786974673749785399310409208242998688953370423625922609676724796542382364075571273933648260077446888421504570313072304763273132420235228822158766060438911295522613841957005537121549589488017498542450600748489112730534215171420951402726423419331085007036851727176647415404898813690339964038154335165323178376163144685918071107105691831973330510309445675147679165164207285881733885608220645743816686307797514428616938103357562690869981052749041203459983167586237171727947219363175562541259295792860652532716901761115950591463242404142278319911580157862504277216284344225160400585379247280060622871461147161620973062157119070938086943122992775619625662662729695916547849923716093466495849796323998796820603389376203790727130880317654205801731905082892036926172821374231368945297141009757704493211578974586630473580026843480758768407492436470513696657760001913836878229858878785642412685450142613062532019842018694456091987940543273177042390760429368936275522390105817084946637903602561639761936003482769152325621172793680405601318862418957494175415102902212218432035930094282523436519093054784269154974006994197092796487443866040042655675381202034997177965400169941931497443722748277868980913461090750446301877971181008308781820317474204575649705938102643532916927376601250694822795607245092429135862160181966277282083752491843759002102237010931951444043891204980002519528403062300078296122544783642266901405818750873424908781857650179476893190664896526334496735665427959965756840951430157056012692145288164633191605925006181775597457326706584276308740253602008405215219249246439276227431666268185616461134449195693911611595773479926756700713899149671807157436486361969291016933632167585000606384028234447964553887124583696890924380009814369412511377195197029633683631112568843678103576875940284077681774563555275185516180553657799150881357281264859861413580742010643047230810329449118662656923775452582576932273360328753344667249035159265751765525578963046315094342929309267317623968592610915758324124093535340113206754746257858638198392240238530940314466811547789702211924768481766099130652739811370933763041802045729426252446964758216466341691418973681653509711768938728388815891704816048158474272652442433686746244340288113170493697413651302847818929001275329462855822412687382765428322853413831220400676683092879883025771441274202003822799799428743010068392901773372155371577931679241707583267611486550128983480544661434836707619141633585417715632011106687829062537404691118386898454580695629284178874049663066443421691594040194273068606479731953968872245043088270681222950026623593460816183235049878034394330571684955445009955676735247306697595967322407192276183223459666340238745371247775906107985039296669272842554783126443667700807188469300207406610685871225270230968764594746446012762272657747853784633882392875463938000590339058199286451096992963293959222213793267452948701285837757399570891191001141725162421790123701405752668201636774923678053720022744555437658371163162312062010529590094490687142598021988632039758713361548734399080474360647239155280902681664158318975029886402896397661573402210767121783787990498463236218452094765395058243315629674443123612854898326076233974309802674731881432936087002150355821959067618341868977391343208671626877169474893066329744084876186567414990067232728899884718542798677291955990450837797087042980378801602258372068719015788083028279915386890165505278865121491550531262089481302360991725978584994318738339139742401549164006786531337154346758571441180933933004102174756868883780283324784820302828076883443568759076035418409474391046438008331961686878042654518690488909305297657983578054985207928894245247657729035208523444624368985060434899183276799987886822902368344445603987343944115687930478776389112910849118537345320417363129030038538526756447399896987386156767656751216334393981717615639424554135687622160742951612933211068437620438661161248186489255289822863815410072708420326043862302663273453372669514470645587253873185391878934858137778068918883893132067327903994060438718444088836875693129684686561216899579455626486604296818512909208907408499177327601865551468038266387703375866998598097649076365267381276223069934013449623645724651580630909344887077351201145038735936161994743245914309294498234795330400218412726289017745422162414135513864555005287488818828122759189457546314498575827019041852951577913295053802109460140533595374626775599776846653857217535469152376125766349029972638480272168436582714294957264752973921746007071653156895011906121121896541276833954493443361498771048135351747220250295591481807336689301065364198969704045647521483221999397631612664115075880789994297265474493485071351030302755892089373703168820182034655546806423669977152938253105168821608524159418407079849820563273780301818842527140901319663724552201987060719373543523264535631851945607156880169160723468558599033443167232019620024607204148576853584771501102710568122196866706521231241648653045898040315265369200723106236363579456622326749559101430260217165912542123423211553577505713972624121794600457493950001237007786984678993635090081597344017244162435435732061520565944437664897848818757807741379897961992819745161602559063441203052041172105011996857221877860121802781776939494139700898761257092486296142782189562343537965230485110011578070316789520371626442060968795660359791896767121271605673537695046588293293904009873969226451032331145312990390395067431591127899557463128157592672351837564266069204851838474137306528004667565993979791404126448821316348062185530103259563149964634252233559365301430353631602649967048315075094203778969070317766455031900754617434837196897062418520493862805853168948396813143298954138900394793183488732092583654197303984300643006291023472978584538614009402795414269643016052510398883519409697208847038175006347878954025013651330514031406913880597741347772970780565088283809800842474089392722363508740767347396018737075369007036818987190042255134826286786151916102491019291311233299196508247955027586740132642591302320726701082566166169018982300314276128871471360639083481112391110290841701879327090855994382436139897322441118984941068896629482053619522916477261813602117847909655726300027434439236319650587320450503116913815667816206223186062591125458937091721880742110134609534823794133481830150925801786924300445953882284592371357981166825170564318218075502739833234696837069245445098445624121128816536810561231390266938278251703612352715299518836221388170038392024623209570707048420761587861096324646714742978884749506483332508545246537830755390058398350584505996771465332082706842213390214874545230639067838827565166501813518399269189710853110633844999573088766182337925899763347909088426697979134556152569580059066163060606190320466762843193849375497619774375739696887773762183767595247905640842591431002056300608730166530761815514938155884627200396451154226032845355382934718110238130755685069033068086550502090180126346541163230126349402331463411699691118859656918037269391903212445068872521860250793645165968768217366657200309757526432677323172268938832732395653524737304090347306225416851258698374851432555143219386485839061465608917686546098853886433903654242397370471806821280342363917754226563687884171513633206171864364232380349945528399072131120000027585304802236319994129328238715565400387563346615933240542212404031497343055778144147608634376886213553070083014123726666866020796767435198584993939493787151052574076970965268830207445767520926626274861940389464984265944121194325080098581692504375323668723605837030372214898227098100870916923582150415672245116518155872178674390956297752568461199833425430047178199822204447590754101491523868355555983711730403900584698369978139820541687051272221894035634657805264558405187015443262582096369815576169181109774371260584340059257532892529708906431179109192121033960193443781622981948807544681596305308208995405461920538704755167875570512442352518175200619606494802334392591702300732198594558266616818695288851800322707049623165949880065805448025902993045780460960145528773835188229337377748293244849522642390752609359474707402193514216426077293824047650044705005466533281356985040715349591200315888396286842018275066629481642194849470609039039812806405099133179576692622314995019613002549145689293900302145329642824963492662474012814071815570717607142231000668938083949143187899110772505375489632553018471214089140767805314124189862559653608244923673472533717894623603235051988952650744508774729768206356903429151821551184423528228580683403917410482162473886535826702158478359049940604068912886376623651293807326690363385876019434398377866957554544893463833393935016306757169708546313921472428546902137508402773583842362732218154378472984626181310511990249845747674934970978508190406620851323994976753389334979058931654514088469185980044959465041371564866690947286538431854307291021590404101638942585879937331527984366576883753975912052023609653145213068498061083109807664665170919579087766095013767828510333797715429584653090835967480167557482017010969657238419893361786555890399824723661638847265275859741063535114202251982439880080443216060586075750457010921754814047668330592802376656962206420969030554785261099068932027411069378348128113130182446240352816252795759265725689203233883035481037189213357259709123636272982646745243412415848153892370720590630594874038901626098980312974847749052393150279921660138422996776331776290783144298909775595995444908449084068104243648767184829646619316854109674788064017408263895755209296369588893310018566403853947249128845156556595237276961812189644353429160293940646854511388258089807514423588178355021789113836673322567638306213808575345268294711597411309640995909425830442712334895225245449881909434389616722227702012115088932380363759309739189335303275253130861524937447219429337223096902638170358617520391693377129325588969768075016484080999214280995123968614211364988022431000462437295269449544479175441256767407609296528204925896206786832001715548283939774866568952220394942947528540026472842101731912348117848640163408234426224277032840252363686140286479656415773196341013815850136981923443227100120753034827166035591809279772961671001409675869078768007877943860352731589072085581361295554670699679523824352122012348622695476441118271260057265471288553243572242421974794289732519508127904543380822455533242090999580303752497462292904261968300797148892809055098142688343312726025573089019333808704930212272719868163967809844878953424804347814579547111277453265480460037435414572865557674639558245152505559031158685391886760039403149782679581273429417622963623045770021259491631386398102184921014497372610837271355802737466445432735828014732962327028451154881792845746349201740738545601874123999686884316318492853545230996386034827877549192072107875713055431483971579777160257340703053627543447883083782210336810573298885997418523184753561819669606507244588646102953046346640934555694060587886859826352933574923627326042380946349158110624138229836312493733192280682635691505631002141911614186464218360730172596897621365172233721320781588844471705017622495875776076273453860236262719404119509074482398575139022585899680919855815732608469339326202437272186335899285124911338401540998827193072893890262469484240394409891328758826393210340399380969387965213795130053097782862360694051040741641580161834866919346951178620075082971719887964158714443447742583618164468976088679356654876897234812149141369402633241504582216827853838473592742512148968908329867710542761764717579746561961676402090448645638017194198406773501803001145063361620667357054921013071448172845533558492298944352806443473804997899521791745139144926640616861170957765322671434647958121410100294106103697074868239639661707737194049356263061120905684832012874287738748103598132221578492208982294829825993667274629137094475184650022327440917611126195347770218997076780059771521584897305143182766938473672844607215543481036324166160782588598445407535620189520830114346510941388333756419151577271491402868759535708274188381260237547697024682988458095550517206259696713040136642394606679542299629293868649840650844985867691723087407852233119493020266137765454064270418053727397733625014411488785545743181110091627630420063395449703698510280559421632384053751255913511669978340082352898527692848707705672836279608534196377368628020627953720621018371180975924180249060698273369515400944070288757693142940222313640798277753508924423236528865656099532487961655744039217702909550278184347556161502195984153219247377005427993204638089412116340943018268535632329470614758192917809188232469427725965781581540261187658012882198395390421506701931034239006115885146314667914253469722293992387997418286386686960771277335959041229937931170491862056663321830020587014958934846929883026349997352514134478580950985350878468970970770250201408373095340624504357077044994889086065363560013855354501858235144473826327989192119877992524035381408038580957945235913878005502978274568680256286487057989552209159299497979149721632684504954475416525436526506577431401694472992910428092221553607787893608252401617607652507445011263871597161265173073325639332137545338889714482600102027279981985910722821598589544115337908396206339948423495023055087124522370268422331257863696850342305747956834629439201738202239980452537561429901915884809979376611965673010364650175865652310390730652248276289440662535728241138350525594275075576007310959427659255157657824749865414420627903074910992165160107127924297069095323403773567888554323376587646252122645830957488124467444380195629023417796509619799845850530019297972348126602749360941067680588179408368617134831796861091869119594595546791094276810155514581347014206306273343302415236318512899679030938102502330664640392239589413872332513886854961510909837150363053877623110903670660446141221166167495565725199208293862227505050045438925654263436271409867209263337374626200576696481629528694880869932969641333443088742478045179359608342841316439983113879075804551034377711542685502471516749100626081717789678119002780604867720661410795299958894923562836534386800151682533838206237129464104107576332581256605907384980919682651520315737106399098251449058275302139574069053884766369632970368477893034086443705717843371825996284619457412544114928002848466307459388651168279817384090359600472887334296614979388066126922913736283122685552033242391810995736203823695246547393587136828661518500668566091742130724869991254624467785206019651912632430843792969372101788547215833497109665133656476238457595385922621836030318874848428433573555675757554018010112730976027458082264887789818548242685971182233604709326997699948685190381815309257993987299485704217402001189882535483998689798809301650851215214957873352149866402297002357112577285512773107978860758296185379783801932381736008180255146781924621649943523007158078933502860849617296470654746895526300483883944545219675311502143194924440644437088158780696011558104169962859994436012436557178133468527406544613638869588810528433060861786335090768116312673183298677654453967120634509509895732514569281471074658068315524513188596101933723639882919630439160296572492414463696694954084482993091382844746258287487997520899971647299498705076211786501733112489415709572991447834673755232527406294636330591477126260751643801530513713615340593037747503509374409685021478091112771547679041743881062422308788332842022084390474519211340086983232677026184207632531187696403534311779169001188624123066886600900078063887223395664203217561760901840718460418482089029364646917761521619206486946808202573221383470197042809321793037263456892231107778743669368212007824800044955004418085005233084407002971854584259991367024630870560894839037665976400161140277328931543227594736899019748091813434921905320019825713031781257711901054413469969335193208187598499494172199792448895225891617009934511174271201832415411717210151831157186461777372710693586827675942993390977692323233067866820905722715074085807203439426688712079442289741704239311498708549629533154726718797816619448195721757540447985047068514721202534561022718186712050049399804290411307166250871596865154304443840116147844737985549191915480197002610379067074666345159584379225517879411741404969341638857488665672190497595804674780508338951379069734677043583902923139646907267564116220261097941204698430548505508615705435628232726027059772537479870133351047560573302015183949712735888022769528583720295733863520912730873111684198295599388476060225952593978427888551962963010053763065956939845025940447721201249269918465252058113776196046561684122309709475500032255119797798959160482578080194701135912098927215267775053315182547917175355554089004173545742744655491547319366908785804197557911017578546981779305997865474018470399572955049444142291093462570862739952742059725630451350576494543654450130016267370330172222760414819547289543633773119500391820954203215416671157672276226112472771269563188260885566759297274612614902640711122339268192732674011750060038901790652974144948639812630183428583426735380906183160863044115143315796397192702052468837593361109306269120964871323124361489069595617947437250511096003089489399893990466750455571328590559957592899717489728834214333196683138108201371244314375279901102474444775395508753872993299709473199892963140757369912708071033583710111490653437163527120676283668214006402563998036734601587155425715862261157246509582164801283388305377709581693928344991837772504645091422293849971918640089811447823535704572916560628245168108149701638498097856447736999655876360704141525602412013347936330685028728107275955045981946940210717985752565616849138971472922708285023162066725759777627800920192011525241587570754575485922217370688222552575004489918977534815095554842171493302812752746873927710217037896491636424340521207042855635672325147314193077127439577373132801032942905552076678476459772621603767412872405274041929813808873512166282302567573403511778889629012044698793552390456329305778268206929625328525121795138948220591585194357575177346250632852389391289228252748348687366604451433904813589189855804613871457614652927800808712685460948923307815350285146472959918016446371604292158314092665775557252772970324757355067654626272890448229775313818159433420697259157544388151071874369142449845107802464479953694744325608252130227091573229817863264135362220363632282769676608737644345037149954871266570962031060828050509039635148784716420240645245087558212066029090851077061862348922562655945837568758889333553646680949610334795107682587245323036246757791509212902208722775797537284182398984599240829140409858021977919019024805249915103840473002088512853991756029938942873421149451539763432143634119645610546532977818640013425089625588860663249838146016777674361757913110502111188996449480636800275100078607712904334473749444607676800922174933081228574484395600979110125634935654711135687066393979305554770413846745053700412815156127737817083205084078677295314708940182749933047675086113838075046729873393759977102502238208942299201032239359882553328893549636841310784553162711266237927921913872220061519310518799712876627020832515917552538247534919080885295652509125990271356777509828343660426956516849498757864629447814772040173036940203100626390916284279978527431384502309856464438617872168240691252927956479170733748045647324245899967313592143723709481340000636466923400035343224841306301886406004371129842341111078081993120006053683601461753796930730616297235765332594201907044848931982147131406489233277129177792767659429249120808725380238322061143077171163222566265187076655332865859363120096726176122867008901048119968125897862591547691106479758593907470260156986454328208582815160097088786194765315755632211821294688602003015317989632207060838104302536266065653909316326336626208653131843139054151747167325004277628215616686766546149692909245959285247512073865310302610888846957427709925584261692978972399268141570241967208579497876077187877087099608586598434080011403486727093842997229248212826574433552961025622925944297858414894662341091489314176718097322499663947672814270861835179426088164829956171712298739009099923538821981618260595570929851021983832749354739917455365953927245994265240076804690984058727754679755705496761336040191544920357337300006960870641400986865181809923648982815432145955373027627081368319025916128961866559719573164542032689701540991287525428117050294232732338031124847571907118323065627865600440665675141245010658991711214715950990242957391812260894095324608923565749976508019827235565253833457298532091896494410825006563823082704250020752936447063192022368957829054377863820087297095705270271510819424220408406343009219744031488492204656750326197515740541589820600535608261295411013965195886673491663598783405978019121871879192650647955197177922064935383978755458735907713363434817593544853711446495602700196656578829185836220804056890402346331715193400338899069440535378951649343890707629271189929708029497337779876955627868871873024735337706066412919912629031983575513596664033247112509878024461393870613824781843691663599361392513829433424698695360999634442416146578072734052967424412761614206125098464746120709386441870959412818578753834305846094706673329093895547341991450661198043798535249627842795705895510841197624600393843892967748112297898685379907919946558173860890440090741764279327861310854065583179847094726428219535253120514517926544721243258103141001300442999402753235618766802607731867198051051722486155726742983734854874342298996937286801244866133606896140375885600315480561500336534638019530109011519970682567513549626738022056980364471331975659522043138255725334446658302067568387250064152945685825531576337356522022252046909396027843333933154453590873700679157421534456410846882719782029094414750184816652408390390721713815285456582101378882016480220233216456631864605768117064199519239569534121386505882449903173541858396682414379218186907709287140150473980703884401048618303684653400691432496620145232255247853914360589212733057003788178350070709002192568769333522094047338319797808794156856406943797119494687831238574724092618156630951686135883294591039713253942477921685140083064744157141559008543806078512693474594706379132190352135308627764121716357401081327708901355055903263113283884417997029848584223517395662246337058813922739704134848807232318480147503696337254066566651170597549347406105710871717660800639314190812943252453107328212011004379983716799815477630608203088195434680172664468413389216272996665805057166797390456945460517585357226684005988452982261976633013156837127495100015320860716461079740728271300002393554995621663188269623259644759050950467428633813494211855733896304445422624891864848295416632330271723071320432256416840436429174533529748766828720420184538370484188303368979430312349891786721161095192434956538448886679898222581718569524894115287109764583482526930915331394335941191345743186877638191460014669945956612100288920826271317742472990200266687891080989431143034003365550842695972576493658832609140086567283435132746036961397951900744806155983946270113890072792235986646762713497162587979139872152650621369135364005432259958086557797499054715158625383705972638765858607792345185903502852337815905527530321311517895188210032842638723995185890691660642737128434796609617314022643310865267431797307172270987054497354158921936291342233050026483672684793156428300024639418189041103566702147536211568258932150310960843093432607765933656175939684492336687269803456566847063062889054143486700346676737081208422412287187496080763622814339807293105767033801141371696738772065227761249977823625404457135420785000534662753266683215194547873257029601752274792132376912875232152576293059998734430822374079247582713242039829141295529873148378773984775567007747623596194547318167151308773180953134177492496625315214478718190413319980970900759814145070615698356600924589931904292276980344026136124182420122536607481082235906433980580793288209322047460323567632820150303830806274431140600475482317571297230111378796786842898777195243294684882950473387109302220765747086617232659404152419110837679624389913478216687955520240791430407131693290616498781192743248358744979544703850864025465784061728583094974375327257451996346601896135503535814840728134003330646178485279326686990750753717178348108683134665589175548587572117438962839822166517928515630238270266006976785674083284054762427499751830719586194659567280589228809516046215119956344654013472622464200846261544518825043765111728936722541754212803968264239957911730842646651859815241999484808278034045332527324176294084052919326338313199063015758998769665357663446530327449359042478576599409388985174154655937444993012080310658467571013556009329757107597704078235946600967027785341713020201762187154033957248632607345427594264812247850760443230173056324353152905138916778119583731872436779835977010850738170741165952153851736775581273909196578587917186003092697524247477143918723042275700923364123013469907647373467561911433945562486371654156627688473340878636160366882449549694802125058682561067401171360066385891118258149373623503200430354466321891005016095925183608320337716175057776997028251341801209943467088408433445814047234524143328585324900649451404564769974061818395919386138077391672296837940183668099985276053156181659413131459430627381918653887579176302289546889131776949693750495981596604183257609756947199175083963534508556607551261064624470586187926483839584302679027600694893114098132546864301005054994481425051727848810674061286274242121079104730305836057943858763187316584441545034166383854314894522452318520802033462504902378362704249782008706809546439804637006020943178094896500859967350606437654432156318196404456402289225205898859610466579154760162656367321673695619056129778386950558585033984158615956702383396331378095120069477298747920220321856906880383328097696549428918904134010212830171742237163397537436801667690172261862257122033236039362863864880514537417143242820225429157347289485335824421171285018933065576528238621553143301493369124255611043447580007883363209195319564989845964016448638514138028152328640889655412701167297581165945655310151464174745846046632526513366728213949280683365213989963426897302295588817939866042010940520045397713246469461963998242052114382937476663666642494393793553406979662616382739629171694558375575184270851497681634737322615380700046623884695152849910482109536245917864708448298044249502897840580981027311004557780658628660798562686171621078056365485989469046393488552588587733470842396024043674936362752585203694278782033489258043966095963796421958873140013024757045096135161528940121573466586137842334212992796197375962152656670556153996221558294138700864777137492341499687017298189742538449054867022252737977343137925621980354372738324789113083249039575746827996532473261941493573265310709142125227980779846543076675841479850872139220112402522324671514755414241681924926190641931792603050243910971511865941694185411043021876526056036993039941673506798787342512599797001252091553583763795395300982733291067654260163617356234599312204033492275219582733150052205942506861026405511825798776530621162409181672162630620143597753686226990316220715722619216402998319375880829633955871908656872930060170040539553798174897431579004571262956917073210867124957363262212707152864101609251064182887995204233192991847463191443638024256051441473046165875207964397533489269076222095103059452261341059317710531767779346085318363680967080309968252286203616924332523483299352197516831398616908137122837438413162859057986879098583013730633540338189996195834907752546360309129598555082901581908027530286234424996568453631749457433415262409334447985043620275696841401829600577331359129257160829967793146176880123438232011233726603146718353308873097842057120918086838671655147215350559711166043048694719441792998574799216006743745539704420199488034495180958659277754025087861953787831810968574968742547557627302977123062885812824477301430054884457724532985812084204277793979981461414763878693890625347708540612353810102428120097853886625248172785627883613521092116340401089440455459006033237239320810969247007947432766530453092679007566653194799075030687157543869681586049976614401246500929115672510647728641497470464736232787969436943195245344692880603841216972679813160903674429505314454619319318785054107929309855762254419232050350952590239085645541019382269845253387603113604341511709141037218304581736365682212830575256260412245095123106286991139302784640434684814381175295142062817622374118740588384613332660487425774374874133089303766663242720826248717274809195316375995055578648275107274089211340270051715987708006885912534465968742294482895779796722567929209920114659264055522539954096587736130016336785553833292345305168996665069854002613971361929155741857201497438942879575266830611807190646256748581253477722983431005057519312355210685702186452067190055407490721674005185884321479944047054538989252053005287542218106265767276031760259901629235274941614553231664249604324691528723646653726510083608722125049261833382960630592758148631970862297663113393832562869056197890710197604168562505490653898019825681799423131649967379188566488037338439842761443840319353259488997341631594910451184897263444383174321443611697030663267168431423696774976830999557053446564546177699442659623320824161729894206650239539941355696930510347456870693288901787712529491157172664891235034895909431612862106970369881055341491610121149321511403405346913444425027694747570954223664370772426836568197996907030575134543404249807176426042211907903510582265858582309046180677431823123713155066615188902953665073661179632430109510346688634404792637952876080215811677916890977530595961341814019077424257210555294315435284592557289893562861289363111760041302012662709402365845946899563938842713125674415939831134694727836252263904068136602321128973944276290501326816360990216764987410023014911715506500011426437459166159255559237754138952443735970930382603561636768039378682824970592454484637154785341515637144553139528393416581013240738036948634185346149065140353786878890823086193325821299300180130334134965270045078311506559803107868700735682685103930284453581551820719896566277914425232408075123882662437766965427910843720485872990600423709478839340031958321516236677757783069245400353259952340362425865788180795091050367679251215263198052170764003961763047512645138532033000910778160065935115368550419962599920868768195528363206638200043754189673946645940206889269865562585556040075115660488823940878893889139164150077091267027843533946707976329418873523861613392491738653715957302311300813401193374184827425887978996758136091538167227146195665012140811179940052424469637687030771693391640678860119981006863817245483566320566277434402934759805572200411597448144963962093735363089767935105569851833266156959763201836015428425390215674394335180677011774604896965180321617038712406097433690422426465752268372663757630582511859528167048159560224898188769826169711400004856640319807535859895053539147395382025691323266967875096444749236315412198098957120139985730998901077873651990339082569585169557488725024056562790282041702133779134776679738866250923239339459276100303437006923190750642278283823989928418304751317584088392887114247255334882915096537294037008940301053297555973540181875681659624092978260064784512814261606505935303704090595304150388941878335999273208260615408990166711950149244870575627230968902232761284065607722126001098192966208779538355267296208850490590543868673586589140557651242698561491188435676829843677376324422835903054586869268107109131142849714887748010098876613095658547988061032010486720914916441551349991741925470171052839049980279173038215893721681707435260136626586674478079195791248774920902908212584280007954099544240036136359975713810049645941158944556155567122338263506687502641402375234692764495537351325419290236900019244904287053022353658660928453032550720867542096803999362395304176820496975526331480194480555001783548572463705533315632246572923619149099176219006924879521060114032778600872308726840948307495631900166153905098240113138376492740116099352635094876764579956147354933134261342330497432973654045962089744311913360344481005661546828895904047692575295110716719669535233371820089509624510512885892660300060347032465633050293332145688236581584005236606020193785924564204222469543047156431070180722442458714672916453734751784850497628973822403646784917012940752213265454469359302077601120641886657316576412400007058050535201686229776256988554889258688989918726272611392969595189567342829259353316626591241300364809856352516696115702747175625707350005565635556661193736980424591958563299201021180481855330457552679852535643430644753714246979284427999884342466497709263829492912239419465744187577088539135557581219579084662724785979749147818226833742215652885111067639397191393029119796623252692423715859239864167870171672583536690073541258427607955910017708341369029006813315270059783808895630311805904077094432543844335422372289500766439192374386084110705875194799000236863352887094291516453337198051039927608087023901524012026046629064705460952860534213519108759571309653279448936485581603302110264660999872425065994380749816464223753980694733036152354223926710886866360986211890498201066074737263498687488071257963652627819096164036191164645708865067204415450361203887489673144623793258975488234831818975613135606752011164593593611779815962949036504028477944821297415834274773612651604308349466953193119638674982363849389256024933914384655610643056952071296865428607741893819189715382315382824336173222685940867565294483252502450723241477047110377228156707883575269512160613854149390460097896708509708371641437229811321846321305338058757715778723426819439469902847983759986352955228437881163977314807277867365738641873036390714283261632553633086085623727922667402798105580104445225750977753106625512553575972819427427872948921026336141713515751664021535664903232168321249099526116933137912158374176533562956170714022266276545934410672727183474961171544683132087980465932372629033267550545630820123199321122577467886967340207018973188197731999100672152232994189136551299016814769550108136961463295366594171893329472248796362084538021231290986375496626153978489347703348127086693034845432727948369205723864172536563232655182505923674975404319757554461758926129217311316217655162592174501714152225183623699035671497892560335296190206692226398243099864531132032571401401609620737496205190095732772911226210029833423064850513628882188185839237374181661745883086215222200110208193549033928961786251265982761778701113645144784902532136028516635016054713506652197833616886203765065182382655586687501413583642099541015116359669488340622419373361916882311418319721173975341328860928638524044721948186520441816813156716575121867605583961094596192647234415149538092980815851408633754692440187212695708550513760013597034139903245331409037878790147643852696501180381039735388467060299502129262622812722302785007419064883838899867698648525061708490118480336333035850403595562751609504831204450336684224351247558774398681460507416002734319780748993538906081673818382648231704596986544133497395129385676052457512228791820472867777120392921921654994396036490030559168343777995314501199054626054683779216168387140050909794993830896770662382570697239533515255950398815268840967426391580349804033428383510486848694334305440086886408566530578341575451795861606826426938105325048042787815842145945312649766897317566311304779576633436880196073086278573729574521408472055089764327055345938851613229809377253142057213198043511769560842487767414743724917315800318020754345291839298155509368083004188250806543460377464613402270142869498038834956439890382260296567689082311224996807914628221005911171878100766912066761283257950072388138429878907114293890899756038770801878181136784971804711880116797589425752881234449985421790969466614971367442875019444226038049775155944955081790411493680371478610005604151562490373648607428988768248665657138015544773240143646821276162170768388828429573310537240135267081524256450557316139199503494792329451219411756307536319354496037404801802313524727598107724399259856547544866635637852154130368303347925647307338797563526989236288877538621722177252370194008946911070163365453190253207727169367729292250591517797812240927500044298279600606783715884577821604080816950752528326188834116962865426037005370535085794065965437528809977511893060058738450944712800206651321290811680312596102003834043135298543406333543212004163827989927382929448322098303204958495620956131305096517793529791046720537470994340573003811271574406131838905641963533039659287439736086613297808978560692049448090002168267824599522108994414743044723529222073869841589949262597718303785964146757231955588269673869518292823902079765739762143229987343271026144357302485694746075104513011172588359841887017293998251100748994967083072068250028201630953721115065733941701026343827652108595549071858769929440665867853563703500085667567905597897202771243177218550896429156579332402117266372758813275495227780678547412621270417010269604097642607347922291124337862672655653320554808099428967789424354895178451440280588088907652866671145502724151867837255066032839488717566368187750005031699873051759019222045456654437369418003538573710097526645305251409203172282740274288528186293799410956121937887902694634095251227930832995175769224708458457734132571712506639011741025298358451481096777709561555925322187937377089819827027910905821730058088868161907960054660472757893218192880340902216219192625485069856788227497910311384461414478590159808239014419518276965354577621800773519490303931566482628290563369368438201116331622834829361540855066421138019750703050552107921523502317756016236338350974720285014342686899187481049047254052658969708785364252002970654351577352058676914904539858138095479461172328022631851141107769544052061121164932012352078449003466128968242249037035445710835979361899958431204545343867279867560798977951973443360079911122073235940346786316202419899844350293128423894930250503716237584346329426535544951981203666944365679588371517641019785199552558233117468168096633006544217888680170396703625499517688937006836651076935697820322317725249229981183810649050219114963541084925051240578372997730846242547156553424873646700233650633871333229013635316695430487172457039962081054898847783021550495969364185407374047974807582199383511872536539529080748542053684210758945873759892324577879782766162519100972044197522027526829287132152972565394044889770955286207224097258669585136781795353730359617200773550578956319237154903128946116757198393147545762407755063768486683190592957478602778102327855354168215447042096489910054816730351347132924136263031732685539113172454342614914765664127641574604481112622049321377497821544072079396930642811442534204530337099221279729930302542779596677667335147132894742868991995870825692935021915172642704482456673363107990793497730418702461743448760824023305581471802286007835698242742122054719931602359324848636347038331984045749464225548037358100038105692246935642798299734189257992734394243641876130970408679204820738197339269231156645690319006281601900148647304839442803019999841734847226566743370969830812707479506593723197972260580267353307852546744716989781739516280490861123024077192537451228098900752170058245444461721645102697559129537483734948800124703541177799370430709746753677939603558305314109090342198031016679045242816840107519383531450920014907569084626997911854610260175188820449749113819998175585996816544772524337812582720990713312946855848147330057363405023953584217343518361975907578800832080781514721326724745159152978010782290092662233148386419718779816657792850180574770908396424442988605629071407617302995039389763352375944083399139999140710557699738593443398190689174930975351459586296220412060387417802459019874515251942933799285959449052334934858472180461929291072796735525992491905060651339588620187279692073219866318563739501344549371451628534025652266481250049014046030141645722007715932202087255691687760405036840458699801825171542247613376744067052246175441860445269699562898692361426302208724352276492718364018339651857808567997838510053265040007985871530838067553127995959942477411545659350083281015710711362527788933870731836507307238296012899314485038176809587719809916373691270580728040222728969839379831233785381843836166917795070747709337957756957003511009171598997687196438398482019637754717817449126331752866475537588606363585375834910355700662327482721362724439143974193063122631305411701778334995240395968480216167248097707291850798462634804945771050143569861915189891359723459253168327253343663814905430864684562393077877346494524701677553662244939388689518856904116368401510854132116672231007109928256901031950628239427626287745849394732738732908275520000055895685678822406402147302558828973163645347254690621339078819316484295697853749430172970041678366371622381572449053604097340910532884742993410915235627555947226297347661037053430032301730073598287632049176511569514502207108723470814731457356122107156040039038916953580886130274148288040163901735172061589366052780704715488784318482721248554053516995486992573371407498156860209327400403948063948652730789641744142481760251835910920859350640035322730439720655871552023662551460366797077326711066406169697450196863053613518673876678202710922880954637356795031345949442641476708604143685681181826474567862020448740132856139729989556644171257018877214914805576597653322566972809230789478470266178022688738005981004853984073719555520574723684613990460658398307717252927180806469486524971220323759518625357403099936641233836648153333834662055958346171122971508219583761087659171297410332860897446026535954820693629820357764221211345327637056059990696029981214545391101553662581166495867352217178544552717197175877325114852985888462708259950335581249114890327309005668899368459467758503931246054957291000448607486888809222597911428294048716292477675142022581174856749668306871257820760446719562428463732931162221020266156760036759649787061954762273309878063702878346058504215468826405450517017873594798294170654961381352093148778641271998231815123700725210855236278367984629338358566254601044831889900469931001567059306001186185606784571831176437525089592896282230641989869967970407281614680021880475009870340505713290830193489273912743053608303521551640987892434395571597643693718527053974558996002657864616934142451736974095280506672061347411734936505648607772408964366086369128384646477638228882306529155552347732540059537837516199337124076306770149238034440707252310174910613387920674811763070424227276926343189148054478631226611895837300152277003528681174689304160493262230341873107048390364179580413546172269398852076378197181555631246681955306893116821794451460504142786776195710052582600237736597688884013891674361808953085734010030358307054404025332338923405630095311600883407094618011095306036953514956684789376384093123172201560039743017319038913581930264304549440712090054147945941009642988003880953511821819370473278113108936277240307170401951866749948557598252604701003908991426802755575131257902736701839432066909979765968881997674355025368387958434661361563627877855782574402470554032349875996248803630299785416385547996130329956095765170785283309256669811478484998480369197608199331967133887334420569554021695120431277270803600041571685321335838183047719078212423952096316972920696687531337467788077075541240437438080099527201590759638061979018480176844745634718145660144937185184552355135742440062925535827545990148782176837131985525887740945290782466188689438286610939548064162378992163231171719466352744072713457820045197810245048501754082664344607468144293260183247628365802705589450668846878947398203251880251276368074443926793922070751840571211494902648234902046584067136402908969823187255474594191960147205481216206558384919656637193906878338468325234293779927930433451980075710381246482883637178673119626362389029415131756763772228254814163371023872923562262168204712161018042161511507837891984751949250411682329457891619599777986184760966667298808766912225747901097134131381182742406414874716002411774151019940436541101863446824779015970118014957559481828678086295182258516131173321563255250419610389580953802894897361516539147775076109431112256089271870160110062426376200816834292908020550191925934252330281740370921728428379751781362038336607697433480107063999691842771700898342947939294562210469362382108302284927107416424528788430114108280651983326932961217214461765309198312921611284999984086998806989174802163725256298851179421870193524444154834933639130895100364643087368641616415335450654253805727458909447153188007591550164438287392442645382271978500110692434367440231203701442332627953587784852298563779100575648227080755575705796841244049946240402845983280794681249318262445563796076259353418815858995899778513498656616206367260354102189447734060376558843060887894495036306672347838013480098890361403869359183539477705540955160121969893374665893612077299112551462234542223367514542804274948448087583275261350775399004749748485728456472301984556206592085132647478355695821258445131222403213104752036923672922815540992211654121253437969544460101468449969045189385183445081172542369082829331904043265346863621755699328719341298045878788754649024022008502875606831712398244401285628311066794771695156140726383572716412894633981801283353669590981853304126657045318397089429161673102095690976098446842830157866214640794745147180168482606193238737875091163118144270885917995436797430954691169751533008854750908039808786844984475319266836064491174214232542828833416343322996528508937611787512041081761194927006418122252754126143226281265935111207846199328621818396261185340472562877687601050082021620191157453156967011910371493896880958921656150167454637162473741852086939095486248105580246141459452739183302199172598782251985356190652028677924520613900986911608053661645270417550102489254188745994899749922520173708000880658838750819097005327515806003506434974455496374705281721400258666482139343097660754840479020579992476931588016044634534428574176431132803131437799275975385947811740155770831166448992568006420492789925778898765688976068256405042684422450358844286079860221889531674661351581732177764868625280803092464907318508032196989808474148772748096081165648133462159484356796074950721670975641810899596367231897502916512407578720802156384417548258088188543430936910071425198232484352174287087602505634355231269072616939233992020373499060376482031807182669203368464730398116697836434983658347254311814686649638995868920787317762128343750107085807150069316486802374789759073041875537562309413123344931126791919998848696226895708450006346391609083881702123179532963572950588413648650042270695038731936341593078192322009173824188982010873804584402914191781721254076904467689642109969851037755515607756811290537864128325867424657338777332288872141200496161543720940762982085938333624434657619919773715589167368624509290517225122391685482071876684798203452756596455485080108252819805159658442953179285737661137643754107696782860336734815635822654245204389636290572554412957576502790026188643375539961634001433707989758552654980252458208662349392713735709756298638592649088274812629044482958679813594123166823771257635544633795785562788854327858392467529661573533072496477773576246964302880330235355147928536091013831008362887811476875316184307978315910002661804211224483166999050751590031969026976902022967095313090766271921998981947788656875426002764155623073212073887226985021970732814725003172522470252044760775068179438101204613127484804698789372757538146272085858515738505921985574868393295687208260556843118128305769427654772814922056345978752697012596398746560123531862591473520939567168362430250525109940450384222599549959274806730959634843671648231333697638976214393324618365821220046140841980588347996033560342854687895490337282206096597733062049104391161345990670504325385160677619277640883462764597034691193226373346589714935786575631430701354240260522476877286223559824663556339592465524709527923905940640585027550323106519458728462485161479619458488910903237500302213621205814318306138512306858711178019927117266101511547245134927132341775564966359091847911430099697297197657456041159192224778946805558244639001831156493602581764710740610427626334253162321743939627322604209854080347778945545241310760636966928855966397112500045268416283187499964273358550156633745507442322510829180800348756979017437646014002422065702973837390150671176731713355014254791214399513222231952100945481303546008833510325958485810003594980264077593417916660947684955975731397405176739673519485668995207716246558119915751569963875479417446775701252036225167307554883519351745949107773704204181063881929355173594042472811375359359931839026159411122428162998292405685864295873155743654696757870043589990449322486226775038413671781809285991447884929222630008842384746834379165545194138012948822459563329728924364669460919500058579509083725529161410082715075696410976605553527613608923965241805336655329081799039206236711399768637051243994671231266433551343153900932639578407599552777700054775168113130067984266274219445280502740304553860398526115509965278098860681539975368027045987601999817517283982927068239521923846073089782912257124040526826913418118272938215686791969222178565579027425662520944854270188597819691848526591413539615958524161573720635670707566752762587527292556468890693519375089542741755661379339151689458647432734609355874762302636035464681773626987461950665403261721925702194937194964898336440207057225099612874722882016244664438052520233124852546603637753732249022616084894165326743141700407851282866893541765787730487606177306366149248418723544755470659019786198136807505609470536579558254792857589383090152753681823334688680437789985396431266930913879583773869233925122576408093440594645702730858143467666666759142755107640144709585396632061030470664447682763210709688812151700222453699497805513861503385663772679981611003162685244186492946108758697725944754869537532642305225292139612373062448405131793786803011236447828695661244913137388309677261786886020529120030082648297116643344756084103451764369611004705933742525243985804805316821891979992158681961090246919896816240554380511459012135699354481682260440601006733038910361579567804133005859097663162244259219775854562785973924665667938288103757261442689486251044973853410292485547646055485728625912032667386354444772327276656778744560883524098717171180820005686481857008464132628355597916238563603154559884913306076628461930794532177834927529773173203983808244786456796951859337167060935948638402868138353763095282269370995202279074968071286593944070474011945084343444056175812475953888435569489999830634889589763038239273543756035349766966869932156671977774344010188175775202588489925099441931914538351009182369735949038561762554134447317103212139654224634455767055334244829951196238623255977600021763018043688505469343529647605275306591853567177270920182062546015311154298491764835498896010895891165473201755717254802329527569223817427373421265084272900935853639760106472925663052027006286565361219567012230472174992187335304857194899064587707624507812392964594191563883845887990694742931419469489072554124662053222685348387253729360398538258877994111696774678269126985832232002748297235894172577499795270278846378217563729384533496970394972782651217268918694790321075349434024239557598387602146166802867826849401567068638562525941567470163307968683489669525898097502879054560886537022811189691162116454592256367776091716829181619036380937466386928018080861154328148081655063054758847459904227682575513037305845980561956290875878852323436662075515317328580027885957655335368563299146762413018932024546606671887256547679701598173351645979844458150575765112512901483820403076672281744834798846661958409458074922340264277865647311200454189024276817879057087692021202791789974820436793743773142806508230974537218345776165202997565954399793969318429281009480619303136815789220815490731172146540155315101063963420838458407993239373744550709179781406578070125063049274975394925375114719194497947784076881617808258452403883784057134835239064269577616115817172132188354436075403151704608539750619998315812559682971952294992020574536783758158286303345492227792821303726161394750370035527308193037849023301871612103142275874011752917712636257751654787267947654921903009854572088467066112632649356008038020375494415435152337367658780688889739764235694252784302488583774975613570790187968701214256352010723298913939679683009411557442578719891043166489030196643438249578391422330346759562789837123151315104656586028691272982190194515428308701639881122247702607301073847054088117855179708856598446242949106389838129770663238971428900985068538506782683229581305706609539697170056604257984797236234977091838252160375457672463979551278612448799673936899686212957214437086407224287561299504582528278701766164603904462106050142806326743998239966536695072289069261429930609229984619102276687720086899867093831566398934145805988888461791848076399538736547953448607607689723775251960116139653428119615247926534894258729639029107103954604720060339067253104913528898874227649399069639948426179566040224790826955454502022141428849145566653350699191848472962974211923296568254956834765109368570560435158758631836297366698941765229724752361814548010390396995579631342777642114739564129935715622885064740489258980666196285067723429155042459779387017639689585229686476919530049236002235802140903128439763606641535296146942848003227657409430112233532169061186195909188901441288914756840238578808716054739610459989836556587135810201854588935162219043853965155036369599773488891843926989408584736133903856665974225402239019202837445216607642826517393655702818273693022351649140295944399093523915509862194050400256542801449104423358806828509377490657372697412317425481127543270011036451724384397628524006289116585668757081214341716311889070704312334500853690024711831881144924383408286724052511462320591765427862642181810651056440149086735128260496446178798785379574312559440843263367057952203268686269132063400284526277398281223528489307253933799952029318323481589478100514528945908882940476529069223429279021957690491130268293740414294811491545759262572386038414644789275444999077512515890113410090281837636799226247985029845229703133872723740448438297799250948975757316192988564208239247329134483632793658506743075699897210382849622484580259151969539070312195171156145271625020466605448802874181671176399502289392811044874498057462917455842484232305649816713908066392095287464218389531997711212907711675285579796461333499214735106366268729711785182662550731705679695003506037738516049660588777853216966851316692408113350622883042612865944103642892532717437163660740042841676872950494596504324900446557377257411008397385248835939410080202569606970698708517839528573131188610264389529382714458719151779261688126958241142718499362566490634164062612926341915637212754996449764842271654725611191425037316576503867293268670088386109821502351405532274947277039947660872633360142105689160629726239146095006305562635826826491954225029906772617861614865203344499204055961456115947995547137838610872611187318465594239943712013864527395383950076274036172668304677884492234069672418154342359260969564641895451392868234113598725175286436894150444815947024370094209854630861076330604424497597462441166736077697106567001281301738117877899469145372569970255404828813798499846640615126981325355250540638155377326520363745201282162440037554181100834980753041911669367911718732180860039348411366752505286817941630258571536101365024363868057715274636567940366735893554214200855339212706185802916538765200595225813843172757721774806278572961016107016888876583080789940309479975520404997589678695345397116867410966243728545079136433231748688917418072408969326959640655170406950173611354021274101730730093549966831942939027587385215666730688572581660665314624920264099062097628491129942232045284610006426591010276974207200210562165673550418106229295643142199232359110520164855362945597046747867166713735090080421333756988594736776461926186928792973788076972726880098554334710939257740670286942591021563583576182446043596806550725425190841501411616207284399438800889745598959934266803634388377045525569618233074991478922095621203393324040120734690290727179488388765208885286703495045432688496282799116968792246379745938423678805366844539642281368218099062524798350993125130229424121567479510300632506518013219899858734799562478996689104384858301387706981255716415630250600666046061662417328722419722141415944862032100384788120153497200109693756717059479652968804384893536945026406515669425175898215891787164268426457286919356797641872291249186471029113970923618528359414947499369602945459529139840616629629655917512351698367029202522603582510660710499018568096835298793056981268295618423260775157537050973752674733092395860946633041829832462414768889553588720879317829244251895583382641727974730727467764024592101468278754556009100420269157035917994882403301096218040911655246777247166574925442597421462657279519588107037180245291955022547704699533171550552298022964793833020990026291600631649338954137433750577277240543609297826966497918137197806178450957353308784068800783534268340021974587956117401152967104869721674335762396306960617834689694170629108765542702802496735122098251643719023854666137459181048732084748879393095523313843949129437561073443477389013264269286756476287545211559260525985014119162102613078835271582923811572019964880885435416730752187058992813508536125690163091661344257533859938014877733866104440695938843776370163249876729589562862796719848843578219780190930856205541512954705599660128474246313607620762881180866359134176346083806619300750648957163982094348474811999037605681140679395983116281249325398059280073210340281323387047696089811755914179854518418811483943191048091730706168030330030843371987535055359088049996223103723925793648831825996394177588467807525001507396566926990098178073769334862653477302455811698651901148694964389464264892392812829632281441235515762152377909379876861605533867428079923887989260212301038600995381464791052946714351434122212950548643090027593751812667553819944824173395409382272880797755994830382426915109617148264288476118831450536008336418853558874265256324668442835293733237249147617715970476587684733288378869988298981784645393634849927998647073610618984018963752703293174150181584466321704051202441636252440999403973955928203291080747090479826633128340167529237533159706511675213273990005840451445276780077766362544247576514483338122715548063481399855102264130375843604711094208063197078439027827649232186387519694555343319141794924561912185758054695359122425155591929790273311631938438908423413055684965217584747680377361483842523813822218759326786518784483541412787792880301547696987324576087519900421785950906400911526339713555021266347876415596593028674846509223261400922404172349515205569218236796913386484144318487264889949123378178867480406369525173182426318197273029902887156550577906218326715867230859057863346410351692208806287120228157037425215283427630928965968026903050382685944329916685015084245645975947142029263705045497031840688685632583990319789840177082689640000313500935966919428410067886992347136306136521193286051278316873747415495178607996702685551232394945766323726355852725862817985813666033365183452630852824609620830252544983075156186107635283461935312093530471799173607251553811377209668399802896333912422034850714951334576978908780206579614211147635399206042405130131605437646916187603971781100438130585164837849616445031877405024847253518093403921839037113120842899659935851757607509918030022559600615273885542502955422089149149485177931807384918407631291468352191473298152574786101087832650950055643984750659930778827217598948326141630533708251193693098771376357688220884474674718815731084257062087665725125455089068055670355092853862060566919416828976699524801413245029032053202077557722224298813615256087805266421573787196981120405987010669004138493957211191125600652673196391068883164096126478923222629803459784324939560147041015527525439866324282701871658184978614859755028313519797656445579327852771224425774120752180630962712887073199787113705508990256766583249702851986869833809033367770526814810881476538603274746038404779591309789426845069200120973735876314943515314287321427167264346247937163310757908700166651646872574748386754251940466988236395308596463773277619346635073986571552758134999692302549091467439723629982027389516321262741827982702635588255563779108748696855428903510775553537499452916954776073758573002516325052100020581180545678299911818744269462638492670886066841192385287781096013512396335454092452954383867026405513893499802792681482557671882614579890208071651925873473373531560998132880540885246498870374263041818788649404142419200710711679134068914224436736533731951090489766042131573009478132670756620076482555332018210777527098338755634677773758733777173478090846308762748817371672383087127352442626173055771938518699150699784796702588031172414728571036823869737511026300661126037829689334326513162578329458976358122864511213859364092357173749086139133564484578097268628840539465516772025875147206229376930041181515232893234904780132413087805042535296944211889247885270049318847108588311778061863004405466694560817824628755457963271581850822874596939902916308266202149996000126438679930078038424597952716261652537641704334832672217984614195414399657604991411315463862996719215239859792462150829703593157365215045287832872874208558543986172862788513412274829128293814410024534366866098831282198135496282666943148895670759772982427085970763958486347495287736400885559476560597371327184048592919177285846800947065500452412731239542321683279679701489989414367592120902685726518888139365660464374631430631634280387691875533047663895717604579296365178110946522849098268766658613172458110857332632139912697277867909649489274139083646225601530496283642734089020897702521068567047714976864326021961764205995114304811284490221699670589544025106271535779066597400065571909000718420105848544310558484917717846491057444067716180716497405714071382965089055040951826417818472416339492767901090174303859921219802718098864786056295462450507340750395155058942026487355629707495314919833495148970009047539415827435600114062170037122109794382007702860318796220021814760775328171644556338692389552915302566462240898219029956296631907183413437203428402134772797399503181222651150805257445782669018679331825887965037061875767909578077825505725653847808472862768197985024894490636496228825077818502528978930758308746227239406248868826207328496571092668615329217724490861552379864942216190484956363784277874649580892277251347457377267539711908691670868450420461383005864002427440717657543406631682745802123704717200792974967125640689981246748458982980856244068707331661255737073513325174256128782075171007283695889721321538933127773498282127837183713774472274979645762047700145902122833956532517696075263380296364935092403074110035812188547946714934429246572345694289239685132732606662895867896890556046347555792060056322401381180527555331268917369191293620497166346571068008598664448100030100235535665334640451389621771628921633972162077567233579807248566949219702600089802723297494501973486853071636725400289427436177744426129155346078688879279275393108402014800208172753384186521692272934948071234407664765983969493610245649729453934061163717064156801648936088465033464312242379420657816385841785751046078637053506434044153861642110478253053825067747754349428956737357762081838449121372233507350016293304805953398851632121204980128232848433319730893549980522694919262857142055763435118974742533130048799503627223459315441446212313411222173988294122069177056101242139181532393531444428888447431505003684999310099239431155408872861292855670099469422189032057092038848049516194885159556127233713964187654373073850888356616780525561670641038140130846728450583020635824344137959783889783553215803413588564695419055939186022240338627388351739694355087343551417750455129941691615717742010777960693483474580634918824021399520542678273378200852505849404983334085317797578368486445527869220474570767958446428985430088520676482658512538054312764397581151409963593714023626224035143919209288826624520782812170649391666725010842516861344718895371219909742328410652075742067450075795888849813440667959479218014315313958777694149741219625192204097986377548367409717800331071972651461787177089656544065021437186579020532107367870490898471245161382478578552996711395699571468721437598313414270085189653147845639594711219010322642620817548477885758575855308231311164088040588997028539685649276176233224447571568480375085787567088806628895771304175910848212323756621201029983385047233824342375565395203570634557766933072611493225692177224445173536670375625765260006733169887833226785285981458858800028576032121506888404456165359567914141840055602930076509700032248982492571687471686231097692915188851555958743024691013024764140866373685877986820498938870924038616219221276556574774454611418483590060213807063984923497407066436603660815832606329537059014116194756267964145266631040217830185130569619725152313150194189045728092899863187073300800884716296812217677774246577516950276569003974554956557161462728020944122569661229035522407541595961062176911544893553056466080577585893068967329299106626233151731126380715950888803012264801090133419481773877866506792535234206727304609798065897464505107229060256851151596089851663005728339609172692885807491712074464865658449316401518036083088146175456453173932168698047688343850777120567354671759137361575372371117791835459827837498005334066897931082371060722466258501743299272998917355348821182792125013447849337625239454547319130114237467617222350967437985688288461084916557181280095948312391461054810441705203369344453923983737643029061236592517102110091878780451403716779105904776896635349354402657947152524152381787014985161132557463591050592369246485416305573421011084308114706173087163730052199595718833441925413378480902171715504226965578743660131534871626625329960293232471573015377669114847795823206571728502245449147602247138782691889639475364263520879540686395872751869425502560572257142775951505344155360085898028464488696225608009442483633018764174634927422682716113270909031425738617006615819057269831273189584223976351580989544557736065626850683081720502388195457728443502292397987853219258789274448952616511735821150870731778574712562456099142910837637291056687477157768957591444054089341290019015391516542591637585276465259639390889962413352761281617148266086761271551152138367429142346165197156593717589226185752804621812381348020057436970908999337782416644724807649082815532365361648395024785002438497833310481034174656021722377878233421444923403146790180033832005408660406434100251344204945598412479294523480114620411153832890091987986730403226138009681807401327659553225277281053379841927353461408285558799163582023087281087561015474397321854420161924904288567530875713977967293426820488538366941299089636034709629522425503117862035349298651203405477844948012998109945099916567025133832246885424625596272346848692297579724838854958660476254926108980735095029427470185702915141903491404619608682782886997394133487135593333171469225164782868817028253958403829004898038889652036809810579242856829184177898315863439937510963375750259626956324886113472428503102461623624249151150766962928153427267196093657649969591267040159579739165201111779248302763970715412486838942196693872412856381872506919974391443823067052117926001355384157225384609203565396095926226785182301867505897073216938532625772751616943103284214192000903795834398313919996930493414082514865449536722723256981961804832506709252450675315381143940657665326279450148851878970033327585249840136224744413843491459084075185825847682066563233928160917805274707229185975875994343541722437140250532647178904259983138006873056314261738259643351586474430292136745881498595768446682921615876653194852257829971568711845466686815090085596632157176628944643357534481015295609427289048922119586947131702526192489322534395818379591080804014646534739696899733672314836504237447894482579330330439486649944517229329339340469946940849824420921809665698588095058090203368330012361307319922802665362050526465864986778450714781821334869590701269207011602831485802507478336290886852294958470300029048066041411647937888944518799904260483983027371842918879719394371357101996711652866599779029311407180339866349484619965225925426670628203993260911831596488794201350148094568667493545649952735825192533027935348202045641993520552221348302487739546610707829577025752593592690479057303887171627756303007619640523883406077219905660517519943256625504062868674511462473377025120684108269530957043163473287938311638205290242125168200021485335245395440808087764272057944520560104866766123338326188816472128501598461339031375067696754580590302831559205213037816725658354958143482893003782553118359400834914362939016737359678147972745092007070812944112236971493006514758287462770269789453756699285870500100236087705740560172535124584659649859593035082243396368557635129521244015135486849798666697588897034897498965211041717335457230001912863948319002793945800409494859415451118883998038060867472886075969320099714529977540613153053896986689136344147514560970648633827625925506161078664777069775899554329852871854954922745973764072246958548768723023341227333827941937345503720388019254488444707866733047994413139384074237720716100631333679570520030766435076772567982745819915084487254837951002134769975469178446599221444136667302204027507982461428266568050269911486932507571237762275099596595274906058649599797821251673638980202797054003652246178931861487907581274061909598486601682472613171468636164129001348759856097222132124564600052010006301219753514432493631417241019353950665505985041135144194120579993597729950135295515454599203147107283341106615046779512919606184688193660941420702855944824398438802939672744463393139342207864857216645905046061767978046259770991630852899526498888675777617123813478447989692598180595969351357138279693700260474808364898778361057055610468506770829425450871927982547762696615480760116324924051539928740428680210002887253695703504667663075450601466828239426185697590083158278467896553580960655771429636821400303370395562769581685897864830017541522413359312608992917203016447204032480832815508964691060953310378257585616459624449267661146395462234301154711596848601717667279212864889381136373727696781110385929226704694387764302271862921308820327853345219925770014453956082255358182810327899534641062693846533187800329535435996617491340055626756934564670771412749667802641780409297232444345506638900017916432940370463534319066178737945630093794437009315664104544044432204001492004140382572471726305470164021650717161781297764683290447414829420350447604817167765147035945351926870937705779153332460753328533542872259964974959354480111560754746449554034859193480399771184222226178512193695607945871889644356670524528939599424305076051626697413439568743683804986075374168319919332284906990834954489795698440252297938432760401030236420339058569477106108553777835186432000316714298316598277475420867761007188374295527644953960170573312000380386712998174392465567831277881833132364689677548585957398376452357422774308692264531049227987008499915749637065596885278528107834382372531170598996196040968105935559548412888012498518259421829797831953942019858104059483622555138026251974634502460938914180466371815338878979496152472704971169470799600159321411116687998736160688907252398354015501059770926726729505009160911739331096976150808312234312363979574610716681051526197152902640514954597337224568159090795669641328602363900559365391941222943161733451474586270491976638424191737499953994225266779178076655724522427761383764953107010224621849776614930078583892649184969373706671911809369876988094655206826094251671993078631335636350206896903450380004264666318559933525176547823437947908798023582399442236826828645886669443947921737795339537147473180311506468594829407283507329148964659544891832089644292226223310540367424456748690023179941286205374713908975424662584898947056440864674797104521159894786762716031154405092180572069181201550586966132498469256147928718376791622314187728476467968433750229093355337286700331954868279714745672485272376735978103220493716263224984703101603797150736401454744269303348939517595493534188241897415962830921686329979384500370734214979062462345369249621803166687768438340645230646638963255155469623913186487496503675650905961529659316220914671245074603819804874029298068380895938812834866545612312976121135057348931795654822182749061375190344120265250551857738885857210273363200357576640689487282477994460465868243922971044665136256802245512894286006591083030707795008323872058532535174478480743782044958687088778272394784443636745303249339567200463330633471818726674857540939477905764504571082352374317116176698742190500991863637138646847947906087979349877833627613187869866828251382640644557750881380406481097915239902667358095051259901474575292256892453268567414466584041511142552674352018359343103734338217919504485451226430681615579477385745423772579924931116614864201551875862438302197985785409502191036283451778858652555115622920914380130619851037017396519671945281088911939624581894134425974853872121574968614762980041965176402269967675776332533871949938376191501092968928484440808874176979760652657980079194594796972115540155945111277757837966273115558595036948876864666716487428293029245264419398693980789919825738957993381806222470202442865129141681399885675131768469128292231891002028615356585267851367825646532109234041593264277874743628037996565351967296674881766743511296610311973814835385416138801915830293691197803853540409724530630479146327857405267974032948655007740320961732353919897913212308845448819728441168914283007007605999801346304357608293024583006559826987821184494133527931761193765523197831327955248003068603332167438974721979955689295413087435343786538307730503150088639149760164885034543799675376668001583224190837303518798222870089481610636249657189881454182261985300452809577747118664991388714758088281303753975034281163216591430683662430200456830309560765765376318289308479261763645953293263679861410982996751015243670354031398895148566959097128271162585901659227127520852456869085922117253960273999045198700555458742077082364683207982465774113279193264580159878671708014329769896978492627259285351709252412575740374145066189834296579320763427630392520531327839749174799308791433148067073580918845773426987815656636493491753797736565115943534659694869663203994022414011167376059777058676785795206530523975568950728039080539138403036731337462101129568077625073890689370443329339783362799876619353003634617367804011494993799458550913861958137762723065764978369261936004166392419882247636360914536356251621331708240818078083980981442265652233037949494064874749843760185996643990407277507181718281884555426041001023491654538372308911344195935489241326987549791355780022763896880004454072854405684043889090635514076812888684576647939167227744831351055583648138323836337459346261216179619262449189845684497810993607322306522826691527244275425921161006617559754669751773357952321377511322146542454971812946713594123282862860440672734951814610869696140874108701610207042679758176203087591323903289556252654258690440608802969421893999888683875001917296577551116996564347670181201196640230233597892843229097746983112852463853887638464715487084647749704212221406957867149010051650024023002658526301478635764794887290239527580211933502531494115685437910327601434821121120122460690076848077772222730462854074249306950234146419654970536177824915983883491916517134477844773404847100029754723023517314424425054846155888269676623112348433290885157840252002016590441444900905044393414906685948698516846148175392381731315085803682391487598732055439691811049184322682926401069948770271943100931133904509416469828782097074851936132990671689495170200797038203859760702176117117501006526721518588587472792327115054854746476794526857943832681171733042766323198715325529060322948602143012287631390303038063453501940278144734440012286223851201990884164564842072904067345193488010602672234223114575135645748297489376521643574060729783523110617110803954926927044409728136604593242611442599141542387665393180767465355875561040410901823991035507816508784929591687927784594359898842676987376916290698288613492023204055807377137351530519888716708660306488677735414346227497757923818528401994389198746673440584192151589876720590776576805982194450897401958799733541069006265472194033527705754257131588910539359266734305383880588506360528326773774356314451156375886082990420596117751501693489975800324970104295495353791425356199735602706440961044830093453713307124409602283256986415870714836827022571088149598398431756833857353732947333578344218029464783702032838570596278047782456991305914624148396798803270893117263071091112394531266532890209472229268133098513206513365400908645922788197347348039898899831868472944880239373271535895767812964057566092843729762979331628880885225958122696402014034719205863030952116629200426574858544463030191586343132336699844545266077003588553270391966914162244058104794076450734519902479309491495478775384291790866026326658416630721651634974512103681151538660071435797884637171084605706939380332857967673870172987469041646760909395260205616495598821831875993533339884129976453025226002174269715505314059008746762251619897456172668182754002692805813373946140554381912055029643388885838402612077186850602124254761723301774730240705217952432377912671927108809415809839346310452952887737574925262331165131331286096349833719110288226171370892537409527155280251893751304288988246893406964202179735420773553876406403186770189576785153631584939548613370580686558127370264381661952477025914013255146589621847998751941476234942281138016414020464513162135759955954534991525092746261630110310565366850027727222351485287179516399416043300950319843592452096517650909861073534106053739655102911076481858592954189293482090571998018545355289451022496950789601363909609857292424355327833231573562785619695508572666201926070712195124542151119191280962484221867354412243412355574741428383071862246590097878286971645998668088690520409612160590120315438032342091409988926211730775956879112988149059107351793049195278581479461909297888985969963829523865609855314636488564339816928757250751122056828069568422875557270473847585996601468983425292680778975974975300276274387711667375405181805306482364069535583199771467654308422288607167566703304523046788663865634356963134557630875124276144965717012040230744856895533692408518736900604978896993778935974708797379692054347892377409260211722574419464183124923473098093393082415432700751658087638514688958282450027460938109535910805410632637178940459558753479546290402644822212416353500982804700475118914218633337534158910446602823384547606247934083488502814459882079173532805428425739217022116789075868264971017749830761881435676991108101607326184611538082256722618891603923819700309456790628275090273843853362688102248037371425938176998968861184323005714655725536435929068686163878212200570497684420800022174259928862843586628777135447076226631144782143563882351181789367076586473953711265758685659915226146596626819477740826321533546760335895519830239123453008890868997753927015109035261151778944305414306499860936915758036989909918067445647630040800421481226065227198848613611079983747137472879039425998193480267793551995138168113270252681901757728266438322601388858861421106576362778569664584272788680435354951104651818823877236681677325295305879026337785600998521718984606935078981972781790152424986791908761527816934396491610199343731997070061969489372020893180186601366049559013030378497124208121997975688296719351203620884767810177907063528524171803423503257132643133811386626388398903766608755020136917164496888700288053762634415916447694890731295488255182867842631668197576277113765122079410365378707033584715528174263069435513532377740071640556450388615322065915006571697102952913115386421721215616551734351295041207787782594527106476757275401356387149938318165571988269274294081114333944318900811788527523234688163885374043004148290234340426344571662561547966080318842165433587042038772819012266430253761361334901760037716694429956490636204223117030600336116686508990724844815741763386189494436974177497649927020351906829731709061858806737106579622306923403909802316744043801648989045222960443829253724872964520154009152578026668892002183980523857620961202230841480639576082488490233952212109627333769327251534140258327167621106159475110380612851843505705396386982404972528855978140002969691627943985632139508079709462553679799651664113558322944423519771643246017752009384219164304069222933771664780147497540311180116616345369985519624189532962764609292716719061800884304289772054172438234824956674737514961492440972448112803430482282104450229068307792244482197493779134880627937245727806008372984230390782553859263572234324189284241837257736120224859510527179180250464623900339365264488321137681623478036672668124568705571337315110427978928442003414187964899298828068298559794255606851397388615478309549243695270703105193982037213313675076372672514855226643043875063666188379500410335479267390666702437014928232698261817393231912083979915364035701252707076441428235907400372137558580374105032816520615682837911979548779979501751629050251925799874244955998588200693690635618179027614056525679952680018182541127484091272031205120882052879628179841071986606656421360848096106024358586404841962276821243539052418422431297088210341377407981057958911658123815381007587830807979177120534925647770491722664150988517356481204425905987002501695574185287310552156310448689065923332423833720129964778157139382635990356029484852782425990061682528668874347133306116595870336980719008960823897652829729940064332802394268752713461343844182549057020579948892307435715511730262431534539496504286058626796316243889843146903470871894981447792156116734481088065453308714613114232187722905962969324702484227179978447327898047613645001873675352331761343827638193223759925485229702252810638513673813371556204259422777786987708164684654739102401215967794481412961051319244674523574996502024898613347888306671491566225672604318320920648499353565572502335055459723680532724308745536497814003163377408936157242358600774696954802876963116655127217616917038636891597567634376730954715824335956771098402609523092818586395014663396404169859975231515276383023346530217327024349895029451126917697329192517598973573461594819880103904318713751840816189227476683803816093128066698650276206954594825494357781652315468126362672456408237540020993290949815130931350791438065574493237816940870761285896635045694984244832749705100963746492117471078630330760251950690356717539825874478532004143604271323547469683035185042510629676837276211426231429093666222538839418061237658617648329959520850940294276296256733142404695181190304269371731322151822757963730211651457089367263917064979250072841689838072074638971858934281528510811344571797550163646130191979834820375572181952925235955838095365478858620101761156262379405753612219920036138560210663632986732092392311121229372342878283730686785121286281077811046623018152567323762115186833354314701297387439747283921819505295856666261757545084750527561175980191193380476002132663150241424017005994216203884732275875622492774911733010813317282117493408887908476552694806242842991306768486866132093403536477027579804127548456640401522716996985583647638590433623372592972058072666624149501062468085761418231752913456070155850489538825995917770821173464295823552814314154013561745095103881852635586430883814984209325745540871503782907107713435091884294039567995315332873760343140067525176027587763417208760565281379033272254483280958527359600913670433632330120046522967193407103351734303392658836064289739918536945796130506266070707722125396669325555306026119726212883084926158100975689362157648208620960893790257073930707604226388473071737872316521457620816421341150940796506644292125954908821732217328295952336770121244180151552854131401701557144267813324454403083587158332357681633115244918849862735671399313550506168473915625898887644974346862125696294783757146713424061121458375873000402725891609576059266872498209047996365629398482177605843032357284510579445790411048469974156992890964909844535418602951420367701304309305668274391704339779148097917850402258856795710110929068400551944909159147638976895099126745582712806792344634335218827513492445018875730217096823215629569608585529066701852788410142207735823131499304671848086273671224953850718334472032445958355375637497587883138326456002929583840226539803626418478651583314596088529334728333616241141274760261357264416621484508178456750160358208706134928584357044486316955016978257313737500147915066514256520167224342837223949896183177157390491383483159711229179314929745439329966656212485915383653403009676321415093192930735759034039100912327943331010785862258840822261841489165493516171971797014884921858135140032034140689910456110598064368131827757732138222340630103870811636610355253673518027682365662744217799594973903809129281272942491081526165597929508048320414283245114803324620026331424296496960519525829182372207207371288230444105981810790473036980952200228613848709096212479190183419213240161038696726507713198481940260120509969164673484887048688756233849239876275254728559573766973195350496587118547308968483558937739499931927464048420782838180156216392952696362788968810412010418029778843843806076577238492767955277480490623845204040045738282951550115099835144742506030258579366780259522951441363809599518091980274591690002801252958756510723894943635375406385136384319553217589259637837454456471732189217081452793618812191739005231667952074707025030113004410406409986744174423479170579880166525489596006827545247063330568907270051958599583697273139876687481741323434632753240499348529761715078684042904366902250631553318570407635989301596029372496719380207900142205456636614770074914194218264242597571775148464056653676061621580593282424894336200402945819652351537434765808909455250097028130675914602643631961484966670804583586028297581826794156865123844466107950308156223612947948870844478916773778645843884650001195392131090691556685795783623457061573892743499517693985068255894549883104666599165474363239480877657709311256663594599243344561573027503967094883179531927453733919198026447951412191500095907012595091317752364989772202923283387829982043918486624619032495160612859025251619987657215109176499159399293229194805868095592070962994621623890436863076051852319987712065236229144873695615691202208598480288522708123521470568766571076515970815732140032838343299461906397696042245722527969228104766216327582582434563086625694080773177509680952614168524489936697556863464490218152051240315084501534187884311095553544948023523001461452478403843771279035691148244561951452853244740116868944605479128512695742405850160795498478639603645061505893789824500519049946337943570006184966657145584053639138224536286392048214275483718607601524659687522029248804015185723966876366596884376490068529504121255879065014909492896427888480768475535817916480240086042066995954679014932609552269174776047006830597165712773606887935356886700204180069036952166517762122712318937155682376590049700053077473943168368266022708868954001317237224786080508599885194369005101872896071264531855459375861274970056348828920474940193301837846563963019229438494759993874880947649551384212119500471588345959470470431885152389876510761097213769212255490914762689566431997087703335485650247525476912615143985618308836440459398989170201766057272671732501523803763527586753952476749879589105762504500514178089341014449077698434555267230505365136970121792683908840548746433695668896501021538880386187152393053695546427509196803712024082038047431562866615428530995961141120642102721241150533630950141039867520329420314865455374499272500929715042670125851366562009635101392453895507611012401794431927548887919839392388470520459995753689574095688183817350197209939920461586045216349660927873451666956688909906663874583992645994790006035201809044654529173039543512995057221701564428125255086291352832315538999302155174122844629526352036114735789163722097548408352626528034671734589208149898198851262258607189257540727277659991271183519377149082705261706291265912368663816375540285349835328142211522798447519486126152803817936909790212469097766947797407942825697378799189947230660098911804986399278628656861095818645896634055138036841619049122865296613364952285822166832801655189885234092442910055400516107379357032853709669220206984245742011017526009764095325556238337862581650921024140651905269814665019609567336470073231874942116788157588778493376818010450634635229074933660673502695595150008097324901643198184350282800155241294140512788326313588256843737048872661818945087995319169030029226636440315974630029659530227079660392107852431089413208778846817971767950903590751516063954163526940859840671883745054026997557475354170449106921474832199315926482401813040625444851589596020653341210429434059226619366084629028581429414816163350729782004019603242726152297156764136706068954557846926857894322033248840476902682511766783786427625241046651388888385787469256403193035553643765347537526323479154000729073749762570277282179282629082365206054311830146839810058093301854888989360433714314334129139557356623955197944646411418464159448514434432674606305243946724392472875400546142567651132144001484714172013064530911175680799666540140562225344298369489218640636510015869748340823150446970855206334944572933524009899778170430906311414583737082051569121929097697944602634160523832752475475007792249350560017038572581481167990735917863302961317520991012711092854406274974915719464772818485391100633385128207673871404332730464300629522404995134774906683054590300069364527373267519477934268728317258728880780361518719840859742010677421161939353134432136842307969974844342848289641647536323556608664980587556563802346167546370448083999409470070138588201480327204187580856685087171699416357574378286379588129522603570290240999196990679138797915424108524144472083742722996817612401964126917300733090633875985475369285135584435166502291080699191620888490495364174189452028094687777380429575660938101468227419986669413364905364349406328913386042709667690816242220968960399076475142136346407912702691456304913523741742741120327752569316081163993881529716418275336947822992174371312524077380623352557919741386866684924399852492725028213653684936997057819356782872989572330396972202672677424565294453610491275525154898859601598227265959004902057425181607677160503494575548569634359521073578546623759120984973363924997541426689503965106403142968232770199217883231123463254104085660578943187831900382153969876841309189475877501528221616073477504864354478242463166913074712342671164395232293210846956895244147294508543399459047248717574656884191708121036886184946827524651853162132331180547072595132863046396084773824744468637356000034482589190475511636113365308632680928193970097218121363919716291365973960580310371395021761213264666928112962538706842825961623284598489917755121762312052184973793734066582027703239704510781227946745431970913686332587603826894735196654059246932116645282034882280874854054373227616656968781759114702438012989249195810282288663210960018807096302003598406209522820624291459967979600233298463777431678625938342388211953330000201280208147304699417790778727311035000144902399538284356632644267624522136536010903214017530608163019342819623885187223133307448980323954126674416050293326781214502114491360414571397520358454253291198539619808343087427070024663919557611821630199017366389364920577208642695899820055068880848915899482839710563813425015925458181517903270727569372219955368567288716722709848609035409164875336057347339994683441063731722691206345154994893374936175816397040066175540572226197627076985988193812743673022972446483887994906905487012199964585025507875952023592665167289295196086961009041748422667727790396470904488003002701463921733896971158151320052434005432691507747197946077021579391871305932797988818635607443588587967633935482887933594045787305945129315546968260688236234717441941389413273886001981237328601333182172633269442785511762918110943850307668405851076296059056371957685977762029631324802771830034829161228928959237722117056304528638494171600317399191412011209186198214626122151008369603979569203910996900791749341333505574644720897285576509337038012429811319752078830800986324152212031969672149428085382329017908571334897827662987027021753873318613767127105400214404735810983874361015297342277847023371534645190165804420059660460789707066659755893319082567658463568470818453079028048288574121589778661448508426542888235807428328110415975956068229691669375956457860391727760592095063062240504886998023424023590498175797957363380667943912287812418259360656476305609992701319905833613908477815800521954240048657616178133203836010819655688332101028552215211416468187001681998623635781159491293620016414566338761772483840154064748569838853532697942837465370452243586527784391779166660472455259739640239207046438028204352163376662330479882886786156178123097345406077759218210757183493732866936756918768257978092906258904381109346326543420449985604919562800976632921450504481769061609365508994353070819048461286872644884063256038068954610615978361610674061801215423892188573862060788175313467001470849896575195630498990326131113605637365946951402334749927346881300018337668128127306855504447695302371410353455868075581650410891119384341245424622718556565627364594199687041095124655232092215069626761280619266670335062501111209402346563930249183618912674007156450671021207665931339764319801467557497491577955357366384297903521361720847214707262994664744659189849982010189987941511019454017552205732495869654664941490876736519966789177407047508212433958939627678400673320961679594922558198615315667624817974208019253541017724539346137390741117728927098458740711711961709042277772743757288956746403698840001435949013428194152785216773285315904240728691185480254430854872275694968064095785728038618115992062225037529108754545874380833075418941159654848397377323937142552427403522903741800793798870095076773074923656113720176668191682247898317090472665013382980645259798876184044301915197378504852403598181273459129955169173388591146851133630336046282062457125771110471571530099381326243395642630013635066923815693122916625058074802181615322583820729154349920930647687596846030189226586886671588394184109180806115899708909938820733804294703522290886436754778285892334825518210918530495846796762999121113482745285803687177481115415904708919731831816955551049293412954449545049561340032283841040672138920533658762502156423336572700273038803922924394150393771361511328615047778432155416891394666048525232056609434560097483540646762440529665437268185256952587906322399483040640241997025394338050401704909227492857739103082069059988352881415960535421564855550726733440456144715891488361709748858830241868150202972438908730468819959628052486837897254847166758032207664230087339641622850746667620492128780725385101245552147784966879870199762897148175364114712174646571065390980253948284285237603474924436700086355649793717651870031598165979263773791845869044557330227488744541703767870026494962406020437809861186655584285386420725256972451426858266984233449069215164017589547316055270326454045961634505043524400609752493266109749222543915407702182455255326800020956215764952993773129101782727296379504068510897244102752934707072538157217415193935698514456263859276434178531067544597658212822429572168471825174685857322528577914017320225866895218045306175507385333111048124061333196415363668355057526288672653000428041631119337641258520437535957183001243485074997363927503317350003711725583530796880579882121462889475142248852102705556876718733840683032922719085109679435461959326125534050315716666336044324534912410484583377485753307487476614679113290323847100023620514175927381431174100718761795816430500116272321886364298889165454818883019101999538448254621893144515101429483423411467756819335040909158508186825088873583795519121297120614778223162528969430717461672457808806774874429223367388670172164724939834299121643459538143404239688982719336098713811564055442508546568356721989224329216839417724346921944817812251623886950548061652930312494381082794029027386988297311087118979363191654999906763690823803816737268153489746480144246244445523667475245451028595104736692983563496158302439033488759597980213358229870295574302590996983953050319392903153495698557557116042787622435978426204010999130219772865957873902986847108391102046756990848806439676889497670499218706599519725541408011392232189305129220104343736273654626139966761413322985301857894482725964915997660127651793624583995592073583628840842488607005143855503749919257425395323859491967347769253232215708379199050276701181326019515587360262048818000267700480104067940864960691630102567744183959101853079465581430290223842465225343877142496039921889700822542834099740504952422323160308103696284745461817618807742916211550141669248892624775043918632931808613468713494609849934478596842737992355379033377374351219072405079067466431042627674672825564951172644111954143178224020025711349502660551904770871132319860990016599382287165960019334976690420580928512513528992545407804590485476263230604491316577503738679405689568431029243255246183435869368620806812614400234742443775501452847618510218372915569785799764727450355772292816058601362470827334732614449207403130275247941709121634982266319762041758717149586705542865820773759559593333178957666199666349556356887867104042319339782785998297801846406155297431547493783811234546344188735585064440609931694097633932533049164890827932419200009099713202309716149191521170661911378498728206790430063054220414595980702919149995659115892109150802827099100079518774970749936944832321479439214414161539514116567970782043846206322399426561869436326598358606281558099243588198960651427661063963993364487920216279018392118034305272559670214332413191922878001824029771226837819242134228342228077719843396010757082039111114274121181217481086398682296118877909153115864370753735812747868216019067602530341940442432820860664201537579822859407909735208305245164645139910018544334441852721874328967047804777994294922319723896467542659855619039833957917290880200262655958087319219308997974593131888180249963239693062485137712769773819665323821667585886266004164668684293765149155476545931068119304625435901329487925112528787949856176756099678752300355131774271219186134939503768965714067720048597659699677170456692250334763617348931635956123492475676955780327813881674092219416837581948259614651355045410356015339570382745456460319821259693204929790209372211004512617545824955267465832950517976779701880871126742371672825486802196004125174250205069177817797498140043995710873651306425777389733146359114098677719378963925471733906294106597087660018970864888232176945392888874282974455401436466198562908298488858469803500595591853980438450676510635021698392637637020371666208020606953767503994602982283635243398153345759046504957891434153299204771573032996260670857199623426473157820762770064232760123229327805213794165998663857056799408195244751469721696075565610877130831345541042856772187489613805535974576165234132354019944369021326789564938316086714415165859864939384236608223421175166103338100465714141552564937816033883799128772048136285172848260739215153867409612126266171082724237775870233189279671618808847733788199425722007154221492421622947493498867570981615371475334014708901507020064105706048345961193230425565490746169279757508718774845111107087529297919247481928639125598380844190773755715459222102764583605734665659602764219695994507731003779883559781656984881518947874351209234457153479277967945569869429801348658075328150096819932218982258652184153758312374080588696077856117011865937798078468345960696472855541971077530970946578178445146238769973346639448082418085174736991860662719655147994239858519046831614657226827096147808484633595799369000372752729453888205929467540593201657182997539999018384735776524233858705784820887161167925905956532690242921810529696280913759147124358650832397805247893509377563850826413832684207480046258007413130139582403509622318015082345540806014106829498592967036690509912491962408203411994616583437776007963251772290586367744951416612358661648195156278879588116089788505343846761004765301235758632574056163974813913547096127479159615548544611515181702745560753648023660059702707716496284075987981815558817313366514034310918185283687634099284850598668618954980871706820781175824152449902462861083157271080919826768750423228278595345842903454690513127877381812576603201389747577729421144073945826711311056239369816196738879611027728720988433123734314648613290454241058433257597871450395282988515617545511763942480798702256273854452452184780381828705234284580026302259089815650190752002029559617900837441523092125993555480623643593162595301299090088615062691963493345043001797555610012729237697616035891790887594014874578970484325509871140404825799700021557024764051225623094499950987244018490883755282775216904326391574277866623451449066779388591654905266266998392526839645515663961605473598023064565716177185032651180180416950975663916998998404825901512897802770480007122840596542936768638074301491450293222636997360484988928629331449237473019181659307249767400356626829239478265443759416077975549724016094453483816853579450669043697624311147832717528341708803485253444700644699831131643904084172035100958633476192461403283690485677821805375562117521974857191597295855016669010618674661597461179688503094184774822385624770559058334986113879765964766017297431396520965249918651658312843369462059964557295623824460419435902368745121928325951204149816523458790836299482112857326012400806804748647829477564394492485958129908553876118557290691134101687657917336594308393265906486140251202487701854321710900140232839202105999881528490658087975818310286773385123118378391477534257135325810577847082232201502047481951371399249467042502377687398363487497196495185923202002650943227260989796389793487436916894391115988398998590692059019696001282939160684718190753520501797874060171106381405099447675743865550687744610220308804400891289942394001381182958275955230242015044225842591165864786546645706545120633362268497225402719959350554182834141943283491779996714445828366688747376318981082792487606317067403785736422613844419069070647508596175534950097745891376458979603219861053020287314119376810016589050723203845074502728806839079551363685593621188500811118684348709747907906539333658032949169449814511977194545242882174125932986607523062645987320009074312755339136743765087011521030890232617994516815460259479613189767594684375662149366909985086609121142161667825651999554131356107733017344107288405483430010954173932591093009635873154805536425442063348609702252629825700252856824911534579099501868369821978992771835061924932096390532329917169459267502296165713098934269143273103095374384635063271507470155416373733037109468621342303232064276526264990585079775446988172288210947923025310007677340336798217557141680475912284755560857920971039034567699836557937119512406345420401988143609043420681204650471640673979327180013123832696659126267319387058142603247544269635334896945425638041071803848686452331858239217178220059563228449835657053524951365523587182685267118793820011280449247707135108479304648246139013778637646641751237741116737019985402113523505725896076499334222838003313641433130886943459946149514759112610935134349284495065993819028634171796199531281891367837514628966311724592615419778429537443308464012287271790831110929596408873552312053949154059562525316733030753189984999158599994402432838189623916600573252866581210808499781560161575496531412526883974849792200032936902376218279685359918388130241438808909623559183181840600757162408375008897849496519565093408157094489119139846306621043072612494454490333057841160225870393577708638337083447721965811960746521761727367361761978603457149593379187172868347904913551461269244066319136407856392413946982404939848659730544651335220991059171326021116234589738117447711771974629847759958215826453335133072961950192000171160202509075676731964231744633258371230458508042069752994472233816062723547069996192192996956690733989989759468399764804642214629568654490496852677943683803511567734528989449656491791441906524514833461844707984001506207619750101524184387933102201039424453064221271886935076944865455096457339918246242410085317318173229180601074936073675804457900650967307295274445221956155658473495603247271461026996875002599569260071558440572648211815414241324383809745027727690605830899355358903627748552701068115183475962550014488918416124247292023134879181572064699515662627543206797523856194380506898843400558775826721814262913028275832851906556318758241781037747723815886860494985532138765733584999225277473066804778758621575677111361088814091352638899165841122678254821174934099677401772667318336463387688629544218272784637157462252402194948759582050591693626328695412865054435554434392151309159220182998577460600036378062012783793876834190379371656581783749016553795493372786733035143006254051669070244688823925409484066295637192014298861431514789039151343351279765501695122705909440082347422823462294889786597814912092305895051310832155127838538141168735234567000601063613180304086297303451062194898531660818878690223895233456991849630948270353027148306743731750371591258863932784282644828493712713973834153992331299490324838518684988234653598756194169849235859169680237612522789283910510922772402785484840268007446265319903255574321861836785440679447757920464902353913261201790799820714442804158476163204427606587775990481137723423764940252482649393101879047940287097806519352542227655224085764988662352775712408574158048399818297480947225388956345820287331493583916392760780582053151300159702077301417470955175980320874950936880052905266830314720255468126716335408778945030202487613827433857769282624398930550110468592917784875651103294990943127108938043212942714180264345144442235736619318266671492095611376772871745877318086440898860549233631859718850647375194952114588663388490642168490590325483538264030209915266866362906569902729603927278096320364259159529431847089013933947917068732509328183045506522070838200508777198333539725848732532824359412024861668448725449219555568639480899422706969908211729914765651720325106140619765640305569053302978486645181519736218112448159094144536194819784261762900984657874696833337364785877547149647942731427203235673744528255044473590045308004222213982887465943342448083252055572653950851775156882269342071972076773021696210882059047584434947981061685760554979708054024590963709051277806970882368580592908360073296448438456359628352551274317338526676417491765623554380378730214228500315303901417670373902959123970680998038727283188253478406504388846918340269350743942644969984899712388241462480857692218356009829178763691851138118684406435672978872447269736753352879786598616265961862059839666375861034920431875299649868232476353778454287136424450367023552735099048819345336218735781634818170073814445126264878260179775065056839203220385059346194220288725485744016784678311320243377550324087957403301988105969100504598675799015382659308130356690821262355078776591867073697966329325755013150497627369010095196192730628500382533943499167731124775052176560886914367515475127251772166324153392191313656836345047853331658758637404825976577251793867423600542782527613049457708547727285229047702657302347846172897417086539065825932774917327406583797459117863421632451703921097414205594663185067728666384070650884820556663395505612773977762268899771138805248919073467633320173120466994615113200102776416673885627246989028970121734667312684003963447616143810396188336042126732276998653083002154543488118269759862887045553069650758862331150971014678403690928528415685259128948918672930711800360122617846129504864389941297541127699334763615990368847131448443395228677141080054054129827367410693625994505225181270636955902234639040393886205694654483519008045350780557226364731295417052860892212109371566406985401236744743433789025127947222200437467278082985854783012114597399843349723618036943130919437935037027566286875741031681331321174191047969207083189947984193813237507267564425548064654246242418784794268512088687483408994360942275410345715954383746716283441589376138725674817695952729600722461043412115342123903627431324561292794783780214611957842117778963066984310564514672257224179211072839042974287356368248570892135697776897709259591490196025170408502302253088040437674277319903576031171964204455759418032784010283813830551034246769295644505803285383882152606156077782458613342086841368793033238948564783321932134685029209128415990510767006700129191050775066750340467326382916868000221173319550773630397690829226457994471610901474020680855839840117177257271559670479418374285804585301591280421026858479009094834745812132833618881470272188299226545051613201250731313322567049977615100358183316599150433492685999871657701277289564694802282895543983264880142205261594765596171262645141834728286071502666773075718478354793969662041441195715493704732611540364927344238113717340554438412528938908816040492264709585600497656545273339580513758319694713083289104318477358122660064023511208821171529540527586815659385040011950308724584300875318262945052011632966895429722921854552709183201285541498467186033040585329896570642308090348500861431503069354198323345870473808568299834387589226792921993738777933011885459179161859273777809574455568202641767403561080092378185511567765003285622868275676865200724471942753249396909082080951184842282517866848456600860754681897158840670524640361015625284709626616024083716168631407675476630490197279138490115770499774814330392959864640871122584976399849394845773349062479444547229591134508399159460522419350242109133659146428358731261609152033951012699419873652551999144021777353522899278891533634593681317066696342809155851367446564355468685179842897243624697560632404447493090985431431975680619824845325684660930215825154128585399617849164196437270541141389520764807858426110601246004775414973870735891139018330198948805553394463369945184230813002260895961468705652283629075256731843888954453270901578846553008550083117110851719581710193601958513506847241381774342408506544742123136966935393663198219093111465940283705549712710575972529890440332568743434719121352090732947830149476074879777306823706547502115475330930260537348703127911098825011482940263326141298993636025022085880660414658604914001878720287464228477810905046631787525344307327900613285939483275638143506660177490689540852682987718856236224450551161878168358052494012589847656553785515529105922508833453733254571379956767909589365082092921908031210225223011629176353443722470955304160596240676400269361470727161037909534103706112497132593891997050554361808170280093166994470415140170080647458622399090574471173029857682088210599795756843517209495410080181658501263602960146340843294568066668162619825089834503306501537925917897952543474187405213916804435672354221794875098527054155232354905833548485142007764309481411439078110180039979218167330634228260224261879637452890919342225084071071296908923140961688241745348725188123060012640638536116589950141982051175317358059309265197244542098061383066667518746216784147435658401588498888500129925052155881152654533695678236262063353955583549597867099483360892137952541593531342735741481838145422596976683434282693650367255558327715883321613604728555922902012220462660759902327888806975139588904635296571802232182126926293272055465730070935962595316192833503711400317378704153444332453158030434131662687629928147338054590475474871727859549698042771967944506712087904987000519896901447978559235739548551510827579558667451199638773371866470647340298005830685297651512872576401722724127704733534462501712976890034457553288252508665884855398431157097660337327453061275162454314807606336745317495311268021470372051538339519547735955003400116276759717453063837337892807834121963536225138052654070076042758183087367691735848928005551295461898253797960300040315321433992026764275215430110744632639139907625772412296431008959364857677985297294382624922470209251409087827121547596918768476650124911628286734120736920857741653692932005658466634924379806699141265579823554748137412407306877243286517526671219945645215298953702989531087673308022391042722909240659163071567482962489191550700850797443699571144355889913115450392116212859435415857485112138134666301901654623897706641709009262259814992504849824800364085472059358485163329895836173069203350606316926076944391586665224694969259588954417197365606439275417858810434769868993211084941702492518854298238669570114154699578494504220473448130183864025713571480251470185132133508547436295499046083018125613034996408694168731293904845725790398030938747942259842913257998322036264826502638517780165920596650913167805581402242944926003462900290301444211877253122104475915227173890521794415089775940240751053110120626057498222043972642115237109091509089474460792190361307969200207088063224905456924603663196770771712790374313874434581349676234568869591707299299238624252858219399746617947852498602530401325851918148044737340358223535092017895710668969377310453242982595907157258840633933800034047427594581180237987506265655748835009214591700927687010409780145283472043765708512792189152079360039340601676823737551274170431941592250331486555313035732342548620380029211398248502206045227439298768033370164081049145792561117135558629997745828020354400638067390120968774937083232698225604115476138755283885198238879247285929449157188293744128334558508141747860245959927305906783439660644597580777786253687948837070538494330576134754798788553451554371670116351600949384793164883328131852202932194440576177052617394747350170495111961696005274273119536118911389080775759796744914588116592515903597503623131962007541736769318429120638433030004302567499973743621614734685767558028930090807584875830162779800952483226608738242482879826556652211777344132912552768315421599448270049322932088120784395658374486130440549045022395192214791394416258060952380210688675360216950872311600438773627173452689040668583763616135526091022237015408040696503860474000368477847249340284417248311814997510662262557444772726379766743692939546301399942108322963554470017865513169510358622828413351672144288130253588370401747889584076016352067207122742524046594599463153909728876261767869452810108356312323987223849101658340991639299617093062624539548536224333790741939095258559292296414153518132651375148981582502257770278721493275876302338232372099271726355920970558337312345398871785837054825992379175897695189856025565672308523770381099143468571520337615084555617572007832767803567877982102315797015586836719289146836157544578445417428841593447251624100075586277573059310065126746347727928409887616041876795598102395830681120922533740968733093131263951267759302802642107960311426699130398872151507577704857144558873632489024721322137978981843770095283227875683325026716689909771625389207630589632295829140051849182724451512838420588188442180775761417892493838388695209680188974940320373194722387588055085784960622213962014833955561617471876952315011192586888352880942928455123756611717899928684644716750211320499045933697601633032204892976635299515417426728688950778598670087196741239829466766066904475232049969870344487201006271618216558633762728170379107181086832058394149468245939929214665247280233515999099364938142506907337762209211057285508705169243376777726786283088226882166114492847215911441743144232108385278710674036013097936630121046696676305315886786344911346039571914989069867375852414585828654909923321942847011371467082486256837825420435196341205151672634594038188694370006555787527045359051272553255636313508444813976981652098657485541764511725394430552503799729006429963297538185329922879588554405778701222725477496657273150950880948914671664393160385933827037300036002170469887862124390555531168087313482337305034736698857972724231010947948408290854167544057484516730619777225225404843165395037088385286204614433614123600183693970555528415400100232095725781640876828726177553238816850315084483199704947666632074328456712400563958346176557897055633722397465232869106284859302814255976261922105035094703710050680419379829949222035082722278191808497235430384157043487459695876672806154709320352730533901827087322854289769237458975800825185060296656145766999319888381254057997857177735311513170627119208037863512947437815986588781104401955238192555879817318420129536686179384324392916396950023590357094455298033245192028676888886334140740677195429411356102654996439920727673994274648631112319855750707035349198105509830104607618804999349266500539479077126355438271737569614009370549074077242403892905378418095267890637885064629638422579109394534429397093677787904237552136510069189868831357660104339198092503435879635707633377568860625451594862382805345453501203000361011692118008392378609432304544817559510034227283325639818247501070496565417245456566693420776307490162355188795506663503952468478374317466468888234838997400020130470299485238890846842634230831409267746630840080448463381140853443403143453111254720557074058154909070464978467073855253979157854024578880208547668016411126145402420161932556614741898962074764456005375320326729346435489651853986793435748083218846931747129479124835948866533001379305755960794892392897139721186653700988626365029991603642775555306528229478531819110207819201936631963173225754031912905205542317636108195103214740291441015785920682327039488173761776281172752097568160629660027102991875701896637950774348008840253097466298372348909400870124937677887211432916317113076017378299681976923544453305889436084786488321963494694157306521879953149458684425839803273059485070909020156383963351427192990990616393645730590335083066002401570886243613374873891906882500773099789463776085971274823552030350500807078567113330877510972638473645759637767047627395050834614650254215081457388586008093410428399227704678177617577391317637851478002154499768310995909513564314994047091593460585904102915203385863095683660656226355546888173074106563757837596720812073284562301002339536085850255921357340954447244854484743526852408053402044404192603808128191409525399969842069241586444108514827602531299914793605249617438192696831901941047433014794287972665604462826285003654239558443034584709965413109350953894627030958449424306979973627607155568027442449000516475154066626247829436712175010770472670197083416248344368152668263732022508209894795034843247055224039252713701709996233395458661540577109525320830274486878099677986269628048971051490109005175492987638773312517562307039572415566206622331349021756654167173151202759098376537368794245643623523397397166178357037547401343750522278770135807483243579424162131324916369746800133409540846172757677295385648147234125288141495980356664227464268454595083986959030855197190412685891487704305035483848621210737170761042368243169582847711519571723280318461602804731302584133199477250072893355711065447504713986322487280604316148415027451881042084636830726433319125774089104713130320804170391435509541395935337560814278066719960948349065461226759635126632300718681146833357134058040629006321325410804736873515703133243230855774079388969797302657314693814690234717695844222220994964600305829581190824790301447849145261973245776658897685879247972185805343531900765342408206005712589041496975174790392585783282281559385611724079245532150826005663375730751655823810071078676856113737325947089240342952993989159392565192719313797299069204155339336310160221729261246127748306904720218761090056214717301243508960613560339233044081100164909858576646494097650345890148199129051608484560799939310877564215515946763484692393588289405308199666907902934073754429875813028518379961054818466915787862036125050414348182022073734731000968707250222979350472542118800872720249749281305096583820035466279199925266602756294360010153769825729507466879271573429993128251024971578464998373448318458726835291187768703842044825734256895411552066502425194475686299903170130553975400090349162314485935622224945412391752306356882556039784908122369075099652003331055590278449092998746759875668704088091266931380934364524640135440855328218945280466003970541014290676843335080684791786463080361696185283203842733828018217250384351555569275347072893815688027659276666180290747237754476147625524127605041618989786918857680900393895480937135966114155238120871330083523583931858391635681598562914162907222791459547943403904820691623637926433346629242470390801806673648694110712101910465810907744054487668598279385746680504460414187567388003989848100316621952556722787389091396732861207573234778196353592083489845910245960354950164446560937168139798778445105999193129323992154800726398074505636229299937618511530285322594949540152168902336706066355734026765261970958004995075762198622808611704996211019103524222414522770237747623455600126958977113544955574661737062403946693228938191276960423540751439087353786354269400547010106968290754150534482921981597072875489594407936423984705869333313227436854364270616142669559099857808887773669476887947628391326539684824715530974298062767138513022975998054964461008791509749675729721372122304658336949665189413117013538621972575470632795045657944141893821758888064550287411841476499169990068093132419308793412007645404670988908506800645439513031054123099861455029262574038649658629736717862672855971117164991883473731813832691427356230412988843553116558531744392204516016619500495612006759189714905110281719344460434866758097747665977336019635904813874711902690651563893572885171277186057566170726659452464422444422520288897964901127135313994526806390142381546072893836173908101198945735891420222910241150507095149076211519501818842349618200479183949742444848500750764967729731459104615937481391275025783247338920634573107418504835955342271468382937259674826232537437547643747865924821209247124544075732127711515191757824325443664363670502600526454265211298540524702813674541589486649538044567917386606066302690167912746641989733356177226220558922377010017055701624901710694550435337065788347085373189895319736773239452924419128189446072090326534502559012676436479224869534679471027889702441469780102367839590541415721056925851770584583609232942364513905754473599788582729861649088391566231525134269643866180645171681927346626800079243817415384354623395298873052650848224484347994415877479808831605049849766085831221935943468096690047061302764366440819327381726684277213731432508810641708409460257759319773835562626418659157350921151485159087859704891398562819376076288864326753998969609197836536396462846365985965755679315148502578692888964585932603876190547318487046506043106781000535753684758482659173352638093409124235327444682790959132894149038713643123142135264941301960362555432432316044006341287647878307374329511679344685445313898542238125581134481879936496163606272194423782397746657742316311113755817917055582635382465134552322784081701881506484479898564722339775178820780043126632117710351188104221765672055373358477525689019233750233531686909350992817717861222151511811334437694644040030482025482832649350643579336386355726173098062394064555189018853682699887072219076579585094787582224934359885670099827283272586075060215097752390427608264989605885434169755679468592452334115593898822855671057563818618893163168095426039771886813116694249998221367143386921280663434562842123760530856140384695650253073383369632041946512667574402372966840220269306451527850635854932971456271914678688808805395089694628935143673223660381889562187735460486118409544216708274342284948324489560065305106488334236260807156896382310487416212929982994899868027003316133350450916980674053475787923882936785236720969252433177979619560254301173171837990831744732158805749934901626271712618708319946062852690486552834083070545223534696768351596305363768976179778879403395772989226572864735969113213430777813459271376407066145649282710582077038549885797271462853340044933302274488069298740194348857489931273281770903025373398979711442477079669579167026565773275834693499786130395737138144691458036860490244351208837212804643645481573584178045914070349133122579017075196931843683506424747806593461676130205407489676177873339172394426356465918413360419204460514443590295270290068881726733501582920019020414946319915537236978715714366927447358981508493823145813402222216447267171943718118645664773857597221284857360908066527086070658304064381054244959976326400213561144688848222231097999554691836919596472212914956320543033318279872402437118267135760840821625750931942557628372705843571080044224850368961379884594937286913506023352346934194197278274540160223531846399942995119978199081997625485886078630145499956103051899510499837892742481313479131644725922021498889018397302321915408837005962880829177627776469324078624537843394658616226362096619560775689529901857893539287669519726115450277953010341354047540660375740268133344156105301085334953810666830165129688818951067829145611898487163993267907776423425585985546987771396194434016701478171148820723616003087792370206030631435936241353201651653545957257351363601373098030547967755535951458236197390256846760590995955942978648027281682121195246488552384461676147677765514495527690225989101317872466887932826239218798279718062302627354101503360775427829372905981770878382030429430798048872655586255896674261520705732308971602902499124133753593151484590515695220169287390478757090288055641748182006384997607046894316462655101742568276352073660447229290401204588202292007891715275262173722834930870096040548694195247006158069398374891506700413541637741370627838479382295178618636335782691212120632788866065409683875037311002477349060700201681719815068629217823424069359771003277721523576565861671226267644811762245384400110687820174873847440709326446942054300657502165842244981443420395391404320648764501766325203195646984618068639594548736639002457937610654054872621078165454796976276287920338856433854427516407498987743684623561893072514455428766068956766252056883727832211706952992436722175050245300770527122299687625664820627524751269699133869044171555000115728417445821022094873144774573949755611501181222530529664709819387064866143091117911503409917643740244510398849929233689934009642913072528416294895780732630654634016443166576569876343013535683221841579576174860639726381912453980248850064330179348743781504756932750149626418446719325720455057397154126822120479546057375613558774065156991989857263130136482105729383260932132298655279240869405928243195351295643703564259648655911848421021945007539007819141034915450669952394056016047951952966391359292414260301094696974443887121545185471721633090096398174209929773672289829713839455025959335480261939729825654121985582425663167689802737738186995732105620206387150303955951186571943429192530675552119150427677626642998780472372830324618111645234546267144554672322032709837521664613516260827811721586049215163494460040138242738466224950076210221602860845263619199032409200449807867566770143163194476176784926094165814177906050688038893409068392380025303670681355518581896313316599503176031985195307485188995328636537239578685926543327599835467675871617538669576530447212473485240981466951239971290977968377966585200631184945599874947311545416607602641222031108461732908546721279951375343556924440319902117407787071502767204828720167560553764120809757116184921115185867746414976415744515155397636019191944050935689219635094134913105084683021970691974998332566443643139353171942821339352012922236478574019360857600711254960877408850499865938469796097979699007229267466092325618347141397137811472095396272049332263902637421121994957868290144434995961056662697280057648369310481310995101622315183121880274780549465160327873034788217320988711956678408097675939055942466679616253417564080432319660645470510989371287801356830116800227079383344782968544755596312818362064475445132274356078093985790182028372554872849028913432544583931780632914785146697091312847436931743348745590995377728178162460150085701190437831690448386567019523468575076326763091344470373415830933222220075436731204493828322087893933414390841910046358675627345154498957682418082708778128788210860482997646235262234352422826266361958035189445339154232168106350094886353915248481066261956137151994585912800167193346213478657043118113965975655487831388851396856875380630310731642086836221542452309486763123151702342933679345688264455182866020088140222668032335332038668024367126851082014117545196473700579399822959650804434652691649670440319236237136119655732256383585785614219822186513768724513157771393529053625437163213889683146758912717065644729794463803833634044721273014559392954824458308734656823716113545549016240576558037169730010257529308231699301605977892066958147562434804921045058997402922728844061372864326600510655037005780968815024594108547876784436050920388984526233104593696888101751421171839510821195528534213734685183741919723121820720179339656302308375416232481607942213425697038933645005937198609490371566108543828217372943194864094571871977358544170840039214324850581224055183900773388809262479273907769962511128125353947551679889133159290631770720361275568112556772092528828817280257351758304357020235928855470092484340038989050448077267548589409335336802354232045725434196833787358167900524535574917416592010777809174395678878989401803808591140122994991510320272633959122992651971776009137464388068309516245387764100095147749610212799319343675889709813765329186272681541209499879130785031508303899408574137493643348103340824420912182674306420462402162247167398861683380341264413363276689934285410338984433737755713484536025576648666553659630052953793523947746404685206788272556995020240201067336242045954506211812815781599978446008855156245320739557245651670498767853338859939050768915918825969214797325159056520774273848441289175727316315657714925869778650442010292322893770987416618021269534712167366291330912606142688002740180143143683294529805119460059266204208238384792448810690213361244138693546184172540210698986688850302260288109268194928279740004366035404957815230872431787307958423992715372596408723893932123507793996733022674756015837950099796336775916881986129499752007359831814682226067023191532103055001975887093546164742393737939908721724848206772384276247768273868453960891971282848029061198498113720057225030978482819956224164682394538664056996754728298067831451429193322145327839450103868729465945524925679282801608897011780076641928296849204155059809486017910405535220615082428307359693461680094293845153906923531008577997860373578775112001622891399435631538285606261359006337141245977338129930407479714210045241394511717721522410094913616559793566999724796740798136707155625023387303372345156560758462761018545871236337577210688741673917199012351078897910466750847780353491474741624399035452291403555581322272913715915212875164242304415300040587169497270968897431154236787627761392440209460499422684918782617855549669769932725421460074096319584126344708059834158212415194664559302245173228855988235734798345814615720448074655022098369856151333793074424518367141469716371279346448385557366425695332639401021882696200424122424467215939959971307205440368167664466759011021510636705705629578453643270044024136353364711015365914281012063325617868229346603978310560192389886955641938492980207168464208686699590847219853243064602629425525217971117514565684386770215206396948038883359203717151580626321404147880895859199630801774948295973800239631718519663627586931541647296544464238670264418677653159162467552188245339708879135945448147392538507692522318613866357183766986144837757582391092742530185540454911856738091124069004019410396306082883283317979590816746120365915629655309036747792261370314144487856325971442672595005166716791553162692237502650182108341701099349470316631228734194221551518576177455160761775464576460840026127853942611769170876473718995968337558626147888832450827653108890050215332486202884143626544788197498519077122484650703400021531275842033813646734678606260395616879829257187116149511812111449916977499157834869951787622345535937276542349927290406721638294648455843952944746846593952309567794877128245066173253468815673986521345508392281652764126024205179965407177253580658296597289552044349905492906951843027498722148984537190170887566715078146284353723994605614953558265296404386036644204854485663873744916426934755902700754481879086215182941580212136075824172452165476004809832669773367502970664173651294464531331177321315166072276034855654525842895208282948105030191366932786020974215227820272941745196301267390718436937633337964362951842677907194341703183733350432585871410004100355818581794178841243469119955945338451441966490493178317407889360409169157305676405847465002567784727458834315093462058799072639086783959459513199088655970968760097054434110412967727896580237671409661683282982073826249230643918322005630922941298765383347495595212626063392314333532531270697717071337125076082769990640790441684791029955471804307419119807682695815462090046233755891779395296354662519900244683021079422913683571160990630950844585323100599077941262961647901388454261435376481609271562271111662920824646164445364516552885567251236702178622690361867365256858388587640284583065899531416196060227308619902070917530356461437636562880136850016945348142126846348635384424584121174004947632862190725790160766824582047305473811357083394895505689884306069912290326811866974173059727015100154995765096195866613516107763074861382421289720833980466105640964863468965380999851786853884492704692017952104578353143795945946045960923635105635684818702227921546922076093442065007180003572538886179255419594082395206532693622975636989484612894400902102339133043093949941896301349942842222375012049032058306148023259369751498670346530009097268714170180067024298768772221912325869124420866141885836516794873208050769712033962009344578855729867002320633293975384158093086261411747742896507173676130076396056873094442304141964783829667216317907998554232895828609956320061281925466291365912457777219018622112316277938901425783318683612014445361981263178779321705573165335133794461985638402570417944559265169446843758027821276101134370338352384541412038234342920327929248685062057417298785885830090541867806205499020824239515134963898841633262068887158004265744305515752942007052446411053158079612856514987477205590666561871602028046670946214271513777015512606183402754105167832117638273519005229971721235761919901443036194012657786939791711899780975546669396660545945994417003749332299879342520777942218499690652165796448458865295772580173516069927842709647890034568422207766741266548672005871993526537795949589828182688135479728305272205867910483929394632739012878702845037618741791349617051875117275737579143799891963685253049408050231021534734235158384963086119520434563248057902025454768687948332280693765834935861569694849573365997562231629751085220756094066473522060257299723254768641858729200393717988242616149672217235627167726244872404420420688869198775578365157998125480381818059573879605032266434990286471603130099725685563371742990070633234356965621418712178608322346975777334240285386599538973337373464767147575680827239194864315864080478551505458097918530180199518076655472272949181184105422133253686594560293070554111864891495829769058809641612395089947725999355954483060489359892623767336496928994160765037120419623770041406672191521470437197715135739421191968110486419923392060316212456007970589686603867612687873225564361479779752194965456673987642867645548889280116067929316963311477404648563050165077414249412657858581260654315048649168488499483419923543003972731419345004871642907348499833548325979092129515433670218589040650223137514036649943387019855031513113102010331680679877275715403331457828244414730208933192622963265144370342344963618263929933761408329693661140046974883967846481937108938485200234245734753066029354764347493532468565790673962266961140879464145487860124114226869552898070745289551313525821141230387291254481582879034241780536649576803322062648165348051068617707694369042149204259448245553077258155243261230520927043341202916974441568471616186227671848888922939903298318809162787724006859666912079804724348826144029051103186552382089082114297576170900477483226679562157823639246034691099099044841318262338215636191063938971043174355063879799438424376514440494244578975004481596924079816783969724076395526731876390583937193445241306826638072214837453157030721504510092942936592712567031022148526104288430950406672270972475723135161274061375899890512987852787320446109691503728060478000649926412650802435455715098566414601426836387856714782480777499622222561631463363033574995407806231694212282483169196351891128942006276698511947110350368778425092841516822220901848668152194955875000264682849259921260053351941325853184809833021359024636348171755908011603617846063052117024315612202812335074622040383614268627732338262229109096483115299308752929433705665853384461264204037379069963317970486859299728433359444981696157057119847243247235322764645461917937817270902082037913648460878955487145671610396536750277264709195890375505628497327262486140950340991992941161833521643904741898051044635767490211537401273344124429366383829124809065873778455784103436927241886497157549724141782664484084000171089062892180011861438068929579537017954075244311907178681579745625121156200841449361047773746045469666581234876894393030778397241263892933959302856428698943166263731017289340105490502574392515045388127266421780212647878246124435789684592286677092366665416718069917525147298735133333957485744373936880927284567088757519967827528203254952442125063275939204344358510376409252986260507741251249047392615073243306172001362672488304857215716061333096498351108554159338729385115677009213369742264099766806825460164203340700509033927636452146491418756465928210149467645879737323965183526290781190694284044074348185584254513241844587384943666232860677195916633567287933357233068314105294576712078144596987411189757209795771622758128986200029330393353432881744073360331035071171228198818040700598719839334122267570459402874252036178290072478551800123238239263146520944891143086202284698637087155639480563353411282413100670183734270298895661018081532151517677835224812344749475265460270194732023734104509116918115474581090576628461034730227913050985776501249555019788052932537945980714527755822745761636717423147884013166912653116422254144447584625075923768030474765940277970374023115466615893038314396341823452010368302991140957871376056450485879298804145217303115287168811396475208133676612852932913121124544924243058435774297910433158954159330052981213588313570806277547247310628219178330015976978502939418030428136940713426985698607891937336802734136464185661176481488568534715905922038758270512415322170364477969982776462345847210029761969055243766262303694928840349710208947277643192182543559835852572531861582478763774196103568609704778643704144994451925746688731210292354502540992902423189551318239394234423277630944357152242212775217687242369651179358717867797986255095081213086122165187836243271218768796888150111499253109465848545022808763390924891720801980167691138016194787616695024880003459622844220911917408176578085603917072073763207419666117968587924175206599247047645357787276385117174347322039202376401953399335177261476145623791085109367792520845073013630222970587620997105284000869969983300094118066611348559662572326419496473455963536074682012732157870225027527486777270145696798770159937602082646223695086072664356945203044923824723539435884246749152871434412019551694618956796745490519103466387823138588109333556214854548722244252284735151817271204653968205187947228579039239944827651133753589910582354093441050705346301588993137371504361161084411717751654103492833482882852265976645284350926013775275263927917453461064175450356587481847603405508105770767344942269203587273717424657734037639273420812227893935992632008917726108099007976373759867138586552247868945029863271131247694656709327535225393411397220894571175899989909870635603753709588362834750173230140632107218947827551188674669328314738764111828302212153018519386653596070104901201005628981843188201868915682761341134689322203237076746607077519402082974272593372623978117284157222931343509570476484828046628504291138489983714535788519474710155251564401449771780243219918715504074904792807787845702658441110448249876956770016205511608294973009886500752286862131069356028101525022512276659599480167635810616749305846654092522750538020728684743283816456819132002943295970474789861312692257739136552218255402104978233060204659478112392781806474068350567756483058857997492215271288735117965220301725973492570038164884843545421026713956148598337835856928902904571240474798046573084447280354328549224898241992753121501689757095374245124422975157328455848789318705097549994509705058520632127540231709963488009047707202695200144893739355950639949374736535356163902627067369206976661695662177182344248288804488414347838055910383357370556075962225547471848079898286479622047817814083291144789989162959196413504192993947903397354235773138916841503390975225538749008716697912225618410069859249950743459523159448850039006205026895296670947171756727750133091800788381844318227493904461551109115884030138691321882533022486656643046435696752198098792916062138733437496191509688547451911355277990822275013747393988594734182921779678847431398002520439850445882751925066992188634888681681589602184814465663128704963169656124661847746322842032712008196886321461070785935352215200723127344161359183688484505613157578060196989462233492170064145733092227909206081663979996808083125162272151502294988563239373920829898534630836832826275860143149222853381291091380756571575139257286300013657958806085209753152502139548615946591345691615705601435078933921493330617919869835832796522236061281432849744038667592074298122578836650994345117893895846147926355563771036466641609005396086929762849417432213158068673709185600557652739188957554653506019547294659431046150986179467484523825136687482124061309424518896150207423179861185114257293454673351517128880072543831907214575136668860480410777093094405028974509236028792973454364515982410221952409063690693885839045682292011195890786711662760219851366357439820472524038934426739760748738694498363731851406141072171414870650767793531084527960121312715049477069708344633434101865745693643113422613547294060777896011835355843763999891958087748665347506879396918864709810417020298846415363682171575656378400273255708973503342381809321993627088457498003259999017856689772567182349042664989551776263968912655882678175602794240644380757153669208526414928642566967749297667180426004087222453214953502275936176704093043926049825174976465992583400180283667305970925148389912988602251403451731842651286082668438425412676194050588845951803246271809041174698330916380067383103669172269204355620708641307171596397644789292528512673498361998019711391639610127187824412702882293793895747547338120592621689349085866765024017117545477722875759777172611947024795718187157814222164368142936031365318645584311490822764618783351384383195234887202448794695014269707637899301380903176958180226377477698465946488411206919838173299914307244091879764370129846399548974177776563651995804944698431129654001216191684947812760725358312776708568612079918870424678162671655745255205809220055911216047343169103248957213551694436591239223892579141995470105416468217748455344319065281185967134683823552800539073204970967604670285264707310022591023829041633807615036253398185033334536443127359899876370926002894865433594011863037438225534509725775433950914025155495973501784673204737390239349587749212856016388846555306365407479395165633078630887106077647932682415099948596368730058761724171451543708372286654034455943174346651801534208980022248105263581988478680204028660496869772408869037257695304745615152707247594399690294665143063525651011704176172298280617238092503992635488004060175596810176213349857694232632794565934980601893388630208616020600828926125889158476101951032920469574129231971830636447754685609212140029087936672523570311533679154091558588055442246040620289257764535080198067953564979558234827683647561781270196569225417717067309561048909451169765583610503179597502172408874629419700739838364460719764577690721734099763996466565148105525526017631578842101568315471088266854288835518217121261562946352433494159006306615277787821519676750370699293011750241043124619014885008928458628683071582283183350612242190768751258279715667804910213074436751242081395680260119033571037756229978743924207399803896159584226786875964067751474586931469114834111650027145233099794989006988955463142488571475784197439014689516299612411996963930203050086777991971181018390340608799280215343052982790736569609535063470977305267783131628427423233059533261076676011039723604602526081468685310218631504318928264928252420037507359871622478400804306523826216280065712982076096068661374623293700648705534444135498852653466401481302053238327010320379891409317372687512815786458510022120916364607505334823424123482182734906958328087624935569361930467287770175673475537334618276531305320124799100019839548080569891693965589802211833229042191657488051819617659928088201238749557536143971601610843323056751729363376034961532264067835718016397805172676931186164136307893621887869383531098971693719885481039601104596868503983664043621264233803958676015135886805525202933171514801796846786244045900034932464946320084194893949118938471229209630432740155009577302657084711632486667182875912227649072579507401247563660662439598563385839127287050477478264211799701091842952697694717436373493128433215340916240332391435625380321983002213931763718064551395975340702614246476301534604666378004984151091698831450896368451148175826715086830923316522621644466884650089909359493324140986331323747778673638985723777445282904693343479169574265414705973955106841627827503489605899071379818942731614098990188310452714378878184756093292362773726079458478634387790460503636011225595466248989944546576202573033271882441125587566095716714347510586355722282428700531460159791417645828759935534437217886152914739371753438258933510931267596167544430333279146803736373481285787911484463539434176125332749504437617283084433657989700455938806602986043352561078669869588868142059202246529707975342204982510947318398427740350100598806217173158086133336952139176403541751243500544721014566229702580288033000366910521291210148787818660985158411669655456323928895723345968407713237926917015939565656838345540877099131731907634345268982122259827973956404935555205652811898007925799554137557085747932367519870253928484576608596886776548757413462158946963185739942871585629750467682244823164387766277257069390717289116756377273753301709422538147728672403158179002625186209476212222135178355403252337061214784188547620631715393377999447871674323811893426110798106915517204526439010161888018590759002547287475489712033158982901825985850208696767400060956913655627006913422045223500664922587501969555425769554576626240666181363206495458778163685259508881429358358867642032863913253463280480520779318554934360190149902071663459509522777306919677263996462955389760553707907921200512900099421171960574729350769747547926016364564273214858149931841023261515613781175040539709736666437012846933291470099516274176864109973895829945390277638425355006381621824027883567586864073695800834308964887401274484122923548816864511564643620779693518007258556815774297197021109154417309148963744056933999656273917732687496043154772664252773226417761101317374478176753402933931173312642009144715893738928384019599671565955883462146283044270110753266175344059883898052595704455152155907132452630461092356221606529021640127206573050016608845606817977731007498478071699332780897742227380187068135612808011668970740415700527159403505013637421054105120012911633591930014001017742430267622014770672776730917961161179167013046184457126513915951649824919440946256233444544741514599179102588174297386916010792142797864044298769746643169226302306000451781726755541391132323348139897062692241386721745170117870057988247627979955720680054128945038069700121636893457473224788170427841112000922937330450203463426253999953559605565830481878306960220666618092933046631833877252089734937219593532261957788225672927232112853330789523675419956052745819643994085540238385172336666620733468801141776136426467643004716550322473376004553089127173848406156222265551493511924032761988216403676745180021279194880094528587897916365760097070207879592125308192030132614530557699547349023140438206986930264998773937377676324370606290050911301616829832598230688289554577538098622235131045504651851959534295931779316091598275892232092357886802405344110766113246846901854052124875952480935811850176435322383987599428067866368610447224607892915169879918812745471089255382386759448491682394808825336901879240613534810866121971690316065831612478984222466976589327555336666313214738378352168415421472776567744654641914560633503670642868115992655075577938876131526452609437053792176965976544708566815912683502173024221779086890433441875470987124249569456434485601265339353304308542960327062688485286010854510038068458420047958033879367460405051047554244835814522155076637006794064051590258778960391642059188404934808024340988231359631819687631110910677788160626547254776811811904786539006115580846230342675342065660696855283372548290803454212568929576508532665909142739570254138775066832226572192976749534818096812858968931140899884754923750299491829192332184349245190433294763062971362641496338505957547969788468344082936363991277778565838036341966371357349955054485066325401814345266530291355373993178715859005914816703925393528111170891779969283911610351130658324035405073231936217593320444221702383467400570621977497126625783153580089987078683182493643370330762241425740670475476283731782337571438708007698723629536651679360029039024528560637481244506354652578105837184411596997551406558625005402849563517206985073841748874125259197848311629251994377053615193783649472641294025576217678333666096316100591051912369343997136629648197696953647421234625582018852103099684244433232407669391082969352074946295464094469734648518607360548511749598231899673359568766352102420176423128774454330375042515812400118459204415563472645784924465211969522639631404393449523966378476736685946180357036897917602555682659865397782007747819443497689109815246459692602248666832519876115616224820475543188469577888868216233626484681728769598116747669478285198500309472991891164541606215778434517663677128208467704498420551797229447512227111832998101572621392971119592228027800430848739549580519710214537156895181567647559688976243989645776207301562980184367015903429377536219817769691360123880248101214420463194140066848908272441685852357731021179105581607036343102721137888694546883544800315752312991558449067660777179200144962813775492503781083873685396215730034556583954398983964964753619547828316038898234601360584397802678182367430313097423977124317732539540257627381101934071023269696402496664437307562553816359155110287532498796576680661961480704464161939439330577786573302859170764408988908300206367673695041878205010047150559836888928229889957607446160362156548435047960214021598535136235721420956623936014328489079624241415337855687122135730255643906868611829554969933371692379738239141376822471923186794727309816410612554760041271814140464250167600485970905018920016446657878075118073429786527056389232834706916078217493847985613746891714670832623673767626173677013256545246218901779470937551734737337631340320705293491937212617621017642533181892162537735667159083417297819212752210547292173394055940494281204361232497942442735171838188375110798902404434166915283517516088107126094051748703997281206929658716988161676901229971368988111297523615315146878974629865386503020123170797255091141594935252075505803193471192822587032196292888907441060120281021385647684282981119297232252623953704251661819773065937417099617330923132818980888353599696187453359544692588132008668520824809161798465566724285176040619909272715937430878057078054287502934224051474137909137586866157809523941624951271839778819358033654932829715453413222235003346441681439189220029775294821578643205568338589748054922225274957226201234954415131811988991304606309707223104759466277754183759113542827315839292941115872778834448563315200196812576436391928677479280222954252171305432506800603535017027313079713784188723407515136241678255150560180686394314302537972813433474032665180491393472591340361730462116135040836304569723311999834942817141235156275613659681841509549948551230624643229183408546381412219487423042744970184367445823530782375221773369035812542270756676417270238818917626105178292399922840495982356277117667258738743505812437504077095211806604446154042838920731585439336747131113472302454467750464675088982177228080911333294697053129740901580921581697122651476337766086133361794638832286918631966605300655102720932359378371124820489975495996305627407533205160998372806763317055259170228072242171778335598438387004827772703909639361423322749449158997752668220587264962793073732014635456894654738064742895603591163579032083302422903614310660134629440055683717430499700529733373525179453285423226398035821607785807197354695698897722172003093652755458174325827322963502543102940183278850043478125255671512197964271878074142903351772588859144562703249522063835470184449356745017128625319971747287934519206732027768462638322223143410708524136004315442046864569375147442693036823149019230991282497482088839821718366700497073691836705986356818918472765490833366116338355667806555735087248107900979688506674754730982803351177799245778640040244787211447772456833393608899599939204273811307686299986272606764096862021746778068179830621581405912563376039685111688406129725513987820268043234888948327780982927431534281916293678015198007168230626815490103438189762947420515695926842388765541354271474530262484433044194644645996582717334074098358464122287544655803178816232507856316854520206102340663937067397271789895882045711336331401820417129409568294260688454378193280609455784086203381222540795251724167175990486879069003277608280238519914680511879342273413846792028277355217084850537855482828165453798749675351096296489352488104908563524975550323250636483262318497846742857354516565452478274210583032059552014745582665523105838151338481210548627929837523142703641342834338529360993851836409232402747194859405533796102941806599212951020338945240040257237621484630964671101611405455461561847599163298888188975180493060985343128650821474408294748855030704520483835328480286410404604934260101103036261953481314797024536047930473484102925797885086536097937041701950569325928272903097320515937459866981281024331554928085143034034733610311847556444195680422897783286879547618853297373398008679975679575154885040175305824585458930854529175996435162034687291275980999114411347774789916929289773034822905252449416506778710076968133077017231314547170180574350311559549093626195452845086985828380187282137390749501415997539162646196310534725810186323178953886976323921539244286390101602824124819183891541358385973030342246663208294799060374477222332092586210023624190662395572511801710830576075699482439844029575401591047544976191187422786827296088413475461042066883574661006558656472941412423801273178839871431459034020543698276920554494817559228850438180853357398630745107617573848520731729332304783672628185400639412793599680656871872095790960606621741387995297274556109608445710799062328995322405962643374621788700106211841520800882260563125249014103333735093440889378914727063969563612247818314139537900908095819353244483993453125461180008783889053832344721762427179037995919729215515494755603445552134566380970892525581780160402450236839721988503451263356835271193716360617758557621424386492292505158398351687274436884075539607476887263562542198944571686981753680936730636235886460645963602612535664248428063059935651015888219620306782794079189500530202169891402167027714824241958430737903962776216311105595312352696814423972635698775909823697983806058713792288648076647174151931998144746711669875084562410916609592849823767555846719352394599722257007211639755674123140451093942812678553033805314672556423661871630605212548243596226102312344598400047165076787726292121017465963965422064354826633797240528401353764915170352172436332689232434595936470345678599690045274409526121634061019958021169239959220964095155643481223648969348791211846590329657894052686686127892367911881278563781368750206305389589945237908817544830057818322619711671137118655315698578051385266241769307541488093698679137951351309707036360175042279115137229759755687728964308791032218662975413588351872961041918317403377436058423519327517031064695246921434299989761038324073005255719127056661504231278209441520792793201696921500702802565462892332895710541452954365320100130354115849894856637073363763017260851744371453383160881018209507356024364928789930270765675516416434023827559038596356771361070986643923227699686612030389802316656123379156123670636109345600609024482438346193537764728787586437944635811459158456045933396659014650519513740952949147854382245516435602240935380063367400687327619106246335050501351898251053050779893085442024643164671566497053982252186702628913375862068803512647984526635099759954125346218481070209776303463071741030512793885690477976008551628409442497296975689791557732109927020880263836267658410665141306280377395316676402752427328926173785734967107552139043127496824850036391547605029012805242102901636908556089809650387077179897721486047881340895276919521053462653890153876186275376425570147946705515312757865491908429365557403424314537720802010362945186359115905714477767442339291839730223014330766970567076690899137575516915685240706657618887447735415985166630091442248026849831597477367103029285777590168999403131113559647536027815092805650416541239134672064842119424776744062015316102198289932166917459864710698120309711053925326642805635453851971693220784844824733145809919073436278595544372340606701336127626137443315643157037005896269322993598618468162981893258043443927432794640962472372181533780174777821512375682583840010644608948869280894045015465024425279292960823290131367968565691903997727585742641646893299480659882806167369736148711248671147474651323798877010592741417129020965013334513425374153641281557752260214355339584046065478939382230521903952862652832841673070576676944625357076519728697117564489008856198241983830075570262317187297275964494728749710959784710617900877960429707016898419529421289052153353616837295088321041163127914226966753282116610822653939220967442992355505496970229284878966605083364145810784629619616397831369010738336001361770133063389438285152394003054429861917208249582070434199334919739216802656250224963550001049097402536560274761595934285115074215137927880558694701309722764492018623637167580483549748561296963225456015499400959917149334669617381703018254296944847841148954188215213170293852720273447318384914271470530757381285519512065118040996646679435057176814437725947264543093672260444088798854972333038967819155336434941545246428333276602913293190506768378811625991871215335643371711361021919796112566488675504681436854408810718201445387764752080776782824097902430654436685891118914519148025790834744160614061147670724370589087916572905165526750765754958088611962046371290862760200994358695631133292185777021508707404896452527668211205134036985881454453386025435441000154359104706808549659388973755260398249710845835757961239723758859383386803327186286306602248993204087495065772437558660436062274844084212657177850622163764040164159399796770568851607020341405402974652599681466719050051523420443215261632455128309942260795490941108125815077335505396588513313025415976304727476680351706300985807967506108472445883646154559208784443926860430477317238037822917183487967129478096711364538980846999093990897343763963444368922664456475157350740052564526123991745999346697896111332131576443962283514764339582725303192812291796857473506859840818596862773844656593005344033845287684055592345252114657925520413592468404030091346795943649865144426520696717160368528441814343002721073321585742583314830496393232424045631983521399126464020467680869826084932256795792064041950635424205266738652677795378488672226328864262372724751018137365975579845027250273070789831683249665258501593069165144804666983617167475951088816958149562383994683902268608389436885632318813149131249480888673875279647035017345411674706757431999422385399114160782145289012196052646482595286589083427687277469363853610835087833654125718018232782514338809323440741777177573846866743066850101325610385809154328392175128013595087634444090624122243211811661928908166022318199974543879795867589344950186739630367543485742014040977248496525936401764060311760367243377968256327514889315774841560460740072400178177861517992097963277028168690009175609728034203578815348587038703060930318797515735090692429808941306953007126540488694905936999913238047326115738533105005190833846482703920465390217898292920396465637127840785134001100736497396284382918301120208789000982239865506100371470518596616024049540438798469719095895565502534633560026417274086773277283998380503850891572461210466559524224816630914755443393759046159105330211510150380602892334135232314152499336491438600735471141252912484206629045968630290664714861404157371703205517772464001890652475039213988368510807235076625318278751914610419158815815192487620343582129335395324067259796959473841227373766110567006283411198817772411046550824380456510343976980791663248169056595007178940503897269157497275634646732536829252899066779901045813096431428116389576144627415224688042720032797010076861851095283225206201713256989578327201321932258550046208676962040511201694952112785292010160310249439511375397440609173349442070990269851077056422030032101090969393760331200494912419280144727086178257447154060031471070612630573481902980329005995267574046207637171922452585361649503611170415650427214112777093864129727331584361050233422912265111513613814597841736250570969257451904640708892967410681448488059412582152855877928750547219679462747095091498436419648842511716785156897209948149369335051909157515584783912768895355552973998630947842495855187812819013636589311473922589289935382066327064545334053988246857877028035843882920479817697150181605953940976213079231354921162451963420094150844733410033905100918520499238874576747104224675246058033470431582610809983754767254987385026849234452428841616190537631358479970284123084537193988353900967366882261712166492113203810355866376522762014199301457916160613892249786685314781762294704803744574968975462437534233971048972244670333448035926380831266500548578591924631785799946037810976688729911177104501737139910467464343252356386016461978888921697032439402114264462635446953099635529314369325341143020866960308452797055536216524176673329697681455133558661669358509289552853589716173390313676941342280731066662843790538912851091398732837869694814987960051495551444948568424986698377148291976747752679270955917156439973662224722204432700109306046314127390063567192360365056739238819582526898011471453246645907039446094828804877288759379257684382441225748528609767062264744880098223593151474665364981935192329684367168871099899062675317249247307098079894500078587297211202845455950962633879578618349021149497846339760109732767324133648397986019288204962205998009854447381084727655590444676726048882715921112567347847656935766529014027705885535073663358687608482605522733194649137822664090005804736521003636017707010880297692864039301932303354772188470875827292347874132900776668927849333284007079868823136765532385705213057285803648788698627816221688357453617332608734154308421095884733844132293806561127711513715288496719516338729540924877264012559758560363256451025573217626288558048676818083468545852079628715783702312086298349240261988866809895006262467818525156270307950415207057350717504277921928787103265678738236908581028536741750971013400405582508986806032867509019307416711699433629775676451090721034988386772487181377489487721052853971945342536127622801825190908374045765356691567644491206245643271111837428736688197078516205887367083829347567480367325492529421127489980211074604051615206250232826656141978998914636926901262164120333497409836975910130792657078340030923962818708504892267163817018767597289611692254397568171355609097817535749431111618204014497773187576388511595819312588653384937026146152176715827086714362047304418239352926184412950033564624921732973767764414120170618235543946258656822805498307025909714623037372342736381560997582457405313293431140455585982181355256551432586354528105485666831294974647403603256001085716354311574346402022831300503262164588925570865827219702437762335421325468717869956446101757474982202215674061463099023306935176703253153953699826813361534913432041097896710081086055094787510844082677267287536032683100725320989115193750102664530777968457688954063273244471329635928914033981802162399787895921353411306713775891201246385558037055910939118015441062821640275070001096913742082350983552849773167005426044870780229372688025161603317322747832375656059121526876046512582827025819022021222100616096833982286890316210009713766654227989928589894971192764317800766997433897067508291527016206778006613290289218030868781380953528940926432192048001826838726898756653728232893483772827587102918374772666694085199863139160321360882402917338854649093330308860596718321355861261100626594892091088749690056768913656162793191472161406040653442527421083878153411143097653245915194793572323512272223785624216478646899682690668066952104232713140408239735388775052092038522251967312455077127072227888786211528151854203700891727748577589909511235883478171396395449975250084329170014383022404991866843555121363393358997934298867932868026964054169447498289001702093377742319954544996403952289047401747901548474399637119891257982556131858012739584004578185042957803106414979171913350276486619643078251093359587133616896667451565658346527300357714560128484995438534958555641947032916372661259908836054845141415397409145321045681750394078904763669712264370991583497008916875196315567855381106321846965956056323269466096054170216628972940297769601564408104949000102824218766672639104914791169585291526079173482620303481360363289932144242015717510504690351244377586919630679006064682231188913927885183384049825873274099174051535526769235601171840167772898027610599307635297370909712705521266240052322101536285700562264205251764298590890074370195015367847244991763885598189360457347252152458670350510985577979303007511756560911615176794298617622362464487648279662648776848499127154073514211727645966696994255472285106305933793919096838606434969495491233029632312253852116480351394873335275842802974824007571446927133962430318263013515371872095348650245904065024455591232267519709055994645001048277798874032503927255261810462218575967244967396108328818138298723925949446646787569727756690416052202015619224077145918461302786128581527285462928712424344797543799186874740142336226633658197397128179382475247103861857243937238124317375775876591045542878379320510947869927508065280825296804190634594783756742269745863713575137505080941572444254273387559789267275881906453824566270317810170279574938754169270062822804701684744956644326208049702905033639153366699525697382474529792220292000093904119712033782763709921991972087254003471516999684729067048354153579087907085897283419810850257469616310853243085472429600565508855901373574626741068584453900604286576126393528303392974720183136088600637367502035395234884282283946927334137106245530916191530742793271617482371498301331457694554118118318401419133167764344549982775587264956957875282966019186250101237815710540203480742810414030769139603040809578698773224549596021830474728464010158380646709589993606730346415597707583872083285455795449593486821594379044614121966176512694769912317799204892958821766553753714122001079068314905345969224311957718330665352474027820705466706525524712651825402385627899348817012283411181938844929247889453471531753444058322555669021298038894453195599851985057401590554366316821170199573594957926890084076286346940461675031339448786694804551690682895918047677889345584136773114467978417482752729666941648552544299371865120653189422674272890130861507722674978861601194229357665287736780905047367435740490151190091021834712945010976202238139213877868284308301690629163148000883111883477806387575109945289522214067474229048239963717953693155462514948785216538524765179399619393748159140211051639896354158734664890894525415471902461350790093743520216885356414571052032757342724868127877330710658222595930872372272421127892859252227445705165890896004691237566392468790839186072725998649315312599929302424424122206785915733324102499907452673344087630351863361990073061431202711664812017357673474232324763377552164768596882970362179788997009479017004954992713085707731811533835475074537370620087875593718077396707143407927812331876032551347066838665038097481418727905948710343046288729379904290024251644537787771904374080792560954869645933027199148777729616111322284449029934524999985170680080547608210716516521563888434111585905632220804091905895941867779349089199742506420191935311490400392570697399609350120896410288308991903055856358579678757414675179705479589409005474875154445647701430375413706568508843679732723725336641836838303783992045599592896579288809795598013387258883327078928517524612100996127314292497277456394755687362730814037216833524007817081271786307618942617907895461820108363930183489791251670171355827580520644740952423746043207428093021041448476082363988989948153960623332306131427574854189630883594874395785900607926261544445517112984531243145313531464258157082654069535652809940687468988957416387101512344411329771968667166091278268510546609228934692865919810246714567701397339490530172573597599540341617508406785331067845259252070631125165775447730594757570161816279016771637240160688829491353781929183573630928904385484484433568423521727413746214739661892074374312175859912150306473380338336453292839636376916601325619611022543984894574005485323067608908954380136919682621502397281172496321026623458861647723674585760747152332234148800347799691653570455789962157984253344337975673201515572771676744235044265885933616859573685920820541356900944783540321193880533703618070378225699135354115877132483922653934029495862088874084917021361542425242086523711259282034519325683122616826226521747371619350182300526864462767703582579121166882550253664375644649763959643574187474326247167522888992776031059787276899356727125769468597512498327574797942728585224690389107452409062308198905861844522876117805119904704386128673112996173048643750370108541568958184070996977413629105923947942254260095991989112964722364180068027283667211453574965238295139332553276608683769399705155620872872400287551769451437021078239828117072389641331440649853255977197295649903971436831552354105391631768880012513318795138406218999422922584098536457394981782644260939726660175576424144178506179807541861757434739034170561850657338491744913818731319297705837717756116927445260345504273346646158089311791996413794986932193808083156858350126746103778663202461081849978675628258607823462895822195432793880174021583065415560350257351605913916548866255880856790680759609667454077294410536646667817535251238184036851200751131344365536482648580432258557260009647919070878254082178165190638371424968342341464278137981681820185550029971614524609579653888962743410995464686062988602773116999046379896394658420445639656744265369292602285939603719063686484569135362151845899872970926053556827413204476166812389013540088484027629548228888487211394464299293818126498346998957690864355843210413873221192339448932283678377860307852011001135779270379993644265090511246575902318542094090819388324248393811315146974535063258709316110924154377739670645332294612176514019124869890617012568564292114530576377675445015587637472529685045909988743428425563493014247680000169198575600941425002866811025713595708985340561774662857776174231638162020555437811730567521418276876549874595158707858326973570038063559979332977527463138195599185329462072236406965037518947349134182630156721930207825458078905466221712826320371479996194248934061776648907996103231948905521547016246380345782981490584544542301310283875142564411751658575456523419131542806139663250567082315752255611201639079342172068093719240347255991759380679531050665343716430259855305084493286863499534942152508698727038807248054208296856738586638217667164772265672421224682805115103370531064313598967531109970991380742849366462185986440640444110147752336813273937977467270876593539556233992800290830939770174324774670048897350448487467424434487326845683033082987487943876110949167693012277132416886522661135606879676641634824906145438093645617176119728470753498537289032080595683204386109712666422630423427533876183253413357984831067816859778016777607592270698858315062830761437676476784642214441885965407833899625722917959577412320828243596243999318653923495534854547747026720846968494453585083346088124333117108699950848200290010280824549536279582788893915504583396936828918853139706227269455323067829572047796591376258676620629287990752011882696289514736137521108778304573863658836709018225309803061818812751822283849054785294515931806752528915688782304683305419309590261990524001184849873954123064746376837951942408513944050185066801060294736182455465851519095470534603433022607074636550135133780731153922237282410796160518966980193651367071624857394069860718673044465010438722961617030369453405081812311569131180514510826585691568163416078248180103362993821557638395862147499464428350038425346899665027082007435650137701472412371840620348230979565027406985325091487221442562128810659885874072276355273047780015033547666474012979296267881098918305531083973990050366378264150547202015405026758125151796615497257382331722512240499884358865811134156778328473703104980166542504566129880223146722863984034936663894979883530630168211987477124089365906343577800279492434096520391530300330992074497821565439834437724620387605931901896761396065677985655849399175847501212961780498269139503448370430992750252562743363429936103946585512624293838557636389582890112905303740756272047181288989685608028999437624482735015326509447160806839777260752231930752436485104485635983084662744061380127518459952651220449824872133379300750903423730515953079008768134207199722431556933548198859958502835882685231928622610815569022556024175800780202190274688046687679832894302429069596576238009962050389129190574533048354685719459146014254643752563272601440888128675118443170041825994195481075420953746479748928514759078303019111094007349718625132378030903985290771056141747555857492202730363023731169912630101294463633758068735580850946334820624583804944418453019279525643086507607785409029498292997567916602905038631518699102832090446926457219916925027062798044951256294048356154354084641909706715268517684440076114773528920711450353163926802187491034015236857812319041681746567961861389752215287701659745648326795936950340246895250970668536816781490603783530984650984295238218411590172981647776934676321351406794711678022727357985232953563804337822930541220464477278687845599917469027978248549248902170955808121289662717241172573160055387331454941336034207787129241917419771170152350602635904607023807679835905122349376222310572485720664009236612740863228817971718633665893568621564738897447206601752466598899465896389578153134564126271506365642993339918995790969576221035705768439441952425995020014958175801624461006344704566363008240644006445614908392649275116735782886910069055566766902202814513395425681365302296480559358242763931468390009241763460295989603235513591598707065077208470325932097386129407544976519612583643090706271058114479471346673499301100325605118920591590605251244175193298923787087846723214010201382079467202220781951202796723243439642538720977150597290522693714599662612615384278269773793522145476365885300001521675089471752460804703198233543081962907492333120047283294446491065242384197319171527199820198145391799143413154927876730872306991225769384560453926382880253385879940012796262898742145760763712600667611098083257877190477425088766542015433763014390855581607156917251294114886779597913502254415265284943111512895351985342211250685156884168026594699956763092453928548406614403684416756987674563051912838213575055313409134542406681991975995965869684199906212261986942265282792985210651444181835626087194760102182280971042657796724055668524760718469847810749717411337498438663996696429680805556403809926314314799098921512361355110149701634352251208647500962599101665647076377178815234881232855255115811335674642191950303728449157759291042802475511642091538167998241751241227210195361506645861633175027492687385928601597807290452866369330665276507411728821653978446018210401725680526647300386738874198952107420978513807836768267584389745493190456140255548814912799121504322608549961446658746103530266355013423304293557286313033739875946564486962982600967883048501404804580613222627226962003373254970337368349404779203558543355513208842562974763274615171826754102348886623553037097079292360696322774432395730779708640912599007874714393477854905627418616920573937602228637313605050037265816267004342425954514278252776143636719048931839830489480993156970209789701859161076173621740238866709441992986467585211438709297357003320278477367746183861090417598773094296534394549725041572719937064488601098205503065547818474301721184401420302529979413380468273841873273912711762623008333431963093192978714901983484074502814713171357382644205765176939162870645081361266723593874446352397458194662647909761013163978120553280895505705492625810173952706809646184574508989741845096968148257104786261713024904423939985900078505999571111062967056315784455582074822873198956008359978957558536146629982054482463698576576978591947628658428436037441599065668135253603599897945894479456963266022446324092852699200341875320852414577542482843288029720413042382259577207675815936352991723646091747496908009749370374447857174923300676034649031624908132061375291213783443531313022486861979376566586538331298501675435999601471954330400939713917104948930163156654834344354991777857468790054054269248620254718271200146863964967415638694782085469820452741206863331886917026460530346118567356817553960323435305018655151701897286330164126977989382558246875405697571435166807767741183672726025958150522976639738751701432340554221179068044511029013217992277392523422113611522206194623980097450256383404927062052028289327180370794243974668529554245603037123933153443818116452129695702002788037570892902274012598200045540710322649722950447544620571440063060831502686518427508115616571105387486959305260110783664217184066398010104925135895812957216166750323276297104931063292978428680299057314575796153761551812225935678660454487590551428203761300513707023314719568032883027499779516285513063292615620140349300466284267070388547030935566337376636541836543611642461387641566192442277305087391223018651645830531001907287596727530631163327501071393745782207605726338328733180262188412982100929545574902450310199166956351712787573748505146064783405068955725279195074206472098298512903560827807197534056737221959626843289382143796938127011047075750666155961566808462419484612210249049042203416203497790895312417724266813543657151357204460285916773408642533058084818993801846834197187902922629325693041575366696773869837975366293764769941598065799268252039427624781960316634606023275721378391757762879908256578723029243878029356889191127830611248835775087670649177968843079015686855440180336376560406800029140201665810005401131723358831289566424850207586447096578813870879889916262252832723928609118506178726816583817274407477297494597859607444089120989953988414004431153299942027596061061457780857374333963182017844118658138012083117679704456352864326623999955934654384166077802331723273702576983911926844437687959302476899571273778617522337759848109639111251174164262164949935486808061264909822151196436526906188744216581040400954863214784502368283456250066880034782292033365696743205257939779013280089985293500646520709775795590359676198126544859259790538327704387337614352003612372645308017067158603607780346330246156954892397205716925424628498802719319880969014005101797758572514619206501438727697290823895415578158257321244028690478962041543181574025164564091827281917012087791120240818967890228731991301900735923448529981453643962162261480491868156421525951859484440691863400955389742549671516904038496176538735372116516242993565934271806518025891867708713326991932707716029487667957950414905432691231377585230971190455136585446461299241660493946549300131844485846607801775517058522185282200599347799729070643945938544016690254101379321257722390021214904982888799373054287720054466422013514210993755160066807864752416875030368587968501276426516110327195085743216001049472860461089289439132701165600203868056839074457461556153416241474341583774582966876242466789387136386757590822759874870370286718019435735906479072795390020940325595665893525414000226911209553927155554497883324411918636352500097929492402312589049445977180182550313580762544523769486923460276071150951345221896193659586633941271743836361319141696190658509163074831556724883447047218113330416306588413523102001688131488033636979042652128762742685714546499061971007791435888653936585152500672630569598269477098170651847675715037213997912909422385346322778279369403841828308384281920180831062826252360893470183932287472614574582643841129025600839535125834931803268464229787975665116284959121811495402115389117903690385002802009010201751089047073024184557142847578911727466731260321706963258455544954431187030007133380434391131469378029120140525033963432935788042940079848927249410234658155785427104665357585636774203100183299067838585088444134119947861315547747098021341360483253214969464586387977509963630762759003984420093467221599947842978972578609808082638390548224127496340316604637948268279186486731331700469296927502394251989984762669172878134830910130944302664000605157763601395490034936353235786568290819207363521442069749818838647787516100394590359455937167965144270239707980606195604769019567601287295914842975753213449357432187220548027878570535658211281809865253826790369315266267984719469159321922191542812041738743536582860310473083284945271212580449554554457995453887716269526520709454514555165303487915472085537693882245587778809204522842330730511194202622019751871854557133054565234845133943389504873280867740031937362626904329124536265510865351544281213832832717106786268071349068202899626039760019026212765086070711165139094409126221422744674128050808456939852861819600615870232696779724964773287794362496642146897205365103937000900417568116933764739048936023003336966725008728834362836458226245669603857601804629923181373402350152412192044968091574891135891192090813148315531160985699897525612799503718511892498663646694021165253882544847087190156706485309630249591027485568497684810458115405848376506425357182790862936733594206137218286217605096917241227860485244851459636946889153476564809115528791358818908196363246204790555461623924673362070854183153772060635180680136356267621806389792789371148434900021552830399189405604349762660413217197895419700122794836630765538435050448166621122154752700961025075349053554442180053059635495918857544137279767801655291702283333541421751876317813842799087070113650324804007054524144554056622429261934667794454113609053825808804874013872254684718124142506181338167468489608561176720012925173668640374949970150515652958708362087149342844183083455318903961289095165987330326568814496949373126598371879835589828969655583889472069862267112208816281298054559400691033407540653285610937917655954681604467572073800024474702807610816357699017280956691883997622486613335973522374391291699827097091722184398705960280302520045595126762198516395034145020753716472950037313101760799752969053297053531403145436985618532788490576277166309681279497747744124960942591929165698001495813241352784981081457424720447025742914916755734449956595675276414015544175973393351874801606541283041091550437826697738667859698931908724575815656787161104720988318864366440013969348512376816453115146741159083849737296735822401684190015026012371274542374550471081822160223748665891615158084187016468833374332860190838855290308250526033358716903218722423398065539410100071116822012328988238916597831310707840891326959142077323275284206715311779393202082523454079647707736227048074685533443608796143628997927017325980525062696346509518422989357313414922745466443089502377744447717724068518006429639771002684850133086603879356221878220867829010722740131531789959364420905612357558416644645268493678173736048707229448799617087285987844734356716711008338338778257580457131802805630318973255106782909627489616615366095432686501772078677770079744952626751195920759608247315556464652811019941875702547431112244517765724324318653104551060466726182806586236632843263887014964321615460077453870859856183678087724262054724120118668915248156933500138958321949205080142557728923643179136049432643706732625968628447664071311740911892305569062231921959726381929274255135359353287640725123982637158381469826525699778543454179375864640671229869400039689860463553301774970717366214544860804892006289433993416924435745934719008980546008085519203446441236116535374948719633255741964342419797986418093833655494058535768480564734269430018791923346229012950354014550277724694117932456462425126223415115823318880646680486418922821936870658169385373197481648096693151201067435121630895232276448997128622226571422328097768665850322937953966507453456340220215858278606331976626783057615494046218957000439655847053068333328340296610467736466142977863713584745208523890321304156259519438704991517654727200238813988144386893337778369785133629735541041951504105588190854154749537463176607070951175677012987890160002477799484774008105120507056707773646505852340601676049638517266679699587810157985853561884415046853511328076100205593001337278782016529863693316408742903179736153275645430998285997358924417856350897047080729092100321335522969764321700722158164689124969859632099157413669433778815395534495857383124288092726214972895519736921219660199727793134784819326267491092321620991343300003949469087642162256949938506659169637959244828689783936640706493525488064994396959109534000001870041030603565401165862212475747876434624870400384958187409672332230173118151796632279188131049352145795576066136386124854498939849365950504870461288634687131226928893369576822215929061822581587869142624875477167311606376323954649591879239434091079689625254715928715180370055383138217626468646659642767080252494767047536254067657925044418734852382915786197837086411159389030444568244888546416582582202087594483295152769580211762845323248948855888950530020641268228510970633981910715466327031984654088928374877255167972331609417358739464821120870358046289502664513015495232480249906606001609566155062523574692307928663264123482208777904429113676376513817829646723373268038286634104366491366074010181650078691856792043260589381695190978048095574357454213782740682589821739583896641171483382186584013656206197287909828843654242354622497405040626791507898728056611220881866232687152349955011419853552987804177573204483472112848440663967138817828682979361075127743665505473840779429581854319532433782050734917393810914282522486405689002577256836663734368404744431406023754100204472540469374718923536200380203728349440062677678024509766882996748722351591680908077949550635556037387510902161645872531368572570029781987850204144878160948145709093947887676030192884614511622501698055135225821342925354029762717262537130313582171858079231032343080895578684571931036091205491274230127973057631702699346889560903678685209233858680443160296861571150735651573354937814842315889246378924378829287226048408374837395239745084614027034208893619154793965148075082096000490952319377321987300350834529423349611970481632903056632137368218790734415739139073225704890789989366027969324885039859643846156939255835386785545695937524578497203537857337816225394993201964957871650870400272060771001252199393443297070888193153495104767146199855323876490284824337313986976681694256611209352735681854949123473071961369202944663969678468805046353665878928512529675031412673949978236500274659627973152651804064097917770230011826315024272225852006512369965427674957852352660234189544651542629793400586428859866423324462130456236200460616314213288808973599767819680657885056540176843627435132549324294478429171408329798014780620770151575645702844251734402893597403507303486624051208923501358392932869899799100446505320188692075969899510014906463619204627348777642302980963300024985480197412990792890431225819275810686716716676704095373971299645083984076120516431121591977116492367716449733093756770997709762613501385365266360579383104606201923838877254525397839679965137155323202932614217804284636280609539376116395309266766545353058115401557705202400588779285076850054223961857119950123438496917077819324442061420455957451957013989588720100822100122568411855861571337408729335597073548167374217683705229908377707534090983471671493264260121101198508985614622483360918516611046352420208385192682173551563548305255313768450749498492192541616111729236777166253802163793874635320412592839357892510236935427660058592140636981452611710640757139971964091551794560700059672883436770631723825874587924291648335103743807038403301698183618455217391490417263338109052392501551588314756561802596862621121426143760600098457649449686854985719294338558307557999007472810398387376457591395720417481384887351510685334462247530595707952457668472237896360867911788785703878804616034072321384231549754826971685674049770555539566430887039658734438975337340942306169135072425820701475909650622097216441673955137063001855523982489565503525859746004208093049685564265703839826163795768480224483682954751520100122300711874027536252834504276750438686931245061787684731200877385308745960916617232316200270351931308037713899954555228816577271254524568886292054449915945046722930900165120166996354962514455394502267357721720322631694786915547066826374162656485262187486607504300075815668432537638764484744796491054833435789938750342198769257830641912066100108710085099522293524133425788131487393529088416727799047288565502131220788389465708053837055385911072376085954521532719034978146160254107869409887500227591487316919140406839099037594484876988340842962208638187450788068050636153713170779059053034809889664771952149403392589810073721227676896391848632950188534660486284655730219618894418133499914745453218539547577628062849877961674648123966025872725199693408937816981660509847072346155623413491519288869621050177047667360689933841647093100933353451186731938798034400419455733105708829213981445637267179444737837419895715155122459117346344654392361543888146180470491940698680739777267782206244821450415867084719838916964426626515897652351145771717355416831296907454255773460286501671281432096209499654664708491736048576147794522039457064546022391382195082217685356302632702062447187142423342385547533489917252434914510303587786971437718511969191539695956599285381321187980968239204785484602040775969902607196817323971953224582647293260367874685423792816151033281638705947459978146066382609879899204983422926906806969501068034513451509952028717835657506933471915696978582310352762656566054923507385767935329776915591859212623019159385970931665007239944488918197937179154503328391391192761770229700417412595604427930510806459839528751516714477825857019952469931550577040537428532177788223488931802176863241116739268415320014820637516512628777808983148745216787499778000003798134213631749335104214617838505204307441548852359383646001063200258967678232307875966690026916718454332809149452173148480661049165569187910254996154621746092165091210423460726460416439858159412292893273840211975708754528208623179731782074825406521659905769725500475234557736734180855912496721368280733052549146458412937862628566029149204783495789204625671893810959035681963428111114270706148658394563380375745049189225056202686050637401872765012934347842567089365008991177029040058978674784178344708418754659537787717953278772786021753788341988018721025355359709257959337900253535058877192311721913621825176156074523839683909502802429832555909873471110525915599047616632968648591289502572243635759931976031054964408739834079009412166367216729314290022186457120262211530984625525138968452335754718549369081498990798356352444169786579072063307912526457482347261138199961984591011480650394536172772770829934528448445962602149619548791015704453532663182155481418235146853985546175824519778735105315246840205197202594552524161128752820299099644837564829860130088603705575303119315864489380523371572311709977787443368223161262996058180847133551677550978807855576532781320306157700083975046658624101486585637369200159875525355721029638242782401550869384677205244179917605108637412157654382683848555526737666057136537510000428915809317387267506492995076692513080636541014818805924461585041574071084048923892966529288693471089604296361080399043993045174612776668589882372120302390461988296412323762565713633467260768297460754993333940882696238322713062541365924774015181568993668776500714500248125573095422397793744705926511569186264301683308450266524445623483124328574162148002056476688257259404135834870696387599557380231609603303362343919211317854040636102944748815355385744799946043645400424970086869462490391374772523815220650146278944465584493097449244560823798363037155851223201064680290790713998269471658533980686532891053856336035019114143233702738833696202916535597589633253150382171938946255375237210457197601016917503595946189519656912283070125211884385614252835311384015143244369076994834296195678021666717394240121172330163461873519401410246260774309057681024227650655013718008034963134574029187635344946874298618142377074571736026551423326188359950907494348330334428399536265776558526793691890799392627145823073066533393793498354139648814535915726291241866836414269627738185563389700653946485525116799732617879260191025984139938326860207856382789447566741250754702285324384350060634857180193175731992642901668613119005890112451653949157516688195342056046732989166810720541530175539953481884108890209139535823131726755587993641685198244538548717511632456007586395721745127934747383447997430244982007753137042499691537895483576675696388350125856194818448319421326982020532099474805073025202080941760059573810323977184482182311870990140936003615131239210306875462807618789838414850061581915780566181880807723421508115460135536856213646432708835175572758392596347885010792022509925582455526626038811372477137642858522684252679229544673880218845808910689794063446868988820453977870913624335336938340228887085933974171764990825193594042540263636063164808200314303599458364863207795675224290473588276768954995528226120932420269676033231103420012223398308239327873491736324520599790151208574503214611904479230582762175105467698096178815934311226200672924547013545954425972734926357165871106637094226136233789039982321927546144294908210897523537004750209889303542165510806042361811980646316995723807340567512292950216586886935362904917539102546595656672108225893622111409928866485576011136681300832851161476674542691157192216338291383489915960216383908063974717284839800666448785796901865915023661781384423942699442282243065512760209792903053017478064667783425948551293498475986553812349822331845004286847317988606501050522209440246672420242432122785762618791093961653773937118030828102730187019351550626404176607756995505262270527974604767376823177526037694952224477544155174844748907114950207782340531866304882165031221931536209376013426034210224690771032418377977901899474505060278653073186115854964680200212015094500392292694291791928257246010601188313158748694782084684778063839865335148009847409415677124706619719169124534247168279285960285262165161118656756941563814255595465619203235438679283309061718475075192444358915978984706494423592378750527499430355867183575793751467581210682211850096659556032158656445216339653344729363089310787955198921343201826892905337137400671023078003786879867867817516181624775370812267323134812678213636543366990188693481963996042580210759686053563227527983249596875878319559392165795218176634879841659349309076399891757475498552105098316854326271842447728695191444251735125278517674344711167339031435904018435404682010955862874936750863705975609885477607931751170230475293600981942102219464524986532005729345773400356860406823221873630700792854822403878164868803727982826741620826518016081330364114997425923002293087661679990347816778809060093743865585732540173256191076364166932520720492534046068035124889883500978506764663921573870711105670511099021738081107144532295779033454102153253360924284979717664868550003149877365468012536206375800787321286024317632272896195254139410747130586760270792165116171858556826000151242598245790683800790107493097790632304573759262724563280113865111687255123671123201603174911316920540729375777630898955484424648150082188545434075841770572574023022139453980674201648079539091931257904750945317272960503588292438908115179805326874352213453077528770073381086427216870853012823924192623026509346028965095495496231271305908523205018918023393322890280249519158006164270750015326821823609406348213095715777298973358760314709003383638737446535787919198948081924866716493182100442133264060147229491894742490435793212744483896081746595082131991702786326863889111311092058223152576322024645549904091018828080098947760759496577412445818439496676216730722365844868292778161006123047797437267137781724569383270466695542317601735344961721213605518169576454548070836089753311691558776320694474121088551196290160362097454987898085526693270596623189984006389137459446017026432219782267979597890107529749246715509574313650628432631312607396334961841990719836062115940336693960915286988747349067630019121558076159087403185977976521187105562398302370846272847340735215031235311527032043477591809070252712529415560635576647283373139701691227057734363849426961262267931425199727235159572280150517354243446120251534574660443373198666167504215817089328625755690337700243018081344422081362189653653086560964239993867486284244980680215354016498902345265385501144887747482013461532824659593673970134563428696551844102618394256195857209143762280159253175638971319100377717615038800313987234028091626572032507024350750045045851934352598867779281691404812583781200817884944550656852941030601021001077100896382393133158570120385901060391727594190680038989954380906286819319667186212193895191238794088276388233667471411452866433466466499299397171323273651620437544595354875892745789252588764092460025306420454098068073969308968229643297412965369712236248673405448455041885569744211912059515434532499560702184187591605465421962350952367415488727163039393918162362214495922602603734855921806924551057330238379120718904559613522007170926114295623932376229553576373790496502803324428518675101498973272825583953162797251628730539999417834179883255560368349185926898696364968210842089149166035676287363669626338220592430218043576063549331983605283577996619191683343242450627213709638102668196920998041007657696951210177350308164829128563082342677755783518782850051642853603898528844622633775921022236550746333691053020867099019052951514756967056593798007741213131564197567263951849011744910758954178533812088783295817619823873983536306023111133479514457922958889445623078269753145864093693184629672321450693875421439898619264812847949004843745331961380046319424563152067117889858878731754113007784313913103328295619556887634952528135388771958840996151044380001897402389494586548924558577529771528497364065422014777873803574471834792756414126296267656988034567812416506292765014491853670392286976038492190472299160835440590307382902339927882235670467251453479812072054009872186025584297635528238773655923101213347601522063901969797426215018948497686205813435077764168876597712870567754188484820864766644289789279287472580282244017312206196652543558840865064438958460052159831912651632051477585595434039979856065837845438012954413822706569759066432266880934262250465664034327371510686884412314153082677522654325170736791546184625363824944911765141704513919552092281928952547652484319849465643826669582498203365755220709444611920717937791486868822550279840497718107942532143400065819324700373930981633194124643590547490168742167064903227199222987364239557943852207269377884237169514216606698933377053140128719069110775434465434637526064572521864647691006481573650992151296345286915466721648660827822565300929329282473105981814934201594343611340679125170564624609800840672938540624405074013897695510514393110765925685049767996174113377755969933231070975584294165808126405321493363042763181538334523960018480818783412686532937097441120567488784836020522490391939455548686420126116985952912325088231954331054898565095966199517357353357867025799237144067718810502211974367879026701900518809960813385637226379166885573410779333995198326068158863287340459390160725649557504007306908361162368496559944260557781834455825089766971019513165136328490956913428775360482694217892249932232576276657852087227794975534859881062098115000169822837589366997001865438396425495825323943882401572476683981502428078498085105496140298068092260487614428913530362501572455645796469580449468131686982945513962919621854918931916529468402339252644980316127255113930444049024560420047016352731522154948234990983824362002089131177175785077067669526150134126988126077808829177146702327613091091097561821921606982379372051610391973954504535266634224790465199803712610651589774303573178306037780049048615880051304597982422533904771874657236470774423949174694589564155733546673855820572866455259355070112290937504292569154759538646729829726252062013243750409917313783824251051567485565306793110457367310524338567089646823674031595599045212922388614192301691218654172652319878487255223393500894763678796584182182343480196359402575790900172560953082831077237259907394439582131229391135383019188743551440506050429484236204635423099891264986403825503056614332347284900866772199106732977251442635334578657151238590584619530423206413063806862755505344371761638830360267868611592313922608406924403455903063018815948385366957529322999724215626451143236538100724630766116583310968563381495271552645207762061448029043065690617132697739588665000514172897638522470672677021692558857579743353424925223706381953160226673176735730641687610382368105169869126321946325579197332306925363852155845820310826615562104804973134453366903103053140954458926565517361580956531723976381307229700610651851404581043779595232702844404963262256771428067442646407774420858951268838122502403579786769596186439224759923257601164063795177986924333077116985934986446936710809879930795648345139071332659660714214140289377362165327349631911636680278231431092981794874927710243987159082106455289403280396106249877805850517153630981403653488150614753069842931570280602447436509537448217499575481642341224337477526170599866729161079263516965807259016520681551202137278069911981622615067806468167062078802473624959634422728068521098856132530558344671729965370444280552014315945878643614296028671225658291621239745728795085576324497892630046128202361499180987095395557018193321837041493934158902786374358828521732605422762791615907516462416691133370410379421208691029391957258355133050151942319172501020173203225487066103564104251351481941981304581794841259794800833827665786701332174786840354028016796913731770891659242358367592353555030450084646794455003400563031031394823532425107720791457428487061444150316929629096751492581706095708039172539102663867310185279683578047930936379165136190704764422996342989438153735635762724493052062068192734190723336435911028961687626858983094763381569533441006142248759265408485492520145216558590952791381762857702799507045503406776146168138416095410452506776674431544122892718680952595444260454740394607522418166401744774098791083547556335203085344675578372044881579554292327131961650027135910927576909542859077656217522519819805126241584176133705917805396071142469869814513351033605694198586544514737822278415460536552801192202557477798060208086502556366554657984440534712787604601443787851121290116788088958021387614163157400640818712712860152393459293348174185432757857321902099256712686071590444129983858246988187477020440022679451376530344523965494489240576003713270380464868864564396001749313588880238475881499653265553360779235433935684804524018998897540121612837931840723141908530237817650959953385996485322011757705259072620282365299830712357615688627309517527360502623215776224544747966262933831893004461359000233788226843163704286078484614174751049656878415610331898143446206155834623465824316557936757287206947766857913040332907581992236171879565291393692188660997933378677673029971678245061366580496636613933167802780663510960537993518173006848565365702343273138660369015684607883976200921755056954022309644401101385981677484166940280071273169721228207642938767237498404537465410638902881516035470570136917282015816583620623122090471206013054048266673892752719006775252019385916534298979199136280782590150561002324247847434711153819987600849789998232800736542275978296813140509595103419341474503208889265749913097596394092768381143737503563086054932667004559383578170470224731988221740085342504612294303431573255667632943737047293201607580324205191705884312179045837406267643043831707542870548495947876781894333747928765400353421797654539048367469090667227320726621766300402387609540849485763889572006106611687656234647076069282871568486936489981286247293115660336723062267954778273776508486065742325658886322894831549818134040949680966694483599311521310173603282574329453449467657365196553125445207686801259435848419549578553498461507003048131818879007747334127793968899702373810189418211163748090522394460921532785285026103153657633174532216059336062879166208980814621842018942620914814906551929480389305313469396575263727713101613042975265055929668991213091689381726076390320662217242706809899750089250240408029991141977691703492590656241987922195886188603491349496300052405123116646280087712977435778367091766724339715130661590257012719627918428990741587857838459491063530600957398600739833399325322854684959085115927314045720066873979195669864941232862457208578657778762210154761682038770395238351961398935523938758711046656798302608628258563415719192422739912728747251536790420658798252244840880649516947622226261370305845401877092215662120227525002724354591362200470178039934990599378245227760669484270264654418975423634822963980931287665565273303884338392448481719258967407024772024431609925195629275937032838060824316532560729166461097076933214587531305055435391361472374342267907990013659508710234034756885861772217590269573319116765207198714593948757683696596895094121667489911202398939469356202222975127596518973684795339270544500958246323804385035925138874587934479508434316773696941747689693037788451892538354244021705761301932668675941208261876700957339473295179850583650838318348901484017290975661976274871706598709924061398700146759783414513802199933066224076122564405018482662308878934731251365265026019523779047638924531110141885610927950808632545397390379867269196512042790289046291873294931601268792847729777721133032467025062379841351132509344848801809343431322069960022166855261812618330537347326022691867078773300847479433872260071812312749404690099414529889526058461293534408713984797997114385177920299516094466460863570405907664782948014892012499873612855959977646678973824657066846830608128326383919768932670936774318299182729819689508463649448381979294920260510442910219003409454773019731153889614012572587147751525801167835770872352623812510412071449803106701245554704653552056764852859936347590186884324495711679283157499618759194081229062166748170008539371632332933962750045981774273293874898735832369388201202857947057168551573080038841911868955503563776503003089867722366673833427848403181699292129069629627153615544679113601348698100321265647805318450811307833034654148630251435950300851109516401550519255858972594939305447215572180691128370851166026444035687111812627311989590543733169366890877968906034537520903966637578808232497266116342205337030150300835081456900018776463054185034431355162855706379875202569359795069597924164936093857884058270448321104814146191096402374409440895869177067299941276668599127673535431100053029089747897726505155495213259176571963155054157370266871664922888740581863404865919451426442715949783970950511647026223799700123985905325235831333651875571457630183710817920894905186942871610952049445791374579315828894510850321500363263234054165948373596117130597064009383619308182800403149622844292467149029692560572712477931990588303512489983658466216713958317672262371418876065870769436493485438663156955271190709653002163114377435892166580378679531841752557400631117719569274603156804749205772193776685712198011652326151468585436671913596559795318546778944328823828399936162669733853095552150448416947115919495215758532007738928718630054315219411033102856035551751845439809931287775012084531614002272095863734483717717509088737278920797496961755529462696817453933929057275760990772546666726427187087576438115051022860441893071444340582451677113764691990581371347572866199036261602007939290015286466144647628243188392602337090510986644904468131093244587692675692827640207688195749578896501882761771894737219958484782327101306677109068072914851150878182387932435239163002392150385521187647214372404263775458914482618543150131402611377057981092560382462390032854208316214164561465559228430821323740747543254150228251989561762091186585277899446040810448615411128164206900653697351420758529019885946549997526618338667629127060495111959182151500436056691144553207850291633549905184249810486143289988709058681770928659485862777780710971011235163144350957410286281502437928668869538916726273875026643041233039285561416865505496162346593197976009375588714165435369183179426316430710096033939159910311992966537469070031533045749613849333631926358837915106053369705333412957625563169597168303651638001595060551941104622656781413028309527851355519565314177457906969034844139659272496737941099539802000260997543098376245703993688925204804113773730947332251786811836710298021822559245393984862433075396374107683098409700153207257685038811626786563965655919798530956252574810821706341925961525164408844133079785723715098636782885682708173003669385444208922017144629933251595566796760956055625449755866186552125071424117291832545598107598296637010145794650494701799996418313666977173680736349443710235244035149718357388661819184154957984104779018547673863784383445919485354960749574187668083644419869521000732864001018209098490853919003148008121521874575487436727769615379305143679213706492978894449409391335407056923996264846483330312190510257962905838745265002886193241497411701666538421633686884180424806017180468771037386210840433213954177735958786850441831753489494206034057247410960809130259220453509092996150145965808408094102110010908777651251632483809516949070727440999266172324909101389363972202842255124504598144980687177954025523559704370070797453506386024269444054842961845053894669631023623866812270351508990871565813206805240954674912927107519986966374207971755526408919363849887791272816367878708201004658413277011431253174113462715879318212793429233465971109627641634609340488630314084729423040336372274502876465205808108365778123968412924253330509659455345001088281530483769365257514404498164811794116040531058887358701077206931065021816717174035123141598468562378427945934755888928293675560081391197027143218805023517847876376923047637595074479773187814291921870119026921143055816316777302501807595218450974786865887775887826060864821928832397119957509683228961697435415128378930853186599761650311055711852393485616712427668846344009565981568860775656421879467958263600506428229430094164003201538886788929121488447993182969905874023945955107315393968200479424426317376802696640167732875044822351416361298145776790918682377043106035669787814576171894836330865455199957123217089144906370763970274698538806046998266355160196470838283636222962834973917293864885867469146719830348333901670407279107078477268220782670314592527250761059701763047626037211018173881956637940279268839893515509070510858097200065563626527699182234026979188712912642501458974612492837655605185510766976691187181896416397929239773777246818520720346882643569650947694872669297685093693042415738959520873299153726737204841399529181216975662247277925570264056214066378600356912275912763509038276601976035292469272672386715706113659215352523918885326749111938453132180417779434189686667110220693535852028275364775713754395267354011823235072371679553069311859708907890497956744184658321678213491402384270798733137428446623193412936941258935341142930783895338625628080955881325077175689946640536594493556139200442985333637737895397776513752964737871470240646255162881341245607742042875283088643678560540697325080329256830837088114664317671264741119767166619964673806934805306292379576525551981055301621838105370362251988569464024150602109494247880136579003516027315531664019953016584416712668083038167867136803791898125088366784084674784793355516901247242375917675942030774419365568114318059291274673852081153531728628485236678953056281117636579677148051871400794370171351260835714256389886470579223450546010751991422623772304135073055807290368130331032337594879261024557643450197982388255704755486940203452790260383835394505957104228666079832452253551756000431810162564690734867587590875717264052194133284841758738751186019195451116674997641095552792059650803836790218741334474624081418674996098289344593584239975196434608024169062168203575968361151642549927708758761073089525623982726761668257782029354471529304093920511544087426337350135326495982042832858450369371121938804445177894362081591805439289090011188974546429181282742194810777860602675343066694518580161953897162671598066279326919351816221499210879570558885084140959664039524546390068251314751395622952692562409688669835510889312673293328701465521261073924259145550901167921621371311357134901093768700412340253099511255382386007505583775000127684539626227645958295483520356930078130754847125937132738820171083334432737335867797221065029881758169858466510015072974656839184711141258218105653483685727288953826543961802854632048700751348838389001509008061930920220102395038074531720241795970130149177147668939262325691199672400062365862034953352801559949670370851054382839179916972246677001672247386589551360075668289842200897936573558917349620011036099849265969148478528002815445288113319533473975674815113358727148214918403007633127598473099695889149871973500971214794601030442692851058750376275831104557639049144103416921788518541653843629906996764474451455932791255153884630792629680861787265659211569100272511988907031805767616589774489564809024904112505544470490513748540323881646405001184865384750847626294384516296671325133681815175666884848419730218565964692459389596808454219890418246962842432312257113812394400002226943387805963965768771042251342215472079298062978622989637815494785203101774995315208563806413624762998604125130894572257235017915823605026238294917446660824839381505986548447609188185029227180984982859526069336395840046117343158823491189584576392212542543529137506855575874953591094426603314199349209756187885336680776370901475687739835270331812386510668051528377815316268970837288935331642565048031709028190925410693658884979648068585096160950398214213709734234369153402846613791428197768463386180713445079049613035306626972260670057278866204670700821557067367044621134822645000615931939691663461449144490831020866871202728323852604615449388185755098652858357705189435553037320275728286145474894596595320434795727818096421111073444043698389974510584060194444185904521843888171723059552827821581838333802147088113252419364770200016515667224845238365101195435462405560067267390103603511542419928411305537201617737436884875171888452615018156754218210667284332582272154494531856388853737861732135599404074159659182065955233023421442430422153453025350740989078825807654337075823144142971723963343974895628395428806727249954928741338077814762122012537932730461647262450297277690388671288532818431733576136813172113924127924541746250831607523492599972746333348369078386583065032269713009319929967745225448785260561653806064292053820334249559180544220276591584744431101008868842362880381916333869902747750571305962809306078512313372318448989585767605954763280072498069060828101498873016948921371936651726555130040911058549662087711093805516743661443648656830660909765013291889013133553608658183469697653406217706114499910170559884953324138471574145415679555377566849130963611167007784833383651960685131574625110831915950830117772882327497283217096739556305570184514805845601918252797809652952530163381442788075559362811713835485707249768867561388886806011090846949856112951900711651581921467677822200740783771364149634747899534404314307346929926299012229106190842270000348213159493560312564531119499364009955944169608308966522442451501380499888850664280046564534397905902859916560032209675971986285630944962935312164096923031638936134645879986287528133230029390626142431390691213465090053002159632497186787132452436863542788866213413005047853753423662345200677993395650372046903981050843201369884209239104791596281451492833577587909973145040931515947497216901330593740883745522093276571277589992873900309599447915526510230545041635232465916915564030326582422815332505607556171716372868321065415687684881222790729373619396697291925695862118542127788152601618232392264579180279925288474226444979742656535336636877096635813264523128762816720881417807811932728302805072298974212083824367558963610728875979072889060754516807563946510062511670685520468616394774775674531326333070931662037582026742418790072194695394614560805806728002284255714289842894074606459965829942645211279654457431359342863783238792123427608046414043545302788755508928736928742374962853826649056884116392166299072042328117296033962391072199538155406325793802719549571957112722160245401353213059011055745477536539548250306300036340577800161093465569609620385622912564545874623211933359837771223602445602374585790579850070656707755303392937729293862763951646005919405856224543226293551158784641328805704899993455262382118473520944548670957314520208639714431289175600308837698917557084671444352067586971886122474462520514984065546960370646907971328188790897415873409838183048816557519720221799043581485358132295879106395393488068452623831290947750787856723154224302245904460214681595256807135230214693117256820740901188427345960403530043490661079155382605849315359622827067732616679447705716300073863821640424276441013805921702744675829827379845450442605636376162456202411086313389952405819333825079757577966843383679892869758413842358292393193722016290211057406171676901975714778580663036027557469661399045014171242158962829891437321428451225221002207117766158008447132439644742139599438765742753309169807862089301740604160712389892066652356758848363039692829929941565640546462082044575676014379512123057131770699158093868907600203146832181821517705152973563808540316251303514059399879593586811891521912138882843527197773992767733509048143662803372215927172878324733433626353377247332606899442604196530156770373364871573909656638073719396253794588345846633502412286076240033824610212764049918091243738016269476143193875880082024183384736442582729428842696703200629960065386527263603542859104968413417174856819552687655526572023784035178167000836090900880615897815165574962743735369873041454219002568662248509787591504183628789615919283406392485721708277887303277303068629842150573250674380421077087880899937287658771419073029465730167987051709552748265351256913911512975966471291248082920671381398380960095607413149592083339158142840680798278919678376259190038463971131130713658594338616381791186662069541091170313238317248494211925070645921125501980816142466751399763360820716642214649348752102062937787259600397305507332799921151842783691901130194516845162340217982607387038312725500253594799587321633478649826662866376909995542564061458387924124449960652950409868093031948517356838282673585651334398969398735785850720386833859303498718704783401312677177470594582865218557191131669034477480611210382200178564844907528147380917045689966251013605812789594761655956332654809824374837924274503601381011001805742805482327011764620593685004129664038287924615879990248264702480145091756811340652779489481269389242728333794013073395835829962954139201084290868687397961799147228506195545027472335733651712035495463803150067242327927359014936405956435022100616022712291418267241887549884082628763282939658667657986465245144993738828543639492061771787421243609910274969611481085077511768720492686133035300885826043757216687933738092933721402067291502665406969048236233524664182166712633669289168402331031495510931818850369909117374834832907532597897314321104374969047068987381252950281282295650899800732441549160405858649758393798709880205655289025679461819319835644038002827382541902292656783575113969970787119815017000095470149972810197153943854224766477723693386697040506888019224853377434446295483085600921407043589346930617429211835062193633482630489618595091378995697097055906229170066497736905655997005537306794279056538413212530992073018999085711779370988933373234834929069691952556890273290972538808669948088351336544203440590563441092637917794273886621177041481854333217382870360849335422168074224014614052956837957032177664034096366958895265983599395040057823875407845034467451792024961212128207033962217450027744883523151663857265644506547075510788476741564750400110400089671030566602774736277417439218734348980270913123469568033339792375924837852807795692287239808800629854976616421452244847894321603339781138116970587818503958881334855665254781830314324720852908607551497816762624428291493377094668974962546681375975060077374639912862358132273019921598286461789050544851327430961800259676527075596604438309075067102040193486508750875437590901739535506340170305356032867890292382285316047654511752210635907479559371726080234656602529709782590637591558944543684433390883364394304657215449732292994323266526628929123120445118163476094299354509849941199372120248782494054254580396545782167017924119472597588778914717566567721750179204870166406347550867889517031725790869277731766975349717374367238647093518453779274471785929609618810287149319024114636458022062834072343867839721932104510687582854546983444249204089287220478581061670198305667412352994079040443630296798006179134160874048586046677067075038985269721208083346178880700412037726133800116590114580060503317991073236977319284692286129710363674224663279597750634517511083474072528646593439308492212470559019373083502291361664282662518444608155373278467533013074701215788230181537895338007371428651820069044773615807497737565522141726860256537546738625574676221430610008619882315272331433311656675531852224232839601207338366046679080893481258402674702786764617873590804808825143065970241861962881500861290931913427500113251697558265074368067219090291383779193020164887848885154966727469480536148806007987991883503456725870902399636438820303633533686635560831920592396753929023776202674617063755508050178026648341394971245377790643154787193158639545073472811797699961145907328108088404521726734634871784619362221258576679015424229293681759607142579173081566841672842623663763859818105496245061307395446063660403473847521588247334443765914967652240892474405531391566884653411928429900747998903566928680687576012105567694292533849257356564234379933140018177405865070291413023263323153155407990770667284086184330490065289450917537278599035590474854456672290505663384946090916382539899744696546991259420229680653963836644621823399977817772108842714329809747852406327532599878291921993386502767464960682140146045154186370341897065993895372682458600859380208862784662229825179312801275795216190405889085766282267308490085896597291743623343197264095747573818676215431661828316684088006674569102260357043851458663713875592660842566639720862742760052148012043877656637613896390290297209850252891427645178718742063861990450974988647000792764038604099650168461265960137257785791195530888012231131297430785713374027376321185962187878448112863126040174011396043779275142673904095943597290402905347649984988080377863898852192820884517643522645131351319115450027070805686549601852185696943618866585481118769551767760734073745459730436165634000088822137728710496484590753960388180881402888971240639958341627531224104653484360462580868138398210096867812423343121072743546848878460451547882427352435846832535151690006742265577725418790658153581027512119334867259391598524171104005744654469362831852358615467638755040983878252593177462695712115145482005510336163034898818027867609245963355294212011383430317659172636301215745666158163299256634427516411792741918224944840959385102892573439874726701048808623442366574832471178909163974896293322444671088447095833771455383234363968870466673397493923975571434839984253828548743488471024959561182742062349850748532177079778555427759616700274661231348756627470602515686612147732933172009376981742673180755016613276706208961415678433998382538359407766377593818756936832704466116701103874712772298545935567169412191959788052658479041484563891714843989525763159444389882822810997485048219579423692389104840756923735586011771531090499624172299157022655358166179750897177915606188539580904343174451506148930299809029878384668189235796863661284192226007448734245602835966615982397336041553863319722555408440999677730044822421588862373163637192243024932190348964581476295644297463012012576700606664847885371132557534157705579717080748261726511792249702488549400588020620984929837768700931643187532911002824828878619060767524167806799625052499153169790747568177998985639856858564967259016424259184968666479547823272295353327191961251467483226381381678840704604456249977055502733123631154811564948856955800942204795227286009183484697118536951914001830281603400716213524221943318343162429564492050785408688688663961094596140627015019714123419146924094350405254157951557150617335794669043245270693912390835445191596322845434198533498603210440920957364125555382564092257803614735246411820337081553303210493585573545749365670018955735882460378068310809055959717353110225951551071922184632633101036748775727577390304467034626641626759154477760025800659511110856438195111211512809097969917993338170453976787199694452786950228121836889999748889865951489445841139420655814782978301376537035944576433769493314784981645516964272719041482969446897453172176074860453420647896344640416624952381703013011536307038361999618413037854195564444473321143257260631203779692078872820921403614676021399562694544459053324877784730246989880322305539622244027478282319424906020401858195443296041647194685498028871058899707506165998023613932842147915612819435027971231855720586720310101348189300840072033523697641128444618329885778645507369242672637320793092356017442152417541941161277050877642843867695277560643252181251454996619586497598767009239353219505594753604265619092884949376020207712212288993759327679988884900942603023009937315399530932949482834708125204562880244821987803340204450265213012367526426380810343621591778286594357032114837879761295092862686460069396925978236145289318113126012125712704386279827307530354908145010197072397840169038422776974308423339364430542631671451374740231735446767465251723932731969367275574218965695525150301093480534575369890430869373100836896550753797506741139702750021434487207235074936528100046441207202238809392234413170037670435208969164705989909406079060129253970604020547525971705437806371346473278240779586862635489979206736522402455943258420808342788676251819793459415306316087829779867429728373490100716882689577910301028797358603373848076178219209453327382269175023013322269197170625086097587027139505639754573207136198884793328713987326637059314274389600833501366776645492826132155103639387445906673168287546556681048432630690545494758710585950489406012684057683520210750045916653026908401943290327568110402347905324456758784659068520955509206183528784594638397827388786167220453412935335208427853110387632737765419609691187019715548151531125776120776011601394981371077479793417652330554757410337501342030304678590901012808030218869841977957596107915913032886317896215437266042063269310353247317595084387709498961982032202443508821563981149878413029336403386355889201913943055038485415870368645351130107781489965978470942828118320516238688847558010151132961876287450326046876925207069404950923780852040338238649701402618287310647968522147273680652915091474097852049992271013679988878085933202443623313147588130578547065669245336437727140175600009956307437362732450653287460085359979210080388314287830934937105351043699223427634075959863945462188875614132878565298394433643759812800814633738054478444080236141900791836692596029332740669003423644523595260997753631093338653422447777596146599404957290758892195521621618242181513776070315654172734313037240039949715535984624168777208128181807465893201545355558704041549547768613915153789364207762154026201884818944607962344072702704899299871490638309719493931482979072345944894653301280857739387475787826257030809890449910975377853328247071356079230369529939599103996102470551073276351352915911920666730012745988476486198592553683067174589589989240820212166183932123034164246746008184737114763750445675171685495902353701013007576378533789060031724451012764310703305301164851767131433730727127012313696575424944713324341334316482557873222029696405079574823549707098167937137604716261750236918918533288977611200367769872382257510315950094943199777196787330309674787214010319836600425597064552618022212326390073872896321733061885149505911814823361562893528407090338014051284041717397283379852189957384039932308637716608005470283508208748771065507524681716365744426934455196218945192173412800023411572952888088609447518785121150309374539787855551374380868472117779368993589428262923197397065737652204995597312459521484417996059105566998493058704621147876044754183908225217790396944933124335252060015243165146872241333514117044257138799089493067486785883926707180079129914156181135107852087702181565394633242537696976411108851086493939638071751164207986812789926197648428153592558843770433798008443427608015350170557108341286130774010012725600373153252864912579142925361973257610024650124492142085743611079390833183416238496612448671332651037644890851835604423480248480940382223450636044016790342669553978342737332038378725780734447702539865116554102445602030056491065570559756024823796394843937607268712117001965814840080978597165034419323356199506831802329028860804993623107765761790394360724156428675264542252420228537994185644267803150086414225177292153128950226226740713560773463694706020406038055000815568665691342453042495392489360589200284817724115897939582064412622609657542414643720381786653365966254657227793981718054504165969174036370704483074398853704999854009216615677290614136602289789139731243222489886672742823442539423895853038160906121711651598701577645548743594318650071541775451045518041734106631819877184426509468469922758298944386241196165405479111100055528168599432256039921821417595979046729748261878248268408655016202628569390571409664040044211463207785075972351454240022639055451682178496593904566794688174026320136802321704323561178528348676347861149273241591271399495030850761050128711024046985819721661749974221444413123421678670941756454641247387942255338922749447995403930438690042102550453347763649479240632753149864826556849814987130996247201411286620187702643273864806095828846282303818873778438776889370449835779418051872775164487640669856912923976507203731203407810024373627850029433853014701861074365706872751928982549597855375064048175113637317660913385103611393681522135870062789817258137689494694543344148303935761157123617590006271945953948185810785748170140477041168648337834779046812319495764729799250669722809647402045984752641586934393543087567029304276003883893948250319386733669731852586021618999863558940109294926131827791520075864194771421647606180327666953851574548595624477970088617745604449041093865998088630479632800685118530499174688091134685306733437772752177993379002692900119635429605584791995011183917297325452347373444781733444217217415295389271644415775499306125745267536855202341020147316025885445410621120055300791762812897169159279480859378643851400891333581650699953194058901080977968211615820453828817001008284299978343764098224742736240621901343162515612657756337028996731338745511985100180100690061073967606303832686899897875473707419888208011059523809666822983749602715864954278532977457176517312073895936492557108109769177283640400282231900417905982653488085469933258687792780317393635071566971380200436387396257607400080860265801302350402892264790486361433831939485452297610256917590794120542824557105963777164619572737082455802698324781745401873439849224938777003506444965730167748325311036490449012108079517750074253907775117445917437964047480066684954483790780042753497986504114395799425072995198197565820180739879387562351466091857103637964782691637065266842656449488636024101668939914822378704805733994121885672970210638506549968945121157292706859181398805255348576006825927522841522257473636939369528954092161611006449695210607186704565240337050060127870482090984962707019704703877902351544474638734689770459486315585732403948337282569502016951029018468863261399403062279760650708578955360798890887347310342754360128374320130591609040929520076983678973795971465969186722474971521968642303416813138019115763922295609201875181129897577226914095859275613956315025206818314287545572114424086150926118749198085091979166138420585808014930515783162574405423370090135400153606668279817329127291639975338072025237605184471031716000598099612681125170202093499149117205796334457813924785720025727848784262794975811029454589906728151514747253219942285661396900920130055890208087587960938186515752845852325260357434963536252813394877720277471657224394389681856628156913687142145511399760112209669936549319109185524010567885560358955972386957114633721190855202542506365543103168681411911049074096621077925409708762618927142340055742381969631844967333263320845484051291892598545822104356340947576828560410546224676464477388538810925700375292085681816792691786051993902882021292079810581647274044885973022147278069905929221985270220202781113486915707453132582124868833611944404551290647721896348305800720643643688731111487493329790897655060938578423013979072341926508951693137575568953090283110844393930780252081249246336965844523997159813006098536406903011106213646912566834906082167011224841912572309277012708253646935137264350538564551521938212821162058427691217961770974709541195013789718257811246340882728314423705199283191604408280740351484480843723925054854450154253607496510314076541186717331298680395487695684566876087181383733237951056690978784204678180424122131046966589412466509183967275254198043427556730004729540085677663785650637623396136842467625576708032746816287821302803859880972435086614866792429103089449823959194687883274542431379513758763293978543945796046102177531592042238458373356126562950067757248008270294017753508566725016099037410688485299554819897751414077153759923136256278773094778762652842316103940115087049370089982857131023307612998616758047740384263908448559277745059570789153547034692183661424325670547505309501205961234210282014718112106051853530250266346663089273567466815991350071366214836511236760300341962120727952140291499938150017253810773991205823515055570631224906087411708714013025148025072373498683235058303305910231606914586919826764293216253069814525068195865191107516929512375813431091560790273629815156602691766726428076097552890886678370340550485206440899850129883426734614061887554480745356654962367033377331646557496136613564935929980007441752379588141515418609151562657519935236693129887812517681076955094802296481669102101780030033372421331904566145676643295134254959248861877019838064620667812694172162925942784561184747346730857289367113295342635693125316163073031057868151392204115686638898661980137400196015890276798919629429939252295709980981119375464299449114255915973950349280176360957447708848729674370187422865350214384011572548373382939311140827001649489841576560502902281066563906897239279170072008857388481555935293812891553116080756132012782477561329725895366285641165742224793585659790256455336204655861787450238528323990134662362812309021708402475298500251937044454449665122340602867792327375236015309790396599325799775406742544227714725447012763291005341316478745965620731987289224635201847431867025351552366135613889430435432456248248294828543437812016751714121877259956778359822062122249709685825929742006738487326314921551501479133241952117617702684739203614549997785516711588485727783726080706707941499744033125398733205376621278760175565382439353403146607270088789854676253578891585957331340454034157322479515717986930553451590085473742465057102122254562949413490859979620446535699438944377110694473705527221916140347352229666859152088986174198263071034626504725279242428850585406035833235204922097403479445716472261497835941316488300274346430545020836197665661272405555891584018836160564066143229473508194970511533188136147959549502052418436552086419338229160413295601784116495294175457595948185898202571353525428082212764060992267306620587085579427136675964263037516096158435380050682490060955418917173372968961157683095713008219401422196687763732944184083234324584554170836162936330632809405404554999203388587107960649823414732765164462303353632169064859299400653191774705786698318273529698218129715964623082398392821435152113258385095556201738196251157812087883022796737022101354531613586479317660777064760895694193665354907906987753433517443512514943940904861813345741030210097194810702588520409453657203543592106188060762707907111077501565492692218239077304627375603948783747713391277918211084217397057074327831911478438333735390592691117521523770256952332660738030264445646495132432274564518452442447451684272078140364488825416801889300929640536466247518980826794928066757062060561159064132836037487827349921914696198713709444145189780601329921339953998585543634887989082371538789286015387509902826321821712510095000791767108164287229421773827796097171597878785739456097276510252006287371362070903018082568117017434215723906245327511564007610582937950647422799383553141495915971723366284224594888749858750130273299296159754114826779110707887263111645690184877658807604132002172424979039182782812609213598154035582813750251385095222254429902441247239281756051446518741192814018820513529078026973544427698948971989103095188709831117914033814083457213586791906088770297113805057576566893022943295209690983950723017168293341141611149619505854063709543452833916405163063433803711705837507988290761562684552542241212513717747343773286287514372918551039833828583119785572219402109238943985627817085465321502497344197222153736444964649730865036700426753667737212235060312428114062188749405422388941352164121157924895322466158807618716423278427645667683090452495621842311747714861132813656681706962132359662093992252422812443341024311200287411968608396738649292583105684185003994281678455136320121646901295275556325446586047168187028652634420873214860127790720865090190511693872830601379733660306184910744101841306476704851199541638539778265682832030759535620804977342035419664011558558667729622681461337893852460039959445209968412673060731458068790181868066574895202632930230965799000381295309705351107678235936098100771216947493964045432830288634752117828226271670729186541803298875153670870292167633420309463016632015485232140675422492277856810524901227666044110926140897740679576551311932871031553443522641383108194104571373999260205558334026035372756071391239556421162687916277364996386062388039650821470768381232818388384501954989942919664629053276139640839487501327041992405232838288756748209808164244779458939708351867633983088698124036234442229477546060179073597500335314506233628849841418355876496341907525953369975072737721769337521436170588236982684246067426854092243052229029854013989738901017165641081505024675483163000233114490979422735695595888660746915707498311800105994355455147442967482076322450990506196167756808866805349049650266989146839760548636580021236018693791690905479721086157966658458614698186929549822368079938931219397615522620558905187885562716630208973522213477928151743764550867613410682399226030115753415349189484682431886042537788378013328781648524211528250397935589818553027982006406056554919120795159095499020194351445724052260809600853536007181053913015770378242283845870345223378959920202597605408167846125127301044396921442091301886131785804097782462510158452826813637221968821407172958641889884176430212429813987559294778170780330451381916668321202718505899113443781363137261309083028360518543688901126638382816769573002640421966140632273173062978465779091828211826828354857224156973724821669012035936445323765991381473039421172103543803355635757412503120619316469421515350774889148768211819084833547506883933710017720189047148522462599048705769442946312267391244809704171693250162847576670673775238056302457832740748464995966546154870266090463292207164884815590185264009311249801522297364660190485225571747861493056353378919658181859894303504127464127695327256136015427206996615267458016763723039725488846460228602053518977510627265568451863692769834019630512869806070293250035448772778545918561640022492138669450155346479687627696189006694641038829129887551582684454349308619066852271456648570386847777460660971693821551715040334050385772078246912934524253108525193980056501872275757042668102633970221196809873959516735371182115107901796155786576182021770847322996583769097878555326315481009685130933645583006717917816218314868419756471849370466711154493647713697422869484561042921584041396444192809788008410453931935823801414302443441903304910980663405984840299991707039472266913123421586821174136952553146529647005852101333053761410740202850545697650261463502402016463593577520610966052925812878834688346383937193782301473850951770768620001986829602185245631642443762150849372700315682539308795765793146370504000188538882432657002986585144029083864459311788957973522486453354753112526094322464497314649261649331103703437611036349283489381249977322854907284960895658183861823849936396940563838792411988877451670198115306135245514752914878091247760575437692263504117160011533284964767361464855752980269235917031911457513819231146941735458226478478953409842118195812073429021934204056275571098625144602215401635102273965779890881290929295013309128212416968694649692420010776229233886103617412504918350312858970397758445983401065933813872674055539847944197667388381739186176930684592626035528992875856939428380687823868152220695225712002832402251746342843753462376990216143456215673305425851875449094617802604004642235745865597209601443665658424946655439042351526236167246034893095839712848770780789542704339138069894740768543606661921963070816065817041041306091314596930697205160365515133953594895927449503527619502275202236969855603411112052670473982984832160468994172238297377963737706640373756847316551871785850751598626868755012348334038146436693426408517822048611731709315957658579916667525630374831938479994420510144215564800988581879441253440042266679383226551901570520109384878912762177159232577157140352053088227429185168888883050902220536943216470463760004375296956454581943373957682738647538640381902823559616104183555479352144207394228974452526690400267456886264433802137512141430380466943927929109589320900827616132069304200214590651678800885567336943308887437111315983032614725099245889047084988045523351949039448082684920220357395367488260902762246122511480276661131422614081895235487818316558593395945831636413074956593249352409987842807784020082029732730485253440534906805295382889212101401523666487573333402488994990598487489587622794129768453161965798244235768223455964349338027686228172970221299466187331968187461796298661165990805147663238198899544928099824232740365781985364311720481704798514078542972629825944514694341507508135821064335758702497656901826515295678453225801563212656341486245640254339886757281482136470326774088443028936059103557313559145771925570750610032821118225268685286639990044218551768445943942286159343853645291108232534434964110440647512885282899220410551272833082709196718865045065676449786644757923265266418711359823111383895824726925539134145480123616422851267384227129125720932634517234764908067189480796808810070167753139052023020610493666268946373062618542021367979566352904925027952237718702290063253676927247463563664649135538616817218378302533047512902581247625486506294139439118011131059243736611431198993430594323385862501659622484174355935957229073462839184910506446945750274252762715170421909076219664359076374439327790970605580441860287255500159226665920410464130128684907961612864405042073010617783729252350718946288724735390489662226904034061720086692444989535501591804928898395854626691477710550309823745862609712270102270913594886180147776522292988810865904059334722110700143932673738819703644056214452254915937802222062051881144347420348460723440528142920376816858692435504473940886905352710771273850616438523337306066105679589663804741619251587141202199754294624403878375654789142616619201790307445973866511518434901012870074165171987333576658744928438882901832465462529135078415979402456304095630442296073968366133776267324030265279762854081722577813684019189567034172681055007935287810751636134702432379999505991135969387299034851078125554873153650552587967808086883433260542145538901481252046673089332030099998054081548710386888249524836552653786345610068383600326039678391477044467884717618102182393141148569186988201805361806277668018347637459689296693048312446780112762399140348511117874322725283299470890973274841821315492924266386688687743010079553927613371319586872100722812997208422109492537838173855017628408749326589705652961532945563162417353656017232668938726154908967928724147063514665224542276693306834395787005296476512188472376834124337678201056061921927104516716514129507103219693388590418856978511727243813841164915479986728744780436890069600040323503373441201369927014921037957418636277605403836034093404870053590326853976609693191640431468644170070782650436240827757354078876170983296401014458195123795293047863399531996463688987241657232839628264015908761311469236676363126388105205559660691873887813823403429004065005503257634609322032071966527833408938939939485921556511640308502989109900739531431327214395392514139271339456875405389307090252087729072813000761080259088535012633429023905122705573986500436485316268338869402585103242423251178902283036228712054033963529268711181080719222899196983379161071855451566309380430059422231447996460366696669643076393047347250539681683689876673740903736938771311981825874385326452920133263196382006740707324016925770996151679147728551384500704451687103403120374131811935259328460256155137051693796423931995449224723523790083200954557326162573431834722160657474864732902636830088082031368051002944144411711893124033547090897884119460580251512445382267354408971554906468823016060669307107958091991759037125053590426172141880862967828806025997150502744069073854762342343323059884772460095365349203958285075185605565989292118179525589098611596215489753702264667018732870186248399587565219842782401574662045148158168934732950159027462206217154941305813744257973008115895128673565319756600330833005181431990893937386876799758754869122543397379758234727527511045790759184521701832845877271483465121993493270312272527082400548274440732824744367067051315190292088045433701006241438929563302453369612662794284205062591969783387912490017946122890763260400266355584580241399186129099579799349184518977825577105907963817240849481651703797974871820611266510057830616332840488627648868848826896451762874399958635940961615927831286175683232969495095128242604215590223379091914192796803850465713719941619921299056261787459836001143404208534130963127219569823278395498360876261508722916514517614270668654467438612774401285792072694622813671307653809970294191838389316269357103586407082075777457002753705421197945878722902204825321238663963150511681986403100327632898768062916688776115844065644141659922469877859428736962194217896192454333914100392558900472490579061909829144042871441181997438892445918494399774957791894050512434888195889428152660447848447023381560448038645642332931347054133197034949922559436655040750530050869285391770006407389718950052405058700341785556478200931216160272719718586705256547874136203926268274878062739575132761544485213506310389323170802620949536270943746859776694642699762214246511832975072266003319742899608815928802532255752484288963097505145853567665626529027879088537361749988982633670496121052873369778453789336722042743328597203245296237277394454319558926177590763989478629245349318715048549595852249634920716642734509055975121496967261621913150741925989111655297118584155727913937983979609444912755514330063276698764175745393549865180752198499358117742520576330665084046797498861984475840575826463851726012392546217662599278823710624856441515671831715448883319330007402054924601419523192673584484592462870391470494375594982260790218589477666087333787996863650895542655152333056729443923907121645923599802089952747002809252369615859717077041393847913491464674037550752008795768690958754105707417608787639711044283757820821546099585245102112806541206996828351659244529447174814163930036265000680713546684292256411168221236524698701679241996597387819135989700383872009236213932889281087029501055778529105266231518053627670116017258267230629860396176804159558170228228275201679528257689789910572534609358482381998432304009927383842788004103074484629562596832850886763326703317915198938096843232962758735633268207004836023499298515653734950145612793466107019938826110240358952068902238136742194521207174928299880457261890684129407404932925396057555577051624566215480131372838557869717185317984953483092835822879837276632627089908993196750364220553997094526202891000236003930089355092743281542177735140675743382575562527180632519085855265329971457368655417737030494294256834568861260523225750550503468442417257385175715813289401496245056994305333181988075671550109614465766542972554228020161631669910584430517220732601667756437364702528426234671372819715671402261283163834848548024126372020185688914067407287806507600124780667283130700807134886672305923366711708005971876001398425909646277582584905057865232859151372745128568150618962344945660606323045433284618396739612094667706595070297130295536061537480414624826898468409543507453255934195511951459177193704525306866598083076971443696569337079471507519368958112700669780703269950206805898491719798275708627793609370253759515352740747590795631079551719256642563519200992991893105639534922809650910544979481494149330517506845449501060886246603060495675734768319085226226571512001451282582110576203555589232532914218535464459814181211373703271838155836236986729409963258760561425590766729115978645939543016796445860591604242017993423323337027828468408022027044352557882724150864269786668472176051734536285492067285335753373352564199588289814239963735726196670752363127109707825996198428695968955578508752981307674798672555780843528944244743306622481599088349992960619814569932009032281920669103067951148439657214235495398621417255804197704771963268632403695336552510241602724866950145013164944209228141034958501659354457668104994482001601674204916246000255750810733998831366997316934074873400942201341029752145123280302680708465384567585179639084266573872977740775267561427579170945011232925763088281998182461249400295016249782764943187039496986465314391688337689977293455085409382893283674699309301453331247225318849552162129591209442993001604477936615437621440433707601413681326104681692764492538307306515909525402938118224074947586925336286064943368951626998514723653027983576638327061287060965215197661481210350144092065263176374433937534929633590579994708403289681038922067871866063240440772555672111551929435342014399859382910310601220753066625297456587527800776711715253033530538268280458636385492514292525492897845971036102802562333637278630535871168462180555260983333097089424950682027046017497379969686891993852271184032748297323503983223968106550746826248644689648671272365306584618298094257124587683158685555692420531490391514830536148654432736932671404056487031176033530964144972886315946197752040048901313553584494022175607067030015084774402651078373686628241715671069059124599813103316725374786512654969984240181507735433631494836877517743199971968697086118474906197853588034129064426834615541461452162865666386182601394519843855092331368974747204194475601030622123742312634349906848388131166632804079027594876368701638345844837387729823827378179725210149679904880752661553268973216009275209603333475396883376851055039398023013074191714092103756651618880327726619279547295192630292375375024000403064012912184698798812710618336668047058282309756394688895617154961191503452376328030671759961870381664790576647519196198025589963761508990679156584226754241543582941472891121556444387373554055650946155879299776378462429924061085366752362553518451702563680891325785083097121877923566166154070845290111301654277165747413802688957588427451992620120887713129552451108136657685148032425827376047711544239860262165501645075471504123470619176478588755188849760100935271604336120390460102595060229769725127228133079637129127049194616864513453251196319863804980916988758176829177476801280697253612961487621416318853763527933132182201770255901306202222059654055580881693910328893306477207488642363078750274492539029514227823199877105664491088926870040739405593053563610477954166097423554173482914220659045401163452812960047857549524969489723056370478918174065966163725614658802864989976954810460889669730637313974353870854039860838798695752846800966356421681881960981857543889021363044006455111282995195457434719489845167335499840544604305619938060244906585681416036685846911406292278250995395343487526298429413524732660050594630628063259068821076126654552089568397670240312863258214049319194133901756514678094963278440766551722006171843268082184374447874547440812236421093210381095929707632519150902955671868177204124796431343653078586638642159561196657003413408046156355255194574135052911010301769977477097288985053404325640959471191379395826527944284116875116486021455601120635800342284690600572071893494952170096637431471884502733545246039621420310415048240167495755741400346371958407415797670659958924611336754532792264567951581047613995045397568117368057512750366477553634895290217445164092485402070604808040581861434464692144450086759005473603888602994622545204851262618703040091884213266306336192099515129302278885136279586185723512272620960782380868389598668013653214514229413537793921881313343423078550008521837744438623515089178639485313411383653477210714035823360716560525872774494929225993956174300233843609813789548711117870286106638043892302266750402888880144557098817042895805742664912771129174868541981500440923371312446949170051451347935815599663507030675321197643855848132864022882711527598149010247191393750680268900587472540363917783126412713407926244688701824765208065691164653735368695399019653157951825143075390340081201997569606363436791519574150450229829379342426753645203855776671299086717906940265072052001376550589712603236175589305876831128338722930228719031631976524198111622518417996491116047167365207707821935291041994792170231990395574956669100128050788108771742281748675230866277646089213959869562033754142843668591925715751740915819263451623042183613595079271311133439190717706884575428950936571032580111937176236114191834542925223752667384278833888377345548406821408211025366916692086945077616687285470217429379847545170705265355238201293241795517561204217709393518280392027153768140373108570034370269232539788744202269507976909202957338673553882554718261684840602212500978365222137349358323387087711515490816816797084145526766117906877025629871102001932074030600320307048680653417540491858219865495903038535480706883790589425735886737113058011816979336607574555726382717668963392690323893242694759440967420098778236924514354661676554109256777428066705143169151510727580221363841746962272713608690370753438768414449975946277115848738743685379109428815717151282255036932891496385760000492249419638913656595992162238049560695713938581640121982546387033277283707501870729190920345734986433557082964590431768842929264873837616712708390671699580245816831355559674024924933151893142397412667780808616540909483217360796466824636006905467535144238111359396345976980314492611701456323769218349395998949546269024176000900784534463026513654787230336512599948250788110543516470280685092762582329886520500143632454107712745056836293536719126883478474170227018419665994026563294040778161109220706868792439824772705051581786794761728905816524646677133975624514999311246167967907083688748967872702188641141727536444122467109576071699721760751616279809777222279767281621208908080435175780179178096497553997453835332173851233146493711778275689863590234640690759168385980255464999528807459324470774068450309402098295697734847194500134612818179229396621493727450942598611387012788575209388359736201795678969684217215250750742641042789887889203335512934359519546039075332136957991582642084674452729399636576802419851351668060118206404763074487906810375135484653145671955561531794108724676860979579542309620697820233954225736652545444587452390624287760509423820210553854720940490994036138687208982562963594690225866321600147225639723585077291020253159254527880948678694010258047329651298483950657640365861733663296823441653405783735439600088015286741201449735414759388656675906257816032005333216321105341548237285762983898377563328519860910256047067482968647227901261102202368719742352201537992929207445925237481306726843000043347458305726947056477638958418310587445325517162420160094759872048689006751828963776483249892040423622970978139398267417499440461187683954306032969309718224875091089696789502743719752213518773097305099628778349952040454886838148685871310483322695272473024325336397436833447047039323900469961180079871066646596342268693885425116521496999920608343878870756152385696229707025203873905098129374292395985581397750288829973504404780088410950964141900417287933145012645539921410140062120045956251152569064244395309684205926601855641935792382487298705091632959698305525861538428832619087334761620666158124126860441470457515930213440492671411985636195154683447253420121664393521561630570374233701217240872597205596876641685197871391072144352288509773002453351784042049980555574820863408288046423686360978884675976867837613023210715484340512149152385305375806953197830421243277883381777118324128216124330605472193584540547737384113215670606184635572077488686329502689939043794399826932173404644020391623011628837034903396731154586928972591122546277007197286739631232965928287979197957212388161509441693803958227298072580919104735461905134484543343270951679206809038495612100770627715647573872543291436938138711099443336686084867965336189568617076704414577811521023449587856518908315359295343305011914532129502217497606941462705928933929278790862587541273121610220774187048237671513535256953771284499176000098738663403183175087891305080231299882710491725051037508282188769130804244275386682520437864964377203118917048576129040117379594783699996056526065146529843135323018261738586068174394970243601957880881037328887790317981761440054866331670787049385117189176208377676543155863991475324665660012930461186159948354603922923688912528583034099187261589825744845547951225313716875078159683304093886039023892355370124866285069454693627993309190818511132617718737777622609950669540488189533209727563614283452962033900452187818231714654394582670750309604198086004604891032174397548820040265508980124376616875644298315005929570903913758049858917859840656786526390902882363361212527299090191883282813993708999531754757927055334164708116615267794354207681534936986044145687848566872892802561353754822198424904211384293967692820017269673913646687617786956106360528643892013740552580800749098142863694391828731297554490586112656667039009276435418284640266784966021092557126990883464951234308943733048645847920868452938202025271230984432274671374711455291926269453074847839137139844370723700608491225306450507974545933774698363161579590082358578128504161169352963353753662524917484542558411257398030361234523896201037050116761909317235211558700655325117418503034599160435361175296191522091079834623848022442236830318212414254499904205154391154568998780477256234283105076810115800192347039035236248641789644346875518891683462089525026770088402135709944268964270653563542019985222658951108045596423312033465379040582480024950464337803937341686074792283562321260301305881616457823026309313137309167644464732100534184749326921203996103830642780841219250213315158774678994414567727274163149043999841623436679603372425358543386900095786689522048674764312122933866694396983521041701006312801012560855038415092938229378265043416811894432932178419343005728747545160295658515999033189982517428203717926918009168722241693115456396183878431891833080134185138409419914497350236885556604270068453156337336439751688230795606034698684972405664803616025290351543520580589344320654575853722624212159989835566618252901334992186547024246694486775191005779870296579031418312186635879203360867775588286696460332483079489711050686358580706420344223945484353862335083813796593571396960918899810038675906675042192338724041252419119813798756458768380531075217354146291879901285131623075183916143166094718676814896968802296064855818223278603790027649253931933109857757159251661136067823779970300979693453971375546928855944628994642797596736060151912318933287550947531353720765002181608705894667173898118546329869860447145711873892304603610610753366008707203226859482552125724961591429458588864021630178447811439808938063161998518928079936782954162279196363260498810265352620420740010690288195617421526847012391355998356183544067419170605286514196956711653625042325663717178671579822106620946608003292243226006893308248594658133466976138334315974928465755195858197852845688466524211526098575583978892462269593532610207557958166852829810878558037284338248214546559923038201703537318102192994601108161613242515838059901942789988508600094328011096497248083748442142940429423909297407221340140054355695947556098138976850075234028844721334175645222314987368267649852299873318517541315690266640190722669518789650732973637754834972120907402014171232142019613769658580635224413677840749219286546642387786385255508701922291901404640886676587250639829251049955572694461509021407451920289344437609634897418598526432709611118393507289417659223368783518571784884872411877097837131657802657681333893996623751858194833629421040537292871287979108969207810082054721523583039754643762328035274606754318001393657820063352506042804696598031055261927183705919625228254729835830827420618163314593106497350160001037394031888884568740441569745498969467159108643421103059546159265132789635125664426388302754765252995523605999331445221208632685132941719767047372775992116098505005705074765513336588516405864726956236416455461073509655823516013967432925950223932311563826344603413621763524439769469209629543192565203838740505069186419757882215642282442309527538049712965252305750250799352550596872540311023637949752490208167311202665688392945333092169841719518382409987968632236807191912722054454831001540447221192984627458023274261999988210624089285113180862057361089868459276744294593609311729479623563030964366148753895746706395568525192770810726613986911662986342181303863766408147372598868625568097436601835010958306838333680279969617416546441758412122326894135365834444511201909807091765896969510609867676173626668056418421169771943110565135936227568334540897973419140950134536678218128721098954091310695227043969584635682484173468494425357092245685664454753141699979682970110198432790406021567435774882728640752732252858631782046139993607619387732266648710436332813728613150005884889827932442355391282971398333312081739384310153561046587042007480312535885496138299347495182002048775713221452929510617736010138805886904207765141867853970397709886811818755864000090683084204310110815017628537890178301748201727055856521950422111056970767742665792626547833877513443567250885591442632403488198847735586252460981674046580634974218649453556428030292081428568645288819353412898008597213742761469176065983238163530117993502004809513927628499350350598086116719089873669928843251631584968516184049348674884361946977281748018181071394529020442213049118429947462370298141341317491083901681058715315750389106019258621216514850896500259420690975135456957059167405124514005644196796806154342180979417862699638470634853561309216988746960468650805601634413062280939086452618866901529049595941997625511875048910070665511411237042153109213311325235804153691560617454936692176148717075345108793988718210814565675238913096036480224497452302156249850207192968693165145675634211297827579299484434447044400153417568424636844476316574868493522686954780646336667298454822210999975717293968911426572809101675555099623904869107350979975373157561926331381826505893094829479444183200223846367216259141921879219680940937043278756276989591571337002042241525944260351436227723178121262422360964380588332217646654020639984539722438534629212496868831647412873729423123621215618995325680295806225403168839444832864487623815795719036434139098416895797959816901388386952507994431250361623846183353747705431452364905030971630867714550392442628945725646163504463046613348410820685583219318710983384868858807680956633414222609687451546580582771963527509379558384665248320747586781235073309314534536276018194424800846732866495920706356094566956710179593130543283258742756933563211078082375700126078656720854019012873193742228529653537515092669305432517224052504593531237205397761750500650138483025584637726786280209708751271693955077710255421584544836195436824863650150298024841934685934024388835286491364848215624556661413342830870942265805273919571508336712565864855943565323203975407466485976506253605392753617450707352252254028180084619446807384520523910618830394701749024682759716295829064375633729304329597561072955553467998888050853853051422457341472523188525404473271539839572586545690820836353829973568566295839174824155935918855249220828095755613329304934987532902960125053663765525581781258739795065377623720347839819559743383297334237681092040472971724549544845580446433604587931397504983170857554771783308371618587548028691409004499739061067829945296576521720194102018471421132645776462756245200065067404460552761813319325357213246135637942051132843159843645416578700259051029494219647784951292357589017052702066471546562900049624522437251090174537667058818684899482304009433053139193025772016450929223633349323057926128683120029742043502098779864982238884392608218054412809341589346676110341735890990917828841492954015173235058145663546947497681595722961375761853533842657803738358808160116730384196249388335803728404301178312818981803431239417642120312686203023285671190115724079899244888272249061063836520203116856229662061121048984537084385543279154917580136947888949721224074194493961758137950803463817580887436053917840281161554705375498671630285494201834166862499690800237118876292771477413043868460348863779750725963942759636756886498005505617896319208922533962678942316173603259169856791354307250584449358764403398874719468060838181138730298754439602995829519887009867498564188937018490057650392068600206186464972400281288417479832679188160583253527598779097731089636597558541391820026760401744749556107552851631685449179286526484366716107174891350138016866605302023418580909379918938078825109974616821425786758510856345070011058125479282768480874461034696673975165040164935720826884196516275283830057804817955780415163626668995600895129697808691109016750039657047968924461317181558908220144822096211233422976259487515498898828592631656858856659147496642620201253178536794684674021601322922128928696323461931167688228415887407395216336577697162673682930536968870694547032604704824222755728523262385806545283779558528116663337092991679543123809978847327018019872342563533299771438670387835767542514953344584811767613769444156451329385433819479634449997425082529726461424532618501924698805132718415506624969857417265675015855241768214087836480644300949556781019720911047783632165831792235778686034701728967300602465424669549687257453062559852841492862571853618450685880578836933390315710861902167184126639858820628144696473647407939922567978614625236333871120225999604432653658777962973511753869585614395676895518099598582463568632216995975670876211805804795201475461993321717864860754621313116979826676671586116658095473715090764259673167113191641628625056811925274466248095092044838856445327023648831210355674216769588701243679777713318690496319366253936657221182322638834266120986979144498865872705563620151413023865296828070581903741871048777619115771999367739443647594885973115749912449357308613703021100437589535398407192390451033508590773295848391501251300138667135220922692749613020980641613270440817728461277523842276528976448499573015655361603783713593464265766844603175804502825553841625196907571197086472767412361136438199569961614811212063843360808413455324757034435970895056542225232458688533812147542782022221801900575727886753471372969463756285269428494394805598631053156813617249964344332006533294143850916411473885494633108309368522024709832945846289790033156877177356115077148514928320501647291764043827833360910542758981045973985094681643120660442617840935615266931050613277892256264411168917516705205694013635052282726326082470620394350119837388148701942711266403300287740602212324253947583075690447133796657915076927924957698039131347767187590918914446494632890220081625663743258548076127747273068615901325372429507903542732118283275610184771255458579652329398343472621712822281520981041663316601072715050927294731314631436539690461370953223399771137685523778667938227258916508468830390259869465702897892827966799844481120608432871346968456213424430795539896979109293999201751737888501749907396852612865863249762310234567009610002290487522895633263737773641280594583275129446606913422940758087473430992741557110949140602963447829180345193242663456150708577983291095163196716704087627010315886832178781592389716296324305670306804377964795616360047599104154119530648761741752985725696523709786727032881310002800244453115613298350640108659550660161248391623328106343044169850658154667627883693876513565190559082017534368726608876541800072775328229194894781161465400945055204541938963976032146536840073161124230722450317368736642144694169433507474322043830491483404547519686012234050780666808695460225124978297629039408874482606880114892183223224956020253311797372780485625207225061793382569683782866039729360651297878777589960403950165245445138216518940361000507646388068563873395098731815098368830706249007834507474476748304790735162827469991487434675855265042503693980110974567271684376631354052259524536907158388149510484240987784149508661133330617015698585698164063967399803252517729023531194734042415325317508310543293098332461531607287718750761131172563998349908189241996351047496306033042298738789658041329218160218503283000978864792731512156138041736425843809290260308312156369649244792306720455550613718332944255491829994008102229815240121088703564217484669322010791160463980766154739682644854772494897885537922754712848796243081298866564455350491046841597854962068954557550388269173292047947827960114939110442778170926909175784713642744916701497288256614030211354326604279840987542690379596231843384217151030834607079603071215974603057270776412061724636941321288660255985875225431799792179383343203989741589169411842013591241600567715869999730981816349433205420170121401715041500451535635989097390604490087636513364923367508763690270734210569683548100773525534199395677283924998448330728451468176140615664575133475913464308499966324816523122997895373430219341378863589536707496623537149017055590031056890811079191525102688976603330624107457546704758277518158876208020372154194541643839574342754756279560563362730942312735965286059463643734375588811831223329640451130746005334837914041945231755767571890023242318303489764330886069054782624297853722942994593837318402219888123689459569138881971059390248895265669592794254263634187413997708364319649077216765518562704332920565357591537617463143623066104793728404142109889892689943323607123825306012018514559069567941414126399192234625267254288504654411386821072498369373198456696554734343330586929453998900896189582911379501310598788826910550341320596397234024422452773222692169313657983583731244935598490517085949771914031504002288726036676684878703545264860498959565036394259191871121927847683869436925862380162142192739372654651683245402497932325268143931909462674444260033587568984478424368422398132718338604400067389218068047159461030198967413723230948515314291980646766375560346714292753580839110499131003728942885564930812168414319067286219122324603788289511993714760252895501586968427992011666698853186337604495332517257019106376606547721579010580639992173995013307531245663244753017595303834291049045049365863987359249741340738932521425102945509671322179780463512406669112111369218746864621077197699307910477860080039646462086018939982528664027072296762082226222074020201474338094761240526975659298176237863658606423552666766799833614674231821532992792001005647364189399014503852612248554750811589072819989684100097858141794519215647015863695867105718870137867587513042983896789651777290069974665344753840496775340846468968672712896154408450609005125516305379772800083894060636081492458255822383270476596889308849588216873699553400533141032569828625356730073083687406246860209903923541605381610289306657740706407198456020562327899947446353882111160750701538946042428308295235295733885891921980240890632201876628617531592120048445716936916302219354136241924190249176606936142095050490485146209949633791004460066910656758725288595665765747495524137661560971526342891186157896721621867345881540798779550723882687956970900628821338672763024368041216978058020904179774549401668394084674038047507863386102538212684349751322173355710771017942605437078209914932116707680190924312470040301226038514489126384477245622210695817082815571621275057863392921330256895905345754951203417674437195374706544359519140781974327848998626055119264042758298572250369794515010436791961127373024286266852726012703463962652372091391204368658947389503922958747131329778717780461505947750300656201230995050365932006263750530996179211054887787297960304197199832823860309579551044855112935992336668246036392198258607875059489733260697058541692753185252197386070125670720227322018292741383440935142201128783413175588859112279288243063603539411175498758781999297664942733273981562802345064438402565223937156227484830615677052668840817860056752214868042607332621420963616071887110306487415885734210054732693256909403372354175536491148398464157019754306686077981244943204615980227341586462614591530137041406513097268619042137654928401876073630516634707422898243632548462392517534083491833026123981997201833330271002189412980976140121634291385460983573808157057580919108214579347392483416725664027550810906767014889139126733735272340065384764414452279527588966185001765106933263582675400386788700289367437817493340520808009202347999129861440863480337964072408518065164742014256576902025524393199316378944183612484139569461654169613242336090599999019617618605293425445605461115760862621962193565740142024113899458015161881191211292749776659486879405076379823204397973810791566950957775819154675434767751972766662905753959308137644321719596905064643831632249465513628209731563773542927477439732700767729286154711753358877543512001884097423709043783912811194202098333373870309923249640306242705825800976562129075567326435419015570074123470708065256958426034560004800420694406085038069671238781711692371909292236717958021918667307919173795332320884878851638369757255779621395292761332800327043759635932757480643552437433294639167404132004419304462613985732687311462897283058053141714989627965627328231614193760383234783319022581358015964086698603611937798281036382717258596263110275801750125519131980384107220356869866673519756578079485377626940253581789821633249726596330434879713026022533749002129712219447884035702812552901646744622187492980091729156924067385237571392597255932692891203482385229729096487077688217983322506177472641238509301871972059023627639957607533088643778502028667890495170751684593564429111206395099103969290609311186095353358979333776740417808973714288058879020787633662740213551067866396727941313313891867303951395027406566689135438834701096985934290808227267218517098539057539177694853946821843026405769827746356131207146017627470212542884991240704521793738252546829509856564225880974585858727770725192351737173231501410650646083226656952005394669666231647513547352102677016952141014045137233536711721075799105422629208189455721549108982955057055823349639387156482342483987905098205796466604252521390953522155641028235576804169741168833969643486219670303889389606786274074179401805441112629981580216205925456207550234061147770188313146335237716289808010036431743194750242199615942944358132319043319448344105156362226779265479342494060549037229075315892068953182651816796352281443728277098448146884643092806012464102417658900391915637049889440882191209165439558898155679195476272930035872370466655771215651772721567987732527153387830163389070364956452404250382050014897279576369231985758029613053251175746132584364886062552495438140584184355328888242126822973650929203992794360393155843460441969788594838232090635596093002348790897271566024626613498053503974063510096511640460731148902126811777238118699785371810910149488001515488134554990352830284981664182056106889268990271350193106332698714260720263592278627797447904199981752535931619123632418153017771768774908614373940336895909598004961994730182647339802644896155047355001534477249562547201258203582885879397841276351748346882998797056336861545610823424338425955441816453019777795102241726274530280024934036722233685830274229399908320099565928467432024122953566483911367956092832941097401463610382801934528956557403397423330742775351682780189849339729014005368252771093675887587613885643352573191137833708861172769148425439132976974166667199832278767116896481995809386750238167250111381656042192948094207804933799513155496797602487838943202597219016966883595448855990799797600881167071592374493271063963160456626714229905782543349485773163927449389676059885049626665574043867591516493011831197337944989450061439341068932963378135998197747561594305924794238836291405211267648507160924413314262329493152704824424875084703583859810620235575465932324967542865714520903827646753979744315955677935953336842740981769052837070345040757790660719846570275959843622460785834365043421264227820261862053913296035168661144067821792379994673754856672912335196337738272738797256048167001670136636337648874418797830085208020797093630503024586937147665937948882911369827893855327083484507764865744016296180551212450993788834692043644321256538700536843402284480751954831609744444511350164374641071552311148034320912998854822851184052964863402272286973805381901554431516305322715237258258483912850841373212658653000599037877157025200343703013595399162435264166838310994603716246201567629565255061351839317913374788910200119064460075259729829985432559419396556997325846627710639223046443377769340596836164323501303197392147772467159335674929801788943185019024418343430745519704627432345314918879774347511514728749743313272650131398962603596632854922595374213648382057000672212765533714867772391521226226436697203235288912152470917872669628267015438146666554715846633978973389173838969785161559098098282299694868617279523289279641590080577005814566809447142571101379773407946527748888339770412281245662640360938843703064529843064051632195465230682871892096259402331334068560346167974496833484226266016215343151322797795418578694212798278193903888185519488387133546817169650144372650577734093573744638927662105321924951603098632907245764479111139344463847427093740180531537577228070854257885707261983582206489118774705778854314379844047651400191329531622870867631467235627567826247312652717580232782016676183862571069723570297470230431170494136451822412559505161714134226737050007437624434626612166465779706839752828039383962207767195615751876014784495581863628770036170439439859350019240987885452889950941462056794502961699887693305913713225240121660216240816584185680090448463767971509420486310171669297357067329094194897391168673975295028216612137057296622412855437354542885031513730540374645445451587219800331456903739512918133074703850357295438884647645283481760898502333389102350401554315075497194149001575308151006165199917549907819720450244462986172406190808226916739292884557628507030698188400031575582856186001657664300288168981648020289701358717817988360679393303660272515875581427866051006272455146976540699219686871915924851016566633157590564458318932202448772933942453372623301481985860132338179852353477194932856334220190368324307195331883886053583451370050177080132797338553599471340144831858307191165506631904088706773054287914647121268415705199483884788909681543846177504841697285640592601022047092358913696902442051693363623424784235524873370897744756077037928709026220535255750969176216928276751179452135955720809288411649263392919787794670952598187975075692251550151533526693907203928877702222216320907204967781850243375384269641913798929321678373457586560943696031488584301731440415526585767351903605441231224911927134786555263539057425661510924597637311873034222548440538220443421300881819009635526461175775521674209824545816782239607701020532947461765516584296823049237160154439545622353358829597692388840664561421291971728241458221379440194053560430663702572300834356953177666418378161352567148662535512934191368556171734104597857168753792520158219941765810744586910264939208123704425441642407209454441862506147612730562506828386098627148250697236164176300294626213089903978503119624281974372789388363584403333699160222007067489845575879128360458778318199418069050395185744630457790755799489102944828652689055588833786614258397648655450441505184092118229403890853853171879380205671045405726601715454129886666348078274075475628161747633569598588540552882910787238012325363448599995522598845421225104510800991921092318640220307914865217583193734656492717679514279231518087960041338188507490454331258748797726929395737386517842348008990161286916616732665837011109548074661570234159524819144466220747460965596117184026986559074663379039955673674068488392619663177902963162782765936443703555859612475665998208689833917038146299436850089824834545169942502045019300417086314659033230893940105667864127642049626704680484380059154796408009241425674821517017039855826266918243012575914014214963384830566232565397767649805400688777858522545348504251953409072939217667345201589586887226371217465559856541660095345012828896797926540036918008888480926783876893698460671609803908677019959549101007395374331734234986991760310135742121429070607898598615225263782485622456808564854676126991518935236694606358163442836078902046930266806565640918704310506035543373571354753373037622600129019061204994354720152821585067476899973374328464334780845931781822387286562060374086095799555654703690762766575385372714818504478302273377432686992380013266491597892680751155415893946806607661249408600027336527753633399134553589193358250478998760539337488449434816132072845649329657437013819056506260217605657897092622248203744305550809050390903926297981608437328209114442287988005489801717428446292059629607140171354134642244450069044736416458552977903000176863500977672412357722516194012265256090878584645965117998850964278723581223924817800077335316593478799024805290081921897570153935102777819495929846399776129331901469195697696743079104760430903709188671069736223107676830991188880741232378849300771796640381526502375595103866053784757540523501583105805823238757362717895311175909991646068130469424767967872487553740330363827144313293014663289638452831580331185450019786779111407472034966937263078938140454374788225533911639691883019734289030465819106157283566765988631862708097127531354366493283604362295779209922632639271320103928943172186586867600477582785280276185102786280924810755188392852190517589942009403843516766418750175472332240582301731903175201900185329334974081683268334746240051669967069649919031497757414534676695988126912389840974647408243378148836594230519943410803290093310944431822610589943377707864252421623078833832345977489709833169612688949028669160968870321491553514312557158469357569971864027982228836025456579064183378303435732948529813236391674855653507398858878143013115340992888124529523504489921011791126410200696934386922344012523904430022301322431689640987319253278335461893422349697191254578295699752565322817816540314016152670551087491040461526715511274528409930674903397753244167563764325173170691443723596602428622811766991791984520364440794715445098308894553996777056897241411392430946627880727357780251535158140084828557028562494052225605657497332486495288390636151447000566102953621290268617230664971697016536389683100761880963228439935762318098195702376370116606367971065686386113385068478318926162320569010241831728784977975367023414042630097962395676654710256162290839801651761358798189287161080691404696592226223994006113959026235695574205695021524366558139385718993743853103876735912564310196744980351827820827126159191976319425905317592430184704029924927087433846006486973805071823717549426920475360160502311628388772338796427343743015766174472731960143109617599303888145989342232695293625658110444930153893690808744439114233578423260762631446668096643012190161949531661465302611488460284547616072925170558200594676925779335756780352341750223322191626914399099949897829403451880903777017362855111265081683527485363968092392928760939773722848845752017395750109226030520490210427831454565247752381380633081965348643614276985639869531962771193977965186551601860903162127188709013522369045502855614976213853324841071679460288992024500899966400853210941038693259937539601023900359686736024634858036686557041830396582029717325496673823148983225628312504040914633365833036104106231431687591230129863667424759456585857532182590137627449692169498494042293677414889656398289502314830243385897438397070271681233533438033712892529379637288947493804874040240378603999005055596731791368583899514256074283537814188237563595066236151570604253472593938959351432852301510937728256318990346834364650962475098275052599950423778117450069268307862730103005369908460959958272556605297817718720444464995997292775838363588683597192937018673149448640330126484612878381489091325973882825392928667344546865410161397432172543008992421850756171766524860954166994050883751375321476620768470539821440326632164681188388453900991099131477612275713122814891012673041523766126804714460671643337944557150459402165629869914185545007065802597468111325705264994481196272953814461069134392585391931834472423252026225099000425024743625608060705909861385157271958637771331043789156482305267192535237761699789975740430063789194112004591599997329527052744238842163831541041796002351200084861191732594952111335976647047347395651780140410567307886092028642091590682558873076834733400991676384896218110189283282849869536141074142560136774824591252759319568216772544123246684626199225489119941097162620019042950900949726655396808384866517885142636689442692255353591957460499281376518999018931241241466574616751375450547217965264720707623258399639784984895360972572948900132304248744382797936482427222140256118820422993776668026110022904386679244615211540310450115474477837641781745867385396847586410192948058086877931293468021031796970330854411578341049974806772918398035238401710547637045513724025984718874379679876851969760893456423860645094038461890498333152857775213027038380413320125795868536297528634669751476444484887977461377659043643217198579226199254263457273616591936149901045589111043306492584124423747405319371310513244623123525042849115401711267101040366026154615321012739395830610696182111385579289809688558585720639133277589429926398613308133721908405640693491585704548987039764982735647500697553437053409043495838110570449639053333070756912081361113133278145842760799732292739319255436814181198666861079550991722846720140515649371249181084386049229463434744161895557167403455808544492164492391471688885632923226393817797902706324717621504498455813322027409595172669687504146710958846460454655705451835955943594738343299949133366765370597361993441614863575060280882143024585700051617731683844688568341025166621432268329159308525789120199857390739852023637450833194427304769871457684207072561078659609600442729070016135189468684198987482661659506814399233674600673112233135261487470453485572405307520769435700288129166252459258226362704595069148250226265187054974945148191572908819445970997542378729278154548188101549419144958271284145001312575715749515691091437933150029753349940278446724848003672179734978339263548757519734131394236171183369759015518926258731807290094764585545167041576495467364879079158988036163516872545672972463798554550735414450484344698553163974461489421717477604214551897542878306182073099856023858058742408926121301670867266670932389790045738872657028143929669005046913188317852194746548866974424010599856279987364347364880896714675081399232377177718508311433692421906729723609164322367114083197375722706265628410142892430516783492332674263948554226111760099982742725426998563544580902248900062749064875639322221777712831343426334410341309015602468220668139561666579168722826670177393024292928476336735328362760426591013305716884741915519247389465102573935386924338458014090520199867155097986657725721978005553926060504391399001064672615648251504852347231988828195924602447393751613272172020911089106346640691054208323234896149373919537518122789380952249251471483495114734982222569012945271317999705208956362008717281092496268578850480874577580048511246841043257522140436300797015284918109103330408298907594158154999225282641482808847856535489001549217820610791932445729873539060199728514989785721016820089605238686360165381203116449054484504574525173065333681626082273139765262986934810247923161531393884214952537583522487484871349790237146650654377743399791963711117072574306816082473408309163421800732035098007316802226531959565839445865320314685614862796685295309268163516530277218026575362840878292696529344590793961616643538404417134541697809845818826135310802117425582618918467106087555806984146340534847064138227348033094006741177152966384408785735749575497993784150578690910369608083985491014108375046338207116353960520855437628054493807002913170737791496528108859511460624154332296771000363092715936213400671747850198600023797335692533536521809928185604657666874961133170514981178651548063950331648177052876753727925284353924874410328962981117731907851744391803414251577112894950793905342249200423011259541099992533570198894742639569475357699148871064746154712835857422049985046478419216259806543358818668090656355847722078131957401368560227495135473565484195109490561685592988981651533821252729909373503989638518241361952426706465465357434892191089259363707921524354087758260755305078844500776448021360323350038233772141633442925769180926655644539800306172006176598261309930941460564465644621581227916321592757845193356269765746880695305701796234418620595893737716791999496307353694616524414919024721011558118244859820950944263454785378571673651230713466210310754653079046229817994576445079557298257173593603400913512468498624286246133351528412565856842249478903610915493905249761412568753741626791563452227900578683217570386373546443587352284546097572947327072707865380884256707235224557627403525636003104692924565502136066470599397417382273470747938552328951979382176881401771669202161212070424988313293616375555387863798815790377365323953234609799924259242572276983691158124374028634840308266482755791506146614532756902416669183559833503587767504852308985795100893294948896504653675321117347373590391476837514869940358779042031274047548238290694635751099195483677780567783288783190190516787036379900673517235089425367854354339440748537194637399782680995294811609631000222812286591095954849625974116352731383345666802293673763987869692195292599080041906992206463414756150746269627032243202245620063815702553469646277617338285652686551535815400015550798969422482852686886534761107055921284068509305426567377334842083449037964309745297776345437747106578367282940228690255666553448658720053249241367377929416791994156365674970144564898966467087159124701604732016263761430274293333516690038635902434818959509945791518646135093800967031908320640905246458625395730739487028122320866064893616034155668994335507798432737752243522595849623114819662720925064273856675585451427037818882642705564562467693466314752759615313173102190034366464234475788965433144476369270509145281856277321139015200906949304733212468306864295068485956692372261330088916894858133330620145879071209645593186356913383604724358057956248857718461602880473253072904091372036940353291634918566693985389665315916382603455028403522323344256859392305741841162158861740602819018781116288125211728123816770047691055919578181840756358365542629180481675681493995136130287247012297664705833151910678139415040689359644669045357793038028966001675089921496394616474792754944830351518514514373699340560571721561830430475568377690436874778400833032454430496457802570995024832981725573084712730032157241722211138805189614334274532938525671830619751503921196514876870770582463587523811291950100030638012939542127695683016903346388475261757684026725350256689099388457862017332250773282279877306900342052776747641725626857485170147565354874022698798841991051894997110914599097265117800424896544504320904045562933429334575518128648293683180690538709112094778222228509180789513221379431035033647455366679961104246075455833967259964157984517374648945062223564313953538186438115550002485855894695087684288292056523050605525384012032055900728386363409678712590330935399999374263384480639115113856181527867391371850392176532427510284586397817573846049122975790936996754165307729705032151507502103435198226156842906021506541429960603928281566953835676366135210283116711249718209723062517932064446829961575517102655312959629314072686721597771439315545981717208920012854769760430137692532927856715643738570743936961881336805705283675571755686538380445609182617928216638984371614715876351502694016758614132316753866608367617083603559018928226790603015350743552135394527201230497314178490144235807474594780234536995834837079069188163257506504012550821832707283627384218858312067005443947436175541470772496633032582991603635045341037896128421700443287873842341292598234215127708830929537903609635645744901584511918507085096225893704837746496730827715487021784522352787816326597954979119342516214911915091924610156381108609442993522642532866063979819730672142895027931756515938696084576077165078742667356257679657818342946624165753087976575643376736382665188713705404887850457133048790298157975659365473669397964479911212241059849793647745089386059077430938090359827645081049952376387026369967799285304399510215880559330527768906526493789445396926425069570210499068315289937934209202810009940247222519563754446850954014625224237419401143036230372186900130586409149132736563987918133872753036948252699013404450388126135495530222162828394489423785115689619689351114155402513976151182237026202135345174872441912899412207686078675749492882760098484985217921606264369616636879263165023992191223498156275712204121506185865436871227728169505790100407564062691044760615814474015354314688018221051810649995991069774212040431796660736418512111553764577605241929605269625139829521541459071622462926818248989298223605284451345865525453446084619428469300528982870629518657380826850285146932289311093963751862575624647102464537362025733208588533704339770794698506082380538550603259568130256110666528882244291376093688317743511954729976605857786596570898572221449392439994983911871104331431125359659036438922097329449490783600819503841159424094389989341912413497085493357052187761448565568328591479396922608081485853677679756707881112193280877207941989777367661472774341517200115839162921355703917799942005596471547876225323234339471246253302601629752866014254461290455182403876228344450821197862451315863320268993851055038524254620874235284980741321446483090966140457514003950622872666041912491711795851590999745779781741188008449204310654547041509420203941830481070312691191463969352656050401917046609069145792179410486148456228880162493740429273611432235654844259064271243139186933037369015068230237729564223160041425283330429214515615048138082259361997375117888326706047980635345344834319066259300949713776807778102552509187906497271628486783076563755454112503510649908894836774994281405366112753226346344443805362886001108451746017607078513352545811902833032612241422966653946201672530826281580754233504950622795976888032687407210023626843073736617007772679938575192260885968269095260825133995651347725053221474313266485970363366287997098844022299054621351618173710142449257275451260622945318840098761524545063186792015846997951979605376650097967935483229454817780281471605953432035294397145369471046004961099688934914734551214180800196123150689371088571701737507614924593528084242717434187164523330125521581654928504534833619938907013397817562967532897532219943819518444046894260901046740483661158566430826318021605249202666985612379835645513864807130245760892589458869749134782709911172603130024397007273720828241039329621982078935824539935927813520303197856962658981598309703363749142458809484245650618892294252202000818685130993779210537944493092131618746191931991585071889051237325974822021382895239446907483434762497691162991501453694123312509280066377371699568353485384443559239021147571007070565572381362717338223392945189303340268623174228075774659412835945399463204257237250962489198444729255109975668013779856923686367416556262853648494055958463224859532088121314272406544878102362010014861680306719610717181080815806685605369574191435220883027648243923883948991377961377543575184008900849552202369571615163235859003090113009052680065532486481337434597015288647654697741023544632429188016471755890745829947279974317962063127783162928458998318687923045654349173571683098940942088929929618168989877277864420784992247525639408786166643266398749579485294699509727828696470084705976470957458395475712255059650460348322469259408288192753326932286133423665882662728257344223277540012083900677709504654192377473548921466030992730244097766326479237460572150254114212072163784878687002424157129440084294669677661572488608832840358232874372963390729700539397808008455641832713718651808730308137965851628510941328065407955246770258131082675909560750977393980105548155052822250815872868579807394651443841936073054148329160839706145198285601916745820010215715282475469960819876093679126662220142417365040283819664616556286060249212066668534302500548628776653534647956897011330807378854718678334495654405321684486134439879356633239955567823316427539221950574098970427467135135026060206419660950721879672337780903561702259356907266202781661360703483932353074609216526673812390054317906706259325495963310507418008500629550497436687800040384222170350422912417007673502462155320814318726566167922927541667612624306258691352710275138875496091181239920141172091611850156575067591471273844211326972705101802005172295643914048157972673684776686791366566320059558733411447957808567288759408826491657520241886907602597083031013547194150113112569441206212029390469541422392857966179093699005218035788820367830099504642916051129405411903704529745399764101635316212258621698078887659090925301899079595518526896177330265213156528153683378146493116369847376147354498202426751830951511825321472174175244629844082032674779460927473608668677440629681534581726413568364409421109095837833095205168186391909942601273953349683225730533551282367968744154779262235390952762018004451592532352497162949516459019430919646427448451983193106880316820911632879393317576724222594683443483112803492616048619087971866100899575618787663808808182248131912763328285146923599033529097215426869055778639845394141835541518630404439012339484044961611531114106404603363084326509036275243916764658321657754921237448683549636375011627536982364099303595592050577226390876065435397458888251706993070096078098767930852434014094636026740335750809442464927738201739989368269941096922023786354106969914491427355025743825433866279140696001336877015078101511167550060559695264711095030517330338649298824958400913375039679773527393767949813173180221872871229592451368013371446118192206118429892561924137908297071536655783574186804755183333939385814387189063606400476265470741343760104433278793344492343563533534734208257376202279164309938712008590009359778180024790812721456347419633368383461723851493081470156978897922847058619000974260707438189847715765361525413905982271218337138760492522332611810318741875124682242161589777987160615007459651623014950455880727413094810477562980863183536290876916354552691513897636972003093510065466948623938748078170898255518820631072380773042419536299559957319743370025244782934667109786548348725102289028943672270246716289944019366590731615644698233040670652023045597588773167985162650229972860636845413819862320049590418800819720208699314598731677374364793645088134706869349470017750359637736271659592048030066412272837433726156943156989714796921803930093323885553815309464045441268282315791564715803870086285591079470137672747035932045371878371903498872622538838377943695222057270654783791357824120079415647713772143902701200058928495907840469724286145577726848736652927222849688670832045777102211790363532576974216020663965666330128740767795099384250436086272160450614461894908429469342294407532248328110452061338513019014309436280501785387460011837911648795393391062778737008156972425524516918200135980719059982927016239389012990149264997305897976922095225197696931118978180171576407586762879426160184612661791191518589521631828148289335721363391762335722311445483240982395442520410117553715093147316801824145134070429366303253706964552235149755331866940810715062288516181503451509150526416953999199675496272370601437799892431473210947462636027581844768760138030387922535676322296261832715049368384366661387528740060715378893624500563122313479673484316504805119036648975261228069760481203615237262114726281435347304438630896316530889195660874062959994633710417188811205373877507985901182468089041435958168271001573325196566321657605530003394760970815181206848940877554297136925990694809146216085942769072429240119646394146445519923104224032589667677408275582183420623883956332153791953623768567006448003565888455913293969823062158590572232983790271196135206137361146962709132219352090054308393466429928810804467356970699895223487155798876787907600863608493064265784442001476147805967141713516871208605789950334589247520767871870031011519776189444630867678124383298970682717989399364840191898259962057110077723095708488549644239372106012648468384064222357055263535407912764785725628406740312790813153767807100203048456631838095165174062143295292981413792325265556815197966490543337450810629648138621651729191737099849692337490438311441275240920407369939258119831462487111783557264768813486242427756983895481487252557642809983004794501591989406923957053470272160008966868128409701295986170810124831990312082396874372686904574168661183747805694982950815623731853769836100971517715173764642528694132926942996177011246617838474712095987047695259142241597615357990778849042014085055440814947646064972177852636764746781271059948052421428140239610215216283028675922779472322320725075138452646971093775680005674760175451529935198584292124467499219955084516566147316675773404985478782948858677254340444366735501255264227687502061752557815298114649428621995221931122874160457022559000137961214286208484413058336005289777886366767665477972017495917161679203133077633687556318082902486752708014051752152585655070661342086891932263470937758118049452551344300895415111310160350994212964215191397450553361558281216025226929599669446219349412387808224946853705443929097040897357401122073828436120766417330323994703951191036430107053456753887875156538960662146185171130865897716003853648970049025033802160164573473268091819279019295208294576494071167792076965586068530705744113558733141391392871033110103107364598116632877862727689807034528109140312654812888700559440982606775286562967543594268403374760605738360420017977060520828675493648639334394402808809102495064107641435695713604523587940202959709235388621364889978634301050079991699752553846129804789998505632107410222105547007135063419178728328330944613074348073078178161848413292982663364987205163453431389317168701142114974486159505475218545792101652722756127069944379863518196027220546695521219576082548720460937107973224556445525585445889008060075514820507614633553256116980203312304667579878661339965647998637898471966017604165689287478721956556596491915137345373605578834797812865513430537091824514432354842212854380375149349401917668597665896274045623605637932469253414722540945390588443562765445601391405533067507738123085699754918410558677664956000010634093083773629061838926063832497004223238666818537337231462912755228189437807427624426991461856186263359604488885034446875475414960409133940569517743564074913139385983168906182072745566945013176859861988715922955170526327500464131371151432575508012386767039439102290160459635651013054651445395918168451464230680718029681089159571743299319182369601567251093790920961261009018777069416596241803120552243896117876314014945712798590839618365693171252208972445329158672207798033096170751585497333470724584606762463539265466974291838278871339505667244418003054786065734601733519030171204232765364951045698280465270402808302203949833628373723985188963056019414641811254854978725292432031769878525096482180968833006145613476234050924884581128984316695046196372018979341797933290319154834119747400441243197105701107026536080962907840713257966722378932383343519631761468435966043976817191127117707353720501005761787885067220728294126937213715064861859930054824743105197417512139064047138591364464169366718013639039786643295798478879908000881779172131105836676375142066031698177911321787386195569059320668356236015655506221834195633475447228739607335073181560817972733923536652355614045913626828100267652590285683151728083518778034442740334889827106777993620825477801588959952928807329709403926500300295731751543385056527438493028870517274857065887131405381704449968350497720411236834930910848959047034982493739569125836863944706868933861827518038503167264881026875169147910520802513525041534409483269790327648645666518078080192281878813605052771143443737281483639897246920416474973320630612142272573717772675274445929075490340634099480952533273049378320843039946403777150005650267247266677711062323911087982188489722274415977009409147286754016906562213108770095199481098398288972009149841261436933806921213825517043980976346881782730699334382331325184841778316607146325841773303366473865281608950252824627011278022110659538954300027366426460041660177462476631697272374057694750174616340284733042107919032452906869438897885027386619028403143517330856357075532978913618626633856970165508606529527711465871199835511444935710570552947380540402753167873741232462857710926525815998789312481792115286518675491067088655155090160944818385428334207286696392026308386449819336579869182386887539733388342562215669335339893697191511913581263952467839658348875926638748921641783519560836904661419792518907564770556296366980129966391047957535806341031529767650257718049590205848312777036373605555129156701478994689348733925891049936531377125675147667442839232578649450147035279060793517974322374253326646338827534794674651983989380573735975539117354785320697392889184717474003063643094647661915305915151502262489047522072000669478501850789101472810164370525903080237678119815560861076488780800618432960072079303024698677130686882709032099202557785132493526532886446658080394479329008617091830775972693884490284313061339011382059639132784828758634962468426869603296276157358704977771034244317293935003320110199245420843389850608584733768557210030435335294700353963110395032460423969775154647874842041267066537538054927698729650100726426865239918399973217844211853546031411691120597242974054567509740324327684887709767967838610036168526998753638422321542723079025848983872446315863519529842137620289891184478650475627847125351353787327811331880361084974521723625790332588126898436692306159397560720703391288061297867522865705094775758403273283136354449935528623335857763021804775973375231918872413601173942733607413099414184298821253480675977912630159026644749876123317634822802060706095766002873071763360211115705715255757602120995208589911753084472386166854640643763774549874411151700970369830050524764955789107289507435843114867771782800071809729298652100125335231396865824682442380157835742993820429833156108923016404037448525392380996973677626539712831411177228834075861474383942815180015891802657818578453778970531411759294439160523879437908066840289420553695873921451893620353098041807575448473521843037251051500338810020433866946611193496782929335280293467680589025336100024478579062251348616559035554260080355433277793683115005999912637862552867053940767532647596626123692830164410597298804232265871639051245549489274057716375407022762669868365895205839398730594077518905456431736956668762552291753779379719946253731479244274318676174248904111793380383895665384853931966460835317995330121642528230948821048893657450867679253990065773620995893761359902359515475368717183698157005082068007369863599937993775410386314567256426119365107905911927530944120429118293382149932345258344641352782154702326164580522090583855007069741535769272924256815763964516557974774001054651042844295159623780872322164712321238945093408349237920271149080265375652709606358942578274613771818891179264811168298456450432790137664575550330272920912333206111814776368593993763371260887502973946992544268708341273098146230774488265640325867367693916332689084064318468149093489246916531065523137037605962008958142857193137232941678058819427962609932547519065695396719713050671233289139903572758633394087166580788198796132511130270654655489345868609460523876152480930067265630848870968969156260720865146230611218445115343393557722785957551463225822050560621253030509679658159221287462271554353957244616079922844516057329614199799325106216301692834844081066027163172430446866469059389402793603662600891575883939788792973819424398024779010928520016313866928039297149054838402388224927548790906246816362050641559401316013603907231609532517705516190425043287201784924758257930874194050346554271310582294678099489048209123633065659340598652475406762421213133491759190302349193218116027969691580681349220432667245762517675225679674484308702184509606266155899222838925655765311155242088352008183832558609177009370326628861167308681429859466019776594393565304950053214598261115269609744820706063406460479497250384959304289445787931497643478329351691212800251584665813049348036454856293594002430536629508354566875639239466283959476025598181986662247777161539191310078196328171175814990198974790112410727253611781850153891919699675579330190142904282936804062517772460122619445388454742062793648666405539427481205942994498629853123429803490042920855432345362937560589314438692444626821453088128956854205545637086248630736882518889726977636372871932924932568271211956558699313363548967890324755105026590683687486089221975697509570333413754657991786764256942021306038161298487270632269451366222997705276846878386089007867433470044801430943411735570334173110738782691365901329690288897183418429786643864556606714459249071455586576487463057854779135495297630851375294416406311749076058305391942903089858101271672492196083599551871418498994139682857071125464077790152561851570867324770239355373076761338660506597534034493580116473113133639771722540149480918185436862271561321279168989446060236511591280434045826047001446920043543466547088612174880563724338809722326605485425398664174375594640416680474772394280435821762323664240373684484650245900401409024435303483167705139629109269377882731351662745318981822336245340742223533133735477633010335967489957174729211458424542008154684517316643540869832603221118312703846709981573893697376969557956328213467746742314308710231487626715911225400235402516255889442426306470497770666806038394594167153347891216065691096152217036002830716259291665952363763984905169213635843542875453316886854417373309461471246205712617170690540106115416475360590724505411443155353478971483544300037177636252214424713157664852299671534104486278872505299373387268937857569665507290252231886858562805832660802627228582199927078800621310611772550340338334986346316928066848095445462478973424576847685756058251596592537884102034247477412928670564165867752109715770161359369340047083261362721267309892971492188540472907954494435878616726214825806037542367793219396381479811377400259797774166604321021702290876223514926796684046931869000390797490413985723412860042882360941509942261483405805854145003691962208058308691847473728790277432716050814760198006572856591071264272100179037456702992872155562291152651452852492150669259800227857707433811443397876025601833734194915775751576226545484273645924412390608363953675340545903218078207261951045906867758738810134759391717602666911485914123917296097134846501940836968656897093555163082285144282444767398212711724849513725961365516992047294893989131934238396035957996873683170337607014482829624608747847395181926500481430443424325213955605226184284522128645718900646034066803906959989332481515509363027037721595204549127541901643485561829577143136416707771105304532023135496600917124751853516711121207069565506573017543986995876683235746331682690510043979717086750457035396320433152739132709074312289962451150915174938371656431354770223628304030838006067292548923516263197720154329408952920269596980331013108790850304019941083692506024181123347624873279582648777383482892470890379368241220019796931954154371666264080914518900536582468840301259119327945024336140237532106180271744576162430194563485753075307423914649718639346586749098457328455911511239014327257122159485351490209256386480959221857579382098889237519073742806205088387277725460607061446377426232349217775772854785250083726169815451908120164019507358340115021565999792365568486251230821401468259264756006787173276411832508143773426717555028675395037054073404921722472729118131022419741226735176103042680115805378272277075269597978565649067512083179100773876862988661841150253046851842904172782005907718961841032116533616282533879625181665375520883499269572863497560820559323731050517034914960126199048307580853312399254340296454623851128589410783586606250258725616346469592924486468143533781987927974561033537295628433500894231225986487002698390867517982440989559845250914773469735726104790532441362298977121578779036015503465698402244947120137124653041696451617444727071961707820005857204663645242520226754652653946898724304527403018755900899346788245683522140268428215016176595056828801924749152114326397900811178444927821183697181362999220363841780109603235255192725274613802134291462387548466495962377513097706177519002606731560971506122762849672145962189638421896514841940623223567141654367088675120935001817389211824114964115950804570296360164116857360855178295000206583535781648188141607497682097059367191288222411597210080779831899589398786839317797787173220843755637950914153884039783545923808718187813947529220259752778344086213938971886121677871115165172300835818873279164841520364182092186493246724606276077188015099814384526156441731742632534177804969876225358794157740917290888558825799729971472623015702360639113681024579595764352109529873496840139541991920198203282422063433977150532892866097446602544055946274096983258524504899744448984146266031354757412255692942616596371716641905410405332433195868445099665612660185587926548796948599521941115433365114957488927523639321197869020753669681595252828591018492673682061662339188506759325954462180319596358083316615897239759102979984986723444707501818573169880058181062161022758029018290799394233369714173957103101764918792788739030200803973495465122840792589485587070031058743833637983752061161749149847621611875580528609510153046054625053464358682539730696113867637284572282577142650698056125941042992225096949310668839919205459108632224399131462577090425128020289172709427594660235763605403684794551030476497167192505709036445559514470374129765062485209130198489138204114276837719472086540736614317709002694412962155875456918116704896534699724288702443726807018859617435228422227414290472344829363574251380876153217665653102640270045827282537078732578490172043681859445256770490321937666408204431565291632589710735929162594997297751442900686112068527192189119416657945870988876436651929130569372894594135526511773326554861861758647204160639255418837433720556557243786327306399473157099077623645535900333046585328961962184978616005958439286023813093590598725653527721234075571805285685083168343891584296486755460620753936959308213917198655958286952379405908965353118009019190761219128548878480086140667059519004066349147618554866235776383085390144612053104387974797840988891391833783823408547288619587715827762760354707466065719072093914972051660740489235772718554703759202029684622843493236897027651609982187940893776558165373697047513104938744492415963711029942636787651968177060904284119825217040398709285609061449131326991373912351461810217326174369917959879702691673700485144570944693732322029118303609979004504635001050663865352132511558641965803681241616269901660004079954364371279527320525931021444083389659102940605359679217220310629645369032443716393434189162537592228149168759337803717346565852393130844897289593543623445044144847501979237771614945162319263082575488305941012833631447010275831699310374307088035237593700351324829946176391652928040242407220883049214059660746817674275996562119974112534928674086487527804099808848357829068887624563894114653191943248988453333643846834033945524164476607703751347800231564108635617338797263909445069630981125621839036830021388834002590621406561229520930216881022154968096120278068782134545456970688743929241905675470305209435579000242421934407996786181237658054923183783370339467831880756677570083253956509407899773494686822522910170581476778052802448879368374190789979602672019742387920068605029981161009635576305269370451170798952689473959642220983248625645074752435636694774328441017056968127324128580068142460265820879720271316079477696359069898983928894427376344781748455896984250695686994427640021670242848677654998801713195521134834172943432666199113597690540956269269589232946269967495576665587074060742486965986575278633217737516134933740971411285911247838046708514155565271667988987235798100864785304847754115733489287119819831350705528960333004849035708768831300160835337375653136428082901630443901868255432332630479975717929601545171607750828997948730516440296323837689120094746529445566052488885985432015696196052811747609521723487803225740220886733860661887714374483523543835779597939353350232329182307021767373847044427501567790721581391975090391022503186702444970026793445321358379762909149223066548473126352242864034547438507164878673470269397044405680340620705279490852120747361716259699969931105888071089579565588860571491408397266682027458314485923094913169124810271546836933624010301979429468714341448009318786482905698146245381679752946806605885238498665269188695339318787087670876222732858645859348112523152038772608064698089278854044274643476874208075210018814322802009673884046968005160299024706810915221926006700762615982372959189013025223188656359985738797561101861986403343592643253056290308020808892991419872508637598564079848961484200106349230405751563403640451379027962273397430004814338760955818112262081702775071093483952017248627306513580451331595398464804200642520889387684936608260519400338482889748986477718223577925902353509606445077454127175323581896966551864505703433557582654653482364789322953477587275318621694057548056375249717949448346336675615164942781556939707899262966306798099319140124652978201033098625530087634534619516717558491869187622815759167405953040481464683110754284379838684665588828340177239245263398012007404017863421298714476886235836614844473249889603472370551680577839196202992133398307822867923678045478143261801460419483803884189627474216909166703790758050376009258751591066896957010118935093829918380137440651850628556591629321051126030780163131926979607020361901081977959393990511658734855774911798806511059975087688281481289491945901779428795916279196429949972028930023298531885193106054423580342190323069407657815554804183923067920379607119255280198657314030270514850980054003928505567279668575324211702120923295182295293669492053492301759362039747771151467759024317023764551686418616956491153437040687967616870904247761052939863183675979807074867028141809081368153305145588663403172435346831999849240556241470018155749972368785482893707075330432437843226882196781478838985261839678736496772898680705356066200988423295695078033648393270755951907955245283179491510403209243894844630686776535102629016324821503151867669977404792014597477848764910201177863583251972993113677218234540760017083311082586549068775298305942992444869309786481826466793124367800504834538343565624794353248597476339461694040887353997872846133084873044594320156707914588021520446949059417820007606551712364004470773461581609954040436605889383572942057382253761144497561838389104712287459765720339449106419253457480041006700074509949870400460409013147888443998032334037704363884586016198828594307027723466698092651567851079755511142868231711431065835579154261043952023082604569783060585846752841143142871038657477291503131465904173066402499337171546703590294426928257088020383261787010050880167299986882092750949855038398313579726187547911605278378392862592857127977461390293473709351823269541132703347263635060804971503043601250244631867498392608227859987565625841138937658224183649336933873234764849058881976639220090250145618067835171862348259593070721765515291056119451951719181796516493760549809851801101115858556188511483793316275759889004787804960431180136714673376757557858580356452295203535149183914524261560545886491048111477535875118192978242974957419122196296250653989149516930846735718527626033524067648823865196217472058830740058837050804019480794161144423846379600381332268203530318247057100507916555861852159193420751987354891171448615620809257159031240167722415499820098809724739332903819131056650054992602366246401276123311858618053720229405000136617325389797314247357508118115028472288789572308839903281855199846633045845531369362627930100877895768205448338290567868283936435156349962648405670243151803854625154753881828841972251154080851342435130430930418492756977202630260517151086012807833440370571727377849235241805185588795968577718862488384155715631899769713897382516051893129068026533809681762975270851487290900926519783332591462758740628736496018826418836478806981365226674815953437424709893965362187783464961140031005868422241824580162051588609028346141848348082290959719211103586209372607893499980761191620117863600608933971495086291306019527296964214890389266466993777930369113255781393531803652585593336277233951199481775975924627748562203523346450486148877849692166745552435750100399725523550372294471169233532214787984086776251346722158510233656047444114702099696271966135916708672149010211867439632501691974138641759704018734866613166588242080650325880132996700377007508444210804052950024375672632658001335617901139147454552482523037756739598424009992168099327329478202231217795527365351418934326606822654508504997361651445148316191384721516866161946737677809466846911431529151817222958800487549811103051446164415297201085345897504481087265740003034066310028925921849572939449987180144119388987253198445430099472057813122608521206451366468063165234093086381588005299671140587487006512020813621869734066357003347931622656614732255974063804248223589138950096203002830290450931401614310669025161888891578834456537334951462444354935952225700282249513086400902344199095861631979394565090791708830588641901509419471284288087868180209188572435603686878592082306161816938750174978090591370021591754155498379739447830216914522080849753914302370063485106567132346509866852414686594495606883695883957843873424817422210502502905076157910132443776794001588128036577751657991811080569080832664671549820545178675007583154231776720160168830696127429182682547615224691424631025526024853466938379383064292263519942827570778368937283406764984043428187010354325592702356235659809894067484959247893804463914744996810060320107986792922937282284353190465303832912484879456509703712692931567977392280695641570022947846561040680466834427787877075133144400950646991852768473422155025572838087352967604171136104729171557078350906642359092259090733453780842992726222855884055296344412594669249297828941020322549538630625267564294273541271077606524836684153957913027982712646327989998078309445322122658567732374521167597209126649575457462882197141235017995429018268344636183965292507539023640805863213566008225809320034841047021083972944191594770289122502625287067458372133116945807248641494277309508387152501974144170792729623578194234260271746491066074370168895644969629249310068937959993062997456003937319781050979088823651916959516553600832584362354777879859309962104163221379020486628820215021685496636854388518261765157809258219240654126299470039906907259935707390026607657489897028243108955868277271275471093865573847178593046092888952323299471298605420587917211168536183330586913820929151437220213898703597758569910326927286010916951436019790457535645632198002318880400499972911526947795760662773592156828279171654558415002873904200297040557956505110682072329642496415052355363560783019664679441267568224528083666421109515231941149673536379045960114153915505229386637859768463915141972414867737716233379596304782710804599096709808359681979398479891720976942935899586491566653057965969760166787106643515212175462852382782180205439459636009833034814967730620235092472616492468858154486354265964894519822523567614198096335839950667272408325483311992446567948518971516113586210760379111210412537172141788085871127366787666768112043655123595428597524198693037721150657035657421571312250419425669107642296291437863078440133943312480085010014106239711254685064228064385687230442459907016613766348337214097611365344478069778515389665787868932935644378753479901055029914882162982006888812304352777351280813959122115924378674414801335137129633063760909515437568421247950951674079794718971850462326397328944602020862365464698167410608716327920719957740858661306867718764813988650007958107349469011097173150675578503174496916204694404816223383984728633537984469101071135748074198283374356705955292972175705454801244218862710589184874894577835514758704909029406527756534345151133247121726587231012440463703774542392967491224607102566414718392604800211223585170644904305675934348732479920590368184226502212124929456774524967252685507103116979550163493899627825093145999183361436766868278152174427167081334702882708976976213288662431342667845959738455599116694196070223061045171057104749671957595546138376920271141671828199865038871735860413649945975784662144077442135494945946008915367086755756771772013522669137988377933184636908266792295514205388442628801148409194036071445676924696846766243109626816399194050476009911657469474830218770573897477741485801023779078097761124790718058031094355494843176191451368860962049986556115603134966506722211054397520023377872587016416938837175970997686800243508504249103650685786028470395115980863911399769964555504176512495722400814087201563559637556189005612171454452702657076250466251779706686342639495127212174742099927970101299943672034960352445455160417334986425709417748539687131194669114009608563634557447146736079527346034139017456450785367557928959993209493185666806674957319428574542606250736247562450914924880921346544337709301002306108570534909477929080844520500696140549102257946931130131268093229295477827476174871050272255521576634000585253951379032993312387277765144563199052306377068747359974411145292704614356439070433118797072842542270640919711037960498763414406243121203788875239577786144161321644634929685234929292968986736656954041952321116671747792854819085303859235555096583515590176400048503927472608426680608043880041906624454915023066612556423491726192491221144503816341731672879430289243060392797107791986239188114746656735657281126403908201723914216218564358120724316634121389878856399959081068842770642578517872166879215593683663468619506099948245627287522161763193344140644182332521266465083096257008208398446834453191006313910969070867713090993922109090385481225069321972735323712928235553848527330300987298930392710557773392327409815735195117935320398615330444443656038616607844669502067410315399509398665097366896354083367534708970187034838859317387132526572733123170552485565041561580378557118293615333196340011262938181919997582047219739173560166074422956462537814036374510157934033102174061016190582066471500301257205633906750851650620351611879075436230822810993956711081080740625707865559150848103905285730323460586374082545406778111046118671278985390437381290855314121394836830243908882355730041704262051669497469788883752572497533050466118311264634070292918779521956178560095421220020514901944162993436149996552017025961990499831675601906150787143901526467665934575385690451157181503870769260424379906423759111233585457959375959664694366838689125628571780051023795708729517531102098190804443380510645977132062825179455065365755299568775236972548565975933974888586574546167540310111166931093640620285439759997556130741779343253896346843915805464923585101375893011352628887168238165982312896567896347490131099431944605244339580653090922647006274968989973957865988441538805801387995615820415794255958611643035046020507207362522700019230546191224086585253273816586033518026585937263115675687157417298177716073751657502170749921277626965960530612830496336742352730722779125920243007461416892616766467113108036110268445820979794993384253200849299257578238024623910172960425368027047617356950495825034620921729856186990047208178758615438090816558335183894295071276514673527088546018551750276203958449144136283978251759320365966435500619053234452595997224590706816085120398068348473092624726341667758059294514415212068048704945527280588860880439473014479224853495610775081434399953076412352764800406440366183233998319439580183000445504046951021578198969295760631115778374005949818720527800879332561299722284324349774871965628196516439927620560605003189697534715033224512127180251891492628648829753044459706964841445506765724889797437114499358348010786760661752068120881326523561080212738611592615034174919089414457472268898633855313260317496830260025003327913091233362375098148003779072271031087219963161940689556215328802271820714457508737791892791752800839630391842319518605895763436845244528341347772324471335637554986650910450544756767587359625050467262371003911191675447676967941341910848557832714425997088773238825937106226993194230604096588048156563654878490588254083551152672343503862160877064802610255108914295385685511016248567222522860412256730142062095970588730991079409293906587277302318875325536840376602937281624461714012437193783046169385670755619443499103984277351670488511153590096648010394180525020961085061520622679356617593919349744256788214391419838669398968924696196542319593568896606408889819527757019152769825773132598449482739150294130378200802015058184668612246902845665070017306854635652406528801889342191268139919685784292146672582490912121312840486898997988713081126769998908793865257903629985808039970176898839332961062200726581217462969268448832566413154477922309877009890444361567337198637636227999333301196546181656570244401345778945094563822427042436401465310014097936577801531528108003857115703856648535084487799561888168946297911705025253521467111330890501488907053176681878693329468617241756224423340634065628441751374822261121273899496178164965022981791513593200343780452337515211392023941969238066912884650511747580094181048087484531362492974901684439666117035828012060670814565879120859400945812890839385164062149471087332451445730350926670372907573583844182827797473350972512541974804780719540356889344142876000990622498700227573291300071017896770554277550348756433912783772427101345447874547564761985997361212014201034024086890827828270593065862892054098579919483504733080003112299847082022466209506181276873289758283825459450355858753102179744114121987431788420762516885350527348428856345383943877220313386892284086963345111578484008095602423885036827759511879412468924792003354712609317109042836545386782608623059613238804584296257101859468067367543821426934103880976501104550504754653763466709636458540541504131565362210507436719343989739349240506028601225453559759925781756221535616695970727612035498854308467741693546332202795492244550331069793050240924975456883016414861648480188806271766135469809699356955993011074164761898159555667065013420117088303381173507079891827683378832268482103335450851802922462264411363410480361184138535506158694866611839738847382971839165115158406272643417047643398236912858511575425695834422856827518162069092260348411696607616602310450698661709107130871550793859839208494644046495849409163323348404550278131019795380296292028155884383058119266909346861512077910409432968269432708439724188783069753899527682477927790931161265970164392682784339686554581135828165190066425239751631460165181941117967986429445353451702581826468182791145778858141376764381138300514571479817867975923967272405647247417150221204060390808275201996470135971687889093242492203097239770141753134031489716840506630690099097985314941777063365946757214046387586739603261966713577287207230646083463525012090096752335500222231613981946114463197292104128084348007685184415588108972015578692174556832387920930968834058317510214913595406345973507823601160700884734375191167516631212355958206017853501485460531153518234130350532654116049722528215583928696640579002208583599613182540887014451527824930188486360104746704953476545590997488419581865629103039603686148681014461817280004038760367473323538745323517224308972604003851523153258499756468088052005220613858241255364314035268519443655640286223406307204960242209167742677363731603400381924743028129622575151903145826105917156385365478167997950923429554900965696991883774894500964381316708334711683907520312686480253769009520806253026347640611091046829608674859541185214068103789282030973479025712403431046511989040172117574077112635980573688040090368414553123222248207451356074941030276883213093754611023930781948420757827976147572011913790447813111901163052052489594564969561311279060275742056144232163379223458731913637571110235156312598005003104707254745328696648538076779987993354234598417818859555850153851924722229981140709571071060612696045282694263003481069170815226354045530880887069444208286637289905721890840131243068905892428315019563712214867925947148114050238435364589002035746198235253426626307340730808627735893566132380486305552180808965591701051106503524297531648668664307900644082889314371093675776623752681153739989488754732569736971239017999609590570589199511130976278583881286071411891295277337426053542927094177698694240868525926752978692940394964802074120993954875462813245982528567698544996432732197852486448806833525629621011150171028383568838703258600881390834581073569677670273729012039897424581033308243831869744287724983423744228883922829441515510491165273427287211278766092424572143020231041333966820321989871039306300421532167533513684682181768261046167469987876062073676822967661911725831250478841241539732019585132905777456716720243609505917098573150132176145491510252409858444220390762561960679836844639795974762982334363387682861288957391118017123842484148574441997377866784380457023081652851495393062941721036400885601396849922195841935570052709664460447252039785229279672088805801507439716479833067228976515707229631351571341343719625705730187394759144578342538564585794475311254730864484577486466927247404797806537209097678155931340591460594442003091579989551414743053810343905094733554010551410011260885851552997185273930270787429836789267748793312225686371375150199163089560927591156228178003440288226063326065564280529006804604771738556962461162456925927589390637958336550119730975525295980206806185767362316187288237674558415814086591000234664215609814674946210726610109385998848637989142835756631642170153833688531698199384005978871029873314618108951997391387927896691036605300976585329824753292994930013073865551264065560804174216274913391748466613970377839503080696067980567846252745117880526704849039433658897738551927495551155511798272530906548206755624574015300667178734831558797109832487007792632555306868275084103693478180042136185204034304339044543417797553425874713430967373231408546005544755800035596452088115256063234960447813947157151785623422263702774419044121524696602181084053400113821329155253611843501774246934539380209554739400650187318297318041251432372384678479865501144207115859173289456703609520976330564498610070083422417931621795930105998843523069684385810404235008705599448549811395315195326849678537101198244986027904315400908911755790964115199423932199041771927182001818361806790756400848762204521673617648603904962871368808975095414763878205383411966354828562033877835051408557772475018654047051781665466432324612115113974977356292554901940321973948898691712265948643146294930261690291096559246685273781154565324016138876593106616691511416635519772218906154974466170272027513577190143376125501771132828012618530819735270596049175406277034758470822065749347068729794234267702473728780149909698062730088776216733865368652144006144698486316269621869352311066373953468029976161803400855163560836929606186000097907091649534979495888760239066852658433692506722966773646099871936481517934032321477376056945113555168003982447054735471206258953565898834150011750590071863402226702142050184338305382714500355919605892001984298178688414748551966613556088010933326907322060732051394018741268178050198753974581168447782066328319243222604745304414900876930670998212460444821487289647248320618265951291243286805764829560847491293752031505016800760320911492339690215125702682778719262808959548385878745531228344603907124931121761313154086859482259449094424020524144745588890245014192129970773312946705469909629371621640041733059772572818061463642910071044510036996510276547431205009297324181945613382653887886282594227647494382836576279730840724475906858314707876036446572787122073580769573361433984314223167543086435923124292787197341193948627156795227700313794084119542195771045366895782796169153170035027089006353932588201394453631452394269294489072647247535048061227594296165367254601020813140563960591344462832238915007648703913478529663119624980684682643579163230613331216441103438377858109833413649866698377801072285013753525260377430490356663775508549794440288905209741807488366392479631398665455928021010408677498353047231801804562557187810361754044525375170618059266560676610664781617458915295184362723345507249288047152341883964011693434074303775408517394891242723935921011762253807877755503869393136091134525100054926038286913137373846518835345322583749589023516984627547000647933818599222314313688899670597817665921373872002438682250735008479998572338240585830215858517077485148688908068783099981940426272081048403744253584265877847932818609294701271918181684927109113260522522102084400668982785009082941845604023875073603222999079421716445202324016215976894148240457458112400531095296447572344958834915512458542505355795005591193216215664414662865805800404307457836736013025064065263382595466112474537722475600175190010048586619555334876378376275844813854716954157146599407058472252935436726709657698425654306185247458905665827969067013946182221925651232353862491356498543602976438872242835806213919465382948709203848232417445677576760425951321421724849873822029647549587200080142713517177418138979271140904062731767888779442806879263072326650219567521035313284493047882565278041879252157599154577876168281502940503284104705918916298214188504721906236538123624891668203218096044880732925211092356911088638958258685485930988714890949589114421075247771873364416660781178140943378947915189760563750939142717960243914496874416613378165280691381032467394812909588537875436215314537898174457509136176787270872466914404260936104144046511261239676339852374844771072234439148324890704048644115371217181619293112310429519399532058413553015659293958999787093284153317590223955502536198911832829063603385893937691009323395103049988712539567817109255388568633635346210236636946359289039513492933025439348566885170668952721520847510361551016007556174509370097723492971373006238037504990865473707853449681768155398147193073378152005988107567594378222971849975965290983070595888392628294093036552866789559845115079305619042244404608552694675975951935947425831285326994052732539734706510574524685805397201451165045779270662484689175430630113548760955350748733522203022088093081273575881025914498509878986819977522779414927571239988452093635892477606588522551935195609689784631953281361830537965007382603945912133666994176487959428330785273237002529472556501245361114917379352045433831293169961106981504301884943047760704065137117460585855965938495016280780048623788616976688851316191070775573274182265532958632274013921985333640825733412422943230461717447094254845925712441777498869474069460518744182202326912938517414114200568036654799892067557166524339451336040604390543525833643696122663842625200627643082913472118882989482986843419846138720386151604006213495081779073395367787747883346503659181271750562037210827068230989922389914340085563126516156760289362167749253630427097315495909626938535869624056938028034530122344333258382100315566718755993293385866791566897549339423796687881100284994735050589638838223304803704629761704853411828752732218631607428401946764893993255434808429296025760148505432622419935736769945313764467964497334970639227092152091597327463318045293681564986466897650732288074763855128680705489188788307177486271914720932176068909129113786977121938118231980395019078519229842532640458542035977942117783061281879025670011246074862114631375350359838760020677903488530803316089879181159954062056485410702395365861969685930656653212049895552002606107135393037969794875783777720964761374581795445678474261991527204530141254597797686878719136927418856541317584823886011697512637823602387996748301071087506481737474789171472359869843257592382591464342065876610084414225874000630394858264770370059787713371947438386005901444541229893919092635349258450953907230301432523340414334960552903921295420726877081005549097559670245595769389789562100848515528988360239230564544433434193124313514857306684374892607179115139475200400009406401087457241425408014238356075578572121869328280286699833829522400676019627577922927764290235350405233343025697847141335159026257738453547920161372569641567629855439754964846099425412256000471707440332901607967562596916512515885277507358830486051094658369322882708065460594261076354215714043129069782770824256316215628337068347531525063135249306244611851279648750779825922204443582714002800705629659004963597022107863495788609921195969777070525816812693917580858420962311630464976581852164182747075377593882644547858234760226965896206277099724597069674555336622094014167021157258916251463874150049389552224841509573542562973289989083566364051325506448614091640141614760715184716650777754773668417161996883530829312622731406940556800809438916668873609590091816807592417127588989149682591178096329532706218144186185854184871754632254585692320360132561992921906254502353209550771707645449943714176151890804023470497329775685968123622171851704057475301751733499917246013761725888733530724517028810527751610014017212155416534738665917275668254492335709266377369555904837148247369388853709660085977408057789067106870456161989137298737622334697494651133185754576999666287377597553698939559564302109322319295972417118235752269032685181360757399025462179004715274398001279667601001853997014957330502190766005175842958999143876910441054189978214230014189693138222575594481842776980369492804244467418636121259022562113864883909380144805370019661629633600264360395698863925876909811089974436631739954777262356662142600587819913220951285729179120773329930357093581827703974222296418284673967153462205884114112110184043122611082339963104710359444428644510795123401924330117975134993001898084826752988563593664550447964909692239432152602486690794972275521557381304332202833876895691434682213681009854663558212822885734200791862794646319265589783829592041573649607514672683706590729559902932860784704694214346663181918601322061666474162240724043476782644664339119329270961913421100600089713286037318073361730551660138958402615563219549745388337786094260700234171857862925604336617410823429752218916877455912427303764021867741930251897530188130410911326961082025771530326211273884842667981672228921151559176463544813043738021061869777339979353612414949862919505914822176283289308299948822907789609823025313060053048403100852104065272601484908540543492505640357069513957772968761557958984024147734878998013494311680833039483773734058987223125435405007625786018700305591342025187079752843087672598646110758793817512706114786041600760099610467300137135930761720834922015767642106167199935482028030338548155078370608325011593318767229998031377074058143543157429783075713417394553011968122544395240395557803427369151490837986494801666412515917298210782981909329044621398861123739644957039045956638832269385248009475548932479165659906843041940065256074505149691557303297163360169109199825650878919656447761141867417902449715612853691909991475077516023455349962769888259860590626040042228885537125897716589477575927273820867381659205740162944104917466765305033907732476947023152211564897168868524344619487942134708847625447134696192792458292462805599183782570740192200686698039340123286126225167304693617236127268639899154670656346032611062789311908803178341428259261223336631982457377733857638974383371911974543749488130605023177677078890031978633727019743281227888854601928174096121105804569209442162209301081690266490860809335249341092375863870214848805685655847926886946926789436729416160527570796963417694508283090734425806214785530614812675698403642539968328907256009124982223805591495063180411398959773115306911842904436145321146063907146069991533757049292273593785941251878638658787035798935288346214389656538323390643949782188431374761590548579863287670808343266055417803002761728447202364260084531159829745118980217926177900314283560992111999358769491623448597453329059561640593871377688216139025953956585075864209335278225609817201447012039726930251717481718604121196974470037110727793180367558768771366012569428750534035153712983839172952405417529486769535542232465807023436718896892342329918368808947474256001560538043537235176625872046033502479056583520659907701264194131010392225674901598287862029456987551922734215469036348150959651681918418958659155387756252518757378714402113192147267250509980175878663397654996679261359075693458808411732664964567368191284481617440703002618319600411853806000408460838498814473327565887035099269487506422589390914938651160622610775055379112528110503518677976489525461801025565653543744940998194941103384380264538057501132667621400964444385874004162813753528164939470171580557222871206543997827228323088696138920760485988203475242411824002801226699047684712245647082495591577212287047064451067042224631490334913008799092691381567387815012013278785200696881300610298167750949752611915422072634323276382062996400643023069944942864259125036081746196280012132878216261934163634757236245513600781071655999800474265806153832737350655014511675336517025852598210172676663484604418966354935431373657958185106220039394962169109937330059056373601350088351582278269894117313547031930938958366330557810180680514487026595522527938412899515715093464998899899562594707733535455397816376359580694334310343578907893752260954969070768893154092305533627203560841544487311682453802348772326073278496247951785219755631862899350586146789773356574390535808632953115023365489577507729239320913226771822172049456509869783504408303061697186061643101206484014782576781778550256835908652399777982370027813996769104033034626058538244294861532817301009591344062910330582375853637364331028770200658755438565666202657225642826176504690985893464689850211891124794766759258768703591292302737583024183127462122726286071523574293134042808537133927363517832504701834787211676844359458555823317519968162516486601486959755816326717307173780129846096641902189388408955494531992884948253983876373703162597749159509884816127293463342342055817990410821223390251723671456057383932952859179283992260164517628905427722182909362275424254003619153277952548148810935822471112333374923935703484125373542426993350725658177142122250314934140703469968856730492027663457344359506352468283137611543368788002469110276472533525922308193079397888929800670985984818196643845257278749130176389055819808822450328789095366439780046219162706469811634677014861716304455417854157584842207366063697980936792054554926787448003008114227082032812949390864507301659750367212167870891987815557231041815596687318768535601012057938944587462397584452657402230203050380999928652293602560699299200597538076883731218023102737760863238717314813319260375032863595571700307240535284810280767406839653714630879889774557973177601137003086510690437711970346669018450192059621456818932088479605605308137025276760765189182709298956352812445233191945082638581321532882258297958865737870497958911653386369333599039298329873347705784742820240178539724897736715524389693919737259070345221161452218209497900846767695176841199826974797172067555901495755513334283136962396835241960331035622026925148259717170295310586934083655863638351084541976075544745610759625679484110128003552294622226583022701943390162766628993891056787944522045951860143442033869933282955045626391416317148901809458867314331622797135343719794840844429475960126638058514537575228356921676600329993088073114787401075606752673930028161352027302284648860381276316336569933029113507136784678817949848949883101609297062973847602737181790563415455793476128388826410892681442247100404976226937051860402289737549962178036928115882836579039836720204136970706110368834272566439751585235495936047691498369030460845636465924236799763117871238374895998090100364071936480023460585451606693863583460248155820657099098993877578621579249657928690863071449613058303019389897278400701731713433279701671199320654583783175083875284916615023927055467757876835018438569859883125678974343860881098280992774167663527924048313953320194229541796045410615099753065225136533789899239984497923821461347502474204928079740125768772862704881374544955002576451639158783445829517240705114730197175526555500328429778650457371773416788878243384502125058533287567377451797888087665771838759232111193982416472823814901143470428398003299392642248589163978575571381903302584589357430577351938365276146184722767825136147406939786438189510398889672355456818137296299321422413546827767948231786355818671840783592027202913368229233692422943011763430142371425439014306489238536935920326007821508502455550641101380518051055116356649587101370740598770513014618236082099033650700066368618148864195202375870862063314457548820986159542100944221201706192190959795588098100034077263971972639546886276976070386729164266421766429490538161620928262156464350422712819611581842431612653482527729198071777518180645168130139093041244693697667246872103883114952622711204129574508749727525272184683576040783096707319833091673264623587192277857551259235342538077725293887406918831670103944205238265244155752895102737015099614074348428348083142728232831183656709193414917199149376603116859321990004970236033005490043006063174961877447487846677610458151211798996493691106781344649461391735638402966258295950304656872477172249325285114118695470082404959226604187899259992590233542804265117552540214463644827544592285943342660827149570752809256089783527080042671282742534198824134649819512235033523330729924423252295087297083394645359329687404758274728749978170100556567264127128789857639945005010230975774362712542785553554172693832782401823772082232446842517124341593020128627250815763471942280576401836432658309415920505068264897315745699567435106570144155733821067855505743439721186626441317733899759153704518247242052331038260170772783631394297672522076072579103730292106433043766156785183841120671588184464613071588374373663298904173343764606552969702210381478619868061757917212662185471280164126570644729690237126937325272074901210469117977278672012003869282551852399221268306942697796439571667609029216839842324482413662409284211407692984248861634745624210278267911569535765139484731997657800648637616822793049656938731544301452776227096099269585216109128473622875611766279155741759820585425791776356673377795016407605328478204162274921057355410946396460645601582477267976991341396773363643501484471086343338275120723714878942907060055376234880363567335701669361467252173768964925590003710381359654232825445511970406321136258496037667413533024548555692379793068502999755169129248744708249474036615545025837915958890111953573573224083295622527839502263123992140400542326550959576362940414140241700867889378964389905543348526825568506266465075109139980158141184253428860062352551231313824354027474805754939026615535873002737316205080802150672953239584683975566514859119859317553642649782924488575429033135127207572114009516776914152996696192210735573625427510387795156313696097216608773862142088938215396657853720522481971774457532069461802055513518070354946880687964236946002672293593142775112900752660373704056567974320342855808044659644457169757285672391383469399134912059499218677661483630609281166489775991595261959278953522068856513815663578813741620596128440104098857163892247844823933940070412330322678540490781740033790909970249898161940403341734254438654394924174601754963476096446621335420981996355996569400243528965347028077634868801409874935432189354908234772328015618822261873569749305550997043282551769552708742073863572316255088439253845513026452626619729142540696672767078290821816821271636275708079260377225768625489979465715625467341899349423829121818276965831198325725786490890958047451184262785529114586798205061605172109702790345376587445834783427513752269193245861529425404022806583542704365058529933674693579666127906290324860126400274827756275342678948489326262215786180221633032017419181417942554961781915986676491203203680024865573544116520073984796430364916979600273187963642827763028501279446909196086786946408773880955278857864370988540879561155415865566465408631690817414537179991880665567741646016036658461613962485232366591050250068055845688729907787120189343962835749191442869873992456728087961450094076911884811127334482758937000970723290369097617578959921771492757132049097871359238459756385434774493035969593851816312283621737648037449272421001600141924724502402363201460557207115228055230095039922958592661964906750036613913132418212861797079765743005456403495222611727803087696355807884496596553320142791088266114472404362185309446715186812038966118153817111031432179117821538978795497150103111744537439955722459226942451845012112281890005621280384024471625941644940124805550491102432437542794095414577409542120853912785143924767246182992322918099633338602032786592350500284438107781222264398531568917864129092200213494890348052062333186034023571466560289982102669791597328625445901311555135763945378252586809538318488729195512202666900417260504005189006585208685354542732160820811140054976012407881057078644722262839667840626150731464236851409712157765188954354602408622749218104556423889018828684010159545415241912387803158873893202038263289942975285885693510362601084506992029896636436641691434456912207600371424209376163135454805218075199802526331707645700334383569402490432566026772246710926396863392755951454347629210929144706812405782161085606039870257535608785457620562687338501086352741771200392849205086957822783767748390490909115588289425724434445059344691035589403521710063060606869778379281172919790206356129659665138882572617237679025016289600580413005776484835121476070342633728670800093810567607118532872796122891567580776961809491654631114476025618163445802251768500270649330290130038107643816365993105021037133866131406399206100233010432265452094017801599995501139368448128130175993277329637333493569277527873252540695114502478062563565236654105579031761527462262309950269938515427210058527921085575497815916007984191045561937028104092218007577799074353497183363426761621763354009985584456047356826376101592149124958155712931541434313327353347473011832459941776968070471626440297292533717892089270406623525905301403437697446935426519786651562242377895181999265511258076641974101384305985697455991622841710831770037260049551516834662892878651334375132974826292453742826686636316494296944643118094609827298800992848792758939159980465777912633116202822650299065523960619093120211321177772827943433201917824687936854752649968087986779331009138557959318487067495223066245209543811465453793093269812540976152258517811456439909381725307086121075519783692510900677795187944769342522598203971202632484606114087551697507574132875349806901770882664887397127247314146518288703645990146857872632651198761339553744649756386448778365842096732311053379040991255362543968528601904831738753307755084233089221942129108798215664890097289523186525449704444395361919299655141536289617021379299989507731272565193650116649193119129956855112601292346680900735841415555788322056442343639411536999030143977548099869630019561701316072403552611314920147829518318547701729575040902060080938788991308893219332783539890628148684628845707750009059027435629807642900051904370070455436334466635822014191941203986605835109726467515793124839018773871498114440073095255312597719273850829893985235490905294387851640415108014973917719811389066197846738418285111852997398461206596391375139160699116543163409441641487345818230228631276118597041632271423613798520629544880565093479298690564992931661505852350873048990995817932108689653727819378439843207423987798581800004930962218246537686843703995907934453915778753148412247802226260149898827186863276230327902753847549937813788765879060148885307086982122544561984327111940185997756063442445076308936302026522053073548836266972326693790830964442017098598090556255126035654390584420644310424635918741992969509346090522518994771639669092930738030461700305656136419401861072233874414397438772333633312566568676883725753928852474003737672675254612641985319532897800183205353019838224144620003132851693112317861698798972313870904960452987312260404240597038027409766599281689183898314099683780512155821789682977573675331832873295814045689627409451302176488588588779077875695459798823583347615342117218185965955900539143803326389570865438918354151216353679942512270732672878220621808135231155630726006338484119646692143976999425681154153058243167951292001009984270394776658837298096125771162195041311896959271386073148941745484392406750146419529193771143880962332372260538171324473125287201820219497727343369712001380661161800834896758214467517821124749702089091188706098670774777118519071364426234229095857455887319169650069213795225872235596133949309882482758694139249234526390362172648183010651112218871558441441619212593753395494353666201860060764047855172974722729703102029983389436750834482907227852210460066635354368791835899561492866313313150858719417869574021574230692123183777043171154119407533403333442087330559289970766794206431323977793564810665037860288468116123288855758723887345756799498088847569566725950859009480635469955370289369632184748130178402523110095515730669105120773929928922154441427477151626276710566743384260865179039834219875913540418456139719725411243601539688218485044836171829956797404884261505771531814741292818844405360783344387457164715249314095294398323936035678446742915124653880600314448649485670059184320837809294284707615308717651545052826842586727410314868913547226244415482339927249691686304306835661741835091694048185548749090392486676609394625426985733339819619669951621206289560927069920930029274122154278084207503915078616205183983564336035633047654204951391394199841904727032185644769501855962866189859162774625093649728232171347249616620460261426588042313413526490828327148157188698484549727700610751927834133621537051186741789298587019610055064420453293055590023067606652278297448804224030022920914395455160921784637573405328389029150251966931020475966755460000954532526207248588840170897103698770495107514827645586481137017540844228423325381769038654412279873285394465841314413066232802833019731838504418676432121983773582904912856514764320488499806299969477482001973011287240224165615287576284678122796919930084606101141614579868286985484840134082021560944982028066454104359510986695518691912337656277492400188120955920961109963933002834816451218579369093467985347974977492056343136288404598086118161363646121386242258965861298988969339693269137522513904555760261076011063884479427035609386393103968484791319951515605975579590763271056910931311136330481215625290862615824930981277520621137315876548253074068752945423624339883055160792730092770353835318193639516923033161334549958925015584051617713060931209538943360469973276090840654767142625090941323393705352291162276277741770789005981001166404652507769664876967261989820031259420592549979286301896080659768820611616281446992051246419103233559204068899382667835735653639581107834189927240841789932385997864916641126928369402261520685414467965689590048108504642980259445555192129786077768294197573442180338480100399107067123735950992173892980854979477621818047092298542274310060320965107232365981377471151400680705939869713564902081935357688330402606313341414021983303015546137711435125725102840353743666219367557229160585315362931339523585287732213164293761112574844910194933596511936696222431908074765372066870117117076681585885086570779301815093090369915850170456056189189385237763193233989672921158884436629307958454131995060702709490638657098928651614447834543667652608311367131054107757512000693583602976877685156351640906795989403138396283175680383827140076906332210059662232487310505998169203486404775099170344265115992441184944549025275999894441801017857495087929727489135361747450901034645825540685756789753228768704302208235944119108163635626012423872462830389397747820383063228853716929387455915006694725124739446401661713933591697905486185651036860734949094498086302587013447412171615787616386968899142979787884258572643578107592462408173214301086790167975121361661851116697802220670979215668802991697389924032372915935703017020525180306456282922912176236757005882370719279218461344157146467562492992274833381221141855242791653512269183942845778109357621429726746848374111405497221941676603073177853029071141185931436470475092671546536342631576793218198985043991965853040859105161330494348461880062803201686129379795751801723909526797527403869278733271331787124320817350883564726044093214022978431046884422385101583605523901831436859433195306284479837416615768738576698207842718863652586880056440202254386369733891309472186243638071309341386940045171264372298896446695743578826144643093671319716623374069237422469642564468008600128673420101664024337122654324005269472493810549764917368305188951167533011046363072273838240587319943138229978965240487053181321340838268547882217888666839635023765923698857981487201466201655165619773217348718199362933771568994717683257020089048944008338774974150292338060278294242663891233794701211330482285667661156976249645705234467452684809175373155290088006589081287593833266303446409010901493684104392573348825253101856994758527581139828161733526637562862564297410082239004376451749578204821142693187013319685358236235400498989853369878040427748102878045321681228816655667278615475105486925709159738201735869030638414337546100162200712015236880997313547194488657484757577171508893373245619186977875923325544457395617177709546855493865779192905191997910316799601861143810777592322208441007320497188129102002637477178855176980886196028495530867869845899972448944441870963113829115445513572165037125117846667696556314056491289400158291680000651326083502027895083778755752808569434811726844037437361922464047349849011140498644795406246687493273326637586292492071733859551854578286317777147558854799362127427635938612393185467480645703816426574729230797687093034309129765724065674368079906142199485116911841036734457886999128618199039809107890432368739959395877202891839140549034218338498049836707253197328546586449493826107243523901708615441693170852789543589806469148886041826918567122636962548056773321420859849574465352922721519688606168384227812771109496637499765929447437664522404552922487624652136508602984254076593175202928889290307890161057491878847620599396385493057852074841128312197031761360129145812017096498599444350742301102618096818934835950788247052621827257846039744625813266263123715619033320266067932927849458128034994544500930317221190900189801215460981164283091696951504547680585820171189865604504955337874119693063776108457845325472742968649561074390951409663207275268836753295944412548125963331567617518796216942057669684489109249073420153256290422675067721371385420047450654450619984645745503578296690106024748964228000254728372697702237751445582533741419389684857009675942352732948614815885017571444160149688873391076453562753527294055209508266788978998633733973077626829752101707230528191000103597795076756606281873948061373533150765590146281676003728829220132771871262762721615300266995405542517664335288815693486376795477577193904525307801783046701223525252462870432101434131095523600779143050497493809388763894053298765815254979243225491841852895315080258490056166090505887604372913867096269659465955590899878728695262306359096905180748495940674579916564406474722073299593509064823257411329407140948139854305479145700608216566246758751888766465951242820815677988744387406560729825007077718587757677888735703079301197351117987056660798611428645122193244929181995668984214736345298769797038032375938550561218743817799403404540341638367317802644483993477724154307170482122001318492421575423855709235722411007465068335106558631222221694417344878227102419542291456142135335107518815665231102303664112519446762820012273954253023738460135802513549653256895277089709052686516828956478952037032858219197412663706578268153188023399617115821922432710230277577922744088381648724872311126947362373964491787575965267005316460594158206770051066202630662419716945630518072624575829820701972200247419039351916733454206417646636810912749942129952615262536989401162219669166613551973358905993666871255437746716785295505673915884609512125362617943516440803896773301042450269335585565384818134404384930636886368575670310624569818222216582657342106140555051634632047843512017854439793079997620011116339418259475062008967174625239028850463337252077220206249160493710196962913994831129493031142373326994280171099270269796402565775145117073185931642358917594608279326255587854455041194249762245109809201301965208978345617889437891232509203611592414806993691242242933247415283089318817522058411453331215647107887146181018845068299620637082325711283337607040751874873952773932001852583708649026300573107159640212393288370537033243459135427767819122984799710533202017451297364736235428310185493151480207289556364091342595132928036184611287081659500188327766508361950821887182873532350972042334297676038510281717025053313121046997326553394500691398886116523295096269594314140625162080093680010429786968531891723132116424469315949293793143837956867965554674158902630867872916754466412848610867552420306770673285734405783851608186873999202700007590855262572834125807986881044236860495010589552636390761824352965215766411211913058274496932884779239160027265323514801838340666581470413514083561671456897104622376468225714458976231110610965849627693029920994806442510030737193024480466595261676843256026551910331768363294266482050409905450982708017986996905348293348907718720025584992962733650211900367889162520444539563624577713046881083833186373410970974520082348267924998066438293153959597824581577050589761989743380950264859670745668855521360711213487247203022648239356682430616991624491623057656957489781352514884394853202370040058590981000560461267364602918903232488231742384811135663097223050950802311617253499654017030841000401528467969201867994945004536115966018685357852996560537254992772823474230751153254268502297925779704515240118523972221684410175690268578010521811001013931517410990655844817617604474555681341861526142712934049882124197979034405168588975573881722974028496371693815996224377479130986928926169039122565939654676265169987958625965729241844679598039521941670472048417296691564934699336006089402640786651380313819381925290404659856027700759098656338345866883235841583253954888348424671061131151096992887872606202813964311523866676549615031828513752585833211380602491065380718213207577683677578985931255227717143379102885276961294296884092984571332671547717341595452757126725752402034941926506355730532242280936694146889835194234889953569530312435223047012255502626304920477228935586057257887077387821198806052426800766419259771556966005378306517960268968067958491222127218139773413273842131265556640875709404229380115239423376828852542793688459652319706129645392119606881797662085196558277406391601498197398767796855263517428665634991936109557907825208555011363326132991472239525640886790938547606316296250036007976048766680720695331533456561727759540802943571969808216425542351742387073863409501882328719601681959757163467747243969382889080689210866428094825267533635407584100248654363985896834573100359269080705900369129165931701954436722342584385606751124543753438220479646704399794072360629117640065643024705420610271459061754001412685421750296483590817384244874853977408628231603580925529236498409119485371664780796562592531107721485638290807092151064283692369169958331781118137667612082261032819643510981399884875506425161135026975665199477106143478461104998697637347773146768381314398123710889900152452164482175241113812824530801692353341041205270688886013137110604834127636786043275847912445683059308850755161234304668090563962600345829220314759765278992415918382577130672860078676360675609543580153879970579333892122086112204784755986751933728271485745294852025377147387079814827881020406478306663323711328105631559246841070815753915249251680988270579786025233230440070145457678089249277607059658196677724326983196825630677522170489339513706743045891739093303805675793390053127878915239149230286517063551483296683033769383859805895299411759672110793538127069910709862553903931850948609309545055574859879293372667809398104624554572912499856592189072315541326114314395764118011381539201470962150204274802909086850771493349438348443577201018130983322305748190906828086793361187359318771134244578165481406008625819023429989213572322490550631107047997656955441291917642669975462345631142921307399385326912042159202914662451363554514339191791153451213246115653958384825565087077963199583657617735765302957217500808854196020359949523142999299504948694217333053350666036237134287370376916224529320466012041443028094385068572021548028370447632285005126820061160726601689873509270394523889872256972344001673405882617214056955338982613892857686261842744754140744147236160493519944473697679904346209684988929897936666989694859720959252385693528496216654248743102225047124550754063611615294319862019058015542481809379350840293227397085115045947391350153426237840860492335796016862620596823806524997445307074350058514983951502586368084003230725030606088925641821107824410402317596418733404317143946091975983398953334352627692819300445778561097117117982695810153538366785687220591587563392936788020318689065575845299920261753495143092196689557505725355653820205870713048060492582671645038745568471797037067215494228818013813167627420252258533179707812889603091591534918262265288588312992393792948985498092395946981158609913568595590066402927235237966430517045687661659320682416259010398855315221851219403369318211615007279928153069867982788902329539050863522276298029332792316273699395969402744222443637039121444617086148843420040218111436569791733751348855246287493512049937582842287467369066681366715921219600786602994347111106084867928511762522449859725828244275347923832681345944409742868072487000993020939695367742572154498021861925967387108365705849604480464530034266640792167617036654380946627399613712813725808818918476708590112719245795095570540484402583924133144417400031127487398244221370952294350989648513625537472781727731119973864429862488034286173462760862785340091479700424046980238233313483021727891450230871298706372680712624276528716309876023498560654459549270390372317213048455098478690933494907784896197596676862494119732124576986487949597489285465973675228486233557959733441557380725607481783135657551504927196395389692788364081441466170877753941821909229393441823046205123806215258286503510281757156936997566184580241847134863803080479449638673269728932103730961741827806414105820505179141484349785223696627960229524828472174165606704992374917817542412942055128582029577561766328335911028823382619938269883576177911857252792134018023389907773939978366716000199769654155449558831452475036966825960240147337120145750255299074483687521304099512472648204199240428871748859855220893866076647875984083490742895844686750391558964325221979518218025958156166547978146810854927467068698730387772492866691341933787464010845316677128521430129184537865310634777140923536161034411266300991941586624170138060804699836193177763509679439970604572813976288956143259347833844780817397460223964358329407282195372389277773258368051315687443561779362458359898338537872829043112319536967559162632755034246527427792938450520068768877248531138576208741792994766807685661590189066460230306560892056043879397849599771098742821161863775640336790876725741764313236136433594088106160552359916622774560939477713153744288302339300312222368511850915277066252919779777101118294638078459879598935141840870652416576176556512117200643870101625341457138844976893404071985086416645560347070826797478481419629430657349848948423991395305605265803652105982873141542244688373986588237558574662394996460000980654146791343295131780974371145788046525664182611058626720757064613711449519748875906435118828366824409278867897998510971701064370607317640786108079881513553366154630967034139980009936915774231093695280240685492378052338712673443993038294861145088855953550990303357926559681493997600929127327084329891028621598695967983373541736390721930156504805799727124480541654636330675092480938999368005336353850140272217184638332833617957437359763875484983350860555103652857690178546050077216374592411449585653224001522206581652427801185157996751559076258124775284818713956912966618894043336082230093234980605932907604514824160319935958153898181907182677318005767313728197221503087586106086692077556968801944892846748397989455647422943749118948505784762601379964860969828436654712043238000504498188086872295506937823294903371283424577267563506034652128197864147307337559091237081155376610913660558393172150035998641459088585518796220238910534315244342663370093153494457908674719938871531027872423399445193491075679592752349947996454279274403077696975112667015741494051449286186647110261887310595608583062510350380412015588172708109882663524621845882512598767176935256468514522455422789352316452321388587253121393814508628302668433426514524025102239805488359471594294376979089589452874493766223061162562238234767806763171579752874612802313747575140050659087388567977024381372627619936376250019433003900490887581544584235894564395660871115404323217741572977295982019897272575092704416266292505229337202714762766591398249843008590219261452600592802601622899558993298641829132300731309243200167087568104293653378113650327804274052906823423654893930284608413200590923797144400220297443991904711989578207569179967898060935290116657558304031280049041315369322605947930405289340066289962008875572887890992099532628973925546374814775871966071671852827493555200066628740585493379668632279112906397412376740016922399034529182875677010338929595023998728105882487805111055419439829532770232642486778647136463315539657799896259055047077917099516746001885295828671200546668763027501889609039742139866040052272947021668029780318562624091746734720356372226882736675892617611034232133915183205886228434554772211996417436798601150120067319214047479595412756990900908701963474543424970518188655221926177225673028762875145865979256939086120286049362496383201784984179022160250732201860038783093826276125348734932518632914836271091639238947732767046266408801374046363174801842159791521421211952946371064102772710462441555077993839692790018755374696674284400819628091518324163920288331341301692273296296794594958660727917883545300782736897070983982418823071494889167942159377873565293202152257582587115786685818898168734128474588891901500490522534182736071851421412811191034830250308654056662462388236690994099114875197524020561775096827159870517510358318424576797468297218185566178801680155661669989562048446100617795396127546708583558154660080896846780198961250630256074959770274883390625524464857038940967018934905684359551038698902760789283368023645050103460687667633713838844981235141286847553183793743049713225241931186524596091731864346913959856552080847486328002484502909851267298239833376919251902682584800257923483469315079587600004463358915333497895098797183088908613919631930526352955910567728298322480363832772130241672867042612355951643078320108530893600683675708482649071786027444241733731464756239375824258643415387951413824231705077209294804271173778441179649310613403888540229038495019215912737051597018586049928348156186704548743907506473198587887079912907856929274511656776104308255420066216101754242484084953560440601095390494349144628956978085696199798457373398624061189556544414879895474997263721922208101275464246391149024833690330188065109710614714512214351926675376187597214133932670167255793032132365535770016596185963046783949083517380135432600344391896517529894426689574946210279477363854452743184418801359915120403056496583191996793228349380562617760564324373704616195696754501865290001491208299908603721165842045403970960212133923369642618403266749316111971212003903396838841767059770703503900094625666439760014698477180151083908621272798403150704560707527923638627132253149313307477518343933015549596340383322404981211531403430027777483357402636346200889448579665365073727137946052414443199485633954686404560880015930941426666916723708880277607750730284776626967689102951854994879702889310882878153147421528114665815367631036060111884027303219453824934744224224135524934798909682974336625950242634703446000263550897593187905167316600232288525187579455175830644349865609443152590789590272455660760030072342377907083989535986166625665050742465282179003890247787347304996576471065448324987539115450856995306550194603643062948613064161346545963650573163278530513113564610531035525353893079900930339564854097139200548070412106166676116105502086948323130512501757432956785368883002426831241517510036889536440770745586776115825306628441833982901467435105537836297875139988754520758420434422139311658948064313436147104387955724106940850467336670856599557717574222849316216019062512581963254790669910867118896381640852560105852528713982323105457496477788501500540311024920128549933849550730829096978438965099578271857646295930463645293266252631028708237243366265079047081211952164704967584244606254408468785547734672891781143641073573446797502354915835491733317962370253167935458973865100576360172943351996155814373535278694881049456244381573363038119395584365502441854098835171511710555709956506784163242490512602732800765952895513655136596104945859054612264425141049919948524957413520716936768401882269609135223274273968473334265449477488541345779901810883550109967903411753376609836833448020081369440019088089717220779483096003468780155219732731576027959460256007561424944886932705891576752720385423150315496169246512583687522347339112271879925494560737614149226866042984622505847081005729194697360473214603791172471494722893375731520834584128925574573088805284323429614807357558554673568134996768927885620934319238053471350035955593073059824305822704712515512939037525039397188588240478545944387451909602988439111539812857717143907956220971730754969352003509086649708652527824097799614768458903456664497015647177661379376127154137418079243606149172074511838928500880194452510043165696455801005725061051411228032273054946693043306456808512385198772973348313887793597583162088882543117521838431852927390491771167306226891292631927349899994351451572685134542045427616817733813604631989426597260913311408408588087186616890873767992564217081553443579088952357767541941473065065480445472152223816732704267946906128003846993725993846556808892962130051979922047008691548170922281815763482177449652146084280150870862337034698582029384278861549548960888882311200478700423997392251100543265847183642947999177668883488054825704449442884742210702951788901645497019145240114101668957706663098970810586099589089758839508522382157184519554943377303198086991436955813107031789043368563538313996232625260572601383416135906699825065180791095636910734804404836402278817119428911042775490766117833757869203697000046726329520844985612769551616068970246261803539056053372682758348115843997258561788004881574258973412715079078762972861552162235083495154181746890414025112345964469252336000199170546153785991810997256521065249126524157839124828228663932987260372455087310383773354640027587868226739169526601813427270655709406601599741681317827778174834827786666376871795610976949847124472145029343774801305791813050055159109678370052264570089181695185831561031605807952715193300847279484788959107178270740182221421181991752632826225221472940864358787499537305090713633435679845925157754889772103551164879823646022713387221602728737061700341845498784710388825025640783994680459339482747281567356745689750482232104451488192783964932668052810437267025724916884758766551425866837946851440910302914931575406213298548118417610194374925923201410002417598270392271322933658881615873471804190036293237931857708738887640589883779194937823147006844878112061568779189480662592404095995598868932209355532174281437690361826398338465001983004339317246907107190578129218173133669051556031123757471777522763903919544219666016245111257373549444828223996954078362660998497313075698471330894433967079412179647047781478410660017049624399193570201375589233666522912449100814570565395500445575192474987293660935883977784218818025507094278371562349080462524619034473755561159206570574208553937005607470822078453493194243580844753741869671295461433945357155787947932356378822888141176749429516984584382291013688735230635199027252267066700490219431600621445981705208883734966128641737147854672249115017359853402977726521422392764766641805932695537761444048316932553193226052108160634294961100747264524375255864029305157289814625862658341144210655979662671466954472030217359844855213708039372509786663158759058034384287932828672184454306514516749162093672264156071605856208609081488030067081240318117267727448166892718600050494904774754567082861184115844982375949432849774324356250547859565946883442073860378986491490825241853574552278226092271276777515934944257834212151066253125796261017643398782016877853009821395378052174155360596484725481520793906913893655965404319303491291333386713838300508460073306037993180018353868956393238653624043376993171834936361106786805232169463572908993623842402794220635792709680559269432216571299482000566842924800206916337444310499985639017286019318071837724015616434378313918652089448628341078774378175541459392120642974510757470176986902668027724035002500922337040251959554095115897461022680152503558267032828640174021583864338086336281074706005402913138985045201076912632096489598813428270715130623453706747249384317570316058882982208479051148454856092652728489329281725057073730516733076051755825462790921674372210008324454263268526802795827633511015907034196808734127081684125057838306762851333638249807799256520600215452397259811371959172466586561680357074891595218688494672459956134016317910193235236186191341144808921620252717318252406117877946815756281476033653541558888522720490639635571158339693950364210889978854823830500888686353955936560635579321232770326389144320613116139149830785297828210974216766840725352701236219712659279291872133182992887467040890250781171069825348233506167530457164693069642096094327843143641273819889221494639218559029423680698778471974425001060832161853337844836086577756113851834017972014495643466869648145822142683057930668642530160471175838820187924047768336914000180706117044837987630892919746623094408755161296792901296493331952446406541119850158578276378292736544133106657710696340221179616276082756528906468177372897708136739825173095447928279313280085926238424965713057077064741831851879484690430372612042003667598409358697625258297312315681285830130265562070864071837746531595078539324066944519404945839460430813211125416584448081044858421715692137645661685287534462675550803273868537103270043342633491383305961024026914208081767174544552390646229980800988519765667777187989211764933840441415438025689913373095110501647325604510807532249936883300968099402891318246143037257857589030075702676708969761022712592300212784560425484087850461798574208747271231456602465448667581701145599889199307565510445572420191083633739246933950317178309467602221799975659669008401339235461715185759180328917939304629258994687645197007253903748317344814904704111802403251527448056084241143691070230342726538349422514773214114893032224815231079886615046349840882452449316796154239411177961395488488073464872132016521814156077512885519598146270199834557371584662223839981413867563944856303890519587471319585523032715209424052028824645960988050561907938755155464516361861749002732546783940733491509854315418975951528400543833983770647261473295591692264312146494094315480446563129141122991700497011306382138504026462936548500595721353201059940287737561944960544677229328100586284519461308801957618486471312250757827753278206241985879968401106768858057455019772158439826380816775051886882885504620740325541787841640696010498962811231600629649564952465649026542799512162296464085442962788374619509704137735255103091212053243957668483258705992969954468906951737997108140820693848554237112409380956389953541273180407390171750362038977554687908601709909154104590488864396448697821283023947763004924422944045933465189059995921073175688365660957599060238831633712370411857123878762741682646571609783915694122714836828144014301498683623804894273256466113399550327327518383591096940049111295180701674878811562140232848163233848064943742614699626112914260576188783563108374084113463627905706713606959694083532692720679769624555487953811695116958763551194745091473176409277992177619792572197098777775499752036457739015878246496228849788265995161982478256804290434155834087898623139219749786970624112239230525337896142453180682907753445199952595909726726417529289180370178718412161291027211898899518198325008169715703455172960354803491211941550653031200084067718507481028226294337266519322318761053925181680216253077357529758719844797039368783615875530276455091801319042272937064099704308608479700283886329914960062219248718020695237833129400485650944099829138872949535222516453105117036605927655552868358043902352115016946015240800987407375572006523622614899158020031079769853061015930968564531844400626261997439836255699874241273622993646283345285013763304375890905283205263387683714161992994603260773872863511240981416721716634250403751771895221029198711760573450446275773409913320098989019278372570843393716679074541750314023382930815822476135890907861283320984241573319425848038935339419413057106569807266675595396663412067596503521906249753788885668829384428478137530711388017130982237090932312175122542748643926192367259991421881164887061076262624881728946501896217633192285820649451555489837373500532319082193392633149464647434323821737511392247250463357085089939787173790204841891184665149968145710876814982979250356155176586684469082193763622605364126736896329211320246120497517358574085535168568238135429171219487283030220125949932354589611334618608871668260756091163564083718877864930727626449204636923994899619128261208597573359368925554693325130352285365837094554439148920269670979586720258699883709998256866042577787992447505143060980750477012297694825410732077333909075289692261081265934493866679994616795549854849058799003495930944136307748331318772372061736134840431600079489772576168830884053383823133299322375504726768717749048884482774475270336536996332242563307738641355077995116647388975660920539910438413737539702832739184280774259021864589870974219985444185083265714282622594022526689567643091797777043492225050084871257951868735495608354820786872467317446653431897678140080419054981705442530685813584454040211502614330414448460630902111567470902446830002457803174972203050348753732552775328827776435759703738860515025163253963042320714083069375665994939082634905125021919473034087190806858151251156028452133723992756647077658923357014548308879913627973489274055551433245179087337838861179368641170633141986605319521893811392962866821826849649235657578858616094103368943564296147251823020997236762751967840694088585420519267995811913430928665976153737930080888471200367159452212879044644003113389969674845207795231065912185627899376271839741773943743749900769588174188957547971889501457512881529110375858809998517860168074261159426636408708351689646316889425910458792248737509042507601374592769204563262048492559508380328944810778197762216831954495210319745315194115327997253594035254717730518207425121860332250254313406342758947707277184010507391173237307353854805773860474017528569666033921109294976723419083822484153767602287200871219527313408520437654511540551669658764487328347333905405651314678686261757266313511659424871432874769312817615355169376349318930452166521359890914235624873318656423025495955450727858454464952757658495371542999318694899779000692364253976737826741280013940791183384410747357712566164890942444254731551287528100787099432883159344927566537371005812384163750466317974861052243308857552906022682089796155036761116412081194457750530263024843752317758612577597505930601155154393226457948039467721277057562354756091497233803394317122179473772437921567798306001475689004954534773181200727463798647082627096543314761814075479871662878912640191356444234988054402959298159168085977874947688898526245931321245362363464404740330545116764224173364145441250250327525258181527376349574101236766048947893335252537022053535371566667765814068559211040835274653007834046209662313959972123905454220717844324952581659867560951237729309485776169639151652330844223167738637185187241666379175884139293418523506207973446304264938944842232593715978295123926172365078207027470505542273304465917141867806038098990180790563744155942536369532917061834996734063029099504624308518291928189491503014146291693977656335041965778177733493481979432122183582077709503079472223003566371570081478887674932779544351049968447700146953261444504587398371040091112696371371398082654519085847577097984516280673102097604050738872392873051939085198222227573356088101857501785854353252659442329375129994587342681048819379634940393125339697577950320049864806839707559031144498091032789182381618469722691629020975445219369760902232160866523589076595114341611915631480641192842447057937612209675143474034913153694965100324331043362079080227464472346265378932028737270471296696663372854176175637635887017423279368926754213603924652921325860343895537771747868172018501480575589784753881590802363321604435032221535320491956983048073108096659039113686036835384679990727353050598508423362815967155172967965943994432941547452086323785201140065466146277686678306901856076482149694900308699716054472580378722871223733962458306548730317495020271812344222583853553164867029878798242247749337477099655182389845976901436795453393319217148642867412492335477227087443057447203330039284357600063083756625104517974681733460777390742809489646423478176434936659247882759045065754118199580804158894867257235864543085032472252900005134446864083940879340892656924665465663153959259969548505922910417163569610776765763660026273825228697773449164358054029414132836019040267428909841065633318277173065852986032428198577829431004645076829710019499464082998664533969119231960592149698926076770326401684284272203575367626012956849440139217068454507251293923677343179060413093661335369441515586360119155077569151037501764048092221317528310482600317122920678994874887010868725233720668085327335325117852207631435707562954934892771417958430907037227956320038507267538510876277671010381775750314374921179872645806001449267120553598842407845984995829989230454108279077767538907288230468819981900160726500259868991204227983202177650791032391029100331153217218388810007003329266404813314444112669337261953203781662702012220098995747619681581026098110332618439989472922013632247446255657624537912040663954320745869943358678326333026407638679164783670079788100612554768776027146970737318867875956197615115707383563756211113457463400011335469537292368197868540175287203633600210728066802915992543020466757260146012336635365396587558450935479745134972515666323710840683937347068051350958913314235166408148951449396003159481982630660642716643854983454644264657600274693677077499667325731651447356961672774729682188770535935752541160445332394901896959786264306356335765471913555328461854784010777938881885041103213631291692106820638100394890101373575765992541032010875659441747105739613913932759624589592221836456560535250366047381443189227975829293551613440993256731481296228174598313596000755842230639226674070746369256174625411855111058388404703730641573630847145443474512569521270971770281748974718726667048015972720183515782837520334293402836277191210951581181711438908329269318126809445428206923355620649397476301338169706115256481686463328079415164905035185508972132692154767499656945807759066732344505026222912202549276141459145952614493827126466251154875405755280529413998253972213752248412292847817326076959845472322458532782132263681898004216193194614935538034801307485225036688672389385328423511819741291945623237048806467625921125496112357065294148083954581224239424117724981293178023991804351012084933451695931597145496613306579012766353797812799362550868048437846111983576964703919816926167717873990370820970298701881885955458833058210775173944425898118308011739675125778189693283400658796593922175409748446414191031874283129761746959834465973951753689754592880870773126536001303119967492962144210095585863534606038103555003245532656827288346695574315511286857632350723699376274893482736767448867280939993670096925148727621941580314029922884124611723591750403192524116246520908706361551114441685355719085638225659254439785973206163552156351623315022953417132180676387795587511232394976374131660535087220792526949027881205414544439091922145857387281452357690425743729474725375426328461622915554257676999398134526968361313152470760515926511562562985932271806014155740479480242159413727223999223336008387939891434219119388405024594740710503180471950519186875212439630068731617269192166749045835772126795509970194449313092926364052060446126637920830104850002686071725495200912406824266089561995697302419066559761342440085425622807191662368589461921689209130129554021607076138108984900069110908304610370987432432165942011176860665858626617987642473332405860563527294775093629201516061621697305754924703228816448563056781469014723214592240551022213868705042185046221706020222140241765022833142053689361371789550871191281513279113534321869811461160240725627585901296726800324872085964536015409570452764360315128514612499597453236713332583502607576704375725880137536787993699197207496387092824194811655459928088629175262618480163915978013830597477852039346189176786141500571344603631010118795643711534963520915009464181107192390089044488998949534701406296750387577493961807219961703149636080138908821606059729887309098059890186286274772950448672536832493574537541294916506317370257454544824153262520724700341280178445835932545449242160415987336269267929543749491237687783160728334511103993887308802480481329914311259754513940391618320102388827287701504740904578466426580212926173707339214748995930666519673115307961007390560303943517999478314117093405214147365637377561697589423297294611379332236424551482867916864174319882467585524930068958992100089329472589236021496999625996545985901358806233097371072678244011807140719365667596625110781195309982628773873737279740555904605178643774213244568465565352373774497167742356958941572176031205944810400747599684655106138215611743591033899033414852770825407304198172660129907959742802858819180220150472863705878518504718409334875573550952625109189539088818858166426407985958365159146416741189881543930601787766481054847215956057233649146546283624542235825447580923651719693844135132054119277480879583621337849306387323709001765321887434843231629537338454045761688742353200470898185961345648523626398470308857438901944468850072538287662340013239569240704404434737561117285875058320077469789660099641221449601958764634171567395015956236871492877046706875575789931626732331627764214016762444109920326874143307162533966660490660349286269531276338652999851343862881035238992205356151220849201834214994851536457948243095029232896556901310730579080875864857351733293637559698566404863971526386096448235349810510989135541258644460075361840846571243243236628996313036488665017299947452603492941468211673293156206709560465151606797752301612415992402537485473688264082597269897866410275530056312749325236828277318238175707823873933076974065892923752056416115150942035527260454622417972083339624462534258101040584730385562666934142524409268179066643824141253388805966401521586579524588996366235579418818548393553418372567212294514846587350043162681568394213360271561099167216728372345216672146115789869041954748546482079538650429694080770944525415044029437713313675300040446411923360222999025648060010501789648829599111318502874715940917547446929893031747832072067704922676628493427915376156195154219684384920756322666002676037787346235454890440508387128376210620138579832876154118540612586166219875738907773036836140440401082796212507011349671590681911433763431555885524457827726593041634093811376291775307179206624048973692199124064768541933799634389417899287242657211295145101414980407842566122651985248803126910425640777016363256016952808615871041967665113677328554791465452232983454374107156261716806329384115868997879846280162793655791043626846124594709260223225813788146891466054434527779541670466542679614821109036681155285241875844016738082803643088400352386845550470030283946500131387932271502416979689486876857966244096228829362822636123617767665741066944118416767870296243591967169056316350346337227214006926789842862634658290108810970571048250997199779146978843081628707428752854273994678100354536505341666943855415149177678125876055141390063376150845635416208814215493261769948258670214308927993733494892243624707901860213554976269656352349147675136081129058251541182956650624103240071896781211569095651064127433326826771622148102073606913733729319525657332925160049848007638294931432518091186738215468114547359240870527416581230176355121692087812046451512711796717953451479904029403891821004873828281608279478562358292215115714184504720267625523449159723654536947220724472245726723996235765717323311771796994726458261137930784165533581936342961641411531578396408166824199969238138770075784405835448270467664677136697484107715117749115192081139004231957838252791715596822191338293336086899743910736796101723101971457062197041106860251091023525148949420615112324994712268662442752899392509131316032409136400238201329863257589189473196883176699907023906762635326754031440560496180028993953901840262660060688786404807976684483455556140105372833786641708971933048007948129857903219248368265367901430742074636354530723622778396192742158231549370767050631095584885560042483971356908006212133009260896037219283756120237682790496727206198107963396759064281883598536083901678398904383415129462068548842451179675970914007892909536079716082141025345658110485129713467606188380880449191828614292596382918726767113647032089063461023771136996925252580772862345076145785568268697683472050539123149237739357673651277652000582966943386034864929573596670680281221509728438862970744637300104799167214281538245078154329150746636102874729019330892544979979124635143681511052646198350208560140890184629041035727823619454534404432812758828452855267452325106174431608732110137379197541387531237624872181940588047382094482473755299502350026899606286630472673347873234717942492951834881289814872469606488832933593630510310584949832370657388222769191914001480808449874395564365989844168918131701822591830268837352449150938326783530562370556223094775416553651095452084262440065990544359603216024296533817406661762782548053387473737399581553818514967830257501420406235961664465491762880423328568146502780503567565562317324285292832378540446049947929913475309158170965034968665546693448747017094097897150217184968670714434647751923491734918476879282984789430871439212536351340506532900374237294187847466970112118654400649461300421975752784786551245444751047928105067159760900159754462204229155518632853358735074513185341801118141121794284551295354968079704526654966578559876540276418711980104296253067900097817872778895488929736112102923689766634359125299967911256325297447179175302749445985144950799875179626271947422892613280871062647504148435709521029438647297881028406104438465392517970466069125030947743430562571869014339739914697515676317099086126431085933723259981164367122205776540442396303962099546126076110262426061115274875152009788529825816276663760090952539075047509638934504635424313709662186751762025432210655834111612012970407368629689019741809910747706917613030233924038460234573753337152965736436894502276452245430935902218516014411222584377747559229726173068267105423608632881905092585867994391051754441579204683699293554175504255308525576136658544192164641365385585266149258666354983358876088090311473850764020525584830400660626945601413651290941384749174045698568838322365354532129963182821605002191987396626889904193383149777280133529330499183394293559711936282061528930900090004591178378109753135445582369163344965221196695553766557585774285231267093931750086061638947734889559424557183932707933838225798111453685881991925628778916220370593766161486723837588967080779363828561793856427512449475452873449435713700625255989035662454240644034332237830825270348808676437776972289651065255986196243817009449069450130415875003499414315258072352427477251852791254671470932255614155675434727797888015231207373662619057866162119513725025428053535061946857463564312412171811596873805577061112115949754717092581160412484132100505417067727711347491370668774111538927115592919359687365879387553421504997904598547400333471831668658658780639646012881280403725368520940044124504466425545171388500141864362283019302367913172732216049113690159165340639189220171299950134875827918854392713199901822519342400743687903296124633473500185147916667927533766054135302312657390774883578432450948483225528287270254090826462528534043332549827239370979221788818805831658870149355364327685496325551504763572374906253311160794687302825871678140611598295052834273383321342691691549754632557753187532299682377596906152555726873159088641881181947580251891995194674855476837518241211864953717279984489630671444097424019600913061653045167649368893593975434668948253648430025243489504654141522912037132051255148976467010283501579026276394205046585952822347471223487483601527046253626005683102156957697769359535007825353962284430652227088125512729028531031918312773004708131766385895169137263543068147392869467600024309880377496093440570129050239575560072939932351688726080323482221901988363222279217703654148420386948081483993718554257864985769542412361962170276320284401858339441964208847190534102892620667610308900855385342285315907426604615018503749019284485114361273993500196739412523435660825355689756229701807314796538416206955750618472222869753174259966206898844008654600138057998818545309115666161970006692204564313474736498634938847938091457879653383026472021092280861824906976340432997188757751666535265396621461020883948059731867239786260885874579576043444175746031738886052372342206218476571832225732970261876730947871685120449030217465306714878885733823295048413941227936290811194491792193029055596053071391584411551756230702293178939110982219273727051019899846099660541377224341926527930668634498537990163901776720813744056029793100641170973212542842609630057768926464611920688145705332595191649429021599012417328569705839514215044342280100636847018082365732606378530608930431039228501826431507187889607209552688622096921621820677150954589930709051166887510621231250242347835758345074426646995607721196665041553665922600877990856963270627574995828665590265771257792214720872192922719136177584093232931829145903098544491584524558818388927324023925385038945002798128110011480597394012337701669641179745580140385805921040632900230249840895300317552521835932258230334092470749418988904631069203087453170028643838718927611611428659651890849986294619455807232160809703380662932647354588720824426309925098376109762664301378812100005253213540030012564226502221567946948266802345040573480377509035890844608689126636827105536733376532563307432428448504500372025134576211757963023884772179770968305120021637138569216103203139612327277548509875710720043798385237297302695692670596534829289151479304662970042082507982914723236497201640552576096445366089882207266440953566133223337232283081156341351805950254432738038537537042166226271846852908435594455602555129690622681179408103687474182344200501704404755464846972112657200008758685443891547490476127449013911893950103439495198897157309553090706888595898338292091139315887400623447512908815031226581868061183692769214025440925465573417362150380909616588777829494870211375005755674185924782295129094651592906095425595679657883528248019524371557880092272620852033731191463043409825196030806327114017531725133544888521634019527109997146909159764921220394162668151693208024499730055435082713881484962983734952324126310816336138570788509759735704573104043134832259644199350126598213597808977322814597331758872545981805900980027328621906808888510107794260785163910921241703465838874415506015232002161826512595809999932391347880619836131799624174741858417547279895849928697238262009058057782069255020718704949400362427727031535205174349245083116274737373538062737893262792687639855540625872009563646866025057225618684263582981945640828384948403576798409030415602676762187352832258397328926770892093476673661538713540373008801804460392159102942371461810474025127331532016913044512867924463960698264406149220961453293955451748449501975480686861611653416242059540174737222402877180797456962500380590575905758128115812791251717729447898229526580874877920828018797708888086235658587110493967360559210607505247401160216515593158727117689224525961912701781777522934250863954816844754714438049073371972437450184885789036480058053570066273169201298313578997519411175666662057703350107733665357148471878230204768099924702266266271742109064267019487582565911066444785588396672267662804567060369717077242331563470778632025842011616121054525514037949271159035445981066986047124420967980698161594855403858505360885875624585388207673580731854932214735426929878795643885224953070123345412538964127567632383149326711675733850456062954395989966374365660275708168180877150787071630685369236461082996568269870064872169994307109183462119234533975879622818654115012800175119606529518380667242090022317735491813928813007799623750546518216562627097444383339705466953301955432832718597241571563015871171411144046931751779780439027918178028047430573463018292193734603093745749138018717619039933288467605360018446803193512510826171046263636259484229591031455439475287559278616158662567746045397434868467310675469901885394781193929742044520087248814353114433140868954848433352540650920895329939977944839838292555047770386290792042543594467867820668971982030063605000541968581866345711245882885045815638589889725004714133094845849550436929780976883879136248541482709848967197874581483088502892037736859844814037606735201925474985039876379319738634025143527094494158151035693499083500165165092597743255632484059670846386184421229478977610356757047551215796866442645137921749546824409415488297034509994528639706968218765426968595729378512476563663917112453597695627201288354946423208465134554000676981553055631320212401612201850178736728747087513760036611802652931099297897853084775985908792502178152578259462180563945250722695687024167267505800884662988048732768174937236566408102072673136469757693991337058197652888652462382771814146067361505791220092101362160259343626583901688563898691539699732495559911654101807260988733673283932699499184631315229342064696157094005430753584592152752391340703910425581207834445220437918249573165246938754314812058203469584547016311036099849410434103730503895684741389789519650720989997585949524750090700370664735120393641982906128172483347659294347368108859783245585786042657433958137721790881457090986290814196207446826072920786309681444607412597456357029172414826510092961748147168182408313562613280278925896888781427969103033084563379541532495178421421988992700790893032537507012083275090158749624922272369727957132193948690940358917831069624017848993852599457769674279497727415713755667755681625488964433826227658268337852605632587688219205767992859447381134818540307931860424449758372301506982104770880370737906572694860982258649955296309273666033565715226537275329651652241448934864670610894009649288450626087396202445426511978618586248107359596813082619254141671769734148187760335218467822503858412935191510171242102680028988790055582476787218416741692058627995855159918442923858875640143899614647215235912290633345463536298309889774934156202753651077153303561201404396617819379716658962298718157272067690801321962705182501986371102917518196873708842004082307298412992831646054748619392513689266219841555185571773418919434430748110560671706753713374733298757163778696529141386977642852087870476540828755469172448411534842327306611842328157369024265864335056131367076865565354153306286560979850781649369635318076588194244422011614247620150944786048425223240434880468290709395468147043672837031582812620400277797279141546435495215595672720544552917312225739925203663709322576093883013788538791696916030189900174675358288539079313333706970053246762870605815442156416656391044861170729697811509954292292257222984351822462792713940670758499412983245436488434079115512528796467892342126976279247196557628009140861823661460943689538666407351767905086328213807506661100346843578530150261203710516300376163158701475776414029253432698895364916925073910215895067167361204415831212008082378936527167047041116931421797805433850766491241267130481535045863310912797950051536629415223113530207341948259006773412878798418022073801600958630386645319548273465454585303169906983609727484177809366645727586011444419628040853406109349341597993661267336100534689184090634180686660438682734921404276743514686787579802996625650261456894746424923669951418293581952285313933915522559439942494583726969308019231412220065896335363122559659947185231604656114124695359162643259926405741937657697812536813252382664599777174295524587601769428962697372017479648028255482057715617913388353171667948090771312053128736658761532613070833751699689586026648460249423409127445915752753101584647389019844880390903050181902099144910413339020698781472920762976215630368173394620985316720420689096448488569318940543647544565361067852995078550958923809104809115490718522095677384887554295688697304786267646359794679110786535719341425685715047003798743998276364214706721541201711680389207638134457922728501737966122711957132028353303091414857523070740284031909994689336519164574426269510419553754277186375575848846974391048690721725885649857124690600755350907946771666331739003391769648635868150476697815548324722913034304733452900375640490740088694402749890634683006605727692431180317112532737078671509084526754204274957062042332171842959121332883094451817824067963859672267352478492704116083815101698231492925806877146664917704224780994511937709479582426726697372349575585346320727122724848617192972294571791745182772143400382832349216238110949111918424216552750275586284515613100016398317362443551630298450637216859303615521020623141145066598517045701653361085275138371579163781713492354357576047069410022748455675249916378116894156310051942265074182936526495613196876811772985754125949452442981675361207782563599012774011321233626704168951379424637856731656131139881063867472045603943391905165771524011028323705176449670111804812661227129229727956479955304609101935124421991400746580595848874890063442965343317402831156211169036406328614575337323938919541313998935757928602207421905178662034495499341886751847013124796733110063718409248654915972900892848351725728233198615809641899055189984855899834283338398624102596740957746931766822430180210532519188433472518649870516509605642256687695597890537982662854212531411832515993226413407393442018687838353843186131033473712659127710738333290578491190127918133293460994075738112466343372744874916953074046321135841006636714656009063136958441519944564530801384269237747434410676671171116195285769487618029274465367201694667064142689121895737328872187769387086492371487247293553578133857525928205760561332769453414291896990704658234831632789093956846419517770828147469713233945116330581863406690307224472740706827428795963545581705201895057573777647698765766592239645441177307671246376039971953627033390958487149889537338424819019033045114818395253102763221318324908356764111911899180013564126889542755499036216449607405685520402060754974471179806458155101753181365700738428231995619757115064674383452154811735768285163528353378933712109639951580604513840813136290918435819973834730979638325195105132128903691698829285707277702743550453708986296823254597173059163226395979526750859621125364839558896513928631495192873584444278176470639102870669800770709202504586617525892012610457943477444746693124409275400031853981006219370452904342035881699511969452562264137686160656130812501457286750298623472685681812164536388156220083277027312126118018221421838160850830532744908355668308165407898676926829910887417180934426767015389627283648238496359135114318606221697727775342445571770813885387665762025519188080974608041274323868630201467125443631213453160093487238205066519748998976550743333709195431841904413895837364229641979569439616400681354773986950356567702538655168144495288538965085980320400692505141760024936424782835015157437907280690382933888777639597242207033635748890993619237850490703127483994800761468173540902079841084370418462306178506460212156123109162627830758610332571553987127481512484051153279685448882412271669163492670628689067748637124541423433250596525174739003235917833416291313818216584755620674176787243852260276225122256060651643405823049030743266901290604389752513730664496150324128313681895644828446803726019739603143217291123263587171261811551584167169651831474069965469960149095943866504959635232078358528461772037093840895615382356149196940649571867232927788456781404338914699585417273351566493129917445600917858555425400893075949552884689461320740377817302300080997245408426472588948465288266239575388148177463701625539837820073871146900003906734002601506136153018704361302439233759755805182600952748359218295199554035917488744456296045034310021941318466783711448048877883009238947688777583385521948040292113150631656620608426872314506006556319187318920376458258290057584111468570997012087805565962836247041245644827241372467618134358360131215294442205476433041579132711036061532759586433046611861033106983140161488276631835740944151512758014749883087180287687571903989430405937313399696371014488620098482117242019198925401486264920726570001036658500652396679794172130655794151474885731340094568674114685245187315287330884018917242998014188349486339817146675374587905610653474443700749717092153610112038580182229658337238383876077205856520122659664522290989785974793328250033109576678960259937217177244446064128843004715040992701363137572347544978249103390089266935357640864548524597304633063151155249004598635686208184350910704697717140859618357092600020756771467935342697386233791164115021809533560110826101220726592904793930199954710443556817929783527092509381019507201726463797099915932399640008253394718507333743253388851501474668506037131576071912401571005012908564301337349349539110303141938844363281205677293771036651007048994365995976777243053236137135159032229142285337478439933544879198100587595917170311831518288222731129456146988191963462243460589123716957738784913714054342131466320367190828811415825941134659546891715437400668873234291745952889016084893467332187540289090516573217394265858543185605850474656851919398616797239976378219992862634036211321865947500017763967199069130188181759028131298987293479155605343987134035693816826475550097970147978681820592142770961187437313847549198813957827253390560231550974217745740840846246215905679899337638753246989418624041166305008155102831094574085481427121930726057472098188650165796180176545666056570808862831054649810682529439858335552436924704031207602052640420170221665608995768100182442993540390668116749331218085159353870059199637509048217918910528914621565623199812971852913123556853551924478532791321292167594210279947858283915913655894905002267811395764651028100275696877259554542891645238647793309431277994913910603812372498557004784793806533562592706950575518606316879807241522600466702642741776873822479186622137996774465860376145157147848062293175296445765798724468084395813845215044151782655448719546514539605269197523045062279948537710708290384012010079547626270374826092833272176510874543330574568638713284737616606980955757022685973340474363341671036581153838950919885443359264902581679228903474565220111143714047946049885785347801369536936262038945723945285015895156185381175138454692000432001534185214796460033919508756162285297673999235208555444898731505640803944299714757079643696605359702712799368960968040713582068034587743935809422166947542866563274734251865437037388825783683846970882774623695067529234817484902233444710177400357801142949600514188668808991302450265166907323852342023734446830387710305067066402814897007377713501380948893874384149272704114130038602965819710492865861869423578993747480667016213619783321314276325031971085344880799856430117594691885255586595466772267756041874219191916863065450588919918649513508239617451701134482346965161642373105187747075619851459944805749171735787962781354265559146783101857786012145521253514652613950346885235198152761068969404248059726053487844351423894274906663748208621079459488556394693972498923417593622116256327173053312313633921572116423510246098360704289346638500093159040668803408025430295061292801160524729481076954356859424505871307489995536710796277428611188116574943020207402559499805768504281569945811087014914170690556105796744646959704828849508233480311563449954320918000853976009661450240033937751910778097182052765652597035181548706475943182255793381275469575515940299614734218704888304163515648538017498788659186005003679109557233780789943034995821816719564185020603266269365378950604913607340485218850356430635410659428431021398563613187998806929148724216860294129404204514043768010452897512643344579480564652137571173877255161320154204800078065348517806252867232895021414355856707625457888606225678282383817508574350957263658183844519455845215381111449915710628391492724120330765670193088318529419877213103854467566382863044037731808502327434883712743916251624414436576291083594389738561789714232600298365243828708725389635063355933194975797956283810754745112426552198284783970719272936296819514122626356668830131554477365924056174715429565216897468760092309882162904296518593975628228500631544919385606520092308648340864130553500394979820411570936101054090876621015934869004503315796396086056516022796931703924149101381791928447425402988230783451020823542598835117295305434724948421884707082569530071977719699758639857092713761514114474244556883216332463855152715781855329409121287779463665005565877223370913848263182652111552884024720907891481739883770744624523802366956288623148561106888812721278228900171800313787455826576101722926560151307656555014261935308525463073602863236891660449887644936568153071808791545671257254914857333074320764338287792282286235156522188172979536549199602942089397993183583460904331273521046569727686505622228894197767110756690114315502021334754075565372644643515065193473824732944513756730743617149939177952403480653754460882572305695270860927034065966989696640749108415700034064455411849027198139812813563888197996771592515282383666657875601787874736243988339215467672539061789199586218914932349123871245324603400680882344355870645320443656843421823128304717607642940793818853266229674176082430756610010683277936724136586329863898926923527849350540804680160052650743312189103558712214534125801126996485195330672911512331398048469109604305999568305564887771577820855454533817748928952215712200987529305064803992512306117276441899927647761057465130899566913521768299253798901498809686545488696534760209610929439657256873537529870662927339781097469644297274533199653792054528253826418392415755262075205564801900360635225612525788104792875162722082386810527626080197457500289842372861209542646111511062285372297378599411684278509436031026601509976853832120639821908687095215459385248500448594702312957132684119401444509229771460122196746983914702309818515849149349839457111142355943878628233709012279008824803481015041484232246794490281871668363728668097869425510632548330716662561684830273189332876354248137582019179018932528961874551795719832260896325665398773725391020082762415998084013021878747865505429232772855877472023753903089246644178924087880309297937106817330273964478106707971548026786000649713062653728311139061292118284467089607217523544157103161423065074137860140263364417737817677602301283017641652888691053888085255962184454528205462633858105839918543247914063825685672760709813117181330830720990095940970313832296627576392410071973515936478784342208844438597357160752238930048077466890341868211708967146543743945167912529634305608677999006072124027928065742618273167242782272598926789519763124597362741320812717077155667902524583664085380179192692494450133090271034059858170580906233214980598081188430301777437375966607949542783391306450850921057618210202266993114053204070871706591727619854760320403626383039868280790551843695994872656099198234683323879212776605592831011576226507311522985496178907105625983653760410053109172899864909600374629935897175882613685019371947951701139504731089995439218231852890394623928800916550407277538939259201072477955495485932774526310203878020227572396267099370994654202959678046633225344247608548897167645972778524908572573089206169301828301281527372954019002941847488442056893589667987149191644910845292498395053520119729879884772554591005164280427244679829636998056166392090661940131280699968667972560734671090617675441970510449777777400482130070405729597596818903923712823409433388454542745938955938339398202498200514680867505610776992529270010037426766352679490162001915166378255979884375160242100032450861023219704649316750523781872052205223156476469327846203820699995566410997059216632274528325563284973991769477439870901467988912200887691429260411465594456440826872610418096825328988804426965976711236074988664629375856950087252734029642090249814606708570822351427305502818861069289818046104958308776757928810862080686647328168082777314900625372492576523739389701523452893538699463751069449582818899631001099647111425534061056922952107850103245170202131516640811896239597927102237103081730177456981272049060604206051971993179979261001948020374137087407736894779112847245478947066433649217001321486811217668502401668790618611272827028355796784745824619212824183561833690665924896227911371044368233149438189998565327387486325733958370855464561055570836833804079362266514316884758893588737199599652484366516816259357032900641681624442123211368219950303259132013423729222304587350535974255324474249293487356855869963694405517669561064767045244773798683818079738255715377730743496989381416750120392175582172121773869017047629607412870202789761818446224131536091232705421873527166255704298753954072319084914699282062317681696831225804153461057287370179276760456278167534025268672572530100052556486825474552438985828568994924392037958622701944583232970568741469886515385752020828024487560772102571504469402588302539321667817163482778399069842327192530094004078548263263490743672905626595004578882528176501256491631310022750255419330286687611123072348657026920616118122002037021154641182855125370058074036879183194212840613525815128407125243520064354262153655164856253212870715017676125491912452562951751755706517432428683056553129465675471713702280131228106597483695768603136829418898517297142712721878340272592164580293378421315192372188242528852153089012060279577645881176931007325245809967137538617727996818650528551756792204171803071531755235964063084308631154977044972288209066746401285547968767867861856107727263889609125127385069762538352461366779564311496545370346650909551771208050074260761145934012899729523608733779252480415570837541111073645199437620496518347665715701049281831225817128972112168579159210639928476034170271314173248968333999100489782366103904523527307637633192580610606982398602511022981175545750442321112700377948198987936287428209670780805268191042946660806116573303834659745210401487856227160336169643313663227910901218244585588087783652164862912892891205505210392004303814551529371152300683769334399494381091813440227528464786277401241737617663455325289240032903742156323039116267267836337986810385430727018711858981258826266700718372745862883651622623317679244957932476920489023330393161600584479498882569410358626909176677587144107496927134098361984225936549847036132624599362096516490679079013028940248092648974812261672194971720949915756675672729547899485921570612010241829294055342817176554780196950567878773653475527451727944193884394713192573643766510185904382706290814388278743136411329640152212895632729602999764699914743067511861172974771449109082161862851996367857371155526733644767683771953209220408794612250518265580311421153511739177833831111953862035979725861986326730438147091595194285360847130130794862424852141500363379330963305586329879366977771516010403754486932777828310254326230349195859777443907824762557046548500640623196889515128461641700562128976082654900051521865623863369352669807123504703638017288778285574415565888997472144689371925230435558222001952646508058155719313664032918829998206225761979630376669833128716763807772369784531609376672767462410316937783097520125433371828805275608663742796916268767882172964582807039408906047687019828373818679530720022570205998755300834714934107483213111677801773805457673618914247969405562298223815817094261093842387340752532586057194517161474451317351693224817251836085170138996483927653760468525525207381885771544293246678200139627748911701043635906621486900871952417416524824869377371130371095999646485323968521468495126998836949296293075587866135423660459277593154977181220508363034729837975479521832008299149091473105352451400560155281811356746840392716991162703825445321829043649575654979535677668482020566847008333410561379801712820717441328851145250369139346006691542823971566881320737923889132885461016878962924099682095199536605085084681289929651235367821508870263673393320885957493012412940213981797685857825597981706401679159387747133185416595394761660565455308407659158254129100292726811398192803601488554542222652046025543392960118251255507234954507084057809779232646165627344567071145455620052867834409716881397167737044077595277309356468989273867984365731250018238017081285282399590655773596070345810796067439903789777312617422341737048397746932060137226837375644440243995004600611715621177108520149378417026202586381449182645092790857805913807878855007523899238220536049497116335463006422541207315600141781867485388215214750637764260554732139393591877119371861397893240198697184110143173872420589316947039839405004035447801247951837995087680170830307285878740563313766781680938761715091674135666235496989355747612350125575698009286519404797834998212153764686810590514663411999390668418180956353358985242361652125519468416641561429533491101513073514249494064050846726872482114065037520004035120579243291367316435900089936102539459982149401721648518996432135197839840990592249275241027562932023704153139066861545343933908225329704981414969012132958501843766201481122071996021069463055806095112449817273474597052368242496139806988705216230219950824321237208614449148816711548108542274484666819133296683016493894153723052502455054189601913009071248246125041642708901171927310019717519052125265546292851281581008597817771926055392319059096758987295941254933952610164627813570341441716753540579957876227508040604782102027796151391839973443085682859581492309465572785154291710360768993279737586982498005579596960423275865961874610279911387812966305985563911246449397222463866830609923205968441048723485958409164408174030910690664775227555232448101221193953035546619135978066321253519166966696823683005824614403655200840178116410018647518900207187833485334191937058243262074260928229472109001969002975305291370769589179408741171615206089994608747336153651159745808780843120533385542999668001366892439931638402821476922313692262031445567170191192512902639332861312285931173667010204411166932634098170723017549855397515108504742148540735684424446840712456466863951051815523805062733055506646620612471932988989101840295728098552224022267468189484313223224487447810931650433059761905560125734109411156730241838945417662933833908710544041038727510189575920450014774482895134793203616713044050742715733653440958302252072362441016438569736936661163343895064825698504662476616717269585412103851206345508150170664625819001957454194024286904312545289844133547878199443422436732490457025769285394518860811835287507397154970096024350484997650285866650252853113407143053251583024987584599390285752879924983097971380501145098360781027207449944876143822174730842749152200338315934780215927234976264795982730165644840187964881294193235438742605728091118216522559358155171482578939312089922940862278797009823784342040427484572263956675388774307775872022813641971306420878408582142613332820571506933158143870948786604707383677115109482572370993077628913182325632546771616055044185215167588226745789141375056894101662146881858734300301238863712609384929335837512781912097468777994456139069837881535783952734496061332449065968238000614189178385264227995726024504756981455326076322072038599075196403466443616206405345813177985718427309332034326351715692151222520643555799911951348219908334562792414437410971920624207973508136372114857526756665297223652253054106274186716678175017131484744616581336845869540379699152115056206705139666672918249635998342986510675888354944626862429363167983203336777107739237483633938881996986188091421694282814557297010794120117606442615526878543556706627630097102311973920231825720797977250056498259435282961634631905932091744644161097780044589961536074936142372513472027861407549494348577235839387022007671538185726206687609305353218002362436046645703998728540769766784761947748362965979437427299480442647434715446159463723219816314789888809469251813270595112712844103198461393525760650726631772265551417327777105982000815943762228438331028830759163540162434419272901352775026669699662862581998969033936115043635263330207622655928063103102544511128906868626883917006215961226599095422418050821633938998701267588398084992470068353831799216639753840653547744537328575983091196798487514928867730266494790625333293335620513482092750421094883558646998011489253860200044141919981307367580304334595444339558799425989516825726309476288247197095565057884626257283130126155152080098625890754544681329668803484417479454208787830106693004020226893885768106283742784002616436000019224716393274379285654521465743531663704984496703736324235299832626957081327400066060560402067441051933257054935710712619470497177583552245321634293009384235449802388460895731065283619631310007036622005547160117622763270609776618776847790041281988065763032753090752331877649020878027207371831894280296405261053215906097645118411757787628486916634217211810740698482247802111270912012976388801480310262540877232329585800764675034095239952748911604600148126193862549369753619924409271066267611848017782547798818719936914267477489292807250377015409974622943176137419712447401351532173334197017205629362199520457591843129953548259624038664970222827998942301386406953312572948267474442604986796672223337530645439010745243154094194831819562379797646941596641242503750348196966700688107224574758844444326907944475394123787334973056880453263166620266427179681883509553183298777969324029226702252220266247258610842906717763783647273208458290496696422503809666859931048671329956242632195711763996621862508895197918497185484490782151394228224301748665157179142505290438061655799639188095634137571476131883120039760429093377303184751842767709448976178721122609137097929958455865868090968374455304701341210702015455191659127146334266474348895785093041420203693332879342951984055265459561987539461753610513408770565387419941278786891060291453498713674613735640537413214815293224756168943406053865650663700536457950695022547144630125638500943000918731763425280042349090126368756265902761309396081654488879985146172815864157139331253802491961696966700187272591547017889860886544718184303336828774837711357277866329740017179159738727915906023908641048390033479465866604846691353163793734212748235824743902794670172007479128797455527044406679693656710984692136792448738606826680077199257852604781416367942025754605326988785698759479022515625540721999204331174150604364508188973766795854156251930822328148710031110639249777871002778301255165324390538666104248786296995236088969015153791521670495395692797420864916845166995485306602020466751482293558414348908196422452032742688855087432104996655174893596603571435244843728509371382817596206463131508669505288489996092819718856659658656627554784751719153092187426245866556166673108050596929800824090773882326327205902474220479395614593114553699795244129049303595357497471460175994537540718728525571859846017510083234499298871927965155669849913996783782117255704606256386079484699493261618501655821501435156900527735276439690080049543408221561850541777022391977061460713495382154792704996049837895286053618161953479286867926992124928328857306655315340554552440410067656138863164582555564694152702601653218874535006495742823217808267803347437378004810774829096399226904176816785989011712850264075784741379705285090671945257727316820831162881442596830569756908939962757963776774693671779793734788110536946765437296945426013911532241248062840525281972133598895063621376430503789902378067271914049264533229431216880679916782035419877061172990168995490109255446266033443477134368337062739521774947346909262744768977771056248626389661475763855080053663641969166173226527365643877134769248328581462604714090973116211130518253549951463147947900344398298315856286092267917365227971214635289007313304256962654573703919559192449140340942664948654293158449246957135184683699385474866281900342160083045618199475351896870370994012206998234879718019148774316307401623018337156724219719488867078757028577359600815027481894009691054126373944482900022741148854980494105734965045475911493442182753936877503811145834877453884252271780525178250515093183753817506307060429603558235979888362858898782000105997987739208963964233562680408386097258639906386093552666941296327816634383650318101947561096319970705084859514760012879478825824185872284643035527250094737297854191553996128179033572804222015745464534067718185465900631029389121798286340477891272307603120379621867365015064799675562097726881392905377801798048254231006369162327547014956674210073327370218372206455702338754807078587251268395471191259489108860276837845290929441286345573871783066312491215365260948679598978584185959565122650595058512202540882139270468447851727230137407340459073429952319723455217171884544071667952662813488569279235113169882527916852627794105299558116445849754578485761181098960749061742694316072438745967109530517698728580757988883136787214670492959150241033319555153086061872949004599547315252003261752091007482233763410972971415963315641647379782400268395738567712974466072423474105160306442905557098330993290795226707073743642805534350225233671887911485198332649669504218490788783888344327887235418921715071036920460520859696972286239624400562198161805964801174853921478664793155442531996571185345722022802483572583644491174945756868695585203017707258323602109513281427460729535670881583127840091148875954395324459484381082875308366910910180833863685497339443875700997601147408811649343861485032246511860421957598387387536582353795944236148770816469975071815514625417545404965988346283382796881921443043399513015021035539374253592796106884184911962279192066893808744811284571061831584452919753866862291290997619803714306657992681544289902428198135196317740734484879901086785970806016797688007252660831728456860193437294234400649360687795466237706071876560328471525835105330366500017400539795160497523950260588060857983947955948374839873081089004626911624243780775008138763920903867193503645883867031175952419015272453626739230290190181243959615822839030110480377652818437796638085531817455200159204176279116604815888288569570445893367357403442406583435992282331376523899931107773387796761391602717425428880122874864235892830718848822152322139016178363843666997966710362837029998464858013002942427241106310301053204497866607393003371142771206177390074761766042304389818139746416650064256129231866250107686459158693000629257442022168264030673222462846894497912440091109464670433509975545907074014959254101475195958111573768301858209398870784277474067289860033961015328433317539724482500553103337044869988871923908984750285691809074739361113664598613701655538759860013748829158973710566959057321682554252810397706876480932608263847295334796339414944223020902827959980294548380983324667225033499820869921090078039189136872412392528733754704429554905248885081141892064270028061826129106877364604877436911673727554825307886122989942958566054422252979260978971645495652249656527779747088505260623885080594985457789156456461832105096475998858441320983428759416992017487932782781031899287170965573009569223182704061986692496971857654569654759519497271172884936021824639723060844504784572644352163534741346340342990595082078545514186270823855943667660145271402417790602681858153273046674663338135830560755281708071596001948490486121059685633940300264140351412779603933843130593587932895304372149876778641787091217497608118360010767203846711017997894517052636652243195140269265299284141975799562794914779419495871244694070855791229762675998921362623594349371280968072074330659030472457743153614487210172508421192276810060508538364585751290043134445327539143811398677607981234923587853621077871192866817723947509632606418517422023893993499647223455442597253712927243615044691195621609944173055167270220326852699039656924807277015262781276664975213034679837014781838292676376308994259759135039078019303735035488309168751538730816486091957083611230028630347779984338769078303803624690746318804395398665916429581297911616626774891948259220870412031668692843111474698584400648929694124431305360296973123949048305864900556394591036182676401780631960156949896896669017714385966508785466058509714465577728490940292544075340957013941012888725744860049384211128121283839289281795792473107316636362076418153645706298247517274723845375426066501169378515442931509259968406371701269291350513170562024632973567294019589170096813739161596594630637926302159167472996883599182553525125009543387366313300074185537414271066233458376133012695172899820339364456110577704175675845795224325062549114269402707812586150236243445105836870415571072234869194526789610222225874061910253250227192909293719199324666593274469750130396802965588713413432271446035272138159411760221938052227103223744822463870028224042164677452863811871942911564010174412697916824471779402984811952507322493274575186727405901749610861041559577004396208565974992246547870577738759483658150865324689730294539068852918714920745597607058114835479610825071129170628748568850536817313592750871645835664931900699962061442731304148038477881650984671457645360624176918134421034074788197824960005227671626898064822276215682681268888468787908953450368204648367219924294402093258675651226093339823574404297461143996347278258653349036175435496665618282129485932024626947338942497656133467076752000299541730631107266452983089416045737930590699141432652187354104157315847864606423692552316231786231277658327205971204566045933512781448206023637237051627176058932018093241031190669046530148501225966237863742448243421439996292911496726769269409517344597551391748016040290511197132005540624533645350139175379923865881039118600615562882222617243044584296530749536539663452967000049480082743436424120536736443419146754147871443316053651495010114505684784749916428053745975499478995581715099732722201218071182062029163518760837081353383386888156049615880294126020362298996887211745286404356204372782232117629614166270143405478586120725874698937071191798015097093120781302291966347164153345763606584327320998278508543027467729843291113352920539889987253837312182802699571159062582521830335475568886219632277974944205830613701187110587319717448635266722208757456821248098348270152417004246195292227347357036619998956979042520772711851460390002460036812404726496726836318190247725734970693187012435576438754471059832999260270125857614018274872333678352323450696015522727913826426189766018532187361563716541234538922620303085826293257126197449161806225543382986410809401054311807222660856091526004479530632181856775864864503257830954965344178010799370543834200161693157098689078475358915784241371558460136584906372034218952364125856481665032365811012398925107670694243677440796280429650214120279736449828920002376353382460441721877838712694897770965201549368245572209443920657238920354647793062116490325157354761729042215992152027333273851258099401056199956046805911750263211280032246605330037204937527198828796627574099629291297720922872133850949156950131372006415977866399439127061429683934481333634924974930331725731761264400955501274813694936958837423327071058888830572552661868215693613057134520398224394356954607065816737556915497650791581155535032999692893372378517405680013411256559453268794224664989204525894528132579466783027350070233701066390597481477267347158449360850739861954080219118380624960546546907242976030783367245192290681244651031322474398215022570520377584514981046647798838822726285780732565960687082464427596468219893566063790299961779445551414040375679119671063807894970650501711623192941474411466131716325878552728457471757178387678261384500968799336120708928364901815917664443801926190338876006713727824923236357269000140423462647644309034949252542794470386330351157208373707475202817848602188376592305033829519550643080926937895932047626586708164772723780660285005847241473819134103001665441249768803559095962711930732293133845378974575001357475800705178472786893821519430832537732517999007403577283961663954241109685787422498808915459406918364665677312294904352274681782627579077178783224919582053920120302909164245861988131611333342308827509271280434033156795765375283055684560779617360782245865215682577598772928963906524026293262484895493794005140672301301892366680573976801208556283722801424893636663699348662324429277823802521291414095261390411722345450465881533753552822703055856987610047468056726223747732282562948583094715891375602895508808558165498015307164682708878434964738513741794835434761049051578311048849645561987398174989778272463111104149172135750673475784209312023282909354909632005789448643580216593760787032564031297988010900377923019936613996705353378295438062284690277302518480464832339887881538334005990310005243461102130252748819971919300708909814594951295708719296785848965304522286695614131432077351051177708691982917703720462222665582870652508770837320786585965289791207069435984442377548977159798379772377330343071526465959722811894844981068227478602804048624918339493482992544209376679893926286101816156540261037085364077811067123522175534421790791852188328508007937683079990093393504524180703672962024632597548943104724336535475754892469318098505620410842135190686861160800407108352973652946026686394622774512716769377047093910790311326905667909277135145787407355158873691100262200240030941399035671877066508292703072754450797903160879319683733037187598075190809672872513445965478893708467417059341724273949440017433842002214376618061845289630521658103162532392706581687724780595957423971298663041667730901286407337476533525605974634993808430985733781695348338296927623365587225187600121529373957365881453488899480034686662286590503646507184572052914688878786628258015195073851491737136163501729610416381150498262252122920437297164458326457136606901611425203597888463086479060008473581481464251950467960432302781712972030539529639004903047404248530661722756216553683700581666694418058300672506847991718567967593003244822697726959324660544717675006696107444710262571501020311856161971159852046970737700696027793126872334218609491961561196468542749165371246622529950316758407521786519952331971393061210949284416299898118900341420287747938327630855664776307653163313674811192546120749430133803077606358525205337097045679953193833080215139655743242662072690649226575114625809204538715887263400778504375770898820239217714271219357684145810426060702199950838405518718702279618160444578445856129880632093119143802988071056545748739725639405261748630984129893147593857330122548161051430782896934408712842108578682480991444817544742126327734421347030863718084988792847496055920285051270994675342890406139450449701168559901564792002253321826742921763635166687411723121570370967053432633430861240738900495393699588968663115747224503740790908468792478276043312950615233199840606177071594047199188476111242418552913362901442159147090160218893284768130865909016531932314296485002046448760906293179287264486201097424648841842528354966523167250899688655013524742132300469775493099436506956568692816959590848386261907873357039153577183498472847105552925617820047073369912050567030277330314456718924989842513513852969180027755667421196088506153872753439582824185164504964649555899022786295839857561107132413012986326342851972771437205362155499212849905517032464325515252378190240531158983962559086808236455982608707147388573817365777239488169467234997597098631701249700752642964945931278693606225260412991199134768168322344477508363361693766392726186923767661990110605189405202704575714877322003689576847920283725076229013455464249858376698304701613651299640407403793073261073316559786680591836590471104545352243503982433491431120504429719329007329079590664270089811886677938187722828761965317398924871951082994298391055314287155355685078925668577005672216973972035814966958466285656104644625388335727274411451168905548958153840866641046430391860097838411872714481892974710231538985274643010480437497676912152834122237318860270670977191236807650509332417501968856198269907253179694381170057681291874923920097272871649445651129499777928775880776731012773168480775780069285219435408897281441129368386398105910103247184201475797978049632230794996031760158140549185176338059171503888755226577959807941073066606608083905419962677280864292386090400099934971509223143420828083999786032704967869601450203250614032005863410389745366122951644569941287506118818250714834478860266042680851369060960208680207361589571242471778667372395517724624344217711111128205653246590856544694010445838292753797631295576443017399781700788256506526596101407894422683311002275943007107293572059944341861884220982939652679907729974499294088435178698350187641086662895484012387200163271868294863756523222566434448797968975620791508371594458944027318467838111543774152102906632993306799356521323759670924294646549080306266584046056418542378955208608838834725306227146214600546750657044426028995546675537402802476170813279609920707396965895472551010698001462089948381562347210554875493025070765302238339578976386898602939430358524622144460236336662088265378603575755682093905934871341717467311370333080461571575072284292097743363940373745267455467487608024549747424696861086403090104337325430744637763149074121930201166152549159098052265064677687908137535351338144367016197864878219477471206931344481544158179223217756820198644028222753576737317257312646862605147832747717048549452316799264819265111545431376165555227494588165798110912257388885149629139590019561598596356484351571082687158329111183206856384631079474897231973138731607919615980454577257066741478597405883449589189786508275468717321960446062750724717224001191221906153352999493266394341200398858545866754897609683122546695109373227110437928859884506968578586496382665210542864914673767693641572133800068944170073421440232193071116185296483827535691153768990680041705938511100594261474616894506809660802117698193376646887053146811262099547818741231017127400685963972342247614936970245105066276319028684607432581308610421660997010373624738751863984785835270239683875554970987784083484326633468123134872096791733722814321790072628297243155660307269726072678552379777301048420309177929564190488740146406022206891380537525631377581424105189069228110729302655357404262747549994119190917757208124605693473178578082302899252474229623722001993781023610954074357436297391484691777700682894682690732559917924449521065494843132564699576291150836857092490739528909933669178862798000725044111544284483531313423006840907797969324360834031495089051208078708252526602316089133233457749634383741746589057492863282889451751161956869279231467408560258788667958863646588713393902553551147220123257705816858276066560247051145789672768475306372230588352493579395868992881624336483330331334506392640881698920798381405773910272826225480783066341513489033108271810777858257107668511883068562253917151264043725931190898261440027856938835428947411074163030349046395068445949304842023474113944627678176015499099943198665525160950836163087736087588688891268136782310440823888727926641825215501507367604574271098362849212570286024792069335431716700841190162857925937551514721099482806360541113577480354110543582691404821282511728046739954831494634622788453709806493886413129664313684192630374785131428655129782619108935469347560939744459205417854309213753158885307613757049460010795854669379643310009870339815643266916154516793783642162567088760656946465628125060746564065541492890456711221711695804648667259190107153841324955444725672980054776096795041301181582441757904100715144126191598276243623327044331452318912423793734534580822588152621955352594156065564545657922247999657127806565135468225107750095698413409745164855244483798033992049395618497606527841950626108842018301630174430099563127215173381736277415789199826423699464924566654121734839664900797720544600879775153752836564118147506439435981582256319308229668015186308719968476450280230813421675616758872945076876718799482802125339855605522263386423607233949901881950922037765054175552546823417592731393867497893198232294603996683667588503552216142564363480999280083022370517614050879178830580997501929085409875400902268717999377038264977228865535918220232094922521991872473790904461073803576460064464223988086543143251306481665379483410465211802346767620523743064333850036653036185118051440370041282693890393036091258058666807548928259284665199938862565936628953428619477005472424109818085874931804233976736547570257014456722648790940932770393575937241739308053372518269952249552572555869090230823188765242910088437444888917213992237854785171228946723577447524825066758365184475540644006026228716616524807887752273539651136383289844959013967391378817469012775432348630224138945248376855260375805978855858466131374261502112544917788511202244144878845441989378000324264601393599303955301227760426067883655664616784415253539520424068506370967882053371289481811772034344723805048687905481374215310543425354721547723316791212390685759959479383168665495817177729718828475327973884345292307404526178591713978467058943463460511910477258817851410792428526023921634976068218165336562360292450589552230606947194904021113064468385643289575602243655494221839782226352693689917205326868300992942538344680455902789843917511241125400092291632483755846267920201928072139535292232495752320732131398568682992977580968536204572221087383732234911928551740665187364577613100520993489470268585306272723256518436307480307569122073591930137344178926233391973161759669221291865769525207366530523084851991473471074977185889589088462313124307820522683065588857975458327888885310934401370109753984595327904435206669181763698662610407699190964001824411655435583395272411135661352487058568110961244763513585403042440017668637557224670467102813262944963206920748663040809510659243308560488773330541098620245467297533130280725695259916464879844073241981970975606910722681305639446013648900543925356505292732307634111849141496422981611412439304494171942384507659731779423651634685860583932444984150315071771793211709854203874168932731784422527364299697217882532784411798956457611829569153620293513930148235676142117144893782416939797527109965031063769493045060542557708851257030170368457556109999944418658409622585969889788995537622533847013168364352382382321811851918326464898329932283981083911096923842749613055184961054284133998256292156900300798026508163253834331639758273347152640538442149812239134264770901273488962015575495838545867035523437400213681502542375933538440416121492647860080849567198655899084018370688932994775326104240424510451957460990333106642028413194989813543026054375176175278322960167278013404349958284550847871034947464710626713256367887887925832869364160788841819266092891168506904355389088433815862518994713870302085456570193784209932137063555402997105412583661338764337793674257426857224307535430120744900708151842817179642666645774995614860050186306359281598193417299052221596568827299782443341084273387726911633429839005539125747154571748273408942571245496616450480377504235366601024219640609402143282622129301326111527758326147182686222214204412671257102011306529936066742055100562625507405441899685285317347437478296415162780839466009916609018148401344304168264098099497767226158151855850218025038116990474139266815989004323714242083655460293824815974256601519042416185668268190424353585533699938559992001234118114981939531322016660968036831827972419459088210444155884095513090091195422115894201255623317968342511860779541168260963555058097633090754262708173523334950998127879994060139413684926351431563662211187606986927622280893900549748131464537553923445322790802021123141420255440414439179718462384699290961086358026726988496727650252280049588600480498112606279200779748508881298437078444532122854946916135827759489296632522550474498899585359571568158085627301951816929722675483675864925363175410475445397429948973745829237508285536629097752097508976669421819634536457897084408974111644431069117253312015340911687231226430566263520921870109281798814833852153905694163964902971788907303601992001930781162533929379995438335800435411604453122826383917554797866084651045131674557191731071185781015771868812209500719334553082783232802750162901033075254444397457345555446541950665678138680550721732561295889754980782584452941134937405601856711913186187941968669223829518939186168618618241377883643998450537289795940852319910493082940732855179552716294603969783594380252640584930384312975676065418605953161223524316287559836652026963623638042194179991946039559259040293345291197293509483954986981568684774095240314235036537813698270608786819187145750003912548569801175368535134209581729726486254611465791091353035647239817919731338981668140820123005081600297875609002389900518085574900554431691217976386511868253830370832153380057205480666933742615827330802631910522810389050538778080056553549042391762895268957057928023580729707384678756593063726753596593167562465838589101992407792418145073867759833412981710780406898772827522823000935834082366608171773262213625326745286833482250328928762245632253776408010362130291538594407030968603345217823662896485620503636300798037055716632317949303285535110718916929049351852458019509689456088350786455178644634815067282273889072695938372061169452625149309223588805567940746897646677239560318904481454148864174690423871445494995082597018453514634919671870781433069842657804904626205753138276980930736178262354140467389908614782125928944927055646730776513520136288714082372043947079522609337486866175270543152784927022447638091328860219447541783654922173033043427307018602540537201020508354556163251989435027955426508462450668244502272151406197971096972155061509864549550774154273840953161568234770805199134633295237100092659761144616670237206630499786516544815542030144867013384662089117933971772048827324930737305668700731369337990418115971145417537667058140693746348765078295516778987771113128035318162283888201217646694059801780332655512095206654512754063646639388541487175539922130544236709610326397473560762380442908410051093179795596520237505120954484683583517801193493330155608790354444521669134773871093294073882382036606150325702359351543104113265904612079270305753838961195483650399343525266996394357664216948915997488717076664230964417249351056743926369599742644876064438397767548161978617849671947406194147572741635192105033949053812931012525480126890787724079583986053619364050215503526047136179431177491945795078975180154858273124478113577852189094742761800016186422875958888095569259480772159574968190002574983788665223450288205124597587967251180888025071326116199695552678795770167979800590843504521476186064738608125579636734227228260345194962730360137316618872828150553962045114999410252230362291345466890184182343860678490423415104466550423225413806112703644976899087435442134141309429588533927626611127532299659028326407698076627491665064599447887384464305739976741478097031506327432335271868891389176045223153944807396826754532004205131072236642011278390634640811544106873762403586318661927215224647566650415631272825977715330227167135340263225881142135452297103214554417720452397191186891620960170226158493089877708349344449901542608215235035090639131318651232839159807660610402465838643004411638956582868605570421417870979235637886313270516819310383843454133691495011607065057545763476594853697349905496281854244313932756578408509122717198837344155321557510022119167424720010891404622411450712871841315766999018626762833406732806609701090472308671279282889969917240916538850554155661132003821741586675219418346893298161218878045002403213009728542369816043900565887574602358845176252986782830044776596228846649939894348633202210116157827183371859547622063409552595300039265369847521910629501583260218557195232539644560584021503733320202625260058714109985198343279843037204695912330113819100070669683146385062739138887099432213553443963935559033401465817625944627701059682011409894060070388269742720927806895516381645876303414021186623675852637112647844577671774548620476948306594932771354544204688503025180680606053472508517141943164586416631903706668094798477716865067348896379687681472896475214367726541704336398519542528212149223952325014095502768826643568695271349834156277918203404852380025618481130534552931080112166981868660752252161117083623660201068741341481791389146877265298570499988680998305534751575486778001989363841028410206468290373685366650138256563201394059837132801894003903590012808597806086269523204845791409990267818950596260736898430502255193739418302366733483568192590792555566027635876459513984834798285586812538595153680313346330390413818907919680488639809497771680643782933922275647513968816747262505378241796821252705502820772155935814162615844312684025918850729435299548536745165617769342573668598947550766162561549723985297093613892336869655617313783672065435765121280365664066240367757350527326579947160150557838418264954637636876280457589404086738536683173311298503969212203161914394162821688466284275617659529499701761654409424736142352702906861127953975318976893612793189059943155111321914050709732208899042258129983776708808991575605992780903846625529028767776340201164742555566470298995405205314811392535384383501571842256538325189129913512937209588676537924620812112453416886456579621677587476815375062328689435199201674603656975016128700970129602495637604144313227876027801383127779960848267467461016967198196234030800497409306361487191057786539553633033042089791585392814956650543788221582131360402896554904993610336489208632001056842578766708138888665235401020655210597724481404804055535149710940949300531908263472974427418666740675793422239381682661784620264475024617143587918375765023800268425997784758404668217816670717692234459587535664226766205424438163247793816305132593724714327882230665263638321166832134632367929640389468854327515827893093881836291886585176888874801669878364023215629056306132761796591657971171062257965408339071058095498964816411738931179538680977348695299854933860137202646992217254689466006418368212971065463097637104588253759824427225200386660337768451913447601320123137213588044788853456576146552588812474653821231580787440350582557663450045209460047625114459564098132575097614532111848029588396225930474026614601973278203268236188212785539581999883494397252926806176608407186365820025979538243194597536707230656830028152008164046174850428461280745356926166389790011643178514951520577683934234208400481353639162648858512018449937503649336853369867545509929177276674647194560573035435844399945834151292941983739510977813246955381890457553857984710882070987998993663898592832082786807157646206782543922323133129757403241362477413131150247078825190413522212970085084857681101394925400216161811429224898982562411276220733429223431508547771211107145729352604358286055412315422383075799536032871802327557750073924450934818503926052202160190312860420537730359197658141500358005909042818450357649781929371794828672003538793498559695186506666006047064037442327614732524578347436496939945858117835448907109951357174355926961833542189308308660866373957027409949989885863551957594396870905715498907010606279902688887535888499417490667763101472799387488724901718769736224568127911013298339546105763786404287489354002078481872698240202286634636642884768499191884929440159811950696611253243345376592816231483813506556826268885580453864080142790425260735310279759527378108933726747465617184129317001597779603058803637612499165268999058889188792954569383397418520974887790448690560305194313434486583784072453487303421770331432352699962767169276422286457687003888933159675195338004446004019506065256923858468543923462736185261606682871656554649200219626604694561711864452102282234263621619807452910334797722887713747626807738055074817914783984119113984597778781726373222700044742772113540622514355561382235796695044559576060724183693161113131599678029749399443796656009896151278430722109820955549898437254971886345097329690651136213471909124358893979799831488802129367408957329500153674763755168200880032498079599144299189314842137554751916895466667462774713544525973765658359067045890046273757190448071266819144330096548867285347101056650844323754867031314391322075764654983583134804842134553050690611021949395976493150366008804866572022011462740831167888366081597863443288153799801801089498825382072155251821597345924460541843312462992618571030229378244901374149926616969102892843157377357836436017958007491221213285559938673742463267285109756023798830353348427224553552158099608163138096443932821465906473245775271866247905496308401137539183475005425182464090699887663462863512900419043495379513297132889775768288906978424434898062390824165485839737017029614957880446079558909309946485222746203171364505668754653643029119517327044728375018821144852671676491697663670587960272077902444228237843360105159723647335632501752138510754831082969096966241634849478853660513795238271402860341569679484828367599123246133674555069739998472063377849942908463513568924209855803843880053571241420361387589014975063313768957420238168631390304745921952626783963554564074087528545023295846684086021526903155223135918348527890342189239528969711491851978362889885970227177081794441690846942595079298064696639289040696743254356612286777665310173383211434614673258461884582394187612754681961977504521775757265024761037967971989186934637840198519010601834028808864905896737573581168527085246278000360574018050912989748951033576578918942368897526680471904430703841944535499909223857640687306460696430537072935622106849972930453324669830754145567063499088547766693532400575199895958930327461827655462010892587365987063694404684822958657709911998778354744677439430984819538908991583849431117341725421690668294594358029316055248355283068058452000716230339017348551860348593588543827808364908133245644877643932258220572724711275554399754464326005497499689005475972736568204283927252539725127424288417851661033867215165925880718758200767840433439432062705981612416898628927116395172926029555105945429711000487442995906597733025271712180204710443048840760174980483219848485130286883523381425639843103746563575306361614379990709493961225409152380995932054384716942768320321500121148240501159581678709466522132852202434821578073397296353991918667571796173139761427018547481237837373268076577481272393240823352201069793070660725082967487359565136395027092491512532597396765075035746329007749333471998268188970534968779560121748650156751300902610832122896069137247628641347985210225456811705673615120460838190817056994397933930653766716212372929575736900262175444781283159601850781603898371829490716384401093546051693026426497321211515774350692428825412879736643291292663182334307874177754304846618195938221707504159319708548673241858067072660923426059901026299557656619291675786501277337687947199991189991900647038188224349989462868957267568888649415822049802511508337432277940231168514476697763422491041733078613570929196234511296176988278241795059844384470729446886954162624579932318353482407130586047318248603962330542880247030519349392656404995744570302951089677590150714086682977893354765235878600088745095078007248761313827101901240702265907822575441782794344998030677310856362109885072166845470430114343993105891323052068276491603099611818960084459247778423629506563950329407959631457729693747196591834986751245206585967975226239436462769104972173233106585923893666518661594966268620272877228157857008224358717483856524697302843361765978157025904434723094415300890027000456854179689115200399106436626856095603985752358329788605163756894030592551547414143414126934832814730682004962475444889429962384982317029780996322531905197418469213109700276048107808939460986101629321375940041118811920692972973347852532907818515439158820260966742494057884358886134694540807542672321208591432906685895321378159110157944987107319160121368948247083944623018912129641496577752637232712187605989819155474420179666586936842363119524073986578022829589362613238856004110287782766694286989969989019736344136244182344017082628137481435516632488415787082523518537723819257583187080223481762313390821110360507118835997432486430163368966677065329090879510654637634629744614970513070473968917407920454711138092426100364262820661038100461449960801213474798012941963489005826353745996371189613134278862214773812776213604147172771519073543016587767026772856226049158194807005993124898564479595821918644298164676740096547104890905329869337525825768770140200063901313839076344546130483651684360318436137333901857615273166234495550169375669306604536864547925745155060543285991444127035983277293089543801381999693559664871291568855673012974447855665171671625430973320152378013373042058023240898982657543870803211966375437085675940106297963841947588997613385304004947078571445403157726545289797858472050596524639457946882276969185724455290649475613299814864884919928984749678867225204922759972268330446728008067038608452655753570758212083901296211179451558587055830559433497372408173026724206982229248870828079502527309538076437757202757094291759136840091718930806194845174242245051136976486680044303415337032784153864218710011674564606554038534210790199803573675265563974845052870380481984739760481341473478112227281452918824089516956762638695031067128954812440003918372330821757343256261769418651025125127885791816695593273806453490355139190012077406154644651873961842371028935252044324358093603761725447394684341962257270760394422614239923840428055085599487870069231071614881968370474874137357580735672408895626876101185250318476638590444661768732547880647611244695173093211095979975621401618276566300328566439784659755365865719196330966643420545803433662111690715453454890655310383476561367953720693944171380577618139905809715121201674469793607163351886831563391562325751795304542381698594666465933030218200722352697361442547763080399524611307079964154569000661031118561144894847625012659962678730620034567447119805324687028583462764415096134450976424392857821147140636258481672682468971409518157537878221312810974483716629473614283468015140563190686073569414581582267823395541097807775418184865422526260794395622117636689558642586573355666184674463561439711802042497114251371925724718735951483127695253748796008036758933771871002924359647736447170075365751664389187607799716377285655561341810042674562277317090643728205519972868446434939210153086294726184971580035556213540514330571605559120131754845215184694647404582986673652550737896363059034591926323092430679596544176688634183587959911814899012292957098184026661431866323890005700324955325556363091800141872197566095442859524070374694002012636591729038079044247915125900837780260197679179070817080572016333768750199507086355655325569828046634458229726782229533170822889754081868881748802460520826972117091774137395764981065609670026791269448689929839662519392893569040426392561758381264374873861474813776906947697373950056793233197235006349802415225814021695141444815098506041488621696757231399992447195168809344686930724608733863972223637077185713675330245326653810446325655086982963560269073456683305450592377219846615721630571168636706121996497258838336111466469909108342301981163524793340774739418771239563519256529236966789539766222424310443320040969245302685954220014784414172838196978258430413188751471671722511908331670538415144411399394061743492344752635250488942221588451354478472510565635784788482214680548480546899019542196853310754473015133813494629364127263771517860311412110057207025240357333515015246425180755881057776659202530610642843875641669452640270503379067145806949196970961513480347857082160710327624459575730683165733790479918518593538718049756199577695218572737800292292261900984065371160625538414292233331632610594732679084360100120797794972192868642670954106935791379171190256290385552211192067800027107480650824347202340480772839041420208606847662315820091239456932043619001843472145205881108268132305938608789409320982226747573224157317965755186512812062081571825630366472958808612359268457007088236183371010313614491163482678280022321705840968900342088095263850723118131628196145910499356125638785113791255300113858495907266925441168958392671396200588074784284820622231995062250038001028824791984359045667653367587510659326112382489713972064660494084524895805916367026589850296920063254792418190302170413845372822592393053154041187616393878582273703695957040972376940978836471868432224805863413203709021386820081735976514663771465355270431905446885186804406338499935994225923206536931757483959793739970044430590630283787439083599504867076082800662401963579568856113363461519726925297776750255387293157084829482115832983856267418293873811574668751220932431506595022640644140947667490899328859975798183118330466307636867084005456883307897503709492708042987078463763304212325189488719494553977369721262586765264649109231826176187390105215860696044805510069899328806459454635725874952657572194636305370523796503962962158445950066143113855404581407857883024234260446128885964860964419038657520768533632253189175614499213912404766963185166963959778563454985157122694588534148295492631688686605815315737139473906163607251086150975173793294341045630526489151775124754131667852735692927954278918727195465951985678731724993001087450985570191724632170806637901921198373399676866487236195742193490757910753075030421397420379294633608586951684799509956601828868494214352698672572249562641457949322967688968611995799961564759265510877240171230140268015380058457407929452745390885755100823202272692776773543017337238005798769725036596610536715076770468845001694615484241952872521917248779721027737367020778687984384496600396025494758192493340842914810798436829448157244107908277590581568361161687546155389177135220892004967589466852482496110248018093639079333984007044041132844737642422033842972216841256775300611494098971234829006546551130163134906169166706458392077903468800018931111347603703690040275091628171360388213792072759117174664010531367015534964178385006576412258491644675527008354293984759620453036374259071669631616427252919099591901473881952122131548186945733397384355432774752101408669780062183617169203215332143862263738370020130559096190220490024245243885228026938286956424948005293487458352372850802505702232407917951024592877990983169517338137787215038471023793098825844744053954376272006837873781704872605436798528232751896451041589107506792307025910508868944349312048022434237227093926675235096794286587545434882130078898595076287791395585667931792841528744466229218381384871648690892108394599052864086811645497563484403458067175880705383731518723641586722223204551479935960825722589893700285570274825360940962373937141718655888727842854448332421610144329979351886287773441710685038799200757886265362887724153613614314967985144542025786965621973141124300958135769695850100697415540365829595338748009730505055986269931056550232760623223970167175712250080528393388942439418236889073893785867645614431113721967191208450930298137484726713640324028375980221219257543747783274253676709301234929035645824461219482330562774394832401427948369898204976192960972379302197317571172965026646431242459739495549781557288809332748434363232424687561471183735758775352218240274231516991452699518782896718466677677024047773051579503732146906018821285555463124207235731722059798417039322986388327068762623205552773666740387096261711370307580711967764846805859829114759991221447210282930095524608764757454695134559129846173548194981667803848370736897789685580502943125896940517867654178768405037938534922136225009555977960402184203677956990410794875640230235723568427569787000128840461832292236767595184053341454096833684354090486795601544731684393301022107491857022311505500785434097420503444366138128305894625358151326247361538787329823506131998762317840868351649587327126828015127122638642027479385967753256620090794155546248286570293120023677949877431274889802659071306165577563306260988700086723262061909362437760494463485167549308496431062626866540831695564504531591888091231727271122934469159168823428774671598037692199541187136367776887312931193908249570697690248306105250788379702243526604237082821333601246985582981196187950414669827743696105161911296055809904419233779106002115341307178028287634736297064252788437787794595216683897503425895206708871879656593532268066152252082653064733642957180526641010286528325412719707026740088980665015756298586356243441257881357461065107827251968294270132076228958584626149514576313711790162583997271145303482986540422117370961440605294997931863143451250479957291599930756571325566399219906400583466678097536940968869726926916615433640147175991702512118397601301416531012280854691945210320677830959842731100156408027497992777675649447486561723494595800650586329968006302762294648137715563481835505757352823032358812621099370462581399398389362980179837029823948981792497307287934815277328226938392995867355999030672671088161774728985161181172443356300824249838721316912784324345538721289139412757179582466416713473825030614558234632583479205728075912679821690068562752480850491461610253466711576604450019071380530982657758182381090574246920690746526670602695524863535992010669289932534707167509381162563451044110773667250099519793070934965891019944893186275861320472579624560984755179017463334382335681898721195680529105656258603485871267813628224676608379690585729734871931326361238606139740245128061556095966294875533045001042423129292926403958847330745736838214596015312298265639664731693177738996191779086208037812023548690180665261777105415090588410124100700830193882967597115219453127804862021236146023036241748752064227748025933161596062845842345410800726268614442201611666456414507865337389597811496706187796707475635027053146706187403668561997999059015241691592826339421347668330678567646489761568580346458307676350490687136129962210517539918403528042731511954071228876823827623158735934634910161765529516158054700982701637823990889446919089178739646874157247038065329835526937397393976435034263522994969034096545582217486709093152773620011467968187240235881697582076858403929850557963379315403373437206161534600202158185077041539799151803377025252780840620271546055388643124545815479357685549582210726474327856725871865476476547834621614295549370888212189258039436088523767417343828808913647995846904308668490623651771221193015184651820945011523224205722460152693089961981162991370063348810458632922100809105023134013348527589416797159312560016362951960630414513961143054418359043413498502083372815578586985735381661715982510558058586734441863021569318271045664211835272252963501741191118410014766493663060095803819157393080579201225250898260430606625525501356387175980237645223359089991721860713246313895719318626561412756057284398258348883215016942050221909693430830284685247356358106129458156933980435701418975313767926555105252257120937219444587184988886074594494167440971106050385391568457664061581736788068657920380540377879222973040746763123854578066410695314556831433934229851364835866474149529058425700848888038879972615273921658985678029224450967710908258396247281776281865531800917525726389574024671718202146942721330693586211671088175088563285892000184149290472889421574277625328700983058296597380044070346507080935739615133866396034567124799458934447997954240732029152702161482568619356987775368535065272277424524295663448588487861946987728062258986868359116372705868670501311683099168926266922127452911277017796136161347335269950445223603611509750953122651890956976853055695031004524404101193590686753879085912556949938790757878701620039266473705215477759848790393591500955429601805744079410146619943346603081460699543541251171850000581599961146725628212171887971930098844332930504853567001751049299191750732759077569381930692391742369330135736445801822891952317284033818805278923584350673802844966087973635118644991953834207488550946663821666851498892942231923077376526561723198160640542544510964150490509823448096316403112107935749939966882694199296577701124919464189263776920032517848416739802820486609553210467183458222067766402614821561459096787074409337578696658606615818319759659423465240371473153681154616084374697730918820032940776207280868065122368467475593055862381296457998268576504106263126007327975854947412030342705659128536488545149067410004786362934581705050224047655185076641815819752696234578824123599378384648926639888214266392000986297070957887433609258104605337663462934507686237144667041429503004921700421739815124980950633785617855373716692729425954388954815224253215508424684859655197190353101724514808847718975437218807121540943336797003710559052658284232530127259422338627677651328964582175587412525788700321553112889942969588323104746819478661112054112098333010470448157185244662832901321311225547254065771781972814273760697567526868420849973831070744936100616911511899415493833761528169624781439254997109518856476531242544749849933769931456571829774953884047259681771971983262254125455359157746332398345967493812304736297655795658315206722551114721705922387589550328098266635034186243983704370028651192854958576106020402080301950391872060261387276214016152438749309064612418881294341799445666335161924014122240665337751778026429395372107410597634108403589481348347370297714191363574085993855195461842984621732480572488042169849422747168629342975755225932036830139881098751414662870646219953057581487651043735539736934696454185113290576497889413899404980088276090975982009365828208830336994777060723303669721536647360263476494735205588054475455880430427799158996750596093038710349755882870689792642388264264011981663884115924910545865582569965155542839307598401150764074539172440844521833556963727585917804462310434046940521614541724388939235168356489673159658601908987326797133181443897354924569335138865338435783469238533494055598335520939175388068560788542732835439653662854275551710236791974121188384651015524559900142368224159491125724345418442376861004812403359360378948871099508509196476668046309492510099750601724938336977253572301287431285077187966017187516940103354440607245413489727337877260240884397936156229156987364872969794725498644140902903887284140936129329211722367893240634897667188168843020833852613932443744179785560032674861319436476237723213277383377141069999102660071772229344071803801039699798973809934062649334719970589771714481312001477913132307863125308241137873222807027334751838612245223293249137322261093551480229899827234539389852051306575291795776595785326478603554285813831381194837978111734194678854361876237605381646285798654958407706721980901147880609760162897905404031621197932491020374959947695677556798692334069490160065703300379314635834797923863548647327405603989128182312488470788331218992871942589400735396949456574304938092560526693209831550720608200451636381406307807401090692641198600436090778881753069157992313973407949065659080763929333602404558175631438591549805473079179239938282630396946030744301135122534309742189445411040637044587913305061877300303236668307621838674654335281872620455841798404772910432589070625482619265127502645475724165486490808381246597985482505979440129892936232144687690690837747704419133778115617351470992637791901056102008155533498558247494434106264963101992392895141628053920305455478968989168930366020360296816074310460408373842553729203665420020558438695140674784493427928088798735279202023476429067836187103952803701855183907454818272987692207237927670674353714989111533192052665131207931528159679615083014672596757126114187292143119991228063650022236012920601572193014742139348538159386172655746064149687454912339391436371005946519597136040079117929486157483904007196010605395995053177731695478548680867038813617061682185914950235723827556106606078180696888728684716453463094854077954624532057046078794915667652576132498892147637323973858407099496299128574912305256244259662116670508582597597761934115844078093566799235767754126769981750066537715664273151051117299790739850589149476132670841808591516970362205764021163084734361042761354651321222913539418578740989120043323113460189488700439007912093545874387026317669060891351353568211026001900041758941883054390698827894176413037724107865119884699014933652217581327627324457987382019574628715397098589530954287126742608194103045780331698099363791414350784308909613508511381663913022152392759668351466706796967044347963123738188075304801771024521563309342022764090672828921785118797048162990249004324414621705071232442334086914115512222887171417784424039270075451059320893134090829875675924609793390453019032527115014128262020278583286221483783145155088110723815615940247794705876640540220777145651465927692386055325002149105072932983877439716499231725218284135092483610564119658847375478795255920791010753086703222494011180125826445466470424130014759493931016459768759926773370285851188692505556737435880101518119713476559232076809350185654187755450332613439769969838591406184162872589982347582193012400735879392586418534958299930265528924778350146431445306659957613615970291574062909454884247155847369502102966004858341541471250200162139505640651251335021127877677108841543587622317035237500343011825354096482322407935096132857706695041087897815398719397872146621483352801747111229752093742186452466346193825288747435304529730741388414201712172909121142406925599197371498632284023437482550219179632145074145708975000479548631309473392180993468861457501967343813143491447184659287641214034238131352697534874242947196563977901550278213279690547352352193754499253234814851246640735405101877984724057648600788214223894839102712727484212549433361729203533665863335498659145021646362304193946448761870788849342175266013000164073619360162600540705823957215953315768681947117728989168144178796687367663156651231501207613689292121246284819872143960615605308758308110833569142171031907323967539457854791158602558184072058206006215156703269401018841968101944608880936973550567458042382400836573332593928671838559943725057625524303204708170763848265507793777148089405507560672479056024637937673409045721320598232410923271241348571366988251282971682561015206911631645303027393199231225051841627181516627077034076108015987378994481772514424910985351304737927392279510877554142595011461699944372526396116856641685254452207503071444330793997123580182270536027744314969165591791300568405205856917947447066884677742434676558769901076964608342278118953236947915809691505648673644247116920437584763541496094271472632242090393807216437826355779455414228638076755296823217841465967528740848906363301917725369895778456510498382830788647056024146870613758557264367980851860644449203220158052323953756216326460405255029650064250850089792106152673473464287315015014154306750960349881861275680321094801091722820572006321685414390251957170122157917382421110806592874047693100557326371117656015687890948336560543712937025069222568407004648599164752689402289076669018835695569346830230805037283117530022390424394307802191329588776150341705840529975937142151277770639014045621350032845952077198213833257901737636391333188596707898300426143055858282324722059576430338252004507488865658704688616135748925406513625900375532675847744411343675337499026907452349747516979940554446092801326079070425289702795416895714110398896466778101395361265390529827647594883126502771123453989334630041793831789164577354518344031129226617821490754508759024708227080237711119441509511242111734643988839849006762258585997019170754531603061976657081593242854621799753166365278222359324241590972217939707132473507748839213031985635865797435117978682815600872143510318122759852118275895208600160059874143401056341193088227313830014580452143273560263057409923604988063712379160539816590913698073514465418423382710894169806255359548659241980995153467386144159690107761676859472223402258402195937053785871536340415269415405993251922395738618986137991661455969668832367363229420053974616012787216584615457452604828717672865157226604475374708751789800969691782927168934406375944429724832257295802380642812487995611032131660497023310544259513276195173085124857514043365625528502459023412904650280763343697575419336691688100142470977047673312468095880196481172735417499357214683131031717567149959545638696271861711372960960751559024741103477768615304793705417736724876940977641814856162916734203907584083204360933108090046138869442036673618611604042629553756535284572083173105004596087590122751252564185022014006373842227837083102715414665851432698651579872626372448184655354412692906658539945072720422341322915869968437965782211564913203136995769006467266898278421752257366680610050278662769419353690325792294723468601762370446142251037540532961576797137582269907307343263904310763655657377687054102841772191769239571234847881094067858428853309375545848139044212041463218186065488239219196841489236275248156163044476810518373038494189196216124019210115295308613170822951314855333108986647110287270146704457666329552642583919977531913761424423803686288342379623823819810640526890279030322955148012407057817855643842676237905617230150009761814113420107192253722263017030324262117413457753810440124759057534803781198302330718691945413122708618717102973169809997137882239551674396349454609343533937581458718774715794594030593031132646485089658209288297850236517264535898326010421590868964745794788178900463133838347187314527506356748037622688968731312440536372785984069331157082927929187705300281583043463955884931920799760766183047403415487265141250403732165374488831302599124989367201935179141076577201323691922412622493965410642326911471048717531515551956052999945761487578520838508007560142718074171743386143555249187159136788336145158189299303453478317599844970835199697519952659523076471704022540388831311196840457514147483393543909743864197740909329869846132836013444588525056231321411597694004005504866190343296170514317022932224824991865736609248814044339219171297516218963018814643677409777033168645427200771216750695237015952512379250050271380377888257330316092144524539777335078153429217823226377563209409615087550860973634268719704927612792972077981556604779406526755688683243800550588015240931114016377010614639191103595262478110635461855231239311779401741559715725975111721315361519211863215419031729429930812808233419392154301124903335976004438887076533393310363187811932737159949607512115037713527978058052076142643431328380078942096263831119230672027934735942626004658880916372968610731124602030160503362843775237537883302232321326689138138964800342456032501295344205679744534280778667074149063520422376700800311902488230686953145648740012689742714556507210450582421940664003916546163665618869674277938427559503650837249420173317774169587779471578573231907718245968660113555421632166915393737886807495221508318131066071216567198526408886497389782588262614595461941909972795405097233498229691291899105123111571475101896514736803463863932400882431412274874796504393260630790882389114226391343654073185160359573405321064200528291624193385309906367162606745677025506239359418891980663544959883417302437069268134372161352308767345195935283467140200332618190631712334623333287506139759546401535967499830658479756401650832930799259863141675264692573783814367000180572167969815577801006277169889783991123956147955440958497034429375438297656507117739366941560273760785856421180366454640786462054924834654137189739850137121174504080842816284429304953657766869370828857018784879093556640469445955897209058720787471675195580414055855161586304807065752861945918178050620455947346747451373180447171827931935750526121373102191733933116160654332178635737371557012946177262400841198099836918367789683642481713797807408939610947927503619324142534768857563506183757188353010834158468246883816338265330793851990817078262699151166417010754860560575738492783509366910521982037846997775356125394706668696314876988521067333010215130291120725126410209073296898339054801983437236334916908303239045211573703779041887523759304232037642052858675525291316103360121100372947147159855656126282357628749457992438894298909502621280417771536856458611621164257929524462893576891683583003724171882050862175058109419850741560575071346551622080958231465531679242209709329309964973049421922971448947783700128804862900064953050177638892852265871053438768264410561135842271061212222424178134912210001838488440981292749186679651725565543903615467863455701580281023034690649676933768220470591648599123454168571999359569829716893470431938362827344223893584961436061393774966284735711257294860836545570028872665302286547150986921043846478430030909359700482126569978894773270325609148592611404261414540226437174207217863009859660254555988300974342669875755586595765065511930141190836141132458504884120037812432253569933333566637620342210716183258659175021593181441600265918512238667394757209741988765363477297911712188025180789046719646039252436688098651313620614135784141408257000136396575690760732425806320703212300656675351939376292692173449857453045958314928125471173993445890989191135322932678444829541696720901828556902180226837773323861676689509140334560291020842465594521461936813831814099776198372691870456361884090213157875244189760797399574485493647095650214709633598218183217585238453793823494119902633579992346988442857418782749347864514130343203914656769540897310376137935000023921402968728219285202448529787629333837475315303501086772894007405384167350499522229277532297719693452062661983241790780846181855840905233551185985917022514481412673735704218588145040690982888506944881333792721933835765080688462600944409664663309948389861632976538576071160599289742555455959571550629387043728164915961230620185860371692792733577554813335392161933898810877917883422011442447474947694998513517592607328500186678452076244992642519536571711004434230067376471913191015035038014718353324335753445818974629536428746208566411528693669345600588804644657827334107854499163810701184204890608063692673890623368346644312344139753102087470624627624721507159259162548897493543484849761130268142543657601865073410071426184853727241131657563065565036866357800476627583601734827827694343823755417187426671225736103208057721981627631177723056813379122767679675925049781003619086960534668458982782955590017982909949036849254211320794934260759778080861925932718680621906266400919563305398960707467089279873430938990286566118128175218826578265136849475445633797124777150194406129861462808106739095511058798419266639838511610590732195381692439395474102375206238313470548260591328103538683998624186692560430933692484844003498456286040417937711321364425349328617962984934882719137645538209918022944787321107942622957854856986934327375758229945937023542057460944685973361320494255641605457218720311743552572717191305882450750906284291098148707723116633455831691914466395520601541585678556182325473455194108395308521809370135812292673264357969781019118392571745326200483623425708880924797236924680921645716415459372926504631501854053147008945832861992390254623256190937851176522008696910489246420168658710087909852451027716931823320156980204455879785063910273363147967215782724694453885053813306272580222652167445718835304833453511287154863805155785323348021131358173587364502273139528364517122680207337540393992850272989033508801268082921199841249722623886510913395430895242357343023745054522887169152632102566759550138030569657415855215638120430253970529491592689298565477020435956514795746679121449535953955819240356361900654795897761425167974014596667277010060660169103862679544764693361351931612710014110107273433970597294011276127821470973085000420801464997706041605001539653665747896266626382916521628760445446264025314246145115434062008314109784283116085612677467186923399823192222639124647826041257932917881355209454625730916283990538022767374528126648939678522934061062225531494523254402689956085545225442999263851652384704955558211285595144405442534223957765775549388394025652176744155103171812439587501373442312277990847071633799381668754114795979375312672009759765207149823778870600675497672044462203752438739185514709333716322730535952394497016813163173949344171721634267397202775178656050145223462549551334736785325360143843810945685335439295252281038277671366264328206995090043492323451849038896295512625003494345914139815155529462103585118095211414915693887433859957096664436294160383636986476028207339488314674354207503515473071881766231491445032744656701983519568836779810480964545440756540512506674732301486038255104608647264156500548908371417847224398255295381810405308928677959718665541025197532258335075339179347163085265284282548717346577683785284286483992819258113979976698838504449027944978276817136400782328419171828100716867097731577231474385948588845357054443370053372452914854992387028166596428360399435622573365693165911730136574613066333294103549801354604729133668230503667037179496242076998872590166651910855665125084580769963231899148944350052455849524344431438380924019252090960258365170414127253696528591685802349662341425614155649175718053141547718608748663824537996932403021364995884075600267988532796060390496073309952725335444620195623182983351809950900132131579013684517074602076431956930715191802942578583863390362380584991758600486863114831532302860740196836604558497694602047386756378592973191658054611940753666673978255985785753648344048863828349026487824605063170566968584379611107289206942238253587378209935553622774779478987856506515395936833152310779911153532397305940316405322642838923260470582030909357998330851000066015522488452726843973611827684240522295190119003937957260468702557987346116780166813109931190481597658758534197596611140975732165500283257293046780483095262883080160121615866243045288398494817985579696724323989205330549985872939289049620619665533747540807184692794718721010007689543802485240981266151028648882052400484601074497452344802040070999031019669961624677291948236739291423361801633434031157823122977549678754055055007306286858181581360660866180738229123203195889195228230039803596088406010081625571401830171992075314005048615366059591985113516890916156981132529937680395433693382025532920029457052931055153885930966779171452523323968841046833855801896702606444277842886980844710473097931536018621211859256891965736902203887928345384097333096337553886976056578517233554764949995978048628290568650703094033143598495239453416836878617717553346208113797881012126737350331053717206741304263858032958497456601580475098712693409589195667445993315897629928295873992099225396956778518255328048269911554141691890716360209550107832749862992314228689893702729436962647086814584839164087063545938393446902916331915240755706431884000106462738051193665368024846283513917122820822285544591002439364229720201795600879220742343685352824007708966682312969014310139964191319890335788559002153225858276931116381125395605553002199603770102200986425347202034042132192932459050386364977519617876938491354647975172821557475774608562901778594087620502048674609166913258598884886347558908314666050979593916265577909939710982508752603290493297383483023464088634756143114189720498056293069656025435697572955411879532564698133071065809708456575905270484241402446033032289300676885153876665982204556162009375741358049455353986542627055935458095940102207694492071508887475019877919063373381103168992131020828355173166978173129409884008910684491797331918720755731012724250628146987956193735869914103446204289586470986302130585266495789191661553035705589640901591448309802755976934286105321545781770779290832645030869372149886348852231130659534189337413196971193829422007006155733081381136401224332221185677866081847708199904587067221895256042779550255256141693217148639010794874884349769311056346679232706194915590846792075704453017096927225511923143959325281108538736812543038651291637444054862468303409012240759597726457132243020266286686296725289308030246021336874209686101766123951369884905213818548599729426657094754351876810186224763627156272730596565441422653945641283486888815514232400431899107014789997740728142987908903404592654853167318353733552260800482204319490588243547067410625630887277487115320229644295340146935007834657249057043082842649482914863977041797570738451992328173551517618698388296997926034215613134207238882678684146072190663493389125101409540164259533041670515169953846167185752762539486435465336700487407932841151691357111434298807479622822134389544216141553920195763705488464384679357266538170777031632205759205934399677519550996995937886944997475435304417091740050122803927507056426411423503359006319186118696628081056375815633873533018588849071818882312065995975028666700703237603362051235524101036518944734342454016913861273351442837577705557100187336184800385234973945231039976652236807154095808544506037867723611446409214626995977582731497487082991596327023274188406752013090848154138041124053981115472224882703302820217698712889286204210785884586543419107790131961854258304643083804562701215694175481324045195472708252028231580467598658747779651409454169296114972552499342094333784776492548479126801271064266009448659623308699680600564667358970086783253326571311664384057179040075985839042030016730604258875472139732801456508905709958609516156569981115693433500743734458349245116300711244091651360889946727733313895069983215596717103730658820424795327819173168628154343023099324620446455908185175820271548923445657497031324641429933395626576890733186100442341708798236496040551274740853598975847660737195704624817736655242542611352785167636523439729231536189398874426515638127637193514458731957019125098606167860256565994691616375460040306897426601966345006841227347266713168935725570940073041406764587811839695121422718212849753602164963995451490100240476890043641299731035054766738103096046187938218681357309007126432184326076048076526363864175980186289467409442861945329638406980139481904807545122569600443452191689100124458038982021468363668403015281132810676752414779464496282106184104837742934937308781525500643877568833718824254505141681712262464183631502231713435176988940664050555886197949672221186922589903375095789383618087694521206613022711130826532404233976770004218886830077350060512134258846152672201829041633132006819829220545134186795971107530596596406648565301568233185711123092757311313536838962276860951263451943332613899212187158086399394804322332540375659344365303164462460297850730721508096116197110466577719824911749338122711723609614029055449980138043481343313203132805214928226343668184187016331715151263160685233757772161784397677407363961489753422403430515239333925035772894073591368951870638668212044712532760831985547308614811272766874009331466831147647371992475540603561619725913868327727873942396012094252288639710766060432051409500920062557048401958755055580058441709001022344788555709371412148343372868840243402509100425226559706296468419903587923832732263091950821959083241468710745306893237547994944533676439837248538707206534017977963096533109166843773535504229966843050583777853154847134635064741155527198552804956195160357004367749217590725541871611190098750397758292106740440261748633361053308754270981658254495001686662325859467362350800248407096493763281783205355970788859835773280990603801589626769851173611624226141512983620004944325715364972637314499288527465207968172951405961141822175687207195122418778650880544401998200635128397213193536615123359015914680152688806797880057881078924203257403756966578607703300650471170936574776380495825062384145657194797520402800848815709020859448927324035545136371563794088725146613428350581028420711366237468053091195447739351553851359167235843694216655669357040749358968270915772821753795312097172665033372024076303385113713834162303491656494137310739233948366339741519909675796349130308960050715529455849241265167996967766307691861665074644167430137798223402925529238286627294134709462955649436792312403227749150717771951890702302484929684296854324987001114510183568517966676242831230731277729794670557862910614467267213988145618608660303272266421896407227364990775690963938429089465593529665169836915900648592469514012760441592770071224669022804861692487686854258196890430909627809554144364069228604657710386941705134757826754906146529111560852621116950735545395623574147546136632820942795924404716307959822031057194090150231862824079058479152629206117987107476789597979416211622171660626672390545200199450163566870202733646047288007153502288793193464118366322365949110733719642891921016832545625500123934642472934607157190796260392327495961935669959233329005951090913446678120825875688268017280640212006999636805641158760396636052745621314488596585241041061259423340209290755449988164788241278667537534055831941435920187848755202538482232005978098439923761205315909056028266756338262543167406766136799320269241433633408354557163993032477233951135192789868032380690832485689544967731490996498557453414789564091060975160588490945153114414658734974417566160716568164418949140357324701721959120243051816402176294144157594220952513195143227398650382400374221045052627449716681777466177657679355709857638227931435072975778787098522751275768302058619043138923762598882520520720859257569308399539179724314919367088960428157063788694769673159835438864299111060471444417275797908408530864773368079693948567931719416249724851505443680533047327913237082815466218514272897809965934344150689912515938107296482005339130413167731213962589539134769830799117207562346568769641943919215931303494779222135178688356997954219405890235148858180423705527267888699707759396504210715878009754545088062910621794677073777745916976923168413837364318649472213075722422252566136583573361889722337545389628619479311702537012118330224563320499078512579727915950008380750158517946254301706654312733854594795877507247793988617449425809108745483562940663425479073093591202214361291292856279505029127669233121738328812048033953548694253234099598219637112071248569511022733546836406861920648641084432079330774794420755880971358798646176269864424480908938626064566575477582418321226086264879804360027920822041470782893553107463342275239711063145532062648586569970487599121686608999026018866845970594848387490826438571054117534126224969768086996709384676901987177911037793133112872970206169547075067913940442831115800862394631699747935806302204355121933282851990878347141145776285730597337282986204056057497146461128635326239056463679182668671853220039088649875922776618522890668745279051250307567866051495811165745601521999547766235809277836663470154671872778603062980374047665903226794117908079258097821930899969133518344418995903953691309237937418901476290729820693957535796190795065679636761033090550719352405870936509304417884012779067892972800379072198846863279074462328561403786187309708007632192786595206827628301742147702629881427353921478997203432820465997135571464453646634559983823067193295163292351795886854775967002165748793715398862833470430537372261800309151726830656047732232422753542864293560957116628299888270277230257967372851377251708506237766604816942905074808033896786638776108282437586545850754070025819417064072240576166691656978802427975689280618419854269596221603413835156793056374847564851915671356654484377396765203775214578627463885353442180036648249931749691722420537118848565956694093761917477064093082227566573262770246983917444632461375774995247763985347750684602314126359692001515643944732104804627074595293366632113576710952141066475893028663874750092238674918411859059060268082656944779510510385376372527982122726865006471544812883131067648876699169771986982399204594142092889890660278892859223574971420829806176127436885627874502027187629819380872335913612840899667855581615244589397508734386143664456793260812171017453820462517630168735834354949457692080303307960245315195713347723011209087391493388011436755032639913737118035689464918845727821810682412382667739031344459193459854945011937036250216906510658751454433186739168587241314916884582860148534512069052915844577826164221443584191572561554783342829363610980276013309781790491576877339976283797232639612432943126286359346744889502746428223515941908249033987573725908326004810958751366330150580097704127943733038299404647192091707669528093930298060503137149726830154443088374530961883519664528585281310806035995936038501681774471518814818569228039308844978806055636725378190626169925348016854967399485556774585556569246307503085883038692943392876349610913317313827393688470015868343671773772780704555570262655300998907188521629638130855018095264132445314598999641946960441709739133034892146251314326343205954649046978759244845235825870502476926043641570111448990848666988270236224364199205811278607408268955799589810235662435335802472364904688653942176768979414630424733418171079366469106593438256537984195559098273440744061454440045688461826355736273337951364992729591294593693672635221832614089615329683210249893114478698591830954116187235603389039918975050209545304084670276589775244226847806800789475965090767672670493728855118501794457319210912418330488522949200321500213684726904064564377061564730098952345402656646733288184364118792691030252050217591968165713843542586861123844662253441792468222991251418894641528371779625964898025576909135290395885550522764332176963000449791118324616494676845659241435230014216252444258354249430159331809240108352097009705920069351178180493125211579649777717602139380332883380687825346760948348251420831456877976758167548052724702706176568642485371130788591858947539433337263463055375898826262863073684715672207838516583473500072756489246532868288802745555790980828000195735057105905249880684206158193986915561392905930271653929201961670461691341904051097149890414631263669896910261052741132899527301516153594385501268203272456950078785358973108847254957579054621599779042637975905647818672190961272150926325303158553967610832664019982870115032785792118031068566283467429358247833482844179697111743446884349140290559971824040253489005045687043113257653223782666154439396397290643248810991466585277990499263962069202322843356487370593595418741483716744372075892084464965153345048362106444579165610440261931159277120719599225018879537805072909643809575049360006346000123017819664587783188593650526394783118652174442520803935991499577482412936567468870055015348590250283989129421654082538369047150309039328067134601522307827242394222443009269291448627886290348612909246064007639741747088485793010684047541276972520328540949221397342267289426460658242342683898081964829077970469197048144269857624888950050842757088728401229449395448371039379322509103822646811869861116548777709595496785175839142607031749918280460481279572635187432190482441263648516771794196772576622739670904412993161978842607244924368203149014966314939803460755809925094726253447290740743592440245201116321971070733800390468161110793404060558254102328710194441811709621033120744829665221509229523861842295382360182112814499022178665538077782904176905420168006481636775296391544461834531141738643712717431222595521718476032643556678999181697265028777107601246229275342437652564628652503751550820479120562263007352438466925126777879732537508151975567774495736923593684904554644251408013515470460985954995675187145053800986424724797070084292528187206388446847725634309515762322871104789659308127183392783471827259266115002792518048938869960278975305037084006568039815420909765382749826112191637934830186340563491298032921751561584754916375367401451859624215542411942717542820142404737014585021267789925289412627457634684867482891147650880070961597458608880472267649226228383496773830498952282931276538939530581325589722962478130093226050225516678657161192915797134479977374565300156395564184695357571551422447376581513655728050728784974738247222815864912828066157162569420696953403901840530932319356953307592975474977756374001069178139555218375297316680056864010968497927943414144232864683818350692837015212908276087983555953063196259450625434354726245972868564932141345720293386215185370303368039613436565470002218340862057974268171609570694277682965071168466040611981092957820819117966304254907338343677820960705583106180301641013567781494390410206056969636255289726306375184095450696057245599079393611234871897899546293330549056234372516824259160061712435233438750875037525799621430470883930773318806528423288155985746447543991760664297433181850176836458697089877765329572777433992145731243824379142357179745027888023844535366526414328256879091228916512649980739339456736958627419104561830744402512141053031488203621744568176601374093817764632789785161170117635388173768993201444682024090531087844738970010675051725250295282639275122664108199297444543914694480958118518293258558288222921766160084231793491387460065961816395542099577846152344238235615931840242963866190342971006283172171952202698791547628744245081720767465729967197229137668090929552938444442289540198300090503409653052283382181969537582507937107623096810740332371554571473294725484735135235223391643142432259356769516714861195688400710065901502340066057554367662102281412704985640564152269342812827658725046305071853724289380647347076345139149321821999219195894868204262537204046678992620996918470770056627175893354471458932592444826062052650244079796333115760451128523368848323128106581515991953051501981853597870678518273758488536502951845043883152706391109190014943891614414679213536031784336875720584105559742727266385673634570726994886191706049243756382483148386795432016523746451663755643166661417602673166896102682391152706622974225138347213321971423160725710723387441990288998820613965195343697171646702538860311368990831590185221273276561956880916406596899708643358184608418331066610016744068769686770534728715542446027756609223216365510061717275802607270094051715188986669732405434915360832166150363337967632785331704788975971917376147992092793263397828709956904307958902539690373235866570793858253176341868174881170962234393010749429419205923374750970987079661832181700290230110765555525351524911009973483451966266426785894419066159541062836773419246829786664771136602070300994730526229795144993982084348230172949731276222955002438979201708733220039086044284989432234481220987600327560766363742771695321725635021124022479855905931234614185350695615520657109262525798603747313241464795718146595752426955027220656164674592752908428659038879487094587033027031804627633491151318927569594003572911095914520909904284943535513808805582973836178340598111692335837771576609569435150993742606128638965177732492905017746954542998407904998763400863328103784042239083717390506174482327675271005561016752597209080724045861236571159839375153926679814233105342613682720432837579570076339542859052742006833144510732790927368734011135357746349116679856219060936660403688924988705396801062303924771813710336471406339148936317990583314208993447847063934429644370004261682897224263124175267035405173217429332562752244515466843112426782030357426487065171821112074495797320540658876049491105540174269226235264311761066512096306340834887030640823093584886358563112047217834670318698299099498075337479429436956317103404667924256704018958693128494461632754056699189908582207074681723009932259536030276680231416512599538990477386043814223961630506632876582808768868947912844533400845297379324454932223101965443354411493028906114057844279622449599165712833047911445819496658423183723374320658941980413536589935370003944026593008483209980618944760801871872806576227442426140014722015905377334557524578326503931748235370955049384789182027708007521104443191491719264455678086178103556448787117666523176591737104848645898316676456556458584000902404822266112424594119028465790001092557011117843276529611683397537754847754562344487823647872729189208038908830378457730218019670565096947384018713290168586631767501519228914234544771907567560607939639188421204172947099096771367028838440371627118436705430494372937335380977201207678025870385383645613905482715337271216585619518651108293794193446812932889766365611340700217252928191440953595117471885085149140817425325079355487985789112964065314703345787937876980149311606715721957745670516615675105068071408237000639505935885472073978433395658757924639185577024669347284097321675070708631642693603336400422302470501952035556082870781806587239358769697742084184232124027083688191007744929864570611822855291217781332529177688772711437949812523145443950446555662240520003668384341527291496987878250446700612718764181267499396997749200004458542596976587105133135827536319443579459629545810559952224457309766129544063844880394534025134956320387286282000587955511079203049690907022967126287003867702751129254452531552625492170738991398543232776160215126915411101280794585396147888262574100743321354220142391394939398520221578149254410804579828763820792418095587066485254582970893184809918036044869424195709124812402209920747832805447269935674924355679120274776672282468123889072131655886950097299774946695219410858348321587617890545568439596920686910812066306097256095379165006031076540723172618294488026858015222655567637575394209099822266639125710629394393365506428624928291331216344076945434697010546954036174532643614378540545629875152282733217772791411694040997376918638347905096588701644670032358703762553248223088311837273335703030839374881193558868928181549248443287181434130303496079637276602975837769878466321299413075791133800244209067489603598353545112340747920271520423929710458492683525865196570118769616535728271110525681787619523731494100420383741393146723370202709400089947241504863788618184768577896887295039994431988625941428200044379703455702385644655188607916760789348746179632855349056760706489050025091108362240536082646907834596451607309698324044329704601972856403018322818706155445104330008865370310441045657055072119549226855384092463179642601919754475074280958333970840120091672768041705019448988584289316299296679271027285819522185551298778191826495951049654350824992143752276042658543931425052438123705603761084827946910167217938562221829237249213287491794292549639219802546067813713197722526180476758235546813009513029455627818121249353441770651479759066367194617178001479717905178941053787759857251023658184840015769506526195367955981999102028580723121431284944472700771700872578522647357391754870662119316962275170000619743682060500204028965630106700541626710613922400681123214195868658233993687160397992551714403364191842213705995324521404284615041685295895968404012958488065788287625668671178474548077467399147500136786975568970037677679426433937462216085228133153770693760907883144366032424508037399483609521670312336708973761599181939084930925833719733873118917340234919845003769407643081154226215727867425293886397941840117688513677324284947168902541781420243933688933604331082721243021295627258854213446750240948707029212094028700020696654524290657971875011847943082255227080119026531956291394111113217060645264739299002061863171221424566119346961733160499664202936570743142620171144984702871215791869611603326032444138575106531613239052363443380249153857892556797623162421515996696764642877636638396529283611310586700303033786535201813697057989225691928615552846459907196014603464117169991997738615158861800566678151925376449370066299401971055076549657990346069249965686693795168634001110182443630205379561510484667332421078691275116783395512940026023604404124850579046127232097667453576710348194040455831650394863819593303629750973982472049649210418247445207210594664969665230942769634001100270639911546355126933937674238979440310716435746753150724361269838372671790718099055452301625733272263480619039624565439472933514156452082513899936842441081961416585567323304194814809321343460002761164290051402016750063397961186505823556455778417509703966163268257993344915846322375924758262928033212634861255555011899796602546578266049137116855776667065122673707566832647175283275579401810606892531440226621818036132278880018089173361551711021114443359666313870791106524387760958811748369991653556187603704946168463966779956027199302829137514176831881468558638248564332739348770796343101962719737334680066564695202629221029480349748603454212682636807120988505773431583023603871059431317665422572516969660664342309332116888682644325947598833894968422132898236400043965140322316317815695790187469030749886439463506302455564448878290476719360488717509906864941921709373444559083308844014665788853044595809736479698512634874102109146735811344250341836979676179949147643399079521301664799468337657199174158599748387291405746870482516406465245482685627213539410436488792622479476608876377953225162116769917058615288717119053259157076615482839492951482768452570198377334953841394288647069651248063615053028481342548816503973483454963441368564798802103023026217328184041865085856301870200158558503721469219216411062020722787601154450035154948906863888627460957015031341114740533320315359303228808236895337951478738731451213300397720632202757665248877147127232538923955574693970381102584481989210075555333591715375552372546867928639763467155007341977898371563913536289865715783987674302981064259457725764043933267318790346055379943903415466728430699948295299864406192239874005302325952563619468459314282351798314228154360937403291958188211203126454613354358299771131274764345566653576393967130902959085876933130017218244837928169929933228308163168963912058623457516899290729005925531782688611151320697441683997896684539331755814869875142965480683103763895860345791408091101969965422972869138074617158449395610838566378039535341830143853410871258509781108506391804896578306953363743215705523169273803127198555907331804096501244334157760980244455726504207688642522890642893691871806176587799723210827178210787433363501805231386758766080695512106978398612207740102618970144415838216948777283855210050946371041372079871542503645593561039811723351399591346234190901265732603112819403337687139961377995599598700207079996987321984246085524952143675283844455599763176166934543182482806784340832533746670449965187013216251122745457153370203283048619970190514132586627570535867436189064790168214591648929185909387947897601552346223001020777214694078584457617444975473515382113219285117366139265994049413096389614851859505387319293384295439818041789513665817681065143159091036469349608639913339403238137491605732775792524746323517137169625623611032656253237768585994906882272762400824615378020838846310908814621196136185282626102185758388184224135581203372312243810245909412424970214980640854401276453875530310454148356604002983420769082809611668491482480251441684400615505125812619836144307711873026199075774115698616837724997697858832703638092732733147602862428933426184650943879274648067350439504377822865794571821908917445592557350256114242932366491467875148729017803137223338467955001701775818425996978976449570220766982932406293139551713861462971399759329942260262454470881474902566360743247319343950475036670249258812972572176750035188930252415616139902973904129508551915346362938189991819857893707183877567424288509552566857064869512494148124821016464614684423781459355395286799002753149327868581518179265399408243100502415473399533336181964272759483734945976370495805457446980165068470300465575208646641954112404185789773620888432158822173310040028156041596037014289245199936712416803912122301590704515049627229870339085837846103605157010862837535929292376197793071248717012039915629995010207355495536255943430045412028745799253870543157236465562258802292689812800624304286554853630098220568596256363742910684224056390160600803008300056278362422139108410392551198358227142084615793191740849883444344471106156064983756806599623325958713103550918641475937541182004042018951158981268180099169987932407224515082633007810693311040071076323477659748295468165915117124440243114266541880348529105592580193231349952121156583507091841308367104255101775999548776237357302628560948238293495057761203217209957336442585434832772971053027562280905712761835586752890903561452949621599243075260304127933153222302768435640540531768025348041592750318118393346486850641312392178038698116187320147708974789946071077505186726263940843762763417436999836730939446880496842539026889439713997592485219007264542636860020634739707221243089024010848667994159204615100388251218217311195313123151814920586490365206251291432113844037894011468781816485610386862275282079345930831591015287346369473050309708767318966039746281482877625327221007849915248120546782293405483073182337869896896169174970810819694120499060632354866393501271272883358055284828312973500019274528895050652387785195261847569712614189006200992953132741647539343402474614516131588357456638847775272492807450152055987490424420824557506032426232423267709082327087978120617612709655120148329933696416034098308316312002871125624879415889914420282737852526584041068317230886133809096038682208800633421054573630808915493742701073416773755770883300251655122056068283109591261739158685860525137122412926822055433050644513338639432901927035505598907157087241130056092888283755501244406534934782285962839688789162654212262236677806713701714686018096694681989421706426341978785589097141947133676844367592471267659520602762537582112181905932466659657827585304076997003377212394232046935972994556287490535997803905375069359584342811832343215669164188369207456071180903749602118785595977904197226098863981531671187088848554397956345726052643275719523514982111619249678500657922859327667866350982533623269099066399293902969680784369836335874875223466100937428792488600307678406277867654647523769209570382882099329129610695188566793787753065842179760738583136196415444813341834257348914535736100483206429006968003030184277509253015375022123860177787518622828312804086813599082185853697114870922122411535595598653250552663211585769245776543577834385107632627968079094322944539796212337277836498299462260678935541673653929856861529418009002519769865419170105642552560582652333976116106834746876212024101054641373967376639335115265887899775658843610209457638320660328499526319415622792142582134940759727982514923356262898416214286802245426576217839371265396524310628986157486916822179108599760504602296490954887733158939171439369663313133665369984771139556659060123217233900451798775210492291857627884370697015756000510600852217219582093201651288999342429864174021674205083746243127339336766723608103195368623815372362253958107989375349631962155781522240268433674741395959404114703425463336240937022781253325031267770997463132248662611041528327548193232664509273667981841945696999204186536377332181139607923215172390454297951605525330501309183376214423405581161152312571964746365896768249332785837477551742220960116274719175110829270729394947965366473043266471487985648277810500816206633454456555538153752168187739726526815348966580069352130544262554991537555142663101603203494720694737110557362769301984853601062556802681425998892198987569647202671593279896518853771457556492971839649294743978508788009667839341208545037435684830371576592824649701574058549073325675162983991140077080900354941386487827985079614647053295558279424728367175608929841686601143109589459723692163339227784114072599143004378420740646524902898287483021953039154764040044826698420265967209730025011846328875798700784052607786422095112590599915081317223789899547393921934498234009340444089623244424571500102491491319245457947507530040376735063431710075926825552516569759760083376261719900772832020835982127809432552940904346232280367221134072173001396015625267303788590958614014700487763386196856660558381574755851671410504830735189412416906791527102305807846610535863958379816741459704792582836962357016444835063378623645034903580478536279118638091163886619250468624298722078333813783898559430612236960982499432086104309841661389225760171354165947578441684698903543593493783772020107297899117453437506728936469896275636794306768003543025942057476819459082583851424653882521696342928789933285945174933204156079027349886658036568318914242050984122771095243544918090942892995139367925136406071623127191504104270570380809378908183492323854899117790351838775628355229428523158984197291268401771773564685404260447726419713492980940576975228400828803568595005796682938765223277747972549560612941816389788405966015205905093920971377464307183587709651132561397171361691551207180262558462388682156802381507425301424039359054586147190733500253510806706090826673373941959950845021896463218136012373729134535466283702967597200093788377645843449445250090895116405412992567486316604172109180426886586108424960594122163439180049931691829119517677104516374130189985656136293927420395216166946204642268438389096242625255551688099794858880906924353701640615922788684744579583846966229757483883176321496832137826924787955121311424064334276638138402060167477730867423506536840894252567591972994572796360206162488338084116463730676390162014918641715501902477725171783859281080238689598278634952326116994198532088793085562744275879461373898589739485816510932419694123069556282462415126393110493299072492137605961469487998710727896841218712250317405885866210759436751806228793727472992337215813561016950520010491341469879590627914468715223672285755869286078310512391914170393333433509638042971974039246553531278340788221360742052279251795231413329591432294302432724519995015523604015631961970263757252541662559924645796583319050067919496898179214273539246221891966609182566427154183400094212026349220889049223320389676303502709604038184178461862481230288083767517298761312957302190908499926789389801519532454347636491044467940325770445118792043643622909340408969280412172980640919504701249444724570160433976974758400758915151836868262083864742409211682846750953233661006557055073620949891202592898165494751031843143947370974408551510839874266338182608531768559138326655359188268930078910251036193848169247579403862627459134611165191080487823982069797274233739798398527533817446392099851809033389301811591027124875886438338938539911887853917906072736954356816207572760775805750955537476989365613606891098314137715911592628150906628334130443938384733232261697923350731245181826042810042726551083705511364830785470145805155565775709296755937392047045222582642800234537845616689108912684628914664977877928338920949260019922455650389395302213912888867984668795992205616549080182233960038492322841009286028670068336075313933005345744136298022197130201087190073265247066942319007198356276133381025528850368033672470638536673663001319496166316501688857594826020219390792816114253664675844111417213672108968294025956687514565379207011990746151188187249655515290747109535669163360130271784602864918087623658201197892523598132144898120200316422407373708738335376091690727251225870589167425190742075313353262554680753136323391341116454818826935150262078986962749344055286379338991875251776310584619661861450298953407140209155504020964609583972575534039865411223352709620053467416065665740415524094429429016585579349554783384329202510910275885881045813745240638298599365390683430330820505388088327304671877447784771916967654320274251966876160571451760234566632936764413732872454964463814166044174541339334976125082799236367877681538649228957489262575444127192473670439402213143587301929166724433776312746560798204781902190797380926842130858299846929682422983747219909520856121111180642908206085917950053974303435063774809724208459086063009914629328536713326572031151289005179129098193017499258053894733693763246101262997820122430534612332310642440248463961919768032926084734253533449086260338287377086288266886121941150565877896081699322380062010035286306527876951966030700474651728659086258006050662741105651511633102515059523859528990136043745371933323853273818861049471706717739052416572507248447501880986825361349986520258972768053054236516792738355919238809828979041047367178730866898488090751734403663772240819778359045804211641963313829639412683203904426594808811114413593162971695979509536605844006241085093424651953792156391101533269816483351608987600359586507535616189068325999036071286079096159462713416910552171370133182009968442772723873532630636969379672088073128447814340335216256915125194585702696769466620850052405018298101147207883806557018820558407127267221426296709058763550698535258898505947582783205362278346049244498173761749992629927324246167780850798771281578461928590378394756272687337225745453574525771088771089618497149534185940644465360142758409660857985381277227300520202247269927111344942716672715700068241681043618466365000582253910195393115404009625237545314368896013661400573937196266930392942246264389883813130011930179936212930325733072573858748991761703278601232416264861748225541950642798187512751061265023823555817791931761506741321076993534554624096798320626328616769023258009743776529001810054391044829474454885663018461790997217726904031803843594805543608463692992112103194583087354794206951274923093325804328042564462579952336197807692029879763661435048058083361762812732267380655865715828913682285811684178347961813946553399907725353775855417251066633009052228132634164916963401275625263866324801470308899013645799081432433339911827480821170681015864916156125750552325296326651841525738799597426529513823588281180911137974466127574365506023816574807000499975578858551984762992468729663208321436892260670220561920232660039437974121882743634187145966691645186537154473156601690103799921282360234739554184148737856723315174326108401205950476923067309338741554022173775556354984209945656711678717026096748845966831236542228327641362954642829306908595522573726893860265515656976242174811277124573676383340103073954339522113477636141290108400769955769849305877838479536364493054966801902756950596224936643815630800092353909965242480076445026107630685558322598287731561058393574510807866288382676750183525520620700966041273736409443255209201189792616127159711464139503007775746880817256723742206097670992857340890755836876798603986061312273622207349574652905856837678172418500623763392764488888235972883204001933995196852691928266215342930242219015805581364947602844441161498907847184868982768392456725116248522364636815687005696607188912834348161402496562071183033624278355702292222159902239077109264017088429855282322060807524771301017426059438013535174888763030279037098963219800546542219754756299604181738215694111993369256636887902940387525381864421567736901942211879600711035622820932565693484272605250091522485935240421759462571650217252735969556690502870357537222232123281864802388311880519691451102715324717085591030818504684084545866819445619290739186348247678976975659966024591030743694881124234956808032301987221031357251116198738747891486706733456228095444159978888772353520403365454300421020079796106892977032335185812602943574346139412240329422444739781119259173432439517709549461553724175210721319755005833942149097011923715093431066970553982765929291945834607397615101323309649802785921472629116256354626949567261786581362482768820393009236260295499634028171675639107315622779569192562336825015728803330687097038726152243482095516236442064796325867337482066700841077810193562057898337365220699143202748698857888730885518077565581540860508038813504893849845673420330798498094085699912104783139954864821935068830526836003679868681501781809192951208602026981813525851993839503583135362090959641745542429062486210044821219427416243006717709144951117716227110541402846672748760755093935630758378740008110284674906487213825929212281233578250034640360255878056510134031392646201494114957172558060480839819043592815932826426936947190055315478053179343435611309996558746485091920103548447405719602842510400863852405808093555146310426982963998777944159529795493819581463130155507054518993136512835108952944913630416210532510224872117972319434158935554853928510769638049953934656434223149576246158649052990126760468518335615201859908764370906813000586864410919697928647374122378227400867041140194797167447907567663899562726094879514687525135223767376349861923015252381736623446775946949708720827231091616413401876382807039219724027668409134326463317650023563857292050439430556821472377377932940856721022928848222671626199540154898071047166185992749078494473926356964881058512125771187650137794572352815402935204231096006575870856388146011632548104397142625643447181850895442971524036492462498041762113950141219974226267173623530862585550637131791523287802524249507662065040266029286768626041781822067107804039078001435554769815088557303363915347395068126620462398864419938819968470294026302631991638187080094172464837374423205700457568217906091540690765831763384026562999165619107482044989136570460587929763498814126272630951152997335094999112053564789360454246156384522235458165410381891990990960480842085849503175841567133906660302461416530405082382488847809979346683490861858964007138327369120223700796458572041068689552922047423441164604944337045133372670390905666166892776131521839126552377962703612948452444282751633829575890550695804799836946948348897200456792630141263931223645759538667354995017425165589243203624767540567517470246994514049309740277832923818515215468174487594013119425978997707960053001108418655756222864464986890871415620837604429510796248562260391972755524295264573788823023442068442500649982401600410690784755027624651637001362016912427843712951649428810959832050112405087862385221582399729101581421338348755233613637297970931972260021399162434949950161570701591113756016874357415810772176393695013686913770273176683641341393686385580389109198342554424296554072812884329862992809181909357432991626071572188534964667437427193468273997257620898950365718715151213856814295694558833170892032080565610517850075552347776128010193750578203263279091101249622457964921703119263771882045837658468864163938496797537823713959674954082012221499624325516401016565982749323106787196779795840481861341434729185357292105366785637978662286728389534742966258389408281251999123570354565719349972205098628572417162620437407314859434035118670767788389918145557123836933749389865312174681453462626884317805955564212444437218529587409721345279838134930165332603516681865948277796916637444430176509649443771446463443140115729496748275066096611850462541598666307219070013115862390298367646395124235725201097842200152409478936312040687415674648501715849815521945609955785339636463761457619351755651264638346876834533693791918036216485563763011546536550438062131672307073037699939492337158299372042780771456585083957841628466084023118947481310436056975568861092996676178637449315437027374765920883642597914650219494330058660941912444332989549129919394429121151301323471904780430521625874498137016471450528062859052219157333645123196583581839764058691935147604774259669116804546277918636094200813921301975858154848318987901115590636149371588493091469739714790470319477067575664339010442809123495190509766906672172525111609650679417661619604568134961938612004863400451127251863056237426662723863590054742175672782880458106639197788061400954674365158120935783204196089575105544073789128249590318399274079046967028150820979046865004419924337932007739958735356586210235022201274656194442512555788928867895774669663836567397278435862709044326446007876466690894684369658384641625498018137892208965248570460775025977629765179961327135588825497929950744559489878742012748825920216872816716169027268730388408998923498344697491058370277789151622612708548717030068290866252957041280549774842810408305935713215548369916212633268189757653324795704350582068347115594028628727204721134379502833775711600266095544579009403079093829844946239977930246121969047351612971804108752528188035939830955430106449549121965905577672547323180876904441564558550254637920467399736422290708437124714234116397402361728923706052154267062105006753326383009557705974427014571696165026573837954236313585906352126239576637072693630564678999315119961343138264667561381642962286799245105093136758751107489540914341422022865556048048769121158553624113501088091533990747941496302878065496635553836538347456542974766766646089050752134664040725227222734915551436935532520347322093384109456496715042961499470914440601461000549929936500237505197567268085298353491031877957322182075329252854811040929955419960278806470670358387365948319363367527254513098513677540392197710430524046383907028336437192440559994528443859924917763895505597792782276375946748813067533584543141844219814604729308128163568626034372226340533600716222975951659178783074834856423860313187277190574045877436407312267346444545464967110133425465646100548792460315484549337987136576643893454920097785834866403913565998865048578543113242425369016106835211187327651465478367523861774651448356685018907171891728815524091791847186101539441017333923780795031535857578254150695285545832870647017786477428849004900567132978699584634639178996397856573569197117409790711206866974877298654230069566972833493988516649296011257330588474611764756999274404571336749748543190132736521857779463168432006687376541638603537767339867808091594909943989121315421153904029539033812846635713787364553092915175679225879867754918619583315547887474688319320075500631537859986596102903291383804573215938533693410835220974019903363868179186043661141920050877954903396155759200025332156305539635180710254751978706806649830323446214953404965954605587025491669914085719677104321339842154036299243774355986743782751380480258611476983300771364327861766819631883546321802695335676720580306786227950105053222069847612441081237898697847060014595089012328593013418380106607911881343096445081891092128284267765426336925830652698168204585741863337507678395124402955538172129063653972181838817201965666464880230076577228393053254689754035425066919412605897617755849396829836024612358983199254167468547514584408692810618847725315824611831549059717551240941909709583343500036752593790802898796438920278658989880955903640553550026947313817834578999841319445170728479093470882684739444418862594478569634169803225920898535172362969898244185364665266989672455548828589925418697336623282120195166811083481364843048144591059134283698599180417856333803298228243982597266795932630014414015952114394473811860518119361979807750129908781322765386308624928610470390575540707744730761369301379946477243173765639132723076020940286582282075132744162651577548963395166559451479383686339008930090389583013702574718599825191118039782891330936623697990095165530108836852147050728923326919846139005096884400913919673761844873356040584296760273589776081857946223452098774185490766114855410834327675532270395790599910554202073718433914887567975292741325359758385648777204974469566433613121642847523540731952046427821877686344539720656257630107646849056345045710101847929384952951623980119627686428925330760731925306401589877850693096656873087691492830325327812744567392540646083919492905638749123181699603267251402529050992803312522246206961846060343192719492457986526354993575352014642669218758846094849996910909346003379261269494670359003513645758549716339215274365236070986194859624581807515190070048989202146091952791973794682479772072970227186585492631670938922128810060952245909795697176852866702796173771696000545771782642873638607331658268715035591648454631079733608152256252029099518171171753547942075475467394748027894881011673422895618761809994161145782740093297226542649603000104039789256976707297883218604546344607277098441194195581855364066076037324104993927833587189240152059733335397812566603558734820703341341237886332961872783178921316774947871753796944098041725240629195817732371468969006556757038843002737462123867078753122329382731804119028869603868969494815383910378935880803236879681832720283795839876031457657741236876585211673272805885842800471268933394302219338856281539671440700266501057994327978275280710910772751458547883144646686111566472564454589892118324069126023678224376638238624417734435019925399133758257101091391627386665342255347208501551757304793678747965468545936431061555822216573794648090749701279445835412248862053192503765633477219622147301583773744079225614074506351110735677464869486315162321089591139071828492626286603308755769198293324203459950592946611304908741755446805363095631378739192891467731180284936141493551857339939470039914372785155834392461091205348076810349536985182850837287217959049696115366707238021037102199907283198814977729259695796087742952638683837490063874950558551682625449913659338363897107331515717101733372201127916265779083486750057078899869581746540646373651063730327035696602347290518218170980836621174142512170728278751054432802457429439468119646860543547050095031095345721600657040824348423642314740295700279181339513991012052831005360891747284671353749327557726353978877337730384095008385211092653176623326467665597146146865688213746544914490958519847623242228851857973094190095980920897956675295259430553161911720605807570557871168325385019867940563200593089260464911261501612459942202227539241663385978344348147456275580734454007816939903058000444915451273103135941790262442446410532828531148647403528846933276775078844248821589947146687872931430361868743462035397549783196959981214107088777407591252596102534350880862677266517119607299147858329366725650767224244926805895694962283316748787316264102660361553616171830117040652260978201884800826201246835500771703466465866789352719457084264056812883752972556743029019354350414772580580251485581652183811392841119283853240912933384241315363518913095554049557659079338748616889633492428421763880728908705621749750790348415449992241716149360321001618948607977936511042008625565131689048551568373742650493091023063816192633810890612766152429116308736483086355940599288309022179708756438672255532495879017222980289668964600746921676255737167986509214484221140472081269294092269478473506369359752722425198466358985254199847226183634007177478113037567231120366103487466658429539409187254827629219455393445036764325376591116851876536576053851136191149951256262157385529944888782146531443117022222211946695603761362301851479602153590109804203769480138082644439392564327682739698880188209505179257196052802605157208414356266433261747257873178865428533659930198296738387123621724952444673491426739954816411470877906859475388891007960825474973190677326422748927738680692533790794451652261348429208112265554228029062932844179219603348016248742055772801091401493856479604669061842183929686950056804601358335770868077233476080102853366222967186283824169688482972740546681375018252474564513529694433009575139075698753108106343630824153410485181101111804727039827256291013056785367381096446202585634437682701705638570816228539364090114391797477740031607867377975859226263470317022196987170575438706154253902329419256426609767155889365566240172585212034661172308928306470511393809712986111196005975306456451282289823441354840630328358415144874028934670870551020663453839810342304887625537891473594076569318814728681583832320165600411912815016536715045053511103147082809007440931444772183003575797280893593502673351586381901956719235825535047627904678110772376049163804536878336741267721594739117474912399570867757558026786088671463787811998463988747156096160649719453735580045932747403817996971101992448476026631918752718560795681558056265547257445554262957543982329395169669521821502157610974053750947100261549873617208075531941246061079760020403929932371379946615850981935749617927399219620007783033310698445320130299820370564541509641960011875347630150622539735378328620938668515800469109127713862524259782298712039494610453211907735426046526971548885762432484196618200715189117124555721611017110777745888421471161389659378928468398127432616579330946539869779575379131346697050039619581042146359376731950578837340020762955883494345764026910531374626726129243679066627359825800643107324735647237937815040827614667553280758139177805924422256877215745188470426141890257688212810293501551146101712057444797354233718907434240123156933272296052115456911702905239134137660018327005824132434617799403946508800320491343031717867649585469325128869946476867283247064522984291034433686620010151143110133943697594115085673311468640119889411475050308576451286408503368626841473955388662615951156013674685381730971971920688472262663478666465932089840104001827157032957307426041997312638473202555060635173643863767221409866921563997024437275413817355901351510782444980963054580312085185969587492934772021485585121593309319817247337280855720496828610607011132498190632718941775747702105488476415851128880873266634234852357265680181138703994336787737582229715684359070096427874807857620230996908184381893081734089356335290371900082237935220015402890433964834194601956152975047103289968583699082605824095950508171668421630237156205390044935661095209150335043420589877792734363247140530895576044387284518447837604476179142091947027539410400049514971757031598222085830510005257472104830770618365061728675421006814445155427918540979265936649668234726666396394221632559434707216738394266146897131036328107335733885580429081715670439560244815425000776785797178770234427216814736045456469569992816229915208004509983420237846620369895795702979503525931666770080794170945733595002528958972931808962847913111667809038886248720115872545661145215418834262646693609685961816715775748509721272261963624939156196485330220704214889084993794900317926475422406811402397892593054856127800271829687697673401822334925755683775263648455629176057362970808393908563000998858913383794105000532310390458989821492180901494918674661498830023874415901390333039888036775355408345347288069561223884486136928847286909645721959739301753301747187462775025699803072414451218181109091662773451341131246115862348603508583736515587814663607870089143489082080231133827985272218652925142979815694517759217020164575919121484852405939332900949618594010447844303268121512960311183002169364516580481795218070752076886878617879126823297560917361180106064740979084479516469050263805137740162614228260555816804412701740742379434810365195988376402644503494663534203585127971194016502240758042387888735576731471930124576729640628641839208736850216658316082958220547988162454297480026498642625454082343268032870889275195782243269277517666664194129950512504205973894570516850539187333241902237831797255802437789727562647454331986329059343150689858799961355827144249141549621619362829682181119537712251863721883524687710807983408225263901794533639102448310961480453144344144716263245881317331850606091866853208381344048814057962176988605956660206199898408464935826133969933123265557557248397532897927525833939852261583968407793633555640143000505076692338125384018365288644739039590081739362919135230683360322908551014193947118366479484887885367705700107317286662704162817674955906677983229145564492863308487202556387245480491022082657298345532024445054891026354642258088809868598032727002379520728060917687555026155237395797567260408030103762829512144413988350630159343332802307089508131972897820175317473163094311832932398785237455137523931995168689044135857161812879948953494192979714606224064267938162858914303770424501704848619495060240500761675200593110477329331740845615137272719036635923940146970069642013326501737066298297604007336158334277517716269480846317945891446879304708664365464590937427578311879551248581264777422424727897127992945167335138498563334800031512174163262316614718196775812782203895826788218190356065149949868522672979572111745044706183226143552524175389849457744878092244752049643622006618067412935932987595845717755248864107039458150223357183773145670918610954729539185209565597818832666291603678940883874327832855453475357741220390948616445810757061193144121414217231136703440070277119770913158061805250889691794804734966798148530128992033733634066245090445988380963278689121745363456476121686422553441122085276018626514845479292118280068675443338181408187931902897032951051588713962306037836219038558832291526098183372859713279696057709477914915858049605566336305323033890907149573767912297822665571495815721243111986727301184102057516194003864543958386045517406779642152816454644257841984600205475600964761562676227117429709062316775435144349542432381330619362381198418507962470811136435757972166857622162437475059127125469992914091079259806045149903027397307878563165202765833752999920629545071525258103406446227208268090751819118455794719388812939083955725433763541371596120899806325274341670904710227596032255423009792960222372881812546256091921677782185004731061755633905681606992883349561409983416727018074397151937747446386731569208998334267984085755841966073233057458711124150404739360550900974104013583144597670497748785367727123229511137747616835017306561495094006282926336537905849071991270300693580340759905788773197436065443525438924893223212097685091368490667396886468018429170531639057957418558950992693340575933263789557417997544413056715979333308590658659421675395467494224312266877640242209340278488819575335161284597921529267331935009908478259677095560383022010110906065774670419092106295502863036548830679957633253127439757234333758899891433161691020003686381743626533071680914712382946527027577401237071388622084779170676398146631829209732774984620867683758882016353672368834399541704425283705734136083982961180790382525538819211356926893969717358277398494155657112929357750998649994287070183131882982884870701567057426168835382521437692771146112976059074423355846814834585756841293457881278002366861522343490082699357139990205435078078053208137598866719965636731637211918448871260201237039638784229434611635596203651410475568482884732489071198366163831809599273281979331281667484290341366537036669293934968830553861646843070646923660921791131139080939579685593824169371683043495449834107639986152081851567103855089120004387437117732746146723850023450390927865587520262445715269721846123137776274549011377670947446234101204722274975761371115767880735435018171454558107827259120217244913102565401045433543325482593106585799424200713899308508953302356067080042556284826622972066718745074603564988529501030945988032705701482928576662990500367486594647169037961782824703771688767833431640200979047820100581101270202247176388103921551391503893968355268237161100590773354011458503350847141614142355630129309653874026879009118378538685639261393360501783455683065353903631989630315897328608752307100130292055089302089132254453546650845968885753911016078585860424178372372958064377033066660186249040393877652591529164376552079309423298706325581409483253032139525830453485564030522485044417410779892389289504790816987498239261199449401491537556912148374940024109659642276580333526364111736002367683096291238781493781468533701084583946093565319083859521391080357997353900859387194320532823657047477460683315104742492281107702962698895977575609522192448053132123423953134342454721940501173346988344584805166918250000145001869198998324563130753456686947040083726234777396190286683550673682330751583470679222696944928481434439159558393664876013529160414156929561236770619157279554316794853087587258919177033595628125843748851374584350537449300762479427915438087301751836433753191583851188363204778223547508663411474032476368783253337459367020668899805932023177771777735839921250877102249570831932218278213411753354557534662262004862413593826770458724155108193091302318824325601672378746735010402967947643530132201747982176168722504025643621266709404028522697077213382423454368677321841022090513567294744800769810846896884675991059064604103299411524324442668283613886312782708648208143127001740183949463271382853073853037224648946402352618031275380463554073882129803125734374116714298295984848996634509982524884503339253728629476776366288762124671232487899030561927019986380853516067060888241610020226565971830124308294028242094906519856632642596233857038160843873998877938071020231398000217474652416600952063565857378541801004661028413777823147985626225411050737364775973608920905901838283227964213703967384198028423005523571025851373552906781864867481056772675072777082462017568207930074617679588079085551030862126095909900957831072473008731310829086287791003060732748553355405647578048733138024766587067719136332327182527190049524502088094624221654948390071206299143413619318588718928271850607037557779207910873738999579270776987878321322909443154147065320009701185078052323831408346498646757454091218896479786166882236956436757235469508399355812048156086397974109714019419080665219615293851526125818669447760585976147679917840117552441905122476504745960299012893612982282788439185704429220480121676584858285664636728548639273679898887497597363365997142655797382418657164030576309311640327251516588849576160886776100214259928592834101095411565938698218289961675396287616992691731290142942855769188339028251540467683982267318368640640607582251652429767501424905934867736217790411699716471668447590467105586756018402562210779598715448650769574759602757769710506547810713841694612745081431246476733581770479418605423121433313279910029236110703335439933874727212774462388500963065560189492034277109609241723895769478925890667041318034049758818828747109471064380903924116516502653876629132878120078333307285992809439939634243184761109690886293902729776234718217708426063870989808815035239874272148724435051742917571242881171181784999064868665340260774287183633497758994454428308881667393165037257596254070967697955123834003904355207158583024635854499335346059411668262150187524587737714486007475112342261717138902261333828629412528861718779879325819551608964832284120412540934011507589164253201120357752056236384504259744787278193531783138753280895442734616572410306255699492444907913608622372819773881965124736432167050198584874351139867587441787331642045655075566118447709576767199403067533842217102766948642557721934792575717837895031870747395566534878093561870983417276729206782291209243845573848373146869475028619229393961651932879015044184795473679644450293838616638458128851609074926857528931697523817391494614162237164004616002199966039176336794006785385512972789176916900419630118622335403086286123092172408206938372404206923420573495020218814689630022511638852169691631092405121992956726699229282057416744675153371754593746072767839159045213285048680956255882219724245411815339149470511539300593984130347376282839227610059129607512907528126314989529466719118195324973904182923586508111978188352139415202759629912396520977948678310409248027787656262857950147361387912241725981509379456827633850127509062232669837769233197252435537341581076655052160588946327854973433014226432358920007162728856362017201428553931969600657158258130199264720744069690777653395192072791177461060014341104417155521080886021873948518340257566335516343436828680004625681390066839952319319568818933291748983867335750059377470879717382100604006938746993770497932961799346041208170123418999494127091777568741224831396925867897304655255185016629489753971954613618446350660242491746939348255489854842505771746912749358373812091852883341730781676765006342840277044770215858010499722404272555961227425265302466459723125153698488026272214034909880585912463770304899991444921269127015069898357429984938513218748750753500980050332380993247688010858199958617827269237845429965248951190234245268107193197328294731537270874650565270340393562144857349767702186498474367476899157210369980400177802236994819550879808021090602905373359438579642797995628256365747645946620749831879326667345973803766375211332983830280662610479263541083861074834575259547856726552816180570660954923553551305129458955940586786678398233456076484111416948203266817354528244575258500557033470213762557152920027257910794248484360654229260405223799270352334566297525177977652569746881560300788271996701609936160712270975751243378068619533068429406152052008964855143470474804782081488975702397593603290636516039547682582918755878716486719763540946355973408752111762522851238725397352383414941321394304209990126897949917027092668601897120441830194642270836077917046481397413362744489367560756912293355155404964715954058899123604459847521065538917078926353837581551296471714867410948810398248956063387145051529363605386430215142340458947755572503808123882834903823906955178247189342233553165171884715708777763299155001314242942745746566414572005577864263030937033364301891162197421065100115312988554858280438081221198599686074010972599382931714826075503434065361744045119978295900417630611879630483592224872397202466722683452386630690708305207708533357579262042106211943699295482062200485505575132383364145349339368228265566232735681886703833061388887103245672706925077406132433082581402912328707633823915604511249830992962554579028795697838863018580212767689431408501038729657718378867535192407405361431890634307411507642609540216671837588187010723469799601733026755961931682107190681178329676598898991624334965778828061243998530779069839106385681781064730857581440879874475081010410958546401904104003135970610001703112565324611627932734002974308476754137490445407111192862794036304087456962879752176798467844574976728862822004974036673658762926631936057896331312694887246257394827341581689431701050211418066992430998623941460274849904156721742594859762373645831455296591062713090246479357608555607140270233971515796932221752672375683277026326477161872206335895718429853091226640820846774205929449711871756480990025979544864103404241955721473278174510116079190230788866427344236426383651542227810580562508762353199463846049712627134446048694619449836849328221253635411853188814966740947598267868961510340219790350880645526303681242061030532915083220467633162249896849330567526453258592603512960567111054495269299404773935882486445691969197142655648404139458463836318063024211501760525626183791262593887615161539883033274757908289921188895059948202049855784684481375190544930238207255157798852464723136121898652351172095653330653062602599162996375488731104895408714803079825424695048414304173365191084399791181644991512338478096625853266171817947170151385860187591430874632746908282057839114985490018503444539406262150911321309434761509729812572444838806749506108793204433717768088246799561851203505556858845798247588257419597013180890693968166805976768762197629040888745701096885998995690471643713183779876687383641089343842911572072268754060068869247049680037820224626579874006280297334436261397223917107311182394978634347563276821409934911394603966940621659758667476246076075125864249744658908847318854759426908869522248982442974748654425850438754149754948566802816288865920636986886811806174314084717533213568999202095194428625245763255269980006552092491301430296727725111487863666542436433977489232761863509487934706167281404569055672266193381489622963048664875005579960554268100620834455488456674354982939610328151950770626267174925565849720748293940777926517670524761258150686375149883708636106928939146218794678826049060057718823141335084584676058407037333786946168485252694209302472609241645483699388366141298942655916848693925428246678663492327233680568333963581484595925783857985409430634170877026035567972384528449181599919417977361231396492567084824797640993859399448985838856249724914327257472964483474504972000337600100860233544119987847801796507840787180350689528322626021128948804135252250247762885812709853211374757283270850996570873531799260488129035978034452011491769813143003722241712523851863668933992943077660827381467559582498542050870416450839221700980819166642454411497420277971401819727992102797476225525032173045856836783798264500071226609780008709921059920860277818083980964867606885793845317111233582723077124614169769395427427044531847169110216762511683285524556931256987012950796507144676457031980681227798284456050936347126884260367128001767483847444480273225521891245285409688074019049427511499089543133473253098526505404401132389839730766378272413608438773788643256370516107823070023489386499156006305535631687369376519543158299289473520034283487786482577947394870005128435646863218066810122136535523534397766508403505336488027184916313932997573585934310919613495545328877939043598928584383636138085550188906166997793278837008796371189380297728636403106919763877300933703780142385993861452600308704866178889277209673400526828370863012722956919098677390937430449711878624868121706584549282824737509069243510059490665499446775153990233674038160046854701973145029048086574820526603414682407354107993303668305760490718192881901069310047410544000871183026824714877774658259261502926772542702351055325834992472316570267415323356660771842405383656197578317206510305368137834055938101925708488357981758771171250835099138536609340387196848312924497849485623576111553509026848244570861846334468258797356882781470885468494740442413577521820449190441599049957722860031948841583970858187179004033600631164974284318385918124064143459870505878106416257309174196794829994255630996591131814880271968109256705635902264703043155199224508212801615448345809298990002443197785032074174085507385146378714352666548465768643325779442262477378041659516571479544508726135753975574130526844486076644567844346106823008491199169966378702632135745142489476763551872754892256323752315051666649178016832262745529127227694993707659254429121576478982365103207426663360632859519042035998629554527080108936598243449086674798338974055730764163200187793883984943713331080164325228724797510461910707322680552303111871828034820821594111094165176509786786585906694445643796784571923271857543909625912536238288492212345121926261070396865952260746378523810339033305223565151422927865238099629863418064072091084701135971949126293145837909644840747647530880629501896563402659966675876753917706664734670154177789153429220026474655472049526680836739760233059423170319571852099270117783235537069692004124494442969954722636192786651507340694570143183728099422368496770917496632507838304996002293200012892774749760945380902452245274671041611254705875489429571570351979774425013982991097891716757581874180519663972252433514852118570043071420306337340936141097832693454310721226859189664224675344017093743655739388514463923255500335997423873743610289856445764935796836323017116574423265215695335852866139288235060947751995302129906576175213970031253710952909254071565217789763444488763778042919193591981529618927647266251422689028129441112113555914201727557909659518342391391851130452363997696621752357643549564358027252712180749604875877651902601984128048617222214450564986785217731098439894744570252729932744664089624974042735148154664062934880664018330607907248513905284103778640536945727966035724769002725115743079148667993019455766723085868178810961711512865418770864942874704017302684438181800289716240490683330754963080654967013884140913260530055065904456531387833117747005030684633461410669992890101017153331179144361436968296112229673721967385473486309005568365425050282366637137862209774368884419420196644968120384056455689435684307057115366340210462459799739513233040958850801704564704140407976694018618134882927634691015981252477406802552782632429422710980271041520244103071128158731684085288579717466425175993300121116269139212860513454615812260190321582774402579721168456209294735421117247157903663273382387965049058271050050593705774941642081421823832180505914833657019485748621437303288715671623943436933162837527433607786705888900352215612438103701506057862460888839558321198892163592404480768865887150207832153100821303864169607193301105892978518676296739803679484914252837199101750201924256288021100057836637017827611218499436194289729936367173996842330017415941086008200975498149362636827808391756462409499119403447151344475341607022580773625412967000081098296043411855041002851076316882769011525962116889295906298901292248084586328469774555345677816115651027180683984685397752647140672023293459024430285257612569873594643624419321547471427410401045518328802013793159843198241683997886007540349710421813298826471192035919097713944534295452908674518719307056394527149091735057456996909407795306819889647094592565292271044792248365157177658413751448711351649566909796737060842485049253780732718961394095768332198948558615479886802656111356967434703974503411187603042650144452818585993073460994656421404360916968447367264816564150072471393494880263786653734188940090809714228839294854036109305595396284608730269941771764133992407259228897559449336085447012755392055440826623254996445718091718415669679465885139605284007666801375254141357836581739530733714187200110974146956391526355482756307142269633296263746529725042974892368218157648656424787070768988624841589141281049567602612974368407931886202701410810717708003205988048525194915303894261146471883679066338685205236392615363872132681980921257562549326723924806720546998560540412666587953073375626940750554755076582425765031781839838418334972127222679035113831055865238092044378586693532733112562546705604797041505642803652950053162935685603596573239317385739906250107387339770947484402438860780339009091949316152678180798899404401525496910744186756662612903456256921059558724926298296638027832205376829909170431835645825939952447454174800034793581523482429477813868460520763355001908859398171566700782220780869385526221692917793721694619836245714022821540545433035690890078730146312549949408253429417964893985664560370025774456531794341060359869561833464777215944077141680059103765733988910517967230862803484342792286600407321211640271714905753022263845961465258196984375569940927674798505108388019732502527946684173983876659213898596094639920888130834460052831730267173782779413005588736697537804488638279537343301830193065791642597574869449036095281066403470433221955722101829209506218665971593641407249293692787703849654365859669287647951437614885454033545699645437824742844028792654144707134489148553301808930735620151982414077011563780912920040519277321031836114571568884660961776652245712992648986369227852979814134322501721754175487945533351243368442918284441903366105788199706456578726689843402301270267073714740381749783654749343204200951236976694427184283313255938586928943683840330799329224484657493864629180145734996898677487702316486616299749430039138977813791848890100523612204181571722563818226559510109138834048930182855703243751157290255713399557033886022654852683169339866975052691851869021438953440316003407573962173039461140637266137701007576813684175819830653548767404477012836354742349874337553085581122998826659792349905730687677550457857374559970473146148006520443636145739196153057808779009680036936759469072662111497021849724306089428295537651711432612062229790685810270830154988563348303411266702966793349495237723191878600536973540155970004192975001128130942621324906201716241949199462853026623752265996424304937312961608907747531016538291316507721524467173225531436688309299933226972790802064925432968461062755047087984309943886261366477605696279639954493004197225695815796576561218067456075456974673813056329687599914592032202728458753625899600664895121759783349307000492187558360087597746716560281168246783524106735277019994724276282973119301897013178688681702101273668825123438343821730201123971944170696037913558723845421083784116449612170198276581284035750146194139830932680900784040966592145734465366836486835947925270887547811625189539054562572974655070894034208060419327321353572871439964041533956496360487070469582395409899233489243777828954456405518397217162151435940634096653214434419348927417704920976689096277810258863459573731971954516548599528270809814078973207669044866327671832096435164716050608338625673174056758753866737438763029068740892854785560859419111622086573598933196119896134848552813108531543441399292452328609251009147248170506499963743524709262946237191600646864871054039017286897448975286986806936462749590461704741404799529829351352784994643648805015641250018522066544274972665985479064299172728201368144513089407865118311342477107768744567858263537791402677755062261021899036403924912414111673180915627706982361019062548228529944868592891738996596426860634921100671022775729820709765691319575029366043534448681486717566340947232798184729293796847039383338225022605837567788950520385084853813359408590188361958323115779837881087665557843109682640587404699205573449310308856159147075117665035532090759090944800541238635489485020423480370657121739860151742798179051960771028095718779086476676631098749010751312948989554344953220643795880121271518255616620594414645124449317586480863826042145967980546185606221696526399390303134696961450634995066403460665552352284739154676306608315844849585840288633983851673102232963001893979954047260857807239700119310718662467567039093713654549699230883565122776521247259612415973683294669937893222927156296634418566966516940270388358495896952237610784542272914111149032582266888610774324247532093227315722081443867047920024051776796926674454998751322984170142038129451515453780529204246890183809977066775993396599070055132383749601746547087915982112391445581150004487591851856218804706598177078847193264561836754558266591331588116177500311748175833401401171381694845721234081638849531433393650991529482169481086666942703319011208354857532386041164124130870328429515258593807560115038675705655156010362308208121841179807508797062216743559635239524305959347808923981500549051167588712711940440748211357056698438759036948474514347387860744377399172073398608781692846208272065313651278817528404442101762927668906499508735369269426251010867832673614583368954996363257731253947391975688597657044792361235157531510255892775563853188850387818603108435971954739566751035475333818322178844553997786013630327564836398823280906555131472214517338824480434066091470184813683854481258799611914358287345005442290555620622170337929006560286312062833742383563864639796348382439795882213714586526364674699414456319029399790424539133251399432883570693997744329291841892604978259133391204682748117751629675728858126411072425797517522372147612995647385640357144901793635126038280661834043310382822487611272923924073878357638807687003918532915513859680148586999975511709377477812245503413186262453032297491847636584905025170036201786500641316221580525715131944208476808516826364740349590355471581304295900007307369816002729430424313834682607898711172205194579860736774486946635177694481382693902291632971887441474753874044244834058690667133575193289719434852270237570525789086157536694495981212341688545626277829981366506359005652014169777048021071083886543340069189743369554630572412852078760832225098124351784672513230164948195781655099850704121579177016678789254068809843845155924118501428718004073307538017642585296491363425007696789825503939857086926086774424256688773013422562124376573541472233932650865671643603892630826378023523493062054463515426544434273332955961947261245509907405016283054436954222580568098417969736193720163524797791296042358219868628299522373297341970497125397160252507677699675107327705547252095218223566329309813753285078179917183377262112455486506120613166774212880168348204257836148533497528666504222350350638738102569845107643605233578749536213251420154320666806389348287498099080765392330243150538786131696626951947018227055502393586199460342440953791053031275055408766509947227296148370435506916749659354541999935313605965423244927168972717299059836867485869440058590502371944173419096152901970019997296789926677007317317910020175184631478371313894563387236515081177614137537394084466461505103708215698357019299100683126155194085183702009266151729628047847051665703157963750934111843043019293930470147216001202288713054976419335771222630086272375859189601638768121312225252211335622712337567145546202241021600945966319572251488908993580884728924284035361580528288769459495144406087635680414703005911609538833142810310927758691748853751777294324344659557044405702027840288280028571208282903076317139782336215517655429969622333072930338154572502338827585068101360270706948989026759188289670517579638155636481016123123005649698855793879932114317811329409325779165919992066128012859358952985353824818535616097830580697514578765356830758899904686344663482319572958223591041669387444456557342335006557775000092421628137876272236531989036360269119645499184794337030446399530008599523972300453577571193628162284563759895519946704270502473333116803958969334242692916848157975495921096358784900464819666718307386969010247320833695568695355612436066695137157624566797017711328308825207107207102002921239638785875704441539489671085360155773601043924830347332705954974062985861257911323324942165199215858594028980824066606419821111975737286910383865060529046030537287962591856891546918348395656437672523837907205835190859694893332474478253886607812428655724858573594787266511392091006839024820196149681589123466281911829979523745701552137912636466285832232343613588664280182660338321287184035357829058888312521220269003468549832686500521137785513655350949500051656975837221435368321302544385707804458947824241442635447268440404957357972562484850697515042926583549847075310247808111125231598944112060985437705681865928703693118554983673115208251348271243760637143362965351496375998268364961826979816499796147115705397199045613150528650714944883601582187845564886637375218854138590954622244786774257000412190954559311138210728200149454699387532625990890403930042025773783659397493259341552692178880345599389655490593627795827285539520622246604355701200700925376808398054599510769135663468218752518471059751615626153325261336585914342191718180564106312662001107726916182081448819200412110010261311217507892225889464357264682159967774596249199521466831922489856412002057950335093354739896383695098205278893825967661821063090978657903563841928996443431614605893503763323124632709356929012916886447459319232428230593842206551576883848702308681740035670563250067690598922382595476769295209982765907807089703876546379473097070041094834658604533093929311741105343874256604285125796730995860799742970940231942352357136441463610903600231801026505805770468778921226286756074115598837771752714481996526081716004641720080374921888955867357224546269447501222965526323502515954621185270882117148538851474063485121882305241821757926445207471508381999557884020127397791357588057927715922672366700120807337937403211219938380802343475430770885870551963658197253205178377739526270568582049431678444163287943935101747776682964787984734975206688965392042939063127790788463459435503237587295623064023388030327956624606849255059583434870559126085424052311319670881660172041566860727913334256793807742370086368134783788323086916207470615548464977868263744929249529848104320978366086549556727088515675637406097732164276066904425638558309687395887846438542155456511290533559390086179975023081725154994383332753777957842608982914422267555291713971134169497040005539461366675891341222234685928874526277169965760539662414622443945553982102964655037917864606670556299881111472814311384569792749749933992777967825558715640369608697553529078357352821474553250758634708765599880468942726926147741514763307271142241275120611819848533867612370589138559145421989211177678194542749769361636677260909114646538493518396270143773958450149925700558534922608759192341821288118599558549427632512749603861899230699099689527659582831643203991150077008356063341394829848390353763234455568781144941832397152922759120605185827466776705426377409105777586405686555009963871208898713811759225237900684415947485336478890837253499045724238119804141553129166562738952348682937705806177980476703846383130148944369105870423469324024622611262696335063125492155057832404126580846522558977343123813858141724189722114633373383958539300252968726795013671712066034508233080313643067935494845427683100218062454570962699517114578327371053011342054093391303344817092583620556131920202453072876391422256794326197820747945536475281492073166125561325792896518294183002203910766757082276587661532654973012080738633054052475606367176945260518697308914674836352956807732297963005063012273722218084430201611507600117512818222539014828057942806085990784984021931773028226647720861096421424887522894599505132248796726140522799191755012831846038429852705702534465419241183498746495832069408031022207142806777059029477767727743617398031275188525812028087218766932401408990908958013174413141100571285376743472759082128121663714138708423006975577310603091256247905516587820483912413817602239250215120470780030285198129774490706374395916889079906611968091958087651173590459149956703296463183726631142870836823115271198370360437101763399739870107516110089886195357876835331116514277901559641508670482032248500244694913389830307586321099435700303799274061347941122198076849689976308592953550930228269018066871655692877027097404591472266518954705097846203029827675421981209553791986228931029857452941585628827563080699878958539292375396951265480306310441274275574205529457697568964976301669107472720753060828457357087576073851976578549818654877418656945087115713590804791463577669904023568422957496821373110931043274282887754785044905162584084959643101691917516190044702112385534814041026308348367220690163487794229034616058056859709385958239862930462498635546246382868277152964592118428485899709466545286866816621200365243826987850133690192482546518398450333343317776542046129973909451273529686524131902624434976326994792436921591276892269228902969697222200495199480232948494821557823743935737468479458435605527050742886262689523593680902637624437421469867227743336798927033818264610547795815758694639311890042397899776005531450907014700470059361022162913104746694244107693654867589248572993002446681951472357098084190698617502282029552317822301682930664997964486597188793084102026367384447632381067821799831780407498988714457125323261586646649283929461443751732028541886199939101758310950192535577824611018106583342846662061742336566957976192549753541592611826279365630563772413225928945943698769431891827424864836359761084537662257442287267694968531633908437008992087882556606737970321570190878445765623562491037118097314699317058629764005809180689392816022601687878556462534638892590738265277414189790178211851465618023276240355765651083833843457235455747596969160954377257626259260819782535438205644913854367164406437271854256555778853257003063502058386409833339166591035092375611921335145294543263897931809362669587387981245832839776581804634006611934071654830642883911483927768003554873145598895645667290840997695305207878488779411172070625591599655032557495896075360612202967973151145029621103424287127156916243142531322657938554600387383404357978810873120747685318915503081520811060882599078721130227778093408994373786743627458314230942152704244400263812672240203895186292101547035855909616237533572050206694483872944417864141410179574786802730106081250489332828620226813518885630314656034966299074180262624312271268289573191319077213611690288018525700682574064199925602278542490738173521433226304588223114463209241722900687122334627410858391381265102974177009408814965242884600896669135437985581508684608593828884800229405309375141871009040881286130352071098369533032102245291901673994367756585009281563943572034329866340832255772401074253707776599942379046640307278848088908385866983193155239051902257040972569037288417290874882826791157862303453495426208644333231747723008982125831338464809976171967853976177409571415473380446941977818477249963708356892885005657111980978993477920889893368190111643299852270018719183597469592132318103582470733656623234884035808615402542450859601464850793933728115502581079991254251549245074654950685363832699149627465383353442204572616111983013086235249005115484241961927121056426828187412320295369095919772262047134744286845020212806435059869503573265305374091221692984425602492618674939288704229890750637406051965201925019431702654914600377624898517698447480661840419514700100806654355203159932530945391203424473964720476687666847264571670067704670013254732539350243696764116622114453128729120260918100050398834685121091888679758439482906460185342281215523418999311241417999120974304890402415690036077542630943895271827808681944053110136028910662907173084123568198632565836555813867330468096310310039094672422775611719788483784190705849420253931944963099129041741427293583269284725082910208241593140822628581294151127549874875523191176630850674806704478757779486738981451528896030082665209252380103607791659944313731480298755405367345138448380131006938373700315388947443223480164916190056045763643445832659139952534381171859394618732661164523513141668352208420617969452582929124240437735337401829136925014229582043810274943657982651798094900753447994851327017229053848366540798073200853966674492343854824671371146917273773383418999356381423090038018828002071405000426493224084039446125800371397107743576990073119185029564010409657320347294157269796620699216096332516373407924678568799006624402654098294430539440664913954472675919483083567570835610926071746589824724629384683454166369664728439642472915367384106719999909240885209177804466691507477866773601437960659393573709491299105007874385136572647030968409020101940214398843902778728776184802514282326612259608865678367720524072950573875963838003093316321153199758074602167641203963331578097382467429663876480743621938360062917590882110574398227575271542978564362453138770094139091936559947340854525050127488560346701049523221076752871647797496770780433945716773371693949322896259008911347394125071252533947097174929829007676297204136951015437145226089262110523096827886068317335163958923891564183839898102710717356119748455706813716291868205551224818520863667334930234403659461377559242439295793541950407448955832157853864870994829535158317058935372085722411828177072761863981977451651320677625933127834679462840135488336634021174499783213032761455743559988173625891517391986373396936063521677842105124452996052068583525715133280709454961261835858750262012016919558119017240100291406024608576613514702935932875890228134695579485883156570618256212972895756561628902910883453613729103291160419625098730676383569822444002692785168569034161400646437862378828105595098738632449117374453721699873859983140202027477692530853697892857773270888721776118681113593940822854415695173684131379600372721767265395214802257129577143702653639967126527997853911374794692430523494197482600599746318598297439079769020088248979043509062865298797950723765022507728707302732632774161959450800650055891316677766474856669608993945441604485561173406329768562124219490391367298003261759930616550882227578868100213254872554310433166853461291216435173061115393296425875490452844592024689283313391848879272248453224085825978432065131303328075156838254739434228329619991883076069137201419175748303360179497615720361524683446159011015762508971490393703971166660209633934734583791313974499850206848106119511449466642623018307858846569430935812534762214200655663162942586601199787464295453521406526606591725360518714191429334622961617113741773853613661437364296840774950090056701533511288277951715332748418048906816509134102472204807568838737115035418533540019738534439221339815051899579009553217989049978142013212460473111234690485832914896581607455718175912033832513134754531570551526480457296500620088360729585854558493059479139074838165627496964254933540588105392905650471808358649595779394897079698075378070550940477353058710429057614460845938574206924762772283376288064587396315646496854619366237014399105744138823978116925418204564238584118563294498564581047823147471569643296892892582836049271238020279454696574263654440009567372178686479261125166721607700523535805711366082883028229639470411187279770515662917613193469660256818984750749528879158465456509968088954486168278189725921222636163498412144465337664709305245221621901780921545846102633697409116700988478712851928302145852770446943919121445424253991190733717773983246591967741814702015765360440304416080289472511966935826942064391587763886947809600423767650193190873024273469067809040132190434682658149796996649543045074317917073869072349743936011420620009606866659689738146937993567617033967317146931411492906976875934209416380233348359771206126168188878273110233285507541718111195997906829178289398306047536239091852299839432258568131357033650618206940156003064658384370895842397634769310061823337240802234358215940821676467077211663847470608095753211069728578384714996820538145955061259480533408948527635562368653332595071666189344956153540742199845523067745039286391123121181657143620861225838138386855059395799365397587865391099098085452529078883601351082268541714889491317130861078989052313656061558978253369890889654382237753288961125784332063984397626039909224307531580583775380413361669409599123049049261700805538857756450520064873779629486995327375049966151917354831092393565775848415194321660494930344507835865721379706298237063725811655498204897739562249387219179514879491764763917757819716001378936406063283731966524008126288067296123501513520452063135619200179436382709969200756559540702242327384036460526734828555025538705295954061261380101788602677124904554322085040508057576152167296132666462395428787539736158142592996701693320370778918195412057369690083989226570235542240304248424222247614491614425936730938946053377358398992023946966259240359053338606961217996282538500183218771862077980117740076972878533076855477944296058393655206478025455703538115280482797709906955150603646425023856941224152868569469223577533913754294604118445283103926318813024043027339993647015318777683616379533331459342300169208884156756148728148373614630046471061660085908892556132256199643781011457356473212445188086218542260761586151204814076574834471035505733157127397576384082112008397158882569502348113525894360411055392921446535816598068859775797503167615418321627481258504667016032687112841090878453778867339546779132940735711845528886107662846451490606575256127241215776556729866976455540301802850102820314194104806622216583836796092816778563003550324469959813421325616901890199525834630912496713180061125011642905202834710438637256858791275923522388661694852627383933347281385287798233300059064043067404725470195375032064090359938229286394734527172657634422240289718025580122940347842645730271563290359827595660077352446576666922391493746116195664757404883132625155703576373808495735441341111445268385261149764940889625309783122260684133019403786109729540307436165706042880851034833473948288816657665490346159656907024553366598320467430183256911225755928185655249384313505162568389039500128684828380365891134073226207625336874035116026552264893186398384809093045358240572070448073985012086729011405244721965708521978031105713678278825011007170282115599351548729181967905193941458476675360185455770038940313893248985163924705009846025562852416354568540454747787031310197551129092349151063164632130391150611886314818960727402140693162790312685746935009303872865115486048192779816716025038014280835716710841105362942854040789169524247085073873644177405961210235981093103984124874248331671742486586674629832893208907219010916505309344298062376206462085516936200052171852728092199318706109525112632350228164072234141214220648862856704091681163737763893522067188894965896100035976180766770963711218262533509855540098639253320323185842008965259158806567074043210441044485452188053816827079090614264187313802298190616367960232610187119510959654555506872342949507459139269251047614660410203836725038352558760905905877005265704349862535136910009051708256598158934972469427054963821340013309181509346184542388079077850802266080814931847942743713290017243773242776284610697191435659764415662252756309426713204959450531755554270034439366639038229286885730821758500864256701008558553268864731784871088620853223691847401229878148019328189775096721339901583980124031236181070364059680504823842099758207728514607767736555789196929585247645965167600711356057636836794843044224322942520892741870201938676488646168125704944998070104035630231736260150874874672444507888819619679761257215429384773588237883059619669625782501420470649939793709847292440091705250419634721131074029620669570798963358485366105526627363631060396357055591630938158863785685117009902104323060447722180051214659891908754512794837036630894079273873585049847944800370983461425412964026022540025941069581386346276885514931863847630958088170270256447480108494867090728766983946860667618657908316492482192104169739963971999638142670351884637860207893457356795394622451732417337843160431042044088947713932292206890130238935934915489302911563099833277765094768727581141803042261145836440629769915037886710336177460911153061754163484685911692202645931412181657518225046749029408247813429018032843077587619406958014873294261348521202412945703069260318583022498809164421248276556266547645354619701509098812801627743008447235300226145259555691161569434012630332097931258448269745313965805275762502985702919941662220086730288813853524480414800724654528322524507157667299011926490646452537677942012935559268689868924667936166029974278325223475256073691688883836848835568574628212293843026234632148249160362742877071162535644498438258533775294501570044636467791278778820796595643114495153114811567355134360009975596177091997955777387650065385614789223198821193538239551909743963275668125556378507152988542901518114492779242442182575528588624021565359751745105224538129019703697439560905756846057113633705804409998579460883646025833641175049264925472482763217164027005441831642464690915839150409615869686907729058240220993218832055066290786344702520093692611778001739646728157975652056338723652853188046155593562531939471841761601234209540061609014619399174993857506520132203832631079672256745649713510782185840512308994880633643417646042263186262388514015948844350811607595758395553592600153450069029793360799189195222305656544317627363479968865802102656218405325613611725117485682445217246794228149481236574789250644033394816666052717638041798683413176986501914845251055366108329837478409290981991830537922091018529784538902441082709858363521943859842068137052112232915664865962318009570644344283651064799128215706270650309742374940794280007747822640313855233217525406458173761785411762020330104442445905168432597908922188302249011652593265656929858040511188723519753392002079694063031258640187421949487253393620362013165895265324015976474591580694236079124925935982343622490773770293608622400030746481957976578207812967985875424242943587965560166043694320096987676370161472424834495576327746755078699219894096374003522717641157080400460316513667209731271663564781706708121119090648146116174981018318727712600207789557692218977717150505975262292921488771931364399158265203047563682372220554381829129654836951275373905902879488318908868841275178700900937967924401448046546519616613164020594336050420096729103838324347397214276286783295853716517772135587210724683029578360609543323430263635463073480968695018160968249848906327577497932271727382389224769031423732036718845085107755071332015099270261301462562976375700197761840512321712316924736757540255001374618462978050056104448343172882935518315774110008770762767425323841286737391121472675672566374447800081088395059226710623119796062745195316352291090016872551172240541220054971459540843408864565783689985115761848703803781572596568154026461906260570814741875540795502943650970623211379336292909933068212146793805394602779544376762455997024212491471122385963520869434183734350451122132848339027859140254594347084007248415280375535244983838262790983983281880771846535826991154710406355160294290526534828909007948858515271283824384898327427801917528744602094677561886689728895273338906474091143847231739195263144239490755926630381839536715741090593671363138737356032245135689460519578045118506983588293013500329392224946698618098362088162516791502865515810828498288171612143850822209743180187772256038148288413458933032785933764827677825637801522813546787117505897936388597788417740916349397754679084560837719029647681652421468351713072894292939735193116543523121022551366175856859809691593178840276879090451305258452226732514706558234125823302156026712269175645699983151528472816925945825559139987243067795495993194103471120225494641210398954902344213721700152996293863775401186506844103214882793567148641990833805952684249540254325901195567310295104741829865005275583951943598667826364848846050011870909785687305821172464608191551050914148478762867453907494542623730266799343001819935788912004215162071942565758144775459007415324296453133243154185639571209939253514251237696040788378624361944476110778301424846133451956990183593060020945923370120256287169742680215538856955854638985157006162636268334421514672305994647829173653129517134062585723126376046620787124180521359656471230953655986457068760704167594261572049696314608224377713294719700534899521796989360844926411155883189285476104727685093935972279738264586750039998199498201261998002095783251461904879279459438384159300314316261999315370476994377455458282393853312089066702226896479444819299274092575604817081574763651388978825064573922217801135924281677309190633335336128541434882059240996916363505455466317770914773698265277187487778191744869308581582898963656162603698286466636248829960068715815806074344414513907435106527463703605601434138679400526848625406118395481659889952595999636514244024188728015252168177942748688961897889230143654716409313428367796529161494361130237714358086811988859439426805457068965167352758415552534073343660094267493425191697755652356477267438387182143385714348219959275824257350273269126511458264228825209459592040822022594892276930357755028369096373166856449738174139783390380850354993998943563013190677137294315481830550519191233288460587912466542725675700621004921165199597174313005276650006336384292163323518453179531032340956644995644036094668569231708834695284914057123353987522031941390689773843003083142347038524495152554088000457196570250590944550157382335903581122936470066169811715907927447216947877677030771942836651526194540569591910517778075576030986050044702435909584499955273951082583006232179048911695334114892294002382087149540571707331947493807057711480236845554875408683773088383648632741856788625931303902776722843199280116181556911267680132565081561215434446214080087653929379987071210570236701022026039405869152533397895401921277982920392009628473046394810582590548477415870119353300232385624416450744611044330736814269805332424751679600198456947459596732573516487520041463704527218775494049392683775489207586787700515695200044246325745201592578845817048716509479280689231269724821119725250666512280729158534150758946601641175194449385946556006284077575227062993021737846787338975883611839042197517574916488786736541235051649450612341700419709701772844554345242199558441450201182553775417355533844102863948567643514244575448977497776489724522550420005297501994377450961033018060006115438025416989619455074108908543836645082027651221396759694052627149121387157708507423844171316139370445481623796778269593046839122543410472863438537650405493291016511375470251812906743579076061466399419490660503551458813804652108683233151609081957741448541802224895631401260861017897718352657119751994054758296235485238343186731034493958887000700818669782316769900863943706989967593655912618141205357570900339019078769658981691781709678706965558021583556616510589959673717137227938216483019037450339540969659197039351596791199594912678670469568404648145890478110381084344057624310134692872146437368277797680219868113436147034051842024975436974223178565157129578705675480449188120893706826005112658922966041035629898684377382123821449187314969711188407370508529858851314271352059200545367889467859304660606196058850503556009538769048525932034606830608438388305853175102102067574640615752815725209997089898173589620129106392764578490988976108868124197264598855027567977956598164693417887684772838887084375054928261406844777648848158284091196482559539826191234488081830827971978413216772953466157544485530610407233279776005097116265014698080735086101321245004359000377828569358561987583180157468436132767942075038506912506171831412452190039054725606830119854840853013987394384220481520520327026183336787836937323857824319587361754889786042890443383360361787790436589892367911543020694306612985866936651079214370001911859592295733812418698877887547038453142239972613421588640219461738805103015128377019940625442636556786222909473576186490951011520514438385430321423779079134218187730468676823121759358017519578163707002402415353884410975553793546855764087984902189872524761885051826436515263804170733229558932114786747561203515960950066887841406448720264546894562075958838638164017528510135208783297308599149977953247521756690433481599749276548972102168357942841593500505668965755805493516255583409405012865811745022436067967512463330121063235613688650651903005241883131483943537905378358728877484973881616233116303567486364435497414280344625471545107033242530646992958678845781069852128989005332397761280748496825593739478361755900835226546565328479453179913395550657274467981045996318540187149304179191480143742380721054610820060885927287857893084737743187982348866877652698978120350127314108078388537212122541674597523743072195691648090570775449075727648215696560485213588071737001927244350778285122889887125831542019110509562348282998313518432720451867315162830318292455896328526302347488745681954802224947075205293937118205379415565585729010666385460255963216056443967917426630244242588865199332859170348324839644650682965627058428047840943379409112348056293515515363838682058848102571958515269677619919387413074421240461749232299437629127866602974424368474252675669309052889520850583524950625767179042274046550880722752903434688889578338596029099435013234725214695045445370722688447533824074126201594812450249962534168691239654727542228711207266368923865371769101274252820211094615175533891542624337873753711009227226096960417663871714790046765203757690583640008302380259727449099261114507039565613077276032291993978079534853931986376689574779684900746345321690986264984244698646504377375451337883028378664725837901754376418419735440358322267819710518549390032359857885514869048503453208405007288780744670415107804961354319863279416178659051183409081190901311256475280495834699085864216907428617024356881163753357457057233319768516866496091019413937576468451400455357955851825023909655211732693215765003770655180805005940665736024058266574702117449925185656897456276092825522680332373814327873162764990094691977328010760372742222540930811908325078224848315841221147349926615386038132245766863754931045535373420306793992505888177881155927513359307551449813428897172391567872687615304983716354317960937547511054889255781701223433919977478928218376502653001530927308651557433768997086512733047126424036848362241359675314601406373067479056442673048866624815575823943149306498028943517680926643377144492950146226455565068163147749415913419666212633215205156381201611592932254070708686674885933378633811250355879707370893956611083810999798601140934379919840662981635796162411757725215940857764690351439796336700326560104989399722117273260215164643389075681276705860226813090873187028682267888812754184801436089734245984791905360576142858570383056281416890876566117851092394130835014141368316331184269386156191739805803085730593990067040587226163975060540008437191028004437601206661267796085472462705439189289625064167505179848391528801069218297303428646720396219952075411806161687670318997717283404703607409512833814545773116494653108410067736217428103765216104771167901547931397741991477965261690645395527531755146332973978055983066208750506331343098076174231153166396420684249855894784823947972164092590180005670188720941412848721773157800229950665848015215691666032227953696705409963384910694825414010432467226309549680729604519538917108865931659703381601246408232784090671821843682428418130142780276193889470551858359495123920227241804689704424942953420192702286869173028234008407779092064902791240678858900964634436873960625063428410133498400691173542235727386008770345948438334266386978696329158143614345948596094385862372887206521032534522067764395929936668875338711858446635625156459433915832889101216223127495008249199634853456013160502121853687189805755840150027826213834891723545050421685511104222140408698402793103851094739454237837285657078846778527229978470814688956360103692490061121915036527487878367136792976714416856895476337603704447647728438711334605998621407777486186124153798205052001488786000452800549530154347890237258623014038830159718860831077348205884328398771583313381162686918826215811791967514267558232166470111923555873100306499994664508657518901267742033224003641732832940016151445279915192990672200126980309057278109936136676409511699318581386384333575691327427100122934575907890082829043903105352157176051259554578276953612583367536821512381395997098624223556301413113081260089546423461628080207958588162895869053469727123806051321701058939441779251873034837277961119907975307669135222188798378880218517813541237618705905084718000638674349145642032856165951509602128719770948155883642567843663069318208099046361578747200705616048163209187561981402571198876163711237864624939649372330748761679693365469096767879119027222996405786127137455856192403468400941335067775143803293716054885366355764736097662162899495454695553495979631837250805739812067412675478370875255862266211814812849710088960368422423692442056513970257768393692919389212639200969379550017387199244472972505231879710054039471117584849786430696637735751069570520205584752128674526007760008260284433715338683162944385046171767929907329741393940573620722225934536737297727499767299310233320263327167868933301535209109415146178983556729288156966071078958842732905509656755733203974936496611498955054395754454193520369699382672651678663389692821072960979221022255034419448518537754940597495274784803991469543891846923049111989463761333181160502835717014232091082371555637000608398452677024095811676336494197104972137473672818833558770708554456725409006701715116289493955549162096267878439780775509731748578060020670098026793175301744633594248722537699073934048584588069522317323231665942750701963217795710189674080706062890373594079435972819796722978741822500370754736363853326955863463436004274591910646350685312364627101177582573819460162883704792780152587430755831579719809629068470739861162514696687481259658494374002131819615304894765234133113275729094563429242300021677708714279502770220960066499025417095241792392506666734144931555872304828652060420696302217410070948393474485220887260204164078163274933820376673235419976294642759752432761034953439882193198077122032327642233851429234995342602164834089534590246971882795852638189454827083592768402883842704416640207466373060849834331366250707951045320613384257885721902532383306393496541545466591061802017001349179452753646411981702053327792128068305144232782107256583247282299300205987589578308553957786196537636714607666274766870398170011240085717561409403339243428938875631069209667658163078142362035237256958654076497534954410432961579385357157570293353976241962539136515956277779850581577135030135717630522455295431989131479928671970638665223401729871217879455482620236878640957990209476797457142122726973958392501842863498426427942038509638324124320445037580817710921867844698088489206502202750935940507263057959800697570707284661764065526657499408835171092082297876738413066178482655850250065637991984293479475565244171453028894141228393868654055950777115226256011907445321270007218386125218708594693183469107028328806997538630617529419425283218714599994703155680703207306305115262154180377328920155227914012875606753837150770177152850467360456006686820571396279984057321372905802834994550468098097803438265661151435456328998474963146504485386002142446163826375605328566702288590130703078407595470145067234416087089121088297264201774674767590586782201864815911511415449514044751692522899863170943256790899108219055054256387522490654384609372846424899988266742312870036741076629504241581174847379028028771679264536470822054095048630746043884458501016683532867725197719611398531605871873689943944233448556749766670956687126683075157068423548591781869567288424008007149176874833426439863540616612456570991563080241685829689744016942980323277663854724944283650718094135758157311175409169024337829442218982298822784482634632063424892798053636463863225637993592884681752623296796384536543537545778895999076398307058067066955697307895439245080705275349733977818159877942393950683879531943978137191505521996369479101233534556038261897237861229589682309595577813416894660113778512164895202921938136637559221947527682883805950974014708715432584993762467476389849078057708341669673473447234981526955837601397861098906070269220687543196401088622728577354966333031727780142829267403419705070482675889074163600934563993897666370460084154792185602739226227536177618986486656364002530672365523231973848388316919859717138146776136652126160639337102177000640874601280343718150238687512144571786992181168305797314363912494433264268650069849310013204620123288241786419564373687662381916732804258069643485740012588012179803497664636353290989135128286213124459380701433143323768590133934867361345851800514686072268293761355123598573125721349166609437994240232449746779483198783415930807223322553831715540740220274129231705616897266162629474895151653377417664671207730372631848048571869335874737705538460878926599642704836133963522073211893122224720060309832482579764709421868988962062551355185241469180933736280479796765115548480991576860995284178006202440023741560655096869518314702686307766992355217868346087490417836877211932418746335248641138226468565101464612115547614224386793889910377083820567402125687203925408992070325354722630797864655134101114149811695775009586348894209791311019032128996518464970097084841034132786179920759813580728976333845243384828208744071578086605574409073109008774428353735585425410627605065020106726486591575077478769066490714000619857871679258048914629453791735462678875605396354287106369653050588785585550741311641865089503807931090235671266210335559690006512528991598732558257552839074857792123877384040722840855142163164165036833332510461032633211820289020913306433473398328931010901032790871313012385932212876157798205581660423682651860897513709018129598669252152794685088896995489593496490646567483501090366250017507769601228518003684955629137715449191199982204124442500446298672939197963476231122068948603023706106824860803621143465648253785150311254711988656285061888014982214963742288546434485710964349707609473704366916072193244403361054678689384195211326942895802777340254673896704392863102985828300521043372090455885934922980497216268526373671293765555299627734832904694909048336786512297409592652697873885536809214789756334402190436646660851433404624979411369362807868429140860917542350958294097816814873496274937618879066708750792502113372630076985685852552498430420237343872545173882570034775942076091836972170632252354184458566552399026553851560319048086310437627780555598941411174583798983873410351992590431494938864297793208110556685618059949186910267051598739135776940252505783513393626351306890869836054302762966498349877229082969848632504189269051734524083912327539865333794940210758630854782380661647078778652519670312893981041106697323468409177186078403650117253753449701182040823361804737388213175276628694172237485807027418475589380841974667781100446748393475460128563858600779349849373714608466421170703154906452594940894149681709410319777381215782825580860218281478605896981047836535596787751971980273755937787897374983270392958471673772725828911144627194261183125137000185342239265162975513548021666046428043073722458129325116721407262876537868478454090086491505210326496359969274086921944407338071734693600538758769941981458619330199590073980449386124264264936551842106399206935930079462519558567451048846547765835077999877991478059918962678358584775632203642601307108243811466814034593923457118579834392756249898138407305882800893585128025074833128463507691258619324106840436154353978563700769519664931946144331111231076420236176029444052245172996727876610336163565476779271231443520300548902471713599975735004593647821810998445296556503513528551690207799442874915279423462263722329798867721420592983336689577495126545916342769727439220972256477183553294754281292736809162017631790245189260550047218470829833186209192384415816553977000640620405761157622029478371206789240640368184626061828564211494895684634282417385867952446230582826419587338543976274407166835947433437533899242590437675683417169568983298403575613314745822960625113996446145662342866446866134224995029697340768059479976475291047625441849478255560749315370312789179462500003320788783027785626695442571895092150499964884777098570878137207454542088146003882344096000611888594164574305447356728387018361675109440370722926268613656568831418095061895534252917776339020038865729567529110314142283621394538630124063904889356774160725143255295500587250375155455982729136054868213351058355129067185532124735516381982210047460212701124264019302284238337726671164814241251741490499276683660453902440294839617990424426914239270254367134886561520445173889649014655757964884908420870091111262721110261013962162569694744409990489681555136643391667677998187926953208801491911507026204371674002277145366124832341994858921933964061068430644682991275431452129575241803226791271006749132119429587883787523167443298204255291394097513949579384319332521686294430874946902621015890747633936526773339269073000681714045228740976060651944987789008310820279699904390920186088987249005734982042322053359545916186425534155153181988747734474001758197026451652305194798969189368899773025193499274046331397709013212387804870985947045142035966754693773965458502924777041685017854740149567977212961523503901024632640453036647001506882282011739949524670890261828472524938138868378808743766024069041765997923768049302179427282021725853785325105898931764863998884946561265524310025668691390576950085996721448069046880649129774834803340811924648651447935178972848135169316960204789434540220288796145693045619091841202234707092880013647873227165986335855327303783446783886309111374476249206833608688659395348468206859983381238631985105907778825194333041252847105518454172239467764094069705625238737205224254405382898721117212885173090089535493101096886559522543143746462770605200242111459711152167965621899122606489056914837061433872666132499969421817476526211380159806117443652502844841725239221860810533137071559436119780864551165580900442809275375630697921415001336812521650187713155316806623948655510828781401936055662145652607328226193011482321173123667101270210889228915890887149440747547809516301281927508767134942452519401178531450127804568042401633633539022654858141454352522371785564368141095827285644302371997290203468794827819225496560498468069835914131037607923156265262947517941481518405644217197748011255089095213651979779031367366931310841771357731301224023000621223915102925324040823674933689665054282621955608014392598926494899291674601157463677762112554204233883197610429912918838847919264455122023850015070440361435591917822119438170881981124685207130344307644615951316215987678226821441918472021497101345796214740577902476476850534356423549342359271262054080670592306654871433141620849828675066757838920156350322117731185669889954803831994842931169847617749911801139063923895883147569576485566439354829445156557242008355256932813010508992505076053130081862071152906353305855734676603685400017213060339040928995343823856684792742362068662759598404586890831910073761972249359487693497768007054253974099635848746339317021228173906073096275890527512465504395598679515788470325488672769907850417653165427576357423184389886547633881111927689047743305912062696053536026974880155947207946148516801297761703371723166157583056688942376011512082755197350011741422755097791832972247306673683929334177099131000241296274887150320574336213924943786041158369266583775264921060490601523393454349432152507399065349345897560648161541025771755504047822752920206242914566519457567871356235822621903618283294523143890629935230828526696940834200919758430940626485387212954005883597097611852879342285422338338739344780543756196370541598461030541768663612691258066818976806832353706698344672275848633271825335804422191969386284791194324992309162297916520129125294373177527696523073777607976614971110368018297460130298344146169282522239159698240617527472666783584375889242683578701038158425580160291977936703623769435502710463505545049939062330268907298029447652105656714813461620406718446917869344006356275477090845452910017958330784054534876949392033870200093695205466241996945482127657699786124271292810048906912809029386699008161658801088827063240916509856218255452066472209793276310272179926448506646468613204297670137830825960410205748826813548438569217772130746660923295917764673769235683465155123863210633823276465232737342442789155074866332431777838645869797334378088343274476610886160417745453019565271192568831139744316605822612374930203871566586497238420502728904196189596816394603450145371625066646315874666955132882698076878247663799693422469761664012008958042014313244084694167718513618454152802386473538552824742706216599671026993063149668963306466201185148527400497900867551120515601388041385790376037982125405947358070554037066951016102809974539799023129237960518736121451083677580476707110507178160418042633586875151061937878077278161015297818796831055002323048711152231302425283080014265585403158750602259039000093124538496041536015899708655608396594128600292808347305280923071370102053193349665534577432641825964919293839769322126992486843834689697164685368507842655754997437650187651227324910015522355200625226623664014255102194853118473742024662685366817417666566171833413417644011002976117084942856768628328864109043420035057040597440464719964310112749526465975011194965475734641085372991642639387591460205496710496925121231200952698617502454711580512428836900852786715236843390199971855976111306523147911847934323670134117481244586976243443034038630392167586432907207690381699486521747816290161447133810740335363173616399885380536743077839073586047122368061732568196981856049599525127533700184930378883571637811964212655877978690370418697714053408624942675577846557873565999032368147593481378558371628810822918266240966918295044485658765741549819357465971440605124135288803362180569193636620763387326784666112635788102370307082576832034117915482016956586951764558622159234946254824974899301297100711164262618536483582443085561686571783986989486089467056594569285387262282864889755643863879145901646371700943611307931178660020060892262259918720313573747838966596791837316860322452031612807059278711054574071650328076187739045237307552668880487772284888791961173115251946372261110083183355600039439986977750826871533221393116939960130218231395611385682312414317034779406047344692804266715990177347315098305621736833810066859198531890273894638144618234877230173626654244847933598394335843051689478966758312590547870401826691305305386867433547907720350956550650793586337971134018719379947491873934252071490989863465215694987536854490700398218406913365709658636570621669380534431822187738364209207040652570195646664962003800849732961404867295046417127429864783702852325894734415747030257959711228474174753422879879715357239126032917818599333611196786099388472032589925927088849655037602407716394366134791372599975605694984938074176824166503826769914996342149512821800227071021687338135738225530532305888960329631206148361045034708075510645614217047940025306198264693513890007799748409187862172026287680740142103821930815373079938189365297824665959371085345039042650017362568715112255392053216153513592168293843270378316589901179329141415630351378726322226163891793444661713618982801699775892782763081202061341627561640884773169735741668389202797829494620551724220408821794951015680476387628718314333670602035201896864859782421759303006173769029545797035231989813247232763454049499063135854984651496882906359981505724312475714704796381366134748958516999457455805603043018262363025058156816821263290703862728848693181582739139287412303779470175060336919382758852875498543758698303076112237854191421563827085889771104166607490180524338043353706405906233964369000295434467909753458359044610607901312861347153039659790565468876084798601437512149477641248700071925831322023975248860435369882572328203355770690422447771023752839350998878399292902955324457579241146653308151878821599029118648432470384024045357213195832670662392797784958944278256949029103491078531669419501093619326142291707131311713730557281319955793221106125887300997991409184980263830186540638575167619048614837388878264663373004181540079506498532714021053448420974964299019612101912575455104651631790688407026671920580826128589543418546741366655421962244375885691215327094003974553465193682518167521718357983221515906555804983785786393207063327799383009138220969798100247674267156916465219708562980316931705681033242321550366631459390483277616792238914000112161905397524352542855344343439184739677903896820671322861134795898109312825818659227009046430261362766827287518267674313339422899889590880910136378652387169967449972783323671074480332854109565774410985856665232425641174658155819979948844365803913710173553120562487951861051684744899330936443529339304043431851832008753155321490033169846310068705995462591714241099164949889963992760629364604335373598736724823529057509878179078341600029510087934408437083906125610315449841622825688512556574402570715533417067764452885885820278353448912616894434598450317938079266022486319513186511698773705750063614420421886524545868269035995306196837163708054510529902614534728405176947040191913216016616945209334642725518328090314397211132093098079385484594157946628260534782594665760700056945074655830582375232180429253593128688970584268531627914378338688744338689362099089179080771600127512709305224054227003816659349168596149738214651267699921203269661998613592869626738846245870165716934143491755350262759563457969432717922390722743273772850171698647353488114047115479449423378505507769461828135003276020627716872080007687748630708799327636106022943859162297120119177074026489305344673358601689204377133559660343202328184020614329712939981463221028722198578080058389694935069697364681521320612806885040201462422689407828386697337749633951605920440218905805093211631967193501353428058913781535460135213856007832842372876326768561478130958185721175655792849223915330589737993612700043257253424303358559862898530046248291948750298901713886775568054717400766502501954422821993024589457982440486313555414514389478294806711390664662213240389201157369813249304511274519620815364652386348092582629034741054976016279721135304643541069153962162658483094311278158792886150012866676065826605259393828183678608846433069501045089057205368782083681280040583166852043749358074180408175797047796839360961452939673523654045186010778157097407916264781352842796356885814455169571853221812057737068581993021765159483341785458542235332046156378880806714745358656833412787597521560373977859835701979207212790167967139347976012837151474802621525094862794498657424575463656749846544234855121899668026536083522393088592418668709651893245104457620225753940331285107795525741451008525286226699229480688278410398474029779123633893611213004690586147386822629163122732762948992113686053771502312973066897256814732996229571238257747666885707018231792556165434542797102350916566133419379877080684410649174157534538041268410838300698081152843141008505703463984253722339911791051193695936146773150737512682370176571834019494986476080917036876545968344168610573644586178902456658869425495854786054497029089973603129888561956773085432007493001044527122035907923469766758187409960565727952235350208155407814445200837998504080632241478028307599649176292785314338152615610938220986219406192994690117390323683473714294563685617491581762593330608742368376086972457944412053413156539762080245016529304159318917627845855307416513088232997623146445349616254666178240899893506454164218051205460401591265879303918853661696317664497699349354521673467463343402505776701773846552920626569126725626811820535415743150428417721583414300385202198930595477559841030918059068667363607078936803310937515255131381478756845053938894196823022881341297493015116009590910092785124765253434465064479312178212464747310997584250935463246310574144543910829444934394301852893054872049547607299679945521959322873741403309884463967488901250422979913760620914760058144290253886924732708978182417487717178054380697432961445823795769114892872877826525185878218884041324192011019774644878785821095253480946919258398877947728402542945976215282286277546179560898482792801509585486554016275723769551285407499754954187235440906630649367154806825334491113517899452442343137512785527939390252536259708448476659312173242600483303685165241495120175245351426489802779474856631797606245988927847828613942282114529269268100265601847440230555383447390564675711326459762141478831960582779180446211547158138392113245957330228556147856712592569463712734142437777781231945655882880802321075476870189792455588141910359136468948276074930454876815919491837221678490144649999781436559487852319087832248140380001496000683827377922395647363935149315141932093702191194439385916176781518719830505791710888682412943721855643084152049909927886829730147105887887408423278275210685850605337884021185095251542805703302852659371683169821975677514595140979920637354763820443561327050816223310300029316710783322829743199863273355877504357000983181581572153174998785601774672871470789391452427016375850677118549852294827367289321319218964830766092053854441868478008335253714673092257094755963413718667604643615689984470450735405118390678263262886009540985580952867414176668919960605361616090026678299885182309064559919741850305292752269859509313312835314877658220624606536749187539628069884832094734386048076209970251603602034947522054809695967485046883808753971923332294581797101478663481487247851026438061848648047788878278198277062678255077711278579578121170847951415801848603027149036718680602463051989614764012014808767697022468130058371891443364184845093005052664086329661462243741126395850646351871259884255684606168215445747211183097072666413872201045602960545349088308362541741215602228351028277215055154614366990013262678782019457380709071029405526013100806312413780856897921082433048857702936058842728284270906319759311785050183033275251177356327774152682660010887379748075911138161085514974276260293566607212734883868223671205073991515333910025349976852376187743534418715855069892515475488770600872071138042170314600046479596696020427346093002715816543022966691291772795699035391450704335669056388122150563416751489773763135359987306190641316087643554012455742083042093832635373010934741957339280049940737399042244903670666727350661310678021173238989514727202913305266804404444627688909294721141259357868872030724416714143136760887362573663485073805261156489050599729228287167787075586476248056236361493156949153496668831348099281589978490258817100190436026272882536500479367468775788413574381481076973507949843402218402174372953574790755625987930028553417469622037106302074014206284231820951301874247988040590609808060043421523058449425845883386323486352643879590205357553835969132762034436660635506256828924397992917900832230626280710119939505230424310816094873976474205670770851776354433302099159647275131313832042336419009261554180366592666032026527969572288948327344080091976020690730320539765361569315534834807198533433588243991441113205939812631570197904935788745548175610962406158018923429783154683768343653745220320901378369644744891912007811532122460785556851285053641980461878338773488970543727366483938776331874580274563147117165307702525587973309009466474044538056808827649543667366125969921207923240184603475533243773795981460340540518211808341359771503609529529838574720217563678520535904768171946992275223450293502906395774102006720821480141038104540431080264785083358280060528151807131506535609582509026896733339618231238040691995372938604857446439068198404677530281741905076084583660139768742065458945403487000147978033803321492905398215542412048554469207976238987926074472423049859288593625095034696091687408954344585546171526883803896203214794960985642530547913885546714951223508853053259549344702674364553934901790968472341611185703178042251041119775613784932819739017655483977486120756838285544769868876991715804793692903404049363941314352529876406957526222490819432216554700884426416867044609060586471419057454924676230469599504634792046722574944989293551602788999355101523786115341807820243387557537385945829185994653792259392295878515907870093141056904054388744514672067505474143412281366110059058265140354147274733550535058655676355709691172735773143187195601495808644463949065790929145041758826535415465460812594711695677082848822734377504639149825824244429854655814706239405539244379881168484337282058696759170573369818016206713202207862005178673905946419010270056401866388689399374117252507856434641968622789470259551471278874136738599152181459841103922429627776145296010692845841315353098513000538981957574440606100207396714662362562983187498491844223718164071340480439020412897339402553927761550911511221905979901679866800323210188859664320335087263617441090788213859029258606841729619448102867063316400650693733772090785856749434895262660791964450387532897349744101983006770033018199647593243831336435824921961917250139126519741081586367479325458107607435215322669030832828384661554722738507741425976222158693686715077793178821437399346888602280426110854610762841060687803903008560734942096895320054964553372741014864309603856082699735935771523216016083347867337394029970951434830466012160919232411230746793454874813235728265304924883055188896617773939317466200468225185222507024965850635738306562948230505647408223267407699639678893633671428618249717350939889065830162015373176176054210444329715755757819675417075617973915563677905151842330375174361965472863088940548069460882836995914381510445682137400298376372550860576880394261760964950138200392826507126640548984365376875105684538668747344130607368842141211128517208425086935019556157119136552607152387959183871495781347037941545511962288750978276239068637610209499522247243882207218296003930596442161400556319327623104216917826062028032170017944405278524993117144525614641344122220863932438610368485449910204784190804039611145122308273498431200285990650101311066726450102354935630102775545044310581449372600166983041810226000909770006593658868275982051001972048849863909061134704887182798846064295945949932804195886848917644946803366203984126273256080890959555780189750613086245929375183717314914298960136194194095945070304588722396098223140870236712039806330247153445583281722006299382716530535031230149193926848273448910955834072670598410089628394114562115292580388435345436190476597158314090440210455841310883208560938288210425940658462473469255555107835391191258441119823118983110768082251375722484751043829090095605153444503956116167509953937514120947165741086762087877357603188096770683299518234706982550701088922916155591115706926285935825090516055392238675093011329299878268925322621604835589143221262183059990212197696488226071477811345458106662567331867179512753510781428798320102876666884439343505069907970231810935794573493561602332106866591240275577545095346814678014265008986273351615012620679924410240203316796568210213295900757047611403742430453579731419534581394071179523542868472942553172448770433653570573863140596899012465172663480938694174788030415131367861835489733142452178583583562241943320255960256807935808842291485304855740614957831037283733096516663752043121470444718937069127338062826810188623550585807709910118617321288441984351975782959661248693693380355563050734163944521368542855164967605417369410864781865883958253149664501408590945694375723471128068209910229888092110684993447056764920659676524220967173991255482314254141675187368167306945272692231598653373550227597965353155282321798184077805124795790045950682246483554602025835696030713126698988766472776533348517661545677718764941053540147943537129447535271213239070044946100098447291195203036504769347417406553097570555676967727916568984591545132072103215334378811488442652245160473151350390033492940345614769410219191574280022053790208446697736687580951906308576255400578791003826561737515982622623947968405988148898363547128436466395999775739312422863718585028188910992326703689983807224630672200292790237657028713139809707483243564058334342971536691585870234597742305128210845269368364970669923490344553476457712341197126342911558876582356583854994920881326483921186279267110154131534694633275068095541391189844092954510228754696850177859571829442802494899346289475629331773317699894622686784334651771551527509857987746270688391010843268640515338965314431899559269411026142286004142278246554703168952401938364828718888418304849340551195295169721614777384595414763713260012348746743515021447647248929505391644715173601758038501753196367433463895141961764398507864133264361304206660321431675994560079805439963352866279169542451073351789855271854319190429049035133787890860844124336554761942957655854025648167063055024907885410242650037294878273265508900959824828618014390689414239897742986977378336854557646378226169296449224002920698228963022504984184194987756857108793374979582893570371632432902897309378742663809091741384085098341474496294415599308090160981173484779035409103102351832756034056210213562496313755339642966859949725212499400110419750844417667816374467202408854656353731111362266258897107758919763549833902599874690575487000610013399614207255974323873664133275348167055790495694493283522961413703104036655115315891691200758108332165907413819633582410333535333094311803965517545535470354252785691806336542979773298748593609085165110778587161469844764969729573043294227385779812454342508890780491042415627935492964693625953425773147881245526229828596594458431201715718137077644042562280080825729310890299553300623542732759270331888946518755367266715302540343573714281884481264563498321183088176393267617159825800393554194529181195790517478085643201629172920496703139640550577189523683513595894818293970632943593435882265329712490499010811127148379889229350796501774529965972992190381264046600588125427936210264549443421355489271030346093665177971845059929948115124250720702917026577372709414805237549435148638589737107858299280315316086217516472409614663260601582894178800625922115450454672945340970325318380026459614502965959138294146122189484396938579613836243148551369348798369087475952306306151793719059524788442433221470006420749640579823871548338808717423484040147810079943673180927510446954937692040025650973406993273792381291103031093244511237923499804737779548071510337911547188819017230405890867611758762850364628647109074738717656770506898417639773315679757174237322514829877688578811491042425583666798578123505284966786175842263453813909380368787266229737358516413079458065150977872131805419574049328556207510512715625695834822839600807885785468220184090922273823008761348915523637995398271791898764815938302127892004463203479493673148185095065512952606026168233067432446838978176448600678660857954649682152150921026691523769244204538145240942566133089564743923617586466714399739071526131184705311534408381100132331658437898373331627021272298577938304539788803851908644185279623935443605903416652497106211946848999376244854303997984091168035835574321555695157065126274870973905743692127400703973652547000095387050797507532896704278476256422479838472007149968798296566651682120705526808330037852716910338662854863841516895598013505075160633464025370066291543780526080718909560939796023185945180446808228345151322116904115735398828653624541673813191199166067922352473689264558734252043410737455753906076308500115806345568668728213164327160307312906958796625293164486254252386340726892621712732267408496406038454473121781985366283235026731237973388930596354543046048672959664118136278913581083300571405648895207712836009077296192140503776702739690571893849486470165170711250208577639723305277975476833613111304030597001467824380535932252276257904522358762794895805049352997129019987182804737508899575437645743186408413993177556065542523364850065520750623538891571122741422937376115129274566211230389276481820331215796424136430608383524665434546765196300081199264644809332363217573879097686766356669304617155546424000180398576346270962174724614245186295472481279371185493647378685511073588324102622272014856267046237099525131827131011825363781227929191760867603840388897392560194475734386069138249326558850744741928600078364205477870841524330947454410045817698528332987548208572867998491619295754636799573001144395015421644682656655665277874242878959135587131201076587077972873200311318971832271196700216417738235556099016172960596472168510306102158686908966517388166418667529217172352350844242492788568264464121351770016214271624293036035580932757446984872827684005686241488559912879559175185691786446966199125383336220253905398926473132185346590322801379602415797926821157028645622435058616751158855851201102548746698083935894789363790599797659813281520329308925739215167851492789566805329465985994480108437118226296136601305762689712702584431080566356638120042234005555832604890513226594133505539259386754108064715096030801952592555185831039170678170305520336296647947800093790325742347058994394038011380120952942965117662250537370234615951943731574806454162617221695871843169947505458280314077342250033337002749526188919490459636108400199120483945441300680995708892511528012307259441055375538759512938289525804445464277964163304039515518232967856611960510410027159760510614827485919427300909593480959588836341529554851208155935732492443073026419554343777425265053766755053512426549839719083126459852492748559803805116382533732567783163035672761442307064476566292478766357186704798061053802434406938979022061466308635603109298493357558138994525704766230471765406696401822159914800004105803125086560698007236596104366600541857333838779122411408672057597117634650752251918904928741932988481209289013312016420479422940413799354068675778886971079239440867921709384120451831504918158665035742106542478183439866764896329670468218865156276753910259199456739101747498229974178517012699746441994270039630950844877462277605614763109781103774915300823128321779144762605742840136829598487481887098255116480349221388830941577772257134360726050405844941290908479713080934263855399283563010775337286853652947277342258653804538655963704039078644992200677543925583759559521864635741565373478188560210754918048500051569194681025893326011433455019431573845157885061861853896941730759658938963253889550075143969283180672907600667309961028807906200426593518125833400877793253588191775730846914715386906996615575043102326863958015222612228643402111912184383635444239606910479049469498289452864176608653196282942717668183001761273413237735094397564559907438315103032472831667392664881112216472775394786162502733700497039293527888069668764302608840893194461837147128801464167095304912710587150586593020582504803470826092460770021503019331777752230818199006341136725281685803303768289851152151658407126121674661515918789152496141092949018298977277925099508662663522758288394556992625450561498924055645560141258548117372199205141913269391599083619433958992581844918430766200817247724155161983950667857272292524342295701486492269480272877291933227203035395646760873809760143179230245223150043527666993164087590135549871769454225232321550228698172947113794278501472105791141618139211567896567113803124737909197924277873532924454171767654119838501591064539681237680358189029357872308859334606244350278937195455105981547429217044155282995354517784200882941689063487495400168815731160308296295187340637672912373760283501526533204470520387856014069746791095792638286117561656454746606531434189130096250428823967477820612366908696996066376342901543379058717673905857198451492743159761029927946857579106835404682938695349597900127084436186739437418780144374558320900197900424561212764843568879123365221219116858946500183526497189229610206772444892591268584293101181170856132446562737630911024559674458619400001978252401044988138722226939695102594539855416173407568662133392552169840158827067367691856906743060518317094878511682963870308750381879114335281304545361206532663851952775893643925631196009302083602255676418982424464566651799414850977397747153309395362809443363947994592107787498506524840693225477050431485119381598393309983584573914255073042768529710235814645672698626479677178130496218703857511193240988624088323090909100778678333789585255657829433361549528484713314181560156107715803386360124090322529990429478283553828979605245591416697936465939263195743890884908326953741984908868902039063333722577593366477425603137257311254433650433532615875206637316825566814301995256889647058927910939523174731957299331443991615042483138694803655019279533039754796775352563353407153725202423555063644255407903762917862863613601909962527285603863760599699427425524144601061396454979979126149367959083732041635703196772927111933897239926730643274094784900863121641867329593375584575779604926064485182342151259072708601033435426553069971074812999102430383051869255699350798924262121156938119457514551106864879167841184338809159043009456874018822309802092712180948857708430210456825258826520508309393652074117780786436153504104155730923083188210225893514970061746887553066079839881064116394073723664663141931615758083650089346843136934779910215154404604768308936863635153200594257804125783754735054525723667641336261433867239685132328903578424017311881890978371046284254179325481445657228051770459244400167192294817090584025459393773439410999987631206869798595089473405011844473858674011408693187885604226407218096492732216814338645611405356937603406019881855334042066004295115403047953310537843643449285883665850050464624952527353740881087781466757641454145859274232700683360506920996017720784574538258012991894871340433364327962954719890986149920294274465356537974446711390670143781562540355397297299057955888443702595277491445557397640168504400590689629172155176084702775749929206156957934147096122149703853111374702380469175479694034476592799644309326401373359940845819851050396457653529212354265642577203151501089378729619392081150772369064416264480176839555336954298612810246324282705154442169957640020834976870769656745798613643140342151525190848282298184280416615185967036601258975053210693574218148827535846693255494095436937780859554542697126248006459236587574701279693140135783206773890939049540478886436777560040128160501584718616917422522501244780458493616421134214839769930957675990895676069915012133169110077714756978953602271679208807069624150631530998089133416928124764702376771268785581534883384750390546652735828417397257267327165163647909558739447966980523526482751844871977720052894085649291372148945513831945443177615623975558007321996174315339203686130107458532133578267059641165830174667014148274373394577836271041673980269148194269072843643802455639547030816931671105913998694536812186170574086588901241876480923721405534485763106426166379496410731653884497201313560681772544220726938660982790584310996108518115077424867566549357873050531639557073952506211308315446067895170088372593709272613056330720220612625900151682299174665311233097790091892706701827181556239658221413730271255026997318462966903145674213865042754416864196734095381998134310637370706720122254876828291927660347210665975521217628931199144578670284506603521334524579768877240947271733657471810417931309731866246139738939999082790564008199920803765594355842681538334023071268083549695733043100023141254896195675238997101472174120466442795822454567983714435822928390545450552885750603847638624262262569756414430303363304058535749095708241279739533103245033403056178304760634316220841902721692905489880587834290459049857146158633044587957556077604500678888356246354789894542872073240344189004891432552899864626188522741920620927810140201110742286402449758802476617600417401348467598296216519471157218386033726599557782363149745413678640271968052292503636285556725413877845534023242141928365497106107658820081002238011632694281396062759708458333427595176709612369233714662273907653553635163081009445899299932120191687316272649250024016438546790569918492454714124298641389425266042379980346929570443344080508367146762227626899085244661194981316290788872654738116044001088569362098808212651356591792027221240344859533561164172390793297137353385603051198379670514009447476946537766260723311450305947064024223389075212521333688087938398754741402101518780863499005704157763215404224298503125530228406037936389008323871517990108469525993387657082917262322474257174413624108654504832411336601595496142473711870099819747496824501285379164984385676809150359760264101551990094133259568165298815147748143790932812807557151237317208295381048799511491178140776787313794714204422667459218688374159161706460250291319835086016577022982066060032818581078606782315781364532547949104650955261715192229015372771706676706982846531399433006176584742203335937626315158506645230743652412209489327353216954366813871203981320489962644538382349045180734035185679907508068999896797548433468458529654165007680923782479586052324016992116557047987186724199552013801335285667973223335037611849579265341926269660653023777873756705143640548695028864722588944385159292103560744244761367569237719816111756922416522698840602336579562322158909621642240253423671099289042237182558458391715332047992127313523137789678188722033464475710077095146648744886687362013715969554148544025852998447162577625981784213244626748273680272444347415250017117891812449846177937135560409209105957066228239335689778116545266792256339018367529020305968286215535738310144169880835567908172118712115570300634377358222164079861277245713023231927975407644389880394032174818507201567893778730543271464983644626917446892939074525331201461251670624432181870534470745669038592417548162411235253431127048032249303427806971168681191383714728957584386643412361403978444605129978482470327626802865678540397142294178908741109355882953710886332768049962855551912740144963799632309813865155954574591558151614116712317776768090313017282924228521088418149517550938916845763520871835921867279665823811497008335281803566727939885746657863880767590098378297212486510141997563919663873981843244875734848340893070319066014654056188151650581095804047127310598049287135249398765462641379050003910711606873085798516823221563169449395903653640002251349686042006380702214009525180932410313343441133510794394520753570816066973697625208666528811984237979269463485032409891286437510030317680912241461209787453275388775115507462525304551851871862404914439993250850203295581233651224634675013646080142442106660088465197298471469651844836929943290936719204355827678878616372064922381121727442595638876539982252943328995704213997112901430115770004641293963947317394712680208049782114317172640135746750142950183448071850928349915494712551385522081087279098593279061264637517770449518605246230829021018999979656110333710318124711151979355753348540875219227834056870510904548982040497622640177304666003036742375535888362555647781356901490244729736550069239086431390530556044642526333222211065963070708539642388583976494606538546171835896110076355570007808110786969868203224332570278566522749741723128847777958699357788744868077882182864979773003459307030702246467034867159491618888870325646358351546336290203046207942516408000556605644288083641158483610312364923703211452326064653244012222218393282626646710797642721011781068158288116277056434152759872184246495681892783329345166338746099502372519797852431121325881009080179699478831435656920603881212558469103484943501574762880293160074635970486868261690179854734967976930449579387234185281864256975434589397636070640142673605486266280746248694695184305520582268049259609402496343593880913621889903899803498787172603144512348930377885758325901221940649988771005075984220587853483126642257138583044735623814702166105825219895701281737357808505981737836937550146543086727400473001885010680887615314497684946233847007712982765178232310799777150164867790933080529021439136771911073807576505928556314811947287406342500608885829941402216567831897494266063719124765084930050399111710706987655651352311926491868966916016790801142506280804405156370904182225504682202124561606007701068217307417224266629919265528959911070188377467721048119774364998884084488947106126507829161307878032840110492792732474029194141683232817456774126942219119292905877609603766836349465869111966432940884223832024698617687683678965360203123471411600714819346750946010813534863583067783139271388976043546629442862719590137000254356413073241292672802137110800427591775261166164512818575604436329921037384707298438817826073275432426085497049912396914307274758080783639463018479199627445896747327402523963293299627045007193487061991853800265139910999002226280951305379679133467982108585094013003753438224854058969760627180320542875087733459696548885450906438991063695755357359408327368265675432909711308780116530845865621181149493840313438309518877123638850481917895718914065200716909419894397490949347361787134686933293115294631048413458473420533668814053887969646097516486688399133185671051332001061419356089778375034122341026741794435083284596242186170297030658623736676836900215903778340420918990689139533371183025663255688764007833438416073063235250643211863253282178025521187795336106744500434430196987274768212214880772035448280283696273915767376812273484950951337321200333960487795888134396857132960170162014157744545108453882639569305901937134140570513223710330274119457115957389531328789989583602473805160781964172039226193215921204966298660747601837058067985198859267725326017744306890610658736536465955848759355272266724657601387728137463918759800865806797967112602585852791072890718681602026844490147395360448752708093206281584362029290839575725731931539517410653733047774911573788486184250635096577775397569945033489058043051557424115055072852822368784037925484136747620336656333849140593941718218406777312846659389355312201911813206328858824696709586153912612779969849558994179899200723276523608488807213566165633710395835869896128907049955357326899949120142698007174792947802532593937757083671504667456024340680037218072617468602725352072829547243827717331101454047335448089541441586481108878952949525049865444564483820914498421407918269438720854853104798484699584908324242108686126628091432050116420449842637916670253922757616766065015592397421534246311232370890730673596180435755015427124800288199606824725658087564026376518031795753830268279563920729474020038979372897786588489314125663303582634134271833055041878438383007066481945767425578941607741299899326126309067677153374776164375152426166860006092947902813902128005153421683701580341674741618941020130238777875006955278714026910485540216290876249074680030932181084922263721665256794527513572058125366686331312896237037328102132783426733287966214950108766432368193432955709598262507126620138851398331917852455634944424840701146169832288614762102342025365868291029623193691964135905323481341250121146227622836434696436129634898615188769647411532512225973608845867540118618815792122868462434043215355532679730183620547300869320924590663753004943966041487105377622578869008964811620886242040385838298547823604058009370305628086212898261638995492747451403765521626231803517244042348821182491172393648997865002925004324399548443031378520753588997923437539368577588968306872644730611101634905956238228560248486692759217133742972779296547484016984938131426677207119583945732790197268832225562633714155203604290148831913245771237716746329365354517081984269206135714192833628829006294831323121040766228807141306452389524646921763898717250570785302560986114054048842896246338986149501554199114899571400056080769934083396116571193165552155495290596515365578619808726737133832809987909955903824429930576482304807122898733357803521219974768031627713763628802266394896490981890906057750798920147870121410582844446081329356710483596074079294161086152940611203908622433997804631016632161016947236007005001047089750243367018973423038699199881789830184945576940028823321121454506878310834362045240416055704593830326967898792308066894118666644184549971768414246925268358410774126261173887785774095727855016792890769205026299275888411940037769985560488284168841670976504551909630088072927154518345694286381679217442681011687404883875274848081403884063930249109180878365954873034871369735977788279466600377907201500207987821332295170438651336171696514774764103362677988274395429079635064988477171746547219671152152081465914180720730862084216286650082041707323779680903641050150431613295198808243222431531572434149758639549365604625818582560375696175128450636029409123040225246286475641907775233313781663148291598735814667429011713965456872383589668294181376267961189524498312646724390123134020582674310899652222800681518546109117252382798197531662130388770289193814414275205846861734318815657899086875085379418754681181200128305741097580985205004862890151519765445905279942265461922268178077762187681269188243371003255866164949484687485505794907098450274455998580059762210914425568517106439959101049725048983893346458352026608738454199539335344981006428789219154851236186019422748644695129585004672947849553911240603718953934220016162259672521524488232795396163977572348674423615349637374917891821554697353416152795314429465555828964493557642501337797629036706129230328303773752785201971027766919258329441035366320310263183270597530971537338844712606192901581686772851568063761652871848007812967745928770990424132785029428077627771367580651925312603472223494039485882403560352076052595100825007881212077100178193667087070139320800358925584233417661034801994800409001064149956138750088204991369325016637035798808774651610577965538566394295973860329836737533556666836320194996345421586056545730189381354075212199970189844863458426892588160103161941881019834987708271850719589027717838944557012301354999828195979154546505209922928823079323673484050819747060076904040243971393905470900141072063252407704556330830467794306421080371069656976240785009938590941222978438917678517933036987583099717905265269416766980384424665809066763992945530156428292855304829060583976398663018278508013575134190334851079450762843272627475359765095041284025400961412965417144042925835748515336092397521366801749466403128987458511376065202037442882602882359862142701700241269248351193626939245514397216354740728160543340866048922011227725939873777746911466505291470758779940256299727448593112868285865249885288533027851515395807448629631571594082662487707880094731636713892115959575719061918223170946305099533054028160222042145878299169989801680392556134134133051815977822925100695919715932319177959078304881888366209655573082043064852726889303065781935061441660270533811004389235220427381139156567012158702380599665628353825522904757301807855925785321846655042811217998375936651081320035942361489624159141459172098707584533937278688842034046994144438623267292742049111611475643356176909039307629305263487936532000315522131177159726712079582971844352333935125232282698195504003866451236009080394672595080261479443110140173251399118108040187494208996305981855084813552371178937116354401344568276935131558364494745791983362663471067577771676703022126949919669335976899224747062520805094885905356778878525562805154118358394016868334159475048284713754162615537990155869875849686327511664407846592311273806340530247178871013777306520393062755379888305372998649612040749226996081037716676260820807800184736725295792148869826303757954313053633196380434283677336448861101443085049225707020833025551523321758498466737474712577096507834794332288682230796724213554883101279376605461480786726530417325188731828763001080175063558397584230876236003627883768240265532683829741793139717202228944360815775618437879431544777245013052665834608548947941169514591059912990705575167528232923003505326767413581358739303690043244227262267326950440501601530520171757026972022587671031786748216965008310430945908307730739077468650000410841494048245326090264177566351432326059471053654015866315420749272087349804007169657916921675160386915273983517730598401716999981741101278496906336592205891440083605321559447721057957457401570103988838213431761937573983126307855671231264964741119169685578144044843720733728893914092082556551889274107268495346687955467525079724017705933839212645671862441446598449454306851672136581571328494165792634009739110274589165439470071280066797210772897686770902048652292737314122307856648519155341043713941670191216880668019398075963331678425991001875229188208295016832485241110414516946550932426158966229815325790926580178473668158369136075105004284970884305748173571774546474654990895317317659076677870915967238772369554030434161340887295997114834077091299451696876104833477122694765852667697483255054771314624047064204600104319799694980403898450141300168608275943134703960891301774892298784158414835401823032960640172846085296404981248673654776802277545851512827339707309853480323879303447572454661233417898857046011701248350196773462580918095192294118312700332851422780440448829686091417516336882125158717735767988343308473880628232793836403766134904789819938287588798667655604527586200958564983612975792857255453634008460709231017118117138718850732897124735203743084907196937161871392807258975028216663175533847854399974672558926408730478427985303564440694165969532666911479059378812013819231335450417681743252886952829707106038786199249984848399753887278479158350555350050656819764704750985531129916785622719354728920950130309656609769140992046013939716264678289141480226755388947083134027449216884626893793796634529768503508141399802291757874052788348676164801022611638348548686617408690689534392601607254831850373366408791106940878475424635599536545444336087263738551970845480054211307487076820240549853476835551138407808720364262557691722283159344221499585386370527026656242816834270405085865595592339914568316332698940418354020996814327752727616678559311130458924226800812381745298909559721310594023300528414651141346069968799071538893095121429512020257397537310692294856879258282671425753042930138499897233582168375294721672514212932715538477952104521719724246583121602951544337651991159949946247332089493676517595183757041734300368726112360709384235490062634861597954685198927788253144468614745449432843196547086771912509551689827564492032166286859586741994986434846908950688005196363382474755523375393886314585047732334064460422157326697634146642946152445849015930903938028389150429687113449252770023018812260290571465258717739689072161076668730297167449383766858806153899653495910195344834886090634060160067149359377447747032191320969798624945785218132402485175723996365516747947909532178920488167233680645301098326771910168013322371279486128315561690769109779685746340426190150190605385663571495680850387233825370655412819421572110185196157287741071209407530895825662752896748028569150102694802272446959747763623469008627108324162595520645666284171749010784794395190984155604175318056980837209063667656985133045587929259916917088928240058235459856577125445950269007709658055886261960985454367702446939005367687923271676176366594609616055372762509668955580027742888261412212093041083983600536375825539593676566212849222058539131232764385229246726599481986071928096302129831933477335206735204585437985092387578434971963842653279894980495601346963133562853203840108655712643099158839585908178041405138217009808527223425154761799980672963772932911778491807926507447630755607237363209066193878898881428913577619047928584778986612364698039585639038179773342985809143282142194062535925892511131782689392419477504040647596491463442448480178858924849886932970592787200284433539779663402889523526424596849121903324104020408761716745457107401451359012969212470997348223967601905340250353692478952666763696416462852666652937192042672926564619757510711449941720954690101165558998567178559365899198062585001591533247497195110780494755967698128305730341406507675963763319268315494963005593853724847692767302451627110838179071283887293185964970184539717350124595829490913950046857094502794903360809379194660642867924081607839425160533875142474472290119635056234327316913228873259147683182100885936619259926277200342915726539176690836204418699499151600563810933902940932520109059520200263612194504029107394899994611369391681372227277517128773369106412669908548668174663157407467627770072292149837206148436593379057878890428879895022677641060164193770660508309920907073165107719723835665371023707429127545430053272781704648636900023458648668971309838718395702985021210939044730740372100096939951630365744505236841331672762006000365896260909246840427468962532739543447374398155323090152207407151305404076621933696986073764107042837091267236928092083910537984067093694843944700890959350787551488455233053767146571025562880210050572033463494493702470069449617048890056823111870095339984752578830782770744226153209951511289820785232590726857312190793676367764738296465547575897040594205893448482549303844995361233551574727121240511563154183924927712469089879809089835798395828011376237098838573320680630812533114513992609972269564803587263875963925705377067809127314018339252322607828429514675743767689822162671938316170616731689545734347564300125210032206547246782246937299022541006543505811074626733547353629339495678786969564943616036759664131239340550697301310988651269819226056785584261074881722902828036969127485724021221738639367956596649766063087078599261888906451156080433568368185030122028474044574178236399055747438775006859189520535915953341028646910444058186208824207067074824592080778077732036289804202275855213218124872611872797556463141210283555057499527707590712076048571051909773968470666914807515634621551754939670290391821653393543769378120396521754047735381260039082823594844624862354320166336473638115858679495680818119993413185608257173239011018088510259104364555907750011291899157988896204437438587501465845068824766903518790264132140176859340375196202130157272972804854218232889857010040977748091200057038581643225580825714896698221476745045339452284984733804709919027418581117354537245767779347711967349772310764406660626298295151316658992923372036360022410118668230070036015092358202248000322420606384000868443903546852133441764697992240006777952633867715582958523386579397739069495260664385665553764596921576132584127720351898469033347574029737892085554672041680113900652809150249538885247146349248884365239941220710334690011256713198595140915479252660995647861399425563900828768190701882089624343601764406292373249275629206146761062467403325338857217885952690731073053686913422070267227840658393718016949132999292130336483682886592778727659866101349468192820999586534520346056769437480371707096742587632548438193719695294727344938032648584354707192490873755769040035310822286258218438776777271426032430599561574234595243947179070817115276994738814947234573689364972353142856761917422034999493708834498932253760162505195510885721075086849000728559005150444873558662223731718028412683601415496375885184456567785119982922404657781857155910948258507646210805139443688725750459722512948825891385684608991284914628342747709249782976908240213181004919532770205761036098509110048471322648911695149061459633190189271997444683524575003009758933593743210484146525245943972344193577691787014281460490770749929422170677350689801416938560299423080553991778866579478058399846849549298782147425818729943478442876236938806192757559424586765970699114629751607265357526793879431991801782421353700151542668995611586072976715028132365373779125920593196731615423660829861510940158573959402313859777991701401319142476098167304630580184823442019877758826294555867686602433443923179107178928874780546309966213857045473250434126827739791099990249148534857545582376977656848005559187632010323283252435280489614710110739331875481654179943832703406682143690222603173356527888514692149567405356533258907051402428965268443961313404734516074518571323713463882134734833661319681607436301097876796907447548842643718794392050585554301953454261875883092046160549535884605685814640496185347170360715399046090108134179989534476716469565289918491460771540791850583607698213791845068232534417624442020452693909176752237768662729746378961656234891932939070147202873428452081366880251629056844261912867880858040963526406573761651446824285942774169290007969507835720646285039912738592049163123833254327134083564271290404503920717219409371885505363923563115322382126133063044536342476098836505469309120812109364791310619022055857991349213607316382932875217425002082408763976893389933736215962106163581596822493206809950340637602639086203390777107625367144864249866549662736522985581746274071615197826902898698507519677471615141305637763406439530382312161513254460764580927263236139221170024784702855481065065020197696377100611436244272086487906163442891382802123124552242430930186692443453144068176398458821731025958889314691249828189567657283470357641808754779922505843839218546905681519867509029788463149919171308452202672881671713341363390844139624648188203975415762850790001292332389779795017610167728679085578642080674965780975707169394252994769401400125993539504805093647346084125478131415853683617487455719669835260318967628901771101619613753718458821008677672732263066056961185299300690063246803060145166114763170359083421155778818925323735688392582309395320610014670338830728957058874984457510141041311849114318656881219740635943154568034031337136005889204963825000539271290411690313936266218314653348307770102368555719864611288977483932779683216713538904316218993694200225338552533775657470205142417868242406140959170733474608177060872096120637550534385456684880330824585820711066449117624469118442708401896176949922487512685715082951057742802142403460393302727390812686084658427149510829749569493172331461042141316555187178476987303797913229169973310572582404779139267445982048876820699136238510034920447781130804643890502434879188591796550943642984943941334583001182448992315663009128853692555236242957257786609613261454045930754037924127779987874383460657803200473527998220485582424704868923840710244685483003009455609459847583583506313278341432075417975991276336218097392936759184134807094001772608761032550894450591005010499069806602459029336394389144681609903135761603770408577880767551519860862461141737981447386224456119432975349608297363470242797466004317436729832876202028942241029626278109184048796448605498913931376111677318392667672621550386256732351761472202362434516003957931110966857940341316871875572293231019234987233887270876419676318230142247413356792186922409281031004606741730169125605833665689350114120224855317727758805542206089581176180600726292265240558477833691764199431123855841106288893597103978072914474501740192729355793896474025222630959018509117054259166162620333400301418216764665567649284023626509362199679544603571032758266685564148644126362587280801949701874764943918600410094323216558939168350504366381397274653961946103719821933707691656243395758368007118976588587543202497470530879164369474359073873813014435349489777757813266661691392707158027195772148089918804027815683189421170321615159990732010563353073676336952632156571725595515742936755777613782242165296653449764940617864947556033139930178304863299910285730352661185140491135817178409123701212835697926002921874907475104863961377538111499189572114339455112848316626636245234520584542644432817880592317173689625460192275473636185339967313236602218588652119165764241342294271490051537751485825009378412680290252029958020090472211479425539327823060926782674660522326465202327833957406749241470920932893998439271390962834115925581100696333147892536786370571948086728399761049109284297187814287891923996808957764030170672233253493047215803073976323636090305591114825829919126446350266473755051839762193988683168461653625465720754945684159564237805611914635388212475794281781577049085731162701238945246518374123183332663423254518537126913567372657524275196303459802354255445422753909592759744921869714351626654767349336676366016087805494505034124445219806411907380748751760372046522497513534017509648852685567995068328816006743895118503876787328633316115523104062793567810639189086457313811936705588118037964313172060655388026918154582902639720385102473975463826689403469404683159866237083782319345658105957700361320808245334441460254515095137017057120398338611946052863050905538363543060556764367553410945132481185890293108404386613738572254029297163025167283832253741106408730232741214531961561691143338406207250105553596214870644717496174132656444186908463314144506079721491605357718069146584450502053625946210018389817828731897432042191231978223719441825390884077010445560777558030546725746039987355997435807226302698803527845501202724542819204758855184790124067201117108959166078521710654897845524955475142963729700546324752247698459278467356100044172476534857217313321150770259117515840634132722882028688566237966663548401146262794354097097679390840499635761153779001946595364177521734434092320950117418466920004669051369755963938685461547652140385815821965440615968705638321851992391822282732818696852344904119229724169707451100963823883259428715449752553014331951770096165700069856959204977320880784424714735332252263979113710415819255096582584563628836261279178328263286786667316033366283877228582906643837872321086512114333050811955587704987654486924775099494257689237881567114980656401820251220843678408279579070043605474723311125806248744621933801204493576696175397146100859909283256721679523695031965623067653012256659465523198466957808222960518874639531691485664131461890015181756153249010820976087442101064044370944264725415013538237793142007671411482954456632042857573278308234743466747087240594457405507323356948636803266309352528449193654511450504603511220518065055333575057199303929831207106852757536221969241402394549306902903596468208262017481041439478958726749061322569996896442599573016461697293370243794356889563527537940724841136989856196771431359336266049264306139670743837668984029592001021728592787137133792699107588369668462727315176657450766003633609556689634884805522588568814291313519149778981192325674361623102606642490931382528513400059655986868869917952781218283966082632665653452892772038497836416315106902291180664481086115280450448638427049415828572287534285582139110689619806781356065246112649902366780068859003475520676006044792144012895369372636948996997981093893382330725666126613029071133710587631653600387155604164056911843343003949313003402474747892794582650675674562832533652007140789789285849872542279525799594959988754798942618872488869733313575710618168507609973835381590351536281891984641077524262683902438176336958901924319051515109920627681531298933609429985193467258708148269042866053088030202111396650834158299002138865934049576065790096996227995918559813772582726352099789907242258032744035381946528832632629465343792736373602666360870110213067928186364507557230534222290593074643275094883709555410948836437952719912744936094348662778907185362532749518866868110474016532299402313769292740263444571710153130579485003227513895336627535744206686456018136038320406233275151590763638543053497299901970519517877203144360665929848752132635512749522721107448431683154009599727419821049590667955954962727593542552749339638718929301959576590938745751964475810731190388416431159200520840530770397414507687641609747024833302443820295722461209405570750275040737719540636297228461937492294451766569172432538137287376113222528813242059333661491977150592907896730816818178153351381359378539412661011883338607213368603271624474930135560859616801120876398043198223295800610664976434246588953707572475033403454114810709791095198801185494653913891694531004570472103415519421853901443019399426016008926889277860020286212759794718782084948171901274612878764991369339067048797174878476881598157950335010608323314879243876522984166103325354358481170484421613089959980383808660984134030486940412116090931327759058790472198274810314942033148355398707944405247895787325050958405860652515788554750638248615281054005751678483808753096658776918441317921626845493652577136442781663424961412442886729591904074451242710477179940325027526481207054770150909681823226669268038396283022818580111270620459503707714279952839654771049743731624370869734357858953884291116579700864577895805458194559217282540523906488323274173888299229189332134125497228388426421402353697334456856379589991670945087103672571003608409912509891984465980996150994379652050493575738491610198861801566369882361435364931149857849572428202599517945600468533807218995893352955620981024126478072369611624157353287953684683832697146820773469928231318275992570023041355006572567933073508798028854724615653059951667290759495596324103543427367204556054666828924446799486224095655782611361819858462999987819600832417673142161800569977451773327297642085123551089596145229410701655725961754395386300510018561863234584951909184018250298404848907982840208055630873773278634707897259242426936768000148728523721273065282761127371752229501993747991441887906078107943488368259516546302219555814877750558609939962906043428114298728908429755015032521603174128715738652584869407107507020893689403572648447408141847358510981763852016228134969625082052315438393172712924560129466569178591220294180768507175711806033123452381766646935569362542204750704666679326938649667154785491484974712241376023902893996107428979778912635246258248521659628791280757118824411621073711289964034804734539600171796160160373580348965700391272357391543076912904004928454375251747734619962162875761446772374381453809874600445396277058036647484624976026922970296951675116078675053286293800200070432192541604591331881161898497937981969336085016189253997717950484504103035515872307966427247137088681336588241982013052381695211967711326965441660818333738063582018407344466292004732053051577475259019685712546105330902485542877315293747143515571785044074827545209154146709118818229841793334332416360084172931745878475212028826734297911251690047591800155903200187239540331362030457040512386714421391215423978192719730769206859582190841476360214107590052772728152774389978959440701568878226043424378511500267318380563535106371998772951151546201459838385543202162685030031521586236498633484262805263736770603699702969770271869565203003670862251173539210301756580112939967003979058270412885299914684883046819069628234821936382702975015789022737323579163118835288219565809516227108377519312978374348646006667016058413426805484150351404731285542367842707416753561416560773840033306770160697884804638309400700090316313743327305669986540258820875622829829284481704535309758168449942028792558446869438107305115917626423189907512884714844853699157472862974491024782470108980533370149627272820689695426445201394381810847344953239927754502751218992360815646814485484466812581918847274923137740683951822656124724261491280607037868568933295029498933818339839820020006171380390605667915031594430713830168814231631144031867651066692354429157914676847707986091322229651259467426945047946550084187656195967396516920151283909571541165500792161771109804695956552016955329363130098207520437988470402279413750334440567608749428423673076790537727726612741546859877193171870128983705579073751570850400795654285776508647251100769136007602929635327373107375609702573248739005440078891271086453941854283575052076821382846164504816157021473180988272036333699266705517234160997158268397553757334278228441405174856004976311528100094364389575878247594467565496146083981480990467331776601595654544144985515710707883298147599921511753847532888432795875317669587313624546237630528250541117783773149754322022138025548134096595577328524795695074626537434905144841250496721947104190582110459383115555231881726490672463560762482814417251694402300817465800307958310141444896236019102765539114331317712518348757044069980781691820163220993398307775571573966052973482871766707736615537457799168252995395173163572146811657599347689658260073368861403421882034002500932638935305005064501324437409092651314729412453074471513654579975014057641662675022656946187435406323836112205597822303644629957887254832112372862542199050980759271249974936196324993042934926186657935139533328537558943176210319794097604667787253691475084736791456192958921256227687400407482820433483123250178828060515776090832779554017687399784723071208486107912295065490620027000858709441122313187492769348995889843880209323460470545406383822941912008360658534518324630670045844136492139853851078146519652733921582250423695521894992387516581110107237447097817098249701793039920781557547731746189248585862148921540084352818788948639208666708633036094060939969479790027647019759032371580772484024404855031421228689018704396653558121146293970461361595579361780455239784853449373967660220703888860708798204533763514354008025894050513847776584193285602070348074585753645970698522494386262440896469428712176116855831159990538460566457650168244667008956913531290236435203477485387362254920241535001914942717639500693836113654781667710450956675108446081744005930573221216867773774656542241537626493237666714293342338549436261732299498085139936637888965996847732040960180912100714229536220620672356647507175409915342113211480093205718780390707809078758164537053161390866029341931357512114851539509880520240332775556430386167006589519593369913825521467125031657085856326946323321277016699280137685556711234162901414494192266845250718159627553466919838169929176779712132483193260438880423149687368591232770124922220618159813904922461729672003624942894992709767082505755442565956066476555145662446970861394648909661096658012826385452957010888082484882085261252245185925735385854981796801870032831571508584114857161486960707752597366894678246340965523780245992598575160712951728701630019992243415331517549498657327577932817000004099963730303488000271679606284435877615748087101210985166337989041447898622375042447419434724808995363254243688417019556122900275237636167964035507402687814657364786587810935143478173247771680130124225617383790858852758162471844443454528385985726987394369405363652546443125054536835046386461869187418460116277803096626242546127753216758579320102087739623133750217384942196847686486280046248364987315062152370931685568413464310806690079757339901522668144550724264531037377680353353171378197328560636105443026130946384532704231557455081110786938008889718121587354839450204516622402812706997781763820289495039732137448311959553364419683517707991553291549172142636108921226467887080210371968198574982734413634442929341734320905282554084470016352888757491694761705398391026127209915985237660857465679658727681552171490445836032442697334811288527334498323551587946953710523169781074871192636967592813389326270099474528053274892833458365324466861315289216831920338512135725675285059737016752234219292379290152481879692989171387667265823482841816571083491979271279868345211939089316659922805930512570574594392795402484630569724008535976051173669296995641356201575499788493595419398957316053599142586459311261467468237470676106619059662862407031849375669618060959649889147883379291970240439048910872894068478228581516343961458813672472743482463112893631818188691605658605336293469989222525929583339471000102903914286561773691591185404271779664251609720767069592957009980471714402963600754148824376364661965868633037000859798297065858288581937592413346408451522943749748757083818360233100193802469614647483005711516587329235541167097786737474903981214255607826003053208770689994795061973063344673094795640537355917486874521416966399502133462540208323504540342925963328606337776752048907976241958170115210658728625039258224566809073670030598518832084482947440259439454218471923549416170455268605619969913745105053429968612190876788755923343714217782711043035020315847323861222860689050190045952614976111004465574145973133500064008392162971657238546513561344502609954393017585595071128212736202521382201689327038604129561899134325068167563217419232889371738472742761335487016228926911310786306537473418686037215794894641786378673227033958606131009196720011879383490509072663212311359375835479769075482171953344527954209512104241412154272476867822872029995040422430123056351492328948991239317687993381527186540399788776817009331203015971446674104999470669159711563957857238307942154997516364643714324896034162441774478237348015340680308661105309300511129804166645992261963171442650603783935734552364462077235867965782272016115581569039100303477462796759976648506455888006296974696875750178112632071346120079719965573445210794512939289969606232625370342098103693530023609031844264083623110788781246604688406260446236536823494929887130052605680920379809307389537952109996231168805319902766530866006296200888073643003710854578479312515998757664096598924909096855615757929225824165363769844076384448483366776661238566257781731062122882988767913382278414019097300701363769145360999124607016304297317631706561912950054734592569609209468214694867317905434063921270809483465119248657479395911033106339703323446082884503034825056297671083111247542969736900632502271697995968458544301510563632189149527559181846402345025376808976648854238237531224553572951975133686425311761190487944600018773896464863559111080851534686044686236299391902376742500812713128698873999661156847131943530870627853369619970964749921922188626110235342548579997278207888494864963583062482292668137469229164011983527486265010937153531704977826136156790125082682002514171979224283551648173708275809272710099320269502543153528514557819540205866574927845022870287699028829749956606586692906844533089154336370241861532516361085482444127550194352428058037793994865871407408930294372527515785479308623895396288570795566372036932840741360573070701294399242144680919710345735411859447209062008405751582351888694604953394433924353751528140077365944382532773420984316724845964514355700174530333541985809958353417231461828812785807212416369641474561444490033910150161843074222126299942903975586665033822725091091501453263503074845052952849118819821383845571740203814686431936942296167075857584058817087295834559476962314416204296713950021821121036348907137485291603420685481953967578031557913789486654832114814404230473815037804079295682084547080901652751689673815395703791775227707795164397509985949012660214886827846107703107508270762909666252088685007156075712848154885570612278964741101116284560289813024044668077122397830467714174129076010738040459686746598779687061472702290016932231560174464016080945598378120003720493063927290720920862348751993963588715758062825832567141288899211699605005719019732373379143380146746194852831217057987429360900722816563784503656296554971539988231458997521936282907141182726114516338852372085520975220451673360764345953748960982843311333184549020050840953495688424720305766912896956497995597153308607690656939699513288782842237283771720100560527251698945045019797409613148023791366100697756890236789348623168640532410772940142683106732199163856309358238409569872306409434750085355407056947248910553284531484397483113813339484452347012683989594510692682129357539687316090714340528056878182479561305443747926969523431422430086738314844029962965308047866106750161021936925981729030252862153314481792571248317918984051079955496253182755012717385943830398854139225565870805403410526063732529613153435133577166916380814091241014804540688106563319290590240278655862182048024784805631919557618385856741661719174230457753033801733408588758269634645282815135180289236970863638494927910734819077625603301230872143116529032930026497237842452938451825384036619628758694697533488676889826906347667560516365837007959033974916712289563149155387509598614422722143164790498856052961966225712112475852503417221065008757413414340540138617114102701655191400072279038854492435391976851305361474986058982666059145778950729855591767346038929005148929289540822377829645558532867556215908618250387023082329812061375435771271646697780117434127605053713475295294311696745027683652579880673603706517414502589993295904088379798089921551122698159985311338286325903068977107476366531075509587696565902896313022383186053722209896749376232156177255552841470188270206254389171634923343987413737439429003108588422120056213063292994285083223375889510495854369327246807759602981026043100617441065342665593406329932631692042030033142551437472891383517724047803023211640214111546397157925042903254260199530201907715508837059491461742069615756822162689376248230536841930898913941318731874357880645942719502992749005743741224995464589486147737912519334778985509881171500468293177283205594453976006867956328421916307830660183395864008298916560740362640996109962212069719313752641056301325846222661135516410471103527877728197918629999013848977972632351640277695369882895954212941747030810437383291835249254582789396719388902400558156681383866203832523817323304291969882170224409562271386424585928423759896578581693645879025124762850579002901972131916571339154986329647520978440586339794224823948858367656022300570828740288027431276369146002702771093462477623475131714074058642937421593876950514635247439030259690056709964828394015226914153046992356121093328325387056748583679614221596955000372217983906829532472858525582591092061419862486800301431802518778165594776624704200438954532698043490396066040329617221528200449194756803222664565900528899677114169801974026707445923284259339603305276751783529872417695181421731737075468887542569765938527726193390384408328108163117616153169625506382379785806397353839514397183210319821706104332491300744991140599783057828336184468656359953857626621529625399400953408464663117108247828125950463735706747924833085846809815928163423057956854514026180755706943730838145469715980571337035138063687994058450535414245673204101388179940742348595604661224491295159440228601769413499331793066361606922716027832751762316750100405850476950138609923653711358981516934063633902885897994574891248185465546367650231199877298595549529558464581452319761063440380240544626973963029052291501860632625356150897215194933437443132899385033749448170217830545475750414309922664331663759414329902852295444293654558943616360951889456885539439296488171356816945126078438061393576584515681997271976240148424913496620482478423792939153859612665993170402471489683460453315717879728926698539347508303817354425927257868801634491118563378283733287302368345966505952999245133233085312315568963462721274994004860954312572643138089203439031743712604432276085046840314589338077252872897619427812763614783594493685644048803413359158701267879760985744648513800866333235394204790346899849267077746841174284112467081892163891477318333718634202527175304742274223314834267124608858770300905906751418277810072612216106874243553878499534298762273045724587509195427177129181587830071740103966515677236025986576892118510283964709410353368671563833541248660164322026034207824140480346792349569980478922979079189166103127274485972843032427236705785981390347397053858223822767894205974373419241764950657237188105955172686957035094975939443489895524665650029684391727900864527991459755335463506125205653236902511294487753301409441478128764227386979428093114379916007601630634498222429923323330448994706909270839962445284155250337470131943466465525972646176849506517014183032466091750656436121021141283895866739715135201175707634116685094073373982253193448649854431292657374444119518596431932777771677819390412929248057741807225530963378967871538716206982772534677291512870830153850398360095658728048564996225073699920214320962278204827196603056195206639838004896768673608089869038741273173561409101677593681467054173348933142375264424288222167355521176251853937571463929199247604003057434192932983264391625245658856592264333157520956700542727483729483463446603881559844698186997404686260967229081569613472598117693048898174014365100542463855727148406838670729914311074971767344172876528324280886339411251267361455252329717233682590131854504866393953297393227601940601025874511338150890030943461774007368277568001534046698025955107328774006831298020870007115547290795586258601643834213959553068691773423424257448051651605593797973568874612735076513808493958215741158536765417546351633558767025994265096317608611371941834262023824810771535776309130948029539193105492946984801086634166370337889921999331549912980873002651272015313724535628946511801753606380887352447639348798253566602618543241788496833806571977889318434865185654623110118016404644232758237579457776093317213264293731718876976152985406695433422404857971979468421334136588197363954443121696290736735337703179676533634951405287456137469683417058863069369274205402973787492951283986950472381355289904383884775668299041466481649715966932910002582761124720926831399455723623026866385207855744868630515580548641173408583117304576506960616611308781705026894894255915610073450109225906012842685542906663669233809806829988295105786462815518028946485585567812365710346947871613946710138154651413963380448076729200658129782550087249792384501789536476397754385216990334737967909057682044077858033440109806998030749941227872449809187893680855930322500545317971066007338876856696135538685011250914063111278304456733954009301189938776080168579470288822902074051624268735485352819935972044512751822944168623687676243929385314215409230659678131833015663781038552011705509141710972557287693125255568382374177024019067147816882999379026749554742169184177504822260556509256949853911666699450673829710310794173586979161405897156111113406450282212497206320722060876812930392162694762785076152837566336191016887039091585288386212785524231803912064757091614715424938673038772258025046485775509737662386206428144868425398594395837462085746240727272455114409820277865806438978880355929538635418816404596410342134043237929263293759044083647406353981400524566222923168213229015781907329114230110476736854414211698442175260037446614992615949915730058157519838758015345827268361521946051342703379055517012995112084812563778919136832479318619074555018591550747979195596919067769622690330695927932530515623586219289914592295059221181926084657743766401560242167480690917718114167501685134807114819052085980430290817225129741464801745338315040750721078080070822714634012789444361535212085761767303780793458244799923107286371022894063841943172506054761608637405120269513138080965757652323701191013468626752061918508197810429575880995597353587188364375511902481722400120901597933315425785176213233301305283778684601893785164395774268761806775279763393077327099176772712006820157281230194515348120208582515638225936247569591063919141461404967043002955643797157324544144106283180506545195998342653112817952979063428977382586605187110632537357751796808165896639194534204982038487173183563542356497222516391036427331651790471503127671700446676289412992471759679764031530628631774103491627347682029765789766431001056462936655275130347039564034519189283816690459397168165601119019430263418896143418619590777360414701167667335928754328820324140907478748720159681563678944316028336455694048356070567359253061450910985839865279231100922425573420651544737454346839138021006567033246025696245403773435022961237057309669106894721483372208535695460344696973269376931176280198380071605333023378142702164809258711344384596075516821013596575583091214479887880187967416557360095947875667399339133840863751582253688083181726025670081948783519963836521606744664530126884976680132830078312505038875441505703492912784913604936924721842059387176247559579912194500247047870247667273346315902540631220228959419556935368175332699968675735860257000959750654277402286380079044023692129399433738165933435439009497505267581784866695656230303117542992365525374931850648006988836806996416081991765007933806333350027428754479861343048865886587030195731131297315897528984440552813187813407960293970382436268119720803677418323858430413895890054354338398331087040948351672911469534047463876700306662121250107041026718619886345186091279960434290770078315712207972598973409356825028815243055571761664775000485182892571130670054830267756109394925868683078823715078181170373400412370644580053531372044033495951573839427384912115512094984682999640403627100909816447308033318566383333029576151369680816026129132721826723761273483393466727763866281878968382359803442313532398663012297954666346947625939264690864144067763324044675523460165051694420730457547465955505563026540786965768296171420497705172586459337220113162694350666396239814146877669984570045619205700397149391579478419495004886511365216823239044039075927883844112876740317047909142342525409926248292131261493648745884677887396870982687562869879354402690248453897048666941889741080544245157578157719945976977545045660092208646351340569761967996321571522484181147856636303770221958011284754945327699932735131162009383769552911819218635921955162555687686868280094864581383378984406413385743092548618315983561287997664373039877549614345720145867706702184301076898773849357174107085058638457556269678703052552659018006737187607346190485515774695545934839522250725998976921597834977494592193772874322167408541432310771449055244334319556465744547499992229646923818636674232717284704310192101492232097207076746052537244510195147455569762474179410042098724355141879317345819573651434229259037347287491122487583382396032319718734099120393017868768427788139251264214988041147352381554821764019094685867543089569360299505813955845444914173410695535118767241141526903873648428761504269509241742471586663021075061917001665821911849323480589093880466812918791736303275393614852478000289898505367703276519236229237721545797094677441653120120487708980263375121606212756817539683122451695490731722362364121748621605955359342599707969838693942301831115998746830007324335823548653864242893529451445841291010626039839264228809972647316717649394243609068968090620623240048597824921900880512361582803510495608615892097003410465177573364509529134039974841747295088535152754404962617863801682971157800909558419417161312957640535052767617203099832724878311641269705418282851762762676997717197545113445496744982404648877549875512027842891052030671602410643553152477024522542540366579914335669657138945692890055281503835194003838204598702710742022708182589751498827316680940928087889050513527992754691259718213664622583537990284349868455059766059435400102185743781912057355871275976679144026308889682533562296005540595240310777572224144104451525357540496512300445256576446896452023276397509212777114477381011965865728817372174446014241336048153650585485111664723879721387091938341642924836547717155337217711812784881500060508831917604823564398442885385332606739037036255352333383301144610835103223201137330794889172553637191885596258559054865534942776591253050955359937658341514407483926089899716968337470970269061951021400071455621254535559431786626039170507331210002158897967559853657980795106469517270499492239741228920523590186559231818580471847318764042041728060677059869705063654292483010066669942643825847397817390929620662142666588228733927392600918804514334951556518181810751305272399568375800143678497019725471764286857765025800636316497586475788231249576863491707744920172513923596890776255772015567018942927306395787341869771169595183707819223777821053777486836972186083065427618948621422275783022837723176647198327657156974784723004038453962058389419407095768726342532031449950801416833079640388872578121433581567093636148899221933888355131861229372129160519624854073677548507016946489815199434401198614580890422480793327501456959423872457812483637108278587993538071642323909009942297389862132023999502881200975273414639589691626608454984165706503412004035728022143310917002869253037007026605820768422399777298696278338047876175798869355379820724956175950801906718749074389872319688973029499256256253289743392790211378773732555067761928322180260953092508937904607453738431439459732815149023551830029358079447110972223931986702795999058387794861390527905316033703039300426121108395447607885574132202568179728823146206385893279310390296898037478594246111276694610993061451259419411106526647789766063759530657937402113603154143621777476986426188286903559253623780868080435108533716927271966853254755772527344626467929269383430182067969269418516330768006353098477663707136852220404813923749125782223581269881845018566906191498079280302879271622493633015934443763097641974074680054407376122507231455528567606163781505866227837100076640061505746317720417542857382897488976103805740539040291072031694522546726556528822377933598876344266887363917961768062791139594705252799113714093533402775894561405101131848459473809036841576890454441113359674659773137106540397852036021357495083252251951305113907376919884782667431388907457425124599754006984460958723362809764915380907257908680157010585826941895052380930813898768745666771785177464346244550727279966869662509702490172004824373471420526322561632783044328368459216229974598827744576182708895128980851674860620725022368735893374731157357067234773822173483794066318016038188600728640888847572472913461217900914056841240442297799626469568265963569178847172673761737964700889012850660411564838888071315571120851547597694489744260309356609387235223452451029151281309618083087721348195554642045030454297827068199813410426142194765402618997684442462951635093581771305738067189948576346861471062659513274474849712391101092352835037211009296198247805403936030885922236419919928835184422311643169418043566546557543854565453252752098753369272716968684708659524672170658558575618937820306750873901091915644242861556226335507732047993238520627793826484654592927595730461979155328122269673375553611428369138912051517657890306921948745217919514291362835629247343620660826223701160265703508461303659088362988819167649461941474333799874898878214722397665205127653816385253634753680645477033361575350205005101859768021915111094236176632898456249434601185395258753381373347744456696011356599587247774220917927039923625341420644637167499491714529555066839369531892393399436040030011247737880705889692549053802601248766667633905383645579162229296087080577572185789524064248559842109342798354974268478568405393407982715007710156951345354106137111874537082071039415900699195597489123350079583222468327073327536645762850115383418950264753699598836485687462872788129663666294445587444527699403227476100454579407303025021442377374391904506171770745258597659313955678896890924756964309005986126435707812804157638423289114881778684085237084383677777245134506000720918640221819344911054382103626435191849147576337152407306802698339036038197396597447402064775169094241849256177676112515430668095080927715683562038131572654788675645376777590220122746032458311617701607244367969842861467197076342504448200959065196852879640766597796260426189316002725245402675197943147336342970281755764951646148612804278352220194053547743065123048635851877214151857069049195831522216489961389049894899564461467678857802165104789658990120647601488911097631851379628722731720188422109957417417935523270544871753125104825852776668523597541379731976292518979516025396734151874947944093959740892578028105241814529481551871853213870129788277323137006060106412188252801421200675174834678366204620173677260227798304747697453277419208629306921243008145692421330201438867923922313250444347166037932979938804109938761125190591691650420966899737872486549825847156422323420255538948932159439845511760013441376024277774483603287751178330134608655975449975529143558756304336511021268805538672447199178553275293097151497580280730204007278698303213897321076383573486251503517974855556335897420533108414198154616354010890413357020445726879721843101955972986723277437689318075002030266974172267961455383611348418435752434252102290426006452955768015620142747675567164960631865186586032571790377863286931128502261518756889535793544284428162151381832263294252326871134197722299586120231032214115561769363038940046025188123576272542194239832495784243210213867294780275248032245387989432115848208456614933281257343622329264670297996728914919018666498741314691829600462509694120876252694762925872498574379769998568223003939265502053137573050835606006032577630221117233459626180120444225898295155279383656290426709592710508612569621673041516304384099160098932839343379703421905662572071950937554971824999092459016712368173171693208090211477823456777499294127893182521749542647138585683606781808947192900849170268461796179278344756119030043782182593971260183404577592087954429683974857485986793110238870806744403274316480089960215595724581402187641274567148258741256914763221904015704146269171717379381640485189818185243577471190194789949612390922671650160432967074160353534933512453141464915911967515984749966917829856996780558775557510621091553231863056232124246564599962922548877846927249598861125717214455640444467968658524604419360113687525213722307378442770095941075787752285212397335112311486620488687348789227928873169812666121154706178790467428378618037817967224087795259077951845139406450018749587298541572140589773546753252127994073606131112533898632945428654902287530469635626003044850482159715146992383484156043846228442843000464265941097715728744118080491989996089759820276302237783477920414055959265881210883522308634149293018743953999763854209414566759556095466356495248501661950515767203897743930871150443200705425061422679015848833653114528409205771419513080192424204831743591451544206651921924126127443924179954715566250237653857417458634839681227528825377373454369724739596122098381585363184757668116286059956333875560228494251415994025867398095782927454424237252510459410753593285042142890084106716319137155994159284499955161471580725573432608222730608110032052038227763772215033820997098768275325897563960317046809841459319915191368391084305677889877955781879016106803823747937429769716320809227918260592840131960591559233014572550149068888289812635247696677967573369185650130733642720008341080591283615176916252743375317579409675389781956565466550963122455874544157638242317954374539046278771281341805397791993983700898197857157039717932187409390230469488791277072616273271904375164481832094665295200579708344722963899101449370069353692396616622802489539532953602864481887631925249138120873024065589525871696738054810318188860246021001362107914764941061168411401529781497808537297998185531663789919980484437126549748800568409112997454569680897210713730592967773083965226414268526350581901660010375153448977330856484542263984744187037733396613499029656486510346541028889945525465352937918861810502540221030914370956570345563868863422538919029107737293179643750205353841523887027610964026814067525708953299584147213999682978843557103491710703603178246387212603979132254442902224525927326315620093548876038948578321326228919633019632699104668315612469640262746955801115498409119074858284412246377157167968202375967322578805853870055563769287721104571901771318103219837924513674263501834621692452723139702884355766144819916214901053019653393225137150185231736234373345620490657296379551739270040749836730159688176191082933873011809986159677366076708925048706449086545584358738077398495812083594744664215935274784237064681796918973221430699153417977646053223218125354597803066390889581143069946676767725939562457493988037186061509127022604455113217811668971151151484888107655995624941437036126499920434364601051756944868180496949755391611286697091910509630273244149881258395801418850042089760351787928482697597080340290115094358564024497718982080714157381565652698710017696846712466946178351919422362591812415014718608034154748663087563573615984649051016381004046678007722620107696566778520307419625405314273203721169957253455843274422603537018149008991003294755434911942951732247709548038574515723620989745256226388071004153622107442378818916480098441582770965419925786941189646335094680765020089914737645756071783276478951589031453277168902294179850839057550405428425387334596341411950607979621416471731197101964877859148402906079848735147129201633908691002052594467040036624741989766245729569063814620453005853913785973222575792450359461037839344298966834547842837208933752937304808762387356758935688395982550838162936671312799410619964371996702188597914620701321472804862904301842233805501262772765560585613714316273883821554614215575802986775609526754112762073398342384871983061676060727078286852000561536909951248686578803474137723555757116995698839312500878357733698667985970775333804653309490621754947114779839304978886007794073292804636824906008323844800484304490859330108725199421923545694901883881687619764649521516617849740122567041810662392689029082611401380706321924277314457551129658883042384745054782141358012629414109405291034417906017222274734107911611132688434057055999431932281385193714486829130244987106080198916072601593146524118251332017936076374691680526642366394572586710891108100153917130067733395074397173442802204820824418712218117502005746359470790679267911507895749499769601512199183961718943812583235035522687061874990392129463961578626455600169676854168729578609817159115560253206583832082303040467364458917276038983830164360669060586645489499534482291396588020849288023868166315368258628474847495214263327805522788417967590760370458680413640373409758622354000071536383516402758177295362327374720281626977680478589660757024223064059431723691087455862859755648393911041451173532083168566147000934653231726222757199689199211214736656268277461330301551679720733983542259757346962061766106611860746660558651247190684730843188887935734235047803313882228985378254783653006343121000126836593538695102291627074960451809482888666443960677387016332922889985923954391832134797747151725371126219675641223961140620424209539021907135599021984857333189776211858809432222520333373459408563569698374800860688421110635349056495935497134903820159272085930142649348540342290916564942222937921410510749794177598493259213664863582225912820736729479569827993211234405570052541127133752686697234646153198501621533454201498731802565377050153117311508039593596481469182897374370828890840078031630235242633496733899751223754662314349754185593032968139126288311969860422236695180060861792092958661477351987101450725731493699336616526337189421531496544180865560456673472042267408967919880150019416517385354880568812544197764735487902588895594218049148933346550642845691233421346408862357453257555487494443579319523737747509283588131223116730324988398188243694365536529678531699210711646618664988703833646129131245776465796862742403240235773158764738422389891540457684610965233333259884606524079357482631659430059342156270880842584013484986545075819281218433860361133249417075463128623155148364265006902906518707204992178343614632576269367564582399472557215125777901232465755310951639548892642239427992297674884922379959811768572851012476069073990872582613282203526184623637597317378267594650378976771933030782360825212275636521195110550945017287205350195846734898904627861732943735157476888509403561613204481700306940432177102707001203917214580584997826935292048122747361876224415909566413038401367907496533268959229687307897043028180764477074985960687036865607729111280909374023348794952896446413979871219187399932463869815000088731665950793906509270165899676941183366399435393053873983611031168479247054680296806192409500887275321386445732483105408151262437847151769942329583669642217764502234906479447744495677337692842896472688511232112280772208888824864028094719237493279984030198134914835815417754566857875685350586138279117463639380849292675355978320270660181176456730053580601171118064928543486672750763723465046891719176526412930036761437810897759215131249510553895179955230043857433959801521548620550788313003839519714309687657754877334769665066764047638037541299628647729495867088813671569156400325066113768908933328984046089030863620951643374087102985208463137178734977433065758582759775182858750963903536618995732263085708239296075973134698333906892863789179921740936594781960221755509513936186510199548905464921433821261992088527981149954851903550907001895839435985926543812454839074851978304759538871621295004299863579309322144132043877837893403409846065905069580642564558801310961319436613418907988740475488642691998767406822548720392729669991501600775325325188060569737018043063850163706353230843073833692900684263404214454033976597892741014406084299762026331199667128599104088882870237570478100685627589052156403836657929048572584782841495952606390601730176378397184903184665645634684729187366097540408762779864921559807076278051238168637244585766833202977032995805488264871933040035949181735729905561915999225472561290337877619563065975022232762317780295530460097629530357416848555134187160083508560070334970335620826689919499442278444409809134025691973459037790618514642080961108044576473726535659443509545373460034366603759008759092861450373818099023930625318666955050361589593057659422044343369008639971088026916257566832940830918356983463604493205711795237660770213971374689933629528310120937573976151493993699043810270721011819272194260919521155704714383915315005875718763943955445314620055465409915200834047278350613898967664587498500416354615245052684381590360183863144330035531941704096319110795053599389918159199382991540023561766241105236094478789366004681515286411536032303948580087281942690376089575601584087981490559858261529960809820268052919738249357018228044461011566249606767287211706037137477619350842774864495382251069334244134834272371322599624994143519132071252928816100807841027079361430239572169810675125081577554502968435173771169307919977976616362177661792305630472500374977292220125624582915250015818469470307113091190065242239834361497401369717522532257599387209830594137139341289352404968907954801519797636720482229776966503511184499568991402604297260932486460185279163734405330366665578804052466930495941242844595079413111702228207134384068571562115521620321540238831555474500349855568048349118033887166651834111269010169779312823403448761280725784054668195424198065750336793002307341016871351539041686128901398712805002415382272925702029861700492513761323752735768354445376092878815368092226794249599891843009742853038295624463199943095342333105544925754877086184784718865989939090700336573554720687217970691844230998560555990945754669349862349267938730260067365444183184024464231785638639745514200671399412040771171229192681823540834464032375158591093865872668513961810927104823702332542565555194993575897715925348127844525446611703066266594320958113192515204053753342836223969435361421289373639832504283979748027744878685697267206916665746416631632697029085501869441410599197553531445003238529678883246497168841644246700615595200728462420077015334691027655119264059264137884430378278633518061425815175373018031344824324424415692322392396560652977549513862953258718864959425095159191043508692986817958385787536844891947586832210776522140134245042674756827813641282371983334000257557240886564643889806157189318463868353627584649320478523668435724381090132831713862169416781530313635635948524845191087912768021415150322367327954901817325107666289598240938067504949285364181580484393242387979966088506205024900235247810122203363095215054431715308489833642233580002152993712234351307613657822747372161034636099552687892655045189417597539564206953597986782145329606565930951246346285794754190155503378936234901234355627545595241828807844061182514691040769764184410995168726296523102046183137511104836142753523850675887875911103162824689116778783135338613605156537427058179636780619911924915127581798838013310772982040775081679658450869366858474987267503628404702091075655267910459531310580515345171855648787917696177770617693453284561957513855934953602733187776368155365901302479389333854327273887915211512240484304098594060578110434254064240762073489798370756125869279148074034378560963534632234137756408501713931606008148732221277198526657860277186814446703510678332384136116846213717065172307025533296429825259953666147606344220110500719828203799932374697950499446348612140894315734649993966432679440495731400331278397334397224752868754745217336029368198124746747456810841004747941953658299329770142417882333042697913485167085983110416761019878026258456093064454151473038347297226211310952687194444503908010875394101198080241530971634932699302025623045145739348588732697025451707249127600793941066579013189017485041566542523173355701457475019435536763285262917329227448063029893482855335227593288543383000455828298245346988895033418747767496083710402367605965684536225919007323210552453960118802035576762426883175260813275741939694574945544209806589244783693644522929330293267101754936874466748552991836877802577446965305014586391639242829127073640245133368510762865560933452692173831302602786544642269335239923145561261555621381985161761130198863990605954999985821408708801979066849204991234534845537675084621073546830796072436485242552192592012139470184831620609578835229095257897888569566736359202207092734392148439093882595241103636834618565649566965940242088231598705049945651248002469506253396526107993142130430189707872585887518892186093145447128822735348706378851240414963797671704605448504544209992539072006453008840063632969628903568796411586464846188391640029927611847870255690485265423843007194727658450650045130475378397835096747272938596470899535228164024628989678620592076567947355073050870468275558447407267945588306344231078867801181380812436814643050080694951635112868492523908047567480637396906749881285389078102625234651023303377642502164435211720863503698111217971514689927140840025957312340411024972393827043823125427938297809626442037483006846058848703623181420375256475564657407859178350170096495394508282609374673001534067561010491843522036587500310742660050936871513908279244131055769439591368116605151825067072955376962463540285409492147523813493395293156625007553959485060039662828888405437354305199371245339382952915329608826486557770814130066334044762077264634586173907233778670702811563251293715451606319275141156463102476824297600928277802132213688401288000157206103544958244324412030678915239698469745562539877329989453530237130462846628712009829068252821295164783287810283517187863055375221297783778523239262645747610571040273338910795600550612317789732120736723012125035469864049654801033477013933006806023693599436827357656896159170249548491737280443791049354031936483940209924588499625082358654953434108198781737310319475085590687990608523122491671813249961671606362900645688864699654090990474564674035316947124100870602377956001475874738839713827068059955206519015173075550858860148837747514162589338373793151156484290364046107313267872452376737268226421851626675644291613767183881226318199273668860863264012456617994539032974694927626395973485044736196733748867038573582108182180286307988454304397439609867501328459261619590936622092811359190867124685373988407144358631347699956216936987039129780408520607986583530806022753012284580795484251933884911451588584493437710063362348680048417988726071792737856817665831268742233702630617356535105233092629991522117053746349866301793919675055308081003222612214475927863350035743545085452185403348206782281108326126443654150288416289335318329918044532692543615100489534245698477409262845246000220303316124189883768964038737438577614325347305351341184003040034538272498400143930168022754372049946815428987022050217554640390007388598917888922374963192738075687563228516661619693849415273235107045271036436778935455144180568680171219697977423692678867863734503260422892299749307918551364040416889357434232915810986083257974333657001812502662877296066598406404251401721248476151971812920412114064276656013965015013721235051410082562451412180742208214059362748175360195593181739147724845883220915766213918883240934165435445494996395166124878109498859247490090800715620119359737388274697159596263363162735481232657754231421746103493755533624565151713146983728318171487003511300209815706241747161252554395720128337005174081505334918555408132851429939676897012763798548153391018156323723408272802412276645810011544033370286950351004987611076208938334386411307362897661867228127442428336150780446148358254576257461300056804202752277851265053725632998665492152320183012185796814275833383054725867493320066547021559684954082743795099213914358963086889639007350452899580847463741748521131034817636622747729807614866328399290703969714826421246051436713064767962367627061249042104482202021026186711297891802702597949993316413793623756747324622565357440106994703860194213724122835714141438388164969646965126907728840030351406661546879305343997574639877039931896540761265719332820391773521475615281186958185884050351307938222112103344659873795959444125038953676623261100785147296719918094909054820102203331959104831910828274178889910679705306615289090305603710880914000912474051204040140986923128750922590672496816467048221431716853942871537968118189576340218250869835078712096734159028825631113938356437749014125322260156160436252319215127639396490834583505252369542063929802015338775578560135918147693109142392386247319040364108851118264912722897835440831055318504021300574039166932550230304798607716146043733653923589332477887468256284773451989042064081253496801323425084722382667753137883904743849429606236191356052449044058066782532815568981543732501102129210380468878732842624932181469193031876802296437239122686979126612252397433282065859638193967628775196150218361912831503480615079996722596069427627222222238876455123023997472145671215789665524427554305963289820694035227062499329393479795099676769107879248382217851305584171447621579978308245811647271268532053057511050347193969466377721979694492671141844759220289541984095165902321875883621928840383138100765132288782050952210362852886754161671261325625439723841783532063501417313402559524746711216116259749115936063041494759476935563473662400064121812458442155947565686668899917604784583719617887764593429896689536685864292519589994165751125597127851949579509902619741414238931824680989039120855052427627802549427002731621168561911074157171808764566837000177658600585408734649597082758811921377037966143448572397935023025027755787990900618620701995249855813903731123299416885603231550055121493577234976704786516308669768322628417666651753434429219878245534688745427039520226042555651334849604555524151188507697938595982938421370314359820660897590280003788074689514265196478758533576294109687612038646449596504613429686234439560278914043005337121005775843571891761684458356029666320728226971889755169765077678399288150942928623806869139998302926290461690950965838826484020430123308892075801115574047049356031130421120081039924375676673816892739467832222222415817144286277466514491784372223325256257328146094157811962170287608683488450172686661739392442796938028419435165073384431340908822214407804177464420898951927774139468037916668903681074008551834861927004275073312489445883764573675880314419699314486226334006752236024920714460612384252005544271006682648221233630481337065865176735300422385363978224878308907605921321531885793785953068473964470236594304994162648514875096965464271763332917443830979552832766843287893206534042228436853972278201522569247238749430376150119308117285216784892829815133440913399289067413389473233391306804845783110785809383365535267514803376764057788161857353560818738621434432640510515477016631683951669328372898336307963444338051809155918233366348338469434719009974539724309518583412335865880392579981867582828956742047579344103320362456174013487884852190084325041697950203071947998940366948620046238510462747237781936448298060028494024193002937985028852590679648279498612330527899094252300922335720451516080825039791702454302533651831573891271811122268167004873388321651458287364649679418156260436981858199363661427277941419146300173923899934731825100318273464472280672072925969429553726304398115188911355554439921093766966842490415162469494268667845968670100441544729694241358989220952179707051848466881268100348278071442478875661695481951321724891051744335411442975260487608331763839376744324893227900651064627661363742841779843595042187304847458951981992447386165608273052172067364296576811422296130224550180716361775383892400976818157217149945748834334148040305295922445473287807526699237357089855200268115161447632928097098479821615514978545921340385225599896477463694426149963900926969939753467518289623937857431712167414677407322869454007169873078450117892911442618214356315861007239541036340190946945234940338491736734696838037517288675857407891987154376862829127339125292026643727631922089230255267289207658999517840969130238003462902000607753269098416976488083583046392909644584959563503510103034938240022323784127284144338698945577532452257830407043271095009121352310708203443354940419415985749613110572678953690880831481031553439390531645262964846396950041999999949031081667526305410451184116447269150438354073206323543222762301719918060370053185340798903826356133437986767941358670352856570645234027150747138274981102833515062017681957483433499610011488647808626153092977443964166134539451206320811012981273078618375573095395654878111465456732073187052186745747087654212223411878564830132862911972451658193215086543561687060454554582090189149453391792345009653818808282924784028098650670375388889253527011772256069575394028775442365141034680764842415524116958900464769339154926947606302542617896703469809403172319710285152537625922387521200192482964277291402525994600763846996701881407601458995913124796386607767143745700602800987862485186726887084437923874264913253180584931623537206959821732959657423092865425265101470515630689139007214587136640997783864327871880613137056169238306388713079089782185832285664791078021395493493262438731835664767125281711923924403542717118557993429221204108364748100140986879146210440371294452644615460317559853725206082377800117862025199349564967683537267474411253585822428395547097215648939508956559647072908942063944794937983497487718268756995382371008251929270963569982953005935174843490421101260010047541830326150336651103126024592289900613788318184242233408067756744691089028986343982466671283747706865748325959432860392703903596944019766725126438141357248806141177826353323778324296371266343319598316275147666411053061795013124804828163028874865755051754777969044623877037411381350047981861114414091237971404653745282482377207237649496027451812266990691938786574154317821162361312416252700914967078629870448512917167268162299511295186406897492938321025018068310632328607219957773940604669942183405542092300714843635089021066191491222543480383031406641421620982708455355894137825370402407136015629740153215602395428622586358649758672377634064410519442689564939277308645643151681543289582455346179027669393661262475094020567008518611945359079697248589090892095791717793287343861032739938334226671044002134224885995213076429417393556912053180233914279008432310063846842110198056442759653382008638630009300226457819677149515340908293994102828117380489631193116492995494256824465303014825167868220630717445726946774495203186879740577929775120066535475738025392263331504973600059459566822146835408029087881907649906440706910449241497396508458438572301466356285280485949042489092140874557026921269507317176834457953318202793729108962908967142236183486549573311956473874784082848970507123691100197711809778546536577676802631141350000810830591915375607695829802818530259388660922576212497852138752183331627432524078204230260828665186171056641589047748308225022416343522117676003824477214774662672946979268782546781815943783725182275908575640138080793622458563811231088322172551243327236669126923105813850369803022809911389204053195711428894652559704049925750225518956353412158765483315159288122981286054325517085926477737632827037678449905856588163891373194239805262840457004381593228361084517907747926205698402980570466192671869292413298284054329791833903559791753112032247942275001153074025463544857937417388148265474909300740765657395740432616641901480148412307563611708403212857506187325205935525176220188035812399507737020014301032574663476509651739471349006547756048458807677442108318837856210711341581437079902385303137653083938632573501423632612829686785607015829996544984490815873002820969230707076911808978375835226178358757225069689687411374687428066379725457860696189409352403995891470398174398304255766762966038377232577482618943633215589942607109839441307642524716295951937966890796559970398102894538151296873333341752278649740788611398592617180376593732116238337677937858243095123224462318845297936582164078048219811134218893638183663001771660557828770351283975198236929551381447661519614283950361301742057057304325681189463135460940760049652896101586072772729413907206286133473013101977872924747389852595364177362409014128233668509634160524794349872769414917813220316493033135480969924680260385038221952290474275224469033105804958679364042792371689546524580567508036748022604873313599507513850834796665062505290079608494666454527193971030738829297588051540723921536364951440075568573651949357105644479705996680018859469809607420982504129772660258480127906224314585895447496993100700276936374778366755179064826728672303189695606055033474540901820177907296264900956852599298441166124474034622081630499826734177345677247504211103368121206535032833096930161500773325082000819531573778068990584701514992281795406789832070523241043199497639466724668646323467982567009281098589016532311892571834058685890786617119743464814434007644551162070707885131029698011969285448277291382059807978391448697147458783214269939713006741358304346435499299525237589008524262964285642761828376901788845742656311387567010865536574731072324709792195535317004890192378749901703394839984845704328304399507497411085080433212933011631719832592381487863722397913989888184102526390266212388695231636204243657411685097552844441563435549195909451328654182076484356236574570028141373141421808955886702014241270108362214883083395208204436400132447756257510052920472285178569990867345513333192728201210428948747774949822163419975853760710367168668612949647758758429227989753279274946950565987065955467487047208249288976729156479181490913388861020755927194769065981242745861254643420629196100059807475829540997889907888587327906306381751437450543499560127158624763478837787906625600160259182897292861942489108995628462543152395287122234148726811955436468625356518535859639300847338880900089832871036292059422304089996751525939946435719620893510402205672555660535703816344521452483144348601554544518689417115746000461140785412713296265241445609347715405937091364994938160331980961236488255853579725743985006820334041905099716252729755145280262572585869828833620231986562577331452853676107454826569665390591050368071045815009195577173330181960455421449701915356400409028397069355095488055744249340415354191739919846844497703753454206364910549834478951888051405857823689240316553255743274391899207685200954375462910536117869388064696113670451878334368073757802697414584231956355106947065514902583106132667994348152167433014512999999324733350041633182050909612404645994699975421423897760664400439037268502732039905176052087887043071820944295233453179766410827406287396096073371395494628305516080867313539437640188557315347606678291769486885281524906627989017856725453982492050787407851505460708036147724652926084368822355469181991434258933053551506984754456255768782320703593136146426065986272050771213839690582614772657926336554048570494676785999748777830780612802373372128965989768499167692769222583928410056008437031962684171190251703611257966403748691893792953249547627425266204228515670549210631045963899549921639255440998564761828031314235346207077646622625440056126859277661295853537821500869655668530635528735874277941964948280592463280179147664059161870776273907479311038243235572984623804156530599090045420418993596710145727171002680777673458206812948281944658444579841150410846295755989408826817054817867619239690014783895372496907940265663535373618830775419465957292821442479552193722657794183145703487384094148467017508735906222962204648179093508092359542337951393258322626505164923742920803666577446786315696292207226864763892608963734532363629885645822370604723938608437656312166616607911390428438953158501160763600940591714508153562161114693836176495528301215953613245809282796683533958875293012502346723939026370262862122673611043686503085226742557391411679657553323131709086375236715190937468083164514503101116269994093255361204209432093986704854663099693622568592958125665193725995464262919237552551433518510098067413805235963585050153609804930210855383277873596690056128284902507602358399745422382373793635972109122937165529246744614891654689959975145375473417027827381728817678502457018435453303590805176167633451956244892220750497217439974195878502326042638753910290020767486751854219079272285666640136131555314295863295691273190111404678139012427169461020176346662553216855959736971889300168017398692902594236133687112113176244599245517636155073341227390854191794031170139210922315853535033702645172496237217606465667705191796625136483215312069547047952511733771736655016880198591114896716891167437454163967046893166036589083435684470927846017989855272943092428480813152145917968214663803022692562739790084976975063591740049227127481747019887221338091408278554274122291074095633204546039973378655241888248125406136597672299480420550389582219359098589797289226039216176720732007491901121563416229754929770461195555767597839893361232901728029545434469437478153605675275809720236584616196660148064621635463294975950997112554259894475737841797807257811282274812291899292340519148687805876057263840827974631549028904837572260411084080054393720422747418291342969468017744079953203916800421585786282605671577807413243508684877197054214007241743062345392201145715992793434294122743860255703942477681401150311315700921482693826401249832981605072810813659333057471705619029702047603206109441709764135906985500849363211270248397687198355266540973735579970871992320716910276657096632808142147951434756543319915621149925726525486688934034448328568685112617870888381768377822086069539411881227614392892081351561789102870802755063473493354629287452889883783045712243325054548128861532724522822155342497588862561892301348060329120521416508183689553426480817854744455482004342092101766575348410262505354172036687190804705558573467653656102418160740075208419287323861140025081409853896617487010978568607492629466835281464142093819069276091285494844283673273140530388403600026304104773484603190745071292132223371041717537139452798390268688625517947788557427840144399585877163559068258542034077743168162232801110192759785796252723285699618116625010984618635335590435929107384024696272755926180569021569511505052446734960895182039850225306948038652226363516251523372987555767589956961114600520400062834350038830746406418648378023935151560764257148389730718218001323288917154843382857988134076994423034524696142116860851152536270956799948494073255709805579561735551246645719634375091075312417858553169607797943284950817199887711237838644811986474666917454134643216134713352610245061055260263427694157622121820698237664466038346694884844200838577304073954091336512784484089641940226308403433866101841170412919854491975017256579516901280826875873946773108613105494529052988179205234149063326659610483952763042281451444868824959062406090132208347604011059408242973863467825240001770871262566253540902743781204967874243280366644827766678603481511776104847533481683182373971094782566180884665352302064063185211261758315326308182201048664824726852784147399826796790315838317067644485391715585333569866342971174670027109646724280923060155316230554541665029957644613753689631103052274343072906915283383126025841091430594099958075930641434062529538713677980832263645586649479405463698298920894887457635748122109453330832972907622803559839070761752923302312816906235364734796053466138261810228914890444211637275242869043157322419516970641131917391737806399465298903775690222964037974493918418638338496773288082015374090590773289655900537200180696372037825524660684684311439164412678874791467521773242725462446552506311109876071845799572533846765579359278982576901528254865339350486164031560342320016173319972609855888126817221267075927476540848453742688424910606668056103357989954830567911489701049352740347586566670713395089404922614955553101532262673914615592573105007143830596777037890429082091835913954433897457328985110229413608813910361193503437861066075930334992373974905607388442137049655635815439695366445190768290279332718835175107239111187876594460120615350470171025145090057495308354055558674244151282902605787520296758831430274544936807299829706153632629189369521147055606857203825388737660626274664442165219047982393945063301463380672900393750096816050487095669256406947359078713566136943730465987013629235453896220583983371483397886108833412780740470507158548944183500589451352126475898144094870708952963738866234895891858702074282919479172526924616414887584466690653114168794666865737139179489127154829672149557000977556053531734333466986585473353151055838272917159400464709043949970130600849256529880046241008100714458249702965385623354075557352805864380518300420998952275941099241672918654424502190992998562076267158881880461640841835920937342106835533279131934760993864427520324079581922245195903950518552396828624533501403836481031921002054074838619258888187747917622816624138250640769506986199689737766257303019141796392770275665181417834315745923579904898188475189812787417939222222557891679125936022897034961709527510482435685247641478528119026066946199057502808727659935639357288271738525642443033709162701917397710563993197887462512065789258240658645006561430661394535805917918440932894610710190230572282889221176917142577071828162518491620994133721870105252734365586674191486369513199451487866663784627060824888950852090226948976333633244074130321499496983165796031918084955665227463776335638059213428499295452557120514570648361853443165979880760518319813673928044813830401806884522834538325461143799421627897188297114473059151975819289129155236649399360142792913369720829985548733614789340871875140378024342704372557955655195671108794109181027586895932875888689509241021574150632089601934661097598282820434118787740839645271588195816849645387565307871348490908722665320572864844348837633339865228215214752373487314969098424318235081402038158956831813088023696022893815267415768391988745601180934577180785651430809637567963770278323152452878968284207866074011918665411534751654102241752616072853615267964514652693031739416488357163807861210548926868669208706998498812033367707026569165757603482049667685105870896672698462191608947825291256281360953207874624641453246566669845839651959032242142864680104009194322864699804791552820525970371562307111863870729777003901264471252881388233386855840870300785590816639175759121040772903405461503726009736165778317849642523638969291898649161695000048329831268083549365313298028416925755576284807844203265339320497605622115840266625206344406598867857769085008125979359286628611845743551483531547701552703896764967038484592395606828539668762344643859297539489391600709376923443803824839508299382194772734518585264834338117891621925509312613271198866397268062207594499033378187799638009703081146079229943798050164221974060562890630133827711492742621561598190819730000046502117163166332701078772745561704647151506227731819260638590583799977598686628801004299651658359070111604767625409405979804884702197469669803202708938227778194750972591867045922852621038153757493932840358974497903473036181242781786309363074681771795508711193181479436607280766502901558444017721016358749910788415676938593072737742178631556725730312385349348534588907449583377843479675406422084730043359401075425811432501203197106484027291507561918076042905675524127399489303732718570791891810160429700868473259334935717268868084173992349575372400385981327243291614243089254984019910508622171234637713233021075240118428204254681483691496049723219963154498155052456152720101131989428249700593477949647413397698101487915609064296929555357793556258317635533490788896221115460814049109002510808706382714982326890582224667808210985832433236264860531171761965884286479022435876724082718650558750134680798687057162506743928198235135817271539012864868538335556467411659870260724233769075066381708174304770210347607770375440006724420541857303555003977954877934637802103970940973740267328186404827073598933464008534044281190331465548613762998336040606363719857491408739076256527600531541631702657653718003769368673111530376508904173504679821777619384358290963969879372239181444814241748323307595939085796199232261786019513718282252291043942361132069557925674908252521541033610943763692558665168153562354660746365497253855521415227141987042014896476403343264440279124688085059706995609835187795995670811484737938985775292057175063229801868115710321539425765022740237593397676489952787665601667002325069369336218569991370813479613709795578691814427677847235264226951802141774351550559814050251450334205595876089261911621660120428951969955549714424449834858316245238168385951211266827459614532422458964579479570700771976386068995506734621883535009467318246788618417921431015325337682070981967484165138372525691627368564138691218025865934198874446971837107504764242294703177440048847043803538319807942404657053772128396396197327808236321841040279117278287543088948253843085573373715443785943474182273322034080424253864588756629080180398335378032854611452816267797884191187378885026801292715471765996629992579629968361352744181947266596081189768317902354512487259747826079409916631629321469626749083900259923599882500453459182174713975952469564552021754438003114317109695554801702677846046712056589478155163237784138988837685298898131018880051797324734466646468038234148335574874003167406126781563658042461410597844284327351251890421873488706634637120196388624140988393750766165626242921864698874572536551800901892526202313046074162510504522510352962208183868672549467183589351065571446870840897369275047337034442643004859606757143489072473170022902898388430484376114307090538547725798021618900246951696902554538790282407687925388209435732258452576313108318510415471777418711856591109469844930561341844024222031041041143771076605703879769476906332165050574521839332650627540996264473439963498980020539719930376481248185341001199732427666232452105337957048373220441485304200820235524033221902951820201852996484912191979250806376488925305211644764454496636243601487307562764187263879140868836852374040681806573836947822213203282131157007326602994607695159805571146609615883004338489468567750002391617664572734697407976905132755967819777691165572678207344703487247114798444614161402162036968078964268385257621554510902213695888512135686362795287017173265583400852628534413771481967638573690732840083516264500304709711696507261437488616429633828956709130186320899266054709188082673729592700487672255498295821954246678158747073598176236509828388779645661658237818902439527482671426235869956388414710949138977169220525644788499518250351195002276125778051481195206448067672603053034730386270509344871930578082259679101236107585342094801879636847858101543044861457709918366362696323585424442629318921376124891065941803679886943999835950686224868472433885933848988024961827445312798623972674979815365822798574768412182558977511451606287541834348987448532174505083944377730968616447930603386305787404888607018816600813475484808831658324314665022121817523909280160525283029191148317972542924302811163220748258072227875394321170064832668781798087963711549111183446090755145478600947959092962409020447706728129948464570721725987827863600856928231501346304608340110297569316208969839841095577102829806800974256098816601052089385961312178354951527406779633548563592274153319233138727922683920585402382389280596135471404975829489916952093389782911948954628443564194853339361968166325782435441161268869466845353737421219642673080532940538337114180958742473041094737612390062611658873316667630327768167437541547494835876614264031245919561355405472420905089831832569345392303044853626187614067041938242218752111736271080910058532952192997184919449613858330027403865239779456378331825222770960947358627108786101598942802639909757254167288997037660704056169242067901664442697529474156568482145847271939866369130983862974683752702971176757227262162362845638041191656207145329558470575289879235665972059039083091540522007760844484371900043349273958177327334327028939600618155134284425061634677774424684379852323386571165876124262216230507037216671446495877254270975098584169522105705254553898482618507805958252404102362248097975485617344897665393554222806412549598837834533826672376581115460639806956922378293680924518615145492834859063429908788543953848660011486631445431878722146464011230339096836479539106610566299018857510803197402463633969615288973901972542827486640189173458806954866906209298291114708460219433106173967680203450983803480650868870016589610034526618955312057356968572532436216694751938899393080765921056309634286470231750603196986070531589186208312193541015716857353500980546743571720746074318705854403847021220886142867839943294022898988472686296242367356338569015480748932595093722326564341269468636429528172344538545032653910788748911486094436423425143899207566185468282893977050988211548895704283214830222915529213877916521862122425216883543193538135693308055369831622756886438385385652897767772954031698915519211893913771389062729722304834904055763432404466449977817029707788998371546022025442713354285246562124782796212710303348642642434258412080508846378980954318514782586685191530877046754905890416589622875729347473923795392382746879101218157044696703713421109831884619139996423771857768023165777082000559258784654428037780766468692324963581051406666445447665128550382757199630517862204114952423650822295503667202012401409505350897557129844763727209069062195797708919991300202360822364057673921749161543757007085426351441391185131127288285085670841253131702899692705588773832444431784642990314920931251890743972353122441733528501897946531275258323134367073758456099972514447776472560598689662226699305352786091392420106363731825659755755301187000628112157836252737718741904277105508868672971884240474206657172693787134159944347514384041420724487766980654996689124484534161179513888495700027462048020578302936007500251479690553719642046377304781097365274612197492079330656212764416889204512655462217636708260555468542431579496757017854619311511311584536058167119239256886889536219444818445827280107388661481102690205019765746219311888068042125616518569585269925519167006388634738909352203500676130502066927683819847643760632169583113054739439362086195893631017450265194207171060678492130526105596183452234113207876376884419660780066828450810194802489071172161344458912168114355672594711735607655321761695107945087185143087558979958879996931432092206941986560804366125979844764957417025946957096161287072432203468092459453872775828378906848909084728093415716946592161020135754439483033567235735396671292906011622939247565181639597239924015240474374767335921890307826621645118323122395367893144989981006927526430006155522959523143240005372692752485295830235141089339162749146599853201260117077564490239001646885317587262747804487395812112405797026290943578834701358797694874975823706984973103466312169638368864881411145392469843576267181756811843782427841627700747971215930057163467427820142356641711270831179038941890247363238787756579901543059359278784323618256797155870731916878554403282136486021866660306284303349127909485705411375351174277532895825465584060534993645251867736507179453566099274445778654381819972328021656991485336072188090792578478541668792859876696513713326343463178994528000912234298685705349914124273252403257249723960544309119352511252088051427678342904712550951706496924417360906471947682066201318303670100336441662913311777704278760154091490771578388510370264371270425232573627531441852255935820378980351460492943218697459727581539423114113512054833661222243657080055506021916807813667852957379271348091059212526633667483125428740641366718249732270148002676914021674768214699320424837566206639794952972680009755683887125748961416321434368111971715946721806239284719307289687792610649086843538576026031093725933732811179163085585815367936480058260778099799705112815485680082789962002381493296962655169360835856830767758196570136180671762959269429795379740828097752051942780435242298222412404721384552850236183261650329933181646487606214993100235099308806130267487818075318943847326244605792532879907016228089046919511311554015545356015328200721490600046967749545444686474933954450208055851150687061978995367129646334661533316190391279133042433302480819303037639972444911401651774542055111323432375200347405033142687841579166877941411841329491778673032463466740143056572881439753324752733877452649371089956579057794592336425158858382621858194264032391746467676786567500250001359340454094486463700378796572055703483049032121987577293735145455771409331318653977601428801072096923600881788440648458474984044715603141428946408626341809020203812708128841212677447409310881847914403047639945392831306029511580272272753106130766203802115644798307819760690523140994805971792052889115154831118691465504103177874430666883242528338436006671776265384102085998978352249246954558187025727988808189269616743288627643788064409757161913468483422064247056114068660972124021783326671233804571907603983210343985916969200324030748208977840734911027274198476814138804019452115656274087143874539165783382573633442059295419126497407595011634037891149228337052061237952980457355641590602072728754566757433509698783322372214297908810354284337196299413497894997080187116448213200560577003411441792370619007328094701150547823759461881169727286022543552479939037919256861900698282824505267331966130716733792978311151292334190929940886993080831724072504856308780555449704576477272375228161083618734366002829391800522845361810917680065655017727896357039601191062603534853888968970060875117541173429356626810432109361495515949872429195897157035407473742982750487013851702781209420923720380666451603438497487949754137915871871121954706557433852620941799596982795440697301229909357691744716027265316397926500972878687537926438364126107671088531089022461775608167814958537295399207344470976438907149345294349220144312545470396039496811148267735288470773484836764584506523038229672210146096330382045670260105919244951580140048993302909166803603559457150376467030650143548893461529944271034015015252796366990006350521251677446245263323817216961188133011631822088353126848401120471629201529429231795976546122149289704398500701330809344983995021174344081827452968335711487592894860018469571442971519867769268009371076788879666916049238273881474786308649890407345504766050740294663011075536256148225940454627562194654099591968490627706082436966902671722120585973256717726065966839304171253444649475986481412697221241084767124340359351123576697928314310665442866853818436403136029290743629862820886233819603441535266872059173927079199979594264472007821966815114236367847188360457820589439221711206752084667620261023636764228012425087064746982114796832792000278652522583946765413635876227530758635100434286941258202499077761213737382799720887511045071353805196256562896514990930867368166054433957555951885607620662268830341170191800028758400688214669243038468407453402219108523833508590370088485310652284287327249758307600074067971436227428613605651598977703250708419591887515015475759274716309941174975644244814837906369483626607802429009434145043455247496891328656978832939151591216740973514108293105968317000208402183733878805948135333210826745818725081886587915965333052151867883457592379121980039575367379752434329623359770019385115761315361874032859826496531972479698303994100553872013637505511369591073037092129991962404196468609694924655299274007203467333530737658605115363800401010981756174267390358324130495359496139770501175906817604590553468848726352843484615564549230874419811464761727541534243082697136720231316974797381913741528578152397139064649072123946596297614039589462406981641397083948383907930127875428236512434937807252100033897172937540305626430607885640812178735343291923102828231883623710656419365042327476340167738486071068849401633063963982782948603040406030932569409162402076765322925108862126122461936008560694892447401819910899861689514967102139836000442102326471838841091550764439272740974444428210728045296481067875193212861788699607069128429291738666816177925730711648043233078563972295667783439153550986817915786931290991413613075764408128699489749771372907781881436556425473519776249225720043585892873993426273162192864988451454995447701053279637011559681544370655854889065619693101633760073077827179989514759482121890690251260533072726126946295066745146487058753942053402645777079239502900238127176385916919656048857225911230256024377012667715277159863275677270421784660627728650622645300821740786046032812930895166932139813074082862774253130853835191652562160920024692451684067803516861792226754298583885594507749461607418881079546082207145891289695622664948831125224821580433101138868698370990555235834412420486277085844534687983463401382344569218170412826735220396030424893358507955518970606231708285255186668638975687895211375020118018028044981923839312628324905041792823411165471425312186185230351428271158298291663988354238005034589999178993248898335798748703377829784925028373709275198626144393492847803477824120290137612328450429026944616382488325838865062898389686267325765088193682667558181991839206880350292339532611488080246859040753736142574094789803399365363830179001951747314189763059036191536020839110721694586459393376105948122673365229865967216789406415457107594611342189412668855590704761343704135112796986871257678295116053538782085452114370416968708231582820178680091059314571463579968925919855283498295020318741604898774342487380971697812514152357502367495598534148751045385596473752910677524920343306463946523528811598492784259785159566482345728340431958520963642269211343715124375803370713781021019879029384077150608893932704718829648149524248299557579986174277200695460012103824131044541859519991915623125282517064378414832050392584121614553356697851149571215712795324030504164074037052300049766038180199473794182340401314501512634040392886916290840197655312655067552874270651464089359220041706662407597610892337714974556104155191638135761540170018308439462020885374681506686200075854948765113071383334826452457375550217872941025629887821698529320273116320823913181253380724104199927337449967507158392295732466087691774934243320968531387585065776608716110612862328226341908921010106296201003046621426481492727495057094282211101084914400624946457648166472628331291190001050887849778715741778489782111611869300442452509340548935474164321800823245281253654268071046017877508207416283612260472670725687792668950010778782907801928458089704588987841876665010942143881278297591223217730118534021570174797916789891244888566065161484150876038974690415574335492276341626169522429381205751844843542796435927230459361388564522399505757207194957241187995967655072279059860391450820527231343368374833986232355097810612339484531543959544993056587911307207769640661109516113007969120961071827706478319643689867312193223082869375516502814951061841929600954189953680833579486003405390896491999251960448879604144059596964681015685822191943769544022284173723687190691242295767349726393331376807862036598011963380910744774725957353677588872928669155635904577903580478529687854318596931973559754333075667124689409633269529304735963537837164119046495858007547754667835404556590425256655407429017877014858608703907805720036725709267731423340534913477049570961211876283314064109576032748114912200732736076408139679444209585715557033393784495494023902344622823895153938896031395528108556393519037368718500750679221437911387930198588111106948355050673096410642966246977703837447360110905540353128992268874983012563409954725328613837161803752550918367742818989664324937654337643377408965403231339244523110120638618153920135043670770851736085511152930433521425944678645988804374362981362019572517950727094701321655993975546109330386659820306756865742227857321535203232839641835402719964995785941695185484206350406418721471824748653121440833512349551410466668851375039508158803396271504023939058926635705074342021364104339156620266682009457045553512056207533849075217730945168721849067398475432323546458758444993534046198892941756208540307249279603951546897979978585381560963175127330784557505739676221500148546839099983960459969577678002862802917446272307943106974724970500252799819083669923799278819290647223329341441625901472648392559317197448276161850306703504607253000400956270093741875673573386232749034858105533471853797542115751435471941658053676153411565079931617205632227026722215033503764355948075079403842361821914939116240358355381463548648350909429650038846340984600597599688880960823644545884161907759415405521852798193976452929903145276244397643067840440437066627870674673273344162992279698944264961705997745416664794684059442356660970509355763866656960576433228829415142758701529509232978401996323219941268271978669362591874408427812139329000206648798672078672563032551387435470438364911848895566927563610659905423257215905858583881907939575520118573772218462213294590765769679089905424733713492744814055904147232254520474328246205236506766019743179113244689434422670634706020838098686216195497030895016285817317281388451323473381527731055903716480687004980258687382375220126411310900234496965513098937038246937031534751201935499749573614477223749161268174957954053039949182123888755030371660271084463275312779081325888090009437326864667509376512391178391129717368115189518094608788819406359832322374266356576089569731104954057507243106596832537656399871884212552790489287101373567312229759552312357583049161344157005461067103871661430596964805289283108992390994135765104083082439554455724688043090173022597488940901347428311366767430075459199690994424677912099256408213385819356389074634233245069357475864047663869201860154492488493794572162979017447922893891695100403008320760933110626483642696086406424737658725322518235567904413129729171203931530187141367149400504920347252780635057167106621265720561192282908758625804268700393625751896635904744342731573026573161593638790169829228509154710787852682154902965851605526917702135866116254231631012802341784429908803714261435157663501938190504384191979399163439719602837243095645880445748210564836277576878123648735657600820608578933882243058197400061610249612585170493725859316506253740395884723048970857145323116802625884284532750785251307434602480140521413605579534669802889929208141348329809064958016561843724938410410056768069004027726762346073766744346923363990267083051417415509606498334202076476810440608771724793103775752739933596376568220117177499644842950756922282124692721846198591013648796524044485494248748799590370672788878720664423032084635620082614341960222239822494267572927454409658336600417733172303926459304548277933036682729985527972463279338212335876300314192476999622394447825494626400588588054375690136224819484691459741280425971734262484520668753375207482561686051746029061068282051901804203472894894835812675069213957187027982324225657088617928819586376396672533824183975710425423509040935060999538080235860875305032413054241753906822815730160495187238365906258049331479709271067200164003095724305660193832685833812624340096396730395303155666633000291914180933233046076079970010178516854656387038456474815025790997444506191418554075677625631596155849321980453783002551423652085799062799371095129745095994123515489261915865096129368986817219665585455158681502612505654199745391863114274162420233318039380173690423265322622875132775797779218564092470356611066259773595003237541753901195425501221618688156624189809610341138115737730355054984806674366091614487468467945933311228971862452479303435403809267315873739151122638804871464727270354860106893872456129598579705485190972359333560302737547283686028154381740359276400459140646072184704740109985597603307989273731847686804723421613035771246663913333496500388464984385269348803621899440215901449535840278501850356209344355399785832746157390958991630822347379920819235353315803737370044588576431886648283882918518715689578646470075208856239200312710956296973176657674370087360864560854971494789178079470738394963984283386492319643706524413094029235430890190098268306172813651567335322908433522563929346467997361884457072223026218601547988139931184750211736976734015676524899266015844366068309348918180799989896459559733626725545404033786773948815660959489261592291077180637880312221082260591737458842895546126082279565374378779877037737734965796351825971932910857019825347609631260923623384271252711397354668649797627541913898711643495057296274862464458137543396519146676962685270357664828991141657361554023258789520306784778452025119106852462764256406950824788275968315704738966097516561236736868975559171956249390141443468969968172435849967714579049261539580046884925368320925763226801248355585060364873226015370702381949086192332304630587636871261369804484165446616280461332985433535698152628679491121182928555286679241609565060847197174177785276506321066564204385253571070654696332832293973492632564355069483389142776061274646672459382068570763814996050347308499871620110050252134856282289578976996884220306319427457357202646564576854810469075106385610084538612621217947986966488564446542021017933685666021386835495753153357401127070380435103313482219001514726402519903182331691477157880618129678621730773389692122398486182575195789234215304853242284910165210657275899932762324963726659599218012318082295749784799556484830285631289704224650303738932606001336190855495980976774998234359334022358221798386104787536084261495331004494251498247039231151725642437666308594373136110373125963840048453700476780746269030594228756275648996445333748329534813326988320429140662158744585325809447214800492694338269709068494134018821898605273963250078170331491553045023926259053122845530927089472281449103689762421529894086568416650460815353244589771287845466887343762137956635622629805772703618370126575092330626876930033636741933598127849904879188489644149090265013110934105737437298476980352640243297537224444730693682350640492394861705325442580632298222177726705038251797469752598512874712854445422967706679695533429224083010079318519651827528391478278637578172824262033457763358446344013333131455902013257127639480892544826363785756116167763124755490432227517982897408047519406357102370985846319004161256572410383424048570088459579196649105691701616247534045901498149497024871727142016779685904511716409325984821379937017645605918991641302950492796698130951004951006806895440680546467375584423573957677816578792748842563495575322916106241690008031717024684586453449836043858537947349798381322717229447293953280611520430185108697995950942391880413880693342816704700392189765164890174767361407828533909527170903026871933177159572390399807121577821183811676331301707504841884643690508388285810952517210824536283266497840961312159576379192276583779240578595787533045723339859010196626623312237349989351023550557701104816273987914078828345177198596950507727057783674351395804682643093019112759665157631305353609623952215051812363299900879551589993129357258635661836655711235813387348191557426418939174624243487853462496410591041150136046980503632910319972994169773908796810543288657937483260467476881040951433851714002577557711265546471825624915305343700033761783168825027189018673288476951240284290372237254933677345646765298588998151902885134169780617714280461717085169676545292390029798079445934647870941453298721469686684500756068423203601203805019570592633478493207087404824992662030722717938622426336050995655323535175401571919570503246611743183195628835782793234185575465687950879204908856287303949519599885468232573712264749201711700320821343258971071684112497508504162892486671295503407774023654834673306084364042828360433728446220015790620683806745595018861404867757350451714243630199167756303388240050534653704289797088134043433265308049992069497119698341630988940157529476085116604099803273545208444298167023991136279112254412123759014164178886278450589201384518018875696694275754086412451605781988426808141929880263059522349205785224387943887512851823063221877127918779854240178057821774340596994083552367437104563357066267931393563384577943293826690733886936600121214168923994669495616020200200990104503884004614822124812998377449085088598895431677214269678966306513155660861960847267876507996111910206887904367611443410494211224749579784288540804688843022958634322811480613329153548189218609667516339844888121238330218035170656409470016294086375409700589721610975353609203300839698410414572756901857071332013382203175758623868594535486804676360488658428272895788562279060421757249210421560164805778494160338539417372055502383925509802837524851367789237592385824628165911090727209277184628543469641406317631624914389490401033211677755358396332736306799889332215364654896681271807135801418561603773052191430179031912867322901727775082542957758949887887319940980900029539387180667755216776106347455998744268860690341411724118306940417464737484619307443715093408673691814481734156560624322341998848739292401291424038575173210120460552831904673528914643230205241918861836077139330350642695761179719290219122014709059475078164467250491220350257328556141523055012947445734116742600056142237758825655051381110328283238936034348333498558435858647230291960847346358111880760875449030748138071225847586821372460869011990539375517370738231072479847248209739154659654948540332666154586786193568833620984943403911295763524174843642498658884574793017349399364625731268135940541391598131391013650276573628743068588632486067278440854172061535954519382849959478690311211937629216913688524803952008968992998676741281954591743783619917498804036136277036399733081693385384415395155633362751307471784068566524275944418605425402388701049603793975623797684819449662014631373299153849449416007686584463741723096285923355332964377456827539648674158907127777182402263815441299815729268254779286823858258611853045253190896842668218611490830331262112998867312907054216238646868023350968903431191497454135073358799909404887969840265579906737411675040590668843285200900025776580065364705123198594125631381019162842758399184200498681839275819585591825142901436199954973748945442686552427995287473085806379362821008579386227666098407286203948735143650797946261514409579821170333899382701901099475533275735389157163983659141802962488167739223575241049896192247999582296002373551158853076218666270911750413082500866351125247713699470755023134082538037934549224579651519562047673696755250855532642346451350555312089490626586854021809873123517634630118596696186392383064892537201679200021866839746421389689385106754674552219329596793818524076978714563215159786799260794588548078004683000611745904594522011650069557215716718778762746855173285422595101315279688847813524660553232666310444967843942264505556349147265513758784678211726955727356781755284139377319655158564734281227776491778814534653092627665815908025244551522049975483008449090113213022417850262806856667890541578178204347894828674951386881795535002827855212455007467323825833637619033375170599800390832519035581177446103740568895516861737330478591103238161418061057190382900436288454511058131832714120564181435279819171809969294929503303976329665864525432924864558391242526632399546803870981861353854815998827268702565579122562332301788435505280647213440187868978731253488178482339821968456884823247341785502503347002772628959213059594142388868636665032975867764129682467736180472087215200827314113270871324338310792653791945181135458647207791591501763438677921390068272758625101973427576322316487344364546877517857108581891624377859843549406836873682237268772132099786051386799770922110584970227053307498265705330465655951010651503635455016698795354158794834015405351488486878512469642505539171047088569370367905024045563984221273821637797625331693857343161699895863963141024058281748740076453365808492004846955561855029550325259886154275271736857300128513293505731179469361282917872754572800966275481011765069243258919039081112601683766766660032819289001617032640305274346093157459302603546373142299466401533319561692684675362752310932905324207353984848639311909450803323127023586147919833898507664660079691766887419846455605261939776101502905951627217461152491032642899684463201619518192963736941190299136622430436767136201312797932915965869098392693447677811695423373373599662093424199288266531645512512323243086800519460717351697533327993416483109833086007485918040643596167289380612972525543001726383746625258012648796162246217193046536745443296511193024206414395361418391204392664672658253812948245090394698409280238880123291060587415351856618662712952688390062034872630035041300773199126021550181365945784357003692845022336972320556933852541306796919881774643830275479949578529859014528178430936702190921159840316881982478782558983235170419226307110798970359696324725179787365466308760354445866888663418795811799131747179987366950532122905169490575743782495681535004354322422113968833820393808867413733674025054292361398393414217816171689397973744151934177095381742873010137805267198664990293791610384636138287038910879826759746588262668053772662830805290443507477336762415293734810132267700535109146506114638053900541271550687806483223329223437982240505339920428966048742577519268637324376079069803045536202808795353970653164794078288898017943119491200441384332055923683656120633636646174243939694737067585512440081159482868364367660824387667854578278073559154583449622733719734621614939128118726242603373968729546792181959277165540478048788486547339884853042323143503513271881568829312492310108041970587318244705297971801429534893929267023319824564789135965926355700986332041445262402164832980217248871004240383044749698317828334960658469492216965862675170705008856947595742716963471948477650177383693149819898214782836496854414572500576523820496012612453237491456216631703085079744850742889889385248874978384106526185201106338105478110256511940389050933268661992116905305762392319462347570022369089766443511053974666686837934934265308685445992526313018336458581089076793409989697040824800873939215709762205336458034054534911870244133088495434483143991218214774262275218855585856048864110709492450922272513084217998502597852340902438045729693607963454388832086255073103037670719291162299541462871293411821453521518207337732657890773465395433767614674859780210349128526247309353869149625929761366850170377471941731820324257212792957411932841216177239254942280482289256165826713036920711327279889603975733583617630048708290266018932260671368007157938868123417715752420112147932355588825821796018820827774270834973617445756308764471416329349232478794232290038262332294350979023397519670162544107722384391322453304294046109189605599996386154608320587426286215226145687832418376550742117523354421921394224863519228229485466126922637644710981802652950452308576276970015072717029466599939919731521124296477431440839212992344932874424564191600756070395433318664106091340681093754106712251945904619801203218699495465945863317470287989731016825019996055489954995989566526207580018636802606991835885694210503023257959666673444212060985931605291009517897827380179726057321742937602856755719407524731164781009484828275438428982787357608772851397839712162922225183250356201030685554563502327973339683776078458383370669029289957040847400338444797197833361045325563491245463373671271425620201176660524713183784633174961702015451850534848723831433468087473573976938648204780389146946900876255986440825431736595592271293188315971934828832791796680384593130770703783190100688845675629285175272966014948991773578694561663748955242497714961265733988103996641755319979809641258960998764847664090723075142951545673149997864017632158092543260319301835703598764656964238056496797670970862771976727288422031007001139016367918077402047970694733992776043503410970159076442581086199519848728573690203984909645590515934769977026482844225658324644029724385249302331144430994817282141066852251187555507235017905248079647464696392598216798973660975281149273062082535796426180260053552253383302768061140836839513617550994757565343815758267593752207035202963423367059175756289450591510705445150866549647769648127754194982992706827744683206071495627103291134447323367878641067587700524806671063461129933957348255746073218766872259539831853202053485851301793845617447832585032474575264520942357794180888511559735795409237451735045875357963904090786075222164424277493894260439846573143363807359730765175027309340674315592707271665637478161875386193387087347436350010198905337768450327163234760796654158799713284174463855359235437033027746097371405920930218046800842101141939455685424806701161579273704970076499814627229514496030674103482684384772829831023455912774058254583324376197806749193897509373800710040642326368559058171857864567993688426161947258116719078846559651657575638763008144404300280455619716570990658652261793339034078135955031424072681546667253932467398403613214614166398223323293584703815579102743348749133174360379492226991041083900762583372680169733191757592464073298492173505032147890327686609995186245854085761717843500749538392501400546690953145489381124175272731024792412740817056383064736342209077698331239121840556832884507439433323120184742657650428968865808722537056108427418905299437726806440617274205003075748173817838118493935872414655465832726700391049592369447014385583701266279303296724590934960128273935994490602782778089226189787571684559977688154766046861197150489977468577168491341310156786779581272149316145158251769633652377033443584880614282817650967516825927967962772066435788208490658254688054459445081137640681985939297490840621281436146709735204643875452181152552730663897370574261763104663069861900054174806705045054247446780178740842754374729362204655091608671247937699144699479056521842378152164728607581507127490755866634502634388458209104533455498558405351468879057260775489328573091186699287319791359956413586001599013270347439163002112922221892453550896136361625102550044684534523098294537905678365292630401521541469308278460139176082891524802915199189610480706921711998558145248561958939691637799464043662682187104155740029474248201660407327481423039960718754694495858428984033101356806753233371333794340845338339461264201049479650862986514829555943779295624780063207109766319282687727892969954345889340120607191879193752046184990404292462563027634515361757104888753412890054684338853194101390179520804537969991345156863734593615220339941914554206886836143533380169439682937641016249591474543208157349775298703973096174971239921383935957315143832997691801819522637558239543137661910772095685192509294690702510106786761654980508515526004731007481985450656896108124719642161563558854747980799200123230363573168400243970980048062083818422004147190070888672808536121995463719689566815240660212099261266874570514295249421938044792974017373995615025746749057541357081859643935576717517555357804805027572787772069899653481844541725655932362941852789611970593462380674172041027126732384998279440191488891181579625112811343781302107553435921946161504210094857584306238592019393980492438495602570433407709329061396503235803325107510962778248502747687132524100322530108588816940423638056041720804181262933370941505659562246272430791059210279400019481615086700415241175783894242424722122890966418017690951883734459052037924860277019914660693336506029693189390579418014973018868338530017986156938593831330826313596132016488139594810879935013433692275044252987286493627696831331160378371889055301936672751392932499750648389621963961116639342409603933017559255149770293416354558585408749803515453230766715967404619425287577808012396966684748514555413721945322487753732492453414316327618246500090101150459739639102977735793460203129785818640066361991740344327796351279327994050946797835411382022934587883504646419087049898675394480918939270086829377650398839335957462523996588903388510853856034241046856616410142129499538214857120132054029869223216131177687271180140375620892548684810574629518491279026346734126013595154267468000369549528457058728180617948329812326339360795850129901759262420389107658991048951662098358968432531767387572455088204558238919900619215273391750617973460663242942588881792459526498608642116534234773411453544419218268171125886253027914449381465194397118086868579231966031038844460388368000089504396271069419150258070163396122514000050928056394999160135739340471561169504878822762941472458025249468042921810101028724459206883094644284038933091149792636907042216120734312786202968481390592347264556602096547246836221275227901014239861224234913834801755592353977160078246977185838644414003234385775725349058542288825248532706830771090463453880204861284788405648489389554249653476242731076156369702294040602877580969803293269984141567403913536329793754407723454772235764847590749727727374209260565923056594623027934787878815685201931764004832890017356614862341876737903679335511053582701407968936258861525874627633490558774016582401827750282592514017699243562996312634342129149803057980384861135452992545567264856002119767691247725874060595818096776518671380261321292205939903132246952487594262422362949917448875025477167674589512034527499006707317749312185744534101634651731704194586609033778550403901981591932700746966919819617766972782870675669773673022960227012528206597194441964867965029106035406814145707848632201747446083733099631138181956703120872624697711658094438350810052083922341333510706274590397253225707316474378728395684264902159994862400775508137177005706321901287295766444503049738413719171947027701682497291992011430446081906962390146905578830642603727628836109462553331881448122787371545347305731283553837692991702228325370413684619623163432609231433993576680084252468081609863568932735434084612628548696734979375506998575798649127318524791081367052755731672027382357285338332985926809496972880193111148705133373675992992039065487919142489629508115163051404658905657538391528342150491666738292367496706843932781997398556884846235362353880932403216671562058800556819948227480799361631082503787277477020725044764836256880468227153318910542277602434940718226823322259063359167909537047647765136103317527762041947307324560038205650106790796392504029248642855349014955495411310750956102822795702558782671186364604818926583937471771986248394811884595718545122398116524593038857114762223287481763163221121550275048550110749688031275434225492692007573755927763160675370951037693579153073605909600503319543322835269052864671915438588761009574532249228726212358246186556207088270226540354594770351933514279016633990259409234034848680641885197379835800134073580727286276073293729146778584932510060264440248606070916777983559887461216477965656217531145538193016442995097208378866495301393304664835649927352022443713338163700430577285667572285965171988571791529489395860901340389811329338585953076321696465842253240642468956601009381857001097969890752544035069995322705561955989558153377724816401041206794128689648291950111870772757653410640248646174446495925883428560100117857359394682228168573636076367732195651722484129417494551076146810051056233134399554228205106311200713084590440381508182549366701752530161833409338413506469302937553710499547797520866850465979596678160345889794754944393729907448821178705188019790194788640004509928087180889749050729536122525097471205546113530144767923972434824489954152087662827748591741020240549095175991055654704367644176350690950046256408835941511488403258654694017408572098621465901325828695519561888343327182086734594731501364325156029797378436366758230312558515664527231644890287902859937424883080901327121465361715810107115423844880815350429305005182538026836467251635852616559997617412041677016000268006800813927601712400405406613277916420713232339549604005384035348253345494133189048942274667927585801817062491538282729641637849522627656166983451902801136666220951645818335756582974043161081534975760256770824767355923767458182537858953513316651591252074505613408875886095089222485199257077866156933698142912377917129027152884540712075280054148416230051452775158442399318034995470849180491213900181010019040869498641834300608899475239497033435233263538956471457339214973008820547856036737241064574104063020808584128364291966622497992263235005781198772664519602676927768699818010892177850631852967462887304729140724665028119969751048463433458777756716636848703688969814248447380861684839164351497948354086576508579541197854942315061334105597338667073143546318689942527088819685656987629725770609231705590870875437054862936626815503871579257772113182812698420678757504922634515055683066169443573315209061488037834665589372783346505569247757249382832478923416186685493331144941350551507928488736888971890517905629280105952124627903338669182028061127988778743736239837263997157191446930398098066552043237438390022996514877525604489576512638896714028917486442753171379500160505022080030301117339597607875515638911912797451416268762598076815296951505865068149574648691974058052223880540219129319346995102737685594895477393815733843741233611598856073758379349979569583148273297948642256432713246650537750966689733658573825220627589252077148792807013767409241688586301916815867120172371801105890880553314196417031751462360430742534713815837758162726940697742431864386055821323151080337803280154145837925057760988366216759550761653639794612330229342071572814130461285119611668165540916804861256882708783653208342399788941685564746068960494922366905956542410597237066623257468712346573644198161119906843611265612326046081235338142350309116209761273275710340465321333165135411418825416705346387517361566319668043471502154199296030494305081148245242280577836783513651903950207768380766112458887893901212563750460765413501321063854164599791721249845314722670956405982410238662586468421766474317136888792863304575047856408171876704437499773599734799735116109422258826358216830235128424518393488576848066710607701174303142763587709615429118863302074160575807716735519234819255293466990279927399689643210747315625565885957012187934846272080182427874976672050531199801459294901433192733773868686613879142849374524749311581608167541947006271301480506328429681308906468794224658494939360197332531400531898780865424836232304254092113483307472705539727051959688578611277423464881812707508340987535516877499251504397521450344911240436753583293595180305021510754918846900786253779242852238799827502180323964366177124043075947942995512875015749981327572293894582691060817884029186258533143119750060337207008550510892455778401577286667472424628170329335909870897156682030285517544303228966395822419931111008667961000803510313904316776845837631203777867229059343153082984515630375915107704297494895784155016038067835896847130419879879887775112125908676706827766843632050444519562691141673139669322685042052880948718316882378093850458355318459028589446843821496714406372443288531486950357800305845080784546881174392212579326893060050852190409671916658036822658293987456358374577117801893373418884775866271426737130758508992767770583938436514409180381695243477069261209206508717691118763278632182208694503524596707203810380402654243981378502428892536248103247874350181830978538885601783318330581835137148244896898256087684299067633012285807288261100891249182781529224534458693448934180183423169137653631455082975628399817228119821186756760904148296545046713256251678092237506115667580220732220568963770681097503779149028284252593990600666533143016017902995530026909702052450565324926821970161575256472756670409409833172526533809137148056463516198290824436298963315033493004700298296070016106136157140244047932811607422535186054872322575348179642995148420434157841004692955245817124255582301351504206847640959270107297385887985955429648114613238660732893130103259827012589252857498458692109107014227197927260919289548084055743783728529551409564334324595914801120689418652682323243745864093208551731202079441812956411939102654585552368294364827596767443402851278250307081429497203419651587115946524133102079154492843091566744844081786353333742561245156709129755965317618085053010489081541045887297975624425901496481638865445423642816235644551569301815709583633447330027294839070151909991646550865520746538248148973242252178509230632401625473176382635942941421016884126157443535427036961030036436471828698042491966005199649560522735324464516457028697804678975198686662467460978362834378710927053859249235876355021409000724829528137836461184867429122074111785384176247423343219918143111687191328681426735405393994957918893076459255631607401920219784781017285235473435778436432708582157139690704106176252312684694800412778728443834172599183514954618752324014416887766222025825220781782313400535861558725705661451778216381612010622203877166466663274147058112031229547301351570774135553422187567625524795857473947339365123378206714037380254049568089157174020660351422879781827860091889408309136044350873927238601479451825434478836146800578985467796594772091678619092253048009954457322024505972351292507653345291607249129647564430438700410063184811701601569436419902636521905755572887696761961017043488000621567004585625339626282527016581647824028333581601623312258955668147042227674959625128775248548650679241501671282865585381532562030427280475211298776382159927472323402782766955272503244626006818856405642024751373016612522856897296060118907983257764770852046341088491859984233727344596049946068848741578433499965055122102937814285503247441433553034022091842295852288053905338677927981904641017303194154911450410865562636767079016115413841030139916195358027218722533024673995404675703756886802622389551975685314485629266710301410018417585823761407398986664367158661472903572139782630408498904240954257279202084076438972027774879344141572393922557921752284202504065362247561121644584848212403554956153028636107058652754140196399520030489685505374891443351315605356051412333681165880169507036860755516479374879610011982313353964725095012946896415500399346231774320912714362184797347306402981405724017739502553451592243069712436678828197507656630739338900479141875668593235798920404669570901731564580388894441828173521560059675736949074198807904422874114179322957316374723721312095129237952043027742835000947943616677119425947777245327374101201211635047266517557840874265919988276601861868935304016508512867891528276369155660463651397773136780526294067945242277969251224827139947881228092099674865841082025252676982628372285159391228323097393102189084381735736648161209106389956365815928426372753688506405231810232784650846435177682900557137371757596900809581191097889445465179648435246111785114909681190215385434667015207506890960808341439592712129716648209644864881574023714314954590206764092869949268755043781191397634105055193332029072745750039513663285393883119945247770495394618485310194954002692917643545150357514010670204277865326663603472777197728010295611990712486534307412087359559687302187981987459196213969775564023656347998756748401826836085240926139079396952047378474156275998733988069288867822348137014729934640331499001928831510533066326163485063838003624320306130664318247609743761458921716801303995164935164471371442830920963083290587619596082855268726879913111752297445184539368097559604001699884818193950706767684362371511708217422698355669892830294297082638299554156518541346377245136525634078582009988739106622151528223933615266403168476718605856936374255250375697438198524035307616749597445849946014320316653186554742265213850362005978124985418964822116715601211114566862993851873268139789803046898007131048775323238352583002452488129750549026379869255177595968148922097243086664198473842263881609302081193560432326331559714633507694458459684170725950774673610614185550612616258150371439455224211046113537442839956582905554459442391421726134138132359242982257190015502859449280875310870979923447583231949687897335338377201908470988097868521242191023030377396006508207707241837227756437275421640211580741398778813494417536179078866079167425547290358371783796633562465934788189231072306335570577614849185963117993913330861877443115839377306343295596460063918905385580350886992084104268282062019985297896846148550290657094167856311702535839508266513666898540240655824535128445929903452406131702038175271981119256994835413297143969667653906948144789446448728439182735402088512693735844538572106980900124220785538890094552443857125135496932843383571129028905342524027362685223438110410133804284528326697155211776167726215912146879686732181038858618631172031632006090541375395687354605402554665317398863274011005472347587900777295439809110221849290283381167748630050488896417615778627381790967800657994249411760707565687867675911250762626198700690476862585563313939131620105272018471532757260186400662660004461717527441273266552701075656189024767795884893436023945765739649975199914540487215500451949030132518079519092734412834653603372934016147291205510324062940464779322335793859360653568833192581829385952934428210826209665514481402262229982952373652991198651689563531013922922217966074113794923602832532894258594661830854226750117058907224774914985302172227130111699125315980187111379720170199656148992764672669529107343023033426663068098514915743684782381418843186372229865221019114810947465003581044530744144433496767676380892961221579008493384769637639890555112585473232491982923055833491805749606380464638757617027440397026368626748041856865797952708592598763752400651454894473237792990951026209268679108810874126713504863295558483804688661557388905707498139867600515558096887716259006070246509671705600734583197654873197358671820253805305125454226214741010336911090715655567855362599072856306438001280176722691411331954978968951101230487951514451607763801770884643081779517089956579800162618746040820051314689943574458120691946446355403341321275567068377762695122296987435688159356019410967851485496532686737261765639449638101143561844449904830981164108718260724301453369504391738047377512363939923304152219450854026444013507142902754856958934950493220538029219012087390225479684377615173331307411034595735376178614329438714672846593933528385380422884718766609489936645406614434846311812798139937610552846343380215666505845881762441015905586391062914861104352181007356413891865780079216522460476949575640300491114482937275242968515394850788025416444940984080005860443434862071207875761252661147285201461803981478578015161968965464767543951823509918901254527402680470734475330384745558349087664916588801801086276136124553822778374581635563226200553854802784091954573229577045704301473637099203213172997966145328428727189332481873239735157822865121064434085857597426038804277798527017667316587922250028633779606876856163979126950484091864212876000453175589953283568868763251712259932470254881786681916707302203565818876181262061056791803260307142443528833947134730017618563693887242798300164048179578375837032404136647205738999954605195850578246894103696549597310997870014016111146538499317156322235798607165272979886900770401054405515083499307304443333593066280492228164608918112660895841075940644264802832564388162151748874422325136708201923461047309384986125796194912137391005895366977806543440384442484331088624768396723698011716397387587365396675932924762180818967134507028278527081732673812183250682086340464878978286080774268159828916019583865672143080048051087083892547180973017482809408182794413576586153969209196730773190454323630763251764609984605811665395283107020304856761243872967313012456576303776761743482366200526978382129377021597908876941225060776889192446734221390382982610931679437623289256221223065687246549291536538960233837258085751140443080915734846881571945334539463725139902482833983513389768538580100961917721556906896868078558199024019836767979493486930821575180953850944523275182170639126649936116239832403038691644078712172632893521689959852885514132110703276597597703948150605551722958371161979805018484320882103835424183394162658764801511500875712333529894319888854693089317285214160220679056380362283798130319444357201712126163050363581332482302498151146102412342548688911181286975310503277912727271892598827006467367875017545202739578171609785456686949366033091056975574317059113981249333989258154110279921697475606918998605743130191836385328621379284330670589054971009565729979595152823816204124727729431481173495296421373872105074028859932421766947616452414911085099297859704556812694492793614319086461404053962836397151668689519936730463684213848734126958957706615883538484557686950282966365825105872910454252445303513057183655535476407458503073082244728091902448101990448621224631316562893133975338770723255593915301485450085041405572280282352210908709033387748773041347871936333766018348228579182959815666625823333227669408622506829608432752453725917594135477058720130370785868848981389496370423881405214892018852592573113347479324348634725125512287212184763462041816169306193136345865356567961409738778921395763907810567240388399289241439166305493847809150113312090387652095508816836101855083572552207164975129165960932744863607496376811432787272889302839330365389286496138074722780004167935870280866768939733975168728355519464173996595818729877847631563943865013285170320765957675783245853617784825594512787053901536859844480048152928001063924535572309542995979355833735659349405063433550962198032495730633583925072722460538470871799741922285829312907068982905215401071920449752796631038203027989608348509482839149229936872373829987076875726170361062304567067825063188095930293879568621080302952451137586218352466219422503539955051232412586373667715823354569768024974867143191031834971459104243735824144577573396175003808980401148510525260347374844113364114231935064061467925586683276536718034176440109867530379189138962978925851054522725880667041969507984219819994186719608996891180320207387562530574490642203561925388472034994075290227432882012351830960391726211189363032664484713865040070411754240131424530127961052685537251540289097953532713376926629010520255084446150518784864652353936825780039768196373976435405693223979213254841743480258454865403766235121877715928539796815423455842718546478431692255542795140615174035114286958350908458809844077583388728894891948302359786310181177002218594417024196158257350904608583128373071436439913762537597100283669432185149586927555494558334508699137042518142066294442516203550613589635130800971367917455703666333777338620575588129913165570735302019445670826105643685535728745026809486419509648978746638369282121488095812130667503205384991504663439802230681826294662910522445965081470498408640887188087282539870934575447946830674637654181275199106717891983334830860990312415696430899841358667016708718457348356598412879563087658241844124228307774088250889697902003295137671177308493869340174236854231195793352836252702198087804552551812054107414865203325350547975871566819894843946576375952956870023833470989622478742598860029156398174885363186253725679955646554072805011714982452737624480722904969779311136406862314082875323243593602663012552006935099333158074650307930766092745098313140085301854677218905950626317327538045116681711706844937175620702587442634900546345047077017493667943168866082919677529429170654204705944187925955302528245071024609045952060100649188502411192241038571033936553052716951276481728498160660443486701326433274476636608701319749439137640789086382612747005973443739474387144101053606566528720825575569449773746125951651235056681565299604337918622586102805789137163338890602803316872314809254283838121550960436501720315601368236346916176050576948889430148330326972976935407601385845333243848762197144421543565338017287044945609270229792649478134979934038014198640595746971399738697441032140935911384960044537323443717872364444230775850757937292793913294933583601405310999040958605660941863340189079288155717602724496001145505494342637323372032405411492887602713948679626117052094674670519393409577840919606405970698335122537502746648953406234219180748332136437665047512424370520691904798839069396651157384789155221696065021722665283888072443967140955416559679170141609103914581012382189042090249462098790867322436721867190411077671672293982304911675306840697785656616415486367607151545478759783322098290627413446489116616184006841737671859837399501979369042397714043722189171513945322651439121985780285235346524293203385667870391349721069379686237107628552931338942985649413758910992138057073646570881899097428241412931161443993133025674671107470856046934217848016857298827937518774597472708756512614934044338929699861586436679545317668358290177355723635891021405592828628399630690943303258027931627729014159468243546584535817293488067543804706666881919563395359339834435594786590772506990319321268962822800558857587559190233668458379499286588149343256304929513114476256571744535716552898106145595591696679591914741289390876035252650901789344804355702631539810175105923995358020624926375932998566818052615268089010028970833910001648701532602683281074150486447672655718291934223254342980292404504544904407805962450713676802402230464501778561303281510109882310782529859531578750050521275187343432812337924345913698346365249627454733809970361586887978778051484508286629857263543217027534086109662173557720450777545794662054426414611330634437720958445701763738399999294447379689120215341391850765558455371005714518468148562932246291666564699813990435511556820858431064126462666574920959099333036117161776216557219860152027608174284862723557480459895917497178236288171333725820385708323707053118057154917187795718572598097258958320550871262792532346938362583812185398113262211223745409881452239541910802087539088302714861788303769479297884933205973166905322231335587496435906541196381815594656661142072772273039434363561915856298224696618966855266629585827408512538121335785411246911214869860053557566111272098216115434377371439243929788008899103329221562970261070333795671477969328584125027731796666458297719882006158616502916598029975893499608631025881877141170563806475992751100656157117892089690211643119304461153866397054407660967596640159866144150276187565305218502631958494728508612349750798211869249609007390544365702616354627331560533188365530992462394418729673555829689004308079331275802139351377403057929422295368220677174980701441284333045800310169297572714793102953302861178719025085021295609928766968843198266608136508083898318556009960532472705475111138546068137126267268149642447081690367164214700775162475727549821676170126771781468749984614252046551952969815468048286336712187115083431205633084694179802493663534291672022942462106860009646557540559918668156152751561039758925215006925225596504752438206235826305305466509448191871341654460909271472327543637023806390684230296205829574172990168795555408984197683056866700086381731391369396987780440520699328455269406024418009590849148548859240123087240562337176059183096929684969536512393452880950230512177882015634529988479240474658819002424352237419070999392982356816343333210723576424600221697092743689949745052006167028867774602823862221282145035701122550566377643996528445632703648634873762398103676646274313201537648139103826571681552714729115891960128104668092188574262585842208384128110831960529255034392246233635778213443087727262226862303584517628070569064116800407973147955744289184815013772444262610246585896033067991404573857243925677770329337988849000097482024556087086251783115762539150650706413267289567155161046749424267809880853165485619480661996951305207682782668652053043172459784475199450073018535730913169398477352463861573023679129736163195992539897770575618542225666928716836139844414521425918715806612882456500107559823444030113084721168144371284286367638984890834231465767257694341873471857612046229678689898723206362558421622768242034564361283393154729806446534262037350606130828646343218845825654117476334097082947799671655047584397249167061283956622324863764630305298012733038711382959949213760170738062711912694134888401730551356200070185731794965847218229059811278323448148587598875372937610309605985978940566367329597499554582013966669109678151832023012639740772373168637019219038730961498772470321499501895169096575203668384012451581914648817845690353505659549957639089072515267736011611324529590714914557560936789038608197709884496905133017387945786757099876966263461701539413373472144655737052847460560414869728009864757404919416713185857912602688888867107861498037797382976255930141966177922193976236616187628606019351296668831001722763439828820257335103779561002877537670265126146371716997118869228276997764519617088555745487370358415380754805934215349559837974383842122799533869452443522230071547759229097988460853207198616058338071597204937360436562512842924802202959127349742276740217400388712677822475850563700230523681835889994588596647410411304316802410224263470890735981800874757867751458015959403743623519498454061951294255571174243901793856658100988077337770438758453298167554963861243785043031579015384857381531038057963294413556784159503379098251622316701599204906611090986815950331585989101023690841021851283709620162928100455064464158073161216498157034337998338443539669088124652435601176529671600356319036728290950354117296260268517739031148463371736065029899472959808816037061095445773630274709400858441943958529917321079860623810249567369975739639101624790518386341815648517127162125455229474096435180155028796933978584061608381788989809200925056710064064112100248452158318985054034146327755548032174856241708757741163010221791400928012658012921023701891234936934116921972401208457423784884788516328585873879652462597140547065185955159245708944352329147392591823065249959856315855252373024772584201503157323197211819391952814136580879467520727531146868381956333207745973467012280673930593356697267918129558826616570407254061716561310424874789405980014401404365523951945159999733309159031051816490006241172200156081073400235030132166224837922916722175235568287765215087177789013810585003688020166620051873355679688973983828322017274483810221090788133069337576689228512553609842222474745122788696450692295973421342494434621535442098434145928299780171295211136996186487945223725313280900728853257721589036563671415261599279192215854490720342178453635607268785254015553901603850552969055002350413144433624080009019208808537812137165784439863399043594305981639983636419723105785108270685565608675282251408428063464209781194246555278047553028258809073556092461213364694817528661904996753315075260132475084418102790209989303050772769055364893507057374612605829852316358998541084805877778814190625449017176725021826215391366084288293989206552493034169572779039688969826518297566151953528390703799711874852866474502522036098234314199177363248495963816165098135830229623676881281334875326150519739421900920409074050276401317637813761675132318930200033074809503409631438088384366192350775766398290796635379019669435127954902255550182518889651249594955769009895397547222898339921471459564690757960954678881979304818658849934004424591977087968474293484913200680515935789704264670032146465819119550661534296215319432358679405514281333064924546960554810393018666506779852609814296950634742122686704248589105737945120942889978489750533620705754009288632235082100489537756621950743018508838280824275972144135255364498517844651805134046523268309204296571796280835114881113472456347021472283592541434462429882294423261924364636974856444806916802513018987003216048752384817887316441575130213045725617421332366498780232547651863245918484290260845459572731684476919253694360147519097577006542985667576248410529645814828929520748355798947555885849270602726117182979566973885844443813848567444604238582921576493973876218734997912324123663803354732917282891750900906217257703066669854573846812829560712796320057174488215712308635724962534927756470208041774967604624400688344261337017237386689101977292827939729006069568015377593015110789804305557191456660237815942157715054304041885644098513826673278157805257266185006137797667908920447587718480860329309987461824870010066459628759313237298399338618690602010821803936293559009925940045391896884450768800522564242272636126534130271302909285891017779632078278955782515300154973594948171308287943156525535547459919375964821649550452377652636395335585451253517836867865866161516305133080366405038597360387588838804215094014402681659128222685217258338398930879251325643695232530365964236537093891089824348508895555229512473352018299245633097190336759767710071382028514561395693781214641367029981538149745443890258021239230731420898221884958074778884127744215263702750421255134063208635899562934996824011739000259385486817712046868829458523899706771427669498215235948110610541157719222614167738221610526764360465791140680077210777008189206009743883228963613184195952769525098243155145843881527471773179517238876233781327491588382393722738143676678896825811036076935930615382659862631035842638941925656689769354557460147354903284353945838388855798863042763904274229520157676416997579370593869173374642375488967722159492929035844577954942581089925982488328217412375886931245426290228037288710862187382558795242833987627536223060314813064843229942642840704257187441645889828566249310353772511425592994449179244510804611536577588182175129838967605846900538435143919562203337797067532357308241838361039058983510419283887349774088099006302761428679626842585887165955959848072244867372794805272870199473225523733838678187608168360493410655598621957554539733700281485910075264539665706493007012808980491140833148169687436891946030660810622638709921272010345248838364636229687678690631615185025758564202188905022180138276246865450410466909931299605518934336017580419425668524484811329253321218065229907770685509566714305093077133673167231501390419551686559048041741620085349881262170337709519125921060263063465480735470392102653055174411791381531039327010795076012518316019586218906087951625678741155042127251817372283991516639723798198013428965116713475699426281781922713490486191462436358677974619310031481437790456137555401235875185487424085948395701519081142980318974618685477015501925698651897110451150035891288284483118341503432767215672562449254085597648304500810431675511337033891368138060934082395434327534918931763243170355620486136760974383118348195444673962563755622536891189594574010663211858666206491490527267010137374036722460721322041569821376079804604810421740489043418917575781748893037502167626127266910737303580837558097750626511260072361278297101240071086544412206885690537336056428834946388929984889807759016765940185519376720462257167056465491241931593092162316449425585195377781593238400599575823403488125515685216746848666781236238004653066565662912713704205210951883096420077499925939431706118076833642713739152968868392160584611070719477794540897299396347853590628499718301759346426654572323257286847503004689180858095580977438838084561587733003945117998443308582631982920804490111122738316258377727617917085446940951237154642697744698499881657267775018527386104893270779159839430619775315779964403469634166032621558717851440084102345301358717232785911617316197763287067686898749654648572232344533687985839599240831608518221227865753053304325837707034969661653527345730306757638392889074041125197022124622961456633341501504395079518597078078568614046976073418815143176710765424590338312753622444925222033823078132920726553395001367012391847319750260298580103150207525695368197920239839191068908934464690805372187968686151630239692246154057224682728870348879696187743514967079941249225901622651888407976399265548437294846893882758453966895634722201611798044952331717262861416301754129690334601555031701172380179914421328241977241202539167881480234532804945723680942620365927426769182470959740386215063734253996257785702542678670474604363173231887148135919820496499919041806590999316073994784862101683227654760921066468124311165908244035770738676253302187016675389799986635860565315756596414792412507075630583039975892518464062265333507213588961318404459284069739601356942091491061455023225705674908974586646526987491358346492181296222004598313997613293818191878751837902384899178438646173903135862422389227195741126169057042526161130649565758560400255642440336922006052954757521481814145102001867476761258095890979549763655536267789034030955676142607158741662550476641832926110361216133340358434089492103542328838511803359485771328227656612123125831275074586419621767421591142761838183840748492779384847486240910743428108536564233155619955125646280830101246342313812013156930879804745369477747605870305657717712552120495777205509304594037596078944356569164262550916792158496908185761923618667117343198158091028036009282348155345262243392521665862811749763101666373151533634612668907029276045518438003817224474784548032548133831083914200576116981180003500061819954755259573590424536908980366326910351595081982812984404475232099029703461157738324802371358120281891053042772344323395727797312180116647264044956724885349711333459082215108836265522240378863942537863855290541734480575108522418087532557307466744541363979763543192817586500957301373176157846732980161924808536520590119413352053456823867102412720423760136789195981146328244640995286360116750068365008585251432770074145839167929896891722339450141047393629408090825386358606317959485441256114651914077446953472849542045415130207314231617758730631128581135469439104938019010691695911857396596583468959034882603704437833368959666229534562842544247980831015717439385303410295713508344643899979851914164657614124394130539007180656396520258421105632662025052567969899935572144370144874066562839996524281444137280818761593668738988233428595997963889473023047633759932359261590925658111231293336932130047626278793314845753866362506434890807993565424554777106396743142187035313305181403839486190674617550469741026572964562551202084362011792587822464820932306188644648131026681703059504004745507242782078763841002236165042038296503366130557531251770901005439273541233950617353084338297025835918152626774438791283059257080796166150712075497802935130120773654050044702092318603019896451868852147065093756123248315791973586697940944240517853142056105127838354956773300209744206482226062348582753794902189224766226380255212350035004896395297085147118800505534811718485037947635873917313909669411521681341219052667627393366644229719920467437527296993586853015941229893967821256749483046387916748854087297661600331473448354849319040895750309779245443305245255470914447538983477936525608474040662920290272168295444289894014998399765061188682277611618528666791517821683543570530287976012042256942660063384479004623854390803115005078973623595087543158753876860017968680823554685390046951330397740944606801009692460187152645928078802078411272921657718308778023141792437010959644467375018055696277430016270896061734572012277108628994081765891369411998326635936354277936481350642717845255067784576716519534866144716351494174121808845480014390968385601803123050984341205573742740313195673858752788131688237235374596962822927860900786835684202420312944058559895924212575899645406123587411329468764461758870331958289586030156766814631518263966599000623683569007834249835020403657505350274976257802667645946321827143335212388454438562021859086528455312525464987025240906382983683875976974352483237027038950303269874579847365794996939206518101220338326355639675168422503305180292317772044075029281297187240326714189007669891973027589732621600237855955595027141643104803676163444216536190485511184486558897593340218166214510565790337084820277888644167861528626570801997903010616222502329510579802239926909505569440339693848097407269101923608448442446684320926143157738139400932509298201476717796438287780557711373093139577102158495045094597759194279411062475686095466365205301650198573801188823382190066695978400722908792267577283876334555072881734524019293454532950484557302098964502300438516504472233109529585341963316644513534075374597209252955081073092126720716528420729375816863288176086320031340142553560159528863696880964677672602044937738293177989799655605009241651843994555926652436790857297773931191699636890325515563641605291492365640427438367883692577395886216159916652066731346454619724007505052672961061267887476205189257963557348401263481536776181899159308120541160638368298403583764744058116843052173052507090638116528413074537448245001986530430985794392183991560008078088335507593051365921530409203939298573641518392867502235493804523508702185080464847781809906566964776653885634722758941336216962674720829521686509954644056110776094250049176735511885436524982571884434088671824564473365669635812243430756520711721005138622899405098393817557180588956345063576337909345959978321333693509920185096861436613799479376854936127441871006017299735128835519456478257367059968759817106477562442353381255831165134567072145780194135049040986073421472245888119847724943796647486342572398404201066148171128474553266438852162308988660252143509246342457196021121333843585464472761953384148444456208171965442999033354702376055789711670904489241179377978350523342133266462280868109630320391959637426938495991022110323119372794206960584175903502618446808820017182773015295990460008666363575537089212619219471153934578285178827032258031902559625747791393781327567807948627217732246877639909574972263621803643342890883181681935891603954681983255109246154452059612998028349737198822428967679569246875186888072714336228354707762102255534468734321243586304684830247030385424028471317032148273498021213511102062856253366632865976373582303792182181269194268191266927885060498547319793089145093332937615162607900560004395988081116240955625356158507382997656545665512476962014730659797660069172422199747210284097916596354772112103214063993105648749042374223400612041260345759376638721140255946079642659957884844562687853149359436185523485205148143320459584640536306885555247204864482361896595170752864431628863475728454270318159741369410756061015249067004713539436977209031242083649157375425099367109535952800951984831953464155749061902475338099347717701867007336238045506939602092217563604900559236174638223194918062724290712380946193743693216814886438799559757512466749174617359493155043281375202179805068365579437940201105493989155856711100781005058105327005684982113554456422438152484521713113056914835610129999016148070771869824517549395879047230722554970030276056990746558997415291947123717288453085742868243492544491188630130734512034185890443580213841678264204893799890798643717090390145084414285959577694044244893185357767498645621538206293616881843329969458590414285972067600475462164865745969286980925171442054085365921654765371829665508090449745156365931390894594357782617650970965999395268163427907318770675862162722548165729180806045121521695121729754979334489723239039448307557025777018016509780324605154274195566947322825909822031807409740375923382389183669963182757707410357988372945930011837989103469562801428429789418196127151370085322879564060848513096527417483117333119085863651870930660463566779517310424472146764467559388244131092306080763278474330503240149190163495949106974962167921725481393937068905524106802270507536029187305461951364558419432547692574197177358186680289789641219452552986534170250313513123972196623340504721736730701298298521979078069108665451507156667673423832070229555016613749877572241389017276764890579965019530567128583598085616491171448892277684529135062959788666487181936625786143952077074579513444694592898645447663758223436839377299336955731509843974216739588090102325280542039870481969944692950477122176125505858290523171220264574836759730418138509911918261762158128173737235763758769384457776566843969385102297425204974974611337765656550948980703092887839631659002105167521159053629144047282615924445266545236170242338413935804658047406424613014346316423969364938482659949031352173585928561769327702006418049633311718409332152832093747829888597237541443601083526099695307478149583514234832126480117503679792833274088035864842500217251962260857574061552307843584517306167278803587879375225133744944507668359565882751175980837217016467719186015160682240330104433803306169971277314544677271239053493122676323684636718701080148266561286239568968440510739180845774987157858503971088406979574462093712682961407219769479681767845226949496917097152937891215337311543135569837347394351631236698974024914895712154523767555121550351967620614967134949827961343263511132701586767924719409059131974700138102715101558458792905457276694079441744790523120589600347991847122270417897663113273396468747670528996261140193643877919979498311882382128123933320008940054941271403172511805314895569365922882336526652057859088619436412788071855440202898204288567349820470800643890649808915993310501351288500193114098432293092419671715934549032159397861935389857645908045185368367566115114496595996854262562889189298794859116999561823384771180831840470381293422826468465576238695257163847153389089249646765528318555775275193041760741282684433224099972641264758120357817737869957267999914051540311393815295110842026320630296627257566308516421098172411644606105040290885667675707793385447186728143268594281779779803804072063699049738087069894839999375618576974735888949547057530542783199517311194253229155839364261581481790485045371018472860282829355583764531738349662457183498845880162743310147832057551265912758277480695333132313619056576259661596313608273768183673747346475828159714885052857709567672008996438271546210825689251166214870329725746461833930330375993557087013141425415019577350692181687787805525560938444635671540921884515865234679515083039977160705225889270291694140767178330446216576553994808223202374509377686717937224503887430999795383864509518424765113658318232610404559094663755248021097422734279799471881348966953074650642811491192197415627098260394095535517622374101347549366439960454240627786022033304238204222533792697634649393161837899687501013155856141815973312662941327063081438431381343321123665401225531447982737929332496968255331448933070814751647715038677838420776177985652667405404516431585019317327426402583283945984399857882220133129907435566195387973773919339702923052516210646025745233143482200889309491867954368112532953280653503457279258611100694311674165362044595577344014209413864680475729159933204635256713231493410670259775683499290278656105472672728500140639781484527586393731731903448495528144109470240758717407913499865066379722089794131460495627254687543472192192391961570256538986939430878927597425797820846507912014850842742998408849037361831976786118008052512068802811867488422713446807703347251731042093791753321991344144723603212210760806747255374998070053603575065171154381309171782133869724153524364684387265163600413827000610236949102158326500951514361769840625781171989176694186735751142634241601875146631144907388666407951745760266636396688081914944834051090321425748748694261083786320447336215504017549382829442791931019777489721157800180295837035216630823638591368444717782117337957142663764915835449440941297987356018411965066529539674401702622527148466608478917032813083309050451799508657603007897525636516624416037116471071265598640265102843151759415624995257883457411669349215682029907520656762195121888511716162302737599810179692177193202545579502595252135942011722648329547157815280345267083996697215758034254761223567149812967955424551659446404623677346210606109701402334133015557385605097214228185055856512791907075435700445729905726233421601692941914079125726430949974015751323452047552693832395556214268122436852321938262651262305375990893443701126591686435531736646799402100555308535263718002906058026748782065949797210701609620033658063722561668131228041921555840082889609155803215469865805611005485817858765831445780619888582388834425511937655577865102358327175868830966127002661523117042968481121766815976451701782244045450763861132645563066274176129351235173883705859084660695971970046657608760128549137342204567738754211150716176215650665842059676673839189975438797247134294340744397558398056509467864574551031939066896398287333888220859282672326317972392383296915650789921468841422856924563615441110540409399251494088459978668104089039772016011075404278775561868051048312383996649133776782480652631630475972745404332487056168668051524696229034813179876477047573110716222870958504000711198734877244046318166309872928377786630963569823192394769003265421420122183981023394842455933736737867774384022644857741929579886923599931539604906818711320685346935954760678531797101451647128076001293629425814625120983383224410773518383525114053402519352313574397712311351876382416874361949276434234063303196617769906154890412477403917599114024074587459275295924308912838203797572523428864247396355831130935914887203514999622606874513613204970719736442681245776597679294981456316968507500042519424478159742229011387918996352470716881910843032505434490138453372769470616324537071883477098714335386945985177211303508717732548217471883419809649299380918292923782330075136835563486499718373853954610034947113496017944731813779405782903922694758853861425121783152227154883249096476616463358216757917314973071235965899896412418877200257139863508093093199237083512567909390975492834157018059193519014978507294554769086457651938156117306288635669752255924319572543450831430365380847876133287952706207052472300291748332488205254637120638540155154125440171067171750991556365839181480914763497809397545565907128430473735202349944666080658611471496249433971554929974999994179318599615350887426832325138996983203483764547508640917017320422448212525897969777982043644605501021095786135290005436226893784034621830870249718528944997893344356108945118207991081522668021319753512327531116361196127532174236825426589323985536375754687337316123431639840952370199677164620431799809998303704975345984334602245798982963966803273018546665590808948702565333902495208433850051072405116635350503127266323084514399602725043865007535082983830058243465116009562692552842379262826993493432559517852183262404041800170501954476871392346235392711475868449811726511045391875429248697197091740283178698041793730194162581675881105358932887128012614947782506519670992570119734596151731934237279485030609616091294196631176820280893600162246225408730652418641087560520724250335871049891896466887024877245742278539974229540088779516502645777005250199609639889800554960624584890325197403720704629558279519066691766275452971951266656140242862322216728621922934269621349389002789296398371603675250747477185521108985639968244733080540213165538347087722044304941863692025534424469474831565212867495727215019468726119421262524416989624473065176420842344458597232926568960162762451597872339995624220414258331632816004207119314716819593026082558190553405053098309035023629511555083980998510335870858187829638895933616601061845402947258273945355249638539923152959851030364618557285299805987604737087857483830725141150050077262301441966831514108027981895833632656824333380182456018392812715987820514994108470917899674125631248058891360386878653716866951029850352023956689353649197359264413244797290249124004994359067643335720953923769071405644578197164901552725100770226399582837227935434381782819177525000950629385867387817664047247261323044432963897489053250665538994754085312524793516521287061462550520839848140068831545182979726741955840336952175368407791668377952085452207702039105225872623935958004290613992541781011190800513314763201186378691144126860761745426673630509075168476324860426207772628393570026734105526353805667248312415160676248584011207943022733045738192700591165754697474878271662147745805168588077871097584170460810782110384731328362373572470987295752017605259980138953940364781824107770696800358548884077319291149146606153158073905523173701935028031117709695584263717469220557180005395704798110649239778328083714649330986819664127646969930412249262435411805516322339628701132194637386055747170219740504768675968589384130292914615672346176028688976609234775361281047556963588547774314831347842004871800384008048627600879856343039981645983628478703141193837724938374689052541519259413785054111943738692032584515446891656694619549884123043124284550479541167899884413398362741328105091196671380781851216545585602208247914091447619796806600628137375044599251874147474180961908062371454868549914193310015660588290383638587542118393848993446857704203462838509313608737227779076595139566212232418293082809995747075676056734270864885075420252746143011109907804277198210278708991010526904478447557217832820257504415604919457645379983473321674806954975934760205386732508440934562109556900653448153475790749137621769902813442664766096597513673743137602262386377270709144554182209804581057283167885352615554006233081784914120842218398672223892085422197206913051287343254675705411254511861308317131673801509172921069885901359851603483687911829444936113920230926480994339375727274930818966807149225228069163922039100011187450549206403172222031559024959044834855259228760017803418007032176244626604000932688604979123797243020619734100135326819033149984318400215291003857742871458883956239679482039713909985918347259283627431676344806165256066469168675609203184844761463621571502936706290588381877182389857068175589758507593010620469095699284601054883203848131445650721089623978876460119085022565917253294139540016637741502432486710595012231165168797443781704987953163668805503151661020472953243815719183132470889896017168668478139970577598432464489912298337454622488104974965338531812749068081107054346451035677490757594407105260168195956780029662489661175483011913693761781484152130092136468925013648108689231990673734231400676769988609636127596832927875140934302326666043642604685926694008076846480853251053625297164065131234829247829421206287841816733268886500671937588701974203857201133460976065061866742266383424770936932735799898917329036437729201293598604067002193778048985117901904133472302956942424256266232291291495536637114869332590985866285229620540633933029725340341039207834320290475086791975474531933490462219382965628675620525154508229183980106478991120917626843148045778328294872210867801568866600922335787892532260351357736609107493484998850424516262263435215153218203247146401238736322211437030655894399466174412077544901273632943406837794834525748063506845144763978948150040052409063576596790425641021037391080628786233242367468553716038714661926071309081300939020575228371589012885502503671445320195908545180463682366189243097092504983712143066312894490596409843988002898400821512044702095687024299410359065595197337125759515086438426751483259743854970578192756749434214079015355467602588109075305311250763278327886605482707502502290869342573695469878036912063068589046237488515596857023401055236800260805536569466596775419056266597045962147732045086479908849395788385398862148729825918828909913144690744440053446365634747165697752230573885856918393914760498842545064455270202039270266274122389592224079819972509046919086380796483717102833054058756985705873032824374983501273804994071635897035931829281202757368543258291874613398061270964589940893096416176056887174574008328232005540823562635424259666213403067085274499400303142365076121560975613561403059770367029522885540669328152231306427749754860147126086144919277294987088371130184774160294042844120785539441362586258652714240804508688031110283581408538385658364204345142279822901377279647252536913940968187691251760391438811781547896462200775778795578251000554476002769720159468619738183549309254324326018443926606058194078122812817744443335211798222705553466916721847496312102463416994407028941602343631339205874277472975048564519430443278598901374589502744398023098605543957655239563308574710837083083297055176433741080046472975925152203572841213017301402587811894122831771941961581787303879965122842813939302622553730426218320236464994960845692389563500280525472086304283940355886574607045710986142869711736329452328591463701078656823510353338006870874093380549876820895524532222413173472791346100695583742346781923521586930255729798823220139709486868565101129276178885706862041602657677697702662151526449879935238981274803812851893238523627384864031648209369166610878280535806641815490169538350651479996674724112451299616961689419419378118846424173574652032081037746198286191826854451061232845049380198585785942425112379286365538682330152659099771109325672937966993268566770650849985896027111895489890184067708899030875169922009334041637649602991526400408018307353408976511075800982226343535873241370528467368972372416215737312973477812624594838765889276766380464803940406893658792247026118441493609306080302301742418460677462512657635627355342603936537419389611380586080456205087900679375812476707567420705772444652307636665976687374156000618301640451017169185561197713424147260208232434403723806455484040717734803638080489909007387146220414827226170670852750121289613325326684932855158481326027574054412654003033493336174463395034476709266308226720192630125434446246572617625302291903459326242344412527843511021955348368343002971560003456148698855543863677389622130391584783848380518669265689826832737583514549346352844794419379897471680903299907275159436108435443304826361375004700188315529189779528399459707556295442431673467666453950203164179448748863298562788275676218409875907618461350287324159915890128488318759978302007359037124130027974582003007061035104453302089805284554376545562798270294572886392793695807681636814425993596023338021698568056388750923799438542465749077556255497053643558618117853538274563528347088646999622491748929334275221324085677118379557482690707704221681709165789843382176724580540462415875482213232347061322849902273021951934741905105878257045314605715291454383793077602857239804670800756802018782150453559311333867823876962545072294187012868049546169912653938020178729686166582726412422269127998781099745245640804454476496532902099030159454064614818350137222758734564971046925678641679041188500601686985621334348415003432003180028239917241821575801375335427045875686998312444253318801538775396727292863806950652878183613022597666226181480602929093776791147127317786159979001375763331787998545802885139181866377734029320609436127407836954404833876229744489510971419778862342400340077967606502140330734339329600071249526889102279310134417898135222301211552269154102357157686219690657316317522427836281598877547826575896371561010490985620753760826129613318449105310965671507712416229066663330914969060650749673347472322507069467086727198653296530911579808170117233745916787690157549124152950452783222996520107334928218263167149485710163475007063005538991595749955937320736362686098935080875576662238646623760519895200725599524443144496062341460071469776642612938049151448868674563336627320375328574534874719270105478924755143844029922584079310961108811089622235292394989737198609666981098733471381297040731900429179947256750600843114766493974745543573193239516444041065905474332163477282506830392454096057132695421466353699668390002002278953707401711998564751276592121097923720724267495919652989684499425860879870390874610372352097719221477088508538998202232849703256626038112819191339692000630941176101258420615030189895174423535245291368790699178499493328833239052456449920786579710874523900374393544956532340272278769842795010069130088570197948802404948698445013383951512759717194369516931175029314587243931360932595438983085280242390600151285118022424871289641675729127405671155228727925612690844224311298903211454686029086148111858266035811885394921945404026257064932216043078934252515894075673440119393603897049226091560886888377223822951326356356249199112107219960749092041708886779994522219293659879288738276185959273051324876700173044285480863094151058978432686991187003097983860219753876080998095701448080670458561784805169361273501181953400968744797337327834235768168928462550942043551648666661499596665233668556270902914955020052746418051396956814546055851930604659191765302342888980763783169696697410826503632523776966974399987073325706951890193927081472129979822950855339650410315920911305661693350195191945811711681528727686361722418665492340387529945217713297805150945735538247144589564892210576461750725174159065647459508932903445411762182068067866763241485011232669671539331839617836706591370720563452309920802077091205171387012865467950842037025608834695391877237731197661706879457236246310823889584421910805072255403274954780740435516620406725783734125647780815638831877631530604866515668434148326050371980561574362671310372141062014816236966965489718671457612479124692340274535486319883973716777216460895567086571438296426001959094667870863139285092542216971831019894125563122967112302685915281932832295437470409488295244177131498354526345825298786285267399137201114449341154979594380162022208216125308627005761961816150368193437404096453248435764409051185324258296438631524509607331626519837682552459769866352001876630387302610650340676048323052671741971688691131005926805345956613332358930463131202613373676330712375615271543486781866250878931875388448167596515457072010778737289970562637125300624698138165846705681602606001727430918947208785396235174199204075464555644791067307398887812052348736308566766512728514372939095128416266029380197906506279654773362578206265611015332616867995631243686716709845509924971010749659569569843586053989991870772443033006654593244901302143188542753866612333483470311382661238305769637721634635458240025972124722223367056541238489134732681065437799940901561121218690535063633795210727397487301122366450380070445530091426643000815640718657405285020206258939162891768550047873958484004016808747566605932234489036013851179464986762090523192510216066746089028896076164316208410602821118747835519202121016487288253389565079976759537714618892119550141229989297371616383608384907074330464840990572210730110020520993903970503806141381541567390218187024478754514173753818443470817023226284701175391739048631222459310795120697833068676352983808360640142127521693934822486170769851067598823882699441110710441756253029525905640773338765383786610972790864200204899396723966952241645093915954021893137525788270396237275208075033168824271010026393501160054983926138773539758500875878797126789160724649488517899007390977855905802250456995137326549530278349730745771075136418628279022893175777734309911072438949745173174535302081765961709795885046489920676525142973488435128962378040425239915996303947204122965714657142345146806432977771603448043297266651653465622728743721996830253947462186822709955931506591853019085748280650909489862479184871881939060278170774280049735877335737765289742711384519754556823608498965842909731636829112911005996799988400601243819551685825347732344438815712507937146433646577759548766551434690716096441743977594176617034539211409906862873731033820620334224488402712333480756511342059260322530560186565523010587331330058339441859364202085861563213337459090642180568567142407173335998966798488393858890069224068620823904911040601065008054205886349462362172574953712170772774764535090337095617975027181757299593218099570312988871299062550849340459013937983466452115924351123988818911999709247518663838819409639316864889427542475665598501451726102885511648714982223653681865924427808122580536252911138807100785220423517908076664985776252384906007317220734362622715507843989948788248428421361907611179352318608850339996263899746997950290312574669281651202471577293348430469566294130130798657286073572398515069122362539685330797327298388477171999240595857612198990638728013037726108704855378557869276576468264758803562738148697628166962003305271611423168106503747011249812172444869738660034041111236247566307432512041024070553790852974184492826163862891533548783242893688298269642480108149893373230819083226871170459382598409799150802422350200290588453696030536812942200104803992019151596216579968634477439847863081002370924765210220196850239806867255522200015722129870510824602331367522794118280026902189430462614850512159178193280844158727070984124676741143647644122340588098824152204398864907177650874165320513311081372369713505291764441284788906901854742927141852507328133768000015474620016583211568422830542936539007284561963849456562130021625441323098570563284428985078368598453486272741469426560269677064546724482746717711716980468828742036598316783441916012146524055552574534430112446224190470085296424492299770801398346802348297399286751920217738920482145846323209852894397529802270695494140028310285776726972005061800029002408392964315379641095556301344755485703238161238448581771505510100257718552565254043463390146986997010840304773934755490753838034279446842835051367546628597506140814842715018064618057373287948970257913423950182514327432862492328827693018299457407550693046487624093188882753749242950687880764535318962145757559140376197752640657380192697343717506724994538369743662595734121809088359338050210308520710121562548149991097730526211418137750349043391514772315622948147870761071271462780999009651007977358116281523161689634288164884843445039080115778657696180796286683721395961347062288849199734708364615861632991731152150908969099557612302987787084037767646653092379973202658698808924786274552604533945655837490238021337765004011689673226103799237257190544901690979060242004541426330949350774592800348326642149158257696742175410224375294920930027830009480134449289564956603208628268218584357700252278892851332382501023133183707057014055397412808062506656528931539036135838987719428680050110963326749314098834468662719851374594191759272058392741466986926112740720213602018159948973361935626606643880924577950792129533845651783023666685443012209343864538149807031001709608026788146773753088189376136439188288551325957191631629324432680181438316735156843177711074919106345244613280126691289406025919502443479654836754489920110841158908459527507554570520091513328248358193591028395307521779475894282252946335820477992775312808803987662483288961204862874299522177005870289965301617045671361131479582001092000528188434819721623573879741672968166075408060487770101807299189456998444552318609627941081821241712779931340583932894904676642529633197067745272564894478947186685984546722821347214530714014465884723898434597110799952496768420981372761534421747951810461763356127130623438502757319894002733612866714537761522536520870040255653384607664421876820296114251163242076921251570387245308110307947935635701189140292368402356459856904631236471163249657049343249700743756801826379246588667878249290899127641309111107637738497377640857756508440824308953733597124700397429109545435809292868777820094802763063689768936180965938843841220711015816138697977129942734527707514776905271640459195675965609038395513742147721594545776906790868075044800173556694167947792425948534658738790565229115684559478250592795392128176442169531587101715636566339813817593208280319542135650657456305080811863203006454186451393729544679335765855216015318929860447675056960804465862358135468946440500175983937005563295611233063899336761587664551270815149115032532229519619552263305229557618149586577313089470376426836381729163349837661443058243972460039395034349244604178754974881466916088377895672770705389033072219742648163456615352744464761069098872059995106304140532430132407232519995282542678225002274013856724384637802158782171990295809562932356400135471014766734344306871440005166754646267247342132006741501590585636912113046123965581656569983756007445639385054220235030313207290794330943792878963326801105249984977932011898257668607878561512930699370722837005155626067357737985624031502669197848224464840833611913879076667351213803216283402381980719353811701815306854928246911755978706908604319573434367075543437447406025798638879927792382512186724388695770248765350870873599221935082022273162204818156629325750201091733877176716451171467528928564637528493392675462172668668406819900253007437172180315074801156131866409119633387726341863690822324171322034105574614771081946555480757746943718552308404845691160016791952965581500776882440676084949622537890234679074892366523434325862318822123410856579563082618930008854571286745156227542393466437556620131144431060005287801474230011273621224928042787232438577802858628014113703092139133200036622501405261457513075106258784878232437938327248880876228655703436584786320426869695960248669445565185325499411204287469972109299257912058571317852220241974219690162876934667140375721013945492836745053970640424242519100861339807331838591134789431947613598143336246992155614019971006698266368979388687663772369793043075904984968636092976277178340721863502329010611351892901988082426220333440346366365256895407775597189799410134240229394638419478925418909274408119262232491562080029872337632163009136211999510714407247069374748457854305289981742217210364767120746959080532337658545201915026066901273617821500808158017271790341158600352668448637011652619129498597262101767906746075797233663850621525734893141372335707523801770994418849188737825905513687947128642926419850192435947793208319526159880784006965509870561417232682447985716074064637391635395521063179694217176575239508930180097523708253532648718991635634252748422913797417766633419188195697294622485364965249948368365345581632049759739696317690364000316186712042912471772359292609163536618483816755912906581818602681207358680519559420102512021692118587985236879051129677831351074157615742998366182906383635580263998601432317129073681227094692845774786768559499790629723940945018395682092639561235818764214601048145396667146718777968672188427626696233476137924900677973346913491189619276102415532336267386403573676850166029832558745759085795831674255502467644918906342414746149502341144645026591968857564851270139873378320268003998164152745974636342568848669843283294919026603038468154459425499872643624747467561582274130659550660205795816711409372667344898435078311662686889960276340751120198317447015959274464374051690582891013505671641931089303314390636726512617347676127991333667172952748400891393678539764035184002087501369571326798942520064776891599793694718954019473856632839553286377504924704554901998180933917129894172361765961891499498131459220482087841435554533827216156783610308761943630762659787810635109976843569492297196536828242935281673079395920495483851603337244317869295007929108214126193677056066189372383858428952913801589693817467782558758698913428439201643223666203402214532579012989747166691563803262460444237200353827906605628487892510216770087774181927156112915916208940918686938263153796318337180360018458604128552509438469006445295792519689897173102843659164283162710433887170600558213450772507454160280633611786160933832308902890833702437201696688563495913491939210273739304456805433511820032151941863991131935321368537962982022880210638608639028806779774769840342641584866938536440656321257801497224709086376484021384985823243808050810475011727583748352212631061446185197228096740649349376788724652186397943391227855567606072334474552278953985238377754401101566319241639004084885160871852801523089605221838900408050195251123211072859874804194577629427879008861143649887781015351680217560549397532336330387696556916900964289116033492044570275880873808396642842368950904501551124643831213655594569136002742384722227188674488707130299249332114607352938182161089420532417557218566065874889563166266162357744306799550439056828713012539515468988361561072306778553271199848608756451832105283542097264788566851147453289370209518091827846217056864931836939108195349855290452071953909300725145332632847253669697329543144155212772114059215508471237559027547875859025474192935264407229601474279452080045289691201494428137789078043427040814330787985523905688798544069167741178344476433450652388658686136109758381318275827206383504745458181413712917376551565630708345074726321142242716073250624641115897436556260531138279241316388627797273835950874729235395633472818675006720289054928044640169102964533056340983808977975385556467317059458858432048760014493523972352669326736841639496299716256538710952278326343781969762757100449173334301081863543062296793662780900945602653852622612919325188048634394283370691325598796027690891950360575214369108925315986485627225132847858307529556096969477122328762971879882975148542047532230611993195515321530126164100311746071166098547390311193379017048783942184093789709214220665996465106225102966227900079965987272729149096571627088577717248273730297000744709498378648103431437177799918781231995069808956739422461731130710474001497284557310602507700519829017029261603261042338766894192755983350966192594419255146632723159288078495074551767378259740051077182358261709785128682154163082859551451899200334157522973022501084792128338122828020567146738323509016931507199599678641932658499471058688836760430137180194302169912240666458736525665279686551291423540259182073488006534223380151697338026614170133499730117855349750247806010040836947907615351890475748751679492147175978275745844067671289036513492995269135745463430151493205271531663595511308719236098900947433323503013334266229432869469442424505160600694572184620276232731022695767085133411547020134457920405237208003792567760986904371048825529673811167267363158104828137014448146003075799014481523659620812847364980427277061235343612414943663824237321639901347617201554902274364034724166648386616867104288176908771331887393310991999444234569584910795801812700013288697043236809020338317461247699784721971415911322773172831938480660388818778768863214685617207671534034447471567563746041126577615041310402620060111071318991544251024248399185352194063403680319968491939208282102230616701071870202092416359652525069351836522720273121494894958902163735833177002009726974337994102207001465494454421800422292687669249258048135472257584841059582411678418254648396614157306997173768159209522144495428584658059012762247282763896052488447658751853446412751804075994977951851512205918451554049335835644561379138128440885271356228957520560419035143996088632412550389601115263697168532892636718697233508368576696594972073110037517405310492710614761590081494059390836667422839480494186142731965707597267794994122676191479594302529611752813466027215715447819397397997499526680475440727096630723096209908654296039676041505979623779932563478661172558662034016284775828763539729798062347170890862171575754484924220277263992808649135835512283654164315223308991535521504455844787847736745368640736023692908122936486195270257881193961302635275649885272112715133467538937895386895553124557049143130960258137123426193833122516644727293261469563385038999471277931282263255503508003693532799991919798484374613911553991546659548247475524970749313186153330931026702620439730434102340190061739098719062482109173242312422383870407563512865342953619303706439008336848480309943429960109285736813053103026214300012630493004965394793276529789652217920975400788108647027471386536633758065415046237068799890643148911602856254688226927787593888013333730574021552224973717430757212546190432693918823564136927563089020150514626657948396147071066112585180805992145359640477836824966699035257916725490405434352495436006276051652891746894346806337491688053006310584172084874818824484969700000484052097339739279528087343667796070482567500387498663556061769210499853217070914550915018879074366349343667797228149989745813859942444130417077226197167052294371193520347652704592551255938446770085660111113862521380813930459266163431664144741573428938002326004830730303265785115097508782303877912805568122912068918574121701742616480961033198636304374385367604304280706766159942110544627512410877824282976133493289597011442373366674824041403364785207451978291986695301894545003329617257920237380966372428546179272895837254173853093888513439068584866151245178109710687430444379703686501160737573823140400725985399741922789964453200698626263493121541752862266664039288680846118594531434061439761851118574548881335960202259864939561663978418121910972171824313491808878721389927712062587426999284179452954622765944962996922351887429067515519831451973862714111206089920880697815456181140734069269058586014526997384283923901647611916090807488673934964292882379367702274475270709309524963406105679115703488571840696398462346536673121383220051120385468504390537277268084625915603363826419436474488863998488583779684198822958920820347161224245691086111186001331059262494127356342202632357512373453707530432323000380335769252797946176301527495107782895988659321719436574607917134422298730488731687092278679535549524540881626727348167120975162368871090234404221311498778065659972752121642663276493051441053456166186578431065900098504336925329188448860745304469552536861356013975390038802870010679576996320911248396560612344722605900386350867671614706505898362920434356814562723252790505933427462084395268679773200238116170790856970755839830914127328471094098624935477309163454747297085987518967606962027283136962857914127531139916888782581256045149935674251710535815068949066890802018212679793428072482650112322834755988088313283553878750959559373995538606915059044383128512209199059238862649146391244932138466230473480288285382778568616488274235169181606587984984568880836559762319205808194740054919376061375069866049341870293768179189746261241085918570909542382502701398430192894194308663811027439433230278102217894733270610178623843612456534729159173290371008041502406940535316572126008576614803071752292132901941226391083410259101691755677333536564651426835887986306251796033664967853837289218963361222140069619634345842397989263481854676951997761274712342001230030289548013933068615725837524781603315644718829895395193033880290866891662902307333285704870293532889898062704744738036380380943117119078222284346266158923894982737481540728116882092300209668417845838068224154052342180750666021957753366713283183348449318485601355257556065743133389057785975353907567028490093390906563647159295162504161066144702534515787622246015195671698416560321128384990710529464650590202119115363615978555030575752978808054194076295429401355539152889249511248470984728939701601645815463366610494858965805226833365751261822480863830918052135837964971066841781221037324614485452980290955913971480836210825822405306463273623735883274666255538429532157642475507713995266256712172972836402382660056016379149141772550319375587994612278359187305136770944943471359403819929759257900651232205118772848431310274551000242151332790150119446463831063046668334267977428942919454887103014742616523318524504012753042094590239601616785440797573358242487535423892721741784307213870740148222426436034636058450048047684300027816295582934552460709704618245013048525024246939539116848008569443020542385341202266976234516706545245422089298651622366336926924315005693990180064132753731913871022410892205146108690822535556450267956324199537892331313432685957369048135933768098099550725798617429884714306319802358010170456341226173096518698889459300089398725530426802193758377417137652086689762975569132036226020107183661137206617499524161048361814799006290484418738420092831337139151371122947445784531135853498123969284301586862580701132913809685903612125361855841788473775116508015480335211813858263561257203668952420582406662811771387163504271740611305604788504840643160536676951628817881329929506782771719661490816935685749068848520196552279336403891366079230425835585364655529221434906627229819044624342206787803044917507796253699953851877145327907703835289414932934555671916493828418948320643755860574687953283838568952010322426148436488765213125933166439443453901165711004156674062771829531208974631941958163132863272739481870436670869340708865039734285574386032069418332530426642150898160595789461343323099923731453523201986795664633535235640590184103651257187832883171044409727696902402993878054688856935243531620517294117346848954837043610556970850358983107060787639396246564729670275489787390178123065004019141598353036952474248781576870110135118147063267365850136078949689620844746892799581631781987590364673721597092668281076419305741093552157554937089658570246452932666875625673149910396117217493122492856132687860958746289191455775750364154074463306405088510182865747293276614050579674207768702043080950618178283310016888169129959047798521073529341036647702274071267427289476306623424931510007701266357564666242583863558434554489656710898001066998311510995183108320561605135458703266522895540206757483042875685205083868503812957258605463429096803872386830911485314058785865472888199376802214561379903227310394068561013813906371363322243502151654267450550961282785460219826159102308954709720919094552822089566896421373193521343107374970127477969512659948032345041910748821574733890507984822309769467286012340242734567580563288401128309074377342978893157620076381448024722905447032084971055209338268533711598343597371428359428375233202080966769966065660617738018175932554041816881029415120214908238061115433556683634557172843075004464100880211325301708392739249418893042643665252707472133628374816936173148747542061236246266430722527209899856558286892233595574007988680684310460596098161402154798205677040061214504226474021242694521147179241346223095634473885738195531751020953278721329006299214653554099082685328513144603827355539601172909828797034699093873719200864742428220329647128811197479565513585087540234051011954147247343740261561625451392760950019422948047493088391909939257390991338728968854992147766762038543413540339289261684021157565563566057398732674984266168474844558108487096946184075192396757798083789058678026582261263468877056998569252360589583245327701059490724961168287366885131493595231124153259552578228737841305548311650748567137210686070432403663601289712196211290604597135462818566147536486638271363559550568977330264540965902175882127676359837063874936328198086113929015867936290788968709075804269965700680536222341100281405062697932360821075038596370720698316772192823252700837952185337148215984315475544619122350412489717779958278817209841635349674579738514211747699309712278480200768858049464342780218000914697243894133416802603221954918225934577897422836439630827105122713334026274646307969330832375932774262945098842079759689527205495703572489758162029357996746974489000883308721682803451722637831698433430744889399108209245808162528240931724575443851241875857859530899234791031516269321199969531292119874736379611633378227528460911216568587794261178233861424925491088018880082450516079778247518373806415003182116277041826838503062826425563035540403344582905672677814221919285650589764790950852925672694808997529894602924279641275266924692663668461397488253354615861678576602835797768926612742605349350573284787787047000482575044339799733397955315464884236950712984536704693335122569833146637278490134515216469026812892295917982591658325450348623836561360223982435551075696023040916379987936818832147145323942097317451472994121912631777821224425457944915497535624580629990422001534590547042635242102048746823032280032034512741666080128005248903698080234350070914708379219733412533333410145992482198122387271065260257693294875532703238488169431383449901377054959841729794665568021429182076724540866065934000620042305481717209836756686603419937228449503327695463792324237355055877198788733511259656946502457630107055226228313437828794914630508371357310793569318990928746837915726260115305796475648477548445867334108990836584727780425968492458192951234705480853277581566374170194306134616664922902832781446317321814349281491551753980937732588673114587304663461184155504502628043025351334996031963413748613410615909447675693699208856614637260338788023760191588470238192406272577818589430838425164808970587075536490262462269924915922781196196668639083824544799772753980351508322338547284326879585457837516441479170169739130084173457536237154887451753640395912174187392963161667913300725733863321637213831267120848165069264136131898367058002610842421048531139039706662368706946636702729442203435062683245884015096272991347530570428428840554317950725580377145983615029776146415045744258938725367603175370018949060855524408586366294939222292363394796366979894434536284301480827429923454223772892655247606519650845070021409993513706652251512497197371376104950937975823563556439316499090588924904296792719557539904391264304093083839976248240021648317202206235182511161311333076085220968946460887076694476032738557454268856412496980272060152257007828359031813871754925826352435305735066462377108653776115015775949914413195271260802891556188727293520345744666831694539897905748988146351532287338919622333177032850329656390639390326149199569010588456696387428756598017728926980712152663945285219060350113429329366628758922198424437395434515740054397276193761466616416899720309472750963337131947194540575019949922750034398204212053550464998707277190786842996036586086747317059390525195321686536064548444516363446277319447650209499160208204710114766717066657903494279969149239242150033816484302046521185664131877328637934552664937534996849173011658796690576228389354094378148761493748189498267098910854598723551211110554441189093327433090482390166532290762036741460418810909504681597450055207266871528029670262021186141920056268668275075726380673986678924458260803325385203046012061993425145031012722550824143392145673272400080670267998963554405248235684556489031961027823164070322379310234655162831051517996624027219536318854822435042424870038361415076719755491500019815233858572465882496396208301676511414599964063391570012361690988423964830560956824265743336881954744569958846381887608631879206551069225147603000684235498427624323359197485190197960899061793380456459159239370000945407824772648967993762196740615645619373052533353105653442441236746220077762665879620975487847960808166075603545519252061472016834729561481129930180598615127010404689628940105575734704292922961124167715214655996360773151293875161114129611628488547245098660188512847291635062327460224063894988426269370118344482148857234438201010213719766381996501749779857189768974094459523444773514267578554713855333593517496561673639211612377174051151925650762902585303848288280944109863698464473192105213264515003837835160116818526738847087402260478423302636237026860749157015064352803262211589829956995972995935195107247746829195512063161203882660800304400245312620526536818290444946530965968855606568726915261719362345818204219838223443282421381235833029298023867216156590157622995441176874998687731618085703365359313795471325486385059583834198839131792483245274899097467752531506377197735270364660585369735691188273184429139574345442703612114025942291877609957263395936660335062066979614473740532154619630464892416201111362620617657782849564096689020034494187276577554251689701894723124473234734081852649312618649430845015983474201592449927891773267344773399161689269163751685690726907349723441449066932004749724157557650840443946924495711709776499999981499150819398434397606725513367229650641052836840231885614439293155855037802323406383424127188574734435851915614147970485975271255020293762148448613159677133791662696962685154198020580048567166410436221570981054256437168706366989900467268988255515694975384829058326153341576987086425062959103311098072165195670197789969966363210848730382921215428536846807503109799727357923791087662095401433378431312194926145489603081441576979985230808426461882258644169971478963696267136727836924828223978419539197280873079696100294968701399169368156805359211819427031710874532687842042964387105455017668857629978054441246365952025640356327791263453952893855859752682091926428485295857015718383012156194997321247234099097541467933788285543480179257907297615567991456881577152082424665093648886615618153462566370090880359348043712760287855807161421267741509093444754770780589282400396588622151149558996779087524405567727097407341639427813514581952272462052078876031501530776100111570935970020128876866600211126462227903592725208838653274005081297902295028177826330281248985108081186214277612438775886079020124004353035433271884603747858523183378244172619187294004206743098702988712554705638290314103345409253498903386113872747295613597918044961545694088075885870373103059042591800318118397509096900836960521552454737454850676658327141350283451300632222861434462125038313930769873782852893420452680125502925045417065475579291838225603194542801900081350019466837478069155688365405417121111046798909764076896539381107835689504583220527830775080136007883131232537529066610483423660140727785759648237543703662788946906672343402208960060762144945598723085278561032974345838273883933697438306994439982231972192299921866716234247891447718580993002703022188857826660053344824981680670241094434026538364554432394652071854702788410384120352041966411914442919987486255898641908228002843170997510991722922813570576667311947098015073137303975927643357813561143379702213420359231828331096196744417675933340504392011549801373238840083593678423972164442237842022178821442855234292899212581263729513316704973391593222838469095276719202874301485076584410327039633651953379883586478196145961958850749422665869542548140575694086012290089980508071150276096990779565710384213251678638330077474953655394324700493747566007317266670624930051418912102160964722050803175538083226577264946287077016798044367650405819673860672542936639576955237139493881554997022067190704128884588671905735467255246776033415521783718165248736916301343391829670205617527517790038177135620799105550272703279508721408561404354401050340407981510311362335378259773198515864303132123354322854862766288569408355158984942926668227927433902637577260022069285418921306232400162802864686737016211513197248716951491559326364135968623598305431301823371587796151349675931972379963247918968482692524534798662601739932020026448662868528638128915134304697833621376610362779755967659659674102708392316689342193078704480711409538089605296355942219292827651617057067769150859095405466896571833527923890025190500407189856144226207910767868294896422492491258833291951059019947354911307947328127177299582914040296201326687184501360774593759214605758115430675393252761366763002786956134964303427630458120400674782637118561956305298380547590263868595419806224878604910220801424478080540335325733506194600415396227815433750324112759835872866326513426819270001563285698837569877503607986455817735586178729935075627494776203157624986851045608044283993294361013639459653016363947127149391840984707144268734318280174660693796726886365002981476520047583417233578911180134785833860854710171848993494150619060187659005124074808192542429268786049271447829578489786500881273927956924212906143098293151507795303292255403524663686758766798333070853377856272606732554059110352231578237117586656460549583810331301098324435971021139971878537813299793003121569062029266753935059955978250834539333426392484139490640274704243528017627291320575827312511121651458552419306168648248872489207384832485829465764726246089235892160789123500016762537934564746675505107609257939833777218331816770611122061764059862512535391322177531555056119572095670853349090944268811599539796242998672919467093569315331669087816100312254904426749926483334008213096419699453290572735014991664148869063736396392689114866598621226497576216745563073866254348654616862857822927388297983949831663877737177114074760842284133855994262727395325367346191928103130394095113673902930484275190912810308396989989837617136633240695524486247260313787110357050643345158898739381728266562517055673997559427886881152923702628190779237021436156191924199439967203908725152682561445848240552256035305861322057050923349620773557826527836592647803281098155691826619792480650762583728013214907900211128210578280317227029739089841285722492836045848701321939812372020101994529677145830018671677776338500311267908055746113171126718857917973676913911544673229186199957711125703741183894934681259710910778348700679155747824554434908459027100444133341334510531779252701371602072576650261100760038610973116993857528581493554743457616244149504736350181905792036923566639276324460326438686994529755110835564138415901742770272781571592249723351463016185421326650281454840996475997717845737794279327954347799050275710503816261678494476065106072447365171406294372726789274060014933088369796619742401906721744462231682897523282035961826610499450107988848212138032972101227467864069654317261144061159491422711146286148459295861398050920309746302590716703924837719397581327928750670171176007332473558245946728454294589929646575212665888668504788214881334084841943607908754675004784048204895408797422116651911942044872109915757797153960054627794450517836690247026287402876380354608362859351379310756811268391372253480548090083619900611781924347956756013274998135494663487163673921621349243466307026097233335336124901449464145553651472349982306930230537046114978954252542964978979874403841795276553799265732318290843816965954510090952617628784915068441446648712219916650227955871484876213496586365467788234453760992522940414793526158721270851620297300615681629111795915004799348008422116325247261149328835586774220944404218328356019376447894519974668527957060231616286158688611182751849553617662936357226570214513405631253062016464330685847008285061634372717669408352938234518926267508888560508259976546096514701495926934746111408453170399339823367265834112155579037244542420423066973598125241924858988236805277109783437625161335245474599578895148759608811407984530662123400507356319340036186287108800013682939869948153687725017022009776880589285165637320971645094473706037397542831274937901292209467048162162099824143237648784638283274399852935936750806711453577881812823001970231086254379107164610921068663869193556343175977994733422469941452732776485276461620034377073559428960342796147903531547086733790940597762300353746007176913970450200308029011982237313192339201407435824555098660578836504500454043944245860534358514619647358854914355408492539947450105896516701723934057161258341469463573218378146716765592497571968560485961126609695901833710486538228354255239860747356099021062913870027509274072358571075545571916408164052967269330147240075271087297910335254840526417456776875087906447952020580822722015742879987435808641315535339592753270355409570160005851085749179249942717330688634445234001069289285313032534209112929032517684196083309449791832141899573559090850073563202623607517916625603046301360819244468158269494438978415999465015814488368379041267519042787754789874049660857266975396784888263761633864268337431772914094034226556265995509390957028541002958189290795291875660822319186436417378520576669838274852313176840722809460805292783871557373292657918443641158579370014077388652059582021265083903828709860709426138877127170583292980090724893667555481073397643536738623317919818237279468520835319307539363468384392776652234258044404397759275076642093744365469616559240761257387734461519316169217648795234016973804980984428131110088963162515664350134679456399600062763057806231205136959248834711433750986546419447412527878939655643315140977846383893541549616285032616144350002571222759495551794180059586910818885981156813478748400391627084873393608792012533164739363340571179856241919702303529905863525531629060592551496802109304978615381007525767688171857923060890225626997393876900737106278632584089811050166412078216825064405950155691711501876626596531001097832677435330956789623767496835904816079446558495441404626513541274218545247447042548648502700226115174011901848919087244117616160344298637976306916003606962250981953576762760738492302680441382865088838287893705618384028563341391177538065910673938658103740799296435118966873410959013848998373965261425504040258360670817237776256608667994074077330081241301974244475067991874154519718048501075707605761774028378417158623075268559748586798693699496012498485760470965240773993772361226868213558551541884813171550123474657582468210062521807579679194881722006422012724169442608524844758810044026426545563696182176517592645736271936376005633408481530777305074431798920666416625795841964333595297085725257539984046645210389484587766513608780206564670019341507042540061451742192250603534112402685689253450284096430061777026245155750864904417848106395318381387798171392374845637994440222109116997349427574620399288899734729573287235440387284905897780815880982070216746864736594404524559278241151459877233991901790744529319710800621414727983001143409276225857329827462027374736738617002430754229194284550980777662669897073860524287791967188369853359843468056150258388124533706491103905758633497626776952022869759140892736470063040955385790403867448741083548665249917115848973200316231709235511825397340858352225864377812952837302875790357320074842028541811588596865005307264323389921044347828909592205821821154920559314607369387378709038515676638717374831909823888820149012561820540505214250845086101802670522553174595123576379037608291027782439475287840585810801553974021366711410048532617157285982725269439447139270910361276287278765395000334082689884145145009027510867185429887435573514403752011323916066750699344007895437895003052106100541237143597945580349837143987706303015071096226908480971550693730849942246157474204995312223063879648212538629285453055848016619413109318754672379275215402317370639097485093580629878567267532585519561235369803953542584382166117679905692734474806500182368291334111472890590700630695332002508884958484519655116828948565740988136422467180035356952908471553837775533374320664829872824529635376482522819842605423384780540612927437442259228348562147285883773988137897549554482814618261956517554875770965767005571969937448291458407913092942590877874344314934117152104971525426176379887962300181331942736195953685830728984595292904693754846625366438690196950664690173938297695985592802013017829303992310782713237495619485235864344872898419734434097159191121354011677664800848913579522411974676022091687168064474297244016413832690435540172097485409962915414384933817917546541264491604274922647143017444979520397358323887964125124995652135148746542230044887018048830670184131653306985630429991822791534463501138681139658146571174015830649621138636778507291078056711537495986829937005072722776561857838836853983936572327672663583689678597246645281163756386734227094602506769692011615887844100789893463319494579448568108727074050016867701917266319685791209891892247941194937046674552856088942978909141688741997816112104682313122334409403299263029895392192724065883460080438653854869980592903144993330355131618587927041073622610785528977862519943269490481711524004776473576401852044808842699069825371643311622194424805372967923682652715723949911678811262060925111971631434473711340674664080428888628406521128105644270499597403478434733839916247624397514940868904412042262478951470913917896691943034511077818488787268069867788845472585175450670760152516501898707124904715924963339379546699055984759610580031117965048216682433707145815442547895410256007863702850414390107108998340702968050682555448825889303679475149236415093766895273929022118452592240786303826098908086667441690515696133796710299188304497170675257495560026321978440535022570182817971304870820029660465070823228286821250044182741234558879100968347316530688720292009902597546233993761007362364152754908188123024399989738636361915289183730406663386497368157509502620744603534304011004032409603362858601183026302938229873025537003293313140644110666026902613276349210903972714594514568897928316228019285284726842445613983269441733105299757329089759865419185919276113060266702965575632839517629948721477826274901714888115984263458478812059418200620515234594948153472735632431746861090493633538358253769849281503852111760077678348582572892383353672278965405291366122542344824179193857788172114847747522878304702773607655146023104537861467429676947159656968190366836981341932370652668841820367814338606604651261283151934372006032942881942060901255543719896594327688924876626892056427721385110569784276397772668542688690422884923128719179708666298578558732828677132214251290384118526841871603098667458319172788858885608067558469876401666377339643794174150951536596922225631593931202215434479748593099487843375789809913405467793284634578893028779280730000368974684114390473411933949857785706579271964187254803213462437236840702437728760310896685103482201168787354945329846819408040485281332333670700757904573362617477574841506030319826448243141117221140353541991020101941921170534456867197211981207302122911111421463633964847263042089979645027389161280175610159725252475869254693862376053080427641314842673864291196648478223270383336450632116868180231619129800768934108068909824987851688132218313949419489856238785641581749218410285884569219258807769843655017787475601384422404701308707350433813147716398346330188188953111515096848617395998122251378848970573882301841548424821334729801762351249335716114367698033884092157938198199625231713153405906717006921785410498364304590265762510242826235372018191361767331321232713195281290458580505271219956822933724621889745177553026300737630268785719842518585879328767172304960054009605223889984221940220419852481019843069611287479564704584860715005567267754454810817485926892851791254264458087522810479500509926600287941759711404344115478610040194729910452848582415524762120414836028752904575905462214648015570995748010973266830371106124992039153447703749320342534475642383740029869579038980237177286355201213979423970957653882236368142925542505676840115210781917687282648851120888367179893204634387124475912490543569140909436038921975567113069583910807045689143411329355909641885296535170421913516288824518333466522662940280846056499627366683537898346106501470558737935989049305683376331563293830546856535212836568278387085538380767144357365379750627673926100326938258524488591486211826390740206911227475699977768423635438567565070046095042734242766954733882046973337845071487146020074614019747081906271372795440778802301589512390121742521165468640591268663605068264061126782468541529932805227191597255038372736059833187473646239069331438190406917231471437764780435911589899172074915567254571388197277735790626630167213336071393463047744133662359036594121427564726487726234019949008588065922225652971136464681007761793508160693177981899153450671803837512670538038216816719044365673017317013621188709493212598935204025914746872218443295096242655799011989541815043125648766170635706699228382050378352230455434247310298438634239242884525254676921992938880944728802415138554389201619855710995670279483786461059431074285129164590506002521995039788013002377005660773009279967606369567020328799902738186212506199190294705136116975416600712835942989140061914703403173464872687040290809634375045311120013544744192733142349046906330850787558966919515218603784691247605877487419242197065379678414511346294774256258351672299671369182940880212453935452754872296882088201401269127708040688927802222727157085072947893751207092200762181624765893203545406962268839752714949034911898734873132949143567856639345515694182462671341432790444226116287976358580176717036209759551257021556648036265882671608579118237135546554654522796507789241155501850218600991918760348621439551818263319611316177424652321459297908553382357750151938322491768332567575170481152063886495003460515563279288771017983747684724236665493191557487676427685809339052922321729773681523364218535233324922658621709973684828928556274588066429504243405306279169437478766554830909878074607560249547347316652711675198145479857834286357625971638795773241609345935795955836163162283810851534374691482539470579744650765023055147446813325593470098556956756879905096482866974635881993674051015240727895167463576191444156175976886873227587019532772279725883199162470961438602496054370554994125385923069235946273549270005326152696803007292164567039399600200401248670918479248685775935838425351669600184281282725655281792818214034104305101124408088249843158490627922964047584761607900632409408253087099136073972247171967723860103243953464530638022332382945499654694126505235872991674860113656584351639850519486258750461300755495601220611566433766229134908426733467900144886499345550836991772025554198077761050581982097023990654695050505125566320385537058140603096052692138768579372746847163414677527282701571388870045536447732113208211599546416712013775073577261585787057029039901057961562163347524162180684842777325831693772479332851497212468474528952538816461717530581714520088304073638649718464391284890553589877961825219680442675644323210050866068210248717494603349236555893192813972108032957524647550810185584707259873402747145842204406547996339692535078762086804027699957983203612444279242114226196499855161133949314587274266579139148805690587234400819302479457491317905110048264062392482348657561793595046106400215612489819711793879641277172508059298805394753807856490331268715827775445717386136980965147897961673371122264623731133133435001962474406500172014800645790673750348030747147286932100700982025818445339726428955868780081707005969412139882572479927963735699533656095557520223677968664902457148851066256702939180317710087175395718399791546069340686266360736636822186722524031964974260851308849321014425805099846916962367075958730459129089351646921775047106137777563027722799091889390946324300605639071828806060140137688885115032318707310064019623006928370638408864001165990953556340305681477170134389639740127893953271622964085159547439887003126031128204618417587260059352908887884697949172696013822824344054198668579395942553294680592499740108382324408846723531293644662369023724374167385252019327967333108716899218163330217715763110320789199251115522125873687259706660023163329718848102788994761370305748346181870600717637460937917206008634356736269079486091036487258471659918876940382316032237963929268817596053686947676780500561389937445512270878928334855389819383017496175307032453878418539421658784649245479389244860093260486615730860999534472310196431253069423658075950462656049980777873937946352844786436333918439957878429498455908916866740698240877387531946052972984032408336292474813437422963095732974744190397762930604259890403833790342449627781274344259157661651920231372201378679966825129310288037811492015637905664572546172937119169219579820352569265352499597266491605937798049222752035638515526278407088872816084981117910825886973567632255544092648578143214929272447002409801612538178140543406966876734460089806339129065577116469687608225634493524550651931262170277357899431061779101815138392667730789614480843337053497279089817993862167190648562568373432934629597721947743961372082868210756525794763336581430936921959340975135621569802313715046777182760381417049655551933971598492669436915078289811246256414568297282642659008078754228635816083925059395331952440540808440913547566902042006257006187014728178760903167150057355269164459904642761887723740123827322902066260101202051600511294387725667783164557433204654892026955861069181828291596535755717918528030679851157963146614550992065132849726843432301866600675388195203790141361466568316453343482278428575398827483522003184839783838184122756790166226242768912902694577568543236773857925943987964857058385887016595905979513830240457772754939993993841336169120224344379877941995188765095755000246323715084259411129880883344369045173146004947320914388182615812451297704050036660229877936700971936436778181260489950803827480385954973154334153890189165423465930854978095936600527317912041461768492441812090073628857227670061070643948105945787785755802176025305435792721065697240807508120553376213711936231970627499873155974540611034750406844075078830545405105600885078484588153347937946415421449009602250326821079132389625182852916802523220525829496382525304273306288896356959998043320791530518862224261718041411256067427338624666324309595434129191976872654676536356553162795647258768700404084016277513600092110183778599435653535997337224487572154412930554169505545103730602824063503252549750294462749430982403709935150410817603396317426393448639214689861832253947288974976862714779369959178143884280759721978920386160465372705920814191001378251550971247126609693011752085630085005280080272163039061208690796291942210359923320890530436970836706614175878303975259259331567937723718911013135011322841489838271321240940385532151103248486259514464601923171009978697882307650553159059098290859260842875158171598428131568970479391280340440107555304352549184266991903959435905651275572490880608621967261594313941997442240283485493572656263012207552014540587906238244650415137125950644534658677552387392631276316659915544977415998087054073508503485995123678754196685812351387398177649007348773671103159740351150872376248379346757266136063628616662618996219795239379197562638168890297367886857449109110541468457450408329024635330104519757457941969107783541784334486798216170719305677465212561043181269977971393285739468061921335896602204485361869576895282029371417941344384797626721387233305871207125046444078997314640352916388787768574520866652437666903834244848234146662662011464811933318536915650138700552588527689507998087697355871841970801549974608342070336214564441933931308349135929479616713849457664856918052875532480990748113792706102371096694677646646874217667841863878012994773212871465942065562130689512373521557972786461022679837267225968801584640935046526593259825373828302518364809661544041303937700103389630548637149582802380761408729727726731167967994704801965698138762336409895222003449528963796705117323961086777768861686478384387709055648917626844732369605842471695500403061925074167288287785588621016001529892635348155373272454652016765400193877179851189935474106612048302389769301660890045699552304076775979430629129894855962777076333991864828371413330181776166671069516822345793498740830051609092240295029200620374209953954820792146293028893681345074225376262539620502817909636994132896121584279983161164282797462629327094177823624945352981794830978737882258422280141481819609785349265772113001415957724216415687289182604119938612027779670964086958651808124737235707810832350816226978818059800699648279228326367693097597237175260850905500842540298888046773289473501885352631143348796156810139396041008735331210487551647309020630541056655325784124393996484297675308372803910483801368548586886208110988685934848141630866210590536384062129465698524281951501446363702762897508745196616774710945187399194338872521547627004977820990526911854383636465731683743862561935068342993098048360381277714343637057364278297887536380344205840347143405021427844212524344549262927863071482150017587239589851905729997104217319499826332531947357904024247254808185107742982224920043178297853965516232610155860116789147959786116342296319544573786256150845108855468145901306087416707550357344149338250839362390282037208827250685681658495075173713896199379121185450601664801979791116289643506154920492952521310589031987053332236097118803919696554135881867635411447390925736962875011236043497825711714296023383442783306787895506822968625605042443377567561857868347603196479751726283813950382520046444546064847387372220247995986151727216371708285023208588765521102154180257990585975076982998407671789217551043946716943830081911566106834994200122665570149330768047242906336566353907776892583963694275643306286606324053818876055290698467460570893099299685499910226764237077343331007060065278246367994492607001007089556700576644431488259207955114450637447686959884190283583472667081408927293800273717013556884109462926947812781933167846533171724320222551060963302078917014577562373822595966412094641970620147810506616097124408574043884349674792823963328957752585291773020359301211806494573706655716077011064466577110406136068057529372019293180929848640815621037890736308899719193613807973344071050721169921554578905106198440141047963379694142500041638876535371050117215883066846002653329090316751948464906632954853640836878681394735884441384684575319099234156535223582412174417385581299894212453202217355153411624670873835412283330536947808828556194227630954231075845119538154239095530185037352594070210677410927943689218739515034987847166342017438049986989703649692388630574558093693855225985963293336509873437219370037273327270470172665955273123277477754434582049039962298531164958204459016038751296914946855821634035078253592167663075255683552268006686940791638323934670538574501135654947077606687094586345630734902231333841042101476212735834339348257335748425296249190008189598405072327934520336033336235281167901453551362030688886144013249275256410315546189959830067557860160722334634243660323615200604166698253439934751538424050059289145938473247061226088896830219915760338670698682192936907850650061707346188031451549375156126001784707254733429262115212816240803421331935599873719718986594589889668552072235489159058853234951854459193928215264412116507916387237064548108034747625697552708241153483291321557804756560661146789775957991464295842981666850292212655909608864680818288136318975952120978180582460173918958426786949389107334484465462501618473814725039982144342470566295694600179374962121721313171696701983421091798476266780798447953057444409805918154612720775130716850102789790564305834780106862690575575253215039931831532671174394647498489665554613719854257429983895962001813854682037590568057198557325457855720923335311670210397655019785507276560902239483110166398544975007259732623148744244711014663016382193122942597190539578651138798730239041488882885277090773336912139709173352874529661206830111661536034223194461760509561891092078298358107591220760927072391672153872387498607247323196178180806058346607191039960410562067436103846719240956573899783330097322190820793413921982606096047663368370231085132760881266137109406763489045068818050514872859340611333866867012193004782125870358957248663924320660945170881761134285899687331454822149896624057415963884819615281155440478834195098771105761980451053783490941803194826876470270264543812233310141387439348663367981065954570929625091298620709054661289151946683652646262440129218070150192254099355619033103285561458577400833756730893008521869325077451141263760079481527386338891173625774268667131780133458073060806278656209132284670120048739960087654887215728738359669879790815770332066849862482903791204897505028379060659293640893531395411495978846883338507233263362467276132619671246113963758293431167990513466705302158902444554681417439592728879742331757921186688420866209806863386966473835479723614129305782249804488875037819893148477102164078101098773302372256275481752154253123455935796878687464322975665256459864547878821751888179036399113996042526201105744490306689059881235419076866750281897217096569662082960469183954111228160476868167652234157974873610858762951379603853538145650890748301055689167101618198990968406741000069972788054426548843948740487945956993000930314872949641754471989000193899829668213676704117935327658704390786921977813838467564266879947821244654420323190221369488571236190767177944242952435473293164668473087905738845102842403253941807292165988053623852315888943454516540418748943401687686961742608672192959630336709017815757250401163788449626293387677723049764343605937685633615440642235587508421490470796219369515696152445113968607118519419248006181188418282784211980245560530387635206544398100008916153547677540881893299322900287205093150531876187259151135759883834804247256299614179548210927270248005616352201086127776434356738298835293236544169374105790408958786160253204273079267821215364312926938046825626228097981047136531146163587053218514397483777983227451335807014517056820991214046386006709874199099455237679971213068436602398566407566406177350992155494852417823847437438674357579139984309158586523300932700643544185224525748683773092880098575456112038677367911865871545206067996433953842447796307093076410895100694384417703117263663343546002154677398258786953300752489424939760505462941728057856223474442429169979482758760651706549971248221034503075361466653966320142359442011914792846533768306482640794279012802315757121250615326908387349012397648340600758338848998398527037874717909612248228942466651489677900651173510674283594603356000221484998445697467922618346440645189415710982618558454582231248793899227627974424400997314197503663746661546774314847481872859885180844208399810870637012118857940996915344519005539817743268380014054249225520041721281157245551550944510023833902124488217644316832942833766209804644998138064954555349981462310751403696853111629161574491544071557442381241973222697119062895667566921571470549176571937403557606154949047912359537630228848584443953485353375238643420401024192169725898293038589624318923336926106198699358340459568826502818728251978374954294540582453301716823269564597391886897337825930860255843819518354720723262819893472819359712839715920083187162839113710714642565222651669299641000486262425633810536036764895512987878326339001866050306123428811101620460691389806383765849544781749325500832905405570280244976367155388204827778669254463210380854702738755802882370021021116046054426636426068395542754498381882593525083983728280916179111778896448268525982445617509285482849234849589420519755716748979051511460710570494420927884716152511159331754998746145741408167060380864435118526439265500104474065818146703130413186109561944847397114419809366218501802320447470425370890302646182118922924428854077174267619521304572963054195131025129456015760106146805552188998593774224874624737468756054395862070626832679210961762460762963807244786640422161967201898298140614218578513282523992543986448812078145953956476587389574198849371724524764525613846245116603585265024908308922827525534423079899105979915321708517557856879724371979374187177892705394184058548609014683315878315780527069905518296439309619680303550362207824412824197343827140911508099628919531616038711648719763673685728426744157729753660250340182436089160933150498380815567953258679671184870430687572988683581062958140674868738788735251939164118108734301451149986293419276154748255392733731920199740712821077548982909996448895726327227826384811901301337318988358498847764197569574577653374321688665227134687732167731202758894203306707479722726510735888288891915289126772429202030779820451601634331115641676832465657943234952807744666469654066812200861425839544177259289256451051142370229572139506706478963510698067720850367054957032379708857980105815349170628311096508076897186725338236455912958559975929885323903292052671667353380138202689870921804152068973026672094712268507278225305581788935773988604516890383204926880669370744348038095661329484164401853338215715297700365652817541926107750884965126680461840189019935319861353087349324589095127527779728926536957842207536488698373304497935618116590907998532110503495245220962853866882440387249570982765465365631570181501253509327118056483271401884107109484109696676004694936665363148879480161866625972261837070224385204525391501784764928133107499521310573554903482328109498552394948415480144198871945612266618789185366335256888984080967335618962621745728696926852408468676558913023542797244048722305566190558832419034608871868144828201524306370100745446100893121843360578127391103852961606265981667333158501732187299840750119987670540389744448368569199104619519297065901904097496913493995980858965057299844778018166242774496965316165007427261582177436271693993816640654980813719367951521879515759520906718380251887079207388525921823802429486554145251342253367471329868115684201252480364245567439471509143284419759818098433692410212600497659657488956881402713170846713364689371870767774721290928197040357653088215462679775135632003743629558172500639488302460013753130576294897817651930071008431923263037067873222119709977929077778147510825803850666677962142356019081427301833121644850368093311465877400410996259112496522421248582300041815261134778113609760938029398871405269703789259277122772680938461551833502922327822377619799506654931892692401564684389192149949352464760483344720998411629730231515099405053777999486455871007713597437606142234991726833757296524956700581199486070124297469058949803506528434084319509911087698138830434081758394649754546492247484404060787443971079326634829679111351297068048794370358769430514397044001291502196309749553003830411159384739248067421245123105587112551337885349201462540491128053209845931023094214006885229715120460538519989834226938602122908883350690913610347732770289289457965060610959636256053427871553529253281518828478582037384084081294304164753890000975397276043188864460404484065394387169388343339318712989811850863159663168689248435589060892554487180670829236970868579180690476998177892428920776542861835732603729569392954005950985287625865700573462633911089337861452490752006578940107871691643470307624534125495052926573078980720259091010472984546940915208256599865911598018097800077764295814281898506064825907537070245778017523896808117523502628738548046918302344345954255022494657483902283187694927383593928889465822885799758220379317525347341925788503188943740655227356889552970113201949602852930933673456978038900162229310097118143366919839421400076843159308496685071416685105053368404981097434889489943842666567562790376584978306997498836116786107270121151167504275426968313228746279763414647012523854261529134947468383172976073252949555797497753049583777733980050563308630958975025660552162422377552961443714044880292371071846911759025703111609313354264814108717771538282194311502437063405282742773460889065214326962745831476696282079851336571625782516857216641447213655024482592141316930380717417279914470352126689354094254729007431751351226062107588555948437594842358996563079311408023539958939786035881568927784888754267334907848218301591404090071496673039586549269166561407509419226038411207079908633995800802599354675589721349301874160259541376680826681140505545024069694239448903750886586784508515788401262788577865606412432746351701232015269375372173161890234416371606467615613518896331119250112444229823219109025668130200246412687603608584120386324738193982263391509360640446237209240484369635127124745089225229288923122141118888308301890878975129025163292089163193163942281849450160163299822751994113905568627614029009442315180048354844433227742517789445457197214276971296428847242528554968405389117904860981883013603799935247510643696542942098458096997976222003020282476466543442559801377637324003485320771345084918380380532521427808008328585670052297858946040055213696439620974311327247886323070571447065399691830014899938783647162643122566727488604785485373087538022785296237375573157249189188313678852123507324556337039435712178441640415597595799886583587922775057828375059724158812440632996114623915045176136417478661030321859328607758208704940036942429005068588313990869816259079141360670466281589359156250409514453870323225349987570161830701977639881024921020646430989500646760385167181904162618607516852725181313771206748095755299181251950530391736652201263235639481038772610620530192738211793073268489353062469558722303411944076192386378852490603389143579763618759329419821158073693432875824412252670592166203398448554031797623424919091990145681116771392443344973980918157491850364023844651819128361574752917967035970182390115249109162973905232001047504474859441323467872853068453826346015334019391607632509623730223414424784545425045218353097782849836054120279678952390982803489174755262436056683571195450398269081079384793851631798877189105108286367985887466736077866379614803652059969875838147982510090388597852664911857055145578154890414868053258597220372137336458283319947997321527859900552979799493075850286050343665956899892235535947252146351412688926829782492689870418148331741604742508526153618555608337514863561653262863505709362601786340495025152261090864953080805674106226771725426250770825829004203041668555354651931917789146889882248925814024252440053782071478793251172753339064598636456971130949949644398926883333259193619759203747847232760920216548016493442551332755004946359929488839921958837611183563539378715260484552575053302453472827533506441799570621538788770874628842737870269009306847398288999896495505047063278634591163664902152432930405557675742213467476977487845049557394336050079628182371541911638695942231551798087430858697761885772723741576957013636936648557451967028710469463448971945900232080098848091692777536930202671023777079466036362233445972431435807818927746566108311579659987679868648102534957470302145832607158526453366814905784040896764654070135768657382282684555215095611617695545652590067114919201274026653211851877181442735348016751485504813149638057819824676044542273280609743195389985986540351434315449391805265747111717297092050107136237136196828456932687504770865483870318483196757937060391117516967062992462917175874461763607022424201077899881676761011970335081365939624527086463682311629479365937954633825188708580536200539227033720109818880945323079198748173405573513540737145053893127302277324469111946616012074193393223879176570219546597742768934735371479105031167119304424001601701270177132503518823316795583426813389782567031984406045771017946220824154584955373190599469559895888910488926916796366730770902889910336958788973960653735498011387174524448173966989663932148871561868083989996747737898105129623551609512463959334742613317252452909859355439475345682069810261943596992540092733087385847504369726845858241635378102097605251244829660194077942915466367208506918883449173919870789525368845693199736646334781392899368288016676351607459890003610668254217516279766844111888946274662858658195718340573098533962108705101144580890641601284657171741392544807188484710927580821097495486845703343209100871633746391606814890749885956336888386889252058741707572350686020073268088184276627659871722604422995300683255808164145943148396061830019893477402272649687384071466310988502577707752155727895590893576248710128278892232576152592073777315199041487711755227855280443095978372977545430857532867927424478588471680524614309484082473040121314705266769856853355699154538780002363369384451241892974440320138938425096158800510256280487813926269342631007486108222072039345832591596819565540962695895725471822031647945476686207599976645279728922043180964321096841264998984310792470355999035514821023212531111789103772784961661811046966597436187512855634659072551245378009800492794928128528219848313033079522677858258702252628933193795306276248389871910209156664364026773163769125299938079465691855535213008813283316953303276254867572920914097378319961586308649614279775676257578346692625322949382864980151590292469435113673871232241918942331755509957638884330001811133991283758126963631364905590730094249396496994557256215161002524436876646605302148550419061443705681849632197404010145918801135812417632029779581856928863880930073183730984412274114641237706957825080764843668993155644078377322132572289389822458832389188966092131472196690652241270902495855027917365415348303318311291958059103013919584922340561638786612359048783277967180297204190449077836757256623915472833058135157321480895639841089762246221392025194911908878996422174201842039140403674740024936203174204008517299541001571677264328815852519085651901119870942721269752242820953986415167280845787731974817488951574022092014465704147091620773042641446836033807488665595267201744004558099550570175097855990058570792329402660913124880850837774677723314716206631547152292509945361816680343298569896727386299910659314488106193911427420520801050006833753083771225992714838416828124335126285967590316720532868009740567318726388433407233157720317585927788986389491943647261035197332882922053872641760680270786431094990769397524955788178902518958073057851798063825888735296260671579159712057809394298079446029768211083670272097279398815089898213887847238801859841600496182547072281259504074540424567594659705590502615119800311203505973534523738300498743280501179660364403877394569674488465772409723831194714385960716823899854135034426416088546337333084528011825985499446048656740222809020421311899093667219057161736326903779412370709218228426366856726662855033747954711149325796979327045293115410168665866691570678094681258052877671334051831152871457198634030636037053918698095327674894793285931562762022368048815243586196490961942127863375441940619139430592859651530027064136980931599582940865705396133908081581378463524679080903336678254762027036037135259153893206083591639078168805254955470795376848585978604647112144026865867468694047889945010864885919896401214118242444122700190112982755857928249190823718871918628298918757965691705677540352618272311039927000480089075920466016572969501876003064543370856868422742785689678318433926258038461191037070868232347205712211873868697078966971658176892484749863794018257135023627931616473130277056577368106505464308915758891267714223891238887123111440274504837150060624344897000033045168366487233209302792443431914000128276754876222252326004426190050574838885655177640966410466369081372061164619852126283646520984003184991558419606230084682922812606753388919989505886064741681195618218138836030368251084974561222257155806326643957553321787282426032185040921234971984942564522236867513958566134060577617742755715576407515862948665363445395636173602883307766532139861028708035235634300280975059997003927480794881606019654848225836474608244940012658030495175069741586668820266659976350904927170231221429597822054709887295149465791727484987413481839685260673289800288494624312466072359559738006589195000716752439299967071120876473787249859500201503415856692390072776102930978781818609945811752797795126528928541324270356889303809984543715082530055642860134586400302841177338488034279775735211346923935636127946462048924896058058895112543174220251653630828284384213989984880536368230012066918148670981007081598145491396733915829790619521914094923081837686971372866376764690375876929115314747351658723369832707257016270098547193685943651152003226148175149556304858238652949933630831380315333951311583329939711663617880232555496734389903762927708747801205287736748359235172734479383937689205930135757722893492681795108901512694029360969526288339012760040151272713912509997145347975783911786062634640708714245120966400640003542576100663680799994206000500931126813249588794589208747647219952081017098088009056410776920180426548337689020664136259728756998280664388451592255083709141523063973623064883365142174138582043411204621488295985574865770329930814876893434466894778180468836446016330244035408931136225912451908072039757050424644184787501470768434910764693185748468492139497401512605392072884201963157725574201861384180210185627531060081686197257333068034193090454834772553009311022528928976345845966328255756318928256280491040894682662756489724782634233034958585337087298237128151194411579214410180872102686707510932903833354854327206467419265406205471722064485497914549592670936741288480989935629515401458335074446386592137685345365638575945486771515727532778780589121309112177373976337607989252972854076435613726609499911027784989536513402920112137121371734402659044402538678407954116521709826766094571614315171831282055858472199083191501678717035187322632947927279911482209346531907468009349235852585374548354833938649338110549214580666939831782019011883007934212235503613187118471427520323061044239406243919291666280416477615305406203109347436083680505101289767724652265326480497705644758074238978691461137269010981624572433513588031215447028327994105864704410180167373399749313286264594828974377491131559063670253058671040304943213891114846967788429519443422154844534601167891872463398214328761946791561345055504713337489560953536554085704908746045996887790973419906639991562616481969087289153931100528218070035029694815459405880862319401295659209210727563098709319607101194141816262781685280256989098557986691272554001880990005413941491308280345022617351030709783972258053013650451549555164271715284342527283758079923194187663028842888991175615352540165029777634271161152159395955485782483632295923848567889343440457998773368441198765014242749863842516421503875921421708812876808335338159953550561918519613556443473524590410188475059966351396291260185212804995186893199580599520105686449366322371863068322734368163995290251775689025622951913713544151394333483658865656977157568779262115466566231308985677995529938628275790697458664377195309567838508602290842088361719393749894630940564296479239476053893896523144850309476112065559934885566761607168105897599127322276232492963577681247192566264572403936465706532563114500082951179875515820801888903976643327879167306903303776620459843002115922542020002497647494820548036822642329747793978969213514721063206494984718334488376116783394953757735207645442822615810147395230150154953073164503753019966833160794151082924379358447476686853656377206548811542768130944720397386409100713852702336112916308516616096723885149340136210323510593578265270243332080427985689524392944448997956873568872101937362036931308198806900948957694388441230138777334826561150030328420717321148560684112828181325635842232658338305220811956324814493481461931392370996703799547620675045466680712960510902959925960480719557413854349643831461202043584862442661439733792156948321026250041706298594880493927608307649018768888824845186024100589567040845601592678807221309653482792801840238738591028569276802946085190080005491827329037459282698933834067530715390209490336117736569982360762790642152944532761224323329840645409652720522225842434652234929404291116016484739137929529966884104907809273128900070609821096455278730311663552015715628224510750305619989757983409793850266992941880234663322916076267924488967845465337199805129334436860229395121315131948767230695548768838496413428279674259335666996172120486426235836899558900108230406666930115016396769689275845557996224275900226360166158735863022769049612908761825120949987312898814123959002529608670181257631621922456420094608936354468078039020837896921708552425419676346623686175438793951223908121639724815501504950769656119145484900170429400400033875133828340137128417689679464021960260559772812997953151870217350220054151225233697561680217593065955608540961958126451342547293764568998374499990864098433310215198988688602325079029643275305424995506996729057175502933568645224001291353880170231584646751272149118815363004073949404612840945767365003198511350405664934672228129218086968181469226852427687717586001560324042047326556186192846974387484671073486355504738296025341439140392352989003820068350215246539254731522836120997562222316622499588349090079909106256669777117382410031860755783332340621506582154107162135434169074472898409493063780930042736369450475270683090421001663157234373578377768430971625725761863775532890914269070100910937546627450981459510663733470580283022956713118395625515961626885511708610926717393222348455517895919026244278147304718003194887917467607001708519889121483227531404666740713600751765748114220503406892664881440680385147725528146129768932714384227671269074294297417651821752380106729389789783063074428925187713222622132643063382149217807544615756521142538235748463227381661049805229299545144617836428190327319389623788600842495978898804163106194033677043705682076577762782109324931874149502693208987162178764501387160855815958893588715727977387106510675995737376722680057746539291348376753277358129056679550380702823706807496940490433605073374123072873892037005702241680679443818452766303308336773416985814051132385033635707760180126104263495585345928925681955434588384790598011910284147340783967880101784475178533920421239744412820257384264660309398336705839913638984936928815879618102403747508531959412415163035124598750562599436135442294598982948087946923085812541511155547135367549355811425162435484346111839566282776095368388874928777970931590053763842589516897714607734402080540191623112176370992915910170015390140411803798630353078499846322732033355054360665725444097639057054051922937571743635812530212325667418084920418235579584457431715625969340286761315626274531563294635047921784992506492440132661716432535254810640331127455669344076399309694156621763242597087975311124279378854011425741697322343678008057760191303007123179843016456228645673938617249161305063059754311146022805060273770279751409349995006580286243971807902461042564292514549694802960838646925122702765329471658477912703524409399966875188976783580691654333679420643404428920134959859292187096528409079972345436242089233668124956316238169378164840632467579807013413657145962404940325964379501330027906419023338162029507587774154787346264744179555800601997093572515909793359855185158047297943728752546010112989987543341819997213824738989669229149486702203705056988832103601139321760358676541309760947168895485236494303219568456426731095523677920399269115576218645037401795423086811990637831485702680297329698771277881861556382774439019286487995686999960913779405108965436293085168598199630871557922216779268489198247688376402540937840030916098641798545813869786986624312422846612009421807912727559273364984747154559253815734516813147143010693422514827328712252414252693556493652846220675676289765927707912059094087537480020327444304512534811741971143930138501201828316295516222833507394781977073725511975546654979510208430881078804272993109503000061564801479679141817072608043918868645565347951983769502046254778351998275128302311841249359424585576210141313922266631495615638904847272020068205981216789758634517957159223691273644476800632092183895751125267617217150463631709946723414916251051286799279249062712370348059680042000027003045869603709602141012088699253652692868711611524324670510979143896455653531653602537023394540138609808306347008522482651199995503685971342656098628327839607121116672424546128835550562050925730628011963054772150296335372893555927262166530829030998774159068029697489960681036986397969013132119017219796738574959531515161354171648118530081148355854420302339615984185529600875641441716571358930574474110539538530036982325448663682436385390366932558850296760667553873880864698046606170912322712435751420317242001931990234765270313374927751143687289877289951720283175191339021222431091857146786649342202808415970741062641077232560908890353059982485676946776994115658877723240995643482380758593154614388782604871372233438189245290966051411750026010183777575616357605394714840286454507968968620840864245094680639984851739475034896153566360001258481948244878003467620076048374467689372855439645590579748468640070456554663477495699189702000590198298532371383072900161639108683404568349988577660584891368004571264999302507382143923792270242837355943754739191651166689817070403042352493811893416794388877382190334378585642324823792085295630814903451920613619376469372948572678441756715189954230052430044928413421254671992601146453092591378681540313591979989300591625363319956021745644745672557384852823222217755287782601179669547997525199974366546067543022233917497031909031885652803895639524575601568150509939039338206188892227495067949179500139049166945093158943317668585243241012925328005245025015077645815344485932322780782551399031801832359618209276035233193994507817483053914140820018967228571408880351453157643688677241246959270213898597730074531122271799297423058212469012537822985947484368416101752042706706762780136632094366142495329350582174511849301808730721216256115717372951486548005893239370316465386525422949144529992278462871718007777875811315932652167070470199506963996770243795910864150701972510192286778250054304176023533732682640519046065050200158663526322334330233179576934432900453972094725588770053099629920168276245011750991094940230564147841064392582673706295665933820711337708626739911501288470279619724707987076925675891167782137597677029949922547167486110249387044232262206932811878598712387059626600038472504676001849146718216819484277247025804025449397019100083392459316613883683855068541577381932935941806005032627507915829488031534116701049004457831524464995648539547117826288231414609715112097528225010270763079238078720989730264195893944907832894977673923780433487596320075824324032144824883507743425797143324848481354201711219597774583881105942717222087558929467737987121963362010199268179512737844648563257175047321969778534986589840449319556047426588338930451648767057935497286277125036183763682518255848451363860690555376957222785072692707965084658415698003422935991311788981418601552342217803675042028367023423141574126458996705973459619555748200998651695914306141610636209012886587626344623181413005208008723237051816245793975809727670665489633458605547833716285014063917395068291942236310728884404910949301126865843962043297551562430922787789688445155576911166197461100964743898357423951780365505230620773390665050330728845251932854714532622754837344912376385162657139185734871485479072891553400843693000383168054010994910181048760254430522095712412330879571676558257345598179610700782449511105497148965404728709126851747521406400713300647547964612893964473316851692584648152659581887607381774609595243821323025047478623907660295471446909715362705096579796172904471456744192596368715866258069581670656887710535061541835011625961351009317247943569705071950172330008721609306915438965936932003036510641380252766978960575576650919684761666483837864602373343833399024861243252021630442585798318690344143337980965690094628289347201374304097558002552470930635373344981379187054604472079210775988513045700972109720444544053111824912947281763703428535184535688776096570138758025970403681009843994311093204955358139894318106651528197214219929692003908792649970468418111623299630698852930944479663517363721732664247432034608830213200813291767422853106956508334169402479940027241384671122368282841581449254031827927688569166501446951512515669568497302433277780942175196148906115813387374115786244066135789063033107660604672440272106427310527786579871464528184937036871288313646771574872757946912905743803030342915735634132838127520789727390940366275236817582327033354054878698084188376497122614066187928412303313153445797168137018315649980779230738183506224944162394999568426571287297335284202024504275183400487427046052088522348013425939298049878930422097549395900454791284694698571561860113155816194019194128565735902757403526053816813147957109916222784359813292355703999300116938298687581050420567123649738068865861283541211855711610000090755877889133958791778223925949893982583576894844830528522421037956998468273759182491137897377999615572285888060087081488858527478026065822380322255390500506467852719774020179645089275702121170298166009938281392317743086947228490127230205388850286728311932268031065561143718493728500045618425573691384175847295264769031866451189397929883331690962283267463455865959101093683938514706023508760672612006397904814481029786459295064762560217456978702580684226230868674538779748401920830615198360565461462923162960747323637196620066459667836052484617631213456395029428518127887398268351428576311035571210130245801640314121165978830418065602179158850599262796801306287701622031227206196782491530824470734903617463380650453124407267055711025616457573064448566854861013229572009389265824085081600923518472590742665783092297407608065452845777205088874084539748660095862342261165902593616328552594478071680402873403300831231405052957873152609289309322183820684131400165786738022036211675623283059822061440107148153807251185229844431821197627036051812259594418416661971305338437575083273794041294153898735577404595671764157070664889047382668696486233930019656630016525383461218252461881064908485916442793189900360423040374787633899470248961440616276583885741513101769034113462641798349812201651427819587138011016855338397022374942959655496899236103486340581964639153011448601508211292439708302629324387048407883014241996398566502176235910480589186803739926979658642519963114378225330273950023311828445171736312540310566071136743092874578740961365932012874952068365153365852090778669468360261371175627129839741934257689781316188967756220530040848515710607515126168159996176190825602332484695961823005915791737023672178827959631231350867121594081828612012247513661008275908936427890592439602143131302713560427291465555060537222712643784389451222263251981027832827819285452632083353167747168488152389604102845577908918360288259204499525923166746997073569837250525452313537462176302508056264322258654456478809268099291597367742484836269023925207942838402283994544206956150779513799443641277046796944627796895672064884714971671279721682796027152355418572017281590150610206497452336525382669044654394797344949650019603639751820876365375691180504548108275136446719653589619559686410149579034789395778293170924836837609913930436545301625659865954242444689750023839517116642043751760776139414126842855116127025509698032558094902492037906793559482067043989427977143141105502111096053963807916213595677184791003060922278488065553524926095481080284762452137024950281583244135239626909354373339607004970083491329608615479622476022375629752098232134242830943825167686941118210350635688788895489311553776370651618948223848502443698717817119788791547954331438208401760194052071317512320826568012579108668791572828970373450489788410238596397151743079402000049196702446623386710780459968522661833188707145914885247000776985149097037844918427820723180425040179174989567274891353385374729564091545762243209380012159151576816650053823730040493393038578988492133843263837548524886133051329595249312671119655342324202902820473202829400583462969889516576217021132435254660392666709842880070598223178781306073955127113635798413813239587541792866111440942538720686228560508322578774815016954862550135287878379055756247087559940414515391312092414097370733147738313071956674246155116359967556625348789661524235226071820471965974485249261022902617597383401478799945483078655957343952403908695667175190951130395562149088550428543214908806195395814996397575279595596625411122473939642578577236772912325825646273719787708363351026768857378816192039546886144723497752400210589876001701016451534369159066974641082966871275159721344426700872535884469229228195002048694981645149789095465077637725756538878687453788688075699734262746355553432083650330964237955960482112917762223509606908431328636998097054023031173719372614695183601517778753023869748100521826167799219355565139972907915680931075414183024083188379401697134645321439462635581126583213821429809162029506777115188466544676942873748519885823796379089008022152576485736621091751449872146396944453280414702982109391144575761377652221167666949447851778805661619884948676194154825110855269370862574941434003891711377537536447003879244899751389735367798861736122358313766877149776179220329552030892459213094822698692518966321537648882974977814126828434632982400678077138281926810611441245096656717880642502021334446121765486819085405058450157571652567072438860712078294041474813360859409292830223667561746292615609846530218949863448282301478986693104645766635794712523995742756482844910243091715591222497632323634648387593668931256015812069574088092368431398556280828863602894833682208692657481123704794160605244694660260446553647767746351785206423973521215515385996925493092871245455864393855873519933809283428306897901314723539292059095353745648059417009812081392226051996192399678089982123925340226754321493497913727415575617125996488335780147866838873013975828905792783369774820503169149136306126459696563253669098839222660809529778924903121900634841676053670639834074285154743530731352659404483996811816221402638761422227038969587194144324941064844813933185141404171028948884155009164478410120341628642329607207242504327297126690357707108023123885394892719600312044116140067230106250959028211970858089827264324532311110439911778379249647748592664446402740963840121540753256109600744411879235455655710073006019553861452015797020949642254913703772794225962451128898530367020790375472649615216127367918973383432847887378991252678116196761053211979724183794720486566827784615841519590643537936271323105266220677906926461467723692843645838694420274071464413601301895550648337048651643802181892927263919746528846808488935372470831390725566247428910554793950698897188097377708742952450227558727588954872160896762738738658998267447913372484941572745727191921098129297571386521002749015165099334898577559874170121283018475060861598367492915002361220014757929791118746556056523749604787888826590870615596029937448637821254101635367894106566922023422873418506741121942743317920005573901325286804807800471620782420862367718177159023682336255976176832495561138470940155295155013753697238152105002440457366995222627969310074461876358946609596526648691537646796916722816136314602199778026474622147786980056082277403782737888048743020648528960792008570487296987607856924107823701079876210527492956992601773607071264599880905200579251823334097196292726215476675260518018624133724475267533557183684728735923971288734224772309273026590256689876724825632302021931534068641623705937547032441275721400190755967602960662867761821561040524205785787617702184356194079920672559656622717666860233793630783842478350994823269050970017959549303033470879036723124349128833771285557440779863951787560958250743001272465619194285219195085661892196470229906429993407667195697813821253978990333381487756594563187854032330018027203347624415260281669442827417883328690546253406652149669845288627083497491869508822298780073765649547350660274850398551178834173129718529027182103488391953962872787049510662635527148933187110006771861664289448317685603731676970976525332886060074146676148963061423608896758810502959467992713255790381517647701631497141877057188213545015978664069062546545502591017967282066463685337180704724943676631218983020448242880948876147217995106728621021872973558899612873947425569937861991624377503837559836264393477739423457414870171512667065342508250837644177768079706115570126133196926620273292732258054918146092712986892386933612786558383758317023986666782113540634208637831987403406888056859790978745402473633589698486841015216848327088548353505658846107095837435169183413332084726089440144963314225605052447440099284670979407676636803754924486799727681456988570410952562117802170841443337140989814505107499230821224531305834496854510001759163147984372924087145146209991878446422787498151707013384030179691820342593306691512306110273841125411334508158054074604649852988763504818754138624349668763448541049085144865152593367353237763304594209892770386395771508568120701392003216524149968647656430307911809386778973583459766010908407836534549289615601181916989668590862032860045414864343359021424108562964757738448729385187555607711720388659820022703229493535396069731846272775532996889709808483739384007890401981242449326574694873951274584558521765586404573130310966470171186369131666207142508345538621405773181692469425718817154053149460891750212015489235870353761897374212916471333921094843544141167799540114366677892083720708713666097338025131376152131399065245908974476774711883582158945668110656212834105290852144380217706119858544375287280632987562618161675431990528250600568057963808487042050542474668183247084305545490797959083291200890542411388963273445626022862976543408982967278707030868034043830536517189514483181530322094775023387524569921348513978767855118003150360411424393527562242226743212135050932697035753569668631092946453285811495538505466357856389435885390602682429879616790148496584946755666094176246595041584018662792963159456676660642201676896935896957822457271970694621856520324685453721576046300725233019954532917549367769461085199657869156023867695340219288997973928204249241433372137449778529247890165275622342726140736586162148489501297897388869866917245039333446766167100560715070420717147455316682142385929524376191406300646412015855391392386836155419977280545441270783808318868815119186229846419751476266631772055790446197381920561987818322350667873344673718861720036145434495693830123796128114119549023516634343720276979210922188920078759028776733633045901661544998337905757071035832058811160208782201398438672323055665283674463231390166714747561353114411267182702270088223269354663552824203355526580492217126163498114384873684942474723228924670884925889343697233109386427902439724158883365831659817486385737685217469748835745448282275685040360927438878521721084624985438093573693088194001272606551618214356782738756829695215983945574027543741100186899382402084834244716187895591711643609874282087238883991506809404833935973381280979789271399193421128395686349713826357708721937042477103740580154527767688374561003032298128019961172510935249984585665713669336603513464215574201152282936286197678008409686163789489738953447138881856841557406344731545666051753699020981671917294498012428328985938743324765197128275035004164385984084747691085412037444638346883118397967733230593057651873985423486086271500060339131751788813225662743396380916723362911769254675949727186321162672360912684563887019710253558226645710335167317104604405784110558712384268034238727921738385187607113978177197206272140573373958876492137868056942739009245019764270223425335048036527990030982648572861157214749006732803238175571996814475902961565241042259247017572104738893387905332033719504361212528705350051691120864516315017540223232093960403872774675032118813922899054578234820038730678173142557718994151932077156648544656174097257750258075563519690923094204024056397865138368943921913561394571686596295400846671718141464133261394741541583483341608944554303749310207154683724584037075442395293861447812103650991330348169880072940118021360603718650004305156504106482918441100528647864359020524696268088949600902861199238655268694109829221762174743379516420679570829222365718807234338378475606886550287570733983009364634654236023575638613001480000380461805996873147725795652794297592554527575745583558318961707017513090611780452908433935496991518802866678651740445459127689686408327061109490811134295432388365233074725749930168973613655763744980689078542387444298999797506659612818910536655571363209736057061402911154605246388687207051604695134864707063212028200996268755797121486719814965413390338350230813796294947920628828099318250020744651843997505847156180446271938490843361455519620710111570220947096247994669907815628332672770320575073030153601996427449399208870368899001923003368199098336739718612356166413037699453183105960286523039588445383507468271935857381485829621422621723292743532725719345548232630828977965896676206238291173002530538079691515201966789151273696201842329205271740709711777069820656158133775359311441561831673727450249926721141662076160287416722910289820003849760550220006774714477937158291616293217821642161600864066000555729158642579160636635501497591679506807877084398543612020580453535037120076439678716944079555298021961968941593711759307805060744060448183431479509971252794606005707255974237398926591758530111353239216167548527405262314072548071061775580174236275420630669046612491529647006043592294932642869114562255820573077805179515766222367984880635545786768686956777242963636890368623579594380709968426329813649184353991726233433458145610318393402838330307534539357491045968535489242374071274603927450058296937379377838819327660366612825850513943213271906261503947248085992370568703651880060253845753481473997203524413035617459821129015836571471113131776987903383752992716198565885548670451479253777786418421487208836405465968188323827377574713548578801885258671052250620684108825027318349986605164945524238377434726488164322869754182325122473230203049742702261080093468987717641812052413834270553187076213547890889134426940321278259896816087389624679832333400759584147333743321176994971643659174018668024038227669247421471709904053587423046253543841604628290251976237896059336162568404829848602191512375808526534559744877940092853119207855727357383091336524610524527152933314655545739062167906835155186965417386377498081205102792781519809798222382599807553095278772904101153103619364022318852451896411319898618492003192206481398853148069623065587678845574631454039038846530124044564905597837463847643414939699284737086609447068797173851873754802018342363391436172490952105807224843835051852092713839001181694228415955857623664758424801270591555443206291155532706618685730835106660009701375579144040668522755079044259869239847257406825220350971289715076542108829013432398917311079288254462979238623025941040753855257963668512242259900954819066417770471501462592632388361286365779055070184790745802915953964932904009693600381221231679127426977607040134765897616143509663632883317336917216719135302114484228671023919051809850673442350142885841769355547032891094342344958134981792441999768255344324868750775412938890881267279565814840687753739259911397996411434457481409560408553421652672262333959200028137361000974557926679389409308864225769083400557514523188603645043833886630512211912116358024290061765116740282732312518656419910586820574931472110445385068528152124342359303877845573527136217419582624251362713876119522386922007754371229726475257928652386900571652207867169419347581404136090481005958845527057344220948309365244647880979778157229052775062722567389243962487596135338008349617151999958780480262914080122533979322538372782979862090299049680244604874942727752301300683026232418031052844648575985022789755349592872590635406587259074683123890464126355764603730038584479196660753761952092100552549090003875293232363227589682067535120435802809973428215221002553781594066303909521656460995531453451317734445169269297044676464567536383172015172753699206440556487018096744392880296448048607856844595093547870938420145598699150142089688180081113103809455624491254554406202002551487385291522152342571361252238501333799338376057494995156261801617008576207329863921992301647834879660149500428259162831798942066063520048504413366888071424130318631225069492636585956340485115047568351881826806300530781895464713149287812443586829923305150204640346782437344654910037186487687809033961550744135661111268801708601129350892456967468497722732382783984331576498394599427576737215105439389102043527446056710703643941134844742152443171954690707721262074702919687458123612428673844786640482861561750679887980207682777849176673464946352633135009161204539184356015750852616238142908791460534054573830712831061689674181343904456286495463277040799092473667425762272488970093523980163746372468991245740356442620566931255028088562003902881213629213448655975578869764175034750983800669902851874350387548699404170812757968663396863774656073288325575792032092866843145730345611068183500640899235866044662465488166960525113992551597858945686775382186426943398226447521954030534667602347860598829892786130155568745666269055660710957535756055237755990720471098763157927470112044288872310046298315823023697668061999919559707381573018517083489320458037641101766463604220786603008641139048704594604695974996705315714639116023579391175868615783128842608323377682603227730671951673784124617901061190333777494882391496746786243854094334596846195239768473437967249731248740638349289180949222729981729738185715336013740542504424588833226967978143045913315351934101634698202514266263179330639226436864694862525842922975227848411955836567661298147605642022133546573775862352514316447939783681180646267267977856870611661356498045554785212552310753408142264358260172696416187312506945523211916034824622299136049239158138025197321422017143870243484097690963478158172514321812936562763846786317811510000819561788144446472081816188345091373576443300232563839070929147204796720246460614073947377266430566474993282824970585315185024263068239205289948861298146229804930790448988887395987395189879123535952718061068711107023542901388384111850535514581131200007180794463270788136775230081726301494315174849224406630388626754762463926918452271589044568657662029490414803449788301097931013553152181190321559993619789158100173880426535061212842692824056169718298961010756543101914054698352485485531675115224604545948709556232057749628612088435002286343098982786764511867141354303593710192349407294326052262408510677523522591471728655446414343116618883019877056503831547257933351392876118293188117939607824322475803755130309259664973906246037050328717887596716117750615366286175867641638763980018605730305199979427225021918668006806829331948371492970097281997977669020444170955514064613899832224238481102728324388868618943565188652583896953492937808642139523331714446482326268679610792092387484173972201646983227189396637105942137641390053803650964684353167515707550608378491856553529537071907833102485865735502526821953658277946957688780202565219467981303484695455435642528247915678752487066981901421174434591732579082090317255554576910803623960324584017728167587824642634168968828255649691476352697968205436768586734031874101867188862634715791588578970957475391169406513801781315184864345191549427023100603137990006871570084511164680795524483548738147444055850768469274606636810409671570259428144246012817007998781199590109996255450509859610035309450836055123666908347814947515401705649487210167449687580677871657982122515343970829444928972744637695955834681851214229118309488471892472060202928105853745408767488916285164233975712504959730997448253801909570515644709234725886167109268020809729730873323743576357441126162998928681207158082332507208295623691376187670927669984714700118947079029841116098327868697950693583931178677431638198902711553733085580020019144447746239270350564752452739232079279869245886894385266852549768947948754840031189534178360890278287778012915316332201708762230171932462258559727082095199289234590928400032792582214923730497313339210613164056634246783724097195242499889896732697945136605928533733733807577319935735209785412863617184965617407239813744275929735946992995665640950159167722260306506016834737237594660191001053164048616043851738023334125611289211670596111389502500424357561435124355188579371466139308144543532791783161596423736790902514670509247993553651122307881332834210671138826702288217934882219538803454234579669356802947580318022472712386529578827517437290329655610704752798092603346267475205178892077266894950967396836795267155095854361101924429022907036274412044127848146740789857649053577740930127953075502787407723640342170525359913994416868965003426473054916240180541937131986948115141065281205650466370290600155180394682664392788969412549009863768443923313575555267852350543431302411314997856699878128926769978762317001256203766988927018790180117214343734873343611297240693501518015233596497016466186548367172697716503749108194758170858490016266059657114413772672283195107924832344405086587976917920815458930857664026980101833382529232384202504537418794410089208020214908572994542484745607854378865956779912712534533806655647788907134515973004758572154230627274382465759759599118049727214085413786715739855647039424265021915247366318600249961183630427578957041041785998671447706880566373551831565010611017632260798800189560318724210082976984058745726377420481107914313228482092638348952906005252914694106719491524428749908389209568292413918751775709117696579341563155566232181449997915228269347232455441995417476816797902910709214194889764404921465048502325893850819412589251456858000099968021901309667709268227684811672482240072955924192352587792335934648363496138951541093497101563539770117500070893333954129842408596122284580073302814902493903047083956366853116486726547885308349768955130111211893046786312760761192665854765246442353417925793161211597584515158204029009769976437779562244424324908116856584027114764150315210757906979588570136004289382753236393393550002471522805769779381684171835773613700133464411625610512627893371483165731820439629395151191854668148068945571710919858650774938182883771183424559996281971976486543972507869043344514811145961020810109787494956090565563685118101035802180357640271630540437458257091675466526562651685591566525107262117896568007322393517223228466029462294921244512218417790837827583810509480971915963506592489855276290449819994631092787479588992187074642800996611983914478120151137169018705968199971586337919806667406213696276409979141515287800068053358226903207257279634151784469963006134085669623718824721955657819871157756825437365108877031371615734999769319242917093990186166573508941248276955037023190597159679747059941189954478629311322406011976392149682500494783697880554313289107393010517753146090395488507892157275523880644395250582821702468770650765191001242856800896741481684480055997997721699912849843983533998557268786771694126298065117353980102742316338042101218215841342419495666838312666699016797687543492428704664087942320836405396847073367971431468103843634843068429516945375840661695029245277466406923287241408888612217242589638404932291173391336422560814161601620170963734010584045141544891275907953081376876293550184177706674784515107538860694579819304410634107247707444931048613812544086747691762028913105920223331623990113908857473786372148614708270172183070002417597269494367719370844934377401208036441481704142107890442854372961499515469966105003860582742056722841367596885658929737875564369797197647036250726756984271307133474538642211143871987721443395243396864743350107679251349137776301510641885809945860875373328378812964649166325375488391740749606601695264348881152100152784422955941250215640132500718379662658903408873314388583291423135687378616841680640335792593284078374740759385501868980573311429612630061375705099519364959310624858575162352092207128730766040076711581189953162009348523320639022542648217733661483323724675512502300209352188508823057069936051558461417243265130657932650960914112317916916211172114412971644621094584371154061530365545726061777909746778111815683886212695406736583084367832858611433690962567621668664186367675180004044098430723026834763479124622261310195092524365130796228543065680075411278464432956724336654074658747508245808439854618826276873080048512418746601645565070527032011893256303305500304679343183002394408337121299450125060306144189363250497221734715897794931725847180333064014428775053964031440696085276437213431931947172110163816379163488298681446099346363398824250814914012989427658642347879706677792742136842863468166546076457954056943835897478598505290226558538071458097626242078171185881995642804976932408737812824278346816403914165912683012001907173191073485854717880015539960685595042620669382704164957387829768410974239956765117520192801070974645037255230997941587661896320813639278269267624814017659099308642327999533562065544179663496194676415066326875491943172205975938560859854632976690494187859010302021341346818872577830600118071299177423356440332174591393713004029591589811167985437136850739145565114443060312775565779748237361830680169441134157774469898746356611372211411134202469472028799368920011721061795771153066510998672306520152227374937182023607633742810303166567910285092334272652887945548125993212253343880148734730211829844337661753980418036638199954222405268980175703688309755390391655425618832823426408958512978459279348019203095181139353175046064521302771748887775586225392616543147856665794624191606164984397329820454959922210493746414238721681543203706698888038154361714279142400718486594363811926624705488313235805797898290507629948654769879823050599283747295075523861466728273348095098819865112724443199833917416556571710949709868555807629505367195008980911146076647855619160885725374246674214390347744915769977606924674911224231440606318233540280032433805844349436483234569479995377718793974060352489888296384305610689274877699592977446344192907008836072530827051874249617323806298419935065606372715983736194509626059845129560807717174539732995109695785458464116613132620682107344502806080323384835228763991672576558724896992131265869822030443821554718837628553662995650172866350832965663026603715624901445573592986460196845292984315972127738151518648555840724464898100675289550839650037790325687497358934574546798954880264448223309787962536015906083469107316969465796175239989772047645425798765645104600659628295016138783189509212784828524102086308621745919174029504244980121548734990015268661202694963257372090090030151566560048021720922875280258698225963853363181105226076860449165368603717582309890929964688543168278062309290710233175664078558241491518044782591514880371955617348706427576002198300933209778052270307218101064815490446275464840781493434821001446056823145309778939075651164683997130620704355239607730861630830741990260144070382516017852440866385112306559813376772128534655638909485877554475943491709768178481811550580645443937993567171399422792712351426858233847523373887639922024291005626687422754647410657429930966783881001902433196357545281955759034766617749552270763927844813103316138814300857756624620586451861478816304121223776435358520550373143456598353526582473870239118561999665225919109395114974402746798702294739897172240981902615787151178617134727618763173984256272000506395554481915777434435792902155805308713810679619847305555434543876480828898321969485892632011552926328993655652191846713322376059527713980585830662948463114017700195189689809643498916205134510665058018393264944522161479031395444965618559947137770518426287042253316852850722885396979792299113679935788060189040514680389083827458772866285933117860871836115764233630398067694881765420822241350194796240562183262922755697279837074226091756106923694715482320873500796046617597759256016670862444867020625217294076106435978006955462868923026014215757915727615106254498141397687323623526287158192991892504431119808255808604751616121083591550009136804823308700590009384941364918104517475380618138615223737002659533322944388323259919055549855752587290961520578880124998443999193232262038342209212467987596887007392381082901567872720007209812808601658990407207528199723742108599892770811414196885158720589737586891696015607419838946945575122279732397707610050414118535955634239038300883867723959719113627148577651137603494549795479635048015587777447698772006963875421522928340050852411016740279354499393941479612975203261365287160532494325897638745699581068318328231218766355037361834545299789553545983830463080435582706087602404196567944278335234565929753470473266692928225564482596088176783312457935183275383679033788044080039712560822321662633913325993292168571491052764420515149518374801188191747319133801545373126303647374154600541646366147651532373031426037823916159632194541492813443984616975377133799658904657123761664449288435601203160926079086012383670276684141943911450237418592723579928236411032379584601560615555047969851739252513059925987352934178876181495751052276498981044412599418151571548040189828280480348959559573641794988089446580230825478507859642412383400580480897523881363857263702714134481075916104941869594553035601486191274286699143326341737704581362559764916502182821560583552479323697946926336087403877471070859283517135921545772692453765954989178071824533398085970804421959803681628493663729721546309159097233401960974074058173516820526688070381145644177681700126141730335746453217533331351645454287610604691596571323846184646839743436294893796851529744786825302421099739706854391973618848813836083521296805547927796832249391151101706228233078398179962257814857456160594639843199170470484838747903502044520466727243961411678436168339954242094709720159743187129466705990358185924114762020161676921519164042756268273189373149322980455378181892922947017557524115450418947818001200364361560367463740868312982881272089428918009931004623958283329065902563080776540323042970879542635970769994749004613973656885387815100059736034769602309172140765114513601842496038708321785049149412020553028629873330521480033587041366694973446033113596744368443652597685568460271537262725293128346793456119005923556195088149027649104970637653233735798570165563430735069341971930433271905421034831679647355701580867644888777171775414525492504004822296570680275091206331559976967984199361083574987321328578852827650551875181211024073637642800327627395027370855753818255062765626217993041119117437896852957684186885411517016006384873318299841910363542776858847982535854548070471920308321288279851719333282617070883412719428922984533168079478743055461367765913595816162955222881036787953906159303896703408140323603019411797103666556876321469839201781139250992120859045152576862879465086239403971387007119753739817286105217794578613786254499931010619217985396328404903663640203027772646156744763937994340460336187263267258881823050567425625047784341638983081364987590004902031444348207862581201989287510119257181921134853067329779806824620502778338503067277377302698230347853297250605652726792713919602594353991887502198486534112263871745130601610371311604561198265899322740121503350554549737308328122266564621034488495067166826328190694819008959625834915888786724389064124707675362957321890394233264540850165743497623218824574266493138537837197847211007280913554009706569442498628990969039839521339592923274322802214199585940090804574938341262379893488164991519574400284245162184793460430639445774571893841243452248271001131683334011334924801188598874287826745609111684999624463316306076289754884561101987368338204630147722564128704377390628119576421299366371346681656186406045090724248722959806632027745234982589688953346064771548117140645650197747372705275745718377717735175844480074103548897123757749595802617088812906376404381295012385384940152676107016639704149737975408594845682786578629935344752494793661348473442617373076395804955606664605653047565470182933902286766506886653450227561520827987082508907027769889736770281693580542396326446442557791473213472916548450562421789238140778054606928819138327096629015755337222888445129947201092336944017695950428985636783270274680653625943005212012785906683902328524510797071824417962398884075029039896764867524205401151195476160282529013897444249891354313419201435607590987878324491024829882906019980647508546086235135095865187800214221179402953247597409115309969648897471871200061972495998021855666588979263144773352902164019268790517272866513405559862448089057333493212594262792630253781327354831055214860918496655796832188609193206505245730595354080921227651251219814054748846960408877077187511324909542388366402564173965646483372517073088253359828270991372232472276336227836280432511083496363074983011682628069663441118809439159920473945747312002923349269049589181247290628011973744361769998399417905045216347802962903535452970362018379140477185397657983926106151790356155601441417585364754200181307146555542882079275800885027418446179502406914458888113915143865393992516405456771282388371942331465001397712812097565908624436745329339228908944484613739926272480343536380746545829446361405901514745430733312694025392573039546025687254249882001746548036180589315756270419092789369998722579391827399285745857539795502088833300745932854686125118892591457159244981264640292700306862552351826825130229935848052288120229798215789890448647512833976865072139978801932220889041987124997444466732881032982848117532177573167520596410081427966240403324562818995648112129905509566110807616054035026307925194019560570837825581052482721581814547480055980340898596649745112352398371360649601435358018413358080240962735680043690661870358620601496179688193342737527957239602199541920987081242502697954487412806067228389695012655230760485830644738173236794383136380279044722662764708583793959013041567877099816576844652160251070122661038896667275376230401787805569251700325629571329170662472547895222432144639596980321618594359399725531815304172446920438936197234084343055303553943078317879984215759271839585317727314089223066108901109065434981002679215634329966610783284720547809426770679229844423850407218763561597951348113055836396294429470457778786783079129572517710594357865194511590557273131621061669808909639816611198357385501686826068128211870906799631828389812311786352237340606647120857814102282925611500183513324330226091276975787164624372316842432786583562535054166198418987718650778274969214768575643953024161789655285931672984536691931745882981185875437490592906148261440435580770521581212991945958044222175355033481303265404427773612098527495181221079140162848757661033443985340320742122148972585077195452663855680923313545032843454661919618647549956991088334956421813227487169809549908723426003126424342347186962398968701432670055239524874915338458091407458989231492210863052173706483356565017578975379528806716502482219112687080685783276339161924311047074134859864211680440359225187997509526414955096340330847957161784991585128220969445332005227287174658151218760196422533802767428843015781129162961431830321792397486089830653540956552234881456110700610547811229472297187773646258441469031960000727735128882257425529028443050186090783154182999859759574934117645668081946425387770812202357471773863358235643671521913222354734007911711927197123562288245750865869155450138871891345514500375162231177499664052994289933346803225999898972225297705436297131828956713032312983464891852995630311622970524843525066692555612819942835218089713602027898862028289015760971876880621081531536594664154961872341793344979932335409372450002345202801890628487842068306923415686895091373080165580400537535948290868739781764545360881983269099829469165788416307178071487106080924994734555755659303938100758310715516577921321024650566703919564064587165539282788154430445971910299210207899192163106375074286328752795820625085284890956006744330928924028064174024450227256383951663115247245919776133301664154799819991689446428533389049150867372459135111062086697221328887161437838615163765389400874789944086976896788605095265882975911672168888177888007039273637002830051190151424103067615790105703409335438623935176762116481683801823710062966055530436431751245961051314268301766659944564430722547442800397475797862490567264489163606705317060227381154915488464361018710388233943391837722025175045344418620633913946825434046538897419096522400018363921415694181973072969998059381558899219508198266404667568378410682547092501827675246670838443148130101628335992560414225186556911228106151531718134792155676041737507983798346846855115418045136245759668648421953423637598582796354299922807760080630766408068127392616924900261424386566736833746362693117102717408557615755596129007197847828653318779278225305673018798542225236427386384167352725869481593332416107368625308059516997806590478002926417725700547553775546506762980755788570688232675053775159572529874869545667221442497691130896934878641633066958128284919728116496222278132025135262090551224792282616532646615094899914649815283734650838965039264061554477763727514688931655759676890643808058769233874975533610022863594546257066038232253989862507932967194945572391129146513771948470005056036242158187930614621777636195627699749415005413298249837312316013949216481722455556711357036141963794188667050282316102193553480484050334131911543461598581426054074322426369408955285160702898794889616581437152761519999019312898171906632421290872063432211092204948996905548955230823704503116100745573406637895235840893606880749205680192964948263638872807999906292323739526490508162676962949468576725824125234815908293573602262089073861444591212063575041337748764109735451376930937440245541502643022545977344681965943252658038693366251277773047875743133386341259296532960977224569724808645607101216435001909234624120845078741454526711020123475419323863282293601071758475030839446017551384816509383881973654504716862619018749617243964806787695912129618016799695072271928491287175480151972808716895985427705368087414564151149013419605442306634395378375459808306616527054454940618643183404097918247116884731033548096964818986511805981636791074887275347932202163632125487146090971186416442128546560524379501809498699991960403297412314362039136264905888446154670095390373967526834890280320184082182083188704018990481443476714064196392283950419051154273270432971442460233448930579730651588320987464595545438353638184966240346057179014249419072992095258060673952837305490578555168345880023891054525182634474488278271712287675342803861328616519120088544657421799100062928914259681259840068550946068205746574394690541677767857120419569509544793706331832594313593694085170575063551111562276960340210535176955720554441637655065589438156873563842009875159073981624246923408290814358276785149603905209062572462520034723365183669848245240878851883665307440801261339631190389744408818677739577962391812895864071381575281089610403949153588924455201625725002632961096691157999145967099799923344783867640077386180005786647385795423638428432909838739948025011205963574469605422393852437627257864482604832006752350046953966551518940490278536803589091698590802971078720350905678573826398255953934880088787283639530256634289704605144213449437960929275229133641768328135207618938868700619552802088724470885897228950062833454103461599571680457721420820789698488068988496571909220296889104404383557657509509973128205523163225215063921950187429710204510129963377909530919152747992591039392529492011781761867615933472045215925952650662288373716879744478461666522949639369473909338141014349475790499601372385806796065204719760717154924509164588308729301234017484535402375235501785884420800141459588975856031602800662631812842302646969046305041397252052864702998659439442716363183278247053650876915219808222320322514244073488678990253814489769022356876285286069290722217767990257472909783271749319304157827584504622090917305578472583180219522439311831168344765195801169633609049849404095652193470112073157054261970629769453934723259281569920981133221935459066079631239046309697375943812857986575382599732373121874489903295084125245143568573223321384416753961721981896680034359988113241470408142565182003362640825098878656030997861115739060671059999239034470914679365296603419860129678511527487297793940976698134093860962492661766616801572035646528862354804252663938077813001391979630012768129038097535647289811037318061726944780564313797999895913962107807569812096120677641602930174739123257510178040330042456690266921479325778134200457884407943253869264678932251001371122103468350766440193873694525300620147196008440285879698643406131683968884096817076528411988313226265169849200095174621538506789731794879804405779357990617068416441143779739051312985755179440615495097764571345490779805691308909386530622007279381047759068080146263825135000624005126203322135094777813691238628883995359719024121536115674297161212624357489421046219828132070085721383159904689165262094394643249225894799638588404997161902822954563890423464939434844437757105421390037684272017403742234520275431626246812424953934264487116147195082590985346704093008749840228906038209972642956261221038741144246593677547098037521435946794823902852309121172722051808234631915604184391235532820285943636327581225315793176143076005408553854027277646428638294830414646119461348164370663423084610570213625408312696518357735413264568154871084191539348887514187140635724780492781277125430050298002505772360876220882598110950322282910585305529697230178323774519700073695718212583714819427573640893046137733343698546714720470427395085941143903625265456115436393563748943505784214723783067587486361111092960180526620038362411632638358191766655648101505780677728329388702889476320358407571902827202808009620449227328107828093744273562929259882178245248603339442232381249606525582192309559798977310241259534082432485766472866011755117434952779136301436105711208652634165068123353877684877658571492708656309308131193791627749675885299740182256917995723583277597084914416708320240458010588311588606486164684004957552030809523839438806119054053522155995528996270643106143841533720889645948132950655857336932489845492847439839783485300018454433037071263374545010689513059088158821889031637763096964517830420112183838196514553839383115404204231012309313047187972609025805317035041249734493553148346515428273861945998425818996910140001493001797522259639092346841508133403425530601882926445701387220390180418688362575212717744122175021331276236992083829312057711158862444435312858295574001374547860394716669393729885957961246598284773796221054424320026953202419444611708149878005129800770450552747715403494717061450649758727039837672663219388819265750109477653596247225829588159253346656191825456375136957084984738528564299377648216317572834904215344808147047245111465291260368112086938292584114588995029967054344008732557849632521729102607546955661740458179137122428056427978496260815990317773248631533899275992481029292355397882363484621807014136342506483168557209034904680594488228520367094810303872507945405139619454208078289924573921022286924570174094557477895305652169459150064436877691442852310008115940475654857505527169785942920690661535764622591491832359430644496362788229474177417131274448752687862692889689812345527625606140683531753533425837527310120372148853031677515240088020836326965940548235178201696043136991856664160790795166068673435258666005387584137977622561421802882647784657508322529146876805223488529987288602517981879346336926897332937849322295151102699559200152803838813980328093045535836809057736282477641377151629343883748045597787864038959983470641110290801971500179267077422949327009179250437484631970103359633446201579169317776682468165031164867422007810276325881027414836316640266478027988060020189113299126169430843103555844263972324761447347717784915058577172041938136777828010413476534736659503714259402486303573446366000612819587507213756162980386418616629720237371207958265857449157522600758531103035684601441506061036823412439215716574259022381937963515271476915680923507487451847066954803421783266059390169806059646458007832939773564558083454412327773695654264738670614903020681024896555614428152297575746138974693723335726022102264688935484332388062217490540476509716655642251009111069801339274623166201979570948277689895787199413590530132812824594559660618953485462870359576206114402713344883039962651646064404798654780094615136801691835427888406948334108661367544016121651624442292701906067527985555179664320157340534617316118274902096753599910635157514639246892989621371403574261059608066659759732633334790877253101963814182418430265364689580777978039564164346585690096370340421755356307378660097210326637031656448840362841446827063373916609029755312412780069103133687641552266656537463038698055835244700729674550733973400686411428067683443528398262384750760877920756291749563424704468399726623721986041719451661912072088269831453992345192636613367216684671906938419828164834204002243740127963961814776418298836314913088515124122203195054364166925514265083751476095901301796721760818641821854775029323184993019794262355270942790805911224298116223937393535957680109439544292936834096180126116081634552468732665115190136817679043572301556775160284586689449902678855316772014133349562728432765071961727518968504146185399315316314600499093947588006856460719837006187468105802458560438486887496224170235074775935505540340648278413254346022492635884099520741933124846697190015079595550412864839974335981800833223288843038145755484351448549632210798898325969493965043847340690367629326466309108135916472088168267986551594052500971997700670869298302528770963329830041075824882891073693608702386155661876129990545322301221099039661100753738151052803553241345220482478788704804077722262758406379278591111551117067540922313475852010508171427259719705881368332525853433329278991291439313573245138315494754409438655349392719983718841181810158856902787685785660161086604585880160896302118811635118299379730083303293523662824457167555255196224591940935372538996640957122092979594413489041176463056918405510003249900234099784154906431682625823513244087720676090783394594480299623414523143360813709814412992285849548107454659230911155456984335492081344024608283379053344511939686019379014800517842754170064585529943025378549061515136176787678679181068406183952307292997294452184441082908831902353487084613842728705556678134307256547411343117873592052305028208644394914469386336507854874968578919269655042818298923248994149898539598909520335502187593082830107435833565706414791829539099145313364518734740965808165282812833560612434841616616135412731108428854156388965880188516052183486085872298078272478834206281649458945465057951941298000796325594822755871407176459022650924722547379843223382739831502090742313806486473385536923358766067112868720776280736180268979963648933053723113156426148470162791025694729510674931275538416954209263489632697740954239845315454331264882080571620489925668999183943562109014146555678596021236355749092956060660640769210850790845969426834229585564352968871656584218687314367965201243676016444836644907380492127703669109547029540311515707980012516721916979415415314579320608323947311371537578643286407180065368883571752765838476126841853283298045196484445176852244971104525633627720051879496442818173590717273977869667212183174304956065528774645001910471411157903859172857139026783610781024485792442990356177226730875940120542080243629392155157043998553906258468654437603798391099687688998357005121624971114482792360014974008144127317696175534643685615417605892044062161438375481545151076422877937554683801504659488338207180010895918700692215411752576468024024848790148604190993503261255137257276898080845067218189598244766406260161939732531130016784064622153862326461268017129206472191099415563507152076196310383059018548685217590255446392786810059822756216281081596963285225207030000109510410694239351429277351441399972850963748248584121214450789844027520122947129438419979305307040135715174167648878440937524139525572176224686977015501868128878986734975975424091330238482162123555510811030924907698575231104320828569774998548578250574061526589575896396015892239253728641992683757990497741681711327594121936778724412865522377698361470117757802131318480107089404861498948884746372495244001257272224982019421994951767774888940271874709853492461811168091945624115667906889692343119735142598739961479671650739908710472218128049872519590361270107081370589744245742022128330641101020691074747782891720404750745408775474099353440585958159586530818780555743615431833035174166918701216951647662901887990216276817972792531215899066962077380299406226949444763179115277977126093343909349782170343729527264701510860141361050145829046294473816054538280959036195389907192292344961790543416161080852795395531351562305130598029480526734333331799011399791147866263188147622525370614200724205447277620118204816345630114375866215452792851907630150461185538067698337204417006049644321301460033624180601436400930527448511385039619494682509716822953620044021505392950197463074486953585387267528563187797809340258454258803692699617811401762733354972105270497246408156366118994848811532724866384969602966736104437929391660515803156436491544850295143690645680954549191268956075294477789960241503538348666619479155312089713518677973473890347275328159354104254128085549066385177972555755120763758820341412990199481720485123342165658855425656586327881375435240577749630897345186478334901958064871826314004798100052614475180544057064812856706594261412522449852699883640549763620144242803212137436052669177190434912281577975285371009128142481448172640751416458638844012894078531376333325584330491553141946160367194246365061097265349881139742567362350294835636687982447006401663718918083788140087408902065287884621417216392010567567086679826518394463311564658432740602205058867455277660891384020123530255291543823523920090829125497181106845469904739631483905829626092355874114823342074344138192692384086847561822447118699880206341370847725021150720645322492850610334927186000829186132701058880146854033009019189689322035062192100448999690642750551162464902769138787101539537910236917534468855247957984814735234442444267189745394175756490564613818528776311484488255033537886190670487609803502150587526192064658610928805722300077329564876589730267826642481924190434253726854103626330626481411882447806185538818362438237671535522472274190445267967377176564096680824147120413866470517338315152081105725537774079706949289177622131630087102990647469129665695478180029398724339928681964137503779254046032237042999426710498518027070642286146681892968924467531955695210798912346525851807968751682232234238445500959688473017428967240879637589631240067545286135123101859384051271460945281265297056332966504990625420112147226747645694391131003748638128145067885599222032872519138459870016394128263089505056047461195199057948639932817982377672395662742291627374706241120892669558860894277871704372745977076063144869240210214691579163860035161134179646348853517476257843523547662242527214631323970611260928084763182268026943225677600341807176876718705765714405033409897144688303806225580088627306762872910133615512850684270400460716715415882620171717911903264992822694772482576086528731423300109785665980749082434617013736447258676465506857202633446721455169635776291213144393026765758776015693223864853733965222598132738843301250364219975665233701041783808694516311660117601236680036155877356358544859677696915797044316296967298203489753151954829592219468070688455321666121024750140191424655817860569902797427115222236907376903803259532929990986776002625535407269607965200711739202172073418160990184089713661960632100105677085990708195791059518276417774875551497280829855213345325266707005298799112504879340389352009252421354320602709328697489309974708379319838067323105979793640579833705774532745397326620869063783151781928816440751081965794892938482869008496363345778575859271781488261291414352301200687397227515799290437857949722789854738910063303214236719323124884647071184783361758322825996502765895917233875831696535609490920416559160374789198746311260194238780860203095124697674469762639297973648762339849983412625926165257926380970787785623453845510966088039845024391417050111798995457661219023134014945892971779609062894333100204778200318334169750892056315265218345679741462090207672596024019311399127422985924867468653496451524270671849896018143753683916401446347977679492271432754502234777242239916407193637497582831893391973426254432020290928613075020491017547139819602101329066892171268581494031885500144917304637281698960890460623862891341313669658492588544884593320316881102207170761859330899986167166986089009808101823985062267054429933721746236073050783217730750805046811505596702712953041941816261265776922527805452791489652810846633709345685064081705308553644192835890890586730347777667305582324851003462901119688073168348671586224963454042724769420796840353295622008693312099732535329046193471613712230628359828581821240969924107097951429015200825283017800234975250557996183035075424414090286749475308479241182699383101163732014550327920664869428786810129968048993022230989961091534023671825732214685974496143791873128359961703327274466375820011647239512436292122274494293004809296691836472324939661372764288496094508133278370403133250499448392184851427623634689004339378173343934827459013308171159984493521159234769119808240036384414610283706791204723027767586135416146888774399507591553497370301728945692294210929150144576577895254542108973008579608427747797499428071728156910260332183998611995016340505402461512462332570814184833065068288681796903035537616555703833642967170950781566231704647031364008124740112856991781312911586990587013453464240050201130977644176520674676655883403359153132905710452252808624746271404985725540646867007471706834786043685917819513232195029783754435415062943731663983946733916268271835911201230653607726090995834041005219388588792098391204370424726802553385831886197336939771400898699440921612186370777764379819212236280350677145558361808857978758090088039329034853631989367648080002785385929384461830714993039434032736634373991183296097195164951832737163645400213533729612753292427771130030088968754755191955815931540850956444886693594764073854983923058618636705544022762821480271292596170077840258779616302695378219065736327884827139321046676106943022393125936152365100657930487745269288178979583318815803282064915321001237958655728390328361650131577260513246924141745701416745159616520506312943238401775861274578962200601827568124525799838584177523031591561159436823014598041285530633479977769209678507540864991033847623933789936592525395539521863965426381539115716489500079849864741755550276998079394404650103529822402167756826021808323172019323982667999974961141136319737962448976741270157932328655135453895211126541081102220692817515389254182826707598910757145796371352201021085878701641756394668055899592704013818903569648992213718242822885127787182216781432313213683492180596731448000828170302695975268880948927723599537353299377990083293281222671421821380938711898772198946215489984920557340463864120805268063911203113038576629443181599265027193760014071387796995475946555637922729175806656527677956949190625525787241250309526623292656445020528746896815092737455024821314631641184771458115809759787417743955265041848582021740077000949425509577199428083660538882141144671119674082965442751775779756265711555673447554263561263826321125754682074058992103920522906440581750424526921017320488309958118671847122496804947906462851265281868510244758328500802157034340461091456393950554266480488735535820236316059221262569589725940185365102391402305280634258519507653117923039900088501915048446390891070005587516004837231516697311317817735686864147011107491470201104846247365014924357823629042760632399883483713496944668890087852637819166540327702863587701731449307816982365247114687659801034015989062798644818554039972498804314743289742973032836585010577654343716991153246966664414465865955268038385937414922776090280768851895348137934136837534956274417077716499342869504451688030922741501689921612744107078460228102560559459003051762543388907601297912505721624353282004166341306518085604692139086533184595963503282556791884647128257641079561764328836078168932471400754254104972242361906795590839254754112008616925875543306281299105356133251964130258907868447351736621874099827703216758862190892979515174938747640307398976135343360042445160656777028941524701983384442980611559343069593661363429279914664414832811712427688890662473834658845921731694204237486047223911133242558927054875549209891935397078480110097765251746322030673958846986816749170943798721126758630419364511063539153686908484407932728614466391731697409116491144611640292937696293403126631978977595381718977187159107317591876958383966193744868162895334708012192921691853047486095584318338716682774840456642267081075378210539109221236051844845767662680521834492093335773922815220045261688617722077462409687984912193188673287611313505610193873345307368128297652025408106150063059764609362771300746274183598993597097107089983577233616024410757905741229703506442769849762597073604517291566982384644421548158157938869336163677843714095381034329643510654008996730484190545215861268882143899135989042745492688468823858706876831243538385828639016001243629851468924827304307940823026047620032395406545358358956422187532400717026211617290318857813071643724546329737032259428204429005903378552516524454044115325361431994106821726749368939633736621540659827695402560215436015705280442416441729680543352239205841881934269044191843364137595916729952022826788470354682872366682919914237831680025439669527690019049276967978132484256266698086435931043315702015537996954378738011251142564092590750055123586797539512055221622400030327185975978448643408540423846779415422399795677701377759940756394584602120985819627205329955219500387765791451785555036618062053409095780087099122173536748048196079924042035186842434928900051567873927464978563575709760272884421414538926626652280298256834717072960179853838294703324590420643277246733169884000394178491317983520476160951883327277951685627566194170773159203685043213709088256600801991852131192375625726451215555379346279000671512085118672204082177993576708729420870701152825665363282614585658877681554513203014201933275091953230083217744328472621710656013254620246666411345876568148832665743440808792529958239818812108149293094590391643729336392274508933239396834648591852729217584665855627596355702459981421891452127181960388017699985780056027151369772944522497079032937968750371235686529619382104381261345262773910936265081867696527014844778211348316095167732731105966142721252179866712457930634488955801314107929450693562446834673815951588813324363575635931606483571953032940221207744986568666729045687997080316129866550757518201438302197260152014731875890612581696231397280155400729054410353491687719293861992103948660470361936100061605916559739836673024942530170037507209083782195596999850864153646145429810242166811138532405142301519878215045760301304991999149199831628411646878946007014206013415327248976056616097254141636397600923704876618515010708296649013221991189972631648116268013532875635960579667670101391689812173677999298862922307832558723836130750408180884475602206957526027967088700487360202150383056967480250243809037505430890706101782401127817684486774273997313675870934622739821588106284131556774022321894964981943282635465279998723470726265246988828239714270124094639926233626558966399700222657734668604888469525031111677881118571950030786277561245307758245438169828075927226727953010958671972630811440615942396354922043678181366435173505371672500992014727846713395455509595948366601670972881684081573678016401847354195092877069543772983775468931141372321042177453476891330904753966703021775425335630097166435868464514317706255984431838418767767244903493980768244264719066503769560944210891702962182917134499739936629802228371162922667726291005152053322049900884327228855913556181838333565136012970742262439710015048603905346480004407657960507541245632777991616559644192413493023527435900350639367339717895774215772076248762894104302975695170506611432683313755847599288105298981935471764288342533613791406035700234295415786425141256780039980431300921879954348410101761396234939513674434686202271120918695498436030084117190640426947324849899582211164597510848108396261382333915853199528848875833794701166446974324341483271861828131825326699119502491786614180844001567635532492083480733792712825374555253532022289962236699481177746636471864075920113096469686997165032681696990102597708068511718147053389133433259225520545936769497979273329223027169937682313326093468875795048297881841454978952968208844507988749249648196209929428219429011249693122215588151485168945870729714227002076480602623978248277161215980751686901302473418960792044895633325965011802133455167467321265777295938769466559845753727572351732964657024707273504313163089639825460646186073724602172392468655642909102323559860725106840310682976373208569930227444445580825357934515358152715317961474412030561707306853459554670951015592113237722813428171182825200687074401109946319020795498228144967288567263574805912657587122004890693304346158616845328222528883001761856137822953214511346688011201306577184029971014316576634373075280404022421110716631769566910066853075254548798515402160998029030845607776165019513541683123298108349273232619236467776129671501405504507484592371344680970744657915167407531603608647882208295592207937961191709797801838142040468714349427654737925151502327332733190869071495831312602090411066525572818786464365172281555170320997488046110048160345804374413746427870314580187040116915489122481703851922130350167797571157105343825265115902542772997529176749695231596859554180506914774506999403225520945519219449161677038721254430462444898606453929868736077535019086650996888885247794962173173282458010029165665107972278672257127947108573876694233655403590158467402293437048284430803996243995293219314021243495456382154657933485176972906436681553135875969766813936952025789696972014938252437190595704646118264036902154882836439210683984621136633794355205169900465553988699029439151024779226807003061949145730028425610026223561299397755965975754757210014396491962344993557691397656909730862554017144441711244818662242249899530879169102122970731242269085422528476759167047396969374064493748738914340156223537110634571313868369793407618270902854196056232199792495724791732081066588370601237021404077709372448574693578693480300903794728010666519818787027071075671374539761890684841229325261275649824675172292619798664805961083499070115789927037185809929469382170878778010262412947628360178103928897390831242469217414764535680038226697110296431661213030074321131978803959469595406078761899449230420611490504975655987145867098759245213913566634972609514356719081465846663310558890768241250538226554991240773672920887777621495105717780703179324245428076867200876109506861736555389758182854939255946115010732105700568183788395142871495735775511103149665726053787555661375843707556036760644184952728725921518264484886069430624170692481880231460725727937588219380544702160037845269496705878909565586031236808094334710745573043687873814953639979285980382761472237536501783696695539420980607084310161093774299582305745033533324061397760521744782484451827911219309725933145310055657853767439783292924815200014572808783847023525883168774436970134518658229258649657898923686787864820253441051600815362315124678359252157834077596102079557201386861808970494470012143138031874633737835335060052649799706039550874397197342704625178319626894190306037781386226261495151415908050440957107269666226115994963053018670561683680820717103742114686769736471945074306972924954680513798892188970279723896301928106745506405891130786786076013787537677901469163830677540145523783922743455461872304434129971183545646891730405357362653286539188109836957331752212749559035761368110852237658255525934617045664585113254397374924847385808240824439508151248687308916708588965616207081567987398261944612214844113943441630437868584795761903204815302090033749471764488775728536175809074456436985494694789227434743048513163368422097622321256239850692059101727582445945729800200491359413994129773859270116888435878711238020351817910413046658870079532200964819287351218186477277792975103249186570994709947583180191270943401689570563848802936126476545314731846544883538667226518883979271974671576596791690203687357271090726346683353817175221882621602515217571673873308215600146881439373759619737173469734491207682923659951217955875247590163477491524830350026352622317529187831132904916598761071845054464566505227237058641611892496454344267197228502774539510722204661495569450483521613501497908511745193701984722222950781001230795601610202469901209350412043593915462977098663574145689543001214048137697201649431260418804386987654277620653973104071164557468774696494340552815562556320125533857695340677906222395125129489702465006205354725957025336440282572537176754663096798438053813223968484068036648638170175166958013449910358759354873664889836499617902530374781841873098088459616639524987284713082393235448510302993132212584577648706840230936003096747042328180534464621024119032757565255826214992959447900237118229620864075162584529055985740105348830920383592018526925579951324099979540989474517965080823340946964164079011915811618267379790098481422340014585592998244072034444066138951571601294461621318230320833905847587960031672318478393965115003134546147743229157896521410657154425759877052313701063927675895424366823408348977753768082834107579124987816859868708595331540198661026127914907602355349429807196999745676122514389678186609228012841566113207304247440593329470968288265353126237166912083835802178615155079279989451242950605868680222801703219430094063810660521820962820699801457444093340635766690418237883121345910531234266372460960480007197322644221335398371591989318111341854748818151203948134587325676306187136642964661022327473997112701329972954737050455883869448124059285954579616195763082089240231661695371052719650699587814110974049075102919193869104467654750295636279305151156110508292602270576565011501163395708690242455814365541861160576582100627379567001887347438566072539271128552812476309359361615902609239033696308379366505777818763868680657109631304835361993058813794467960815865061857499323918611153833185239104046807316473166965543381806603393424574929024789167386519657659471840667782982884741540872183005078126847749226155443482913086150127083701961762651886551799468949974194651590676957735196573176674243805731363039397218106367717503767556827870031637225487272156782943619410683435459554257310280051357583029393557258701053017676803405607725567805061130994175574145216556308257461966602856433005027798476062496728471498920762344287979141316748178482261728868255701483557999200300954321126249366238839822773837780666870543552892644502519987886371809993696080863158533672037336006666824653158873804578711643019668336798341791818091116307368523925015838105952761328926397730145912309453234596987188806393790318480560167670681493664131147078101776647935662337437911556393673713563434115764146019992568391901081123769283863084777126290201814873761186233111165759159425975538748209776898215586108753528791982939854712400812484465318701964224868286123039785357774938471328526816099075238698247664537821081202295370142856930321509285275309656652825378739199650263286691045902031869206807945487110040657757384252728329435937822489207193412098592596870064327177428652059953576112747586064077680623692563571999415126115837693178635554735718274862046496364020124478818147393303937824109721997599353104054828082314443266381456602517962437321407713590064533072711150915765922567704976207053307353070680162950325768568397714347058254618694225454009998512787611216478548062932120119683619604219793973461797806187532019581311100072910734766163108053900191284848867687031640987739563115498523643796202280633357528219745911331602064801011360881035087249952857956157780915966713143174525619069892219901542930835651325669314156287299628621790920593651002541031020557392026703104776305770419109530021025649192110553300269560945361396088269516994376665382646659396322927497262817472831674058162315099493364476001797873579941553104670841926597859762019798982749020601241571468004754808231909441153746496927701830021480902038377429124909774989224993518704347856202268161879781880548139791653848457924174462108908785752197322572354660443530046292468122651955054804262071092350578116196334004701638175997123989462724550407291697394901012600433833350406006813796516073631373529675140733938138063369580433344480940058207807593225370215285032568770521181960714594889289852895939448730381002950399030947000680111900948062746558390063122526164606122119920087455807620536647781978007291032079781322991101752760716446188289068335241698358333405340156085440067888206404204910446934751156744404867779622593862735730732309283326003548247617916710900381128685418475958316720967297239914786917203569221109438769610763797911361593679872016338766050318283696467454981414888847821415876910515786215253027959207594444466041708551382854171116229297833235165574825699270362284299565052471997912378876293239242155339045850236012836085677992033435088239927344723062643861137400006802117845168026134406381424992932534695047400486739671291631734346589789385285908657815457185516684007420031353304205188566785300866928031777693699282334642243353179145825491926666966757666524635476580830954568510600612532649749595912080739376408207343820489855690914769337999987583296087803714540708082970901998639728108983909145877626991956971799012346229050199139943715527376138330582119621821679648861457872758919729382614509892123447357052069589680517898723624015527376145855423974350422952415901533767391196069670379099119402687095995774453867018043770331361609315466473758239416890198315651859666399557441796089064404817709265327946680616910950094364992203483833239620411580198959848004853320527269916557098966714006365952895714442661249647812981819774908619259102228749193257772279736171524810685509893799540447559080220688381762380274102856071032953963465839963973160742330049080293335488451792041831973279437593923222695956179413040238776954691183583840105352595141410762965943483786511950740996715678523706402444729832774931545945353914258601042188300419818022207447397632546403583076400861052123259523348654218460001455987058603123459363476619954088482541485444600152075204174280142693192137585753433068149604078231968170545998644800631846313726088001997706926408968282571248598815858615508198341961151590672732054283424982011943854435272646386726403826174452070466161066809706357101196680940003273428107900264439896114660936972865954044497652191464785293511794513721025365564254046905933309789276351864801106519334762061428523971067346699413904065110613527203858123502795742222453709104131103820409179541868257813194809292661505255144928718205079079169986108643262585697582893497114276506371512494239715803141891655195584721648819634606087309474224623703770639866636604291860574392558431404436701567325913853000121649524955402175688009981603756733487244756537291525649903395908660426444156681858924765215138358605275520343478637771975345294729398670169455678557508827067339338561400375455806743299473010159883312591968354747923709956473886368695161501673759884493515611956421075016925474555589668450600468642919261747855889921251978777215392271183764295202100624799179199863705400463648754643636607797892476403982932363685154918179349135479719950440089104500080391940221475094859361751958079720279838638503927461994233230601842991707935597548043592224354517095803904232820322314943453857181925939917840334330519649248249293296682946367339137032287132452762520444162109953781992335535502644653044794390792364123144527807386840472028443258596792849589946139929952888814518386332357416554531532577736951515510917561144833884644243897664577260940799964900128116557940489991937609588868413357040067239394261391684976510324945738303025225716648166816957011932866901045697550624361404196309930361730276503356096878423428390914817663615823593887622179868175640107203838608552997313933834929094119740940127781189356892982737064510685687372443476178625263110841135575796368104174278466980402758603711519220435329588415433580614806250300761472231356439872513008671691872631858962374197830501008618628620360474748293800448130936936435111455593083750705347843887392641676948312549732602880495889981239225235860958287684445516653918985335316151442758784430319296307416280956933279230238706857957169644354485253314931830749540180360724857607159765249331379702068095852637114572816488756692779245000776580854685443097590333252947204041010383076220692131750569089043223094660107256117844996158989875950149680394200381192435981163025906772482432831468917736841382450532493231683696639818038826595685673505506677115936707603152688513790553947216075147906289264042880594567775152878466276675447707081036672918624248264705371879863123931103967010252798121572635763972049443634807799383948772938503443269542687385046322268849422028040737998534170257521044000364509185440881318846880220842856512315808718051556337576443569380118855708023380942770016869516820106832361959867516924953798742146914380337081152528302061573707554850369982916495849319648243512051811941909833516859651133667639535702543046707887852627912388708779662953182579447496420181689605460053412396951732074683466040408455286748202314229495570415290657446890989897907028765773757155562151836883355860479072646788810230316060207893411826723929341675378346493001726661864861528578050010509468104755892164211935246777585985846849256496978619600123318808348385717530788596521132780606101276085957303168369222929469127575239637619762657124813657083164316537359708398039195732387601022697281898710956311029010581291500086421699126826783616530917561447466080262190545240585322289288990640891372634201135810676737529410674155650677512240130176613426547927333703421519244625104500977664910022692156213318264044042472659375921098306305583698700338498642999600874611152771360043793764203857799829288442427624315758550746121064296715393076233794852234454234304928378607840818103795503314146578393111772216146744306034688188909311332747267898454540169773126663554887365711236036816298722536453118044596090206046084683468093800230323154212078280454112598578972813447889737263816977433186175594923978227631022498726930068207627436650553637222684287095789031888776159542418030515906693309892916959112266812626523099548998693833776815893021485676231425539558839979332517943191133042346445901583204803637749184099057258357616430183950307082394333631824746211624932091187774351417501079002133591065646693974865201667101704260159856191695069028719858691409383490362328835509388419503122367866138297004841081091147364558486274259405832842281034963892903606064515922551635880429399749987728431822963770128947275743374838110100427434861744023363392601493281448983248270133017808845285458375381534428327956459058628510340195150706555805355304323584569623060443246918464186888992725923124223155146410728630983706484499514329763197135809738427090703398474567433575509444114163377418061428514942033748323851734686329507161123848031816458992330763721153291730400628998542789263720066362200707029336310787441746248789222833873428024122354760671193764111095350133094497515614865290986860903049994177393569398311163174385658528083681167292335575786459480775426681102586114459547755084025396316488702791008744064436529165436366324202286734814749574820648356678938431515654916859896486921092806954569909591250497052122046508669054355828993396614135513496002186435475437856646889196031335927385639312466636557700442749153714689304940506739110902439234937161991675360282269808384934890216953119915828131258729756066290193263839318022409394913229738430964523120232105724231243772380372086150353235890571631259167849488573713790987117963349733681332560832227217983011727908870157937509627190968030072431398901395674247061361234936728126337042566087054299293588921746833063665049082858470196901600872076424841038487258800189008623317307897215090404193487999592668459881938661108019612876750864229137817745546884406062991323375394463048540318971778814080657978550077625603944910888256377947652620934635395428360024575604256715916801331925697899341777366369664976362926933071564277449134079297997527669459344884843693214830202330684334130017692551213167793073872159955497373340704103514201151591861356470243971334934661708886333893142388472471320878158892831328973504281230699215843371483258570533893544187982266856089732721994172106412738532941616574064925072353514544932144938836632606914084334062598047136713368657053837569041845271649768452596701621321275374667840489113180399207212098526236980312495198655433568409565236601070093980029671611866257953239843088832674827974273587754215047069428930979499162258367597397692172992709194117788211002381102463944829416869473026303653019567534171776692694173441167761377113972782114984460292816069464197322296650253649251714170881403261321483861277089862044129205779897266075200494254048688624563477454793181322089087423213710797554304550244227203007237260691781542014717099668015197684643939257501925939035355474785288196958720298048273734406586718097264257893380762663231490632271271147773562925400643868748918567979466796641667595506112605909951464979391861791625147266229378917297685103911642471086668156514941526118032795543326981635464886445070131493177067984907664880430095027399115601347730890331715589561332372472528039752024180632187164452316404727902468567049813896836727503545936236197348150319658599138090456300215513678787014966471544519222878469355309180374607151658853653877082744914454301002206855411686863349063884612621257283514681618064811494974242851672491066106768262999782542794127087504632715985863417182705640619205009000496063833132678107901464401301050603147727989187398653610023292050089432194561249694678658520346700545806771895841225538513633231086260134913833153607392012033261278081976359764414827660928526561279670950833051087206193895229960508910251883861933775057441421599108670396391453950623117579424053724238705120288886683149530054191258938180076487026359469950250368586026737360414505452067607087005850041078930660563122214147273812828704601203380964930418163860685556169939232323921723875807819692748231895996919370926394947281648785865989235904277610712062674080620384470965958000689939568280089758491552856617853697093595338744113477911401145027216914684837671657105526231478026811927643845170678021036000467895474438697392191881771607223594391405996191387544806109678764628125380117320253944949288747444438381956996422801887568069755874924438607069149405767947319027663189663436026360838040071093450008594608682660681739257069741241598828616118020546950641785961353592756250914724568831418588492886623597905815143811497403889257282173369292878649089074506164807854886888276572973269067579864152304750746197143667044011677769906960817581505217305476478225839052045560493709758318500142300044056494672908141965854819263145544472224653858804810088108120923980182448016440393137081973780029981412730345974448365225002100013763025600608578078615891252946868006758588214622052742300593637952620645897689910677972507058250896631282901737881685694908967221370900240777136674084563553763816164640079491936524533892951140522199648844173690890438454661434334940361711351699293528833317252151519758225970887245862621061391128073046798326987826815434170014063188987785699144385997027096891713962921575527007961775351333499240454177092841146559556125077766257137114922668071125708430075911764699142428436676989758151513286482214435617965370066464786723859826670192178285058262153729158370270791714240950317463202051553602104761657381797143209847873785886430706506721512880886104468183014725577096514414435030979191832726949884415452959364203925281249822710924173004174331606592905381850947445113837268635598392767588153097814877937364056888962021026690219160769567206622842036484051217250498975870478939406943829601975006511014323034243994305781348472086332643500136827797249285613678098615672215016072044457163047364773787204123022354066960830106776552373145096258173257105579295266146058968562976677512523565772788501684051311873950414525664957804053516799219705505499203202304755214194820938570608222372430715839369440316899660290176208570390897631311256007706828693433698474758499111380781098532600058150607081457817733585263276825093135521335276340083868408599306832952427860325975155882456142746481208105625275416906814085890101223537620654940657111994485527935816048218551574449376414679695275497732706904936283035088181008602191473802280814632428359121059342669646980608504033957609353534844720978791290854270411170290932120873382445866318267647774146456884833955189035080757876047603224454071709564397679586667791369444204612467041915250784670736879737701874442460997884819199972191827064835853158124311110296522990200140955620135447013348176067922606597188837777497296966950837279552765399423077794489118734051938987193936203021789245580100047630033411796151675007371567325887686458305846567363607120577811473806837319204996208818141044283418308293239074403431121129156060352331055893663047413347218715198674205715405350551506036794770042398711993963930407996489017607623160732218581358346556347751308359356979554194514943322155805885599263493824635804350195177002827816233848575435683359476832796668514180686476031746071551224984548066190218478091767102859430724409808711833349113746224397023168984737865527993784034777523230472521755434457179768800350282764862233821776619729818306848501633041998785516037792717969449915002750406875292343939817114721513831237292386434410975963467734830224521648016319149991013507878568290785213730094990690762815299782907169856008422401414032510055440473834720659502295885286297552683496833356859954879028192866202146669163430313336620845946498070043472036008896283347181389469147937260403327329296848831899350805230251018780011044946632799053203988880290326040454759396749772442263231956155333166438989857364700632745035954546939139801708272352737768338980962567092231758927140155395766457838793745528809774085093128242472880078814037273557177467615390958736173809358082298461396315174773476736197025680505647655903377525410915754703949917805737163836474679847740738260188773657861238699893235925172134861813322830442342726813654287599474700177845462337582962789074119550306008685973079182110010479865904227149728352375276962539738006988097299325553481446187737583236199594176794419737619873174555187716054018814809231037775155846101289441336329708921439375634846152098112782288957058370843858207678193995473858491210015499905778756528987032087409340397644226063891001585025569899716772497122939887799216333604255483755388462539156581799031089598417082737483427906143504535087529810962052021316347242036049982648105727571000738451593099613558719214233269882810178977267037489327832846779046430544173076821226301301216160887966575248455060303795155346717818614413489681258669969376421245327286590699853435003285501082632230924257216181593214830252486889345548910698735101829351732714419791323507245582279888094235243672741903337092745252460821407973754368273305543882653718353873796472382490666744671750274475648303208630027905880768039642586160132620687060946361344241597581360059099736744405283510031893084313880627153681280342805196689509832373953778396106238431571676797357426809545789546769285114628708572489370440357623471861738666830711027818456847008100156908452558989990463683594787392055898763646684956548066972831674965808661539558204679360095779159535384276986403296151483925051360788064385359078796458677517818080738985142712541827401549136765804455292554061992757880033304356502735193209948802860914806739493159450808082367315243379050000424385326708346062284535443711088750441568166088318657264519298631024343785493563096376245040164400670401381382399777398148465217667776663606728716909409791221427988444368818961500097794991375273767284468079681706411737349206503555010610908392040595485288118267127301782932831686654861972791767364503624097362587365115833474700404768354039812485775241887074218275132251552860887946405452679344065358498893083340392768146247099525302535068247718217266805231981892860086529035316544879545785927915099509340157693102697150031235573905917412765389631858406788902605730467906440947001116703005801554466049147565703940903258584752325831437811508871282073154378828462474516647746311870212977008062393133056444725984328594167206098774544115320786511437634049599085145907614929440335702163216221646827679452172637938219471400177967146461071507376783934387936827064374009931597039634521898830575855820046190973439577194094309399095624262249186112885540197261951150098018612565215095240531371304160193457943001223128515709507471343442723745898681967898256968788026487487007440976911286386303836153403179336212175475471165489451900510831858419537584011272588917588999480162263691096400585325825670745189485737488069885491161260683815494965004949565372288511817490617068792114392038386186190883693620363147241943200045633839843547665599426991820032867576787500766052568743210295979218538875562947738523132481480134384193658302992455462765371832065554592747862280038492620005689731814895961561619515407972037161286856825861808271790867758616473363651645422580965142541899225925370122228953874500369699004495319757454518425089634320923863509661672014250633106418648373569747430081100400295267306515122593567026765623641095554947037146392829465135291307992021603026912890631920967090187285531935726975580443531880175804634146261219387683276946854685362845763764364851322039455796892360795337346478769601363406800643028200046779363135351566830832291142530679106502561662385688087355367826974642923307550430173951164847538290052310064670473323366500329648068625849815369365618251266247298931696704364255746617483873829533526671945725025444540515166131701593682668826795139241779354486155127241592481406163289844600057836027110509901266524340178715784628701407214108321303491676679059356218318276947380885983009090993270600527310496449298756596853406181481459750739024256846124849037502012252529605035173969369936053754623394340470651052901032268368770806718570730794252051850418132857059744535603983752711285349997891760555004829974370022382050729335991283810473160885245269300619224814391293058488234581309355104315394290985675271511553080289568667781506737317884897582387043035930834608111264384313377283608422663955370190109653143474187188623725178555878018730017593258946944303752915923695161368908257694395960980386970797604795514022854439619866189189882826667819175773443209559197283099699685990343303313632913711505541062983476925348035621925293510529840738679083897116777448479925894920632823375852300529628515046217233670598297931143076996544795934146770916482322332908221383826448722578677183414860753201735060107308657307137647787962274704421714339065245507771913502873879249753156905533295174317452264444328526084433535739129935498105497140927006963077619375687733741634921035506040044555515440854824215776326035155427372521700886272169250984301526155145977079272844765155813704437121985826050760016813673138399251224347114066716977674151825227650766745574753861297247943706444830716663108091720129377028241420430961079672564848473983622997595892011276236726440597975739741930883532495055214722855965171707004004648476129627675676501096915041785131908309914131116695586663802232667940187751817274226489360121267188586081079444987233679951519366862278910128214538300988882394603205173724674318401946263727752282285601730716115742804320779118533621732636277562616166336400407696502559380051002801634525889560874513194403895656881578617405745746589743716843590646904319168680803918393901071978355919759834934543357987725402672654617932180055472699846888326335141227497998376010394979094134735463727908683427341271425531767383897923796699631658602224105490255398487985550936303414789895975739049078508093311408838921537295431908654310130875796495686414975948864493044454682539055259212824568540743279154584373861428509022244203460288114745766135266179220479032314648938322319627216021625716285418978035016605820065613448544525992022445619982535959237540684569575764461125328858772331051068598530419899426888296705801827163469182929346626662402801260452124155086426892482987170889657373376930557735611029390463966667205553892656901440804875541085934664754148678356371288355113195774371220648578135628407021723446533610987689494036485507635141225896628238562405156991969629778493102685347624916543284816292411240805465356610479625338527730488349757503783644336705445140081367343777258913714299002440861990275517432515185926427810649472995418586765690855218420985681424674373886015867494588596731879207686296176013009853234329745558857070414113701905976948172498525192256417886512010056328522982635626434107516300972024634871721526715339521772285617537370247287531320198290508647781020858941944068147456537251613979214634547734284390692657542741628611962758065767333640057388545708423141252910792765439858149916847906879247957796325092170184052973041062223439395218661706064107273200279354512702498144192716097715497906416303919034540831830688528323922374940615378609913520036530331991473634733758014100984410403920059192716228800367927842448030713426248149843636421785181419066527161488531111637854293750965036326450475240567578774080737091154021861907278694638872520997693269321807180686590049613018899729762491890520876468378542039584803780182525335354493109450348566221997614084462440020801517421265491981237100949300352173229043969724849237953883334609565317086447561083036989793862978646692147434145235152862989225616851741626175977941372848838144994501645934017185507199020910502618021888954640957826159620064120050809668280211848015685035414520830615737133265527633361295549936853808838092641090172795574662679198499550765327884340756336641111678682398451780904760520443787841240764426578678097185279858323090093893370061703698345016463025788943750670776354990675415885947227289398793993124760753286072939650787156369018074628629139125080132153544978260354138729369662057602858063201107390757937641545331376818744237860418506642536952103983070575847595283112095148914396106661744200969930404521418381256905678963384269517164101796927148676395841237894506290640551784326110834395781800922842475205380799823329953928341640552524891812251540956573138354429534701973366184261153372625390259132316983705212235229574002407522278828195827322632609683564066357746361068315663869480306357424559882711594528117500305552332927760582633122024636583744549777596118460127878866390470246620506209120237258975430310553748597526985180874401405021347381320227278412670204863375780806627027755003426426773190343594190931041023957322362633742648294135721892853889196372980032147177046934572638251166996027725270130898132539664896089223110263932075403229725978792306744779643139961044675433245312062032265106081394837920918681611516596084163899855908000982990806891811050362045998632750884564359812788107459967734477258785047728814228090309942478622435793413233481321786472898592279249987710054263640139654557965205911947661499581268927963520936495159472400822948003901169927311516489060630501110570775006290921189501292517244660330797020981835624667843683939360873149791750717395316951564907793574100362610100505055237252552292774605204936622082245279023342458462846639024721882433271384045914442482238911322020741451154070906119049717200319418396627425843520839664023165043196434130852687564232624686154102065151564140422664332860935184497328295932674907678329058783551091046709096313663159727710267044308535334442829128004587286511549078271225614390907075796279921568673562217618961371179470923998937048617982292063400348974418867541505176465633995393798431170088394947893965452051682683103842979035142357352925781837137435779438626555989531112854363995492132681139811970128528811709699756687739103149747715061892414646511489650778973132855855830712624354585463008799448457515257883413110226320854966282686077941553953733134850340392460606366978095857210343881195247791056819989473923641880536079010885155413361578771382267081043176847453714724843342479297077270054210911948313157663658263354010080829439810009328979069569109437312051250216913856041754555034139978363639461095052276209493389430824565962566596225837978079787432195985619369092556950157699471846164773135688126505306359742016493514945674690050787993207488802900954854731011165156685592240277787418808300578252754265844051583475401238837882059062105035381067507944689396667518300576550160721287491719298802541900572016186346563775519978221687213141389487874272535996772256587044934983329069350897943746041148606307995528395715660045599893041366523602962567500986446017996219067980538195066197596313441626802688183202126673367630896800021303209293040410012635374198009653048496799867258331230194219663245903374833894539982121875318365103900714553958366040590376641173476296803618108495580376269845085216231526930273201944854856589762028364045487710937903869920108058416099606571091023000040173290661550542197733013132421970728813041311075162464103180326968932392682726819699341005666096992904440529007883078672890653416697120081313268842668598226824422460175683480795801509250161267920600681654480463388681610056871607578671661944518904584302158261109810769688963654427799651476344437158173779549211902001685435293546654459497818105279525853342992570666174597984766303392445385192302865278909157407447913345219029737551229289574714453387448036179019640875192913349515334276351992801037706095543260298839242212545212154361529313008391621479372464009325466896550258361018247669093914154911688000028565687581955451667490200931309964898334876203926874081466356689542815701725129679361358880030012449425799199850485991644347037283522268120146839694390759536547302777616006234624313507224705000224992420482163177954916483466764064836353391645978027863139729275874162385034904715999971391558606783378095358343660135936440658141798956160033853294777616153477805227699117755579544687163245109171871599458506952722994005464729784389424209436479185420153463194425857220774584404215678997240169925885260748592180206973321577895684283614209420042325729522008512385727205469244874377821200936130069131437257292182285781613959263208996265600587688353107694670293141759327484963811398193909001574949534451921212071090379207436603005858412733433685258843648001302782910589602883817495807209816664858931918791749659781849428251527215776078262932162111853145468633499070457533665039698836836329970269949481028780970514916357944688666580699581218144832846829604177389528871315093882264945982108898702557087294958527528273446968097053165122393360973822638160714036980924969920849566320692343725598700287286139155509706164486330748715713171120147238977334555654623064593814061573778808909825739677942241412832659750770096723756774871341337357514870197174210140246078653539842116988121140872325750369912043268169237453696289681931800912074106527371125083350956682526297159502845463396183148956214348899100802012376450769537525488023699964408851582641768248656185382455196106678718244418918531161507063135197895704598709913960617025280256322575031869156215290362557253126080676340428710122194912390084834502880797317656286493520225825819682038869064377407682187370325720276215640178461293128717553836441252928431595721897390578449658717415209292137687416391058814790501138490435667675918300580167570493577717388617457504689213703682281258582502060593682685821319089664329007077769678773113034057614166423975210936978108413595303090547769034503972235472877835837332659981291498528872099869750304061064331518799477561515418786577243951554059760710442003298986319438833946759911235003638940756367262448635307482855920156609082230683424654390763946430159486815576827090093917118386432195748834990906148625940742639619388833087080185442276083274366493623312367220706118975713424849452056812900812583766365475843214694421095755810940974469855316203984528751593199675570857896059403452748633724041673257622408948581766904923739730135354945421346162481827336880104401431279296246925840679958036724341071563131669976862838682208625943861666790474060178233187686006409237606292912537936764339922095084420425667404029296527827190634447130104704786788461103785937537490430540939022892495355033663623929354157942033065582814337965066727310037177312983424636460190483146616415773445373456704964792695756087706709238500752550014409662268845047070959750641149199937323112608086545587850926879903946039007148281038637254990199308728250218424772124399136635287612194299855462127852586736358124489636673439441085937548065109964538899136135758764274360636985292445675523405370026913099009553802382842035092087789685134752159725000269157738076531638465862299210123575408755751712669696145810467638723076951620734866636423663467383658804649555259962944673073894079346628374155934925938959559542890566697619154028711183185875502212607510541488303331517415275067173744390639672761057378827560182389905224320711266533821011761198280470165736531205477133915864251668555094110851057891637486469810405452616685445663317111891224022446426525038955345833632240725018802947260183012619137734509466943106949203268278288126750781362615447156316157081307213825466725032298492792653912279675499400937030575114327744239631374532922315712479667456056263783418142722961372957525648486738380353326370398943390523742070197087801543683788633734198624986624685141596159402812423576763711622323517074884197211052253679593545460980206239548977090906413532488810683523476904688550210348490319123409356027961341594041847511263257350282035723783644500027848093712834356950746608156093201188956968546604283314548486923581700485249030916358956154092712888706459025719419173903036328402300594755303644895419098330967674890174444513755987363358634611302189863729313142571032086826629652437407103472391587952817881144994279079963741427478422018295598871477862615942766677027487993225563979594246542352617882741957556487277176808719209074298094364037037400723842357001115711255500581137335109731924722501571632767299100719302351857162971915011570672000271878409956572224225307794342499188715801729981650913499058735920183305726726091859807157852627798021632156071659381320008234720102309294681236865962215229036932227753225774413211780426297243573638619155873242889753083103556645888485887363018877351597081834482431903588885469861490695617180690412083616466401938873336250632299598918983744139948499510185368543984709251123076010931172269459914243295500816534727969711207402875725950028339446173531351415009569795756674533980586380772948019964731116520322069969733362829000710097653220171381784133736854440882472592692428262635319097530044398692218683279309054285733424085517302343656324754689636319102493442848650682891426045786480333335892555710982496821600397128405763909276264814381967333168973714026382857389565999707560067620376380616709702702656734619033737322921026086943602251605213425022611161407951814197937502938891315356261568574025606952428976997197404752281873259611768085010031836400180506730364462631932880164552664798421209888400154415882868034535776409614545129862793402699654351713146428417525160509868538497850139346295118112104955856281816667108435147720379669471027575079051334725802440016309528633008110072507580818554835646550768724995190219282411289003076888762582664387439297628230008164379407564177701325503731379194553339245744546063102743058866281814406735606735584979275105548499240589660432938461890236771938644652063978698185596294860419765852116736535541537102799821718587515064631184480765666991215138967261930931645832585569679143129730020184457527568040543798419643373158679562164439224677262669857948256952458433254008071135661017803910205160590031440481590981181198288377220451886969236439500227037119685379957279669774509226239465702857477867064129565508911199725415373887082478192557661758048439081808210606871645715128626396631263120904734383156638089895021536719947790142471211231954660534264783319114796479306379810396163248695830850969230440973311055326793002724676035277615766226377354217466086133413172978381566758463596811306003184159600886576111300952503408122396467315848753062905169053575640610348998642251364891339289824067788171504990946622974821263917990033129665744452423453025237190935459063954571594457393960092368502477184996626660236399817338786226970429795012733088927689299951225309934270130883757909511162066332672740211088953618067621755767146972302464054922259889326731831522497676019284661547936532009827761711110003446102181061178215754960487075800717622491260331992669994793374252853161878112010212919430257893738298428207688026154460942275211887420389680942301065253101183145057832203165526528031241587192613481604179299149049837810201506029966503109146917480655955646234133898057923380412096288314579530556148635790168458269015153935090052971750834529093320378920838851099408353489748431444213698819955553024971818022682729300718301712628187748695557841370510422994422065696834976989752373274339715991457960458793829895599380052764565952879784518128221256664223616059721552000083032990782260858016463274214917538969433321345195224462710024183105326085692311387219390677976109146706295109858658261014688428987961034207162359147975162768082910052602451092821481588264355976472101854400325273794894890638926021809779202350095585071929770447074720171560745889438134589761777470375774506431538267042113759153966667643366803099768818035593397266238684148136053155076939515537891620004290899679085322968676432269609432125261190048147225876663833837481006044161527987519684617017646433437075391335479931924880953051699746715000534400065173174315233414357094472617211046161849389824666467965053166888034459533995083649145193227817731801589274303166252020387836660313940149529737002696265115274376856363528727592039759588288312186340744166422294318580753549979209132159174888196135005575537365789043944187772015517104636586117959867685428842195074567296243727448374281940941346191042951257663754963077826382501242526505799868203100334586504166295128100414829560655934842434085162743224102196179123506707573745730580256390988245291127736860897463495221220496829189733694898115152947910529576290205798934228909088756233048118318582681414462419788429306399345203069316741916783163619995748881076585214596549843370508480324196568650301436775029621077864280135304300498869305706892260451101294842225192890928115373837378920800813160694883354883559519048312970168848424042374923753032337010062298821913860323021147804659462035985276394780034276344538037651640484281546614482554431868465639123282606274012295919838764780960258727336016813991565253705790399761637506175431632530561709944870957367847561248153888277055284620177151288341890869392779027082338585044041566381991552126486080512050123815816396665916015856089958459756852291046868621426256492585914325569481681040329190074996322392884918877144595969768776230751764765661487263462238857740845431141992269235663802927602274778571402550098100901035268856708935160556111598898741627555038552864521744074680715619503474745766459689561853202061021495999700196195729148006680235276493398456743059463058864195599150429254699783805849657426981103954616347198957775336878156626830117336254650061789067609213066212510615406567470743664379904746689464704232102952683522453143150203092216840141880431908985072987445386697273043708148018270084918810401225053197476632650859671602965662958396267989061827744864150814085663479412165539419541936642648827685570717329117329373889473235113357824338587702858866523408814522261535384248106243153768303971147911893144766595369809652305676512979810687500798292646795801549750559890322690970079528479492290649125163913433609507821610679164584532939690896186484522595648534873643682600614212619526512732258296508720778002679248044633654399772762716390643920176845239346167198838809788299693630716396912081617273780882046761667821278522117603398715017178202419072533945269772697147080878091438871729951822101391743304188730343931941400270507259998530129343105355893338346228306779820162816207976910914554391355964922481832494484894549381769092219453914188417604286643007491605558945975151721743878279869970427760573287875079169023663671183545183168769948358828795855698426557847483286381948016111507451684862811972044292555506117980694652651359154514249049953874593839292055350941928339389502573018961771485560871734406437561744331572468728323303077820346248684537826004947955338669539226421444431169120512996076778156753316367005940937813257110314140211740242725439685273413405231520847957745102117035114364766796093698314251505280583015882520399328567894256701579776668674569474914016804884924293295955677160678431419256565451474728757901031995416973326727598674145850646342342401547363578928178202085744325784911065982734213889665595701426796492952395322536987763877667468378736533317263550226801201434697006027566204698552273270018618293127553494177212549698563002099475172981417450981175075040256470209812822068525157648571192289391474605955968890228010699961931488625987039684851617489638624916408052183965603245253232539711558476175815436806289352155233418541285213151630793238303051613918447210960774037462018558976380974312331254050217384640963957081417492132107484690797094473063289584478142870083560949111698995928810580520165407401720953154812562793970630458105241846800138913621209395866120689014912472511135296426542565584385056586358715635036988989256533922688617614780272749272532735332087722050248290439805357252934485396916732616296525562444171070403644523205376612030698097742203849109891163420002942686391262940899968359361422799215630209260853784006029276201582904854121273061432920577241084508811998445980585081862118959454373136233868713724345188245085266911761893686226134391239428581018323040617521393637008864831120372450691503842760400892108318593331428373963419455373662991999260224562735208432784743974889454129569633480045545436777087656493867494186220630203916064714633425193524398736367167580109669522189473888234789178869421247266077873187858765440370178233487621876843294508898536796820002989917535547101652398226939030106429088630778116910890394413599370640947900042748244467674907605715019661342842445625877815880658336519688368002615682690643803583971143077850092295911285130782499480254847572841385838447717278697784880200440758436406087483041246684247260809887495770752625831732346309999001696591492998265696207547782521811595983618092183275782185116628525391759154529848705796605437928745727695634738176955870839232873384304197036426738661827510747100556281104991924102119147111900266586185076164733544919806786774491186646520397963560748677620316926007077818775665228040347050277754124619045212302583609037790576451715496122742442722329661926342171451202558490139744536092802395960526755611280506951829281764987239259619873810076119529269489122949868253995138271372365155409003756742980960097605181867723668599016319167438767009548597624236579228025256379231827432538591481680528979763906373878553901058411690765757194479150024704928557419096302784444253508464302179144289913151643414679434196774919022545109836271849530785294335664094673952709270983943118754293399908829000128466642263399724759280188775458775203861609976477659202059952791886556856498889127545801817397543808238586540764377491531456654733570535768187712331454504584722344158393094670591592120571109921957462917799721254571257803181247037825164691031360805585245239362326474667176331248934428120971568635045083305640389595484906677829061845911411138152877394268361331809430465275882786091857286437828225836631318014165335976981240102878370394555099306017583932706806596346344288244823913441170499503846747607014333116010329523788125847490689112792539781961134711340696973843610849786440990828161469458612981566135672609863838881504962920106785363792656439291800419513528885565796624543320647325196345825643542482812887875725969731266500136705303024609119113218596579743211723257569652762709256629870445370262380489854202413917608317376302565617537739861142282362502341719060969969161325585744566721021281777783372621791546432391116932038432527291612167186839404290566429175466626531619354298377457895176970570164919999895384608719344244038570133812591493108415614506101313824028462431892510298360539195410329136528927321055457113450293580885905644161777200407995768039419618374903948956077489262495343489601173980243485972650053702254806185330967262104722399932435976255237651044046011271292595822330550004191218722523702350690325517054273685830649973057374566643898093374021575959093885880692475199919703930329913694319069433306676948928717665026905031087863899061353503731466693462271154057245793473704328160552341569018846016005939227628206993317911508952312150688338660405098117996092009134150968937215941529577176869258447064326675826718593721115022076565402070460196810752844779806797063985523305272370482951667281558472412395713942987880114753271453167661211376299323626564763872889236564825312080979432479667520011401379076684967019581561881836921050556076825123405550655886946085859922153919807071873297443504348489327209507719204280582752182961598840344154906541698809990998717983717328469344834985665469586874161689631849703955490272261762441834532967906140333057631108569830828182029761532356208775287061550524823047511228671755362044281247442337636641359130909258973729553177070659983570384729584106559331012476544418176243951468605243367469758583146433537676875746924374046339478670242209193171428296445657867902044374372698434406666127132076406971459273714689078055723095310626858795565730534056022892725134811331869284500604109837942194441636047313020842952373463378652423331680295942163596997292248895289774352694527985556354677996610945167303044773215463671401274323870703153160555084995417574839452484387634380632171189919691436852165007758023297749049847067358791109705528679622248344334820772595915329432451216585065007044491853372923057339050325695001139918240954503296083890369606827374237212845141375719416994954398364838805828537120685337796524312163923718431487413882721506819899488127223549949297295027408259405136124584085889198118007185792353880837796847350030044341575851541455537118699994523396919531920788263988898544605435956013644842241077787406390408030795099565920704902345871852672146561663045604899669462231107927167228943103975960246487844715091582111487393425793862390231718408245121661223888477741537111333823049504116563891800679922165910091444181244581960453346335669897115137798670505901425471551424943072230187551123575984450156712780609462415344738926549597584980986135713398272419999933983730208509506531693132558343410328848162544353245153637636974182582912106026085869084945831653788707730114330886400911662322351638402941331286154592137098310607096039275564726122729371622967474458551607442698815019783301602917400919416657189528948703120465506724689722008969060405440765813329207746059042855279085582912047546288169731271234085571311810089247357898171345099086824096733718607594590296609200616228762209796040039521377711655493559339325175000834796471182853707802738896762410474109691600711206251382032571739247232606264057006991154946679480786355046640157002487172636881209473636099920977292264165916558949284503833269569414209365938116321537908060581427279995643391872477808820569901119264914462917834875526732917185276476324144205767990065730641312968953504066402565915853686814627387098505522678852692474165395337509052083765989612485221593430387727661424423760304890442349193428665042689132837335566511696142333497402318587048593607147974635865838224003424705635105745291520529641488350746445097899378817840132141113431894563113976618408268529914820626535570766694331273538910107981303869859432114573756668789943458938137308396042715312449073925048791311664055283343930930680787224867204593061017469142429463469998676340069150954093067744933302871132931264100964580366629552764198140746103155238042027256681307226845072695304117477763306359836252925504152167775338263703396604373258924322545298012224175639900413433934551242455107961635786653079979066712155512358901885162769331245296246480687409704948539222176466282535778695657957061121639059668509226746480687743038291648392621092072867607193112997127277627267654799932757415395997776595951934167255742234242119101792736002630944355316085577792401452213021978020612271697477456286905927283836898161509453680626603483860219860311392511539908399281552638888253404862769641010912944094714528243549949642332171450864867597935070224451251833870003650245907542325522649781058704595473268253946671182721438583473379027958911853753107191680302999435264807293414272499083467317629525465779695676083888054437201764559276047505230929308908605796303744154946487768632081786673421999266605181997846947020431451272038813604989995773687876936371287721129785136960276106643832710876446011588783927755929570712122435124068406244414429878934310872887972136100098915186148882544935968016864378213410431702117684118008563366203060402996704011650242596168070584656809671217712013925063909979566491317491928620002245696653350280633695271239841742510648893771149365433966645401712774496698606678881918414390158513055275237502076700602206073009799346408914021683287769376710352680724656920958328224513898887383475437658557761350535333185077236410284310503465317957826706808893508738629039310452467336996234537180305327445311808180950287924872074900047440323155169688472945920114453671806598359245113593144467742294908320204682472106181851163950676500641575506807178088488367875811498942479827790906198181105866346300416130953273837076027651304309862257657788384351150888673072630827836487299099590558956926316034647485829395164383937423497143706215218033487168021435997201472579787092178262521741966134043522200160129033551647996489889817759873923960579351924978669567028860964283414120441742381202500182898476075029237240564291141586678387363830584555767207232674509315060685550830696969905460034563438199336713891867905215678642480919516446961222907480349572881999622804937006500951480240088424683063370112240110568887483813799409811064048352908034308795630542912988472790053061833062984074266151348981109410153606890639061777014924998324610360203635718241243320953910327386362630539631436231712880580819551768386380655736412540315400507144337933875149660939740128733213311943216198341686637512759953173089000217942762846855427410589759506239976891787416882928027634316647983323135596170764842188166054380362188784831400720024830604886800223609818365735925419536068497441142997980730407143889069994242369887951115641270459756144919859185717457138006097989481008440722080096584404574595030375629842654276450445686547011438469585964628606777024501733470757309140823444539861840632269665254416556802833271159055149929162656713668998958788475323006763683811142827241991459607093488203951734286212504027688198918326867806102729716967716918591661938198011026548118525122201638354529521558831939927693859499298244613356226406266717590503420093259145407329208591363034736717706431165209256319759580596454476637844272859765764012393104159227868952497251418240044250069577725243178270257713929619615056895443878173418136535437811460862874923487488052961485012590273612750607831202238303980404613097264064558857404385007941659627487574946251630240316761329688399196141239281649729275628069423464268744966268858941584320742145323419920788276319250574817868463995024559685291004615873505709927592208808141125600687062621130871505979489851935457418753327296765927252525592601417033718459542252858091438539763760724821822684659500452915971077699861795773391514682615727756058530670278975397272187495050484679805074241092011280294493669799432731043706273275712046640407698078913023995587745296791013923759017069841706451453442864855209557850573499280963035008121544861384283257474149221805372601477790902270523753387100514067389295768151897025487119861053988728076536947387279297414589253808010973448110873195200695712207945433619184907188600626278147659260994138452679912700487422235214111454211763539176857805759502161089926663104287425221518568214303019683238839051010413553706914069025622804876834280453721583092604077213770389093356915564463251965522499164857506033216478836713551665933030932844176763592799625034691727272869886578110291459334878303649961771193508068089563927270601678273471558898226420634185566423603108480883496834294640044845418647891290198820557084603116033876125152053564627171652725855261917003881775815371299020409508230482412207339995757600113817661190703717078812243043468869349049138350693717076159421207025525658758231827587374635915056556041123240790529509741463377846349042260681173855390416103176791013465894802076996635096128422920756035047388273420193510835991308036518027120392158083594993544766336521340812119581199841854395929915609746358140776317699905465614996177957748846933564392367259162653114731994898358855721777872396053948054436935493588559997496311346018629865995961165922797841717012249748420648487507633494504360483705934152022917424035510172999367850415875847939432701377643343193840036126715929711777576679923175256165802088404203248795679284382419309759759901679338586133554709275546526649609957749905297435605156030865434678732791645305817691641118578488910708173551928902714481164482109678947674608695918676114129459253688979187285372112318772922714349180472148987134208611834888671786612951586168257050478205386552799612777447208999602685877857919683425134220401125711623483567397826083599619622521139631650337311220726185905055579646875321479354426373156595670361394418731076544530055686851918166032829826361736913445700830423921935680934401961859469946381518597620437021898060986020801794317441100762913887048226001370819072493435457958208654669724496334887857208124969044517986887684426664532875053591859069427246766741115466256289476116616327904175884142372870551265134361142800186952690647649804919863677399245961244897709378036360990671299266820490418358231030365050092176561711776131950911488652561212915147603925707680821584927281707406837573745592772699529209254825445880471410679630634997658107644409862801900682016594621164514650278845774803899483647552780571311486171025580632363760063139361182658985453220261328196434342920577499834780261564179182747797014779073648929228486671668521578420824976655246765508197644478516314707376613519626400569373920343511738440366596819233211417417696870650370537249153530466159220361051560458924876186869817764013831068641260652233036992963979376565304581372477614205234766649854656125804109382732603958966167182097704829895256489524887228602870171140670028483271019600491697658370869562406072173898207528917125274186062271663966466600254629403829613628285756989467938098168004047552377470234860036412497120943019166455169971001849621981183991276294810512237683265677614200321356496924863517361953922060002058549119372481043514238697835348264572731364231761816404510781543705970649910063010039022914013773878917960895104424604475602951255563807043783448536691841169850510445898382072636406381317216621201915229874575929037724051426740433083885049088748702720363796865054555123234385609450507098316499066288698140680910212859283322139004903436906586543206636852885203417769520272937267804271627659208085736163612221088218270866520301447202498246319615204673746043186568254560354229775966115318534108519771267531314100187596088130281050387506947924191087362669996980312240652060746205263827179791939815707004541512782810783226232827231432654665174370581799551971238322069282134963319184497440385928690401674621642080055520325341350377725679982961580141636299437796079161268695688885931597366805048492542102927488661512771470671561620145005987515882419739879050698746065195308933084671936639112795695724130233461345871419670399038061974428267461479277406975074319572867325531464383238055449682751930452049158762829307763841508574143327707659632575341191493212445854288342083839938194474371197468673120064015986022258206948511899756147325710502646717614470257178227923525744574329137968591328126527188680064920367827351404135244836151176847143697690402529572929488629597540869530820391547761478438184400010737401926692991433148699502865038389061742725344295102817995582600863350661265954948802734058644705800860437339016910896534538528979955811761457132015866671908204930917528000075936356361871339569380963643468389127163879258631905189574117620534212101630559507280635292913954876179968942884705823208354075115799951449616521576614307360274973600782314683928286509492861391107634043578545107451714210819334387926255307232544052452406323225711158647649577517066705289338712296144499868821250470881448984055501267787509177584749338567143459022137206431831402440373099367551626087696796280800478154876598885422069315504186582431868198151186312671775466776984895917136993138782169535995120935446172711409716546140738057838430855180266978880734422600124066730545798281361703653420455585010889996982124055581202075768287554262798995205701165952253754275179909204719316900587957216738873163876451779377421827968349088925239290783486648468374886405169100893647185974230880185770297425829691506976747643834134166710039046677898641566118707171636919954587490693949750860510638283991086625061644255276159988481594762172657989521273041502017049726350933861382027592437171298011808088612506294896667379553792186266106509986563806696675332008654939547258787309449621261918599039529630221550839259635155533269124725280277041774450538970474265626118096924713160832258392185386468652638428680054409025841278940238280600972702966426306957972984417915711758500051642580488457727968792464670168542233303790853383401991022325960744629058568733522247682031396752086583387285883136297710134907621431287169674472520844261093837795498072313834670882418035331401465402204778402162368530146519152827096090994932038237212438582371607116282372952003538652549523390995946503499098193057097155887436231807803455242339069156804421345264759771292542019470633412999533710066274367484595510366542448761703641202223952480773482511830786034329225539320009697420030237973155038735191310671189032892191274408140992571730382721801902637797055974223016501161268917923100069469698988883500217166148989727865153962810819560023569471498175504575295914219396999803409037708512547953185984555815678571421558711005244075453647494309850952934773845437356955743875585350997332164675444542081992552380265635435598974215935413647395334299162052535068141723562915432143871148654766826123745723487577436159808471968929003823273142607525207611270677593616782951054562388628341885061427262103338888287866254548382931808863690731125433280793870533632320712237261689872831294807493771416263672212882549133256075414882785433165488697776731028981998022611814563799046267557994414454175608387193075794500400024068228469977983869087560234623007511786351289255212601133329046473038943174850181783847875707808261391947049694486350776782402283146190679615886865060384165615671132478163327854129328651635627541810312120869733518724495037012093834687374701968133901933888727253649622193733540788912593124162574712202824669914247012934570503053201732097308029719014723761874207825286887666287030926259489069713967131815619471034604350844777975369523533764629124563773857811441556137514612470910853064351641997856533157479718305794392967424197632587857965536180747876683989423628452729348805870023712614809914745101484873565084689865995400092841361422045785237941252237787517541666948343508034983315490116588695715565068328111415046379891538830064603413470797581334174883661817985641908623838914309809095892429224190181356256507309537549950942386362753560416739370118840258252998359657879239691213863187621903657759079717100768995964305082927059799333567379354347022707532250393991603387869249247742621891465287023741859855149239741132354655969278409340149217221961772393320967236850680250389057002369861273892652608333628649666578967312813569310871143347773405788880140342599904482213696405585122770934981246347715173011851114339820662055635868219647066932707054996246229245756778201760064034346581674130738041791087045942223286514297274210936640091895323023513474056844059611928584280458003648468608317078275440517995021881773922856222672299184344485029595621460638395140700925276915219912437545752956345364129230409500756166986415972390118369570525614867399568813470301187490315015274857805166510946912415199793525194198710581632292114801253155922685576264247913890868119455909923069576119487318437481815235934208717546619606601693720591439005561332537850251065820187704153423424137776071109117172979929427677334512860269930013622040450280371860848930931890772521143642044394775976817282308355206606361454807790665304000196631028083189285575768949798363849398510038519433815205559034290061365718041491976246810514011369771170014306096304906652420436380306731902169911995867451864250299181101069276815179865064786049237132235846018872211957214926798791720770708863935736757792845555297778666209122445665882793544560135075892312807014119435900596611566191066088787720201700970953402131038745583971310288806791134302583655402407517835494186148730526581081992143288256157186181441529795071765938541591980228871226072797197060191766973688676945156913674698191546090680158799060712168040162190215995824412434459485823860467643905021775997054121993270034906130607324533695342159728163379425429290038239728840637503714949546761110770787017942310979601241528242673409891729965565372986370637142343743075790267791073897997025999498492525636954455292695948563148600974047320800610480246500116355971940563454168312469062145682903996160143908311658500609951897061657114645823203188312347200911368147778914350733562339485915821254113293342650829986701691868548097426417680082724480536963183393664003676200452168540968326125496776495173470368708492019751853005331064079942757491432543673163931428573511917900707294460976351901082956844807361226127485884951681855646257780297998066076300414283693049424548826592860642098164669242745127842739687855231929978741861741820434001367898609790204359100495064368403348305378156835500761233599496960466683331558972151784456543935118549329718154425609980251642175589877395155815765041459528292401475606766716077257320917665757257870811085391064418278536726471389340060991098416829578372896416151669447730262665980320088500339399862757996494890893747719005336366379490167110645444233267389258659621350178729522426578017064898010444241486847332567259853202750099599859902241577479465517603961613558455924433363825775819722162381902299143632739350054605295824877990278058950387165267486474648401641206200671742321386545373681517173151471281293662984006397839051943659903821953034054259839255673855946044532918079957884027050164766277325611009839430326326024853949491666751644707925422166133126273016669894248716681527583383846226740177916450210943074969215018333894510822097070692661780604415303268138753685062905652074869064204548217391897089565868820575162331831337261924706570344037083529576511270942382198810467815949489782113407629118712581964057568343730944945476030523829370331182382347397448319398334044915854991780960855313915790360427423199710817645223717778754849662435459947884910093648924386995504221894422923698112500399681075737969545273463813151934291873013935494767630992208551834167368687113312549030627959715385742090540284372527070610351320932199640571375210579786169879475993419464231238252079069347073117913671900437935101029015694598432361391844461137136288206585402631613729741527428750501359451828440162086477301741343899366712424604548375992577972084463206768158377402010968681598212919228479161087182132451246007576417881520513016396631952162931032392508006813045991509870842258895048103568637553836158279400395172646664816827504682849812507758673635286827552610086016894158925191480028439477142823873343848922353500041937839593876812605512823597867058153498300477360209224669701673993764313813135450337406531581187862351609325300531583275368354550547003549551307700582717065244991395099906803107461898557235648628320192042744252900345602519317870450997479868278518655491589527946021864070994130393994670701725360692936399543835006298639965522938332666032831217444918193875067027500441699153311109474032849247033181917775467375102269607591982528649128742506732189157765152077665522495166414981573450557530249039165543955645778023636478253236858860588466032036245939959508940575565348504407460304605760329142011517273193141951824969177267065488980803240429457534345491851930446898672029996651378409809320381916499277117698642385446920737559254372736706280952459827513864960949120558065115297142404592298316710525870151668778748090785518706067771042009918838849228740644703898879585526453013498269464082748773734160758686961879128657493678972453687760026405297415573292856524741917040426096210147339416756449258396460368328519095574214154232230008600948895624046603081707565770967768819430646369336192179304328517519730822189201018984419521231983625100652514099250868093328565403226301473085180110319141278331251346791359960078773799776051499339379371386482403782669261866354013156200659903796256207543132072389020159872753647097599964604804377616460673149875621274089608693313131782598799917253882719967260386991192317922375490395220008550984559061201340371510273904179634995147322356814393421002079886088271527058014218388478866493362423443834373883079528966553158896946470161297836206273454889796436839503291297127233711160073497245743422694237972174823508886176901871791924892850705160907052837354592292710054897204181846827706026802302623732327263229981885381193905620766357216880240371840036269766440618973876843840703522504295305977673462304753122475781807849815409477641460216537945804475490288280526030017783373758093695742055707389134483157618118409336287660379768732967035348598856695112091082454223905533065298976219729947044356413902343326392817529678507097668102208256754207386288893404712689507486777451842179678863514022246790559026516844644057057524632336143278996261959087023879464709436304046904401690159713821713737234012234368956014781996945315902758752383875485037004720751187566649944635051004009544978564748942843238352436624059367391681872109761695974586248934382013912623681817167138426173072548681843042806739364856843177966268238066276227881167225335654988452899049724948083207893628131813061548073093724635473272808093720358669042009810492212770107612515835800169495180168230517029573862419421626048947063748785017118418325670261629614383318881243405219757215055124383378459069438445638535757128164474915175015814292798552170299011739807378321131529393359610198412303347446165829706005124060709535853087578811994804770660716674722282170748216550852624310573149566594590689286801464822700689104682550857484643010366483129818087790318148319355313401177638741047526217378260385729073305885935030074968428392586246160989421524707182507157823294642426592270881498166642796640797540119026467316435564953169008431993350752114164018169434243296452638485923639936852793369596042470573876128732276776275277765870658261847196271959051488489584307647032788451522180997499258597750490597744920555569762958771938133678463153434663075425504482826459742974157483031795164582150026566332503071495111272960785331584930466734440569241967002503311925708993546818874869744753593088691931438580663128716890435518845195238547438187057426497790753347496481737522605773096319319865985867242835121698821714178800299549091375361877569348546387739047714316112779846172363188756373545895188616629573595579081868554055615449284420583486706212738694596451362607279878429432896100317930447929266355686429930809704055978770286128507948693014783529984823683930285519689376487994208051265333892298109296768111482023247198944894841849427108744145363170380175010932161362193707228271424143714989485614061587311873552770738107701414134814985191346126094456962331364209181041574732943451323845602869287949730122282121717723258718256850582366253210910039857594428728975289086807110896564225139903268881304273108687373410679139202969816405580149744163782759478566587151682195159915718416021190264899608660425557227348514660471148595321070460955643981172610782127582845265283220759358499643621619009369879014828483197591727271156909945293497721911479837144829955384656826229214391505475883431655200025754975780059617391499546663418968533329097788906029139082359016346904614890485117035584948594432744951666802972245375887314421969359776339617904383594675043258211633713640969301374038156086042391300643425707128294833768161022576588141188084448365295342220065313425519551138934952627809551326350608643052812409193173304659316657300945571988896988898399408559932826301870982142768053285656086156789068918516456061829436850139897134649635093998808866958125918306616835494155213628695196409459081028752804939143243921741712641986692708476845134092030470457425322436984484870025690494883581898480337720709075660805717734756231012255101732048042252168793407858156324905992063414911890303796675886034486660087598110322066240636758011673195253478280124381166378142694606765613212191926167615575653187451108229168903720303642286286633912039001253254690111231301709403322021698745839316602622686836337036628558045028948505824971305042707709963319282609501129348922792454366847470684332892062946676534690463337767490560832556366299002319572889748298605948412426805376481414793135904480205088610371713192191180118024538900434465642350798451035549490548004606060246339960838891881464454598031841472642141932301878598131580663439468432544850513709178442288778373717545429682621681088245732604555274828398709911205772905001098232015440241154786356121321274586319791941455207139030346063489343415738045426744258218831800743217209094285316559365744833294315565926913031405951938010092405313972861494570979204077119783161520773909424871428392234384338345922611001977552406411353509474017168520186240369749152447098881731526220684190219822506143345445817741438429722480370541261025327947765266007327286451750301081939602739129224327731434987873221526644672031610265256463121383466870894308235766562159824494458989850254897306474365001784280253314628556853124308488264154267256906128928866267488492747738775404592284397312476986457879164853673343913486181142086417678620302885764754790183335440530911612324809348543500735394090815780045847461250348844950080545827535655441733039034855600924437376325868123023791172543978249216753470897455093419961302682590617912426542818158023389100182557452203721584280960477159088422402070089738172553211937957310889293660483818981084309229310433192759386872891496268113620922698410095631139874711220203358434626782209239187945042684397010057011601985575968637980069486738094259472921514153001603038986397879558665761874056133785546619239741909333630333120986470622343170273353374528249398057050020449311052727262058696528718734161808530170623154223858362195450774246198153872963606672170926139631828968631344856919301550254612772324477954492111900509451376155903516788431155840920683474373033058371184807013546508693114949692565192022411563980558425565493103792314834570172490531258413108697092492929197104956487740482497247296078307414599113444237483571650626259065385309224732479470112704187030646613122362411425475519000672792438507021500127915988682474547444759795574704649347252421797567675732570639433881394848577751763043423748101022203826043247211197595847949879493147181681393167835354478887209623963551028724283607898850855493883573317109105109483259286659273620979493366452741925342745218081095378004470003689090159097202301409926436126657530484584814396745260262735451257208774443261978664432814339019693245203275194075736166959655614845297555262508066557187887666197754863147089151816935560086174237292583338061131034443977577651473007054353376974735323032308862810477070054797984977509398510398285537721205086505630935467540623952296795977646221807435905165302969690932951695743343063846223011996022054403850027640581222251124833945060703142436127983704606896802796406513971305781324941694863338149399233755068857983837844259963148056444437569145808477491575034342214426520722956432836329335547586800102877313149594178320337744541677925737075855549040609437853693017162363667248720139027196664215298733642630667159707708549164067956303197596236431169549760638024957950667720936549757655665325428379456833581288225543724061114364885419154764457693009005391472897144950584506276242042046154758024727352445840439370096628695696115063930891681304802999560666118723362579944470938657688742541209777275206150381852608760005429486621893756153042579108767218329717591243359056676840659369058361264521805799261536398523228297066812421473112842848732184551236603057877019854980482283525106263916674408053888892347682404471138962407693963307787415222989539973507111452817474556783224320281901427776940501575013697651223798769731186137955386606291029130789322622476421147413235468640754195267398666115343702112403111689777696946309633186439675702152530044930610492049422916937188284862933524755721547497109621040691872931826146092521610240561279879770804822162804299544130285215197859997648537843290352253373713172374737391634291387168329293415578984773131647989271727377661838049580013929080070338358316663402104736631114229217350143696550699839381531684253583103377454981134166493719677479783175215497117929349964476376563289254272909759207235158932556214304488960877742314793224667724216203360754016891319644177364121378476848676470437509849687394444761265477246265416286975790950328732521877053889181980119783089137900786949772948558827991559839569427232981408458806401006911491160423298525786049542646634891567609049219561897383185260581578386156133169091279043736106415580260827804422012244982483420900376250043459168820835650115861395802498965303983708564148089146272651254100610115752486909175121980578137768298633068996538964721167078897957691664353984930172807658027159868628789806795683786447747696366277680258213695718717909336428202750412785974063560895436138145185949755354472717082438587529485181089381718007165758417041557025147430898681487677428698174016494657859712167454244350014647599990910122855710486809421488023112100774513433168163513749292316341575773827336374426406980555510473753118242768204488355404777844569908489023671971148924507019225208615330905397498593687748096841488816068907559118796539517812006229807247636873314774240433925282358131900100819541154580856835623863152591403266616340882964287794401647212541678416984272197897061989336251725405855261816908665341741844795838141080345066082436369683904703231720579600755974952911802717852254238566076005253650420466968421422453445589027555234462714805718202410217485446886677573732170084572324132593722541492816819715750850212003674078653205389579709621873395793577965266515151260145887357739782638745260539264595099965189860818234675166062783363032096126419417786988333717022301863348359878363654447431114655403126067581808378055630602274822607407117596410486818719502307288186322948814654814814244979959593186668975869663022876811080170559497713934136484633559671066769729051594931878083103485745146694136191655963749282699140518240367188475995534524763853195205065771713131654417391663508312451488730674471260524457802352258049128778726673184847927540400328878779276300599306021065785936546272021344723007832018502533862955062939946705241546525381460596462839157227924789328304761758297428641639507020303238151630891706890985980096074381731841274586012731939003305133043563260768544110912038663435249399051132113949252633273544250582495614315470546846340267646770006026767016006109159434462219773732343448861410496431513476035269652143769359543780915586674310828976216918230007109252096972198499101530347267367743066800156702234797819336470619630201161332930302129583775517969918733279506973327820688789880322406503056781061723172201940406399235025214964080471539466279538288795673078432188791091081170616915104385604446383815400520414856872048797696072366396813109834571451082061401992860437086917329269970021124089555637198751015020260044771861487717694777626908195413019488228119466165803255342694035733047359251906964087677356490088605076526854976151389023088833536182288657769039746012497920694154075111671806790651672694514004909107560361533467238691733192679185188592034685143236613340593998039816213628255265711307569846495734596909394977419146365339522006922483999742956029160649422936292685471856714712749249498889098493932023265693544621393732202559429781263549756941064877507958996248762788120229330493879303679328392672396336286000608181853886632203174113182529410444026032088550609321539472318391694493482169414333617185196298493613833741165729114176081409899260239296252384854428984075445475764281097932372164527150104810500531248312942513251558075824971560956205541108061507904342515282398607346748124538996272702434375628190386053307953898462770032986041373175815087341457210045558107831680134408055723988905648203248037999831621781805091494452462686258764524463177006223360706437282651091853525237325792892496813934039645885023640712457244518543041709100824274597474126164592767097258381402068781756816616530473279891110297576245507979712878926380354983321653301708398530856826810798780774333138234956663821653203045286764045336026215109288870741448741728536327160083087225060937355876351621887115652936510349591361848607545415619593760905800378651019580724645641271752288407254060883391498106289058285308988287786624779366445642337367242192270866101592580951861801175469683112418102712328418578255495473131789140006497646493197573530315550752161502182801481698801925886549871055787024430320946768613787541808297838943779883282976326860123494432494721003382755056137478354785795702472478962356832730876246964458455923315854940877970999563036972155631224476599310823246429898785466928275473299853637540399000318949219984421505163646305890464076062380502650265666720339362392343238490860006946281601907632786254735167639134645949568646943121544262194338577487216174828512228128170093325158419469683374137946401796619341628479854542819441035841179825960216670584847078397956244043277919999506735018706085712844852577908978722085108373652083687324516515419198313643204647309179271697708803077076475293192612824103775199471172076820753498738243262843787250634403177700435448129121175381186033911219830579774950965075368720438502620227083844750702437365841189597825948251570991310241881898654026719731639538102345651874716564247212471927612952848802970917589434713857750786417091234864139561801110487010386392489566051890866639706316971821257165419210220579577877465937557664981224793944892966392670324338290820276646299378850564445471694737911176151138284599222719830579511645433249122606346853275062014426723277951151377541345886535749200783448909132905940658169240658209640576930719837530689543274239586020372065380816741393963565559278853800247875253997372707284729506756518928251695208528666532794370778246173226982164588791453603804279617032272690694409539171987198610282280455877221597314153850885713522744271767573433527113170014129064043983502902429004518263110126780629238616691655271667636264553138453953628561436532921717526634437929564999775329546895625087030540943833850151495950168686662750405604171974692580768152807537683900837424948448957327415166975662257484471388212680280799211594187058145316671463323374449658590976680732630996478482670078212624895379967578721427095333764177267738974942261179609167181084883072245717701563576845440243904750673736399837000183055149369658054650527244235626888744461905503131391600323084918391137393565394354794601162052146305606573121691228184914159795158865363979295784308694891716909889827392569339675850625656104461549893712693381994080843086585155389760954346298049923136475241462539311788423605685566480921982920361831641423387413502826265882284574861976323579713417654693613546240584436939335978606244736621888262586597073159918567547865374649539085882720127280560844512068567081081852430457327723910664514736767529262397196960626364685387981711338919030706276728079362444015518112108388152643688345991704467887553491063884848596735583277770447514221816714748300258996549633252284542240441772350454160675109889161223481897615952326095472478046826737811415767207256622991325116605893698067057207414268045765129041658311619425010846294759454411819029162842228301433345586783956894965798351979513910651188682317231175202230709174753904326364671300112940496339127608293603904127771814010513951024590085291189269098913467030186297748863300659858737578838871933992844605940759477282034541029817488297955224205963866909581545211694852943324711010085623165352440713731760154515221450748612070797515349722750345906426159616988742127767122881709765468879786759455968048387542621952646338283857066631917840412141362092648246959142894715014642507009139028796906031350105070722184264525456096641214363108081335769513581183734076838942620904259086163437723417529772103368933070724352324173086253756860778343607586273046202894351504832532561580930320852260018180690526948332945142183579898175655298916851376331472359035989819626450516546621226585710254196751299892645401046269895350742800158959319666530751886919890584215933210239376345540023698477076226860818734847367145367067645656246570623800606890520046925737078793792593381183812725568154599257831053594408410685585135261660902320505370137139142723479176163361194897579855940732439797114694682237887373899233869644824415407424736728596211842455642182906236966096086031092202328908127317712378599665008565748327130122305908619133621939626879737588628259995784180251352875615288529297316811722733237496894118945516671172140745731739600159186510604976184992169072506955227796352894875046245332252000590818055771399900017540049654892113106299901446263278368353136502014623623541564484091572697255093281661507115452719804062254962342622569011307976259461649972655765848582955081309228100298003327060898342078318798964540970266203989043507827891429338112905004450372849681748398940237423044368577986087989418680381251012068223410699078848001065769272983654848828265606056747914870382440595750719938907068629954513349426754817467582006526526298516123604440566273344781938148840353767642303719950162940868987570735600128533430482558948866437455610858069076055573634724620465041911426588600927571810829804392297362960938584443232346803327892536495472205783874890306513679703223931935088527944318547276675698074955142127012892818769647080225218885620632184248156597654259786171079524098350341041392788906926408887991312379456247696469748591266230765972193232176198912697132878264871153399669757289407719252594540555864920694569950168327058500039870612454078665387646210603719559530926505596358883779407638532303269721935821043902816197210876427828710373002972563773585639865256201728518807652588759211214439592835676904321647477571231243788758712233563686184644735146341413529068081025024168023917369825984314520351856139795576164479850924364060703518542722578849695281384074651367485186156828814112304953301318584766659140321101470436312773010248192257120711530478271315403791524611626157828542255306662784476717320846161019062497752100989115208548296562059525132328081534083642362887259376758876227393137228799924203658982711228954135638806418331213885044265018580171220021581815995788832166004474526434685153937580010482529749266544931569763721062653868468623794911391452883226534447317386906106892095332282327835853155408947074992905954747516189785821500448885398319883336230550406677850752381065291109660554839374608020476408242564933497953269265839615616768536580243978084399469964167004116078166295425318487893028585727164128458650997457909209414630732061596731603211118554545815092513634947496424656760349456309977814847110100955264380980493524775752948011147359759187545459649751887909895563308672436341122404547923860559743178988277374809358057820776365732304381667894434426157938092373983710559501461635404110163656341055384223364918200364033568213065025915971938948917735556540468547024621686277525665958699284927087404393985434443829494883906306815391323637078436696978944066346498016905036726569346990459583557701705003715598058817963524710500670034559123209658542591458596863180205505961837454157849747615230671021481659036707500604217485110378080139178500332402332983198146050533556284461972378704597202256587424024705501189232538581601692320445785125348648284651616445781734661918375262903311278538932614307197210597990026876139728638771373878603831215121120086144857091617667178082259256727129126711602952617524054898573049447093075367390834831666937534291221262345472679073959726074127481557000699449559415313875920716129866451057493966178533697347436383637629832729720604914935411187738404776905125472054120425676096951239882971694893737154461199017777275909484246071401292802582678457448107716999111937358099266269633644448348294397270124548946462362135033716719430388741809745784812040908147926505274990895516361172887704176781438597239142223150565835620862093670894364561515544979599647229261015186920507849393869900088508998659519202263344373271457192402965436469394685966980801925129875564968292294515865276176822923541650502291483932354736554909916815949185836475377072640008657819760714170275744175233347445490062229894333742682962847905276195317985504684759676361846206027897668326304513290961056872821992986311343304587130095897483608426342306135860168735806959890374788446855553635802744694115837202300904822858170757968101392457121019151154207598104192337835743335281306246783699506516251537155102263336854471610549987806753254394816313671728730113945149781881525401646631500111023538760511148502316369317430484141953983912863010111324589837670784578394905877460136163699551683080704059390015972707016424168276297676697066056156117827776235517805225250855067330271337612931607492768392148571382470505640544580805222242826471561681939703741588249388094189993066706613823961631130288652956588304410600417081948047910878664793978324865808169081237963613067552140811115884875788026322574924635734353022796097584853933916592422502029817544414021958840312676134044349435081392641148046399328350698497737138783396550421397514188459623321976492603325791782755960994832367068649901114682010743189490814533070292144348642447118907679572924657146366119916769647675303302055167822283570645710884732838070220444463926132618523417038407813136021202524456800669258257026466150882984991068339914823957278580716565631229503624483023580980585058976251959406769883911528561266039292689453647806648832811624400254210428808057588619354234328441920925069046160523319175966310159195357401586884985417460345701411229824284107976422098471585617850369347371419510012965038199992748211784369638293136420208682897372559272216617107442054770624647403682691559236604435250777131389386244788825727607851809556577017852895825187133363846680345296727186480495901214531628884407986159403272224193356148759062298599926499297374118456941345839724976825590100107254038681973518162139439914705628115389649863797043535276954670367252807167083392093568041675632007737512467232449093508065065088325461430245917818202647748646160953601345538594352446932238558633797466886583437935662233284929516522562746014836199536634103602287977986835520287579084627400900331637241965518532225380891588066962065057015554743238878932485552955431190152118936195536601887122244340118726055772987336734101848496766524799066744674230396355968413512380504124549702255654793359692713549179531206714280042155726936039138516289725616811172633854884617047503660435769242337736184987989280630783931195228551883864027633036091272615406091534099931964461326072392822378540304817682702386750273949820201258162471235926545647967369841900158971097892773195761195618704746317885650279036476477283309751696381374457823148563223929189614844146540468514600994628708899714970994437217385371359165250137661585261963066547434191883230833752346274787131683225357088807615297323274616260820930989853112663111324629290968042218826398517937032562586170337243203968574591903015038686524614344239937015508120624812364628952255062505726921563809430765181046586362551846350391338975431301325032856719613679056069482254416283247141471531456051061959808818298422633785129160485633391578815157463420043643810817066382568322088080700147214756073526881007212345810625460845573204899696270644424361643824217540215177186749781803333501034749212811476205310497476871321143315604274073049928913902522588353878973568726876046760334288938439099133760186133473474633374814718260098464415759316562117712083059083352940614153880997516154537115363301421612668460948672036198993644826236674676087950931331845594430891082183461193790473588842399987056517693746907220047359947760911475035245579787427323098831194618109506051138868763438803649472595449221459081855866573748849773729642416554366436178234084338005094464134214590733522770329373236817788771532115452866798474495344979786960678521135853842149015694172381560612164249650656871308062704721988567476154417776565422830705407248115078321628575213845035088450284358377607727004347890291578225410141569472712370110181976704646766518329235657625570241692546330759471312765445629601520927367009321425939715136028780305041566802772588076795387886919305581833815749253753809692981200152458124233696494048226241122084476629756610312458621174633952817763622303195485846305594043382460495707591280346794866189752800714072698038489856987901989931331113005439480077573137102957230039598530597065786123762851764163589174820405485727993493367426533157875813329167344006991836875063448625968728253931816274102275916976829416716863732160122137302217747966098274233977730058113677640280923105335337490084499596581135289973313806626792625544187416208790982160084802006089070071413911739519949391082766278187569141649108644917132691051951293050314815775416386074848405091910337277784456551690479969790221123212386649606946370978552428383529652398363487716525703150797726678564497455876067310790469861977727085629713621655854903372116107991107429169177525049265583819719306744131384405098729655402288024855051298917486987732715497341748500617482938391511341325742320542507988429092032058910296519590715381344216868011888296239237999742398576929521987858107583109911973183988396365088801184367617075693527772641060778730718606218712528256539215947343753788872756603044154953595280461936218952023197588147723081862331768532494209527229800913436973381012275298394447097756857390132312232011830821240570093194248435839895566729944361743187192917226716049843884806740685484769623141060873080482492211315099867052948508223273668449055767112222879395228066534303239683288805653239857118081625696911797309658210565953655971399341404097565084352310780898110602542505153206387985951437643732161084335565810215170755750298557979209991209980289154823585513615896291274701667533401305656064626445859606379648936218331352768191648390326276723996621394117977491346261301479183992344167958388810520861591428272890595265872267585679055103881732087935136585592828010120405087042123956709950132159793353102351937574499239324238131303463806653001165011620624391237656851201158630095141466590867896304190130545062084201224669248316250210437851433376575508257740012438237448721684907889079327414463088721420103798549068714179879108143412845176706306393992453277880681221049248851828305462080547617872450675956478277715859438626401826667351324439308329534417941486433286389791966431543149681033031210723885886168204166328191084080300942021475106163626370828453387810139104043693879232359459958456922656425200010464740045016084436288752737777328116330685841709888254373866491539242382905540966000961767833357353334008804549231758532951495899354539396973185385655366082773907159027745066639116420326575749825517284319061878924168990340879137918734495280674682814480236095328858886935120839155152860825892998283286518930392763435232661490168273427358254884429716566092922022672723616446178865012680660546269183759149444424114996232455529665987659999537463532927106619046346495892519281507976397863341324855215511464481254715616036938079662753299057794884039328251638031359208841334810165128793866321012597169941141027133777751643614363787824274571560310320439245459532841162883064566389963790953873930773472834405937954453641284697749736676526391251146292739068222142851770444770637419569441266268450829030241663228702470103709091318541314605437530422734085876062837322975576836070944370712715563002119131964871653244798012635819006933467530973845486544778074728090858403996189904288544665496119001480884419518057019558671569364750882883273122622280631010782127771665017608453792559360197813131464811644580569921034948559325728853869437753745854607597183585680402140580959053167648680986825679299960385029641093986508247198723726100339987982205786963272848180481115229345643493174258206613681368778624667775679204530940477170765922359006286171250103752717237359800195882558756126861745818766675793215867673007380461370971867913396668189385451569485464928067867364716358131161800426724523696612827188957665247907773244798701793261471058655038425091108711199489889424684260911206299383959889167189211952325960203671974181005092245900420642438295856589247774647695423854265905552548969995847066712741318614114380778876525100396134845256351373246825226906437494360258273900668841308308844315692502197030725089795844233022143349882058835537507343915322601850279874366861457215781933111405074618835647799835422233116050398903735562706965298750323207257868706164162339607579618294626458266903273052616507450416427326181191988802030805064076247633417381323449848187634626982038420886303542893030011548227247346750511925491959836075649647794525299837589917293300368500493999976114866241384257289799719466714454283209638241493442947209496579991591134045780593934653664726009332048617604891648998282865878088368390599942341702096897036353743820073643221806956265053764211990119969010464869372792527560966449822330222571298174408655092615201881712534955085980459720437250768053671324026048150743181393095306360204194043719694679805241974453972560060948353874156646187525462350386616677779507023814572364035365866384975383728268993152073483966081519785823402021167826093095603927380561147193885077798190216935489458634260140664090140454678312900399730028556523717086515538751534897236585031886528455663334960815904261022195551380567311668058886646130179577332060803023140022094774894232577065491960464475089961884469694191072294241069589293004507931969750582722857968068159474985254537200655009696371508713585053095666077256680999147363978202507728467643120097374062577856083002615450441001571366363200101788332587217911084692413476747051563115661952219561144696540035327926644258191993689455908779845866426011059103730147981936049252864087246520207546429791109436205630957223128374203504595159186298423408511914624428929480976686265011721259027340457293322867689011588855775672424868451583126440284555936018484153936350388664683987771382896940967823952012880351156443167260940184380321277192329561100308474333412259814494218373373005394823629407922963608396101929877945454399895453848152705518739766195389603645493481288985888977164064220290553953913392536012475553286509940861335311407432636548704685153621778926666579913842306383694790481394019361300602353348822161242621624685275604502702455005668564295239874125925331627407015996666291715797236822389614877345953238528382921052619700825283235775146791056568210462634727707042333489617936886973751348270886231504694189328506781163149436116656176128188237952433784931793386178573331997943183514561193536303978082259349280950231803281710470327192370141360934060481803788933854946399171212553112415776894189085788641598218283080208026628494273101493609375632515638830301275677317054502600131089277907533720087772782140226963062524844047506350923227384685152066789360110521579412601830726655629863903553466097820561836070496254402550708615935870864984988878826299461184644252305821469316072679625741620909491203549835940059874486929779082732216875622252738432939797734207822310883954384310166865741367877672084565391951564672421903600627583209346675730005015267707587165682257746914751807181118208723982006059863171666638628172830071087213844882663961838038429780305798234416784820090976224825028331377408940467906826688473704940903959044666607730351490676340068342387948165820690166953507648022332422330024050370119679185053832727994669980698855004759706664151881384609792760073956222836894404852850308879847539195788292986672150871598283964276029072583236175642213086979689864848646094164646425801732053686109354923371601219280701997607598583366367369679365199955218616954339032460209240268767066973129180487397413061403181150495408767089283411681221162103940748920670593117419071299908010741643576559250631573769617296198383078886429480040935201207278417870205184325292884519442546606845567066461803306255525707561592345674848551365067560889611240243845117530538374739366367500965761624856957296653569354725790210915823560544470785411363552704754967613970003598193431678184784061185307359828190822478620641361534464409745433124666951344367872986804219462050160890944056186099714142435870162763850983922253009371011305903812896352810107126281563736796633045687186302847872731986270331645615812428698843863493117093947917229298770216468964453010139906392973149124829202312169777767748126502202006766385753641873235046681530841095650334658679859710998594349353401673588775376012162091034688935090151701859772411147557695306423466010837177881139222683031597517380755238981996254077897506540041717719153211668378946643394775651579242499819135786505258705097770818824633470984946956560697771821944947088284321247947274999646176525491563426034178898939281739591747000756814845795875667311386529674834404475161510688813855412915162937363012031555786996648782368731059130732273801619685694750930412650954121186857481574980206369470706111523323431788722311065993850885989571455640296255239930068568252254534129910861540451299252739613008457166790930606682163083186518795984817803584294573198548028499380658772236325803608316715879610371590640832712351151369803229548761287610497919673763962532446629159680019661081846530179695395565487628321622590759148928767551387879366578910348708320712986435146377504057527653904789405772062451054114549796300503282054609673993280606453972047525273926679296751773058192425602632412033383051876054327101033559126863656763761936961300297069078290833258178912499764369075934386324731477521138657748681696137133674066023626763601547580872483816529040661889980324173172655259891834734043352741803887969138778776983256445612009256773749430007414245713804089790959972580255979690039867942889261820856919770837973594972598674938987345162417661149371562991063665162832353537201131742780983981002171392632499114196902780251761720960816924219873119554472852891949162779529206316658699914956766659322067521172926562755369319862316499409633723123584781739188812997602207819556513266461710702715201262575640832031008050279326230194691351519717023576325396932763520338656491858200269339641917121371477312928075964568774049198164635965070212615431248488468811037708169245226969270530013981307673084452443600128423232875701658130324014205715365225119401351001735930976278321506500388752410394283930199826238775021085980446730123731143026696390617274599055864127219437658252607081673133020009224703643931753415734230259825864153068311474496648987769685026869562405076439709232337415317311553918522474988730621760978439113465939956633865527744149064505900452115744321070084040683297139326587458695994032916522346541618564241801456168918734651017967874690100773226511336607314278174478292483122948330032184082216408703160555395828794465077514635751332123324203933380546699375291939001275010854652829978875074771737605652852829956319024133970904046575788719844935976287744802621122166098382790512172046375649767420064030466042360396669839225602058562648952553985365194517509337206506661110677229637584268294952492332723677124566598269770321785619520079302755250076203156997248988569387733486805934137318387846486411429250001480776638558333852284141602871799344160611871701310961994521861395998235748237535372859286560225818811924745176082598750393705933952231597294263950953115261223415450755543167645931370531507825649273596578598250136969850205413406483825231160026692761732857565680411497913560686983858045278651242149128121037481162490691640482021491584504691690946855095774162142319832427146890486563948386594684375985530326621391698054152146844265061196552150538020333521568213928440921586678972877262493310684746202541954092447183239311294582884227565771082002367179378241961888288960196234588650539140419810032433429737225206462228779349060920923108097664493172585273273306252604064991236481168547985587423056351817125567269551183021122723532924877398850659015370257137069182775557588829988519736285577962283155065003042836298205141720493737922192447694060660200578154893673528122906054179113571881236116527547297001604830730371335880863357864111049956536133480458188716064001412404285662902938328319572261312459468845984376417330759202549893070905013261501590981184754938960635625479967384021106887613232100373145365242636452402897196064461161140326059682267485168483346663776440710838408721287134445245119061620331619077196680395443384004617550304691307313169662498858431696990519270442832330953792938060490444605090553007476725586188315069042249474541078969672430432344546906761659289591988874915206757373240703572212838819309485726363757140340546555726753391933820943004469558462328343446299080198829624660969056882767897301048002777481280145146994527652095799416585899311456428660642112952940072485206912434998640836407057288574532901127056651487047656714590124931412504162559459076746946870400147400763308633696899044356230405874437384973694615855261602772565287739049960686068974447904835058864906922441549228206621411452178802752250722935110326694632132238691903180400146009127824381184460418398428889168520621690250978526807433121266305972200271350309436144697065330056497170517152365170430232112899175948735007878649680289544090719055924967505837340534048964659144950111476780572133464224943114617584415036500947092840690566449088824311640078157958331745006091065664736341952254836294393929845859520028121187376547761702789861018051574898402196777359203763789348800686362122007514483230037750755519657060032346611728381904456285652866353527948222403110201097065876766810494175475219297718889245411227131037996726909738411294209979769207535672809191489153464662410388604154021554518627638745956306941727080210988929776265060258042070264398051135792952114966722254121271644510442500571622307697110237368810812332543729323976402449191629340515917675658786704816312919803566044454474820044796027727592598002408963150841027036891158602640885103629897221988052162074433004210864036998092362873584143048154002463583341677200397469625580518137442256030941993062265478225018956416156712213849261199893911799005975694524890291316126104277145962396172171090817631331451705404217021237526938674182703521331188770748000472155854263182165475503880434211063101196750675248272055781837203718340271976487759299375559367752969670075241290125613201535910315910247362321386799145803636897841528813473775177899696539224416869493816982970618047937623974794205213614731022502453314529204977046893808892643417145860331792990041841014706879512265060503062595531670375329072238416330106124820606451009613603564184597878402706460478300161932947818557966252070532939354510088287583921888034612177225250101604092674708695120754555961761621471986102753415787962146532307273119282665255038625008970339673806203671604326740626628719414620178081716879031156045826495385938062638674705251093804964551458908455351080137635441416985746013512394222603462695310901657901112022587310620251222564283202244258682623081948151730613289937609855896254443257713935709185499464964112690535319274480742798293554800536360501577476635989507010941464647920964145639188269704811564128773703769247389358168773476442850389690251010010291589477673830948925210853103171859957436894146335740771969537589178889215795502754886861471973701843876070688559105069372036793286186260503260529909510363996594316177457370796661215646039636359209052580980103654649753543813984108698829350591587854933285267040471483885448154058288254086413369193027192610109618636904931167841843938137223267364510879624913117410805872827888233100935526734945831725044543007120135835971234022093777815856697528727603133497831807658667406652680233726944992042302013392432729435753373347142584066483504578711076767887136659116272676853506685395732644669804069766196954444381715459224867513638747173797006208481228197144838693616206005244617342191730316045752785951759640720269889298372450213496857420721488748446083918259488034830409298408156652298219546615878293680027956396271824342291587369272094485983191167315049154085510752440252271886262960956444165163280887888785426909143193904613733191018234816036184949779023474351750873110368305595146474521983140685945304807466101122294171056170452157001321666826365752222711444139423927185459347152067068590628009200799174305191639629248523746699763030359665321751144732825590901297196211122081012964227406702112658019724076305883885010790011104444978683203966873393624804253426349632985478361350323982256417627494696817470940117069115371832276517660505437194473274720018997997292327631645066128097706304338098299727606794643837128096389611437864374114536048091876846556098379564587681964285445303954366234077472006058838671372753342762534998024228486410723336923977503400342341183555717996111330804960435865374099934671880115936270463701475737446663274651299389532596357126202706632824031404579877330513950014183333127672410991608227057165676213672515586617081015720145544236245361586160609011560650426680526216556291915129967814536844004887449847457237300910142006244048969022038692422999169070772366316205534848954894674343601109366690132158977319760965037212647192078645471527297112830020842513381401988392887832963514327692898688470846687733513326953711153850512715122978240359294941895692937749167123422608405750672315944407476434184735498522972032018536589991241852395807579403859104178197874798398798331671019187470249961656619673701649514260897427381896380039386364033261851515879701023149575027549077206555501850082155198914534870165010881024792370928163466329144592726078056208055351216441101261042359290288520529965246320521290184524842960812499550794577092506859705728235642662882537600491377517102817212094771404931107227135999589037955161414038383797102577128190841057080433160205750997382047017410271384268163349152731704800979841986698327373782059864205429797510748304074540961676754057248744456280731565811015156015545348717420218760836007837691812250608770070953278523610183637732443078217050769548131115213849939363786038782466735999873369020406398141812908896488951807168851839151913440770081574775177427586661853665923609083743909715454956681507775098031955515174799442116369718107711513602347294751912158788049816484927252502982656866961063244849372910189848555280160975779983719796622400602984174472453788126524928801195572989462980125450527383475451085834290313148167920895014520363644083098899934652206588578561523106919941952110844675198169374084687820181075532489550436764162956483101275650870304850000864951680904169815934036433156069108037090706205396537866890247477046805845359459131066578281564988004377898803162118905787579533363062144295235567790035510497468979398237824685503746139218347656112247748606006028787019342479949765416552345823395024408765424871861319063761460298605828643494401186672954949978643356887066403691485866998020426565724392769013975946538130999133793026617437506410994406828556640309315801651310663934801505471732736999599434764573401368637995104959512260606588139420409275538230851958768840281383232703182023968601773175272543643441907657642757274287627678611740772996935094892992567709830450264662649940957951880845341837546899874729201456986325298391596248645947891453916023845289584141743786247551296747241671848264216426232468389416292371477622913593617851346031672105994465452974252723373099427075608432621227009390697269494677814478029562268944407059427378876255098805776828780936320614863746171811374971803523668273938284187302914307023497502711924969943112674511704012765133062486497226060376756789855732454351324508285332056264699748456467408490218727441884069541671694362905321407727243223406299928605324822947187858496046063613706037294092119036195527816612004355726005048787702451612703257899938457974686260982494361454775407149785396489336230779218313486479115529651268216493526990654555255507930968300273415930872445174228793115825234511756440857095946619598519738118935782609796067200696654134247889162351604271390522739158235112306000115528439531184588294363549268244164591208963196303194733284016438613860551620618553685746309250782096436572201959413311007255577101550176567284884662486271917203200906905581326168422064346361484499988277785905511367618657714870185381082513319565682256286394444036007217122977049620961720211448567028996681354596392271320275474216203788516701269644765527881281384722388521294327192464663176647905296157301062658364444070097838668036096316846585541865852931906878322875953229097157845656976192502833965042423490634560311462237568256019085948956620034420229156585066466449411749117430401388914705274560694572571307368414223294387187818613370338725688294044850092113793056913640857733106216486413285381837537268490903815921139156625306252138317543912969836425094157061307538348214321011381776526266701434639145310681405435096966388232908716039790026353118552669489203474724597592893505620542298920956226784444871343440595290634072051532687892033222220095853050502546933086403430216250183466467000369706711242212225762717370663579665146069731192567534903912027629364353190278781749197339241930200974288073529395647504909388557266978740963504208971376837923378962449182563375667929831104266881549895172741973248777871966337047993511001238279178534185494478749825336651482234179599820328641286727467150905877067791679888899151000368029608864809576185524248229818592677667782663882796208427563838568380942003469205139948639000586140415878363026161628518352247751929514476287787528993671764775508275897323485179054841606434340194264516266043105062905456157433116800783143890933921388336413308733239047901820761459061007054846347818788544818193755619600974460227907567112374960603694110562785707713001865009906352604081406644391404521586505843949495175647988645866811785202128300117736553877000903208391485699519229733219235866590793412244041430010595019971687951560744199348615617115210694200895882550371001459409416773918357655992096250662525702345397823293079218876533882480896286169836030330511895212993706473406684613483042637582860831420541241336130357357606860773324125036210670080884556784276153060883914099590020125068189115584294398267870775213095787908053780323996251950294949954490514432904274425265022651310056751133942860857404685645381592118968504603190803347627589034708868321878473527521974633719285139275043493520312784522414026113107538553647167628784335682134397003872527603872092875799484158997147985133299971878777569638918460540527509748670205346247183817418205839599577346952604240585356351894611834404517202188965917563977259590761155592812656312973987638642471825246408219917539006841255865229274377062995718169199127977157842827644300000437553934166911055881568936912065789663200701879888734763644858779111741804146836296387420159917561141054915883077181714899893116091752191518648909070038727841794305067894408783487217755063264258554815612740046267609277542244537926825249371671518318090768713799766102270742834890293709743180646204915884797011064478632510333274368881190451852152780720655400933209728223010280348609413641760585402931893879303021084447710519945813811466164289261317165588405484678081221579725666714272646301522545022843761822010293122596384931446150090495579783626324908411969584352799436920443471663126687788576517422277737944479800239206148851214986159255329243400790001137081439229364430150186757283992169621128519087340307550696493520681319338957507085953233457896527875409115540640928773832372796006551282093818836328952152002872078247405261026925583942449332317834403505842350725220723656640479326193688308329439408090957962091110389066403568991919130816727063276779615009974353361848067542792510452965922289459567527102423749887236019579983856202422894406803008466606298148568023148923088676581024384544280380805473613931228908328416593376672519221053483197285837346161750001084879242472047507721579192029735844920772864122078207395916508493719687209325705629082171471061323848789544756910872826627896293434454621649598050948750458378969427013494401174527453857279220141220352924854748733926333611914907399787548837440569670139523653892903125340455783155159573461664413916021919589569920880011616450922951046215361345202863842546330728071706612843031248608447707968714414012293797505870457922142150016420606831536562313961687343297738808102092518436645954197706139531511159459358994340140851479731385789921119777831376298727773548192808396834028876949580152149490076329430836984291039094292494820971204577575129832297450300251150499803027983447429247129895535456976631464820736693988082789571877533399530987724776453327994549347106250556586492112120221277609811148737869021824361957628051471479281004446636621759197949101030154685783615835667149582982157770572843147328511998258946615205810427435793747785449272814235513070410865401225549041885533358774411832888689585599055776306682562640556512675875985195091051285755041301906343614719255035494618554785245783919729731286298091716198837335258381891398412211848014684089522853551997767290729058760296318790865311467534846175765741682860649962346994220349954408920883452795418352148709288122401791008718229663179064179820503089653855266260023985034431182100270436037022661468274659709066105719151912067073654481234154968276869950663067398708239491399072129847404645419521435588539105546098791050125458051443261907333180263960574993326696692883370450398120750502731224247597892009133544639883436831133128641560385737782254144370931864205001392178977575417303778952738201449931300383775185939436184123387338702792034233060221472941818757662955637833238905433691498935187825318430068640165493916225770680832529298713957193931446677450333765397787753986390136174289983026401729281553583334441387301550564668801755542241456644468145118720989901190384648579477784641207490602155194319437179954958268384582274738014764966627818141471206751297384742640720360609722456767173630495792140149525505127247259209556752110515893921694093698443863134109282482171765421216057001430324629416413121054672601378749495266734625566431173789799754412336438499836727374074579148767630781886634197735590085793329956767350821008673956945382179502136153146184215386465433764190121707060026953191698336885628883715782570631547497107592800487006832447946426800874632756687272159558549007567949363292021174482192262050828241625745565336751134935457754308240111546782857132642990494559804501091682187402187278500120596908670541090679305431038349844081364531684913664136859034281956060803152424106193558155266573941706021936509784736996570153703183223227622108087328062311162069840344622611434126197036092063903057399566483084020669692866041741259404594157331027786450083911087962699889598132682560127533368240682609388550882432401497762167972517887766114028983704973267873969484115870018354637127435953486314721007902335637485369037973104034485652927391412512349587479195620271717462752737872632880820176825053448360858242954343807810710533349859913815280962370289404487433713976922983139429131620790690676577982691207141092969943911773656275220265702207582044025572922602093627559646646299325944180706330810359396254622087590758696930433282774606752298539701014644391102303402779376608936872667436464193869929266045743848788696686362839173949916982238999440833129233633798967739658355059804806045400919483885554321998993683114517208255049524289783426287398193567431655601822082025588659498512959331512963292777797429941380546029925679983767277504318992313814893165735702251290444757702832820801528891350616804289333283363670320041898104338822767456538096258329006884443443899492636656292366608484694381147029991264706098658151305188017342520900415630283153124879209123670410712456594451104584849972402352517404841877505416931800894063524114461053160220872805308297856949175408577137653170600114962025493919824100861685663970645135712605567898932080807824962060397954780552144204892998595298801465868268072782672202573406106975465053434392922449052391638218525952420270659944582436998066134429068798232302285797549621418890465766816841648874306429704994306447631800507211883177570348573160367529355889220263519089411403680512926914049530844572947850431530825577479370027434130271353702239345355452822755139979504195698173860527498186964131008289018307739260387328528017513823395117402783338382446594990504810397808003700378688755144497618886166220899135803677155551362491271307914462304486546745856767855978844143200138787365696079755908701403151928204271614177843517820364894859609033974192877262646056006644138951651896815308624824267039045292218279987872869098377110073315584371193992431958408193020561995723583859193494074707362799463844203662285327959791601370612524622802349616236726180500156511899310979464121347665326855559584461856795692417005317702688726662398139077159941123626004618805350352539485497990042086352362226592251982849246105860906575221926955484170866573385544885791289463011754680874684418720559116469903951557683267502150594233406770772518052092176173883201363524374533367522941463571728288312740445030938183820437659972653997209103992866029612290740515836574958426920081511179707677764971670546466949380496985961278209233768458007824569724710679640882724953088264495716551498160006137084609015025983275598221989358492808553659337173124544151833281691789826689400152219981518644710819348929058689283623334089926800375260029798633654127088500743711235746746658000931330893323162174579745557965890448836137422298592706687527245108560339035897698840243636497574765461870924059770395845197517382858618999658427082361683159563341969026974693684789790284688405200938863300122551411222300431590056964164941833296039779573736947599190885892576797078820445171721560520350982524881843333950221451749050994742369433257519528543265367201823474620555006602009222011146752132923994580653717067905260119206441942356219494416364220088545406910319422505854501513354231241323055733711895195870300384461425195520773244778566468720257903365512104751107374842402856955346790323892817808579218692002216335751543248832511786510964159910475466854413359685203589872578535808621977825184878409118801642151650065424922467712974111320285158229241360961805850840294957755253410535883094985180899329228067172789898571629243340036979927820760892537074756378149032432389590329546968894578090280200487837283348796890771647870679049810884070948324717765631173120638182393951657280444833870675882478500725241634256231093500141019449101079725235206147001770967765010852260686092446423900905749886965639706370890289723170654612449613679592887687194192260213530488750567735119511415771252404625839754613909259268203212649465630128317942643796093215793906336471951156519552541299625703143404002452582882135270182527559214124633073353780246533357155293913815066066034395558863616226108684035040511399354989497833785155043286275826742822031961637992887689075927046121599114097954022855643147823641207936884269828154977691461204839771661167897161821094874718760478694980033347994583412716849035958461860616441181911466533566434331136881022436421071987760253876906164018485384146842054505111944884678268328456912655158615757605108736141867881138917726118632011254206311045968874638888255506273201996261200677334755038527243462915626346891004579587089491330561104228895517279406240580157174196419211384869915246225324012083387363800759134827918686587326340931778610738703570178150885185316354474676626355967744525387174897650591619108100238489122939906264128366841279230859578198233817996439301643483814326759677024638821969439320282483137369061223566868051579632970754748974379483291724432359039024277912010117438624203261719862259761835796822788342902764025960419315369406996883475708841439500216177522995606090745948496879245508538767473500915277810331166524566662357171152259483477958055817690919536581074147373117486725779550481032450432145203262385005166884456892148764487524061807166705844963943856157314976074112393442560698590850067492625254659150166312961569602891353637929431785705261139274049590190125341631382773106805638469657459658594733832749418568972953172783751149561892199120447928934792006659374467496227995532809204786049934464055489533578579468686685617559268194944973699748697192908767711119403046610755396186095951981793633513193426778260265518188297539117125930321759190457971889275807945593177101587687241861918840485452427674266577235155892340999836269000262990907653962428421164231882308152056949811342940489310363694252042177808034853488257536647383953451941368714945627013579863752582316089666837276902253041269758112416544790067430647539757229061724463823607441654715516530308253290439973820712726885714321021553530853350031274348537322004144652416358475073143535046262187079447873025147629396976039005478661785174698439829728510274659896205496237778853742618825115912126235467378772638969175435510591052450719199479350860687108370497388306681018198788061939275919584409679369479140072807569596637290773866344448939214191873887973463936640181499560808130476283529167748511217933988040314669339522216278220305990734561956190271187234773815857051095296471301437123604481569917818238859100971799802646302042433555633965991212474673169851290382864044216151201122023881511235891102386963460525209381434988161530437645149952356380433516301552752251438053195061466735087360709626917045574876560620332746130586343175321411856185054742175870956901755357002921453540160185545285230982166073922135722941297328523640819529878137974500457936178678155817986634067860101488319265671887225799250193787467309129599740387328831829271126853479023756888214997370573203426612897250019317963500101903755635769048481068036377560114695288966308095478076734097244707227177605717954156867581443781520114732382114245280634731257745677110743200172804173034818978880082360186927160624790195495244769391053821987257478593169274433609574300856048756803410425319497533304677391391883620407142343004257755208534782814112789968913707138225438357014765343029827259207688675179487399584206637924039419308039679619312781330434147285800718137828070195971670524820179718436990371536747815830078297785879583693925833184170433381396417250619243151005608672858780389660872706586189690036480254932292971036785811720191590522793904304041216436017251425117975383070411933357085053943273289708701471824383813937063018218323799146102069568874793742646800618849786590050040508231372418254615189229098894783760754585207531517641702332887015271292152228993980592669166674901286020116233705277057581705881382297055909190807901264841356291564778883088106232009927110240558792685349588221921205810406666290578534914798653885280459689010718220605441272498352746026448945812401753833186931728201592367772947791354844439782737274123646974865482060270399627706095656977430647500044319317453467195115068213659094169471536387223807799708383216700585784374183568967366361610697955491593989939251931516646101801027922645432722560364607115899174807781802987983167056971488006431984981967074667352280445694614204938756070564475678336848139436471390489759793483666391651013449083754921941862579346338817117157670360995298260919919335226926795526163827534335133568993669427430829924063859035262365452385923150612277217517117810214277650586570159231446363738979464427864047173297670043825379788103101488896186313613480282386214933991855252328031081840978986072336948066050827603049205311428102577829293308608809025710400111994730785538868902434089927167324390293507379722584038430608298746378623942101371063399614868531171735783956383212825706374976030556972370656219621206397479891559415890387259243486496689280384473550734787999766388941912517599670962640853287813731701329322956018701565309371102456369872367975234420453611997894275175836923686121628367702164580174648195075015657804990254772693687205170098238784605304537879512855658554055574150028380315817050790122580575871517280398944576973853330154674099392643485237105593082805380947246768089009369350627307441671359564375691496090585435229977442439533271862541316857457904439869032930393696704080186007707870439030676198062242510982729529736082220607949588867352145051105388711855824291101136398948892124127161288440063839441170038136574225640668405372122541361709702251678159063503527473969518666930515249305899908549053961586358302048128989599544046580271155987340911652395591821703556069009201580075506690482087047466981404728594583535249439102978701177271318354958592203568352116101430612533520888796920701470360767186024619088699758564460621854250651642169466182349260526735739523136691240462790676736639169202260802608428719109791872207281900591690625210577576568317451406385046708076863758981715195916308950035028362169448143885714208166880497423113060880713421845018666673724211707949722595321680856108393286849761980364933890814296395592210279403948342662249959051546750877910329207620584814975109334994180939775919824699211841973410325707491335599451384238617589910494015009180316486151893523272302198394817851801294990643129413248820559123908368887806201251749795635229983099556313527635155311007496565718057187667162061950388915946925781876126511048549851031175082512619508410157756608937156204995015663927886045763803556300685089688784469091668369955053999777831827814258131012889255643742809881011258963760353660874499715754500337197102489798187596413028598299417162849137398528503477058106993946537712634775711449177230080774902688917087303605213643144411398996727485221591242190888001039430441836751680342324825510534425649990351919109782907672163592591348062160563901014514831206524626150379114025052354485475213712914815095978624141340140745812093631526338415917231962433017641905232029844771909081851253184867538085758285666171104360136173642533078808568340014656114083243318726662728229062713216933985516150100115441724089456212447035620981756060469355406223250418501540532236450375054999330936006233030319333262598391786637804102946693947827860291582334260590258231720287259083439758181917523851440720921385400992753407429090564805250438261762989388803165799219422928276396465124142574368906558714621132654168959985195140293694566253786928813459226828327075897638668985059122654484787595310067075549570912495095459850065690421570345377668312993976241225011896982219840770553808050301941031155422444135151163477642574340805080258576058343864162329101010737268512241744972653318456404465739585501477184897915842776662755654968489474245492474857011694730080550360456476751803726128244554992215577371528045372575655375608682648999870253370827397112229938162868332396983451642378547450392051572484233607385125552586067123580621875208314372887191823519684967044011637478567718447509219094267559433520552477449435807167076701937025406875010810112748099298826065515684496237703685925032390053267139836431053673726356744243363299043520210242932020766519005865394172751131615972343001007033388896811840304450557560339953608491231365396343935559945865884942093149046339517287882408011551783319095528418897147904871503582992034375516244388996418904589751277223564990183988088326070854164436786085407689798552954808700589557931691438383970793546117564060018368874529535879284045850262783156552091289046081419621245331902873224238651031725618140630306855535892715616783242517580587806309135956146761992235828835146122357847497150566819368651854191742458718002749172390189705006692475168238909076648817455789176011223951007842168875443075488110262443252988540216997567730318338597870870708143490331226272026221012482484479227084490458235425399894084374765213162463932137067352580240753853210617778798050818659403726324766936782095833061496140122495135077387458970772497773301588287332488479679829344037605134897700889766808128442580529271329189110942965861597133399678859690558202613733790431668813194393154696359454804493654668313273232910691653051083761014514838112290131559426843672027861507486191770931031612799767217868689572711516034329649937678283617987317366733464812461784365601295430125850588885320018830917607875163079247749141343293467276742438324236641029713171323379023134676038470681258706261463745233273604439991595964482900871006642963068978974361182949948682555935072369873459918809747429332954769363941747160999970951217301006614587536354367002865309532770909289089307228440941478498755512703734985227634670787075957063352147656344898239384955188698093760764647734454449010227690772092808848495001010043228580230055942553334996636558281815778624206338159929769505378986131455792988681283822786572869282128782551096786159220358862077881188752003166225614881184960709444032243646790115424489778537111018114056920711490925345164764017960464315992370110605889060486748179474299059140060528656177297436805907169953221023529264422791379276405162761117301708478385143264898696221061850094888334362110570898915184687005690777911960867327465696396820151299662029093671498054485190836958470356516828918855426346547484386071742816743707943720036626141555167451795591147172837734909562575483963825703897469520063726015800155722269724392670894748447783242006775296288352843755728919433918832580787103056444778487738638816481818286347828997306875491944480908394990185851073453190576571406737812619334817455542166968926611503174377839282337374583463511514930908442837360597378435706874058010452728860163992321365047668758299606377670114460980537515861355064578230784218056738792694928336143159534956403726138441094262652992830990581163322167517634410292257272587774028844562455900531380390185001517803270953832823342853579742708293109767854397749008730068888818229913049383900656176366057001112955799469278598677918728814626386911879342246211278590194516061289861708542611481497894702419580418097885121753173910970674676032011526010047076926185087168966527522705172287778214756384369207160715717757409903657156299599848741661071135945017420752426278783945222422746584753051632586255773344031492158280400866273478170912083700791959935702475317975464632583227163669902816066140881151154297940131009484100830894231172572221740991694902998826871318812101592314643538740460928273608583302424074123941644132990206354401091892030626335477806452714239747118985214195560926330916873063558880486280862674913847885912728762074884364638516300803638490972092960365836515271177161686774541592469521736585996310769677350690937666040765298162800051112784809631692278057814531098245182612064914354237520341850814674327774697223276573496813716471036863248247811765537294961420008212221148555043407484002051727979707406241539959576374759251953266746586340956918199969707621065784869100387391325991622746419946375181335731534111399558584669023654970213210358233955466797182053327553975766060855156901384445994043119755193112474024310591606725468400020257000428496000740741894637130229975125663939609585028660394434394532693288261807086708214091369406275722160063865897837476134393791133246738842551828794315220104640213164112815783087475728255931509451079881066525984333358045719060495809905406021129752448626592574022112042754454931795206540533858109284561017876654254104053241352073125234591892336530084242936686001996415956368990046813038979787466593504835796456139718942604137904275227807784234809416617165777066025766852892225160360749644143681186139582674917004024250941886081737894157405901849568853586926933458844659218156016636730290401590242966404351117146693448360648948845960139683672690887842781304423728468031641090832432717794768071607063660398031625038744329053086538389315330970565514520114329477101672422256555317143706425521578638332284084243169465602733416873232079499325334148890783061942640527298961076037575168471850202662860807594657912312987054685820963905610329198088396187088923296781111500946158357963558664679968640314405615218215249226103389753067493556657184326110743392856035994292603228068200969957607462116334672208496206516375015339052743963917090079493409188021516787446974704286478878625736265945888147249957296046662948553194213656981867649663715885241779078353440926136153418756209870835923481816293506437531511536678111635358539969545785264971532603715334930819029939994153487220285596695370088131235602977585825349179105379096221990114175397263646013491765159541463692283757714699583063390056966257679833984925379838359564912683258407017347756678518255514522155932331127568550991579323395547386006202044831939296396057910777785980104061810288195093658150991418327240426456733662450082578756768538010686434913836122238722315316054993302776526114987930295006197018254320355552649891179111324224115673283694697218385018968969407775830253708696428117250334585698636084062599269738801688818133789341428103913923891474450550541853769095778020718369359835025463446864364227329665349716376315312811636785497883634824090495895720120581305297431317247358284021006176406619725970210081217107132623941110097808311847136982473109765892368472853712818280310515517143914256463097655776392424846467437021086893833801737654719363269170433931216022717489225037600956372984610826545744883619575577311123078430551779787800887075416340634892366563273450004883756511503359719081590276904634106600583689056113756280825894395825619565053346589246634502550599745874734786516416143258642006489833449114924776344685513470955735757727844719102001293199940958387988487562438109950209722320880367231458901408474892190098996620780812487176034162427193530387763917042419348037220294416590100161682282488059628682061517196221248199993132560710319598224364006458092537400690059345506242995610467822539740998181478628500787962863464527974742201299100367519286139321673088610411184002161850469322407247891445481025390257106163317195023657989866424183250108603149141418013817035763708127577327874631813930348466542707353684927821226446862775546494178960370050522096149237720679922886199917518381212041512989499279958004565089868842673149487802139292574743840609531512188180322239397322917933104246586686237125385182700568644035655522813786098675219749949585548165961250009419495725680604336802858374967922281008564167919297845471613374605900387973167684819842226989822800702064353551301125316195978904541481258164057453458103694826126538468193243050774824031325042973777308622328966281509344997940591290797944231484254290257832478639609951620517224352425055393303575107835470780978231486107444467646777640505665603594159219094349037189696916189247327563844497579828100404321058968243214918236840046730363029188243195781823691148067559227854443308777485014159737359476852258541352647773437140361141696736926411786855963110802226662932709948005984590123707387220348750062513551332987996772555182080832250782269398832887732188827543884880107556431280408963257578787474598619175014333706907056930008479782064444806581745209414207883267832673904984426519432978188822488545530737605110995748692294767994130371100172889290518275816692156706061238682500524460077776075177104183759787614441005469327828796224359090236143036044401600114844935195554374313816480813795794633294736265839386222092147840339904353092320576581212556616356066826326976185129876917992970876165495409243937891509718715754476367566250607696414034746327907840024994229349932106216696160047039935107797761167533639605994751043460491540602059835936170488164274487386876809950271313240903799599144131535345528758303369315492406392961446580509798511452384012272262518250392795752396290180371763040390777365321564981142789399187504017108919611948734122206307926508977447195561036050061560567601165013064177873188246681483813966285390953788836891534552624683705316841486264041846668185513952418573186502178892390593394689457980314259900224657123899233795230930462020943923174196702280715905084058019896302197438842833603727773055901748797164484431847206484596921502304275018946498119091736972957415852227337156436997081731767474737694194569727766099785732140077038626061902720199391517946458943374625532347878056063643697889930051174544134905605244696865724560903622773332536246746500845670238379900073067725531979148652751868979564659680198665607391230403311167250942343947440748368787727551808587017130619733224012990856175406147202915599953267041928709797665977106842510785834364238247000992832655331227179805699387220539867282083718315605819577544250805793090211224863820686296457038484692789819937267997346908643806778792875854244245601474991980778276078236451367715489913406223527208502292373601562911221076588407025366504044386285331085233048640925084710805620231993626417799180404874535996311820005181899887761197738448476022979213201342407408266718592314149907602623041012277318887052458911044689931538179901205852435018415818122252484504644334893851724288273928634550427635386827868045144726181141798221008038242674243839067275816485282447604005972494012133962495010188969318013125929077098456560258439277450715084361755327455664235661609435206867290621735666823315569329799898292429122479488861340916032601945212588205102115415670579192431084120245750222934322430189357125161715879695173301901738697075144876614505455231235394875765192560728764093576861115265450679926549883934522189901809382558687648940262449514168105494530020038956384731956058625989924967758613150891754877801668890945912459289761192478390080963517499630848700008245738478661183725311297946811077344070576340657191517913702732429034329983602416052356850125261544171731491360463868084770005350229241809981001216761420468512920516453135234998881996249363555101699104395660002400137764698714581263728463273727906864270907747453644713171687635053008415870680915707251532462134008534487105413003584859876953163571936667246558317168013615030649837005356076818369294242237316920024982168474839811875103818289570075291808336922234730503478046838719083129123484950980744101367339035305658061798638633678417937911322881245654195645043838762044238088132541602552832341156584170391774256869439716780652710938982369667680121785705967635736888691097452331552146456398987055075286288971747073285643774019288269566223021826613037795856610005453774021364696533688945047529639637608526790022832213300299252511443151715560432449094529763670268588391759139522936145566594656737562914825120605724600875876766840061936705809163723746043386216688768490025210053717427320283932755875836529211480643837764986437671943211527468478891120452593547354715628497652426407783068859337135197487401951795448843879447154512491518864941700635993036983694423789782805902357171193737363317656646091779572280878190364600277214806362944927282325505926846773355434101244987671818178001209954522197886569076647003492483258000917253661878475617183291575580848764913684904488101450455060437146479683931219988591787684231597183641205843923978560809343146801351970563244353603544893426802401834647243556687517677731230561309323216653861884168442572738358651129358883356314693134858869365264201558592938671058591665359859458610771976985697927320069447690027952251898729682796140769335751727841872337620818363639855131013094284031427090864329872476216808369888520639195952279636350464866008719591395177115529741028919121064160866330481337668163626120313013878506491021640109682864730403758081660806491027911937686300991118883725715840644060786087374429365107012195640461934105925732793568784652535818952776570026071658513074088107530915757697052836303723477332777424188207768131612184908162915525677000820725803036137186024303791677846928499867221463086743674587232515239241370611277395134436276650305064601884584184769609026127874529336006896535960826333421415093252842790016819421929764176776183188562555919376880169494316173266211874509447185569774915532234771270454167763546922378304148615384952501856463379187986783521858492719464376906791394426684896566114167764513180587359502772004748087231311390867646153646990387328036548476474570041719774974767808125817060750526283751636018158744806925772173341692993410051557553756370034780618059813170150530661530707643158723282934341228656462624706662777123408604077740050001296260024250659742739355132480696798238708617276074611779634903367376473170856608513915870201102518616218791138824524143617241695642426313238320368360851516411346623007158031703920354471988005153202564601426133269940193152387116638151569684422884266150189236803432528624048571268458745051635132460680627632552431948742255250390862506942285827719235628849453251534728711870464514328577770277986197241916463621173646882351406222262247108377369287207271218559273839947220789174444097389735089058899190713104216108910246267191416051832553047109448775662772016565361664825099008791952930135090349482146899840584202786358847569675597951704223475192800226616092927881523806544549563405667308372921247899664134288664339858636367222994494384844280012595634222559927858234600446445209491512955967070627715275395717752382568432817390232584516766668960770482559484171487512715819183596744010749150399964441279948506748440477827488177509502635334492545527066845122696796858778588433126621254669533288218173807874059104215375911490347433660989221989879566485829625392492999163246374618123327037859237689937014611064066939871772710953339963824335058194985633745324297529554148627653236785035624099484731337764846820867838494050141267030650913659022988179990691376644409003748224662038940293429995702653782773368860641668663551016959590854829493677269443212384713497281399119232040742109419378275414458869823820278489646794138623584801976551144934635682851075235036333067938431793747647113487750299719047661130179893033925106431367273913618532450888218562370233093723265875416049506953632692514834520063908061775230468037013487888580527553713454068572724721151898704314807295891714148419260239533249073841594990493455014222112594844485377817535132308734595755320141264506176597569316878425984450265352192130558409355188483224618017338046690756236128831963870811064042343072053821928473247438045194890678110772288067660905026484516571973048292390474731462717595452354542442564572835128397962443957693727059411272145406646586840409276676444814127213259851557676453849070921850202583698809066509010497924565609729523957320686565416987280006272414079572761710518629380940516592820778649345580266132347491711819032049555162336748853721525273861199520410676130438554624997487758527335557216790730429550478094983289137480009402719877289089133323774960163407770217037705800356692080473292200620635015514368407862576470576245743033989531274067071857717847626920898797345920702704415881419698674140320104942267790736876748504273652785738915476734996606945631924817588329171207658331454618102587531942282920835844829503090595708782688492807643978347606087538587311735821606816537717694921327375879653026275350887723637946858829858776992552082961518445948096075357679453815267364285300836006659782040184210557650021180470782467072868005612075728044469503737555681741327251062870588935361274581527496019058321514328071681667575321421425737309243614149324446223397752462482753915862408224436832172297061951294366527480783701728923891721295859670124395452284217176806680047335644978909265618927842713182984809832401413107668023764281295670839807372686660746059925670930074258639274818262756272679265842499523985923052754333396407476651032442143896228757741552636328490138803308971457357353595621666325637096054225993165000232101752822645564166110586371895350833380232521185585030059718041408818591221485749326964823791642057368333551663434092218891038878884639314568086636280734288982689525373474236451337901147219370896512179702654688420498608877901517772928070696409150664881726801159823310530830344301365410086323696207655260505977979918308956914541367596197531083329422139679046495153665596981415775100390289934010116521110470804750850631846793900403269309297562707569825823348352844566313598446338174926248572884773939065567478602505564615438361257096811693270866775816675295955579170674876622533676728718081021765568080532413481548564839512937802571594500935572008314856038801936794027772786147611372528624546792567610148113372960590259147983546370507957145179900125948196497533660080894388698048994769218503783483631200431873776075619326688662227226946099315126270787860105756334124887075353130740876069647979226300739381531418190682262813590132469705240636697370041549601775131847817802578396014559931099196992871412978012283569216226307155323584980257805949131365345404171279290868610464231510250363436282553010641913589994677789750071409350959198477082239460161748338794863177670169243783654943340029326191651587495070783948093036076507648422403667502294097408745369491763355166923703529705323617812120402821887953889768322728053168234606631496541925515333462060796722376239937491209596487751130582827117417082093628208400757238320615337261800979929706303549443467210531706166379264982351821855384720999644177622510894979800720182209075198765164510935350762657389883877317059110836159008977656551603511340360881072028094582276285528499893297670826054608971944222329967994707767786192196163916233922782294311087260700000487590568304568452160001080201025133710205110983114161581753301064472829244137626337030771295458701179392058752291796504901241736008834325795266804199845435980641866715120605767377018505503763949944555468679293525363108220556861466145976966478788596822560662341987241047828595694152320088312954968152548988795045133982643727464011094745111385920367274939997514601782886076152657080799028538886785648961528688078832089565116337900893325054179561118775053424461346886505352009606529733567122767107890729710200930769830320314262858833863483757841497673209312574646646099989780894820269079699300791699637978896488448245631140982156738050787225218521810256174213938957053467253525255120567588791025224416289587909960489070306927577833317398110280361127771480651709686570227735509616126451869246571400706284286105154940683810403092211284813834160769172462262692546092967272356107166527916332158758562394098554999645572217351935099561438902666920032968597092207197257905001925514603194190121279713600503155680445821799100349189107198525291896161328632084417235423899251768727547297989945386216763605308689288002142019629643474252621096362795303712661643685207783545328436045118918403581267214625652175892826138749251711007925624136781682554134589827143204686085795620608292002324782101285495393931429703326287665897645776112203206338255080626103646402922956819243408123075992273037171265712462845383072590771106851505079797028746588349887193361941824175056892795583340102945063524119341952692117047724769252796062586122262489872441142334393948983699524367324434367746637040183153607317870970245821266474785444926362110434753300850889318907250060345570315339887419912540705514710769435665839073340380102860074642843269050233490617259205231393582417877342874202425445161471550740768425342104783816128947767994784951206308312307967720785523018635232092597346262097292679175652738930277858825470741098426750511498702780502109271752879503773177922938564075754043426641756608464138507542851481438779590695516905046140270305539734680448401441982590856655722607846095780552614165218798644891373902115386361759459895154425915290189003444602737993042473452848583102345178537890642729577974764071883196711769118108646870395153868930493865049222670473296385943727292399541726899841949449722824557452992294275380232060432285252103256572837954094361208259675433857084156596689814813951518452478320707750701178310364336709683525461086767470346621739966927748199663859621245158383471030231731960682133497076253367093562278342758846814075332897870142535362040025159954613542901487086284330774531058698191318510384905803866312209689758144281652619397564316714201379672805542190165407593325036421663850485707423062024758264679284368924050721962241505747807591012678902847266798440967251621464271769566485811960664389419225490624944453220115216158074109991724188468582749127508743637741201719950485859641496786497891749703629825147847770332791744055443336657509578238565987430040551162046932650309113639195414344941850494116111460736846624769275589718370425899493645711143554228478095634307742594977500916282356367177221995945791587176386650089448032964498710211726656558638380604329612389039013921207382227161097322710436470688363113321031278296703056110985075904096610516238691679554978591426776634207134501232868827132259803802155520486236050093515846359950840166741362020050060861333039957696382052334140455194135673584633956241623594048557302517383268183124487089350539709231835561145871193525173648413452130743368010195740255890620020657915372427132429159191965479662978009903972420892119669735935809007001354641119320701066673447551429869179424798604335722812161796450763197103489360151569861680997653636490450994021315407904052568831786983976545712675079262964669544489327647992420049274701523669714840315337137754164489120006060896818956545868352176071050538510113870789416111199846237949702196066366539783461375377640470382545716198772841838726059128843768294733938684068944160831178499471248298269150818231314680111338596254224687905512614624218770431502747312021615783612355034571107510798752533446373726440586621711171825231104558013463847457978896806481389419639280747099828336852510629543996009145817672423457831297405806224692125985168092645660287844332226414265906577985901372730893163057763855200274892058483856207108818494910341241836652629330285047861293246752713535345584153876211615903449636736746811575414967791092036102359502396252580192928555628259221612489130600559970185727048932502507617496325508750612098273566678453437358937834875738795755813651815571653640601713191159192270527961278691573173759954326301262026637948979428352621844645492620753428051288101007592326281756585412584540539167878358161147660743532873744395926717988363053637681703375351040451041994561889556243829165300813568883548091112034986611150312389047835287942651645629016584251052040073076169815529957412435312841908389986398712432651284589283496665834114962276384425763339601747634778017869228871955638209966825242822807624524302698530768277408881515006562032155986939577106971398615706545601071522674928992875067040962772775867443071640915091597427347783706578629399462973787886086632362761485717982859584548334769934139652647655101522535708751638844694007008623705586895745013257566681050078752429427611283647624847899151642969899881386230753522488471014559510339583774285201529404294903068417576913668266317837534104568014087331899197974035272496580507664689661164977238398669517923274146192954924328963019904222262036625549054261254833124166672006266799601483081163250670272153653665001401073919667425006513728466911586622954633085306169259882145122982638309649487562918415876979688723551817641118928749137075965402965676891167103585925886094257619667172531774843803331984791577298986185306472324488531760741431440946270287449750505466299473091565637475306008481809317662090053904535890650262049573485958716335455157089408313597647285353553680334631310073536344469087778230828033922996550578795502367903913736613190779773039300499464716778123661419689215824166319528880182199788817142211638309432001511686340704457633423097771695648608900844047474422314544150743591859295153839952282071664200321587825219498754824398545993749971680489231823982404538153790903240691708194998536408817099275730540181751787776836346838851847341821317946958370634697935088981549427310542284338555913576489270340367771018899916201972788141316932298845809457691395629335719749771093187578657551755045972404219175502293617599397134148898004961538754665142253053892714666412020349552348106950347570442288773717153445256022043922268116244799044936063217098572748331348745335021106595316450261308112634165543147850640435351161998324195770869173158952659113231585975515700882204459315450185696215993092411110675865330767232509085444425425758546649590866105715288608681163631831913508532681841929570259425341164067674512005943340646731997253735902567972701640579411314227155625062414066826009491407317330272442880710615216183015510741538000832373895490764708550370962209387312780111733254158060227168615694168042977261200978563448528851964424445525859207075032568473191608885492641219718362531589109027020669257077896727172760578107702697006318639969522234403210347729686238614639460870248140411031976512657510235403481278960683462695824075106876380114671467525049446108369136330555267160057642456901206253667517099535193430058228556223423972207471144455401388477642917882847919448584362112329464241982174973851778556497424711941164329895909168916179998414237873360171188648555656372759368545834575114830144820873539912573530636914914967213528025191690369843294854391111112371868306296622427262180768264307949274908872660732731948719237483806365744712784811922612605296684976922745497600404084046754030688677689454318641331311531257772801293612826357359896903949431986917618852728207855889441784564562725687340127742376951309723870797292429086495900796013389453552173840683210250782942530495039195493925628836451520107467836901420013868289093992244163478237243354810666739132853236352921149471527145626593587165015829525834650788419088987335865382664216750429745281609398548782634178476970898583341119233731469325290297906646591976597435508511942334386921324035878920380869207792258420819477669204684874260492426997584829195430727520235795808452230444863678151757738524232253368577842517870163830646857867398994637149481197375205717563996904644283012876351253034584021411494454284877570453561077583491641226624286186101790998286303415656655269532244334126488071597262040287734470074000581602458937631119304705319192804403483423055473333028526451940657764372856350909737535861891484327491808683092485465425656244245666102930074736091183474553219679807956538953558892750592306021442901982957863129752795399314227422660577037495943164707592951385640509997383284429653344799100557268630401873261552853605987577827114883987738413713700846165099878972920256307385111851258393329950358938836394059217073473340210693897334591958858246133605582367398909150225771321197420949442740976480294360970915266604791378172337742039887712229328334793735207295950281608725981923731123335306684582122600826367392856453237776897978364774183631650080246032678106829604083301277551647655097023246684644767492762951775840670879691976729830697581258758202572630297395664380141404699000323821896683452562524389984404365986735294141188835315736647278251603869029269834249665131523023769391230474398864492730612519794617922490407063585273183913480708574428691279475012613869117987100523790729836447716990002817289470933016751983492117411103176225866894488297203207853430333742133454168651315741941902760962809479866221359439351161349553662770208144682182167647713669124293085451316048762430653056364561029965477187958300168957158688096241107019672728459113424296313689165155555926139180452672519104667940439287780563366358453405820281863086672207887297164021728063438317896378762696584394538740752305697320916936073545194545033315904342670893940337961893737518700631267038004880075089132600182910511604205466682925519627043939996299277327605910183767950786227217024793274655412463023811088123654951076908776748657931990637410767364541562473007681515662171799056125383571704449313647411277853190268391106015451240470301768444878638973973961116248487221549132380887152557477532352893650006220396197808723435007382940875361178847457600429367385783805864474762063586730415393208755815609078528696812725645206946347366640599495626150489554467904459523625774744639373359370938078990063216131306149512329937877740443817370590593461689596842316951908016891945038686806691953570576914633860268653542425989057792867852914911330598739640192374733763078222249160795913036425324127946573574855455408338010835684296888323954592085273586403153592430452504968869248586653506790193275146587601266354153203036632118106684138426431197902628358678172594448804620556177085115141328013762360189767831745675086887575810676836919764399811428435755201448522074178853196572136342581316309477916879214783208445831305879521399769130873094043985144053304896580859690576304343738405315579963747433411801428957053619537002318331575270241465876223274487395097479496905358263881820356299198753512444463299070687242872651476395113794239002928882449695309608954942777818380655144331091840739918488143645737990455375926906411073258272309704637878233502854691606751914283680429197380402832306411532206337779027882540198936394278223820073795746201031220356564408437376669327738595941369127059760962955520700144363088065755581578259628500599233669430521868936196196428328961554097202342986595239151194216857878727050433391724826732206679473786349050885264144015943484026333511606636462526138692227847480847098944964706990956113770100369733447967080118763957749465089960729274509140495205812047399903849261408685248185851865439848774562635429489900360554778222951111254747332625677639681395423519413793282623801391325534170943782195809688637596062064247015580292954618389016489225187622529257742098243648492691487969262392777069582379895884170389806308719762739517223304690410582756762367398339451109285513330361593742507533042937717837438615013320070759429651793343832427598253995188610499214029859737362578254221557875927415895192735931009963126342888318876959793583152202522597584545138513355740875549411299835461991914968121554047153048304287572262036141755567985718623131132829687448507101923084155027719964511320167076641160266844724804775140140122861011718412674270621597370813953813502483669283327816785451697209688242244295471042321208542210079209180870353074797478342620274532002301194136935096461824492821909740197345854503128973617778947521214834883416244346878430384050743999538939415635028775038436911953511010805185940951820827716951353946308994707397898022498990244155626305965363514957233315874240541821116116607678810753800881194849469682305408112060908862495295729042378916374579246440477046180307935803674276122225036070230556255018661848460456726277696007647856193215116571281415624806468677842409847478339740439811866960630290147888762303779027144166114444339663326960871628575425471838642193338552569255893591410798497902606525046122819617679571749683910457280827067808565065904373327547302891850498867524011168423375453964530416746145065925006085437245718436680980876282629941944308378026771783524629707094353136940373098746589471603958178630977638042645504283924774541174726117013233807047741251008399598896191891175115162113640874091117516832020563443324205640459826959822284409604743426216112279075650342009245591591769866567648761524439415868570745285036286743622913234079045944197116505679305904670949573126887877951797841803778819989276716180133005696433483940351020642548810591170009725799207445553413533517185797432543354821620933302203614976072105059010144637703272666650797535825366972794939251761074926115489034093864692796109267717015219989398330049724341662039475379813624232575217358253046094709052696948814345730080301578183475199041300197401253593650158825698968462872670795954205332842712700096132223694475600251390742715201373578936748791304865398501587874966014701394661302070325093907992105415455186573301281872036394900701654875521541488407820096291849994832096617208217465783811741989504917719392421684868967378209492363261709603264814785926657658366834828818626384412297310242207264978261393201355724061117297320019845655372613690119822715658442822479855261474997363615073074634295617389412008451742031592111059857519365058951037291185759644962243657284263902136981793638481364024243547582414200625143705787583017579208420888484397329785044028891174966549270433243166632114443555905601476202418466999031621264124435568943247113537257406422995877554237204850492239410156973309211553733783991869423787392638930347227335217723827210133153060650734763239618156952374754175324556351758461068571618725105688978247589914390155142159958562011926675451251992080880233514168968244975928609405604097019347502011275132547343056272426194553926878463785516980986819687788253592420906926903323606307408668239577034477043740248228085414395114949805638725092181586101256560738299862184937811722999292248952931731453121513572757803132911701702149567720051134339619502166455694612273235820341999327047259301466379365105389972230593352167417418909847503563645362657071540267379939302378752421799155822947264434702036330188214278024014777564413975789320032655297049531380028685661975295430642343205279993070184500552149044381947764826689390796136455835487172510873136230025774066327331607444550623697817504037956130287802909893654724840380088722758417471234695705404471366119390831322348131881266406439347401392681545001488215128519385496322392712851578421444843123138573178735492680992549130686366321565650958517985694632518460812333812537046833937580475796307647590741379525153849282911538162055291897754863481901688964848260572639656871646825680202202832392292614012704257198885774989464051748675930054541419222341344333385575754953201811533747455480910073908628381475620689001834039169564520196463476672867827723012003609805266328473452033385304547257230099719825067281690334780227542370076221760147682830125186625636079673712640406974496897736417889942393266246404123940660889317876629518502966534637040622278208202217662923954033628932562403136146533549925688062084342473823220272622178066018206203557936217740168866558600231679249554369212410320843058553536055380367521142739016571869834706509677276916812366810039588027428502369780824737854469885658322446170690012160607485491606742403771793423528651771744659199867114181499693277453777902453077170753404662439065804615975386966344728751544140905043168589741182142417934734896598518632531360928235762787872129310436275846167717087531530185320895996980747199681754521706360384314657096540259777155444560151834585555598689108069272048019396018866368328448710532828670127984939288563079341717897420296182088913168042552264017109055700274878462908783624677733123951711125989210124960356071743876232761532124742177347521970083304100623788944963085140914791020064266438988512472165768105311255353627398403224497441766655673023732510343266147629002701804705193784761252507344447365328266315277176948642527929811799773618894615053805037995314829893660856766279727036107791648031908997506450568723038984273457348996945167094317411873409249911854019154775695718622688698882609659251983070830962107405020987952106897676041580897572688237910655717114447847451623439713363394646755514413972379046117876556766095310357515781857259203511797994810013505178782905002404139488546798196471218277045742321338666471278709242043159309438533891077830878990199786611401254019776056478579268274765109878506716750631055217797559448319814792938647416666223742312429539814452840054068168251346294761658376284068660347220675714449934722766036144804233046615082948349191120116295516992608731633091485181227981428181377743724640985198012365614115581022992161841678875294090751401503669135644249434594792287560395143436913560173965357462292881067783591554825609918044710361232553395472573081695174497856181610049304526076290621011039263452136589135229483017941139161504643593607863095118841977051556978956325567107780494920163831166222637064127245234096492140330616839241879471341434975504337919014544183869524734037114457428209408723184034123825746468534965628692092973464869610097670344479986041782105003350040694959760772273344152596901893727844218992943443624186959810187963475548175899178521001637702882071808856738306835320191751212097447372052992393103376661432515625847973098307821435803257071136412905073321331175038296285914734621144457248345611759603463026833229453186924349883220707745958712165994180439073142972697945384296989121118857307795006186434754109227974819357735608657249310561327264804486440271408825076326881433913668337295117880728627065215362309063511427859853416107115695523790707664394566870970127307669990790125147562281432935214755584529648732913108054791799370096661689202057455149512474234114355933028876348798238396448095889099196895186580076894474629233206163291993103958886736470699635152829044017088903281448046401600303886836697610466964390762237859151498957662744514993424438303075517711705711093673880835082628550817858387580277714987314067618975123581184184653874987478947659037369682706589542743042323120431323600569354613164330980755737087692200873327247319441328006001636044528003360484593245912860715088940564002230670935017366199285576679414349047636675535916243324588857611048847073699040570835797516274724652183568523234862531633511744456085536005746909675476758173317523687375987417818849379184372869279489541930743214781850262045683847343832093178762671440602603289894211475873341490005682326921467788019236749439709998816000144962983713395151556410554762334231424750116284020438733705414912588255082044499191958572141093212512520856398005369007000895826395896311855076477661794921304877551805899642847022195100909520271775841114161908416907993730201476335634509279835116149718926311841611513792924369592090560785064200249014064412819586093679289772968487838379679962479792278551269494264025071370355643104222674227601149085351980125916185707194964853553685522246492805337206540399527918960931016513212266476464798199224974794331913037932907358636629307797786012993181781623943102031691640246457821264446678582047549073002538809603460390077061828887130402520207704890315001711157252231813649414644206136243458997406088359225176323710824878271532546425497468465194794209041654679561480516809453470562395576194178373116922731529189981474651098779185788415830094324834235802259972584115321738639636575827588115826367125760457187866529249989529748962252240704890756456445996059599462698027957797719782200302995791766637008239565984373075825024393719434874550168496658514807564460457925966627822780422363324453303632565231120684130707140563140930382055591842480143291998174820603900094472943473873260389620446405533386776821382392681122218536166078930524875331386597604235604317947121917942204898966552530756138896019967797667780604670840140824402947209086700776354993995173640847452560948939096307127533184848565288257107567502992824112852881525001977571910777393190634276642495545985277613208253470258339670183298037535956380352739631783212950425031657114847466921900944112777740001024671377804649199453796461350227995853909581335453866564717275709316445796218196980412323777369481610415375900721268621497504043680019240930921238890488351664680735033071497659543656458632947192076519175611590687175714789461781730948480717312365085068881333245548160143112143953033030565863802783613880259969692119348822047408638238444692697339412485067551073821227412934991498838893762322223066867793784921558476852752124545345205716590786684535773033814152514368804112879650748311274128547019197437075537474156038118051127177348490942305911167653219140685976852954223349911947674817897988832581506913562560053756919292477513550463490916363534724732473598201943733027089463196638972336317154895685764050266823572025253482351244509315613508085131967574412493633105507416829642450993623287722928594595496590629737037121529945817352098262736862408355368430091946213684950047613870242536468069520554824202095593507064799468152640393119777314205685145545757134019520884491813125318449034215979570472884023750998489595630998929598671909163961750634468321554914358838553214592953203336316068758475578831496419468671910097287352081221619210267499936024648252485866281257704757141506021097859605506203458905375069158436014462724455868528918467210244614107794430033830757721426465368806067628094144791289666531776247181238353373360662740342394349285299838529771021334852368368528638035719806546441677164240183646405811994685033592516521231143530254700199901243787842618617816450563014390778258344724551187848478177645043873514369778361215280842003362168024753587683035060043144159942499659568656586002911882760779495078606308731317946389768737364815201738515981760460004821417558958965766883922949191147930749500782528803875602331537265259675926051506574635729743759127135161482671736094381218185567516321634428250274244853137894647906646552308650322453775133649833989065768193857717981337041333047702261568807356089828162870505388167176974449324362849407629912742401922921416223612032313750052852558869273720208090695117926575894921466758722087237703799260052504345275371754646443758285486092015987276705793890281317557072477195177097893523752569086366280176372756112599444423929179963958074903818506738027019412119492937163268796385237299484880704653749750338002627524499757888259047356345943813433958441945816056632562442157550802866230168174887132528590070052121262463315437885629098419218766855882458379072212619719791506124498037480913914973179871050900940866408449093505501666442065904781748217542439692109418711404996299772341217809905605545972372703771019565938370162238294965473769633693947594710398120439883577700096111640119444818516762482419059602082835974187120959413759727219133735655830902735361078258145373792193282477943650619743594994332788482197116508870129842370180444220267623200122281222036153383667075303174270863484531034411842317694452250462218105662132067834488972162885466220821813776605499663887369832530344773861651810142282121138238493672643984553976680917710177915141295978216227536703155647676259746226685143496380866767460449111774857231759815846369842628669812593749910135442739500474682048638152687306246857813626886204325378292301441790353983078020423210491145089626705225494071533114146284995689012979265391893477078137173680441376946476065153617206001262462575901500000967197341965678940934176346644794564419007951610077646201274553615235025772096537782896747106273105340516969109969312722519227822137038419500995688182801466402808655132913136414614692927350540695317891306559562175265687980269834830715032244561739655201185343395677000629127213072245330061799037378035617864652653740509204080307009612665430359057213605290094486861844550402178535357678456968554028636014110845129465311381541916664896496870441038344617346061783595515630232661551009156031007801788361678074777461021501338177775983675646074419338617794633943644034926343672433650960546350232379960916344535524934271669933306072943939466883835175022065292760121639872084686763260571584942232717883264058091144978612158808300373865963714095261860452191256583084627273248271736250455400507369284891072870762877523900594372663118813619894788623926239629190497424602836103011882581430343517158328509941956823425639871181953184664010887192960631629408566036862662593569082013165941972428797962812935775133139196120786188867333314491941109544719901507287646887112702923623206254575762554559981289601561833760628478965125133031691830983619279921855456805844916879921674806491897148102188514750553947826557622209374008282802505461892847046738114050338364453777179469804699059735587551622238598289681907595694609322822177062982003058172569918633538290922836809448150657578747396041307531151635360346975848482322233320166006327087043761897405902898435010067258076503858366628000965334814244894286779172710329515683496062247826523029440918082441966572419470849220520059036275565994813846878144827155879725188351843866226356108683242141061648209092983936038470344061737807554091900925893519236738761087011219844696579420336144373774991329741905255207146943063038965187214818493168942689282956791287495967815492805671847176067056746269795123813769378430332722225689530180930129282589125348706609755370220419204358592275122738725915353449561651759120501702811619146346101711873118901685161375050417322101298907602520926827626013302520548232966408434547401859522739795330431919769154727152286484741278157630694185958755391365246924546794716432590414703388189120088611875330000045476793321328776554834868885039661042628148433947197951999991364812783271518175875848951384752689571665201138749679448863804749824256506053427298034345844637626646962919907441063591899254042765480452568295814797060622790092013907438519754329563914090927854372569353275402701428147898029024130861338779611665515558840957553264772940012959532434322779506465223442882329271186160940183854125722410518446066229962704604794095803703108900183623883328458681742348672167567129772198506878231744223214784746881256464440771952092699164961060444328122527772732743115028896887180282847389306513480169005036905920108507924378303478867400153437503536659732017260455666941519590418473319297588964822419468821377384756024528956135836828409131586517428593866073102033687675965887972366595783065670102302215282786563874593814431749799955975884591789665472913433011787583662093857377135679736776823734732065870274822581515046844422909124559605660955724436498360138598855350665117675393637867692136690098205088141896231314975872409479757787379834965927365687869310216799131275896221598500762549537776428928307192037033935437417044017148753985697739458873218369043507194230826801804351338589409168247288538356429371354105995079617580074694085524806861149149090431271773359069301715499738816711792487813619897300479797002642156807514984218503291210712714643335262246445914383745419778440130266749238747890280921953394405800004974141131177020280563701588553754923634665359473810816197948999514406449363869147366394436879199943262686372076713382121675800291881894348425739401662572950074395038523231782984407517779247569000583950401527418258977136667269657151250898487703947280258858755603976469144683281045117905092427817959811275327397178998767148462632010006383068236361913308044228525893116399939633867300953696775998772740435418296011857308159771231467244386748368983574142190788247654168934169453460496176342287338938439457993685915799161327114522122661769175512031156691620323439218591748468850802517199500170736579887993105336722241024599114171261747578724335317978137596459950465281823743617019908443217181973634992529686936108268606446677389965694338049668143968990174406561770130534973718934697195234762642202521124962882895945441842631558210117213530496758825460511200053002347641718886760122291736193705480071096885951611458115090644288447131630724730445766059363338212505792977441350608667756448017584219277510861546852310705110498412216275380212741852291829601761172295132149564950744534856542400328033931963034868481320772030917291201745759187765912266497649161276161245681036978413883563319241999973653521906051727960176867694460768806663099463775220348026077279777232894195786012061267324147351702864968638248886957709106227794243177447987108634966482966318244694714408687769571484055721842766944863484315825165941037646226887704686569929137622839796769507757537816256504622289920974757929490653131783387004805776210847150606547162963616076837261087720144873464265033346961488858509249357251130606309066834505221450654155001304129740120139471543069094974001988283685802205083544143123437206692446989533802787045257626953942420241322567048837687256134360203481014651751677481931452530165614252126122206428593722801367204454018821167560098455690059527542974700804258606880516681297875139856481800559714776487645228629221733958614062533803251779147350464981401964493449359187781855819039706738809390486576844187573899630961286495040130701305388768521090047394241582935112208672371325293975010848304084007619679044686391939809302358189613013617974153789177820045909708320854339649001716188589371951168731865057351781238335737364445580920777858363358223026335681696679390773469046405986623966915912567071811259976094037730644388473005505795742264398779318116210085100474171415917051618632703818046881023691095416423977944734283225298938661109608308912479634744674341295762377146752708406714637376397771753588214683201991161064508751382715460508830275547881100371391607715935538812372806388617842407653015008331728151802690334720579924858224790501648461460304047761084321724233762380032612502575850108410255929774270445851929177584651112120544819977520641871703368148189635970022111493249796971392841172010521560983042398969390670887378854931599565435505403616145280712235797174599892877397348448429432078354438501078203204481602346462825082481027374517248052645798740754485076540082250528447783461256546631745224159450606923152072227859445593241142740770865749185130313079738738524807071907811481308237603647071780114811167010390963974915176516314941702468270892544203731443241789246227612724679352295571278804687154450152268913717472779297315316964588128889585843731855380617814869799306354082346796042882989420096055115624507934775753499400040361729949432346699722671370131934086931447740315377646115750080823634893387057228785919212225389250564201004725917860854877988338476790246068971147875917906138967733596414576563186389380328965683524843606182611589956789128379473294364598075111146171130621581686893107563873191159109267271293491724287085676373167457685812914695436568301787692705639798943352840353149773914581799896357364039336232265708365123591716611969825350996167422029930215613957729134899934222729650440871283542207856984661464229951321475774793702460681328605508396258194966033499149315896272298271721827151507099809493580875016903658353401684237587655133008247278095316814357631784302953266989824629405610539788103214351266445154834553510461363416869204600203338518263322769551823389007714271934146746047782927930985690656962933175758440569653404408545573080448146053027532049867932592629787225201921531623903112763134071119310901667656002748406573782016223083426850921103770031035089194668453224402665653304411349515391110754427618906156441425449916282943978968110550352701457740780570552600108822587361422295108355187576999100544444175066057527418029528149107910458441020500398959070104453996821438042884414239894262676718813566173561035712758752444930778876537052322948989126575958145892288018035915222782668683163001087716695106835945906929604934607736900750853977304005303671306405064799701390233947416360040342939215024305680377035448853947025206107902121775224919764437614400597214107470733344648399742647207507188855085272558408182655472700606415291636322209360926803414055289859438603413962340938248622252529244636672813938966537024040003791808341111494980326093259761364227056473120382469711335576094471064434234315335907531406792586503693707619396116266351717836386963352696429216295144147685929869121999356996308083150171037701096576069173402711549065666723171770769726943988006041657484059950756192979969370236354955715588931029989241040848973600201011771193770877722120028522428035171648267260547765855441321776062748033069527231701124230677966721280191222094659530392308225931650834901523120586610006806560816291655759795513238593989178575638665878078884676157128551526720783778504119514895351981564999939456261688297121193388197171938123223581447719216261493154916417940002763642059620558995206617411311880240190339421695787703545538294460974440383682816107819396141426148909033199311892833457068817446219159880654741686841702014838129282471929191690927927328704587266730081756093038445665987134863861116368966720589703424623850145023428842985009467601089050094992774859387507115951612936523956773107247618123048795106830118952615491636602982370092863461193370216113367781205228588849931324111432791738576883779805889705064570980831771473263820115755357749740050357054722203181189258087931609683350037397730702298401862369422898872028344473540929092481963265994549970169984737756706292215599541561752950801981672524589319404144055499836922242218709757572705913937344210727161641013688071132607775611277528486825072664693848017889390720696951778178852846027588315005726848883396961377410433666820277937557314814377496677365041509522292826638235313729049056755628073362773593407600902781170552049305619384177258589830918786880732360932506236184189697525078489464002759625915376902931677444907178644062011880568084570901523224853294463859660582247647004077665983026513304431957181741195280918893506849309215435768728485125002155662671802303491675661794189597674170293405180107770473853280324331672760924837788292007947979648384567878611397345398959620965880422560367489453489487159483569677565160897041253234246047043966629828286847359364874987891858963243194433162955819813182511792974154907229712029264312372950656107153112022888161722224020415204516441150029641547043845665727059035676527870763471309329421748050424213383157556506033377615312707052191828554589864512968690394860837030189008457945540596988364152874164222814597695364031884035524377389845626347139703799546923996798010416242666201479873675559917040340537660090630696028549248116756092647408026270577464782562923855242933408406910749560010468341623608160844858716061601561639285909770221876832606985067350378475567400905178923653245892576139078799168368371970914686258604089063005899449586418123722723898674414598871244004812991987684031382842800459005420931731024624909037592532464415064758891675569829710740467507261508931865944631934836875778110235639906093698282050227778551759166748199787930953135812125308572313139461095116501042311848479295718361537041956889922568640625503020199511304665891283058214858041406827903665875406662788906236379130836425138728418295156658376155496980535979806717757605553820861901862262948940618454407582131611172741948508720049444600982637639790659692284383720828989709527091743350992804839286736044925376643522285365469307586976204813675513156483324701034834898674033362895211798198461144773115180384947882934808799651171508562620493688386232271753338150868058574473636142347915548438594816417938702887576946940044518132774708928418806986896537005798791160449794464013153924204844693453574480620246755092059001632420332048538720002333046879865906413959237348072836217491805618941595190631535675759169995225291863711438667251082172171486122504460875092386808188975893743159454143367957938956639215663816427972923119845515102374246061131446367376319287069433250848987301135381248096059104955216450394565670975319268047182373575270335096963950344587673182699402299201554406922858512638796367307470272956279549388343003785404314092869028918163075798612695504025436841501148311952986767320140579250642288506114048527890547847393084049626614005326898273760835857138721289845782658536010383319316014066981659643228496438253450054148987174454698166723798564616562033603512307377380876345773185321242463339012170980579363357207558086960463745511020148342552553942033116688498246348976084320050136439612150052153594677511516816441623438649201195663801809215416964314863569269718231396585229664815249785339035999582442434711817900388264321486763083935883900385413050430713098691554637958135739547899870057098898205538789166977220883191473196109270845192256216654903933842368961521422741392157944076594126216245067639564260363569509316977414886803720071238391942433219889444655162015174059272475821095540183648443220418500478375207146921898398628500902750225483173292441347010113506898058733248938994716031734413019485213160698044542831516062537824124505919217737708084975728974041826076955182276399993753566869934615262238616501233346822940647898569854535095183091426157748376048780768879876495289769389304123108798537263797823654850402287223584932830937030695184517868880728992502901474000712398348006426639594825469125777081278030370541205282017947860970480750594704260977621946219098765058991100504180008457053041818614492221946238005110883098944971722850188818177328985061977896914173609287882058319450870750483544010578813704820642276642627330310856741415873519349938921591383370890904662477076361602759545308518883386407077718571478568000466419900814012981491288142979158029454650151237771191019184597033880647436985783851207237166961237464780999671518926710687502221408986586015924500366662595895922627180069083801175933447681917366668200922918499603566171615035822301397233050443763864482362244752681627039727492511076524390776189189186763866050028801852424059223713360516078268787001037627914666406832758024477246639739527539790407834128625482763858914730244462003280797152914069798981082017379881734579681726856915573001340096114977814960103389625569157008607464337287566558668168002265097162697390343259033525866965684138277096621565504948366112674495019586057950345814712884844145279531164712652086833540394527013535063073616184345731538003281521461649145591645097449825094209096150325589791292461174183929184617318094368065019618953691448470930288438702789188931638123533263811040115785092705996670819466584788242353013204051002584789332768257274160051804616681421573531286746215875553878583623102841507082127620802361303057402645407946129310315433296116841099453028370321297856424248083626179030788785023749587219681472907034474395544097465032696335702236132067458092478540413913476875349594693801475716029254368424629872462003851823740254654857816487532080078850973323697304578703913735798687996590863364702692756350863935675697055151089126847237946020334901024092156463798766947869608970274118449335239175653888169173525430559147690208627091419526141789684644289856030315104590681771668537605465150092773230556156260301424850239266427356668717247791212576420164464530824408779376100195641928746764335717192478049598140361585331978273230729414046962238011188912450114298594797178838475435001987464158676057603806640825107606837409947598647141015898185465207959916224158428715911024281261631796398844154178008525617685829519716579791771153506549593157927579892834375681034561813562722247448034359153575732516226861789564621856768351441659515123751977014776883551577728144553670497726989114814443333674529470823070728519096951561008615905081676294444896786303459695373670098305406728890455329827644659004380649842850372984954141671889641980450641278859163197795719620588024659463089875256438591291563134501457171714021518963848220872765588315625878721951848904948120065928526502866689310125238355439233280860561516115044953222350774744491630355846748938651913559638931311751632369817539235267742540852985059537832546412930764918546918646467223512943007625998751359521094001817108888512852576500210261861298975005742492961772157686498078764651159929295186624751743510340628223352569925918663136837727127391479030650892710633376076567533678647066520117417309198436135541383812174917842137657892002619887181917302203633375181354613980803981846561006420116988494410913005637236104312518309366731109263928773675948585969891993656623838615560742198448100682625628312778962223296964302103377557275656878535230472608644595446212498382322648768766097778411990691534492817234203135094906801386291180740588547224124544092160863009914004757350387823648709726951796057041663418537182573379210921106667881644163993790113206919294865397934956197369542876910766096795063216706669010217922378755945755782496201872055308559255879764263756751472707723875178719534210685168803211369508703198297753588391007884881853210233339093688732488008544233161305963182710712781315952963759700977767764293629912071504953087437205440473087675325064641099324343784428183125524877473026447061912914164860368429844544387274920617464964080143323645736987262288140596506689197056093591068970235406296003741261279071871497312065277835994706378813056881883908213265393321111192869538929757288851233586912710678134482873886289936991855325716312235872344455271784624088502165506486982174852680275075707722756372827295562837716175242137174188733210144264049188015275495604991601268869216435131755821966783987800293632314692814192480891032531157221872969678163485355375012900394284415978344032769047941531504019716007766951746643163032843593091101864297601867069196405128901786305678606643217765532658803168693617241228794459395817065031608877613542627922164957995566286722783213744257590398240983974277817262277671636257795077181814634570308508745119257720748442969665085426979158154622154886591159047632103579282284965950627161128470104729169291851409362624739387594563868527327478504699772437335418088170048591143064027209754693147833957525561729303839195774089418718044826299974381025316129903315311013423054606517689588640346570072074883460444026684663572540417447405030898926293097214137421577705637877995424270314742501373920961392352287296431496871607272651239572678753241570204823096845741562265978000783208523316228073298929873158220262940378911312136953615815148935100027358448381907289529333595644341839934885925836084606069013818284505587254227641922304133073905802090111495692793741149437454765850143415407344749233519332514086989267466250251745431134566274284086853687872145758240744920235465484708780167096780235763677665548926608856845847467339746109242410453679205022539238513246164014871461648410016519192833995580286704269224858286963023075196720921433859226263599879607418741074861498857503642684807118753505219106364466667822041110391104830486637873584423886199678497243549372614749357411948287311625129112368711206016284457600287790861057129094233007623995919911773268923483501346995401236333764608895939418298921227040699320106363460813732517640802063700282004797981133372246485938211765088955053292332987730634630085534215363970335166576936536512722872845231319293176911067355656098473502199894925115762451598214104968216525827589513562907521113117758881857589006094270253109438634061928932615649653358741510335442949880560998974216997638580636623623973622845944412192806377326082668232129333844616497790532107049722158935962771087144194573753122953369061605193170729783403669948226698009706446619948428628385021381458886772804452377455256151876139915259520375047064751086104728469494431139695112558950132730141008132605556832714833512411064265270494454005221642100601399989611990133794467794596189291749245413249361844360792410868917511660322445606186916599271904814249069235721783037299058880283988163723460499958888768140031007978645593205809298843105558704264970991724669094105860482572526223521853500320577400510367203798333903153943198689816716300777805867258879984900930083472069978392906036138855534248982652060160697246766544134330600967397093208102660057316391417623445041794237044588188670474513813878778775606264227952157422236747265692077418322869972775659305862279036000695464118525161296433506375600444938549740199229289395021235535088842743756002076507790327045616920682023833392199925738137298617244157193481437165102556249007725030019981204165541887379164023333583541610510466828580439282738996822773297475667473870862684950829110705916276037870557815129406277753254531036595123743295832788285430699600300631128452370985989654995263962036488120694645799893291523122009684238494076082968706303062467666356129050870279510973404250475807508564218389190035396144243319462474884048514120441062902486147541185618550407415943641936186535158471484691285749444830726773457257017550618075173560092119197832317360479132222623829186366848439412123632851557550238478084161924730615264631734542164026666060658534021073365113112404783033651752272338242480189462508561201587160562548607259272035362928122973991099116366253114150515630123468104852363646772158631792077508264592033346532056096690696042381584143376715338225386354270374832480848166514513379760195529646628976174947943401061252532273701304520090945322223630813263240473518414272612164181214240771558242222475635760610933187562301036806887887785122823969561166471545621461975407462496647377907874079198818958321427228323494757457568327340559087813211921638731823182713926913548491805726445689409369957833063191922942195323930603665662343044189358427714547049696930483786887754144733782641214631319055331572539426722764590917113938417408236250430199982474460718654078111867526192170606428680304500350075243721646144833091499264554611211463546261975060093852192151356981472822774845934700316505965732859486173808314058361848821292957826368008790483780980971207533404964669139020879440003181708016820554353838720582509628226159057536628646184951012708383813090832622357429125570105247469006128828812098570528045513452158551643069725530994337111107439767175257793794043770576998260956831713433440071205988146555779428361247479385922765356838864214037448354761693353627568289206306881217942555849247415643561621858481407894202694940792742146162354319503330194930452337136570201105313562931474461652710569515501199258933373594190503129366851853000348083722825261410926275406529692011052384897972876183314355686544426216063466656644707397594104895818653274011443083069514497780191168063581368302822506955779087166979876240648896745023021760305568268336994869527384227839820153316202386003421392291851984606748065147582741433578773746771193043999078044652168958150221828263117914623601105116881994435378941574697752958605299013914193885178661286690920048653353353770204545870733863467206184518576591548283088785031932247207010890375852653887307403849632446158065402062897088887287791014792104943135861238424650658342594349029132585897935980001927380163180221276453467687833908629561413707017805049402609884592694298578541150622852647195335302112345267850358495146131690669572298202920282506708414077339537082619297067541520228280073473159093777115214380029979385892691358127790631250490501345945775744137892173031843357505352128116218645576269746688689424831096047151372973378862811290421435409847292003813561358130676658440111176790536316286487249237467165540679299098789078541291417644411870624892549708585770696098347886965532560001753058232088000263533166511221991202076621633557634584540892816242956083048481362843518227920926111451257814842460284763858134861858778216396806523989339659655286546556438156265804184234567558130379069302935199555687717488926560697210187299813395768064604165287544732385453977306719051736611060622977294420583389170257823931742535958515397902308156138807356610842794876556852729310927996568030704048455656322300037299587477569128452048991793886782470973966536292736376826100805240418451774327323377473202316543206452483563918100239498579917805574388651448945025845717990881316885732392500729888716420473955893209443247548094740424591947016472726068483067987429970585846119096661821216324006333513783496843666173306910425640414180195429823604078159317043170850470495861684087753692437688010572783174596709871147247664113865311573405866602261185896754521181496187874995006848887972075133870070615615681279670595046739565685635034283689328667228246014873780951848250165079114437982667919577243103770779924782195431909571047596860003686094855585891098473669604694001235269493377720136389887365081305396676000677004364150876458819005585827992570795034547657942158598747149193768154085935762370777363513165654074531761644088052111305976993334932372855287538069010799669445856392364519442031919055069706180126560320714238257616530468365434834726684245251104069226237469437574243294204804334209759473535497361967109674795650605078923563064486046650201414835719365743165262176909661066043210416149732056132956892565918368479307476789762642950498587472223133315222634231967903230446235969807467231143488999830025300411657210644810875840481771101496073106040795285467414012463112248172184266854964786248627903879849706954235652474503891100284799470938548924032938007892947692617889689798051113815833103546116018540108938609325615245166453454391423341337590453824365607459036792538037192217649849661688010859988965611428090785628842110754919021898812052333589043247973315755046546594646852480734745693450950815439893936770100094665917078578718587868167613250597768223884349507367610103304908969122216249158003685568865067468724886610064652143246056281373780529322878073044062741263951367226935141068021335961904099484479822818245431627173663057380735435278935611280200741535000870595935567223807377540169582805718728868226291704091011356791860742886646390276159950121029169176935898248143254153986693476658842980919492952618445027660928995634706381110163501145341916940631604494212582393365370207849016080001047246264612412597854361598054976119158388156819166432513130276211772830552263945752658376911693319882581229210302995887143863558846523395375621879463043708893290735562986706536702259703043946868977705989994727759510762374463449452529256690895762808942566919796550710410552585718823894172077505111365599027047856155815244602267275360725749989648190546908327061670540187405297478559374333847826891662238687260696756582198850411483110915162291178456180868013314580335887006890485543707874041746070534930323666189577053916862247882941371684830478876446166135878031614851347559287838234013331794983303348037786656180835952229575883222267470135521813218406819881857565256250350713972743743650536235287487876727232769490910726154613241329224541292451142694843602049914446139595319674582489908983979220019872480259754073647621525672722412831239136491179809326141772205805323771201752150892693057822897859914483950161002528196221085188234439899960740584173894652058862184324039433937187527118477947706283656098002233460438140203711346420043366831712776815871919949796140013242061240898022030699444303647942268413877573158434276638782354045187760398809911968207885688688696069029049919468803678357206620948842161773736675974822661158934238464046990297493354409199833801919788721102776824003955365460885988310247356485265049903692812696423024048872342429178840502061787482192848874726212780216404805831753633827467764241700139436876752789835861209060384381601199079754530329937801212205644291160972928024250544536752394022799618424121517370525852983176469547419668637866464611654897940624582725625926275756793907571370366575469553611317485711874563954328529202103699710853109002956606415865635271308752341660659637221284851566980998169500053567523250330880750935978600145681028193288687736436630122267831570796482776639090360884365490649115218745526548832260950975318506587439056830388829661768015764592863837115625846598689379673116930889151526432579010025072388462532604534834743889787588516925059594136645885858158768518564170924995745513406477456910278096557875197249606099222803372287936659402229798171636588772639160610407405486889558814451783310933355161804663187983668495687685238991763706747007993709502411200361711399702182878358556343063703324120927453066374709269302669050651933085030325730466426381562902850141798440530002331743829464632104680797701087214854530101154262248158867778907561497120586079656435524265261558540755925966761758097098631999515653449714833034686625743002828057408342073602885613399620415460889546595161944706285653679110934484025241660674152261545923025139557559640311467123583323196926496047887520324194477697257524159527471237266284257660501055370193458497111255428778416829631579309453066384373815805045103803692636736416811754811092918712584363842649590559004133897190736431105220794677292032986962896327481428937254417199471297283233688932982157931562690294765540314135440553807849088282877478795625045241508261183044176479969513598770160090714507375398425570824961286660057795634641306650004354677026413583295897180943438097996311938097383262895570223293141069684036549675182972436364374930667013144844619998684107223830716710436140685573922128136736628434685527416830375720923085237315520279227056695084810879295576983559341982023705477663441610610668849828747140386733706886002476454912769351515608398004586011174213935554398764944328480963625019141692948016785160390577224744223035700373899983078927230035628197062428000612946208213853294969044048463753610958627442560170045311773431831485599840758557612980131831687194715243102784969810849374978197962524919198845798126574369876679897294201208772361663838853460931425112408503245529365581792354688723651557058937699662096709340099293252539673633399603326622374389288209767857193593574947348263487092340209632918097444376535092719263273484096863174204098725493750326558434094742974142295118065304338088682363945242417645285452150888217912161561682164057509622237205726521289438182075296185991802144276100850283248612338313292349263832054365984643295332698018030694809554021732731240512006176130104162167165552664725246319949234372092171722824470812404561740437873783153651499298850459046873833265223144518107456420242507319073838796658209819723376373186737383063038357813380941234165389389081801436257371926385731455263918246080575369014452458493310443398898777674774880473927673368493487967317002249869893034696190072915965593098518654013294725403753992596515280005239388536320075880617194781263165344926167570317721107938542369532761541105644439196921955748706297897055860262675689230926426332703282540883496444753704372064316442870831919078707021090441122442827460887653669408453024825250656172661723295245616307922291191039921607826901739163567685498339653861624135918228081765484614869136569389382249193142242223394173905388966437360002737231446134068684337188990312911020677150509550382301240933867407922319376609638614809105264530649364101929549323043833221358849746797920242619410265238538154189096481029798674024666359685965953481764076382703751671199142134795758379854809116168590960863923030448650116922441001404279380877734067940923556717929402736937008436455620757720758001050650180023748344132245580663343581146162529263680548737318195680159136393697078361825470124925184250629645565117011839287197170433218890199719225293972794496983311131669738936639546169299953719986627496695295664911538062736323354002000286058482387108159190226687931980300343978550881817925430305099055691236624815582944810803533538029387346959167040888678960473143134601684728192078880010168119814154354907910186080795169970528300214451156997804761450298896545596550021794215832811928910991762461461927458055288084887248831140888010762751334859107047240468202108329142635570360465446762228105441938305157218257456279695191744486439136412763645537809877103466925029970068898014092209445803126025851159531090399153511119079759992587059762379434056923975700381561427863818223115797956860908666940689006942071525481106604951422744878731361733142811578981063742186792640859979363448975944068365036586647984018869045502665005896425047585732766559297147465676760787181280609429687866898305429633560299605720153321598377384909731992419641142085213745759178245911017449116013531845685445050862311782824300784109182684556592145507394171807380850286767824844309524438836476538427228193029132827434843655443769318450068467697868504211138015917433435219944844095513996864981511682458338224697552796241303372551694128240859683581082709368143027723150507520537820250823603712585411803099139672692247133242244105721580339237186985487366528666768563759167161406721131614944009252765365846103871395138180680578913329781952948245805889864480583514291230159563312037147488345535270640159647099439884744920665432154898543202086355346224472326454813194251521033838930554525213184704537698337400005488216220950609465854244168251681983196062539046437872327405406408650012684073777379915037213829636325868381287936885466462940799756797752987441190737370324604763186787162900007229602201509599280520041370323689514941786608067781031806180807288962333309986201440180612960737656614582328054541010264436771373686575348072640217782548747555996318048108423554250100721480788037710015205496432826913778910730136421600528691963455868567243860099910209172607907980981481183161583165880926603999701201750581546939827934687276487860156377827781387046220353051762842249399497191304123015044711470101702358865982602409238002164231148468161081153894069792451780060731714858163275397897078286137551579466297719604822674923334385305339807420163678109639735703999809342179526235972345948864990070618387002905471016312758015058992521919505513373050889840715385857090982080414790930371369992365358787425283544648893728200318919761729791171313515971130752255104051630617385720404965753937495313705187478778546337172502176158671254439428574623140011521345913310899926277360521507008819000130310069014934150296242935441069044872934286953712525379896268399457600276412128317684883337443544027984822466725356128948738502693479557226100270663909450059585126199451105485455251906815156912512452821444300681775094383616514093227663812518445459181315170309834671354276525339756741409664033745613193336584121222332623562544365725459552052728508579225261899393346120599274754942423077210295872952774768193703147016857390029651865189749587379423530772954488122511574292014960909737397352509673356277729687613217010398190683300517835419560350643694730342781396641986302918943241534795383946810532134993610052105890954165323635617494734485768910826812437505639945946414584363782179153379518086746884075450410594500772623471009780473455696646119061293469557744488914891152170037453806115018791957783973156020258059759249623591451100459543588888172541751293482886738232775432670058818834800428319279606474885103176343059416991261577698354023375412997419352894224963679116625863164812724488957675526698476512975099675975595079162557311191006600108032556037045695499694201383889118688060723611523994897517032229501987396305175248736944562489194119912810014754085588842864491114199264680943227115333213426955862810373521562735461942299867488058481688606331116086092375141372437364668652804046920902726844423487928059241975894992087084054196413368291613947671212517110906709203158563117303928176693277109834869233674882808750778742144102380982427330853510688129866398940940226405511999835786116718663995528326289761474310553041861697436184341363715332252133230021135968338575831016120959758428454936922267756685866432492741229969480700373571519826145438353076460715154493929133847175792034510187665762069710719269190498850568884405044209618035104974369263241267652419379211476312624384263069105172273310937371522550066056355478799836383469658327070901256367904877127195078650665616477954378884570567717408497778276972715144275275388090191419532755029577826897086070228672295309173798066513466021144421739920531218071651212948812136236768296296204789266169936774944619206060970588135497218784331999749935987920984726585487141186496148288858944930169925122285590313697398865475171455241808095300986963510016923079318045080332628401947406315010611190011549974546960979882566177810545851641864978629452714489740259295768777571159199380742541108940378119926541076220662941716898997857578454368272507074784622245649987896496628171443464331091816558098093620887620188974694125874988379524852851846739225629711496611731794732906087898248426827293596244169728759289874426543272781874790233108158058630351173524128915816659586352062292271101436735703902321098755300536630510776233955059709722177719771121404284494738304084452214662971109641345109618009540955313398911377346749583204093841637714162430240777726237875519699752324366869215903863433275982651552766120293366469447481477108251836130032483438488140476959455386247846105364434875678791638073232502804220024220406373864226118968630929079449834544925384343550827896896099712080622495638524117112151572097100962166223765581298712634012223453787468181016297512794945426360694077765945944030883603153501376853976409621547760921486157400830377441543163060484358750404782080734908205353312921009558199211126717939160139812574450362794105182596535781195729584521335644416532101320214974141143409591497745157834555058344014875104294235309910177107801534956912748761882677117196394974139431600868054680932353406835659097306142309211936614628905908036335273447008385688205694468192498247398037409137176269769011016255656816865984312472264168307445006263576316757293636521642946592162275305659826112518018883042691679535503305530280210146239935625758522432083286405066947056383801186760468888965684686702545635255743563695983134270189685463854810198482067460600911632192573861336814202899165495279103294006062989326088763648435898149343170027942783272697666681299508602569086571566580213996689076008924780124293840249574762423911731780563332901402947271845793184351108180989556610324515694299038989070713970959495951510351315766311069916492481627355121167886822432926571054024610935985077296220432602154713387309154289734055859630801637063229384967337221082338540448782354507717028996035445224925060623985713298385870903328294404865538437528943964197633658262530844148498669945731887601978438339899635580146387459516558629744981868542570798875134665406202259701157706048154566210849965690956315809450881673509639598211536339538916646140880505167759522006291248406619897189691689456513477737852994453926147436825174370131097625762669992837748975315734213747660724694367689024881105957349038512701967517253052753817824778683510549347366267323081567105454633191745139800568992767800448562562792372864394568373199729523777330803480564983212686050879445208759030472729614722348216207023225817056224139847433078230908526230832515318649880247493289647230109676174622442984347442208210784161954745946223530859142011933852694363773505701163916269681050825484183960630016261673461853959067642540117290391700625340828598475789584583998488785368564126568328995460666886984350414046559125169012055194155031591595506923052810660108336608341434221603712523500589520926013390524208751711377959929820033125448857649527427131819976979250529885292793296263601286987378223277289941470071648953695939198935478658218199358820743947762043151547574433763734624257648820990251183593503563919715203113432148471663284571395641137355281832410547044987095966481906825043061861508457632161449406454693535806302429771214302391354300297964362062123963621214430946230988762511000191246163123518591129923360919131820913993234133817207315238249972632675036418816191849507102223551580195540965622980277034432942907512232389563166069020599039391315667942084355469242807064709195709154544932923322579064258502935139747965741866135811185864389182374566917572723249854561492096218483908814735273185936765196421822619774085752131069395877078006308474191501261161324414130300692095764735850113305619091013387840393864769322054621813400340787806749835645316181538627027774268251042803662506377929816484620974055561151228205052642297898968051819959951346697255851530601047038154017938835972195153565670728645464458760677445630821965193298589222780027574037794534250409388489894966477989534027477979460591604923741368916249501569687705281671373326817313921288149677253129242166108850769577836249840492311834306433105020259950690838445540838189062132368826181699764307546212998028513463613947813056589544285701701996830398030806581461870117371737133444239361056409938187997600881409220114839965195982186799971487074636184593521983651692627256243961338710311118329515991843252343536449946408923688237308820786842366499006637831687047630433919231276234155337203175980294928864258889397008663909838594603835143504731408948176224988671204411071448233592797441898070779588299434549106872080710447273188545299604932130622692275178491972720315636508215941211055736328972341066644701505737979749509452279832870136866779488881763364777078650971933878591522765737225448298193071071770299136924474863215037191097921020941490234243880039320798498128817561452719111976760227762470185786833991850159746880420948342150617102193083086251924641248751024171396510040030882718798548664675202395028569179090532808319330634639116365556677088079378674565613149114050377889199284819991396255357864244398902184053885837094982796167062044003347840405242354361328193974756044658940703590233120517074288256871032093506019485106719097148528744599627376260738953778132974938650691428852001871691392334992415581149512941588975649969469394812123566263933347101793004576706614837856088075684956557069012243129198275600285365901711496939579525203131718373534086792512698809634952494958987926213902519740433010351219393174785986827399444376989206304474584668450788975867162650982663033868936346716752999215327859150872095619149498990957284980517465186825828957079566194541341397482600219102015138099787236120708638410576342804068286672389191189396049111051655560872642103480298515277327302957074497644809481516822857811457987891220313612009329143886542076504449163282568691739802261228491403559665122044457982733978535972783154111735330989755429107300783504323864910798116830505547113069145969036976158388014302363921643667685845038333361912677228855401119530006052583860620752366157619251975269810149138918136555619129559530709962840080212963901498129751447644004839656244024864367981831949583675725938229066811257763883626840066098374946241840945388160091329682589477106243736067520685399508468001090613865941246543128947245949246770135724766561422496285272795570451165889589847158544826747273311895468945328147109359736587269163396418329884937656953090501146480389878848493921041396725536727657347648248820358169246575052886477342922909057635404048781906157739545948782198989849000636338176739282090656547513938210590116887018368773847860674285056508491654588404868095809698406564973915222120985639417069249442197054575177063768789575183591996760698675463214748718356557310739445472599113338786085384966483999243905040074819627483718367386156850289905955828214354988164936254902369209779295699642399380416352730982392493150380835018788544460548873484678320821315362377429330696914329062094593081907751592695005565621183177192037336325511243998239440172943752141920185976437923822638472736283775321187484459653829403674320548509221483315057166128183312542666777518968781612133317007877613192742397216480430154890446959124895672554273891053013551452018448951718843548045665417225413508905360609283605708629785878766773471979156800501352239927902269232960172311615901987874947672465484728106735801738424488971913506012289625319761979440110751096059901574868191284246849097227011677334303919801675537576164885290448462021909085653901246903255367085358144756097087715280845678666725187694970237625035956494950786578480687795060187619578365786572629238936393015369088275644061854213445518162823911457346765943867673904605185714385882284373376474594168766451290965859860902558948551169348637026451718043468543029279835576415620269182419423942379496516633020279608143154020593152415330671473104729681358155493810026681256035577705552162030263997052410877857027814206338323040553897283429017914729570582561063986231346483749629631361737713631320161558442515358530390938535434188887738553931008315054675744781085358179889157731671327394900133112922849199596342402847972400929065063082970561547382995587038481598909575446991583990336374401017751760704068744373909906036003598376244745504421311020094886089170732095942892690054592466980563511390377056417235930643951157792403104647634495466382553473991137402897512038052111528191553432236187803813398498141104746049772973464168063169084274608736110999757124938104483881268299022431847997113284669835858934001803022054824500821940750544985666480858391137588998256684569348664737257458593397506273747484337510656255137334099127417653719806205987308653600110064036641446410847810254745803636274517456208088353651335910052714496820662675349926384253993713131625510474933060046685508474209081073732160018411905052592847905188407324412159819382309850362315307423259175433817793883257962165594700059308874483646163430301328291784278789510449417206762092760071139502262233338433110988788228688020115812237774121257017481932936839078513475545812022508923681714461246353393655627829620296087370209465807111870450052574465157614205217882481197965763298303687084800752326232085397037417499532869606501159821362897230405600293461967837678853564714903314511581193259829141378688773096071403036503981703661787082537598011435045434813674920232165273706338377160551943393780055944753179043429350604291743301740383714333058879051874204880189742983812029846899725624639047524907600154890673353437180981302921864873373237856319596597229206104228055723654185106151853631130885148843082307361088801434735037274805148905342770149865078992285942361990615168619053784482320424784536776563631669827643675701635796774394293435861382932044124814644122159900938441601737940145717220001136547123439634722980838773824059591697590453763315462958217645535456627090971036360029817478327197350246244626912529409308680891833352882877340687119625501596103177584450249166584146002297656946405058300931217708131658856082342494010733865199163757135613445353754382228394571378394839249642270023198580173309946415235479522895390053822282354066856149849074321602833248685722529048345937617419719178463367955728950626834907509789463895641134013031463150144147939863419965215030630204675358591860261442081089930224269632042391152008780796999126931847056815046283683835080748469371396352751510999995047883562984215760365103120151938139983667784988260076662488580508915196275320132144030072390072759020319313014136102733844731625230858559785125641577288343160857282690302080520186624282251261645549282120229997392982500719971225105914199405492562298730483102453349721110239379171962799696554865781299048535685424515057449264951801360337884498872370734704308376604574626923709512651993015692727305472001674767146388941267618701171956763254581103835084896224911013096440412168270667044261107261532274928286610126426438290200100329620320707740527949184028300955365634428931229125118005734041567848532277770489345032625545145101917308819213630535928851662305762132168135520001445878896498620554289943166939620824547863785583431967822492899753601903810665283381192997342498431538299936754634260142748323891450032865807139931458470089616044763235346520541879339363363855526278067379727402951506439216964309558522318001824752444500252544251746324668855079594205220771489219010409910405585933783394425769274358773626267455962791105063887979126356813924196055122919661197855696279918870268604194977959656241878090390755595776845294421575292463714224624671428637061381421903650415973144923503418643579174125983132039743066826035014623856741443344861850650334765381218006431381192239979546755596627438011023740954897862964832219287475854367885329110101853059311664742316230588148431507975032782191332903748567305916934354738543435109111668502797321630968517269799444774735373108810489162910798577352447496606637623397245068407713170330724554417832871218179128142591646196772929541019715142652904641071721023909266751149885566213601669801873335577750152405420566127744317038911758501977213183851351106615689326938031562333974040986503330546592785749976280148201228121724556287853892470067237800484249710623207062163043154687149224479515075251716166065337888109988145513894892250266699414781142021027019422340048036016804575163567423573887979104152291143793079076640955299321340289719506850512907059604279207204807282665490137494133964683364248068827368510188206664792905081421639240511023336135275724432179667291479402411536088801067878936859102049269585393973746413546583115612858941275611677572412358311967992916500431841086164180398056522328961909039451818259098162556047609259010078549810666894668970636456938020732626398698728291656760940224833942596941482265163185991114705078140639687645241198281045968675967906068477212160415037535957204910047412586222029934549618207592496017276229688594179217254902363183622649846681368991472803096932263080412084930926337153083634914024365107669341719549786943153465419578373369813052222011479309641110261282992570166926802954493139274329448607018793065225998523699155250692226477595574735635417962398909722176410402352242121089080638577523337969133955680870218209374266966123101183949166152870694063282022350561952546521880427778717544730769064896231663315485909485214636310954250349544386731948085424681112319161179857302627471785205818681137840113556493754517986678710270859863496205284256196491425323611313334353725988724696902621228532412960635200160707523938885745898833423675699934668532777701723680724411235042451149028300316728313236022199069851689571139778705772420635597544402776591681947603108131932039242613225419154947098452644984091658147846625603001344426002343860916160762591866078316408633740921305166913420902368323226681586700788683957698498557803620530214837267604833464235076450420159071015859667663672931440590520888788340786394279903497276224160022799086049223309775711206309805818139726576357089802985674375267568283769221354355721742968112869827563489625442558401186628423823397907102164612158191975904172495972912304734409978790373356066959082775345725023822723607675271082835212352287299190621829455578855277697914097639767939801755354758965056085062827310141555515952950501689080522686334787267624043715456084698456253857971247422523196404028459455080462338594299337287165888045481215865191079048352064327846013524768109960303193712593726581463311522693566102450390316094805890656900810409946732242715635780226923411579974247311450129400767095982502601969179623052062416227550821182638023484598975739767609832900143658625970134815797140936183976792729943458093133044271311157807075088274269407380543368805854138101154005849902502142543792815409994684487236815863624908567217645521950006539941785689803452321463417648699351617021471643416961791147837623887083979059721335970326998884635897753416058105469702729928636959720411004958315505927183315692291514359181568667139621547747825357273233419064220521111191100892982141867904420648044691149729252192464960457522339620380056808014172425709009169403763286954819293552173415289018809442668029371847609528249557161786250946910052914693042334784448195334722657882667991411391633958070137495531163574092914646612187328356018670665599268101496811681058338721973704491082483577050098504223975319348275463132459990370018830886925627582203304512422011440622720296970738945274925665711264678057110381932412163887282393252462077777683536666037693438391759124536498554838092475680579439581747518057077108045024760513001252573356919811282073251988878828606129242518757947318853689237345379243094208251882037805125322197229762692876973010902251414880095237493694035994886793241855436399355579236596218814169734658630036357253327422653856787429143482675794439667651790281963691226152501380307883912314700012232808908421708527479515255292857412515335575016736067927075025084771560406853306652581829889374114471151415419822531910516446109932819566881569009307021352866545093971541907766906675312334153483422549681091543950850913020280775325507124740586388299765620865947279840159817179407032454162350530139953111562231633480869834699873410925346532765266163281898429009881602547774450621268071910671184758697207885147917360432147734496272037279728349882975673444254731329525619438605918028707861061836348851374232988963645544907676173266249393475500749656677651415029133553701193242665153182133307750423819406486971566587861492267588129484632751835227679703677556809410295412892522454087680837857531892894447786315980353910326535124421368345565364267137546985459205580501073863996261473871047328558057222494366715233009331598821268366899775242503191401001487279009816214189082317009731280442114167903860185292866322720387472513388304150339578525704027788723157473401446711695371623380233084634163322273063226372487772606385246555215222864850476523733345271208074232120981881156759626271062643206723235532872157758165192087197859768026163511642735071121998265085885781554577533225002575388040448440223108309556084927885670037071582318149076678077372097983859611413328429978352154214095042907816366504618229637508443475560717652742616730485613050805696604733915203355635576391269330219017391388466268549513515540943173742133370193822092408320962394572755519975591355789011310879249299418051515684746791791854292395250962188947034740085127015072139200494536634311926300776532078817381650139937238332491085543339270592775477992670086989348506197422137269786798685437288539184157979959592683270324587436823129620339088164727717198584395125881340045251202043034459026857477098256391280885305032623385797476956015275767210116241079659471955677332148905441208967321856561928609392354790495690673841300180585180900880227568218380530615000012342146576780860949031229692920157252033705549565774703512003045371582378762033715903383970454862076069003848250150406843238862273902734523914035445533832870291441649826067894617267456609734083816873358194599552230123680293760398098705498695336599683078908168760596924845335628914035625940474182382417883127947443987951700239454194757928788787451371953310607739292537026812375062583905859378380954199279155565553438955207129354452862294847272919364953365624486790944420966324972350611198459135381182947469660992892092888866387406474036863487015752130378504067328541532897009140911438627469274242641235811413296929447225503565224427356810128730869963409550539245524341502517778495973886843917879858150560764567874058152167507758056386963033742439966176728616476520586234920133545129987206620229366702025522760048219005272255276680259357729639871490811422367080383406953582726732714738974243034148632795309834574554587722209948103412258233897480744327692505228637942868827191002164883326967331157945441013769047660051490677557025104009900303560810853707978469277632191198890188278349076869100108844998296150512940615404233068879684829738482979632190267820702275514111638818765660152322917724551240510924797941248764271264345691921335063839923107068286158081555884881118014143414270473799201281995995294673089022338881377069759470296908546356140893318699534033691542048788679788307993261989927512678301979317829069738676021757292081179357431079218389150782005595837430321990889968796290127914548698218430549757893637395978512793427815964846767708239681772446702307884970017329358559935502119338721215801076074504154471963162647258895444867330572020049071881734371288767141774747186029303583753141211665228382445213750164980629597086998423999185437082104674170164956662816394100410650751343134469053610774387526429803973139309060505872172829932161554356364936445107077182153149397314243462176405046977925942663930520212778945125897795071053220228967017835442822977812507576997397134822779914984316789046608686412220751322666104850979523921933497555197588089399637922086073339939263867340516088098544366747149859821843913550064838304679628496467387202706409520133718073925434017542873908052181586711717896914412554823593247175875794521776718524575084228260154822435885684105055631599391449752768996401443692932690005508060048946495996334380575367421863263700944475205515836564945352632186760069505814922740643144542680591057840038075683032842044500876161904435919448686643569013116212947633990585141435962548029033826571691751779130736285293039591807488723522703019783710206689017873370142412549982170036677469565247050856063371793351926764481026263289599149921058377709586535124584337645907639589960139083791941288980357176534033208574008965787063886314889257552240419959430826410675749552088356342591344982914171038434332946151816892736038933050156752511030148661363862237624776832629817361798211882760478079024902284200505235119208848486415097584154322885744050480152424896893618073369421804895214476519454980670278847403204631303718851528093463935531479118601922539574462350916546989551438112643880909540831950957794462193385703489960313118878831431038550764403370055367207981448633022440151851329811752178513941010789511932352846712724982012348450278372610713341815970418724378150788361259294626651925735878225216941981541798041183800109183018880021109082395453654634546766387902591433525346320434634297869750499440951005660926709081675497211251020780757684531799520869905487638713194677158471916676727739203266279261149862685489820331041685343189090344233233716933425330072559001288425488179526007884706842653232825297486734430469863813032065189694992039501521004592882725107940068724661107555729027485015926202037092852564975201754961745555612596679974855886005897351360585742082443021038373389005740620389122985071621690268296294512452994829294561069020073523334357907246066202487764360168713583057439169141734855635880106483030791361849765984983662695604774537270394024484171105033869602928094758857807460436910560710772885004537777360059675498354456693904034575474685729868513307586403127299127159260813179682081930193790535971674891746026835100150915469783368206645246886836480569342432639395854000486339548853739249895975762374483386418427057320125077939997954545199305274324791188908160973414379921667161676359125434772990506907021138178190923083865572256031492626753905850060204444893556988189857248882339759213193698543691546322870932775869345645068563103269417698498110301280799691524299513578324632673922817055317986348134137687762493844147544324665599244875503198480458570325548660450260261850300235033285279118271638308461503622667441516070270028587700085985727875121365269643460883529446356699624178140579472353801174917253435093791504155360816778761679034530816420066204330512001465826617212927557033420529862922403374414410207983944485590367850115641413811183006390269410696538427638328808404869455339547848852307377704884892165583689960006671731426076369914768092240758095485621215480929239580359764942798213746266105136028820441279507298597666711291624209528771484706741592406193680495750227913906787205748286586209757578460966601152959001868189713489559446287468076857088392563982550900738791458886600204887523913428811199967978732594868985316071279827482205744925816662329483661243600878051809844144399574089105584127014160664080087426211165681413523155073388039411162522647190199342906502083766025308785444350928886477658838870309659387029073503047619753248330528565009375561153121182050201020477516897355209564281300770459421586618536513633154048304439631442995279944588722503406204078787890495049886471802586188584638678074446660594304479666694476202885559226428355664254663699851474237327139850467985560788199895703176561254796105921792027086386888203243106824246272996486869613265671969658006987793215980347567528579661196504213849848078516114699614580207915823312468050933421856756413882830044507189333270011279263432853268066896615341519501371704962589896565721622675095292756630608420044380529189404422661977678246505065104076701014358795361908473439388585367925620920494561744279627722456653580172002502893935260039490450449111869463055444229836702855982950406052025905922615802341190614823241570929799886726480481921874904496142575470384468223946886300064294092439725806928368634243887641814182263731790746820614257769812359489571284151176750289193585049181242650736847054792104150726032359586632160182681138382236166651180321014441526780044275484708042764617821354599546451802167952894389613891074578894116787813979108810584977913683126432836594390371906942035215211098639379643656465381342092906122716243636830977081543126492974086674968123940391382388142634914183956478902042550202001917107430111322762359025080994223223044127868318481428027794429616306940609396251054635868931736295785438160369864077371415530862452604991401288045515538747937645219717755559761506169624030226763088134126502181546086484676983086784310642781654452760460167460683906126841759228400593767723541441595925685146665711644132390125199347889531861061370216245952297756760236551105619267526069321116334953859190814876947220550554018350846535117775834312168315464425807507577277333930858799679732455114952280341280550893544659476270381622053605290791564175359152264520433205232343178266468461669591423337213951205982640181539442948359210306623804111138887458125588122683333498123869783003631072558522571735136691161828322449652049429741796982750526262569599288403944972556240582793880252709644241521099207719782865994926582706313110095335459277549163586187748514655723970985298572868425278984356469005055900781587780845970837299388040506630772803623644058026180318986429381145960230674229957145745634650342705500162781986681645629376236773068948028610262460572601920984081551086751391112856912837837284826106077774058781208817737903422004925981036586945903755662679594220061121952568409910659490483343880564938297555097315701716526059979215790094048734541329249218072083480215427369114687972505471274874977673600613954354951213148920218620914802917026478985785240621468029936633067481553777612574641545690493136456859458439388507861363933489990338153534095136613814914206132570131512971370127848125839073169982224833527002257133731526686059209302421322568374864525652810108199718154629898682170772217104597964727070564105768860710518507743106751775411294494718087488940753807320431871507534837914053064512647367668905804418754526046987682568896980815479824262386595667580360618338640251235912639121922317249346383048054031644395160076562335803824189583795100156972605377411691316129411498165525263655573337652759582538394913052394412021877615544387672263692855133777045130174377585265818956185571793008095054107617111524310437424294853679221444140848054254908521188967224069461375121643063065374237371974035695754824903699143075541557843424934139550700729833213724806550704511226820594882290246038766439696465144902493010860047886775404210019576029841652699939568178132734490699960178205360980385797257786471987155916028120501734027804256785878859290223576945751026628307094446084678093079530009852547796999563457831901014313255637091070842114931943709183060264514220122200674596380322989496777969026629330444687850522736714136325443465199092388858715445455527248037040746633441591729533208026894468707688260395076091222391869882194332297408957333210288210133447207777628907421610958363921261374704131148794340982105412765321485215256677996218735214349394892438084220154225721221288450251418655239531761868897319248900033432264335349545896957778414799776510603509553751029312778592484686446405883399560109694610714299236293478178273074196674557287917132736966329603049881782880590408467345945237443160342698639407594316791196803246927968551862775205734368537102540191817479855999932446676995259600503482344502381140534963849984647001217876088682855229026664187198467380521671675469703634377442291404509995182016712712420006336831696004459092802598417085776562855868977034264196912316300832077990297948423703650709476079688480880544426013746973207057304808373748706769957612952710656757926559519717569618979874963578534590108661954311935627296300897467499808031280842931395728870884033201588719818989723874775079849492270679958219224808252153738341034828722402224368598118061019120509543460271091098197181397627691703084197833374524634737391319747248126649328996454266447264224017606259371832765668821238741785530505034060538983469470566011543678678072106406482886090421369203237531647351778838403700454586848753798042494653685748975654979459040395214644833268659402055833422767930771082485779828905581417510582989885906618586203554361725301046286889897542322332298839864981383685992062246379608145135000272221737384022261128081724832305988484047912624019098578270892812546935490007665722839072914254057247687764753340718917112543245595342877116067442667558663203694761163187735768286233506638773911404231889546945881134625776242978341819979236593095133291410490958061510607661699339032191683882948246747604561819960085350594570963272431415234924627428347795580227482865960699334388014331652826474670643958317737119727662348289813054164547185751671250108209214288958642063189430672857871816432201969147966896835479858789909280668679145128790266772790373801136584075085949681370289870948812775578223181482900220358447212866730687545794197880911916663418923260777659842977950763808580228309491037417666787267489796407139216571906988546131546272169525103217532327347084549293439483867276631401968469825594272651816059707015867690229603600919652996560680377084151371134629322919452757769831677803636604860740335797386808344178063550008774057188322053565929884635334533400623790525314646623532021306142409196404807035250994896986992751602123044116465058011340999899754640513171948105047689865550434371653865433776210104054865595965749664892824937486628807430458173385372199559670893549295291942298641641123862181948257849582623611199148534508950271112946747666869351262174780026464451594185087641749311068552961820524046194562881613941876907691040337416747948711857840005978989550910883671387236743195298874697732740789387870385865941864362410445719617218326845670541945763468737549175145797967829086090677022133409087967500429182852284074206111885542641986675028816657360545926657248452092774758222864563045882296246210387446406234058504405448689524137453001457108439380929705039401933918782670245710879060357203724839772371130675082360156182900044913414692992025442048459354744262409123567980329213647339798960082373693046489776696641976634322683328465659558930775203602146791179375794334917794514924538537731395619327026379257432911360525244639519906808061515359650025704053602799177124968029400018412092188560639906885548498334249735795638230961739167445086623525544167389205547232268387973969212054879824298695908024943669253674435864737286570062083145059457871070702080160822983080005913705944445013072237265102391957340619971459989984487071900584094151077542509663902273821923417560375531123878902717769216773050144800873955227432147066947203435249241117379664924086072609444726461126562955715178336784305573842063904080548993855479548227294350301911319088373407512007250480176595794742099409337077123028858681881798890880192778027710128344855396246116728472127836105119100993513666964103064678224729889409979316083605251096599077601522157735218277929176772721963826140310796574396259269685879231143910472641585979806284273430120463819829856098699225604038928679227042164283203650833425132576338603228051691294503042495202464945839795890111227888185575758210272411133968920103618976766880576138609489395791375213721731808188473389855420653762487508651419346315409358669424072383319251643861463485572304779596343642207123925668611581678709033201617115269017495333509689136758255759587963424544761687531736957235203774163130423202557173565970618079336374408739425458535346041496231610875942015694991073468230475191662426210090372742032976983117426839625180624678082681937183307002312253588882873596249752134750247271087269919632680081988478897376782408965464676392845705968783590932853358235635789060239782334051260682079401323520291374096071477767534119103117037567534738423151052437024196130369793613296917664706105387711118796741661202738902132619008110815200368977321274339322766666260622145138938436959754838326543938633142078278796390104334236933816732184287654138959241630902523459123907992510497151923547077251686748232012599945069255424015233753164470050501075823711071684449672531122730477601297888237934498611035404926388622686300797577552107096613966069706330680942808353115702462287772645210880169363590619243515372168665933806619877074612998634734065559940420271853515035974478344110083295508986334567358068856109347304372676257874964966565034262077573134434652642491921982365868761566528362829718288684438848724083578752034116023878741802753136194025868274911117371173412540322530462731086599809342407927416079934730845063259679869442414180257318364884315475980553944340067153478743264588251976886989568441297055142027644547573105961576730234665608174021033305537611074962637101794559497456249152899772835431093232682094162486020850358729813022771917811800806757673473012246045007963728035848563412530652886335024420782251188643494611668694833870201615988131258674229256271676138552037452013364158477818726771460758716547394682484948751672885041344782039673583769877798571085537893258682410475782386630141575851782920018815864002527588013340215909535691658544540465077599398900322849892336240623408015443568641592327498243529002216832622634179747576484060531083190889791079664143110912443293278356046081649650220392376811577475447956591193273954652484120051399165674557449774730064254469056680372367861558884715089628201767595566879823437422227937789677407108820154062148367482852581341340765439576911508931206364415131727290877601450057228825641534845532833522921178773616342064647970309157230895429824611698387988274420359019746158127349901436394577011228883928906670461148554643007495241271801424772874390407376863095980052543419915861235642291901242066541158064205011528632094787709368789941102496280252243333646119133297932254308084801967911767050921443765595097916709854546258730437210342596349086608683472788274246049959091675925959955176413012530531463708190258718107487453119999396267594194408265076923388587802545428047988322780708504562827427082659575355286108024113349887437995947911787096679255482319693943173015890750601726122424240673287102568250809818861211011162792225253564766104328719064680508224056433999161118498436142825877951287407287077801492867245426012595343070823790881422650143960546770109097783234166631918416251174459266175249463723506874170425577507286990927247010581883853678380780795914809372844935995814169476066414074961453044174718073943212571576014132896209794235212655863824767656051363099382760284402737112091681748524056319446185024290891908459020548016808117484128552416698482507356548283940798737282317227656835365343259267302580824020089194518696055774709384431876508027327653194744215788299400520781089685481399171363298355213471925001937824346924183786684322977691411654421930352668712749867262124494172935962586203487389135321919896572130749349402152951969838313263728243105846913283402502987059256678052290550082409057701737916230453391709584747131652143261148779234743646469775484223176500708692378086691742352014719496772970231889003000756633335021794282195861971386422884078744484003595353524354791112160773522593868372634548388136865926920543193755140471117426816361433230856553201424489138127527411296510890116882833600680501276279876466586984078385696613389158329381835149018944021785211017763305654363700037734311896945553151290103093637439051573685867952145384423631982526061133452154284394497309058966305137359347356397210405883533888800299223651742891594221818651694970014995599875407912039968565093745213509044804436334779790359142455484564248203575811141117576157792475711057844955580727361898059333013851356272612617988604401281022130303730180016548557180607816101939103531971627537383416241514816217856211255876204203906880782086862508239169772875962838867469737511297003934766538452022238984013580989574066723229650687089757129455653392568741163319055738140336337537535747362324008651004168971070309876933882146882220854560526652409883778270400592090082087718215190633367244352024782611612273105284430228507118095610469571485783472063497988466159292307175059545865979607506406662299091430764487558774520981459641774342037998709186595469520126599613367248958381873377019320313076355324145821623337610409607931181737313387696884635728887734746457644794725438598494429584732494941833787947612129642130586711564540179319180355149115015564238607582123820249190147257205591825029656564329246814199202727176280772489570971856312313869046271445528806880620934021143055105771383117552680700239750775103739723603449214814868007742600299360399380078977886370069514417942116459409862020159598577800853050880019298976271258805830782400282215875255214618543548192893014358943957915001501513853736492394157960559908946741239178519180608613071607937775632587523424499157461592691189126311916781396718742515046397065277819490193857570578243936691982912826322523728574356128393228796312557570253070583162020582074189917480361411879797016507620830731274462134960262994820267074448342187511693531564131025640596186001439753207844432466076442818733440727409812569882553301781185369839966413033335982898152665127700849338933943274850500191935624434617241532496601428878406833152089486335424178266024144783185927413889405783072183254585869540517914794420045472086048850243020918165470475840022448905759610939429242821006622055061015545676043760247599746823983619476916568614236722523432676241135617997031947210541190556256976564706909479469443262142909448538177452471527077130807057504942504560089594508447719195684332975272311934232238475371700270361047376555943553648100394726596597641460305711111473478361952616321337283830406822354489549915114716622261572925206201591981473901194948247554178205485438083564058924347994079382304039185291745147897722968533538378079181411840745196760242474609493473454943651323853025857558674547093029881429201242522263771968816229851918131781056982116084897533436637819222672462587106750747678008211616929054672826120916029151480834309604896730340380340589504167879318957061654285720480693410478200594953578383042189664356957816539140788503448844252409009498637306063134178801011164275995298836216869283414117490446646760017108814259582789642628950569471202744975614788152752143840512619694445473868773286198531581452216686734410196352848992749487570315908219145060542633207946852567912409587784502312736077730173200855077375165450900913820575173549447168214324496243744146624759248813745736752997006025562101438540166188214071471575120955219456891256925458594551638966493174788347949976567374008622533275286165478657610837130588993039283856252713151936975532311910423416806822507141742593962969540219467023221822581936992585603655174364784662965824814673575339955026926613100617191949670765827208051128208438470843442972322005279181354906677204785043605661122181442123680673140308939584729789496299762282008530502943672774119255907466955308647307274956889717185734313833549466532377068608560416757969514766612497711744733192630676640421196107305380727160852773268759853242976622313369436329320268160971342251591235910800566623214678977000260612466928274564532924544722197183323149999251822463704060581444540514309807296276100797343327202326432550223620119220633429739666699493294886510971320706714963464974738926660046097560347039640062166183069865378255101547645158297561608610028608514312882915894622765863029847030078635797463937354476873029166620044886288261738898856857804639023740519155787051163695523410107909126820832811305518778285159539454832073602245967960497175826454535999336683461845520798522179238708812472901291117029519841887456826840551276428521700597199836000231669015440019695583619787251856525013369794820148971595308933321542464850962916405223680261983376444747016905190261382748423516858369769588840847776104635249992305062338152523967833769225191284433966651127890042343753630333242889262198092424679740012354727848440012711812426680056284955103570581650083181904207681554487169659028986074422258637853384303866362926289771774060594204319159262811704720287652015131557484239798110171917911563205926725946304750961262729487952256622672380905237851519498569745843840763728019495466458330726528564405166469636184430484726753188031613685812613560360118232221539692727485894651515094095125925165296256288953294765694956461891903380847212021982036670638135082880037429316513344830931001614658161656647145136003167338479652804206008267187698948333108349007555117050305223246754901270622519529213387850667036845803070388701046715873568009410267946236854101669266406708563651268782856496612871599584617778744102378065323446823891683550617407744648033766712285179736362706444855103576496695414520767913793379039469855295517587885743586294025899197600554720625784140095257111709400489176098134505050110706022005592335824584906279017714285804246542823942489715641988530295686792915728343225548199821388949914189378312012109812623042521263795684165245375215915124566968996499726872989798430169918104583755327437236395237449456815730175186885141875994499671279388967806021262582748854453533989884164802194406922826374780338437866471537281681187324513048802151408612156442686632116828857002032487763717140203613116713532809633625711737080583936412715885933926373521729389435009931076775925947648815753537136435323414302875810233301198369975397693896471500796481022769082925865302994595909723032607628358586092719553112902214946709891619403130680774784914892044987618526517163176579729921847075029311633508664758938770230640104110204903992357302758435715532525146206242661404762581680914076539871055158223254211909904201394185527779927724274813838216189743959290454929083638119662960342910646386269022321099725588964055396784725384171183930962376293649873444328487440054602689885387736216781899545535503345354409149038078844206782448093603120977972999650764930664579416162101722197532569224839607232313353097654229975099164958298624667329631927139576415176018796152657662675739936700745210447080549636839876345100910423752509697591049114624140564688971217981476618253949530809552973596933677873877951596272156436018768011735502495486813970440821492450799547726334975950798665533452842812993121905900480227629253071228610566973191445355025692901149921322971401884848795993392426674004943122903022742698312935176301509795372047636156952873802557972981049741196921868585805280368770257741916988811031846289775389707185436458650790570033820712431816641624445076038511643441141702185628160450431500263424823636620629289464061257092418577085283442409999304876135737998715720365318088882611665635354108864067540466838846911595005944354622938992941710811637376568932951772538600352943100058931700509126099839019030169340343611812023256991500605083962409686373522385765868687966262312352745134167218913594479842152781080282232034914022887843371763293500824352627415349049643628786422238114260763515723408268643854518165387663932446374588575563798948045123676323226326455145562399209855772929776467025615288104308267210189452702998522810278977844006067716709785529742724757733080482473899491402049473418789484005392258778934184335360553078121019938762040596597387296064141786213407909053882806932428903634762017339644239113817668590761526269660190336170898297831061788253532444748745787682341625457784136535615019064332735346851994475547605244224633907031096964112331941688026000496177036128624490434309277027291733080946634956502247213781695928809010826913650021599919243934010540325738139331191086819896323518580083432847732448837389587856098093995491272794712352116441237670762405948516617320646870268019569925212593742257181172713118057870421439688583040597657345950412952255585453357537542231681909209108039329501616714989048633743140383229791319164234112009167103978740932910598319481634419003879478765495188690633740724003516217667261074591186443093130691631312246876990742886056591140373099966140249158390137975464746460746297325842704510641447343343309948161927860049664204635141671049938727946126039284118631875364949378326215731854253585977354308117708574083405563941298926889288380861137251470121425783950911981329785787638124064633826891094114317573370632551868564863034043507200146950473457490249505378287941709998904571389493719816406480968700845104569263054090402952477769833860232381767939218616869811492371312920376005240434650699851107586738647556082735153204636158181561080957350383165078109160125063863441105116022039168679795549307397977309697662225949787136421522097525273823160511497779219619576188422752760684843910407112413428233935606207341023468552492277371950319635884337150792958420820359665845420507484204683710938457588462388091428264245874602024607876441633981976761995118657430533480629865111682407812784393530345617445029305472616443375111799371613117448257772146466053411831175749541701761855874441014551052592756597065109427440867532420045665880739574990386835891001068264288163878833304327178167651048891242388463900117117001529117445686362137940350374214976046127424806050279408359691429987412565149699333526304681839694411636823942904744382012071120431681182173495308743806203936379486923220860937362645275779190728420883894971224924799988226815499680269709376224813674423838511758887577317464633288340942140244931469122100133863389088310583058373093747281060052932206387483408693092472430737870989864563167299681921033326329594307341703038053019214203088694185130379651624744352146305206806895224170531206096215208761210572249043577241563287069101230516939600563362078388494291150278197816382081023928216634516412302425809116372980804093193784945182962204723326881783541407717063673235819770224192126508782209846211786085398861166935478592686681198746161658773927050702003715396602727898882199842736310515565242967524057101421969238551849712685899504993272825413375225180230575834969379778865525505444584308214511199859436566702021910608341665733355144962022706435614660944138458223067287068022915322840753348284850098068096005988995337371610345280637208748624536500094577529636897560489886583792457535162868241311310773923350625554171561129062968008182619041937976694319700393156071907079997679433510413016475039897336544414738243196933912579707405626463049685930385284285640591023597984900185404039017221507472545013199671460641128322531441858789584481010071542872159143486487210282917907865934520119180558006655279860013202468406580107908270550282363980754801906655443765497160329274392983474725138492804268343066494586331932403313715048695136070788242261326042912710206907686267270332105148405747920176759790918897141317062674419747222770856658171315872672515403688798728984458957235145919024866797738777613374924577979916964940471629528609638867593167362987619552767221201558073381636758678990020023496794711731303169911007751147678239326102308520112755476430218822980528218712274419467167370812199448313170856796700407169439843486998961931774383025224026032162521432890326280847829738751482300461170838103991286008089373855551217577968103525745755192809115104788492286879943216976750282511123464194087968088561752956123468016152355316564573959001772047124948437706535115546847431628058066593663838063789665204472960133618732581623045784235499401027080986973335961361369232895525394578676780516652998978484372012074244247770259149414605582615377448732930659625551410947539231955512353566343783683260049685808150062009029834626584587307497058922406915638721619199678959717038961112525549499652588176865242991924496517089682174821439067929530950675650833573222152615402446432543116976149351365657897746221977006488312852214757725888719653707656508374658770107527905212193312183818148498181100187742382003036087400255017537546379888718571128030728106092808553847835224994041023948036224249458047622602539181360017678580359562569441351971860316747943392027076802769364071559931952846136751208043409498903179627901382595982890808133412512796815079391714994395279414807858149498098933200406336470519141283778670652852932385828658561291010466024334738742036820505777594434124111407379014199813714344077079636170035701731506945757763677581388469288939411105925026015612060310621987016769093769671030420536957107555314392500707299752412498883039165537428188011667548261533598116235098858714207324418198275246996277398214884027948810596414226899411880324193727463100521867228167266560461735861269445700662930208714393887219000806208943720343229100713089458208261223676796760252947674765398570394608178678542126667554592680919514288054497402026517103121925355767790158659805868064484882327618819345215009378649536401294999809099979381361729098290722136627762534178898334583656417927508231342118240656622865950387603664861013620582707354047305136670438642404639448268059708940045719107421964818482659057972411777438693699883613795978927840231268979415008563323454672327529601102860580651177281389080475207549783764772297603847555254955680987223842281525947206695258925122322251084531497176877971487503099621147190105314549995605486506832450538686100348695006100462323146333340976296398632561981191616879211539189925059305739162801088443992961275764264289231472461229561435169888746071680420968700628200619014696512386604393614749761220137373780298293287170581485431190014050591030944905959138989320618213402675811299695280503920296577083784676028836111274307720367072027014508123283319214850706623018648538419641100670467466789604137579563825206732845464714877323323610470414702407678725952745655996343591116798598255335561856001728126201502207587842756663175429319088169372681477891606980678957243269707107642180471633006944749267111194884167733865776372553008656883691589464519378256207442371698244506666183160625856476961919203475728515479868918301090401285707621587462797443753288731426858010996926250414458654575786979628036609114871381376558030672545981098223214274366006082431632557255561217572664866280947692086930170094854649817241395399974289857638576195189610693826797567767060610250259108863823406249843681687396427634570971720255352776352974560102221763468315075099155795630865075060499919999854151206620959363342292084230414692766376454405437920782679126479155787677392686396558856304972164150151008502547408362049732912765390668864241660466474421506569706936658481438225679022221529282944156315519119063592891771959223300136446811947980858357281000204745147491774212412911546892955916785922925574636084033899991632196413321286412640878742908351700941476446219280255084192508162273769236558548022610980280343949691818731576939854059161994574393527257665347933618793193749967549901654871846815160393102246353842289395012504990161912665707556080644977566343516391296242489277688660560272431696478452488096120329230857080898459361657158133464487214642057248925448963355535639051630630771353670400124308288909510196228421604652542004246576879340740504925186805154382627368855739489240725490755819222414552316314027554847360219475570317470166731699671423562770395203586967256323302101276216834769273784460722226410439127018452161989184046932481357788865285351406147910694458273023657572182060610615748208533772426986900132836857496403996046054452347212668625415210328002660935432917794756553549948124711117156981204936070205841737817622228013802884891291563473251576256265084714572306077845285482619858393308093101983528788368640620552808496637507703754302972858176821389085338455665861627982515708878747707687420905040993617539946380190171960116299721750266781344491153156066334108409651736213352351734188507316212651393226896757586341778100928626573525804586893162872799584845814829559380509330423155709805568646229058315676127543091121335265010296714712934886180530971009427214771654473690927254003915483319657600469860544484927778978232218330953875103046889435679571669025955957085695607545744601339967971968584965906816642180741307523166505180737987638783388311997269068116010416339416497162401755240994183573796666656625691394251816037897158588905948446954356157305487615186490465164297615330786682356193047591072901625590338878578060650895043504438916671346041082435307191644984916361330725220745014173786100555571581746840186683518483480598675776425676746188246034146611864707053486972170720399826130768988294613585067376399650817002372915350175019751175972996078472110557120680987090206392011563392172413624434427883738812254175991039532938039054010088629115856883245587514455568692856968218040021108827839290627144153918317131532157382124055494079151353165155956248746890774668386586190896487222099633014243881100323445909566989825558326941359155454661892621551483709808178447970591318565094120184966966119588777670743938889615367917858235863548830303688787037636275233640854884705810791004996552792782204081574249712683419392968139580866178035958867772867858355716489547919919683457424573689985330468595230073893685789659230981897301524206927465045307637167272327009484656738570886434027406246965406916616311362331603793137939185943257434948678330468640707017625877490728002959981044360154911368312194429760234551354466603638584108065987776632247360993003842358193175957453064622232918320859358092719248881120934639831051576685271622832630293827024872734505388190744777501241566681205704329169192581759788160200358231652427940505235912496045498974029339741659208690748755204312739963998766220679568885727339621642178295781259721611752221246954676142462634787247058277423311626911793375706451589100386061128858164705711880619405934954409232480628988090274192720525142339514259862359826955180348295320307385745762050589938991917875151673132749638653282179305022043521618227208116706069077327623133223877547583413857483359086029243518677955294849217829087028659670860450296680469012803240098389968569596216494635371012445380721316118918910555108962334863586458644004805514649581026076513292126300608893437091488452040860801719516880850595308857781286602579264412721212836265269677510102462255393664978277962294849628162663574386160008657336472403448063685509638148696953366643886155897009450490173427229785986628495734055399878961631753355953559080725993056004627057663486090227136286932470242298622055335964431297881494861813123364619712249338433221885217544382949832433303394147486837275697172453709216601973325552153315742400927654826208245094766171203366299897912948633779639090484165597136503263107191574415015931542068157162939020313627827772195617721728712306523088261786443252100689065814087015484636671735541301285865231853102622594171165013433670256268924544108932517315478518998700623528733414021818280547971976545907417146152099680617267820911617874942909276799235416575555236943541381160718438677929588799720600003478922972683645691151741860194373807565913482636870215447475829619074631095820179532642798387661040594321902624393800827557316317231416126699576273352124771729761988647945305344686972755927666976881634623721411270180957361343080716045481095867869403356407784560914185568275855736182592559340498215940467505926442520001778588491415165451764867668124337797877349410252970829123409451590763225810086721340460903919241313155458158178489050735193411122485945889580929058228271008761686901869852255493738185328437177297394471970620077722080311092486115442876475527925613823202250058525158022622359625619235984308851849687066752687285214956825017287294591144899226909735805545756273717756865043888057672912813544131243763989125132099754315672416402351793870964567219204483882511152264884128628069410714310967688473668938163636280555485240227629472817815570797474443203768036056598077532168830814836169275502478454317495029125437017275168214368538456273048031481984051785118737788706412636200021703336777663591834941189242971928765766379989893425353035041495841021299380214173518262396576911294614485746188269551121317643754017063020681891463484274939618746925265074420728392307809840797766266735033798386192597486357823297807659745534401406563632082935024013837019178581220129954376347926042295639804834429290348799812294396506527703332305037596181273576885198935174523492367145148869175187518381351567719567507430860249030832082650582280933136277087349272940441921818709442088179649193804841646676013853386298668385506612266442231682183933823462211714323065342745951066698141491685374479832819487669937955498886968106681351107304238292375343459766463251895840266053676411112290119980065295863481701928621880991873924940797548930267860270295565554458181752925823462422971363235815611140867231678981707316200498355279443233173790737501012748954918661557047223920050682037114522982619508299179103089710180836851109579817756726804930799171108792492036954136491947473701428948417893340313672606226380301929145863897428863026267241323788071584505662723509715061509034230621927565665655639096216508300109158755782618561673619895999960874424555649513835109763143373867991255156698322354089462281814869537552840622398176444157988645353515879972610349028617078265018467560866447175826204734923938493186066929725241393369964298819559736036972483808149506941205961827001978534372251506498592611769114777907330395589684423749380324920485694321005595211530810012414009476276111046394513124154620502825328784545764757967801873508990075312944526037241690643734351408292975947016298384409887975520942054192640640857386127568807411944543531900912743255077996102729001092451293739089944619870012153547782597583715641042238565059434919222483302583091162457701530460941466319532653276848005663431537863748082064442967413451149546930826233183466510678813057244082319498284168119514217995939158927531984971954660951950469274898021742607547128218681454349141752423563119034784188166739420957895151058788747880084635657301069142064324259906509124572095804076930276295873475080836697984050799555249377837191510332218152922664286059990659467474634569149968839582119554436578127942792504701212572261378597549609546861026580919852432149535009311221753750171597902382937689392484727144942976742281773087444715559278292229560832513114156443858817234324266970035796184125685850074793828084151940887600838342334003673239628289422917604912510148251722690357821705131706744816302288359611978712075874306020629101598595614424661225700902893198645780193650169239718391956122469896114336643085155311357222699050099652661877995427412098934592526398679344426311352047556145890695674211700805567641082303444763094217052773570517242972921656221385849887788940465979572157442648046819472540545730439555660937645548019810793481856545477373671545457415805154156964783690897823932638804442087977185627683464393137367358662495325674980704928314293027016893475598584229783446384838194190808266838868839610967469920223470798147580587370346617731520397035328713718448975374447877313555503105567883222795366325225622136962772503272829225135937227648169006817063998327885753600279360867812123475102856537419297850909229439693079678515886688972463544749936850133610972295931997001217393377048111247822189531249120965500279689275471030559709306050937724624229469805350445678286362732560705714073695600441318304831339727012405522743799988625706024176661914063386645322867488799746554094487842700297709326111074793023410612293257586800117848950636503084816694983988927050503759635130354024784083138313490144891604296553727016934804383972790478221925266991065031717227703486365162655260959416880570605943256623023514789382184739926850925827746900648047674024770336753284134582454380886225971894101005895174441262463366081427350332187198279538326642313507284236681773326181313410104539228556964550051129068858203259197197792687791315696208408015370227110637338496547582862402224373840508416936535117243883420412458825203242930843625086980088429983512472954556117838172531681461387804647713919724870611941348588882983758055558582748001314272126865534100046768218361170019458852931727378393984593246964465194161262875525759846305263511655216568015293936210419685868020336242766038582389828113371045173785881614632404056119524580057663229169511451971837983144615518570389470768190025170522865048027177356164506219829518804242753348125259303360707250926257101220098826365487798306749941529763911710120058117163743478912597171773096279698890181856268489132614545852098202632155012488367495098098429412087905146960220130684964521490799467158861482979892570462382766935289600554890613281150993414582010591403069842183521540967284703643244427767401894277309296213887940097591384468397645005011143162172354339598820505135704552223560373844239127564100430024699452908297380155637419979399662932724396076523679913509359155814593918599483387572081391498731120833080393005557089532747512475020733025511134015457250386398702695229712471622567301963912306168771978243006142919163914694297623435873973703024797800884537990800993677263819360948905143070831065586292908411123857558978329491383432946237115799088597904925080009378784815484292495150705614343403271064986352943553405304750695315494582775390995462196119572656998917878488677885857435887729810094042897256558266041910181874319553990511394163756721599193405880783255898150967099227113182831847257536227906100629544769326284344396166887916812858020035557723827781955332808590435886708553287384884628581154323815225548508049327008413553579463424258564055368034811961654136997404940162202794142104444095039090898124353504693981141403534434391998318143685596481129748086691950595992746226189029139489211304449446803038978819398652489155444972705484685228537604203009800608233179467541551630632588334532721998222963847617841380581245402064267893905741790534988893240699359058684152085805591527080419884047988135969274650187590868874637250127439903945620522659461742650246724662810907056801416776742564885513564861752571963590858529530828362068076705665078502430587226826608933289359291284282902244720930512420114938041737901903467456700608075734468377975231099329171995120651366567390073076719629365152035091205331549388582941982179167946040592563006756181988121498674429644580155187802698313517432051979454724302881029512601158284253254855722293159153229719152316555141035277895539838758648364724829109486134994132007226714592840080942195924744781113730999610362194008581173701157423379625803006898153724739487971715806486294717164310029814202165417414651539638596337008548512965395175517293673471721618609281264479747393245240294330540309585719524332740968392009745972051761713741129484277678283256574528807033693090878604935284506551919649905779251609143542685350461534974139126311740794058324688102392732172369625259692463394795566525841019954423100882004553256975600969721516982156860229321005832750682046656499240011386122863371094048397301985385001357931202702443103646092432460094851038983688294917507367300610351158869562437476697533235403938677276781771805421528112962286085262610928107984157599643092232536598798384096420817388241809362766274921929306899163343795839171104002096197148820299044487068380849388585644695512080050083364143587555967776457146109366998780778533719705025000264894328634959966405674307035352744203289237297839979199246486709222708196117311330409048761564530758351647517520089745708520886984118424574195091764935379157208646426328116024764015411326743499762635754229776739572417621093965556357217759506951921080531938097652800687856512680270522109196527384008764755251096233962203577240777255179808427560495985212639437368611856465813821242547361590055768344536631843319163063187140466431948348446091616534748890398789948459052575843383750369942984801727567521868619436981230184339369289407406142656635114084850304547401543854883343855630145936187487007265173531297837847758046998749719245231511397029710779738583549747614691722276007265433558911810768004347074038096368526666289252413996129132925138918753801239776917202025383261254723796934054267583245540752525554983436315175693949638749252714160784446472353806355178625328242229346424086105298658068669613188702834573612164094352813121445815565480168530674284566831678592520772270703918871777748349089186647446321469697741466640550984105148299548419029037710167211978836772476404234832165570913152125962294415797309787326736101809197428432874847989690060208983177595172541090167631075950066014406190751396382908782493401176357365977515556290852369917625157426377768927833955784151092982880642514776945961434671982849086349642125041945050845453830622131938230213674310081271123694006330678399981223138478432626614255887596415518453882668066297015246706644549231532264252581526182263952759063303115542482764682751820963521286923948417896984354113140495107097028500061718917332215996995984963398407620583680268937709892638670281882842052550612986285577399123144126162364136492482027836604164537021992003692150840240454960910134955592165889647147472155795880342655339133856551312808109163664404569950091123119644701924847794770420963150308052902584679434688442359701318606648338400975683665914911221606867954124879742150756959496467600238668789647829175491396222363974864426848509263917893482598636624516110111690180553492437099962895033637435669872417981941832191839360125846932961327885201185156339714036746710458836163259792029067843285395120231495278585308887454248456164028880183621303880790230292319448955580624321390435753422915420142017368275961621863948228907153867729530199561543896905875802354961988203796343257412589955212274770071177609679061342010944528503401552531188669343630868835419527926940698975735630052961443324549021069487254620665727552751737012275169552631073812662775682287900859030409344353348476473839191208108411473487344978382164329824262259791073062591869857661213759150635060174628492648365665206338447612834744236523368850524013084996035928056417036710963885193060462867906555808164905586257106587915602369053085599209980886114593708124634425606131766121293478304572106713287994991430715106968100752045648407196586043421175911602294164800143197722790185642109707106407689410527505713851067751156432369083409339030178728743267308129881071197685215155100246309717700954878826614223660982151329341494253622295768214174871496626658075994209967327447202489938325937059550323459402455229126379719337048060824987843013383611685672736859360833678658636377331255108152049887261121306367690512137777827601874493104802217003723748826286456028415202555208278665586454137775571328601702103529877572942617019209772869151179460125638999580910446228001557365865285866540509594679229827123468042593888042188928522081490771746495011651492817536199698811080908171128808423922681908383534136077141147005123926439003304346615047817553670274632436870096581708631323258236627586229310783645026361287644792686444444188842654121018582274352755888632428477731760242505835476627947774091890246940395500768351738286386266663832790023519175509716490128250484204733525827826947856508006660306555957118282481639007917533535539335376376525722561458132123765605999514603328978418785979473651636234163262351296554752783522026254005878165004692848002042792894867769913006269158138596923371219444593459222395069558402738759307314854474883613514442996618008178595319234809530548174972471150922609804001764372595867495321916033668399233307941980592139271782821631946806949789993063196240080492311467223352873202306213208354203891375701976603378897717338897071636367233032720175120060046529453560924208376311583087508227384882513726145793550625553967473908870187893888957844564907494549686827758292435032501011266769445152605385106721228683148630053478981604397182294271555679187741791518128698940048588522181267681334789186020988808091991939023126384230387359138517025167885131661762661482481100923802185076594269715612341597069365761469728351144636323640979758812952734481371008367916254565201650002941960900766098364510130023117570726964678357308225174907664962867631709099112779752372462598114784009275662257401969313095373451277628325726162686380637337464771700613490162477486407344393895654549066184609787121468314823760678981121581657724758316223175646780989203679640278421464070784573807492134374443522663286360447166162498343391915387245067246837481279926424375718185106311072674306979554305547792212216109057028165449555050365164053140997772274391305164451837259992058357519741443981256518518195029191629962734772610457459768292380497889759852950237316411469028434732599862747009943196173023722802559619947698616800830474067486405222906425870438577340068962465845671916856895132300403562584614927381893823103511308805951356415073822333177951389690232531831942092623902858535122627096486861810854170792289820968716887261119658296838169944409907333734970728211862090964367591067187462452227797675560412457734551444228898601571828314675438725533398820694110429243788794548788613537635138301315955755289629258938034597124999024629447437318678760557325693312372410560586199338194410447998249816846819415739929529655322760627927901747401834239850732668968959831402510160822992487496282392438687569735990029020533709841712750788516940970888549965052620158426739908006398318540756557245034387022600914972859114746704635050471758035865993220488616861368628265221290800668280534240149749934122247077490439641706043218022644129506686843435148616346164903592043613026534419092968494425224601720741098073170850506766497453505191119379689231317977072943475679323176392721628069330936719282530841969787873517638867531303354724182389799687620260247328801839613408502301255194092157302195344180402546012124349785987129102010897946573941544910814267839095812432434874841379788521427500513013695420296753790032745383264001076856287463736527899997918623167041356940086387530171351504314419193514363689886811911183959041647099954591105212525153419341171625775385588844551655100522591185236919958752034012835464983547374616146962960927348104284341802273661038397826590640533803426078689216062167305034052989611745524764085687099299548813100091309239758800193507904951722958343208482579217389524978700163125477824277799798272553701358197720137325563504910340307481997836715504503134739347601941893430737371257068680675993149937429421175622540577734603515012859325274537899598487590268954918838120062723200312363084208197298944541034277062137415247241049280055820181311626862812948494812181286259848842661487677320204869111622193253909090840939450208393803393366673274005943694808327177898480003158153663687124178669273190254362217617372639378407626761342191103424370561329914000631070626184499090657029575691998412689409752498554311349090685521051030555536757603474843464936804562191129201714170434463521091481714520016494794762815867029911971220654963412256199595411116107241215271460642266998878956198376166062357396523826757715775833491183221821618469993854145995174024805169029449000493187257116821138061116429073457294066319808139600884212135304570290926562550900086835809935260839804968501675523750414164272439946725890672549118594115752023438841883294658420390530331753275815159642321105051023490225187667484045171269134981736066149754787395959997585449486832108879724229832697903774538376068828571911437907321922419565166308285574165677445672215855181114535985561783531159496350040701426029237166148176778913724915530628782262340223947658509202888707106352887489519840349990489748451830682354851665026005931115549517830371305299210836077078787757535279840828936386432876242042610534166876982423015726849228902558366590188563417016968680987358102250014270799476350892370398792800269159414588953904059538824870943785097386704098373418913585343212023044143588339522656768965561211730357478623351045300434506090657633763351209879020858660811609124999702599496408442996532376694506214991710566583298415938419573664243632289198837747080837457391966001062472599022073301628360945632834011718711917132527047919967749990185618142368866871828012335060618298404351408123932728849904530323662731680389567088957788178490964533801883619663386346586468136528264484916977914119996087538557276963853696901572941868088166658402317160069527811176107972089912333459573141722129286419951388695708483752361594713793053205151570947984207058402036017333015843885496672597490788243680021347998347357794532700302994855690660116091676303074994294801257701475422239088673160255900713729980975710862163325220385224724179905344110612565403245196365747354992005556099897340617481116797788419812066346436631591133696812911219310213791172332101783794250002065679857355039903568067523518208824362234941583729669990029181194364992809088732623604803286978349086008642892468190843495314487232294951349277334713966853732164647901211700901018676502317078077331338038611780015246526368162184027700597128857664682264927482751859285023787779713847117504015348768553307762975879588330436674477390488240180144509099760469585112291820912112503549221141073396098849324957657033956917687861533871748259284562400332844732897045611316942834802036105211089621929190425488242672654859505577621220554041762296270734754520259712660759302272666013561263590775004627219060595433353020153577715241305769100160497570470152618978281067483493953841436591250675527068882670112044172299659608657007949979514157116352297453660009822035855786952852015932904828088680157550310477533636302747846685767360762666129088973522615888470962547103897919956641642809131917496533796710514500353008474044916317779163497739045063508529234605495665579209667479678948185238134851713373824815463190917712511596077074751861335008004411605266521652755726447240003546689926392155516352598431980082378522876961370296991440492857415497168075071893045254211314456782254340572071283118670982583054773435174256576622407572166628735155427788259727811793545885381185523806832764013868469050654085060380716294906667095226762137237324198564739669723032639736401372090094329335759000096484955650294276283038983483968251224359784926090505707458929103006743556641255742322131373610814015395355472146274003467999764213527643508593113779859725404612360293771644521651493620997775492355474293373058699491470340416347773312890060361559126272002585897761175054706320834456430168454051275981771772701720503219710623042486865306081544504353105302399047304067964274773002111069658827390881851868221466420740498646179970586289867587689032549798207933494953988968521255209156714664615854478505205181261840100337156072359021589836293603884394413918753342387555833485292917059778046906551604346613012200454445550246198553402682485896500164597286652588517021559945446434569868892441375508242845500400013481679340567856988410741704881189123299498229818213369093242531886278289738493802209959686219357940349077536511599281383415199041617428640855918572077586480127640430411045497283948541701617929470510703735005158474291188558378122524617952352958398374972493323225479548757667443780558156684588321543254478777367095838763964261092172904103631138732272803761404036608574593236426901767762557282367624368606246283517971843099025032557991759771999977148545134986269582106390922367734181051596410851087389305043872267755027537552642538632371281724539954828710000241394986102652871848084583871350240785588710731040961322674281604452032079002789259593459729451908630544227344215588744591032321307545368744911593533726281612530992180949978260412245579906241550011710312115232676860735129426159009167634764766563904513425498438470255407281834413855695003000628648846251632666868035175663810999584468108056546948190495062510938723302615970078131249623680568812141682197407916467495294614671970212768359479320897573221843501682756650152658379629181808895610356173974187738353198147132092076928585707792639887126961570590463459498209625995846856230580017356445732631472933184626803914142179011731054104294682036839850434297206491291274398290411501040026527883171577815166850595771591191156874379381549073314552113884676801402120013231431098953047838115895401110640225918515502509837293377652590619234639719925385660383950106435570958310862100601685992719450342419340410945540584932080388358699196376781736859686003906389276702903783822445182233367261753356381948841030581935787340876095423783588035270094506471117484553753711375762763811135826910097575639470590034854306136884320575162746542095371377070494558170173409296359061229254099632941573083848500993578983397277806315308723413479923708790258505925262761309936165021079773707467376607068887687355317619140866793077880434487516254459885271141968823992659920601267826293107295175109394518745360304696786628208982142437960850648733464645090711084079537415707368105839354805983234303341659508812711801462969731062286860349617443672372361266200549692733778639084020627327134147442498282421693826280190265371658664487130719301033308950947659116950371647750699906852318375509752261895082075984931732700257539708021286532093636150935342974477953316972733584703227697852443953383527381317345137842911128367003369329323000017865860306438151869492405398110108260792589757955390067023355108142346204880477102428902044080900316156961001363239207058723137693758546704478904984777435239042776748738367484895834032484554435248996446866791429178125242731411034417960621190762539776973287645165994344258729446109534691936036549300671680090799402131379577560657537059521961827736155729748918358551152503494309137773116579487444353494108711820304902137811445289505326664362079444274847012775737326147071547131546569022294848412325726830402312057469962930933908494143778118262672517036321087202650579075195366325937777465499460430515759476851510775176002425411541139728355871789019455210168663226135814582757367040216426428388493486493256527360279525667271640388302631163737443768506471804116302095798608658868144250582346903777160874181335982970081181013387605314895402721338453694620273922347641126335457952402087476721291681873160189986875115277164978705638066639681083793025971818332145222584902011533322483321786432657906195333538676617912416398709706849209382799762659694175115819780696593161570511153306087898583320681041465244670629063788396745167719375683908835778769563078275338496300662469790672787685480272015374399576572984035793545660474211605915519918032445100073892583031858717097510801161217233590404160792442430326758906150580138158275316848969069579840507021700159654605264160735057192537253112663761122750644287669327466414575540002224026073690049069433278714348785248939503749437163758711141134846802381969365194420788730995781665544291045222982870559867122717735246359841389726114212519944613169719411867246271767295528295657790622365898938759586380478440582013231688478452562504811768937816958547875038771256930000973089308563551243280090073728847071536224432456433394857490934670844881478009750553143744456789290085872436873540353033018697210092430465174710142298620591549307336848482721716152491266420382466025649175567281823744103338393464351573491534264132519217438726464634406867169162567265276615914699802720200945171880792662994222337705842503776617312513093540971893286141683079189816516889009611339387705688362040038402390327658382648810857709190937480682534780389866868050296934664805455804646384429479483783414282233805985818797206786270130319291557703610612453670835890221614843508278179078044813714979924963324943881774051345917008662522417390660973821032554240225102022535320099793932125980426001541386883383637265751010310443451813606287039713181774663925762336054665988021850142784021595657352152281508126523370596538536865548321825499544215415291953846059567676475021705802601233023120281419962324182695969533240168429000877992220030242509884506416815517647893496289954004891407212642601300720485097376909671129486358479966947914797895337567761779859166167361745989970245991299807011302737211213214635479339373382906042526501881005515806944308451429418427876033902050747328196541982709113196910587679018675340685942994053799078362618090451106051280175505577717303173989704213767792871626762724242776792278751539255926177451072356598931029334904034045215108087248998380260704464188896062698514823838727824590656555123384439266572468132918522165430050898075522685426382657422006509414088723168580492067931058843106175983560565277742429776031004448681571891519419444655715798976696654187249402621731422575152222550137404520412525020922931958381132396062898626738890036142865311704833709788032659388036013578564157432503251128375698258331463722909207426856809405269538740908037530850436092757533767164528271736472651528040809902660738520673636514475543768605161749557055909662046450103863249234074990913482930492144404938615245542166029523807704776542312089554462342044867346975584552500766757191581551872053253090812846026747081304921974090962300010497908710827877458149304728680487730423371673034964486339079602357160996367541705811056251984425824379988361586748531370430945735712176717786638782911770851471359760736522093714943544885649437405890942762236671615968801374528722216523993886965534498439846685938353523629720926167979143752289546783564527874343282337403018094819637983249864586147397263855697174598431357641020239056786104998403624850576813527875158641830950583619465588814306194479174291435229583178660908993123295287661804548483389497189344932119841307182041177229029535124248492930299768718208106054142029863187312357416479104812283100564966021385615723038361505102466833985074229101130938387069997166624716059156532246876736964052234909794647051332579476248905174420900975851226654037203817231901631294120787049599327084085781274620915725392999216432551675668462685438506759516641726950893831030985551269125405879979723901131662256157080615678081765846389998935698342068555126789532618259702671870341093718015888055417000432369367814245768882352949005965692522322454419509349594789579285038045395720736359703557911550293617889592208730385439914506255810540508490292803750217610559636095985403848253439946923607968675817086382825194743052300186632306058501049195557067314624091586763954691637442216967537555803343656099382933519824817307714426960575865936930089299212185691043378983467391492508439135522670139358768465262497313467992328311124869850835263264462429577041684585233651770031712674146804631576997654119039848409728437829327037798478283756228850894178193449335159462466936838265166835021373956067781813270448318067089171220962202613780271531358870562574949925249883404622104937208578822351407408523073872747065876686335286695198287296105225066794915021005556997269701444234565288167511088836010412819442778059439421399814343126198474303789296248773842008498952253899312834112887654936636774152331586456095271792997652125338964342712117435437423613640125548218777852581919349420198244248494781718696466483193957960583681432490954330475027740635433066447067865042303513367199986466373726174969757565185377275529233764934732362867786019738630401133223465214507234509018331588759234818562813877458569854144162803287820797690028675072310084388419705844304166143033671810927694832108461283124888304629851347692560386955100722564998747086920254680015213446712757877139723155873552822787909430963374575756080298869546907810915758193835677266712339704118624030361770958639068337126613327565862889249091788920597806664613945630012398798285880545059505298845719677569733616791665318196713516678342467133226438223811114479600577594598842255247304354785805629036800889491550734832464338756661695731331789166635289984349202977736313495173027636911186292443672981741231030045219050163088247002283701950577079583244960101197428241333954456313085650298102855982541268989324706929243306749566776795051539698614165282936785419086797813517684643266837941806673858824874022121070403067709697507510283500043421685644064449426618879058920769337800915202214112071267834566896793937991686703760719644917279284379726782075685342316630030549226867761473644126650797835233930942907771554539169630637887353646226825494183897926560444743843422545050343501572801865818283278290500256802564272223608007352511803641507842186530694595807225013718869936781314299252565771984306234643954944168087285778264160287073539358906377140066288213411782610854928426168495835608503123454773193113625602101735104260665313935967309057857521632757443846368728350439796145817144491151996494870675014460064159439014182941300094022031129931823202168299866551524082944225448653071251564160864084406682583494391886338945845167366778105463293302473757302464619874051482800252113740839647945112638685103824172244906540079783087443263766301087733223304092497354580503645285463575829536486983235856393397374811258692001013425396182278908112759608833919637892818183766495878176109127288441093184050193838297134869400015058925084206721640742026339879394285547124239641756645885588474339072892845911709676881627215529531304977543281729709457390272354398190303187996074022196081717890798417695077486733033454400696716404607814583152835916985829493292226229223672407261667733880074113303144859933722661977819393643569490764861375913479546179991075680723539623161734601215394279129366647132923301041771052804338100695709161712275628224295553411549184971974312714461314568528523283111870278483293839828110217489534124442475761413677582928636441582955059805454733626543377321911055537172655035936972609995274164014670431168535679469808467065507087916378489365036675638581071143762192503287237380940530205887400466838439742031769747816690543023518395391046570867959545533726389402069734831406847632601037851282160517810123585056660679220338777302708298707890814511081345329149855951863062503110828043063674571978295871363414250942587340495015300050463790090127206548429613074294773302957252145372067703597859759800422760418036838762771458004179927832255277403411839077477362869328326789433740574590892429778347953569958852811915439232614227986933065586677331919237015093794859051587176978244868563479133063332631036326221609625940945286953334975846035668252301244733905597623869371531763573380219649556833051827053501907431105615053097142139614498696452367780834244089307680845015445126209093362206508366059703553264869475823087566841343786106661402956224135771640322014989885871662521666562576627196407627094974243615881698688210929468831065198610893994938932066698986891736034348785416000760417339475851845507743818190373976264458850979523009365819638298829317417232263879162293350873692717719765132806566930330375057224489848549390066957149772211416704584478623769830058761953885112998544215079457448680708019579490622732974983030478084809494832214018775706183989024571734904385361428527017749631376011883583016922083710208910560375651092235431178309330042467678519138564290989840976906489949145657814397867367992683641489425546177646194815011709321471043328383595443631221972314002381009555498870103341649151210808290970461500505345492590412825015431423525445037095298806214985421112926667090708645967161483549023667630715133518479375093526646551227792440018641590341835846064742324585345953351669954209333778834015468761882346962884919932404182549005914313021104709710649858272971627099971215547199277553361620430369367715799142434933101102526142044044679633407153586713997291357632840655293783410195099324665906077569566299108224698438866350482080829841443271487326315609159539873868862938400965192915206218012742060879195409496308528602942583381690938333474972733943386886419505292658165654118182337025182915497533800075487224815457241471883602671145393972829888448542483222796861608023836672658255305330145252505190084837554196756263501995569209016953822570489311179759559031750051074350395618679459713814884282391409495668408728591591166588670538093600851353480941992774640207314401735621509438040200810049528475939313953991627537399874463400520135092301431112965094324280518782693369294044618743378339777455588971816474700602846636753335980102116813905783782688294908571056656326870467850904525322614235146242225329769466384438524580762340460491610176298865974202177297430518834741107871370265724641953979216221106848899527416188766131974014863620644890983817354825821851062704944496691350199872148650386633744233399283247264828781790709467192798910426623291293228737768426503103334862294703764064644134468015171761651340903014414590273564986317745515336773783914543840176375329514189348009878087046285608743655302336896635189277715211583748476435970559082507236273285427863356849011873689018057127025197185496438196792159723540636232015868764187445974255752314028674330818931718176154927470188588596956437044577813980803502083026124940867962411782127884013481437033701270160495220463231812919233817486490439045221851785604342455508485904478268229807466771883151815454541232447143080989234041550418434313199049884179080033234358421264362638197241333453053104024514489785001496332063261356072486012130602537559094346728811329613059192554113514838125858313075909573159432421024458789488656190543556122081689074239218901449777156085602124356194583181892888305117155495538248532628826977521207208594843382155772831253993451167389407845377239431093230815932825900243105807069283503496278370181834086905346357356475123367387290731066475298334145865885982311710348417635461834069901693581594677171509568386906341259102971643675080392292649951521887742147431879912402238702381267882957494954944374205735492870029125297828784417543895735819040342866515442660865171065188142122260558877188199139691391088218958055642889712767791664658175537626524392866259801944001708684970873667620075654885311832811860242698772730179226984937207442165757030377495485468361692992913759962878303652395932124478775280653298266344013575029343530597121009677026844852742307154098862635966081504542006226348202833345047357452325816008791709989032779041103104497342807388056893563415270233504295798011590517700500473158794039832491080211963593242877207267849418615762937295649234104893316493883808782399825268771691188086266294977153885713907337084830340505223281967625290238917464153857096667323192087554660684269375960108200429521303015629250102156874977658051124409800614450910654931576459655826747907558863385976387222698060829308114952276611067171038473303650015357277648412513787749108796143222239929762624909101198714430231232979777752001300909020218342736097803751166738945251664815152640186784480774322956620443939573085687972183231959413212030160567325597514089566003872746185815623965921022848699666182551286661846546082975567143093008359396738009891278324053906585878755121489627157624414702014403379742988016724312339182260492747542942307567912956721614242498539314106542957938919222708681052618867208651479532611126539912214724145211682558413217634144578199508312064582954462635956091069113885818121547128413003570597455227632488418397763276107596856513621779548078347525236067566629506153876381540455818592405474534052842674449849728294797308062124635313653471543375153038783603675041117288490895197641460573857307045545400310798611067603339574546267312620261544019673612129297611320767588138655845410107965394688877658851581088678517381065326198987847504403055509630076100540296711294400125524704849140939626533784310965210524043663224666532256600939646897023354740423625719014044173026728279850841337459993722044394407175119926164370213831035890371198875903480429218434041408217335140020650881846227447136154502746719011038868795179139605092257448928215642451132738566190772943993138094164908948572464194210257632756305559226102227761732940874271373956350351961940611728438818538548751013530518685056229406495553812843862694231995303450560494644771451531928345228240631263456287781199892457162578543848373021345678531313510542226910466404643454631934557798845960325740155862581266113362681644372567108619833304307295616285580731929696403357272553613351281004173085421706486674030880348678990962140383383152123900735106917568935407789974646525234877995860655211770103804910015507658909023614781565947940136930293994942476928250304168609238367025208864587407601962266693510609663508756527836802951699460696914324243275448083339762897390106375134894242837994215981921984824397026812564230150223608395032090692297280499619088004215090219043900090065489421969478251296144276248649204131962954724152852435476510381681817980649724175706290948658750503756700744354903652105312016303323033176165651433769836825881036461006309969733893020074328159385778075218542019392201892739613462420902560099573266740365246405608059205209745810783857006751974634593861493743633171750256703013090752995198454615853395228995222904330338443096378234098809885994965174384236949771690324912066952581838100467956180986571702600130123369242427443220436322662078133989980114550133500208173420967169101071395512429951430543962429329855384245062815832978969203313461310147426361606484697442307702150751284246439252672273216645838686182813472152274182286862541669964598628689774817948174504159802273412524087630395534362855170676874083416991885459147866007549940820103110807972726608924896589215785069890059116812754409646715628342793679194921867584783401019724403988130936648218776431194609243161227084869314661769714650420866044521735339730903594061622952062580554068469260470100670277472000018078326273225970303184398696059693063619695831346716341629544766546455525586041916211250659188263288443165063388015347050496784234800361889991305643104317653769380888719841260539340416633376800781312012024438347548954147624736018154287521336902172962418657044924651608805377285028882696808977789329649920030137765651132461697525413003403721885953919177003407443295120497326667740968258383936132813598347309774476835750070862960793315546383972879819526342203366199503093480193214979884466231801203686471458853149999738723057625676145463841999808416666365648693904462123180957678486884317027054660245941439464013799467348359661472079567829124117628245380619291749182369553549906676257095930618768719102527238321953721286373004628138747197765029864451904588491160558671796940506003717863359173851424248417747451173795553147358617645868080872085628538019907135184222088061215926804962597051456453100433816406209678214880122412695867332659892117072897339623857946171490203150163010436269125984707867507351221957324214054225336699005594822414185393379424887199527043188520807604448635740810318750470872737021110171361088851679702893515594410718735256069543207918879064736953755056661494392716050092135596996632018566115369994014513108629436497334956643559577287358367107525771692079336425845603566470755610682997513059253497337772984650604721289169465283016760585013627471112064475422901302046740139621297367802807121437064164920676495277710332440104774676638873736964330297373395393194739380479848143591587949238744852233527975067731014939513229908410395986646847756297558446126207121298312540226143464661386213443004689966957946691632418764037707499288144672590165357416914160942735925947137485167726036234695196755432167629878267072022024476833190926540413447935980331802469775866472861700769948987877246710533200895040902899929219896362273589883418325091032923225765150032195237571390372218951446676755526528982570031649874301740250907511466691349882476004635646605133006941945448492857104977915546527557342716301875699873250703885287573192306531571733680052164238035104614372304130062375421046087915004704690394907549311262079761546115982139245357270832526844304486003030868746142387883295287390120306781507327464491180018799023455303234361751866515293911932687795733661154358985681150038820702182016592620237771368778829438997558883347851959725434393393928680385092926169083450355637591883583314282153540785550180885460822689246018560527668966104875349133909243394560172220158953932012452403559703008570311060780574804212257840784560394669253642422274785928678294125879165077173782483729479365529660737613139446774359360357801110327300968077051927824432261274998654692055711385229305877280664061683057388054265773530487879132894546071221878119263093882398677471427286745847729695312363766386883308923939200420447954850333126309127404439298426983828718541626237169672539875730367598956928537711714779855496976849747655799782550755074825309453102631278032898373577950911061717477189281799664250428811719664357085665373168890271629573071272439235981056810508724698123059740377455066355324803533095358411946905260092131500717200336397909148063320528958335907798875303509556586863071512895758482137426486575800687506261820927253276429846842737531643205197249320069603065827835371400037574058585881520135081486190657864701358036165912262088037508812587009683690329458704034630312204623456558003139066362209512665602969300725292844820922978250867465237862988961791566578131670780295691503572551875105892228273898742602728375511803911724356485438068177078627727020954990938380484707044817474221319221200252570288057955585365047419555003281419329768209367894502829070504858584087874940370678548519264845827857761918571277252857705021638448914109077966151594608881695415641163039017961255143884127232259862510889643023787818552356425937627870622001222747376396125278114860692806840151376494653975368598105598395684485471789992982765440549268785139123396734435278089835387186257865069955470585213297788650523598189663855810553600940513702523908389410261646995824636202244112546390024169941357960804509292090839647342701449270361448097061019011461836787574077775570756296808589252022849797069628609499580772667461292744320862319377590124129574360239073492521042190459251662695403777027809821450948893103136609440985840361120078643818588397395743252320190701132030272866035566354745364471795121462357058864841624995152454230094919296132022529018750729230875951708731537763710521021218108522796726534284428699233090752990912048655430037163817814797521331197838056916919589827175506461310089783916502144128058869008033657529930714295342539841510289595607459808900760750735459984781962140165693668294597189424914175994848063912581536527208107704639373411791231327253541775692542047594012328272321121367480879566891116074703504852887929930946663085582912865293707648001828099295100237587933415265607677378454634779462238872793849019052807062122569726359815117148877403043609829906792559030781991521606926952473342564034047771774536124471540380803039759170091332164704791833403107352230316845328925246303203004612559932316721422147714356406111089893629967771231797159099588222847105886256522757758836557949476842276306135957039210497249417250812515046289082695002942534635103854880503962509526911057201696199229734181183141458456773033219400773040014718761107310632254597880691394854045873910047716537324051133008910417436641943698443934454362323583762887354625868307669831645370010594505980713383374280009833944418995133870003461035859855833537358046527086231632905462475093551027834232886979414150469035650024693847428000551157848210635223716745461157260591596294559545177014444489228139172648763088905730552485562901629281371642218818656142361368528408750654861943895681516361297661976218682438417880855182705298588738886384919653623900698404068177982188550104091349539202609308731013759888872064655409317100966250167524244364687791826686727261575955140268697069357507574588501869298294026000936721064318843094623434320484051169302502486589138004760751208991183562664980374231295662496360149172046115328920818378269087470654418769026562481597537965598133983395672607935996266963406791564322402348704695970403541584114499394243166300733312661075938406857232823526898483278275199072902277127450042101379073026553084905744510661950233846284502843807112306978215866585521351864397271936281481550943254899589042575555097681696265501054280531731085200206781269971364859656895393260775471928244281143376875683247146965201899280834699912493708970278764756388698024338108111463837863257273985383435953468144576688237267720007892175847164894605785511865558636565862978685725983935022845562317107632256599346595893320633640426817844445639215466996186578878867789479899435322240287065775260422175585470199063792249838690780541234491648620274450836265113945837208649804507770836226057523137870777168764458448230875578924089179478383380900131772081683439058470238985565595478860539036474736618491137383175546822120216778852398669212427444738990417659034064376196819492955485001376024900051587377478923562860745039171542300789838993095091463338615808123831503952162289019147383926660250760776081965543138495535597382688845984754316320781896300039560930633045966331239494514202284123815411504748316437820742326634777835772600811394877050330148335281445681083219798084640046880676819010750916119025375291191050814812124494517324861467305142380492727850211169923978478366034000398401901684468470978308903364992821962455729351333281607604375920274508175337835780210022656752411751279827254500308654671310495869708812940799949829833775032479294788653523336669102602337207658064834585999636473765331950594180634273229279340535210380036282002317071573371354858877424641385294576097194828716822423558041766154369129357869441788261617996320440605469982995430009043619324771796503844408962949889410542842716755372212568709148590811662987890521419933393408586478346407110372115331093016818916085267537704814662800155892537801329362601164003402350857322511179582315402492889322198438789045007174272651064259847091564069957627293978417161027660759234017274157682364140268532117487237583681419263000904553905712852305767834364316307780195915896471979609011593033812534234890894252302019598957458342153455085114087993477038764794253655641946285107897539779500018218008477823344612567713329211064810800384575520178441601103383491513169137748413241395988452947849451827169363369723591236569688894380796545317585372182904675424491817685228535906284246369604403139609251699595333330849426070954710215732694070012573684963355135412138150732662409671427362453392096886986427403253832996296043079473874450661869817478546285243347028230785658719804150795983736572572594216458206274711821250635881389864284990236810325950236610436276330127607954775006119754797523238154560298634765429095120696761992850209378761002640335968994518020414932156233433894869111129490613099024462410916643895184612059734845197872469099124840573322890495342461350381016397015383416015423668045057348418957874579795177347852036223775509586197818966584501490305710135371252515969684710285904265505558130731749179873196824549993891636464923441917199929913986530031224819461091660656086133864074155883211657409451233148168672964194146116532403198480848912400415034964071044160714974767509292195205937158537052480109269782077077024467626117799655861044123732852782652035190042689067556752305093921360976565263912770391175561778920176223830046209587140855839668932154237972273422623612659029678397500009845096649146382589184608850817370781423590842778843784075490497365298447599447537025366208148102147648379857141836706662223189443220199511920717865096851227680449395785093603333560308361892834773897068763750723057207852335159410444183185596456103649425458391453543194829107116109447855080400843744599192867993641543114023413317188397905413848252511662039051509318131611867839187973289859921629064678675204661186746648618849228266398519605099277606572606440470966942571470687731959364117759100440156064203585036022418507941738469644545732475504506852552018353561058484602574535988759047738220853790625771241646778521336052315798428273618697720555189537396343733015976746499845459738962429389746410902675006480607231675653470581466736309425073551302064959186505260263367314021767696692726595771013128108232773713195594961303335765393907654558952359709642545959772651869612737234438844234988398085803844028274403501665745032674653999106543068582986266977974423947358154554961538073272068139794839951758351391949706573022452014877826210220282409577368891033158973500071794893187988659099771822107376375549621790049802988826964777293935664185371355283322104199307476502450492371103749128459780457881531686547179894097976354355666360288035155008238642669665869479267178778495594640475314176313285271591110451522985798435980973794407359642639305934592619067007537878073794301448148372347992838701104437896447846769656967917049349948121140248232764565533909338023457029137507527593270840191598363398085037738992710753920901891674715448198106544189222485445090520825412744385300379047785069118906465777341671708830796762279972154545053181873451739745554164698128402908294782301650422719021883846108167883504490737820585298899612190641680978923786219683696891305288765085297545288449238590333813558738509058112796684022745595951061429747256140931254077775272901998499660767408062304389413685595784097152498560134057846660028830959682503512998404890793594082105116745426093839376686948344481040266974307631428252825694477239024827954333449645032496089435884826401566309234527190071992703822395183793891365508418988463504411038445923730548065830767963793766598858879662433024525958694643236147046512831364622376067817107311912807840581983729729513368785006985448587638798728925844199544990239762057173418922338952401430518376043698804300383473328954642314418511757781816739482919045186705497543999391092181076818414460153694951545553869303701383284990152433016342312401361282513927279944885749332137406499009678839827068571262130116437166745843024325899858547501654244359715474185909418329711171492427939224375589780151307233255606415362067438334470501125687162443435097241882463716646079068266716064294633969142724433587013271422442782248674431408348215015898225899465021881947353752155289443202417758595544126542737099271037546242833613465794820164604688745632500864465278832056133592044091578448755789347239396032679472397640896421038631025166424275536870517178117130287213287066089312128620474090086576027919978233758944350070817981207604806894922249263366080119283285410311321602215105651581222871765892563415417142021914908350216617061660867724481502115150358893407227397066131978354833111467994109234382184971222447704107353957446003779141602636428243162171881225074286082413604718774804868059084477400001674915308307688289912870181065124024397121166547274235490140461309567798825039225276846028572958091789774674988107985763502446349183050336291323305127330154357098820147971701436539868443514563702459297133081802659701687193788486045371717016674008558151657361038869552560090142664009766290851802932022554773967093029618548603788673128382891380723121133731565089441805857634861704122153550771215132652291469450974197134906441622836731577821615772084680965617382889949455759571896893466704890653242932904817884896104190427672538702813222571351163275856117290842434227222922078762005268122533287269708952437755812766678061436191341993500152754090935598163972599121759312070563336488082745159506581095857565397438800083991176891433214681497085347225885925082960053616458385748790746569219419107228200590316440119247489564160651970455943635979228745459146345705685826099459912093645486875080504846844375943090729868144752995275944889522252540121517009417263943861302121204725247661491483624001869133149149520499569371643157298298838988739212485378079062491961115795373281168225529969173931011933755672660758461316307103346807782692679725530208618249799446917725342289686927379700940761044614160565878945950288326970307977710709212014066800941866857891865875559053391180821706913385634332358425391946045613596329796419837648027092216190777341183148684895410929088532791356854023345148253646109420784544158080022781193668860942921146437656907272360927121272440483969937668570159165239555282609118787886251927512078338016924098450061886431848469054235897302850326350296315450545219727199439712572614566771923188380793772158104217513245720733531666812827958863426459234797202225322160687692943914457739861849097741031573553111834430824490503277120436368685406525541207617424460327808915592288390235444504029542465893498043120939429156492349432586944229338883590331297125758816441538039224922184786702010855599036531788440124929414947293524384621719296242704576914626938422746994836328504475826536735786710594095791237705653239234502771920658679160247987710330844221906888999790414163440618937538470256665707487477465410108185917680769003555861464426808054163337050233997129532310855643065713079385024269042254022403615087276692501078619807992565844411225321680587629062345598244061012480030028834911347229933873222294717786081942034425212964392965165345959061790911043966171095635735823664103932119340728662953403367761943883737594942496559692102646082030608076958079151740220339725596020233305783502986836680074207267712295884002584305980733858334410866964445164474259113686571158795118912893800166140384290395132075351548765835171277185920408755756821813746215159262633897210752099064630994389319377178850068219816397203984052697907651979715742852010926439893037477418733886339688588018160041312503382341042894721767713347888844267416469417084472597766995573859788126772926146377259735630107562729156283231546344699932994637231113829410562434753018982327146990515610847805198639430679224295682447148248621953085736899662053939132840277100018280031797082862959925829153259347204929595292032106651805670802800166700748932042419835559304157759289160796324042192814550993071358874716401227212718168537606678596527091594575240184822467598998902677309113964840156291275235676375711906210466863043005722151752549883315787578773373072898031153493528783484630615763337774852619164607687653909164612822974618410310985054584960434582208759747829012829194478717517965832550122145973967611895663553993176057827196288938948664445983987192617410581403458807849818833166632918811968348180908940299330352178182702707992086096581311259263058750292340858024562703348077081736730476985762946696799348710540494149067800064501312225554051326336883134743829681767630672853499653231400198620645453475940975531481210901448462634233858277701160990550656064375903673878729827108743903239807915319903845825800810947826283076572783168387936827387098801739780910595186860264160037629559165265847476221297798213638851555766802008864012617941254142908200695924883155334085000906971782272241529710261633343980654465622762106158426908606852380883918934516412374231246947828862487146290489011038360456900693044441208636895598133367534218667878560105887018896102162784736701036097684212033425513542921607740254552659741186458474823816350738401048067996378897284378250041234019351378485294084586685946454312857364882238075683183627601496602049631781761042920569802552132261750607872660677747392111530963373541027880608787692222414694480581546912781310184005132379769063115258388846180715435959280249222312325535558040209181889217530152398235885047582446717734461500790178291036082262544359300735735212757382428236342187199787645174684169269279853000671025775901282140903811396129877969890275145835559407484044717559945261484189185097525541935241839025836108905832605698597973326634501893301934621444664776482161794243111021395578188664415236070883440698723658569022977442794844593029358766486642072257394638133899160796329142459579278549618913769952500249828076350605521772840298393272325380927567146422417188909891509820110325272064552414463885097828812845110873003230040445210943876756030492729649241345937019790674928763893573791776783082150860555973152620810316345022302678530418313298843630585717226433934223280200391522849620529694340647416128617846523768967259426932147386044355943265776565127250275054396830490610844429731699442449493077158309097875290054226537048511654644242643051671032809877040170693335535789503695175270833603442106709366787746138447298338260499046769910812804711164149041038198060188005602782560107906150291713851009829481137862119659000941401094101842408323684783781201958328382313197415938723129845419847926905369593428505243599258918807087074715859904313322204897967265881388767358731054019800656924183783140218722114652422458736489976055312783096082104258025404641874537093286426909222654808550986708731021089447148900168473169537782444080546705386027303013653434079257214178087783573526378047957749649190312319850723442648142569049312806195814171386519375998463633251182092199712061564768018569394622697943350929022203001118918497284488186033758028297079953724786249719807130104846409053079360704856830121352529552021250763522020585969350735398716200905268644265162673302950994048402085317044904446870442153914597518178795629926123080889250202608460154417146507182763919839721209842655603134955989953170771288096207796724390077998445386428537651546395658252714502788473064201638731505484977201117039081950811201984672593878774569682110966102344286235418015844816038444253444696396585649986625087191154708555260985406769418869071319606803156767948224807203215676555216267524377282116844724140689768749258892498315205593475132795520112224294674556772837961150849666082610163262414229458758626275739932181123506136070541741624846156638940194093554663768383176615044522265692349569293842016551311647863094696896721822642943307970763176167821819237202333812125324727751997641417170895133219390040079268026373457433926150754654218506428146091097060628133491296586916396351505616051989403024204226458286741798305651038623573647819180423228364006798249463829816253620285065395215825311312694708127359772407341310046670168761062092644040725301208541819774393061469737431702070610277395036399095977686166787838711301874055756263906064512366509401578911130999332875918395962506729702442382402281287656068779485466546306198054986619353319106971359032093227019756830506388269524137983427392467920875746558782662592989172025520860810519816581932739613494619505665520823879320244039045033938055743713905531288187258204974401562650291636559504819449342301449997516855775644457970666661015259790061657436496629569006985231132329618469074164148984364023714652616806779683986372601414213552160260580892114605743916910871919202428434589692992627520677954337229242731080151059583502103196136712700944057241982486200437037641860995516773803059707112413031506361145879360832864125254893525405594736396513883486098948905753661182571899232751510006088010125911418163047908021893457841949560438347020825172319432298746569640286736043814175599278326624993213569426774322413538503113224233104244526897433968081629172237747066456042471092100212616960645272284305551484263785760921179612165472641686532475454394427023975187047383043664711879092507834668469354746558513018323022648031868280566127905692062576921199441720675737312288461607329386073867720131608183381934172428867760883071808216570899191408581252519311949282838699422053672457051355412503319402986645191801183512945522628012454385308513830381745372178883064935324468954664517053600531471813625953709491404901287253825397679288115420681390116178470652820298407562016131117986501288968995371625155855156344924402876202487408232269575845681835260574073510540192676931348102050062211323893864706576927929227401943568619795521321273080326832085186483902156978287202564154683529869539088215991540717564394246673801118483496974836086638896317061316759434797887013504049893583049948188985880260769855349309461612699337656777522471289657433596841578724221358220252627037432272383693963434061981103720410828399745918643031450033527000322524642452389551696282341613388539015340065253005412613618773023963197528085723914494603833831361027751413322935115468972669214423755065862236839705939183863744745196785079986727140539231942471914295662758324879435788230043605789586816234913862366897833177516844116592644249497395443050667690709115426593412804069183121390319264949001707723840914105012878801562336488748040276764364041310939351812076217048874260707930334888976617034224302596399640918495659041161140642910051179454985404428787864193835258785373645701649175945869875723011425815825621348421045984618520171631048712363866859896779176132164950300337650069080105562921482468769315738163750640947460549352994306954415870186083889312030002502022135563885358742374665295793653206698457110883107756012482640077718692264546711410779383994709904571491194650042157727006737300795433512096123461865053911326788493385863457854652644431910692292258080115696782509737685473472273206088275934056656533567297737504498681812537588208880058467098432414977006690607240328621454760409267414341840756767459819228262317929385959653289883570822942883429632242387634362158293001179525941447269064028913995511411721503938299910396595833650267477562719345476361239329053174417291738153100323475273715563878890619435329399179496724575984315549010915887344994657664809358900366854621706511332840914546316072066704581124344236917598252523362827783763455744509993361820726952396432329254576377660233081691951379418910981139064014728639868836990627887649525099919718009167528886690310923381682190626470081647494942984072936421993338908897439728059690251867967012898143618131903756868940639730356583162519113421860233251437551364941485460528863920380958858639701422191341158167482727025860704251384361194397632164862959720061655920602483875717168122285560256796089276488039389832299428734054643162266229278158821692738465174125443228069276758843220701864026226583414699215155410057148228779217427432163701276542463864735986558514471605267701462322450929461272615251467715788078172301826632867898466119940627233578433221800018800570575347477223814561534394466083772970559724315166000120847341388330504443471754005233936009170647281890726498680696996655941690766233078355962650421477590769687497063210212298013872358451773611924704003802377616418422399686230550963013567244641991699477695675620143101496033173349705600645205934836572144953584165595676711647635740836827946312511087503805591083181777705139076897382440884909241757993918186660243483494454342255756221666343525644135142576123792920774438342151204092484378275854825160838839065969203575180797591763644183254413369254368897244885349405390499191948605793861462279163140311906964778512024478144331957287887487888649353753611721042014183663247238793142009155423726027151289227990167991161105819238772501828547272145815105540703773720173188634852984161106376723140000435407373916642582507406927916508913726298145925288402822817694750059067713594374969429652894645576449050970160668947952615310326545591277500254438567583646231373614954178913977360708400232335655368772347895164752629609384442993614976478207303212205163869425465056736459285350031174411988320184967224127976699778052678544968537900497151289099562986407129104321022561455451449029368874122517717805876482839442633832905579061662063366925472693344165192813085929882312638489237933881692656922693649249464727198264098061365707430555992711637292316732051070405540526257041846791381288642901276008371509257082314505075345488528169345001321916013701283726926314081078349874941314193338539575214216855925037907827801714224315375044079011721413607465562336808933948383564747021902368445027488912621014211669248804358090225971638301800705538612018827123523304706042378674425102332028166124189751336883052150195563166247478470063247743687824610536771157538398541840579106541689641373490384223806709001154842810919821112545851677301171742074107592815311195366649777780811656619130780485199542238932413938368711392630370769904689618375139791417163911133002932421490709418197974393538392129273532759869456193440393128046327549509579881898245714861596263902435245797181762031328590420807936544038691444166967016198697981851268881114084332607704370718701615779634938244876100230015238357080639574272674017234920322885102014354318434614425206875048978576861194842528044247779447715149788947337951589577240468771230394358801418125769674059964951650640656045918281024486505124065357447125741599860781028831083710866944077880761309132005413664807431279901290327200730954676471073804281428132386650707959610526784950596002639817197092495171205178379919203274100915937987586355222377480957274026905441808258295462178568441129953979797319312774724190325401225880269238787094855318216883753100797492729437808778519400433130407017955001999184731395354545376734805847984619798650368582530405965886876843692408292331948778489504075353792316302337009424625464171845720843761607848954654030456608966288671938475159303015750025646851014251345001867502921840296324565847150301720155592595606495207056345002767696339553485737157601746006434047217002734232986016730130729964119815554464973488065970718689747104991203708088626459785422639077220735130003717127955532878746903164942655813342060956981458894710526134653451726463022006345592721985243552643643545339804139068122347618920720389685515241684766361335411070610310452422668033033308909033303996565169974397937462936366796113565451138664286879661347988158105950864664269238966411315849594104505325804492194062970396156598789609226728371545144934687040879655879495348631375391923735126825497441127691790034306092202205694733665404021810222544265423716268003758807632613284992215101537517441751427062141352850217444033841297569805025436948619534303802066835890665247711357680230813857151778584276004938917938471279818668857999940776177591829936309580874745935270950094891672723459931579548556260108759606083542203908624872865827116860052954621796455601226027026434580583993107732906440887565518773876066838621150109737629796622656029250177259244483819869432236234901846060169008427446184568681438019703736030703515545827520819313779529113601289834531274581350507004673670188970687255665963829630702074310862099151512217797692432979779167628296150781654810649691964684122992377112136191920917239124790509335973367504061763398521707035600792121827686907175555032802013034448570865516878916327214337968792478385883936874306862437581233495028385218962688990402683916391550479839799421364374002603644790837116621838825587880994155629130857687313124592480224561070654773552017101618797517509122558547414910862997956210306386793388144051287071927230390699756410031166082216644475179661920088745868427062352192146630664306643472380166143964882883893265504508770462351996726748940761183208168421877423951002558592637740202318720133081748113265716770508860632004675871645184845318410340517903232108162171726869085362238287166628011528737921682727500879766328695534268134514141898060300426317768187200857843924509110388003765544182255486366285280343594562740191870949008816072358761874067275538435613667950190572414444464209013844776801111177227656440593512769925482782458920126736817422889153760521110445020707719147522422035245697376912912226352048012503232243541409418490281499739574291519622752128528633916703845859196525950016756828414899925071640688645897911520278359029841382282714391550493154102143992547336904092307919831647854310170423834226557173762436941256865711599547839196692254791868055464073307575913791214236493388157030298713975277078561042981639114738114288339443885454540542138799619816958874579278280821690617597491184150990531731880488917086632806623496565851404423013916378787819552359940282852871371767747447519965065401780477824608190247646744335420969373691887495650971641978336687308665251115321302336367255431166030334637372987142664823396645540692099530794630691561854666543051925127247244057692015446564883595460115820894628225767357491223406983988673040883894677633151114875620972171946195746012557834360186300272354290741775181798248836504166699961691276263921024688306892613337675181719671985504459444696104093806787174297292265845346038091002749800086117024133741188029604196537121470663443039183224454476142179359069130680758448951463609970681374286217290664740344504471665620642898358282691127971330370166456155742611465201460323025464162393895224476111998795006952059741822529266394523176244587534090333886870619513443935078223307263255873405477904795784866623172275733180344441336524354383404534765715947742938209053939022900918590588640279978460470771188191813103969897580568997325870099015927211731741109513283878965175922448103829296305778184365033695441556647523555218290988453734907380752684417640317373782433863058835877454642327572184154307033554979691328505284987256710645995508178314298324018552874404182800729380423476900833656830554092390497747575671333399808625506048754135783651332453854551331386888804169874268627218485969648352077718982449273333298906859409337168290343986889917271821149004067963721059010135083498083343604385023391392314255782505922451711314613492031569677859708346678726124075379091847961117486907369972150402003858927327929758608796101369371090576019552799412495883281254354720734054920330191000055281836856230517927946831978483831258670754682116083434032764447588848698483253948782819649736867872997503341905153574976688577269943443670870431265207577498523482954434143541894279226776217473988051608482948100617603191692738325452430382917717982849617520957143117313749671676797036981056284131814454709762153973230210099291934566641240500677920750710445243662068056907692682543173178697502046017643319799092625040555849511225466208541760903797113447312001633219536635808702769681684060371581218862349884616032519942408434270257560572582785143773474998568706861175726314461976044513063969437743962853661476679022348589894544817160803936388265126858372144314144626488218416363119361482772933349684793836490939913689097699848093293826136332803703422666914018151333558241932503648322555928300745138882080934381184100885321852033658604795948108462469046564138199358387828299557335722606772962638100199955155321644538579479729905578290826097125405725612358328937936283504552924072696412539929773777020427792013241572942057938977154921387950346861896406566817679986418179023794003940830680424715556649270950768826010640152428227725098842044490688653610341758183851807078089512143770697383017718253977252905230076467310072310239364807212242434759641274071035598878859240358509861712596221692473487802648892278140425884211926539505045262905101010290027725714901311200518909759116955592704018871249370384297650307614304654791553740504855236344321700816913810413955490613945727100283843579449640100636787546742560343706962467779085702937453790389371145514161044411294152800771182494611513343171570810932324452026742879906335060724898537596632464270452970810250884267328600175970814784131615926617085984595586477503034167003152014336863128621076483651946185254769514006917393989244913712087250080373452005627338446395566521622995578517237906463605083117852797895501299433744109254777846818186957801460388392407033302841296681494487098159847003740863990934796611764574839619463740931288269455341119956488464608147898952244630489174358120821951921058661409907098205459479270376361336614187900428558660532242446362087773471443950932920970042001215710505744497692935997880184915918237959710295636403676816641215326037827123737589041385106544756162175811046696151336085908501048689611056847862033337144980838655961170914745784225034726471005420640820741772021013736959748863848893545508818235071130046169120830010241171095515871684066007777144746436275967764479604608850536157238310510427075615918075190902503914603813666996389909495109273314700423454816755421449438423936579918706156029183871585893109383508930119772352660071362747896915755067605567660361611568432001412125739643779093592292611079182394399911604661474728267114960391234132104304071653712150211562514918931805688946408840541029138103519461321159826515214870707578345664374769401826403308465287647299259654877372997087579756832129394207902281737480598764091128880616656666601788176412967010890401224774483840445620911727690708182124477066630898711689675304507398213855003617850937839237406804300223030000638455555189315779436967795188484082273700294990622600693641608884926569594553940111909854533711490902413422846335880785568955701087392073610341560419393082197773613338737621192706637825184785230107388207615141053706715982776992013067703634693793381336166817717949234067439286176440834468015279506241582895368841850113409702023464838017965632559338258960354006178516112675535944529950727142367843898150623045934230183609579403121496505239639810958389172197236498559527995929430333571874718201670905949731191516316380732484819340017853920914413204460163372372150326261722879670364225458767146179773619763567988286279983649590978210594709815611468902141919035093133843480775070968201922250805422130213087223876048546777978099412859061721000154986138413747970062569564044621611712784234481024097889426784959950085835649285764349928749425779368725965255617205484044322441088854518089227644803448337721281052596678594410555523851680099015894238570310065475160375865328696451324429746861417228517084938323840119162637213622767237659759864672461872932832709015678988555189713348307341060978405615225032415251224143258508671868228219155860073528051528627236372494464138146440591523874646300153966524052909924513183613058109029528924806205583992134481656206329332399003216607072704704616047202935113228680433696191809331018333200860328694919829859696488892939863343128596735047448371115342762003237518787843806760772304320917095735253163597422984437751438669798200127947140198867588687432871654066615371382102941674547413065476199897444038358429646561230156235398431336837846679859397148549131951600151689441557007447415092569494459192171935553763021670098110525702878858631318377031490997878236441238231285744215630730807594778023998505218955574521349748325507342138947040168358645185327174288272361182010382603494339251536164680929256311276855951083054929618134792037360795211616417120663985156278550883870308440743716611687114141765879714646585582428202425587380179467001739073828490408643077450886437925759175220596882058785625768480358784800801865655301150467031706868560135045669832256933254957376809022826264784830487345584898379935220408370516447857436773455612081218947189143747951360332481969411158979948473380197190133588756824478739561986599828301220822996362534528527126177990514762206022730321450684420321175515101108811839072531734867044305566228538247708884847670825790782500146659513762813914739256147598833601777854608136836831600032149671720759700506759450924986405542870572404685724960634926144587590268970130188205172531234021498411817550490470504701066839474045116019162113508484418195082421893281481788118959267265009598715771020258354748744435612985327635886337577551707892764868446330404010902307025093416139095165808213854629484093043276580373834035176515171375287664965083918075789728022384892110073321100423343051246365761799935592943217835635505662424320722004375146962248541419650555775508358401650536652310236472511981885726103720920692078597689970479214876631093196724656836545001615090185346347934532179962671434891193194531698215963613721606358211461410427519421953493026331407176772183651758177942886869604875110461027281233988038597990829493669909951072378921555565983906852011759498607920656410287348265809473036690409409940245210182663561946975918515098931127990882091524036371310628881963176103888954068429751470244903023651864346239663345794863870154247461878063536572928370127022348769043010023804065449477295038550981020192513642682902598985566396632132279053030234831370404601912345027011135767331963004436095288990793240650011370665280878922372128502469101938542748112084957041657498891854240169108784442348211080564187111840509262047603244946317370568054771855890971752812570572477254566487798056142780795171584990678487560204958053088781719858220216507201296506597936234617659483367345044097794002347944703332396969136036741474724391437089581096154326098555544364392104071529121769729823926063273343845679280123394472271941136839758407561617716890583122352856835316955676939607042281468120660775979554294893701549231890303639859443274381976773753694336976164893340972592822331616894618742448330001954011895594856127649711599269416806491463448058128586213469776818969928483889905274375833169972633592487244341043225756593639796077329325810015162501678366838918281035400218983390185278276686228482086757176826099836673195972281383984824847448360744260590341781604757281532493419330115934290725913095070341798755644776307458411035182638825766072920037423076228400450490878373368689014872174442655168020686686862005824425190814008159059035931151986116434128034445767037350867594473645807946038843500302809321444847503798580496687326063025204567199560916733195538742200114711359079206884855322996189341717768561497307132122583953703825636648080212859754182903642374235338518098913549762071441044280587859095199985107029708466661518502528815109459306076833208766868864673997048648647740566950135777933104013329354892904036212897523175996158043931522309213127158696815922632464290289836026664307334111671376194430574968546769982766159689043333743105813390522789173121746474424838262694220678706104286447449465092252676252710055314545856252082334951315704326664749007608228108631046938322754869489858736648098030835643514586287471274823973326808848444925772640130503963052130089908636589480570458863564891990241156344979398051293321075715874560746708446127534390692750955008455165734075447170824279345483731151830915427858823128448083188425695673060451031342579014494846744879627129480382723952287878151566818555545742321828194758676210425556176090427181302786695334843263207821304938616725359477516350875314334959792984472036654322968128661988325579628223550429555051794033327873626794150291950077134443880521702960186961660356430506847792818498659405674114133454475070421195618735501630365960567242509181890665197925136328113475192652476775282117033469933755322479381368990436782889995036553058424842492251982871902147392235865246513317771648415264173595176695161211620809253878974275033475730688294452694110310115680771519674480504580423035820805514259387343020681720559518438622691712292021567297794789642011712041993829728210476380564222261295262979148521557081160744722909881761729897216369710808050267096586955672001337619220431549563827587330070881397156521005579064233925362177475810927434221296651190104172693382269783550720348740737929626084893401766328822194472240266339249290996196495529455186818178470278352257404558147236915811842953590207460757189652346679946047325755344244548544785965147361498180993175480362431006802619639364099278254088869539683919838610843368086861063856449728574531295969614180081901095995200707717875122180995936264115134503615050356992775185445176606765301344205438578768610897637623151056082510627551607439298198961561521348889727292759237451134045138788804004751383849145622108815599280981809151065130663563839365150822887358227267441688002131506237059920977645807366815813383540449544217094362620726312012276188128310570559574306189259347864207019119198742201123669668056728669257648441097414424975690698962305163581734993254715040407419503872647062940713145703372718542334059401850944671714198490734513990224323030582459310183537404430108689859003702439333559985576993928205966713726703320676697023050579343953768217742328809709812956360960476496925143628539963528725036379478890013640117625032466430062527547309997616718592866399178621122291396225980457596879382905652985899078232226641977234227228012387037492539100037233950584204354025019642530747090142475905857250031962315052738207853609758388180310067194801170097913995101935239044997727054861228821739136854730671394650631283719195870498991527126142148294923931210079549948351265793546271861797836561267891417363674536304775287344267667234463298828741624036339629749016019183393330180010034834986411333531994063093070226631191554553409823713462431573321509453829054435106318326113322140006441423523944884103293817005621739293646863394408437785612266444094389335623020613085753331040717417967060742041804985200035206027847651746210257180340516077046111736938726670729456243409111044590425444858017445026594467942260771742955956109455434836546234075841948694106350107976099363505020120661701120524308790995952976555863035577299178297551643725910815711830403084159068176759125055376064311160344767140914158231196242717747178175424169276265229750560606258177097644132883300329314902964761906745201835595851850710137349509261892008618624520190710659629613142313325621749615903401400127945708706283078450950475134396961811140042126136232121560953507115078870984094816386710341095809111517059883628770333189587654681908371943100886342985474365687225623020840690989736122166171353923005691435629357491119122453161620248388997298437727027798287902121757774783689056101060880634905614707456184346462052905340654405245534068637694861684991363208995331287604570470614603121900777238271370848855797268809898349977391461538377941918403383094767539534162417129946276325774681647871374756048020366809709833804537998838622445589377455543411974164893308480087595721022780371585355580765643144204931146944214663381290169256744436091798378950057622878677937198240477986325287413348044818560571762460812133940674410723368890888017481272382186063111976760249795095132213008576598788667603438784663919798869383361044867059951938053260093110905917747912243265238971842831153160657892673869917291750107505658765028682905631185241343433856514001387289416437870779014899276367702284821701439183344716502818521802756584710966159976461572572642203597706058340566090927909454344224507417244957864938761114664766864089989130809473005833133136144329155995872501344094128603608536094872630259737543597120135386282293111153398851212375662071296905443490745753736121861838989030940662744763555094153062648184127022220906964432091563848471373454023155023983998392535121824118871294775122081853543018719624836669511901250474113787891756765458481644434830022454423874275549859512168811082885478127384514622533319926976648810849425344721802216468826330323714733609034371035987915854641151870280050687951742854861166821854392283915248842380549968028481489140323507831256839731863983792435656757325728646828487602899014351398743809318202431905020251076341546506887436780324703888891384740525948280911060576695592322100527401614680370288209525231983332502695707085971989747507273074393612867357380588673779590132499336633129599618515600031615014765956933521609845471830390128666434695148203258193235686912271263284194238200005524095199951924817116096155709167398976601906941271808137931022284419865118549347182957053334973404631018948424915248991402741293444790078665663815261897222988238168500440927865803279632208387444049132418253965763673714449706596167961191806217187070478937037434056246489311333007399997959640756467282710046213247116364794086193255478275908859957073404091633394403188588920440522815490538625250085133502835348580064678850061425864810776813320853130090100629362930119108450667658716564742491175195906153578072147670991342210293840750890258046347951366201289991342789367569612768475831958050724294014852096526875039457763966177462124435510915109026757166909274008778354529780686990387497958665129877749673421803910291575508846955823767750901250230922467245966314016671272879823099725178866944643135216613616064779465353754346042055932687077495628576453625952895851518141691923103154004572996227794166518377579867114111698088326440827170705147596903190569852945745100194732977279272993603964802711326960189872953065529145599283613331642736441204879684336060672887648760574532126403443836387678936944758919105723767907560537930961833888772557068417803120583955009755505786274997608903291984103120362133338916061741394624156517522704377911817056805984735655441544932996132112575999735575219447134032232913859913153937005891734635923441584201844955464671329803950756498237303536798292600687612999631279235902885180601066254161626957801854006954928608666849848836422519566631470334230601771402966551135900710999700545312923226538353891243390102734037664943646822049663267736498467901269693953500848112634473705417301341327751068459848027863353611987974093139165269443566352847123423602817265928084022537202226498427344424525231382788251919861512171464735179158824516602997797682180296367363331930688693103726264907618579237593532622190320995079912486314829299709985704348361302436850190920521152702395688646498982343394202078877071927556724847610543930400446427193713609861292916981928903453451784575230898533539867716344419881377111309299647189326770504992432405429236465540221183025556621115951296565983843411209201385862829273378058609241253494140144527086979362612019687721806688926529407657321717663388785129820242031546693020980045959886071884729392598159969982604906394675032612949388315072894946618254084805097495235047588905980206304788848028432198284461194245155314669633798163350316602345000465105462007172234577765753343637709428627194428032261368017586419606530226864441120431906314959958712113814145836257054152278013112015011754504755446708039829669551456031355429506541593550970822975432709273894969088240083932588053963527603559069237921866526557478453254808733996660812552268675923483052209066739279680572053998654611448328036618263105464976726017147295272958092372030117476229801183666393402376064456694904903413235471989845264890630952516703133005200025733463721900042521871007455625628813377210860418972965127397722980252384077995069059660086160391298566427350989807551175399358663820185675888266273781852827770777939689912168256930116263713850601335804365200607717945137275078098299936240283633287602263187486376798150630139092204330707717556146882093658964770160359179003642547236656031716977499112279683904216081647256370455310315285575433043820959190746265433865090721616637413022742107694126471961698442791747238090066585771263636034345089980622834405893387171037579776115979694090126988072032528509734469925893592126616611260414005390694362345671830136720865206410984513180221482082077410644132301848995476752880466258055223954891695922268703859543531778142367880724670569181220910424452255396282365715454071993534219220836707607168959356293593446425217364618187755115741084400074743522797294052290499375760964070326598046850890592997941787910940933217801179819637023345415858103404842742949917655259235686338088814948462684556551529717734107069571495038510447208272197949482389533073872229387675282966682140522986467084900061605305872956264507835503279374783021515495933839206240693385138550031461868896380320446510043785514657231734919150878306221043890405998795594020856336284811167259882134574602729549195562007165865287279251185103974086898661874762504249451659381157414751523499304936960371860223512850470004865127058576176075822724714478106618445734738352090076880864339287139220622347305078930134354938721936645032383831294337800070059541861684631415305803361989942431519971550227356527573135565280043064163707127422201160594023696019767310915617346341962694632127736727480597639818014410053055213779397499902335908136809745823196665827713000308598045561026971107027498859302832313531668140971212269027775980153477632970669577256676516020743106703479340061818825265153179913688014547371124222177390146741160048273875280187636494770420127013966847869652126226281790855927203703109417434728266772097965145841826641244373263844309862827539078984101196033535545767370663963579158935698948659455446020881701713900924423244104103025740701549164204983133370113962296096481795454894848968964939759292642405446018698181157092770519004524558389441807883529340387490630753555699021016287607210703948758104226728146944713232916571051501583216563644008760388366586828362260688196145497698245428012201538145102380317909870712074143700066184731930447898102514003399290959192445604002558281429523265529556227151845424538191159555815089696829086018764070741906517522881093837032749237748348575978309963535001922044096412823756151550281369639110026435905305367142467491575205358562144063375860174491899721691556956097268181553818322017688326105123020966572209442701573959979845769725760021937169367321897921759799057302960218065893230167140409957062127100934535313144610768253108635388468002693078590306973792384624940934489115221601031622136211624186057622863272826847835155815634329236096489284285577246184749692780623512779384015187892184037446026718276546416725547347594131890769399226474932605106728165957827934506600916262906326455572195895903240235982616466320787380946430364576070527824534544312639987962877060467971801468996135983101917788894448012710207768409748844936455134766224485084841120146410184864980256687310408528512767532246824546562205964732809093766392145990735205079446146852613111019176613924261888667353608590216933286785668038214270130538295644150323215145956611534873045987429283755440921609983287752488526822363450492314591166275928301018369021269442929659876366032899170420459045555667042299545510535135990325992308894414228234854484619718532959316473149429329280521907946584248779973763566240511547042280205226115943761328081170090903779757591275181015085396087938961481689422939310317776007023877555716036211120801942363382171872161581284211972000967517973786615515652433835998132297338202783261024307717893183365570593018660788457969887651033864775484504785515451044455323935062383097511429169436393490953337029855097745008462027760097311482484243881964153797986469327055391173042678187492950680140222000975179930978583843005963081352274997431144420179937785604965624202214654488500837873158787737574545780083505372435128256366000597457187432546980968762627006161996568102245915328479573123355616706922254203228494704432252422475071442564250433972049306483769446818137695215839492287543162559170958013735106761237336812674716598495042952522617280501212955598541617856797440795026597521418241468953397477883368685277069240115429342683158741096102705309678658067221795827004423538782214870695397847271680853421834233178577505281090341182959961380389860574097636907409754282124432425771349030133617340708165630024713889385093855931091348951152906966457619870789157116192140497249644148631607456549644863441212771226336793542689997936738947845496869556728112117423765928698597317568980803372327443805537140615863934169696908572418975246912410474106507605887191977939240749091509974750413366594900419641177144845694822565060522529932023480424444061981334335658936210717268001358795112811580964768057105027922475889028679463043559497794919414179939030990895598541507963946495690908855615021563908842859506622235520530135139762341619936326322602809110943745025077201333954913040217107260135456855944879581375128839838994319210063970552622591089345113273227450948988966364744003338262743826309130396276264772848732398273490594669488121093470997949354435985493920043865720493005955968985765414814409090914254793865510366458606669297526453511528490313482732815756993300590607429323235452081123669690553621955941479450603470687774786653369287379580736450437677208391043847341983748748944074855895185759056042046065162886341182192758681486965169886621888055198781955621244994932688703165263211401466410515309318623503995654759463720034617078109434038198882239375988108038704565145672952066217079486834783853573822292097846658021983131316961577643621409549974409867561160371965346513512019683385856497586738882727490748671654440808060137888395328517173674352594495061677093914519958934189689327674915100727128226780751405021391817778584830897718500439381707454637710750779818063946966417006458695228703699696153313014217898453342042638038979923577722274278154495196568279915328495089160189190485716014187936090753513908459683101999465831043371676341803174976473091104361201268622576599372904255967403156201147437768081757453705533504254964840228799355970558713191204883334502088929505250106067219398361827968146935778696227226162152052300525754990576608066207442546684240382950557367808771740737692907808851367009845700123741455493827237953129480089494694720358247578372870776704601617809097597742160001330004635200024572930722210690100382571108896054533020098675757335388952451777055515988460646782622460849850691515717151293137249177615881481601026620214923443469821134537764480032396593023462093020580334443251910994123265944666385476975268940230200671987534223732845652694587441338514336915574656373815332211204208968679303006993016889597478752531392578076819075692512536697337423291305726507540665479275632095182939179277508982880275063407706320465561225035631073218221284418743541714825376576943472047727872884244864422320377664813833443661777108484842847465745820448994301579647239196195892886344945518339190099267896634386760778972356126487855620296130598657106150477776551411011347444302697312275374303318797708120886816093076515193294878255149784645463365987343333195557648634203786430158379631711753966802823423301362280468359100784220161215376049768744152902190598720377609839200603995303984174597265394659684151107553492228721244573897550029873626156772902268385775525228296027527688707462206159873851570697106518122017946351674454100984874780577243262977846145055432601570024981027009102572417097408148127132832678389134458021881111017418917834531260516645190949888705873949356128190575711560861432685215649050063646516330799950259049465409600896686676038212174999263828021319916273980826538292282212377150788536200999463861655164683460292823588486259260691288958087024931260015749750728332341671555146910939522096711805314910209995236535272579787629672636794389475381203523179067244713072036829513557476995497518332877193542397955515394902669667998811034500004867754051166853020539758848031223965310907490742584846579725468308908663691173415515660820302562730229009628850687427963731653955638564589402913910175731171694459872097301626876773401120103477452124425388085984400141930955274526066524088021240136396313444697378543584986592238683711643402653465259168328264514489194489972659617050131328520416344836969816435677275078018175075645742564182443192585980080604758452269967823039165518701349387950135936097455114477258545502992182603076702780110443153415216050018854975577655920630601827015450674131130247948408663432162160821843323698396269473653153941365740614806599588600858262649664104666441653415506538723677266128317701863402050268550168596940473657581758124990688763386440349204326494743304734083452275946181352324002323283415635128630041726348909318720853577675635744989064114421452927643410767748856021725014286385706211191567295936329453516808468430396890855510500559399437787489771284629494367625770392143138037342858422166544259486856854186326475602856017982949587864717837204126839164000976929588712043570609915527164717304586973354450406655749085049231362153515159737827715757539946275605850856231871106305269993899666077867707348374027827722809324782433648835282757341759387063598900006039689401559011768196471894075461055734901445885547526013159002284523657579184938667376811920315762307725548850346206674151250645647575016463887204020835297755918373678298116320290332020446892751258842178545475006299739587668993439967461721402228155910662024924063318560600211572118570811483756079091329143056497417965017248240981052736610334686930637224825725791721910402620289552371300721539791700840449995735202629253950919423818524515043997922881942092966346217967619285397889660048915478643747393084045986095250977516350712818610445922069621613951183728360260054934324551670542582763094113875831872773987385176336078642536699343380122767339018383818767266935853268662534378254137687042647131113996274562384760231559916781128907164758034770850657502587161472176742111743009516327672530820446854221408148023269604352294513437085839338339197505575669093493530359772336952952926229644778091131758995842653219950133341170618736966178525276529583583549813774380669615651558853609839922504572766320024354177306632819999584488299717180002859311587690542798873464828214655428469628840482568125647000598910556822072515821870213714661152242481070960583787631626303324900473981115339660448133729764415679709448269750634707108249655724477986400875551556950756247655154499538626166470561792680067942225676963467829324913860710553382014019297715633976980096259137035827035813488022179456573132151282376111507886887863632873701115745887803627046267748670950498292473483442536663648538899682968173680847428233475707934858968003544449181460287489364702346858246657284093153859618553545395430218054753735256885253982897828070551289166873124507874449288448360045571242613856853046484049684845007329740808926918558166520742489875698972125549906535891807569237220333528422651728879965287358771722597984856504317725041375255462522682821314536922205271966475956143486128442491817797422571730789038082700086790785523547601452979365552279864631811402841210185109696843120151253187996460409046439094765509756665479622912198471835141252044410336618284440751462666966134657101281478000548221753156543728124970394580566704401295739407126276477668407728298078933408106585722227479413811578321320421157169623042883549979882570439658251795510834500314999360983046788047541008959045104026069012186947829336751222836890825433227841960758702740478539792621659404951162975689247886818137488554423194745416658786164821730127096550834302542008295112997793012895430996919254209027807237684775992547620747700524817033395210522412126273775161139090804271785145524114452091423721298222794613883850646643770896563860694373778971622664699511890966745644537957875876453175694323198677682976852877362376521092000514945063902572989166580284844555246369434161799094130092562014518753309093189474260290573608265657077629646261310592067463288092022574807450269653686701015127139161295961266595096186559770929159159745951093641071476700788550022364457852358627541833605150499144710617447102727059113343391059392495924323208209449164218221543007386164341812062861622997897855269724684620333391128359844421785631950803520821298178042951936911261760898649617700373851990767491789943343715050532938702375901039170510517446374696934653266015482488015256861014365438770483000105525235816727593211913540345964960261662266372132699540404198613830599444057716026145877083282677982511773804820090406253124867207167074992461100945597638610670127518451928079838245721629231239111786641961704981949386337094387992821489428299669288019917332792754679516463523653435372106339279947506871926395843733873145471745493808334814666864395612379106555438837681072442883141117030627873158241494831523398091254583986490022644347432220379345429614651561771536731470887921962064015848868629815229787035066633008034173310997359617884696214505790703819376807562044281119783407245384171736338885136812902940468128472128297260087732720807293610059332135458453268516193546572650444753072697802659344331276993968371266559552073360841513761464176262161851912878114956073106697714171492076506759700411829955592716356462096030454328508644164776735665309244427943742960782847897137998692293337415433028693195042760707976049835407820520883806519196384679574412542262747491700655146475505535424096837124728725287412940257253833403359795722912534543693366840840968051620926609601173014908139434636789971384869440259710922241885178933112413580847993587989215386700499605271329956987913620851128197165778299812892831877744341803458361921769990934388757895561207550884922552653967775560277167388837392708178733592112640552502227015154677350615220803826846233150949291037280311502469107119411668756204519315312015582977146490149971118451572574802656176568596103419596510554225327482588018245140766644940354740706393476763324661296288387426553115918140742381917544378761050234761566980214133165148925208850988642327868056792835952741799292094913913578993781585578552097375854443347295658970181769331995401240255212063215515278095330370528838699697524345954945753992434936421452248340577154035755244611442185928043703410103811267375670860099183776701443632307119929073716330568765725691992595821798048549923912920591656666582756215425640579917061831512735605047473702786833954127790614296275681618170913875240418484599895590004227887767610295246082714366524371710508587499797537857591952280173424616561814642538572985087575951319106390313362517438870092322395995985821524666783345294289697343394190977873763168738326357586903217999912928879108501151225391910704663727707174036396315117321951977442074828505607625335087451814300266584324417187034823753778380998122157572195037901784823167879154163657066288637521502167094173729514286029246043538914233173923448341160757220241256314792158044233188142686616429833060239960387178702613113735987789101867291852052962787089062731261864018400969271640978021259470554434752635776969016801012406160711035213917495102628801600943377984611399900962810624491469298935399723955838152629452623694967549819507182089721220556554681314604299279844021558155249558671304610059254542049543771460569642407407984899779217043254898033121858937165123697054836560135021272663891013527543377718283815606363655694562785495937308467691836396594816874257611867349348913092911573810266440813831513727299129834306197539969817813411396879293177114461756199977771741648986361959096168685616967855768744012005800938956598283900595033253925999886797400713875567342567801385009491473220704499422738028323361481821423952444252867905915726031951335617305234058617907099641370606449570533485463017982167992435611577384469154099044664343993572306186285852183256100793694803016952069118106187759984621172016497008428519611909708082974387859797170496308214659637536872968140664037694400222302707975726810011458993397795934153469285985639756202741085216979567255672627566539479860104023846987479449216974572813938930235125695456894496768657626083766544342310891600507636104030496799815086360120809444630267415680168266098220184070032392858477929612233469265403657964852546292723256977297005371239540705131690633579329001519659960448085927516419986906218788089649733780925111203351311770497712492902337329798086933874467449852614436836432701121946155093676660830536888051200981430117806100202262873642911588456487731984934187257959892563955495870622915666407041127710841355368335295761856986066129841027461557450839067575490014868703257918968166645038673798528379623440817420884912680812405327199717459907818138083729108354364633157260170789660186811701526118053459153316340136458183894445311109651052773297197963629698031432642021205640473885300263814759661941913413935237607472317066253769760860679091472747985887174564679534266975001446133130590838155605133331610616401236054380519320902399674442521669574172374354677589355115835779424754981377977805242309447426526465972333859131788155204170016593932192436964896012660914164881256957415774989973257465725744519780207871653903800334972018854715907924581225458246603782094387401401798361015019627891255795004491694528109780177798985275364063113347562634924656364568502230795666734428155862968851475936809939129111636399768701357304210269257806294942330167343078993019468779331946369583038547048035298074435823028317433600077405741566750008529185333545804197470878360189036024844474562059552224420203730537719488403902963839396966722597419096851797467512037904289858074709564724747317883687541779899373327206773210658720688395499538110091012040703093875748617007359586149356564971766111474206415337479451709543303287788960063786104738751127155476850990687587818397553945593651608938945493813100703157383009960969654996158229858480838015165066536765004889215834669180263227042954510942864909869110342089832721726443485860242518612956090931697571415691578820121545047488140052743205416848355224992913580480937071028593945983645889302241075165809507481014730367366378260343198375775441450334965212221313636622922187573534805276980311313810852436368471732099035016983582048166880256385260118397122850484444389987253840476034030559847726681791013605253175883772799149330268176799005832260820166695613696395517992583620345241340809627441573297560557118964442240935247360096526166252256434257076089716467320992101194475552254364034161783847146509737307205674899961670653810015676565955839181026493863634988713881203150818965183696664734773036151317358269442457399607505227318519694382019158956056981360914854114463916370007204443344658603784016728291144226343894392782164458197342991636002102844700325572451809933157469986344919877123313690776672768852510805785252658722547704357401193633170075393850844152131925220844571504968828773350927041634941967638343100937746867919290753084134853354332396213071802848817020985588021518755327569901610927631332417315619890250758404352691141421075281977152963825783621900190284932269096572369842221567147158477510489468175623249177875524845163994227669871407482088266535880152378835873340908751737355055058648018972713755217786408778549538698921218613358300628228132356132198010768011229664739135714461415972593732732484132907328920543036841206128995586850823053026562503531838653400970167651029054253365075155653956546336327840550394035836100976849557332183987017382446819351500317620759485024854684405079532550076876656345057231039766402467602144534807255114495208566582010753871402720059768271862564995156308675680102137920403628265848809794570833991686930487626800505028922259088157796996049795131164009042382120927479197521939069117784437528126597469649597888062752977985548276991243572080567166097158018416465397697010828450887227286566067419125311863113853682575441126656297072935816411447018161914904441312491295526012135983335294096338139505287928301341954740859519976650085129633855673211760438284830941720673172061404117723143471415070106881343393075057997638700177349056679955961547016701019897234798919595972505939478497702947542615030599587453171290086020842012082809327934267921898388380859367446927900885580100345395684623675565820748390943989507830638513488155933658777460422683249921799129955347491816378473147588722993402817873706762328723246172243623853063223245720856669493476357117814522546584294054480880493160128067293316400639209206768798476523875956615042210042493419078014785999320069567103496974808890194771816323508904603312359472811831960700236999802270368464177982068502922905064290220410570867079330186070580579830154206314715180871915321680299785353492958148020000748430601559919704381597320414453858442313035161709234323176138410113048189231795956861816968033025583306539365727178277836524561654810344623106147509899050916782528602277184539656730904001028035878766930227265271725399838437559629612912739361967665405033402455926468991879826065366691279718772316261965004951160863143591942651543578356445700954229907507085166523054768766727726099820285850532685949543949682905651875773762275479292146179011100503983861916669997249933170245523853172026960763647588188869329764356335623842731074663266536859679541291977917693245312942921054839617035860391789663139181562687895570866053955251744964485924717049167163046300624191828134101100736612419040998704555883068655861096351967762405527149657072238489372850471726777000623102799987699209259552759793360201583356685835411335346869680696658067676862209853999573069209555147659625121874812204668681144181612559697463840188786923973535735213285571035847005080041533449396494137400174257485296846641756891773364202423911758204768302338355001634053415610843743087284701703766998894862754889427825063035550443018386528222974657028633437232150045975808416177226794074076201606900689256239830274516899542675513979507791206843068102509179268155148992466654053880397621151125705460217402203779369442608321971670171527616240262656800545493015156072272655111733261453009300426194256777184861936617680765549312323982393118497483816093301148277573177696267737555855164923870881647260728617020154083154717288876769825409706049178212793076027362141589027433232503100608031398139871410516695250098318126435897679156152878562550522407428956889300878295360944193348917850907817016380310704449334537880040790377740820387568943116301976730487359944199706464946826603167300561155973069115829175351282729189462443801127276788128946052851974562628351898256045060768562055563161216830981441260743787138938811703396676676130433715210007741786061587732752505492632376930062234060285573016615748358179997119851089066644227675202604882374848021577105190722405574897097242626175805373639982324809822894896582144966857254490108966462329644330149038001694612269841602475070261713563048523712579841089327060247244044985879212848277650186496586330082549082115721321736521460255207859746744817005766401920322458131570586780020880023792243735338433851501687228700889948596133993137824661642302381687459271248869211592807746377324684185362406292150742332655877889016424455871487542033901576433266190423475068203395471502458187223583395981179335736108068971377131894107692900801046119726011164975779371657451982783062251748435629159400789045197052894351811925640659586452186814253599683790548732930348070640073808333614652790982022000603927834565374817047179294020114165294753237008969294500006112082423848122837666298121885935270462759690160324656169651608371435425861325757906603057089662544673806833883615913906715026338448272630789269891364308475864816077036006561971457655892165426922347824446084081520722090686901970542298133902553221693839067229823094878406009982400457467184556091475694135444772596268284928185642586921389341462285476904268621195481046933487089684544957209013484304007605626691602972964068084053130933646501067005838487534217772171151335041716370342283981979482898944092735082592607581842837687205321412704214872049231727134566067353289298669127935342341705961566736824720359059483349822668374282384770405957877241201849530081471928592296752539139292127347804280692486288740887750278399397608485615424598444072471513619917787399026087453754621390175490316378207501210051853568212313729907193740510450765822177820315870491225355922232946873421255443357055339401556164485000093372483162066444333620669039405102422987992966374620732501186247763298317311728204656916163768850966914376396369908634014638209054209236330631475667792468833119973970742727470760395251642712718768560566212479269513785093671716950832187320906118869596309699271934562437775940631815981082974020588416606044969081252859745019656493821275857526877622761280723308700122605769295043966337893041035971718971951862739358689726582826089069647480783551551974797518211356639819333887111842580369552044968794663248261208621518289219513908477629969154358948855920930730912717582196930077435602802971047991915672902028219958138263491719549316932987488628347602944228447204029978392177903515392859697553019438955651938790352813901239700919684884636266145608079985610671311785080512913764627710824356202718025160935793720195844777637080721943814220960812797474575125015622282566399023451258491857448449247139494373720232454001900369683400325849425625167777523665626957533860038093052456178810093772094018316855898104993477551792994133095135987108160181784348799769698742767692630999462378855023546506075406047025177840304101251036974314010008764049060013939150389201551608399622363335320917475803967255605544229963092556860977605795811154584791991835934835079916064467536384849672138619328586702217330867552404384330211375371535000225095771605989768779051332334049916563306366256468587168882840580809344285715902920283634568176164998224506750370159943832245299635591594919927874769322187549831915949172196914081720085236818149875923450903453758662341421132065345488616715832225110881275015064888081292800242300657230836593818640932911714722173779224157055657215722946749273829573428092332643821957129951786948976673631760583367083023083550324984927568877935098750810290322065157975182141970279262092010812522036858007780531142614087876009865513497799611450290670974154974773138703092084356612384591086394757690196580187032828420597725324731232151891523247838480249860045284715526492179576338534900900530459105251050851326017572186284206562003828797867075850824191068441184851383847672650884267353794945037049754586861066643805996359435099586228510901037537097357965527201661444909153433227424894348231721817277037863236558187826523325153705520952073885445368778382858426806352701959796662848712217459906074221253576389668515719203216733667848227192212012624323265189274704384901410331955779180219417401402207163558196040984954758279255559990047793754093903946933270178812871890469918197708543013457276065100145764806781073444942992151423241453826518341385681676044330077067890391966533108756447255133473026765832482264741848850491996889809736681699071172596789427043146107580510827792008297818290024988865118214208694198890444892275204739443564948667777662430221498779877496707651422753335817681315666338533260924129404676001328869587151402372268528809270111370365032265591639544706864986499607586643931803989195954237592619063031358223016252713188356790771821700945177371419596393473195076894847946023099035587050526618413305469333201369145401356041485903919761871966028704252207439577814319667055091285167958697339603311123027133701298259100579160671705049000211690824210414855403534553677046956347634518590672100507738543569626704675495838183762543501603790394346471969973343769101360641303751558718303784200684723992362588430253310119884355701847545668955020116546888068899018976433022202350480423806308941316609344154628200184801022899510724903933800627189107873154194285188119168709138729032472982318213661251959794174760540123473388576145073913116296644777636917839119563532200323440867204921844082996118097394940028160045760764497269804765146504422410911825957431082100165463429217822218268268051076248714947960266358742685401110849329498235251707227424951776246568624496280977474812456439276464041450743666137357825173333059302853899507961138065569379472911496902097298273823283126966223409554436653803955906883752456188750556126018157078991927624849902717744970570489227984940242976103947558991165960974414580986045776182543100134750705542322875074368549383156299934460553121234033091405530529214250709779347945076342183384487039831685683309207864921767743436336111028908918954251061301704985403252182646781251797387204594860878428960622661857452264906579388405638195601428421112388882424984407607808017941541081706760253661630430345672982402521975889979377789922282227231329489473457600431667757806377341596354876544369050939666110366760679940738914482782537567200733169914106751242866863126528930053101389421601842484861517318780060285669926465007493571784383147022114008850082181992440509028123312573750787657496066809220521508668693184719759274494251679100411600568038855822809537988124014437167786748987070702680894659582345225606864911824534510150632045586952804495793954443862518351588731353753649401908186008251400861513126802445462050102979093549021247066627253471688945054256506745865928859207931568814105463732225532720173854687423034894213057191519861061290284032033541014294437228545620587682876431350445780295354062308676933148451346290277757969150095657101366000597141160797847504340651508374933702899677296872806044269849894315590267937169303949899572485865148492315801254261266175711606651876286275274586716805584355583873236270010830968959083923816863604917550523698651217862137910656614103352284925149531743092496269258622455001624327631622048109815815814958595746139378843624732482953851963696064619218910840382133106161802141836137107132262868081046741395395876208269932199844498418759749875152664979691436961571787627664460863869664970080533287904457182896373890434109117759861011890870362585123668691212740618036244618839614592132574354305378510897225194605607286679076408359299554536747189532642052777240967267263369863495534092917696427095767344432341377323690145789745450883840331706497320587086461675735698279048285480207485577618313064961721693034447251557293692056744029340704220516460368428520892837456059297775780517300655916384324862401060345112374552033928819300868379366067839506283256318841735251042847754727753040741517165953195137771431005165815502852951798302046025819903948716196934833486841386277884519285046665952098832695433125145673196291170186627612099424203081583910632523914684644237655620644329354116259798111566174979669653011643770508906693793267430575471185579310144227644516735954008786875962616384089609473098012779476242828016349061611229333629997321733970212032369826325819968185678889844003986592640117634339749884327604031826609780622096650382367555782317943441270464745029417708094822523624838014995691877761594083631045858856232919894810404831747790137972030325264254565319959463485668860713989202105563608103495536840074593845304981987832356013135386242575568361658043565381814734752388629332751686035278943805844621196148619163455605078905844715817803125743209562866339738939342088945055546028431441020448838647105882290135765285945782311142457320553694711424722989299662780731321844813467319531787148349278592617220409390239058235245797733307113861591789008296207121619140949241963567674189561468245252394520208099086200833813301897876013829385641951213658904238474070554590397636857408550143922363952214847592024891487088488056371137851348826413020447804115431254600038199745008814539142322627014117354724321774929062638818893206810528987101882274014386067340098591043760955081950155301426829534741175318248326311394050662205203237926085189090629708949443897821839696880028744331608108645767230776119731056789270643590970021832990231030535167110566030618902258869251287917007199217092672157667475777052059634231413147578973296368000856028581821993594197848254214010482906440661400498273500074675869323718915009086203118512021105218008646058413993759365741570481133481230553461568755396030075938534871802567651512401100672144971783483932362320077841284567082811164571002820315323760630373619924232179323731611485451239285882666803215356269043181933565368261838264810158212823600068151276026624769213298500489561265063078410791888232420852708564502470777722206589065871488791060486415214082848154911362371383178436745510213453442586956908472503796873199468961583932399722088563802178143911970801247628113715796598978024144071683207980621036275458629756127832863419535818141938054598210763048088333272426696548233893190111881779275141401561922379819468883899846481792958348856909915554016080608993644855939387653338304761280889669438775453251993607040318883868709075429793734101654960914815659896168420741319316262224286281045111790064758103926303451147667630005306558901830682227595137250172945178254012857422028348606651428022048012035718190663719425744947901920588073567981212281999812279879637018802373955992441151234499159339776091348059858856248078029749640133792829201344897060309649471659986317320996898742775915342272642889195206333100856356628378695490067672555236126617595338676709678609549064651011454569827047340993970655669180861818922498743565106048010544110843947263463535773830965492082255390089417045946194078031777546459115936996912494153733713594228569873102040042910975042338753335833975850681381511925635530718658253600805767093385378417862133870346124082896901913966324640996280200801369006196492728049589844119232288311419680496574148324726920884788885952593724971241415769163862031503569328724245077414250618734708825604024025414767068280523149116131443083203557952903133608709838185559827593408649903706867356278047280982262795424809935755144508101830437611650381074861116850418589630312059710215618756092152377202909558973898524751891166853911118552735507961082316242232703552848032772916146235251354615305715511560968827405457229458878912629948849942395675196395160516965052036579724718981252726277980454026516536027912509509805649879240067827026470368495577802280605108526439142389285488850491859807328711972563744319045654781545132308580432002996569763348197286868799360967292612054759848167599585610764216150576517320297295348023194943477453436989526090867743527240073145961410093328885585816257520626784111213074082616081570599614006507840994616645708577640189031522352584027228954502111767491082197842403330369780719824133634560490520424335920223120435542930217893229513382066186464993042450909242537534506869932142365050638489563106141515126365455568062822523104895520065884366710457526639693323845105161377013879678056093895617481543630044334112003173127214987307549007541704728962605778834075106806061465168802062943564239393574030253440701373357429718613961657015850852033838125881037998556588297295911186252221620575883463332492171018636629023217122533897229424245320081811113846989257310246881028793992395700087411398153293580720859393907473302851865516393486829267285315524026626302229538324218915447777791915472024311109041543593406229931106159375547950619459383193582089609634620414703381723340299185354458015448026173045777855095881335523480307857779856317029049878992599998022110974284061244016232980885642875181308517163225434758088876629699373641632844844206220952033621533051144480948543103382354776800560769958886480681788292183465243332825802450502400799145441090922292974366859716159681616620341653140750228562719272209111632013487856443168826002351702110399361267632757739455117865896842927533523866496258939066409567116258064413987508778175774593985553825050521726611813508394531299727081941490886236812395531056809697688554929984821115108932589621212294676054199385908345540810426484985070644340956481856228910433805794295069787263760738350324706922634529187417323194080043753430335887868847114815366303025359266539486184113182623935253106149290662908668661304694714264613174610017465014095423903452419794541214827912814616336316506576467928268298936872835315343036198020594646432815812869005785428481041145336810828585792764086057801819727286802670344662805346003442698195769335624983359791474263892312984163589501573901527465996202109374761817841188246194387592062397945654573573576532316169808571328568830425222377387584581598514680753758633176085425384624240286812629564369033210482377829402634572701759552768470498132915349769135408610224029628490216430232513513683901029071976794956040123480100134626516398461122546741598859976155080879655296958302512158832177055478817866545390260730328089080808552389694882743247373521037760501827053373930717107889027398451996722454242445836989661872538085781175636772383029659903627027847780952801541651476029970532882940737431171802358693483938323850271388575606240391737564110675884150412468981151027713229217981442736804087177145699126217463034077596131752495951589391284633051730389261709155884724493370241199480278618952105550473471657675524920181032582941527272596547012327756014770581962476773342879368911113383473664820516939663756778576568208794047398786577250258643696137368974159408819645566990959004974511768855463448441002831403473788634957891821472202668682057151878420014254220976784274310970236877199902382751814728433803807118475221858031112573274503583807788209873986170630066746017282076309684247107236269952646650866910200666481389157136345697663072566525247134747866596075545876193170863819054790843206457364100068206068998251029794227014473861664066458916909060519398799699946946830316174660592244686867444851447064713668855466301507519335516493192338119306887832893271617736239050348273806836637208235447933092493889150500528336192983313731832080053295845999343991085962581300346394548907654858203667751922969364857949853062130857492398679181334171658154192851858236562149961055408776450432260803120334171667703686431674995741307641236741010478718612564071543074665876699020004771177637320101368069519189482417834819887105027802290482822190193316440610927886142400877741483516511756829473832787087166766325772113631461874808669283704653998371019944899829392464978406447543318075124096940894548225995007288920297512212447807644112926252334712129211493145593132604605301397666260541308360343824896850328793388233299198564463254893558789971541577000469718435369551643985208684204589407184790440027594565114183128754104717403515380166456315887947935050944046504057785368789062710174334679959187833434443648371103556595645729327073231630700777222118943249724978845159573277987198548593712594453534641147996350595894464386072333177410760910703481693386626425508406343956576334156625683713983831320642399764714153720831233587537763153522433302638342391656303250907719526010889633465803886867435060823904931069084050172688181786978544726268920691626415025976010542119132179747978037017367354283509570488293773283510966934201260680321130425210176336175684441382873969886724085615375713490470608702159388938773954439884840506603603432289636594769857920222850584514802560147404918643962468312045163794346501481562762201701546965470819204385317635834960995068738516904832343267668429513940369938891537359064791530325771820058019959325449252624812529597335791210858291956152186661578775761657181957771922399494310542995089207049612267290697994727461543129644679922533960172207920584407899965801325247467555992162163063925705979733070655350389187857903316796295531285679237783325440550855324345130965725507232888255986045313328386242451206178525914902320192924240671856430967172364424985078785636633177758093440073614397037624901297997411720120399862342227346505957711468937672052600058297645065750190525214450139341344238589350541273793389799199969338047970883968533237953031316233299519908538628888356617655504582228265555139378561120007895264700269790019422339223356831495710149913970576150680724504622655916737145359011206738710229770943658251065806555781640523698833795976865181101108234917424426739195226807051352328801695742242885927282374538250580826344824205370270094604705922065998976075372926845967900407604602807216494037266210018599450723901446618657924090427619769996890040339749752762411884757332882314760030451022778237470638714807729329712718202965803083380902260355407431718942979064121848268874015712317691715054873791291413622648957749144379854417263993344339347363861913474268710806328499879289754202025268035550999535458297348894641701196150391053458845282510352862393661367325240818255198448254382559358220372688428914127736220309087686934929237534490186815453387734412711026419279536545920556566207822726924590609806721737164062956672672253791272716300470664206177118613390520749615692736201748596416302478115860137905897987997465767190633733801652091235712656377089005815931703058206488425442347214569413103473616936002303090707757498995410790654696689885247203938872850200249374883698639225995778471883331504171278011018733162786553723001888985261531273533352282536314433628482912045128357507401323141116964075461066949201587950605486814887427198372938689399136294067613312037836593609891852729979537744460573538103845916199011442421782399862663111418466124155907547146191535397079346539111287626115127667174293232017254620836027447408105892018064321842275460224270913084262924052969352102028685939246538923908286111409064669985906670635421715294787553170719163205920577996619756495111467009634226136368980528884423714083944823776300793623836410826106255724762483420079116456748035474199572454005219547692362427239118902635737241277359963440993941706639240780730625508643982059935196595912657073543657163471808393740125842228254221109239217193765437879743148734615902114863807820154582035260880425723902977319471802334984456342855369935236890464758538091870359352945701921875283879257345239862557397436998861161162633586274626623277319050918412001673069023931051084648863834256753702418693800687150945308633505927488786187073849715135403486445363042153336349872809806778607261547535833108457611281106524375994425579460953062270987933256836540750190090733908753996737699501125483553103681385761483399256127484790938431100106112875306446016244988505516976219590111730121596070340998222803337466146850439236085333480997778312499005814047715517756825976105186523850792971604385917638101994055770883954651614418271363069187113824920649477630920215327530313357820222378067266169831663026221988025914726371189252169774422200351188120369569198262029508479352827720835381554544029784500641046566666907396691427305723256617074912647103807902305431518140823317866034835753736119613450946028294654667422151936789249038064893571196983932291419393311747123940310719668933993422778055798837437448494507129305958168329262693086848208681529928176850216242927466442962925437478444262109290568023381306800374812807740033477244985159700693106969210311328132887743186862673467850141254335251270409111440287580324888900316445507333578573990600444595628639651386315870477665239410502186302132771332952307051874221397854826389969990264765073752071867006553283456831882649568918923435288943079862025565748088559375381984711026441834647578075914441414557994918681677317054045717841736768231206874808542991989942330495732588020403518008763445178525666938166284562890809398907334532271058966904452978416298880886993815398041988967104585075098232971454353012486886027185258417249286138880438667878139073033348801628873272117697042983252141037773412487552174393254359123564996176275597825342396890164284535684388153923950682032832720734670975097688803565728398083189666609009693939762650615945111611789816917539517365169098091454525977072297345703548423346744201177426807103164379647326618135249728768107793641202360870665716249323592971007478258167686622569522711369722257800933523663911603668085592855893172033583808107611628494050612129933026114471274387678058654719843601500491758923589110350657802374611278062729177363504641933220364929155988158596380466223041571348214033663818940007256962348606142701543227836066898182854949850375924118614015830309092309997999826723316913283605333610147824067676197322517855642845172487746774512102175204909451698574209500533454839944759472910440765843806034724173532802393192889482460089181151082825514441157303682869559974514433393204005554253814040992940775623283387957279764846203964722541942752159137614861637927111074934577996559708978838997168384100807401893401407510346832905117088077623500808680986723907729896640491560181213513494149847333570236354027667076436773469480186264369421667882646453571420344133319407445554707551293075781719486673630194357535462627256315168354412965016514621127145496594268996007794392191924208793356037979090502487933833778689107773509118240120320682788801295952763134248443073530872784687211567120850500095658894383838230968858611209682911512166262161977716710180768705900361465859697485879487775735479840000240495555136568481346929390767029332176778224820757729695692109146936150657811348389244146467648381943621843293604955604248292886988459271863944169471751020673054380282651686250663039400223430463994314230363405622869704722329781243106346524049802699325919578417566330166378301597369559005275584073915141494237308697768237982814754884735876379846671467721475913068878463438501600129428307025103418684583878626508315043561869580696527867477961897156842640079794085061778562095754314721698103660692272109538692537830301295814062091920958567527842703889249097806743990526188488178657842107854933720912249610735932124487616932581104651932217197078863120678464440072596064131719935023189466714251478834591231846025862190100649064472549259400207374606616114788798031249426409882299233868169594218273671045356193948039774929796333536006985607585996794310408940936057220379334496699847958897751686801318597831455961328248387110686884490928342157446412084254011264725538762189350200728290683380269799976105617422525654350034391224738561393692901441904574375329726063620613061930936749189306843299804165387322314412239251755030377490508345364271146792346891510224127402769153903078611966054301867620007235446748908728805083065516936275344104363042884676006623895753765057535505005530683709750098865351602906129009555751030946827902522409015892825266352712043496979842062506283069374874343144882340175947272601488774744496970903945332475446121659701315225552707827483151218410821701285689942532514650507573060034735939402773791402039943029331356541302792175631308993453127941586424530263957182922859924144979601547291870140149952743650913457097208128511405993306918468765675888424495770885690882825294428104945579128505531303132213941662495953589817044246461307165400922561170142807811805895452576695881164457431336330315635003034534314583147168011394331106704644868126778805593795185242997210456777549550715179573062524797713624605658248543365555358371129565041070958222454795492706265240146012370675651748854458532567241269694249349551297506831661199864857705723268568098799421914292952681490865277786642073657903520115383972018770675445092256578080181815662617097699770356897314417619595212659806050255921391800176260177303251350319288778402341516095628249055036210405813017743729742509217089027282775580407602261093920850009282229876263086947994532404665267057680968458427152255636052840500380107535584084765939215763523635169825149839418954186503484615760660609388055520583905336804612186735883663836474759396412567536535609180201704614355371635055431086441115466126865363163402012921872745040019888395345238890536389994630623195607752404134975407725414404320374623635249148714814375854318227337584028953596209080359569111386337706446238598952867623218850721075154371131094949306883374605968877718824105447632763046504895878310722952769956980738342057834220968923947500564981977281070629944797306435749971102616969545613984685428445726199541899573575631756440199807883675921465173242667002736458830683819876802823704643986465974281025679394145727470825429469990605097381233276144304061263981004484018289158990379689195285286727006167539606930062424161915437043676058230173370657622064590248273010826094845422126234239286228635619586597270007141224264061797259599498965618195917475241532874163161517289892535982811338638565599154781999137962133705046665517643088914654184432980367456112524772712906498911988905881458207799415236401937509869951298195035889121798302600870702054994535455756821656361626244987989712670138936867774178552304693934503751577136997891330800120934288386079022753785530916760361565000699198223068309784983763064441280068974585960499373746446885911567037566298051915109036774731634567515728946542648848126939532213050435223319934329062638566372474633802703013683626901081653628151573274168925816241499229940192956256008402412275699022553743693274567387408045768477298611015250097145585390596102466820981299930255812618255479364383679184123350525372198182238900867936392686974582227613532472139337932303042950287437916450668645126537916384567060901343889395024076628772783480052891230154020250292844443345543890691012803178455725928362597867082579226831378613160710244789443464973931916893000228749999676735310174073887161147815400425595301957498144867049834617565284772170001397997550505456357015793142926972169286121479341372624902144027642528786683103658716401892800378140168803614435775071536022717263391812339719841555098465820463814041936364594925639676099553063245587835221492183624772998085606910072457669036961946113040719788137482925727027337470696472995853090498531932017771822294766733567750032203737204151631823495418301984075608056988032139602276370479433747178448706345838433889783184488869391004360819743650922092495704647268218327707028187833497854076815155653011825576701580319424926167882805533766949192695250937622786793760928265612598391310348443256496267043701924044766708355916558931215748166814610635511044013587934735449367919891368202463350415784915137015074987222238852893967098279954575842792258801129104735864659760299713707934327140113963081909088595917171893096971972715764037638668173711655876324206011550893693580452303212117300050784632603718570727202147558140996543321161340489303014602933789580506677156100035408033645564047581562580114740995973198603236497608205067051234873683037841205844187770921063419012114799615620614885913992960966595094058357842334672896233035455015180652599451626399147085977102075721518767016848166611708470467021013872568050504676615336108977302857263832699028332622593771354484247815592260261773197041883611085972676910359080341259586312620542339733334215740418807522667338482888862965236464216451851751503364264147979756546632242780060678234917750112554906106656780443318030319722224624678958330057244514785710001621901619631351516040846439996221728130703820070509592724883075478910320767890742530368336621412986802427191884905567986589770991625926483900210658661097522736023867296919115859920347271089332473100302987796490667845678779466283256383676852495157788933456745418308491839929769422602015526681399835816581618458269529399365692914278272686205687503189998899366176719346209082601183393899381805075852336854460985069446763978299118726972687789999793181013982355876303759984435590405060389236242233416085283302688268004658012242467482146215637280412130687809813366333261787222942040708389031432697014476909648325778943556917087682879446907117537888580180337318333845529533833743759750074521287769269181139440610401497530213365036259080117932037515113126601215227235752078256306910616271156607050335927966904428892619513453174129961471445854050143506128892731248713863268283293152923713377816962340881687757090587154068527382578749707083240596100112521061338381675141749297071137708306613028490915394602190978609175395345432728473363652113241869843656244319309229955455667580089537855613587420983761949996116564197823279357770838070827451368769751853140515674625635867502388483281664119556839382815942618728043535329541520166014312889718105844036868386796020516285080201008171847321078185040366132482010235246569674511563468379369531252715798821044176449095629915165631641781535565745997860039650798602059760996289714672810704449286206679748520808518763087079743746473523494237860302115557550932268220630731815792304279336026234867574877960214016520842688270795927487076143604406403574737519545916882054745625988086635123659575707894905446675514603317934129683912757944893327086995200045735956857487862970517338754325056288402682671400193795082128181866475915292393295515684145814323795160288129701392761199438718674114531004302744319621863539645786787345092554883490545132691151569504365756974765261218167267453081336717264349832118252504003357210757117699314485189455842142465074330194355175573163972302071707609325356711801501431513694581220150529572843035575565159973510176417076869894445775657893607181496846819702138487876346489331243782699579062510934480034117050695565564491450541213421930666125820130045825060690676596555847133687462495612774364602595951471549736039971458027294852980930294888492603762197725234155227546266732134332753016162419180559525642667588016457155526525538878514994667464673356519461808515117280294520704488871245320660020514580978457913607704789782282391303237761429610658956686780336905737427288034203253958325345421330898122747243263494683010632197306304513147680707642370559577874343758203865754594452978558116640181841252949743208873176915611340633100387070114495393900945559994252764493560942259338032239664951045863471243230103381128696317389040424442918394133554661597458477609491577148111394488047486026950394250712170466595152879878213271332471106746428700270272307026802421939038164404364224483983661548219367325985389176312407186274505882807880742045250428035548378382886436086838687698322737131220557036383562122696122232202520310823831688455934089569825379857762976670761736113732633783474159552542580854722243741547114914084984435819700938472466749433617532526129505939756590174546246688805314246413175124395822282846637613441346170524234248911382132570767363980693193228711293603927496450450522262315396206506775025677268817904318289442527449660527340403563288051467532734047409875880676599912371928339305570848985936025774219365614419462295001500512035121950755633852460110854239540590627760364961025154930501845119905667003014889504000698585585255849255553235440537623865013259477401621529283287297570143916106920040369062048001595398440105096862108863224704742103656911481944841770961758095047222883532216935779365020004115724855641148169557924692485396867190231849177337898680548828177417100860332841868031462967077094299354499321975084633412971763082869416840922238598045665029145344579075967885696283247047450545146200624087988345242379355571737453711771593898097374992297157066391055006530300202896586762954387524717639473996199593892122704728506493306482578458646746072633753545690908478798791081478756126605462836152941033476301884943646170050301802109757956891270386445925888601701354164546633021064152119929509536692146109065433933424448383222267686502271112579325399310486893271940110260577943582933084531005887840804243115323511105295916335404053187096318207853629398180109754594753845066778727121652987284136900653117233988175054186005438895227270496516521211881886948658807061564054742574144523147669602524389951784045579134995116417096986864760586095548993630958467826149249196968149116718320460119817440014068762108361214117765794715646456742149139634341001067138116766900295771546716595832147949530529259895642269436932461260008372050437303930873753499088723135963626237431405285768054278600440839662380062463525395969070441366505358093132376897093559303860490817574534064310388740345095296353110135543955540792000963454425208472760925230765116386102899953887987584851322255997616221976631610938370879477759574692397567957165420688319953501301112504837062280219926205746744763326154332542265472270320093845973758477479665558892157145143073902043850687311037552731517122307225768822536494121621088142193944729259201637831654745488564550060417485846832580153196138273209322686031457007037229961022265925441987861925407063328359024723676468935487519755978799794672258425498711822342171409563238990480758715767585083895681051951730358521317668111147058632558614663022708919753334697373626792437375183775254510413849513996735814909345318675553595832048162643586961926877668180579487418438036042559336874913886596369361400887964089997539145067290025257362364595430987163810811429478398958567273716000940158368125380464821002838381760276706648697595975998080067952727773261782808204863503827347594596812807523870283154636730535697110185421031943278233891944550986025923811407701383878428550423782584341109523204680256869937550888158107400991904042130498836035100944536639765534325791229743907250620666523796680773493520799245872527466025004089434227182841085108452374633824569687686289811022887994815218830991203889280343199563362814899926140910024242069614413473385790189956920061592830175252897905994005639409713559761766683510831208799055472025541059090879760728077926153919999347537697408409351842461325082889376193211205981229972451519932079517326429353259081417742813549091810548902048112145659639402244052912149827115984043043564053622225216784799644408981199992919892454479204492433830408097941872629209588964584813386547240924809169521113420533592982145408263732559849424995278996360967019040431439013553481959203873737574063390433087122793778381119169650555319015627704375651829163515131584329535741364032035756181289110536289314488658787917546931176570906973670031063388690925406880255233594268455419569120037949922354094069411247515377871680468931364817407541657467235996878780130027478920640375219225360207625062410015545430369573476647835428834105744537773117199417763183767848537384943724460899040845837993212643259454414986282415289349260936112691569521341377614262216943738781884838849104345016384815185543234427671216466439920414841645082897139291288193105893664284795704117382773521332051872408363661207028462907973034171551573827000046491550517909025552733042299151503588899288929738539501700883060823093083476662991832753347536124268167673058582839693850890264566379570269844436932326000963272217380293680361069861836650166630624214883865901309284077544795508948063422037593556781435004393261797807122436215557703778940181822945801512324901668035999003114774777316238790140703338173009326850326516513598580479060525320767110384597409236008565391663733667460935989776578431604579380249809835597089011877075909651426595129937349390556033929096042117046911583779607192928900952388011919806209774511116381014334742789929345234993707077773608436298483678950571548115300080230548217478321374911027491511375631918230643839910440949178615953894354413388349701511259836521600882148635229530593261719005682449157005669281811329287168863967213515803511313436876077488767174464989340087187300510214627953516797795290414483429802265458152983865819744036265084903717559337662149381435148154919667264772516632812055530337404878511503528075196660998075084631355037975746809210029499891196510792299282830471438618505964357149863404948581633889832929267828292681476503545078000391413460581587870554614691908536249643032175554091680569486620110787412098507041184361866928117266349990796251682497425801359035776988688466257661543037563401949322389148889162444664588259090340832143184911631867877133880249108708162264382376279708278907343478832598564287720736694775801040936492524067452839350108908376969847958993057663822597787312769703502793459868445403986997755844505309880705430892307864480266976731729652153601667635948596698995948153001557592503337761810656103439526162470776432102634664227441304803140877586191839334448592582124380814043002683094708514937246366318030650462422082076618053439032264019838587426993303293072347724274228428298962256287026863270508144314466590925189206061826867446207929980883664652729052576055608624034290716646854307348572871340367257984253750162455634436228202559422170701101312706326332529160033879477743150487295743586293422992462070618858294254692645095971482000161913819128013111218137493055640780435882643575358487621963835988792460884936292316956597384228299403240140984962594876506828505318530912761993992330313101528710624168924460554954762776590182262672170159899153146458977593662567461977049391212287659411982777922196543394698777038436861297606355203985464613331030793693926122279954583753955697310801651971568326907782845284499755056032938590330794715719728737149223528081402880888399922878507937453052100726518563590662651482881723138014548997504523515154487701022555167107923771708414924060999559019710075070189951678098611054021091848209722808992020433255377713668088375631278856300634241007568792039865560769806710438057028464801962042401576022731819213502892480272086753812097227460961847448885245737925487631663900843871001344437760765172155031455425515048408320483382044552633249980051707755537845755627338896348435675812871139420369562075413905632629576793339379929601433696855880423856495720874839763156154265767349670731022722985754995031236565375629606944811085870870776643279108682113666725335072585931613136571046372095938528955392902728181013934808031464014003796957659752595075811785584854526723915287444834334368829459016820868920981326763172319403361994744599428362238319260232008430010115734964915647267398118288097191441830509963042013824226560000304086212209185833026634769835485297045737584522455980675728266496606749242742440611244342560702875668343204240851663117002995176888175361842823703361496696296947742029633556390288312508722515009241784190299004814593559452208240794607486208081431694748578474559205671358148216014785186636407391932202503086778124044730288628486551703777629296788234855905447943669505575544987348833718634698727962870297080676615167561764140630548621470402289894164771844853047508976006550177170938181463606878010007222863187068636894825702758489285159612073819993063634932119938932401350381877764511736192393489421040481405745963210994000816400994663129030493514316620101753297352223969666430237845827114889789579103386668364954277278242040360913384894280728539814446426359189208640382892093674845283355390579143830445272207478565849769628610853113756343495832253745491361741784919315764989465922306064484925820813475933579973336954618285099702304462805786171233547536617845207425783124060678824061093663409871533808189075320886462783133946996375868304014853440411933282845585232868044249922952780045527683624358880117636788105852107992804798859597351553034272757890580416705490028091966802292702758790937592268058015025370756839804287222396788561469709937464338132584369928899934385176908498825667463203534995484603969420787260769414818307929726557133082773142115514045678829662761128045680558547218078660122288548480812630448552278095300751748677171955829804737801441978366241905525937352800272597352176495945980092728784218750563208555493221228528811949124302122618291292524293599716217440263074826310763401462380222988706918448095803906791529397242877505673478600266427901879007604647801666293389300624585968991117626447414113563106035574613216469478290477782482660012536652679427413755095819476615935126930130587152807044525145967710412183583084193621388772532030205356878637333058797811070872208030139129925730189632734309530388009659141443465004805465053506644632214237999940710436433182346590245111874598379127215540632762620297079297547815768215239235103750001702375722238242301524749619958563841186320185283560437053495432365056078015259649407335233542906916597024093040986848708000736068510064577677579507851888283444068009361279858633578356513393987851870801637389899896485008395612101402261987303047328687794827136375770485855827469747870597739462653435328270018891706263903913000822380017137874013868541216248740387922414430320333663228170159898470062225578725339020700718004050868022706853870955041387049542023653437434060051471757749262838845227849074671167706795290680907944493142769231774798496639731846409514416240721509283380326710279524323817914450913417546233512229178567161519586784036347897611278940517945349063930224346715736237691718942400028532275440384006175548027936513503134320920566584278053930934757533236708140040730534814939571294036372886290254815896623169579979292549579150269130139964025569128336177719832481343414365336317070251546314262856650567983257125010736018648661227307056158632446433325026443078247040577652308443046727805036095464081146512331750797849039315729507721808749140511633285414425413629883239504084698949121373339327796391525134629900946227290080503622168230083933608410013163653341657707674585373157619010431463555510833674784814273226477312329514266032904829940962951483872218372423046547050633309168840958383788989664342537031127771820596411304582228618789851870748679847207646631524291569345916700600890961853317857766548389089420416687004931886637810959080759864124248292291820749183740959180796453497127202866355943098980159345992592551818106275515161219552924370089964309181302956463330545094313572293535439650247537256481810516993157426821114618865299736354346500545827591453393021500353408540444841015102934201256649911966756472257787404067214719358147416883972016026524123341950755115467373456664530004987290252250069980847509005500192257682355209340036439810017090850813108652559812886025236326418854423771419331186774527720983843562355640333616665348077587869083006754286228090707948106471562753789873182141609810198261880058949136731374526262128333960137037985828312767096857821682124760609445484848448668535943291978209378471956291413562617886371407670156562464599654828458469893461639678010242592549102781708153709756381045546453635480942520223685541158397418299501734679548109618306599353385056390494499673826141165729280863299568622993871699039239320451777057345923006272214138584763920338226329296033245612056904729002975280396882094633212144987440322727349618658289822135843543513126406261604514093392440097627720244836963559540631597438200507159316409948431539529698507405472644107715593407055775559412757202663500527445393229845754302342869610117586447801110321831653390945007851710965785096904680500309636263694803065833270000637674457960008079276775503468242737425399727814480324212000886614011252870774903886603414746274626507298347598636574694443051282105109797149666278509079066845579879183564253904867822913366318203918131454861052908611998846440722216776338847161758861724893272786857207059488906144023589954081002892330928758545557198119678475520942243643450706122895840756875749867054895957329809712894385252090449413350666214090354928145251619396289566716733917837851352864522044200158864450916324278609868219879027595670072547818567979992561050956963274319327301140992538466597176540741600047616638174338211129733563149476080195266625862536138935062588035452539969966266910017746348895202494345310727383784199203603665392810460754639712819700363228997350565249764700955152530681653648762323381442325477340556628711522733570002505019303192139052051322302716620350970817628748023889423388724435373743778029645644207632701915483274166222694529820964171564668477785568711112668023614789950976729592452326105183444676877312448160441010662557397726888856799897473370386072814237362369493560361987582453532266079205382739532122178512294861763576217479828570830984810231674916785924621260901496053537095665553308030331753913725734806462383334618622628752130334292127453582681505034312539661936450914969965188962874523942779180855734457206579963413458590353656857688964205772775981396645966399786207671929621916661748861790667962713750097275749793062747651411876723663419153767922226128872746859081915597036292053301675889123244361532859632376640740335517915639137474799412913660693855583994382368903062275712675825680882697737328021601403093235729828533413174016343349299661470305500020630347876425619457141246634931818128435777275943332180769485920790601674416268303013633820942390416079369696369111076404885737057325805253798961565496453000458269739185948160766693223226803361918354542513486557946014279153771832186070812735534862723193477318838116151665786843060116185027354621309635064652307272713196709124066685270899267031331425313175900611385363870676378416595450409822545645561314077554399319463413662176175007657979203010834669328837369534944547576820888355535855242069416755045915226704400892814842665724224355067181031697101587200285272304964008244806696966101868504197127192029194075532756039692062469682469258806945887139049383973181104857535936307137217932068903031829319392674965661664819506759358600754648478224849342582701376831000873025518902089290886721345041741722404209540905099229522452356061415905866149929264498481887158190423583457833805157748530961387231595840516317006235407536178648834859059252110441619600867458548212655424436554155624485721422823131450598403773531093594240717918723247382716766424126269732185058139955775119527453748254550997554952661056676829745088531836243175755890290141446514118027484801293052729889266960320916540901588398335573460323913657488066962158775205177799867644388367596092223408643384354098208244335778589252298716867915633761572340695148741977295257724801997553124144667564854918504695157482701809267367987246492721135278330512492322056735706479388951835406696094366599271106989172740553372622872462944270291537765198106058645425819528163532600580024908135489728945911712078960319430048490811617009673754861062559908844075882915911901984729709290965958158128477667890842673678692577326570225626848569000715227212601409800671316892188283278342388258850042499089753134698884652547210986878987350223335662798912725561628452961065886928344474118181217128691502605773808958419949725134932555581950980577817530863081729164546333211526763507411163199837503051848190771610448318104214843006657753531959407896781948072104245272198167966728046133405111745378609111817467558878186572938809269711711208596357843726614645535667430371678125233240141755686907932744246821891131943472613482989032812520510450906975333197312800352863580524425602850278770933034445325367702369925942974515589104267289576660025535311656027398503122291149480593523139295867925964936288618866279330808963109299168063311578042056285792015317649031409347932941827698052918572909637964923008796129296310059843831050141168640874141047747159358630148418469272676740095785075778649384019664308485054933663178726464963505865427007375706000759514322495973674071615760897572251786015900680805577523297725660105981123364491821328776574625170995032003778131420793689909406493509095883006550901026658249042706020123185167772239120042813233341205255372948235448510098432324900544473704530626601963326439708076734338997857874295869369459553996172845482702874769917867878326534376994219917791992694387501858082009134445337099611513429425330667614023484969764703219682548568628846107623816338711805162106544350429270661132241640702764500990922224581650162073694186098928760205947405114892661433829360565244819320313133943858875386457095060670847770281461363035223702907140848027481765568003876374099026801221617641095353405835137528002877280539618282525761927294866868056001763454429949284900673074415303942103896295294057921797944502757549690159400355620187588981770450042635625254673769245827099867215150146431147224562239957177105004070374145667046004924980225458195723214039429921888798132201224023621224925989188359466194450656947029426491352154760017473896918863469857446249833275044644886078644668317495677908742358534482001843646163451957355153714214010288132408878412212631454183199497060322027020358748943123440440836198375706955075243108757856233825165221131474211215335827046560625404105898151496101635598534904242125225882718814641787913383832428506092348794267356618454448006949991257394541167824665909636412592391112544161006993636324913831484674439520448215763383627796910076414233213009896772063608772733339433464259287949613621031026993456122125584768326998363818695033227459918394651339891452836772133606469173945154653410509645507588122318964382338699058918881811920515068031076555321153869056010386058747239229003150687222318118359564027606865404902053310725327652934410061893525935025828471590683727720587607209618328681355181461360043970322568015425401365513388287281916317511300992817420022041804630993184022294724897877810944200859622138464315130852690647873019977260940670423928179504427716902781990444481439522061346668727152252113344194042624131976365610552638618764996764931174293988880276640364938890461925417900086415754877405420968591432690371713819819324468879138812007244677008706827546635619214326363464287452226082464540136414834058906088203218623759001366713303770751443718035802909932695388550981082624188964783756405068945787536782618764404346231110788569061028665622346137312973834570097758118562793344872438561058349085898868889126018927418463635326668478376224700325127541359669806989538372945651397478607783389391706853199606585511309239590692474020796176590579454987655530770951686530410093479794586384179916853329149163114297600903591820022387862132325778608307353119000162282954082197521071246783971801117198318947229906730305287450293842052125827909571832689301609187854548688600165106625645753065051814449235680319959330254522276232884592698423037226616903292805432581829031980182656269362873576141612213830017032196415076118151603068663726363471846211210264061871234311607320789103316167099638638744545567463395188904699585365278492840473468879217402739526177043578334390701593306357722223873218135032642895869900053257709098524984360731900501708047241402066118081324683907751645781169417028790392231375943642197631210074295014917087410786899249227637094966982107643963853541775014912095381061023654449072420868762671884237978199242120776223421688578253753868424528472300108469538011914667498206842336440166346148759245846115695246981312101712191460584779284253750189612556908155991195178888174410100191786025143379639034324232224392573094265419762672878644170657493025891253669700034446208057372443421251770769594905972700831017572809778294352449743093230827747666097113386314890700050643929430630686007079303681573110003245171724481747860939941144829694230747539431216521709563368842348457845203291828168571873377297401772091858146069731144352216473026931214260408468805431110795299156924094491656190998354335541480779126821607320396265623479862160657877442628656932935704957708754474735261874826534785255653073694207973683794003493828827964219023155624344385026824989979018699973001303736301868173745605523016707950899429084093479227026070937295585845831019344031409166438434643511637787067053356745989351313162265318650820985328591647338391384398568462833724245017992372814069848693591298352611902117813671128464027789100713028766414329601619203505801380909576846965427994178363206184692806536613660703378741539957751314979044878039195630889738237726186376808227977874785842699940487845969781117663262481653151421710548858548831632807606278908411767946404592182141383898668437674161638080618186780299890571828054448119825787786569604021661435307558724695721914150682820806494596753530384801416834571350267584920525203243982070594863327586241627079744781393575148008714321387976179214147610502433366183095725629416427622414635893660706670889979256883775634137487059858812205174980473279370425477642175012800091130669903867365073814015660784344046788949397930398665523810571665711048855138080409772993254255564451957949969836074466699121380425170813043795679370171519608989161512800257215212305521570664677874527646160524114217079917733119717420939828306160671759985530640067507419960030854196579245592561834436950639270914009468764776963518590904463268018667761029716109664747297919928410548205959323195627893900289654881112360226062116187716245786585535431776558115440392035518241015127172204352211175625925980966405200441697386523630236362944332825208839281257368334004904880701815145836028442509949604650451170580182141547658862229411590505063731774050156964295375761337991310078481074533235922846829478712100668869432180205235782127426555162384891730336261512376173338512150088993936382845606938015294732512110727459956540473844199148717827439679271155433459322789374285870566232270122695331999850475779300114080009903681766865047449159770972064015756505076070224930257089493812022828102777810330801889437300677011842781367084087474397739645985138563920562252688085040805304965658142862928625631128936597183273484681089375780281998987004102194165039692989073463180247167549449814010089038409434407711267042624381327237247171097586924052265750585655157948399608103258143813906682165888560801572179938825859983558018176146103241377941223041225219345864447227011064467660470096573707754364023760095217926294349791968462582816483020178274973807253628899674467043564372246859501097573556714744253440653624586719077538059157761521310699219165380950765297170054139463851945276089685366018157604465142108455221133672029260151123242729897627499787340510749493483714461573888883064863589213042274561456326905066232666609650874488096959145212860308117817147028860819195398326983798804910905243312238105078418772179378908840249018118127787133727597631238703962667568975580520173813135229396120909555570931067979333149191671825149959751227381315376544304615266726886838194181449159420306331930543418346809539208751669756206756928426617671178119283200906451166495723020706421743831250584258872079206634528146205672579170585551912436266282192082061910095968969997891853367784919613781329467884166047637230706937593826715423956761755534663110098220781479667311404488654308283288729858673545029348912899564161178246568350275217422618054280046667902702123966709917834160367296033100497841189077996517554611054239827008246924435681031647704637705391775724224522519009866323658662649564589779562562593739707347728383559471495533939394643253786261430532558997146439863665010496772977367412199629887094155249781927152436921833672499496364365112961756672599916438042346653178900421996165348182254095795522395581266146195330272445167386735321928031115489995808892256422228637112521219959723378762701347899417458238105516939584212840727980143058261848424141680084725374967795958270519630226202990388220743956680156210459680170136385449409594459938886336456071437366381510309688246072205145544140891078683068319204872093086285084693317332889990873119287662111760120054865060692320011333700221456886630923815210444298316277280363734005857153635215034629171112947818830217626207481046078500274107649229529533079700793132076484474363533643876783197855205456530357643590136920865751102875110782943632934090944577790513399148838403940628567326297121171216283063287294389380454967283402403985287594733985647008115057536476116460534350480751395373255205209851305425385563377789943071511712331692055424422421921131982138392310132955490472724770341290874461833540794917240539774977166807367179898533382810217382137511288494299035913942985369485614953450282050278535821903541991488912900898141232423257466524054368944917181080475764526808573447225228029841392174349488275269278183066010657690482647846639191899076125460302829313998317719187147547493470231234904523352883656514326604979627444359816001405092444438701788141906880076365289215518656623088090749566148336806323095295571036146895506076021568949004887999842819133463371954065055548542329236434326593054484230033024549721433209836604301013055482876612197947252928951028622313555201397033423777665705923014013216869032546345924326587491699192978180024842649963717081108289910418402914247052998438844366169484258421528703903131177512304419007885159162263062008133050782909082589399757174070171087574327547811556177877819007976631610828447425144111898529610829464413944522184242026735264599559109204967757501216025402859551048884171030418588455656930093534327946315614785870859530393767874977925683186830585243392866008611574485778555109173764026235074746808325376253931014441648739745462180777831538622703982767314736812968735918139426654209881503695335592059859251410485465408003911277376751192253171154067377024060261058538044006594139491259340923141882365078157960100442446574467949550235090823100646361715977097003536023606333503444989888223777488683581245858629992423549915633801991637116047142889726865030448639870223867822216194347227362711877076271369957691165178449084667152783702754780040514290722661458456623615355044326380206464526363376355274774789786391262154586692851309931688368450894470252086424224319309256621036717962069316696649354388015976475190920114202034885683105909723857107837594731542183044811722810162788788742655182050578496720093833312955645846110629884995353402528702446080411308325101005127460564155604863623440405835687649733217846352087983713472160395933540291549920146115109203785690387990784029802479092206256348567901973023415758097410605561643191362114756313032090007929488097576417309375517187530154032444762439083560118548227169055103768560831668970764645684922722543475180302906984384628665885763355942561402298795834563697484664820258930754926286879122478513398536556800038921066323193731022439229474833725212381440606690479591885420336877924808347611293241759298656630857221513200149598989039005191676132871695916920127058127999586311360650226866395664701830725620112873552066529733437428507087163654363632067032533766935560719660690541633632210824236562229430108907155832154968054403783853152529458957713987046020976627352074438896903057608998647322679522993883487501437582141620164562964270667288558784073881202965992120200542037184830957557253439217308781040382850196457389359194197668389783834050115405775793912440137713870870048455531324659573790913363333112660314816645245366831072005421965323253977722271223467365563422124338988497009482282434216434898473267707562675410289706912942946737717228368471442769586920763342581836947917304823590675278414633259454189981926962348753247976823062131477456211316086584946610671874712287454390378555309297971225305660953769292024568939747252706894613866784265062330362935225099841013824919963729354471779144734250112742761255884010029328522456807370912817290889107825367364122263832324335737607098431798755740746748538424070760000385962966919265782711747712640876364164583114773044290399612489047259310988497823088755286349936230674295608683604416315139158999636354133720549926726198356312722878926643054991138619451456965491304590521680003448908244068273205233761242897376786477527245246764899027823371245455855029349405698062748711713926770107463205386484782783317311547786698520957535078677190680779566257579436611650627050423818104224880055003034264648123086192870320465247642359454364423870836377820934751919057863091255835294537689169308381525296958149067179388603908999963844807027222696269060844389883231180470996476894930241669535105434109051019977019890390519417520587219345326937851219391107444555757452250350127060227788384261572826314905960431146584171474732136213675475432451655799662920153898196556973877110398017637587075169231359718185114124799210586539674450879514103438706463806537307516027332915685452489645672248665812872639499281824499772884479013211035777414154749780332201838317627758668557485758218539381274849186360600962614434391707988350526707084395993585036285566813059724495103043547479703004301748610535086528545399242945290899492653900266778443658502428146505168322033852882448626937112408831984111168573366451570770235899547313838260668891318130413974077621848082029151474348469345317938528603900775827502306987930907768150978723099988716192991626255176955139758341480213169092053830994240681602927985407967015230036288484567178787187475954650689891143936679853928027574867572972578927541139288794549782839972865892119674946513739648881758938650693338593147574206015607924589734837323701375438198302512485942747705159217274869845534694932568871338604678034688271910638886937855716056478786692505197134270150862643243131116721847689496448372978207633232587353077397295638873052621923831473802374351909397139277558365332611061119019608356563516155637683292992127265050939818749878785085711387911378049879835220793690821330746780679733739978749741016394303077724723343579331093594569179155475231590699381098767991567589616017996798020337152658089734584877939123591386690643554500475112916751123302709552288420752047406135360258354009978944008887530958434552169120059409704316929654817557084412329545829738216424969692301166962021209144324909521075823085323202974415121831730595439336582006318699108949493629308711544157798333131815483826775812319033086728871391923894679090177777045387429810722884478142947677482471268026255560262035385341658576415220357102681052105894065738371760150913422846242246758601469691475924792894825381993113168016590422099718917089301547445637276855977383559910295117829987265816127898393388541634949864035417239224626424692864041820514816729125367100511295115962861821734512032497246689809188870361224537112113603002728141332120653893732938981881726810310158154132829206855413863045682537483755622991332693760971061071761070920604713621406932964454603419470564076543933251489140555816525535443163999849311976083175548644229373749358712905024587517210248600466345973949444704857252380797893966955861297379829573226095790854810437228640640035462936127527913446065026200560625985807194343222919151984330892652072796121041247477794378783559143119466857176958055234622107783868951417320208632002271580133860216115271833373535010313719627579756274558237345616120755241432908186350173426558362932531124112170502060670121314896849245975056635288979989363827009170307302415328963016779136155708816465337830521216588862808673385109471877827376108228650693752706963721801306304326247992191878412107074334558130882387956914081499557620292708803727464225029025894441609045532046123409297676059207402301828110623365939991265067453141224103648439488620598913974852973441307397033774092781067260835329098160643707217146953762890307756824228605108534225175032019100754137867477220216065014247672046199981940466897287397349217452549481370614386783473200771857104691485589821491778696753602508151937038931431023354924731083091475310697470315850831683530927814589404180463336434839341274312628577037367846461073530558187627664382103460639250656427266215020545143780273097683474335331300859033390558127840418119412546713006880997086477840692498214759191255377798257436149253196031360557785339603504773708823553244450997896209523974224088506014803318617416269591781559201240250605370226667911906994047532754687266600799725679761846555119859799649217302866415915941532107594878016557884643918771739671941322615155390456050902555656038291337097040131109891969358905969415944659854931587371953955942883927257365908541469822357638108859653298400149481858150094660094789892485579192095525011358376743418247119524596458143040482559352180662832054207593064044830661540823653455430993912299477367511108004578246178651614940327168083756735719846029228613680222340285649500512876741572601447479060037066077674489878264346378149376001159396516704359408548124811299817131477957964393420651872713506933216807395559776356877872411742576427685035361786570634923886849106676806625206798218586695560003513300129043702931658002652661218871589746396012374278086694560637176505165730033603212212521512390713001898305392403022911480675387150043039793681577015512623603840683192363754788590343383716408643028710937943849951138734833352771934542688551940988917350883329217830372387670010238894201396517700464027563009736414785644099664925374454075813753102265879725995786801681960329175794037285491161907232871749945411075414683971361464123321553628290828248993351137452527101947279514263641847242516198088946853332706091272040317461543259874732977632470983664084604506603976442897263829631982255850821566432320335820240552756240069057369791066146470322936518989023250939315527984728180283969772050753691906254735095221615818685616801056049778585327267079401222531178351296640777603269359704496516895561301346319856117060604975779358600785250623826768772102435743515793308917263912148905115850684209390125025927064238212650919001305044010422620371333526458979326690248278377583830023077893603010591659321879451215377148422799883602307074174564395212388483612437475850666217432004630781582286722213543008250941953488393991502565365458578678409045720827058753783276115697121980637476425144072228391245765107436099782801828095992514393821799630670778259297284801871052453827334489244751490985404135912039377899421366110643192012193049238803361706903998396300177580007135664748136612099043434078743718804038506299417521588400479165555280034881598426877930852996489961285969862327330092012790300428438068799599728534858140407228466905878551047268672248297244707884949013999037016568184235146074542173471672981115001352021855193488397283330341157252190092029832145915275862851939032972774709147728580490124749221789082505755169361175400498559036584736317014489512801840829749333613157758148512019951142735002207858220030381624194345303966619194748514724243538283771361722415408982029778236175301207129418679634619024184028937757039803668133653670976646737175957495349978962722380632094601613037755516800779078787041104226074476775612804926342425524803905073897571507865385768787421095668247913058993541775724469045814992485097457652521887315368132608795110562936686440911563315235664179508756262882691741686524640408786656661892418614785156351268085702700438906937761765817752074293359680369554771601717383650042209409396308764511158685308884422145173479924905537412246486646351710209267368431549640486490227860939054398948496509721449925319639714339541104319578072308839245420096712859658037573657566291502217984960550989069709127415396372588853544111821894541389353229736029855068055437293890778783864358383221693889580305006232444807879776979448498438093770844878990815133574001902439392430078573006775413904773897515944606313558285616118147820967001010504988633589418687408786484489085314970012327170022104361504533843023659951559429064607746447982605507255333152557351398816502009603772780133272830814192046906550248798808177920014714833943205031068576853196881245329788528408956770066007651089814425683633766011249282848372691168982189866246736436758313114856080933629849517242977365996124040193353930051961272257531993739766170238189941610731713546902183765343478450385522481609910474903649919283750949613957512918726540136275484415852718808917168898155428507352680379353973031575961375625881807979629782344443695092123690260966711016244592847886292057883383737419838004930305064368534465418565658437108092368359503982806320436052444011717406202146350253622093582812977324924669514612479335191718015067653807396817830206376618248998547474156854144842983176312739162534475179036063092483015002880358674732928563331184382124553109804924673072215266271145047759587171484462837245617882384968803952194300156713545574217014026452691365492548295395301232995411325743615152963281388627503206671051461285401550540538310446389060572470693487745307882237724820232238536667913271634212832178723500927685460969606379216789999894474695614849158622682361894922997443660806081789888004337280387244187588579581747519458800476216302732389991762907842731166655921404356119727834835663670415398741401213610543738655864949646307620775605492170524319459932147412799713535866248922504179751601785436532219021720200732475904632221928204058194911494679268644348064339763676107730441309698039187943169856510994115690480752241578610516906574048624217647010859292214291844074812428858553596607907820924855014994936824565714564830395191136349376034202097895389248499673496696799000016040784901959388001767430635037589437546743955447204405966095748320438748995401349428519478167275242660655278420304418341342246220156743784753772662610803592004137284483314831752207960289126012494468611380822626787490845521022393263816253088024064248182878978492993627029515965855237148455758330918639257377064504254415473002283267452097060622081404062723554723077251982710660531231765713571772402643103248400069491464144824174087005373400800670805564915470515938667003700616028909992415846689849058568396037463632901438520455569940951724880016670243528242920386032832896310582026635324279628128791575409283485136728330650612428615212050499063855092365317431375138692583400006565454093277468286541628388257137225669481669493343403713192824824154622479383439003341848186145758755022083185712777222855856079155096312217799664723280796844194689081989454954616296147309403753123256767147441525359820575135592861729463155396904211642702054992218003273718766066052281128658609488710431445439136499325364021401390992601412680951695099561110676467971703641698415816821782150769058868818642263937466573684459639453053795259233565959003858753797592759486561016408154340574948881245814174423794693191637427035197519961655662349832062817723484550097377356164475142520117041029042594690060973704211946563632269156324458970944874745906744072675352531197436503490831862926521076286814344344151377489482090185783190459861466893254261707539015290104833898033480141918738699519051871821186147797270049841316652162188829330920068073774674998873394921395228816107621284775428819697818706821902988278141775787744868288828990921362503808686254349752636528709217973033606015218408785159315945226907628030801996243666952127137278494065572058859215391607492070987952243126043370336258800674966692419916916817456536793013319155042364488286649239839633614856588520521499329375873897059091569946163758717631250025865882453263973971651695045079239971872382542298709507882693065047381695320172772353725955809819474012758729185747763625872697224296912008473010492221761332581292382849658038006737767464551492040893507092207435315838335255031669567076179401603628378290283358687981360910635955195496211738187255478334559462369155051596589097253067882914447178482879856146290510893870941554442359992710785717014462727281759904718324544241463992722450688571316563263283776723387202477139455102520136425994011875832173481245086726317898949785076129369703130146058119673277961919957166995637444791180262403245346037647910561078694120842173132369243170896819869073113713003218257075541480603173297695818356174183281273392763477143690323890530908929474645178460909959962973363017017637532446137037576846511040763254406879917637718011574760644589672706565191333294774032264470111812768304371834836327075338173619768514805130378241628680358084895813029397052020624309831672917883126230173340959459201184718936344534079898371681741648586564975283737370293845242048921609150830765510206981777618648401637146518438706506280296529798795606000615660173644192261459856607246095945048472565037400931568105459469845266094747840661377133424412667617615456131477791605668632799091625425415433077062261070404195483182528784953667474160013535950774550054284835709140346006923719270214712091318630400719585163603968599697687096662851939504678314739459929383842998693893372970768254881783853659897461995749289671274670079400638560808286085892036014813803125764922228897739979898841652655781646977274668597135964244723093199223696717199499627222415905535867263802047049357750448265049593491452270796886035397073006619135203521276460266034465487569497052393752859935926070884081122898774726103693989064806580203351140934113604619169289201178410745005533642041572904005502239188204905708784023974795991305226494911798643370360391127237993105497838526273011713272374256270266912763828313525697962553910573224207319336366727695849233947309797293890750148018486516625910231676901890806460570300170428383139199350760200209296708727909235881629292497624115556144678941593475600175786508813087013261472012877989488617157857962298091133683702902403895460453458018501440200870285630089329020117799621712857936532448585963751681897255013016907449581275767300973253471525496064914391846778492303740280972843987379516345146257207033060492083395026450554672172340332301453132680433219143395083209709197801752442031004110035858038645768477935462239562973472559402488591271007169144162755229779129814409709482355061894541623503334225047105085626679362149238428125225532599560025051430699546463948803127705135801864323051457038158982214974768726076363634615681901739200711818812378913243722246578927766765394329067453024468415030647744965058574317865379099249670076779674338470422546095932405522653437898950834263585253884294917314671518634370112160651143563287036306197850897091759623755394222634516768702387892180532659620553342750117617402583140063266859537889474150835299584513026699186146691195048150350227089442138864703109467151325134302394980769545902697176470166106148926674805308499750176245789545075233911261644706077173930263428051552570709000045395173112378918804327092382430349375284385854032097994759235369717044360945017502664177527925913052164394187401373860512288718082844316555179554258202264572002467253526881661346681431295924968020782637579248741140268926414451267304027248130402778900246948644485198119766370553805399166551226689171767327764731753885774207166269343438533667553647134316921885564920447837452905200639670296741491191080484846050378983704311136460190566418022046139614817405368927888846445246266578936660874580845054230805204944907283508797242331571492694350537273316912410551950327799551845600575926632303976542348930111663209005422534687919071158868615741572033817182519154313259990974563403160264586230155630325478502668695606331331546028951175974613788666902462605658139581167261636510243707756799003585012094837177733842079080260670536049242694565885094877046233837552440499022507557836879742997702162206592261617072639689106433843113106668688987548286352080480459024646768155258667196235078851927424063993369344126443694473392919803183752707118884380193904962005528670076633896618237415563030245391732925703860114654007822680374529768920107875445972503264397155868851780038575316482754357045518151701528108821502339812940735015478419570936151978733264903468392544691928162725662157358517391093439544408187390372297378367325931308146217653583150487642423387275926346191535137096748882499396154380991214343421947332099222114104870111336789437741675337414719669199347473828305067823265173682101718492610691875018628469660610853882540350781443616201844620044633282515511827829469509398323317867777833836605444267142321983928723979065648910075636164352331034152908184492055559508783909863634602058968967912028475884127662453292797440521662229468654892407421710969701745341259532012214969640321276235228546228453648762964507141008786248521611752157872019949894105695033557108389948827377557813462745972602270573522842506818442398636859522055523711148292263873094190672687842104973766019214717947557493117301782493110292102951054853639254850282487640271064302656372748119282198209458689519454639385465053554831558431388550043515575633097981845202669157997163508710074249026030836734422541462321793457438938778352196097121667202385141558350345972394038856500617311638225403814663430500050081382762115451888228413655046958848174539309093735757184713155669780981730710304695499547789976687785661023401922233114765503795343290266094075019714651382884555451202884192581722617534519566681773229319699054858063514615365696588154349161167504577152539631050381395070000941010462215608470354473936599509339005432958749281937776941202617692617258130426939227870089055984551029152824775054785008952114528540285663866672945860089113876469491918929383269140481765461718918730930860204438664650512491535450583469146273982667859547964112926677557316702886702405114325016361738073610768150199427031447676306146526116305179794606098723029511550931709426180707515295585289981504536310620479254017273169465808846133568200787479529848983267133527315670430158454677361583210332443033440792897585125642646764904862815949919975203143323176042385859579747469485219032609096010240267699920626271756246853724641025356340431927302085643821521231215163367240762239468013110545896595183848136588058081278255072944337038302678117140457250642910136380768186154633412595030819649177527126867322362855741077212272009861460096858559069740715092085018846871221977192416827708388075355855453937930843828833514980490704262751479164357216621424311088808213426986005220415583326853056091464663415548957408644552954364095296530814247610744394831667532821417507163617681350171056443245484702835155677136173614350238520869947023959512361135657507089943288805898490256094398803539187113053620807826039076318253144202087877956555500424564563412966166270944897635185496666512602122576951142795134217898612627445368361309163467020982989718845635301208853850474144999559929852933617982217215640246591118353868077155269762846132669178165493176539672076219801210960234012895010315992622268750121174796869471280980850063247496924440415926989547898600672487961515138398403018831049719508423028516080411648059228590541854658847192032437274262098562797748006788774463645666104087087897307222781867457834798743988193333821386584377958085134807926757843797038619325470382709429061030686166585518759221749220921397105921940439043504444059499969337143858389723207231425946386813346492353998875379127045452641895931027107196956044855747880278520356413324428110197472341265782258331214281680127961977757158947009775984984362234929075558610834020292156814678517482576068123936412720177042056636680897888198175324831077489906282384178860303875264489630584780428095208208549330281441551984419438148411744539565399914793932145677128138256792120767063047565580111532894401002384329760477881009529733725221368704866572157158301968487385696975087863674632390780063747798978946568997386597252073335802924935215586589520012079247305956569538730343313892573733230006345770088304674038847296540139352268421912305371460255252741640586455377254397327327565437027394553070089161272987822786099071204093653854699629115000525241391358876362020108087848192984304692539278053468508315301462637642283512049893651640810494764868237853916259858497850961099134416122451775737418183023647498267804856661266974141414193963580646468874092144761239165303494268832806332256832576329842120682153802394532794261017099074093613617398818716028497197381121882865538517587201935018367113647230983519878314306562030234756321205665059385976319112251959181122419059527585066485752982390347583110508625621969584123886287104325688306599959697415761410068242611354823449165944523157225094538154639813435408138174533456822363848150441422882396544135878104741732084539447116393352316467605307186934457169865651944344508945020763029416747708376449864351737759885691604874846864747741324661021275241678608518905993021805177532710576453278860621796180608983021494601171316484846875114659036218304890858096179656095983455999193730560459152038172326366645059249378489306014527382868675811341274640289412770831945119608819797714944658634643570640565488588580322619078186572439124976653026979215248935820942044404330879683451126447253903080585941283091361557945102053949467351161020774783105553246998221666671511339578545933804621331706349412410713946169504342204433758215270356124830711104207684380601927334885622431083043628956922274496275292932624979354279343555369684613648524523573417279569492930299416838698216638838281630247061010581910579286847968499024820588949023960322461705129176850807052157735089183879505114693220731987300629482933725428598233456407424242226683740871488519610119484100616364476453598522847121279476852517450017000771670007003677590813220145105324812472131732425224907746123937597852447154543205597460984304260074441811574894383350327274370276676517927401637163839951138717876473644078555200350337544700559603876297672507657286594016664412409867692100026024796740853022582584488303772077616211120419126087833499677723687878733673382336811420509956554564432990076947191103267749325261391382752754044566522456945974840681578132597524633197264696992618667849432509842882721965277349472413767207523243726973789242045756998114964371806265935570363019554197745967019029532756729215425196633842865972502366373000889995005812117133157466884849684252799088691669485086312956562867439628307469964295104244897678725480215487192967807905647207047423009182562333003429346511638732448945697120967506043664909158951202887860050677341768186103717626964874246890989112115307596467463464542025398177784283445369430235083354661989769805044259471473668743495888807913846986457568465404462577054657689544291289130433414251680059398522649689416043992685392636126982791746098232383004800302886128228777444590301350140559462322429347967835121405767006177159628484410383723417398652667766979455097960137882524023973277591677827406869734585046514637687239717224732027578289618026964889871854220857702220095213867812038237240591395374181694391788186117085654166513477521623963671035706963055858497853679558906317976331273491783677382879189755175119902126939043057820176383278339181786463708069218370198484600508527224723343091381627426324172521534562837403294900177536676343628102198089696618091658128273324002004534120628614056329432794956847162435152951526695946129317900981546874007264316629212300046403593670051274371354461134743570480794430924978663090359170548998771853054979520302048860670902749876417478066681819102603664967952589450444204527266586088061855703773164470958165153273517681528686953160597100928277724446743089600849881829995416399649391789625857722970264386476393169196325190030985077661369645875317145600819582485477347237890719676864599168589067648726895237219675430591637422648323133257552061966100897366161709048966444352815778046763836944342888167355820929126501036608524374391077895125511290357480121645442447663972455524198173818947625189411059519279930050904385524526707752239002628108317512220141251290020172733084123499248481862898574243326723979797096719078574291763056432798041956454114428994000653643956174317515921398838235062891273445288760794143712085159000867165301404502971248972865291125492925443845090989816196719986048703356382801025902421020553311028194338558302597747446149699966710467844385474796270982946983329877995260669939645164935559898437501647527733736964828097360096179309544045568378625026446462552472062084584907236618845718033220495444576188957826738889677389084279399138777894947005932368130814256562758962571559856871693927921636701023737014777283202535465367082983020203923060534991342618954099034209117399276339075570407120893204605475098427253021840176349064840344769395312175161310721571907560356749858299122236124433018764065388528154030008570099263415724247013026979945229282816232912312176143233955536424628353452844487231967725638628484456174852895531862732133001189873881500706658481562714401623885727964073128674584599903302785567823879856079847429265444826560322156570638542461286456239924138727095464961635316621878754302003836236202812181374152614292406723067776104044228604860877395451577833288619284446272145031705012068252118159967151071000260455338227971535654996713975047704924496247296684296347929597720693979075631409287259573628177234205821721127735952605439927265109817043878379188012863859348462396142368421769333302828888949796115315480909845190499667335601690504242924750256581399873431801407046623387572594731170273140693359276800296289140410882489423118695845121947683726075238455392211762357232912766681801114647872258213370557830874041886399280898569449556032088122517948336859215335265941322939024545680755673166777699052330505549333276618178294329196273450655868421032645155246928575353084387034225710462927520266719334680608054968226586973388735573629031972969370551471407682395722662948246300384191027538337701268326529397822241080830394596087398189599228683925467522255331714837096386282789923966235262877686399112852473793164652513898581095489813419618597416783834153339068157851628154720152765425357102726824774360641922155317584556706125696531673962426957053977523273970956487183772586525878340752863473437505398982988447986747411499146953369050789053030467024423018055673178631535084942389317551891441994815195800634994681691504199469060292818371535016512030639554122189144535798404513518888429645117219677276081096800377967971779072086264211708942035116611526831141700781301420010539540352338122911221673009063663966650017889288415167160876998312701112388354071296934605770269809368900459803312230389050183425537831300884998815205394198883970305167601558671341336723154759644182989386855644893210037838416369708041180525204281476395236768594022932938679337317521475197821659039969295940338164530394076507319889206080589985293590707400212721621187996797394232539117978970095998218187143992823144000267111072386367237935482255115020402167595071216971781725160610282090740179049424081895459373646802485528327009759465283205084596376528595871835635301607575602160845754252705771250324887475321947361019246796080398821938317956293439985361168912570224874094910761163792758150148314131656889025385137386762423673609412065384268687871556654298248591825714156776029275939056171032913725966618790660323944767039070738060643792122719831901638259775548753101699599593799758688788817000387322813577443692957551509524796256025422181440780706369228964549076886707402782818265018360273556670318047614257749233586095896153156584778470582882893498007739941613950820991538754912540583713835607350110158866435972896289286956982371140571661321696934390919789617276872709384218228485093656095335159667392442926844615496881066288916607583168216971937941821248066526831228204241729447585209768436533106510478227118294462802977525279757881510471508571047050072987054969574580164058742746905403005078264070984587816267483328725036213238025134864715664361495747561787129995244371619740829339037436249868930870910777747012192360138610199862139167267241731553137422220878567428904240243089968288712914175264648843700236293790433905048994624594552285353033294837362713170341728222269741461890521635650718536447196046775105695215531767305420694939523621769858300635251268819309806984039154286493972479449605466099895427952190649648364597833477855001384528005873307574448502143576452331854528343293095504734623844744491242268102176060785486265061605303804712887485960621573899876608285461321361645637983008223838808088108644005285580018420926503106156035557537499665585663222642623838554564662287039607798583746530217108026146977828419196477523258224385008192639371003255043942439386929470544095697760001769255002180163412038826134952599430292053201837765419980632871361528009098949439504897954606321119956081240541674516778919676011255972054073233492736375918697846498558992453033394100153889860183525102711777013221524270031642545473076770575311119933906632208139962291475574152416540697058934044701810819230360784344152930944175068766334513053577506723505218860233894854179578528810339200001873505112777216595347935654563991605743645160925592936343629277739810068632086706197207830244004217516470328672209206695052719220167231700830189651699022111151270821141022138369458952939690057901272588578729309623410955190391312083210831996503305250026711827876636324523484874751470216009562925999485326282508734458355115043701894092890999289779331008985417193789104092868721992572601637819764991425445770199997369323979298715722482282174466464788187261244051914800397014413544245849229646428629630761843918317650633787552908804395953909713313343762274476138238323088072946026408086862685559301262322530736194777648316073139252839082723206578335846076305964036758145247642887550109156660627590879983808617328182230413751519086848483748272867251508746553711247507400545106482011189480063823856989124141244229486359569824754217812177286487336843432659731147053765188456237433273915495881852297995642298044892648538670757163238716313207816373101932364667710422443140094815723407107422020239901539695993999202732327946533599376305323662296908690139340812531250452278940300147833515743131391036715140426465181726742641649611731402998034338654811166379096857316005046607150674224758568493566382706415190193978705030386013863538030927029374519435617077336262307814628783267137030808396649170733919320483083736583394074437835902721164894774205601247539842257492547094075961866513042229172519244833473962610891871997253525377013913015245358920966820795849076919062363098314273823408604880821252257286140298009742963732345237794011907706852016810093453208276961016472045088560156578389389825373470002243122270108193933296993632752663892934884828025793321736809847951847464405712006036535962530125101703248197323669391257036852505225930657666921727819807651168582085034025059577957075404947728605008712264228308990424074825021090808297846608729628927160049915410222782531088928230161705962554590517452547919796216661881238416722602599437175332100182246166096992140434476754416250791512179971969407564397676426576061933829057111308390146729776795961123725223017863138855286196760627974010078920693451962873414642027742962072966583076276580982509892466690742373913259911355579489165441112438184296989282989223055744865817802068857359737745625065024361159012827135104750009391655967856138052467919111199239128737599548821567270959388487037257676117358010496403184903743589597669182493485077657257474262430638505153505372957811169143056798359674390401716457851403342704455415887838594835200031815657495376289538702872795160348013408216439355238875703744108756027580412909662759208221678505960336574598266976593331310214468561558613114983646786470730883941996202461867611738328541332002243388433844519043867819196822572116057156820631536441241538875805691739936676278754002297853958117963234616501910438662569976309583934132589065951258555372615661962401076604076551791846596452954196248461653656474198354757869961598010633651817446693623154095883136499351634761139425721268014286691614870153233055066337979207884144148328429657598383249454251622689772974266268203639168458196530355180891965198160979838131899302534334354645068553257937792332690409433443227882950813343984036976342644209397599330653762935408175270313393715704667506991191259086319592930171516808157219737505768279793936559258162705037709636293453047031041928009290061384408394208740012012524756334958518531390290847333117468840453557173427014297540525773629930387492851735071004439053141246009130111175691539937141372435512861330150454103222510964403437367328375633928343955170044916526612116275444169505551367556814892372572073164674055472317912855374218137535369432507238057196790829152228654219229437670817450831792502489441735263859008773046073503998854442267230621508880590870075628905715702625271125314009339320946785707708382515014505018782064012480976854060205068690414078113230696702355343043810342532711858229961274291906930075041615147020296267061898959024701303026185791218430677974115608062169286637193913985498381833451425145049114010925355125199056703337624891742824704874179088133316929831273261999463275960608580741974173117689233657009021439262176062201348292038060378900929506869266452657018538935587323244329505358754149436682565163172284699153653284398663901728530390914600940982142755794336666841961378146942506727247086993621311115641233093693120389359580443044265265231572222737210332072400098196542675384944095249378357529002793601256217031927209142510813894971672561001276910593765442912697673567613830231339009133005211243653626931016917623102388909519352236534842614510665607437792680352599512206897931258614982590219814056815710160899547157741325172386602801732773187843630397782916633685186394080554806507418659217325137985590685525496648607581429662928359848558249256946910765665754644198371565469673007815142469364796219222006479809749007841305369642688286801716397445064919875835240670459780567731663660427870902381218964739126543390819604891643498882849024716883132828345463085674223893471544793515748814866304977783027444581713030119421863924668808170358582338091785035649941053939420028471798016076155082267372495390565085405089079873827352357818879925066821352367495828290845350622605152035929456827157193318648011895795281538396533081042290938462079962792226619943011890511473007313865018142969185808072152672438381084657727695967780396332583095042735157701982358904753201545111871004951263407156955658992903820554889696621281174099474249509530907989213885979414494666814021047746733502966065247149047719576331426625128342536283696903379865125709250159990102089774714884533041577245600978722899705501551386763412119791783235066126533895023551489296738934113468480278620985359137996619799598464104959095145204718618776226342793204114821749217859745511441786140227935912586755839144785601572189903718442875752829265807123948787290399447924893149719568896202212979526912641894267970887573561871462157010784583953133088910789815416594956801518273135084276335580329263493781028298084437432161247366420972314836258276106391547615022851909379499256612434090930325724307317235713267798629430480169656509667867463993917539317334702181999804713351861126461559023349599298410146326847268628803528302801982842216620248430376571073698768978690971914814659641559378319970096352806995484238730381572303988337794494118888588849799847431450627389379812769614767168888914332494393379535050760580653677079082376469240223965374837272332749163684335286946561596616571913994402672652739692469701061190273352947646439368656808099621968689382398626617825711495475448118027951113988582526194085455538140256462055489767504611850613779465222679729052377627249160827247014594549621352220270413376693618697166771030262027549734824443028929647692132297518882513115661167916250250639773554937006981800916780996005747923047433244493271235506732661175166463598515217224278943009296786200106575924677782102698704524984447308577713492596602644719273199356318836234662256125539956578394165648164593484966615105030287762891512851867771493368967652352310489581453723796127289833498506537203372849947507420002727911958573962398979322151054172511945703404649317484306872443755974034574706414376229430710868400039744032951002315604507584628123842563010889425613927885217818095651819949933361146864909723465939410423686932073918352593779264612970694447809409277441192951297253860975887349103630100462183688397224263941923869420433718486634954636630763528582704517599879144203680733718933537271082496858087188778240338879762768253961897016176351151118037933449494233725918017821343628691109618214540377650557393555429638963436263904955370415832066604368910025664511483705810078992705142321727771769999268986491498787765735909799282424785771540235571933784979831712454956599466762763625166356556182299984004668194610417636700732907488696528081705564423490098384572937881330898673463567360956765254782949851267567666838186987890323254907079692041566694050666742862153676589438362782034893844543513407666545103496594928341742436928015978772114747511129066610844581661132114478100161879273495971614876067620519334361885951194768582503127969931727904376454498903608218232023762102178356419035389080779854575746900591584814115318084362060696902582436340676351555405089032609678753593172640775067854575518162921494497290121321634491198383667718664573311111857782868506583206822030975302524536594791847437041060267030675279842210903378020433873080117763257500775898415367254686334458557959565995744876125387747837336516320207784496451144282091371660774414996975259859307554318005057206641157318123013185671090723905935893128835539333941446337795997183518818543038230553382267941329124272094973199213505020475667074586872542926997626026561836176616582194460051372746463715037450240734302519165233877696769611689673723087320223420020123594427002582308680616798370505806735189246722515369314520724465944283293453860173099613882214113125432178771997225624308686150296431547279124605394471860056960906170687580015068887528644516123470077915076991058483812452736118640674043334583725677499173921376885419863989641838116854312812366510992300168869543769351176786565812659444619662203855339031405721044840768088950725711720015472672298487177313008994038290575432620530652974649884448668415759277593114944802574291162961483463142105818590253873487106239657614119474199691525686430433080440162487961313758310162138166832009474292107987580322348733438597472228576374109919916436150964352483936017947253998532267879730987927453703495414219988245692165598824202208897035479329953663662312443526877231820232553192964092943501798111630550515613286251190224841976533539962653368451131120893608942883027145699097206305015210493565857186849538996423748524425091795267323683393895941905338498646559018913749543518138581078463259930534810266375246166191240125379213984374240870433360519238565360731856133496625835959312571499799990830426631003166752055645841638466553398748497623047066672414201768552623371957937865883572778154098512192462368981638121423948264200005371840537225031178804508216296573108167862086673604240041999436051879394114130487871741319916169407388284843539523818378644244023821734329655716149773577785997159861068966222066383154913886196386001009535215181129927607721048668037143527509058976325969375727041025640311011866658679485178264340602424512430682516389123098012810567636667157146417666170410806226085315109863183259100007543534390675029324618289732766362775419958241619837665313795116564953742904845684630067173890413610571547016378495225125937358670952670062945874949440791710241636816578910604811013931839488463814554827814898562725282582666060676778064065720160262385399241721310249339059186316285615122226732493393079617163641553844175534083617807450147674591762215123553960780536470095859737942224186002146276338384626287505080944737441443452920416944458890498213945959504131499106515442059186814953133837013588139475407111373488511358654945370610203324228165050835827841016622476379304542491609162875158945940327784848730998981725536941469110088634406112385129684359835069616781848418464913183024561442788041500424385700658548589205702899692956416841574007844326568023624021040077673044364676062459447984921594155414406574221112851086795988081885712530875161965838727232123586389765990117096925837403344698726082942541312254961247427761204093736671110190688932669159803715344432273333995369517763021297579880100394166093175707999514455537892826274439322811609830259137113798645336461733123548203935511738038327499874927251045451966226769134363602336394152007668707195712795076782962170684928474949937509691017632391097007962516409763312608824219938060137327883539731903322206380505615932061691807914915672597841886067324744517058603503069497412878568283708909016830048844967392897206124588753272658486418831734314620358025837927059578518521719725704603853421486684526493457641584420775976979682513673422122577446919128808840853207339293135045343092530335963057932879478000008013326371379960304757755986935676491393643327704885381600260879670177262807642327733605838164230237553432887286011640202793148877837847080743362022376006935223579998076590563697062306020830836750101152294045292686092327130711042976608106335189104304373200872657255705895902952756467817007301586524151565429852882331460627297840818877945917773774687315961221129461072858926150099009382703176419979342233689236613346612204575663758405982699366907405115979654963855516434198404628924769491891447836784350109946207289024979052407473291976877008764508698972415622111560655162450932315186780590379359844763328389245507422173356269415715832055732581866308198337189444869184398626983134311105809877737640533514391475103335947858943368661234664001605455241945454800087547824973140969759922628331343615246688655737370433334374935653372569499780385731827257007800150863380298799223562097494209787563658360974319166492431358581364892104842170664683863472963261408201564091038624066000102917377340085505810840435397928418683617226594879355857977233900523989333838444495782757165090851915814385659796017155470915095478304829666521242563648923493740839361254687677746564780089712293463089477311407277182159548514016722013423774033216869283227150422280706579172304808309862040665259804978802357894905146801359940776319526887515032607615702999943278365454033248516950516167422615344603712446055463098744271115376283091600856520084792621908290804258023372574307265130507773275103858521501350544548079360447134176754698753516747198474091193380279371945975541937251613155752084309566004251510900776784517052705048455488128963400249004907458641850730965249942295650713684889458048257702399703644944815915847315375832749175824021221598570574114957482227121525003249666679854937166190807715209623948639334525344377832221822632207670547021591394466917331350570240892399075446700100520631631616345709059036486669399568868286904438728610958921894071416955821634960508481377633147268646296364910833697564493922665237810298821016509241206254738957965896406051676203485849508668334161095256253220989075386142998053160223430430993944907849188239307160750016270888920885121139028508660176564739903125151637543761787329064749081070864090978469604935425558410017360081223567177680523483288918131244335225573857591336427623476806942337087213787772998924991813618131934769237969834921359750855271710550940023428192117861390122866695021840243736933883888034773360632521642993266720525906994905377409977789728694194545852593598669025343613756968405597046261840052729033738372074168761857812908902013306787331844037121001050052607882522693536679269831661590846663848187701965610567387917901626914686359644075364583386051438616279464717950679451884906333197763070886155697582011756429370738992691591328931481656989047471338693580549277948811530626230996978058459747908763757671657573647806147059703377390089699040003771015790898005406419836368878548827401667825609987508100658240312201792293353773270680531596436294337599920527928212599343098588715647710766146590542698770202680221364655605927241023144756251317680704785206237910158186748569120074081303727406951469694034763315303665799705163638505741798319997667224481380264403068627072173603735802783433188468360169464948253321986901129088665916254608728286410978254589258402152544331081065700187432709498843207999974823540953851959687782188141708434852240688165900617256965095102913116217435744100440824108875183566308487322436969755246033710451201112760046347064017954980072688964974803276222121188109480820459599584550322956207347543879327607084071775587633387211946802690646486686912607587832741245324617891824985219156478871843863239477055370150443225611012538551332402345197114814349820814350500303419769239402993128282388213957079987377237645615792833558564336704352238361423125158785682330621022141777225007503068214738766555489453006815249643018054597203656021266901655516413022408449764329670887599798347243491817142583129119221289790741486495618448352555766799498521309316621004411191076654393498816069303812935092207585696399703551224368010400392954866203140136177442362844869601721903214087215474467111784336668089963017296414069690051184021166283122685368314806668146705701097479455358378233869947255618684071896477802254110050907422196721006603748974679976724112323248922351594077958564940758636906975860169949466484426288629795304372741235315602451293208793327861982128013357636279870738546519182341871883338259855173847325933959664015964549279126865413723361409562850140138607982149940319287550444133424831928578924880998044383008932663040682637957968876528958638518421502102153652838755892088190545313385897613936965814819364229574572502498386606728674365742991177165412749569205981433262345338929963637632210834542322250078741608421382863316481151117246441623542018828938752522077090992895531167455807384898489581177812885591963441728584111346271681957268640918348824029042980456683352906285002207784586368837495815081357471132764350330555101682757404289596933463211834765415858773353689101426216234044040815424168635507852045377244805777668101099792107376258525595728779428966038188832083227644092716087894572343967978934601402458083580617383188043058425898768105996436602873284654845791950074195239550965118657309416396425450204991975871225852856359604122937197547821971479480139635535191976037838957594782166267433132440344167689537454398054995985057650254746899830296036444499649645005537280779994891877895487206411787100571146589551469638853969503944950576151832943360940457405457305475395548296770500389820599023983614426991558094654378172337526972593934882486721289909815633744116040692435074155861859548333418696986450398502227880181676232378897684217602802149544045449934055985457963013325732744205581511230017548187049192717020503021541600129915782377642667754502817174303364571329609434178625391473305024705449277301996310949141409829872892240366584256799149919576291058726629026372258970320362369450833598249609647538726722334353740248599135686680457754352018937117421804565391345361118633632916525458755641913189146352912624266504388518988524561217949294713493104987684475066443945205781233280087385497843479102105742205572160879247519502323645356239779471773121133185597420005984516375089677395399098500542233520439036673335154254026700098970013181884357412484608559497881249305549249919970850749123658956127207606484070089730526055532999278154624526626525413545182044561019844999360974805832444408305110844964873633712232050867898097006013807348064627882288496075593354746646920003678159950518321041103013840337047053885763933320308468354832758368469350110027201390059060582747900462981905675987133606334968720099842032112875006578088697324744404511644040809184014782974936795022734138886709246523159327879166886334705902963075088828426496428112714820964887284589174585502857997926043010388096416016771270157203619593301960306221276805046701080636908729183511252987705829321967724375431763990570381605337250161856183124709014059972879109896041114129221420337028934064295766942275719670050433054536381887472163776884266554537019324779038512012115903981282932966725776441685860583731617076255151382460681988820731641369486447182305734874848982064256764686615226698080691057552284628071617644694770767317715863005084724198318383384266213221139451115969525723717267613783480719281312462891386489288733335208372177837031799258187304842250481876113421103229135398152133021417961141444548949023347148203542254880709307988163900397679128623063270838424798012592343277856376064983469570506699294644503543949557112146364875856041596604673921448805948142355431745673393373356099795618659516347762634171698445567637604629293273462185083336889151478141044785721937300693920478090503725077903237502755119357363285121490978589702800893937177571266599751055055758477780698743462335921477067428336702864388024970951140226680658274761920151692548743286763731912861463605008671579735471737313616998442621125864667823432407414151451172936824413717391665721216247903283994827283184551851495059600722724836739890324564371941784354707580638524855708524911844556004978764324522227855333690615293448948855224955151848268437458336112916610965059398775737115414336182421969100305935346157491072340523150916931899454797399346212049835318773553326301474748333049242898395154997590746905447900658956802055986215604650779640033527673113398167339029934338702847923988676395870309922254423322762267342692073921281686737357371122354902371347187634615073098767012633077296193720121173505199640235450605568646672895400753283803381584503274636235435698654104013366414919891800246866634512699046955104532494756208248467104022703336760933123150833332632138775930785490526494838205614258006464917211576310018559431790971490460745615471564582540958443341091923933456690755306617962207872889475770859380865187237361081313402336689987866878919117086422249274642967524198833742549291343010970674729008918610595027574245406453556240381552405696577967723865570528230351842108617011889185785254074170689838044036200608290021699252300432872554933690444534278674583610959906765810398990432647129658802960372321698197476729630597711044094835390344440638512923472532524906863263431243061479049961606418922568657088901256212821313087282018255032387150283446950120461800957966214828509176731291149413648614015474927681947785364865106922352598090106290105824672981595697362885456182828586702181507915132359998961614542791146652652404373768500058883214726238571771314099605409092344287293549063740691753166799700943578691943612339505061926758708883513763220629543405759394444870476342230610942050730257585551655076200978747728625655725660231133489016568021172882703498400746260981513082442731063298060147577323735609967464126793149197050658112978900441806443644286620584861821319177282096103323352982930755794989880357922175351786129447312505900643923702611046519467227213227622414473764978385908153978182228083166099012239510817647169475777325680018811533182334371153859425365995533638581252151515428915545868774401314720771811103004347413760246160782221799904671795606162374155725590656818640940175804975691874810157222005806862419748899736321154360461081882452130781420034604805755453105093051253154531184179504801931563895321583741724664770083597338883176282702300358831860372252921551474851659091049301641195486306477668476277644404028241762805883480435484870958813854556279706729366671675216517343264420479775806930400166772544730717218230459633556135282419473826069371554632753224373341858568131498074214774557722120457318228137981212134279490949488061291474058439256112721794688122137626878249684477100478479361530114345058434713483087461215020113932376654149385435786398011488660365347975212254098709195645837428394279728971065563211813856071245269649858779482590598500740519595722388083425258468321024867160855283722990212600836036470085481204152008008846036124344053623963439253089892082780832888182908132656644455722875832100997910621402046230606189546785780985639563320355773712795706451239172574078900949153728250613038895628752351670180658857022775572204865287995383808277842298077291967114103776898696246176766298946854883382198613105369583354513356518939359070800314896657528233561235193533890240443997823337194300243411561975984794116697224475548350238018424547466780182607435508977459951879930901055750040456920974379841425924199870573250909326839869795513587123801584128309055701607226142380400818082210439907929830662748586589489430392238872176445763457125892777776186765706674036097620271426411049460451249403351080518327268869555196269596258187891785367490815017016526240612938923107180049080638906329261695866710670485050637845305585405261272210784128628797664702397390026245612449105853296896533296224408309990402929857363667948353689076523730449850320423526102620506735881190492584088349576544004377690606648867465550070030346614140356196160838171400320810465599501131288108499421618071435052679944220341108547660744926401280052991520383845417268688718161134593478104038873068544752684311363404398547951210680285569936377036291100065533499004484241808374516520212945268864234983643720054572232699411942148337162004912620572051907478602938108943094766259634303025317430980696241909884981898438591223836546588832013809433543482258867903908352848005132844458639887619923354695762446116228932540388626182463469839961869137275644276093758796080605906581172464888749502390421290716719738362085690859985550930501051848415253221873764337865532348073550138280010163165999196747845535067349133061880319125793859543820680599422853981533139489577945326091022378465559697690296115637773927034632683539552604152691276372777531131941074548296322274356920602759297141851507782971396373989927161757516383764364063675965828928284800567574953247580432796380999827554007815089762358187117154200286229436858283879193863395279389917725534462672328411842093304058525142016868321985939007034292348854036939222908442725100969195851701780567922340937635208345674564141564203405793045600242186968599399489771916748464019513580164606885759931762942346982627405063732983940751413544671131277296571872943127027437262389369605032278218947178833117387090985939643962147139877343607695873811097457593105169465716034257241031207044990374095150041261438968819195573396659576088680976019870292301379983665212667665160549743916325383038237176024123994830554343706144059261111748704817346098149538566736729044904522012976285234314542696603232509461994738046868391907790709428530217988839871868342256734224595953956367394305395789562522423296852920360062478851382245331115989789901922213576985080361301970203685226783089449822397182452900909129098910943932365883474683432228161045062134961745489875899118928641441390863873822571904286426447427692344423327057774654267756542911269091454521963062025458577272267374447820241232459539664765366576121765013987283872985085230918214107286898165060039770957017819352617253325068903404685369385607233224217954978470875426796308368966529577763094681970082738032107519892176306244240164415716701628727482183755990439704500600000032220340090049100587156518334117059505284469386338220955706770836037267620911116906669490722015509483190844779240764463376675953527245425367652310937439534867357766680372839720899695852077164422447019710657899329337782251808546330736566055269454834475850137742154590278817618940688209140032948426394831480565983818952365391570736061947595821947677057046570963654273209012734525682037234614772444457343244683051557736533043963971878721301461083100102660276668117552365023878203510075344272874380039116342314876271998562284887325119369750094743841460062236798556010688328457031785455128807690655526031811773873764979176851570165951117732673045021877285632272375389440964166847185883628649392587563407730379152812198410306502431398824484064546117620525524640234611862717899646157523780402831467044696586373862145398218296773499667486565927644228400504264963452558181584285743487624441544606569133130365151667750027495377987769162211921500747287103020190590004321427757966753102737821875088778482921758107494177493604129425266524301272726321705299479069303540638431620625444641364725414870593873869845330424444103287214666550054408690878246231803290665281877206001337521813528786364506067858962866357325726999952783000616886423120649535185652989785464016306714128755325504700348325009036912744895947556555035134623230004178327927225020765224794911496723508603961658633811532344494152406854839205850934592244936076055391267281284845566819590523687738847032556521833570276081287091062998343180673849648346797023966231941202190153234669227550913120794301250312047021758494010494467571980410314222434249952841934056432703533176114358958963384980790808537081873719169590327947524527297456916334455558657704728300286513002989532884180272661196561216286504588424057225026696142542570674057496895032515594954726320110174964056370588242314260761120323446397072364390622516739267941312389400139020579636080914936668028893149867504182825169297704629612334899616772770236824485385356588558430095764999632059489659000337911425553803956223916106860235032622011499509931550381080005306138920170555362641575800122200952206492970393750689988547319595203017493339475091912333660876913111422433400017059490152437812927763362488539751532089729713404912132678965795249603419133702120851874061570138772991933472893127246428975641428680991421696362703078943096014517587084669035399268580620459853776153514467393198580564391595303609714727695802828966744306257475627389186316053421842105722189894948036991033757135845050008078870533018366665969207101283271233740413911588296183004445215636818678421507791724941930788654731004018728166232628719580135701388156910737257525239686985654856046576211368576208349860040533851342150332792004308851967396739620791951029563546496209263896234878403767499661867954029511755305098803933523524928562603319114443085331137549981939162006973059685928632243278663644077988650739490502614652920635620772984932918894627226907848366403945628640779125054822248926826919067614801329565833966512051789235260148395582059399907317667598560024092797934243483712199089219859905234682473279425618539001584849407815108716010652377638913308691107829059999718078584857346556359634271992362600805206768862414018896629291142225840197414853444219897622636735239273039387330315750951336597961068733618881218103190629901386450993342138203466507344655361422973958406931112519040598441512839144900166363239300968566083535145965150863240103591045998619882453034343142264416244977888052330338039591723887647006944327081574865177458192117509039331256559458677856341321419213068857774527602244650620651180358248786795424701904987186280812199703193371561457587707932774015406100707264225730733373105645548457885375378381151253668745072867447777241643320579901458805011124946957681530460666786547171565058514857644513105895867738471972518906268417893436199897078058042521479520603298665491616466040238697977013673616093267769269266665080195827018131229097267898389870956959866489027448478194744884429422235572853406112572848952534352042021063248934465558259123852789036079269154941532206271298829791452248619887154249975031284385292907404755626099686187782242076520961309505613487591304275334147950268182514577820833988222480846239640404660183748640386105897697958567077172703105917677884453902042916246216015863435681644334043693182366184741018751118807974701902767439058923271260211165459934717294716177952208928393274043626127609243526308258621797273247348783532177263413706425567231087693349910005158488980628261391647518284480937719496624625083383742162006935259800783599825100109149667268603562986049933618012718494054696104258554533418256808060803013633316491602853446926916532415632597763117002820989272145434766645365368135597214095376561015658610468097544909947344649532604511669651123956042104652106063169415559137943794151347033964422975066084212919899614516546656704037143943769586803879583803547273222711699114128877355830972671854272086304600665958157976670764014750898733110315285112032931686255808923066424072158822312426136961845016278770399846254359730579479126298117093950411419624811435225039777063252188046074557878418856813533460875391999562243423178096977379667883349005255324618083435924794721759766480887806669728813376665618546243168627841206592456487670242914766701706841672719587645560686746487552244708386514772218361761714651951927764062790210506032519390142372026950371273304636011542398033945275912242654941118257486348634506769192997279106380298981308445794132333759018149207491436766269525323066996683890110031426324146419249183402372422661779625581889232924971586906575763561914489174707238154710402171049433740608187370675389857444339417390921962932211201063183770417196550306004068735075909196861867207725126667966743249742163024112880029747743652692300189642019368512737022517274390394847940443015519965706283594584589145914599432107560854678283427677978369069565227182506929281553460748859203503605090086072870641864926034486341464648654778612088239456026969873383235044627204709120668531535246281444815503250697894478251885396446687711289618594406885555897258513800049882701536975021160505930674184124347636034274147743785605134208282415202824539100772880890285641748897350282478338503876401142664873273262045674967633972155214076408859308605312660931543229029159502630337365767834207410351210661873096828850443398090363984830058273885962428855648919945825951941747512596733378664524972749910796942326570591542829424188556161496048461721510023715579780984185549310092862373295765339599151165097790828977135353140692867681344464593632639912047061394929329285066394511524769611516373394810341105311448132947606481623867878577942863070100857433515656607645307617447323794959153075895825401345120545156987025324357993074841324800531738631128926404011936161879658460236467714337353562864228202785059876274596483916013939497180804486144486261028740185519101861330675832679322753316426865031684631492658586515865718751251734171781398316020576050745116451432978936799844607686916103961987098088436547566395203342913180294514852589390071633229761462786526084675374299895364662331634135916075423144679881888585286403948327941186761198159826796672155249349306349110773507315683446618456392288993805122433082916500896236147592838811981205896334101510177823780504494808906918381698194949913232725850990921126927469472482140689232885342507370787757330934637124061708922680322665577107816031923034767016226186269902586599689499088399323371751418845017560284492629434056718816355808923451153935527804028031247558124242504543380698972673097013939493405990793581947679784395945105522964879629287734755896250290629054996251965594685206328797609006038227831037322277171287437408316982439236951681245958161942068855239840754306531840360683047674733570857457400400867642649497441833010791055988320580795441578506911620290627810818688023095766670254040652479280662091317597340772179453821213234113240164044837130987068955485292646126967074702862518589464085156708421827521371891238536905793215688969429576993702353218313668897699186848524635237016505289893472327067691681955187446509922710895056007756364676654472180199751891220585636234612794831541566637264098138207474273039044589294909588929603113172162086999739745179760706535787539886252749833709722014956516462141711774794243839039457846809227084142809660281299407906543304347215639373145070072459795478940413067404398751631825023522298906772478335565140126296045894128704362438254179030740034594987641038875117339823900314444861454215516122855695475028319441779778249098255792644818558539373835814313683547242222442255149864442844726502997776794737202315517405724546269201908827766744062328839517812435408950318623878214101583269480134597624963117738972930955787686620698486834031185450899723692520833871258687351863729134549680928477898665709022882844413387241978926026918750937035934017522533374955146335679747388866990861171526563753711995517044494537717922093724331319022292261368033036825376849414418667464190229930570625420408442316469506875201633116098308440843449143428354802607920810485900253525429119342428062387069896106132903587429068772262127657690138553964127510111197957330289126365923517306366916326026538350035438944678334776008816751745558717246821208218634572189653968328639672678409733030269708078997342401443231298201932046112539769766947637352271013135106321638642602608901358256768183834764637266176841825773969357844879093133450103928227276432072796980583550195961743560604305916658023194907718070594434237416535910775877295889832314118465334692309814582657769842700737780279135874135339101757020052657923618068482916564312754519015252978776011551698250403948726413814090733742126680783503161947271460369432803646429056507304653269235802223339764853389940313564286146473624721905285015281153093041004705989208169005589349210202705101045067576386705917185661484944508780363670104608327455518243006564336640428942084726058976800800412282911434439993132679836055663387456814615879350603141243746740378208854009217849205610074573629125017350677199748360281850227600387870693607160513168103348031724946779508513656884284129172680765487371160358614491413866937433428464764650692772968602674750462510671821849194360643446863781302192633421753927133380725787853991905447180601027771175842436810173744612485225905096223180095615322615902528670672192269702207928519807009182508788342726971500637817974597969367257205487800443169011159315845930225579168695453516442792477146601625078026755712926000634023652512738491053515199288158316229276054993285799554179398827523168458312718383769665259019661189715674660538195935223128213161956531349593485124371434556911474387301911622620423094470906013789939717119633909580879634698683738408892748705149855903518295069025403285133140096565552504141899839081443750725182277708449687148746985877976514826395328050941175845741123880146465104338102493940860586065809585529069650315428410876499487477647291253110846741306479929908074060789980490603335278553856535397319338118953126230729431618403853540759309900676641519266636299343140282979594463172787592840623469582786206201069809641890431442029893519632929747785004223266465607168753888846600669593128562702626882878568313387306409383878300054202594485039858540145096792647329059589722485192425261942913370577919601304719639796441874106657463711080251566435063091897907345047505395898197332094985267572332846589166085302644390571660785238241308295598973428033370014278882500377525238183093422300976366566853543513165745203499569783592511501397932775565243581593929992716536655962303146199834941388106402788747062807290254415303428578726040103151297205183901220559011958413930517199711349700535441058921701075807995886065587018000775147021857180984327486110192225525909481412742138674975272939128089287423276168032060610703907582305813698397971686548012384287963280530907473244642251060873103626345230411253589640430391412931690904944080150034318082246262422257362228876080983681740937104627007661741501097330602688513429949650597506502109040677504786403499104581938203415310368408093359937475950222992115090757798885517085970569472571456472638389993608996153209315373342782613509219920443184584779949727458033696735538381115977785236616354667092493320733941550199557102047610330668220818161446789276590574136710705483431772041719213856965261889414430547025594004696704530010897398126965592885748138140734090596461446796562587294118131009395347014873895996905509082762729118927562295351930398627098666145149194229503875584846835993044705418190537382391972067297060823452007395033730927654749604754962129581945486912156945176059634681653887946840422818047330339540929388057141356007220064928770238799357374815117731417702252464140803406826327214152029676757372180312755002349020124294681943708803755531725402470799833458903906846631396464353178744989010592169864163792409616082260072583543598070489139802962052719768217124365838236749953804530779875396986497042978216378381797229188594911851984766567512787408207277104524706271059508453845173389895906464121721249909647986217126517775636104101876235702957485056569694907097275447679556501115769348136040727899358522852133611441455972933405780209403707719179183157936791057238235860567673919467973897042122242094209065161706672425636583627400374934204180995858977800679581270260899074299127177722262033245029623757759933404635561381701608592144881174042859345682534628430172470633575509423727200540237016649178753118642745953760343713013596517666797761527719442455513551637065935829138874300371305393766063727730011008846140868579153361471404437701199458854604200918904947374319059048702903995323190410573242421338240912535149527373240656583542844175182521713450467115216517804049218363990713272515364283700398248535846334001465421716119241500190027811816027753164732634440622798918223238304126563286799047132932647492580168892919707446948059389465834587778316241985343903069504303426552191197230236218579822310054526730210211767247475783279291031514107823549018317119568842336111870180636408760710060819162411752442228662681682696270578078285182331295383868902727640116490942818682256618173856460799815526409523274022693951947555641796267077107543612158057843976514962900370816617841522975691213663805092260563415597272151947545103273493421344160846754590020422108948181221800145827758595667116308124363053669442565234450321597224107285786948709050352322780061669909211407432220040804265339234862442724865788409462060361704301796433796653033970074814421765855376508232781056453117652097041694493254348749735770555174051526036190445728777643827153930747546062079213407119558167144679012833708155773454983515142264863905343890901990533188326352480223546595310558708088982487207204015015972390989468856952215409353946794085142101210514727782093765130972379584962994854589503322958100211041002576723261523239602072140348626722925244400051715084494655983670048761515617584180650851410305830781555686109054580675994648260262130542280717632626272413489419560801679146973904510690281779110311684529955840301067636753789257273468126622308287826317615695072600592115116482600142746436093674311066063473364461417394851319636543886878760382859019442940457144089368918001167295197642350195543214918422872382741555386078109944680735533455769326521339927776921009567686874995601280709417721497965053815183650726474820414156656925911130533037185881612784151356879460828273905586622930275669968191627107890037905512121661355620216302126560417955673444646441583640539124545866734018845238704814331646113854595339984399949621645542868950048412527517020513953458310453056962318895522653176231912447801911951189326421737050867992708035547438061178310085651789562297139108743147406893278068554682061226487461964488326617101143992810599374100818724949816119182112177313200119516693966860841132633590200061558148268029145893576216326063706352514818440565198779821923832197695860847614212127076150654121678825998921487199795629070246957683263688018683144492028418499173476792554357549079408637358071936810566726981113321368590162739530285311235871763377646637732541689723597916993384243275735750048456671321252587357436362892417570717350201759233120262511640248213575071400296956676320962665987954496982689172799098769853344698305326109727913896254139504817067134251114633591868217190210102890150653908582393695577296050998006570676874784793922439172670921381500600528210866859559982666134288558104869705431442097828517430119592926434434994722138718969315145160349820306158944604591257047784621187838294628950059110644076698163986332572476954997418600745060251847934178160064635600975220035984417796032639673614408219711858173348737073687553390212374112470279959274514300717750666237007394319881129731378191527598301797163188606437445185178888808049480478439776552911238806470219916666826862266665887797205029415506337722935872385635541828326342222368024122993167404722692977296992534484371229399052633576244474973165715248677787017280326217543551047507339573136626325754867143264781192541636915260682656140918090435052389718008936285773170455474361686154904203423383393813520597018413486780061439029071920025630501896025384820567645242979671482363185212004074178988226228125419305990060844730725890468408253168316149220672301696086643640152357355403315862675713608121195603083326330791203568429202737515956935510191692431851821601467956294858503167756943167819843613049160387078490276085682848020823406885206125851756009949806977361800959590564259021085134926658105345924433334274565891725218423971668452014372400365119570293118330696902721405516244756643340164981108315680109738708658866372240719921976022230252318202258831413162777154199453644891992574776928067918894804078834780040176053722300633128677082051057520980660445210203821456931854521460121894254005135950988999033427308517030759644615442646790454624834238548919013707489190859118447786169957824383202386929525127136972896219237852568484512801295689982543898219490977680461280648124130552261133324370274957821791141455360617489244251852129055234698398709942108770366163937088429253844236784349175401831505987337388204883395371380234356855072277086789615505661762438140822490983051380649303058627817859979264927087531343088064891000809752995668946210445955907501471039197158447532208061621312243497270534511209084252902965647357809097765356955768427575150720792915840449495894749423913373592538861415707526105743661417490489462987811013436017962504363108768325328116443005090661701791269158350817945284064484593107468019516097910801468599286718006312163710780584644237075154113685767328492644782457085358357898235132417416266417017670289350623905625369280473244773667226789314026462541986192365540655382698667791409559908326697754700506888034983666874615752759226588125499475098251609779353978307977349951220619985153395742143701020925331421248121150493736759910833516219440713431299019728977200165343179042428696310658353191765144633978845956107584733301178977041589557640731478209877847391633289061127895329532969445027355873000447405829977258231088453800843320297592765525948235577029147048686039480221857217276373061676482318886712654390686748604855378559247014125273819029962645356781950979791965719232905076373418014748084817847557977650702078327429157334987122215858175616134432519106043737797214699494232881222830901509587753797962956869506172020575632964090965271006293387815192231680988903110777884892511218631574884901227048241443317277819063054164427291760752768092107208681152790923507710399049041007769435090445499000097984816917178900403651107314547399582506788151565886866281524482899560726461185264541457596364186348887089986497049844515548579047467698680300398390700876648263127231868028195314372164518146186240816096846749201414647286160443396023008518895958592002257837275549133206926685994844707479976234640322040652838257114648512738881140913885338398234779970227524342415305465873328112632482652936012551866928631213911782434562481759677787007934988167354523888222352787872363460424746212087387575066000203357807215105649559060385159878948450919058968500559410125471573195129273884406461939695475937134593918810105629120657229166364243657926995376841872469924750992275591149876470526135175332791665849797899527528980520922908171575131310737672419642330611559128598050832321207967327756093656827312244199066244667755100942588735204382166593130026466379043581305795791678708925465162077518378853012967695180318396410368617485284518927364788302179573137403280390257252687645450052903157142940008475082224370689335236337405422344150711945100525532803719160559996021898342196622459035890553564500921409190505716170034385223340488472758764872603763308537726636985773649187053393346017524977700868643752214240779636892726719765372210940687627960840284805785574234072065637684118357898045661396310665747828365290808520810820355567850303258401421948682355882849906552415302949722416111865089130615802064488373660778454722969475319021919031187601234387931295806933717400726726239633346131273163729408599145249757240821489136596991894249935827757285881503491979061329447640173448830840937120325262021271264859039828445090023497092812963811939987386542566770980322027819297114332042372631731706959216193303100077037677194612071924464279535169771090811630230028756760005752186876966404833551853027963066579672094844826497087313110270372579891814719119956130653126623840637822079660793431870937951257926881065357684118312994442354523085384466471270702856593437184863019205494036923862000458770066615970383107464515839200233150068473302522498397771283337663286608456065498207870838635284998756268335758033701991797956867647061249867414842542554829876816976169175256298976788581085304545435961023965026565016309229416374791588175621311823233331169604460133930303509350704304314938756071429061017451452144327042131931562174138552263865882801679830745486386135646594234228940443946890127410611348849516403686152757604404081066116025803408434537426535107637485403624143090722019870665158681504940972378493375327969212356580140367331957761223772937164821359225354075855983537936942061970947698503886033022149155908056415482694847260166339656181287934040869066424373470047789147773966997844020912070857753789663009249862189907189599060813760854375141253317845929424499557111546053522705020361349850354720381418982702257232307846415744207806277311248684345143181315788479626986402774052443725065137513019004492647204316598468457191311614323212113654664132641465889007492928055215595657354304758313405580290350278393333893851309352094181089803851707680873608053269225992174510732711937502740792789758279790034385147787720197354361416766398795275082947073014885937049206257505141271150341229507330151414283951284137070878923655569585141656068728454005130765422852531161583205668315618171763840867156972953424430684723468034318402102654838795924920309849632901163923379564311626336244830490909542655139858511000316242550003448068566198173607404259027550116111974237911353247139211835472635440664872236517365060425647433277291030376434983649687553647748365366444444855086494856689056109000534480480403172299127646640003238174452403838841290076467690110497784284296497945028049945094744368346990445019479201806527861768575464406016171963634272137461865576499412224117382405409301704379993316554776409867426006343996122387466931399564184760251085516415627572151197009194474489705430124518636842446465734816925865158245211695824792479907650571610695669224383122459787400564620945849986379717829001213261200384819427499317896760056176480542862640647852962576844642240997517302175732351872744858234937024525945002934067034201156309653900919982214630686481411494220021287550678775352963584462329563794915748399323882003386112272509234424744874789000483764054100054761694637144637908315321476422293878053726504863452568038715756050369016980594288649420546512013845302265845366545146427462696186215752396232297100922084179559122280806813018693519758668711170399810854192061896535406653809933225163798373228891073274911094252076731020200016198218546654967265903526745376570094484654181410613897381383093546489726416624424521706491993339080296390587817835058295572246172835586583479905730788060859009804971415790552790136395986473213790714245346463621622618514139815149581562755340296717956709061987271939418035975733890774022334308631689677921898715236429622006848246948232136294879460055618139819111483155382344437009661233204803505657842545390316501994037128225875509703480226439476030111036761659847387548257994272200429263879594256559413222513136904251161647446532913225230006027353565910897535829874096939361081860874197296514237736029192337503646008885888854942663061219883054238669973477961732110120245388127309366524981506317368297856276879816497849091895593929969887197255757003308768954788872875925872703299766155433878883813198041771375460662876546012591410582628875492330313750644594725315230334819554683692860708570553881190312323207069936002067564149373158817412362802548735619917849251877613544217488119332421917218702870258939675499646049969674285345183988200322681870041117517681317926240449045939010235058813133729433815304631621163155533669120589006467001802082145642949138151399311023408455591721850982266132977484273927437435826141838706730192878789382961055913310820543699353064323080870931839329925954809305091088474717444494524991797856200004222566762387618599785313431951893495848229497199516251303521622160373612849641748693935784838027803681380487935836725562770494682014165818588838665088893672524486117937578707377891525706016446003803282069889984816485625738679178584592808669343313566690524299866270166604939107519372790005503244318831268774754569012421062628569633810125447188304222418519956744694493154433527570024582841775466181685239391976549618186118909363802358733068683916357909478528888745998288991284989000248549004680826482803183152894233104341518896837589706185296337511042840247456892499315168321455478326484382874898449579365449552782329391488064440489587379574667986484979874015789835163868137182312024075017703611270477259785635119482867862509470488136192639247334371288413566035889845633419184131337417627732743389080081643102847534009526788253810973480172093043346444470211647199218748780088279190640170324006443035973337445486381381495300291740021929986142855220234837350731614328864523925279072178351039142728396374076481254355570358072469606936310698163938631313885264375659031476498928989258111534270642399868783872988871209060286599024286628052352689337893310659146994292811434837697332863850959243617326048372109113988492626579304691674632804671157930065832350843793863216916399711427562755673719169680843908204911414146105932751546307862357056806692055787016408775227664555094568980221592358670889313836960431611500060221212977390493956742419629596766496059147262448861569504511559140170827957262905438749535696602186279829120547772047919327730455645027949091864320619196654557661087345055769132783826001556465400438720382329101859945960171627485089881384221485789681234128175090317673579583047394239621737242443280619075793225743903192178129325830301500005740158880253980474785815435859254375614223708671640813604527483587723464772742977282818506456894564076783435689256598162213470601689916773832758885398765651810041244456556267217149788592897554519823100249131016872992194428366548517963004352693629723924103500665979042670639030446813019718403915247431002182096709869766268254330514880942713564228935440753819574584459904927452566643704892938673678330235085312460689674998472753874733083651558576122930647459991107214849519648589006779058739553754144126382025322116813510361561806874971651510204690315843937534541768882184638502087653614385462255220188263305490831561215497683063703951546027480229040680409722411997149349180190486316093112642725585106206942823259781592109455372166130550925080143921609392411975828823569180939392476555150216984340997035147409526747362443696054489633000510847520823791551063643928172870754314378817705732150723607761574042802225313150483772627448928585600470972847976813331509941321875361890810007367599326590389950875242793786499301631671387265124311412950440494166857134913412698985846191795459483307532804068880313657545305205625445360474992811659911356601786065432838192546238884970123463113410209780584628532356406786386596955275248597750110701489231154490479338490806582770479505881613860624633192283451095810066782447491658192264332817485890241254698993080003039406016940496821704972263386635313407522604266794451438942333254512119767003413787403246589192261683359886420724215298580556474547726445689974564839672325509168535488330684407159445900636558569617631627312914785579981459846206563699581284181083070664479906413032253432215772112976712307381553849108864550180659589020115837808862218926640479432295324404339694941519778919987289651819970067438925267952394773648829165972713230535179261793211547601038510958480098468037033382061190167729101097965665901021223422426322905362683422972894244701104196070692121679717354643900424650205768395906501137144011932210865763329976091508665611555183925843733569167405232173247644219821173888237768830125979585188058650540446679167488030255520452330111724397414660873570118757050313146109621611414305642299720633628117406783744627309422433008510074640231578140944090760999178568465337412567780051469707323359627268499361133079197550915162354876760710673367382279380666010053196246023640354243665495803265994961285328485787992737296064697639166172098473052862051163121277594499123022730734990137071862597124569432013876986249574540047340073121600633383013399877810308785656693433309871261515725885838310872715446406982372798663482575073294009131461155467869991894110792861044994828056682471063698076706481798728430907101975906394203311546255418012092590962305081795263679701865441469566402806564232133703252707746925960021111084143902290094637342425531277406039176915677282365600379678080834253089492126060088121317205181605223461090714405888075391878887283750426690166202952965281558333864044803788221061565463281912112602779787108857001302835865968442451018587518021723776898432017245442604684761482446910728156026321022372378168417773400856969411210997115587294014676398147798586816550030330651845810651033425192434798916162914897957768499029186923714867684637347887600179900523164589100134974546910614767260107534212569225161115639249403473050478362179710876754962367495581648970279192028697507063541792727346659451174689504248648207392688197870692318310825055330674664904841550258590617543943881503030558048525385050651856550878409655778382490943864442893136661314656371423822615273491837169933127671320071467838405701420627254358288252023983841581390246672464334784861221263779597704077703200281790758952346718889538056149515098374383176754748648225549579045451168358642536336858056093375174742343834829054087977254495580441455972954969171651596228876221742964847110164126708933275067707076578945677492095866110007570289801669487966178225295423874950350816231990438229408189232031104210859138205644859368092539086197665137620854025393236832626072918251436581738528223693868457741736838976069571023366962816528830510128318422076732020182918384455060323154384007799990759037856177091997150279044366104915121829043766020240161912451869845036708511060245977414556666562603847045321182290021689684866625429151217398255561713437231064535051810437664814965089781059855958547249905528935664805497212643650185745686141652969830093673012686685023555191724966100852693098045982365169897086085492874937705372668767286479593019667801775188205629720899983992080011579542989959213146394399972394705544888911369012902431547983960084185664372448603669189748461372483944535772751904007524297046583082857703414630653075505657430275787888547485940652550789718362370733637914585457064335782401842071679705399802915437457312024546992210419191716604498062472654718814175180908158688862560179998783850747373480550459888785813370458530563723262064182578505578670755770214654812736143902778206273501059639614426145372799054476028973428635947945079426035109577507166568385923186884980032614960546542760187123665612011674571554687633028772462378647217221545801354553733645473189565082129215704636899721586312222440736593696138865307598708828291515099000929299134421026042901244240689698440866134762733867366354776322412237084281504245802303972342869566063301237726590156119260570051963751686784000349024113909120450450809807360938140047243752896359427247586162705066634165130254964251718584970685120435632267599940607207835398025613680155962310432061780390765380868370278438306111964071542829903920700561156124376036822718819899308755535738493867973548914870207780756228354727765639999924666606065389743609199826826843260468324025462800390281580495683780109389325633696713216562381143097782990621905434057024566093241118345530266559725494562419940267874273387846928963335931057368601583331688300690264979204815890132441634895419976843075610329988652625302584178977706346433631616255645183937569382006356493541625640238567266369938928134195282605219719472500744556383080601840435030795978609681768795090479134726858661172173168800109357209517464317166018559963151382269363704727059704630480587635587346323413598943126963824113179452539405675290717873867467922975391135041435238799293561147199578178328514838931365993196310650288365935891885455825809097747096098597467286908959296716557172653756490372790542913464198163860667186518862748112599379588563310980101247694035254401603432187789746433670742769720183715745689743946992342185772246600206405780723999721236234453085096237533092687271558441721045070623426168587832348443411725329298245383842826051422253373685717127839190363976533806220447616934009769323285734017346129680209884266625480278642231981730223575267625836108727364043660565039913921040678177660028141335651540228909433052160639656409245142229124634778463908202785664153991542537381943851215560426109685722999666373140155695054897302546170995238642373914352562390233866815830563736121096177247568633656981666864024308779618929980560273390948820694028293394383646829882831990907932408307789866163726536454808201244849467460772610554748179155821621319437104008713130108210852392054568721202743054416891557670166577320488556154764882563811854513609384664925081400145944654570534957114988394504168671018251805548388818434830124582200833789648751336237675029314846985572886182206201215581907235685691816815456159998713134013117937150434543078486853026653220979216919716761799101484523085057345878102747316347033582964606307258189543427183826392901558723795313260420928598760476716804977941194325453274289982623180115394076991699129280877901176030217073035816811319454714999568295951727187153310322296175810390969804586753335793119916854860252271411720056545841053495260628056209013240390427251779439032736783010281379957666301359117958143309857244039471678527417227093634956508338749327716333309282177721970404940851576720347875904116308144210820664819708374050693223111229403281558099779883006859202854532939291622757215083894583849315947343660010404094647272459768106591765691544837710694806719089876428275197993437223707456240684370335347590429839504346007979779034021117882517470769388010903625204930614202523995684665646026960802487020103863007367730217704973584977278880561572017952452995954375675587691464198989242199682298900214399259490014485180982021877915321868697034021064437251741127513556547586860586886228814091607342979530178433472955536129911595030402005061759903422007476350871009749498401952122884942936774750663807258076942113014467474221595521969207427433436647267573521694675964543922392039047839053744626081462176270143364776939430485937617715238389373799737814762673116861728920937552594516694769887657430708234272125820048948263472324149894770205345728275852274865864996803863375608513987505812596600738619207751462641103930650577253952716584529738794589208655521832874646012942872200547217895043267829401227562600657854150405164492062947387332655310518313982544553661871662707684555591301461306968586795696344592686908656276363904186719353785555128459178431768974900979872819991245691733186036643222822330299335705029543452696402661772897522519946126280136700404710953154619143964731610862775551720381580891497303158252011660397630761443826286575947485750150678878530447258176178869210220108897044470688630027231816987212432021758261064998555614157080966367428802416343021239858728041510522442831429453129890784262472506626858387567381451019659133926915070331231672818178201085293994163525767846158285563688343995268103704121568010251312678590349477636837275906799149475798228004922782463442755551201314378578951062891836762078118532608033026788263730179110353264920392072416142189275557074154954821478121990051134122554803200429712283871874137840738598327489797508449665047194137049195708103225743554941688137002871311472882094726703391406115197605714747006106340109700988041182957477522943753664905675498028872251084540591629628941878313101387941855336170547999314347331208013512495236312757688403360106433618111461441345679539299824789458796875783030823221584026478771135059069664985200601555010860890843050897452460070338245181559681368639146774424811444247566021866364956502933781512338790709503255904809931218320252286375678488649687672290571874927586186356670760716850353921498577301532653655957139401013261434739294503532988446015131106400669071431019638378992669975017717714918227622272034556239080121825883324066243525534706299055657635537981408271242405327780297716815309270465771062747287797336016951014440290750356823131579937931693018597451449166757508669577817591009798265261276894063863792539796142504022821538754844533290320166568763719029439041032535369717086686122241903181119351207101333991455226266774006833802183123358507876347670858713078099964148657832370296952136262670055287521343775055747277189454434035728981586655057740572971669940764302478003842043894443903635362985831422041964360733270923889167856021824002564644177261505234482441070133259303713267717693892249012723496489120361980475066918934091304364812487619276761247326165903187129377647706286548218050830243945706859547561567750579810398969303650821165314392243573491288533602222998892931117908508998639317384123840373111495705093983394782867839020053374744277837061612595411214679912894683509555417983412880069375547386219661482920021670413492404259523892659091012260995893745967186500312644903136262242141802651348821541858624179123187088550788957551866934439198287430835968171014885245452282444389269131640292573166953191381252141451769441893147937059659144922949745742845351669763220624335655799799176837994239160522099936878072257635547507735364712355364667979532252524531787616692796794136743002175257657678179649373188870569788772504251547614001310688667141778375017284795484402791390893271473675938521298977206369339776848265797632047051337055822331787476172546404717050126988033904046188343882748063329225094853891980806433725943434099691900646906003258056145766116440610514477006704616968423595653976600776383548539751854001851915543168695638627577419742041401326644459150516243149143840970981361681202358822532817423544431219405469715577001755873795479357415320629073536662786787831197935187169355412534227365524584524039692007358610198787138253932753400611471216884242095493619319034437729297829128511293725384026023388903339231942731991117563562687595103485923292231867978963769871883255025964286266677686448517811736300576008649459153903008532124095614326489196725914082255802912705840074432407607437619659400136239768961337311331359841374992191760885183610043998472450766706114362715297366381019722398071525240545130060939187721998460771397030443419970232408023457422680742215717984012200619683823896186269727602185910994512752031041070503896144796725011730156003224169693926762309159581643328276718165002478672138055600611941265465245435536872337333014046636021034076357932009848424336209682589911235635553911521825970563660322092150687708524515528556918184894738892069906417288692929984193522141641875680315319032554950278970705534621772662919358663030815055634041690936199160074672112198175335467460185372759054039957055346160242255818262136009006705456509016279336845088955158095555033853020299886163972902981956457746730582007203201546651550593924744583031604605895296653421509543912084008238868893701601386525010186896200009686010573699623354395319634635679172269213127534486458440363912970630778625527143240115120163722725009150259909891907555328527563589236291285494156676101206566459104802460986527230585234418271934662211933478030415402447241183688228476412274109474099598268899867671594184778965328433298477499723755268544364435004966621623393712262553230191570093519577441962163912479319136750681371958970030758489314300556529354854997810257780422188748549783090357577124657814746593402570622481553972148048292699027378295769901767703064516312993092957262076668914886677787011905990755368097233108719102922285949781307196376982041458252332655251286191097333081459657718307291243392294568877949672103050325811029184706653532041029399856620680000020673996104056632746763744395625371402707913062895995399064673033495717055196633743826363616809327829875484415157312352379550309955750074930973418906676205344256315462203275799648003018470989795279629265991147945631756283819430452315205698364360328454127619552034967146651633160285101144621157366715033102843428449122512798623322117282112159707828801947104782404480752869257849054944236570353777023953604508528849335020820881437748561653729118765097143457243590791635023729365195964844067818615581858999761710325707400148769385881173818491405693533306947994779142362118380793235331986385755711129168032990120723014783714521726575686235189456341865225718206710667161864321414175158742435723000537861859128459362967848907238600219594487028593293764346176429947697819099076216495887707159376119851059962013463027039411333615682672055489949955474307949082762566089804669376985963430628538001569323705238296818009884582415282009356591812487743313676011623405710800857408338302608769861938856311936540103935290701512887419678716567496767868621518805372434693840351670532119053930561065524379919441771811553343327620169058979322942995083832763496662453048420953899462230652931137155984244396778956351347694483211438162836299905595138520424924992817735897427083363840841885591342513639461058381604854561505952151207609315590239905338869335772555198301486848796825492576195717503088678655116617235346241686730758365669173403503282949135181318264443568296548366125070939018139794787446515768262642457885112058080740197158230556294807962160955175238312473622961411602770375139358809524022136173984336901123063342207758549714274314455509715944382591805044607828999178646754725174203033255574663302112297789282152079427618489755462938476701752368840951778008249233290261503016124197492228211992934897258671727204279683907479293938067548377339801046609314520013897975631098904565242264530587651426673367108659499981570753307274220750666914749026008459879543392174284456785431506404204816505417300202722503561791737305777982636441936202384631781514415089303405697895907606411681224481194209333437972456284039911697811603949225796561472427099329830932155835559799738763542443931033266690519466561509853002455088569539326881241042712864420161173585647777467156585236855250421188911239782222092215868233890050193748718979475260068732391099479986914524712159682900505911734368873922218796009461877150227565272389452138910091926241617624262045744404262070142957077446074416487342910478992251949874788498774885016965552444695114785007079185747779941272545299915198063302286021632364975751872773415782389741629728609605356144288568160448981796689481820557664534521564093944499864572072207385078850033439448161938388412909256864550972711945631400699279275601418654065522503198831250312740228302601923562662957707323566049347697180763805692993615594439555184618209118647320086081080598911119734193409974030079786541029245673144781842135663263256983605335373344289405461082823179677705578393722432293290948087145834441705526651357280583846906319226437701798557351716057863250535286020883645818607560299161090723268657739691095353254616894087601965456693017074101024401975911674569287297489346523679099691441702278801204816992210133788087931125839417142130978066027785561719532379154037283509784170509627947959204042003797123632919208000735628203634813566080179260862872082962904804461758368781468919223581278875270100685744615654464329611122515625649936841154519139434853292901083317177293481178933999806493380724726833819672881944269500089442889984444603208603077393423598665866531684922034167704255869944671268118386937482599469002622469084779053228062738136458267943191303017479131175164792348192249115591461715445099630564808920812085369829744644398662468777001086294778413374761395561936967294133118165729430624750532942805344708098773798061329879189672305458502424004225602755527912926301104305615755670328792164490018738967841914732056445507236368640349081633007088951286136632472936493640385967867354243808392258261800627343188397483529483110005628422264043710175545966766301615566495407813673964793736948564021472652776528384292751811407079031577319587589852194239673278468540669649662417657288133032106363278480212062436684573485425936426484191410449248985486126830751783341200748959499944008983720269297366571031924605185431451722409662166454972921891667457698907125421945609432386746486164721293278141785671917963013227002372171337525580561533495083030357292976436987976758070554092491391676726429228187753227790416186443802569801873152476231092723732544381652104393027233462492020649870101103465511858181679050821445447161516609867116546076743737416233537956844397240790403107501622961671505261484015184613868575584849479173321918860884479091806224982412772794759106879220520519522844386662033442884684517979559573345575794499559858559702440533609961485428695247011188106685504471029141780587677309893206083559737948720601836825063362005028153804834002439421800211956810554215901336157517726288242974459103148328237023409864679478500076278519901424486951590332995750360026542778263362452308793349199228879914891755298256285584260235125620145045615858745508070296535389155538751010466686120601431553439063491658359969325927098136487892813137374396871427434252218676408348371251917830871560083617100189279446550505294497246126821401376285950087620392668598698475826773426231953375372172637900252930038944789825770716789453580798310987282476633751892361479181626756871095853347014657082434391454207627215240338058458956379582023517412514816177864732476797033018377037393852741944673276384964600059805255871551671386543619239392297200137659050298950894285199544060877440577568041163383739226648351259717944082665352257262817381417930044812051265916923307544308954756099568529347914781606481825426291561099523955459865099507333775760283504872215140347665295887787003124336440890370685799489455973180402195296504561401585118682183691213067322649217643959989783636710471626882361443424232054413775888371322890747584195769036702610257484853333843551329434629951024693749528758720834334701475013008296383679663745462980013727826705328108773376019571651053689963838613885854573663802999513148986725803064373851374232628484830379313981673017340687885427849414283463774814618489604805177591459413226194627041233597980525417654341209268544009231000197170173811403028576532806437501544841396418927492819104039335088010939535963159172532106244315983067330070869192040352172485793088144411683275938813001049318255389244185432233077482048327597662652122060575490282040089063042401695719959823279254935644627990080827283437986665905049289889522676484116652346343916022669311324057685583638758890377168015153627620620218055532172825877429337613776181701375311839070108338585499601774621767432327968600329181431960960983003551675192855578525168255009573366641816256521637416056275643762629143600146931327517265113511075018545026054934198275906566655843856265197692399179240124229712528653410371286891590705462809021899869308073742793089556281026790401753179486268301541286293501364773588199120615571059537245715433936668270324209886891662320448901578424402645216995835120866856842149084839057127784206912724932723024965330697244986462736719469884957008423661105629093099137771630856181570447978656180324826189953860115136550550360249310187980087204000632359434853182646202626827587514253529115729604523375927920347988769684667351781895248141950337888190615973711587280859275910246196588180902673705822034589095045698565614547316597630719161389393617854684281547472269531539385192324618897271495040776296099888291924955617353397649635923516610170919581477326005619110069375568074971752023194104714199223082845538202675359848105735049020865506828497226545391127304729235613524709062854844481463878421108142672269188116342208924525208651279590019383007609669077367704279997318986830642194564040872091666937887345846691173483187707733722199384009291030306224440175572186131829008484832005312708445049536287329274468776509368727434712129278199260058191166762325599366029434791411111645366800317242665093856455961880719525331939473546619789242040510236554787185741528702126649173478677721856968472946304446568414740005670133933457450799848242740979234346490290805509933627762177369040222331573871048555708483342278224471008584637143193795076886402376524977306040304519606028040384790356548358301071396650144344653159694822105862225250045306579602984656933536363596608158250705805403493393811569604255786154365977119601217404807160457415611445382301188686644333970307530408012258186579964237822724929205116235703014245938905742178590580207981533818263857413698425920148811012839423562685035686231217649686458087903993776818043368231471890591631525986031002246670792797582368413456840202828126801763358610722376580186172126216758522911815998497851090456617078328269828513941092806615490723501030181294427370198620889919224285000166909800440555193758989257606752217347396180867065199279308575734706795073333369954941481191918430027162991882232582375513687496084664162561475128578811748880628523574117351624784443898803551264766977996683850038019103537427748784817990085886387633704446834427282606398261224382074108095713799095087497063977554463767618084773831919236765779365487337765618521609266692469967549324184562589492596264077690224839710472745473036908017487375033879657458852367977550264286355051980727046655272023156737800336855574393552608238978173781414135735886024949114674711653487306303917990435761606951861649994543452436716616653650929220139879682129869772657484830998641145991914785252893877936489690246816426991953051386477798567785897099736864266965741513071113342285490839164550946363949982245104486742351568088832938186995702205611322726870506609600262919282723486594993790801032916986181991705261017879914276171343593823552652757801808210571147209151973747478497911574425144263878230819294503246958413369914207565263049718069684757819249431366675235591074049024323466190150035710128676729339210381330471717300594760040545290049717341716344110326247794459105759856001481067221037868061384021711679702717573919230155469710723702760509039430484117374247244179539364273311258698093223897089946693185354421513965778273120229216292271904402046953726621682905080077890393477788854619792715836921394075498155448440124196892063495216778707627465367450504406493271945425539462533588597022346211984449266210997754492755078754595081631018497142136600821279706267700901587498053796095694365791182397909138487523973218109360086887815494530271569145796165697588424779155424597792304969779844906050465929711847984353765314685237664308985918979190000485290957632645026352638053818749335991333640638016317634378075858659967701394216850771167599471463570844455365660012980230762571889062612760892432893656495681095224815713934337613656013146042539248394169419799658326467946490269910893004614780601573399240957875787477572443321341516274827172085325273658589441054770266249177821348827942805595043733593442837138998751841304306925647933242852607145542651186104490067102942571629249171044706100511639500952184127336163242478813202397176658704594523745011831064600203153954332105683365973085793498717811402571854562279874799576781676946930809500857727872418122540044816056158290297844560047752576505246544735687712027424109111382168935780636080124272696240843274266717148587328553927273873613529958568746286480421205045108698183706555951806746052686825431803078181343753035873230273365776624694051946414318586713112736997591866841334977726547516809113350323168692724233564515071663556305545560712667159337594126711443838383638051166898701405344572641815201181484004198632367022323668030688379134713405990222093847636081986712772466784117644492959592987952827300088577546441543084765166275574015592826459571632631818465385108586915326501367357412780064971852714494600258749976091113074335932598202100164090003244643061185593335103507433165439141013266723430454586066118194282249262493092817550406642983490720569454184683772385049001351951892563071697667489040534584388848367597739210177944663230962508253128330949938907669236550437412239554795098433503399616239158947768546022925464781362963393934688803145489607738682688421259787775814970285661473329850159582804444394278807676931108179717229926852115218037722324838418392165240907986186846573482090113962906480913250765436446502232600008557620979123245660503446694405485701043621303594706726612323569186591090392208243124417780663927285926489480371232398208675288885219511103837226429765823748396199946633199501600927062967120714514581474707632092342690074056745985100278400286484236325396739885895541348427459543495793489882697423480942623726583473702701826517789903288559924716604325102191431435539246312960637270774101216926500751170484041855556037043359613257026893947415954045614598748468414561106364896052682788527323316156082505789507268933457207142592327036906546686162221647091153804155023772624931839590481024475098802949442511117952353507119930992130535801754302120840179122029559824901639130904823779918621615151860611082056178583566439681568208730328530458151047703159681429903993508187840262285485024900146495111603031470575885336637302563287429180737834471514748152154823315972734737409016973583169747552585471411655561724306224845742361357162197243708645820012118960761033832992289403708876891970805472642541598978425632142748781108322524352941404284762238152265286747535267577337453692884608968647647118933176456052331206931857226942739889275389960804307592219690985410506593655817256810548729530950572609503109318386883227407698818529654961193533220595369231379202694348164712249626116699013363937021995278956617492143485333545544296572101115152295891991027816096478790191883460217443342061705430008588717321103892473592178178439055629069528450536037006617988125157379193710594946491363018352922622629722113118698663629566899140305031440563651976834421415664137501317431116299687845326662246442557707907090049598462185750710103217770744407394958138265280488558905089277435249514972481306385141984644969441415221054300149652077977744347872857810478069517739686551423121488280533591313535731132333780666873085500336654157205958109281361925734365988549735719473311801954807222195612104723998967614732619562859719403776361852530663114334235869637486611125143327387831818866362768012125546530005421680928318809116352636872395183307934156339823260600833368568953131794663416771694842582169941991350946461226862531062357425350796177878923732892281591313586823856893429164737659589068680542150015342800735935014702688085882800319968933568200876595019821688973876782323806970131960864576164438415732100094279928265683845308885466794557142356301772225828180874662847970280158382426881240766369720835965975439897080109242441463555844270092992632890539816978368396606369871191406818863422512326542460368906020811493725421968861296920474562183586880990341496451592824406461059945126345734481420502282482061145048817536956869460324537899377059091057975826963449676372574915220703329786394449340183007479197187487348431235616512991939249302673558883531069688475315662790930662879660164657082054824414330778665013196055318872518932455449964774519332863827816334700849036062777298838804930110598489023484352484217003201320086619897971395395870184608329039042339208367034248630211525651809880900420709823703345177547137957022877368402934580876173692877687588687389669368867977515028740823857537906900215713771225172878161764694627308434502985374606354783071395420096123149345526782375496395443260938254421368702576860676857868280435474505302715600641425721419226808590427126955610891272151778595079027830922449296882983021953505884747974552458381873391355529601419108851961537456617808208515988077633466902275595314423693118000414041155923967836223972927983246706544226994142472260738175515011523870698119470297473115503008720779186361806893711130782301549843839217799106015957059817177334774224371001887414827914464113406707919582534693386583284024125580285727086190709839655591088655607985826664332038345691968908120105774439369006602458030489284192940079554446189125542900042961456761973390317610713690380313303511236268369265806567562781623639251954676278656269301259067266328890725194659484532775876539200470928634635901162327791056720276209205988799896789650049454467754556763356144411182072566352242453427075557131307960832250980146536723801163063587134081661609785492450360951800656431074486837866389600334558250843716135035157205727734425915967088649923935128140704150653876025844599723515424110802705626482399018288661824375378550990701576493640249783818877779844463665858019198743479574709859955407302287981732676715500796636523046276409404113795236911079272515935962826514508131749608744102324988218678276692036613820076609673145236838444590476216500319320702745701320987779279096524691254832831603154308669109402031331737565512402484652447066057027832949315470392956376970537541835434736015184325127520648340778277765352467573710521732094431261014562571315094095492361597273707400491023014035396813739160057630437275281847548198727283571342179718378362784189126690054189116524395800758918776180611492484930514004358589442330428179873321238357054697135084878410894424348697156435799865129481975191255618603501873656326082950332655313158184041263069721742138580970890342035416036352206244395341598744540380329434335383048226108898578944559689909536460883586035371688097597223171780591274531305083973558021152652322910162380798980398304721630633193117670952244711892546657891046377053451136149782346910809119174068436786690074782862328540898593883476799157460450538488627965184083547761010387273160116436405843723659047801233623666233545322398328294866199904125600253696045367885583040249940428948534467439536305191987187255228809473032363667630768024706816197429420895564609298942174144614476011657888727664771699911604718847529399692470253005101973855935932005814898245412136773310865800568281079493509720756556175601618273706221613180921829519299237995356713987578376172930519463302665108994532286754609427738999834982478117154194643779087616922467509110605932975800251419089043139576220180398710147365777392731498322619110793368013363118358931355749600098932915918410002270370798888598058719947350553924933908525183424917697931779436173303443110622362966593857079495402222264458294698934814943056285055618276485408271337809305278688925846311319532033353576074374960800049479543486855202759816643569504729279760589917650371864277509981363586963715277933305478336679764674514671131642763931593747767907560496275498786139835267832838139915347599404489711717790753334363852347841053721142370101305799301516100307903104765819997330604367213371542372423891446018557091661374615256611044988395204925392950331184633775466783591794985256478744105848650930433901493616134543528358382035116315305211349325442540786172873865173714437611105041334959628649828544529012022366979015296511872240629718816983168880654245265819416652001578502959692082498001674731823407667010084667392911900863015671206089600092636552787189186752728730563663515581102339521411645473416420064418715137117033570985910372836383709069473672800888840488187485316810376502645450830534580078561501082629349682088832538917762934085371151136870196380978520303488034814149940668341656652187445628606108623079564853807537598172132255983552076986866904810361283655261504112028439154716698299220633429720985202056711036142440062349902892616219047011103944895259019804628722068496023393691850169541681658325322174614661894966937141002754532440693042455758715656441745407367649423744784185123943083046305490825299989084935487929099081509705146765951486362721008498187742906773981254075206611688133124897076924108223831856982064703695521053918431639880199878607260752108770917717930913672836488178626364752853712683079367935273666987218332565863294496859935264799303952379889857987992128694074099634748564529154646805260361580406289684978911520656758053901398517625509124948029990647957729429746892194643617514057828408693351222538190315762092758317634614503180654691739626620524238227139682857759056911509759178452328001193706690531442939598711546273475448331309201859003326569488248566241511963654729708332027277525543713230261208983486452771218533250008448046125976354180216570348136407443268307013466060871354738671017805164134658227096431627729122351535301242896401389147593706724404982429842973972422160568186779266065120113121364137294194222931589766657981279190602894211368136400372282549060825830389931687438163997572032773569020533001657312964492111933165540200246318371804040443556631508407816755954027352626611302441073796957841693378867588439563386872902732719668906377225882931901878993083733256394421710721861313536018770739119159553343733109106862875411461701871339675249797345992803423742615030083921787298601058858585792079166755650249512593995403280196473608229078365434145068712748217450355354126009145638974471251779777710496900327977652597210955452807955880815139113701210797792761144559629752288553496923558213135870025558373081758635926227903776272533448273004258675307044111391661405239081120586354360133646683781782694708877995199870584429885406776287498382750300872004082288324656153013340582739855090026798075691506248262344765159577787432397929441899343246583239699442434409382395409218012699132829624841115904252799353871123811955290291521095857720399257238097420286481809711231896615667018948827301975122719722327460849859848539576210953755043535685897559091668525209271302125976811980296947904447685029748634487088923716704920031100025616467092913070526327050486176540880641174326657226004238972621167372853669357073826616032909754232745816610759176198050036487837186508092231895654122926555203593722078350040075336886872877701506459361388593759678564226909343015082268358498909945363057497124451542034780978868009268161838883737307110382908555485817518222000595167311661920225102476800300444317866612176383295458992116248803159759909660467322744818100223975653598038561001443472585342987414425108470809262723045004654048997183406614128004191317630239873091988704509917069342342768141116063969026543434099577257591083966192923908016181566577979263127445526741330339264694641164773498180772382023608839056383895094278747205548077317462762390768043265577955945859769288353887511314194917169271295758513240111496771042101094644289723346897959330247223942433856617325733415201000400691176254433891246759673846137574079433204970540397942131540648395357696137517566194778051925076470652774466671469280623138436062087916367949154074383195057728877019508784668501770379179330648651311323366477009609739254226090769911732570191104553143050943963559197742355735111017055867801061970440190337410788807597148531168488918143739201063013715623970525618764492125995871740162781060041637516458202144814733866850538486599169229005973480302096661955482588050336357875443397637619390213297977847371215047661070720659906507144014096768447455978032549502566974980968039791748761139916594218206238235611927987476866919565739865423907223875208968008458749262527742194983332342319062431377233167383667725798522942644528086003557637462770422539341457074008361327290469913020165277370215047060918091274216988708061471509854174556838141598696206232343807100402719234703684855330699429907721070153434445783035304182366156680552246996985662829711345359709301417765800438816936714381520897099429562344371620917960528907061846473982440454643885055861211337866151492326104789901215335976938692642750439191827470290136232311825277316017911670044397911088605473968291740813034964775258131138343534875548072124559046455518541387659354386995954467545951260342065106370458601328050049430319558647837571676041667462516718654261421638315914725851607490246608684677583770496728829972985042174092979891297076486764573825066385089989750555155877817643635704747500123905244311683001429517193732458857709751244345651428827921868513877314547451524879224898409999089032762921502665092249109538358394625090684093865794230891247965668922724097119768556605351592954543996232490126061575333860429816153717588412835038376920091391317728690096384856071650979607714738843192293543082659659647114421691167563959019134894279114195484559319730254016932274265796712428677660059752138632042460393604890822538787822522212118335057992123487899786588481197891374908701547797984723289470597060568164867567009171518412870343089174711135536468879011857244175370835919667264204887462397841540847367562107349494060149663290140949659800895870309807820282764711062029600425347498031861933040240653593413625435390563312179103576076004547732155640033804016815507248518812259627035579679015955572959780935625050825944721725064724709265349125383474035753572215128045790192170252592336260566930700011771720408219114658699624303103430700299498406919011995232841618298260156406439211695938985671755117078916253579309013608333133538009452755555973985796058720313723079466129728268702922502673307538986007015891033538812100147881264569959307940075280574987221309335020965131305583230569604579955297597099603342669688289687469656164712491654104536804446819177032261506533719939797357083888807444801583873259167088723916674714843578231564528997527103465170358164149481666017860241823756335891816947374969885785016591025469635907676965374791558666358280022584482111004153747672521717561712114739277558965093187548329939778304565902483263859703700468495625231537963806874792269614063036403654253936895308406444159249891125275540926004177449920766854740905033452270927982136765576867595545727248452331713283865779326864491701931602252902817692715206232113803658906045672017568874581246983572958406127489165818361047589063309957763437533144185354496941059056254830486865296628419404989575470398441521701870549649987950232748144714848480071190207070128926438673380907602326874514274191306237451235275517515316406136415964685253604158914502771139176659685882559751207412351056885367872363574673004820271202031816187003706109865888082687329321494302081125454111156051725554990186343076574963224837395366899447829079679204601207746505421480862783648920471514671053163414163276919894302068025789752345705393121441950198669887081409230275645255540981970745384830753918583946130798082958353915630959474098119123626281371399926996455179195364980885221247879988162793132212733992266485058461675366164888426513451913081234175306763132196902360618525013722504331162295461245937133301337562933567294163132549656479130808872291846639021083958039938033344528061269663988240600082896127077962158125310433403367142677159630176202401990093933092322175136141824788031775980131501824112268874843128836929689867796524085228567241354068641915919597136094210535354687175945728072465892249034963564120569176373018245409923614544307290337204819735329102351572017827534476598345925718459727090173379777704648166996425106686937293808206377177885916240766002529636448857561201408750439567913393856851369344948979607479521681278000768320484325341924604781065718991490171242104244949766708693097226700582522087813248880464708669645528331768179254043533917231204224281588522389525206405658646197286636153703323726080276851847533005333814875971906264778957588200621049041116402178434300545260738004139232574613811335640031049389460551009502686783614011652014098152687716367739032909737947570131476481311182072725933470495285724016912228691658855815279090576522099502489780374045532149170971208102826549730538669403121800220598403232593324142902714225474802335521291838841678711987311594371370055439528907623450311942872609547388725665929237189115056355385600975158664715399179263968139918423195780209395122945071588620518097859390203464107605442111504763638396476066561948879596009223314092528145299484605595046852859345575286722855055643845146822928169222073633641583721945353669686161833326729023528001541559285320268627137415741202092477223623739603774098554330631100919580844187862593068959280134649666225960389116710246822988379925217825034128694802624359713521875860191484652306057248961517050260856980544379417834485846860678184178606717922932336416797905255340908114598907155745749097800340290261527940476344293805570919763943030213162363843743117500999411680961026612476646394054294818309313604881116235565627986732673988274001433847683022583288851651024106402369549724054952790293703723623820936534125550538958058419781122781534177563908994117130377243658213842497926976805718285415030497652499945191807735778770041169844261463879183941918505986550138693475075587082839826416508430823451644295926517078688786018864339312533524289351001201373891796487317513482202186647975626559811574760019952430346003883943688471692697704862538110109375174933244586877437145658108176913422082344287070042353138103331893982498428090767703121291314193383029229069452044659092691103162497552381060231271144696439094017992361929761164499686247025903337063880096240810515920540918196430235849211734160067127901272684755812395897789339975472636858574218649898413916978881268413719477954390735954114993096893325673437221318639302536133722955913443804984140561819328134068554405163211887364792961250035831244076772428405596905624700167315872799971938287060136765803939734390045500094295952542562352548574790865133065444443761231499128702069432202217323590875537057778128517029311516985792719801660632685281413400574708051182187458791882245607645469557829113347516447840739496383466371762871614451743221862291263483718293726226040859970527485247345039897839700292685694984805533943174487231337080942799292115603284692272035094965520686119552382911160868846417132760979944891141539529388216086004548474935396983792475479951400969113242524713102415763969366931769902545823597961215757555892269697523309303709042910988841626856784539303770674643027270755033012594003983946689361541286774121007261286976160720718378532463410290896837636144671225137068879833078981056577125013781737745463081261012359904664751099627918165608489464528917755233228935330951804585075500765055724835535547261548437889793846236107688239304253247140599260756163660278482303259201675216456391714665036138000920634065173960364900603326165094590961356050725096142092514915750626258746374829652943854482835537330310032904780241192961601600837421037935010848850444355489216823749851610891654681672208307783344953575614865640137137169568063739988800205199264309961060250775395833607310182187726013875566406289246633428159312639292162384974897649269878450296180521176995224030457712148215540834459049064924631346179182017968344805244256419922996829399651479525897714654605178629527359224607120000992801316595409733341267555218968246249122582673057966066884427874016788578452280787979160718964941498146142266843475758846018391943142112342052318561939259410959714761701261951723180145187218538308268916145831272846422175112036701304374949984752830685254515084193572052403894651948764977747868343997115883082223799449501197945820151186421431875395709364027858300288192769122297406958465765236985722520793003567602745103155751853359866643777943618245021329118257986412236664762349806486994776393311880974086451111008549714442993500375056661045978098173320915833797645697027558796973473506816123578323483112394492694082934895446998297614774176314058227962747788857187551244458123995225827122579346319442402481431977527490758112269557597914488605968371487335657708723697147944793482937808827454667443746045332337719784021735164015257442425261363017501305075759830935508235488834708016413508832515050589439842067372165567685790118526972911706318406728239081481266496859867555502476265268360960013294677004877711391235787853666477455031948166540801917858768507656618153507136509786274577881503914427469195068086438438488475960144165688984031274312653695677257892862537276060157944010317082880505366296341579184358554815279576238056584243655083595922144215724263252750454932817136985208097853889604418357858900597182654330036937038538747559702842197672420716608524180671480465914082388224047310924551424582674458196849537215843125635226559378136517056967633168117422157522168411199435034412694417731971719883146857691153438747713493168097449528321417937854038960741008905695519167362363030879990777770180267724176223324026314540142850624254684525111561839992033447808060992117524684603109531465587504850459139950529490179204994270500177545013342184552245968349236557733351093401533954097904010106570136561010884898808782008046895868076262832777814250770006171993853595818596718217566428207158045989821847685828419497450518324736749738472304866895104884459297001728251328880250832831169670611035920837938827747983372400459957413911071961699688810472810596040358887565375278840322667294667201853699320627708464903520158383561939467395828606987404512273445837869946419535764829808951209746619203730523827984017613900190052624938232920899118903124080163521769099783354096515419177595143224076215662117003052585340307405004859701168722101848204307368933747643815166579789168480581788159252702612892132161654837201481961075743437364431312266564638918045269145538606626869361417000180744868670049161103241802669629880167483949764339084021148245301210301051740356801103141061840198058209377606788298865841551563009515752992013862777411077019554618848173562785812628236197067816394368430478063156171233756461542636188358516485542327989089000518883757457626673118004427052344475423984816996601474753014619355712885466456238979353625921999845913491943596599017043430962939366497618515231839092394097701789235443355463352249791794893959015872947754333908721181000816455939526545547447328189451056379294579973834988820823268033488601847004003578432453704108017715191186387072758626227170321500273959796491000591417934036430028790597144158066544201019906972388840598483378683726409465615522344279637255358209248961009894135192533002737384501317130188140556226889494071659788806216116929669058549478214472641894266337287277532288533827585709095055900594955490399697210917460439730599746040169188964093917377852779689859711700345297292401368945151108176704778739810517529441444480538195496081268772482390444677261212119503383087125708013861449052508192483292750188950616518301554304258253204860357437206780998156134725785217547207131439327844432307127234343906393752637612052808896069546065569393312485181263935981537867021608754535282356578210720521333207692343394201813178195717124060026890667305993497186186672942134642094503671673797632106402187726440482732509686893906881838964437861542807762369379152346600594904244915583123969632342308097949097422418904756564619331180438668087285977508968256997000777566942954684062431951773151727653627579656888380206109052374156413218935003482647241692297528019027746012354282904508193621363157179761112961813702396283950793523401899316371530356308513599599827017968554058043573529590304256781042414300922760648147761399726584884206006761439716684644582786140072741021828081717566649252567293691811734959253105339347756882060405258779856787177891415692163236023232416854129750403351882461142100084099363762114810703359985309295895724018457715831161690461481803927746588031899590489133927665956990872730077331462274104228898064833266140254478491851783144220999026797499075038977414455229890119008636511740267243224087947745137710786929917195020500317707830461445187492958520894435641135791712221677290145524666160551105314796890155406433483283513003773143840875227264063789961965354741955810645281521271488180228949056961633901768964509529706558036689065579800260067378673621167960367820115504750955110896306196316614652067787308395720431222328261963709064646911631566760149953858949090975976179104524362256997578227221109324457215288065140359650958456794874334297993430816199173079547666664205047588743145514250062287365644228706799492216707626294641712949244233490850777419113690018169873036404097260749231649993541405972643585790119643862197820479640285933055444834481116500962041531548198519814856551960080973738308114327284310423535492793333022146392599626030864164781065597995279683495693159896085652131191254432542701925505630884357545764186921129969820647696689300851832814336935959296317929766571278365940627897798655005511124352448466916699221951543068917406037338529568858965556330021818449199941299626349799113590115429326757189817651017856424677468285958396561697765098977527759773298932148150532559434053513357557557379124575945036961085790275789949141772114470307413440676455247737860092565869416740209664442417820840305793688892700516737407499169328785420482325673240494634666978064672009260612753221914703842474382342774019597452530661952279397399598533958561107468753951387920400907273874963180202360777512854124653573114910581867111167341982692428395689390163581496557061940481572909460013594424903422637446453548030142304575566719462106648728525326668207655522035986490445944956615154102838556849297012457226882098929457987206331987941043298010476599628042712684278279981472807793158078074278749425920172200768107715689739204875262725641169785445382739362402801059221361789943873040749858628648607941426802621479789396735885710530769036898121434655565737630909369444671597309138165784834733990841724024387313573230594582594745896770464878214896794503806249778566535252837284020136181359937130768500253833479488323651747663818284466626206194320878029236412810818908100632606286271764298130918899007187148574677560739005878828526825789001064134257012622663905126845715540774500473852024591455346820678565643953397921488045227433237650719929787542673175798207342500627666748659950229131647690500669110345847287024644117718140403325381513523491124977364178587483672353718064438893873286422892086911623984056858966301465956674466266264209796342829536351683853375763645752644009277371218202514540714809081591131954308642367305777713400627721112543708942425876800478092896118050391347481599420842944322921533685850240333993352862465100942588751843406441591503138947201308764624702329140760133202080787826098753749749081248062492119357457408230282603146124168194450799730510225022731975320893487235927529248299655118107171295998518686778311903750143950060428766645950232822006109991524708617458351784439310014630176598496193884043023975316703832995958615288290821801269351647579636968729157162077459107598574387681900898480075437294304046483520977977545800637094207469142078517038429936136348928672586807611817003880139680058126954384081383922949915112424419889191449984910987167501245089220580607565447238265118120706131789820512011018759899377700291120124504334323134748474153164827115766613179786633025840875016494504622653070764259163562900356147936471109662223679190360479741492913386591394822966420353893063054147453876828054716785223790844330774176939661228242359572295272542164632901013022120996580784671249346652737775253651104050997919388070266162917500085300971636327350777895639906398553579039538790743102629406612958567798786128243340900623245361344733236843003508766075632760225413830959165978078588194537184901499853715415947788207324313761050896054873134226848059868613171395037071034231168024156547811825783892130163224964425134349345661935668722943962785643112079140237953496700693320246622918528679074309605057519117609291096113608411359043192056391902751733987939122927843971230965105914650455958262640080953632820986649034550150607351479676798575716751962499521910392419424312257091936778517533527834686566167945652575541136039328415491271622850800401030879077499486510549127705749383308753688486499200457971831211085715455808301654614248255128374974292646751841843550641516206912038105116501957500752053074751650749306765358507090718365527351229683675321568407119929176234742318264525325199256540553209825098377151925922468209227154469573729512907218377997364307253890215621255151253968918730242617461913873332448516600531321326872624196818368660537704562814663514662243177262468821697178185623433864729151037652624306701542987903124005121719037592182799343232915102130996603475343962991856650670998646490769365952167404518413999463734960427397463374936063024599288681492211011058072071432734628785097564998526180069648794359758028277829901737638937621231631532532215263142516628282186610613538659175946632652645264032004940893681058852271292997262348885246091316444127441153943957325921387722474922228164039446906209145125160111698709107451787161805573412385583623109976917888828407887730430240255404671512265814056420183134779491169098263117496704348969439807392380010813763185002111073482533044620267687403236356256008344031386766188579517217571351550950015549904753892583543577745986698746146073629670282108468348987374422427285753793175543469322532633834418377399689329278527625846118622387128631805372654109305868488995145498116623683837622882722429226609249932916334017626292855889218719452066200512171640575454192093310056101447200672327553865660031744602890369937545562364321187672080745027247479340580982042705441845672109588729262978859013321050291555113616250815080220773753852610148381005842105777878630478163273467874316291070264162371772804493897958652591724612322012578487067565872325684474478434262417714609046639434129303193146367770669062455339664111587475923788470958226320612063130798634040501683067170989597755913807928642295996828234870246191690697256443879265099629803250911800487332029252722591021098356977616660001547432821516245574691184187500763747117165425371666104294847608270191586032792355027006618462170440624748127692438402555315444544156369168698569010517786983684426038973555881657683815621855368312292890260346583087902497977527429602925419487146636652241899274061985255498655328834231730216980218970056046108387625971673949339110151064389897348830322319022786699687837671098649086531650938755391065017484177977865032889379344880995364152769283489732546018330331425865851470697552640227106044600257414039940335387316537204567544398853350625122543953872257745326529400218470750440982901124209995427023462400797137330195593685207875643728794063010762976658253297540565089423018408986453763085282471260003010189011937533746300236552883626717846432852687932559538812464883689846852918483267918894616967775054877330540234110930524158907389441578547931598263692359410913297617270879927185161545878423267005849506439858965888691359559871073173847073112775137537436542428848511410712897168583570628352213662780664398946845969549614819184906076375588885630734318309644530466175603690128322917518187294445020148542613766239901339903333275625399706351426611225858190085711356093525036076836622414644857391070825734716556594233959461863790282199799004790920597605635356746033842184087601744813017911185200635088180413903172118783889111980247064454998703429915860247751608854369253643726952541799220980028087174896261747818625824940954548330432312147278841197144990764174880453714223217922816535379532268162497104382432010229125672411132087278699976925149989264760395423206039463027195918006792457761889614465151592511390184743990651210974462099842376383747088829278653315136864129974755720473474163807757754226370735427391771175034889283916564869225753326049427170596467972087784574757506057746233748973317478929271878395840716166586414922815179483788714157920332324393403295055741155259534533519577887446196436620649602688839997329695611762987267025391678387876972075610852985798062936414349352158879464238764114130259183458873544436410262708681613765695674231511862762674784633755365887008407925599491661998570117153828640624470273251775838877052642650178139374914361691198879931355184478045440916275271104435283905980064241023668983075788452440688966510079445274517450783500372272070383875964192610820558789896162542327753409520680502230871287147520555743307796766765165501871972858951297554751931252054336162197304944736124835525535267599970107535206755880471151649210858186054799825998170349048242475963877442785525524817520618970089445843838538797098551981088317300604474669846205072330508570210357940278141866999089506251819381563154830803074055318976777963604369869058332587344958066598503985532684911030656630936537697498754652127326422379809736573197671778860787843156311970903796170061616775909558185580499828624932343401760676034798509709722431249764971344517942388878253866374174821182640843529074513754346851153591552935858810790766810891454074556645747325725803916927473960737816094116079331154933617909852183669074320474320345947508293196422672610866610110416141891575407818044690800688214040783485863312386871007974755009518192280772504685382855023241935265715314719391623726965020851173739984020665863873300818760202979434619272957559327043226941920492961409717579710734841201418407229273274558522816593492679372576909635827435077676720281563129957921247225865222976526464840629956830282871307746606389209030044097931585325977022882286493825852738818772559131109116354688328578037171977383248316443248493435124079088817930325192030091761487343102262578994668134294844835798755852578474411926397784422839300577879402840164615510593257901278344461910678649324560097010194166559368474934638414308956424633009494753557050667283346792801512028700194660086443465123240975001678305653951873042176645064003980655736943603129500898757465792589831292859855416190096135921840751130823747796518764693621534261310274349745936790719965754155962308328309522451535200020768424424651611983337376879613226997754235391918556108265083869499970258536616399056419841866601392932913779147265370679213156331375342690626674762784515855809766784520411603251340075731370951175798586897869016718494738699190088065931144976954434444065204607134467332438595455242858281657200373788316056647884819487906855516648760724289112071709647941823706013951281422987817907469795241933157318140064284913539021126031534222624482954834762356418585093970046513829567757502154392363314392409077838656555883359259722752597727449414655442721554169685712040492169041336232471521356751408243922882510924498883120584810902252011995266563030276935871725789374007928923320788348535388003151254293097628728686973285246583570078070467783360348405286814878239312098346354842638225393280324410497280474454014296928901000607813444166472406658135693548041388598233625985718013151816089669892437701055057101892114403628588373703184626820292379726529297471509631056419674201190370169063774342954076168982271447081072472950162097445030135688683644447904601257212825240324758954206170235493125128155667326131628233179116586211313649439185656786345853053945511680001751618501923082648538333895956310413775470490082933568985590493780925744625086454797064718663082026364987096889810316784893285640018889958160640923041860827350334475610149239416909026393218716358123286551860692624657594944609231825344689760064869264916519719426653956848133380795082180903691212813321208667436657472502095717675671733976095659815147638197285949171457065637534837602739328873333591553082851050564076650354706339748105263672111650208061163456380916830200734260709791936601370456166870275702892607811925715673957813252447119177644707155257056477121766299336309903551845822404777149296617425726490348308308728009387315703697326932903082957568830078495854824865833644631970281916172304002233412091471995640595394908431927256851757448405645268043187804018116061441292259438826840456113838381733881713691472716504706670710561619312468699685843322626560879222334310324238255282923886347161877462684926270057769028142957681224086435220675423973419065267910717888364145658335982335275276900680482121033940540856750549067857858301515137737613047579640822663154001900150304993143028465161957576586659428772569937038916568727763160296245741214466537607995184669571897360981051963733459009309351921489377345476564291188289170161440811494318952505761719237360524869250979202887390325482979048418258185796599882193210742860148809951599269337045833553293740228968693475760073768682830368118304153546348415949724273899100337414536881304897623628814512464002201578041758193807382320556712226253716123800164354211553757946879783194812552824083838645867137915124423911710404063436061168672555540852762362019186717364061420537462939483133886776395485045623565665734076293307974235820886510186133226818234743106868191521438194882588716034170130584617605593734524546634746168293383795731274482332525834187261313319027159983502393517882365304192873979558967332963736845022685355900149381721154223732302477641732809793576213213585569019844000116026141089259983849150949129333482946987132052700584911783847904246102033609738145391529515242470501286694825651657637147045304743365872046085791693687115882840141655682184017767434042890070557368938521218962298292965417333094494721581603478612136840437197836626250353732599592842074706999868405069598299974145477858975963541910050759107114529120617994564909706861786767418661572603083135933967214349156319538434182489201972854742919031540738978856403629811575326950367562983102418831317769019626231025010594499997362342745627687079726023245379062248436090508642850638984827589598877598134550577958299068540936484270054961479993562135397986832333213061658665600382528908953372962295447258134040697612338303952094255228438032495434222382384044212800594365486347453098363416515932614229628447973596332196451202335709583464351819491456714249369826789148281429125400805636063895082288830516487596479503705590846415653411971218678849186787191637850204750664257005949309467790937763717909278666758069332509710166457616718781876552569707472475799019375104547218363547553490968336760181347774280329941231008992767817431037589424932651730439692014744800579555754554197967893773038381337655222816090755899208903263179740451262318234741555403919169616881934802324023761074399963072205334114336675463031464307646676366128434898709729683080792378047780550668540505171485791830575125429875408613401910869381548577873682196496102634344206532765982094175885376297418851873416094951014585336600901150560127296194503269182637440442094012775063442285064642906740296061293326650722793832333433365372308923104318314663626852487720306387438523680883465641900328537670934640573329614379547477214870095502451107731597018020844506704714883446869602289240801819863874128123633107931361328674705556762355640651570396100179961066192378752407863626435912223809975989392116380730440388078845054606996526480367697960379477630032684767576518118503902875603472284682217269239956636319980743867081144074619081228502927902850258645956858919614427756911958018352512890937010988953353330923950355658865508046012464853094083162174482952752700017517176280114050688982610186827507474952257387565769625968644572492886669278508277043676719311779644578305729070061392513975234097355695699333404289117007564042347347122711276407147651968906111946038020950574924672481022099886668824542647386370536999821915007902371669072293591912753921079781494313374920009073153656880347094208574219396510563244000135873957096949743235893248003830925603766827994498785259913514191614733974146977450064323325598004236189762273617628417066478795766710063347701035709303183196134764034480312557104788281789651822218719805210531588888387816736403090953445143925033018613294969460231620148899291470035367017370745029069741259462459154116633297873953127821638011973269325171792065923292269629461568860730734411553961342985828143128999981681835225389803302352612907643991744853099430670719917454163847462061147038589844209103426342884104486076269837902733664372549853487225827522936743676812731500789759577242724545811923880686407288616161100236346528693553921649734956667080731319200892897949490954783673494075269429062025229141222521205445406562722295915882437045501374339380341603197984059380893169038467156763710699732895896255895613493034968131919378481974079083394230872011590326740172550536866204832872873331663404871653057640594442699109301427226483100912233453772428206036118183222633241278563034074505437891970846529352900130588706567471858586918744657478220958033958034487201368545648553761758077046752751572495180351221577170284024544855014519978087958295418002930752379574941226456724063200051209949004195062616763359006013270076833431343895519736850703324849375964046355250604335949407101764619627331888247287575973176568107152823676259806716993331519502858434295427645762951189126763724211622351332888601475308490661169013442965604463515016407666803664384652301674521795806119230456459361902470030460728997754500276604052116925211388647516064011535041088706789101206171005747604378584774764062439496867936696281131245228812040867110801512893607883607823112794600961579815533940895688456974477605106880633373136073300572801346285923523525349602663618264159807209833976806687121525894453444810552645692204386114278748466090506499303429718576832619994305950483315838349048017613686375746559169426106610780690532842396431861207523740874914717419218530893934977670983307030320860420128703254167615582542152532933479893186714147134319173446681860613821317221137866186370071426352858042809241839460688522651866978223488393860805226597206436079742300147519760212509528811935377545290481064008731327275812500685128642575689530850745338840137102439543689335113540123598000714846337235426685038123742496655548913726951669135483359206031921107755366938502142284243242198656849812220523301888489401379060980908569812593441362804798801129603059605866212908715460179250365148757060157978539910767298062856356144272619970843228474965417631796878339815975339510451609202234736501978597517836807988833576823398452071386432778197791547574675213927280091734441694559838607499536367881571199710239554730577240705381680277629140297948055038100890627966581224552444701197596995293213246421449583313040652610388786773062920088066384168618811420604381874540960806121720718066241189407677187890484801244008689249529311865673058935894627464330303043784957307587221205482040817164163296495218705203344932319897900188404857831021150068690030267365358573387746408430017034620154824297415744859930718468598474907621819821992932737693098257087737942541320212738004224661222762471507203660452377171721980641963235433403280271984999990707181809404609330068645064777177578206787894500842149227412677450715130325668814168304058203863952383415069447193724716796096478429400973524372660664064323752744623662496958876165142519380053460787116820362533932367779894944335116275563622259738377873581881210750229125740013130503429240517356872157512976129804469779679106431951023822724971331436747518050279863011788218015532832341755466517440954101305039665104231752728892962277042742295487958315922052183991592897346048247456167897622417366438248639265515749736321204541895961542727223532524296946324685722172663375208584482869304814980191009759423336053120619575880170071537842058221425082487320627241397686757731417316680357168934517579467651154412073433256360471688937993931673010567573751989790247197150730487374520323254893160701461802916459076197166204928259132223154782487952380433903752224112819856958642533278368136516176236944353252507775321769978470711670886196123020048417699766234123371560456015607779018477966734492665110289588846514684616472879160110451114074668835096330093315320405370479710711729605428584953896344398897542571165656377999184146876471744014741758085792894536955952073686325052351320553157192979714798149254144452809082132812447201106221019995001849000341469215282838002663360389721614857934036044953126823120056778648367425604021029880687131716570637300901173949643584185495675329453708256013569853699698251961232236216340774101209780940581110791128895157255413405006095766740451676991699150326390096805370889193419359704006139334595041385873011488382197771457758751661007907673610863021590545196660511987890354855444733038507872883603309669229570844462291671330442648543617909578648250739704095782164227614999423911276693801963954466624595288555784672392497966840046742438602194017475957913388767325605289968943344671051187633061092147657074002252229934785045415094175496496098618033006683040738684656581142378122892389119100479471504966450761232185713979538402739934923894217314326691616202316082680189022118406804238652653128519432140289337121964874441747551100480194327188684730143148469599116818116561406574300062231693005031854009064370636923694595733591702919070061438808083688074560725251906661785646303809971342548945939554203451596627800068855392827293398127288925456545404605341793690754687374844903504250059108478129113102528262855299286674797306849514848527985657911096194838523930807081536874820098508367613990414848230506697095678461771073903751641439333241485147296128043385130282643687120120688551766993816701582972675434459255112838218194898151655978147137429837126185516408821831201588723900836512937878263485078493442052845837607820933459024756422489198573957224018979425737027645329818781504159712271453626411141945936018300568689169125628846080150908267309526443415643457517935835759220958414100297619553991500192336633902182169351240477582230652581473464306635411741781912327387323646807097361164376281986812072514188987675162023960528513249999420870126603875974574892011964101936032160536162120114152126307660831860464447573971400814336287429656089910381688608715942135856105901029819295524284606143665600701653784155578087777369510601480489635519295400532321102189528994765029974463182366879224185505724551447526477259208398914511323443254757310721471067294678782506249581813678566389403787307194859938047414505784544599248692760803591214146086663156313137236206821804723983512040283747591710351048024198443771253005025027351232791343683074908515560167213994443369323475957671346599985750887982965986821771333626857904347906782558059023064608685921376735989794070986534483243205127968322430870817849472678739238315132024085730630252154080086030037761171352381663715113739892929006739519733304285134288173540855437941780046480960059864798696416973915254188013315414698933860161235061606632699274721589252263472986953048559103657036337916587702558313684898144458210746586127526023339472898678373256935922027899717133676385377852858896235021845415934815685874010971729717333700782160022029957568434137927592826301866898414562776828148926354888790147737970392941422312013228164792995749316294969946391114651008989594692961571975551943973065567597505316352625780050080372153731483214863761414592768889952817040532984914855225933424028054576672022891409100685443908710217163310025925681293473960011843000171775584281012356162677219685883526166104139673236558404705285017188898199537812878378746595739235314504314313502888799888614758650065096815651070588692057095350207578460779026081452596974428883448175215037963135045492209671265587130289754566984351901155478494411893624211333871840914427137323881541398812016385731000117896425478098143747670433270066334853166105291866381989356478199301011958917252138032143978532952424681660012894781771465064485016593950201813033440566423943477945966529203607161666291569267451132692342026431727318137681861331715772025541617750393439291091702238582549986772956157457427924970485075832973026299256972604651495839802960622346469081453237089763505640684303512924321180221604700209651478253952795063834515288095564464101073866609864151779590562017908342220264428264265247136903057812070321950061188749655372041477002288426494299455117409881286888382780441027343477687596525868882294391382942834774302103191612659356817239381216713540497825746138816867772626965046701640777720051176938990856873248405071086807607049057393126671485545653875548242227054934001028885110415899344131632665412550995678100908047396676009432660695761823900096862092672517252217454020938464972741773150742771614108006004725479992113092345031335977288775350050027185719938410269259551627738076250480062200502516428552509420338886762574679041954016133652286216589256331554644721727490033090537957786484651263130887183442711408163908267500947743053205730890823750024947167202195901793115490390054455958503279409750806850445291756476467298315718040755413514708722712258378189817986297136895626833693028667526718771685872286317663114754129742173827664604504849303865059785970626903243226898343368527613916727456614512522094133802547545462113267755060340237798977523191378295845415062914476402990072980397432448572927155996244422581155147320226557237826044578173951484117587385927883271682375636368549000817965565987931292041749041130762080931824722419205774159254446568994495155214242347040975443661186347594798452720668026326816331441504771863316182894467018553659248901178360999598841916693563418598814532231922380573450157161985032157415090568438058114746705503588112324518411192264393288804864729127585710332004703546709574852935271235767258172441618342818169182103324758184867806483981029490695878679889513781425757093005804731728586321185396045313717328116138498895760239199199677491112658247082996125931326851559894716768222357822115484135874211420573643127640761087942401771275664732074562793183300059805716473380486148842412513531035563298232722966331058856016345919866795499869562871943100446482463189909293877097780356167078488106112248643873847025385499213071336480096276373995047178941782382366029914986966673238387362893752462884150351174662806401360517503024582727705495479941023446196557367899840810417130955227089806005168999425161676450138833432245072006011285892233435030345746079245311153347921810386606989734923653830385590759549736189940936100238856092120387629855061695996447166058693902921173774249655113723348925771427942042879423338945733014320517709942739861351190541997700613113416345044780802589735672801274345413695283886732231047125335410990624006363247510079075982215338813837569884564849083691023206464677737317540503002016655120999614436617721147205826709538094411272996408697490181528347822127798462538516262921316948314043170545012544812595202665130595800243733503490819896006949249482028399483426173031667911323776069889680067093251029718645054370415625065109824973959130568635964799105734289916383554745314394483762190469605573273440396272905985431985769208321713559325593930732843360031935183110674344018068436195096318693401538411646993507133093867276175377928810074979264375780812985804800510780005593046186059571337164890047847180142128712875473261866332861194971271829721603330837564164016203275356704581724660821413595270447415493901012321523488156918475421734152972280830850933580882539234270411760380343045868152728810216286696936887561802647600540102522375444073777429959337003720164004843113860307398600554560261742634992051450345806404318789847930419325182584310900392248328317711708822361772482803526827749412830698291686190119550478373914992836280803276542043434492678481776157522729966540690711660645887805789254144078192427620404069920866236946701589719065032574247850051144841595055531426463496058969674579809765876040217051456666499081672849097235114629797726489653755722721143615110905337240674075842526821563939490127030127988277689848839976117066252804137551387952369409881662079562092784431642345453606087881666899576252374037662192099694536663830764830050203605126605014009028312585672788757673216092920007080116685501194041818357475785158425227136260880893157577338336130898892737667062454896848974087463976584426269112160691856487260920474296426562407281789572791410662783670967843354981341667287513407830937554755807488249517228318174006866945171863062134658733486771180698193144953014889892522377155746085706160817915332827848657467498533433703784547048792291525583992356603714954650823011828819824744814642617202517425553220190213123383844892865539821162426181917503715127571471818744290789583872322713165954477547420391439851397416705468556390741525671077996934329888700292901845201126092256889857951507783389103879322870321802813616809862442099546718458401817270194201296861379790279551162208795402379548139974547210270682396509526842165637564494508685026925362780565175221266610740697761631257355847642441695171203569358607541472181398119811801408481326068446687163395311694010759592558173961033798045841011612366292047121408703505075872073833119591107519722787538704719918157335662117717448971805961846875439403635462291064179502086089852063184601136614642812821600340972290918873566025428335505601223861642092835609442871367147432364121418272945942126784691343993204665050929500045233612737828486856591592824387843395638010702093077899052668686996810903595179378709803026717346354766909436456211481413089078876756049587826998501022475084517156190299080148781945714694154084782993056322347641226939580401610684391922304457864282790584615485392512903706599089387423902928573805506796315550994732792225009627566419371344495042502243535492313553946207334597517504102349201992901751179548599380406075519769787398973443402268002533227123409978788756201805314138836935340848906691681101996751137063595475409794591637831282107755186568627333066715416714505460733317327382127883031080470033505727806114092475102214969793157365587130430524888614089853129034998610898495426960646760921018833497778534540201746336813737985929286000653601753064351850687707703027551474514569248591265402267776836119922937741383556039574681391040447668157241534122915823204120098365660172537022267054919634067918246379902538769078485817431663975443854946126941526332516166479681531762742123521202085396723772807336154062809272158955122460670911037204752282092230910002890333877353095232894498005323980714368646248467755651530649028538705326350362628179665200759543931214042956135591664049179960830153041383012191795256268098422035925654969830324268224160948215095812367151594646986760091821344735888014951854590215720721625215389547777584044495412705843521800652412523160589434392021689095345741862972027519637073641707195759005838017543033543177926182611481848493463601532260934909353654683447838681878672132559331192588130601494869272182616972613195308901785263168258858873806146624008635454925509651914083365390520332580389430422022108721475916218479645553254476771047137747272154557316643411772302688393141092866549560053932032552331104718020925964566293140709731803100097429249023938912133706329229521226640859512286096138771538268862113363464317379339139023204036102163454384456567863055031517549452021505298299923106429711669086534317801922102316040442250574721232169500276110342261129940062508966727317965108751500817721185757636024700497124895637483171344121128005251900666468739994440920084366237631658130831088164976836057939963767253230948098650668408925388895083603402751884807159357289763596498672560464318625535727547231325435380835914656266716807444576341818792338351446834751750382815035826317561826241046298933269527301141280184736657278293262469398162593094656598270008317677076372249820453595578129727257459196275064171608740149843034553059862239955276006242409377634612714968499485368525767321986008453789537539854224910275995408005127400299969225240578420069960404502818984189121059770439281499938982866738553721503540938424739266177951197866461033702685572461121737513570102532372341710085926486705576144252738419034147224801281365777894658737771251761492161814130639728458242581128430293843138225260162499122190854312402552888399215952472337404436208525406157257212593113232941441563610948259821826662147303185733470789011794881343867368189700541664226605529798915592505924155563296180808489465270806273649670282261451383696321852059003680764680834896150215035719394300824338334046529689513371276171410142003050929007029699485465562066008780638192759369607426110820698578461753542736435039075251109212740803544594443280489139946853319980706798041992535279359765024263770104793365183142922969283861671299400715896750472394563792175864998698628745822128493701516123302625870411755188183712382785330644130437870119985757849101546948553937833424525165344908974815491476334551364482118162370112665820176497068805441863902016553426652964171423387023541858379247536439998595823030910677386800632325301405227480889362350336428188561571981073514049969328251064671305906972517052534314564541087277472199378199518205898010400805500360329322648898866129484457382324824707219907829166136174617502917109129122216860168413610763805171713310769012644504267212975853872169795057746494123153171151618619880237273233671485503931829602844173057545927589108037558517516919473839949824933169137154328887865563885956765361277744983158851554568635842907980107065558223172550644813604699254266730311706972802872099877031557569177638835658685958396477575169046227732624595026229924403068264535158422159923704830172784452546813495048570546681052052986198538012340204904028029576042969556762311426740890180616234296307363466762742468456227225676069824653319315790280365476099854711084653939538510150023230993248306470404514018558796737217669137037299416063001609204142897243257663494001955893326396099472281620062777442939392812787891150168350561528495601236226491667975445244407469611554906518823392125672003386597897530821980644034978630128804410815566069556550119146140120839059731351067858096890072160826996693721694580265331379355582260007082178153641329156918377391600421968148813664308845903811741099645369764434469467735405297404996695338362556453817098537092229038285274393615825320416461597194999340183386030328895967722040177903111235043962874811601315192783083159052729741324603270439377285197234823620568525335886177155981284706430536155160432436092108705751670769033016815960717354451818352376921946608450216316120496531240649940778659559034442349277796799244079778774285743575659485171012276728590611164999291536860789184931367728137997335173406217072683080380609208349420682030856228976406149429379561821327797998437388636932367026339245018501443033295839237395063725079943514893886309523786079743132739154834957676598543709276061810744360300360973971324786443646907261154941141029759661306963959295649127707642754598588274866568724706157272171414667827279881329529501765117569982205275238325591893801598175747837474074896751496633034174256858914243239693789061809780246483350921626455292575667114346599521550519242483424457147526479748032210605113047320582002345404980153992159040066548558393974163073127037081995912378841720697913411116672650094911350601166733365632049841137856446356397083182589578112878649350479620372473209806013017231768086360388077118479789047523823551051254524309204440394577244874616531629538074744076558499944444246137016584277319091537486640956081306464538218619346967462709864354894578470255853186256923028052287369981362681988116370955609979270600060586341061243613095323832609123876954827248755289283588443777219307220220710293452783647094468175789008712298476177303657678313185568768114171618272115284040845324166331506231823937824367219273876521420361918456729668609121069572203588824252615310850122670401503944566590024724499178559035956811928180115096113275331563143959604762730931507585762270396265536855570778653797725613351840101236576270253804615697368582423854339039661840168782646846765368471942466029476215871346160879766934156001228838055887842363098262746655798488125484438484122027073796767177457577514784850541185507403085037810025254063879507748883533478381683341620781917214621432093539781068788465577978946697060585476689302060845440395119637781483132359083406595151258481777371352680932166924069033181344902749448016344376446483526413709189235867401582559291906144281446250088256503593897561754518775107080478729764195494722335301459188347138760062802421657104694049396239612399185394777002284671283830982910020225756897623284205775229843929463163227580675711352143345434623099891581772669895532886815221077599811896979997436016343180697208723393646632912626774305093580979677780861150739317132754141955962960583323593093488137320178481650041166631711340395577931086457380177151659875032409779731136146870420709668112814331877821768892505172013093597582431834642188963626042608523908612561254230702678445449590856174044234131055871240933232635949585509720111476406716090500242580719325014365951246881120771922285867284778917465302419507608833291460313381054672469893995149007315572809174064640207263526856672536157079659705468051292538469992259270314623177980739063815530932897150619131493439317173797335120388994060576869814992772321011547473542511390723990158470400827685717517747951960724702638854603609997072496384559825705264205660675033530571549777818390152502862538550832648623230353400847043211787500029785283454115131928500736432338099394074844653516787595401302808932620442272446973561259892179439779490860817907290574352511661798534977257888570421537846911425496490525297486918163512530256734623810667160275770331965611252145725149639446327587899165274137268547370630958733778784984634762775244959367506928634741749775350172245088850715402341141593878082087962986641500439506444536983865930824066396763045315973885933107039444856673571825579805440804648553579224039657272897655370333133037596586529971867110746399795118435679072440342244130251341052101837792375458733374512673674469738366025825125375515136926143670756206630315141747913298406135244786470161754849139491912723395936751493975794525076726727915704030638367010739072819269066945786311713469084012376337944538861989370066712595211092349840617597433379754784625315923264140027904996719992498767791294225151728832205805642980672222251451577313116791181545419264824686584194633411580999255666822531321158403786902225196896421597098956279096527562709307289003237473026778661168548831436624216174385870733502848966197968757950706729876943899711161952582716790494139902441736860269615960981281989410750865939420522062309830614492874199190186057758750287523328210017569050316809744266402924141924258644956317672240489992516751406981223458363641848289707691494660008768901861525081426676443682927325792700571422261990751154759083094011862608714951734383160460881722940332975798249160330116587695420466458384945743266290514837884745018274001574810390166321390524852868481376650130720101951927236740202679679194015700163632796276989940762502058999479840197907995507109350684919196372267093116221429501143171809735609033082994814471236747705731394336613371799406171950066268158087218121411013413377973383564629112945590683153385240733424142194434922821442704389336610198878554792763237909409512568176399959344785212462947839428504185200276329067595149214828511195153504851237982488396939500354593585785721892917973834419052428974927897129859148456061085149208483803740010133799169917419655193955425228644856629481315149444379135924747671117093243839687222865132075689563569144378634840084425718314637797441239144085374498460974344083151706423660468623484892278176289843733368746898940526054191610221999816100914048835085511905330268369755070908666853069017348377509056816534067895257094442362264019443016514021435180464071040961100598716616676261124646345702705496577187698284722078608449932891911212106872046810054597770122798556263202782418154223111098995027761989367179648960023254728099891858975719162908135978619224916121429096815512719729999628411066059132832005660511037936277081423259670783085371126420600928123001493764730967557533549064603801661020653010485116685525668305022940813993641650512484183438409802521500772370785546642941663479629687520710302264189757847508761088299996577293229234726672338317494034809584808197054283060018410240862437056473870172267598976000989970804413983676680719215083261821927707814574234965653229946977949275619124714694700055249126439660316055622730215144890792297869110660570833620325425373691585906538424059100629709347751226063207786605059015347255521461413658190606198770238485537248005172796621600914682978537322771682444398725054175285255996834038443916642760211582537832200175038416212129014016564430747594901080646338038449747800440660927812482617998429537365307859334582405421761448479499622716144692334799647233933117891321844484398177028459873797785454574090800186242121300841564597870829717075202394134444706185157805376263901149610838276648092055219999140969186961588463720985671838369329669788164897024518729646784584621963407569597047744818572739123859913394230095140665735885654796629005964011298020503094828109049739758455528157063556497017784430512610986190790524639336220077973485805744690464599934443958083748732562635075662386010930378260991487655960035873230885985134306302806088453028821031768299328405030943846880053547057164055364101165957721766976254543462610750656146696571860130852429601065153195435218662189139692107695273332131189142022389092351803562249384387372061804288251495881234110341390603504444490946878023441358325821541534732208911408856756330949854509852384923861202009806946829314807263877218793906290659760274487128231014893409815333634935867999980594815137429576996878330490220666571250480763138620440144782215114834719475770803961366586534268099914861076511092344756877543313587179995172342724022774378302685007573799518439458531247894858004444216990894640599327371170860646474110287383034912674252127452467196029826332147773324659911007653701721531131928301338984062582802326413568281479701761026949036504988188535804137257918324164887289849893309930894329205417842433085435326179921868537347568130873257204110414187790337119612181075155607037357744427040874202983526185443830152363185925751589450200080781957314257031662550579750923219634825093132130429310985522671014096450580321976030169773167593780369015387239981581825866065867570161204101393993149718372805328083138761945868190256915940687771457635950941866320243400702189511899057552118708243645813087480891649315204231330856141244605787559758935025498742754516547307068335527828243740407546705096400200805065030539790585104351535678605957368071699366316061073549688961471882574291722330079871167735596447873448039186316673141771812731503496587727063085180388296418373487183861392084002177025193065541259779114752054406631876268593902308744002490570465838666222558041371209671699989174914883603114945760744815446965991376858566274804572070980157082862297541452263798450069719853095417639438736057997649626895995406973716058141751290960985836735180775070670035154613995109779476702892782948333009312019122303440030127522228754075673160881573756910774419540068372662694346992143021423946773826541937771321779580572996951402211293544291854302428478837454248730330221662057992724604160947465609596718768935614233073757466617839330807266971432348037648856171184901767160630385193374258828714742281906069404967040719477480914758625675063736943032553895558617650511160037842614526601443532363765110033334435252695009601786969819573372819542832308394546206130526435289678414729650357156609955640258966745096078332425339111879629220681476993971987437004053473351721968125620982307831498515652340708552318252131688145353883752134840855487705037731924592942316976835183375651118362291206985383028388240091912488747303765798484823044505013772767111226424118247068040077783143995362762982886217049532519814978961490468673927884964725003533058555055064140432230670544310989277421453628677532099166725107759624221370982943595815884454660814153044640579462239780477488325309283213163046551464107949699165510963703858794950008147010407626298433449651694716174054352826391537535815645590547843901187549952214220813932961270951295445813231748281598440492230489877260075504547583276029667315211340875066986106902673393491251206280782482757117175400899740444664541102464756420292560449011360601480014803450598048955683200715416393881713579554651441188023407193302014631593771036157286828797898379361142540804881183781520509267352855054875749341437852489115295353493458178926056789267833823812343293454360914884510798158927180583439702677038882006697973148391196766197499735934240722552316997877828085758611410507495825874231784231539613895581668468253925667022310655828073650789905973041460973033446084961720378146642706331129657747144232109038578856762726712170394950543941901298625651437567552747603093591993323258598232634316426950554186075204889389142844883804132402758364676352961209081088069541051599375671270056049140274114693087455712276737011540206113909419655708672661883824557275876285198288150016472516083326451758132712140604421114553425781144596681589664924898262903578807722179979617822130946863296596473159491365978384476051078780406085305236398004424224077488600949874329371121589589271513052393185901729358313745796542791388588864670197205077476228057351908615226896507675098888745736675886949273603013387799841596431012511571538883676138882678730062483794821497189078418958471079033259224256889089892119468011853006117238118164797713901290189647497560412796253089807221747557277981322507073346096943000761702067474759768029479198776625229408503290559893820973753450008187073446182726316397551771731010640074260387403907308936274269744660813204931496929334647184014623353555695148173580534748462089780282923395445428836059165053757054887699169472441697798726080865109221685015386320258512435191491434673712214831694898834641663662886905680459214985609680627156503467085178220753092860559958722853039958506615707774986683744317299824296614972660873791266123505127928417210149898465104992976799583486583341827333636298238225307579578072966360165874661483942492483188319116232504101062423109799117861861482886330493753499825915040184309594857311341025288536125190038262766523537898531940391611410660250135761123828690623794076316377377093025237909378408939913990275501868779207747553322494635712006153001083907563043268053154932814113984376547489031030469113497468654206701718239973236987687300235509859380766815505732386081744725363312243880382058774733834759032628977937237380419162948763496054311436160836174736523603096566224549643518670191203404440344401006905655943348850901722777605705506740869457091426886010764545203621525189095870812621137535275342169522975228787767887923007792841225976866623457655201336854102813732794014186663550295452920283614844297297006724393336684859613536260189728120523613890117429415061153763644358460253597524357011592257118022528681208346407238832180118476059084535560533163748703313240124009184872981161798767166123451534193377549858948835413246020769059371206316219507877142136725227834329774315727081001042037939915483422140929799801677011951238507695525465060232393391759107005626747144900447170540396488219157293113756537786674083766670618531081113199779084226230035782293085658034557346735488953021253795745634152424852869908757438264381692733573501071557299856590303650040870788860242810761468710883228390351497258207834360893940166086582319565017513133568729058356883373061763442103695144062429604735305159708157288537370252593083991410508727434346515495727831431220649274353260211710182433842551388419488722799840563254378645363564615861380428305709868196766045632282007408962142991653826656803166257251463575719654929323284485744521454584004005757284632037539145522438159145764354111636243603499527401677310892967988080257070755359241982864537005322988758510014901845490384090161221363698830364175077829969247046026449419025164447001992476479682238683318405375808551445918878799057460630299118964618661447980631199609016225624542616472470059585042024881485010729674759930530998058755951024097469458979400892334862283940341155170373331389183496105249373051262701591977592116713999132600523302561073110006814594761538621604565114353881040589709403938469061022916055832691945493299286965933514281559665526694550413130517785890725293381340159960900242795787536139192269683631014643425479214392136798723217432668483413984776042333021217281343273605537113279180962032802603760065705785920519142975350522408732071955182313043658428903675293081981632489220537104179847198676008712356576455859302663455592230136179675591441987502150506401488234811214553030293175084785573488020842695314521197144239833921516271297423763708350768890949294547264217228009676371567506137565835100382835363394500584101973744217957534706095409012654457308753306295764232789108655603390097713966606751825541089253066206527213784915236069462754843548909347052612528018651094805472322459007259886222759872441240304581486649825734832490284402953781649213508480545037633575329214284637988284703195356331794495419634306236863327832689066977664724840181432164059167484878439842475459514220405687406465250839824092673727360153762919801420988795501090617360776344820284475800402529555488782895814852175022912468472473829604159940850688825746799257452219538275525924881411582040703168913452632904988791335307936282660000512873962241755722197582460694697948670748883875416765240533399428287440865950396409708976435478364426120621626279248983763693425709466482029570976212124286845315767110419185039215633024180845873981996270000896850866432975433772186089203713143227372365374019414007903971883717004224921988963674262839721056486843405684769496220161264954708026934909537448223543291198592255552803166475611738750595241108841708855741531609084627387565413059697100221535667908847696221262356700680443525426911054403444054570955408924745290500170252705087208283023145716716694580682722357443984380667193044459829314684430367353776363997372986854904373241244331344880357407568437534885841497850235041429178825910604046235467502812889209441176272738940704833611849674566033060431789805547716172529656269691850083968976663883371344635436448208294464517821985836373781458638561237520312430019236740058586115795975767519925735804397680578425446410052371144891321089349716064800766271974308675301869626251973858893615764719524260918358897897668412804112778957906603769778530820223322347162388665110209723816144786121804466949750936666998030196436065319625721807437581289780505475172004581008245696395412962344060098053175866199821241114035451456845268380405461830105343980760878397338941696134219841690445452954476968728427119142210069849188985091158841260808723596869588812627389510509503230844853562195524584114995587637851606815501160384755500659512188705039943405872198164652707008407945526196027664997770519499289310414829301766526065914026461707834805862067163830292540380702164379633336122635033689929998607832788428489498059829655711844175936293878660005039338664971253434076593737708513843444788905111376491139267581987653781357739146558512567301986794337981698491124821414366548521556473860741437500490580513282718620176980279284234149082212999989320858336919369706545717291864646719056428415179954332216446259494680617668558600285261076329355139170396599202357362492393476800897857137223399581764253568911452310395725971987860013758086267834922294303550304100483939605105754117889115381743893988965366597818858542793811702722548807688007014367322263225512441912406235460365349255925639006160558054907180036666437253184873217123304554168505765906859411207020873397272888910324850505090415999691600379274502976659598464327848442682058730998352144968991885036687134229079578611212204111609446386331932907191598878765803208132878366960646377408873018878191035737180009119692325908080225230922283678919501512212239779739260040949020953982258033024082864994022557293829507789285969222225389699286037279736498363617452044628689548827002486473339413036385741255878633803502475564376105731293012680406715335651003937781158879199274060575345262023048830502998161192293014755271921115748133683724472564148729309400122210456487973345519105788466334106463258390172973590457807012110603099793993568747086489781922882681257799928054525319162466625003528781600445474675096300013103025278875570232581382576609281508484661339030434822942045094431429705759410143584720852921645463008545118307902144586584796952616522662739010746382505781372929082038811829962209779651963476439021049639224146295800083572246324179375072756427868904821869258118539183323101736079395481546553373273433433945434943787152932805222487702469958128602782950594062886853228640440568203611529146602095062246278774584057416974977514532282066513435984994102052960567125343099855892192757201507186356898782418950737571669995652933555966593722504112382093953793521218066190729014022422987110914946043315095815990694326690522542370818154150640891706703002155647929602123557193429623168656842440713707789400944209596648018641342206238558262830457472952569456357024544785977923674201442492448206986534029034999779059846494533571361805589271203902983128510588559441200758900891418616338313381010795634581095432297187418059345552624404028124267536062828700250394567282720962869920610965180721610524511803978737481105893012703958130992512846070793808907274947675045688222260348305573649532393503557304248024663461215325819574330829388739877595505467632157921880396551135914153996447961996873612756244911270555408546796433326562280094211552495574025687345918756600491081650957214700531181437433345710277266458229077204237170300376852418700013267552775285218448757375760714227924181262739374494867687487320170030042248442444379796848662420141222312139405061630761304694750228001085082807245568809860001548353192620680630789762596122178413429078969826787310628891690416300238550013548899410517218180881543788092722630555788252854356414833771278100799544823202759638241638694483390924222473314647877022994498092702175531204874372270413104984692016625901474330062337369866295728689595834641737508819870183537216680019981115199974533290823750344304957488534899257471865265461315633954374331410190562282309167726732525269165527917497936005790604969413995263614541164857412153826831393817873594942918608439782696574165549994771474606902165149047849545012726953186253605962923273996228724166668051074906772445420549265203035542826133088466516063125103997557405310905633194244986092314431404747205053553692824895364873667653481112676281688476951756828531451967665914533097151114605740235446922761941220865088916091637708569797558477096487398214992636675250830428004411587831300220116267869901175948185331015980254366634332565824997317104095185983624729354919951283043858809497207600648212349273721708745561915681183980539963820432420497515221612214380237375198845456194334497131982507281216197035134219560459671121804474912996285225071133557904222594956748012843194646476426773509664339092127058083137938282012906283630427291836855388567621904986462383886636983077149501881927546345648521982747188904764574097938531178142124824339326399147721357553579382591420508128975365284192250281797708790331580284533391388858130944295131254701257318924271804708763752707564413211101148795445195598664582602908939840729205969008336495764330047763979024106084148053588847966979691839397993011120390988235665422640715344162947958253144591613098476984671815977750489580520429726843421993626866178648206815996769930476187879222666687068734289206589437633203602662684778727872033867842763283745981381013483108145346791278278525932302969705406919605118175748822006659506162504707241699408495647423277868988087696643305662959845743132754969579683658413380111024531892137492649816175746258811007038937984161758017191998915007460300391961620720782970207192931320627627770910224116294155204905562298474622985074311139198082982748153014387841064992662428911487546957344436105750290852396679780872590936819903008468815259035237103104435029109329599586008286540009532207845060408432475634061260317570288716669069330517232511284050317275223555906658008353801775593408640552337281218609164374537648879357365746394455393088383832041002578141452739968488154130477132130603170370816941979110502413437775121605027426350374819027901128604458592310340210966303020333747542978222896269257113311599555551119204521155650117278152794913618007625066175607170431467136433637185007584791113147769685768362942192083325143706862742517865943509491840684168873257439332880359377472916513086375851989383060820688392468882789792707067681361144287241061779266456034498531043970104313440219553688630608795443488098970384390804097178559846359106659823126399890612632832633155737462909451999261679946034547092838496802031783893039001443118327990332688969007318860385789204628079242056446238537295933466274528225714990288337921920397824220460825118479393042054479381683204118253021030421205823589221802432360279190743645179225952594377283261822409562848411198883103693885949079136417135863472899989822792742427383410701322543279867271209182313453624119369743412424032653343845997557822423241981424277818035165985405311091513884106660992137869629239409779322194518090478970326316912290972100956306845083536760564392939654816553306835738926227173860812828732221147894568778868603897534082699710046372473531840133833987296876666687666905288522943659611217889007352053006422434324060814507171489799654396220958834046468750308259040520956502769126881789741871828204988296445311692105769129820495299013502403156710132680931686325640425819104168594456230200221696995479713552737136011606650716045965715904610557953039072887296423723139143774232591394305072395089631665073061102000129755300235946551986282373443027296281324348958604743508423086882941389611031867812770505893523099170193691572704858435380010827719072216999230112935426667539226603979921308996969081755420563326290480780393118327319346507123389584420487968772307137273072612234624962379508869312228193435977133353020285854488329276433881300277850070216899819070880163865915899396697781202463573800682835331319303365814405349141700113931915770054591742011941527830576223167030206167097149113851172466291633354532490523860894695053915843970253294663188477609357260891844366488358137477861872456269321436995868395089250894731099145415386963141457750383820324546908975020521249083483298657703983547358354332751296914421981899485159078562562190543636207788741017562196435733947085146583188635092739077377335047366738597816894459450816902548834081027368320141489065380308695076922280234290138966358644725543504839328758343665565540645124153018738119813439974862622995272401932853788991168987851958554360590446104969620105694755692962782448606888251152656393290231207814066709403944577430319722093984392005637953610708509666537134481886275912223727793011333199275906892238769912061840721280721331335306933168835132556298785335499388397460700379616397593306135976319964195390263894897283395204959174132159268941204968883308674906256049472156170741017578849049381986534686857751862822430814860128633254183508112539348391492633920320442721370441547096709775859058834848121427481900903739077603296729890891735996680107244567476202537361337603168140939172028466767964384091236622965202228920596723833997761765575768267931179981699040238415371665395131962762849861667780507366694541840338556639521572845559455097582838838527011272346652195616566667856774128201162929989561684151928224332790567376956642565588347425822092335559825762256742239202387256215297248321685838370790090187787218812625720722751869769038676965204844337344079518371835813341860786693355095079933329092708485293056145766574730114678834210255574098293653638293874826894067264928813804133999567101474217588505561024432188677493162241856752976865460227305818959950227937546082095546268326869660839038671541232551580685177859836543750530628241317085979626351523748873955226020881772079612379531166536586256815871548656883207427143125885670875534781879468772658482914482311162433829325255385639638924682398270701373481894851569598014819720214753640559691654939413535821953800273766728417905608062744158595103611897666262976564818167670186294572728848577607234600620855501064539752220711015151321813962614975810604586939793596753806944138226774825849782997562720421512632434479387177145450331986161068955706176586324380656510867056607568101217941513069243971702862785665662158501803709320926969416097348093749136653079349122542621372424794831270126850346045767495230558012046037986143295640850587677861699182699287326052534780759094493386441742432990711351096372195307531736184538940598911089098894193030318469629572430452935371863844414871072801018957981695253383307977789808966189365387637743794558355081521136517968072017386593525389287181746603632633180339661042074936223043016421434254265975043429974108575968739596235225442163800688972022969152164575501807567104470276966892389576298043849089213195197349600193524929567560265614629177629080552072745641587457218996816959222200795528645492307118425411614573637976409378597997707682423445878950800992965130100205549792649081669046356214679988566598703817942275318992815942870332011454502890132176243368759829233709568237627321206201559548047566177873546733964722526288694854001039532225130105214855089699173202717375707452286320236913318252394484875874587400828271672003777646505142047251701258486774493301551668948108763062679238323952254784624732192412750343336784140788155248876228641817388332348344891134222060812344658967017334379948011422259365623635811148899836578289899510708654508751448087973212945385878489390149059527027274522487835254310271638236172624954007098873776336186307469134106768930257753250833948584797746783146540741989558752895247932882436079947027329599403978533074643065071069623003126919795360243439130904776619728292913731862066118674546769104737947532835222775822370232972745044128383860027117131024103976033998216690517124596171378010862863859150264397249128457849233124689344393187772116756338970971224187987900713053585971914754057386792292356838186452716950790379647687439995580036138868162814204052477846065401112137618356516928999213489256405830491866822375939131307272587028972265277398298591226545961865003378661625648927345161548288071991466675558225685007222557306940453640982841173095201980200911199970254987197186890446908320026413873828373300324879149073593796394370579808096459994001740191635306919417578898581908220234943877188132471068837655620080215610178250666532929448725700762549316067146668576725958317057837162659616675275717387987933304695511100448659460211768624912951329721120200051796025748247212089483058130709714965760329834041220039007211309464669441600005143580785806186158402624214379825537654698018015443509879739881669241872739037438527352803720824593751902257162372586601775424241593284728339962612978384490703883802453788777658641201427570967816046611822004537742176140119023993387304733760966206498980582322163799818591453358489422928903821918534037110951491506079447926920636644954983780463451248247566755812663415416831688255053673313313258623328607069814788877617054427128889534344368278753244852040611330550235745529946615311901123553568837288902863020082836568245721059351128748181129382857117692631128563098230500187157059254720267054892697934325492912161269081558162649974279005673614896871291135198268296660330332599597781875540929141623693810307025099356346707727550689074679420837445817999899304091104000681930013066749407486282633230158674315626886958327537161516453915698309934872429270876343271927329711892730929692890363243422170196068260979225856969322087453485179858084715356788715837612196194337549951727789559884386324709790213454573122711296444079652898909685769389620734842018468526129703100686947649336990800360918076586786064294852142129638343795983467678115726789672743980395409711982925858595054317706237845383817424444793632587386551041149275880434978263251481599765205498145776555484662917807044991716109504049523775120636847359070097198320496740193661105992523948203410727215651912749195577963629800110822495620433621841266283750345129201418422069331570656730258745419351100699410792534554555189599633745113726451256146190513861866595071119930968803723511797849588422167636715292313606002775530447665216223746310259162089283433834680780610839773466574998054758479968830618011863033333703219314067995190960348606664931280515121121089421717133223396432233880713275829780950469951119368885399317446776068378273452338482686877873095152289560720254034471359578675954473329292126390739372394513940610769354658624975405692456001103213791834272963590146714691989951474963397883382947080207437880041871046098572018602784803810465625871746776875492739938261243491264118473814207042071909568984466324656967534542165806120020562730843788306598225106691487631565901400443984691580296602500297843680954872533356747761538343650348980700790985795347438475892623903476935612143290614070864117596932806153425003054588186163985605037205625646170616538947145917025594706176868074841346025850316593015194013082396432013438193386490660350562659912908133264367062778135593546645749346866032279942903395240149216687901498441294018447438535550889653920575153582614884005271972676662444079644060801877006182633223075037595353138968744144865793452704240234763703054689816263725250019338639373740172623857122512572773525978803466749818918400119203109689585245818774835568912411470749065006015258491912985397553754631488764964975254946738006895965643766385318446780168081219173610807827331311810682495412831659021655490085296442710384546439825485466733330561157918943975822539628356979107309510630248328916382459679373698855399445180755423049377230245583209545511689106794720199721312692068070896276885077871862884606868690482224716760831296671298160859294133842668358441516748221072825997651951781583529250535678459805489010792087721423621551640059588693910894165721977244672429404829578453502112452950927987942992935951284129566562530195570397612020626052121699887269486467036854765004249788331219680756149145674299472541533883588247136125799557701780634856717186887748848729516918053951475947816674241903529595327065517108830775358082858940406784776113702029519587281695783604359483269108452547278731108185244399294918448108483747605158642051733231691175426135278134553190542275953328077028159593543062048812469067430772723717649502640513085887269560196032341149206141074511062378079957234112993683243644530282648103868025632676477862369339122739945974569369614654011322554143553443368662570131571937688776490824155704150449400736486147320301217418290409165927158595595837087947122266564352139869967102558798912851549973163248212304725639525256900103304661882602215808719273587364757901783334905010667340780098318462319913649652085508798133025478816919906125980861910820560508865675617356430942364973219596830770485208355171903633333154469525182403844751838352955171077017014542305221114284820761522717185953447582708812312223938235207716476398426089936756090197086575551657847829880217264551902066839925567660576707901487507026201035075914586648771500281224717846989810520929555946223918029264939877645228973636680695148585326736616999267138468693587855614864920673207463191079900555539635901195238402216476550808943774608196169818412247382958708493958439352250613844679950723991261024593370571633213715831935423531334406180661813206116894638727737213248324988012498601335596446684860745047484466993354750703285013813380178110510020232537747114855538192985164866843366552799649288476876670435340247389333144495523566111667166327986765045045221487467860322104280034197330684656757342470078397140917045232679330951544871587837300146697470082856341644971656939244370385224642512664148217183543960354782991444210158906713762256387683273494340044242991876581469804705874156646774741003630800105403500255122250302843750964376410015376289471201844262642613828091040065784927740338875645945402716565926616024879069390830918936633873983359378613631639058369727301716948293318913430969174842783315064076290612714640762636736867787065370445164067433373876774596857727041650146633345728098087827876774124538477324810645550908704184814157318298481378047438971648382920012809197530258319724259732564464592173788706877007264912641719097616215376471996003916608878326658951040027648333240762544044562255583301133407096887196934689159958567574250706180292164702375116134397456652512912411079138246456452835710871803412419113209767583571464212203407302634991965639616946528200067342162570950408950453913710044378094286040120725416837034064518221950535870591001842531135199976909002551258223678595771251651924954060237395983322740201104950096677128037514952750085852476696948741498162145582467437273615950713257803579339635773557659970253111527331370091955077186332512297157241019604010007079496633547031211945993413718313763571168795970482778767714325751980572662660289013984891825940533904602085276053376420922753521028008503998068328303412000350934299314600573512235902313878446641140868990079173899750467441361202088239973377717131150454292121626577090254995621590988437218972010304572303320761112810442057189504712227731098658699731702062282588024944509809581507203801152113155602917813716227981776354933345065998558674696173216001768739443856782110954815905647301825946927852531065528212833757177965704055251643337930557163941461538924309890879812837755513212593716943634665606891503929485781026445588296820053067891082857930274369288412010800375748492417928223800833936528475558553656605406332077047640708012608268915181773424206604375416595875678502916998260045377365057071216651493148100413015379886719318109260860303129975126453538676647849890466573372152803856781909516870010442123652973693540308821557323691289192384578444288525833699566094463308507382958959639702338236757097072553140773625967867989067767722972636504490415942924363214981759489837451473734037151100487655921735957946098248425041077206283173783365509848403617349167618909937859793557072012704525446850754716456111453780411932296584028148953308502055089813285075492990151878295448102262551505780259136821791006744739933569234737363371390193141999695909500859152076968136882309472917355345947753932032333892325718924094409887656557967269732312634527664617903385228581574114123681630486840100795578033678857533328807259220324785345448752219088290475361417759272578652010620675622256889951351860510948345773572081187389399120818151705423364160346734353835522440040801809233148491456908655305278186318789263833197233270981101314480354697877725616074097306003807886421943794215387211381880815716015688534029136526529509628173577868334793077213171595150358252744317186859794786314988954357830847681287611498281060586134864336261037446540966038414706851338124786168037186006303699181114829829456038260713455781214399526468724092837795752149809012520604072197764375026939609551803264273857051997923388104168421422524356932141418000916283054119580454807132361489509988953400451494336200479748687060493984229397004685290688284456771020855166708650509685796867715378287817209767126614719681445253376067426236846165818092020625208419612668352639661565736716486938074460969605526267488490249355339050120113969158062650544919588968670856172399389020019410421014910759850120972221855885897990434152547890047692368514556807180219099792122920784670944724812310183496984366599064713710215298985153238773242306442630165394967061791038922097207545410724999146756333937503668357976305233399439150965158887128194063402801559480407938794039842282515143719064148248684579153314593613213051958149669568439147091686550410406208542525116877334385776832955024436731116897319821553259583650835893217393581548223372981647782991823274651535328289190567278655651265096284448951741535578879698496032392442164903831725779658050637512893209470900261222064871658260944551750121648090007321967323933728237042903381764899150141421121586982000862826607354398895351577194671642959237073931987649460295188977741590848845936039239678415705115139018441450412660683605264200971994674350136620950120341854281100285033615632695667321826415105227498891970193876597939134978957702504361112177297398878737509023261929366598328608980873603527992122301001476673358911939758566527443589747933525411732219963180253764622420715411188637942314345429906882187924133959715432079813086004757531542127957763550559719572186926674912175806115242024063279690541524515225777037356379489461212531363383287498691633056200963607568158144607734143869712353325985209022089648936824710471492149881863089190442386820654651115043708355462012081515618935077792670841784401485777340218123280446370182537222460738160754582361179335899103045065197931957041257701614723127188219029293500355044360521366978979734895621249161551599078101287742377118818881310103576218088365098117520240156558218304318986061304513677639104502825180472990239503795300593569391368114071003158555010703534131562155379348459020993299295084365536218680015400340184333294119175541567315310005598260884204186293931563301994343139175152602484955229957392449561435754300735288575862481620358298391440679425057752807773667380662536551870522674803139881196484451278835968716281245745043638296238760303062270602359638957544452822944432395918042027264893750841505662022964744848823463633509286528611498978121311452553814900933841667023577154723408236898251230627131992771905552555674908802808865347111003088343827340946744741862623836062507827147196925470682976333266254219038413138953055955941031456869047103361366231616118007948633968995262572964592349958235732002792612030742051833894245881824852939203690821572694066969410140230163717853519865595370398440298095551754153072991698647776916562261802507230577500860005712172074579781011370410996169969896354972790287895779634155628819650715453566438995739378662391940021601737890146135169365852857926590640961115324423452064657307934592491724615227535192547726762365605846874055420957531627742924841068179493609153669770879826731099660770936935764162555974614590252664442820712076063114874806939906814061701988876153068121357754477901398280958608754852011820677886214093399238839114208276713538055769984470435519081192471967958557443354209458327423925617554982176734205582413154940104695913553435220461808290697193413832406461741082480969287097052012757894820191984969743588747059231142324643149109415550954327896429281224085547163107483916076942493014964079428950116649772737635599925611633641698289094302496310923080921624699532262315540131884460833038427927427421500187605723833132678566856453403596601733135230093131134648592021997614993093397279085255608262703211417122777541373520346966975596900805222493175790086227035344068973954761146666027329003859990317857438939889253622138270842523095629373699796030640549342119749929116629803994302761738533766644257172559335890665109508693552422258147636415026778177786636727672450202417562166408281451340563995934183992464147069069185413009336105135297277491611896511009457897547123777608014655089898604334000089647915238840048895380606301785464070047577257397142671479665426822589315142511634194549331925246717172444595079030838143456658503915554198658951970726182198662968426555392377990653793870251288163896638448678024592653814138766249634737942338600401153991064892635322859090754747090459719818233237315171474064240247416718454393822841511188475098348779299443849483721121251072381278712092932903408238221084889662711339206718936684090623191934489480518273528572658476659239144617850498594872907433888357974036887630688836765248000206431958809936742575559107597614812895228891259062162726462328793459163752625758024554281948883477600644521699438448397111026325504422930943576208676131041096415251863422671819529806268622733911296763434024054768818718197442906941459697740681601853279068826378424921861854688074900909911067213023419144627313711741394497412699462914742035181500152308090853211565731427122993832177557585687181906772432019431150309341130228746315335950966222166476534401848551567554422185685444639433102887421123482718115003150669597919104949906357303681897136550251571176931221046483612054236015588783733034839720785769876763306126922349742660646748407548993909454415112268360152057458330534184781330021596396285086885249162737942178176454706833248303730963939854766843521415356030496077475234787726102224095955907482845348635914350657656780720540481156144045270384750402980242948873018789631217156166151016873667963281944608749814064246930355364805049939007506029951162835961346280500261344882592070668535181026013085967947095240722050418274020080234112000726979978082149132399547343270887361852591333202430690785740719505215189945898173211423326070082636022140938806735387046481896650018237027315082912574297035341441539444319319291517944803759106997596245157192404433850947521805655652984332657978739224874088227108130377052877186894280798330047322309164680768765474190348105750559888607144497171683153705517323859845303967353556696731429385853136004608031808187752362001834784593862858467765235027201805202325721891700620182940354288701282297765109438286810690004562999211810154787466418037594546413725213494761412285302446931816992845061030802938287028059032830368081017011846470557022194916374579115144012087556511710075131360159212186607789685963905617864632136493936567464898382853320657226745520933016905315097807778669293038831958205198020454814508703180526808476191994652944708294320077174127161076799001153610836548343145513875966302354237472281264975658450437461313150867690619503278963551364273835142085469775217871233863283415124381025270109977131152595279826182468252286448048266130966409101182543051756444853841311682666911489795094354848646953743807944182833518847620050930656585464012872230230845819809391916223270873452035188797229622051993405050202093656583448451768409742749146610696776674877638361319515677287961201961203565407816238007380299166244843452570914873376601580492796014451489911308122637548120867728131931136648964875512566085330013209781018700064406117841998634041670677449495513526553353151333791848615574467372296258956921876596980083940533546998486699944721174223011096190640501210835309034020735038224476802582247263812255114361379736768887786762376888656594278231206686852163023346792962341560055084674971783156098500866417563464180409907526035920494937769029635433374018377957210048487568357319224191368226841340925934838373407301368668513202596188343312684215930775300255395800413686009579959361576133359497905742285897162951392071284963591918682982989060774467200855685122765462123715316603409815468214494350929515683374417215589382246270104946655339922864064055693803435445090151723988059423637419764139938125244779824253416355275010909973027350276277316265654218224392460311234431026185840887913411388427143586502199999584962575035073949292018551907596022593280342513238437234473448353660927885325418223158587513536146333985266037550791418497453700662052759516130487833247950459655615176564834157508490903562504243958995148129507196952136594229662724002627809332185965689486724526975200475741085787172240325353503875070182358656361691719838835794482948264243548056550283032354042995657247865750054903051973677206198491542352404788736604642437502528508257832910786748110586357052364476259819475453356178878432873660323530676204851328848938455244646351653081689180010677946746347934169811390619195356411699736955158533609150613721163302140767662830962774286513327901604583898105568427497314003663804954000277134404238770330412206202848723504417391268485686617082024683307664575204113303333224670991444755431660509024678623258432788038732747774415548235408760081579443457823428434899690596038655432400331717928558276551898750214581356262918473014828109379068887155066183202143873071290043564999764089408180667167095074617455352524098798167736183900010286429045612864598477054341646206002132674806263774891998326670480198763358315304230965186762205860068640258446556844661013267247541534112048955410043244741932640608285345416785955780896105578890521934267748658993119419212795014436527096338506991690035200955098727481711555054624657203133537241228064611942811739488652067995346616268742926603790945918931583676060384846340858160194887299328851730807485078191104307672720179691202582016340117641241118916443673217005978192982588735983112264131987352381050293795952445602636513582775761766328273813152310017040723150643937145474906196012997080075542509978551280498743033502107682248051756329896897028566266903892327199690500927214997481512528886978553287806404195281759813929233861658772127399075315598130224913688293824733161182721659760845679036508756682536062958423798415728844396574055803211872095993481966997187661482255103239505492551339802963489723835433055199857444665377024071635226253522153985528928445523657766634994335361137223874642102357685097379831421565319547659981462800128239047589186044603332543818018206833844073404360057572696056113380039229123209736910755165060236094278123272935012817422133972621955923171242403842537998307524438942861832598176103628101375476279112199151546062354027762782829497601554316616351700323555818236707110753165774119023192715731501020238180331581057192842247718643900909708770948218799645295652387016520476282609679308779955917233754815898470515011779414482551623439438477935315033361391024463265784036902921888020059200147915661481554161891086076772471167734121392406083904829483859753349370812490432830851237894589754718662228702771312855997833736744030343860524427099640620105615114717633653621574338882013144220841594725250865222466518468995792144279342539266541366454478811671925834767681327708410331619885874472924459927010056948401125794958692880050158285320218805002883962476244081319477675314927939872016790271806909695543806247265689209719160867862793274774670116309915980364026430818979539288817497843512961767115292150430639584835410822512619859784653315651654772575702439195348101517342930473968874875698683883980939064656377600360207094922451847818891238546510970550969615425448271699535519341232021585331099080287533573026572802805336691803683283087354447387853708418043471474802074007458741499222360371418520009294567388710869327947362604548201656609863608771463735188108921300136906861425316737467922131210435278013832112668209806511901825330388867833354661008536126538713890191549661931571078346211544027660125145929912894640552312725849224170081479443411562740824227501055193276630950824459122125587101143880426663792867668475388233096991269147025628340541811084256259849790310081205203170587802399992198145066716490400221795299493140973427424780834536920717377339557895939599103050050194248118408481354856332075148784910793861528536770315067822177282473133710240154393179470823314867635743218624099602411329188148030948042297014075684446886532680238645975185454610312348210855480657002183971015530729368535942262793252050386161321460038934952880759455464798558937782262932352967884396437789553055401635548712178852327989030558465149729542247544120084237912760010617421540502630572402338487788212389232503355329311833842919270462479923506122048562601268556551020060690370517554843915171449611057045214346688156857509007306866193626168797894076055358986652888026271671273916550878850846186748815868440899670533897322073197943874976184708249498246286257034862710438427865678716608931488523461051309930519979661524255952992370708370454214084999510597966264644610369178648962152996963728208862524809515701652108856634839167653755668465081378518381722306148714074115557517843455451661985465590592196514680260243164813376779740081362922794639903201783761468307272157602125744866882973381643664859226754236715066908544556115719707318346892442568705239875704728702249995367996324745399484988783117008699748284768954405969819539106304802346964551582076200319803576416519431430462683687779688393303375861360205575624928794578749223123586322084411479855297569416211964062279816470385847090047187875729971315969908610402794587320415655080843133539928081885387306507850514113491156733792121663571925345216118011005371257912042895652794179945797764502737483780647552339803402868779803896788064997245166974080405179301494467179715445790103872102201722095540481621503498475916543474098718154827058874711822254026903014233197795585015668949580107174540175628205503192948227104255507904572733663871669467927037210268718351572392172991033819302787550278775955939322623759410361064946064577832316084931398876813982841440392707739258346844977723515744044611869391229274064987093337140794650853990137821963209905925908669507813404317424609576378167357739263920040011119247111961494818793887841102142033857013803227730596982345923597076285288727793212743923806546362768496271922835911697422858703841685872903257886106455993101643402902495631492265592560674817198334704628890907546338961841775872227475889029193388166589481568941580671332179272927642900751693956257479721138593323051251970827927982783875156828343891115694173772869599379783498983074238587661793785710254880688039580655826922753419419133986606479641918521119414805045958169988448769771877281047224554510830581479550412127519093663803538602143293114201821650267202368071158611418396518616342946629751461404023293521397200254504722261070721571168880159208921114181889047030444494228657801443162828885318067812256284193118168068590391766568860065345357770266068372816417774156523520669538863803863990572941738086754181512835606997006382124384672157939365710548066994040323408431834999125922819246347026628356998431008499362362305935691723645975994699894414687105389227472650797008872179265260058094513183940330456533336473236611584637381844319488729861432102219740209412160295411000767590663898701894180692118100641243049789599080299403345035898892868862962943994596716893815274539811553405997127923420154956012497547216122031939083531977543747890205717513302258011062666687520597952287866404254754413569142336637305443955753756413581089499062471582913187447216187610080959848276731774118170155418601747580075504349130216355400571637335921029592945382626374387902420413824986523607224919046861093370105442605472700962611155781482256979913692461098057360078757545431099653320480908294106051289818236535892582641116572070043659959250206136839155937860040420916662642116917602721823470791150746749683267117217550201723523102633245540938183033097439812003288117279286176356962872279061555468007329779772470406512726281507632497693100280839839920259026825571208612810144198467258195280240184862986612901991849612244946547019913104090839105025554377161067301983018807244467002131712179693488232889571791902316028819084627779451644597188319610468697989507482454764891433341529358801658336780946447973857657007207058532993789114096956113704685205612900142970811679996960029758909362111583920299019693568633261183844292607827607979208089741199271443160346567594901160913623599655185529167487202362656280270954612414176686799365075930532636343606195837319785359517515197402091545525606156440644121138547047539814855050070092247371325644341061264718723839189263601201784498482872009421534585110793963062872953566382780747040343990020663627346955243869495421985770949158273720191087367761448773165107856480401886155620019705575681940154855637093277271108298524627593012446682175850892018413846018105491463249905486239973858984567028729887167763406564925479180998338809265689225283903475882887872508842528529371839828127517039826008532712052311761091080909981543316349494956299611198641563611203507425569888184218774618519395935224425142956106098960933722608656319283873090273930469932957032719908069063167628206627618848041385107991812234303902752048066230698371728696354093571062430514162703068911517213753131219553849685982799922538559756077320925785244974868980920652990906046393445311658412904559839418173828788077960154146308810226980568598829221755106330786753049036230129348777132106485367777573189652832080052002539218044804956850058372703124361785599216259927886685669765562232065979959260643065875940776415347582462636272963705394344515181961580291079139020041960335740671641229712743829269460581507711830447670966821843018225333297498352155085895019462619205071261757098794360266899531638548363897825713530741453574828178590296606738061766170195895870314851188664742307560735317496420022488186919220674535349684928967591773281352658778996955148438356171131071906631538314082094090749419577726313036067272541175574565128884084558250158840371249871598374524449060987760324102440450861728608243311569803533276371653305824054587212831017016777116351055160004659123593151110025242491723379470204937777299344726231803586724947751136166952621753971744122635700013716834596254378165439781897700275671267665866602253827076053470636773538561982992893151468118317161376350594826931402206288696624918357128167985515713091228040839385547824722648559741346129637266516088078514739994035891425866698141386735459065200381177406307002856449934230738207442126331756392905514860568974422230395629199038476433446582561886105371534595822384833476313699311573942747520665055239318461064324595704349859678393111659434982809822016235112143609076640359509818072219646483182311143410709152808864088502598925789558152503842221731713332309892095070032297739030361746274087009378935183617686518403275667679318454463031847746415938619713394987797021378217874680047790319158336851585438510679551359369108442036847122559612181089089206705857620604237031938766548853559904179439677388704607802377192305090704814641949005632849559362378558758246433484805553189615556707640710653524211154142422519039304172932463547455179137923064560943826685446456123825671888394022086918075854441456716315404441123793381510884799273785028766094909989702782237694385635271262498049167928298437835684953117351684653587972555727744603871254584821277074446634364298840552873491434197808252141242673554570170376211905227749579970102735586472191364962051812153290748462022129160522826633201729976984484694219792698957516967089251851691018703676283111272947369835960751088446455283856096309094411850552535808652864409766936158434292734600334901453605036038570588666302079827186279529548659053272013467592100877922506030706096342319102814371963323131851911452046032311227905561073410261363289729838339087166264654305372904446132058531203956581743022357434843300887057532484948258671018617355186350365594664728060790646405511807537437803847065964326223590991773683272120887025261643225171919551418364525786438300703039023269514828962802528528355679254630067615426934849285151925508224433614614770143791430678135068798309370571264175856139614765834917724683481208056270364370357027509526938994367826049424340534506173144099446388203743069691304785923146878649675558379807177978744373868379779276528593826953047812339354027182775405078855810309066081245971191244631384079962304884264314814612121003326791312194109598994056987770736865907008713732123857628501695188911300278719622672574583452125567422198255169795791306474234703051430530586422668115307166397920310342700604631629910322811060437804409639469170480525858217282337220277851702577377853071859832292268485162252393228947596984703748726082394860207258840388103727629163804129189489758371913852603364852378559835648346119412542323035266454536410502765516737935166896583549328962377239462128534303325987636336598690013978005902845782627238959176953363823739709214281812917229561540991872518735794849734475899405346214621482715641965691128270774232892275400300157187385658310332484270635336210977883596230159826212118469623055975409911559643411721415304853914486188186890847287587963312091973260696424399273649910987768436126740424381062895576581953335303901696095144414989739793931357099953895882983326009590537622367751296189082088871719540325850341555018405165691851426696143409374362698396189835578549319603983984764627541763489661073394906479259053191859914202371485223212125468643276517747940119345586178525130690736414539054685936794190392365884988044113974699801246331144847674338210655450943507610422349882959243059535084036127806018695231110200310912210237201332203184513912215942911490301807112482561669753787458145827359044316728060495974697452498702159485926765795281470079086350401059039066696989461081772467166988389160162241169377312327822948545710306653083250657085479266914421461567128861815978013524671702854727723517258517016170213758912095085445997196276853057039746744140290865597540884472527273510645832768885756139847936990037380201397034774123850199474437206983554897315221385903593708907506950549227491102548018595917102122330713470628837901163003857923106177798789370809065863244046022164857458098863814182041481990552545836501963731248539809570852502243655202160938613979622598769507773489309117096896689024552903017875445838343835047020047656547438842890835536388111411552183140965369621768360014412587743561996012885928283149053432868242040387152950586829393357048369187722269526943181676621079070917214568672421093268705151210460625898065344432232908568993503286152100237652852040764211503192451768541614676514025814172585387083266729084769739114506412099460319106444600340746101493934696488432856368758328504209960998748958701197181790892746443730878342556332285241684301362890552757068690706327796960071453266154904036167400905440417934402178328279930608601084413792492026347183304238984214417792661301784015051367093256728195759326938392296168866088067429516389131408083615377870977633771716293085579899505345525114952821435978021071182515688162395548081637637984284891764053114746266135459498168501580123193227611560785163829163634981817565444581888921154731396680536790592928581044001182868299943747863684123649469948111480343188909567361598945477118037570982976061767115828758908537082025785217434658898393851306364382073324727459559736370917724602926752346694652290334779183650961388398724069877523861578781573983447303722797254313016510279918278880348758014346535836122954341108542623321759816175433137925206537429939490086116401884719734813454866473265473560542743128306608319818996083693379812884294997210666611925005748349130287541062192972650046098862960513061000775809526215457874475999896798931427783754988384668492348732582758146688835691522930756772508847364618594721563032050650642025205288342141776476011237735151838341579936940690807957513928248204360444035764698728411700691079727787520552584841834240884999789136152369529034177001425825450965353004595603211018654290109143272328629187044632612494988561694508845493841704120319160061646517885571615072089643432598291478812483826130354528767582765542554989992951484241317731947443735641663512048460253538100063459694636913680195567750010618885072258205876787137599851915491111490171347861655595125533268688362335924066318892125059858906129351642522947552815252876847036952885563015606101851517857524084206280953231745127846246301444978185855627477001672688916758191314437568364233622246928563288196166996177435567527217083976902721475254940592716572919908954457635780932733204932962329978051312041138456950778016160718775143325938439971993234751667171189623233861837713602149018169397818759195121162483853435098108257813743852308506906778485275227641796651694000336572718136285599715273066846650148448583897986331640534067030814181091617750106633792384762534487710005189231391349044351520188020570513262825468930878410656894941841317524902417591667673530793750547639354616321636216467390388959836501955887963295784316797523377772881844888863068957466380095403318738596319796117954171786899850687836729996923650194887928879416391522998069403683360903107615459278776267819442538012924581220160597007421191033382217143419247103939807786122885932897685583843319627639828562980502003342586985841914175815916816218844791902891066227412750183600156216273548212794825243776562071326765082242559659102939948493070320421789331851373592373201670364785085520567393463407850345031217440766810729964289709258398888086584545435037803277790253585055264832969208848813397745934240931955662158223269732938643612452505737707315544884726270444908240445178208742789135921062553523165870158185212456233292181413128696815971561507936069943754578660359322381841551766389501737931399121572039570060382742319584580918167799230412037907241512390044617373915358932706941041625951964964624317537782847758997927665421564749211454086802702271255909326795253563555997210462493136938050433938335792117024435767579486121418551169139598706197316015222801847171646947885853077300657736288296743445828580380855355137236852760815303506273810255859080018605843830145763607212432555503400209631486056189977030914895594014246897434810264369789720897455626907951841548708152320379246703138715029881871291400887760705861946628471897176462817579027766297650346579050957277286537836780392535524510259072674707954845887724953964461010550699019914380911039299467443251814736246107960528995088904002770673959437974469934309476464762034340356570864192778670409135638061386498018804136114361889496669867048009315983322982506518686361765915086064926549269827839063721819671551753446681166205283250225788101786077800653236267441928755569167387864299940018707664052871546694459557870857034929961660306006173357417925340280278207639393985309834956024362772072046383085194050661448619940103134485265144635662822997072705886507343257669942436994398185318578922989567077647079313135398882585215606703411348430220676460759772338440240056167404469445161514714184298769795202776224359305455193807468215012909899829424787513620616291679893482559263475643014230498498974578737215324006520645742874064707165742427412647284152167465624515369942659934540471864013875422317384100749672198089543104684219914253825383886709562712811545287836096141970383716188971827291570967979828192879356012487168236454000525455607205177179527761334502240191021016530749919373403569804879039763821426199462768542102990079355040453776726698921354057487381465200773830102555621187275296017345655033347962332434413019708261645712429570418219241614399791602376905328111837067869536226192566853551354365315404423705206640287391006420275417554601531132349498254234861166186014684057737299079642694652881774179146746076602321401329259910419760842990223972609649041798732841148966346634606830043252044488319905321542751122969628131451167355710312066628228345582208227281451608810123991128276934333733644086065425965169261376039611987744899428855032208548772720254555688977280265528964079321462469073825304810136493950390648079573306436118625328154972072923592362345208892570877652468334678628416304167629345106134648054216691032924733830108893240527231671773390399254839062434107753905194619250688041904517988958600566331546704039664328926095772225772726990664221848474676836385381002111198740362139057963637237468924786654102746435875248262412129894133783470809400976842630374760882649815438403833187350910434043947435274077654684841034355788326409666190781365449811982843405457678312427059557301803240283343725837856813086121166099151110777228802989905928665696084241531037586130838471055794576323922578015868050586689849249268658952665040063569883064472898236155406304393633015441762775261956640621170319066402217677359834797883909229009848422858850391972461094277786993798156844603346458042463761158322151552981639358013902331408024237538615455393145183552559613909547360089579188648848865680005261597017139804508600965657324206232055709474784129666002674566846686135217419548818348986646054429381828181043931704947123037040538050914037313401262822241988724088890347845949526388073642531610444077665350096660768259949934711007283898364805561395418960044528361390240840743341544793679030705336715853709122379696375453611176015793422198548072710224225057707851294258854097139105865726892345448636259541952791836764026733690323436519680077670713317336874038329491919987310841146151311552300112712736926004068273174046107298469123171778269785521956674441947731565486512506060738284695461632260138044124758311444856857354343977253900437703772444114087367406697909439684067362205603452489892111231709934306775700907341001454125305726002681904308365532954612392010110764359642616948416246888210385979234460748703739846226888958339976952080874794447491450338543103371076506312463596967179277549555729296277672848595585416191883368733341725720337404415981497284184676740496895761126222602450745643782484804182012885292256588827119915050381217403322563205138404245025439854011978851389673594487263284235718539678172534550935055548705863664211720725868566700999388784802997340052073993958843960628031714936721213742520478818973436481438761875989161689763500800801131077868190483112082107481392593600271369557637346033430489221330115871395225483675144815916098687202794220987208565686193345954864005760160005834440444494740866297510760564206908648380430749819184987317969320671815630523115705699072818221497394765978869859373485188181411295977422232319813352155095090790950392867649344747120158037204285611304620017729521015763903649237018187256613438040897576858838613020922710567668600681535985291607078994669950161297468532116362541936508642182304294950933759950645465061068085405916534751263731444631314853888795248288318039822699403948398254540912285932095120570524147528689183480510177615031051896811378022382551872093827082148409875819890887363324945909973319993164746947021143615223571172723361484692435212584473516648279285493969478736297257584616769472602307022590075329807373141177413138578960419332930415239291001511773172828990009113242410443445122239000864866579643182561475645119743915029593217030391753674826884244437168967894534345878592822371503494838587665535835522158799365964586138321525520838008063052138827753608687746703762644037662660610819948610725451950415425105313035332500386434749069894399496135546048145996927604898495813100068530872220238605709243564974273908403419122096391039555605907794732178259914533433159379386512079861617385227920154784777247856246678240957501855244256924135257071905762019590449897781658442521211214843019012397932993323593938046770881572102685858901408826877905114772824722791267462506767877811009746399269890687485307811495541591533995693078657695031884416139330896636130589655122779848494754630073412868982176157736945812900273141554427877128573693860048276943657226404283332201592287105568376345483223456899193369960493402538935905176101060356835953387043326865139770048788837406558634607451845652162420058562480738170274850056181892151488903553993592231850695630583585112791830355743362772052017938156897831743171289156059249439059150689847477169229681600540271322152478951079759716199856582628740773026063310821253574256128882919437279116500211063656722662696933001946505736723373969980413042782427835123419157839332727248168856607238093900913160661162620186498952913199658102503631614014281946593065688314333311060971887511301430751457607602495512224889101363263260243699892981046412185940998164502844152215349754427470710042872325249298466174866711702773013316390232474705655192092344271755299505707077286408297461603211801816349538964093796335943294534878107418841813282094809868296923503470138787918888099390011873777908549151283684591996210123669609141916035113003010042128420257428146405173304110730275790342214804195227090200651282302122747375888314683064114543963095221425336101467244788838058716046754614694612080030975543644618531147269195969583556879977299522067321351285002827494764136093885369371232697096151670622269559495934965550722632002005123655992355046550466120857118385681234664406414562536233508232623433772691838967535640849433434267064018717971346525700143141870880381246113545975919892723986496327145456592929806360034042993179317070077166512030512208682267742856756627488835079519288891808852382558936273090702167501443658935217991493847521054244298989913566124132060019869805728022640735435327841171342779897787199793502995813229615604005876625344457357305254979615533578598857180755408103128923165569470843554472592302075654853118898417945226233332315236203141908395181445710168025048217299573031534452911513892912505642591744188213523437250582241770608625694200188178869186791273858226517751546382756275912737648077555907424142807878082239868616470355396497440108408281663820942862188613780515677141709418553244366929400976871764526728763817331754112423346957684523713965689822473738106737970767800319779677524071069321248584760321814804517013319207247515100642643002405233018490638293003195394049007759870482016226261902870771318061473096586838137709086691084146991057455067928390537426489866391680034828190942503542365182163125164360430597067303946829694007593336951107220545566384583945284014738216834447928988691343052263589561983302411971847102474032728129585743248742266314148193704612198289089573030455122664271487063646790406148200622212001392104881088466729584902065521771759412138312715786895628336732789428453109540847358323649913902133668688578724195810338212430046024478086549241359266780016268707811395264703063898091294614920927433290357063069334224506039973765354908017006915251940194343599684950770921309653632217403944724224739173466142409469130338791961432949088257348112678087860407505595159351749642841983564604699359522324543183461535650220083750690058788310435113605422336688778815600283120975167101634209089290596168012460523950656451937681029414126153487585191690519812790329042804583719333069537416545126292842146330596540553613567276906191793384269450962234079408020858114381387011944392597344878442492832367354314332243459642868854020636232969997485405373661987200225666994311316945884097576509052022605044316215317337365345002587966015301409918100188166955004611199008619651829104226564786609470289526396721083667019468789721959122233731979905093582829670277432846041121662216514218723542948569754591699890494227157164595956139259508645358184484578545362336426950950422072442193431376599443098172835322487060057734086388020836644514128923383106481996568053229603822364787884913700719043211627619178693684868608112810617602470647032749089694922106020236338178433064216662712203733560247381904610714167308782450409909736905020190766461766846155768965990820138261359118266221453732419865071031512968480116241223060497129050629732783175596417430629419195911691827574791482105233076912776081474325507087447192816106806183968420312560254836870538613558098972560246839407875049144531640349626156391671308093096307150277721512857914993518506725332041782707680666713357269207433513608517973791938173011484618413172969855515444968438794141549647146720941883099701200341745614090769408915674162801689189256627060505953398951304539845487122019833531175628856951599509488962477464710460932886195102917404520748074023309810110405959442693136044470624397820332195831221861468232516508773862670602839526373209185094284634149867475312940933787380112169160237570754858514379687908954867992900289773533924995185040025614540055169422213757416342258509686894919007939910852859403850154009164317384866248538526896844089521699632896413175893363626045384569059264547180102642822684094096609774585007796638233511593555794732170029010286901952860717508821407007971768959386515112480481393418279349115630429862515377483895841005457765768742089040683837937336060860191087590412894206456633749721828995478736444524311909223802040826718681509970745960551760803937274700047992651639957722187231071346942242025279026271308334454353077226217297203652656738338081990038371835700203882375485289323749910331248043566558303950704928910391943235388518207654688519458153119627730009150121960440329433455016432195707431786471806975558010853607863662017013269859635873723067586845828891681889194345671626827102919683438558347732869573214577296904301646467088820241355945888239964884895925906431372748657797764593696045176844637586159390393009480143714146647504278205905298859423415985573565221249876882587617954056319054589622976598420032553151831769893862614226834404764830410744058191700195587393443259936860241363010655465635797770047966420240444004663035547069521851709201377711889965121152257432669060976943986104158577331239330502463571604230250308351892545645601426121691022251896474796256383504920408503924768508413490575723288056835983266225986441590567005473296439062876574761823096656190174572745010393069621865943596936413940669470899834713621242695708147253260562576529298320165270676930626488462893277429249267218889134588861231238352340155220325324606461774545107225986076452351511550273672057809179166000157164705878936797776848606121095442597349872228341477946469362878889395061044241706059165939421393099462398709801153224739201925065167684485982139098480340859677611988326199442761258617596698066394154645105893472529480047281921857151854611682019393810678732007074086473650328010436894853176430494589122465154728253685296191312918530399354086161172971184410219130334997328473022539311570156124345251062068207020128080288176703100695394753515362836153930008118991454162539553339120774098530952902920561904124535563510243235156119647621148169370425992155563999594619600523145913597864407180729840546877760607502623235019566088824822447216654914922573125391282538819044767709237891880675094181705305330316320379746780521717023283652694605422660613063776197712430357947437725087600877832687044138875793451862372404008848906181376558274472289531141899400066690174899172698303597727395075346765008872290596877821836692819426674123125301161545976748073015596136544066614987099868110945837805377707842422301329573593977169901958607723574919015749767705675841444677478714400625842535628065966436056746036113144440164563409925540692316930092802607993193761710708598766189200418098249008878247133068442500130902329028039815089382604021934713581004538962918297592115390495427148941264303939854437209594057453648257786136357920649227714710423018251454417038442076223532090786480130042203682728307222906804570271280159891268241371223103023195500114583551774858065896517296364153145908021158673121363882115840134760932568158105748255058357935857205575210118548007337270974958435068911123651115398080989410516988767003240323250601010338531362850071641970928520537470362005187028306352928311116251191770711901647923539606145045097525759285746648167293728039879128758508981604325222387706190510231887758052647331550342963824267252328273888704440179246682250750534670915196478888645639973124594571153719088716199493852982563863328171079879190534384632950925377746324106771585360829979025552752429743100985395582998474759256568078789872410529226079517718227496031517796142231343643387455364985973338340398534650689240362482092579175985873455107025608046924597565365873044084428547757583146578026775814472750628556111667985644796009728862796971494665827027041350469340285645200030098463923933318725737600590763134225537119728889333842665032190978322749032620688739549264342567752324612411990350436807541726411964944936813969375401845472861474039840369820979522549504062288888632309553840465587028589931831894218551982691326230736995986185976057898245126274784513467796033422770476925398085231999397053285203810709774595203129703266987586869409481087623011499093159257310839038047116223167464039064759445360242622367239092017743816696803389010462841228896209986954404578774046796677292929264059070173380388642816561051357536573615508708575299727567534109496799320010439860691265356978602875088637671344647059048195879591236094333857290966507766373668898682452070007849910136564276649390254758444371894429384374325976538088008678116960779488237654514161900919935126542286624233936588583296910533703106904442653833440020372416049184500178981006455628987338644274032833435981147775815735291702798672695993067469037288342774623087413232107519567193055426095824683467600473051803871197710270587799418036996724976432131852001142214612096407812299512335935571742196179304377569528231396501923018287671254497357329524746403331934509669522065761396117787918376952729426139190802430384986855156497553331877232679439018207618173767680148227269678399026430413973896624367033877530099171652781566270847420952587480069863123408898355464247591423515931220910696119192430614177808506917237235309822935455207571862363195747966401219359058591057389421959753788567974543262805771999619579930436557473823057717845322343994136387812227746808793275212341974650855037442875175523431342015517250400297791826738233820788701304759987530405084801076821243946450972739112404920436474602483266655356942077029298578080681410661836424254709463404722080502224412254501924010165638569603419483133235197826781163728053984084564805444738229190481460461175564037233265784634352935142396568636229752949990886983039087787983126473959698305809263949074270069894442188436932169732578811579648731219391593336956189749484655736005580316621767983232825068130335059174489780097666237265219217784784513615538839437123166836633519478151829179254439248772102587313032898295570177721194250748318160788316168400774935419368627040586562429454348602399645496890322603827133674479690955069263877853001271416001036042490330975147422274393485702184873089474671982531314823041794982636633354393570216786016224307585864795328552951189098116176703379003806109806184772301929722517130149051998117302016417948586774701366336750162528356284217637936997126590231090215231457573443090184669304542702384340669283374863649900463691719106630788342497669008658858789642082987300569016133265190651763215979012464485151962312403436687058450986671864311703514210466265819620532183917417884482712922504830194760238798424890023335842495571321590189739398858883737970588620829850641453793093690408700352464710212327199388265793054656322237922126134479211407607578887475713859177943093390365906081872216470444418128906697325175893806500051781237351628042958042166997360315172013376838041241920255813703854157437403704884342612498558689901828261513138972035582458721097697006327002353675927191894281573680947735266158680869767870839149828422964728599667957947514161607981830654859118184334771082850457145168291302150778361577561293052989874352889016991338818413002715564254396981727688978108432135639647354989405925131237823241562487839531802633628076799706181027022768844616502046371819258508686376237200673250368622159641827475580620452708607994375843563372730533085741770455429970174614069811542199380884618216797713505924261680530640925172466051763806178187992404304696653426553661595162089125729240761453760588381788515873888077753932716293404167993810996126679517622532460066531110982330532073210546818154991220191625836554749741673051901032281356886323494401335524254616999670584287996828756853496102913384160432787478537391735902055644643636467852445632562666224212342948458827042315616377690612726131971065130289352238951734648981460340810665734434743864567785047633713903444931969905706566006392712902968078117198386662255155252060169577298467898770322930341664054695783397758111389603394391483332881111266270532672435434737814188402188726846947134237396073230511694558453302649210378812660038721637451916106435109572305880988013089667132014975493589154233573021081017733256775040301603957745744989963724494761229772447903745656229894947456938181497659608141663351629731560899650814596645545486363941407864919534527170093250477303272945686444729016720544251069362678129867374703652834289408811701380852148897822009098851988088094845038060977845389528483729841064984358412667371548797661528260410371904790117521352631664412645104489270248242277371281125746608586722811414660103534651389788600039084155841053757478311853436155080674153172843031508671369747895101540543296359202600406045435812935059233910158945096282812260959718074248673872479414026827638807750277269912126347252821798532932396878683710478780288288090844616849726069215750386493466936803814846389754249202369920592477728190998522620867670303139225641754062745671189121458307136934764030585881342825026038073211549700388441902893568250342448967530007797807704517172785362032309685154373905228200519476061897724490851632267148726436221497512600660803299721661530348045408356036672315507585679559142576395132447797167062039098995319385892713761639508153354570265017145913477296733302498536754829251488963039146423820988145768815202807248807940567897149741204751484713449825471611093524851270716492281384819693769782369453615562124727703576685669616896334126106315349375270911826403646388602737598169861724122022625482160001323220304141172443123955498440855786444593172327594916205039928877001789364124828260864057457229754455168765734669745167505553022171606126177740642654383596834494117014189808817571365820440324374551743149978042263352245869659195654403745830988826649888466296437016689707385744016807445228324571194742732615641013505529860022208619516670551411454591867775204857262363498368855926363864908723380824845785787127848728023361710452549334507187687632034313828770789224604046085190468853646419286999696177644684790949029084596153769210896871325017005578558697761018316322288168214952430386925915970329559619061745331164552024374462062354455605508346597612119574194635411743044640214168318074714784297206674181938956435599365682659712857032811450073186807665619492813557120407599187237284846918257765143086680860258278363587521681135370371544179472562227241357691158632454495291328399120125005064721716958814611467080690630915385675865379255087190216730060946389648795682220194145713331583100288476391468516065793691975498358143436877140028829848655489873327251269786631378065486883289676884836481945971334297260546397079862535174034505429661412385376980968968747003726618861348552771336601594029152058339743319123815795024490270039587521028753044206783446283581687973192812130789795719728921348966934864558750768838839353332617102546427138722155065548310700025862898541087222132598235465381580418321280108158391043911331543662112090200437262561916312422550222703155625754389559737758950046282524141408255127925525738811523259407850194582799012094321849616163862870642970077833924282787130739264918153253272107877248297647564191001690118356493634928169828571379116402956689575584967508834096819534897225819938523857319875318282353349581877730659902340121069696832135140426688228244672863701140571058975554801021691944258846853313562130057307231057381072681481108343099238176323244635726070072165628020868601113144948764651938601773910525914532628480158825356996346113325692987814304116646925162192670829245462231862912994358875110485564874023682336803614715061578661606974331619824496860836628974767374764037519948935347865073663993722836557344588746838805634589722660026726049798639655513772434127168244419926708309163148679037639727403365727429858090136689835337348901083335255344029300122020132573840505966908431808593619045405470223759279725493249532919455160311090964901705594161735605012226305667399749080874391890208034475636879530268880881330114323229043391132832514761827635433760537026769650995091677972397842312720723369009671772005679373816294525600323882840006825910677997025218295359478660073778203500475562115877922168459136940838300033674227509845769543555527187963205385112765189673026534651969879888946851126558490222219259114606331774542806708059091105645742364223035243042986988822297771099530696275762429101035035993364645537937541880410462951286346171865913830201050112964756834112846223971317021478472365842656356213198227875220799560616362744611518090479185727421667012538612665915638919494599044190171012047286996918579669477153454665220663293443146627104468983118561760426891608051105071091558414954891779035824498625971253229040304807888703611411929160261680418886711807327765938983989858567204669560086680527591390173673934429982624904744124169975096022889947056267580058237141455968596274379739970939944671015529814879183870990642264940877406673988546227363630449415790928564727899829665851098645121318810868819228653175872495932319307651884226742845630628294228925107770817188257778924542298735285771804514389452711965004880378508508663360990666791156040550343966052028430394415476794174874845270879672301558223150132054612995314779599419991895431433292629510250065576319675543251029520312261061267356343964119570396323468068496497339708430349099269805887897098044292603492063326581153779487702330194624987677275583059545355839630732739263507311921846229802220292166399761391979923916789902863018724456821559887704382159847252687176471684705244539159541632790941055856080274348669392511439260548228347073238415703084061979792636002921108453059681903290616685802145389766551895444914989853978063297561871519882818078756109948021790154406877884652230570819827574938678980329591240972461412955850648364305202557989634985539702813709089112455096285234192034077878216289585200467641519114299945886688167608989451743056581232820829929835833812155988423889985733010861917999971083558403581427142198120889442442857524716903989792031359724863467042459810683539046660736978478488340471909516399891542713083362064223945886472726500721574013736234463435914159476006566326666370321953962222947134098480582107259716670440167939856842428943957781029752670409072803814418188202147230522205496242073816366318475866316533841821134817638388381708724331736266525506969856990307761693700126480314038577648138976954517233615562359186054097563354810797653876838913681063967508362123488247443219006197237484820512331666755913646269163555588498556415857371349855269027269195728551167080073501372805340952706885954206242308581508476753766921690961785178084493785284070956746334464033994309648326224319609900594677549024411571641342177831458289227806900869621492249805016329253526483653006647387597676764094772473731738841492765327401451519908700550872952449928460137357341636241504560140040632801225325573737081770529163878309328651906879319019755144800349134825399841719832135323483408780854643233983098522687919831662469951249429624056399668716735411560734542715160936482464214178731399026762276256310226568068351881433645889645859320942421288066576423892751722164206997723489935180536540341372447429736355197400622854435142547297977522030320900755337040781513536473211690738290823332374854031876653673580568168238360717233679955142647695838658202319871686060192672295781544699781057385875635355760210215551136139969856708819761942208734458289957640261248721759592977749820341842992723521193998664259420674639575344903262841937806635624223766920254437633895878162461065270039200860625816059481282571978322168275320307862646971796140293940381105510572269895384702123456860295186446781722063739776572962145824993921393538364291987429286868828362461873958760453340136649274224630699435997043095897849398676089383801717948915916995027410002672177801282623573522884447407179954650166848248589910599364533135038260106324587768444122689668396322169464871501518537058002474480207465471558419781550638268400340410821930705447120222967836704554737138927066071017254560649079407508077397087315247375869350259728034630748515926903063943354046989067597504979162135968895879919619408461938331172653173505294044388969253315177801672930067697609728203089044583588444630297603331514696225569446100462776578256916329426551870905585281038156852420561466446331273456246033702875129050230350648034450153193224696891642923894579730270616407088882666148664889018966929761157244517127323998548010036394123414917544431774497983420952357173116743398104402934899963346294665939956878563952924017237543746263405059400714697434655428659985653679341839107016124532539305861834869070765908195101288960616039801729248285968789781765660060661620712323172781855552498219892624620865207341556384601434485454708038072560425147203688632544597195175450076818266690512531782030398507516268778138947792370445431503760391657641558788063654204865728932872180122633643189126408725833130225748381234891777544998853763684510544536074831062690618003371929700939577685694726939263489312505031235402128873410566135546500647784955344976398104473403037930938679300096291742987926809653837563678757861547909952128170372975361302023434131657125003623805947255777771093666677446914661349359978740529722271756350512327042606972041291814359372943626087911002608073677333490456197976475948145320103628433818914153820794127118800113487521303704342322848211235453044819295904764469617913331688933713467795715507634367591733068000186380250254605408739940974047050908210933818981586594094470505173641865793150276385994173271751660744550939147774407057084758224503223588362117913033429217469836202649669866878738779296922386068225886097797292873065946474787067459286787131852572751150750466991875298158866671762668570543152839798618279912953144096508103868808471466768782862199846680381245414286386429761367270039558071134168486221180977894607445000310180042708679348470387928044636277630067164532258439888152217424578488549447851499440350554947849400277600707641418339818404304232985946419038302530517661376771554048600591439334211593008872778310126809932658055011993752728694326593866089076307864428386092053539309774524535715918326312614197881540746956329768298083670145998757947409209179385748423791093292221359477593034907016779746887889148890366833492303041915455226278712455543892263223089103516736440618091363187709814250427802138485944820235817309237892221503847540542835999898408583625509819343859079837770248245724320899313034697154681799023447804569193674018255465887304762576021147115267593844547443228123440713954555438045555148431691990525783027548714068257601791029296876254277942728483516547211945538861235097195123866443808509177584921960894277465681011439873451600904363996847604810388875612056847316130417635594454554520939635263926016053247485423786919097011113088302397920308156826371934631698724533463211132877074739543944310610457129876628745602086500137545297558146183584788597033142142193008775170547858462257108795159571238914025087779206869062469118407058981914238606461574685889163066716514042536520610868525538818936725032737625827292071800507984536289357587261977583513073179433836567406005733084140679305522938047441431750198653983622045447292821668775687099208923605308257047308101990775805499199802890944301656557519562171210400732853261397893300986780395258295474243405057267016297794134528134691189419341773905374306817715158092066021542186096327801836799394257841991157360269668536627477940182782512472545991786483423211434866058159278155081090119022733901497661735285374089802367565398053303932741009663167862475128394610224490414774779811936047019987303250852542623667360022512457098659738928275101465736394358829700069670206871278659848764589670846610370645588018143712427324574199602532627841134480580887280372285859903736906708474945744307872922323839824610308338948171378247824563901128533130436236390779792768419707198597924799471773918134113514547124638047783640957127387321942840786626888046776297847572406460853679647595488636515069062629048547852842434965353974804444554733145901302233113851249106365199686521483792958286049559821977322860774309272688642523507587798412877714721868158868988967287147473890001944009779070406529160422274912724828749499098934177058468935711510089125112036161417255317669015707522795647566092958200645920683402783737870330324978691341550613773123895863475756533703125505759982396813767925532967069172334386363345230456204186825455374260553389565112473528603688573835132025293548582061754587603599823513666607551698506374205073660332148606705932993147991354427860462419166543764239327653421487544973897514313219188619257618210508084195287471089605709734519212449000669525537233004415097294097098919585122840735725736728200593260048910736911483629696320907841058978414688888835533999895824803384345521887659544948229781446692712613595013209160914982076006969168830896021590286846042522618851291863581859989450991219262768297613678577370225828158423415713709166043836715248914747039289790034626554527674359685278543186512665910695524021439793131701726598438212447269888281166301093117354198811462006821349310871083835287441715649041891300070716559675859201305075603705472210708766087011081994549381083789686471779389098695941403837280599940313497422734619392800292614768184245639740993087981369149929632179499531749017383610699101350362627743903795370712601450375718803348509441597965482336632847705042579190197900198068160433761431271761511018854806587123017154680297771642347509032110530380399218453854775789592942048390279140533874079970241486180630066362425517654409688873858553025489446404868911323354603971092313500832219471448005161827972291505933702548931116335552881241549827344189304241471618944170905081862968573579297696722602055123825097267484917659694151102206685693297789705525239707340634195236959835325435118080917604278384297930055689254048674307288888579813506755332733161476392677033640538951929603493011249548481257560745049938869325872356429001599212932825994579372219437344446637209700317938741949422441898609357923934731225118807317982651893330202934493125547542582313027349755655840452031015992919581479385555328984455547007754501591546366615238648460577984630193892723047055576597606393257507237570876959692960512994489672145973369304580984647498148973965050614426082060591294482246739478674289314226869961910117114794352155859802280972329777912150965188920181374192745746491813158110690340216901170201442719093243802346543296400611401879094370207453072380731743006937970895514904285259662289789032952534905857062060498603623903607406853462361001489118604607294990623564802896660436560279640317953556378888100620460541064478925604586039309888135515903383040376843964802094919450844899124904640358445695909254841563988577310750304067442624009280806629309834759314876326386601501366163597256082656943327587104936473561600715445132804448167733319552744709072712446552294050026569048364919416019248691303035646215480055696842669651744632787710847993463193392306167123887661269795267100889749395401734693002333538328755939741526663164991327331016782527455484973581586375206064908321578351096267100247421498385953281644387182401386899451596694047542702915541689152217090791294087427348047606367421733465625931456095127688888133276772534591216988985930709872494000194454758459131782667788601735247550489988083095880560989567291729875335913900292368444465784748864525476413654751950018928527104043420532806633990357737878274243107718526584885287589671192391992068612127898836119568775946085647977952304342142527283732150304580517989419493512454788499619402398573219643689207109010352884607074293367900048575968210158925768514097192382535062706845269731281466004926408672962296346743520513418465847652353242906259298417696134532615865692249888557763560795515798469488274307868593579806412814379631105723551280602347768108615949952674421129339857417303351130701382977917020537117458316570694810080697568030120588670794926520691695283922619451558922189258812480158371829268562230758325301878613908044634156729045969180222790343829938945120058753395392198433917174414617263823286779525513769234046184342967250418449427496579852856416111043980087280740733968709828934791088827910798802205311909638094305120132678897910618788251701166261240464382659508656783921470675398269779656699319470894524218682120394834711817369295088776397031667148090372793221497712771499797319786198829306558268026913932256768637865269918058699599528443299260150322414090000616462272595503660933764546887546802200506730043413198755093103639002435618082504325742532162744433682286785802725874220911302346287490456811953866020919080632809690374939551864385973847986393402893010538129298374297320860570309105118777750397917905395040275006738973585535356390051399830890353049041883063590247467657849479463220670296657643848219257563058004936677001298467849394458124561509631450413841457561615770732338330004104097021704555952805676942583709984229278636875046372041934083236168522950166144233997393361214133226236636530808415774870194705343506238841352355118267260563306787088939592804937743839832132420782330639576477648673576762270110759493153027079263869343797743940594449451788825718453138488251214026471582527934960606824790863266202195027886664276006876152676515847882348279026830273279808414610441896126208394595056482264385857961368417042445613202417239179824813986886774506368179082129269947972497092167991252260347016417515369386102402675186660644698593221952866307163740112824329270336866129812159084027749844311833021861337108116157956211993434624031355712224008415723966933429363800062711247278448440843962725560759153866065943228962017421496074164728850574404626208372604049081491744240729993275406852922639241760941820435162079492033825473579016089883214289398174069236997712968218872358763517521207166716532883675416435689950792805356183367308041002542830774439384649390809024186719082606861007788852756608195370559942634466551794250548031404778130597127817358143026597583814439523770651899446114500677727204462762154479803008869513537953499825831976463344061998981881117174527899729588585098365248035209342300725908540800330476269361918795219374458811008335209746629062685341331231405346760755025724535670325768119093528284761297299026998550523207459810284457211707429241891201307494358963880098509374175692411406019221632487261822825970535059618766560704588543031389931999306818918498776357880052666145555210844542714417407644265155693318807407433260740788803023055983709092425367144816020894806521553993294251500508683546786292702297659871238414722491576964972674344459587979452719762448152835304661368871843383280209991457452594322351994548369541602983017186581250461882535877404474899461507526529877465109868135215343098230914058383139748478207502756625492060897607362074537940812590185782097923078031329740074866408046972870564823957904290629928021549155046335388502868139997207388179357364641541968510082886344949632568014697925070778223208293720975384549128030990196431257097251253900920891561991986171417646662007437142255426601171817255906568702633810931481822226321305287919435283754687498980723410681960635866965538527464185003691807863881766835734983035996628710450971537723461456608551633937718414070444394082746664352159693133311279417764076492058203117296636340868194529930593225639662171903208264859612938074390858837460224393438926822101551378034061284719587479915783196164629500667540452640120711896336191908555590048081908794325769348002349491678425197671439887886920983272847316978022444372730021465003911566931298045708521305272793363332251466686798646008385356559194998238376961184535286653606552499932720522273225863231724200148194241978277055663546498461643414361847511662744032029874727352315912378096174635841600566128606419100708378867609844684102311656768422359754408385893449729122492147385645646194993641263192143018306277751538508471882788378688481495017904888253858756375631799735481218356581554492272195524938549560041238061570097638610466668541999670652536182210199720707405575179603288651069368670884188871700530067920476993115099828718183408169881691395425763931880307230195116655543352546319941081036092609713507702492814021087584204777585438344594004163218086308327066232014171229617907787975936567709770256890052414140572422507273379740433954388944831908063369359791640781353104462657751539001116263806867582859967997655312576130275540640406598227547484507774320316737732805384868776158513789450024748292745474849290307979508193842023070244849535264722416015861678185470767711318752664919493495674468612751425011305090492486492742982797744067277190178585401179501346126644204120587048591343613958622037577494187028867797308204496321869305395043071612104505564269810912412043583357668485492002731874347455674152874354837464947165652090940681346470582625424661982325612355246581278595516301852404765111335492161198789041836173259583273096298020353980103035998286770935832029439924273630329467693927950769836020880525600590343617066367669500815515215945514711105762160086745761857602983337838248777409797710245132041609394524072718047001128032627346619862121106736556603057829117460194313703559993176836968893749919973601546513743920005481537989312728376737611793750407019431223831954572679781149170201205271867375506881692501528949146087662354598080944191747335089038315265488020974352011933157618747523735329246347043716484012664642507757880216694912828380496183146786040851823396380043518952355167614987149333958366267606918471906047304629256142950383723581966956870048803937570835263854879103967146581621027974674076888759939264777286407830639247712874346508022905138401490143853239638902791243471122368855928089116782210035302804819258008511069888750011514078576552772379082000669025601113820611022661965026608347753461941758133180321899806049035053754396882039318661249887158000749433098080677919513640808988617727557071549179893316477161713919922682448279188179160209299113503870147590542532079363386960165383391806928121238694539246177101679792437016264834353245894195308619703685648823308371768729211161201358067268771744303446611666489358246271476166905953002852002598226794174317153280928717980159766542515968019091496632706636042062847596894586264541112139299931522089371234660703030908448023503152418330708039692613543141169178398645361240791339119466833429140034247931178236126763472362757563727434562145563904657982470486910382602480568840271979404132496063218567178611240773205654215100000515657299483100757643425209810335499070151314681306976736429099196587242936368502870702943618645449622287797316354552339201629870876786973623470265834186879320535719095046383444782886610856985075641651863437497534478449522208113574297579927804040894146302154761464188318834740465667206598527318423412881501493257870583274338127680924202242161509163001777847299274879010309405433965767926412085935983765725691595579437413148388155032044275396955896751872473651881222875357446950578150530754466213848049232750227744023247063068818603267395742001130278438685946092015372724042881895867736780991024266440942320330055288188863847006136981009134866499109343999053469357329089460651769677974064201517139467902074376089251653859892066675923577069888810450643848975281484901812078362753036968697307019369784824553321339512334584050346228361739242633768405749827977356423015681343303830697756185696239195017310154796676699747841818575064112409986933265591420109912577806094229292213400634181998637107993990805031801197006447895179993262539040726170077886224028769988698838966747548663626113870142431446545541495126816304365236294132361615130681734611940289372482269341731270140455487788061799578803563534862235181760911011645924141392088127881088443410200288009605798679497164793452145467793579433844398539074130214470537945455801317980343967164897158065427148514754480310818469236839803556447200904964386445387405656496484872088780040243428071333942994682874083752494665506932883188355198157633810728739930701684375239346779485148213614608093311157991698603653313355854451939224316977944317709152951985059614807687811942314820922411619177118274766705819922583996779987320151141066698568034737966194800177557717940776662524737781936324234065930853265440019303113634719169084954454831253432942089772938298885901350785529007441085409917298158443308120216658220120605534620289163063509132054114369231008402967043126146438501895669900623004254977941429401858465881435371151039440124862476945297397597525127123058580190529907266758805445826842849694742079777302184155976701251493875959665123530273360695087948744899871521329156249502530493775799685407211409594346007576796517463612883839598457493807255763374567946151910916384592402484056896016628858560068794900714850193233325913383139480731550781817571324276644645782874012524285174224762200204292567866808293701060107865363696675615927148295499245877791456009723358629101620578173246596478813260656677514866224679713110713939703285692314811838973040074479321080922929520235821568778427348223201630693849556434011834261278060231591209293805292498137739140833112594938012657822816370811255752901622960007936086195901859989226014096162019260992820997542136541602853239134145619387915356930962812669263972520653218158855886403083579608382886642728861598690336845661071691645977339073916504099236579797970220683657955982645492084964943685352135893106537059067278899027889315340184560520093754441388747728607032919550828695565465590402757732734482583873177006603055114521327381005500992439031080875813891687815282336005759329074947394087557762257573347405015433101992573304512188821504330107729487425670500648126400056715700014967818684684286824585601496234302220694077993328912033273681274452121330627367331958135676191309479305288035310000205584588503489270338146226643994908320122336820704043829220116566545025700499985992963196214447680670258980750680398258616041282063022766963612539162553852673035406166584113823905543171339981788580307605238793206357695754828277100868275481735987484941555299216893469982337022790860977640869810777820722217389973107253366915786785195245707874560887421326924468018230906376371031682952898241039089979576032330526030264209836603054205635955096900545010817658786778931019803794746414065087278185562443232413306974172243329460427254992286266167612692025453320891997835486783600422026690926186142381109866802163911498242965583861509733986218132334073995188980158687387827770855392778234655060217606179759942000560119166828896202077114321749345241124027463371335524731832423902978606225684703088258460080990864636421260807978836207925524098970570904193692322041363449790829065381944071769278451274298722398989601812119558426226643689190522835526039818352417612881224413214093391963973800256336731757820045121503799411686436546934404896924763064911244778541563768435683602373262698722738467947990653771100846523439703924258731903709401380201909614331592558727017982945432020402400298415248876486824842564220682932446192349699356373745535377449202057215747873339869790913966223257355251904024287007582972457546955158134093987169228811890003734149332193931370668734560384699467520745756180037501800810216139316666299578235294145214042176283132757714255134945335839201954000467097873612717114252298225969733924101290823932493338940008409491667484161515766939224224322366564726025710181050367206245443038924067748189060437096196617846317239739278629827444097131649243069739327975934534993627704403196799227838297368699117829806602800225878871763568521193048354134605128249848767077073552568985399082455909213389643248074988169188509649386822900262938048317330946572651400511357555014650434475363127806457912447349511561793948217586618647332644911823151784534875592841884737650403429290487787511725508790574363231322270374372597833249107493421954357217248789857991212317147167029078250562692046137435780446021814815303557671548860110993378021839389078874790705121837860679219174323262712731100473121097188852503940605934552299999536402567541856816913994678267112558091464082932644592585963110918579494429475165303944907514383760618151608063717586902811918450621528962652226705979265470534530989531923111044494511846415599421384699339503133490088366587230417387682320506787182055097431860489889465309063785615567157199221928678568059856871223154889920488869411069761837697527104584875930265940608818028529819916047271650993474653107465893847498569921072501746346456823318370248643048017411090224581728508747633642914059584761278680579942988298828398699707151445855162870218462262035256531935145087421972016514332836983734728093086443472805036796575399133800225380204568542894413437062643151997775332720987054194639310364479161798060755326990726325481592119340399433301572863662476156204137402066840703722730908115346520140428022977112204212656750890198378624857333373394100449382857495886092100217640992550323236073566733056381750051716731970450412618556319805140208865692692396706343509687765754145078053340936878073502356924556108751295861347185737711100271709193261974456202109944497886128704737237726870671230103755660709888347445521838064569818752223345606502309954709916627364282413664012316389896665430767476635152165032816314591939177871783244253787426267093810962348394391725846699010054096608652243088471618206554375992361796755551041665111787158254578214321970272072705836941555030493939081297565937278034305758590070259727898456619101686243186978075984088659122512487598621025565265148375283417055313271187120229216106504492007058541808740412793177860200301796671698990216187947977479429833099817035336550104972356846581903237437795842930004199751731242329125833771965572509137070557883594194601446237299797292448424116319527928539843659216164694290581483967243523613335511187923309316679758204041717895189547142545449356211546511480743335160926333489888624492676070581409326431627175566904367956870465027318530963855313197729695546687209068321622889253896269295437579770790536487809572081672665158179817254019147371603306413599680390513729228540382461629302398926858742812359959300417883128225909779063211924552933732991311179494650213890375978061489844932174668828663371316327205879353524053864440267290909560283305034964907093811938906504248915036601458590552814918297376619693256749564001096907838917834912047794941753618693338892663461088101950612310592696175501768978351358470640585695311488536712340403309898196077461658215579207276532964797718583030104769087793829435985698243278359964375901725115530169806634977911551544886861233468899168535568116008376956154494495855694097567283725187805769201053628593984331080399451772467754787798201708831235502798116948213672573335229052211739497668757977408935481308161683265480772122309964503450444607171809823293085237324441159256234399461380996610255779420048336171831573973399200854433564684505060130281953619802154901066969939232040785764097908365531601416510914560928712578547827001165518643222612611988303727927818020064682558627646097900836511630963694902008511564354206114079217726384248696467649030751067267225065601205223718916851401530253548972086557802518517607078275508061690949117384699145103223399528158229734626087697566053114734025237951653237475103371775323902597418542507360001360135024638601426887388913098045789866239972393179981538563866090219978063814748731014992878697757930776471777993545005016313519854261930173131216195687843805683857571189040867726531949960543108452509948393013318463628021742054913754997330682534207178593363781929645689016815122803200009969216214575458832618784274803340308857773111318824953805175739508916727316037984591319061003029987446027315399888652957800069930359544412863015184924182265931243364138210822025375100575804019923329803151315278041189585647310587618096274681833072274051772401509749400266904524139405486797099792571523926491197292337824744482688526903592056442907031927307721765003387806012309384534739581542134522610522415002084315310834565672063888916359892247869826315109504106990212804162488301487164638891662647346968785948013674674759794633656336557313702711778591886244339878253267901658611763628807152719408466456238612485822889889001874171170180976313196855745061960781227404143150595517453536235128748294451282790525393159569264202034812597329705724727080060966115782491896088755817489090005902072682193353853837578699320820764689633267360377001570741046694389369457616742528331957947324155329681037195088548846303913085246822838450762740002101801334158025639473165906917290344691250236648882405872956248525100431437589674133513005109638508972592815471977903115388158657348847997034456352029050975928442855346173656230090990952217717694594819871602690371265665048953129646101510638895353428554924147178480442323253992415507201487646778492086877116170404738429022531059634862381164296872954250826594526749961353210883442943347779898202374339651195519854180200942371602568120921286757099632840948534902300459230024179576076429295618970036318001566982403400590859339779495320560013028123794412613518893541690428322173445065450063509894903987490413849171809808298360533972714205746224499538089853417231147342392641077841427388143311220538446451411161505532549113620520814520096451954566850730767386331922132677518761432816647105614272980664749640707027542991898439975165464428497884510581339722549849565392359594457756025726070391534735696585956370036087508359788142781195588112715527800991346209837297026753117178464670608436929453617143639290919549822044689214030534640548025816609352264456554722461995441810663728624903953326937263365765324677548300667593931111476928177834081354201900860237542781784593350379507571962354124665610582920435877434609057683039140957013861901779708293102828929759870876872322328915002940840467834465534087487685370428730467745301589836058259868492471464044854189105488747380025980281590445174233600309297906528083916669796120396373619896733580069620810592875476385227688501663886825605528546332338491896621461168623253018867446714764225758592965626878100496059653758922396907631326623939111917704739678340444475524765182932131049994834174729236295335598535678833414044778672897302929827633059398270314946116887593980702599538897808158298272125934335921396163836975944561725427959014509373114003264967541650175677141946855879293954480842463715709842002735418818742992681928136865974714463639695261123918734675322877856270814945398266730968548908516093752542090080605972150847715231419874502226947813774679305972050997772977234377633037304945217149411988696142898866561922920067654640651749540297547549092480143638465908543843039916827379210721755720784885585331863398667261102180743180303708915870641631842278429051341100991379661950261143305309212257102727809091999094588001576418484382100036682380313934503578271710566662812979787919639108280060644124017002153420901848512646286747720231624045984251602140308202929657194050244843723559006876511229191529464050848711460508778944748518117332578039179374786793126241419368015533718729300950275434978584738309766573162307407664346209119813770107087031737196983670678588863541974113539631665228179535304860804724285670711061960395124695985429930803927298017861843481393226826479406481683814697511565820606833104694990665634975387054207560031231536584977198216082205607808442623039461774573491999272532556694615290031824654985240598941517938092488013119000419335217472993030172296968476512324552471663316958179527965304549621708667785542535952811729421730947926534460864504644059983394114204551285718621860609287071117487580339049701392607957613382352124696909133584164510980023012902252830582768051148129822299525342437591701475249526090606390490358720543156382726807211713797220595816979039657878563628070538664945235733874984744835227520311009762782123841371899050877482557317556015410581616293017108914333479968404331950054946245253689861497305002184503155216475188193986661206935475041908637701901025391517056796132867204647018473438561281784163701059030952433428177314048191038594364540926559302870441160034709624561201091931246631262993325712005114277275800252787364736306947656376669074719262857264210802520465610055033852590511179403729043395505972655169010383944626655242854819920777269830758027437722351853059707434343116290719461295063406328288626541831270617583917041569086464802385208224448215137116433940598789642975832584471448178637423813594155819554581858258559484855602216771064954086516031468624074565904175117447504286060134307645753549549215236410299986155946074211941994910939679678601456113995602778544302901278109057268065179784440587608698927868636576633787954190106663411744195989568895193141601788447145467069476047439991771718159007701991388086093038758055272940952684402663930139308165668206447627767926747640429771990878769821279754990112592952140594432819276227497135450591429362160121516701486913998190036174241110401869337542619044803727714607878392752794239219283025119105971846037245182344584843871356191487322601342056175697672844279447308800591695528667939927272131870334780593565385091952977179181178896140827954308543189985013184276429153916910563002315931162306614291473460582350438167621264916710632373911778169467270853336075141923160002727315667520808489347622678860349338564056062319869983263262181876085833019114180115174958620207641530822582711872702690699355067882485881649339962045963038125044249244745843488125372473777733279864982725762425117500062674363470790522367794612363546812425077313703155013801812048031236992475207903832263906059034222622292759420504153442526200894705031198972280324746868209194207187667076238347149834080014477114174860924775522970794112550067841704035194777164491650161755505811605536721124334419329060579401530823894044195723480796471324079950935182206371449589495585719353436233625052085954895152229518997741177736726383211628752142731097053081030833789278678616798537663871498857311431061727274191884513801370514412245560109060158698411633495457000046393555755048786479780665152654421381977185855175293050657227717355547232946118359771685250701345932415984239671956785590461158858844249543090448680305210505816925865424197715911593369316426535093341899351887006476990261116177401851816827097576014456259347750055850128951203741904898902119207615034624361114278035624385019910156279414717959151508074956584222820025412323303477198439466815857707764557954204870983277077973320800635283216749220460677752208462455393747201808696780917922749090745525203613355143375320918846892791201644752339201509867765916247192870709191708411468186024537042270782541937897865269174362918460271521281007642793963761670985035814094690434512786697342839822233753736802343956708655289429375319174278421958462125301540231024739120755110232005603120182241955957048821277160950151371073928004812942564040352014478366866306807330471277177356166075234971859146039315575904648238796892359162633326863028653956099844159251331376074297949517314667088913633131171516187421884811878801688271819666183537961979488899181475792239790059102049529707871648822963867320455965144402411581303809275160249749310241845836464782353671286969019657419225444209886988653449588147313775503800089132360575095481909102814851418766481999416660159273996189303815604139401830396291952635832860182012346301465536813128262917401395311800967082159042348552392903443087105917276602805723132436832971047189574884534134452087230590161821706741471006373370217818440406583711369149148549025592193199741366068413255591784341028271458337107479923612414504544868262906644415196665305226028190707957909584782252763612917470466584216624238255668522131958111454683307907404509471100053617234493544822236866923051281682446364135664140449840685284205524385745024292548802333880086262786093327443257135457445986875699867376292580816678595968976067476904896561998300237776566536737246934623217913643863793295111175002696975921873052982466471515193997021478303123498150187953065305598993469412345282813088460864493653991747896140914373220387544551149880290735631753248260444036916595612007453502139417722648768009554673821396888776794556724701155846992731702757798945156738606910359016989127032445121224795347209774668585060759584040729328367814883688619512777824316466782434852021017884610915198292426249295854166317238746835894601739955379959797613221956636240818760557150772217738151188387119034768192186174432819196553452259897447497555723967543049665050060787118629214574501230214735854432054583844989973524042161412458058684670887310700578813537162103041934603854204227760872991639592172358977780728751842706651326197481509085803803270251648159723700524819193905314900107383752075353874442954854824236993546426959625314545003727082035520326025973350070969193263855195187618856383513210087477029201668152545284184992728743610577337629657694852366023713314477099241610573179697915127891754604325109509473135522709396669832049599114795798502262064372815126091515965203684520345061863408121486635464266517735063449559462391822871229089913973834609354471524823772940643194218312827323355841489784587428993513385290321016503017701779566288586257881713378287967516763309600271201134115144203416183634901990830897959205555095224016561173521492480670438132361397002390889650586403852142783509604103216783510952646534506548636339713111181973629619331636345093434175140734382348136419325192016963519172661036447669494921421455416667396360186177091231690905418729689560228449681549562752523041117247016741614776413693105082694715541549009823689605595581524587603346673555356754207874830174123160823270137061889926018003857818298010807320303294538627038644754677289371045032509277365587980545305848853707065462334540359378718524237607600731138594589992503835054053111203394353619227350968628958668797152241301123556437625631520568112580387225910164123956727220126670677852193365036916915852405162029033769730120906401173999731619265142215525876418910885420791704542430966933537224898630604649720903727033307067659057569029467195529364220366754607037725251216533171713490872959603763098480659555094869922285501195411331234614816240371951532667775122505679630384678050177817479061905360293970763369817800728979505225480469951088948212874829830611262322248356715913309686059058881680160785603826554708087929816000929119593358697668611014129931723793571037770992300787619745722975833629058038709079695160565268321409666253208234962581273567017674010524431639491827719493939385699432228355052698460084279156606346498184208016945006069799352998116084363075704013273189768441373150110746977757102561393426422905862218648417486910564201881237761099748126597014508164891390083604281217967028210717448735636766967546857368365809575151934797313775002655133017288971353802400941273530689896747064076698853118884221550330377005685192838257848482825768105429363971481526402268572139941888061428672687844000020011483441419706404175888335957630537856640063075979537090210347344865661473128912567193820938718712736111727598645026538048632841939912956857566059382243714147590058174824095720633515790982236668816859030832055034480340655729870162686275363287666344069682002856982582329864475737878892914046645530889149703853211266598660241293457082388274359318450400907505432628782480942885922966435207408790360175066240397701215857991125182051606499934680171644573171007037941470030971797121006309741023765435963933573866204824442419255113867958866562753346072314653380756304531327577511835422979134317708732112528204141561754492638445695167787826010708170703022396951102665695635148091139403762196554230627253535523384129103821291154219019923156697046825124590615257728193806747164522046013842843778500802371626843886953357779853922097462121131818117250071686331823016154635102007539306520066088171881456074529888605946825511732053629913784360043356201653717903838712832000128394915652886792997670111284386550366927667708617149785538053495753825587314670214297298416056807600691806469417559411111589700593445140837450681523879361787796487695100458486580327871930250967204227488254074914163191843648089259698493648903610860321522458797601945267958867030159310300931624052855113569886137181678238294017315724021397000303933544388814004122937259143864672093992891716222069205344253699445973601902360917027290810686316589220508825313844727680452473058516588447092398414272409486627347034898932360668344725885279135203151369456987074547430495511642957745450926489730966838552572213971900184857586879214426750689117204690455470645493213402178237335953490565545111674464230666417454783215281087664385886483706908819413245766968093740487038829523599849146549473224130877591545517353218546024962458710668602351399076303983872705519926359793515580599092787386028343299632019934072902685709749810818346227886779546590083682121525181741368989492451613252854304186015721076740486506321969478122051149491579995135883827702070196516841846833331393269370714871000212261235093596780966458840219232270324110243117862777185327095932508508051813710108470989011569117517669026689248189800259776433624958315502051336301088197775363029223361958357932263384282899693502781279301452214795189813886683041246641372692247916063821492775896054086497645185600539421149836030396947457440913910982735541321663775589470964489705022052234698182002114139117865501811693937718805100386505134378739083211336773767943246715248420514371016412710557839632487266882815477664958571266061552999406029920429821860158906922628556196955945946872924156328008386234284722125963637886526222811123623359562687480825084963809168306822542966175373337674757149784085329095786743523749269668391991399148465949992810738079384570840118281006603420598200410953072930102013732860454399107002527197315011158147986545579961475962567706171609845175802693759432735908271845741444106833359221710637406674760694818252512457062853020966954300223957880100435204584572562619877292560063221246304320747133825738137084419553875162076416606133712597591318538817590216648866287545202130488205379902635569918899401152417654524983657869713452169759495022090344075794438564267415724395526260947789371964889476255069013700296670171477270871106930525807107889478491176418530659025350589128271334219448810612569242057213460649422782150003151349740785626404061649467899201669599508707003872442746019751165479642775162362508239820754139497875877974291048484232251666116818242069313013399151504566480891128869492706746718171792741910940723053604743698551574377515675145549733941725987066469407759323670636359586660853010151042590431768494257796876515511810971305717978379374606503606578569265285069873090477199447951127579006689362271455720435841945844070711964693154605899770679371743741431124964134072422042043441169062796542295433102399716757869471053217140663265307375921193482523604040009897025545134576969383155121746390889014257071591915312252046101815811382185283533691876300029899418582283904590127267640085912279302471548165305428641400650847872801063859423298123292459581397926177676448757704753448350558928905381008435260716153060075734808731647069281635724890284692193167342008254193752970903353325687986040670950749156634079607395435847352532373390218841206582844152582755694983115661814552490515390235458013483583680585529025144674000827657724067759042026265777455630681399201616368932307936163370832622664656795132501255163700968511474638988350492945081858792325343054522775783832535851155600336863703932153185755192904851548743639766030708518734482838915833146614476186039995694456059583425003777346635137986356287040858990339900418334543824247337755730151028020094773164958079313821233105712947642903729711755443081183759314774358084157224689024587068409323337384924158635497168383595481982077888541691879001116501414652736574197915841042778249575541770222057605253397480824290112415282054341642716007569852753085264744791761309134122745506655599939922699887824709030943007617606508196076736746037248963007618997554065381058249122027254957945347264989034058964146806431891300726665038878429160912151496523394769808916208007246687382198880787224400546430894399029672395708497094401843024020591095094475727314194172089637278266185366121777888028327348300676891982024900627405992573488427151595826342567832705226848285070911364768147628638014767717052261534385375290942525458353910998578543223599784677859586921312432113674589765657094540395457772990295946245319982226959083041795461298129761090176128080554374397935790374833209473777754699666667984981381138198763141672314457767035071090315136475450994947469853479508155027883440474387900112306308376304120498281195200146953262665428646596416937663264407873672246861358559103273842960126862804423758264867571560391156050665047878856487221108805123130821079292414401785526439230870480909378251383755995056715530013166861132301969855293617528515918040333351915261722764978008852812902654209127742466804479444870967719418081746640899525354670954838458778047566309534293369128840352671843514219511567607166697449655151096100931745932443024676485448479320382191765810739962879457563116950963529203112753899064708282016136922982764638383760244392056781325984586702570251336483015415221751494251923584908916615258152399844885359203478442582154173876960463063568667546570668932094418876344706462891341084312809051320987728412155295890949307052515009162277678938488752020565691634676436166366692023400936894230663839132982154798452413002242016195059095346532496755560807328080983568337256240531340705973026432141835572981053533173156493718572111033296695392475090834303389912137857641467387472354425232403215829673918205841234522138056156335372039864907966992399386882452027467677245126005934857619852606761455558509767010005786834918699258649663059723365044485568664129480008925748395689949067995561645067210760168249078901694758479545865536555505430101987388306542541451187756028817366442139606876283250188800812930144431811799129795765905225432953960057078974035098162665423176042111459568911649223671311651745001136106117789384139150476288067494801808645648653601926256820467330367883629805716604681572826684402259084981649681836644646428259545332853535998517789746433895110788744265937623083308333051211260946537028104575387086279292632617134108408859265503103764551564177242186348914073146493169062046769275821593995240695281673469532453257209375612605076024315194120355714090629465663025099037027147827112458511878385584220920399998296685425699088644043266337577051358959962136198467646692446482577974311770200832561030794929713502994126536336465506014165701333902638105814077050236870994280687799265026059343800880955679758516102512582013020158089365054842793973764063831905292136024698642506441638288894255726635906056294878884829928240357351207986908795988139124864952738613058460071132350734603466804369563683470484591158830519789816373111882989156856236986160195539286131044603318827632744721693394218492157584793609274025742125055429961076890005946859070337257456892514425309270240311430407555712285901728115316346527714020632382035632180859470836178220578668846260700953129908558113789089089865825275763458290191762479799675165226413420538666156932532189864733267111214518334652019849024609722602787159399933878046319512934351130190730733795154192005747141685188680523794733631988072818550403394805680064074483845439278227780896064653085057722098555400318627170931468712782295135304884996882310246826618666662112493915677498142844251901724391101857352957872319071350837006612564313759957667369778197407672313680746146352365994920570848714462135848046151406119708967935700372232307855982636873483489735189514290732191640624570072167613803297770370669804689974358754142464907976908193367360932810876917954639286268382754013613588258555655141739429816198130933015932089436561350499765211035732331068861404395127417873222958559720158634748626201990471931849794652665985573154533944015832596619083770832954607213417079135275956233035140550289966728341376058501883569472931035188182957569493891694402299291915908954099604285793865611977446635046110509197709544074568333912060066953603877924661662690824281666698670550361170376572268412231367977760880673408355955357159345781187778204748234654686067964283353089668485495894318054661308053903233119554198555712768893094544463097652412491277802299363469254974039377307909277856358021202059338001945169894811777797197934615075381331954150326956799774033239797375508585447617411675401003274968786747835141446256584831059848169719012048612502163353584659447218154098175818148870016303110592395282695867628121578184597355352066692717407313455647859695010315975576144362351375202712039316418664269405258722146907949443023165243727320932749400817442586012918343267625317176394987456469405336778648364879738881437161688648143124181891881795289600184715208016346455270656531620359515315588291117994311442658659428753876977033664499010503945986296582881953351619126676344874039802197850731070519153452439429603550641194939085185248484593163209871809427305883607915287534039114830403249996021301872645330267580794973758758586207460863513500547538349260582678654011998560245510433726164122339052608550753796353917356683794373504741548769624791405501346992251638137859379376250324510193529067239985708078017738046224661625346089951703699874499051260810460575628549897436671352436002739824476932659216607067471715639440784548634292119718684759793011360097316611563457876137703576622451714353629281572489700246594977041075006103192485026671986153058521075184066747675801112632672729605714866607271233836667008075467521083496350962191084685072084966831214297022264476570703925531729714218066112749186665122630986872264758726271138686666843346953736979755725749012700664471153246025799306511590366641798384736775807450928123487999606053099759074554579779637892094381332224612656596004759696315384531011556910929898121443284154684555475433810470270617737328640911133524800826434501362718295404780097305789694356041186911083021935700250946648660408146663505095797772977472166983030719826123842389294129599015157616949237310228106513600401589748824833395423056680537345615299630829674554547094566004048640816158557817893314425289242371275499482658839561346489480161157098791989090875006507868645745557756825054703958217995875962407767527979583211171763677299653856043078413464353430529926814862644053456017685589965531649458117243630379477424631104896826085424630405491887761902768388046919994332119782248186513834041137123884796519588004361154797200520455628048820286780210354047257667181058203885448524234764693341639607367672453971952003356472621047981742121903844936211779409081360274970982006679620147628851202762509706014862940091441335534468394832631323124098925087717266189201067887083249137713534118063677217266247137804989700781888039364441923878811078181339880747241777490295747163809284696664306368234649892812658300618988681653502241806570004058551291454825675349953147543873077838031497322734429998522095456386760065293499999290744706447425885989857863209037403966274279001152713476676284766991280368811449552255691724777059847950319259534733091861582404120141852760424601648728268749873455513793706081455928945196180931995645973252057519394048591318658929517818711932808037158297415651729144530600196389067132478848693217158211134436109490006884779666460800971353170164220843379983864871429622776866895758095154067186340434947300134121621832222678824465220801950552593802004980374913240028797734161630944070044825997324523547716007889569335366621706204693096503799981724129955080626835397728292790816407550541855601421003114996477776998887971551428453076534282628753814830043961737488486979982926589741754363712214453529891073222851819973579070950802263435314706201752683901261060333849727923429452931623866794390794008816486648687204819099573281067055939606845375209445589698077767355405339391433925898510002919941161019224451034163723845865622209105084482250917336843098525536256134306028060831876614309907367850850642032162976719182926133408840268052425665677970500120428873823808711160904587131765302563446479215961846470762405111428543643741004737669624700547531079297056211551898867795372377871515539786126499610818779882033325036917282857024287824016556438184340750027326239500008442372210216700944462122778758566273276704346715345318899034102765775679340234362292616275397536895873771146225320315876904495001853244376572615670163195227704057212377626638904021506821942531965060229757089450307548597860249364547723074857090541284911583576427316143838209197924881495741586069732127794432669738270797417929100420168099757627580428732650325228029239402416211151578439565412456140695029978346910442707858096936670915437629788905702025108789064706960269637147952911442494367986659680673882481518861349490037913598064393889792085257772684676194685853161076072768504708495399024806675410910433031419597482314066804184263810773123899079292631543908365651934571106612952479396913962307270112778121141499239250632275465872469750788180606441765612632132325604933951624858842496139950307518341880707996910210082082457077280775224649932854692412995324498586320332494828952045445553720766952643287193556019164428576895916272437522789649893570090561035110773814716745236834081560795254743691683572666266358901350796389746959389976370395757291269316777498955756527180215302689964059161506394143520243193579350545144960035819710551015317810882633473465755054279786900260193423058251174405339957836182114064807992800160213580387455606822577633511415524493307706027614073673695172352493939178870410289303047521786722703606485825425152265414871140239611821671279346683380709349213617223851315155072862000680890712368616117194268453808138164586889908678844187887890899235027252222865487086889075234117590093248990446119874838285552491172180236839627174972334508007540309166959023007305937110702724957628341312470008049219077399812687889441386463923372425063630383399518964375397079739704950314288411196700280318742965218235686240683833281848202757536773425604077449110734030439799201422097651039637103384357995121225956691825272913846634081094728723728825516410332223264686502946412242736710014499528473975275705072629819371571067068684787282723368832306870585919135724140004203943569620006976829118170575059774502355501871236765786335780739411495596616890392744329051908775135345870293120490379683655706935364850097350029031410158181618135578125386347004534607431647867447444747594911559932128236570008256224621793276616231109477860961265529876276471335565108358245513661945941673632105116421123008854214336285769903318218217121901269169581952234222583800671742451405937604881730683422901994833362738342112351456675853991073830433249734412429488215987325321239740751781419949849191504010747836365058843089397166854188394900685233668016448624775693561590861662146392308545204835480487294686062732275277873779308607452273440029002859836243166733096256718013831581852505050620690913926534857785488317234475551233123549251713715648141641246295436566764518495350718382096213650723867455522145370435440969715837640522917998080698456656912221979168059328412328988073307860978550532335353645128980150824445476507747751822138854586280364882551997820409065079657001446344809021500328620054622799366348428513091560896227463491648621062453758181377615812991934861237334107809688725576082906659013927047273314197941423400970495314645896052377345154420920237792236408518011375168121503128470462006911279968273811203778924498330793271518978642947245322403087531309917825897646456903336675433100638732910089210327012773360779237301848234924731555711513036499869918462152689540719542514388824040980335774343353398748617456312552870252437057786739073544232933482849917760856179855141449147302497823008064978680122169488185721938724850894947568635566110988598129320156795841654291651678318134223495581546971778742418693278877121488811919947808023740537534175923286333165155086026414833109383962032357478068801600398759786489613210347129995529177178772103922753294655230350355186390552314879594398293048503304476740449381534150057647671219723755880809465946901785374393457298416132897265211693360994820550972697106693498920852531386376321190845876119682853294564070097011223284697883384020776474228037451115175932941343813934008034553818504431726197802811012406336532430426363761316672418847961691370854430225133011791554359675909257339575968467388629246086252316155909760935809326593545864917199115155071867587476417623566033926418785686336882147209742795534573526111607012451609355717895516930149624393911742961876082030559934516166328775843963257022600671705214933540162965414485343635849979057016537504011653027317164874056343487914457655609055014024608890680810352167514596366360812711501620229521972000597259613804097599658505924694952891447934389473402914603538052687652163999821423593739903496503083461419973734357606944325390676950940869792734489390162773729117246565781752509930206945901733889361679103173469055773379141094057903446642707453592364496791924251172845026912200122296268886129952958766384233670118308293387494580624088352145254920310857823554277864924476635075509389733332584721956164014498952454131230853537112412550466443666593561635954449156074826393891314220286598027319071243362359872602344640123323994037950821179059738379584617716453052709708577633909865548835574707023701563738336820507965730699618352197994996141059495107765870790747383374549469513613976747585292990271686007574529331449450088420180967684007934770614552581331199261771903234844952891375730879981440512968947262498640769717166281907381466170952931894499123202161811142843735559563671707534446221344680889844821145919144828370644350921349653951541325153950627021685749874925285046307747678731825799689484971829084083019287303030518073810280951077176967993738346923577971155972913171595651430095877821490106762379894998365173076761655563649288571005973777320805577564032132067876319382084651932334790868361922297387221633797125438982552226562637668410835701485298661993912663514431616515065372429334091214019868680347741590890585444011309514305307262062096890870277036366273222120449228765506447311921048187130060305569993511567175600431943955446116285530241133637751079078955183698879966283974838701590335832876037833127551911074884767603741852020299285639222340587600466063932426549811591718971327654862384655498654068678995820050268025275400581752678363446788694102293160653097358332588481926003119588647156417693708403367456834649977082279308576254171371621409498567628940970999533476977457248872371701416568161753328257803526648021733342715790623158173320768900175744725822865585832955019963136017561957090265138353893412473610898510666131808117995134953902624387297632590044011155799344170268602060800227954743766157956042565738409841713367645233389179778779592785588102059310444150312248896351636440186834714883919619715749250376223821089419369671243398353363855744086319589269840169075891335845299639717255312113455197101082876193223451350584846020196700564188189887434502426257569278501566551716434600130852330207557135126436909799730341302344614898640874945821147690264672637039691110564775114376690887649355351683769147646224906472807215846824424926207317076487578708997920158749669627637136607372685194465910362973378364480954801023164923951609925504091488197038953508367428888434543813612447189534085937931612983929023466352412731594429419151994558984485705247486435610578396904988802014563776810454797350839165006377924391685443722056782621775947958531761891653538452538418791111869086263130464858072868858281030354954663697969457641625588952577379920035462884847952606999103894303632990748046055764579537955496000836594164750303051920118208401270250667848031970667874713571310433132749023429368931984159877420614824968835445744140522210290741867623519510850790517746928159279953954733141690307438933542396807886725666494464948571319630478500705021299181358176550770300461119305068430531748151506660598145353006728136520079043894713923473800250853434173764549230882121894183280245298967916152130638366592385689163206276632424858172605141113029198252387964619032516021743062933897574666282555024822216633327998436720629735188176615249149452650293938708306298735564306253109251396888987569719326729211631475338605317494394743624711428682523485282762174205370130959760731941851186246178501724534842566599921476029385884999692019202824566739604286589555960338632414319575802701559751474145933607144234448607482229567734984367550967051396725054842347545077943327710779894285202511605614584460562601474936848467466852940361475114414012427344990415843552863600423181842662816342135098270967731269207795877004853745751463965104666796380769843918978258374579838866411638641016963150639012667982463887654693840057786139188066687266244199033802634106272819892161244938701462531246584143459461768622198673281303242495302964356827066910292859231183317804906191323412181160485414573958607731222741843539668838785009926139913961226242932541679630766074560906698908145081304828255595966543670016044877497404150132955365615563624269912632639894846745253797952430891212499099939389268542390236734126203061608970627671445627884167183091458716748986329108682773746266122881688682253755186661644094127406676791671591759893166483029958647674945595710525901578885562192685923829353097472953929566692850726889248906978281110381486140951393270499609953118842012485219077173389191253488635311360218810978681372748811777049864719163830508657820111988320329997865215038874530234701367321457005006617955045177653039999408435454916380565570414039627417564641135036184283972298252228029387003712234588555556112944061297231688626616235311934362068522943654799884762790577680990999455261970096080519824355342579217599936336053946566313241677540358945118919610554276714329775745465717838696160028040574362452280167433388657901883452247299200534954388074747286037453516312030878032210809762518263988282830886879820145939540557325603886861866363127673048965234213515841458678784034934969546652594546674462790796546092911403938901182986476430260101166672254807067188057706092825052272358364470583274169308404731425591840640802184233195161846747422346102390127497574185917742296212381713661344885249216312446391970868055807506876026391534169686052110038614381838825840467308188011071070345912458518025903628336725099794993072791345529734844781505386806927480274317452896107534481855396377630516942249804475992648119000687553796502895095199978868109679252555507007988387791475516599031031512518639802696195497495274593416904472338637775563092385627387117908082783475427291371409154091253219681908088005939184243111949499340703787672988293265384667533317284066087915802200313426453034942363014666739210456733426690646513006866060930483934175369624972709974394825980163438014468889971441046293453775210274495745131973085988539341269196544312298810749347008631862944578961328839463388947056248506438055313920579763493883295216851366720458445950840559438417929175124955309339158049120690372854423882253309315478281366610032808641106242120052280361355495399216590911831948821900231259322359300754859398700554835719445325998866155814563281083338871896615635650778675629885815247876017872057993257615191840645546212462702617147452677895313726808792442157132651895251532404839929380796522904776422080956200382811695462112062428886474910775566033124279530838900731584557559434671540411806840120667600964704403899634715097776143150884005173970590993838924736389224605507389563165130106068066245716804249796919393785645593357886224476667686847149559351502579505272978476407443520650586793668691325419982079040177015196580092030970547853339763675348146033676543110258978007036765690326294919544383759541810938819095945506122566873125253236981720400331613813003925875249629372532399622679006330100673194257316954861894157356189823229031978036694051452847806762806956353675317580870629444304265044527381247035255255189249947464258912872168806366061646152179710946600773737983876058027441949864017725949623936792286375119001913161559083351710723197701602765313169522568616138005205391216383113643698811763579038340264714284010377334480488564827428981679002043464563227213854583517939435156233364194173273809464843055885059782591269360843580711579239293430596589287135471335961489671051341203782354210723191930136959271090037663561958912402424471555873128530660999751239094272637984811171263751989362735672011884468984051929103499040877417879119566459059179196587683065754809464557278720062575927208431128963650861813287061919568768923404021058969814334388124279344130423700515492830169328885979524214385510077905225588865235681606797009075428223258135360855865355013262449055084157756715666270769245987950850157174924297048427275131098701910396015262610190665595419258170330436217867314598763822792136818340549012088047991466038534237856000883499393757102038866481074969812239609042851210239137504105115522213039445264809207382343041544229159621705729165585919968023971829628795501403437076518717968321164020142623564140225623233070923196630785248307270242274714535362164372146962311923267178758130894285277901380610776006046924960595417124010495970307944062634740464804209779993039697856048100437093328759455376550927562894017833348909264090604327547821868947782869611290951505106497612678391232939293181177246051993196470774752727334065143213537772222684273318011314210256771007730754161894508723469894299956575201786641450753745428027317594909390308247413790980724163523345750722587384395919337156062634677407494854687860280649981735045021794207736611708512384164327595956294022250396165219607075767928924799464575250202652468423088186962980414415856527302373376820434607234885514225736275911154367362924884253057524614478049103178653002900303732269907227532525463711313320754692208278323693197960671171270118934590130587372189200870667701049081115674318546731871840386046752207662033350616823184474548096220905104189041933011048489454517323833559736766641339320996735442705556096207021459850700652147991221388175809188861659193622678067665893884260688995160242799825363906391084429878982944366114951585606513925524832600002942457997290981105778743770100538173507039642096461438119640428996905142862296945522791300517477956162014776428418630633301151932399451073239606808669056140025051502359923742885521672454713191749420208691060793152812513917385870289424229182701587949874535902361686204055338807447365453559969964357575179636266780244271636173734234089237982004632416399997490762384076665642717039447959343930327482729532635940499220280108026352317320380043198213130444770093168679799117958834912505969551898752237370091158636630806363509314422896233233010934341415346682544470315928843575104389247001333102605945673932531182623972697593388317408490175940822779003774514001552067745929213300915683048927396545576257100845727104886598481676657391028536080351347994422980584113743510596111767862453579718815005707672323803383837354744121809029990057472294235225914328142974868512020793215514064414315778577700640583610488848447887369970337834828849511037721934037863609019255633920391676493451888151974767673185670265735079055016695316240039285236076700463244463699040281377279710150283373327921197534356261119788423398965399781907848199353058299717783364353135272490166454536500829626947873849547622639684286276341718115279671424956400271861909947394553383022599935876298275005477945829164955510291041850087045082597605461844032762805759602463416040904955003635968846281218932387608213436637826102284823345533640735008434595681214404545620904839292700197484573945846206038784340533079739715841058092897460532593587221460888654364436086991436458327850869506699806029890043256596354242683858194491138709256332276382116953521498685719122658416870112049492906995012192799868455869526524978576938144595238833826827397694598157991338994232981182853904296096212290146802616239405722186321526427249645169978289195519014164874915740101957183536828152741715519060611756905352732666216015432610481028164497899385533211329161286273457384896209007279734617404505708637695681256928895709751571583467042452828364903245507021972552800380650510425433995429514376502977727557158205305450387184556065415193741511603649022509444962273065679959396799195845463630645893460384749065921426580314437183812265674338281671852899022331376949692355801569213187476503430376182630846295556631444238009367009438293798363450668803038793484936087412538238341984253454493299202783657870164277417205955917825796570921361473272520594865185157587860692611310508753552157572999147265297810704311280613855954810911852229231169365292088274897746572638235069186256153184612647592987540915623083107761520134221083642231762814345573958144614006985452065685507068854345016571714943406711374025130613761120071070084003345217484591870928519404733640625939449208593582076516749829782074177054023100289740291142017348657190473710834147330021237077141044902333427326815348328288435672155560571491597693440540930231109550055069568997188201068348355149970886621860376467673623404820779984353136773452984111932250281501633955562343355362742319702773862765800119810852762983510076117887026395592600775116389487123878278474084442726880041467621244957940368157410351414080700051142642109970115826082990765793213039168020127422709840197884104497544244476647686716319853672014762952731759926012865164081705903390079635482789170193717720683153171261908254367669301945936554795815801116551291822484692582590689422279063655471276166626436720371151098040653867175390722624398412859250829429555854289746198645205620645110324742567184762804741460994224352005588471117349921780068128834662216473817032026935520436205683106946621037226206356088999604351912230808976868142590639295668585763542404995618260095437914611319623460910239865457136707552353586472653201327134712661094765225901595486517551357953307380484338996766609435768122813669308414818061754364589194715842900480323153314555211628378453753519866938583137801326010131304837196464858785449695190568679517135769503874382637258518052232521309863205594529669862014220228032887873754491402536373160352190170480564544744267934479954174358199584861372432778158749502028198222154406596007797044807750398026908506230723179864659977661323255892118690747209553543257496380545295943522366038789018143249502668229498740310215754058376575421396149523845862392947239093504933430522807411860741532702430487506390684529133298606346220675484266044568318907620855497208824756752641358591242342045103292145175464315916611321512314938512530645511601193216466728518586086798720618070310533752059220921151136491498068781053327755009900320333582195186637088844787697193296434156526478668311437265139233658762999861682183890149298223526115016035697310527222290860269909708870324277865090563603797655619561351800837466923031495897241403351099472392677827339122140269896016242395254843933564088712952158699831734862776654446144951518850552589780572825990438799927489317713013579514081413466089326964974133620763762682648579742053937724628549978080439725594778238190132364356846877283924607130229486699274901886017708104299387031927185504720891412400199121815585797112048231404329344358888797107222841701597720039109717981001892576068405471049072925665836863879185144159797571191631051528470255689460386753313465571213042381509280761654412140469820236337963527697582396426219347458114040854535538439946871774503533196074640184682149513001049294196422395685825223425749049646260547320984507401384825081885576644610258453835809664696222043930740513363136403611413407413736525592173416419163935797812381426563255234595536862354873105364590575091987814568674250604738759675585464645693026021762683156993602206557693361461247094440025772174135721523040240572656061661299853777282995437574498343560745590135743611913275804292646632409660636527805086524253143949205251970079161226309972986344444366025360442072886696599468283598622026827997347108644152134208722911329160258846237598950846061506823029312181000874071942900707756490276744074776154882311828523279397116701021143442483306548394525196534724890992910076367455217975469607793155683853582859439893167368102675921263526829746870856214823528745601423746082463028507461580431322945913877504540904019002240568875852182466150100586367298354886444019198632719393620001594091078859971348776526946643010938936243355212607385597269124487411217664580073694876199744111151636414980413573910247855421548851991608140006288439263319873638454558214753470539514996727044999860179513074893665510401710920755186125264529813849222569949011177055734066429847529365518577479005958886586428813290168293023299200713149352318369170338790018949742118944272826770390010040624459607815317924831397579988815748293969800585307937108673169693851914797343522006619305171428026345055467876461082346871865429646966038231513768110118367226390749024751078425054365508143547973454735687081791665508935433316022385304406710140986352948062094877827240557891274413688221268400475895713800811734586580177241916310189200870992309364334363906759719799144940333221839385473253423962825589322449222973479392087893533190469330921916514408595321702611365131933712617071852108060336487624659520367115972473817039001439487295137208102999838291094246198516680886462743438504990649280351197723123665224454103027930672171976704891733467791149468000797812523456459939141237013263924299832033845266464878588644249702328787746577495638146505721631811494945669859940021156121526902082293985769258254696932718539096162466514739716063511195654331735350608734959583163098304906155197673114396960083828309763960778453097244158674922620755412463322110664506846003333482922354736822665892589345985615504439928398718037857409121190799505707290405259559750006901294135173044540238109601469493849034266054259434370894081253863905809679983559773072782633061449642933323286342729896772339335940730829495430663546042913387773263617665466821273883570506324355822049998994457323817305951591033894520794227937326243844867546854402144852451639461765304292620448211022924672450664988630218028217035564210544722157011093789726068433649867011060025886928184474971884443602474264332343993921955282848839129082039331417648986941748023471379764640964509885744144451694618676002656997742775132975689392504971259378195617214854502810114750537875028953304122041825598357469337454065409037363769741163701622061446364959059248544815932592194579014216428192464097796260066074352216256342157460125211288398877166881791448684937186491240792288636080479407004315172246593618911000379610913817945663140310651870112515131113467297802869886071452098701408839975778952887935278728862268500773847065164303347628933553813027031974589138351374391131429222093100893016084546991258445664649091970145775750918775350711738590025367460438633839561207313545281318417607900894205237863419501363853307378697470234669426286869373177931453930958620589154119346463190959509994764704167579887123885887005426595011739348944996425419713038251666558198727585442941722104109800253345122073343950530866626027578302150205089797931382197800476623119017553827771890935887386910150067164563627796624352066942471137623936181929101770113625815886073645400930338981334713564193896498823712733159123006433986061341986472416644698322818756544953678886433819500096871458814580796233174713141821352172327870401681047027729722405380034079167166125859827793440793091761208451740441613373443666106060919855463127597828681051075434605762859692556237918616099236845391991330123085447561281959401304991444398267456509089961609173397398380690182350526138948878700897111126385499651471548639914182094928108204111955285060294612552494237679577254267754754920744127123168136977876683785953230525962078380787696005677137707218048858547029540536585320299995883622093380137189498069124896532727236703811933763863132297954880852331115169228943578212779910915974573137576781775778785663528537890992585624409260083416073540307073694765164979429635783167632336858621923827858571769465563063146650089941012069954853193156569184628542500469299444267396102982757019234258182218468726366812047247768508661294927071826980024092866961834564503814886678047934821658157887675340335204970845178917270189608204497026429966856053243262385310826668214112379136170307002297727906746554672839806624805445653266448349181410977446004155505676932982360494811445009151745108872648222201028540005569672305894869730412810827445632667249337503247868110481670416465196935074893521633743254164464308935720608802788532641425886811328564252574437701895342968248287778062260537381035768921989578765902494629879740750402192712836670453673293869914875582240327437381665321188351518077017431713685428993345619234635833418765355504445742789031773390876097079248400508230899840075846956247479621111348868297660764708354846406809503958453020375138442202965663940798440776854140225091106331125591251229937450804889115589679393839325392668363962465177477109922377520482105166746861608406880362992833430176483194141960800313694643622742801332542121196049352272642966671928707022390434355193893224700863926171563300268514039240718609918205717286651450712805344969821629217273872204569970981058352533043873241320227526300864711257529043188361864170131135036970049446495303191496166786048859751577944083196349667621311879022007730278404972503838959947286597865342574855500973610625228810424530315163292640538396392498535200221769765655756015493835565587259909328797530527196035096568464501598108342441895821459768058827460520588563915779304234426290642391484821943060030825955338652619688737927321897043088889067920150279328864661694646745510402717415862298249740115046117911419333103534111610671877086262229191369436625815029042651481947822857666500818988226294410979855583990039909309383336834731899109432545092654990319495637009079711325790707940090208743558649707363347836710715807197533586886476868685569311003517292683131203227373457708150677298557540457597655419769015455540207264463240256068846517888324442510975846039220334858662373549953466562309304113228378162083169944966811542553330619564174097878224215833027256266292759900043002033597654605698438512225121698119549173720373731419314664692606863529128672197914722785791424161227965402317845124975048817783517887607185340055995286575092010472253934997083327498257501632779085832161401999927912727721638455335128592758353863241935926175477363478198257221060801198305757706473530154791022480487177792966567231944749745396349583311334743538973290563813389177992276419940557752897705235454175655659916240881203992209778005639218409814980451627042819386116856883413536135172704368149204829561528921244912480459450304601743977356618677737188915801469332771415216141146188336674666058654894681284351735886675516193785710738168785127936952765057686273375872579666834804668654977812424526490563159554676947591937396807813153246026668603537469296574962926100684802376951070153903584733971465447830637525676155611062575508045386893211902408642601753478298305466193203867066105161380664300525570914575939716159145767535402134887637199249811011095938179642889792185835845812256627305628788027342654017977105404257864963877274242235451214934226326030919408760499891789787636048759744713382083627001030329657258152579688286573416817310287538832279967207771324703474226263003192123856943994133830862789972460814304785183314348289588260190097499332970482680151030379268550167869608384468986884883614790998361764271396193947882003588725558573045069807305182169798565205991948621153766395866265131955829604047578381830482267581234913116151564642164964835016842141537387899603220711432668501713300435090303428295410645394942930204975796437896289028458726262380461199388719440061703586935536835545210717176840402603903942235002570350636085015660513897008133260542997282513866977506547093311248771022334412967804485109733887126717790700767189600880531797036962318642137139137423296760904403275866850240734855665148925295205720270656145920064224887461198001503528624696655984254419338712207449385985086525024804739183957153382245136560340100227183271096841502726352163863206406423124975319900215794400884374219093340637803202909122760195056782622010392020126102627635166274848482399212350696090544110670604711120526319006883177267039273402425628877748739324596812962194590723417803425762554512978901005146170003615850386755173837196539020048967892390769994690648175115955689441252945578291457777767319104253014360747163602831292418548160455104617078034250868363905038866253254063423661455406818364218311424879147721801819253471136926291368625930845961228676592852462280011077124615240369018205487408862306701776754956322020623414907882599155342158229497580254438912152948022233238746662593295842048457012895751920880656180135838878126722504994742007905480388674769165917777832054290311408505581471962206755512094785169107804228314236457015119359959840548609891881496135636281325554755126637382629615488520225846340581796299936030064560305801317588224379573611713413163655951328424559276293232476539278533699311045762503864125612350151148487477834608926463635385037592388712600574813641790514683178737147656657323091414257484083137752583828543729129974915801423373438584447057846438944618207607096320192114997680455039517298607534154947810444473218902688607418965074469230524129018541074029457780546658166981384026215646793141174479160193832607136089745373674170059426952622408397855601122448144468489433135618578396970930980639855689585858631549719495645832315583213263827074335953676317613719007691975535981572146059059932497290447734256880555008981783850180008985469644953739326298276281842410795732607204768677376026052687695152913599692076742632685692378493615738056577278309149854480981736399466027739368189804007647695609230447448007021021757501830311687618040913577710073461560807259459771502813481421958730241684942876916438830474755197300779448592878099467931508827117279234576336618774590353018336678466889044034895427906363000346394858578620942652570564241485202579511722386619939164691323296031105624413424267648636166521857679329733122932517220925240110155982873030765898013972941186075054989333486041868998788798749652059244118059203791240329651973003216744812672029696298104526994465076702891426849419708567751760508457098802598048416152597924067053224828855958868546245099045389572009840526569667566262351865854282551153861255546346224349785134858472467898525764580674553682423876307586939949184915303971366277892922285118918207939951971589333123599246282068757393778384578071946535275747185049335326034428335641658362915068905098055149159896975493278539493240484061784658150014285371367520560077163571721816389579411588452219770460128436061866111029517936837146492730026020690693747450941250778353679477549512889419774795173657682721075018362136187891361360905315400909919534903875922867640348869209809470190098131900487936546550202278609118090864495892323754954395039244652596371098807849854036829180138581630126519877122491924559018198429799393979367448212158254164447692313442731585766898686808071032747161718885673742002081776444272003842804936651037028789768907268450187897282921538476129925105625728270911207983094362216570515254790451878409365228709630524464759028208638168634157325238873326499315955708918444819879385383081975691886739386427780147406720875217040149142416834986287265687300788001350952380348438871606005525651465383429114936445933760995077755909594644084625936333662736657449226549494660074922004335836215470127113741864297881472389397281650782248071848274778614943454912864589739906142120717045628736387949707162205200549897955479241355362464022200573579782273986502691733393154133833456887267808548975690085756855258239436237644432214792387585121339544236540444264474723239228343715867904114297119841159115681011418311660598210486817212236061685433341416300225448223553724454477390175476305425868164548804647642555476993705270362890036145574795353401414739567341828421016438051100552266502481426404649381396158712480897312128678718353750426975490232471807347331736711482534211585525112244420292571582725415425921542687872826462851140761749060509816604039650168737782006118059440246657843181483587114774610799544968957594236306114710965733230673481103469789565272025917462434834525172085388108316487495339979352614864272698588274257304308121746411889850953289000197348846162115770018952656843498846702894756805349233658167338309629729512706355673079056404479239100495696586851451283057595607920330230034760058582786617455874106426003863524616987428593913058472231833577409177268746934022025100748279949053144344058283011828024568042433009268595019097804537643031737937734323796163196399057607270497575799767297141028632090022813469201730680749752406920534175037872824286138502529685553123835044657273236843343367503855358487209939473509745152340715960886227353432184273913026507325642118968625941592685683032304155490405331325883587970813961198327859359084078952340840408118803946637365436827141032750772613454631206143912058098979401326318327655130322364739983188521523916662144579457312851266847668819473909479548303740003415791827544836112294655052878250282962888457490795187484972505453816545626729081000584508541606387006241179568161445518566302304797095647477277779460757120417278820903477485137447250215859328456655294631234973689780766110243215785447194370237545282902543427880208852730356730043061424078392809501839741053578035717903352197818854981043319136892011382622913648308558398030013911766696817490737441276143370327123663485908568470029490213570392438273447853848778856892897804455035165651340444297267595670323661880840739923884319333699162142385909523441709000867448840581190260976463036107067738741912115526740003542330763508545664844129777722915355589800768405788641899094678893937613003057238901883355424974950019008524703980926672070405853693320169515463723772648081344373215825720755840136996207325994958514465745379375407448008540646301423713745893440575560934183826997488141527936244048951908918727175131485016865072888096909502704251669117035195626323442804497326429108741333072237861562124750129710456041844180350591362748316145549243284847698722146862669721668096957943993849327392966594166576563743861809893908336196225761439969054899630578345469683071610812790592042499338962106419964906976883463842070773583596569706734971514453924873499923042094098530123481393092421631832799267272052412417464546210698201385529310725570612336922584973396169539405656066493598432447756971032002634114139003854970684101644843717038425995349995296702364813473327305357598138194580966894930472663247477212825790887964088375628488613997217816787463098220727815118943358589764265320321728854597060797508364105932190116801593218444601015716981047316485794699363519275174332083039673624838769498002726382537593653294871614347429363456624252602226628191862972444918773941304805646770773979797167886983960873950782671568545747185590961009387190068754461691357427504199229291911016299435582297747218090354659739472775959355046906617059287323744620642264486984765954245157574067680925175113688550553206874635483380703780163672914918666912506456708562249280470491025884445952339404232672446397075921396052018533952734866460117353916029276404584849431451512641353513399767109324953125385489135352545513747490516408363995440902780404620593380785757400909193946499298941212833042875963068971677091362993175748874347580574701108088645941809852797986825599632748254129201586088730768482114289455089589350578178151285019802845954833587454845963710642420980292608689724911897610944061397793109122286824804452404402894008353936063613963820979814844282806754613114296130390034104404979301876845340747549349492901852761228759138327211375941880360769327729654360603259731302208969700915887748295057307549308869666788810057832783049149802829082100251000142055753772070541770986746715785776766418615939430628501286411571232700654177987109986047074347674883552989427561740504355321328639058338291974566119115583159445308079404573716452608583117894992187346752141402571472587358204266584138634062378849843262268284396465945983183076273754739534913661404639479964749128621439299459930776696845493357644625655376140186593470250650901152052341610066652735522065223852340139163893127169175809013231965568387864023801621471495528850514324242493197070789715573643059033971129301459002398834580998072162452407853898850406311630947177481141254593880944534441411431676494726245376582842742692667931265434307356200870665121723759152094593917050150383736505055042612219437292983628220660242954894755913054635066783619606674573448396347618987814985407575474647507554272917134825278889754171562591521119426611404683078618638200283928986129771577462672320363156596326901895753105856001935267299584463722921361696668441671679902530764065140171465971600248981383441296783646397515606366978923227696906524566454468107827455874938167406973231304706983327251415827903069856986120613092426252287234470634548839371236686450895086394266415433188166000408283093612222540306071043461211269452789378229782931151589230754135708125227933682947312499723331427929799757234762326796143657818105391946255797459052406903775131496821888476814127789032380944823447667571821406630291714156381526753972477976650985313819162159496877058375831878948525193965928308296003307707312004782219167296244747151249176626885783649125123514994845232920390850980452849113002549294308140026175667599565999725318504033866030345824286295592182301796528532760961913524004599759274134713042526146871017322975866894376163310605443361598650745726924742584786973000804120580498704189287874303438425274211413621885795906678538160549711517806775715708747822740176607400671234077278876628829912063384288456363593744530688031939849952808875890679931739493679439403634568045547254126691157949969044410524079570128733833149812104506056473128740880849272784602658568600352107099768102030632615954052011094019179007885013450834063663512061886378088932428828458188611942305220407242635773524066017799682339805815624703871189114124179168097215715108482818986149246470261724612978825775590600723241203704229596476766837104487622176561137602798404273153246678553149186318165287964265356283712447800626879546399968896542941540481110178824027587078544236645624406108752669214313279400643198927979728325085408354147359886919282894652763349282165657325813874112239024845292322146294485365337567201879745278124546137505071712155023182338811500646088393813927630241206803002404686021540465823018695445239226570521034921070857013456037419009242435127764908463842232640230460438015336333358193027406044664137130349708364896982522912278384360021285148847335273691107754492138314716984170054281503076245156945689399068793900138912805324621676321746452840695338101901660474492617644916630632181715202965023253890634767033173992007459202671737904404978031627108562555915983886943765554640102613476949752647418899284681633022603626627340116584167732765006074677340069400906522227399533118966462385697425666866577769848981645236281733258808741484268272744954043195981655682352547599001691792277261094826389230944319843839218505835419238511230482395887261601597560152782154219957766801321334807660564013148088754596594304191812471896746901246674891406699110085374330526011249426163140706343362706645750106607959018573351702865177521780395449947411214901584085836509939511652549401656973006773732225290504040378554578949394811961378803126355531049600371363307628289270345166283660720429091331693861447718723853072546648910725959558073866811745374926232328004126799852657148662719731442814920034908145249291789731541842615919518548669655184608787407428154100797998100279912956483882119785949903701241695838829529226863992073417804198865618663219899218578948560195225276090043181549719751890824970565867631791220768445983551445651987973990075058566622170329799420778678683589432377410187801445604842442798153610394593841233254062627327111043283813783891603726052317431447759920114371641446712871456025340798488436455322230047902331110716392411578433970797718229521058387079474844550027119723889057057282924931319698212310618988651274414049554257167711726409494873756063027290174040970692720574164796818340181436658361850455730801528730747511735517851696491273132375537246488445468733501758383079264370560541240389586545249073044559366989177197914774829293598589534850224307217508772793611065781536527221138347850234271070175252082332884935199832180173804974525421032837969630963201563801497615998868844063859130755660215846375585933993366692569489057786263383491881221090204130003467840428471614840641820274913746364480019880181248389828108925240728248700120974498688259780186704725829855328010752342764042541192316045562174464885909535798890303750281304895603731720146737642193488170871519873821259801034468227418368107467026551529343477207392263599346165643251121785890899723393712388742920823235537064027697751411705463921578760193116118872538190573243885331056001065892289217717381673077277737528310361356599092565017197564687172008940425648509598770560684345324377436244894475398072979917629460411833181298202660065774559967591953391276311887671433706709429136074312784624068927256607068273714480518709705366481652296863041023561080187769350218204052094962821334261090066030871806470030375432881544048315435554624560830072031764418054284485779430884679679025460517957193013305065487534584059962424613694097777716140159268755566646092063653211529293466923513736584244846542347682158168804766679212656571035382483628950863878510499418768384658519055803022202461221857293963645606338545475825298359412272890885836186116785662313223150921133094992946228286149637705019125872630803384555504122368340744587389407606905922241431695509545156873799219880060753334023509546030918438700493962330945243822055969836143590363535590392003592011645451334346473597446974889300048305623809741036454645097891390764740282557647564092409402876500382808045360842679834780512263869568476755972392204073025072518043358152316718116317534047756771912698423980053631834719627085754183340098488105419416363119888453838630705352104834821979493820800250230075687464276424048436065785384373292675600221892976943816919621997849597441318364718653591079427898774120513130826474895723503545250430114622009890669297329795013626701215806567134203828518057266591598716122871805963458118926557774397057101324908844258161424735286932685295262508612707695285246339564241021973783297932461597227841199976896771220522417928825779723982316696571571784120877649849762873723212160545209543397925555380380174253578407158385824909873011160400831807413644494510583751615174836066533824582208596788284218185447416640975671283542392507859458979998687152406864061369866238597217667656440923601937397659297103614632205711998901492636085173893927622048631183662658237836609816023510311315057422867956036476489580318767488365213946650412133610103074688315252788984856249494308597725673251409561913190329987230086557019369424636112524906990314984655635953169218774807499055906931905807079111116434715456631970465557756624796969461639531030527114972895846186619386525880582805987470816501203333149682124673007149294323449158649181328564884310382764303221806282547584936500785717154298762112798663207297318222942301791230928306812171683440040650071322112027024485837826273331924810850842849551982689392748320497855414520090105326597748344808269805252672035932508047464576231436782184368647143585661319538914812150096943260203273591569281137299278166524436718025538355232250951959006544863436466275442425545721613822497942221430096474558856720750693442101521922316475909201236370104349854707527359633001218936913533810407228968707467505366050419446507118570834033898054079210237665637243036306523375513533355208006670322116575886460664860143037652351250604458503113017130709047236468199080425288785238037090549343317466699460224961181250805733889894452986431745735977200404128023894990982868466246634301167058097494693119961077017664274960829192380156682669611570116286909336665604790065934727718470684788277590777774503246653643358892449207459725335171012846755150720481572468419774853404015671669132272612246317135664663629599101471605212440952295714165438136864610037071576132341353574685811106952991401722211986329289311510996153481881262461181887578343304064157929963108913450829056322093008650509632148831937461436249384392622213752958013146927729443415504720207396863724483668503498451574926634005347750440978991807352038930719108731495771280847575401309860336844579805911330990716700576800237128773354480718783424834478064565438514413633151302944623050064900546462387632068515431242258971884984514963328768347310858367435884449378325728333166128417973254934624596858397521084081990507846392957982527339775256530268096886737760567121723399017703524107604974038621215978817528155959180408171630271360495585305687816993345453304411162291332814504262273091735962489126610531411877700262861879281541282008895537591775404065787674551494178547829374862329888718273548929198748064458983510329855132026578326354908764186765691685816165798202674595056024581767712402969057957727748625573259040223219675671701642148975682349770878587086514881352856178539616643702193456544454659358557460568105623684242210557417018393139504438885317164079283468040340599645354903376442494829370847729831455169033905349220971287825069934896843117064703564370508358461308216083581382553513664986634191044725626379836774444855928525515718444279704738856939077386186062459377483709031102922580987107449672262215795373250191645248808592693254388449942914530543021349511902257608177568861829723795711392883283853934292857419977117538340800711554138927393498543906196164845067434163966263722010957533862248915712471072613575226838146477403580966741070411240656727890444400036711405555457229617623464306520531622285957408777235727868630721292147181215485475314115554676049056553085398607780466438387189602023346091162934429737840145013626360634539504465960830350277715250690867538298960337997622569945582981166722635095591430765337324547828121341156802192417582999549175703581179134593702325283285549955211745436468736995215673085612377914443759844927342186070320714552495957408307984760156220745191014371673389356443120670625167425826662646660824729406035503199804540199674876173671073347180662681277333647930162431826570704323941899213170657459520954622050433006875564205510736400179360357443472247142654157003459171471163558871208872309146458778899080359692172046098584672811832440624452397930284542502020052947970880597150665699132048912142165705819032459636251016548861450150341606352472549982835115905666067102329232474060067205895915206734953075007204732409293921024596688188764958093793119171643203350332894704379559764222196028341790326678850773470882206107932289173631111485783579566838218456531812264692006983034697090246318426823525716046245488986314884338520900688007151978131266062357150725815586163191503582046905526222009276498533297473669204414947137780651946237346992287879035385770524972952176959445161908841676086061475351042688330854296013644770988364109911588583903830726048580726020379801914823669546264014574119461522715147838879173139288734948345445601394978185806559210502881003705069695639622791117289627596363772787471992144411022888543987546073349866226325280173482484398774372576294203719530573807415363502306241898977598607086506002388311229522631224669404058653433022310635856861926266423662519461574156473450233058484961452753058199339875923780348483686542536369238182582943965935408566718258814055663787487816771532925921323374262598801455024418335873735086164914055162844375781065241744605385015955713458305758508925121300067903308013644524682364435774360916631777015075744076579113925062414301501805626116871846167961108771400542184250620680326418110400991601851192180216150898497281920864137924163525419283779567845049348679018974644354071479297071844228892740304275380120167591462854642373819966407195859935782199764012860459732875916064166476584251189505901665017581337843174709473999638199676997244865630539082064257760864225868936841053610706455098780007052536428661572301976536616762654970078095167461731487312495994144498455378403748063618632629423979167291733361991354244001303163324163737117780793820015918782718738169308929294724008440425661969847426316380600914802918490349095126079947881599513138855162390837474285235940540778208592655673424311404472397491248726040995479440747321872081721541753760898979066445066023669777610193076498278655127710137902815116593235950927416703841812252269537954502938759039818490657911720753405557012751524778627465395849432533271544958320648743741346446210409023995152494035058248424889051257786262451556936885255032361567450443992457702552342326647750073033486551232852252502039797839207616681287599610398626781510621376688158636142904498198675258231032847662271572362497993070708573445471730710225861065370680291039965192664374002106421363568898974829728287796554522869279533618970400783472292898616699321922252804518816428410273399433191523285740332652602379517613500524632842660226777010042978232428512484865648814130649411746539897496547870475883130784736791407851347756639458058933994574437862584680705392034960767835457077304673676356811708150218740686640978586301690737874832178303037679191279262585107558980757063621508631120595119862072533481740477672777357746303888215576955434130877557399215122398311249216676202044869720847135307752570288544359261265236492183639569571960768540972073606408599358655072240274034759717343939913878142603380520954885557673157189320571827884390727007824362263000194703189721331515675758380013897547632124012141956185052050181632343350172762381337537518094983612434191784748120727747877903456094570746630382412870316582716840602640892538900046569743227422995957131280894320301326640201841566075818891835996951334357861981439479193367422159508589612620809190925403443860798087427692814542181439430352522555521698370997536899223765587210263043918527218882352074123445495012906179460396721303885676694424754586351173958939053416574568426359364595274577031671536562204544897396863531233913876291145738345174796658832915889270737011233039425143382799757959463825598270149061099059702637092001827062484523434102230916033168114300503868487815858795470073045879735541854903808155051104207265626565167040119768302723211075604294645042041161261682103854533491479334747228866186775979362810111800867010227380188023954996575824342300297283960354736178855534744733023125592160983965285134752282582951414093017625801405404477822145119194872227855692607633877794000026409923781924415193318400313643366741096110896805362203559607283765335692406029344636850240781238038602893021559845163856252885806457809058789622897509367926566716114835319200843991850593804125012994853271836462509688109443161582808502393089204018160393384465663691749939508986340255830548820473336820176127224282597183320720888089188879734170141504411135018883325952226591562525737234202572542070822044692915667044330606674519987193496352048125322582233949354916602756454358174642190501534988931996062783691740547742724760576703712676508658404421325396690650427413351470268563785463238101026470601382751122604289455972769817530836778631347583496399103889490400958847341392289440421491126996503307247113654964711699323383289728838311407964974510956295029104842403535820784601655227615015559028699336904505686866069548726495968546972135679087540268492936343820691861411950431780767334728801174648114332958337672821919808447496994526266732021795677618126532807643204664762066293506200919520212058207326372980739593180382626644737754059893746602406448198969198545469798337724155187596477531036582151312461419258807020150105914326406119098390340835335138070708740392254260514366799680083951033418010760291551899975371999511197358164272243611516389340627090649100900502915846697078174123213378401791295440814826662132940277657872457141091566901170591132459489935220590431557923153034721454308799645404253012815166742276594859247111779523246265530754247154503541036288142351322662464901820796165752055819997013052206099661201531247610961592924624098185190281587968557486456723154046279194188055210443991961460245311012214078939067229347769833016940503396094843168048491134123489874226828573530002875289139503301833717309775364649749329022717017381563564222307700996316379324339942028195601996072436311620771361695672890072918388649202150617470159486151567429394166082968984359916106807096242272825845578492221506125091513961976560592463937256345020603210084878368542599703558129937382442413942048041181246973160985503114450411451008874369850206964190560449184884684732554881555080117729160627923221599120755533167066716934142617700074454027399733143470746790264233764662217628785498266010401428014291111726453935499232389949143075818816018207758894458714371542019013067639854078164127902505282019396325628385048094693815886316475844755814807228029336983408679899174308352254602122917906890329874303318093138782721788201603403374405497230057272080490123072962399028160096716869758216984993170851859627499220620872411626871800462952874832163985043713201826610373450014216129197431044969516524551459140176815328780475397085672992400056446518638911610695038631220739969837878811689579919485999257915788860630391151128548177913092843477517433534184252816597686632131234406021956647223000561081120612671963053125372428639327538813171027615277192563562985583278501304310007371461321566810473747101314094625421463779961867486812033244595551213316862416972967701862465870322522681588782779465866544420817069176588575723501347565390012558878816782065164707660188088691494704388175525363777604023185826698592135872991387376888312888819686853122753054482451943475843069566152023138759292808336275824370303220109409845048525156937143006713715225302542334483344170867141821083691563046605713805388096750790712088588652336624668995275852097117626679206484398168114687444382964205755714214747646317295399428302626912270008751204016750608250519415605106023539507274723949456630631043044939954475419801891721010919240738549197474196533912279115446945231687624660606957683223966380088967362076385113817769653327339618509228980440348216313870916620905267039586395703918999157571060543436511379408663467094096305601035100601139523790613555804710285854547155304036552645389908154092445020537564017030403916765569606922378922090927846246430113325142095398986385788560821278636259466076413552800761589535052489924118284934204200117276119668310338381195326561992944768128147131314007442749931113889035827922084202165978649380524604303373464231238684829806605580372255170576381762239280516416383270174241139677111346818614976498066368098018407045691405131514636991829665200244762066083197956038369614003463311560267289942220986980753352493658772824920175286080937466806665553705360803497447808937343310867081875361337412308016301280531629488851312035130241211805704525638622613278444364374006983237162817173297440849494743410149029405290510102185126424166070000791899457044923792773658960851347538831733343083860522389760921859050755019956450423190242604031846197965057818726024443375522439117862085421958758925603979741652036115900180539095532272832239912953314969676425867654756939915868851053891655792291164896875731880516710667388962794144984159752971538417282296819139130154816216040685032038685528273988014952687510786936027675051658405817826564865436978959899432059456740341804864924911158691879738450974035386078064696559659748056404232740700265307438391832315497788833575435684527828699369070880876137585992785427115734520447651014005784840497596323286762917852719370899634660394632196305488071731863103573204306578356990383833208164304707458948813561522935898365048539032381650888787261694526253379157202813059991235147552798322285374371218363974131810905355469490548358481619050027852565397499628234373143416233655684756418248546731447949452168379592601130129803734276102165087830105626605543370758064411952319563259883840543105790977437104244819764339109511537598614569315775457233748348556750859872595073563039689741797901220608371633700858971617958991093438544848017320372732663600166711256558880430989255940219357034132022537181777025353212361812779469468468333441383379483933867286326372876556613115624553055479512352621481567003761535508978162600457095194556177309757064066206157680005634379044476276207785295640066276301583681917762305178188942360632588704952744192365269863536231528771810164368563198119081512646175094344700374812823727492482969712902110402156995226074018108597334747388226909960557360087096583454888164022192837348108563508320019247308317736512447508386558776676733488539967982159632568260143217287525815328070883749378816235049359326798066262034674501079801305358311873157179673884129287878089839782142454156328833231612513285295893539310257590071464579565563738324566531598753566227486387282239347204401090692824007351498444382661522063892149614290731559473162820778036553902873534936554460116502318511897122447808009536366649275304250526144682774640486608283136309734439741906761090260469887062650183999488990187148309414406951625721039587470944493041551090668529781909341911070567887540489323140412376917179738351915191731466938978286310379955049771082198902370015576211387596114482033544897821445173210402882871950369872927456207684104838671467207932757751173970104993648083049094883057594393670677033565149531868187101270797087920080671824270469721963090716769776253935881634237840086678453533946808606390438402497853890904772758978132981839669087178915172434034171232559791743296440265949133260815358744830004605411941093423334474417333939955312546687159840807968097687978838656272016214449442364775514308784621044708633137404925739121114183020587676402120281358348319741761077014570496006671989646767898165351664213518666674337555951874891384514111486218796834539115044184857280208610789751829952668686926664047126577770058967942825198695438934572309889303366264517487309964730959238295455966038741283830615962301559636621190475058533714292938388908528195899144468368975355229497134984297964308233427587098773070344309250375460350308943675326732225247882639907262746420670875525618201010298994835284090015035058090029172124241511646486946918835012613633889771506908078257478054481104863454561830691701333811021639448729365090773068786648128873524727386617716605863784824455742522534705166235758841526202626069306139042774386581726131449549628518450567502143237217246980758362863878118262449221842449959890497995949296373973499824191916062002432748617436371770795909111870331553690061965665698114302326388905697474228265333492755428471359277746676720055093051687507301474611890955749495430813072020309617077226266732590074450140780417117093320549857489703809565968326922611689689277617087331569162852752010244344187381310215732493250235871717790756936693085976065735920973324532669690210300373284917131149121925742747205223778418872619410743349463957512527804416751539711429909137098116064830991146110642836399869242518525390387323486396278324818697014517063502241560890429547767525564386056859395760878109100771516062410592483507097633735060432577211014617190266403661075218758126101226184481418355530926370465271050647793411823682890119058247700774465856699921570274528953830495898315230192945956688555721145769444176553304648462965226651451244152542258037189794217679562922655218861923786185775254888166323397832233710038301902461134280992463342428900387169242385528497776597121216607781517659487512991614686900666619908738551883465723111055786591331859392224069406045469404206193501534779579067568328872180705740732787539942451374350415028626781422709614873873767125866094133852653733800319819568573470573773770649180611297843206744888637161763918164478726765914087637229034825189930570187521733095393938800391492123218089469940757897176600310160399745640261643787982754183038679584216234875789378443917734885278646453298644759215609120217312218843178791651451344297158076147569209932772076575221323444637224035558562877972313694451804201010912587233927928285374365044738483415598412032009414336087700386582755861127462787737272754184193786676175739870876553189300834821833662986915126026358819927104518947418905015497583028700541538342471407262388437693059478094821451069857171701714774569517376930545421224225727130734456332703918349330888182727440332508112389047820913988607807990147904298723887147071834733444933719820700212222434887807612417473960606475521370827977957286278535184908546333660566796378895970599438346560064283454198504430314662675901505818591886912247197937127693055275621533602458169913592729037318318712759475615705863844957928501711756574938994480895425743258981330887591680497768092387088959915270621463418650712393863277654636187051958243652439737526261825279579774220536363056211773613276836067657545613085317858264094702115745276351774080316360608871331627319973785164635349351893408507992480179822749235909506303953624547964736691380149888463879115491108494921634212470390197542402632886764844557691610978681101941631631966632183992200554848828543288098944502511623697998964895096302494159124640343777299172128477607920500205062824808414155692064518661374187655793539810763036240255144794234549730602058358701264646008546319115331185416643668719583544065608487297883903614023877791761801307668024835156979884612749186801301688025157674755084916084308458735195200895826907590206584082899607351417607444908279887151629457466345697260483743310612515322582111718987780904648451454452371815956080229552981628887623385895058870913884876636951988431280501151397411643185403111292947594339665154987731015163184714589293701737654828972134138843821335967067266005030017736483268128071434448931930237140417216727118803512130617472929564073901628061576573540391931634843172312853721231610184616127001510548997131340180677870891698177248291631020471835755894702089628613828857983195630299985359320249507998483170145092805581611008748242982168008711882274736320115771219091573581347230780566885108867882543110041618119926337267484116216762131838510899110923282206284028955303973152706063414290027788668237810789902776927696281484099964215431928055536672392295610244446052183197141623673385895728695401035674408017374038316634970037932763886012247627640283867978633836318487631661293366582223405159219472534236001663565431490040130320815632726520226173279660312076061348154451959845806654259346753486597953275909983955794321865241992119968134977752487682219528384424249902145111383917437492874174895062344386804695042030807363183988910092054496981808800587216530616885144286528408605415539850816828075806181516823535077094377157641977969511811089290517751920431391542597065748617825207663693928535610601458520233767445333203376525366632504765936723585696033817565844261871235806961644194321706355223302465150115103970486703694133818166907993686972263730809466214990766584818332920197022612663011369369967781272886581436791607720532088048647057067826660793422908115041589857701394281246662169880121012535735440649773830563133291976183431439889962393544936636129080136137541242442493749256407471426158786098971600460740382955240959456283079206914442415387246321062814550163562225665450511450836885959876753145262030351505672467243749089559587457117077116218174222917061382904093179294096781785030841837078527098530054827580270586632029822697639876535436345239401548301216172260216240637922662219658001317082634074729925699448430697045897389084313518086037664659607199029468890602547236666127392368334956452097354810938766088771676612900903041540301607612618977304998803872438804339602321151686957818104678832813268727536547595131897683281845940858087087080475369925131003966142590001686618458142979341436353895784643556038243020998458457887662819785789801424636535196860123130639938392583320581244432415570492043273332015927837138983152765472048635536470733797371309387263578205523048804870136434629273631871382971471187861976402598532866774463405417848606581482876029272418471739693981831019791471604278345230425523013394640925291291018713214639193403893279715468051629063596999495505258986751797403387831918946258559021444134378692280174549637449097927542277844138511732222706894711129076403174683280690182305115925654944535902408677091630341156564380013338727598437971436883093825194920130181473380416661615209803460075278556521015973826213024341446982615175751649332389162226435664703815743148902677170657538111952093365325521924093460032325724234752767364836494810267674652703370826537345535627656869415174250449105505694956812832627259486284479549307486431255846395279003560146976017425683942055127283243884252836767807025596829876594384606599930898199754689820553638792146447981520313150374723444681303009250967720641165276696882156582617153484569755385820381495902873887228529403296745003575979820756088249101887991418069396958377974448082221564909952146960019295110712369486730845597877253036561534733230464564509744676876018191530294658880482929915446370305224627826252997016144558004931788846631682554469589490566748351819643169728573661883748396855410523886176963633699911114336326031483118263708248222526498884260880728882758406482075380049273310364681415516657814078651957615143817986582663226846642438748708835699628334715888449493630009421736231141297574534917548648383616422357704764537160421105313414759000951057360874804781990008141192860348709240663857710406155426230903455379151023982468763342742759587702967927307942683986687170188630666175509915212508657448943671870038944124026357119119816622909356614589067693985114086965967430989211175208777488696313604414296625453642934065468661809517134692676360178821557935358604161617487718445014844978829535721865071426125002024902347940810027533393876995320515538415734960935212279207065301269690044234847536693391532670947481887388103293926129121914564410865519615575411190395792243870347579976446405884252307321455655706843876762560136181362514219487062738897250395773873914541705807257602403061715551609070074920217897767877860060768059381298873029470997502122464658767621569841287769135342842911772547843750790450359113976081104838443077110636428399169409897596331408437780770639142754717252781105793766238538050082950736523498374587199711049774681489537586575555802808140171212693581880905607255983669911707805475592123481925273118712261978123547011819025226664978788731056273244784365243715856417950159941724496822630663233322352124330023333677750165644795183631375577523784364928499806933464240509873462410785433209980370540071712681981612963788833423771433841057069112569273255672531380651768477851805118052670786074220428178239832932460218345804260050488568369736966042400880918822138863096628796985777376026021702272306545325953051007102361304959962575695335759669752949377282423467978886316896378795973758243904162953604200270536912139615416268236582011915280736561211819762068580800363216674837318903402975804774466591021943754887271540283888717040220938259112163033978507056817348593556443102220529316796822418875881985179982563380778840119603871885575565873988856990630975061750988751539321751316901193670999469760416207946936678615804012535409576720894230618061210401876367702305510763806094818858644769846925335076078648325588050884845726018835283659230450230522492441355391623188705082181457875165376010573255621582818867712668649850020872182253341544645178722447912043174112273347652357023834055256944555945733469232817291153178143804408894146607125766123536307188459277472566517799345243992576576679067525346317943177812637718129856619792457408800213129010043739256681916258575541424403634585524198863810650069413015951397965682941432981391262919341513502779507605715661506971718981800254563848012292283393552028638428117485199543155447011869970938484838070284167567941912694623137056291055040009904365180875803652655594516443822688931410914700546048142627382985425370762847852750841478759296911532246120620398433193739221593845553942210336919554037678937367212668063014695041916523959087253695170323366244057599523250518885438595503617465542555399567775243565889026588083507987535304588548806687516200548958264060529507771794717047825860256504701374372530503099441852510872744026368439666494381384710238936295635519684159086584968356940717435888038534632946197509971006715191955771098784575559940668210204954150709881087540915660162049550125500559792638036650058701770423881482894841183497587720093438158312525174107494136914600774052462684093813679675444710808998222697870045852557929645718226240459126722955465435369686339688250299091171110361113889150113829352907343467066974902681955154865128775267478430011194972543061384615667513134376319309440518995302808804012792955093818056678013487191910188940282904453846874160776368014157076599120377892275860145150154168286705586488145375556181406601777836429459696868450958787885922938951896749594088601809679245556465537396735139896256739099637703395783168843790000410300245828943295702522789608860505774211683244857832954484935129644777853559489964737342344180317188405418958573530899047843442412630762859052006716922235093766082227258985136743292199778493407881858506841026184370073914545524530663419895006058072132492509527292053233462234133212014938731670463814154736088930646855693190388784920704349834522490192402255056058702288162495595978410777457152140141643052857970400872279606128810260401706423692610662556495581008984617105026933097962366819496103534757452871469500306140021707670060998647178623932515155689543302149139508571937478419573692163519423799112643081688721434508842710889528932416169545351443969611984983008929791957743961346483484276628098539285245743356723060888909710539701710910476853724082219559021711170903550135501084793761611628957507380292031131869141483944714478362810571777149399861631667258189668705105683162194332349018378316499938259862438392111043817929689141801427413092607619502196375795969492958391153594501289595186208596836100184651655620045870105851625490049060456134683693668551576313342796531348992027729890282692303289036349682969234296621628525338059385066713278969583794864292433640203276951177351853832303055852086973478613428138220081352410765762892800434207010066297367201030393331266268976138854797203770726726996940397014230400085849730978554224763619357268236607556666557958661963153679605146624383818692322010859439695204846147985535025616031075312438692597107014333294490021437981517037688870096057267018740424957815524880920335632485322287536356928651935432298764940120205620837820624194338730462772941202006116497782436803958469441242332056008799780283040627193910970336919917071370238111702086631072475323864281816441931940578914764050980896260606693644073267884003046351135577510547346008248754126978449834904885283750324188827885093501405536414025459396789459642907406154578357121013437849603578976235416788100978457222619698325646399326443972787323937101071955590845277919355098219514282415139343783876536197523335768425153428441909515495215979838981072628419967583597258814356960953554242732603360963238905022095571644974186774849187440045784451980720620161124994085173239286711488244862582334584270178218908804556367706595962325063442118703188752483040502256428221676418141899204687460079557597187205253978683323759433603333307342216651497748501931434614005304755071099232287318599531091735010387379804754040549013560540407989406954119483449353251322402384860463924175684439522090363983713743000562499705701416721865213922632916300536796431202828211792720110062418941402091405542965362131705762627040675401446517996925912588944772311966344193829479683626463754073494457475149706186912366022534172725155609981392561158607415288291553369189372240346180727865640778095757861270891680913011704656312762993299299822657236638838783186755250172841935313030578108968447674278865165917969723904051995596853009378195829842237567033443382285221791304624535751922085564689990961169429061669513834347015386897244209355324439710278609794621826898846460801625163264794901678112666216087775697497814374972731683492910952190264554483725525730801042205407913766097967840622628815505789228774433319222480512970033535887151997241484132258650926355790348220397998808196148227867410820531852667486772543086704879635305666748277028246723577442793805622268576598457272170310028214058749279506648428531690157250470116104855282134621590703296194079213112454577824293294051556649214466993632892358560605685685557604015654168126057901918838485387717120826736322252523108795808091464537066913179620957691376595583702474693798718315210065349162446370808887629450490829099211692712783340976597815377424522752725335521002948988770290938298801848674236876488338338109051302354502049703342209886493541801312435442371240462303353763554808410803668562942316143595531201528484183708187695435629296578062556076997892766143622435957077709623655759359853700760316202000663765594026885202009986071580433414305742993319795247407699443500675448311079587463964845660745511877342918868878351403007660400889382923941849323393638945291679209958209763319712027852043183736429585449347276494874370704803632926585800250893055946784630845753495355457253250494531086758814471492339835218198072457112286664656712259387362747529171844407260621701050406232123516497908841165668088076058541657582759987965247568344387235248018232161741311105690587940107527362147717180454233641412745699474342031675971075299264571525893120976393381159437912332920342137185311343343065375794885324522767813956495971886132925333179515931966826956325576261490359845909220913208794510452187806287344715671304409839336760335279412377599409081142882953261840975613863804295549902726536234770540722648174376411658856830044089558737652800744517748521916355801750315061960157501230558981032289417190791072237038803814211678643490952617828947402737662004302748565548988245983716018045596535279940333262161499802642609191208803844721938236503115910738160230854402069562777598830274314009754854487728598607288834868502138909390005989053906961694594857343324247951726357539219257289121337267221313160853185316973977829021506923218847346108260750526448641973620559264740472890504613646991958810126634581558134436587755740664921085452119889669480506154311895253177087332925023651713509545677507643160581325859357176456302999736467617119059813649224871605570264657930358466327030593928259096785110194814388469774001597707773608219057782358414916125526488499944597980902836158682131881988286947304694690890848673219440377349239806090069638043655431013385671430543708159432854101668116989728618132359817288177014252710883806338617452336757973391627172206076297955585931970444818005807909060583339670221662731906298381475529891841148670635026780853966635819332083542334118909590600146140473518114718812300210154567577138048901020341618933242010448586888744118564475658586296882068936925079049508195070410427636088729073840062032977013390319194836849257599087810554200137709128902061798237936865132551968438008370963652036846180332592419865707944191333404052173396693284153503217179059859585364375264195193801112550799392145360712926733031375627992880308929796251238123233264046794302760734160537546573879706826927060146285486613254100330852793676971460013713116499568771484357014203856019635457922837883234279210936956011369933092901296440244308878543221504333515074162212205304630532268599207161197823406868206366282959769612662769860600109564118776505001112612747181586935681081539218806313526592455365149557436539906526159228377313557950572698661102507335067727604810408664939554458066802962259674706830282724915948101367348857118747762502504808663650045901506126061353014975387635704503316447103317694837296818013089795825541170402070080622205756069673417302788446004245779453902125033779744073808760172205051831683854882002790734356219304241600225966809989643320307223754542493802205508115500759736396950058615499612742707064072245509312536565336012362811854511721645223343410026995944734621194303128992750685777081836711505811572585481149067947971896924842047720803245050804383037988884495558937406889271252952731277200506523856672869548962564749975408099274719226825029997646850951921123372978976843335007844997233296731463583476974907970345963603038670144020326433511515770827699237029964077114675915927432057686795079980120944146846334679760030666967654565015255954040311928129778211033636085995576986372057953462129845917892119872455636591274756576091518591312538948857650943761677672236843355087904558159059566508653662961720249916491475631598987527110566565446019001905042687465240841458605324079682656536635256562979303031766638664860958847504005808073914448094087545361624782883451871035323124459732019024430039069564816186413303688668900271612766683629876293123483054024578645184736605348258524432803999490762060222445907936249942600073460946019643529398437778555364416539838346536061379662523531085889942842838848300337645380965632506646084235039859202945043735604642839731695358006004826281306680144840663021072241009635565733032446346487821911184603982600300573673358278394532037046706730017365964772346353954958911577095569930397470224727689536855802541149002234159238767270434074927306200781423553067718819360065630203016495901069319346888795233196392391207564231033785691234292558332076872025326030318447313557652855178153740524237196326107518185785900696035027545198839655134806106552621665251135891103455935888034705091421363104054700368234614298028519280794122235904803540486332981004113279229600713552770467432138082928334932757673768861792592779025943972443116335801415316752570471681507197581792083867455898883370496454196775640635294734985581434363837915223270792638886609172096933353995309109738534043877318280741576184171133793946984240635427867701451461858092085093618967160851080570080775110019863639205816006910161887735143145071047308266074034631359386902417166348634909865770805768110535223722802567148488676184354341871804877498515378982672944564235707415705306983937627415955385078628945563833478251755186264308220452236971277316658189129245997261766260355450946277803505008838838457669926129342571869981971351375836339115533198589626119441593648118061844513937785138677665336588793941668970977226111874581800071261820793428654782736424290990965559099229044329557673371096196870807563313910880056787040245710230030388547585614274037956018246417882890202903248081259806840381057666736457966128277152646745569111053236547142304971083354144863596965476186358915005548417717949121011453513516627681489730628111736227472516485048322128976858408198533675808649524365996287122946059731738619873139356243017276042667689816864397020548470481053483615125307441585864619993596045413747912350130328013892104695309403256200257392526323369717864709083592127771144276709650085284385328727320916123670835759275287704315578755654203123338511453742452346416447203581941981074154149356870465100665547943176775798744185090304197911223945129063356034112308982351519710009224311772522583029894744119637355636014236998591166836899972888959128162700306507876343136924133866627504282440235921770989794563993042473105185918314291053855062866489060751319868770152458923777924962856231692504443729327196613984391217042840088274386853494370077743963880821643216319458252926666816565827726279370319933877069895343774057641836704762386025207619370813128766119471594123181654783033384618583943839432524542457532164067211020740380523789275376500741833513643809514970550669152795768385260684926574478390712347854062138334312206038443904684775733151162708440095972157701188452951115484209191360121180679567182405187170691324299080353896761438423783776710148406747447429360302796566601894987895524917274968270533671298847518590015363664130125070357380785607668345884173394625193280286519802603329022236315913195122475356843510423197096667088426676062955248464697824591045201205298150912933694065324987533016965835290589494061831966851005403378264673681067850817054019892630970512068353419428623439302796102104843233097790813457311853044587740787686270897323531622420637922568327042118097680688345655570909558905135568417374798686517122157765124762661980491526186005558529466492761173269529315097294230625100916346824967323894226840180243788812788727684967169928312817499341994108089658847100519321632017246146417857388014775171262680141873259398847144033970523769808609549636529619493922869101310947910372369618077260926971665040965891549611436750109802180842730695504310478374762751406973908056219821758899865134985652355053222882374718891470460211659354290389997663457183411344368902492565700166008105269503013642600063489961092470186488603793420564297527190396178079735913696522194504494298989840538032444125511789654642311671864880915786553485054224611988649541217904861928087103257353094391741745772150001722019770556819639618168508350423658822762225347443201324586352589499972470558675818684063679793379246016871968702260038504579925981249238876714337503624665288719731136224773553752878072539101610470576462915280263974419217392131099624843256974360235350181124513215824079247296948155149420615578541455639617567526855271134569888183007034812273421852123801483566754918034190994807078542423719331286784282576470189982581533631919126495242322075865645869283933608939029109031645078580027594181639939869596339892131063288995039347889680329649040665721169577792973630039261949272486980255877578391315785105134872646349078249065609679542069319113585487595703812390143002257726692844631459594424870030340432118946631201456109247660119940624240599784585263834529581802488936430052040905346418886729626516357615427652861181967663224024989804901104260124966858955705926231862342313928522710994123945281484208963550364995864355808853027383033053256169156406342406627794490715813633661958089537526302358259965363276600207812554217587271218528737470852770440782417357516512378689274258096789197768656726777685007157963947747069221761806598747882873738283676011793082284829249654678639384956417671441548962722796787312934638144917824614727260393080291110361770607865360867244953635870591782571799053955202300058070082301192596822949952833577899690576949688449383263437602420538547161512203211897839750764739529091982660326299853458068575346173719757074748188245149447138847160580965044619752272499386313702459492731772458105036017132216133688727261134376433914273560635252662121663005474499877504920045026680643453243382667500881113540960828948586273638525959274157717736416656563495065499723534093052358842781274853794264403863324458715752776497802748337731661306846489501351853952122661151054116165873433998745319616031204727716101007872117046416743583852646997158205177829353638655042809612373610808289348501287029557547301035642657095047689194895855275194520378865832330635434277919304934326699545195098888369261487911811367127285897571489024042205134259631101649252178687160071871951175990403284228380354734276656504898824910927430631442332160189077348381726755655482721629670485242420208712503938775281774073474072224656193430547658861375544239917508650370210901198030303966831428649787341209079376447179552434914601863168219359197947143487726442682395232250561629207955115027427602505418960478991353845315456049890295132743903653517089761548112780042065154516812247579030857044590544320872266065486402736684433917710126216052829519528527740074593552013270210405517960938330896542610196162214668447953253123799693673384728597842780927157747012241513478663381957766271784251545761654176865255342915493164761630776311040401453038791375379258905555737548610050193234245982955809074986873928178024766743491760055158991581640940441548825563582973462957123079784407778639273381658096673364535845643598091391248434202419878978152919943261911161082159752487265792659944867019273002458341722709218534407820583344358421215297395249384104187588907194211698348822528356940898668732213690688968959233451543436527924453073891476575666693551643098427882158805115687711587704264816564391116972869723076890269161771360297804836000231408388267910784249199585468545607856919749578780375779551845143339260594203447262981924628155894080441647903822894965441390531067488214675018360898801366661619482174506308388689161403940669619748010203717296521199264972714130345794120658898645882963194781593385692558887332589096389975047564265182968766693235294117149595576229147088776394385954760335433366247905333187499944821752334463755631449404652120030680270315688192573935899450972958822575117336447328978332898551609253182280641858910279196791217184351161844289319531367815747884078462118152736483611514912603634620072462548495261110523339192638010740311765237183277383325875589735747452265676857214141427015453243915654182025543225358463354311042977250067553107121311006086949864015375728589335860150214259563178490957349704434875832247370989924376743861491788472117721244301524723409792809877494521692849583604053458299522422941471213751145022298753494160052947874269021832453870711003907613675975859848785764485221445203594945117658243278701006087664389752134542669271388136878347063117372668827417631839821627801654282844366633906008103877034990211094917094147231964426030540162679676748108538142945101482580809485674081931865322883409179477911259434333818816977645880663185923061638723142030656103290608260657945686579979901262771371342062452739349982027026506660938819930119608715413840397658634893541543049095292175879759407271349935092401069825585444822987463823915977638207560639894706253306457334863601677040637364033356181769099838897779578330358052917327739625248359797060684342344839846662272413103355292961102192290861451982615902336134366870328970356961456497956245831480152379273875942125713063399631818769144269216918800147530343841603745213211520589512039428411028512160743824742121458792658372099638897927398595559003750219719588641364193322144021631073151067910470960403045019037862534351770308468274543406543101003440344775025810929976875758133900747082876988019095198362593101697793901778451320580717298755251084242355630350295610270579016271453434930427232712844249963318977144112771785692750603820671383555933535199632806521417363475837115636784695773518647904669381169882973155570598096876791110294647386014114860401117918691979522378452817376903496839323796273806545770067808653485762257167519745700758788869848086233132890694882431672806632605651367467944116583242088014320460396525213207303039453347344745805834207479094533703599869856437851402458570414174507968125244807395625250432037082934591964166614192917303121924572052141937048444185339178497826009040796114667702531099384873479360491178103608926400139886841296758190803613725746702965591715853894734162024862571471093762968089922540098379207529526244950734669365229891302250997618064039022203063027483451000961515454071391960826460699922699676814032645875697521948408287489762190097892861811670414108429694502922933920142886456904902477173300171066829330878883349778574603054886095317132108774674622668657078821636455250944877701400689835086452552229434103542169440790407816599095938959626268981952335116943155405618689712005896362763525642395841490410593581046721990300535486601351849101982881134864802824532198495341705494636687993609961547371249584973971682821932180621716420780262584061019381990246419438308337330040947088813717804689905356904432941827255716487541206713987984253742100167178406180497204381374457519463548438631408617716678409187939947242326498180032882519157718207069638564490732876021948850450491878627297729040958333612386563284780123920539305599398178501003590131475903879001866958674809502830964360096964555914208136736888136841581137815121287694877722181947931626490131915318682642675424072712644310198213321540137498821339336826775660112533692117836370988694367395599756020349534769314401445836880289539125668945619692868423390615982780114323815891673295694247303962944804847279736254946521397099254794605372356171462089984656656505161602631409622456483890520199842310155219222295975076376585621104470932549154725154426807625751593050388851880954078194211156037117339515136412224670064800913046104250656594142617102646230798813261794985101943358574164560909376708738352455912974749565938359554570779293900796599237400707560862444939219061645944552825075596868489773953595873824371289881723144249151362539531421039335181130952156602282009806576572177829436685505449890919312411424151114460474979291794399745929324930422033638025602370473922874373773311163564772850392764997356511611742245049523344421311658091881664553269854591133861117834630193792525273500198055358782452299065557023809580245042548347750206651276653372276665132934326829972465885926116524156285038898766491174345714785065237752221852098932315958028805894036348170688072914239100242977384528911709846612932511587806877228131814296744743615271083100409092111929552417150867342859925320139293353496434068597801360395024367791830388864132854861609431995453796596361291069191794472803146106258240151082683380482492312508295736817621733674437844217509925064024008283448269951661139343179520791809970898686107016638083363177578465304456225206554663811534601121589518856912138660708947923943446845087652669162835219018359339979386101090534494185924247090908367459960925347155589959621972142609882879149870555813909733151374812095965749812982463520335564322150024146737046578209481856878724575846157957944632788224883113830572659493204852980889159789718205548251091111328622871803591976221891169472341525442965725441110113763461000196896851740760854450607095498714260808196266721705461469398925636507721795578434195589972340145920309080540010543181954371255113675407996848384326209627825818459236383785838179273500015161866302776209468087785961323093153956497014407356846254861018005271187975846424942605207928347801861277780785366212567128733821129447212408628990822769352229399994810840101839038486325016193831920447855909963213047450757314824336840873084525342528170197803390048642726177301588889910998866591721812659626485373891247930405654531773737138883476926425100652318333141925527016533564246862957407768420179551154399620092242987440943211494341509315543935169401943017726565727897763406808669876851359274716566663988265187239840558026662229129292056669995693365994718501402268047377955211110238261070382217200138240953653053848059723006382408010511025982480681285910575661005556204808350732098153117704718371053574126548159487739421685391864312436027650164027526187608220325111314521869922750913884089414473482412808182838124914181805807392723816785264774090835909858528320957219622467281528880341691419079560218117249096459661307002907532690002269305944972976957361387055972682785299525324696832564049019835137312228368516616979410828627728678913717821542492329865422597023198315994169843963932912296114985064794036320012118803286649937003747195718571281809625557192935203917583741540850496856402146638556773823006307877115116486821731681395352525137480369687107887346368167120890315012837512557764942417137333547340222321633047650564493907253739643193370236178451147266549834848305725859309921268804031913672094480453289830238536938761369334228830902308959297807227206025085957591173055179772561139554000433221508512747610338540454786562527510794893238724484442367633225628821001812111536355128922834847801847678577948628731177578082912528078977700809230694803121138307344808808023865239491813360945869012152629678966776940062923034318086150958892462914860833571410289607725602222317067750035476016578464954398666176455242042917799079852292679457084322873635264978462536103096397403305237200140539818477484666448926791635692504271474674206333981496563134889272219005508696873272097271310264742788238835295387231626054302593116098473489834883027357291544523470324959266320959116902855139355357079537849394314999276486259502711722943484476837944439827461491981057823762235427507143253912214690529944390861324044548798215148487403644908525277223543554767515748790665266820636567691774369014770104733856891254042756283305033654530704886304934883271080013676826903325293448914632729592469951839084389528870400414438502801591352201734840328207014561108082345145395673408987626523414455460587803890066885933143300709254845156909913502426650559013312744180173654813719387016380211442655352505498064113887645736467561508948816226316997474146209337234373097709672748949856827917370511717198147523291831587979232970090892485566293957355587591839770070605125121448185319090110207259158695571808134234621728918028618695039944021658851752784627034979119444528237669944297287866217990340161770990014919076094131368947479055204005417860452480178389638807406914412915770548286830658836146310456602655161392068502726720087508649255323746947375323192274989544084766208273645736722799510052717742651882368091039465299843157770872763514933861465445724746591915189708200788114636834081903194397656407500418281682014403025790086754797940836838929983963222020034496145850567762067601792743183383331927479527393205879122099162966565661528726902587016160569155484895996847333729465458735188385737046024239112373473431370166900950783574322981874968697678444221931388084433610833203265910982560846275593316478481464199514393343739123591879963001073322905736069707694381327369086405930507660060477136355813114351853452673196742415387512847472190498339009763028614705543703723069022209414130262205322706592722942950498490859912358075933326311824247204124003135910343533506848015799952455600568148521074034959852078937966378134390200694898978990541205686641814406713212618764621114157779567507339143431852603093898286045275854910899898736202883007823612643869620378548650776953469981554058795094772984434775079666368232104017788683752073857315214519392131115289922953345238637413010094587413992719115072529202104229926572545707183679233754007531866071624622307278806636623909761026312651815605279200511771174714072260400608295705999106509151030991271913437643580904160394962310769920025914089844480709306260253797734306132798695026260494557501630072586231740293562114511745365579682117989760531224531004380257416416731541419552190126555189164363537039037603258162503249741265584077667430606098605420817458742971403887477147793532893667654191123902617758501512983306385784579280203824523669807083032919544176908503096923516974354205686204833703249205741394346815304110215965112568402431384502382120518221032544063020199516469045549427418445768535987054829191695545556037962884128378484250194249408261609506337219974210496178421412726593095325454359979622801065743543364169884954373188334221397417477843186565768140001768268642188937365633216076854688814271560656921332739393697944928444177563067721385918828968661410215964710902699430459854327324196407710385940305291720727091996323327725059020503821385672268493801672440415350371621986015033262976152229408726243866224552594545041764146430253120652081199680643079215441406726210808771436027535267575503230912055150659180737686858225256190679244353770368360439140162778462120892287462315398082842053928395346469277848612816827622436765267067279494299624365780454147080811473183578519443683301367196915193833669671638682976173147261895595485915903973219137002178141794418344401597599138541239665014452942983277928457239384765553829864797139971503816590736739565335360276353457562201279196521410476195709310793685176099804270481695549172061789280280016246428170039141769191517239695382843631672426837996958304586783798382002600882670278766049512850343241528512889062957141080769073941469095028675825107455436343808704450752274300325756972805225464468701653181693340161090044424235234333886574911375567127114421211649281789419001597208655370826024236132870864254586575276324339520427887385788320768249838301240807805460334111978797418786933880337968320776551602957663600631585837810120950090416040370808011840587420743086749187321276243061683050665283165713465121942151423305250445441567244746296529189415545511253700249563217848704956674962301175850436582803063411552689625001886415476280523802855578737983354764311706881589729103458160118671602136838965497876073242114186748951853636451290513533737801436099974017983929956320350377352448968417914939513916082797564902693627065223674160248741559890955228915026314639038390293653138022240371262286417446023194611350969901068378264881977268285458634761130657936844852025593638679088643574565617286885534970437094580889857517610141199941053521265394619924554161422997471665405501945964717134080896510982459088037796253424278759501078075838639799105404582407885217818840024686906411088666035344438416279911620926425938977282198677410961212714012565423609845739047183480030564910661175842225616974459303283969732792981677210876820748360354852762307405264830863811009141320433912530482323647518887385582568106738783990003991096461466440808344910812652373357090665524190716192785736817679022613032423412620394563644399857383374625649391502381633332767701426436191407901508959515583926350934589174395105116150889312202357379101810084508650505993389650534492449223837953966059816675340232744188078924333660131780663253092096945938661216743219561071878700288223026026281079376696543667064140273180586098108495343989911895445758931246573098108603306512678549251417537754004661928488967400871624793710413582688451006123714477601067251290707877833081359964379811613006556086381199114835404553715336964234472663454311962438639877051256785700966770973154887445455593849167104101277340249959885215967533682072249003601727758209701910123250194556436616228916527725327401243741123108647341889705049825572404630785881914517788620687354900551487654746681646129351898064431835323182019309588878395198466418770936243927728958501570099858165553390424839635153745454313450471680332291458874232339219607542801942237813925042894511493856283908524052706220488960770427958894978478452186493468348853006482450267705774375650622918217092966268695887150208818335214033882735993544856524173230358933090451395014369886215426770435427564208422050114779896112414596274523997586957432933603389896549386193697861563029642980428407035273115151754993213766277250665055213704081234026508959891550585970503846949848714480440577634171457642429185553953310125743309914290484625331087360720480085441250594537873239060674916437671860258889114949370757265815080850185469690778133539072028239109410098683318989385394009622142714267108784484383527690537937948820752229280998457206184361475742995225005734230009439051632949717747776163849573443364788053369106479711818408217573561658116684595135653483587662039686801566317505372907937672571735684538415508416506636536991627297656798872348580650103123308200487421910748655714512271643466589888569833997578325186745165596721071382820164672155824270053266509721339083285972710088452161678578128992016232097837955728659015851239698756041175277337474276211838156692089368067812579459996893515427390900072418780508602342657642273104223747982692923056851704829340254845096052664570030933503172603944005136225627156540714963603684023030409321969547702227226323917377165164880694061199737835611114102225039345408938902179011365757974552716188869401683429737546090835789056126457827031521865478716598370589525104311158989278334131191651602724275125983640065909763660421058286622056442070910238532640427190446406275629717330011031836020724543145800741565790479480872995664405362612486193076174503063698372145394453026571947158487535606025280761932647279982346729030902515742016144338927171487885643659626990073388257690280048397178333428817729003429044859168057232735719577427887124171104765810875000749446867567091996497523138415155034704247420714166877781063655356626354332505852053765661185427547706531398719482838806133955551147701494711062259733496257200717317371384975490280518495619564279769846582155338935425413026491895035953616091359322067717627397790815567437216911523554823211941243124521239950137208462531325957117009169892565288023627611435320855808211303977777755004102203374448983029102223904516272173600775387090903609926329151463212010753171736274370347462243570103239880654337771975910097286486976862368976768963629709267537650765875212082822517587967836845017523031075036902686915090590126818724983752120538457598143635620422789937891085039759084037936735996433903151369855655364398245121837485511279066723190276153856135473476166634407381232539275506480524933702743189359033978284223844327842817557261298441065596029011689149564530555324786657793841638926831889223064454820124523954937213774020390442306360909763688051421106532991847332990102137622461593825383103004493171629177054196507056778952252078855438656370957419182025826528925104523273931350523623677140888752385844335910808546539279151538829625222782576206108714422637773439519948908686597736733915735487709951201972522982223385055906704911039647587195614475509902056898451690643231283144570032108952799912927964474421750010744171925039606523710091571136677366056801209488130561857482083298177525236367514805218925597813376332757840413811236744624520573201598360518096345771312504025648162247525170877056703300435681981842834102948640991682792656517261126356852743046374436838778639434780807793508599896194100188586078430092000522837908187156510997638344564533864229562530323413952229942874403843175240410073828735968345136179126437354893333023302730862240574629277523478621854690725162044084070601509399134940747787381586543721461170374193028932289292548824206411365646567912310957673703213181122750658300448036505069819314195715121176570994370175789623511740207111878001278541591815507330287021563993315405859618215461513545157453324117261559492159192911284587605569070894984320765068918337996675128039411917445188459008869001605481836082599119472010616078675673647677861664036084021031505573513805628335377102364950047125633998447913634922034518983680810071342580964662196971169083531559469228911751663530962661278766960924831286735679623249347319285434850307200484987967920986068924243023871038265167574855414583445819422823879407980562601124713412137165987473242832044099816302571065576102132990725460665840363690910641555864049308884986188828914919744383477938840447488740613472852683703882320603485168129327596629763820740996410046203420759918897261833408899152760804684267980580647242704497766938427819424933800135104319704015154929439805478420814969400879323741197354265091571439430714267401900770568198929859304788251606058749384133852515411118777157103942527371927557478664693838912985246652496680244500869959568644547292535578962616646699830881256235993223273986971210848054075538991334474689301017431428493149146557221271215246634750500867077529988194190878089089910036501094865747796823105599471892900804741217074840031859686253806410969084779511105971410872591945636981331422678660619115655547017824681624611440452273986727716044171418298948149474089437240481868049062902241282949290721109978604159974571727598307110652657147154919624408989501214072069601648179581908592833461142028778136123596626430542590497254109181878303937862729634432338719382774564532848428230924110429797403127655056749930618735411287591811159068879822564888279490816617271938016344184414312361397692120107887644518664756942801307420372241218176196256215365976878702856303459520847985550493603925513752551357964438018874964000447813241506723773890768414962179342107606864999766427262254700805820671299390941107783627258895409372559345277818392667038808455266449192085335654165050507992549811174477502177956929371661330274773601099236408793689419590685461512818154946573609027715135855194549506420322998843341250358571869312000278647069217893347863693021768706595249615845442862589636170177223137824572130603963016881551939464098141498635969818307394945974288209682868152898662347621226074643572251945657567304687915860555238100978159644122341464348124874221777421632187501420346015099612600655037400302717233264572726345793120933590743257752278066261526381749217396682172191545284068613849562190829407562937707292959791140359109500587927582078926965142384270454537049125206558816381621666878324829552531252114458969800447420684974303829418488133880340889541928771149473947950343505222510718180721560074639541076158709704113358081069824127360325583085933370302239738445137263780963639801327272910555136370251666700080839219723679082864332564836357194844920709370465241013804229617897616397640413934315026955163441603434969778743448181597235276345278770863181182790939557687468057330615483993746757019690571994367653255197950334672816647497706095000307818108125056199512347723752948498862451097711522156364803176477739497764174710098296596727560573816552392552977402639687023180413636575904194280450245975971267188803948173537330743855255284651882127992369379037504107241274710804479131496441853657817365159321909213120747071215749981421613616183799066295921341045254407645003297505283255687791123936970354745211476012324144657135972573974464689559146023820171646078470618663454965645280264023941258915289696928380188767186470157108344456006114187884783250466795283051960940926213256320048946970997619432752826957367250674925337923417909981827611189499498172167219485362367639431433085314319533065057252976061861487625888632630323612277289441152070468386056267899246838783955139164095076633482569659979978379404312099280408615148346759144027917886533926037825717995352466620194091783893363860492668162673399293576491894348188525178502849630516382768181803578646510007617497560415696332020549244704387324412925537792552458404912674450061788374827122733709765858624119399169001016005537715234461441682009989668329119228722013868847776117529200975458607791285510044268111624877976816798520909679143631226001952448623604527025162534704388180636504904680065635123606019335411899676946572448176656028232925105367803280259365597095568374389183262164890602906669481433054947659373086495957292333945752891676591469069431259620642883162802349097547639085216529117229549411259512372431590468784118504513199883953296866042484098720078984876721148203616413710900222502763555801903473090623799268049420438548052949806951790559758808911696360102047542756268635300286284819441190025372263850525982696025726671190995695982845587371061351320299142122077939101295249292225984861545097311634604651069472383775526138783959328326243197590255559158520936475934344160958626866792451950776813456369128586753340722803725150858479165627426305137435173937116919080029761521298560152577995804138789364747897478521072583726433429207896679006604941466041866455953782578371517399960081195666769514092432376715459577426294487159025554117497438839967333036840798436874770328975911612897677362090745387744467980866609208825196527119182002773600428624404483055114191764527229689303429925709238464766294663976009072594439558598102643542698143821355034460625871304851641501102922720946357595908981264711250840103442296454508663825638368396682258161419844682135813033611274421272855721645924731925272057078985601368594230027708595820123020531001519678734386765866452075537081837170814099326048330325205981440690839852979773611975393358119856062307565098569056008318722432217183791048875825789595978245760019025579372101182721730143953754290169447830881773346936557053643502691012307631849244542044407673463978324268606814932153737620993221885345628468677379876335020984041456233114462788937015881782295867081610718697685307926245546209356624285890810686414188471696269856732259822497885580236426133668098872990290164073209282656843894733233082043390422379317551896049221991411895302543486503884399661295041793887985849104574383095074631327133910208806930029490661987469417116002268685639104243601841923817567968152202980705617598165397525390153331986874870633452987865473066994298107954711598037168401193127526237901897155829188937747172444258796899428117491738689009275134392894536403852043342966094601929209004022557216936132423974628940286066533252549192080526735861592282505433975558887680660182932690875670976956619633219023071878208550680834791673221474089505637880889532612995708909599553088956367707878035391294495780988427968884080417147130817398003838784210102467351382221229894656501804876996375018216357696464933241719138369209998023219224126866194832018826507632681763227730085660488283770852577326839677770466023722224690812247862981112100959312743527910730890867107979084771392530488999355390150476831075618066590748692435344866949800294116020574505117183584116264825798180730862040285869734276341559616191905703765867213066676443817380164529783198095974097082783582491741533587278248214518412680298508497233235931758564290748336993850400034923481245902206349182433643944220293665266755024792302700782983418298453946637885927524188887315392927996172878418351887311781679123496104631415772570015738046125625036597486350815591232466390179382564444516184974472751060542454791835738173257284064463046116831621761193351406574958362288809997287517366319701346310806231624081803426256243716626668564920311620384147330264515191004655113269636419866667603818968079509110681152553101649814244011475623780959308464955729898904207071429777238331429863275748679525961161963909127925007678900040462233082240303031354452314910705820583032387264664968184804237428822763336136491414286544126059398452994165383551604387234473480539999756620950945850666285197324732829132514793683769560289446435352121125305574852955957470740443626258526363682959823367155525909362986645295340102875475072304973888047926081441017970355518094535536488197499015711948876528230015773117359989313136788711739679954427593896591364836420948269460866506912327910007777061964162175876490551858430756453189831846384209958699042233691708576245622974406280724420362313599862261979384230036584767998680032183601549375536800142829205261149750977034934051214253467602625504850585859013160626198586285231076687938975909850588044612421156584570967137772824731549890693840801571335588921442473504748712279790685020645284435884932113935894797294740252431277139251865535013515659643001505645057870389096510705317763852819743332822844575027137880877815667025735864335231493074561125852524019392599624499062031616566019008842900123733532231735141140855193717387124759582832860001754334752822968979510281714964020116078489302006029277076352628544098325406970788077946071409649926887396551808012815232143599188295120387783110940386975855301082003668157948066316684956722063218109957431110470501470573936948790449882142501894321484850209457330849841920669586346364620780975460246165650988145297637673187215418772332773267806756135856168977035922191254124829426723908268292133538635680124870430368293362582498736075445759820748506644578247204843776085848965171033199700568044191170209111255007142603896440315095973014854937490534397398232869209768665758750429197786064626811293782867158333941634011437981894192724496477989776218782206226052171407466233804300540875345885541678734776540476925012828281101426915196198317216347727144636963576266884207450459236092206164426983800207861392696375029984893147307538220752558552898331754557534054446258607371602701843850278366461869866244652593211056754967316294703397536057745151376649771848908789943744688945171872958023452830678081555370125095556968699832031177303242835837312024403731299989661605827421615385529782317720097400107885482948478794156738096914481361091153538870222563834249627207055282734195966771025868706644261448199724472989725886292853235565850230763878685618774323040082182623222823159346248475780415708633102252498189558437849039542916115648783302656838940426661980239278255703688976234428389170082962751629234303590858088842896768696669679197762985511377875538078973845208526239499818857358346280954965136176887894504287653307898052851844028012757568262743194485433108596432355573065700672356384232902207463572084006485825327462681780642433285780935844037296524821284687579495216604926857438323248455900503982557873076679201726537197622737289548726232571580393105827911854225520286756922740364123501240608264692713136909415675237392496108370260070791700638841411414531793144091567646492519773668813455524600178793525184261757339396411256132363236312565638505354191363456331797464208857723693337529338457090334297985309869878778404742016453190451088542839634564008989370200046881079075670240865062366189972608009979906173600652145087413140716853066158979042266445238988489987492195841676957693366824363940609234367457912990046429133852115563732412704435622548573912362042113679153374100287481980834862322893613890226521621552784368727388819298292819010537955938137674732695582622611079244960487225918469964224365981198734394710436901184258517100519778502677691255166776363993113340255084992420034539283102317039370076831651696327450660631397182477268156724821954562948819502124601141290619040583386289344531485297058161240471879621861799214856102019143047758646076076922208871867831993286552338924907755561271704148452252985723970943465481424958240427805335036104101663323628332073553526649306558017603921787229174757712643871055009345153833909250127181736823206889219438868842186291758464067620566081974595925300372799356164414354813023202432361196372943607335265096994243933500403055296468446947955668462621847689215095071084263173088612354701201241411471205825305056304883052710198651716577804069860016108261862820265605370996960217798921960394748487418784790206325519101614292819332029266536755466596157226451892565643327192233027099513402898359184099850771956432446091057981668222076919406571707284519436858420641048856190260543912673043934071419675736867402335646102827048838584179856438980401664093150755312251650539649122038007310434677271336998626292652822280699562426738099489798470372385375911385088703505319936824668525942681937192272628022010825781564281205505015756668624996195565619993812656432424391902738928168669942422990858432964581118429235401253818847386373510297370180743570735709027403712985593396875654471112434165144488073750786984528577024641166771358629888591759986473137305230312274758848250037854016792488235742716487648527584391511154028831749192077965629356925632290359765613602225599681002195997332615938101285523176563188569657170825270063145405407501636587476280820235720290358109282306952763482759313007637116944176082351486069988691178427726008916555459623022113050864901701872021320458878342534274148724456778818342231600942669206194618737800873513258975885113062140249734312412978270541186339041322440745681841556927518209025477998244391234156099106314293270666419791993802523830176551702239455661132096777372966138613717037973386470074733516886887565929931944917683725378478204543948675402018592320675772647840206719739005545189526120994994790293437013661080377841675858828725452560073581715167504468304048731043476911030341395468697633164585253059611644407097733643311279820927111774447904503300263023412751131965145336485811553396488839889829784433051165607884979104620560973151553619286278855847969215481303787040767589839173888930858290033395483513102860419035035483939555174567509281241943189145945160502781643417675943959444189978973452693936777840608155896804844333952906165303497289715660551165475212686210015842558337384997734996323937654876316670852417988983451431713908599692656015627858904599922406473628068562747169791901837211796517852805173022836670332887381862875560333344735038170251493295077209746796477830055684052457842738387667256588023931080935533566258966374074936874962917508443629595882761410220886590381913545785531028473411957135810686028124457384809625648919163884498443584963922622671585392351347931121579529359021643540638897530186117298442287421271905920839252126783922961173525292655032993410399487569307348949461453622094604494837907423253449209059649310996021807294119505137412656534001917579101903532053022717456553137696314246750400242291688689733498584774370123487149519902903536937387851801138571183236976270557672089359549865867266239420345825285460116450646050027159224334973797599828170400410992343579573405070136484701362654564564750038164823288750356049055490989698647024249575456766156591329802814334611782092748196887758433508482775154689222145489054615264855837285161912989388912519169909928674820662080838680720435319526104628876894796523209427153401875622160993406010564919093689200794706806859079458601990540648927762127351534447405362679891043001377419269529296550238811069924127870834966889495101118211655070161844195607550125003268338852017623312281498545862655441644431996259507742160833598326774982617088337282576947223520224098650054983175871310981712288766282776929609919602150352626316077858396941616197359262015887187889004297762924339549066136095356101461686477345092622198361528220844528170408763204255052606243294918608050328886183596952696228946452854442142244434466952479151542632421255651993060704907706298549847529786917381904701071471688711543150839185823271822716013898282385449165287271921192228653738577584050535731238506330417586084356321872003500435220026308947739974451684422792882637982907313968483630889204531390926361819349737113371253263305377362840137665192626202234614297646146080039100161988448136112794181966017527863357295875644654197327045865419843499213869969813931948832647198308377651967956656922830053423942844060716831023771447218073379109053178909002433055611160344291865033442492808015012202456018632353656562774519207043631157984573927664948315395163300911320773496229326058471341199721678158101237979596204488720459195217426611949623595879389234141322939468873481130191413973593579433199313190981168962440090713537062425233891569443082021101573785104804192617053783242731793154476174177963189058465845865032556234847392079990489359763504062967460968449090321025773932256607029142474691267979897996716521151597240708266309745570322874464446364350720758080376095529453565459176565450348152446502143762154590789447249070245212828388687119706362871612915439349867331573503156748280485217346038271398861032039777667889320747398235098714517383010266496455796058270701014548560408251270914756017965852599242595056176198079690526207579766979664010759549318472091468620653120474321279070644665916990080996291136010713432666572671026444488673743456405281295303937196881943200429987665245274555157672461738545018127630964241729690392493793189900508636107011514874749367794232379735942258339623869729074198550932070215141037422889590009693791709510902380038172056326955204628291543109762961172756816392727244913506653334841943033240883543894034778346047437316598300868510659530365777393038800281702487540205012849377701411865456712342600236518360646922534514505341842101844817352536635896809061604004458081424812607307061314790438035274650819229160212926964349510809744930257656299768573270198500732562773454241581546978547904363483416891619224341865698560039187058390970166157919928349189284548731600701500318242647679717719504336257974537518843158936307423701475564522265796782577267303288505604266393485650771435600718381854040405394354310275655207770568652288415615600783363920128798765384958487674481119856473903928564826755345672630423136037616133424405419132157438755632593872829008138612920184334181829895873304246277576572576313252854803074712162372583168946497391868920175374736103668027379450379847321608498788204625146661608154740042681891345170723961571563081761093075247641591418621709892115368939161792371472839496843032343407001083019391321123379862270765604743275812024879908164880422162843658217901144655667853747067651123881919279357351372473929754110920656517013113080297326530907638709156461352353923770735409499353205058554135442141886340433411031430739364285342137247968895895533654781334650950647479845870168958012639397400679955720219576865682531818930286296379856053084984535000277572891147443939696170925789156440285712438613437952512084009124585607201299112693596167971730258602235134702271971653934969253455014653307611277541599305449296135418542200756566793493474043995456372346416991983742072997023861086000677335621393701069420246958979346265816804399832189740931965078856374033326908677371735985364808910464692308241157721586335397516425160443600266930742527581389944222160946205531602165723167272479156890110051151958092516393828356533474399075943105036589299996976073885555032677136710156597321549565553008699397656720219649075728751452656339791712861542957064833482412465611749234178420112788233646095192645792078375589667228287177527960120444621194450540450589377685503145981268077627364230199859437837933192838917330656319768248909239419574950548526760676716541288314025200477490831021638969957939681517133773868789067702903210606584006077385412273081040268140351500987022068837433790650233540019931419990688275084787986908916093125136889353817980573304637756781075325162885562115272367123363822935634576224135212346186221086363095866384743544472406182126100585534957899743496004329592065877886988636341329875923050317625436178906201827128232937714925981865134861991763389727142252263597473663426825091356334162330669316070124040124232218309330367940771911882504815147083100461705682651791894303198599294743479803559808407012122344428767235070147017529444528970115335717724088217472680761686822796443269124099405705872460793354723385670695685314485359162556049067237986413579311512214952188798224450571125828493270816707999896333811312815446192711591804380557182309976894667298099532212866413609186218388081705351554595221691321060874995127596349137954208810103064602349282415047992169748554898516109256191508104501711442775872479422531341420536981353483385500486440813816710609843859119329719086810617413897615651215038279593950915743168844885843819048641799310954978565081974452911795947409070485075531759665505604552174774574642978413185238378627663230991517731379053804835032675948767196380959068778624434450873473363798414871469648179476963855206514928434976993102414404184223470675741913572223144553805574972002166562234481105807661539164765587609750062178072618505176396176529486847231459524541837388890179150120015912337252168023822487015018831712697045974117621558605578053418750674112507796016778685792081708238504708200959645232433233648182842214746883272826671752053895498701074981760526490187594923772316784215037014966106213796848667359997376492718266342175376808832145552721939785839438695135556629839936099668569667264135726876007509395803720818186596862358739801138852440979683095411824165640983690430930895694466699304459598778268189066240269396621532346849911115145123238985082910897110349300421383176223715943276215370634387046501094676533206055081317679631420326130034708108210097784876596505230069176761176693657035680552016889921574086924596056184169001050513272443251408159703145496073680951346359302004707734261224665945373845405491014308517405605548706159439023919190522971012254005922885253761498348264262885867593203423588571132046007974594328892827350874338809545907614885503418250650851549835266535367547690962759603410628259408193773379031406387981838255414153132084353585257445694391981588722541137517685063790709252427002584701312497508758514165556811327667013588636304985400712140950345073134078516397900204001536592884010345552620161584340232342729874784812170297079308094667581170387106129192070006514261634074957152045595684166609860406962733783347040520810402905041677153833900556265645348393474072533201840830262763354244888023116845099871757804433986245786781753776105634396253238280221225915996838456665174031230290451684927610885015035485508433299702586263473157778029875410657529519465293484964255555310308305310501827594810495764768202358524242019927748746563977503660015812096634028676130136548579435913708472429278785405573591340524510840428252920283230689788075793732331780316411924563320139234870459603103875544468923473310438634026111021426748141378929044619159879151958614371673878911415356644707614741398129211458192799921375204734199785103076625152750260408081021798443888443929029694660767661089498198816573036108943716802252820172636103110687106157184953843925040202944731559245001214207042402615318402184890537889117706664314514639319232886427473335407571046864270187195682138790287325938779918745273906742555822626453676553313830367451510538201847853544573188924192532714510553187840321166936977432950957585212591377259940111286575117980071538254907334108394182654966314998514882756379884864749887262129580259023060541707900946325907928646752042985882713805801974474639923718206369218545394538423786239645738687077374938507077031307205391324896732873382024465929879710790908738996545426897231796754273886618582424310934487458197686378450879139376261600055879376851235602136172917979621704125307666248300603554078584614805842600275747765972387998558841056160136318411262369080924629788989434091635146884855605492719226168133140237020425678213629329313962820099121532020045082212867247226430849986057036730061123281376034848425345915677375374521911525647510108371595692429170357437081920083992729346913140494807317560957012854847708050912180362795897464835126420022361539066191567756103187902237456374353927583858923413721840320156672781846284717013023297216933441067321693703816876558526179450600023772614865483702637899870133143149616413691489092203263355639650901191040434023508942101338883894036633540425917314428045148467873577146308027828941097224651523677741974994998386316575314533409280437245825103733667567581781521004745797405594280126402238045257983344436933044617966123462595362735709659776378125465793393156946405930443601061672502510440831100033306585273508900013001365438485143078360935948736276910720290343394549609485263456615995884444081644256545183274370355828102463037471978018700632236468481717258378068997956787937456403119981591816050671760533157769790104331231888108289307527853267130289249705463213422280665014638606678790004904044752207151793014935123102807140225643683312466832648390498365373995835618631615182201241639739168731633991143807671599290851949120159283239788175423528003130386716416284451021312660351365012998244584168866509745764772845020304935961416172080810674144065071204640421460941149582553438915326464814643054002757982810845583519190237938469300221830533461630495531896685828605627542788657406911576843541858208571526281593936158635338543254643503997109463522241244188768578858898650528056824224458216411171053471756165449906168650732709506045903063548812397098903966457894608957776005104078176258239882501862606773355234108146301192716822184939282362534849444826399461732751443140191260189979305927324692332069951371723584243096806681924055113141709069249587860339495573162720975609705207218242293037362121928306355292685158840449996293189214207464463270248592454338753040650274262232796863924019661405965054410461329876718022632538345783250214665877629729552364586227634929263753091690143676895436486241785361143297828193331812503061288179495136391193119930021415317947454610063573146711711621904102986967982143594211189848908529451294441529931843271910419534453809988873005903172885891815943373176131761551472319395561069657750280512296352693730669205023861689672327040832622611172553841154272803817032504313401368197624363775274286773038756822284279440655255606535420199956422332463030814459542292457060748429506451081983041945603235451935140329493042009817482104517027648702168483913864005875456241493151227805857227680011873776644645127031272451893527420423682570197929685737840702360777311184607866833168480361267667990190235706587970942610376399377906160084516973374704875576679339378419549408862422429276128239279618038855378446660369427010239765834876174186099767666721582474842969376119767067066560949843956240604968000282262352964688048111576293006418164644144504908129782045524728985167477001695493211133046230424463103341414612159545708443292618878630949086667496439040375033826500775037628108570957242097241307162177212853211467055399517393114687790442699945657794916565458820225435828631085890929409768094845296539889996469459607886936727367634330802500511030377505187405561590943180437405409517405881108608752500450408871228917185971164660512882129897269334178053628222280203008565143229673648844069323842747206158396843520421450233875848026404017809191437843909029980287867578378900722370800253224583196400617861347060666839404234904004425116714798488967526136597168221002462811425895609802049367916614304313900170873423961427862797804132995160084242193402606712116328709371770865552512778028829647119711171640756810936757610906299583193132416713174646966781831293888204621472256210983455733888340267396178098023696488048660316316354442251754848353358675651663305433293884353026431642316982147654851895292224712131829644731645226390895015638138757413868450577715218328144890498696418912596858991897813257334021413182528737505298923180127914565789636191621154027675966772218701391357539326967298348125132926335621479817462676356483680686208672227842128424355889111865467715487485899154110196341144056644846488736233930098978495396172655894980535769104442430982338862638662664195964533236754406045696266004770000902888314126368213520506017902436346027269850235079627619904632764928980199744670930881749524166968890160210052082277030541680361167437852569741366764463077423241032357332825711442461222724556848076566612041038910007502028957320463552164981165512771575457922500092674155870330062186300643852100041209180053369814649969485410127740177691329890762106282419593020833289678481472653354329858886437937229562211288544655502496983121430838123405665781955168703353436793873845175943669790020892706441695846029750337574362531701437859220219761269253631222778792233273815816464718209956147415240151584940158610893487454644563107584742612317522565451814511384406664676281539489800026297199953766708664229630112498031052977129522504940996966851956207748813557644874650377460600270820504014775382262071326913877595044880966855274369819504602423210936821810509601512201178370267066348357954039759358709011976761839824598424902753173653147192136096036841926072789148831823678263873396050823328032583209391099580066851791349185664310347208664017116202693153863435615160346315843872429251850723303477569344073865206564485629553142966669090777263272558100657538158684833387972109999750528149583286942452440849748742358826965958806122063971612422592715995342811696578025678766085291042377332605988678837033539364336849951044347399759109427837861968392444566887874538124188300745937359686047085828416040054027300521762320078830803158685141763149117795060378471774688122033997506174863780866994699942491922090126778094124624180024065007075345912944838221161031220570997654922776404536380860819146178575638548892940110320532867129502287061329244317184618627211354428122418161547860567994262302285629243118359260703326272699341787016173569724445056272677119088291010542793257445145694510153131159229727006574624114716343409979717427788417226477510554127709048172377404730452655487105209506183282300597870164948024018522486500274498947807801359408541751515630208856063287878153007396451303006273433715311111339836897065455108329332514623711495294369169027293844772926893620820199655308426311376026331778230244984536671127953054302918026581810708131583677019760840277729825525259435606987319321004481887328765304949324407842533149314803688252617139347261728228864265321982427556230475760154173154012789471413417400701542527077135964821018787795761870162730884758881188887583221632085210353509628145944741201187893354209472768933127152708190378904524028000813634385335836434352362347384422488532219095872592585556788582563551923257127141409150988370156954479686471486284269921683451179338461922666940957076381171982976708118894584526127289297246463077654729287762130417118167824366149742340072620853720940056417003680526601266295581482161879419656632386383443095122654134684942648336443899019439964905158843382837845836960574646292536813366240789481063677288198533221098310916962227757671170028783706023255414594780706749100499970906311462400489722892289312262670755861378233765755719394644151420340315238150819723906940082773216792790285479335631112957710868996771375522202855344315127283079338952791390241641852708796650284370460572089032585481114290730995636751562296370957245835596007600907760552259686872225833454795008510422752719324130423528486075271718734270839636056608450831696696063988143243030592951844139096753558533488899893748531431584210247032097407709719990253841037999035016223513458232375646123606931595250140378836032963219009053104355770779101339053796036952993956364279184450954203323772973393863127784178327930906170735015058384655110260274654749628143977634038221015711972052065916846268344725217997864623160895654699774188246293605852150801263584008417102109692043724741691323913029348186436268026770407041129721559511461475115521965011230083238052707108614821672687329439329950650034773914317241506034253667929545882739314606965770044369173486185313659502306858358331404347869997097699307083472813514383092219075604253961873070324499774741229988904186546512007023793495220513977758684277249449445361988519953008267688771873368246781703715437638683746720175260853551850284306990870533046533389344446790252380895674576454001921836016417876005003656935504149990170326656811916081807858980373774435049179470512039819579539197506140288710564250474308191677630044792508010574229549247882399872748589299595233112310472057745201927136227992243691134637299451856669748726686157933774024179376894687754435640839306703193661900359692366212169851935786310435475493462242805716192295520519194057939265373332894538272646596018554236392997159963396002159761807952127147606900640380797883310793109189596233373815889203596890909296773090603174784746800350922211836457829584825311429630533480659252460499775958675102485616537081317537522461634939700108797634997157370273753678957004490644899730309138618108468050865524573444644019582990584056797903079900706644698314780956282978611939701889780614094015340276317282402319162684672017290434418329795573161505753774507424737181257344684153069262915597463883011229672137984288357819086303635775252542150286136479377265000729660460064035792107501907195886360912459440813363777295135067519487122064964496175970938019607411098869839803952193406418387388224643415928469195531199359324184209024846940751219671248206050824517674310322231332359656326512873904729649145026759105278482096895266047487460315778946584910079683573575508530543458416863757106042084007311836190630582788397552797617409497040846149387406683843951336104190416195133994083871464440542619168989636739731403855264658194949794629974976928032420419759823783615394684785019218411539998112005827335068784028716173385714673597685453214261863977454876612629567601870764341030389786491809799706065266893991463661846805366113345180578795253841433317675732512056504989869906773875225220337638430856218561349255316856577327407910568713633994059261804916859004507250746410097743059774469860078660004646334729916501345234183716543069296792740954412524970906044167092062892653436510760924736877133872789897985655708158706732904002409006792167060681397250324578224063679215294385058711663291719072261127998388498821422976771903312387433186443735143324077074716907691045533916882779576755387540006582242182401707481499324774038742656522819510883582954776359216644038564774865276293422825423980121383176587199019536367614505343613646201894368025048982355240910158017356830084332993582456139913525604639226995584129796996055393540356770534930245289658203419245747752397740207632487897554996848410973201812387279015666422826739333399080742670282895652845061913924277710274394324709766853855549799661783501756906688797225150520796436883386402029651227774691775431402037628996718419027188593869517019669210017585741254975762161946475439759964640472395085840521462117549783996362190819359551784889085999397595158032271367097559445381240780380398703985239488865888084349838974996809682486725409803334030967057538633823214876430391771809821037697059434910623472984547151218583363921263534184253500642804407281354322731513428840885006824320133802408953274293749306124797059387858765081942419043400884412585429252237323745982725577842349463817977229372789994710475222401127602570243827493528333387801015869893512471641911899306400907768414927516355379939377490476255707237725621918962706263825958542708698340855582390919068823358779618631412686344918445260734994547719250500778340452913735850286100336904128957024378870779599134059319055837479036932788422477841564706678093868642767208159347660788005255681089552246643554738432321736174994778960363559312658152104204514993583352184688575652149383421530898817073498557915603661599156918585954481915456062297736708169725824051284645113940760532324157506720207871141175048710956614055263051771105643129982750949969267745993445233939755232862919660162329690728684876244515807719881623894088016878508212428481583576362347917170337695539352764245526722334768503678946293652486207865030837508453644858174626559619745098871331046806112474754513720570640457854902686239283226082100116250462323301403710341114324887516238473484166406587581047711805828226043414654887165064723995085416997559637679730350378742398188476377402872702010893571357911514664794351319778639370030300663684129079662427181321412362791862914953293073015699457863159791716888609032898118460678776535606633655456790996048535858429332267639802110809406897130978607968616711785608524263968145688488593948312955788409601276431451799009676119221477263933852939434352648272279032913231812967812135230504105189308886119167725599073787382742051981479374021602606922906285524701897796459126376192584445681375412869973450242893683697046265572134728068350447449600457386771661311304721211535867224940199374775361876063539626020359646171155983584256708867784715737518169972777637119885988686423715146466641720113602919704779932738821164701031727580853286939648737517035760884450081986607113747610412431258578825344064924855922443567233461731784679587544319347841234535415535590333723616883055776151244532547454816290317821986025354280352406545611470417941472543811451982129299781418618169664610308968727105399266440812242183554163458037573306446615142950332510959784733224660707983970064374897231020914451284182154345981629350866670269554357770421630445161290975944023559463726456212105756006613820793913152836415838161746346383264328796093101892168124554354541644167096067170443563639557256425739494956533944323876635444497261090310421384420633422436742421899476974394787778409827599861275302651435966167607139696426756991620590676179879266118129087315573504104506712574449447063296953959185311511400868884665607390963590982014652079089824953431164616605222030801660091670462806590390778122934028839958152830873019132800856938853675529017811042495520611506125291985648759869404035894341395401760016591044358700799101456194390476666640689204639242097584326201375240680661893685407608472771404606551653523307653826490309033251088927938421798384038277251718113484436024693194930668847564795344220474782278992957396425260019887873468429348343178875580292908132451542846860773952618504265649521444146221846782156850640210944085623313815235123930283060293658930176757944359745347587760769976334340297274707876997583659658190701318202006781512663618730133560243508125279839921864907078902497960716559367356737230081180472053086460409171671120372484998319292495478144220466684191631234958511962102839277157697893281452317741312877383704647633736366481265209225356308820743022744319813133319189512883342968709987212926428042515052960948098266632403317072367499134837822939404024235009968684857868504884038270926108765577504729201437045991812056424291201011193886502292929130462553297133140640089506668562301899414042870092259623545551702489852020318983989837228068832573878931935808736922328803585342917042640662145015594865493657395003219046526877484119734478976542255308289120350528977756419097883449478469315636711084397287401241166349875360954731890065454564651719569064846569711707911279105085453678550474890025776609500228066162937619015135935837072396598250949441734821957194998281284769704916526470191290448418688162571789507693450113887954773103349711607969694273487153856682716027689377711002983583062952225334125134661835934429055043936037409830036430029613131169131622953541146197757017342399078372556869922971627805683165442702227447064469822562537214453622359114584451127122819812282973889689543916895956553791640869117738247992304435352204013690595912224717220352108582632309469597191639579182558726216978001220145805812891451758596089369590523239208946614355160601065056351068743391964341602131354267096290444030004793415933226959135083367091933837586166389134498105300441002588116216458159802966578943529374681950575690252043349554007498677296464647475267399864453877107066202202410137171838040951896145849884781995488406305472694656125765556758540858153225213681040654009911258534933167618336302431149339565032813108023630009296850826029828551478693340285035317578639449112978800317183228965767530939257551443949347480274144836751779809269831564492820628343162895445413036979755284743596810985335199358039732848131399730217541572984221203508776706636805740785297760420783742485945882894620761179731037678124573813359496534719570075240941011190178530132614808782055409508115106855366691143591500434494801397922808385756690355987069701464934303676700998681629509814484226544502079929442535849772906906542185894358575283181725344433336490284850435600178129963164875385912867727344308847392210128653548015223915528676502552405889332635869737084866445869574386139851137390445210467871672669230205436348135598148539791192775027610411950660355554732908342938313020122402802570384390121258221453805526854787436502359958682673667685456689504689766273025313547987380748814802417293758646397451430435556657752989822435498566375895847380452230591252519059456074717355103404144030667713362692554755256990691497528830451669284219453115625899037124771655001687231560877162892712489259456288361598418446823609692188883399336544962484743446469493822330878248103906050729013182076439686656506238830100095864342994156338746517967225817657656087415452435369829130201633492006510973591039693621230579625102065991085089677872024748895630828231168846579816734629720441076774455736613895277157990418296281985574663976841605575365708612099931832743707937260218250845799482715246728083165733751738331214190622722918165865439963038186555142884422936180659162781053309760908990233437854108758091592184079886098247289338745102570310595609382357092656457456640119507072872013170962283354006862426303397365776573825768888461242313513217511622465360973187095474579392368846297886025612552196344135218593166610963723892237882021647802447040873717773519941270129230099224046222993475517789602658170862476010636547750614914521031895162119476625098284166505330424243303750757381412147859148128930336123783043730673089202715259471204130552831862538266717862672909849041172861094533911452562470620676879437270161468054285506331782901982644793778361370951290038444271647005142634605830269374483752101862835935444626915517541824760181100062870028494024248405904124395551274026542898072500651794139311935928688362052922205505399755585331651250174945153767786751164789782500118010580278096938676458252595107630898618367830526586878272282607482757626362622164765214292163995139017895725911443690413502774206359426508020077887658773408640400504773562181831896235269622139612587155220850010676520963179794902910396672684763672643735582794477310471341006472669048799670985364998644657328418026363826879131746965037333413019593780885752417795044123788356894117887499616087684846341000176338522135742494326093305342386311506179229355026082920843035523851249966794497981234526057499469025870056680968390261049231561503980140703345795939868899523562483351829520933150515606649756254300821499340859644440575381340841805656390450034177040571497107091290009945095120358419907344326940625919950593322518840270565672150040433244765822555237985263212347900045543898853909233526326745158653195584105994202376565263203696837021479648397731818409475848031260097397060653195524298900007818452596489928726457035610663686132433121602317863404907924353908707370876671052360828273613546916266455441052370378276456466746466313928148509535227148943316858368426329442758893898496552240211493325249222165397383669610811859317002597707708683449247473366981952514606255076150120662484188548566165083778922974990608054917565557050894825472357106665165866220232521304872906454007098219825624340903640509574721549483391746173568610967034443355536573852462993346583133927728501993198644832635804473333653054890963353584141528171350775406955617122500372763535080269866509761428378276072259667962660302805330796799524599998099579282138089843770314119801539657737060474447556079270944006326404123495792673469734012521411435312290222936954118371046876713301349430986684292955232636740927645932378389198510278519593922223217548085467267701785920672780919494027972048313916744944199026976334148631933939582930079245210192553827994813783771035252627306250049582494790008032691649878877551556895644960880428743444607088668385304340051130390589329832989592069766424783960243594584373140362439788328091476297866004085623588885077769197489975145977790009105033197852915071763551323180799480034049620410353566499701358463479047806651768105708648726401079951611406394738726968455076638130358403960501391823104878110837013760139554281291569449145300901846824455396371995076132321753417265025887445006979184725022362405317034654764953266688173464924658123558451744166535061946932866486258441576404195588314120104927073933571379008993369791851553645558085472123734919645728817087576764277251362018739382366930851837200207568156206990711497223832081553090297211413353086087900111760220996513698657910642823021368572954757846358852749823961828237022675587512094724941785243425058242158079461858952198124450011395342572536241366544675890973686300103345280096362869350547809377747243102273655681081010057637365651001182808003730436998105806452987486205355845496085814227199878605903544929462598476711174863632285118263529135977186887407264170509374559202109083117403788025998389655927436462010391847396155573992843917656553536537852724125313247696460931027666040888159058375394478944542543586970374665637224052052604665414074454223063390783352249185408589097062600504567838984709901724424452913816108257985129389527829636033453975318481857770173114236877561437468473317852237070502488454408308492341747406497361507952877214535387792894654389426021933806415245558638855412148476304845235845506392649335478559321314630886144913107870031808543917858465574465215135935999587981470625788692441532929742698827789200909545936700333539277995618905831826853206565791741025946472660558496155301857902927072665392534296962233378925193965594213056401617401907070525824436859325060085307813012734929247670207614809298052886171349351276519632007052680627657743769839152032634496727189414706712007940518289879251497546624494614605222089045365003462464107324508180677191696210824827016398952146480475615885336198667233341042329631632738737424499857386321621439978185302579292277384998993587833003464308327651901888497468395460996439422417317049219026369391407758990730633881676614686560889437478497243629448007761727922661346343756481585516101176318994781909275553524091472790917319851523460329044748277711944219981907548282618926973254420679128839449880931103476269551587746338034556285668854352113339644934257895662088608594305488318737783105266381519363725719082556294100029858995609170139591030967991990124683760111915561086044741091713161291423758245633000514884371858261198073332878289010570932133532696310674336717332565982059333895581327248225469207329732087573717832832628642791067494848740570361491659674963066742270279323480095933614139379436420685294693812603699348558198520362937943590747210410829493091522182747205408618885949400765384196641442109377198591706904460711735332043151056671597553014849652522570604208853489357094900102028982548997497656584265171007888689455713346005110363769928375029116747305271343036880869057081474847779715770029627127578064873418367442933943880685702620904560863010701937265702513935890311838259864515226697335530298085892769356581143833855350831100349787529594726264144523463568031524083514306446009830810097184360182656996549437343055213229324455292360548469368404863522266096308616989488083520206639316786988040360813300934284762445746750132394193777934431591911847077256517544226163435517263746178808724104799977024100300035827007436802025612086261073022073518543592780447856463936177482335051906010023784943273672681839238376943640253115919965074551161062048855448090700143694417492201800556657409443611217338634914899255470980188128244674642173718212370366086199402103146664070580315024654957468086116375419858595963214362221791252573226151973775969295844112030792505104119246441149872160290762413502660481191152652848127395777015114581765990140836160339743289090086849440187123966116029137549957013164790763510891367785181451790500065338344934233338331192356001157536618883415605319495672505746686506169861233845225703968838074991356742327157336845262967830697875901840499149310777008903904580117683533253760424047275640800371940714514886098812620113811448425583557630162424482157905697242567836371128848635415335850748363243908734056778355805803540111291804311750819692524902427053299953353672750915040628781667432034070928816289434888369500832034306501828328691469399544898100653100396972129806625672530773558893298711469252555920908425692106001606861766855102287692720983991299086395130490237534741501676789360796059997522791339405325879879022710964202308618901490586165269779133716271597433023616516098492784760164292314407061923882255453621189950213454995254000547303701639932938696581151654459732910527491169362352877308387907220296053619615735660208419956207503751912661959460650244359789347533165084342398551334706417982640696999643621218124570298817681585464366985295935730141819888480384589725647785311969824016700084968843550910420309478971522854937697292547966403894603698180155076702900288102043022210630129735405938116880210586259357431696534928591314442098020240820970009315512637188132570381254094682454677123082234026371999080736435873634382593253810190948543142186902522431650313982274891501718637013170158429715752879267656808242408569741295044480433538403456610506059967568212516520590920437259414555711108361365040393941876830646159794286454179433130444826959062681900210400989129292008188866476145811154062272499850125024582406016537153195798602346811653269588042599193229232132666690871320068210631410620141065430355658930339508328201247673552248269490844439306020685726226085949883130013825932683540173699094972193261032630253448523608838291163981261004609864273388886094339969462277930808270877241975831880477362171855633249264860397595422658478694547708884290951321882959700830482358453227008436325789408303797520140852525364495427388996211596180156625286229393473557040241378454013069953742645373309157829199459499062080077640666218827609440543649078820153708568393868397882572222569167041201458729597409045014008696900749466550633116850374030560855061833858516884737721844784765426828600727645609964472547090648586643699209916866341737835366349783109844723623581869951620659618023745177295510813057457063356303882920794270269244388844246156644363190897596037348912024272187796778810965583973175803620039873411313844772476859275293356303439626849490180952952797542791817163542282756051092863937861522503569596702118869159748242651886195377641830341530784596311676183643972897442463671302065948162407075104285517321846998806749173419469653243739591538690244379346432152126196597954098502459059345513392125137429144465608152383954906475416242672880022616125360672785376042164209081708964329907256673072271012569088948928690165252859130384193971182882087676761839164657922181218195031645945459278977699466553289498426714717567981247209046867137131518860448417258177702527788402399894227720621313068234281855411319893512508170537791952468564238212601451912864932819333155986990483226731174234903229298644846434224401392994673767149310986626086896052559439217285005404025119203780386094965116479962567181582451324219483046268464068205553978053364693148735077707171872795291038778719484294090973766705265698850639313072087525593361796295696885031041813212693057942418295677721632021421719111922953173739988718762333879096869385350453498149387448549923146925538428022148583527103448666793838340587250086431571701254562246751002164435557311668973429106807719984329329888087222223461921836254713244951494459173921876062219342387770024347864717646581929992022318556983784436736582804150691069440109636028102379345660864263922172303745741124895792889140665714288479939265470778848226982361835138106862420181116961200302865717831188031601798054000308924537045460753310666285177277065087668015891578739620860191729935163597297469440219457726977187975084498934847909147828374864698516165644851884066509207029207524960644955735054863387987245167705493978716430095488544600967180330976793808334456559249478456074534605458086854617147231385758213928138457796687251699414813002018219832983266351383387163005388769899421628832988604781643892316451844939979168015392482915673620469703420861661745855482104995486040452182330545687392131880809496213907303271516012526942225584565253067485174425082698063848194528996694179601893997047868098395754836921662365257053114491974558774484905329755115923572833347318487107992137135026016372982346754382269787168385197861005616969550846478399558171960526210119925688566315798856955284109269431084611538082293468467726599141530224128540512646040056953501792990873169467649852742694173226848321956820838924503987376254995732801604679439648433524056579614908918289676795813986429093146979983375165138782768285849739828221871137268211201629796178004569820050413690876583853231856755361066495594925091525031772158625674998874887359448661762521530469437389409399456100642836815498985851034303217679123589900661578114944501062621132540025130708737921704904269036118377960109679602644781383340421896902455270613317072955256893065178236894315710272154032108665414285172206060938301230950494170106748502450156462883372742950632378847688206411229461452775750421398717411415359518653020815422590887476813773677129389805012735089219724450264030644695468365155115563775956956791333090898131410018072574631698174175815854641449618418717416589645906808380570851687508898858572172427782670561514862621864765739302866608642798401315401076193278825282524360194887670719190644582213054604083293732154047993382362415105651604226317358276122832462296982020554532268110575854413018507449918485485183370721859980854824931198424161777261550078759231883144430751624401242344478282083590055362851118495370876823083461610618554207686377028113304269257160203501524247728497433988867646903885267564709734362669247292981930458707812715142514788834586401834842599804137829201000535264520627236683729974009427471263495540562518949709217008533604319829149201325119092995960448560151822781717254642495796294698410611368793509146706497071664885633307375033046104136176418648134472621590987410211994144692576521275778180750924878416872258956726182153849117455766432236117510790897062444573457596757252590260310244492690426089967341109581865911806332657636866932745189274990016003938855883288266720826055659426310997687364034281471375126337167291199657125861159622355122176701724284454218426002554932240419287928627664189546631613482928583520191871821181560422848745833412378361091795991021255582640059788881614953713101151368428275768611457896554827725065991375941485265396296930050833851655247650393794837546144787107805270140996659821397477677853600289034216299877615680540159430733625165852490843848588508255519459325869533699224932208843396838560694723248420250322236478719389703285641813727633545298335264151443028152719401240700967029294175887999993020921057685378426991392177696664963125977133069906730685344780118496432296201654470187407352293230578186827685862616292051920557069545412043140119696641772289709888744159799067886930366226190822349475023615427911975755543891578863188730667407286529495255577214503971732554176162992595820086852350393412510397754852672623387679829272940413158073451069965387916351887261983618422367819210954352592239156161708640389105217163044627107283037496035840349521425603719663278126155237545991781039490337969863706152224152435332938883453607057638790309605908721663759320482480838158913598649084486571065801859524874858117029814106604347689478579605923589739121513180069065535641708897125375901842725131215407833414944159019712925162880110081051558800376006999111204188744517017675562195187425001304851170161305691221293345221613217359987844328168748784021649691150358841534854881045476525905241358643389327046797359038982980751139351060628425500665106679794521702521301798627118133203942718697161762351827499810171241193315014489733627832936552949542949132059923316374427888483760432442925455875756216478687252065791422692769022302545834975625319033629597448292496285708202169745386989508173416247382697061691897010158773010543952202956425733091193140406540016527904093354108422846970632565617783428889819133214134981898411902747400247764795176696542414386515076042040847534472196277151666541174334303597692692829747449241543974507260541293494162973687659967594673090724598960369293016756084825477306701723974048132907800898706469753919250960159777157175100518793768809802263271944909219734562452516840855752240940681676623913578544939739055997023551499678862495364799663541583701461843505886470177743064209215642742681301625515604030127320539641652867875941768769053454591163048524437265582332782270343051877878945739218947896147417114308368956453152014310768829567410581704386425625611652040424356926810769376629314491989508216213631391077796543976228488157821794870466718059556859156602397842914639749812847114987172558813371953982914291808690294985594985277511609161665539366171781946088439078962905248581315918998855138426336532337148928961441573426579247750189256805470217579461117848070511806031141849007574893485047398063436842900401226161401115065243167841816837905766667800092546420166308812303311334160013165814136839265219968964660526062672944962207235985277772516554978265525229315130471077760805581101797471850810164290798169972069545552133427695078978932679230979708598089240596097080705120804404138905496682891664068668054163478709816769860429184353576553055885246964582658336805335876230940018092191305922241075235220018417918875867310674032376685972435531639392879191608815746460685284442746059907622924556391302171895136335878756334441142442443459767848355199538367084172008373100721257908572011481067938999290073000150772192258842178197484258900847188745627848090403405603820065383850679727975796790277028600335585309617885355753791847928849305902895444745404798703784377158608112317696009819808969788830988872752555248306265181159955282273495310519788356644310163768459382470396313621071414793110387931699549801328907802310188249280852252797336156649531779342205400425731257320291519986346088238617199893989358473768314908059272625462325317487386518686519465926477058289127579148949365205934055347633287280815884680752595385331536775443784152389474454605134590494864537812404361033393648913642301839552950064582090934328252305799565487347495689490944300896729174225868216719273037682696567401718290545148299820092129860549399230040200920698508901090499487505767094486419739473269559184896650009238258518598932610924404074635521674879404713505526300227349525197298319307933424178845442266703389086684156129972763294477650373156299311655211466121637872097247351996009456575753535973445698772876598993659519427132784248460689860448830246274154889811403822078369672391529228893250260406704109313087473508283433554121831390552501970105459243387610692479818121751847586780805174879834990708259942448955289566176671512208550950893145990902198001797506339257060936918027107468774636378466334616284460126499089036542900264421795376573447627094946858317277382883702356832430037232023186785447023769957940762044096606133091026172281393601419583422067722344538416162817391910458346549925068668322221415325021207432912593461783842463946633795362841669807342687991140322942507204334029831311092837614991002450115900431189852709194690500690635814198061473844770884942589578813164662531918563815633708195334279863124629840829099587243882527376538527720977326815990497487906541622138368836817316301391220673909280574620992622872436456156789840990924850768074421568104051791368767655571543777748658137672768634772022493989231507214667385582681219268121235750715194707837852235098221314172830198304556144567933148485953765271442908655216896203807992907308248622949713224291951634420938085303963470891185287287133590924032549153569574054947540348162634658255618452950711633805848345387962655283662331157393891564065638582202086823686993274986356238918777538420121610995947590982296369722596984103389543076239251366018845651499367416674259192303118721097243900266169415938905169903415289822461467580936168552227859708234980476757914683784675074582592461800340863921262452327816735193218691150213711051663445396627759651430380017275817890842642989436943982847419827472919944192589645549268271710788904611898860009453425886716358342733965113761592110193743391197617966505156177219843710751762447051954512051622520954398575420149768763400435068685361681125650148799187050275924317650942501842076516321553622652104161368223034876336101285796865749605928718753031968480588950459330850338281387297094327352711379457043796459581141204748884355191259439745515179173720385338488492940005310729116870599615673589543549856484314771332871364583095119197747356371994683728018777988937898350923483669976311318451685742623198657956822403712240727526596905258977892883592328058040739715814828885746158027029308230532788671111489755331878493890289038142355011061718648611396019368731598192713807060115028214398876467077212719161687054196767720050724065740009083422130467627448643244475179867562290153063821616547210197148750302383915015897301822704147488598880405351172826696259796850093756793364765794095801113177254667891950178692424470242735978669727579765911010229950547736704327273839585955439852495280695194089371671256037838845333543040414832799173957889189035349168190710624224444732061454406857066957933084842090359468503904692520013494429852938372360161096456795572515132776248385833190146576377604514837892160759941787968213926583510392906081209125625507546590545891327711196061071719471766543515708843676690782218244305573966315877417042697062357693628135585089260870317789461019104844694789119924133809643829207075224830563272780210833602334606259285128506468408061621969001263208695948852600549706664658788529768441274783238834960085391093516784431027954920002659881043041585315330327461879999485832037889096533251075064508836546398569499923249361239956352061373139555907875796918213440712139743745130630826494351331162695589805449937863792186994475631257131805643670335750445295446315085334006564375817204423278802015004747627704011339946838331207855632210818671317244600824804732640107660927927527444275589644021703101212747400770340267735746361288344546365270654955313531792865161662462246459247424869081680902115836650203366053377570281270085564326353020878053160443888386626427393232682632977914750007010426586530303390749098305536672483757263627905925049749148851130078407566910089459353117736205807528644055699459153040690491055545777736943423111097921936579852679315454333114525404189478316292689012212963024129684860078362945411094849967111881117657408876069636724750567592675747212225096940631672030187132318916315799629831621503130744133616884999838437113627158498445487171818245850156852559784411472555295019242162282115874775453213701990092682337145987142936788256232973609607892479676743452873548703157151181498267653893070627135413867673378909264958266891015957835055188630687068869385561395194212006466857433717391412398481736459752921090043778615764353620311258945487515171603144568775543395170553604120260290961415132207660320796253079277219102088486678203913952597465091005399533947871921861978011474890867467845150883874883836726669532785113773456672494973479142185312807928954239383405770229395507354208170538883517774733918703944020679127576347999917133022388729639705179847886661462545634009778859594278404766107723206082213911662553043462974960696741719998166355474294448720211707246380252422687643014640158949036344133068427835367782706403660816530379738505720253138237930601730595312350750228944204849047179255289687168223986415792414785966385076545428737745882194565818771964275837337671132563614141245383727913599107670350401068365734680752696839587199288899658113783077044083344043198755507289918395878721817114278226883316472661324566901423268996302673565096381122384002041008610117407079804274109046481486585273308437906463531607502729877457893125678288639650796021016348324147791824573369483639163557601974842608676867226595861891477971345598084011153451926325062158436942892164770295944780897000791195664434426592199784432971789967261529478053450012068879970017168134883414289806190013645652916708725447197396375196619647355905357010528497067123636833282810091702744693460387715298837848660674072213800203222455259853121524069633766075152975574543003040275845222469456357474702693960477151952290733476088398761588443650282184216615111801909825910693400210480692449295431514366529454076307376133316273334014497782004217299481569593839454359150954673839788717657065129056134740691293625212161806889494170029671329905712058119248765057845374496241242799602322023071523577379046425101097840418996549443068442738468373931263558550376867661344611101156988881347046067205688310572773310070989226098121212377040327682362866053336561567389678805293624859331352659005800164261610355723649103374582572478003498608620680919638093546875138088088251395214587601535306109446340865889310323117152952606401151259628972314641942897886745995072022276262142932957629387048585136383459431667449587593534965770226198627069950299287534214426325564359092122314277115960305086470354983470783284077296821386903623835120941446027622252347162617548944402186806435137981289160917875108755943694324039496605452592954789897981502325974758295284838389279582308821217481872352297099518754705476707141959471129056026562548042795009610234701551936733751947193108805249390727398353339574110052674828468595272509255633668983900447007570533911876530762040481885560369985105684552868531606717942143760089004425279037732628262234778971571830384235167017148214026883193841382353117806442156107519167653675394254725252764093878277253514944351332353774042170539546737447054357869187507657052011856374555258054666483768786780196853234296322013973109116401389271583197311458847670950792330480302016896005816578343479408593343639219785810762813305976575448676625381791694943461704198938026805817267383550006237023127644541698641705583209925769201283001187894305850534153253942323427453344402905199399635928661583543049569605414565477765218946920831838977346749176371463458782714614441762782436305922091111548423808810600960584702081824861773189170532573215603460022826321873786208899012159046925305256625189904075131877285644569713152712162636296439474904106747939648937455495287547031456616762033115251747968731320140634074385979766337587633035207377534601686944485074940861256824832035094546354688079920244721932096390692565875705339863600908948307004564660995459879104247917614045883528689935811257143023085598242182842046837146376752143444796434258052478589073836098044307828406655465306070198403875477421236948431565251706585623858646350697496435220740343212386864180518989762855746349022989182394410628628696767643233459161685114014405042658131341692538120192060921077493218462305624894640622781876396138411936989056487752536141764131224952393889917545968635904627238516891632272451677059534182006416108129788934675074674814891831468988067504086833892110798980010322339767279135547948534153624277049287816201796939360922475830973593379350166726700904778500635098511401444018518502110450204002818366401450598035688950516701042067466410406982677587324749306081662747170239692466152857534268539447268483663726450722952686153846217383936935707644034017816392422680067793642187344048507928559970035498651527410376159934999315118552285392950152773267445762656616463252838004075953513676098123452711661973644253671279839106194335304404771646538693006451901265818374637498202481907212990418156838731429711166825853343441260662362292179875815075003949597795478004734242604059550043301254718213268505300773181887616405632339970344802135595780964698352664767188793327434016337682062320606768770351158380364677285394384327779359372666725610248722738862211152202808328482379878746342113294953310496994710152599125106311902237598894335061860428130552335421384346533280402742457098745229094816154832943623049992159702234737040116632538022977206166746576754737006498593715769572737343425938002849264066400633121732708098970712715356556040577882095313146797412170043229619523446748972450837822413849335881961656404117579525196575750297328165173668317989500881855931792801505156836418114152727190784546911513830218070967325110401884233236766612233255257018374958425913169752288901526094957933574868181012349636709742580737531609496071117875544539301694660143171842592379829486076420118828382500345759433554315964827994278715574323792607499276427396098936759431089148938695657092927012719546489503912724325742845980156096327437431282489759569748681492570608790459047651289385680727951535003220780765678533078035986174931828756019765194319693879176076485974911031289366574829966173503835065639512919041321337418194014280541670451731986329305802469141754331995165395348918623837323273177009256826160468283053377885843688283521884633000732517032702878019424261954866854115918504598029389972321916900323863614444170049011764082893141929250973428680047181271758819053072043662659783333753793325950177755004431107064217053707397046029024692263063390922935853700079911445824456008140552092676321033606156056962708337966128381195573365693051944695333388585354701581578462455889350933755715481624509073141957908659044676578808593115547004515931554910084712556481292975280438028983666790061558075872198497857982563685820227193936924297670411923214697226369298807492656750770941285903817782828825526057122646229644481472169388672727016352566859645597731851786449447261830238051343435682809391676339143109299635083796502527878328235090745867676974306057783685275721606283403498145553218938961526761373219119333176014925425813123992809645714464270111815304544552914309721521332058519736323664664902894410777748641258851984666291159709735600501061678758495755213063974328310774918629580828849184395550123862701677218973096149131516476220608748276667671018310660254616626980724898596041944034371705769831103361065718095540790648594664688385169668895199511936868947499696650423966494069735852466633583660293325926411326927790868224304589672197241440012726269666021254257937563708002163748782539309832614496070967675306555659759377235341366876491912212398189221363936303671027533023427034192074883312457684422334720336006624122854769770604192265938458596202336079250252356707190078632669641762005752089031874622039700547102803544677533333792149781615624857588460210167513104112145830730534305279487548925892523473046811284859577501533596211845941185999362265739922056678976170587924698839658538326362271483506542228060254499916019424840625451506894662047089484763787481167539800222970138986510984511136794902994280882772969727262773665143592790489134298040514857927133420185464540557406430663211026600982468822608063597521765466684478282432350093202630486872362064541621454097753928873406223031747644397452856720627176708674170205261167971741944216812405059722514276011553476089926204568232183235159740557754917550226084016080469980387589063884139783529220827604459714098688062549626866947097093251269005075169199600374066461761956328602881937867478936792756514375783855697284224069057539804930788169790664103493373386564113897573635807354275145611620490285973839813542861280238088254117451417052324113314683706677538015892352003693224553867525008936096707935126556288844963903772311902424161525140456602873865942188734545937560029156555403752387162968191523082938876875346629629972892724937404407240164153873019842506382202379568436670624202758657681089152373871734812169969481256282277804269144018892338133505616321473294027944997294913310430885241479877683348019342339940024799129053041059863812315276711251801893175077923802375499810251786057372430269254319232689252774669157182754688903959594898065736897258968859558724063602092560954080496160077970391158703107943150117357006404309513480995936635312387127835574177838098013348067763677201215471157038907359162517630622729247455381384407102344382026483762394483427241200761509968380658195819272196831592231593796677763748132888758834387477001526547543862220756529038088778345039428830262302218123392881561159422688479276933315295610464225373674984631186728418740918156034033458413729834870061930244646150018640188742674552993466541298660452990753652499397184192880584302586768013599922862298308198570025463063357070089575109245525624440528158280940089273969914648627381626342825286869962976528483592924045725152949709095580142015091760543935861326781888334978929035051948517171410165087799446995801605642549768224720017901694805383069338429850051122030490170582780703861580657301078411189462622042120744937814350024410645344997527039529877702318109344220091734074741314572553173834332360915923857212047380598227029933871843906429671213641211216411953817671645547056586951185827718828661998738966205747417739004135856758223552891956874224952743693121090881401159047037544994516328673636828322051357269819907886730950377425877028553203765367085809009211975885521903925108970225252934980439439022214887119782975615174058584732466890610610411151607780444522932654275875078304430512509960318137381767437987469505835681887568232436528508504667126905477426646791250429123921533252203873432770972907984515506319781766924318549938970912391316433621426273735076698639668294582275229966352157075988388915294706662981587782099698007382400103091270163485140421919193199354479125012147135268523077457690542370012960071920786424033113969578862488263933988577128556616934393269010011399751419721599441211005572766532360186406375103433994463447573718369032839380806054197503457907792049128470822394547281698572010359681801873967602275361455543744582658875471542010358034208824234674418938258537540416836241196535321503847150266697964424486325172964732988324604555620509243487864912338597940045248811560802790675002564775050942824868686578810253168287241005549254697814305049662739127725157850662242492227484599958980639363593893784818638415186029086279302694776739839125170171090656042448009157946900228544091922687391213967039486447713656107805045152544762088570872285326085795022248563176635562873811200263279666149230583777016558215692905690027967699464466032560152207528762217681451137584647951302858752778649202681108422097086030219024263452363081842605771289841114614591403137791010691041073938318049491904874269884061656280289796671318834529722856996572428216935459833899011919003979181444591565751907412712282700354807397507041583821130782295995805411128468367766161719166247558454185660044786186981902193107060012589016612316213225113781647712040474877739741253153861462250298178712391865887848665648093330477311338912412890127573566290482374876488279472137310776506183345469853463432460113899611856428638225132354493646112031702419778109653586863476056561433187431728227374872339907487390665908094888297525557154364247657267733336395192985959840590726690652145395872279561516474751629256941426164855267520696545331136818668369636426584150344022426914304899300708011703276167652212649444619300255707432533477499790061761395046711233853715719634395132521180897456681466483628154008191577502968061436876585005480421108598278183344352882296240089186905812231236440420078279381392667388996221385376899207037866136448959833257040869140511812674742732960048450027851606376649658879771940376544074898749007054951520541416141436455557743418434083443731179917226891593882512105711851381669304049389350298288909629353570973427534643790654248153656007619814513323193778110123750535143330754502984741547144578806228951907814947491794587178619636482676756289774662397715763331668052012014922192134975680945408390871136167681955256318126674845452069015268737360619484161822635551981537140917142978725289896105477390858004166350351844767870456210618658952175417889557340990548250673436799171234333197064183998572436434938259775987961949132536611437593282749658365750657178102409998030206744515882296428447273081488042966551793177181041019151742640412917335949801234866519808053711961319933881276167948636715916943724258830814185868367723822683994903377780198138998516056539555567891903682865911672447281369379633490625598150104496535202374316224928290559903367757811549221440660842495381975626055435733139905920023420326905834560675594571750082007662680832955229045887801241891930307417325884269151296158752669128379401757113569950288016668131279354877725266192965160127945082921662402837936745793936169024654032968353400827361802193104971181539566275249011472687657202198169085004946098251430787424583660487510784288905977451562555325440813761377226806620721845887112169267590568462890602530184083167447022601788680437265462352354152292828492963538247562982035857408477991881650828345806185560591530980466996558928460762047111710529039399567283197174141954499845561906183915078874877380717084064139167668308178190808695317465841788575619255300477901239343420076283446804897690031516526634612502405567574575191517322732368661954046860648253270439288974267772259267457066463706888400729762652498608256815569158162113999662786143860267556014652962878322080409570282378104853677115034803355632056683015891091393631965264776627096236125415723750520801629076430615892262891266129972964764336129908105379278817149124483902277026315140957324040714548290809407574269180842660238589740986265566703308940864914639991040590221067070818760771355924769322758169334992952309178930496259168047696489406111107655782782130919192186304459039928070305325336423629855641179892959149046457573464929750399644622714309464335152518636856099864224745630708021049795263469970619940123885336973354112780561914233755989824679734791073933029565034799031106570726427605083394676461457144193049571086919910028319532514024962545739829527742380036438327163304874127303651046886839609115369859534174095727183658523853310331811332192648193519490063069490854736913128710501404235148703285504340907848934146930766969446981249787610293528037709873667088893364289983186537145966248509496121603027260880250546714263969015272443526944102508878872497500162117468699477253655231670761574204652581174482570523694646564959532253231523882233568102744450848361798049886571675582486193470746618877826016178303982896704528407669200539999394212766610310181003859422800241421063130299847869772224219992890165274486330689340097818711844042765210092338052540880336891504467669714836326837580573985136611906798149878875830246288497266985528565119879675385031712847880209284752287426879923570918723360520027844647835987181249763923817463563342728438454632167014212212438255930785801208986352826908933459185512075277200096929130098398241262818908020405341683539303868919408500277983796955390257117710161032787112477254364181597687685252071794166222556519647105299847572649965559462071064644731910219404137808362665901667065189337958743230618823370854262507562648881313265565737629313373709798792494689023349476703374005265833397675374544031744673261849661707846227485857654190763611010555858917511642779164471770074304049844239672856782965633662364882528769766426669347999616156876835894958922557806350661582520396836495615040789676164372304946655174674348512237421359655042491775522222584828422156347330793984943438781032701763317350421003088218453540010467021240335210371594571020821917721781438911259354363648471862264296752008449784309591108436885486306090977182118643155681382687089719864471488970882104975960910076281617060059538529996828212816705031330847364395580009458901858808078490521896497545147053680420992829637112483983392347668698542429992263788488836558815560125052004363228348460814990818859041702610671734216380469130482841801432676676970567725556468436099235471939866672362209489697377608545522011550720951549169035358896439959658166713016633275469870838857501197211497924852167624140662919282652920597808683331364543299986145730972860459191591016712624065729826008824455237602881245353804487580656811414373772340623669913005770606441450541544052823665404121754971699262588060998244558950971581747279061769702997604287437377357402681347571239726242767319046329035660785488734452026372935225144739152165747083289324448695440999066753619381293616811407154351989501482278716939029625275765355809723141991154970277111014889034164337152779664587680857658420554484999026711230793168422882279614741827752094556315985944331624898384430309182244602898356817383016011344639146854548326674038645507411386240805926676148445476795881521528946523785361206142859691857406467165844355907289280014173191452539709793035124889648866717612995975062261065451682991628024494561295354263875656316786652212884701100676188680313131137619682636683707265604322556923450147335091908716985207246124655885077919916223146383221778145509603289607760080550991936462197828878390481054956174321914062393849455241084449178560797043289361115236793892990442996335466225558813771936278877840179789455633878989590396352006575931553353726535860719691958122732629302857896722514322924348769438800850734182090402657218955730028421328768566317996029192406080870081577265149752637760234355609196483496469796956839568572573888855430795604796354591741482463353044180019335901866202322603865265995435174879941683943370599199473762133738191623701469901541582803462040597321482493900066941136589316948105621189163774193637780368608447372150680362727759132870040617103900154496951959683654591206397730084126757806494084778757404334205107997519455128086958286824471542175926368579180917080282868697076413451163819634633148410524638899060016566025159268182771144008135540459706730505890753598016470671758990607507695129688387583640920656135048941568591776370834842663023163330044998381307245338338937577884384813370431090261130991844359056862102791245333157940391761275823078953837715853866734559237375768558864822264454901159048906500502702510872650676551331039103750408876676316493430546578542088803906878679254332036314040807083247385352940471916039286698103500605073479976456466069890839801852611734741683143624438999647496665669850174882727520705626029176273609535607487768264204973520807012325254632184093142812014688500754088414139495602332635199927247601500938618136114578342910554488717374603247184855784115471448535216169936238907253458250053856460415670852557792445039790236573948264927793414058000818046246162427111585936140331124648590588006134730735492069313129607851188931923707719830878471132867655450213151102758068527649973400329644628853969937022712797288598174744491575512122214055154238248414154367638834551406662872550562005044200400106978649120497395847132962999704324792290763893177880713701081616954484817883642286115288907982104592900441351809229643719926243298577131986895210429519069172017424172664801819465164519597090257931107190718648001304931185397457463823114962702741172100078658640799020089543300362927576984389171865017741183268195361453160689002486280289155794785463356743414585854037448306839243800712591792596024296797175662419721306331048867619015777741870296594295256446566614715924032899502676641233098496129499138220479350703305651810625415204787129297208878926726144206054561808855261884713459723174732949380539749303381264442224144040980727938743744504191678406502531998751937833153704993042332090719129795451404500328640223730747989946390911228141088172438612248302005220317162019723715867761358363321185604829896685506199776806836475163799296633191309748335910656821786098690819052614547262121905643153335438981987486650125466380400842064257055513451062734209073759565339552650628693640137202116195156351695341476679471961702641249754302573926813274616014359208449345116656793431477997104217340390660593017196002232391234930935465576345518080464617306024560971999193073618989284631946940352787104491052589136218393000251667567311987849112888689615778611338407402079890072805411050935745127653723534611973195734273797225776316033702984297101166720711022907449025371782159075967662019775606727319593117083180080482822589266916063865765565653157301508401409812960078967214008762460381854881395080671950101476921524940995221160819638217343812167281544557477629986754736428742709877882366972269311704065189246353250157184668204600199837466535798637618184120807295094742265516619874606132753703058424803743446849541057154570454116282727407599459929530864228750449878710303305418602369866296344715538973062564382876333822887058313836191566506197515226162352664290462492475830517136907397192461415269819298892003449100653176550518465476612882766406527498610769918482597730861396992529722299478084464167309528241191358626874840869889244385702987353762772002982601582258539157246830121449345485464335808735720097721203307914287933833806646733179138077359539737585579897328104115026900995903219384739825112930915695267855504372164745658910792510146279658821376059069211099105402984778525344389332019055571016897739955039528572890010373690974518747971688583822024226548973530389325406250273771930760038508973426375106523686809162624156800602607985284178745658296662048879387563945411925353926149811976283029368473398163789154722605364737953982314422021809969725967521713660679389457346040520071633637173602610203930510173142056738987560975216526159429665046490463850455653203449253715118322239789747189392983859210960425384892259600320870392273994361336366577702461153168316454614359490214694325046462587110262631921733384434733413922928708300274004456593353086977632275234243406696551380583189288522151978901533609369681253943534340634333650158329223042268548532663101029690738418755010478397719380665556503854546564838950962448068286232343443518481026765734900721144374729647117822495954299227985824728843027453931713204079891913281613200839456880039269627611682240459413581741746372867010706983963282396719998477887071974239649052860112953305107060793574138422695361143174638395000651822573979445245572301970021609059188533719577428118735081244703666610066484937736422038703348837419434892705377077992530849395107310836201738973990366199871029746784719957472506949182235517492820852615108141832471486807127475955794576869283790230528707321821971612893025979971345040004829809710997771190253055310415175340447056842303768241933799810815831740121817913435454131002290641096065984300054008250661679595494787252422270489848803785366627210296723068110501817548035426101922708049855913815565004426019833521125733998591131302453261540436391805032361805798847161580308808659825836793146467268073730464069261507274258102475309472598983692919605455290579771812081260193674987402941781999409622320561972791336806414032944309751857477393518034645516229225673876484095268733473362126143646913432110657394459245974157081003991807763851455251828196138404976313166745471266966379081397993541292384620558121460139227385519775914209408568087626068883758057352022754804828536765241558309943177425482020334840469073326743273500583644588309334550057907737571338463589402018544449623301518721439799026276682270792744885366105450331341724157591442681920475760086236157299969669962628735347924711530290575379832562869396987710842605058573550967950990033947923163089517087824072263656309577560297460274846703667107976352686699152941497502241285639970121386503577088704591731514637483303946008451854214975486720487476120601581861182895077516636728667129138051534853184875299226677499906040990826346516051433774260417804663874382809045600422455849245302275847363040403431019354016925270974185576928919053817182933044133035273086543291393403894313270624642635414533087465283271299844867338465925884523950548542840862688703556270315855691619775789175691840935243670719611787103083323194751943654330588229877201725140308566052822267982503866535168874345316049021910974818198828707034468183142758728970287154435826649498289037466966452171163380473756725899301323202425731271224282883443644469371530997166597593738182233617638219163170487877681683151170642500164086210098274892170211531503962062022542807017995544885580974521216996085350913557189611685072514107655835643068449104232201032417434883891188259216425803038432964273583356702044619430232430681366130562925147124410022751927316433733019001919349052187966874558796817967954580356258313090625475153331140890238742831018875680816944040840874834745925815667294123853248266790976492638221925061665091196953746335228831077046943798342577639551134527099374911362513520244262427469769955385250275342928507638750550397328535741084234068772468845678718722134284367821291712433770296818651799411904352438026205106121550622462086489125519413810150446478227193264736456441279831861798709071575477042438227065491227057508324467884857363629108477222286128234999002952241467583462054696821814093410900420441875494527833070163076583523403842007441274593815485712635703991163003087532697671029324633242262863325262700867774854424998641347619331823948871469856887864735335609018971333638709654837126176271359312930619069359022513106705361938770973628909433849017215219702471969404767831149785666145076799735115020790250665267832894641281611164479596986889320825362780310445367832223443572789682359962531474987672753597030992998817806918675114832673700056309387692482543643614273552978097102241515218872880016097278540434672103628144423697282673416459032345681643870513798609869479340005019990835056980222057185703196955855232319240174659013381519774172124343486036212830111945254204845292797963481230523245958040971873636764261066385822688075995028118535033380938065636808229802895918587564089302160076365218508019050197958973582332590195320866129249672302805309726162027933955578996364387856595240923167442506672583917421086021349546591913417515861316347376853256857712044185387145165756564106262475083199454393483689980348589535025878815530343055330014355715137164077946330754649597304117088747452295974994686240002853463798281433622061134325862039710059365018791447876443722560520632481193555137429344556469359272226107369403160821642076927748210881483944818816076633212866159951635364972247066295238483753283740659627721364064079136443521288600742350608572954306990615203854114194179951648371891814136397201041066326756784511816857215062000104885226682874483012776620924228542130369963319564823121322700547977350917388248203255386334663186953020155238629954380092544435460163768266217233866280933516784184466187977662469658693940236320355179656428157162321535916721966184882934624450214444459789554883011557787666405685560010219264010035007012522971728567419408941355919811236806105364510943825267241635330108762413348388409472883461243919775007020349991597538006413262597029637119768122456174058411678509076327934860282696697228600535767156494105013828059591013955057941834969973165986642111903831318748398982393638462383470162057014602839260388885870462371997095363716430878676427149290883160261524618450871307763566725693634913039425712986783722105451402040797099753458722623702044097859398439717645402482151200033961330427841339709201414082388978528397122645688028108795892340701657901974094405017546908442848832434701658463773109163507961320000326661856267414751085856922466391017688979358048603150914004487384780235040745908634936764941867561411944256759722985283933506592019285546454114455542686374158140066578535704618200034693247995663730234231621992583639124159028746320484733572868020649877749917186747447536980992218837232397184435362058298696431271418622225293243955554247026545994449025481333418310500925955816142187555475096136766528737790386040504307613307082935398072962382643048665548139576419153233456742507468707697491480884825101249516702224411456682865678378297597985626714178066468903318530486668733691273388929143134486844267256046508273577687526450668791543346682502962930518308970518438125063696708033720297740828558875224808594033620136010345674394770574647194955927225845862039588092561166659608640561270804586277315421744963340420269432010576717442026071635279880804404334707118705084185844229289368985839752665154158143228317044767264672494286829157465705595342331433234323275901871949364418901463559492837398070940979920819861426997760851499504206775475295308908447606628697698382631749144343565478706683448864990064575464469879624860446104861843484625302321761674621918049431767630629083502280461867617702335365281320522326616036105429100982990419895558041999017238948859357049348966711388816848566998096788985503610845954432821828484765313963184535039096151239398828562483348925951457664761150720586449846794306635424268834723398090220566267631532505486893577540011089420979534230478031941262978843520882869520334221469020986638372325973609297272396082667361775679176545788166434067252372077929647368480198520828828454845241919649193971531892833357093158135184318927420647641271866931167936217524604837946524178314876398172227342890736357762415719254758379166763417221127836993874704343676752223295393291689155845135087917995002398259549321364253535666522672731098532209850831482711693166258085292051096428947314555671928965402366013366204382528462119112835795973338855817616494835823366730607749250065739495112783175446285590602751622014171143809691192048920543082535147721575517169803525875194540577447835524602727319699048468537115208336398631343289474644698880229814749847204941861419107845849730848360887318953281782751020089946653782542996377968783265560133249692527995404420797025281605236086265393815656329810701948762131742508373558554330756039275522185795793241289262024003823926257045181297358210833398233649625757193852833608298199206863424867096715629320040520346793636757485428978719933388073040800079985924844636456694229213652108814506831404780842153025215181140352677542677419475229910874168082188426360240188687681371820629522562000075647022686536873547966581353825148837609168000846203095443416177295742757777274955662632982903304734492367486664785268825289917606339532238182750100733677743831787072300090688646548937600243828373558170228530426435839395778867211025972960966073203821019386724500113883994962063285375281769851006534866221848283139791421775033090395480665507490837217171486127501430258187920742910419241566720519176331770757323643956346075342267601070017676361328041999007674990177655778787574616551660209266769333290469665849973779343866030969760534044642017166556175145080481211366172431610418077483528554453072166071982281293811010967599585813950225077767745832379860247051821760580303047403564914484169074319065083552103739631953363649786101313950237424704527050676463563693845054431175676330092370267162345465361069382854497102756296685036566988487258052554334843475708006969709842142483708612236603847880799989989075170905126446578963055208941843497858556357765769731661945304289096933370396780510224136928688965508735764533272766671001938009505184696963649474653953336721370808245539590501741954007156201816839543230126094925624205215878296452193011741064444649215824140034095523194930484376778712909048780514490620092930864532136134217525961077179260125172348431749230881212764721757673425998303707407147385057722134273690860488397177058544473420750421738321035980798756910172803511772316836411147473310394539191242447182778485286299250120676686114900954050346128684877284398169057125500003137062774497498535044990865770940527661074959649840043821420762791017144501287401326349245529112145462433820158405201585722417951590798743207405915243265225517007938312044236419788886074427069072014845215454046250122407085684754309593090520249813071742752154071955635051802202821962160173329182841598603171131795639614425725644128227384781649931187715035762562163842597370882462990510472746584878347112823914821317006320874538611027317310802543244244701604989364075096129152952109490601259163015558681910947067946684910893561172691418036091630549981413522548570776087762894109735105254027303564301727121879010079266934461072946302803343572006414685836861342182366993415393093328586920579126674411127121567325508716372483144658349834076976224433921360241575522824302447834872874571414265971192816605532370964726834750356014892761755004323043730320308533430488189818445745616205236440448394417744583545029952607024251532513286762674412790519904470068417123930196683049889913473215443448417169703455127807082588069075567357898101867294424600149377669637457790278023204825412712493730197886460320867186577107000797008972364328341775560938856840640416848763777735197169985374611146130206229798310479489712158079259004365452823183439591724586115849677992185483262104174440433759932412737421542643027690105241176486259462543915196086133528389042332566869014005705949456581797587659519356966925758756085032859866118594049108956198754445773165928354898036462618968637017156933641427410010691025162926229458364490771397786720289213976213522133474059027029497574032103459005054760764994125452754634956658076971466425450384925200338943103348169501372598760839102290222764079870251918903565945337683270694107262525989887386202216409608605794072536538166359690314308518175882574826359413652637075440987891235955138391269187543613711908605425452362700550627337484807195124921866043095570031574752708142331982128961078465631619362049822024534156779418643363286128611853336359799686305477948761852747087143575650545725705982093116374133528131785405305712543403897556423718289863962155353878519080898136101880210056969414047226468835847422545204986053223019039730948823367519014776579253345359078298909413997259161832569539187058402701593362118618092222813660634631974522066239495732751060048321772729292350437214626923473484848029786384645761154736980897240018020597102327830155327450092813755648054023458630847797092067000942928195758566368758957859934641096301861544940723031135346440619305573199630591150794383402605441303926940969063514014992677155756232263810691700982283616617248784972441017790186988616315351761404983103634396669040345600701343198811047610131825658564143899128392187372182304771869865602094067866855489405988821255146978593778431742094317609324543281360114851726536247374104462235314641989257269333992819839902471158004208837834745775878292894771355331507692541313711017422168288837138038625459005437322140202601583994201238437479123222501677293988422875212744349904407398573473077007157128131169583862178743201227338472595459495556909211005212775545416636391185975561230968048887838012385472021254268134899708637097405986093448192952958311858347611710492362827308637744422581242294533076730235639954062886089263404715226001329042980017448810434961257043411468863279546633048169673509639797961076925379307390264181280434520357005501561876570166458201332908284859560433563316204483733579657021807749760876273218135240186425417390993724317202870225332834315304876249190945165150651063574956152868982596767628525629656721062172694690593123927107787351354220644310393100266641140353708220532613749602885330521275200848092467888738331800323574929270579211970485340380517593831015909430959409396894038344504260138570149635978107154029633399705980614482088217566173725324796682516343381490189019727940184082463949772465066788007576680881468150339750348407600527172950198855824411900590828791785455954472618463909928625341873264923185575372209776764587024518562844817929640928369640802676289497780786354477029971535368959857388618336122430556203911394672121723571248170357801374123443502595535212965241028984997762112342846406910364738904810154553320490440993663071174908780629834203966141447825757828188357864647126023986244276157744491730243526687618655681463124130803429015595546145726686585279826791872106308158372677085559644489984950581471372266342242083839856885244006588258412696848702108483766401922681982865443209295393850943148778844794867375747936708896334920393222971307893073689455031832074148438047614352472179805669375634242624795452642986167011016130675277995824773211287444271074603625882029058840936301224169530247058262036190458503206261298735240903944013753125117555963510713043162735643151492287983053910869549444722578306068840256466741493854499188576859835435469612121250867616366426366490661256820336263850984029223755843970811791818568142407541328026107236024728980761316801727071910720739766139245708549900105396747142214965886806572317526195540411352819541548845598890840092585421847350497850879699827438500484634269238218559806671552949488236168526827997822877526331789480203829657883085373961790512979236394974612737610713713570813614099566457598711271468610890810057145008194133203762516849536057322049463924995616964420977930003777756052480167732924395598948756933782086785694215165026994776071128643138027090547999527930290985135041075769219494750424570841569755938886754618716020403895474581764625966842023145122736542622508291450447449030438257104248945357882978031047528783789153945542217292881850879561829149849142315302907622123861989827316905605123305168331703910021728182862832279200882921711415961456238753528391471920901189939191323827694564319609458226659350460155300745346387877306275409565063774056528030576993955161166217876799963573258838651307407880802781280083954178717855944894521979441871941940936669748418884017308103549617748707811757812904720605650456792940429325884215153898576257323770383535181651824762853135115332653034914880852419096450714491681962069145721581879026876827554046121139722051484190661458151283873608227365101766361577179344230153848079194552776304724959905017849883579436511176159529064421704002789052156302105300636675778949246760280356872817718859275154043957847803980699086606223062201175294800056259364733285274470956839415494782182786743418546762073979854519517093612365400324804417276880224765008493267403513244651063666068023862375721545668268579163723436256269008371596313329310431707349925979251862180818649580556178313194987805614641968046039887596693478351798664976220195665622432231454522670663488578078359205289803301669484174066359338791094390899002105472960936341307065654865576812675152803459938354509678178076315268017598565782765222744204193573714405052698974481590181961773800558451074391983861456353575724265915175928198448816006989268163665681660889399465680551027362606346327935512947743189294992199136812314429501067213460137029517250468712109660715114416029013210913661023384420764720721080355793500325470579942184725620555440945564086281264507008631796296901257961265874733894593503681455054831154061651796743238698071640987671761468916201878512938958647102372397800454499010095909788140657124831080451789155771485743326196037966071163791992230171510002441684420242701407749514639597796756882756340435191347582192116659487842378951620341501971079728206058110388896331800953218972351433749169353830043540361699722871666392282171147956689619672562014407281891235620970020242997906662935618154745639566707636770209906093446603834025639702443093811271100694770744965205040175276321753021087455493366689803380304841855309828376442020556137897500476160379809615618584703256966180748575235813200689886705165988264792042884049176666245352750280966482780998018406944707730528631614622472706565502102620133454753124147397695677365590728191067731016033005322661758909544918862641904762315855255043537550682293111437250733109548782430746011978849158624422335705909589032974439430419652881599190831094669285247900208183023548667348862445648339038764284380476440926346358873523050036878587996610153375770448401464858730410652869677030252187566928979018866859058365086332133192927958488700285684359426153917454084099380614269750929365211313499556853647270689737853178972101300736001598996420159941254458256094521024789742465483323094167349843967420888550092820556094257532986464697193721654857298644581260755163452128087926987743075628265114174516108795541596106902096675825162027376794845294368163262469071476351680108700718720185844664135399250083482161977567289718423733716379238566375822435486609414325239987135442856879304924573363754830208979744837381565245924783169312579295255632295416389793915139077682980104601138758305859681553647736645816905488451459347583671045042503797338788498404389848269147845210033173956892799021275218172688329144813314101089365370102604590919068364827532112719910571456453953510127647737380852644580244703226660221571685587820948282032596593415178051090683371173698312207734398866978736396877249745248326895023329779344066545321897525934192856445063972159503239086186725284291058648470013982485660692433531446046852110993846730893747414868512685875832823044680162350494835959185339410728684466179925804228820723726776043956497633510438199634769114914979233325747828812739532668609405730087745046797267442744311757460761222839967608117793853040150168553621996814307900648564478336469024178249055186314268073588554593912877841742942458598000169928737178885861678879614149453613139659319453074171522611648253030682225254089650009391575944960758607913065505400505935339715919522717693597191769130447571736911934301901675027247748635340906217396415205557274284588333966136051583881549201364713648648652738417551760032180069870498160073997195771383739076684450955037968522897213849589574875062982186681436955890050080678349680079762596612876442009787948580229373119897221344615651543497521444982362201603436013212978332026688076829058047095937584469029629490055953236118709524004636224003210091756643821726103876596802522509668557317693648737256212145983363355605608139931719611222837794843783593019291838202229019701741330241056469142548438844043242312104101420523976181866530131261693313098068959248741798212185996696532095818407494436863728585296886168113292642914539019982450805548470768447073209058050256183761015218762375459237283308068089850740771905120252544024950424903924972414545186624755262413860380962935924838457690991773327501570323733447129574391639508972073786039917283773659515941711966966305998903717614754115314107138324618372849048039366145128803343482122156847247405831098350115673153312728891490489597642663225541137474502881569071270891881532366606675173662655609949249080672274143582228562118302932723194884902906045607500930307125285995733787141948538206126322766700626667391998464572170918233353294465716104673667396592515323903503261225976790778549451154975349845559889204793371281800064082941709601226951539740980212928044816445456647146599049089317374836774142924539508186721913983246214210008121510857951714227831052988779528760618235468102167015773438919542061327473120662343057330588819424228318878271490794476978506177629368042952747120793276984152949758383748059357567794189709116056331792819571670079210570202491769874294447206354294660839031189415144605849004099628447015199700936347746108358390386971261554361382894225314764735939876969932386251022447195278040654032962809550545051603713199000436372230723438266170841582181307040558781077036232495932664519538520921689317649856039499445942725997210153879703529699060402724619482523166832590092491967277992189226626031231303550699861843569261662247884481317063249696112661386539841769518880505727100307395132657662712545938899622288670848230653597531878891117879478491116390698782389409513480456561071489410002970975829714332149329881506947897095884477825067142882995923951843768992950762498356284459464543689566512695924084243301457044640873711947602370343606183105737205041242325386933349255713920630854339842987488628644621281779451294433060764551852169135219496007342900766383931739097090102341414054195023596507114418734323103729747182670744845628414417463956437763046925853144553950152323861518142881872234817308267188247636553660234165227069460557716198441126389245770298876460945120155293916640320414284863158438231874368211665289669038417743882535852386557749981719458313224887325564465387177063692399846097455489642001633196029319494601997403706614159563728256340609472193636372879446573673949676440168285149388686574502869652782229343716532616558978151742220129852308940112562768931363890412716702736106956167929358643808473589892029415309111579178253927746472648153401736542488577280750764916957000669673977753378668990303057650148119361495181107856024644005682606635367103718484472746337831943636353733928881831735614467113379573584342636135314275120281616878012439513993186138299622301642033084343921203792724759216226331397209395106589789168299954248315173844018184116016135401250266228496318330860828776265603463784513410668014086317972686267492576887855702134279662838499691790994065573255408586634993656207045282081709052162984382063619218030484562715077247469159707955179575619839717714478988822545219131308959023352709065883246098520617942779651254986228255455960809562781260111034935789751268811243533908721681411439178235365485683323296410739521919371863937421767628062333026446583629799362027703713881603710295933722541492311585905210735213112339261288749475059316721826572274093133499528483498177734625897481418611332356725270806817883257395018351896124874155283105189577542764070017875640686150140514491574261305725518689311085311243317687508770014300047051461919714144104305657396394883757486392913012113645289747800278260925285495873996434035400146018952358610874643029594391062273935501039320198305234130747623722734937611409889644449043585269939745488757258123622511814521673546055784449726031935776606921273679163453856789438082860204678213481599392557112889244104618325398064787404442342155989465263572544530451937248697074577704884052097036896349648566039256549425893969832485236580588063228817644047372863134633949087232140535293123602139052853033106010805874895876513832428989495520791456302841734366424872198158075134463808980000461727007122499386879940968570678101072917079418244470445455230735003655918869773134309757984331878511237453573248773293384933600335033824723499426072382397721075830058957784384724152399273611397878217111522399137425781727326619793713253329571610092189450548541698767890902241038026834225777442858472243282882828384941833122879339057983320019398571936493659092095312267905815242369421762338524642510540260875042367196409825735613635311300939273241610286297690809770281266701420007821958534450467870982078355414631826783525753177423655894117168971502581856293361256409393038163622264668341756362943212262211424481008540734780443360407681823697575308336325254213773323612397076362642106098816456570561028869477804472545024336513491915589496050704169726007804158122296789092198652077575217430868271676202837565228727553876582534710534003573150612764190260972553308141716207771083692646282265079095250999479691759745931271584562139723730212940495104750769626342330143183648107684174590262077548389188807744127193954955760247614574935713178053200711951683756224532940153056589608086720004639265319085661535543935180514648000243020953593789228939800493342875009227353393633862489572769092478053919954496191017554242145445826182031280604523774686718361747210168376008301886979443600635238894335238140372429533397586064391804438962277333612049679760594298912047268323577269894161186335094181466565383515317786240223010209057907946248857967845602888139985654267420050565052587212879585185312865626763549383305230635620281653244183253263533354226191015243523296215669520325849047008674618639566629622785121642371046281061320789197943396856845609996747981862805146305992888057911698189731076165697783723071058398929073081659911939171773655991689804709309200551853667513791971397653645450804313992933995140314638386662264883523236597367399832980184689575985056378282479915937859929118462524535223401531358322475540033426588281293514845585197452091907403246772709867895954249958505554908216465820111410755794141825701921357744893119569527088165016550530608668037473865230564100101171488285385528731345999523441365260743350966032970202440232523331926668030225464466924530461044772256636046629654764798864185765132057673605865751365874260994325769694509732408174320268461460536563201544742321276713581944074592693934709388705018347130278715207984456367637082964207399367682979886154536643835028902384081002400545216504653501595477332341796574311764856365662508206917495773913142194036261079356181275173660423639845543194631276105922740322042089486630381670188774008849452759767801453721101891491623254595271958267058331171599704686192670769391293795387300709480211137161313459709002080488562969883626535322383001077830342833029905084684605402762212695632421917582995275994973099645941523460904867252232940958577835516445977648820541485851506281315280395676385915509173055472805770192305523320366641190795675334897273560775946610665822868749293043496394240791496020469089348369137896962083932175844802143530009954483155034079684058857027315632074808028954964118407350778883776531562231792207887594065322483141101116800917508945844455641482769257397831939871338285512408207957359848558835811751505171923476800677500924749387896527142367618703373567398455934874230576923221990339373190291143637322492305380420378703730173244538778470266202732936000198199279474378661818544699561188335161041507344530503688872311223135004396698809395110930847184938782296314693621928316848411398661864660032569632075894343009848777417722824943191549151537857693900179800719547682292889605286845377554462151607077252898462428995722171745407840793694405984306946049526405171202562232091006474021573602106773925671147732238507979726615576961711243210950404794162272155657743337689382410186435062837453652465945583864753849330381435782167016836771860964460018310348165587237657667639545884136651029796752353384714543858738572573220210841455624069162569904024108515980469747060914149846126349178807305472716547184406346503619483939849174045095032224249757075549925281459239581502622603054203898860201606175279353195942995539967954897161297510662485851258094483505268013877124195529613200488621004533769116968282877712101562334256917167098806277358505948524849256798774175985883760001115916382802629416415828575165415442874321049187381606940084229590562509267401972558386903021095899376785462348001256182926915485264005299845029373947822946763725709362287334958443859309161326326865457094043530152692181613616043926627964191352682446651525619910941122000582012678472863452932181468781614187761645115295030777455727636762402021749812862144574505882032274925055030508527745026024788290423948791422009801792888308404156320386756241517896238726856784780642852100410691475586307555821436517689506440525139887246990472272198268780083251397888910596193390725690881860073024849252080293674734377109537686011839031417488707957613921584929485811359255720448704780188697083421171696534757372981471277908058072193251561443625238674147040987203911752075474014149758831427658872224135530966751944649262509270208452037856935971063958851363389709720644903381251920976669141724308452408363705478148741101556573220722526397254066349271302101043511136923028708985013902074720747096039387272060562436528915719984552459286460875971574496167355644685980688700002561971827791326536443075061074542558693704141222846003536835327259806718988017562383408474911173403341479499947818629197891956945320053282910156935886664278457043611162871200731207491159224180216267199347011386330656672597724324070257197424444951291158367753440393935033824255834740527489533732709610428584535103674384738026300204663160067972480565474092656062660144845252877405956358455133794183745618341925074664892080448750479660455170314428791934765752074956204506011470106835592136152124322537949429418151565294422223060473613315969842181599087977070312567446729993945880374830338554237608393885603858540585859788879080145300639598555791673075628271570897173705757341237227305502647796106984701514174798027421631193778069315884350784309667559159992908024940186248162394300422384290579341129852649739678855932749449010922306731754332242348148698651931975047410474191844480494492054135235509899129043240879906360552123798510635171413920810729182088204367381778614006273388161547830556089661739714158950577432447796223160512924251297567520232619469552253764011619604491508041270059300820183249070705524657391725830797390882566154323189736537623053921536480039244861807314291866833337472168734288908298748515967035658239923737768908677707022179392520924038699863594765937868726914298792233279477374649293216552353318196266202734862440067881763891575878731199809844497551898578149175524513630450620105952443162947375709539058957975775317776627955763036658112182573932961308862271774946389044788022124539472560729423125852811045046254829296363621506682169746850229356648481129731050782158495189447554825452662317950257025616141819739902426103738390884306856696054184440341380472796490221975500447241248898513859173740848329544791952797305142284161733636685345189965907492205955564172454671384655158452090890071965211797461367067077921001859789106399907715131425216514616175549816444736752411672440328519522306311746329901659585799832065702220418808928612768144819878070396325752192038632175178366547106582583957764676906776234507028999106530005393351147427477980214971126249217182890983183112069086279148444436963588086248625325267654911797870571344922110513141970579031426999239845617773060031591324855173932720851411258800461464813865265859578215478386243179957174884655129405241561327944695469231991300535462425968386344467541962638188742266166659380250252630306318489268643760847205802122470450879481127404633922865450340693026670771610880725336535151481510735949786077784739977887913136300007117301187406013504877469298301946190092825110806793830501162041946697780774405187605668323677409583173423889247357534443839320431720025246305134837177202835545515586523830047444924568462393876492737152482487820180190584239335574153292489664032796451751076760530438520908603334710474483202069299895461959670157775473842948468802781453294883371404639549997304582044853382540817451052322115763747627656137262057372939714738402328584311937333746543811579177547670524849738693782727580543398581427607411158665700958739391137203237171232347593249128768252024469190879360544706286111757261160463841018217194141704373440651472770342097908815602297380448381877791891601865106914869540733709470626042308878409676292563024701161063151826183344621667857388012505336408376479058747329531599627808058499501433074516267924136669101276420528388047611033253054638369109319133911789467744880014077888771198307572409755212822401339967506214656476618216413260160970778310290488345189420640461994736687237817504422118367058137606760927201593184340567158282076110581807545529246474907995277036390665353232880353562507960316611838967690806193226672441912147063839599108490457053006774300164745216139241455979968222731346235707373627433255656832436089450450935054655362525779259781894729110409939473598532457240795691594858367491755343100858699232468992407104595871823511915278657699710253362434044336230799815455514015824669051942024797714407651935968902165682332156697090650550664426245385988619105794246505890926559086724583750063252742891950399107917094716782460094514339903528020595642038128440661045231102667314306840981225509076688505753625079239982867360530946466644146633801163091957186004450086429544265531923044866362212607109764731441557729764569219674103105568944259206759676303497992030055717787757931011174535539230750926294103174611393476922977016111638647733904188602261938328000144909669194952955585525852536546573257171817821675601765519682925239393893220521353636444986282837878131375689187974760929581482339407206909603111573287467580568767250822135504691682144717910524835669028350940370611097951242777327873615265505263274451491963964652325586069261374465815591597472197942534482432368391758739598295645738252580790144129703299756396297218878643743451338716706680411415004404004122294890951123698851009469801849337753670659575226951213897172051733227756933615425436961227826844975768576494075545177395933455083583690284989323265973580695900917434893079893629781923927328766189281940875394877273061983593119837789131547772148222415359134875797102807713047756717649814521170525945711258166846722018892532830739331945805694227723506477433510070583899452347339304126885720831903348896255501331850526532221941675864081565605289639433870437266759296384861758093349115855967736959714888854351413669331982325368138980795210200037037008798852219244691225662093495498750683918567714662127884187716394043318123900699536661385154488486009787808253038540949666051381781854993651993882269905022990651689896190021753683442388290132623660924805959342370361350036753815290865159767074869662698908719858096619580934198298014783006206103472290840593588598004285864194216118400830408915520360576084566077817439132801731881785501088866180198974164052111098592013043967112226575241356830525996900957022825390370301224721092431052769214011256201272405679622614533105782647271325591321220039128011183041026639218398215882736583718250839584563645432305856917631843802677359941570867440623205968749974988744302363929699415101578742210489200022951282474250768737297382771161269980107110443981962941793329737258892280439181071862672945726545847257607541198877380380649121339670213839804102329809253819353280525803382675391725202458027641712892319917727700307138593595031255810672802234304044214900941118328181095204878160241406096428969959174175555207348504219217383683048204637209979266956162963390623320857725318710089998466279636980072336118622226955354446818760891830173501855723798368014266941542792215145666934368287696233543033020461402251997456425850737820329024810372628044278152498872735403623391708178751348163597052682090273766311862547981983958399479714170978103314714321698983564294685796036804388912323825294451740396050504211725249532464459165391710519248548096153774307524634139756711534360692955743083429027936723340313892870652294999211608454261892035187012592151105374054542121474953946530442385260348032129492261942014918129956638523134999277393932375019419603078713134242812769932118208932517299362327639938459852348817312992017862884528971030644005863628739214615893268185752305477173843539178067778653143047101884555844562597769537532316792643886388620894580180710887329456188875518605460862987224793265410143244996067594133327975372273626921350708333636962359835569476638812706698783956200481077235556844990130672770432826567462637421930636416257732236865717705813793154601105056266971965976170099285520957133020093127330386681221073601644657748296593511053341914043423064977726479358077814743681631933677444217852279801863316819861561067913118357702346908833934493008025069832396312831895112984927163017986061992401863590571146701142415495379047735260030401176984447961234688430489399974262515636664961722379202645423920172305185661276852009604840267869248470772399217558717582219744448398128117770092695874372796976031085152345081496502114513674558499333340336172573142739574279961967266376961092066833505984002309351500403686375177351439241176559140292589692393428823311656048062859319844530589386638731426924525144900356777662910979039933013469892898767586886784732696190306730505214241258793763551197338385412250927992203072849095211495128042727997779108845528385922207495474945911064591687752318222634081196213351019058665955631622779171398663863192008557108432762035365095501439464365399693646093619988639163658203473935066934205559080500290669783311195991422767686898649313187468468136813239956104380006212988230073836989756501540968197495941235396465112829806133127905416465381793364443152080837935602708653430196550225465180259767959525619269898925235717036875487734695003365377410267117431364769302887551056988250250667665779559503910526151353697126454453966876117365589197231315277284351031810177840007894490893934220194378931202965750552040782927985879944371923538981700816735302108661626932413870395538833187513056070075105344037759266922352081527490679924040372868097834406102235883939559535202811798037857239095135998981655318849779205017079272202702028600925146954365991250440687625276259494692122399646231149210870518888831531401484883069285571429014636016786722558378711008093331562026000523900690874400045632365744280932264314937535900858312097807530168435177680164293700246335982493173862174641393622760536976959491942348361258104940216784592352906467315266687411969628700875096711964095553762670665495974224702809684953171962395394271335165213698529716471774017266941064300784625031568231786524317676405295435537887573850372993338442909744810310219186170487794733766211649923757382403949255877365265030338965123348373782087175487473642105299618103904776044730758719881203765795071067777148326766127687954476698859615541443230621389714837286068113761069710862206595733622543248715886548228278387148840123990294901635327219533591985345732511202965050442484281282875424496269217931106939278513744768777378021344114115317786305475532549729486307425821297808857992807076846964335894522791253404789032081656429763063837346511148275069435821832379048201548144825494117534532071802505560667574428146247655357797288919167688637072128977151462867584138721734254684364656297222389042277808229112206063610873208456641052110305615199912726456373289339732550756244020639319692644999238366814373289393165265544430615724544699495975101921219261452735902517823743989944489532889752090032822109865683736390442396162206904245475758901281314584209941657195197201520148399883299486232488197681120475608300251473349782728151391835071476627545303678540313776156934808303503950251455750986608331021941124035600933933505939694142073237539708475039860288668407473434463799695597928923840323344167548471910080540319257723620994556423293517856639118897191838024524950539567444169609300083715064003025294711526875623854046799267900066614766902016761450560240216742412700270240013662402913479380372193258124501617071071205697267802753833382102196817333103067088832673047480306006426962807052319304473862861147659175874875006486858857169906697385701372927226251001197976402890448969247449225556316053934426158138988608784163979459416610607989440185505621372499842233055953557008728632208465417112516181318817901025696278161803315310601330975404698071840657649073061784579285102602217586034008190164835227802771632726392360364491731176414597446561537679103953287590650684535106419751872834159138004891373251458746130947510256931475693106320190858770093235218229307504896868552974926133897838397067786144325283793832177471186188192532415149579970053153812482206722749180122570920117621331155529616272827675226666786387859188351950637671603321545478510380716753566523067611363061476386913584091253651487555416110886600390448256650862092844353094168755137021792773655572187406176803344852618897360166853907419734102572905125015477071114742893591126988510134254108964973993852828170452889160041308838572953752715430662293339418016506361610973484555686421768822972597982963777593137660972953029725717858396714412180599576225355101328839068158996290847419859726450127629864266360047297685138276020136951058868086306931505690102496673377944726424896608575491108131722733752696468679882720284240718274205463345007746987094054514651145320201136927243761916890784706929621413985490994338867800473249198396002751793568185198686382825000175717853886777710900285531689661730956404992981588545802081623735605342861567691391901031658907981769730986767858716709257829035313886952561066638307451546096303090446330854913071989868776893213391146966101113347830385704901819364422522674256987719122088876406780263099921314422496368054462488444639997054523155161092210704181435364341276906240760271209337908879851692599394999980698981051390981917577335505736338171645329298675849687882363386247145171061172241352613067786919477624128284240986206655868650059643922559437273189189395019716781768887758410560101409805279880686100711781215501915824750494770948522494994919835602900632498735558554670556047098969818571456022647301472999987374350516521661404433568629593343097838578072218980461171671471574030761911279929169668384781438580132189103843828649852688203263713925282049692320068320048846011320295710603700757070914711666209252519258865298939746466408944776566986168250241358268742264972696435285294219718630412421833639739274632426497224069967484214770662393006937322411613767261526543995474289402942520129666007910119044570016758474934522988543233466085225449476286421482298033357896804269652572969439530206152008077823203718124855575575392512361747800483129041484339713542625303294554463817518997222937662331191013105332237131298318005412792749322784633575934070732087620439744648984463491391360466588807713354737631273656164966065407782993171627585700387340454603033773315307746714299113041797218668096197396902007975343056066256950628085633047435280245252264563416228806795034524061400865111135495632043488031648370046179690998902103597052197497951441707643400976874508240651847429772586759529918877062739808464963523569898042612255896480919189820787652303895048207547270660674904249637385878988024915795338553581649124768487175972560410568580216744383669863320299615872718131452231295557040469361362026182242811755978187740600707956508584795444826686863194330457498851563378166549850345385370061884656841939358766143171313089351391860041073127703979648442819618395558459745199715427952899557008627552650630708627183973397816383577131016111109542834848438654699979186440801840238530505725086178270107288987636513930824973028102618128867038900523095121678013126540716899030755745913672641459175960737817303305621427345814248050067274881168448281107689129518377692863502721196787621461618209003352353996552553715943967783537189053088230379924736283745562053256693640994142756828294244158972373087114897869001759442402257103420829346609968870404106993948928091947967304953119758964434073546272929454508665211059136162262171179416907341233913990354843813308614158348756407428245787982035780125752979912184839946924818633027576790966691979933403199703893962771896952816037280758199849370638010529600044069106729110136593724376025724766835639314527226365121189489917556080436659633971734394380485121873780928846510022383325963683720207674566555522237189185719340656503081270385105947113866444487613454700162962294276764363269300367729473923923959487257938444519210460262287517059295834614887322156816254582060117847114452652616343076690451154749016151595493556893738023892980263658305847123402830613073321866093803947710718512246387135321211749948178972662392278823177883254134251477466504801746066536797988713666608327997967491114954393481307453603423423193168437908497443503477693559296426434052356718344786647299448260130048597722241981865110325082195683502687976703313565087168612135951384901740422419873360252050208854070140428906466726903246603298356820834257550052774500096265525363942303051738871482495367658901105062769483367836288656072013755185218462801814311857837956166740257774000146949427402270525679733311255835692006291166961155589623968203321646699775195616945571220404916870922855572431766671973201093957347154747834959190248589352233808944262582466670525533488393358493518444975473731042472270146229717688571931891953019863428127128829095821273172821024985716926799855656304746094917149231903042013342439676625852876689750240620261694297005580381721321607431974331217651186882794879545155514570645479367003478722403854346866155074229769948165178411689357445752462214454515521707846308735876912478751722164701450065198844731885463217273266112037919541276486190378702125737508753596082500027767317674804903811041614634191185799906697671802624890448018724078239213864491575002214239426758043481379331068032194290944062055348864796678627225525276079395960064823931094143370976253502079854487975317130267452378619593327078377491132539597700711411021386064562564546815219952248132635721200772953435323925605812222563620204728674414238852783110124173486972863699153445297232070105285492356185239896097702484694017720052081159137300165735001043767824303840675021924153725146209700790221792983319962584080446655183776520038664047166217234883714398088089919041259883807281444428445005619169094371862406332893628317391942981697185674716471778190661159166150287725098267033991496116710620705597201605753311661418800594897792223007087967178892549389314607649903724675716675724806347590539504805844894875632914620749730074334902530145797608535560112446107523674427427190193462214355453951318652903140880832076173189110275953970874425315650131540521094823131336003070071523679378956402285405603888801971914029459851126834848936615546794841674022926117084114313667181954563133657673081315849026052020517523701301303540541618630748941403740076729310447445567231444156819870839722307708547552641024142322377535854027066426757421831722162314682238125559812647108189831670105048934392845134523840860472902035106610574462042908992977186217324733281691069472565802864910395071969025461148419338633412358328868005069743937297959989204780650968853666964662595284020612956910977457677472624732984698604649060949673338758328830556847049475511153171245075662537135940286309338262948728391877804735098395299161520977960453121819914567541438443773069534010738680647992191766396115198965549298658285772216930222454492529846643885361700434844107364065455579287756100682904485617305777409671413388748933819960357855923266921309847249406845775537331320386274214403929818484448682593262425237562447026497198789720642555360869996534879959347655758638888604351714648007321870083408963645159749304261937285834746086073988335354028569319196550308546166353952539222284659741671767619530212714857325602165062912633729315866375585617962554842872041134263058315431157646935856847218387376062918465355465814019226752693364873199743594942820965250372499958796915530966800435615860204453718699102364595202022462336091464687979875028704402800891390211831735470403532592203870449567281016516600043608380450011030109326759294850424999227588298513912194425583934880349063020456824837614170962825350086679337068633858150949865825671899100458859010620188175567658026686341683399164840777962486496328920932463852852685113322213884708032873786447102103371420734925310799829387866579855018513768724238693019035538542546014071517084586095835113080758758101760721355133396938112732355569839738707009525843457142287821228961261687792654489664765548213377659773457412581785168321871047491066327290270654378709081045814689982788999769373896605735184219432321506325086613713306291869294122352956435145898366019546217113115101445932380121253939502341973378509504135342534421338653540475498122734240166418163152938989532904450592212364394918335345818556745382077486449502033856998837478797826356185231693838868771840261821811278885457925917918247531541961339815960432363860775867429643276672327654326713737070809048444249167433398768747684512233952262683152492477438596131951598938176041243911431978567579563285151542348105800148539176182577584179215472210412881537762146231193871160567473470497369872120859751956049181904715708203452318605469065473553774003267668580691678285958170377100541544205553829738660119266079472325715893982478162372630258629487210577445628595853545106507005008861569471990009081272680170078640779318915971774741250239918321893089837318619336788757944980719571845119700094772932107742451864791234209966664722316342911628254628917359815916178721912791826429426909153059501112122914553868644714437557180243373637465037392070767898306076226229547145410496546030176733575718094785656053707751991922731543330966523720739606524293997204285050901086087201248620901374809015432456653791683141541486959866201692621492508723832488104214867955992846784749162782039386580603327549732995598599754117601666063752228219123199158739421647469549308785476238651310973594067791261355539700912602997386068755290869783611319535801400741031405483431012767936625723511535008843074156376750651326822632569804691149458279265224922654063345739378311915650028740244101269899842946336496776707477686044373083437325979198318207051087544140108139887648523708993375382626837022961155190538711240890597300248741380512999509665701380523558777827510578938343593491757594607509673695623964402343958281979264234383764355827129384657998903191774005875388835382767465848378026697099953035339812497218023449732497308342158814862975296428000666624561399725456969765709440880203657618281614487679827879451200245858021496531859820374516733171268067833935540868550476272325801801618063887057808328295606933150203779551595586544713869061370728476433374744319284810223122694473957307316698702023311093129706413246063252244094277340910306510472804341875811219774203931663659803210037293723044492369756372246080126444129406498997657735596392178814592616614281378101501967710587876505762385169331573128975328679474233001966380008136194707951888387336519748613061916795631606224503294067161493444057614424869177976518339744143105904851520258262570046936847290940526761801643656260365843261134549177156614772190976920767031354361006765535800907431354078194122206878786991087651717888707356225648457384908825237389892950955328086180572639869119786683955032211852311946288383956232709096698395457326662619483297641779686054862899658909453814999151016346506045300134763169094560506470656068966109938943464269216776092422663251973769909680691409567573835259037760718582688074016968215382952045868157073376464637024213770168721498550756937418109798508951004215015849287392044047800358398423391898189121467777474100655900900853884667887566338149394187945604652557198209471081419005722767880911873538230521852882957444676511420403032511090951784824171519313197533856920851454060309985203611524794219645851970037266089667661714645147498238224999443501055535653429780365697396776282807098193179255615836824118194935815886372165477555028461413614867462815002241868790863583049180125487458623934073779603534546738593983045736813827729603725084946390137184632962913780558159076441384710000176106998173490142812596877847061745692830662152085248299120304880666404819577811097581912781152680777872080874465053050409011350232384272448608254973028573448643363102727762631647042495382493948998867287034233470937037853968676243652234624066580424414873570661065750451035437223913775926708375507539594440077164899914707785173603429314453031919027403218373113724177933505023032349743101322535833336220972232888370970877145599139822212901735039426940124358910864385026150720166388227649071125235370241524239812972104555623273219345175951350399080237285111667544827917564952682579075570423806887981817754200183743631390615860087343192520480572980748800401678671132941992851312496795075789780409007547513441098631863157171728393259465047030277379348415333799594017413049559329876523535084068037405505488401084691551858960480503093819900122919153364445553659531522939057366028200127517128028398931707666678067019148412638749576838526318620968207448052835343195517564690160184070940436559899429074518502971854429861764051396511387894368642081002321554505977016512799026280077565550303255030202850090745269442730675066238022089517899779803886393858593368437823539061896389414228484335273964484540405904989590105964538165012675213801553482340072926389783879222474058386792273614546784006716385692676564994804306884623126107732725532120953726640742503196816697450414812374988119630363073253716374674033869687574922199782320159349717300135297470168140815801980007136223730761830692058121164382820381385928120475553622693798783664084138639657009502777027990573316686103208358741592717557402806800721402757073028193198784909677914851815307448532753461215352426356785014026245904026892981159955329256192778092342148172228978228535874976479339509629204042564693170246814192414089669073234707893625867588456359725025831321659314719066614990313924783348905261877788825365193650468439867167725253226831791104680237182586271307604655222420832157964682557843300435891395375097414578902098189656046006898095182275986883391890081705500660369004182223287773285580910795995173781408419219019564629223110037866065142563603934072660937800050452701116955911445490040876481234860194313630773976513185430151573567601623054222947107598532614769839296527332787193625359836526201418588022719905319859246195306520366816815352752806159379953157938806906714125215420979222575615436706782827329366983727816279337924935846094461437517216691919693265476745292307516101836599358477908828325259305995814353056068288602470603008841042365602145915527817686253424558366929018076296362070464415644834113959236998324704177948134024006692064745806262333139044931030420888559526187547972286702851683331456366466909184382667572706992709204009939052282492801094737695785495838745943265386713908398825089810845651066239032590567950404670385088881227314073777118184307732408071015296684239639730380694546914424491263611725198656555616875657707700440135294050482702267667009772087280268224050046463018685293470591449931150677475877103826741911263453286267919616708765330428220006422700549148500822663772949574393583972768125018208232988861744055450205427470706134367954993053872257664761659835612877751028590687999115442924668810926165758429689765654468056248512793722039068206968140650019456322078275498674461790951869994493610156773272958922499345648923139459714975984346307177774708715116805509291620869562345744665203231668901540660797172135354001546765860078956591556147248359932687600087443671875302719031010298500873451516834122518415286647047073788900356081943881906646109356171538787728973767407627618990765246141477634390647803191580253850514014411040750138254156873524780950408824618105491069669260004144687441679065683444488733972356632146003149495599902027151690160041129134214411868564266508710423938216577745614354925150242313983740579409438162167732928939517778150192047782109167647681354886626513645112974842140584181651949435690535817781439773982585829844135054898944202094960304578262517071991346026628275686633784966885786127531737850880167772007233905886335545163730865483853732694619208644741486511855442816389941236810424131523177605297407474984659539376445603019629868458393353138679296681409400122383892180066589795380708664505992385708172324151337258587286634151333470748319440864180889144857602069487239621794056940285607044739712736886258222696881281761025467067584706313836924930581809462414119731542278673635951940563773399652342904831543690291354437166477749273735807015630903875912646889489282484224806415074444187653633740630289904761863588705752624539675488971363252526838880436615844367127657484945857583850270642568944447437499875342542139782479202666477682230353005105464643762822979159098000402953685814181079679658019228979670066821209078231461117503365344695931296601765481451603255707296991866345213999981622265981729211020690368474455087998468677023462539139882675162992555601780289483489994078825440199204395138022212724720355702905578050781123609777721541451902929762916495875571958435577937030545848704345725707281682205496033497096079204329338351730636203276212314324959586619808330523599828327168098323539224644383905217140638660696160490709421341599335487269233491709361355376929765971257111657017325564843170467761315917486271729413280625052583277471326585006892328665620902269987647232094657560593105779402282824461444982501356972521846894534439655341829113129433717071918847169328022346988972086143865045154014780785796230999741306485440899684097165256199014510137005946871076103175647493439851314208017109256810832798808013658600588554625941952910594929018750991688311106240538147831576080153529016803930596972387516508220603205963082124409277366449928031573707745217516602658118202779122147957895210066282194554378059313571170649114071493583886077339073667702997872969062734865297358348483774358307699432669435453322179383063170398853157191850049867783470357546844799149659692735466362720376077719584678055508081617818769428662457209552827002773820153583700202800785439363215352506329905439680039284162336750897866486976259021605754265416492502684443557478772208581962048253226224300830448535271044070674808501248610949037766669834047663351274861779190143034952461349990082993200325346004992244383341417113259579108801372315140821512662122512374402330285449683156188306578685159464667750227615287994840619385256524074608870710868497615058675034071502894016859690923101142984943670113470098458869669137334804249134235412182194437321738569864586956961723970916456663208461276900307800029584193335211100462418731479522734440581485559286684810475809625881229106437970408870912202848707879308992842594674974770446502448809271951008178825347816494199022541219883025935713896613857820468225764289329209293511076153948591258993062904070653319728825550837539825624666129759119806352888301189865778870164762083922583363859179708169949456175646471471428430677295110127890774355180153822219753050041691787193707166986441862568845822274406407481559961024810608464035184268503089314971236041571227083869846048935471061479095330180324159169295194460569177921854942061062442750279535716440604948301375606778374810254976919351577668133063440180016113980030804098425760898481929357399122327089087956037097690793421864061087042721867434586049128554260902512811920339402540079776707612575055544904757541971750952324539939826615958906713598963416140281479085589965232043053312770767359847774228036149626255350710366814036128207259272466015078296890735909209567983361381964741510448913302268320812183649499523075303813402477357446477511310824572898463887025181487759199249533043641829786046136422124433612034984815146862014437514340804982396903856806225452225927172284761287538509684982958039807166299298407493928137544812958432576267741410339676178071105007974078049571925568629078029198685443412019653031913144588129759079886081644070935206642127160593853999488057380490938300678478974920846640138229789985799032077932115252865163278694067750394221368304405856375485816428029104082361123239990369220312740327147312592763030522544543774663786896429336565005995279581222309811139031903866746431042900197993671621093961731217619589334745347086639630791170930153428504571559313077803602065219042766057177293968525448981824025579167539653663347218909821981881388608115730676353862882900543380776719035952375726536710744563726801670631213730088633689203968922153260986799637621839856288618649410975250686565390057606199404016726810712743597989343909026135047128707674107001294122109781973805677867949814376150885606728683429894782908907298992137574472914178120565443360066387743637058662517915539090184358612323126032011182963869516482430775442488187774333834808338835237685986368547872472719182811836166139485350743518640521777130104884436502706095564229835490919239556013556075108469697732664095671210338675980671532576260944536762719581378867343851573901105229176948267517817495588782586183653223100398443316164851240756586049081184676583933407865817826059222178952535194983206551996939271616662669450328274861495587323907688410250564016061692352197674766863533147582276035945427145896078650599214869316795651847253713752715692872736115404766007348581302410652894104493796264786466570414463048734258322589518022362912090096746066574384781485391112384935699520131990069843780722513168746724547964258832164331189312342160170410668696502621641259291687355625183549929998434818401060861539593366420348039227765581568223733125549739557691332392311256901318029493088718818826456117070106381644740934857250893995810916215096058655483115379685399280186220640667804915041856573881537052351414019893132279710400108980815089500812924363677767812542371120898208003410780549095312078932960777761664201418225124340319159313083525343043868526029566705651113892937984671795301455642936527152130372023628404347389503330263650860664190207379749215745958461459432357897728786339050037180943522053996239864940859529183903933372411206624546084521585330755688157830075861444800561146595729024728997522994474429266406351450453263114437735133921391250604186490218628400461932709114701889941439580975220728286879532478509515505443042079441890871239581633492841272641114752079613448252592529332225389134729906522965803707764033461593758028018682140922741901299016079653884685267057818786753636005848329240258060849189348147857413408664389154854386468595408677526358641198725992570605581603573298337311480678563282127987166621540060602877525393979497275038985819644719586167112158731443532792672363452405137709985898529503484553791978933834878233976683430200123098635169008858994489102076233837203406324968212574310049937197204558630289169105728980859362378364047348943999738986432794331398543078500224307059607503049130163999175420453045473502130706092766063933924280718464812371380746155194300764548319155809165416903489328233454120741506853562736812535323084245680588226455706863992072983136402817527381276890810428115880235193797091053607383861724531794539593293198899862715384565355132597195679976924608676575346110479448278753876289466751046860079436424000209948121261349646458357399174126441150751507166496949814732862545011245149394106231746901038695975101211779785048147489126801672264375937966923084055533220963728689139926482033302306969561301462634995686941360200334093275130059356526326663890248345451448145105387735110631141990322154427136219005941495953599002541965548895705974131319914658403486105834931100274718194673867671365397368377152228764953556267210986785803342604787756714835881999642646010117843040356199637862935841244239022732828389896099603794575840754469958601581305973505748016495083877954665745375482145047724313682192904078240094011686619185762725869585233136402998690864507081168457079411986724733833438430828405562499536296382615898880632110704457345689003204683963364756355077718982112055470245641832742794812287546942100118848540605839261723190764022788417832239856975819320348349233621141766968299733554588574793665439537671473147459561304882408381077743415528001200002262586108526076607190411435681658339662613781823506066196962266927754297965092064624825901964245021287416435204913453617125044454949555400694984242050898252723341007013379854996308156391044419398871631678940025747994540800933743455448099257413229966210461135355114471462297764780918034387501492751546927979892674498370199760479007619459618805142633368562650503872033952813807851535805736751989645888384652408860532293525423484410709674746549305863094770535284719816932483972933915497873583081743689512905885608920035396913272722536560038116651232483428954666197359050233155170785703574785016968287516445129222172184385284590014852651099141208011213705042901377251662885932038005319897812946755005727265879608469647539191891429922825742938758560430011471656349353920565000296633206732815272101222499705575537701333021475855052344657958448894087684245613186057970848420810026456123331137465087087298039548207386785479103546138773974717240903082130257317591432092938076365977868416302209992391168769971201835515830291365013301111291299137116966535565143887916209415159831321131116500030880097459400518561239787083781217329318353648294662186624411746065250390114556773110762228095997443923786262080314241332604866556650729545351776229943120556865580391408220381888572939809808010525454591562774419184839260327030903546881622380362791861352340668380666348567104634588260615543979547896258839795575211248787706338937831658842058940329482459463109725664047184723865092371939646191285847719037114955393679066812652534238463076545675484788410858352536062936099890460264452909240906498015011455799970703334830340348242643801506121961093017629908689137111089970781328661725277401157090885366492601470193887996912577024793774225366712486221170423056490697422408242437190234819143624417559265817083805980815994379735104344708457458126932003005602002186409663686221928145534073967500304030112945663041728330437602179547854641944737847986987592070339387056701527962629214121680065625199156539784778161993259757593131082529162233634428792436944794516497582345966011091613055325696407308370049322149114819220417729315398955331302084401113874836892499520436421167565118664475817781955217948234069790003360100579978152754338589921795505017088650684936731761029335292380273096546150370016255598101338281562794688063561097915432854633076144942506367282627075387191556487762562332423338384182243330886084898501740768083619565797254297349307571944343359472139390276534884572866949164257466544286316000775402964246073290047689734670852005609464753539615809090054384342052323764088825426160918117262235307078334418749171814656361127733229017181773815129526111158694743703294105725455800705350137548825737464653047527884663427246087408159499335703796080268185916587590167787033498537414520462199169756641783385786774975740271025254919564015494801319162764561893637887280431087260358280404305207823125998588111565040699998566541955812591125438737266118945531942807938465677839938742303494397254289498921433292272175394907812491116332573803068978322390521512690186674196308375088257231674237187660606983151286573193706591853243943188754020534386149323557660670034720938864848010436233394869398965111231993248975890023989877574154719604549276120185515647013493999610873177130375642302896258837703975973217624774468601174052973597944024453417684773585169636282101069930900858969840050260609890726799851677881304770091442154967356889370497684048007410116924732807918637069769863970138392248198729921999805681193717106600401132817697502590390178127981754728190419105336573355067317264452628173688513228908354489017276917424967868860073184213204994425900449752208977155686250070964723915937670284624981640421933791567960701548040355880371264025112195467700818936891714236098643360912213540171652465199434106834412082770028653853188985418288757069751111710601370519834697585751501056756111065920800746609419008654994033934650242479521924286075040161002850355895760804773685277739680969429145101305989488930718968278164694272634643479012840440079748980489492848439288887656300963351573789005084179573273565664904052300407755639665269181932372805089929037440025993564240953050215235320148420235570905232383053413093289767002457372959574280180946534942326943821903112454292349709208689027047629230594475959785141680866880065572336785889137286123905375245114356649066831880198191295514763453580728831858812800503012412007979729579872759201928595829769287591585280061134109949779159363761436370751866564279400741151126738031381880797982498941849496967125571795339730790040623778053599982293107548643093119543885806081356200040800382115289683150029290109483266848939198600788909461428964308170230556389413802245490372517544092856529866002544261063507930192914743142035448769028767941113106990881836291520754890956942905225920386182508602175684833151801485163390117821551738339559751673776895036727678488602388680367248064035032378959304968552883883083425993015390301706139822065566465601979809010716067275157526457136081521368725473791021452102714417525832886950149168863071003438432845212756050566287440487426194574190174850110345749623709626913358331615992454680931099617161231340929224716404741303699788467319400629511822583196736913466491816820279227544581253696658315222867096858939621125116383048130001845974392250677729813742860703671615528137542012106945834961350593023533154639721523193092183770175319274210779479310365277979223205791213851579379194754707341297499606048717361069752576330220408306209747423396918467867502156632937721182417436836826985565679482039415757477696113452076029056076743681376058406146840972367327343711437694659710892465727500476532939860455217384455461056607683222895730491034743526988628729240522711073638359359254236449507664279716216531555253848314134858462260162508773814198132693668253517369911927206694782034515425876272982320218974380133068720745189736634061880375454862172248821864747057093134519594757199404635627952285300754192198720824969199015549259947701542980505730216927134843084534789252159691861242145759202922560609712501532420527708775471012236269058075445282327557370632285513926216862745780008957120116468479326167060884838596644792117327047945787299434466729766336829240526824470639296223373701699907095107791909283277138752842360603084120211025213503625926668267422956029936295269837886117094680257342478611593040593685053705048793087879446790110155342815508761640563307007518606191222447837707267266269679531278879132456200250267099290846022225777406615241837395700447797769150682318224185991343642807585617631411244579878322601024317612362572011306126272685840483217552011690391757755546660483759325004629710956332818764689779104365541052584700885512309296316190140846850012424292024712120019143350760473841980043461163876156539455894209407171468021333025227819442668573300756051530926825263872348153446122078727097395145603447024598186381979821693570506754280961138759731535972973007780916289734030520772169188236288116301727735243549968466219419559486829076249079818747670132904963405812744762752884710099953647376599694680963485385815357047894927847856320950181256566711325490550968579410640793524208542114970236963407921128238986829300112351570889819780549961214528208080438590976067353837951239860356226777185977939029077084678207467899294902432809061977849681098543134594280826302993337857755488517903318012223812969043290026019896088622521491460541513345465001361817870471097830057233879057587641171388984407340094588471898924391153264629053719578174630699170602036996325033199477039684489578496433810847207600167869208135580453031696393046771259883678843741464749028663173580558965151093723795026325269704595029078280334928639707603314398158687328487888907823742202581631977398872024181549115171117953335574304865718487630906061625061434297290510065940724157954976110521016045241190595207049151615266160243650126193866549266498804564314624991029781361235602754931994450278052592910706983406960483124474402395644735493091145537793345744582578194406706974606957087208929854671290514847597346946291951080448287543563137578071657954492867804031326282155597854991262147661500862380679642902191837269416123699824700533088889971025143596305633878904182535628741257838674723737589933233514542200843414679868067650345612772922197801587957429850061463660596952637832004710981653478792843581568630779921843232217755970475161213505574315214919636426782232146012538150120449695528264163266501178107630034533253744207643990314230901119492878943659798743162559073167752406289193888245357840607670657898387782906718196389040944482886083801588036527661323838900861454150560879346433714354031381220789345382364557260137067054153242739772894780676643309270338492607777807874907896163357236675287472971472616937464727846650381750974998258701086983539240657376915530262390242771126330013654718290960142988163396810975406126372406300477777055894305023960351050632827689368087377710959384198491915324130155172902103259064855151249538111303734582189845828626813156665964749133421706990179241503088851014359235992716416771226151525774317225731294262607790139996481358104693353190101164735725781603271910632295343335431681825363745460223637876245216059770465983011595951909080309306642251122934816572520097097981154532047552709085854041859633136587427318151352256865440740623235278983580253466365942532129053071136425054051703628926235309469156000878867922646542911510571161292498270120308075390876002047167610424528385046648704604828537373515207827203952325598620041852806147167042899174016034686903008393064712140602315792377141671983192194313505740724506276116195472172044431032365795871140110614363883404117380139928781592260898908427720946666863877916859606578407108407317755840773111612037836207524415915216260012803565779158984711226806024909704486496763790738286747766751037100053481215132656913763070997898079499523057705515344907302702586557704412710710674465512989551720193502087598871225314696720417244013789698432943265120430911911156897274926456673206668385287466771323164163846961812041263984968282721081576716787647051696975318212192983252484901313201874822742656275488759487384368456316077579210391063652492602359368006843596058661521224417270041201397134661747010214561650805903305443320997217191505365822323475796534266332312056457658808262644104519004303600607175441411592810710932045031500924589255477530113995315136177137323853125172643452797791461543861848661538070465523975809332249864034143772892107223675391971158881849723432370522912594810509525282754002412408362903997151233416025760656177436992801165063737753863719565235213481613604429902637354464332883681784274366935463684132293301147535989116894385497672368762836656445313189917703799523189083175837883365411932263098613604055825517920246027509482668494828217858330173295035852080820638245246486310074441627980757029325301712087111973125151779315958426584696853832728124232116018625349280163304729638346385047133654696816101046723697066912940485171049073221428473464961184023775344764204573807096441969896057852867149564152182680608261221527225456378157637940736536713518752753719110043134971374689099739483193750379938946739466777324570745506656051363651246960963017267629498342411097007761084041835227305653673367351063467484526649804143717991777969557932067960098781164456637438475840444799383345731586001673098290606214604522690148127262918854768353744375342339808043296107427655889078539662284130852332150984558809075769067182002569530631253965207383559198776777032512466038801902801080720461126721914163179786314529937736862427389982790582778670667446619287168355379913450620356910698757472277431679921726869893013523082400510764685094831604025908451812406939770643371752789569723922440811392203837617114317438221787269637264997852437770975853917516633391304252880845566945530555089413617208702506720895658230446606310567813003961232119047210144014194340398196376821507686058339568247501709421934635275141581254810195012684884014816191723954871807727185239408130529045115984327499911596990066682974582254033445055751585024186778889745545672661668400165158205343427944260975556225530705155775996364455838659262844928319332562267503767258231117089407119569847018925614988246072302038454733928697108245080880273830139307828641120549045961898351424067250506797626437113667537938525964643417840398050093109719702116908735997413515186155456483194761460663813629668183474575650485619579129314685886473912587493610678927708900473989722038346765583390165442949056748382405318870681503227949091753603804124346328571286331752481035887414002706478758649588149839975896226050379215479459321243465042709770400012241154272504202655047520577743360388189111808290629659106451250324976030452988146918326515789999698045600952914782746765946627035537174499488728296667056971317865018330530890775995653508917924963304189942958052608605797016246981389197656754009693500417941262469954593824254015584024928431556989954425079957260882890388730420115006137571719462276795985572341453018038972804078688951766637074072445224265553579671348976685675130378044455668256186988456772266579774612189515248296129831506234344102610328815197004782616535695065425078620104143457065234682088743405141131476478926010285522615430755985241377553138156724285171903472048295580148221330720592327768745662273920065170352968300902197738953869939972116938430159192384945706109345487028400264358100756768540126503894141762039263405986741489033026679833669372025744700613067891891281549098576189565490940325868077729116321717703377605136231030897937347339670154394167603692849970967139199632002867129209003947506997589512957986743897840558949823129931643605980279767992786728375193812174785720860370220421248046097497432312323525718949300027288310195159536222228324822227400498828260819229985897029944746135751008165813302296030515921927219886906623713459166846765783234982883479106848952832436294441243918637025883942748180607391842531581291191399004339153865491581622208246300805205921157878390307844476352749859589929348697343452542476816914801741548265537174258571276628795580621697738691966180208989405385222104327841801434573887707847222322081096959831900047382610335625040766465008161980112290035920086907172989135851366071351660879398257294671066492708613901562120419201044732274693044924521079908604852403530995310653671243974458130956602180995396551073370442768691579409864706096314203379420942561864054358280212842589551107844888977568059943609344326730538854362743394361133688357814752363355057491672780719173614126651408793720571193350230825285489835284057205228164043075406973691841395837067996122682074196464975525026646824360824226954378149300485095709761601758263658256597768160813434547878153737017559664722411277295181992614329185327152701447072374386229296911213306624306932617444571470645694137522597339942966773316327050068119199449313589296602342315123765524207803046850579957084501323867664941690080926291512984983315692859901117637598331326500795297520537256120732140430526143223117022625258722765831243800370402495548549501354868254160531527354028803758356689863648154852356820728025609194050048710336504777701837853739966165424379592905099534605916680661071398577766980176284474589007519455463952694393616235010910170983010653460254133226310518230272079024880089087220526725240121710705611980228290579268795676962971961104123945978278641781573191957072047301341417816377761225554482656801620183079479101751975593534202884204776624456991319452438556730297642984947924774564181375875820668459875536012921335838731394427339565873171737035758165128428287393305951052961231535233142626649121696256793305122324574157352578910442349243097516028044571391263883167481691192006747143582797289886421435747450470996430305797491681913264391726210305508306086199576616381501199453611115461171968294136088393280220258517903159320415198182242900042432156359418990330868017916182408652841310520150168660510584373284785066060217343557083539991596491618931230877548102753019816942270693339300720397348484719119996732393482771714297643072020203132504664521806010541015502819149095119099781557789234472816639598415031336107626151408982635045695884667451654613104585603304768896633570231306014357115822793340044390852993035393697606473514083854278215572388289486342919727127678012299554104804258205350253828514873147009473650365950449738862694527408984371579548635554348157991747946748597126723474924468072070251858309856502385519465473716231974384332653714058559202931165943302264666759371777621881222108829313924099791745225536497198612259906675784147209218420818721081967655817719737652174229076134900735094241439091893211639061984757115038217233722165645969305612591184585759573651437917748858445633410578889643232150943106984175252738842330940111841784897362168645358163501522254947717196537651985516203440785891040867654979455670714800598383013225960627612470931093151416143253964353311218262548970110280187658567216186380780058665221464844146423643668530629456912771233491248014174646040835508495950265971890262335033902229041496342833861701151439686878204568152487497899451411323996680767507867547117412323317930468672838064868145479797180010036236361849505555908749189339155141062318420353417623988780043951439853232431090733928343449467293258571852422636213185076078664629041475768710193998922192727360180831173397974300894481787483853112435504784861923578972567827483691427383964143601164819522566434786408056582491988146587224850481314245975466211972117411866891718710084728955593515916056322939799627630428811684165837101486178135470393011819779700668655812928155142335225988257140786930096044147747639513455907889149266832282159742852200319517415310481547126155635372652877501509573533645153591927736448907397028214156591902127069572504023333197701131551247805146790242076884915596392285478124496477895806605241195510978032072528983762317748760326102970742985316432310837619137097828416981540464785462473696191853194099844206139129801469399129067456681699481110247299999638766664014500400469349299011268238355393286519195079720975864648660728754369557375209232660688591810562767944152775057343998247680170149470832253539153567734333363020680328347092275297324132058044222960256034458016702233267210353363050975482009804686178339692796204504299015689112322564454453117950088290302940267889075303440853439317336373659685814507882062870176454574656082480208205244431897460500863153313630292846718254595840562262315382484528215291639788678502255286224459060502126598613414735325430714274374228986493311939680632339872718159587238363594735673214175176907446508453405586667080667697011402155020608429365834060767112604707319201556960648771296235675011567171128394260460918551215837961338173840834052519435520673560849617128376055462825711826743715755913032093566415973089080838535186442466733016097816660364050320895629149233840437126932958203184807145582809298446165997307003320879481339599132335600170068095865385354726531647413663853848454750167085466543328162947040981304804638634357903673371435530948584768226400272976382586415441544489626913227228623722131773841237955596880690305817517511281510699431466647544605952409513989216248990032171631282066563200921238997815573626917627635461844648911383757627069670254940064769027567223281455039726170565110744633448768603436696695848305238700931587311712884013308058533466089199759636750302291013865715891618150877360237363653898167169943543365644457364462239127421303027255065216117614063612359773645888393301577420619501948260819997485866697832663664161499536338193286869555019134786969351704984271696024007156696617956758289170625792940270988893782564698335807256811177812645732340867126541828294509986949072919624513751727501110264299392366272293913716394345713766520849767277488258576926222430418824831156907553410902625465881796478601373431586525375676993795962831837598106813865014111433524406084423680452003994382987036904283401952851224126047953772595653899744488541010477579268712515191542615372679914011477637581643128160816212800661223467625943945993787372327691134433065159604412022609694984969834685556492419660549412539455476354190423009845649755413409433641070771477360703946555472985949683205895816926346982916936767012994222891372641374526719873572194771783894051761618197416680458109968121815499310170253186734108553018525388890412298832391572732159722603068553370253723859498983504009809699113868720417694415237549082671700669198629270154106879889623223284778954324805223167220790140224191325670320015606390888683598870390644254442734547387300284733705414005442157107402278832084728121918384192921238967277762829806806380079985241874253421718619905982252371082383493228039024773976347009286692870306662230732688630506826046052696398289835575926142878288942899898046587309573943801069363476619200879234354641576817477323168602555940397575979015327920256063422587666599596832005192752292780234527742747110160986136252225142232506737887021931230955209125386775620910106723935719416995564177765441452951986214796296364005886026561853306034078316505418007844072499390638828803444589069398055724011088450259039074550460455738083678120192058344398594632617097441357133251409778544858995356373344229694759740442315299748447708201567967668735387755292552019895882239916684922256728950542825348710587248200100551738194926853992248979489844392664503016084344300221883770236528399519835505840450807970312611068261988728982477073194511898493585569800820542517379256257940450159365657411392937988390117728851925990576135016213314531071675439896163641550910905476405945163255619269140944308839707045210136141310132244533513746471549256912524500678887699022408931499598969354694640475062211636271122225054986668078769930664649032655828138927543521245246180572075899036979084244605027999876525411734619017441762662761966136228133596514609920878577632990770114498605028478616546359627780212238017003295371015058116388149925431503368422872207879118626394576921563750098387817700691426994339665424622534113836964041450770283175745137423241672765847871893268726004251292543961085233338838344185286477819401982344834210020044721923360864565167235130317469250146038051430785693533994398317842737993138944686759239073561913861953501494632942918902714618617501020571300797525147012486259925025149446331753111989463059983874219142621285147309861955740879694442573348214009406683471334693170509452240317022605325456460589726912648946898818598166907066771722714938992696218437215037712400486372223300477636134544588367377044651832955949678944150202738807748074644771528367876188375788261601762157535470837402497992319818082037338000363147095975721502400817105132864836257292059523240567754288061073461230692688297095226858567035085238346958207756629558572075755111904831028156365611601590145709104161998263611438016481640986443675381083882322325202193110460574898961703016863394979720703916217433216102034759561853210354779519890858144223230927155557477703597595180448919140387559217600809411678361191512538561675775697578786969070744086106587694318750023052106530851004182546927392062473587388286025044859278417472675675478786249509446109961232407482759979135369368925321404681946310296547198333366740683667449008904240916374857483429688179083434709305926378594131820702743995795964619898272183008275575608712806400650580937815976297021977481703214299015623201271363279853074291479352634071218685462799310355860648210309452769864466541192506461883741973469570776633516885893168957091043911946221552846441493476799818411844371080965179979301913575914327210893239304904091476388911670655790813005254628372258595465373156989437165842870164071696734694081489941658918158668859182102563241611434324713609182927870034404329476876445098717265286998602293786222619364770502982988776424873151236959832629423164379204623955161159852153725299160438407450594468191431027172662672834289188943890618870209736463374455074313540455703287427401670642134177913081470431456802786622239987416895632702925709291061784324093100093747522766073895644850248084728885768729707630460717606741483249016192715411160711949953205272744330960168185148249291162620735470697042700328222276703674838548526367577063606474927224348767373510386964887381862929690277775406873949847165430475360657203127413600084481462862436614307384578048347131995945142089781871256746205470391518174064072218831410876444222411602795111634012733389852990627289776328324528369974216132812947936928475690757415396140529200224275481995590028433202795165207611127415008776421636070638556672251591599349694946206824568111609037672699350983542403235221707251531942762986289508024606835586884669883196848641481812172505731713615003871239886061981153674328546509100384166706331873338687587784861441102978682014620377628855249042671979831918813862739722879277692337540121159947533976568298388586332239775546221312962937585553341316175468807495277568800005195542320280688659103986697940893827356283660499378161226900795897442023630764548459383289801387474434194539166088330164360230427136599798225039541981525948642118639984018771888379822118851684623619805132644265357557577381896398167938550227524179370109866798459373115987828530780198743453373569177102674164340534865721850681380292751466957267171672176802582823784601069900005194583643014224345981584182504421995222346531707080401719909225557553577001039652935853555360775355258541376991747808516877941695913986279716438156704085309951847926517075573487819265362321460408487392666580234517439458918917437843199609864912464673039470576619298828758879133287179335960898679470820095424167528388615847629907147568445549523712828531957714560831347056237060399208870742309936981709988297753846960418468532441715776332368107035654063713429343783808083868526583448541579260433287512503286557027610449022900179812266630470141296935568424759074862518141549887978979870790791188224041735861152609629705550703573893451611629396152475472309786539908692166534348285069924721988279859998962019620795141017081189530510501286657980871427540307637782735326201193129412246992106234205714126336391797820700397853847462369778513049489428761083306990160786565328286841753776658176765610305956963502728024895341218608985942628721831917507784523070146292992874339967033323824034345836960386542489042787178371762384275296691867050627348496370937737864026314740453831275337791043842807180221105560373785817098877435731568135792224954126548665094022051110511474576611918721413703443410884015999255502882327299935822752167711647502284656569253306519436091695799332211077708891373547289736660759591002756795702940025995010978304317129657242516421759457486493078570058358248176319571466088972951641470086983850700161922289982529617511170796125920747389532627921603069233583155973128665765683919144072848915452277895032429129434707304949076009567101760593738641763326169108807149938584305861203409243653520990660495092961127639402217595872211349782082267847824161821595919588851177900234952304242812783954324104937572319486419433332772910594430141457675017014837059937053715107703794414662473942816710734102882961853883241082079584143376639132925840935752799660729313386196281460726558717859162455261824028872157374088619596445350008728225557148602895035550518651608541145300362239961232610895420240136529807615953774510339631613106154413255716374667957309908110860102774387928691714268602373494094836594201094857196868773793671269550108321539753239516174102396040808620134924212384606676136635747939485264344681773224347546058870634406371876479949982884828071352289936022518699368464419928363614873826718986032893154681082260337447917990359385231141454821840594049629357502290274040898354517307079054488433324415621604315840889845675300885499518967066557638970633438848709091493471705331951199331391337918448812871063308324802899579520607884958811634173319557280084986631952553607378237992575787358478914622073917131177280461025264088467407152741117191845667938790976076291895717981850559230245348393394991561842827330233040924535172187997823357217842404364607506886827287114360372368471939367875510734510519379710087831889607234836216403650491662228020426351838260858769356537197330965098313331154297761183820700949699956872734143845127510328965593369610853967555301058326213374627369320049370397335597791957004992296316463359853855719428901139132650788603765572006423923229670424507989654310461538711081467619471388870620705335224534527684454540935043560864671725394056694019619666054795011575339769246335376895195517623735521044446665105708978115883297809490803153019513731225852440185819782950622399212064065562969932834968593722507381234503388154164626075106215236070615305303406405898086128499932943620517014422204783477642742346831764915886397254267333486267958713881149124555334203224152783173101793198631110999632882143735264566505290937122264462259003007797307715203457220476794795755554913803648183444944146316005706696078695433200462854423012234528569685543711197235117052877505230370748240395616341713293769494380749208184943506362498512232158692472947317925073990109831984544950840219131177674823509853160718305839368701403649825787764235988537203122107665359028912313629408993364238457028918116645010193067572623420029347165560555440860582429511956292508434758804995598905132918360454067034272539562766004356782661061523316092421190272955640921686950293913019127146254447133719849255503207233106579999610731615197303332494732162846579805808547739914851799622442689079081459012004533435469426659937461917063105098078981178413278038883000421788127931169173842072188688605852275416976470773842002765361706820877552216343211523874769579935401944712005135436472468666354655687647449644589437596120293686772764503838996783762264587119543003327364004442972476299037934428176471931250368479090315594759492422499878536654664966250447319336934273608505305913579848390149777016964753371655171573608386985298048272721994081348866190449360606144549829762190908109430897699760567057639578130101737756413565239364331923300152862542036673650333182036523244737147136663630318739022128028583943535117919727241704490713327504095228456996074641095914113121980220054377153593889952867653709358657147664434269290647260438552243883974352602962066118081135883468810606340288220612808434494801701094971902481623874485176278823559710670750203060584984091622502941656082162988364777427105254762986461509455707389938975430058233516584652984382097428004872818063671235014173330957639795153883740446509199424212774672077847704549963950077531196177484161465992746925085081983531996063708022103421137772366446807578056858142017441089952329468397554876296470241786006840896625565768912236786326589197541159582574516621594162283869547291593287763261569737841464826786710050689335296710747827097097497934070714153781137788854194846816129950792102162748626602483367688057265954623218723451914028054640187915655429589436186502635917317896181089065401149588900437244869481156500263662789572768935034087063966246268898041524520510748048172180552693113308543856426825728552873931142481300211922595296720993143605873155765659961881247230412643426333844436774004802346051306189576745161975387184657836666282929296876157586599688525502340013419554396430068298649293726390552245892390206684629458244603013047305356794739425936411932097531288879878738678055946593079067788484878788066464409117868037234310710972130480110778984177644756034346012078571158140501206592334452750628411251987401351238587704394567434304523179952834714986898830374776842719370556341385387967766667366129969427597184470893442221583800360361007102941666240279099673579267119382720554209602635816283717726493873553730599142937850626022577029720884770029290388953977451358945322872723260537318974743165652530290084974329495923659320821276026776401601667839992581669715450671761008030106948624204420774090545489009024716283007937032516335769611806458559474612594713667215459352681141708309012808897351046514221234070194476165502477593849718989195846825139706859796259909157368149884465334586622046302332021870290512099071097943086603731474138830694884613359786089943218292177409156416833593875446754827063839558897399601284500138671228549914878811617639601545334222088112657640520788449660564562069295416644857576576439324855620681601304365597138517850128553143345217656230620272232839359303687404370357547220072655537224048591144013932482417038483481182750965128774119787854872332524315754811409850468601133929400276990666603673950379565939463717545454054358755595016728630273126497828999776031528938735905703414176526360647657844431968664001868032237347498645534688420538276219059792453846899895855487354497545782078376125249764785213690668835914266184962786956386532674723846692633100321608066247003032819009266524669521941433020380948074933580297732413590156821391073977502091678013522718484948559112470683640234727856074782081591544147404733528582064750182377627714661969836841267633684819836193256115771293486907974528985510167042729597451841080705614640363660040596706692585902639276223606543952825426653945177680578263120567364947531773192114097591683802605576032702366517313813575568024201942604856917867503471022352437390210541361637680314271175729836108672394957650109597388361144124802459742355329839645370355724897209583935811065399098604968714823787908042105968672369845346975561587223970327850772774802774176987504124145675778390850599584040600927417793760423976476994748866590346390506838226622527755111880366861522061066139532749147757864137861455969210740714559667773728423474083831921429862975367931937364610229217636746781593166313414480066792099634849974681560275516312303507382529998260015210226128744083268466437040104429534433260743358269131834743896883379700055623334451340435550270658371522481666763115575732161340034911545355409261105107699787555263818216908372951132053937224630372589104015550081833205327577965797819071819935104368309461664421415499633758928302031900352739040088133083412899229708555980291227254196148933453092683248629908344040536405734652843758011845289982424230853481511863339330026958420835339703948970184574488812393276643454344699631336745885823569035987068831800066407135073978093218377641196944768519122150249516561779793071060129015497068546750433041530282934421629268093806587157925865501434062448091075158402229027934394870465263385218828377291394428136457379472068614042882377023677574906556441121956981518786507258611738390220955682885069011527118060539121269123218275044221596366778563095022134286998043143517844207545751439394569608686000027005227650480939097473775060724309346900579934823606064639663858853893429283389280690936011833783746943198535816114665907173825297201858649305280865673406400831018314127689367496491045230022124080326533626373195970061786155155273899114674245019372915535952211322654167167271234978189894360448765527975927734593317570696781038422420127031346453267215949132406298566973758222611898783138955717156826817422787284873645234144426531630392009239855485005852571880779487616946669173202309623609046888707081097925997717657669206310672433441215559213017136155156412902497205165958568206486740437835984517863843514177200361887611151904775321592234639626927467006314727817055799533080174042187476856256036697595965746661794601702115840147287174996648776699629422799738839109887607405910585862952377228510282481159679194758896985400331394307993672436267003238868153963369185498820980058352385528206477546571442713626618888536209073398007136665113798983607616823647787959006236348609078224987541875524031671779565272622927560728572440976401849555695762493209592611094215410998128164544615768508477729434553793978499473796473572318972975955405135680275342134925739826269371276308272533861323115349534726035312349452177686794490109623353594661428068656609120013145527271687966411727230561727329035301822972416806655750365029558556864141699118869463195633808788627759741739120365859791554062466154976937709416516204924225788702578477089428663947403691937603204923581702068344515764033981651699681506838591004413185127162647645823822050372914047320327959749842759251097169226612090876537035689488018435009832636538486644955170109942838074029359081073846611229698093174252039727013381853575406404178226359564470303953338807311501268705864480369184888091798912191188698261169639969946209676169676132331444582401559999570651110807438815689831830587456017160994387126240019560345330403608844733087384132826925219168435483784549181916705183470637893451216143214486044520733694248750907799812777951341631755873377341226248343107914762704688889477709945880871207835428830795064114259058110568695074978279777368574366874860153712704520350281218818921103644651669310336345704667121817925484677549787085305764309968913746993242631732997676838622056205385051084490831847875682895968200356724572065432736411046329896719538396139326720685214053318459209473224864805474317440215853563033327621491648639772456709275148410944679130962216632449381857997036904337515702371123695832214005181200964359450084686164400590312828416657049660483459186307715549076936289431849837887197549839880940221278759718363155123620786759601123662443766311014217028585201651064422433120198865301396161914666633902784221180917441448518878947262270543289491040295659688242113338329397377398894247994197721336553355700658422510579256774176927175585865592404417457625750341387950155407482966441642725051357087082178527041402190691158249016368103677149147764064028552748461978028172835458653676602316132912154985518560970313652307115964053850276649280480889634891911274597557330933552903364717539130788194078154933378929624084424523264884401722744602301413534402986898617124652153389701512276145591071447472262876481558495436117599737641358771300918877723817730062362655544303539875286544324080842922597838957143000457414567274887428008734704788585665350437861481705474071285424954067691868985833587415838950812855304737963068128447838230961251107764464377394170338428628358943951315329912952541938587499992816152163176472569399175366044622332350770482819310631336253464212886870312897456702480051639079198317724108342101663268289676238034705987136009169503433751333289006049352580330895520355385955591185242709412945939932232473815415621899491686476434694941735876718886295175378603755845124599856383682534848667098104272489199737608562833447472462549878579985598908603204064725080515260028916221281503309589899867537301663356559777628366075032100134342599646524974433451521932496040550671398217679429365932893486921396854166458150170834259365880492889593086772263207129935775841858139791327613858119919223709294209482115683677453758706105018796067122470915606305631881465867735814169326868763415789300914393938274313051544050404275702163650014091301944504864860847430796122765815948000979415336717311063873938749454646381964078979198390207210812479950224751809933560220085564253083838006978358766109704360477032143703491520277162859729707041679486706766534906496027423499339379576456629331372994108222913441066193966816183411136519248027698650863531699972171774184461199732705267482371033293186029587914746473146202710659069372498315078882261052751388200368447727526318367780365609722554812921291464932165898469944876682420360565032640978375282973958162141466613985429444635070692221017863644075383569489579764765083848692483639117698011558713789370227481817768490542019583160951911906376913959158338569525095313017975965066385699867129562390957690077945254228843077602422425847032244772931910335341565837062237278249582639183745721048451483443957833597613934863084053146225379869594989708243854887849948564363204683349863214291147090583976769087970640302302279225153383791811756947577451206059961193078319165807755040851352018690429021479044458044543867295185972227761028417646921962359075369483253751253182924500090390036062276619780581531196120994264400720121373179396572151986415775571316314437333866165075936410672812121118749692793661335985660694248919721963609268047622814995471097455507610049372166177374681834030784956254681953033875320363394032249221393469900659502917687563663560365450620728332355647064449367871453280951965749502217177136588175174940638774835977417336957672342602168214565343039451938100478250613344800075260703963698172969586872905498538492236109817381606935019780122945834657210762451922126901739284384891900439728591333764845728484644997919439899299279575163112737947628516675615364297174537801902740344161116455547280071393404398818457679957094568284737419217312067386220097640417486336383230770372504199910249710470473358915403143216644516253039126518869956730173310559372045457468497083304094275669284522981367522658618205590316292661575135307558298589013334401909791208378840840446925651399918030439790251930320016193921827819869378370109946152936935674723148194186645216131154058302048227322713600465735026669053098677606104931793397215839510232680364400764424177914340635329768119899930257135607683176422323015941902538106361563040137203485686692485023435428694703555156200363725325133735814607589483219971541039947749015898194436550205016030591729994063432285277737325167673122562086821071047544156203982279831895762181527954608830251572916807172278755079377157312353718114777776895861141241772688096709904724568242981716240188335984869792916923100388257176674071464571244726717954131824572058565846623512450577283321582648269829568766068535845667993382961579436183201188983977071859644358809504386478959975906153619811321994305277087438262741073271834912702516302183583193257393352424572260735459237741322598732847902213211854193077193528072429046851037380488922953892439410819152261753714768898288408652551688706943031621026813003421093450253028986416629472517085284582563825367215041097872775700850098155395791053046326619750901806160746771373024341710545171773539054899637005036750833464728770587468448107824762997675010368618060745345540210662150080978094013155513994053548179743903058126808009217859592488527821393197706038432773337772410641984293179097562186405273369783217605355788387189953293554619225313880977086803882429774211571389928161050326490800710486821030712442922653347248320905816332122684067300648640910744379845234185292491574865581612151009094417695111756023400172037195333692016794546791842508668103243471209848443847453037514892575787366790033773946459701606696543469881220155535930477198921326075666402753086441820655069972554803107395688568955226341283764602183327116936720354129907032858768918647987590781413331110941275855225259969946480375435801030780794396439746043197812270365032296835139776107247866126340916148114746439065968959987127632694149161821298087201609318649998958192443242759304879628051649824244482253107112294394244396971913352129826192472681809120524948861234527216193231472085700764460215529416387116984640249304644136146310535047445584922680813913360996935294271064461246364028450986003437959081246291555378467759717329276372915918831235672709810285074399936778314037646760545535182376973596029389863670705307331609415765611487656303881377735662630721984377342732503577089093417298977784921910107312974636127790453108732441127625405346480710207503175803342907618324730698198899425605069521672377386441187031078656219811542118448291503075716080907944908123199774225275045678581426066658749265435034972720106089915563025632127123373054013625358081899383696382681318440366258835491665381884552562735197677660304915896237106568908955764439674166535551791436290422239694420054910703374068792921019988134428385612453157665680292479001871936839256667152764519918184139034685233018337341536818337879447767027572011064849468178410588504084534036877579000937180486776102097649548702025628771161736108812065727004482147849112958838600174669818142090490680394219576801157246860927346596459319372616737944694118509485931219124564491816687204079461959026740925477336049361754450098289061007996040030054665627454106431036545619090882395486355886158467052377625226644342764509431013693461870118866841800598273673958469316440145379945598429301209017810476096467726524459434109900716921285650475821294948943314979774636369167082290621317817262709165371296723582620859900189170885447099115574153930144908780418284276167882032883664682135775438606431342089777019686667653802214027834823051608402609949247605497071290573078444843085244557713130880416085770196670230050604104573040116372803400822558745170011817480511196175267740410519181124962563143377948453865008555938119686096865456172305207018537760987229179080880094236953128317605232272559639726802185278829738559680250545657135703336861254301193624325882652576913501996023001863490243907507199342678140499428113971949681504681437554567156245537476035120475222004343411400087024383652333695817767339235362250279115744709563757546730677009206553123302201394836530865454008491484694363463922327061388207399045333890581321100335793663998959896133079745496572205879424243936464255560451024655562948603868844477985538957099199072625638667347476840106149240499850929049364254329723234757091374942295425776327936957300431552315547997266599969947120206490650285983348101530515876709207095291316516402041028265361928059325206723588425536395672327908028007885405119437626232349445559032290821882590374774504140864504769451744481895823475074180860618676919208132563472416051748174082256748762690729970355442245059091024811839564937649782329618206261783749696144383321966720614714105901581136165279306037383626772870092363987631875952370079560978036685440383851020807798715896298768792597957014971846889905709866054834288591371286353357427976575111949456248847240978714563667092177864773444766468107878100074909564335639414281170135572693708671925069408392316665103516515397599063949851139227344340725699448703532560675897624097575820613585397292902633716167352985465200908696383663440275093332474911033971412926807356526677492455818574492258175419081208222439584429888531631494663798869259632134076942216740475936458806247406602024556856910417835202968027710930336667246791311577144409739380018574598969037249581481148446885867087222131464495100474826638457300262575047288322825170077418849129851994219347090220654578763598988124489832944488410767901437445632396432947505781644196609689289952648325716892522327102622949581859595481814000484395800439694913451885280911914880356097573301624473621604185498084278047750914049845120503214696349848532792184107566756868892079042611737773971158418505762963052426066310265085731886588286390193549127920123032959237788306389883492957408161976188476226083549455333859449377038372477664929165990577383816157642677633211149333910355746743376730202486780790605472805883521762007565748073526966759428042155477007150019492438894794050446382285025719211450748799034888648927880343895910875772400649841088974508688677169583620626245143885727667705811812892831161068230482512272427675817351945763367649067278667923670052049843846776304249006603098582923501044626863212874973298405854617624495172410561788154614817618477541904682725398077001870154202539049067289462106655867421769191706391767334699976550039471329794275343149521775997801933467717657023103910638035021631660821019004576012954530213085334859748542704860637213752160540187138727371793767433253882905653632594794625838709377147878095714825983421468907091482926472263434174526083821020830358914277827848327985191225004519090264464500415754472085824774199039464179801912769509170723031895411449359931707979777963030725151754954060432560049341223540959281112362251486862303638935225577600495742072329090925502901566094523430864245248676591156844635626111346886956631994966960328110798596193822974630423137605809587029312962273353543681916246428158255109015830047887003055573982634527652674759327784578204556328981738714937437616081751342754036056356734751493832702590601405059581172510829850528478916173874483411355375683364116453738995341439311500275427709698824232941014386427622762490593943599118828214366956560600747141126614644478158702377430437469330349723337851058397887307625830323391661441940462040263006436567949449881789084385425897787670081213359442873978460598904418401269843862367336420938093567756246507907936282361202532578299887846944561245791435229098734744301877594939810245994781376583965629099300933352343839373137493783387158800101466649960726218665912591210885736951131690438539319545189277446235654390781574194873993307992003718790729223478692570837486349293677041753880434347908862470351249210423401466878659300241939440170100613853678608178675677045854257031781714610824785265324350769646373598345146012809979445466625515889209138290456087072220693119464014060790347407430766317993938782484289955250737139416011661195709942706140739249128001858797690101570582592509977656433364905947749199671839917276977224513501031290851574039315356758052091900369686628280358036478075290630145099459178703501911963899182942037379214867006646235250096828480198946822464556797681363112654971218618868697128995007833383337886305167389913092520756546588393185668529958097271173230936290590184265940722829227800378808321286108862388787286496585156845331236888876417525263822447415218633484211894775867019177720994349828571976311116643817841737533728800697533148570254951327590284160172082516642942737796210057524822547630179206974666958436760592230732821878657668483810311448931929101542500245915220825094835421344901964918056836176602576042450950561871678687620688492755118265611895055922793714054133867215592807493802846036219467258173132716164233457220868473731211238890824171187910413368741455489624103932254141436482819029971118734944154723379424333445570212654051163415333628273073078099750638814143908406827216281593565264790431331737401230849557501811109089181313235363603482307188974465945601743654210700915223938078789187445182029074010301848106019697377961063950411279896370698203468576058472065145146575974995070934021966904637080895417478941258126404821745683152339833191704156943921289664890280392579459385398482749129069359961633501299215481442623333513938158132816103349589426287436017848755432204859866515014832132028192300328636188617953546302913474488717307010407265861982038430019374221971927021526321647292509261900242070013874622067771766400344043555345767631156179959631048188178639046783479976778029654230732999388824175622867265517922443551468184247451121376077153053386077645062575305063752168061874580389793873988784351710207039084044669265315174997001237689562596533931679700734586315341881068860647474185561581371779255970222623516512265519230647554694628323993290882956804665142817430539976950208670807426417940774398433096593471787764907800460022533179646410413009735758604377466142210704083643207198053163558260453949643184459455389613908465515121460892277173317944373928147007777307331068938957906467805494968078603427973410646575376164552919984237023277738890290935074711123383018481100748593642492766322087544663170944963494467215303817946125099059761954599511101675784041924318810755968150572899947616102139205702644531714586521583026156927482468444501661262392691543011186961911792721507249467066360790603987740819365417280443341404317256999979703501032987595477589318745810973000943321055810089714947719112871203178333434682585977596682208429635755979071220216906316619128860939320083048015646078223253528834527513428974339815464857053808613885882793697155697218555120559600615454897390897855369207685406073821013930679416191613172447394264139398042050511576341772408511912121312166999398830345694942007323026921142435597906563503001033868230132457708239521738485452542074755838660217462005166996721564552112304821076406458456038890509015935193761008209543992185840301035003810393001199818034695654456933939312600524463883361803155825685175688642434967208456016066334712544967408689677355086535141570678697878264527401499169301153019938849845170831562627432821952275907112278337646264543822992517786072819656609428971690815670500075717795186746580728416987577899014754236737862193007039054178241608707322788251574779201832703877518330610675599905052223782997163706361789034939760821048656532869696620193507381717861852780329640232729338357712453964661674751007507171019655093770664468837217726779081131184735278096494209090474467544860905475813277255330511701335077690203341575199109427965233395705097541743258722500949319087017207440863924350183858678011534006281645622738889023838087848563297985034440171357589987992453947381957258705535060740728186715868950158237778523742771440633257144268543918666275129014660657924719146627728838210756804828000310349054708134404983406009657866908702726308230431847038450111912828005715479655459584728915127239884355534741812101899488022062606662981866866660793333906357054059133571506249066291520031306526250021614267641804193725581270832395265600630881134581267855646066963286735912568527875534709058158358920066111451645008085128094215852612742350326266137028937999368274420506827286547446907046732847498533294041407109016819869124317677638015517438756234533832436736419112301739577057779329667412706761854254498900270047686401920605849141275174753542054863036578394049434965029581209372776720500479249435463551139904621616457768862368055014969929919559013468110847711957305180380866488253628484886769426286123492401336167851757743221673246231229512750081978796906331147356990723291148994347671059542005041943514982849767635827694427969114433360908715596744661927311506876314446508848488497647624969406906917043788438740865601839435453604636421248048995921656068505246057521859798464048206893456716497548451615667454199492276156107860447361901219317238316621257171121725037637213917844161656927633555787378114411061260274555704815881054522213504479730856872561092390379107111953733685126483553973923708748383642693534170244497550740986603214416600815316521080902692113500505008358179062570191567580252828483422289866582506536928308812143527450374976887960769787427384188525581808933509918289440921638083097248760127269519597437272288738669735015263782317141033835176617714177561624263700348474350315173722559619664594914139950228375911011639940903656134915186190216366133978518473496139725321735555723021633625552136308992207442882751024977927799197560452698643575008514021084686506008818161783358936780322854017901143855800766881077435933125210800036980230824315728402022323320072962657694804166827673482731545215860509104520106294703810111283836095190018017692297562565611016100298942540861921126194617607451479118689531836492842240507881075126544918240186726720209109113831606029522843103539910232062975790977100904021449880751577318487533622349538303826253308598046159470749403420188272393735912219966478505613894604485437946678739435710154308736227809756339560658952161190325423261685251280095213929107268780269902086756365345336348486321968760212842145678973678946543331436256984919304473450785263857971230002594354117908412936094431205014660003460103174445546208471656649977617371999640944804504828218551975592845969169852417932833408609473768635779819315773415014553979213916455944607147493906427102875840801168974661436279316767133599934427401002087202409119236853695310671134057725349758303577622914356981946302023039957651314446789756940715751884080860745279271730015621001850305548790458459201834814218318109668244200190158081316673348578836263657455653686798136032782281134343731111891081637926082200877378078187027905570470672500057077559303515278581377610723636488603997345782345224215961353906061530272398120043554789470859724967366986444036895935364686686792391319224421551616833247136347552449564298261344101893777854394210196526942382111366596181353795858050706081699464923924892077309755395248604126192076463169307047284400462370353189898466854342943946449822332922162770589107049746065255815073743450243426213365778647039263603540142534460860143039281709098299122610200473307610792724538650269359064028025377591891439636228324644422842332094530607932351777475837077438169797247604412974049942120367690843936421488253951310175964214366190861808136728819454327703192907698790808895341847769393236176561464381178388689549740351553304291436436962852500677685853780707853019142498364936661458577391485344352320830532793571177318021414189256282429228228890566888451044901738572426374433714098037920783899377133025227713364525312285056456884168220239955778847033224758530357308772141115412404258515100950070996066777970980968524159846484575348893966697825985266824859037296919768890679276132394478183905093678939053175624709587792700636191636862659662770864200373260229588824041267479552767232667122508143517125956483306473017862336501530698328677099872787298572319591621304820299881095762800733012837572731199450219961194666138207810393763303357683871929953603416333738837545235798495022721642561564683647694848655099996043042035291115673715620899615642037891902108073236877490534281689157498272099402237545957379020859717296461948511005902763031501735781347255645992289779603654123467431443191849821508780239995815034766221041622983777373872954646540403654368858212851287629558072236177186927603119206401333833302422377686938556811285598990532809727483349179990717520392994708497524956585932274640870599923541357803632280672671828512883055298614143316112520619093817216513314899583649738715248358537877625572778832641380317205040640922758342801500420208251600827650087351095913358131465014291944175303699398035155922248675524506648266365299558388677062405368370386542982432458743184051284617881332188697718225145146087243543678427720589986238122904542964552456776160174682193579132123639056884714951321248326906135804017119356472920700948548328717452437374781423931432541464090663546186474812307631356076208819671170874399911213227641731414828509442607941727480699640991466868903178887030361446261437287981759674342801761066603665550893960544190993532288164622364373652244068977589518172706752941799464814818364268645612944146818778802585256608942026637175580164503892066614277896319537360627769860491071921990450390941511483613382701225734198873825267426877297136696009081552285936807647576432380233000246136361397735409957334435793426898845573290294405069360780181114171145747144931630969727476741818035861597333430449754430326764619877820608334444656694830817691283052315024160847176603090188079711536497885260512900158467099546660433395729120286460691272507439402213061254072693032663949166309638210231348365047702586350707943722511087997199329818904065733986015097441503707715794205563396113050818619394319933101567636088242630129675101684307474183622575290665059739077526619252686266315544668017406806583909693695889492914430630341931742258842549194618395963595159118791635635993509488550159546203983507896050854075857406183405385566376443104375507114311143492559475938443418221522924479084433747808369190975517687543615241632221689353249421408957822462171287338518237521268987980472573102868684699292708829373083533518185994031844381670315383446460306669393878410133299114946250710092511656604555732939329166120176157199057244949235703791463758727617837049841843575321434471795621969575233793575302144012978178776404520302161691647192583945768765362586202736274195642714235446633715162498212696988072962980026906939448388441046591721910914458894661958423628462451221895131596853902883356920140947366034219861517293443010144926226695933285682983148564484134122238788664831139088365854928809582982995380709555323960012899213517515425128550319840776324486526788123227129741222892410988576120909873410225102367579980074560745838583463142680141572162747203032520526110598628982612335780641340659421972792922155104886501896611206916461193932247947483140454822905632842689469773782725525667848372025374913825428081197444568257340280115390657527116461041926221628471875092438224855117012207653637387048636169039864702821406719430314983088327490323865044882306023701074606470774926191723848606931431656561558000081897447408844958293488862342689911770681848640623094461368773076918354662119813289864155101724011264681291956168580130428421196584381174791607149131358014650908937746776798939486119665084229425720936646268632857612895990004088938204611296835406098155073601494739368957491004064013115315767304776598473394834565666603596029860517327536499740563482299340115957336773770859660764329525527638709725757596799601057648390197900294133013563172893278250815073135405973320744332178590581488105065958758577329428867726461172625667670325190687007650239854515511018186575398174447080436096598847342277227007695629001970408463893659858489747413864008058373433463220369452427023469100577325487394111356494997619366453719615545583840638027778594587885344702261300784562498574940500686195261078227168827075394070500839837130244069349602466256625402525155930651642356445939273822717862915073248846260910361100777081373906753580461545226638794561728642028159062974128277425001944683629993303898824446223159841000203157451880273340498069120913968792210114384686098938660752965160439884492187376000096666162085605654605752432665924501946661493277176170284695420458685102223259174244123064066392876366312124834707000656836543668915284186893466811134923328594338823451199693128137003693091986401435726916705828503872426674670645062249469657886821692044151068817669591841285986938444269685348589010595696996431685015736322292242704978919145762822734283160379408766021597979724723708165530136375823575813004772574220950852306983557707677911018763201394011209520336246501879785020566958242786220631384180781047870032003006657465689733742592287169954729207684453500388346177532268649730521683576891533765593648124929206160591305239016004498387148189394440948775777679121268626982550309310659367891903124816714183181727588625823739872717325311839227026615139261726385264139675728093983345099035264167503850481437759865446828714347217225484218075088933290015841685932458316309119500273980300682278204459273948808804188548616430661345397715902801816926738527776742897702939808690841325769027160244165945118976998228818729161398832463610049409221486194223603918717316685749553936976071891942398364199134418856308165688667445781121061023507914047799129843813239924174998730226751496545212778697247283553616596319605725148608674797355538207699559422084882224083995743730960650472852655587279420885737471646789576115026112906063035928373639859762913740700295407363368471726924925241263133872609101214362620633005748829775673530895938480275604282835934251467372257312854157180860007504316522050916496807143794914456475410216446240926789127363399652413052565758844006041992726818941439000250020428243287321345816426823745985001734024452802076089515761212229648214240890542962568404109877304008847905973415321454380605980786335179954948693796029043730344144275065894386708541630874062689543898588703852304904309028017027933543060430055841622503427099652000056051821867051766870489128230415273903851012057336443404746102020877475838649396374269168475890825416112023994758422218032816650791031064366654442373545183918009132040856413420880703485129811989585853232388015406717894097349991210673917989689322429382149511765056603558933561350896968562327149422569294862086417940848089467164750783164221542575132215535469036417546068731248497913066558513983703423317965505909452147676317583035561092303709888503399559351413908821221073400416350058142059611924423694391681165197281327804412964506226689535996104000074584104962351382038861810350944907044624035908461115938068826634229607839246677988998728377431052435019803743186887474301321142044652452461593795527208339796764835483567680052890105377234084858663487001987019858609078122568095037010611713675961940586844356622666545545973097320962432939619402680525849180778957877321071865803523044907144502836374497422325943261399074330011943982652163074428649704466981393419845213875643360864654043361875741887855739569419693634841666667894846778304828106713208902469733630488781686216005080421663537307198016166560394370925896899408289825399568464157206988239216085850076441479379027671614525852572339670616869529723280381785630143939388768809984011778981102962903625362942924901262350499365161334268789684670927590935210488156808261622345906856193252774633969774604978424611475667246621432732959130662939201342631701868133189830037537956195863438605431849350389952727382289993919433436023069034582060611499829434076047589840105502018624770623371602473507176288606411419910995116731559201682914501073639341979176925692592089255923555671354041026584049019314884682239991796766940757538187549362747677533339748154470982813292833075255454728189332985861382551534901099073932828701040270216701527982734076918492858614902561029685233009446006129900222395731773604029802055325078947192123933666238737653239861336742226381018073315256087600132062196283074034700449695904257378972494318741514028055727099296485771451062923316059303469060835817453370703424643110485413863133947590253681861435208523541571686930489248094111890727620426666149601602555121284970201898124639899134435343389994902585404754580567629446438895811308437696203346627805261023554687212179237141323133880796980346503802371088092603037013113171078523737062419279402125490398312897187873681165578400702344186136764557486604164079064917265618207130805799775097104334844314777445715590002889486711779192508463192086172532103897170901766443656873278764725493601320586449056946339399006990836235176057729820263284847238237131722904308036408619112263879856293955744073117180964911617470610514844527779172682340384310695257793140463107999312134570413333684781412384816757430574767575106441015833850919207516763687229173289708677975491539407568688134369913506023562742549221213569198413743575597984124561314149449946658499606337303765687040408660419202452422216302857477661232053189245724862960577015885501649437276533874116253033340054422471982683355429822277103586326851292421794333092170480936846873917454235081860795084740611399667077934787542465527091336917266395556528209394266666212057058873167142967546363392664083742255386220145988144086257899983193165240929409097644231042593051438269376375576198275067287237311520024893878798218979079264053750425176707158803998722075558730915902477328812572515445243487090788143474659750874151613782997258212473750647827256365221205239358893332289406991308219847508021729182640178835242535623362577677084988686784126790929728749069758288107083134276469600641719380157031831831945236772303020979437918577653373911281990724415073964202623813218442695897342797233127527225150566505492514989037638259183275033659077128624896268553466777649637211300758289211940611914382431622808708190864973545119174925486675961436059871237623524131955025689287498132588030821390710683719455714836436874074831441036670132013586204843504230285090557861895121016250269315228637674434314668661787473677967220286807590486629282821484613254976436877517193548316890342245989622325391556402595482324870490041317024767646406109278770723968105775286158654301049547915579467266608219789768079385349026349313094875846165762704028243356678115557021653464671438666420887453945122191889100997202094393944681676995161427889041674943005391381059515739295537076276667286872027240754441761288161859341181178194313304536407298211191326567755049029178616486035295304140731477833075102205027613319446561754715834246055543077795308974823300655358885404745634398810267104531984943803880447974518555921707918907270151412465644647272996427189222394054640354470418326179430987736627248212259154524987283652497770420225262524368444941378992538885702325103832369598758735156470301715385118195700655609304632881912408024089833692648757030992999521582545888079901637730255220328751964714817628547637991391070805806817449622510640187051684551969858719918686839195773012433130736837552383433172399731361668494211123962823720527854830679892830936660319005937585183968363557102499224271322994693747683004095465944868035986752279759525827222556310690596599707115229127956783912399724527702645276362413939211725170868442274105105918610422939586368604330055635525698306146019278399466890965541216397136631230243196392631120391378106153429461438350673095569393491318787044522673595215192704654355561090522170775013338561489064931324588723333703402736597240369016059965940965745990835965428127037112319791644242834832898141645443614149892054470122285991990216427709253419628808521697743050113879416264371151034566753120213493787666827447186178733856407495196352954687287107954801047901692113327030249137964768502747277911428287081344646418644977338534279034303078704343167729841714805915307182101093288688659732088145472805539274816189741064107212475478605662036084426837803407305298185223218831411436401071158478316535258216875364064517827192111207198775896849578732641708643728237085211612485348625212490959989054105405167655103404914617091855088240874301996634913685527004548793948913827204742834502721087836107967396122902860670157207267533345984254906399554299462437127551142740201440136136787276528710458146157569068750295982266346397858138480202429838066854735644345918602837768956492835904800017052613811842260277472272971135185133859442335531831015180371164445597262029223240553644925506204398926266195177137007909606961806668923190436781484792591359428415162699181914593695798611275326787541004575590534257412411341313779542559113296578160100090343740124079920253282306487117336280174270073968300761624403264139142072410983701813857513578641888631196237294112065071649568750326985521125693635054096297199926904414533316082615233154597221416592387574346030039873790533539846009825088016146043711332204017380979702395382427376144742385212438654773859422339178802692024059976804099377541493279358060027096039031019441825650708831594650526935024912660811292944454703478613597838568030532276416757943807350589049476342690976397917847832729350118316988414910856974475527855868385517705688672641418223462291800340497862147938664844525120756196737131298250549429348433408864010174588161154369582287448938496590248968712671710773030910410634639412253412779579304406912239433020910802740798354123210043843727592716884632946881983212554503937501349208551886843513331916449600546311656592109743048106927704595371298828036208629203863419547265216997933283173446053765410705463005901024794918233449808403285870445428143692406313795451019553805294618200537695944342945431168494446697657246843479398926268823355249568947953689089758452093961550825849754118367287967048555580889551816325400190413780783890267447691853171600460042694269033425264597363876028646202035917237070157807046215372743173903729455126731584724586722172822899193397023353245365217916461230561581422091045320724352986919231284979174367638765923257686692484638217819116562238340890154822072415579216588450104235651823821084900992255874356125728815810370863662724540432337376638271367157809049927684590565961850130270737018175991160625947252422470071085840666141510019736852046486275181431614968856012200753186596057621605792977887629588995306735796529834688564774378507537379100530231832777739679181123664502014857682251385499990045226757403010945008625677009553127201066177281086375710468370275890216165315205492971111185904555673363015274159227578006012924781843234098968805833655049736508299718507028994930702923168499203004348811675632168065996709985601642977920455781385428302544431920805876542247155844389741151489895170179062470916186949827067203233162838370704900696431474750783313903531231689828440405624655372702009978384998909587625647530806632157807692270227783162530753697528018908051674405409999824074412050055220070552481294762545910888739176445343784487565060092101104572413234776061865062460922143720565890142154961225676100542643989976093277188554928780401854347780912339097884684307018082624134904304090942488471420063377027304481607796204345011987530194025358772908308465403152047641582923983713640191130615747627732197602777474462692755399662080547434535907393683885161066704423574766437132796175789230040428323149039537328691386647290340882914331825701847483219734317583868492837498137791696173870279224847112204698438353784710886088710187454099331843756402108527533513427938724254681966226987647052165406283849881322034974542351796060064981594459836342290769190819627073264215756855911943060355391303740448721922087168540309324979580999645147199185940528327047279008752844390000232049391368123118502929487500634425643146574223137034540344078567553744531449668986664483043143445028918012167545758301069126461334041854181674908988963811467263811704650608969935582076198737010389687221329955866244447297037065161575450018003807797628501413672692526216795472624146106304077506051842044961650270675617615720679545080375429968192378876803833495821683263499590403908035793886438990694414443147801458942113634269862529813007448518656334981175965619626804120548371663208319289867707399855072962926246395151120755603818554874355496767494164379969800902417692295164853207473481365210817973813655550826498199432989365197787722578653009071472198919964030306350029251797117109027773100818616411395234425721335616382484508066938889272906237700153089040319114927477451735295524229097978423607565535758565932182829544019930655193703811904055058592635643126786279791367980653521231151731759397297308060463609888184996469701841953433312122318805666093295867931866826416310676421692930001087762250218035526084747279433757461627316051114787874993433154810613546300953762369870630793490324841150206235593230303992839989219324526136248793266783215810332192796708884177657573912241163108617391502767712513910406155102086604409211645757203977265573024488291278037958261272988571793117818666796223893089746475106979937268456965842190521329335402761258182279482057549427675134129917141479369261662364385979882341665659608901049230657370735314077273919037724520817068713482782934079824225819493251436366815963562138906202514226746909303308754939128967088450671635069051324387997375031721852504443374829003518016789284577418711968491995860965915381651539412078048774063173324338390080062334238043539929208381855903891921461979013638178144397466980764456297289142123642571482641585874479080348265999054364923045672400958721744735192173165601643899534847411333286547973438353044644638263383319875977147930753108400106826931965057243820059668055588443174356268426058599676805074130414059487908934194858577916495346667215574882943492863813491227029746880413922322698589152195455652132349473015499133974401115875650318703402328209152299437954212568723627451036468227118701147895063763137894852305403627906015193552942547990016330696523094373586055066128834483603818362678071348347394603076152306003590449102443121767123707351661550520891735055147471033820326282930343007424487415400940719390162960490819036821607080974470324144143895292997907465223108148853561745327952865024363594554928035919615294876473961707381744775314166341753356556133697712917494219824943296443602317010697947832857275973807940102446009812881388444828411697603474049328284496772498261234081518366515393020841358732155510578387000563401693198190562104550917282280057918124548251824332565401527406904343404613081851441298773495602344838024149112776596224699542585557499016826451748550070315502299750945837025508634948810702140828180765571596564386241313989383860280230554056065103639034628533964733638691138065858413419262377476650096077271361637275423126973068753733145444325045804951972934974684042907527627453637053483133357353967810767867551784930869414929131581165877353246462689773514550897056661840534942668960358461313664593763916970489105699070179125072430333694464838225991181556033337163113069628517835881428629316955348962093088361632421562645832958639823977063693571627731504619617418594286169857401447737578511347802831751453491623207917742256564014954480870299463991862280897354132808516227323361035865881381240046155200814899212028321312515670149458653097262481114448827440153633593054934094936387510222161177245837740394027983050446675221354292742403545602795722447022438437153985307596016211596233506049399394743293655614720679476899389373450317494303266144437042084230530905938927410354077311273891582930656029030020970086876621498620910639014941443669172292110988263643167205229221498045158928022219061271399887994337772413263866657243800783092771794521118907311731777624716940153223597920578083259817254423186792377725109442400462436134034604118464743857641382219264262801464808855137067938873384935342752791755624066816063229911822809708620208867052738126367527414060627679905490779858975170285545304453475040085914504792843297541079738896680215465475492255830187113960471870715701148025810049688336876707518655698334084713913900869905409887952478549841653811960167653263867002224943690714338233523653228569134256058515259997076582547500939003880816077353523486783521893732940647350653080776461518009466422166713293529697651351772620071367171580271006369543507409987968143493460002768267201104998890220970056915052951600417441381355929330703912000408764037794083407001179097500493651078394472386077494852510565879188847851598435364783022098091298750103758394616748467008786311617232959294882656254262019317274732520291989623820520138182166684133657599416166277229476612848493172647188711091648191885183931372485322231074763650597920370916564943985232275339581136861130530704848681653740041546668815655445901838655138384683040722500640258125584574339439754113687751339948125443960671955294573572931538705022920964591113290056387509522203901233870303954965753602515647689377850254266423516455296408035399320029660297978279955471995382266183849912431645711612727103442534550845705576650206879710137265013236202528971460789831237306600260323270479906017935496094631502270122730318453508752876338495143579843190003766582581641389282144754659021321130731032899102906934756265757395193862484661783351004521945443180655526020834689397388974063047127123567199488118536227215644200342167438905837448955924606847709617559554423242846801619836834727018855340125018850544330765601749074253735794790640916842995548716640829958041526493126868854523418783502927980081589848013406112030825699355339318173396310182334503200451666980540264748491264589811461436682525457646768623323334765317988775273019651687798447307802387801288075108654968498010848513494033280049933516085722714092092649839007586754352058973199702690304309357218254469913168357174377726731908746945050163442749905905514293596505968170198859686018871845142670927866408513494531284807945450263511590303367041341955097827382407801159313088317888100065808775732766278825784817250738065074940333195110318717491095138170755052048117954307591852359972198229673274716758963267926930030724292210863841060284917756796647537386334378887443349899943668653792445766927190289876116815511863171893466820291450024001705645633673805153984749647157296570116198108609667874180502925143543445428429276881580818254664274070285425878682136209692814476889886713033332262029681007236198227451936974957520517785939600450847306581646153297528304167441446149177671726124801080278867451339158489763986259372956675440102994921092238225904095689901154927623945492044231503906798213940658173723804595126363118556218003711421411175810479523512712729099624742565211799154531188322872508286547421145934496202635836351259313664746717804870553591935887711670127853291672602538856516235176308540366578829865129419580113653286573773478799960162072152653663523435873839316041396960788380309861903487074387565750848836333007027213431262720312368805624742666730930525852136775706664270744307282557338287843390324020240497903247923528939827685302337849896375175271774688414123043176997180059519295739353302838251154143470118536770897459049403421694339662374052074875921704381697407374410764500885577707301929974677892465258773787794698013352913806666522430026074884648934223713730592401101758095522215967016727761110681713904580105392071042501301591813404767921136535752012980952854130684565862053936242706354095177157907459111182023721436608932023518472934006329429965385637310551181178573489773807901380069130414475415846974837611830162619398646325489311538476869800532911245121105764554256492934638598714794685818636966497397173626934083878955735034901933103945687911852394582754097476463914674355222214958912568492069062607144845182796704948913972690087121382899318193689167709322285347105068622875868946057128756895291586732932484318954286250213342463597710381738127206806429105328104905755697986600468846722656046859170932209787917850009704458004362270456764053518333073280926872824963752251665591191126468879512916145982103327019502627156232782449956057072057913955093759812392761829445625902567105800140445243995315792525377006330075234562548195305358828286588676839849866382400779860805077920804665328094585815435182547046090907970211784566060992016935073340270136508646262060519301830862784009705618110922309143700494738303055557249880511028848941218454977947061867906539097849189354682858975056919475623908789421066951138514483085115074689602436715624318042146099196584158669478289569494576599250108066079222419542271615952834304433059598377945293949646336154758323129498103029634235183127787178458257964920668086609338539860616375153776878402273084163114213971882353476531889213050943214939593567276094438529281268925375999357041485177434028686350558917706787598826800486879171043707309207392677322897935257953483000848781828549350785437219543873131264051227360231955903558520636128078473363802963452335282862494799153466040393259955543643206967126152045491676411755071302272783348642963163007223824269032711129345195152315935303521108554861342127339561028943745364363738858404424765233605560195465176659375405969482525352264812166241206516291829671659316087607427470535790678730757669929079530061533483856651184059775009057627091970335447147475843943686007547963013420725503806443510523465424482077163433849987651306317026375445814123013024655841351503780378674297811001504823141553024575434287366351941742561509705231455418032250557916581589240669873604332507524853997717738707933907979786679587661094079901132489640877991735683213949860515637481196368524006429104149234162783703083129924867510394007241406892250464102066398608526575043935052133773235277856048261301409123500991677257364878479251775576735107092266112247547092933278031326630467107989674801970887334574201723811370599552375507578245019938353145243076708835558124855463992509837062590611401576600750496149139393850752525620782334335655277314144796714900350073351987507447400354376000125025477195559290152320942751532958325795345863853276804848020405408073400900264982040638184734101543634574427368132549603486411213260246963228542358696939501011367848987371257241246007948010722067183682267582210829667858683376459826017854240653729526652458592713792177803753791829757843753094076207189868620150676051597960255741747161908781015113044044896996104887317268670744969708300037035152422325048474689004973024233523036398509379238898935376722530212029429254907443585757669196640477946443194427282245626209630035652494117501518335493779080669448413760567362385097672606552608987265004841742216309674285580735928408359727118437269146108325582922745918927489837723934139286303089579319914142010589892465141234429871796811055011005949601824341756683331713485820543174756057373518109341381292833361105127253419228929465856684150033788318460562903009837099255155216559696150551984498951156435981299819022267960213098552871048931370598078089577355875897764012318971640786656761035207113156110750178536855825176671004206781431635353609022491522016582818359746691956419158260591511374139126585908123202955334371120708182748782963480062062178030280035406217582327616044898712421979620624974860485832078276562910007668649017328296077685032146333179273609905514960500188533819003901509378796982981963474341279617921868684600098418690500209975943376160429261269890613609388506755996676387345680585719046802271231100300367788981469693647904078015724290036617429982383599235656703077789714459994948457278522273554039094000657793701443245533972223750574766340155543947682605770750094591872128149885187790155168447473613495080739842532346304061775066551112506330445075713365358203153377713392978089906777767284773582982721338182750960695720723053789153448140228719471513444068230659616891443707741519169707451616952040937574785331576456999335055077788373174014615951860410339110260346375052776275552262225366709042374675062828497449337381695585959454779532635608245570530604154668513793119161496306191023820176000210447080834528309719821812989403788236813314095889570468750189688446185050306725099517527259285188940820286433370975444808050280071158990386146725204914265274520108129642652346020507482197038337533007601947486916393147304345001866675288503905300529685010435668746213520609722511569517872801612227601731012206676155326287506283602837426483989198444199672368437869966092818449080781852141843249148255476657169827849009349646491876380476352135406503629397457362384557026611222459639700957132302240308228319755015164951272133147053241680181928107024014831360982136710589144029868617033255546387258851631157670903075538620443532712685353158056070528156491823853551625803125156382314497075912362687728298124889246304612625670990837539780050378109399648286578599462539656585695172055075336137161871537214933306346140857477871293062780002697224177364534264320254142790956582887703892602960901218899666369728061061133582598427684760480527074609883569042095887402617678130005152133500117945729809285529759978464629261119888328430686670218655120068658512619228082827513686115869861550694747004738785506883423434122121371669601656925253602162844306254769016522618077419883204902627253817819624764198546644284388813896900383257170430733250792044779949563209991865972607056993820472092840155545478943348460356204135420763930284958115946113830496160885305408226251732500456138230331410746269360026376140406200535399435308856299728276080053783769672977193327945421141193184339389621753736333069335597320905872930594600966084173712438194566932982267913551670281793544085636753337615865010652615675267120107781751588214369656456268725297331544501468982622536010094033249857306397254017011376418461436624346296520592004417947366223350055072590822623401738827757016032798056852701931659532302720154527343244035751290094966662843944585979947706929438895672305958302430684558824572395024282396799671722249689285300627899142283150862078628067353788829134883964554452434058945123175945511502440083117983343237456314502490009352308866726287956552630948480458827997153274881345303474312260835066227563727065931603989242309773659322896480204218029977063561133127395208767885959198990573443953989790525360453502620890369994764702936899568208909355041983014854044582045945740106376107148715249586800325886354003988995339158183885182150283209873329655684181776760794310634630907715279017199583705302329823955537987821968163800529889618606401235094926827882291950340566380502481394043574584416658415469283543187797650888778387217074737148270114488818762147690161251681789192714470941615746223366165324128187381454105160354136327002498919552382712861010800451733459713063059049078189837536251924587115304264285990608175092256654825805614109779074683147980582222130103049690903053442292142230350577073345708721891646077030504126711469291001078093601180800444411165886288589483819935271388836809106256677937476325709077736129219635607515496554857001567528069779793049314909583839326379774014878223024374193490697517074044704626072944007991728390834457920933632084055897194218658465784738583050513620657190345930467801122936575906183528329560611340648228432607525444681829602843500771656094159032526885594197106408162191098121266876592454851895179277417812118457908574723431579312720391858216411090163322182575502790007629445751307727457509560677080315625215089605062368573573859736084058565198462237779306081194130661579543864936629630556998992586573803061105633536196386933805173852711849520221216161674500206662730989940837319304322857515161428631453062480501210480984975601286659873741833681069594135952134508372321808821720147486638556329031474236011317231931329968453271456956458400408165562062185469276906303438740161684790953678326483268018876461242391351634588438796652955725451202335062847876379938067217572234532610709508138694255878765268255325308028793324833431114688252880306405045652495775156683207528256415486226573275766365718480171271255726010590064013425715292066780763343080414742305823965106898490093941148092510685113824940878242184461230557226486560512307568626085524993565250053441448554062642838421902782995223362544719189104703210411468565978661220616995266249425358990539107752626786584823986117893024723625605958963935353905747680065928522739987900886681093050869756128669566511262988433571625717625697599766964509972314287025681896600314668210074371797719747342500566989061317549979476560554135793026070767343698203473896422936518583389965788747472131499036710625169066454323825592259187755914246892103459358431894326251627806915639956396316728228202317696136594823824060337374385808145982203232139408255552892139142465659314452968180553790762055696841675126868783609850847013016265193746434675731612504275717069638286994792846349965213278539096147654149591348434447154657508992060729587841772066408737422575612244209261539632944310308118649063262074607971212501345112728812437900018034663657639180183712941834587136132373620119460851928714444069363298171423933102983359320778775125563597399397376942885255974315379450503070806474493786760890801025443569470534715963555451665977931084033925796892916996162536728506754478444158987708169744413863834640234292255050827042911073515044919876927995816978021161630889288126126805600330853051138832550976961827934868601022710134643109683533133655001808651849056057715666771654625568520603671925638297741105394152397037822119973923257506783351856136635590794366834021271662349686480546189590957535681467821523732850866610379063874653032446577245040222133266342221128587966148485764019103101298649856319971324262833818170553841009114010618378494659224335803189059666922250991026331766349351042260828126101508036034007637434168223081144669017191883125374243816082679363059373273021616202679576429498289449293746889653161174382072201481266113870738340942685559049515247035850177106927247899799992008714484454176007556773247812670230763153020238031126813177847402482597452748463752227318730665560048483959294471813573518513524543092066379508093222994248597544143079714299703049024670351319546798496089529136561969392217560316407573332464976908439015186561114644216620251356866466386826828026558975337479561152902018986362162753314209183102787011464948985933675894081056912920113657967580189252816044647053756090351049934199003997123143856065352047732163382902350535587186494831710311734699100721688177524684481711582060564462256317311471290403896616205786086772820635313508674280431879345706411449252027678475636853115610513843730368836373604819041411910090225364934854583069130144409513539808413271769592815630198116326947968280560758777317322967100887132572138152402452234768769525163115302467960496787415949624250681455401640232114221826411417245902022075285569702016892426647430905399306773224952777362834215122765357508866506587973597201227091894178627944113476760426934955283770634098123643147228471420527193434045856816099634463044169646000664243681509489635553505881508723050526498371130408603107958384041248614157774439519806206929647892221966063698832071020541931704957536786916181771807027181512295266262433171971391249859816636410876310886380065048037782113323542489138771983340872207266778328404268367427716231500300865536439208331151356272934130183511521485236780556775541530768412675707288470667875737328244973386578189232520559196588282938717443075259745398314178883358210483878029396753730887779262886880186786093357334913069042613445980281770680823246445060359312893606125868304410399415175109397983309658807380623795758061562171769145700729779644294765450872828097189371220553363197080582273030337500059015411357295370041953049855202944714176650069446577507801199572931844301642944682983591201058247307880249662456964830424030683256091714936355052629163145912929366222974568067302975824427380686146650167762708307083194806246759889227128619746996960114642788368733260097569337784487810094752138460867771559040189171341051818612507684654130787590678755822449197540227209648237809512566410977718194301787724548124955212613652863991120308447616149801836351536745512127410072464061821682129690731760070646559401360639743680712806021615394413812197227799161166930533457041889742976621035242026211961524779226780773808918829793666427415479626608012363947733376982206769803776382519068774784618673162564398905468104677461912102847685226170526801112400995478753611852605558328242057854744618797170867909317442455701673271700049692412784650945125103966397162800605453985765184717063991288260112232782616030431500261119350971175097075173093127023330601358824361095750854531022582865480615080728587916351174649666495880625076812026654966118249301427224254399375549987920317093515223142505830230425950736364439878517565607801913214813786442333914940391010127714439001224436613387987449379386019946578868281077860755735893583879910709596099203213010440727268430707734225151188955174668153458999229153989302923767545583899304903136349141452101281127781881411071623525750171107644546081523906465155062814138621564743676219582313321116232917900630155121444525986004538518647518325049407480083527569048566265486407905582118924734440267419474563667226444847554090104365825919416757898239594797495779896899536988546992426457770227281153478368974960464917357410649888071460688870614093389629994116687098016993082406852216963007830961782481207817979806764066140908668595138694930340216606323265629515708633480236787160617573476905130736003060886813586092464331648357869463864007818903743686399500907674980399401191727174681698107332724046697555296584855444156501358477403659002933710835674935721861009116673499168890465537475730775720063256780167926849621609851709038962193286257580368129370493515895451194451268757810930730200936703989358955032348689015758354244281354330890647537355629456261953501044178257292262862113725812119088233032503162118550678047650071135641737505001020542447135230422287981250639774018468118799834337926132426401285442365671138382736591121078365463258854760390773634940982387053204918140433409726557518931271485061371276464660365516803242747607874309682398299771628472580411824836685608667369215198829806505502433306598878671151663256923590283958750543300972526128735131530871796479979483777626341423294337307280555026260487454587841360626532576099625720061668794193664550764687560290295933889551539591667533808053934425376034849730771198740354487523293044469467598109884762600934241013464644386013936288899103024247252014993192673779877417189993523017711165136531275364392122988959011158063996849327340431823534856436859470107496533683725558324808669713810666603172837642388195422147795831123749476505997484122034078353661942356781726102614832587638657385230832151545494639720940802795399872181763909226306054554202198678754184881177475710248096475303689410420766481621638294917766091947728783099220214084013603397303546445598059174831946267905010089069407309074943302928377122569857370542260858568880811176733418828782610143580953193412835977736379206501506231653102832340716989005110183574154460795015997296386605521745584954071597125913194641607113681689570058960200964261051790480996236285815953956924986428277338875365154183945905592646545584454543046582684626764453640559827772612230784331644518311310471566210433514618991341383704966001842690682048904845706125371900079492758756778618923549428614021685513847057892277583331547198581020445933642839979081483489205678724788338848364916139371878061547316467943416249897491794651791858326943086619645126745013368961288743154619412718531761492148984327165642932888348428826407600381920520866254708901042487156169203058355308535827024370185516877015942756404361372062667785678098458853357537584749375468937983535749587808705438050015541119336945047377586809449901082896762223920886429673198551334992884353208443149129548045523908669619569031659032470978388117299888320935913977442045591083843507800078113797796317351965945067615592784482768618229954804933239450414952017216641638361160332067780027827113034742938108495394693768437278488088228370129575065615536299028011094817830404181764820880598187443121298750557579359829254446116306259346169781962856967327534979796835245354997874973414149489289361031347138201134774474399031489081078997560952013976796930568057525718653998027560685159648286126862915760151704711120118079559679198559499900012415622193538963639288046262031369336034866969411306098115937676129728631717808730073858952359619634799698940449069610425710714712814721318792289729561009318761548587169493366585104365806995421476358955979172536024046810880998099304705693471233597112054334838253913829862293358430116924672394864439388304921085814176190667909779766609093236039204803453864058234175486668438447047834516976227582583449493854338789396412334559206544395899981964515880386533944199444486447801289764506147018834764710404533773055907083490929194365254704218218642040527124854118689493931142607042886781032378541472173979520886916678989349633143328264542697812464657969682896305838756748659317152970500834782909882942091320706831558498474546917550934943525828400924695052752089890914179047690389840927493040512029216659963717414755469949363132696117212098177968549803171368287450743453160159048560771383211164914157174529817210535264543520519427380699281602369928857465221521728649489129205008093825375973752982976788051050582621020800791760416999232123233928802094787770256104950108076126679312687455286190403250469849713661773562913092641872375027414651552251564908011346276616385702124197472917745186874952449363824985493170239505005452984909328199612279823347878862650175455755936037843911725151185058177270496703188236072640439844637038933778827106342727912304652358586242075796043294318639821173266670074220256020276720860681872236643717615293871843948243534702422246237341583942744256696748135593371350473074102798805921670538130688661213722889188738381519765886704885011924477001148105334424591358547338091211932249291426677377321137756807345843120247334427477364247112520658121898641431594729984677506398385875581915246596193596959176990927429661730330172554063313686060575259375009344147986768740264008066945225462082764252918225519327218623327749640599115203915113022383778128534799960517758551756778953822631987809298237992179219632893952854725958360145066650341006285137990847798950798741747965003144237956492660160383498862854299682786038944375516050570317580379041364369755164662004875925668299238797002153530606247947630342888358532930513356270353445522542852686407824258971539054696020921661591787414145701702848553801942132489390274624170413198733861871088558591837682081216554729269607755594461654229207704476316951413466426030379054660749673215608660348870977892378116562066617904086995030437257131104324823006708705501335498559514271692215123825287983713281071566892747545747336735156590056277288409009161631490623661547954606409470629757490573308903366961396192262066810885219959041657550900940179031699365668281495094182851788567893893889401692523446463784937765904272201608226916906134442810942287731540184534451812769668635951247166468167613053391951833527877027230801463629660133051108109660043155022395998304454589996021755665864885062708657385275765660045818976838325601824369379996875834833361056044576681209858696130136687430125526641731866674351140109158150949587348522236333479405201943043471757321886250593840316633082725975320323447185616777064842879668509673124836049719510091855784478126483126027827417253598507399014705153112425218259727431645502181010184434652100216609287058869732592966348344996121926832159704039824096070649721666079410539881709723556284950026922775036147481818857496912589546020792764101252021985689894397770926690579845051506522754344189849506215727451626777357819262190647042638402081692383981343205226297624062599278534310065404659051563016903748213882724681177688663704504561875304189395265963974503155735393046941479238463196784165616527701254304285765800552318906442914879134560649005088809228254053285148974764014086957427695396757423539157515352451147962928306438450563238616779572609635917224607620405809386740122163304998364187695528050117724071788837394702600697494626663331491915348317560395273637407598712127043331691475803239476439159658131174610861364452751978953784064448901764666551410972914775967322192600471000514184155916133065985631694485452326848646440645754184112799845915646938372107111334730578443577683766014798566616804478926477064465400392080956042232520145852994817050436719724116438014018865428104695680744541825085381256941401228070312197530170215647651322951242852255789469226129448521756410673853182959500403274274175038508209196521542727600088206873745974487184867682105530532884394521609101412999021132275821391034744975281547682544373457646418045365470264549974994203452464859597201590519431248066250149708709953707344598207420894887292868024652285608838269572965857976324124058791811477167142832855112464325620632415938230553531763250694857301819105395563046659637483261090254846822789693267433434575647641807083531990462721755872454498903693986070981175008706019103283150560683011082472609175993013490926422699863698412359995347026987976595711310385380079940174291625389523897149107488806082575678500373318761871373361709199121824254789126966707492945948256127432854135903052924157990754805205628859683923874913673338933996244463855008899683406978732614460399331636200887440558741976694764658331649691607186450836893037627890387481786295695653227476402875605653675972562358106356831807513687206198710380506498742631245106135172203405420368286445444190472251271313126245222468674945291121310895795344900679061382958630441765649511944910851127228603064170042941150357970093295302941977024331226373057221492829166065465437280663361077458509069161431204396715974655478422832382071434873373954003942714847754895845377873927384586425888652246194443760679461768184921637915710292183466126593468835136941675412426685368788186730549916471902894129183630528452103403523633504833129346971343172890789338803777238851214912500728883891034332992156005810816569040647021270874321701488995956527537850396603806422665830955857803720985642390922723720408135348009505336983906577920744420517825963063873446821018273821560721821468906134706570506343602224503286740130858454053118062142954455989143008605852537822577254849247401141203521522727592682828341824444506348591553090425238086635572220478868829559477841992837712273904071535476956308543263115944365563205568695832972859475541111954761480371066681795657213929765389983361714523378949499153581648593544310464112310088214886750061676292895772004495675462683881523262827420331955595819416869431582107913152533077410657616283375386047014075952302270915851075136823147058504237541462095383612433017354731001389035355373009611843031150246427313062374773923686001558657232936919664776903540410101336446625341284286450477458916884608074333402843765344760505505925094460956735740791824364366908481600458617088381749256585883079814314596629031901364060115328149437062901509066397959261736232538134032948160150630510822841417219079790199557799481775955387145866115314951562325720383849098465840883309309249766046165889139646450362992442635881373115160197366447323617822142938415979229026940613896786382258475672692178565163615505650948211307094537680321593753920962409119502516434112631219542613072408945200304266141217411748996800421100767238164172786481827500472657256439502821318669633622747356647364840751151629945351784649238215082384349206682750413770036126745346362344904897879578978128730053453838999257180194336351583191149735767567686467589525191934804878770008160954928008845655221307713587100082018344999674274829227265504114674536228402018474436978772721966725280113756192034853779795297360592246267626538870981204444588898644320147434911788118985340740663758969323909211933767225679211502893492339711283448523236976945029629141717506534773654930366079043096719443598672508664376523011548662762575001173517783310290342800055814644444199172164940059419634550526379755837979532553854443286563022095964760130358874318426949105566056325133487392405551138465506765219945652035769617259209364397868772800478952783678756202621063745820396227907846342096005553754416929446766459864416523049439448605503384881027085073683070344407397070697823813155702262443378551972537196543703880113588239720861646052293975785719499521985757861311911879352299156607411157521247644160446432103681941169317661229108183372613095848264930332113642239402090976475378285406690801269580588332189311400677385071508797602751978003810442122726215987300126851018643028482213224912767776270075475437834324237162842819732021194341688061162440809947746385203485772574051954002761960348396431921050209606187398391060072801235301917319716830845171450783376751786647305521770383088054406788876332727652450165320709541198715411309389609427440519694800527871360190267962422325300938366939961442682398230481613025839260834086811124703799314204044321166820849931292233353936759130029802964924912787590172039838779488423600735319453141036101931851520407793984612832468829819702817573272577790866723986274352854480468453196179185072459831021370403529740623143615997928693662231093590548178359894760717014711283933178677220092635351727945142754802340889888908582739192695889226822718401485051479571033745269373249456192740694590090681767010903875451663131009928141021502155078409808037062935356983621260325369090248275669474841843954324520266762204626346330023990572593501400641378920979499541539603028507743545282782288997732680753018938121770449544218092579826806033083218287535585170698611109717537803601159311513728964399600171215856972297400658508980309399334480685835687290735713018540374379554445534652891603636599320959106185762638532396409624849396061143518718186589423975261316673058821137174897598640144176779060532251197829022488001286814858683981893201851871515267324640385979483143085587205292747632797815779517888590787196051432024678368164468007711769879559469359253160370415396761255242632026218450172709995597657712315155210501142787085617773370188916726476424462446660940854757733217834643370992690300704825096014479450396274523681466055744063943130141714721596161292790388506275736416512349278945275386295347631699520052177774714227762474656849305084293841228863387171037380221160092154990681840186222692174547102755249319528222876294231113005060014927756279895804816716566678217449113190271854835989051001036808920687017022970225651911045712603036584144108118664582227820085232590590938321356285139845057831910257960370071374747905224871566978782628483956173091687584377818763847604504310337054636547552567843512439192603783670995248659070998663192040298835674269296984657006803373796626897756101171778636673520147432764368659017584967224956608884831069281211888470956313712499812517265104910337050728890080619854976759699986101856880074346633507534519294563203454685149965193817157114401244892645364364413791007351462612389060406413231660604697112394232357320236350822750541917894791985708202166507925378547010103583000874646207486594035503766432442033016210818478126623381593828911826518385073950789536962648559833867271521583375827326497484709722419534836114299542200598095424061911151712403756926874042533657807968355826081768804693904433125264434888312906136392859801434319449209114654420218054558181670156843230907039013229413783683606426474795154207555893372335672171367107934225208970033608994016501126422249815430932045636471103046105901552099285173271450426040482668447453948174656810959954853434909725188125640440706110222000198622031453525385108267401893428725446276322658499956745640069478143044480482344445123774250963947893745109338475662150452797134638329395545019226382540660266028019118112598114109028593856679792759358325621516765053124113520698376044039652312427606802265960902691163746161880647849084722586721553892046788278368874207249442837312028110521440219133118476711713159409793776922436763391833651657887080768838246843197380040081223090590431034804448740491354121780527215209860740442088216428039958150790826471497732431476738670691238571757534840747736344714496841092148829095844850248028606704925078663767885081942353852745705958519578746851518206953813402503443923783107128637075473833993216991167799344236286508207895682267703871792560201650021271867384183014278049196739398769940456901255815421462804180896538145108834093395714925195870822591214012108095346464683728413174906747907045838915274103877201582639870862911785979270492795519206433676938612590165154213049556587708306229576698461749310831594497257685227732988863742352555620678102926273332319549981987470098204609639849794976262147951518083168576828260517537614431129659929146931111208765418737844416632985613468344940708303214300088538462460131709550578355580242247799622089096477397605963985950198008293826099502186128973007498707652787391684583681372860074788916747622595164374646034978486004046269004348318143211868439772176071119076553165241559485960933930130700077897671762937209501692091737454820604192132299401424957220822694921956812400003344198275843930315328132569945998757290248115441638565055758319748771101181645278805148491168211168871060109462814530116537633286005727003823849794308724008379652181868696428812890769054680497610439246034725865372257019179936781962207856133580061081936936909850648791264769307238743555119756222560603200050041998140254436060337851065223754915862881361597016974236291133196327504607301769621152203970005096803099895646073002254741216808424691203453564322424115283237272601973881878076935555207502825675683903275601849461658936492947745540382343857885641627022904351162324297115901550608641251688435355215619130507185046789013655360060050866392004371984902035677174771533973882237839810373580646506095926954842100111169838557411170165064252126988811333176604830543033870487224523100935754003456185726105865398835014238679248346168331071923315312135912100692772590327802526680513521837680333483874298341642818319243048470228143011045100997947033251638368496206564090504271021394887611329032504247389873305054053952041732119096767463656187993329699094319657424566894915870925906112482173794819520012145856411491973756235870084771944080280224600837455339096171652462562714498845610875254472702975993195496705435329421275598591282077791787598690609127741911549386759500882665179630491511782138794635684889698795243431808506490949409578909846353240439253502038642089005412217194526448015855735157607560784413934721016266130221670153699248971405303959227375354433348877761900158054240889227021252491796752733040535425660597329099919020896689791071577152953005046792521885262533570315609036511440998487888763424581205522768541409970914327202285994340137732168993021164042449233187391289807912067217664420791298108308817721722539010153033212918340084027295111933459435844996884848464021688751488356201945008747535277547878105292259446048702974034449682501380802854596766147062878684089959990169920631002633407328078110231582714274070285543906377027276016267648149607928520969312535520443552527183445336452606971269169789810155954907501149296032838655079059440467450064103021080666324949950963616339446802678745234637784018707718117162926144035200225325781896872809271307317147703275795645717687690006666943917610646632444119647041966168126574430875068434564303425131680573977870524819075560564715807542073841984748568583644663003949703233633363199538985079383157406147444793885318131759585479009895753620767215648057958661257092217272932171015113877276164915289646710887000483945950393371081666616140493660969284888431800801997611584852579275168556728468201723917971611436757402063428799512122486225999241815547563718913698615209915589973988330206909233459373700593826724551260669111993361114433372136744034043777547453805564974209138365275250556692137013450546451459025954281855282375718959880335067125696161695121342323538405031973407665617094891823698447888776237850567779886235440300755390347090669739171405595310403952137838623613743100510061420698450873688750724906562707345793827846436165779474142408220640798203684348320586087508281099434712427919185500204964211060805124024339181990127392360394355811828510905542628780704840954235958853492135683653206111217882484426825423614177757849826973038893054183573785900671242378417628255873486796467926506253828282102682043093304115837222329688996762092227114259287519740014141724892487817580361344217035953376736668669043452407822157930244581774957038327440319936654660322566514520686144840736562449964817094377561120003517790417772149919414024702246930120898095237468480487820532016394368873250420924531097156150645795817923651241615570675682614585440805660409480687583474067123078395604887447953890187161119853775235834341853011371737021830092356370369064855355934682312797459644798922313477086096990955187943111275476210777450857138122333429197957273695904846625439735400097136876157596277508822650224589847098031300924493897923577123246284881531651987870344176765387916043686328062497142444754135844993604136743288090907953867610062302742910660320812894521328978429534795736135066179310190658458947371295254738738083999223220443294889948978241395041580769847635956595801494897701692768641656087446095997423651853119822624956334858980613369797149952922069857429857428921328950225292975350138090113198353701667994975167254766995037141830221176409534741866331540360806702628718530412730650273995751560791141121834627243588681183952202219410870432417539361552627116311381986129202147409485182571923101039495182043671017788978268461426505641303745789061244848529349798754211174904528231587962190056978815473569414410836921161838331269975128064193344711442934596796158845048740444445341730263958745771578431095868812000309888462125042843877790806609779066410764402661251300176987797241587105275411709633695109855104994752183167237711298513155987531983483847890234854571613067064706284804455438785809785009823789804601041238902187546840333211848578965237819179240565010268560163724159827061620886463266040486356565720024012204076649444885475002449239474799846219585417617436536911422444105287180347073583743080221895520657916519375344711098882066708713393853884588035281143961095804792677490343333935248313021849937535535215741370101921361184186064992117910906447725583569004391146664442996539546581325156261741840171744883132583316357661739867106531295733426825031477076907002144361725704738136050059072172686796087732341792943670776472965985886283155837113915948247780318677028356362211874183375657792824214185435300420309501987847356836701654896334826680354097689311388523196718267315002009381367643136998407289155472269843073648011189859069733523885173051967343469650610477131647017904416048189848449139555660620696022607999715252599885660021954084525979506085161371309205835771000325678781627337598175243612317620934892527510152181035755231963966846830498125889724678104813430239938306166431957172383065728366840470878066055027592876729417915229370434838942913831897744352680540396777043122526690704895151930059620382118549620185099526830640855621965751551396510028329116697507159440342052763052605060550388333901108229152888581880531649833602346292000262110025946605859549583126903132337386061520287106773895039519243650056630595406367044796242745794344674087788530805681177210009833672462429188654514898168425380255752224984730873133716551429394707545901246756035770562597506169741818085221168739275708982091844684713539766529775419211472616630362976491125699954209945283666766174851970542505897754907959921933875142367864681719867131671980792534364990893169738930906398652629087999611044165461041261861959916623412073237487110382367538302658622104787989727049573546908207362359444804136752918431284111334418466840651354670413653291145292380342814154942649951985824428242080160793040779163518390144433320379382828656413710246882511873042944983739753767724365000396713456405855776135564841112938825913810917565264913492216038948751829613906392802191750042092598336412561977370444509308361477694667039649811907081109160558604900641899534349364999617267482579473606552753447555995822663508589591932817414349379872584902355097817839798587950522066006326368463575204848962406075167135033002060792659059584004837021956901444778614665789584890296152011001490800393984683247496563311556661781435269867821860353374541661063844278462448261408737296716001561202059676563018561899804905629226504701148390779696070860075525413074107573651388389639018997220164690626292304783926488696747745152319278798211621745717998046134539049222792104990633622568354343353322040953752433257077275920853707319353452578396364041384697871984042480715797793612632189962884576459880539673607430808319191270067386574425226927138448607570965801942852766947063945628616552982477726351437527919124366886539424901441546138058969470550923844646901719514122963889368612571133022538932121426242399351983109400499460678861879601485456541017492619466147282093688021015200440363701981677841569394846839230608063319004337611432060005495693089129127469908296629510619481723631278449880739517434210106139631629189992395107516227127113990734219309313691713233991398843081512536967580206311186297320122435986116428411496535065509639860387157934850801845967541763077406156103097263767122116285468286088240458829836259892837925352710036608899271622440999240662022314848806818382834408663514811159193510442311060385130184244161919395957781889305361475686076319926943006045027364207683140666506285199017998478790234634725258552847791433591489448190394369085455943482045771793326900528811345234515966545672624524340513058402842096547562874059820879152067169693398936732032099048234832429918740092372215215363812721256983523001167429547920542609250347627284830644290425252140983789885322702513992592058764344641043879638358476599212011334462539012471826862582156211312289732635621787340615332753410729907666419175660696237500426024921662940125207734136775523902708135920018505171798907694505521950042667728353814758241429304533773956219560061301677372804866157739678219193479607084521179318159768105319662926016483026001211272194329819527475245377681730847621462524462904704375773055894362351018847631886139357347242878208405630911295012488450015244309002441706171436542796976099544788997149367710725495537685277599734758089843320668844175557931436060752326874722325764905394043460393219130051262392631161088596462907300655628337210626683905320677501375182062754489924655276806540160112086530458799387002837439708500992511127292713277408421001786370888336576378330276572731211551922712167913347238495234044469426435078525450649005071599239193238863871320477938116674211933521138244232071465301980155654991076010667431734865499420371838968508443359830177833479273647963557542308386895569150844085429460254296472249473514522386919935789929372115173500964728467061193990757287296056200890293809026315058381297667762417867622763475838547991029997679960200193993089079697122085044799494084304760151894693869495624503345658950130591290293732144415789290118401060144458743595020293210949742599834264856158030705796895771327328554256489471180900815608385286242440808320925814266428143549426218398424633018500946410917502622808978063973418842916937665523722080071647432730221833578834110783479089617926902039410758914209271151637567304893076374692666318604586035388604617783870611241150039794623143413232962795734228814941640504316869667806342360412086122280401203858284625307688139413284830672968971211762860743364681419210838276115854805718756482736215334116811096506085033699064502481443721263717147288543544423434266838564683473290694942224549986458844327033523328619511728681325307969838689331080615674390744759458184861268415216029029238821436546457883626060200184494181534771896275726470610778572719465770196177091959544103242498834690914076262010921619314223548072588650512817370846401735873782643829440187208330910902835108400292571378822823033781472628270067686617366066630885718972526922829176331833980697494665047835437951737526968814508712745046486450182417081246181939446583698781090681629108194896953378205934315449538377062321671029831969607101120540717625991837707704878675294722815887849234140455484516172084371739117168122688403395387068724180734505553858280341184120585588417512132952759005075679430579481520175434169628528106741244406179462898085710567010439656052649218359592048169727717335344543379438086446661365381362896962243305404735298369060575258547402636776295203500425100690292659242664957702398471990872391756323394694477670613223829981767707633554219382688412483330025271154513209256588270581825722763594301874319025806523898392163739014861672617926366826012768879115258529275748441255482342513305911214206405685598075334803362064362421799961234696872733373251294469252969689944070301372634888404440820226290254811951888674411958864850335055336134518366931986414562987009818455953963549239402953871340940740959423500483428340729106990173351695225839621197411808834624786896311382150786111899353043273380478344847380839927689409414627049094363259128812991197079656171810316098318653073213934882377943450655866294297987899368687702222178000393674661373253086614026763165356771186896739972837295781980419894030664176734413965730862202737934403475114313235331664316336935647884909224137720964621582409626804457223668141555767207304039769046281260435362803047453219005949625627798823867415546043848402406584387884239458647125688131045228584901226057365790411036005741146486815234742404135332274801672740287621595218107422922517005160980754827492815658133938758225509533512230598572452383567639282780453482328001205525319901716137266008996080018502564122549606577201786349873267328518349265562263183773645212432175870961036225887583995135207743018870621691788288421469521144957890736482419981420245582960766871419449549593637987403630112130326418437026190899191256002018070858152508367679404601635553327266840775827340577109792976257670935379663106684202934177905170257804200644120399275183146244566892581102306882244665317640272865953189700146310683733945792057922829605867954178893686511300675182233330149057606328645639336390656163885520120217265854272413014827467557237660441273732031737631297846604130245504140605924764917967068054531106426442910972415544064612795630140146296404148168485048794320220239903999386080683205700490380981201679361436182595052574514569886647605101282795308278972902108615374770671810475726675907752857331632809618356769480065644764499780168534395524595015072669965866481258663429271001652109290986951981808542043473435668478403197598147551990203690045056108002185551948820689212172062986677158499348409594466365895332101429946864222486400797853333702647459975351775420385487886960264159444540408029404317665517980050981882956417151798097331616790950847372326523359247987382958594523895674106852357632637100081130498437837425243012822895731501325196782743145818122548761883511113992579414899929460206905242621353443893644907623128391538931465823004513986287985823371713066542972987459036574277638710454193628536833213582481585813771181684420704166960717244025627631070813703853325896801030878447978391350502682444405322241805487492242915807230965848577961665320437760125270267012519196069643617043677951442488864076742792199137762169373741228283418150975051880860462678265180851186164034497216144452717719070006506716803919649598441638790338499685349634188262010641539753976313277371649089491534270494400835513588546629952621937649197474387141448582935007613680070554674084751846550876147158736355618449946840544938353475206999028085353597983933813130882663443124446055119145127813839008075611031487088429295366546526799897959305266217765947759679331589190538761560271164898396005081411531698114877501163389389975508555680515146676638094397991162164833372768977426108217684721520163624158674545072181737434042544424208496638557365620216667204125192341707386787628183491507046185778270543591075424605136017457900200044308059468312927310180388874886083050194780239530515501716258807706602280842058203711106619695781296536834042258464731283997692247177145841414335130586587839130102557544866301368156218546591840493984073764612199770213724852569620343723261843257025472195929755924382643963400289886564752334637925577338710790756347875149982959472811730542799833157386442128711187739934710339316532585980508584995042807677641650875285396667866263771506491195231658744222016506982749848154428201604569453953173858507197751021465081606289808938736568515618028502186862928662112725941696979475085800714493089288231800076945240292628165793361600016789417360410202700763309307533968337257856356226975657365703850365858029707653445855946938879861186278560206561534735270451336243105160707945499291634651150390455887170031559085657764752670569170545745284704327631546745183610386359870231968893113443802016537822862245094759529258325330441525290621865361699234237759381155012742233341118772347864842845919118498727861839419854566404115183896744337526864709797462452152606058580782560907196918082349487773215230714054015061226066396990954493856457316815989219976489341046971444162773189612522868377249420019991986407426007500740406601993871669282520326235517342375342240136565670198981119840568196373204510300259411758393400839432118458527320110643444644120525049873153561977830136775174353400714830260386070540983748111174688372139663115676500451955654269155452927462447986073733908001067741391902762920799244868801056026749467851199741973689162665776273235425702714634913461519515329069891463136093670995627559626002038152354223642188715045144485504621002490176931430768834332903113901283374330614139761415383359686002343911243066047467749894570174414750416381809366099735017265327107081105874939094001975554731947301531389770928356707700406009804201755299119864065724245512815170711146764046316907513906237309618932707838461757622948037929153488161522076470724544909983396802290685838024507586600885004014210025175212986638567496477751128244157509331257167715602644462267882106626619703247250558991693857210077815853230717170324440132325822565920076150650562005158544307592345515828062652082599909489537529959739747721803544702883216327725921873529627192839368645135380371146690413684988681693320680829966046089504960655537378174292588706610408705920645558513278675600224950501441342812200071819268050378104398482570172845639042066941095528145352513741455384758427413637028685173760311511369877020237134373843223876925105151970767652445890216207701721966542749717216283995961222621533552492117070158132120879923310904274025811836931918432464301280579452877252160161053480615268003959015183365253989706782496763754960580113320621286345528433394649317504053860162893680274691654106892850262658401856736822437020398421039756254826221095259973845140159477687443387976192150584547122946356980290109739468514537055471075027469435768270447788042333687588326157857478015105569857446511879102155418561060659454517221866500561530142090365705211887783439143851031273721860848309852790069335993367123285037684408457589043254785818450883765641327050083699677705598826907862739046521856206716096236075293397179845406567874412591401956425967094508280304935807980699093674697491899958132190911146188532145745985942851079322222183781758560718124709579640835488729440652596032803882680559983002707739913415281943106428135341156465600902121762768549224851179605155596362436381579779099798042487429350070942423404084242970632403824421310554358037255786315382107640516654054036763884416404018663406423020955466498624004792475027712343581432557329254903606650938200931634087105615879050850948127255786318369116443078268619887630180479288724235677702173840496065662607742969561735665649884657462552911173974126886311658081715929853465959303297578525022559169788006919109698607881498128769538020333694838304201869669292275158142946683920280166655089141588994696815001293014854028444769083888137425230975858497449396275459917032989377295806528939082099155569456649253254214639661646351131710652084428178122853075388505922887652177774857451978437368977496990968470393621332202071003966898226269247968759659483295244308723278923629792266825356381356550783615632856990515334282410674683469121794069996365015839197769434457641963676434654392983668533220194786326233453131026526591583883143545794321944557477066690593228039990450176970504239367014902765347499227661304666944690705092068055384893924525376675705984663397447544014234103993843905428482724634603296525256376363038323899221014349266007488928584857543019036083714519217416683762015622612084574196464813690664431385796629671865462957171137688377125480321437110244627210565266048685718853157809904898285629181790514468797659989344416849117837203459624522530791178140937598629424223650295910761629555031695401184067003170391933482507637511022696456707065590383555391701604273625875560989587628499731615602888876975168224944071528581796200267578511079015286497733368104021769429169996512690631014246971591285809141369669462277924734604313758284181098894022841275044118268759320647603316950727260758962506966586125608254655572206164847131761601442514511766443262816491051091211885031992425056360297963429935512036030310461198880061420497284665480277556861207603468132077667671197819853971452014551470806897193177564251311608682173478403728804012448862216982379849194646506412675444923935617853230077723275820327345243801986309865901324090962618035828939433360622077569956609838250124466266627676455836288537887487423872663734833158002670624449417888964437455146994769190748498827601613845834419444181453470767038423568184941042869756666023848985774462637193470195499954988065843356737030687070295969823301968024229939178001072780188765474520429143330291352278876224691216498174310299330170270800180696505867648888611443588356605512370698311469860946925072735842420160314567903910386127294609060007805805858537362653776571641763700627385155095409675866873620114288685189693395626113142732410441466068683447542565395262359002014043078983012742461202603036332281507009723132116307567441222034604964210574182790786977091287023896324213089098579598776866105335589048680928836286431397448442840380121292286288081448146951753171821581352016500257704460128493914128326011173682120121651545074263225613962354231952222468031521059269528529469818524604411906424135570478626329900461079232788610834182492017614632960719286951108795494900433371109290236451966385322872199234424112417267599614760041748413231472166180802511903188992764118584818539443497354663275279004614543887836807762756925687222595327644485221998886860396720047705471806970826066218039635086528309826622114193085762040409322467657255118724832121878881937895354784182721689135268164500981896411002010400325778291862841759967839969134867001046408649697736926765847513403992154455811876538723623942431652399613223968528996781830431903872055291810101916161305124697916385689277307788280836145796378195146559472643326819166693900639603505397949581351076590981987213059147446139104774215912758178665673472149602279962889696525019856278291850553494595378050628152145755573206726750256600219090402469125103619226878628774032126735053452139167756467859593759819572367971789695410822394618092769502728278465506918788255585813135947629893822901069778190547175446235898772795528028506176248093441058398857736600381049647210459352545208246409096579312792449464886018303793436037680184126503817591537415601567398352597913415842183488092927033694563325125554599682011399189485072878295081231711890624568025964561782052238579524074092443834909033857595508122670079505487487445686084593483062759428608199074155694260586301568733710850462425409631171644736177734218553541268660293468190914285336463884756885137273886509652539273881575609968819709239146049440403310628317882553544890226326974120210671930916271670006208082244517307365453592365723582035491326802061743435370373150027954809386823086877146088407543609092949652158079991762918319962380529950691876356040914081447663798080497816185337471702512664847423926682599280077465128652116064522355452122901972092146026783790712231046070163144244314239211623527942242663457553751580628424481428400153654655442979828512726778982466136517034096142332187899673216490003674042409153857587459738323490754490395677174557788182826966259209695428154492091396794348751796947841992098560790009316408804681309308771334700713399472632387843700989010733096185967539058920098037135707755255011379304964309192998489639942125449475319542270829055008418513499217653014173279575986940539866062795738527516413773975772812996997095784159108496739659202632340486484114800221008034074047436456220782917732022699472787463885892392966138954635098648195361836030551624135660398132285252763265716166643039593166135539956362838187876318186081252256873100430273178472491219770190401460933826505804295965035970052792687588264215776783273769746511471367766256429167947292258798489346612626401774524547213326152368756148314850579624722090755431887574278318282542789119705164347234573858990011499493465045163272190970373511348255154505614199610721170058845040463513476176867955373585183180199566042955559817911416017658010646205284049063617494642218731712237503973363066628897984357687583553146635110784153633686958169125601307466660356637409555008261369256415248061442790894029009203488426600263709518446771598534944723824366072104958396878868282595548285499111633758529549853942465994323980278517646268487050485779575587454681021966935393650400513731284365343024156502996837974253642406132891477835794253360418122941099553992054640217585822378117955405747732657388527838896534700279327275987359104946665794794280160221273262370494253941796386135506272535981069357862723583438230288782217429075827980660123762863662318462964921371517783998145643712676872057791976928980139610524225356995898909686953427605878258629119391071067299792751762343464037706952776224748519072987723431103094338102943433329747469917559793836255898181870780272804402023994991179318924312055386037025260493956914163390850579330516621880773621987971460440817028500120911172686337789339100089437842076969348491355782253877760321815516988925043900063586269221838592999096089692949631780434164451278940375943111976289253586547859450081262321290267894824410963894000574473067205090905258939741098655310677200574639593762905528826505484956375726509819421037993994579701277700113725794146200654050260330646724159845445674187125774337320297324208369649268375530468986368819083657730741767965841705768856578715137862720897907211896319570475955375369897360465709177134475626101720433202525969894108394824275286311089568965788065920607493690220636645084942697228219730144015827471640642271860150877898018214888691427113636740823219057674117275747819230970462533363741625647297099692636309368503939802756214008043393541650244704903867277627922376867420711293029270431334719755791242744967108036172437993039325889563914103570397761493450212143031054122582059001950662375701571785642918109061300463049509053300632887136686355694009096939226378175344321557522040781418823965797434364486285418848990245879275497126076304701467309221189788061278820712335536461850542256014886667255981007726952447051243924574947651806680609334722760825938950012479444815506752016173380611912486115862152166199277169953338062161144817331121411113138104353966857425824501720717039180165598048042087051429576323646722205216725695869177572520955685191671877903004774211682356138658901754616420323691259266469780729208176982249479804227168036151494317799535702388055312569317456585727688119835965807850299171821699395298358497338990231076305950984309862428743908609241861309971178997120018711165742539334842324510268136370092924494938676664957966650835230691401369922778785750528285810192233029097669791200033325102479220359301791723859023575273999657476229346557172909259439450512104476028757499036735604519106668972501627530696220607173234930836851986933165329891000000705567551913476993113755698333009009317601472671115522393619505390220312757785514347822630378050725625351951890225484772189035129020972059690766078196552617193467728563206548323807150642201524929031066889820678082968893449111061245266874050445032907282240564957559505079200680530381185158231265960612093231187968736963205607794127222946532055565376752110150192608091622060351956836961519666274805054923879001560115319058617023536114910622395987006698009774773376871304239883350990395061664177617791547504362893253210975121009839306684467542983859065145999732565360753162689784802130474682197756495301257836310973775973627021820965491275961965213231793226807988338102053785784920634690777712313406274102730083373977984403201743838143747555731114350792387351764062123439881000649540096287472733035205917746320407667665493733039407682096057928762579642567772090651515978358589756850266739497389756628903919745315361685069824214706514159502916582388997126803045679206189867661798815144579598654970629233631381889839587896953095433749145857717698582993286181966253989305721174298035393259813857575320175038253598756169544285259179675298550995172060649477971935761986108871326515978265485643118943758145712825193411141485577986739929724788142665550641359165116782091280200055528922991298545243278262854544050265931046246789359394494360013818513280471859920078107659807948084183454527395363631570004524532412913946967909730186376929934370488399351532559104735622249146399809496776740199589905563110898927798912150714679713029848421286433646923934463894056796323844847016627504444043321656919680864326836502206090213749011785401092820636843717344734514798573669106144206427444115416136020822039047837897540451532969607964505259187590929041018285953896633493774947785688011397080619562455822762361862139973462356936797576634224515229154098502868243268739335896968359453637275044573207370904512165368978698351865497131936205503162226238930796930657897555675331606931113512069035359352194152310471355870455346026350679400292511455115959635298506216951184389594920352668066099923623804512004755056693184216250607052879581564534828656135850755876191042651829638102074351057972110338504759385812559490049425837506782058247389900160848649116527531812910178471004991545317298890070008883135030769956771542320131739333940000064680799274830886247247922542983065848785344802582815974723121266134356186227836773632427380575246043506718808672582599604184084930099526148948352405492891777756077975000076325548006003802971677737573524415951836783861703917238189829480972030945888672308008901394984448412829097646497142688428817583530445179478182288288246985034427307224536960117373261826301332073994331277214582398063290682959844961780868052733501836174831979216587599422583769896614882803699484533238274435715880479468744053715477912260978369336911032584069065229334558656591155803117743512853954822573988043473651079007336285149709458124570328939813536197075925051322114074444214035136475594099727155903514714086252400475821236276917631333853898267611526614613779335549471608462751018801304164030559542702734180853571500904878587159221746020156156856475957520829395355076631368229085939137606919101995564975199456217899908120090878754304409369528764089389838392402550041752917183541758401401800728920536054523692661688652637722135063020474300533608818746094374666714985372971256921190839089889243974819480031816601613797358909680210065671659155626157601583875692353658515586668320334180333273709677495116467637864875954986385538472795063586664465437240988548376227752414853620834265462047037962122998894857854187686693250226373052569896831347434096217408146051866555954522164002714205112243150922365455669227621331744848241431451649506564823382611392670951779531726975303196626812993772165437949340220234646068228627727174624497664854824783691605464162916016604183102240593755639622789351800237973968244028465672742098555466039714623549914554327658896145313567217086218444485669413557426309381824539566393648724240096850835531664900380766765523904571182214849366209585688227600040037829846943066382641999765062003684920020013684337362233935720715508404182869069655993495728238520154410440316639721493090527494790108886926718397161474220579614426364354585022018206541375744133713481538080014276711256101743514145201738402718618888902699666669711635614903355357635014056590580385527146322407765503625898731688840225861598868641876937908950038099259381179842210273155707612951218529669995226675808628852643594975721960067558141889315115221393559328244478802066004607835114450903435751972773510147031001547159653498164240292567549982970249188955154595924351792471833125730955862879720216603161452861999545398599422067207204989285101228415545117031705776795897262562389156772401616536202555504246789189392515340246325679754347748276224437003061708757723910832693890559143264264806182869871685878229068539325605051165882234681849947924104625267476395655179492396117062215448452865175220249900284379881392712741758452448856150184691182376783007359946886454630586219712324108928081405814202049054525921418994120442923744017433437209214674427130857372034672800921631538955553416864731669430361164764261694807850091091996510863803610453678984229599151977949590105732883616452023634356846658246905100925999637922622412908726327247376016559340770575996748697245772772338051671568554565405518722293880396265456990496052042149871244154133574430845194913746476245743147383100121878520250963061737112517670563208446447858751086072404988667385087773543179914538954929751430873115392879061002586319789276357267533674493581776132221656224971869729939161478035248249864034885664481847994000384724816078891179309428672965432209197809346466404624063359633847744928070967785111983338183664082260945530619517730033627821478123327082027982639784641138353030636048031410305611194046357099623101918730016251567122961439949603576597967295151198367496903378175673048652873541290127252559738084881033172717823860377132761239117065152389705104904045245402609409104932681069158659374929208359593934185836124207771767809482768279620207702203381339094196123974294479071257445201686053097170130394340635460668204380002742217718490547548546443568395255130648284757819548531779067955972801808566800949289038044542933022857874884151419939678051863165540578352034239684097440014323234208738539101348016398474747329474448857024294581808996061741256406562475754238254736672516426017202291643581486477984951555856373139815342746800977874843142080580886450137161226863078817251891439432995167938665766048394348171912945504508174906977075158280395821069011081614183286053852679712629524265967995229188122253218593857591867277177583203252173217634706732626404737957194102168014970668745499445589427053455831401344845053666111208652824530137312117707296017419469496372375732015379852462493992760088387569817919918347856243424298137162714259501611817092498646327819491777709047149205126313401168704679661334815969723036947800824756474546842806381799787063552497758682039436930828714452184044038259930374897260710780912526327048433998346366042569365930581009177422455678685574805878571914563816981795852806360665147496454615019309700052441996566505294268396302147386315976977431343891860305663803088429025095246689271299293989679893298762115959787454672994247395848193012115145032878740575846530481950328322716152470383432053268967095688441863178898579907152959401389543160784122302789719005673251111503157615602226711418331758600976452758116601962076451886460879406099619703558952404669263479538804771619587931987307632321550667073027337989419426852893426244014250112526714487455082805625514629099779489018753074891831059817056520455598264564821304747764419053873339031521117983738412469783951455425653213258439411452497517305465714748619218995019014747264130725582643941839406014361424511155077824153987862480509092992917448574265394283716126005669593351401778011187364442356043587713912635956545491821534073634892182652564522770656234245458907695556349620250891716747605131420450207784878454116980767335026007241424336393153557825601064236155152761236801783449941185740311698220929326882539717922939269239928721141189505317882548270315134449778477332082142403849825329154003833608522187283330881743609242116302335381123921487999064543398851498282875114681144033051701285067045583757868096770178005916572631524815216526634636878542469416136005580329055609690238345838803713327224206836411240448271340566449647871005295167435836229970069439178639709537296581181902684793021654562817532357598835931174208772551956309468440413934341723527677452771519026164022976838603193282261556938869181933915805926979543297545851480757581710001086530730846726476740174127912989499759253992250651966762614217087257634140708807980789472514790324621175800379886847627933082993849938863803476479741348336774407029223425054347969925258543681600669934356875168249167092825671077214043069812544813938097479769261397106416581286465483842277707995034116388665113910506899158129448061123469619800004595414600737956403943661898774717960968679354925303854083525400936658554018831455353391162474976953704183947787008144898580212653779497881944757491477920226316632374653204922521209332879308582743441685725223224993919920902478833796519968106437832870583928348051583012715759030173238440718884135241477931492174153189945550807895265257708135788445570262215464027875221323752602982641326536494979661528389960624207176669179734565323779982620769243281365067271865200057992265867961963360531044586452480653080418360404194156426356039767881377503480201218168619554970875020262924649400830092041451625337289790617456885250710131353432939801353388638777657281975982741111534567687569986314927986639339012184002085223993803664772243778641791931210610195756233641061847262446068990939850699506509824526691610742433943370551164201115032112453616649464605987529296968351501977135160094652300266448842773730676233886296566976519819598854916647696879887236686096142034930242988404044163257168620785381527190555808991904904214287547977556322193705937058993157858409991709044365298636593967097351449508930233550445542215566154427381819084824152653161347803361262163606882920604093230225809651261255754868064522521975208681277205829997797583994374637340663112399941465744416248607055845127065221075200543522677816677672429998468204005116723244725418797332377012239160044463178520460076293503272999133525276915942149559945322774644609384836585127418655792939868505018312630559297682405261447222670359545302072511951792176738259890223119285267671209453892408945286947442935269677703738212103769681475826311106151980988889892437685747081963615374338516777818041838376928446281201515107015815466238627180502856327585483306529081766646427447461729227787787680721009685767744600701602544571571101308473198939130305390797272600173815173407233504053983846434257811018710297508069857052444426172492917743742352253744058809160527944558011472605257607194092939682963772717370729752847924380196385842843308708127930863679630496016996880375096649546512582940911244392501596136792515068719499824494321612717054815666031087584381766386747315153607819116922580274637584019834304689918211414464982979348930069102862772829654160705996228748500616885913544940874654028961647685688165451654371202892403371008991965621496237856181852853375406782998918841958622948948350148058413852601780297607891703189336062399022379782991338584179902607993394348944634725108530946730883412212903832284256948076558661922009156598247925116568270318684244666538344789309790699764275486748336829943199432885565887684132391980497347733544869867547866569304443573136848627514422323684073494395501972278868098469155647720059217494010665555961136919460348469143206351639671159818847142322621797900357017532658090264845701898293370715058758233574977463603459476867404575037668705584932115470237463665972425780973755140768294638541576978166031496221644010858240746699402601593302659672909674324539374930098582699031334723282293845516718981651319167290099096388819799669351053663824764018058740353387106438160003937225752408292420149471113898249937158195631124226043183317261336265275046310391558936596850703638853118138633690832365791177936496553464318469388336575763351156911481958971463498917309957424094665048259291942933308785347020153452369950302477390946344602511788119245539676756375694278748069783331715822741176571209405668544668303882862680515212191283612405882218685436209952474007221126786900116812954123863907006471330487815882132023979154785248684807567501090186151914174069220323457750447875052039728679879566259187336611332445358181438526576135698915744637681125009718393144284745494696508236586850157601957737864245764717466128161598118222773342975230563263713358009149547219778493425277813944713998489356862954252811360656697103637962878296113767361169614636351515031068795734149288477834219752804378824821099424510666190119696572614739702244268103815052876416964828286398429821889962596578106971063942086547036857332420813407051782974673040067637265951597813696848097561458690749328815001070414800965524870947147533317699566232654981839078615798174484252302467666150497054181928670434394009287749581247176498569073822811449677988891024112507371421468030273269590223240903849259642233671844743041429589349017877296698171510126109241267401383814266127137406789312902028331846339649622508794990935376085839058058550802831686738631930137513763038898409023125039936328998378390730905893383205456533680555394657229614949244579076735194878144429209175761252650489836906018365777855090390077542632767096949350241335593779611433228493525365558368136305514602816466551659658806817264566426671182176154011342309465534912746902689340747523144803705173940596694878038589272579783052214809005330291031688671961711309315684254380276525386918056489615885997032548993928549487756907755513044846059660176419955612843193988931629661676590239004865187002340801494142924356394050783407318271345932751264882149992406179082651317837707338884273698301151929054707503084968567864240006246770045743037004270740638306938527950160453938838758400064139056521296867977604267663302019805253483062132605208282509413212350196922163105174111974684871301725950693017418499405178627363650512524528413779495224542195871137721932087633300259004990019344753472025393764619527378969121351054785528149253081056681644900635341807767003747154462822512342771005276974036978773656085910903252042968965281074948851539573963950346075810301952333043546076798119742208392326415746184025777852829953844289651867819560372356936804423689285073591431914499344035051040009266758127713829921271228304274380773689166977128405253939393447560490549282807738865638591951001941235932991221668930230929709347733378094882748681288234108149162308000018848837609199919190538047918163525269635612537728142507102304686935284056064393506191919175480462341231361975008997973355931409557372727761521972254377268943888028459473640668317468163160724447895939003949333973073784843452401651043299660478708739301426265881481670780944275269857351836869304888515744848720576014871560649551360363494032171736817342650780716750159066957459982498006067371406533792746396082955663803779925771404287982561275180556676949958620636352020840469459164637223606346260953733653990444775573852341990732995273758410741710058923565904988358991320047269745311212511297090120528085418900661893816281971373920019338949300508637920059563207192645730685855665596201437573957021506638317412464529804605632444860499936205206908557310344450486231241565621724835421347238105928731125850055835642775436249427363644778818206449694693820284167138718526659962189740808889699643748881964449283691257747621559863174865976310499437324234677169459136332796486544157988944016382472751069815152504348590378259879724006475598441905327290747987626495589995620376480367270156126579822637958536712251055407519061296123121748337119917836324283809927581487376042192977308712822411673019296211771588517684864080462613403263053980658773864145541170851553385255097655456954883917876715869387943827814064769345735427703629124997552155747915569348418974215069587397291267315709902647716727182527991595757139203249925229574516259682342159121297502295594915604269834405450546840091453756348531754374061816936116678665381561851841288700632538551273012354374722036376106029336584972795388939475070785026473144158016942807819691218647953217582291264360813311626266286713695507687326828976020895599928921365041335812043277072413666115621765136306867453603947055469835736317530894557228231121749786036567471508600781596879542474675436991784980410066960792978131162370788949112767358570172365716345686102259054827263315334772290154552634017441774574466802536393980954472853281641819447046794000915688868669783090486383749098875924548390092545213852152556139010528304544920222925997812863864841799979168390962233009743398908324321780416238563339030775428018946488751248263898254034339375035272891890410536688670967922954946034085509190020792138398273984133077393993275516877786539909112936696984202433834549594470930679039087854766399287009957522767972254626580164709321271217378360278514999256395673546496513199046476019318075109678060955096753748604021923789589911620209698701421030631791421100101751763585344820182215076365758697704808460761858368359312597411729092221080707481289561764766654840317767451426706211651693348039772800579650544635135931154943333010246278275857621020953407101222297581479476474228644493624454895025842471839912923917704722819473873097936900021436252866295964748122323506547478264472726345669392801483092188691454780821540894454480682604953171132266670564814627303346818168980275279951080724767483045699464948237003509900634027355908114008873416547907418809665049684246290468611626539573777126210359319429056880775205666148788735212254952773035694515981092431658073077763591124154570468139201427447279270641354935074892699924241769880697751790633810950919921469179585400293179512976028424363261116683833255358657234042075046064718132743508722273289192457249845380964246632768909187987023035525549406042728804288324236537620064736506311917969123099855474451271687573080950949691235659535644512515573280360836466431225246445861511219508914523162821821512658859773186557980828361103247571177336334522180179094897157890199132074681722410615136622041974950877538980757154556606461341415662486916229121690244754160401045055806539600502242543431229149275448978672509367337500518364622069741232879346851486231265098177244255217037523159484956781577872983212443508475913015784028489281362941632058170363212162886702060096903949320976146988763451468715380944053218280780222199294612795759530119555361131518376451443857255236113034749510657289014880283176124634752768390051754500138785238134486487917988631400437987371858337794448618348287836011112888251161139571725498430645750276416559094129435008629171849426364127138219762872602748126579348732601531014105591110293010753293433558122858404808325157748197736215686948210524391778696149308708677396481805870588608989550979964245429591779942731382376875156894801123213623134957285312587367298448444286256460055871241859478982763508946412670916183729702547208140794466131877900742838511380479905198385636515781581120884761132872816408790274164960697691245261093455497169204067081553619519654213611549158183607480442911553258827627930901976546300376392111769795477911649894714925740736028930175529427145146276203552813972730847086405994766765300034650363129167145424570720887264712053628468558564954701284550086402153384121796294530719483140724414986342611517966306643560895249727000239275038275592185502076406082900445747304418259727786934957602772759614754999522476448594537208479200635296884209475565345498172691008317621500683253922330316893539989143573128517845831214173588266928739121788165908603709531449853086601849351795410765068015900442680109848938486225407289641490438523383041994086054886736410188193449253354431507946293427125706398078123081960428329136156243411839878112519589558707927206458842977309457182490723771930296872704535135109306155752893269774806040732017918948066672597780248135758963409376168566126587693190967802112597539621524579617637188729781213387566386689127791176876476613780207500564064136775528243405641906226726199178800631832250014274700731156855359303524680125659160178274134122426521665295130333436659689649265908156899814727445144749086477818386728423036158075751143345601128336173985094222827973837010607714183570968872764763775155166290036874216914142491851809753653791456078199641351839887006560839544602245523598742781343688567848313453834242669641859208265477674859278790469488696937511734550419609959856904512584230350263400786370202954631793774849731220803622599824542386872147009714204359742592361406733755067319269804566809740789356942619434014761949324343313037602034657668132939691020060397087857049136985775113565434399376694949654930187026030281517168668715035322637234013683479125326731175547380218515255665887991937243978378747294759422829461063192519148608768448987775862030934381138911087083369499687056060547110220810473118204539610441302333841815571870811003378046266643934562218539975035248374961383446373204122466652774277717660497035018519787653405030269548378001541156724358625364889520724311264649818249162122123939872102054470989718917217628627656179131955025380880913641051714703690199289684700079937297003604852514605449017136641768425630734567463334170651244209826065196034363238095267846388174931646343877020212521935269115390002142355595912705848675261646433365476081294423886916792542897170428748572747081301202955955644315614760662472911638444453862892605921786480974921327718690719442110657060563821497047702989790997651985086493424273574200359774697423605992450154050477480686775480156446687240262672786400989098285535763492682279632592723445117364237829029167980572017651384124834066753453183022710526305699160436572462169580759277553715799118257500078842484552214220567388491089784808853227403697208081416685245769248883101924671068802097895161819134190041977198063900528799398751110413628492150648624981363025399740603882386968859562626769101295182922728500127356169111706329989621251001711261858185212129024533106943583084479530389105440699574370999972616733443103389711762058462345309295847117812895400739059421490971048001941131889865978040150486149507734969682027263038870952315657691693054042327780833155506391650992743791029671584811774146889985315256412010541768325425288266219782631522003828098970856774639334083857782604495819734950353291263080785849070344477780356618614835470930483763149031810260072135324106738565563310444973591063595059249537853434176657975779342634336358764964590531124690131114961228950033207546220348815697863571343886176716837398609517507756535469963155716203335632539178500702473028320779661053432582835527400171126562610386781021149239587925814733239112830744921851280876258311285544294433500398207575918898664043168247415588430705246091308215885755852003893778037783706815590077058640391534779942657039608806071468423997765017258106177127058043851128049674807725786462457320547300529034934437197465172666266312707291813939045210249668735839558040116058779006412946400667147650641118203039572448079906642156793340769849446002864166708145186226975453056269833225928398751317487187091842122518043948243880853678677495896427704538360966445498037612829795749851254314843409485971083659749646151257831517792124865923305029928602786732361891152527048082915120343211842688148805624203836840090919611955055658637931006568411656721187090466866416599246053261675779273939371400529780727994790791027637927436241252492573397426975791539345799248583325792901011711615003127480508979264214008527693879663098162703726966336041083421156236561302030956680039982693069116419752335191324958140094712784651228633252005626750199390692565462835753232324642067987248468133664607069239628973264503720207919253051572910458878663494077635909953414484671379460707391670507747664567065754056183808703518707622242677144074081958451320612971307932093597986994392699110936947383258173180942995385122218706207219498914548461915372673513877337233722384815395824877016038952478505257381519075413993453170274410050275489118180407810182795580153302136547181194395407407333448350642599206385825205673811902082548461558644895698188812242741743890070593672784590750952996589805077482010726430414567509723576031350262552608727689680051940188697542848008017738331994617750272440180021127353024320851043405216138896910653615704034742354426587738782059342498568461048097307860125415284809971559532158106888987925432303810165331401916741445353747441806841554315280812216362572779300036931187675087168307474986680153250399979420153678274194512672435831639871333822508117922182728088679939066873385302338888566452659018894465056525749834987951505984328349156455231027311541105572450553104037366607927223977813158029953353846642749826569694043502695857280343872000472379373140816443301436957984454934337717536368734835611155085464260251489882856197669283000056154797112761610546123562680637462622665304985409933459705688565157742048344017652921895884315030975624801690317511406153982977520427475886010873420301871610521460144487354875612510374237266514892676973963887514750493872254377254468489687066743024530639622710365336654040403216737723935763289675352252149561529049581349816820914719939708897773554646417041742555995974952228843173076669208326365755809798767545771484299692553086347761982691237448343685982862854834405808763627510774993244927410177345029585151062627249599223351002839322666721720516201926115170687242845626825237512666646917094243027959213415915209046138701807555745860812516945767075402234461419636579801160726505387814863117607929325988205254849073518525380287867302355699392273017725275377684587471486590447103220134969522866747839583693514630197796024257122955395683477888884325721281652974489765732051367895028899228414327729856350420576333823605370591072751733723080095640322602390645331721734068917730885560130251587626324741691915966833232304838242783425328216060489300251318296650129882644135024198100525281491581738682897165197019582257980730520690685552383703640505489707020175085251230293008752650252034435954119090394557812829158299868060341819353439724461784658100810461291557646751456905824705388254853545380088438961338128765292499694432519403627765547868076555157590657842527018933737315209746664352122413528567336759089357981919127935971349011993169861819411651828780333121954702552744913449429559999514707065039192685694619270824693639237898454333906217498392096045415016454098559270790522737220512611252686641999090161314136193848828019558887124159178548649361406546530913875029374137030887012462023043608236023688916569781205834215801871047184559821021129075050820455877136711801097615709774296867343003240395869834316757973386556893533244679055248207125252886651558269904738835553919593200084629934086484050078743008483615492720966897108256893256189053270280100750791279630548086950847832062333783439513687222715322401075518895380664167907355910609946451024093424967745573294100130033502165125362921447257983102990582058748381840006418886025680558792557081534774144610732875819389754314979274809658466599169159828878436403526003426568602636161465771322884313496320095392930189021796859405654105220830298103658203641140017510313219451087100852521254486894793017586507534943991352779844559433213241812296879649424149981697486416478369449918385426868981324527754306901415964853405524590663124139391685745382703878521008910990088195762714149235645581901087427513532729534770776966455469608022798578300539246316935231396320225659347482483618692285172197005116902111343115157664069367505109881603080282763869885402169394002420714448916746716646555854538559958395945916031090594650955381829343741759514370528254039604974219150793890994207432227618288136871472359176318971762055170519595751568263955563574664722868068022335672657686486051880811909670479814514548637735126189698281375447863392938364075980624926382693705331083800681014974282168849527621829217186779113105984767375153071432395429841499653000182164122430576333639100098173458889209221382331763857121623548263411250301755045722522424879688321469042527230850874464928622878826229551748064101692013192065981443350155486514307046054641042866071187244132042044624678550107169104265838564107353633474056170570133208878521924557217830449153635018026954229564264528281863535884946407740033242991016110761626702680536938907276782024327460811118526305692433598224796763691143944318834580992970919393974669178703238455503401443565251677746752343580415922912355789823242986016229724199443070373578635214226520732619891829220085755981877848294799007777894294997440399777745225924614398985018041712126781333063700243246659720090652824916473848574936588684603655290929502986454698162001892356153015407864474448729294712828676417855553463574894661400140611704869361474915041443367935831421731919766933614087601830402501143536292509315174063293511733559490380648959828086919548046302885211971000005420859329081821771977060788562951582456827034961695534599230683811041098944926289905790970523887047391010077997204176696159007346733436997398235752297144719131532349566887992412352359686337294787623708530794052710237340399421938146940636218533957174783158553660864424666884008465170319868552382310574602674745414135041224076297108614726731026623219595222704711631731247471074292124541245113065369278781484477366329253542820000388454261033056852073448088920262457478100867185014839227503793673123360629738520494462548430291896616914592506392322942427102404748934600331321101212178979217694431559874477149587236290127104915956519070989557125059582878335307331230790096557180407043326477671314047856715647216039535117647614514495789885232698015561795389822043999081339860773027091146346181476043925395094494618916861430301639052050456727509909979182360413453493546310293404902202757686574565322640899055411050396377987314550359341625555361593803297304287257067361318102932533717495744124030969534509728999818192101617121575195707951456144081687366795781557353185172644316759490118502929097469383250552884107555588514237335864998763708364757929651834800280285985107686113737156657079803945761328674219290251685350245738175028627483853591351983179895793998279119201592297460922567403353243174294086266929723997905620451352270941654463664489353822887941178357820083110917522145108829083070203820535552899004847055305983381334085662073117876701795400848202001228166363876971118008899909303164544937673044884501997220113066403904871607772062487652918052364744900478882801856484831075253890647997658311395095651463157754743662980866867201042063390898885875105047367318399209432898367090056479861148510901425479851919399784311687572523012438401905548424662854318267675067146648026832548524060611614571171243237373645773916886173100435263039307980104339749322799317187519081614918405812320150279260300264913147608815215299135752424218169938600502331116084698175248086289204117342635374344687670243494072586976414210522041677452210198575590996641668874186608913968945828597193201350139939499268117152150118881044568060068991133623641213774973240633403174842113237300160151242841871423779662584086589830002643613443796735391730717224740058653597503690552950763447771854996696793163121337278983229668934343661166240751269007329590976435916370627750526958570662880859173319822606218537538561138602766405397872604669024579172199117825595130878605805346177958746116877922929479229860369880706505347643912735105304183040889996821238622256154096355239386289883065761878486777394812535936918618333138774253649834784536175195654841996611223007467143509328973596786890114048944847921008666826118630144933782290009626327236040235476419653122711730129696505827773686530753398956783916669452492385055455375797821077314330578858287593640638048088012369888148122704873378790472296966747065945381255097313790555957934738390889604083604970764845959887388919040694607463212437498661865610911725765718636964180485847214186334176638988850259642273116550018715025653066540962698814851692847007726199941167422462855133695889792650604153255718537005092311204720021561445617487899309763540585734711995682301046521274049277333111006979587360169626354551129604018741690015648911582893153146551941981468701923732607531709125157930046569417178925688038653620111086838474510398456136023560675271530293739751669226586999114055513657097912001967724473697931094328888420466464799775587433166130367229452723491325160046784873182281935778694659268238168112281637518801225178463041179766691716324232402805509972087395512889744636049433196877313216451072595704870970091696843419984151794271094901876391931432131640191995984676195218719651878616398013994257014736049916313740562353549168217166782029534033163091517850130420754143950019251144660536906881236678816926428819916956802500264157113668691431235593078062130617104359068909336402620996268118318672840460358507784514607462662932452994481913981150655606589256924676793143517764325207327871041487257972934155152243022260368452189659162661130967335505364112078041011559046904837471914988175420537127338821826049585143600954239199956566020907874907842040348651076352530959701455621889174834283875519423032504280145361894202422929349160493305487954248126988567861846061278686961342812685335175513795680902696643099695133409211206912369990789510605848199797833630593249001281514191767155109763815310825822342036465394197547939327869133260040144172520638365610705848592229170947930012146076843545298100292429011557209746034281548971570753609473687130243347299046456138686310125061371359027804456681058337341111585521936258353651677845485448393089883419390303984811509792083440700025216221950152380900679270568499151140540460496035695563479748411403656791259905602314538138572613165767268616850400939832584156987816676610819492075097059170808625968727091134430635600217651179421231486111462449284809413716661342185557972846759724205916930245795605003513413150978478696816463814745476453519770950068946210362398951839052161265938247106413363592828034456366882184655746161152945742982290526319564598220227632306283550430669980329513143099213895550918260097946320333188254073862398741759646292182014736941014765410854646780218015054508239312838489428891246516692305614264452265792115665577986982364413030769266563138176530774661290769625584773029408307038616602142336849075964049121739312885970172062704431619848000765565577584722671855962952757474855512262665147152073669256625076956972450576665099622144828793001238178313291075441415082266669674469794964825181755521183800275277833424547450703367122683995477547781181890385636523802938209799549687167628638924936244856211897759103069706418679735460758980176528585246714868460839188955388966271604479499676395637845488122408838210507408861422181468264586815009357896871493111220274233884108143316148953134154479410976657555816945172247435579875925497267896734315852605071807427065486044434170575405747382272883397101867945147655641425970655156875888557181707358365822754745043679915792240342437173950222703115300699327524208986519310719157827683765628832078264501897217780116445159438179047797528584335653268273239344496453461655454890590437281048145919607362358236823568760582520318850147688621321421182658816161711773488252443153405542218192920738313044099622781464972267618814930381690603925937982902625848943849358841958887559358653004708418162993180176238413492765140646410251581119618529885170683909037279724814801316837059834618339220480481575170997987190746109960548643696199136692484943055498325612234497251521919948957982372060589738701197970596069807683410773967384103310966782325877596830628632249604205395293216444006793271854743176528777739749058996515255185187789419769845629964352661803220105883960220679304384301054808878807042814050384737425489914038514862914887271055729622541179043064449701752533703199186564204584331484727751359141962891297390428218925424361781745176342620141544541199389419479211951973298180050893452409769552076982627570991487341008195314958955553373910175731510978574484246081493550874860870143585025036423586719630932568094295473416820500934672612599044683664617013478801704155780285406919672009915394501064674406322429748083577898211108879028327136008929285377707277889027121595144203129937355001617747706964735835995991614607413907115654864054043013468099374221439908150784955119599904197074678785683842349144121519090547992935437321502939291425620853759852815416613900889360617612315389817198867104982238097574612237456060206544208279250864876615195575446643244137619175073011870165912315051082294427357601990652819098752478065177482451062175858992814395669230121712400985289889394889976377167137193712591416931830581159826472126805559896013874490174842507143083725740001199083780037104859555621078269638828249338215669834807034831313942629574182877486468525933290172985096236354382078390875463778896327347044604103158440604078041856866021306253723744028962418601360330628304293600529921331138173675895538262725873311639021089626761452746499593313860663182606695368883387861239477670221303371443719522184393540576365720677846044596102214215451132639784012066301653859404310049711535851061450271250271915484848146328682628400686345043239151694441805089283851182052808054820777416521995119716497577931078953932292669720122724301936826102857340143178751744227753708451603020916277736033219065843180570831921415785739637611930579812653799118639887701152641035437708321205233258857147763246452340206143841719210302876384325191407619290963349312025157289648102321401004696926661433801466802966526264862154783053628064061686165756012902340652279778503230758489175871373178048345931752937661954613458391137073322224803886354612166420130859931155173632617057527440321031854198477534422522588410585039356786614014192081143881197694396827490735762511372178132568907404188186966968473855831220947103098251358247653831885770574558308522192663299113778334158988040154995380279485884622936765543955936129326387681433990835647092771727239920402735411675893652836138076018068751120145659282559145475418002373477679083033278441577767701465188453524321111329847437050611640149386037016637937690937460486769745509147636081570991575150815368553259244081617993186369210258528039809060874395113311340005521854033384711228282741483454738264051871074041187411592436604720748060674394946314907907857879379980380539844814241678855597082263804994465195889154933905473586992052449837656401766896636347063244037724696668623091350039527352062079160384062267522607436141884300192505472107185198283759869892621518533030796260439055959062429477843950388268630502097046708577240943398850127947886185411700448593369856439042360279630228287531031820695443593583575095548613304970911507588623164845622444110140250917246181513181543574579174829417301487555415241128895870699745855072499978846595277093772612317261259527489512938489415568171578730748876780641186426993525419104911981327229110626338880280390652456692626374185200132016308284368354039478470384473941226066284446288170981111876213828788886989943417365512399600273724848553768770410348353249909130222572527814193896555915125160123729757509244400270057906625847518089260529250598709887083127082670338864300493603852465006228444772070528722378032814570093618971551228015021915309839254034168561298374038542354897577057918119569469482130462759657992548644924224733480545382180311972320956364637968509248672768312425155141978024637923694046038659243005964811183678949294787383252828185069276229425441091722770241732121564312034874249183319791643543387852288194407228143289497757472766088414319585995733609254687347957183877122485368564206178707541590929139573185795094176432912436599860412376961974480075228985475157820632909798222561275321846522987523891849933628573098220768916020031094943639396571107952524831715974638466203419524969646072999692744648759267280195923892761254510893685165491363457961064708667710620379303089421951681414434649562861049517455371226184109602575377000160098593440086294743108581218572748373273973244353770651309075438741252713007602697007111067356457507047261089824249062640502608231722451075958124899764834794262886024304409844388967471970938890552432294248632042587323581564233547789824714761097201309990356047953929961501987851655505316407246710077489511145063582815306037395815697520025275576899894625108977428406274181793063886603955187773466966076740986843840424423946681774808057889868258862405159446808764705007689250979810751219201110068192881904214852076500551538227974551209025417514832171804058359446222581807478239484282073943676933819440297859419349450287419176316906946197890073138325945407857897417363363527001267064279290675178114927851329402754898991052674396786301189523653958395631598035805313606830324259977867054024213963512691804718945005427708248765970606243477514710565844475340378160958075189686478564565413546587813374120689078942744003977857565803821263729537360266564454065914737033104678701475229171800339532760962015585956499509651096035886541820203349689772575394078218562225309540124690918370707026954454194579029231348516440783410795297810926922928716651118388082060840544502432101286970090148240891415415940128569619420584742054947401082759251093880364122748075898128280366897807540035452652575035109033500598299881404846947079267314123228208723009209035037695370360997969610609135581766935091882061354550918795108885044502604599787521447057101274910837391430440233760423337448277671628859338671716047913502151132734983016850213640909482952936254204931207686287623650322901867942679054654117466599008122776328647108625560162610520891533281220221636129926541104043654115832807446324808975731566580615853339558641767137517143458463558144060768909410305218897130302016492523163255289420308875852270783954639744846927981342211653341942568150672993871502963896057152760953682869380900425359950560627294031187024806858606153533250551911209213036965553411397441072672602614862611331909029900044363552752952875672784694510868839370248274524343227173344416938286616402386904239385552996646840304722852075340215738381792330683318131551131574106643102922010214190598003553347062504488855343288581784475084258966299762893128794076047837622971435134664289690945633992801837153459900188565266033394148723192683381945768428600911215500885718569685306360074995534021671419222718761625437336199888489518127222607354705811128617890408312638467729853509277650081731183265006959903633114946821834195936129340366496268000077074974199734026888677735013114176460635802155302635269452786495524804039030206806384646127060524378614271470066853285292512395900886824244783548956138278865795243324434192804392150437475824893949469018933847619038491964635240330560241556558465342215108147582342351997729574758874586054986874490015174732110001840644366681843726615510323366364041799593202430767356144591598235219346690184273778675402255734530782966606378354428669489555228756205177927841532080944145076869128745454314776906176095883633608228387465374330799750601174791160802822277103327193950914316849391142448295063846454954744867435875586096187938193954922433457918283835184849239618706397324969139985823815952635475891140313934391332006508358716555084408033509766540244968613763894629334341107966049643572073436708322422441808910948338794223528392812651747939405769852477604050578060246965601955210438753987964796259318978651518718461316514877300081547265306982704810986389431316551918839675635096073547802374093073436856261302713091326361856013490543802672511952908725288115114742122063979205720433465796623993838562322773789408782123272487561973681800609459932147964892775568300280308986258124289978150152893443567606486857108566684398256587099029187144911878217283567444396615410992663205791989109507706288347258552743173403356958168744034167933145878028714640163346354715389563139158913596018576025522115770534239583169696956690914766737510085381635741012209783107330774122103344175315390127986795171249934608608032071953573523157694926431954460630929368474012756629959828923197268489250715169854084601411558142293643178582768005670872455321539762836094380188143769471416448940293987618909347844457960526724545226216403859412264594079761617713204436007868720482689108941335815998023794235626280257437293379538142647390679874700474877795820006415642462199004754308975723427731653581026477438962761102039959711972059000816166516515031793470391954510900882580021343889341883508989963489742955493198297159488960845737448045733743404707522043428043111697931051733805870371285979436410942654933936089581574842754047950715573295463732161650360697530687555720877805884112726665409474468378330086527532372408027222930020666157528294959698596911651205261121791966387951058257093306070037557412160138020097493711511748619912322778526592337386731492535028876521569973352377210867942937352802181610320904911879021438345852235822278875016336673718260767327646064972423997432398083570517464050093952409062281316874533101666968429626069782573788404189997279042612527653827602385539428155705365831796072197233773632965616742802762274489405938712327869426381377153131896400292718312194464281488601679657384151321307786720807138007786659603127358306394648927413421740033808655233715573084922191048260493801753465152969209380896653761945337068635692710115265368699028015790110431503331617750345851173033542110319703520054498839484747963874148211414708255408416668796147843223092276647736817838903449719233603153779106299875229701636644201921410646727948172249462752630594218361451263703435405939827517492178419418784406849389347540704167074298948576229522883095681366682093461357963314846373957304953029065976706235724765505170662767134401490137552875995333754984660779022764743687361611362617156864733962337011874598479173435497633335904427780564090564304061392745832651332465221817862568797950951354792652734215404378180367013722699535325935436861994198993176986712264038408666723532840940241827118836249879436588968117045359166128561402848788100995455562990719450143150305757788004841446382270647958761928776275139009512230094300234004151382786277802668528980465839218501904741930268217869640756183901576829884750639619409346541431187579096810717391411538538858577680104369594925859519896997173225365929476091626004818326817090105469178956521490958558753460615558584976324801767312376046863410932398653169267854662429321766496076042758683513698868087201766524942464084535993641201518230014990075474320612440999736966870123740769557044223199346267400627391493340702906358332085331904326710679967345605698458876429192120860523777355263614265053018572383581933482600328011518737451897093017733406605313444509856745185105982822484411693633054438456177080366002251026511796521768466296891466750231350077676052986943910054534031197689715220338564962937230529021808107459422465294360607289899511233529554378005923681771159977813390800371330184079900974701955005722508376241898379232910673325725957753462376477702847263334394061814133664715243841322682101150050646984712288998972274599165661790416868279944542751734104151701613820194073014882463569484681666649416918155187236116849144191026474259935436872151749143809417478487238185499574510351970830101658948999369716611628734737091188528593754016620013702697206489130612726088826383847672761864708401312420332219328315332922313174860076790638444258753216202668554195846770572925337586622893148295191856628856048719802688128997240949714631454452806765849482585440546344866234964367858759474187928279582059058684534700133838366859494899831254393786298259098084119817242589649914089250031088285217175819874077562831669180298999099437556984847765198753235981624579859324480401725571388098405095438092590030990023537512097266946395405041117218093088827616549344963590534549956186954784768201432429109227259932923332636910680448515907084350965509670224500732228425615584082543134927352439013761734804996503085682123521622968696449466352589607467142110881076396904857371371722691074085457953922967676280441267092514346868705072200706291854751425742660528510756260021202545119725626614634311448652308394576762258620074565243137955253626463753740773842397350790468547351152805246074664567856799768108089488600129848014178119696071937545151271186548513862800822622124846877034307159563099730006921408680757588631143184375206026122129793848791983996998908327365581791760335513612168129642707024502278616063727301590641966063875529068812397027034196749108246659602827150240131804206916643483862012792808525891106444815053248950419682356691166723632265646817271302653903192341889165163844721997700402256988757258825176812943435182465298397312231435017832921609849797658352253771415087585250607236890487762785035477813074454996821630000097751573124609708590687229560236873280073563185667685197758074957035749028658338773603157080640679259701126908516335108811786282166396148391396431461018313595597384477772446618207257011981687048393893647895961901664820451188963944431282362802144132598455310843783936250333298387002767386853006566750963519635922864498086051519801980864698410657670774496959673595775726079554981464690223158523705022620709995229902566565986456712463877398221628271926223120299939304753289627107725588309893753016571758987476437202048794728970267222718325314055117682665280126168145947431985007071225340028814060339363614470919614150011867494187869657507679134625149174807405247714891029948448074267758540982842750278896101843333368932206780374502277742780340664550936444864755401827254197776440125440635048998622521263242881435260383927980439848724674848879816040247670468366188975960671810071675312045012000427979595052586906023562630461472896573778992613286669061141570032199534144966384165320341189616163137132908519056854478810923317509022156950890692010525791805538071337375568076395873089040835439336023512313455588610513618981685008143078236131331226503242640619666746380034674816226842344676869518684898109165056711114631310711693829229019710915227281662703745937229113957030464754687641282637271515319165087684879982592295939123155246972328367413327999657205567165051722886375959175123267137051917725862636565648905919426890500308736655588334371808817562262550870129078250993283130615613110313875712637801300094379538843486419530488382285372066946765848591806577864143586142247694011658678404641248456582380956906314012682629763640593917071379539203358605584997225044746161520861597633868948893977332946758001363657377913945378655925989743340149329140232256490466391340675980465082866844094888563380500696661733934896556427956362504788710899835752066503349812107466318693608326641744508480716446650773336118131965821914055401809150363493269892011119054976794106851022726702475283194611488153447586931627854741673750376694111644918480896537212915766098135554061623288853840795743668575222954040121888529852875425269430562789658964908494168957023499128480585967173556322099728949830280863960456776717269018328951058185500254505347067713566865572567735120226566599883628294088662804062561058860673535005813704803573751422691971813198787661365184870373032201345210246083839927621328650716555849853383953960346696452874882030888406367994995034828079345577513913881751215961875644553903728470316162117253243549840420558950773520049783245051198601795359459686058807560965175388092414426302775201392363085965905689498138567287887072521811957268889780648665416844555421889995679600979090849001987153613445457170646901884901177729842373164415523646408533314978157316131271936538265442190990239213165109492890969965681080238116296375834694349892579111398852135025745832910157432026815102876389461259694257239201529010357505983619595733861325164405760825638496099820625827741013540663047967839296975363611804840158963197554807167416755494404045044024972022867806809240130149450908709120819075388316109695345347943580524040761783232871527042830106293027053809352455842920870593082095160752901935714637755872753452447381303216473883195443571727020738483867561261411553650609679839409331697781362078119263617420859118245291849515383092736978336804009567218436621672432831584351200971686915853179715374982477401553881032442945569812934571650623085662490634660027223151555983547695847247969323113097968892896543463240985070661588475037177860728513169898545972375638480707089226789758794929367233571347446221025319570571321438049352266476321534496800335520159052671873242470687021452664142280068772922479201591007885991215691370352273120425064366757209728680008837743349372238953014699769721958640665752544064320739346158572774041543071809639673535986585593205707049836702833322473937291370433747812659841415753500888927382654572985979907395829282859771264436881116363464719234550614098437849493911797211669781672264985401976982365710195616614519356417328635594914521850158294537114757048913967254567427991373056351562824246998579766121166386310766455848461910630107541201602823803064011877608902943303175500280366616964300171101258789801655072259472096567161830698384103420717829211374017891333141953890808380680528963446746200698484659111979758351397781906665607278575677238420253303301217535310652620018567987912348956660269954472601444993859595433167382985182963015148564140102995149308036461840708427562926315912125943521082342262969085920708356012109802259326168927527399806150047771656450387082358427624987342426090169589289275650359497107560033675306762002369077922607461033619373488787421027326295408627863841395070015951417916884716577475246324386168561632703935254647825966034122812992263636531210475879369635111062308939049897833040664764299177597983087800751210726088128680298361477500180639650229078380849400726035972968449193251669644869974001562734693910082361817778864967779970255082592371079377669364617584804469602649288844552809043946880083288723827295928942305019781646974056986053298104849298237462886599873176537371235742453836996992772860518346188700073810310432335453979138049117277315970286706402633977619502128129705628120830438159146097313678080577430337622149309083661781386262219863555787642752369050373621395162606313197582219235098674164953553139721513566828230480599613237739176792536794877267014190592175645255952084396147370987205976798185519125617386774334081014303409209275879705984145203345042076006500196858963521973727075221905412552487842408723716924601252831776783133690511133980355120779417349836782577598395678502223116679713396556484290321599711631211754538572397892913561307319883504095836992069830513216479322694078093878596232802746761097822824371473165345693274686272294633993108740392665392669544481045825027993997713968930561582339976356490824183077048126556984809840192075836502327287439254948845976614176538827632710479576105726853411988291919379154557832405688824416063228829148762813846952657204457699364174923146558060482410389424004238762404193075561634053304816458045760258770167312126027476189364800120006320997401577263087531015422089870300896273275593380894887396616692882643410045264819028732754703127979196575211165939990329387742741030343946832962388181570355031453274136380817425168315021281708926835861169772867231399196246869551860542958508347133041580474105158089257224216995503290002762411851248678902298267646031301867467731081669267448907463651377340228988646191242211018024723078049783872555026402342030652571896698404467036625868476923579014140979750085091583744648004582692645053911800906677349967983434808743375568655390001703802074253424066059907676014402141171988742238716354815632753051215822224416852265346713193856780566019992957067273057861728195323607547811765165758167761762806394936320413779798663340973026202995442430897179859962614517213867187902615941260766537603073585089717670821473578315304946389057871423431429842457861507115502578316761940539781622015279249964677800253481623288324711379733856598773132487721169452792987739295725812348481772030557228356933202384821616631865507060215431594863965632247227516975257011768250851903697677445782599723696530916246629779654237092874054111922274614710938278375428658217110325676238363089271565202495811777359992058303894225308099899470328125495146171330748060732975405348586520391385630658994103942567203797323706807176039913555516215393157925865687448824349661122666017688256672498437721944692343590607139575121954820165200851888621559463639575091750546878829221483400123377635351205576418388055297809698804157599692122424137769922628423385654598782461053543265504462145947723571307648183298245431903765499468687166618884437415004606880729423924355211639679193249594037948621299300689869147406626471010136020541543977521026479128249186550622108566750888528986603645501748291058128261137906798141775877176982478761590960811821911548734137363014647504972544324924288129894112075533598483399988166443741214045562117262486024753143255776101550418059634934400924633037830374032198230773967252238249359697426634738088575007858111501164038844842696825589323949741783229706715510507121785315968069880918576193831701856272915150826606161245223591900225168595860757706591245725528827393339949026070189494863585139814106672957405753972525114151322155621693078612124382866262738461273406438938949016334854831075573238071408570235542928429779659716728413376834511569537141183010407045587269866041621110857327364309160311697475545863480820949134263951209992636771240893871927770325657739960489057522652764481946144388185845911242675590529794341673859531269533853219924335855194792283097567499075654540854539225088431221337025578102665004688526512602810525423593216464824050890568907378044548578255795977429287402952803039969484890572815935457133319276786613999923593332123333163475841901690142084491201528449565489359098185320921406522129445349568830862847994219370743481662051649168557098096982510815716488078780781967508037689821973909306696362840555500089074454843164321371086739480022598695087289707790302680063080125789504864371863324528278474219548202188866231713617785373201249292931768093513548732999096855629450829782366924134451914687918015537589061835676379549926473395378068747823418936509839770898900442373996646388698432914035146207280677957178834195737909571876688458500257556100532516019711429365940737621466790603245431309984561806961957505426730742568388395006485924588550146295325086994470049044211417678410486918096481918367595290993259773417810430607800413552399296370966757709572475524074929975318996558431822523392281974176312951301375671621242901542257458020834618613213999600446434318552153135007054673529755242047347934968330138725839314783134764471225038203366285884003145385901941308572277653228100597163318220613695919977504973966755353429072673787222396871840149865131898487620714956998428153128029062440637212790128738149973406203470799141100376767967255359993178910013880944861062263250005851687506857870264822795229730103005365888129270288891810551393287130176210776379602502335366429434623160021746830808119329686691525930466160266852342178988688006573713030493883186443590229240814837894776578022349957936684370904098945527484865867229697728681050699756289293110174384618542007110853953111590696258522260227300347576402377159405046067006064719961186826873541738325524425636613709287037589509385275919772084731342752614591013350000431502484946075679458238559623280672156701679129718165255074798012048318037726622127587207887384082841941326269675803710847021595062355536174517949632629173687309790872865665721789566075791350593949526499538479920506685966455112454008572883420090609242083493456886502905837163841586982340902365486400893867134214839687538194032434743479610626300976531803966644282320139407493268086633126218263982321824603503118551704004881396602008635409388448096663855269223384572311603827505888646314719389589750811399597396241824149093800806700277810765533940550122015594126500494164702232480276042234365386975482659754405396488982677562673246883416589686967885402997814300531287996392502777956227260509451508741903082859974257172173141529204708937411225092606056887010572688029013541466496490508190322449493344363310595982620486342320813776760785389971872233280347180743364157620664289956329285920573127655128982810389686429358716893536817290791180093583431279695167773223366354062415646262393901342482288832035376914698086510289962159605558061803065679344847152753915554734015562596250867631571215725185545756605570297165127875297277453145166037482531098046182477883088819114074058677850889234928768208748521763966156291129769944774132262270643724217630119829153838057876193438183386699609467373245697618591157861669273997134973522660309364938998437068885215531538726565222359738938236977350586335387682433260628358607177368333562437846180159607173142366079277394855906804059007993771608209971148117288372511355114226390659345948051244298000172136435816814205782771581637804896410697921350316361441654669125137776494830757612929063960637322665471218722682650324532799651015453232742264093493483127765788332559562932264062752432881041720668615850146555104497610543738137843237832299883527500905804617977566587228534888971762011420362876216021393018754363085746262363214220671600658176877047446318861123756943079379341240992464405885854642205047718847726751403412549329719419643141670483587314977609976837529776213837037103461101773242256840826505406080400974432836183272720419559615296772321544329162224969828210324508895143518085718922204832921314708205769504370928794227402272776482559907497450138228667255974610103162757193916158041816965462334952965967498935685589607480620783327838681821346361403939276530942802745233090243288652692147937184395694270570524939401924538099430171385159038462571520368913638259473117970537717902479749363058960395522521034315603922367496869537167183522643805463088687842784027899950149733332749369627757058983040351388845708136461984137556278024012521653011242163952985942421419237769145367179242734015700178477461785624943121994187158715150048950233125719715126497801539116751684268980684751549593634032860868446284902990290799756873985157593136753381893248291964208399761481174005195604848757521267244779160309723628113405548274898096932788728617427595770406724908789836003826006732775678569281382113871323896432973264160663178006539301719478039055101722273786876586432511802061409035954418673735602283534996906720364510602825953735188278361245599755965648050556810875797676972239949937979120245135395232828917656713301404374648960805234437650652791616098111160988930132394042219979852030163820592022750403007456030404739553700002031518620301742048117500247685473677821309000979221517805964419265411533525638316405076128262069988671684380057257783514613594351193055884928756393081974751080151099991745644835673023888704210814793526428054313948438263998772244523147651635017255328951522577970781065668076870933346002471566724370856672087474166694105275582090608925447957635474979912129428902316434401306992818538676808466914436143872822452088566743576133526669221475225073957607063909929591703511544957826199223602597477132015229133836115777117988859028556995068023814267885123458861873307447553613992723844170683159624147530572069327265779490682541420872172050443006924078747636138444929665442340160292722082197790534782603325716796484661990397357246060194284559827078126685262532165769474225141501973642818953251300880022327051235842725846524375128837128209570099279512667145367320917351419469615448720810079491619071087431606936889092395740233634215885584987878755425653760942845327061224651863215810230273365794697150369952009775961843030974754870021614420093962520323210162179213381475136143776953968742054885858602115719568740626074939302858464204955354483956988741309300405045678527344013473362285847116593578036173919361818157391487003367677050977640232048928596770057950032593787539822593001432862044999896049406206818569604283308533727309983993792398456988271231026300225660812448520575505050631187064506849849096941215144876885146819525807614520813564381655667230058023409285805839219450651023898233000203318539292826549000295087445834375279913594855885627968199809655506184624316933802945265246368622799175665063506546749135817954523799236527541934130212705507720938577968957925036866024335360525109734892329251682367281732322399837308474232133368525866511294833118231530340350399409052631172886457988070196583648677533473631504696960875725864184098983771709071218445235203959570610302422080003224430880903996618239872323245762678910506618118975943730462204021365448107716939838459451480910977057907430837195688022729245399117768922999823898520933741276003494844566323939373660961120697255194274720411010056671282663487528109415402758298787482708044876863302529415279820799446810223949669709838343410126786072277900293581650236347002178785389434760912421497959156299341799158468121283390517870407461222908577337109256061292959765897738531385690396297982401453463926550841789218684230799445883759100649942105968516077135375709697696488954336103956628788485747958145603574312057225707619517792288904245669504096027976606272409798935802563571085187320590399895185101829672328292955382814522138645330070967640601228101378539525004021388307471860207021973793037566945777990479412398545846706873752426253758723875977786347167171945606165234218766090992005753034896406990848473978253359663109612326931384213617575905996145522189101733721386782961818553627678040151420568450448924978351133693692126651308990025052991034418706663033975594712771713309010446091993221975632390360472161883516982018479513059987431622630998409490817506595438371036989600785768257829868962313973403306123669967686524285308754084593981389163971176120813687727609959577085567809369545370233258535511905458231775317849857210887757890427091975306764366452493631264001674590521557448386308706617334975473502783430960914660997764717634733427442043756701403308084579328106843703161122799138311863764176874395352230586083331979191652344330088956453289130902103979207996422822504765040193756330403270017634056614971610855770557423374918757422910639138636406296527303296656409907131310238051153991145551354557638917739263340224696815122924286011627291866336801019678783686126991855268164981138641578884280997640793100916749650829730026022503575533923251835853424374456540262404791672268440792833047782240280181172306792945684990939804559446122426399949512203946706846344097217991878341836534655515661442638054083901368089944022070533616952125381446848607202366274307595507951906846043917514014572408437057801858887921492215790075995669496294259842179836997096186520907775706542732938878645656146167951820975968266619026485257186705369666021214342598823391870431584822157438601739501020123347703907404747990100584054666473372630288439540934509032489638259218292160169882525412681722143189053270073206733806237638999847477507108881885332444296973133539856104697723420456185239345771849059885435282660939382763487937625878794921729772213327132948915110544298676500547849892118567213580572052072294531873448827870194828170262264761310451146163018487401834264502615364608327488823304985666525703845403946260982453617400416608729908244040687140466604624982923200455910045770125525009603674057290848895234990043610311620445295342634193731863292635408405065483934281619700627452670743266975374959675084019187151216266902482294624664626140862084915861783584751642279255416876590477903845483593443466811873174300159986571662956975087939778643966513581031605644338433965234795634138356835615483684777066031457589319920723845389932894828804622470434103148198112106412781675639785362358312752993846829379588973000334515313898075376060548319513540990352928413263622531037431458806948122358436407994101317956756336720973668912121363355073450115786280117488755363326591840951752992433606048402464934885117608112796401473029433091647687955911509174739064520517685868938386718545451198173396499502201754227401440580855467066409252865505115237965992460250886136327364395427061997574485073998778539114839740293943599965884046869333951205851396542353241407572810568242379888674488186658181433441330071208416849151190117463641859127592973914417856929882353739627094516543876024967026878416616471798287694577941343374201356392832821050813871539146055818788538599575882435254385313231091146357417207244802220658375003626130320466918809688037261943281751337850402161366361765293643773516942200186467203570442361979458351463071850835504470014729722587787457982130942036660293085133299983140583947108408195316958549009062024267214316362652356476887839796784136647184691930526091424890373574581145147925095332187271571346319631358104579205521293316786268072072361661171785129077239080006425347916720914168721522772636683285729251594543119486249799203153070187990743334007590829021586663126809825322519579148893056833015768714778898415835525005136673162414852391506042161472073526677942119356103082524695952340989550693155771744776666734291009410208894506555119649126595200542283741701213282964758157488786662410492330198048083802576671873223363084030853250443632265493006827400930829290964202521083498936402439611855690492738239675904483590270853534656007871626702262733537626567719030954794346346870418675013938614110049104310765442024776019698740139078959455330636899293531631746045891654180824282130632811236383147680707370879458282870000094218229382185581276533508275536035770271201186386249103938487755549120803813954377394909691727050170811511224708050772576681370565128752422605394861463684728308705526263952022774979032902564188301780884001031729151149123009043772739513542608665740104315154600303484393939508803161662390079266183302642557127029758501038450170820511397292509487027569096830784759348655882822499483633241150331771916337731276707222201649518102058647448446693911788976028749541522356467498906535053393500908844452589011425791761666035228451718598914420115944454501526054601505821219948480542109886895975345733648803400207463561483395945228459566106910013490130318926589670969874672377819195228585759833248137428686497160203989477570101109469538148074421887347273289056399209909406334724051231328104156788677320214037253044294480963154791451874517836173475895706525802991940041390935958686299444724017998257288487693291480566262823364709719919463724872614908741340873523680916802003455049177303421168774310644266564215583560482137358010570299151352241068574664419083314068070079058466082259518178198126519633360408183870940738711537525295447609428420913676327158248953498559971205142608756044953582547445619863727251066181139474593988136755564786746737134495072930924008070867046613726690139148255870308549626662683931641716935535987543701230284321538675172428966982844803463461183221354505765985450583433681697627261905144971744671631609977919622322693842402081977275345774533398704452363495248506390552527466461000415206828550108625059308808856288187326117124577763703224911844566982951996255358923874141705849965468766250431257307372501946309708975908691329667699004445509648321936979757836889891112325782625343385889206544400030950975690621397443255374611434657592495877144024566962197992759809236810362827073612534320724737278690395348642951063843675902377126146976936166219684762068331752613510090647502488288509052287259269667074960154081485006535832687505422475568892572237390366377030627861697788075830357636210573112639582991622823920774483041054041330330521324090637635674340911236797407744143456936257855445292123151565064023981781366785344256064347579832998424123699949055105731674743129382701388284087907243614157019879356306159193911710430295605013036496746940976836007434327791298591677815824770087048343919958239858944735152944470540435669241458186947689722187285528509294042016379974636887867253151849099760025768527129435894172715713050430872394250761819562448212777699767979008717269037052311061916459456958195160443173697086773990421547527119386883466355862378483551705277913053390734605762800320375928238529183158580921187723528937153324585742745919091194054393871659748979927243295607874145274001075291008828062302253568521317544386572646093693786471636549872213256553876921666806233908551526207880475388451715913886645682510842134790057286367158173493931035886609162500729876525738376752100280751916491975324100340703629408271206200337672678793076007971006106153083227847538644738697386520379862436458624262507053699459955347731048586574125349904619324219263495851524971848538649654861680609807696228698096628738627063004595442064148147927399486073933086831948221407200325743780543137577187748721916124411870624959642922073636195083112409495645009940290483939083286383117689918791679534942395366389899770953925458095052233026191244123732611709115216096608722021411490710276950916775345425187003264746054034298901933935656987385619836322219320733347663197505255518704146886328129583375552669214050548482004588609434763012062345923168862870471734415961866719835960518043572457013841373840092520402663704669675947735464212907588620068722217005235161901134566740249789129997393808905586138146120097432298207957335465503688287350959638241942770651875805496340661403119898304851081817043200772843038448872072815016760463977799162836397080407594032506992869226212218844818487154709558271725833484749484238100000937549655581784428489107865391569534032255374608646752030356194230377247786672921742574498614031218534115772771571682781896164695539784224417519549504485902022101968692339730676656139390142504199343093717034876539472090832402723015247811233025701904232390554062560183440134378579131523024727002211932623160951199243505631584295569532691455183371587927081063988600905297593268678817893030419066103154660266253644531847822253542917126510230340083137227384809760694676229550580434321784445213388244078433464234301368731382208511058960560586507315547469732688506735016729784796547923561847727042851941655408974155048310104412017187992334240232572033991979670196688587615289717776952330663133935192297038043163949870257972550506581824726317208263823980066845013346698303062444270497076049659322387565149722529009670571331011718819966728476193461675328803571183067723019128437251281255384569087563854641512531249267027524356338275932589426053463506906588127990385182928910845877276076167914690665124896729129761840138169341117123933742899363266903658471743341560311086281857579987211401507407620608607788101750806674024464136380044657968596564226654941198033720763832195633784275684097824487072676399718687675560114858216688523732928347572462113316576354071535921969821869342597913238799154790453661928989137744045364291485838541443208891668614841642474616771646881181657235170648454349769962046210589703035155917087260069410545193952003477673109043886653865888583134458634283362283184581130915555204814626317355801253028223202076000659710524579117691602275962361762836861283808045303204204953400223276854093103488944010076904558450447957927545682544231492573311370869326063463180127830123721094067513364255955034917751848739391772100564812642933763580792091552361713898225430987574368843824327160086512922681777299060833674295790947187872334792579821109854203225453094112443349089937091253415436270377325268736106373625333725155756904370936580934954759712645353964508877943922405143395026667313520662116839454927746260500062418993820458286899197994091602645300980178148116163902763411325684472039308862560267124478659134578877248353074472797337933771074568022263885404293542218744731871747162548284074829614644825368170780281737827475952030274447163538804937681799952899878807778909777407405926350891107085233271485352857935967840417272566230382482756833419287771029891791987653127060647696339589300641807428855821741135833198915776048534049656820206668912933856669912633806279202582699344218508468625104187746512004628212764443605914652687004409443051835898831748552755537157431261992340634530926068054551808457491684709774232238241380009451823642128010499772560355084658321303896146091118415266274870238851661972982923632020545849579823749277990453808045279686697756384912677821878443909986841896179783466300255925360511869784443691933560139052074538831644104877609038070653394530718670789223855031772218573581313741524828050303461901411273122202641145688948962254844393332523951485438602034555317327657640514490725489524145292040898291644814979952700432926300852983662994959943667081136435237470714084830450975763757494660274337051203949914321493590384754941124217135558424718645387000458888894034313100247550460494003592773857986464642701989410054075637433091161434143935466091827274296930927421739421147949233502659248587343280067481236220014749356191608919601314775090470068630822681750733353828541833838349970585365810074011094833626981760362963618743969501553936332860215085789999524280016467341141431016973765191755408906525668779616657326750643742695918513447091732940940785931288753873695664717626931323755790375506031173224097578927245789763128653613517468965438092493374497894463659958713746315309805195855776145618965531798900141458520496448719262775009887750169094887960268380190661613768654655963163744529387319303544952801779667701160010699166294857513389308231666727741323037909014862944545439445163273181061727652648334946883604143456630699632551843704664994225712741367217628955137711652479980234133859967608450490223127520130454629847999793066900907856547312694552484207167467024143141485350280201168551939636467345004180897005722434434819780245085885642056816578910720160380252230073419252113724857006026475245626444200477620277658451344599526971601636797136873110549006722955439231811936773484104426670617504559026575991679831702492325359757928896645493762940167373332772605281351722309745765885420101170465458544494412036093903505004384543857795189044378921727797695907493937782695090166964640265063489960565709369482627163903558302678622653364429549685796303257729904887921504031297256502289779813735801637700397813490237448450610868779989981872456970897030253929727325966744183511155110652419280365773361408053438136536252523482393299242630170141616543434474034454662815240444652985964329221797038182045280084342780268054455310660486383448216078173035903017326315920636930576886295507959007419768070214360487202509984311584707127967993234941269524426991855066394431968011889240145031625866398390233370648488841201909031269267084214792322023300029028100059674060030591886534841156098461738625328338362757696872180402445195853213758162172825040981274111469803455320239122130668939695358682296031424880650040764471359672060986270887641925558078735825343104355515693715410146435868833595737516408018991725081711351159154969163845489621025476109421486829319600406257017094696776746652408493843303836454291826946537436462134172970780847158734079507028628132422116899503995804985077793041626411560968548452374991061193622177365378890606683788741060672637077172774910848455559285446051202817050440120677882733506832452963165192808580941822999913665207592906060766056796263259250843855440430074189638398747606731738177249411965011433059866489932332408728761081425098104344537547517480232728336242486517606506549349304901955796460235370626911739680717620161576996688567857384752911039252485572838268177991757209230294448324311398203291313395624758789045829206901004816406953204663479773294685256040205376200028818645829072665267589970499079719013364242202504562323737620304898329512504607160662359043023426275054001455426995472687596214143457519915789582174908840610758926045493036082383492097698858892721717952503759735962323461353883495636422387270956074919990218646370934626471656456375359842582821855528284297420418856610717097617193070235104823962197681354696831064909102936183660904401761870559263604698302397291938214741577610442702709320524597467972808342040994917376675772644538431592759001032387988083911086589454753469394483622141307949534118763855734597184397818325797682888413332561728933738660169495906204570282776412310752296001265266253482873821828087216766553820101050215160312867155457846666759420981901948185685519073133869105849012197881056847264641079653884293659817950733486970553006714115511655834785311014637880707433006863655224868801995505923817570308614097036091922662809077601243574328637424454033294143424117429239316720293529442075969006262960795664116310183219097940428162009082440681310683509895368911246189788523495883370003449309888175398598254284157552706590548722477262991642522795051417076773475920623986137509370752326073323001373802872285733168157667184848842815796166928320911298281674642936096123253996206870863701427674321594724078013394646470571810311136721454529890227042994423790762728288176019889651538399476096366291058710595721819192455568791806869350878325334348175093611808338803165880184708515282816544876362414524280643527497791013557259878130499471099850771678458843078947876803582889095583617775283331497469113662460504940506605828132231592073916640661056597552672182294300078884157808164538080275080160119589881622385630025965075946022422855621571655964181598886240279947973509319317324979444777798409469346059942257130777723144603975258321754474930607951181974531110189568579610072331630833481352804420038796853825869462706207699926899095918331115453857368790817735477767073267709991104475291999710905276032821362122965686496116082620680576729603445552860879835984547706472017149773959741119726067425371455603899901615949830330888680326554110344924187199217321930299242983571094927436312276191267005386801886359016782174752100504058992297913797749618389708039177050437163263858891698401976868179779953245573746997908756905850252503475053342106255165666904547668254437139718152189363716029414261423706624094746571385338397476636618722712877717859487995335406836530647460952402480944948615718774622420199012497198813455449004951883747618832544324450072123414134290796032045660213478251780391790402941496742488315477950093111950099553748623627092458044816825022137020229429166927147196348463894355269462943482750202466775058198570515139023832626948492931310241884241888783298969704169724974577153575163010356138766507428322407716720494676742420724611925855346735017405579946752171621386833252387535610198862852455376019764859948361321650472948405364841929305097306654795689583395028345978645337872753566697393227669430776410058969093550421697607594656943926939263573588466327863647900907598621567831665589968123801976451214065224592176734380878616415356181798407791651586493566615483415609576389418185545665205051315354935442506384703068234049733893885283513938104696614614584402991456056343981224706629752194112777184327367645583703381327025981938037308530969212410370644300292794761094851996497919497856609315118122735213947724375820916058962109469911684033686772232079095580656451550331139534369341949199061092408942715871718802880005255882825239242759493289573850362752827322856620949482788774679916196648822968195161227554059618442929174075666590823015961989263187426996940860225425353976813990837093089132384210172937945515867951869162895073713282951932936739216983502132128926307283128161885810854303787706974934729438602902304082187400667793493222237158343883965260264098597556171149656950175432041434625981501615664476491530064407106791028237708442451109117937788448716910470104425363080427377620224759012055455747660881775790767017914275003209755467476998282812318085894986307678398422450569028227415918434642759372340765905750579660477426251131361871220250047134771295026161258854161672551207211536317877985895556679668201034449694383538746577867405239032777555612737766952578136579764395801095672818744345254719780145810431299052050113238605303341578505266718063719191563158638912253102223690772169784256452505029353889584072242351869847040425708163508698122753226345455957872209472285767041466853181731972493009035437463096117658618727120052164830682511115020684288827888121803585195214373263426927488793597081413673345059778923480437751955490899856334220641237965028663344412597347597571949507106548725495397586831654524334455573403224959883097359779530802703028599238188015187593460710501357043662022995420494559040077062882048711518745823800536677905825599144674192413401848043379047523882591020496974128607756226262220021507201051526363897348687974972761392312803840245741267888383410222198422357921919439785806313969724876337031022868920667364159947164690852156553704499206913776925530386713225755364513409133688707352453524308128580185112013477308812350582615860155144513636463822758807448536633469117650911233848525905971782713692623854482652647587793249705869288895958672206149751197463257922811828293218909207529044717440119145942549366363500393212572774274301953070381193202246273631430053153022049398811849141694594281852613354251406188038597312222530656861789945594190619839423597509531439958743200497714992963461636634095539541636812438843432080250354100202692287134522116677797397832747065374691658988316207070184834979020668783449103485444272413453926592985660534068828080035412401659761101135246135676773520347223598537424559879710021560355596887783180589599590257088099675968153076651647134098044259735661018718316784111948769288340515342873000855074640599618751965320916093844621502409776320460337705890963618018950743002439947736742853674530109514233111622287259895274332777399920440501485713874365965914405042317295743450522906824659366015764185980213797747820416765415432171762257597867954596499816158449515618714558076727849589403352586311015691586637307317333301607956783522257094990417499313780025438039145576238314351917778901240624470592031274463643719618829397420378826661204112606091763391036528383691960327052406733971892339245152891460314582559619642056335690551316941079243975765297070412867519255540257081630147022816297376995442153075130879000624464891413221223509601917505419083571861929521823535505169865838038120802871488595451734983574999611536326645734101404363940352214320109137424056915060121811428693501932753694153168821184118995947026111735485539463887166481880891715271388336926740966360375611331587125396674811449866820849326740217382496152668260236146233990517302257664711530574993889427961009973720728016611712311927797412983559746778426305403656929124263265686603459471782725158814186169299909646569728931598798069783103588667686125149926472080241272869767249129918618979519339101704419369005275905120017299650959422948556340968299689979827545621604876167895033892203682730117937571089638090556570205605627353225020791590792363653798335880751832259032484205783347020924553586736426019472235839766552881796731106988816484267743737288846195788300997712216265137666060984764523692321555471523482114277535372297752970838902741462675019299781112332447897697308178839664156100363490709825556300498346412307095359114801409629079128649323694838710338408431909812083231439813602093250494356239304947069283169156409289003263092553783350669726213197829333801256160109883742500950933805896531653382440462827277347514321680591718375067335191487718086248122773686312973963380438637564402278402405112090151814566897575782013089173617107246133476387018869350895686831800260594930008277617611471973859383216945539439652370627568470521916764589183235605159178192243680590312064622420385068789601847199565894817887013636818864603130158893277648323777096017402827697239731413696635101082283643940779618455198808690025548169168521365539398230145546623223329130846511771648374993620569445458711876673358993729340322759518375287925380160223391361747714749676470473241724111029475668728400571298647138307331293688851675461629829449915600913532609519003612072146852196566641176756877174501418192672264185412643696823728035271109766962082503130911997565486528295104175730354885942311639082591135479681594912383797722368966375444953070092889824411144036501220495797879074769564090625237403326419663762963251850530540872568727959818117057394269334201945458969399781699908348189163639655444025076724873225195246906407028283563498981071759775165622225138552560969466208938777006370311763320248802327473769625522032092008184636382844601796682467717136072608312081412222713919850579342306883061216004230234783709360286934316393955804006818195223824525981302909579547520241662690052530058179541440617050559445562348586503522964432068507602867297421634578445464093418681204138987242349060384963227149496516745840233713109807058270444272545592407872118343928470615487723009618529665584462115392373460738613036364353138135666302384820736747491531789901449303953282717205022204715449751431085362150742647607110017253602929769905037737708521882121158397221025339273375237433987891157199754134682493765095940574298327567353212537486611986513234327078147225616834280257050256605562251700013459308090615834477120946584998481311796212393043839583657448239225415318941743915347133587675528343310620140740650939627761910493977534070433917912720202113809589091951456655238876363207710897108805938440728288197508589770661809893305954173811097391014320997124416216818420684985435976292949104310402855123536935539847638372543477819129694225975091955587672751627199741624621571629423175942034716466373040312195697701316663574327901152577314862464655652443395145493377468196341683174304759813362131768490341986753212308638221601892441042824180782472696228768450377361579083406633818836318203269761098147002342805483364399603618731820142918136797587906065373955593856917351869592331530540882376317113347168600113749083668067695058117380233509011861710118191126002267462236510185971264999869098873741371870901862486399993060332672051216129645526937027169871837422814869296830458722751247486710323387438257266706969868885912466041913533672597277824978749011988492489770325142602907522325162606307294152569194125149649398094920481959141914672647705194408107487323373617086510278674766024317744402928094000877001365300415832018296716286457329098454848786851483790337200170164566551346655326672817491709500881512406234986600577009288808853936715796923761114198094605227644589753948183582968732357334659245945665354505526204652999202138645414473519444319717999914397019483900013958571348135494860584885937571362821603314903176592835549473331742245297647410633943340721774524496775259956661039778829278059199439776667344131098054761824796725310114762577200078397793514418320496943306392054530389424550247238209337729571544004466690001535790076909809316619267464864949034689806810326213693547040717686971003861068270550033155089981312709710000231329585269087785470838526214761580918918029726600887094960970509249060649677328532492048673321201013775954558124591650246901931404999612398514124805561636532619261502483765424008627400282778892826589165177828515148562251215476415807349231109807151730265820428184290004852529889860504945544979400165559856177403066102439578639296170065054367580115423848902162694068001013281716715066134006504159144178931684404435748615446528487493943507754533907866883693212183223467285681840043693489504446811599042271399560848336338503140327293208597321700448037853051535728491974836756208553198046784632783765659594994570771541199288624296807569705473205722467038353633340155770911383033369946586552626981503099494977837974951871944432475995167337761614186252591244066632075181333593784796453089521574902368690939409077148539265281234557298825950516895058108470011068671275592901708888633642208960450911321168325211692522492959349868995853542473663749245877716508704253013539598432021017839009777999413207066971320996495849883607100617716997817636340331415076368444302656633148860435498832568135110200035916170838475832182008173736481402950520392052574440948712667657305781760381190763574779019297408161296122528288245677746504889736293689640260718417728968941566205293545673525581858757508124101276503608035614484996548670479975029265133054744098763442454799527371942557293434925631458679870421047804193920834586224200557834136439093416299394536924007176730791487072179570088795447864560670154297720028299616919825656949685824338719852563059971242835783352178365693749381815531033529777324148610069021373415528789071911349124576794292442095873509782666957932485264166695952120259567020671077330150256666096053455486231841782487617350647503412562847751793880004347442749949921790328537282251138724804381131785873047393493597766103367858457465100869425143091492782866508021503660147310709284681612505379018605232185237231728251096586305610331811095381914564356677858505486128245545883349260543082158572598924179937484621939356272152544091335557029820939552416020827805290144463117324505617208677868292576560782449002618859225997343552259803459875611086949838490045502038728476760969657123090342859025743064404009905185977470807482023227451508309632500745863256801217133499286932905254317960529386933719017309926933694781318421326164283600019024582267678151117984875250743417973878440312762805291234402620977129532922020425794211124834695724157705000733256034658448648644909348813208251747279715808126801890135576385394871570029240982947839113271337598824754577369902359757659265097470055192167655916555222153636081755115817011847998946267209910592001280055488715699845249802170592081043627238098127804400369616247522254654424292894314416324365923595790423237780559165534581758412866118574286164273092652889702062864360363656708590891818054746847344282334729863371366655318992342774859686650946016390562880487425871266486984885521464955522523526891626639133376716152906383816068759068408250129323295092804056269528590456768703820343016216945212361592130763517973174733617495023195468675490335861797020461229192027188366625629250953351833013573917875889464113391814054316244593334039372700671528261122096475807879769420609976245544268361389222302690688238688894112743539615257073698848643048897899209614127835489275830116297296336047170360788899830218928805378044880367367618637262420059041738931835437731384586326092656963227297965656046931393828161318958788479473080110308434884617464582570077589834552765077834542459404899260643464024013431733755247884752534631170016716079065212863694838287738340728410247473213114922839892534864704459853979550725219235444623540498877279204816626571899561166902843701987536662345042489051108543414938362007635106487493135375103553420133568079287103950280740342495516116957168738397704940137682890530989635225558537990367870143578040722313674622245537287265353747818102747163344268713499531205423808151374184993454507780923680581003217297847978772137344998966776558587779151919836812396434432633344223409192002256661658497069469334935262077875997889463767841847859919320762074532337146648721306122196120899108162822864752167247390738258549692047929457225112203711027684768569379997358072978873807594604343617486108766889020473717863466004538287201792619613008414504981645064806768627695328579602795076914982881745100616937250223431048683858508218664917279175778584356366018547637613991977952894879376608307049420440275117264154369113468646501210365723867010198565356489093317628260678459752655177700157430235170751798873907124484763834476278832616904569281640092356185771319463024130107929136596412623041770499013249688405862869826466450288138582939505242843818406555685234734019617730968407236762085441787035242393862812572756708655279019621828421085846999897349408481285131615638970193080352869631114860849453767122438836665237909362467041788934916003136958445728941427046509546594087697474874357343033813017737605645283503418418708972437802963181980772300950077791756084760401086077441851472777486226420098009192775996524034113699960423616555938579093476056836293838440679520558220606433946527716816615161737637216901090279811586006721371935971880514803528574757857295939933044213624379206944933512989241871837289190452482877304314457007111973973584588463434616362576381550626769677425946800522964306317899209918062472505128592540549204304431251674722526277934874300144077664170982955115512437113506750144262035556176282776811488433102039289294349755235667149717561807439742180508711249268110397661155371029131238248170571482424986054955121174946881463210760101256354749754618419169206898719869801701546421179119073512781267046861185235889382714567209122203830889860088325805673330755524247134155734932359176189350534919336443453380618036364593142147524454449203375471647692384033773639750946045349091452750526320197617750278614480959919012378316402735624110837839014966140112914795333016442886537205897172918056359526979848572315951180853647198226033249337886591217881595822798654288775537241749938222538144837926318853210856770991642098210430684462927197649512047617361980510297625369158900932341030006663601843089611458840366257003934146495865562247534129206189160765389885106289932881021291361300791421223451797902871335531869634576618271514345117939884640309122972597962673794873515242014366113485193445472534793552877477005183776505792754208975660686636328687660654766536565063501897722081339661059569923308717898855672411088943940599454952079355918120816116378327419346253451250169933072091495220156756822851383902393922625217445193938713417088145159515173323290483900480963437141043745001960176047074056756943596586931328200612592469897821763191428753886662751016784915961774334635075685176369835792957201780275952707942142382700585912383345786980299099802183147025488351275875685388767754820132252230997470603144855950393300540978931841956555421379852900186412069327024027249388066120111814287157743606476148377248781836329726781792032665177312692105401819866120050024654520534511244523723241896064613360205720471447750795861968526634340738726058085162382346703498457588382594316205209622373672384638037005881491973606846305578300426511703941244608148259602749819280299529111778191413208453192290737558125719394336507626157000924699840021596104185295816493445008309460456681139097154871647222459815699874554143489872571073417539682255183957524812208853286923712723318708808959047951579760780524046972489481390417391475686262264661697695500831738508207223377708441320069320344136799196274428184662427033818809984509653830690734306640009897529671887600383043129345104101825995358248099894607566603790645522271766376266386510825308649869301364796702534822742607230705480676362582766656701757646548725391760143080431562858168784365575964958609878011895685569121731327166661372093167167659300623933981610341766548746123835915102275044231691776929835216364729442102927531151928060955888789161997658281928942639969894068681190451287207876524164318948679049895745415876944229931450341279996112165304079017330050798380734209293089077997874306347195188301101956202284267123047280064696566830179704489985049486765562625770086219386940153389605623767078432029504970166800108663479296481219103259771788544009657335071537414574560069576700580304461772792476655217370758582693111464534534104136419003501144776291181379890255631365943896863882171959025186965689149785205400840075156717394528684079795411053597797513702867742854231637818074433936980356843910822420239412535739986492173141926422684995071271460289887128036397723717046125113529561668162788558480369856451405020869570529332149093448263719283113972450917619721841224212225139906996341422372719926891453064130331256412890778267235692175450590104735730391765572884581421133488422926049020134567932759337964914510724102426783373678169538432410063331100979184433067384890133644714973302317878382338285595779837166801682296091022610182242187597564687272255326520108113390205738042212634685623699736069885727117927663988354181480573988069090651655747141585311682989245741949043565635018260919694263217738157324717123613822134903226001090654000137796199061961118943824974035061085548234006286465759432758316762010730957582166876450652813080483643292074075331667838581157742585850566592086852232574974903342672443301632046739530553156610484081277808861796557188449887672207550659422073111255337682343246199930265290132153455577247021931202635894001927905544410305407408799242484485029185630432142179793440323014992539152935847681312567560112327241575836268938287208663157728863546768659119244339817844686107119525892672615433124678680719097438945550122081956741279576397017821279694383054448787887052461002762085183975102437696316508820630259723489930248318531185516206411288134873864924872319317793665114525503584369963231707828229507324286511058837240946573832722925196533630574971058342894492972364827001071459038865907565066027559225080523677314925125190093437349975593097449208506924915861037667052577014838604342652263876231347185120524471110418339787004359657746325431332060566410848515680579286252158852024763766743436395009999698024969927175196142214431117431540646746330430662558371905042779866741546147566236776077009435604204053794678062941706813136266717837647527239397870217398879003010654108985928170028202706549091809147338514435754320435111977648652857392910379850033246788462602875792541133246352569037725079890948722010544120533178374511032801151913217556262893273473629780239459102069407626418132349335383048634001135672476068783048827211157165696671364349837980423128488759580165953737591643030126050917113106251690343210645289328713500220155411987163306311536604796819836521786235089758787611743464079519110852042978974803166177882733909644540851054191555378084153402825736981258528241854171967708797412429515584557489567558459785734837656871071443678904860454489596336341447854336478359269970390819520330308866684060915177938709053727551131638878996256661673491234570010176011330622818323794440007583441612971644735630718336286775185592456715013407337520901559442955287989943356220451678737387822760604256708869946591391577312872168707600685551506101862802296284292960654666543181607990662805773292950891117317233407172251092384693432076093259409834919989585019399605768733141816695919147728576226905057766892095405108948897378768479258548468960466026718015129147404150130850164910325792259391144188806662302701452766644972341107930947138435166560011253409968236761746194097017300297027578074950930580910629295488407135007921724742723041370328315584018951829753781566881962373875865789462681387758068821978987977195646748046700313111734716204230733815320599937418660958744859735889979914956154451473906455750956094635473935440389470004904090625477312210585683560184577834963453239854489558547456210963700214601565141943626004877108451863235737678398195311162278772185521850885789970145365935649272685741089250073793658185179305261509654598958285438013829671226128612139404654994875345093132314883345592794594059361344655440929297158186624252874212097961934002980792501826089278029387313754234802035868808434078618263998024420493065526368593964029275691062791704512294079797208370519684051898183097686073701752652242443659051258927358637315826957568941877784096067313288074324245751786831000021393730819763658457959138342961908353209785638243324750265367516299893449366925148352158202017024220320040988015727368813260381309950478255644487695357561879724545272117805595592555881556750358069389284285642952392235371348052681370063920816731876502012998883935363107540045273329733611447454733985400208014735426760520304241392492253130389882141837688768312611585487222453613976003282773142229641299944124167372606623462451320711869370204048299591457996514606871757498674313956649671258937580974053719295908458545619769957388948917623531903948699167364499503329619142842006726878545829454657564258442577429748014124879519103251356086708876567355837462188984592339315099828336227720195283333931989909238003296882055211650031734982132696041740312122577240977511025722925888301908883010721129373218891206999205144896906400984884431817031381234037468698187646323278057101731406141397861782094230023372323919277773069367981716752953259623932670857901695487277111829495625394282966284474161193268618597386953225055658221405228557394701109825814873307484682790100495740338341096743239600446170867134299903370863228761454075845958562612812063698461923868341990092924514987944900279908560778138778363966889980644121013679414885013322424168500676612902492948813358007851280955290774897595957296417117558123515491329175634508172991596497125277507950611785752297076530804752964833514605053566186926383418944749716449916862749942475804600650139355701973884251525675505477382270437072372965074617272872057115197064912721648137247901083072572614639031795057918101216419291750295385231980467238101748693832107773718055740330443510280059729257865130424463466895706126227674022255886195069262366631891972948384078991862417408297479405046762816838480262201713427355411480814346362993447406259314160818374523203215614500768544155684513380947386020759883984268127283815441453131154744411830467261502838631942870406204354572830094044418834670035594689009955059440602943388236095373306658764734147090503352664351003188105736997782225686479585676022818300827976934560740353284357178443930291965389432225313305943601854481043621242719472174496724621603516385462324676022944266876376188396311182917138240364030275603915998241474499416496800435412059873813690775268036652235192250078846918394062663246653724992036340299242071790860731926360045043383716043214129611385017110920107537739107193374869468735632858521480730347174220761748629499305516304709284313544293195176695650091174972217062430590991754104270629588645502413275811879807764707004456077632575463871556152757355807912902141138877160086423485186934873919360474500743587209739715294302691673322518677640239606187185395927450383987939243752016232166750536998509195464688329419017735055173241011804011663693677910880001295093913544091961871682523303758351570008362067283755185507707533497830177532106213467479224696511557481846617972984951618743322789750201454091688500427582634659919697209332489380652394910905773672405925949043355760064303324461211345388943164002469561484016213009113535297438479074456480027776965347932785260235685964715589541279377069588985760936439339391663522689675365853836358423565531757624866479381712762260579020013967653616700086484412420228063284927147490676445531411140385246873528324198474125803753534585504763314840409492119388287754745891154730474224413134425289211056501931382499861487359499316134195372859323428066365393342125463367947746606991020517294686405801125255872318595189974072934163881699441885496138279995481515415187741190527898041202706632266765670514315098900289383751239182926828245213331678493311017165263126699010722281906975292264107433366983508713990573811914530302244605814678111452843958412361557330974535972994393775296009566366236629205172033623949807635554348058400259060518919156683445492887083517504183391924716292724503390478924927165626074103524957952315200965017657389901878356457760003913013409257631800279924379149445949923614087362692422910686894505173909831956663813963672438174389193547593891394975402300370334838890322947574875870452679984212456191147397608602581990772359446961622822151934848880948620514157226478766192304948625819322799867623351521863202501138614062378505686590110579657209587839783154114469548015116193139672191908552702213035745316004459326503116256774213379164676384969158481908999990188907781777301952585707538985624539996594930473995479504288021015829785067323012706757862810138450597583386400750628591882329261075294865457644211166297986275438595763619065194298290048126050087872355398812225459965397868260288423279979541060594001573533061526451424326245226648624877685002148115239989564955843380092302438528143301056982135767916186793277814842226637559134052683575734894861740049602169058982071498440914650724419732602861303546338907684706701744149121911071616504298674642810585326955144200955814747150517631080990559187750909257956902817709865667792477432878155931951693831617788001702337534793263861514078956087993301920928681960411358824090225170299383163925998400238686808977017468525642419732917011000339328429577818601432085971920786134466979846602350611488441854940528208907449166466768835827128029490658605163538607071244115850744796769356244331930743860498513341546399856128303717401014027599156819364127424508112615715304539708892502556607227140730142556590201732300482134123544135416949832976879719715868509113364104469353109862936508232786717080018091012769919761741737157961536916070910108083085522273905192224387726071783315700997895957254798784865558452397967915426587224279687122241973033661186089079877447967337893637190031968995035896568786462962591501740106410630942552706578621785201340487665424923879007669448947705374836579389476514468255427244825250762817364596421559725219332323351376141986478368772776656905283697018257786930476756619076721958185059289519628731386234138011813957388226975207263114457072756957170194822781435094762443513699734238642300541868726767087920701650879055620501270877840209347603790857246865673551903533813261366978297740006069103519195437722433959004090412390104668044066836251384655311123635468880725407856558786136638756553102166182180970988730256842395360155092984879883900942702779827039354178091624979759503147385644834851356686673998856380666835233835827233184070002649313909012086554691900342826849372693823412212550657011242031842686484080013497369368916267150420035217089625364120521528143913508581652688499698563471168690890815036864076071665463706353359703486774333518167644160838814758182166982583521856193358141875034514184258306640014153803748472104247195721733563062006754699026899493340819008321288352462698726371974759976073208314695290226158830819400350579268481970919804484943674238866564937309125814698913594131049311931799332949153449264994832465680142788011061315513646832073829987385130854309728357201406498662351530232047835449980306260514443049425170248646294315299542066862954795171510372236008914102079475977997103072574718008415664106296835415392006438276849643356982501750860674090860269510720111958884201260735152305620002533638257880439255795463352523524109112527989377187520274807204894278805566402921816771101570054337845491129865979554441627830189823598833666066142772675089431648503511464329054240619331919302268854078519330303145650159456388508839139631072683920543037130502161109878527106552380542906418688023451845188292668978272364084072562598758878538415650091785070487611135188956537420899999059358253867953448591118506236054320210079576650575754559545754744631126467022247316740484723883150018591848919664351458281755812268245273802235805842941615075663382353058147373772692014653956807682361643752342590160791799804935144604766140096324608070680962099493327840352006448922133441631044559379429036112989121477769117711495940050020351883496444316129075204017560129088188267552957243254574297625897915830259286087095104400106069894625669268500868367787298218687032228264591939293533905744730439781895036547726055738265374254473479314434819128880825467730459301996579684644095790900535782316893699047099541949695297399497398821358501807398699143517107217361825044280284166661804225960025671663026848689016680978416625094600975611921460885167714824901534290763520624749103386715992537836442423682983733563601708761959857634198076679906778447590991603185458557510387784895896117863895625717678017418228125627241072969984419616056067839720785081714589625003472113458220127799218733257864222141758255665816876679539412174686800746635253303940663059978989482031669716834963241281565159410225477876000747857815348415127924900599959040078456940308417826622335888437590062429241976801771928064630271668944079989694864635401332770979964939586460318280915877665112829601424086522553701910843982568591163857382515144962535292627970832600886173151160533988376293698470803078197654710856664624633496773975179628079054008447516642734986105229047130376570765177215810327725561945458821554058808694842780377005041965520398918051494626605749947765103093300090674311537114046332505768050642380104750556851534165781377209267457002419250835494554220236636439814368551275772030158980462148773207732411210399355094971583018497946417746593405048560769512084449903791402237164734713986466885329376855287803139042449487801983127159236734938059293694990462898891665521549809326546241337944386075264999353382939307277022799687764744683218392653272218074900272283660386741581393195237237167971258604159220680103124750284216441621463955798568074180892405751342810982458336251038794747493651548870986096319356376384221331733238277323101111018341194391733589596234496125564973633917424815330036504413622128761304139314930995057732371579636614189331653809344398545810795332985105551102575388206264722564682854831126761876771531644147681341733960880672936667953509764361384214135974548609156091123015958929080050873689472927785214495963019675076570763494615693001076094352876151022229330400534215870162611819555575958569615071162168643003155130095495846458859442690708967608197214350783609905339982385554795328365312811828999667679884581578376376800403351835179810061178379187907840280326000615197429675815796661854141134448000892588667039779899385413155047759109624160971142249153249265565853416327198147248307241234258272332467460696283907748961135890491376747672567156470819443193076028677939699962136824194193422174695224733093457713224758151127231671553417625075373281412449576516339180630478855908279093372913715435725666498464942931153349748876572319015436346934848321073404458731277943442981399519542125453042962048468756925186325121225641673621934752695553165133551770824560781857374029726014664513128609172041913592131091481845623629509383505459176684521636763701672821382524552412991866887580803724365113160842899943467062712665974750584789544590914195680641608721194944274982444648611545114772676946460220892025146214706624091034779905300254398549531476560472304546969177793467556820501661574480464948401420535136602474191935100823808061451690356761689970252984865521279040533488647945113211439426543035551483773853417552151891316429894313572071405986270248017253093974113101450519117171662133087581768651752274583207619671481891540703276051650398266393883804733058657347600102523679073613395014022014293286775521224844050473525946292318239347768011771309241760042638123720990156118354925006877807593962549050167647227542971470784122578861284739740665341788664694021579577753111486425090728876012842891438892619299837854323448521323055644887787351400974102386480786828101492337415802201149589345485351439936302256514654064447992557766954873198638942092878273970173435243065677589644678121059601334956924941376535982437787801137753140014878053553785376032280118649153413666648467261417275715805047624970121972242910667329045501622021682000225583005894437293086361217468752696788436894153961994021828983810894752301368796339380611823369641359164078414164211984736264449322693556944219540575645681032827469142082409534081516424654259343957412895150099079460958137475350406152604732405108595753554403853567521773217840826934042908854748820648417664882014686107833164157593756331809023830176250927378037379655930287105284706771179894892691668208403238426331055148750989658089602134470473409896322171541900304188791219117288175528213367047779650648234197388612113658468256955056420903383053773639028574087888876735804339805861111170304919612452089047380640494573096535121377299939969948502336450501089968299434096282750030823371966949552479949837714906333724426305470788634805024892384563425192243377295383523718258789246273361700757864911248420266026841622513326778371029156741908776044287264435449430591778417858466973111267294389688033614103318851882925097122431454990764868207816692380208018222047125034262016110431014550067724191851146878928440571758923895337920572239598120249779588303748349849769242283854863022360925864819609551006975323822386145132666900614962852039083343191912218002102993504830449320491693046759187923956465260070932456818992462180934349545895880449260550666199448172089263222632052547969134211725594708072163948899495088684436227835352424381362221933079220743357818743275856344588758239771454681818130748194510406640882159927157143385626766057130184906714707961111187007166903371896094264833278490439478449217873527604453736489404290854442763971084445324841011791843344532808672246785389428731906950834981683364801541640698898497812740358916059566699596771536046646873870928910734522081620800507742644537262954348018600162668908130538244964086813292525700343061904877722014843701043493478842774578966647803260509466980904178051810927418012049785262570565767869824001073957862697850465698182108733342993619906273205819202351591960202218710010999409878575502395932463221667733230071982008159112200216384835194844360894015957935366206467746903266789837435129311149496749537714941265601283452885530916851655795922047380662659151003243372672435012325443663215644412776304907592036913564609970475624422931354779592818151275195482170104730484158296940039477673869094993895123168159907531814674301299116483514785921904356464098138995885436418971612709213904879861835626500062579447063793513686804638138717547770510694034088709764735890400439485949965521194360874146911391086304397914112704520896579212894271744868005273054567681868208201192172774215292285061240251174051123270411347554864478881478394541036307068328374350536277224880919403066248287411424046453512938595240243426996827857384717454950112986835365101103414632741491394147586395631940240144510247433278314778766494306441829511407753670099464505465535311572357256149054294486449079044095688477881383572024673121502237500992331909998718263906872073277952494045148509973941874970668627767626173374058212309055784912002360202751391607837265941361459515668262752826764333003427505491627688847015346157315281758997667257649483544817095085581150981135468293060397193785280330755589891541651715253942558672227806683324108708233779899216051279238589753498297858802139556800095385173459962299565817973630981760102302054658365047140237830034563958769555011226293315190195383036936803911737881548433542685643938311607066791775134348096395618513967124097892497397737438379002366562597125071352474615835257457105591186653217126625464898937944630228275303433269302948252016089858682148093383644067895514024794693746621277388368377586581141849398777051609674035456676386761222559495775237811770200112500129843373924908812395852063565705066168316307196203373140627189939375761649860156612093283008640141961919760665055072367571668254065757152351786641535724202095544541531377668704763026665769110439221577441751503352646693032215333448646805748241249737076929339713495384513175980702736597761601619571322904662729768075267347826178942132528746718987391775973379716531652271995384699133595336129339038931030405274414690293585023996280299030208003178067131442671818327867224431626992880792550120373672000085851240135107488230909775172703537583973102493307747362780439796040412801006246876555036297583303724519314971034956600790534459464201061814224144332597555963853282009518385316780834162632990901630359593220564589950403128472629591954275659774028706150403488438065475351170231847939162148773581423423250477885971848785117148049434700127615843058168589481102888887575245827955409050450183683768759614457634841761423184142388705509529882514145822670582778267890410901455923116213489767594985407259186649486854882591049531177188255354589084981989556378868416466286910512420154926344866268615282436064057769614334670393138852213577193275665164928266712749145100010105719768010284859777428510439889811516182823617542382683070446802437143158703379406530556027633251966540567740694067308142125354049770122434898173539609824644712094046101231508019971951827641146233551781676781991499599537788960086013450419274797773660019291083633536688109763481372887483342945829602428458605735390246895833315425901324221675873703875999939838571990066823519262743342266972163707709567078777238510791072459071074151804580884511037308815100478843775299285751980367468421545749621702790825382630558717565203764618610664153338273397540217313564404071336735182506377409344325658541792907929765358333107034523296316032174900069511959755591808635024628976266926615133112967418524560005792171215477698217306316450694634206567725254550198980710388365135847973293009828273685325880013188377162050106042115903072287052201420876400142554509743952402796067558471424140981956167522959078758346735908914400478524221295573731588448704484465438543812081552085449170338457287745983182604733771858091453827816632528092510669473559010766669723932815851819916879975859091095379259800568569873689830565460456302911631146325424278154423121591422232939995481242655344356139636249654645721741608826058009524002169594383256877032693539016184206499196434875714355911407565498726137066286708751855498593407548009655582220227461468116771188626382447921361116548510860343006629397331607168911424302945277644604312753688053889367894018643273486502905725461457317429355483662352013454340489402088394081408641360034701653256793779640388668655350430467228513161511133387129625584307806952404710389061133497328107376788682663280882971416445162689661537348453460716205870141208363215651802611498484485486700032815031948052767726383211020903088426677773135914183775015730492777544755217569524671163782658190602835775053631926831853935758457731331993247972193450129804763940136246419454202057854927767072658809083771988898902428860370828492673365524415164034953018205375594019452951720456926024706674261872130887936227973232948356137728493871659407329681034356471081206969693685374942238414341551667901079736682045747212800541964742802335100423175956880415331720588756497414209345760487207730738425372648014007958791520326191548589655967032521610210412852028422314400163085285983613271240131780563221823323151523085597541648249640283224353412484704065811213360722434377472479412232276341458864547348769565491356964980906921753462479347280236154265968502600817028877661482431799394467278001642472249001684422506384830309014488473042519306902718492283855455131841352106758408900809191045950132505116026023249620092493267362326109359021472436734128483101821556459727747850473842296138868717015322010517160259571171056234478469352443722467465722613168629804720938240550657380821925972173869523256260379269887570455781221411677697160624599481649838328223405629785570293136623901358474621427852293803419830540700250097208836631267138705338857092041271741448812059272619073468070602945580611998492733266444845384985295637336909685525832149631706796655004368761536419266714594032292752615950026909125874952561442419970167855529918994544813223574865709214597974002445890767263429786745866722133728906160740839749396434418751320483928715189152550193802211895261409598244502219100038780809427066249717643313585482831825629680248408659951292945078043920114274252446809949749865617676885841459965971034351599966860424378752558441027827697229755980673340703385588071762513835780119083378061039088872865034276990168655594018892358357105933383926845445847732226333869448357769843750472415925655303262881893488341330791111525144174686530842774107891810559176884174291442725503164615285645698989071230178202971008725587647572679135724555247409132611753852897610855137906417010881956109935293870526658656169630559561089777557664040141173294344204128081414320763159946460130286323491450869367587305064249664030226045914497886918022319644037344499517243401778070673062622916756777074446647254676641241412752135072198764456763950313424972925429284489738934632153380616779702077257329323101541013071919148156675698224327411298590351909690805100483122357762997643773891857113478444890826656159242222889275541991183073890022309134748435944684579254876664137102254898668977814225156427666205106083205453410667894869307180641569789954851193394903491721262001404410742672379625151897656673784839753592492826997756489778478683216012838946404737761659233114599953740957125263814587435983218118922229716594820276846173824946948681226795176097548891684878301091835117811309565078201065441475876070519776573905618142295265802360033442103348813062981385522974593909134601349202235607127055176318696033508503264698296412884333188833924891044482916632309189086098928585115068221539082320065375904739305537587408912408967405333244695008227266271968017722204744823688225053719691699704482114829244609407385161165571265994380161304238615498599775251675263660245133294812993179920949026799069868630171951694112242108585129347288040273570810337969569252155873846793827591946149321041414121263992546176012461969579716898472885577495534011206956231001306463208569831031618376788499339315900728930728101211521188467048704495830584887481291253712627752591808464085308026278166072374629889899647583656587037331077024434283850102292028285090257210990121653632586587779803881039169078825481725153007637550806847217085141978522894540089710720183547468419317437123600445401436413868009645170698086945625089859587447469321298596991200545355002607594027719196341520693903975862693317589330773723453501711552574694215269746481531131899027452019520371019054202553031692729702538893141962746102869478299939353843032104566764995424622923912902245040557413029224829081677944749459052856945863375018580725012420257367237243810902193689358687195620037428989111049282518840847138374231106048735411410719185172932662695028549012740333427445255722139454789559072049680884415344017889026323097317875197701349246297055449669028571892833513893318255599280775076052704186947372301314788475993871094596536365096725074235462918196172858775123431769665111745907677866778584146871175163694547493377226070703078391386803004788159729218352453501975770330898579738512388779169142426524043226180215877496394748088357460385098787792005291962948209878725451512604852406788568002813892222997488634496889334609266130636691297337951044611888062517917889138739108051105443933902482145774761312753938155523744724730496373122657040234470853749761824413854793857285673138663148618536246059575813755865094285911191534442523151566213839083641031873858313784030499022553619473948474836108623626375302824792425264577504172419015150648822349181649056967741945738579670594302308672244465833276032150990245839162559154681661167570864665816118355424484546178551462286827093179776029997097617539855026754329608047447095387321819280356002807373843447199802113678319801568694455260117188801416569133634367708620722722984038783660472510239072667136199763477091570073326629388328171353902345025469774043150775923867612502653331741784308159520333335270960622986902759982158094822428950324441235578532979689924042322685915573306240514739707799548127673188049390973962151028162174189615885459000276995947009508742840914148800595656011003667082261643889184726867608489528072660348886967089247043855582300761462431341137099148842711191445321995328946333151773720241664418282196994345892575110917306321332302245595327423900411979194427613285575089878097072673647645876490260966713940370521394205738263102688190154620817397185784933734596804086462332203268932840792122553955146058352721439922002902876184524964889098402998328800926135757078550817154202564098472668274744950951522582526097195283762130315921810726083564817931470566948333313020938263839758034411749694571217375768438235083750483909343406562097651183924316865243855716139877235665781849479516676497535850155240667258324438746795927744118151897793769105323262964159163325550486357750820077716117031381345836063841156605818423318796706662815271617059748451299922051687857561507995235584546911989639611171908854196714375604321914163244481711392018341186476614803271983118415797526457738975727395037425601011930698813196062143275367844692204326982326603113744189632821036588529087753354897862810223530148097326133443009985662817352697031230985852800866946315411502605713280595247712116573826915273744731958935497339633003813764837901497150093122675957459681542727985039194854300971562777446583516033530980868049421665348034596048303789426975719186074017179114889225206033797011731822337889900142114970922685148914283808459475098472918511080618282588866268111927304266804928432188187732460680694184936692764338880403052085296258679843004862147364947173151074084626014353104276664281918407076413343490624446127192609729062970398673326466928434685291921807402130021966280751493004809330490543926235577820885013880346116001590999085253482179021326515139605261957547297389510684404743090937648401049732703845815503272797778511095824809114507057992080347477708226324508268734442885608288718013276270397464822512878040729960644705207869614884684307009272435298079075216320063641465688707180490001640558040294995393765615436546667603180727338497256937687618197593089781576984249898348196724200126311860455156883663619930286127560357246691038701579884276889728384256649278661699987888007099943865250999842865872032753789146457967923479609082710501362220155729330611910659616961471655385258643133462328881514041705845136306180556190693137168456264928040604815000735605028260418507797368617828807883356272650230154363347208270504270399103682717576285747348399900169817534323660515453012006491314815130932200077569300254652342473847946378117739229005813553604394101719401187332639341125047174965145598527805854571077074271114671114957765877457845404700178860516226127216215872397958055500897482328650332404499481258334970889532606880456860579974289883877764707799641588839810361597017738257220287675083085396967653303641037077027477523603102785478980927784570864175246288291889849048145840372210294530551590914709944254634263880619655567291131315009588377516235328872611905933864003406202234153693938393995183262559031360620777803606791557852238130450678466819680883924597108245928368303691621013609708556767144484716106907237645871329081154193930332051044926771310589472542924676909628450820978216143490320760967563338030724904506306695086823465505016208175516407227412724936096636545553276444223161546762348844886993303617648894670856417911445502246880910952803316109817507376168417806259459969062387831709400982149537933356345857225510882436363346142993276729172348054182926929773509265283520434634012223167649793518087213066917132176032299843294010864337646382699382669424757046497951151414042242228541533081745155768244361115462976638101458465316468044068260902999496838120322170794459745636050473927722740215727760123968022101676285088811693440508906240296690148865870375958034195582599913999029462810189076407533506853917989525222961227001805810582913270755777157256495150390136777954028566959926785653797297343371529792777731481778786726420975235915497318636328604418800698619480549132109915157054171237124907257522507048006720083708931896277226040089937076008933705693869742629778112000076408273305563765812575830756132463748415604262855271369967815108300122771272726560489048826874670901794502546169245869405812222079966570239547654796780792654109146126347804324578615629167340973941992762706923800398185096460037666919285182919491512947272436539914269210905061081367089353851560151682735122365882396479053425045403117413972976196595908901967092344238129078318469128961471263587176963026962239331026501682654781418838769834702090038378860723079385053846977253496042850732921014175972897348199150617301303488710163420818764192124273446756616615485271559275005629610745261448154239594478522050404569353494884877383701886760659004178167569630472558505504226908906143737717995056908592184338394929655017059867399740648276078548154578808234136991437609137609351448074459657041702190418915334488390595237076594999980765649643164433599350686056392469153044507677258980620570787977967868418675334281469514214297035668003025477771043293381331595431252813164793519897526535500696798811099718500281671477953851085567981499413384409973677996897523245777703878064980354292909723085046010740567540702985263635549599925170158895496846068228576594955417413191479858125842274402841456477759314393024769487209391696415166047661934830510563356356441617818892957866155924768811571585260182489510051913840400952287127024425926469980081979033798522273110966257425798504343766430660258542854634231202485072605933022854584271973748035019991281473651190280779919332809773380202012090956587397459676665600905475410805393378622631576093177200595258169169603651083337171801867985878387771778859045730254728075245525244624201338731215067324317841189918368819273389001322174888376950201464430474185888161494794713071571535103770615323876395614494954374927244572412227243955366568978694594234933650050257406961150059997045181764676103970104447279213441956673420403385491101839100287294010913764768023798851956958422583977399792100834605508666331918210976888098426010681567770277106066673705624694828645308129326876662201800356652853963090631198444879813815223297329823551489711979038367332523242829904846956057411887787527792465822223526943728749028451459311141720721812621497049638006230330575047431420852773547924193065792770270375406242111089907246584475135527902258388365983263491649841427934427931811731295436893742634749413582533238437121322598743801410459380751416111336010588814680830432288391042694702930486212261341017807347638952026839091054787010734388335726649251991447795289802538772399888161809803377146318266511976772192516228764278325228821745471549071769461261325854741135074129056815558039519818486803994361489009841339384529751859204691574287846254263798359873092316740374436275640009400294110534629102788360234204388900058846824816134130782030806881159023084725432577778517020612378419112831575984555993995883485013677812068918370792646656347160456658185691973268344529852791246141174493798092234169149922215232711733661279026464576754771129003085433194826823471372258551321408247950713531750642459014760092562980404265320407017765876142170594110422541899458560662504672350774215045869453139796805833250869693418569781425932006450790039397065905999109622074179636894363692880758355922443870478339146969819260136366790020647244209488912480760760023019922818818320644316524439168392711417685175070159735803275434320187631746394931564618912811491107121443204726227116395387638095502713687611767755480637546600764462339828022080528914024334602624928694180745450732584696587889419627971410917927005781388097086949335193777669216318803126859862318892714644962186265052943894551694584823431553633841595571124219475414420171240011654714485229179390288188256574947159392721245298066569661056142245530601286354781869285535987951340205823609233020298217796196854203879024663759573888758399034870884960562388364953410882888108690731366014066492887387255679690931615125784418840518010034459347608805315025256245788439524252546835990311195459448656921490194537668135342971104915937371385735511064079812544100693211246784886934094857730948400570873054093316616158561658233702455289996409517496703993439987056252258107231163979280181325213850209262269412479678760792536842766840950790083973383145181820673308779851045650498609510234830202782347361428699749226160190523486401480832923379323734257807193508682324149754373582599845173488820409851914931234767702948674366523686654154200244931398594936952548831735425520236819660834109678785335124404566826858395404093251406593051057414064644880962448592821297174455303165431108262594906810572602874543498692284359440921877759641239063638579824309041817701814315776610896984456695374144353093698186037293507048400626717293418831950719044537172556217034932610012072359539679154544883280027276964431511667145746414399774601462976806730734549301712819168179853723778244427803383024523588302734955446088390133388282855777127468553639139381675696356887428046374181343141317333487301796223308312754314817876443403548681876964339632681523620766964144524728874682241656788535007769878299730654036370163749321700855822865082174711448116507894862735283352327326187472231616709826043063314199143025995984455808852737417954057333664749531616506116660808525104477673833278877773297238885539629511389128553593397502481228388366062809091836179548328276180313814214975203229195714185238939199696987270553390781685980471702060807016325911255731605677829852267890256017182038538655415122423854429787694635547679495120260335458176953239886309888735872215735012021640767384678096912662045971213385099184244490704614690343380721746838467528695584526833982295884831062192456916823991694889362587560241520292692432218447176889777064960446580307378919666012400734781420721431389456830637414536811305524720603984290037470117317261349585291111594238053359706502518492867470899309365027324836767914810158175322931264173053219863660302181820245425791594283669415535223939752092956414550242350583978609695404855670887470940980346318394656324100716174192395134299436378975971383619403690452078685106432365244701051974596310212920336478665288697499202454514050544546571458914822399948195549692714469661719927354219978732847471357001043903755323128111245581848680927885851819945159867240012748631498422611140548038476140747544888722588093465105616405465356533546585978916413069128774022380104724020979854228094583532651751474818331290854456317254319473519441290166521812435997367445783279750073956587899643209936191065406685884588946506222521869732209719417077598445314954468012469536317275439321384385726248661274822082797645153468841653024390198746982148319074632818420826775189883959104106352265376756895132906868460938427588176657393981884807149824271526919290873108657614801607757295978506349475769902991683741742148075894104743293158913079754377843100013502336005176933429542762954896150645349673170666218049747949205461115511630911751464541022895602198061137358658702221186695652449990136541438044820385376246380712050177714884296769363762274690416574564284843524043302803409614324225890480259931455585954608918177700563280626662981827975607892599334671944003358816271329357219798537844329804064451150828174222346637839920003080351969161064392401619159905454101494895259554806911480901629958996893185773074078887663930566301853063227611084971999652978367227014627762974030857107746557037586298623048279757583043378796772665699326678948891159087423692946949067619728828344351307100348810783519155521854422402459585278652298947741633175742438449832757216664491745384848000968760647290068038020077732791258297462772155511235684942057299666509950491117671618256083797567198716890999394577660972305097541233711063432733069106082208154654290495623502356355452115705678051269942711311790873456621853497573191868354002066360607081235809745167668530014011705687111481580614476424396183243717078195561421693649861654834820636507211481358536494970064948619961387212312901056286048290507243259025552647709848482356872953625681532453823435995446441835999390427980305643294109703427057878298175963473383278922630240167725730083385842042846152620507257313886231054063855642517005468901862824392978642219928095591970758694412601508494779738775685755113550647378624973850968598573690412276257996472387918451048013711612202263461376684853921927115281461627847944839828582674798922745843596970496553185689759678403544497203128080998624421383203740333604740719246594916570717339264895472623004073254042398227420326426281997010334526670618726564484165553772600907207420806564349548309586947076131020529637710204678218673868933565221824344384438217088374944498899817821776475825077966091030075349744326200441837213964395165727940400922646393322698756946255282245896853491810642255460254703782645508845155314371450549926692889170080462937529009001172817541572950340004806690877643923844852446757369465168557400882902375480831964965221112369137759274509748801639700903122111476092704342355697121493723292865195830683361028294682195788756023846928187510987863333844081294099749905627529058682779805276223534747096784455803372613059948016211187986730121827830966804849653683958817908427169332054582710351521497912665974790126492097121945755207801165411370626370388866317889448258999149119068944101671235363670356474862919158008034357438130326099434166833842605257321254847281555698611287110518851356291810116987080087241694693021444712423193652148390030035338733986479620121884580892664280522723310399437836949348404199930026521982800631726169449060925649469490614343009624704156690168844377153802546502995163401138109101747989864611563447914351685599180519635184589484481592749205493255492085606420133740476173211208977098053488026285054137680728179940257756300569549523030041998170639566134317642427193423501068205791873924637884039340252767059259960458208638728672152708884068877430960634656900835218812488334722248138676830466826236529437300715841203680074917778005148728243608027748794215513986100413639429752339216883480057897063117421851222381508509655863430690060985917049742520370116708044441394091252519246150733169106087081696902505887783972581514326912078188033803218584584503277879872050315858732688144577245028345229119332445210667310757658426627601125468014095609046357065625315331138600184349399002928872916854899453357279907436703916777951101950111054900763565395775886816391548452125929283956539518038236124771764261639400678494068223046190068503752376972414713246130076537705014034045346925654887331163796268908008384768190424511378185891124959473338899612832853113056309367996176066824117440944392789070170870534042927362543236274905032803057961669131409567357113238565466248928514211855125675609987484567849014657136138950055105558189872787232969351744025396673294903956512159689860309593727975122755661580809846568601332680193111293210575837605040693176168661788040741300411902231709242654186648891856962679370994073573491733417650008124456826168329170784451476205480132589891516265685539968756411667552514428064759052819600958901238315185487538129465369139144023292617187616139160072181005142859768903628750830240733387102603746670879377187866276015169775901337335469821775183994203728150072715335731053556509555733729720899901498686510879259675744944884862278689095089857472906624226781353908980555645247434053854617023584988263975239956524789662168842421160896929048304604129210739890559397121233441164770189978985549955432492746081957521572488736793265060503464019858207460958638634973259680628124428961486061179051762819535806250427632447672390030876387925456431209483176835627002852744265667276214764218951215368926264979945780507039938849982272119927616707389490201763779462882663217480058493471769695881401363058754390500944671626177195142835175726973476791306477837926312184293526811200482934490751700003021332509807437061264678801350968537225625266632669864371959014038656354111495048636851037111456416692700198103780470038197361119323780328797598640677322964002383517552069916903179320233850180694160652248833073064445563950592332853471033217904768061186099121401456980940903868656590485072796576356387103301320952702051682960145527932734824736846851675333236887718206319603975906831924703199295171273539349038970865504761248471401986961956623009182814584965528292434641671216312000786225925855454147227444501345675679105618813537069103864784578121644053966310030061992377892372072168829946037626429622974529751016363072004465742264629072851348101220104777726862087390220310354496936014405916972014504467476402306260380738017675761739969327259631777246967085821700646580285092310044629573424228402687676157194337486598264282619870488860899310779625211510349354948024512065922018953313870106651197185543022970542897178858161940334932839825332205773309984110157626719122505170322004008211808591836478930488522145615344965613572237190116884147828651942576483243880419407688197414100128427394735419591806021197742390303878574164337556665564095762293828234730666213136048393595015598636132430552436501710645385253505315453622567244201468437396350855688887425327059563190055043068905453585988801568313475683983471962613737892214709824469732946967309992266967554285117054417241677899387174003898586715405327874038624675437107255437315797515575248236260745508455577566657410397916315450574449566002375855537641166435802996560472923802287733152971425966602518671680378939161267569929583027292035517695370739703232691460977894063156068713511262971340520610112418306012531480104853665756538234220819227227695780206260731456271264652494841612276423987761513473817838300007637453079309811449311937964145606704048269492772491265492669657639037876905510583059027902435654968807892947299848934128217279560865376540875964388887125405866621739116056667978854781856801297469269926824765741011314698856217442666086778498759355282853097847739590258594680579344840601923353046328440404491558586306637819897149856724007278650915561541578875724145825747786196560918319024948125716752888024002471155027678779649349467300700132583807110712198070941070618206388177245860319948772238424721291785074040518734625998895888335984672360710188071812839255442432693774416102068727864353365790738260844363849446399270530171562111082036502656684204829423519199767072177009527920660199839774041881334107310658280056099452594874947360840038294254791233535431757038801234923043652998489990211297537906314732706721547591994210176921826613018154221712933501399925454436777163141882881824724264694205707967368319165833842108633850220681542577746317992935477464606068038494887675600157296960891259282266264742508412045329592526626180550172771210594348779470719672064286462629164007285797184503769662509118144999202805892086116464790750461721848714806032472162830183017742236795069452170243243669094489485553858581679804812385736650245659426968082226277952661694091794087649657509142786287525278284217621780656208211291231275205695325965203374020860929477111851841292959892461551626862158941919601199628306048673197807461629626384032296942828310129208280001675526960697425082502631902336739029003011059592170323711655674035591821740565288845567229380693363325672789412651062044900448313412756542048184404986860261431540635186595958172650074526535123639595300497417987029914352483018721866119908282956831775907135470059457707598883633207753297909861307756345104055326497225922024075461573744205853785522602418554184325463157197066552486340895772939864201024750896317417884671877035322500868217670948179458591610166761532502112238265583921621075111781375847952434602445581548469723657827484287692244163825093225963169243891167325194951291924789883446443972923535458663025115158049354755559099210405227727802162809017320933699911376214691599100331821793897994738609272705390448251190529006499891145777032194284587016029282742742042461296833979129061890299769797243905027881253813644964038544204737782035329827574431161029720048866098921015805875783955568695595855138857277995651610363140046220068871727970830321752985773546702241701363874559318028896783152238290317211285942991417406676362359762416282127353564432839778884262971903516371505257089580104513459705520254649346178147840212406719849254637249722778198488867006722217923147755998114670692184320764479349429673724134119346456108159477892216608855198039404401462576917332805994575711946946529522759040264235043194541987899603651423704230560436211024337091771326037295654179012719966255666499217540692458477881667506026168651485623347630435029265599447440081668310756602540747948466716770924030501776070230443618210867060793820854831050624945423801116726208024173522886290058681245232106506098360451255817697460020261773320574329859181106488065485334378650856032583034740057181668184937026534441459980287814075180659327911456926292298108071375938022600524581563740774511676382076604676042952608464569868146727106995425638107647123838246962191392233724994269309631043568435929765458331030615075588217696306717052353641273312106231410956058277455519509120198045578585184549527941748346352769318987360233374478875961664519272635980790697180266992213753363347674664539993934410105705074861310972978756069436332282813478641331762632038351634304265326937313746441978461258485618998348634445202507813153225720392917002135599877205957694398199224167208229329068278430628917863012292378825241594170031564826558396980759208278216317112807129720071716629663324362295509418431840768236304591779099314707286925293347303275425857783582908081547897983523009393256092356845539995866247427013739333796484949028094943816635341373742826890514209467332964147818809983893974368035736889709051894384018586125549687996900760230041378684848243427027739778377977841860866507554053246691070442820388860474115900617248052500324220276446630484084941484864682779401749101906272069231952374944361229812740448387675181934629211441856186033556085029496048615430787329397255367583892277909723127060308949480978647752762961144096847364923892380856489992829027942619454436320921684204141300323818821070568274430945281468492522085996993253965215788012434716379556306770485943763750255998279047181845852424850683233146064740951258425386166174383050936434933913627291693648794379575946311050361592189421193643812658978428426442885082671381107060943460874901558883835528060786788148394331690579299898875556709179023733933649307596001693097501697839380826716489116599748187236007563087852689920265103820677090381154641799626979638973237727706984007464532031033354582085892538185211411819964995655289961726149501242496170292869953503499826905944669316446733989502606375881970189531172502596064454170344149618294397453870437882948080731611517208693258763620823850742890197771332805295769541370424515115086352205602315421244464643529949801914940668374489910219454212162341263235820680595316256701217357167987238728758051226160272007400817772542958508159174181337460984497077978211698387480934906478582912883467961221409461903677773662243819134719208692168424759384906033789877209161327232711257830242282476292412700733793788595245886608118177653174384831440490735391405635187032067364416635468978350542002717153158570211434652806612062474296027261461310045292049580462536165257550924091593674652457686103073482533225928741283518578365263666778582361160793348297156929604832194615714489830487338658093504670942132243690053672105264247479294615520177672776597348475869990466566681555169748829419538490791705132871627230145631427170524025377203208804249995725434590359862550658211802007620098492747246057656274110617988364831333705676328537347772887458986333653083501250143744263229431606206722456675256216936099426802532257595364164540763425306301037537124029707541907037648859333835422448303017913812161443506311966586615454777727521466513360935513112198553450950513734947166256734640217784599120942817626266856444593816260862741757506664909862139557343378861410016614231237863654455522663406610353542610737761864981112857644787583418081748349715468878863806762141283721097656205410604356818642362006954739322050642152728212884618602962875033009126406987687959844788108919445348031475937323955080296938112117747970722748739136243051444655383027771094121844151260118207235431956434849435795035771792273600643028234158944390244009454879950687131262238790240366858517213815457783076091145350739148280721337109963891680705009401364362366088435017041061288589847295405707546607760290677372468840270629184043684991468679456378837770007389862016659820080978936095605183949898360036117191729164181988334018861186925367501953927925587774496441869760578134736394435988416678971869320908255551128131537713165712963333429401462130077696196693841717370373935499570376687363449222906124491487620046674026378673165930257141786530395610115941926932292227957423149437651540380252026853192073784616189905884812938423634169355610670255631547763015550568218481960960093280785993921353041926476453959860773566117940440804649630746972146230000723076894301313073532905014316356797991114840589564780388272213121806899378999032100958999078111958768259231040199143346049262980632138603244017411388468710242243414778056922935510602349190197669797393930138591972721394086944228040893756692742856630018603789610360577285562776630226819965975393690024692598247282557529312347930639779275087010424154969647029428589386932349882384175937817915429265806057212670444282066458873996291729130879220488205969478973761249855807121534812713925743932106035736816342996299078748851381627894664905258424450563280198639329513824904962970340050667516127831432270393391124755232901756944682115823787114400563301252991528518766487867777278897770835009976927359935084690957095549118633629609745406188005426212263332500064639819609926585625563787543938894971832565164130511941605716635799010483561896314407138857671367760578639472191489949435546865207203956832399891128276629349450841151236113492295443959142946522577219741073931134894207458435742719170512094981929681622095030364527197235905604325200401542643133328607352819088580124730505582028850319178646202125478702499430008378887327041223953975477813197466109240797849690069299360311921343709295876080261597902624254074697909686465136573764196489051093770325120923480488095157556974360453653648445249560863459874163868501675370257053216822873644979055540297559516495010185767579056308108850094158083424150524786027029129631626295298976805069095557020574457698567428386637030321580698079754112514407173019125732550508363740877110510052768506686900715649787734900231216344423013308021419610632103091156168768107039002492163657073854396361030244143299295809665976968424371267861720042867262201014290749196197470482205696316483600214400581901025913478718525120370555539821924531063163724948563127968811065903162171524204859924567008923714018448701883519059624514409603888524996990627125181077879441774053659946956551543540847773867946097241873756592200254970474073971163528471364318671761433624781602297157509570860526068987347165199307814298402597994346323527411760091381114107124578456619822180318964135939081184451544032094843842307886757967673555899645645822452885456430350067236549557070229205248985117297907543236559886735308069146115268956713214994755998317297282405002457127370232037219830662786823875063879570533450966676187975783888889658883682456843040582714567303975181201843976794210547892828395002926850805288265492268921293272228619094634480865024514102275558588356152285505396423892732154897883099068184338554175449848777853435197677911542714448065232300269010185281613369365652866480271136496844401690568464287291138731134674837462104802833638656245449744936157232166727005303419588690807383470313748971877169572208601874262981683144268613998984535471951405742112583767351097583582207167181315095445888920976123288304538260878593709850080323583091066275838477889913969931207016623793756263984189053481791986736496576876458341697308185706627379961332068753592951777485559544258382219613268184484487707677462871678089087624368328852151350989176735297037905063828642269181125733050804460449732270280543612151158824026774721034881977156242172140333057561566854514015454957533487671420671598414208400638096387903177184426222849993298242838607993597483970876244617356471420274840155140080143898277019878201445956919195719579118926075456318223974443632510757147739567135027349539133345351100629842478812544110230181341934150695821666522165510860967028493177942969648389362101175312612730545731511112367139205943855143153083708187802150019538247260855173110705269273533065880402334748293476730785060713410074901173503738602271350949530738069301796854944665466459848285195037976724676810985883217028437220775002573028727196605485009352649113699612719558322087266258470479443118490889341619057453275619757620051221381255113814791188775387417895706004897085765196389055956667503005694390051903096478358166296003337533443440032427980925267882541667567419811161152216365111586433659359495890447115005603627159236245247627520975785086896154419425142942870029764840540322906732862228032661782764472240386375415271253608018699577834754331640332432955553214546170682909888808562261241482767536013049921872807849900049275457354414880820828209145230229209392524241150708499820052674013909999190216049673550016564707516656372617663222370816694986609074388598635642027727529083075030370699504162293269873359083867294514602076561010207471201040605557902318566454037505375267982387962115573870887473380904687949941969299509209150429531288221787142016895340419594477278736881214511739273073961042153248797925557248737754963846497391283097486118019733088701028585674361332989006521698649335393912687633193814463805012976291916204567239125464608548494217535233455314357209871071806058894172270540787092964942641523430835502991870013455634552032838554124186874607467607819723194412083253680700619079884562419481480708338372319465190219521388918464869804184027812972985057009497583346502775217158483254245183080432183450711289905140904280564484463342355924009568663781076788060820463838848788323746315934591307317732651944899248297981716493161828102088008400606093375307116536943373938628796190341121898539146170401349728899550254531652056265090027071964556328616164763579813075442412336175883967913697901566415192899304802381490522510567267176213859698760611780703996855026934026099265311368132419987420559442898842159009722868621087034845038549934965755561495519124473884542336392429492694502186129039221398388112257457317513946577762837563902356780368604836467465585441465165384074162844755133708188598495068114771666836281311489175941308364121054998943140201059815441869563437212942894419572835957627694246046130218321101898497993270860961529894713246353939689404781990304358158960928305019307208161043363510905430054757470036713061127413435434121025962318124828177376880541832112612477148613098524086613432738774244261939245030952179114645136976943891491504474315697077831485704931473237503665443255059351891828413548949403690846816073268348228887643689167358414458838287113325598549942782840676902498251054500283738148858813556144209443381249333069724480494353933827358067864551642490586087941244599162712604031035126566297386808403800953162505166533370026028154246940360536706815015940699806181055933902485595063998475923762856975027908902101179300846331898702132545480553730752674085321577091867144495317817125297768129274566143040338822759615341452236496955706892921459991718556611030429525753079516528112163663002400243506843840072237553940273719729010515450747645203801558980639404787106612554894070956519431698008955020339494721343067585767366662519802423808774741450282099178807821346337825459750216381323056738697967918970541490619733711231883816025188369010188438441019213229183896547256591537554555469718632773515549480291984344919180881938938271822918793099807052582588370663382767631799541225113669200257494235979602002215055777406373599869392851380724233495958145838611571119629627902904583629061879554622050203937328947910159747396966140958268514449413964023151465022700936932256065178545346162876034823734303750739934903015809299558576139854396642347231737111264025842181587742398285698385222095923470448459937561089760846979570409560456699819180970004078986664951587265707848784367931541523254449488810787536113661907833417443991530722845319972837757823944104115066095685509092425789104294143698381992146369294612433963636644150598349378029905733269446111739275497818956736379106221682253340686144046732049309728365181153400075249502308887517814922435031759220031948906269321545144303344813703268953527233274249478085647642504487229789807518311529346273212938351812587372244885257263472537957614091399224489477017139178468248606197944810357934174720217553479647666057533424336530179455439374454491795189984203246854368943868955281322660017853773454197485968762286022440706337680171363347153247531229870733548473240423498562026570836727471694553173685621988811421753346518407834741446712219278771833729974491214576421699810370724401566336878529815238272798863609866322429063110939102886420750076851155878946447234957848288919860002861289623201854820379411394811668799295015037293499985850893382560767290150137118993658517675375202896271302445155687369202169732249639448115649810372020224436895436808364068074840642887076797310425729387383054061785473854171867868400181521124489419664703530633036326338172490933328779461021552710834937909819343574652610746968756281393054021966443944724439468656857469630360546288234329688886374592612326009450674278753211965056744720348656655276549568516335990502896857776082909388605908050718656206891512430338646407765668572711997165293549497607871980860354970603098163151467052375631374830358860624470315778487117350342085250884580642359815122714699139809469657443919053461118765583244139750223731860520888051907956036059679617621082231325338929561008792339224984940782925448110797258574802242228559532422958169369393483049559251948098851675563352992372061406614346618759738657174732531454849412538920439591472500214894497321224970858290836613719506026046800091252189006862394844419121874913099515423576097685658111524834653507138422917049890716609923576376207323719036965208621018479587372033246172816126605286169896571498693289395858166255444986259089144207398889648331144571983261494979000819591189452469259013470981444224883403304110278432939831710819121587468334234592041564184336916605757366040868309200747546074853540032627129144324854708475574797472485076719895312035142442198932551879706351343072443148921547382577505211318241235056911701781142775065528247433202935932715801599647082874774596772410028643175691624047932255984008055183385417959111894815149409737698330609515047294460046298532020672177431304181125378444409212140254659799306322823920773142201496636025317826488154281882996425280267513629518130668417283591699483435367312738608774240980038757489495372917674775106237661231740434955484016976183901869672199017030923372730274951820485148450458024471060531590539012047201899697104236529911663242681791042679030940058207410729507370349589402740166950943863173196045123139130557130021693038557167468727722903526684484565029990167901394389278360523455030033474046541138622962218135197805325174900910772308279323625379779721658580647306766582210650143523396488953905603533079375810686874786862053394791303695328662822675805668380688444581047528874693163784822866454389401134838421569947784381821303429903167927442917845157995104944789865875142772749808005297543074170362699199578260221571031948056527550302409982039085652882730769065533336123163636868309045096359047136274720498738303294213266371395604723665411041510601200974511544312181663414531840275686719861496675142014430679323151908043116180864640924522888160019410553930637591582810679611294979125682414409784737951854836727240644295950537624564906356444899063780207692885471593780148903866225347331240581076619695888859759984574497457460404043538012184890953505097326159351828432163739798282619378703955186684509318225081981123663950725357330570598097114554919181841211645118672390227964942688712295440827360350977391225724702689004990397722603343242936739333028926310495281477181841795112315969415141198250648526398186805937295650229490951124355412960890974167324000227301570493617574005613440758554954862451592407709184299204095573515072048973147799586862384213802296403876862004893464968376701482663708713842155697354590907751161761699708594091904115801050677784424921948783373316848762059790828697946389986199784878709491468517018602532582277139208090342335908351413518226497516042131135706364122156913798916273982779800977411528073906866172857973033895102040741486509055725131447048702110607505791185933884571424891384441615196847613296423415910659986430618238835608336395860183481738784324045537623808805279805906684536977423376328662215048412606014965578494840631947684003562274016067845881860444139680201777686949746089329866427428731661497124367650515922123019820203647974741429670508585763050707746319862105011245411984411945952969513884504251518130275538016305755938120568820396224428623741948823879853322023633892475793482559128750976648814375925637784641877885882481297837775855429364074371833581368313981522549758933014680582730311077721496362948168348187646149246886141011303237622814771101905002353273293948981189253301643100976212787848321902451150283914147978792415945374011337787418325821077859855682147055035192552550665801025052818444060622810500185453156196476605069030387304625744483660065950561273389749736656402883725978220906694982041443823307033497409904310489613481227783165918934488454632897268511029299663422699406071829903757439105008733507453398778676435282348648938049102483071293409750862093624613542070631428832530042524940911487702052802702084952035255470758309928870637607298915384565641361456598552495136921073269838736751797308635473696089483947143728080595159835794751591198254691062473730104556405013431317535781359196507718442577984057664184780673696566986523321764538513766467943753810803727828466684914989373900380430686052735112546821593799779080027813189496347408035079859075647530770931786266809607372603879531337058226739996840396932838485056990091263693336633037467040251175947387197619205402026526237856080583918887439291861543408764087765768699220329750889162665304542604274885358607428096308641340602355406511908414710814081824079646232350286664942687145870969642648627341671121041976338210552473093758549806190081724016654310911000022135688781071458565817094313550415446541826812862699945682298824251672308357341435787894723787436694176969423408023421185938225516833374645348831347885635294559657730724745743365922022539580940492506325772556136775623285269659879164158975925160810722626533725651909427104435218017018515060277384899120279154089666732387038532161387802063616239911309854750831473097713286765397355048594969720727309480491013055771634583511211120648324322610126683998138154274591095131548090607926223105313381591876703593607926752178270564191880763865541397448553147312020862769635056043424189668906331596664558975800267201901433698370244934174083084498221794690749189746197926492831600817209935902300924475917517243681245204940791259708032105436487747448877320649288888912156980363065483259097330482128417615535706124909545549689777330800462751214280140632861026070576708157925521197124539968518457098875186780754092296183473430243505193302907426057764964261281867907059778977270951669891777086720685235751921123269317400156151800742189834391323678180869915008649166624268598604520043732318775501843439354168093621999717697154819290786548531503387857529793466279238102003932548486159001827680590720992581536995666902834172045303824224753586908584702709011938791220414270244439409778485034358730822273760538072487800232298907460026126060733242992264332359801300167805376199951740607975397390677089850625606703157422703486244108784695028935987278974114220664706442892981153022162675816070350638014973187634171948764312307736524016287567989917300470319837976213535991436107523854574130660395781262409632600784484990589323310466155556791584012908979233251149787061052846366938169624015659611559788112718456251405145272732576186883368256255299492897728664531349422045370205574670555173632470528923708171712239421286709277409187991539016321886100498789773609929270751063852979564618181107826882583471902653861183545537447828512095613943231465236252710288499070685939525573059342967207925977840266092296776547568253005104666085964881782081166094452603160828740767740013731254169630206420343505710708710439962410255636762202292486405296420145383192187799021754511844523692208120349483519538655505885570338243559060072240947500932704535229811692659364933022957332019200947084193393776030635232792199507475972160582805818142018080823741114885453373690820485281070553985838801829310740196016827658314823734663717725303920986500021001777248526154732807998432966193709188508476930768944051093893063536433293932580811595415398485850499325032295003015861485407473588506041296620336925993015025316126252910270653245627525594919820754752554062241746138032446909609045776267855213236023065816617027124555810705785957274685663368824145435676531256941006432787898157385692820710403324785328436883789842211625102331599073194679449600799160712741521919912732564686642810240758329973701222087954022646399026507630021069977140610886816632635891885244130360504912343813245276812996117189607616120066297713888395796445377809207701972266347141041734553063178533934218329696539267974323141354258236278342592029201687764713027746233494212715858772071800011749730054513508129635297104272158394614391665383808713380031808058114226428929202264579555254705374585818144198157841225500092962143224023007286964361786341875300950799887151441960895252789351880716283240222706665377651350036157740704412420207816555012684254547421961934618627730627559369763800631397555900275880819156375834620994865670592153871463866399893451674109131981695737224401665247906266125520912450279981356045348588048845221808092932397255084830186747398641791760736859635721668050049067518107725604673835697366786194360749086969506005589820195041209748272816265397465105181278206786714868636692827009319441454073035237402115486873057685221175471356432522053446216352366234279573233558944950487318401116608139197044857216627036901833880749767725592908442809628249603090045772362245702762418447975914960491596983958929122315096865443423652372823417050681663169135945625120385086994169027510856972782108928022984846552830239794386486263496371035901484458461332423560445431121609240744190674132939893430295966459133516120696079674682015004944156569422625864798824695878946212802141730360102161374943730445134076576721251958824457078629995141654103952709125229428387251170152781923845092582449493015532449370470526770236520165476785800684225575684522327639211177135787136401959477871459067675406032297596089028592554026949736489842105662463984496158286229667321827060443189145081317132011941626828414222355504635245662737561828915334481070712315182721417757178873030211684081440331788720099547278502710731157184393063406491929480366723121742801522190897728386875346564679040619984174758374943493979205770922455071239635954855572871203453537302104020109999319087542560564492180875718830840377566784223079370446897454043614789748484524041822389301809269495362395521471936818703809096807289152399481161483171325085019487268358119906314565131456481884375310608213592952487068714701197289256582582985528271368946676179295225110300742323721116927114222768211804474103775306085770781501458333946277791205805905466810692867518962710946322534824396094054405997876950641264593489458678523937671823961042440728595981631779681369743578209117696277921023506107495517710856981965831579785815348469923411028293335959732355940474824717829682023190933237231504496252025010113148492636467156069014625831081757263482015866308713864629118988228397640909463410318332373675101222592288665545129309005340445627629467091936792059594075371951949792957357395441258779753000587669227717690087459293340315322641383482669729450157411457798617402721226549193813131622520953512889344243376264516326528577307131604085708390844512164381792449758079661922816238666686451981307487990060620419927778744016708350243816387934965111066805644098022219753965906920678195862272269031827820240772504999122393411761448374369536387600362042209555000949067326731957086371957683253027457695021332486110599928547169440492214070531638820033474451464962716611132197876890654305148516009036741613752177527430378636495286379880069819156291318523081674124686440284811008646750107883125062628743104881626681109363227367677826911271408866343573015555423994983766615623052797968637448854243467679509905020527601905942308293082637671945745498968914289358105922470072177058326234405282319451401528721050428554425560947196667124419197355000899206367571696114139393577338842297693773040428131236011302168158801823071452134353531895653346295005057488939050101690869391308089799833325699418241001050413399661904161197256860255928927678012360512349627675103007248969166778819279901024322924485750727975827577578932888403407021591517381939352954310482838703785292091525883610135162086262349789331317986449617688799084345941095636299051603574453264187067888540944386343782684714551222519600099185327582052954625449760346607016037796334347513648265644448438582742297318481198156423954879346173957058202771285551705713764774462631522597098708786680205593210184458575015820374220980103090087751538500038707380324770828525005049635587066890183612412093948551538764554068500216991369545916061297184633933613330366731402733023211354267240133398654334697424903219040069433246820423423605234382526729952935086337157472990646107238962105426463008800669632933143638901247086783669252466891432768920251786307299788098422096545835507444515817515592342346350539521296508798006075972843884684984086229245837501791362970650629245920675775586120305298207492289867796096620724498225758608230384274202360370255652478941688854952002803164249333498424209360643466107753321111723813284635662291778357633903502560120073662650560823688074034265131963643742428937452260098635020428449209556203746441758284972784564099607204934954003102695909136412313311044178116785109956347049652562507109038627606363098453517685244835111702312356276379925927449061529644880199299537301969779919551803990104651211819216725805280757488961343334913162152396211959586798015506067084903623356310727693684030432088096868825854104494633847368455288108907853299381018768392198509900871479468938690721542378039846438533046107295450985402459310197857512501457223998200827065993163209473094981464294365316021809191200572519953015369517368373846947486063139274241102391495465064122902307055725130612281212693542479306000954544032394385058050960878632416931063443899659967994285836462447598491622394661590288780531598435014168427909373996772853276986597491812362676812049723403283054615723313207533719419017556908996490808057833284381484707860224352385495476365559458317594547191772346198175768535805090837296673092395415198388478609007232718538721196268180800006318325017837181054383641833880857975263214879953154746150959301383134192232539737830788669932292081501316366981023996120384150763342228111330501343268627025858393461624783047040815044445107840654713946207869500682619843983469013790145258928697004221788580721572108936809237482979241062297713359361397606210830812329560346665165687255167141894690030525178578810170626729864743537459215177325391552214691420777845589084040929861418669814829903651605762281903123631127014909339404994225439026515208137437863832415467577043498540291156981367082195545605811056863256075432650832355116839279768064731858149176661580928400879786366147852902203763797185705645793973218162045817573611964397269640607586941831064680237715713883171419568398359009246730543829148676942182249066029435580944012199301621517337474787119138629391598092011398667279877115423503007529199946271531230997976256612360335349408028716537182374406830814306556082642972875851911915873188028112856356544826024297883435328740805678724021182601361605696461895803188807746445060891070862570155920082403918427227516019008369100219947236716884152777483870185065100137709408260759801022730598985969370990760944100539205409057910904558080744079533823613169017930406040608123378119391202627786234877807168766794136369940240497659232941210570288752333551905785616721879595191188802636174352113284468735885948220857448712641542361116432882771151683212940495723895993728239981797374927303207605391820537607457408211601579695024533480496443924874782629720937742293865374338612012059477163401490800994824123043819832426082308942330447337061240821478366891466405314496632200806129861948921800194799225096830970603895763634217857040882278195675267950886223743853814177053045902755834677156562568410882854280145527915082036179099373262297684109276720073029951648336859798269296240831653183256777314173382683090186195393324944878662691971920961879111920903673871070492326352212672931425097105014343374685903612407446134683176070409039893037167627658267229639565120902074251523067976871053069060236057518185427690782584211003971326247420137719128114596061097984347035659998052490676072207414795173902660591559843834880995897131895445285393768776944911925373630175747182855874745790806573841414497134367255381711673192616401497719837059422297454671277412341190488430560347543483539664207973416592032314941026897969958636493819464619958018069270241205055672871153464428811582252872273448132675992602966516102946074035510747620896164396951116259627256290004458040306847071900782171409573099468946530735358342728778914527026406267920665626975463407495576118100713487483970783160377880785599264084052824049011994510058537999455295465683674119117862706356829653913004967498531964168629208758241711670232610960855927840144303971566506046111892447523433641987531171318018783420764707634828258698582583863349746745944436259799908687661776076799841514962862954196460339494078276345258035964645355827509172602217095559762097521186336297710727128378283986093073176986357370154498844307165133644027406719314005799016566921834326463305981511252641816127162472178015019855772318927406705727533978577976669429420656737651117567117987951014435977092590963770345286757499867863176551836638830069499699893110111791534193582970410727406278468761347652926739132955152223708008940363887408277934231192150841763219188443676190419617740214511231902216080941749580845382719829551497910531564560697992553618441208573027567927904692757144050159036390816452545735261138868494557856718545741001481539036641977005690812028845172595018119011454437545664162441781786105958231938211350054461777225955027580136831404824565427060580409920026706583257179191124655453981887609476927481989395384039025112718390525057085443453913923028698283611437419925977450560796309856053721435139785783391304599045838203996485133404572876172322622575606986039800501128475535443844968595649785034692710812134151717510636806849519990716444566450080150380705017694723750134251711211144171074188273418478299870964073041123867132411076669704385437626393557905642412659191943119558735292257418561353828601503576334296719944437447241357787669275135417876886619700903633397826346904709767762695073466993393674609768102553528588624679031924932537089919309711598237654526372443592852201469140182781742818440385831897853620168717927515716638501708798412305533044580375805492238502934861075106768744879903322833747343958602771862183438869527207708974971957404219390251586986536167731571732189979277579344957811635124740311787062980949232987957106239119412867516540748686468150001520270354366397977948160365129784951457632554592948469364390149602780420564721898073907854800136469229602708632101386253678663887911345649618189038139748891145330545406326783938209630997446619413063709571142039890725036051245895364481532992887627114561271589669444371783804860379702729434854284786093585833969358979590772890945198798785327074424555443965500511102659752918271879261618246740911834449407986524786972974201098658243575964842925789698834917492587260772295139960601378148175983082057397646544102061156233441332087037273388728018663322367686128819960187645426799864538155979742027785703759323177501004070946717622785344519872335866343706673983105113274432453916090255202685278664070524462400355012953325284556933637540042343311012483113709799583145036146365610315773982011645509054149844967295709792105816435111053171359852176789964871097189145705499733742845307126005067213062444725720520449292441244762242075702829192168327848830558708309698505932489409724546439755465077579616039557382990836067511313399175610512231430035617914805329647257367758387332040810193778049922904079602159614612961438075237714111563208020932354424658604447618724497526769360063672053163454810331420532731775031939005719383787225082883942692849918112050826137973565213261364631409154217290434741817864459677276927736539362072866000676473965506302896474312077528741790518107806211447746130849318162531827726330052646672212792671144375240534580938196126741772859798868099375345786245714702509595323095538375690598095791953857931570588269494976098121417968899586836233907012742847967773048414935013732624942670006732701201950059239954700752710657179510683039561406706656041442954697899051544880732330581406440628752249146760335236374395021516256075235857058525799333737028287665820171552010904280955975886450851931051949945280668818905859922629599123000051563876797545507142551065959042476067221854555453404625046057714137672877501683206396990878554280937586202408412450956541377646252488191685007887509554277348743118609752872091741664424470350829509977913904028101194998556693357212402505993267381619887218234567697467725038089221806999006524709489008394988379122420389808206605284894176181319615944453561860921668746139425391379282139518753736365613361632766372749497588135222553467510620134395224495207310395291369065473389686912861398765439004758128633864998572224989474898605485381171601704263475064471906900513948927064699719906215987048630893658755472319473502849599954659440067189565482563299290971774128299785027324031277423492391912993894068487064655663906353659615417548497567674758535905780550299203890212333999879790202549261022774487127190341259021704919034779272191320104246419234549661504561089494865531909066958434441809596287871316848163165267975187138739858911588114412011866203544232809410271961424692912611501622135609490583430453482454269063547903497665941060629199973604827505324224733995797997233712317230226267660272218237534992844797661949375081000489972105332967938440082182673232231290984323747868002891017135230205361679858037344460946624518754462101405737440586998207129917174856930878134546619545760178303298490648359464613328338798078959232202255399165636644487313367785402358293134357903492854639346277806102069465707949375192391837962761992468930804650041693383594918163149676403577930485187884974601609911647172769893958151322223438307155471464378121515390279202212952496334604614021616335704268222861545666283752907645539313518096176626188516728018447761839897284592328581141173070166747485361811407401375805249862196237584245137451563640238781589756401040352531855471631659362438171034316799160189546741323908497562945174083691925735255058448378346650324021377660400007749143553983566869844212592536870984607051664534329445762101375810040559973683282194334791851144502791125291505533503493263507999383104782939701897718716428870113560224107664208445045893296936154417088935676482589748398177762362835004655171757019052152825120121234212023604936122094268024561210751189907904869074663708205151209763101595217399364359542427164825289923645589106937032168581237354600380895112461287903162658047426017198011176374326532933404871957457613429821564466228193684239800960750544981309883848319247061427759899959351051941395652964675411393699336544363782340743036216991066842322356765552581907817999964425341669592860407972403665576235147326143158127653741044469176256756564740966779763741925203925545033763941507182035760867720638642829377989781322689177862389421455088006270283097149365116726650220141310050448810081257594370151476599461121939561804711100224601425495926668366665113845073747070981825976394336168415618924921292801404280025300052716842947354811189647632071145650018909134210670198045046046782204041918150907686232037326898732947748167879533898930801220902633799860059383807951936524898284872471242929700165132777368523238742530902515674355637952478865507237906579564187678259515121439622135465272939594477834172898102364529141096988550057518076671660706045760390425752906563687153599289754197144776547791423964307985490871255217743525140137624990307773226799478827908761882814416182550588946981859894035355798759226838952398964941484912531036048996411098970492122394481882265003837888125748033483468509614592757893568075310152645677882515236678008592815108040815248488217225004078759687633188378540379894668836765058576084687867748640945763198811592252925662246921298085299416277187837139998488373836178009628058408531231376228117174793377361226621362594544073921913954852475372773158291613088535012174175037824717189468990470467967069639328885606880386932755773810025844979809304139099097237230778442284026937331228615507272034103641551226788730081240800429056815790701346231274163860776608886291844628692541592933465228939180100862168970641860933596452494701474247571481078445930442805123848416320029865551916023332695576412338888805668284763082184051885903474439713523804646014239563680435054142135529222993804758706034778072344883355973065201423823698016321749632964333189007085347283347675455072382944626427828012497050085286682326799728519269233570595745887233952960832331119931401520325327840114033678424344680835392956761362193592655574996464238047972141705526285564669389027017355118381550148451671182079183930408479373131155065967295734223140332745090400009657893997202627710181814958446477994442996638182152446657403252004330956416458926088519701968978960936187679177477128223520358903286578105757297979768365138834348814986319499591153385037523547594333257560004556495679749968991951267159683553948958444223740909612888521295695722186233910367181134732279191789772378116234625123598268045439309008830516322685418911703646491025994655721549560465997729101312028000541180036009690803899970792374063899684902031832880636009510722368279889465703044162405404993470128416428896953242722827379437542629487930280430237120043957400610238956128116988514675615435239728294007835806237427457809707953712357931059692224392636174035803399241375172794345055615112975897174202769367637255843377771776155889693109285428889086243420183634836025121294937577462271604709773351951769578516153718753040614791469517665858811666715278279512509559161774474169815895354145862127463052809047623904322773825877087633092927889481044659163055321096660136550684818910423279158840100475824752787270497626299480155668233373171863304286609905001003515036156980597519112998947455729994883966427911912550806863456974898543205307624312333337092126421260278072170478275084078257008161366959125940897957598438264834642289753489485159899725496849823208640385113919001796311384925013470199464476173540178406700796209386992627403391381445326046013167695540103933621076697768218214845211393458269931008209945286754660061536080702441700320521913471275226867730939928793434813218527665676310871002332175484910399536354675873947984938635171840022641295000247849254205123917714929996502879169655976900366964699307215909948380027198529044256331054590151860980063287692960028176159025184000725233532251957500373972437950309719632788843409966827322137891828879863103550492282556127788486169247869275250241834791739861803835233266682327981912838875762542738606785074331520444555015973564953688491902403047029538111375367780861834400115689890893051101458902942166732054386706850746037827956228695395319283098539213269538587094504189272142380354215912468143962061827611533274470862753390678145470569284407857098385187969567391655039120701319773594109759987180065297274367443610246895873457505995694138324139351343330213597289426059927485471246229730565656749627309615107923371047774220221792703424459276214725513036264934235510084366051219165995854655221735174557701207462609837998687733417641571865616483700800894536345280374211370959849965400917673972202381514796561508682045184589890974231041487252147788543693641124365255233290876280938729257557479053164971149741452717812162849582308581656226111247311560943711715270418587685490120524333978788855429619137233107292050268130875404520405701909205874056357425660439607596499394278428830339106152454788385162024025739767248203783858707910338232757155572540965497547727320689118627631842972529612767477490900624796598296690507808018081819683249060652197503948052256976238944900355976358053474242517331892553132141011172557617216436240180332405589805197595934155275854335816335935566494375484898715460925400543666803787044779431704182195440531935617014671302415848643876616903816110995370256154329217157503064583824965721875282817536298579603582242096806450809965574791390389757772180975773671554803683836104736275269784036559026937341083337725318850234969977970682072350042277790739445883228632278356994930652990433751052142570996487123658223422270531974322371739487885600838855413429512122072356723393190958246082421190516366863243198700009922204599970435827132778365447585832777512368542348754588519179984951588642815071136456383614075961264161902667815137048437114140229000728137542217557361381426394064841315712419553439186945840426487462491656568602921804338797574701988450410414242516967761521210894376381270441421427573346334441341120268693753527262042191262678242661966461804267429841743198905000403330426310482067862643739958032394097491110090464797681010277545369286806688496515140772569971136276646022541136399581898808668489090141923119910054869365206503713839239719372984133560574206229860667398244184450258676655865987826884531226108433787307371581305952566725154402730633105318148814761643492581728252614998945954061184814509299339858177132687053673602515364233549746979460779333342938471947157919121340879393977686290208747049327303646129702603462353877527351067809474035396330223193369872358029909520242882259439805603493098381696165802648529646566944371357226909821306968590179423567129451579353639927358611780417665356090775585141062315066101450121125247123886862534084030527381180184678183625872840706120334667107084908939896787302333100514282929560235206575299040969312953115578235865552514775953854888171731901273717320484705499287986631577550933961669376246479636675531200778243406329812035055883671003042902323947967094559299545147814689069517161121799782099616297807421615693931521159992869504472531920304773576016702420232578085627441811417206711874066842790077253146148804197774438525039421715719378283200917438375770909733328815940425785241341814926377315307444047518667518919195696988361117294978345940165250746605871293561630586233631362125873152804365699797700509534777381950626437038895743036168747553876769394113266109596269388460153180688540206948555462405271916030136792656784560897065852023051629060466148363047031312128217423618490849214148923999540881583004509795240665354177131754994484070216499430009296890304782166779966659014669739517216892622979701676329413898383675369929222264023588690822834592020988491409161410313742636051328005460704752369167441111893786995323154635821623629117948560876209686018543628061335193823821430017690106804381768548865113783372022946377294315679650918519211194563693405849362390426880196404332855830058879175277915575969416949714019029687207273327293389430526867654756513763307773646889087030442865281653688548199093013929415321919121672101398276788058097866508748060724699765657414552726629914902874803601465832114872497392676006423737373703039820580605834761214720363223210754774672053286733014809132089782137900201626768119592242869058678654965556989687547764438876918212012770009007638970064707206618242052274373308720991042622770042369701659268469213304208568698081075099075071949580671239322243072197875002137649198143502548473140427500266049301974122471908687098919419424040944737516178713504710377831541410932030720889477913257095065926133314954480251008620710652200857763710767990154685391277363631558821046026392275409662100494148988625930901172324312575463082401298030210598043683843148243177750455155642367650292071443112675903617546462878938540307886198391107730298844796455919650116411462268258675919237351829021517418988639942139323171608849662330384923798880960019240889010125289962204135634357470527206090259280410184533588780058101509355131550120120589822630397475210699234541679731282041469760810162851840589928547753654185041345026416389684274161999878957042982533801819700302669386682989978476498339520987709816447699718694688179053484318484362662383026879298810763034405478433880502715043134586448159403451204120179079237658462809802663393031239490376408795651181195739813091777535608806956947235932542260842017115119630201759537558080955655981746376810706562312409693239050465097772755861136734625261489213606084090077578465089513354510756498614815196759001789453526427611362226046920009693968547653332381858840803293462438373314510867515051145174120191735003990487459716332934629776586124801047507592576660566751832967542019784086968276820318170703403060772327610244332065141919244206038406879738256987004914799964472625135883631502140347093515842317925681818426597057690661031170032977345220381469334719915647836687963819478449429946107840745154098596160319910602574689386256652007634413507674631765374277443886195492459613413120329890875720672713366654412009348528019349110204482403916315739024243419032659726619821849776325821281284854157064491816682519964729832865514500154450044836403180304219685634776262253394142784968002006913290286835738793863538252596352401131054520449775623474224413728938200000277920063912601973997799693868218413475416931133547335720200846405606766849906785791269175732316757679857041986444378275772122165285412028750778929192122279020207605972566246873438610113507792052305520333356032667179791662156651516397980255796385870964950270262285167469113917670895169993867338659489598749966615272486782350125975005509763540354710079000545299420722308599075203466466651298441828456698126262748879390236689838161225345766268040150938188557569563187040522528518217018772787935346656435205434882557066770550566113054531440450865720102356274024219014748297646183575229623139542506794485872258335119285250772851626851636846639655823916021551290111133961181744365198247074122121185426078637653532773564229463631876014393137322127912941266219727239605335091503821453649411852181395555738853856981180906013098479862587444684715798353034664163639050991178217153766082501625568751294216405931212608595093060972113656715396070554559586598977910657138717103327595546311953647584673450586448417117749790650793706220340242925664101102719436040934961615768373076816001604469745536858998035885018723313923121245691131963856105622185872590159568996520268834211796353061031532233610732751532944675972004268813696113160463340297862022712843454754404417810334589647452875062433989404379848943827018775071356902242884278460334257587284005374994723782548695067041041023176281058960701887754471616448799782635543219527351201833360967358525175815798350190287171527195115664439348259503099696456388384781926286752050502383268038660678031609042390522702176596068965688341661051753054787918815534004364630425048168187680224145905027732159591895018121747006762198577754160360133720302161374485084058984773116206553384236448367305195280654347879123460808126459030284321778481149207428045947028971694264239339055786108247543210927856849409224679948942752138224680571645448041616334894735693985709789165825987532509796376527028260785461895163702635525377727489465769332956163074589596596478710488153365030532102282516205415767716701249418449459982498312508459388936134487789636334961246208000966275211385743158869487326940379970234323812956880598133633770865412316861013085179185607620620939680809258676121351635809562754055735354893818904525160765166566254958284534981262960318662834597379798886432365608477981337390394529362305531833428719428951196729302616780683710098876387723959235602030519710760971062021843976428544666896981775561509996696123218692362359751359351092645931411605097149678630300041945851347257485800168763836168896294262511547902621977913188300374672440682590773871691076286922450646722566263764564162384481654177124280429511269689699550912412821042964307704877119722462587189874443588968372474511572513717073424910607018821417932790464950126057218963809842240461772737653076688332709321135020172672620773993487728950359565762367821512460941700725516685840677308648547076671860139589011556216834271465948374069698996204128370146475085427952907312273677466055539237290446366393262898253046492743363462575947658518411274256654752805862212494854131827908554490827456164239746295187393899498288045821446262092533662670075390116389355104156154528999413423040884621505257293619802080686702562098087841536971711483547451332397201834200999774371065360768952088650223121744521357047980472328843897885117996094841662174948479244458110336290158256796695596308795663979521479177383514126042837279145148932075487395951143621554850683738185093314425178362880761815741792211354889850461341477459001712937873898070915512419669106549879360371690430689724114466989345033445474762764394258872297524127052561133002684548380310503732981779621267515028428883262145441751311032589428261120758273851878661233989303795595716614069650050354942293286660860002468911872267260804495376672337537889558527782574752246912118266607934633462067232621757318259435255290628530957250480036972461319657531010216333979287294713463429531674214320708502126932314832720495303977545705778755208936049321764475076010235464619750314525935225144272916722815435095920491413722515724909141726007448526880435069036103482620356163088904825399631047104639614405605850650789139283580140386004723842070182485303424742795218480634352396029598118218107829862259664965597591767120197847732382587980629393897370298457003351509734472649426647176687453062404079886159347799373635761282205390514721870795765344669748633552846510960185993986762617538146213926700985785313801310149827023393919437265836345417817429405889459134346231203960921645227973717468682482616959622832475368290414041677035906173820381680365260026734633638260834734252865158428970398113998991810446366657619043636802187976986478790582460518741292161268182365236281781645362453927973372978591663348208784339917868525250007960953364139792782303273243742811591057155304406252619356324615661358836743261879490583338887910776029919887458184915801403923507551419775704241425388346991394151954023985328554812033161279061639869323762222200786455559888547634756202984006957393970788730293011016882540511521558753768025373596018460032538702880155637447966026428759734614587284119306395306821837545287495908449288885626718093171549097794442351650720640233089295227269228241891705253363793013062201625154933580253529394079338587169004645592737266025224129872145965718653472540769317848270844457931979288449880412943157355108144803429006607329436448292205965855334109014976782457716426317244452366509852280911445420629977599557330510062096493746943726089761198647418247437803048493515222165444949665260409242100920718890193361914426371252545565419417843497633810409188418462609987114947111285141454477749604177687175065163375849722426651559930748552240899845571779740743924380632024764776064848950115204809148019357098312445686775053140826800089970778367864484480424906691924480658575581080191257983781881475315914257071586110689627292739457965106733286865115902993927493030061339736803663118798992888689943035827292379823476079056120884422389429853621221148849062237694323458429680849290299561115016951730489904482318516601092221965480836587288303655721565565104642699201931997165175988693633823553890389488937597599042845834425243675206860486689705000576027815967335127061038668022309175832810961429811539473762319557424272737093425264751713717701403928309252802915914700309258705407064733542101520410085126680607444386705601832004752726302844053765689439973275199126392217997578464421931686156181794679332685746560757762395290534901265771224842627974212898296227965196051437597237982409797662345879102723107289489239910826525350014296161418030824606578926208383318983302142990430901712702089683644339237568542775667528076550049366027182021031662278036271863716798555086471394826274456839365986884207449458187155219021277737373936765882487866524023312787098014855732424990022646565846500586508786858742181964036726681678652582252986872368455963786672005695464657577895482323805017331386802098788720405423022978414063943669698663538496057161583794509412425517316951915748253261054781593935508150918863719865698316583928162025320386098769368066225234604948626532641040149741731403732882593064175653942324331740836324333168211774844696214054037667804187496134979668794758550256419666112692087457675958140368542948104674671524425001830074509417731320859999481060827692002769084059470322265168338727443218354349810148730340132162794544106325684809309382811609550094729626271211660712661915374960044975016664506012724832395533244793559397309013993119422482230724890150897174983487202683199120360611040716472615607330467575850074922029069384717740834741345919476498616974797678124148987774392456642559358490893978715596390818402875147629561051551252376555951352452554345476308829482235496495118198739507786228985865978577702055755445092633160041505013384918576783588855379942054829409386504317897489846078323368766729887159963419622793033923635802040190937057642394125090288645937682972848476739082864795573355298113547241506772407219866817755335416768010210814560895013437746730757262333089446638164648237972355841006353428930922834621467239546469187143663845392468953705481475662621304254591669120756290605545663448729305929640981740374691469118470479274627550499877592173291652877214875684456126545666418672888277705902562192105245786039716056104999866258895690830117459065417382171069555762925394029802933647825411903707696620101427610453192640423674976323557334837043980315625704546235819363787487068161980692467690397520570155115070457218677242494817555038811772863968305215177907526299572837462601327729754673191093557280866244907074150798839065256115182529603299195245215979291682398850117616665326813563073198325148014166775634997292613068775259470394211654926000353738005598942967782397546146419422246217417215460264765381993312689025985337085198948564488937545215818032433412953271650215231428448237263589141778998541586016942863983945240344493862895588289552759035272912439534003625285810125270441979091724835534570872659449568208269484042351251708320425815237776979751774549736937699176798805876247948318449326953203429812638278376300939270193618093634907889600344961747449671941533702883673001058572857813392340140642543978540561974536615557321306708187290192902671891801711537117391162617293378987585860783402427709606369756068888749433743864649825321518242033488619191467519941837557358634983389081868743402804652577538100024560086091002558544802697818337966163926485350575921955039047880676274420720643599863650992443675191121090490664650728207062919271871268126514471626045709124366940176278695588083416680553992259752303467351306495222327757487855795563942591575062995418242708752677910765386059637339521482744676739523616697434891156201243351218376944969712018785081691659756938307454828887057431691856526700494749039564225666761751951118648617957026722908987729014539001551588821184686477399166330153866916991384649554397143052907194802494627901763033103880062959844192495949408102250447332420452176802021842659807180784103197451591680567062531007240765619211336134889364889000429858433722675267163642051153060608119618160071780668251030896432993420983571711265305550561304272930830253289300658539421720613626999240102039857036064343254794150599881357802864277018834300646018281359797881194481916105295435719379934000704812452570781824814673423163034481768614601729900487062494223528965709888719521560643779984026915978135442633285090038465830304944096524695464702263583529126547829533968577861039806402889069858995250476374346520234480549865445075884016165849094710795046198767773599399999446446995170457979045305841988923645657020238269955996729587612794632025274154498056677473863245110165730223397893409658459443990060358661815474470358872709605870067078017377362710789160889765232900868798544073115422622854796727502443137844330608442575773424931717982443640264906394032520206600614729573828824838230668583614432062594422169689261468582071463314117655147485262815389505003687101384177303744519983009361560251763669699272299113308145289716962387015581600482855387607240520686380444340219860622095393441963556770840453586095565784900934959907920451747710647689192725917555319604831764547392928537592573783833954250472207419625778833201574923578858923672998937115463636558831921740986400599778476855374166576661440184187939656687050185151078041354028635690195981515620608937454521396275473035269498189122763706985895229867523511766856171447102955076704605577605185502978887941690960755571912900093616782200150422294167916236202550977669450465534180514732139020721030097051628407613492317711848872121251566533664340393784643028817078185390869249605869756285377455255763393176169755282541947370114866883458293980175320656531164804625974968193972035056980769594539410298033183838375473149888198266625980926942386607141544954519454302902388765813215944599325901270780242737871725537201129065947583686621260135662587269498458233930561826910478129957039932796331534379338150611829680042203002459888075457448181095192229972804464463224584847420130080192179858377850876148066380883151302301127790205542773691094755649803588059915544256462747627273594328304589466209688634554002169191836796512001313698791086358473085197937618998675998339561887104386791475136507848484357562406176917126720616591373027586003604481459442239247600510359887562939562974333990670748822383016301423226031682471159244472234115360564893657025300125852988387018079771325122249351309253822611812488323446888487518511165675133935337396121419253488949979622873414713716374907534113445942168620565575431708022542683187547724693674822711901231757009401635528138047193101819330937289571230663253487432058439443039806251367690853572519503327656623020362558604851258209109795587531613508279759221915329548108608763931501515271052436954198316141779409700587948975073152716459812111727240682422190146955649890986100530788854679463931496058893465062346310546740718628153295483489333171136693267081403101577072805077630160341902158896383611027264579191562601462690706028303067917171597783750924234997517984494110051537225315121767838206269422469878808721128623337984582900033616326834935601836720390670418535166927450085847090055624794468590521802598814871078958682327830045568710808192105229478421653917818562725880138261135725430685361907102650625868206765279369727079747159890150861819304733590758384133727534672899010851171401851636871221409821955719516025720945126125309222161547160015762242858492777158838804344418644825627252817515650678470694955147168934985145395676499250870791827150592441722745731580363368940972309060380451886921827505432014806618869308543560217127429122797051602535855386412566084683640200655345985566861607656523348384060862211650856894967420463294105458912680450729260681771033741190190845364118103245770003196573331375882591253686634859803712543869571368019854380105994071917950372794151675530151136655165817466922146749086550887028992585861044682562566627593007464230627473644939337891399936703322212527767078856141410467865274764249478117331025660092515614733524357410691960322237314017412134027613185852711764498695023113757385949337712831354709877279120542506913658850613111333243685155569085419943488586831306465205997849052655635622187481900438224184614389411546048707499409727727942341684902900628588599356172964209906492831042248935193826452928909488978496956773480962202774066350657023087178279202061836841600584167792383587420041751917284109831343560760216487698932252065337140967988736382880481105913812996716405772683741997641839199651612100675312689209999492471670981387972244740972295127060130117827361296796736099526886604364254387584824863784062065542951507897487346640562188563097204306740465014963104411405827658513657164713187532072565265873659013580957863954513491239102338558120818761946622362622803625338257013894780030877801340093226521522505286576187360211661368918485111955126178967462297480062371743462856221141073959968413769983687236890271203575997540552349328856786704067306474852367377698383401316163297341482390289124011641289656121446647265014167068426481219370530718711992412234313031229535235889869241979101106089009627323986000055705330228792819107129630518048630715385103445104722274449125465927590652507176998249949173436735026806516302692704914342312044683613832713777352569371019762751237089440724570642619514242896774714848162066804458264092346323394256317806523944516012361904106121380021356829661507410807239523573383400798720770762097209544467643525555317819719723900620439979184990841495777113854253916141429138935414059518102745816995501273131131202656815752622651384492764710636174155289791682734258332256772324248234899491273966590400734465582461941797431663702838653273201230393856640922249931608884388449651519078597050869515907753648221350040193683568667282709448547874723244280754835789950335570597398994853040205794700278058625885541585943092015158999289935094748726904394666380665296108565183717385595979319184770656998895017888393192742344124183946539723592883822752949561002150031086318215528308968608030186119178849895216751903301678859495985427259230927966182900073265242484988700537834995365133568583310935112594845950401828967413943970785369845431641705488144521681017643229172305020767464577968023199842232877980714520838260942825781995817375263920979770678542950942794765134912291386711734547045164881868004633099733961431293435748473481157988309985130948357142710419536494741607279916339177090614388502859429291479705655443507206164339664409752154106106344541723868954053107732884685977064893431104560244755127472303926690439952495837897250318262350424346162018626957734451213070191354628969573201728086422400551892294676365971861691403542166471186168358747084891168401604850485298207613920794938470987725095583568879598625909673433756346912799340806331231190130017168843261269232472378723223439757527426708499727385904195915405355233343981584702735451883653227631144405731656404352719591153679931147623879423750445135291660386352448029636245816185593714898055938664529800246440684865180922945005242606237265774875608168982919838998205131526820159436131060553032178254493933556701158281425850602789823986695847353788939692272164169266708683617725757234688707970380513271626317718225335815068426931266169971214222003720410150838771804448109679463296339394864462129614577587716994410257211393556323001432425642516108075609417483558941878751123754906249224784478607292126699561823960925317137852069295747303062482743742422866216363714307852331640623680021300700655307097308905533037202404812607813532025899217752060646519803976262869630969591493755227084694677975641488996516169369421460660271953634044954827403306147134578160492541442879980693305461245502683746079041358703952726572268328282336249140008415624749301147398969386499118503773679142961647969057387447060624052159951011295540182112728446176379404322461620165583792610491027724052685445661737698395361845819898720958313027994707650151282744493705278758571276425601763208447639506394949878626622006026614324267604817991718069861840372027683305036179375662490809997296991527237564867283785000577109047887566055188551014831124972260609473859986147211376217851441853009830029027009938184217536203724524887968374542980114813518803325380649492849321141034049730013753012503729859506351383886286121187165976720677703431280597567952691605577056161749836130780187239223945646682399424538113630968645062978239130039303209099967087038009334838569307659880940308160830904627604055665316485994350724766179543763777670749152714884155898578699828066659187198899928595830728724813200710171505143060540713501407274190966001349825915080294909830482674632395190437770232480923576436434412408604128226594138826272392783287750824040132408832604037113100492188613580207490820795283451868309621740741013574810781999502311906986311390719006034817916162095482986321788704720335850836036210497132211541146604780791258236514623358546798765844424739278396218116644457617389765420744900457602341337026560158249449532206051100286882344665591070102975138661342652403662706807355647604687772231090648659726260028785417978796725306137249160159508613594906301972091409542312943331755713846790273465545626996207723684492092835280003182276199703538094481328771789407565648676801782274375160380704953558428675800782471628131092027202091865849436318367595625271000239015920259421431999475760006416246983074937837595197713182552730135999032942037519392312952576236476943951145479472168359223412915721473078248131650581374002228437425135052049297084978868482290629819577881145620020033064814222870254886502238472987972053426703064837457316119262424718747895064597070200842573979389782098183040407783854555979991693158671884837758439838688630285664642873888465340218090157493353635115658568692700683871455667226098711082240162012379012261083289162111368584447766102030976223187702059765488971200645993116658317090913498181807536336083091154770197054619015045222023377135191733109622017267447447765676124241318782361806243173079518350596129138423082737073621725240822599002015463358068090422009584271990700722004696761436238058221812415462109886431416415669161389529824759654020829635355421955590482652792400550738318602588029309515529646528469542676978698769451649973022952856906155731661134643478849698014559465267915465461319679162305922623201507474980868115668773173148568233224953959588915141696909811736874003340047377547884263749336420399488243920016751018441381912242377069333130985867691098348360238447664461611280695132408411856894441178728437804146528858849758198677139984067622567991443278628040508602070139217610197156616650526033101341775399650158918537801607723105151768119315245214178973937626333805386947375151534221104423051256492360751599735510825328961999940380850781873344327585226024660750713860818416358672227145737275058514984410135391519733548153580132516046788628733659896500674265971814823074887620807750284526925337099455006132469880184223879275998289474896926621554311458872787714497429840554125425816590527721240160335187338672843429316847414526562931069607338813912528205972121207123349706440307994236221346229915128477409461315727926079463099450621825523871319665972556077920862138040176862896082558971889459515712548647244187058017019055925182697901020270582662333680421966611130266117475647885572191503746512267498285079259903024736154311909665777789211198314701148379649289552954890715981104243980960347053830836281333772243902655110223282571211846175642077753775921906268887974846271164368330379025635242485770844040193230250978360163164250899660180154918357752840323956329580230355869245735719236935279052975375451870584771483543646818384619151329369206314059190263879523699267285110888059525731309038706926535390586618116046627167397403412572238526729058927125694835574324981127792356592615238544986819034572070225513242594253033507520139529166698173846283481755884402526572635001328991131240859581428906181199798441558609995659710059866095261900972252094019251143709354781918964543960637488752631391507704885465075187077119696798011736320314082969650620094336225778199141812954374510246339158396819826491579066512728890396804024072481434937127862898545899173258393674558213335935076027500744584375629615781688578370418475764149061912952897844124572552091691651164730082496150147518948987347129386620947095325505925202056289699004878254016762193426451042892617266091909126527667904152785228243707292319878934546543227708295419520373749344825574395517479816876902217333748870855101387784369804655463719441665720299702850427400842087305036540025136252466862253199089408754160656525578242897969386678142444797246080578309773101299166951584366650596573580312343406289147350377222515228369298993986570622902092795786696584521727233997005458489496693636153597727293039313104720756346294780233559372964149968673515244237629201354276861495156614886584487857545723468700977692456804936483023667307579321560519748411139752230119741144269992033282314474644432728788188455386419483764845032015677231789722345202725147198945170958481422604041443493991168624946136366840525286427569079357563271093414971459915672931858618802751695001821057892202829023995527290055169559681833288976788298960049348659080956819448080637719533780233617082133589581918690194449093555121144355470390625382591880461591071485732564542313295531999415487545093297256315558115498083898154536108708091671926341484720136900655229577492544494451956373549784809161116599483930056141431122188404806881540383731180292667133837481318414486518170002499106207502416526949274328759491378385538374536438060796495408203804631689940414465148057015543340939076596096753761065275226141496200758533211950042942887862738710339869350855773997490470979963416824102821750895017035324245574391493504972470870733868096247366292754448033999955145715885604194014186663365741872531228092217018476756830323369637490208858881685322562415391645327549492099771288985848956113925313503960235674678956592436687674205596886425607972071361708051591564107614061375238919814351949604710821784575543711198650366013089460454756479850467042779199588987178787267714083564777913802996665333814740000093692253960549201646025098352367093592434470907804495325380527977991737555600483281489517561781512560717432816436992833033558363748466047979222299078264540516306328659610319320666704694372360693122418970741186331178804631748501596199156684200840751749536277218401928074609701226216469924359913051842556106082989998498055263866910756169334693048086042843946368645004268372352304971393705783695020760383537796879882409061300891252693039852317892031993157899556025723246170271170695923373484059595541460205348431368830548933574110512085308361477419919982795654093590841289530548736288691636946084150625674233936443347015112000314025264350671707404081297939820375430810827191520843236911334453261036161993696147660038212779519786440681370430349536602592149562088204348749423329537922107255094150187297606788319411584447561618576549703168214091260426481379137823075445557597132241500100356363474206713740485336856304800483923211934718120669112216270650263927230461149220775815082346184991335672699391749736908181040797349421296088789520621032436438489568858648281503547494673748086917066016485235676087137292601006770438148282099211030193285217945032383633244842570450069733250275458574178954324815164628020914972312105305458895020546914217937069079176147176485397613332765789078925946353094440831601304244845494879921367280562270104244682219021406285324290430738120994512607588151917220708349760423218314662494726462322003055559464190001682801730431427984800615521479730197047199313939619160026124353575309085310334049978577206572418071610774306051124796529610304070681928858011128012464260883730407241556326594086595576449755160817329467531714210723239213794180449963601555258064632683846508952585288105312245862762027215953425647028669363122602946177307604304004733655011131144107275158135230040713151611455170893414086594393603263199505353799670949961138191573196327145950336761937268947826003061433285468677033500273676607880775138958062849347224906967772708270098135157555223543207524600296557316420959536811443241247173173985576356649530890824283853233665240481604198058366750495024818897155432313273379468558458362087382084864923649967943725282060505907465555171443153407274501101953956364520243165021079749172228816542151293543071448871858104716975675981888817916750286318714773681252117311064244947819023768180069897543151640617854379288280645703448459124942599498332232285494112053691524012757166736984571144984360386744131947525551874509584943844535079401391194331995634011498789613009194840958337556746007718456929643540037173535112404884702046735703784108280016264868794473717917350688805878934996914428507568434560696660092748447372904547619144256341667074638640443427345930463227418595415542306982042907565999856768896144425292035676128525797984137701955948038827408812305843671512897359846598491226994031727727843303291993147702230200969954345420978515660605512641910050717888600890074541200301388966819037613392616871345127049176221235834298205865936361166702043899110879632992615572940554995124944485046929879032578848758543781655090162381079926133305177028803674432707700018825465540211630369581935530384344029111427625117514690444690277262093644365382226605964463693358865676001441281495329756214445298893537734891828245026320356294843047033753713551172604239233565157951898960302095734867407878468402241140133378423832444126624768560191365870268514087778011595473225532376324327503568763490995332074954770117682195841386735603752472795091952390717961174844594983834144715684705964444874616219619826206090422108539816624026489669473568499568652512000330567451085449059265166595038945763476225023858521993379414099434190225167935217052806251537024676084486418492942998802666016517707031344890194433129376546947203362374625416479978697610361467008033519195037683407598713251301799177851898699981352650655691698734830582759544666141634375252796539331290462819586311378761166790723030660778836559378375888094153969208684195674447455541918891277563838179071712486448327189860267351471144575028080991706014366278365373796963684479169173246990012760434444402508740525257250315820860765270291947857482981078734033352174148949631420550578344253148467417040627768688389529686116724547740286459023261595608941737194133521996458467305446220650993596695408870363483398868925302790552082639856416312085102186864380905535960382179254876945862251391554934189574213993005949135337669048485278849696701732330323530973611260288081914428224660888966600014712920856140594033665179789683023440168288233669525325846003505402164708763790225522826566614702125562506138551859466307378137607255086209716278695730227715943280001051716524782588531451784798444718210620659467878595154052013299674454076482541845769730038287235751103135791736391851828107350119192740410875201239524736656709221675933381393226235183780418097634160113346337870450768931356759629087462566763822811153450601026762560343523532803153181622670618558181797231647458091470472102123033740297602458473169654496240777411797102773771844254022045116410119752421818868549791422778810733444127530998172635188103891143591604828180824023231688931838835628453341623384620612987910345419720953964541681887904795709256515443171227814929392075018420765023360658262973689174399313409081591388440325481629772816040907643725008791611826866779226632141027435726473061901587824120543785800859955040322852012341082187321339565446940799397319976598348059459714285194651814608338089320406679786401350556509183888466774357118615263440627075852404831607171560702885843397078027440885284511775691113854468395056211641774521740775261135022276589022622362139966684149465963841645410887218871899715195130927798452741963650788601881618925092581787456694799652023090137569449738369561976702138343186931347277509618078249670715552833424319600924537484679252721649200393644549473511199342689473758459080966476809248058869364851402642879880410146479299730041813636558246781616623053685624804939047955300136109034366668842575858929356290034030309016985660005866400390370163719793886200874211881120505379352946439820170462801866491806921182155885261987356826797468540074006494835717474763978540450685603995922197726892776588750502882935483127191790054981475306825268126121000307622459857089260609637502699207871110328682194927282562208571759681454563025046926147130058957296263997972167384164153081711997522030225752721302346333805788902793622289640579077864167751240205016206394822414461796392767961492329513086453253582764366907704789634369316772532886922244085188709473551848372643317330950762242187230147771003299859505427964385092604653833856006024618338881286300168633075229944892647558663452044404635796525505148907832829447226512514203944605695528437065709859140030898648864492508530034641814211738792713314549507724430262565890882466224558705847545310334263657078064988781689085077864156347090626888595473903884946277918646165409354257519314528444769455350006673743562553473015989265300549522208182162257049307217327478158916807619277683870140764441576255780608998002807275107107495143532254684336101043588075003090706332158456463622461897879364936230107610484874854108643060212121226459599048905565099118825364491341006228585249686382747070804907020032532839646919450902975511580576199408165315136525939201873532330910031130277209005567252732757504959651361120868849757904632869189127519242621371250648035822128353762853410813390581329898058155826402049649763637803548791617999375798610557386352329432221700608380014671936015492457386359518102080787177920556363475374138838257679892640411949287255479497051244041301091655601978777507641012311621860641115256418958172581641207299863765525210198179627341776962076959387866862859915886747882465520571782936519080853679980791478915749740054463062264079810234486471129071485340907046652699087836046992914642724445786186212645989640784282287848670637505462741297286394518452176840902085460638800390074574465403879972098370022192518730666511031091749810082028622160375316150188577973761365251739359575105945027113823736984621580056567943542332413849201118636367743795181097136022930534012500734102391723184439756312437531206153253594175391014816750908829473393741668365505045965664920755765373032135559065162691261278610819910679192907187188716347667049928558399158051172351457818543266622786046662469470621100786706333395665103659000717024448023603557413043022558902067466161108520065992516970998656142191685036845749797365276759866062942738235057091311575042533179201945717647316796546423648785578287180818862311638962819249034004214257330545356716201545037182949475178134327718425767802979307605742625157881266889030800573553007899751695182678862022507125544484973498379908311971053860963436501129163128373356208601490170876675841354123090282601634361427596012443592916364379993857831828001887874020967420166562314395124976250032462836357325595286361474019406215784261754925390365739001580376719094957565577482052436447036477331982621120322469063931695920975608410219069612570346039252394121678706221040033056254210066454303661881065371559997289009251237534491607147377084433389901406402700001950912881533112485114079122277532833137109538288585252466767940937326754765594381494127551398082968570232021716870682990524875423691148676587344348313277978126274457410948170921652520589758175183737714521841164445428069216091104460737117640305891559170449537237095768346272733506613088759999402339097862055254532716447859658151498362771375510210619692807988642490041589408513023912998348924394906944884406129608113406240102493368937443797136793462798526362270671205043882226863927757172610124364131395234974317600204758309120580005520895451315702708437470641007866277578836850004784644304242346265228519824679674728549388581102618503541888857712532155277009548080703128054278349867229532860094205840400681025147676425295736784801773892605426669659653249504562853543900587594028626285534607135291882334675165549427258242490670707872681081595516421854579329517106461565363061475829223672008613805823773341643456485392002882479098532981839479624507666394606363112851909121525574671289450895942808377720389321464314714461297548357525758551313144593987930881804710681497677584313401473948974125620017840832266349786272452567670186288301951524627355001486414433276984650124892567598040992612173013499653618523399272605350982506072184169851956933841608916647127633950671969041910153752713581925936053389347255131602415106649128043169514667858290867906782338253498617894515237544752906076180771212099866173668938905517469842435252703257267616406053808488786192003125518174812346376653407032467619271204370716319794952548660618419370412241123346102392547336415097397835984325687216635476886330693292030095532733931884534792481630927858914070991554312438016056734476477792512546944709631596081789722539580500136559925104663737600339834527611458098108293493295296811170569354767741858427563530712344011685412635375787461415639372147705455020713877686635631528442216349242465871194593308407706969108022262580199221391162701331509727160363790537748355597779403467612292592110365539706545409860194798381971415878661828385997051052960935305169369460564958534805065008055495887340948295922420890795593124775492439012246110785751145590569095521342669232108587148551006015878771716254880834412218474922887367778685650427927213775460895137745935710440574984855218922493441860246199817804309896089073177907292942015921664764140420725459749481531484734461998071432016368898872181177328875622363480793544706080994631947462558824633275813165265374926190162528529923609566332275141328367640505699231150436763019540491986328564601482888046809329137266106218224842525326177655224378857238594750301876716495400239983582738095441206671148041633404696322012314502750049200008613413666027671148274489663877064697480464691192182985645222300653565591143386538130842394561691288627224025283415899786716661010076054647121349493499134569769396959730684996811849121215653603416664145756483465558990068846617967565777636375222095221449548579261924822984186534750916190221517922665150612342434291475366353264032409745520675134679953465393492403532899553098006203371115153098718695401120782839764056730400566345699198614382518868344312263057376983711312369744483973079746393841042068220249928488913931345343204594459649138868066292032290254374951742861975547424534363459236097473021895438508632563933318672895462444894064605407630043925421112945155456343970740727401412302570203347244572427734058294632877005824583481011622259167721872033600365378411869391437886765010193855442754147610090477741406154104251996275105329347582934110974114064482228931655042429791632438827237915993442739817047189982705086193739712521868121812130425321496473140945478468237999119666807686592713787561223632801539091265471887841810549317507657040031842184228550572418773435582437351556172990010692207497627431111728746084482022727325986286241706017852881371034720294477867540321159619625468302905936985017472642946179864574056218242262875545462705894004049583515621045883801013538311190743976131464468109485470491830275066857815752540544420000360321269329697975849738075698627429149070143125710689297379301063251315252368319320015840984877856514620266678009831342593087922821893049938269340686828093207270248240636341409563945953133121576997091079802243109262748454049387523411564797844339017731898799636138626349588153083151455861843641248475891724605631830444709755227530975832506982105480268455230827227368347722218505062732815540391297897421127179498568565043796012909416383419495941413013046043743401085824138871731724038484313387284102528793037174953744999263020368691545143681403240347207829870375308490854194229620442952695995013728514273317915351487166909041617141836995771374096812998971349985951763501565862098628335656160977604132067018578413096961359076559422698562861413042748118131308493529935105980959874450639787050079050002148997871036959309949159290262509217074817737958584580148835528904058144006429489896179315572256264131549918084203139826916280168821276020054348155284815862799352776572274210265367723178587072186849042365593300031055174850247957540359902866016169451388516959721411872978015741321207525968434130676480746014701546465817785289148464886198070775032977416627945500697407480376703270765043702267192291929936642213009711479109758394013545682991874491440695761528042717549428814129999667075937523673203182712908014061338121313316342681319688085124877086303255504340169084677842257910196250820016735536836010894637648642161062668896921000391768236917993566160730876719087046297711251196671008200705479019807468637446863107892524919096698855952286809820505123165616473358494851146421205070641491264751188362225149085038557918324336071416075766387074065168044560223069043084730726288875446662008609943873456776930144942916241449857064330930428062188790573938127305194861930952606371014215448366529507619490243359391092799145999958076035554449968851569380321250767391924707532700460787042753430572915873637619318986539862552144099670827922891588945452167409676370243465897265723246594565879385157283031700541406649241617020109582082441152172742543930588601784445429267989042147816108516131677253913866993527921950657827372540247509920492795049501932110684387262724800744991514624325876907197925288045653072033382738891643572595518999454986261081958700494776576703147634572869385329320922895993349636229486196341854064875809794777427017303206818087978545083582221509938820258280672737636326882859092201529521026286805239229293247676926639682295543555427015658540600813750126372509117837917971032621439264978387473203485795144012938600446293075013345286722095251123256030557433754160138433940668266935996792235063657647828490593546481178243042744259514614235537180600106112301948102448448323009128581821611937624081731141864408135588886906094820033713299815997761156541415978610447408199577637253329962294498812806107098110156638809745327482493064501487250264157985374408676806869694941642915193854987424596237851349583035741717220413645015091300133377718071632536820981570833190149281084794886058105156089131611863327748381676941755195545040973429902073709664864746539777167822969617632053309767040675618924971164843284935220553103439558732434403555918617791723491516377965796754422267043056231452375481724523928364673392964336993394794098485132798901545208675241424985883664690011981904940487572562291878375310890009315644170255690504266074624568797580442626561409413049829676158960344629414851300584979650040444583223529519976697483602601013980568626148879219182339735946176828532314844097575945072230838648707937770300473188502148602072784685948329123889963552050298946039918739876905237635332525770674706717849939781826206180863935295569342826382797905742983878998322626601433199408400356261607825889638650841460534252685850802052532641204643744435522516146779188225110351975398146461829572937078283097721235574502965550147888669965302304171038733653123373977804187991160220169638027595019283472181705825781497020775143039628666200869788700959604241899351082684967195394054372675087447193750874036787061213757836951935955508760251362337414804811697708673094804912761045253119586261181266737354206135372097686291730988039809822368761707673863721014611260123286115893055964416102903715068851669230363604784388456772519239898161822413742715642672916983266283542581389935926442514526827582493231635169957517105848239172920220664954236468059555665826707717556031520764562379534003078864924639952603116807715246249732151643199635850511270097131887252141319275023962652869102835681573631482446160157916437821543614871118607098612914069335537067385906957580696542377627444155986339323856431666340770592027420402852448911369817287357956091276878104871280635955735858048857903540284750528356840805750890655145958364159520849926175722616771737591595530378360556605778326741748360957591916868098173857895119929888436785664817470297513524134124549456388282244792253481022123908219436201041473815741938283537943434731829761699766962619658145525128014497837686236649240510220109262235715801886725468536716209916272856484095405888389998757388458377107084512071937905634912568658411599828517254395859669910966483075559168602642037999035466583669036721708795686360072275585275105103366671152949915075023229614356961761319226771546821863147408961956415642455624423088241671487597063183046327708335974811327681827932972424753436055392144800715772695260162198761654961426762318765064591671705628286402752553574136801816516402028798975322785339555959985486460889079580334485992702059746351358321802477250637600243408098386367623572538968789262712563741163110946455746271014219749079754964552513340340135694907757561363349792790966877338325451821929976363152105158852510824449622799525615104074240207705451155679706220608626380876864432278991995444426813744294830674639041213507800099204106103975097547775936911478776847167698297669813986140782156696084597683348573550924814945887074365140264439774316738432285338230938382965045926935077926921874209529227288610263520805742509865107953154566809780633491442828339366620596870496032135373752732606567902105307976228998904422731127007735460705713829052120154508727585186890485558601464007468977336566992303157447959364464953293676168999999752760756743420057600489763371675707757998148381545716502106801266302033207022536765882333742216023268387714952677094360201106929587039705159169023400720899695484871634648055547537698720671535059850785213540959684131056681303313141322544392544991301451031480164568083823739662384404579815709505997766905219109512360208491023574640130949085390570844377328256359519058010212731149038906737928114242254940604403709363975154987741463893270105846409390915151764869270400296542459017965824450687496473346463175592631816039218295326842146400173167206341683354205712673440298540226312711721183862990686677872038390070133904926090858440189420941291341576702856194117982680151782349686664685953004906056101888550375909200481513319880656726092630731270553451686467995176135889004919310990039385399411455708427273549206653838202898716450074679811296589504509688705676783970277835473399202523527795808672654307320920381773461262147563498395490396601819387297334424610354540105005303191129469851706180584887444647096262330142238266699176152243704977531504774080739220952656394370195303372116334531187914343646372874556949348828906854673094636900080525195688819322100978010969576257759000987904043736763086134265012746745525011570345198918509691880324859854042378335194798163932482279318562951208838718609621652040246943796898812952514970113013841397577040167937205416306963295761792474057432194264294073937701683479255418634169179502948470857255040893736311049062368678572296793797287394464460013324990228435472120615419485372770032108891355274078231243672970239865246863446392455059401264839446015824866983170596746196562790218287871243797498068807095194996097021848964569456610793652761697044596817792742436567972042312309679438904838896145935278314784913866634767018752510092433112083920142939419106728943449791032097248061332180952981869627634618642551774774382692331441311688443205634767155871834708537396067852686008746421432141316825391819848271041359303737097265379106208681669521358853318629139998205768958803236389172496563370432656831844215270400594078049872639778668631657969773553891037627735642052111076422180126194513071767181841854135409798626796380907391349716987186938768223832464002086114969000452339504286351398292408061366124684684298233185128745840355499606185245173580382074301266211519173998478128223707970174888008583146691150114211824976114282548834614887703477437414726491717238520950336051759546797627399986043883620892332997957944150632186407382713613338088199153732985188216276409954436281989865081138412477592353294048681348468946602529917402622018424202186723527883862197377648793764191860230517897293886724573723128972360628196622858400162842229659969523127511191010165649855013538443952178419516951986502300279040520065846966226458104490494481227930151653198814641293748545569588930037868377543963317794003779286847298915667282629308321674298579541196676891528957559364093559747156433076742533877884342623810460887417695964327961846088906986855983625664291976992625971863703007074009606068500541940811290082817361030941455297937452565456544742394696139503485019206392074696370914683433230409854847653509967712851194871286941391764438856845519834503757460886737323037380447517775482993615505702460399329742883808458291284991119940461338556695774861956255289579477882280875292118362925919442006027909067696346397613019833915656108735604320983080490493752688700784059824149096259696275154973401254873195079757284990025467758973124905142160086580693354729013668078654707881304592696264344385582158065734509372920389039496536508198616782041861247099860726162323995002955365270096632481650368795071026195800335723370274935335498618470079774651652681678900609362193536993842214090256530283918002560961375180869567646378914844392467958942474259181147806646061324804986028502232857968577526004136325287286621123674263019681115246128185814638659875630031145374489538162937250212849092331002948286973511689211955362911095621491425010819781973947920055197029610420614040657192121647655839162616497292533879071463185318162039971991970173734737601383680196099232550715113231751659346931662360653162859280789352901456422140438739906693384783856939508474890702488302249558781101181611704418560854737767711312783535416201567654580607491096899552242759858632365577113747064819711437215072439836174938961536984855315873385780259390949249142506290753076396405728705583541949705289895385094917696896583746235184373966193724166147886575762391894872585210307997689408113019367005216376079010397931508857705229173884111581280235992528936412685197784757961842056954852397283430405403775239626355740124481918436635763544569641533684999911569468700685639367748417369614856457952766212542216707085753311663374376885023972994796100283987662429173357931963034072647374495734179516236618282391650836073575366116795784192620510512772918672949842696214113061105461868205574750555790836457097359651290586980891148052153436244729148014831478399663707033923519825512539944249732616536516371641841226054459296841681206804421979216164740383794771062777861510100997707636310342231748878412320825177078340716565014259572713079433335327636272740037305342242099143842734236281408414545972148119979146452714313289426018595285164149949892371747094622493203997205992199961290648881441528938359084111799949430776524443830883090545192035044195994538744792746701769590030769031776427513723063209247588992002658994515247191224401309322066164484067073475049470108711915656103793144108783361320573680891814689678909780127855226368702286903589136638621552457124622883078204300027014100879679495423457932714589372616335591328730274231068633550623559665500428617713697233545186828807241953585347787736033135441698134805756074434378181144997122956754349496234916632754979577331894823777414053957815499928336303390179350557665744326638619850299673609307103330366070597185065541744839484415460777425310239762885633476074225090534194196930142235387068578828433520971241834681954714156303783376678609468517811403567104771803660425425054443720135519843300573349395245447035864682275783841959838900247196529174530511493985395845410216107041991573229438989077442859247919317948847320785246276332210274089271766351383629039235291623787902044524047808372258529433424037425826787543240246551651131204322598285326310221451121343670726410366754272670055325647305961682808707572655547920597602774173042710918267278805277778992658175702669890214660787489300506186658711835976559238202166395717153758563258799465729020370327607130929003912129580898048365820889524758050807392694986845348065273262864487372686868516613602809981992228101760560844489045504562029915849143453213894639231085062206490990357398592967915057037866059818871800340018550646081366907453865192729968408777145684397581298582287658764680559263726554956098706455264559940920035218620485536236349257891577151622026511914863098782020247305082606785629443232483098404469395896807370934369250448518211844849046556040060715160575812906990552872154478811229968673023685291907488827928558614814980285234010148625555622620841673107431593008022501184229211633675404386119371685047137868028259576935258524509665994054786999669513204797914037925682424114625252905239537205892548852860694447939169357901018473990366892724762233763979310352042475642999763660249050405297028212708981795271950835268525813959007235639570597761533248768429483687867856525726008851802257101301142559050985176958132578252323220903103851446347829379278680480196088497294766422180171643548912838228313529051052495696460051401898804461706588336718424351065321220127922736051424331327468466828727017880510982951281514622585492269009296251211170407322442171662461405750708373964923570012147874992060595476803620834845959034576324741481520982927091054246953574928353976360209641015081599483978593798375137468086124412197480492881152780077686606086792961646282381843751567058135595341158066095766113924896985007440721625717805571569801887921008577972306390313050428823225374051156971550395197241612584979039682704293750522349190136008203055786839764690725411193977514272389550756651978507306155406353067548630412961495964197125518336143311767647217511912863094331747008131074709912691187018670445915647957609965504106757677845350101850764875170930096943751851280853793916859191067939415181455416344337690548819639215680818899379780155624107947322472086012254009665689208038301367350906603398794314407187976394801653771970950528722200928940488467752605404487954348341621260155627855043798339891645105031831998065821452509109152608635896802370182293175133034496991424222495174260995716045731874532670715967540409397584499336016744889054754567603595370355946712947660912951644032898107592447770233257280382677661499529100613877663595286483997483279411732468990434256277475897547814511746917852637334933029383254134117382574637580250299979516228165689042714997031999718962412413289074432191725714808327404997528721832752113252407743639346777574849699086123381152589074551186657980265424725371422523393093126022290082066332721922586047117943862915976976648685395491670158996684774549872738123503578827888863050221067370183857708142681570469405725968393600070096671480201053798467248911093362605958271768717518632612131513913348337777744117534800601493840366611562440021996837802663470377523313755399192065349855513259644539177616949567212281135657887856815425923217056793226672256995011981532381481085367430470645850548947191798549260744246049558392997913695922903457921218064089095281787564028204947995982996359496497711440662236675484621450551136969043785260208205675325840674135187656449836883821452597736719333181732057091883792265432021803194053482418621100182442233732546521296105849610196331332698636977051755209460895724718724430945475895738314653282393177729499523027433141367510852977989233509875198918057191867144413698954654389088599957948025102705889898447921928718732111240876774159000567222533516575018033559882313861442406935141447126288440975418688638773829307555362705984819709647006935642065328473733738623812182441047363353478599005450512650465699402610778896218930541941967156627870752133150552357446517614164949879524282697620701913917948048006038500748634674132375045147027159798214871976609223893957381974343680886599382086483121820297614644215878440978037928318274767374927813627098011267954044091985805122247056299422993290348270067325092898679127258656744570032877902350219853524662221585746258273262129841110924070131514315894050457313092214011144039801417701251430095000913083243152088676437967821068818047048622160016254845547205962198889369081032072256842771291777644202969138839239548045076481092823900232006527990167724174279937303573039749259607462224839034047430226122439234310643137353444466775802783392962788248333269376467900330936993933345065200508215009204124752868264424454241798518204206076385607633302311501852876984482474880665845233955345856649033456487325221234634717646990715567362457647168937964761753246321281311779832241787422219885896160311394008192078169082982020381961363111083320579433305003638346929132083465635895486384875350363802231020100813272291971895342907974394939521523576718016197453783471345140544990957335921689848119933205002643650807774917968777495369170753115788709476773382615026073801299551673818788308346988574854849405093997880051221781702600643257088221328908674232511098000793205434957245074531166290753419064645469965378490831089773286084819517078304349358678496498503314556303474197835155825329634344022039399014149835962211875328653246041007586712024305566303145222077812156049043673383083598904397674312499720576539360657728727656409757827953596483125090530960772906728537012846309742805869456453633388549556607244614449534440181665237305030497826719881702294714407616842052293102825751898968243708205338710404431161907242557320323258279542326557484982277355148573870195554313163181813475966470275111497572744113116225022177835022391062137669034851933164082525051758858444741914189695302867724158782464652533195821705378639526264653619828733170730054417308748489918308998603828172680154335521669458751945304263455691095817309948654739327106903832838555287700921011041268996238037734476297975602444075834481504774820977509190012278638142447954851034709310875604797739508333121416735331798149202881267618523677553058044879522363188222051831466323324366077527638984357598561934269595158863657393050783405842894456299637322082215706050604557208218421922625333394351646998872562004227454881479405292216987617747808976346555312239103159249247511409681674242624823364769841399549677864539789745948551947654376031140201000316519690461648413727301400790531033080589788076620650508260133865147006587623952108157519698856364815843897310977519578602921540541721608591657997562806292874758913807062415389458238148633078918338180115758030796972813402801273751249772795310393750347807624780051302384974133014803719812629268674151271977502854895870061451326092721353487483608578484959728344636707703713318927849625439846370023401732055367135909491096417327726324102485679275239747324971601071927555105066636608047439009310693187842297537513062190249413118019751665504805603104289539349439168853532643055329928547485461894753737449138779609788605477552797329417546669562254037630771180314430191842322638448568440397003645277683092460417508491068777178299024961272542695704550564300546027176065284821504237624856632938720453381963712553110537131418056862511549042722669818022993820626974289402691737502719973046338532984462803911926535605324559763316230548364509858570509306185936428502539912827310024359976803784130167810287002332448924140013252231553695693828566675507842606954103712111699278881631366373893613152541546034663297755820786729103754529240624194085241835811718259882477919582496473814297558128292701204852483807157641733781545668762107498480664275907280242808351428525699883114240048332019057878455117621931319226420893956135038014078440541227116542595460406512545359334475520316030557289384079414093305530437367447461108416690514970242577284428967792991418430197562164580230852728743478701374444639574234279333803873575332306448875636879205207998252044443150381504181353024515395859658780025648816241987600845504045525678682686185197486916841354510417777277775901705406331238041275080594497802132233165856058898290009590074509328489951409651374629685414480104140023655816369444850910395776470370582449260667148846368834402862879243827227174403340927396272602230841063408963273094044296394056290973466233950009932389503013005780852674419689640329369388951212991208642991639647270143114067709185356665626309574173185387543816919604794979656989620735016528422740151751242052578420665965156358333462757379295036679229575315615657531408243442278200096005236489339810469338383229005579990826007993257453686175485325425316215299967383693726729133396908828391226392505727523241926240506656639810040883246529134210963180894848551870481157263418231374074272847072958502572715954256940022234615453850665460709731056598175121854465714884117024559737632608372840737428577743256779739633848720267345929738465436896770081304885568056624472777660833014762372594857136946627426275512773966152262429038948909274716936435875937460577301550730639709736813708827724911407393193343764664938020795254839889152363334595076594570616439218222812210857320667853807946316653439525780975591919587559791874614288785812266291387471297351090054625910706572514451462111466800605384271453605991958025725982352254419061282967855171498827811491859158113399690221086508195787869749976967883187512821368633045268151817566320204500772140824213633086862392648087862144709530996370804023133108330738406832090688135209715148978183952950119745780129466470722452924704483479444034942463289481776012666195911749578752441820302338465570399818229849643519999210940748707341857758981486607794671806288736867627106060228592573881387900781993501607946591225803455570590329097949437745503817633217839975567758884863634525208226250791351274547593098321011614919396058310226896365059238685292288509851231876191310790937934830978604568400796863436191112688169005148036613517904085085884010504651469953535470387302540882135659258026926248480422684840426221180841407408468666041817310341165002076598199462445390337097658950461822719146769069899152253245483883117904923540947179495971459709728208170183262629871156865071974605584834510311062542532011863819558646246487600158186513279027760525001416777712052594735404590584039688997936050678280502528397799130158310170669712371762279141630601017599846522192105913853145015026203599454295381411032173714634889852423668900566351031130834356102221226897543717740545336852118954089897057832703373477158723787258718262065876489790020491390109518780277374909785563208061906253647485884388322399634816375125862396765967915345422268279989836660466735973955437843394221945818424123054687068943973459434238269080912585328203820811880364863608173014244456359461521473632556144483565893704488758544937064450531389317242731390819407263741347908771529443743620693742043922073320144623284063789268231440039124033217296469788702664006495193893505697840250146298610438516988184731238207451729002004101934310429340880169656421708452196674301673475650252808946007158065168692489686920037841655956080005169029010166645962972023631349970677913368712663938872473103976884219187656354677892473691311348761945698559779801861238693809576722627768640578353639106904626086137275521813842283125445112898191834683380091842119971158006612199593639242134537832368981975738803687579692386594203238993363809653525073053618056438640880253750740010191477846002276062086361698858960779063138078969074685303600006959918534731046532097527013619901225357718460335071198312717484003991947613223330777744172407921136557015824259982149722947866378470834830130211747753982186964435046204554901040157287409344689839571960611040481956790324467167834903754352057986481327905967456734074962778031950767379648119350879246968721070191036121258296885868403170135662507542633268721143823229894346336635711270953885976940715357263041514906367461150072395528938459835438140456685180863900154790681162551537727454486239407619560786727922409639612379386502260759785065352413595171056503055804676904674235864164398891944344758456283361629211112580334398455234917830973079665913497149132174231491161529457481877774954627993851885800045999467209178173042252796221427558851738845552322591159572179227596550912309568934892376105866858594836570424211206317282597679379305433837193550835865263377222183736084452513967137150854796641453022113957110475117765527851947964853195653320451756364253867188087601986508950480002875883787723628110920265816670434789456933003862789285666042125486492701737273600203942829712601957184705729735826244067687275757757851241040570005767465338522159267456857649895655120137161141777609841996319555898762398592567990065908731826690160154316880161504454758723193954086986069526850349656225927096741086824310822330013759433912748178064419592820198182067141951748352076512379351590096315065596479791062011144134537360031630671566107816166066695178792546475420222272549653454311929890440723417201837123318105158017348054410093448359706398835296427234261759314139360011141436069136854876205045187258504238622426577170199531114462352496399848211737190462496827499627411869460612438119564566760655635506826907976736297343184084835908283849702147195159878925230082588367130154210954878053848230640680498078977636182955341938384546195155643198077189476249406103524997230064002509497370383122203288298427039235557089755605498741201188106252358119742453259083203144820505164546630696768898469393372924118181034614691808910039528823942790451064900361140168734752653992976484499599650854623704599761407740436794899398573597907226760067180537191898409988004858639903391058098765380064514030942607310651236170672376562679719822857665396058265496930030842714011917402587854211883823588835044241045612370328751263501640598461757794939928543379936041845912149637847121079366289179954615933363014482371027196824917434808172260778083030345804425477853236357681264172315445490770783549932970591453189778630900004489868106705718206511107852619463822929157974426425575406767178687989571626993372534370868639121800311558338578613169302210335830579638160469098024941299722340887712031347602760324525932973686960198497673210981187007215501039881915204701816992837520541382620028121080956065807824518189235864946939864787130940702991225151524312895215688714042782695915210161498426727203170424626982645634592919692534441703927861520317844854964026118959093127316308845868867437602263772791301170159462770748907244663581987985686496599716323885173085778695563965466997659061797710389711294011804294813750807911181445393191921144695525063178429999478068980073948798671872083203931015470112473702908567198314782750322037262486381517182458187207834919617150312304806466447733946672114385824076652158079891776863382472745043513813518907688640764123869200520616960059824780758444861195445973331604511477203089943569288689428874088462052620058294749446230507168393524899222903294540892918507679175146222977590991306675417063601183468383348928253945607792867222524414861003915271535433462032454662260895857718943083924373445932849594230175977905891399089003548356341182722748099554293263038080533173201538600438084651744478153582059286617345062887828416724290392116048949824819897109647775695511160882679566862140119866655546616597256313078851656064851315385203376638614875147337425120981871019960879355673253396013053136466829276543768325353281892287805873620990271315693564599984290959614612839081477153688767196028801830352296254238071328500670963899104923724382042893867654348745008902566764455862291169918226196148888969756260646946677853799868180784071472511694397150349139061325746874938706949507228413261358191388154333638096306374911669496321863805623353253198119017497007916350153211758850215005417386832289816258682471419573944379445730046168151582599788174916416457081542980493224475566661090600567713737251459874849997873614096749594560670085204546549663727634691755121574223085760624615448318936358477877490984342338170467768963056356981361055977475083332611217042641926030119014476790820016383153612788716075569329715192615011166106609176259319701700328234368472690786222681027864081497547729182094931501421926356856269679990562491403657743921606305723977951515427945336383411614424660231529114000949869755524190810971802790459879450886679294060105255044612672923417918328815257107184227417772466484883594328328973388569093942976851284549079914866552927400451492913651667507773848968159149883199223339061046410115492537017184762553682206529917206969179269159249852418272024533650965968726217367320341176506067294167648754926497701352904273032152457266274348752093243438679811815016351112779872881465877873367994801219650854052745335060820520116470413099463066567927742358197327769613279000113247473462883062003589083991019353259891824852199210939833241011180130818964725152938554826535774383850283296027848788991799976881864325549005508761627782329953119881086217320373349699748664017293587098732358624953178261848645575825307006283823534908160928056826609497057685148090301621103590012809747273716120679403722920761763653104065983614035310932983347425311368955499210824854407153502841514466420572168160747602296533582472440512096127267148507095429988563254199382501674831760040955928909017739352551272461437397557327676599539410512229510549035179898812644941900254058552424610156524766178045093503730458198300012035751051917860795989818089511768321912059617708776530138135145816689405849891130762507918483361990152434691792305908228605763470059968588276246093794948420855659760233911049802073610966403338573796705000458588146711376588461144933872994147309243036884532433830449696338985067733683141698833314761034783698549355419095470163689106608516931043977300387232712954604757788008475712545621781777840413761103107571292531716402513329847952570392217177726225775579696869617018593518429791725201295406603484147324415564131134800648531242909277234856940815625864484788225827700294457673083882413557470118568776888806142906610952440488661088715394634722436707147006448529242869626955533004673246163056094475744376194940650424033792189312962689333199235993186981723586186744929272951840555383411809215229865973702611956754756311488211778748853095359576954367661705867204037360216383216388124618392693538169576016120882360155493536077188766752026964233018342256796160653629246551969526782342239002147253323987000124125964021104446719721982595756888305333630878543199487854834095634375744471700252034806306208479686411718653312539091435967258994644849786161191960885061307187722170430187802968946875721266783874292443849631453596139437682435171225708211360715098246536358075535539193604322841687482728258074123516971319701809833249792854792607585157766357534172431067473896524693457383854489524853872863774384050710196677756730477544366768548062972647856340078541269251158360282119274963273605791175362693865347209564802594363811045703917105106747004356910349030867458955175860174575351999791132344177869376362427893543693350493152855638218482247446107025730846190056993180061263894920567151338281921863397289679105668469352515234130977753462530432311154090762324740255965366825866498335773817883709496010172209492787614374661034427273993636740065795975402836550554806088250698018320744856919651377341123013107262392240755071397209416326166033333520782840693969282653343955016999372629106372211486375780390331702248470430519300750865274512130795378015041538741740691876083138257644690259597746353403345908493814993373006738980900649405086957393394375562117207732010383797294356867887069901899572676297778623098916618528053736785344250013273557264243793664621836488600250601529782138776957348998649291338162967307755333700627073026768203479547495507598172210353288075489618181702012290613537943014194768111786096739182528075790411640200367943465466395865795426243536366439024026234259972741135013114804456182578899989497776775916252220464230675109242133556668469687153784013730043792332851655321342383105245835958618838958986617511187149957058795971687747341152007425666532490536925037529552066354861361697157567460703529708473569130670989707783299290559416943282289702488521288282902527944578868415877339045171325603184432862821413623671982761977900352750903163312118864547597306527591489912094619028591605199259456982109337698794593224615122361702951198528978013586532339661889932171496389421779099573381423050295853120659786260767519515293550695274509112385380144020736708426563149538527603446513551687191114274808479855845321383258771521227907376497861946358480396102083587906304513074797033459703344068348574951077102017132383497892058371878593003159005994233466904606776708889870670436882948604562510790107749442963738251715098627015577894777892022107480134970427702629468384672756783048601830067062225760180041156886577969763667896484661968697054708133690093673367158139759338297851097309815034516232457216836893660904192400236616877866910054787735443180598400876582967785204829834356662331411133756396047193385518536050788276187851302196869768464435213758480380721773925558585423251267097596522865344837665561780834479136854279340653313542424512276017877883452979275705165985645746053097709742181163989655572371906872506001749129123671743532142681757280464197879384957551685172007963616639121955242088088448801583432679481441627843888670131988613812280382864468262739326612803142209160870916567042113555214469626484711148577368383042877778022445919205250379062143632040478743983286258996065018994012892280622753602885690768953287248286414060413609258355570550522892926608182910798647425918877242754089741476759797971617676425514946505698129220015974758014444634414182016011887333520853377059992345859394008612442711197253989484901421284869369691226084953269264265681279582932253531353272506380973448263492646374694797951980336810122732722670618933540114060125361468806839994008227640354101305134736551633510271443523565389072527460244366682172184161367173109205453512239158992109269116785098807859051904781415439371938642913637535385984520588005845585159212142563086497819902532300471039310410178319725934678406740393793626144525348847660632712878257894425667422425154982261465066670914468427618283483911258581508130569042338175900538831036889735686423158502661535773636176681838990446250527833019329379138139132554735619291047447398949293113025914118346480128747257090244650265406701478268946151637655172186054997131996720965821445321987086954540134664394585429425922685379536600949371126338934119038914119146882109060561119039460213160630731145615019835156601901167129086246008716600606150060828786338170153837234880424779400556449096165577880786682027485025196883011689952843435560706970342170657370748459472991434835587876592566304852437310112692698270207559966849130139099494939271885789116348744697703148882819099156635633607684642549950174169547814622645402725927217738291881649430947306479420660067233965245317769013778377134858068577877887428375247519319243780099229268916739357958857189600699393781199386640778986439776326728746961558036115213333979266045269039939626004073630090648894939324687044853760850724750926064201757304678091513305466980346725692905512241398700039747542851563488044340191094399466410320947254588734634238183834613808624308895085221991227824835860522014390597228934305560009762311781770291223318914804991320676210411159731131303379902202304270960275655672784504693231404517263361087960077231190803295271598040991247149850332543100519367969516230016227281478375976763873613669056079007921375621579784971671968257729196417532212666451723300219352854997168103641024492973847961888824906493360794369371886499532278674589167795639080070141458986668644679116756571800943766027462286389419873955201868671146000703144237986428194789427827213538675224834879724229930478031174651792140101644922914555774634936721619168888052255053123162115016998447083344174680618938769066285031825609730129613591057994225385348958407313994402943773285883033744142578986212389611814520404162842067192075805516658416390547618264486053250677855795808024115616713430434197171353391290300199243064536627237909826029764726736579625711036694395912999764254896580019137469312107256572355709098036746280684503752915113277619843079701491230336983350435791925753053431031846798870865471711342065659956016702662022962975838155289644066754202470770086666047072823764937114101240731580829157821256075707823001349781637450418992637263923272692415249182268595661813696806388331832258907056240519340775744630247058024414652379095454725762495403275412693681303576684958263008942791722076208470862397029512845671896701785514122554834543080068761704481436581260984635257543259208909575833431528123616001233111999711743787063268534128775664058900167977138347212734836473982330125143339430175650173060241901823672619760841695715090053218094441440915472402402405069456405475554334352824617406103420508753778599717464629666969934278832734393712032987515655480589735379372439559217789842018892182541079161123371162356270245987964669570861058149256076360340073050943321327712229966052545993805239506383740162393242411899551552774511993645594872868058193639966880408862413917543997595169412338935433196132728112240219849164898978114280708177973578559058335231902646320616702110904556624759412625950330502057752239809592235924325179865388467431867317807739823174915262592055760158650963495578569618400828581161245429044822086370793801712490180570482789742146889967836043017114088188942121660606205702736297896167894290890283964366286701871874556614791407906915142570473579330104615137401475089679428279085156006089335575161817299075736382062070028287363031015467917559156602581671362954154965786678515440945133856068524668906728915872510522419667801608601391629383913595958432196473739160997992303776460107737792567462163270347007612619804052884495285836271942729505129682381027287122359589588755407979513933002264128410621327217090983409946316675566932897589352112600584149232467276120147662384914897355577301155124556227185279207714222388837899187153784740767521621425364052254413351268632007153823175067755013029950245156721377568496088306859463238421040538524396951354907999207734491812905241016498274413573962730071351360383953017580769781694419775333147604889807659852506880751833746067995072733995605716445251239674814718895389913803515057608635132715570320278659081023526824896985436526944179752514477432463851558735778799759626424442888158411751016159545056239816390401891076560146875261358026019621791570514145767270351736199058984952095081944664626717365566344457776639215146285209215998486508838546908341543178993471369361819366429578870142439298202436914911284011799248715206646547111284314269632562952852429216923355066719515144147806708163138009432619990670083854986633846106716924396208291621252518710819231583057628068265617872548146741792593955961653017663364500515481851537782474225407612104501025235618260588141980063838730203990664734217613898383822468744097117898491281115216717658925867274879726760493555020859223679726499461082652970298701270759905202695640572497686995779041456237508712063364934045664674231946451747669444289016070373560872756588183154166129576194319154289437399568032147052239904299953813759645040136704405664831819819239245153101280455341359158185198148783564148444670511561620270321660573180027738600239686996851612917455000523843066517627733147797214149752154272726783659496214117071424885446870291733273306330114735924240314448397267593863680940363590943627097072595583755460443496770407821136301472745234629129429166922490208912405605026445403820660513857143012822951285924103647176632938694118184742647344227321299085486088134220643863401733574064142561244537791374709513313699195582467733266010272886680586394333958124951857252058855872614238863775299985857865284491147095761425201558839599221794674753399225585010602362844950794362766971746402654033725063357250126994459485767449219213392303381126989944926350847868636215963472520840496357856160278237482998294243913155033518040796784588230186301725265378328209878886596411603269977869455983227545642554473924642190377875484670683862685309361275470506332523227669257217501906945409756275113505635890970571769665982566053622066223616966860279361198994115307454756949170545737036284117360548168229029205585899669191712241370313475293622206027609229873434966776894072486866230022191899324754397858625190738293938596201286541946004702641772526123499336595563591947754481794133573130002123686024492266544691890735187330171554358230095842664596464707324300266779660830613792977075207218878190728226856665827635143100702957960648963992793052445811989453762849339182837452545126425155338716141566047953161733223165099389410407768099591484445111681457273408599058544086791002747841268293127320138061700819750164561807827941851177713948586058417778360706598041211652813617584614863499865963630294813988099635805878841753261271977627319404857347914513869434242798923882788625626509368388528475383358351448372920516896121042260043319938857416280579120095445348271045701106482280621435669996780875130169009921577429528845152968885310656514234917145834965328463834156912772822204796605533334428726112092648678288627089883117209200404911529553257338182169251794058220249546122225430971838268311755467588564104149438364320839166090114367265107600945143637023601402316482425452909435455305895361287271549282130536623443105798240982004385628379489472633567115034050099355342893977549199141080891278731194887242785444538064276729345199535486444073171291158612411181293938962293849307733560802895884160636783747049075749727279714063974400029136102690753986856394492012506469784933818103626518568309531533614612965683491140143361460798084120367089000270565087390812371723135267812947068710293836755014968594174972427514253108835870680790659611547565810327257293704196611213341301147319846809228710420878400234432865419185833709281524923685189979096315365877367808146323915338470095565187348000412331464414985084223197329988972104106645724092667341013380011109939497896016485132616644159928645568614151738607143152997406025553912886822737167248259864515025051345606864472894140651953924885030253997209279040281293519168130756634314202427706026055821751831403248906578387502778262895682475317291642093728314536615819115500984620997843172226873755969020703520993271354689758033417911002463759644026851334703151257124494989885370573616239439537687776822755196176618557156085358059175375152813672885455069392628049340624519662695583426361429909165387011841857225542332737081906002180107274199840788828818922659270510735339357705514364976639611265819037317123521345438867684897778517136182328385213634977728474472325795243168996142204115818110400579800743485843523630013300446554463861855198006814152899398461362266064287623168058896633921157303191827022156213444877296140412180787491802540604671019250307953930668143985594577328124732894514469965932485357867629392226409651023351681926491560200911651680443057215888672399791186913866175810116587696197216841523216680180183473280239364556695182870838008792857869769497302465698945666263953697278612116960881590241802607631512322440307641661129440730331374691569437200694489574492149855168286669772642746359418020659157105390745279542642583045413965856703380805614312890944422984916160501563711775773444443482596439338187601614375101831968115762150026543765817118096101759573758153866993224309917825441722096075828028257520587448289302486034861820171608287400786716099134977987815814759793638837184370787124688414840746721385664492972431121696683348421120750930506486256492852902757026728100680388462474348686469985044421664155610047060415845797779924042626442155264578165276989460667280973708228236358200336161008332167399638686245116039273940509107350534002539290884496124148840872949168049551390611206631767136071244401694010825841908384220283528128397340456392061354255860515555057464469110801795570295507664401866959775899817401266254278951137290942266935326923264274020693735885196794638930167806506260062089524117430872057419551667749578937783790981459050771608980095626795269074473245711824191019403420708476629604179255138771010767391756584689570715257853916161078432418918696480609529683855003932445247824501034312401842926031165581172829474234131178608297918803721323319502600893940055067112747916833887032783592870097611512750463841734220039809106556013666090136540115366498793181641292506190012943154221070321889580755013615815347426446407239453226385775089156481344335145814454875601123238779816181455365383790442444127819688646827506568072558216730768175912239236543828345900388700613765770589323711089471131777424411724533702093786757957864252447115841322368242059124254071560369432881453175063623953427098331441592612129111647711657674250107031318477399940032728030284912709378723763967803601075437383190139816259747281699707630112324563419326052019315526075146122252727821054986407809700945667313394135770253646880208057569241914060876300939728663942481378968801060323694373254013516503791626701444634388494887998772448487637917263331345656566622026869763460700548341920672178770917234577730553323747243835708727534951291882699564595079715625686939549072894801442868238968079223474399444064860056215343721846985230293935952049816484548495355369655602554874434570380919949584853186510482092057596444530236605206582127769915906521255995271990814270477564071628802519432715781097259818157552950506361983710590185495486972887677998114691350546636011962479203008985955085202978822769688157949172195981070094650297374756792277107837486007388772511198753241240969347720027831644895689204200635178070883522474946206349028129291697031022860433732543051934856222683434415501476564807533459086242157740507079850550387260613789393458589675663552247802885715346090074367886820366635456520805386731239150325669339278044745352881414533240216813797272610297311513674149498815490256939101741854861488417630568018096176238706326448161632366571139307332937908593334487075394773834081832433996416765872617194962993022788349454770563704187972153173540615254800660407656985945411441723823698619791700841233087142151213336758187998500206597512876784499309207312950503228463881014941899945663556581792149620236605687277856168745780313784956532790246530434009514747173121163661412859363314774585019020518879675013724588832341472921179526378206461798407062233159038642031807527321422655443678506508354123940804682705561537183487530655089871416482524751685020172132213921526177244339814367010832293537133427494642715106532360034470564865632941135439257696985893231891138841608176712274102703877454569596909978263627520485980700960963109378782427497550616148128648028438236253257849802267643532276747928718103639119828635521167735171699683021681950277472760100435181015351710559270531303706248924191093532328478982635037202164922914983730515691467182658921175411749876470473422038555454583601430192223939581933386105744338579965347039138898017887386202031317564553166854157391892348324236048402270469579346423559418535484814664022812871659603176395309833187002524027067789702132545685840660052947714334178607799441752873445949175210003427178946005346810093552989808527419335957074150933460009172015896123588944134126439106656165967591346101155782093540086994976780735221976920331961985807810173035089988252167660778807108352556348941189905982710663915293949374769656383131130550330988391465853717009819056887112822582100299220614150658350026975430169440689474861291285588287355383989501494246067847683129643245284177403316552022000655925679758395861582715183670890114074135323280420591500989748642419303974385997452685680237848672454072632254678374863380304446602421531753104360170279952855093253528683099174813876051696159404636446012705194909166256247252804976947803685047722745495344855028194874977941914076302064278291458866376912243557983771308075472183518362567432573891064049664220487344093010054014148319071851977329592189005987728058303741087401062674788030697394597130284761562901184768176240778746834093624473267036438587265062054489936313940212239406142425186584902717022922372540978254560294610785056100149664966730802652964188346047352152295327327398174490932142625706074917717710182494059791794980841075746588240048303902760329470438788633209972960243914830207910371007382637062898889405682002093135016745774190656616667263376973444445037821666394302397850824649896397007636228704327916621436484868480171835161618678612845103085290223981677427340938839635827756300281395909888638929305760881968679263845265378751854971843772418204894435829285592984832724388993738171970268449580861253870641509949976603818847659672052518153898698663016217997959512578714044981476026910047327736379974778613746455425725678653112757964792714684825967520636335046445272890273656433047911895090238923002172991480997434472225285584072964431697726499175114712107323705368497951340759119174894671906669056510275018839127518977140705104125154743031012718561670026529067047437830998994062379913149392929270348985620891954714671344982654890856106053554300370843048888435500730777344808587354093457189599601436868859386838911570619218287527695222672768232556897006772481912527221054936479594792370668251684923910407171911769522927600710641335873252323286691616747846147652885761574113508679780930718130011393312851435392082830691594942723092216759294368235460790542075939212327789256094421370468971269301947830645380468313663524008553704400975306704352519970493077744362860865703682707847434474252773150028049264401476012902910226940321073137770201537280065587100346841425280627762739679005575557828093555485618882429779277418980653277901644958086820665802733311072135924875938878098174299274303455662338188075183323253487486133706852218548208878366511659709336964513536271043033984352274617214569368928794919673240528271643042996901929887319839899190906657924617635551818390775853028471717474513625301270158630772757751868933113233164856469608608628093485852417656999979487168373187555728394502022718413081135634111387336666598617693687909205694910443014082051560536631762397003233946282398837590652841025532312611998811196102848159853243481814311529174297867714644161848750773536858188948612639596143388871000420762658904626048474203016080030409216126634116317799483966755270923972191927268153073147510505829440519110085646155043065361161797037538677746244630914072532475484182188677810887312314418034189395863749999577891582275568672547885858276196631726743204044650998315220996126695731921860775678341530087981803106660366541351230681121015637897145932004046840997640566450621508112782147798394449294117338778253949604733365554876768183765529705513299701075803089126654119384856731867282307757040254059318444404387300900509121553395217236153163512053899918092128696264908957843232411789587641072005242782696302490362507980479669797629254953763653186829483930584959204536369756380651692075991876603258412656419876747951466356941837393974273088177797810775057530245662741536413396393629191563429409783051543230205113557021510615955933350334496154214498653098634785333062449935012115472680429226886437146260350796513344121212932463460691349293971672543461290834021558827532498421680784508682160740739181130717716877014223616535543061729637968394261943666279814414214135953989270746227723198337951482302629355379716677289286305360396752512227522812975227487250943329968974484214769375086235479506240790505863386595336195980067137199289144646862640549571941111008038899958067606206359138658037821215542623074383155493761444690313094558751945777417074976572051885064807607128128893992990453394424114812190113829216814404681407783845246927752260335694060505525929279494540720659452600188277231841670530867286435921702671453025345039252269959007428494453040972186316994491916378309165320509802083590438417265796995107190112371377330027368041890266097459300879986845000242097730059279480713233760465499221454242418432594693019033530764260487621912936290260075479436320324000020350817957350538747107881853558774653209744428381979189385933190159526774894578482240071111515760770577660244406370616551704117979759111006799052733301037379355842847677165302309187512013601703609094916729865995597821847947116413819010016254328369288301081295548960320983140685021449792796209700758022956102746865664183641406127803521012443550055170527280052082224113892914619930235351536958364723517515303619379345028259037496670225106040709827475288919436211143635783983465510724708580451068145447117575573182341660244123187134720669419916932065038730768961911313295464363163032870825535209281141708240249753721414316824588118990847726172766703365391415968503137350318303447355281756801806477510388579149045171095097273205175749230596168457095100079512043543935517162687712071387015583343095718573972335553001605867165969502774449953509625788640523781280656633412588882854705927363868166479158409641631464585888732590660120142704865858172673350667534242125873523438466574064666931674730151377554638556445347692836872242955430373329425392958603074096824139399853053614000295979210288439942697193202844489611742178544965040079359972993364961667521520336623519670764738066553434849591657923735552798421592741937633324865246213040139393831188761575510002190484251136893520224103663956869403756938368893474157421927878690435900103342999982438637235329042181569673360825890055892020212360501681561356237459951129986499959680255124138485896669306362334442968561566258908848486970280908466615800712927228176744695946449961990602668762140340149965880408654028997145916546575957572482090873091772191187167850921042708060992176330501516277944157206660397478062776480826427884121576276578579270413039292204089934772076651439594143731670413296391352388176613483793706388534629699072439073991781680404278599842188395134285704512978377582533534227789474673619254964030141112142537201555621806695187267462651698459762746191064297049769343168253526642791836793799052064937689004527535288357852993575996724062447163853454211337875537420242197909200858311018754338141884355201777841434343117532956563060240286093232091318320535343263766499654612591643042125756893719441900574218837350180950578665719477649979155607534751743928010725109914347557541309100846788068152971340763980352114647244302920435422785471463262654829458320096082919616956037034700069828062087099376542472373938481396359290442003289915234335452098193518947847607035641039890907858188760015640241327806005533588256497159651693815298843872231497356017755865806688357738523934991865125060848897722460749456957055377490741181751361920326717625604245550174330197869882957653792307198984756658676949327922070789811962216017688542458300138809293244371901305482686359257682044068761553868668299705776198709748915821362033332192532387762236604982589660367124496453133769101285397411336429002249756824691265523478601204011577126820859532849278343281330307103941889281645915018790040070705417334124589826789306578205608302829783494997888658974444041875171626633612919717600729741246767509031727381920333473307517168912319356646306725199746663582674912001999470019212680906262216565626878774478041096240907662839878036775649276458221047879662480239698965328801244836345709220199281829522521860368655374034028155389071955404775868874752211087428654419703160152573999038972443403032607075606187671856932161571669500463679393819103751727009432396615025298272039181355618616523398209567001159435121314222529199200832361424635586414619326529598664835201714004567555335871121509400271677406133073542325404124930232111408388517847661769223421860243493919197181697147013798788601490965502254529616304920916659710594750831796371511598920289415040973691012347678303709778086959421409972564218347439533472302537463917398117438786968345173488225687850882477382861371742411409870758826369416886478948173713371135256554188331342236847063148830700860609611128465509529358842473670308378291860062461170552791510564512133404574289262672333196294483873247222903325962464979798682826138984694656741565702159932558803374245691266425833356444723939579861036198479105229486282861130641014939100660610420621277108482831631647577653417170502836532545160073038315693063960989809592496806487495953030534806590292940585660595711415761635377954115691341689541973481471839061371842761927716379020731242553697510905061162025365077988932862009205578266024393182884490660588639278543522119857199556911271320895077560607503297156269355466345991235763953432416656402453787574792048338227984505658104074616719461771982324962430169971277966730439183695521531018583097454282411165875010282957470495668562137088149370663646682116164462264875830136187431144898553169944407582012525984811982372764719926693594918541479301602921727160748373171642565813214855953632312794419410101317155279396677637917341285831749683216789374658143831449076344320702351044938829274974440887268416869967881074188549839383382089494611200253740914585980555701426353193016663552422527175591074675452790767676524673850265216131771169728705880458372376644617673708786911244016169131901304249755214259556553157115413748566552907241378820041042364233856076204742805412333516685655060160620065915746257651602305816587112641169604277950903240008825784670694317478276566816547223160007765751619191589650195610134152039888909808862116098203462279226302015837992131018215095189013784986957499462906966457112248851289149833475878526121175048872388027706425595955964336372294062595422996160955585742706152203205157538691191722249313425439229233149385309127248891332369446243332693230555077480338975448810588453757117686722347419918370547589422217197509155575998425110796725932859238160047057548137202766348276574713698081215422219487893528810361677517349428517284217127989124349374102987353290642131946218736302644506948866204086888112573857869856692061763952592135397659283453191386117195309603908742714557720281887436061268787502317323143381869287697008298655083287284879662421447395535786470138492216739041793298275269900308738098587350221384236748760436808071197098777360190855432123475185560292859941673195973215080584869667896292205911407565595961155351449865945119665393739750154881373044054362543500954226527443681472031343054481383627616529077446297921050554768463383275865027109466192379162541832515949287294136053638573850080979968989497719208876042277159459258314086130772931853764748201310026419953842107870551541713225253216719153732513654006611858600120086623936478096931687799402446457714088156606989707243516187397375264533995655494677895865218272291270972583381310707993682642788813715242311199624916556136727980709973878812451676304548476362452654181573966679628226739612566295347450755390236153767071750750913888032184446517723541018619046146172207607632950915427537505265817335702038213807540945260507879025141882119398195005979355982029968412065724745014299957645810903336932493973410332514644331689021012988071042919358116652285891401079448673377326263411170588576372896038300365859248462517969333323561391732450820198606504181996624340495452511660061348307555480739270742239899973713770527031244285337938558763062896114491475292441522136998597732678221613372665816909584206268484079152948282452091884590187379919532143401862404146289050492108043549795264205142976580936942306203170655751076550475466342994418996594188382772309303851756812440307622628162789496750280520238150255501863622354234309988425219102440262156802068907646525597447461763053129261859278688254531725880644690069010089454070865112314259297184896040669145048207268442563767015299441812165261665273231884295869619830297598882370104557580674324000656727773241505269242369845257270128470161652823576532407622859024006752497822654489564785443227088023679001235104021065470265023494874891027505569057958795753751810636256785282641182780524941661180431943374650296844792913565545955673274920546182583623768741193366000396991166837005052010650574865273646939925950192577664001798100035672563245218629103801082421824243771006936061682020308400418993874237618340304630010133658855333971087399425092973180966716230431283291756285874605522953122589636808711545287933947168904302969793698350752486068524264989778796770506117960786447137691294855084998944871823548533505652841328360029196620830672842773578346237447107311920594879453565953274600260328449203418500909852762122540838805974112387486488086780005510704520104256473741825257026769430754812493479285603077366011394940929896733176012419771511946726091537786837657850331900823317607373380046561053928883191522546516498821915359695907819507988634022072880909298383411307973855429493670367939680589200489712924823992535570068114472630742065317084177152765675686387713508841763918615924218291590491297696368262553652169657999472340130224116063870227609635626781441106429152805271611290901271903756078124805363948944920986724922472451978305812468336719787103326503626967684253331971592700194222205040416683199007227056593068508014284129244597262208999088164101140806871463518440602765740015108596624033957856613024800613067386256259492342894325578553737025467425969941141571535024621309139873315018779731389763603609438780466686286194138252804229788828241465173414937205158032028897481028287907893221880753503401186204400593196261628268563204921271494567979604651540153143135136001171810983211229218587454020434268338860542580194855681716813582046603046093857641908444829635050668010065485289097388250951116462120012788963939840423158882200775413410145075386884509583623137850292406713569437267770057221659525187779973501502761176729225228499442827298269452421245665667894191237427340575153920286665617009779272394386093102868451797829880527568135760644689071920138899514842962978015991605682194391872348042171236056087502226780381979814450589771559585626368684918462949011196379179099863988977543742141501213884328091665998641612390320405889145538798537787435460522324614204784978149459235317392748417889146747751096258363659461227354862710443510826841749836501497134490373732564541873969872523504462733738172242676724788315447778729414858035703689160679969533399693654735685685638259548851638521916985608276733357279806415767324454642153726134620348470063375608751865784110074654597004041163353804449440770792693469253716484214541235858324464056736087200992442949088805892882236018237284441245206007610587985146159829533576255496888621073855842825852896152456100343111841219791061579358115344500643165511935250009999572492563963077366969221918559632483425712175741976471226418819389964755414356400056135550342269310392784483375058376122167106006624137550362233319649813019261595398866726857625323012694135198311046939964069922414310604662095645190997735163288061590517305107167629984407916157573998942416756644993554787492692852665072166781532690451116062150745158429277185382211708898611464500454458156436984038201874919463663759861843400166136967906764273639408254733013640242598210102738404632395013279141434056710510043620472315057482913773003940149563145486184888308154348617110778965326914986224801046995803294659742222060921579837463633779855623724835749550917666317304051392465750441745740511100016482482431632646281695833479415388599650632035803648465006846889034821832689618828965958195011022256113212631614297412784799930559444629818042025529716731849572829478198213713774206068056671133865162255289316642437116059982552424497041334565624766624807916066391413478778760532426826409081161320014893148867514391212476727288106756210772229885811939253348446443902895919271911374301866865936181062927605307795045988104683382757877734991660448477360806123740513827839008846271251417696859682400740412507469578058753009940104628449026637739079681936489507574004758365008088609995040535047403120150242936757586372296978043992763081126195550036608093290740070327187692295221088228284935100436447212012468701353046968380976106709308384496302445179093466873514824165956416221019949800669685580351945010712169570693797534598194761744612673241725974079282338472159594877897202438391566674072480255738952005993365149823165172039584502690032835790728456441517353846957906266843016521057100099076606526789432268014400809146658012588290594623432519244384562266114445367510554841050785674128638276850171564205755304172797578053715471755750114937887231415802692040903166933555908957960695663129055317538082691958242340708224310499298477833549889125223436284736121371044321012526253452926409099078496052182230936209318272031234754622586949810326080212505474400978119546634520427603691865384790130717800578949849690597919234923142669626698550939545510112560740246553274714901646210169802404057686810250915251686661940071131715641879216890148506205965639188102959571586906945021462208610311843684289740825236202095391758507756373552594481839896480556879252581768908487621037322649593600417515283267842577085399425084588857526472525103629236545941964760560167910664996554155752726000354035998858799081870929218286782443474412917474175302675883704111129929265396030307617571244171379866885196219266526103378530387346147177528360972709245634268042098600474898069925142710692577307407831706973971086719948515536936660809356649593904729280628709033273896758153522067921164048515125497452695765413490215413003041674174508114635108488370681198708278414730303796019050416606393772641226456543922499219970258357219785396601495859772124562904310429571662767031294196512905847455688199784924979376012716505920788425503385153593953319657831006223439225166615447781710554176236283487387155794137434158972509922107154021229375007974705164938938547287834340116262990423567633440916857385367039125212814252523238960591058297786980380271548820792057693905079783634790522538699342087639680203117291848909938881002891503792863149496152932426417553458591816841641346795735377281805123241000404711979852446987939592513694345158310872487217127714758321009631947468640401866924484433720426641319797020204353182914539002121359412858024370635430633375584248195685897213207489505909735491810734269694205673354714576140411088917085043991995990442779854038049263252555358779836230439794128477963252497072805499295523079012998313632889191321366302882771733857613774112436094182732830966521874883179184666132545602846307309137822078789243180679462681755015405042531863910601287221018480427831793096605463676544217607456537475966533223926439677944687695185085154041287057831842670264978150023554337203615765776405005580287107030620371325654743082537463740019882688872098802921894481724808754142881287687315146656803529079022896767467842336062561030118448524196392638620618850750529415019193555833836546041559420940748829797077710055935878037621405265873158098557244613260054204202168315429211698598642570963605138036277298277274892569661907076447719537360270751281031908994288249843917737320102607174787952242800371957924469987716855708064292156862946145911337746311556212167850172047049195989507989156822445949246316444896954147269923387898679119799436359444471236157532630098535493178319274636989727165185365380482560428366687955483570817548686024429247594187619532099533700185354630448344263122352727502004409600364037902950423859718630541024815385582126800937961140150335056756211346338514367392139523310538812181400000436791402109333667992337010277472227129074110171227625085840515333223818342751625294397847924477875264039213024301003707581564265472916614900080048274426159201391996985281861274604470222410504356362775195770466652062990280358370805205045033462263662556397093030238714088530940810030959367295354606208079525750698792592466760006008701623472561989675433686644365739923146330624489071135366869065406369788529303668579051605858580307835812191325890608999718788910630523489069891302881242511326935178236347878194470783970095316403735591906092810112371225724913426246080997277742279636036160227823201424491594046982499126125065378825211877525176173582031835040479102213747819665341989980514359475300020119637770893911486130765724232624233513213219177554316066528272395466770098238861466697065723241833836556482411024765452275194331867821604174094465234574964758826885018863994726322879723133357673630554554898599062204913627696057821756818729543774833537545781069691846461331342309368513606793789900469655689030595798006957090946563949152121067447902382967002599429605849917609969587433416255254550761701809464285415395166705250360456801252917068352070713133713895674934225934485621589475132818962006573474666212258109935360739104079189561448054428820732181179551471973963777217335830120034646763907419850276263532416285765536501188765231128764592602155635252961550559701814727231626808131356598191792556754725731254826549296059572953079285332682884950054739779814141968775926159938375756368919857141893503576104019318822432121467525337767511303000234012898285946931678082386503885238723701908574697097392128257787775421767711931042459782828019852137486719591427200327205170666308691680654629809694622546926522450509423593742316910832520536850722052584313551352975943694135196433211692172672307496368001644038384989644311500961257706638990110122178391011892778934081786022215454739098975391088971440295133284857877677552624938925670476378387230716849487169100707947870646503901420963461587719969818141315043480531737972585681363814360477088181961040026141139114368698918677140388830358092003893482376474369303220215365279759595023143926391493704462216313817211786339898904523973058854552264081797254240611164696925713465897141681020165535490596424276893929342910130659575072060341084902134770610202056950025027888343479150243626362084356299064226841958812668990182460397146193676267971420379120497319713926508946291452060087968654734362454309975851320073481997441322367700857800894096611284551668884003804582312062777359591199605562378646127567897569523875714292453047371150416158772067183377720984610773521703783453851661724960803479584059026511991627439173387076549439240783282935335719115229531257696660340082833239446202402006244142426349114789221771808305417208702067058736206329373757385205569335211661411454053556391778607808291474568310533953425090874430424876154745902913276984207050690526421111730332381671807971914269911289960196956544898134092277423081216668612639074270388607134766636377577323201896696689659763489559358476610462588233059740879313579801269901787102959370494720734846223031711242301317751193763775845099618503146151328264109429450275861676390366676185589932166810191283914619123056779780934482821143485444975774105786415523196677719259444412422572641559173878197786865073899609504472753647540141410660770608087722746157645722390317716519010390931390858581786026547553945311223283277910115399242285323948676997391106474262899118172088460676827212067377845599012645356352504003423551632304581601400961543756222568528408212079242371593579267423381978630134825407314633723266105197335111844789236998215369983955150558879327300436974396613319341743227076158695031046142771420353232300964948673646964886160796783944118047195546422245492870756967743333451982211102814296712901703489385667639923195734512885016534795899755077197712078293052873260852538597904200346011363329882231997094536271055766384107804670068451698585982316201361117676517672189660812104295717158502016779414086061412159304287852178229772791262606325709204016602913781603844867938246708553127314566691538766451016338854760583595911390507129381500414019738338398894918191371884368964831069586393835164644744298999824279562779389724078892295561917354829472482416036237451578857794822156067863827070904608647153483529635539832898126289824066309912042270915219986127958281398006437773917198110360617546103702084482808031631027431777997689983698231855303921512841679251052508235912571327421906168463392677400988988201413137338849625907401510976354114012885295336932720711732347734536894288835253973088151092084533533921031673084488910543408155179407783527135828862909834901657282361184616871777856560511534991006859909608234391796984635561247442794386645819548375481571241971163621686994865915140013267643454730017992278012148967160471121085833845195204816956807960454077452298438426458787294158123365317872222535649692790608651601446173821732266917702746726430119088710106263122602645361885609311459541956539052928063374879376800596968126163991727731955968151662086341245105860037994795743044473023784636034119984960172865534020316799829204328707002981025503487259975345972411410245839191732416048316433359371629803196828818461102745101426969099877711048394510948134301841425125724981859185099159577272172760954160367314844892347068076781681408131480373954422732367422290370117997975764799849214927431383557838147916669339658141752014520636686849385311994770379986512832127173032299578024501677584421609920287513970128578463113966493159498328937978135638060006476062975863753287396583748806450716074870460125389852537550654823499453546745504261732588499356815416900598166874015729631848483829952611986181811597257806881039226171921310067247616777994125861514693384564874652310872702860624168821204432960447010949777190266264926090685878154768943512878465578360046212684295944488713128069227269473888745933388704251836510372816853366221906445902260743944712742748896349035485447640071980924760037048343662840918036169725496513878377019790924735742913331270291904414533861451771273055969647771706978162299923672354580459959476406301861730701830967143089025921542881479264777912325803568051340673908803915968492808328006105366534705615887888902704088360938196835770506620476068643229362349598159362368125398643261059662302700718062907887450523125526506368538966277175738023013453795960846815881380194517947019410103186700693182293444033151259609927941339194101750941791843658497919116854995586899813620230637740316525592042759184002077548911828487900686332883722150587271226227709642485898412622669271142457789044372424406201043653233852973356970641914763459049512949287370849723913017593642240443892430226362684395765870007196143343364506135508249091413915019378746970889718435671376055909116174574728757881730637276659352870128063058094661361623952823446813342084129054740050457382313433248777338160480328723933183586694363409834876995797707017747242889138829743814992733433736793649147306930904733946178849377202233459627934041609184636242202981538227126569270849493972984909929407239935873965677929769830214986184876643253453243957220516103797398373790680408391258887921456364060054279680394795201156094718646608771556689143282708438783562644514469893429610908385373521715298057291914550189659775828459770771591042398761733950841391795745674341530322809389346187656443608783251147905838766048468600319657247005454526728766050107786426256394169077881620634530300470464403088725874781952391454002692322689084260726558502101392521514847353205470256051047795003661820289017289898940762131012916436012441826261440264015193860240885174834747922178603422633133078570831746228327459152329852045496254477457684734565094031863372779081069780819802238215951817737650802153109418559518435556795874705850479697421868710281725892056749305770095664735895098515828173231435680543440604155499538167559952384150218068729015622010837598510848929965659750425291049749136845737131903527964364661048061085262869006342229696253289401365916020902486242991372794096493450156551404056626453290720065044816396724898485863982392981348633925352217370786676033658546515936751127358836009760534366553835273413705575477560361522209106180221868040096842534703427366545693337667134854094792238871395213533832372290812055902252419992476384334710802567404334302614329564186775553608967023331888712507359417519454702485537878466427186775077225063834711210063057145610328874522075509686573533137921835401632655626772646370346776478634650436443276033591626149850336036840221659450067871257202581281699083871053464216384581079488555331107272231267902729890923906748916055918572586562334383018126895875789759085191009160120609878178691635204886538158620857660183045424031065821606543423170622276973850941198457273286767818266124321258837246873479262135379242776865736507666976554137975405442207490349099499861041496004631389657747843384300992237401400859378159136557321984737529128312103920058689261775096950462891005162952416404482068579251685656518255000993718530631994053010240932487283958028914305275967926214779676104316652190164266260844842358011496389345758182090525291122567837827793916532149582807390467343665741285120168923407650185901746834682008438743182178779864986291635054615752213713015910645931780690911513300261162396949001512717986549756293542620642677998572516039083682257388434220378750261719722819582375093404713813114915272703593116838636477588511636199870661595061354557871512634464148642962238636754065085985831436207832663586002166599549613725534098920585225118502967224699895427603972045471740372387573651987122158588253153253043712401866884283650998673023410865146974698675952146791205683809829616719657912263692035370581944420850532650388992205045559919323114200428370903091945049665147348856835849243361746764520311988238939213585525890422770937039737288897088083443969755549966092324192795953513702838778257360536237346051149795722756798895949020580769732768227886348166214614511909666728973242646549705762377054892270921499302481525534945073655785177536398171490115626936810662997430852716681946177452515843298464158506465689132241534603162074351034558051271906813731255758166726222939975707709636926760036995269054518268793517389141183573493831191286235014679940295155008671830845785304108620147013263475583684009672533573701791292140771318429440383858330709584526649720011940567302313288735059035460908011835215251598440299507859266362720336468820808452239512482833101635153309022024178324169493596302086767856149872855370819534200301562793181500615761425825856876720201656756448728664795843615084268771177062887631027092109312012411550614680682778336644247328859278661392123129288776027644427933278309174149354556325749777052170766745500807092611579878072524645331883945264820285892984319935026786919199439582071383454405599516821742568231409591630895797436694782935248096681698475179515360251769168830040760944700860565439125020558685891420123287152056740538937405416630932843103324906397798586709177963517639025878417287570452457572144151195287691143171400424483564696851417210630984073876169750637418281646893252073138001751009152320213798305091344956567169293911781574865434235772913529147138908196064869688589627544303744920152444267861505654288065267894057938015008865595451433703119715955909076009374670192996746919868401687355110385289623666643734719475422192919671278314383505527461748346320545073476703997468946383369068725811265940030751126715883269503954501809609474283535941169648452183241190709228740480594923410628506873567114888409899813009918431707852379070986213287793326617562455988963706327059031691388734537050634632257992919930829527621317447254069399475902159453961077038127851711979744334253524173745429616831494466608294089624307491980271582015601221796629098763698609636236556206687637079446577435780494615011778186297110798155472567417605126604719200103833584518393681416215628089649584910565407854097704028689935159923346972129776122552488699599674069493958254351463997029235175923857372308811084333816136811694111018538482189669321115660372383476763393816884573504242066272767341437135615853775224085996600205850430493107131841515390712990082789385159720263814509696662038610850550447857349796691070043876690779680797743297960393622403876058720379723225101478651618578577273158264932725838757286760502155639030566620106567981182630378434637345230109994243374374910684961770440584029647337578660521599173462944545134800186164295295127562823551992682267205120779429141604262986955747459453947022391449924180419783566201298125234387257280286618696421115336930297139667055832086643836445707171038338900693218639535657820557035966089014026427405400228886130948140070611638695202864980401190947413058874528373733281942819866046829155549458883761682673415367858307165558033933536122976153012971526383107122846743544906456219544169803918370680605034251749799915165621368929425963027404865562568955157155030701011102597832644449436111934942022735923291862106080890076709999977077391064751653448778675276051351795849849154096676089256165654741200097907833279609321786427874982492937306368357567297443364695638259506076164925164285428529376866966086427273526151537849004656261687320814759244544046620873155552358530240889197303749290242053880215414117725314248035521851228527304642998782799194321472757698221606712763588494328855347899351286364711957957504701174809019313046152927872516151807643433011808594042348669621906275607778114197688859960413200718016725805071922395568722401934582900437490091798009134527718993915740013941502110802528184948809137989406157141649663233563810084575637661450797120995817873872562177296588031091438891863691874846755653850714473941745973646811714520015057419684843250413157050252713477314619571767700207959804690951959295451872594736091350852773247380869795886541992625104350399675746187105903179839984820428018754912804526025437563763305537604867907661889750670356546763837069124107632340867715015927105278888310526936096350457366105260788859515875421125809432024162902729295593219623462290462882308341346658058776164004680104635339629095076784591117403499658725203739094930118713639742657449827551044051646642670211290491413739557073867233731799338048076061928720663172182203420954673090306673849860663190148319929809211709499571168332201413993850583199051206586751198393934482880682410034818764058820435965434444199115635900417672902552723821893086412914483771721779227783530848940167196652637287196667753231582619866888508434698179160730677411662565117553644052767126656319656652199084410462640432451511897571444867831412287850630442434332430351256680779543566440686308083438808639818451263860078519609803406357289074817840449759433019616814813334804673467438101884759070637901098135194522453690547140773820531379256022750843987581374915028666481843765516754176402432198399017409751192439148386429452009750255491609793821781039541570041405210427569503977813897066007775794042698933588519703665684695967505089742786690677442973916705587977515689293360949760661222094320061966723408298051369690157976461696085350198206743173072527717055620597689401949998542032071815177530988674975461267094888759166311661378753057096638474311575041392878135362396498812097494286793577483465009015145385896343092874358372216528731467743561873792608590595105873766978446479698951744200553903210839940767824914912394773303468792572037217402720956937077921544695544462623896749279847258179112012267350708521748135238825383055827519539708412371245536019368335528997251385908576590223341637468385192725789094868999634153402484167210797719780124657358335486708260291095652980140134242368087840184506117827379908857281686586582338234721331045765803940862775528426548244592312178854857665996541362668391804490414323915451501723527829809048767658085929827274827158144274171114593617632156066312434578906489045031986829134893104669490132856940237212264441243683814705679241060776284834279869779222656835877298910159944708218927645921206761934193989253737456793935267111084162642258167074752488847642096430147664270519923930860812712362596026251648474157521124026713796132890246146995323174218236904334931478210723076708411599434089161204903426812944482566742669107687937468369531266573672322659301469709682550859781471079291158083705877232577574629408059919738823478425807979220125233566009661494891112196894905182165594812618668499361821292098441520236766387007674502123459767355141613102833940844813953016248459726735366381907042697827057353181449582581437576692489513903539683518995034042627049045290165935993417837973010575155465699705703303912394139252787061661098900807450952818703105991752656814273993497869579743324800493826967444973335017227323961580913561239526336985189788841288662699090021594251618844932385155771399291788828101064293434993799965314128251381256147755228822414901662879352490780207554586180412014698368038778728467359907840388153475798567568420470395257657158281890983677020751878693748465020266788889273937275391477919843150864101128240513739380753120980263383227963108168658151895027485546207313168332459678725116873002230587615678881166730018372716222955567975142745811942070229239691277328978662696491319205298482008052197250806367094790810760004649014474285157289869128004974570613415688033128506219487762763612539495585699689910555723765294339404253658047681907598282243043194921593042146648143872945056601404328115540460297473202347630879774492768878002923207536977546931142648241502588457893129678710221155281089318088685438988207892852341964121939173965853999412542538127863605657966408083458050872766140231248854781076561982542481535489379643549259976452569857377611199526690014234744994227888132249561288464670919663873778552937564715712470178341575925893810920621043533205010492775655529512377772008365690150708831034688503173409027080513208484241619460617423204648170833208119322437056774963692894009567215220905259442429657099354360919428831873477466190372879872652675403661239803779612881793097357830429116645123441056385639145658372600639456728678774439004434181648395808253757671077237073156415565540001706910696569346542228112274335822848492337754269938943285416143291983027939948248455480345351256526873500526586454960139974263041831123970925139614325858281227500880914288758205778966125194916194461472217918754462729991942116269322865498032432208933996316864281422644628335063387150518712686895756750249750074468007567628396501970855569499406668489039200375937272004513526161762179067853640319484235998266074433846199435825010387336663393225739045142271542047336201379031466373485218779362689274569833284672337377263263730193033658988663270325817482566604651706226186561967353627746021406311632565858207750567948947049240242386169643114124512203102578022319782957971210313292905609151177613618412411369805827210937137737628930425633722314113434854691542974321769734164568112194989843126516273513647481712842578212247560740622058020827421385993309479477998409088679922084278678079318995821608036859113365219857717025199074192436762243324223123387064716325824188804901056423248322107196659070635986125713052894695672773127450611210422241347887830992106851741142515921680283264297326631037034327637208668351422204592539327254293816810258180781905448531370891575009858207713296506254300530208102264473872376646684017266614977577894138670372338766676866600787943840051912033673557688274730742710326968331663450599789284387942956811767915329391909439807082498574300468151033382636518537101173233324098204328456982751077723592239835590020164379359662551587037932964386273697260902339391887089061081430082793081344945182285357853120545805174175764845344432150574993883192123562486676256085696912002219502679759957400485665816363411078608572912829068406774045616838749352822845597555678738886955432111433698072600978773142036834456943872986899777339909361375577116218245703785680072723108149011760447591112742262839812025620368655453910981587458832177718130457128657502012706686542743668125863774520777986788268542704087496752363453602130552952196161510776433682633148615276712785064757658023392890195191499714774007864337487637095507747863744569853763140230803148972490184862019672951931556192924321665152630029780102334563539138177579633396971100290948893183400913438343790339331419005468157304601896768327311684576716654756690796645842469640113351270922987397612536556451176960922476582395930379366339013709272312983177012113625684153054172430919109180772244261251718210399184548416359643417202387753306969678526519730298886583961667026174678122838443778170388912157176805281853352101560224760912981324579607758801565502699463288212970932866536787766557862962459796079815845975668943080707391522389245272144955825661856450795758014712798344667895270076614544978015847537253864732990866254146784493698673314015240539254578571545053244196460749423145213492447061166148188492300469122021762588257999213165151849413257718158547620112612427243433707976451243719278835477163960176938720719244383418770332064289002514676216571372781802309765272184471697152949574692151510068329606299360376363728185101506437633252594018228039494685355755114583870560083693091661747985697320433432829602448366323184126391735339954426934312970514893686617658526066344031812396096761121524787145362485835172932504846850342726362975061525402103234781689468329322267631684086372479265114060488538124301764871013090682155948299156550440880392505937254766167985403687871083093754083363315725918808897057363124251150670540260173862788139289378203583658381794899009996124226834929661545649830239912710688436706925091690715221453221569409781391904359428951096820863974693474805739204673259264658660363296034972217510018179411586783273220769867073747039484186138397504759850207532860107999530670543049078424961479734002843272074811501830908489583634772075524801048468553887851311691966443769594763702358559566228668561569935052158356932773064682735676374443993067085888077584653019142842207080349298531600256029480133233070470728484860672135653627995891517348175509335800881448617792327010477654218200969973598862883344841465969680260323481846364653335837186860520060767371065168378177418028708276179321078985696151141289499222648851252149433127792915276607829700126821733987051288273531319101633134777318646708215341244870926146504804781583588047824620299683663172234967509882613010903388843260543103052066388837982775156631507514129750920812356843900443205923658575095429025086811845030996213742394841236685298048935285634701451706614473777230520112443255783241454541503998975451468664456252569830065868828938107135395369438747446827099977239621515494805609365330377074834740683824425794283195274335025827530247620056138337864101585784301151781722137530014922726981034896632863158386105162266027941070832983692781920783405630825453299420736849004676850950947763398248779393182417813181170753616493187318964708659261089191716991466120879483582891394287296180342948786579438720701311331912082255961377275810853172610018799471776816277845966396593023800146921149342163409330353224495819668764056099560685223545252817087093802676380985295178791566187658015095140224991263686301198488660708776472575967752242915850086977620803359574976035824507561199394053268451385755137058367219769063123150388389245612460148677309537059472918667161322149037846560852915271093874897552216760308689954755567536607119343753895299114915400645262232115306150164616223453913611812130300038907379990836559474153476142129202807241486756635493329189704821869830299668517601921931781904385998503788407547906813103782883598818367369913794004921388545131240149296983833579541305824589690902660035776563026499926402804393220604359267852347192780815009013097885059175331028801628923177012812133212064387671970111069499780691331039640306803197849523137815558030809773719899952825867928954512193921185566118767097338578215701693520002544949978845680403571637769234261622460102222663917116148244973353624216939887686477418518893954653667094562228542522449775763946130724201836849420357192127697935492313047291631820854759579283624280035310257031374385973783887983163823847531271118014254548411767862635961323021200245694922469947742726201250363991338965757472863383639343849426464274383918412870967888218665803083822036092177376323291584411499881779036417662660852291848964262251823794100074183299280583469263595303124510874700793214940949307269490063367740467656369068257999888414030220354457308122358281329750914815550561177218718515777113402413925991888365002793724568302758281040892223873976286769604083923113358459023369610747700950358553611482596649285986491666577682555438435204000180527123998692601283781092625582472584693233448782545146934391031824583586746353971007820207554879532173518499404177010432414137631403748690780468779880610950032327623168563194677953268498298369911597184747181012745175812883545124441005927573672062487165905338825050344579328970387794598103182151621684214816572428419303641776134012496598271989243090503892986911208801713707736239060523780708209869728272789563173914731481586521160187458547205554806237108675461495156205945070353792070490342429146260007827808490239366596053897365347662791930898930943902079114674254602075314105033890195811224499317772256253299695610185588134441443868570191663014804244779145204128889936121604848003317560123799521292583887058820242776803410643480159339844259788514476782323275709870727458355553577922408024242842303288696986223649842541060403000444858061906340182366999092268868576829442514977452652667420471886692111112054247995995185371681378520203521709772327020642529941189830830016358880377847589711948589681257380926295171217679748417572241054897105197991688873229639301928305440879217257402551624463714406694078524205910436135715600475022519317448110463275944008244632422521437042936223514641391744726954865493615380153957613213530844027378685080271336805119394819297114631413966534236816921945894738778028921383884821690381563327198849537907974353346544895682058647835669056668885515927158201683144758690715949515363864675135853776584650959608412177152525820389657306206493709543935225659660480682267923046233527769960906662882241291557635762345459122152553240570658609708177104883355062587036369885853506679907789498488792084868911261211183647935771780130735374063969899775118995758885649516492868200231805932742721998912051706339952947709924623998003982548228001952056710565989805401277813770622854149336899669248216770987998799779965531751339052717098402923992835439493099142010256098236136706313966023775378878299112428430022406738187237864751614046891932355488908048358343703659913675605496909882039623869866648761050550170680339905126824450453277198359586469640552319242862958111236444273584638133788298778579548804129520122554373041568615288732826540516468300661356779927131563531267391002042295912829772534273233378279757792876957923189888078272153313814765500145308973314521552448862642980808922163609260945657324958413429395804182431240258043162965655015953213103079704145108469677835942183329452454951731236523624652426936558444162231298681811136691970149137134895823260065538359146679470657148757814729181608388300182990343311074673949577850643633970840348868054076750202642712695709176930062402312939019426834176714512503029882532202380100664380784605839347562933718250250776701531646417514323994286592103907622737354856370046755540170968133201994553683440273765043152113794727202061299451171911251156142450999630110600848869793235015524966987925344360437480755205988890437673847155669294070213574371427924133933018840154283802477074943284676256915510617389018176310685411352864504374133890048926302199603851982505001967018438165172409581209049034621899312531419233694126036865249898883298510656093012930508855780531541761085446961310610321213306627851524239292544202739798035242286654790920651892746855678545160856970785563655068318951759734446539702369580889837490438950991931756804678213421590832578762835526010530882441691035981489562901319221514700809496806092453942503408505229431820970743885094782174825491910332784793220215337082352610945927036139224975615922054337791662782513031211799199119832805239885167332915934443330580247862736919694225323153055322758112285637045017354777230185469074515688776267437823228293739978340459942749169946142982634293348526397150507389043041633527669200604092439859573818865163844208219381433429310549253051486003221390219907963905899203989045242563422541199651655832638728612784136349285408342240515933157517611316795847326844144157334137724848354601316851785112376127442977185278126850102773718291088373882278069820210340403344813776266685184759223914074682422063888566464192369381661572200829482274280558349990192617786562404227546630152003458444664743154608626090334195615518839024675950002578123850254677512377946643766392076540314760722555144845530659633673109989666566409025016496758269775050173443606177249193218010377334732696837997572323852519247163702774848084787577880953795643004288328598582154887660967955479476115867868956346861403519003223774757833262786119690794687077079515795907226024623735777758272613381377931751619617857686569391944609621735755262733644214047635210835875707905420417522824174444627178818273168530882945247254112451154903336410595328711334699284143514735853204753643159192328591139496986671511600412925731449592226433889296205737378539152576227656890968278485150469611469715622023354460282420162446392631831725655599629128182311475999266772894972088580354694249356613006228605434171086591435958483558200576959132330055952923925121755478095471633897903063035907922440122676795372073204972570873704012920427195685732515473739207950342115888946043349983248923334096256180413371788973201213638353173136172351585929214107115099582749936839964610623341602667989410907583600291709890367514868795930413421110493264732606543161399858519402715533081596624543564927377773811271402725513425791168062763296502339799295989777685959057071875487351293753683945838309437557308953314126665396303208044826700944887642434809560133204454195617348579047683430015859966245419650120342711566753150955869030015232387862690637168343028616425385893915221769198637668675864220887845462959043756371563101053367803462231938635229669755538457742617000376296441053893070809427698617381601994711953843495930524182971604393194533442585906446962742506442611489693447652832452136363257487049342831955920888692885386844423612888601705524214351950028488179529716599058561143595625964176987259651591126473812097635032453779077512227485299284683621223393662440047843117635392761054531902059524615227155542138193620616934571832290899995462811315693698783198281280959658457443849599508640158228384432227273121717422423800942025107739833886553730421612625614690522406534678136605843632648147286679349252951396262355337443888785622381006219373865011883554295883944090594159083030955395058201421126336195241593888528384317776835358347796819376841395316618985827336672546930371096684478680262082164749315131739400615413745203496168014670961476941812652489796515587296851623518015009572251345213215767700203318242876379343958023688547673998720365933338400926610971446346865462015751655234508696233466007126945404094705329592169555244390077824883287622212281185038421280712458682356667873562075992909104379956907135089248681045583843873031535047574634861827670226757176366256643372870614088141671120437594705331752777441115684232542114799453990207092403833202492330101917781926232794749884023336350593967140748046523640091116402117759180262006442604806649688521584578730774952707327109993638075525826808031577164714377488436116982230344224148383184215198855904635361919310781185854671734852648571346235090235531751634642569516104687415355951779812326827527417215848874068425845456102866514375968943875697201516116318924805039568714421281825442214008988358882117678306827785162876696173575135354429901323030387208717694726437143576351735046843850075271373355445697736605666165655068778780091624460554715543663186287662707528431559658074161213708770240738364410189982932920722280228897435048774546563806270176049902176466836474362325740498277702511647619918071091062881605780916588327548675518501030988237972803070275036110029701916117229127935633896777465675841306510789207199750793351011810552796334810406608585194136209287613314083685473108723712641793610285176658819366627108125992982317531370489592137711224543059161536031128878084759086862022391875599439486603800368754269042141217551223934443290080668136739916354288489348414791838482960271994185013269032835222604759882331094606963198980050746283573054838436258668478895940176658935892561965864468410937570052222781473387628880986401250857002137778433940413514777309349858131513834656354738559949674069807695221643281246632195416981268526604783487633977453831065854292937566040252933208759910694593859986934208238824193688903208645247206550082509517127286046109160241932634761499294003574222028253741428141478319336873086764126434610434142482293401562118687492568302931224610099521398485721670701842582698627476744182904581846640274821582201036932068421508843390081199498417494392547238343652102071525502493957593281112860928336572849030404237728281943436909032576064292491760843562721595107665791079165991861318746045038661724468272995447943453513095441783755322338680618535029524286564180304059253987235448386799297481328736553382331237464967016589361446284430005205690135082378597390433917566047320903531852237285905508574962924170495597574467470092891826663924682367984617975401670049149830881445556943448716743891908527250732438144532943737977621584840279545198341478646495995893904417620802109260613342183049631529025792533851008799970421340101314455021564825014399557268874635569985652481258904536064612924054241606975194495381051421245041760755406245043567455817402004497520076525764516102833782670691344521350422057833081029415025298439104406388598605691853737153391807463018319012235077342601145046984721213987078289324145686785284715282755000805571570024805880982150710169526979773739390162245262848161134285450696535914152120695532491913542110652206142363621417859533246996273202483295598208211443916612278984138424775609082985457093867520443086981616894796628779443473027694194113975610053641136124332386750412954301930191531653760441139327667357593449332423373735034177489071924434312737790575080071897172278852351421019840201719461226473841009932397142182495867001901334382034583197557797621129065855476188038350863317368320447292018673507660324659633147702569162100106353852641571086354897882596571654913133433101055192750103399552698344539432372000894679606356362074758692861552854225097037657153460388444358100871358764106233579090733862348334038387407443365789574987142071039801554780483100998047268426516793773275545634693389497053786338197692982195363432628599833816658386332381689650853555018630864168720533203549895609918405474939562316604017423322307892561049516771032112539939364501396814167916444044762849390004514163919194736659204978054285303054958174044543986841906554959524595610020955795489487820639645324682131700349902629598538535544302781467929197568560502619061502593391676202507705897264125044473285934843894830422393624021271657238785917106522081372818002317038742803907823880788152984895436328240123812130101715602309541762694895273182646025933168604702819416377728993921849070246207764365022710210129419891891064246176503061768525085502411727450881189417083624218664948859077504899005889585375467442035564976085463640924417576673232728126448476235159188728297864958361689915924766854350911592333704078195696668212721490915252080176380580188914191346892983993337181164977938047378315799738616680204787012160178491334215360749875508248859039656567888158835936476184071412533906883320748454362119858080175532244543221398784598400324240302645190240269970865792868675726352209954262561413881201013030397923310965233672165665284637464927289672912553510324452747034323148270563402900686320174312696082012903345635385871252065234105568602747305068138667626647540501197183288864457289040742140809269084837942931365859816967688164396754695871709752256818824438986553325991160877479363915380502007086971061874927925756804660302143689142920453348553648451960983342400064598334340767827413937333443134531196059620466789055270902794382688747601955365361704661217221729354176586279461757562050783556741447725727474996471859291001342878003186346520737275765887846574313355540144869987449235514802859099020544515269393254385862321406676232411737285491533552968222914622057242109203916158029090294333930924706718306607837267268118426986499993015799050893911769385410528199845465353602271961611705225153902293347153336485421465300701115593286997185659019969039255628345435130916310483926949099892591481031190384619964807366826359727663577773561920887059408931797069171036930892028249950665511763964984665603418987803417845812662832476178761982497224569701887458924697560511536448857237755281326190807693217252968490020937716204642096346923684955002499275981941997791330699015238319328333961999342004214495735347297809968463914642601779098071814645814374064174545934965258227551481706351530898387069774996890335884084198060199106028581203223026009567331440633887060503551538147266540463508596285778270312100030868685785959371157208537559337529642848325537601496108079128493159327880955948749997784790830868522086833642465141793356152710865476085326694081898741023267828467333112228496591506424939551742581296289314783584418286851050569326098276115052751716294913614143083531517795309196510739714532308656666062148681098571748151285167514339683040774702734915215453761714012094018999748511662143566648987379750469136820721000648272803590545163123987546214277844978110380662135527175237529358832683143559703831524428772640761155882742448213725847574948064204101179435229464871376722588610182323207706635307165304381881093358024760062355890474198848646852683224067549126857405656079731813504036323119018780571704034706596348064083199373913846005140720420763020390683394717502362929997501292953171520946506041067316825209185561246314876102445804460339713407821097189257794582990452053940269600259846400179381906094547219054477190425693467555682568153759279672390501869837421030098171463294306500609745518101852713415120161375038907092578447864966792144114862254882704374602507961591948616800456411508543584401693447794826574458044964875210107668780603881904450689416221552524566499126402522302895668789783631308699880641036008753439076272786586002740912329671237142725500924552496508110923538342493682696722978599202048291463716282639119730547789390707465898475776457055095762455358615567413316213703323484230363224644899414411986457722618020661130949784150545084046324840399909609490548852427573072108895216132208865831317036690168833899775221180235525222872684465101731112490685199218975219894910756005039684073416550941850661388472753686322394373180600174006642252196787205267058542370205216229885575735304782373738030919383776447424453915621996992221369187984895797747912781848694048642813069480194513866576566577368919370519361535984850826101079923744843035057344708658166218015174171386414573570374685570412579467971811556805724510709470726847757769406663357957567879737383961279877018434208981564269597962935817855930601648416832574345599987154820537295563612781693675989679312185909822893359881689103575273200825352997724072350628217849560888826758429772701002580711786263335389654307658598253647025739376173810088936633577983957543417405579473354046208488821238406476914891525393977731701204100053722085678993972357084985293934575390336595346626126027088885286754502199356492319934109587337378958900817996421810470299888239065495749477195686197291568751275594400049461621421525526583376029278835226079737778346868095161965021448799892052653338560816170312334763152279920925861280328614242847422301591406946064453820196270252029546153178327686526074837449718730638604304497191331306558350513259926853283392348870153937838773487951451212012455438485909700117300038545757041562699223561317162162026769209728841694221510077872121104508709348179863768121523042744294617259655288874392896612101971236893779612365808647373373731440604730178066646275069713875282308811126441602671051299857998962198968216711148793791168118415403212702129317333743228254725433463149478709202471548870713311197679301162187600650632472810898922362570165540948945089952890541053122677025076175010318832535550500370739464153270279685237160738878455734954934269435567902734614537536910933509844595167510076179224020593275977169290875853933121258973473087808161786672546726279593905324468016125962537353274527608087290888241077837578812046131889219269632473554136214989331612968184813564029111059913714813575713028086790654305999244466734071528130262563908127761671418666049696777951531274642143271869996149837255528497650992288697944673698862512959517761790999871344095483783040222751659538399567923164896669343663639481510351916363161285053178153557123194302967180448434850647238068723901777281185928285368056843504031326389245756151464930364807716760420425569956673829132121120518574374046185997738111274352799310634967615791990783430098551036873569183770240105236169311055148070853414014423146220191591813284309157386982486454617980103329699449323350278652301029651209572063122253109054782904360893450030299142202357379578546554105738741862096969366241765026138339002810836631893751073199651421087580214099149702547664634656891739804495001156455747588593586321629908273270253765294543817750305763033982564355930119482744502463247511363752891539149196168648616589131608099732622406128151392956157001368210673728046161256231630176138645342319713556744908475121193119857874345531443031651447259524016471206232797864541277629081036119908957133579335361533645754479551382198912706353904403323581706942399540572819077546504973738688358581027237621833564843001565548778832999998848364265467016111498033085225696503922263009012354675585524621435861453404142417886716361314297532225175981005607884788732763035281956978000343197180851763034472025158802568749911945503786026032129525799329659776704508294438533627520881612678656843002135181664944009748412360400703802936993375097075085123474908316030327494046278441024515989616233091137596550381922485263578460683651592602450284653777991352679372789161080448134818158432372076912251587874032164606147135497137513600417979314957615225015564386866719736262299876235434706291432068932152976948730057499540477562049384191107734716335689238227341144373600929324139975094423576150117402854411323888864219295155134212472489269904621788503947579381474738541318825634504493174755493018491234465084648703571182052070504488529004938958922031629052115276750719330443819390252923715833004331192402844628209275489196162523742813728096051980690902188179045042496842392543059271230322651894096937841848308633875556843108688872665689730980576507728246433219972212483166980904922369258236343141401679909982587552810896712908225937106811936303831618684663750669698613091105550558169211174752497529240076202456994517542339240254008877581338964184524708348666319224225448582657429486894433424130777519274017738861926005707548114759346359371738028962314391189592991322190486413854906790771721836725726860574731826955946571572661990404431142112940566876206027592691328878693922070775823169260742430864492157811899617404682569867971425744229497219725056026661136827354084092266550333222153090778941625765916092301269298509481615254988326279917453272083718318101989069343911660030502326435999353569844543266058211588219768572949438135440668537003025125204661120340261497493093349824714935823453557865479134438461987252842358609640006961145235669023950386893493549839021676362222950066472064308524262069065134764786584320260246264127900356982837316849484044127143115927807847902208810302007137119970813002336694466944143261851690301525922644976664326069538434305841220980652027974712428045437936176215850925571124858418396642232238588542467129263132976503003895229335851743410998312978114809169690832839228060924036326195847708452009628084818367171017880658109763590948708834755143565103568150227606838214839312827678627900175427912063624203456353844481102454644213638115259992558833333597340735325801586846070144624464008583729647981589463140865434396660531707013080969203630037784264592453854103498804368337333029645914146319275943814311177006584451761697308469580575601011086615773437414466848132595231349706927273353624243713688666670472373049104435441424577881022813279402380933489545537060876475802723101586571136755373508146778673417286607676022548516781440412065507725208368546883120636771667730866661968589757468638035560415583178456371106075068304853592799295815954098455215879226871575259559024528889835201772707944119916430336809729140200535304802544356604074277523415726976469384836393544229503206607305935220931118050992858029978931508105775270526826136717933737882544674957405896942104174379177956969411795196785030464611358742170609474807256335409986745235236091609830764550009247514441731498050224597353169651564645765827470250539068802622319527125735953470368712742775089861095651769490005626562339001853819024946953649189927170281147476420323752509539997882098173796074150698918396281728099848241549232747688506661301473277984848651684570256070621045294632961063597568811253561183652726416208255644869027481000018344059844500295225743812192770949004713696747841589932057073803677959642100298594942638704162464687286340450883743985590857600265923466608025806170581799631915329779928947220529763377659635815108972466062058158312162021175840276939995640840863549224099017225922498981979526781879270714364599714431335748388929339980689086971345833908455195921313887344532350228901172937033502483832791448777263649457122549316974695826860639491473757647379792379592511558838563636591691803428670271483651125971692915022976661799082306280952124227873990476918909611014058991482175234466303624904137994279329536475062489811262188507045315659689476971883326518503975249296337859541016467326149302332062854522568712048655274055484953876854431007125723221509233952520275449756398404261544717510495475163176549441024356520618425738542116890746134347201830024874329105725927437351789780592673078668127678842192915024051629697984061885888148137936605138072749504101479964385672070045513040094350470169553969762392841316895256189744556860629032590939549413898112637513747654878310676585610070779735085165218713634000185293508957526452182586924908188680718582102572702225231667286199848401246465668447829038806648932159508389075876748138357130318029982976792482209486591016439019021306132027287600973592855690550519983242349325105437920510448512011807954780046118797953548841491274617191976403853799425458340049160882377331548957588453388664727145648085943175528441972812346335337438314972319425189609535270803056489108645021564768662622332625452456022387128394336528187136837354529634888503777003637201304271938799434372686898830864556261677257116668221209508561431772349966539349711074728907885018368554855375316618587522357084669932154089965018876556045843622070930787848247048072114487570377758663352115628887331196672487235072879388270759502779051364481510158167635698700486384219084719812066925147794207985279346875391071224182632318671440495051006733143801691503464327484808041873736522809125294425916696559807957866034047461518058752185343076402183512711386800550861207074555946942203128389773638734256944112292406565296480364689194041539598722994873567953130334342802682542675824111666729530126914900358885361081385308110659331542290497509709296214211307228044210541656654123537815885274454774197279057832983573353326125878316164335545300323125653505827474776225380769576001395628320172594649820250860732779662450955997150447573478019255103164791866750869403002514601597377893305119197922609782641887473738256216519386992140569312766514683861261516054331221597096144798587306756964500106385937876793902969021549627950723268969024760431625478113679096174703448567290027596309231278142942982797481212101966121462371071218812819462135138362435696721158076335911478786367234921136960663793643461541864733505452759541787271796483897221117056325606223387763291083454596830034751074852978573395385122189979356657317579444607109866423633936420005570110064306039273455183967320843324495794394033467044425073668583600525663619248405316797620273560832483161003956352295254352647403080677669111809117468770959278368456876189628761044889523360224415802111244759190723955652917948772828658596931291751081349086482110437774733106391844215917156761728854569050800393059057120983318657878645058644293007561030719317139411389409524211090781407137712945633325604623807527854990205657973800553678468187291720095255544502146111319543040650848374776103575881217168656953877033838748509190003860648904641141156350735124178558721407006401583103839470348249365707515701947315005554453551674904006715908266311590744074053684617497607659707631975036515331284733821492710593026793434278560252835147147788499907071915778435657472732115696461878321186643430181981271790046721018641997806061068206114857416043599037804603723187998278554919601574930474656781468898317904393364441641859422521958780576771464169741295337175884959183471602113750137188437991499752087995066440869045908001599334593533893066969931523012971834958076806930882485612560090193946206118313271531703402337205141733594985692418694656168533979085610863781640788049667765463469139366878902384373658977562031121729802384471721982041701367459930416206432073742025157771432115317442330394593606311981175085244227880570285011383578020573248213505525032982675232101845815579828845785001362734067948170719610897130299801717924985445588296282166358223280274797491512097139159698421250792667078421427675650336645124026656996133304321043599611646286568409900459123972215778809793215701286982968288021850080321639014010334787979034624351331823522847730227764784559894557917566874083373333641968971576060698429017980873480526732504227459563137352794314131912613115052247271350337195820562176090149597616459037689328361340578096773695434738020409014829338597889949443310228238654716471580271372177985610303359533816426315678786121740141968206194532609115770383377291571864302728916791628001695990823245993666736659084353157224730366672251105745544376510708236313487097584871076160852362560418255243820628753869905228316096626941465309951521161458352346979309385609830727321185880857783865250623088398434696114417775016552740629055806276431131178078211717028112146346384560542173720359917299720430746284276614828163358561884542787831254229923557516222569242784028158792043327021829267151567790490341884553306922636143247498224923690771654862046822708201882776787030158339366237466270177432601940009486319447114102648439625955994161287009073490250665640438068856615835282765959570699602432264763294251508979010616132656528420943752475431985808337694151532533763498597805390254928850150346671671332119103958487914737841507552100167338491330831243115808970490806488879660892385008485274362185905879705254195848532835066210753985521010446546924364033332377079385719193987732903526772231146271547553850658600471972451875939364663794292125844713993155158366161524680652627237229905674001795114830407000067032521800414348269385806974634110073919090600661509477539705822270799019650435451724722797334709345951526293388340513383761244341344429806239511866352997827474960732556341676760394884877674054253258371804074380104101659545822429628292943371111072007241442750534134336011258932151269898788632868379076742444519994334572296971583943661781137958972478116137342330344534364117353734265750386112145497266106261019254120328747060060684219952280059360495023608741756251674504548163268165407884183391944800107756416164585997046185306984517508358215106606586108888386721766597056563327387053808930314973414733493310571488888136287260921277553280170300110305518196785020842064897036591772530654237716266569084184592533147844027242407044785057021906123146961151460443248883919651586278356198526951975626417936293881655390319728222581782350708450377198969844002497454214658508136344145394987214897966492837076160929874137724285536000864435437284726896685873471478209480834851109440055297931744832331352880425303355553250892346251273919481513343781215089181277521937651406050025877174152660386595618869672977539972117653434991426022972624554260481128414650027879452756794976179235646212225947583183147503920930704666633969088985420018840215109405343527306497093197833375931935370661057039537417224747228675582719659507018979849485658219906615272669434425969470455237233332333281733353041637956736794014449253257708666399378786712744532609450790729615589318199351782351342579554576652471450576185413070722738004117586356892309898086361618322569401058067240429480581021594306506155657501308016641261204702704653429213060110945588296175343955044643175370402002769028107819761295388974326187148136570174529011685127793831954133280636919904504144989734733951395421621714712329341427556733677769031966040218068891741196760300833182619136430640372166450606223395683866009919223851228909552261386805135318331841578364368829502652724337615003644093567347346650248340950207211923819405088196074853586655848608681474399480268044945791056045531538698920656211745941384961532318627756857080990138778024113205740416320777255546980638226730431742560239679105019354096572787257441183879734902281702618488536953399715517542004609480872489382052870266206336071911333524515275309150671303417678978193623074057792884494929690851402204419338101673360642787507613418418510600756683099831392178608768303923671789293651139270808177594241282613832016847813571096111037032141866963927853959355327910884738985797404265107801796253029533858645649424057758393422449007834301997151351399349922826836182817023626455479419514004488071343585626230914694479869474653827155233215851947055465478597515833592990536352366648976515931044776275127456966522961358116341960707890361062506030646627326522454670264214957968834767386113377663989553486901536017174413120315540012881284904103216740094384726032260228527289462795527145523777529116578242147352119138613402809338207263270038696274893951846084749397353814912122328968145527818620838184734160352230028267123171543762265343146772717007386151462437619039519436698476804753494781048859281732177832903366864645809180814707795199193257842175944664623084988449631881129826016374763550231759516856787221588529568095039644619824800497153410903900179564652096250109279150049684784278422139169902102169014269685802953310592768490026138902263357849061663916414125458861395649603763203538405018000743623621400411101509123957943700893428611976722613273887330748142923591118634906135444728870641542946130152767537636629196838034420613721874381737502751368295818382584803440324137114486771475201361405960751659729209127508977637195043448643510635982176882488032523250714376510793500128487685990839685978997207419653519106622638256434113195199937653670392689414327249109414544111817994862198892230240613319259123694738323810609173170508888236518284415368545758509457394203779901769433780619585637836523485893506420906426836628495532604276923358868463178314290075227209134098856947672983291345860364516854863278054625972954715065371405367766096226726221286624846730113461146144838997620927482426139759800171677217047444637920383968854856376311880680504336436117259572922875529630421767977327776482516054485568038046503385189116869439810519130896555894928429411860981619829760997503004849548372467606191199430904230391461263549237479544978300569689616485487578917525344650421893490645394603443378428103336126685809626526572234202587660668958369465267235814050260290748145717120683283835584427714167945054432555115344104579018143162173172730995023350117609994967840757694072041932740277709024502139094935714751520546181114224480187784045246310002747796973097108683953467512384865130096509851920534094144441801693815020841742341008891389044692195897744761848568767048942006749317442082326910390955642743460837597159518564067899157360734495429619355561119222147773530902630893667279129097453631645192819795214599996399123456426252980166752846353880704248914106274661192573205583035191989335905978998207223877355943486965984521817368291387218916822712540820767769867294747287269648909354955615756857241203584528346571554293231906368874302923513353142961639294999172191672397145443639649819041884339816314071736642568680091772704030553391872438555419237950048293236129339374326887802351862918061133185859490350787897148536168570541025199497250015846662174894118017172399755135869803062348096599733609780588260745128522128159630610260148752439547778392780075559497125974233890593443744225501414431689131982469554011085463359161864390679153449005481419180170011994055394832515375376481624457424912790335112157583337893623773624875603081407836045906164881946879658545405139718420610427147350916749219696450553973692663021214314923475165585366467583800165405031684422902675663742260647074819889723333372628516055941222343020736662869101423458581421714703218800024648824507248756903234844729664818569548983375679664124491306808619211633321694502353526909594483945373097251445808273174572436165679942619170936624929921347242297705030768626107415261576644809761782260026837053003368129998183530716988219957536155749101759556988185148100379879588025264233978635295028188179572184656582563971203593718656205896551202630239452133253421134238923826077754317119808590597831673127818388992717433411875304164326014800806560039741398121234599972547304698718053542603073969315079370451902716022605095915883130569261461087470936781506973977876723929289429101994772174432573457685570991712629121189056443864323750614537107592984644334190688607133377200378502159574767820766023585351723542864394505134957194154146758124985904293368928681100356079203487437580722971836037811583308286408898580763386090980686406601603045389642094406092098413785061014230663691399965087275411007921480032528508579878727463418510985824176679093544860813086274503307754600884420935688387494051786254256317267209733695918794415589090860604753860243490014353947170155731600082221510646630841300906609242225520125866877623098668462442987232262160681853726673972574686183201628667711256358537599845182797022697012845479222476015155906877188195543309814328628182394952376286415008304482244944024814499338725014617178964030928121918049826519582821355251054337420342912781645495914760507375681051437614187178408814301148349113399954237176210187089793219579037424056032210040216775840564968550296336807487728421634330204066378429620325548452043488655895542797332615158174647997755266254875545459794585300123759070754123951519538860341411095307873405010772947587484076092137119159374694968310289385276953498216168054026929385902131011288935490572918825478475331126465060358756991803794668745380359637768601348024189077723463370318412348656840767595367698126705491580041878320787654179385814161105895815211833133156703310941009627781330868589322052157521833843095561153612708174319133307062006764951677707452749782908231972459360120953160430483634658527136986548496453008726466834987252076229556475708264862974899385532277002787361748120140176396407493242308049386720351604915580230326331887879097810421907249086493412790574623503193829829170728507337517644127831502880762236515690644474738512698866969289708475267423793250091553451202688299163363277566367986163647435244593478855067091431626234870473405870270118525200815139709573275179367911415406145424281047968406385340293349939424085946984410824288865249027199766183362663964965611766578269455715433397229854040863892527405670282437217928077576194464706445399834322465545868776783049440826502029160932841501122290599987599065998832917864247091919963142927647699828762500620265036591176081728192701913950042181442527084164923172790952517569553727566241698462095721235526772112563960492123135067434578832351642632823855891352705932184458068224164082570330800135721793948035704358894221319599127120793562278612601987298964345250005859133129242235929458445129425152098658272231210926636428952190649610058446364202861539991828798604650670738819916215866190236937777771518345660230828511038286352992522446415764446353270115632311249262752503423079277235983650444328875476761100522387242627647582168047404178827237325622839291687677430925540412523129734796447677953465034510293274011124749474255187877169506747516387803248071725556218201953932802966905775741594956853553247197142155993827513019205280440012694331746847226551809966698400239919409622617623739070497269744991432554219333416229809097005688562253194558809543825483389806175623593180237595116083144907476396186094051198761013215736919533441804655373443763594911903938397302203432125700441808512053337557068812505972758955000407096894327068735498544514522734907608138827834256842902349879995610508971844671005428017917983381354002143298073841849082675956325026594075148741868441662346286896232652058533572542575539814411465056905988196374397060823987362031227969194028219774639821717136504734420091170592831482384107166660263498582723866397148340367908353407444661348962736081984353672678366408270553301558961158568527036999621868790591389806238636570651332186637475486874243442423063047902602895683760225475236099595859013436417008403512697496547117318734126011927323405085834727121985040350709815105725143141925573422647138622812919176442411938525058790191656518404000746367271757209335365766593465454159089124794442745275987876591893870978918630211061339928142475833154622787560249995767419177145709469811536183005466833600767941184192765635026090616249789992131606670661055260677892013074686714800189621525712781607036296482822404113707136766531792331323122847802755900939149065663928247403611238626862461152367488292151104322140998286082345745441981737050014741768596071702741759083947122295189830202758604079215078404636034071913695690037684892458373998622481801603604637352094809540968119690215110597752315613193138652923384600349390014463160283729261282849333817958102195244153563717157468661562790299312525795180057947218657214888669641494825689827019590742589417251465127921460742046088815678183114398451404301652417480569613423980146501820878135764667185301835046756501834494604904380571981846815546678770407063566649510248288235397389133195480757420431568822045868868669429776339857904953812582150560073749268570080074236028070175525358764410326058121629312095276872824101864427445144221466687191127151824436053758773872865694039782703077298987517215458599446926716382324568175316542349405768516027646097133769972293118583540364852312098111898881219379323535799144964324747958792885753894409845389506369119062144529948575997428614322082406642779296008317852456668391666962950238066104251234816051157139126646912711467769311996070449105216103484997827052615391441670601912248367166458941090029835933422800598741889766563167151206018223033864421505640478813730660954369557193585128233733823063885469641861941335024671895565451925533913353959909982906176177681155924335330232107218032087269629922571058532599617803116105908448181202730372981972843462626646171900071693981726230603724369803101148603354644842220257158618029336913328925617486482376832381406527000253966715511324392418932236807478685062447815196296729507724308657916542627589592599357489905320980711611189702562001940008160335702739719557677761317658538556735234195261494289929095500608460072302072395117845383090159666565682991390796389621916013638986727232477894071598076810868303270417221265553122785806042940833524129512275362431914808796561120234405301651102113215366708118721440106994616778329666933731375324567172998500276799830271118613429721685918160912244467625849085872231760779150783884288076204884756389714315634898284815478437281134125647541699261094423150206318767607224106729105527227464522965793865089106542060309282859579506731172379877466918077969825391279528024861478704753261794417695032399895194850969709535200542042240771455678156229544711135480155950507596728110479536941126138751719816447935729553623596933193486418234210457312759184882935554711276767047951382065087409066562751399738265915544882674316815568621718258413143109473558467856655620212632301797814417797401569914212558865526655572399112652610966701739249795090247446599263288806670124089728712926625728508292518813068976672977549671629754051982922636134906123394425245969819105614580186654924581090758975982564371468790402832281488195053812409259065387477642125792923821789073139627202367597402696305006330040988930557552813508793705412118930025351819631823446507209550049367447440755627379601489027030670045128868655153897826474327784839363605023205490171209775760246318064290124535504848665316249777333746485939248403338066305049029449476007785654107193998390392637960112828004877791797989519155167477034538047708217965284912367401226375981790956960295881247980550513964549348308768098976023614979934479593053882253107733366162446178292985818163784763617433524501786866828578533662723672278093340760211049213934828329209394769642482400499776137577467537932375016167298602609397316602967665403262082812268996186674647879390793543002289780713524612673794724859222737273328767007743568472456293045268576441870337362281309550115874205859775425136487644404183140097346867706511861927909168818269757148524179087040056213416387896884723241769097881435408327556207934000320665731671598907716232212246031387594870084409318085831731322869150188428799312273463992286322425616420282657063428465052644172701536696750344783920751456268743756088374145466302481307131853957729894078569415654083622724810467466093075578200051081077443492820726704451293367544881957185756227671378780036913364056351035124851461656850003880297391880773515776577260850421885942928453836978634525064390974833266338050153489788756747687312686110501459347573133727200546157863093327803156399357139601730506347111163217229385637411307564043001846781493858600918745102456893865375157628541286898223030849667234043121495514012625155122537133845251942132291103017735158748332941743767699004392205173229497638844841133598313735316113306427934425296034242388051117403289622668455781955201638905304524323861417325385572415410347527505684056061133544984627618709585956729148124678769470329643120039119297425588232533463888988846367850051478824938676703130000493491638022655337753178606327513816498480658717863849769675765009170077421370908310578617541465496677844954965291979955331206825795008429187772811788919753940004517186693087042497503095471100524750720246243221368528482275734308621056885445866219412216311834905148874291512313964119396595098951514953461278775430047870203572145008848650173217134243360859461263363220096878025781545095889967888210629581618791820697850439161049691696667498827998947700362462069678171206146936382230538023522338956279788929372644405678383160441997549594524158544406313100214805462617173881357379289430859808986401788973754385781290848394778880460485040613047521313093674930709505023487097013338968168818797464611245796590273154276901116151977891703030630532978547398084017596213502617729781965793101062148012005142265162999196564103192734583030482767978557002589956088883638017095271573510596901828710087224144735071067642158025576689138834719083291104405396989554887684984103093815561017620065831758464029991712231263069944065398972759936598607515048171074905932497178710022052420341612829777284780727783075805307609416093068422155773241062912429125564157855068171740617063618218748463859241988587855774515211755352841562757800385645906942515577919842813773120827501616930427652152438770622060725813328658507696760789462142844057312854166283748862466708782163995675784818635294669981813138487830523687545116413098497036104606533186835592663422711272321477561381028489821822365837241685720034324929042253947518246345247554073850291707364746724616680902939527283878008802131006832032508035037710534223287333605805617453970648773908533846630464054667006792329515008659811666119803147530930734459839914055560350066428649618568899895555333614118560781190652173787905510803144252994553105869094404220728469120063231854379873199900286545853499979910788125589503980417762600088957007145094837411959001466032334098570901139822763534860766354023502708419014506723126819098224663858551957968173652627026242286292861457615396628065902247894931142137332373482816718162106850443231030893978461740735058988566488306416110791759502301630427678705256863524363171611268519508317892233051844600656903727981198624713524439209585418320531354133669353480362365179768753677894101208308194342369583408813507467312505787121444576254314000885704844104792918321142878384916023944551522414250273176129120422699465122414825997610249018180707097355696728691768605882991037058141499168216045465570558128810669651818916266150725588835140204542989466811497564644817871735537216279759033400259556035049391986182200579843565817532015128865522124134686770145266271958309612364288232468861192197784566331100931038765438842543068002082380647510099355954104149728423693560170618824876940753926748293693617923277740468673832126511123309222780083258520529727347205922597309596255107289485190336509829848872141509662965636014838829788616673399106898177083014403846948767179578256965963769868591069945573803048788485885349509722477346712499779512838595462022374568118584015597783788131397201987786001594571810448550983355970413509105846507071402734139812672837779723727561938431104339973644395930368739695800253410213033993531330115409270436878874365933188025058749660942455988787207463393546484228574975316489769196667079779086206403033956184365657063938711203452791581551399092008036296736623580454862329643660506287774366289947185728841872597887392455288451842285083442085313321795816097717450058210504314632844484486076222090601842649285305576270711597436022526186542687485423018956381485230182746904543554973015889097908169885570081025087557523399821025563198888801544350404073272777894390019803479663332844356980500173961134990898526480808809452175644066436499895725443663332129254043025351002889514180663581184607767220718005022193168010594150405717492013410983970532068584260200239571115507705280757823858217686862160541583312660853253269675079371209567184778485631958483675266318225718185396065136155716031276172920011661926147227640426448804351940855209975071663388538153236565353112096489079667454193322748854411809178335354459216340109939682878456571816409256420433735266459731280973273926419230949667094118483114466851421500805015535437766456684440546133289844862045090795838372347338555308450364347695041115270933161830301698818975826128654888100974415940110952681800546943662442980612544933061387131942399141386666872501736713838633363239581873295999276982859482954866571266417936738136130538078672400215127570299909212807366862318793712231331872779972729599442199438857567576418625770277972879693001004231081672560096102253160355466604834317956124064188497181796526978319381453320624565985207516860518938863373245398924474520663045269545270996150543952310294009727775437711240436691423895006611387237711446153373589145828493288645800664171598733704992834927176895947735295659380626612125480796926248234690533842488056275301941125979561734210480584073525366721368137445912498617048072292894560538228178511625021306554287635315223947556054891297352734746259848456783485115998406810604155402173883142682581120441915429307255185361185973484183897823449808688900860450599845204065952988250894211402069563296638742852506603439778053542820044618356102881805039009943691018112626100613424665969786540234325926848858863293112204654248673618143984208014130948715843641972993275477335647579532734007294394775061475104712091378127568281219552521216145015540732089897088198877554166535067044580168725583786913883188897164351758361994537584103392833233293916739582023577732845573342488586145015601380993118283044078569899730789090602444208479766284410117293832896392281870899229950055835970045206674349020245082618734276596791975672514054459008280461089199534260238091038266181589962337595961333401283236722679956644945072251023412451552997424402208508486624545344943036170616658847133790890683560018637115203824596104579935963197388113250630215441115591632828141573837238290073058579895509130224177781935821843501896198128285591005804274272126143566342324861693287309586624433951230249397552718993705104228741578883266373669366439183081398358134514767654225618616598334647192476102471046422847337401953644055497765215458210152172138466228225038468093255800239007713137359533434546416925834368619693595402035693779437689764966557466841378188309070630963334952994096020602175656707747418153048597175162777557791215413165734778871606322453114905233964276274753963814595024864655381497297018460111541560095910392692422060924035145631498916239054430312599145358340968466555143175120719711621916688186947884461159409909856847827958858809185882781872865739460284641834407129999525990133828249996251711241317790114396405534939264559995042255863054958236524041806699002530357836378081809964746121708443031085911697341213583828633909877929372873122777105291489995955975189900503104893499568829764718146562952118746694068354118509282721981931946079900748038602208216587536775021678069593592242435431872882741337232512064520282750429136871501553230821731323470437438238582888544318454327271224194656386954305269094378534961748733343273423471142222381418221626935379476326707976588565263557373374566994758262148695772267411747078000398199680290078624983894901377235115171826028823944925812956594023975739784602363918559954745835500271307896931681107041723613950819079324010392298354822733811584244085671144282458305600512495751839588025072832497296206019277001564021635781931517859981365915683892727120883239236731466225028183743019583633108048614481354300529826014450233905220792099616285565136410910568139319201001556100058843030515576830607594886722354507511918284147366544971083516361995605140222770390893355773901473846645621998031011533333086582780326114443728699025156822284007441538702876778469978545560644319116527467300463168743380465445967710763571400046713097845993389530296938395258712005810476103277857800609453250292561437104907508487586620844700809954891196752333424659715763440512518805571220087957790383979962518029327588827819467810091844044679857796633800964418399179519107075599167097436839053836317486447503169998742872010112884155548244792725071918623661950201182353038777353635056053056978319376411458358280153131983900858944106747683482100197579936244509346829620046005704734771780000648030946416566545040614619487552545917808734166782330166992274796674997834788313232381019794206753194684445817440290834844771842642663392141826823098772910286954703939593610527358180005111334835239872197697199684067223041561356344673453658306972395504746833014206944095032799708128634267202910558755402415482425162053168612282749278545387270561389102853856621898234873021226168768928120932320753002863394481665324938298276554249179584479772998113550860929765094180213273238183785253033083663796673890001457716376579064077573139448868974660138673353024855607855747490067968103030939085609938498772746956063480969758521577562796968033846557393991490714364046983855267871338451585080320632199354888673853955213118712458210287579392910917150579506743518924678713341605483620894894946659676988795977057243334949855081207420587272163031882880172158405816934621282348724024858051989034244265672638042097014956537764122909978412385453734754529655737873223982323253512467441233025766805578089638899965934786438496682572285817635132832828507856381050866734888102150002105655557874707588236200338444478743788014170759206788348008013239528004598989706610379428402084727949972662825473505056343397383452988661663272582043764113909253209787341578698920839801961616268454104162592489853736869027208191570843548876198390029511668688261183821053211742802646248555900436095898621660873328395978001832227554491408439365512991245984554470816056500264867443861080159814651294117226740538244762285363445927064514645859353983224704286095453995945345267738937861067052894342191027362330210471969942760705046519486037536711084913883857077501711988656334814709189251936224722399089545454150879825605260689967452460761089617940626636514107018147808816496963791767260806509275846186568408590434344961308030794065896635322491946229269392761984291524035533499969499622762218471585409982416656903207689079156143697654900395362351726575589698512951713182289043094715617938747530314231495520484743934199775878562179726613333507801926218672381725169892603208150289891783908422905403213242225722548121799114992569532230236876929147597298637242762052652029461039481138835218330908005871665903717576106052581938516489770811078508682514196866600231871072933895890553782606224747315900422066165526793981686990953815302944488768950953855878688926259100644375609168226064041991929184516549064835475757666738672274924756790719172401262717971032532058406621438003382834764757770869475010690276577076985718127576602190272632917123173359457754449828914216822875735028469595870985571013064966061283799362736256975343957650864329218841859751342372276575587376997416721124482717703338721364096421696096435878268737121831164936781960534910388525880233901411588819971980500289058425040336062557939972109443808538221975781441273117589286460586558304948838733966458078787133190745112511296095552681899627100881898352549109886725703965949572667715563158686569081426398209475139452673472352993986676808972090490015565382314181019045229602510883607464862846062932425693397441796351195410616758014548014997072611174570983643635286527841068921610824654575352088021568010380689464549433421166825489417988866955016682943810139798246564948943432062945189289193293270951948602311843201909023251826849116304374452636122072773691311257682389493637059508134124346136080867864708060597113823502712683558326508402822787387327800220329126687119850637357006406106210145462496702090776523605290132208619133604740872240858006610974487690954266103771137129832102246604540682364910831916252353747425322836774563601636483465457693465058012915847965474353609827994285402246182721374344244939681414523555317076720322840193503008758212917723366174435068269542748455244164314396082243957217912215918625842344553192416404709969331883464245044415840888735500338125704967594025933602761005874617435775628176137158975231673116457618993364945870315652719809850106630956871530887296248578259756351808596216998570627534067606031798677508672905198424803216832835714876987533985543536300696195406208355733557903993026817809695725963803510548526779443610454999845086028020476828226130637250517651757699652340728806145673133058405218753309642729319207972534656734535772004770244632055414620310934150614401922571920576496703202334286684649214747030936302997115279200182730197583346221738505006393129550963959370890757989872568730069306700378079646954383322470355915620499715377294233714340241351109266780968570108772369680342890952976248420752798640217293404514174601401751299402760182001339481394806274488298586329713496828644566482000225872298252459561084250723675424025323512833658651833630088612595109213012814938929192632782921567696811449325017609204775085599421442604488948621016820813761448281819961881653560703866544450897726598134019709218191034624360069482187201598638052042171380073045134247494341073617224856896039032419205706027630386992177959708369314040717967205953983619216056599312191146862747330008150742322678120795486919079303144206274894738402299020339893173807713922625199040158505325965798329995662301025165165756669952556687404495610000708196904535995500870865490131464776140777486278238722241044250318866637495367369016714519856612324217832158941974377759501151719622485729566210351857047771000032053036187670318438841647568226268347248137808578976606018910724904723822984317946603548641447354670154627710931162748351530124967206310612541570485179971445738971710359624626146029374600722394488386537850485079516850615074299274631527397395291369577964051978875420448377580170753779456317748305474039251960508728267355513646884085408304514114062864938210851040413166636967741430934888590333153088287630659093148199409695755918838470868284075281989110965098629623622038469429713380382140323517433874505185837056848637767402270285875004435884698475648642931980373672797590817449971799595865438870102060858855294599790298521856427697971103805699240987176172837357156727840541869343298598747262057100731837287564993088325337334140193882193293527496552208500881639316772883164409335353458981414235721940850498894217773441155058479228710065639203259871342863471855987652868367313788446493311527387717503284200992910960967168415504257004535307682913014382325252857650374055977755434521966792648791896450231183015152717367838676582020010142656505962281818360607527201488785594264386457068578574278486667699579434567502860883649343515517263177920325482470918240969480675431951747978840164351978097968672454118980457874030746246116300583963809552555917922059493552648206829908534859135876096501994697481080248969266969008991799783965385856883764955630532602646609406672988236305960085757151302783819915953713571011792880703248954725128735613163801673461541364667479482214569351422641273170909000075668732046246995275148115738548700948040912281666796258220978352967341929227618077327703379042798451345540809922502431328161824612969990288654332965242810640117275365389714128775859984642603064384103757613198703164217066823227053342734036272489304124315534788473523831541453776575013177024940735375427101789150471487969859363538918769963171380248343064973819882682420474521949367848716976381660813165944935981591081056886997454839720201001981627316195731943857488090865319393303188925103653361174058974127222273209154577173500112575709515546626367346432156765855032900944250722518881712070122877102358839889548112954968137690768442407130167846253957985786476921061768043392962027425315883265325542003858587261369470553142369788556117445540972517968193158642995327367902184941820220279820181799086734424118144624546276828656940218084192503450999395343839831711186267899385549612076888160261377602816603893525065482999974183573946670997510719171459571395196452632114864785932517028122546806135706416086657527423917357053466868625037428707904528430246025632841872206689604548229993320379008139282472830361898853625669659662232351453725097635843843866741948480479038919475995842247554378171027124022825903228051387753484056021496395115798482104226127501681261761883547060097407904418223799126418745125482683484169017390010965846387537649485914104163197107427373241631012972540860350888482275925894991627555233968372195673694810179356456997272589920881005685034925678253900893827909083418258822433681125179159148727644798437065475853448733109257262672782402961323595437493091951549468682494318354788970603478948566006675313761079846786877193005874707737521819214027777739174444339415617674888591222344943256953985101601418633381054734110457000349572652003995417244164719495741700544984512840048631183035250926940148782892277191690003856658508056075817582612147839479710185228729265484771274932034308662769346516008594685692557929427130862605948558484698031826749771476002824926174775189696633733276426453272890589917856973509039414758162737120954248101572776639504615522814566728465459593356933116647002226521515127414695497018830883945780643088787791473898612487859212246431159381954541725381676942236046828931455258831222513168196525330352981180379702101251104619707932627215329384862336802059844904700016228726463583767866711873829940386572953911794038826361710751172383959728036499149761970759217032996634318495777046083037433406925394554870523603388634409203955027771035655925917606024388475431344160776544927745476756477507635352275763311398001100690577640852880727184186259349810318641672117712970964256657368451486659423407339745494044199578691024626523214774895497105376987071869187326432278990021682012075560568328763546454585151869220875771067599768041270425183428353005531705100311189802823095697636696221084462079785488527275019968519145808230177435882499964358654764519975079628381804112586255808707611484915176515031304882497227774587208612730259912517995182675566464649706150617974140236270024400987159094520643381850004924969036726200256635992417045149955284298773356629755651809438976347211937505556395175097469780884486969869133839098245771989289815609497786363444217248026760722148011875808389041973844723205663803648867633551661123378458693361555358710164454850870331279193759561089441011337369103266898206121228215812050595157530583586242510960620682186870036304502286962805941445900302399816956872997433102894826070047100485910200676532474049658904497716514494293864373468665342566713650770032683489021493259134483295749372819931970086495937701157715202435371984186226087376465366751117791870451479610560767221012945485138842448123785406935245676295179173073308595298376676600484138261654126542414228537500555329711303866999496249590231526322164411205218096566756672227988693162576964393509854132208981321604902561647170882218670765685283757472867499069388402882110499006369358304315166735971200450355897826668073991025054122701632903100601584369395093282776587914174553031238274374289789989998676053825992024917052141420436295280486059473823146556637701828100486679493911412497017782176955286090705043409930462607974214387385020648529191843976709724941614996485715462268682223722399399176137325806617696174478491893048613947238955284753999023498519225748116080530417411327121106204554295185247146350842214442421212166137467683640427283842713680347195617510677679309776911979710003949588579587862493254537516449645067247948449251678686579931137703898228315426165511728649366975981877527754319078898155237000953206930790821350135151239941575103997394723039836094436918347266280922925065734433942056288991190237393015323776730799027015294383302339616729773174289379876007156158060653171136122706337219778997423117707376944763457028955560259707897587369938935713568180675055894888086318348037611050743696928267215027677980040139742053215573354364407787148305480586288874370769947029976163124435968547302406297905423925133390180111157644230790692313608436539122069488014047275382808646595496787680114792842704558225748600948710381164220326042727230614440860564734486704903432326030977633745970707995784191079314734182438681645121369679656934197114007700712946181646662934174666170252194947679260681561948468025982546842275543242945959232614509746247090466121728465510739161994729995208407867702630614106526492354013277197865025646719534208163682861987568192824111721607640975309336940612927032007314889133608723057583796507007576731010776638871844350745985694300518461130879369924699278745750436652079524921831264488902589814845503811975061170267196645357440827952903857301108494230477472525851478624596682197898980077418929569176110324842024806469609774400604886913033936939882498916342331494776121146483519926648217219546100961533111354617181455915950570971667470088522638478008250095809478333840691698670150745658005076980522527401171444403878408280217348379039556485169822662793934125107214255418249710945523530564925128098146394478413584847690477381888470803772756154775257788522845368239424336787264562429124201037923035520634011157669823215324253373348833680073233677773487964018934915445390287524060064099871079625318500217173450500925918767645579654207763855462110259521653732584473273585804929794611839571273746507506313830947007164180454695850223449055759019937871037306775050066312550587436377003449216281462365688028359986524235337530359569269630825526348466179471074278905412097698809754069337971616737592793368568375990400786177225892901864701835986225644827277552422863582376545644493758705746014421847097640567001251278256249353728123824280974371497489247306134539986898240222478907215364801241822778601898065928950970242453943628053506317646917532947698116988860093281257112079146137379790259318648188295826364088041030437485220611802364619558210883816872682805232536680296856525968393421657119347810962639194713922687302538381294078529971938779082540927952155884499805376344277172404531358417883775483314417161941992284705206689891812722908096194975131595427535784798202033722316966451296033949810185526861588803199530921937920565261857903079358382772451396540820955276901900999226540581524625874495918444727059221998827219640657490573680768133171233730926248200932808322863076727011859889132295239518850154221017498630989545234069606745126926982573179344679969785216761483496495170440742550951693744681866199357167917489186377936981323691547810704912261308010181768481877270588730891022877644540443584415179826098968940651503467104287937847284130294171022868329930178289316142881324153138295056353744014814725088543652460230492219327803942890258188145224671875345569463670033005818963565081835742493098703848055092345615635070278309943513273124764297328134557139187700544773254191299543279273472572266137833598527859757700589142742631754326160866267354031124870566534715137096838386141883420240006932826769713620789741090008012286581095029087699793500567853546689229231488661523385782831149670582561641093527125634632407274451655849015578846387072962499100927685596648885884866927151600937022347007268258900111076231728696626202883002681090716442386258807134380284504995905793228717241688336112150372121745640797681070297515957370671161380209226699340233313884942227142508490252118743277661416632233849755489614045957615209558904310141184149417823803840018489849239012019185174357747807757208511699764369806357635200041224687039349928741276832351884828761173811292278830708352221547897732833468288754922544384828921221561446928506114132534631648959008819532482952569447464139498523546887189760875080054071386799116866870626517278217822244054028496213128291532811099996694105020735141624847463682337044892744233322118620752777962984799494135310865066708763528776054809031356351492152137891937573188469624110575947156311717459845512222186039309338742605453747236777915278513074445464678950244552136307876096432360215380826271263967004343481007455235666792173105870589833117470135799419457188557373129919439132026333394718354629821627554411615242508753051588482221210266886725270663619385821283555598973276717406138549780088548769984310270977040000201602484941458058763659049331213505484020271194107385974257001574610671521097842335798884651164115954063394169175196780596666174875017386888225230437019483658977970118164011283836671513457825232601019552470865428424714489404741939712192454382567798365707972825233444107761720863947002429522137436323109976630529989570116211045330578521691161935679332287726779824789153218606886030846230164542147257508316775020910493972294176726150619841964397009402212659957196257890230809681385215723965737264746040946198520257288971262860801439681732834909519589788347600721700486648157030245327401975093268561527697537947285351555618694119747689316304890604515578768581402664795197712991201889814862682179202022434138697331275048915642461118035115833027485759765689528744401950795752126445424689947019640310232359960297313827995735918882144210857196455261955073149925474115373042525561924876138252089648976818929681580037373701597902076831600157101388527164740388813689493217866898566560600620452848863835497963308499618067776787739544561923352327975997494515595245589646434712507335185125165888350098411359296497392141479824634296273142055988467500673767328454569904355314494157205681424732958756833130150399872794046285131378416096800278331990642268441008864506728560802411079413194115194120092880370506006521383937915363738282400989277801695411564005385499810465628660582636963326653181655599856633710474023914031150919228614473841367493020989207887819609336622050969946703664931640320002787338540525531104942733753759072813773608895013246825283002870279225692932422297499471764432737670688899181459396470899962145964242440668574894782819448570158095194548907209680825051926812108230531696084800091038383191405713617759520240828220179957534952286290629397648961455438257185083842910408833981284411484490546113700434049529724924086454806913669724670052647743254485540623014919983082100881825471242294501682663536304341282959372265795741493331899826273370580917978650049064407180882754081483194880857564331627140213228758233400456321722857589000091879769286196022971108742884479250601194593167221887365961330086102828786293629183284721460274459830619196001389430365725447249877435534566912025167304792861067570353540410811561016644045009140843553084677099925368301624009789287535377380498455511379106548084086395710697997912240079153102697383969633852608498616972622360012074114347092850237626819648819160889696530536221007407952211522059172144405076555136887823304005009880749047081078210252052804822401934678877181755349798167556576292238898284335793326183948177477318212737236359665627687336955996848732262638267337479888540721150182820587650467149497338332128494234428581883101943341986979515714767248827814171724879786492656647398657461297991648708196046557660110370011351522095069002305277855533987514336595071691587869873458190674773014265511007093922134104590755347095711813183735735242519557539731550365566214865747124796061910845699428271902519058984486898233861335841999340265490799183572200181936004641212314891044653235991074827376326556840093422277702249356123141032671446045599205277436958843698479213606174524984763719354394174507044760120062814011259593073994897248440140723180094090250706371683097880655631666344594816628411128294589179326084191020864575741048292371859379672187220538694787643274173897276450500072526037913118766140178939721851904463321141009923301515497557304273720720017527903535160805906452933389334470454080413208257294174938660398422130502808670835887067874047320586229013706812153329701859108169880397523764596933799443705571733087504446971495091621807762055782841266816878291725415713576928787603504340693847003357862195477051135790118679274340953984337469362561504564871905762286072360761381933193284131064829980459158220293272171374076717901904829836678697431810261872275449669523954534251201946365542827055546935643674416813303332839934729020118116019044528003365439805348588970014615246722446669085211855141350771130130894160964101638396692968928731004948222904953525602951543305590397094265548677150806243676928154809553025944157421586796668064594932553390923518061196829809511140715096582896058053776329975376478762938456877490494382704549829568239164621769888659856945620478400287245428301689929452583605822815446547797867450725817526436491002567256546157139595879136082334350076888203660490662755051299463322183998344095335435237825126609262630399246865555994199064258440460711673026192460132559304169049551393083015960016633850705090013808315291339270091248986636416636824057218389397036714384288452198493874844064254147354416993644724199916144316920111098384015909328997638536503458901663939252355899598010257178351882221982138495440157871995094495135545307937914605998187851299731246946438763272155797065866867498949703574013500039969679986874827842558433840461143185311918393943913130220215027266451722313563098708712832745699496753968285522581819086797130600434046790962859421469392722100198260984874252256587469632627636097702774710561097684836352626440768316741512325486530179213486710952832325863776003297422245482353414345306389902233627248997116086615328448921822263438306296706509091441149208466501898547109211293909939838071655031378230261283924240997563786264975381458382439503687161016471146663398177184206128746707126564711112314709411564489379023754402228310376991613610182711561020525554796861689011065757448661185932050438318949575575271045446299015203313612012206809831144114612014948313131083270255289438254506685860070232506277639582073612475535661437617984521232124632415561700939974937744731377266203242688837442049673259490779548179026098253687736130834010198721616528471493746623318831862717874886363160385557052664558791147543138444439105613572238355238719769294413903438836379859585816226452017187991082474790451428072938225531577075659357598647116908513486757373147715531957306757319228150200238712949915323957829671457137844151086715349335084822799839479862720984930751387638283476469965684120890917024849320777799567336539489397583793765205121853946125766287368093210049177434087001293919826688664946519242564290748075649678427455261213299044074488289364233295686377226328879713442541193457610676037345916998478785292480392327598536232606558119146773745568622798584817098766767723627332734758342876907267131219052139886844933427370026030652755180702932133966406502200863122799458137281682248831158120557036163490162452036352617865075461006757722249095308947975661322658577048729418327050813547053363481623483518890606567798025806920720631223983326817024353563699625372320915031682465931269358673002932622251842724538944769354816142510147237243852854270617545463736547353359935673143364887308402776077429612561056596637270727533323167844321251165051458613136526336144171062996857357200468265960777267678408650356278481421118324586625862827002822880156423517121319249147999467559063396197136459860894744588353152753718247682254797144220797431540374685496867574976212312436547405654111091537044405692922325146463672006726554508679244919098993387641063122118969444132865743212503400105468156334078240703206772142910176299578861638352956741973668697617964317654115624006415791254290399892648318401420246661470634016137748997068328281124794569325067645847168948449418826923222639841058478529859001607723400440636654924039137667366816590539575724974411364254431320538091911953933680723802783064977063144480055539334399467939019240556796956624880842420159798468986852057477855483917304934474203436008770117579955608340615517362778100818127059186263675506872664011891398539516155402950125678390672370008608723475269201986298843426879793063670441415730638928704873381763124361214774916914412194169299683172073570167798462691140511490964285434464493066677263216732121188693545795120343503555776095136811159348736234974808846664818167179715727230692367205143572696482575987103850250045379048134461158167622949022119618130769985543416126745163533204735230807030860659843329917559093876473191000783417154312266707776632306418615975161211554190680327508117127453606511713688144263886291602403023614441802459508371288392796741711419109318466949312277883408345998387731839661018733673255836758458749381688842396224539242610301103269761889073964385156807300886005833436521122977362709993114397129187893658795076226623451491695180640807993116695509902521236994268426538522558589389935761116986913644900529532161253491719427236538100345510353408122961246162129171204540759564435038985550456773661943004911835841043866784165250618474053454573425145308256215889313825537629459302552137212730687191404758190438353143284503321568954508774959992473470801826190250580271471279491229520349326066729061267915174895193437917493763879757235830263971163998135892607244404280176393069802358547604403939946863490723262279088133560376066244662267136693509233681416547304520732988450615215976457322491379750190877286547425371095478009249928493559464746809326877763842709768879815028580531787957120793410767365496074457589435783479225487974880062081615057359704208754764330203398529876733507551379568436119777474816764120773821742708865807692912053377518638260192109578487844824867851341778612883744140813452603001763162285072795287566525794955944852546091135765713470541395949423268339758193678230388770486750072232491204232766754491016163509168365646360506990008808954834049922596402552688726782987110807140400226211055348745774516833056826266147984059772964998865775985958864470214047487313696234957554687975923484284032208865728639648293558258542377894596884965298214968503390359727429732547433078308719799986048615539506378278791338510504909508668588619887734049204210317528070318538225724913706542932188415473491927186064682774150987536369709811053592061794991025922359296585163751495037083249383497397600065222405512887471598093823392758956402116974389916351453457280108818926514776600846764174083837335648991620903721168133218931757511802358368362091614673267276551049931686257835288123092512543013811093809117924009071765464362731609995331159170831816804253767071596219219788258508722982518263008648627363670672830706158491620808374042822153342263807991658890448042855150238116693728762509854015853402854917056481653955401315203893831581631176011515770868442559944043324872454902341496614469043270120275848931575017840494561920144533497908883699339221794637823114994630970722508830297485678681829900454562573513601267044463875956916609371057888125682020857629067797120987956976635778909634252859072143574061680734435403069612127351697512330479296037201493693770511830222602844939067574069721476896308359296235181783073156257299490081507332897072075623610072745182331558614517391577182112295252249663940584348226177260964823722792804639320541032731981942839855520114557268231963305170345770521226334329666090254598381873618242150730033161298478167727476664874266505843129635667170397258651249275615576636712489206237450832830060217678344705538057773044128036987837662149042413126305672662490952316726070686868643853775287866527711307838391827519537926963610885010629327482731497749808170012720891775477100358193315371693585874364102447403051205067717697927629536688699850621636249564948437665639224035631757331648032208759059485742214537008734069366816580822691775483578354496329184683674201064092977285465793355687803728665860441478131042888482507725596453799717562313944937716967252201936133044253259045041925687709504619855656226266764617206747222091883427163279482651629525560190570090038196545517039966705488249174008634987028780739576587071363512313475443323819720002365926144011136101572337133079300777752641251586638567413129342905850502834577071058120889316870354721044153459130289569642498161871852725367480797385849979996944128553499268377233339300495479360332258074290510118659170931385978877339725884976006649135093564288289791584097256322176448288074205466843054034199956231599208756049426935821208626409861213940919970394229572748147258609123648812176486082854094682911082463862715790003237831180364574672820781982229784711227975958767149080076361443881275241610559688733844455965587244548509436497334958300301273492853103557866935905645148277587362590387850088295067607207104935716790999466688509230876302378207145180417219860653060722929191904321582511145897659566533816780497731042756760268674245418572630758482263721534219612979882318705593695841961694310568156161726130601646004620427636742721421270315131639447287503203049735120214629936204685024301007486527393791468495635745779303429902508519397632351163404064050459845890213598066154592339312326286884913735284587695107321541533096908568248929865000643356928580283229354779027512252565093395927671852000703638837295380916604568147845553525388481511116949266588078781694098879622079964311804250025989884425163526454513057460691404093713665310569727070214054299784275162333107909674492745147461037542719871732304271024033190877974090161660309225053883496401729549503083996067846438097008885125524255021653284012101044353896339541013918337428154179373065843117649760194740372091552609708352656568567015326803017436206458312568194879726048284338451577667507223954341179314122492740256934886035795383929568588514932582958361268565809530624106501329261210173990221334892350487696011107504533260732566782066540693573165911420113445095195975592253172364272798435586875461601042011504153738745555459083796144720291753859570742482661514195962143656055809845640407218130149587830108449777688542340602740451479456507839757841772513268060371104961792366690322226735089905621529644352032498525796487775102308157692044675328245015147169905917953658306671982454049808826731014390899126588201618555092174072909076858947582935408849045593277634938084631970571495778068348369865500601976337723485965775775838477060721636872873201553167348636143894970713667745057664511790431232842929219083662760890894240940924806477534123863715565396445273802751591613340609829183234028740886867732623793507544740257099458023393732196464318862368753573526193231862022938088614419244193997354454187613946154900412856469679115341136995971584036147717291696173866948047876309178536842448885808697371802708771835142429905170536035211478551325628160059914242127568464278871476024298243113168322793942918266228350642364762957280213224093666368354907931108826272768929622844107608987237344846588010046389586739846435227066427356351857502941585245452744864510495779741564299544966025502538999577009401705098575996378854186092647606158988712056121086031968566608829140407817427966793296770894658358176317792497756945955717352550040070510588808398252983546916101685757243906736492042859818916170356352631973591412577204297672551057823781646864773380975671383534045621179546441895273814398784805203280359963974991154973334040031022180741422563013871354486771342479330704090983867481680368263535086238269455037155855237316755957320337828405433587017493838480170892038264794797628156656387436588449424832665663009546837455799371474911027530041892397189640027907279030618687344189674930063536838730970975626245560658935181905517506365898916509331470564607538509323451242980476184358600198467679060448207620809101664487656399276274223095007978715260902151520631876155708704752229127309510292085225053594864829450318873088555125846532193096892324162596288207909308756584057902203053985315513342542678336088274455562124742273248797357554795997419070797296251004940712107812373114192175865842860998332034536155493385199884376573866690681136552252575011832466106782019761251761426131858889509211621078397706883337161085589533713445519632488688502120257290487019234299615864998113751478533738385228781061460446178710279636565640337787361732785375514137087071614856702057495634689745391954187259322884270770732513250885641936986638619430482433748157434805613368733695239622529107081969541220103780486825045443170475605708454231640740833458275548397615964382385893220983260088809979704128305303651755922750758479673611824514719685364075756349680793457596175820764149470227798060057773095477777840587043048933275672791592795513145745053274696767037798088056984249092137615524121520715159129031797762111911573350040133081395385843541222455442796848259741491913364107830714280995108970543895849128271549707862037750433933426528548761318744356111139353806159667751339093211174451493490443753671223014504948955974261505709414250939600748862483969694104157774523283332285463361502805503775934292063100667596214943626220181313373517715378335286570568908193901068642838647288515673762963593251156696307800948407671761568458588373433778361029038647744986447399755549179078322402204677024336235092412690484904562614713200981485665519530169915344741912539056462701557622130717269292049297707245162972997167068489998334793665609629670163883076211063168634478240261624558532316340961451436265537650567202300744749013510103676398053111213140359063321079018539478425437360689807402461141459115475101100119391082598375891980408955920921673415182878370121798825144182723202285148024589580056764971503130876969469507519587283854806336176913128091505462821957428794486903546507662147776616907474433588488777462722266966443913262418434579222660538730350680463862862898394600403278141853724619574751788818071591690765012714751826114496677704644152137468246151047389707633398702659220557726825430650782666257336448075500165858940588573462303810575522793542710329474527400672953440953939842115956873016910842964325675139172897797456236527258767793562418615902229990173911118089227412845324485327719042620988605357624292172433079656990858946146241589307422674909708397064829006286973002899794374996800744638613414271040765778020195367429444774884516459333493471366589860044029077421975676106168168704991730271935158967274661919315150528886481061515718286752834136241728588233759391979269507537669251283519320942402810068851816803667694557609348004318561307832740841304280911385472060487173259791948737620209437542732329520129581867192292631085443408343256085930226547657766066479052477363298968453805687751629259936559121732902568304271095317347475059933986991101609101221151738578522126662462237457648092272735871045376808745293224951054543808219300442225122020909536401047486465971215796498568249407368168345226152537067561459004875743258130027033376829425230057060161879154646009267320571599764374863099334291625608503363467360648344736915649452411355882008463146808221847780563460121133754681577442518923687167610559225044089534096268721649412300381123298825777690452157420711793942010928837166340534837715799104582904760477574992325435607208675786858401011861970043483006767213100055193723767453089721177209820486674535153681013351558829435006614855180672706396644081490530676670319920109945362013773976985225518976717036154058693086728990937311337263220470056577860477862182287353307748997284965503378489055704504832221770406220951987228318537457871186804934993739894620091100351817986047747088209893433686079118410565448876934830300252308482899364800098052887020412049676185535871412363486879444554951243737856350675951717401368456393617459991555635936148941278552534713661284091894089424018294573537792989210485221962064627358987469675725851992782490312311021515320589171889553483113688555456996328839401568572899661269793001881700579274142762038056347182903595048226534281177277759584544169079717828607190629637450319152353676146315516505486464905809860645422096012779106748139566356816308826686700378021902060431770036864690657195646189768751672998334133280445618709663087634018681758237297519382558764531811443410594275758044526478948885724614052167319278842650287965066651100479622174876946596764153960911143321468388577968138367690992998079172894801065711038838868976249247319264920738441888833145911070978975098502679043566507882520354654322082341689319877354949129233751265968195992964864231867814595516025762715172493084194795407497976093204817277644513436203995858963346512998269055172797939995440312248436983799781920669089460482494658390525417617038446876923177190489975304572345270163803394208313295534221913838293976026240590952949406930787380644812785693505328787561483285154133955796534585483061684310119730430098492332786386802842473263883658499558020471177031813375588805282709475889464622850108225522158755997144465157661210824152843146185331904138513219382849308435185731395129797323518871923255781364450505288195561469551287327587963272875683112939607156814856503911709892998221790753774431757891301271844592606996453415962818397906414818947598309396663592288023048018374976204859615478052026020377126964968897156378410807870165109936135269412049439741683129743689525166373082386935093382602085529161271437299192890834705079267371042854915218507068827663685258094786375786724913120903658502858020700172894738594647509649717308608539448789345235914587885215401244734943589390675850369583674076674700316673390572666147186323237595337674359291317073159863791035777894001583488520529287822793229533654601214624908994882047866841641129212352554387420225450201366173875444472247302998046894246482988619338950190079814095932693944364432899602812169530329508745164737273753030203378580017094351690547154451554356244307363031139415759690779178870971925454271775473198025800712189499832351464806110035574048734402171687096907186133678346933618058568646700815472832694765286233235599201847701561097918262165063161524230174678509308464771603294082666197485826755335228261553211866540918661961331957470864196615311073176538645670710771197069299321658562612500393346815678686673747510835903680093024048100904000365078162769662909432166109363099120882104969758632717196660939017822302225686962955481187724899100430275499986747068348046053326946616114568436807546393965516711670039383262727302111211526981319365436164388259216824682997317893239657700493261998243203063258082151295718118408204568962203710650690730803003031390390282584211161827192073348689535798930986681631697724357380131639755149792348008333270998130838714074188607796080171993376324984170209169793582801162717262111240212660731789161308435820148806219805800110912127241879406766687406066985434587767143988448002335404889444141633725261084114171427756807166035599830855892687330326572009258712319944008692157333670406786837657178263393405063102879849147540466894548282883388548999978894468544949953157681658909505821267510732994463646451523133856063411887379662998769478880433370173055829234718614762748537844472628500057974635747407231626615533659962287347053729993621118153081949997909137999334404152389152144268577096101801722597838497534327630098811845126574230648115058437656250875835598097205362397742169142874511796165661752324502658693989226941706099779934183539656859223717269355913482997104730800896695037972277017192052832986279584336748086301970728138031906379518678358058703495166527545576677111924563120808192999935196766393544705598149838740966520250901163019380838317858068608295961835083050066304932269128354567262421808896698504419982906828015432590487003069518197426542857538557972935447401699591489603757975073772716296398802196455224978978468045293907461246364226178497447315977261851697270052943071416985583914609027335413199590650371221363125540027361498148494048776813621341442414918696728998388994827595622270420240318596646371723923212216975302984810242731032988754620009576203903160875644697845688974395645121794928793415272591404808776815345194847284210085006790911120400198404545523903136888844300299169027841654392757939119522118439266408540132711389825920494557533873079686435045406635872035813162244687256921648078748321025333358170129853278676801536693370486611357951988441372234544758499742929505454266012180686991607297749184900295035862410270562791660274379871245839004746364904921816576863144656632754786274773276931714006309709472339597876157360973524352072114730090643321917047953876171804296273148364363554430247066589730428508253315824747948911525594181930451989438358170319971453611870726110433522655320825113209156585093398537100703373010881579533646523546318962881952508864123645447875234935657551363372119790454371887862634700905990993234147234992178622903463565885987484293958072847218345252737663010184598221438481358333259891934512691696726130143747529149301603378505262933331741696436420340697452397239051271005535639209790440346427001045883142626899517221378406884790648718277153225897189767254446035841755695650105661146266835213911969814362381814118401197703067682179918769112660487596922560774777898868619880793075965939278186985300356546245096423696939818697074818599967166362645626386985869540497102127790316068581064925854779579874332961084239058791837570506172114286086017365401340962492327312561686419089253533780705198758156283016957327869925355602796078636156791507903414838889736323154740825144294582982842388738861988471470209239499942490687461686980111906505926425014805152186725320152337820428883103440976826443908290884496079997171633787272908613681912361228249354085147288618510167699395121684906295496593169658953777523363603898499257746608552830805693879882248692013557167818580024220433349590871540213408558077143817955257747413252918256020658781430159868063060041615053344422525562241220778225751709607809655106291793948135369746522178659489308996117017731773855072914979060039356914383081835067235558451839103783873729155877557775384159455963934979975384022853240258352917010897101129967587807836464136690486039108084569396592539268340304846691134912230807086183788779679507420909795075623559548656659931169666662148454498098597935640292395908565652109050258308045150876470885484102069755625835063463556445248456518815869151854824526924060072626652414501742784811966157632915565913427734600058594312059696762890255169927844811675541386817077113096887100448264423123296227141890663665260404790818301695019436043372674394254202160680825666352353207035670272723399021329933741392899360191842026168068321430748819464570432055945891787865471848202238299447310240064114219662757819657953621755611824290683907767581292588122675386269606510528713988291056199745317139324259500539377743677510260512141776847713077066335114299367954108917522548983048110498693207719067877739636494792979865958709523504942246397251091812694180588964706467235522291753707129367973716569014278126173558007985478313128116954348846721501939494512318592560367183925700243748914641872753553733599235598408180122304469653532679492238114110159037314122569720654372382088398102185560273993955284104542988049860419331393577344106417688678626150043142571433645383916372980271316619546961365903626746001544629745298077746762080291787080356381561812441253357212130010559364307127397860653714611209327835160115116611305642998043318583055574326908420676979526410999871034861486229852707342542278167369926048913959590035475702068396413395444003368235130510122007640281889958219864714693538652124656400335020813426126940606315200383139124817857336039417419662317809765669047029865808149645555188577580807745118398427173196496165066173842131743115955505172148767859885325276930179310276417155041693559865227684526304662684528230688570416075285965728730359668780786505844436565181192667118112603859842447324790401475221594779571496056923858711200100489242564283514045124865893820779785004434369677141690978496763292088885927707447163575083316444391369348796040322493408308162210826210756186221913389485454554181607845004095829169171658671368754068613343150282112176732539093031339685268898845323753066826347945748466757910259807076198717146328192469979543191695559642093212766264715428364396672215674379345739028245818772859352623812145269722908561325299836936921088714214279625496168469779685363758101994777617696520835486572954794493946241092833518191459863710574539306900779891748824664916551716493400473710804555329541820714101581825345268703009277690649173100988668403764825892924063187792585275633875384660534475693318004647357267160153492663016736577032539906099649265933482211442639155792591084313621797290577916323226532057231530401630575896358537602916354329917609610945917340850520777350030707994867869617315751515352078405650681909446035853134351171289153755338307126414454216446661286491304122628217550813730778596878349147797538763400429150330759884227542712873544662019181443833702699887286155363090179801807956181905589188916068107573314697134609623565302413298503174229534060980388246795618226395196239222243705199277149813374849988230913088829267365387781909570739097198782045749951604047287863824189938768231601499255124840635645689795894913446938234566587863159068935640096602528859902333913391194097358638165617029163855370290241151584240738209110539817609852884239360988520393049254109054131412579578666199018312506557945761795509064246113966742706637378176117478094626440224938495599946193739744935735621511994435532502858174947043060009599048287347069220811419010185157224097993412344363920911977998208071121495012777004479085166193818666979933555417220605679622007902238066483000574065238892767820515458617692387827098927662290615956309538393105154607868839985609889100695861824258115872158420988206025170911035344746609175204646429620601986598752186251450749113465329529813782887505032638291227014737371987565278109793052948036807679621846151914147792280161357427310312224492640162939174106073040221905784245159533187605222880963194555770632973645560848586107115940064659705277144656420495704770540889222386508989379487631310809304542159783906104046175521562639692045590015473086793903120632229915686415606747295037154406228220252582685305159990220577133013522313292056237012984369787720279628624360750009515146359230134217436370865884435959771577582983061245311453319175548831944412877881043573489693260088868333616083788284928314370122505809148104456330486584690604591747402154309267965223940125420729705323681759180732194363594442680461676662528593286645062006101401873725293274261446594234420284662331742194984221669360366903090871176605667290949522441759704790049163996728451003599169385423070581826811635267531931959951869032374707558700914483903240168597571480373890916122545450948345338144539765287972854287342513370040865029373937949613564538842876414078965868484874770180268954654665555052084108415900226077284644267190254425272358547998084138051106143978114571323573332707167096098027987256288010331933933476333335814559748887148727129367771003611445919417232440947198370794648895327710391325459652258077886400383988456082827841579963366758296129859254725735452869968944673270427230543819486842608306762625497837393729407299672606966321362285500051770629592157930429816421522528111743845402368387211148760630111681420211718522869080899473310306519037303987006257268007768965736798039748047177973030748845676030787765790531411471305862883655893578248706012613488313042802298117027317799735603722435159238208666774916216335431539603309114198627165818346720894243179515482534256219618374873649514481304279030287509708778257775173874889705069315654675403675827612186445464215037353749500500288480871791810156173797924692785704398487485849219024563594187405450653367656884102554005693994505780459684428934992659908204901935709976230853445367590765679850198060558619898229558174824760204398503087819000853093168965818082430497471245561275622692702893389563499919523729726991966287280961200622946338025013714907397710840967286472727723241617606375421842438567439515725018394955334947000660603862552340591521351231760802511589023559894733440613335478052036044843155794494693951020562176910041437279653750971147635007267073747035415216908816559463587694476717870245013973914527057402022079696718475088677481655137941919778721716568635006622289516785706679180049283413398459870720470046375427838998714157759306459401237896947486286411626910275760118468525489927892207068779519745210811505953814856043726951154570437931023917781018809687055644656352054574924256325092820053903146180035551240811044483276237536945954690601957383440099630211412095157330851224969005597219542946894448728638514961091677558293708701958200079387969563837905817413359203294967404917424743996014542045732675667491087808457180201798719118111172445365947377196823578569817928250544072433289921522783787505756974587539850547110642933301406355899717120098038898202870869081866191622547122949326873193188921872161835717304033093931904462956558723513706711840355290037275922915267248297104139058684677233588409517869765926941652014460303450940295287440120246034374691931105347669171324306146588015559762482061887852119111099243548358256493353928713909422183025720039557158934291794998071063628410266673990971987983596155172244246695789100681411677235950134997978053100672918172823469337166615900043744698531660781311738484200240831408641313851166600842593494364368816817289867463107003329864125931126146851493977068924730151874140404053262796329842667815892242816985226393585391292743439420457001559552428323672921404481323596423107843602076905092135660317120841220885540236192181992255660525116687724824797201922430416223601318922346552475816628078995287694879596714559216764413381607860497898807120078207583951020717527578740765073452690200766092328087845066683431007090568398511190965742298486218968853475202528863966931399791664017315056968791387943752746801891214964588481861846003036083322066069654540432084238845115227320717312787760395885256500100953353249046331553894778649546296562711857507478009754955427058581428400288282115907528573504194914859738373576011075925532456515741419855549246961824755697513120771182031179319985798592745120605900466999135556612002293536895828138965187818201591894111869512044938574028335163546744710975888026199562899166060666369113569935260085758905970950281139049316005072423292550792194876251827297886835199541871708293432217085641227261474379823522875710568771675106728649752616963737196283138492942611322490518902380981994323307912995254412104655325465044822239904723864763752555262693013573057837785611078705419327237011894913137542339524396902793292468480872924662443940231459371796188732470037190368712066134908837921112526593248996490324762755175644357617986471673035923453639157968584286920519303814896693065162793465448072870368309607214981857779141495382902609276254688826848349961927011803947849595013468407241517475327462046543397283648077262402360250542289067306960177008563399246460433358425334231048621318026734544701455760792079760831154587576978348211277851538061086162392012120173275822699269938994689228230154651983108558883271889340319472208620858035601025307318365143654508267356655217437405294475126593219219871159156708863012503218459956983886917232410007000045652353804984155204815432464525494748407286446255335574387713580833771614865085600209465561433943740511820001736432343514960622021696382019981460334645405986846790576720130054567112204378635303157329377851431196989860868251283921588632935996353364561472318621743574981410562658676119704951043480539183625731857853497868149050661902806449966500918427585221324090000666336455265191192139429944313762080174290976388081937408701539025385905405520514432805279969125250584033543831790983685397474602387791657167578695727728021454425747089066186830420273837400544612966664212135801129319953342036180752961257321317684226873638404933298097691432669928276672149043201467553271049155577548249648186424246011627183225091011967083027100964310422259279177462355494082073033149513475790006352716667651629380018863639722309502505769162220569075396681779999461350071291822837314956351067147758115564065509775327610736090672117071646234213875265226538133264619132081075193135645705006678626304114887079855749362264956680398408794901034112243136651527784358474255564790206996854394571830612791527588360750154928827611322892078015932407885764948094701467230966535249233468690053821246466640196967419852835505222742122994018241071256104071533333972756601932520357423603943219555584017738450739513575701128612914347346400355094444198444323831590301569274750690780854923502546396339531463472070447235350699914687210305984074892114122369981492148344801322708310389174981966279897248407296952237127015305432953992983063707590784539031349737035657754703282611903783079779048637929460686511081181915699282382393288161469263062809152507648531152080490659141948469865242122739733090756882275113458556083424583626042204079519289698318235081111222595121742866632901917029487255661088650625208626217412982416383149531721209283055426545502034015530437831611092975058580563085277582766374393769999429876941415265795516833452123087683689638150545647755438921151650579589875489464391640863199987491297370139374725890926608293655628395816939369680815016782362995634945055846925838389915373570851376640164023051496249216603670878536958512802109003816080099422742935622692659030535139677248772979624978234806570429877413119119316671952668113605538378790800649063447637342468434070441202936898147224412583206039426946495394624949208866558848992898255945655541595898527830021904424537154550589159822265395813202798337520169621979939060812873938042779906749904509823368971611422953782069488372616631309681394859775629160019838638237471676018520867309636686274504220546123822331353110628057824446381787045469177089288812306441741679171832613900194544140838556693870934134748179551765395660685686066276323405950052492189985468143320734753696928767085694349168566954163368742784281102340147985940406929002005348345856115228748013175662434248534525402928802190983876712338522971853775375529264932249375492975704920922825829631255341758421846711155746154341776608828081030851585420306498261282792248357904500633525517431254357525864640506211124724778684763092530953480231379630506060224066552420794832762913158228442144310488506718674082256576705777367454733757016049611721673954323158510668591156098949811870351882188400176001012727904482131119352832014161971098463370357467159218633940698411596312317214502133241845604518097299174072566773907963037547813930467896290161648337994515626465038977580578785323794281291457134241251328077479685966066021466243079020759573961358146399699806096791208430773459232048334349429631175262148478826745565821033006886993903961273929703528329669261681863236005770306513864864293625588094712550203707101878048138785533310667807695688701456971617013688299386402301397328056075565883077850087852750901704928242568204322896434553523788308730285484688580612921884866657834693425563670088149376561553157146592757442762238137621915816200625856077006835134162112511276661259151079167344069774306651576110778725194975238491128734103781293620603751698642328388536255884320170024568575423520313143914069769826923796080272036964118546235581503355634085149002184020705343079861309116746773928022317321927773316585213620812277076029221371592894073497349411981765880509014194454291271401623625661471298754436472285139112427241583246044638517680277763630984321118618568675726453679003646355389237189264944339557909858416766003961732054074414563015610568684232196254452887523116701646486399250689489865674628229807490875884911466954205991188089036912206292039536281646244862986719833819936892229596499130828889205172188937905254858977970953427931798776833990283987918307384132964379490502721168494161567555217924244016676270743194878436316717544136658477298180950869426536263277230810131088806762027622565554736504267624338823443217807989547880114199329451923600953737386512708382237473282236480363192346532028904576085682283961977902922034257743064090254136915144692033598993559056662153545841105389868636514125697482578837607707754751608655602145651753084146916039271589861152099523594992254605034815994263998607367783366741214686257056722244542133638816188185305031379704862868200105012284900194936742195417728111407097806470944537189562128167683101069744356590734829986480292261852183385134313049822223054277863856820596491371464859514131364673060279726372453758557699529998657289958127325009327708434398799190330317854396178008488067053908158576279976679003521222193960837368720360121285486348848564214051137798317441652751508845553716073172609091559538305368321219702299232471176946933709364392198453148699627935882397797040033578335935742514352569055345288191100549054383662799037216918740324009798553887070138872248216881539025551553367651212587669737939847842079079210616677047586382132096846566625555679974483769472308701412547583502724677132887781590085273750582749009817720944830381578930147210235609354673157943365587804885072854634373788634114489308518664186154051592892672767181486073189061822125422141274707208649739850700918962428235236158379686039082805014534301663066149849805499878492334602459042808946075387817666701505031353449329987283086462386931317861063503664513632553287057197192816906239784345690770849625005180814963950760036062758598617310398005876686635958966102746877572018477761529505497178787727530853449367569629412701598578448786541999785149665845097826910904433646353199172949685858801396748440469365903736521561175360315973578644827839193837488916490648173774446146528589147801691128600274855883130069833430641324100791365896678780127778580958324123174219774993799002771032468101152420267024247918556730981567215928005789600878234750544892788016867867863555697467022374662091753211631917992978788077533890148447684113462402143769815651062184093651398905204212890046177323619954480380851237466796949953093971136297786215943164087495646142360299715933889841976556884161809381159437383177653130041145854944616770716795430895454787975601617792702980977007244622028909466833874967946465346311747806778282222981411310826016182322493271030534335179223462775463770496559913060582826858985408108614763917253186503884740314280514162351632626080579281665871235711237861063175400329662029341886798895785274275006954894776588248584113000502314557937029874705812843664620648093516330607885509966867319898232315304243503630888210320727160453473916895941729315447255799763741522484885359456354009262878646090449742440615047109376068268505046615288868086127306943279684720612628017423708220901104278078013786541873266078306822689952731484285067194770569424799981079352649373002406298122967594796767504446111713756341049559582774035707262285554262364574025478703420177249761759280311848922062113340978705296577425527152131055624962941943300698683819923021379940745129730490141913782509085647438433501155621759870131836270064760181586255700731811192064845761420811581795438293559866545798806569273657229932042940840577777318318898799436015480887263861964421946966433538952065859893402083868402203805890981385368154753047083010228215051965137814580234626160805325353324293278418336503844961777082711747829542022712567846667220241669210908751054123379280351764870329714030355531595030117315878757924224491531029739679940360125452048090415469445275758906717018790377846816860270397897123497995081048666024920538829638961211465350438671283619137340975469140612656658425433460709190820932690608730115419400007978116704893117012405658481418729993335349077533377178070641323219436628039361350225992759930418556983381932530610311387024640442581462196503489602222917586082112668094481543234457494703133662970442736691505629467500704824827055525087161358502528176440656752347110633496291690047122535652752191562117317131617360046619822237279483661350761482444434600915317799177375193475930851940114757996412818858748214725221488038679251343721675500153148719162942362088461754584555979324909177812666320758645246828858857347757648081911540727539765070317597625337373867299470756203225574877272105176422822496939291729254613599567083128176243811694487585965657704947300521757496789442158800561377520035325449466240340536262902170247974437026138827742693287948422497752040200821413977813604010435014839664861919896318066203586448359347472061396347461168433222339666817297018373324245686689440098488324674697204946362507807560068568155222718127367603167636547753747859879079467901994113801286066730634199019608825248300207768185286617362007246302601365316974707588380458478762178484829225058368426877067059459147887941212257791312793206437799680335652637680794518459797742045140392877931971290152449530089115376556828173049714945194354596059509768234973731217606344240318936934050207910423644447542649081083773276913853660403799440382410878088329850664468467164035469628638554985818416944393646413419344328658992500736387687088972013875546898805410262569895871451804098142768545391033113958274553343259807779700120580527717944567028546690926729665623623266503824968367364137211347727422992726709593204463757720261554813074734576705525799995755639442792768062561359013955067726185488172393172209049090612142397150411022106031889921742062098396031651861694343737021330739187430085002031799307745905799864778149223161499629788470049092301934962243017453151367648613483792150330969127131301381676965985295808859130620965158653676698566229717180439327105543025295699467185951810271904194070199952506595279553483517718593279199713123984238392788663356981348599151286261716916510731735211142264941973417946403961824667673978555521001960465750764568584543256357446020479307482175961814849023907984428895978980381216334659224412596194709159667584957911557226502603446014939853607489312350723266524512914764848262620932684745603737381680091428875105836048258259614527254315971257812984825268860518358392373475966194895339923479886818609398791036217178753987394047222386732587179244155708602771406518402763115586410220385142488548468830716344696133455906879977772455194699648678226508720517083669891217439894537869303964429918946093325992730329916289010631310059321073085513118754263644686775622283807752251062519658597525355820425510714021228655874776535003144283549475031257503606115547633919659618934616690219731211334276479912247698417913925786461099033538649491395776623999671353679465355457305777525767514218709203436137296590556278207551480874025435600217574090124063102912875118598902239797038980047632949088588592786591970636116264777018668234510838789778207956785710382727823611618577252010180305266729675987477165934606538708016434949854766292130730135189054876927680005371217227042502458416992209259064833857835106672391291071232533176289113994927639462877494310167195928771956779266176621996771614792705735806774018818840865020995798097528056253065607040321534237762917381453109212342582506891084495461257218341065721306990020948581575871797893300929952960821888419418104299966231435418647198447447192035247239242525185367201213381128372961469126446776510029987818712961444530882844601809398540157675696862679055862052293655268157618862326147099875570833820398567433175710598354031322147016595948275473482181980512301187306611437275719199115045332336937554303570640919037591673826296171211086955424952339134585245242521051090505553130352184329097308056009947069265199306130843560107671208613352195410691477695971525840409560378076847765686669652628733400259959400415668071543278618407118980227660420816897978840157661430628834341256184389732501874698737167103541254948050280046877368511923886993189896317646087266730881911510949241551819595261560115620127698682746104932144102015119917740665152122359552574065815720394748312553158789241804280729800413032391619453354020246915303887397371490730336294594832111094919072399082784788277472820752122477082808291516451912070156981341002962864644704973693527632300272936967119603270092601594389374358822355284294511743162095336274197804374479515388360715517556224311597719702847478387461178561788288201911831007573568182777920134934292027541954359950358737815900646544213695674627904931830216516027342071828029731265001834538744411930068316026200603259029082545211662802201649146730752474832939493901115368719021924356854345644948968613849556190161324824387020114861203170060055537279961346670060611783345964390487061252472825013237735946425319172903982097849165354473684613983655262755326235600750795394645567451055401674948314419357156047439979538384877208311197390574325194968609751816250741250428091076084598436672248943308924475904154618980100512552115527636606902963383852309397945800727301798234611346993240122623536168309681922442413373243279368052146652423072850234029327544582483015078747587006740480201302280034838026635096005254199411570088859818830155537499593959183213374926069830786574894272388387847344770472661924934949269803944999351553084920857906116645644733279986402765699796968471092801636410517073667910943568869426275025542736252754204900021161277963255775840141570432121822565972426122922538305008537944153128790692216834044107886515047045267927482394396482955922656429465109215052454572243334775096908964559313529209097619155516420190007133147377827987011975335211059610869372122916804395093663822851389601979251911907558506868929772167935537592797757564731300654533688484363645100036826403424321866244552444897490176438366094008078234378575587774531823993767999990401768188165951956364095147877671329482875158458734643948906593101732763356991765950107601267256796430390701317289137829340105444187963798464029625087669430676214550381183513584195386025251204611347964056195867882435983267847393226024282646759854032222853728101859828579797597362577508116385952838337814052621298925280350064525362286570102822016344556539768917732848754309416928325137463195413270380988077782240375844009134648284745124592035747918970711090106803974960907014759383792340928207346036596022906972023689104377390648417129124084776932557365143927343113424535344672919222626367043394789271165548483312930124195373413722773200868893997341107732323640499206855186012620937317428152190164142505112874526881378143418496624228237809401666222592639268702196202060809167420943295511841666648126625354591630510723154346143890132251318345031721162342960140303299913520876368798091138256667100071094180504249573009567872170544884385662455576234157009073881761957404711763780140809715945986661075572481866137317095257379082040015163316173091223413040307082870643460774451983690874281458728849013484937453179186176215717428361115194626123318257021507211310071412880816419856622220639460396575483169983497226572238146258279954530855150256672487925389688504337959131243294017252725428918540078931822985114136051276811683123197428170754503336866125928802404899199717802847380259226757163319343719525624162053812912999186500157277077505814146502861589001581938141087530945398696159388461315091765210103675544237126841913836988893453113441724968989064046382516057413704591191482019958811776063778812659202820432819932617084635011696472473098860212162452409761884107647092595478574992916635819081683845448848744434948011857776204428376932559432112074618028719956367301081923722051573199153250590529627034983617616165834030701989810317118812779507665294779153363334230016664161199763674168680073885987109423419514888084398936694638197089191787448295446702264576480351443709107092995898831876960713514987045792838252716839111750124537906708211093421592043299150364945043431514204514817927836734740198316054409493484356825516100398106971461080682465018008834611335107527280017260340199962271984330522600857656598968432809944115698476109717509041281622280016747871081902242780017597979161520451755859601570767902488299695705929973497105438548706920560765070984207888193384001278469470098661030962532140118478559196574419199901175881213857031551135809792744664857915206129849255746209092323444299163474035102820463979477797730708556366390152776718428457499784994975670154637153287181435436735472825418532349206573236851889276094280709418774653194417646828974709186888097401641102622234862816941546390332550603942251065617443640934759611085371650992720197531735009548667392077443739757085159932153787579841612077357263857820948776691520908344062135448886839415247302392768290311138586534691224225232791160616420195218051635037325386739328657560310485086383331769356303792541316193608397662070652413670978595166517308450302241612048453181976828197248673117880976125661305480033604491395118796655288946103226906422330582692321815027104137414288960331802318245756404399217573866314253278406284614884619507328066764831192241721877002797130692252377471354371834948542085279988147880592960250909008551950518060368229850772770749684765871142940436752835861171687890694028041114026705580533714692868976479673077481834594153480591961493079446168496455478964807090488352295015710845755199059467546699344158277292928849523390093213457619343661943469362174140195644865090263731358713496242092814957338076481099618240437875449490167068366921284593077417836268981979200272524908723599290206770996197334728345392567252402233662975106339707326549646858041564063639088335723689876838026668030121658871495578801256456502626638045002867312635957943789093631371548605888474066465952526134411135740259021234525029010907515042049466270250509594467393503915396900038941206098099417748699455708895746767350191696442408826042271723704910793018983174889531628734311128604922380208432936198558859369511242640465013497931617710885821396547027374714658471425852463270918279467847407238010116596330676631980174527102234131301299737687287638337390400258649561313506447410645257870422533899479306705586003665260300320373696242470758356055117146532610129753004143612074351832116524333884550657593459815295537205614873694791220551850597391310620007066580839552097496736187043713762231367701091339041223165563971851568176691692356701255032629946414915679281814864305377733739455169323389613302958405949622060057528253883789442666837312394012101024017287973673115752567936804358691511023468710320137069061384496696080860649165225531782037957489524696672055292394236648831401040401138558473795864283148901877889235776167450155131996464549549208012363826920480752722825650905145359936433133870408315924611066919686727089223242104486277981163254988230220136446368923075942035894617986955510575522915363306817178486550048202562660370572041237019605060130380694519681378838641919005653224977083729678375990714938799543856058070806287420673982641046910277226298557225223384192821701772460584888766408733360202939581022098694133574243970167750389619279930740207380483756071398530046292938826216511153288841026802136833538973494655205403732383689318590766734721369270298544780314883282440995051875132353311394111604700405728060530635227103518856205626998836179160608649969271665391816223671806008782144332862917276499941576761873715035955554512769054886436107236013414243916575286642627742282099458220284707406551853559437303929970304028332231057100380176782120884289689082384825523993162630703853476876614266317865859615184210379053789921543974529352182886422960507241982543568684141249769801548657544404922321472585130462044536378275662434921023446923082063971326482177751892547780300335678487147053330143354747247587947002285918082180855850311270715649944162200412199964921065295567519913309262603609334087540690053126950287838538572602495801435940811764878748578800511352849302603144999203176844319131215653055325710263649306010082232641852709871325700501707326762454110778145170887204958674568514669122521807039282087007703287715751107098127738039400881388236202268750739709644942858479472462789045462534447379409347715026142706170062954502039901926083357811588235339207743210104174427021249203082937508925064262407988445347283517385201643008678257742051707305200277309579646368860446724723345218461106677719985606802569348470293799425120794797210852019184757118224750744619771958370442861045969708702951353603416424532571502152251841128472093941750525644700743516117840453690364027988620797858374123831075701890718028387481603896985863323610166376545363246915923938987932478567305740214932560444210871446281136040449431928458230849941234499000661016532406327076382069532244482964348845143065634136652628629764042622692107329407741098487106546147455235366645165911628964040249167026390941413398628132615733851111700184931127949340811638453561733335375703139472880150506601120427920314336372108273930981250066404787190067110881373366113461762437636467248686047434851923390040852304244228096123987266444305462805223106671607591311685702730178317947734217807261154468868782373125741309563049668494680903702394681869755802215162145994858690902178188234354698306740298399813463000383560701498933764390278476564689011908260276341943991914578180665925109454653965659392400703793519650920897427100720580409690479854223161706484503941746442718320668968046319690945972000153010215091951226561034623595876857755849678868531611188560424978442018311805166354190356768739515640138877935970816839340385599233227997706065435201573358709939693309306538219014212560322645474024314942174099230679022446624724079862208587921256610202921856321713385194004422713227621500790600061914071201507831537538075058424897450822284331537856888567524278152658875925964106949832257020504167964430313631129603269142618834521575991355528106313036385714238917414672544007593424995460263939706593207006175522637974850999803248709988623819872828020919813939898857361448342666032863758544292804072069132906314545213188405574322064662297692448789611783277078046442237633484839058260101998399785796364843431645897400457526587921954522317862010752966726970261560095162942221285168616348824400948081140694101626381005562709418009387766584195461442131457993594924920526349305062502594708000649121151748747717883684110310287225956037238474346016374608736901213834238157107211266928850174070829152280706491948102221101024702699392854463320773805801548843896160038680509565765250868259700828436683068542334191000155931444142865620360139569336086957433645492852692049614024063716645716792614482860866679232187256085051927081845017082542913665197658807448815600161871031495891847090867465650979392553003201466254381260981653903346652219070066012560858195046215887634536973527623575258090524508598058173892106218198878811895551835293623361497473545888105823176873494646967371945430050661390034528787372452906484213369682873370323117530543370565774340652382720327808580476424170169159499277308336861905848380240398484818790880145082545351415214709603103272301530903414009029772308146704808270301603597159169846313334813138395328278624170671213411563254599846831147833743977836208519412979371070725757604568991793450096110742149022549710690237450331383605892347213877283098628850754193130813728082331899498806762111766069532090451308093730957760389201118281105854098733860962032651446819707115438802360224087291984367098568630985414261151179964542287944537458475548630806490248749983491050680888330386803494958198322228515552353760509869003113973638613535633655469385710754171829146068997423855154047970599887704180826450403870980734292476354483288262192821301995893492617638679908898384784857878358084046380455790462937953173393040802308895376224143294606441907645748292041561025254188860795091547593354083404803115277174271350374793744511221402359349891998801597506659721394842529081940659524182931385495526327133562929912005495222604793045769788991446638099430111069122529243099372602843725261885361247204739769325433750635433980180156253918845783808719894870601399126325683553497308633492952587639018815052337747135422589156374506498801187430222203243383520264890823328612074298195015541567339166836383922247407787225313365887052159043720469518629960360211702806131745584599050792537516733349210722317210295049723704055963469316120440155269042721966573883463942118766979094948970453024331348567998287412202802621701096514072996214114241537119586945243846688348534572885779172797723719698301351260176563388197062159124453582230681560658628988178704122161747240370994556275813486678929436750302284303134590499516708689669169311067215583257354187300075558304722001112642339434140604819443306827131424708832788487341119789211102998861242003044255249918153526911737669048507371567084066662896901928790919246492609227990778471965740867225906853100878124671622922054353471299533756420590290743336785745578494394101533114449389783934038462435943217524910100694887329662252532812824605883060357925967029561412630078091922647895157695177707528869179700940736424424330018829241633622142355047690873840729673807161287462205666372482712029971018794356140824888055415301359524706318340512790762778935219170655540088854795739553588608840215238587843546861861796216325674949121376089458165294409588678566675730110797623433613180252168962000457357960956943943811481096297105214820298090242170642407816663752440775821477820740482339395988944909333371953300128139232430150118730362395298363617152761661264762212914538413376451305108887193245836778077260193553539720876505577128098040006147213033880629861944685116887814889742884384521122860320042263276230495155729051846275419040369748524842927261830272576052606493043279858497723843233713557916407285025286977194234682996625833670294577924774099484255113984688732935918892780353886886744054065176391056326401085449108007978874398469633283406081477039420276376725920476072316731322841512205287887302225431295020405414623915293274296711294312756299250315462992823319718425229301269229246079502762947428046719211002453988547911634947972910765156511459938031082978183013065667055040599625534240320277195963808301383076729189866153271989824937119375572278371377708160670410930543495587616981131112209843261755707151029767742552036005334423431217103445720035013851115117008673262984239265894270118502012265378175502191632723564711296227351313877104156976552919516684506404770537571298680879306887211201095534360242687672735116832002729879875268236553303853516225483525032786248786333423063617500803177160093275375848625996582512432285205583542996175811840649511191698298278564431116677925220038010916749621238810344667893261230361315325645867622533873994384170562384331631291425454339949373844597646300271843520568290546803160141972178662771573944918970527337420515560854774270336107276520386107751357170382673177124303965946061676000516707018655916020168411216878299062490450995144701137424827166752678067080621299729951825300005151188552702900713089968467512271885657624778344615249004856972229469067193982110140168431579469654459879002690919038884502908993176933088411760723962297061775493867912475440836534421340880435826888382443008362387911525059429699489961023625314409350059505194198070016205529395741338344152109181980422976521400933315183740500543822945748078353992362111923034993340671298146539846050774799611217085187495468567301188818010950876462148498519853440824762376512503742115551233279051676961854183800312421213992171359812070626842740681463483276366653581616255384450810708227228278365463550101397052015550356746995714522202535848369155274051397111585409382814682086846387721884793322779167356497042199410430967408133451928365470875044602937719267653629249115011689308682163265680146273364339339907901153886755737426977961463398551857172564917250412979206186933096456563255416417287389816212735110273954755979971359337064643618170739248025052085250022104376343878193304656171387964996018505390679572298403652392313015437630270888407869538926972325984215399313024609991554918443574044681083114853624122703708746933534254211503431774430672093158365663012261755610687725544859123859165267563044596877633384108880946230474103437803131188828524861693257771271233048940228502132646809748818728723539316069995184623693420441416604505777472663443368662287484370840264785535260936654171562758754346239482611495665065095023159433590831741201188878250408935316026726381301912896804447616670385535258530264400637523230031945173149455351770526526429792003770189993557263800278187932105195903282035226886239579919767606024474605754204825787349703284856455857394110772743946040931681173673658436033711752686864140667973994213819976293994188000469850725145108326263676227954184080524085897889391743273351587786586803040807362113316262174966050071031381572426285304141920708282262062700950804029801927957086526014927956719545855502050116364698761019815991302147400924469170271005596779039652370517255381194414093425502997879789919872328479840801978081411064064875969818592699139944028549128356182744805263710234813651222023707849606854157189503230435921309686684085409513852053858246478480995976230978825066450028031856155914706891959352446380525815117181238807266608089045667752398130577316872366511047751246913984120308306811223693419807408536044356914166559199744968243554053321295943611484945985929338866221244165265600555065455246644119245641559812221307521661807699502600679895126081681336865954204980947212056522859791657578560238085818369539705238525652927821583947501148935269804979881307558743762818604923089090360080818491192153411728416725118473376349307475993629365899221831173400918844820463993258374630516671130510807418777253758934693692334831275603272743139073476307925480091753539760459238170305903322483612604642119291619750019643326667652739368855181219526167276406861006197826913255209386096894468832030234696380346021294319012627005178135310161747319538099875673331947853671175565087306206924351663299883465706834263685189787770867577373634842021145397569553935333273513067505418049542710654090294173950119017856989340799252054514832868206297476591431199417330292523708872549785508026983788339613981025315263818212977731440253257553253072275070429026396544541167408391862052345208648578838405985670257803736026110216833443551559974503769917529599950318968723102326049682421581410541556160819240747236897601146318150821397392123431592432155735356359357829278723573686838968227323260497779106512081307581383435582051755435095929831075711445650921466604581490679272943253132704740354886344587956648621802635602038706606708127432718497847461394511850497824444960262189530877400878922827271540214542573257362154376723931852154292289456561994395745543030358358456449395009473413170184364944455077627275311837386607468057440662747815708621069221611436772664603428865711957972079486070399248042927975796454323875086868255658983407794532372681815936507621134179242424020134376349256358145825066018536240965245760444581214746172402614931196466072328671113787187936772908728590433221525284931145113739337511746064192763212562692286677394189932403207187954306477933408438698245605087331334779315846955204399554447301380434508258405075562173018141120051243247166664244045749675423678615479310267458300776072879144211078812792589942885703208119911931084261686493521956757515724803884215796790535123732884727604165975671458331628863580780251444484663825928745249264382109205818271165712043317444258355682250301358267133672605329352109517915679605787039824004625665577419489273081941358181172768160325520478973438367861228801791199239465222374143103793223072949281414761466226076314489358613465734295438239820418578634368167779501943505020075977837091550476260013048707918810822801714922690313556213344318429287707632681992245014060967258538802732321182766566518732137798541804931549085669674730819529953809043449203532578561807762128071832200799334145851813530095154450134961598609648744744346735972657681086964107288679913121036903041216108779346441541812742084526035572811818012144715817214929267235338516670196117403149191828556097223111294463357065159547448083416963951351920729388140432161203378363146822478768387785360620071639072282930813254389733803944909105282637556052897920043764793569871439457872789821944343891154085016110771423312538374592759363554541867693819219863720314536029483102745386865614832944021053061003214668515226342534350956209981898818625373414274617843408654414962931317283282019086569360014469897573669022569982863954306868040882441549444166261438313144589348316736691750173859441077206149818890476451176885266090761963141163132757651570786087908334044968795572409925938273934167639817315792713197479721433677044144539082261234785779175954859822139333301424498433399595049216412681986773750075581061763026523254241659354997752205984483150565513894288815905294666924773148384181148842115683569557903845472238451203753535735312847363423110553982942602328316514690351195187992622708742480930577548295447729150905653516398900516149909643483920541275588244247925608704542362685221138190802909153569522079095678692248351649525736279871560201065194768155650865699263470942205957230444316784480556529848155116776816271785943822951520801735686469268522103383727769731919154363969400665824317924306012356130034738297391691454072593915527481071654719767697349772924195456325961280742555244157552634254902726057288184019742163734448282216182885849357071478971985810200260700943144845878883967662008748548909095458595776167766553349228451741697690382000702907754949363308106762183107962220398619887247840374518609872208492338582454795097610549718003066045403219044316816305248681996357725737802916640345680185168573753436034024269283851935528059473094816238383374886974236235869928940231201157156915857921841529896047619300028044961750377834218198855482159253661457931943589020351322232634374066022501802974275621342819067238472521009082718364287170236296896644999641489548516418984879232945435836559406410692157184071291151586742869570484303846685892242923680857117129703715151005989344283245952823529120380790214430688447296103398865986194810504285234994346564769847927903758023035405313325674962659568311453103170699064923128140814464977870224320543900554847530256856164196287919301894970437951260935579547064818457694030273626298429873179453087497539811283817481803010594886385288472737345635721654766484705934451080939253483776716183228528534850957131101327664547204594958275134857627122005908429356567355308599227175576685904049863984967179876667807200767375249952649314931783502417354157667632349249391717555033397339724471555749098244292673290029679851347876977212806686983502768953717307353811651599644380558605411453951885651155527074035433173080570448925120527972248652231161856167782111513283486995270903855949276000547388571175682351716456529491932565762271293854207460603207436870121164344649921465393543011259651916898144073361932526376508434765066430046431883392239154394383151487055351814503876565513606764015168044322738900669215153661907974476610046132917223715299746053502678199810745075047661917014816448399952581570404035170724887395175037351124009657755533619796016288729649351129397720267585938222455466074573341431046007302716606896111100138628176944787806805336840397417919094344037349937602143903430866310870786317186154137879201511444462812256310206361440585808160447234694034910634789284921903625294092893561597223252121855845087176867412530813552741377967716378051404843733643486786630102864383745059581956817872733097398052058375572914905373133563655225472195431364107832969608073189200411244071999067860379379307250021798662628611042298312319729951412630182924011596883682431118313942493828769494493389020622355759455628621131169218016276929675919275342777658892166591161449559850396606824734462004640855406410028486079988853184232407829766415262347018312073236648928866963385386440284644594501416583987979665078409144238281228871218295466829223527381501966059107100630620016555844244762176176759632129710746874596652112729344540544946205906087796193440775061541591979348594270973621923504073829563910131762877413500785437177083697346597229865779414678996520789443576612189328064332789480760396148038060994951945094357376031809958436222662896956171409590207607592794238887139368552690742137320255766037942633401396985170753061321472532555238784602254204745192216773442098676236347204833798945521567809978833127334212799504519305153940109721017653722418413917800848328370439017126677689583350835047758554069337953611198372492879159085559277057487183575752826349501323591022302728863248666287202487488885341905318809871470274559154175393483218962071433902113393981833579616605742772609950537543930959938854221236631054207675917108474071553529804978092426270643236484936391022442014375619841877275018993040903602439461504570900012308096739510545820786300491482537305924466576365464264328443708469340077904135552023908616426835401812969813280317701369386315811135040782308958353368244603928774110102643876917009280897219301262514726530766343891833148607051130187070562586762100301667229725047113057301126255330472650608407556930233618101719171521622865045753824405304429861556546659265332066592706859745564948808094023467212457506960448710003649572310431221791513492033922834521190873743409586045295166836012825165402340957251990236613868526718064777528462029932983173382630520873186539663061274383508544870331069083037280848974189292663561570473450076429193812151667773049251213359625413768170160243682960887461155425195484154566860787975307067043060865192310304317783433831669766986263338432857904896727420842434005592791348641759578073611315480979939264995228373974370584974777809680341843928571918107623073175042212200972245502075348368955766040755129776744995778036487724375050233485638820658904378818819321907321992929231725194881712056124175672188606576838321673467242721371277582208997556549974838326321956388973912807482589224087103367908866780038414992428075754879541390222624320651550666016938661210528141322086288746151811685014513981841734336706729790365955424039686301451029930954013632530254364863512375370183941303989533485778599688429149850330581498854953834862407142766413042455387973635828790885753053971324592108763960476573395108940321906544824945825765329966467957436305418277182767293173440815589410509785938773105176480177501177965434481212774334903446395046608600648870576498366329189514466854549533954638688320914481100076284760862628338199975901575986332505294642892908329874730873435989766032652968612834615046460416740948276755829016249167177247252026936057113119889389194240499286613112295329789017472838809934930371462671366190719463302126773217960935900816559523554932010538433190617475196966397663968368201987261379465989922874904086058612110786173563371458726517239248763864022867018416900435746230920484603345266209095923597044819991259607888638998861422811993755556713329126852531648992636306081370006251781646021291079885354986881529450231628929073095254976164963221945290878148799954378636108812688961739638143156555807763274573533168081321154685028921641089811720347413784193650163952381145102964770142461229716483078809311605321303670419466091167797881985410002318553242681872380593112137173636318293999331676447865413701738818145010141952148453522287186284316248920295033412572529976290282440946477103356342725830757167113173036693699301291436125557480578009612769280872683538407419386207532468892309076243777453323694266879040709843678962191098424942348172386822122573471864872329736643694696177059322037149771978854263473897117234495034192231222950884461493582881849277316170398199969760583228982075179791034625600654761875085762249244969648504390519453076760650081737648427798783387245086291108934648620286885877129543049201320935307783314115041347829702655487106601351528988566172281507899715852220377943936410231383248176830681339104084045421777775376086612800887821566160412174296667337189658162051011107142874759806940780353978702179486188656378869323144764815390701396810045984832865621311362421088896154543061081954225961303459975327018949600713669224897791347472762669632193216636530967838274288912663538685282792783825004983421710609401121253385047082924263826751508291257470248287806737154644104387786269230789871491558464305706155047184119177383086606683919923207365466827027211522091180002397334980011364491283814403161322612940689168052347686333323195431650644933162540563535234344681745676986769393997933130589142263288842512600810861079556328569641796224780484810030271003952785775860052986875431981253071554699005797913868471281748230395945250719301748122386466636280874195259625415574487951751108324834425574525361410605097765038036696057233712531890509200556565680238245169146713614267879045358389721213755301785546948307393326177328633711291960730158412281876902602429729845189056241092786908829357330941582722612719682801585287913228672579469917855881188973670690146136450188596430903375360249005258859632427492439226703408179050191987435847125566043597819804130850925704243291217051347232559686942410258897434624304762689120301498654448832415531027997621868734321453770178983666240607322177890468059437012617242690217375483842318680629312352193055583790582156898761528937081952772531031483374314471753364062862594583025016634602763265604236358651859352364944320634265628865642175914350835387035822617814368328517822976085900802789029562341435165903932919855881013982057539946169907683343734104297806537738780795648265467153875967082136475832811506561801681872829458200644374861842551738769731951350948364345311255183333222202072438193737707314565368548338191123064153012343697897660901805044605344495064127697575332990345931199232431324881778503928157912603825036622742677996838661736266787092536014384858520512331371316755642551964499909738303558734984625137621523262459866578586037980735616661167388535404822413939730479862951129374785067007252255571966135539620145510983952333466706485299838793880926101587872712078027357066000171936766287628273535592797683883084659494353866226734265727536873882176652252829832911662684444106826711680669862082703696463919706161126529843758040570459527656873831930526879302493949540848432795070944795757670317693210268521416134346385181114161138943891305927708644900650697000585426929706322742981295446180746477127294265959573074080076058247243601278527778648462891147877409292765891495837215893421695079034652543708918677557509854278607402112986513546910967080797149758742398372531859432419810901695075290935147270806123451103573228477352304009317639472896624053049436125710583830086826464886195201178072514992442210249170000073325872404164381784187079700591013611417994503789594797120035169969464168239454406990429724925460523019548059094531019841448238890762375171067411034998725919751973842532741348322064222822818720280890510646865002775572080110374946121209259109232542108675235400236153730289259922605026880883320082906631646397721409486771401515502900953951655477917388142341285414559354027234634245177577066274409474334774334602827934295354778953595878654218160292415650900018973149145746759596942092449501047399366290419100185482642291529179438118438113767141897269557856553066562055691697861329402109447069538775271522034144377741199031441063759355493151968550193646150603414809087215179446377856682844589827595077403214049352117275139422619720746234948369564676846274370696773780835199674817064196858822309307288309714671866935031105919431959161794929409264790885623717725229099206835092618743927535374167336958264386100637999235320514954868832291755703755097214030504129986740880262708752913981257619055584230534680973064116740766614382211345814856140240505810512032860766765005005889345619407451793241384277366629753026285186999570995303309559760984799812534071711282418132877102158567686987821055361778386107620696616496685742082461460299279240275763118845121910624166212910919794783468989521094963004786752573642518838615062029741124158755207787175187357034720711656336760198833581807104912004377339476007620859361764472486285294189677313746202215174225492406796620753814009812763133913175498832478780264804171540398846946337131184911749458513284206487875361878065741881227998811807976412105684251358753925968145174939476307151540012283831598248265049611155897538837475162747225940778164056766293371639883556645523665379568086229470328619226798970389562517943142583337629780855493116668546172191881037655868867087486824529716173011517608569048618020607424969220559869913432797236141385945334219540383265413794148438773614806251060073630860483179486809722096562974468224722926907362363017444121585531918982541280501996363053556602442376568532686982825130650959526246903817466123267553369281012437967727526287388476929344594559718435168440571247728840161815789976601718956094692165122011499754960381442325412542282147148316789472934644419844804248322960898119604053726055120159824298335287400644336673953507010857859163246383258466597828912502757334522381657842693040367770937975733877909892593833417275659643479561382586827732427528482004328212044656213593755499723297928335755057701240535843935140945465394411663243315962434377568987627598311458265141305546809486027283639465380352267522391116804165738669805806970915972721818932197867303254686829237752586535904243964550782569241261009523648933957978495477461171713818578127064811019056320194663523866805364925599362149032030511988760367479243595460293513259482474440328618968368189397369133280540971104367880972244199631646302268463701991788278842660186860212162256702402967139864565901014068624909699470354621187672540916341229486219906495920106584667667657705116418395641270704352203011619963960531468943827356515089239877510901451872750160797949882373347455503593238248659217388282656096904820949136510679970594419456101228126253009738430579317155780812292890480180766974364040009401850579913596429783746309145806803488900160990843979668026520812586650041610045864263226180223196640379825901559327082902884196302447074727864996421055468220197106964655412268699705574780017745859460275162169598583733802244800230200494728228521600864999936779845981350265947123891827148045485818340108699382094504105745256483108915074662642418375579133280570028990242556449975407329947432755810608294578171251820415422607915677332756689977684413360346441005449938689124760728711485409305142082658632355628487152053469596274717422357318527518851423119035807377906144959160873473714559709540914169729255742293414564237503461989711127292159119190626985790171915922145655332819984850413413920136199789840004157048524426429549328126413082633967055660562271895209742001381432387850936238378151293789012381324322384300859431716443354979428059882590792310933201806224539309914313077809236356233895024017056018716657199590258509231596028398227133215992698035763850583571781984651201847092679936917947430687523725653716391715402755794252476563015474598569258618771476337811045975646004840885461085499735429466882603853555940956970077665511319639233908109130167509242839574729569780721699326121891106564684370466045622226692698312798670278482175617939198746638935294875456316910590219179292535627428479050832014142144362897468789372066291358868943750126256822688898178205686774646612201621765398784730443119923178660409366769102766789413839350242934244186896652489186020535184962632567822578359618369689040638001165369403356822650122425502394583134152937072924798788290187342804912353178561765232237931376456126732329178873263757348097786306579565293070065518131743916672954130161470711562646229970763386104098818231139954781794383932275909977258330419980683460589181304200453350902164495953569965537217737184761488431086454032300552033943035308858808685830223965874953521702714511547264087252626696843709876040006898627567407690593240213440995837831414015558355815866937527746752369210437484148083131187254303391117812635883860918525932093638414287192941031545776704248142976166027356128924561482538143229925042569987166635623129293760547401455123539148412597889396232560723967221714101686851364269788991851210683572886982541412402753019170579696662920749705266754508763317051876275839458389271437908350006643057336126363502268223302096782274375867292749731915086059396465071018330811281410366342567024311599751545064469199548099199052980881184980764853304339627756550527486123400427870713808577612021097969726710276778470938982868254940510944099404463935332727648681204774023903513478913954934125747061720601275347286225708818991090301585053238310503152588364973133705429367406579247870825444566645605563319990533286675803947087995676733136853353545699293945211553701611302388839539987768059554322898673413830962053740260387628295018473561809704958144220234517090395226945498984114023085599547343799685597245402928200902692733325157245500344669280369849819426830431842794982204243497250917676395443032958631035578948618311327024984669831653490379852987570691286216888358313399684119136975841246134838107752651789971271178480717509818196313703400096701953360053828280408451210114254803401223037139790901088822021354034952367889728191109636350064290536358398306168093822281515230346000449099527075257178631375188506588880720868658412795903164109145355631518520994292004467657122794752523696176537063137258333004434650688744518411632468707014620805542051720064201378083764346724555163625523306030517491111032173139794606872642649683260701689722485317268722419150112349017269631705872292259148118057103613925530126685134593664173329258282602897382599638595346319035647227781887611418120514522159852424474350200460230406587053890617607886091495060953430677731994218317931324181713692567974423569526012131770334288111081941618686610778483663392100894321276727329460672287208993300558118884279241917867899807779118278687766536040163710306367325779312407156965490448664659154697449797735817673549587801617719727739706579306985526778959592906645921408684648703218610398457671955134146244999103963564009427705973731753090455098483888592052482496128718330216308416830798601892514464918331178363785967467260927079066186349545688879769998775406855671494468139560699604001891333994691210571033579739633573324280145457128050481647827233957915537812136727476065511737728920872866042185827298337405864632422231541134484997370870509025360089176592463225577254747370423219664817361189193668302574252059133066717670675057385190373978143288710153663643809178511676988779346393307088617441114101668276987013702512583538126217300330862794903532786039358946049168813466717295886086059152708525159816844337767710169638195261867693880142617757626858320071749498358858095004945290882705131320844082002150786227043171276828923414064184857469812457708190101705774606808567989498883463927531941129935218133698161774001022473516877075432689220038117195450587437489650996007303106963156581538448776193258041500740245982015522091818444195117251601741540248030159565886713838894857473568744506782098305680090862581519074906255607871988498505269279882204057244154963164353441427154305192340020934882882176051373628445454744950784287876139338061983047772419948894969142414279047315208997021543166812940478603459998395659749832303984339835894683591844368577052955029198473558144388929906645945498573475927459449988526799861448831373154417823650358591613626003540389859803820369801721972937456332823289836821781621230301218396879573584919307628585019323480191180144058732968594904674109398314308777868799383972823346505268064472252149945409094435002695307720475084825867290962140606417534122093786385411961445851440586005287013120982980680375206821161923708198592170202114412662199698428687479059075793748513096121215803114524653188394304575574110762764209722265735614048086361590714260301619378990836331787442778709658394547758477134808427058509954465606584100883508371144225106318942582816403990031012542619452962181916115430018986555506547231341127978379294520218094746753194752083733745035192055247108378812693996649076328315058286338263795169618212178238696682861365101525376091067931639548472116855310976511788954280878590945272942286543229410820806767338105090545104654438149312268818720628596132277910574959309340530995158228151623366060371155459522693693844626808615289678463345168362329742912783052640995338946759184690483604264059044115930412871744262666239567384692104233299734448574217717924426301272586974166557592457717862623472923880299859752899446466535882490107867442533652118488478516060351448065533843857832190819891671311144118028459001428764539330185695453363544694698904047958266984056952485624520810233287800790237496567862992902907701825809266303467559867805492325527188449535016414976967715978317255109865419417936866229640997644243775244518404280123234576835817177665257292505934598339251954739092336446124373954146240024204385302070428735073740806048595139931989199744018287885369765572544666995947041973074529069435630350715237654063647279702160737757984695790282869862644802260834849118093326807576264566764524751696296617422839835891632143940603971163740646844883650144626187594302183610970428499525468596865209499320104521048960836378889223824327673871893569992338643881918969593253507220763779409652395161863683502751512687392074446640777544657801808961979708811549956022981810112325695344137349844221866409584901178561551615331464560168553179937906578480924421637948251067729512556228935087681162545517355751790522560414489254847470236749013840686464724544847280196056172959783545490387253750493550433815005344263890084555760946551356769066113291028758675505031285043911304972686364894195078730869381054339272640447097696093157718484171407955270743300368683571134054001228072115520968557750028227850393014418356340206636263298004263388015188393895329619733744774533110297069110538014587693302946401259536102078458108751985270850383127295332609474721806066880979696236971034584264658985103301698278610446109425626872975642447594175487645462960092792942810999378655732329225149979776121619110502524532306860887815481609638252564199601329730834564327213496868185296332137088025343163483058218139798083880852564695838486400514249795354555048887107058679255836257670885947311072771522239824471590396062990112364254079812435376443198695197801621757809724385145510656480850360883630973702890961286192536229845771293073965702221682249469549982099981929822607780846175747127872615386237516699792752318438822743547971506619779704850883177420414157485117631852801691465842939426310675569305429699289498217938546798700780672561286997337651900158187127688749979337737291515665223615199681835258888557399813629315996404312962702263214846745152992419056957043225851531852875471486592878924516209393685445914908801723351729725716100827749301072296097170467289196834997552661669378445401695869306529835215499351034484072467726468671904465899827266926012075966441690268219625135166688712004381776886328345823835992272194942706092215246211334140542629126158243873060198515744488392555094552421800479381729632838053598183747809720456200041556917669458030815321069629726362349303701034262874806171497543565075883816859022927550930919845363647651743781452097338973115681750527020010370805938690231061074256659512407863156588616082515074131541809057826664576409402645864695235590382815588471128937257650021092969660160529781299304700656297648281325332007928608150011202909755173148364188134350159390282504658678348754733887234677823374459697037641714740295722465644563856658533807179784787039618032375643704837294542751988275376584263230180152198588510673081978681018308222205575757645732027561422983091055307354594580887954327908052383682728248884411527597225608553698593389067540555458610420705702048403198125272986358830699468165623266958481838319210772386451688235312662608376932067788828717166926650475751657837635628054007441564583870622650149846956671332577388052540341709943355320613223422234351481238602005280189195512350906275394637389369004500100521637704360796206602148092799370554766269903077459529386439547017058963001421915695928906896157896761252216374587857407096176735749333377254430428814052639227700853570741145158567840849112273183244158728224215021782809141448791870914747410376003124615857565769818484605600484834039497210269532499895418553447318170033443994620825744693230877668614495217340951304046845924350040125827256155921808862104835861730656110441133971302723362161211483690189562419064294737055451098235700837024377830442915187834049172198097114499342183859196892841114589570665455914282399858758099999475909476830991057292255016802269692041394242221234355542299004351491617644409766665766955336950456528729370824983298994990308818246983549950968500055368552258702157103043927345892614864657356279448552640967923254679221127631728235529386303835414454862282730535885886797237426680075005156539379557248796010595265583678539366782772662026583667467667521988122182998341304120565667131707605724223248803684525661905884556374604657810721550428276174489270140018199966523276251899140967779382701573493731935881603302341480411587881042959060234887253492849781414889077831305295368243426660100169377282162027256516272398681380780460406166840925600231349419769273666916978993084660489347715784384765616698545914319545036662736094122279798341331674260775570062181272401888090242186139789821218093462809121836899297017135075205426138283295184571155623217348727220451315197098133186002997782569932864287046964868416310338797621576930310795214785296970739107705191834072403790405217428775092728942382790252158091336512270170683836447216052975341055997801585774304756055011234377532790723078358812895097814521271773307155078581817835002642919306654460319299266206394336632561845183842823153383776485161218518627725852535917204438021940785347684891372566768071628902170688796978125222861268346174598432225576904202067606270826329224655929659846144616506643503455362601659606610882014343180412769627499525747647544325692932789375452979642850107655814089159625064640309049515358756874045646468204573186726116267278489253416470984080271604495285022315322883645162233091566958116438711757484016196540341415404526304355915323478812679969288369073446770272847204132458155554628697117471296691720724486577147096533564335007447529052857152479710096099340250085125272998520963926567079400240875899074384423876557384016044019445874324977682621474867354131182517277578486659955141358209764113612308667177400767241814304405012099487601861881651077079021469914867449467027977233900594916825954073464684879081781370774050025642291069909184068041524807411230040021917068234142442047070628326745830332875685191864377067015329896128088429006172370722757245093670270440591515676592647866878093788015171701817499473894108110175426201036428211758035271175636559643738160739317210713092982024699068824857729233790795403068840152707677691187072867434721287545065741727810577621350098593437425589411772728758140324047411198805222321270176550123732820369394624869057645841362324641730518848554882642199841999311073462229329059622464352984768334585783176263895007955620767397672361728596170881385653193785144137868305117099642218924366009411620297665552606852786717479698900955021122250334199712854032812190410861647162615038978956452762582822594202863888227458132424252250200903559543027710559521455130441965073980019529221860949799524056525854632829468048850909274913586377050125620293522746251932481285566192186604707337851012798930379040722114714586659165659496971515951004619682618770604393249308923218654588572481586826303928962627166343124843049734869472528325936798487019674418530428442015400004976383532936010268379529360470398063134882269050384096461841984455597970288577422640735332597782968346968581030295252844954692165443057599147580372771443072253076065024796402550529077317361352473539519520222880399993238949677911341972125944912998661935564028797840413970819819144458044269157223125810585642633688410716132017776081355685888636719613830278287230702613954845989755833637348118294328073721581634842038545171030823964063151462845825734635934293471131862259229056361920419250321110983743730972047596224226899779310662541710614938054524544159885814490678816945364813815239210047059738490142043187832878131415298787536592975738528570356373107239094682800767538985505870728149262591875915517108441724821022916899602849030559793455025583658036338947174569840164269789935685041490291313673656530592611022992366894148548398016764345646152825332287056119459981071536844728182790174794979852722721511223343947389858029543879368156066768662314733087669863928454624391111224623395239046168176888568913763626014151422354822097491493513987165544805833803046886395189010647337611196608961042500328025757256625162656050638712824393973503586860999365602809888969560539247412350194031945434453148710908970399121930404815160763013561659901141418866597856815533690775439655545067341675003733417472652684577926801575238135727962664765599226865080381581628766538312476022600232717807998493124514270247022324421245751066115989094797174000612152084444107614795342449137622378572833002991375151845160172571621737818566787282408572674091248328191833641183556396783977564878524828380088546197678369071576310446417952694688122415303159236927202828905103813403183854409996552171266799466918204007617895608188450644240576174003797379951053173192636610817363917607789139153901266648182726656708190172012291157958782437166986871560021756498901126043135472896373997485615468727128697991001494000505963612174847339376686160182840934456987463477544151503500776896257030440859238768060498882687086974656063857209586872122908836473411125005862387927017067200518532450813207679063103804848748358101003054222030415625309498072096298389342856271557682533975516823159627268922161916526959686767601869988867191328850057089919482243962135028427458750933221336870590646467416525243728181720897258578817314716786902855993943698195800769078644769858659531849406745981020370671640357962020041187302847990261643043131687975339602713496720596769863922628125928236593182090772457087807744789520713668842906950886411178279721339003868607077935490407489505770071740513151050349129910720515618313019544788666268072328402937804727265232907621106670420272540607704049194344909222465709036210717267356431914930717382828157200738966896535957963769307823608258523493144411464199435867512167802110363262627770171936288865171036392676153376965613587661234780446284770954568166966619174877021847363704673553509989651249964357018324197322805722597724550984597164897026550480335498260889562300617942336733890459487163278228492050986918517747415160208769508771862063109157737944106000891682156551458523150677232546617591224481476800046709859655131771851307399958703723964670229634049042946996234797234268142016483694478983141081879390935422075810862513160112414767561639859628389242141633439940434798012627937461058172779663214672750420107254282636245438016387035922150639050860748306467176935754664686478475760271632340494390872686897474121389791916314673204421701296919779103618795302359494285372868757326874928043614463195754061152385265202783027175320373598129909298463418572166008315694584045609969307576717575906397155980945598479186576996384914601401295291557937778443076017614207684731399737248228903213610925420549585047843786861870261366557672775143823471054187423049504524372112402437854543938447793146981905884712596885639757784618236854974122050737016479608014000221350585695800420620411660120129202853417862098666841790861345824482090873200761223033779466108258046600019205083633083797047791627382286055543864972587616749482838784471957624660264460615911981613754802972994188670972559463585315988824222046625440996064655130248098405107623732242869389190612731871881638787670106266977459555526188574507689361279178036412319511740943817197664861658415488833622788340593529791919751422231036329155087118639297725670529387089249748400221195690435595417397721816313361996182435058118271121100004840755679277448329597237715366299657599540436938448640702900326824972253407870894412385743834001247826144103613934122400891857866729020891805440406059160259773232239610662773542888226013169637136542726042087087811131528009849934493562409464265143650329132711188511367838156228959681581271275005437695547622710495824764146625208788884511119735718689908675608206227846356981472936615561344375295114171579723997544267867737064877284992179339733231899419067700999016011693578995887909595654562517412625609759178446257007349362593093074405619357328277917318475157764777753809078180971237408662596946288625188850508673063698437211856027152272009018342089667440061890189358220972635545626600593521531440564247111169855990833419617966216220002176577759587114343520850094073147793209425940714092798010312863207296406864643126709840405749213895897317968930309976332973687734630273243324914624130417648804863517694651055885477086427560938049229868052526444387498134168295726602778298810311439823168555974381621095858824394519295980107186424822342865708012153732014144149467867589397055921166886232920296822287274002620793887373202074516842894491483131674568240191883249586297632324455196819893068579927696795259383136204573424033622104299671167866366354663219998766875699721746573057974942411284734891377641811291085644852022059193553093109247548773955066322614710850076002252896924551219791479142482955105137981475478222897992847168725626683331279855280875352704071555597401559854844090278542508723022192609894974966181182371340576916624099890386107105059141262232207716535780123309956678337918167958014564729841266050076737779616304263703169330139619677962367672853492550460209328402558448466570823932600849609322238130486983145372355371853236007294555621816996820161214355424991456591843239362627162922658400345489964764783167056841887469938587549377116458057837476792502810995566397974265811783501432515208947335846055172764798308241095416442824174908716376306651198622715124548780866355080065321478968640517561573273697106525256957699301606960086102280715193002282437618862468033305718151748955900983021828629979015679019585353191081872043224630505156431791392254898812394137627058637500350464542816120778240878428329148333739528458238183903778549734025725116362469217115442035295277593945363622707444835100454239177253385504321894423967703095962421848095413803059104965083908691577444536785411824875435958241198529921338149445334758771256367948747180896541926639820685482522647780505521681648050941085270136678530689680892911068426132781147357183184006245863254023868051699015355036897245129002698170756129172381860242566984284236912760152689050386652503435520591776953181789870472585549792420714670765617284229859304404347324483551267613020839478577241040045089767026075918662513969142937059352483879112686129397505732488018377211412178804661877684008431973207690036562580426727831178761003624656406167939572440840438239324847337931089834280232465358886413272325133111678110112436705209380992002093732056289556896787959007662175989480146247867904238388898329749953882976001422531014227443607334464831992210416062374280791502931957119151675282827929298730206484166790051009522396544733308391161643143772117357547067249245038105861587937588544570838927560958663330295227060506713557329849975852968712387290491425451950734141399457115158298295701618505524659426463134028875252623074681987367777029540139784425903387615366918396512127025296220719661471373516272286551519200313641629051480822547099346389368635142159958103507463198367343297193640606593944261207759297251301556562131503736215261569198667311635884690553066624351710812116045923128378500277449191784204470064169883851507862202645612401782402725655948648791313829246892380032296811074822753534991560640940301600228603270941812620908696950079382197939242328684321200179623486044777997734747450298796527614627142929346185539078467568624025503391733350683649490705294002007309373359076966934357364666358304211468244652810011979236502733340144433875499657139887375758764569540153912180318844758546745233857906496362512030282992498203820068999222521744753181259733422521761915375611096503997875598441204854698709734428989218987878300263324248318001219760626128073341793801609005691674060830249052600435958414405128705322172168148077078760370974624917188549396307016866258382112718322466311735084823624027845114421789007440384565051550726722414702121158926790275800033789812811103570267026807654164650068033536075894675068065566564390370715671979775477623135865729511837475281981055225632599966285627094327686054178701685880046303993899214395767756687562941170285477326662537714113439808345964364959952364086638934458962778480607341574939669067069428540070853605120354390516396397594728746676396828633336112645894944052966556969651390656433157665940172374905194472763436180538052460543735938486748821306749143103625712477042465308971981447489360384002393034765924690701035716702667320623549532162740383976620930574032628778201445098359516685573331121091566933152902292428356588271264887923080069265380570105235202878977565997376006180361621530837066102736993349995849838360616792215941561276898689543051266455697414513039140381289612250874179977875345305117212467539961198934682637378623715488502693637663248228779183970646297453199248417875700266714930335126786450698284084098687342634319329954271388074288180484818311849835095386815050836097633579842678651882992978179649332244230859164718860276733248986024739791314164260512359372777697837100580687213824384175110272617204823077340628794281510079562710108804696972454644013820852250760597311639109682649467804058201556182521313741787109519167426588728028112550354560080965710738197224560291404766827121744181059073685370464280577413855037011642214000724761005194029137660421988486385529756339115676970182958249653201415997788948862173027127736314500117012391763363934526653819687672123184345865631227336902853970407594651502808535904326603074593052387620105421523779353850587114247792912502312074454734690265126278125160377680805062047046571889080256373317441394063857414713201920542244061012756471701738709407963250633572276230279903038547237215537689181155077500446286864069916516847195604753658850944154472943694973336221331337116308792587667635978758876455806098345706546689146112029641896179315107267233770857647471449140082746859198498753059969679793946041369894230523306352597511909588705988366022327153744823356336029950772412438573322581431143561319117706705619921882067956626050784373900187846282380270550656672304876562915165959685981962404881953200199942101956331153639279772308940566116257125141756540378286444666641074742171793307620337001012091762171251982673139266032545332910881977060945251155892095287302828847343228045659768787734040353626995662631900191106313120532509830090697460838961474613675157032441103489035259003775480508136867837141842351880772052084791696386693089154508169438717130341333255078218567539047147001105986813793009676685061638708257929873749502924275768467425713037936199688725181766574874879445806882531923843584262841209382945353439927957402865227215183642603469933054312950650875481787458918963652192485825423257815197584276305266440847813527175208663447431310506782552614401291761678013534589984477590542248906957119406750723317485100450182619455327757844721377171293929769154813007665811190598681693518172344216050610634656658509483722740556800637965752599922830251228453396241034758313497343135486872869105962374772872773947682239995805589662590351695673838559502642569538190077502172927081682158196213350287075025569784882654349849133056764748126642000314889096168753493079495841828306083633706648460941247138260939385434450221199785305399414290230525160679124894191282863524189420647744579001904600691264427040906341011602998614536698156945102077019340830857536629503614588550111957484514040237074690182913579914639712707932618834517217678347354740805060018794284600123082064800892349494587165326936843251393487691569326930212345776087771165444736902604441478460986037342438969729558757508295514861032356202621091606288497159981503728431379468491748169830557810765057339594574258911035190246584995464908353876480896070813096604770659151726919803076982413230988245454739004438314764039618400663018698049750497003677813471833363190074805103808198708108069858024202263003494854095256302655708409652339085836722435490088495098026649870981573025574524099340825719307661378627157991180813322249046316548602486573234987147536110382025827295258734254003340776011116496467765216631088654638978721864014939972575123539832749826720881720679963859723988432510838695995658078855193740798256541319377383866867616668482358877814510821970652819287592746772759009279044612384449588738565778418966857812252235447913509178885390180976560612969528828984238551734210373980719359798926426422418093215733565598854096926246045561513000016593290157264314808234330113197081705438802158375847361806500671505061596387319295870800009925262221471775715724606238486785531848183451538956829253775874832923399571444338807910703149248536994023765870464366265161857531520473208774532438332584513504446249850196576580879038946471039278388624257011585142360304465683522197514969898324904867773235029257547341678267606927507964339065790962231686196484194276335746291727304095126915762097568277831676518795025301595404108298392692416491010038133054771603677256316069720852204443448322230500149596100130552259246910485447783448305334791635150339258916918845283677751195047657859298506414304109079451826871284235486348652105628426404960080505002389330509755895446787097399113793600428458053565539946228477286396043365390201363311112627104866598471460419584988331774343400898569017217384913070099045460649248056905159813723793822971659547166999965422441995280036039474689706724075024229915200002658173595267244241874472619674734028247325533870729639130600499625420541105754373381939716625203276004045914205795376259412591322131164284901105831637691500089102044835897023938049482451651528746115638479629671642711479803639218330314825105253697586452102147844543629476250880236851310291492610044135734951497425787676672356899688770636039004269341656719517604230628949039826180092287400753851549998251197419571576007494703157028103979933637368907279440193721323270187412137949349437231210744091709214466037744466790008435828524841245626564569681283482116894479988628162212394239338028225643903868504927767408487977824998876613712471876529713444822629255037642213856907233986370634231570023103999797300735265052970391379504112701726698850343804895263783275983137604070289501885073395643797232602213536173234713653326083433997778571779102261392610209201835364507779329032050105710726427865457957345687429853737798476627262991619687145635452537284612501813958846014589491123749778628263285500500725746517667080631549052964093169169106399058455651681583831263939003854555211824571071965807875664770130645015493568571251810702928784914499313776465081099719257741729867787609469390659442462678011264844646105398171645556626623657598653484587871501717301836097323841586205035154937295174493346928752447320342220084508170761348449641246418083673930675964087756235351944134381600676205850644833124536366761965737312763638691296949588096888168267636383722329582572288556600591940415741653493068337759785331785284517669001113561924416604952698978597032963539760842469863286888845533202932820035316340268403303274907212823533600403147898599378403487516393503835323543057300694942427391923080044227235451501440082268827479457493711727178677723292004599160651034785295203514632536321494681172082368304132636042016203048443649846517884548456197023021234155523007455139661497134753931348445963046532132875273677034347290524127269736235466415082007361888376751415495484313591441827583199059507703751191253040150219680057149577315388500942889743784244794973343936270505070303910674721064305740342008271509013733046775350239375264818534588401589863059828528963158087371553580673459128342680299454416825740308093199998421984448368333127542463696323098194016231599923184065706821167233232015068502562401203628027345506321833042188777640563172123691325640469864730799884954340097951791969664067130933493148177572747994090036185866290250008327975323054004247426243143071615764731154211900729581212873894121704786381392504965944482739867611047910377147298347719192093668946668418984530917200237743944067312703796172534216052926135135855352920828175783286307449218730675877325054832340378832952684949816745046268938689105108572394727879022974238917947334744179995687351746337841802696180385103927453029708670992991289944962176282667226120537815955526130067166172654419573006147866799858178563210564845134586109281956228424678207261627482594326427750320806741704463463710548163066937888095266918906389718921177176377378334839574869358216194283825777406279436064213328815003642546747891765573928370984487134173655053962223481876368150288069364294763284404557524981229777195640610266149095341701131219992967242068015551180408181405388662478131265597914252317247885729272735811089041140349516035913453990091316572732759433419433276336320728993282246729277485895042389126808373636482490423948094638743066587252464904828499364243133828196102113812269395580570510271390720330165493984272557399246753082528072324259436734098607989792193396101054719242006340387379246426362384703087620265442326366671099478375510395922959853437999767316838126779684474248209553995653251607964993887162834033274300642075136457343561271772138333159640482810519990634017021515168208402700554872129223511199789849509495416491947263484969828647389078218075804011973384399129714643802814039169309425308612730160682782938089027541778647742448186044504082425966675773575139666008985882169820770259128755921879700784980321666277245421546004839375108163944445933075203253504873406418656994805459981117731053739180427922450789856125237641363711129972240003280916938891920162616274840442825524747080796620627053283344128446564282439042968048682332456773854082004563589877427371818934482055790467825110336664324048279322459190739422041516073520782842544484717265496748008425580391237710248223275594620988052358107607180747307291150302886925846949146829364258484907911271684392847881525695717011381623339490168711912273732702077017653746121842017015585751936193691011893931699444316172397074357442055501610407221634469588368344376356362270585666200431107437896029292983347798917531354837510944209345103999702256101315755772778985389098339944862383410065452784016623447448402893538188731512476755938904059483964305323193090616493015727892819024192317661034156355365396213358471043721137583261129399545727382569111383074573034766622760717028344504070756089216974614730543969897102327291344251904580998598118626046006119999771951806333119947412097519706570580801519755575088799098889339406472765268483132942604633598614472758303340230775012724790811894649390082188080508351087470031767587283143434389014970740764058065306340799540961077823592726685776870322984049254481072888597138173207970408246265547866679989369088513662018470992319543263799922450862749796040417691215281174123322771953177561198583979238857080754987082461137661800500843758660571069368567629526120928478754662007516990319929507194217236654868080430236072478881954433040816428437849776979514109585364103249716850437250514814428151373439351989047538546514628140577232020313173272838316358949941629139361915082718073821532857656393393269102689603240801879710935844657981734915449317403790335543698724756003555347644601245348401739974643909449922984743477994459617730763208124577883246643744764812298271073520332273397758780947541445257970488207449496838516253674356063085694863811275872183663870071438116993901497346852993020255154194886734963151159890937322073994366444467875064972301103032227330126465516015461319209671308683820018999433968782630701772257971181563716695568188518190013995575745686549946139622568879151614026261087682226888844580707427298836883373696536173473152943862833571664110209627873089610898204150332042432348307851678779982366491440717628463427314780125045515006429205256664591649442012285879688648348780260412241929373779893101700117407466833934658674689268151980513814844043797155687912151547685220962163512546583619703013427687838501177982313924666387561698387626076810575165328693209981422084853799739123776877097043542180770710194294105664070474161383122829756857434125472251155607460201147688465025694235114193919940473233226342100443218776831744572744681191302138654372356856876162519354929260057876023720928180139610382629868651054366580303416402959629471584561497825186429591972078786471800848677287671402240419772168223020917775950279214222302156055381638812931341044998370027137003401037593152022624841546549013177652326783434927620332571871358097652314330165351332055909535331002614849080813594393133034162490272720402946179429921009337356780629517253238219944781499965554737312219181931968491580428458758761290269190420737302207791708678069817279736118249102370306275839816406099891771189120071017743900677912463684929406781999110040562801265380791508098008433076620906649409447499412095518983646496493072303792619819138129938190698901719800099991265166765549984514765126180827720462637166529555843569213142197483394777083028996138145218716942454054259339807882864054253566296662395738815288761571004337039797337672414731743477243877713274454579302834857149333189322536953612542698688585491567398855892107195469793449511529030721452703908230082768353127640148112167913877917902025999399733216985850675422497479532465953901941520408863092655653098627712365906769125292307247896005339579236164855862311198623801234561487104698427361786299916817036410519717755884167423706548661716625882233595778835396966346504387759795195524314623816280431851838630642272220110671646006150877817204361243660001598170549759818121706747484377957101195822506187571535901560522260760981591036348440778628246421902569599432640914357310561910153615620332709520515501040282656209639101459813693267088992575556831549691846817844794281085545588401723784519379649895813333065364908726227634807675584650017048668444942298926341799910662172842730692018596836456919861171329949260999576208868022130346806443884520219656836571784622829047532128533771737080834541774547125990206529705942194893729492219003857326323721862792562899237827901094514986200794213104891917365382058359881816857047458173582397629123720906721368263786799857520794605728878240039156419338861438072815049222239979159875212989526108946522370133472022467692241861383156460659993996711536582567369144768068637292848517011900222624149317034361678899813731134952993019046163424633857117839525192734056570780066338793608290327853475435571802875603240955728615199482535868485146953763476515444309233981726558930040081144466883704580506651410480636821659654759975978303138659051326944282372321456733386260031506901729690430173505559324578166602737489628314497509533539873036333248470877183805960161597884050263929972742683677868456302060475318125551406855955328383224304306701023085266760422550749393663500852841121375534617459359950539801390276550241376241532337107095963937297708648663498843187551462821834789175755301798015314558468076165834512511538436110636393094548533266887889170505707002472284219554531897681669564122628902907725154837265358924746966488459446601044843652725819544474844836472149279078627313601876817999177992429568983102635033469223912799593560190829572972032546712513616085040510753754209256730648534986285983052096492722119152766358177203305821695478013404159745702185843462544261965812097754721928761246982513594058766009320396219421320836808153701571549232029545175458760266084069314144011034333687027941841639052762774229835673764384149027691966341602907940898726047839794794645429491860123614911959997036209289137571778905075006420506700455619359326812174832577418755030197428142751343564209429258224296472411019233712045301256172325502110841294557427341929990338566140198887712758516533154693605950844191448171568761549202292081141903603708187215120158232527864577921585504031279997383278437010210672614647536122623989935632814373406202547301122532079060903480433033823095710625756429430291086530203470185243957519228750248974683087199468327624867653704096578259169633898427085665397953223536085759024549825385999109699190869618884482923907616995035728219824322995169388885239261634192827305762601292992884886476531926078731864152155128488443926457627494181714601678159831911113307197797306346833908298369727551845000961827466311659421689796844202259286843237613427948370171760530207093302171323066341291368571134244020083045802742417218563712958494687467732119617053700626940259664272124037474033627137879437964926371198304580598402627452667146496747098297108740061983460079389165830992423117188287636785422419305399967248040053232685977788550475637438797241225237008843489443622077615262604298986771115410612168830946557659253993806876343895814082816169547622063368443251468252554113009764216442757634062849177402853599714745049155637537037764688367428368122754267484896572654835112633833676025071084750907241822472217481851412020756539280510330964928307286056584077942280126260538456472801381388332385502354884770185097102469258735608371001730453496187492124114983630695480851561461381204497102021261124917929486669782605605638856062335536980705650989885791778583145232140862635782478520840796885151466376464457685807520953535507938471027184074817368944088823690478265038137320583601709662561337719861698413986468055765461010726050038448596553971871027011754360987983871659371974024289413449435417983247409729802671743846349360195178601511515463501753521545677039722813685636719068602702563253323915523588940858369508969995238100836922688585546339755114176174545965615688590562146447619115213504090745210651622457643002183367714483893976188395000910834601542449555871834171798284680264221023057442674923067682558158195856784932716115027150892687544165250406293596817419730650697730734641042562921328797835116662843781218621008832149228547343187569194045256341522813741270068543878930635011669786394922865139374016044908208074252563852789588853052318306746290894949592382637074192661857455636329136941729096330729602485733636515371843690555111660176710492998106322323702054900996152682058011096528109819353060315385318533689568084006126585626534347261197331807526312676858182878170313135551021771210414035165835006582793598726071547262413504197767976028572539330477620671925683320899645989498227471103629120471528086302061954502631656432318390905331089935914877622952140334315093618123334098693448844279200875792830067972873676354038587533976630456610629801387860615592525169753078779787826277474674708020245847506664272887665875838698542396108494027738423511576068612462212285202103627904653610433750930373531468922021678782954329000793512565077364958396747633036591410725074712751128629116630857389517984830414351092241689875531111395995280057937800380984529685095306198200949606864523167123250092225023010150831483323978386598570548803965631887216440771497272233097797947358108591728967172056810428433472211491001685414295712035646114856771089678539674617563566980569890251424278828752209016372147343124693433202907502505979116488672408606317708669976891535957194011888706450557105081676016750681306209696257219587021398616516032694698467877494104356580439356342966991470532218178572936142454668789359033561175537635360910544197078690973861702774408463093744027746274644149620223362116346295076188963630337193004024984198262527687618223635009543883029617491477584177569664953850009600185355820142592386090917848449049644387936648242141061922850711569609259921824738945078297625273861122161022210405708216481974397756576189674429593231663293599616863722458544343453716920663192309189741863420596185529486649640929564331992967833281583107726732094189215864742144683823789511841811542802601437520556860819083250138932249204185260990628749729678823996812716548724663773370952605635754263339637344495084115658726990575327687904989923348437945161867376569848689935144651501366782550303410879319047953357911798462458866319048755149727545042988595183572635119920670285636841117552566105770656954397729840899664536190891641064451802307917847732897904137589105465792645494930934734512094858792359220005898214918253345209208596710449859958164308832304544102470800967407086405773254698336174085673975307117334345490352708984230484288907163375144884571917433211174994497959139297330373336483089621213808992672984641213357126809670794570572486779449657799005773408000900847309850263254407024410429979897830806021524377159038674651163329688683244740721852532664274489954836070633281079666794123833422913716149812177500018672755982136293810452741902750243855914517706281426431904866950197840611396052021169132013011749444804176306186818453767564002653390676868256415390199258310165375926968840263700025118810882584958181226758935714957986552452146326897086283728111517631795901693975026733905090636468508459413383360900736425830063142191330255769566301691466842027659853676523615226835463341079520678420986916070517115858097341314246176509556634911617969107539311617492240696427791134605309091303973610175848674256126181536984880570212826438308193361632169682035505413251515163645956764900253349059690140181145684628510236420957493553062309972053963024533177412631516865397992735782769822286262349512612399797294101710194297658148674182325919343813398640696350138771919472007073221869517367812319949782729318377217890502125603357500995674872451675924258800545964451243144409596260085823085235831334618146452712959322078421867034850937650302364600480485730364176071129458730839680567584980025452870671932246080464249634474900676207552265041636320081763514508803737161297684049662189835596917187997480966921812556068280355263628705879113075905592480255239176267941928779524425637894763640691425329464911863182261133954062195570491433383177639404281195033755315990568632937546391810134025066033707653147500337754099174052966473266652258113766389273587493975852618485349023567464216306420976173616629738230336080614898232202042761613514120291620284999929090161864319095219861174910037747544536950113361022085622374486855787871655256906276336262067697666521456882332714232973208340596137728881168722715000045221422558899736125144133871162362098286975357163088088633764144647709894707409789585688772778171026416978052777594769986871886860973610151363693306095879796253526440857484155059119296929695011218609824352501909621786837540905177347219938973972419420884202541731180859345578979612865882058532311117740308896591308767522551608963517084257496221339021019423483272538276040741429315288718580520354617371555239841576745515757568566254984161014849716720601919263619110978845684469318834629595395161279717532247014851873956534195979438995704982911995963306141652830798005869045165493768732395270958991537193820756801105571605337847335936436277450900662639592849974023603444673758857473398848480222967889870996640114881918422465597327456953719081711383345756654627564590419211806651968396991024233198890374322829982167630855380346673282331303458179788359305690411964399076476757115378093389622631210018624580481683008943186747543977875014084266836870549429931007875122666788728588322392504688623903045561563448122977805124171848916811092986305445542367947098942814273525971092911225817408982880622620650726572370807508357633959060449714217677572844708989569631561383822688137888560472583593173524201245975213207918969979374682621083620428631198221729218005359108015327051061308273298074810171646586676500123410274238592999309495675339195531953566909234831876307856483610076002051859587510652583040779205378028035680046417549323887317738287527982191248854926950144970090249764591892132516881344119182275628057990006748744187483437779472469546002414939627813679327740742171699204828647824340613290132186202452563623747323472089022946906522424724211611208079919682478551703888142340675717107060718733915720088978430410854268048196404002708388127618405242937900095250173165010747471118366402654908564769825422383700983295256881309558637260469341788908284582295396373102368180463278495661098300620692546450705955881719554924201367856303367712946885638342824029968579243932056606324818502165586950586604890493784518137895060421537540117632958564314387506823470930132112021916932320821391407419490449374443369880888777029865228384236432104921921138227567599733782289405821890024737513208492952438633838780049949237186624156641510517951641018058997848691179932513279065135552452091553736736796480354499217992843521368185988793755118656557425994099590693858509830892069013882920411833316731702239843803538833480232926415561551552802353876159435889823815424020277368923824594213386231894939286425486458611032714519955742524432811510790379802423070733151335432798799462394620383591337923993251131432357195443851879368941058552558308798935769205935240355385394462321703528784360683320271859224181836750456934966023702704590812293492568022538557059189630995535824506370170048334693441981760625555190160777811873392553850799419815187560755170711423046333403676733047152429836953251539104909445917354234805110172895094134202501754859474395770845859365998492935118506435865427491211728531208728801754478555283819510563312937853927692865136670557812980228544132106981958932877057580970490308965171404142539801965531611512287979730754530737825062648983302332480221642278469846412775972748721957656317192136481318298506905701225530767876417973313461872009792697277788848634460590492171725198404942882225957153643063907513140089974565715939166717455326489473957444073767515038423151609274231007174609564727057846230329073686413300284215734252974614358351172608983457863845995951151212926994671927135708821186385635649479377402369900937333929305553020728201265023485217702786136082558756199874886299807019335952340748856435374819843091899667267265702674981599559835606231086467869683487855198265954928061670500093853587249451594249728037248580368964166248105816527618389290284360623135419690216489756263594607270441532432516771938704335257939763324516317022970341235555518135492705610509985476550487462998899342462273628616603263524899804877841842029372726559906770211575664379064026799681891858035195363316579842467733598364349984311416969147070667259449981626727922295405626222373925174555119315467416289986111982441099791544405457626167563212095533856939878115717609892469384342504724092088033464429570953616654702545582508366444632821499676389367700034329503842873816895872651529661238579602324047307683963714867834542657925476338844162991359638996207217741099995048302029545687705979197459614293531170465729563573482801707404651677761014169647768905547318849026573117299304032650917540647733028692770387604564000481123020755541842119393925692400909018981833859228575244845902338476538235277794122600076365295223809547441566791511643210769187738831665710505785897531580208702475900301627278362775790184407528928563288606003582289144585413363579778386745511683261951401276785264649955049081356411781344523883978040691309099383310125693346131312260065372501910027353991192898740014341420972666914604058198831233983808312396000132082960244795994958248646903235473724018060487862887575608156236322300037601720786686192002054661751408040201390666078524831377813920520946865972035142730446844266388247636558210784475500621513829277016687983822191293848788846497595384032486482508393755190968558979570603271180099953059286523300332430626740013398548696867105385030945561690801483369029297351310917521134361974414189238834311227710627972838551872728940633910720565681852348791797117280027293901125075014268746832888775860993954378821506998158447259187045392403794890813849669354494681564535146216539397560108063440221568391888840416251046408878143243609746474956586422995935898273237463225855208900650754995892814879360505229735224218319278542479124387761327013092037778715266408037039589935614192299791028975915308777982906824691729113853509170167803966265636313709842498239595953073513510753968746185523578188015673139711219822668924351794574038134669459795178911470632910070560187014479374539986178847415432436431218992203423727624368843815023258985554054227122008146330082304161278521524744788615619249763196412297672484821989919786541068038136756863258631605538895194806363383485332966898481227395501845632047767512953741818784575587205021936850175294504474583577377135077684020792381464540890769857937734211016685299513682188837885472488721877793221694549641898773830055670816007630352409032807744103070214107824181335987345610323912105189757406829410079368618122615951610127602466412995490146259892659452744003264028635629530422185922485368379051772208572375168150449604515467365662305505394486365543782901183543633461095462516114607298843946526453060286092388785505566922513047730043174320321083241414618724108377132087352522483937910960882166576397887078911336234300884504460177778241361590250982877509148604325872221061599922282782857595104016101633646116841088136751810962484696802900084255352737086732743340707011867715286540083876178572202614982324697047380405168192809257053775804111855631187844439040175693473201279321026856347403109383082722646115398985497793086813384565472796621913178866998732024060928434893737933228011116359112672893023490024640953358257622305165180876912174058635439103337367347727805575705103165319232304797641769649783651115373169184733026993779023084125346947806406386935200685425706769488216743002681585694004665913245655196490971229808711541898116417150303395935095711406643383393231917770969613592539595468686119982141623565513299635057012296776572225439624119995907101243145997183567865472950255402966911916129453305640971992374977380994951057463153086555896572612484708708867266951938533253992728903156087163301642284511521746312981445853638563745451271089146341956318275907791705530835177479566374450144631904951491267259841702419614730666410729897911342830923277945866768354364127854931575984558119772663644036772460912061998798708263148189788516005228405405595846743077519780968922823759030022770102202181151539276838377465508282529654442336199920798911780869835429506414787113094408082001731723256687119442824983212769981325876661089930866695744924523046263381365918198081200678197060654701251761417309716357090985419176573612206213196232298067565027409036601817045003060823986321384797707079373719917677518262917629520684475634591481163497714342471507172171502947523587133002580829730221719702841914685153639744374463615125168799900460560464391482022020513062358865524264114473326183822802910750391616663769892772088860228230639301331412578759080705962289564844946075930541765566921190088174936841750797090180663374082961473317644035222709778311946964740209636668443977682568435185673337027132571141496031881485797561665974132003239537745958464480846586479617748102719527492252350404345799687579670971347253534902406807317029287471876050681104564610463261397784804717257436152240218957506393318716587724205399987841338595873343382238345066893494059083098739237433132473823709114237199262388565136737716071346350173434236228875669908496431913106021101590235387258580540815016193214272910286568459529153249014592022838512875271534650996221415762784879823206275470819220759410121023140562802699855275848101413910123457367711503480778960768997181683400392814005091923111017613546062208245084953361785938356900810259883674719065456199527909642801486947875869183984081200059388593006533816126144754586311288469223370491252165276717560922209335918778926642795420990596756976012133828509795806396993192779456493622555256960963814319813861483375551807145635281147648223938558238123814092050995738851776004175829216267236176543904957508346559296841829403499598783355470517994579175695299752935594605182319302321193756722515296602266500472654352812344843069406759893014725166041710643234564125230166072361622626839128081185897465047099991370715266145620238111607900338722702918111360161734623526732008710982138914378136212493819173021359162041571703922332245803926765254589841039257781958789872545492155059296753878490400043134083825501061361358428371257304549704618524344880589433922048182571438548544380446827115251611226035687472937140039883031147030835254741206746654063828294522832682933927058691856360053195551673156137763312208866923367134825376821552195804322941252060180522263373164422140437786241018810651016892204378987307809069593736705031148411516366831774118420173282851711160479492116169754976984053342896102518076978458727823046939056530556742888620175592291660270162054677525178234910140023475992562862846017708479089239767697500075517861567676974674729119401903812941597873586726079554592580545187252558472739502663619466222422068860566056906603556023237266531339006749585227477167847362291569798247774003227975988233722893078089339124246677196122176357278575683673528716566031782157122829460394398937797811293412775135468307270690676474500940256004317663066927021527859586528806768784152126438661676076867937720348924267004705209700564685009204493379922950176822274268945749030201251173050967218315716595345240252518190883056236781820842460362902289415611302141329860634898099889509175874767188771903165662560063830498943719086583537295236044114339134225226297828839141016331034167198143433660461142520949751589130217507620110798032681158500483537591883173823696133926133446934632407373391976846242805538346110067527691209240189302732881051873600108129277514368886600392419973870106512394495143707806906097989887255418393738374199426199765457791887830412501878405188222262450914043193523130279555632678712562701663152139220418868464746799481887236350529868666061941660673667932178172614764554969563808174004783139477398664811430122215363608239413643871347532364341109858992275876277371263986151822529203406719100207911206145417305384815083888654005914643913471239031796204409030799107800185026705132147846574304629312277423415999862949964042836564765167050497233474347142788967161647922558824603341912615659285746068792972498867316343200693770195861206598603045310445976635954746631250586221800960008394375552924934604122467628922682007578828813614493443396585067666229487147388024409268280317061713214309182725831003033199364803279035053642627701520099103026895268887663822267983870252149798749901246789752052958376338029130484654394620825453782329923346226820582076040483078593654810146176946785358702437149453433250025407754177958091645721616996697708199177106691674725313899586760990188151743472362026645019704012876124863492622140266458084074674011147008745446144997865008478094574733628410923499018724576119412221505238862058513732299572184413393477406569154365723409875070799503069452740135948953033760652931018668274679027664117360467413920389753546475225869005105866458751227539361741723553947574179984055523597447001673620512276885671234410974011605701037113991411939959173295089767640863662006520537308510299778380639649762636769087611706814438563177087659491329993793785086363655379106084919903696865262379592681403796374944678082874741242180435415961632562523750203485051672080958563965918973296481381805555453906411205147741521545692047081462812121624648559945390178962163996830742431846484014274648490686332667176933392750508971192087496738169884345917393422291112658133838788193518686107221271963553745338816181803181844658532575012129364823989907127361069395927452898311920882363423385583009975244907560928837380758284281757302488375085807174686089115632716830202938547121197959730685042679256773619312686706635215628730196315438543829874249125424834256015014898101889235595909300620389959258489512414274365398992168498683531772560240683897676873062388799288790867666386812302299784780609620146419917268655821096151976838597623254079713479000333649417811748621131296687191064520996845408410599166069781651818959859461706797949937081069862797874714649196485659266706214690918203766080917962579378824938944876401769042568831046612233187039390286143487317473691154990820675024197962882765953560759068858967460061096577387023074764639983785821508053312281523506493591088225244167363002979118949697830195323374002318760989107247401432589011648327501957986336428703974209114598823691791407989850966669566372098206571120596010428446750487134759931780727771654650104003804031484235656197339755014721790020966288693621380755633032220893898745092840691442018806871062641534179873165927380655126262202824476228209042961991352516244393820462926520470322775474681051799608445959287790933892146339922509461103433473644777476426082924509043647635308420552921284393166111544725581081483830579699767148774275659088662317698423890038893878413807975977080024972152743665730002546520340757221968255235982998488732421480675671387940627921451974440149913927549268596034991461263759000098236951396528243374280935954918056701546440275626348237582425128867259810873689624270680238174985745353986848057053969313456655315787942879427329047844837472819721406569375904307534500449076880936729861044499108221188225247410337271618542221292006939146478920672600260384956669711535752982657582009701166865306547814424554455073040622893592711295798244303871014031479118537721948529282419713307204363697070758103287218713890199984874198715696873207028217575858655667682741263676328836967012793258654823841245032821392014243531283515666070222828329686426903062211026106334949563126483234660420304978769599741521838816023100340606013798987935935950260948945956807653160151598880840675696244298458633659460396140020858213490745637036182480100178025844536603513677524256940562379774248270017099313827633288904192860188614458648265288164409975857633135324837174661651394185986003521182843198651333618195249972227585759894015564598413487490344515381981849199699587196625456147135514524001887325527489339110611642270633575504829886322521541547472882468675122823685345799725403376950653761333714337036751337433382211925648979851487969320437849844764944276393993859338040170894104858530482343593265791532624552312107067034817177454482591919418824948222093410494458882560831941993571702542125548742649489721720835044324322360636247741868064684781552697544078948775806375419785199247440490935510814129984010542595495107525472018829106843934404077875942420882737253073419971750223058496804551262384794207870337331252309710078847052623844426841406344411665379595279538328945040410188339065268113154283596685899119412228099181026452695147073132180663281235271982540741035620180947650027772552760146370598208486287553540105530084060547444072586585713873784695136493654460143591166597897432580096881841984622701811563950190297715416309048001282173260566201415457176537744756996876047483267204175070959894969214439752390068725597415352530396152823066184972126605718608495977628545988707337746999573051027994756268014418705548865050763709916422426591582043883663230543790633106319358886425625670510531555274319422754334019942230611092377775232976324046708768459726279032838063080941999166393706033672649372633079559382538742619530989625788966075052985287140132608645325460747718783700467942530013409048706648338607352310080536973950392019825610830641109383559971437114475256552145229372204435122862828996280490419566192712903682175409792263126932977574685755660817104487340376345393624109685283951063286000184511903673232582342016712007277779084996182265803446026249844120749441567354745194176832340793362649127327421373775542804320343999293928362854270653647116401795146796799470738245933212474374671207274216101863852662508768878076043581685123681075820222120285498411067954279576442169872414403894652321528749893430780338768066083987420069699984515294715573666687380433950682007883559191135144731742105131075989723947683608567741910247617981927598564952708186927483357619326532226415330134168356152972512428380523242303720977630888786285784997961555398417971680344243181485758776406615920143902776167633438093532658562989674512851394110446168033067588006208381601386616503971069857873330249324171935773847431037554056414906445177856695491515288710833904663399019076918569874404627778820438509109615868822697974511993917046725846429919666724777663751517078825002547205534037017986606309551580139573029241464750842512823113166478426348231973908612339848178521980889411703184939852605095556950160891077226339898950346813569018553415377822284894297072729400320839926560274224098145183447479388969846443168736223466851924324698744403788240779724694763950643633695476660042801421308061103695298840530474933507132179372201535873532856798941759526261663225910584168454451068434762179724158068272377558453421295422731840626705795909965940138489741223948823711029382133547317024603657530745766736646177355496203500699992936536211397019999192065995315450026185350532967423895708633817379103402162023436429972387491666852515151002002230995894541591513781621741831937834581526234250529303412941330610608699135403920808154015242801275889901588203883552124904046369543269671219739158566660590168169747104797048601167064096236592705413405767545864070233415033068374087402269668574538358340999674602912281486919618065240986220569532381016442660144086462971191340274851943132686260349133346519506473856915912490619018552006881677362882809948747771724787806974624913961895467029931683055227450135041685224565332040607301183465899202214535435659975063068756927797064981712903810325156303336684469734049693281635232257455186300746966789500647278295269793456196754757796295672282552780956869122501630348667821875022505401984161024464787364369172546985356650104666838047261073401052204418422770649455906535267222631064435531135744940239979130929266658737599176236257559928555167103665519332162588692245994139785420611026541933248518252940408960255938986242738825393079913154030658829308320591836595157728681652032393170607434737027140246691600590662621001493266415289960664187472251478176881534270315279833520945162917829793821207792464831552446932178688802078294447337074045898418734701627994109669820179628927010163281002084550816252391258047027607016839141431127117805166102095568452406354935572008935515705507981788802742152210648405084974350944466795360446502392025055270736600132803285961831787368322864615122871377966952432258567903807444094520770582523518923542921892344504567537030106788477903019763140922904056190146672607026143643712870298773424986198521069563751960108597179008901708468048070564339161352855651761194787077949740188600506111032388515050400794179184937854547014960425464461170596584404812365420798805278665903400580121587930878630230775494288323282055063919314334303768066334996265683835182202343068359029456824216379593433851262553968006115171267747734035665788615411036801665601875349879193757290411415265151173621049157598227643756790532721211878975035896944374568293254906095340813358092058947600336121979807214504004805498606044349628305143097549852090117902318708150502903957389849078795008926185843892689959243629560349293626310314029166042419814070774698425454673513930897036869881228575172708548039564817794932213067591073305492443018061228849104685650350187990141252850642261069987348869962589139953422120228200262266265273105988744869834592944758621609764864318300276334531242893078268494952565732810451637656487757582883862669859326756947212750203370793211083283645161001501434465541969857440511046935110114540992090784005889596585992588150704750832258098374966508741367381665160460740562141122132836220440595643281415418053830449483357427857683334192886598424748280950036699706764012134731972083983317640252465399441967718338102989659315751027336335077876991189633803624759465297964478001935405261775063721733325568249061337831739354445136674035671973145754660625747213231429961126391091777133357583725714882512325098065999429997796072714777215993839478899527544659984155472942447065973311394813514605639914184222341923289095516185372895368116586838979788211684549930805856266810390347141026299699420998561409395354002114272888325158998644050840989218438194484367287624051327640123698416661205077638345472735461361506910048768618043367134244980935299727781210459353755859021897536070610371413375598097579797391367304889068831240649037654160267381974728895061959162516130454873252971729710738593507947621166607712712110194366890964368894162554350257297157268668377590314188636943502447161546471811202086560071429255218944292484478581608906003894658856978875851775706601278880879350789705792315750144234169773916655444206874460826195886265531815952342125039452570712646639385168962650149600378371043030152976689692217559605049993055769023819867335857016312198605416479247258549742595390343653262529636080250057621288037899326722738690682200177077805510070912103369326776102342260813444776828188412473190622418606832384491251417231940381693337503045173895411451602855920330296781503160541624781440925744367886403394797648582012590617895911353922523122370454858639247937084489401757251500306437509778858477307664431317880396800257029660183766805477137931742518817774365733176878146321673001956998191384025392239996730385360624599415483464631498273437412569647940368290878832725208325703018066861171398926821781180700125739327421259753440643640300558532103705079250535688496363323067399330515517701882315513852055703888196041384246819622562852928502406311363846551880461085197840591608546743268952548336702784838645321893803275984548995996804215526293137906918892559939820322513015854116786430331006250096564804591239463910457886106071655503845873853684585315388075168509720289997024370796203856914537015560669632545224136361680748473227925494084103670161416515834975275142144022688668514049844116605739452569710333251172372478107790801573926599046535021759866176725951304221997096950519420247051237529354491519842453602816124079027681951336019383876734747379573787893282520772156040356994595260035779509698942577774107728572188603036955694003696224969621405590542166894636950641118254520900685763073898028630309454867111612508303965597082296157156962229589663600911725392544675308898413958279866170052082841965810814107359968904259379400156838851133868503822312435996614087110985534514344126781011665240326107116545869627155740762957963113362946421295754128625919474562628243431935483392561431243714138804699660187329630018092091581460518616038464221718532453598187900941198435526095759287489502730583214458874173664536283518901521293427359160795037856950326969982366986488926814397057062342908230512937786148169104686078891255897075487097890786147388451887583893836747104796302870967546361645886368751121064455470849916658474883034311764378202011442396636662558777450372273758007934956197029762430843892283378214572570536139694565390898736843948049301581801875304253441426307235410486587102513809258374260192242925790959213318823504753321380629470775062846355473495239320239754493773300668747079236372923312675112108528690090985563614825539713108503134916044785666596292308731111118514080045617882278867332447003628821447401758109221957820272624883986310595417828872742412112107197551589275760429473367750360614765671927370930250917457177745366570478622680923161422905935360625497198285258644350672806753409669850891359758761434348304428973713660838250803669077324845412904315480655409205088648983385470683450162393337592064381960171379210767611239513585784550934763457821848244090813185284620733006604457140818976956278470399950100599008957644405433932657677256735261311846530923450986896716569684565265361534447863628561447619598628865033477288838575364648007745697580879534986100613068096822456278368507622984340179337000506751866000440279470390919938742586804771674018242975019371688847658397119354335674610373407513132163542152353152817742447652135184022418858630038386244668498417975868213188862099693011923229406731514527322157174912899936847467574792338151378330091870161632646079367212389190142016573670977713140438625919364291430435867378499873595472857856079996204217061537810374613670174082106809049623132338918614997355112935885615140911648323597705197834095565750849815831236974436094249128453694321952569430783540276162019349853594287564841792535569794529964445785876782893827828278435922421439070107218989083805994876267988625186495530419249779594447114115169768777960790677874033994238122679086338701831413096118122556424295217323404342034343645833999821363349458326851043956779490576319566596431701124300157510382088938803896864431890111394790861290693074760337781901668170615130117987334522309685276651887945968395157083161086433607387852101942414777667031967925797373530229687731335218495995777813291750252925823583930002894660944041378347603621741054903899619677366980637796622756590651985300321038548527227288826626034552787031860715708430323638899784622843241567765486299998645154785461972191486602225432428422769548357735582227690402091494688988487246496610036998976957627064359718591850007669393842529031209561814658951459906642972515940745510856306381684100071571997352586069993386567354489697329368324300687996284101959064211295635292439136923234221067415142837820548751917002114777757674240772851844037185292453168422804253376262992884460238866775444196237662363433092092577512100297510093605962629610738289180992019626243677712373138828045489144919300029438623147006023363700503911490960082512312761069670984960480858964496026954755767803517573764247631869889251398884451913231768056168727496458407655790445817827895705949882828499138227450779375795876721659500926603344929153125096767081958389983989710056647881912248651326963604817475957852425736211282754827139361651524317627575941204529337770872966515117308257857075643806162028259308559469241729034592176977641618951972491507418703582543640790844189104928614799570116538630533643314295987792909133224969872764398629370394543378421763271214857824815007192271767978590420352468920451596910238757338586490830127711186258236942561002711277023799185778175844849320922220568500789339541569590048143732543909167233306518099719319767700871475770957851624756483207091048532744178494444261122244005867502377798073621352304791865258002924181219719599532769481045223462693323799133214412448529238298859641117712738976970470392211981843689930423162485274150400910584149489107687209286723470627823500505708593014814674731282926182545603053827505085487280962440619986921791898218655353891657549310458235807217206107197748521945875346685898294341071973854085858189415856358593370681586866945797598079781748190130828416665234936069315940792441236630786240228680533936366251746603202342019008498182338151260721662551664683221176431798804383615045545346775500910558199423907088511666594667132372886532258406695296217074519493017249112046170041795927343357194346657719429815575135930842063869841973842132993301724066290529143580668362245871584411989513790037397683487393933698335158949199895402390998405562128124653150068302050308231223603195186515924568814654291867303915570963211120253759402511805705163185070764669943429788330111712374646781653269475559094197583867159350408276300869137497937384376466605938915327499640768881612351140646223855636695203411621148084184438494958059465309615958486906137866922127960777999521855733133251891871922539844048960950692408954877097083670316422028587004789033354728461533764338122976772284070925386731674189928584053831199982525853328931977417809231504301266034494296303034924994706220075237658118913023161198284835806542037808603603491364325823621273783413462505910821947480451558470264182876567182056267624630799042929184053337858368442852958725588031018922605203557091330406643402400809411106659148240847336899017576024249427987703812865212123511412507926018203106116696247240267922825756190657786110226767308718649745549117804844682465020472429946801627903996787121982564321056057618345225222546102224687727440943202836668795894320451361594113575310864994081524206401983698666239510714621839145065131990436402196996449359430344285766171969356971584813357650284476765925424795547479336076869125954493809498725550560509462874626792891285883683998477682667435783349433311377852343548562479224220651255845468158698800125151915596153172126940449452274828505075520503111438859198923078677899088991212022974493349469886583227294428154216108188294265708431291806503817711985101902783053819236472059650265542861523706288205687793711591103101582337874199516680705177826905255898946970843633673936969865037420472328029508505116578991433683150968078772809738937885286995237886739526755936052953239587750213763609878148249010518606637751506567631815274941138526392972645100305201002683175113510511257060654245997616173751126232399232963576731417989397600077693078092859919890062666552357170485054779517429783787822301939893642487628808828950147099802754238742863657679476138982831976598198738187763165297268464838256713136655922557235258103621958888002048880289823168396371121232517118549793633627607383366848206390284234191321728204588527159152998806527062109822045807115677381918840574994339253069249551466747679516918788579089905087299822555361275463147737447685039903000455561964420499979480296040316733654540875108441325997347248455807021396168423504102207501679809173596967181829404856421506427939949408931073409626812182487990090549512707343077420601533718508932944094153566557085317022780147610159875200868220509710749033676816071956132414835403406828695636623199049567850220955095892304270635222009936656752153366993465895157867587971982899466315440111194089780737000156089095254469024115052822005515318559630407286908393268902694004111734985279357441322605859665185910187181862089973948075550101840752516998918994758283392112121199983737887717084271565859517798448383059559723764548444057888889497788888622433186635343461532578294173444836781257644077368233462202325934525645148593815221632220390716906742940416168702496283934351488229427932060536253514568094139277280544744245922299676784834654006540213478822953633873125218952554481972686671701614017838608963767057376352764014762529722530324169835813805554040593080952373451934009595860511348502057757779685750330373621128130267143983883668211489121032896197348236951359577522493034225828742625878663991573190595533386807243083007771303524818843179347066110450624158951098498456581183599895006820618013578328615614132427104210044277529630479937239740635628513208058229778900972646579400790415597117209429602240456394296462693437753348449193900285226530583384150056134748099106088204070536554617653424059465673690271044948756364016619266295954629049487695198596080475957348478991481470750997809884425787272362838410549098432149902635607637749142775137133782577869576855917276525417577067258546052063748419197179087165930691046407339375900826289111048558661980065061880786493759945584329970611087900209147613007741916286548693876608233426724345993187987546272644048407356228733192271579717239806229838537180731435209563823737388442938738757242937393607997414935524193982185755250692995405642610132541099086093557745856255180827687873308340232855153348649121964585261371952534830250771073333227599307320837609885525023007685672450234412902755175599530886569843084045539217626939243273212672360823619443398654752430439752791407399337837827917694879093205226903561575708747653608376711439020430516707170104610967956837483243669320384638691644734067801760251620456006114107297151467241433518979024295502928480118704014412336248731961265836547989377635319078043640015842316673828823340594975030668469169002395799996642282473376752688024466696676951187849614045107970894020485282108835499502367523497373406303460979895847778745734328716544653915651215133865256618103334280934409114561028456322715438186872166485347031391417191494331267473145130025496484369910654061344195074450744954153973583148286410260290072835651930105098206919811490759860447205711352449153171803112228040496875749627369939454681546265020956826832158304529449651038026460851003410973216871677193949692557747615522798341308973623045168156426679056729332169591383938811729337198660674322266544913262906236860548366460462509664282972536568934905431576612206650381516314792303815787632147785224440654217377308221059300555650816146602280619900434788110625970303087310444409127509414887369083973030087699706642558501067117657908082487531230073879595465244998604074012299554561880019428427094244305526845174621200841833481080584866100773348983300722912376510288002315002074307727729901527612615349576936291371484604296857490694055979253322016268254135976838379536512028558325061571171721621663704517547274356686492150973440490945136865012707136689346002872434060751051215117021916638135814962963016846954082691656870918960908955209118149118611109969602501677835182196302010603036980917788558644785092020371154053182437067771363422093042358226043578160901807315736082673926486045964061512321459779494238414993861020664326515414527827149255038102270301776061061503492026841135768303173441512160208775746578048562856044660172366094111696944867523732279815242703739670835105226303614743875765577780762934401452491697569218804420545245923807874374750243599992978876051764121709740717486515231712442907685720654784912476258716048955176594685224398234527719002410307838668955887039742702924753276817019254357862877025077477683371552055882480122998053472066087709077521339994568973508034079271296050344187255371751650521011997148477844026261604801558889055656966509411704315729147468718559231691667577617752802631327336404540627212640891674167567876484396973748113256453065702508588305852543556369791743851595071106212281502703450135434353134690832653225540067667247451730823582442693943096125772311795436005969562982598431740451550608000652780170951624506850765201351439277209163886095279989103243747121940726770248969810072006746240919320236902572569439901072692740243867722567086192071879049187723031836328095741456502847331085126279777426231640912433369040711792074475989796218089992807160644146758931073985367071535402401166428627934530535402513333804329976926884992895347089175991601893606666659563326110842553500498491943739154147478569434905672798538696936362322939104688770936759385919138126796900975708862454189063980931058988058743315621222565353245197277194472214734286682866623021477627453155004029727238232519760064992977097837643428646920898181827409565980948853956254662328457204855972393807507086864344612203162715684016966656365939245519098578969120899788801221290151940916125117228667301347324173113153621900573894465328769274989513491605734681160869030557774149157890398209123627859028407718013647225096409615616582059120944960245560323287379221026592536683975757070453123353316406003085641343748971785485443907700590106536063973193526652461233806178728341131391147902836793682707918826296520236274281531995162089128726800598951192266866511647135247947531181428109990069933996650017041901146793317788891580795082496724266190695910043836417523599932050163872471796955142985894735343674772910444220574514127756332924891062598151280333527917677127666927697525636369160368766698291590057004117513762760594663767172067290506399740260195843316075873436039632774517525339847342506410567131540429776017945481053662584010052895346183569807875724121757890109757324593717582371558323513529563480521532907025569654026140115287877030991843324252346755423404439524805376740603871803300876936925568690789634741547592134274010495489102588193045339083133746626253803943349143199626646827037700140404334397714047479712165531242245927414053285701915793948909768537047680986426452605617941766345443001095620029061663346179686191436682751462465000826236544290205026319524236663565088912079407336988147938970984382213784325308165030364626670931369157050819940212660617724671004686832646488055158443226903946713179948581387172143243851750920152216139155749017096099860658052768352186132755466472125329835431409458328788120090680090708196993961123683569227225706867832709630209450551721153432161701044616629836454049819264004344574872543490937021691599386832747071957859628633075532220098930302082149337526475440279653517197834721532321219182806743896960869281196384726819353071874207718141821303049758196392517358769272429639012296371588790518990569787470910184439032873094403037744693971877767418778692008051038342966025221586938381751577120073298401286850436471856057559198875768348884741352052191395135143941157135801626894190997544602284444560228172489908195156661174219646184602846607107740765887725753951421753817994623473567089450948442900703003272275679321597071280568024112654935128300397330572780723913278504764525274012273665921585731164031503793622130683729048117234650612829300604096751217145819479427500069362040139844773292964112742688774700994355825301151080274549606287385558497057508883576432503328961896797912428810354029809222352598332162496552882354805805141550830842084732210799494559075848023231744983957662358305940112280793360800733895943875472684187359542352312552868285365752044320230482414601184250898581825725965282293177665484933755510185597094260811506599980049176447222412014888346708376451601844359974184162678012602607691705145388536625425464770000589898381479061525324757161486682764602268970565787753748873480660489696671572461860417623347272101705410728622528739527415724959464552618139021110305326851000363206988282772095716040282827974162543655282934950971265077136806601423038118932800837636826214644932263405508521857418842840858458576929249743750067323906438391831320428716834707968470950418880344682317113902662519047647366040086819146002377348476839316248990970720203053099816548997041462275592490355244442222966726131785618824146046330475545096968117860118638051030353183955817456212209995546411767651593283940455516935756085760441518126305412399319567865774003997611391582420095507828106324948387778053473552477560158784591105235314690575655929953906429851477413072801440696699277561842890990247575712969197222143122024557124794708875472650794841426546549041847913002903232455118653648433469153852202805321842471243106132070602706458622109856843370356210919636485589508443113697922701887793095537481735509612322484580324302379193041067585579559224374249782502882959135622785952701569591966878742357834544761436506838419664812501976733878598406723708357402174589731964948055387886078194145847071068045464422683983964873249629620532827397425468490967028917626018216488028934076316672688000018279213512596826695443027812923150166011804658709952351390633427365666875746757590065830404040935449358246673882979662510314981915572767738836236888352074880270866367836409569038592298857446772470182389617754884147854448918724144893668858740400490670438820584472281642158978503346351864000309406687350392470266746498783070182554449765335688207154037948037940289275861812299164314464981961780608253008605245843054951282638446007173940661307387395769461560744129586246986534284811599155455342422451953745471075054424687590069257779240900157279622693116985048951253387047296947278006386794785861387169339069197995525587749214557861556663885213880671484853823056305102689098662047626554376216641884588383646813190082632649004957590708598200322326681135892979283320084435550024803792627048072700647382375330893372687273592956646075438542011354704556739061153308141685669699520621679530455647571269943178998273581654358519413924685624003974993868495358789528645755302715707562539148316891133622102953283665577715876892024367369939609900539974447192861495273222643395429954986862732017082681905392146128235259527355400655478642282046494272723411296773717197063900048173562110814448255259328718609402963897367643854012604925062361251532878891748753491098873750984443103259209661018999417142818417973709915583407615048911442873090466517471087099089276448255066883595562360974125984904969865188557100622258885246900020026840502801298551346135222417305832141605696747143089265623533303742795949551715422099411199977940123569574425882021360326309985935876438293738548466854001295560124393349841254395573822861211319388655225953995173678888866776168642407926285705500815588447147097348435927616298386017484952296205686180225102532180501195147955167394441101541743419837345891437109909790500469688350692292336404771812721604188317085748066152871490159084627775142740400646511912554015964875487608632896174621128898192559765607224204176914469037759727258200437261699528876153687311982642515417115132427927097058847029487040233615642912645704489003898110635283217673824767315839810360173539539842936764318665461088853438864809231092541194809346388092687438344067915877690921269131932937132840902449697781889381011767863568095584113034893978774605456948369022593953665209591176592429481661279394800895873700302409853977883124152000156198966754244900719004401597809660360421655061706070998477630292477048123347922344420049883153511229940590995136437978600793909728917098220253110577138550316765177907484975351480030601908048418246746389703395999454035786099738065696824947046269097742067133090351751395072592613952626369171517784030193311549153971946698918488649073306292739150595604019734858987705175731358253111585693585813660190467932288167327307558377772317733031647829719041259298344377006663523885592764714787861061937283870385210192668074383091192449033547233467148376479795116814860120597556951048218502616674818235592319253887821640033393929655926818129658403002257351319998607416190691577651974147253072460177819892152278826726936583331131137652939344307787288660632284325995713358937694507159925672219253990957125815639498253750359369256908199002504993745728683507410120048037185565274067172141446528504289986613450277284025560959099137469513835587994941781808802858575932957865692691299716590818463152606126081592838180076724939138996060506800217386486807269031995912567919552521757973689798851109591775524862219706044512277346933691929210389714319358074706588465048392037545634446882642168309558150722975418961709796368332800424833745904738366357509435010113205143668992485260411839069055541646698639361647919573918504153401788262486482020556362305498824455116631918391232983432469423769937118603886385442131283864384602609826865195873741626759540245717764310216441561788727115814157996188786928559831596347323311611479317347787906035452883789643455084521162826864849172395591757576205749600705000297872234433836453791927073223867145277700845108939156639899662027323726597120746664771810332714073315809325719753407824297887492001931909241317081294300627660580165583996528466696775380402381926139858863049559344508188366593944926504223925438847464321309708010561457441619174440159775304050891036956987959055228817392607138037349076668904305211115353703491245661097003615889197834299301022654873474361757735668948623180463457027226045089283411931196636617990768401422891598495186974879837849487705263566168371916668861425154735903021371577571587895707184954461801001876869339504340356605190691060340314133224159244907367445210044284975437559174580426489870305215850098819124022549056093873552091223605634291512813175767832438743557111186033773770021791017046369647634121970800629609505532689741226604385031839557556702352058538841169804350264826492192802908635850225916869251133495448011225991005945304548485371515453561369247013676420268830389388455623035988765970369166426798152986065488102473989445744261884187604098519823986448335690560194809174934340467877357997255816780739506340142696646327999118049725540518818626037782489433185615164366333539426941338776090239929015585505060577868981761237833695685993660795430643124421167957484446049195921813631616904414295471057682539584650673345215496392791325271079540124207467246692118357068224154858239084878062592230556371691410026061323285604054534036235484763020454964137431942023083018336843198408419584851103757405322442447489283852360599369600707933197551704653691617724521937062046846421914647158515523930495856758047370419025705087326285491322705832122321778791994585511842798021765589148262108902043377037484398807167669383890314486799015747310029665544619783512569640409132547366770675107467852800294913115375478778662147852773194632136833848562972021535296899693150101401540585370570207552737943721441948678688626897803779341586557643521275292515177352688019834486286173025225888368130169670280336033847417340301112388617913398115351269320469207506703773274417863991740581852783112424469012438348789033016490618332594530459333224680390241497462721977507506331598862039302571821640814171233282935529730746029818606490177031774172493211979895592261275475680708265694906810317932491957566350585978087312002112418514971433289444893463843471667015577766729011555669380377423300574625766435884271163307997802836816761900309645394649991619079380807473932752292483949157297352244115062728900079396405463484743595987551221790283593592446419073512187660283527150839675982928048609970590197536044096900677163690275506640280239139700520863968052858823905737417458181210589161577242888838865407101147257430938117990244127936956277804548892724662078667451217096302279265743568788312606795899195707850973265791117362330742706273927136977770613369752924964658244596317790429815721861838515108410349051083365825266376552945066036016005453871085511821660975661286690052599054317424224258309103060797510922271012986604257571658657329628613889042833825198503016336590012036325871751600797697898315224171249477191748054917578731887762820781064120538786612423491531049253314065059983235444245018006341962484997123367276826031885092717048117301711476246629058812257315879683352577317923415661105707181862348801002630819640347598351174238288317246175755750437572917622389619593134649614838837430482843076222364253943732362894999621307745831779924133208206327784163157240497851599033499420573931053672544790543835131873133746014875960662291940086903235415233739302862792712959833067590136275513288861403861258093763889657084357901277995599807382888503577850120860767540933656515119229102074292804365379611985146388141012068999393870886942848590538173610940347489144060117902721128166195151467140300119439755082701447277908256712048556451911521736702896320824663791973610614530372245286090113174570361244793506662050147821579435654098285420502041654481751930365473007917232409982466287342100134301746847520654167404888909580377454829620632421802688526684887213942887733208798972997246299222455204939171107762112011426256791219723677249651675190965436886059866531592441513714677395414778420268853053949420446368368491888776161563208300174054997387283874484910329845813522880480351896812313947654026347570461716440889311026248067866586815474944938655899597372091884248826129988507716695952357708693071139692505980920616779404094836168348912742356116278903876981714139751224443797045960869713489038976789787884919035975246685339312109188422338891881362243579890772266440316266224538759924766037849123266858198738346538420987938901808766010143419632332599556567762534322331405086663870372413264776552081586284596133699248392637108381065478630984798000893848807689428690599016048211450299018369861521478419063239559246017709972754381202241970975758028515878573187419680391792141154663703469529794778507534278894694552372171760348512666624890172775941679276250418903721934534766359064113347073909461793295267706064650946611407421211007224529080864503430038518424574647321423238078542368344750570947768009936858731859041475372385467287860199891099365342809771348122666775410891795384193923126690555462920544527233636096170731971242375961389560700293762390320554242488380754583658666442297115904585577483949089011504797506577638238728061202901249458072530571124778116702554366107613925923577956418136187836135411750319073299770886515516670287779280938889880360834625711645989984357660155744156683794238861393073214674089488058478709699269495213149026181226305658668823708485762398791459984538942803903963468613375190120306483152421222232073327961024686730694061956587978986947544448102714251259014421609570040867337175647377036406216471707264914364508960874642012749383621071131761759449065083037492236020202582678891115623849216413008679071190813238622312478533915739001875700788650973237066415770205218873241102525059897876375814252819390016291841443729612766809111817519864207632151920926163092435037350202856765698350340022473364074248157414487203569103580744191848792151202542216194466153388641775190032304307516972766612285286188296846818513806586146084855596473008189827524421999115290303751566003319582401101401800477419997213339193504729682571585714127810002532044515108935562613204394651588393957179811121208662576511244484977181345461272105837088733709652255263519910721194454580207317210954536488605230162651649077041912032628764470635094496321361497508636208840645506771890188958883688470126673787912338440107959152594788940921831941959512781335748619390945970474525404474390156370724061794848901774483212512399640766004245157227649855262330084907464124227908130244222977356489570489604111212931604912655427996982036805625707490120288234637107479505234136010317546495942381436795242829313302000129432365951578437373027681024087787675111945398760732424555165628981614912453021242951520734290066041792073883110057393614016878661533007013823316926105071836855553131761387014417778774623914106570028496034409471898933640902402768378227140677525635842755860891003405278177962455666055438131938891765063268870011047844058439925489380330125951025079480111985286367573647638966742135799942897440653146123688950876592328953177486437059447075265413395963462454985265306493033145411166719834778043455062391637506693620105432462144396512199185278997532310877774347638983526687911801692333250578711257839343331567626889952729593674162937782231439113993460000204446189155032915842343646316984200245906696932107558930054171937287129548535153830289789641797907758768975741568596060425544166561069094751611052767635795033500089573906223517188347750789327398140591930733393997756043034952181197961915564532217799008674675518249382074990611712461632753679188327271165758160418035188290949713143498733558648595055679694127684476459356464839542330964941812204283940609381147157511974347630404454800449449082633819082622222980382138707004980595782036128377497087991376387964297962418829790423992454690437187023147416512087623719439822962344012588887376336125985845868173609360720338057008282680499396278808782535499277208667651657955276928675435535774754817539851879036060738012411156770272367156393922378159051341267562593757871873668757977937693924822646741733774168155188843389678515660674658271147197745453299301054424706996110168191399701987153435127846226231275424166730847178366417302171866168979193904638195005136369610173442034826023344857036638009077056885926605157181993833588049381478242860268314712912589798737653642406228520025490914853511470898216685308267101979742217066450307922561354976176534720740057580987957718894750544548436460308621727147027218783709033596547800382183366388158842955342243194652929954448547541873558600089793195590414368293117709389628402234599463830216915994565287231388753111392377365369326632168101073849173099319473469554692772187656845029230419913123627701717771156942793990201770166453684481973285036275350396596064349133575363249794845984984466975237240089974642458313187882197042032082755390550648548353516587161390208372172570206246608941801259829247573543588376969572622018969784956304608411062363272575691200348488289129304489526166123152280250648482448455502705463266316653895764302841198529380549670489443766923605759191643293085921476413526895255213748698320643410444055672230131324731865582170679448803675506185298500001726445466335081603205411962208635833911405147705984818477886772631198217989130072175981711992817855247787030721263745706137374276173234841410835170312004067389628877713041637487193427829729977113116202063510713239092951030494539174326308701733213150927762142038579700369037464822261523102665426040181347016901257294123349633271107397238899614148124029100867109312096922323343420053426051642105633970464051509644824763177871492743880048108099444013421781324558107736196174816906683050584277588902735611338408245905963834408863959704038507609867664783008360127983757951268375914240389023428429089233806286491485703377009137097580500818183205775043156587393949489539457340784953783206417838571099104855417990901603575671428684317717008743552203902623897139759187843917173008659103519377282153042511795973734260315631335374084737724682023248508593692847852040246276985932945496405889410569265464307177527746319617554815598042698676340601661265489029635056903083970972167381556001661990997809591861392100172973337250498980130903239737511216211386357997583950413011802097068504998632088829531406117854106967318950090477715219865522112709591227650353776457573736742659409121729624108619988328638149292679479936381469018833935939678273310193985852087704213405045455933073607272245824155770525677286541708603457828313755472093411339135390337542669452818919470115985518872820478156516855941624322986261372538083750798866565481723780633613988752428861933143083553548004304691619399154332301948998048471688375433465219472158755529486563224827698155689258593389942297198327989687103710738871882875558803723998430719339031011932015492814189416316449123319680454289544625003543082297448119059463251439879584377739872977223808405645880817073874723236543613047252754324939049152457235489777326465985160455436056993181722355764124772972763710778140527282194356082238950136071465652729435733455487827706258033215016214852912043260770651006986467638851398515983203484124531394145197415710205379942706108700914253023531936586812316730245603659667314221291476526389333514173603934381974085517899946496535043263492692516854385940770908518679952818229236960500282142629765297704737453937828270829298460211917400563466330218908664524740990548451876275464850568869850266015452500345829170367233309411758486289822970968756462915646398206395829159861994486956681471143760896298554615780480509703855990072276157609960651644790795710315853964455610833473511785985051223152530319549804682805092719528357249088621160844896328213085288813126685333533419851567006827897363008448296222095824447774628417737298645852949563355560326645701086049899848688249544803049646071319101383887005225726364360446531524084062887282070632655285469831225364600292805381785693274812333008445095331155438141109182165694393317269029684204921402873385934470074582897144715165913094919804884990683736157757085627659511087925565402405417703283954340058546678531705028636115012512248176131689851018208203660549976721164974808634345676225645558198653074155760544637286795890646688282196109747995361060236812905662428569800190610795767937748840158116518661266429093981803566588791370126573347891934225495712238594526526220828155682573238651832413925325961609488676642426019425587552703881524936430143515644660346389828017839079336885070183738609159244053544484802822166932222191892743929420597293036700934151203558532818179635040937091465232746870897749786057113857990301904734163051943725867944509305233431618935199307083944796034711750922568980484387084862092950547058801395164995015462934275655464641200703274049788055536483612242262083786918530877541673095162205347615945963665244238937806077139169208387622028705187988153455341080683095341394812846355995957423827567337201556101395081371416375709543483305261321806775114560304596807266629324567246538853394295765833095478296722389332185097333469162311072877180456275386407855150567857655191912242370830419449171049212678163319220562641739349609659533787076213003602560308120157422671339917588900745121273426511998257442236746926023572484271598272344885922227150147473616224090124558470970164430096964482071989326881571115558808658297672803807074691000276025484109799612188690763796871587193397020708949042847905042971555000203590504119907777538114321322190885903774493080296242456533542613362078224385005734887405867087376602704179118394115729262853342008214300956490885676986353525832898135379733905457415130216776339230131742776802758032805819346614591790851156178741795774072997192015554018588590513767448640696943564746112005208025856655958100721096426194802924715787245611949280605257130319433678366189033707277644975158631912609488226653653438467581506663811485785779776588583306971780145379765538330828079347966992417599455031783172512233871784987047298825594175153406613165922320391100347894299151426212548220091554969898415864798571313739532260635875284095549851122268483609572894379004950135889218655143360457497870265313724557645435056772681047695888496660918013514186505842333380924442725005703953911837524243118191117402967677565890929560484229394436937148709063300543014215238921875066786720998401750318972999955748401028562284094598015020154669834449748754037011952082129296583599471800716338287967885818657504938209210019485133800133282859142085348756237749445986156338765026502942692763927673826273257108850729234324229036905435220681705068234475599307605368474858380267709006483466282852705463924793987423401725447297182535816646332080094007505154038624514220297450827954146477275572200842138344238975401490323303329557175521391554308708050469516416971928441956228307486800425938255852324067763287119282730028541618318972840153698285342995822411485295369344163773732331204270231233139123996506837048989956922245967749055147179319714032618959575757398069812263487286924286406815788842758868399860817190930564125597693695801702360370739706741427266040856162621165947959954436893454048023808120883103041457456752242311419182506325229494365260444630938001909479452581701556591548794208597684963870112786203213153112558019102801598102872996439122909581798257066025279960721810102871289382350305311503825740056829761766385443582788658933193336095504090129730436630429024360533298727550224813892588567531133140050444196510212159817428505539704588183213154540854459015994755828168711415692585866879533562150087601645040693929531399361075736271588495779297387488444155860139414453249025847268767592129186520708477737996734654215863648680103177815877502830878870378139473438863429163998326379361830744836346352945901835007276205307301576415447605998026208021271183426598783433234062525834302554173185584870771762801996142419824445571464152055453340564747088454750275920574597039995514926820550073327608146084284100034703759640647421912098110826017479823331488080265973177537974194574431800333904845676437936808818857381484967598470958442791663766946079426758205468249791241122113293533703030987556543559339443297663205201052971536291053621845463539181543678867463268314386279966907066037422660615688702334459628069203533627027188943832512549181149806955407659357018028486515750890163052124191802650148030037811013538885405970630788158345145853251405929567953771784200540291755305028530686816859077511866489940566583329095383628098297715265696526471352569172264827030488991967941764105696246260484742728850285507131669277138837588941399761154062761794241171839965033689503768771575184419203599932282979772031561402385876422862538041133959937921665117298793544303864252706903613125981453779891520952729084768097553799687232980117503184117760324083193403189430068264617717795032194779461709752400263997858172422543243387171674573041782326892672449814092040095103415063124277284464084334709399706848511452994405648363467975679865711316717501065299412773797326927108315663053825206905989079061548549245828617901004899098115709570827720857401181447327673930244034350824389370579344532613114777386362905721640831868079797270948558346728770024047221217265877990944220260839206416548930211908012457322223043294598166720480861695784834000296251100153466202086578107023609424270058279104011490668224065631259639020443234281704749823260427180799621554283036414548964861314256721353906077960160214304201345220713853195207761940408785425413707240621911352423256389790160078971662607462238989205554227580723299249476574805193258330606767735132019451911925354380230426571969884223907283390797030594013844136677766297943668496751473364556280706652618751173911255558797985157792384573545394023514334151799525211580742596126491597102934141481988604001834671417220127912389271705476289689321038345886509048549866060469217060583671843633557119696481964573761403840205983583966421629095389298297313302709887909569477780597367510738459352571003881120591946191573645968557176923458949071681800110550008296965180475819933414181697035620189242053574699661560136904918324742923589215869000520993249774379338775241079933419915500388680160200574060921532261030156169279096686286395124710038982365167602558968133744837151428085260994131003678970235048093724758442469632311871210437421113295534132560817366744834232089228029707150672538036816599186227778907272871516175133222689410156766734794972823118042336301103110770223792557722899245131221099449934328388093455336588861424499279029609049091059232660082675119454691503600781615032682295560837393941016405541328301061162716198325275619306265883482173944691856947607966264223620126899694138616647259188779157209247885443649502177726324839229967938261990559625961530467566577948740407386891917768131009223191011573398808222794070512286647874250593005623795767439569004623438080707590747355558207034214522092000764441145861619498034048572036572736116245338417232202912569793944054869435976763342321255911173052332592193091359867224624017753729928357177817459502182726736812530410422785200718007627470916208127396577910948855064401880172197023150791715944254886861674226697478135932441823912874631813069731332283650969417594235425461251420914942602229959347228488481739458281512548648663867811168031101140864923693205186407585526824866830345424977445640842713687722686984864884643395732368838107965637170536627563602936848090595131077607909245077187368821808051874483606024123304592594509151496491813033413136583050953127050966154224074474082853234622112505251613858120106258853980101360742823555106900297768764528211081949889112169847312577800856059670234671687649015715397617741836750507356373865314668332994450241119843018237324633601859798057523735342130910329816398664126164803401850642575767327485502725395412027677340731405588724017777080295260482129060084157456474812952085513823924026114827271303509286630926498477003534420335995290427272570520120607826470606103595775748794155943988405706472983058771608406375532608851832875571391747417762108405031466252702176527300807727276018087841649924138747891241078040635391766152004123401453426769042415666946434114120079204462115646564918431377130152528194425164600337724748733849951627319233198744095336266569520555030064191014296462549174368759533566873105558619689938612621724873964643251463783445259309847077851762206648951082308883805440942633055862970768136740039850155821481367050072308235082484028289928667485277671860954461278359247308936551691345091501044886893266339002878751678335686246461529207865799750831915995134095688784760441769291451752571783747222506917407272940930315017327045100627420543380780573466595392867944780421026016341801156238536869624095842231699594505527738189752640997095223330043846999679968866737964825205075723542651906413905418320655186651040347371927693078423537774052005726161158998260606613505660618556426089193577930640279354755214238838411222672989391794263629023118954912549770680328823163830494311200511222170760205674256314328027379371896121358951414197082664948383770492188406804595164449832142310879649292133041458436693472746929788082313637653844767962714772532602085963744214485368525011388431296220045244916198354165178475528101437438469196913334166970301712920555326002971550369719877007754469366451702167752230878642377166524609028912624107428265894870020059658729081823181027152606950764870415761280707013226779606272492309972569452338449573886062582433555505036664361106744221979289853683230134346592179578573834260908182180424519594513327406804732449720937770771938480151134853051183403478409786643551156893436051159696494077168275532169260725888316445709888866139426073672360925263466019984684182633425744155299628846907961671075633478217249191295777532008314433346104069543292296545923854919068153342577133392522156905202653785403149653209294212792701493830128646677362333248728435763286567554435544991252029097883907448685076932074230295968990516228823244647278507671698658575709400086468128256678977504010348434097436108308665973866226621160209083636773928274193638344910579821242359527597820086052010289517584761475797964494602955653802853766065330269442895302205319937981048252624116328336688125574821041472237428230871142630195359075751957360283881429545253929054583849849411944342028216510187182415565970022288460904562148016590546607522688370282963406983784188368477253466284666380895505595826749921372112004903274359386335235726417472290299461971023083321284209410872976125608676562266251214385808110139110055509118090475813402570430455945310156994096743213703024935443616267890879749518025463133409219480420482714124766819368338516735765041180028672198217993614232741933721302758710126149141178760388783199728917167455284530410690788546829080941856142645610078263436931277519480423014455725458165937932735748686515205461935108857178847727028774915355241875117068491032726838242740819761855623034163542695079452377019526266850736375100352961142902746852331558635178286134915403333212229672044323726006271652033109974534846440164845238291224222587905004701735432932762251524021720694286049245378041761734744153570650140751465064643083149235949628564062164125401505373820932301255634789952899168452444013914992694718397187903117688439577254082199286205143073052733247213411905887652294826556796833202336077024291890750492398535325673224639566316246799557190556651509220537095682797411529877065698315214361102773295551520515842904483303322821913060338380958417174322123147553513776186981899521258795961193263015786533401247847511132827044242928412179901831285965680318783097046246939076366300256747390701660101705731388797440796994239187751594476028315147461665435190464091400746556607274867636918406164785972724326354486041889600283544108689298311970766211816314028279205115986723257896620119895379839419146856389637111822388282509915977284114579967429291782120772973820113679833186420126145680418222158953883787349810032762373589476053853795085535404131286058307502570711881249078955473751069647568973918946099015103151103949081327823928247137841775491937318457260008014834395585064487912299802087298748599486712995685480447834279826479164954418379092786513814435536730367050544999635590278169982326015590638688005356277032776329914025011913105322586590308417364143083245052756603535114154691532148596079938019886982517561742362614156262382700779760673286053515589209199370867971563228035965366875375745840017143078692592420683521819541784104727998449211871571086727148888967062405568321506667656089178464142261902820206343185482005700494167661745215395525185829088955923296096830148624920203334350381085498271352993150107348211274782621400764242409643801879919341949004527517727029239105971294319502550872681040711896371611571102541072743227675033837549477688830697398176219014196381108554118872641615392535045311512967924543118001812337105983448470038070671434232895240248143586755178385633903107704804050223422863597718777084491078414643384484199636675095442288818685330646010964430252514699687079379885111602166962503807401618862904468333400689565431778372303936231173142813177977250121864282477606958749557979914562156978366414219867381266756324646865962386854266534066312304144126942464497373582817490514743904928977584924650124067967268674169701066802376168770618510061972648074128792461847628334818880520592835460664042419513654598643248936774243327447504515771941353098801203998748516183287914189876302041171171629115531952879114635975674190877696679387684465741289633466979901388659473845686639936806975881668922128916520979043053391053888202810962702362086204325937065108033741703313994758414434718841729862888033095363827727394027775477150259553390178320403916089547876005625415422263296516613701017770964259489156737507877219904121203571833107019585895211598731258583259045914744435975615450098805193845696882125272495190231076545680905885434695207689628287760822201566500773823973114746204118071555906876007799072444796732506165054404334178432432705245240870063678913253749748096720453277596225651011008662242324154585707250607249835692439351720006581454132408618354995899190257419007866197642432616142136843347089456238872617063453750036479073609625994946596246676883714732815360998542009767824758243288531754484715506190997985786070721302790790625561788237432475335441469840598171261253610785882970742136189269366095614588475112181311662298691026888888361140117136318669806942190473987463458687543800086266867876850815162415108852015996021651267859207643698400226178407818708753190431621410684116694467507959885344853430644112282996631002824512478076150742124444134469853380337106627062453599792430909885862205389176524697493455337831677102556507073846207551732671309198512525575792464807425276945067683548495337713057806461683281820735364810638810089327984870469443717097037905851802155672050765348204733100198684624809778061852223614951208172438718031855485879435342802081940526501900149665123942857841985377555280956010763684743419109011561216547664227260671319491365833569021638039358032657224726590283496537913385895135492278995578660740676103696552043847020866817997655942846093226580523707525426168983655498363473155687473319243285604494186682090782059358324712210687185765475707210257302674483762343399750813422394654044238778346331280373570469983133047892486307510288656971538358451320118736369162818160278397576869100485153970278649176884940599026305707329336069210981127583470652977738314911266691706046593934062152215335305746647848113080988597952923201677694197371848556762643055277932714331619832744247977237840332982216082493636610677581116714465694105469277103918842204103343198163815291796319101198967002368954141004179910409854493639806427920841307201228970285112251250388560288784784143538938620522941127786020031402704748921742552321147435100199642720673094047569261567737336522598565650028357863861143097002937315240602853110602511125411177633676547511026454071519239332418943069329364009102126841239240821135814800227886780867366130559478877776526397312549085181476004240907608895323418522377518844322103758763406881115628052712680389656633635485799923592508805073152342599260034727399738989607933787471644264108020950749114331999179859383929126616397973420780510595679616001272433769541051865663228972548315519287958063670541597002447018254231429723140113496304210438467386302588643707167293350087677643551392494293948309719093614835517506412739991629469533148441603468419041138753183873128365470160303078506730429420142933133702181893527416527007457551330299645789613901022936926032953943413571830692271680785999918976624822345448965144928297895443638587733911148281177402738181568545386801053894588401549750136352307113555852738866862325974070435142568402983503968834807924336658735822865779072237803647573511719964471408148532026540706638457076981956393585784692267144266220153006147699244089807525809527590892718057295901663147566847900477616947536475674782695580948280007957115223617980844329762639322449702033375715841372205797419697066199217937934184646182600880092522749724255836662784443367484116120426523612732097923211453787893174033215231641464177930044095540496146215192983518032919335581773621565704642618235645994765637798712705868048876245908331047085082646178687195791488248318428733006527710107381408381896839429343884280375742060926167276982608446930246784123645055285368893019450434039319658620289338490333673523337419214722458917774577500647090429358828080569409757216981748201080951719317362716733358306384129112860439005719637167216142709983381636389632461877958542411704065664585127783839695312478899319545209385406165215303665672324587590749934892298626921843585147811823809804003569935519743409881508649080460418989741927808864275488673784880446169785409989944349327399459224130248483722521547549203811544858800000040865979191404721737989953703971519189059046182967740503345205925684794998024773725373042246581231152003759539527326963998026739362280975040692930312827043956433827523220689079347105462723300676845926249449113845205411398048106320370699166658899354260887451095825973992903380344450989500167928165002147588810682754839548949749377280372222778228067125816259354676920675853747939551203490066608224955353611247889471552646022599127104509247529642022160942608007739186893380219957062785478138550360180363199085583831914924902225402035396562597221741542261269349410841646288662175288762195432493758613761255294636497269244997142372749428777350224736399861960130428989347602970651311972141206175418181647422166679402343499576177470897979845142820953149159955595491453049492685367220669009561839299296103941304014482642435660411112286930415241293685070906774820535684903566074213269257886360069800850256238994910407486963119134606380164153253258985737508767524690282317125490495942152310217273358466363879306800268407958331261512916885124291118419606950577237108616247575477591968657745388411551206120835612286467434709877359897711460916775975241372557643193288668110414443416910992257476588704353869857598307690818015992051169986733196384072314255554933956535561075741679348491348739392562914913286858498813606374708757096053419849256201748727479445370706110546961452869066151400731952333570256933613669888655043270278966104678210257907623309074752660221225751827386704235838463055176849221754060919320924427644740491861725488577419490601105456455179622915512584075754885062613824334149894686736879649451501059144770458134375273456699599031015171072094240154070518150209920649490868112131029781594253896239303230378663716539040879161652371145752905242962807683209549207887744429218929721504235306035629646072942984279249566830077045432684080713005447306188824326051912707521575376318851540736613940342032858601667249265780473354352832610483513139397315814999886508952894713372508053994109323327844014424334706185276268275593497934173986717212852817128719624877622191425614091090768413640390830180483064127542323486926103414626902028304431541863094720363661466966629496617739970995887957008071071771760655299592443956826449582600660454923760534491605783916082212365702538470340259393063158631047586179176778810293199496819255065380278599597541715307870537269091869706825125417814982662438005481163029895487236737950563091867442631582470297641339347573934907983238935493168190265926466941655063555764685746651914738851214942986560549015703574743462098077364903430391403047882438628900041908935880286287746191034176744099388005472411787793995799301457792118501750736089938914089682285563363986628546574961563624404068408848635767686848342352612724253763633579030032753039637127457166794110796278670201492160574342315104575612684555445912897329066517700782679697746100217961539404146002087390199372955974657610837347082498791421620248062002476407986885917811589466822906031326063669908452586820073398171228602752139616515601774239286207008597993136341133509300662095668294591660979909296694371161363304268034527109621153110906929567852604915134546552380987311609249470026162977226805227911267397864477907196271427545418439543764912714292604434245311041037061247825861561739110664641666987272889969241329153910187304058323478712569614547096541349901741844390016422233591072861206973611607046374974460165628003643798488753178276885497591967837882242567758514573764891977373024162425344530245036646849858390721792003559407573681481741479050901956559399867893572707577307390794410394441088860143981597585709232154808690548327941220918138310474778230268843432818610033266114248274493930138381067149967681144460195437426806460746175849786427017017866999121419807363102151215009850272933805714660838405265959431358204750698808718104627944689658894722126912327410336169109160605795879273861925228573760525055761056909167644131707971786582123635066036411426557184745046816521564098961866916813790609763903231666789377678518624376582182708366662657379718733245592309604567830517628091016949467268762327386968990674916249376260426712222599104894710544717929804832376450145216685807705286114128744907943097042096865626015626920044597645135018781140022883702254228469621409912357068474160926518109971190406792486114447984043432851523544138356184247514050645052663232045030943038042366504334407878605303201582470037939171289687708320453076510898061369422138956691565035047431478725990822320333085572785808636509146777897388202592779328229132475823135719419364334216889596603429661136425969860548023171475567057288262940907084737896969565237497287188680681923849434416580662439428214657054958152725506342734432862191864181497680113334959299597215331007941815801868314742326971378112911600492913755032937798801936703925291191095104588893477280431567925030532593924810333585105790300131985847095894059764605578604139845729228625219245884077427042957998794293952403509126319918086237507469432511477128486606748843824513723735300673891340126692839155053115590672818920976313055134431026326798314114005922818209870931875653180935967092623354570465259563865371598335477217432983618131881552917445690066990747313413458470435854418435238643231126877471704779730879076132097271769051093614819949437530905974065111902797179881616186271368866600154872163220108860436897795273459896638243875704069144719235766465857822609086949648964373201795926828190294749143506433136313272484678107938332670840146171035621773710144828794360081990604069878237452178059353485953498369790328670618359262410409784214607507077909687608779133313859925584202750799571248513689077299862719243179727833726351930378809776459112032354964197619385158010151691160134175695341659448064721202613919522819069086193039910800666635104401399001279240444286789375966836764105365702915809648510270469890011446859412413131071146862145126270596558284774337104253520431139615927040648145968941422268000699201165733345256323549957481450795513317341250414894076699485489218306310191180845729494259783118502119356872102271640240330522125163177909256450365326169587133424104460329237557576811614043040525305462406398007384598206144670051807388338274822570683534352720411329589147007781109926404091363234363828061277480722960185428510610123743727214365307756307685035125244600204190928199238821067512168244491748075311889628011885495807589018666168887509780874500376571738956880675907827135086427770290543266884490731835941909603185636411326899528665138943826660532823529368325863461039176529185908649766209949771829585625246283053306686664248249750233052085242339200485344806541562032561635677672245842838190222298197731909535162787546377448533055888913561292402779946496731460825967678864849125143538392017931507438905085048790156295544029296737306473365882435904002906231213339675766781065136159939618803604082790145577946533872541370555146911659201794514445950941615191536117879365130917413235228082955282153432348120375766120165925270678284226768626496001844976463705394685676609126004600431044747344796664997430535828412478106517728597002771825439980978884377847934209373607808386686812345393446112065978290158348800478736464681591068788269423271393170221627485933007162201100630362551416574456950221395240205387480566892614223882963684994490030934497602764724073413637610860917353504364453299295053050543315432129987040441136328899594657725483950846038139447198779423310260674788894086479314993786253056798894000272297291164607959642748961876278461493505606432600688421426898481235291770755448115291158355068229253772054345000633465251499335064199265961163814246790605257612209188957549814087870052044472170484801303834150007068591936485587626207295865435167594360897973438944439589632713208618088023452808063965039178717616876596377808080236748645086461620729408879980460963883825004784263671700849421239602757782823226218554060465824267257998150805353111114491216524052264054551468613716684222569365478331865104247980424229871108206030396935745008136976727909256884129505747293765265988233350037673754429709050605001676085799696324411780688320570800460974684771232575798598641301794343322021203664368553055897290349264886391031151316184088897197956906397277515743380648426588734680722810085248368667793073911162559381512513515081689385684020183611280190946642734490085915649130881272194157618442141736346708147170921597870142294927122507718325225483331046982429204050604351085403773521350509136215077334203045355211618744576350297153915108896718360236130282889912884305422497949495331194853214479695090081852324246916712040576829595484012993755721635448966479980676708786114948180983570924721472098179397522101310517440867466526456609106229638638691372749926459753966725510734160489574100580811398088826401775697581207038721475114528856097245185994351114246355900793966688456326559053225854955719473859633760924377253037811774848391288106854235335519344798872487396480511541371525589068946333039904882615584269166730892181181568559846379719514001170505346738030113541150512091683982979643614757300845044501715978954689026547504674448665113131126561556430836198229949511605114895459613992292745309609267652895431464434996637882216371029653652595962886945792074608942852083954587698310270254684954116336986209739931985923852793601888582263454167005568144565750003365189937414082311003687107425951523609133935347305964903090447057022798336895910366581604592168080604869221399703889427335079458251268340152436740118489992840016937480624553679761926509519469006590783158652862324811741608974714080093773132860779244745097864393374858702094680060482075442406342095083792039443637422845145454499875215145809122756366127376382413116509679051593773533620397249144865732998705624586970038758667242904062013366019316029022713095360233395437542017367289856255335874352847696188303306781699949410785620127245457990804798696152743239521746654436081252622211489537803517109424687169294487841271457227262906635723464140873336952969467801211586886259983415460309586621889986607597092691454837423986137669089043332540487797370621965577917580708566879081182924335608875879532530852124295597481845545553644914140439155181081964302245174256033368522003199256788349767161970007975791547471988490219189989673716671331223944958283022447719052165044035552577227780441243717791170940307397578866835925286369791545886830681593834219290934176624077363775968916422440213594744843097794906231224140049995027703905336107137560886462855565822114515743752058109999068537602449532060470722988178808970243637610863707366167613732844229668167146201873124271729814781393608245284178436565984833894520800750325152565760722498611983018060173085119887618460200935674760816724976367877993627766606722770822620001682006951301520409887665706771555834174098691831735156427679818902408770303080875171756751821981668894173043392096873592316501980646518243686222527640912731649929904014279482706383399798248991366957963476637683501855560610797059932376137587440436636524547774084218355900047459607277173541757345797390849435097287832947513427028755534447546357043516007956301428784554238802452143656414085613481882128482288991683860391132338178815331580224520824331116735255075549968648368549125696422496814018707651808917934481687607640636492886845494212289601788490796869440504202425451377671015839621286764830447288527879896144812226676053101359599525000159896195113724374009415448024802719499417413270966772269861672566042707095681485172231104019648828680178127695385193222445314873453414313241139452562668291908450681563243081669891077411041388880143654432677937980182976110585806354225668438320214186343469185226893394504605264619704871130000460747049110845231612459224570268824578712773668462983530658845081234401089900328286567986373604949480112990566360313544559311493085838776918030065361109047121108773457646862405475678682964858592759743717536525872887881544664922038623463976405764212299655851430365917068928972554205223473202456117184401478581839571718989684987299814378319098188025051069769914453341334782057960835944753944370324804196373911570361466128128598820608066847499574335932789525481849324650450565243891008470088848372407392851912404945653287643787687488331205397732902538842015114649728806456022591203352234594132948044652540523655923587655960327828063151899915673035436556672318500365768936010473140848208316304627510687450274286390550593735501316773623614543197498200089382812503360478642617557225295036252327276641062708670982313628931306298805504825592079943803356548502533183504691743097558258969190168417041854081868155807356285582357135568085278626805373225171845248245600808752183710392297109999522517260655195129281788746596669353127301034384127671147792150234810842846083254506101084818382630367369140464485532246967764139609622658561380853958650953816106277278317547585779513705155244477897861544903260473716783350058161142500091505119737594704063658055130086012119215651783906197395096836865917883546995076273545509343106299887743673939493744033121863825941326011831485780204476658820980973487711450888153052584321601328212202901945424362956153767330554986832187814957582505387693387851878468694528042722448274566615102909646858393245504953350506389646075861732610370522781289923600408973001501746883254364942081073358955396718412663999628093995171027671754966588272763095853532513426257428759790722982443267812921881983816712277104592582266932044974411888586138246646824530242151448312563358428039488885759504777538700744112250636836115195128563992681659063070071007675953492325706063510097554041690855404535969782318444943799932049176732668415103297310549523596411673758965007545589263487570249293900642888589552152125781550680937602661907377910726462452135429893641413417042467064982414518180853834824379916168040638956416697087050722206026539435711708328682353184264517987768568189443006808049430438956440028232196844326534810707939678972339432998407396370643957691253654076049964687062867970102602505227011262436177592761288624185621328291503671133045184131129215372897428639981789953428157955905918816797249225133287315393445884325834842893843671828884978347292947534246154854074288050182005589863100108775111928798190724779339708531051970324330923092736619863487282720179296682242368462874973708576509217471576865614230440431938540737260037898015382435663942128448917887444364086798952307814108872639538984512650041266859779745402687156531412585308951923922885680008462703663070975173507727215661728362732264223461794426114518307658694074470426973903645524020861546640592901701579044450776592457693405980124560175825992734913486925696152662430479504811314397617643658170747184903428575691464476516852070123121495806080074418390821311066202442796973640564518813460846980547280322454179575076992507787296141075935014087199528204905742002746821801767851890168620147450579385673389434836540576257046236532942345032377670166086697950862971543081748493719169642332220603122673121670590453668061034789631626005483172202566352015779389533170166136922989751954454945154832959576245609121824706366614497694913626025295006089542241760552820195453449010680801021946646907089122607049064200889399706721600572694015012746965649706397944053789463217639216085978559746650971323840774820688193127422460415093748959447985467605541932382584174669071510446666204800283592995915228413262824046048656298476409523760607453797191643140857371373318202047027260033309012896272375554987536720483321394297872757000861380702025189185595750114545116188597406023067860009097946353260008991873581294590255362215315444867624263068297665347860110307751667437049897569909573542210185718822914401066904414653860061900586379109155677206947487030755729393542808149018558600782382550997879931723768265263538705475142999295149400420445308131029174395337562240700842036597269701744716617739653939545302324283724930472395126880097886894733827605431342305333778271135107558797410846535094949052801303248644553037561309234578488805171290092778997231562188735068379355495604336381274665353452400106973430268769887959177744502066126532906839742979946558591516032653242049857100184930948612531303514318021431116122917140039863246135325994727419430051157556794513287953585532483498707729979377936781681817356739177970047070272459799594354805431306858884293047009657458212086599334857991505036763168269658288154082942066502164401073874867526857428517037911497813862540278158272857768551643833251954863500047248621044438972848771348017723236228906297283731779069684874114526430758569137975693325805866487007020592598980265552688127640425375532114565372721067408217585407400093285593257571888006778363124838596301528811304134537769446857018368286533697153558463496578813147632667550943052536437625343178502275095017025118443205923817040189725205048113391315896939908066309548230336179237432852043279037459617501960915343892925906517713661373901683674538439045691874326584628102994141815311758180680143228380575411610438384043911335340099051091296901085266386782642321196915445045895997277027984318048686975361012393290502249287325742347507593127598268874064359015321011192856181309500932020132238383938990165903684215917746236835751431200944897864945347187006931176317107752456996824366941305248805997022033897027068578278608898222375299469656054076662531644594042525710471107027228719920563931594577772771987273550251432354247672902338020308552691204485422294172535822414106734345813673564735727790517924288556020235556840264975321888001275616345407700065730635579416770517077070860575830091861092341834291986232410349581670560680207572519052752354761903196713439857459482847409233198129287552639262963071984172931964504019982530384905749954036187824411084293107580312165738674037872566651825110722042789897111199317625547207571638873217400429301249571302539930654580122132187838972290348776056018743749973010220842416889972914338156169876664817595477566169180108059809209990681874337350318128541450113771434335697924923772148218730462605553756897820154975621472386694399514552777905927890443105550242955574945425574567246526155298456035162082916871898814205734979153920604661353911625411345199265171815211451497940725180039638653189630494227798940891296554997577180545797971631826983830554721881448515350676750526074512250231114281308065077336931399808075735594923021939327699809029891481522536987598488192021430749136018443190915298922969056288143719701821643628947842689140560030831720331431909110318317236040227691555522490360853655551945055478894307628886434395164441795597425443434310017902971027490490921009951960823486021490980889121481153315913667469059473545741731576182068896491566960552105579720568774340359603506413827983272014503985063361377273225898836305166854551133667015019916175767123021843518161153300711599989729392666927165494566009509349357876782110427362145146036077161747788352751008441725920358564496686555359273244195281262160051040551375250421249485472972070841682185307728079511503627509760367103495568803334984298705784584283925674759393459466894850589070911092688343992846812555483501850491075184178627820063924776109056372317203209541191975687560344048101653060482056283724981438836919141620838478718982415023696458577976956064029232829844857615421174645764617346531947898868577462625196621135773805398723959156666530047044554899609874552125531332853557856220024236433979270192908207762962478441966216358225347203130958303881471804815053540705752588596538310377318691700009379058799503899231287662004084595217400688396930870633409493793986495647525356827944229076020931496575413338716115312164633729766340152259454650195756949876281089968289073704480148545776799606375488972235389451929519754071098846169903624819272564109319181472243667365228517883906284392728290582584887844698207425360641308936470592143417698251191236667723097151023717437615863163032931447641573031025488079988699104217111433395505564747640629740209107068455885896856926898677715637821934967993020725328725084482189543072202962150271160172843050918824408796820254671395619701815251261447588309131441152349039738195872211909240389276650063541665362678738724698042967542649157826430706736115273267011085108973925118352683789305851526052573405331934811766753073191414671195709548397721116953560147653691786496227456926413807661673538012551192183945124871345085874666253769583225751813173836312726627744973143382386295829364059350650913568058646568747976104024278070705358036848506810587244044788959725126788222643642246337063330596260173747401620882246932446612486195158983587552249390457084305962327667370654653223543115714577904057978480039100069042303150990693915195962164944881673749219738355405289848234401819018305049565655922689169215768607616842540381839464500101618154657661076274815962359706001065797137726138119520488609545983673167499572646352769299292725951191726701944542151889635715272070600447123746576401845714825233500134186393605648015041128798958985244582444591496578962425668050139091245669490497614963376412517606847481110884050308518452165785955136053681577124048200161368826694072563474543515889789173853539816464270854389194840377477230779594245080551204141163664948964837829625518073114135178031921145711525496845651376822955103783429078125908918674838186373842969698409222077137489434554992565447573438327261780284654724705775591444655802601152695362290872035310519728196505204704914685741716172287251084462613547642153469564894418034920849326098576112618800752975355726789669925035242464936102294515940718824370919294941769182970836159912553934287623314924601474706820386322116854496394194594082660390696328911168372811524155640705070535170748571147190164286603199920595042424707870673752140995944883790250950485490276800959894433108806059649133178157667541733664449960185515185473542380672216690736620260259270841118822384315655009698489611686105136260355240854697694234048191694466639401541466639677963065729066812452727415267223136606462625862540575891857101743720105673727964685168451779589604029384414564103140161535421246353206175834892002545514454618235401527330542146053029467835532270877143902619715178797904180081969742720440082358862918062776748649216076893563765156903201851917978534104796387819553539346603716040395209690316599359758479302022880731712510117195743415658465252520664507769254180293617981568164119584806303683676516098091625000400009965497655640680810681745444297291234013078825888375324440059514687719912817301584309038074227315460855584942699383660559606063359192731961415248475883415656565713606368141030669396412773109234698913754995714305147370964112336240552984495510351653763821926462742649203808065672174472432489056848611818658470631721058395664744340696378885071533367878808139901007311812594624214326539298274703978973957737887551593085002781902354744527593201441373100635437382548971716243235918323962027583608253877174319473822020886327945138284067940685896063811711259963970634424127404298324469677900580550438257436285517482464729340994784037668414681559749371741297462976557882427009301333193606990991378476945873624550993792138505737371761535267301931499022244814148723334597986662922443974780171325276939665035168904739645398423146773163538053994288675263548275970178206210794400516326281215694665855712759182068000247916208767027071198057390570123776179910887346381665202291347623933624219704339015646212581216158397061242593999758421292810302900001465991862483879863394240479674071410988163460756079684790667115455192414733874093492716721784685829461474960670963015344112930019098028232583159535568750205458151741048342766749859143300932904070126866366613403951958469673164462432941976154581157663262090302137101930239729028805734233395657744464397433027724416067020728792442726461530749914226144863886204591904661646558997716522698721474496138588065004290828336912852536608389639115450860070033349971971282177609778522622898326392898783471782705894888649338871851449535513754039937554896439035871567556553669380299780412620023581730219736046852295146164502532486703248950546268972870045105810157671795564020897456408436278762554947583453317581826214870010847756788837344466929893081445301362591007107143349656373120755188334621505897937039965143564090123902358733848535486271434697736177116883177929271949124229506672540483470260044648274704314119851426545310698977807319360130141968577071372751099996817347114230534515617988575050385938895860823883995306036241107151892416602065764604336640308107105045441004310343065959559196529187852465382146563514727999795613610548356468444555711088218124625134256284587645001280571610314285916404912219095943369266179092875662320696153561633237985878421338853954168523118668925756088449242280075727720354151120841785626430096084416534101117066104596422070272705774218585513469058327516710937354034242824785828991674971459411582854378820245285864363797310299652653972627129102085691609295519801044935736442075506210582836658088928335981268918960566435036587133686285146428949428143122751552035572221693942204289244621539545885616192712785937568698440609611011674706303801400848138103686151329075802875138996406451338056759753220795858066621666383448792854089052144841540837602474202523620406457103268831031945239904332719125226560099551392905865839913564190674095636724832787322718828559393748553318649001051986482864717333991156349667058410460976249540642419705308484285459397334875352234773572426677294763398664282990247813661058037141548915005452265310431672233985307909387644291097548120263812323763930862188239410454363680270587312803400974519548003244931953760985573162102746835410406616492843676319532518256195240919508371380431175637431710096764402165998659980171085251375980983212416918954814447718311660907986591647322422134811805703460317937408579752295556629379676861784079597729380195719382467540133393100001772274108885379602246229640406356490359323204551306160863277434908588638070182538102619552988027401229513216574199976892275947453076253006714505572370830315778646545440691362932385202803821362895421737280696621433260569084624564417062890380901808706593709910613918821871605333043426354610175253923695728549462674170246772977752750590603735690337561289958549310513415882596023994422439810677125584971224081213580392926069868650767259046346554325268353706128165853110903120104070757022204678442960537723967187045822364022394285407842895403922339033841213716568825393392941602271635371320234044643538617022230376125041084102900619874318227888133781556212701526128553469449879041812625866316819218944440332556853678848965494896550904547068015999564743025521777342738238985669843891964234270824686139433192468899843487791948372837087980069988437940362182498198322210727753670402467188680447553319315527849364687936745394994204184106868100796264532825425351008473786047308733605808894081498128553429520285224555233799001358118455844802503378082852142292737742303277214956541770357387390192491679315708705488495548770990408332784966207814183518290213763226551771756604629448252141495999225280208371418043398620026669218829309558320985243507204699081975837616116300186089164190842928046536817444644078444335712176710616283833658247375832938640870253596635566120853473284365875846695078568488899351499397116098722553667788257681985116761621227762058901558952530362392348542499221598598312406980513095882958974264964395517742200667445526618537890835357648417805371534116205562248588756540542534120355435733478200867021955200921796220283587405674668463378985281682824824882943960408341329500468557155196626750373520325686565209103267562090359763905333665568926331437608084725147634423064258612902733227689038165151192842911863734827857189103285315765803395693602521770332796280830132006544313391320081827322180778022370488006963266129523949633825999073241821745884351691451916593792421581057227466687651648418115135495829338146846344359504646031905798263052685314473775438521257483251051753196725997118764497336311214839398005369627157837694692904480618790607063798264547139078433957245312780020452622458143428081857925962225988887707279712275367341626885884725369662857352634687283887921685475940413798180918204848647122101690534982395507111465227866673559175936372369799986307674936017208025042472381730502044917174210220716990998219906761668905586954197495590292888538537692466386812843597053986129722166822074584578413122792762694741356325216660457161859970039894601042340900419481828100770574811527921999959515571762096089665757864909955850553509793829065004836627864176952718662671514291088851842672150984034722229903291064622204871318568573338549354215924517618897290024094492028133499762439679932605349852265597149416327367932381547402226142777035757718926925808858996276447145221296101353212224658218963170652691448521574545703212878619115212237250121586457278000706261707755126294246220392935269095439246315341939817432158755396067420983908190740320430452948942109080822256090531287658681171185444561101499451575700838815282607467290660476040872127403103661762328147124977516456587074957982572496396951775471299766199656195475267075394388528299248251122118382993433070950803497725559132249952790068853397730393191162430040398149935283613883859539902173227493697068314144428471497365118427933296146969828041667251895811344262972899896143185116591506870461491518612289936336936398433068178780675678370520908801980903467901623907166182223458601646046592960160782103846133238163963846001999147731813839572132919522309447866522612756434460215794798982477679464700139841952180225264268974491678705416966197126733432317495717321221641560555729724590687163090322013271157203222650533587492683876492538956654678011308370788576153226650887127901138305648064899520220832330275925181545235277869834936401463849050917968813814457287323458071494250027982882729205436009515833387162620789242304546872223004824668277273880131911340793091192506452160313752864781528223220822707267363890464834664969636891234759160262999135458716917014304598409231348492263721904912616512670759333570713169780913901856732261831091387651972481878298357112794632649731865122735657248607510727347234027149142232570211733869206577836039560455041420436622146701841230502434126625014133808728011296750445294801229184676170309037384938353129640621426796429144661563014682082979600466962432534661051729011711641089139037876892703016856880650721037345828842915249541816702579558758513525865744567470886347738683659682911361457073498413284191548486953443451917037690545335715149276538630304583254097206332933098985306756985125921139244347337111482046675250511035369516775374112492225287948513945842218490046336909037835719581814352958536000571565024051190249818422534520438771646235597924930857457010683527064036387737409961404352495901689919742198638775306160358672498478918580350253378247774062855796414797309312434931875880446098785558927633926557771985993018179774481310917964497099417132744502039816399699930459870671969083049241285366184359122090365819769512402980776390521692824723282151258233776042256408441842923942782401422204273785076889066906640984943614784500936080360859951740299167495846690248559568590858784618252386222055683149270274990681196860997547876964692272656279655616896330384516158704818663369097819455820432533332170131829779299420732529514005328547250261999783020274417570128523770256944644283162505733202207663189156488494575112067821999430343363517494258283095446119407173531777189912633516292006446188472327356022017780219400593414735904596639959596204867980655965959613222976767883550269828691612212791002421490018562689490565680924643310895048203391291757025420043462514185991747333794189018997819258797604222511301894330544201326496814911999712175351068011997847716563835896322508362599486642019180848772854087828682804455557242838375074340202326146561292301481612410448378813075304662579974283467017345050533121606365426780454105894065020433356103365487447140891615644598007773860171510158103568968934531542433126696571305279588706339695406669418477607348554619869729493058220348133289138673473414844213410347655182441729637038120084271406934260892376335463297977611819501136386304000006038119580752575327500695476451517314083910637091261983024990654685634161270356483375553906104420354883972312781180373995295037589217177652678155024589324125769989462629457801309754438997053642267646951848092715845764751141617667330572880314343891652480707039035071317716506843648595778205337467607798948522493076210610299932112956796530713708670908243165720703557090110646588946814855077898994085509358510792661613929304110766551510607078129616654767397721241432960709454228966314492385558529943101393382493924737900219218732155734451212400648640740781234440058950265438288547636270369650407449352848004521984777266884850996299719765167667850317002621243188469875999816355929043825796142651723831325128341499882085064713474106723809976405067324586685452582719531426343726268543382244536676410277904962167144578223022920046207419536141726007634371351982292851442426439014043558297420286116383156176720464489918091796920158882680207170497426694569972677057020290846617593813160608345561007325945673597896298863746134431310238719429349606775475555581939066513684236421950008864002801381064166587509534467108502796205667579067262786066580058677976073262783104617758724485174674185671794666455806109443150942656760250231721702189481915620030689922604159402961427159080015418215979715307492369239290401453646880612444971689211574187264131460201290930510330942413700368150674668578848330762467621280439619387100437822903276332215470066197390158458002914319372550680066077262620198578899887407712496395546502679511694439541993638852144937852817229839766942394036707693444309312603177072703300807188968075868011807055916200133554133228620875976445586282494364507492206689292365373870292705353901677710749470076046241865776979543319266932419612413660484729056308093571952334429704338398526892170936245839934705854026798387907815088781440716836635820798218413666525535344165439498586597578573963774458869669982608876264091373695224374481080244658442018990214084653457236043085654967040041232323737716310496215532884994043012696877980875533931628433057724152770200675530125540856700492557748989857986906191884804003393071978079564252438306286819906476931222538168242890761411360602743504530845007125993617619964540854616534116220811409448451864038931939572720218313651541914055249883184329939039330435404738454260395184797739405969952846211634069002645053726549316481909266494831261341789750138050263744201773270625825905644797549313604304320883334831748307488078150556351369791460694116012454075799798879470580812166457914596424923670542794715282141949924290947564466815714184386482877480093500506791583605621920273278591445574116288171188486323904725117106885217867398341717506206388224684714373320420535511200907250773690724174175002824696682936877135312690168028736117777280673116203199684962096196078613541797993447075977556657849604347642691320538447989544548247606735778500603347731757124547863543836570816955412919686504174789130749856298025816640202652444604648686935428440683783416990495674952089332013296844552271048613361972931178075782201732031922036268223150275589656216833735535436327223436285997048612081482828257168355858786089645149183706352880903718785059254655275174377170862133276363751445200406483497797132719297476116361164572765988925214015965391501166189375739997845243113165268585136023936448349941875489379754092593601426801692595369273042515283039049815877748447968287592398037509108248978435523583693735514864979521995161158193661512240606072925632774985603937112070947300250423244354454833393966638352304431221856234853518712748082831313114365443493885735611327406186830385375159099204220733947005064176234701244417728679743599169848482654873256672831931401430867421925413385886403490012198753084894952746753827010609252653813221455882717089334140009978488415577790552605982709833251744797814913314189926964510440958393499254769327153722782482797367520079834884602276631700960936290202097211661031088428186303432959328277577427223200611771085752439452851190641186464722945541063328113759688330080059949917068012229705098098641898147160804170884307420062204088683186579416382905447183259209448343601913683774459289748546210133667524878678421891519636369268062456813121623923149032164147376738982964169667181653111914045492352908481631354794351762374681386342373310313224910139458497937843257851632874106244418107078906361440548262569094626032182029925101453241473964877132277262297434779740298930617375644201047029134217030284153841532362540562775897938216928285959958690413216817013611258828721102058303734931902435768900258253430679168397224133635188923595269668412428063645342327539100930952677281901430074152871788694729238427487115144243317359892462439616603373451204646503063356608879048463743887141499600841628892763808575545618291585540631217067643042331161549523253917097907615908656193979841131286024650148070992631741990501317509894422111306775096606444025968280533006633390502871969064773533557299203829372552790618863176756262054689052947293657750771941322939836282692382087989463485923432314712871707751389715972532461215030270932175120001455139252483298641858774935018983591135597046498112973726916353818479089039832411227586338040813780111378209217763926304846503399492499652489943285940701809373301284291714537396806801927820279861569887363234110116830297267805391340843975797761138614494134126482236132542862699640221918739768583060757153631254984097962019349007738734286789641816310452398472232085321966732770815336628667308011758918845221599661027035110798997205386556535727529434911300671931067385990375311575638227787433236216758489869870395997321598084751178557820686110621791267896683813257474073443578684844377126855917965012081376635242744180357941315117459485938670074316055827634995264608471619630506904218135015315523987840019235927520290371215782990825046487913722412028671731418047966165976479550862007557503663039865990915913573931406385381542283811983838896633960600206003492343649909775062245989976482119421755271540371052837226111612364058703756147269162945504487070137607643895268512626160599206422183297228201698837198180385401648654919418575140209210294837371339082183865948349653344284678398330257761059061056264022342790475249953590141901638208128825710722357786186347525417250289944592474751913578022780974618924246642816429936142387452468715453922900989769841980056986468672803262852812833286848993822964075339751239123268200318985929540215174379710670259349395852983714737043369076429254695903385641881591547104571164054216086672947750133044283938595892675492438238412073708650471724987638674492977286593075478197553322242232020115666068846246422083445831822504938386772629949757594649177561438176465933240776360799780077882934123767699764227500169390289574441860798057384127046967021762533961147565117430479740251875994472215979948768271560800268815003057235115123818007897927425923025429970395407334398645921068595221406411888611977781630949141774389170885387447263728038879662206984210015034504761653024733256794070008081565046606214191524253888250655702860746217974171032760276554935646902199435553021332200116452582829674802555917332858917104576626741276669491699566977639464241632984650956360470906818437384030859943590705471917789851882294177080965083666003195212648174968230242998153658412156875535967370954164737182011026749879210675228472158583290835598436596422462590519040034646488234685869537612792482393213455919135046329916434082209519091369128220436517545309918290938401466820592127470519465012944910678041228414689648193390840645830729211435121712332566790836999877593622282302441661416130415474109919032241736070043821864528226289059917861216420276570099950571736061424915088848332308805034856680270034319939586446436355443662301198435021996049309275571187677161868905091692878769147101980561848133342613690767966583055107153590812609194724184249099373715845940430539313332204387815414783786858390340189842538645504491605953889736620298467461270935754986239289790449123564544508980600369850556292999267262951919859890470594608709863292706996180709190080481147058720222521497938686520006087221642785934494705874790274335310985136168706331758610033768541611127895997945344786362952136884676291648769649224842760501080712599128403110114382434286900042947355423821570883219418342639282463859714820735955099110989090917475884793812291709351372792014992678344363854397164878615963095428995640530871725293332893137993910853058734319741288037294019315857679922105513105250309636018691385150516616203689624156603761467724776571330161901495237802395645546096634059895204740515598314959249002631924930603225505521859697827586652920390279719411979376268377672773013281517835604179758282890122767193890097103630280174410566681333343661798130011974342849055031627554980700528841969491758403814823392191322050773621924088201171418986100288387173319409653891742800737268591895702971910714018190056764717272430163852688331670804424148787654163901443917376410502149195039693759871441754124710512555840689216621037966293541462338345198131185059427760518173645306663934082269489164454006864111423092180920534674868103015924097932978011912084079963371395256917129503731481426308829263987871271773414460717151467625311508074429962464318489001482990817278321543537378642719172825659140758237469921376661045421166812980429050379835715418057376275043755357349738637263279650666001202692819460840650005259989908195354305391353871550148444876994223045602837328797650864353817820383262520575267537871415971428232683979613095386079721109579398682227491451404070817224923382905327784758747811362535880821813195305549438252610174434676739185915157115311772078314632014189544676552780150295792922579172256430011597140591140423870898272439886421974140910495524732636137885451496541334140843534447612688298734133555521240401311401109611662644873787453329131361703813281187504907591573418629770110258611366741075121655985312457429934281733190388024542171612299987713366099439320967007118580271832099126229647444602532742922507750163359151560162776165660969827546067145265057378726726533556390240833657379267443464315710152994105994827782355278042019520411334841550305304183097274455529864858382845128491333995193283555049147681419803815391299161773653098721109307993628597417776763837315152884978111090481660440971230099929906960180336547669575176101342334118881645491565716665450277458725573776369142260825042722331997913317888292591672488694647454944937090427263868884418167273058839691444316733838586242157034234198154478937095590276171091634725841085093842595288913861732633309022025065760038799212587678900724506435227305676928131008124615959549753898503847630015523490686627216676992465394018969419662596003667687618438790366682939825322142609621909132530087255971938923903576582109240111184503485381763191768860751771997224926051442609742191415586487630705693591461856707036548875841785602882644643089306720440516394319761467266048682489820413433655486092784329811719551766872514353802869767686563653689345430070817650785298309674191877369265963969533299761499279194884358185060040224062477094651851092804669261658958802590543410299710403601697304991953870780670772730230074382791529002467804208236813702405557808684044812870403760990512837205829756273709900704176237632305113218327634053971499038471844461547049098117833908868073144829870666402078777520918371582915989992941673748929722846401377032383261342469601153416227623837798229219261257383768854341029684610884365387388709763552534848395198730584000557414062463563512185706395174739590509503390683367585208413241315196258562127907847303111334878119040954370735101812669861289368910620820671918153010369417754984082681105781376687983763479860813443258246934113631317225337404319563516683641931614041092836229177934725196047941790582964118922357627814258574328711603545406316661509010820676490844021823754423248219054254976137635095839097897147523343137527989355279103407487382779824712634482844774837434561156959825680408408200124004508933709368445339656023770457828286102824971825773621618147227450527333449047485410854879638617897251842841511703673215061760711656066315379646271243255329021461298190260471433266025520308986650417944137541777991343827069422813245247168648593113826927518533817340106393676845989945270407486901540142293078460256645593098498737962321122679145374050208646730362028223507277613324129618660928458495353341348490255095213471115898244287096955614819045526058943439749838423915656906294871010071653725062445362699700352477885560064480566685958631439403460388137133586764844117623550308469415229580895596566089055084025997517612130201331974277934686094579775340321188883511475854322692292791108168726048748420991867751322267903546195069439190510330913987891852195704762192493692565943174384727916979097836189349732303143892828517537614617688102719728137791719114610010647356676749633364541519014616627453820718884754769242897083630837992650204551653024938136120094024759313090698664302836952341561439904306630377963136587247330229667704238107243823068227188657617048899920906987559408572871099093507415757048708407616653335359861567500651731103188772273087297380747661746082879010701105709313461220323311902323020469169216248600262014361911938002612434757499797221412535398783292297214005538194476012133375199394901017951182042865600426190202186273498831060114235740402934257366407766127810321214833083785454569329206704446504385580083460317214039656889436809321978285218197933723215348038872625203632243046803784433378743869737015587539659943746692186466656703403930704769170749069761377459517061645762597176362687254886398153513877938799297002636862341912508036652666198478413930218150862220479051469248993142467422150395401453384339068487180220766296958543546039010602042750767646216767506214827584740776865171018442696414113760995832529473069416410541333730826230511534747235075462418347015341489480215335104068374939392334562165342038227430621974102596209217462476546168304847433811663152215035769525499487135507916428309429611704136226902770606072610312081606006295016764002024721734027322169918365022967865416390792628182469737868659691989620137489263579455191410819765306075087718057427339631764540454708195580327242620994409369534209232427876497109377824838766688186026154347743480698228519522650235195041365198456866653596129532577086319657653605512320433860642780831751792697213669509131940715227124865327920134355327273392311344155261578274852824653013589760595878436050348039487881566619058195157791640297856045686602440185706481808891118805788591227711841926940407364727149406553645876028015758898079901636615854044432465903012719930922393183390250679656383140976574029768725612153405734527188739167784457057959051508554039944183384289864484806519889675815113900520060866252462378289147318374277306007786014992784834406451091109109208148681018511751245096232731009675502556629053616399709230985801497753924423458774428750032524517489445731653828528741578270642477753297128001283951614308991623819454807810279391002316834777516608660071954458121140101954817079215158806077906691848727899416151794296241653540226094062172446081778560167127597724987669480956846879476439801560041389313316774005993722774296253732713113438444173971177144769982278203393214669530068813134856055012406445657705094294998504437139612908649071882997727619158344529547903519249767842175983820813952184423365740316744522274316216624296688348775601220591117248573364112879371945160442598222736806813222444250544998555147367368653922302122422224406979877842698321119452361844975137608794588886860430607627750246271582529321132496875204780359948362045693655977737495894667899826416567980423358270663813641780506061113831977468278498260787035323542618035732206254090044097034415313613385727433257414791448150181147366092897353278415451134261644064954615666162597408072836025623188743035203380294695288592967552681711672621334434824194573903836953169484230305349427265286817002379690155894738227072201589811683202395726588464677899458598408234046839985273633694214893153127203620390801265107108954642703015024582942525227684922705038904723765418416417438742323612709696605958003094297680094179567734268414322354289068204067777263504432021339110762510555108608739474069401483516418882631388470025098389181103644362117556911140561529622172461722760166110173419577811606305323323584541179744609201636044092311462873294956201369623838181953628093489645770646356522161735252653170102425229175744076722352018982910912306165898648344500059777488517356371981915269793504497162588285873419508667596117945327081958131355804869175929385332495921405761727255802128247704736747647649178613114684417181220916908507424914885510579265286454787829705793285844790350043314859030787583832929757617889571340026762566400653002759370127953087987461876094162535777739980428521833825293337239906698923386441597019312385308628530783650224163823916333952933448656871318922641225221363969607631556514695068138658433885241577783257831657127323799248743457897840814072817403881944966666575330598238679304548562941972851543858940119631603180971886049835626033439360457671987674048672474881549210670255436290197910702352104600544151521364464701597269673266363070054994579136485168518187297186417106155804397888240098595316270397973229985874353152992818682817949832266602269098956973217868124628301474090990947624666953242519670654764736831437765627651015039085943494714426394096214227280623524942813637230288549398373206639008288776064720071448555413152442442515195431280185522252493453736430506007328555603926289303655016104947565249333739068533502854241642968770565965053426675360287559698199908862076246191063227141465730011784442243848933995045193263286817372530869307594744014277548213448238167968358292921656156341638377425103822522394695484047161834479742394400328733014549423585536026901870474769679199925078938403923201376065121087203221884491152793634374354871627972802532806065064959256245308363225414947915925121000043725982456622404097473378871510163497302198531498786719745930412022197205042846234537203567640586766304515904020838397684429907945502466940395042152583535885152737391737627437130851394224649962595611375149222748305034738234102806750834880368965127128136968043300842220566399695766190906488240728648473028085897781412707067913623929066187803524698578053163072193892252239005727126492784445575270747102000258054474343927604966593711627712725367907157067313263532436619647423448608917641668143686000602854379013449524970846411366676257689886715982408739533810668792114096934756873729292844729093273045364054233672005342986149666506016648856925030450655169786165984363754479651184252447848972003788460390539101220691049043784580900822068486632033273861939954047220845325840433390840460541605202094238985427097491540233385099064571858250348970515957863705302756009340525808547648476180397192288892966802763887080231393897242056514618385986172406779651941203765976529506441914352020510234924919516585565554307982004465225397180328312947528007009511508875222380271268778960559596440799195279758757330205688396753623085225341030237299041378286606180391238390992094113190484021627959922786814032226874153667404501915102568038130873107992518486363651111352980994555228781838248799610320172813626563007888713962150323915144361030281785534978017607621320738091395767773809582095428285864561850179774759467937892021035189437979304795969153238019877933166734115333332953182271518681206939191604234362397627608883371736211341004500687785027494260563596997082749983305801605992548557400516676514639649887648804318710346255329264242996730966613596801479359556675292730359834532363674277797877261687068822307290801543324949664194626112393601082492676520678110772633027958353947349516078068954120436226610483551919906334805936685948386973331771993994386224915858275417476023051410381772086053234992144577478385163557915152203977675656750867169868001523175304195764673675901829352939920169850194929841670137150327753747740905486133180766171765011748771510191726594258890621810592654597678316988405479055496837530331973596712474764879923738821277465514085141619510502817614410273274440707821238854075710744582758914381355609422345456433508759304298369849398071003700719356710450641617730596987423807745462724972748256419356549183112824630884956626076504447634703068105152874493915453219767085251420894824322738148794249396519783989034378241232642145426810163132961071988573661992294523046759476264744887559402367377205524776654416901630156059146314529758285790291405632759347153707722360843710327850159496933568133831241934604226419476933210558198587132817138491829175045854638638021290270911963804351703086190085692511869710548004330114398785108489707356115022608337897866123188534647058502757931530197507156119075108928681215493762571003499507232529980687589773647384318169826340078338400674216414053896191584542384039208367106846610990520223125879375082793572455382808127275720765369097502946237861837589603550859802598635913056094703785854827184092009388924055820483393170153799172410824004267577339825788435109432392883911488395625878247496467032390415430502647330374093772413053742773184952102515404000676645014792352917691113978163624949306342997233307661795968081557586240178038821340959800043879200304036690674594627225179717611560085204067765389719129346192837634521829849256458129471970408659859479497787181764937886889385817569231452740700562870858853015126747352520773206900562793090809901397860207069113076973540067693324682858167231276958667604461960506579183880801220059470686095897427291899464266746702477169063627000241686541368536938577455662406935914247864448994924158025279566798183867440266415778368783334001146498935171272319140730014768576296567916543460396799328837255410107151406312203233697423106319143647412820164116768557978704082251999793803924440483042079839599431378766036200737950812547754539324656247682776567898817826202931481408100655623156813478201039879730309638759673626847030838394133447609749143102948809572352005130028020550137132556759409760445042483977991121763452451665620530268529539199216826948909083056820652641990848288172924354254872036544355972526777981872658690746652259803855381505724810991614413185410979734885879028889657471885382292119510162408138333157320186263665249177046750888670696496465592434888933193839347997443799116055433986287189975621866245940569361613706054057747122173354029872087258654070158308705176025282507461037228039721759466540354996632189535679594747753861536480290687494557772593902278293185323586217398918689247416540245168803286607172113622554787488807096515582402860742456879553349584110789243172616094069985607880062350426519459001043471508049357720625811248183491734783050093107435390085510791237318741463872488494187306195857785096885360260706102729675128784466846334250257881257673180702512384488996578473423378435370292698101628837897779744037826138328198616345700846549749339435112008400785545384687987574487879026884078862583965006866892486688988847460714926034563228923361992781568676663103796589445505271121933132792327259310808696789530449280822468690918889837432492680215619066929420509944182672923873331692625954381648719270825775211540221190541926158169479883052698969181784127309858033989816454385732181904093683697387787748244967016501780990135159723539804538580508401358030932829259978317189393384078493564296624321919365905892362616465578951129299629471295825932397335318661444586132667280240185262967835733356819145922695241811599909721854747254766078207693458566683231381110940185584641915975097790622154025160697821863632583480818685642914398904974590588151718354124536813517695808573819292780953292788898565962459398165253410856268387037048125478118495200626042670540300354441975765837882022173178049319258104543765497426904756757904453766215521863756375039424710824685677219911629544999536441958873930504786946596595241033113757714404225352763685911140473308219183017690804949108595407824099963862614922422408916892112904603954342640000215438418670758789070440821402879163370640091408434049824692375525321644813088519296332522460691476114466046057020535513145785822529742328926351971486048009752928657679870849001668767129897404062930647940639602234655077011050487067712174902293396555212634279635166435934908110479505047907718263434034459258692442392160133577900358403356070496168464950628556862836233928230260753141922589209130391241852201231050703953789026679984031566639378343953418094121026450003775266062442522277840465759329609277523340885390131835727075668527826184932575936996614791731064158005242593102000086339776078543281437474758889781734511603268544593270144354693389632207042484742788929872313305742283201574612452830586680540611413329139431781818981925985998222175934520310793922183484436351871763678645871678417281180440021386002678589446517830059579098218340454553558055268879319428561776164999733441086980058974795850588209856963526147780270664550700016847848361993023026805854310913291613316119923358018919865134622843968903405253235383893967943690843905450921385143232258018070870945183765344283653919679583473054976458358581303176612593943178021433949695551122681445752149372828860789558731486672341206161631439123522180262349323152435178733320543107398326269497661698282719932637038425084185448200342324169520580941148067859858861623239839843443022875947633257079389649337447027717617399332678222355352556926479571060966726205010952695756386553190722341551011007992738952590195706038954088927321410821906277515406737401582493721202291643750624830587449858881622830098165412876437170364782631844145855854714117459012248276935773237212646385637221044767612166069762545634320995900069962467219681950355900503683211803393096079545151366611024899453716595150673609960368940360053582053453907215015980475969046023095225332300241717240432050965178121021785367410812862431712877730371766687613247745465474020628469309654216035286843795776015547279859099935520982983278240125166270096604161647723786225216706954067244653138775040424366325151072284087321780221685347680891643647681461187934029500883329494760947914191723443039159806754265253165471428942246426304043091272712648068539377707871547950326864033120282944293410590352204595461806508470700794858577448941318622204843482576834707438729583281846935582084854087214178804789056040337009692981616711249183091869828084615864146849117777646940927070651616375452914405389174064576123490618264344065110688368285780168600403938271059679029394655578093871170975718782392928210806236222625387169149989412298958640100590679088155945719783804912851400972813712739386867008934019924059965499375916121137282153893651143237122093074383906603785222973540855608467582427312863544836463848233371173584677221859625588960570788399607527843479455514133584064772115778888421148335683802433702851135016654277448419418692298420432808121544030466418343965770385166610154636238147793971872656941582973114111087737581258266724277588566153581207887997382372598159594111675443919549964705097240988456294385207516188750968197822378100958926566613375639242354267374312707316141046598279772572926272760387908195845016620316818651036976735718600395867831054149289330143298521108540853014820315413998209426909908512394687317034890810910103349109094707899675569687062051371105703122628871581998143602663741514977854765211279864613194864916698579093799019775903720787934193477432286974271399752838184800546803323355526481726225677162857569562875945370229779218774536349859526702273643116728141393961639091796101092174777674266324097449423970375818348254683458255136978796528337034739719688039315405440191647703415378185349759732526020923420468238919210191149040891588788841371660623771973997595069084321116635951751078008416043622166681521339631900116026903032438042118115257708221471174842324216544886184763982305279609190258088045851491428278017181204657990257926447796749745184223790174329894045337952691476789981868167949431944003198352442768461489225886424612943839826403831857383763916714698161613443253831732478466625356752294020037803963071899291373818328067481055404018045683029303084656628637198715898850517092388001416255790607406272093669400408431279488157610725451662215429001926015066987501511750569893018377809865808974169428111786543402217305235561925847747731187727130256640767443578073309714392896712262092367352325227212597806424286194321864322223239554824856405985992483392140002239071059096983708833009108412763953227312261266530934528538238459494363643724681642984197821357501220736872108960850439301251739403455238426944435436596320575482115112829002114286557742783198233706019133109343206290018251600434058583514839777970216574661960425042916843676676163377872743068833085540080218873939917491453285733551396157726699979116750589616871536256270831313210828566188727262832388004064266557604820270665244882576426414690172102271193092038571245333101468342691513330642485196557275984641842490379079868072061357593482140038574818836474049678490169340419951479753812249857926056718771613202138050136751209012466544138497354969083989163702381283051985341552046025303091831812560880929513021367640615738035442823282353996340048351096338713639388274351011561114513343475599051352174792085839362216062541699311750528469893714369209036944714085896017885587114557802504938390472666764824789454952092306678038483487605294666944014799845259080462251443598398440289830584215300055425733135896213154604058763634944137811584041740970031720235737408188644192505312100553583867885971332907561691991531657654415365003685373273644188426374621442222354135649350499249827320098862109749541306015426804555594819130175461112094404346700218965457074110776137469914640477450144056108247119936257685995386881517998335344406998153573854744160152419844765463865230103309777330380940548360954464155465465274795122927541430542910633852253710475543857981927631252770329278654822542645649897278917096319624640372574549047917083526103975919918776894361244889600490649469680617426017865371139074442215662360530268811379426126507729505219035302409990224797583911677507695790295911515693380974025223255446761549584983703721384143255191418198393512073710290812791493992924015527706605949768727634644029437187572181883726886884944529339953303811536832919817962128883319852217808258669849163047544654306204575531485775816888979761630419949687915196877747991111725704378290690220019898455531908483462831555947172560073106661146158968841518721397195081569749291831273207696459377603653954160084776331634196740167959302466709220143775994986089832581645049676322901383688939866644784085350627980563274800488648509770599648655705806318025050600174304646582820588065120803818792425811623437773505476666227135514965546659239820517814404816267597164075216763859827325209628335390716617997448564217311399172441658491079644840963940750008618286214226064961367707906114231117842320869403273619331893504390671279407603220489018418166509132338305329145774807032424379165198826106330291564159606972352354463884406318303255209992101281433709476546926322885848203442217198976161147946627957946668502697377333115675733608251537297065601324947410503194166376332375394849390738987759284678184699142784217540158550868050116663837873844391445364596596082095293160106137271733895674254231971831780967987357876728721389801428802783094728958470216107951373094677066596616949400998289048408687033537063658925266997459304538334944622413562008293475448941859469113870641621823779294139243700431742352671462674355415196525254832371727539559168196817697860443023989805592985452246613784222768172337524878548777667662887717957647795753151747308402301919877319963147961265452055775191441818635121554577790177268665739023229103593210453956932237246100916074698102007036652441774408223171804984281971895157138240203161061287089067018629371213407723678042687807920271281991960267147915726601240609364817358386590602446316514200986533482965125057950195132481996947156663310364027497283793003283925515118905321618407799325638005626251629201848535166032747777269059265704639212800614532038308406480522687142304061756046464636485252706069565196662860145188661998346810576244147590322043167378357792231669972718321197141421502479642874455009213921264241489336279783438580406069554888034979702461372250701142325533999849826700175159626663228506689880501877979786536674664689269912168614976809647406753157953044803560827235930578858923024446021140630381429110795908718825315478276508230967525817437873922163012890541655746850237905506763522823316560177198771175923091559583803267696089878295870152368892718978203032617991901813742282512677697555692825363740221883653671798752226406049360667612287504192751215007275474467677711159419690987046502007628653844082681531196097475014379463568722521106540903000943494651490789371197660628434069387144283599557908293830404372855623758129054376819437569872709596405014615703880811891532663527718493405083560750094331985939510042057979375302151180711154355646098366378506876803361427639406347601126151224247020108701852317942556204655728108719249346742028651557920587315381765851567450848276567884731289844547064462956880543676593063261605756983924414659472349227681581261003797535503840480268637246298662172023873156181812734896103243039853561175812619829668131446311353014030161828446756997216622347250518543432135627343540115494571734190839022188852732180763902230670540770941830620888185116972162897367692184198953121703704693025390104793073902659869180585279542783058427525479776507278597294340144768664404276192617825511828476598899094665078014951686480879449786863250541227495684307887418029341194890137846119474853218209250499234292558530273067733838850151243880186161194128853072717600970646840902278507316642096881776846274474312901850719982575010928978607109320711056706721883554791629777901880117421009993610553974353437186923371700211316924018397936711307160021682882922833700796738340129825064220749281956476215026536518437802980509912505884259547226990526764348566635059277093570058251671966293751036761608431690746216609633347832309375419360991101394791336089611348305703989231261489446391481608452054225552490263992912635031902755004085458654121773357914613058459368784951389219418851784594233701145467692872429034308302394546161501594608274019944165644151488579535268774518105295914031323252800239801334350835000962277871976636068410216879767882268744534779183914767466083885985541129931508458645263156564841725425323527127563867367562191686847202819375405549113412142053389831002590388796336654250246984432427567850684654570333344703682108268141073531449873254511773212804120607159626168923691734153479713517435355033226026826089245451655339767632326886343817481092004670274224918461818713655467015486385499913827944294574601535601476384516475559099307682121365630334823988559810913182507071423956028842337457688402787103463014158653964576319267090292147302034842190854234018030985465655504970692316010248136842954848917484722512675802232225842385387220981819093617714324994477892771959508623575562611564601010650025363224950860113330243634604297644611272901692802887376687320923190573467735811458138929575464556698099649768654541158971576972109198849583124340368878134942042419638994518571381117088987213280187009036501730902178962665431400083787892735659684915352506878416318052253764222265175790717396777446819611095648689817998858996211351406058672326750846067031511163942461785615923831691759292718865165212808289735243510859932409811618101873377130305741389038914103784345022032848683152552718272511767852442609519355638295341176690344178498297177473432302593197000614510532036394154042415024143065808497655361286407590633972503956713509323708465057265971424964948546664218332683600132920204202311188248469589191574443419256193177728898333025509745782241779732218032246889922231837390824790020426873264090217343491471954364567757253120212789447477659645005616899621177514739963466206695674102690313909774758088503587195455185071962611320744658186783182113096989351564994843181569799080311313576685865841093489911160349315383096502443139224625050814556153734922598700137132181098619124453542538341345513906807651474495836465841848757925258935842636670978041520024279254428129301045070944770341333726602540092664890298097817399353598048905106694687810133916417556460401428800476834013079473095424236971527475011753166542751655426960392601673486589161839741829193541084766617284005252172861139210206375473183740679800801675712587554171209748845038277042337523660061045377704665779861474923991453963985012680772277946510977901107105827273471021213729061330203555255103056914469426393521062248093233226189145021112987509793469090375632413360370718921773940554474018288979464550697353723497183673636340038956362115458692504926072031963921580649342325562352529838919916696668007342075485668067143902384615496676173159776602563555714520526492855111083004573790247454914215428568163672211554034781225743515464772519501967643880775033394884540702981341263514803642336241080852516598575624679111332635982172499529101635956684542757602192461090684712221580447705380553778450036721250529250736551521073495297080199555128943072782605708222985042473147932734539320052992798235552761568240269042915660527625657750923799385649954774591478461914245014420441726570601989455250946268621674950364685998073616060055201432716353146127071191521871463081645418333977998333876077006019807165602763117524781748116873578055070609851250354387835491857514989521064786734466729642506027902849484474410983160156291800265596430217463585864287530820816049540368414298726588632218714521859391867263452744934544740494838433536157115415714793049130835708825265030778707349948693661519536671429782343109367474787278345946793851473287212953709353710963356557542622179236832386957422299584329016172588723453646793683611587113152906113664990757181333687073457278142520153313111346549868213038646907967997057354122394837347244980699639890659555891057534895418597750220392449713977151494119482357136035610935494875223635991264829923073069556369901662949604298942500063244530393345800399001274921434200145374604952566045099854374251570684736567034813701555051971222785555885529704840918584958018394027275556482397445972293477300800859460720359131468452096434623082412104845106163524064056276633412505780933745301671168021945520074776209908911456490387022599566549887624939743027318185873591104074670315193275476217588570175191694673503042871998042514847738419593124947011471243069617594478159164284837061627966772214265599751497972666273213782537204914812508157185223752018056386954495219852356465754394793409460547577243383536574235376349078408400191922668163154147157461084568210898452717853518926228893317638997292091897832056130010306245000086015481954452947047901956059414993714433490402869122120610617005176335314761969296973170764716508238328582798863334721982041489795286731919837426645328360130772503234415168165957543003502903074775809536668297856674384100519963273827956581247391564813451608144086962591224753524578537914053900672904758454792680260982208913193122969197038328254809453974395494840225964310483370475306454093123273262493833910290675329159390725203411817264053104140680906230798558033340550820588087082333298889877683801134408198638185514732037321388539871348456840342225281057810717772934815948112028605062753346070355641439072456850472372932624512692454305835680867828103198214718832545252811984948315764550587616716483535137665586299385361757305310722266125199194582389642661376206226202356172034592122981662626361473012470874595548699325729788060978692108376948780757577666512687057635835086306891421247276860025089171922149212203402764456754436419891415738162186616260957879014599556896939018723806022801617460688228758332320131505352907642958930212608132691936430596815552728016644374208136941425975286386596313068937923121141152831799920780009282997776895283721688327815477576783872391503671577679660266725857797452974063551303196661871643575169228597832750366426672107456032157753048530096249557985342155600493180315903744536497318812348719621879062732041044762539225565671336411781062255356609124427087311571896141659141334325047344166121994425340355365722457164568851054436186121732992916944073541431469660541216516189177836643754226528990879821095327272123669370898875492083536118235453370588967404648832970578936971554743745633722844283300087126079176597371587402913464321038531648131531393898582074666414853129777310249842206205042054673500079819535388936163392265315012702645650061649852368755773623771057432628950855189731958595176706567367591795423189519096582848690711487393346746950354366536450550372832549850345199406139537002798313458567556542937638009096793598191636446478127147716107466693002837990984199420253177441149722995561616048818909548234878078782822556174287832289704646830257681756605770834263761790214399038097946167995057268639386939532312391973001050455210062070931031688885331635890618651416245965531297750386944215163752548623876983569137916771653166493470332199774387212313962088045698935053964680577519561219847526866083206948283251456687020742303307317857516411822072059273489051417936793613193399333603034018497532236441566182427285115970219462806951704609953213453835745479579717190333488682028450799570686313624607667795615375956665636728546331683022426268816121805952023814336866976661279427064309936557549994124728539230103247567869123409658170360353441783521026202427326331594655857150351278374824039987040591329131764137535277860729604162397236901320901985278366446526809121919484572122456878482589685094985794360653108135538578210878563616918474767206526445833269632982614094382198237658918855412104466630213520069554436162572083154474217698304462794566574671214486201542113898665055794735168938538383699352525847116237667069407524885183611516109710771131211463524937018023278818723985686699542516485404115014363329238584446995991594273165231113946049958322352093564142419750779770345091528782116915200823886515064162189536097651159178450772375038169908261583864471916930186261666624496476599170742614067097849291829964949958020023209350146842201035512053537515152371404649336500910632827448565390063590884397451763098116116795000428294099008306536336367050685494772857464543715734885271896876619778466904584155146699646861857777337609854526803402052935270617504661685400366034237048947690218131929005575427849150293684562499201354888792320867049217662936871264657776214135595293203458639116589303989596885638628025782261959811496626244474240678610678016633398344084832878825804973876106690751432172667307222828337132420453434706784232944819134760782373784302878690796821055776645918233780189622350498913416503062124128161923780853411702797097055205790854266735100597097652035330120666264202464488575398365136885353336682684237696757213963812950879595438114324873508175391951436710994871598678173749228631972252392944255099758315946793958829069109570949734336251508302755923777558238677280428304662027811739546905719569763771024299161853469626643052074379860407612129006802915435485467530873468404528846336496671047928265049671060706477249504269727073999922498240302849015453540079148885170540806303244733464998360000819727288140359255931862767983860975168896384302160627078383593391193169850813797179214830851213907807416505407405590114344274107050652072121865850046783141186385967397177023735796830579833856367607247235479059405831787978103044852163991794739087104398262562890037924694674585669448124714066706316854565204120292573943920288589425069720596122855615425897703856133185776928366402930899619584528839531507089817579367702305242335731586753171642458967106513441170433998370523719073264117346328957761086359197363981064033213659538328161656310990041150854577050350034481995928775981775762351536924148720438450392915406531961041856778560655371491800554574578535273598240673054219276363991271460703422222220495740746634260645144412384502685401289485488822688164317358995083183174336497929073175029261650624976324520845161307224079706717639041833319580341735874619257262043728493164878579076805620908535589299249590772363954475769567421771683409777892623027373946838049578673889248094832359250796719057318068403777076977506364274661484706015311471752578872640104316879090223226965767826925712483341465109032096142853700100587417250893679315397051034332305746688397973554724545112843120279365509911279881969003270679633676374399448976021180700220742285117810907752072000439205444896221013566920249041721123833447224335386498213760259649239365804784897147008313109637137831997427342669147957373297362724359303009568242946525701944000466175397045082461577019691727427338538413777454649542378303684837587656880743274432822968273980771318818823620289136615270211809102531286507242290931978999314521224620317626656365767451442688005384719048078696306122195814693574398190704722180096619211996265247543754189764361652151104076769953147406754250037933519718316048226354170969380456657651667922387203997963011359700941393790887920402034633996824088083518003592551373481405664206383667092649663856922052956250675409801878606093084566549904556710474036975328535594224978903588995907722413308573154777319203316511500649957124419788339598288975433000441147641464391264456022200374464393774955966997194216512079085962805175777961558833489413081944928782795841888615066890479305105529395287882948465987938449432340318199004762263185192813301408402317578285561747662655663236394767856823547148477280719174017854655909819832460053264338990275121417322320379252573735882146184021038647714176782652548561057157297742977458366386855159766601472386767241426144824707966813860820906055008718550665509004425009118295321238249307817310745615926062093645119736405489632153802038423720147851695904188645152347256107267215065630584735045603616375368995921166298244681230237780262008063461150715822210233197058950132415885886561536904241959471323684729603554928098857873354530972619779551718130436802634658138341621459273167774495843842963401784214618392415145548532150199330705036467560426743760663235273267863655056998699232839326071945688932200400735751935675201401031159679324221477759348081121520190192164399594750778018524247809732876228383229899697708319622222443069258852032744529322662984064454124051885935278039871638162571593292385347650483359551370848355503309051608882261545115088966008422210060681127401451728802476819247578961503249294438578587062316149015541977513680403406166912314185248463945288398515194723665567962508031045649552800831387167467261021565259971442160086919072990598871805337678591475851361090047613940966162566050186741174991370564346580239785127840565258370104000060124011465365895850669737285539002821333295619354576274542009288543522987906147624278908311342172034984940825888714134010079697006172918850516352586323284811583482135387693699738055250664555996605631176579337392875377678793651309239490074796171917566959164424232584573970812635509197933395984464695475105226290203765482951986504740207894026026157880948177886931185995101996053919170418928741147095683390697580229792645814862111694164330695258211675033498985161637756440823465077469152354113401515038300096687764936793674706137824726692273698924267767769609333809889711762448953086503264645883422856337682521914164455159334035105628668617845919227844420437331669430625566952257706590530141297893997220150367252745054615215984055652634770903105514249974526439093529205490306113437570090986910059154544755445415372610806047973193988808678626147811942794954073502712592226775395916718000700488404773295311488943279912005673247788213366167872771189231521253321959300089846057736348619010220504115492289948940833185690106236998045262513738044043821221264835535583440882857997966003010091533773642756287406050283286111097457792180875627871076712045777341032490200617874836675540177158717976669271980334367504034991630070723015168039815736725591583660860265724479651670629921013195919040054489066795246217943673277182951735417089897010581066654869064695892547846058836386545727603258494403291442775745166121171257178588652600645615291598250581533535404273171310332392226899825150870270613076691376376342368931837159668078885503501286566965714322441700234870049627805399642124831042015222479728879627892679661897812397427051531072183838555385710059504224415992320796851437104455958757819740699312477953177388098056546440240394975396895068226668836632241871606127272984933284498296527654622041898761528640063261255614393915524086725828058714953792500342596626156607121242818798977188740954747251602340381786154002873840612007550228832414840763295652796450686945638569995946391775173358623995980056086428222934895778019708723133317267835125517002678289058456690871584572981349451848751126375850383950685926599867851587261065229588079632969116483059136018175660114218146372845750376477034741164696894770840565808861066363398016709701961442389805835586582512825569054884217299437074226951764483532320849287789436271878257443215490776021853861574532816822327920824159928052590652214642987793989636260277634192141040073195019190435751601857117395576328126417941682421339777668852283663917435033422991568231143200113126087283104553165763149153230799879874778389892569651973225103235651242131797822713502924041515106111738562629653223751127167051547497864760076941039432522003720369646052631843529421884703525648094286284611898277458448765241596102616260610888049151715500353118260704679871751773757032847254764417420573441252501257001236664908393210362808400732717452394121228881184072512067131121958496933279239697206630143672794372205865905518638432789792115067874433087755691966698322484351029442500564814239631509440058289624315430229781905006045111470909459268572137952431200113828476429258329089898643566670243876558787842663626009178210865674286263654957521873471103069786183154362618444520589445606288930214671718562128392292651021257986173139241903876137789452022861377612438341787359534698652409901613120111034344020513582539341558682798420188910520407631014694617923482692478190807963795741168732310417730010934448378056864291313232402501663939726067020962392108181695749103778098699823959410724197837959465558935870126243267110055943316826189631508306495355404660071394959869306553881013910596899146197204523739276932971429591126426766153703072736843395776650004070107038712482146797349799559233783427977609417075750395195796594468157264543251782560630306146025366422958480876190870994554332486561354742021139989815203266689728643271631346615239557867699191300576603796362075610190392152052756519609617107060843170623489831854109413130789381316854157538571413111294291166041308201112178515728389431159262986755646529948418052535614939474304341601048180088673079749394925520806503172455633023430449408211941359059151148622768032082889751421837533361284953347726839800943219615172951338654920843260822183176862466992713385853988468166196162428487661877770959285885166846999073865285862916015966907714272975966997563354237453871143534561057009989661102613173190252455444935252612904818824631572417042077359964085309813901053540797658680587086063324099272298692096877296532372620632815253549222017101787060092992665973895590871431578446333637156406266684536263392772829985994162761667325163373496702086994430934974705253181341113192197276367139014952203336043227303094632268213255534088072094728238724809616422985963775020776482580840946225470277389049092403795791954575929076301632717069212762428985378352515700027591469986059232688800337061076961631210687412722377829897508125505888342765488825404517051899802790642006390719463857520025968529269486200673243750690404437872752235257211512629936308972255402679821262067577696196105664129987903241402052647929661976349949565332806475299633177608205248827117834643204871589995794021127879124634131518261551344629905089495947177812621158595734889026512854991355851915290688350103883958909791888250717930388868678819607830085864253889731350800137322303358891399601718535071016170338929080836840435890002631071739887099956974552903251079767082179307256890809681370657667775640002236751473942050093015396299961228544550542537563904673080917416079603608175659945664921175898167540485646700867292085686950012337582142062886536751412340819171866293519967892150895971179193257668112445085928322887223913555946885652157890872858724240567505791997232093489801300794254800741167344763150890266592970935671790030733265485517236361539903531297454074540551994985762009206920131705955599692486913965528870395270013672937533686000102112530957082663603441950201744119737597501456487338432645873581334259954989543495358838778333368994093062199533689878559886162186348765731079472809174235135953040203616637239993612406761489060615314802443587967121931609366515961372060669196425057103423047290418169698986979424781882146523019192203248739042222007936214544367452395294747371280483474609649173286270234869693824828403281298697719815318321553609515395619960534491113724880262333647140723198655126601044164962984377230349379189836440829952939561070563451816785268656519371467981716218258296136575053859574325763626415043157545639311601455340854835355299840223915331150569904766249182222615046135634003935764861544480761798475239715989838634791128761086036737053315514823941313676973079008323046537539306532786358836456200843830601537937692205509338833654864755382731033097174059504512222239007695077293929696003936916290524959848115191072161658392201120417483484446795822458011421809730851028222499202576152201626259923964960232358124967600965109378170049487637749205421875951544186535244802470473218255486465348293823727612986544106908415496040914535646957719813491076842657970336543991128688528512434898774868470263942681698673374580509819389823891978475491365738337123424035574772315199390353941597861614013964332731183754366769955846731053856821331172372945989770893102490284117762282650075842025844977941974085431903755863502767355726196327591688447589794269760721219321074368982087010642037830776851260036989418800312768117378765297493736655857834567207257212888347238086265477464756539841986101679477702063422035487040074261794752256344930966754438047106462865878051841465517080590318818672566893733282798812681659480897378613830574348512591824506078164649797806047959105727343372831582651610526669346683662301991837494177338570556677851821375861507076233340706146163476478132972788333909949293477751199229308978076525469096102110934755748622557594123354518728306519844907146473628388476338473559089914585443553053317403877447324718608448707356402327454905214760100507374412098520906412570781254175918764964551912418788912439012909987276292970608501708834685400187502330992437087272759600056588920919374294064585548838809855236949998201672961279776788399878973425250677892095572482210106507333871115457416921344495825310755768346712126086778272367305166500914751261554494682992251061155654958646757599792438876913163260687139698071102476291498848085671723500376090519578581762652820680334046053633605797925243435505745370214193795191868617426549929573458581313155703741482675731027989889722258878196909333544690659593117466318193405227825321753419573995849750852850539094240905403081531582475680394512081077791713593064031290695519082562876782033873514586304720017831020302979209861806664080823477084731272297772643097687159505930655698196703557144041975501406969785989370430186093878879854043127677489160560825026822579879012868190435483170764785983612790784755754576680291593139768513634592926242173267327541373357249174933754146152171039111719544466134633954705530399090863281393609643097361006375770516615086633128112339572309413790613035201585709433502267842838329678829524990006989062264350233259219949758547419765470181369234003710914569193884885606217362720446557858086005169237342855907242853232840290154173831697148194851457546839694015205138845130352315087574766239429539102194539021096774277524228179373720221770598808672442478390875900990560639826475454071929783417539192849407759541066711431119106004123067501301164595409962517715317927513389177550680814229817811158712178092426197244404683080845153286143112651354614325331932791370845047060913996684332611486361232244859069069139211040866886673218255562908681943226980151022194095030041149762152139014607794252052621069394975446885047421808667225805289523499873905397333230922165368949143652365296023831641020552169217072581511075213746805649507202902901471849751785276847605337734092711549104597916256105565157644096443907917516033347919693091607535811365813956446661790951673853203561260780477119818129796394166523207377768137598075084485174100279053470800211539805975841486883220145923856716967453719218987741906748127279901620059936939170084361715199794456525878536580049104923269775015218284615390253142723881872228474860958007889004589658133819948632779917103154902148345381717505026167408586168706905390607518633741408656885013959504495017045920514878876572178885510150808714516006713195210884406827669913285602400353727785463332944442230641328087739850417421531558394857830637367489646331026032493182840588450096659301219100914881649748136543723746492527317652404967624104748022167437530352476070500753335863234066700518337975961909297275879257849088357211639376166552078147066788076236742530781659951094085505514003656532859439451207695285103971145287018533023061427434477005847428603015937926146239058716201804483997569207544568190251665336328330536739639804640754063520186954358785446957385211777809113767173454969287571778400202012629744882787898213081691253108501251712396411466205403717878007677222440099553937493831778458453789071409273331885882599674273256445623130236239725285645598229500099743423862230456484157162023758982725305546879163467829777080874738215681316449465243647531360112810235876134631620008164428838125177100867487799316762842916831504909997403667847836368314046071700376288279196320646194688133881019554940020038589940793984570654104162797926280556444699103377376266028103440579543546691388979094204366767765508828769554000165001544780623295163992143082838339616539203322019848472070220964798683929908268578682877861501482075363459583175131670261573866295962392388835764152480368720586956216726283726625507546367771948649130479384158810533170124639899024879791003404121709889148361788708223430279312747480951070111141732180023319860837864214776876052492573785833244797357469734781427717520337301712342215156844592427838472664535458113909277804153276518812874732947428321527348596882437897320301831547356094822645198705759424395521275075033731237366702301050641145802828054558290400622750891343427110213643968993031182069026802875758867509948679844520498506132718115265627705096302850689175393600329629429656785402503231060668221265855117958834942700332522802454674279422052889836109882295681022130031176982251763022137578680689921624575987653193760400814903935322048735116161901760214295608611361379091169952470198856467668557706787979160021305765327284246620208640645748967859200228500956245930596076821572096975173750984279429756608047933571771234208155886101932531531359266879844784422217834498170704833737905875911830798342914981281913042498548247112981891978305665939219434468660354219467845632905764716681862449125748200087443848241300082969500892715730524634303355934325759840514155048087770991855751396158362152186443178393135870414380743749201172681109096464133211377227647387545580678056989392430544045030703556970663441567383502427621549985593541186913159206119001039434849722961100461459563213718303694416964889552921685197979856484173636882964525185401366334522681627486592456901844676422360589796754006930534974866549476926951720812589881667172010249418493445861793615871648927116870162276987197065040619343516773890823111687179925840575061777328699939111400115551876720907117902769642810414122496897817643796138304615967668760747566320975974904563163236041409098421241319034745297907795265763330313886861209873745836106967638742101517288149278444137624626266840768953642372662847985924789839883678741249441633416273666008384749357832200921228916118480288457298523433219377640717720662962949721299049971028462407412017744825464760812021533232188821945568338870473845827539768452397415527858192145678790854560744940692801670607110098220566973420864291190841178296026235764523954263505238412614732920462505425963889256890087986161195132392152379618535465479419617054804222549324102143015689414158683545613275492901074042022668658049606004146103991007142120130660780112001570812423388027653885352635113709168204414580803335292135158248222385055067423051373824616273747946414614525962459608360488345022394520347662049491178045470452181407600738955184950102576393513522077027554459503939133016901786488916624213211777741204049796023895708910619387859472047313844537312744355372787566919111464622050251076366516510586496860486878053532886684805495547219305396887997409214233231473428025317238792577460081125430863987521912160562855161078466072841461813484756961807372630912864107928306885074466332619586470624344097333934458213311837991153579029454214466501879261596971029856769571013405277325230428747005582280861692327499138852657624674835771493401436696108808344733459481988965249487460996425988519561324899515317554336813373292563553732542418587748307877796190560696252314083149467588462589097056093492359761797081872367414709656997241874871241739553303348913470854355931588989959206435085720275015586123347513631839675700342613626326077185146334906130295402821720326330794254677619348892118088535964799747175342261082462281085522938271119466809212506236148354998075638943508488346783084279755083389405883987477701951125338247241384547244487112278044161387268717089240331255411630519134843767319417002181338502716556227972647659445348368598922067630844528117197961654887524103286492170981672834155869730261471020627462445644687737628368884197316644307607882226805252377890120079814930732921663188477153711616866858169284669664597067317377615784797354676964592217206760395594423359002784335116505956844913180261808051654296533722238274609984826511718397014088089702696499560245062079967496379239299401357429395621390765027300938015861215662328100303567726806046188948117627964058342415370983960737624447765450683913348072107803166870294509444788459551002961806342703282932893963023889681731378002909484271605351047195565293512248014230646731926061766610717919483613438419763538996597525214028870203637114630616170894612860851207837760176957840665362025314685786711474017327365208429236760730070778065910182996815139663064917978693457065688966059397950230911233639027729951192509362499848962193147788189192406529530859185692049581389649468002252091718678091816399222292810487817450553285368042138484305731911300628916909292422169412459571209382828727546190565720693851229040744010209886163157699725546308588943694002594833270056914420975665822365046481975680334266007192171760242673080633244047007713386101507351539291770968098235704881872422899277032304676530201649199628860204851466178660167557900908706775214264659426946271767543317413098697014705372121089732524322544518189002147780799141123396075274562357257534771747916786756187808546279624390446612761945887087080681341331852430462846868960332330663949374849092544349807345132524143185080195277007663747218256056007845548776991759296939570686549336699249569605476668394928530541690511800512869353395912573814541765606254500440417288225168042952263009337989487177446901673067315006014517363165783293542571171193376735367018152594260164850496640904442639641636620783792465105177411883213337841052384554641103398480133640675369015938818437636664919297671898465099865141831476058820468204470149165458301742770064133315341108044010609090468870575001075767168353259880700064659342126644757871866851674121651331145557103035813894994368938776042067332820506424965539064716215014444059974404000629597530290179461097790156765286379335435782739411285940698974039364544946121084169568176703315381205508356124104038934963036046009094854426129746600397968184097310707606558064294653496392638527236079220085877250729132041884438029863901006768011483522190326255696777683575073684987976580752147234477988860628333781700929715577934580058335778389580388030174311790819452059209029811261675167474888274980506494159695552107678524715001743273084953673924730093166112189760223652631806872791881835660918045959621110262059553150422858785838580804946381989401193557089051488180498399805187014823041752121332307939633731241673083298686131678506371601810155559387344408533510132862445635139768012747941983914715926518268432683689740302167353413568351405860479014041831651398828156257204156002156875723895573588831298397632110421179750811541401446971131022350232264469277680006627022339875703859721281656275941680077613395531607053224482696377625817830679718227834387551953954043949799612642697332270095642231250888152632563514071079564200167687766740456743944936099447999870266055225375236258925024076958861302791976919850289277399535089716592065773884830984762291388712449046364866084567191626605281891057989910015341912578585226169553858791385001573912390108268840526968528726353604570480729357149341124633549128432026718914130606865058060920939279592819023931348698898204771106690555601235187319472242862123344985259900047251102113457548126622938221050626768424714997616524843284227957245777025286491071130608015867450912225880362591789616324623239384149465169357188904027011902555591067417225227653578842661513431815362154679361142891153742790849475939520594683860762165479274425901384167467885918986427938915407332553949960574641008517749142177821102063347225165548142844618331538965330385456466791460291707574272548197643577356603296247564509818705280644890641725377910274652048999917323481240867860892130005205369294221471454977397894395263750164197736587728209092400033957938922330969396363115419601498813855459823627472352081303432401315440947856470203483059342080781197224816864077189914705609613078076567042215288249246843083209946930497169636256523891399209343885474947806675637483141886292721867134463420589035189964333589203546623187473389667143536393614880875817526420183408943002089600093521021824476932815135475747425952779689685041557598769206486790476864392288936260540321712685995632133311052386357647282296700296701152719783919024844610420661624817672159950959471305059727873551315948781614303918451367353648086706039235997237963342195183067293798336261844239617523808673066684389439449642477267394859017488467541221483333387630557917454111676100130880969928150452138152746373584318107601922262451314682568095856574059260041240596698474701003607484974399746861559388735496119153836698778596486197049577426797577470253445932713066902107843111238901629690562824472424623694605457894066179730441675755999033728460585896182628915373571024093420194660489300019713156492468257078522965973675513421277623021806440409347515433812027077593638789065133323218599690545347503443936994518168223415870041202062150922293777604422814730029234317437995763209510860796017240161197055581392116848706349130327228897835831687251120590848965565978568953146838227543157773755636234025391300935754996924587019517317047598267209399597231538360379396456136294951201670406365145891204442135830148123931817733621156908558886102208651136399891987886730026268320580977401821656784163789153932607349090462570230963360845295896388537808513118583372495032324673236517966208067373783985580669358179433383836345424534013314471891463168166014656871370642592106649080147164679242601524414411253451006414525253165642684502150911172294110786390391202130761013934021911447924681547956835247876289622723130466062872227006123363751135725102719032217338564747204831380641959597154962706567481439563163395000704037347636750162134351216863822788645677188801030251969918640800671707444533175001127836528501332122328797775984612247039862863026526480935678157696725056159888432492752072842321440498810757318599914130317020238440846151727825892649017490888513687989785120940562190649283928745392061224582627620593326752271687593015081223870414507172130619588347794366557266409780861111160695515953057391736752101428738389073003441030014903115260716446548561577292993535213217322404685758018214913097383327564255237959134923810866224246102597482748741869233204259379522958257017624958314836920374595480082789535840355392494385437135321262818760862747323760775146284984851831356295087246167062953089284335253415697609062753720941318707755455912009020583713112301479215337075057914706629605457677084759839628244217617865247026543859913791370661691872420879549238467365736553101747437203648283814685017724128707039049038093307300337131267704514084576659870327335377476006698036415536912959577597267785716447267126254913712246185011427559042163567971130809575853549228001963001141592228952632776594317873025239563441286898612288899259881301883711957088300536002933560214545274745102278290073105617686148911172986908799976353243535998377637896670920160263109074979090505195007130122784506170344900960814974889523324978878490273057327882190838153617708218611344270536300607144161355826664298337019022044909070228587252696732223537518071950943128956472179875302538231323061774302068584014768712038533646703481772115665318501099580945551300751595309519141739165285424317071311745954258633066167936331884429426589469564780719917309158221020808965627943828340321915533190695351387541841535099150335772255903679333571126775680095578887602468817449468664487593220827272166320525332661787936640781230154101110894647547339835051298834476669471470285987222657833974189498083724192102084549136830532219336294388849523863888790327016155413051104238961747622790954579743396336683619417536644060903536541050979576546720059233450371302662719243279899861991466114739097914016623531821544649922593824642924782120761745392578990662733017288193092740254800297533485885451264389291952744098585492135439229010650237610854358542425519941131761478197495353516779419115225806296035944776745326818978621035057035074358788393939906535771265701075064554104191703816241214340074422524571356479723459620238963329251411465624343642868229948880022806773761764058050528316005156649210034165085804267074962143289580818173887026276609087239539936108991990105140186261916142086658713161813113423867437602731378131918202931031588252153193490368357235471519147970352536941548134539760756814840055209436634326802274505374840793590891141566538132659222265361873600565908913004534920426729839118683583842210823316373543541926630106083301020707556597230814721689547120754125610180225910053592059778201209949600676428515575385654294350804122869045898234835487576557833483694598122010342227882707968532834503611360844415181532203893240837517040000842474057386427632863455981853452176290869388099318970637295515702444425708903628161880438096243517022904659708171036717033639653446115689420234399172936535009202707600053036822961163851817353384047195015258716427781528707634649892102103483714247584281543112142346728692679766858156387784848725169156716011634541605855660519090988764544051787577297194718138201351293602410858812376772129037671022412217911976956938359180732885873558016020857472010769356474900419388980810911851479981045823725149114591196312239790735954126382181367983157861613692869111822816140248512129259039882868943177918023027145715808890115964681833681668698187958070701802523117336512568066167529406143944028247431400704295368533223234933564101087533555122380338801355220612230224634363508724444605864336079409767298570472140668680245279159119460863672498860576312746384192084264954110120839662319650132328526627677497396748006656105223833833112341946626522775062876735528388039109066377898848611819791799802136151052028851638187240829658828560681791340157105297903215870849434338315237782759800058293718895199580401390158279207725799515319206011259509561496082064834904843217275122003793974454941985621361766685979092013150939526061307429629291268603853953887072436829638997838559674953411020233995898876144089063957197992681375800021996155709142816668259689673206853169270619093581110981608394930452391206880963168393812439696289400672077439508473678117286560842278700892467022533344122388331609206632998773837342400391387254127095190443468376062394987036518231278604560220514227739254189409020509107920141600752750244538392168435818280694399788479812448038403120740003133535546715544926353719941819840100280946447489120040236093554041011350353208772834296460267637262432934160426815645415548923649586033082623720405346651149852229831975705438578753563616374637640859640171168174318069859104423251449552884379512388876622736993649144323092164542954300766171444564111775313510584280961327230863079226355713793727404407576973274197312441737707095703041794068544315171361609554133278399622860203288316235148879108570510793077296093005262587203066748596586548046855819440082583423292007663705665319272423738995394832345057327161884448669668946373159722603080048169095413843343511492793265356504751681979195834922964045639859904979605533222874054762186878206357173177787926343129960000722373727166517634895501695975229268168194349902362675600746621556237816359261976841976483525728218624700360715205384594640354439769849624112313882684459492208896790143530911453471437929038738070525674473234631140848975028140205871119253460067893894139724758482500709674420553055351536055154776031702764973814002305399185301219942740403083882309261046146946402789340376047272069450924799971389772405256916249176616579837032974849638032378954917496993407725166329234418933990047966734804299276772982666227764984852360786481958161193905001795630065172375939497468343190034138029763028590360070152042568317397432679087084697861642549463311964751359509150225782386745945545446913103254284065583443652071834325174203978739571536689883975712810249137720948746178871437938786495610071125326243406601669351895844781599705240317737934635878495645457885347071885161059069768637620933399143848424959337982681567519058772059588157973748405749601373434201863004393081767496318314814549116105613090897810501794805400023463257042265597304971574201893527223529306311425244104337425299764638330606850463608676063275661764404938243590279087392635811044285757175461577801107916233553893152164573240598906276249702501607331068349609687037744458451959347921523103770218699881633603270277254211810942404741467097538831845523785476493716995616350711348082568327637067432937719064919233770906328591405765600824176750821888935400685760764016787300409049896050138837109430286539299312480460150107522390564241319309848142048204033076043719826519714091961581160825766927672249697562212952520461886060662571241000991592487726664738442105324818073713022431882030255761910679408224708535092621144775385342924197529402350465237896687082669317154066088795606637204866364512942620472437664599849600054032041533630834106008496958678584007613535412254461451316150167678526894082288374377962149351077802016096596221047126481311951711799659820985105029901066203899089596720359229513363290935133757846862056909138737878802704287097348363217049282395707716462763088158737726749055687633654480402108704521977595460430974444702896339366356088530312508526794000448283494995415365241118898606809869728314553131148747762669227324447480786970272944139652788492128751490183596608271838137318788420108013893694777015869707931991123814014081844462287050522453408360969204097408693680538855408327242448562804167236303958497544256496964438987286661254702060413492868325429330987946636993055961423072115218758392732077094132970160019791675863480790154209141154888864919203911166461622662995648822105888055089642570596518728784214786879838894226265041638935376307255423438247161530348337998139200590903402095723865253431216775364257708979392587614396778239688185445335635870762099999233096501939081546524584599294337544426163625802666836039492098839835779033941661219648438435188808914264229184406948812425482384055424097268447502281968637734341240924985634069663110186905640063723657513535125811041902079034902645017286938204816929610718951099079387106851486053575564615674732226771694676076924608700685083965192829790112043412674466392149615552760255736655481508394756476148016493635034118811102599159740182123742523726459041860492218737669144839372273108036173538111709287287529249294055244864389014199356526987700557851784076326090326991160519770001960044892637912200939294427754940914070477679139810863822024805699153661819493035890532747434836397404177619136788049183539354196862477672248533874284637801054716980237165904197475516702937942921411214936311471472626794874824695527274490862963105624904029226146910226913925986622524812698686563234766549830775819457597862012945634603893483249338719207488915194460053216548482177839478420388435461125744487630128638368516258013540274662629392811480489043292418994846696943960989393781839137149293562610935060239444685422651147782644156808230325377044604956415817285076024129786631564631102724070857869597856187927647937461797534568647047493717901642606311976833313836688078567617521470387321770792457147684813176285058768854273505127074668847531155643874683186087440094276131677980132474278960565077635262673715124439533609877878198606835925565883463694203063894971286742461689245471999536375271058274930993416057624581418005675670761910662821286227341315688630964680264329889696374662530684360922779810512532805167818948715026547695702423213336201923784409945864243175071685511670046845320556046177723125149447660543565360045113848478151380205870705064794213807002431650468863816309155044914488007297853383877899694226635197278634759135435063553190963263356751488664974503946759501136598520627847765157894687838095418088948238549543966123638608832679028206380219036081069513799431246841805670304066304261974167461972553879418581790547458479829673524117492255252388673961175140441750778005189789433854586109252910419423079859152108782699803420645194787430010486135493669299380333835783663834457019137988055011292542492728166918644664408072667752641798694633218197699941537360252498918621970005476107397051098158201649981831933079558266555993701369858183740964632385010664850723485593065520229212859291846396363968214716766660056758511901612405643477869172499030435231669803714842464371479078081940155528091847535549198082457845707175280884341978433680028788192345949095098344432757980865171773380686500896295610883577239293527127117832290393540878009402937459099719588222802739340400778711147820832650401511398753604191529459973967593504373070567669642700157770587265396938134891324631141395773735242193253175315921381826463291273863201436563370810739580572815610050635590875440086313162054840514973468304700157423203943197062657340650680480938155891849668800241332912193701005274519780891533763163182893838634645323906531650785173771385919112811501060391431816749980641359822115847254097527153497533222116593977762316079539027188978485755668944937597855721882597094668175467421774845078655053923675753005056723288473937510253058273172789479323181481423480304243915842413006280774461204447869185225107696157191499419463390225712028690291363493550056575851577767884221634781658723216390496636783385231322799455143760233843679442974061877121353382801101003898463492484284166509556846691618753977196757561989821320680066291211453632258565605106422271124902856942809647917866423781936986455983122509794097295325514259054565400863955772004441564789408906677555325623028594646836567035710178125190529911162371087309748563478138848067887733999211553631435841686127680967703967899736502351532612310660784208686356433240078869231276977829785409198326018149344359430544195581801798495713521932759941038839706191202978511076643425339246014594179810537328271682591067879642477453643284196058626752266501348364105711666631987082891945772634254906069559437065651210504075056989469803435063906747694165684299219980528258371588323202467682244780090287697127513193755334592737067249211710477038557482758700925510717620516019875492238044233384898692501895800021065686424993601219928065511251837251277269438095660880886620573635214071038599382726886700681214572698423183566195141532036566443711387576999816688633906400713517603019165641353065850152723187513266517839163716879840335048466931201140103140500087372266842050334338006478160602925393155668948195446398570302542510483617389280383647454106168655536872587689341458552878969239193773190875551358951320056625846609930993059637844400580500019359523026402654112282267266351285103184513603248671754643471996123786552627194313413045250540697326996723599909161218343185600504208480153883024029870070879697195684979119254587667292985739961435698363297888342018577055942089580827225950197724153188976751422426199350806866449722247922139885065589589768268007860983633078788357528571299048549740678695954023214104967843501391748445050514816324879253994996433991113520186449658031598218212415232514270918767464908742300688032535262132658121400286174578520675842298156167038306263556905252387212623907940867912952374644488796700025261627169787960263398477497156961262693887037594918466191996866035158454356618140248010188151390737723187826033227491440543309335800519189005054310400850879683599026845109577722100541233115098013614072724915941371188947402493046433431093336225283646654915014864793846800353712966847662849503475907387975851972431120176472700016970665623513463392126159195322264152612067492006763007015551112198661647538701536599078342197140029218878367342190207657646257757947010012291188300438882141085104423362794309598789532220144729188345221062414605107320467412946849302481672229548753320820935093898806925732124421855424827580031233231831610896966699264897192319229765261173745383282085172419911690110058621882733978024503089972363889296934579496776353978451519056785223144525419058259545418572034586688470861305409343160628332395908786937043227618415146668923655412709041576119179675311529064608455451679023475094945016501129567773424221284859060287864540251708615388086334981736654955347585758389048698184456685001503589138010829443550510905605392562867302316540146458445273659683354015461587819663626573398106554501888464624073947909500646106049575215468276447872742962379570456025062439944728901364233596499748552120562790034812517856356092453003186123602206809008040876102446705129066449686786546273473413490148848090822880518119699932934520956343984586331506277049108977513804642744542734019522609069575626910616306343974970814815613498590222319443265057765509846745456854413344774383501165266635347690875659611338176797489892654421817096332126248036093821165956585996718565444507402159975453578188259454536594043077791186047126961078568173208684495611137209503511812561872733639192742087752427739725148867789578999490098213196243825307969552032356000037319035200985350699188375715161375272298115504007752392175380985588459815628364129472282487460198585766677710960586541446867031657092240221342235537591192184412593863374381496589803605507366193902041324530031462954842510013586810659500817400258540411108516391627509676150709248067117255504119298145306267419655275139811451771819104480642834083848627446863255330962008129637313366887879368434411805721495579303935659124252808391209628867157638409883299516074507100889299360356678241026437373652250742230992743820791383028717977691547338882752876672242900727993926512328585136161892788983193144403757670672790327850148332090158230721722714338327731239448110682135521871288572283614159480106114946941235741055769237638582247134585040476724686335537833435847206237831945878709269603731767540144546288272086549567693332619016742194155597239162793103661008736070528718731719766081876905402212477064642417496504519067959056837055809649749015169694861122403038771603807782731264579059874564504072394344732444787862295628547461041089104252858219458006786983360528788960080733085255023663548904899180072282715950827578045235187219961572346899942974589570049294309798191551119944998798692662746891334207566289410142671906727327656295529224795082427639346809774422342814152685981295774294953314563966755989901149310977261581606946709805234802622179034012834519055415524522531194161027605388080168875591079134528989519173557268762169363702883068930727370491763974137197953227774312560802989734685911115376351210964878755999474026498421653695592159426789610009642748383031284201396067274144670806066738472443499351284566445511444308268549190419953386660153797885963727874217594451372716690729643776954186089797774419330947560663072730479232844503704946188155288748722820013596968072003193215948483970565887054895096252019772741984287405802296639564473299632239323690351377476539445911798139417283566646550218802180917029787616434164305215561689729190057331200557733224421983174779987205776973838052260136789477844758547443507465444307468646302001953466828907319027485296628454168967071453914715811724012019260143360411625317343927410175703109473635397671261378445913352638956827468788812630849593140650095916575652605028251289702752370590532158219391343405734431695907490215616672654582588039313952841609822689546044264490455990038826498955639989390006691649605283337623068464902968052980434419814034307481884063886608372110685024314842760555669165544096113428864543652522422581164087604042785891566943140061964074022360236925546477151918112942247758107864879674166600764903865139074189221177723804049271146984860224743754165471761592912607421956999968836255769535810177115969591194521142081619134711650002407566722197597766219997883883637480818553327250933952346137418462425987842235699121204786369999992426272908618628997910126480062250745323705724225229981087746961124127430541203835709447339125659525142456095301674000251013549414199561616130240622951902688125078213418752805407976088732376434170861789958683648280699747746227020656183755290743532532518670291636710563817481229339244866031513871352892146470639077549555269972245196249901817018994473314944436552289992391423388105062155486039861663328297947867419939578058036300059633469946412449704146874832540917138470598213367873855156295731588744298226629225051099631904258433386714084232417919292624205987090280259069955538920991411060666426247750876873239418577668731425207866606441480673033836169324343405221838000940203117404098660895008067313487427929845822664755708405382848012431703415946169217543652930536948480829859291402637993353064144651550812942384186803514210447050554967026522267455688617891004777470908035042663478987052637380553013373393215714795226753552173463675088080405745461966198794279910875832406893260050085641223624854577073494107824373329452580484359082574839928425187721598561857819669625906513142814311713570604728265298178068511346919327845276881924597306151158616280462172402193397816525502987144582169399982880703775356293682765890517069207341287752373997375936922947268269866172134834334156307347891279226347629344464350432713835396688354520816418194524185268027382514996279863829921423738686933593265383036414396122287604607920277333454634464938034377138602278943943826681871240562086945798150679871586541188918968356618792883840105362596951906083945497838224708536661388297033523949577021400194615149361834180079146531109816845745465595588593741742805851379027140733243122330331874865613086348420056564059859034670593184345297676735070799171761926461194335193619714147186655459927104882691378166347865306640673940912749977636281332276544999551473680509163937502584768847989397484470112795409731522043684596364938444879861261649631185858434303652123538498514459661410905873615101050620023899529677901332884038888879564632460558769842284163251154955047106480321709133573936005393184266833040322212240333947704151921266873738834423163077401615848886321088635183744607966948421314128291340706792112905656941779484700541439427250791988072377886390313870207203606836791025439580760641090024628107498777848386457766016427556852044155479681754537917761749823865468102851877966972850956705334437252053868785385958305302401885553765990851460157952297207101361962322392452006590095785369360128237142710200281737882890948857433919798375266113445502442845352389413757277925513048383181926471916519125392800885358791060001918441323168623179766665407098048849968324215244488350910619307017733674265232643569663171574482701824631396021530109039664932091960703217403717627785380047686789232386842946360838063926236372156841881947744310400065494993624408345308449092278939552609915085674656097984251815770765565470253602650831088540150789933619212159898213356540168459120253590635862498755004049117141091029368987273355397317295370524990481409322827656076161187079075292510044518873065014973696424968122419103220085840775087142210011590901642024893188828328788509605562620743386529459061833011296711654917496700789023915312585518634283000865908392433912840600938644428264370936088148395894657874390228241333297073191115489637427779987625415093059546481627736016887165911710606781671511419730880141394305096418678935058191037217193762126002158257384428847356001975155664082694543002941428196201506916701092881592865981549016734285299865263296231031639633427921902485156136418993719943488480569496276484846162083899829454169444953143580755899011276341698102383928974680137365944086297368100879086311078617843468307592285617092539529082547265597213970002991010101061334922444929287703332090946034855779087181013506279905991621901529816547469465392325727600247188462260354236288666272657747351616847389792413153508231697035393512679426877381624921675188587285300116104435379682070888957228498586793345163719344863887826618852746506793135364621851317994196388348925026438144196124521714644847019540154261336131969251834812390843380522162712689709970220348211885149525295242329689467599300020257905126749903502958274849495351367610897717597738031008767084678127299415993984265744720150525116096926221058214318239066038450047464402279274562419706043307491875664268904527673676276184494290770907460335176341095243988456236168600069552219592431426563491847339878743295331899000048724751232786184770226672732912895476198821166342707360406861699112102590738670098160119870485201138099419328291212859525730451394407915959729389661617113014144804682852616931021758429914290965069992926172532372751977745832161379755348267742613927437387664070207934701874541737930033775647845911919303204285656601501339450317134170729944325896089250440288298922599771431824489953830347686702339407650204684827163283646157679598464028931031978660906386093070027968377417848610880415962453979717807034612896777730960791258578972823370377962088079802964596230562032594002188712395319215735392221021385600039953559010925758339436345078912758137643569133541122946697756879404711227514971454753668914538271689646177387699281491986515060648863960662559351016486544828199118115813266801024645000186427542414789469758058164998164479139439308725660548777820077514079273521225524362510129185011547988045106242353065467474925385610025215215024629904668334234446770057930953766037873966523622537773188148489422789328276779485860015796302629750207376863877909894593720001336446201765099602269216817756480833280157371082590430164153040230180524913753642579524848237081315674398305595988363854912071605515265360402821417756766208548434408064951503962116080764204143813581739541902961537329970969585885660705704553510448654365483131848883160606266698859716353031118389422422128062912398677926801713588122134741712733629974753562604794906216835543173420554095888225068299865960482682160405779070817472400055729142686041104907205514761844294717090795295908963327174148371669086073247839557760471880990958540222523131391777200629097609257613130500420775425178988089045740642969144678830652494173591574788411049345880485565042802984396706450138154687571476885689139002335212058899034026411855655423790141115848983485306613987062036488541002558361776406910183127060911314853365397914682282969249917301663074737481089515528979396483160691226435276060273079507312803010592685198058859678468953004148687847506723023291186821277209009987561140057065211202949585513894595704256232261514611862088914500223380798320831346347452527904680324447508741728039282182634352073045544292331909882938520456003550675400161900575061125275801003924755187151157089054603333912497184716911150147125013688188737360344463723596746692955179166924652919679191852605546934106791713293420690450044050827938701105686379231548738031081937907353019801841051252398500083297875784178080420766169077767909057877300095492990115461371989853136761365629322017189266308572610926359221554100666334805473632606095095374540550183483673076419963802234475594504296846617921355337822893312380577771527682471109518721678453128123940440293181033416939576840558339159362484252937407880604831020214042929879463333747447842021446785336277442902732916689220447638647457950017330255695033703382877418016924688968057392332059867833185111969193229768298463488270003661815212451827106862547002059599814516258535097493296671194657780987975050570567227292072942018559848908297352782341204806178748760317344391735056216288253523468535862310927251132870665507661051375837785704029337886814419503067652556243293960118690625651706820569337421205091941288086387128925190516841171690350660586838962721989948900698281341887369363404895460374689339402347702883865343008364022302239242274502667645843956687450624381705757243358248113784702358352911075867683495492899756026599846515811711958084531275418479247176067189503040689736655706130036507764439087025514541721386053637157521424489462425590644103665678376573380576079163218711034927838453939582454791979388670808831080744322996528827529224052405514532910268875344012173143998716649913765992864303281255550309352470693878143171803118782864744725455151106997388791914757094864253316394415759542786638431225726032931686866376649739160018933313966624069164493656863530430396238143162875139813442722667829324416100828174936803355628141691987855769124226696760957037860443503791472426570335995189700294134797980493010450959780945475158738093092397061561317647062988283252592182865769666636498900038495847864780856739046742832098017879751787727235425516807373450733686266500509925156594195157072357255134122669015454773682534322365045992314661303696286622268883116318787805512601660643179745635875356921021709497944565679952076242162535485944843590056090561589358108359143479782840134741574698320664663043494652981735884563938212541312940217013521289394373078143233459988654025434993139365546309875245331517161653393720199963827036456232136604052871888958354559720726453749059550267480542258228499922456891367538085764410135068152680562777368524542681771528455563520122874028727261422552023329482382436364337338568798716122206269491708984900216102727684961770026413006725851024522301239682209908065148973983203697164043944100372501001207144555656965528030590581627420212039930895238006718370362160043810422326762976838583735793314451738501591029709164867032416714621277435868307010955951062198530798698225492945779261040465371186060781952318068125798947931000308614268257143108483656989103867924369080778823641995077052375537469597051470688977663541309621151130618259011697455776706458875016189714489131222015997599396625126682621872582370218201401906154382895861842372911462096212643293549005901127808520451286614513741247457795032662609223530393007573002205359478180899312256248629187536234940726140039737284813745511318271922971543299441264911679745504113983614031733717369085953947023003755983121250377181351321997292851541329015238585801215847676528504761407100446742672810898693859993292282519296389325264306876813093337762315721110238410748209313985639385106515831637486105766225782418420754757578433639773094482656129837405485625096884426063970643342891273155980889419601437903497776686952008046527318033294634936724805543129239136932636191516479769207682561626845920017480129780490821922584495539984747627670808136106522352297824433536933028014862620682780352368281298601184739819957871749404201911185369888020745535110901062797360175320587565203062358026292884601350481771931224321382509587660539759185261668503535714804943798211487513150628721331191489745834162314906088527463803086125512640457430319495901187883195158935255289470997159209759786160652067042514566450581645307764775105943430956019362723833985862697805687527314679841581467240370565716096308683523529151953043486552147659670234612083473604993970114689647105511805438786446015604845226774093175525284436521813350916077558089416531401555437113137048977468083378524878127795133627031481998655649916121153543198735230413755994390946839735118249002819249436809729172477228661106996360279789936934934053914717616261845540119720875766973781217693012749429640753051793912172077072428738424407410380843937197784886070388877382089728380366827218998513196055725558501241588523637090589747416306082968796436846501049512731183847517289704107357277795966108717043298777020705439115664922983623221617611268426748550293407057095912857498405197404268383710205792844583885259936893216259017381934503398794889367571519799688478548586107593851662792222982680221564932313153532528032965622413329048744825331901255008312586655515662718289270933984980952272180179111704072265419578157358129945319388754307093969516567080739547975752600461480555495809379218966398741578806540793630183093955405427975337561163011648084637839934997657203828772983785493662878307855200335537042685429239771049839189506224853634297794954073061364941232015446827085325224308708085628471242076354608749105522151139837243226257313671559599023430279321346687212062265076029874461167309554142905107889978831525069738572551412070429521656848895347595744724164030840094502227871632941391727841590296152097871839199894968368383321381468987167020203551036341637410033371842339916694233259155989149469421061344255029224410417800162246760107611870372785681007567499679365835492479913163294639237793950687275275823789689067266715231835644460054021365727751918767397591233158622048954877310002709551975688903146912778176694350474293881767132830369304452205191562110008928386311178824396065009587786882309302654159850205705344723298379393369684522852604807860009295781249581715982282268959491925848527577740068716550812597355303744557899806577947946798423352876067023617116358980553614745561470023077828545938637469998561815960113958588444507638848670487955539947536439551728993517591778032333921626050953151701061583988250543876995908032180799184568981480915311981856626445188283788356566901640314973337559358546992979192653924820589218301361401530756842832836507448934338997010552487050424826699304195102771229293962885631418183694498387796110574470031386333356215897409782750628835168859047320440286454640774360721570650354159672501550950919822749190311140146768110357297699809717344013031136938967093673815391856577263883140513415195119301554249847824853466190178219912945524254763135005322291940096775865248049360304956739390938089679402892722470875507920640501947898083519033014013108741747089404557573215781282047580605647180637979914360652032587249093373075917923127731114021004254147411923813650960503041067971285468119248059752661729182773308507732752049649441630557074271823040813199249668497107072913220722317785461978064111403966329815396630943620214625294942377488672070205143534322987886172711078413921135378457965899937313805479394949003453903886552497995634494788832667357694975381175989028370795400866769268897627725927545373637664361814051685730008473222186266574434442192640206414900973586897752385562465963126017286154759170906715064437090365484424655895073365741633010727257665104722411528165584383595406755325847573737513681202561043524588481599468701663070103886182569642685481837475625038780272224349648425769113654468640354367043042487671664629586551667871666615180285978399167880293583049454113986251098016161292175252505374981081342523925652073727545120743033962818328636538287748725502890881164031906649765431576120092211195140744775747608357476412378797096327820620581831496210175367009180820698666290148830462003036093825776093155972939352643176470102943521878066232094141767624043970610686624905324235224135456138313163140987072084322604197554592699987219183569834905970521920069727929758536299900051090015421647676062625121922008817245313129931258593585687356228429085244650213551665887194570466299860953087113310956442023818328065975085065246684500106268272761442405619595070644931395800850838188104418833136065373141965989075293700771615907928617261843572730979519990049369678952634635350959270938890465138775090323951302975058341441590544004735513659708182227547586646157519870200245604479205581983021030094380713901693545235305488200960386092254065838901591420656214538556712418610987182183368695644827873862628328546704986626022683309162300889870784906097531086751763239460803472720379448185302989522368023239846881354841682659612486562657760031735939294541629551692883632316203736716631482698575300637404640574730746902494369650577786646172705727767555830780540165369272189948856726210513845020014733045612682579903769903569754252210746586528750195164776912333410328297250910751254331744911698627587226638477243308776760754424008474177916295847051084827892239469820439940955684564457744634473736722884759453672212684052960079761816645424594271913903794141678612082999605078164434641170462695145936381940731384229588268715648445691619318579998592821916228467559889032973340457405394167639901621577549210071115869885410892734987472087380242431414163251977391781609106541399479530211789500715677499776118836365588699279909591659384518144423264655540474251484403259586709410470227680408645179339511224976110530188301067509794095484760640363461014622880382266352642276625353519482219103649458836181157957927523232942203008626071368130782194791033003550474935596879299154180266028782023127835291441234371312951834896020539760341569167821505043793111575334561464385221934450163851709219200813638486301219981849418968051088019947840281671699368395066748059953590243643006547677322101174554150294317699169697664974705843009756228786050941944971400343742990853211138875038525491176862978092759758497212387920582002299749106139186609197153625403045489318683303906587972769263739447012235866372345598150354731917846306057967235018811188090079314376354696865162028554105739047739762318910181118632220704362606046599344908868873581734933540490831276370099410023177981891236408500873127081713199562976831048559888179605060374224140214639797239917319992452107813426325176887790057200198040029471427467587388386844196293733746148296565196640442124658307448563356379190296557776925048732843002550262271220705604911553557609665302207640693705042465255506336665326436581119031157364730454322677409986944831894513720611767270510052487064434218426076411341168917062918763114431225115632419374589484954557991793905169017046557630604879463502187435007010396290775173695008699605028572901435872295098937047747258102836575986246343798367329728313449287891640600685398499979136668196029756765352096347688948661049259821976194064561176624424986512035991882118821029376085213296936964998909553687871923501403195869141385179774737965303932955852618837988106712422348793988014797175528915887015887467797136326893275599478380364084453639754010210210571289492015172259013793277710044871347773925906779079295608934779426745674657624909274618838020031428737155456717499338122989761003087961349884400673147498881746656245215102303609573385469630133993996072337682037251229993339156743822618074920745436419990186005273491491967835840289551722791064747450213827540501353277749025626450189189992414349229096685081637737820824903857328366292293196984184627350106542585436022178918913941001677345799178803236518420219141253480272325650965261786181516848819648830919020487449722072203504555318228458134621761220087853985526310504974713097787858864825559452659182544055867508225692410761632950565120622629618300274756333702669175324982400471671064412074830127511953295064150644950755130772963438190897337572023361598834690361774875788075575952620291355479822983151195493947009829299669103383472286513851358867967575827242854107352697387491572549745335818147237789212363891560980800937879631934409578134937388528057536613506054520744167363885628407208235803646621546559125575649492825351336857076958475809330922266834943062490185349844079777501986713326757901692847551590283893161636003959868817961013267782862957376043098751875316645890487375277726230213517175987799934185270025301723298686742707333376154440383159141065641640424754969280570609117905087823466769267585341971991020024470908539584867485430223994579733185625768427514211913858535920005810464825916757684841662292299137835143897251646698610193200283797184237100069041662156433696384518254014273981509508979891800236842754413980586634799516861856758654157874546225160699802052938151320962857463069134188768179383860904299365407541345128642520714242128874016590600784916220201532990710376485810514142476226109961061819238268988963562401561739807817277883305431635064016554788888677265946122135955459720236122594658366961195579777125598845740723510085951198362027653502864376141945625740206321018816990551753441069204346810093241081409068475106309107063868179358959658806198770203452411311810716861092140748066773404437895007523749235286349239519134745336534521984717179092755814995846773617768210611181060094353470233548854558440606166800744881478085467562798353195691916517448773279107754961589471048339404544125443316764099388052188306346589042880775416197746336741261470929192479807797589651918997683823400843121599165231039638188364549509218591698112510359766295546222307114436035652560176295538709577926635932299668088561813173178731325579260521870217025973432021488041911430567998337266747784834770890105358687353820796179150517486445798285949986414752755395762997651602571831210140463411645462289834058875599735399405800143157036810455072058317779423736749695928253756087321893889083187975439324058782393067643355101626714445966266890602050443228485862011033565276825488217513007513585033113535765854992729156719264831793537137754486371115248953499191652670018829275659457703085398377005168694573727701903970865627358999466113053689326233776994728055288317024523508259065420066114329398295611809993056808046635351061362788004478898915427273444584917855765236259640531581478714991216416869946192899333010177784619049349367630919706273513852801971479705378653723732986017361101104132903695602528697081140186717980080478084643738927012383824196519217212188210598859905786241690496468330284029471293682874448230688119145093269953973234853850049373957740453813573224533768999474365074262008724732916461745497480667698394590351420093998102688582368463510073536886497291977179372777201024662617047749602715196526942565774535106775638091124647764240043951419315959937239178776263039527579256195988973461133775958115934935147115557073556391790558922626032698990790430564081552845590320602984436856102064972061341644080626409721540616488453688538708435801719859712820784997867796130238813250653161585418434223603760576254717095400128126479276827496738906386524169060124454737411804525674097175402795391032317404369211329039286186811249898446836110888572981028683016543676798683572430345521400723253314512532960045605070266795008885828711578825142099763503077459873129092781469193974713965958497180250707328851050109757671099362916731689757546786009807628932932290216868153545038538549287949688375692533474639952961297586003123648591231539633882066508429235074136280416558233012365780279831541632121056890518643919069868175745116041083064424034193912408811400311295034336950305281009281396874568535025583593259270508080514329696555140496468069720435967332670564091435375731998608959617696189538628850429802953977236144012068802450890448955509933634192751475872763099677461537956351786863458602787589744361034077143392057559068682541194856041207285710036901374813967265932056818533970776109281635700918827245347736372550867648077471906432590250232396994898941924415271534808437895824530278196927599879669042641430960339932950456324901448410883033755462417329111841006890583395998582037548303134257497233016507277509788578873148546041186322007285556373285167849627469959152810814296671048607335356817100735444228806788678632207985312950022853221821064291786866576806132397882332892393960473453254056089312260643291654768888949796312434849624577112509267012195331988137883886171552716713381173711583310815912889030043588877742177970556631874893064859451470634598548217497775613084636972176278833075525556219505857974476033432475325770179072556173676721317476158570212285200203488401822370510017006655282038241652721178714785674766005952815946479177149946373895167443883031116706053019695982315908771169526785728555611456859786007444621726393645000012936147860016165110618617698271853337065024434919407921266238097899878785204994523610941168162892916301662308789703052204520287335749184113761086363814097498382046794600270328585588022525742732460064748107388789037569983194031938464101540099793783435802595980230313844946314197074210390175108487071269777685743678887936809901609777438818805887598015941670544295128376373578762989830720545583289759990300481906875467771258205671379879965355585758177666288935191281757675349938441041823521088306161134077007570946390717823834095930231265445457806113509488941435026186600567696401619007154922490346138882161579038668165211702342863930476841082341108010296956773823072462006125177070364826463509278579371874957746812506118307150418578117348277678078295884335766444232671559126997483478196989916156927483835674746502530464834226226172348472219331136449284202308675421630958581057952637408925210745675400782931443235381286813069148579229397056907320855895762930224462585523747979413422719503081779309369436191182387961417048500145638798677753127256128288747068947830564958676732210788653727952726442572010728818005434659363008964801834689119009129565122061718640192689142784468006054373140378356738063434315108819863984151867763549130815547191592209693479100147248852823744349437054873575182275198184149022027626000194385005410022865376796405647044681811715083324338474660053336814979737620735990965772679411766494104699495835038412944608204368620005240832626113136729154713784908981361951719133909143961360208618874982803408880225199579491914741987042685522583908387592096925018479274165219143037209965451673210926228046535622038291319395941257302253045851367327282857088232143550249469223441226315123099750752998781208496383404948065921826170315249492478908319063050386886801700063330970797888100567576803991708828597935405007942640772488443963290690582469199480959451226170226799233916056723235929715898405503754583490850729647365025241997372699846035401127050962958392280332196488243935263357734049598551798790231478112415622030232885044519553591464542381045685315396517568307415925094823441158557309318527470027199406944729681381937040715863462633010478377647830800964791938092881217095007174442459723368044689728598076602898781849310956476687040422625675114175591938539673863548452851585298715901477925218115120074649318588481484658471760351434606400268379690197066691049659455300844627845585837878245911363089745030229504243706493432943914156192698500572353755844608223713887391339149263436479327987093035039855356425054532312801767614378582801562164075722102302397172180562810590904273085963436356737751788029241273320596172809032886592847578846054192068777732726071692576768412677273140027624697192892223639877041578921115579273813149400633816611946321937689018513975129824066970409910791869995065476861852072022176753851443686199106078417734321835659758499272078743490788296667284074164479874173596978721347675526017291904895442278335850443923243417420439606363913851463660082542336649377955327921203401255193926403602342914206947972387597816812870328332685169208583604681105048056463120177876329399802107449883725467841955311209604620752013847454884351843207793275999553338420639874597750369905256500513186266468913972793977117108653778560981123927634759693146365367950652513957857701616957054863932353292317710632331663823101102169443737697155330678097497143306490306966399426527447918918285696621159883450622815817117650820474879550256037076830374972093585611404536233286312810173065002479111609626610862895054459456310266489295231222597591056141362429319205830375127984334296842029466734714401990047932976443579470259939956286771493955768229513151636663544898385491525508121446199906948164355366903268531582158029067715789088806785116981420717689223571844576036904856353804136972541507131551458377050606270607582454630537731657561498610753918612344760976786404400359290426016413105105652560961861183887988851882040243607286859126231151752627878739636850279327265210269839669787581413359014134304697527817487090641179541987781963349293181391867595999677473561714776102122952309428698867097195524527920299419332717712530819461004005598636222492001310481150313367124357971338404781382100216550095695804088976593870606653898325215339774194873787987629598181547298579524860790823799801773945496564213576117959614513026330168324135784628937834463909073117175999870050878225947517356967297796906214057035878435626351451020788264981294237200623609857966327808085031518497365597620438153575268299870953870259655304995797866887990148785084220685995841349662536208611080824735527926121405399692414744005064747644843856943575921659645480755662368757905733779980176637913472884688843733247034497198597178497364398843036794680237967821728045965116542278153866359670561988634276005341083066129918794540760575463959088760866351561986005696163510910355905609409958396918477052459583014656651302625485006807070771986736164309828811779991758913761040081351778006347438359542806255804349166844862976298180271971090272520301676671959468911562645604194804881354735571533537207113981960308890159534308474724862449228402670635915814439631351088205811330140760111183867627461929579655882040453452288688163283744459923380465934731472083671371285433826981714846756545786044645687695899259287206308422316951543280031613695891850559722592569965878036161306703425248634008629430049898251591966694950899816603980342126072379449199835117182062886565606938477289551171107309042069400852862581541678182334949997897049593010722134538147538051662941605410017162471342173310954719811659525670075522049523050324518316804054764268587590265929280143192955883733099969538214998067722583350446992523012124293677916891905214756792393763679590028387871474391395066312795948671188621826490954030984248642949350606458284877799643161924861479890230266416570354295785336497429936997254691195367542513372670574740396540643393854021765140787710739149929097355832481850332707202174088378338239869122728366043183224200576647557265801299560359178714633573229101470118664954661340466397999111804250093944378303208685516227325206961016000003126588077229555935429694713452510925035206871195712601777821542334221878795310917384964801091499794201461969193768501279278885287493048257400251638123510757980139000258085252091070231425042483095699455192903233080729316107554245620150920839863895668370477219058975586602127436892000273129343228845563567384092003827572448595108386152463418205258262593946063600102818113675543663924485415410327912157827568113810388315475197123905189499168439965833497551048575329052488039604567934329353946392872819091540102707422636374616313331039657903189972661066361422178178444704947074082996916731670448272503022725211963208977625548895529364774735763877143834626713354563456027526905690678291985196665852849639326230812066183152488503027892091434562651585134776187199554220818623482399285250528979785294474071531501736074028424719414369288135834855410577760031009053576489469662674428451727410276135375332496888377962484397708271867219287989087308576110535563406738535615027036669570062038287243767186405742987953587203216482046179486699087135318492862314496628661093047598464217699454544917767417959195114851082552951452259832079750969969217507829401011928646558938425546727944794184551742248408033530939581326228775101920678157187961467957819926445242737712744553178597477011966377011196417666778093140208733675412303804964954993601819434751942767134019825297801796671730794401450877541680231747084209092011987308738830813236567502738119941077331921542806204040389778738482114778808401599750125649967307067116105503565145839116673428380940769904683614808310827243474979806175156850492666835360870604307122122987483968927890997063129049309744747051224613709367341170631355203366815228306475957804470033883432501649969551908667305422445681581591461405402864168133166941672572950234305454473063646169741857028746634528432688526708896989616783721720894968281499753608792355238792261700683966820684816076918147340406321704957392647065831174443659857306728159366527280209078909208583450368970217935601322339613533384693006314568976413938269296932671296295216703996906541799221581158524004771927875208421074724684295978806243207453397486071825177027646957010906950213887463969092653932678630123071590359480872040595871327405693604867319960317940564121018295804457076871739480264382776211064172814888887493932848927142777290684384765114927061886804503415261118421456993478235534117801708627657442592734728792785103006373072488746211027740933707848834701643426915709555279726276795734081910753315207602741295873411307865939970187276170151965792308609909295261072597222054235530605503090863553803662352952071999093995191221544881938997967742968510869652723899193351174344798258209625593738255704241673511318271089612993681317408370665999796419242104713344133652335617058900021038741709272436469587527019056216249302470437214087732488426250764066280229897711627592879349463907896830590498163202969941111446317392329546631840227392218018315439388536537899087538489868681447192527928529096734442358171965476014786042520966240327095147460130260817637160592432132520411367098228098506682021572557711623848523663599829107804415714205947053803345787550164924676733629119683613965863121534310719956947334803282627954406808939298563588449441249576683641079721181278625033275329945134778787827890407373560435352439284356172365237545718580098174388482714166107271496396002364155301329907027030446800851388216053590978039701101538641874066836078362008977097737814741084514303469405125747552370755816680589169755454825129362374696781567780382700799202751292789575711779438027477595938929850672572521195685758973078955074424195181483066225733106689186056056663652387033520548739782985852029981026164521349631395237286290259769512557149061204916513526390995904218294351990328932270690670558373499525282915764388685947962773396004067786975433197583746633105157312868047941288542177573144436890853240016753314405041824902998786897013419376085677361120111111430388037590246001774545906480396939150752813497579003669990790987512738204001595538991535358935532349744841299968845516904000488049313624110292091652903542224208776131751818157062885167691441041708758254337573868905441385513112902466425164028597625569789638248657237131406540747225048580260692451204756513035413688810868491461424286415341388228985656574017321177994879242709051563476353562436387049507854451586205995777722777390276416383397871167979308536099815090057131594371228445774042931125961677213325490368509357704706037502970452913535464984358446241761893618339297518596506340269376945614750388892159280040264467490402883744271815596369447755414869695178743717148593512059583035415765163958112815596784449915586133576360885058171975651657169941756387903025007392991749010309426489627970376772718143726753191619233215699339425974389353069721999096539862651545899843687147249383347037623846334013637437478893148481594762375702001418117107228975466954696293232835803071969239760093880995543572119943925822288592240603466049602490201417684658866010798333626100800141475677100272702057348164289870213729332078838927779884690720393610746006629074866473964457698416202675665049026619123641411041864964929195530450865750731959000187977972292547854863516883560855044782823713257557280014228893303553483348634810070332438019310909288656928661640051362695102637371083103609680333190075535240749736188818487283542603147135232348516169712837709654188651919886633007516562308371732088558476444755111703178623597839651510927218359005033891857172735597284112678120358367334774856741016381823191063370090060038418063835877779242760624707314330816023421987031405641945378420043518130298295370970147454385188602031430835228306560529315212414786778068338484553722345540911758480694505313343539308173340354230353152563889295725748312600365774861330821939323520006322122452252710891602636914598641529534799750502306687603938545613948270909954229586502202121228773937969553103022861278900779555167196635133583932125290135534109337726148869626218540093673344014004239645045920994516040851732250616960268191015066009317959688756426547453268532328858759597146753858233507205638421954574718888009404347975194377112535378095395403183222454152698008617510056671211059237133996594249773069498942656961783666293771685999587603533415950633494259814702183789442627891622388660635328768188245459776548902914243188692659608669830389957733878597093201460261209190414989417297219172938533867558099150698378238262496218755921815665587535995666716440513501355361614810679787245341395503019030533726502669145711248109482153454464047099486733950750666893890520302247257736904384829405579429993291320809227373100777224933755283059904906767010978153162847751267462495080124688233045560932386983052243669905148400707951183808092895295820568802179919189473371634030509332950342852608784692014735430819502986929679926014538623340540706288792899537618068545030420550714891325471164030252015163674466640159607500662002609088477375084034454265452097932315990971628327729553584427604447520485602695555570838777173345034610165213157034939836083400876932434989152566097594156281469565301703084749230886291355098752944764265000504520382248188512959126834557429164227620333342905554944403638628626172725618468380712262897751879560299540959731903718381722343300185554614210705481309492098982625151534879837746709250547971254159718064583865436632207962714931473907338031406544144294017345837377451221636045080203846803085791324670729211499706537040213425368990709191024066934072311443891008630737904229371478115369355553524936897448190710240440020471932202424281216333320805771636955037659895166170997185217456320360017964129730276048413673902540532396878728851361391763437543376874403781792380362857789313061496745193295673319498188463832472244853374534879052919050764971465456349990102306241774870334209589776564383808521290698396021688838037154120723590271175587072364931154841509634447204473749796500530081646908429226858862455297912962542825162068056937671206250849907512755805448794644508802975571206588424596458400048732110845232484353977315646114918042506869460364825158343640584600199720033988311041993160936042231863892728789837502574486171958845990095023649168543035838416432759462011090867893300326013722214821560360587840646338509795575637624825447638995672487628409818336263545566964195266253062016853027581738370788244552171528737166304548701720213949486743917059748560277891528205482909816465391059631913804797261682082411874368874859756813901863215597896344825123407477302502129987136276054787905930979608060624124122328190369670525323921496314461292417918144553665537248429731259683839236689065604355211590165234676515708399043666162792872003810248101252921121692002018598657322615288601234555586332988088146222064718194888633629148755108370493648869165841031713579634615254407902916239314628089119762315332214562370620662870729720561847313165225774872255222404755039190348151270146246841491014345599786157254267774784350439911165719518541125743843068635548226407099903407728832104814653259715813149936466441664211225040802405570329510243749571189109640718935209626801231553626271348451750810220049115922881537080082631275730201784565149999512158316055543719966494915074472355343165865812276101695942949250216939552302712738120373701644338710279144279316306079589020876823862996352547246714197367732537337821461880795544894659812809403805554683474017587378152888263111993630747796689410688024385179216461328786748388125980066477485209638305997734112970993111059208290516363253449586300768199113328787077740466004193102293406628452838379124935798538410999434273028542320497005864391263367162633728105797646293885694499617545736263290770509608858211195152197279087885868963855645263962376832105187958144796597527870006246562098783653126479958852663678695260490455648307782321091183233350917332045953342183896054140891664196298466395120185330982104381165196915202747880725764739468923802308368546496837998899433590810790586367598052359181440968337567595492072834446386620030335689838446510530356201865427021761885290740583893940161744446228501220336028013940921538266686792748069003670123201320304935425921342525214893687977966438367130580269258943412561796385858590727149748533428948855770764817242154978589448556304620337129584585627790091653894862524321309321896904272270855254157146384394681102624138810648891867058207324564584084682163657097996157948332181886297346579588486879588156969428827862223857146917444902358587914254793070907278753430253117483298226548830056013143363305442318247344318699473640931472199769010864228261594314804119574970597833802829146992621011287743081434420564191571988858986822131324687449510545084636275767591980349286074527040611624823252324110486583853347037924163397352243590133796301489562928875035575190056312428051992178225230672265294728413100170165808734430892103169989577801948485800172685442188874978766062491758091252860905502906561136922386342898264922506035142285403480058859195972138393106836480525620390363147758539187943970141662903764291374183020629711372417968424081825670925498621935175576004949721377047779416790880895459030156209944172682997623086470450630967021265733994104365129908948702917123928492736098208261522574301815850169956355654407949245610876183215633513337484472341486888715208485108800286636950306113089919247535703295815295049988408928032487707109311558053385892644564338261721558858636391528102761606883526667828854874116008121310340062361509885829468622621636369095601922497066127923756191023418192859623443360142702687844587928333588755618841963394399108289308085121777173387158919274655150411341412931423180601301483383173047536002851624343922995929904685885220449437112014933975015603414809220263386554485622825735839091170386182330553932336035051314336580415931225433920926150978408691190888145839929008288573994341552285846519481051045375171129880005947535145588107776056447065018127633754128049205407668508228097244075263462374562093978064030147510000515211628392976993848266824152066444699304531649864840367267004455877064113666344418176649082906496767800391261464525950532534266849402287029322930273953240644299537326495431566614303591227976132288564814901081510427364768533193783837588723014838092555861258366134501383455637198790480471125746606735687262837963830854572716083855307822137565008462411052771068715324421601898154072911298089416119953913949005111755724723049508881680559283168435478407085658838906297817565707538755521251143962365389745574256003901521597889706552437766970777381537910954733279087375260302361136880816024691771904212245233297825416858362451561700441455028360017283003261189017208585144282157728879022023265179661704720808895959014823543325384903751750855864239953838973488331000958125062880528322655168763490086342853985527237621840101991497431336797290039669555610025627783098120283149974809170240925727794814067823875718879523923966150213918996801446686892528662036486512212928563640226286431848918867303238892699665581485654020667467089759450736290416901552808562189065123570681353943276353198722908117039759828053708233854344104803767043211241967626722555424282018687785032871257244928597362310106451752080388266690580713322241719363762042868571012669142460485286807901694763541895458775396944262233726677500210422327551403727054470551035796568918990232930555707765060737509265431957755663251836575554268729002664673271649190389140901446927379870794406597265989746376614444881997412706264329646904389679246374605215341582746353615660066975105556293853635917227621365053911110743833949701127796835926684304288424744790316353178426574551339194232789165148725636997411848803497365276121260811139245382375877687999347476290249394043087313549050878255442726621180920973952963964554996380322231017472057839696476301517063123840510144732222421197000864623997161575632483899907209424410463252985960670782936001473164892545111991679421831072925049990683410894838220339693609638528827419009514483548549538439793327839593677175202184420934806086853004480625472255186816978009051995186279613823741958885280577049139227527855684346847173733073418659409259614422239088777102880143725232197448173866739705804041099069189747074539605285970124126769760471718843733092721452381802835986954606103544375467722515070126666838524518343234251166506813677200091564143125117854187743976114543698723608323586137952120200112266865117029975988451961201179511673656721940659862380393591375678696777660201807539716660529480699063757580548387938660557811082492818132384413755842312857415388238981388392051675805687964947967084836435653777500692973372982649016597544529145078419227861016848698375874428634492366905912020050651530508571651030270142914765423735754293809677320734279170613196068199103124358233864791570212562397581456089790811374325292800719010717206551298746351171069776629492390414390235242966217705066228432472315954847438081706278053399904388607754989028230101276787057513154809874456908420070233980504731146227787993789649133719367553202205212730074251688537034199212261471761776406859056072670744640001408683928817083295817824613177703230604081621542643792215262785412571429943362202283804917346427688002699381783544836927650807570543636574852499280150964920421262244151298714942648859749669957438781989230715425038771715953572074214770898908769073776376674160046497654234630164903762157662564649953359654039417498752512034550327559940327729819266017605797072677070157301543941999244345854591859840798331160274446953448987131615503740909409652436988143347325894817547648354221042697277836842603232104545319538763033788275601453461005461943008379852825694884678198283193470894215018011521114446520638163975659273182877958533492323164047830571848360241093211362521494450450165478980267206541872865755960187314295360850968550251841746085571208519624006678485900360219106497751269863125336720523239320181515096149927411272008310060404955176296349599703523185134340474485792786103833801781656495436436763845217699794717414520026092307239189487069366551801846631086412524659484950305651679131983057821832018365899993500043992007878950708607046738843948988301565510976180875825100970188427360874162219465769040418118129753959465062207207839487078820228648777825937136517033676065389220157684283433240733500750238004663334733715927038577568335747767607494552108340358274063519627214652791706952320523511310697166529449566841428551193336114870790341568244921555238262838325822155553074061779848643281848889194675640596159555732396556836218899304381042020853822537697903173937175407240756459269927619932962865631471022925875637756364165230790292637748613746947506828243606464425344408751574889077922628600966160327465926479884804645460159481908861826421270275398550851586406832332399506236044811937161286171490619168950519079393450884391549290596513802714530132320806392689992438841121026422371493461218902239780374220093506016052892071742855377931377616605337555062491936993967869692760743593623123894501498245422144175359092288907282569620657304643524338595931312924392594037158174912913844153504310720942540128987394150148210378693914583962598771090984785957137599581946052821607620730773276126390868801055861695263545701906877781829789263727206721643354278525410565005425947810393621109831030357617419425728495110554690868954041961623550815529884553966004021421488311155582286217310674280919956041169726265516013052839803792838841570978264400426258683107728520566828093710738028470799808428673627520218677931999524798083464987180020863116907555276619697865097812498208781614066683612026144043013440855555750848570993629677714649100317926910462594635400450414075685507087842921044254872766710478396866102979123817587907866229417304154613890101975311667325629296181171227668384491255647758094220847482293609657013374247441721475961538358043831176740784416005489846436365724745444129831597950364137286945195728092523722012478110996076237270046925352786435737570498957231564531657727340404384356178928035508802089414975727787420922038067513221460408530688581972883072773376268482579198023799986068225800982689048082797595544633035531347631453130152830964553820881837508135892993835650187514177514955117737375417733433850853802528678867533071873685184240079662079534592025816874974380204905195430290004406492493950617042477238813154020133022198657774453522425840533062097263964696913959382672906366217337456912299495686018211656970326274697982306474456052267956755049904734656726270803768419713972940768192386732014305681060603009203959953642183138094120314387782708790077295377393648745615469436450996325833363486014172128606088927744739778612517621110680347972398980051983559318830207887986439850001139620971545150839579695140327188623657086888834682128473320183806943322778430738375260500799200057269692050657313614992430815949813445536685312953093966953296088066586082752535943523594486353312199119253912236629711959122631266138817878203829776835533831616872053190972356004385498716203383585406140742701505952690981657436107545846558172506316465424167518589831510695461127915802085171512602753813314120348229065937086492742122604655138925680736740248448502063327708593401329498604598739543740145550388150919208375058173153455021019428737136534178393699226397005373348242423264152223498064944597823253399436496105353718644386592795938739802176282780868182762031701479058837319470047882572937744902783839383270769758572703083315521684026357463596362196206317021874581801281907404857929921639085965537122761003017478405200984244529438003810132890879682134813244678604535282900661123653680836760943722297301510543312239453637100623919153857913873018356159385330017295841317478990100373990205275849806573321840070219623100135474369429314427035675769654780087471067322231430943968991126988040744525814419487040877884493816402239948549755339598368673816360355212924810727925147760456266045399167930496261736303972546133228447004305554595404205055222442443776191366237647621815373025978604485986500773167843834934921133950563521151322751130143707807419652233282967170322106176231787021273879534553630514681092590331261989442583464877429311804604624808680351655363392263887408737144995388451751925168936930580276179405305973723729314955287291545782335166195412150811678692411151214344616286086791536779183219515110160494934811335746642766697920231934791679680444763992581930613490761496197027406440399905318756453957345136068174924835712328640770265656124344954878594657843429899140081611372837055915233651738632319644250090977329886413294548351651846683826169102485924626844447087565161675493100634355677984945382853786031456308349382452514988221771834200623785114867606425776159784904172543160666698817461373839258038429962175965239912792033273345527321118817956834853990541129150876765311343041116254289366269036016693663673320785588305562451527648247712701160818829956128949070388732684203556522755691994532883051447931434702103217970813764070913481439155032441405076086314881416889123123584140212068891553946662654146641230362359746209977268796289322063853803806221566833088485143152543406715325489581368078442495944997474817721161635360455372530534471037536495595953716282991554292092436167252628117376822405003779100740790348075320064839269217873976849149726598289831674795746407751738344809410943403591137250685496029313808800459818169688832978922471857765545553117383616505193980973561318745058084592596183307797514423014798030445273762939389659496636477984207169281198052220733608860760921207949733916058747050990018147797043291310467125979294854848850066381077284044857411045975210052176714835482329436976833802276272436896912947185295617888971291722677907658783033081005803298887460690028088528224278242595061577479412039318451346595503411094749395758109384183107221514000347563270185275635732125290871659696079715276871530022644082049714571734126845876652034321900999992466326184561855688539320313882704974930952407583154914205326741205726500346272844082904202487646144524189687780069768241676401785050882338170437028349054341750914477566579648332939670387130976687182544525108673422024830536132308210637586305576291971961161125309947348449037321055783166155888867083690014249890319727297209741250334014939272792552782776791859677152989949942276843118581703221834601827383784700961192046155203575789288942716789696174290585600148387867336861345876067652837558647196549783616242014646173904600038226236017553404744314463784065526184084157401709404841128745688996536256738648874471364276747111961738271680184017478533682538880882503275266591475592782439449819293201665357115237157799181454608297968741714269040797699770638334595778947614671589746755475387121712703103593398051313135855194171770374102105242708060504336324580043807523405596410253020170360674759785728030665955675553988547371048659656109321256682135425678061091731569043142317813238602564881678925421846231204256402535882624985076468258947863754883930469407077624247060713115388303564191322274554995852463007535550093251461834495481831778195691214142070157185886683810176188235779415762881647576998456093230559923243572735678665456977299293386759979416772975759344990347735221956678720290467592612164228598242055168986760096031434018889077840116208661305997107861040521514072258393591615749108810647927884006556013851679916771252155493599886230826494472162243717233574330925482703794111633026146407469747803411809219330258014846617092598485988435859778512641126012195459719290524512334165554889991052562037415705091683579971937408335668813631244801001633835865099403692217321797583433370201968303761802235083848451836510247498786202859426966180320549303674112778918274146333650431407010415021353866066374863643169531899523658761535685267840953459176284529481828176862986110360941219655859680424375050145935114538468496393059992891886014316910355018112545829877412212142017982037989782007485730608797818606905569090759265251330802822146783714114743824636712717157675320119870341987097241928159325032137638022170514050036398943136836180832800235408842755284294769247185559654430186433378687774118431262565895967095220957573775761939078664942092350438368530964043862397608699014997952390904349534848377027483146725258036368989689347456608476999579283039916723663806163220404162138084242056493214814902260619819902506319942996220805893358386213667544494538696332358734024216548264116120446061332694210145438707962373530872035238252749331114875751111904520661454400570561917136944529386600268906139331896867047218355305214879409892820475829467509160761483426250474462271107667230713641432520139401431627034999317039546613248677934596248352669588458922260230662893533968303505004354852788775552067818732205709357374252338754054774299854009883074215669873922492570058013389562208613396677195819268148136432079416754998487890534060622253790536804275762056135130192237307524612802703762691281642028251423626001471035678063736191663654227465380735787508139467974963732656407518887763253966072540700031879159888566754362166719529603346212748676824772332910900210888201750576344140283293429033615532021527443441749178463380543263887813491246063072522261907691664372867068275820130117148301932271066229939801511525765236790863459300424145777145613882973337348612309593042273183524857769168286785263992254186890267043491206490985683436465670530728549983053421354413891553195032178001718474563487597953420742044177956487334635131926949292162752620618998371267301005218722540524960649280445264885408194602308352929716293853397752122785201932474270252965388005603810546483114978473433091447084143364060721579386164788777243983331415991751126631349029868425521868610366221226591331854514166380939730551891228145882948448814650511550781535312002670169586227507833361919804377136827367201070043448443304002475422717015462930449346493704179224158510705609246313118856308423158129665489776810059521614443814764840039163037964752451842885053205429516789200242309325246078495614584155774513460520328197634292189510905204771357315828956820892404049181543143613653455985457280310407508723754838307202530502474585925285898599647812212453043278283022730205278443484441751790918683698275364348334181697013561186134883386935045722235690455104712163791225445094123059228073556641393260447465860393452180769880276230649898361384653800907037585388016766565264810509529343206912120601835851913428495705946145778920084756857478566368829985175365975626998058528653485000230842656192381066921734494830516040076899809508495998338189019494194476708532617119125314481463338869354639071731899833447260294629791126936088090115756549445514065897440558552459598601832501253758943968091852705330281682796637884847423996151089976402941193139931127343354714160635563573047286400670399230081720404832434259256726724430694377765290782876136949406875156455777985632425749194464010563505198217501772330264524624799327730318972325565179821684442135867833576564103942414741807008627715684444909855898318108279009207041629850238544164784959439387070538642544797177686135110207158619952059254166473926258918163884476405669250426841101066582297831631605311878028198398960735060015023897992345662416367912983737420250291039147719650640500917971392340871955028280722199735766555410032405823636369110204082798508410964673892985541885826167292231757184031929951361008436452710267430742311689106878210185059950380310567783565274008026931954841188994256683468428384620508221089699144773596869491196275851949431124040871406747810473052462136810355195615871931866679348768651017165629360983057312390073766278507716070956130282845126096722238488730747362300426328787260986072962933137485565444949918522700145457339760494267573732153009082831778045614120511805567627483090032104499578767520935457589300736902166905915223121097812513930560011089316214659477171284636056086844922620747032324632274651579599237062485966856645726211346876003453563837498201541374131224864861998084888920727930017770573221167399631647482770527079558527359298576766116699357369164904517766763789175973860462527637575502742380044156584608664196772721468670466734185341240741177239861098513517118176165277414812669972054599099563003033825494534438292382030156283954679433609762737030347381527564554823968552177035172943984973522600962794510865311326860871417810136423982389110382503731660532286552179433981299392582980905682836960197265784045126790748463131530137549642006963265312609356509138095352602919504425650254645327208045999549072595414014485620951197437698594084691363667554845518688547934860263098619391911225662586282813117979118157313617377894249080461531805144882852486119764212117173431969817734310538468762489685004042866013733741870888803498168843113190945223065793839823314825660996888294960779511857513205020929806362295879104632248097010934709464222814733450623072350447662629659239734584107863904489501547233012157897284432990948470942251621471100657207619134491162334583531749389162180158286413080099776435726742231851170934082189268989248601943266724565957776158221689039517460878582508392569507917056845165421923525370926366383967721926420402165140248275065604824527640974185015974529656182047768373833615492909240391674536412948084969993221894623305582252338866434831158367163285800293930421021914912166866864540615822434500053554524381419584373473690127163606952664120359995348218815358449267380004649226970212289744348704356221745878082860840805071651376151497069155800950607217735127951557461108042194582965912336698745113276931475032811597399875006310112185639380273845904571591276148181425161156983820959147320072980578718785348474971182391106937053710117274377001962639464492142611293058889366418744585266037544673310301066834779009964163411453166935090971434998038672750964540698835205302855913558854860946191115155980278064836402020372313060324142221536873860087796424802001175709886773888802444033431430331452935147540461520156640611719872782597437165941159566583338604829863382675809239705389540784240515431914593619852172119260369730006588458449556936201549629217299356339515918384612132671746026249568463217834836028184383034927605806556942947609189009798858811077245142241135043574125984756750253205019703279452268859765162840117837080751197274400542847901286884139805507817945220956722068756296885418639937536586943086751219958537618784621136111749075559187563546609304518505903971027569615990048623926132838701160548381296790530280389250275240434208801822177764166970144534542980068110342364555615691912954579117795486436116803372744100028464562255951077070148368547271763085462640598846989411598148281601179173492282479628867012214204117184121686425102799812822380999459074424123343124427146325861028175958015949623191949914743920768912813068503169619485339266602640764393101325113169021283409056259247210689006799403245710577549731203772693206236574378362894058457954464705287536736246903122440900768394047243250810457965312820107894921035261338288317751502961940412421108743776970766227753402493459458598022503237575179843794644486228231560743380679102035429130599358283497209934906907276959212343599916033663202352358764251307821794677958968051195320025381708514273377295554622866841723444382606451907432421308900789378626804728139218372548735688373825730854001768421715060058585290797272672222852911244346377462530720527137153920661426149120782236382749303004270049153653007409820948513092382764252153821418344987848453799728012665027041670159025312003488355204443521762542674214096764489230443605824384343640904551852970528975300037078424324966400415950750544323896889699487486546072150040909371059596511191159897828390655812616205289378906278076614325016330674210727621240454535299071169645480948941757585883702055299267080928092745374905664021346860312170610957969736511622089424819818386831502772224958609602416785563514626425465837151247715534883069373940716323941098816815006021934734036513276850394186715900770551453567501675658659889801449149870300398154042862914244250196280675447049797038273412999037752947900486254932088674084120911915102164410012546555072640817839321108124470572154314271482693889067465232049075237656381739664473953559862654699817392038952069076131211594943908520302938827110580663957363207614037249336659551705690426418065832409826436240427150386630401800320569824206334874648399678153296987476224018306118524129365797049835600306356503893888676897225528963641753695422095952989836038424956193608612883732969971175714199369760003185021401431329627140328156246816584291379134931991668774716533176486385975319131075712159329508744798533270981806605012288995985503274876695596419924058330457402337758680995214145535945023475477596045989889694258947043677986927581951101176120263841166368861730044635320343076275857508924728082934512322912483094713869958460515148663750452024527801660131495523307984492190361760942435539948335390325479546842215484650115437635611412032753147400758568711359448381519724880162374344962550564032379684284286068696525826934107322621718800597478923820513247231132152215748779429990433388038772799980874663847959507833684882081362816134379061014194637174804686391854057139805948097169370962334981406128566346859544373091915895369687866485601947138659237692026428908024197840122219089079126757285914318073235191266566208346523307652636109917882734367333533898105079658581377913756831058136055894452373920344837408656704850636456182662473558291759004687850974463860174927145385877555570982147303500635527601026618340276592053641560406350766066014278733022080278168430311015936453183576753102806689767307806843508990712816555194619502827818596248802280421646532554646839109642164183450347144174216054304128557059698129510664383798202956512302508511483965152029348178586518765887850847326607097384478953091044184237627808310030444689241259445020080834571912245672723791390693653873667098268386813348623792289322624947794166874260359681513943669809906614291549821502390343818626771142369625989382784849251497835268370617859118654130584040340569314396143718793071980324261129074984300868249468573222190928566140066498501173715312673230955678232331623973532147064091556782167562310934916584090058643019071681671172694615381170094865169967178107574610210937867702712691587102537086630867532772859729282507571949004601208632026831052200369269257505314870143612224806588787028512658859486494744544881828736172236509112725770432328793994432760114219897078131994368727028354409636252230366402546051809477637569425899598309072693605611617951658879485305426881356932039622810561927177013598806682531733588500501613424726396571931032243710047616364540792625635414891756176067310596343586106641414646531767709933541999017591349395203220983051088916252009237613849115763687829176158791780002426188047064329186091684387482597575561384314550818495230029584164455253685149637737167772023220614309782084148926976742243577529718125450733685255560298800570929049548600197234265875536726482460022554275856927235463750777897226998127828840972250877430817909183516474161568142260831878459987942644488833174135833592322656090753519165684757262073347122323826211536791186820232515221839665553941433200279139767266298233965653494341551441747062690745627539814139974414313948417479266301951085341845109696656190918747257227531925278641957699410832960104432829986489360492549826088237650223384542181555062258630199227689838086628772636801161746076884761777096258914718766128922175373688681629106464444365619262318978931347619074335342419718066468427757851171384731986622693497386719045080544385729582412089822456092849996560679679415303826849880947314355286252201528200059270400624182630989405478309220455867907188895706555413549080880110586706265626163224429193424217352347861038919021733973772540743221810219764361531685717239434654561224956325800849452550455416264422553986336908534336921949237505140651003869972829845705683418802565726956165678225720542650137103273198732339311147096715043568224759347322554625765602595785813436573422483581869964013422846391659465646354030021884583048193429044487951427900855069154374536053014526905366673537995323167179017729512556609223212121562372921343998868471642939076834372376520261706993345295929160205531157537811279867027761309546873946617392912745569237988662677271685395725908921859808282305834207974114338516104805249201713227764857128636178704628540833049841173220100484520132132410126408330052528251557876436664455807887517469320793120792758629684169106801912613853281890146916503756327098286368985049821325994452205600301446404656805033107084343941914880712347305465010761135547083951002948973403911083470116214784086245719739688173233103418758352975448257779009241022343096430891772843694383673325608837359472269022054738555226697515760714784596060211381737061690320093781787187514219200335814056576787607550147643514606632775784154754712677845483391129781014348398803275135219329591730309548309808653899837182010024167239086183556564671306483617042639622321463236001862524836677856021469049619155365399644548735873453553724544997841334095057357952939120546623417737067595186510129652427654082161507110038156814712876354228764030026966103078585255878998259911760813855032967098756038370952413198520968148102130065044449632734304945577221467531737821161755418586039739115442896004660679467608423204378789569354069256069641674076572615446148805282419057332853447607890151635542855041967397171245684041953610769950046567382532658089418792982672614834493164927109901846873026082023431353723389278253550070648971422119404180327126949160996812334721482119673125066071989848049696169691544896955397942637989239072350723800139895714880121576358627949129882537012485950215864902575017492861774424549108607939829570432420036404886804718368034920400174754671534935166400482511432189855285467445129638676858660291398265001961009185308865240725969146902236497349616994302291860695074697092598782183075090201246061003674451572666678302401131034136638003309709392599622852600234991737551025986033186729759668442614313805748374601913770727484937697024773711893446281746331352510239305596958844468353452813930584487738281640510112669574192320849823483682768483885537520992099571467203183751034623694741202326526767903590794365056531042815767825335532378826418038246011603215315183918044101083674310602404447473496234380456750533655438997179947121079933072793611534332394939982858735534277757782420857936005162134013998838706457084258091487412883786558745255555462776132777177674863678218208711914204608570154364703086978551715199260579636989030672497613190784958583532148274033801392666528542193348381525725183451835276755196491174261772235615414396651752467003184497505839669371702370540055902696118050542972207952346899961345068763427645861693096500530760469906287744421630248944780539182552232798206211652592252197736469576467840879121287258610891226726490128688103651568711837131386908377493306298772716487042167187814334002106683989176423836549377938709045051709356366114701433276547937694248958566198014664669595376729204394675700177502745137155163922674273895336442665565269728113680724425157132673900194890422545012598546719247762277004697918492581358916314927050139011442888411550683042776063783667271065064328092800592178946596013845844228832954444463947486040655464508132038708209881095497047424607276853072280228973004313090638478459897104297257717034528964250854781433672931098916027668147193480752779702802145885235558289321513247397252820508523189858416845090777055789264145473545646144704998332706402376747340165998767138822039794947623938642355322618803005790188315759316522222934885453135688852266982358116173098616373598725280855638227782249383740504266659238667234525625724611135544407691918301311891431158142985265494902976416409716215213393112582583209899411068378024761206320623521599021039326167514495025669329292182472588022396395814540935774995530596460141311984187797858825733182296326335045664813957437093319565675695467362193662431628594998487338997240666779856449315913483951541106172352813141587164082246147268675872239824833495845708242646168047247810470102924196386209503397393494437692539953956969414982251206283483254480908322292577622095799094729661314462598587821262841381182474930778744083269587310462218547076813908884665397328393177509235432132801676251896221777748249905726054983629016275824519942814341746774184574956346164690030988903669739895276182095511704736711036344004694475824102446239639010775079899203767353487440143251716882539223166241174711759381331869027529819359651372052800807545322180071735394435535370317974148913597789305332890802411905305701071344822966009615158195127703395281972496733624148456242529783950500480620728947582942408057537072366431529202973248008802264325923388200204506790027046716463707881777661277960825080763126180214931583341476385600467390336097474746889676266174923739351478893259310207299466399399801284249628546735360803908860265985868660190020356250574921761456226327231020308634443982352796041484888051442365418080792056133754743797222095851218361975678054370944524142013209639113889478639746182836469477713357391676893852402768395093840845328117432026100897394690134238586805617813530157433463550164020675032291446918667953971089490538068453264196042514637731130098239688303794076512437775838377452016384150019052527486774726085656738828667981541908052489575421897775317314757717559665563984318491645854047734591725512101395278429686492518910036024322353278403590114008413206027494011038526459765377667867913606702768605735553724801201838724884277551087587456290673547691096961233429732067908700496119736596065500826757283325162636434044745352925869786470056693515209039836664484975089551008039103721330875085541295261440425485244933835186246014025586092553627456602183386711355383939602471842392133330618961025328497058513175153269341926687567903697459947872863414275079736139914135645402184386054581305548288170500671801731657877994455164717140773637612813341346051372892665007938437782877732744421227291398769023675610488885570107195525180772545312029306654074032999407744851052045795618787191698846315888417788515740591538550958232991335082771754898867588826559238238628285215611641554259221006327492511311075605113376148552246001944228677537452847001543321474376250623737786127782805036296628320047405387846430872997371192828984325027082590121007595433947222169360526748000157164404302185763860212915552837760998365310443104542082178180379451950733789469116305312843892229289220842799862019449160241297716235386678321521835651696010462589390912196892319174538411062130198159460240943938505408393640994611415716772217748274872237190856345664488221155960122162041438888015307327316023602240880060175845778899982960454041773483653452941286292444068112070246718902735979387203349908170166027359146062500532659684551661305658869590109914221108643815635562692217616370488892979784967736390945018000220712785475229280966690152360777927868665901346542101491111769453382446127432159233713719221531410283527300043190735588919628086270155058387304698068047345163040614571438836220399056674466387915784738192520947085651271255632146326915872626659999372563111449816106784546626238943452244596969461028880354368118485504578202674222729858702145958843043523923296308708357825450403721755094228780095527463237658042995449386633766177727182365526040429376442455883618730533182373642170574189876027570008952680023294308696225587207505765041382676690431987475704764469588464644402975807705921024569905813681281850592601805965350194831865074870271904134403185591248984404645236920142751079109370218979874731512699252694583113622135799001384004759159550891573266061712684915275429943870835706635170691539054552091372881975273290882289685607097863132695718663482622758460380894983057225477698997777380971489411997513919718095233282038389672421922392708407105382175125289190998359987099868609460343777061698850698974773844365098742367330986081236805613924002695497878254218688733652822284416594341006061534981083283355157634947970689834484025479022345605452752278976424957603687792786413922769789048375183494915811674227886968110474708187264901122064731935089721097899462141552559515626994791839418848648434936091250496733691631581445272401991200750071806730566173608389947299171343120722967378111104873855958574380581608558284750109801354053197730812482579590222496778110340120750382174756642108415036214444374154868926963141082054997558171261937064203381464601782315264062365813923326656585516079396815459039364469959314446429145285648026952861414740942212801678551679275163636088987257716352569296006527456776173349480328118851787350505205059895716525548783007040594385559625947855560383201542385056846626094300675385674477669881513373511213668619510943895496991972815359841547217324721079104517986200329440827402011021097293398716851818708095915412414581698391187962254493692302091174829060565325341088035586257018288736838882552521836164379218574499093746329640366523692720306543642876221248721424547003593178802532649372264110216749611561644983039416358648118955775373181937149955994140211523761719203863687757422212920392677147967626598676108321102741170907448888223030548382715429279884482345647901498667669852593007857913955846414293659044570574589129656839416454507669642674596491726587316391456499385126142231627634799713433803086459664981886923584854081425488186003205091538669366978279818025395684578962311196330089668103684246554335451749669203734715083289037661456607311721968446139166500917076533948487932877700284466695884336532006792224614709130329267133166340332243425604491032392613995176809433927863652641629627472373682673209181219401897166762804498511994342533471322433318299216499158386218211798943507251556287868117095311093324983198599071030951837420733050343443601313886024784479844196324366551258158535821821987424291401190098934524688196106665883434587001803815098655377189676232783773822048971260989139191406479324273578994758661232154151303760487336297220783559175698996634963151714788222949949820447251405882976799829263409990985550233961920470320438021693530614961113915453576212592247725022718796680054838285263153210682490744413533636829353340208522430051704991766189902620586091352145288545046692230070879033129883638626147137607912881865666509138794809202590556416321537754275794218940959458513878543828383858887119790598289887858561897232644729741805815599917495627393358253131441142304446485346541987383512805731980490684210423878417213943086804309909735115264017358895024186857940816896749720604309191974811346206489374957851703958092231389258007825039585870662629462831523438388969064049357541432871484345571262355840003541312039187910778308854978597404394034351962490415065336367580383603767506849592856734981167724087566892929296047022380649438612249434068161497060604207457336199095353479679169609739327098497285815954860847309129173525301867170714434865310645208221778123010802716224184977845896656831268549763968599352747276388631301166577476250741660777413426821660608322123340337252712734283627843079779938932429101823178429864818441312926647483160836130765118983499001937306350805445437186563006332797042524718890146668770136100868841391814370971039956319109030600528567628060026705097047140100352245057731547987517481990335664131942592721210422559637109805172420157364422760923914520206619106495516879300715205766280350749731893311552366005965476696013612960678860461306488477643509662973735949265171251659875072003037609375607724050525247516041418444185100097208184639415634446872355015909450982527235150403936288252641019517296807999901964481636461924673849226140219281877016907905076587884634419595645187860586302663518648854224804607512837091593900978916970286205278262428219345260769983688733677477840010134883940393893359423052862025892968333544875419445136905044763755168312364355196461490672595757463826614588450254253244759751182389676484986465057047798329423367657736870801353159243579224656417184767387053246288324630568466932039212497204387890398161363369668382591745412155239520715004720175508320682933813704926285688822879482066023385150795628247623041079515368412753317614448088278299161317176767256854814972950907427139469571147045166193707013483103757260421554911904587942332531196898191889861044652172522866529118764388636763746939654411072215080652485722928973696863752345724721606194910721221278120087175742577500207931281149653616914872057003784393844815475008883226052072877078788605602648660061239511686859050345227916463130300903458607476604095319108604844470791482791860176548289830671232286883840279978890606509458570857997749492419870126145308444294090652076722494456628877916434231549325910082485616519071368117099176142007852497925690485455843907243796973873504152145223024400271581780017772870161139871787836032432936125135302148915489931823462480521840942853802329121513119071103378112977890535659926282386605511430222687861782493292042043146884900691658383870201669952627259161972387341729216107933498460521586663909328347787066609302947420086387654802618815074212614689668734138052621683964479568161269369615124779543965389140420489897121297065666101630166525612541263969319715694526073379686923030073862305129338712934134172205496554465492421042789688722285535053272795647107517278572115749692211067885643932490707698229775008715868284512432343481610320513684606800727214949825762292764457299005574869509182483904770834800504406562105286227552654533190256823544229301102974634819572544681775911938930396127111296652704567039897781166444617887661563112765600147782831551067354904183637390342461951294951185715897481728426471725481272560415677484308465816803000839626888789506352117241906032284254002322885294995660141422142955046382276773107786740735772406635835112560897902575832983195241548382609988683209099557970946818800795755876447089925106153085006743795731389219563579704099442541580525229957052222232984823790233141335961211438158566900881263967425676212111416992016376785891513325911212666504700439966327725791620200098569306748480134519886438098903791549186210168277473435388378660614041024485559749256500128021719297130628860637758259082075574165463982113794028117825992695051808097050341784064979828934677858092095209249124475695349849823330968150826067269601440789113880468915399383541163761071704691799228067902445795723307624877163642679877362913191817055800464196045361120856501123476683393460544106168057221353488946434181966067711292691391914424157467195571537201832455356530307874638969090769436664723006710824138970224834546547202183764452715778391755140277678107826267930189665173491320802699615545289205167181100869345261310695892038923601265432387661695298589430873819404061468716462877790487354021768649475365557028210430426885136812063441186019212376970970548197980973595187137345346395805518632108208986730069545571281582210737380247583687698347575246161748425751986873473325304544572043370081725362206513126087764215323452640546193783565519580419829899422316964013338117468084203670568197423837222573064930321133458826051701543563614545789432020855878879909850978067721621994904708459249461801440050176882289174646708642038039550498996917686550319677255964910256246503768905091528902547487588263872168697051224119037614724964984984585875936197185064200717135772527019889716132594939945780386068198324124706378708074068028037336529321747848397263379319939601740375633041394721638666731732039075853605088324697108316721540738375132822069246329857821581901514990792612302668752246954585332386979127145266985410713856202271843809882686235572667144960572123104682931962976040819150189800221396490463150429239814340568109507181684123547093478848697408752040674189915667222442506988766454621917819614206183651229438900129009200500227416844317039299919664784038665075035096477860885264210218571327659562344816417132599008223148744551957268033060880732469163729709334873803265134149308357806188438541142151301893020451629647713984883335259286561892111892095115538658032868008774918594317200057093086955355807915181669603996902356168382781185905986718813867248648474039807939823126983007853722410121872785078236111070995916694713716513139531352589317351511558768619076162607993027295442134003333184118525822749809770976591946375942481575943491465906488388396828558494846414255720018878925226794889271378434635815830090852519150652076525845991437986264271431916598999248537447946486124810459351762097956107694682358483304558963814445850032998937242966265664084372484769118843391977206997909814038530922575638855448966984212262688395400792765902880769894025453017050844374559231102999340980855923372175019550721569680252363934080123901208417121823066101146782366607916057266687689085868655522416728082442119147678912093558052310409349663645180716496715202539405651476877238068446799623308589328545132063363244725118014558764666736823475009536061260988686919840901651725148125097048507507719895583910108091946785987812184066232983894836716447504309872679087615033497660422057818101197264190601399087470753653751102303481783388776113416028089802909634348930414817249093832498270473793039318666752080195001907679857377204805862561566749128946630975919373558395946993128939572700161112391355199472087497353546169912008070709655614552861810803875569322336704226722161853074251524185214280849911335686197718272114794194789606386883753644334639503114608655454204262251141922972366238593188740193802528094209656966672039428053893297532198962211741398366259697071638149766407238536517774892292418231521964689057324090361405543695458817103204059448675372183191849604533638377348788113007672073827635583386490701238873268195694889435010846211515358652923443374979299917087086526652715747452897363999452998091773249170481067411931052054972356813773591243366463145336235164672024410155023643196577240071774894734671435315484040782454450543800013097207422869024112647365108587284478378881435345406887685141455207509418070247056662065791595495226227302468373514082237427097422620979487645189153680876379370615602016735952499328375204088096774096713424039719636154808079008427591229810524469907373994139538499827813137946720615872606513279201759842589059363472943230101842976708147364690246288729921585609144711790382849068005869869766298634095444045615619581917689701201946215609389413025155312363692926764630303787039284871958504582945651131540863912354628930040445414671473669298002127045259140216496324398704380775040384959604628762682920709128515995173194210332466902437490998545075874507131166544923876473126257524048307013624289329286634328305255769308305352367167983792202513212547191604498628631701126308093903924829956154092013725138214468566225662616377104610284538300408372527369957570269262181320023065615131857977833901277222291747503091903281760883212511045392209339278078578962395316756250447430183483739958139262463693584103726473629876971449662338027922263008950190910047117164363894030072781554038078222182512045975820041206860608491548850897525666916691527396464885188037000694022516348213072509370957853931756605580403529823605192341833602212640856387087349736975270413406742736050299982721657796802385739175757483212469856528539391630275880105105183382814185400215317678203407505268435676364880684382779920328227349423640721644280173427976104895943199516608033442870537034779865611063207728980506416435364457267232947455242231985031785616711494528400840140102085198909276303519634790371635213613462306591523441244018640120845186971252029084972791922057022187452349734958984676220867091180975676430692016366674591884906942629123134780138162872833352090513817838899203589237824792928643188491222030945547143182340517619631005092925754673187777562031380241111804269087715705621266543607956024668617549101797518292792634444335401444505486097084412677162733070485828180802737471777690514915243535973910313250775667163984648167425831210146249631320660234172405957485934714609300388940881373887318244504507714944995481148624223279661483393918075583872318957156745598473034139988346416604181210704381880292897045511232712825910073659699295308185062496729586812603692144250710675664728619319455124420557498973381540618077100881184250035454487352825108019365940980335162741208767082189953431197699315944608028864586721083692992709562325825773747639452940637403863579120045947438420054636497916661929838309026636960240696680503932612112371005754743840198831942324628336474436122878570995926664986328301438623134831398896133175489907812384795811091875710046226471165111395626743418035511540346527292285773799667228491644710822950229567567761322428236801627931303198940681107817576354777623507713639882541194633808728791608686245543781599865634091119207404442017969275627151234537927636701824553531230647259128183054866591360513311510153081646654596001046615533444926797682554549507030559484833717493886714514181367532807330298636150958461406525291108375401784302874180033988782997623792099943273718203081350891634076179888732490373737119163351578179521808242008056224498502009478816453650060066471880702953782878879679651435484274905719275371101470279899388807076035115743682141955397751513817723533451382973060523172959326519985295702321098912941402950517300702741505598260219417056975850086975109833477832259926646789107936068315152057702579134348439172086368157738530179837299630249275858031796120318293710746224787739672727221262501693477867550104650754279502067138717081037804988867819741591652893664639567057074417875166521885779088757144716063514724373425982434907764612159644155117893984664001555120629727700823584247532979371289390279016440906429112627074234676854405113643512724680268284232815079683024918502391617405575513851133155641053689306599035397280585891511582529311912965503948187012686668193479969647466145836342300242343353955538626700835980167761742657996069449012717626420576628879384330151157448170980840712649935380754231571901204276215201985540931453213542148571239964032634886194787640020079859150587352612351982628254772622527696148676864511027639411047909691596343407311272334331324776347461115362613360959918839389893457264803662465404183847219937078139800635742751431501741636357538791570142081852193091821350243643456528198080729137104818046104844267098423653478205626339271826979990707699200416264241035756208375130843917179412801643975382371288918301899864217194099904475166801238683843609304081584420024940820450472639442504214638599760927019470136571543002616406954092432265969086340165225851881412395099200139887518506033856536083322937821433264195212282852663451741885059649857691031856558090169972985994127252598956324837722339698216682855510937837198751205514196159894224896421942719489720850033135220087352775594592170930013019029793437759238874586325061438524592673921914327681548382558543702096658458913145618332884580459897670590656335244301865376053435348442243745149616785212467854984493292707509351381142644537132607298168606243054140694796183887808663503945596548427469342121292742504794979174704977791419848794483316676218445936374310885387514698991124598449220296553253659650335564736140591793108183470601330175287353632786163139390357594478827835568056550936181101657869739536485649832058140438597995381140043746299969894029657870614871166219532576322303483703825457610917719917358696782812164077780104991308786797445335309771797498238588028503923403028233879710754822721103028825612591019041542505476544016574149140847432483901318953921891178189192552391497595661160773752658045266930443097662132955409545165855130018026120293997225838948521094481707379309323581393187255986383007808250728118622331524809041871697436603478475435043456225196640323868184883755782803328043430798499993853332989054286705217496533921404117577666184406662766435457005517227826114346912183657760744813916789826727124077023111849559056439898573694132658748485333550092589402462768533485764541733490424612926752532026934133683073571103609743668519702364921147782910321272142494954949607345683909406614032791229970690931182194903061885523700560101463764680036678454704850083662948431104279661812581821902328300177562930996649208941536540023038203233876320230946974277569723931358005727565343222889124364129742340900498817535586217491572125591470324523384266369435852893713604858405489533758509416669975492962106934227776531594325078980667183726911844312940890794031386567015908874171285918754339298534817590803042817582853338769968273035265254702595641978115819480589920554282047985667535568365118421399258667819278466546266236436334568797632065378612848026999198154858968398481190979936001683072496761251865260216825788514357914678109022766015853529833561620082614386177535719144375623062878879214585110022384349664183873635514543638614013577286860883724710449275608844918602547394582612871285113768557387400876985461679654293942620110174740427758545362174494539149562961862644656646362276656797175060145901659540832066351295723982444062494068554485007328534252004788752873892547006210362243798300160752643066829987464770306108606626544888721811824787825283627708836919636503021226625256237003610945107306411315755626598562946162479590118115101156326159473000382938854551915974591653855694863675743291956626567349265626403015949598966508858067157760386668611715020308505069997730355338149301338918189536730777973532200821484670957958163688855419079569242875454175252341819690626370484755030929605604864431996331181623518623254628041166411512201814906257996608374414486911915472765944850484025797435163971338941554573899308009653579055358576628009181373389269630476785211239578892169164836123810493217756029834346034829069361529653452792104152242447733037338566644816157687051339865994752332392614130061796617856452230275573124723386657543044975706616259462131989181507493852713741260636196661506652999714406343294551575325133170426454787565334318413747979800264037975945299946997601966655012310749347758788325528594510142686487874988041459168674964334324258714259869158275435637547007605048446315942400112863671804785417781046393510908019884632847978320124073857111285453648553878684410397166941289109331475301600190997833561325429893860045890359605262767004279523667461918823409769192947550348189432028944049496863684333360334422950190531542732373467146086294212269912398098434275355461827522924156138980835890848325297371314240163881939422402358927572361306724787459571364293786376105466370407310029883033508217715334065747423387929658519405309739387574615626832857167382196118992352801850688213886254925634825310095933624239348079536162359330327084034701131158055074391562099965423657533844445247275245770405410479572454503938386218727535222130971305857483809245871177106168991193297933023788780191246957436003037632932077805399506839075491447671125013611710238009043727324153521651133813879901995341015241647106607626679029061401562724562992413048412511318609850552181044984823966179676613160228672672536312415285445261385342080686738300217876009692877290842744333836190420134941094175928463102644659136465419542806840025210429697703806688523240305678913987741539924149961558887265577224732454972035797289070192894806725518089124623353271060360777100793288082009577717670789104002179646150881917828244163222987333544149205846853072372371845670398776783292684116747426247528243643871428580945336295899255059134553381505889021553121797757480021185378821392681542476127753402603872906021052931858310700749419437855533158044275584205000153251354306125506365883075758747458412271884216803144771277011952253317412221058435213060303490717618810423818064338808996448183019344000049317252288317922491217546261195278144707219550607637921064285803471057045000041675251785862364831007966484190838329339386095849732966739464332465417511412578963175493209823597007895991403536301179752987980264411973981020818741642352007338928374075792646800283374061881991595020969299749027228429730858034913186372208756009271900009046197045414067679205642762507200659330921407995964452467358009872426238914915059155880894042258645758630383042718187362273293003775986455382713954097996594242295081680047600853225521816405502511051474486332085439231296260442153191284807574582365042172786556820449147380080602171922093564524790607614183018199433069952228572217423341276463822832498376414461191021445239895506486920432012083629841034764833632369106629085801869321443446775962555767508826754568970147174157739457544079499658632854931333136629555514399573186767569996625243868653361864177551334941157889521334654805682457184319875202187029627802983720673453310378502984716593757867161457598878158154679027220420480098389478267327644518703051128844911630003334577217279849393530862455438374323581223968146775538756132168913811311367548875226198561235983265638692619901868438681724388293987272040816571077357859077933140744038381049211266057178789816308318143646818262548178407002718405881861252227983249549158018739527569993468559159113462442450445507562955637680619786433265343699137612891427893467998511542008070301733678839011316834427858153390039438179299480937049124428892285153595004798684014306571445018570540755441049937078685136846876415532323657280514083210120541544456098295391714250882573538547836266596793163841567554468291222014170160770956103532355821114031203658149036593361601701484850922926960348853602832111199715144803279896977992246881002373317499916691851370421929408022252923657054108515637923511769228352420221721304317931798823071973510752919269917947720941863161845582036141845559676030832265107098567402422404142292342893459272668287516618726547190197693859749291614412056896251065804458615633724406726031658244821073718045787880187491808030544583921650163867394345294082664597737190149954710035053463492888861657975746993353387041747355781195739316225122975193119073955848217796991927907460086612967272073002626000064971125711781113645810444071384570262080987476541912186189777272532561594309408035618600760001102297490102323543072476789525159862604355144257685331657112186631677663653255617831174832879730893040567630288285508507119555834912815207703714508094239934328557486915479935168085562620844288885210497399038705349091252467778485844096782709881881805718719206822877677337045247284219728967923113730201795547851808853678151178479892614243874565426841571298666975626921126368608584510292668796280444657081142010706356437319429436360192842061987577868454136936180255525697474258770743866985888806630238433581262794533792891611941719937008259965597076324680936283002286983777017501469102299240175148643956721612229609841027018525668332996501376756691845181561105003423458960628456065827796171257755030709708400364858516252479201410697715635603216450860292891232023375582528737628870908361241189781081248642612077687585116231062854243199854807177414687437873415877788319658638502342883874042120796620970051092288004269791657702769770476197519488719480668363508534220929118911114821102249865811436768927188153372057751246163967177352275837571730955064929554665690391844913537402632108304990425836133718576888620966224142477807750283802252573637637711754299643770427818201291332456973710691931406035685117381708188015244011196763853742277910216148908606136035657261730490197584649527244894403159437282892168805967787867131636723178150301859444326373537840248800202016664773349232551189714905749620912588386359614234542122763728566531210663999342273762463851542148146995222385614355923121984427596339196490153088619040303699269724948927302780808494173300976547431211811504884881007260037340740440781844777514073425408340598409224540979124226285307222400919192206740715218796929339647105405891025703307430195465067700365732431545473872378196815363435852508968561057688867949870259033537072920332210308286820953791911154900002889657825246066599189999218966365987949574113300754257977520134988034806888762529130751017188847905028783538093539629229033336362664823596325137117726780821159665949476561969888424740286015700430755142018565957982980834176438243037482842054591580859414488161386669088392528989093526377160083131784747249137307841115372536024286860059403871308129822562799435224735588894017140933691058245007486397272911676480633451731668423029409325986418171906759830875889769675157913705374349113278239261313178945321207425520924426018897982417402881489415542995426650189814501289384605527233724638349548603826572580186542268924105320565643931866516821168057687384927186089262499302393598536245035526999639000784274399551126264046762240723553059328548445625276277754207822468699093932905402087860802795296697925300426979961825502207300648461656415054094405998935322794031031499815277686458969697853788155832931445785356575784394028807170578887481230999730670058197514770752075105060069724386758354050975615068587131572311812591687158678218642572008914746528838248817836764269006824070890767068169624573326122847377468812492374504086955376197693715858616667437679566939031298287815235535066998878439528312925468066363270561773519601051130330947108373762168038533715202688168924885456522674728312035555755961077950941433852718554377358521269319673035015421268751085618508055788521616871910488922765273625784799159105756074717545151522011093185494983119305090341553309591797488448420727254471705627411026066115744509383453172464075546663386404514491590539298616684565321976685216511153439994993403681304439582792925629440805192673796279326780545609660265864520389932320042791648631700199291195673466619022305925067308937403739637472100654416002188548346206232770374734407229309785381615498710086371564279665811506587235838022486207730048068351627751425187775360606804521017784876420250717354952422523150114195642216333887287649351731006334705022984298476985928751441113753382937502370458831837373629458395990311126411742769330323293802283496932460476693518778950303791659977513440114138920807255041690476022820497911204036113342475972501884538268171038302159623334106102898534483923369116628262723498156109135812678842505539085008625653818479365827732186567750124163435065578529790537132205293576910114934990915079585543919122437150336139524054125127422633604510085812554809968806459393461746362404586175185281246323300492629984526150863735638336697992304492126947203323071978044066178061155710688095884687075225464843728954509245848493007046351522060066567966258976874449772872253965579150201092335250837156261501816677811631335357860159356545008745198151971207814439141837691156323729156915005462287803403346669552884567821343537679255819779289849611460615965523043657415947607214780460380772697359811201977688972580407412953911747492809091287275220036520620192536373115522540561038858703435753755643186258555738060097717702262958221893702941074382097032589004648499265606274818710006847227297040776415535460175914863809913257179721458042723870945140237250457340056298260830723819167208034891584696805450100353228299742760797326560270952803819500924432271554187135627449804559049379919045988080924277434912294240755183834296209873622758141411576728879252096844065721966235139636505079654549298436549169450890326477207626872586209699185469833125944506316192001359374673626357165574426064920114959182147155677203544591185477343938805212497346867349874886100893282807379986338746033830526717588791215016495747568861473647531679792770947261840375401191379971026395871890971559464294761112590199741808493584849419790772184650548932353148397227308022078172012579866185349310135272672328506004485043145431654581409418377283902921475538558315479849300025768441616498010679839807359270066261334275388432242246021050463498061848736529072827773625287899484308413215955379535525856691301816177123513339594598003365112998652723390928234804205012686535640377137534569888110799454857078250273155844023507080404864946402251125954838248637355404538134745196647104885745252023630713946759486430077066066962513560297399174503228052484551016897679187770625051403112921355247216123635997649014164724988349832585508414942616715697347334385147420680481393086242874776595615141468407220709867402586868028540643168105951323866951421337616774772271347967641305902651840402449882687337065451057697494929627928867933477890841301522982025079733170299873730783967782581556410030384829356593678403097587795419641057938630082800456740040431372715860142998903587091215699815078086335316311456768036509346012999495151707290704455600201492296573413018444538770315257948184475843060221597293107069335764872971589414636476626476544376145666051700454074469042753358220593701191823709498760579438282538508697319693326518262352714349070379418243532286842093752475714484504397288133188458642925165155992453408047195844475263150442681838938729092443484250143403518227570384133039798795318313933545458718793219753710206671999073748086995477848298077434997104300902119955062678141813756572083990239864887585759610996845894509808984845113793170252201454004290400772575368594482393458422825686073842339824012005880667777328438042815186174123264154421538368107693323929951403613078011968514300590338352910043052674160066043476014002942486128977695470536554638699696396883482301999646418195590590761032112480195702526334010069413068621690343656835433156984222208065851853505399598432659139797903352268477463616063479448013124329585336179857824746351271362558876632924734695878667406898993896703999517679545728199666011851188200058343636462113842626474843163764474235296797508965507508865952016457302311649747988966908656411764909972905429412625044856068017187069634758579578818333260394366542891440586168243122426431330178894742060094579542486928140183666082363730754366875708283719736784506664481749283853676066881811930056046277928580522915224930416127513792973802379715550499550647541594211685667818960710840156238961532665089147182983717501024015198969500287741667131383119025224020773861140261031866307468886149815261350031986511793632164180168707516856182287592372863023643468718236438162466268502889110682562965758156302752501897104019598776733746306601095949818752543940997161242637255520372268531102626130921971122942298520346826850577217044979387517760560586319096603462204484663011047454586684846140847026147519430720177520701970264965094336941516037381375107064002609467775584077230559009145189708767305638921982087739965039306528644384327827904845928042246061176782407946244490540612955389446780304089385699993030062808716654278738756478609056788332707848765928134685044922268526796295098311222759489511189900594017389327789148480631568566009804441783102707242478809267541643732712431710142643874017486120745248042169521214748159860667471309024395670595872029241033428814886333568690697330842559418897958773878824359623051696920769762122929584219419990801372285623594903879814228552829546580233714584555265586794554432634372741840338783350824389341369894901596614173132271539566634956560719911812058448893195326215971032558305927396953122083153893850018922330413824881691896266860920270764687381740689544090534461194354177836501333911227026840442405622381675074889536536406093634117933590720412973673324577413732144991759805886583410862832122129817504137069213423269597548758564653251715530921284958879234903771665489764916382731862925681162049364462630490911942656552935681901461986940549093807369277576928135916513638999878219025217562824358030898875879468239045200651468360236617042527955864079716370333941408285802121021960036502357069019137380607718536376608556547786517880026769887686376551420778848361416888548802882238727898099387332457487867291653755397160785612341037151007459772976854520481118570268049438529763949758265043435901269990883412627709463744395836758324183186924331568406899909121317819080993684637013986859628335995971570080005456211371807106033109249561923796154851398430703394473150041140807657569242805134521583463724072118694995062571998971189387947170187433929821918158463804004994777297646240076925121698831938718603403848178476899013265304699105978406279393330818244800051263810018338524929649695504873221934810723087550723763321715746799675346493423374872518125378351224577109259407293357738975581063197411454327821000986331060575675026967849792359898151119992014140129835514765937912301937144135060353245128751520294259303978616839845581831146073553364377949419912080641707573982732709819374608168112868280352302885008490102171980020906487845091024601684019204945614514525935503160197607951696531907169441140574676033958360549381090252748784814720373797087762493297995105624876891863127973583293348352408282192539224043658084232532318566715874020881516383113552011287078473698108370694212227470364630145251788005097304959014897245597720912763934113499939253962927767648515247078678546222655698350918883824060639756937487889246649148584524141448539279434632536424914214348688184345328007949835278321549452748947145788445618091628309340112169688100459229536921828695018503355958559351084354201466666424528326394454174643162559716839720948094417073888726407449326753063870283469480027092844005648419464760109455296201440055972393454673275927846993942616583315509049277771002334732517099467363038022336677410029719120898667673908226251573164189499203503574300173765773862950462216208727602957693663489061742851205075154486446277467675783595148786075881756138569278474637233853618942027935429836087109232131024663259023006174077173370434531029379336096644973830835530250102270520144531997665824105306270185819682095608223621972716178077335835752942898657936853487397229537059400752515369223443409992149195916645458768146744009859446990949774255338260137935507796536252837864990881936924528188328153699630801064877366102846704487010594567529112709833226658666020185277961696629471225603510232910908165148665249257118566170641529872352133531350411052166730090652930269844563897280115751175139966720710226491345224130567219436053215988395853566823902894292136621405835169782451720889456314522951625405938770201127050544096404905110535071222880989073958167101939360807196635118858352112450521222999006721682367647587040123634927312613042765529955231308007982179349505026797680804135411367602842166521962904543751423805525064360148178839641084727833827074500230025830235114103228367178977119753853588981646717671834939403194309127051554655740765928426240450201973991000023484795070470304421412976315959882917787741397817243589188924624299813552138909403986842060534902043423311597616564930820053717611168957557708272147924381535898762608222432325997484268374799096196577158067475810738715042831503800629200912768790653684679555802954978578186744044395910938203988010770397323507910022850015313898103061873902076029984282672842660006652628610351298608929851760170920442657337749978166427745211528701709502419996731793025537064312712420180806559338667854949569078730907793742411301320366252257364003870753135117139397880351598970486685060054983604022821670942310282262770556389067833639825282680065284673869575957361553399602891477459263482321121139330504997968107679440011256045043500671645473238429679633952496441386919641656154853275485538255011228107436102789363291079926298232521129214002636446270023695209459482293723433451134426593943168621315999516938938572578719682809888800083883827904589197565561577291516232639029801390533634470712467454693516130320997534186858098840783762719196144340962103980479783894215684281646282340410842466049100608760366742416650834969635294138589406201642262601354824108974452564065161775975089047735211736141688008483668034841291775185880938693616255687576026513886476057299822773526632628373057680009336008747543460562399992670640412714993010777019891233938551134123540226043344902215773451207031377417507460049121561098859088767793166809840248734399100726506548450371848368131723012163477078364212611097728909132742717197566200935083466409869841009031433966007757562818389926549069894025302651122726934944511137883633260796023200239207438696000839311465362369374507202199164523320636602566357818041726696894756594661069355809747612137791286864949344061377912477722648558015096592280150410822802635260018459977827087806023663830766935054462111080914967089376969762443604255855216960187736927018432002838115447206129205463734986592553602158781804710384154222493093229873100515028352655037293001146198482269613020119034122917019349944447442870444391384927609044900210850309510288608184457372243031059798220163937376535997682721447663503432771193386753230133980286844908231296008182377138123375242464960335842179899014065874763236657533749812581840155563430182875001643678964592907215373242484153746621275906067995877794231150971351404453519573047378156002577607102278647334605007010860323329840361757808727951710392493617241407351381164353673241499644467595249729816755633658519197884054614126841616265865826476160392690214641304191448764392693181925081990700681790676587528486548767521703396882641228898442238652187159712236517170236672669586853193572026414730741765172986982087046831631377825582502382697583188418033871989508906339097926325774205046977397787234600361526375990710347001213969313920410465336001674602819350128375613810963588543147839060274982008704281857859432608539287518506998300953841059785196816910558716356134138151036418850369054999377985577830494071248345646265988143063033844910186573675978664866107048653776938307706811420037009424619277555768740528335591821589422501027259571838709232181345410660358648853194063079436348378598300734339275634363885150739785536181146646392889296618479262055914697657580748646240631448246833286573484764872594605591084056142191494214167917731399882688597145650778231482107726949781311790000517999267416616619918470225220208344385928497007494996400879111843403681398578720471053779254381569958580661563099027187764940959565338526588298673916390907993077906517231111932505821458566761509851080424979783296067141107805445758112118319433393894154630768989053326934756206274967066031076103975227054801620042358465907244643493491837076798216443264343236370492889889745786023444066000237563898404037695239445749208205101129870219632403555246702356764035812693408162594167047280580037774878536837913268066336615867747771391375184319047914454772369285063675219179574676656304113317454042551656540410621786659249709825417645425247867427383495102953230979743491164914323609802469594840214079835339663373523400680678616889776383717090414199330661234408861958504040097560854892976799641983986580941605588726765392170581935481348323808041700631380296634259563941444013577971709588561485795402162858499743725049766838507264374447639937426796932338079854883924648774897156445901228861976277885416059811717856856040946311034464038277111719515721278176824763505526937057113206381908423662875944880737005502635797246748868428985821762043389590327687485393503932738689237101326092029824801359230770362740058911924055589997842512184388955123264360776530962906421592078130459025711797487655633342611975761554944298728141931970720610492678285197038452280319576772522220843166468407965005673578405018631495018128171363350126227161022707950750935951937860833079647800533663244022950956357691595543416989866827202012759583338782051406247486135532725685062145772443627667826172150346160235357460118076883825938721899601192848944502100975272352111652880978765239316511490247281859305748227156060301467304028049510434370997594738881084911818691974933116210125175575487298778488248476083362180491409010962825587116524572918680424752982752783571411953977691637346168029081652091067734192966056205386061492365365065070261498000270397092727129811748779772138268424034362496840680047031461931139105157674785744344156407115961251798251706047087540810436639145778063108763995514406255830468431087736341613846735343222124450088259249273019398281845750739868463789833941155169023186813645757307884012446976939589744842854929217293664266048190483150024972067598147970099501388961376542651657746921026581932563558228478183056020715340357256602324386305436499540870079898694574983557684314648367940189412012901014012819172096334474795165913059492330190064338515923812983321666024918063622947292221444782975120884794916674180867427068777887226765251399906518747417337724580017116081011224267126051788761533146146366958798039906785416050943747933858200262270900850698066505241218348330910457837547075028418330438540180176766014434923901638535985262607489240268369177153552033357086836216202457527999024880898918908160138368793683413449616108017085068697264569776003148518318948103824019730927782377473992500779646965421743679312494988090300794876054286977398385526615207009199040918910464771085187248080624795436593787107659281241466505945914309508654844419408575983485029920021572575385707450395564959501094225563108776217326668098875278036587345681174524061436095790842618373143023056284739716959634629752970378930673595623597209064078088033858522743591804589584243513229580342659114994907495257880064590842585743924900697539950432726448174373411829685799722692717608389482165375627711270340573109088504219817307874730511970099550671270705829075972670005698180778098851590481972811373712244304810816098271198485664240772491810672059984267990147231574480489659489064372653526348758890101216128856045308171002589310174309706610408902318890649650215039665316367874817763256952967470820256708662709116677642489728817652953085282231459945113833267367117820137373646293062067151901184989871633034350651953273641619757542584000679176653267319439912762008940174436955473833760343643531661597867365919058209653261164398949645495092046518367274734516638658372125823764595558904094184967229260190028796981022107296968453849659381311902286163247019163822892064962210894848319281149776302842170593902248765649501830975251578975301687474628761766252528849459224306945506187463394967196305057877938202504818308295785148022327411040838069445112154036833050752149858114493794512786515005162600259786935299238655653781502823655453435770538995654132532119752183480917377665898669406750999361945945535598991272944313444096202075114359210842719565038141537216596285313391850713167673436404204571233432184692766759387848863645983405201925867495180407320743121637412543545623046062412090344203879136902089529508818090157620712196714803145759311756544660127801494753787084935251642186372491898889811989756529357074640644815193506447277385605226359193325608136982044921808586106978162447853746463754051347128113304276365881354705514249184714204166433056561213031861002920405020120351983238240509518237482853736243500385858886856013191359526123764253611723928261445020724720326751717413693214459688428117245678467620953351421120492109307427982032469623257081887280433449744417255906412244656703043308915879131782492698565178066621354180142870298041926516614929314857995243995965598281942411180168655305087450815036997477331456502104563170873159969819252310255658038903085580044972735373448126488460957522424534989114775597389978949267120128957390257331951249612866334352519975726145847581661129501366916150616257025054787575988863061226089955902164770289412303442135771954641788586267931666569098284564253914265152573130801942167398527107204483790484245464859994697400057286972425762672139799420421607204668157086306558631239897756147950221148048000067933871260427545771178993385200697977076134344052564800252076715302345857179754729014295965117818538295635498918377770016131496395719556078015407932514276220522484567293368219288166558217477861025947597542466595309374872766225737967595162938792178320216254771883149008986701573753802847627641446851874404899036187106263945413566556979633633137777724507085424681618057692139947891594343700331143792928883021918067784631370741542256827733820768302496869321889817422071715703418215519943175309636424259977087619225813547744268445530319549043929373579197676195792897281854341626184856759050775789159440169716392975355237226925099948713367302001787654285187102591543447418182664192271262566334757968871553853034371607345055084582258734092850674116977730640870106225517335172247994053808013525890964197566815353061013964219907818633023710157170900095299107792113039614830441552401150559667876959916993728112303621021622363083427111751400830760946024160223156080499577623571150687804839980527419261398514892299276397111295875093606941350906046661909580252195087524206504447541936385279595225110190858042527871664933529062764648302877979512063674621243879352676450891285445998856855496151674739317598810738057891478810296053268988584568369774230543869373508824346785504645575370274297560742455840761208411296534329202230258620059097384025004573852373245296366787431322693062400968427081742115391381789391459095581077965536331584629429902335463031048387331245879214558709073395415942558919076138477096520064984389162364543747948905417627722497602435951724254306162268148466512946483716223503539573658122772995386181076236299229423358956241824861775639641210415622206524022602954819570767636631706301234001594744785565464670824006954378251539497297941393210763521360086069866493300034747768584388806651495866114769488419005848300311939051770687317444653462671730349672202406432713674577451642692245145305173413366463657748798857414816149259013667814865689230657472204167711007272792511384429591694561027100185867491203745699837381716909389876479966780376250929728739795310921079066903437077442448536656153559808643464229034271885625041669660748741292507957206246776106654649388846671397706930996984512965176215083044213701103865937064602665059816319256623324696600440860104326618919896079807700062797841909116721515066130429864910235235409550339752665645776205132851989262051323384727948053415414505120617317427174364270342007204821620567866209546669256840166880681315779312738813459686871462485086918477467802610618204411817809152461539333417802910359753658538665585281295505865134498138827534516170750526518032834311344163681314696418341750657494526920338052738785654576840008773275063420523950537243820334558737532657362024120562521264284749204342749671558715009218812985042867154173290195032493439593303683973919924501992294481696865962706213163757811216967276018090694274480751821931383611367827957618362951326337845043863347717036800267852785408391186541412392099431168467965895996934223644580493330228656220546295668718360341062058196695792288887431408086716372511395470511452037692666041161855028362974032567185286830691580267291154519780221403437659670886181816056846571324445157295800710106827121964099178872497196527836503791927061566385987278266134655226559722762841119686943712302437751492685890607788107828031692308279445750424682701089918560369493772893481304987036389571811648014314494213831715468147336110685995833558655351631036286560182711196915447012450583322538168312083692793330075978151489209131042476099686722770883419573541105604273504524541605698937277745033970895332364116178702903117324738742506256371865846693571818810547063661658928707028730421986709026986628992243120834932112721151900937756886498714380400220035756869431501465066653719469262625928596806171074581079062686059582146497628820847286133861856522343747480649107957132056696458890531534668446503075024659635512941024220760459614901996227605547741772772070234892972898940979326307101486435566473473983932456157876042187329892391349642370176129977983370566151473421292064901842392317417250031507880352527256913742454316733429076031344423288539848011698714204402811433610972727883083112833113841110148486933406843359465348167626346229386116739743214974389578065027708285674013058800312098792161810196977415613652101823729434674433360188657075698088679437433829519722002905883782273314859983605853322521749492990714957985666106545222412054728198071355707340411751178340074492544468579733353810628341004971478653496042360396355819098937284116858325231236826983131125659701864300712247752833256628144034812247936548302522056986227049401304136017876423547390098531658738267857593076430170670249029387219676537709933422064637008178631202631623650730581402254584547011168197848498003644261634571534588051671514968943483602728472233894023911556363330293148177514921413067950141821510556669213531524571561505836615215628233370577410115289253938822083310288445502979683614459137522394419314407497516470767623695720512704266583746375693589149156401526532243509543220732056985548089905462558278875917986515142277974013438072729650181399986535105525393825522698393515134134604116540331564020837130144099623038350809521380192715311238770508041642295598851944687300791240778901025417594470655977636075481945757567201730125412340939585022228516745776061253164376196119726340492679578498292841990811736316247041894376746198096455053734160857285284461596714247318523159568403831567854556276201616624751928924200190776884392064590027714733752788532981096187450871246856576418987927436822390247153055698584239751071617839147642232018132069894410328582552778767855822534239559349784782781243577474203009313282622427963579810699333953360313348103455140664609019936794111267702087531209822855783307109602435688432704450774537849398121807375676914469788850432361795788860535361486159738842586293484718132393940129867138902647702644792360501650208881295795665571434501372437007903667628468659534592596031422833195822694872268419838053557996871496593251048863006486616591643946229652849048230400880363204349237811410595467773586381208379390281804584132795737802060437648780504979777795361885922068432841068490730567004057966095585024708207939359812179460434695681791583767106860558885949426400831918137779401510863963962360755914645821635508460951048849998926526109402463355205101206602576737304459136367420083832474198241440409609018551528351414111613509420381930451404125486077921391240394624315412411865162527154700649391110939380691619769284510098722323311457643784917289326701115481611098583028682903090185375767515684144027257915895171446905529763490285498376758747470419390734308622828238601262196191892659155730517116678949942570014041947127200592455599842394683498457509198320587413630435253987924493251285751442011251147835099238717913734968694228059659983541896146978402552082503906902023949318902522986939486410481469410548645138917914589647918073393101920976222932524353068341456145257780852893927121320624710697979838639480214917202898681822320599190166905951955328548244881312533517659572962672707377258152734580792865378128790510034511822209864089742013607009873916152934293902269716663470755591035519176671439624367761659877970659439597367481448640271229948172938734444761049826468841129185668612523975571245328714089726013611817115544709160713642621803014485880152829075045772788308747985729055109153554486680112943497505954758010893157039184579167741978095505888079788895024596980442326615761473998573570199265715244208866501732980924354272703960721874141126912799776034685117377936783807431769977380740643657466906878924970506279236336224903469302062085379284487228826532580615048689529920711336532204169589084124261325477918994839367840035987169967828095095492585313580578299513476465481735059378070564406733961849537764296931631256060762448864738587127415110456115689561586151896390857466248461254318256225484129946422594081205723855047251788612686483655421432405673375353583235706873080819393215651184805548361103514324461063270241882412393153368518657718629391102800653672177553599378348902719086609147118658646928970195485266913802698056721611212374945251128714816821271654055496969729510077248425156977495401094993444436811343769304804398993707124946436989967181212247461214981165742539963295265331078514492948955723004444909439206855452231881317152867602277859895642611780510503889326139735324078942683464239373915666715309314548470424360791931312674173761926790658494809861288695742170376235227289237066839773638050873471253348601535718553564010450467988948155757116781244030898422752680952534946610425651143286390162491696470960094390598915705816009008605062777795283517618858108384152339715710833236785230504910628404572183947174996690536885473225587155686146029117138849186101593917463361762463232441175724664737065392473332445297832781737328890635602272058526840549600418891927476774055472004601899435531706704283878647832479672538129494273684667933395688048943725123559809889949417224541378720104189661229752764527075406227455240186469914052395681371251060507715982198180478554484442868791784604497325277472165220587582578295824528564841112531435360137696994038642776760679363230734549180419952729879464268605579319881911626569452775360109785975232911779465049052426189748409513175638731275911279526408866757981778386367022809665261202347536377931374452995535557622641323874320050822916656742367432918145208693321903328543181976748598755992234311545431730166085179278084361342087254933151118825526281741620296768663811499450954696487136671986384986898203905143021214227454737875065403330708460545106516274118338606241092660478787367709436863579467824152461671245056765032607268516139088558957869485356473798292631478315879752616700392385024112337631168895178093149175185812741419531035222884914083726278590357148999519309382686500916150370727710801679151527018791132571666788455125574536454938429086820481088813542334117959314404367909992499096735192712640051787222703971559156802864784830397265754231260859276573769405778077561027226840164686838432429628550518424038892408291441666340082448349855493872005596782168884252965716233504031592228235925100667672081075900204161224443664973952331323382988624212359833140071293632850298863389604667113003069476669924332941229068410133027940289126764744918545875438478532104128478533137269518782406425733530085978525528562807167792148183999228647782457437017247450801223214469573891760624127667099057544045210367734637376599735188799052007602070199154302439004309143575423439119874805401230678552056684424866881906723280940384896076215287596214365031237428354368727372553613609826521185660696869215139318769364279854072553709612120365877217563108828190097178868971151445039717001915402184094770479672457169104592024007757225325036732232451082535075911924634199237284623619129771292393165099306184237549429956662154666729035648553542482692757098058352606203027816373149057784855940608427933406737458699740842378851819628473236715563446655557287928651010793393619683957338976362962571130755298870375545803874353763195342829740864596517641107097900660034405727385739477953841847091223727133326820897557440180256854448528933742364722258590466743118426314841290552744518270177356669144320527537661585406650966645827626864356141105284623716030255103472408597408000071788376008375572680567074528293534387183450040323834459333354227348011834593363960162487409546987405331378311681331777955851687622967652793751914736665132626054908255469504957514774267863493135482036511249820522962256849240579042920607741341222312421730885310691495224899685846423724586831175792320229779686940181160729378804410032927643924381348361332067281642636203531087567072715879827350597212891844067515621037320563944658122434511695226691825083903565635095369986406748108771755767194827646979104783272774427043134598301577024530917884610848771863488923989806277459251224722685960220140646149999306432467230144756164543335864695669439108559753570926215337483968361992558572551698899465581209746685162619226412789955087553960555444025135125143479196811409997141662586250010934973183556162498036642570964128791528861954085432752656675385991622520217076760361690409280097437788947697877711930691780161933502081226009567738336385088651364269252343308941874013436417652650327770793119406957727538280669981865423710835563208426510108948731936649813392109862716848472787530813017746796963838174717393340249819800819339903074157541293880576488588722843826433197414147008667294027725328962133560946271396924837979255737712496717749996283512695919470036966090856975870147064623760035779464935663225499493418211942787268977317569946074689274899593112183031479470540421627295844310720547096304244032274216390531016514641497297107476619264197056400340208604645258298600034577173407903283807232255333290735857837659489394987983610459791862467507992255673708428525219090729364895930655398604668209400449224117537009891405929602994499860142552063381293057972692143480377458970189297862278463254684088263321201018356151946515156954401002710282227288860386868661945277547499074552574235393649218703201397277625166736362997106808656339120580274737662385035182929103878253419185738635385309524438018013467042321255581656617254365481192845446221126468340572995519543581603599842127263427279255134583780238983289124361712049454501098377196783115720347510753394626048851996463484121772155906837370019469745021257164790035685645876349376956998549115163203987848025292775046381717085490520676982350256023195019483171166480782552684339552685917975031055400846492351394247409794909215450182839722518922554515156951198979056278700209563367223359441985852852898268567495878921707045299146218595861177461628922565606515345726558320020789856949809933293181253005467669608908266116131852273429460936060661253944455032063122616834073453950484693519089996551288804321577314287561947485602780661568503009331767034677720930058742259872267966607950803043662155999121168731149279417185804722423190935191420371998918969277744469768932289376903874522687351662154043120237626209569802126492894923250290207361407406407154967502325485451967546753993525863255643008072787617765691941735599316294407528341251885541999305611075210172695011784676827838319368282998917115051384093807796450687324394238047153572754678970089241195371130029754240081248063638938375147785780512987996957952187294326815576306594505502632122632250957194356622672804840745277279074479239062890715626352999644315836617113076945709066181023436185436084383475293955812908481412409953402763586164406793403445074554212540270934258256100065189974057530725429911333392544248003061000148154537325433685892027023275066180480176879973266948775556137935057466826262819189313720600759245202511395695496083874929948123604857749505167080362294058985722446044474018322067855096340722686759313333815787448207591581853690711775191783625029115028572844315075010173738661910567273483868460352786937051813545781310969087569034911604979217898466310874734232625187534475278543369987246764610923155411799059847824096083437596101921693552791027899854470706264200901459645208474165684998182471963536993296318635525134082315191296474565361098085778010785047699160863911535079621284227306534938413703252630243898474730802329770071859872757461471125224384579522194248627299838429127703537146577953815715961759242131440656151352630911404123648384917716444338863514513849991564289787394844811849807517369879025399762122553674962489320975237894659285078874840441092978825813294374936489014240030590869966849739265450799837092194304410219962323255123126272890956788626581993633073888969751501173112668409591261544810212082041859145914491779198586753408423901300622182320729711314811244980198813941029906355737612143343771545536005205364425630496556489546723707272097239547496073066323644471624438932767844802073126810986715359555616004155266976585639329561460324002855272887324087195832442243000417433556763056982773227473116953699960306207708916465002331075741389614563989961103201720233093601725623638718190710546851969291350747823206730969043399500266698185141804914444290746084215945720106297035855092600582013879923274980985139918066864302514060559202934868535643672919058343168334500195489489342740136191567450605794478677116538497238224458423232868102913890418746929660429005786512499976487038939964091441615867626734305861312656930527579910101691666929528586409616507419520287415280054068425014119902397391497626261730129067491009503376256368807212015256622299651711330666261862643475155821732514231052119751364410341404625323868715519161888507774675376569291015022548592180700858820874592499829412971392062863513201339428168989361394971999429570361410211193050500343817800025822372927063870590250524597965063651906355670492211515715445768076138750018785190415618714125492509486841869157584853415744860883728948495488109754998080073307222211869801214616404289120288823309157103187641972193947933057201802245367924043221241369940791618066541151925800645184478623708830755718438932228353193274549873419052795802185506876670248510628945803772883613218075417913727645900774103324976609598298092449116249758522128235576397644823623804787248585716548630176381322815188144338899771511242171325729647503392502853823501771287051357534562366274170393769915878030364973312162848602374801466448507302297341268754974848779569719394168532525697031727520033747504738980664404904824322930687000469595199653448550574427481855776456943564911634801257661193578031800413540793192974878962548122736716716351516006872220083670001548109077245620955354249168000550539059206083493161123027476924659103262889067770573442127214595810806258402823209901428385297516057931662546938013107264689788586898946941576730288986844065023403475225430505601716944705639125419141589853019087784280707125068391832185443687044469915965440191142664059603424194269255823345535543936763439722957738818780256225647240214925641501831373653311202740263144027207201015744732693622976120180126558218991940881689794824706215211574559978759544335658636391288456965939525515655649346225532735945472074367075664590366636116510937774386829714388501996456688093953936231855284655534327454554917664424117423313697116683530792908581839573097335052624182221193402977113812025232965086471527515557482471533374087076088373663191178892199528006584316082176751767425406113593895132506713647898138411229963990030094797512685718313707433089349505252533023602641765301726817611714484667680995125020497250035170515878647099836303983999339092767731889780222155722164995007597676852592987546228146186988105209661892791896586614841365300452857158393475722815307531981407755571526244895476076653888397114841703557258686214466597952710146541138601823835942245913259527649848490194437408645808513731618524183444544115153871741406767362160874038638348206161921342069518773512023609100442316922009470609952993385071841492416682215740404121238837995264567332387136314880271298911235307565699063066798691283890833036047868363582464532943727324731717334575799212744663122955934782824818879923880992600204998175929104295171934663985639159183124385404972987597476566298964931977170656568324142794833267773607461670280585061260831119122946560489439957051941771144235523807246015179811561486139114599977149567147016663206786100236989969387660144009774018639344572086373439599063876486740863070233789243626762587221441077133590076500044451479617883693733012093069940929582844878488282571472808398712830539898270713194066273086695274096024096425888694455349995044824906391632713650839223465713599305373112415223168361116123141675062855397145590621895357757655512092753012039047798107084662903834450274157132385323252974058315046830642984329186119617968304515116023993452263766632979452826301998330372558551195055886122013923609611657257061015434754507899929226544449804536643651166389607463583227844076873880151462814044150634907216451093774239794731877754434485540986330981814829124550104212452403918300373262722166981356326455879782081182970391686126084630136282442955046547730101286647488246207031916544702522835183233027270758497884348226191557669547638294819427066162531336251944803772972463335905302941117399530288403674040294644774564508136090137618053848965500336769666132313635895307390266710812429321480315450064630524058827417057591958482206144641368112183503058843365370252695356159597895151083496279469833389677351606693749948341571810308512032412101166277776485390349817273713671596216928939990611227079333832437074531670818754667727787083220078451043656685556881138081417613164520113291314955900631093023652747981632961894921882306924282275411259704288292969871909648682806956504074699036916345699877062123183824284541505084281329566410226245299203033751663894255439193733363384880679410662495375539201296960089682504248283789246476249882683774310729740387283529132561859087181203231713756389012568985074231513344885966915137724120919922364892801679683258941302643521091260150200869204663552256197395748460506372531871980182306585609464541517520206271386133708242545865901449088846453661924542401452920907449461544429452481713452199512771767770679337546103455377810990449363077481172255996662810224225360719301197918325089024964825074543356022817727605914812868745466806013167722594822904382189243321060542448159404334577476844109999023150641960013474377018647991668713007579303544066364283443359652265614328533548127028781426312960445199305257137166244141701577637612773342824920040218958631877467883832247049473604836072332029133283699729758066385466249604192920981104035317776121825751706396470979095518780423702174750657344832472215025550212223084852007473613849510734909790182601797148545817706143383189348569033840051149228791328848656444206187251480937997971865593114742746096275268536533467599365398348949403375153663746168231031641136277013505873505588712943225572541735370174972216435159823025541710086023023323002921627303939198410109246035493081063898479922109417743317629344780930406593934192874382665559828554558177944314127337223961214229162950984929037142963851398766792312168549374952437448648632771375427187346016166636621826778182954009909457811771845228732276176170735508952661159691720454816854018710100621748540856752124339983789830162408916666030097893931188590904235176977476423864212796363903394663577067879960950932529850165535199646402528541621852763904186553616348232700370018487304143977372139654234665827447029166994293666533019798699721245436244280899337319267993340790761711247660823042776482940709108359312029547048603552459769310938986354557645718078073880717493385635811221169260222761758520307595764736575766649594702872012571930269794841931912293939458125370322442872074390864419688504491800391006506998319327843442447062106138342710206584753036716020112733997971483689363835944978107097355470034764526111488499939975926788692317940657425866927538484267716745812624563613578673731606005448339090596362371532802709178369743468441684061682042725586883768149391080079189237178224611207431422712105283554819792243780973519389838003345896309649267038077266504097360250526145374256180835132775687034662447051963709504509176039768251529698105311593525501793429693183988387911766524282085425318907249032275777880786746098106058126522056763179073017312765187193317940445213787344969636651061313912956633592610316923913818868135306483158987330882785759490018419067999580295867873489488579379541979902764933542118471040029504844286201700754729613188551498448228628429769660268019282427134656042128071711951326452063904176897137491507536156575041075551847262724739433563514340598302052789611815703935582709200921310147484526653385157646104491011907723083170353041574993405684945195895526154045072664653687465389406434898679410036954138523643041485148945939414795011271041106663841815990265427456374835482289294862236982226058134353651973921605310213391483632312416306926723067554255361590001609692156640450228555063693151862573508901165391311809769042967684573412706277833226656813534723426804843678266279965262257829646791423779327660461008884695224138755620392064180314459231377077543720144475957388998625523945684963713470593959941295445396157751109184555423334203780180720202165675984071800646411166908010848670419819581675556483187177044883600102342311302642300214206074217390913212452503912993492818219212217757012418375658582842132387667219843317307692242679130654804447206443286905541117213728451895237375511131036323667698998821008844617278802038300830763156244323692839659240391442731632839296460590466671869643681054699368810836448268986123325043293122570391228489516769277136431222652791933886692145953424470455105171867300356213187758396220979158752643506870934506983166271632399774362182621990661344014851319219315682873690363540311877840497962106218579477266068506414295477422468260107486877447085089021013936089069367812072875671271428527963957111752226288763602295893145685895671628119917989476434752594967601564299932259904880542066598529789576442055290107113168620815187728002530764846131477052055136973145398833409575624206017072510715316612179398310633252607774579071247094172991692768597974417470628344897812050261387753269833284637510377115034982039714256990490395809646437329763964017175166730835776607216807204274730729926480223689388234016714466276819642937705966005650687882049482605957286130789550910701670724175372101646808920532422199329856524321899016683317711804858373803485240687991335844770468159068227849953332992720146268722282527919023405039500756517068257626533443553701215058259436325680583284080476261458763070334136972361711064067555457504053927721464416626751649076033096301144790595771282901817759685369815160015486489108359161143115031596139040242369163603422081977367556737857087145806802399435654904697582288550425515296093124865593828668281142930398794591343817331865500873101428928265267773234452035556798769263739298350815609062673314335006692993841809133173064399286283352853488793084252194075602130736600554305534585529526547564680450449060243602669954806978239521672821286658312551122017959513710123902302420999699364905915933067558961276824211528800795666072946406966565946842012064146153777373819388081392187007739986098217064671180916281033416507996288094517252347149578584686605795714547840781065951482441340569353761835700013378206868701761313688131537548228203086992656960568277824243295828490552462086535302869009567771119108282194916708428929338039833969419216818741728828286309793638333849437883810400704542067775497330213112701399274141535735479335105942946243045574886228268174963541222490099349224149288685357830714418474938251504418214318515861567973445880318703143490196755088673885852114095855095925193245775843122990445964702765427210612661325260078702506094105424336788005392271177655374020039770549097217983176703997362946645893512540109798931268238784387185133300129439374689248023212153831785724782508226701210087708856559101139213782078333507341545490918472086462305644791518155262975545454339129392099533140867841644593042765757398828212500140683804653171291100046923252779345905461176435396926895927606009296712134213642223651324879415114137641256561429287209572887394518453727641204175161386287329487294996879683717809610381546680853192947371453058592948357855607062416888116537250144784414642100080414171545076923910885430598505745879473990031968112130393653625451825165829844677221969840848456310405788442042459879001487400275691858952455310263532169836273850827526271678234791833794759512988884164453776783757421879312586279802423765950814870121878481749789867149580056184854496434779923802846075710393414990984366949302232943971740129183339740216787303412233513609910741976888443086710687751392764753934841099119077690275029980031613491465326953161836105025287134985366826169289609253650117884984182012686653020131288055347346592623296435942853784250099829980024213572020415167754509721279676649457172938867532781944464039322254336207808498546894984632300356349674746252127751781642334790757263570096340600901057911806356249994410503160287207573945986360448691627635047786499925186178832321361299473182939840316109243062680907680585380195084026277911190115397931024637897891405677507036497802985275057058011689496517742792395821845291608864870508628742900000687496602272867554422652773110651305122206280825968799840022893880202745909785529985017940584170398666217439005098332269748044376440691817068828065737802885609195324510874200130412819783408194236994518626084914791907907182331713519702279103229030742728353602792584664290993325537627711679620407501391845628358222549776769502464333872974868179341087238680841000892859426980458820144880951304079791075863452246859091464417534035451108521260430145786018645378915559112489029038079464953432543165241425152220864533502061668705770079260521746576442859142133272621435764894021424418469804097888903056392391713859896030125578255166507545572750504079304304690305357221095794387950194859861900576403847945456932510505467377433607945811744379652274803016113442444874944832892226937776257924323593770106356214383316125250826620656659294675304114633906521493816917528340333242812880070422252262885380840590829818793620331093458972678506402833248795968126862913028318165125914631538114548420654330889236546265081565904712872325008817911759360980014753964191968173803220180778542863818807552649879006203560550196955375296010861077233070286386468731603104483734955388492731881003136604467783400365654732538922804542073059570978102489028756461478773371947329118322020003077374926274094326025264801871412783640701551575790776038223708020535317175547342557194772163789553355210168788764759612039466532019194305155456933208611901004149678900204703146170991877183718568994737439591304278787194649895290558519531910890462435666588621994009552162749184211653633499935521546892280641582986230023457358404656845980147516840075291655423592595599778422741562877045472887717938445921980851159973594651824932019003997342038566114285196839967858138353922931491813287655183223175979458745848432976611937058994665743838126025945011576821125769064894742275194870886864925479713860962337467503181180732704466713866773578421257887078705842207442869091596465450924811750014476830340175270246015045308460880801663002152550854992025314944769346428357766960837675217741850025732614378437898686836517643485730592770345572949712904178653698790796184079749882076029470101930984525415730999077379298321068501319432894972913060915277610633112297709582367628276999174592030724736321526259068058106995776785771183790748508238535948489677652849827500915777341187990474833904727926486695826035951237413003415134566057273742640086589377013659093304367836386740445582176269570211673254729926867092578376286913549359849477505686886686885567915242539094870485321039714729821151608955309380046279425718130469695578827374562500800516952198974038132736915518679024925227425133323298297746691969627307922192125791001720793058867510400889483834065207449545917832924872972451107410388115800610170755653867074595739166800723377394314823715656625088046809975548919387989053913069947719214870233946665128585195614277214554172681016255867459331361956817884867350828370014721273357444625706549902010315091708357931246744757312909736075638673947456200536521412056998082030261706600901146289593165647677265994967112127720106357032733039819543054343580471767656266932457095431313457796443287363896839248620950890846498339959965357120424890329231157219278057828016715401411761219062544083379315846195799290425561217067947365511418795137484372065601826401666529012463411394245643561911250984575099947856875875547461200892993580862147052674357979790558237556111375813111142582172757103328409655274076720484393829342295305625233104671235600721818657332514599324845515564985130370066307878429909889685731076284182448295558242500490863908821839842757281665183392948748349666286354070727515331218480372137159636172092435463699674205672598338495338341497903763782651829148095450730930192417536635000419126116285981546349852125004051727244766825250636369511649399553517920904722972130722776376478628774035671381868361924796800596342889786636210664778895641463434065269451425538512379959764747561041482049366618873178686199950329331489314792277963645474658359147018283714685605854432971452347040211552605008256170472494301341148405565495385718721738674451680943215211502057806873297942963774804690572534150528717159178338967808402285388442716373163798652136764636531577816861307664434447769721499449361651505228799727479092357023839976693762015862939685517909680497542095124833461045198590555015181015695525708060290990349068591162906504538078716127394478564417962151725686023156243068181401840637498577007848150733682896760366013331409279265404190941078500306775982587115969529588047672150142431429787016298964262567780148187387115029160671204425748265053889626813802764843823901699397339674020451562634853699341272005717022915845587559585790340942427210678954382291226521834230290309363829264349981267206882813428338968741402889521206040867824615520834092560984288874901078551543337153098625710012251326672615524252026218771436692784771418314472713058348966442299538389909929769989629750319560585537050424276848705314064931404840717266451000374899547965465544429241013342167675312578102381425453286181441547221560322848584480058303061903712327058395467811363581970495975795574854541349198541132171291046399292079776472734099700195548303556379630602904032554002713666332416818388705431779767171722187039612085843123620540266046908592398998321438876961580191177927241925460339503376395529023066032933876268501289285697585238308844713979996997352705848376826924331664798366472867855897740982907830985206210703318977797069731600886839412719045287338386368661007046377901424824688400805995248846875172047574839522406896691670318445652591430160227457812270852478421784825721661467871058085690787638549423505614926563327279058718893079966475826134484437900145680247227559207397943348425020359868398344409429941765614296941152849236855287960346060809117422477407445615198788087171485356923248951994277931506279904388671221126052764629981268364750146461064701362894110849169830629436505370081530162263251477357414795236043088079419730575495227235541260993563794999430351954405086297304217054367736513716145702479720158143268419879381690549026342754976019354792976884327502810136260076630905933570568134329138646829274701450306544859317905660590032469043987960452380183737355894587584932040393850489317734263303417173888820979559393375979700472198863280593292832101093184152888050974646434774606065516287693794451323956918572449265986548156059657295037550743573671160089298031279200299071762057640542744589560604947965907381972842814509485164970640666848980603994336357423008071600637564566511984177503236999309871396651360399878629472144347547668778224687698812115923208173568242695805631919779155066996173142607314155285203884414446569714667700831852443191843119636111390607616335796644147563157942881031282822577351212332449439304533205798449435587387315935997694376711790448060177488067753184148643351092453668166135216041194916671818728908674839437269793596871992988738226296825269593463059290768213904129903417704540426108302594044122227610981691673431730919382774277243663825591118360230310975738095071463011734336844511617206455541646871779274692729938589346675954018529356181564464375983235812423289232315842578585006685885652385249030064275979309018001122562709173219428620640624539872652024789521622227601541092697383774171285695138182197579552760523588736631617477017853039109895136118413468716268140681927415692090675779097799357447594135186213718716985756026640963694172133219031172858568196811819389798896471735601913889350536501803546602653148720821499869146151187012617520082125954992907883457328706791013440968975592177334223549457159331859611394665629489805425032137735505833400713105958725637508772394262922806879001249900313498192092553390973951327258092421334997818647996343975949447390686115703059962033392324743243159633523819721937057956551049543570890240108797442190923254398632449459890105963436075188545742090841558392262719325012239005969559186911571792516135565548638446303876019983023616730604905416110605420401845246335620941150311519639063008342373631866143265807411021981298054464317738976481935819052788980079162473936849028969105368521546479138808667963206119174431989696214037116552778944911670982398383732488669209550637789675391159026825544818446800668611571767147331880008818667270565161742188372857817268791562569067938470545706925881418248906417473881477689906410632008851244316035148432881113351484763387699106513000155816504967421197202292090627173833665395258922861516966428507283900741145020938033396291105359884954040667948860988656670067740290639203464114078930658722035733919687874470197664483966307337183286539111469218641098945593903633750728078037286582252596484559936799194336887626894636121432402903046935752679290130114351467696670576046697335422596838332787710978535530136945816982093885138777765537504303076577300457329757437344439921475776191891075432200789044329793625974929633361205037288387718442039118647751197356738644322872286482356605496499456904837010475957268351346104497916325607878075721478859340940827670997473778670688785358737826172448090141239140190996200130273997372815685458843269776829551123030200576045983242900495499829782268647980458365846710708346994545693533077721788099245848908424952132544018793686341582155785268722688742227048993832521791063887032995995868154524867344678997636003387976082188775986758118173585700561746629363118741004776870577775930675328642368901571755416474774374113875825124181449306227772441836290662013453677112071447059212393588069579475841724348539622831784420982284097727831473335860876367078051646774531706855510589587950114345668101764545666848830298286449043641706448007328029141473055621264464280925415478990334307639811352027397921548420054172210234034706553166526032989113418537093673177680347903301532711056772232726222429386841640307760468609090423368419533651493813850134890044794462244223692271519830084643980221815036784761103669798135403359948116779816966594421396963338690848970575728513139970020453106343610044830162859101244629568580369609118486409930451630600151667216782212385919967356647167809151285810422648365530075919728506779129187029503358451042387648251485211246199077353243173869912625537752274910149937994993337304870433985920014728092568448061647047989060761887852344245534187471612545870482606235640350284598561282157817012974746465785619737638580051460435109017468213773774873270684824633314884603446550867956835042816131609393449450472906015456696961287100797617015144157009332071341795320772188161300420772221315772519371381003051468054769896532694761264007691509512445993739496568478677286148111351888229334551790776966115996892817712520758015229294375970351088123117272770273801186841357246202595701392006326604313726417674404862764178824001314468668752428405890859922831678278904518078326577972511347431043186588466944254727874286896485113101580842844142872118215558974713748484019958553865595922918101133948286823316147893030793107873649137110628467325589996259082841774006759422373948640246298225134558342526786325687495344770370676439554150864091733398436884373664593214696930854272838925772288509097523022128520250772462856393856689947493901510111693783062276556898721078003452970832365042932810797225918155918112452941448389678042028788614781153635346600297199065077284768062840993849019296928155881386393988560301557815864105980056015355653650279309329288349204049391446811222501302271453025458783824609196543219227466999548324383953773574070256680641300808789619333289111762668800237625599796114950348874678918753775114909838779896532561219961649398398567508956886413955930090463908959673321217906159933133742522465045183277548902333351184627535907133666934407886562282400775813260711819371412969592675284800683304147211858394630533657618729676678092290420741497622074717055446858521574316495488931274554739534750477418416036838727716492733803255655794080354584653194627637939220642976348200706072323622930994274067587678879377689381392084037825821519589443881326247930708364158048138990794581985607973354536925883064515203316651579647569203204142350803390612488570196561809219633673350947085785685084964149276589630465585305685154059651176567131669589961915525025151142653124608878251251281412334569973272212302213224685572439719663078579351513014519672831022931419747179153695697333281070367278970735895547103320667485187912362877716017895069065352242733404493614079842557939402327500202068224069339504629325257756210474721700374831026833949395865301003362536848529842439064954623655298399391865395323866166713742020418032461660602992206645634459351436797846558852998007125339626705435814171246699642945094766933811583826212571589695829519375307765458189158457468460032214843943325436472118071821411517677468140188806777040597276319323470584783227175914576933288967004365198057286441094404538042836469958079090310560096833711150034156218142081194288655628938723209404451639238362859542823277394392898814277432170678492847780875726425315947841819290635871946481850560904471405983060755034117058810449140204068138465385891455854242945505442233721366731836754137993649738613180957813408773727856319202603709133493203052071248692040740917263146800354058424963916082277354935996202429848602051723210540713060254703332450951151553566752458798089205630202617789024683030744177058815479807078989459750777915546744492692197530669329375579280953499601561004114070949745865526063908288489820085345927587281858780579943566044048629330158245964274329937980234911000769074812971475775045539236269920078275142939739833559825790365262789986642420280280077897121241662929271939778354513842518922550389297344861478552116468591578263148736542555489394490901152076951682703850539585679898265929084295162839806868454405764670565787178228073983601274046553290921356142349188717942333270114512331665879737604748539420849993910948026065370027935762585951851553774181768620581507258191786714110753183254176405028347497272776570570291045263833055474598268605019654976609574240983754388613599613136021396242897795468582442278584259918964473995602698697367065990354913913358592843897306668798466252762095550983554126310408706592094716171899286206439028988478447940166349427257072776047535435604066775086406329206243005811422886954032112236428260314134568251772723679766930914424519166100713395628490443672609339261739348398483061829541205007262063422446587932082908216647656602562344228622530174241722532171448315561207067280631592659802915706091127684388255632648516760585384026800068864867136954701345553967542035838102842920636786043242915394185687599558629149913424779504430888517426424318276631820455606747008620512338580291474583484804984376526263662218641316207516662173198535196674382594537446279659653296104528033275367418070619565124552391018952534951379424009910953202696121415739727570273490761306970314193902843585517982982256446824313457811619090947638596998975213412260288916762159421805017617588534186168436768237771507963412629959448484777726925733812809274265873350931536624818328104342096278094314998452870640768259827176299950540878070372586421163230979438038893433897007547989130716951320399947243131696686243994360025073362237954421258486362999689385818628092344873862177508198474383949478786467576266331320051473343374788568900122130333341778791209865295423237904928273182727750550258961423609862626110167107656839945468983186375535175337127199157204404842870096800014913650324737168626832691002395530766855242583715846138853230001254270995351758012011773506739442885294430260175270072541418108644804383842135108667541344283350527594180031633035139276581257201117905756471445311271713330937731655080594059383442349475514029079392055079418498411764667399582910586208419665214727516734497854910217017325887274221528045950919244565225109277543833828225941128848666107334167266469743896379123674500716383294148326380921805937919899020765110251533646767142861311915049913106083835472972562160807588698452555482361479825360268655660526318698811495277274194332045898001303969873307862150086554655460973243998476822809709491992045303934196286336544991306064373629604126101961594323628363584918596448853699158513711501254497526633165664329783004949893864337721177381454220385385239985544909168229495028146884703267364523648775875635468715615891268475420117448371628238031640257141674217667189114707126502779268947301823467767997715709081257090217086680229610440906128382431299131439744255509654295827959949236674804125399606459970015872410918226406753619575011941782737092068281329265639947355262292613442663122685216517366833235173955264984627246313266340100641474116902955746090877710753407055055793252127052570936349381516281122712506807131098236320647049551256102052454852295068895601898149819187543010466893394237922217570736244765616854035561760327313494798977747018504850225515512728392443820905857925549199550075451592823299663690317168323741188442898346204843754617663949084174907924746912461485614702305978804228244997799655050136340785887429776521859476620848978896727538069133447692092376896321281440300919937403583793780800243750423947988758982494467251274628755770067278506948368547597875281074096547450844782648203752087356591106573330893045999628784641165529320593102666942238482958532413747556840929036465178350973125721327148317993099656991227330486409509176473915366517131858101635717780049471217941213901417577014778765827345963324427132275544045741243145241815424894260041435148474746563301413608913842300691622503832893898833225577824688518026898608230590435418280137482054811390053873319669282097107097571629476244593797055788106312015936145043399743694828536312871675614918220007766277392321156780340353576032327778825828187365185515045582100092785959817446896240879487156093437990243054914603737685444209826128106016358417555966251182761400132870348582208680880631886164531922128725889513227561995923413841314534753416911946506073161108574785734288441363280918987113427229538226112547497701231287695724983340456550733869181925061410894548767743370507443792394043006021310421076577868086643240983714870029204225648820463379069679909341575480450024515483499041707413700947557996914087879745990340856512419205880492578630675115417267829116445699042942637427191667042349650671505883210037804287859026541927724330730608500331571143250689828925888292874861987607301488915336821634957795339652753165505395291072742528676953905712025912332393288432595799380332866930390166013054840984260222355947966637125530465353423348047791969597773265983561914316152319236888487152208313559474063915164268320659122280417978120418625909118604976450140516325000787114484524353392450175402220914054639230173676977361474877658442433946273670626366530196462407929645940099824838938353567718367164797143785765028090969267368732803003848725710987134887311290555004900005326840515151752163725188685719215649146769286258583185626791770704977014958084487581075049179378379527613818228700279763035196819139451254659391920851374675290119696297697878742053925703467997793566654407766105771942909459321948173460490431543442961639884364685011957279418948049089383859006359585532991500327644165439552645172699217484885104599998397609895725548410840847019144370164101362548228356232701603507470775001915642435769182340520270468092385965861869521367608288750941877767511801856030172998945141966552990488795661118878102182216891521439679876048433472000001260657064984036405361510575452070689502497910199649621699744761438050096932408868751715923588983215927920212441805690492122919097491151584621190518709626566611560846968716336721482978868172831402568036141268993072552050477553022771152705732027719018130054842604727556619264646146771488341872902018955912708720117714580734929885480294393769672322232198909400784407156646989918989594065950807897776865572199312509393806155665028794318174202149794766474259746201187541951904361570817716631676194488720426774393695221972152408441572167550337172615088279638903820527311883343597213746500354574176899420764906243623788518056615903239276412822346073510073362197774617643165327347634644198385920735453564443174336900905658591297100306948989167970629709949532306847332263524390861257143976360073615993906353705200723643226449517075676377345985374128437062735618513896956286880091455444571568579107729931319410999874589672982271097927503775513588581483074612435399642437354530718706775754660182524106927390527834127184211214349474403794231708571464884719859944071424830447468157553966736895103045196550448856544197200326483443874991723514211760754588599966073423761249046634529310855243169156483079450861133618366496880758681013605099551574900460419834292133132119542637887392063640968396056459645988296283125441198987430937053347909215089295007276443622189345182176239874236789188432614846170804212037153110926071981221501373061755584994427079478943155947148722988647698236922995132948714999909977699431435124630728539666815471632785882814728118574107248945255635144016614078854481155654819372910498894164372174353808283722694085329330109060317080803080638835420448377821509438225366251064985042235195857676437044987350054860607760687696715405490213858971940952316603431534335356978970196813768820475384872569805375533883563400913997684552918100839577814950867150691259622104926420211909112296935326584862033050804606234852196211542937431015581560993160578888468641515394781617712246244633793061774568769862249203610803784471527369533190288914693803112012646542899056440655908473293696649969840581064367972100727102726074630610895082102890067721741504865334174474304255320180424655848369415087332546063587432435202305193159191170831962622333041050029536423939109152730610453258269523812659509122286212173069308913833783238917601764695140066277514909721190561630057659069280177452532596867237761180050877620946404646202822173921580416628548935219970658545730323927254265160422312157856225700225217995505656087620076376883598537900634354923823886444088710006870681382196489958418633123277110466968034401863444508354743298058332216261737777985377166843004480242536648114559834596434335855598676427816628015480889226139442905692749948872841386817748799187579722912306232394542852603708115375516063804879603467660784336331419409110972876752923815133627582216974026091226870060391967147088098910791231759527914436613958730744400131537896027735835787339326094116410764410836723812188362909067017763764179001272538225959391220811131078462510382058210633602483958552839297810587398003062388635554852618356756956598746615606282911488403888080439847463042601060120147347955272414863025949649885997182236257117028420809162132331417168655993112103229602441284164606982158753400410905913181505119380256359892169430393089757145120075398576918556392234054207383919871794857867071373013894045093268510619005727043401594996906395752442890689085421192872623455937461237056713727894513053718315852610866786659885825727127638314744274111975954609269857342270101385513444851233717932811847765837760533305523256954221015700863306099696439262677401222151151776097711185299757948033215083084462331505673713998628572451937363558204385562872239217090214613901671772349326498812536434565351291223822339244392869598017583286477657430260993346731202360550119379153747708257742355023053536537052755052158841686026977892968697711019703247921886429636400919300224756680466592973568301025560152562799833478989846151806311547841737140765601705130178433511606911851303473806648599639604283266891574420057029138144236632321543585824865152267118772378406482043913278995380025334684152403601665530995893871024126996710064977218397266877735769149495536879771372188198305949575926423983180238007555093826317602224463086552414742351393190883646420799497168283602089575270719233049581751256672737145490614966585099372841512234504470142015105012806389384586267682334541735813178396777744671974604963942044206336042172164843485879715042141912664428482033096212116676624721583255111089887990386141555341257814287724611921880969456577966281255908693056854104433445532744893976254336889220816444969141394256425158070021444757064534190644132205659093029081555122706373373233530266828569119541560437400766609524264048285500490703112905619521295381088901967337207994370837794753114067501272742129604089369832748486737448746024210682977135944424181576004056893845253654305571210420497142626071287186038012303359223938462968415263153181168000643508442287199533941811323707765330171315844833169845091526855685654535125256744872849079372539908137020468566101605760921055295228786115178122443885535672777190951216866479683288275559788800430866981929417527941591842199336745128163762440780469257045594933163550492576849980598175610106538770716818997233132745248080420430292752933626613776878592487414545078246445020068695636018310081445843570906475160205601779810215677151811120736767201509804212279394337942264964168300955652432229305238584439318076673649876459654245627360790916528266182163315109243369513032304076702538869256511112588497610622621155292338100194442722100298158786503003770286941727007558919156469708679276145479074369320438243747908832250606736775867349157096086058379596895682021694508323343960980383771691327706344994752256124874123924168252621578762887168823335529711549312434579102020020689586167248575714902475372959688005591525667795208111776712367217709003087435330854967939234390873516451998022535167919084903073115025126035233932741969117233926386113457404005986709395739745172145509994336984523842076545008643021899424006238315935532563870323014176553754641624673554899688144056855807685273408530309251187832349749668590211047137173383903289591936735720833136556923678254180955104702409710611027591732176644815592859295606001741525956540964800171863020763467792636371361705119171558063264350567675675681503589394756780712585880898856279472795320434896633417416137089688569583641305668647603930276900140419453651443846205468319609195804255247548671679544154431805117718097470990183756561349173298329402118624629952157938006542478572119585009940447859064187921510399895216392286650151229272064096205142841621225988814214451897665195695769018688925823893865555093257782963187534529593400419688887847168541168303090017030399129725936313337456077101069293007106127249832097266637732139755453815607370109345545873904991555669649288747266307303107130242190358074711267489077658126072125922955088369510476512098607356838565386019147427993199416393177238933004226711879308050683735178720066176429875769385669614594800913391595143570191767413415545746482698403402185678525698826210341509476607204780905443573890155778801782785730091689398098362349635540923061122944511920717868745237292286802257186390792393492631564927376231330642940135356644891018128589841341297759419101720579809371167720060554095092620102959673015190921002400086886539614234165540221339580503379845869051008954028043365569762523285563985916250841703319084365737237633967863742801552890826857123853503618096066798647633093237419259923004752582327526272790371703917579966985041697819173900319658225670703878898769450539211477998503529996555371565114032429034817431291355794027701619528549910086296014900325970780431470490153685641941209030538075545069015900464800218504052476137010871817949077768971876162046691210299707158257806529414256925950271135231127061580421505303372034309929754217986439447844595643044753359191429070645136239894337211661099875994518804499954290541315256867283719036820492565347744303269959432034556997431114732393468195223068406718465093677250605287293354459714195591228031439331423062319668950004139114979684350401800291456999334446193594017828602848795652375169658006473051289181832276225091444482414340953022074255549232941962101794257132427707981504702716244651486744157701196684211702800791633124340701325128716944632098939621587150083732486321557323091816352060767841476701210109646868512608568456222813372772077883094669652402997489372481574246589287105973744645396426255849339216728106736140388857164138525480937796079959010569428647608273328712421929071174023674616407877458669292040870652424934388545572301536510718965612094933433767866215047365769540633502272871162213279761094848248066490766626241939795490509519830055432014505884858184737222002269896473575931321518539156977578509553326737712125783741094754859156561810507999915990422856687885444932184092913341247639483540420112995127259858225403448551581002352933270804341796788575679321797584287150305675983723277259216054853696847231178418092031270152548119860914718197786246451545367483220184720171227185622596452434818616245851443460215074854454986304270805888689026347103890006679557467118831450746132188658896305669596109845937914228433496267051963201816540166049255408345614588513281730544503991474707377456146505754376581985200722175523017061547710522904089006229502362719314482047340672340834919926178097491002929367300663524317982246624991772823277975180996759988560884169602581042996401728222358209009824904085292246318959900867073077510397915588297776252307326501922650405738728119857104223190649939769215506469095100659067690567890535502345042512778551998602339502399484911055287393349329736997541132373334581104811614915240968681063775739599319188113701657347063724948594331489425415098433060593528206490831290209427387191656510353061920197069155353673993264077492962160621832606098243766714282723815066059431293348086956867585276039030011266065828154588833854803724677564839850987998355540635895979005536148630632651669925740151818372197162529875103410531074222613842772186046793308872165237139005320319547196715306281642756163244887905731033071885955152688329462281647241445639245312026635298057095868225589253818516373318195467206143894480453784568961780092304999808913145542642679891431060883624323582147807800729006842150280051455231298338727536519725741576263787794118282666810239769105065184483911103711964317647260602267833644037833394099691211574750107578025799304438699296908054407019226267618454260931009606482439089101230119767587853868847069843132173879537860325605670217181363948935308869214577242998780677677445653548803944444102796361275550777916398002895402029036531000911686397939504048797975999317095135899852565293537735724005061043821405375449531419625165065500095143117495646050354007707102250635831046380710761950423519348833435658407925019228603326851998782242307829767196094290797345143875719271541585646899081637971414927428354142972407820999811841418876515114275481584746995961600497365170313195587468716761418181348725733492760346339466080391250072855598691053557250666904193823297247067741226689342569284378584466458899737726406781463499926358630730678086589898675430046704668481789565204706141147746421469596559067105205299209809773005659163548692310126641747715426167302084888783221415585077476656201717036378809727242016948010626739760865649795357045279522696213972454285952029043301349458342911832310332583902640658719775828361428357128250733408647587490526158557367535218524319797386674285156887907877791488890733828596516916252381546424604995748024947417290363141296859134315019692627491152526552569931951007242040135985169628529573134411497030700147323322333895882421576560405394721704214115148889470444160654443870497636487166944690421612929813513706734026748275588001617150410231090245742929210972058602141641591370479156726275484860740370436588921633660095126328948626802040649306477225047846493927228397382093277628548050087888796830340392355837818110106125231334405882508419599236206400237737903794316191617667236801991323524060173733103786057840719250988091572232304944579269457461771741351202661793952456918113972612499340142804847417445614530521091069279629332944818015623862260156554028730671649416084091140100308596698188571319923724423209451209936259648154582803826392307524442022008652817430131630545173206536470520384023970187236497854458865340339704964298027898109025792103978271014999231138890032304386033448637144499871782117710256666220847008892611673133283494052631358294075401007274288403823354018286378390492785550782442864670168677455200399762074987046124630974822436390640277860174917173155411596752476378756195302946180786615922587857157711283227494778454056318838278986296075143508607748582174827486242878821170107314031997184055440081084499918844109394255176036330017618561654055336186986421883291203516020265458303367575611521404097677107417639167632899316657575739844081352050436326738459520352571287808044608399446413763670847587394803004533170848778186288240407726467759156275066156488876214590734585598976241982039654498386120784814245291330555823478871478272143776078989347004732786670248845953215043302478577778564923649144996329898490676687748163878429849338938931243202017919955180996466551766041790280973260249199090350345223791948021427021972989722630160201370912971211085837901804397441050327255942761614606328073465734915289033178135638673733280286917809642742032169289999516744788700634958831789618618493820721287406267602376707118515810562372180454105367013026294728590693718227187039778587924829353263875120709769039378684180007267778662444621473991178325528409451427501242049337370162060741589914783685881300348503351241163444795076378329969401287992350690529746564736080811135919267049949104495023405981134859933885590043097108347157583304969095363785048834590735564623624904180269666340186616171602624494236722354117716624496561904576972058371222999466039411061020378829009517448453915352458654479515019707891392302557089889282363086949287628098901548638104782999793319046676226502866737315529361358313908895832708592581246708974242042406531733083348912853701552687940365848557621619590961120589401455505392336417889047071173910944923355915489622877922279377941224246539587224739896651325731239603970196232844554576806980583767094423056165667243676308820850089301642659130567017418410436102081732217420596738245772677966440825072943829302754842687573553517925361542886280143719290316194046414983226408916392260232565006278052769514407907159537701852255089064213431095775450964265276149478806997688589772421302256144323738019441672800479108277770856047710301111601562639250171019481557989256227664543372749678355437453662596969137147168896567614935028285996321639067833176274005062804075216004054876419518307137544644591696389621665346940638942508326882967218794387576615450040755603552625340223781379112052148976759241363651226679050035796020034249300239935569203293072538364983450455747436153326849427176738620575235082441962685767437984650558803942565488132256184718839401830712901310005691628597531293256672211391848370181484491524528159324433754019666387108766736184044849955499256248384375382466092190959464234824919769199763484350492481784642968497312258175662138874706775428514027534401048774050314167147106682588349757140288842306335778370266594884122432954116986044608834313271785377343472467330762075399929523689150920515007536738389199951547401849372343338256336589119724931715182117981603109275830290102256802429069581849003471321088545170074144895815579618613146215307678829559187129322625103587570790565360317485676630037781318491161208587853883946349175293079982537593914524784995707365452918343957116024377441886734312153668462863971180717513779007123125639907934592926135381629439280337805202828218277678235551298542189885780504440296296378576354619128947366799770729641730276198061829017201100155642523651688738175270506385454125564117974687283734788994088690687977622962472155125197168818439421117576160152598096874813218050961567616161070624690958438452306994796622131818113491132854568675094806074561152157919489079228789650678784050335266910989577477285869990059766664525636341553307622916110397989989373195151322118936310320150932467044522988403502164995920378993230935369794294631637341961942661368808090334222190612084931743138945749187582385963191966500096951084931868633218480317899359905858771879666866507550908397051244246173595905871486765990661567907693707920747005498368563100079601521844585881934242179816182887449931865229531239610593815315626947875200316524052439966080660496405724107185318882385297124237489879047217700953645984921503132170376860112474493286786168056452220850293710991705552983206353478337946622026693796132793534216121107846653857053315240476814156909623384377463871738900090796894592524068274161505427415434180932025318978401122966831894815263823261990589414534587321583991673677980434174834815674983613458440324131385787899459568844003766855614489195628579611716407891667631271796526800896894690628474702944932717857558441525067253878647357476885552489203996003432486829391639896902556725588468131776254992612659215262227011927777394039473336156230641538249730900292042970551996370553178409803804105214798744339790300333515194308408628156086141570020533756245479910796017569248852192253242545320636598095511859588058800358964099080291111150958328787839123008858074775995074005971721791836573638531162746269498515723529633902727068675319177054078220412416766718153805108964733091264490164730526232492962113391650697100549016719170574976658456946554827285450617682395246290196663488199715059037144446511461709377919448355681483306335908357064019160934135914556837924562447411537503630999192037670177993274105851699063959695592189717493310374813937191736223658409324585898641761612969209072675081455565418858589888531910304784496523990282597867643966162333907444143174338162934686570345561486025017788864784752278252726395112324020200081423293112029805609682757295015487508241698874179753286634996202116693140400213512207111421521501366915590923635338572909098895836635325683910508014320501049976725495638272050072051187002990911954306360387479016659338939770634612714939647812759661798614322818680615942814183573421004808665558212160382897431445350741923397339601383738890863206658358697147994274810999521250816676625611716409442662289951050814317577235646287837238006408060223708485276792827868397636869322762563720755926896976868727077579214673497865360717290341543817006660898346759352649820851603902724577426897762056637597469041178159064395837772705099152133332828585363141187866010942318156123617391739582581110409462469684769408725305152344065980472297704650948035426268467738581266134962796126440905012828354186081371312381145680899072792170845935385700420465028567108508163581325633138084197960300514308599705483119188973126314976581323675583295911463410629395549204537082317186077755161805303690471353540816273112512682330350312620714210270965966977639271242818458725560866491757205249150076147672900625803697724169141136126796200782519988959312386746883487926201444987374388813696206633574432830889148262232862382029813606652055627030589237571144778445440022162307785345919901082329389790787802448814202671636526940380288618068436434899331958636537758945839156286543435474648074410665749013611235737019608239456437628260427795875206053713158936684558524158224120464898342703506652021343909567219562763374946408574845854237237784034813224183633324695023135648190607733531885286719925588887757709981155709364511749417252508235151958637599798334437343550963078634960594983280151792651380309486205913349121460813422764574484993615008208370426806302918898947228788981114598382296297580869069339172789186429431262866126254892502471925858601467143464097553538323894051525843329545898434315546673189117788179537710615007685089552933817126600143132818445940055563010487803152038221925681810255497974588201326554276406225369972019689026378967151891787438756670288387036564678075824361828370586261386559067742673964109534866559581756791052808309950988838858253759057908170337395388431207313496863061191223045048077934017875388379459024919055111906977484162443683554661906690034246203183810044223534915734660468233721273004751253430177390911049818014587312580329518339345182249513601726166724677268507015429118721601715017812967549398922511735930656516506931645354362175014100449288546609309898586710006687677792378200651898729980296241540350490301914479279994015800102027201199450182196632751039074272309133559807472088985215542633915118487781965017616653108727335014941025949796657372742514273702903411594554456045695527172256354188805222078080601271233969001511952498270228908195564776080134277429498517202123093248536118459805691200763425129420456736156165874416923825248802610119689517715114770260860108809684422308176680344364404717304628674445098586831083064991786266945414495097205848481884656517816229947458534706881763278813618057378443437486783274579950030353978813343602191989904235760071473342219651878793203491241977879120016859132397016269983979595547472051490418879778765558378871555704265908916560785391422264232470669397345015281094126070706414091201118549659932019100196106160831995897900020211144116182153114751179658516919840070283982528101395449355399685581766398951084692629342398592344225858875737209122989844287741238039392475647340903223240118280126102655637808710572361611574134468821349558376691054842109788989001498408552290892245031720415922920326116529957733526613969961253702484794231264442998543265942353398221539751245978182996578176041184232607310164450992111015475363113754508944598615118926869876020438378544151359449385978116081843414445286194315682254586373514638332385465643448099389765110751365663273565366247765176501849353037384122993553318823147294758651104510290504378317343605769776097361970620475063343342666007647410078361833883972772168345863337932483590059223729391870092091024931650364932663195460654436066272862768307621057623093975861385847765165111272447892642150850803296160543938516166212851009794395974984871759709191461506415305310250070459867119622165360371865670059330300204307351019126873770021324264863262484792727374962189470744689657625714199224752346458770661682682713130732944987915876221246668959240451721153046863942403737751551007747495017730715378822280876905499474627479375589085268654241099640139896453448473864691643457264906618041890309769932302083574201002138715333857184718633974866894346387141497439800243399861590270436746508798760698979739790750155993969186252982093626981919568403406076296569020356326778240212429894949588353684430440789195986440417245323758753780200956228210487601545472908117345924247722302414864490288997149730635179153516360936271149834986015234783868796421738050006469093430374861657661015303818931305741551316378506897060284574372276818494698434872462398712603769754411507718383068863671943768820544742687688570298466811093372339506653454063097576948057047787852861914204400682989979503220621096030102697328348739206415045482959714473249504782007248720318029693662394798254826481240149669063026959783727086538081388063875550734749085387046176837147417638592553062689352649889286277378637803819614724433346356110502455109021356018106274729751725350677671255409469021068722617523554622851883448527437526023927515624100266690530254769397531692074264464341699176518862915296049977711515150044024063547892263716782545165626556695195272928819428756817585027192477172059608234882898393239764341852183605339196345177859416874101509613237683020618421822772800675907853132200137546501147833852543986633737403838012140703706442952561364234473120137899688757887811001049161045342729673305551632794760965871759325792313247791888289413765952238851139546475623201011484180970637868913751630661781425412536947804996174817812627809125343896111277102853457987221546147387287413115129808529841174329711935733208151901414773836697436039542422056125046094915443347078148522953115769854880651942703259909491603756333822206361484295465777626350998221046977988227990980902038993009563777729580616315063235682286615073743367681366493324519236181824812980451362292202415483998743586734345473636034505909321829689814777573325314633562783517557505884876651772452056804723815895784998734699095983254038091689264939855656920093845642755988296485889083769636803845741897630322445553502633904511657110862066094254115856012861207244845493336374805784064888214539448673166508205412033233144734169935531102472561866636712816392444452962585318180920159445201595261750568421809625025959528859489952092342574099057160193339224372485663379133823975754609877803525346824828363187210967708713374733990263125060117097742189760717908132276886811025115910058842319428564150192328282384742194801533359682712130763144270402848100215992844246738226738717264002387108063360954275582067418025306198653853266644443740242493566348219215967179593288732844220785024918081709716089133235654151074268808267307823037477564407345350432846629643349279502541940315786211875568549779231365752580959712219733488284899806530234882611783605304238662716724156852594842650949002203368569940637169802520110702009947274473184556646497761292016214063019851010377719500108731344147924507844984932019706208772930984756873531356970546340729326711371185571454745398280575428810936045601954326158045993221212003897670183778730719061433693090830929609521029358141718737121421542098692002156891210282687547073505225153853583918129427461752241175288700127044125821729741522130936851833950779220228873076452319277030019433507867530981825937424541853575126680752911581593395942005696434750676270947468936938435169311848661198778161120951547620675836036894817287605959033469428019447434744763060936588865460326875500070860116617163023782890411081379873643240678450503095075987848353648494653012106530658549789041899839993246469689613943377903768754204391552515660368231996670458341466078712292881373385608669551923904238239094512656479540537731169676213812285261179414134455212033832691947592155144478221554905356303858276530797102589400502428255160714013509701014654325268495232412118766333130457171263862585477028807595684547726649285622829089417835157351534872219337637445022354524080105975715702739987963677629263826535375576699989053770594618307729434096661224734320852595950558456609745679705001988752974570559938655309729712821368833036035958755360841059666859665693339365440625785781713135843880637827807645638831749317353681832410928710943943487953298848447317021983847795519221143291103064402938883965024971407344687102344639092036572658782757215993183218848476132788970285792129289037370854150965393466364505849370050953223796365684113042939259899587090554382654320126701715870770148567954129473663522038897270356964257744406139455564828427934152032522859366780424782265654909126989105576252666323348833817501107170385822222979834294819748051286746534283884621146555527652253543656632237057174470993011752307614026047098385404500683947988897515139328299843376437321801868504456560815892050354789919486912120874282838009422615718955363012238681877993127431888593093178816683834037153001919228185899148770803531529789487013798773995245022416933683976072304560089197503991939557465647011376940887613220310835563161753738094108289090208872697096920299076071449305427313990892276109565231739930626137661837112277653378766914408269170628847800828707694272157628088045349509564808405091274394116961519265249339040105134024321933417676022164769587305037558673303042741438779833601264016699243231122356029489261201797052154228829776491001968908219150033971858399317644321279834627478514502845110731501544028004101666239389911083761631592537494936048488447714100206081426145495845065957762416508863030547775234736849775763043879055645628106209577397497026821593200571126279803511037227191410201811771018627559834630920114139440252606344815855933561292390253121187721573065305905212497255414184648913552044944834203048909103050165300781796765429430582979551711728248422978439926336024062781719833105373481199801267754155087651618618534865163919318885509267359905650720942321924977848417349580374248267843085865514803867295167166243615578506121344079873848343327034929517487039100993049291697096843996731970319626386837761394035368672533936379531004290083804439362128206085070965355643252999665209004262428244328910885532921719620558996714034494066371069165073001743813967252085558701137336349349563248886838107122384649408167515494755757750807721823377346972830876525876013128070458524350645346397197966971566127591253505420884444432236086442048928933554790374401735148827135007493408386678543774997990895519362165194347329338987944379041800497122075474284819467616962280659859248672328675730879285295083107219467642661426904468063480227183113888801807390108872114744673151432010092721462092177982660566025069162646462654515657052464244379520697538718333117952474445952241234359492384587023034539642626605749974612674217590038613954533194031191519067672997089197906218829083864783992958087558140263344039887537084949038108934215523006942710523367005620998616182263729890630919351139781927794534960894969648150637717706434907792385109231325016249576722620430647443687806820491630398931265366211079432369168446835552169989591565954409515544479401547735458772227520453678441416154185540817115634274334160416107924112282675532020612556080972385934343843829444233362680319828588688238391956554479851781502837709873151957059733351803667653320794490087967199515007971174562609607130668125115935773868775300183204787210373367485967928564100715984238195579547951533210825984446852286740595275269383650180233144904656422702840698425339577028178767353870468342554870874293552856646143328302798120389302052223154324806597194497855964656709315590057351568070007006806566615754649585212536161000373034500330107448343154733319324993737121056138786641689960460161910108325668783468424464404343225576558831042877845482311329335619044140051733441032408142677199449379992231962265268033664432482813372966206053588285389166699187106199147494017608949673905886608080755142839327520168544357905391515953328737888499998296599023964737682860011166633941872242664304169402562770400713992739006064784972220729121778740104901681682064247090729187166908449028835567834407678216688756098501948713551153575479636987904606016486056623759141182537412634953015956792739788661521372349840084399284425875567162594572768059810679377969107670873231515475629230548707948163410945404393483578288495742972721546324181021280012103383024837223253999904043821023462328252030836463480694735654952645661649677200053579668198557066474714223433124391521535042663698514845323205250709245480636432377179177975595485221894482165682955688421760617041296864509372456707849786662985305459963776272919739337623680797030394611446690052993262348406645720106829428829818542174656883453056917089532687199313792910322928045740927474036613160541302166877023305211027653221426465099842050647379909659115681039408960846406286684699682737704622764104150891467998576314349272303342604385939707878469693060935036765037364189135816725451480200318124438313001201245614873689956058970937766643178943395013183963036765155661988546186893119861879655560989353531848027988268227540075809966371103754751587093244808145159761246027865354473199691404996295833036491004063534685348116668271069349787585472384753355727770538934373605349057998084804251017368468328959102179799205525556973123062662262290622521764267716111221811072672602875430702943111311223414476318122143974003345307671545106779958900992899179097073768680721297314482247575413715881659793334087131857801999964351292966042086806808408248477451571872713376108130218720864131112779030789098960678451755776087702153711405921573540751766160353999965196861490890203451190057070386474980965568396550771654958366902809107376836468728390101569140393020473317714854814955770203986201424943422941027123429707922065314790305925697549010142211703972914609084450910313117961632462663013498209756337680975917284368737553240443220210780192797957690973229201965384515840149041873213730723087772787189506089942353959417880288260571313626899795940703091491415298025273747373756897633991823027717924007370547519255297931783339575216733991275475982879823961387453271480538752163273894887315328796700690993456830651725435628367486411957926251997387105541497784690816977173450845646855635713176811388788845719978796973327557353807369360028957697932473173101440277483720000407253441881479993236575291032033453199606542234108350892763852849246897084988740123910234400481161054296296992783113486054235170104254606772614609262421797504813735023750812441402188316626890661919865802139602194061818208098167456329395639811597532735302044612128735366111719885237465094532673514375085355295028752181962623321967070971469003496750079850865825880776964017559962197981402465378867088492246447553420233725748459332238208328500247602894135533346886590877403115441847251599473896031675181017114496621247785238515706244533720759721520764212294706490202036900916021875890629235935638624248646005120062973715216539131788370333529896183221441119533712913712608728318596075790162082879474984890027384131205890176805839896872777547054800321611562494414198531577276380586070879669128584698059495589859810507455090447928220871655518993825584275355277811590235435874851577779301551533530274934290728809271604167332957271289476521168653903135261991783856580302399053115953276569331392271058355790566492502809856664498624194928431582590102285022243359703477095278024375528828092000552848994184941407522680664991164614788208941184056649428503347128741520624585246632101869211247323474980580252507932589590873301255371136498073855770749500111895852363449648441268443750943681040779379149423291170506042057017327966796258572119593709415374690642475455021992240562205914644668021817933979012913828463720209188581177444681350806947701860232021785216233313400191402821932712664943353109548501075636693377369654655984145645989024650642806958237818462499178917752578531942265018844564241603456806440861356978704196216803683660506790631712489134513523180307569022314258585832318905006627448408894817255125806596630340337309866501536160451365900085730509643960628549813385741101562726418957491819313174159625654768352718763718431323527768658784298845590088864686108613558865546300032751081134697993688760982180687987544601898993458371144562637692361015630044338854802545388065638274892056703649763978739463531820195690036705616191509355329870410590707338130017479608399018981654521423904267731479829903698080465685749502928587165354928624959767091243140458779307147904488003109663246009592544411573534819897034665437260233996416629709087522831148338222421069965473722662744422527666297592414494745653205698394146453241585376526668078799810975672525693300061194181142422023392583623240947512178494217345785191162955629990449787862622864298138155619530296118748190126083758855232091813984586507904178292541930251446329385553292117583712264161203299801209867837488784039779201644677167141363498620649394592095865217748537503706773408618741149973348693265659327737042338723212381176178695601228849198070752647535912321042154391464474263221136081885867694209598549832900674601720998866043853890258907702160293288852575856816756145226237457588219662903365512746810395332816771092935159644497760602611452239278237603759890525427560978764978507532954103758986381937458789391282450421217942761704130653899769573661422144357575735788907341464379297672063622452262912214757024750220889868122245052698428957089363992002770331701571302295306392912978474595724077119825919741162505554983424902375165813980382514686517064182516898539909666778713834521247119489755920831176341133556995629211737115059858372188923716531489312204852555094868550978250582665020412292456001850207428560681102022128381782196516367347738546627096366267906353736655847710225310647082674231375740773959732839897731588394004247907944053488763229136172391973004654661791443702175740399139471096378790370501776285940709829287144692386925629824610851163495284659219131862063145765737652589424068200602513603593009445990355427043294746575882875751065194477932627566792077371327863852984914054623666397806548909398130761643389951554065448217086108734083715905442213879963870652774217149925918007165653743355084756749949815212107600380927743372582017823821360075114645939560183973695236020341009535789444127910019566911137084783921795324546123178272651746771863499035598191266860149903047507660091523052262219375225425325650271683119221770095277628899212801055960012937692103667804145418356539883666836733579826284966367586129251200371259127958402729932684594884133401292318910525001801400105360498165840241998219920181488365766163249894630250630762348396518105686177237125404660756697371367291540702781093643937837943932792741757628903224433304540273818559924380058510986036838861097664965349302194250454636636089210062505099501373509557463873841033429578174864959639298827402113628834291042953828366699433307823255618448909736915546147063304640310781165183286549684534087819982882116921819063823858952956066917599792352951913662924784653189139336325494509132627800554681019588507601577750106084878416130146362776053511184948385722603482731467537183719058563663679722727401730267593906559271242255235576333035532879681111935393730958337190372685272590849599976961110942377631788617575636592005706992749776451507678381845154352357605238395233311820742555549330052544528324513805116539654348719352004341944502949469860584697623959795398981135348213108268822979976287655775072795642172850860269041874417984879572839194960306746100575776124770845505008109917401207311061563047762885094410930036170143351752754293850428314955341566787374263324183735454426267211747382456966114114330974948915542501708683472823119482855801781455632345662693089323247328238470271714110792198014768103954557469034812073610976403232500949789039319825886452199092228029138836582657495197992958340198249496419566673110680853090552736578535947602338683356428973050260929799137136074849110469009420988347150259448564984460905290276639909778031568308540085822965479418148085556229052268998737448280854663766126933335261623072235816897875913337117020169978356063218093021349985944674816835217215947782282597853608500733520172157843010431859867826093223692376095464133766533461453356279105867841393367306602095197772388966958933695014705798535960656857829921960124341253565909750061135627040118981434521041287819972825331984525838813183215964727995712532673808325438709261729244762785037764698623423357652358121920932205574850552524638144070972853196141464417044047566257318588353651950459420657469947940374689185286745811515677351625301258294773274876861131595047091230431337242498089035415786020735012573078266951692543560948554715666934095337519989508349041274120385124761273133577579700683916443999327920194348340435163676305336531301795575609385330578543786724569444869335118721057933011977356978448558694463738214509085509561613760246186456620964976941144935857406650176279798890654502922882475539759181901181490409275742459940716853354231039217642680295506793575695088239094228476869181077897958192348455605406865767619642104176259643354068565955892076739921333582656164895435483157864284469786717161314838463647186864082370307342118068835695159755109964701522413248906070268080154711674348674947647609080363619889079353784791249185765814681783882314997341780690380490084046036639719429014970891924903514162694542514311713034533549458859470629431502652794116050117756035848730524682183210663325375668490719359346022196230755793432885823733421572295473117639000822192302265552740246515976012798998557050959685934410280504346628705961124969111177097302507790739588469811554323307719979495248298871405774848586405659384338173573215931351535489506751312639773709793079246141645717234402973025700455312188500145690277186681002047188823213575139491183128022774611378779718898022632027026651927756522830709834311600706996342905056044011802707515447111065384651826695659437193250424176246696376235450213409434030321566135300631856833859746752018952391800131489937990066122484879653354824285646502845854474389430246235268134355727830039918087264192410593279986572671235191192804473106617949600516202560574562942911607710301775068048263845420902756741603757238295820169934121679740019772287384409294456050979759065935194709313906930226415147773305502084860422433725056473544472621312082134791121397129819651877419705820068666175813316660586301736726705411951809976011062392490956148385918921199976339258410765282530115061618705936929399838187094526624072496626186699318437622240116062931970855523896355824826112536527444413237248016287123169151125365620020416369754075795673955751965090517869053113352095397978767768110898343554641227656230302240792899086797440243336849452688175727012038561193931285057706661033481835373456259446117566898061860627817644018477525758995361234559977843783002955250662679330084868136905323565420740092495262131313952980172741255898010250660042371795091866689464458231353567437916059976899264058168834513861234363403925825374107474102304830145572496564101184432119370021801191927219332101314142939883356717142601494124508916776328393973025943374295625223138045170639456015096816110505289466300823929559733179994622352547640375825741279291780904786748471926068430692415562966596427862550309344404909807022799922337529431142683683949778932121558690510488557668980715691086406414211577253740636690157127941511645478855907314877145032461651179218456794232931359496126060374560020705823296732601657643953831378712280316738185597070419344381226760142054215126758335181191926308189294526606982811823897919956439173833858820919533031100060336682024605044255333334371789978110421519069441508141141711589148756726068131227598439764399745081481850773930620920102387800695415058782894036484821233572335459144905375372092548357074025608937073602368515252934946973953482431875994963717844241591472520837854442145184931223607200436478711045082468996854327724830327740188836917738205860324231325568769529755922668526687502511483747769777945307160581602879873670401591013188717171028280051284066981889954391540974925481216944635287054527134763505538542500878653545253376768676874582475657967239576544366321750509948853255162702664453988277763472992590132012214724544238240146237093506099087115742356372701737862573551166235990085235773189267046458571773392134783735151051630342342071991749224615410079538421079402300773426220412987070913150814714776773729004950767672039957715287239715137015187875000218065518694757682086293656792753506700390843097319527400650328811754590509857376201210342193199515379625134222074462589407004131991195296688117975702073430675481139005716822703585904281224871884751812817047203940869366049059350364764609424930528458361094019971787408066128254612946965047318365095092614339578963167113239912336712174527588392413961351208839577476011465452640164474465534441301869695869341071640044299843951829810421002224162350575012288245937455024248275550552999757210424307057224928759747000131516651625234732298090725274455621331775494170454931439459513218694900080089764112024053689261780842573400050986423205722199382632100780358139808911223281205751959285402689805313976427301882807227848446608805620900391712497530001939054795050845401462342100535201042138153217294659615425562477074632850609337414445856817035391348584490799308580889723770343511581561444584836417975494914701267758417043327502985636103877836106649488434957182718485299689668360709999166169405246372475716210450114313118684215526888404806835500472657887049663339495726858762704420809357469513700409613720209499096921660751180244278589125137613500486393856544030469704513108606555020400254504715792037849230676938023361047284522887063803567787809787674410812526461806138600188548362485770219510228959909651934138033776543695457302723210028974234770546426648995822466642065616765188310551332699832652447825935217245323364694165509735998696817504365739535049425373252560131785136364711388496883200391407271809115091588549847427482996207574190913430833947033126670289874048416512453310792458069961764259500625600742290603322796511304286588263660863334418970761417289908455286343664482730955271228949034494525665396398023273750625498696165629263841924213207956348233481031377047258768289065228154360659789326011609449870539199772526322866741444922320424925086871503001387978468533287954252580178707739978578228009232820320773490987023194093618301602691239197033264872894889975292657724878790608954285627882653936831897283128794564296240401374844665555276994694889374399792806713604066139845976560227043763428105598678606794290866982532092627689745682091231650467549323185569746043890021000183006008049960305091142042084643724757573652129995798755386508232517650004066261835241858747745337052339385476637894314769252793142653966427475790193683888600124666246725753338094926615257004925772832272788008017554430264905759070390707986692536253893771597872046633599598437687471623586401615301945600769419456379205258975570239729993129034385218609298418029226048109507540721935056615644015509222088139904705587672546329987230892284889102523301432130521252154006486602237766184878970148367040028366083014657824642454305322931416563069941001371036951059496217031569744624592667479772713109630829356229090938200111344556317625586511376137601924017007851753843077374271588563759126596459118310015772578781375191332927550315611659706658054601211385222508157511787637951726448761562208532658788549934669006322378507801561859043485460491797761367434496949593384978562880792081835973320923390318092377634104612112334284523148029217241360516607179446678006991347933631929687165310079209452956606209338547024775175187178749870410337015704677184671190898236492764500258030560196141104470321785881332417748079694976781550686576059848308682698193886088402364466348767552535231411129456089646426842202043957291843237856653909934858451809983488874553619337168739637516485176056743720196898174921777280209638601250241644378198012557899440174758714218271021322237927989912123371782646940405383058051407871415033112350002059311712918902377986409539448718038603280838694544986918541443822483185531984437884394147916463081862765429148749920131225669459186215040525728211065988734511308889662071175056303487954690126656776640770191011450350511423431056056701450058772605338904277110647092694279764237215662673308479156699812608630514019641200268530503594903211983716945801231435239095430240467289451125242331686463888557350298889524232568010769529867918984358806184581311989149629766513706343041634284051352936977204745143882654641973979255457615913621216771644191602394083390195773523215666358821640695349485652384396542303741665500376862962771127259119051545547290781800208452815840211834894262933800044611036492506360687445674773826171550137400821830857205284073514085126347630870663481955114929219192949092660055719065516214539777222761966974200886416939003549753976121429309949954960975027927392845659897485089453765920802157345885536799000758488238918166958336587936969672244540841676283898417722064936705160661519231948704616261122519815991628016030568767222563350331664531620867449536841086979776844839412012663576037938023992328570340663095161370200412026536209881081320923657304380490340155788110467962035977743382658907672282915207721440113746971322909783665629232638473083073950420761425792005805647322300574512199881020189282953166922770870594508563227503980684416953169995160453421909672082912707959711541249966002016996813145815594440773816419821320392290476362215085514260923810419869782124049724389391437439209608508992330220786923436726454883475237680291005428693515833454282104897155660574311644722405692386544206488850083451015929826734512904513250356969793500276504572964553955394358896042758420738443497765315747804385548471496969084092970991026338773124663707553329204178063821394337864169102688159801776249788858923821993854484690825003526149449307681873480207465471143561946550949966726586013902140139029480728859168012747585612385925284131110702459621852177278512882602957414442979622379967508612128032376232221880467761219975413200415038078126040126896114182083076586795105683420008340355707734153994228067826875171177266759506564567139957743199176894904478026665015878868144983832967019640817260737319031746253089323918220474897904704817751512614585555327839585812297311219040742447206138799411295300896916714277425616070895369395322570504475169084970057521533903362626312128860452756747590295530506889174683120783577700428162097414289862576307020537881657833409248217509450826086894967331238950841280161006613373812298811542426205743188089159454509794928685715923649901658895990034595519031132535475428453650984414790658345222018146473726638396887961304202230861751719413445721135783010193780272853508459402265805025317504834087602062043542318318195776077036321249829680076618300320549662530354767957341258676923927522355463344701357544314272594736803373073454397247139935002020155425130695705179816559717826789522202129489539726099231269989981189076980904704289111510937393479810917638047154555791846748042803776188118838481747009503747159532574420091720343759323084189240741232058302707114211992483223096073871560330207703296874602242201882969080719135121719874468946240262485365323299658443087584785529548381857251063876698384440278967861390439825422281093081448297124743739484684761174290930003920551360608099549016235542078014166161449081497307177094363332709250193417697765641839941905967494778954356234726197722024862347812897484066647567739099163923072172141039307494748072936490234365095858604291593955613908412578676387156022799102659601788156847425210957895096266562558925848406941388847473650529503690333348989366513095709434076390971530748974094325681155405266111045423665853668449496666314012394207098970364325093556211249040771467077057779104438010908333628949396344616111278322763625021399688236234826817804953457164097865317795443151474944225433162709472111410037579117696906874921846194043745558534200864144731680500618787587232810011862822942062051840213170934072672650830741826325742721368876859422124698506680912726986384685379083310838615145304801908831724086758876929958798897978488628183494591417629591092513665613507457857790217463149363336155260073474762725904580328021033191522764891287896768352723217508048911053365315656515129499349783049639468838821200627812743813014175530819472530832380139231255423467686882949450895159095363177503219847199350209933121409898127283399712036804074661451457967520031359433961761600669660049217471343151028511331464458360052429534022730967390815547068505963290749744511160604340933679949659655008264901945151210766895737911060363966273981386053764102732169869790572131009881672655607383038544695195784845089469990796579042727212340859721225722043151848061628614228406743900497506679769814852012834768986497149426180819775990481124794760779494253514433424454881065457977362479034728458436784031802010734858036413867471140118244637429728082375167530618736346407501849940891659822902441316357760120917457319180580912201055575971245841351946178511512823238902244278761850024796583871783926899903123535207202661109127676029265194432919067148714843689503504527857682036778481846057772595862314805012795707689217893462419036670944606299742900365203295955351087242164578649701538744471989076029943783886715918813048095366132135070346168243724667955588203920975284978373443331225446017762486574666711005938182696724241371934878117346341840765547861774024571947806862107742244193336772101147490197862652797543688181999436544699019758011813994334470918612603591458729473082540640714604732582793210339010340083746149636780455746598811630883386212883280638938568432471733044860003342328515161963246661589375607471921840419294102208235744675112378007472783856803322768993380518993589713075293327404723177863353366743168823083972411957730036386697642544964940129696657944131078038676176596157132598462236345047032249501961355297174911529117267815490125777796112898316082873010572410037114664485024166166716773429220243069350309453437848452159259515224916361748590475179420556625302235910193126899930841411567569666168886268889973303938632012239824258033124181187941400134863647925902027153793139647455847074715986792492979535734272437755296285171988233693524891666791583069326993369801471839168832615624315522376791574204651314216953785528630405584494605529548827171308239253065275128195283675675220169069914479877929896486346224503245140805159964335495352483221249315400841596080383763563021120129556649303527757928122061728850438335044281514808444360930444063128760002555997734070779595401795073025735636661680068144946696565170018338678717033483679083135753124985020192209479179522879122633729817024088723874643204874272510088262535827697429800491999111132300416123194368320442681596115119196119694990606955582306683532756060522988526320928658218609950141058737009919477370281895817814782042024573744868682764420079024878571514344044186610729700576320607374119826483059894634931674656753313571418238260911745518324609836301130568215495982295659236289776797964831861498320107646166919198257529720008456723130286785702261805991881899455286969685398791200840065488294012626326078825830525713320623369291441805745622104130005430335197467049177638911840420180930410167336455206471359915832659190119972708917531041784706876354799831776777855125150266942745917244460486235289638687479124779341895221654705551691983533772044455557730219334026296276507824383041268228749318167303802370647459770419950836315599934319571478927049342526159070611245986472737073349734281712865606168624391170811391420421428284727380740563751075922824557386272685896790129101771487521919952411345668869151408546602174285582350891237926493191247841369359121564478549885141120285662570695126645552463085134230218273776222154735123235998743101115688986342181700377044723873887837191979997692121588600235552818662447322125147273849290213711234186182606962318054541352901447783521477530486986024880316495167343312102710622477918783299563665228404589440619660575411858150350622919334333559363053553994222289100875735493236279650755255753494533742482321110057680635473212591596235096129282365895787413964193585613316795599534556820187534463263334299711947048317672483183997170915387657386619602261348427712113766425946072730242445262353454697859174691819321355697990119094410145520389190815384087122984527314777247549079021851393315880706327933779398385192307381871941119701594047894718166366622481371689814013279757134941188343592553312140680819092797233777319895439194374453747819628492438326134505516503928473884141247853129983295596179176421196542154505330503550590740189160722155988195390152895593395629235644708728014544039892647515334381926800327946908249181849929398265192820974849282148244934426832176850511822052477082871807591680766396631000662018541509949904128236531910610491295885699911895881782170465290039716571971952335785825861125905569579796508850096485955245389747530361446344547684264981557763925267835752186884252380408596423659900913827919058914056233028863727224683316773365625698513793075425114400139895201137333806468361681076195439747674362755233370322920546880350385788700868289689575727390719268571246186574111122113371602821940927630342867634449370420062957421586475993728498808444123611221389966101777703941505942343473344554938213238983738000097232970951541420150006157833392883445385630868281420207902062687367075995966952620848481455527433409476869464552596290586216426049301642736256739299651045823426478496063944856909235644155334350172314467321181596212160994418040584602797237324914891962049934557768566792417268307028146645824113702857606825275936004002719697385022048360946403790624621767579701995145821536139014500484274926144197263872643631038713716712721474820274833615535451907248281997907342441679437685114963529506797498188678078589457897572785038656388116108318907384885539133602989350985389806558164699188572330152739171891933603545240464143588923200921104622461836234524607012201746747810149137064800545785269500648782636456425345980300599571141574336282742043264915143457892640467211278800601236694104401104077808404045858989548246258758712584825465563508646683435445294048233195896684210790584195203196811589554022625545322676644057220707525067887386348670643382431615307144074897792013184007062747783592260655769233887525276883452227823270476487289507629377615001550715826010877366103271882583483021236064057339210854631049749300633197937420711874445647818190059118049339557815895579668780991880331861371489361844312252979370431944034317386545487369928111245950451138816461861447130617234985991702498520155671852576772370985108162152637203419540645657465744120246603394432715530297790125692099448305925014699459356232093845170785120085213742494645635030697181089333701570018678324852719355026639472722377193940100641387736591594535645321764573328542238716818063472169311170065689271877159479512238153864260561555519804251815091374741695692317630296116262222795600705728216171916248456495279753518897515487080611343419137851862403037139004446347531583287306724223310308958667662317491393576463142916700775797148658734024263985538774053908637048425443920110947491394588087418755152093224191440965230694088610807768106455442727861111359462571959855632047956013450995023440549468883991225486233210259880727554837072138673185779743924901218411609120678420084381377702454911159167468655677845751807432713918860652290323742429221890985301702370390324264672394682386537635224319344450605147425512564361556850514166138428601300437666895886030250391314549206662739656585277813610224362433045777591573102458156259540761833916634391311939363292869282760138230548737473213840992825427577881267512565926877680002196870390776660157545512272873725109558876321225383347384281137956430620145067701187060774895406892004859310947650392621294369889344558886332684215861865494426973459661019534144344646078519150118797782238019066998795802170092186940482502185785573565418453531091076996085256258989648619504718314472793702346272240784186238392738306803848318369106955593074076501053062324496011339718758535942247005176129600082365325799462121688603239183065560505673953187934535094779172644752885880951598295249477450433037518736833098069144470271212764947257358966768882558471126411394577633972808236211408614640529368994658683808352438745293535285581774365465697564052773067013498411223740530243343979267856034854825602299979026415127356593014685615691523772753727730367151354004422881726330159118034603923882809325915872703274017735157407529285501730656625001598984621605037874572954497450664146426199585292065765875283267066356534295997414665823098926636005788465649877446631319232368710134184969268049853350280880430391221788236541355380466891964654442528719553404439655317651466925573153293712510514786804402957872911155506450982171527164675286192855312270398035702283168993950077592280539529758774338030238331699361674475999844708866939951343855732024107757890324968014993945073668863469778101624559815980793844857351236255205390206182571359077661149270125660225949396025569793923403687618719450101928826963649524861295378575955335652492852416893501853091651363840630366512057373951263441019743230560034181922282733293293112612077729980278888131881506965349581398232640627973444493440973778680355959437865468515611053253608343214716182632023312579143521571797754764372760263460217618167154896660038289554445951705363643404239178226167384134702099818400301153471528879888989639166645857008624952473795995177323996568657585382208673015273239832611216875704016441554555884463343696461863350987783045516306521411642361760310701583702106500860934760410336572590440936951610262582689870550514627800115007747473580962938209170770005341983008538799787626524653013686088464071903070528659287415749215034215587646649074452470799366218842215076112054987979471774501321950914122168562732182581685943161429653580298098455903147373552605977022224963783304111141388846860201008453179966194878418407095883146496584290684817312180475308080306922487618318661385177862783418232969880109709575958392357112055837229327838639133561605423534032952070371242113687438740681259873415108147397673838038661966489608332660721880813173527681051955068466378945388269305331198098860983017546251867141342092559584796423315983588693946767851030209056033055387895391974006864045522580682072326813106375369916061674917390658854371573549580362079658542182674684454579957498382475282929096967749757423491832920692828848333465113321296223884318660370330582732139780430218253014310770263350689077703565166097422624236323910194358835570064451637662786016747358375235964879515970340213259740082322344959337078036684343270360730443988240226450606510374675278883032555560516640817337314463480947210545001792797122149909318366912243370954406222700869832126674494709039476195405300933966344643091208700062179833806773048482933468469802367102981615685841410327535283975382604538234407264086101512982829102757883776296431120558051872616527931069489491146715767182203405534625466651933943990383082560754373568975979076074471956288089964008179109705310396932908913175799907485706037440347792755567055865346453829169422092138116462190891272330051432063547108256188493409410482189096166944124726341260992508286908713784644633406778625949853383832704507495881500951832769205444376662545542930827928442817821773717060470663278213961801653741019841175221759004506717658056081890315845214947008426159686172543865210702434219444454084825620667079357467740600431421957643957625079153091962433047600382779791947116758064764447490980310272852223818904219621959034168262210967308714207462162664697158339496771533866351123003634750384100917009786640484333414395128518401108571259119238365973053748192207611561347349248705393677060898907573199342289372111528410128082892434433160066029778646468150682650077344087129555785060009801245690327912677530174421424429396825326572954965516465659574156388164669584856188230393030483008779218061588918044647224245399028311365830751180713509649117532851428664395635843280981298243551718128122016626903297412887941588463239765843162871406652570541758022550400097715893215489151276149694344175578396963634130371362029829816135351681771234457889875668898096800192868994197759118338398843336463126352641076867160706191019594735648348254596153437687379613376373710228062068458231720080098670316651122901739239832959787082581630559791059162180576363597681086024828047907872786264193679979369768215783616623354849530546771278387018892833608286549166319549504563249654657766800659158513223241300245705931549191998310754620047000955585633528524019046721175410666999656198887696732321648920168656397862872645390417966481407068918122979183443571765435650449669859451204037954076162143873464990052843949545680806733056254702248095629703849241164485247151369641648239905977619296918212618937334593931192206075860793893732505567067161753792024107655412223935367937059756154425881753535299478200974742612670554541747481783128774486300913806157195213287772194224602538594983361784732464309746400464866720148987605061597258754054873352380135264763573856260463791449957435510725202154750686202796666783575175853126360277628417339227758549806179321274519743986874005730527083078918932571266462110112425525039180647945414829139286364174576569238539754418304118022029474640243712203737143329043193953191233998499716095285616381878056112909201802325621502335046615836754150626431566414251741865573617846500396354437267775972391521845124092102431206496929158250236247947410835348502708611239012847641559284988051270501794545940305213152445578660933583018032440188450593354094990714371978679435912034367887007798183742498461078669814751328448190362591429327368995477974833603521539981404219601289784259962877719774117990978298501415131173530364024807408838090902560861551892660327680082755567411676325260365616860656948821810509492008068087911565682224776054663145914456660300213814232534810945775807447477662913318301265134983666053405951808508963967556870151527366932080639448176380875987966751297004568773470972748246010680226972816135147312255313614288851748216882151523806797123822877168425873501760332614466477365210091693535276762127233816604058779414731560061401888688338335960327994259710951975361121129708371498709124733684236168559735202940483913010724815140725548324985172791958752452204835038074077994566341309995571115099458203002111873154763766549002380255555096727459772544385662149803166509276595925398788991319657519105379780323970052808543075037143331502151410386723077823937440758862992471898638576739177880732004057301327235641543713527550436168237644105691278571591504492207912296032503273786194445355634662629683621228411920949517814432673331770136566397954171598682656326528834602264254803773789285959992402308152145300462724516698049350280736155766351306966820069204589090087183834069822949748144191689491178023571679614275053972450906541884337513521257417537294292899480996348599483221103592036631954845815129466026590985980605379723964716502456421676371557145019116923929223768046747165353828694322280536427035364749126437406885417169669054967958098524271223067697517901830212064366991098106234713631637683538526732628542916268527071647922402952177112405201030195309872488649860890055689052737580322574823280470896957974048315205277578157308930769227485019563012227233883407548670254714221585105559517705330379069429990479642985751531635592245966854893201628113484941626228240558094165627883785575617536919297434970927090876265052932026401268706254999275347713785096994056612401648861850981681003312137258857474948968438546873837736332619868929567441564072020672965617936482951208966198574008246366407070928968019241661180967888613219724210500249236102386364999426313950914759724362970336662982707073570817711793615777245520546414196839819127434522580924426111475206451157253138304441096842164967130793760406383243415774180150466041945128523627405510104138361098954466112729074391778358591676254243068653736588706185896907530122890590948935685332005032750523956110972311534316143299261580409702009600119606197825948848890702587926115888254624351810659708821658056765103555792605441815366275420513265776933597303747668252901414553192228299612757196535736270059325939019378024774271061310308890146807861994957489875901358569077320609192417036066821534041984970622712417528276783473911623013059248086488929319610296598715659427749092265860405597151193064588264423582943792341950565277372364674396887311364681983651477167105077642000518568943628416823933749586249334233483092098230261348721208140075486041210836058003915430645224076301289941409594481552016664705971081254696967160284550993760455166343006053134396887474232788407042408287028114261421702320143073251792318602658494177801193310627952833271384480074880184988493378988598421823450786497123777251430381531336348382207671734640182302290969932252955943528539337675290392308820492355226109325882597578140312091770230830984325814929635685717460058412402812828857928284092995100354846096527946515272759582025295592676561485536418322246612776311852325183902916945025714082853630479757970054208857557174052069690709596283980973758593101903802954698551592105970652564287499077148478171166873595681729359175329415746692163883668364880644891421140975062399842127825221033200538898295980065397604573268319684689325650412439867166110781181032681924824971777174733042742843279101220799142227475689662087370504126665714288158459217893915666257177968891626260492188907571636411598408886399547041372271771138018566774484247362686704764848847979503898521031172721519599049261346381761408803063202595026801369849769374383778566118585073254620278981224814375950907763197273994710363810142352220799375768272489506500911692050637642048593875390786219632559913436360139451837853567082743193769861923430151427247220659022603454955270671001923936425316815025064600282838172503895663919073439556421391098928421029818149120291543620551863371274403376096066152004115778160761730310115257297132932338798401901278844729556934561575678597403659951545353827784803256841408425310395058275296518857745949009633760287939463668989573536147898909207027678571239848853445708001713785139415249032666688499597620157222795876137127876009623314188839777173600147021371649386014115406685374549856215864903021637376648827160450530179131090327733626879366133117485604831825072072731917478853148398342800016779016162996753621509952318111519783352422857099573219725744432597072828049068723635603142216773983406005636610030654138121666220539689090252244225062324780493013313572287177936705517361460323071119933655283534873824886856516458996972140537230252994991792234305345235936985436809107728545036515225127128680063176125182060484943467649927125966661026031607947646791400150293677798515741013945516436239741389697519019663352576640474772625645378901358629796974475147733628152645574956584829846412809334453455543630891980523808292233253956256878425189539728878294841980038016693405605519465776527735986467108524774500241301329964725358495937062484708406030246898199278543737213095847661279181309753928536906733848560318520995693979722156360343712046535496232094676169706670454983179798661845988542098741565924543636777990099966261635437956533099520599474679778192723795664970730945776043429068264729644782210357668861624592886535251242162016549917535416483577948003895220715578972757562913105202670966166635718618470126934364484336801892070127025451151804178856688730921978450529486956353474667052693757084262074920933537096785130724366189165145221613063643755486116445689315860393906624236446073087711449234282263412167871430012428247179226193844205044653317120228512936106125795341349398667389832619253135067975313721995107282773544282312226615664488367055599415717682465914986406281784848507021370827076930272950849845926462085036926181477802187413131214352029869712452941919391939583445032113230222075814464818642370845180886627025116394304591248830016387196216405104021442023712417380043757440069507977509166770479890601564960179968162458773894050182554507311801477140865436748160003274584282531319649941396614331879732263020621244477701112178651593189680206030863273462983028236543837604229028890122864549518325751160308550323141860399078524981869433204706058505112424794589665722916457219787150200939925420053689629756569197430360698889718086504870471759695427038462323607371299558776842194307295929595767117604569031406283827488190796409233142415252622162567400518935799756448151226004882226295951783022377622460933312631570865795883143507981010673318214986505391630506504939285910546128322894120403178442944504588678228149633952810744145655585823174010983702273519172046192887801227518860869494558068372816386121403598909943819645198678420851572121819977253647584132902799626831407375423054774820236545990769098486067564634631672225047570430639133993695505753008376708356658400680781073535087076221563190007369651485410339718245528670382932388041079325976162996532139316558650121992700521413189896000085980431218998655283157999961932787597191923209056492760006749752193878239545798353081698451016866169170381954083451975955416884674378703682161605392341043829337648475831957203777852613126881300484851568812038332881210882060092003784736377718377503621823745052546599718409545503772280882066931808338939002213835055478616035364900789257722789114510517947858276287767515180714990532607392163318568592341058868131568872773140449860296977371468058411130798589473374614679141798244785966337855685368942004575941475086080879092929061444585104370974232476305010278536303385091113975656814581852577031028094129655653804159271192290228732482739324673028872450181406070850419834547570989126306891171280637404521977688923404445070983701787060228706105986146601143647869578275609154115545426499000378460388941056920735468790629533496563751286756380869087127548271756726325727540619385737891067662402648454707423763804043296992516627912286923276637986860195870479738170841198774547873934281715199016647326428230472026570017975783117860105703836084197191154200382288473405543642815372095568117029260615935931494854164792696718947378797124205206998282149173299296812731214271179866213651082082281711539505312528209072360106145223220482953648264059336986153308785360298083160009971417865876808277774987760288349630316049156830923175816083049814091757586110097670999767863265624994974031320672831504357498993948420895940382066242421114616353784181658779034714688048628247417244355323502543797347308245886057358613781211514218967364857166350177052432221987955875193482887969912255754485448712561093889194989629363082566367248074903319879568858324195841252852082551553538877869975956222281315780371206519497128508018188637643285727824110249539420807205303273621825504460510532169354682138743918400859575261735755562759830513878790179100790336662907698668607092548352888932464793462314785215420707355339819679804361907065675110916320703005600256554043333696964164402869465869984474204933165785670347700416204240353557533139595186853787497186053585951633091923608146487460880009904195530762995727193987712491779364297811689991846869414647979817150279269574360894968809614112398862633064782664292382220448723858256602853451546213565838039855871122957973524689713449503950361430559244168785805467593066478088485348660012930760978582353180406717685259174996557466186772868693168000794554499753026018915466431876087404076301600419460047924638920020587756372434064599489676434654915823945278274613912414640701726177476323993798294852489899903971953969148330314183689513314074897961944234019481001245493804971603881403796469367195971249621475821769909729403879625650823080925430474181123087897476981699953622570980158889273474312243126301730977502415356072770471121506497752979093280740602785957430634105822146824855036534044459005280495932241125883783779341775034485991933180619713546026617307088850593383983428421918181971783901310499533325414121594445571571665969807330478797913844297146031601889615928527252393779520537334876490917616782384562987745364554432549805867700601900879931114006667628259853225662042357267633507982979584769529654974692652592609312146972105461799610151330434911002462215642385070585075278670977438697032686666405816352901161048576536167688435629672687252777747919373603550456234706816685204674471754524736118022940454411253795509558510193590768349341984404218622195494165001550437415517039843152508383725547242037068361047996571859181358698387018297754278816296188963771890354874913241149263005099727332159819888173880643653378853758093686836143501457417740346209081621273795363707008668629086164189444989545478186322421884013018251117310162868373464355665867036764535285055532232109373102642760929160262904700186185328996624709887953268117919224580465153690991307829355134394024222229502074488501995587520969781430375413622085494995281833942322405684843672824431442588644541687112414114589435239304099590670856884990402642840598898576615495111630627675641926757916349562193479875603705686083551693854731053196167637078160799151751727546161026702858797726493055854416546220828039669919735415793259434201191021327350621543356387053483245315399371861768103987153820400660392325948009949159941084361236656401373983665068571633855789799770467056698469193981520246154804170345548393535482922631134820298431585792168212166926783599779567319691565922246701174551565661179125719913996064562193220626381816588175662698529580025831847934594484858151111903974506010642299201226522475374252375832026150055405364688431339605632201645687767195889033269131341159122174177916915933231550701905897420558363644059081652488253074514682793282389793427713909212890094173175105355320121308038371835808131060627963588763245214492586720473533180180011359740417641468462534505482197831853468953415738945376558123483517840934233925307710995081947792489679744122076997521139690565286880260335293837455407514131862250650369744836144883684672145660834647151447513624053612698282006037508691383332466667486650787392830770958192232389830549020732024373140667428862348024064828257264548614977410271130743668010084622503161950630996996820336605824164491371067238619026264295275650954421466468503393362906034351744652819244277476722049918237462990811852588029388130312046813417547869927558753456425972678613236556487794496901369014066125785739157412544507380353708224875077713661084716032327136936919674666427213177956307857325070701801277056769747191295056393392769973081219119058809767313146787172038449288690810570047105330237246316171440676962568187567240320103167387685375419627179969620897587153263944853543614681359320365874436443761997891949045343826197775805140217525134652380577369906183108164055344992214983304587111888902669327781325972914048742775635493403101057876045954958376312525011693897573842285415844103323179109378962862102407432975671923814839469817068564180902462162489297693340026176908702790217385625009542464096055545185728610156403438078076272725384903658335437366169291043360134154406532400099605669902780981239661898516014961567988951743183430758576707397696621844337360306884139035935961984421657642933720493786890643109327379124127879261899808903073307376297678346714024545747100016528209896976652086735788457951693668504747228985494904408391181369745243813920440365159775313481580499027866046136124553463479115111693339093824661042533757073615064552610244453339598619774634062133455646664282091380427745085888173203533070729319779828286789960593751948781051110311294775570951069289716978938997736616946579306196455092027059326417755323179500794633419229642197315446563907675608349408114598301212218969140919071441691090931914628599119687037424732452821960554851253398281962267763205829332282984860065162149677302977512160545329162337847976814151298116551430848125038460490986026394008919605248418079602912493073533494584875020228955484815578723650736306916603937790204119354847755163284718956885886417518207881206827046856578251265065337963014418276225259973930474947705233016061474268333331900618078998808050023963418336949985365051227610034828038243373157653206834493718729341312474863419992912768897681305806863493724669019382998215450518358093603951984699906696431709989307414779238167464060598692108026034093623770989185714926610637955016611318683030977459563948893248766452767721823696652328310677344074503235462600708800618160369067887178242227391984505352449191362803255053053884111499945042619235906379916893566795950181813609060740435740239471017040233724983935469709265643609634288801328602441721044026097816546405327490269124127637873529079238100686246964884207697601700325900914199980994185069868962411282428994274557868239552271181037416037507306199864838832795819944345983337571030044177048667822531867740556364125276352019391608313158129389818643431953425534273983972318891562503264182123018837592321786951455405391268247924035772962349702300536965964655846601173831049952308943158414660152049120799517766453450860415704412003385458846949719550970910505882825132519710722347174595271229778770670309162715498079681635745065944604661439107409125392188977308897605789469413892644122886228339696791291823556263597078170966202367374463786485032819108110159820462712859969739979030789995671869833564745905043052018368060457872969002534269842634871272938740158997378376595553702144288161948940541891905991275035197589990936671082390584454922958687230100954104021860373094122530220540940234515342024074800249739543671396607443236219404716386941446857401172512462971972317943041617550195855990679870699120843275904535160317902697720359834898179402812541812376677565195611964830530323234323698522042369466854649823508792954723390342298971735893468298051263539023658293502318021090570476390973659017104360039072627402411270958663137764322805503398271925375185438388855073831796105685321431699256439400953224527918377300267555787202401069242393702319920457302290833887442128891962518514925283217349667873981247463020147011678522898344537563408725450103908370769231263165741832336533279904059373130489351866800285282498159699946895010993115553490472428892912179642308693247543502840266499345945064359950101493954868882509185606473175089972315540751507210016623101918908039589225268720302952052295064405952232046223252347843883890054616209005735179293142820456211601581630810315418245056364338281411901940340274475573553734629514549673762399414263222102793582244935116014127410720514816264303011586561627395877924851579748776249788761238577295022122103331979672998167242548768636327707816477121963422638310428775525147429783368815903727323063067554508427850898294352344534054910690026345134307894974075365480261501187038157216867151603043473825308918686834055603434777047848765717507217544795401139467158914463081267603252211597583926269756229924273987422346341190409086222749144016163961342697374192033587287949745299095543549483634469309666316892018008847438949380464392670865310311965823970612905655326717350243261264539525275745226145819912449317527229985853061581469099280843779627289848280398233132731623390812935925125586605858900978432697704685340117640391530539318497245321988287128686160951223584658739101158611812252462421013566439121168640215514060230069767542575539998470795196069578677345481028984228335493925042078862019344941437063221661209456004879864279769073529905150101591863337155845170861312446675066357855645346263394305847736275107987823462892276329970128262669426237067386023327621719349859051473181158445765832243835265839878175477910077554538338055396865145432532708110608104692537874727221571886359798817252790540189509440547653301471575874733915985839126329150651164518329352431409058702878332132815897094667609156703966912026225390036331640393730577102743405938969858984535147299259634330344935985816696329006021111304842199219237848147327131169525711931352055162448048193953071506718887832919291942254649074552447407749508682575384700602036745706308071641080611035422534483220925833944806165478998324097294240255842826842608486242066450621544342114627124491262806765413943304345878136055194287461233022331445352259525165397033210504158710385484025839793386798290762719718812996562625099436507147040596988114911955892788695704224914877964734093701211010478658375650000640963764476469181245366472312843641661501295127307943358565649637415422304793928800940978460200652188391327610318302648729501015804643702633948358879371773800124759206769393043984165334357857639493642670269584457147122972768314432597600593397848535447402525728852031750796122626689654769582020160329806179264589975273948419254242864556160184302070276466646729504623807284901173454272919339199223722024841624173184714253831921544616607857180713402208583658161544364559820597959083455215826113384199322171520014858163061776863880402041135898376639538084272525709901560496567938518582815447518462737238896633884362869406504729623542135191180251949851576626169651707547328236030781568769448207786631314610371462921332561539692737052050267321828861855702109211868590002077309518558880158683836357951478095402670742990231063085203319571343574729394489485916466886844001784660687778802546948854344664683174708186139850509919545814713101609329517354328603372577023712259870284225175740465360879831345944822479986587323103183447723763719604859519488749418721626088064687758848500343765996054764566173358609606758526879723693254180887515852366011725987127428929693847931762490069925423296326464280232530355055649400129729999870600421818972511146796227941383730440419948908835610057026379947762525215522576033834493123732072704986705880505915532466644165540064013290380466211974207957084596687148493284165622908743151254326924303473586703792089149691408639625518677956939499527152100912981200926200446109884037058762003776526764885223522620600351997492373664605775970184880605932446353801305780916772487222554865819068989193820866430485599271402227994992667338106221805975693786389669617099506031198749194399564433026391704774095426496812566209840187157342365317394270607652988176701491934384766263540017528592784558466677751748189381676630686599607697992205365632227758385278932715725295154841440573233029704752669572943973257356869883155520491498435763012116133979076034076762483248165935830811396742774785186782203424845860400790650898380467877709846229422839031120414763359403716363585248280738011562998919665479565994988312560343314038677903575129630623937358814245936027514074568812097137892858000391825301350197193155153799144501186187747380032390496279974783540763684403245023481279384186724087109685343538298160375907166029224593974486003715709492635390653787353666195831022059785715597627798457081322005663160836639399783374407709065195958698388070379745922942052253028117666709794083649817544156557002693257250537549685887897768856133599608238230604074847343921611900256307571612381182267222381719553952535762059841097826597969760216524762882561941737857539395597833959792328840973747060308641230745033368372676077286574356487744283088077251363314494310933931764431606547841881958821313071706262971612001730998868758659162097702777928729571659534078770578179986907428906456635247336870878565797888252862737868824731111853652850425472838320347057057219394316399130573110635079602477747190295970567790833257853629551107347012303332377873228153687606158161549563776168387971571080699246012774662429396672233761172223935607392175012140247267738940502507473374555952969224991751550560290916565014701078872628560650744377337073510662765866341797640486767316721373759365140501366048588726242853979231375424986637740120910217595955820516391205019417055413227318165387087044289676322289917394745486811291795155043207815824371941880093499315390173727298496197627365940063861014426424117359371319040705763920524816072892299503694426034191910343486448262739590593340247444078034052558823466185210715158463458309201127074429210174448399508518205629396203598844148273581583379069830354764121449071381525907546760134041875846253691854065399790276131889683173047689997401171441695678657073315283603272357702753071214123976603149532814322634962146639425360814161859628178514991634639262260024126894900117671952348030418806270922082513870911710014650079247470971521390537311594724924276086976787057615984465426000646185585869976986763343062544492171110581061289829689518406153521360281785338865651863086515473459283120588245870437875907742480504054856787980854387747841085717881711158732892823154733009173448370236649209318587842467466757772078827899752591247296426724253713951095683157703382143548315747296210043991967343097714514325350732106782846366299540454994990065540938473025913784888031305804628174138900325133261115904308003903069554383916356795831099708825624411571426159497406802542127976319399947481261059801976314690917612870057301087933476718092746524144699979102453342905327453799385015416129808020584593237248641890261424858673092898161121954439862836323440588694059614585814662422241188054625544849400011027775744527494180740476333984389283485668641962874432993482937613623918240131429042613274416551888707789206958689760747567231108435479361895362380154308648205509300934486268937037066458552194490392667801057557706320649610479990036709951849208878481827148517002630941583024030065582214934383649352166279320630952540375653245821093381195545105374544305843941984265229436292999539476558244938006449784984734771131104124589360468556054414090830294965688659381655584059227725675472941525504454041383206800950492833782651186803206242614445574768781205707864641509450213048650807209140521879723432505972267332348879976904856718702652246057389169668386420997183613624810953360237960260093410837035139679236573517549021926836198844964434302645353923455707207142639769568191771964577262350880195480285815728084714193614635466907620424536225915230662651034981856901902724319230756304575557963061787643250973151949150052153788082439354051108148548995986957625132677189213042946972401806300348047578242629281488565778378150477981402426831743461590530709628012887742098121289119417949945658592765329199471567860864871869347090890189278227594302941974849159334153895039934584057988571245434142387566811091762631762656438399870525423320975505064612109635850547740584764338506676758400126073300240617245583585458165179014126701144121420482471196247435513643868727668177890052731505841323012246589477814642462867565844545013370305110986248702471064238950166268540253415344563528482161847667668913318047555110991617902958658149929918234877316183662455451370315227840690571728820967985282054731468580021236300279579833695573764941713639070828475603402079879974015026461875814901789227251338694523609659964217875611109697008402985872159078146929201736507322491912708212422085007665398692727816863141074449699740410460531580167526707573251944630943465178780548419429226467331779432693299321698005118403382407632020164309055533699840032846202330226737833967136309761338507399443097195266309401700651860766863527583659714603269406061077588577332610045609490559226224524050314169407288866204465010207612248339174406345820997201999956662895100975966907816152896257153262834963771857463561301688034279967451939025051188568290806867159631487876442796213215023231428138401194336538148103404971121518616862090932725291756548815966441134706710084447227153726045078364529375296400139307065683202412681551451659250642601413107782398811346146652429263483704726599071178119832432505582577516916548844440668506685417682808562720962879825826615247872635998200478596225535338373694372803584626942868198500725340014749120020328864139949341010534663738874259727584399873177661304744998388838489034412663048015897909419618087376178722266228643749329903051697721304398056697296577222368668567060237042580312901251824653658008113121858578457691025509934652259641270972710160805471092567195757745069147529234941788203829858816629726409858119476597570362460190711174623505955579043166406006427060040508727411790446732716861220062808067682166537893749051134350884803909205324216656144817704957882505031151297618910164008491622819384411632275231454413540128053957097710737087301580368302115683711512060935076614558337114064020653293252925817855243421345842558892438765712842217977952776693294812218948084835892210724557964969774670272127740387579481783359302108729957547139389698673322029287659754221134626827181407058318201639053872025788424986639271608553945318610298097539175705827105065156699665130006801819184430205887836247148489616572107857855150933998556271150549516573190727248190965609490827814451074483456581154725197921373807818102189714224992194834544301675004179492750480932086158666256214352219407276490653974300644473084433892781293648808533641235636569829995146860958514071673526381090996942158878334433658243028901669188791978057299016082725861386999186956217751955160856589125340966640916142965586558505422319500029816527548984368164201303384053006935770045254474495145176763761711880390603261919872686711823890109055449550357012295897658077277206908538872806747271141591840981042072827616456114757184835948584271627594866657130066908199610027129602379642749107969836630291777962280257714424970531501254112522287504706680434931556699495466712768321688485856185799807282777033300826276620170714547149568930635951846687615726520115073305489163824326730907286600657534473509735225763758237468112672045351210121088499784169115048381870776724398959908270124517594454810016566189192511942910851204849283614958420356145503800572821969454437996216521856778646578174366306931830815078796639279203334075759799211155169128962450908825254316685393835491715899743227678339680921320716115632024508589714943769600713351840131689857539969547099637553646974340425867599165053501320850535230131812250860073358399444532955314000256990480804606090028143355343372711344925696666678623960189341244535636693893895170180209358112607389025130923951924563699051676228152643019268520437707461494151186628634796892753140900568602162511315341449071562260660596534230411596209902621868723072838898161063797423409107577070280528198575659173248892057755925031073163461831173480978597337733579864513536808339123612466556205333910194331584193649154089063032233073332536126887959280248089026754278544295653572759879280273103626128459932268355570435562143960672084069351885347669720938882026174352226509663029068592169216430093647570714495243424827442749331683341644021455404013863903826945046356307295720888910986058168389562598879042102392047228014713524587098087585046461444344867337625817119709407481048951618030972536089376783131539883005634663049845107079334967668275797502519192297193919830228732821779691589697609437441972990658527973662605349117240362056640632009106699429082683088134149461628886852093903388835432779646770349329765213282278362424989027961237294679597766925662701928755246798310066928839330491359056848106019005133500413843966318297204514603558259424838772086959801758749340733379102711116926883222558717932193055791222946283740337231324233548428790273118508681668315153844904850454727225660511635277891809444092988082035859464963461694040708099938748842969754708490969437360078062510805736826757802920480447202390151906713715595233138701194078894583067405290835614777505485346400388043407365801815067027980847193915407846261452744383891529236036138779326405714649738901395764935422077847742083880056907746353841798375824689985828124011852324402621522884809272267981493259396227888485885365497013705250240602381515729552608785845596944410708725880221117601123561882836246513215195708898621056156221077901233893299444157894258306782030172194764584542625349127992013295885917126681623850507648038425596176707011206427329778321808676998860265559294884227201754440673268053680873971085973912505725407514866621842642757765736636481310190071079916784298574526124685358040776645187209966540703843790138176000337233534754250199471726768556829545945409155497114684897112295929515213824525056364402170703472514590134652774586319186596690230566730326456510601653032545905162750848376529924646301348267275142738975529277663910143804487083146678065124368592188986634822116895202782801054680533702130002091701647994900998302976720288131148011896867538508220772808653042458428049911337019268090954762394402803046371163649872132268015434858080926093480648913412349145213011731042617542693105862653267675395653456438079498273912443481390214027897250612397214632210839839007745908781833393374229411750519754987812348011638701912272425874786319946947048845782192426052410096076066702286110789381661949291163991193634694539798665410334143854476493743601435557504096758843438218015586712337637319728477789556878987207916946823661306038602983367585012729038318454751801537111482598332998746616392318026754168628660665839935781240628623216145703107657874740930482366619982448466819255503742796348234570491843485414780248574591015777760614605864473456632204881086643716298578511360805554965865568484771558328239740767318677994601370692230681688967389990314187585189333830487293558949888429109842120056545892796408640235554004992949624520708966469310964562093025676028213952693964863033795752686436757858261633770968753452742304790341366566653816501696112072460153277018153229125632291156159475272055921561664195928837969671876559554704179082080391402874452061680625491781531750586492047871229315170711280158255994173309713543284639887156416887883353143953463626620585491862694635374406692397735309624945605107299736044710474215458998461314498523100557949237917127800631477706519523064789263365166167908345946029417100405584987345386757100965922913973010393851107551939740967285924045616625739449775226042492027813001664571096233019716349492779672334938842263337170109699533994549010792193507415096605786041394153979036861610029446382018727981358768853954911330593863295807919815564474138432581177421367961448163739396012716007365614725461422677959612064531757747110257525272884772847634792964299972618317664706319428323112686466925996904350253698758395229697849956782989032567290756583760317590502621247463908261311587220420133170193183091637165557247129604593369153098231881289082110504636366327475997170987505079842599116294042995914010672788414104818838228019302880837800036302745324829315078438887046294952899131965833535496328756856153419283636917015964965018921384901641695767620185481941766519520126459722177376836089308806763888955080734105459008941270438142508673350603490417107063830015035239337923647226041343600460259256687966880540289056324744190211099564872853241708827638815616854713341277279531986157225644425628845225598398687767415140199566270091641768395349528756053621403397606640106530878332402512475324757671697889190200649077214300164500070933377839758060506137719992285361462756236017889510212370726078112038883697841834577376990632171480703187551608365778180795824311255974835537438100483986559501822474376503966578129338280517075548290920857055372024470727842426624868495684265990760007069015239316595387723226067151442318739919242868671013888067001101603909007371910735773198702533600184767630233096822986889228922333701002416675036102675505574559835155528651176241503080628642896588443582396058720975260204019887689506815816539827521346359788238757902941928992890175429820239123719941292580458538242669704855211833371126475175113698918674875397752015909227060700143289985633637779066606436443977107471684835665375297584082648373059300296879017738770828979282816335143451496497841136265594489141276407145045818711944311491681505169452880114428316696852055119182525353691640285967970150152680662853934211426751893761199291918478985243109189841167041149939858462923816558821539203491250268776112519306594280726447116232049051401255817258377371701896199738317976237797703606915608505361529068648380457533152734063746666175399076945018616304177226238412908058813701731684182130049987670417326055653153161600964441998101627795963434258553648685012075925382800893977943361620951387088406997522673177668568317521871917439869432265282435333657792018281950621456684239333966781909352889478469070989543181380205866264558395297456203042464230826231683320547091831967265387002347811554268394379287932965410567524463597136989169335612270872345980792995390372591076756967361806666398967397085529839092643181432685613562338118082161650777108654753260340941757658930908316280667442210793864815706608656837116258473365008348235400860364078790813255360148344033942857635416829595081601816067536840351461788434294666465246121160004326403417660180763430294719886944402870134223113373730182887450479524015588886607877365841478819615323153881873624317371466364968440353125999325920075569378102665056434568932800531895524924215585681879963418134667715086630444312795689222839490065956995492060958788009665392193130399731809962631567257738746952246124341895802395463081057729052289231943091451212601622379875371248410970914798294701478124162887075505601579855855405518817577105386809162708843449802710642909719539161798940932924945299978370074098101462990693548509680163991038344619931232686459915250887020832367465685226252048867100224965841453427552135667534075685705710997635729826362263275219332767206886937546491055140524604362911763604228514951990155550458899345077222094431324978511926385974740995008237142326682599289694561717886255808276567832024838516627214166906035576851077141909856761110437846479236317761306087282648101168994817664505594661343724250496213363370484904637154364589588333829571838310674551615617269102364107872285042745856361128816436854553634778632195850388268857865486462104829747312426150743576809871742433402647108016062583827806451170328572753635156644935059459276289613250608860973037348342341309452365855033742471180847715952284481238779596406410547501544029915504129033846573627663665581072255138415954559405931666028575991374440696914099233280896431280370342801618165237852248813251877558626389877526788899460941949125614456610799364654773519431572499911856404976319952200263573429772089270934116612634213016877721065307860179513973335817941519113434347891039072629232801481504906040871874060051095407160926844774964711491458159127967065966770409129399631787355656263302253493526527860607304262082469094082403593240358030505273392362804115653137410851113849495344087299342486186986541600761430508551691165073812884845999305950398878289226484523281809046378518804054673989381768042985172157366089074013679708850009840322489765447597630466354408553972541947854294854594204956776079586915921353787516756140679756742267620359300951263279078913758560687195348390187523852098777806239124615836672042072793819533216291006535865504742247594127232724199271404819838149316374867578712996965914846122973012540421848453661129934092648512066030087583026286026664488298426230144664324163685545656963358511164089563319365589739090548607194519345956171756710224938509667318959274622824587333061931204595423923259700410075842537384324944673968943849143290587529079145445617645946451124234744915764563750505389065300552244607779593002377377582671140520750300615080483438551167490772330577368416118673318330985094777959057728081813212898256077839609482830424521162498080994729944340443340565974740703367098309944229359508463169540862892966262276543381012201699331218294858316554070052485559037892736902041745559317838247189321638532265024215777665995572164864205996671892285891431794668106227745242320318640941153221975383048014294487715722156270606912436963079683726537782916515970190537685556368340996342256532340965998755711173322706234609652692161084991959755073388033168217439390890283620979876556655732735363074934634923212410188661491988438000657233215280600480911559487997445139778080399792760466155510044157195174667024822728491453366529254902201577621033590175990088727479641925640930677395671998345961326954940125477606242432253016204257368082898595566763013434826318326566830252370363576909346219614844240791762694208074304631741318980241504403411919397764003231568972361670942516443872477282761722655445470973602462691517960423785702476868338410819553955383641795956378931595807384107314273374626315213750162452644732500652879545145877070957688814275119594777407206454479205548345383717219959348153326632246936510625196784928286890947490521136033798822355976204465874333147247457221244691330340901519739727961508121125024559866123897897951197625340179979627631522637783953235669090638659957868580181710183203211781128073647176254327906867325356229348256565515860556217818601041094339722630777328363037968097621938717161770485429802011391762026568256012356631330626499495628589983281905080688343327647464573280545840939513757540239877069120703433966353654972344461750917169226458735322079970870643582056916076989820799025699819250044127016685249337896325305311175232969746584237140161705660759290170587406058838981549626654126844335089334283167835792130107484411764048335471566981418024837437405543818689701773450940263401099478738683574561511835291305865263683807084291952502455902258919393597367428779417283750339052181893522166981412591576034723636833702204050962434499881798206534922526369591926284708151697484055274848610996213546543038829717345377250153453268479210682486530593179515884668130449484763377056920623395747519475169309983217986206231705427978200635047752229045183368453331792012683560852034437014871299808601837690074116648959085944881996178209393631227939324231632505625252924073427392403668701303010145852274085801133399650783479603199235465572172373326850169566311248192916553560373708780645250316399019783374748237388057764981110429644044091135309706774756405928968803413652826886512077643808985071737253187034074146542913377081109802482239478772566719204019596632987755189352576920272904197709913061261426151200642020677642793503847942816944675821963844489337836532504687160466053101978431603921561223743489548897404080257758379075195632199049027767280046302706849618308053856744004914786177241356508213168244600015874475702960564589567608158026997588014715122851347291247223778882416699464456601567758619914637673122179634203366462971024246173690273158818151071685897737934987912082115496256778361964397851648322923135516630965292898586233232174251246644986343606303034749399903232864908596139084959029390678639421641695374740780288153862570328503860902252930845207137723110775843324225674003612346950953653166007324434055899538175820317681603078865585562232476352240036359703927090108645781368593998782691106786101978117401071453741833007790196628969601996975675251696715591031699081180960991374870511193515383226742083134984702742654632653293507921674150188995668506478426318489892291116369960417771084717209556523884761788963617454057375935619744222657091979552951399178687561952276554721055215429585860224471947660260647238922550146777519981638570006161378491514448048177871965694177102609823005725893027316132139178589827089635612614109809927778327374130463081761380026743703651463502120470855187419445435260723687259017044258011292677130998059855343219825457792948962180146694571548610341725446041901444999008641188267236914729195445272858298110296982057249863052182698576813263773966365198482606128786174518371879463865750438260326581589417031179644396700254070169174632896471137531538290805892822801756110385156222404010490143608380055067910462156444622056579556887171650257960538309702551798673115152330893382864093738017687923327288092862964118505209313611105558416771758929878564691684161900656845976227859331584623008813697525852761884293845663115326517708260854885801055400822780316334528242056209982216719697495743975141228765723944378264117517067693871765956029429855759625246840390459490364942094328096359095909130073497251595342819517972290293186322561126127542114574484908273489623220573844316343260769486945926225983229516755445284398988186864846237158412050508311730363118591856203666352217004155289650175932896248651106168517474979817088535720779699649247092764811104371596666616271240842212970855471094194618850976777446432554471200241341125869021234321482859580018859730119001306748304863350846364827604346173543090620568279811510173720708676966077257775060271512710397524224960729978400085297607189663984889529101676899770851135298887517443355029464484549896248262302085414634404473415369307630958190879954269872720475481788401201231311182113403590647412053827555951790609796845993244922783575047156747179431537323152611764619303952609614091957082559206774911110020322850058727528677876808788517264200144918567745906115042503058008471268659726272998551768629568502125739462839918287817445504121815889329003591355236488937950004403278209437546638680639063294187878942311038233462022519049840157799216341014365485551415108267198637340873567432421352228871970809826574082658920564564179807622889536058528803525514287960573625809768182926135588351465020449611507451539704612586014156949790588996467768022623065561802625084808794243248628550539526102457431680237242657809043785966927464002030911643857977869182082015277592816566281930221183904443836250277878664428338101526859163134787760539242573837089166484028894180205791302140759440422458988551421972137090267458453988669037907609173742701610303022183529961199053668097785427408022464107874414127645070359120304840115339337540989072420552290459063517755015995605640449742982493646799013323198800666917293623554858882315633746788019606245841382874504420504537152323251265870766125821138955515169784452973986663000037703842777267872308596482754551681082838649794293036628116183040160702807365604067411429108542142672108043813732550734130195499822427835159426499624060147342933594370307639377436296650017967480496851620848489524202729279168923239714772694428592876667546286439418254670071174674636507363332622134953488693351707942239559494074408690451180857464416315772742720256362510815886366799760533686564151078208041387468507135718293743857179666411328888690521533818271882684218601955377402734396859682142475508742479795891505806162099893050681924138191827908128102139923134139863053197086131366007942492128003297010308154183124999775756869555776800297910614541129301296659626690708849770154312172765422776233731906667140196919605022927316951592947695474179175930019462721982483105271664721682831228218753446135900608907028985594577969988625371606701123050184836031204867642910641923479934591671198059168738793798784750894786382528732078115049686854461763020609889901299989130798683190861701041632010283046519045287384895659503521602398048426299953954682136166444804853606032036323339510556318759196876670446608024276735258314417447800596644780251911982384894257804003804659100497013676904857036770350405594196563202135198433496275730851198232584246267005818465853731947934521755504984192343618058306424171350984288628492733742991440214850356479072569711962408366912743816509719891524176615342449118921270922321846398823987944441931116022252964160039768474185056013309513691012480080888168265625719663243243068683043274301587001843374295967607041159574226103288159917194503999947101494182095220682013738107090183764967258078486535295663953527094727799328958809613957128598717972623456129005392848899167190512616707612823556427502868952544767689753251421071268361293320868499294073402020820756242942342387467119131537511735290814949847571353450759334073442912247988947682814054442468650035665373653917219908783037588570044100425013417307424664093507762223541391872782663219197030421318657124034567428670814067203733672463645811811607225287108366176591922415056291276745417477801312629294095600411626607157926439987024793296858764093622345754160794388330422272309516195837327822799755798346545165747181137613140383677529444208448620834704982116375098921558515427897644137669977137994548296365463472897794430345777215082294709822405300382303447052762815221054083321686143710367990952315734910014758349958932319231183132085554721291669227078479343619047923987281437233521587387849578641774831645507106366456872833189391777514986982442358710573360299419876573120134440433111590228022188938617344894726232573659383782949645797797477444692978905328555365464801693024459975513069649242400109891199348382731269176093001681528897682578696032970050467144450964095018537527200378150137367929426609348805206012153078170177746964192508420737769928681818580980294339240990792712965133475528284048037888897060893439833009103557419948832339556301418562978370416810901466748413231225315717211487737819276464832721269703048684708115623512233805659923442531116825124275571105889962082296454937933161347017753537068267970125016376738252642361672196039774024383516076646884482811696927657748641752531844278696560573892312573302459101226709745266086277627880399054386188950160234322667542136841944153396445552467213308995480250868801871010937937448442723356023510394116845203460522960722512214311183678623583849662283746862156921752481880151546737718205839648782632439949984467499542358041516148554427536102474402910604438618381621863416866941196709347492508163898673579771428204905367399284706742588363983196183220882543980388163088364962495244061331797287149191257268466517985552724881740686750353278747312234914437652861459062678363856628292043823372087131855972069749239182463214436115671015693539655208928676612269141157969265113818050157761241780469425202795888655720767292940020315822339441467750237624813032639811242470979139907946799551535772252201879138578455436846679496073970333358828252786469179942660380329047797474455733469308787404601385134143380130810280346060094924397524069822955914042147725117630246792854804066881393692384236907182814336017882246385073271753607727059871227124954964603095015845135724964003740525509097812775669903831680657432796132474551644394923429711843227319798591648432470953697599911974186506484569818142051384125679241901202537146497402296163867482564823525402136240019746995988219783907634247402774629333359517405039275392365447150415298499442097393832947692834965098950306930822794134350209711359625357603552395104855906239122350176968074732307677423469759039031269816911824036754943901623933283848638057703389433382736498147389825341635779659450003470886970681534111078937599236125617375208830669690763516002760040797809975630700103690837325935139023583595534433087512376953649671535009586985285460966790305293439369453961619411758029571416112693859472423148417685336852987337137217866738740256149355273076892763453347079061781137828625249719829034286541773952791038397094154756392214451377964639037161206713763057015401818823370442746915134137161252980080727553074488560415687029358757890437482673643619140705646737905758304493300872621091450695710150910888551538404867932578993383339321018492096186825249715982634230538630037269130936132562532703197592055777210152843220899218127558341317307305859543075700287590486243589986770787170857085539862249965337780241160575876940357935356654727698973142393142029085484995442759697241364642359669378379022798414920458600999658470523269165792138066724413096655215241458228975940462051541957967252816121537069842099093151321077848687313207710787330926194901774181930701127454527314596130265085078531321970425402585576776208490058652036070195048177174514932897390730662411723674224627917602216234942646611043274486326884134238126738358201667840739249420824875499365161768819543008201667147672993029605659303524645009347768523690231786236529049008603107546357316028948892011086299261967756347749114744178109834582986615699292370975267625918468719114666663353969424497499340496738906985587638007174543872680699043624511934576481132327296244756022285221515456925820199425356757622815026205153355624218245178617376350130630561267591931974878130729103882888290705812605470140524836393268488965852176283815473072892155065257754030921886627474478591877132083479483003161457989704633306294955582966966109018264191047492776501453145633673675585497750521267967141127247131673008761891075971711012451798111442465137163603691939722929813671054853871017619609214395443712498772520317954987921069870461356996322826684913828008753450201745710040546995601362548121779983299258430123854220092293847001830262306051869462453410451864899954870549303583486746306283140348483841190292396699790378236460026972208109056345556819132315071854333735779827766066905082049040887580153102008642571631285226021972340544482898692585683681040819203679325109049213241698385106008452557770660355846059753422213203497470256460238945153656725016659640912627333551062729048396277650796133352947943497408563064964060408228101849505279392474767362883384970247255706225928979776008300598819996058930026361736347257363351432916483079778950806299606812928866241877567514522710541190341870721089773180884198104936594937321341360671946262267365431984258429269595828402369902191587887855498100466574236142044607833077572611425337667748456736204382186986238855244621424584528667807974769379064131475972116130118525089842937993403349089145079919193148951798665944188966820772765740899946488494305289398114624268041407465256332406534838324930659028162173389461278601609843640191194042125630226608024644210712512335092803781298496219403153252010751757215175338799624509505696497638853160105161157280059470706493050019746397978288309748260344594970506794590638560862000175257090204139705722255803685035329216446357428809260765203499748320559625940892160678733283946787320339361115166734653934588645316998324019189137022782795724565605119017332204421761687445262546714700946133005933345663794345427679923075983422481613293383414104528007884523979984297531258037453932298324629525850676507297582169390438329040348094744752028526318871365373315656339334849518004306996885392001014823809395699142061608446255678370375244677974503836212058237866403004780483131296896827697172979049069135132884556107994666626139848741648311002740978435410959781357491883024762578324211395809753774310428487241844504927476553231122998227474369307341474671309541193595803909965637177118023233354564863940065315843189825195440877010718350718335872913101310135712665324499810689886251130073727519425252255342087444614323010417278334356608428647452103729571803814512776716960236696004508811031041652501429046652355235711854445305893111012268653915628082953301741660902917004821986366419087596232874849608094220784996430950288409959169266923909317303202065789662857499367669624134931644909889022799172728294914544961563845633649238290352398227277967067008829954545230627923225654439320584659848845268619671461908899410384118465540323606243607141227713302866761248239512914066018073503810550578599910076187455818341590039201712267432010552577392265567882592365615328703578995878423775680875123278990882241938173484401818929669188669789577473099788738443800399616411952753824961738547374297204020943545102020661982308760690183364563595061117196728201883404563637224447423813872797056455525943937843339321594580833360942927357006038926434085513367865757520683072000105296351071017279847955780930210614845600717767601040655786503071978749486362929476447135018912498749540972392131637202644584609870715804906949609270066836214074762211722444590221669755174370291633250975635415044130564829649453103826957336540176225457923932984108634855371755672990187353928304056719049365397146452964235902173295219868588278384963197634616744777547883173863299304876551264328141308988000232205767823760727582352719084584060711765386902034631005848986166503295157351216964449987434494549118436095283417600373262019704824964481468011029980230318322707680147026552491757688893027011345006406149679165610894035788223052229471357862861531623167472838162344824320586208990738428972351990100424332759614525352990479028016516922268740552573990099538594241331466300030594545456247441463007835049933289638975083123593369234488883233425953390387954194553005053060128284806135770311265931628122832252853606451024973446234057749540182989593443601140010085418133862160581210225119138849795033775440195510303028762112601370079246403232339971890376683054354422610793390771626773901154654090819586297126786543022305035974652394521047752739969353913956550896051518569513211524561689794031221909170755808980948573711104961798476188954821154649966400903249453229686830348144440796596743972820127057836647086372593908246113622554256890385479789604740944781527291789829512862889339587615934597328265085537782817485365787789023727948945345978979052149444833000188261919640839457990794436959833382705251508658713149314729768586700271384065552955984452157186358779555216182004683005576817312198030599423677417782769397733346854138846463187674183705198696508888903895368190527214426414423650253330418113853061383497358832909542910544825211170431521555643169280186645466049143956354151874174138362203466193439185919369591935015387580132873049101333985284380597747144684437088763655673050445567903036489735935812200556774456463961280382138514692926143153118985336107490725540394516994833921960867433275035153637259606582005768271331690143332807037347378828092520584774275270094704759799744320994707576184282678062366548939927492360552614122406670956330090698258212516531298080757391347785747316381247279660584962398804699720287765742120539516014303547827265708507205461137732362395400357418530109980606589806274086892104459749611040341776259683670445548050210894699626601507070175460842760323685340653187459989932153159265457990839883398002868322568729073600526033197221681500528461335697348531733589978262049143407944360925185251270998529280035358510581866194645969796627875492411101070457309590400594894853985150358241362119008688080313197874763051162371281306947714049721489567477714117158040238002684297739481684803666120010154335418041343473128529424604651841680968546168409797116301952987414898484465524653093456014747780962143694747774343423048386830014080699588450033568516784075021074628093130733502717649129624024039331739449804395377912343542988127854124882189138152877028725210129821738048505215404194560774453867820064393850627048270884560156583846633194366769840397120628434887331287057096133693102025752395994742019596967509978044647808288094728375062307457279405128732255430602138219534842647438424173494193307059438105641939799161605649139099987060174236320348879758554294292708799091840951836441793464813762210019765883413322927982481678621923966363164984868469895952846049238089751926687124333996581937285168506367481821346457731719596373964438153095685647765015730750577485751636546101545326142047664802672968654492215471901940025581161079988930689937280508982676722799122899832370500449404904490133439042527627808489158461851989088899068522352761519817914014207904290316436466472265866917827957635327108181798422734634100051375563278638181612869650160038263109143580450880000056964329839127552131865515156800133201570629095119834159020253093683651476513643141679276606986715474007823797060106944594579383230417229309348913076286486923918740012877925043481574616139684058570850354430424680771513801091042467599885020367939794130907711680773911083795125678845306669847078805779404965307574553461415262322267505492549946782049224819002456020073899848688354379868490735964002658029654535728885868476081132943193405186647648716849534844564014311049735584463183612033757187098310016875299267152857667677944909967892686946686386876431978514776376529864405118774795359550425264842958015300169345981666535608645354505748228215300909959721922069521710354344820441941845646074927967404672742079318267695043796361716450863713199645698980796659936916348765748922726177147661743748492619401739075273531407404321342044253064450395131120805606395298425699315415012655970530450393502780668445215758932049694499429000533727567201062059898452161644462263540569762808215608906902104923632583649799467308385445846851499905853069617879822673546549290727412462526802959281284594492317574020881572362908389602087163316017841494731378343680629196308775676228133966235841112485165583239405063455298542538881717532803353951325115373875632375396200645101284573956740673676027245780787305871415310723508739208841691300689689320773380597741317018836370329396854062800968306050034058422766484786813841581943076185201597299252389774127600145977854398549572474465418457195204642456630979842998765053683995489583825440309730967623862151664696033850887938829707312424433220173173084051303615223582705310432065055760624350595387493320700927733401755944305775752408061493127437778635947745821188197251285995299048208888190633951273878251597580520463250327683511965035016110780663065681986891714797974394096283146261484529352524487679279311731488936888118076212523152726788455115097333981618713803692715580282290591642557945674127952017740591632592522524597325145404624055880931956725332777120313697201712002819653491590454204578672744311931028253274985781796688917556742053506341230861595533152346853141802795266145884800848528896707478757091286192141207556254431648467657367815608507540748358190586298138593333371008965613223059680321420605926121424490723965996894614901333109033807667124465634980641133394954405788056201615406692566740078341106014309544508398597138526125138970382194953828275439370146526320141523072037528904187479554639116747648441322475263857944467462173227815521621608333594960773440315494395749819147487094879052704570369723924952535102846051795542067345798402046203474100599773578613426074941629246821519346082063673855894644545796090261974296129954863761482829702634814879700159959127130114265418750525353907016590466716065971379467787903988439756694227354293912349832808807797831703435615797832812386379017919045296967268906139230011598533660294557400787092695892905708646642979439260100776698039216542645666821972965295396435151088208640789016559118354966657569121914096475242911655155696651450150305573496389073811629372427442187741787865055301229942346639471130882293306181400606487230650661032141979428122573517211738039226918035283923534181972199005711939386036333789862005041156590700836351757185818092590958621396165890842888870297652106188650488602658527190681391621737925975116189765238689732372833915395937953451893755163437069613924983519515624989190881300457505494806201428744522034140669984951024398840515992499540062323390986388179451539859004992994563062754257664471196418594153336675441889212340563681374807999766867649819190806916754702391561936391007689267124738462408409138926468084901919347301256261450244189018569052403847634373128574072668387710961056580680496515411215249798820033139044560313770744050134631031763661796148464742395547610322493467329266489355795000846577526001093634283405838463141442777746075572689670269398394768565148855400147953151692343547422392164068999547153996606780309138755949911927756121888291184433568634477485381215942231398826832599916372782359191220671365638217332555671737551265944104973851382520895626471962370538593189134163986690155779855380095531604009163176120338156846364946416620684684141021499997873732563417176069530170537428278776551463125990855842567561977556918541484550055175533658183053182735923664736964590075937079019482444944060442317111117431471565772828805601893622206289767490737511093989377420792454954961077296940180899863781294472831482777382536163222839173448047364025961595435103489067685396772525979467619721375108274431344027246618794319835309807506885376778686534338541183295545557362347895223807165899356017906373343545543192554220886339730226589529384368720807964273284124129236696878368549709483048167516652467652013341394454515394934284726874876959800730464296785262460432628857054314804343791019235702953817024571237667781649336329801480819645124366527037263577566154724144670961324244050278082366045455132482897306667466920119814498084475426800667717920451759556136193703945222071425354286654933704917232513842712112810147826150068522720724449641170914919035562102267111022677299738786552008313630053733099343845157211728601941171072748034683937097500572232973202255365821213900679215409511992020009371863482999984229476257828418825310842323153178130648332789678635122394075816239272793935132354716740721104408281042903808268321596188488003456437142664678211467785937844313689833919349405134873588738722809081720584708975475716142409031985681858803975688691249386371250181652189783002742033765856596853927468883389527266170463195078303855117863599620007904922256296179581957288191712949190323736973069700841490117951416056106662374182863400974477285664802426442100607040337150803877684794162765012977526673990272520317026954470646816374862557340656299202630237763804663034295302709966494400071015741922552401106131785740000038930769797082885712061641811479793829202231280365094569161337807465246674294408178234172570023301913944667056884747529037495682990097663573656647629087810815962264218235885056301147074369302576462521599655053228555367878368586750763284614456789035031765774984387809393282560872576160348475220663856904987874956371055002928190514682876300689654812609224626140795499354802269445643347017581399948732835493040556547604249807431218413671959006461429710621043514659251970570239969525730125103374173341163021969911895477668295574412338740840996240726461763523474493205536813853140773884585041443847054636479956333873230550701300073700840463698591348176077277659605127621516669763881813140400164840147268217144087992873007384371232309161791660494168432509502369379945431243586196515131902044412032683866185336940644905300259956310475241672715446712573010241200215391743209716296275811729567881884249214441114331259966973189300740986220586100999586769539969651717344040024490593009827782347553693249575833833924887652512997668307897108836984588518858230185578655652110995033797940466865054359521630588862624664528576630186387597596801773136272838832819070602525136989024292408016212147151021229769939733008395544051035193191035450049446154493009402039982114034309068215720040786050920087525292490501888134045611685488108784503804705855931421460078900393292675095996087915313588036835916212660207317758517283237654373168017197555447829523473328493531677506822867780872494066101008377651018299579747351624021430230295237686539699915160799336708599966532959412925557327077667492640043803245274223550415527082797687516325992103874139103845889189244257973673597544119650454116374776072337083812100375715045759558068451563815263567866147756248973466900284956959977841815136985586357150879879541834626489853114579979796394709867944041434803400560485272961477978345200846272586758905355661594327652545785171491779293877059976323216889401711492063900696596703066877902245156150227937971989937958035295155828880221163595277399257859659342577414593126118246616437820387699463228751738470734075340777976749835124788627554361191693525243607433822971065895010823290994583873235773184923206200435941386802118688206516718355662603323736841406293914002845240007186078519518221066209877743028090386634820516760009786589423360405855380395456087630529264732322069919172072788579191782916012539958247688080578113895048858473463969881695911814525368462232276258607410674004449631212204654284248491438411380393341056569620180938083975005688326518539489368756552004384203831127765113303549129049423873196188951081171621340835352009715517121624120463600473809956936484190983875640155183322715908336863006861222391141981605752341833917096585451326447282501172139425396948901790943239935720427585365544638649769493151413149479708900484053044449092142526206589370627015450292326163058114662882451848780447745418880616070255082609255331583806591246213792768659971883235063446938687162664251416978813069896513681638782210629001933582903470152739235223199845333665452387785635405179309075964801596973616606565294326474787462177580546893601635606614499934469502841926578497718381772066066548162388291543714957982556288404286829451920684198404749323382124500170907671578638395190248249143804129404258742531458343357590701054916545925049964312928627064725797653991163607519786256982165738565937389003326914522413644523165770093000392398729935387828842372344361991873080171159909935129587355674020386722784987376378022279777675353405377146520628369541015540307248498724107540672176061356929118493325091550560125069059150264200000316433295033765670632900274111944103218981828032187176925088565105819790086976625705261384304166721029541396617114362713946143178671938715166359339264747966771964667534449463328770802893334172330169029056572162133989744318003174765617013908017768641091054615119765241552161434460229029642897560459403550235005696518576711523672805266526605011027070197048762116504417463456254103589823392861958391780004113835867295944305025188246827304106930334125447403184126837964869947863454778073520285078729241439961073898992758745441678794510572670908857359990285621403496993062747040862338722506953609834478813467372190283225359591928604461851356868110633258479622985067681255271469074091162242571963169535154216105676785076471049608227340309712132189153389064392723227859362948648847450264177089311071808883485710861313423291040798477620473985861718134134954248863918129477025829561003924790001403977583125548776661412455372316526651194013697181533995606414225558326254753199917925752018516003651906442311401658170232052708043541348338321073058024609712185813220548354975686416955344419346931145496257557236217997710204454339663801266137738180938331363151323023406384146665597024606257670043285067350429561387595154185235873044483419308991018194574797759937594924602573511440821230489079572430466117821029234211260604749304475995343026482258023061860030662601748082252692495253478288682657733509477831733313410112476924073499360894407297846059433155312644857830894896117594761989016752488170649912256606919554377061835157837964374097996581569714295900335690280150786687301489237600181771631031467214193766019139762196346686880971069067838740543708352056556487487890116479158632865105887104226077936998312833187275493905857463337819456523822176791920208480604309075515604111167618931911144961577614202887833032197023029169741902673521262773547554737118648336553698362505077996438640198176157783461883231580840813614246579204450931211686930707456468571818361326160890919945148916044352476560024190079239399410033416531280685413861351715478520138099036523668674813765189839497044927031616071793726981527282700617818873352782296304490057798988419731007411929169640400567689220380112101228471746883361496354600512584840056241976837866931145816142993160830855752306461178310471904135800814742378106907278442984918363110893490644310246465397977359930615773225268491553508172578041417965871377987940628473254923483852351023511825440417789578793622946952510647977282677020768062382791730248552294431149038816735792989309120442167461159327233170496745354522866510044848057980964797933983849108057442319996381625444480105975896198287473286223941832570800146537720910191503972671758857346442975354540184534135148208053039247542108689014469010724690313294466436494071041131349899606916736341022394924624891218150062361722468110918735548013302444875485232793933627170606532201243411011339396951943100201437416773946451417722198307701819036670593356442563783934255719035832049260367399272918996150963283553727152723833330568813149397522946771044856395601024962393591453779912610352585915527678341121591672323704000315571663355471689067081761821466669928307651626874391706848000766893548270897939251712614945314684970000396919041795032735694852925811776856153390420637292606701999366855821871318029815040030259051726939519863706137307208558847312131991977810239937832580559429832153720428369904909450956718022907251713217039346680751534496924739569818036194285389004036230241568460266375827041503626791821059791241682193453307046934879393206354240782068026458974006044232847109303081517487967844209091730856660958272669692284131569109373380510613650202004264112663874779514844926225580575220925764234556156558181736476443427720987154061687157167795638827431445948570135527924972641985941368767854562527213234182047009099813295222316215428573128956460735134647867196265413612191138468094238535556894985483564556320419821341479402291116141295881985501655774957617934292921159438690765520708454050240076514530924623540165073964890123140686726629390415528565221742072726088299548276575061783937448187185154920974687070250964193799332748503753259347409373077771650288241280600236299453576739503912794479383331843500347131573708810289912855987520467139636072246398375076366971819757316902483558535961150496378197885754584767656170785302925847819753434414657497760369525111165971415638589945613207114294533192300958077258957538704618525706502300244195498668079498526598163081289323116630343618918262094018581381484891674312647631125633119907328086616436983694340967260526471868139189603917229041826560030092572444224048718013206516413009377459572175121159438653242913338690943464083210403238553163005355479818029317799549846612148263093189677145028778733948523903633859750548734741307172236742343452938772930585991209162447998795931067387952796001892968616447185561920366992148883119403285797468770245746140602125633300480710164641932693454171437503005652139996237611055008676204617325390448048438759494633177350145454910277137553638261241948272927393772605996894566549482598245901057123793737915785843497951022966678862915733129924435640269447803133837890968072076349362401698833948797778801762848012580042174195520979634176910441808275349052624520108187426031922728887256652195246555794322464169888370872324739036521820841445395254565467116046235641475301352085066947426886208231672443829224495138309933272898016668299376874018133051485097390067154291738213635402159899529792572431984387062829000993907505930763195219695085858591064643866984649584018503507880698980245472086107264415190461879829386675788346193756138850229026687791421921353932520463659213391539970128814798035826196699218207139401261241814629582281715136189977221987457204339372221966187723936032305491651146453012008114777168287096533968774742700509944224171699247741807364689357320926073920792363242879012801459270427317119544511449556082526111358839852476339630431403853861454618320610061967759932173133016027454269923545088891161934738193839750215674074360155573854692203871957205204897475719713517737034098139417883366388424165119649054301730946261589725869721033546458640308176497961225085168257422599769947177589010103804975926067059510760346540095183271352065433779856333738727888712640977101959968158562549505101326229474066595353706203706068166015738746102348238552178072317518020795809409840046754089132530576763060556248595619519853293348480470957763018063146039183388299700414098619626007541945928784312434422948363285704716987941372438565243485998760283546427146517096854024386238878282906487567128541298162393011499859122493076130193807917419733404361075235092575565972776618838154661019839368164748065614251382675548561386435974080144360803213490422958629200210638223873415895977652598533068376141345585084305623348363073906736319349417987213802169641841971022469767220829537764204427986673974212676720753298279699430085552553352009459139137749513747170518160503945936985772957868871430575995525303850960697298079842431990901258833960332119247251225608192316199044911548503498067290789629713842666561428057626064251730339069324922532167569484503740288917265928395117774998766397924231682231475956159350233556207744165085340033784606086376686229986650646025828443891486908053657137507236717604383618851942081749532670066310112006610315172150732582182830846662297595057346877959290950675056328435115349321884298462209763436856929675148909801206507638592624367212660718808322236722996434253223181934972353573316916986325798739029846502144408947453012096344203083536717828714801826627857818330274495684488151726414048695419143408428920884708651377864444194310290399195908359168182250671760410501625558392075230155195164776466765878283155597297699153714678372168866190280132953375076989237909464820399816854268034030735798252369372513295393024988172512441564512498981119872365445389965805107285049176674545355873779515696483898250803005430543659682140187644238356243868390793385635457190869483466785754239331658291321760402680691542309506573050585234006344014387117479531266055665657750936094174089262094970921605543660674017321121584430782546106855289388610487531380140650231667993015534804977196485492453842680074504421744338746500299595604295770970022580745404937232229375990350168395737539447288891506774014856991901590709388211947419947213318063376330336704175987189845415562050462691233540631094345920267177815499133055533050190139516722698307630601354355673756528417131202945001926570954285440877428161574335365752482117480229203743964172993575851018318572001704495203916618641024796009942511108318293287748887663189936219457986196994219478187858797836239920717230320895172560870443819820329134479785956695592432808133512453246231895474793977415990265346227061299397338414652844958609978955922423074839020612125156931059989486907473397481738918574365715953362956403616542427540274578903618364641696568205138247893085011424325756913581632286273764782257773645317985242705763903859306389482250024018592829808065322892596295481737608983466724294753965358792835664268514725962217383225457043898314893184373367549306101802017729422928174575656019927182659373458943727504767266879467482919873838552281973149217106200974759585985807360484969785492292612721904931290754092436230523327830368903368921831475460377739175276035785265146274488627093234041927698920178246255939001266526002272097181332120992012023921449615189208594437527138262815993677792073339720209633636138932954757645066566898610560756710624053671475806716309426400730137435126863123467830164686585138320860645404631326200266807844439164375657685736451870425023123072265431116379804719441595388803408534860882652932368749289360424070631327959546678793544445025375112117557121795121656091451649647516329527680134949679044340408514470901880577738499165843889194051211618175678655439271773826856337771232332508200973695055500159346436701797636441187682592284309801142671180061019659091113350671373496776357301123419555737134365411942716287172449737467241912395303946529123427545361814855976134564000145597051660061903961183743721006818058655418838613518888107183552137022549761181133362785856537303777639842854718113408698332640752708083653934629258730708553225839498337253683817839621336736176473993288661969097188224465056158149392685746273958216506432784478356032702236767518640297695591128118771202390909789152795482064634828133091791317265717833874438854781725094825910102480636803962829535893363695450524603322083994397067898432701265901074239296376513641231811206924234658056261376878080379863881908782146017245201970668234765068774196103348453645243396564378093425732310222613489465981773975218648559687643014490737119884903256236001083056957928294477869723957313694725042768940513487755807680050887876488475629212085927518252295778955989892473767563612176012421271214589500343056036822902792872758759203997887786514259099411665245782413126064240787748705183113424922581656415341415923263609923413011658173030391017446867499156948269186682602559741161603205933699348204911070849872920292546982645838215146403869643789625358510068710374545199143997224401815828129955084304970721329692913111840739664018123778087630117108737329525570749714842788730706291665007071029814039565891101034246521207111360618778077017934047054713951163237200223901529111628510324395652618476634764148983623117023720070509637806798337092768921545734517762156885253557879649993716463968003875013553498616717196827159036842948371418525368471515473971265986451811931623016701740807796783771098222442282025286900551429968455832041140948603046041547053336589674315846135935165369918290299577234117901853428333950999096729745660440406810893575424591774456043796399389699962666336766430156984829225839593208060794805956469428736596833241418432107032982438163812888181079392379574627618683913524063273004154674390979055138521504335227467125539568490645728289859719876684051172403124246060030163952709709362968560712354591227804217963014730228492141711662158973313994972180543949459649224915321699245957356147293945109793935200176971242200081292780666055498982806075259672226434120437448786945993447176276878317361606719884679427079542382630666372628990224195656314515086998683527770107151036203196483727489113853519199587110243621857844060842493585075861318898486777127994270365185699507764939896612127239077304252576114907733640988731453123686128401204423740087846026721882705373275024144799284077215887140058827890650335380200242739843975503670775007477021328300810835385171005587147269317444150288562064337975187905966632699880982781227216062841285320744316154041640574536383868652462596046393267471512380255434214799916724240570645754626373314128824151604589360570365430813900475492830745305894211295732868048356979163631909251285350910512249762108230665542924449688684612178496079415720873014784014234000463287691154309683639028075102799971793526709100838607311785526121664645011594080206246434638619962544315441858560104549319155455027665944342727028366523005038153906032854381557809843635450061327795433541721219614226386235782561775110349736443634131785359322219458963539117422539975472252631992943765203233849949806009832171416695233047935508468408746526876410871630398059393380468562568249360101844066241170666600350632249209860707166398142644963813255306023221386868788105756637283929860833319958968151001536388557839389675024111395750873190370546785230903782177785200832963261382893644358823809403293656636979899371479907899065800488239427246367060210279851125717094491557161517917652679997667631308909477604962300839200353534077303122890594040749291485084563920879205022071778712919589084429348582411393093630189183992448880521213839327239524933666889255820175787212380804187519155721913062417095481690236817261222071915346320559683136861315454280424131610458356686985228041473167883615047257925915193678771376032914935279675154902118497247339246338436298921489870890460603661746829839162759604316617650303512284230712869450381735417894306056811174108031957515669727005902658234119249457065956939344089364827582387095270544668551955446984837951770441496805344639932804476448660645000049764181111312111505096308432550852927276971868111281334382383903591275881487391117075348281198683726063019649301341950007572471120459430065213236275235817572241729217422438823409727861642908285256889347216396877864320684980312063093400402711906732125880663140096857420373078614409219982983596208624532825566383790638836141176103263167272419612200537251401158800232081015813982227888701853693931470898114446262147068951227525004103450113855296882202666433786659698407585704857136125517795183948426559443402878901879311714462853819358167005739220989378030348605258585148850727902583904917142224951374558390490047088142877748400484723528462458342641491938553471596669510170755206394859753623558778180198064604133483634678431658745253193377129127608938733444246335735103879393015532755138358884544864743705077777685271739969679262912861582527327825591098616059323902576277546839130026160403307149902105107634530981231778492884571021457645580005109523418737339629937856024503900421413047081922890002634243533778933170960600403351704907413614631536314115192208279005896016952521649034734542610530499732178906593612455203528650729955737866847770587291600146473601342274503224269200419896711081782348351570192720429864249350834657502730639214989508558477659168907544186963772147544077393531573760787625234901363130558508974810416850975912609279036534084916393971041816935038430331319559577723492305528402631290397098452588926064552925509668509533392044884048674461553634375536764962343340970455847085134539902467778599828152273690438933561819449413112099052421328236052004804120429138760931144994938566687999406326908317167582467191179050784619497763561311607886544681841911604872846539076788357268999001947722131619718389385167361081503591061068609289434164890468176978777548498434547259939649909846571815432809017142522169559312844164162313960439522974773574912694280928797691405064171472125252639182660733890883266064520152844328608529384140170732323383974272611693101547604844771354025925826304319537494933505079746613762214766174357894184886957390408793141310886664732268529469022486976557193400652208498516783414474015567320527783542112728837040749705836974659804061079977321599512206354840902658739070436303220481151187018308515498634989407779703527462357772031644952632787417421668894623035035140007422175897348806914339045455729624925355334898679940051108103811445275559373340681210604239952596950224410298033497723568476070798564486545768487478445010308238904775955074478379524215248138260983983630877847228901319316642472124654901183652738529217838577413238034571685893315415753126751936976803264994019201077831874483359217230106206738572128601593743498612371915107517140732182640906769247406478235181030845420240189060329730302248553484312684763231301849932365141561621402043788074125797286866929131641835221663150757460098680572721093786254459342545301141141774384122417252239304079282393082379509015964318108360218501398321944897508401484173486029224930338003548372608327098513410872058626930848716196022342280772879894646654993490837285298408287293185673951345170309017482448141003371178621345946884422374402459274697317082309999616300399344821953279019415301567496446462593741018764904436132239149334942906205067873428400900511746492007335486543894555646555461856236930120071560685424548325501483572632722003876336231996057952724229540497092534594502837120320398853651312563643116398872655838923241106432588971783968065977053439569137108942398596570083583667203828745347355102419831423440202675238620681375269885352867483521335287313626399150513745256204116355664424934743816572810066523149747396409096321624176097223357529253480208237512989732136049149872284140340403047621128624115251367653666121898417156364592747942987138072823085486728337809903567106356206889358740560215559625782106123892468928752588670926003299392807578732952211899251512229405340259126193609879135668688341798270033780230475482443889985899152904529292029668427015067615086497156582883553520493123523669395174289002385813363652911819474691857877631614283357734319309924844931494010574544354064211038980542493009798220093394325708474055725892501908409641516793461307489358910303809044956684747736423289704786148609138204436497729134406466651507212195678833527881876269512722760885860986514743353898676755619724931035393109342341096635062562322196170624535890660111537622914571056198204489991880397603268303580928926664117339971315999430468951869419395257341599897317806775369702323212112784166765689911105719571337306227986871840660017818605214208565200295110214872695338611622721983961884610930182421161053697520385238066172543133964325520395207231531642362720187078956050644846363417575776630285108048354978043403659703249706503697637254046288279862702871402265135568792351495605089347087847202322639077449620467046191806189466837552032131954325240335390590548314052243876511679975453397659192665732252400110750660865686738987446552439344416746434816277153106055263014061553425391452183690068124019454944107641912350822304077113480831602595793410394860476708446930609199299705296326596801118313366401125605008816536933467412460034500818040796476718057754892131244137322178554271149371840859216556650681846523372211068587938299330713603862305782659821757092703120742948794564959172546394516170004907941040472058748481231951880934713780008045756078247897476467949556206868824820358873669699816690079322397764794556370027460318904473621169053139061085505274319136663789817984751323466378985015069552423145636091314571782383442548062802088886571891851555229149813613165033867059330240495106283962152421442357484756925461744007453797012812355287911047492473101368412676000093705468095396106000379650332736065905576760386061468855989124304936705263904929248026771143670082219211263048712588075117960109493996200160561501563980255489803528202805496779945005369644523493742747010035297428438144143551352359164617714021867677083787605410816831484641189817285896589626763658216022253498578880263747936858790360661548595061680961272862853589537074576091805193721746304792061220082392331559986334371788648189155650065973568592076917665618855903303390102796465572256310003746480517110853032578239538142731724099223117445021939283783196712871494755824080758442583323672164274002818100032839224299269201720503840789161621507348414111372347261379521866071690399495779549966222877561105772548658798800154715114581892306400138332480375277227091586240219676687308117137752017969223224126077728479137431821835785644946411086659945739602748167930495609464244838117247311986699819961644012504021869499425389209995801011620233557224803342754706239105765306166779969718693458611236619997315650382449827195046100354424856721146162329654361535169473056871800178253852164984855535818002439559221785067693334081688892615969314299077278436240451797890135465971092226561409527787708283206014994185492092435759257472607389865061729521899168241102734260736348057811458199684419636110684249770097253795150398928745695132253516545641465607912760030755449248501596933879065825703297132424031084441238228574699118615807852423618666902464716650487241270910158508773124613450206146116191355403945309179492472284616613363143137014680881173084389459118279673580210627050870953910040148401939047269548226652401031875194579183920848371674127301928072684503644804601285862106696334837701733176509044981424567825523155491146194263972186066671532286251693165688503183144757678859382726674025288679705199165774624846909223487283572838121534783431220170643983864901597300491608442642291258204383293039072611716918243563729606250900957857440363765404404147890237980222373475196452544081205326682234010176618270996593952473725184782523582043162322282668045901055268859928491476147019047919687545043541829199493007739183526170732665364648484482197932058837779103117030359070292407634874513073416142511385603175387422092675368835357157831934338552667133826408357296082880849073500902037995521459909930800293030562194874670945976473385108042125513568089536861671934389687253336203436283642152329244873593883012750455098196268085827429131657916518221807874972936440611355768434365433694300078023561359995714024927996924125812662388693658624888965686891161113374461090314845499945007919768495845793563325943455697326334555797773198231842125337846253836353893709993485997395268838591453387586622620616288135626364060051467027063625111405334602167216560479345784226906363574583954291008249335306051007425622144834373959323439083456160987871577584018104790084892887088125105460851294300000841965885622234264375813171122093101629950500673348132499563542895243989364087755938931632300647582797823176633417169529766794694227126015198851621039559132213169195038612290699142707729893292047821647197559519210590726358849393274360691576859127766965853688849538714418342056845676065760885674479844015881549724263525104559946843366099389098183554873618523519792353416904710365603781782627685982135089903451402817723719678037299798287070108230292503842500550342023801650371620430290152778714618589997156953834897590583462604193748869750036251724423510434852715327728926198509891258485908017743802546827885584167638555851197587000224883835902303176417546558271247027704426825005569414077739461681713531127236650948924757103095388665428351596536617617995446285388857026766051389347478463334930807948385963156070234424476071973910927910567914759024121872024102809052861197207107746788195836434816406519225812416794269023493602465591301675903491040974595389237346031738821814377488126043985792829369423835299115096198358112928569426976695617179220740672711199006266621147797679818827005883184097377062342913303075858207942865530677303617561731116933767626316084181311023271615093156452887277969759166235409145743826069251524295563494111612083978340977565863940167669805618665911577845042261837854900140687477739023681677109742792882921273594753008751837000999995647037751137961183021530110821261585931128243778005513484485745237991376145916758375955482531890085675090890390865035811045175729765742012534444438002958437339436783159768246816251750504800541372648166023073012222247305636261654887811172948975398385730899938801644555057310292237703272384817447548957529267198393698741551669772098368509899453999839526907428188565377829538109855959409635342990199670801632071783132432089112871887946820486215924017720472517330298351582421827317102493888782672174961834793408864674885910593360882906203569981377464855627407206117151555826246588029209376363708240165712113479269759578935991883283591765167172007773626988124319967696178390481903484327550907136365119476780727040531227042062209141955690695770110980051954090516171176617646338503298635192910997914033658450182071195028146344147007327047410260246016542114173989385703134585111007558898391178865114943500526945901997670623288669958809033637302076435939057905474441194626626010439486733210712661209867456244084785541733144840416350661292069117558462501564516412863351651403469260075960954245906078348619826853063022489943466847614366456866683219040445583029811165003273608446197313928566586040273246187193003906819058511547897707446585796991555005692785088821502411870310377192078521368914610248027806110846848455219786454876538697548307564691755247598451760833913205672663470299301252690669305798656436929771194185043828145281692452808050227593092945919629969554474837956131906498428694248207609179078507969850478673159450553093404010894823937701129358681963364858117965146769276667061416917809154312182499233708454957091873301031862658800074067094190784632437904586642745465166986250045137864575882561763206526140452958314494126902199743900997262499726566844874445950921755264774485826076037254468070000163060706298690950797079544605749464582611917371311787508223435844982640672570165640214003207923289095203328660109808108346358720196665463026393498461638654300573081447679966610875790576114501485787328999044632207678173083682768947617168710623370082023191585320199714056098526939344358157906551049480068648577626007601745905708937581032487351270563984281280144110580601090346674827938835163803298871562105247440689708901046016923739714058747153706659977362216935726059172555657696544377910819305988725686126095497721258810172792408475786317930149866935770807716356613246089498348413636600839651296591195767597226918180371641797269781179728788755495822743514550886308434834006087396377952465670407895308265980199135348881429690246107677727274822816726067629097477885671760822381974616220802327637953053650641981186219321034085646370259730172457137684593721772310570722099189741785651601060711488091849918839340638613312080410336642247663178147007335052733744693017691319821420519867879546085764540976861854806106785541749236923714575424634912354679878062241093506311559064963925453434997857269459038817949839671008458800607388483739189776103313719681373475319134192048965261310077492964119019380151967606646671203255861301136536974162389001589780271029778879916007495791975600186652613546949526636826194814088652294845476954311372224153610789467346241008946478649075429818801280073487436016534405184223876501073816289952109232506319463262719015658424809696932334471880242576897541780532104337382174431720075951038856095164458702057521464172209578368119366430400936464569780640629878612663580855044275379590968537825907788301454424997341181807289127581970176146510573517406654286269580693572954967596285784206076858680534458799155526821902237228182939343510109898475500020681424785807175611071114025625959824901339026007003058630529589812400166935141760572177936992609448350018989332321791049710425270649921275367013328631018635591397057375069069831260857835576206480229522766819140091021263520021006828972010636551349161630373090478613427611063781266950469520360182768453187728585036415368687634782236140180573366782066484185116976960619450197325314272769131475499782483035103130221588795994434259010609485902043786723082938797875541071635790471701294860334257209224493624320844713995477738756233987371952910694797231943029930270170182817780088760149713446066138272358780890307183761803776596811630462781426967092438752585045178937642855172774734441639647226248729733251143970607066781651497163667226422316102489183277150036235395054484985110732997122311280583076148691378988120578713096197701610011042913400650272168300183799710752375191194450194541541649656223394568972926390571224604994336722145983580924239398549020588950796291423866009566176572567622222765819770956672405683932797131538222200014777568806107372546451103450976958526310203722075552547146239643766686211634155668734825202303262496553839563123988790204362325809901057722824882554675540713964983103149985313973175551298364146907071224108700701769665288276874661800865085977176841388526566971163573559511961027162817127697811431103806455688307381245810737965916161097399894797224702684484242172509970559538482320174111853190255495771308265614720709416568595729331976415539885442143545802793396488981387911288368476430719382429281065164025060185970293720180812779047418429879315221150020736155971212420803086524216261307758314835957354702496810521514452568516570658591755540457900940374123990864855483144949605504231053698538948929376743849027285282265617535121781328782022650718546842544806090327256259809346544222152333911302392483022838558831735935811380072462824722273650506032845460975803774390987285950516858199412169506400871509743470421157933606197195824798102781066498226069381806721987681547243465435794496511529747720008425934312080340211851288567803563625091726923488170481502781120443212874664315013918689768439202620573212947698662376612194532835018675075299903220745563564232412779884293447733166407258129358394361784193503182139639267790683719350416383082286092868783415508520147726187189599737783155356596075012596039355123974988462107559624020931916658645213847946164877347791460079830621814815359342365237656367966340736445803279618256451160789142758349743684341242723946171441019026701172063596872796749845851192320446059553142721133108196928742409316022478651806153420195734494662374839354744264790968085168313446091622809218199220210692839520793598733883089422374634131132249293768005752440562053988490055152630390326881792039850061574776435624593778530179729663015424828980143498968271783382048048996802334653953690476540274765319467939234745483871651368657981281183984785688992998603665013511305759609286592182146226478768195851614166833930599046354736933641950271280033565863614535245726363087590585808680070421927984456985981958640187129598252741310849421354147588227389230838183979762131613465144889524890460614830040535330159753150966605692101097809762925058182095689786338403963558624226387305876231445852962384102284243355072880425002623038941815418176052245723178702171353699425755465631292977894976420716393646878437312746744212550951678110028447851105991624779925883101085494638488210022875967109420788623319955735688580511637368877121379348525787204047712507887067770655986947158533289922815808136294925230847534758768847023488342571140710912550001983365816127242019649774304670424559150353232105035278025003090048253663357040399592175865446706058782496847130441044242383418560604317573641921419056805190385802665064910506815981957125308741053417046511827006226524340421265495957476476621232047226157104914667752300668586330736480340667820024589951832137489250577084808406652738222354403101211228255551713318497033647055441844844472688275154475043874955130548263872843653326749302568993312682501396514539167454797122905667502658540659718808335725787473892204498287090675878603319369744605285604105429393190138469812528913416034628077709508876596610732083416168454009394125953817177206863071393229678441150070812839513125289552682849969601889461788614780080048488767561615747352419289501829381895515296664653709056165523550861886402903223135303262488035877521505166930686641593952484373311297054165385537797733122443247082031204655540566027311922710497015966717665608543392777899697823874223295260907675365559518963806527022949614031470279301209394575081625547988965960083985013433223842845027813716476006286673252925162399892639698711431030016636498531422500661378681065278471079424192815312589857641014618740789504936103361575808131792752200583340560651616859637558836644491480897418728151762031688189835624546337201572810765506850139236942632756934492408064840660948580726623632238348971782059150723222480084654699329636220631326387897483897380372039834563914704521336920156085826899964333334340988513216141179777613653611724591992400271765951999732254991984159661173894034824278662839306167097930562977729746218711687883616174514651269696954091110043506767199508670145705410375865869746966266463717328020365874007958940666005810537338989519519923033912716678370219518821571020865107492390220790912160811048029977083677713196628370692987040500473657372262198339940248752108709713934810259560825411827447888515828079360871233579170508411393041008456273243732250880616743112104051676896491581624145458328362540557059780023057755469432918097683167989284630528071456325609112306816215076168307676111170188625856766623962476994302728284731570949864800192113391455291337484796347465696666165652002495034798766164672832550029440697270784902399905285560163162775243508005733368941958807628784350774494023436959476513495215943864890372937469531926000424418141952090267281279620707994240054963799394656880442930013678249990387502235847174591347670893226204374732443292616034344831954464664311257825689330462074848985051671286288415668303055418175706612930594245055022253876119718058969421432680193269415453695035633111597397394114974379626766288192610831870837489047515591231493036911066051821639753217555147515289011867891095029912900896553245337038325823359905882420326299558455791956402543257952788043759577608740644985410553013389820048515261972936217700775251016753518924613291626393075883110863227729794369648073688038833053060354874922796707584062242124831144706376028937257545716513626244767728570312338378830294056803090122054657635307368706899925220626854070340001978656190764327763899006236192257669380486918670492795656875433122877271289718672010785050479859540927040075039929382906141133517220657450345490582624463406814084749726117375679443655939702414668915262824165194071093543794723043127827140074000184098683811316378171038940006566382183662712484230112328239357385874550813693016563215372007776763519921882744300598747455242180903483750639998523698808549671921836308186703842016586549994347192452654506254091298073387957085490508910214412026747747176248829364585381925360833091228560589420794478559006820204900231792671338067025934073347677023393507053776162171957929224274007346823098490595602791699576246079732854707278253967674156212172222816302458441761724692901334438208299759513836524157686464943459314463767372576248333661294516925376405329302108348772067641847620096506327840762348204615842545140004214189115193853857835268595748827120114833834297147305846078091149980768701960950524412779827621490161871972614599873235497843990823233258896836117405927134504081529348394615121992521377454446188183091220366747105273578239991710148459333920655260305100369566774046122483548728739309068954758766228540497887536192344864075471710430206672984668578078028967897315450488853322841161979768280475857030596460172598631210110688971587446501195072638259810053750900339257335703843889455601489990938241878940909052399031601731283998773104318533793267787253892282377110741345691014976179750226318763228263973948004251830804112467340098579185859825611856437969152729156600533493837735981833186651952703115971252513158532681565219438476123713274839214533128092307467781400285339137358302846549880886697879857955311437184054531011320753059008071373556176499105646342408746814262629886502368389969997539306651649495188067428804331617238200784603858305634962466369260819356635847981287317523085594456413550307606273226667754496062011761312273171122700287983951707865225870694276195016475491611777163180805327735559297769436161331135009543423078624367584307729393718843119489756881536036329070953303345347290716489453850880464886290694481688027814182252619836245141220675378895698695302405232933763993990570993709340654546540183824953287492733504386605233846556460312045885977029159870544496538156986375264716520947584129015843569002379161728683762083620951738739445280476832516019094169066258847546050507005144349010000172564327096154898407598151764032465276464796441275040423337410314744851409253832572091647054268004430562263506049572249024864093402674833629873211150588877944168102729074297482311487719713447607047202162643004945438850902780283179172996953608963040718800938242291127558679827711835329308100254901790903704583378164128594442147856740608339640572085165567624341411768375953350200306232968064852913083464898878986823386672324251739702880545426286477919860981810985814443786320874715995996308997775630903179968464896751615637942261122171801771024334262601301153372235993503123579076235920617440138335232027572289922290045621870107370414629227665749467172147577955343015877827306887672312718819705606625113345280032206068181049229766535499998453629145360637480180485637218463278890955997614812825128850445571650774822190000193252434365319468200171494504031160288461465453203699367537480421114457383696045614570030265877507113291467119742640818339630163097567108165510740873659456965212070299528302454469328090590414560938439648743419896938571359774329341800774028097208909600613731282119735412456617806483911424102662833158746416269252726546749640028913469103950106410133821115232642342900187676095438374725405527220829040207482532205322352116578850243436979348981691667226529375793037019413283220262155842478696443972132773678794677868944999579638440850120078203746658958579992419579826375959332516420837082889416607714836781409342589621911034497068176359847505791469658970034169520195293916185740160274167031077849462649779440712507582380338526838851740155680370217785194135429449324249020984606780529884223394511900002561198374495191051816571861795229749352332134307148332830355162557624291601218226380361103838197495592741869256969721488844236317412042319080937212017139969610320664804172072079767973458461533568159282480039572438155436102331247754266062078157919440789411763813432997569799522935367985365029910795127345291715564617421554656902725380898145891636288101927844628930181363548424731022894387812309955862244795054679642920902293115789985446224675407965561916609576346293412832812836407396550055503683629240129606866896201103268084437464635583857755333810073192849992431647600683874026003768207617817152909247644099241761287093491002154885978113299395127726117619718009504114231976398075606076765593974322604311472548469455644405515176255596040739592506032288542569367658609935915634673113850316159413444604295671370212953827247171547892996035949448187156829843893702929179295059512518165322167248705277012114050899134531652198024366116731134999076054932207500336976641138484587980497613599991388460149584649519249158246654280723334873179430859179329272399365885013991795479842350327989861209632529494491414638003559499967277625459858618707484191858666464058380226896031532334656931177849472138254484671550459509340028983691486714400763641404434616802073454078302836294889695148694154920927901023890628275757219209743619231086738704806554398546420031334364575807551669030029372996704436540657752446069911994329431999585746026682875904017510496915896180879296445139088824097738314711896083574312869585939101499148929007747210142941991281285724538680619401151879230105757065544844135212771196844742432800895091630349855873010388996828860574548851806656794969883461253454833748718551094486299270255965272541567097315331779335408935255862689439337310696947277831360566189532159316158513656156123509385405489899478352046031663819181156722776295107988659688551636656227543707084976725891450725420365238691948743377997448492966976566894706453889564080891290397227275650402864375865143565003920502005664329717410185987175730238915176028858242292488489622691541338576553981616740709790995772795493054255265390618968428217770694509303416142199775727680058128578838148695908445892797005934871934656937409428686863276068850684796689154424993164043570498197447845353976718527088226223747181797768848918140183685140093977191254406772578756601108207151222069812285176520851556300052873663807498487201911934090282167712065945217788145708386604073315311059841339157048313508002154861285107975369284446009975973789262796383416949526034804900177531743201800053182349731035300204206802497329144267604258374478623241393902199530588730415626591425189538932032867534481455398752782470597050058606415769313272974711435301162236376144665927036057641596351242526748360289729856882460654522077927193341223529971393642345639555332972835598317132534286031142329893161886710890747639073646980026545017362048511651277512150434664009934631041049970743386779387973606965082652248042579974047719988363244189795208770347172667204468783292074596291676227811925473837008739722140356521220461421208729343383047032053880040343141181402504353639566674668768911008538027474222619907587054382378610836614681461667902837366680258260843440545597314647566723645827461643477142128956225078392146739779195557617962482515589879559766473771088684171450968918019786010095957098481982500543177040134972495624667301314254447974800945266995008472403354596730043952757885533583782541345445854457274195969910023400413229156704928394357394641503845362722135424933153898033033537311409133348691080428414127376760095994364408494660460182600226024726969358944169346918638361768735139861978144120454400386407402114973958889066339786995365943442236852776082306732757216918979998766355127619743956951826853998967539955255320491327777152988366602082570031151741374489325288011981011304086901341074134274264635880506816219848437779623491339046323314407980276760632350922510700835404976778340984097694222199487572394898590636928761197035801300179216783498026344961321376632242592076589298992793020919288264214483874698313656038652458422582532183533987282904792719939812645013442767040502748713294647712791308856526707748153151073973213365717422647926269135793439579243584625383474870295824928975332215226974569416604855920152012863231063599898696872419723626063367186645999219925029496963303813662759457922282405430850338210944440732002652859354002219920511133460459925654496559647187387240265663118483405961611654262718826256031744840440850778030693783365533015278631724890669342357216639307120641226900505081477811690364573185000335614571891190075700216413521734367776459955718737758035806410495191406600256472056251459700523431974030330004627306628041025637676419609615963186246617568708827835126084189762340257709539481383208488607068630704380682921838783840759393420369617793631273059101994775399379469482250076344867457375161797861228673124654124552665628108610355645259714479611233253840505634724188900245932981773893732353529391726980448547493666668805551774135103563003618640644824111186855745270694282593038664525031120609894692094154178797735563663752088131161850666985771101909908345909613357060660000582071631494865370051977679297724824110408877805452485940898129022571115518394560587694596925672599608074664349076928011189500484833993630649355003633271762145408457693113767627718118990154497755908456611991163356247704168268769925958396766880682019492617376511034048605061836818977411041435965884931674906754506093912503145825921536989594895377459231484521725907202693378528540219397635031737722689673141282096638700980634519830338271516391511866546098987915686544395656070892133857100831147392365304906254277649922780794715293452661373086893510658003223267187371924122171885113243981742187910578413843766721846217335035154220851506679206221376134414092548797297245858386802451218479325943934300235943578319888966788969399167522429156133119887115166938555438697031338715350406283342220485290002217719076820464984745942458489304173973799939979001389490368086870350596813285997117499150783934715773168840860349888214898977812524071348250246359994136952075844811468363720109574741738612546979017294656409833042100532938675116292817010444806946815444309828660596122565211144640115362674896513593183219407695343270977299845070343836736901365058456805870138087703523640910169350525532798010745463782836488658085879216301460328160834698183745169426841606927436391313247244839339274506941850187761246003957109562755170697541206398553506737942799051694893782896352286334038356589893602318049123085067847449258029701125842160897691795971854343970860633612378481251752559605297771758515851580943395894498569851775390219393774373534209369856849178521935019271671921967313467957658658187346477879787700842576136280153611764082650627657426710329732069642322871987522957965976857253775121884355166234713274976936618593157408940487213024879213324660521743187492131657292256254063719933738293914790454107933312207026941657291351203189736657631008725992691110156940148545659627245009885664103033346468589030127960582001434584878925065403937594728691331265133330010342224035948222180964199938794121494789937845038671718638510892292095140968444947999659685324016386558021022246421668900643646987602008377491370160962874826685539324465418299408988222344293406732432677123559103745887867773025438878371075116469645128408274148441859629236411826650953569214031788916018339080426366302450986016262123006585120040116551312062341568575659530674268275534647130843188544971596255905007816755580030449483996779617331066103627975395224985358112297143081493930907923073385046889364102237860587469905655928154869910997204265169815304769516998253964397416769855931944446358195508991219168564520895088663328011282531745982537749776514871212778572758903047531038082553580999395450387287058628046227158602329842511336497387456388234595068018961326038417594010038335729888453200903343141756204540322974136674600294731944925999242800780641113594556448756179278043306460250177564227846388185130331835832446522000730621086085366718072274320042436502787413586165820018494544323645208831177237915661616746045710451558925424295608743182692471296546617539623253421063780271097874376413324495398880528463439121759997048122549133248440727608641130777148516890361775569195465660047241153888575529855601836406900297899996646492958808154906338581561425674351564594599013260473279481822623595597620136118563791949536501918330465529511926763766948666057805358453068464849000179255721822593575912275507619941645307579548655320550175875790722551770872851132364368634356142588410430524717704654682385101014594290102519708039356180539992766122271286295243265466928366927142902907511165852721515033724532532665922853903426511944605485408211148869305998956300610144025263554043069072840597281213539429033695082312625267063424605587930541496822256128754767042682313676598309098976305014284373593352562478147230221739029613621680138815512496731553800754767531072662796146047412686612184248336166158692021257815001783698999564779189814649512862282730614337783387308778051241785682405171514054714749305697160579286375669261994814813406706165083006084965895353560894358678072181035706252849778370570168888485175770083111956357363855997801329650332170275993332262452865456562488265721100807027724496126418008578232998691573284523614639656974483166540595598750010144022880695399346018837748029159249239510601682679448260872540792625946795779667498069814745212059132687687763639744489238477496032729957291542829781248566791405522957283345187703420142571755256538727451082766181856698629528455377048609314119386190286173941722141572148577211817084355400455764807273931351131960643426213874203773450999017013154651266309186813804412844417127714228485677051999805665016695379219322053553345846282578537484907648278967267781047033615353947782288246976620558050249490086165627341438778992423143183476709528822222779466268456287893097205058658624898971672941522190330886188496955287689237060056087659583698396798238574965328248884444315665340728866650642973041511115602374724029720435596462856456420017899989455801125589753746404619066415496998290774373690537479265789806617526664607791702690106209676247715309887541561378225469718499576701373431178817065252268980936954784363591914934969319089899260473686792555163257814944293485086043811082898950958252694837896413673535255009812805628777548112083349739872134896967460100351092547329147691125260601908877255874046912650564140256321305687075980975683037275535027846221847270818397439625343061556990967453899227597424869532207909775216457012077297349294773405884069075180589053607429064847124834434520121196940251103976655679852756816471796912384222481671327647195096684597291592255817334269079117382884707623274142328157368077563472728680121886717049656097642706079314201083735327653917629942354719701969649349127783236381121132229442790568604042995054873430458353777598790752016765743179635316318590636492962293966066574081028255839141588220749860901199279786708554790281291879259246118302921135223004899514167931121949892232970725995773685297242361251566315863590544748828113197754612064092211784825538214333053833260659258607789215264070001638008654011071029928611173896771656456687761509881394346832874233902171618932151965063271777269319809770220598562281686248156763504969716639174289281714742483949760498772576537023178759473677970445514451378722442195629187782232225217711212775274155411485874344003379096973376166614810318145913627972007110255711860669691659448295831669069889968551147521787910060849075325322861232399700358275255895997156829486961080480042735838196507030357284812949601075617444804080302739346127518757908008871216755078345347600840979650573988033165692574363289812471820261640551402508494227059916530752111847394783833632627691053070695216243891427494658005600940363065236552370660177407694573273598436126418787370603971059156254883429784859455979069266383037162216002446666822270743254239173640051831127044581940584778181486823789064860431438041052505817538502235610124081103393738649484433403506265159000642562481506870210771284548756959648715765623968749972648045971096858044295668421114058258349204419492249627981320631762967555968075819882626798486869821471028305796706180119092126616145747954146979967340788502471947086042564920378575651702052138288728702429918524305361677667882915038066260509044211107600771806802378883408999495665998376778992089291769087258642661557665242990803379363645954707866225092597548976446230738458243478891566175786992201775889916885110158351348733680443458550881070332552865632668093028582850087891440806505765146828624077131337945424439705473928777391685322569978124539824539013026760653847901793909014284391372199910334113256106061997042982930874826430646461356750766826677225309182504767114531775672409111497385057499675634528637582575747575229886326084240023079975781943874373197292551553837258623549574829575751849859221807229053239861105079213624526273643793422025316064182106196419041875893131987896817174549840298100793752376626857127473550619813945926607706596544099900540188695524115092468366149784615605230793888260703874507351717534734628855540605121104283349174722260864531654164549544806103053043369552289241145085677537151201182811645692705413057711003340879553124407881076381891923743691533292805301849754152168162610299085666955699767828393785089776328066055429141167704188511877556991297726478402724606491903906889785170300241693235875419135250192845670280556120814095959836293241299027725782409705999623047705870092061431986672195376955969911750366937892522964640261758574144057817927774057929594993380599417106136295080864407721050633420509523445857798356389805538850111157295455744312949984439551056527055285991459052454586845983733546339343287406777933317557211396287089335222723469689708466142546090051116703971501962611542175712450607313306027490261041849395652784457864318901226786077436600609100694259310146247199410778644712164239650689869018877317540049331287873689904451459503922325877875032609936325917026878954187319369447348819950944014251096721162904666685714678307795151356052093741101922031229018994537461017142430765389778159288481973335080278057178512722540020961026829512967060481737945324926334348490118986048629309981914969389106519393657442491594323223460378250850499159123665611794633745183220980281898402123083936470914343178422801613142326290292507968967421635195119273906675267662529336361663118708130454603707587117427603965113837832577300920645735065617522809102921323536808991160663284922381060481893050095606455457283704661271252322967970393115350995476416314786861078947924484305524091557335168285005248358942818313270141106635415462391870617568190260962120847720749295660051573646400274079300189351610242164536201796485106798111143564144128799358979799191442389630242803483768706532398786779056967287716619610678517986754768914366468254943821225628426302851640217062125409545390172904133373083826630448976677808846423704366369399507119928479586964862379076531612403203241381533940168967675227384673593020613811925716820029515645035579161041309302402174804765500935861818780955708903582299031430595002327533750903689170828946466329229403568604650464697734966550106506983787576908891746338755375167959157730198216631692852143425329882397230616473774947453617382858564303687606864993817182361880370130175278263558642202404163231090227215623221294479811343456387448498897262300587148277948524776911076660172484997549135912500379736296038061123835751099904626989536730383028391613224724009555788859227540058013028970639933377028596516244371978560246764223646550070671101425223217448733103268525264357103505932903137749411603610428541065242539722555440532451345608035028478384315465379778208497671520938462464355216902734536649021527773228153905390024947143310215518083157595006881189074183050146802221333435332868692912810647078147898710127563174230165279464096320869325211973355942566304007312341373176031900189576930033505745288249749166034231943420675379076009568188917314314298677270159619733552521652395806854218504252487117669829309004325758885531887158176731808161924153449486995464826883311937995324137662624741269696006212567110474260610383127013846683693654965616459346849827925809840657102721955751300349118201646962391891402993133476061646991854372582244720271506750065584263139176241635591777556621616645676881875587949361200674504347448410259663566580683761570920152908149897461991421482490956166732694157340275520462696607625942248207984365868774277932366476234210566965176301139501885478850949560145342627807080114856318742424530944227327370395088774493489333636993305218189431211920999936795654058810252334753654794041299077734222729518674521751243218623044818964459501205044968803299216362435105908772468045489799852980574363246423626702691061419107018820626373741693273245395547899863075975940867977244574367383003727173367208844863196524023032093648187753398522020046324453424887085076710935210316807712893287690282542854966773058342287440456608807338038964872174412394841144999542932251362364042435549657902845401830731414097686274154999247218889918128757264191013291277155704873185821299317140386876127842534118280166550016219828548125875847071861067366359455590934544804864193911514976610568431172293536881045709804293006756507829829872470937240457744378526093141186485781794456758949256393391741248246891788835109808073723226906484129641132101803829014751672804964220052542408317993319164006502155439398140674004166676001115187024972863907928301648337156585309874549228582167576321449451900255516250889008423915606333079890583450486868513417267563939880005311329027998220428932231033673215701155631613220250157913843968657302276812054110943394027811769646926451770663811987716819347136358151517947375734023976332411963544505843228913310876476883829143797070972835634534518623061553376309230547657746929554548771671776217119129735557514960313117229959661163141040399657271461425781842082250977520693376854733334126540337650504786134979161548308268217113597127715097517927202960959615309351202439387933294931933980097152486964772783534043483145806062381028877233201910300229324006377455899904510947925632898986188513231321999202665745495269114670434843586161109176076914677968696202099051317666826144156272904302436432412002216515561206693891868590096192630196151913430755349987628924104819794600032806724188403692509851795296875332083033014945072259133358486916541284201997677482516995926052912652471130271156558707579337917963047288564836150586874001781830742144039676033204604823084191451979485896782792854682888463232988570334273073495041758567358083349641894702601967507972935818493292079744023791963271671545013842907383407052624498363198288295490055610268183814475627762283755244248876420837803978562457507441531023034060747158926645046945415463437136290448792255538154327469647493785633653739402665029803360111794119911142360878595377909242462467178998688092451901521335150864719573633106781686678339870106441366521587450710102979352498545619088125700649812911630734677735866462740797376681000087586779309014380955604838396581827916727641043236916462852378850891777986406466395571694914571419710166206279398518619742836890222708413836996445931547860174444779113465601030036072304846336949707832182275611810748377899821459392989476447919592507904176778448406624941878827599672075955187540927478419639510250361599193438550229126529313330945476887909937460631220377426069177324472261779592255913234463443595619541767830949068372833313105042492817631328835146443346796735466411926107866635118602157029774468564833608016802663068730902410151530275670276548292531020033116296059901276751074629547617028214962652626778164022295315019848114508422653202685311558152576485630398521664237430043824471530087422528774575297697755232584181736304050383102404898694327263570998106540542062902023862858549316074437252353799957292131400543943563566865084121037127499994254618052225318990771569066543421274577658684562825625544518138682487183237239184477322802895888801385118429056410229253224108739375086575671431449562745532025151551754440450344222397706557513421796855192954342398499246310630112165397045335625029070781418183709223247377564392896499256175331013612150770710850209945579384748765187603708089435038576085295168723465296237036911384250746852271418539866927926652005644503934134966514493842615233965745458058353775712668306430044584689301308234649370922700318664373571258368755702138037430739403026940233435406983978768656045750744453153353626079758794023549741022177944082383257447445854003142087717035286710963520815464543609054332771955759009577601176525503315462560617625979371147371948286433899324752274977598113268414373089986952876860660746696696781674639677229446497209505131375496708376567126501729146618828559362103072357311021032955739585896348873957460195556055211304609461424795799060397514004883469572115098856770786605098091472696936646133754636134013173077324925974500574193330520723914512778941457981164808489447609790247808946270252134512586450344347657187465151179042629913968932308273817974927582771049615481152839606831379912092481287786231371408320639056282415760561664122700525534809008553028704216204993352710974250701249608659975459532212006568971188464966175882375805422455296901125262489259806219334053771287744988522461422173416155787103702868900996606031854127098941149047499100000221431199501022929635290406186406386520782559581532663035141901959189534171475810994059162180637059975457406860188024315340236206144474995624153385501434880785859731975639062935729186647660361858311989313209829548186147744485565873879730429646983445715084634139389685935306574150756867517158405461460009315334900222458535613028787541726102674578799078981329827029845760820517998404948177548138526555879948348486113548833381209420989503240771563326204961227755801008762921130581370804602474140624902602973884155114997742568294440650161339575235434469250357720788169759447475490021622770128940505146115438787687027252960726042009298639964787866325847792584235879493032972421075790910088726822675569945224394810934015823721027269911431824114402608603035926329168995480805734619186513149495443888142165293476376392263274827182384901734649557290762102938462420783268528316046553625676479545113504675724950507489641071621951203698165514595069326665928390532836647924918742979580122183440972721474072510963866052195719008375932625064837740853684295524800317505678340705679830224568808225755199975247863694694512897286366722171413616685525250072124809574289254333230732866527700871000927604698473564961941909000647763939270434969935506721673779351519256303586137443222381290408373197529072399361387223519473755943496021481028822212299062701901354960851155348959707773913262233536300580431587815729052115365908671599907547862496496967363336537151632681127649048355239421541017830040311273858268659603168656401299023901954537755701878514320539883146267760782996258790626038219284102800258438566858640205500073188821534640478565886668706646262600377749922854975844771980973217886357746138906834511364058086876068493935816145411079866620985229510534716553904405755515713968273649424782364907246147524242767994848393337875910358865181216494765574782405254962546246443674689148535982445963892783199942183152152512601030891067064895635949443310409869552596039786872175900817336587843309723755363867807845181638076336419522088648224987641952430595549528535581262394841033137859022544531870659615212981927796958791703867719503167560762921411215130936167270773154879631381774765299519564587848633634973192470334549200808279342394524619783011383126171036998723977369057957363751779534087484239116399883110973141459110103199380497414511246420551903963314383622848171761228787826390257400217648989053081755262041279787069267736239655014170137741740735825833077182407459407818844051465939014779830057329997599562984866233108856281093064758293089176601209331539138812159945551947934159485591533931752873496446016235941149651964475650446281387403973795461303447425061079064480211397390771390177298487925216453719049090175357794411659279341340992447017252350528899234227071518718803404851330695373621969084069674556208345572342748302762920012610711097968192854304555255176025487943855436976888494026507046045483353014072055371745148161094032967450791260386620857277607560940770966182885686740885432806890139059311342199644733015178475739046744499289006902494025851270453694546147629349627524513468840235248355062407215327801017768782771972475573743606168491329177924571073614753650848509176015836131252584878499216894819918851308042369602986322220316791962797640725754299281488496596343475359958893772873653016502066805712248361546270767415616432164446348181322914418097978384048335511370721500529622040205904590593476275614154019203297784344183071831318882548817597288892379139608421413455263563245453742225202568687203473459555808505973919835675199545106301586437750949445358889349409912571489163557266951297224190132617391212039390110998667426221206629534127940566430904498115491105726424789256331143605103241238604419438309331041588210312185318479363386542140823342829547184368154388441947940605763991791219836197842183097450937814808070468134810517428633262738640439766023402064235460893357230429816751560226243607316765321601909438572140934720183809847210270712150535641118927855879322523014788002295531092491868906522666527814389458837172599068074039975815269491467365066104836568226979128774473824640549041284876866656310127655489874112667789887933807398280983894218715983867958322048874257092632680330250361712924774858654362508734563450918056923149707154133088367734472259095089345412765251159954141245467673740922741044370810137081064115344724148066858013232591145675334503551278766788826886360612876355683670528862160265403432456090561320118231386183014393563802208050896936650688424169401524320561797555567144566377796013245328334837373169767344777518891841036735374382477680111935979636895992572019827687095924367149248611108256157048458568228183944068025240259657827495106869033478187726240310059061409971996410149180701568842866716688147402781102305548300338889302098653834292753555518134985065623195148668957664988091513753482781967709268152000448543994043154796276720581465705423850685755045657459696975574350203765035050182638437895281625760366042218939593236391267772727624967422874023254284385467981450684041938826048917263560209992020292116166590745695197127773070403324043213612842297488404277628079894334734734218242252303666541012790323169325426060432400055638984031647733688484824898361835450627250033486252303143487380174431474599136153221513778826566329298863053396457943260125925249746838444485881364526650689576365382104307788332114802242970704562945812391225495341296658819335103910087185898726667923076715052226781534531285827229225994119900817541081302106470401096818811455590077005766744132318040478990010819846622053457670346395679130650401567003185065638811351585975515679772790668310626123244820047128345161640146317974853049328361527288763278566269758327745186784475819027852123104147204672601056919099784961646991673943424016043901389517547568962234981342215389805664993973019095005500246005523660101866299236345663980157871350418366946316025028456828317283378122304408315088303437296110300145330242305134073836277987881566981345813000839083807518767351136656347435307145905863696294779791972954582479151422079707977662970597755518443777513965405295710665124627417230974334597871516118364363222478172851447256104865977127358514465439033125446353830630636157106167663981415336431481913085210617341630921557276313451615498465996258635628353943628390439481769254474950878396100385194916754165751084416293633551300783034252498167244902270259638584850542127421255257179372257956970082018513243744449028373867454856857516005568868963093980051615576769598397690490197424967737675620774207770351437597706950723905845129206703496545719531819974881376940169635872089037995372586158134402095913336775481932426490171139410266270381911564235290747864735732351626396656989693018599357775377538146175778895607138486331600267847207255003511279491544298024599020600404967226751539629460540017058174764062446132874819141071014594670571317028199691065904992044763428706379196707435290088215919304898931465775469004147619320575225960435395218718860477330838648460452255582038825595520665027483887406899675198188590371819589382830351203552894483270677034574276219517970650758783864406334382935926158911042760316782896492078469656818883184698525630044058601112792820411688025492121712682211235143081380076811785353787867343439796943818958695664664764736962325551129432181518465888678873237180047634239493223478264196713969844170418507260364489630748251476831146683691927458737123738617429280972586486748255437926424051517997046127109066296463665400680987553690452109237005825961787033106795664645403405551107788392847341678869490578897018008363800419249731160768615937144110768464789705597177877430237833527982450714820925072881518957811574792695367217700750044004828374976034498389781539428298334028526027011212645066213718499382018501593029315518120478924655536174040604301888063010770615246068394909167512399337029773421703948770513501586087813606014145819831630343211705836748447082405737983879491879573330481228208730453893753756994576580516642929130187298714954630070089854591698967905042833648100020130909766189356101691951282074771388907159047243680449409734145070499521216330019696981412493304319224479684872573872668802310392258489529098454500919644203264690261291846186758639216093617756676672059250690005593712624218822857939166557613012908811692640581202144874883520876961533131114749783267334591276679382910320663243512488758465904151767868428138285451243889797198077856198864002152003855488710460759368886845270720193368851138529311344556938894274282592269159537325753442074987766883497259945829284459039740222061420722123566361556568693390140048116694292128824312622927394334727045262141033047388762803287174333523151688691064090511556636169070168031691164236542181037122009214174281477520967370499505582904109920677083466921032130473885805064373349620577417521112871570159866147573460523717671958222316428583414651121355743238502170728706120588117535281214604791526605004745788389462546016131465022193164404234755033539314028108311964877768976523718429071515134114836069031962767646348840892669882882964288935971037275724791250653120770400741401880542149732264212949386220619153391104512994937316336821474751404530794755281715290001987468586839116764902929152801520584476089287095450096493296878750021368510259915032822711747124862349269214887151962097789970880074504876676363469343869063058077989626166793897459846195966679445802479786976401082139346835460557843357297156123156333444531591589406827450555072656709806850132958533019007004612256172388059018728025223765560916017470565682597460093885417249461396811669491664244779956486897794555823980520959034326530367874060715700132516243594227432542269000681530369896698020775801326635551049658566589278314557313448239597753125489778645006973690416050133953365805410580425739295585262881518513297548626162399302663328280201961284855315365884827170029776352548352077439741640008450654828498622724993125530614020399177973118843165337379257681439261729956116327263875923414021736279863439357786659024561556070023590634501520976064737556456288923839327739890983050463202199620362155307179085944227364003251275364223537242413578057227303415537010485066519192911060063071759485012840504383960115167274294082774534839669330405850132700414499400597242465314507375502362796018755296862217651301818171411962558543352249032168930930532891956751749976992861010798407291144860700066424309028929603750539802993839681745141822047935469021319503396052643273485832889984050640910292788609814902427353912522229899025505717446690870507670436693619583834461535247775594021575685908122815731597905531547906201906051623613162644554428903334716850811930760290749081330516310620368246030313679919839210097343685163463920008806966516528792457200160437294823680886536803054233353988725326184763222215217742330011861545079227871668360586876203390239982340486030993563009186569201093914424198760003127463559587937816022314999190333550087513277002472296265788516793414418094471541655401012888415327648921331606634343825253178894186020082695664776048158698437303245140454306416837895775147582549105530225885368114807746159138358001888183490026798696461768264521737991203185816132156373036548010951961483966292343743334200124855874858282797493216729070769754537003910198233736429386435674022005460676044229140584338494082778697511837365870372523049517605047595073975739217245196938025279639052942376610079836494941741947385303444195977150850329961077251054962053458653450422516476079154423723395736334580064486999908984768213698280187063292197384234820386252656297156786635258058735837177828920717741142421179964132746166622589576404442845033761029401304584838069876871048425279144683082385610884225231241160180980144774032411969523533230892557203011737488778422626337412911532917318910897889867919488637879323143478604325779439463898368331931106270933160341953389595721902638947096995002788926426666693931259414041984607676924301956636316043899926169808134514456648845331692007194126560195939110175647011797576676525443684836086779998039367353903797390164420186285672107963618558346114180496606121196327613893255747070642529355712424080335081939961088056541362956954673028567286907809075883025564731640363105519437978678597655441270491725969178917610761168045262752144594123171838559638752508851389150767201943553780202824217664062486758163052786214440249876786167576433893583152333167971840949535417741248727562705579296607438022154438811135039925370789262646179894487377290712916586476821380355096659223250977014303524741314885844311220182508675475013517103640013284255764609761745428784428320430584543158601063479842941944624520850820572407808433542470833267619808763082931821836433550052542152119433589824747944996103692867493083676737294415838077055077517290998177124050292525676938360611102319896537233101040143328386994596890584854036387793103438489799886812318796348647001927081225960843291859300000591910259951684702057131469631508606288917843764489510165857193751225595679066836286933895895745207057438364624580543163911185774154929398348904770530093864991294499172463165188904329552274283129095884032756757117686760514141380038493673438296218518907036091099045756922185621273685984774269776338678967167412291580244286723180617989758363729705332137467271516282923449093001656829470280843090827275509581867205328043643385583493548793770396954969171971367938708920364873266609827148339913027908670321307378279918906167646754283035992844510270464949682775717317988961790741866700031451783890428362962079350031698228157471046015984088843446920571042557413838525850832946408747336181656210750185729332123046901912902242266654956941411507911534897191797558195161738698711670754597896038748352565120199309133610776259930647029168540783003933275962854078636492402280952598535279568483570036175940404373912184921877030325699010651299928832631469670395219739660782978112932652366234981069807358978820021248411253143933701012729702021413045112564750708259005005606844465599287552969745381026395682750596552732390492122866194541570325628310367188450826483433263752059988467758297207768600589134803247149718607967435230913305848889096544506859522553414662162376732958236322062859453322650534090341012453324939264948930801302425781377037445889744963269726762379182422863880276323604183218093055099008706148219026824072981926168504580410155566026716893838768409413681777815371478992802471073140423714347125321580148391267075882950646100987093946571410828878835581035738868949590133916347971694695044764904153985769084648367425105468553593327601687562939949924272078531703527362141909874448702131621200973367966178632285591841650861746374988529556710808898340201708096803283547756857072340827692372172477023240349068644338415259623935976635619411011428662776279114794008726554111677972899507532244574296638705431477994972433595001988527033518084913485779454224060809004837281606188565207183826783654566839649304352225401652930306139270160185453510857626311716677320390079846015127159249803673540348776127151632096800099020870393057576184966862530710511833940404878742392555509778640531124145904747621946434594169385351803439364478664555058875346669051642268506583022922555908995973205304904424215853203567410477520437071216617801743421042250937440831848487224611941167578175464126748356120453995636774870359982025470643879064903002285403298250824834753748165954075255037673338153397063222546601099702515705965669812811922931878892188660589441869648972770999212569002443794459080074802819509680403021391638726202334091141013084913278410044655035341049941904863524093167051763742733466150882288235910238808701963252633156851347193427095762151505698146176680103225065428431733685426970269430868023429688104547685049291565575659805005502570989118149808557306578552903200453561611318315271735549371884494928096424575345325119162879917437574842328365452823257236998619214263269227474234718074977014998369104843919058073020875132717967515959251067344230866120114560814497462135204977895892148003535101571335132268501972141948677843707976148399373597929997470078690023872209573398294050474063427211946948007827875872618287317974460379791177804275324657077900958221698527843575050974212998002684149786204267924703674897478308182712802855269307834730981014709354571086843408101475033709740782067775431487144536068984387524958252368215339463868953724447750078678666441553131529535232092054957132646607996090602099001150138630800128322767391476482555856813001997592220890461085600449425132267314860060836269627411472835873641201314628582239759647747449650816344727849599936988487321621283418191926062940444288621078608520583942968306593318845040038734266820308821440778141074868283785225431925402495286927696188039926444755818897478501548438757828069167436990968499432896793702841889352873420035097468901272667008563119868998294370150874523378526046472112145821851081217587829203163418865259563614149549558374640381061382838816078241451353923147337945198580782770852161196867619634757230890115175497395824932795674734169416011437622670431033848250563220633750724417730637296979153083453319240892461768765451697457742273725253662939310941251846013038858691904847789315796477885356652763196851152859571623692681899954353040850031845099180009327203213027855841054701413875663560203734659406070441933270525661327453013267093754517022159917358158213005995831129498357844909694751900721443018993904653745448850523205121186895547533799888562339957541294075357420818102976493151440247526818262783290913480596767638477013193457369432848915941618038344137786409915619292380287305688141359694574577274530384810925844641653108542943847468228967290091294706187327135816888961050501260484330086055643186058167456348771042147622928676767945321531872544905830763688784570877136665208728073932805618984744805912844540846134640913398929739140042053600571269267000923312142458319397110892780821655086461536694967058443307062386088939551008627947340410950418625346120344757931669038410472148393530199283739804644829194773970636467092502344460920701774012567167010536166058842749771067486080664431613824590674494400916243768807453401608279850351291039823035039710510178899581110811025910813789777418727427100165914165575872832471738521854916666955280914168875356934756482214580927795415217473444724222979060003411969875196306659061628339990691571853760870775399778600749712164146499977663498875434390348262597099149694968959501223344992638864321806440700348656539699598147021400504339774112086768153322143582196786987620424213088379424141033482880956020296729480783957858423359975755158241313796653454801485334640648606274381285779137517796123346064206130147077509522794285032073189381196006087523770470921391006918374813219122986284249848396035908805739226520026830510206835740427718859021524307026404147289116528383580702008640556512105214574647734687544249184767145676961359100692050439878394712260965533682542142874490773552030701918538045870567451538137081326372260290196783791372923532090800076133126672962565169069035217975374258646350489049923267592892522214370044331131373190830168811712735620201528561728775120384488619296844162615074307520860570072743855181788779816250668966552418907590730454907592713088883619206076779665596409373775203113013991707375953921205597836450312693026291284901206442890599953935950120333125373978772495386625479832598928897502602751271011933813646537180995777850272139864061058610209936875017473599289246961548143564132866348360879423641429327434011101424818457401275588003255287204399767165523209867023516003298872548145046606032164792172804664624658046557395792767726809868338115807037064708309494352958018118885025419840313156875349108058599044658982600823003986646570381191845041784565201113890488869278713840742814246380312775513120983791380385944529006670706941603910233940007074733888939705086697990292487865179725513797835072389100979112468639847964977286426575191809027569761228122732799774524380491894680180782780743625503168361114644691492764849387897840877432621640164356964045474777880286885249417239917669969559872942487366968304290309923522752299245916248262682693839917289227731003230859626451607657973878794179502785446096678212143588414425186102394673665189329957054832427111009030315592462893816515992637102114919819181799477477384571961420806802872477955363034721894138234763550861191805893113398630912883304007843953594624427281253011892457547575746029609074279764519789181531137763145410009651247447854187225611447785095401635262916101379615543597809245422974857801719112936357112108643263934048190653462674573655302605701809599926862105539263440583617806573765366072641715336937920482498594100729974876206610806282319190666423983683255092766222612338043840091639092641721420182450342685348247854825322462029113721720132864141516395885314040424419238023102779838329926854198712036263872017244554579540533245059000575712978482720548767884786043762101233713455847005517038580882665040473948238150710797066659551056666139400532267818087307139665210287381970904850709869925636014442524846156282201388986659198640679523840716230303223686503664535155739037253318497995842424770921369376064205347259321954249691385939955886539775287375464303761313055145563635865638972608910079495753148840661695273362500956872893653044764989989517076150434719681013046921235723428407667376515275471880354230519353658820293374791751126562653199896012843387651785877214100001926352374982916906135527637019558511652960344436655866295485905852756560404448549276999973972817664984545072710801643881577193494237705407293515143488012452918649685341963676635285406640818571768080469883747951473161214864002934318873084062744159420197390414656261930514789250816709662060814176084034177549158278513062390447759233790606875092907963695660574600743120902447371762351975979217508713033283388871716758408842983892117825576238536830482349056132128976610046742835313579588486448734315825809462177885447214499466827946905850376176593311625981847771513936103134437718226791985930393035200304989163657634311469811308264134638439035090344905101624676438613629014125009364032345634443471029034810544838131438010153853385603233460276514762805901843975277807073750717101200843633232526072224558010783350132737597340619597860786507968528311751104697337571904957004776351097837533269123977873762272369245996805970049040773214118042175790952706434140155956614719559369123682711866089058855340908116777051394206813691396577251412666549304707650341264521447322673473213342587952046295756063228705501398804168793328809299922145813200571896855407454962151184952988476149792214201277867956466993772501174583394707091549798613590574283452693309989027749192608393739412642824713919704894241983625329611064513120316135824697221936511345399759667703072497743442657126789353481336328727082318773811092507001228839372876322929650873139729141892035361448464447914217096738335928851294925083401762547209521260335921912804940296786759175829162407833653151264741726601334740469216914272624409933663904644195044234698302019079513873647694689718694504897827950062280300108497761310929117195238320320438352019137732126784044147678494521410875224181791354645956909069798110715281008933927175162817173139072790629967615872033030019552238584780802851483011252916831160237697710809519011125203964273344546972404066212582117775255456668849470705430642258587545892500300484318326520196322784611435593342868624104642954911119883792208420297818041579876543130282293463840592350667313411803436868361211807454738627528704454073210952622812422815331660136710659214578526598407996081159862071847353349643094521871623521382009101838538967019424636281992898885328450316015032064303711926277390179429382647593787013666195705463868298846516188724550704385807746802439403957157135935884478678912965737040638491146817044543403386800823047936726621303139051918004152578909033911828321594965002350275027721944783388497320129236641219904049586153854988784186104531666713427802871698237554376809055414797531422091805765326902409517067844643656264274732713438944672243910422163757301319223976623591272868780619231730998242632856897371111313678726063504856775818351601337953017724922135455898583033894834529411706143802016888209750805797229660663207318570666853169010856397069645996286007561729670706880806638844331571003707382417487564872328090529390255236926431932674842059829278107599401997906656439728050591420595811778001515577500117959504479722129754687460095102308611673363763385249320175055344156308569441511366200258520127836554669221993558303342884891393317677779552973571657961597828563950515374202485486303658885089542834432962840371030635185352188539806205845597703003364505864677990303728864700578226787791204261519924659692501494878589319241422063676387320954533870052066313869745607308639435494803134817158955777299584645097664431898825645458971088508010062670927507815461955524543332718370926819464827133844011826066849340978779545954128460191642238195550900482436921968081371197787597700891657566893312803407311846436430075704889899800263731947348668458075944155938385465294951319726960070731726332259277673621654498264338779346755439388225218810768689848786369192231816576521800167968635751784842548486821314600675781595371847349312566381118080060076642532756081316472540921889673326621219285745554762716148956241852598842963753251417423886934220973520680524301640737638041790849825846121270902276182161324851163303983408723768099926376142055533866853890966045068512696051146669319208097583770803643093927196752088164588879676856337802789768558048797155468500006533620823838522698672050097913991514155365913012983380583011233544674017824010496125420034478553659823248624172124999805786698705788086102121329711552584078432048405646917238953428095584643433977480698175403918186111470570790839080917763434831060967939787792506934859454207155507639404545386137743927026720801643570236293294674901996217095526791811441892256921471598360101997496360476119551219331677796778350549074588905432158660395243494250682637923098364684823529387976877523521024126663511468427566571661601361930035227286185822731432746634167940133562259241022306134259992441890565878684054850059771471624526065120859400764706380787779825451359714170134543502291034953141717882020097853775302957669538725834108567083050773126383195650185735693875322129773547999493473943291232745276319235007086230102819021823185424830185982650924935732206136136575883144758444093650291800755931818541775282799307653926261515588396835000227750415691700285618684471448929708291471769300136062308997802991720471011176363111762890698723990072870643841302144737931783905476587394053091177733009076017588763972249644239086291135234007576188409060416244481341361917299265447975055432166426410207829732035104472735800528648770450274466562832764376954799852145547043779886582020585225234817493604386292017367780871976691963026159401405770564091265832837849042845419768228931848866755205000520308132909964999056963763120109098149456093407664816609576677299775390406400012899606931175151164062346865797839059929488841459424199853087810749501749887465578071916765328435286618284900912870715786525411448838861613657779175638595092917745796765049587748814227445166530098293286074948331507989742017805072428673030055815054756882206198614427793099446163943678474907609526600790048644734298397389552135542504458144421611921311852705859693493217417705846849514181353044840796216290543022106436246875734486595680636290573903585490297468917577482888293555116779477938238168761638871145279468388210266378653755193973032506887351827011859101863353813083574159227355126868632545819016758994224842795296535691474841694805208314635483880078201924047913257686586897206314896857313247478383987153268230683671090051193863629115584805592882389144775588823528678940748217680169237772369988021340404688086128984196648950561661564939142043457765546787658819594668895140201669746738879509576278775866462007748893704228558501416388752164841848260890110074923724337292451984237611610171296331542222720418770010359580904690697871290197408326092974325357423017244374443088655056879088239520561496238735419083259342943731734369014799878147691208166969893640135584381202707876070523248413737859171737517393172955718520936640021114297819919960705720486387876266810296168519287294290914675280136339207620911822095308621107246575154510126023128850370929990524612467674764675764876774668132123937927009563347830123937541802890421453898043698226042927816834345679278069612120279309047569454598126746933424090909921062836744656003160338041831826182040806535047190265125358562472821929886778459516242188265666864549609750649941030681038237932375678655070147016771203047371712913900841341373055044354015346053604168768462955145036882732445377938371430286741215950767460725939972607772954176652706351132583099784648834797454517408301078111872359486382190438587147330355535333858617738874063318701172635822272498140951148370603448751574923345866066172062303293143987193949040274489696350546742558661859587482391559063186027895444488620431890047187873264064639040858248320529241386557627729539162913468691004816544768006591117851344190381810130618434400545742725050434902548246229576079027580918836435578358002419681758814419288586417165917566993858051377800190488885203227824452244037111709698381628073772281795464665291136569427821884660428314214165685151404977162427507317069116009292051174055889212197114594548640884431559587817273342502876135262287765545998832271347846213769634688069496282595005434876736858652188207595877460279708994162724656333294375137934845049207459557624778750388184298524280178148714675012513950276414944910641454379531979137889971910118758010451222289904489344965561132096959484693050530484640843545765704505081085880599903017401972218783614798599617073561009877532740378413399482057029577586303847109403981782845541189815592121332807065405284891720213942132099093297360657121840516057564251602708413915355222968834693253937790446823340248197944621563823878295909107424307782242378749355415317713605240149931084865912352464319465448437711166326200868557873877508407767082527121919967204743696179722549881486653901707664899739960322156265780053973488969024575961074995761694796330476757007882931050934220173257111916398040975173457006465630597179103522893945711873256776959561588863847384296765342231188659719931593531318634516037964877345771832162278871451855036835437783646903804406915946767130114054767053526039010094957878902285589570732373928727579701014168805438401405595219231533758469361161254003684027533886542639853976342262433354433566467599832633500177413545824454701684335814641775997420591448580304124529500402942510603291972746325994983433173890826975024738935284301419197414359569793478397743347415441283881945569581076688186102777482286867501707498317760175727906935528609822334789121407154158524743238433336901167815618779198718581115836211230666191009353792460151260409927046538230346447155519028223098125250975832647707050960537047275198633061556793559550458183872444368548374795714509472555881528872917530382525335081692335401971242547849761667814376430805825118827415456450778917666027116455081208038588521521733461067119643100336701616338403321157093086174086756691429390251178890313847821451379910174706174914045224046262417194110402310199323675598382316039189865095653919022575389341180203989192471991307291405510798735475076792555589099077445964404052589095312880665441919611390674177473483224932754978095743794752551027517693862132386955043020240930908864395875869873222839265683087450341393426028630381296569191231815734318073803407543831897704888739633582323352090746694081902794078254360242204039509076737003928293333088754393942621755446892794968631434172713759486463337892924831494044006115977026438801667849848290234523285418137344766554683714440809177447129332117545430092793991089822126865585025308128097989854294340924626636971899364768397020310157057133062430406181543043770456965570913335016350441498554173527577964703180435631305845761185563222319225861095323841480370091362358554606184684491611122679107459518421682641830467182691920295594613670666571510100925543497898473348511691526886142948808117105994361394957504105891899788486910561274492644714426248652514548931259890575620729575273042713542797385820454650188900583280669501015388919213132051074549383412178810235650832909649493541943405031112838984766197147394706629124771116226479018158587437271607415356015382951183555103662754895680382083635735755763947293593290703315005885800123328525878616143571467124469944765591638942670454171074093505524054199139553144182613227103588690790302853920070945262673536104108749437626366526005266255776972471968950629919561698140077409903138202979933315174467326535047127665973971071166405395469474208336165887634227752678004974638509791962094671475738359083377291076199588790197095853988927715248723591692492169971286661193891529791020757007624470756317369966053972211550098191465976725656620089092821823924002647090614730172334143564081431308185840589594988851861824307547110643209844165134274879948175540089584568135815162243421660104182072026524903519408241987187911229491155626624724434801072466407744507516875568810516181016674906869261195090588785211257437301268214935711678097637999221536078479032505907079379164326337914718338298120427344344717776216421124479771758426505854820652113830854485335152495375054579321549868471053601404896079313423676586101160664227044541565035352104688285231022882802713917635455145654313888261733801815146954459587918193305479582533028910799421710676394710853309369880412695530152641384716070561145208510270157335918932826550576796054140515970778223178869993750895107722331351851643292365538962287816219730470332300256249550986926359424229559948788631417737613718349002874926759924616894492999499529055477538842175002505578202021878512676038009658146305018900868321879947449404252199290553612180545414565909227389212422968274430255022726153556670000336275291034846714503406102510635665800938945880793745640153033538421514819156621694088685653513883051911720237691694448127502290070645426316597720503133588642834654499065193549655386353216099175949450667243817708194866355206029022820024184236093818342204421312696429156103107598993240066157290044094626434076520133851359155340307827830887837152969169546884181744420270827259442791265708431823226136245197125094733690274087600810439285821053723417257904076523343018050838816117329716425134827737938187814932811480609678396576023934101547885326157960452596349017872545613881359605034650868078591983113974897810832335894116348985361376992968919712830301646868779253226944181020437007699620413753045023623452780500186857622728793018795119141221937986547144899709621420788890243423583672368280405809548971824231194732842538403395956844610552496075298402197420424361075842833904148174130512591390851216437348713442934874386573240572407297135246795171218871715014962658640355948621074627103354798890774956135722446344954703635139199525987276575778171980330817928320269918003973460798957468150684977889009509958804860605999464861803377643583401297338571719786203922403834328940902515647874274002510039162726743246917791888998300669375609265921913838768390442612283541162304099257594255997303082033265579555208055639259821694871713160323648161573097181763483858890477633183044989243688417435258812678291941761586909704803879674527245201700067811227464117364290487156866471385429016019060681348139117718698751784789142674953488936722238543933172117669801777014915670331530074440548720487581843741074526681188909963455277843732245959596848542953600841581588738071845149820264085111412930146361621725900302514641529693618978357766578800342042291126313753314297831401847598480632227189648010563199331139899247421732401171894771031074211629590462915306216898641729467595969691661829329162957638264355462572578141112594660745685382945569370823181632157933824989597686751445583427440860042794842191142490950151893463484607611078299373039785044890919702791429626738746018417062861724126060849084752377494835983109431286051563075865209331345291978294927215356457524128574665449443370545467680934107735407294504573870825738334866835875356131452002379285983157336083939097403565855192822836548727246423963178644043688325777040019526599748565442581759147572198475625677475969605590164554753372647212219909819098017260882512719822490443937056100408528768384641926529936826965098302997046650499860797026362584539616672030679613534947809623875173010351069249407515048061910483677566360466824975212979876146711560593051531210300427484907581760044903125849275542482221579079050717012415775701087388066562101032663041185115602981867281340785419432282268353309691921643316630008503844529389254797051637919658576006482487054692248845283307756957079007293603643083559588335752418787283010537211242876662038389824005680306650188912698538213466447192380313653065403791935647038763655733755567632592602749652575019518455833223163756500811755594444189322708363656968611263252577819473547401837425840783673008844298477450558803943554855849693769389911746534592741572864662991574119201440672587757916964785976663661592706772501133610462245231124390766565242302405191997680197801351035657053718148005410121723322310134794737906009485135678913130376005255775983604337667642068342324841448925573476091613329677818567024671595759497247873658945625164838538101190379771346831464232354566228817016206890600488243378703903502873344324391551001403097506305625847443791412999929805752300804372103642291632747154899746971993746922538370581712719487058035483711755476966349530964788801058001899952905052488823475749769833836440361928823330693949059507635746790713154551267679291601424607643880358756362008518862341379178502998472964098988793980653933813611717188639499445332628495509535119021730714858417523783924483608802907401537638162772378860235116095362518236132903953485417246002497016483950052705575153115618033077092111912726305573982008606532061770111160057461854322604877912881179080364042923017978241897779548662179642470011601142322367706278525247561305025873727652886051063728751314945130648734084744885535880484059023013963511990601980630709934222165071832727561622802301286400531255805339589329215793741664815449201968508679174153034740433489619327508196519350957673898616139904249092148912422593178253668978756167205659338181290716017951467983282876290899224315368824905241758970733089585772654481576348929144559180844783006942975539977351897641553358471833548603516173478852861929893894839587613520806104170413786909100593000210360972442309968596861632390166518381758165668649851064400557373452381590695470810265948872134708256869248879847638873157154690431945166537332023917733112511589863486040037075142582745785408525457266741188562769408985237567436107391399854693592276258483133626708956331720196290095505866138730175348357905180217406191304847900975670110766182678309412192571505949812121127512070162389031451307333562079926517889259395319954677365579459571536264246595127058430709771616593935967009248408277590982202713968382765173282641353186450095017440040159481856426349653921893656802046445329473786124599739867794687198612747797465605459270004440627625425308591876448752897080741391992837746779763285024628620099771840245431877689464702177329504062584774733547490401298204278199835185070188821009121851230584105281308602378418330233547912100795104223634977709457594416662859549583707561784285209132381240238552547305262636674058631658995948868086558272403496400637444666092395296622953948546233557784128431956784965128647310844437388342372910869225437059413500919725001328947113769447294359763769972479289105928028043387693307799087795340803170034815129328885440267315101378621651164578927434985524898159790462544697749068399134918687749383574715037148355956095488765325593112462309253361474329638206809602754968373243446229587229802837452192098902874953381283770272198468285054346096247730533527447374867492600680843617769645593768905525567858480854608495511107125455637437068261624774131873825206170687991731120907104482812166599996275465339768345506484013103869739578379046890835982763645648629054070055900736613850838560354755244782788404165027330540705394494766778557038773834495118720792423444658751254008620067110211414142066887790241325177530492018348196393703145520206180921905403903753118477548860682399916311283860969942726115998049794143627254062581802733880953087137775995497945991750752790318394680314616374815193501721328640969063845443485607706944912386757148158686894144769162012116852285030463403810569763242406592052165624357464124909849091881382964206402670887008917915711132917505827277892458234755377936659207034648895751658411445164816090020525315067869235905349959242027885100159570718940239860742173297318160148369331766595814475441635014608988972764426715418026273464760763431351777337212920738599399004168572022854310762496516561090809810984001384150993963778011552389270928114858798165634005934756287272120783101889600076317140641034896620090060385030722100700919707240039961588553697575110078721206030146488774906900337491640645433428469295620456700321683676670947483248424385741092205947319538111973019699425972719349256543504594714534512943962574748384792286903110850349415042387178242965413073520538280067055398270043883677027314155174723328608895779767297130845222414171923455292985971464697728922499393873679932938612648100960918889592674322690508913779397678990734483211151207770813117135983616996912464290830582764426064074833406974516475685022701383905191966690378064630820793491855417368698702972721539140437722598635434423173820122841264208919123640336880829409601109963775279919790984814600523034471189686513386990739817725716302952246728555776588197699407430938576431710385237716989182883513173491023066096486376628288602596642293356770873542138215015062037560905449593217148205821769141999589494427290302800848717887941187219115902476713397829879255977463079693149742676065408256235812250864173444198713077941391155341353211115694428023923607253066253987282819009935545227237449789109498926464589682978964588621470010757280648746022729760053467130776162698780614228299380867969415266886206554034935413971138025944239678163056792377111244813309492359441859790689105739556268561095257528302717459259213106981481360448721423650348259947906750859254679726221723971254752897542481561828672852879276979638046336908175186985807291759810207442988504891669015098920138034987199153976848403096876613182818449360334723408171646405148639524566539024815842226270559108698452010067974517345681278743969651713396859905810567400159407078070489811396218163145283403330204542139437740902278910473889425764905031685254548582866000757096176275364672130801214237516612787848724298264926546151370946059086250602892014620609328918965982054202419335059258347919685943428633308633173876674511622371263364756659537678433780523525663384218496128907745237415060148488953562884367127979746901547866409899707218996757243699497222029269138124860543908505517548084294687885455573033525661128015167079136989934709157026170618214902125234088365532846779073712940475283082431962077542736658975608693452613948032888688020393619830515022782416697489823000928290286302641197385008381953569470690406392007936354777205235639001031349471773420687026989711759279931859212648975160752997397548481358299542776029892894649537083501109954260955048943636964248056582445636356859647297838681902124402437453175192293357467277825945991301148590777684122120476988161864989372820803208179323508439624113359289848509408538525586168758177820689331056143533858578603163888491800625727833029203535018491360254960511121146402117122913019238391116064189831829579829858841775000260821447608845022904475476841634175317063860404516032782853686825127190924520335918919908769985388835979948255962068684756563093748431847289240914401833066866506778564262227603487756692961881411005532447265900095656919106532305227808530405520490561281729084255986190017383070311511412725470828381688056423062548356939019687347229882651239446366368315173981967828333386032060162163687817261928429771273280123495436528905272668759415524942974609246393235850116215092370976130286015897719581628505151666866457018732381573515355497247517343983652160930339286660200558249543313177303581630167519073254265919418152643050741538127207172089999196771381371401067781987375875967461532621946419447596127436315880785931391075584025160432731516739322360040490936961288248964661621182329181330366887442394858746082526228740448768835477304681706209377274199950983307665793690252634904726646070725171520060446552932525113753543140450041909288586573175143120822826449076954151400784783957066369758202946883909535365366085229370619011315573336158543191485301516596169877353744164548390812091683725277235935718052524328658736396763215460234056957843738189612737658819399806613800477959229514707745680109611633540817602810993930909852820802979089216267122467955108643891869377867410847362704001711444195369396503099776417856891423422838044857054833602620244877768387516473523448371723449697530657548682165341449226196013149359697385208922786430770297843908691042119169618006649271158853501274827415051300697146351345478053777014745689789698681431813948049552467966882820595906561806948435878574949655952656630105540445140416391687367361806395500863014675331989538864807532247052496019649469250756667119742346048309741813228014740194530623903301237713166056588390322755257572799450484682742345258529762693012770962296858842542739508662969916141588286456127731549926500756452123194598851073799936796251860610093112300373052817441261868681617209498060026060618358917487325528735525915968647178577366095222020146757370517596672702453215839084913523931421795171982002313235507745116797377403402753334266325498738692620534941568885832775648671568157953754540426673257588120142230122459773900839254981090295773021861894343321233048177564811889919293443049423707278654414363073387909074394943809131742233200556422664161746074394666947549790946612315186797030378255881728263410126991458048018400727373590506294167963613289135217590932840289466313996123010542786696893035949162193790724115647962451966740313637284491178778984079506862911237491758624365195804818785036864092474336068087702921093220068415939888300143186105579871400950532853943485214625630801928974899207670711793481705057006702970396919854128184447379152909622252002971931509174792468460310269138348864891630269790894504763090188461591956328738133749720976614959277806919489719762383925915828973044544524815360713634806577406505240347414423908845471934328395982919999313368773503412505558376195285896337194320183735177675417678598671334460915919132927292785192248646789671746981440765792849377539078926517890612359151638354605182714550549711611358241871746204984592651432700736786261443766054946854824754648848861367452217890748791998582146585503915876507478374829823909903688688388378661605236514070084975098382564689799782740444785541686217514516347677346936310825759187185160837517074547453602255057526332152933412024109161060138412114083929836081168320049300189643924440741329886491547304360585705581773846565260194525595765413642939827546254176024371389927350548025146252584091530292558134654602615100917171116630458182193401214587386265834012495025349601926397100963444486239282223700276694805024356590803303866500756512948898558418460520738715059623843373622766416368237715814888899694632493141298419555212834800608405168145831709281689174491682808719521432449229673520906465442583257004601724781017067421575887239302860122044318505913260474766371848728563367500254574982569176992011183911102859514342761044802946297130768047689368986196258615102300544465863782049146568478416124088443057286644905604808766554778936135694701238509897709457920688295215109379599831342466450685268110974900869409336327923234137806533201229644565139862434284759834301054886788664403450023637418828633253362982399596783906394190509520116263682668912329666977669461951056606771946310940976707991728269815137166559757686721496863712042868099428104986719394738006513469199495461136709774269142124274043231410418477489959019727088301063993610027066763728420446599914803916246827470291821139721280282115150974957804059741624020238655521793845950037908284079339145929744326800236297691556895953883590931009309639034500732137713176223845245469374733000975505936896414026399133043272117718079715613558494482927135417304939760667243861741639835024607456211387061956547798841247774787483584070049874763910448720921784631932709556701075042384539665440323593648997881891595647037463591903922616006148344642663083628863731050014086117695568877976972589540655326576024134516473855013791542607736021625858758733305187047296051729203181166314718050675575727419245501494954195871280632403222616851910099246323858635319868657058526428179435492576993635483349274844817233137712098136730201271194586854971625683722477950857455780848417873594920627052306442231559957284840375711453213445713852242744352426715941121425889088273069713731012675898114096322025612640654649184586520774905636605744607572862774689858410068031408932760612605940501234502029498513398745293591841347663008416757430651289429120519622016560522581793093582638716804224078092874400832580858335285118568365664271490044122477617443842694316354576290964832667454760508845211870591733689338879084451303047423768081584213740016614993077729152411244029617190507030380874072720305508244978994825621739959559766357934891186752964760877486908483053659206536003275800221763437413649387941829084695397541381224748728472411479972838072243863549611112735353010579473543813022722601369833189914670923813951696525583280229714102277754852567572614782707315946739597386225252810059775925522198983870013628066881281731834714093122556813337928568082422571648344723143493720956070395917455285126027090553343564620751031807808420681164789934886162988101530292312615512751226549979192440396071585424996341491146376666994112343958674488349979912541708044966801983457745863913287080596194869169354874380334361229722110587611178165475046842802940245437870044738404222295063385700475148866072935753436682556336293334813340443930158629283194922769313322854681780207180486935414909019828600430048061530852706459281363498764599474950556431785764439410301626602888749042316825414579839128470495754967006061773746787638955830100938740071858718736587367914142248174989904348175362950183586606442828086643245122744063977003146622794260761519334074985927990614303307777372537698064520113694663034827238322947117271433444830270490385484570388624742164211121866994240557018440639764305963751254105993159848218328855471467965188803049052739019498560604169392076088982972035503392580881344733382339959157705733044470058246080830013335327571538148861531191353630402087352289881350691421473809698560518293134307867472256116388141885178617627694430065127969593325427606042983990529679855723114461316488836064185286803295767747437106425803815428163742341818039970434467255588183364434401341502812687125138759136446686444102869132015251958886620037493623007823384296306956997019592990317935764404969155789228859615968174281858658141985199564467001341599117790220692860249121200733566642466210799739158894292631408715034260547980414855572076602155789240996236119619145849875478604543667929482437653713057091671571996446574831746305299749498910238413392811307019918373048467781940698103517284703633260824664074761591369223887276650876453111581912965054129596392748736926962153899266194614013265191333267490037144792925381870767166256183261528256946048849020162956319503575779196275165050238133899201246280474308614355574187760273971619505898870949766301786725611529979985175081550543273568205221995274964707252712789611584376650311050530147273145091429671197142750181392971512031789429712965428897200733851066231397437847930481364865900395102020203067597017114375056676652033754426707863573508062959846090553835976155666389893919476906223554087790322368737768074096657771539832923844416914696566158403682909784322556198377052134238019576186104797585031311774408407365293484249838512530290471955395615877684436816633963975958939883290296900069537487536348619317311366754737386532730133212574954905691821585740016245756552285197624908136742620672553703091429200184997307497664980372939189041811136201604273072294056711741744431316284921574664451770466876889458513426317482301646470847805073019558737937099633495452879470339277770909698148809130598036056652632312184571148215198931046685598690916594192169452401310484723063125087314305420513894442363307117549829001538854745871412581056510286112846722334648125643297619813224302413544799836660409388721451204981934890835942444992303342526768975805469612347338520991141232671074608161287154625574673272684613087655521213132953336149459003375231422243581737106778421637794405254155854973605339966239574028047278497965188291105502627351060970159260693712680092675446737502639880666609402124289562021572467483076471430458395732685933694165945285111761905867442116811199778034956630534360387697675482464273657467018233589097645363262869022647655525421615119869598997997243093249088780115964817597316459955472459421870320904172820156970343864948782775764296350768967882272259360643100089481894788715583245045237586579282600589809621121872499317328723319774933738243933676054766677085794748201333600178310085026589080526410484415018015380949305268408944310177989362678614837590550064258857174300822197760785263647457548400916489355875766444535202112032487659320126953994986181706119169880961379405548190116782298854166201893761531488057429086587595757116025850305260018298056940446931355467061141584500257938158634686669935678407539492213941373652559043988035405533382364332408496159455824180730790015954569121741190256680294082447237678210562675240860779761364654388467554024136210467036660560237358596257275055307666862440380633471377658719684187422551768852287679320167645671027956172659216008028717633825970762107720465115950587067592217618364886014654602614593181217835972587872816332830328427473612788297720024847033646178676117754251842641942171549892141529323304292355940239117913089796422799814415293964488771292628168769836323370022393489710381371159463888353393470438743380072893314156476463416525934688218227908826102067122026202442663304444638632954589876224040841158197188809033598761916508220360381116089345031158954076142838598266666295809538215216925511420781547314244903125433393149064656479403772713337445006063218821611980814040728362245346134604354831926419888778781447408357830705863368715991242512128360820805140762709835000356266685230968338229408247258156960201572169105722479733916357422070425227689466249456311784315575642669462596981164541570150408325382476956761794916122408513354203149237510027004441811454218585233776732909445726042508097685227236753371036142418153933057983199807724141841703400583654116526162419666762143604647262409749128049191913125199358870550290084229156739171448642398755221201499131435643375326920231805067127170030855272209744425487150885512701178725327160448285042486741877166276844058294547315160956667490507273722410392979579533710199357325374059765486982803368415818070596382542829326192835245323380990543341737358004173086507014902134112505741535713978328032481227176757816459165288490516411948439752337492745186638355632073509616514622550417879587182765909347643712389900572740755462994278579843301229735766426714010745400818714531954626118652341144443578815221171540195468840874940626629908685542386952970689720256069374574261288993659291798694844010812951862997182738327084309267340917303950747181003533175268335563430536069644592322859225763303533874083669954892921415656925364729723490373370023047631616075146548328562689775957291591343584114289054558043285591987718017357545904177896735787396468001232283205979593907634617493169274763902748147758128429224843016528193504610958578576095357559067630047465988398886465226458723080325073390001143580273570718341326343778035709089177127202483153241394387561592682336899882248259612681153824420433624419855314837306832170038230823507410914482133985899699530121304701436329955632164953590824788525457709925089797982323789462641393971170245689060826312293233268941824570529523133523845266433282354138579375317367161381220663496920920334261453544039353180668118454647652607082955340197563347576064558376986817231764046163060864750008132281432497223800986372896159718090466715437633454376189469319397672615263037909443459265785069526359864521493492123641757003822894457766729800978418735853963856869123022635687616968017029525004522463198615954648036287491798320617385826428346917177441729792711432001243403709439964274635132251139515750491782925997779033850340114501813706592299601928697442739178226442172314689107920537437251426708039271446988250927418850091955841370360651247522264390881930313993010961845636645378646627811202189626051343859493164319181178624010162176561701509143905624295611423745015603040777975046667822830464121874755262287826426235693625916697112456783407872403450242137120826932084273495961548805428764890550686412933434188617235458620554220666493365974927034602158739738759759730918010300725853686378445001109700915567155604436710448004904933994374226336606014719893666809694152985394473822080155306835061720150693708055911236151542778347324911199827768869925870178925479449139604843507952933712064889015446586527285293433830877406994634423962801764035915900298931291002868943568224925558660245547648557019203164039085932655105826371869187137873709708345036723010213017596841259058542811607991683219005589546261918350514523983013395202785766612068282819592669134276452730196447851563869205667378508205049189623136765827209608334068488099972813548100676400597961804569080187426324871835466001425245402939740691466785897827336401751618938319156611037148331468282962659660476145882160884635610877335277751815479510551835014838496339069224574358670297877735251217905488338139791833664318348676624609281559037140715657314698067377108925767292672196854068425576025419636408259008170405915200341312221030274490292962522934353995672771131905036556806642612213002074931460166232865259000280603790409362774254566548282145216514977460981486982657900009629204330728487831828685002897794573366179818577043089267511704161372575246712791423488232773679630598311473319029279376816338482414950003384512660781841150651361620262653891088166641394655878361278105995552518337517100218403465799806018021056782180202166440074373994243513783728653851984354157312829436728589746508436416831546843297169682240311518875452683564137177729086075921515853817823955500546438890815859581625048104674467452927607418236559519894751765262888448053820373307503349620986639929306421260354588816595490010161066900511112237364086817495782228937754984681175589915705195729066205331241569907041135498367511403978682956505253145755332539831322983184835593767140126479296006017280675507576927627106013777560399250411560364389072852360258922929041260367979753430478781370486409012881586714378794400180040321199119836672591897635209117597171353055863201649172932692599256747342412178601052568750626858236649429006445739402490721150995989560900869112576909120548283205254088428415475736898921880158124829271156532769179601556203796781253104182150100015175574910177642440141396831881956818813630104743001780958367637624031287283423392403386837364177491486364303848201791619388358525559458477607605728793047460915320173721957028634703043706301551519163141312876641937892914917155330822576868904928431954183256250153646364698474956195610219614071621982497103789982327408079774038016515708363930254128044216723483284585181351413750055416826199782792526154845458179032019721059323565162791353212170530161221240632869759363913338640547295360014356338830662615330272929380833807566332429154253658241952778019215888183332440539443069809657008133729805781853498074887220856259381687522270710442555708481364725702483336743197846619377525414383902751450833762630183007243702822987677373631481727952146118079149644104452139293041304753560749490435977170324136003067690267022345130295104145178301181244564915860381080698446331688243036021669121090495321877759626091490728857050049578562864156396116164639026267286725078761756383355335516738549704477926773377333729539680920674690796900796770963377471736938273611528201852265930286354199790071381144161099274811391628630388245901149673534588544465993586970341391934336812654771902211690753688055371158286767335180888376057626794845047133166372278566788174656466659507517179078507245912499001917820990209796244291992829437977283999904533946522953482448998428896287942219898480042849225281133086116732036600721575960639571984420083547756641951578489114512797431850294332522496845822624376563225801076244986804884606891681278633012489947160017624273861596226140829283962418326605036033742651696846327845573050400761241459902400699199303868191443333202299049686187069226425888402807878372511990491502144978939704106330185466028100705537455410983242025524894226128862776909858880312486587624784443659604406924242540602071118647550859760304018661500679948388961171142516060432005553051015634331521770856903093103530585417611100059028236881448242667198809375057383979614035102832776074516189341163848949869441332597689245332465850603602141781645662532293260897241384991182202726320430382639468271477510540411825009276513358517937289293972219852950872096529654589982390618024749596201374691799709846477702356601416016973363127247098204378971295519923773142131798176814737819610358852766475956894257343863574152766139019299483663323397177965428587036049191225004317771208483030897616279128707928707520657292524076311596642983724577453061325500474162571564987606096381801393160567714646525463797229017077655426674362855618651594071923252439887906195410559538083515182593064925195311079076435494625261038395751446003569364189110342794638267504372469752673656329649445139800731407592357693229742732804081476739038133437548549424634935085696261515458024414389216165894454830195451020538268161021476260995784466081108523237619790726389095962704661655181487358885664045379342705477981212235902694439307711285080668651515718452686182032415013623332851057168067253132028472805855859573057590330823534159489464776397027754889499764315569673224375849370147909013644690126266759275026664265803972393104986413181711339772631907884959265309737466377531636926964798169386144636605379513843581546028011879491674981164177172463117192798753103273585393567528252771896040546815590237432904490482758534382256038980510504818967119504877910368824423725673269787243731769842912015069915789434131949727688987711164201039305434028224787188273460605035240323585220513419826344760287914046873396040560668224128603182154828465926772215074034353409516652549273088208003709215676916546883782303964954016159488339245486234429138112831709931508593564930549654501378452194544919072187220154733329914297433301422473967542143311397247689740896138549635347866017127216566975964712435263909143126522083074675783772193751333040913124010772719790291570990062290316246986642745892867739623257367984142880218074460051450287914891448088142220825609781761467879049459705452297245629575641443387649329814309758123975022670724338540658671001881081377881765230363197760612120897573045259970114231776026233264481998168997881197841587796880597956800757759802267170852672434241535854511253170000852609653480011237278249445756167671260160274652276529011441905936450238439461233775298857984485548637193548308354892838547804873249538436594438159688562340817061488603150017997553752597807315641888026028998958968880701886570310861571686631283630854935122270797304908218695713399068431346954241439413294987188566788901156614000989644634998364382524292148197447493450905715042094067608751610168863072000137859490786523509344608940269405610978183358413952328810742047767213623730968968704346957723194839516557581962829026046810267165905733149318926532518408461111142684774600411239488327054798571721717407859241100312303198491429829194468337752631301893697365060705272980716072031723746978126806214865246573679541561811846658427229157802453221962720039564092873917737089440363500762043423143185357164929085433320532283205664181611219163706819384830869124814118360830567593412852074806073445007403019352584763513922946098597148194796381460712094105106471694661892732139194160327084290779672385763208726514992512577941754581634110949830483463294244217911102777372338271071387766629559131082632493081138870443909659136752185372157252896553563847174526023493032381675339579817574007138417125756459149963792339535421118112488781160753017148999275567856668684531924514580478317345679149643195863437447926918998412125307241002517980005559691523270945578420149292289052253816700877155880862826304140875767628127619855785152243849667771895667615401920517949113902127882718073228721436458766529016720157610960021641031368109593554077151064190491387841485268110609429510541607080418652932087258019911096489840671917430185465723769571591424416221109502170989257604343344092876518039764735077422690251794238465357090996826188813240421544512796845640905370950354848956272413214276096855197280785727018527550160588715688532875853085396384435759022102729608558672984059956279184008304832010008768197431146189240934090000792575750282141728704351081646802200302486712853151023654422240948347540897880238173995022269043673174808041938518237866506826434596310162115093155222509689606449737702024774489960508447143632738917978286626398649801168620726022481600331882970758305707082483093548629744003562017580643742637272128694306212146618746014022203815241660520958656001880639814220335017394327955817994199355020017287275193291042877658379716164082005104478919444193719790054911681155202005320030692052622093625397604649960767378305500196316835540245678541274988413517540854451470254746366263285735246107765226796680649715549504009914579872401922782613089438207287325684096241171403056442014258578091396462374245719790110641573810523720975359752793850186813224958742779891864129145235723264283391827725042127118106395582961949778119391637236832720210386535066523103471138566001422757190631254421263439418040221444803427181232918877421989006851426696782585236936524738782493380012010382402157554912730488885673596727185602364225187242030253689147963404077069971111587112123813454767717943741412880105458008058352497797331682047722256742811199596514129406733330784348549014024459958183587591668009993974567906934573139776456582958924959471334286856612851203165028884429772850493609423109214402806568430243497405357709494088586122841069295927608706353364255982956158134897388561177393155660296596748036959505411340814891446333187606481619611203490618482399985118993652801313147113623891954476235380147706716410631652246235501679077015052432006983890811428236407276922880534995379497091702961557415108139372755754506516535626530149688837695811923670783430987454950778771882715662713343852588801694074623877977484879112645101127357868229359180505714123958094915680525346328005136526375864444194964642129095919034975268127517158856884287343407174493478023723641956338978536502498831035625532108284033577779791936921394913560505403883469932306615568946968200083331249177392463553424911791432628411844875290887657333634043250225995406451021763009223589218688232177233007109645649731539533462746765873678374451341532913505577704968450873438368084536764601359216592715872384490797362039928081046847505870505550214415122459273493303314970318087869613729532247236646786651299693050152484037016454840288797863663419293726672391682587695415686320792142717535286860172413065439896049648424711256093762675890372016516065818367495076699820546021279107281878988927579388152872405650770264383734376824637483909762536263568779266175909147312081273063418522928437789688400602756308417562516107530630385092238833449112716039980975879313692850337420024556917159908955883058982011558980062248482163211713686230327035165081216168174223373118793449666380891494656573131236257261942963341681489961928161820565656534192030941690918703744761922370572216147565160886565961252460678935190732696339057455601718907134860799663913510008607666229922916232303165341582534496631306590920341263556291016809736758128379841626506852893606447822410722204282048046934705176210128997090336029720561921965359903112821237392893027420081061972437184191516884469867076620955287341689764725155286041230663201370973606983462983876950556065583586236120272501956865949262879472440302827456963033902756063863561514172576170929497862495081753841539394981272428308018787802514929002584794644528852112418552930816930719084352668899787227270414202279927275873211900134378758557608060669163638521423817259456475811353250529636585607358380107399092083507015756771433384117985189942954345491691402379323145629489824315223973608953024111820948174136854893937302154566635143992504326020478207570559450974171265128789382297765526599442405664808643173108402121165378376506793255730424584494331940615528618674490841631723384304731119333705540713504629562867000325565316892735450492637867698303894710662787609511024554085114113954387891340460373279654737936298405384297301470274725429845870742629141289643509997664541158163790307760680742558751786607730811107439950479694570613025981356078021914776024743578554733955221262122580648352997698095340548819120833966323409095324221265649761318644810972099997050916454989253631874089736937110663853955589432238950911117218269314195978319809646483704774355059588875245762892315542554045106206007118486395042434505677845345130442708464720442108728634850010239107036058133587931530905621271493935145748551160282559650487284274541147399507959930862702629724453841980970352160199452596037034093102513694813897538988408945601250388027024218954674979168154925705858016524475919735718460382020462419250340114759300111706524651298941321002200335860716748143349470321118507420033904861530322642350844544716290986687201442903873155876826015527080146490960890732039473973389435165049770697324845053967604121788084127880070313658078916678745217327286471598222795303948013081224825128976959444126777611793747451024850428351655935600796378997482877672995706022588008991183011682569391579425103041418802352942866918542140450113036550329156176684787601290920694333176679463283313937845598571332799273246738318135307828443916369897122909830823304294514429448434905470303973229071019393122561502272955080013637269959716051131567301122256403333518748696953802943761182699240145847849840379549643265690246967182247997149151345342612924996765123187532645475566054390386816881008242333269369782443561320792963019797705038551869038049646327688337646739400760219063605578408039068874878261895166787452460563135377096749026109538942312721663720689248125726674703719382096916986462914120238693393560273907409637480609714923648960606736480546755778722942621853373770019305200794405155753187722022525285246167426680969567872949380038233370664487316263460075299625568760592101883469813035476118590706818745775049917786226705033441343292608112216906212873271381766590363568135277481138195500856261642493059061579785782018771617828263189102269131182524706133117047754123336671258292731550670019705252375699704901989480749519060852773094920298725943735041356981896339612854400579290762909164284847039492797833525001832774920885648487333466387937976930021537866339319506963721073077666735124322767328350445910234007069108990410223634642956978896585412704752841813821178344082083275553000918429567527280180947596702661141676204269714918900660749349028096085183105672360140076383740196246234431806867326163102418446553500824412567687415127009190890322009124674519245390705391099413777916997991845877343261704551621719917530250009351508818552066097873724880950569344850127704143375801964615308959832937954197762956804227802870300445862654519312967279404566147108779129697701964226544257450769687457850574685929156135178371214953579257167723810286710315237079282915611464702177943481757161676897635059820159242974063815418504074105907463418346527541760010370604869008740462091576007617750861726006015207567119513260852807216225050069012806133268993259419358622552545552465156106966589616112254545501420254986797028102530326885409066732519388162486482123003856196521871339042722223647334556752785530528923260822475553606080503112688182001896060421578948162588385641987678184325032676462457994759011549393428260300548176708489266795596380899630508917162235546166340050103214237988140627404552038494593523708718456213942019674171178815823565654952475208615203013079070911664648425490760431817670526721490968282954109968297527487806891365304315535263273980373003158656545190100883827267001775737491376729298093700163818202328331512800454605202381363284487120731208194538385798765074726707804911547712481273155213708848183239855636463494247652310765486437625217105843788254332530379925937946543541171937169084753760173914411378943079782746042337350652786455224223049016322276206991219553564950037135902646061383106516314822330212289818162456914499990933098814809238428977436495728249968168338897593927456124778207924054685364218687297460226582375998472871164324425858981627765006732153433333956267602595773963334197647472051942316846457309119926500041924200121786151784457196478488082477469967047040034415682394940725676303280440455210565945173727340491089525869065572635771391737532379408569074270881352607398187353678733630962877344059955724883593480889022668476182506997239862339862468270039216344316476302450433562451174941986949234456364370317697916276569921165378496805068048436252704209139366029959224339497606734039150902601462566331802608772363149586985011418418985625568223739815810099564553310113667763615440572828875447047525776018578315086456975442769757076809595877884504205723481933730429999039652461505962824922832650115953246897119850793696127988672782691249270868519631280270417956793776612658324515998422004771927898028504642060917134878902177106034689462372799929901737047381667010623554956670647877473035932305411933185515008804707083290822239556843311529804642425333767066602507816004738534216231183355257095839854430889288849470277529882057534582553650890247849067489966132948721157971450878408790511824374560759847408856336885257351721472588149143986252070640375824462078903787067851912606272919355730546335900251410470494050006321275242601078560617538158985442621761669615451995844480189778625635850974296024261008999782242000029261740613080890257125123455784720435395290671156904175647179277340643631438948825398071447808264416520188054513529965128068059795631288437497234543923409304673618654566034023004567134095387069760221162826944931034143260479918838100609572595037146850190117860074450655466240508247498678224596553299898336974073118212273199636615624188011085404967271508498395584807996953994771909938802079382427842380659024014814456590700160194272561560751601404084485610260692548160723839829885769087685039425760824673700489602821205460105646610146313500008021725985166440973093845115404460778320805914549149367040054307246972171167312949205760736186845685528653683237661153697764433309055279969675951340560573850806826488067879789351557791502496716696518727499321216747862517634620150282961687545502434628936197100733251654283180912038641401678730962228364287422150723061117929107656429455007502603372356011727423481941684337981564303651990129164325289500436639134368092806787584383281290668608261567388835157153584701148839722059010502087005755119444159114510443320676679615694475431170774126508493844011124528314541994934944484764479690171902672256074049836086197727138634804528070388975233734015673459272518281626936478882183068627838863960612327817902601878469302456896271400735810884919459868291956046937624340740386922023125596317928631957660719081333825301197195907427557406651936357463435966972773966224292676718385056507171227213500423506986141887197125813866958074545333782592164029065249696333744832292011974390522925384040852783487391692951268942246952943011697589246345605984500023010037865260757649760049510422011089721761037016445472778069377163327990877100713716850480385777236859193226434538991607667623933971614476911574359675578024630888737044864272084083707638781273734254338121825057185347468378263162284078522461515681573815863558059200470726984218185282131678900355638850703620729528684573799487047071822953447295669380996118156823227660321941656232755969824669773143414313610089840800660411710188100004797196346974726875746468912186205853725184953853878158154139566703655615279168891548629986951442090454378600767723112729711865844406592601736335370230973021513178416779956089900729903282532136145651763867680002345971179994422129673236594435701472118641770942146680352982870931732106396147231449010524591548093177048692526833074149023958231566695371090539466930109848470225610138643938065670379857251026512596997383501455957520593009512148812659812160991051029121090222873631406194078160632306755655633533070338252156618111847954244376644877262996324208660405963667841328820695915084156885767954279214858240836227504268843777253400104436919995524991038408223635940261704533358603944228404615510231774215553636818346646768693095156905334021210393720696659367927738498903009841964912514353210446548943088116506261670572391673413836541681063013752216580138848313114073947176524843091716970616746871451193548402924254713181369480046694694174206286902460702534345714131102947190148293135548050928551109049860292552557831779027820018061309880970416670369070545633135977868116910765238102140321896754438343841017558137733280784376781844392201900092936521793052429123271004588370511350169477014632157217377165057299131980858139231234422906712088139505394462057231266280665734755369163985155455205304594036532806355182387169962855415543388345227906596296673893755721743240398168642653041020458387825245784717444846934604784991465166280103203372556845428299165470477924644804337278162734136922718092639269602695855257996487157574246162920296335949651906930611126032340969041769710279390914802246216256024863890643987825354850062343710573947938509317121942457063235059761510414967072705981339701048026781503466975333270076908612316265898657334340472049032232797205768384444138698792269885244183036482683428062680077467547549182254630458287462876900121085273005499641879552730774618846867553654141454922770191865162235935496324361102768311420770655685729169012443020928397682522697031110436384570344544375262301217234221141719432215815060392914817869084658928447729819405899676514953076339432813381475533041733743604654742595238962312767015830154712917950789617060886064032095608357947576770673415049371303394725722425398898153443920632618706333083002968708110134394106561823499592007815007319941575589038779986411302816029647251060011092372099115648502834557823458725573770895454685294654161124765557796959603344385390646524035623183991627144030801168237885367045375623877778107971439856807622418723386645445059886760148787989184612188813071742392254986831115065310607890152670997047701779073556603092688614893206770718242886241047043100260389740335281792107868940004924152753840454300921376775903578223309687292698050759130515923424716732515356362688037052239165979017833777104033097937674631845067565210051878811359360482942233408409999027594009778407715035846000875752333166347003827407869485551343499067811196703983061182239808758960452980553622353415456834202819231894663187915651446412964513338443597904918209461770794236437070772707506535753972588267300472948376735814773550934231348610665726419537264704585185682822184886901180051441473612402808319722641893843739842889280312262865796703578957715980529848205098659377708884352331894166751748737235120290401966833802893509469936997511939825618047836002573978771873000912497683777996047028760110781361186381178551375810189758685180809021296103342973760839901293579931071399981283392484761552170778246025248695366206074306815439925539080257341113818148588497311472774370875588432762116411786110598260919119496110312405176006856979246800792028571185606150450496723363703676619245582586839667875478745423987229652839956022707590541128293811087594979635192029678002625153069515514252120447619164254397878823348874996296316400171667938177525514401172393619506670151130926402080558135082188465637975050587734369420840988846054637016526383107048203724446486170493310855038032050363895891159501992483419792397937678027510192110138862846035010597454408029322217305314915908603185432550469807229133856229543567258701162445946716302968689768263250520328066411922454746911805294590421548133055138582067748413793217247299469565731855846047169826014099665571020568546010939716135683649405336438868060071992234958529788751233024783027059069599189490694322447182387038845312723948744536382998131564743422985135469877552981125911776904398281357998319890338810524671930247520006966691784184283336061209567597313161694434068314745540781137602466598695480276105737405380125779993610416526557877288019803641019490655769654140168659782506983234709935127468682709817718411937957127791503522979859603582203703608533112136489767134224685583998793845940152851800777923409446701439966546437530391955435730466567778497988218479758728320303370427975823890465002313028607682063835962892778621374154090462761896900430632916945790350788034272621564180582455692429676538952158908391626618494445585428099259635754759635679309891337925430468723010982157578854103352448776954923942047904714166067750549768251886259262667669224458187596566496969400956106626875222961189704150817213807134009839694407994704522819981502763752068006358657954921169966996949216877309502970353204284494479168376773376772088664803440666209551553385545016194806917941254939100989226269871310493568153395765604015662796760716839793139297886859684343436712941624166790178589816681090507200507357817358927233988429974051335476042467643895781178772602463749749008788400775316335872210770306562048086908616299510740440190530969379947623532841538452244008618361258466833335546913598426627366412192780585236510432575503561895864398277187959681286272560487679369505088835251734860227323491161373466263447507800909504017938461201564419283507119441819114455943378377080877055779467725503436040331961240812791039253101452396378479187978422729879522074017842050400246595251876601580170955299711224702662482984362027325873482390293664332365066024545977532919364249029141617392152261418926807334381096353673082186013134517383420881191119444737465216307052515366161540960902927455825046382336539279477200705352679202656244667723952796110043903589567285658775959042599840685648083715975688010368777441934138117082089744113108314607391337858500223970053719313182874554342105200375945561196479618727876920237095851729294457966180038123175237282859454569387446925757947289547505239807742194466295409911165950844095226301034691917076922817021265678209085929386656411797541785418688462695303551041021114556143532278729360623433381630819189923616965327246279848791724848956323234258890420580427726906325595235948731555377687398536551797917473708205267412301751942741934077320475648393420129834256287460943799397314969476531416969838202502536597802737755371698544594113523176147928668110130227498452389327750986148531808893290904158104113399953768478538586194881826012198951989016843189888201744825026883763459405777499467343098411697524029182932942353453937301075718119986406082550853528907183347215684230168554818102766495748896521971778014795079248321707614740520793886980603734288337885492138733903460366700794415648042342311619816190554335157455332607527984460736768314795474304971812208628127376873293769187227776593684866638397507429323434499175512323558703649592876972905409050511717604187274352320223598214850916253930152648522392866281386061848305041804153917084256157479540504101488462240787163715425508171208417481180041577772284031924661271109048705682933558386090917012039426578316268957283977007076248441953916641610059640571800439993497873342889840143127327999699881879612573600226051539868613281987861239129775720717270144732104008635781043135437387508044786939806696883619869798773861096283362734701702243195740226115929004958852727929829737088271711011047318858709918318893358435013346525629446332097341268957212681533599061128077402627082263862146603826133121076484849015275895107124076561362000611264023627549363611736969862330986417414791642956783625334358814427277641593057614522040810218763442400397192810367355796147542495497676828364936254987097668022888383319889065260229408912438851853006180182635508845140891958508006191869643702570683597704107271885284683318430878959316918348696167162866590367177940415941879053719559325866762115808961820653041263037666563464242696870789711840739514913954254172775386745779329735713795595972302482390096542281390168232151239554019854467830415409727555931308946084365307507754146258240932205932353303698471697490396502031577616899796266720169399136678211774599817510741973036349685833113119414331345648921593103380059066550693517022002941331283371222084529810830426359773767466332226226703644454757502854291058209431260883805612183163415824834436859955444875620149763779310605558758548204544651510282260615340175755047727784658511653811385852591266215210852714524857380932040357644302231040915573897131071189448067033059105881426755639166024790030717451757330304388878297396659601017417423570422907184811733266856579666934982616937515802128685195281401553218203536498533070419958972780304483931589216322994032448113860862722577450137829246180484655965553409596255963917353272370488040178891324236148475713095110658580960738684906851126740349468906886996529105389071854227468059635843094442715346739642781921875980955394831501457989001236530723341527133563733411620353183751389860437396924376614589469542711234445605625532228549650672139480071457034203375308515495259078820254096772839727277728707669136969854835165874445092681843178361382852770774423077814448219483526550995106442915774191238666257538090478465643829504933430469762741806476402040324960373063642050296977849149492348959082852976445661745177767407688471825356413800138948398515836958455861410303971679040094776919627653932557055364226209893459206386439868218817904075260815277787898427281792476575619749712703693855375826572729319631472431826338559843428032518417563217454044342443653822685693505251130283741865532020636125096852900571373659440577337121948050698045463496605438412035165357793019262694522436086528893184065388822201990061852296262786908575284633424562327922167646503136531818788997190743659100628540855534488257510929610742249002530159625214548370402708557544677513701220213299932560054090002505768158221639765797722855410792344774408745671858232576473450145065129471355566102798690518724148765289740617834578096086605973209321418441775613165458701461197395813019345524078864494225172726765195057032608857052431873394746917522663379618045643465280060016943973290518232313505709754464361597330120646473371520941420405286285089992600652680593234807662503943285485969792976099190213842511442953537144598720327235273465728780620032333181127146916522674287681385035787136681659286913663584874911353917318097442467796499162361610863416497305114240377623595802853585346994073438973205057059491726856023717304529909860950897010744405851700406666747387968484235313745249298703385847994119828647776071219165990139887309768414932201721860814249750226010869330695816102825138788229245116869146413199415306103604235253778836436148518964112483414804857225120221759316813227507406745539310795241446830509404512997266900461342833314688486107739266412667188696447083797069996282839699708003335546936742952204795508378933731723319341951582155532956378518850592000217863465032090548011701709234883325537539322646995380663993550590990379289306425191354567887626543216060027662485302676595171727175954926825412937164610202109635115530429024756787444287552094150963851440432360376251855728754527884230295839195160896442707094193652881076256116854761362319144431200816893179196729450154080694733151100589100609548988515026063245248383731979002212469106344933114891681714891698157882695965804277279541458319759693940176737156836834324614404000000743441135776447479460689130957408214475940425328112386545011890590846459305330142871369784286522918417573414485727868300538104680013576918230892483784204121510937717009383255742436869066516730323048306998237545066124903986408679342345381771054310952218000961665127599561466245545268103087395080425156216564140871993388922161563677935309192481446065183376058679403741370641000324026595812482029907087970278865495384876403315521350611755186751537313738206088192090429120889164663734326079695993580522211202168237593209287440351752130628215582637661705767803671429780520228365469212189132904479514974354200843391444784596273989486453262247603076018797707259098849333584897293847411303604141945156417413448542716461070372235281747180783858374934827819714108432657966492309931245256976846124632211067245085968976324890067350297288531832753138176511676373947889398004334687204784823420880131685406582768546202968060687319445960870529161003440395781761632765136656576420197204531310359090900649957048652488586958220103460744007267549175565029021938995041352969061451641681391889496573339890829734573988309171456480828429355569084727953369277573260349568764541776449321037455997736065675226464531227833824641000996531151864815976032524604936750734571228421414695425693321339082887486478771575692394714320335085029318620391702217933509551443638257541155975242384454653130400508515578504124843370520624521267328719917254397967063700308123214262683883174872642555083217612793532852666070845256591121031106069094100190692746415432775511510134519015256250869618434782969391311484358073484454198663322524974517900889343923097830221175537744903154023755515671242342932239586458360764793254195618402715886721376472921551774041940542554466582200093584459163447820133960083951634001332993483366582305242550972038495755155095012496587199098942587163411455601762918848429337221947558975743361128604192939406031341759938246373689131449094144701044664372356986005878480665677391772675246654703768314382311658703532639415739247940644591512231424488183034045305306067166495667357530822770930687225740211661338616428131028362020490946388947691981952421911324405398636949595544951003947493180607196143079607767566326705690805133307198117991516129330186144239344888903479699086475086181241458220984053081850642635133468772955073674975829645668791032465805028398859016223811759718038603442470967935742850602593447472713760998669967690477560750750093330192116341153638647749729080271934857043246757156774849004221758251291430286156757927711811392250743883923628346148340390595168357584469427198201982959502106123209053253805305800432725462944064811787254651516174762980191931899551604184834398081975425228641987671312511106068814036177492047956300608451507555941148306931086285524787417227525082736545196825299235715549308382781544515236433482622105640652531717476874365638767186787220914355528002670720925946560712897934165364539182836123369009745428237517145066971650160205264525899865703491880086786447768694843502918919209128660573506810455748140330085705583027190707076255424843902429176911497086321659383616458032589049432261937932271402994781088809775468388732578245747703478396325891460632712858938263466270697840118739391989544507299858911343957864768350477514767674841002840942739619144519606121783528040922325560169542130106022177713089855390559042208014527885353816871348183529036319258567861758315351435680338192288768075111843277689241105965100251251844852935611252818311720888408886583352800448291130177046750358939266873250942122410187580074653186099128680590589578783714547970208180014965202203791179203249557376212108781672649214815494041312226330033210591262963071504491267916858226946177921902241549770037880899887332956640468768636085157698804852712516473541572938560100423627616722631896041393397556580660984747352984169384476111341674743102905007817340748349352614499002953538993457793199069773812970597577648212862028495626791650767968095003063124729039445755440537583409948676096864621634955617653100936298452676259624257020853535783818798672255863352412355894179415215520392099057986611646445764841303194268065538272017644096005592940959992609154176966380523489346147571431036322038561701215403818512523259961503036166142223127397925847504586775704092692378220148674626437736465507037363952952328586951731634724555755326132322590664501693819194320618850099927118648554359101078808419978008147485820637606587599330580777309416861968749838709938185270354651957726718857336437034319796187519120838301370205182174214014414596283411897324282977881346740131333066596927976742873631523185673133295690282789802790961995495862884205352998714953885318215654321906300872337816651005930555581561992840714987922721592887193981179400543900673567283575823457127227923672967188438261455067914272594256882011992009564069458819592615980089202141931348696909278954448291123266584448517914675118689203459567544823742663781533335381931730391508491840557867567906484365664639562186188235236962884549877857142771058230370291202252303959183824509706756878996006051674272813849645829359336551180196346240957417310574458443308750620112460821453580610884656934599200050658536927527150317129227619905969448801442338029913502453391015584192014443155772341534491814465374480305021112152106688613895412770628713771202500238387431240108581395048283750461611659628928887585115350124699033810276457209316820387909795639413397842426019406483567519396454720689497519536248814733139819446282515500117878777431194761929897019762096531301890347286679670984217530525797801878312725822004427420974308527939472241337903722544082007692628950085870598361977543031021790366129400462876345150185178208578559116741560725934351517204100636665578881748738016441467742092316683514610615237821133320475436559696176570959794636509374197944780537617021544960024977229444722264224049746005954166561814921583589086867494177785236763388247335128696216980764830044731802325037012482777728471491859741494005545562712373479967046858756740370647172920608875493545616490218146974349967328797181107418204478172468690833552782012811421873152024197199206651595655020946195233249453466020556980719666265923194582027426425001052902042922779371782416703177002562169251726990839172886945234316551832058814747244019532724609171419323593584017247914284718594272100417497100470139359421859438482706303526723155006841371929823967008594381849495533494208746261694063681069516783881128520658169048315824425597576386729114956204572571523778792183959788935322065351417523799048047970436281602186939291770000020592515137794911412044551456239722405046324951674832730174331883094412733382277681183015114873201838400871577937496295135252606970507277430195033933262048109589563904176455090337393153901696023552328176837681931464376003438865351921053756265728788192254844384901026232674434301109424027247859463290345867702519621076897649897170045423296427738037875660517407702815957256239794242365716884628386717420096390760434989478056832740103433874440376813173600755767803063828372707368752308095236633958067000454428718850531394136441512744026236099034232245979842068779331639722231187232196825423361691695415425466821709826240036670593081560150794727100098657455865470434586884138007868913151475978934411335150706261672837541180228322945948052626903848801422313680435595569132634417623480747008481700657513235735966487115741160949026891628916733415066130676088724828561470864301272168454146345589689269161232551490728908333409172730674213281154494011479360076763803135272984460454314226356626249389693387875587237237296360491676630828088835036736211781341530421810475260412446783291064200376200765681497178375979954533424588834031216856689637164395031888376071705420232853702044566383909260456221881425678925269789289821887348134323781157222158347783181758644813210316270377462567497139486099867544277870977582740184949970160624003020223738555903228911886051662620013258293460573109939254210494475561523788805871697858472269981106162996050048172840144501401623843380259185710105460394570192225026265939838534058801959965347557517059137345785432765111260735020917633043325329705823361257998318420962818068838411170189223367208808246454331415363483088720371186864132134451097677152765546534716442960967361127672406176170675319338911544313510832481347477417910693667493053891656183582980042123194488373116709762334722635221749794514805256095732644831551212978865078095982957617822135852239480331373187607867358926345267722113873879575618825669887153320470901965207146048544211894261852529286115820689461697116713877156123640291134366741693208499313201464706816884559682677870655488010279104137941592461606599786004097000354435892610049428957197581497675010160212284467813193808273714043694224766697697723914914784435318838099414506995040680216190525042768596038584385545778824427580875964932126736082459495477638554644366404965715584568636132169418474703571087497652439691609474519891929157037309946788284970401987809678397192219606893816458884122791260815520077704851081042857087757961990599029707749316711077642464277427741538804681144806598146069851951681335043333227778520642394520347871603709907849786204050055174302624711739222739799193991704267636137165904623384144094431181451974988634956947527466474437458056357069474086262148380275048689630022750700999913637272580770583066355415546145889066614727812705467893775253644075685225233234953996667839496546580202877843051408773653124404037140295030256495398182832780892566061447202141151764170835989451720945623003425414088732757736753521208018421075126031403639293178522844751325794353405107509111016398193528618093282739359048864092073025893539910165024374948521397116903825252388080534484589621191238151071973705287292974512344065234909354622891476529583069397311142063223788701035534834336237582383001879755809792895424445642006764484462474907033966260771657078696648326786617602049485784119587221797587745337071442711636441554952665559351800452924329438083982467723510666459194252612619038821376029110827562620246487309528721926182019112773958176012605389684312087189064595886737420898886314267579608145569523221575342931980871880400253838900898209209463217130612632031877978904742166698639375939853585640274670211951480614083563665473919043642736977614907004836149034699811852425557168546754260710683710719116865404210825691850576300932407682453001969416395030671432037702878167971108652620932276550732086778503402335765187877419766847179892023624843498198794681558406214672120613926296311600946037571464779771694234124161563762135727122974771380560699963770555529645533417296780164835805354704877943351077249232207676641424457143083898446052044405301958703942134980833654226669680147222261029255534761214841649021158296506807305642054068469508373130229248141721926805189349175215904062057364693365335386747619091686843502663893692108878501522777896135170115703204427735521488879998780179802534356338569618561212499597114076856516927384019154621116340211763072138139273065382965940415992793609258710808470682766936848214493496631080537996849142400072338769856618015449215716557624898648126057562919502667146227236595594261590014424849866429317801017518917286500546754680650241907005161548476995366464248371212318430205978849570698207037216158348503681894141209604391851667460461070216175367999782257062921465064464029076917696957314480253856850356092771800751276213773271519861960852134809434943793098545307582655680983907981409404272724835765392458239511633077120477172099832036410473873964968216971466408531702244252243604166238407549981124677010433520834916528321458960121336300665377398582521275419535502892750182130919246242910717954495311270894486201131331767754848387025158247552110354144252438989742428483376472386984088244358816241683803463590478955830748595259085069218477838524052141073518846839937825913805623772824883919128068773180399101515248962594039832661102448489509538441580017770336349414477689282884932913720527603628083806984617251090447221103501772759421267481680757136026223684236525212509099987049347145636304674707228896052706989673212119678623668875916491207465058399697950919404443365546562096424371325166562090122125570480773399852959144064094032604411453668064964867957610617977543712909670274622204363521981280166033983222098383601852859309242541525938791116844689211133071197379572510437357509405643316701589908746178761595749761538422674523943188942629094067550851011526194258302161141652083297936110375746740652164336659766792795887093717398279216460662295194544896797820130524239966397491032003655022461502082148396659352464535461774444173221700754362871950693711437591465042312369372755429095725487540582152707918355741034632187582871771454661713290956345990212978056809602237476449889056532907900160444045594487974605354472908141496266886199944190633153055208862497954706144593798381579624871364736459377006838029099172721063343391962933619565436842248585750268915559024113665451452355660028950987715996527506823697957217615872397957068327338657218756129939689360511461689762783486657397013817247095743553864193372815880136139681602421478167278974949565382423142174038594405680762224922190789730184459265974111280239564435452061519542248144601613575632900259745658972592428825940659751153406732438945270664657239972956837415955120017454860050069570875574275186389571654233435124804909343052961546165624754949173251518013408662742936809460072128842122021597595225536688730255571310397187941245754410444337926740369756196821712717391407053661306861262440266644883657903120071613152014924690930731851213169976875768291088812973253386969846865229349594419448917248033079494282608041654350087428730894777169632214787737868085830720868527332634900914663298346417044121102875013065643464805365359207656050223753602890817929229882847980297799921606817825937223392027206393838622359889712376191572455066924775762118521627949458927516193337193738879489067798233135628193357543793759448207356911183121166604961440889444322316383063725070534610012357188485247544712792642460962784939862655514325649305398828998882082596008398302671481453556508603757161554205528590344629278684954609318246045718176409348684893728424089737007488051974903625481760283739010058314637621601477334513153307399894707055778370285631497488758575914535887641822406172606975380871677893211913216034942017359055283847200576859135711470205646700117533127667857738536739307498859986747063580852762943454723685234942848880939997621076823897625386645840159339373332542338897397361241577781892664079703626123806536724151294421700200797057305416303901974137028117882467330208904269384892806535360402531819009249044378910691096455866645987560567302230198417771129778482861774076920145833730769832932067064875638982210889930234571828985887505215410415942796482490933162695987485954840930530182211760756451224319437381320476919310013795918442807802133406312222839920977006934449376665823604162454262749370949768944195699758165828075968580480733976353744606643781144164477914832639384280632284122009141382137731078086812251432903271546235150823610841976898354248987449158175221569059550869844859581765567684014358984802406437810035409211089931945194165168977175469705009514669478304192927125840085184610045485344000567556592829670564855747277475340115942650249377300706262670049537169386424017620577375277356989867043063692531639835148910780350060425041786920029539933643518141532641159318268182826247247240389719433944408251955357927781651986503470196818850904566583155309912411898417479536923938273161997296962435656383630761137195324986254307216011910467931538304996078887363127710225278618512532778771976553145435032025913599266441300972825684962919887913185748470545060101417163984262324678470136202835957247279500794748026619496317430215521313374127634656599234261186886108849133438946644516722066033106665950139349976681349686341194606425459375599728176755804976719914949542493826217427158181973374936929180289628132471044379207431524951195937312584572152082987818990329399700361212113251367207053359664489877248193255993693339062820679850262090760883394779127734720865694582962755086249074788438566720612811851312493254453395144542197119480035131565275959585981947918542526128163043542304697739152130023206735421658857703285438228656928096228670027777162277497983618035259112159628670006896692447522976865391058672174019539957282298939647264765432304575078031312860174964896246479702197746831607921656808214892447174776460575551162299057601296538845577918536486754534055811726796747658239316151821761861796825881306093370218209127293839615772714663309105514281979423092495072521494206223622798724702420831025213401295819276667317366946730650411853951488944014596667809793943042667956145005839523514995540194457165551268156979946454541184429183400282225879225790850708240710371333751128704217549215754649708433872139968176046698000137414497031588602680237222813378365430746394779947048764782367360883681894119892440174157368709433068771736228496466638170464112363436583771294380823749234811321885343289245249460226050888120672171541508544543799113917892255093264948402835463411697846162029932654426104488970820756000666602367237831352137066434491107631588869472134757748249405875465495773441825464260722016608656539331366261107570167193543657211084859377668977210836137493479101948283166829852684158526234060446421491285430121798148877306111681464729097764301581388033235886046020291169229533528401420340045727655833910904875714960593311890039461653000243940009878911869391060483806356456887936854766950700954594562129097346911588839174184695189985674381161398370545393211376992129287851277609016372312948966948857778690454861590180981486650538765589728351031712416877118151886644189017809034122366945992309251792042437579897450766520888318925359605210238474885669526883170984322142033120096488336525293156845879344841546293124953630388735503238619955058411344510278173928142252122499437418052772025766510848642619019191259760143926880010945942336306345672654307050379093671605965713771855846827466035516683905666471164076476772624665305027977563268689633276805760259253182882817139773080911467639803186552451142777732977619671053303646340143245108286702624375572012879596495744769816313719903801693347201663281648604299164349992759348523927001980823961891099710911391164831840964445113810106464570650465569892441885622875641652963731152561933491805841180165464345097231176461214347881223764262338450246268190557016211524232105938740380444891057875739996291067136823617227785642071340387406196157694399710841540084140052618305364401509472835552685594567844187681375744865350594409515186641063857402705094887708186987974852741508770546760751359025695621237031148641217801165862263046182539389824716869281454046752668205749482585542171498719026797355014893816538191110145446433587753950025974611107241179125859472941103984647958525370877727830368749429305804180134826943774870706514170397241262337742140045872110444739111314093962600206645006889087311476931926278202244328402966037941967970293723461400318556069325565724714362626950574820816617457790799957052271346892612338716028959507824941154109148207026004633967294001832398145168984610777183882479112463929331802893800735509067790433746753733768815020231949748019854601899785017266586247600171334808875076726178943961499051353402220083552187309724499642396769855990492172449738503190156814325107875232467900124759351554249041722558624580273404493714354839162602366488883199432786434334224535951199287747501029595264295425901455944105458048694130248790359906350161872018545581560211121289293231214381370386245358627807642193705505528600153244636859367455919277342188525605131767975554514948539362629258793393354773965408156677124245462007507730030218217425868817634922506441850391383173914431297791988212838181090781364331199869722004181777086223832013892882694275129518907653031726447103749486109402730103355829358259232527580770477862510061772581703765893616883146977388542570087311037439525282476508991502877041282604241837180772151767363367283390162122643452749519165470831092523474796070871208958576765129808627990797361608945865565074643535472789082444733008089109645279646165090748716072578499539172739744485579786399385821108542964554032277938036885186721572393460149698257485707409720810099581576009975977229576345634749552338738478810438617867302344222083650572985007855231963852592115637001837849244521664826923843385477902428224979048934685630444597998257882753758106145911205629407260819379950279427666464259178157798850983511335204338726614192602831441026322314293502667249499242452642098325191610977673974245702644272825871625855175727990877950350996320622087166450838178913312403817847421889927777886796863042115686118664899657696406224556859482962196359492161210914770427338892900897015469561294648467810465169823695256906541295355448014218426425192117677818912652607105733410375653537453139621747377442270026557111030149083386452351596190988604372159240557529001221052053814564027457552131053002789153785728381737825712577109570307257157767043277169534093270457634272281374456767110757763947059054182663849884211411065414379235315812756090230903614365793179283601407820866139049333995790981042832341963877156821784241677129684045205273320279306152354889401173617566918604934999691909479056209380427966646294018417970190237333984923887576884500845471827040052819961293803822098125129755840912695403719571058228335907079020729358553158610685586829129418755041500415201145655529266635988123689017792855088661746758920834908339909933908971914959580806921513093797041539392358368375679793432491923424397131432748699873458850353910823196333374083925118414272405192354374880801694519082135996752740824119343341639193365753431180456511594798694847407561874983536565694703787186610906475343560507924108821530365451026158141118119164250373321459102764718354895834300012542646997807392550199853701541989277849129154293941455717821677864545467700736794626972154459846705028676372457753211637580242780670333811047497271049987466884102302317086568335328129771025775909985196728549107315246962095643812588715440170659907677771267905669145413271564690974609956133708477282184256542804363650056966023928215274805454920885622309130294470389797299825549469984972619380142875131273191966922876663540051001184220516306664025967757710746704468369886327041110577959188844699279157052828749597587228044205649941754443583690975775237344135510913968249382590317036565307040162775300163899572276503492633053745029427942898401715135370981511677785789933070465018466449737123172019052114320166767512495305798183167717895844029348903237603336448738390408043027982978342584255015501708675083484167801103505838085477166073504918365889129532079031597107388418446224361217521467096648635550275268492364385277982873536571549371220344519758072978577093643629920687334665255523621505357191108691612867134800676015069149846127946697130740198109961930429933120165937943782050440828505253797463019517164888566370664104526432642943155785878273008075711050842235989111271648593416868424344192344210392894204542580626490617106121074870195477363809864352094550406606306316307624263398335913753538609955087056992619861304939326993545858190918781671752112192615483909533635512432364577232663016349808687651194932652474121374698515383406050743435034286480086818951003535293828461107825894332293241848574461940671483433527781252564150345794840403224681161533976397166285527186753604018178628595737255054235904809626616480241338199576881367841467295645599721766361036905644803993438415139396313487849248242328362578728061873899404689827673748081529089307188465226761642673398951623327497670817671495097675975497715825841805260134280999306855860468836277818108776619761278778772867723536176371219681725478400045319463218656542437094819311783525073441116955187830986919162165496542795204287844327375396808588341967664891517842695677690971195726319832447880337558161568534497023915073007932805696068266025391061260481309760906879762584386292780487614102718248519237290121342818570675886074093020053900765954178611870172487781181287511201463175298770518926683954903553579530117701703183080165503683618770364701415125255041859131149489759961567555123789461995107144104143135242835671618786483101693691420344297974572166637362706277892713362342161828652840555529413620138344296364274809956989885895145693115210135729386442914780709429222115101347728676578009807418709069364879294206012283306348973489421927715900337381596724253360932668015829491442198951448286778584421892359189320246775402018772798628427059602976795056204387659712886645333549859055523480953929091240177893442625585901205468505165587712143934499823017533961110156836829402853222017385756779391946979183964815273888251706972202014823958119710757968893283206326357011093462759533329077149564118913472401460510716934862123596121064038017295688113662278138088724700481084015904324432066796767967385578620850256412865060530307028932436499775687930586604057272118595378891503710183599260145182059407770539122427091981590130310519138485070141827234099431982455552085480894035814968565212887656846584527631355788153778494844297471947222642761635060456047381460973942372623855904502904675092038188633939762097162164076384638985689111833783838295391918891645040944062752666353298559388868816481668300077601590935441936635684988832339715482064007355125499302741684758322188165927583514924813114595499793503916553619722309638920709502054316833117544643273313961752872119378560078498539699996190594906307902655198140198855274229545678178562647450661235377682028866143123942270695074383100463919719732944292177790993237291184563339360154980391527518487822528010642296586679342278950290146448272458572069819933672984629346773766131442992798097011424573186554753987937577137975752030602902864025427900378976969458376781721853407786596322688413763003719859551266891884940447936786426591926894932961272933847732455444800601833364631745368415102378697815878708272171198975564423820117127208157616067250889674007237887710008478571613488972519844033571356986479146621189399158623003590701223868115840587566874854362597504747622988826187480152324688897062484761560287227191578154886114658249272495081213831502051126953824502182028581603365384673914021403474581577683060021460352963006578152617809772440723332384675918810236640611468276676901810648132682867440892049185486025677588833734156980196943395473127233128063510590606104038103275360951806471624075401736609359818377025479373834802111506532779807578828295595621183173858201886698243024047270557201437821765962006088226531635090213370159557306206915094015819112526355660094054714309351224428765939331251327746511990968187661239618299960816749653980620414848915334861024026435984314325416031788817420585176243116855884565109497388543614820152956147686103831471074392838820729401095179482221208922750808898510950047200423846934249805064311725722198887701452887699839135968495503653637712448325405972098685476992162346929701203843030986256500267775538834792221404935080041367346489391361381046454944458640747586286081891903766336377973230945362817333383115444383039081283989030689857526128665192384027044317874642549952133823525532375512277147058776434162943876428729801685377408362354946365427991602638620605665291053562457594440458943693841901071451324603629906528743861867596626313736772186710863068366508173535579415891376845017862843672024284610838500202088712042861655690555628064280204278575609382271643748368349885990058565110212576849113591884904521021761543430804305483574734858582600363867379581589432082069951714455266365916086916550714720546894704485574031743205717492479553102748029022209802971946946055243510612500701895718821156528789383886475909742580084225275827404727632987923853716084485906562699348166223399362461250278983730917670388256384391832970149140851154229989181437562447574244228855898446151428250164605888167588627178960526124330191474140928731488683418309794215135009604538802481637124570971513572263676245640963350014973891991604615818084157496192302482057145363404051338838305986455438816297309037454666495510155161713802023457614340798686538224239954076829853483409200496437793550717722613940626753108262501968731787548139855900650050806454894435468250234267931464116434472605940721177574490014254962445032554230366866149345634964152574420971307225920326252437399089237230976740581881673272071214209704514729404492795933150191135647919883388573819936389098606974412991330512399953772476928354424994687584495164541110817244353453497070310579731263847500603049640453417828974662284302548834158483021002119452076810529090797756529232304755545083528603654254464175091290206180075354302581787443609202095560359337477252039013430286540930549248017837476231228680104352680180824608249649116717157336789261788068969115247190887578127411673355490179341298421754240560660459316024635960256541816280029128370406410615297973358805630210752452843068101512960215098204593276889364191533179296608269028988674029223766061887486120047404355298096369883330226698354743159510259955444452782823173494140774624789658578944786970453735980878007036071972357930442109511193221761337990871960269370986416067512128240459557350890310361523756018619685935395458772394821615867075526533519558780312647617898938146477062769990668450113671476154925501177845829356587682803815999375804806201539996033694133653475538468915373438817800592876062067466784362841645603210723643943423727702488932220675309408826607316189123583698405351295589822166961822211403763474156791523799368673183504196030884717581061654601630567686485808381671979349998797895776127937401644757255357884310693053860356324156529612687976016397310999419218113484982886679428055894516992142463194508018225930589637757291519380957827681372372973036532079604872324486449555769346141771032756995817216605339158950949341350544061892416506994098829379302573598067219151426867912558080662691792097761760684725284460593714552218179210493683188484676855127098640923589377352616761661509642764574531259581230109171539440370875409797109620690583687871294523901557734331307133765084950965756639376595751099494232222680019967436743156157448411963123319660126740988667907613028668115063933070703003128479387180345005186820079436853241484742320762914564128520778073011907889566452988913453905910883741358568584185616724206896033421612368349588870888330454786473157063064710315827792175830101423603115891390920959300381464653097640978957650398600250049044443162350780019803472324824448537882225440309728353497965371003061371260667634320167271735802770744054208221198813331850811050207235191837192725622728077310404241695325821882527929142813921250639469885172154174236837158592950747344004618616578710460562938317509108130244017831857089908377782103378496996018563838079500845415294442288020318426711073789493337397334345461715152435608025719607764498745869290105864497337406857230406466545357220683565259731657559150714492701745317197204480919092280588720157582898375206889545289106137856801546229907825789649174985450361225153472838266985375853809516352289611529398069557329667301529414979389579294956414472279841793533071252067970598973692404930824864429277125596082240819235656041629280444219965725490332553765344136657518935210987532188135888774676027901427223579090229125742344584163758386608166833540885088130427738045893478897179033936820892746764693679092034945630489500615317639910457225450657245630585637179830387736606281709613996835689302102299545653601633660377593682145836555598921329935063293899279369451999446284144879470460903673629826651644201489330727772229968090051457680685555144291941517406659204552377394944222671824709789722853204611582975016683195581475182056639926405741855753943739669366036457288117901789482641885697679284046250938790159397604858036737991941685338789040108228619354744485259117358088173024465787990712384328187371759025750549695008572430664277837564380933365409006793737348922907189920708178394667746283766680248734422884794439013264441417013916536757716651595103299053269535555313207833505407348929106090239995934202532294598309710105275190983959911504284982467759578119175121409574823472784895343383722536277809851906386345420709552232131240081243835794043653789330667211018522169865172386805856162321033246037335802047016840216433207046288616773666597237691247785173574708480008665295748811334610808718665492062041635787390476254958236643685454939923072872311883725810326409215736178253778056099096509591923450886307645906510549239861559479625770021955433040703642446390739340508531151229472746857942043752966902627719427068963829835794050848894306904414562716222503012350875488340574529674852987772478775142391045895212252166087810333924473482560806848275788406357676378582797548174174295172241886185550469128002752727487267819947454041199861906755990155134405621861689472596623350024248613170527165427231323791386330942522503816762033899193276997877835785995771812081484338553543068569494610165245406127378449843823478150341997579046533958499842489690480181686329137126110641785253239944911351938775490202076022381244703343385646141676934964798479758948088887366422029792696944414474814094741223054350251670369046528263090498303156348718383483477501175765770076522898038476124007728231113138848793586544359220328274155421350362870741072092916021464206131842174921903036152822428189244441338024054709465831745312839851096612150281479405172781306369546972666346820343297527802065957384548519728172027527963347431964289701030227484708812690442243772718185577155331825766277548704130905943972088088024449564550630021585061728866574166199095788437753979739846861403705683518708615724021465825412311656714534479765153224197324676964805697370532938120086997426664547244244418460124202007784010715741660330212334738982739620275822274079891808031551095738016631456890277050994635554796873063035635752259437259654568804268793240945576621295958297990987128918083372005715489218641804557593771873023701789877180824994796957063343178794624433373785842767317213637415568783389562722699631341187435938863977525538512007663584977605532580371549912787519781274409401222900783240269510579160625119806691815867269337404721722599061167049557847309055887086798318099334472454591935733209367597577997886912573375882974429482036963308543068196249611312817340031448413683816671586321006247230075880732420322952733677244502294557313583900252115758283920561015032953421229117471690485060228698880070649913836038673966020737783637455392278885477931134817477369470899432699439700238906836732451598946086460492016605987814058635821081568653285510007712007115539280590303660808839843078511482903074058576647451015827505705991679355104812319337714539218100823863707350641767853779568844724979041475858097719101867034674452029817473953292915204700101066539949573430965609214339713393885533018561395453299656485949372928047836381401153451779817230999236834995788900176117116237609687068396013859152938099992018688357818026141937318228597001692459930968132038325399304448898882077195567895920799890545982742384072562251409732421401550794850646856744248478121933858297982676057648393392906525766724274812638096020233466006617174046346219535199600064146050246883583423476642975236320981790867069209602756694404698727697218401720846486161335564779349278640177387685398982837087011179464657576363791362764466662977387952166235361437450197089211835230777229227160255354433876100257410176133591524852369207391764286748783817885531341882058933039028197712403482997433602718621959124881609384860601982561759021704458843414263180468937312619955104281688695389945974642061545079282706211956171504424344933283909119300326697624432052738490325895661520511888962129155093711866700584530666079461027410530959506356925466495821605721202639873542922136222494986953820664178951838578512002850917975455616373217332595209257200456035398449312709643862678737884918170608558282077015324664881079387931924792631819633908761570613479751016954892555507726486188058379508089149475454261835391684207244856548156790517889676635932864665683703914943071274412152144571943840070397588291475497468594060112150077956212854434727613393882982627497195420752842618957610387275585366264410147247966329897260701372798824470744743489336238031665324807271596515641924943116334544325996559427609589154287356055229190239514016065301673737333751112824035935615035267461068681377102260643227611488782650251756041512894637381805897291126223342077678022225036358006714846947356434269001457230276688885874386283219645302200298818539115850463724646962435448828162007950031751640248753432068293016184917221744771961340127416820895130263748695552815541053618917573810320716263392935169016270995963168048274709229129121816983164076290578514499596299385723119108652999425745491634519280879750155243817028172359711532388816411838668338425903275704314714794560333169170366796715437920718402064562262306351305873189100850018625585268048208327508355528829539333522707228774492647963839224461073819216041814884567504144431404148057607591603564613568770827305509804667274709221168603807127581479748781751624925780712808453794728210456226442095101264416708604907325359987207661867129661921449458175065897195111869544354705328654234246189702286700435710803827842871691885600781965050628857753917464132322890315165356135059236585874195564535333388795171274082095247818617070080391790903317021067526879828402339628959178515661428022047436145109368506529456383870289827684379714972354249413360000018405416415886692687090061067136370418954164202673109678198113550966808130339644839391574314924751849108189077411953968111909786268773498607172260959032145019414951580031489440303592374658438897876902318377392086651765484646277511010201002148209790649109052965629923903250255156948044961776930482188176277760691625782735445299532019515342128609814136831828778989264993208598808744874038540089507408141171049501716679498289471057658672144631383107527217955351762327796684685819974645118527369169179460433445813711736061152738356461551930288778884536062766819146774529297865588650250274501988020886099400673193861493296182636636307469834297071180408866756978425918423225820772878877908475710069284368786649550897187228767613871186818419388561971379882046358591614166085080357865194039572717128439254997668861693452798150109229728770168905489115359198331564922461015424275552552729458149313326400541480714228996340423724666597961622318120782172372812508193429343978388474334357448118293161016382294465207401250633342606787739195347041700281000463016345453191905292833700532823374808334885887159317423687021664499919739564698244593994522113023691163207519115610231668324062686571549040487413130444636655699809612683041083658564210152696441971408703437976089263010552159586433373213696488812917874970517793466776123480295268212306170488280934873244942243049418410682874303275647616017607240673835235350128758500615885449898247662685351912823111044952683357793384132903919292680178234576732890126181882328891753803325300226495377807398603751953939229552823132371491040707044450270552290570888315926576239807861394195619064647933299823094647455109580655693541197384312825630740110610813471026329178033601744296719991809002884167689588009163473320530507197535302066096369987184282625227662140790223014500451752956421845613922536746101055311642810660369115941016394099078113910986331238067659633502122563137264659206618395059460216912246191228138728561795294343151891096171589414796656797611667122808647561067856178401492629373957367096228159229850208355903591147982494347201850313927418171165262652921622470872240949832101369739433168400220701253459100865545858731802193482356615046689580055422664898270446338376460246783479495392860454568462364431515805068191247845162988059900879813793414299631241857521711206199363655966350555037103959187345830098213719618856206601912877748047750427018139517458420228433938599024576918950651403099046449103258643433733462784694946553441641027976575695468276086434341927802653453208303069169693858216619454082861428222115627444376515253974791808937160707969563228744520537363668530208599803628145339191714274059229469862972113045782452146958239740648533440418084200003005406062770213154793047663181989616056262327139106724640233342866836022961749908173293904086028330730482733069515531562233039758788750026211971386291027432171678555450407329825873140163075613551021266502070128312543231871136409785271980678403573388038359378023267442220821827475622165253405716513812931560365284542615619314384049939878518319922494239134593725211217218818935660235515039937400088966413029281045027800680857279479488418198829689114731713710939637252074885151257636808048699646563816107011037942458512285876888352261077399221290719827636920818886894804831991363562888075941495636973532037962054106354322659439009761479164888722615876328034809838937516357501381699391801715836373760781607249519072031113020175051806052053079637705491397429398267661323033410560916035935417027095956764917912617660494729425412855515494860390656890875083267875946878790485140064241889753643114478334625942156049005158986859488762167528067997086795740061844367160692196086967579093919984131049712765070824461118418570374725797360734136037278539036556335612502123714308795803033782667163297456109657559416791768990582455320000023676863918922372979994052846198039612392873723401538932027102851822998935431175235484392595232493204995841741298706097648303360247795206926766046780824496602002668233596098052672925006243513306143477983703980843534647789821106668402433675531821925516078909024252537597410800373226349823697162355852405747290067722865390212922573969620854239434937618832492172992498474879613666549738084838658277623396952737283385972074240982749574373268610067382174425566176870555171653630738187020983232710260935291406108602070039797175233971362980914690147983746777237028196691207574059122498105367988021974452392336708733922725756917801157975265604664917896397357595221514181915286082390894769712762204907569716712277006766204249379487936752572229156417208194170075662712157458099374955742783643486406116208114548205301111938957927017278091485364077528974339083376954860614679371716457787614631401544113166841924899676965203739630075960867702316209073895317804008185011830910142155571899799543664772881839578521161953398126518416978297810308946002281438332673226039316492246695334989160175533915490197570733027954199155912288029574637774980861281879731952284454234847079772564342053877670928974347017654298079150772213994295113991198471061306216435064391193259216566389679203578862243848347909803162481481832091321848259531884149047595446848840828680528476124188775675562343198643522791964158849654951613873325467621255925439850316003058386468208500217748517368521937334865077717373488675289890428193255841567541500101189147942230369129785927649697760393993889684144942544649717484880946811455773784209537798053811653565233609011625937873085826503052126177998322506551625577423583447855984729662238588755981740346943310331051855477556128426452296612642128168706283075911132781723893150834932892615652316450314281781532580600630994391694348751450643456382251628781225735031289689266776209307659947315052849023761643022570514377273007514517309637218482849272851700680199511346975513098467011960515837706880398806320913618698700390445811895078159633507378553840278218713401112592350796980054137322762249690068803833758231447334748300925594461199090293335759950473404234390966921574336095294500689875088662564590760544521143551616231271372926833804867927181959574267065411643339708168728585613956151722149440985096155286378829812228815130087916190452647922573790092317228378436609190255027255717862113418820926901509063793194293862937582209688046735138785997568263316524828598002005435631449011955908626943558772256089398843382685448154995446908354142659791565040373114180597690631936601876035783792068265923610422230186836965840054404741878518708555406089227171899121175206773921216816586828739763867282415110916350621902247603614400101234397291236590015586908872560050742514088691515741916786539535650098714731987236602295265470333404961725634262124185895385545434762022220945971497051498680657358983708947716288819814642047209418215051722935449151452207480942306517245781709673789864993089103847139353736249823552823345282503249112246291326339648518890863208617792763044575167561402011151216568522673181308481678388401881230070530385771920315000806446529728932722436971995355734440269798740379929709566854576516868751004010814414678949832718460682010380428334483008089218314196582965348388491449874579991269418838616075031398827121488466985202290557991055840788866383592320399856273003618379240505253063512585412690386383174977922363349778885637127167125034868254741105119807111581930864415492537776738475804224902793159880777299479799916340234694367553936883414379319725161392056586932031099237866358065263934254681286180822150283976739473152199467945528028379246488640181866711549681548452891883921129939036772944564329428626219853304240755220727354629875131445868386852914688312985055050413588647763500880639086296156301436765425339647628043350092722437088168153353332792722014873566734346864696005705513252525076148470743431280281667174529599549831253568634849654537869625359793776336699379041320307525432059079171071057765443057547027430659491645510330879614440572857446329160069935269174208306914635888549823768375806330919695608920704717149114399863738755484692875093396200303430879849458749487024182638344905859512226208958215402831864306382763773357396688191532072821213362183813943435511412299899409415419065127990961392830479609098201427264885075152707710770265871747749106257189040302132760614294952764697868739867367610801070322782830726237110037293343405866649699712667156535818923209872367512927401182717253663919087211021151260210968820655438222250197384522407738251552399452003762720754539924620498848115720105697212451898649339133960557085501264333620875099666559842532681076670751714373582988878948919793096109086953411656464766465243219823745867553321646394988637663431567576156932502202535451071461215058408680805414490807450750665566720480883943699919431924183319348789043701459096849590076717452119478141124595230809996878891010249372542085879133981765973566869471096455662776006779832948230328490383725601593232355887276618418899321056168955260992909952245637672268319491443260752394190019499520834857828919686394311920008810741457475196661362426103890995078797021724540194938837458498813299321026258143026662906454020205062507459459031792927096676051881831039027556409729883374152227695531990878638860595219183445683124570901039829262752282874885200651298691655047079201807232993992271588273988966521047674920607146424037927145258038139081701219531116874440290533698414895053709754892706878755089322224839984529984427516749777961402065277524424430331098325520425946130181381440142573708486487394895407312729157760544499839969269461634066665395831439385382613609213791831870557864143588905215046598608097055340146238394246365302540067163896353850060596042863056968681903597824304685932767875354321790698122276605354219192037100668771536931937457370276820931403023658287531798760485026487903274871141727469502896396172484944536364288542779056549334675383763449789717172595325863471564540387838055952892622092726946797036159777899614794180524306720428273849805656991589915585360954365885825575693922862868209086655238561314618334360423460377402439075427960913214418962095680134113997262819291627299692032147694232104219205681573888835140582658955435048710109846081035361217558045958482856464051671393072952997502396656464431020621490284307092873335127840317635137512305325146472562025953687703352389794172822341032150709102115250564903505422485370390357254702792131383174874175235430720465418757278656064182647095883397302027422352164338169664397614030032499877228344464823012101132820458372330842240222733375938478682604882971671322017258853637872631154805552655566723540498801375246900697582144930108662893765212737123988455654244941464420794006022690684202594244803340036080302748613206152453363468694422729273640322301595273291298330207964622411861572842738189184782241949018946198079068918919578408761979102453302149093310098445629421884433825022187165216692273607201501344715190011088990739802705044625247239942099929500583446046693087168268409352798498208485466523277363974027296215823699167366072034217238538332283614523234850911002571222022804364137299691525442525464421906355547972785626816326050857875646104596045179043988758469446393996605995112839003372994385838737759925511870875912495140730709556165191057281933043438680936672796317276714018957660805354509042460970403743417617219287642613675632150493390013042959807813301265118475777367243743669984826376539169389391537380282557917402574309440927710068315064555883002222485171711218372578366334694838010026119374317076610280329693397022779288204055096084224535054492594150741465384795363234786017202818317734105690911206101608278531203588459325061623555527694785667959466694772554823299167356073875440398756623443179670578095818635512249413366416570392756937105585617248956969407097370227813139611639653503021299139086698415039724779590301064709690340632809650079625765894263355488604051716808893034178511835685140447504726202005432337481377145523763006776009260852241880236067226455092452307960992016976111508602771462939213365441264347103617679317535494342486172227335385904950696894293701332393651864251208872039895365851904796646202429164845865714658280259886197850523343311830812748873252293404791452194614912332446952237279632883951189353948491666172371743812276881872213738306544669265600887558258379039187569822337317015725950069200722928004892287493956715851524102561900536788870120372884689458042653938027918719118268735084476181617555933195333807017269807215180651250012375790557104570377003841206737444101431554871249420280205339133509040402591209610290534026058899488714984868465080724146301550125969315699441549372902934014388794307316232948239345550207230040013176158881911162296633152110740720149096467089829142438979091511180697405784037472138959842720312933136436451692834564589054843965928037071373157554178736937564597839841815563332233035682566983602974060570097337583003708545449076066121802674136523264814109285179379571171875130193896244648203969671150846478161995572895394088498181237344318683593219355624686038944838460214896029164796728221433829426281801254987285994363861966917061298059240910317082656951662231039385169211567652472343806606885643668681055055821319749665434166575975156204542364437097637383936113946016005965395752566941957266902455609193262993220389887092342305471310192994362218466697465420788400035171221084306825381832579564977303057441750088868397132124331646963356693263038005034485888426180139592544736265252942079555430658776482333352754638445488779014396907925391513749537184377921431234225982890842251918556647482978662984761333763572917636480114514586725087321134357563691954123714980008950796200518734465970015790302912487283932957625656058497828971691593698834835386602990108732231415361260006867822828342508324436499110413891534716925575842578579686197243624146320850926827746564763103522604548043572632548613501778014027622730061282649267452626622649044229970193025025583456776668688224138057951818206357077761120122284652681296812802752794956380807682255229335886010966791325037297269360520982323867230124477046848918342440882005696384508171925324758927336208429801228325720880390204641918036634029608259557597777092198062387693254773123056047673403405354174940236170686971459415416878500761905328079452916887143774637914311037933610370036771730115961886292949460086604434318991796922374343125548568965320274265895289274245061864004358304966869231797313781806314680922954351791747812035700360946460639714430868885536107507834615259300154211855195443618826040258555732059119832453023332755142714852428462446866825098131269272610206679849469725935722273902431264971446884092560557495719932431795249459238044071958958290379215756038394293491183260437102629977049264437849675625392723897723623258911196288436059044498816435411775449383349535512763959450537870500829607763983651389199399608714423527915553096336810851804957148536300732359400172463202207994427472704995025721197742366049281329963758123059241272366027501902178374385438734153244206411741464239002358212401849704013065995704347452119104781851616191673076684865157020361765441524486766274270141325926291043688206004988921815365560884849151535627389081689326146543132009617036820993525427283731560999755012487895653321613091308697617378270499671355328182741124656255015586154943914313522286207103446894617546085924931733205466265830650790911984775681414633574928964805147542678071187383476182189336192263076466517362607021102227509319180257506509794207249052207308994729728260241820605829214755766569880052087558892000268886664219667061515542455222264946933492160152663996671826893311649121241291221560604581670822619656576874192634847175300535702356640420358220903120940080654661979840284660304125090965980254065686706964180676903742869603381824393555194061902837143546019157993928175437625336177118162490636445914007727301322133875761179584730606919703118854932341224818145325633741942341554796201543299845749501377615149411087452910163898339738061287603865947377754704314230420522417795224671980867185199693632179696505910236367196851096046515422372701958402088908029608811684257731896166478545940856327267131908080466663747801369340649326821361372914173017829802498212192198768284245005624893698467314690877379933223052456206198235683802174804802648613925400450973921279091524270649436368397502466744447990829294955684442251223703291485050814808883531794654542224907532821107704834580603839009817669507665072432006486931786482872844925780839325126200067081785939884287327648719639415395409953325873728606493933787930294110438046316927809958911530125588513360874652426442482011587414459899223040484709742267436439597342030660470719593323164598082473506074099695255256386990690812716710646381698676327646014965138859142806859739541815230803468727366754166141340838425428753367316923746677920860812779234590851278449063077780172533542794528536209986750989803049575175982075556787274039597051155142225396252566877309480877370027759496715702184705337124610236256261861548284441918422591090932864482365947408777817685468843463631658032826646847070274821613765203145436953035753925557106209202913237229592189341087391598074431289530493276897522683048878086753868543257048904887021103914391220790913692696314374111820592302977515574816172340667493202306106330290944410886875563352606695451052917222204874062324402961123270994784568115527053473364629749429169367763765855946331652669151660807890021453352681690119742021074236036281674984265428304065423699430440449963992935411442925245392775551962434406404933813258043592598737506486986076124961135409795876613324739094322253222581956323772006630714562762330168005281771614123585596304614298358522241144364589333831651969176655459806409109194224983510667244856862135686175641160852411753076410646651101193631509016194039020765140422315481073200097626172159239692516654186836067948469063785002597419320084045762930481965368406005267198330761872300926835729057657334364817982102887622909672260766184437538077186318145236148983992950015557752207320423007395188315644536526962943849268189663121912925281055930486828099486119961268048184414374229038591792225378442689731445438871830066795305396359255247025417085589879896266588252122617679750211075561256312077318334672757512035093483499426008213464815033541200548815093948097316065603315108489308326127138417571102583925981135291856433639637456040444032812468750017774705598052804006392433534052862190505988675551885191550830557993456968733618712773317177408093203746612921269462989828451164718271265284569728386875294678045213568646791434419844621742467816771648705341445506259680478357545854046794791925871771013705595115531756343908069678424566084673022718304726663573255866935221627674836415890647178946476327885780703199289441677251861750136712497180769262735399000221129715709777010200602247606040967992423859488020747384925570649129905849590161006077903297424750128464685217719958871512558232716705628162160664415753107005798479863914791668250108284551253842853583867982330355759406601812774278707098776707029100053507711424548963989673659917169728142741948132887149647165669377927998491569300664304145281485688486123603319186045025473212843316385713741338448590408153317611385087735984737736909140731203996940001238096389720245526101249531211652617709351808889872806633831819810003030444934300648043767377968884354829602483911116707245755300102148050839680839962568909139674063582986413949539272635446915753608826638064778304032803267559671705574130148197127649468756114271677919970962403598537341465873805575480461628427169667271789881477757055713766337883216104437211656103014873474571873507416286120343641092530950278554922109583801972810700319653194402226174313415160285581431853073250162932345598438696519767091883235636027566681114189188026836369913860431728187124414320093124449819010446663407535204873302548856723517962110112766222200123763330979298502389909631085146578486551960558596881926149074009264238259252294142029229799825105789391033402462535157030350246415289306120005929474477790608596170840111136540664403107612216261531146774028607137812332465758007136055946013737538313652420122188983093312931078918764508844155053636429139687416945920530529634382801765190606687446336066033806516422370685402273037858751404346682540857806656190085453615992574754034333726289708231669167401561792774082036572298837533677109676351847308432576150257727156391858152352310911127467573787278059755385328649783749577832400845881666980376995063945657529470358513662615954002817487695983474938694000095212791869201529924783188329809261775707314813359562314050343115166656506320760185122712176091375245531610627615754019220328986350871992588794541181404468937777715572828096674268369918859667670428769482126376173599934919457953275649116262500991029151099979013689977969300763496708053531345256787962683559440690865648141157556042587102451608166154899461253100840071451252412909885973055097955574935179838855347377163742187823200219978490732355486328303601921214124722913294371238597112486665557244717135837027775890798724960257625521358473658939163184590573398327082619313757078973665731991485067087340835923777203805984038284000626123289352755412962185476840020032158303000426239593242357257573160775867993238632233401875277827605281739801542668576653289499228695626174685027551781628296922659343504360248157805859816364000246794775373733267328509457043299631286164573317912056753390625887741246181954948929444478470832553998935840859200586125530646099538621355215913108927925669745627048196925799369648965333872697580982131048247726156382662454048211155077324844273187832546957663029674323784493508693989458094697614176446720003396732466926670740321914871135568454737890763267645563571662050973835397759424431161629772033939413503105258446724775450298022984236948978454077773144041901055590824186503620259306873425944939400771582327284355483648650682826914784378795138269237365336261388543478554968816823756973344582370466633732268085583606575955311658478950930507954516813112886855728028766882842757531586783208234987434408399523196263452057868519418111724897365540560579260397507670915646647994300372696332011987389973905275067066186948388251049464391032236070579385751079306394816974843636283094362390383248653392591833511579105806086648800996491682182008892898723281829544054436972335620169419006732916825573649987252333544470434299429524955029204753293530013493038275782893685585735847190512840342449962819682561774693905245901131122130641437768752225705606493555747767586400282841783576812585356573591056624630714955946562891068121596708167258726912073830668317808013841161329046050564263624868213194657210498169232135257326343559869918956579001593913970957446981023520916946083906799250585584062157074505752435890462588185463943014848758883116951122271974606540766419637783281402037419594103729303200251368253588675891858100105344730840294168812600087004064967426395408708546271715016977716718387115151581799268891415570227002851851779695044814713835294025457692333175559857874526390026385403372330724070416862581622611441379082798804779874870624744059456521710153933474864723955776600180434000201189819913573080318157960192578649083204063271531777824487506536999823618493103007061345388685889357749807569744964687712146527223228835655252685896565113713159926620301125080640571846371886888055038158047911097391192845266322873543777616968525311202043653628472126708095727683538900489673676223641790473149823687075453566434434731570819526994127389822540628090923372671885252591310200235773067441529212750756292613794001941855675649807813065797301857023362571354065869899923626289701873217786508649331680677519256576477169177761615621459212428746658981699341488933587602916753712514726469889749295328421081943810518334758384161025598054718987584827272504690930596637444985570924299704200197149830807481625040296845195313509872153304282862499489520848312081560597921307808087412557798585903165923917062380926060144672973674619670501853508959302578387443921908025910673212360267167070842725270905619023666292813060946548924290019263186027548777352880083539074999634804395151099941189760499528422792303804617179703289103952066747615687253022057870501741776504039179355111063699524524878002037749455168487017058265238113562610308581793895177275003896148247279442062141797149858668853950518557956601323080305111200822077949782331887784251824018768099057312021966862167198351616030342048796693664094036607952643827191676269851819094510966305255433497158179952626218130750671504936529596449677080396328091151970440145553295291426155045818508267046192577245778604992267873770232673773428205831998764354452900878845329438404477424917603159578849426099324653079365689826515711578383958257267562185398191260681376609498589539124844478794059832784748513458190053385491157175071485596262267975282386381857166520221869159161478600918353137403622489421166711171629905998639899651567531189368987103344670638219213830153356175054604552091761980138462968421464782983350215088891232425358408719673322385282943239198276507193116787604526463588802257349407657006346196703009433423777303176721085358524066178670377172513104621631937086817987159319875472762604536121741589803641533063550047323424625392954192123847452459831976331980366891644444064392030746627726241061279357606875330769762938519116098473795141940597804414564574612599556460708685347224635613703252992590810106095678547593276704017567917960632198620811469522116482704288773121572045082757105759911328854609004542980575464297478424227512337440660441905586447884336786578030253502046379411833940357463280051212713876137793920162863734134555523390541074460211581688118375702683893737413373064786136102117456892858431543862339772795850465581549296438169063410893241726436968364812664979786272916778575843845174995053753395607215084957817054907409976826165823540829773915630756280337947278597262129048170208967868938039522410835956950955590390788693667471325189401182932403789890143271149404618589301382676908196228074045566556965019218167109557785849788875963907534763601901271080970900836075670019444770561101178902782031715277933056519913406380513162017280554433644813804232572946702314177591858808568928243004199440377458956913365437509205123873879457030498153281453924943915177083559410631597898940552853562248785016174829017435117376823165222942126118770893906990250919763121073877275458855583214954951854833869254344499548148068472640565002021063536246817761706711277070630443405077274858907887907600724528611345999219604706048387820761956953170461979529411847757227343419837437849064741594139587983597061368265825305066786098744582293842139768172880583970150044126343080740198963821354278541539856592292808639701275584485568704594406237653995960792256772986834695037280868426348329715257900697759636454013638359493062573221183010963281515061934163674720983897385497340119496883708335745357248714679330528554155526491052583921881951723979083114253407307912678796590573979464857842661887526197018772999528979968250035286515471617035388255644155396411941021683494951586829212197784465512847166567255334894987272520017700709144968467599779971244434654643130609325156399614017873951191401820392017823096318435808178700779050081311040016857441658197455373538518772746846610041584797212324415733842344770585414203084025118349798189463032641359754921404669023750933033500704000909914365723696582604320252141831826048491420199950900926584284725859258915916314653410796359310768284212136441859446962137671598488125410652061209463755719968485760445097839999579551134851263771806003664130813058374903957613183185711979422397321752083524939409732342031699816056519865109023550392334803274476930279984468789147889821591541327765369309093971654904534328946588419708484300015574929898541423961527190998771962387561564302272814211682091890870617101677082276889169551190395106345252086850299194698707541235644754003938944475712345722075156092575857133374503863916183806753206317013499971060877595741328431856352694927193061493174013789352761058356505575675098142145747549515057754455767006990269651084843581686939547688733022351943381893856042622783580138224246469118188018514607410374772594991417929944584984924706567086995365431244365930806123390294705121280084344181127960345940912745075416046739796910503044856133670811973400066066982697953165541627234095957873753039074335992822893210770070856903249807095406278166619734156739488203624594461056538483132397192419098457892070148127467249299791164474537886884358627819658675849255472187894260940651427888832896061431949798363590790140522083902338579516443655804775221295185749992297568903015774101782225829769263198790753765515942075121700441963518518797755136175579844561726495060821961773839894917246592067767936713449431098880101095886136738550980619122360591679583381216320424210079760435211012661244691523746559219832435926006460371089981217588135717509646003451577714715402901674867397329666727587603225260642284218014574061068323120107164342280813320514120472433296629649046924106382467552633242699491433268847574841390187767239940061936930345406829222074636040556907071789502468713747688039407919203792883839757299368594314555576097760079918885555433028953062195656804961959711466993821646537744562134072778005798729474913277589892429670920085275946721982071139712602343904385965236902580576859605296544526609015714057577502686387602785376025265590708122852495859429531667180659288084124366188901980265130237064708225299602082175484820116134058223700702422635980694040255760488796678089107399392199289949079505708787493105811359091216272448016244937612924868299536644935815156937328165905173233599486532884755649851862382638286152772357630392045821577689806815666420103367761926255694479804663493305503095468542577782125577003928804318177460652302213132401016651089472644230032950685166233342674224801936037970663336056630287447855443996966332502425703066227111584492564395549477785234292286811175182388438349975652579854973163641805720704166028285859634876252014859851097295625430086877728683393567183017418596548442782750446630318708753935713847255044166396429493691699323656507609976408498075637945107560222374102988223781303387166912625893326771688589073377879498282147225762772709580300452238753171792583031767272411356522870644467544141119975361297151342738698118645052815191013933170465263789694991116158186998963407337932428916360601751370760753484107994437430298006616823208003446984279280741539606558107704115295491145151855685134175411375604368040211977087284462283531209631712409590809852989797822493285113619525531903168866716077176777394925120204442462305283212655300484781929935753378782043604577412118557808369848142687706913155655668486293152409202843186094678837916545209026986633962095970214853373521742873076312019722295565612799126787979657108884899871026171178282843067840792893512935522524516191824390483978540591193096026465214983513716325156965665694479146281072313224374814679535507959459781414074580208919127339875007570642444320302628454902952256618647148603744284959418124484387369565601189566704679369994922225267229536975378401305713929617802434531791637956094973381956892980355914081557024124563647359894548276067056411074389296251960996473578090077258332745901804822421308058346389832242210862284859164490802181584010731354626935286660637447819326571004853508453730173489048645728287691155005034427068299761168980942103796266048756088764378424698091290140737779256980678325992680208029504508963130192872926516986411047763389296797369261001333441443508364834395127264713814540625812092334628490098698531357975521792280951658510486654664398847282587868508516862576662124660810914514874658905926566029479092195015972227854737881312356105077459411648003625931490161256364337620167002046763609528130167292207387487575127136059858603909404001028381288481753393872161138374305029276357691622996245810081258145485375749055429409851566276152143004365342960509807448374751965280989986645721866148949394978408011521272855980063293030672419503949718268989452836921856724414914910066531475528983983021475726978110228031983020198639983549092597369800721226320008659119601224973866632174404348055765130576532152732901009541691394486645032945716128079192024420491307060203438918703498487873564434979924842483144082823796647555711823492743997575498939698991412472636993311977638581490464207583246111881750409869436605864571299104073822474048967642146345554050268403693286284518632528754082188912943751205138139718365021517550893995742913397588429121031252534288077729843150710740332145862231086944079738401626870717141133121221197609453804413417106583503003544946158055409146717452009876487548082353195448731266342051288754980458715815005731716034391090040566573880398030187432714548115877464545402346698242869908806089063850766742966501557120913341496797674095091142839840281313665146235098980275587061640283791799367096296292498672066902858726004993684950682797602348798151286170405212252062157276174165209767181006193907681451771694210263115208876734286124847136523762232587026090600468817232161150148045023638218065290251407836708829683374709284463634793358445278440052144897301823744465236720056038982128655981587524666850026775956742610085374327942212140428430925760103462097286391634101364604348053194387649220797256311755424259877104560121596095433865839950320531313162328913722504793368005560678661036723440289917139144151229567351978032998119486819177171669069868392281928085052658292792782954712712916687482910051945947232157046734029216555263376029956026011401188517213561473501181664014379408353159945446815912776824065227855113827239988271780634099600026484119612342325302804037103835791767386116009774270881152012257082345542579134499891183606822848129595904874342579968409705353250321192296656311665830188434061538359017986776459504252830151641508699294141428137247308757656240672155940197480253089600242048851796305385013959902343346576642271347886116038800640641758903476400010585768854936092413926460208507174275385544504407644862628534297418350655384739853868381788562432678418939576432067844644453883314553758144053752068269844363504447622837191372115435778354533986682101105960879656026984160411874578150199671522230434158949492489591332818614585639543023257690580496475879064004782217097244227949482153389010282445238654642999294134767977379277465564708397602185830244059317696117945323352899606090106369525183660917387646847276228533461593527307748503786805378329136263453901171258804279908845216031589115031201790553334802972822512236803113295300189436725446491697870729706585830767377591684238844303034099235714309659231985283644344940697564432331501784960506044556003035949714929938466337787501391703146762158995320729866982157897498329892359915207169328205486638520347162191390581927942477614647017990985489122879829316355990777156292110031067935175031829822333074284348989276906923303787886563175426498589588139413972910020493953454883316929895278942356303396086880733430516676080740124624406848161327156418696336149182933591281805731296222221013081680140859192516171765408183777406338671100101558433137286109754932815153002055772576746227365066552391549898659786490714759177261513323876052960926116961206199192940191474572543013513485479334947258964108736042702428973181819354949495446954546641422885066259059974707749161809321086374141848076286310636671754712233003589413277258789058079353537743578236310721935984782692630073258030421416531435430487564324631391523003966110401050753165363554174085487760964564087551631087085601161076559539483638766271967039153423607201413850919986018794083858554891831962396706923179643240432673025897440684547817728388968646902434214783531673057521998450629710224751493406668573243753216279439410464821771622051464664937332699409190431642526913143309200542567020138871647521656952617620337202605208960297987826581767460591599313231422156824296513078085699210484702301124119555890694355222774067145404422155018039177989027601357607938196204695667331327643318283630858277572221425830076853149304581252218894231758433434492319531481702599110252623028223752359630086944584732163677559583415830167830789698948287363530030076852426278981054781340934463196061812778447504776311010395336159030293840727906056918897851240478940990404533916357669209421858683706658978539858060776373015395550493977629097281576250154031545485633905527608662285845729062935012025183152762130725409543142729885608645242732124843742763223296964367417934559998816828073538347932911200093746840769122287408579735166045922366778034816659766638135977545563821734477245261364345836551186095120621897861785585694602975652116114341176952762761637078327928617034049786057174382641389030359093850390185182643676319061505239778677576247914109697383230749086163272460074591608933534144393339094569840633041029273348259695926249123078591663501833748468445552601738483670152859952269153443408817793869267596257747692465950053196684042944421322377529806933966472439279150175115364973666907532874003137246798514129714848107250558008086320070569316810972538815866721049214133738243040873719547203801559674747340959012595445143701068757846128201276809859354872792312423511541786918057333116786979202353309033638663145309018438882569802238699647793671467451467658057141436371446071083067653344083646239827589891983749935283830172307383977769113580114858731759205948026220329697887043107027306300661761753897713803397856305730894469539765155947117596194716488723376276688310679542874045253988459056520162908195266992442521454112372001473022381465085688500990516513424731882032237477841524465771367499132589322184808984124242178529704132866123748210074725265249215991101917594691980083731361221402011419024556753856644498718126775424863038535189059155467830628464481177900764019377072430062539680551446322011414511246771045612136016705285122703130542758683370767606178668806988219972271167663664961182744500994806280064130550118647870644375733983804415092738740704829433546417498093271275647790410786048236077106892352196613805740281930107488147436270540997735265441269742231522122220817092422026668401791788076568012389314747533775747626453048564476391817913226510632568469546511663666306450456790098532764441790609464815752453674449689412500196304246312284947172809366757450472525680393883502801241441391582602555737015822638983680918892541986994844515843651506479550795988154577301731639998725679391649302626544644753164235507072756440597410399031968608499637284192267743087573830533424124473568014085496594579198612256039041780381955085273983478862044718806796127862147250497318787116658691161426846585135291920394672156937010431047407786347743577545897147857892039370354762305892389418869997014622268789420475733459979422905136793408851974923431023453172403087691860924597611861998619036578988908951324792665585436401929357045832851192279408409096312715398277772077560843378882655266655921348815935595698956114467641217936811830844939069375462535862869302444083755563910804659241795853736297143625298751096871917447621376903683936344181277921151138312228912029615325992537339165047968767058525393474442173606042011989261359495749861482628366903671313907573576705267002299908474286620421169420193578028151870110204647440124101703501113516253270697328608478989425785730532076701596306415609298659711971252425713624461157183770594533496749591435844891852852167966495488487157937962501944933061364013837208077499442009446270162546547130316364218027639116173819673784101210215920699536172235202459104400196459013094833335073756647038876833333297599772809617389635912417294136908528575842829084838732012017096335454023009663345525510823777889926093046652548370438682669250981570399424956739246985898468303579691652237550148861370024714284084759302877058981341420776207049230023159158048720117680045208470386709663120117178672813711873656006753353232335833457181015101068615673535735256402212846936987750493728212126576037617695234028293137501684830679509746048040275032872260123106148439222509047466571919240574099059317057477609724162500584409535032210641021775177851517161799335281726626082647598844377988660440374277403799888633237716863152325857583997219082300219129055741347563745951909613726080244942531400038160842231658405677983229166145604476328034177637024232215267973859972918432716930515828943653041665466015811119764340218769126141775605213096766167055591295073924346392934799712267367926090794416910445646992702830336027058028035859242564116122709794428024002970271831594335940078788509140644924022790892760035244190857981484545820243636106592214052501461457316812187491314665761563428130909741439004478720512651414807620751446676465557928550016751417392930211248990070148418250139973719412330475434569142916432407518027384786267211922308760220976117546402855436177262930420305752094047459273671519749311640622572909699610105243419074620920517969242235109156984414376397143352566012148159005638821999885508047449974875562224184689562151059061684983069263059011201294738842664031637668562495519978135338603760216015783636255460813328812829460095708535708855146468416210876660314307337779386970245659785404607188467180395763727327565550802473668461752420047460543648283738491008389963891952237686228852996987585056278917956448317232234044503061822761568679212882290051563893952676823525826355926200722746880136220060316449804964430481373902106045531650121770092701648423104247605492231467187719661056985588842659244319881353552708415613207211126381679883153508423156663373679270027451878780188088147569273905096588375313104810322317603856639652457718607937141764105072552014689059907448484083170176928678216502162402962917218652717848871722052098463356117492748347468603433486115288324200142747949784372413585283001438535589557298937249119525403714246431754728496213228667183404154233680434499516850633906808700822851591362621055446311321132286187386053328917946255802043135889019118732571814519530146855796293667350745871956806830909817029163289651079871688969108125165402945578266646927814351749043605832309577967251549856096498662408932073533877670529382911530692214091276981144727123765746365550583676670815747250890732219682282279863900353702678981155225956245299377472101712335260261405564661982107797566274261036505905388688642496682545147187374230863787496573563568024851843956006891900629909664205342823741180371291701410181752502680932875372054217572857014887262237947570123224636684790010234267790743158355548068416078013843004851576239809747829444336668200683294383717954429043735680795217939056189238906973902329369073629177649737822117359819345424025065358644319989949739921720970382716202769284089578110075210145171410419827133273086238786185622284420842774851972682150826018301113420427108562481671638144676216006374360526337463024642925510108518251157519566146108199759859008416074519860216953280759020890740471359062902132884849474721672270518904833756278647326467493745623309663493911989226219097846808814245258857579744956262779913491210920685163665454428527087882092821098299773734359977515198640112246905225326373238785543877078838046883818420062355899080958417592713608272355805437924943571840694693561899780651822473127502381059885386409147561161507230665844635392471198755713387143204160100996187921528615359539860373053709579168486019482426967686552773662828313768752000244133051939274994126015350112177439256638150080950512888532836803252806868698058282266054429368189546756685324459724151362823133200299041238679700381861874541097509435916342097389496017895185877802985330653693253529718017672073046933834205553388439217982158928477140151360569400808146801591695566622318940270322955913085356764584987473523074065788654851682032539399761356556457571856667108363239627799298309734508462699015087007590981920159013559284665621383604271751915248855208557135156430298925927886202260784995600199474432670135683750205307775144567183395551372863810377878615910070331462976108672472736130056142214384312263955349893381864879528733119139719100407958353089694648295124452704302339370496818938812724689488555723695952569144242986556019707403656312123689723323982498384115946820095840845596343678475076493074323352925961207633969698772996423248875587147082526185757846005040990158087271868348794975007430842695133410234536890083300478471350144662570933984768249180476073970013334646588496849867822750160599531353173038561004747588929270027883906966094970614696736974686851250387853218079205063547243348797087373276642395325796718439891223448017228307994822617091682145120985483018747725205834948145339070250951887920909369035561674776982941019600911714229192352008635297405634716943066043540349569118365055851826880182799826576690015882305638936159009061672348099244268926965137230140211451774230298679055260717507208189320695389943439415686286615998757540329866643650455445077120955959242276249676727690434712023209142630296868484952024622921638189112786423718190748904176959892156936384759711184777221648889664277473434603005401066595434628777506192652724030972355694489883530945145181412975704875690644113685868534199882779465101731980812033643138197348435317848263979310510805339087539631207238361202861849024034666948217629295925795717931448435144389679209660641262646902038840676104444133149325998151369936745039811056081402674582647909460855351892495783169890929791724974927356920178883312069858028680823015803946086635706601963032366142165169502062480824782828254121335237323866563875151644645260984226627080984812671249705967148382871821261378237154703281761802728815258484187499736648650235049247157612097770377061809809966675497683389382049006254229796222976188900317758480627851952595390545215132447120308515856499423454899850439474622728396793648345147970488587456744618517500660498214007369579462831449728927768776511724703011501849944559443379602919221065395875812490959893787259106642025009138571291483330317034392238245777536132021278633754565208981240097403221265107790058230512349552293416155768821647531048009948347724373647451994907027559579554565540524562370667850331052586788415621892681702641342705241237565095808867016540945067230177759893741550535117069997100615418791025584642397847490614197165939848994961017831050295202213707626975557316141463984195961643410483654978716424412658719339946107524722190412947244618677244959510735224471978965826355166753755844435620798148252734910472373591235701012064254040566019624418119119968182723652622167331246389184940935195773489496671872630542809609295582729952716585427751324281521172381312700144804474531048272622151906291910387366130502390096215238144112529631079906643979637665364211428000583535017207297116852081820975853810059433115861027622445378407271771379741389243708155930791666766046084889065861182261852021283198493073338225711584668513918607698600679353034354443936802558538370582301676055057553165191009821663649093064142860534555913928143340365621498592307465092250919100083186139932801379974563923769214805783300265641335744083784777704617768854214601309606030224954666321819258323512167957810744482791971715409545737867977688753271392407074007543364962678509944937614075468697270791671289849847788764292253793615270139182427631295985027839784890327723125891071589309296030328026714888533161819391678040055680949315724001216172537088581756827787795913991660026085161003163718514400316707207253322595410320258275708192189803719439212507371762829588585562881872045001992641228988104914461257325889770100764935816977730930789206847961081616544531789438726016613207694341600742541539927693281154542346316864911601587660565163987761184852234490654076518477370386721463341316754365648911689999640693046461275888803928861381205848696923969143651946461544967466387801298176568012110190945999873335087373308441620658389234817236685416744709831013580174947542739476200527009226075010555380421119872696135133371145201521692106480563043764603732881098862561809601987099693974278784954347884178612535274971532646819017257056032424660481346946697078535211050060251172057305560322778098987999735826249102315194910665282417752925898691419246370554478060320304942154350842282758874360314437094178043640091708834481744002864262934423100976631242463758337600527173109669003193072918271744186046656052852548846648423038026976344373843062967231509255011755325638531462582484481728857445739763636151354235284173029538031235253247219754606441156742288762921722434651035838489558806680647245931322784311523104579709661850998277912617141312852206913275323729687648015950640309497972637471799763658858769152964079882063040690617808521687722383759325757108178810930812445006267635451483071114308769362832166938863369853743846196243834633065863037526961118953235681973733686700974372981166700341795921647998110591072509013638535538686965268429523760712963602786489594688792250703238474353573204234838376823216947011710418695345053493119168769215395402573368669725657697260167506981653104505779076367777836770179839088172044456815489202948471041087315047856620884409422868078195322643000260624574567930345372227651565757037814474826869041167704092854194944219808607981419001639964532198404424177783863085433795247592697748434712348513304640212832741400799741858930306511480293340321921880125724771768850954838874434196115629791797709602624413905044620306982466749983108885641752920263349251364701716556475898632371434650902417942903307200271298366721797896568604797414611534427453979039747066900674845747407131399676615210629171774212716727792728930148118256336858706495324180890529712669220412677237130030516753054697166596932901876169121965235597257740546989163078825445254862346468301301009338619872684791115536075837906733520328431318085242615185707955266222751864003863565340519850068444707439216975371338686344500719639526337233183807483086652908822934992518696084090822718309072709724514016602682912984126580055607861839388322534568540465641924232825206209800108699360518986620619103841228989049801341242385166960113149595896742234633617522087295621573693681518563342680385425590809431977441491969475637401546878742877222972016737116384059803619820283850035688303422595890517932140557933524411664748610940060486638320318673880898824695868561837642475108923710136784096273193856000212068404663117786473357191286902965606465155722879935429824606117249780635839261069848567390059439910697828722350522607393337427867349991266239599107311307582188910808520336485088660819075548291307791742603239584320738936716372364762875047223338721226578118279127796582273279865263845650038322368008214835775102426485869786487244853860631763655709211993815441881957177177493413256116140484884226374916566638331337251872293967575132838952538449436905668075597763198264036385580361939240354527356415892950545314756854740363629863752576728373093744569033914734755471076701989522907137902704483164855298571702648125861517168601841228177764040549857128329180540675561873404921415134476832972201894661255236507680239226963479540529000569403146327286963714298669948631047621705557581081987260081138802385714448893505149175988868584358674750235354638906952008666164866977681299981085119465387414013705390517127633393719107365331548922268956165994255795864269366229358218040911029959465419128115832792645597746581469018101856397088310684172440270104229344337450693559452742944001990809373289091987271796527693560205694883711793740161007863754824598750460043969485379764153288550321821192496881444338235023245410555278067287124038319981983166863986294207106836373398794176536945126094062395706226205233147478923559356002294471664707849083794649116141124384148376117629136689898155261819156551261041177988469937151312059250587623758323396365289117407285638073537925349264199047826323866447488259712426205037654270066358416721024623876245939632013614289241641701556213973324007285139059638184068704426451203572392127788303613598883729967608986552734992819566068864870918531194825117292311520125884566376681798987911365954345185920792625604283264190305255145758383727581168744018080504470784722556879554684103763124413997273951487641517346168220258350729001040280509590275189117668703652561982990337337571769311475647183328540470551549389386955647080579655118757442566280433927648313789172314567629617993134844913098512279812033423821856201647234198251335123388692172323790656400010658093914435115519436261801590100264540797856203873311793982071633329862612041681825170343935388130727556345183629540640399199900964665053766644516099612833292834200917293795116313240254079796499882444853606048337483521416309629660567356056152107962977232762039861270274175511815308969832697251258469290308782951280689053027061987158836053588413681070673047184214261233292569777496309276767995875596904538028854723619189536202864997255727149184344503293425331060515763580859455962849547494418215226585956116028936793446282131606297824930468960848978204907073890602133834390826472783579229525961216990156762130765549529053007545592307081281261587298865695774584288905939978214212233384486016079873052401591231303567658988852505459590948854596347836021309624996677213868206188528229233089270702415589846966440770077857128019418526919290406957006156680756954646615075546150916085950998818137586033525108796887035056812907163133600600853761268046129012343748626774453503858823991288563656108044740662033900444712707805919241919614629714739127758470090921578133470754090708233267693581067361521455158980799863982114900979348052233463999942559674878723267140457562440252271471557017610290234622929381021782848800765221200153527799412264006313097732633827039953490074658514731665808036844965150143376774594950611441783714515252986924040160930822097612261786625161225381489814457908549892950356965355621089549002775719395333380471774718245884940429155855816813180515585984060268866103360471133042654919395547838864493560471402209659873132549718745283345170187301324472974913158080231265583698245713957529801240802122908865750979502783361765271920775752531340526037999084786380977759547732449476987359239023914514660744146019217307529341883647210932308250866035606660293528002648713006432862216700918183993596833719316509724755272241725753311214529717488052691289689135113921991113358100097992758070039309233463310614632365320425863227669219455484189058175480366352548736737655138309608109821954652427366312023438067947719360654609727767656004893248302327326615968730150225154446249142773319908597144136676339239762318352148441286630773544321267771293621039438861938729752795614961881079101709020104670908975145910393971386121339515855023651202781720944163191607468601362735811900925116550887586662577125833618483712154655048853448209023516266607987905488930183661448249384177246375896229757287859030175634864309308398852058246308709579899826208652555555963841600297759930257930871205402175541189122082530478796142764104961019055915338928928198473477218559151705070112446483641650186961491165619089448622099342409458591082204355507253983712463610279305680844312378538117955993344313820249998434703121724487528745645505713972140512554274253319253436186403567271553100368536240154978470157724424493861852832414043274495346837510749482653681320201718158175475123152929623874857466937644002720766075640507880691499365967711569853318518507186967358169704717327551561465532614895091379142636934246756806755128564398565824950898757617323056530346858942138751704841403785970323678344469629810667999985039180704945692742679680159562014954880620675270221437645589866950345023830715441352423753290198227292069088458370434279845986333472242725302669114957160153907099599687316795497629868456501179266273508404628358230060042779370803244459580549419126141511962903065293770652461828388474575996343606301536923813129510284542377988991186871646338931749877217548809653584544406973932232970158508637365370024763500425489545621868643842629018859743257046345957950512701518576906880464145633337190301885062661738608987401431397719083031941384584731459897825370148079731460905880821419886246572912131266343211835816197781135987575391657612489938793494884391210316351129241180222136249969600647420219115617290072848106222821409181092856013224252836638128566040223856752387317724308361626763151192953733980076028455410970535925103847094650400568702863459474025107595961891129234636921785356982397089832303197204066243446491153849464401785957073874476133581323122347721778023214303294327208567266441254281307250062047953825903241751164893480927825342722914902312731575551166908684576561685821455474003072720276579987109988615086681861108017493360979873946483222379898021908082388534804527994623474683380773756970497912906455827338829703933849159239854375935084633230070128313881774808173123972409792419648315012890969622637748912953041126405691090426555767239532763555508577509818150695687534148042247494493333639589693589113828481708945247684658151213746586375934888604904328268802062206768314613319699731180259693102527657707531051428112683269284469337383884301147252081219204748350952661634029018677953197670563995584792609948023431932253097570749245382499514206957137666974963462780392539108717504535306287390554869681549191500997220872774921352656599601062801921767873365721148340464623717689410628072416177059781774151362611420416180395923543765473966437131963176984987714988609483785454564013144180022544992271151431966332512347473335523403662285470366519726244760507128013389701984145493979868918918621594272468160120211701766175878159211980423973867537765490330729830763352581977339187219750089279278699668108565697850977888755078788528428808923436216084947387941419902033941221997653997413101784139733688385345562691213543319609832291422549263992061813305868738849346878242654397251494494305594725063310192295829396988870864377148140698751456825778133901343687385357410881915722072738018436379389921883527517725331758895179167695740493930937054979782112415010533857932903140853184044771776925885288792959302449311836037316388968276210875135771736378260880548837994557464812084824709197707393568820872305101930719940157413648898965744914073829801965644232266342017567292967305172217653953647082296358269127918717062324504536496335792859692004102004444509199952202050450775009750482118100358515991852179380271625923470188515802279351152532494050197112192478476678032245145619378747780066546848390487939887162151114317395531115265702804785083477195173662604695537393051799509386691295922688812704882052357940346245613338071800831909801171529422303553636187390334902168190516117110559964681388397956745544955142330495331258015206428742927112432464456493961674072319613736917452561383974800353217181329620337885087022621955050762672558356144983351349664393838581947710178593760622402300986247777131039191597747688658765275045747560650068642207185261279688693472962381534587842448687460072010589351379349513828641021144470222754536489863311870141946356533764342146739791065417380613329561539759495863866268954791152884118612495363934966734648148324398608811984919971166425962559295142477349690364638459192480413827637718402279403232197062176673730182557850546571465872337737815501368955692423952952046219758155920872443328200135992611634061863401453202095896032164624985266256063034789632021650151800111935254177814076796937691397239878948821545243709794890053543016260265937312304207893619468218611602920195549692402629096287776916870489519851144341783856718099020633372995037095932809007063246062419125480212482685967853406036799866652387931227376747627205942377110502303109006945204708045282560186631603124181822493944542845907750594668576794120499790494629687698632317184230099209690366219250762767302452757576040962572119573361574368126903766925395787307739944638994493956832485522646228762069890288927036004604050695917430208364506775295002291186907739010079440665192765197212394872732188827043956470384570462731031335706972966858209305057563955847819195476831488050804122622182804406559852931251422799054913556027094335119855099582847655429627931006249874112397280806916137017341630456904793396495202416242248098286548210776484890239547380607791908291825460696063589865539771320089379228783651339642649599609123261271203815506896302438732343664617434005979577180205104945124409636212766505555323318374519480801047182982887156053460260187972828801791110238807771699248737739060935806729189635860018591485766877352437972763548599025908494636523651708593343312269275914246271789293767558024151558303808878306770257750754245609302569440487517282771148103483103832115519358512728237287344745183132039294172722627428293075152194873829426488180022269091665864336280674902763376551903438327937944952283878573390599578848174211959000627093057973409554482217852562388432763740043784427701779750679336791479741052178130128913132432928449017622777301340794850675417537454589637185090365061766899232688442639252247123994805714377063927262972581893053218144273298191808506778275388602595489703552059803559214102668674379254054318383265068047270373102834365110736894787393783340496381412681921680868953412158962779841436623285780326722034296145683356342256761640528379995254856348629535878150913926667106682836337270229940102508548262902296999702496972559815407025049217261172404532559318822979945428666517869194053092068207707184302224781824116873600596709556983870125008885286040083936107571629144599386062921633760747155599455258025793136617379119848221060170765977057237762153026630519208477542251475838883486422975115044551671766042990980093640476482459539474701449975260713880437039926877282637971432060953617842823073486086596622703142344365392746206111819158820593529813134531634892519731009575278216485753023178394110422977655813669609744468575224887547600928265779705520762677198658062491549595653040555530340449131711327987599651720793534028491090204960428780847946069356804338742832266097695088737405333525790683366349379966957362077296430023437550810675076492673489812058210803550187305326563376451998285159615158010764689991630848895468631128118580423678032914689178140723202102019398836322817671913990820380166993457501614225542490767173516756268698223001042782980505727396339354176085948639440637089045368524173951077329172446832875009566870381742241357020078338030135702107866585656246154900590249704042409979001846355329069079414284082739456476153156629262719441897123228309376811524283651394700920410754715751849382572972481618891192190959979551041970582805417862814397997208520421362308555199858757139152492774922457293103695273898063905448487922846385681314302119905608535100609662906341449360007454866962710233239374779507049279798982316154710062684226519228787642031954319474917134419703746679865677832023799408233579818614890695882942369834892834850141472479954919916716628624226313110577246759262845172400245017264452056247739879038890563658237714497466682193716305602267644912410209699511235560267856481691286604283236594141838376817159287420269173031373516449852716028208019962318419913549837822599687671955738835731585520126344500325412368110315133710416785631852266459991297201319179638572217833230099499190049918312673442167061959434266552364616368603864265872465933411691955959234824171214183954486571288134419142867442719217617530303474431297887879631466146545231337936697755020681438608977636602134098582387478925908749785871598341277229008522070028910012302689142013688238155868691920884731280371509106358053182502192484188176311223733395684657294502013035199095051384758040171868717213855719729873858132777831328333837993024493297306625306756820868358606560250550011082015153881688410438465000784424812956332541608984535959119741026344560431472613227493911997338724878561709454646022323163570283840615560960687766794417627542774108214093422025121766199552215775247016857607683116780649472682467955052824557173806881680271630001232216157166325311049684698361634730194029682073803179168231017067595923471043410014218001118935171153523809830203746906315064056319894012980187250977586300321863727998378276376895236624292247185871227668900793096280902741495101735777100957849104763162175488652566359186131022452029468613411732068816325883877566121529451184969511377720291565271791122964021717798302177508887153950624531971388133758855101758841850901152750109276260956535669159044653290292694355213260093026764009531564750634252111697858852143141658251220624276639462918034517119134626184866079561199655053124234637489135786310780265560171366458983556348507425761209876494220824912709577105567888863582090294013586318286671754180970601378659386500169301886535677437742120366675574373249497048859311112580411983041253444017868842005697592850718057910678042406395900426524573496725685503477056146416315993056671416498747717543631022038740250741874958412892466434780336964910781783545591788546926539597797284011572966963288886472139207525473856762487449409764117294418106961141922651633662663345766117583637703079841153288536754937327795290134214616980870882742376095632648638448482128640231230690119644197780855724749701884996506196829033838271389314864769932603736076132997935773016558088350311841731598010945130916978061623113476864458057226426506450957329690944716518526382122402715885255567709715697265769266799708937580771870705071187153050823742909616672433132736356337914675633093848903654971030979334178506946074147542026356128700928885738019507334132100260198971264728173039502936712520760699628689986626738874619861466907986276207521327616528212371630373598470328751044690413469848530816509093340604698089075188115926339626148646683069669388254171212750818735670265595603849870056214764347979765815150997482483432122430840975238373636803068185441796271204907533557873503982870489486935923849551437496487105022251867132943100686100147213657206810253543262520742833400484570540711981138289198221997305864851998580471557518410722673709419289423777060789214603081900795865939948729726802792607917640526870723311960822282755420098977319568322674170859345711794709746049880475474888600744118933814291601262091549124823992131584916188545252880653750141528774331407853035594632864818841024415400130058592135775812075883985972915662673398842058677040561574320750799775682465921799755064834536337785445460301089049593169755718020521022387529405183970522536691807609967735658102680034749071809954008480515810137548431395630432440489965238884483140100213118254193285650357958875233139433272007844171799107267433261742782860458837164496721932344969165576327874311525928647889644131489690951434312700411380567709110810137373797243741674524900043521225099869631405074218702312668417557902422777944993540384409468864486194610003059918700555823783432830477107021156862500026258634155718618423951157759740365430359073859688464201667343069465596933536821684719592839876981373097897100412233619853307290261804809041617454828140344236989869890818603160655275940784783607736112039870201123305271159264557512541552295141214705533560589026709296042916367117874841187288118167238092316300073065825133455791780225835521569914026258565860931697584694253576491642469774469541923547445046791075150423166599391018742302452908578044470898524769055995980418843453351309112844154271909519148094263963452377368847372643143128030306104998773551647612365008750861671069411428613685644757989381749155609137072275727325321096703697649999688743975648099630605406831454072737906579844941911455322494674118225556063825889266705446426130262354123764641142391789803862971867212950107204761216925140342781872692770713202105764275398046781248028939954092074048208412987334033139022260410812380879188258343696635123788858194675661784196141628343951762170879686089746005413243715321114860849302799846614894437009173986308441867436813935586038595139076763516578429679454293711010775197323299539789466207126973227827572858501636316984316472319731164781560284922954306251022482380032458031299154189210857324452567600338254142453029980995843329137493522888451891671125810996601182736274655072988823399658094121271610270534185123723316566891633727500683454336077901048838654801198960429646325502296607464916987062640409325113477769678917128872941610518406429599989654218319435199340639585580417510981726811953394977431132813431152460100733512461904712037713642552905813453854533383548860710979044476018587396462890401652917656959862556266705667205192296439316614403809566956003412799236774821465467084272111345111400483730447951538993143318274013195966101023916672279506601476519325195834029353553663835115874870154679097903823642669734819019421385555466563052948684022957530741872771354581057961611784061139582171400996642835056209717226614489479165089008067814189640597207079615703067092441227359327039540502422888599422707891952715202167590255055909286210495783253215999844746564997188088758128639882177299646664846435886506263199946043568956085432625452290458806283558522285494197240831339898500740205500208795705441179871089713998135800152068251642757262144300590082009894003284891951964948767347791817299889373431722610815004336801605760830426249232940777517344006065620211823918147632728691804004767462203316979073030701489104696848339556412340665948868312207403409284427433329466305251614054258246231041240744706746292465350145911314813325146945749268566001277433576898240648105178023321262935883099527042595504926347852699133367668388082354053615621675871371028763202926321150243373367878241898533974930780892954842644133360581434849384383173390460550468789786389268952140490300446018283494328671066303258353338422761960213196682275365095416077819323295530573034342002461845412790121705385476971209828127189557652949712912053937197914073370590223277997713945639225604607551249058311954078397517565137263770843724309008874088648981610421557712360250231204715817389259886187030097784498159799069011357841999315045442831273557106520660490825467899131077378646580712696515742302865163147931188659051023287447846643948759925071527013218304197523128981644226991756908670566691878157855852699624715738989416729853436998623777601084293706157027912985925197755994465674812714322821641056758030593543343077509649055642228894305013818815819622723132654458874701294321962020901232265612012622159011032791729190982825453403448228538490035993544546446655612032428155567735163603561327332064331893994581923236086396538204748321498713696234469648407142847001750027075013416496250010985488866890942487722341030521698794755668333029334986009557672695877633984251672046885039205479282692094533125174286567875678265229336313270813561211221778901654814302616427182090704238405479865831593966015208227483566699250323811043040646915761677520259855243724841071961788194689265305620648855417512374211790389902135050168681548855933841943877707756103777940302471601872298383205486167455775614687983491098634457207630758204138045565998761496441544651859225910284453292552638323313061166739599164943658152568435867258317616490379925339844498742030307781995626285710389847757757836668126956091356065427785692107972881011208906059699012722692764222311109412575541421542188020806086413876088938204112774511444664852604257816489324159541288670458135117950873827447325537767852283715693937324082338776168397044454327786236664074219491833226938930389327717516234559850060301228861353809161456068803631449409978017244058950229365866109527867915646067514913350031241352434422310333160002401903705445677265474177720667494204053216014979187062635564907002311723983486977264400253814300898389942496607725420190873373071251662188840115405898265565150400284487284482314860290092612699431445345886518793264197554284399294548134763774691253320708673382691243478774251098520662193331744770401231516815119101015837893272315226319394519896542647350094866777250283153098189811286084149886012744442556483800154497797664270984737971828180361649858114844685196795392983830197242687390838213402225444553087674377619455383077932154332485670872161812199595255978484952418772617696343634180056849135335528477644469379808554021938172605842911217853060297391758743364520730368511731212716415043629003855292184356932022267238282462179001356150562564269718716789178108715892652992835367239868614685438677523837172627193143613011301291177408656847132374837254073101317198387284455296557608718414691720216651699106438122030386037605891971658492670385351357854137055135958121759251574490346235980955472676773385080730699374740863850971485086408781715790202841715982285066830550064628497796987881773910530637239893406166865842101575539270754164731720569450931360822878572098372739651596915748575942920977404782261094095465354258672774166121540150940816652204662404349751949520486282379382503083749435850828060514921091941121353402623478404291903038000222679270074767844078456934508292973495427825621393257344226504883070659795344442224881133442329164598084682023361305228090055740102112335421895067553340384646775874815457780052889953517692245882803414395794345068938097843193590207977576444311535907151405623755247802434123269223100793102259597547540700266014652771429462593970897346356317025443788339111159711070644943997084550429525223164480841701377892984385972311615933951867725247878599410923900091616490699302399542353218485709710677695067364492413705000808192603060830328996472666096288438801858402864519127850176220319397237311250705691842563580586958750266043403002960736707480312864685042369608096153233429604686804519099032696304108751617264555967617138783188132743690393407253170701062608176085524552131007727127543187732551392653586380528116438226861089770439182290616884522043168952693648390444270353745026674754179313928238103223030141441284944651033641986587717222657137377893118569211183121276033208871002257214915055474664972243912182665973985936982617436382221274121070091434112879842211223572029948729156607711293148575995180115859627513214230396589252121087339113745531894096363025214207656002095827244790608479177454633600769462218704997669632572668059601500680392706609717648725592956277090490960578550783436009370190804217924252887193711525940531297805254960773232717583323200132048219408647085837465382014211345234842091301201123810384496322221452757475934771116677956025930967507354068143243028787559871665616353784062432561676697005062217503173174179653733233236845639922919475736497988357219772783651367808480453751705062480705894696575215892236933097141240119728011949625002794610122928412761245243772498928439744419241313811511914506676353949246216148175248266686469281726208291211340573160557123785948865066083180471684052254282123267081052345308539667358804199821817565191247421875837742351118954080406859662443361970643970881119814156590777898804868095627170450536647168913158663903604251348884187711496469425389406667563909488273191163247685006303056874311056571697238151124159227982146020080989079136317736081571629983489314447265395617624871438913037799741760773129971975589038638414622342999000425362494456332707011577559490875819681489300724483551548319208651459591295397456043476026246700077356023918550127440694104414714512155532053071207350987822819129495921633634757891526462407727997120047542259999807033500833406062495585283051675367837741551627242821291631577969465876659912765734197399276001504034851292247049460343654307561553040247851002559134852032818374167642420980460751187892638927554483399216446274856837069417030442432335689696533173619057969458270469333058516954727437446090341659440901993236678252428395372934497896815468994886386793906719814643481957229915132885525037779752068394294077062917406404877252197037653742458539937225101263897964916523771349071396051040932451193607221083963420666567622870005761251352067190244198052928162856341771396290516317736790369455579498717785943124263432050872495579520351274925496943292152747809577378841150025372556287340606214755238245635981100743082944391027102978943661221969327240242620370218470140747034062975559142237047138782014566710098019864907689845887651549506286190715251702005098790419442275776713851697746035394188265478326442018634656763055537781608850162841230214391406565266694279477782085225510251600315545652626121513528839541545460591278498662858382100100790258825166393695543004476307729157555447208708337798470059548140812601365715009126803605146964383239548468696553328877967599609589457006500718703409033410655365866587926841064630518459804273491007218273804688443416490887669852327432536294687075049755584043322915992769955738405488692821272141003555443063312294685457032724599006613471274011773579477056038006017057136869044199040226086664908921744645806990251700737914105756002061565558610014385207194639546133824670196011536039501729063455577787951541548665285680152174730744209435323666181935376612844363104416979211565861444178175185094897347864897832494263170587695402260063057821536106033142320935480847870350883210595357557467084066545921719853719677878735427660127178054509018038072345157171592440737098726327122997638168581498972296792107336766292945699637732411031458954624119817359554235397124523408550977508490847043479478128520321362318762643748612810019021158715083583413272960870890061111615934378277396651694219779725419904810942066123073039853975902881712638248516510626784961465988302276238321677940452333488423201350163135832337246868949514201357030473110617175873908405902900096090297769283880727896530246768350187219323123252928936501870638245739196609612073953390513236682376659268770881244666213195670544954795934701396026479036924123736976844881202611669510192777267241113119088277489637661257436100432703881976067888030896712767075720484047976312493790456669722533768094965200722036304346545506526369024043634061348913812347588375645107368596394812427897799968383332223926012444426647630652874162860055872006229556349888414680780291410948175885430600219435462367941544274117118326791422477655519381957633307147973966405267777009264669041151067695811905657246873398780826655853206803387227783687178371966917771818676509783362797245025027014494015641229687328307024083362724783312380485147988887096311500156264546161848431529204052590048269629262890752546900980041516301324388393269752689874110626240325599956815635641847438389399217937315361184981238015849428043304786552512129164738919018796618008138800816209340788629118422360529230390781677270954558361390542062104785917263052616754887915822287688403769520685898944110699823401792963140695885183586049353915796660223880878537649567391126281640887472552044156820479904252561643514618331395654342942976712090617263400112734167151323487529201367784931615233020517528986669827532792317503343266787791313909378177379743524586576157225767159982283714840984166251404017177429421736989998614784978057542148298430845192300021287235097522149175611440921576740178344776583286236587081111690948745045371260246082428523740700505484269944940926011794984071949138198489012166589642559246494997485693991412497519983884760076079839837434675781669525062163681501929694504994474546658117644273513431866378949794993549701575345287383640232277106266926721445126288114931902013583261539027068702395927189696061166836541661624270225920061419263638417555699674746806000656020160546080529063137819110550738539780713782799647805804423953330794712082397484245968894981069327261714750609472919753287497818313588676294145410734050903122834354360061283835739227363668681494431999416247610799717335457791406066569087986760222821151049917014408758840640192255660565853309944464630800724722208317099762474529354920450010896610663788262700967837612795646899837063282670630253077527760574374317557886653687221855340844885679562439539031549843919315640854920430511414906537895113584895980225218657444272576461741597796563047651938084109478155480726004632783919514375095473859752611870355542928709322871512719160851198445171996796864644128062224391901891224705837467216209764942783716941236650337617290898299937275376913210922099015563279372140216657338059790715750548468034463977665736204951928438784339177015183284959101249161752984878383715424161746017589873562234830541525400791098324558988864837027648891593136302948520342493128227713341040343075560696745963971155310412115076361348678945979718633365855194688643042059172341465173155574369398860622567163166264100409465026966564893254306130428249063228150588072116055087865149129275407132572370523169008021469169371561390989521037455178626642893273781615836390870042712530291002680224885294247217855410101943243689492539245242431813842011800272462506405147535169252144093868344229380593694496454497461328665328017265903487137784092819908500390772894325281622900032668486089388192469276766961150226517708353506280774895541632788954730471323253576244815319563796325080904003432916552250953160663481039684035549389105192994980355330452099388380170123513459065520194231713351363885431608263759447202567923948259023759389295285400873552875936889485443273077297256687848542228091298733467612866400029851826075165681474575460924314250928704489310138573064273144907244283276901961959400996702601649365622746097041503815446849529089588601151760510634914073542090788559510008996281671870344124035173294369099974322789306196199753431102439806759555125644073921333210085638859984980929706539232288216142911415647449534191778294186320552540879434908955777076076531091917793995476433039128507503119340545232776664906378391088238817908993996551352595965014453597105269329090769647607632901331029919161347519204792936522325801506779549228245276032441579563514751786601963139209602064022568260227393088892422229894189102669602467741819211745055512459193264860940524911329974382965115297804963919336926534962973263282895511122112183308969175346379688962851524712115245290420771681841704546455825889356890301602633050853816695466814542673308368688709027874919260169492774298694135417414225390398473852457089077232673351627004594323933817997240397971343684720752408219773586046464387441623663284461280576995099470922064615251761938466070274245251402829655170301900447427710097316932058690790527644522728037289121946062218084323896827045441502712931750797332823653652340217711031160884002730889590232714015972838271814736711869338639335919548983602241900889364054039017987174912041249773531606051742149780866393395914415840894852964893538334050385192676247274631664835999244230803264989056414356735075124996718816414642223040239053028584382215411626264607297623989694347149426991693756802368000863046829588779172814774945575193666140450568577510703010751946684731179043742202858837425600215987027005932196353740185553730705251474208202294459633294885716657143857056014447927441673379378611616020081106285294606521561417842353192232068545980235366037861246452794719963969075214096561166424777479429718800886030745137499382205808989798068259460279943406304691757628223199082388954731185201850586241564683802790521632177708393743809476600208213386181306830846746310624082552996749787240769050279125521996381977122055203582865451647349344339098990703077996512265939578866859853316049539902864250294422730766572575965092459855771808625726448332639315948182354350475181513006697166514317889853789617409514427336931516058985859673268276425989923760760557016246781178075286406463954275690694033112137005087560981893810472336026863276253175646624691810892741446212658045624173697690038696053986685579752728948091061792620053764333196645846036700239847326089030957941062129734677798520467445768164687126865966147702578035108346294259812989770198503036408951479864501814103001135223355481236015979423847380697254918916033296731040718872549204441694134450531601660518515185825524243673344411832791863343850510080177670332983181793000665058042105715835950790368436693875366996202067792191200380592519794013802347595411418082704874671177776124891092685458987277117561662744972566081323246363219175203067847239380516567471571542225300367802235513595395885257923279401499768562097752824406063825052552749772665081055172198975478027579322729134723264725969790630680979099389868435846219872422657280168404941791548431994416606815395142132612688206764392113989348623674146030672854992014783725114956660603062701435636585318271641530480273922869251254814853173729622614528979714776380134253170132398052822734715818363713144162258534667339662185425973724190466124432467308073840936220764959548921408161154440800093535172633669079714098685516384400581624905193520473437423567850012686915617343352999535887903610890210726398203805846414685818422914572638376316423606205595963670137580138105913109374538860349870381566960559232980812391695695423430633496333435687101311203976947072410131358349940918152466527475357156880103229206212951403960702502910931733637740052545640589226155970082031066991206219460866769327687905694388612624098766160204972460683655869922300832829708655887190181047734969393275521183580664719773917036451803201039200860445235701355469318732099051347345565907398170349507418389759643477904868867169278238673515084969135831374509363736570379756536160112582021629462541021948029424613607090572419289800601457421390814999195518555489256666108624389466853418147419349685308493885510318812663543761142440930106402881575790920589515871697741803351608667463005189059203590407082238576759848884876083800015201143770567872897483461933829153922794858859425050014819238095879523851532231064128079364522283708158061352625796588904124778139437195580347835623111010570702212765955774677199777634492487281123278485738113663303952162410349614038183249271971301930635061285719549609619279521543025808613684414701385319534287585766834685564361584536786767137916114261303164878311105864601182348714109102140168035382036018171106424579873685158844945465075460803080646390299764008718719925308071620250574235570849917991127169253846900187326276226860450345784268132189825796845240503339994567426346413553948777984294234736813956543381203365125388852106366534953667516084091465101824149674591301880190977712604770831120939603742460137396202559412229090703016399933948070124779768774654997311328764747649790755109308114820591601683313065750596980953532650134470432792386855674533070806998186454343167275140062077586249772051099958055453388750406161000754895944750204221157219636837556974293205114129842231972553241571275185102449811515801352267464728211598261050837660706037090743249520783510837550715072958089353681924385942124326107886912092662332116941322983851046622880778614322724914045849406579820184944579081542520482218030622341408270035888631584604220777553447279817812043490266479978369746544049765121282811450497139517476628410804254992069964180355457397463849384274847936067025390084445967059387654191487929588262510698211332525807584700092601408283418617495233824540711637854446347726098784639835289225166743345018364332058388318912745746481785360129822033528541532911255723260259926477742982815890747129566480594252726042301332418462989692279610022307426942130418441812660927221491769690520360202106991657669544869554189295061019567987401291107105322469204369704390258196012864527760731955092158793636145789637845045028980474222954997422978613432957654377085049203443518013427332544159282663772850217693657706075499471629750936049310438282681984949670405981384269996969880780872026794409677372271135926181576841204369370873219187614896018803801452024475026268346474018223838141923813449427200062085221046546588510434914143875357491823729399759156126281763897153140004490409589344503673644621995139312777623582053444803263396884475117633351430179170816003813293152722870097001608510360691501106346716357493827811848876719320411792200317325759444609896720939989491099411803030339114603702071778726459853211295181732523342597705689967172460374758685001982343184107396526529657442381866523766877208093113456956166876223207902671887210902068128275010651771568845436011909199293419158364186704236435202325927431520531515984276537658461304019375434491334211741439097571970585421276525290613219365493855666706773468900807222997417175783967656147943945158729447393620049380991763566615678460931678140883246693418785152534125167440764296885427894076798859187636025376496042816662940146031515705916816360885669847477757403561040660402970122031550065968919179157638653919762473149637293464503534603009306078172373953207365194349164486026710025968771531444990640288150975377144819404929563417663231860762618140344763972784551569681965733638783214601321680988440310843178700860803588628112747603838643208124721631467346907718895008499785220852478471227707372083497438567597188205055079753362012433099526089044923452445981108093243139767275112112396684589093662064984830731348343560943579934312262994892454840266454636355968417526626850975978011015399944688832388534802215974609920670893632885197903702353773103735075865970804495118619345455055649717381260654741947612035576145061033088952709886400960708079497572675827319322145468151656074138781773105987802471809074309608924256411209736371101802103823812773951125022076606505348288052694116760195523552176020203368057723544902793623954729206532356510577111018665232181883949441103579379186191197607205533407891655409564791833528768229662557402441441989393639672447625680576851498650163641006836155462828547623587448528414785853087263006405197106993194535736972423428944607455994827546357228294393957418688164242156009417309839680191649111120615263724079043708955738523013615007493748195699018377002243697313353772772010967096697415678962479210012957675781864171268354309362778615403278044844152667504948845787832156678451026177121997628533305805171194196304782457216745309762730202008169419136086888600154506356372756543269564458375421521589918708852681701083500436881872850867748002791547479822914452583167320473876169845086457212032673982463969264542636724191423318834475928790297701496229140095636501976564850913236521427662928406640391070112373188547642563656570185032041137132804467666319409442378966075002738198369422410246758792749615281614562931853412877332024302510582800508759751067797718303059569600280690350671229951652303907226274765316160236368549720043431754401881374376195525246808966805803012386600513091704400784032594805783763138973034917481188685876061693276906539111853686425091376966096451729624827508980949811695741604454206015296171649671979092133731950634845627604869038202139565214191839803224743263046347952920742954333975538777714394396733451641293025086027047309130449594422342417502027161856678332641907024584294032079287042058509821101761211388117640469991258390662735844674123942504916415168536061178223460162932666677259637389372218060280210585423414310148906250727833827897083599094518799420253786678916991142046819650287024503841716782732420548411668621288316460921134969462422463650982309261600420308064074231451817250338085873150160209732401250007199191406663207256399880656966492478948683062671005076932347986539907373341256947329228965219919244097155071790263366044410598533947915365415594183827668811738782672444000559596922114959907531303035263801095651092094936742758175215449521587543640785190689622695559046928106428887497505660585776589150316522639481096701288294041223927396989126201007537492746338864580010082995356283192330984354856540244530164029155311130973490096361348815376121387540039450054105250639430166977791291482262633484761301846609497909223191797831129939661695432097087388035845629252689587471004268791743691947427593234339767009049203296027320976963206803748841599804669419772142711339782526867771084566619738878567945112999296824714171902327236883246593904906208852472452365408701027997437853080906909065019782769030286868601849177787119005532875646137732794842488202876532412017749636162869084085590447494220162170146314626590403734337891458271024586039109971011021357036418406693739796879862377891457286960588872758448238679708907742095729629463088929284589689266744686490978043558436515723326465818407180094468032692892691791233316996814233227828018188862985728853199824458805453785605596285773417529073913606873474116857763671070678070693619354873163990991358194015937132400187103328945970667333175591431381991172960048830583758245593388731070501590771688293704011856281248014035709392605377096495381419325028995834479098265561159636514962000901986504457953465206507095457336511493403121929282809730293060886878042686016616158073718999559448603914172458765567445127704791485667068421059078038652614629412960993325011476145492257829685514664658698815485637224217914500110933390603353433286420092688773877579157728369671172228979596854105532480143161707490744038494409662022307358118914318903060370171748989553602463767688942414885549438632545331850355534903962200245072471198836983351906334957950839391873255549981046943482252073460113983476093466239507684706986981869958322619480821808730962655300590758415614222919009995645757452536327590413570664407728287671725206878024907171677641143985412497505584204004348934638345286356752657477796632583182069175951486417722852141108810908177991648860237526948409430312387309105028505722984440465635873150053725330564593541321387200179891732857384651028680872547372085269561849634302359832369339161201642244487585985617644471770024664237093642047158418819940462305887692713066793696691972867756992588044630519057630399562176530941784861437100647431776276094389408504824977746663881315570567411860395830504498779609031657546620775610337812748549386433529088978355028122454061231651582473387624651991613668520611150960924207454307036183942929062545687293366793622731385195702301178404662905853703858376634444921815554260617791953295775223524459261730860512780881885591114812875006892863198461353595130298465404900042461429816609485569716738950782167925796787824236744822659414851513829529572072803078192888850378758663247997658882648932033834614042120664537801147297410781046585023797444846069806037273075028731372434428720241303642589131604258493509426545438405030408336958005275500679769378314289274794150371743329945437062952006529687774701860079482756610045324323335862654491142693278016730783818738889595732509703832188506340752569084418098606718962354854158003024581513473363258867346547232253924051057014290513961396882677107807986043323453568549477566442729499558509400842567682427637787363336161250084038965781093230316321085855096482518607112020761019814654320086211161960021620046347871800637326842676218464691615399485216464851742073231402228163988887547329132361033531842177875649333104333463014455389738013165272379603090088659257454241110127139308782812370317158338109060767417221168864883057423233776654779651075855961763171157525176724779441187878578204419960476626421163775575153361904069417618437846897572191471105233104958874285015317714865964154189610565820302832802017609300478172836777903852585839875501888264220903627582247737319040511264545072718784105055713256275307978172269929150836942575485102168187431808050209534720042122095584234319807075290604562820375521217757853012768893162853034476158945712668263140441305531128457573412402481239378288152965550393535037684296173464074726677354329542896390858119159085384609138516604879976358305710217077240296585182737834432385867902191318677338020848479132736765360750712734985506802987013580205204549393073442992105621177607551110018426026689686159665783455658913667160791632638738406174349646423233309188583197018298951672647798629531412172414319234530308965188262346549192262325852367911503864758379344551542544468311684733332509197148948380293777749270257795895878423567374989176590387974265400730342810624312200120792912839047788234670323715970322358532379419305762392795176315006925416483382993005482776224778805167924787809960822344923324835545133660077358991101611739261777360241085574368409338633431574234818254983047855782213410396154808069975144631456199328039752926566456939509210261120222202972912123505318253107379545576550457540362361664126596360507145859795319696592712275184969986364482176756014131017025538147359370153647477546896020117157950681293406559887053571746430573644579947488268693735742217161601575740885508874128104621989910099117226719186753785412195708285912609179802478760739451542589789504571894150795013853559799507652657907614868705190124522523740357575206838953458459801936569702913944906097954212956020858864794725959302399588740295693434941460010979349487868066245816172211484083092293895852394513470194662410412579538171912396344006657666903629646716484414484712984926603070364247602594231439305029302954222246375131785535687706691447155079802498033507368271425590382353757189375196646958085427147318011463343960428497702745316693653693835938977388318540095915761738706087218117829836798673960035436819493820385669218823457358643962371032300327560780508756244678296492412198231529450124687672917847327834874787549936165015331031656751366259918083749036782858874401290740964946281913777422139967914036702355692519688058366840035161512369276393666067646203839064703706889073247428294878433055965042778161606500699500993721071438823117289189075651594693044454828099397071011433096515750881173190491974525069859106322594908457362076843440042675079962605617810380600549044561449863263041758236930994506893483750760060009133719647749245537930853985871284958204243691054648915581156335327120130783404230482731772118842406173236883623881748622240821003376178956332773116563762717790363633869569144081866715699957416726826862316152682287202557869337887395885581349264026944672445639992880092077971713611889989369550149525196573601325426718098256893369176774068469905283892445649024805064538041135251715449452367172607565086311779825197663618309021144019532992345368884976424968413920426627385017669307023398237773177153320114431638388139200552675157993045776711676621215537627017427762980249775426833310373708011614375349175983920722436222839788058504362577886744511022221794979959809782016219096162418434126763195590368481508141901439821691256667627901218671002541812813544257446284735861018400043135909267646691109683906207082694916416715222621964481249049020030277488805425848005819712497011533907794273127460746780254060419882182624981567955874759454389325900478203971199734315188742915099299579402854581526316770009273842832695629612944935270436995559586723162291817980697132900554812058880740294259826986241181486981129082663686342633350039294200080782725054201656872071598783006056320996134196346922197905400204255480926402448995402265398694384927771678337591413099489421980663968825794733962233443562906133439652773877915581982397162645429076034576358858667317932145209158735165216307597969275613615960913373677243959738849117042195515451147452359505402976879560828947138888961602311157678757037676588243556121163273687906920868856181731068134572450400883539809527997797593497498683950147391083172174713653632138486130840707312307725003910383116201080470242369659052710340784028945222275239275617065943016473066865840951155293923428725603206363822801169821715907317250825189490917300517551339271020299365638094006623673628478557177340723848928790700583853932911688579447657860796396441918843064018067958579696138730039539592011745027902599609534478346583562027760052647582877315630494429044407934542921867129578704692320124804148014232921573806822964254343346499224927135924768973571637240530081993549567700214364061945800908688193373273725850325099124127586370033155440011921999633149172272354221083123689016505394266587689816503271338954133044357922428220025205003828675173077402952898177096822928469691942290358379007273097486886804432800438244354361159006289482454484689574378151117408101649127376005070486866193530297272062544425902056248799242960256254088274671117696425964973730214641801517596455717479999940020600681042469950440469594014390922240135462884742585819426800339736730022943303099740221358942713549052415725539472401794450609125642139875349239271116384516312704380121146323573708147265232217131144391062913462024007800162377617148855550537348650460098866244615063797246114473070839623759728975381155508716933282810903671286046482076653912487885023177670694726719709324078273163255633218031272601553646226539066716090591765582755834490519423453605296111627580941217118275186278162372553519731840036531074218044752554507143187475186049078450182499382951916218417710344476730346980438716238452346214222706718488042197763210509309277226096044156641475816739774011974695911190306365469789045265315610498397521056028329043192266763615522251628784631289919223420246411057737629529895670024215538598240126039028371156546727314250779350752193509692186714365101733405419810799637139976888496101021024280892476929076665755806011439221608548893820956843873829897521868532429183095946195023436140176053360101688270866687519015983304158923625099439364463042115284563098910170538970377526259090914186939566547579951904950843383813569634053459157366056747060193174378317402019150245871088892223587376915365280009972842851584075004472571579428593420828008220236383835088452560389326734288893044341168254128737086179534717727654701599145060610761077547084933118377747804982599154765555623692421006090391262968771545653939308475464179207397952373322158752521110732928494601245551185768322614231351063674139870954664884650062087174528737402906958114009297561365878297633023553774718986665556358478742084384212691960199903949541079394992149915541416966272214630455655083872992274859641609002888966340090160651589791192864254670574666330105615006645485954508089969950587991759283935047925666138933541409051471436064860227965394066292898083307515308184124280412059322852679235133547587309525973397094764134450145835893548825171616716571421870101587964482201419634746558245706087130658490918253901440363593408017690270814754997583564445610581933975522895830498389739354028892214364104012895521349866043232421213933269955631434597075029959052569110528376756603436164461720837172413881771742368744627878087078962347979639718927773354279183814438290340987241305229908802100125566505230235307398942791702723418047603605458630105519454984904760972909693325242044045183625678526866548701951033206918787543363937086737229315449513216842506579628404635656259541757857966808579800428705271326830101698765962195026965336844135406771599494453548411455594616852649703629053498271607619433541716111704899088612157472938700616950327943372160959872154581391395670649187418204942141498004604291480546636442828570454407523184533498608082394984263353392205804090971089021327074693614768833287721117256753645287149274506154949515940939966474314790249569156894428442166448229857879735529638195734866993496084359228100030198782010670186544817652830279848446502008167106776640008265629870321517112623907587851537381815792575253655934947820307670285462187282932132976365113264140077705344595504282843207957276052085381119165971638960698831541263180252216623237058368018880073313637832051518510991923525407869987034190024010818341082118143165424772394249842380283429151819555032552348681937040742010232727858062278551329382609128547369444934577865635404167122048538038845638801461987288582622442040155772333366014058144375297508717315792641530813540484680651268584887423677424465115110611808258326281438880591866038923158425631614031947519199536063015677083950996368426257659153789244944244627147736141783378667433690993798087984967995153789252054874744781437605616230297355721210616931274132413606325769569869687628923695560272737673761695138226623926028149913223543281525946747478652652168946550547953255776173828384328338852979592826385516235335414470689683271731404281217952247550428871602573213635671882889036754637361079224602333055385188317404702537156421534280124470319171575445932057374441018720691139129913889952282772253267510103362683839508392721813537636104402495154006709851147719911471052714574112214891214065563244279368186204450673348354138268719146921744332877535541643827973407524838944173084821893884875351086740691395531888187282351449079245974579197961371769860135298637504549053779583241193054399553795112543576016448039777266586242551253299096507645934384429998210478480326260166873437872341931950072215037576751598347720280018152310906023393164596394994511904390767909496564137764987637704048220960562230035807128788700195779820902190096462340250597612557012102496424658869619679576371647562657173751370779164633210279767666392411117577059164348120370475323850451012856705608949860783398010455366163383701607536522468763090397622041977747907801445520177900719043622828035396949871213572214214596853489541760968278438460956608406276002901774839930576096030670875473132427065384180099431867106538811979946427150700558191633929298459165971629005832842537195368646632575875436631697990660147560516960575297891242331710150364015189931464719126159701934990396862229711274116814964747287515687842215471167546061867393099031192229447537454040409720330771902576900346512084957498905562145369641528514946397154325622276936574343871338392042497356745342183731749095533244437391997289341395916045283732276767915354692815199153383740683400492290241911519670052392383595549910387177466470904041102913054385511832565681633863946616312508409542106328936790406385383315562399172522114072749099214157985439572604979995388480871320710400359520999179194047197416762599439043981542021425984206643686457261419467258574988427739704844945332106655818921386938092928706028243026568712906097443763837680131205412724800039383955223781396015594856989950365875574539186094848785477600681346046211781073052702397077486121344925085738640745459649459103329042686400540265500620396003663129676168241116666385914609480197983975676998963817337633743093780279369189469011039428607804386119077307423279045693635892865813505208263484460322096852020374366735019921842618617790242745472592860985588033289625801124368440140672586467090201368865063528864297762659851966307814640163029461318755953473277286431980591372540353394210054318151931891555806651703399281908527242213551751953355372016483060697499950302879715285320065251614045567350779754175078879063253569599725213471565640506915416188317566536668121195771791722857666530113625520867057532090212336998438253671405276196258276328598589717646536887783578034135567505614805427132536971713668428446552405553483306149395387567473297526589899049710284558765469198809980915851924945038718346423029224589864044546729213668296120804500497599803881479245342351555123523289701262775677654094160613686980355386113571653999566508406309831849431618750475499981982708142443592022527504031980590927485267186452674240715715103284560159394863205811961220552725300493990021184279572450200687485120884056895498957201043395338164850029885781972315232622581868241969360781609369356213524959892126474436994388443052375962998242813110230969234894775517406745597888786696051503318394976785963430592848329498009061965778806581047751480068097634138457447962526050369921676040398250074228505029402386511275293134625630963580983823216289692377398636252119579224327018433945196736893492233406542215864331940635494777889005482408040535188325855954473833273465115111632277072120112054192318801720484075895128119268355099537723439242089426438065730665581013850860898153085517168376512962707749790455537112137030458757396671963091552684650585927963037622961758148444041954978398326348043076408438466448740913067180281599416596549903018658904265006834585628673553282481012871206154732415253376004809252100365511166583169688607240145323333363904841249335302707179573570570795110515681143152541399942683782392929975679262745131329498697579576895724036050468831060123138045666335967842647058034961318471888586650532961744158978871155104810215607783064030845222815422483568127090652740918494066439591063390202106186823427462878038646399108040100436825767863332127772927506957194123350884604167911313530856220485535999599466675496990605218153656195242214758286405741305730723663502512119358529713942614550133039675850092634599701743964661479820731959202035028714103882059194290026946213688873920926713214315595016355189490436900466645891235529179385738905090011027084316774953644958220555038430431739514652044431655900600535707041838780354964670661660262834852522896740635202687800651079719251240603336794825927431889397436059193212891800690768088870865427581027096902231850967239226543583857259002266975187796031130766347620698201855866495156202472797155630050980534394548885809705145250257259682010902130002587653686185149224402596830097102408634364726269613913468691131255339440941924960986235697360636340779381065570711536725227668764714207779717061322970553170065378882502761400371291839078899024266970556393279785055193023724571362244752611746565921335013657210465019741901612686001166830334544026405536581099082802840697106218335294745564218326303389359550721905527635848801487262939211224264011486349757492785981278906542784224143509629242419868061138672483600639820776939655570728130401696661231135544358024612505168346968606563973675072427644795525413278259815604268009771134367427537883589070346177809865246486448849711542828446536747023807021231725434430776348194631799426382058198370897006785349850758586044818110813882356084784523577089304354859439390811610346532159368296285622971233447125780636971959444022572297024433828835252365314332516972206290438540039472277296559813309552319424293809340959079012123210179901445132244074739729756670978935232146693155105081990626293786824889845960818616360753100486360021185684702110285867528787043174741707644549088438842957567127356415505648912676579556750262374390550528169752385946980912385929469335252161045918330917333341408218432351020101420192724613599755681169729158706799284629605937152606905538462393376004133206834996794335986243386794934327424007120079107348918387626010692271390871770276369089643811297221646549171983585986631119800433595493097869483710305059788596449540684766732659591440221231971036995250552205960557624712982039214983189929606288057856748621181522424903046531463655238507616429698646125032076410120497767546768696893401564782811272354769426649121459229122874764011073664104139230233162351158246199439988164483651999943460513551955767549190292198349786954604885204401484538788628963556350228844027143559990130611269324926551364718332565973693991500954560666802519385736474485404969316985330587183966054873197556901127346136623012356140377152347520000011942391098776472095141575997321969726543879917086446386418493875305555261705577778103919366234094760590894703162604587768426225405937709918076669439352234462642078103213062678017902411986254868135160163422469744045677387184059969341809109481286124878212164039945667023418063104552563749324521313895333670087548736192646602021279171253744165941135648335224261635760290210782075206679855764592414969119026507119495126246044369067072520166262040848290200208912051899063742466301729086664259328456452927558010901817370918918782014851866186389499757542417703468518979692912281258773329312663960331800258835985083968200609379915845023434963606475225984816811054531481584216237106329428293139147609452183993889573889431686898798599331963310486720827317435783686561415294345639935632968204957263778580977614091483052567870191101275549302933739148208059383375011322891870201580721264700639343225146322244116252521501932619891100463429265451795497562728622580069782797210157233947479380648744194172443813211727097658684730686210679612337002527576685313272277138860881137747668470013952103930622939133134096510272496209189817631784768134351911323743632906580052948232324930908783948918259975194852941721125057233927036200398681427884285396396691868787023424491724465093338666641509888701917034010482623473205204181004351523527763886473030309543957394496707343432868981830023247689430527904208283720391628540332133727262261509778184752183998979069950901535977115963245789713376567011568408318045087426827595125911992043752372074223332841504741712708656582828711318021289968010238004633588901285009521240052621613434019503506959047736390370090451007431000322690192991262300774204558405462245962837789680827502507494760717473594942209338666502032261670110354566835747296707128203671719978181163157590231135111890512968800922033559800140586811528501983393683888593150490248946856733936272210162309742549855804198440780344337254157822656816173026267339017087588444939136430235268992580974706960605503765439857777036036755641600832851386875702676926262005735127517860710433792949861770108405911171136040869672255946751396318770892711596979452275432704680496658033055222537484739864279014644904052359206867243976350024578410269287664926909614679380760987066258481065238457453762255063328049096625659715371203984494209597112247486345373536897608813054038104097547774815211515326306997442721136967854200103233064699039610347849334103618052078292234194873761477738789289374493285612790747476963509954894876850828047719015381753274861080664885706470061892108709349683921384112932911161738823342430975780079455061919085039713237467802663818637402364569175438232447688393021016452568019722604228272353404618775591849413344490615400852868057973300347361456911573399560415156860767512639660454607808955829424434714238536427291497413844087332163092955483768463222886862861588203369797989241220453201175781484429715807824271013745627978416948568619601579885245285449229444132088012350949717917744001554418404840558929842520180910111469508959703418991900623720615264118350369135534913373966528662902271479794894266663318310891913437415412173904766039553283365009181636737118863185072921178485822443411187539843878373409331558348913544022203430353695583404546729515620105419102048561627969430480903791561886469400488316836956195765840228515665219672139859630833016782080417648805468439632968009115210342024147897028722084480561663506854365211087598278669259063537406709504516580023830891934357781094752867130815086772914562108530966508526139804689300990438078405388565288507724720336315398293949717106233497015682176680081096781062073659380187297698702441687398260342155588094908055299778518790671591049497077534391042504983712479340777317980591490764032958223727219922663327090410488117498879755002802153082256927206158990987916698184077200213137855868161789941432938569965411316924948320259848084878213246842279795783671134908575579496504126437000475948408920919621429460388629668468801078793036308909944758573503346095618012159758956763127117726312194734783954236750473744673820816407950119542913263811741213647808911439157598553329287988825047229162005144968369186460138218148428412824502595084099919256033509449585077436165829231611208054135151742561062654110773134582352709085950227803988903935552672854057536706519863420537418786538400066426142170812587407532768942670132344398602628656699312676354314159387030412264207027024084330481035102811741214271827616481390269290868452375242095773028334513196329167687004938072366628487477061212058030333598254109333261950433332806855293838656679546883099300376752832721986653469757751632453871899298033733774040265034727392014677119618931171461759969940645149094104096922545761036525288818413005409858570802710962401526515906033938109579515279629968790982150306733784869180823242959481780777170977290009356347677755396182052861434099295368212944726301000364513006452527450397344798136215133650900690126525125101463893505033495377047621659035412170537712354602910209351871054791180796173462822005687990040018598347327124777408327119460242998606579321587407467008868681571852236348350525393161418021812808658082504418355956500639561193740127875827648826657043162617986585674104968340098157530812509880167788093865773969490684896202817375742094695136960081567211580491908063323817318266662133069692986229669880910458802319566242932604352990303446648773535116032614438081499153409964548888491142752131103920718144719605659676332699962473723626468571658004080877871552110735004812625331700743558752740155348753405979695714282670933293233516542345067428608981356653401281599519401149548651532718652596226328091668649813908390228370779980336357416945989093947640207721151214706883124800046574484321932124040357069807096256955813723327037368494095786253410480720581202726757005024364758423638457110580421109936215663021233225842108545313608188030089485976679832915505505682921752347550850097824682225307626767163584757404354987143204589012718240488529366200297284964546303756514465741317569237743151493800646657849318143474664187228516503553247357231490490542451396019383594548428078560222596359370361668445051322634835494056533826980625464916626721989269408239311093111251120030219998818149683429765206247792318860881565576692707440193844146863880882865535396215293980142994086285683470358809841212209303340144735052151140655996575605812675096225939678461253203341628265766437834268579782821437189814398899956279615378883556289180878225649346158873696458877558226358411900993118186252326445845974424299438763482123345271602885744942503704391409664669410174696292384832643475929733092861459125832891200406203990379806506771794314759878556268937949073391602451427370917381317387078228085211116549835688553737999596722363940492717691546229429800419837096466262215803600725556177389357813142898731745366529131758514772458015716325223867834247431630493785373622371201362013919531214371716232932435405299879608529442044829279042967590354919748476436245257192693043158604809203829790812472019377037596486283952669786094762150742471310259941443028623630318322763193118631019178016539462855180469509283853858102878980090864970729302783540247957850003712166183395134755536962802036763427999266281065897661578129917449043438670628170576177200719756132750997948621975295167384985628746207193256949837943492570929004190507384791680319107599558977858946367817984696771883409758043735138380591573092287734887680179055486873854131801883907667982505842871372040943489504787474032985770590772905352485984066793223802670149461326666164229151354306397174081722548197140681429004276501489189383076603256238782585586026396573977606812551379585490886732211492955434277922519957477407524282460202322737005832744066745551298949120732279684707162398181025140311060357537642232120765642323612094206080080289607120588839225530678270583247207862802406888138132909322600758098794140932472760472369047848105860090886135119712481029952962413149188659124356285730767609531339168899536644104225000276045197647656305922395290389530752450577849242058495972441774046176983965230592815514274661432563735966592465860743507509534449129872543255795495340986029460492484423796795593272741245842665820746068287945252662863728290501647724196266787303523814009971544150040957429209245377848206089606543477662478333170211459245740066530031518425258697964010841312555774009583832209709771590318900937394460045029784695321424286649708785522846584285575448202078155708720351431654283395405532007017405131521007521250433774429921270157888126730126455690540273826751809488911542405520282207671786641925817972173923416676646895744824304103881601574062245374812540739684807853912728599089358674843572767196871982405180519121426725372669356688263851004311165368368602558480814270376223941119712166398747735555911113184119106659333971967003666682375969741194358488863278288252903452417093089542710059644731455660484356705616076887207521681889514203617788486691536490694721512401567676588074822196650378206669522891547155264670984270469125841616317181221689477650387217268596454825846848551537234019490054603933451351859564392026969824000196898398273394591533859664924682360812806391771889321046057411725035765492799456025010773070342738563010711810178977180288035588175918602899137374818240168163012485657294280875556670969312495788772243379180891725432997451323814963034119649595598180315112902508964612684979119750105338570351123568336420778163701368117328772749400561818387409038603552792815186594541128077991904764224287331515856994465091262024345114779836933999827881097590667716483059060723103965073754463578880748335019350032637929000243182150802593433384913367442517345387669592629714944034250879730239424078863621251868166088431238865575535607258079521822654606509369958843216283291995105158187917091861504990857672224733357867182426604465306280987594781250050696473144090225169608383352357872215634279349061431169773402016993448141829571375508789766005419190344257549409137241671252656979411228036080992046287233954687918253147336321970344305357642712186986928159279246813416252303398350993560595952042880105041776550920660142906218045024313491211870504623929515245578424530424599857101900849949754293225008011681852356534430752111131349497834613193774478711078945533709635501067014165743234903962537826840696454607349463366068677692218490897320381093824122548488121916104191847091796845473930036469043527220113215683612733499398965240438770311726650373318158148138595507802589779743937921181605479679541891457883662679127366646183914189419840533229322209332187440239819268239044251562743233761873490846451704851705456417042325933771827488541151611336868026676397689429702458270756979711936170139994345560743496713402106037774146804458969270909743141165124991796502304631562509965805419346098869972846072383161016705479894201902441098263851508652229365904785563063263809813178381000715268458492877630772060058275749740997135423379811922209556547717436353705099997877764155459845598016301370553960270518350231160624860221884304347528170772918232564297805560556178187258269829938008450994028926492956403316631101590712054467525811160854880552676462049811485227164176855989861808487395072913442122701438255020482254592938988938783742629199699909489974195073552109207152030771527249566667841573697162376333190336367604212589607655147826694423739768063854131644337564911370099445678974006664161382472039680224878629155283828767291899980079883367306343012988246220196873829834646824045962571115625507115029358989963497320403995919255382380158505044632494378929918916795807900693812229193227012176534909960945276843743576964677565804033247590729783878264064766261875407872345203388155638651098921461844958239514429358681291124655244343225063154061498162351232154237108605656279337757144154212823543583307378705425622471602800161122115416091958283203175848751469692864999119233307010139799230985995092403530151077032293158242206088794829610025525135247082640257578023754720833009917374562954607867343695535510977523219785404098350897974201471934404822641259881950810195828230389139849723214140259322813334831478398521467924832287612248826321798189168893956706324025423926497565786108011556044602615338295643568583333869881120946030641136634138311793953634923498551758227927258141054172087378559878539525307363961909816875835370121283002445449698583203449925548834082354915253640803337452993133128648525888109358362557106485106026449336168974545818583898218086012778200952496383919628758260424236626623593396932948069411046972304193055421149975983061115092190568035124902942612309778888122124637165275366692395698883569426538019761737036229025629008036479610514975373852149557358506313429274123381962042773701602527686755252061540921537383106665606288494488030631155311574182163813093653742569657853363312353436457675073005771258944635144564741621596226171971089075626431809081046971109123044428836056298989653736540554520730411862929882758276766561166296967121990951725572402014973277961050099569184970251699639354088442913852016414377566361320515882051284026628479894466269501091948284232879183612000706534558151295855160258140318379847954720672518487853094746408501323435156945111093516257353184622114378167844407774810419567426816724160549250956130418395006320765933535761750269864728682703635482727670236229851284770241175876370566719580675416142794867967444910805635922481794438620034607816012724664427880062444305414770602833662415110470337202711017804002321969460066277052433866297837952500820778555768477188013360267660925994436243805043183380978711187146750480632403757896214621076229710232586695886789898682946004583208984505635783802210879819372540574462826891697314285640793758543921019548469800108492191703971304696659263981162953930753024788919277772310036704119579472974031424378418672555714038308462922173352745614735518104418198773891468152784845764928375992905765535760308557979901497165198085090184674762639365780264278528358828173335378417466434496922458128004680581793941874672333334882136750557228855686235096740158335256465232634963346330533471115390941737736344097270753734928083498172552380661956059786628606469745770430671989822223440376166880309871222224571596957820132018868331110028491832931163799120948281733594393587128507154718605789785164709708235964915095038402271086306458878295522385560484582571037922185363896172050226519755786885376450884813974682148026235232288578451468521617884766880652368122758935643963599489806788262986525552277555851072365917946537115207644438568216229676072180548374413929651399449142239024806765966074988521319789792162048388664136575173674174456992687941425206295268021366195060395095290728677225438294443185127552655316870508957531651537940546408167149821223810218053140552922927074852765201267363683715718260789622838669132145195906363309345675663118239665602086060441172993937594694118747488706177307793128998103806875571704869626681439067596740171178210380221845588693090175348021815359347210116007898901129513495887132675864548967778258242097896447283287333667393135577389957293741320805675241379617768273274354730061494319782609618302564828877496946923996513865297493728556280260084318493126882368454893209851289493275200965312310433255023641104317041335160677588732269275040611096461556869365316654262409067122426590986620921475827376706242375140243766765528584920555346648924857254364720850554740175833946469839002655786977373102140252002248916038879547904292769076048373820578197234986262030260285441759396592374584565957676967726723474486309859276633515062466928438502663880458658407551905211831496571193510565052475696617612205797754003007281035881217692704268378237040492784173464427053298216234217223919428151394265804596418980468322563172155809056954664341508591041692457102312844350694022737323279420437753347633108152177491761199684934507925319731904699794448088175586908078093112751037071855325455682986068381343233040709465085991898704372129460491963237247789282012833804757783823437415792651510344704062369548469755708057149618275166340034803622325125458130104119243113546344471012222534402574485323624934698939933925775086732023261562984655228617165977729897506532549672217275307026175404332483733181186119304441864768913828113327638622954386122013821767570135168889970221369351603631744792214673190760608001428482303358410674224912859299396126395841476487749598216371600265579771952245511149356333123775655548699442506034617367357399781997575781900285370237669214770798539634958505577483247162085812748212703134733394558947884568766781731066932008608160090917349230189692008101280561731786053702484456984687029124236125799434120921161386310574877633437225872349746320663293994170432716674822841266276971552940095147269636165955637336421459694072557585822827224594117926440258202280136847041140804320482262393627724003060267010365253364429035405562940202468900128787425975889626752717591360931116231204969333247859431705107376244133815487271951825971085217784091557853693060854455560184171402817415923086354588362006303736147414291414725146564659790656990469959008963885483376971930554014164841684117456195965730775320513884702277585072083114504900664757323908814399660272512910813297916519478488613237322890832064497604002536527276233993976720733901306718501735100704113578384483374106429269161684699999484227393590238687921647475922920246801320809454601201208396443939917397281498498497988100571192355923635692961947373492199764268971879231644458907222232455001016649002648032151384665180356446648519109017786034724870741216813684519520068466356321562641416074946908962949657959153957436065831684293566179474463488984437492497009459793918903919605346813274373154404617318568972635515010959464124989530998215459170930479257177768088637215122086932313633080206715488992521130354300084321455176974623725708094875231933729964928569542319918323271911180480058047968040029184117076316208888723242702068988716914289994061446439921594592805267927507733017387653234463897386145947035370684321887525981552700548768997878119822896160675290590300203338572486859419688183977714216796602504971986094890603303519956409811517137154732526324613975871501731835349720845422318507871419349190261889206387714347554868132728868640212923924428851827069593728954120368289179564232828300349517355340973735510933054049230216616631856469914910121247922755896458615693767772292895610502593760400986614863820339572152727258399474014040901712342277589475200749426770002164084430654420291289824383648061495815340400147393277563509052201568869007530070644277181577245824810338427336337339850256645480183187317876991580102594580452334025475772100294109138502120876728498394967422890158563269466617049886502279948059876119971493714988546739035664493577032827373953679895920817857565860859766956758324829735857047536826034014732458647824518086942149860587609462660980925658199003337435683269726791317821696963121802682937679084982392797949566958181179397504412176771885319770408926570200284248420127276133885303610585841660226865986600449158002911559011766594089129557767411877613892932523703420086855615606600779073628683783367606384954564367724538791118523135341548144426784720515547223393863958185185163875845705384331266863369963470268249128455678478542895405322789340920002943000282319986187980082479834977599706776652940919289767640594851199935096233177422168388761390885754629851597776452683406593903928568912846072076136360717156699244396148450188845667402775668103809411890518926397451955675219427164565152839311185444562500878536716939663525849793882752715297588448933150177043465645122894920867021649533945265849978656709254509308720836757314488375228076893493625714518136290194467478931191429325703213409695698952563085542132585408088313142890302913964816075920394978976781013721063184088511636410272218382358357368850552528106264471472054222151068434457146312418390029403295606900835801900172567801153448704090493424620823887720253256509964370020164057223750964559287759200629707642273300030343746360740646356472820336378194853535658592279636453527346149653427922984053434880488903083874899245611111748276136813506977028183727262643201323368022704441967025918631432977538794090290409758973056190633633241295473866642358093049272462880493131548090236759768031041011413200747635878761556394616818340219120775767487480173696112635471474619377854073891886009260694038764371218138676824792070655854390682165675869262126487483783874352592177056667592761221650753279706334605266048193250014408114981346202525480431923630607635951604481941083547786486169979583428113999253905589629137367001611988998596885402054211723678577471416028842969233810747546359822318527100622415718728750825675475526348278831647764261837545445242502846257562895657244121353504141244316916597699837656874800697168130131706654053792338837583535869798291227457075445769309297643858208081088745793214096990244543680227116727739744881616572435726914485723416086264399691912088958251935966108251448839729383534693812076122225512402964350569846625094765358182924111160958280552230717867301818678484007742330385667373293846686911878682215114881665854505987078188662987049094160916734497329538505874157479861534207864154958966258718537617925100942203154634972680799017539744852166914210924636227423755766213398852942960973655921538380071905331121342070636786484322201554242152310159955915315097165433022842641862354866109819398091605534849871625855560887166195969553234358753818701167778474685043287909224754114892794621995609534068907200681130868261159156006300189103695897579893417052570614763199437318610852226261712930381831684891723289034234657627825360621502342102907300979070424439606392245643835545097612687632350569750575203908512853909077143708636260405021382882366134964387137289288612229505212010421935504174204219739201948354532545913910192494659191087883631530741504665562968116861246651837400934661286383565964415720822535053597323347506446679992509845256507161997231391093766413632105194751645052996627210221400851122881330286041326755201276823990045946811190667224863910498915340442067071555613986165986929455754303706926262433892720628390261459482558836276849447623665915504323177055298949103673143681460577470469709511941371011195122866943262525821589656668925972375736102658649514940689190472463205518887069249598940685891911421033179882086301293516954823348946066888488459094542551720448251744768852083627658425184387312376316762366086254883960999626242014094282636101621876306354020990319853527917688389573623395055141545801812898146957750257583462119690233632970634858541235053967251468426038978712712861538358657654239357359208483560003143937070946050046064484531906428297569592873487285399181707214611817103304899989089665930428934406640862317473750397968464923682076656648572149103781616209014329152521681449597714173851746095864562021737215649357422270490662657997987439005945143333654888448087040171249393358943047053048868647253932176671685692884778671254418481774379841413961901592018130071170673080908244911732424174828904730768928622100550234463750001139434686096644216899479718893984109026457931761820241502893467080493634846040075458992468878421247413144739395649341882796547947626200528975446785368304699803549294676282217016718664818515833008900991612158597503013147305282013246342380637593523229443701442265037007887247235459517095692683848353716817010997591460269512327851318335096884625539544212049138107861834369627454908053814792708017081444166498229437999238721576010979977161239939700343787933350656384767709817394526726138026373928922671732071449554170885297059629656589365066914880951030332523337309220221606130268611413718567247957053838574402825591030148681915336212542153349851789768411900477712759338523880620115012200316346032475416491022473255859779587326919816659209049908079865978581323851662954787169633721420899521879752103179374930919497926222113265471517399703017099589228665859534627705049867323390514440900902080273930035894124068713527662919259964859000220957686175157798609179214334976135921341193002170355116158515248006009187939488741009660477519349625841211461986287660902904961859141398999644331723473797513397730765371929133994304182369877261125538005772783430319064814227075382743575184833352483253813687911801284354844537647851442023245734105866060064568265434539191467847066737344189286596822507119152497444383635009520120344350778389483974381453756702727197107350172779141769858072345776072247187915932938349103768595237052091955291787897965355909695784203021896122514284659435002473243821183215355936904068962108403282179814124018820859042619389593939211341298451529737883803782706662087859900509522149427264939070715500127661142027871608405530004832998409443261957761247190966398755471116782370189099117648912456568052127249256127764777372693239892968899520932990840767555003931178526102685791178512848914873252712984213925552511484648115930698308639624198577672567753983874793764789476993611087551829210707436245348181790600282658005624676539494880532585675115530478173858759082123489438183609583120941135811729607267667114890310065574317352372973478359331751340090626763339174305829716358690180043789674057233559695041406520159120370365240814526176408032550745098690735563988539677176423414322992306321197592571810583639725717019298951808446494253497523675080106057275019360624822946396636675938369738702270841315950559286424103054857718647828084240990621023857946681009764580571064373353883857157304942280826551740309223902646536079943164695464406753982713814580638836282429779122990734619114812019056482021128949713239907448576422336615151307677708520799853456207019607385143727042251550473796427360638090999435866706962260723810446088994367497530381959147081343431794502660022826078667484718676274686713743520765287821875322648161375620710938506794032452496168710399540645722457920595381911420685514322670552786138278268866752770399703939651447894242487952493153716197389835315331197607731713512740503288667835457420008874667101416237678547493492263968728643891417360766244508400095964802177580853621921622994290632511082604762291886681087307710388967427143678533698079041932090964756097730953144086498174740992082438186948495302249639689627376769736214006667683778476646643818298450786706400929008569091969742800717825154343005228223525703359588694306645449947768808898365656487701246121520262336808021288405832422045258906342583785098844462154875840699053731923007592205321910323433973815728245974550974762961200091591283648203842207289212207661552039486072508164722979941863081544297005010682771928287756331373902077003130648689348951027994194312608492200972527685827631510618187019113622116296844354720369866038855807474217247851768065130278368653692023120203513195551141714217177117281638282816414777539275572239577856668753365889311276424010798671449287033449080464379656520752032710125780591580533624565124773896795250723688852038517283437222005247525111576589040093118253680560096172604778248333669001669557791310040128029249990231444263750710900588141814450504487684000407272116091224251198849249845187758243346759559655089819691772367433773695718606364527709731133535461143984038840204249456063959124353498003093703004087839649551421375808082495765467241481227115367127053814293848977773874414159116934322642980711613861463982160386791862214219201817082497344196674056854644030442349584854899905218475687610000149990792592032618133927837157382809957542755710128494300589422742599622358146692478544556014623068990601381333511592460836464811710975680383460491654419112992392730207317284280510323628346609288296650227926121314694878460287567914400041814801447860925321118216932184877659716494114984378231712074900265375051123596536550696140890273384811739122656939577278038543932778628877013477779626085762277310472170699031327322693961091399064490214684104534856315139538952703308931214645002842360270949064700658958177572461656820905038248767717290207152172605827277595434909842927191936351090128374341717261621533984349920940778668801631899813563342997337717437241079775407578285924731600990388710985478295133691382564166085829386286617707584057666302973561653869613352819722189102396159094379953190639509959203053562538164038830611285322281807786893153770829157090787269211674606685825497971181929427080460459577411033599778279174058147345366602836380786714192588343004055758715528347724125190517383522731170950753458304062127026036239453426473088826686096674779000289611532585240672215461132837584865874003655097030626972120197097541049962100852210135650564654487608245044877228907564276165328827516196066510699471146067174289715344271227959034919880394089634454843853511491384838842761839107867536417911131773396070758174546394118380354355128977933997484294298979897888149236466795929421231552095493425632587750305631406640703102054761034491190953098210842727868272207044726488139271311552392645799786664132682553861651318724953035039426240403000707738180498806046156167322978114890108537349375336043539993843795600502779916979747341997572430877669617494784336886693645812051290244642230085514105579048373809640397172158516333058316799003872592286605502296670926610280033600945677208523843434670750599649308562267568289876731948976299146782359466437173889750327002473995936194885605356461551752417648700843530008019049990532045671402814143128341799453505100390219084020263899614587093734834095810247623378380122691119745568922983721023669375144126530434405084261635189246089738508502037630139955967650279074650984641787861570808898027204313958523135143100710008423234290434391403384368462347463926692841029327163517680691517452232952162417868196449074545050518862298742112642426184206400386556079411705343037749099106268519783266130540321825452270916897552203691179578787251904648049455736128063761833090254554871890619063434894537315451390264536397460619026448262592064721832685629339528477482750067204813189869968940915071443108265939605675356574911866874897924244016308899563721286515522149583654848688612283168352495828483123746631183957127145026068141990936655108325035625237348269279925447744985956806988146593125899509742158285460116953385198554138021178709529169863594119326419947062621492574299167319710285346659683669571962015025182701018758470633815349676658131463233525003619687675617073558601344531541383804236750385727251454549516019315317558919937281441887429280110564079163975110172087327543089850076172616952167505316726933319309296449288003176029596751883409932055984053532164927247457600818858819603170816302539411195151932665319063333631794815819544828914651402216401905617999475650331202248204848178425983188835676872779485982584202062673296554401136576908271923123476443796842760328842638541798706057279667897164807838623180610788285131445550590830488710998623221891843818718285586990856321212383764067111511668073164132810208946763044277256873730117751486926723555536347636596539628242117294440435569289199266020716048688848868152598964284286875050404504114336685100312359917243780711954210469558521928320058743351510779696345537198502012698223405671762728976699766932103083123110711990101879092583973112783311995538053898815237972230160821624812215316693140252943339123056539790997288006511458601201550992297720220118816861213127314957303236333460306417258098439084497607355025092326295511832641665213075210215162395936706523651701431261269840871855926451644692053553067021746978573906334583180746605000010786588576929521580914393063092152379740936929117714084720153185939431117034985520268419156605559901885544774034878137996837443642814626523114291179870237049538304517206525719939786560392034407265181704252649365677727773354888387463085073598703518680565855774280274577240735020030771154076759964359660738870420946716333914872126535245564649039625880977121425453543395067173954757875506871479480855072307640309144807477643916599001635591200026843732379658034090693411811820241145019149929556850080832799076748987985388736230474525488761400990926236617523604862356479109644121831924203276741342458923621409125075766556407600795280506259352452887799512515831100891672068258249270170749323136420365692359519437651157250797496180461734028120243357937841438016597194042621590859814045194907420420633443238980776971267168107849633504158027677781676047954882675268047435669491665614086203838153633854684192770959918619053176392695319724260884511207728649091844372788232023265489048754287740229768575118561996670053804513417615710037134865341960037916118289152588551326831119719996477721685773615202398201467893180743336933807580129093087313856251350111956278298615923103760792271137686220182199461889475625533966802094674460922136806074761060583538023236227541869000911693890679844867578871809617239841602868093838651522688883361236560967852165339118297956804960443559622615568469048402658951650729500904361900143438579037095152972497586930829948840816907493987745525513274437533841977725880460272921959481884227441557646264026651018269302888393693098301686228050952790870365298748190903069811999813213984052268078586695279148253694865395990988289656111746182132202481010036392532480024140728323192152803283884634741423438683016403955311227460373709305783726984422302169529185240553170672014002571903878331591750782863377614051225856373165838909723465683788710706548259932778249221321397984651692438058096765720184425348499753379070592572214437557333636501258106991927964837360025790450944685459383212651564720220772599499919508105907230584940594248574117374012675549287077674282763102694812280204899063353969604641251841718224848693161164141493125176518557687222116304392842670532319055008780158082372115702299101798875891876000227684534197627829884735650795803296040187219061131502350890625589220956116087765594439913510226181368748446691676444274689434208723027837115722813961660919769197242991971921362100318306592585134075343110921875196252799962885384827883713021435115069594292052375394910894884849154610046169375304239574613662166829866478014611879817246131442598498180461210784572951449826100319801209648234795626686035167550179412070257059798240280082785125319142950086665318756744979071267893096081806817248038971116845350486987736012506673594914191228391063613334725033122823011903421583126245258662597543047680215351549987474542819001475312562240521045442653810936700012554064862915053365820837142261218640122808242577868009056263187755332874957727470681328116829176699840419252434988138789883935976937060040735685270225297870712203612195368614520171430843013755311489035707645848557552417913239533185597615238644738406648120327600848114529904940203882313792341059959122800219620659141427922112248122614408502109035320443205641386987673791118651316217231296898560603254431366015608268321426524372780819008568360213278027527489434309093941932189903233670160259349631298151901759643071228565819042023985911450134213043459002478341874070132724544380544177435527804306107884771668558318723439299095194782241008442778578209548214397730756164044815828669155931434034641292896120453466643151643728646922560711096573553097766173350838318356177074253840557989696442604658044095693419597062508823617528181405544469717769387741380782798326487708905560555368777315712237730913567643769037552104770872519137206275060501475116544430692264963293214544243445629146423424701727676605800172794324675909885260789216036162318274275124523197355067293299072881954148067443532000783834458138136350216257834769178588596440979061284201522908450125421364864916229910776118548279814791323037709145554927723139247792968135818165316970094543536588754908741976418650687953598231949095318273658199241687133887326388391185256168362736623537161681377262546829833072565676885577413047744610129877613706075716784154125090484469747301003281044343483654264430739858043053364162948341185520796488109484898993112071390971749248359988893346222297609028542430082338643782119547246249736145387681040670090944707301606496882665131385115558525698914697192245406993478343011317627709164643594711780922637011737339441617845680887147570121355365323731848750840691522783158407928054366383707310274402786903783086385031681901375189543722875584487778430986872040953947136511074425525242861037849056146255907447808620416975692292704651544754232246558662334479093782316509254551926803134076171929189097895357579974941961928015650975565541743711740053750198575063917863056382283125407311290432918995616745866489268882931897168449500055225189931017211120242721506076579967709153793013901218518319785204114841748934875016262237671557360598675741247533110294412038919787678150274897524578452265151349614915067138034051348464183134519573123924028357127486303751422891311335343878357182427572497997123377999986912605723960413084534426789673227325876493801153735605140777569411970236268182239825083275789851799566223826849344897367607079300092580583358324819759782021292772352802452054966043831111492871201420539304394424398715277327685959872109520532611523622543597852868785414430976610153247349107896540254916831946630228283080056575885076850283703018733374304973251255378469209218832999263256263806727063376243949494418449326094026890489852083766879465221157257494978791890607266053663509801340897378111008753842853619146057281256245357886326521647567582539077207284711621867894227206255144076318181464399944069105120540192652142058170847181904402071843571719462518523138629502540568545900069140338816602121933238459726669989804304632428917633875403034795020409923371099702732371131222662788572175244903605173795352954347829808052475719040595583885858504572983992394498042965069700766892619388966730881588794373143212903401590157347836026152988744462149533167194285587040637464262416123008403733036954806659256266990992367649602236544789413867880944522028269467174521639457378652086124888961971230412461578406780013445404047549120150507977744678145069632114989204921761558860155087172974551791545618482090325688548975644075933024087445791887895363624546256715762423200098952651791933920821739652210093484025819826390155116219103267657113036784365802307754421141142162317074809259774129395142264165503153082595705092857258717982628074429286610550851905745061478925932862784111919900695433346044094239509569139599839296522970133142560009199757508504254655682652126568619746345576708417140603586059579510870705647732444119180281484941544220238973440868781621939586962325549179343887861635266318976882412334403756911109119911262423661665183675758919576866177212005048953417901115054301699608258457962265423158085759227249457717287983480127308885410489602172062391634833279510333669810632155163514329335961366541094401360153031132603554837019221279584494590414992573542245618989371884666301785467538315723079458467007966169768296459542774680714884939479906202507680258413466569594173038851334893060987246920477514327388460440163987010795899708077256529273650792893977177523415487652983887780863155235142823255068484916535183757096308411056774706788615239195192617100604490791900816346678809933924273807673439876885331831381178080386264853124403924964991487140840105673868691182407144781617026606668558246731030472644082915248716284531728115932110330506412092015990464346942488804066260618509304230449890117836674968925545483801539446265452871790482765552580761417458306622335407267978147375053115599560159378092610983022932726933112676182281665445212122170361908335664385649933084479868204156663761622035776494977031265869373928903282711910029789182812728778133300010181944994154516833473850275335410961093204083266085435591138226963319903501064295123349713489681308604409606135242435461414447301570900140161278234066934203833961855864234958785827638347629241364704598100513503828631682559082857834524482795233749657345462316847050641482176621200033306020949476996707936147669065698955868736708629156984332184295881198657069602723270254650538487390506732937872559462611590204241030506856436163013725236717378391824285939437682732237216648199397470048171485658861185092185392786584189745379363968715060535338498229261269094822568560028697073176510704296256021692053534106301306554788278186262117914240556550164590820002432314640034948458105818826531066889485931332917096969173392610656109688473770999191953855792021314227820153106542423220493745121354579014698761680149315209011569220340767842715386037301799314033513281365401188588151795357228993122277415465133373032854539145091534244982692884484287262977741650101525481872268062096880532252478958924875738282514679139505818382742043582612163827110729258783852890170113578768101014519179359661714501606139149237712655605764634117556308757408808500297604838784140143900479705379422834332963112278432292349202170566316148873748877421248053705763066021877833286586762134946318643699614651879897900452925990723664585517564701954886436762212561965695637093610140522228866862503620214356583168425881313473651157308162107793893142618582801738433548506909708098470216727825152487541923257660571833081848750000058410841840991866909277163630769049334818026858685276382231455182956062035708649262763954632921386016740682201031498244534772413828287011345040776987657380675509148677300905373639287669511124538096747953157112843564791198290361701408281052434960398722113736333590201386685496618638027463160954834076165200246415302483400820525014534921796563810033218500225412842842676545043022040508054497035502146711781565480303433576642964078138596498215271299233028186277258669269612360672216497431021063180669656369146057590398792176187287015653471101890873866293820712962367338006017449038927234911482011511647386745779262502606880482506546001608200449400323477080089098979388596731770601216600614834182304049473039486197378120004306850742262886797885485368613856536557779099509303794989682262640032570032688941168880253247661057111015033101169979744853053641142992701553075507181512355500018210278271100363437620851196715961914435956038606626245552057326485358796003365577834616542908282058658266944060611136250768146698702600264088528674917630383082161868629138526739888433398409256526927397842504561961436532195638264600477747430698906741845275940602034180957776434075304243617808698231848856540981091902281636170627728880514571264565286197496657747470749514094720478065713816440411719450474303411618322783116707069533588507343674400686171598182714997019342787014601053787756685610464148012411638867311081789064510086193127804775534167317895318456935962944492468790204533816820408847742909765814896384926277898134333278087534216373099582640706458617196759563540204399047215274578532478730561930734631722513774139819787633218400933408001113935145915116719151625243283289650963446694960009672506843702486957819206124149547221358370924274839290676876818347718444552397425470041188500828399369705620413881994931748541872893535306748597147420237987639345038285588956612208997742945190366800393784703857708523866747797649122961486910358038253493877266942261304998996044398547463946725882264276621880003136038225964934414109068554352661358447020569020895351680159374273733768953913550014228185326021473823803772525660740418199646439049066650893705319637032192073143520011884737527424057952707567190294140992590677326453849393061293984642524056582976495661402529476285351487531701456997887843494379248105806510839648703531883312939583868891627193123843606916044309695302496610063226017065100203317998888091567376198524290288739265668019326409795491714785544951304665137358464529700552438534042937984076857952560433911580023240279163388708071349794657922858812390245361272942865137565368755035374858659957536223573016947857851408276760874441284858860386511479084190900996153933436694990597568127558777247463301191958680665267105219274963578362689811102224370128352397600746214616817893220948974547016653012789070955755397070822549019465426876530375757371891639261367736996478808085222493536518272408527937881510834809176832451670726328894163378429459682738549544218346971958569236281406468554333582695707664066159464165633416206255710054672087710358526881414159437786943929143451450664830475897942853324429854925336131070420961854995716491355509933718900514903938053429732716068668961287277206638567666986848324028241664695725286057842136081329380133392398146030830633066409405050762882743281163073903761358291823513421384222928163132344976932450708743650274844303401020316176798059438537106222192120661666492496287379236346648898261731284363253817992865390535018882613360425061342002297175115961900498019727344070560135690071285656542504263981568041219798482045565860313490787581535211087508313132949079744875187609185425263531963080725370069804328779603247375397234497303962500415366112774968918830573619479042461513897290293316436063186672759100010180258646581596885718347748554693376403448760306752204076338261079350542218991842841230169389140029536268099880386191614951874136409712017616824169120719936194195359190393712468431860082659948378141289733176972130584206338719093269227696715084257879437964485314431095760922661084751364473422534332437496512515670351688024672756380655787760899334002385646118045683933635546135673215603099723703830276173891373128181595528908792983303830415606267479422764962972146647256476240256601321433164117694718771141746146974227322887640438334897804306166664711020768339256793690067969795454442257247328996372458813961912704244149171658839560615698614517880027994386775663537629638693620980449716294704600273097902968299164602970868429889160764939585833334646680389883916720237405850869273875255901118731920191688566257806433546406590568023204609955285018893282630303329493167827030142570610707522534116743247324483458592773088540461041903138737910226212247986887015176565995081395499961460209917754082609613956516630109096562820662456266895380718386358982857593569612138450499816606670336154291242142158042256140304053244925349160666157522551369726954435341901331180049308359768186780785614144140939747873937707971352315534158106127598618544578474749574803524511256467953143930907024816511625348638553825180884378445144585652652926599500136394288487398970011568518140788783996245162261024070301176797949367325908422802472452729785953394823895576606255920883074906051915730744857993064591505932796065624856857404749165063951760608966940154557439632053066507544795843948433858505641623190332898436638886784263302851878701368977050885453158079566644666986517017723587757271172150647379450143349073483219680351773850869460616995040464151227655393805524476226406166216849395923568763541541376191053781933321250438112322531747469129012149147122006986412606845540473613829479869586042745289074660147024703280367293791962169077849260219930130491261861337167072351046646198394359564894490492490674818954976253362712908997189357408195409557664206862594584243354334895558729178418975616879811359238639784404517908878628725723792844526485859549256385257313560761160746553049640654909934472439399064626851100125640771579100731349563041018283935678775123080400685389432444132787993336762421801068465373933196096834516952211893365644208432076068951432610870984986768429629263283108663971406708166480349900768953339625013305413255987786162989383830243612179434868537821643009671137873046782613376609391285029273206119629892346322223974586572867066725586967564539290419754352035010145689896733239764979263486945332934662651161112082612529488627993638076354553201175240473975871822281944689356514155604290599773738649897523423936142325309053192047663186396791168870468837445969426001742047594157062636053229308913673912506279864825229082324531139930735646769406282324711209179789381645135051659783697808459889540889548858132809120843345348452208035362972708056207340038619946163684149885105366887861762421786710248191922287568326661241283960194687009939039455363729432444880138397839795701213611564620870718823730784945435466852612702148115433799600184239503003692618465088646831639011179016254596081965823941060888986234675108128636258191030934548966458147523424424349546722860446699874074183430743102428888669195882567907281911304512143076191359550233431334792017678877136251419216108917668585209760638082152114221360411414258365194090024973960551291904028628557896236865604975925068592417225872197078708253611167489182432691119117004424748671066661605051230202498639951814837727438212437446237648904884891804131777313653432723205055661939887470840911182791455369402023122656058213695668861192611826218477852820621938589520511191074943305807063968425666513747863437120587778839830053940158622473960484123861531006051827847564920825901533417782965845068466159455772876711658970633686976611350700266946896377824789272558461829476160811549178470890890942324000704407691139115175727243038100274329403387326598456000670273404173045218980426042704131666787085952803831360581059563705684886928125786918994337678644527397189868384908203423503974121426246372992729880378870686797987275626083245819509087058360049543123616556734436152962708921847269925687734304614759591827480879159211648729496634111647660611883829631647915594169092684362079045022305225439439446877478380885426358343176436079454598005854366277174403972698577877683583931439139367002615643860365166920678707563169232726974430638735139516249547107097252090490821192493634193032688333707460643313695590059113318507456519670347826637518452642352336301441479156827547648201882609282957130777804995050882197028327217364296165309736043622266929448479836733548603911399294819452144981954648296548012908431194623736119719074645530370492209399535783582079194196239845516288372282760399483622724338627547913553516766031909735511306379228298269545080370117419319471553771997607235289211492924659098576382901550045028103199321269873595217263341534176680408773888390211947361286586590282708431710697120984092572151318646970024406304307059931829847363835943017382634559900634299133539284095117567716354079585926783859813373279433105941965143792753380594214544576921593619371616099339664120816349281653736477991958297382589927317943404376156018837272844985323934358877837247707806270851503503945415009479070532173472421897445597103517759503337610446836991075206769232527843376622010155648224177904352510951126622215477187356476358716403540308433106113841755128920320200535525296409526192329485614863310248866343582491571535071572216540576948082223557122473518976830626894560332425367494645733740921406845446642558041653616147626695998014430177748281684762590559519326026280024423619865660911124738776316752578351950129068624608603952699234141496568504461162403145066723126524409779610986368511183407755073642658244596734501783966878812296581712775184409842846431450128240614175726767444778526825705737473127625520481200537852161362434767428430803614729757127867434533280467479088689690091917139318626007351941356456352144833645867657218433841436552019867313179656653620095185264184192097757973935974354592617430850976081103509214915082923571674746689132928083006611364405435168964770014294583805032188759455251698158460841810030909446552703838234210670932103365072005765218134962353441508722676624003581272187841471707181458072044091236806419243257602591341425958771585336548763439275225474326091984332935620350407698227377060172272708383108515203950125300521330252440127289689770246979072958589429182293885736642030667421557254734558874749985468918713359388654995846438633170694214845061943963157912494304548960523732833060095363600015764718787517322101753237156143984742814326478892467016162965418009305501309892554722380927859889633421412907674801085974071898078664599403251585108189586751175454093345038400661986867290381051175869982539385887830318997106035500326123989571881299556332865218025049959553894338508508835215080821869428395090042274724412986806613450455677425759929017196883676503259383375031760363891657621181337570743787359811009645578948633738361546886163661247886641759031851427790311368388211570672393888740883876072387116599532828358230314647744327517060193179604214590449217506994445603312393611014196083132654559186656233589766393288211135813317655659978629772886145111407837400123035851655882537372127993782819107892499060629695567315966611240451074299760425489029410423071826753885296071015219730501614831380690129953286261583299687652555323008043581842386740630788550161702135402861576551896982116854615198974971062774445463261793115645244341996123691590982027461368616122379318475388181535009155093244497344127604725253286995755231704119151548606592580413163717815699715198862998354356549951426989548153597124068034343683796110608003727425546387071115705982610489366396856174287823808657316207194798103242880144251566387675500601451609400523228627413518496478749976688240182312790805237723991709922627645384471413426319202337353614906796251896228521156187118708071008813741306340277752382379597766048059701042742851975519959887991039848141541492349278839174067866369101972284571063951046816117305276532268753375741699450074544943987060431769793183623655357677024280318360203502242119195318028134540274540680775874621215483035682262940060176472056093430931145325667155679591482230248050431439009635185147304147330131946290253606221354553240303706164570088262910082171009930877255179714514688488063257109810422211972103235906789892998994548895356620401999898682758749046855465674826790556445126232994099727886785336691119856249795668495461893820193880067225931821278325488376259487063609353243415530803940185809238502288940952830213690551009586546953906684826590357619548847996637743144711667431308884870993313710259751405243426501110362940675671592820176043629402356807069749208968178386400741144285838394291848639172112373741045956138768107937556543426510040696770859532856594503829415362448186687158736522992494953146856026667633366917949244151549568229512868370561212760070276931914891318961654853733071274410192350349248752356300570306799407068036781971279180287111907756290212096831551100734607421393149839536517995233087695554681368705299422162205816243667109421213183615411851322622464923786417901593040576506146288026925642831823001793279839012048641655987247164285114040850430410518435732166468553027474265606536215362767898915383654578641712914064861900609979104063528106735114564014986509766668816998830017067674826714951985383170345209166992890220367556938673070125441261320384244112667154042381037362309021885770766231775509084795890806360972065624074745220644261720716331417158459282034339312417345447717083643778447299294226106010178325906251387442174890757892773200546958778401086588999563947726435669960260091955712283196328869724791320738154853288145251562241690632242655341621516583148294981145088092519179126327063574074718280129943311444644196410894587622174353805990480911813029758384789802967617295815935323427724861303569702534679758535282682730318556297660641755606342120907396149184070766012224969980761616131483613455606442760182153444199177752243158121501686171138202634741353391124524171410755886085076451435464548246335854879245436159480916935128179746213787640801296186014227509109477810358184049598109066666285650443178059413095401089143528187312429940639800357573686381916410598750823731803955364176125101111438683674864722620826102672424321734548247075567812187567246626237182742331483720864085515793805197301837198850369145561532558093120421240822953821450220714526341222867637172737603118871474986829387091928666961226042794718115598637960077712531636480136920135451135993646914400922319981490543897178008610542342884386637589692483475544143574901334135624173264929183391568110799997904138765069684667911826443239339422470465282136819647580614214510267734130370863602979015540920816649448219302588159298336018264367403659389020419592242177964668725136502498589008157960853229918078580360736837114991971315492556895464707763012668216323486476145656895228952670639322945573810084450781932282572166891889254052622664865165443514475899643745926635103636503783766181951989642020414337125673770425657211704388037541225103224245965962719007159730234464526791508823583465653554939129819465475693986210987929355726366228570557711440727600838875835127070647696541133342368653831549293707191389964471386285267349641288933418716847848740206823686952875780152649192154337710028419326048090195406842219610277478313685661529346548352730561731960489606937144522989256104902989599528903098966146887394322660008366450435361376772408572431768439618199541734850953343698098071496072577629683212546092732714885971397356451357816809421253617014744575481551630933638199135905050955655289345771769708090124071864257940550381692166684434407450750944735268625778506865747004874037647531979574598904470238521555433887573656207633458475997705204878400656677791943645141026668550917308289779184547806106786567729697863838157074627876488164018767892270125645626692502818383618334204881333181086831977523454541321069910492013939062937192545834778541321919622737717319064380146749513753692190540489352063605291722200581422682927328699885591187854319365811884720875105591982027436980605660906210936967115872851181964941545852778465185837617661997341691178354162657153253921622301527743316213243378915963343498091153266673998238242566886264257034497792289340264872364850342566109276974474513502907585838853779709076581705660174240724349969785454174783399297711524684931453204380734139127964926748452558084493638417288990842404986257893511083049762099101834028204732368484590901805474490483905476877355821801022323190634074519147559625764896583975871125220371974001181618064188340499101753552929404416036175208579317973539801360598209380021485763185649511785061596297350280345407817283892803229307154192472546371500494255308967607690380697092651757118556371318530256378796073746854746784899026710362692360177609161518248612192733753431281829750279584544768637947645576218146059376776446263494156482076867220851827380903558247812298493133376575301045663600715242262960493694216299752778091294982207017132290751965544892352692889306749770913121594680042492136221008931924437395403623325607387065135854476666634835091404584373989623612468335448943339549153804387630106549759093582711980617698063016841929061206357517720644990720749362262362188179973573762324520269628091880888710809059850276980772261440654660733622967519371450810055444498158257803887180197241730734885848527539635128818448064373358289465334552562637391654138239189489639315611487423600772972450557209663907145001487621363590502890637149741821547143876471729968409957353626341451358417131512657238581892998749407212664751113768143529293602379608645330257153015131590055403554272243448376441118281186106520179154262843865391245194832408332382335745384420623239889795419836847703502140850880788765359084970695318264178898721423567122624045050694296511719163201840874820655620376169917249440189528917754383470045038217287188072384974063426283482501015180724084211509466829159095443504162151277709203704049960796447103915233008847222097724534824793257910280202894468032674343471691335050595313109450555001509572853633924880120081173050606232708995302884127840380162795450563411109298006358938784041813608147140102116411430939618659973862585005668083436733796130455464846486800175700017809347282084739335448434103938690119210457392170782881257600174740923948496306254238306471960192510844668979077827767366055047840780327276073847368973279556637033769440839998450701611753066007135756358545718192435698059309300753354036537621071036902355045973537830899489129153145274853420438309910185623101637975759042794353134135257227116891812132299096991147825351677259911108589063564007155694221612420061597097224833991671145947750748308017274435416271678892395561234347507518448457520421095470844209292745141144251953717434418117488266779850226344657250950794765740735557855090004424207737370930828315679727286176306064510727571088157027127039256961713448578026463516313246264840223106309907875520572748637557414652519733908988735382063744727206699797970361057428398500661314114857789482419495758117829195672761434321811553518722852054053897764030723135486947097153881412042305675941909988840039478778509278571433896586515709853305515127565188579375572588507898968889333420475435539014480170928529683816055597029552082270049276157990825284950795320360447877926306140860935009595172022435314024108095051368891744760873542459410490796736573533921492209296035855870460341742622421812253056557325877367226578065858335927785782489978635464143369091213647104433222850333079799957349481239498951905542163440388726729332871469784381634128898572493176464810644795831881982482227139571572152036772614564769352636069561776101417261709358070127246271102430637138622583664390879518223667352287559365839000101677975439094275893532811630035959707042075094966690132634093700574489221395680193880972619563586918168827053209503162858443585522588471156400762518723948554433755879824406620868720904908657610492582979340939818010897165360154357155934264878619516171775482671117566736273303934443725086970509812705349367139149344749923641688373280008195058871047240470088881606608725535200173204422389840396826779395763976076590178347676099387591318559799892761097261634729729303220803409715879477387625589215320010922702523770875977931359835087462715650516918625557532123162193432387354572437671450297728069367064811289173108252077594734938023045216835961692063507297795042844364934928854666938029130254601659945767789724537882942738891819841724272972338400729171252147369136907044130775173487706564599712051301841909779409685516545644663697092024397440912776319041032700693423196352355052760100351142154231281013080553529642261181166420797184977907887866835832324136205370875529957257866271614996473441466006827619527104576729608841484055482836677667513068534004153143835264552979483223356413338920241721079705833331039844696238250314493127019383703941835636298742395789635043771706788152339591602769706585309235569432756723333236015703259011824558313708525061478419618624555545132563664542347376943364665770594776566861612395426114873393043075871220192047382762665728232005068432911113868116447891844238046391182318204075873236589316242919937587145639885565774380685965993726456680436261381802432420489726601346962465739789431022528280542757253512090157416330941173382491012519620227857883269867742512278005615882559580532879829869148849774387649927894585102901060571445145488813858586555869559181942392037289684504014118175322893327250067006460209766942840815590705110973440056853088230569080795993710087098552220725604902951096985399251321019633508058632347188896784499977717275143391125693384332077578205786261355957367058829164686261898755298548402140236691949312725149551007864597168456594243414188752760943783694347750178410835284169406278152010279557832275607312503759907865818088633154777583714801421980260853341204192418001452484862116071261901921560483806677337633027814252760278140344941697210076807516535086730650067180745627445996032748313173473870136365086262502377087849153572549696954208536426159118763058759938431510493406697992222417273290808386572083199906133439891739144941635625172847080641717178292770151916067703564661536642891645303305592336054250138997233841483133523588696747221176382968473459224629067955263362800670273811664311912542171428431682273242932124432421130045206111326274016377352657657727261604509739163604819310763467726963497294507177340472573504774139717477348934887881066922656139201519493941577301935733302998551629012777831296928799036499260190501201813536156299485198251005093368299783697501120146378339567016156279557469393284363367241181323980558123052038084954289898814878653798556993718819585349819229635383074062745181977243525604004581307004677702549808758614663627932215347608631687210596818079820706479835062213664210531188894795303061788663059787939428840706773622964003434286601073655905832238334684587755440668798970964178996240440526522786458893703030134797847207567099424103429060315456538577594516925341463817108324693688082705842212459805124875393326306408239394473423910167982605544937324428472847057761952407629811873034940134751991176195950735194432975359284009059334365156065552101458985891275831104623531101097717004811361432176146300119197741019668966390010873248748206264558422599171507260744079926052004506198713688670311457529710296997512768789869213660330963154284688822276607507344977152842325792616454998016176822243803349325208145553250375388910546825237529577409699536561749426754969494715934299912253139577826813629403639463960674520522514480863184240585835622744053636773994606871117330707659709993078958993656298435588314706099348226687708314364057152118963309063986512586274215279300224739996513155386149967473725198845508869810439486033305517099800017754636874181824519315018770233355537591017745944759338224252048365116000988707091387431808960371758155257776924099265789171374213889315308674418570818501240694441830222140972243344839221420709297889368626376247849449560204565620194439367729752991703988115539827146596358052026397361996581020731940276038973737094799074688045705530657961175333284565654789475515830650226149307043676518946816200815641258305255733284624385335914377259206846006740092140451602442363701367739306410420011664979956712467771556420068466611038363110210937317276009761466759589776731654665212106602045741455850395088275361637739081838614830778764710191429769185824309992354208250371398751952309557544660185339943180794032652468095379919299831055564161425796209835172610737090155549686331583355122136811138465279561617362287488837921648110438509327945675503542188448897489157899793009254969485794228975038855954595435237373241041973521226330213150620802436020314497068501843194708799828899598539783787396215916274844034270337641996740346017853358185561598050555408487616704182712365106018404971633310517689826135573848023976599714987179114688094107099476824543141816576505403457088774641616494817289983005083902248489003361194941830906040590681885463671420573257807824118815463238915493144232859096750433272016181962090017587827715819130690800767058410424734675926684737132253632946718936731016094985699807836145070799017903589235508722281057912712224186452902322175385139579147229163787420731058147949230669060667303741921654985414871532904730075753699007403514577128154127425861936813658687784306812741154134592106124955778131397839758841836287387440088331318640988465442629674990698746991660649376217220569366861933380302202437968607269850893475043175242004439848664872226168954138323523636144002553773457154516923118748288015537775155256715861074138856891865657170497643449405367568469543684487693712811149042333465888901484438809084228210483396078415698538742586147728094812453241733053395683471346334589998354285822478820044445027275626595670541508129517055124983767829406207638059144270860617775828946081930142399113983643583886865351890496023993914513929033537320413084892804142942481539135744617772081768147013398971272140044896234136577799025824700044115476508981705054498251460976527933784208208086053067822884978041362751105695050913888506611218625331093473474183217576691480375565412023368039691504306791151138849573406839552781787451512514342736467495231435712545332675763410263083825811569970686980113972658671887226095748044760605940967896623805341216130745298575340366345589592251365969767916370884761225205857329262656178711115282976930470218022917604359338353724511210099502792272914557041235325171052796920605492756201844801646902342181869763911348374817094726381604695144517074738928445279317423807198265348985438214489913554745084964001436808700064450784926311192237779313132280102935648223373981153905451363170757137031690305317493574661965380298995286451396888733626781420692620323562551172175555853388946210407198854616428728456928564542371738800604161015826503398621751667866977966884180094180142072113459573160032904933746325254598141584834472037482541684162206515109433161114727275030511729353660423950539281448795733640677071743463717210108146539411392061916053342944158600428672099384718282059373004321897203060949699952760227115901242786531982282085954523394380355524395466391495867274542982019915101738224553767402739077530716777091799052871136114400068765468243163674667380392834662030437615145676803281803112673982461218172037834077559510525052352700176750226017101471754943965006382397495703172887659550694838119665876919699014197555754347153251449564413897304492078882534036300767022986039317759333513905111902063502923178172546090461589413283564575390363602811224694805996840218456096000228057208971051035034018856008004359775108913582047216805856407479719254072012697308057778500292895370885960939172543419090241244544421165565646864825829304867598783031592967404332830978864942224055570025650767980145360392051314564816330436948003815954911966784173314662561434120790330855902244349585990446901637900972421940664281110978277934480749410588381928810566667017400625871446562962778417498393679914128682946525565873502353643589516421704735118895050930385896324527253186304555849882995617106753447977307398706749860533279254565884988406140759428036666152362131088330324334330046210880043767428387411579651496042469276233087633285095373494299344718922678791530455406067847994701331358689084856115290401526797836849433806802864502663214427291356193862788504049783665631370003846544884531874645902840731303898965258977389574214256828449095507176400000122601917020638499144992437117673132044579288908236804158739497479351375407770324683463949075421353181686595052614992018897779128244154469395763700875489573727018152728945461655893360512665832644473914866353105406009422615688340157957677494759550739500398913398480690477833127081543108197531829500718741179016251254217184423644635881086790272215923484599682489350408682763337772174488110099547262593056098322381200896960400067727860487813315298195441765465312709845975958306956506994743041117719968730113055904697152257936338347072190839886888174976575394123880179061394790071020476503467712615126198967305234868550328377653651203664976710994718138154378803562297319633550463454180504942532443969921947745449948393141536723972628703219377643986055322415716871277466903871504069535344024155875637531870138256606644656774511460988652025554694790163045105818828526580043489675472126707463093708347966757482637065652550920668188879752840403556937881416729557800469341862059913024911421748966113785783061031167611141676836902584353556962642473813265835989337640670992091336608709016856786846944416106389467397893678260313143429898414219326020688010977731965458188787855010924160590968383765158680469656244816176132557339445623857700466365298562665192060722175294460589838316626709211220876830182607996902721755362289240415780712297239002345581381784829092671609882556578017080654826772474629236182573999761599047644440254039300343942657561277736787076177427307014244556534852876647898536235313084965445442287108300597744795760017896576432175792499023709469516003754238082597548911089620938512016324310597866384546925245323079405519113871501949568184138478102528485162703791593592934551540166242507259499914354922161890682802989600582957622749283828438858907325540033206725646602295922039516628634176275026855119746904875015201164451940392775460662820848958555343408741046106239512314852205750137711552139356348640793617626481359964744699152719728901054806663456028819975922140703123325863227754621047552157812360633614994201613814902753327559742607121925543027840497466436532019326514744472090780823638829036138106619410676278144761589353948170288716437927700321820850179203040002630165541864049589551205023787720423320642136196683682426089161600483818214668628096327059970794654419801575225948501353898364671516632958549612681514340444387281736519418615567239348702551085149345841055011829409633634797707245248554735692612404392533844270562964307549621561160666903271803510960998593709734701648947797259382835003192547012577606962033092585699542674071287127519211728006783373781456877704972344863119195256738013130943355666111551050980914303500929781960999002046539600849361394586245039248191166837393156011056933865705025595621983509152092212732260783628246071007065206746279592710800277473836597941777351784967511695289157122901377018909386998381967181636934407587085695908739829492363649149022070611197506269527973914954390811914881260620786511083000555970853463128420750648125842579413177605034254108061250874424425909324263498023316483385839564403222312983269489402340671594608780563598410382192119841654912708991482691837368923606523433847088876504027495781932774419467160373986963095386864011373115832166334759853400281309936568824097029725564981111944070966620106382045962318873026975066433231506095862384380570396846013372816896759467333802946213081029905862594495763036195020198303213723878858681930607980720543049098791388482245672863224020705367423729858960055218057558379751641360041812970327032555780372316792279352486442296778639254169480260243091166343095267126021434958952490867565943616361504636731572809936888464871722202794494423069823361580152409166268455334290931214128617585827605532858010466785939886406251536111727995791791177802621800492025874438115209212257881032910722784407873116508637155777027827440998438387686441282665892041419850173859761048679792791690732174930900135342937448893389267541649762205207937487739230769718749709306160033806189373066805067892341838916183384068989153092085882336104344522900357871678048153572422930701796589342897202359540797101124085380314435419094356901650640732113888359011027347675993430286258112732507795685727922852372490292416125686838021877344724952962979195575716992352222175714288588493784439815497624769971538927757889559528854723053228199077003257943553632187957978858919670023398859823322745056402313116198254348919785483749754754300818889306015195068095293337921249277264956735161766205181332864045904922419180782833484912300275492108610044849024942504846143634462766569603421857400089658307384238271029756619373211815532351407344481396126374369017360037031252858922940234314655414795926553454111516824731906323861539873656612822723239725229964648819899105749202108773831505514771595075936550073845334144113747442002732556481478533881884711579559963005865997244320434311495389200829065652627315541885116748999966775534611986285682188968608010844641451041376642374966667405153427576854856435392983271979745189043289046168836836347304679212419378857100496392425531372062094989116975277443094325981700322988821151971448298556959578709920158632182636012799055445758905562003803205327315041072153937105962522715015513686256667439318941664159459811289733709023252652357975439636107506821808440614565898978158612018088621932137922215213674816552262457700861094538110498845592456903455027671684621445074916166995759758854365839874252440446968905809998897744456596685563396376592666790827659297727022921184129130882026056061156280963339278541112526445482926165717600892868444268762422723461147713279696424424320516228247150374555169585546890101735953405158965026315893299032951322160494865191535328181219485759096072198923500037514723039495249899853208697698324085869775634531991269074260368583022232061856849231962117493344893322830850760480798483165224053999457777930152551376277808071093138731534565095655055803855489694357069501988109119343210468380123363038985631537250334636490764142445332091305407355458461667090133552393500036372743682920378901805870256932956808066119940568629653908557626464439532509029120436056687756143266684390908509808875523849760997427530664923663786235240672476155560718303649468567486927729129122240527897763101259431606239598230404501270784816499708783735849744239271424894040418439104741537139435378460148823616454991668250086322891865346038130960586955263588876662947715977699435057365046377564681272541994673677578785628951983224810549009001956410173953673165982177520841223546310481482181135849506280083267230934554351469277606410394157330682674089155135398298172367303412733128473412503037163589196882050477393090333932978023569814086573163342991813692904551086007490784239659123930788500194898283950731004751121516324452152483992054353959830697965359019268157848635289472907491716135308689012490032340181937272559921328634214854988591673410847191408753615816865421298663515408140229486390508365161071028897822219106336733765386935391145461304051930708830909189764550029888486275101133102433245609939353823353610719769219382210439232235150300960906560981075425661385779219840567453407070774811548729745303170047745017678140955067444199493529859070111022855020556928078638765864867318609798973163465497869559084638049686341421334375395928316623126012402350759732153972104243104254495562401065809403158937993473749856541877436710009814732920754100209000300571213531371173353920991083450057717637446394924168852992382084403720169329712902303199652414867141418280996261201605527412386582131834071001588534345379051228256018504004073132182191359089039220739512822882710565554776109327688060313414742225380216238467015338232908623094841608783882999175858609032054180957158614721782506860499076921697817226790271325554285292994872549723374049450015749773223676241784809230336213914157571363294266592137260117477448170593258073546196727114875769662771916997239385430071311777989033106318447871321478749191189906900430793297809221193657248451548462907277387260394472996402141894743265501344036079659088634678039602429331638970555389834877126972758460393360547851144037604901509220119618095910083111207686916568918639159984405245730295438447973344644111659330585960875615471403551273600336748024188294570757776327357398027594954243091118782050816358508121389481891201510185408916011559551634152718478835177060184775732924273756937156248376009637391180335203912358910701419832543810384503953656694599704538488916833806385908066464153703153759868969735290231712679746733582349124290392511584579213852186408637122073138868948257679264112801312645318416271578148780475914172033677331059347653941523850782254300759492118707333190983612471535830705272913088668186102939773290135090512294112078000867304475255683608618361178318862581717647090217452478245361510821601906075169871645179140558596196707883336833788543253014042686099156490966808567011959089648559489116072872306888491383642162180046043760674593054529244438778879383550306037541168919086664679836938790815911815462662950863432858829359229578695144099477844130217281146175871687766264845406433364894127503006509499804553549542675038122922806804179002269288629034791529805876526872584443360864950138783259608756670085951354693721366331924867363611804869364789449422704963151718244049463434233279383644070498285870535631873361689249781229008958401528900899352138944504334530962286777075094338194519322840248929716527968284785283465796637302280726536612382749832330613183231962398076951628448387069579793487289390945560365708940244454582672264798293922267920311923772309051704660999676239299428346330291140440752592278605975613085447273598936583259237222723523482763995329181106042778621457596569721003761810739641863693079703952573163613097638103116152960731641661106716633161452447289107437789029834193907150191777997289071927241378758211619683237838364009734466995608915371970299793468090549267118025576723484699161283468422242894429472846109541583892643096870355569854759101977947063612162621200105934728773175201912289385901045964735051843460893878255349373188254983094334845924029840914783094763017869950517619778412401885491439556484628832310607197747243323037572413301334157887199665080457768060290282426799560181613230114656342594532296090903248400526294640348170310624234633999552847601941172213126595704921422433050348977848388607450128509282781874709473210585639898681461550277235790228304618771653733651064676377426917502929818926490809115080562423735472404665220128717814492200107923449211372011372498412071297512546533900253266626159120627714421646344753250019748687144693556826941066379994156646607767394749779493484118715194044961509260659280654965383770203850372798225532956878279281687737665551761890554680389680471592141015165880662149852830883719729103112777375454455057672010122406547417646588235163904495148543924453827110849216349207601153329195140571188006278924481356905502456578816262066337900892553833534084444018068548653835765644223715918846572238152244422313690536222913501620134731929160592289898007950267153281912477160482271000645088428319355686293569812971427066834751473808674037475414335501553331773591921160759957055958352104189686755692831022583868269065122156189483094515894712947756380664976545833277092880219853872353787935548204398116100423353599356470967342325874525215406199015428145745968015742943596106546435388623987786827123956136943882028340829177939015464766261726500905742703594738158398539912754376232149179348457806524651161648188858113767999953515153715671615790143418889778002909748266357583557457718993017555330145965896723018314424277823484930932041204123938949439006521354884190357479018240916769928690547073880659821695705835589864796096793515303116366318031252324694077449921999417867927087429113262667861989480229952756290765776671078128726308153419594997962852502499977294600240714244364840602232263486785609703724904421084237657291258105234364659878488580726598682213581767412100422017487875835870953473748923491694729671903890469270005940353754150058801236325943050026638408360256969611201321284741198120738369502116675307235485533592330349443624674582971870565603686357383141274867629574115979409592063706385993552504464765280964547936504136414770972453219101255453026175698389521065111545977586939702018008657921813153092806505705897389002525195341909864197463905406702914398262040464578351819953429390671347161948556589350730912909964394681643761997285087181885796719055823432322390206353665441317069080801537121973270705006858435170062927882608421488635147975711426483665398686596165787509872986654345436124785487115845620812913965899624257146577569306191114001798860120145234870521971483764715122087801016614581759489469509861132363764149319134417402812077685899038336465339269471544866931705007605970428991719275506379549807191400179495708754940824624617301504101643978408796417950878183453892605676562168316990674930108117911187308603785879745453108244043536207548892872928786960274793560219513474252565473012040111479779237873102778860092348310181025485534995429283997915862472618914286843291899752451121272507123898939803373915177189367555083100788975872302895882675727119400638047272050165901641072212270562612197088069180953890743936010500655654864298371859184044335367052209818969259585858882596486851560847881113067851632735145698204501545532249893947255265297562294144129309269442976966875419413484691292851800372646673549605297052219935099632179151509201691642413849155817687606787423130600039278323071564212307422776585012994874516686675615700938853407449011862644019071698038018772390470495009131475379637595836856190558709289676457967932918271228648106439104230918152382620707121819715965596801295485014911846887391610988909152860999818763207282358903232638866693327195557669141390893863848867811947543738870897300998808901185756268463032539297633832926971822569817053600544174942088381198383257047804424991554370940308923273128786763447157161553712019653234068939537338562346758335624045524876897599878428623593083178810173206788428893484479357633569417119221775648540293691367963156543594792480151698795232319645051115859599755592832992469936706515348152954436070105152719262001254857868235210696627796233328555731209553980925479941083139526973518395209429352614050488396525683982455136940412757318488673068417672535753514374607998352525597225138620342942269727588429457297654370845780064110040879353091243546676790847153237704705409248528132989960586603614252569135023883606145323974957097986087196943607969939428871197849438627613335952928518905656162304445722153953390428617438182546092497597071392804173535790944999006478533497203802595877965157329686636702274897610369536513842231191583111804320857394558059458578912045719203188117457434553611030370810591250015680259016006821050159038285337431290662142209525655400020429289162123358598295080076940780668141822559911457171187218198909617942102204397862534914456648193091963793268088152755119101855034028372036386538729082907409683085983129653333914235098493288540644300216392200137157845936992650343362053495935451460961103611510749530163075797178325562698625029003592970583846981561771169487591072691715274334079607368057767061046107602848854065908017501896247373313311238605100676436817163676248512329032648027548872140915526652319058231380939807908633082969711091477561687986419004730821456575038092118359608492118824628305688323254908922032862534783057264250105439049947742606641472254127551332510473583618770664822080500315809081318924577259435773307101163991484171632027385725297626855267964276376149587487757537945533728459737403758448946812792368971340738463981833476236595508053124513404539278255240515516568830382479564143482309217570378755993203584039594721014558572578641109194600409458234147260320171730719844439824973267897181348535908447666903087523429282590379525864909619013172580208009130272935891720222365266410964855934688452915456263031793102972915803413839054952559126399844303233734998342617866507664087176817511125371171529755792293557826212176425584455965768760093623569198702376249034367419360108597924695812264570637482058626469368224791905065953462151791002870652767653934097224148813135522373753138835232480218262387326553359927542349952564796924210557559474863054011721912551250744799687691426844220573665672799870757893487537702006551193639265713131411684146910912108263058777367577363660322214119065931111968786714532340825934857142102726734952838742296749879658515895882657454510854792767469613143710815274018022813914236738760852440070453524192463014961828298545914038201724345808753394140476509044625701864497596005594719267756826774522791644128738040602443074648486909649776762393564732903175630570216048239211194621605914899972681701004445855056901209446767744881547347728333721116772422482210367234282123553912516199721590425420982120135524026482712100584499425869188185908305626977096219123060404935212195536279638792204287813391258216023076085042722700037275348713970254777215399687506621524846770248984985142765808404904973095855900310148770330877073078863707013272633781334782030546837379112553683425844673811625636891052874987645936447523956127762061777302548224389121601685528250948487672882750765355617614377328650749094868864776926927512235351806417463422699298926772400032292046419812964846372434293067924211218108873355155614238187380276268848122134741406421011103048441666859626530409569443880826976148309581560608712532298068111925816836826447798078713012629415158861058360543763832783044595416169171150439047027564994046390396110802622443990704232229541351504135134918148882174607092549772597070039737540629016596206300676838304552611313676163377557996930712161851407478339331582911570231471947067965132144340192928474591952125663215880589239584389216681942879073332626670372948108860990018724432285629283986923164557600881203300657299497238656810546827550616800830286660515311977238105401596955279378557406115883382233811830419629885995581304447475990370527630221557727680889053105780187982833624155547122865266379517522256328982698690855139750055300260982093811494501995171618655514094972612555806840210625334759666666634815490952825811845317257735225977004790782110620510913657748945226586256042059160460656665639755181441074433700101088016979060949488348904953175882512014969872053762506223670178278207506995519760367527817702847681390304909173125802162284628178582972963209186389315355380521223971444355211161810964656133916720198979713337095469690662361373947577045752938988667101334053449534371428835428662748258619608007434751048373003557051890258331629530664611376519622790712687147924204354812464420277587143844522700752314036291727821515770809297109138951221914018791045660101346233974397029794536171012186316379945243256831463230708574706962916568112496651813143571486191308710557640845530428051154934111417981390286697962813837972120733418288173234014025296708663469074328629986892363345640257957536776282754164332658371662584527489725431144958876750493429039653600510007778608081833524477490736669036953729138079836581735370205027621831394194803171847757389928079311176541880025989497414528608244157139339283579746138042448298198960675595598197235404944962324685690714378866301350824631760194415296276260971722228234324946557647676778596699952625807907211474516026676270283175069999485902449096351412076736090646780236864930830166379525649873449003520300026889453617803020894268903245731944481903466590774726346914935801953931627551217177367504302619601915660528492889083941876733477677012658143230125512853747766306001608859367954569614005083983871954699482977973828836472832386957250383621682634083651295704704832438865263220932154522378654364255030521520522782004272314475455144481759382603614700277368483940176969487988214335450020359203233357012192415515725170559637672863684138715899030304753019243527435188391162228496051890877915908760149040348011096091215842729912409816081294665528351261931838421454268800870643533827959226752688665052947724120625475348747079481875067690751501654270347173227998342728666396432729762487386926831797755299887629989977017386478978344702263823668483760492251076165432241377226010898885706853035836997566400036926983452576283603231931632995898582008151320456781319222064652137157323167660502980578664272785905385961011516244884757814399310424717417829164790071633017406971986688324656014953497561176497343470555484338194185927190522132427573305992771799254696216918056904232949682529338336879619880590210980907665736094946100730774792330377188325049544869663723680234299125894207070849640260071805252629771842476081505636999328263800621779423109206136420739133938070227735273277292867568045535363008928396244860209036954820297797959539760426463848395296417240044473801388689186814368431309973305998223943324779907170580541108813251794332647567744221944905487713547195487066224245505201468607423442813452147964869852835156495929772707361472739462650121275224649505179358462695268647190664072547700501151746186926909782414786843226500988305317150117540483077861258928392744660257445604352606192636656052101268848567469694440142448228633165616940377164719716446209408739895982548435139520526476948713448141084562695786926418065521387899163879541761915512874168568630287024409038638600879022500738493955041699714671578261401046644996618344635523166778964358157385898383151871259497315748429561462165313952654059882431048287930937698407250261900726782558532516968623373319721282815699215647312792450562214838542387445135263186139897455911786041901790992553889932392084232057498141158237147152477342371913628012006582456726688997902290734953487051898002096162727961303729904518311225311836979775550700906979398965897222853838408548150556321355948418215130380681745800335357631903928641929149870708907979897613398954195265677707893359141763795028996182002450553920805880956846929558953043223986954726148894116413294681166509345518192716693797568625794391806565779687281511656301165138684001024364003272996140305343359929655846909855779758386955733827971215099049286173661526144200888698758137044505047603851084999208436694954475461187231024459149340630955950907961274956026663715786632216599322960535662372779163379347878487238208671010665314587690312677287714544767186559463919465967354367974124615719453268450880243276644213814605991167516053957816375993401993263493586403412167550148225705949411939134363607014054958941686133866906153138060598865667913854643995350898436889189002679246575524935893019461901344613360331807961888516641019819002787509231820184786820427016737677555678619299854173313836314426296757435012244764275015224324714159557576326623347502652447616701123079800861593966510976009286678986725381019496634347068474953267432388377516475083879585624924409768137225657020897304230256836439494246942046916474292401461262693500413753765517104984526177650225146962648418943696750413847460949359490987240672889641361835035472785013917838440554483200763385657942307473987368584787404576682999281982610347091412393542309158916059084128681129815728690693551500345833556422984535665026009223022940250116481379855584078473246355337853697399484367446307333454458174703387913329339392005884464276555442019788975418762177611285342986728097927723181755518290892704843513428009859185211612024237066754755391755189914791193069041581924009519739449458850307945362652060194413429961340410181950313464774337129054432300170718703848614759847785729860570899166320614379173867184433587276076318820695650006476792279800147588925729807651438661830624646625596215620538894084924572220419111491217798980617285418946906728422093978170681997663750119840312460804920394463814167468461040001468640118765139285171863000337515639232282344613472321543098423809569157741093858092700084131502067045773127518636977538485569233375736888619964208999118949860170614268786011203512833896126406239910508325837223942898042105602520887276600473954093009496301231545158489838687156894444413460162835783835582650388613782987209401640334276044161311307545838920856380340136710487351858862441286791528716614946881016107428356717107911744427657292491148841076277738093974699666209477602525554249951404445924725392517033283563483626058823325817456098611073513875522978549149875960124979007164329962845452788666116962872944221523799385908786230060616813304748960099157777936423222237151625168491919011191617594770010302639920682988599441019348923113635815092393954631126194096351040992915097650697050229759090911687229756888111206658468621433985566416310648590387370448932493099403856245686267585034237876763830128605795729460486173932422508985898865908450969644671419451776600121169542005297565162465343016388326736576758678059942905219753131241878307747153493853562190849675773268228408847205942365901599612373715550133313481803777133021630861831468560839243910552310668339366825495496725974436465470257037323349410031220885528500040834201318484164163623731494665111161962310914106271464659610748393454201616322869765737612032177246337305355452393837341681786614464588364825819759629891328969128445772153218012528826155638787356800294776108116290740413039491109541680924974962178067710076664455510793259410442149900654877368478845293381104019257682965646694576357616577092204889050604552036948769609019485522013434814066819968552751483763090593308297637432913602596344311150218949895135330898107262234850723112806257345812147600180669183713470565094175417821278074506264918100439083145539366240842556382965788649055082647969052382376935552416828039374341337364319749834979196369206682065333317881495004737110634609563213042833754852213271515740117395779493349735353247189013613317336719755611059010673145040735115996660410734865643917886216654031213096894272730154925293902060752071838517355396696642156112700887434367203197949926653138503957249822054589444812698353823283046723069613358078207952857938155430804052892001561778318878725361438240222214154090077026542116713610762534716207013468266162938993912436712786139639658173802157958730465177793785000485843448941807876618310266797404439310271982934986044726555014073950588442640066309926155056223508488681833342292965264139672031130014651683697249274262748171103574449739254530167187998081171049205235442084392896379266474092126856351968677422270459978064745438474231883771659902251924296351917035829672350981626041211883762324006638700964416178983308151987907519174562123636952765468093751020388974928050796158810992610871578775037135346269683170155455810612821238884020181504794144299203323839907172614529880450409257713907142687373359712115654845163567694094962548188367858415241797997703402873988996559028964699043740205990099273626985999685573926353435436875000279558924358653154842701111301760492767301383320984311155311194493964655729051754125148417116818004622526513734968812606582741979151325349541758141052817667554951693826490442407394892534840150648183459817871232350674334898327534363329846472070728020056242553888269465450682014253115064049596932828420031521756936511035007381268418849956061651839093169549489350818069808732875177137798911512071026548817532518154705917585506751735561998675115917234760947995291267190566657833223899260303825355190628143047713410379217261944379917145910396050579495706421120726117543169628634650249607714914726951008913876642738636839318436287969523092161631507129298829833679529672374115574406627257931964779749323865886488133219086735192784783692121195612855312279595918661718392551110913578928391668123447562806304461971087322006067250222679264524707750467497814520785510938176892596821991371410771645838800246625533017154934263665314488885772943620087241100761982692402274234620948550167624063763727150035371239523917914164565443344383171655733365185297050890390410429400349248240593708191794248481558401981268126596117322777825686350901567344087374382774964894319794308548010441167363409901338715543654236373439848641656045508689367757784694217504299423617657694579929637875909216217356000105445420916659002144819384701936476038002074501121276857520035432641372254369960878043023051227373677846744241092198635305523354157546794472170697584709382739215181821740579113592346120398656779713114722265318300246525156829859263925458910426353231606091481929756385532407074564634887628781767870635108950316935630148968349131141597295077409453020968044910944889573092747710399792301814138770509744281279409081638649148041524068600751935244541596927464413433651994751687200679364218833973235004675129237557122984649680515954587340040963212118615635408494139017495047911518171822711520037366265693551801349159601369740076350076388349462860832146295403454392893766968704214379240763903646682184720160482125614617568514066103031564793916567777240151139621236081048368270356926293128171127317694932944140116479088948947599211633490616763751642789089771610298611410167244561051611451651560114295045539459797353817076526087212714451626826999365181456200454345484812373316219897883143902777721939377909418630794034975690797862717185579010116555387436686143223560506943205413307115760571804151419525485160195225762084567041020282937723213966258566554345962598758077898028939029963232837766206146265173904533820803842405331095890418076058076465382748353002074274707775461074942688732299662533348695006182197784672659352373293308408118585255000500009988266416503715740173031196118214763388287286579146117935261911487280728277129624251483935822415210324342175808519556605446306130402997480828528951170566450954553125702317607876546808397142528718161217140075715968316115627464696125795063771925289850866723285640755826443416710611114304898667069996251541963120206938965972405416825966989957815521292199131239384327529449743778271078797862066556283514922779682933563195153068418386768178341870944889943079113212700912961438671305850105313152708240852071490196816760020827270830921129811423401608289096661914541517386283534914871086501913252042947157428449931686618215379406208293954323246841916890886290630462600256248556373465750721988085780744707683269955667422380332803943101600807153173065214181186717900174517796640347088490156676747200781119357739739138390448960176361846509412787214766883060875302151981083053333655156934691317028796472778367899690055837781209675614529064719219866700378016420413605156014357059728478093697784722369993417661282135195942115203640922655712429163168315065861913976228420945205541007912873700322405420161956086681477591819696989754743416630298059906839231104403655871926425769058534991127931902913138279569875783161523094911007300537446392284854226561128572558430524389986818021602404551628257752174883608659867001358386845264698050436163744748811852665226724923279195925065917005190481013820016242388600858867170007931704825799678763734026470232354841384189987744538482215237198505482984685382926802287837448162839363199506026334949943755891425330697511172074395130603539829842512985456388175403673308641013004968416070423144952993416745307788497255599559322485990231045469841102725704518089270376111524880879729703396132307553384930970222686814195297089868446575840208924650507751589874767784570617700624388600520284710082756201019757567221877293854566300554679163643474889068690865946660944525548907404517989328037941961970127891301896660045221626001145702041324801707925513822366439781533688856665147007413687510187494269456049197632687373303162458893282103018441054291884541440201743185089945490224601405708610689734544287459868888588484366799200140436869730859498613096754625746316503801226143269060881896240797257917858047405677187219558910629735158057964047354748633575517980637059020755254589057661788928792249329048227298059131738395798053496484434987204671891152039298471591842128939953941762852564793166753114026850833004148960200044254482092308439097364536195675470025370356304084809854283156674524032134305423764852845802326441611824613956252955401320768342470354301503519838365855231893157563515208985043797263974647248463364631514892464223588753616099808242595061409336106491130252694359950505693575862584115447023573337711920888274955146244631630392750806745021452977781015414558012282392380589560854043300378637108222665540476608515670971587182727821370947044345116954227214898583520248940522167723443324832095219461469709046402948734694064035406543097969182883501741120317019866020543544175810687473662642621330090071940146195077385160300934483666664797988935208282676083657360683372756350130570926714354165296872930078845529714697771063442226315932371112253510329813911750430001731518227396424100287669132227115023566211090326439871060993816666379355508365646601275536196731998233792416029086913099083489747921306132067223153512898210855135232447831013463381011230656980677977810994432223407132257134908122834121319474658827279296728987600407494731739078334692791972494887705752761705778504455211105147932652807520492589877950601366232314520870003335673008782347702378772504839105568833010276798696158130222224916137437894794726415664936781487182027923328135448894418540484322355581331907865153357696228193408247078279212055870537757839976392639508572286449148972444136081156668302538142025201902703131544434608457260158063668528685678535034821798786752826272588752845406658950376649228183191107704327979665019877130183264956092573714637127159981319467697391679726135310346229022466238985098813261662034231097694801319011480090822411007902414136865130806800759845195054313491334315542363401935348901352450300566676062691716118923175024330267570197237560076122566381036380709395006803476652945890892756205913318653078757362358740017342410665885438670228650382310238905637846371365063400525297552086829454788583295446214243335195480681043763876329764632813492108442834592933901515825273092352880076869252395882191275753319260751289537334809557970657710658646114068313274324524561946268726116414479262299843243481513731319669095289602228383504302540496138555662516198808349393490527914863535383308520907815211326155049999560256125686084128460429406980485827690443827013927439229874113680208006051031554992056791463801866597784064104105137842864678814754656045283606205363893453027289329749560819619054650432199761524481590257584868364548823114093820238478129660276451325213922892525344825100194504880196264225463013223729280353936321767870105992837304307720973037648973790151648157175524037128483155814844567898088227537137777747332305379117160784896094582508731717323763637528331518201084604226830588436800736270544982778042662490753461173240372117590766268503142083664921697121914238061053726362868537291320825111741697994395730960078372264705602270539332918192980626348010754809356271738549396453811364242590785305342171010764048197216011074347550532517997495344765334828955578087724803255578753455116972108225943416547158918124976677797849682315976956442449725372229589509134531975612120153246842155097469054910144550738062854141894751558781937020402000593265861960882256616645441590883357381792874120713209363386948900048757108102344990916420634972121771401608245156895214851931147058628852338156558452948762379973150989125012948675871430939961835586518570643488841610784317686661618196977985605893285157371532057102763862596473540938014588750517068701220141720012165856943453469432273032395160923403092842974501467989712743295518951835585744743512615787500211357832604166339134212324827498463150682166278871806529896575315924636784474759644047621321555487457806335547665791973041176193876569270628357295275454970555972967543414637565441261715017796468566610586498103054648067412118117855840746948197342859980231391432538309396875371392060505073271903106085734533752806437470711167254826135147219928388503421377133368395614517933046428995390511991381231990345911293496798156050366338837690817122879798838239362951864003659846462767791242196512417267470831067534245557278549572189405080100606445193123656609504727757376143690671250496864464006414106926873904620965431467955945353179023484743151266459278421497666383356326111480699315327200292397318654327009083548011670003153160693601536255476902156170508171129950299442859313761902606655494242473129177145054122224871723548806961274567231000604180867412990993474078923972776278167212531954576605494492423725291488838285860857816784011235442164199284222838032419688301287403700011349770236202387199178936310122902499831240080155117217496239217874666898966067663460855302097578900273672499685203433505587491526568070983634438896979579088391402069749933314309727102332622643257195737914875607105296575373822375149472649131544585233877975622339852260527497865157905633874781332475750356330049249666217410180090813782103207711034143473832092629649985444376123187288630942329775733969265067343064954398796638532667433463858784522429981037637116606880499226453656249173765141928271448789950017772837583559112724152121456855132692274287765061220761261110823513973896678251422925038760146158576114239362699159199326241978357168457352915089983481198565793414500529561254186897086682133523214187685282005270095228383731885854192638187308472654652296747036488121389132252584136358864403180968135323131088898998789223447328290176200615351085809431827755626743514800535598646403829723464513834939682396391299885373284666243918245860075319928132548255892367147908743790036955991058336530862105206791938605327935208836589930168459172173063582462523262359025864517555073465229145119332938241794847094240386636816196132064589930560907011629221302703225647308519509239463023874073408335310911891010603806815239370770733271608979674854029248646011194374269004292518291987953516951779838612405134239561181967705686392885208847839716272857095893431516651827868347772415772822651319501667830245772243422163352716465737249358384481929955082045304616815996608785404863686391192177747411265408956468597197528786295307846850001938755799962757165822481821144692261830356497877467689803582875198685605074936866018318375932442509221992818614632177867152863564811309084944015600539301888607407684275547196854314763655961316231367148926544446128905298365502806599908390095813180675785744750702000726928946825535024557287374853103861656099671991299379546045954007329797069205138120920258206499906327556153816345942347462786303876004860225145481184569937758694146054146685165064814919386269326917465321399396024316114191857416427371541067477347465600839810224117027888662405084150759059949977813182528176934722373058107745888425035958578503644040979058838635435527456415288610038205773855623164865274727688489797176281773478869519478873009701132933623791208099950231026395021045681920429470150737681744670926698465684237226080272154056458526928901569983521868494578984972715282104199934588446407480878312794030824538537076452155939354429701028964350952839516716144516913049387821496094312025560187847567206736584364066165405525040747486029400382883468730392914726391050836679390158010129763988009857721671571842694887883080949254140713929010206485017772846698085985912759422723905557791854599520715544862806084496980870242737208506556966371017879660772981412656027395274241702721316132902459260863230338376190561982592958279341067534441307688317375763134794372245711026144255518259418102473229137399742593729525591120770264829286448496248745852618506305075615581158219327134780002536247756262395215374870071482988991177677325586307595901334657425978380023588368884107596607850923444564498679968925060049838103808586533287430653899562606366377282677176529292905058830263391634597619636452195081627232249601184853876062739006280726888912193074262561716444628663139341281151393199425738260430099573780033023790092987711162957666141471490063694984014787267589813346074722198672285718037334958241122762558097009448747102487513848760967253526605618658935591173781924978075959662139818232112169423129835825556654164214404743184690131237137324143863099571222940342201849342603084707640066752140952485399062684487779084065217881612365694510795071186875092048574774798973197459709761157044162577094612035226748496492613610625053961984946308822463509929967508595018656237507944041069442958708460362875732239108946527669216727752332087766488922589283521537217523031547917986817202852188959345591776542542101492441931893799944593766305156736289251859923156083710521151395756313974047317047671452504869147854680034836622987181489155515623577925848373203628725263312275635576447142379187258662945003955849391415423591774416018304866419682592999525043780197866089738100649857953534872866245468606655156504777943882708948452104914584999583609657230022575622956534777737355043038410930841154814699808071975689652312495634490600686380951630922860732049441161252066608097549296025659522361796359970307458917670623608365730982680337280543735270635383156425512918794939755909727757756854413951874291797476098211579760792386196640879225745424988720789143911188403268025621609681024341735980594012422549657933772366762155048092457822182318183851999517331986424855760080839036176452270372706689439034509481906242002780280203966042508986692869116961546151776349866604330785393982111677349204827686722111156874419463685675683307934904731196447022620866197606347090209245842809793479432376214852543895901012467466432935476496560544215490119948718393817230881876720255346000816840572346379693500407831104774709192341330975939239844502573749655263077878514939929410989367349841142218846573467731755669186932757915355741498053781973593734034384508008647445379143092674210020181893605770034209357257800171785906834094792146736494052862842481009998563655143875474258466128839006753076450933044991278672837905810243492454564212825606350271516353279228667777549241045007794633829148103456078613865867863647548640796301800752628685511594614616033472734418372881343818151350541455113541582191637518910772215584609596206741286174435768710588484000430821051150447298125488839625100843060567371014315904260516302176784994487369861309472080317223240441541489904990483581269717126211044917967072226455051521341104993509569412845200530563416837703281550030953776459338108652230843472129011800386778917000950132768725112648499054017505903097768748151715278385976109223931936702426575240480001344396816672565379465597994727924293896179140870513311891612343626053926008168941785815102655771897896312260830257020981419479164975627952914395427098583176412125897099304923982262283146332007484707116214559959104385849640508575708868359351247337058201414753715771402710175003971534813658623089663917147428368241964838057867835418266523671912450056310628272996470273937587910400276868594019850784652918112989879489714359585822067297649890899564876193641443535445674007276129605723468689619673674577373383349276249651244181872100099027487499193712800071678984988262940759567644785398195302527107645227791315833451114528537538898661369751852587309588277867210369067494295495141348597919865878443186335888694360977658004611176866413826205499950115544206439006394094619561971934743952745655861428683642429998427459286693422858555797036440131518609195486685592731196181723844182065585386977337129561455721048142097318534191189914363451783094283035019896847295489159077913087525664912042649783923413458382707543651338760527110651289658532976417019841880472121654913446523985778441907290431324596589723015541810360720383906319644417082251046414786762536092744121823879676605456123121378505483203783834472845503916667537900690684404861408776463376877498051836188699866746588531549966594859936108120178298801232872241461410013403241849267252942904264159663047433094762177798794778164770122703305375701105863091212748497887017054774963205339756475211664817062258123076846619755583281051104521355679589607620390617738737579482325135465303589468284153384017756617296775641067843106168476053943515863048399177754708773816066949489176166836185350209139958283994501849848911112244373568530007927340272958543349614756383489415482177204273025346893811462726725621105927837545162939147159580760790875281692231625339826545892013362414097984382430619415149002242544703767054118492716648266910126945838084940549711928585660029704579224591453973265301900489316245770652000367929733397312931655245295728156116338727920435791301884580558755463488050710046523649139930767580489138155793782940725827726507914386719471987498517506346024971484611185750958375090882678285487669183896649472224722940046803442143806989956463412649001281347003017317352252674978077158207791824032502361081550912496787389361564867234765761087519729429815391703496630589074226734406279998066608996552925203467325696554980562678127793278674489729782490595316952809398945297708105216660149115451803731875549887782265624652238570877883334021654047594673549218664649118901926300883907537991063024011801745974985624782013319099875580288517765234545488909643980581291697252919614532774019098492851734201677354303238080562761234438886337356706200486003130803123165563677590857593094295828227532945778937663432378550475652051948667887781007774080902650243150666555334144881323336300780080436822637332874988723103522164299067969935364809167891958617238538136658666807575819787617481152319788151927356900056484794381846504981532606352136178552322841706895575066083253020044838097184966746612422535871306167139323957540371902545386848557921855929357054617465484831655796740137805320830665844255394386012565176180636396169315086517603042438559670807409143527679786015613660058343608103436059249713476909273683237750827336808278744953518661917466024311724561523966491260731259789845842479617964114573698155606704187001350101185754458941552085460104834335150620129268018395310559708543202993895655549549552863558372422694803594697391054906256072853605130597007782278121865435644293225189753349192403166438753122259100835166947169353572689910124016376538883665335822087722861570099748603097392140907689592245872101225358440144739900643137588725772199084552115930443628260762155820213295659239732453453325717046326575472594493183542519574065902735827662737245069009624353691368301539410453743837168675736814243242517918647183501860008009664785904058474325624594971725760364938246031022004631104252176690455524049774034207275020045628737639366620124899341780135640714066187055802667464075472495636827121190066887368552923077904139415668087535187968709380753811666894943184785202667256129939712325639062818132970471429613898764800608569161912669921106184450709269132938800711863493642695418442012850516797467892045902206470784478403942643629632749170916318393117992250769046032789908280833412981341347522480537727982104988867871382061568705690442287955049283991442363940836873684484864553697643239303470280502618856936067336695011690003737510327943204237423978819093962058055399695273779473436472356996301337093770887678492305187358134491803222695650773550997202963555110376114258347974056768210728645340967500048401116232841561288507612747619380212088604222945623971048016431384104280540851093364777169378615327509157282829449480793304906632921107703771417833032255838855021211022517614498288320234079330780937522839620822984023736159729264715434544606479453282128677771960369773669658754570789292880386862897863742886883228626219978565661313291062720170870511983420459774599512048682150212077929770693967516087114868510898442766911668847656610563321020913195366320405733172594622442124911552261102545174183199768794258305904180765537785682191513778689731302732456457991733565833611152883669254409266885801165320290166726338443339388629550563021072833544174511351291475341305838976667235592622685361353693719255176244650862583416095196398780774014817329148059610327393619830034549429066902241090642289743195531840037271594215468964288430030590534469551789820866146826881001430587807733662577228089789409953488525622645542906803933344651571030501037325340569780330014519984691376945349495447513891238773235347033343861899335602967249835445012225585053647391817565673440265590839489193252602317056319713245418105863864880703654285724339812959205874096756688342570960519511906770974960620769021802462522122433723426756206140353716106106818837112679382920282311899038715031922574815473341231158516383841837164937022176151061785065344532992782581508312443091712697572546906301159078962881294279582135593569471525629750467388842414240084613339133641657405570229220828230742785469402612409006710368411699355918442612195268422030382090910125827046452403603507997485615183622553022276207312111024858060632318004071865798927172320473998512117229975490892348937603677708817366572962418805628877990167638704649066701892700981373208541807916016081571069114719248144736075737831393399408167505824737388714037678346547807512490858153081773577926573022807498162271718688760120979171981847989519963598355804653877700846147811309676830743903855369335421491269599779504141764875498051651590550499038173514657580525390862739655808368014470704463350563591751383358349742650493549733247173855975838514607263466275284389407985912850715601502310597527286348061574842811275481576013043963979443190650453735572930159182431256810771760370491190833376976935641258492607942795948247192497340219876829397146382562973058595876227303703607911986035901830847098599533412500064931749089224582064555489304626186133112383910079082779108897158578597420098674687557059620801376296274160929200287993335138114740416016156690974956867542064766333080422092669121238811515949603152697590528827422771591200560290635985436616723696823262504902154003717451775696175713819349756486185204761482539740604341437898324946791366231279396364622556741154150538091604069225470959842229998299522784143036360127125829348845686327824502315843987497975602637090909405101944643310793804777286706939463328103084154441066558876851627983248297266576232064730676496906298648917141153300464706412244129480887744669084207862941916343449049631151543241242238123747051880389382417996116280173328503154864246219441276454958521616724294550550959508028761150086223104978537860348549926440908204904601164597593153590801251417981913650077115710350995685591617168366479735688093634376610283740815246752521722494862749917778653558208662279355444462387841160277632468743344071498432228928381560294917816364913114812995176274300436984917232415855023901459582608946216451814426267624237787850650716150899052510215720259157701009639342969394236207334675004945408629884519391707892280419041940220639115932423045210732950457190224453319111152945037685685174468994886933870856359047891617563496426833523405750558770002103330081202544870538912912517372541503132763784094890072758658892252523825637318621956206558616093838877311714278396973848257333430737782654331316623405302642729151635757124731357098795334169627116152740166371111035851910609419435095171864445455093748686613352152329361242588301149424409979520569081590605349924043314950085576941729832819242927030492828528946058304354203824977789100479525827272635172911337834067765579777931595869943486869796178782570092908208961594802881154902929224290956819421362543514443515470376709824982487910695709052749897513172222910164010987902457718776292802849204262658862295887932109302980204776972184014462385722774242580937534758341851153537213734367417433295222820006274464696307433135346939637238932343619395821830546674766224995281906861437228172614923250033860372141735670538729949222937276021451014118890844077434024804807014745541117725669636709629997057958749016694680525733379055658585472618393872517170635352355825075726830842423259222968194253966145260695857636189543893755881062036557295268577936759769271079940405048317152053680828738440459436120081479535204119633993595423964458178123680379718430190429987100075108515821845118581306258122036249956034880710323367811515254084168219277336079262989674601429862562327614919223790965920256325671439612118494868780140607936627935546630202275244633802858992671449594293600879160298533405151897057802227057992491673120070769995374409695935690325240970763920339122252011982999778913566830002892966921671655474330664040626662301298227538427076639054887315985996658537063370045813975623978033636925618959821744926251615108024357994005542573009040546393872408348758431049537019333692667933286297208496713542354513142522755074015319521343294551658233987180599621890798411437744322671456037829723469851977771218855670793882038122688183168537862916304696288473550547516820013396251062242581867410566379838092635168490591896019582868661403121125949220155703286665674348987655988511450703550250338449208066060274844704888402045739371730886012882361432610481134505061405502167516141253311880253691587651016362255140354262522715889806810924781288616492887847040113668419830759842889496483430703875994123249192613756110444897501074662700748240258904776572565001558437746148412607279565457195969198949359658500264724628769143955903985056203377584031615047083748791931337372066177433812153873348590982007444376837233409435940165207772682734114353564524082159790266992733759688814386425021432204050358018708109902313890488630392974181502313612679134617226907323300728814946341799015754586997647250763476309694108940180162389411170309051788097289982151218562034092176692971769001723084848306629236043389754340749482573929417542358718182388623371554933486600336860764938554062473722975599591278228836088035611973585470304368134971269110133091215432059776850317787709478935060147697208063132116862118538297444539871867602932023834580569615292818759415628132626243040265535455029970192432463694494327909787153976223785083036396327888178434568236252733617999149595031309170275196460482184645983404699734964003566246201865418779506261125375727863200919947245017080762828359219532173095038994083343401542443041128315974279494879850668844419507501751831642940283182986574082081485297954980426585095172223106928882190784927422411738884646709909286428269401777408414965377140627847969577749304863491595272281699052163742690993730223745343068837022609252380329635464210569426657189620554188231593862636941018367114207232634402809038069348255612387809852658153360043371404620972720854003973387634724464322744004314733699676289617535095353121331579467776649216234994144370192833840004817735381304485380784835225870730878989075944901836482201588502886843217272034051519554430937144389129425169604772243598047096173058768053067234176881814722054121788853308110943226319878036850396626477038955879197058490315929497947810279735666523081968189431566055726809731317918673147219806763893719774100071701936031704374270242759093878841843869101603287635535593200385732501157188779036644435907276622669358943794416719572497407932484878577930639294560032016117632749075498950010596164640292310597670362552241611202671696941606945078526162136456219176310386905727850562874878641936554968488646779872780978739775622421304841161151949978101539449316748761124713836377332621435994853442294674612044300599554643109039429948451731576007942797387016994486985473528873545159510501166437068050964016277744289214825789977468765760076994089829870514710729588185925494376919946109174047088972028388897345592027831918403917208824482918303926899724319350207255133327918005501767286905595261226886969421810310357557026563395486321293625826537324769601379059317203891123009482930920941969104728547904803749130598026558626176649422933144421421011527187313988576649392235655621884996734674954309220500242623943256873314476074698014883462937147251097489405419774868570838859328668268794070439474217822208901556007107655709919058675572214800520130526371782333529360984687934208703113494542584016566871667116247028683503737946989343458859351499484767416843370180506841936016616705598578970549471842471213642492213845047074008954382296513744682979967671368931997952037483589834511444780276823869526526856311468449712560112271062658537782939225987992854433871695512131427357291188996398912297115423728622866816176337015935822632027926252387872519222828892868355502505456603823290117471614390319370800534724350209793720627101896153657015292559986228341518498627758310299196244013350277775658683765869982658205530468553746647355099594599729829178239649566366726937754618203122468572893664984480340632344926161681489802770419471196071226941742317712950731034443902730013651168123042132229082634378701197889512325661943398185501218499800212134534797186362479545188938440122957741905397065482536098968128063357067169068872689925708710944021962746699356012407438235022508682891656889012161034517122243522604776961683030882992018785262155557583592193042062412295259694263799550760955630772248991290974489119627835957117869993302583651601111018899633242389416815443757411228512227597027918337577251818546641350932394057613541881631265746301856860789162804227268627237234984187472769216554402775518513949049277560181380578058866048589806161729018168911469479762947353626191057876292608479523175756494449325517129117956234021602328499320980519648146871667048768622616206992064947013996325942610850271741527183011414665505496905493387954609780934330512783450195326941744317276383132564946020903516029029533300884780556640714795493751397602398086498008502120771565014296721171610224736438781322415894029251800238303134947446323685976226659961435146288120032605079642006935548186048659390574499002356579775956603047749790917389418108641438437248913496376991028617636733581175059198351039272919271055673885927424750902618701293150308080510481086550198586917920918797600140398359753849083053188038891365683389677501786776276684761183312601369693775026901298412785167207601399256942958587896529485811649200746052254382833041123759661106552702107312795165605085171485596715448237642736975693317982563164615566099757096218916640894046003883922013623713643149999382471830432121386817417751183067659753496296097381728283898645662229806717870130855112819582184003441596588073521651537756587091185347834185062172499681733500136408173292087038991637564040826558216661793062783064238904964906666001761239056504518169394287776272593188577942445896604798523541352275307229032214827579071747747948217881369082231860131033511753153033394705002893023484359313612060687805383067907336706193075998088632624600034670657328714148674872227352439222359280076860788947620828873655359984723375994114575846529444178809516978859249408923996713839166727209334524220707682946355023078892221053744375694542825634567000914330972970481934434501633043634790401255143720654155329559713440817931768293102033989044560478451505057823888690951903087568856449370684153513204704220467673704400164448444849992061855524547692523534229405825662288363900748164837003352926916064201873635225011977717425598667554913271009382547555484910698413360421653874573441784462960928889400594213064887935603080969377202113243510699028385214268550477899724779399614820037877396386719842356544255069014242222560205899963328935794262702210051949379090441453403250671392369563510900693827046028475907153240203929305520149176013061521531246251672895905712091093172417607510832197517311874852209621100603870161196748877359156119109517543403038908146252990800015286213455089897333116910391732668516384339518170139522392079915012077610840344918975977242082023479045632467093134886439464380121625891114364546830893546317968454927418152982751925675414192860714954249164863095022552938492438533797121042283145290084419753270415702105011608556678881419042111616934239369958581559057347280176579971364799803365341123803831268092898963152857385341398013518487202899062724576010965815051529945648461535154978571785578868139313468950964267244109561724764695396611999801874008534435264621665301984965310425514663383492572459603729054299568078920272921234841607231317728682129799625880390393158372818041922009788812702549421196586458717884350695316303268729678223804311099057395282602043241137326462972552744597722360982136030611481380975615323463002587047788890712653322921923979334473709529780020487650653301360701291000255176718964206838732587082820682043854952854314509237811493550392317782382854654240084157173120112572193285560058132195393200139475004733246099456919378023182624061435539551776975939619860379824347484911393154550297886236437783048113348833209057107403545256167906534263743920391168408537750213544021976588578168548646592568005854740090382372327255071463832257948318281154235921580868722493529411381974716956261132652660446012596616315565001650809856490134208771302210513221580437798748440601676542150032247401789506608708471240935505327575561291513248166990253137565187102771643652155490837328654258642035748683985761202032850273088709317747610831676499188114242093455284384916876876049370469529568177617629269159995000070104878898303143970591304873398463068504398538397170650185469110679386877388344824966369217637403516809053005062679399685232614665218222809456366914393613212178575205025282286141017353521757028274192002939207471870750699892644405047833996745122943382271585809181329568884779824716517756907614326328405487985454888836027619250744272633095297610570001198594019979988931354849344391844341116219546100722744043073784902376196044663573361953161349232124605073503391223790107370212109772621982224249570147024274659385547733290833510181742871615143961803343545472247639357518720172890848077960026212104176420695106205304839595166381282270809926856237832295162702267873127349649931615633479551941291464106195153254940738038833001367495267343159471630975542322610193275535965515738079275039777926848313356456760767927324815204095415767024288918761278472890444455463390892157303900164280369476054540499314401111477983596304657007976035780678075869548380369513716320228170086533242505638545304530490355425117471459852061061835880541041369034971267833938814785947286614559688717884964049089020050225675883464067144419253126553668831948653092047176472073891245654172106302778275697592489755523276497184354437602193730036100768807412630285896087279570711996574810063191285493666162341381216727912409055342744211090456053569935755944163792079877947764501255364117762473380586557770977951071662543287536950426621082717889385426126212210854770959401698241466107686633911876524838245915499423756968915122162484952080153280593437900934974465232135439595918591977664163327604674259031429254980978581259517409993367829631285842311482240678483979597874954898113349065526974584816137478029458006751868283960309672659487966876224705833234268237310196211576116312536295046266101160302761407458572083244954314145220220971057240182812374234636652701131088671557464544596514154512915488401289147020179245694988362874060368940354536639880323709134036905762878334455991509071184182675804060257829148742515039183217589320854326489341980908868640406700195590321206960657304270365748354414093376549964542465821309058330965660870290958634137479227207044733204221988654536910892023658723156086120948377763569248099730269797134901977120786807577753287090230641480346313847552464299417728059957306599635337443015245548705721721042726109179167815265979653570830038168230107206975859929553734420181241715881912404522737539505969210981256753858227833425524692641485404923388955431133530265156755082826047077668557464317282441698734614023053156845248477544847112162690258892887424522692778425175267458484677812353035399864932637162883001765031985288514235685588349913391846459446705202403164463785117429844666840438225643120376480433394967645861072785666359119012052140260117523630213190864382777325011970668791393440448006616156795141549309603166867217493597274888624923491003937889095163195864847277588265001741567882938287003866101953359422258558836507003773928540971208481773701991181064970534846049725144502204267406316811892340653942676137317140523556674792766300407886632168296846519484082993021919963506070167247119217139708926748147357744802406653358674251311042868356864201377322405833624050179272201142374523008992075545942866377689490988653282943904305855091572274631110243561685201940480871100688132470079082283978908078598167894877837143871023919942253864329520220942480661774965615391319761308888381052174483934615313030148985323551960443106603655037207257114181919629275602321134520537020694735830390143620730399397848762855965936019290184979194449420731638162408043825284485052208972682014124767843051370231318316843959683480172006112542539831480384923774470721636533234329901068077258996736938478029671110916728957209337871610046859194042640810508996615229752604023381748046318014337412405456810287741416765325713222302420434386396715736058040745330622559160753993105285919721392683253083416313042436559979954948692786728456958731017055618343826865860599099135928346487031523098516197510248696726156840243850066535218849259104656748181388701289823747352712499389330666322181171712698941261651909304822657089584883059784198721732830135991730647633859340470152076643425497010517236125999403904801582731080370344809417218039799029652992603685312261253087422267774802413299059961801417386956590891969863539731919428769063983994744797428134802074301811199426579974500034200862541783477124819651541801090083660925468479334675567486422521439191773876943216339773531728069577740363680145164560384269671446275796115098590608648803870745473707923081657776304118076909988914281127360355175901921056463107234224934550063666848158459485603608214713713152026408566645281326397230679149502243164458977064882043569625080384119116802620725692094100922190261827356734420934368694895447748699536788991607184965889861053643502436884386811765008631881704015734482212974650661979318462136957558641064460048968712335124398929703174984988388078455610893845409705024134070961823179795774650042342577181954787272291366143965322928379317065474587980698631123374322963865981769609478781023443429388058994950825680906819071685961215193915820559803287259423039710731272878231199396979558396615470612108789261340150876736296426031560274319736307031999593774661175822768711851867330548652263365935971719529651239044992685050054737762991746901739218753405270118619813549401740880198073747382409849649119693171683028204769879798508255968590172600958462175976560461431946036102786659399343459991181946766960869572118728140875358683231339085612971131886259143484931451215479162726451430525374919832402934065546850911921799638442540706640762047753583984735597625448755064491082237310344520892851742475287039929306821503112642100228910398468592024314135808268744917511980184050813569453961270128009517992201753753361391903560687274593255626744931596654457543018414488750119092841489351688543491725110319253755139116706592581686495529546644389379675533341820907858437538066205840910647560931990463104470291928567285559748528055197325170905044055319074403613380188389830778617101061955237812261123453769441836661728902326982161654536021803195610593892054282672539790837903224160924878407738196346351288136374086118149631944278646642729605398001079985111533351233900498364460556544679790113523838390633737861335617601457255719869887788617848403903629843172957231951258699981049817754859648896415412483405490141825859538272821425509010898474927437775498357450524838737683195598228856973098295391060943261815335534838806985924704961907478169499998772084953568051277128611972461205016950574760462655610196403950070876006972683259005066987870224054858732703774644482279599526982961159953680352700403309788183962568030281580555225986125757494561407951709258907035704590957679702774568206785536953450531636684441767317591195418705222807599474897936500283719054034021961328993947873403772433929956246270753123457148249358936306605775113858103065780000371142272309073109062914946737838583052035504275644873411743903627223261336887098477247077888244781286477873597866367296443813710020847952200532944712006218999886021794486849016562686287994152318867381871445060640804300139723722957280223942895518901905936208174820648444589006496334640734914107279409060052213081477605826009878666720418768006552094604204414718548520035022729549077130923908784726300565374966260291178272358675019246672439461686943243007522812640088138917349171880934625375928004770268906616649724177187923747111122146474255480574549926018477686959825591006954096206103685914943100654070264767503190230922607745137768623744447948116500798799986213605318418429509903145985387360805410080108971997602579434442220542884897215513202916778889657571792843555985798678549213440398940806231692988178024620092791754622838804931322206747408276922472777500850112210708480834151270023333539116797353710230310083316642447966357521430025822133764613192813814792655464532504053264825133905366759310579008628003500646967504722845994792115023882120539993140908060328890833104749695873834376755217692289484974639553388949425845726541594219984374239638876413631664537914514708989755179260608686684018648156042199257723910903694108052769348498869468023684310203317114532744301977610737393072184340085253812676216972708442995106105141917628256295650419666423179046666542216566621140111435962605246932753071454918806426823608504965545598649423542724986051494678128975057888954284157209657422387125935892850427864567839303602851514880928387798976902286422556518631449741553704224975609491479692610471381078504192600676608361549616792252212422406086691343659012550330081082847933532335667290190825254419424029187985139786247568652167236574806296704655245229003095534266133458930740639271663136870274709989277633465572928127649991051211523315245126598889709891023710211988541038333069659709736924863865440762068174321619477406520408630722338002414916686042037601166083233945675613844056369707429356618333239635692105739918281143335122944890261595809084637005394721445870776841473651697004556340326170659492138473226111832473702368403991828931340909411909670413444396492432889471734828618548391083082698835971457832669594391995630768316873386172866717247014569197085165598215070211186270779836917522316123129220489464097226971741050262945731422873317417853950424901773115444915984435718674380709925746437272471520411118210557062180041451529208430204909660441576311337655332777814491103172305457650137819905462530905609293699657876700158811831130148971513655606668172023668603597114458819942945577470654315109530276312173017243858638903409968133261933395516254348411327261765745218906078187991700433115780154590081827382197056431452596538569394473860161753833128606435284746788166682150712626688629055802140528286912880929804592624220025769208765206116618306661347803450720247182827297888472244624376144060544105655595262088167515897588520094020708035547897574423001446818718896758144597022034334691788063272123303161039853812947229685091267516507547661538847848149469479209048185519148174170785076115080450380451050746782388392210711362903137417478040500091378210032357554850433457514299315499507611367313619095584233957779441146626352675795817835060320690822162273247777555036621911196831632664327830071880548398977908310454808995926897142964618540319168865503173173601191438184012914321230265259255682294732734852547631411321451887013449006586463403008978666846993215529987375740331320380112280351401558033475798953871696317643176515701549040021467829561840561117193281630482673133699365518531057535251083832599215311009512794687138190685701111625528597364414385237782529621599928340972816906348784730810773043026546879804597742216486864662084274147056070929628845492949983091594101391298287798568869870223285666327917868065193998053525407035746587478628693805744780177956616950828023974437731572544162515753983164438420885729426977079798161636119739814636690190797017675002129868851068025616149129324191243321961779256649553731102027088104564301644417171475488268789127347672804523949200948788929548717692761175995009925352389680169657103660607724007236648478298088072882355831771080695622460380451005102198147568973345293603661071269131517969860252649311000113383609923207439892770557471794397978172263271363283466142690472747565182148303993248551580670149535011839881843218371092540860931931415864822299448275010271057916721072858356747761834927541793147458588106693729806868056962940263459697210283708243108052424586650098941143676144590982623355608340740994237243170908362730606280695386869036422695490093048300485945321038612296702249477187826525568706547860432152998173826657374928700931904276075751588028744224196859479553394774314034955126327886310388037391580849969842153989672447178018245419861974354657298697593131903151235631129758212432780345627925797247900640400367967344155115415225764403216942962869972390511885784090043931723792985705570271793931050621981734668476970994240207301946927203859341112465498638627923939298649655276307119449711872709768272766722438419035192233444015887613848779570732885063786505200072339356350627746258409283687286680961870875150890358122041794907941002862697000137949072615577348900507338095267604186814441847118450003686605174566309230230052437742356795071370070870610173655266765066426278425105171167149192076141736675914996783166322061918230296323197059642627657825662768615852924458341179887053489921476324504305648271002895619674714215944919133090990957536716323104814466885104343534405579073172971139280526647044026182839386867562929783350968816808577660047972236098886656157719210205418596242171129927774931804492935108464682337024093471170932668091369292654328254737199653151008130668173767927834980332935330400676303833369486900450169627215760539765661057325149302646831977371781384399631661037797302680263349824744005746841544812771301922461416577643554649436640350143441617657856851518026573796389358270568200424772991941639152214143095822720386070853794224843906217473950437807024234169293975686197881326976290133063765806201940546681781770621823190298610995830611368470770803510285920447510870118424791043917848803085637297275894138184089902361703490034104628218520937476661465714498215355060946963347557012765521483890039076944177225500999742246638021627048499230791946895697650914465620903892990137684706919405086575532956480869280475627802978225457277629743142907959219198157185372975654602487755912004634223261429299328306619894579637526431488576492241254686804383378845860766170102286050379787179579526278201521857195631005478921660902639851173290346985195357923366148578326636609780890636158772048566162276359105392118353092730290883297190703727465933747331328213125633252507431793811872062802940619726270973893277560629837709757671449101454408212747131211050358596881274973100128740935152553968504352495556615655285810405405680374760989139239921096080856792773460855301011178045303795293998270682111572018393124178773907113339545692668823009214549043989710373381115625542424528314693507223260116063142108916202932376688513109161743571495147982808202711819307981759290202219637343445875510570328449689315089419754245430442942339811412614165587266564006476524420575006247428522267761024521778793624308485736736352074491840887485144112581777108270230266062391737556739749453389683393450429623896991514489159238469593606525887583193602108210469912904127412748910899164795491775332106413395028315037481187172769590547368323903963810927239735214887433893925685454510122897203215865276765489849633483027150427731588446634806202988820935244674531041061193497066037910817918026748950003449575934998565116908240032283184233554608073135518100958570384043801588010002206732696992276640342524449379259017540830639194653227319233984422338155275737404760523647475965063982400123344584400430111073311614732812962098043625821826615513134823850969405953568998061548707453145025997831735533523920359361823494613956215946449296040691478760303931842863724700317501828804843433011729939343799797648047487131127118193080294395830165315954931909977943282312913446638082019711101969585338210518956401798515089303596754366707706899901043572094667488749061956686837151963402053418582266927559794822726281688879026099713174303281268624679578325971653698949455868126795285514708509379667521492744135444362293214035214459377341259473429015837239563566780144268344513594206934497427383491192272734443122386351547399844169139900671519406608849137795787799579473245923323134230953783976100692815363779908126459482387986260267269596153591484452660398684321350097699773967045356996103105160732385434174155879355357417714705226893588205805842447347402059031168264036403990602990579216690242060478271917160150807414259124844072661754628209173631871410538158859961258488663718525745470381647390703023853445914760543022799943870101068148641990466626323747976356660269325654958871937832857917586848357350190308041934546558918504041533625873785545211024615672641016620219985993322046611182207955316078171373275276928836868268285291406900633421411250301446692604920290804363717552071675036681640503325198639544951627443488663771801388547413455106161017584410831715414199690851860231318042590756101434671714696580312131920826444317785919782591245082399468314741778564720900236592453490054270327172394838231426282053948024217972915986674587944414286270945253999728083780118304988161283971464493116680212458650535606111649690454352060456830426454548199236631193774754065078205109719132159936753067511668399138199466246566094663785031990598887959021505754498235194240334178046444298920366411432508848497775735368625989331916002011015438975137783507637703930989005605252620754190631706211486259833394266706035621942193046957029099360005323686193993351882555610541044500766779443391819635642634577498886241059635979278890636490935866233715468014991985361072521429815220090861619675007745783623701276503822534343943209153618761892289017009196080059951724002998435929918806041621545668927967318315308033021046699396716304894412881785054242725829432055278569033637603460086441093469762642083675193168414841801500998653303506778941599512931074711125721188538830241202261967142251229089518948210717137868549626849734152946411263275351747635595246858394142121261736475418155101797949570140144665921134898334941501217009369723397407888739409532345908678060820549149291194635676608292768956414508372927275860420209445870452178735654138223340846526414137840184816022457054072763878621788035441274640427259583402897607291744583969834333047302069655513644463715165183633326738631152378826368452451399033665706301046566918975344645772822808512450118787782800834281693753998965544973312959826243860156815486737364075469729873856186606625153116893254076795099193599760300266076537679755118085137917392544698339634926094613567995740609660974507489653387420719104605740789871298235399425875236812079556718634177969443658199776455185094856968063027104876230518396689167559360996291883964006307013049875496955566492258661262761513121153183041349208478451201073243762043641899820429229219347956987853920486900129642798713905811467135724002928537976921704049434281500564419734101771856783568913164131538230444918081956513384003356471767551743144328179978163242508249623040618192263190600530516802140664169509878230488847592131094284073551354898059473972588964083556020173035325888081969832550301954952658148954079500493216448309750544678339751268142802102678760729951996033185849761376024741583310988048426359612037315590719152257514878636163210161727728717583758579681862692470068033015590914398740228907134050100107136633253473343529007575020076214050990750741338995799459640679787137240869569801692293509594889083978389569588111518557825790878768111373848857707187033194122864431499886231980638228246819742503543951183319252605390675926149927704814151037441033984318928397727246419875260616787603437592935892571873160906551013350145281754651548409749765295718898707503618430793680000778139283315868622805026799974700817015032788103568721483406806239035092904243597572173411982742303594332206075888913753937317775247468954880030992232490334080496489546877158035673108086151483825932766114996633801688301709216375758475067657979212570444302302564425345526205720685267592705532504346692832521327011450613688842448624287432528882528609565277566411722856250594027503261597069247264861418154978436062412914770566168142136071304517704300755580735674527189933350967428352730922227489388673849498687301002038196415523425916626513569608232306091032301631290863311690848408176876952904592528026755911078671229351954759502280702720859691361218118941093105415205068164882489450668283152742996748246506838560658039209209897668882636675284727990017023468131429508061137630362689150571423828490800594821759800835742231587187437028941085737318345625255340411912220151765598586332693960286765181955395014584122783613716749858496334655058694784731593981291078329621695296113664808703830210540049251388058895423399879955661305253108368550309853394891394499476171376003469950315805392239849804098103096506003730002315771175927041681017934777453050911123087319394144467465183964118916380252430853819420673699864841783257053306606568140643793313417813213478431738205199860407624919437954217112020172318296980629782068864697370294251150435695822780815561002751631246307973639038274564896668901923574774444102435338247661068529397504994018817265286560839470409412008663088333038270475007727966371690355748261226278436525008533558529361423033830670911948577338827746904490944313311671464941778915645226016687918994481080411341734087504669934478097120366315366641643030274132743843451118098601978595364707372129918897483731917233360637662053616430873113001804906227373199294340843425726556219897875929335769367442365414094800988605716290254082040638911948211948869770162860365489207818756460682743067882348853627706907280713889976694516287876207209144737593527532078128534669426425182839916995421713193194088037209113029390850531462873681703279759583509771144178728998046125485298345637154704267357645569436607544203727625341706430693184024131671965226747013721719530983979782589488794592146813860820332025647673979503483576694316028934427873285644588843424988080670329080506679774003764590809290699071842089815646731828931933350663301181305257553963356282412827329373113168468167786046559963931803821545985689950946688936255212533735536457984213702024992318938182296189237459571801597689682046832487846227100903925317638904071969978625102045666974079247161409846346726833254837481607916588525790970728210367400136036263894692516797298195009039414274338265142893007502986760962342453345065306377449809482529917441580150590408111075215415489451140977457265014419285031404558716171912339397605501054931380176593097787323153551056622367884332015863102150807745031959312495048446534836874451341826346484057664963546575272988911808756489150148412363456674256697004473527806584345446690609222099082591326055664478536172458220755476508914873782947842390480974431367871377153221834521997296919817655183344261097158572166895930098234623453343253755958255994344033618663885478000243254520086015781715164534963717809881518248859931152305010161927327895722297443332151924039198748232915120482777955658864214809141082372010156767470124844135079287023205080175290695390505812497229220698805385545077743288806431954617998991757758931065938475140626650718083167255734813068434042556111288587803306021572228885675911781970583393950180586562372541129432583824699652019731717970902737392850134021729772973738043029802166546147508184694850871014382520857920285647823401402318462095059269833115734685443994342974016009808788654048514214198998640637601752771149741430868094133098295608629780156656570830949510667337483042081233945472580704186876100594207972814550443025639325185749245801858612877038496947258656611606101657586299422137228839051313166262145879676305999552672515642578932183068601488637878177038001137557059316944870989695168185054887411731230687682673090967802877657476667951439054220221048660145455821589389819497103176034763570993721102740486161669450091188070499513180350590138732087362843644416362109762950673029324655872574468510196008072274953236854366890871526633502400049376693374176714477918796959761800531951690442492901783866652248620627667712421178740696292677608543863664548665740751996277466653256813067048194881614799065108836062488840639825559999256237678451232211953390280432695079214996079297654988946122342981843632410976301345030721316508015025407348524096191861600739977819173342177746641354806823660492417433816756503281705855699474603526948271139180427899610540839492131707212615929664294282470954101781779690818657941039719391589873492339361324737914832649251576591188779388823053478462136647853419898521884635005541515022556132755756613930933983713298689938450969542161995572411205090209238363178245761766711865800127691312732100466122606650994934314676219879168677636056532236909471700448878072392451115363280893503196525981853758957058211094839446718274476699616264871295190915564284780547016646095034470476237535432895639345644708278280884966448516565108910745864178666094339444997746417022696211088362908037164847814622009049439241648964179019682935379260087613868852245534948040189497072158154612342658152819288978020463314851138186115361036231967623014767525859857645069455086860253361321601813128353565444430235909189545147188745353236017062071761078098285075493414335932568189849320963865357802296382078670017023913183318435470500186498924438386587205829843990184686577794390843278545030771151558052840590071480625638522956101590746405651721064732008434028930375988942608844429403887208032645196347440626662344645279114404825051308480185750907881220774648856942119403543394877367533600055378883740453290353925031079002260718127075369909381848715406622816692878924345114469312162725121857429749391396440588618639856253635832568959270488566834204437043781087197046612703845816845779614206320336563445285144872557336843557845982719701529336734521347249619318732456681312619433202259677087640217947481607894128480239135216132667676462405161899356366841697340770502850015376913859884628238437849343301384125913920539752568882610985448435465549256911946800424595195881913888592820956112630448074533426894172496803445265708395818797364403926078199923124880751231657166824902562140665022809878178319559279973683770674535541917774571638628358364291086638678776243891065745024428795664468722124235302997267982299616337496682669670111361037260116003236510877669391692368272534556389964978766549469984757684719775850768082473064183302457487632441749076996238187594394516068779128247547152162890710026125793068958323647223037588921511808813974486479984992726943746136539454477607732777057475982161028087804568446938177764186924650010316414305987661895302840719754779901305659324116527859242731718673121334949320178944006623270447861957927923486438962053595729271352101054083208356691973238842921188940908979809427566005183145342050188497911733348434433581074544873309422887857967588841698760730388269963575593217289264009786444353958832961620235607684990109950114949772568800747293058861480877418291698099876555223614583675344226078497639709070138956701129881006429474263053884210244039572046810851885591304480593906666797818732041293487681041579039545739415786351619711241889909725358986641849941982626247655315139840696562707458272302476253329559528615193992056742780020534054823613273050952104685019461551434388339494598904501594732028863182400568260473492382292565934227131392027927392801116470731978672027300931447817251056726974832972447855208602939945188518630021843521210269045769741559256485427344947178138048569102076009760171219437869142342824955842172330323927438581491496991062015888936961963940737030908034702159030413746510058016159431763952759768682546905829525616932404636894262833813275837700824119449291016614821235393644252394792872127888723484865736233018324634924798962834288836641859278171202104550449765196197843218583168516881546551362732118009992071456936618080454476544544957494919880239136260403470250281376064606909231864394653076925083585415233694713475656727596986819946567878544672023777793554062929976627751819372780939949797301555122630762468034098568715465015575378778157063374383707360081707733426744613770874386409109755451862761857506753798892071153537154617519823728329609103483478682793718951194966819037611585187960130860602077986193326701314290402194716250674730865320737562205553318294358964734023002311131028396194142451007634503681496292824125886190342424152384700431507513892083894868432869674283497565317109307295214075268332418594137462340560359702646664904638492897283821957481687373843793248881482404423033501636501369156135538484891117949761101406834142290027679454032300259173883269783832017587117417621771762025726652985946489231261242792744481573774979887166798186534338529733165291136258803225770857091676734684483564070444931342380175778570825151061968151862145672787512031992046175420742524692893857908003783638207117730186782509848829097490961000518360129418121727896053602033136887417669813860533720129582043145620213577767532304261943479500444479833610554274775460711190193794979898810631375737648197580768502226932706634803972955595844203172152226306084334570736196976628528075526418976395524016563786999974799533944428100308719787776837045908809260963465028633335939518696477714446062961238762136458735090740853858816101137544915200663692720849034900882358726746590010418592455278915434002252241772277233734248400140683918507751830197984822190184474509717069853097965500977671971158087632946801885537176717597901365861366603711467992229847838455061264132884177042377069060896274324872281103848879157564081458468622433948087108423982070421497612552080329295428453968522241564107092836137369540545581154490101265594277483521388601908825765491833938986433240479800254475524945381338168821236992874321561784527023085761749844849963989188992479430702785905616548578628695932063177927253787898668657093327349138640427625572421743010748110068986122178969422291499519356794762849064924936658143060353670094704701694343687659874866184037622377594029262116655973718996752994143497103799205504807817836567245894879590742797333670819225327349185314550977157235304212715535056348881790811602083791681382226171284188075247968947230176312927183815599348519615971094727489998595112759601673236410530125612037337048185673107104414195040017163871785648290652482699907132865247110664251015654326746861345486346566098649793643458085327666549518781465823032982808284911756482474715514744357311556700149728154530950866200495485223985009207966196772758321890799180854404640068302840103716641708626010872289199510090109251138060995221391076882738447983357540549639113657767736420772610737312339740186083055945442460920419878203662569805633974536317658553758693723417295745057731910587862568459688262623223470008302518738746202484989016041448854658758801152852435472909776848500626264947721506640625634921785345537153123480462370890616846291864572545141926514348233171898212986816743107566321676591536770208493416265836594784885780894620711806889429707497842258995602975782655158049576576239188485134796785342218898235480823745774901287465397086171942078175496472910815812496229126785336535609902904547044994062673983652325918630699759967781526910095351673467265399564809159927524863623234995882058414125665848545432644252805162816658456049641777168155056330322505561703116463467390953641520221418856797151218959833772566554404613365459951460042018969641485143119455974937166190232528666961845495038726575483639689653446730236923172767992153438058910337459398801143152850966773468577806767249991203364600228792876299124939534763021315960681761030006015074923120558993134791644583157485864201299792929888159778109221963262974290731635756134274756978474158249571848989781106725167509537701576819422109764040641094854765161981765209577978654204362533175526864956438831995566738977852752298901691300784402132015990909218891848526976162569471426010927608008449218135847112860490001460882853353181839452245212488846587964767878489986748020381224343358623082216024469562493851493365633692314939407727408663921614322936649237913173071218628140522480593238077978286872444626687278702999474924203163017350088202402227054338332854741798325267388732438450445502350103905631813992877544256383602211017018990145638747606989731780588656720193618419136969347369555557984027585067338706774678084599433857499957920859232845963148647447717348041655723016669794729857974255103797103546559142085364330493945212957284759141008892936818015990863632010085808777758998306412757766405009246958817307557833778495537325478460411680272243671357071751770001381319187112674587507698403274484959381233818835579608683751004215872254684349842653943850628659872233325431597393804248434210449406610248741435653529093687608952182091409731723177597102170370517976557778883819372044732399035747354978555395948351768206231772143441522887296278279558503598326585556239075421888439026125601675017563152609715818335665430875977934428557324136798105682027794305547281526069700217659330798593206793491018798802907067000318897676203815998692478365278835114002947681828933631896682771735309767841324574004701495129374070741490787545193124684565696784307220421257095626282122893050553056755883918376535427060663552726678933839383643836577911841287271637184705078017708835772972944895601003895896706669886781320683129905455317233051679091018504349983765598094223960315508811676673573132085355375457206998690783554212337772460690164017347804743800136999735394291619498110612743294821241950397061155097590394356497991659036583998128770224599772805220500037730131775733975564746046341391488002719081530889042409473666890189870561000077145199100130482432414416310581723517401073378032686177716358945650399237756839753871432934265755757704469948797638203541885409299546875803624771138152573479498549706184348674476634601399764307953046534483545156023354449673781857056178514062622863533230806309788018976619659403847271091761447440657857278355798428993058100848968750396380928948812789054824841670330231861801229589105026363645853022729781416107744303389382835718107130303778505010933133585536219705621015220402151467141729741400208948600898515004216242787232799618230057450598349818102815037905531692752375434154018527227325480334775773463716792803847241154812292487263004573250259841960627515179091925760137706740924838136364548379816612659833947212186420611783334432267913541694309832427688302600595475703226326538961748694221716745860885937346240332051959804036918379509733404976574520542920973372338802113960528067167325319555663116863696372661679262901017215747922924649138199414620160838663933981370009274712752628976201230055323077250869376944971971563590132058761581311761410066370113221090857912845918755249020408785312878932207698956520309433772343591255239414035022922720937375838707792790624608473173317338171146394964079008833607513805647559211015064044631188854167199083315523906867031679868618356475322993158556729889457605558310523909827463973203782524232179012523819969537408399190731272511205248822066639201769142507493972265839950309446122056855106670371589411531434182413222072496187430635464537105802152837098570551760636112514006742471960741450228129238737434685936514882942726019933817993412137455618792284749630499599955578313581590993605519536546853840269990796634097673217650904391008353869401926589045188356442682641551641702288452182168180833539723908926211798029859923006713811887316635853516307017405932537733938113389347914805219470688032731622348024922735601940824501597401604431869028132990430530775186646646851529231809568176656965310851878649228976076692019407667428401553448924510393040487745188026573592156162769600837119146258049099457866003867916174694070056809256347054488578859701323743920929118810741919897354778869952975759809928702829872998715140487956634753207084695906874029142386251857222360839567311590939907228180725157084511502800478805518037943038854183356336160646081899565074393777866461249564535928750908063241861915668148782261956128270210699901632750567744035675350722967381186949302961474379535954467968685497461929819186491740707239850627906100274501069615366114392324660819446375225160456016558729345286591003544437888052927232555730788859117128552471496986753319090565162909403942562858954450805522537168813947956575072882722810206579011760231799326152779628656308323519174907926393328197516573799273898291047294507769755498883699333533179325742643349809713296064642836201338825266877837015875134503185768373157514816497884208245859857144249633566473908585949508319664272030240925863016645764812394399909383877331696965210617190284484603147192782590047675886197621272001695854637431987495395252226515664626557944296155747238307129763283241669592340348500288305989360385831592815629889531875168787299865325797158929611375518143459159598622019661834566091360848753084315975200911888365605957285209980448376875298194746362106685460852115016818865465650562691154215548539016799848808056223126074378460157417755733285694912650331339726217393794754645487874957157428999229213724370092431285433925679975497327959042050843732407650081240006726511933948783833031293310398725947919937775041792255778910695204285607790908807605901978195055782123646379803976951435746303077762891014311237589303888788526440970875663837047103726407888403722709985602742753236420259853832042608764127524871791268170655641467055522599750854197539412536379433395753084269050442405212211215079411538191474185260657071086067689531816799070175656875098368750971244492852930311392355699244814757675785782982317692167693370888467485062351881992089577623414447256330344048269379098085470656402866600970798986578754797920372425636453422592959916611714040330223763441732444379652073784328095801164092867550443954783421577656400144438723459432462523111290873970603626152958531261782961025131848830681976769536916083386145033192830625887699108334054048456216467588835268581096499228953437172827235694987332399185817647419466210369571803541678198624221809632165191965142313542915046409732490673485433982795680642297960001633706448945603867390727222686698862511478489127843217681802402697505861264291619375012217973727475089864208703292773400642219206555648286198268590889410567609742977911952647516961943237855907943380531949906937994230684516278393729562800521558565066252568506266025792104020221814698867446364940014826277973761753092457370280114629379870467515249621509199773864540578488449487842792528250488899204098715686483765457753007319771301411997105170103935927704128645930359900843392861469859688076557553637393333690669868068035249382074758314168900552926898893060335285103602028215083017848842526983155733744585232492565451340546836785998830858471845507806117991710264071074493533593599887072548589924248039448479352815471711385037219998212343717080876308043029822650782596865774074741597626758567906295662998292118513253660260943672375191189407139823818553219386025886989298282121746723981721590577436906461331843637724581340931313599250770799299713728865542575041385471423778697553357517003394872538724389443288206583858661050263441814063209178580334363304410559665286789874120631339818440611365031057285037908299455580856561932075119243949606921440328165273578554033247117730831484554105463312907080493227639230885726512219122690353359365445120288268470222946122147969881838271299568172021418207514263216630656656887853540155238428502860155308839945273260422346986967160219997335912568288427724895699626517576832688356551559414032996522445064352026391985875550971608901893914908679051284613311276075301604742535834224863894827560192547324432519579145466938625165322895574785027290834036605219786365834442900649561145770618646218371693433053685434896804307912229157328299394412946983624987533427535415717673475784890725597021338657937150427345716086729568907918639375245754725980958841004220477681205136928913275391671807280680684650075842061444198354408253191801984289385053392961821095594066164465458026275712006330782151455252633898212675322206239061087516556085053616919017770863230924536565530634051902536923289671976152591456386918931744047852535339748437186575115195705652987591881752832270952723222192335886822096624203198458779205446513418927608078927627669497770703398706746970445105984339451063775132404971952881902001320194891093575967301844345701118933302380717760330006748031263942196823691100045490805501138227429077255347502389644479036463603256385889878932711094226697792023233122850161530594476832057973654282190536032474458186390167978827679376515523912811141590845243657059370350998477500062089724876994642122648170035702861285526667929741774218480251843301705018311225055659688011446463279107739951852233780397710916317810798842885845812187843500183659348475368786632826158308484181487107327136192498645110664722272867015071764856479445033958828915160994998210755045833886401014518573872614234833799078602355897976668139270599898268648902869961786791543004983850808397955150177478894376949089950123590648598508623546889737599129929633584075445403642886663609697300949913819407798058944458520601874205469441056929977397472686971331018800559035440181855141424959474358307593912917364552139702302428203225550887623852873807625581808832383376072763731015223637646654152136465315575155631675066075478422004976066699039924019502535687473676853540059564971749645723963999394811581403223161279807528319340536640756374769814238449295788204101149795538448139813794248711961587142476870778787371191767683572248212436026023753662985688789523441313208019695683946774331132650156688639737118340323417950220917184083794238562386363863211361191093970826095423421865777382377169908031392519341511371875654056708380832559308640638662477805829202510972014009091705757344132181206209436960321626754411543673639423081665972597328507190473549784628120603737969366463961622480956580001843630652345433772278483307062943557743073362033887578504468269132878080399371504140120408341207908609374134825432242928515351475392759964903408913202104333439986421394455683199037985966639827874582786997311707979804710694206344976020299585042049461726609982531030785732864975210896860338851269819245464627784039541952416797387429011001574629630018254025399276691411422636727366225457609333579360428169292782488221696410452641383927425459041519965168659510038769642589601703712067830791471062862108298088355292535400819453149270664977238536231723436792103552485684091637982653047635897607990212089470762450006414282213706424006877062405834184025322903006173166365657754622025962152365146834345959262673376054986603778761594117089275314185913853579289618745566787056156168268592583749265503621178716270842711455307389379373095889355154451971843038381636362932428778633592110915022194738836654119989028055552517590647540771842079373953548765340209308366949997886367773388569132144474607160742304828531777279713261153931787141265289908151226176627792511528402095254673445487886099207956277687697793849719909088421916446981069224782141382354764852198934381419038811078652828289507924905923280361333736783558023837096245377049661160599250881036648234216705547298630326177011641111908873480794865097680250793427174845686942596908242713391084967333985898938311447356229179947741967146805949703624872224913702683277406979553853204322455432025716942390498205605257627992574003051188636409239457630198326993489306182101225996562256571669038305592914253173359446691494671766443079872351970272750661045788861746359601797944230395995995689475285053241741390425184217627113926658767573374112799956626736965865382387087110852221640555010485584321722934578573486358501374419541990810638977640096961563820140222380861480163220098280793602261104508284384421992832208622342592815698308187859281597264537868967985118108225055264879668930689785014501327298965777264591688666858361521827808806120171344216914996189692109605981502416478774147013836949096734657502183856992278246314533855905914765974781457052063944297664544031120410291741154971466783538885296458760739360197888494092521736589420637562224681078474514441545645029011715855623960433910232204086693833901703074610231067686784572902821031667171398291641095104249784107529384791158487423771533087894116340528757803864638044386299749017723788702025176065056946071441684265563249691561925535700801378242737065737383021716594519697854779405483027824658106775653157199648453878622599503166793497779505216436215849489514973738752754730759924053635385734586356926504356480797194349900814226247021711965740849795494404471146637527605193957272656865272975776158477960945242547853007370533862114944468430057490704472664959282966532910707075401492474151690391582159114612691523880908769131636980126946987507125714666983039669897115767589736550782205950037540778563735023831243813999623231381725823015015861725966520914649007080863831296921068595045850287474384184771782405078051735791405403663069373143517953638198946160518834332180318423520805468667024867814321386784171095291112146199394301017641514609169282607351969827298092015789985139092920154365444386897108432776871424944915906674505648737278419572034645365973474362092800470638982174425737234576229514346300890765604312581323889971353455972306722848652815588487656430761221158339618891054522335045970356011358669948733844924362823379303099842697113046793290412420493119247673854687478955138027490596011640312325049122127144975650208473929788895446184034490529651993361532449121835469014790653301501413137575921461640241555054635994243153221041963783461769671924323794898444821381999617272183689002481099052536416048866852527562669060019342473009661861503680224751833832649811681506449436857984791325085222314832359621580608581998103168540513353700815454368637991005703365416804417449512457514234520740573113603122154249770933421889261391150703739997396582128440897000321645093888845877975671818429644191511652771793096405861899299829116819883269175402481104622254820663627778157662000198434802556492970329858794314529778826719276665000796882045210156135962246785947482094933731420916587554751518572564625486625691030489918175965769069792340448256281801770188699506135042003418870714794211519998672375111714158762742176103390694520590655324758618722758870985944401675013654042842923401278577499683610780953332226266143759988518217910578219818274505726971121417805605282982659393886279896047944567919053778944275226316007406512170465817852774210177601033825952164280632444915853010764889715786066250930228261222678550096687627262805419482703687918123576025993754804075864306923750524007820623734177016845227793363939469289925933232553215177400162824687707981259563403466690093429172236552331512508752337821506708968733035363684656974793306268341109316428385680722428709114589493337989604884539701918291166135805972551391662336062535892879442585061282457865735229644833863622154060552029750805905416314454866620884239321139874779389435059332934742976969249237747418337848042505474546428966690684819215425478238224580672846410668787956900492614096639853106173028137514452349282759573455041186984938775944281451971261230866663388423532923394793077349899893822234859592667612860129888198137881392655825192366045082857617399537304753027150965762098155738381375168894132028912854280784303818026871569423034199570701922408346339139193496978404440511840834657833490961751826951048627741431999295306865736579013606903971525676223040460259944698300649532144690012408607460198703668580550569781781322507635965911276587584608029571661098455401443185572391836323087815249096523574228894615463902103038613576969535189286936043623955479476304488978810696349572136869882464745505305112005399509080257173229866618798686319499888788649875349660588118609441990932160850794382357968885661999606497981290101900032113253213077740265287372425641076956614365679399852603317943839697157419466369706843191536135122648700451426603620761390194723874465837138958883386051144094330241690624302948560367737638296459238562495080673318643050503741544058685900179713629047646632389150545192787315142254805717801949751001445035842945094282192251958319369074251176898763897164600401961496707206811247403720587825179243468582902301557504975373545461578973049371819738596195633376854879964706855197420473331186181595205718516923850748384549191124275233194240965055613365032598818864697046315435290010859296679361469333783737396110587247874292466498500750965326568828093135866339243017246557771351963275579369312266908411722665218717720326064141086949552525468211419642765220323916996012976989273484944801563109860233608006684404825136361473661179628874705860203129882241367818191178411859396715592813416934175454569212484947341121117943822504929144442698710858189849094634477139374046503598690525142850492763987073503882741775523650799469688984108369738775609787658661655846594425578612127878980055113609466302093537850978227453993834767728498206129167124576679819202326550691921715759544060306048328080140064506969210883820130598332236772384368360842041023845236996175606703067967135747296155327801923395104386164101111773502215278824139652121050970347840214006425926780066885957781264262298764264637635205882302266772283836326978505869174341400001049798023728651744109964195290042170772980311239310347194671062799872658654602918650559457843270827751320158414123040698108671746166339500966138191537479852746835349168157634287747067882034261565146694137705485485305696344266597231517492286681515388364499858475803914962364464403436352795845940655275908223524713075632613820775941664216167618239271075590808827866268757471201099737552363493862540418807715668915510989829459716577825588792721392706010158570244606783904692610379168654542498374777326829089472998189162747700572112118385900304944731401965301186147200119719106897964636836929848724038147998751382267635575668608855956391654958599867885285811026897619753329193201219516661356822138713887681848439735764182315096487852485840890164267958309956792406624249950028444530623037108432727398783797994087732964470244396203957292978185386503349575652026699813121042184897138688631479285999030190353906667256116097429048604116543539628905564617724620637688480235874339459463520812876068213666145950538875184913799422568462867208181996222370188949530875796457386244748146178114085916198828051074264992869211329258461394128664814179620445414303853520563132453174490939403102116031461572194027276838612422051739331968828818422504857613361750613825462757748645478808311492801226020952588993064748895701631643637339657771804651637972394140517921687766932928149257534406951742311036643034297660051441496856147252005113032011634986652447765846106543029881400635620569893912058721149789606310982811415819634866771929062575884668780472821328992571213246635781625796666943112134617887651683819141823035204907061272063345033629396703068016295742559423784728301328916128437624126352006729509684647514656749402164931562123745023661510500710303842418829174955073597048262303783142927185645060586358466844432454563894091196131347909825336831369029504004749379959900309681885558709839014017250797512870575949390163759367015478078619362467520924744420520529058247306566463551988485149935286167873203806417625910791514546683244081565134547319526689959556179869122402338724820928769237485092887102061787312381818041375782314376576690002147082738817195196775138956282260267810205436183106313845022443332737077126822503200084010618264564586367367935351029868403613123277899911630837616520120097073209456829687641450555886613417468192142532640867494164723676316245894115254480727557449808469345793982949924199012987824835640206716246776862172709438106300944715074279754610145701699745440104575326728050904940541655035249094065840568250212568871949322066108079580995551610104528448615800851294458867644878719573933137971090667940052935309287124229152633568009967875809083470722038421100433288864862711351259667924254475155779467718043886562825402018750428896107804963341137184438492111429605726654653156952339044078337693031655622727978601620906508831031843583170935657475165884103831963709281813790971746237195231376736247312739766032193102715672882198617528371991441416638514564326548105451990346797912655519362918091220733413628547274037518939863036597859534587570758461056405569672735477218174318285320408852344292448883839623843956472915515566622037985057790913701165050337839300119686268394197983006291724863088193962473481285182805280045200465813572285412332312343731842281135103772858524841689770823943758320455616748497207089318886188912917447995896328143991678344316540377935828417695063454495834992027446384448801735316748450115347348511829894441873497872660387306977035168129726326643762022859056586940294938964632640056007559477305980829910186202084396552478753314115051179697588704637589047698228379626306038138416087838849987587116595158061674826041286965284407854699044254752364056406576796266584785710810049245777371789853109087214442983898046597016626214818821981261975458179494993353198783250328844601134866935848759593169534588274241035174836563493523843328751810316248339131095414369744418660404152439526668876625851518582638500918475942236056764566680243385084583194927005644075092326797393628540634148504363399683404152566879508710818462880168249743531630222278603926629447602782493276325296992255468292404892120566753781652082153570903816064578845806361320284345533014901845467796571889534618504545601603351579761622859180327273214332088259757161142498569555553704273615311750263626893271822511614364531011657276708043872231849520169699417550729814560397822903708700075843843222673454553120647593897137863210636653031176205209598585802524130657638653366761469211663623788478918958799646568712085278958607789418575595377650289769308261357608102267263951369779612942861110781799536751514768510460888016842211478612003887928123288611026453237554604239525132230995194327642252623034936457324342877065248792596672290606998415938283043589990973030701706688464794513051384157754600296046298125724528897917002685435657322162494828305804216837987628002644212961355858735146420556222393430282347934979605886947753273612234002831094881577024282735204231184568807271089707348105544652461867061605768237116479441347192416805849077198579829052990650002503690398385923946081925103001462588865058004775160054769844968970791996664523833767720085176103696695320524693840176134967601829730521597687817354390823648393428563338789382001879270878561222728984205679792019549672312177174900328801895269813959254387359056251145289120944451678578429554984800552262604620236144244995651991790700574804489628152999054231350862081259104800871878127141761796823713433943389676109139170837717998965536007075557099970797453535899655975519761250420121047149185737989009952474242189959325827048821532995640073697362244687858030621670623863478621210518684506685387698110956894248439933727905397451273782960369115948319173902638579383673899124114387686133977132340863975279738899693914180625993251301023840679872889394175108974110786629783535242074171956217343981680585068400026748184960755066377354830048332526185010207864769320160100305592907301703783790738140130620034290381326983921323797407292034973656719539633997376290205255493866900017440124963947060158147320148994532349837001174774876744909835513809802062054900609847288423848112179736504568079857083863291676339466295749070515338297315914067170721884039452546858095404935570154167122918770278466055209268547026535882539578631812588284554016334765157507526650394722520659651415583234631438113086267084493041540481391850041967023296023948050394733917260687491300261535923120082576136159558156504569215394722349079843829354361055028153779100673316694361548513157417280262471855527119922487919232682129625100715869454956661543259802135119146038693705903633224639770156918405088886407645229832988685651300681248565985147030968647181803683150157991416385285163959935748004074568250831533649232477739327279623178088470836565428209679212018051829066473111067920130655784941111697085062142681679860424293117784302979797070400137460972112972309299002903113810621560326863318115441023430084393416705984020286683920254222020972354217141493121204151639026377738792390259916829116867164674686137752175411488975491749988544570214408528374674301047304666085475331398280210293045416675692348204357735236238897499539667192916047831515590545874327074937052188637805515041447518893641905395913005892857351426621328098004061678836606458121405580665324595304981990859759666297029440689312005615888910546034399867637225421060559348600871171061362616241854551328615223908414422159529129480878623282457690131394306672482314615249508465607872452692241076755513875671521728286492983879849926284408450580952860345107495516521597179963595323923429694148723680164223524107877492906051573299745380272067807453971680002954298778346864571264858696887601742514066044183118865926359900579597986703607095532479279891482291110071754894089881342485175451592028424283318817117131591561850588266373734296019581781289112274290550302029191251401132309072388174147539313833920367396525993946968546008348707222469554362422631222080701952708920138970901831699388811606445976313353440663477128409078276118978371765452844786137767985182684807304857689256483502186823016264008908985877764200781568755729907794513761725998499078004342327679285102504190993579886407131748177147510168955865249385231581651751260104241692283007043622544336257312416282674917271119537865698911826275469164565498318261691126784237298916293301495935713212766621818344181430031291496333549272878027481272262908616834885440463509802653906995602044657758893478888162980161137611290885430353689256292435750627764465632177873844692827537252029737403298063929815378913088895063970735202251137668869963397654535363755772479508555321367729425606935217330277178411310489564795588264060984640921432172979677753061211993315206371605920563481085968943298518653151878062792385131722985781881234859241949018326130255394324616740172967579073016801376044791805595577561881492694538970671680218035182681940574894446506067897298188395547015845227069814283528537940114468766119632459690740571579458911363827812311582037636212822782374850763900510297699134249851780261100838711576543587767733531686421383722164400467677913824349005235164931205232742946168360935072336254903576569116608077979356531103778708187846739016971082729232670237121619822841716541606476037332108074993389032467591760813961400711423592692286407841566633560216507570318476523314977390565941241695372198420365133859892736474992283685681303520611439930372663964780221427575095510816744997699628379447498949812559909369149523207929100974002387549289822704926993366878077686949432338722411737379319767342281336105029902542494796859068792767850391193275695086610476804491554877861932507958474545684938235460149783624683372400722058565479483311162665543558057853467600775610318644192262913367524351357817085532699615665926205392879959190713693983347171193629671129868353447014586100092715718808743433037750261551097148680733046984570438641618282924123443150387677169628421088917318382488919615301248348931677461967239744962860005139826482731144144965379762556273329671130213204120910734023463648160014870659133287411275534376710307884797345354026984489003058973751747672783696190383033118143416991409779406680285520642006615794117363499323093283627034481481848222075016241123143945692707916044798065337393438274895686218193959189395629659328672623951252039782680922714659447961509841231240973255950737234898271482245091324803017437005248895919280003153745226049330841344207189669091375526684909196479435669842277255556661725951943567689861552586062031029976590468358639948075930671247700480083822353526406775883080974589896463373329676537923255874159933990684615037528832691398112499031546203529803948253597899212822254716171983973865122479433994678169453701474047239334612233956877526891055136758391945106649687576276187360616596767192625163686819302989486805975749148140807973580027636360749641171665551935716281735178417910191993797188134810834259542970637304865653308721885643212555314568192174136498398564643141279813165829787737025730750739928673897799070664259362860603287445075794069030855550949428481984976360463644902523163987447434733655920260466407217116745644895324254455386582059508092287426199398974967703378224428993373291221245746075411699084782482108133531830020163520582369370930057828987600731614368869536620417747529652524846596859888336344127736715263138909807682003625627837196687202301040070609262325539173435497561472714719316595763577170488397974166206694374815510529944113208100314288414404038952524928502538934897994895115111335839888070963709874337779671235890977123018452481475486926597245099628179554300139737368172977136656826282862028616042605858516365073927436883341084334290605962131265211598931567384848561125722283644837745130588184650905461688345360775642290464443871713823614191144682626075652317028784340016611929502442657740992875902845739454435210888528560552478779824278560102842205577755299973214402063630514374895033035907312790403914201448469784971174392364878805864448686819115994595444559822421385469006825316723167233198334131505119915768470598672480260189034577262334643458714661993482098196919609315994150358629232101815259510187352657244104574725653806772690829047998686951865707586311369754301634102843551896149302712576820234993386321041506971131606899219314676917980407345449772786394390266905876779681451210600463462757873501799701437302957442720565838985419774097408868965307675492814032569608957574715158340783573926544386464857295282472056613144017530740145969569341517198060523118588388474205913564748943268571874615228742039149564325926919237078251643014074785039157656608972445673380630301898164764948918706816038662751669705166886608488462324020012374206110909010805096346946633727175790802606331114577660903047502091651888161606583240111831925751320514071486180339443822411914031406668128720982816438436168514944965913668611933266538667270310244989091687871087071235677170645320640291695524719618073617461181895200866274498716491340294109433317501827566874693579479587988035128690636032514890425449037994999573345649906206103754769708592124700814213385188394372551267339849535447468701819552854262528338408677808019465352024875423785706605136111358750166355119781675434050967195099642624156261805899016760937621870621775889695754473107849348629286336411225325424559870712262845836748752178032412481977900352649136478895715006827805353719908263618305335731006794202245390358241163038580595637916707040965800299595929878424176277643949630006440229178704345914196024477461668326137757477678322838111666026899085339873642606030163517960734057054226729112320329943818980709076202577252130842262876237898435841716128784917440705862477646393129498284847852930036978726840710348428852811257938700569883504810766707779606389901827225024903444599095027543731639219042477459155326661785906184924793211638386470419431079051622420223586427139400888290519162000514642079434614822149339394138803108798025464869202874094026218268324982382265194139321198646274732742952107654815396160435966912287917475108414726852848296741841380251790040018597443901319802535546903585938631386976263083549280537001733564960873891178232888214754567334343496784538303056618936472703550014063833743032954589668440754629192787042241565873009045041228473011732147464691660128577446537780621315206672979481659288701061902121170912074403068918738356426791830996504851012667517087412095086850159201284241216117457486586521985726684114329209855506758247640500488796764802859045036140564299842143789808895186437505027177194645116983101847209761383866436033448882754217157966767669529555085341381299098213481004677223720366201502754428154902056550551864743026238153668439060983678137775597440101563949269643341627317291876798383747075034578870316027274602150155906087273805945530247215095412752498206325064747062252248914811083507246488390029205155884391956911440840570353360340751889255197039619987064321631157256868347351808024667352332123151734858043571303385375823659948385735302628221821046446329341541435469859204233816542451976417105350438735527577963460670551968623230023606347805866578784811386186756538161130077070141053602860291458149325889270948657646113831284941849621573716316130720613209279795871941685594568399242115365679743059032545264922530667458255996537993625278393773367070411636050567266168859288071920539985948820744837757657005402552257925810567127158891582673816788330933646062642866493782809268479700265434235385904971048699458302079040258790989214356543986751913432381456940280742437248522414931398524821663228171707730787781482637617682231502848836003161859622354975779177220476062487069448973765494749822353837093759539348815268500978718172185823453371447127227435968862355358898961645908908970528949738382790115855972808069696011892250855262616562527590093643735170074625925522277501243503041332579382241001618112011617530212933405805151278446437795075925096924565389296060598174790413168082403024140783295778737845889104739464505595109412327013360288186282010469727284563463140032359003504063182153863359592733527278438951681587940806115548616086797222091222589694827999115680493954622657205820780884648795346991773127094278382064176369521319047654216539011548168661161540589556123403400965791372396860475825025499137597441820768882999117793670245003764871740722581435663275263918849068957873402277748413858132590942717135702975908225875470599751717488846961527332887994672989903733320940421471293775092497146065345749257344994291577671424826127172160425714122346102699808178234098887728635071634602438252864793084285486163955376702254471298099127987915112559166411984919693961405771201775429354301029537205241771126633833252482334952462428278436923333348733198386391401122161705405724676514808421517216497736431635469501281347294362568647905083982911008037481804344165995806717238748043010983700022958481679673138638576784924974398132912149685037902567319632477785815616837691937890857852210657190856074931813409479353421008937820603859187124955869863244600313159954548876218978482499530082584220613769842793585582013264568798120193888046269587424157186056941742300331947489995034777570888165526199939404683391640660586212051862857239178882388489495846548630271393590427396316906553992204538747650157047863045269310192708245240530317397848234769917641345945543672553217221062360394290081744978937557128801802055791392779062293474143925064483575700087637901234725022176404768006132238518924865403261415648944803130266393056743139185338213345293308358272497191034516507308702494297547648493665811709946216970016269237468399045037158735839139840480253639141135524368355971316682454088496805979377424051038099202269565887864024315063428109369866019203486728299858142872345293917399986869473212798460271706253912209333256513403954027893088337247526393139169856129499335034336542486422503643325493236916666418641874384396479722393995627116274656391791033368136141941350686353112380010650409944780050564197464980957961671115955948413358073181805410071328080989003885915204558940236779628082454372348894071902211219952154866933406551028532345450344890132842593943200604958547828695681551511132476228569940363043914960064311959589563123712285747611259456676110322132233415704103969465657084838036897014188542989112392387716551301213376991150421983567647886172509045889871820491817207279900899623572920293920484614325352808929761671739911198119281670505895340627808943200440051372483518228529140181696188808854638690240978926276418384319908415027131260693754432012718332277878288914264565675829034812458863072143852337785591864639084861388488171902186108248204149143767080762317447757538993345928163504249356311960931743824655290844086045296152677863124804702880044892091976024946075073652439670789759226945905776269438165727386207344292469902700242870642836102209676302287552092992870938770173916354434739603177127900769456193336267642944761068386719903794131431219245616865272603013129897344573589762467609131326303617286725113938924498243020002235658861717511525234666987790603291595236768781735434739014445804849340399571374269093945427282214025535319154805702103143680852927920298580391676558208572969957762362675341735042206790884194652737051861841009596384946580029757699024844107438553317751583236507838401427366236703801941330499434967169299249987981634780278603850502859229329731497420154303417067003899387503915692944233334507618310606838480005679225300497526884514520796751788530003809498736782846930984002798401522825647108595822091011538005129481918060694350422673548548002359600631499297566703907376256871039664205990773992085415880281526888802104755754065508219733965818349261171934597025139273647290226926754819603553327153258190992316523717637694472585844542578986878196406147815950140596453258405201022865171673100135406020494753169821957383676882277207795153378979446197531690981952057686803367667021579005442015607771646305696893779243013733663551285221539537954022163088589113233643718921062178030836811910236472004478771689446900510449056435630835402428628883546318451816021731303319514067390128204438151915399197542581517061931653256941558709235052977123689914120921080043997075872721386318435138327090522572882607883330752508947437512351722079547005727215960946497459432083571920135067139217037269413364100372715657476604632750787661696702725358579688920836966886363424295201444160495820150531533110139291183282573911787734737655173696045517442039435176233244360267773461813766618126964107129502249477062997079253378264175263692492420493407404137982807447432089890943588673825497043696470091745006084157214572881919034680178694918017483563521648364326493573137576848049996334196999594888073061467462556610683961075486303632850525273188209055272736117729554777906011531989073080070190963848455297056489334742174690399877174958281954115350822673169019055055586451801354955880306370343683899584454000150738183203743919658387807850176755475969117896491881294505884003094662847428848599421374552996849399796935590678655369502664683345832795535542902697880739392311203453520607339141276563889125397651100344446334918180025675006898252780670669583993729899620352420734094925099725237958772056821477871891568597600093923310560482205631023309562011147941794941775825999851859207584574390599981805503571508688858493547431909071576908429547887482131321520182389391506912994231553115637688594630321622279459793160232907118093432601795195441684361306354412517000284437168535801634233532560531846947054050928665171388194060829533582218771652792871339137191515116919741767130965823401043797907014387002561306225171538583301819358517889967988835487384279679617932703812211027593024528626833541514895973963772699550104282743876322220373467679913866879703214124051767039406605999196673373847173515880500360050043767831725836710803947868302233587704675592628500348012376409494713699902843985802219192846166137051225986083421232040891810265289500853847635202275583064661495810782389673316511900803196313214406544367619680344180204320653227668901683468288416579716974314177619184049957852841631350183961363562960310436058763580223512651007061029363696965457917959550033949102737015109741268469056978727625784830735643919170794904431017135337624061692964346176138908463858700960731113319121570007900286146248685013651003876988647306914568440710858199112257592689726388353444417386700680223812588278879820466267492236197864070122341533657642440163472204994888514465101705490209447280326553465855388761655945283243741096599152631857905175115689367744832314423286007670821778336659707827208064409784550798769827418888254402030271712753077562007749802745485133068432774907888960769895908505794468119717981503795711935147139272615648006570356712150975026471091705969932376931071230712170956449573327347998260212764654845231393162922943076068119576243899657842468996389569101304438777538034679685721764410272759579209917666000974344660248960987521477936306287937655776871697485735915943370133536290841945406691188746201452161158202153514598037152889848844292082853728190208068954627244967167659792267175676680573899436717496911450216165882424606606965332511409368295607081696089481946394838580439016821222879754701363904997320505933811628590162057172516108186927116631253683972018005378916276273976068830990649337524259447525075014166386090063232019135151399358543923061394908353830668877312308226739390128663904921427354203922401959532776561702178905967698897622234514461722604861734054710532293189637788137987001083828347481496869286362767926414761534522686909647918728586984078907687651807113294223544384149791430346547813912875463727200506886103986979242827710513833252310907677573006230126123250129181835823738849092068803351471933591824491509260629261046087225243811020563559338225982348899240712605099648301621755496131497122149054525849095367362614050702307928082165296902536429733810482131300163422573935903370185311735978228830953753380530916419331209805102164803502238873166503347508336343330036439162184376892897407885550701585816977077969398519388608086997664613423301629254622059702286627949906080062838404651764817259552054995752560169339602615289146390780929843827461048175996219361643008234005936885612305802261960045566476807177282352800811853896342659030636874857664587673923140757860549413011338749380708574158558894791011552204595158683880961521561255480329126519173758204535470004626620848752344899416209145755998190666893759111285297861557542980711362493930016950410024861533892010497973921158886842512166836357316179464544091655769755241899888016732641302176222603151489823547842572046460245028040268220692041308882465388114548740752862015888057147374196357740806256277542931705767529417804110288606090693463841459705293405486144345849447940514707961460258588358791918952786901623125581297477992458574977703180036366976491273023077684447719496382196842516483934345833184080150161324772508644845366738028214590237573186288636160192938224875570937258080708128661035150152278288550597572933564649880133930736114138789387420322217647275033583777712608043118165448172328755394669439836891162644971417622584813692867133703587452014645581213768476703747674330574469858537136809679832144197669371240920989843568828976658326450994639965960903588666367323621667173288314669165759643234582732692752351687874484300729433059176031234521362082720086332583773631795013273401514852454308969868452131623793912914571660453162949091992626009166393828875545971602015533991348113890600331870154192137968568979384378109045634082637445980234127299940409511097795427242628007188948997266363918366759978285201355536062113392610408912278234691407153809067680345601947185294195554987885471569676775038522184918904437876891688879948169720354231593113313218267098407794652475666343629279622234779694746495077674825623875417892663958448426095824188132632070702583849693522372216551581055929902213377881044983619683216405252445116457915730180350035879494081773096518265593308531379318894029709770541828951441393480792757120815247517576117867919991852263156495686489332560145615596275939602310020101611955922515690315289383238117186498726069697676818120408480966221843725344383197010934699877982022197751256220125245676622007638625879044443884272900707529168355003635824824990439536731977964479657270397764560185371222754906399697748018399488982774176776080611776364269878182926901908776137463537781946821305519511644979295877206231066032362436105393549755425790909029105761887818394007800530595343011781495881476428905082439762697688505589096297256802437587270437781117012913025980788736159514072325134189995111630204451694554501190943235407370751732907313716604390621546257849920800704732850153795355378145215747955111111477845039281325131464650633197846463965641601792519883724178809227909067344090184765136965013134897329656171135211415278914079282802165570413234934763258915877148943971652481266375432836698855889200520618754165352339028323390675849434857474822435039774093327201108126566482978741266721818170206003476740065736119509989493833026050053721972974311345949740426686988042095406309518023666994121642610238140513461198261528667341770787877633527859302362840323317812458495373251892273093937089048740021639960863962655788598015759355009284383379008479314323783285770142032071568617361545848558648513802356728528018139194951570060625097194348515237008026329203990080542127933451813006549790208437764804470681416563841950511412173357626309392605675142946341344497959159433091553870506626305993296084446930852000572808891805008379888337874786428392407623866906401990452542053170872916646157486483904001957645425530261027530482377159477588241943586540681882205562915977868984679372717188991203482785695733638122634553926281746724128481122370018844774037715935167314147580668758987674862480736178420688414320915545683044068438152304443828386962981074921112697388612248013127133833185009600322662217726373026304242027712939059044965715398034845032950698317383398658161729339493265075149476836625477890948784050226657546178407461222066589869938313587332142208028706037972587503401750038921428265853781106935377361220382441292667333640955920170368418496967780279684594804087898379812797271002987902552031154837334334358748107555452517118247347282581288825533210496453393064261667223158955128589644300846778288787649178764681919923393435022505948533702684551499015224731326546527928931540196270275827122161189391091029334099077083327721852992009045454405122542406101890222964677708322549414466770591069441969971589188134101220304395633172739633698593170024807717095230051200744361630710503719817986577265287355391113253923501162623219817078663225771141197601196223444595164816862145429144628080099912011428219642180408836300379101206479849415941704270919728088599668210812787635102868082606235950441885957655974469383633628296386810601658405509602625342292551594717979894050863100845678548930133277768644517534840927862565430828213982019681267463250830512035830328805412952178685317767778897909683019787772225851048923541426954602582938092171167447997115617814923862033019989478313273371289673472661908075895633780756830632395988629352816796211965280625023661869853080542785920366940067449740824058991066443947794217417219413471606633716977548174192048197763802161888905040830539276615659709702025712873914999910640114916014833596667534453125356801918371461135409496239588128089783217656671598150754556473500002023389445815583530684167009108731676271276798662423539985895961281039574025558529779881484699910954988832525228507261240944860761728318243693043344287606370739185525932237909930113231172847501427678094598595330990311041164975890930049611672608536263693426792718915502648636570356682828034201846851111644029476942951486196458999393575379894147918385045476037228028186079402278813933731452748773112338910512256293828401932311061077763984626931290176904191121362736028696380293881924380681931574582376225732735010761127741741175198225523648291091490594710467378329122796627205155553172767160372700161976759999803880359415914538945647444376683369932798702303170324036012843860169959048642769227235267404991827661442562947153396144995877035064821130323207661095141827459495062651921242478890029963517612465209723742583879916304723330013278896576583773762869058938725440772373487099952216690808869890036821468764793183780794883118134387320610331310234896702128486305707494638108191634940592262552778411921761711724442917508234426233075356331903492318261629878764458950506877340422533522234815965134709769112731915082409626590825302587610867024766878645784822807911968863860514477441538173483398209600885691515850493865654928549698463284382179265733168504483863107831679364627646054435817633960595092623650039422892464746672574378425352979837836602129050031046816692959568271200255638954042903223730956959007459514936497447840140750472810755207013030621567841810468685384514024284405161904344233172808016678472883815597123059470137114112916268781233757777873301196288556788330565285920954038250585677413158506065585274952491333407756448766296811058773243432234082402928305816675628252005939203118158478679029146712818590511828811816124290024774226369144964499093099344911227264895081355490080082922559047447941007140726051846759634090937690416973130744415938311079103741390173083754042516238382918838099958053373942551230360235446444646778088595752380037181196910599944496657177854735638542624030233053002080202414937403225459782641266753178323391210372189554178925466262176371385255227713508033989956318622375265525048539632546570546837445115418093301294824298284519230334784545584309811957133408317625270389773209998222202861623226045597831048692069944936258860836208730196230700471841085312088263740383031842464870380361695594659778601899951157107738413067867570754979551462784035291203530653584540596765014941499911173625964308068971395660020958858079272692425388718841588420709269537096508033014063903248479551101989194575376697351893055826775354996102417552039132592040464086730772888437556233695315937700989690740230191353893909362130491597123485784220250617382371260599858703580898664524366703671589060250308053725527402581053574989450092499753771703021074192629070029015315587874745986686029497238768194285777773967897698729028788346581439056872007003309864959961528543066762236011055369594743695192321150205016302749600544859398651642172493847827234600423021078913010566934702286506427617016192540777893499044034341367543777666912765879406204073761118354067980238826052134095562519267484339022578805567069589110648345950942274471615110343539538057418422632953458059530639223781134861283383108645445909373101068619911597494244526878082249092862490701273864665427043415712273942962769968999971375396413452595823532394423531436498864107118367275779579615526820312744008021863821484133726158725951498299866785801858693823010170889514564456919263927190709151731002805836575369170661473880485827437989966594229423577091800525922818961776934636421321754090115006654456277983483985331035728740180049945467028860904190308492986595939377799740230642748230264174090481716471168279341303716590483627784047324868983261537628886563827605826126972793794405851349793876748589630530855323561565701671586506985302731530874822599778794569776685830393665752746728307137585611003922377783252904639001681684732916345304985595789373533451197210604365023145504778836270797671286865682850114432437560953571543968258496382237442792113809388495719852692954763284468024354154992740298196245211667364554757458203508671886349416101378304179566900788798809895215579306448001393652942901433793500273550650992410943826339773407473972634653850071395840287698449964494809230258946430627036971036747003322236268142728942399689361887714813553592851420117580210472483375601747395135072682520384657806751984435757468278502792037088274229489453168649831556802310922565238087089584457532891361893841324587642489896065926152870696649873786654742379582054292539633285354707842535884460247404475515496274748975098174692035031549776050396639734936538193889217026508553364002428665094233794182999659165921622727547608116356269732498104419050821164465809938652778053710044278877870785786738305536699359997662796215969888566898859633500455056589893265693730292794748477992264417140218511005975849664495898399566140895144573520251046848511194065672617868036372977026465759794292794249063703525426009975852941526797314846786511389923820016890429175680263122304748295489203133037065070179185743221886115733392060730519621317031979269648930246348224817096310293438174129087030398298022097064012223456931934183518663018252213335227824624910772957138564735702830541479434142426928121275937299309777712670931670538659119212319357515948323642003808240536947842174432530614118900030917694572007499413331367528136978316231451750688995917978096256580280946152676823416886918550836265110364317898483896549952996677441539613176020755996884579468330637664896128950672221164393007311675601495283620128196558909932678540797469824364029626492234208412076564938581058635810793506787458079075553517093772396585961659030426587091540362288472114510995784708048490837556058138784626948166200618148661967571446054825805363290684074341989053345168750157775444711527562657521781883698617117176196885808093356137425065563161459984128098457130050851939731423311669860088258390138769763647045785633518554803505565635354170412011448619247504561301840722145473891869977837176110550628505106896204521025963167811071122678912932809429627690341550082229174569493214296072856546295650936903561126715177342433497417494718127924088686641718151276101560142350140319999145880254496838482825177508099604111014430029111166468582360784589751342002814177512396477845483621842908039201471294773957603532531678197058435704927228488226275214681555552928000093794096112762505762477240402707293237065940494251162651019390563742903731279394071131595911571224199734707820349042128920687351330597725503051528410793001583087566976375106238156606255202293521153399147386120357723198574592366796323975344784911178504190881720438831107658612843203161453439141269700513320719740606174048097818637645847532146489260293230847361217053172307983299700682436336313274790715145364181643225880258838454068641323169226616041136810002738223421372648838338945748787703837534313928608288094258955329762921763568020134653834633206906253642568245049218207827301574913778954005364093025849235539147550414463827516457562609323829336215749319467835460809807684770269298573262944369351586355381654788257967343258982735780060220957639485823353370042035051515150225631487909954493353229380226932436515901344346032483365256144363712652007167402846578426674758828872556590455073537017940004284534654351728698440382837967228403318535891622863972222717210201867476185026878851287501072977680286371201769139325082281481452949110621585843824523483259163104136040437526332843896088016018794100780822567810264080177655712458208027246935222834674891506083613236712752155481926734726521166740818694341434234274253711111375132074641638360796299688327144137796100192989774223081224600039020661711454472839987614593345748919224125626408878221060185272233536623051852918066937629295717303574376067581445658637553565921972662682529282403933659617712901470321362113409065172705338713816940619166931619061826471436382557811236394019224178528445642611915505865549530513299351035839886733975733798270747923731624518438405018644692637400748362379878332319466700741952175695712494588707874402822388901259337879611469789240883701628631811548955232276439089066246284621811676504854892748345782950679299812621750167373729839221376514367660810156467890849935680859819801407734262882372810556374500146770404770482214860184658952035612394388061395983942268083604293544948687760790553486574638324671846339053858665548151726244154496871818776837485534595766930269632385882604567419054549055670153917715509664828436718762343019893631569101820085040101925203609193920698226878620099117076042779344377111602370288436079744489251030953290642225566199520884049907682290184584752034677388890674387011325861767777970205611412990112965689464831936824040846749987408746830044680025913040880533776886850321630213147362995403802179845639056193117657645034711348998467062218020270110266578968767126965583065249791004724545231085352937589149268605502989083326554496384097206664259479549580777397321120576486114330402720496104446407272472679693613519832172932118695107434208843856694182216908769439055361664037983171461278601568067883145879636508271371672200240141079665295845344326884721747602668888299946963906196141058500930466944414315822326991007247896420378275694637410754854212308857692194067467291830597100317716571875866894543060994287981262833984085501264840642090505088853221177749875314972053275858654827880078068250961237751873127686327474542114180459011068154864573178506246154118315310002988810258778144206023212582327482984532998086357574796400322066054770533400464506670945991822918235500989821967041401848820865642820949089128333789157676001234922254760749757079502357903591687762555630893949498356182731724189971843622921733901606604642298306860772609028163268746820750697656695011170013594130699820822334536155027789233782208303614479804124777867676059778543060111482535186818075326175818835881564758305452428011694764730086044330380066880410176375979153244733459717147606294866199270681844902413425157849010167715550876236221741491910687735196397625357856459312217080640952003396158741647624967884080791379333640082038771390527842129332346254662158617020395307011382932067843184052070746571033586861226577827352166621055687019216355363769650141265228794407173519522563060210185153431507520418726765511652877661297135260892495518562671211028102506023878849234868086270972216123141416310646239804330909209990446597006573523973086094101997942219530865301262675891472195321611825246820919797268882017210950898158292210896388470494072199902245916123752776444039984277497983428645272342414630946943870401241274172804243737200934975247459350816502777493471368116883730102095359730305247512783810288655844941399199062802265933199278635360891575868177910106176999092517157995077927199692501334402866622710686609278813888735477605836873453959468585315697023625335875399090086136062788330900104460212782635691388775994547287234266404013882677939463695207531051705398510563530882018434860600876786640125447712579089000968161944276145774406895999597438894951934529656775182649292209220140692534294832379023501302539360626974651336004274598314103649626265906150336979254073471094929647816487382839116302050025279502564330380348717489353493846717908890806334057819709890393540310117733497946683955769530980461792464606694210449171104338780721441386531997342268143824740137946699582183094247101235867765248129848643915008415472922117219996626801665137316130950061770937845131590094194339108809733859861110155640525855223468606985299177889265200101236380368751073132110025157248638359830270532280356176445653729610074510744679218061048902694495408009417070944762176027010237124875455302867462658030363754747308681162122633671997036138665955240659767721160621197694638657947393290423752188397929141584843022857639764858414603763401284963564769811421405408602390899019276434485501727755921445601526189074147091591573213216914772319168894353670019392286111321295497910884364178174658652768782607730080833835424728219658139530780227140834351938367924373310698770635652610211848774763163102369084420047427875846207082178050505771581306495297416218015236673933958830773083223755337323291450312275570597748220544227771280865111748249032251463652594298085592861943491265997579903950754543397613605195223621713130344957869095261499208866413054584035723672305389555550112280649996245961959680230776375593123165027479217128665839337411629052435884538543182800919884226200330379645114709346195265827646826231690749174482692959724484149492954919121097996497703805381990996999927617867290374757220171344856464656695736314492667135369672888890896666811010188928671089643095192656104576777327670206761194430793570364433100228648590277462469487710794613776190483994723696125126520332256153689903596174318698840308732494995052374733937820338354614301304281520757927669652708537425989696818784335335735383779030167091089017680946320344051852875836109592948503317926414237713657503604703510881680835276716161350217341634462989551525825760560499934010165841779507834051142859798556573712729000799596683863332535089577916422156766939168012456971025059863582896940014550033103070969102230961398699280148493461140960533677556119149700670995683705952920143837699569896051294354141866783306298408701979115741861306339098749067473548009142046198632532688603504590028855078549368487597166812188022673428678913654571212840572037491612733330322853113742670622780466336875152477487584017468486838491929228820804243590108535928965115664325801389427550885120388997082720337191132870540594425661465431683035662462716228230093317884133671013600509425674220593333774604788491629842723034964106427641039488022931349487650206117206476690976686259951262923166644101104804036086037599972045741336929796639029053834279210587643026581354277774136921198253990269687701420293531999434578248908075949261913571904176468566124673669114828535469782053678703155379089475879390213127818997058105037645107910472037598322078192035972133700975054478157786383240655261779380826879254266686419540818854291487470717288506469029063370968252153405925469940842915175029090831030098984398363456238125611839687206385011337113939623599346479958011728410115938683577416539344242563312976592112638709814885362654670841533691029395845737557321970048686147788253621363587149040859305272773148970439502550640021800184308280036448341313722468272886482852672097572652203583145842114800176446152005868962037524645511088961050818013826156405753038265784661463554025527000295051837425253739271641802573175091035622346345981586468360774666239867878515615308145835873715375859887683656291969876933813897825629029543823019087398235414055822359066001244265475796529403321085263575345841313643220884349453674001246684134427454895226357529601234067011479815451893190262251393541103032171555731399030675401099483134839360419873431368867182780783809688032387751093437951621602727008054720465109246298302864914312931348365362837160862866535867048741839396755669587604474733991898544354293049779526692456062358679596138008754000618702779949449657888480882023663467202569522711869619156262640950618939133202984179075531268210385958831756985094490490898888592087621387415229365966936510502774110280095090628051993073261002722080397432370615784698363495274626532531963488856569567648981443239648263903059564546501541554124214965886806134898431353855685092628262572675037571421602968443916224371834377895713078338370722762211835392797476527325357016224456255284552624972694198931478896615118579143255385860591442541771523692563435020790355047585667266135660453705772705394816200003712765684134997562746505781289179876275979664841801182579413780842333514892739984940998309043279560715841272035944659209860647861772049706366295357089244646487055825081167409611450385255668211040853232428500822668654172289133575846843095540325583496878409101664190277510546813341048171440198279308606897913606764969017246423452120279830526020639790290006118578430306062820314395232199564913376371062967520312919771049078470554704756809984292142542803452042380273805269940926184177035987773640220236311505207405764718475623146475226901606539776218051782856291375195023919810455401195625100351920109327332713867252486934048997096203671046657011038249491507075167771108018421610640705160943438279278204955724151126973699675788166949501071105900934976184007225283907855812352791850352183962848228980743966028541743378144408541261197451585804465578503159962998133077319543992915519238083223422600542946374049166332595707736283448424172146409229131443494420447762144916759786750307709586390133101282569565098723448463815818218809363311500368012429197199728589930091558124878626334398594249176722963741253297196383564609461778315795752099981729713428452737197934511556128269618250465026788887932186025774134852163999077549701843331077672286549870396456840924922209566013885397885806539361110046270182076064964597812316790525210198355119916140459646834605827557066263087722602312345958573417458350823535953304795552487194909163840186833695928935096282733521570847880092198677029580488363818990944723452477018785326948818441458640346426829691488831935962459532005567632044746408975332950318171239780497793219486518787333695794508453426852615357714621983567237708650929317761537913850880756665406240223449737627681545064423898581106871931391147600607620791669864072803900276910986755113128596897389022659954901461324626182155356615466391522241202399993166343324558904585864851054933865304686126112589392919722372342037137698340462967521568908469708584543707469403734639434106308686757276618442918365647948634459279156268509442314974677355229416252610011953010241444223538101052810771956219279369133836274638010908567528342813099309263658800284135570377006728110928075574077613077657536141343969963020918090662925204440010896322084285648571941735615185252248287264761297319490340458447267489215854530252848636802621430459487669476258653471626110732538544192334317469967772891132411589593006836557567725273860769196828359653427798117256102071649511942421323135165707081311213680172620567791028142601731611678607704996092431440000604259507798526382714846510398069171920726356817136598363424325350184048207087642230961593624502563674967077223475536427558480698687864546074374261445811545595299994320727027029425910875068567187838896004947512780709869397873487267792130451053051090618506506480450143489328565112842292521903293488686276725110376485677713327714723250278755805411012920371361906129615286672961609424234802315152754607875531158904099091432638285399887042903982338149989329627689361373506333612117266993106701765406936927836787900490058050591359145555330113475369359273903371639094824428885113860336501619041213796538400940456535694220275890458778859369239853575852153707172881034596820112005435613382256857816722370496841615791947671863170265204038741259524396595917264076120137746672121946197946978877807123869160862174609966595375219394327692590759854328329351905298196523458341564197682563269333860828614521723828583016056158404905442028154384209468868836633929520051892123974683902096743888336056880616782329340714020252479491094084180396280211417653668428336010247283962629694574960328831724202008719224797743729977711662377464012176768580262196141121033107879203456408676765841737417414894525791785263141317227237719507644299999551859755680339006094261948752996471194195507447838704677428277593109422084065969276796484824576550343339201758291991506350814451124145520898449736983901731903686202326262115822305257739622835805756230489861317580887416069425292863787586047940735290582294046720733045417733972357808696427070908631446393444155708888756278329096465891578745230817146906547350583439880062842760611565474884841953183176433149196623518924252156217404767374986432670134351912822481628085850051181334317795936009773981282608165392662884145960720005736891790748036429316982618684025087277876401082596130342679128640414413993780537556468755273373464193976456870172619182089671702160843766876697277337628480199903612274353583223850752778964660014499409311328681408350280399218706374852003626207395632375981970232764215201861857457746955037026435677113444746609878393057652939641925851724212368436765875824333514901588170813241170141417853684873984890490635883669402495318281307541623676362673411334282758519198811437326117633550589449558772412729205338032168474175193102649704623824025699662858685557566448080042399257712940482306978966161399073760247170394506644910283306733442498184855981765112634721056522912314285324702539209451886809317000033566982794059905314293710695411204263697925622452293576286832911847217277865515910259611770630061811613297380625909705855313340799374022607331790712040364602326327992602225098161912589546851061466931435892976050324185904649742196971192913456027101788922414859808345181193197630057221252007951633451189337775220031472838230537481465588239691638280143543024951583091177951571018131471908313274808686866597982777938497410029850804189466105112528102135655011597434756488173347026961541245212664710392703274154873122840433284459181249362376244511298497257275132384017502207552360522964203416810746136557423925286132940122807720906761233608616997192386304890184423645973036104221558918073829220039765021623631361747147947920463446329922963671361639027633473188606524021571380347352509986667557047588863706447597609225086956305867846885802617032317955661602441769139792802246524953469016896870622840965809580446916142461300644307430550248150682194587301481679181109969352217359101028572324437153776508998374998982810609104588043248279225308122447773463002644754744109133438186049111759712594202354936213469068181735130028214068199458029168886635256778145953333695186022231213471859572626216560869017200020368685564122157171673197895623988202305329499370572162709828861482269867026343368586897233855697492185217751086404395451410098518559189628034810907491498287975657253566159530805475259272373775497479580892624888696119570325731452408473105587921311385723784816252807879443012960405893238624084255144816270851565845256812759125042440771381447742805358207385570203717601273906442002127933148429097828963328404907610006352789159965302130396578546192437547227969650626984334481583384064487114468576883447252053356021843087059588580654066993179675520947753426327184180754697512729797882992725854546600851517133093473100646049318600880653885757734115278236947295024112047411671705072810680661886005299793914741360609030892038947914441425621813327010293962773248214279832862035084383765665774656495395141849292682959177989301079611067838202554302508831945088023559845816943745923249341420292109072131812620374003764618413769191776141633946451749457556161735595954628544360909424769970791118403466791048283284673297777471672763836174962542652519464820556284139193774560074714895221386889589417346134883260708433679787600651844440465363153243291890689844424659047528122087003503537209400543507649103005469906690130170516911982546057994685021560054159374739070798574394605158561271699456564026361079711006791677023478559232841862573432547023675557914598622164495365551611450470578357719181896235897031019088283524823396202226917284775349980437503018054101501347441696734141685036480798445665259375327074289016934912122499080586528633339101104753894515455076217394959189712007333787507606098134456391319109408268422656616928642608132088589820665702724081674691518239809888532804088373490529404355561957314892593031462283047350388293841475148773374761876859757673936599452409620215230253303931167364408397945645654728195695385017900444011312258348505345470921501574012493299635961086593287874008847019577280862680924947469969597789984565572030415450852673019446536757031653674277128123148854694732761680982902289416800210518605479573176594343491616337486475225673049831140337479977228768944115065247940668592764467310984877050759127001434783638134249853766242437663591458059956595110925906961325615759082924910449909091862071807523212440655475488438985927186384106763201203662792657987537261861840785754226800012863300780841661074611881235059391420801952554523704036130455463837675050972780957306471786335508002193588734753094880331443046375260655794456320540801155944106604566410788506779082917234290524608725042179045854300061613887150678901962805366801011882383037641286069988639360567246991938895611395980666522934782443685007560422539680074041214873961301680378994576929358592067658092882935506601201747419614820931886408676214886621520878506670590621682918356335892488406214983435745792868248195531385082811887030447931877184718460143438362211787990042908609470904425646809437187430066667366157567728298522518288811351411681625858140674579810886545504076894879809124608482457076697745306724454482627874243345402111853299371893783568257522648257194437123924209950699651900306645870949327302509916159765081165679546664503912500480408617254523564077890906910457382472405469189718329003937021151673968693569524532264166653890734483720381355248158090205669643963585107374460325520762861655482111388947390138900706172733412566741473617820491856463113573098629086582275760798493121864421122417144622572701778116929633555847190599147987176367640181415579183808271384568395317868406692912987311085153583156043498838388891618682891621465489407587226124129671893116451846185490826392360657654212216002534643112143274889125153520284464552357077341609242964037932661901421788495540798727805753366058011966510377534440499182484300634815856630548409592100064429218025992306773695823522823001795925538641073199634029536697724868283510416797096122355866174279690259797225561326464913611594797158009898209240979927293033625268980671990593392496004240124866200004054120825651483885279254922671210236691164425757825773675293214020153948526764578235281576256971715217539828957263390576824652097024400111085519633925029452171651955459440252234800777976244874550902648795791997880485793558925377019618706009414432372314802074899352337682765707051069356629302085953001466738286346614695669132985008891215327629737462372624522991296068213695459265342552810834490271894389157965634385872779574038451533287840116774854717103635875649179254098293196803323116182326549144013073595470099207338114187233396286480916191311890673709334935274476027102993207817920750946677592564819953420942573205069733943530498571854346606009695993153212276334021116879490705879367923832318758241180857863762953084349750187195784092293176228599822404207970895299042595166868606075652907113501612034742700006216389753865564103128604177459077228817872252109746741794900570360984175660538658769971925787286847335299447952502641493209080498659962773568555045369084427369423559300459734990363566952590928812275471380191288247321843577504869593211723554894261929724913391973816125946771458634608655239581862452301736397414542458168215193124741210887059650308148078027795327453440769785376752632294263104525442396661366912790292984736357724090018723974715596847759848044314460027960249394028035045568107784304782228751493019169115128105086897456516318333943129765272833625913487129482896689685414186292654802698855149762175430411534796707945011354554355359686381805159019210936130082289541396060851122097829607455849960467891151142282253869085960823362633397323482782841139395999293109284509008729859988411242746179248667839435553235134606686662329866592775552435742353094571628566957720321917588485611940540515449084035908649177051466103653565861800268791407075543961190744230601224531951609194760074226866432349832209586720390528966856513304744389757073307626853641446075995487085171000287987583781896397243095669465118071115110288939148954657440397965172904859112600300614439689304579062654620134751249872028146890763212360544580063779944967627088731573437276264510706077652555064677385713893742516506121758493861654702151653986457957919622507428706764629629037860623637858458036356423098596141126596801279463910838686474846848486170161834888113772618424590651770920273022800162783555920323630282945971552161211143767433475180230140453587833440123941574684204774779707999111705045159186093270646699148732407625055904299709602255404147322833968404879364822448645761944006196487168634598816545781062231815099530675496217989567480760730008221304836069793947006944871931157624289989527651591719735338982642336285717356974087504645393561322414511284420521420649000643529980996058365651403613913600722199340011538899696734692041809900036911800947215525352868108419937557857844546052213029996470128153590478392444581669387690946109087146181249945004813536897128019952239736165876379712804236102421902892885830859099753254629927512397294791616405402010758409657091261306962739869629209413871703688498202437239669916225752269479820017618451202236581378864186848910298948075510702541203771552148575999525492728859002013087666227451197953308188994324957704144540166240102296195682491224588727983622328787846833085725102127491660650603976730111706333610864434020802903648735449131346993240324750477508935015390870493859332788603983579647380952871143695589128725979558582721543554338527819751765094911897750782223274025012259193625672261041647345517620975950284058467359224841078910404233078734898671572702954864650389274685028677803051329118502695415864061932145194571676294874109929771061057263141444596833604570627894299390209391109372138656679337784455205982199292452334488825635073319304502624084167180110308272214279216194757679013985415497032263755411862050548389533746330872500125672923040231922219441547116666202342696987377290670495372778753661125128612995353765066184754314423667313304978543996037936834098216692072735357837023524369221611063696334291664722829282332227738807891315374527837884401957878950991629551608861238998308953831812956792141405605956992840667642778225899580029309614244151180872298073465169805170351910387987343917424547243377978510836427463890158144773052796769016426855265465469153327399378154761497485684232467424132079973628454431972571340847923858387317495787721408708744438298679358303779947811391301841810702091594209125306474966688533767278028090929669481616515651843264954875988749634736705895286245349485316454299247831135980969462596231566513193740322300376131028366964599396252495541993304468039100752686231326964095293851210116015044785198488679667560127276533661223450022727974072196119295780287569407434662160541632057488970945800399350756912600221328997890383011847078151553049923053093872966119191784741128178716708354520504564723137723786938301896235980406308917485776837580153731613915400934106818514368168270053389843756099641584448357605148151211176767877267519132796375710901886687209764447965126351457233924280387943247605898859926165257132412091802854099401714547081956033761662029926924104334566935540718543919124816647549974375432464778865335741360185198842593303402923109323782425068457469999894506129393248989095581023744611857311241564934206295155808150173348423458901803052508054067757965487487641999533579641839181547495018697504360725330826411924056714827457798764193338746997139344541872243851051777340627181510510735718450358088142779918153483058243493945810460401941783926771938013592708105474007716324721396424827450771640445600798097642919490656166292570049204918275996932325215586496789675039803120410605376134701851801473709938813007161863377067713280962850659826745842513402214562594543619039511734753063778578839733730999232314042530731521097604753999887857503826463710002675691313229696163990987320860985652927345040415260555173582608924848590230279305656876399662036354580858926749121026210193358923974625334270163684716915439506117407870246412376540599138209728578426979518878267009474887821423207764128410946365703846405532459238767013324817489150256749493909282446910800120945433837703128426541254996476181846117688640435765438660785211100085119697544656845394323415578386559545093609240462719393335841406290656507493618673768092320097722892468166048129714174980330315652372575318808455395675939970058938597024305352866664252477152566375865187673927854356158336893748383056443720817242536332969778458202259108847434689083083548736716822563820513812786908641214422434281815005131379272712665687447654922709572455901220485811548851946984320653440424702092176659072286545817499613427200530090006213628744041562873990559504563987325357773319527583841133406260490626566038818894845146484831742198413366627428424998700016381913549390266444290867061373883409830705997623436372846871190713651971016586764158793664370567260074732420957281359489074916225151287387185055520835076362392349841464247758591645192985386006245141483310733004255205447392989349645518289879629815054802407296418574076526522511402234517554372299592142853309475208182852427280014014153893881442505378275229229453073022054636924088755079747978638559575335451921575477059974349515714017595503391986875453975451630675441184559826189801509036064419890509086441836373698082933283500587482991379555132192090516484777528107926187610348513433663030906810958636048668311192878876829113733477920116941477376009750099546242919261169195023088030572178065196847585649586883471394014244174461514329159271347654509788324149239583420423688653132620762095542484342586352191224021507680241467277208564488608576544082895194985288412915581803628572360776994354155363173179480177233793612872664483048688722710991541977469310240779665831642238679137429842747604717616769935181269469825697385703719094612758751212788025253055716604503627025307456436506089529629982080348413287979573063904733298636079346697478224687983648270508883408291891687306891970081867675312950048627411677591593911828373800981962195069719497964290842011516958233237229563904559876112681931586741714580251412284710645533144169208743619850835181509321218931458553201155555199265648625826394119751212032956214661209423397656808138812038587446582222282253092555051707740556905395697360703882267707851442842832827449141640432972031649828221457522826479488218062897726019504565474461713539226247307085244893514068023972328063142488489624777799991442790364954701772175545179182056082744320540866555984840378496017249875499049838823900719370733541831203994381452658765240944498062580945992305033572160707193336674045048298256543871074940461606869571786468251923218653459929741758609626585122412870949893710613737987146283997198839322709448653368733377716730849687901903291324865181382062483719997539162997689826326625385592071758677803037190311440839367372379394269654959306790834212512655333045994715755577164498211888826674721719081595121615574975744911122252760465166378025812776601267591084947755202242307709506670349373592562997487265599944108747853105428063766313741657405220004661312490626297504834434612500717851139312826589787816027517814668332419497128747602652030355548851808392738683718890654289681700625099709606785080077923213069861567004840002578705898910068296613535595570496929035446940244061109167730741998144921881261235650751773746525123572541692192865706108839176435691706114371585320471881699357019361866376041250239314106210253444676635667499202754063003837613195777503853045869178243397349776301044562910168328150454862247266445857855537973217832739306599222621854327340095180405061027057400816691476129456277162199495562248746550872652075461593606474090543411408392468860240527103163541724044270156931678303050412430117681105678200384669302363906180811857381563050523645060922872757723711969420827044684914286768635072075038714322867143203764714565572194471817299970773836197488825427968335906919390090561003237953579416397684862310322282888990722365480545232021603397257541014961816236926828509486555875770044354414679399013091681312696464651516560513009999940490141211031020406811518206636563886974947888950825945472626269724196265604341222884528840710127020422194328072112334974069875756668619029583076317634556054997803260249449692665237803039975704402183573847432261318558526076809007718738943176080776022748986717318763228017851662754950763520074361487371088577377475403642632674213230478516832041574607915357328498478347978240170167431747291473682929365900178250318609720506405411147552301655006014218654983617134966233339074890807002240333309672489976352993362018588345860427366691200354991049090008739056891415843067271954300007624134506375119668747146803255458565427074268896404738305865806513207597946366291049324400792838146646878926036543570571479142885799173419021404344212202962067805774078369209016188342120302699313392870509787936449912068724652017965633169885778530473726199728088450261414659930227778266870224264955189361091104035165079548740734950643635324692995691122241663134852101178725941294242509337530634797995171252617003429627435990341523677415278841004816479620163399165332333395309058513743441322115845642523733659581528528539877988500388240868692829805636006994899595715161835630734558083907885778916029986526351363900858796542378470405462603501738135046116772211331404511862672267626404556787466509094077878135697390240051115902032999267184122184976639465300297458937991931297928370527788360064125879080759751573425176358917811321472100381701487822415461036195543838123873611637744600712487697809442760203144162197395739580217565521562011266512165424741622771980012896318780462969615757379101421908353304707469737479360484618291743191324124252639642616878403403184019262268008757444211259919916233470988689799932198590187165737847122913477852025315001323510846178455640260155338341341570895045026440848591978369255524036475641141363203792918737470791844652219330749205259675039653849019840211704135402283544462169881285348385407295101322707933700537019539181800063437084954128037593917521394591558257142651807759107179097130213305212314807996061311280532148469822877193666490192766570217777487740930568330716509869814233606411358903359360662884670850934868854520690821037685283785763108658133834482809271176642939956154136691330773622216121132128919075577068721415401065760970675865946339032753306879587463929605822324103722179985394199984297521493121125109134957883162546311218691954693286541413480856857665179868617597741991414737295667889412968318390280218128025577539295323427543062256981589431164258285093120785610000687994015506562690076246707733965575250828682841102018422303780399455785501655549859890728218949882936034662380261085907875579567098341672015284221267936940052752871358430674926955909290853746008813899479062556204000241877186793237114065620016393551079632471028559948891139753489838987898407829219416445553169112482806406581229581917188625287146997369580597081950498787990814563878767556093524668296668046553538930705439719089295501170287576297681399707610749726024285280296904322776781421867295956756563228379671050316329925168781234136165368115245128346879053680888795625566587344487684393004962976808869927979173201891205510928246456268293754006373095859416658573486326740108927529900894226352677881565396864935847065184177235238012794678780055230655456206456632142726908738205437003641723678732246386050839778759409633823169404003771973287903286350686381948389219435935069949260937141520321877034103390068501321323735283702058441823459454125237428850537020366093371915320828317708382915709556470868236138735258234048549780489050206091081535640622798442138784729650093165591168623251096025585334022895650541673473752393316708591032050392055712756709862552727356578413641960289556786360684167436251679682135097125491118934655151905060634621779570697975771434135721821295238132374861308490586592918856768718381604422350383610147947036502473153774063253620625165076249886384740381623606273614818739951513590979971210713185437837364585459889638683995675839647494961393386807591503892780206454903611131539731478807624646053617741497411755296300668205226617696024800763472172197600213002336343595630158190130218958446151776724882019783287156184481337112062169993039290776345077772813897015145059575489445003680477476782728738750660143853826553150118819917080483164883626249766599233097462535114991313385781462608932951048249113870985613849657960983174119570258804564605236351042809652836870766226205458118738667823832628389912546174522161522992994306806166248309232439804172554645904774584310395934836801096032593926967232292009434583340114853340571710936689522852617511194749627968204986443478694806781895947366160665060315159715930758262634287338426907124073318589501221260659933653766379322166215005260805996186788404593408245450998811708344214423467060643592910852037175768326620842338797003965316235337166431335558666666876632285828225708669572586646826239620980824418492361561909213430922056567451725657208975713176686540635668374635979143447565867851802469590162161132952135319323104431517962871331696179297391472336085120945477423751223930028549805066488232230519996995229843382987686096403353645409122733986901235744715377029357906920207969624452789615621215096070690210410193802919496133207167961626469892368072937214226381645343706839037241400056924246940539923577675741212288318688403143102204083303330193260031944171882711469836734961349138984023358704960933276457509601654520976699143022893912580487632599064260986905210845594442763751338731743467291296374078273389132022046837153139431627571165531993501737289922849920371833288268666112190911492026987339589878491095455013953454133426785565059164768685267680652997718668453722379454541801061933822738032393581643305876606236132016012991834115552323158250783747418908866686863988405896188077930401376372184132076589847342530348355965439259630606424746137522600022718963303586939155558338324578094925055148922690394439258310140924864536818185879845214495516446889405955557420093165774754459981080726671491387054785533407752271525387904036723645262979786685164226429652485079278417318696839012412182000223983766876678004471019293167986999982397287413400052351162837841571256792562981159022667023639955551123199091854624903834492887790316121680303737042363792371598952961601289762260378025161705363418644456124438707495139607149161446563864801326708364313232151133982916171608728407445543953674873929574494899908423714563828354136261216093137631000000297565416531613352731388152330159386329478104209888639751225916483801711521899298615624186390096852208083253726992714074973879606667749861645757993528546353108056581229667690064277992992405898247932629985071501783064960592166725744002699288011403882014563805634563582686161757028725717558912648461454949542134512180067985330794545575665954324821079473802614488288599153785480218091692396495002234346043442920210554572289612169613742264955969895730585445360062160908628231042984044534943528219541955596044584329813453972756880956117232159249505208560365497164414670812581698474748452684465344277344026598544356743627579378751797287195632236929411643353953305726598171631052056230580678703919048073696091387671555637945368197228820256287942092739461463836146275143000128881634778958591968986413215279364310875191436831686021336536964463493799521018980733553334376281642038619201523399918876953124017501335348330874184847514271552166293639462344124876471198321030037935969713777640592808998401705581702160166056143422786441258802576932566669469081155854219940403148674067642093781471629796244887294078085962541811861390927225366377693450173754559361446524095226886044014030825416665132667823528703191538214063878949197507072789715034451516581480583592534515634583371402412564590315648246627435502157845711358883469817105739299763881178265060644384336394476441571426157721650611105123594980977559816109938637693626106552400702984273057407480194273811492648057572037315596180893758285969657128703768500885331870405418521920201533553809549835111529850486145085420221253107847834846296392645498393560348956623107001957224747943658446759463406926000617270637509467302218559018880095915016549080599611450341144312769174452655427292887565941030449013990763865554482381271503144105145139750504783371755456662454952929125132711287966961531266134281178860560722181475374460851442911236584563066148544701956711815095284944907747447352424714051473211984516479963471412321461813635984187294142870039308280024507931505261913700145458756858220088572676396025453419800441386437965440499257778087220962266961728989847863235601948415456888033385097960675461170222163732950252682356524558053405441676852111823993670688882301605827044465464688634386881472234422598352816056815607711550233971458048850798200996863265305583688155172606238346200765843755644023519051631588369425723886453376423675398792460076175788110663761798536084618611700671889349826365770193268539176062364572770475223136719417550237819970419696575062782017069770960494774366668979798904589841445801651154528264367016264763332649504397342364509395819022709057159320005979438572326284305696246133541345494617671040207303342318391393963889168479359872212426856291011646770537402786682330256942434168535162615813768543249557008639518860158292961603179607472536499480370728810576202842996349873746267325724105846159850330511688317826821621722963828043199558973916981576727724762282422456800098443114997487747193482079214166781453004341521597392261559568880013088951364811035574835564865047347999371135700721350905345385667651132234145626509539959406250378885334921965128990175855609738156322060238326357198808509032669115850728266912509887961386732991511975906527435317236942308791017801924792376506293669933973760636173503971597730000322273854072828479638939381006133282022386291888767522372484452912201578792501795208705599291875387804306636897842969788567691227639160504012994010675868738727422749414258447014314844540681934518693593383377221402998444834422468376679953924038083991562222180533694274283097393896217740970961393001080427454574252725855320864837531765919613555703162316545741717750734346301016465792374919229947531669340443133707133784638506311754772534580137983281566659580032588117147860195639882858377664579121525954705659586950515433657747291224662940180291007282208756398339674132346741931669815616631887769558277225901629158821441775958093950740159560676172669366406090087997428323612109917197004920391980016781925316291267194550075901044478399796159697931163772717304649800612878544721290395432275662340311318324335284123000663812034221019417567262043177065646787094157858877326001340869794522040202136969588517508598460293663581049983177172033304591567654410813030478209029013545909501660049129064368769986157482280915384027502343955567326352426443833794023999919459416198575024132676320530635421950527397169373302508390740738738403744969651577115072379908491310845297391924731845898794387641244800855994931375702533112759656427636909310002466357462744239893911531014551355709116271605034375878819068877192193641895840178112976262457360882808462156686892680144593837561170352382076783326637064772330624070685988427320843775271107669156467340266070161294292952709318700182611006563978002516879617214939867099239606674470130098778625898007841888738377017762374386678938366314351768363179519981803279788916756443128016542886910117677556827149031857356118620927662066421756586799222953115526568753869528940131014081705499418688007968726869889909130814706837400031410352769699985486587784968693263119924404483883617986396687264718561882105092355734353954878589541764075297254249556820615678386643670061064741379521321151157335030270281850913443778609844065793183439724436045288824401423001292585634708541525655593804372714019678678052084632020732542377718613244142658968522270190762942825212683245500525392514118572292960525840049226414891138519869236787202826214505569386063179900015122567846273631623134663366117570794884334003657798170021770032861980991903366000044843717604366127096743773519361368983533096980504771699458338401570545788867432460324186864377001360514914506317913042549520668961676183387426579532317091688178432680783616958916835526372171709716611891849737781664899501119615579127829265904775381897360177450296165438367221540573167267180590940170224495625565599320551278967707882455847889007053882047252744037023217093009494402528664114503513782017329797636382210233526356790015579387474611385060014357836202940071114866970235103545569470864932941865859528294847626386154118522323978252501597007060924308873251305644309048977585345230147593992650819406025315222317958875169592792524785918857156477824203519300484835877134955710203853481025387347154764974955690579633089755193647389624054758032959338733829361927221604451401389281749477072083913977112895265653480998698054774637829301312616264013660616544904492483309515641146936287345384509822950335350656832108789925876215439903944779474105029196606747368414924392073697177747835009329446797267694824329174497134690035447557778845702997346143265754589467144579218524393605319028785040880403708118983890453043335346962134607352778536856030966543790951326775205539117294401146688322292477487031790528071696367630094873683333247695104046216501480449063947502499703292724830664136402139259242781623447674978098078901987698861483738904714934865522379347147977519805451033431127008224898528045431395893163932757290686308498954802729833632841774000582214480158509322537086352207611798106134161658990735643150315124283861818440027662905448362782413686568338747284765505387150879302798974144453540917082242232463168834598700825379602628322849899616044111132202445836191775115947707485741047340330457255101016939613472714531708896926525616529126681551712874576236765586761272470290053780286504172867870474016500160242617721857361266123215846756933138368486317170062702557589279584066470602547468962489486581195042778175465180473510594292512323725531202375386526852761267317838752840879869025896629307907891454319151059862821335512963713195397821054470154517134124150515572486573799470140194559975057460853113706784549854851887563371338560621189132600964150929929347464848231627470091607343235217112393193425856169675626046089830593412221043247379105892371327815913131596756190763114404505676646786630837179585227603771300921504858599380135939161730019363944347218477270465800871595145263684356107780616231010449317863777258865450561210458686846521435405553625902696432258205475937684942428256698851738914894992503478577790372749318611559453883907285197263615924165133581318233366080698638957331539598283878075213292710886750100700885362564658632908972778319395619357461099752572034473210262823650425843772254977725246643824966791042519127339924023043570238792573779638199336674221956398287181993571524213424537345093845396885737862267923585377911316127586083990257277362513184651678877796462055737612513435684146326281289025172218710787486128204940974923941155618955951579211797377322169475539017073559834517504459440843839919733280043128920253280729808864580992118036403691063684985631885530375628307360746835950992336668516120902564215496662403767918589054094189280564956875387405401907206169051595675556468086931120470669095925921381128219422169262457265276332860664313435414609419553849913547588958784440061524374035803340609347102867183319761006804813219003419754220225462251830550222040894674845170336261392999174893566000277538959222756080035842513555284272805872395174757153200729536745053027649283294479880484631844147753033563092985885643061607960110069379235366943199753249925419194315947398754216262925550550583796866384278633612735183650840605830731001609070897308632496631058522072603479605731342552904157047463072326606186856454459613094763114839529630677815120406501455521879247840946171745241192738096884980846052499373643215289846850683518296002882564552643208021911907536852000480682934720172804256196869071245815164467142657275257949736275465476884161011510168828317094019980033108219996472845127194679344452308742862234206006152706479014519838169796814930021436231043324519491368179298904941223635732567128064122344301058556198111951288945732461637847728566105990001571657055615535237169348718396977605705374679502075378669481280322485878828314408550231220337965460709462812024175147450978953578747535846953297968145080615339647782147561441291059877997922378112039508260312393766023154791427920911676958949466499482865219601953421166220206907675367033661095921014941200018690053507406951548744784278608125140245283380169167020826375259980626722441585531640709093437130425699699364773692388723962047587829896823901778759053586688930457203568623123857232601595175582102125575570624075403160589405477061020015086222918073321716479081121968398725320107854848806819909222327077483237556511361489417057082569425937320365119471142381076087988778660526364925428915885847590776694423072352135430959975489132695036734168229594347882604375320223512543086968986180523271461018918098791868945635228307164006355312818039825474840073902735515770705701987027802067009117372194279162403201018635321594454618845430133434245700205771957723539523319945325731880419126898663941382152679701810921151522901248734081739981169235428685353281345365410849246915165242723608994703049486602153345662299351625678233696789555479424437206660193451339192530061940946885866494817501912118980341754065775601424109011402219726104309831555492986885203841888144530418263632464303678721745375032815755070378159443332385932617782111776669928501728059104011803672626256765303411749929743846658428799919104141239110891769820578564267881693503148545226589765657639936876811371329383418037772957548584733902004335616658378358224611934501873545685082794623150564542331888692876646410260524129174975108571143175772888618860921912402689468387099779675572306405156291809394333146365613417982278633954962147836230633926589878810169018905867665290533145461906283520139471256074996364986120982185038581316317106162863923483602696292071881372174295181513735628163239744458246662636725343877394624234240429769070443734950746923353350989237251275926534538640204446699641812798515316047368617538002501051416921766574771319060369777839292351588043475229740789622202155904122323253265312699168152978095322589119180281409787120501226870401030856128033997082347430628554946416804834027234089596396538369950356033901563897599272922364407385249642420197761834533460331674873965995827347144007644137904606245032451090459458976649113953866170825420020692404814403881400382637625787830249242341587931995371152912246419052905326999124361146154380817418806143116546468008867787131348200283635186903718198729674290839256754803216165569784862967148752883590404734453405348239747874001391161730665443139700648500605111547169879435771770546770547578460935387427658073412101616793014605800849122939434153131403466641857206072182638859242276066131653264328960183096616583471361015586642507855469527407251782023494058579029349283678780858495032852223156434721317452988739587236913154925367186375128653538290472806930914872285919282395630692028308750659882018826053839481348349783182268293347143806365702526616923739051401214804525345806233867403225995576620419641903447847223459694491433306850158896176067304176505965231485392883602609650707974762662056033952578144396773888793064396174744953834712346815558544734521881686477452343820416393415909115659361569459392319664092579597333768201397857785172165114059422347252418110454857803804130526495838437973987843301506895862776448211178014771041966680414825471617909660286348534581765786054605646263351658161637425186171771936258788131102889238480438951847920340423277492218173996487654001235206106517476422624627045302149792658413702001011428503763441242307254865037820497691494292191428022663975022940347429302892959839294674321530496786943731410486185664369558643212757673673686173373449297336176668071528108266848033883771983436122852288389682578312957213232512192112620208281975359501509381212179814553491563886048117024256577772163761573517177748893934999000979697959495475880325005411975094132303371363888360526379627384618730731110524054729444547599191358531919545168283036227362246142851160290026545119352683394499458650421816512887770722916717085029304543342645362076020354965803273191688875302392226708092244761729442670982007527800338984361245035547710611655186548641933096371421200269120589332018502589925069284150440562933704114165564049936282271309492782800253724797598429496183940019127671160857602926379222999165736621175467317951529407027216787106034786306925370664420048002442946731991038214780770943447355179781414258505479552279432611496170254331917893613862135187053476626278150742225951038462932647566102570389267064513899589555559044787455302932553630317147569763339623761629067173507791905891036688672883338086186125239368888725665966018959722269886490113874626379081509129630153049786711892002899111133731334847343647460952310352184494017835369786581631948499489102936438575110063764915696016672106927871309019202503349114196875455813897408432000360922796705320749893967099702912916547567295810972354984647485522589639442297932580839995728108780940754276386795071872879962895012374044614620614797800840601416194930518577591082241949906555541727864897678379029329554333392295939266785550564471444924899649933485854445910940379519089738612728173241761881976377665503030319796717256993187871926473509090489368197378624783197634710192279338664635646104014444846941485042833942249827998751335432127182666446379568488315437917663054256831525225465609543744918327139107271517761620982789843641854768586621802818281434661413036995179389600016447554349423683593222266067875016389933652693138668169562648654733960565827668819821247306688939254762709514151105208078938797989566032167365074122699352116873965773456616542429549334184685996706628517194375037544880718279913839635775469837517017904266354644347573068196718943885434805075137111664790007403738541656179596603206638318397124104930666322422497947547213834036227458731243098540499049228099908609724185205221591692632964849292534454928642280364505218451506010453453767229867106142307694637861261609809510191238187620410261931987603615332606285957077617723221706765539560806889177808209601198290090699139449202554771962232095860238200196116963766366786484059504896870852573735629623474113359783348164834673318541061951524785318591544303524807120943845341063805385522711753425644386494326976225979675977133967833727227656465895746444646490112547793230356844731204812660938802360009288826564041120526683260285307826189230846654514460248902403691792128677522964909572383119384537103964167303769848443441890316602365315648159867558928769734902110860135689029257053268373455855526280361107094812216038606118706057195016799374096166850394457653884544061933113149819420288589905843294487168731290240207196427127083876965328749098079992313222893026006331544949582774434990367132300100688529601093041397123447010642444485433009381254538036103497343536439070873589946993786695401002446601063126635294043353036231174579964018714838256103288112968669249337004006157330917539804445114818677768800861099359504578705218510922811793733213085366592378225028281255675130513162046429036059496490479842979738865455702603468110079462146188260417368907325929263111767789995975689033735951607719180785963409130906366405190618716185545847064838849425930581745077376835157059380283320452408078429543345860420161359059604112830355825163829117943752902414091198067703764135762738005886874494228098073800004210201401743394928714069920032665384320112444863384802767360218990624635390339350789124346959831679189846944598115049350739493991415139960218888213375995518304484092478754640415853048017899296440614527818627936494547612552040924265516756069568777392689210946256373652529277807841207915018140447706043393923657824243104306626854641364073951565532925021382045972938268525292710326472096033025933007014911852663925060245902958243086969201307533639609312954377427218264934003951547170976491961840127115229117180710011599008445598566529799523613091544540415209564957526080218514196252722757866697706583271247332477162712639483208215799172805718458535223873971195576578937051510600272282147547204508325697171679818645027783004489800770697672727910827797336536465824677263674016974370294264079662226504834832813006690009793636840387595508014323333158001739098630273792060270457384671739839346343800871254570261988007188423208817728080636158197459596280799409415467141211279798501429280012361838785318420907805435106241725881542622338573099777861942971255520104038635352182325484973348966994806949349148668141804068313276861646686858177518043552402060126473301368920767422802382025466891273483144606283193247095805077302270839737169187245777259882455168056390841867348567864836554758579937163775328920446137350172466905639162078318382870219885097101716369508595140371865213340333573491522876427395710741785164162060526499924485438780838163751440210189500330554425288061522990207451331582134836353914389607916018692122108212819342226432682405466060961651232183592865479010854685746975029850676697975002614956697026230532265876206069289965825193592687789221592976897430796576153855813145474598391082865119328037949216836664338937884912444942679155107664509961153231081456354151188178040276080434036564706552240415804607637430289924277201970731240844530970804432814552607216319157192079816337997701760115038292463481429343238946105745433082029014522506898834807161107701364544573782471178377234904964483200125468956226995970914658030478057720853877964135082351089366047070197504354676043890389239975006780032653715821563089315240333245717442887657459394490272538504561825521912196373018132423426973227184696099091705013973884796288540428440567989111514902603034314322522087678768945479726062876356362307044691680965648877654635684587783361793978823984160818396317348933240914049285508903149850452250122549196233879180699441517085961897787060248754261224936085170896247333612316894577845868442877006504908186864599909529231732124702088552183693243747049786484910066934619585765433716321679983967318956684974293931591286713029393937598624249676112770834207363253204263914473663790071612978476654736707512932906564441747887379485543376874644885095332731522230782839319245720729556368670660916774724759181806923545893003881278769887147742797123750569187680969681601905869307652680347114870266328591350131212544387252051552504686203403466344114313608897087506372934163055125189186601678461449671005870880625868962551598520294071424443329089240824364634654466058303797732773914761472349734985731294899573607818049112636495964639151309182510501274332957372955793007488680568314469240960307046861826533584548898067363050550852747908984813427860565747737107025167728881455788571271143203773239283119670191491076834895209058232560087323263973804769147504409929982180957910572703289503379586515502415599854838633717749343825603970311273239040840029830572984864907721316495398301184279833752892306005833566650835530996525838543506392758550654913533148535971767240434463073974830884661738124969405494393736953899821160243891299914315418435132004445558928924539105558719206266043087830342886687222084689378633020821572039581257975330802157812015906769326560425756882827494377537775669328321440512570456526453183691119063252845801098777366881274379484146021872634883698263610840970602350220570410303369815832080179356952802668003106770754682911258033691589607638925545532726299537189907560856942474434872754691990857259509598656837860716150260341996359087703433657666118221237102353582414356593888473750142728351267589315610639205616346270235142534404532559227419107281005391590728780687286148631388989730497508428277418871912060301235997500136853581676098539610010878884046035665302039975441259876170711421483398257002276001233107900742871882818467217270515034857730331467843016600522719648962373076816034360040739457608699528570914981161124585239800823296460165233144135390669807862213446239584427225924813956645080192173695138992006568930695354334607158261853274901394472862370459077807564994864921637282029012579901035963061875554714440775324204547996303242250945342913828512545331694771898865370454267380343945282738973821641717780720779426209813554416924992536833434961433688441055401549831351345046423107329482300253077195727128745090624532080992921481983430656765192773009917197858128470083823321286394205896473220221701331967851092182731175143592128486744373702113340879226794026355338043339662675064256652717798880355327154125856136767673580789579708003392695008087602364325062608308754639998651287254162185675403651431647200867243489798532735124960137133220442284140963681386169155584076699586966077248274494577644812864496941460990086500963675199638499055162493032076987677560063009203224739078487633118335930519747129689901581922098823532944217422385016794047068591106084889056043416791915219308400738983858753797443244699096153739894757334862916059869031622942460126876378395604795797682300054696026554274986274089272780453247667639394600969790212210255143533582993537516028677142440008138302236196266876419812317350580283012623189976096252699541630317415798989443107541220145863545551313201202093645978181804868671724635023440726202132759396320364192810479116453880504570650669339249137059564235323507538191236617308174160936349520527977637986704238545508086869765414173998014635309708739136601318189609871945429196995224404773617048568482009111738078518784214037911660348140486161417117961255268238437848671982302905608819492446314360837565566581456601466611562638948518988344603909318888867169547750701935526053639704851219269979735145533242397818946966627565287528769066268670348240670376608155446063558945425500558369728146314313796326955485850577681938773458373218795176895478004972956253472145737172516558874127418837982072252999918803037961423728152398781652333554992161878590951687462228739973914558509255104168595217170686325832355685834599249949811287843448449870404006249316389718068510423450686466232250848178295593816715180563283366681942089961539731317226591390905815702320143409924065043963183923943399841277741269250689909654131338060959066133243998172098142276099346592881007585640425089908470352248678607428104561239419507125270808036538363873629935980445198468262464863975421037622322099388350374170770663282867016041763726528755975697124492620502288290743656707086389524230420675125427474161878862081151049700248560410983487399320487232492929434845099106741313051007917346177759539048460747249074694031350961289041059093088903997355539207929617301448199332051048171378994391006165154985152810377718713163465573173900706095559330080127062089413194740344717028657865025316004179783041756468849926676147932758006801099317399704936953061854173667665894255478344826154819325194446226853487829512418215799552081972432023648346960167180530299165639234470705678127606490298414188709521980333739747559587871028025540219703108500638377203287320200506721828503098615307649229494665221122269800414487603793622392826447358293237299899157360501805295724719549271933083475895410263526617064398290550742986270713731029374294295592391712476218739991569090146647983694362103544948404368297833032977322495055523604992833290585086792072280099534188193620877010691842916594210580294715497462513058149422847426353143790965996904757791207337152688333602851202388645903057037614548285714258940231764119329234250897232155959486929033480949238758770344375942566214484416656378886011583335566717284357821014382094786059904561820884029056955156561477392423044141178305036212377911247041921471496961942385351247847063443837187486099445940512900370312594846576458112015180768551321320411163952182107049235527951055976124177620697358917673910477250337054438458386050899715180967254140421338210576840829872563449645177067425391686175089233686054358517145074321731910904523303264744802945230427683758609194915865613207332647688537655797372312873663877924274328684874282086552910907632507793968801180929325510632015475819440316958649525056863505877963242693246383100808054863722746445058513390274938667284727639519829865563577198240348840328446016253036179608646015851288288081234608592891158449114072029935605881918927088154109301797322933575976335833237600039557755452203038383561858237758915290607959471095605131346714737651768383943639431887857244986497740095944178679278248476455047612334878470657270126383931493584225500203647741023420235791493534742492082534404860362897881098110359542287506820684100709741671750932320223973852206501092783278593839233155013813293200503222565932710623164290890391703158463775288995707463117284379131530162464160951043903780489720300847450980215038308960664849832468519936906378052839051069615505598112092106698804567064500851202165991767505134400709625298177595716905206439485864744948805359519150568388580623768645493182004860101876343874955522533242803776305278319561806034374629032929163454136786810876650404044679768935301901273182382968264313129082712542019297494705843759958032945173678287820879718993883324831137733131675731378571326231481028808011491538121749511677688865161201904182773387918218518768031304213529302392313632286338753348052325254628343382196123708173666840155919701745481746194438402631389480554725906600842623176114956763570451650492474990498478838081279181559419378912520920629271039494515903016505099940359277908846482466918484184691956623057395732621757188484146057236988627723319609865470302551173656596313860318570134828486385436319925540151094645490906079462366710608661427099068998756473570024344605806871681893177430305938570737552295761254798517371080384990362123185816702667731871622347212583955968290640736633914187619625385940039200193971994225318740036952988677713840542148370935828422188660239056560282568665181562447643049435712198512439142832184017477123128968743647646711842397331071701013310059268413131921672908811959389979243064967380807941587291420845936370040755939975361570482324518383110173725692258185882790376497651988465600020249590440779253220802403539907282197215677820102390038846586364755923200795508220740735245675836159718786854780273782598093428941335873664290443729933496414896611364628341804230266033037686896398851754843428530689004871211962318265734237690067458052334631222404153479790550707595943100080222946469095749715933373503756472045499415505325966192678502644232074662718752042624381167606230837008466270830196327596219548811154929633495192015909695523347841175208099306333126303451549888452026526014251246599529885496142211499982207811944012668851467851398167754688205433873618123977835515240156755910812219188304336513132798189173867593662356105291084892675947513514256247628938646873703854525050843429528012636196891995738499129493638445327196429675516823765939634810554117122744864923608690412063175554351310879337104625490227686246676794451715553117344019731177470180481902987240332067213680152628515128336201879803698589865949767491714584104499561211849293962241506963934804328948957085105001539718797970483299623104615475714849802939009437239768203863094050257714620011769576720459188911749538769659419134833600037596278066263793080129174557727467665056458707254135365044724641712833938735873874888521419110851247478542560049148144490670450438668717400140726899098428273745228592170392155320772978667734100607237361289115640680642157901587070369995122962552230395877354060530824054981864623353080444764541353451727393739130420282880794193549886796015255431918325450424218899973314656195676887638707364677395322479201654595391975557978625688827643375060327765202547668640475535701837798151115919710724446325545335093041332303232436491092538764526524343445717535066122939182560980723757140395673035388205829765332580787485804321040339774836628079734309567427284038748598145648034504273543515668798584925351609972585164552157328683973607165668807037362983980524342063766374836004451798722518362023339699401144887603481360631490933539776246197185859903015168936373512249576741408834425541510126549731744813915457867538064712024020492327898943614160016135423402592096525336901674523901784169767333543969002791918243989597200329079646598214119632157822733993404254178172636656542128825879547232118285602703426296494518635176418083445633230374834552875552000844923044367295575502681468970643014341773540032151453105383039922590189510639832066180562979688520128039102964004292107883658471609269741463732919148399035952441176419938785849339486831416090074720874552730031306887195201438717222761360362084478715036072338657763455699226092554224647058912599190661832220221976294626092245899561580497274625377273719715614420765847325344470058371306166041711343274008318996764196608799146009607786009624878567003875340369610900805303716768414239954583841340155416122776416167384897073857136986009269399732812184786091935083154326306372513526745425885306985787919094365148068114847808865737460375970737462897347316227050237820912592269361394600406749377781918791560264016776666864715456502075296535427989314905824446948884001366654005785440785952801040911189203057490436176113891008776851560721918665427377538697806468353498770744374022208079872161217527589786488220342234767100621894561193317265197601644479160470013875395661800813519285289689421266983967990938131294451348433781419566889312181274680574886917907813580692119685040362976716017458419680413937317833298792784192419281621807569885407702263879199559260836599652597581619622412405848395496989690201153074232795403246269402276067127669727996379899245152925984091994450847935814919718779187127321348502632163998891778041651095696399750350175143450863443180620741559580529535855473046213458278916320599480099105928328379683730173000839029752178834196983734438895257602028204592784515421266924254890876575208088176067909517573728586522395583019788331693877979969478454744852188203168129772780976805223760334709621995874825486492664083929760983147833078877448669408521988326150775034668423800808571654029323506602750904303345528518854348233774925943697896602123093912710162722956161608293912896785599535701869455844258904433217397224291156461616971619766139368436552095449680385709129422531118064412461459710686470891975992839169916293105139673026818925908673159579494056058588191980608034070444368552230820344975159977233285849997563206342589142184098035341383813742265161731813636464710531442616385329101309241066844357540449130552487835343605717190633830025521043913466798314445163856850634235447769518099571705008758279192207924979151777824454310823828644658997519497184119470543556416091694438761123066724362410520349559086458273603183931791274727177586250058691363440612891376338278264443064688492278197654532134409679970950651912111693395488604228673438421052082037571481531007631635766485458246090630860862160713361759707529074538120959940540310752479560863270380213334037420543879048105698890209600994432855868064181952026066320214043194495581255790474871023422575172144238138780878654496500630221412210695526871324287196508405097430560181123454966810767313123712472729161989643434573187978342625149287609087721016035004621444781576682736079499501350225653051264120765511505965364095765164487819434301362567527016759536674995788213815075749745028344043895190560921469068921425483242128188622547564889842415549568082153346392435570179209696796832292734995016320700021778738884776010553476631797400586905404737925127091730270991808991785552857154976863091176299277154354684494024907197437616303692741948476191879077056025156937562499352764286268659974260358022081159447271190414730793383486721161783265087179119152409311055297537551764652876962411558817685090823872771354244110191382641889122244220880463702388526300917575946179899206961028019505261223025766059541091997701415312076039195290752563565212765476471616287703748091522547305510464160077476008628445972125225318430939674412284062454143552305491404519182003894206829559885983693231214250006763572704460060861565700646373744635728038213322731565636478760414682305727290072913262944474844249314912069741807226262984386819073759923004029686986406930840620438700028133161416593568258795450937284443043464297717345622981410586275093065744365285539295171406060111499929660845266413306867236977634326221590092319645408553280016271281125631971969297070494223597423831172676099257656175945330598771929865442532671417043924488191460369269350065751672078014535063524572077130937344277191955646882033826174828142286387697296547922017979666630924297537061876581650189751186045381768713750533458042141037949733112691781652196798820028498623171748603506107505824551619679125026611344289164327331606019338354061878938410057875741550122030520598035221916583814010564389690050493096899540552139657771759639110824636606103161630684991110882547924414162719593325680223470556220654491009449922265313844966986474993054871536529362931952626334504459366152512156481004938358063954205753921800534187991181348815382325951526288212563323366784273207381670528406148047021228257596570337539075362080334834652901248002351867308702074269424001149927106414682360238734110993167207973772624148795067822619148760613962240494000797876063645404619621884361756556582667817737879155399604430143975521914545562613141541461246979234933605194491747308111084199827691186910675325497593816199707454491052264826311722960259877313162129057762816415135878357582823622245343642057684395283445219543675806500536155882576204562952476442802542804453846315497164040392870613287776270657662670937154065914994657584931217959149216490995542345249953415652098970751345891851954711557555797124852388883165518771184490240995701705101889824761039217657697145655459591356700010480542912890354374982282727170860756386326950564724060856586797400660989632139519153982862428759111786747425377530794640704654908174032495844839137375003805172315346882412530031462252353121504511133884308830194911691824842167292999224021276785648450002456026456631855258770305587475093076134362204547764161935870248743216334167094654360350949708885625256128429083454567443355700304090314351389812455444099866849709313737161668323526885762317093241001536292298946783247827240880613119209507498864477836333378738619391224194802770248565495009327802300557471939243353655197379673763961245705721009408974209405902026215551481834618865657286522344878479551976447182876263972752933524076055592679145147735600058723630273937599922580031026565379584134661491842891348838507837914856979591750405109117191126541816732916376794774828867862819845955199776238020695066527413800469364377645701850993462656420602126369430284451103692900336525299263679382326440439987794062345041174513571821627683242870501430447089766235157057071162436037204312186789054233940569388607631299205992183623152455174801499950932020560029193856164335387942489348027711526694769099849570132176146371941522821368106533049718951628646743243221991705577205763615409103754386352737111850495574698606929867659818613453235619539809155289754226706430776557415796901563613544012178309500984077449745529676545395329328263545968404418895313310018262185047656198930180896018149718168735134785521431134287860669205081747079999688278751117603092323504454502883902218526421486287339731964811295349141272698372603905862111377813172446664553349323275736054142460238071422842189490095295678956482918037432408326696061905292936085724039478218759854891602291170130472929779783099466253829361029434971560920819703203140658907296399429692959922326579077234280685785014524896968596844422426457336524912572193247192954727858258782049243633380507212188251591503241435227292160520424698869325341341594209010473968237202216124582111367606275114835244923686666419224678166007283085518146705924634605814505068738909872334438221959783485576520279987485498943690685102639923112652139342384399717938968355031515658886393995708779487444081001203341243812718660508072709375452244234144427206289429504268841898358079694452868831027601274798173243507221405298091522591084027220898102384232899987412594217829251489700755433858548518447715283112576411189726130913439522892345646691722451728155706680003221519250640339403119262787838200575306093086057004983183076676753209406476609410327295826015315726286638888865473558712304369647033785243956490315128427481687577278650589759455411753120607432435780827989166625584803159109775121923422454342037182321129670783802712896260174444600505301079488968092664206971719383073819248847840329109610116945167554053405096018688671604494930276600038135486199929660885591599914273352576104109692067695212780477002803254859788193920586392332262146159627356027020766587194251263880835889800572449341258254259547183104959928093305486761662185073452140294206448305483941060328969230074785252780511288187861602400693746852391569087774043824404404282543088075542801043088970631601222557904493346430214630154877434248009519643766026639444949582279629759591822868585025864151741737351837872530663726309376023267205531349516169009487339779848422482162464036434120268856607611898772966354164776689388532104987222872659801612074591697544327621992665954242198272364054261841783627175830487053529079905425253650550541698706027801183286214382740097782978976147952958015209401856912861505487010193367270517531403901256178156051793220854353090058131696634914383956340160077896366349243384231079203186777607574916055050566132194236089235579576291358360796599525558000580937384166705063183104921919937788261567908809575221439736581605620619952596374797420622276928218584916322082867185865952869897186207220808547560003259417273058105507902656325785869546984172931663959024299607391804514741925015180239397628162176182950794476196346436362334556986885744712816188893972071769125717448529171313975945678242395936250878940900242421862004884833200852190187608799486583460789324891934833954652550110318013220932919767385940551450803741526301191865766867541243380612715846305464943503133379577276192261902565234192508174283429472868473461127986490623353890634624033606269127197697615906315700267407210144856719584973936803482002918451823062832967383120111618337980722951104474444422174452033230972398778450376504753147167649788420342598168990905883695620627951174619285195816068562369328097372782562157971947876365732948847003867273770911744825341029821323459523687518864481449226322805847595531163655004566230795986615347550345721480173624581567437891583328419875879144556754803268459483298575260044674996255228928075473092494447644129085056217236901793355186432631102042598733304694922733084584525381794154810479697742471937303455275254005937504541220763463298787741491260622032104160746989576935281420740112349363543523721783724269196454152640698111670929511475806562898569119746647547932591271913246250333317383205590517127971300456968134781625353299558887240346102103127516758947309537219515618340176016185525428546304120095899915510934858847581167884745458034202668880724858681004897870227035736816407605979066916622102933172928884573036585732563194275307897334619945420890600146656345735249563327723419213144194626009863589926809790446313830985335996271546070706171086226274953280734416012576583968660943523193902560485934576629022018473857521224080067887336426043124894398856928625175881410973157362122452129439435814656088970156231012628203447966242606820056872265591175413993165848317188901602201065714565229158742816921737099758594658299513472540163235783071597033353628151409080534017867149709622795634687728756216927883806870556407183033211155677539310688252649232766582913276044330519692778375019591488176023626659594450063815223303643095126459770525041720657725752187823352858493326478929636115013769705830934996850682883385894424995692968662773719707023318068974412313893105863727481654659040063355137144534433630736418566829262693940186497347307135149045099966069382727015729471458463349767199373608586749700053049154742413293023055310845573727732762415683100171856681431514366628872626411528116554393653206234298132282663421695087158437293080822248110902652385273123432168656135538386303711874838245818081725233660185038501882638283621522760461273686134293094635843255315396287216869092229929959445659025857682113802341377282809841236146130086367404620629934077542519807750268376330323280869016032709552429578674173662099648831532780329900897669856451267592432491123277443014721396312292422560407197129804338973862534072295306334071901038064211502995764238829859412990431310948947510408051966486283252388874507431747942187535232225608445864519965563032447080505305616302729211936425013861204773332224149461502143452414477242587504965636569141281029071342623133793919299672331769650507025342061991987132250067313258261769683145125622971300512676444141532594161179309704073289875172741646476665022420561301202116539047632619187206652836765179630353115329274444603835234638066940491877781892116155143559380835655681836896041714652145360902468412497886085234948374074405014026932509615729078816689050173798537085418265847271861198931553862370394658924924611057960966291802547136561990075672998516934472690756874490167409565864023875279757898580329255512625901327886426365806365894579431361164592205032260518339951343702100119673356509817797729832921597530980118402958986529265027840448644668469495491316155648022175971817716455764967566505261771750666544894355508704096554858431312349125543668399103903192228516503093218273066702059903980638528081682054965219407707126313458824829341592552641706490044412273637776975760407780143838141999285096256162584981628437755182654187319975858052513268035249415399301708177124185743155671433898680713100106971800649854467807490175947796786505921434426117690885428181612908317940685897649374134694645599624650824404379206335050359847511803867630878569902430061394329102787948059210650344492012985201456048191315633885660761263205566036987363030842813209883562414517326689469809118989851703776387812439223851958060955617265784492786491618471923746843252708643990606670118766817046652572911661865591775101318187504688002740179196818460127986047872202842549856929156790729502002656697395321325584635649954851340593090066575206825442203531085387880230707380551460218815171708592196249685200941423025501424200770737923628722328171585875993876784636351909570736831595943475444081859402194372442171596566323144086643744467126993985471771518877441531538915202125053749349208225928975983729532841271475965616545965834956779818382895349135217337849506933009195178984641538846668656978392569551479829434007393495989793268979659248428268691315300027358326678645669839545664978357588428355660603004716707494196424385971357856292616581498995377494550915513968697632946624173298721245047213817374886250251856226141927255205614669909241366968368421775189963639549474393474517655476933951395403733012958341884403888061828114721759836653560579985956005068321988476987169522649125189689470151519166716781705033074863795134250999591741457771278898266214597722329658812555502657197290341158220149354124249847749678262459534700095312554661040549019618894366400157031022528557910821384552797189177262602320783773398087185842334662992143586708016719618207279641579601720655894535390677997090726642874486174696056895239295480475492048170353431534443144054505854733175431729203694335846640191231774736432834904606277154120416070102291091241487325410655107791072413190029181049380785313766401428379189318759623569860321895735160310564864563100329553888143804655229863984155422209471241288075941878982233698904646661439170596986387364731493846783618267550347137582188438622484158374049746380234378952846495958008992858890334688118109059374558531932493991886427982310532044283164748352710142721593040327499982501837933568557778608142459030624407629063866116283927578330465250419726369121468713304823042448255952379650706597602394791044400992178000521835469506348781122061618441453793880281703642163126741404734781372483454279578748381190192352785510862468243416065804822888032965825484537867758996129565177184971679778582667874645768055690345371971113549218018717996293167666196239376643622188416818423483629030736291803049972407433919442038923081542042116616697662716141631708239163137089375599552139474468089477275342583674668769570136293292261052528186203673903900546304421870302939285450752810253273092073308728888887579822529798427502205759291371288826629232498894675279334234213666015098455556311177136214192760081563077890601996690743798853901183863837745284937085279788532924073330104208485305129159716960137119519650006051060400513054175029010861854844308187183369937301753606212814984350686091950436231053889077074066138925660964061485888454200784069874644023161887354636864005521663140059760548569566042888044811489248040424954233316818363147080680891935390781877461499997512413716568415978734096560010339637430634601910742961446817812901308237366688006823980928246249772724796178502066302122524214631172743672934979761623436417230720623704631403329073723252512742058336947534916873183213585462326292660273105814591784718693876141219080321803100455780623967313540838491645670337020200419893867189471291425474009994170153750374078191867868651639376258111072040595290808494593199727031659172582988955049863256499786841502595820887629256047839506452168064918949531358550723923229786962989367113208113242091114061459266125595550127200775824480287433546322661471377062420041094456543255177719463926826308443341394151086459795797686916387882742895030130176793292740219411044029692205403330897819456820948826551254879783770497347403872630763437032963591052246140313900080698889743245075339525197287211809903270430580520754914609436334857439859497182773258219037035397817752099904564977552166087875957071134891540714863419209261355737997631191394853531334896873343132863011567893362332126965010389848521115915564667192284430868567180253662519763416487630379209848502380668129536275885320170252926467274955768332290558163727456566383835061930639303772906065312554204388197593282036746450489832561842041272931109161890634656850897268337254845997987151261226661848496426832828998568205643329500740505743186771711061550029824884154178937370754397484581455306550699896605113737570510671578801378711280453755036414250619123814662531582909823057124807934818051357338693883100547414698104297919801227110318845794055739891866984753934371363940123814827033399001550917839024362804293308527823606601672716222509381540602466302876432906102564608728748147040681445924899423705285642195986396288447600468484726109646783274712505644709281623449474400515604619553178082059525069763947648495370318632529862984392651013017677757287420861997719748210127499688995646328643175078690628146600417589090387644070973467210253036747779498450111232413695774567971086280911473732051190863272049324297440170136035663695815946205087045925179279351097429640820653632553050040334145650497317477376499952424720099417524143523651233947899075915136931715983724442801915776071069697360391459376287474817820797301443930185714591531008864638574056608323447372582998354730686912088967462594712032648594752633008842187878595948788194337786905730843186762176163730014724539653697742839436750601684486452118441936925456348068737270831066998305485240204026933110261529261321155595963171874951794999351194200642316132208702422756672014597514367450725769573217546177677040522262893566212286727999761933000530253451834307596993420885666551472842474295589622580318202140695735208236182970503097618585750470044629371418754913012038745749652246854563764124456537667275256692503404625394788785344644861914724629156945810255969545803434032152856427369747981459769853580585311272175580874100374582693023989956899732171599098610490176505298850152333647499597639440194858562555790337807113530131800206403433485851552041568201943055874237157403573998158123729365622967366808035220714812323242087391984717436134232509254669193668858834302282071968163892216330139257759154759032156156181979410188115421264214465728522060727190332712636562375200026286745378710798597207867678394298730258797855085227416108721093689081631043377818277953849352689842667123910427617674570742956228876463211790095450136213628464240137036820922759367293274507597961738473520094523262708562906585826582574703846093426107343455945688950146665250550625276800337126064038274261950866180908458298403809310210667893787672889213530005663850803896639676674150697720291238826782549343877982625223640412064410751893138452130175183924725584414540056571409483985005962107037483288256157984676387556305181108572745965924500081787645826530452332389182803626616977945052567392824620331453762535758561342280691465914248489036024727479860480110567765761463144937006317090969164088550431527546266854744223576071354824658880801709342320601708407479248821300286900374514955860286275681725066015299306830315420377723133979881937737809072326577220168447898589338250367032591119102016049893284987417881794307818962037770960864609791311286567554997850259874956141435735955450732535653908906804685880494928261084353461543119623988975444441388066425370623228307067420815304483619416576843085615057276912626134611528525136483980532732161188451075357219003454537992374234253731798902653109461972218063882214137040541232653577835346755545233489383026939133483232328868986345072673417416313052374206399866809790217820448099360266241431962886762974562232763858830540194387036278921013535373701694560397983762864216446244051881769165890982316892680130331939040951003546343967502563275401820162285404642210285927187261057494368186789738852820501854007313443613984611116725858924098175777659265370588484406933835483920126209348700379170378704344162749642930023119630359949291910827399727983245128484571381544523624129837769575580510971003459909860569338759933036501912005637494329149380524217602620201081984328931209501745970998595823402473671676317839073384239240964675087565069503987505848632088384946259649780695742907423138860104763756179443094294686274456577264996500578546766387171131718523268479633945131297349044225508215960537741924609236132096884023226226210095671498756068102487026462758330135620423669470580121053978947860062512499731460825481243689460518810344219916328648840888344382465594389112440645167145845559708710347613014108880496004319005229106092920105309283983329288963140004033798410841268928607609643261008069621600216679271171469256406607388815664158846561128301250056876538002037361194972796103084431429830489608081696663715944048238960969445376793281031721626626774537383811048126343674505228937405090373764631710755317444755846159449285362982792043808121201521753835280054441321203328661046851213386747339851774498723442279766351940934463998813677052800864045840785992700727438913384294268411496075126944550869571488036923693646884381720039946724029035229907198233875252071681343410737338127229657981810593332874532408154473921532627063644918762138044562396538314632788236565315600032283031960530882763161572471469233086332843716017757049531285974207378829379138331190079799030703339190412724673143220502873010148966706315719846445733083039204824610732045468914757026540105448519797169532856188485546738392303566564698336779155016426551756584837105314481115336509230397427478878789992240041860654988868320091265170138152134728058350502740785304252752147324361006059642986482054277275561938471699420973843027843381036175792172503473127866523491781770163500688382790808136751014913820955169615020460044080446617905276111852450563648772373756373668031029343697332713471669070804627775941733249753821422023206518400464129984694364179389533057803046284579937262869193468101044887448253812702985799229285478292175128842040066210186457118390523073877478987489853478310736680137155928057544562838748113051395135698068489703889368654568354742945887660132564449607433672763907722764475587047365039461017899350553712178385777384871636484711707555872861263749190131201780084747208855230546892272031398192404930632799719080995786569128770728153191626210078733138272280943946630564397508102279701151782861668735274974695235430842687790348049645972431336668389687201302189875214147777739999083242832890359668686314747064331489792683672953348030457024016021524059007529178856841639848223979583848574220781771657041014981555760986980269391615801668870796432398409026828639447705023379849999222404186507426484778681743811376197221247675653661776328109978844401347905697832375506719414006782107669028543186519812090936313174252101143828399167068938511009673906332931765004018265045441633637295794595105830398823969737898069723726343544373788277546795606930501236557594412073577266190474438819362938947370605647933767026602112508976316949517652062808606214557321620395954324538874418634623434675163167042057162766239616285237732287914717163506627827525169523966696034296306087786312549324569913177793991496513662888396833907879779090644881833831548184051633471918298811912849859854261305882503481594461298093549850700848762793104412218950922002121336861887236149076637054216305582756479423356372605474760530495005272151644924104534106720530218511087991235006640992656605284852948846674628302296291214131986859412849573122209716477232297700740713634790339879211358429355370068179477486526388583075291043223461169310394955926467771140998038009681238385711787961616029546321336343987045139234041769951243900748621094483911172796091407671997931886687333449731638736508089619085121756698018007430758511362836887453439554475557609865267349057581962553149364287957490844988033380097498313214999961207909159775871038743607569466102071763359475251976618935568042595698082202651417311138050698715083266162559571786617030349815102651743095101624609793378393949509159000249470833733616426999090989976205540107901915232830823216446814918318061850534014320093229421623588294848652271506264989753397642724879544200160474632737138321927405556588601728628779752231879578866112711301183323404059882109459470164393167545234482509967807907434881402498498533055620007163538030011867490220551960910084077451597639148371130190222224768268828580257386830199066341480428212561975827675768658342046533526698671914021245986970853899148840224862934445852074730789471619272299173711115211851083174245748889456393897962471775461164978929482520218225461110296265190528760946288377963596466359404641182037912796882767666629981635417420835965283009052309206617631531607423219013591511590540198680512096921977754391600868063912361481204633639165465327121021121915789309984051249809365864806329956857853282117666085006166861599314324815892180094628451862562715533681988467978005246714633255268406929715006105683133162386842650762393370366094737972123478438843423693145386736450165704343218311783590317508331225906265776320355673371566506528129622030607337438549314440821964718536301131461531988316730958797889979420917352018728748858673538240783044001742330895377287188763110838919491491317857788900456106395949055468839329425564544175573252642432794268763659277222142356262660640288522811921065296386110731114971610418819372050725634757551564842519332372454370677998558555637489206956598535886640708413521895999460635073596931313186370031487850134834733479324647947590490251387513609412324497429668125393583100209041814060335476304286343896995097628182769728021242593565061422103185153757210766559347499218173435193285340991572432377922737499859792690855794244540343462975726486100431379145005432937268725747538391896921234815990256772596423196223768553805221205724065314736291207765737319601697776921323368381476707890760157890754011664218886341083095721629976603167979858750451709985240108000501088604605571959203076168301668670885423215986596719426195389153821035632572558751442704608402595607903730366399329891630212817093905431780339165102340896383123240605864119648286061763381946502299003765206190040884084746838372606439614260779004584451037627606703678960537100831067611420669267518599965097386006099633502924589994064275399678376106861411803164319741165125566427803333595949535406010399857828754329424961295918369819115210293480303344892170185890149857445602106354227813811471588801570996724781853850384578637221153436791662357768964295471533758718646024376027861366755229777842469922773980084711094904176174244155394202723258517534692047470045987318877884385608381910136424581906843491798545845139135687923929398693540943877556798295779747800214808541676174808038837135625605050499541654183361705816416678779556247697848074485639775526566190642620383136964022386857927993618817784573739165432609067765147989132624377313092443668715815149079018896670412533880857640229969485677243322481192416819221156791612009088749648888377545553527016917040407365536473502985390890302898195929424982526880717361511419391035238698982236325143506713088328709667691968866987913716396840929303866032441522863897119349243151112772866036051878048078615739779558260150355008107816477667225918000436882120369126276561722072275500855881318248099984816574927837299848330505573078406493584812748310648198574203098432676740590963322423047534122027956812351870381092857291040600824006328136508898265602717385853564666808048092768870122808077063662175118208499471026172072109037308293660882310444384372019067052977442753221725351245004385543047105047697852162607323337492045224911350413306449649074752370012741919223106731789840048135522051822761215476735024464244049101242737894949675532009179050758051097029757730884188143632987560461018510922588083730923835370786063342219970608085942957275982767329576318651976720755371381317629542472464290085703429188220007041223144501569245154149865380784215908822668391899307187851291893526741293603208809171820137273907385571165592233203997463047111042710993666630400387283485085066203976784745470289127908157202987801266951392993419629333659994705491676701818225518714473641159495804308644810711026810779008572258999117522308819225884167121715410294523417868881095828250449916794799986122958483964044083268278826102273164929803383470663758151704926927998738302124792686570386641354933120542436849215027335714149880981515149151406142661965776128293282927885103082302807682818149534678441970404775927563509632497692676046178815333949018437405663273570367165320313117693153565165098835532971482564504913543577102884445833369649671232226175903160180633010400750320840315484142353078459916918835302971843620332571822047179024668953231262593445695112693701537740585182352044182146856511822744060091265995620698977433336955107393041279552824946546987631809143248953365838494552058987587145361670456245083330375500066794998239195030990068682188936587844265913686541369559309459461574849846072627865226765768676928881528139372908447184921451530632191984373107053511653061898891056921064834925971201395101628176840686610507446982113220777979683458948522970834914162398771174756351819228097170836193820017126061257699666368275755764791894177540834453478295767150705773361832849440873851598261105689821518825591365229042090891123328027070475957094903179421593471462904696450336863164394051842335830504418238219612581124009834356374920202342035936618695470818428457527787695528670224446500702583625615173606774105018390478757879341458452687973363979368835137525281601656068204088595199130721010701096280258830482585476989559090902495493963091858062825987951674042729004994391643128640279462054481447262196549927462353727044074644177383061691358649785880093426492825057172900906618497230090285667726568081205547081772074138621451694133830208002135224912679615841130437990775249175897721520754412388059383942708083928925443695008596014009032426368345343236219994392418794067190287836050136665091169189259134730790615858769524370789062992313504002852092935765844223650192997722498595338588871074690193072264194842086873696020237571384649700897625808278141977824898411733416927910844009143748041171892630322663324132667959186991133068389823110352737222974950947332540772708364485905010894365108329019276399767250739398439994118399614450716723947647267001396001226076976276805237294079842118892328910540201651551381531473491171996009462178819104599281110979645325290982806367511688685055592505552774078526721695715708733731521968555208567629216813317154856127448022649744625675491083569532807689728449894043448933873653367357997742364844481648462921006326823383116716577030140062724458896720885551857694996619338668028173217180476537942253938133582019515867090220699839588851002730495701908148478576241446519688786862019061983276821343674353595717545474411350919894001980713577699260549283506387452372566069629861839544924079438069100540370482121943934076376858811010021915923855458847612786166315521597135373936583382958636092380554471488187460122124006571980836952124991213293911505799985927744575223306439714355911015825379884644300316310606940189054112335214128473070698511188000086539944741211741610577885448134774270369974580372152671755980161718402316081893250595026174448675921836759165859841130820494114569422398130413153851364949182423127576254467456978954768026389811471292247349652978774879774636800148987881266491986034358257860999665820610928791352983743499131238863248903791119127842228053472510423101779708653115565034347808615640867671447739073429398191277426949850663345172872147708706479038463232568815463081033649354835426616441668785235972397394948256698040180165818357902565937541442531940866187618433558920112460061282052840361479505291733904286858336203067668516710914905853524719285277709326059896214290348415862415582412209307686084432279084595795647158383657576653625131862763480874924035420550076799298200590855504571486926551691974680059377664339982785133627929899959448096039391292296966383535865205723794628487492611104902261017229777793948832391410729685017915170349145832882473244342210181472346504291866394328801941084593935470991021165160685759701930027958694208482258473308974750049520070989427470200962249879405274829164155469323953095301841639730813229217640203265144068282915848587327971510620039407627763366060039709022413360568460375447243219736679102159098617519734733223441530910433979844442298564622784256382412238135108818002751377275144848766553054301231610603777470123961559160154923477820823367919865417891794247487717442247854544581295257312466978604771671599287619760742683587787529638380108335239824894077161775244436851542207052673193728175356257338270061643349062898312973961398840793746629912762652498165767920659472406629867968774023954395023599039061035334293256586138868693606846154700527095296985349499899288587396356604492409031021690142776480998198411819375694117057600440280542458920416472721221289892563108055180647234640601631664470574100661635777414867889671796539479021433114532501669812280129412098315909826903954816569531942091357451773273019310692239221835493217095331108835161449578078464352055620311666664533835445180435853968827531287264372450173156594269353600930466470696955890055967270694143895684007819814017982844526492906729546206032746874048498226685355707495101969029524794882096021133521303235117595474137630425807932282836850919868029927455783652304555688317256166853660055777693968214142784376519567265596053492741304805047207098092253210111698996078483405309110024681362587092888127533512497590528510103444782882462814311133188105189216954661428960957469154138771250762422884882637515223348162867030037335961281887083914874061338877594330616890802239130750436667295964748351189038742925587206015258120440157808461786953291753225338420076048702138963890029974441709605745296571467635203254462983744762721879090769945833408329676426332878325723716319803249169235013272650702161834085492191056332929151483908193939106012872391767508088078467223627963222620801221392788368150972179449396632336304271756394908813956358238815290819486574265658635349640622807145879804393032391578894998325827818323394605030438487127787378937126299898524695921883679751937387816370657646273593090003251526321262068301152704892612565199650356707611991437563787752475466285785060316541594826178938814755569205943666414314600349039286311013017421058850094061156127756955996093003030744879083349897225266156668509986209315751933160260339382572624715141056164807833806954702345196770580711282180577577514286290714145454052096482691276520384483869512813586795200387859872607134963998914892560324515818238785938245496953637027535742876219183077044358133163092292927313687525600905927952032843112944733808959059133840735204510411516698467738258927676892323178672968409523325130676366092085602786520905837715790864212504546446892025827430555350886512678324375116529044376483026646275327756548193788738901343555243392337519191746999687668264113553080319889099397369777076236963008143112864683539027381973501138612403038479246607489908517064306608637056815277810938729263565500808297827906776161611932783772352877405394084625475373073629259139869106666598323203776954054282713426629956713136132336363747129333813017164168202507101106702848133218856959018267874936765001945078582233238086346830530080331894223426106176206814021231458180934036677337874246558650744443042150526030462032399880645690103390515204208139099095371665923847258876182619076518522359106766457921938962984204026580536286787247744421350680741713543961521915932154441543511390664370943393727237252591285043848211539925486448929133178514654935525838322537825067230145182706682108592692426791256038404170061879290439879348697564608956487100834539215287124808333206367654903425522939386218188705098791784525973361768005598959678580252200467020586164196497786928493193615785841725255784048143603828948256871364761210209665848648192447061912508984601888932776801338969629943139112576179684921086631728728040994821431736198941629744156717053889869986583699015050905418868135110438495754640098485191405282214798686904788643978524720536150795410357743888163092873538450058994904941817778611684127571417576632568326287188580026944254570050874254240583294827239678267912217486239109697638141942110021043597600031948427822826401659377104689539007490094882814669601945366276048988250020227229024001289175972387539983649140757349396609879384143312192127422213821587683671729835087027192445962451732980192357788106451033262393328388352794227386157230453039403554756673197590864036823525588328032249048613051227661436719723492834699628548345708917535675486585544530115502959473151169299093614699127836328552099466618928771553881684495139318083391649712474210950267480528424408759206722928255263581044822711358848820866760953966278699141597189955865731718980529210889284452458718061965647291870083200376977131114587552324090362730860416452758435924422845834405936354924638369557275565924970308132295937542666117315326086560122536996135840572354714450589039408544522365388301013461797704934699560076097126871895847991447770378472015378027025051151626413055015855745809189120799246677092779459869792638543903013883042432555440777605269185859530683587387401223374812787834079968262252980930094655961581096447322558529248452221476369427576260549514416964330428835853494314407697456823553079416241741240362246245651863916838391235891039178873409227484879531256109131248158287535109793923569512335900497573198287258971332885351626914799656000517610742977078419943268086372914248714149119884639844006592511758011631805225573238836335030672650414189251155472127221255611587601606323637407031472938295786902000389878340819749767337047862874725941067984202711905155391913508859702456718254699181750862164990249693770607938960858642391982042190208459176986985508879031703717727208847314864767836540376282148689172470886912071741562467010409062689016018563924070515944605151166778806762716282480758864211853120658709452728895867239678452516521893442515554584445949036890754309008298623070252003945203304923509022644315656574093723283309582920816881802425816204041190672938950315092688965332766576034836898119064430586309382563462052346526317625501590610437753339560108132717227537774460018270452441285944774321466482628110197893454351493518751381667878621153081966865227491034333984321586590762912518903223634207465137249086408000004293735566520145716200415220019779709528664769591657339943383586054574500375188374372419301110080423707143715561600629185470161926585224637181842728109403445180117054165450205816972995053129816463645448441179132771731779550579968073299871442352549263682278223889093351701370088118023769854663338549427149181841715581127749949983320428168933082278715876622993380765503055392758612806980648485131919621355368973241398539310681043652417905085356572706964612392172136221560997630331272043037897143554472777121767297225833425177478381695362755406984611168660532637303406583752032990621758842769212977703968748011589329167003218533633406607576407540583994214214487199316441094104068218508056719960800813678766733268902345591186275180289033667371543035109492505798817352526706964165663600467858410636694220603664635622455005260980381531516933503886644031577507530333757958710636834850128010848789775867676956510108381065651567984965242141475160358562307072433924983058906448272629437496535104132686581124431121767980262576988778589368172598431439562264686168884896584686256201903312881331856874137453087256144510591192321095591827788951116299925185449128657077715989716369001857217823483586893268581068405055590405775500103868508299049420415549194583818226886293908047580944594006023069257560711020596972008771783234068196344334114426151689959429054599027492336131824017047597414825449072507235092649600048053276479267862356203803490461754226900926382344002149666356597902197166703365168491323216117625618428785837139160092025774670373277547146829499268371410845741184059228334280310390141973126324477120289027948800835448355354863381422068136966621843040236851744167259625727653764761809836726170806335596002507508064207970092502441059963400407467434432401970752046854360200331707669360430805059953751336337120762637488897414741219285449569829872452162293104522255323591961801894603557415849922375470116688084117661649430615647483318455008872095438446111564972834688589958178321173796530926361369261673731315224217007732678303218880357056539641850641161442506512862165735315466639808296910803482787799596374578264519599303504671245621126625892743716814436241666322057566594622920688796972692375788694954795761230983908351598731679283113582333725487609047316284448927491809841824120803021889185680218399985361651371815007903074582673319972206662621146385469240583635548403018274100091039917716188794817457686370134400916057790919566178338234070642977803353870104994030096763516831529523750448468209935943299170479825811926857808528406925888129040123917253372349246147805668747986841622808671469286059704968256756876880534022646391629448346585416857273870151445411214777177247153017019095401045133124698577735328443213415155984036074361081631176535545682350229324312814175564085981732807371085439270499265250472380144654008688552911435379522822476342653157691075057087757863118156993954190932526888577141533758220531039394563588752453946162879586843767705487165211689405313149918787291105905053690771609956776551102591627650553938374637573245150927637605230895143759630488973770945704788913632192263304856558863262325178425575208658337359448971534168362812621091554196540501136444630780470047733174172705743662736072904135519966840812917915272981917421979633522743398786838120428150568673679476205695243607165050106170310737853299499790191122620589298286773162862988390314132694548993678925245943242971275434168349234353212813247592558102276493757533186811594751751584394379270371814783519501983749997426269067348824764405656178340383884241914878150328583166611244849353074335831527476470144480615086179136184952975529190464498183997272934886022138807431864541817775109785745702233950016296185056674607257553566287490011413775454905140719974131494992160255729203145833891811868798668318363802153733062945973118721952399916370793272286204591781917404075141454641126807468510744614142944422488071216274660456500284376821769964919873384487541213861604295889007493178801182322067690496399875476599057733410529830956476113143435134099368523878719852416118423951625447212410797948756318005199127700303697599848923833631893388645560226645889685771317070758690981039734835511805635137292774731946589699968188202491187653894563502386098043103326238561444081203104957333162687705410913292321715796241714716102646748270721457215976614022242496832665167187994780229363692028669614018234765052222150922376681252129905804243183961654508002968355108342166924162223007684180242875290417684873786449103673139672840507055266154297196539077845048805631252217109216063143207325403148875063872889268464520257564973663094225637242606811179151085896713487340435453475663123170135386269356439079934458243115173509638922483241679457729587794374600302240601191301979681778208200752583939167630779025313665254015850559833123329064720918648869924282276289847507014536515757362507377443615433361560666440042373576423675338182734424055221276924953820961102648149341689000507522007965520777647961930189642696763961025715140303912530210897607771531864988604857706899424736201546034593989844119784915977776465979411648948210194418721968670944806301575919343625949434711313619989213276974109791498647286256286022087241218782786190440633241682778224931556132398913267527713994569203487996739579852453863482253876296393903345724302420781597746964950900488581832428422553811867835697878634970501688296437172608025124950712313991767777013917555928834622468303006103415559732643685181245886834640717942686804299851254102926094847118855912184835675178886016856177179459776256829807421221633597380865930787749520043999322032417758016328520021164219381658328582811785970269736041800445106995363151900229958213021150040141658794975717556658576296836477142128747321856505224559857813867267807655931250957430805342439147828229223714059422706943114232423051093587552704494438741780017803796413654306374880119614618816069680659306636465799573842397449341433435743893185345446524693178058939691624005941799557191731516392543032269591415814212410309873874755599006073057860304874072026105725215027095520242480411070274167131645719811510483167556694797427887580522764705149738754579015287613532135624359728518566914682070600535559123099089923634242651800946301331404278640539203444015018138274002467284184566568085474173270353906328229983369194013324131531816949886437189723220448249965225147473515494084989578629672574452927568178438944983362455618441110665474381728644770696436529712716434596571198266832025735782268190454299007957452205415360992349235892186295844041751984409906156670033496841433815341757175482131177683119491736741173659230289070521864906970879816531853534192658529642471849725633840941038665452431068463490671389125368732270345170134263982588246402970357787003991009571304415871557368469854509869635413033141343734477911176819548217513202790222723816818051115029189226799903059519898420367001753948626894740078114386721120476323919041256540541845297790985711726254045414691508650205733962379503140747155664999737923500504103289924577415121028677632071869819897563742276715418852454466614399115417124893811336155529195338404499623222164272713855616514845486787220121774723768550821666576894852736489388485815994947405768528599938253187147311701907531239603346217092169713936060011024095410350022371505637120556038293817678767003725562628389773797260007115623572568398276508115025041772814625341143944933243579162003663408420042434103657020986967204860620676263726874818439314011391451145053615206155646461996443037507514463600801388046675870068793761824222295984293757848895938224731901048007687601055192802861459134037598562513952130571248784535388223537671267006478805941133899917514042510261014628373857821935937326990882636225874143871187437492505047389350047746699053914150340711649807588220111296859576207148811094803146526602635641011073681223417213927222557993555459111474088947797699399635112123122817742659106685574885325234004509298640656729425280349257395096436241582667953465695236434409427083944347320047868580918152253668617386040224498704358913344253793106944748465124532302450484762557424926202960931343413913451547595001542674788044960956050801298795063388619458584808963793271929347352667512160862693693088343025439129065673864967767437925121521587724107229263276735888602319176477237251630296647979019781820596790776629506218324916620685249939796777365273228764213272496515478128506371871076823969661588710033573827862631199894390033990185586218375543338536555466438259674918768920141770067209211569900906526765693071720804701936590391854386186838196611684252342227674878103550000295023127851167964111545823643524890461749303436305111255300565802350100365223160676824004244046512987802964537028754835643270708822145503800978044301353182025385038198001561114422498205369334677961012678293823135418183885547022497617712957802477869230029993383340042482261502870801788051901199767309111944837692854036790434093619825010390216277147760705840455079076022382780611406680439840229743703260265113573579190434563568057642865585628132742502835294346012783594464779466908300316882133239890549852960588671550646450755397108758401009233526952835114717016272912236801974081449784507596244317737893323573623531830678592495664967767908005205019872193874826882280587370117398507724056964724779432311640004433128732764769188837326082810893501808696143802580813912053805755635382703250002911015078777991797085146132197532022547476052519145243094271824408647901740194691159612668768558922061277339488224306121443005593505168735540149518019256044402108289725926523923178720287192778860806120330706036010825067187856554167572151373006289329372890914564337178373184498732028100628050712349814252891168399149471439194774886856427594250151631255582407514152942993802709326365273499953911376184002904215373040075300522746478311633598527302387009061156190637984334588561205723013728546900130200924545361188034893396742399939088987303154665257537880522706075453671662073085318608224567328543658389186790163510087787673784427918620048467098582135544041162013447451414406416435723703502211674957613127309999762981262914699118802391088088850893537752724695459099828383376195791261368524575550069003697771087590251877023117969892517894994054587146718177279226797752644469137413924260563001760583915005309497767018391679356182185631443406529886327326042910223479076224060838134104585160300732614251610644195235972590374339459355551598876092649561891543953916122454272293936542188294968963258071887580843103517410001393136150308975334462620569244381907066126459864636178671381219614026849174649120863405723557041477013245780693330304681225633494738325819532470125861077984246778089105291905358197532487251192116601377910907268218068461574049776684372382040820705811485192426771743821068236509494321606213250977063353217901447982323732930000217603467991263071035109435057400039406343592523356753190148657014918401254882800678225925846039671745471697988495685471895238676419910076178560863369278892254479279347753880703013181766141909886137570497666680480136761587498381369375236267233787851612097858512683234461595085434731443402535369867542962549270169662300676116586008591248152071372166364920645901107705512947033999841169144048590684881323286119276495315641227419573687535984631064905259968728578832736717079441640325306069146535959258570927427429148449046793484082897939250332921958932154176530812742636131866246566869931811120023478348521049993176329330387189727064144530093897876773942895176445364829768170049547314387815409607863570961457868075499815891165663787045687711564293575683728028425787970516397625182149916817928995085545911008175909847008963773940726035778657301504530855813454037547736940235609193878355838858574810457320853266404952684232123350007673834382129377105520346100193851226794172498052317115900796093390047776126492192724852735109522584794554661478953835656387278690761754103484781119530432662560114026424188882037943383091554837718110232124718084547769128764988543082123010654238879193273822920329811886309201706268324344558865914039636272216584886749352293408471147370456456885107791878413684114350003258127872639086171968767679207861404364223593422683517315162659663143756064940009108975450573070354468370860330294482976982237758830558293454960785197082770693107362056630738297815355773507458502083836945023117955107177296423549260282079053430399694287975693228510308882228654869078878135483185118578900641786045712833526245355609947010253945978105065398094086472960834292877565898127283784352764968655892480911467591913991685940624156394172058765469200905110360352063592022339822032603452358181160400430075361940687724289748011503882894328895861148285988273989147634337014692207434431573395894735348297189920775313608603559092150972851245488625385071334227444038681077486175441746729865476953577460643452039638131569212688808949043539923807835517436295440356154504422191544687702390987223838155174261349243136635371622621458239398378438107438643056624467117872374860851758869840864318386168725404987401269620429707143858986681220246987768383939866591338303456258840039650955556583353701273483050085502766456781140182401446299339091057381912151284202634590972002715233872652796343715436582247339774658364887361565982411080894844508196488199049897142489852318414240372673967485143980203107772229714603721029604577290785054781237304832411892963206651291278082428844506040459927484945641234173922900261188303155224051248476511660445729532378148898663732294991304307865248299866040878626240525490271775648263884941892115393173320683670238006976248861635462437981648539710503624859817992265584775825770019255499571160201426671593376473263720392742084267191316453875584618150650403220530159341489829645140982706953006086934148283753542039456910850115731350207943555021035205603921083965060360639252207053102743228516453041430970445209198545783632693574765911620126989403877935848654731549342668806805147971883155724448959163657450892425985987081473739342858379946258108606668572469022234590917412260914084694652452965770606016575355710971862108202379598888265211918315888745541941213066185654476052790845744013577102887827467325229915288781168306452781135708756431471730892279859263542099244230389203936362066570683645328836970708677370187859766153832952593362539556417254557755541430533202246379787500114511798933779969667827524251205102464757966370302479480510805626717032495799255710238129239031455045131758861578779936288496325413422476297867367653037120194893072755861942242869994494617538408919561757954605037445164874522378607967160421202802867960805352656296626298849229207873879741665657284494671655789614775523889764928030470686758605806404063472157672693411633109517986698213869839066472966109625377224189059081165597877052362765422218181861392924177954564694935160266071890770011356430418400165104285226025911534321795192768215093293037868706252618000639826549678698974709408138039674926216685391224488000734767473783896161487031962660599123802892984382762087237359083239095510664665015271031094406804948578979749241278618201833848476685566416660599405931161834387929403588823310781832568568392323897361190372389898170086635845621870808166023517709274020489753053681664659943794574887235498572740491919456658532626025722386931527635658273949653563813216270803719548151766706448428599145272687460072675129511220011091769565902901013949502071049415864064882023555989156232091655046449338124932373538046740424484939496247628207091564607058541669921507293971516485074206076849845985776335128176890799551754746689279715714212497075768611389381104926088250909200934776023130020079052110531094602491263029122154137820051791308094280066884741430515583932796568137164179776372390886507375140978996881773568328409188431883779818281870447408588283258422467225058312192033189975586531377819936543976299875736918159736251718961355514687541357198506654106674420835227502565039741027791213268831313696050538266744465918599268552827947262068755225202239686492672953611344185929056699169541363049877303690949642126995613216512921045983513187965811751704832982391489278380820637910799524213905560407528352069260012685407462642342627267580045334149184512727343607627942331445440830083095773054731840545132355234603375017518257550293150044964552226220922951364961777995600068788694606694279379202211113813990185088398424122734607221725476453327698721020228659509255450576700283118721379006039754488490155138389889311383590507212477164991221273589603300353067163671031886032647608735988683219692626025527067214664968650038080910178292281380302230402159269957098008215993833260573602944964055743457479414041151035892154567559671001995828557269269673134065958184378030413242313450227960987880615877086429087420257469912658628173737658029275022299423958090686221480807122047835965140426849909027691070480268799629498584076220780839822611522981216027195375712795340331065385096326441481409411151124023779116502496312052280534926166021550634191448829144099630003022805552427992167373915900189874027173066465984962536233140660901372124230901641059561147617937567682509063426622163095315808641334502806563352490717517325345876391094341766297204219458626817453063348822243054530821162361095607976956142345150827214212762618927447646570041762976165341480173114316026468593484115971015628273945531041020499496237340165564727139750577944924078062918285086406748687574484711929431418631149579845497815030804850883315463296090087930698666680135497214326106834530926760259394408636946011928615053209640951575274331919515287067664279032991857454940687509901539508829649627160974702967233019148765715881440441616545571475884674501138819740354604013320465381903950270937848848521474753042697451178869602948760188328262531270402102696625226226270038543761366273113102900771465252417633881274098264056851108256397702565979119500257512965090261257330603484743779563561116102510949798478102446484060412518704940887881860357193288750968744166431578887580859059764197801625947949613386234407051740787609069300424018227021529274884871708116741032402979243234322259008671228485236722730748236261958818679174984564356102014319941516710311020683895131919390693857892058204875128442877933737253533677969571733433405055208069570544043739982847340117086345150351723004520948885229417525966866903037656469020000274232485543039541723667116664326222025398861692895602594315106781176211825699794936338610009218707566348188882713120282085720694707964320999986913099888232074202033639410795218466492592079129175685172235727256313679491100995818316470893210792037256308154474395101519164506653804038510707583918786929588475228780787212056452951208448390058431657786992650554491781066760819621533691783004045589013985589385394030900117332571261157884518516576971263465595763434874989363708115171535124288728598700328660783382809502262878491964561373715835004688267046036072680419991301648673435298383191262263175302068846311081491606731270212663022759026303187906332804175120570871022246884411097770270524900907290442111298069783777477210238415052675653227257226908531475040554082234266795446345007212360274338014043564030137403544047038475982673133984626110521535358572417361311788648346436923402541563903052191441046626303704655698632247021191084614771066229397252213069575022182590275276756261090059015182261444846819979739076975545429749713062989884385768359647147493778761632434552304350564596414954759503002241898043369474214603505092414804095674857209344049768179881137072555385820297409509903348446375872005608861273126448011554129794873305849052067168022459990763368526319825836045276155711744010533489345036755145853869884267506402674818900665785952592594819967692409484236380550078058106307544123941380188049437248691557384652637964225756377255605104771331689009652355177228527957729635598050430717996023560936738836372234537261498185066654269917918096513942771341042065474504573264132978474944044069785108246389080340435469881527321245934838887998516690063918166996865938809383216554492306021067477940056096470591744388004534763963301851678287641260744792890122728413113183415179932363124738481353598433772211025352932015964801528246625868344348849398686397916721195003372500785617264287452025033977440477036707245249555559695120360058810217493523732681369628647630870155477420146623349126103476898450337394664489955589995432425168808111275169128314257510111582237072238110417018428594603835127290614451879452614690559030896376323010546304867045422231204781197270351798581562027836638678706892823952324086818407583263133285338453139724785211709282169818784783267461933222340824503048599086159501317187975247853286370418106395338936955066272373069747816571490680825199583809052757617429166789179008311972891878856227673799794853970448848708224907960683718940109877335199241731526666584833046693896610615767270626421770790436457301096704716117350797137618733122852258147017334931090620232143968766809169310314593806823973610866494786031408662722923468607701148991349247650078848894490369869834439449464765876888766460049573340854713209871826614950834779632466757992521002390638729580899715247409465792169804550111255695802048997520331576026882799874651064312654578460737804296302471075719983199959881690737429408550052079534005075796969706589142108945180640029150607127331634310612735848968903154701161662581774156977606263868289645831912078176124579264267231941789664468127774242931511083915069561189859946416921794900949262085490791143124825492530594859702731526061486451154030106744755395549739895763339876928480836530978906135364889347732891040553565888102240255189148080728410152237105859054939752433427377196268962948247906552314105581383185401441754789446196908496256111622343198843699858803262789330101704921443070868056299697383266574645652562163079771707975352220094419389727876275337469933679117008678635752440851311095668478743786999765180507163721827831210551072551475700084742100922917157630542876439807368828020880396526014857015927410844373047780743520482947969688800378249461851877773139532368561996168598894773575825496913355612594118309397073049656592095427398509627149155172236549102660888931136764513550386449250361801484645009124290278411404089577306272850341487142148175442163036607607407080992060907912699248319595548726131978163152457069273097551945795990852150117268232219100101200649123841750939570573217006572496874926102044396255008310460152642105765087461643746330634958794789739449204147139864226569536138299530743591908384335931643431027251723785536293243797585001064133283878241154067164789327420839620682592207367820345130537380820897717723871575182156299033945303032524099409330120699198789214102815621418636329955278509841797918162352771314512170817728799143962980204496224240894546260153528231701831532282386407730828726973615850173974264389197674755564467627395333073537929930051064560333757240753801568847679598900446761609474443056401865471236051321978528448166747343133278296449695549998354132929337773203864035894530433964942039567202262563515013096140330347603621619298090375506695183921146992534946140567635535935474925932223731794108695325704354649358839224150751025570268809570830764287074312975415829951293387102722023599108956086882051730153899811448419461123625017619912551546900210588683479226874775507504015599583655570077258359692827537206196383943716784818874241682886993669186196685494754551125979233509731825596412204999128798392679781294799250013245998785392682357767034096068809779202363697235937828878122022156807193079209723129875863382780137005422622429663510867651364045597169592718651600923929003569113330958950327114762374916067619296519364426053568461500667437249489059500479644436376766645103236406036169252865105600902142409230721070444796646276543667160292821930377506118025312989252776430667430690927392879441043350371611977741945194505888714409477079896325582831391846661324960086509549759830264186006458344189520118353341775234666606202483926278163545299368499858630511648550800430630003233422795258618492051674434429864993229561377600088549308989626383921799003252056919914484820181817525568933509991836429726178748563890701974252991163118636517178633394047326453417122399973784296446222906451052725313790399166864972475288944358526061794693380108630722734071458782904171695560573568118522932109466779580757910201996131745333266918438621443377867077331508174399399496829610287913237126239019652662991790591608825301250864976189127482533103998346362226147445074261313030137476178344468676850835399604624939263087976334698598742122462312308998644822492135349138771655197258473688432862087514343309768833819878608145640461792991820599449255717060795448057707879727211833336902686126696099264477454568833701983848254370821795412240737715237042351388043388060380036192872814790188637338190708792284101432215830799801043505485204651799252832651866946362094206905050530603711970335640290462085011235125727210709285562642802642815756383352038686376388257235146465569877788963815832480291489154523674901312025596403865468452051313373863134007772287290054458506760706249787052018101735712699059187951351035975984927742850730906172019779213034417741083218815313375228022000996207467097654701995060546707867186258162069193951532897111759802616893606166242299872233756052123638382961039334019400632108710578172616988621991258043988141191588112337431839630441337777694858818927446387595330469343445134111973409800249063870368776855582223145942226857302423433989712166626137242932343837668731522777738109034359647142615266554945573481849097559519882867837954230357629320890027511696657878727365650059129439656778379391449215086829397329485484343499685086416468224550738072624287631562306678107851410090686635987002568128687397300320128932016729743588089753125054688460126143268365661040235171922885321882598883059210357675945299693627783947136592728579091190450972995108742593108359817268969981490086352267479192955287843918974243378517463725465415211088404912055416830919200395954421619003872851282650349787019990084846230074942829324541576873739138285630383194138118307280926197236596299931555208896524654204659367955795631090418164179003047621119778547061290502356768155211112356613222450253874698019633328452835443171291104233608947230849291286457514259458876398687961811687454148841770299929069325492273860767081461625042546407949803654456397330682051212453919207630512511360082166207371478026948527437351356748570590439612826071471339399712358202316157843459174435198773897647652053294704510443507916655144008331012003026116253414472475167101741848037898139101642703471368504004278171864319580539603326650372318664003541284564119710290552864282819229378500504128393095638846452817042736293576603605914576264415294401601489447744095043210821096921515722493428695447756247015136208861636345463161762621162813487086258663633789543008374702580601570744842568376467107711922961400241787720219220767940746880016805231424199169629545785934979127676879210275428727713109133084943584459662158484310170467528209554095061383210404867869086467943481736395548935318835698220869780032251524301810324569277203955221114389181866130729388922230781452043427737867463833972015476136943848083850750448791135478013631288120287656014073411732942427842407076277680288447907184156474286287653446118826452772460929186605946148143134436124002282801935147914998161361974591998730606463565456029220203214189143443169876832005749127194793747161849222216298444274551880185117298203091009941075408058514710144430656609507225561485372740405820794794778115500087646922315726898899329627676178298403023065656910752004837074907499346249683429506865192747526990619209174979022201315884076504136652496036571404473449363200700852663589420772575759059535181877376792026295481081335362644263471407704131799504674775383814218638500561140013612009350915450737668686069302044521898490817952186981900083822303719498577382991019723347311671558484283061184329266685801655473465183676892534864093280670576347116776138039596851416465376846865518229468678022501415232835647493491774636268166588549178670267722947830554606478140832646686928217413633611371438911681577815250874036921758148657932701003251229699910278288412409382652019769166687048040944025036107281734200869694461898107360497419650068450531721954857594897720441392835574600214500409160446189566429837854522081420201434893183174853127630556783818147105132490646701515206409835313902903108912574606285786398639030938094633772064461251052082529999340727344133661319634752185718373703233251584413143785821906716277201501703891540887660094483975546628588431602323522139435929975504887169286594198286832243834911796488005124339310622037551430165479721901378659718026719369747217324844545104864933279833849004299595002525010499007144817720359404771912916021660140496388397889849493098766132126333794568823416373687388223702603053009416767491800544993978649163854582274186086620124958569153417913400453655186814822470676051826636263900363452275861731358025639130624247667035731807872588081491262778842911409593990659776677517097392943689994389710595436442681205676890324294322177974837074566665537341214823548050837084727409165226512019154544738162881902291094065355151775250270411988860062168638880434292530632401507880535276540967756136698181505138153669848034982201616871660164917828470417305170740763679912891160730671536238880648769238171098285156671878872480728881710009006867420422764814493108106571064381188572950731148080605733934613506429782787708136948116590409889868264815332387213059599154308731429325276053110815307651316338783166447938043263057190370361262767137962353386140700713750482921973933000727705185823863413444646224601326596921233059218503737527285540946705995836703018409462243366035914460786410948499240357469741065499583462647955901120104105993249799149894285455268336796528894954747099433601931122201558890155398252175634121787608843905706574087418889295125448234223429301597058869095728777802789193509718487687046289045747518304833197365062755211453238489470927348535492672259820195329738644492146847524783912149511304929753401786099509731801707589679897624807540561698928754972998284157415591362480384500370137956511316700447487158887059036829967616667794656610302257469002278246716396825170556545821718881713190604467081785837000357662091361765931688688705276986813265954612849534165672026686472191980068913443339496360796070412598672668831604291864385633563793736937229125295778782540098920216360930602243059672597626299216748567694700272296527249311151227398124784765854660534711489645380756267915162218323497262468531174039644927956447742739985788028518674591201388048178537823884951935069153635790635418261299424396699879402425421040527598614562760990121107427256488805794538645822512040126768519768203709581068311420121562438765871029521899842630271143854031879239064845800934039844598907010164975133445565196931112033989534090463352401620673736849114368977825173095085195276414778581107734071056038087095885895126315188872688609029568821690742292704015339790950738033123353105454912094478162478085303658431996244682248656068551368081972370880915369833771278663025453973478009638025158148412321603514079284635288482667613475355045165136729852694546679409017896204579048864511921283721356134714325952853669382690473953077317040951780056460834311233718276624437305965572921445082347514889929988357743303861168671622851227619258539340446027125993004953345571408728266689676486394989209738099628015086183642658210355037595337742732513730663377732637559410668575056815768097487572969562772712470584508952656301796976926084247491049901253858711831849172022425777913860853105638246270706293479251140605986647251817392992910454587998704728511466637187637990850477781819377488069059028274338451063155431113653880496921134035083355986121117786989244383309835544794165994288035198307349360514590012419756998683522782324992015889455051931315033576130432406576160234766409028909941128909294873951595609512095601614638939779894024004498870805041648207614764701954416017889681284100251745766781181517535222646609358496123962216562613508456011068348592103215888965378910301201041985827971422880361261768883001201839495207687935873126946592082050536830634738173705738570546142978292172868271169866935529254958425483555406417509559868013333462174975186158738662612078388617152383134318775104763267901872972328323463295655477166855215741987874974285423698929019514261662152491717025040154414510246387677249999584395758912671363034060555136520602802520297986580623843934435212636394249008561916776849105571150523318984366983567659317960427420673906037571358374797836956540013715959389302189617530755761466487691243884633683319030431926486411631906701596983229806234008633671482030540202438701931595632816491047720095597909693683459154659008412514490467241093904202437287110089226484096005988887161692143957401365862155086173605645880973599527047848007436531345726908491538917208762411870180121690782355914326184831144946185417266203642331142827904188432396133999888628855730870560540018485213877166952573208952945830136076888083248149914903595866454174644031731092244678551144054426587080945618328194781345889620331069292040248670000793539436682166086575711581549956296239819238156063951384700373781075604924331800059867990174428876944812237413312300839981834694774788892130701407804215948001508937515674264320149586529348025944725175204865480662034918755458896431434251236183358583721485110250448527034021655890320263002458856420937733402975674442368917288382904794654817317398736073431371017621205530052793578031691092656170795962779727697897895266088662228568121285543581806924291693159850732303551162843195033050929457147929389138160500377674385831611972008904485988641414550933515358697891890481144837575720929044747912596702665627501186473643450909338332688031233727069981456442886763236427934909507509600134619630031007090650853421196207948930785855982476011316079090591497111237095246490926686844701815664619992009756798849631857015059122057654107838612160130153522463323407784640374026116269245410265406452690712944956471098343377069502689503886999011135040945491955988437335099461395239950709596106136226529707618139065830801470701529511678400225842705150709247977151649153066003159160544992539542137418088968784938110513383146706964993301926598276848540135590048415245153567198020054622625984258652619955653906128271430708186464640180446582494910789070017204493461318466154219418400862678495906388365299209963764874121621433103867505642217901887844803511417763551400451345625997182230842505939231003097738549265483878060285406735171285690752466546426554901415805371290690139799635674916061690000840452306704160834591829500948630712845121397557236310672512860954114699915775875621579833015291205974820425723200858718923440706510767427606960150892158617345761217652985346397196638979076994452529768925970994828073599511932520579239844512317392203377473591610752117066245316712663456036026426538415821984478081663656945989695342091879880486125106487190368998124500876792295761512600681860842021049951002141236865863012915268469692371412103650013195742750503991269927195749006452429736375806167045287970125192613818263755564780875151703215745022394632923215025203648251034197367603845028433815860320160038436386225683349774916292430013982566190071156460135428687700492407274166759971262258828655844546360749327686823832231252056117913860736063746730524243058239671664697224324030270360898578403562933628519256086349348296311333203762842896148482914374980183976083625816602791942755660627895039610692213679079883004611164073783043070488810809854491525080970745870175062763955227968863157452434886492631476051951183099872990629066196689735880998211627147388288282583700851929441391141702921208612946149920248491748116283039523123290771705039869103075005986116929112227208680365715768644008954262603240418164610842235480235207385396249441381960001137327999350264577711343976574504456170720329124830586850293095409900977632503524233166614985917594232602309977893453725011577176878338223984231461521566745702747949803290409463839119350400514264729162548095224127492424321946890629372335005730388356664095261229624634992697694054905749149350776398755104124024719867714242235259227702012018016479042205193642735856013118152093511963290412721834790478852317558847562044223095040875116777584555093254736090466540355890615220174859049948375662223947745631273364644068566621813075766381299307752334228556406398915555127894064235503424095302654070408484002476181468289198072159453679818354729464049786933308595569517873189113940359590339812373703588408433644886764193411320564735283927265035976264723660461877621807263287678206088119072036801025867378125099909523131209274434421100032632174318369960359010429701600655975578368757409317895346067817887867058563485562207528724840839454877450322569313483458501534019259856200140423227005145265307750643914027763716792052741082355363060400487609171562369894740292087219806088866542497132894764797968329801472492030592932120114181251120949160197779232743065908208913789686209302467322780525608920009011631249631940739278487918430676034704355444904703348058455257531398290275293208895858350046834247750613852879424389096699675116449026378785284878803665960142902274476541229121043305377667049739906590843775933608644517642381836703663236126380243051071857186682755873302041436690220901547016161704299169304315578756302943441598236128331262281913428314482563523034933809675817801943727321620272996029413001584056369863452728228925981530274031439393427442581199108667358068650616892078333917244799995529243382526608511750199049728885106057193165491125423814921439394188930635050277765819986402230279553513256413800863280318704921507117615701443718567134557979631685895908142897544779756700950099269364437546850459625933840793318236083833846991732459481051916671397114211824257111518031265622399579111146541838004668197750613123756176585128354129756736398682044151551258669467403225683452535264817238400213128164000549054588935578907009027951410343553418359394948675683085048672522154644670615576048859641467573719702761858687381493566706473500707979322322855405877284928074265736474189008867362827208324482577218799157559030564640914903977473802730387434916415576524498231928926012740417970245949010123083186897004453894998241459207692610992125489805847000045899486632695416606567733063998976548429170573184067730722109936884227446261701502597011551489841534285702098743484226287092901842248038753022676184621698275093249679840367561767263384413924814312617023834745385167044012462821402434206873340246260112764970764595995437820169377648477212964094943806883571098138213111888530031872938789504608316961948596128915581613320823776848605109172937459882083167410516011893516953857260432908347276187098842146410603011163197649414708519487539043021739596874097101154152313202297305968201262232106267827497254393693306999877669378148528487935804186209094484912397396105503529523452562403805714336968558659927245267676740247590837684617612497726977346011529750797841071211466942506236776347227212893039313916780056092205113864961686299375248220220411080879695582569868793335880863668913356452569007272012645418793247030695419548009362631379656851686021490475621125272828238311346090937747914784021333282211087370332280138917946013810712771470039526353995396977315864343655961917070764085009598960777414683935749100216527969655889289127562598658225468537481474034477229425249437986839799562850594323424609173250235223963076158091702710914429124210361125824915284047028985470740242521676193047905193644764706691298469684205199995130416958995440657146835483860248792779465024369644656205391592286685596765838187121636788615784065884715116621753834233135382950787099422389417153178234489893962923556059890879309135997764124389440235052972417151515086917634075789185254542113729832010895315692066201941993951530660944417938181597343765985436517844225343681597827710700699887673832009842554585888871294921926396623474334352768734676746680951993307359151611882171666136690543265515171923680016285276990723670807328699370776969827924496353372882201263228944478223102468266466321965222080695101060293343842265258389926650076436739629369225067419828788369214935537738511127314816085836453094958016510826819532754784223118147775118560703664089418536337182654572484286960125242276555887853816435920736717321615084615752686981307488846542499322612408891076844588276960267494701103557079642095663013768723522212653120980363647222700405019330937811474726158703238264341964410580940505149121137691784008316089598067014446895568036000789950817003624068421108136703164362013986103796348492773239233261522758078466736307041428870037922003807493768623368245130474530361626302993338856045029378032179750664875244833491112952682356658754692184885504645975537725509904374306979492286511083387769507323968869058861364945989122233228008867109822399565872964254260330656236037788487668542931999148492628568853268002958315791117117401611059600760579596642056705157066462252559785462451974662955022712867814696410932446254901770577486538741274703496598624294787352885076459009061494122450559153677084259300529442484156670220386483242240761416092673269122410837534482316019303339382367931576482473752785529079254341577298744077357704500590854278365161308107315092092234182521702396692521064824093829713995540943556249108662041465255138099631433201452154342970341953076744905829990150843292024246164409478826910063111137694948386929225059474255428554182053013634101197507118610870830442995915736013939969813100493342620244718035285347436213408824044747461794673467647397942814130228772199591242187157683895225352095139377668950161265566974895482646703272331848845234079429323512193034458615795804489926638126102316807631260951742568810531486827677320120312632134294357232284935842353447260302056090532737991612157877031889038740985178580924188069027232072440035073939697913945328987735130216027980592240826843842811581905722051959894680872396118419446267539196849283973626576934645117841278614170428476820590286832243250002988521719564386955784236044082516309264371879078179176026744183142790451936429621266729584415769681474516359475348532458381169368318092136142648949294578279377789000186491753033615572854415999295440977049589890599863247493150805142884622809615589862213620862890220383550863531204396469359297287998698858622432462710476493884583659134351950294848019728822067640751976374735901246267480247131259160346654518411325095809338523445850947768480549623592134516006957002328986437930852545940936997280989889232278412159249558437217002200584142414066228772459629050938145201023189680616318837047698581064441731445190035119291069700119887706657890783966578962139806863128470666569507478127773892165041161019588731410506644745981750435326035788161504880281965076496179364501335428608393458072405853934829391337856415657071182177935024262263363098798846636382223124273978424122385237506667344060938839985092586793484185696304788247631531938978844971781995508498390486844223952876278017917289876303531913106829595105637918484333820541554000572360097561392020930266025400233196490368517503363721063486381067851496232891396632669475428519234808229253461467738338161829068430861601649549180171689315216174777592814583314840167655967280071764671184861613542412180620001378178771957686765721161343572706206169587216092816101942008483747330338129506680083161886429400512913276032955031546900739936110489975250077866078182116081878027651515174142822958774705389122979974261221430873811083731484206855975423632173367297828372948452881421437899005299385057662301876686123515060276968399602265523763798104390520730149110346700284743196170238299857859349461629170487417220519365150100074566953992470260325663805785596869285980696812480132347259598349579983944216521607583433967961591189917837040069350142859275346382325484196100047905743544101483092246325566016299882762462966235466787083748309796125502503195975209705374145436900805328158537644423720932879330984242399658287822380066607807135583611235348346992914193927791690882831570896313853057261506707757145674700621356693272224363833148746965668225070812723201961774413812780684959079229355799437505701427919384198007451055532735863927577260869151366070047869234654719489925984117961230311677977508520321493624126109340208440565826275156812936061580333782413913121644814674928738547076565128938868034331069949590887810882954293625584949222174834239191069695299630616233145305024327313117863897121085720782545778885710074552482978786508484622237320980561029039760613385729448203742174608143600352847620862277534273246416410181066475319190158559666011223064102231698752257005286433843937780445761984278973506472464294201330843243110201353103080364364843662578921251159202420447554872132009817388073797936019453191756070406520224669110796445202140420580477312744608094708780777921736755774352450064892356290340988958497297324119614758170669133253647387577916276474586317595529422862793307604212476310360118425689339641697039402408878627352391982150707291318248923793438457921948163014018899470447130237759057004785331934380090473255353762786501945617020747362053238444795026853226661987871092113541303466527745906813458928407314684613061694342216071007185092268928832695481447743101932232494139958551956947065334136843472666742289162474366872606996686776013083568043287129012946589522681033356594256886354923240470612564880941439866734373410048717841731084535804187905675024243518430367770942078213608286351911661575415394915754872256958992560807546971935195108774831927839843960947877393349234773699920011596613411050596256364201058367675221752497994574463431547295643184005437562238595622315623626084303831866965648165057574565946089839554944385121209495853413498864366301046181093519077347582595765826656324143122373249019225958404144297639513006836817001160223406720780439932539903089274811110804821719614515263489499172405322451070956126317861768367343908378577861848263189096400339747904084242547571176324824124664709040531430447708229381424352118627967971310377377215642582918281668326836084351022571796556625587830632696302682295236445213259591862855805711076048940845881576810940232706109079530996085175452143100470700641616192011491665684619697874559461552679545537665904124534102818251204472042992298278395002760733753580291032038893616186890681513708822659974236914026089227379053237347781479611395019060565117956678321950925610582308498603202767647244102187739200079109848602135340946152895598612964262768783462538137279178690982471088011732232971295385929557890197079630535319364216747565509641447557453181185906608411260115381278736587180036933330329842667558368503943106322301721400634234735401386777674320919090952317547818299974649694110766062768575887961845103516006088610206562282938055144664748128803660894394798024919600630339345954998288258055528095081654568818210212092250335493833708280419097485327648816849853202069339136162034755375016513676315966135350019869048483783935284252535266363919931063221679657242990556540743594608535588133581619612774972916216826081650291192917802909327275916310074500046314630463237418996656703508818387947027423978710291855532029053980617734327916347121943814531204368909024616693169706996588696844436017328539370608117407313465581615878440361170719092336618554990413075165684959869181113523403684471087875961515671688952559704458272534995056420528590125413080735074000538287413018003430308756817121399179281319410700801121718168279688027798611685093652251325266698286187595576816847139725278212612526803790500252731587658527533919362164422743264688776040108562185320737478252904253009786622306218462718813100983104939071417676337138262558741940393481959659078569615308310916079774862687407975963539454080378045053854988067746901267273583134975569897236252982710719258068132882156070484482680580620804353042932976703776625369692681080633125396012815334037489546115550614244575126368068888959405021402694424154531372237688554511526629877507969535072830368189007966460915580245169103088230391025947468900523747094581281566620439373601929958690871664217762865490070302902456546308750515804250478581088751008874669803916760680400284453844619079854370994794216359843946741165529677096132706013310726405959442530644564971716732132715121572500077589538800731637701306303869998265357465954152182054637896125510048208870066384320233406893277527695231924406648346452444827341292706309735293877653713867719708241167333928182712273940882689812396698210284538680740464767588424317826574401699735139561776919779678118033233472267620045884963511746769782825157220580639725843601921600324552984993026160597201002417202542168792742082376329340727137099854127494445433218720565686103879026419438360158862712163697962880754162160493561360073493960438273153489420980889521458994297773522693364005702505950882428047076311617982621697886683612740031905369669695274891275706122840482719776548204878529217806968915211150991217040556381117879978328423713711104427751621261659822912813140089410398663397617491296898377263428785002408447124515455397195127537110175376809716467338660714435267523277893018199419956251662279316185940287848869684032676620763349536471490906827476032948504758084742459081633748371700154716494504399241250451354847210297380653581184100888079143689584292882567385491426417188781519640161567178033991408158440158685802006648071223783875283043346914119316253415595484548561929631155527377291888126113965468139215663247989233617201711536082784167884259738579739413863694760475872694944995435906280595809509757791552260347418021372636850302633152387767864170888451704333434950197335842629513160355162163613588721546152296615919260366014627359327685645678868582598442104782417273833322610027116689042387668981074828647741781021941186048712863786257317882220039922654108898506858542964990188262187071496587082809732547459383026302242594378305353576078669420775638959066360954042596025270771891891031933004242741320127926838231847730651334280274642637486483407197466053974783715970159384699470008547540472267606148388464674979261093647385205354885192062339622094754853666272710112838363933511954650902439282425108841125218286245497062753192256337068088271624785161360242104036143525946665089552979431845156638190414147874372672063727174701706584851982546787262695529381001148044470172432193640035017187739243753289234292268645791844732368027476270344384457228143678366617213100599679135713314951224846823993313513833892082325580052507256309045004926833874848001588517310713384499505152103986584070972289386792944445374000808592289864986624974782094541445829210346124363628948446020676551274062718474426721256285993251713902523137174133980098845716631211842532570249553610672310924463793968697979101778081347637542773887377377907803150912865788402325776266999955900250267989773464304848535585491560220743502326977651072445368758808965886006981828313625046607190677169539314190928493003101116940644356271248736773203065027188210157798654450107067058873623070624669010661213706557916561621751488978004869002073568967554757554555333240000891729514570709886374462390658029153835377729343531752755189753615575017581051290779427362386947016980677240637347218197075289341240206206728873443124519555166736432923290579448072191621534960474079943931037637463667562582197898538055838655754451825845402584680488617853513821532055555632931887330300640458154954543214849513955389682637738438021652951324302576309147020277209428819551236512509164210389777532342140086528368923117089382339714996445531916816192983807494904784606604478845952799478918439336064777334535014627181326006482135145224041411235790593771487920176412481284229501384858678550123335828626437258948659174872928609307632839083471846256122549194247719962995284779662805496693478804878290766118809640374554469745012893256106526336381698924043719391439572472505501000211005475204089059963554208092192857546520839816519007668998487567870820336040130236389267957289144632103716964968699615961239713272521566722651781231827082842278517237787008729486199430960005568187415365017134055995151054540240269736856425454748335928425782038614607879425362072905371919971655378830965296545068137521995000173958227096509243950935801687536721468598274271768167508675960759780983941421131528580385370477804417075259102634273818544335194543619761345742867095394194639826550918608130228734183940718582406108999282949782867449296965743850648886432852741385636376180442554884155071650112847791403424632125933301718021595671635516054116406063270197802321361396008557076568207464785947982673874365842558713482011514470226522333096085715247306541303033596514068629333189178536160024195975569543460704467823300695770733263592655814899540619925397088831002555481474314625808798327679724158641779216485313145323344079499915974616591914751781353841879233532087064546415205650070086292795807065747413375267330399682013960571741402404888072339807541748935277534705053597247338647822109221278638712399601644341905682027853247978175719954482371961146423651035362143542704254657633933864922829008899166690087506237130898822044641218366307660608507799415063901940219787415733339014810657279279934173107838395173868197854906772580948376604750884844046119900994916522224271639077159041587511649460981672491286810575120927689999301661597979985486986479162389524947286044830181476969640951462330142162192793865709888605251271461327009542532475069076768826003182634857607113714672173330801563107482547576826019789931747735240574623212832611284267416352426985448692293330241149427877637412703863542104235244075297268428572639922637259014752552701628200347886636602722598967644621917352004185843412014762431463839126372007219900972427223514079384023389488683724698529916729442380018688147634474192379821944303538609024319372263321570029494377441461926414525390201062173787669050120694081979638913407240430474266018223856939242102146224627068996801058072626644426500994629577541731101079832002076090758957023796421587044533438834279948608024819658878038040701045763309353352145380987782825038074330467317798072816376765460299681940692674521870713594776050542251504780113050254021611923517633376333064735224433571458564556459797261613211110317308148642564409809877583585455573401760943113785839253587285094403139829129086373463081015227832977752946925175073235295171776042081640642868693945781195979366655577688022817444547809747613613919911861987085095353159984760534649072700517781811273893131580947720420715918021986759800948384665680381202129405758367195373574329512291484209652707805029802808352020788138195843872160465570284226497966316468327248825421010892287646324110463490927282721135123156769543249608998406677019345485474974833157169605550609776421759335303403440366757108398057231670023837284120386870577480222947134085512358683388341621263352550991435910419559848178743166562605103528073579786808313911645223671643117748247472743005900981139835967620440901131563125502119400172862445696309837287757798419585248395413403822744692591056418533555640194544963525742736443229077872793417109296006640645971198781214253663857590762098806968385807672730543824054463171539148893120369596925964945490935910103657337517161845593154010369209892029163374798990605700075980106360441283858164174271810499919641922102104199604804676326944626323940649186982286093608268874095074172335832689329741971382940836539650251969209185493950862980892227517385047292578413368435636318915357492343709531923482835726639676067740234022347584848142907766273337510478471504769946305894039976525133109323156360058765299558590994010506823381280472860081199365965131973279108058668971428709413246778369374170748607449245317801047952028838149195761330023773010950129313986062852120812651035689351212279572006142822652053783741473459155583512046829272071211796777923732391858640405888068395239576094918388350910468487303012817419968376755370993306783396828069054628735285396273898033958612227545749181743114990334622830784832588028353092189467624633864562573038727661368884761181934707764388969375801264819766014419531331027847607294523930607434167359157634171614058149291015070423472259633383348211619603205271575983317860490644905459768896815771509172915711520154970202430109303592646091683857625979120521934842675584998137418047916900198843533266256702080319026432383976469275664387718395317687959959536794182860889928837839088234034289670912951401354887845616017344115623698830823415976814625934003868119253673251570771884377587045194302908467933373733685560276045036807650260870917588271312123006656176376992323869440881478092093716521512130624629813941079105738370120688549941557951598564163976047603268502005366244293542727995948825994832410279137197072392419188988928956382238967459858264472839438692604124034763900556740762987322367826063787708642508498450692494388784610207377830565938353612187675011891551338917985035296058803653444770643707217987566301004455254593454728536988505332485503881521340773413298469200356250853160236761539234509027996285826048466500107251541541400086016747179173247310230770515124097262994654781612350327427502603723913535521696010123601984643137276691526918242371746514355815527176768476330465824449950624230754158945711213723784536547482986357834613652607955505768489132668694245550573093994728606096578794579619455123343197823566002931969175406670985655420086484693470125997170930455613131657608553791978461057873657221759166638222075307885829780929221199133191475394920636769352126465075047783790791012712907487939300492388218002806203992879564705681700706524047394044418783946357447681994067438313208235350531180353923095687480444670597108967417053558081151380525632439533399356571227009837768961312696625427111136529462766879059680927843237926049753480663186976343623279726811843501133186520915433023809722052079043621477794193326091302503801185481162497872220427483657850703957279619080173681709675992056980158779547955577685137857595413682724828139618969602513013151455341500770554328413966876297643885583030870578384410621198073936354657959754589518213803542541884336215204561034297691646493084725334161106915766987130660923431296272098137871632753355312894861092109994967914042603049164864405180719239832868424156442731044095061110988692784905146344242778127178217126492157490982382421332276610940598578757855275074447227918853236552876392434245786210269135769884612922338644038961769820330107436758221533925421082818735300418390221601191099383500445698030738468555174724049854746050945507534859320253049628720891497063317857779624177061299880916786768826217270673675710174546045262555909871565522130390248040861070924906357685174414833081541109627340118576776845917062801053471999511082780988086508861527392978449865229580922433491929284643647717941759035401374324257029758639359663166053429820608417474973929109214203775219598295336959552875106459126904966302268054967502038151527198552719639051240350557797347271496644182534880261366412477067130555630496718394984759259829348950000740717076135560077314291905011177644607316492659335666518927849555348054581181492695548985046537911166585847171360250143344201042181730017586916761085833301157839007374845310931934751990070312299227644955779474835330652038592321167605803539971180194232346420177000044454013670631580132767582728335883573709105246086331928358850250184393718751191054288747669690308980960399133070715955506033524267182083327938393719198642692092912405402180478965774398190434692299246640034048046665201857080457086253732622158823214129239677567188983352828585492545477668094651383304268149344553835280959459047912407832348956450692672540010360483509620889461803725041372789003389880320845168379044692330173814482243820614775946272993312346423632381505836487102024933192311656406843259640820097877634684352695596203861136658781396598982755691769069093782096825432690355885523697192314823092464228772278472307545545490844748805523042151064557527611844104649539103206414748576940226638567838611971719165543217834717713238967313255512227788367262122974664952599428508292616050139330426254487758844731620631540869121868959684483244175907339107093403181847404153228903636402960880259691841175326893247970897172624567004224142448953119532595681204410311527132243443194788014011504803910714977795499454670738891564140098566349549875809679437932973545124647723767637665420084393595358444346525811601823899539017976838785900490140532198652364640855813286664059896858718853582190877759128623217789316689468305056866875695609032529139771341632665678202275976653419512880130577039368432166657943056046519964304316016435427112407966106725941419084382482972265994163651366193876064380342141695841938084444680115542456616803519794585404727746238857377088620577054351413488276799482451289171058569839280655835558240952550751544201640712248080717741795101274849216244266582367097812743969383057012297569888292877480406804875048141290192148793030761888876100629985536444216650498109708446305149214711908038645443006500149554595089951806689364020576149728663977550395380507354168672877112707073533447566152020138803051478554146604314105769825221944942522056360440483949557289359497238194121111752289185129916664681235500655726231080296544877293194005984313797226947371855383172691534597341893343585286719236136463611002056820997805870393858935270271786430332925798053934307236100966101198221252493687867967245094419176193577411318921126072287758578148583448174622307145526334678352697271262237574375499356607373472684522933451276166037405467819678261587146230900242204774412744285587279326872995053555802004598899766784778498715496957879083464833565098022751151785315052281610138865643745534848475391022795397506828337090169390234913603748694288390694536195875988936742088988024910518656015107373843766752174989040327979454282355266253668247444787288635887818741581550924081211803643096220775434461738814674414223647795378407317080557695474179512413413143287511875826107321929282625611808715112929320247206393968107825687711108855589498271244223502020442975526453598732276839285474218346062428746331699633862835806895995405473769870170846879616416060967687807304540348712294750308842687668966652347309822233939243798070058356093660495689616808922315218384541422444802089016850336122440140280502298651313691691035393203028030482425484938264470837784391641902877989252362065694480977214448749487927578225306495821540148590414549588567336602946438506690490896589993890203035685884571402370714718149275352948955314301768474960811914191557639387757578900057855491759052737666635255447469168786264490129833217019159579499231207879032507427875606784321641000907948160506765115639806511329957322349582061028649281798335984491993503583726993569094121571000929231701954260797833670655009136164699941146104684238902864376350634011365758480121497667394537859756518745765083879093518069593068444936744561542077338875359978195182472639222867498095650593694549480505886141016032026766596554644900712295938235259685241536496985584380537960295665796265875241332947390864083936282458195588763564051480203351307511415195649971393118564648191888165234912342057709906051007542802085989895027844169909077362610798516082907060457826911646310879054139097499465035690622038418031419048269890428826352131228843015527080200824077128899189966940764218557859186548650823681572857878587945832254067472720784678446530868471361652814946005286367951765261894170279398795208655961190596340880937440045864874526543677843159141417969504609465462250658312385823348177912723925831104336640369157916772487374395278468991675921606214567009979111376519315814159541233300385818092885310658544726494620710447162504114388814377312472354469137515279176435922395498396384996122258582130098895857133325807978419749092958069717310053555228526894724625970445645629568400666856193875016699340982412972120147157399954302956734625767094992755960849637154732139102457743401321118474828277695576861527608126352636564102093290762537284609245650471527835768885358222326230565978885095651439315022742999524787676880899274031759409487664747942037729210067332307052254047286573795464602435903814868624593228342542081680726674976501993923960037654627013465799250308530595660958742557717266886767629142967944343296354180536196655130061753829528660512360831212929096393387767967350137758714992765808547267484047967535585628304058654219896161099782169802342834954760427791886385775788436347186968780298794502324800070442899964199543504895754119078263135642138545045002266500100451073036240078216334810206909140421584606448419578047941259550542603616778389584060300942399205545087578659556625657024600485304550336311891584949753689372093491411823220497906649850686746782254553836196257577208252467339316619972801337629035097715098996180451230334856602394665444023278946438665240552907851571229776309806687631564227983903770894329579562348738094291731930170643149461313091362462175376021529960119658791535693573435973226304831952686071574763581917448766926802705953157644092515325907695742763385219510270510087861258936344552787072337930997015993883584057324987027955419517628232281324366333124784278673003293902446933554031469107501562205831423237541171765734119943545364042643220730318966326638803402384593357692501463226972639870116254178915175088312743411614017657586389770471346358132026506569839923896973834903481551179635524221012646545134799191611711112194642492264565265012042074370865428576316063944844981711977464516795139370088675876146014235202682826412110653577877976250726106547408956381215628575151962988906076214290815406388779961347656731890127520417447104360168432720155231454982899565197875793183066145006069092945474608378561924275756796782819772955000709879203298470909226230631850944187827457368672552707324498861610721521157291958114619714472456444228421690974224878689090349298155877267082400403565253612218691470645358251246256781313906920123102485750657730069073005635802951468933858497070636343302487906950540101052655034901409467190357020077482158039466992133758052509282472735458661669155303753442153206882096298662130448385392285575635068797895788601005039926998131472408322308982265475210216853431482103369721853840948648613323203944111701863027167465797633028424392152591765640919824153072289518293725065078113233309865957872470063038629984255967748680834579661902573878063638993044094053194821990454978888506046885371101508184113285609837170090981915939667615905266765922634705839743432420991874285540208195388063882998992082138250490225323994025096631087557517169390403465583777596697862309473756146630826286307043503583933892934557332962287588618387137258648211027753806175796611021322260181063899501884319468737082896433804327150947915618615636032063219548785039943112709345398906945243266204002788912747071696193678797289254097480433090187596149568879085529178089019898672773720220240482015878945201653432549170708355185486050973231151994756883015928196448759885059622079225462346948733203637405979880983655682189655823909152435382507275595115176803053030270512782135438771743057525957050687041775264684493802079190598053539194328970659928982122037531444410094270594359523754463382808393769203654085790768661182447319566093407755286740387858031004550477184426117408425215258808545079123851239308333993762701494510421765735547777974710001306589142049325352891070536851090315633120385057626522288968257665439406230160974351611602090847136531921845605499153345565327174452516721522406930591020948782714494798449682536021445301555385348743247945902981848070032567888187758277289183213638873846922421452457001772994922806364573196912314198921015659883846958167442342871998864492951966614708376960131709460514389955950952590036600694413064645350315244869846640289536816926404181722794072398921425472110567213573039308973415040280875508342818461049849455749224275380537326652069732900338319933665303553378051597907634769601973969361811946912530753663586320921679800629935477515954554379806513714563658816222099421441652928862284514158876068169345713351991081811259851139746049356342884161149208639490164547864859265410546898980443907293033510415362587368138569602091112659834634046440678051266810554879107379029172268486092365964000367997883687380630263984462410604272603884486515154347190858347290785710734054883578336283079828406768909371861469373773446326548459601816661659353058108449018643596919237099548653168715633964201549561597590074277203820496159105305106580756233633487811533310749677240833337067909902172398288633132632391227463699978385126381640366428058652829092749227434147057416183710442124296477383718753804723641249508554918907472784280643932833003283745901110300431082285754877239775209631371287775511744954785415000960703101474505625732588503208559575070608383008024321739204443631867738156306507592437957502945587876966332818061062606899901537712412671633947134859082816792412359054261811908148475589179703425227221713428120908346077219209761911836422163717214712856058612386512965218965474525888097132793881138912853805261987078376743403589711937269199839541991341498725193000387245013354120762480707890034553837186342317996447330659784431289090982641754765530211645670206002943656451129542795872160297975136390690953572747625647461505239562073491782605917689456851627904297614890206459005980100497623114958398564470354192608016386361631235422096888685603995075550496095651312028359748370412616826570165061646340541808561761801640570156321693554130781348175761956956292696481731710014281056798483832208466472510296173539740404479514583615347396888601101382627907216077235331505915935967622228477686532917273095214403084383563069820266547546954572417132574403667120437758513263011350570043563486782235057127877660364432206945467553340304510504676122310782358540875180373152523544472361474732480263576661246832073230653634787545427785261890280519353503378001366388061246140214523915696936683960792799574596185646182807217388691355371602730529745555857781605686614228824664458400487655790016451804695605849952428037032214696976684834718407054571203366461663713991249995196319262843866495058596501107987171032010025030598150403129294527612358419758781459737960772819027906467175021402235757249371147427447574403749873610385392277868638229202958354248694329775551627561010969986923731258530750418990840138454624040038944266056105102269680465880278277096212353240022380940350524204727653666312738436521282733195941208283503276232676161953776487463989983510984598838800352866231351194556397990165457173895985079920000208200037994482175158664684924612901370987385398852161998654162028940667937846533704033754855046452947459590938260107516536093632879791232292761570247780732652350801258734478122371913814525816889257138149691862813201735720519305190642039772858986260155622330304394686275133560655138720762002166795957132737191476888681139728086721252328563162182609272829597480723776203757621011555848285255019151790310428585318246555048827901098707095903414210655345127091997009616686749949241497860317905834256330732900922760430192866024029205575897976533011513064837382904781963242885939651951786655045234593343069549479464869514563336534955649174310818145333444303842793103365085562337054686190534799044595886711375770846064841907624043735391344807792384719188892989730585871357754558531883544511149968451103961646619495796942761435139268778060783963569404270244071161789647797190790742026153091559665226066977146136042611940736121857679828750023091617062020095033329260136522116866939516919928010323035380810158730296951594206082827835524770211597320886340934895906121376030047023015982738066450485455905135173941741888727664853667508160873956595241750914774388351600132463421140061052825296897841499683248765859565669194614039514398574326381826292001502730635815935946134847141781188036226931160743130428689471309388781877286133784393020813129585359129114228226277291616651992982306382189896293046406364396936321821781812013213474767113907530767975526544219101064259635370844979306243601214935745812978078034761914012797702880405693409982816379739933894102445461417154502967110391296895345757215505576145377067016309049542983687103254659256666628495009232134419126635434215092106047809235957085322331446575117066976406930789455849982730520332269722858223817725330690151077030108157409580093009699839878304637341096306379112738281245582757803482084755119551688333984083427220502805248662126312900268135123006918237317002008035777315437522952065394543878900426862429219837805566197024108199481249393474104105094093664581698035572834661753066592330724024241824070622672933496961958683517930109926226532182797460315000464409974135734024898443571322616439804981648512403112300943843387474469336426159772438728070896662134638982892996273598522184340638206725191079975676486715014690985661933422023353748312828998515081854137763028819153019522269899378057119103393244443333882040619813752854183483787727128876930522074882110917349614548198177871477032129889597051823610840810767927658567430277774147041973433920584619185678508347659632606328692620552274587077621732573595597748719617760652862911264885493349853963431044652193681573495946212197784936560710452618313827827406545585086239672384678214197184367206354927999486377867523916470550741851723229832656799650144660285346917654857096491032332124389247811731089686801059503301117922795346435021850804203466717854212835821795760067589069292025883740291214022970264437306315170072774123328296092775385448125187888362024742327091799955413190539792729904574913792690492121825973874685331047897417257587463156325160028073848103898971186169637212263291505889022761600731708311042786621099673008609895705213029470542896682958596339839522552658584471126118486755433562304837703723534582096400877341109288743129132998144779675252475162260532181830500078531599848371335013061627461278888846666672690216862392150286860507192242531623651259304563906781190822086533170948716341262755364939887291220379128395498469466414838640460658342552116722538775887384318911891025342656169655645184600420475922121136146687417722079370474074452605167631553998420966069329848686857830649884496486917000844935717688344490164524187514026094049735541133208426911649852861317955035627543152391841291817919596055597620533894816899727407068608572557540396041984831457941962816105156967927335634500075747166363388517474114963525271755786623436866527224613579080995499189932229546979483154041976540360007826137794540456039136943449768363601740393799762777341161958224615537202842274544713182566805539601011605247507355588726601967243131647213553388975177908840333233359664141746268225934134034502855900975671959841597410111729240188528748844180502276130653839398071901059043313681254821629058246256529614490825107078786695397217220313027032676839039058275523180534007891567735623440360208322141495841650430982772385063398286515299501519918644630411945307931059647272660947328392261072866708231914693597517644923694662872380787614711787091177729591754162699164255025914237087166439965196383856100146446762211530094149165729014207832443576761574728187690631676970325915402888630635831900067871048319647677581305549160479731195749565562526781073630820498030877659883200854182180663742561699602553801604459518928737873219948167949704276893096669305388530506563544075411661160190870155354329652198478489709930353588448282976304262172816498562875480543644848615978739558811886138627123277533499545565978519668483886764784676311712558739635995075902777053576997098166831952191666080834901095482136780332596958214981919815220154060505513232487502943024558316860924083616061383832849036225294528611343186512843585555508425303163111928995080291015983786280263597637822442078275624581508702858755831902768371889618968806254311947154870068613374803500318084010011047229880915495678105357478725449146953448886744498899260288793724935621033310271385168923901681594810473744985765830958621316294770377465755959315852499903451053069904967630382841395122564787178513087743289505541522292970741541362279422080142185287803499450664101452696816624648414724972425407087380410426443014945039626305415527195412131248945991495882373486741499659372695884701927702452456228495015349611904328702425701692040158311643508874682460697042026872149243486934323423151830033502478917029407823916628997641602001090901478714754529333249226239133259439933007563667710245051761002435601587128901111791914353092062240048021339920601000364337034672416054965353325181229972258859875045842234514635359192277278488270899970538016940159904123776909553768475761550976494285140004370658441252703375984003511532569227853423404833367404322141083255255851255783072470366832043682877666020962320154279083697448875377195958680617317094066262768207983553467816646858708955307780216718726759922797092356921771368460216734060892518435911138207785630340658399968548469838298266553681749282791312905750961528082158797535363150535395763700316966258458979417849184908915697948311114750184877709211479139546954803864594077751468710561488887573747629903259645299049093486541024376563388596945901717174526746915977968480493658493448934661515086215422996679195157347772759185382570915859280085043578451440062917274341908076293654279997562212180706389787945327882905079958268765458338765763351716830612024995272032696960575182851229384322200796236388516544626031787811401237217705115840226854933987809790857943898114703792059263827820647561522589076067514425210153089020118146871032940782839374542306908323151690195023260018557984601509287978136323648998328910579540420822035972138650014888758783340262389843885371066658889441787875353663432241912213194747312278696058153075468167199131676373423903298038607566833983828433293021648412822874919314062310125167831071211579605644006502835781154728178560048427258038843215390295253749773273423972155891869219867989413852475013814298937720323702346935963672320618978322985189076400423496219349737975161591944545290881865480796212414512739143278825981758488317393127296399060729045073593914686754772791807365012285610704064974732291652545721400807787894420174145725905072361185292843525231857309649296358436774285176960294015524336717157945012729741223365819848268938781212262324509012566856531946355827088917504772029884301498881113534440803305801766012058177189208374525918785828846147155681969470449350804862483862958357442034114418477271045247044869765038756198593114195843342778081702731539004550231881788085208690260385167285127992722504961881825329723010265866460002246693396062891703889108471822780291910997265108739893324654843626629598842168363647348831428818620918020828972626091565276487401928951014138089476589826701385794683083991171167201123658693571610786509571060410923373321259438705550846109243257457618134047246009757876768723144264926509963211705648272207578315460916722106709866677439855644015974809241587490297209246294328609687848412533791253932041027603452097952044553943889270538793519516743614543296858637092316493531985523147033684348680631955247641533132932070028302080131549692121968315106341885644241659846185403380649991400672484184362395809035021569809302369972586872567637437948989310352288508423022719348506804684750671683088869048536228165784378094913350330073407309656172220879190813619489894952369612199771968490154239451565799247544566660319687335573153517732406346555149115459972886216754583715451731484730298802247568373425682744675023080894741611236512953498023814902175726655172368635614700057639891076307856783381612322975112536561262584581481249846015987052907796917927126874753516330219810198233169119503677014098050980293437631454274364817510239893940013085404115410003397479574696994959049004276923099274439254305985450919092422614580251957192931098477125996599942939752480567679494968960845577461558566619238954340834024556199457419279400593344229387682808524123301013643811979161347941530841865638435150406423911627913344315181911563322579440122316572627560013734368468733168387495402610440879745849079951964346324124112274092566006324018426498031041885151951855716293266150275056687321247834401761630095330149584165519035717160252071522667055398080209062007178460699582118214702399036838516357154384759570040438618523563361548834566601182087786944741416872894008730671912153748409884026315910564741678292128435504343839959134405900831136491641298831048628780787903024588122245904256257934406336376321966161780951366902234030415173876090009590957821816513881586920894153797044966822158400741173321311981586572456976590930063808855582887869614315338178540695383021479396224752944480222581074130573568982972241241820410590976278184299436923997035066025145872362495104244668861068358268248513229092077491132512932934309652983748346772605843196572256555258910307673376637085175438739076873132523380690942080407506707111564544201582174711756114361154477934212576530591793071553320786490204576750123013258268289654281949347187736590068977902704485095841954477290533488216306568391556060066024696247971919575120030988627528701415994217252151207540666100301800364267225804884661034452657507440155396096168080514891894834739716996997537100946129115465329003902661558752423519747040094087321451129882484236987047287649029161555170971802663953968736598007796592471836906752996069419488145945365030713868687001152180911214539819751156976006723754767586593358623509885143665498326629419000442397777558652601110903328569822050689551408455561659959444548741555425599678498048001463913701934053585583418706999456944952634501883548979913228118843680167820504575762013200476577482280702581177670263802311786108473932958939210459698310401005129354457630981092866006161582875801368182532349045885064296020058875115628597052642792027910942576996239553387882703489161741786667220996994648921526984012253429139936597741604508278507632362552029568416315988637488039316589390484803433349108966881914628670951389533096834740760686843793115576971884821377071572120051194794895668267525246686324747802455131669188542442918927800797183275214448016962430406504461144455415197507676288329068795645072152916983265249667224912676307139366891580858927503866949105437820400420807324776671270218278119110953801333055969310459573016692608369101058814692395516029886151321430328155214583267080443895264288869645446333427279402604035141571006252482664982098230920517973569971273393479059084139900864546168921269435531836978339147122761422427502197446247466691394322849012601174334903957970770726753963437059187373155936423660985014690322756621071095079753547705577291889605167054739002167503293802828622337158670491495034985966137877924733261481814816008733807017306074743160806365641393755043567036775813769402464705615253496421241516487236771100132340678941302344007475135367184827922286932655589435993233181655264282316463252842038454597189434005975503137324860622042491538909940261405385013931323289243929077875878752977431629185008786203279990547972419028255661097291273957036364003913283208701636850508432773381001276010427497571488401556018825863470653842511853987634677444702369495586957357154337557013553579679578807694683870761910342461132734448627225519201914224399396819974641230639716514845822597894817053687857652907377439104029692410685889102917162173791837162987012007787393896248989179971850071715377284909330894359917397571770283172953397598696246597834163344359018907976584967144276530007971346824815030846658046778628263250254841928976435960449794790949513439916143660999519835970290957965748061636853456538978284205858643594863208820191617653268504880512996929532730336847247744295160498130590062720476668933269264706711196847443350997922233955735405990356742096521833487296135057011111150179786915893174388266769727883772473196207043034611582625317377087001454461245550180621845116589755677765119455499394452247267470326383054037871739414757253594197591038895834209599917033053174211474371646102661752969570502885065841154858505483917721749699974357907048912677189086129833474156693365295266539435968928636839969685406449409854497171451094579657036035574957482974323995667146008712369090413017966656300921725655595451664038137492113997635357575455576961787087947726196318162036532715555913322651072581046883279963607007238717000085254945701539899293605976180049681295118977649304037194197803557207416577387511631582484544515475425689689802876492372790687799437905796036481038977531620742541845353056606663277146776639468884072945586915995509324578952652619786061918627560945473060661498423843912625352744674827305255162713961751174821070890098923799492298741299930753788108694744587114301349683936475497025897023381830387760007925666764851073479242192672546039466352805957874760079883770269818954289292956419624919809840767694331082720688874303655231324278424447136904329460064190386725688951932724187253403757322408307863481561651579990059324111395967591247555585459994681810402472159469777156040902219998140741118252777152975357685173452983154290446472382561132685178602376948411989840616111702460811173225654387344540046433765283533653037483152114266426570017340072777607310887010395615968542321686291704717683261018358702051540885230317671120270344442270116503192561540733379443139281418317053855041719283041461258396135279070179464887258231354847810363076313103680016803548460736416837670065531454315842143306980211570392458160195807286678452137316256927599005314600889234280402192828667962458507083911229344104778242814904309630452898218721248727938570877423893140311576197375393968219724624577097481001360494880969354767737145582546608166846116584520343251885090527601766888912139081109311722811223546393742821226038287552466827625418402297558831540184354876035239182974826799479908387711464637916801896253798016939909956475817722054879018112425297910299076507907087003012022344809847485578739925836546648742795700543150234357327985497038954486203338828853020004567461135109318306545052803441433877945567818751517093848348534167415464307445323899127554489439653024423255717939969132309726882256589973408353087250047418428363821734143193074904610665714290573013913245054397973427939487252653816588569198721132948361940041452953622586158008527092293883250869042297188876507078859514147395591150516744517844119044571197630929307568079031645184669994632929515722453374068887427876746003923620237090835969582898276281637779520811584933171789226368563453540399559606038752031122267882422986561705933015025767319988533344038678737063577145594469967035917818336028746282713232712004636905397751752372068345398786705947800439311452688139907968905704453269262197591005739286838168023716118651267676151046665706327060691394061423307753692896386278058387403553115874582350882971455256387619208546699489649600747286693906517525500736891053031100391893381005504234186961209086642202050034997373685908201050725181006505292392480094102082019544008293008905462582961053583554328612930456040466083235559682892593056511556122049586667613184405160923037017529774595424262452953522597286635782731060344248839441504008726124892897343031160519072739891368534458256356995589709063139722018130465401850965925477516197569358652118931284568387213267716629533686859187830105107860216769495335382919704001001751947019638172827836844286373592763804293383083271595548831413734031857096864924958417842285160133239372955192983474558088722815348161710269730838805719251693300821957861828293723732689133153244542046405335564705394101666047052034130515808995047826943584905808222375127243133475107954193047295004251725635866565218668786327541635110930629068434433299441964837715463781098307557522322079456621955761235189205393475165042060827886369506968052621425617198450777257721183486627213067247223000781889732881884377300352107048492025742185199481473798752730616992428327386715118297256117797717635723636486725144474156007337297989310747798388007804687130941058064359374795993079599734707645903856214455109610554548177086732575154761010808402378026924945367985800240384763870206484816783075647160539687799594244813224419586103363290662357436196803005186229488110428880859077626259853311159256695519034963820477465927910906104896329389531377710884131241334621728591783834239856891980252872920379797385693388470867601816932737232913080200093588033431263221783303262111403597980239762029801881059971675648496574148558989799026540237538219202894478588342728550537331804680921147918619608254268557372269742938094202273023603927922620751843694293957037953016322877077172282046166737342679600955403460088314096561584245862902029371659414102107296742658169311775002310837105830900307078740309278765172866599234634348798402956678478299018669910537461497897310689995542645332102771319730500987700264061800278159891754485950859047120443387047368500932208740918804891770218318295925385529697761153681925544811499789839340192548446659227601536853649145838160980875611239950506739852793817044423835138059269039281912827859728213163750709944712982750160453642973391179754782612263488730544510247117670691540461567484254115605179643650857853907055327417011040158497215672613863882936977603982490772852318260679578724395438599124459284442708072257891974740191584416343686939973703844165417842470013625224068547056196509471099263702148080255287171056017634398018761666019661712484653673376003124204429761648098605857815206545504539271724667230835365904690945190857012402139962606381936181271568771979990042970942004671373676308061416029630965131268437841521731242420168421556240648411931660839952889935633383774829816950730353422484838100249879704386598914326246759781099333488943800354253555333413561373085498244611473965873923808424705416762697736085617829808735707594805802584806548554650927429724674728007480546926479103130360947720326648957439135221966491005028476077102695970865095057438298473558313425610632014481865707647739625134696725680514067015561827673849198962662630527570027264991987500188158249553949532504979216744550247173431631229029541823145691845455628089459463415824984390675999042283780839607200123978132645080600482237380870382504569842663476041439876213126093248999262620574186170709327434238181608756599137514804132447100495592644982656904589149214583749103291457823512525805210549227851607260282137731537024553144033647266816935567215732814546955028756791829346148345085326245101892269914593252264527583155340851143718441176602873192734298377230373837812112613625907951855453407991511851827997795302012019527646436034569948539381546269491978986142145429498231253206662849249997043475534842250128862802004111708581131656783648790683068129478230642140274392362456010551954081086881775758846757216003848808968876787918729184722389818650443766018699105815238421066133309486326956098337480691640647563997326387793314162757803267239437972461541229370690441644694872193378209972674668807746909138358554752267535754850859110268674877519816764629994320344607494683567786231762540919305363788005588001337933107332224038878540057506464028264312927778211569423742352377678798111347133629489130668308514839258984454302702443796744973088620267761816127885976070835627028696744407555005044616944899240098432318398441382844926230385954650868254303514478425878252957184796125929636463699210450899110659423774634695464909506772320367038369120107206954751668530916226287383080107394829450653785926760183676859718361714335137042120823281079110997618340905913856394176508447594482529166483258519841352360459327325733981906607046343916354705892159822358318394282012923785160317981774936949276597116637597608146339685441975424075560181889289152655878975747193427090474948083856591640084964723402872156765588877625301153317364342693865363689009515388073320856509497084010324695444919409336310925811231270051403953745255344038244911218199768662258140407899421729641399632914681877609580959867042500488528945328231229034653418385110523000610769880269090776299048107919039593885945624227912044823075259063703978863654614282978926930912374350489202057701668208847741849210002947225740693820216598971724831174046746813612598116015216146343399099215406364838006304650025975123569771443947639226114635112090550171483361101344601339845591518327966605227456175524568289727130341732959220691013657912784632066972396212850373904054882067376930598153959000771027884425957000798984489830294385690350664713133232970970590742562166452705654916857866386531472741104470745581196848170196170419886159861732199099184695509957079096731790345686368476117243764646291847766412414789048121165886970466232406905792977994515302683720985095601461836483394030073924407574820716575082195835796965400691924049903239795033161526877648002371878456732946384310026994183947094753766230486912535172026565249401447690062569569180510435022129236075581198678300133300394395641567515757187664692603673605342840849590494388987484406187236285021592370355543534816598909171237860316039670014040084471083487021463096035917235380292205566826049841254761506206809415500055300635521320965998598578106134159504197886459857497578387613418784229716416330144593741537537595622190740780459067861585701308077355141346710580181963961637245829868068026261675143125212184045593439967573920444124710715348796416893696271951447871713455647041321011917886343848625008978949228649146529244287507697866763331470350749608215375670432821864687662349101706279228916603686923260695958961807492521355723130017336785788775492616527444749097677602161560499306571887957779846644039633675382999100109126222117746913833293067555694071982672456488189235057315701524970775777737566972124320307318054168262873899802366295326815159842775969531857551803497134598974387918158510734360917169514644046754556028728030888005557063306258723897537943546952041566642207748641897448363548678205030734324882712953466509956544846122879313358106114667463490205111745826961559606912738720777019033061996997430555954506375204751605974622992505099416102046826924070353073311503522410791675619002764605325543208347436060294789387607638109807969915662765660105362037219074785257920827232546790542904931522979608059769294504408118248346820532704538862642563134826389209751930567282325708367288296684524190672955308653420803417922584077743449133597876471865119341094505684461159209293895428336700701093408430742275689140258255491143525993679936030338698701389412730153836477095030684783771496686944344734432826365146047877150360992423679981751337924135608756607992603947542987006470295254778243319111839991614512425915199175254869597111341673439278211140833082333860189411760573152471412181637999032321305796616802309769832465171166234332299168191089393497938378879460319274532433929257484863497003785929165129846687309214507529944031107969164897582986722882193676218256096777102400563318481872228890574805350080131753854870093144808036812783975207961507516623605734720326810772462438263139573305006402235596157393896016175872341515452993193042360837808838700111978312438526744331568005630894140196158822810374107825412606019427361835996806617721608164006546805142644209739507708246744164162503258971955835390005223517013712281813669703703001989919076617688937178238024863989009875478700113670511075012311004629320126670990446879362991491959719010796223754949378946592456235123502149393697610823381715643990225694772033727390164819023125227417501258041796143869180391905480692655747167706658107792697584342596920243251143921163039751519454191609414896722243176757490675193199552611468711044436388142094147221827036235818394310355523529482975549175917936973484189378119403147961239109523090609685555906254923261613680666436050497468348277369920048441093339339777048204863421385631464080616807051683760198736197708336363500960960253926918813076132283147777781034719562253888715405924491723019283911725117704782352655162706414724409860982679636326496684339096316727774511483554370464356244186490251642838742913313063163603368207776463745977745890007767972600771858217321861895762407176781601271463851298649123836094381411747949964907566129352793305449737868502509012872162583663186322492546443639069187199290554470869668533097499640227787036722684374647088922118520378720839332738127858984900642157334399177751050779686620728867171758741485576358832488354578916136932466017719433770804011767452211827537831252682410659004359928391790912712752267993203526034269669780552704608085264971416996753790382707262141124241198837296119823557663719005036129314158602649028249755235299687534662272083477828265824422080195528389303351104605946190453969154862340104180250970637401805411473460027000835309829354242006524089876682991392181852101347435442203508310690074829464114452956150809901082343759498929987818601866466942866305976337099727459237792829439223384569551454808165789918554765249929719776149918889003889971572398611379226369104829217627234771997114134891165254906781716149354471507624021892827786477243182307204652220660261971482844675486951580719629087255886746964411742115755303073415037767766150257664133400991238254246620971793189350401439123725722295201965643203386125341774446327013245844564417927834650519804273006691548677263111631356996035668854209872614294938750486566638315022382933808282683383386660258115513122347035133269381572403688828990558344938958029777600409255666468272605460740927098593747257718056520029070579075454468724283518089342533905488784682387307123545570209674904572071495169742998842838641235959320409751583773305737571691937265268401821075399790949604504547887394984077366978698792814737220443998858380671920102391259323981536931175443091943486620761081584165279782812175129142040161024284194458415961822883765164941819961969040455515087425247755172833291821232781822125972837578878664569430402969989822073458274254787466931155416594263094215752366949375972281353595137263544823835361343954453091663812590502504828630288946616875754362239837786968213153686990482630298488378580175244032922766830999564890145122051592824989358031853168169221346537110715201921425237267444047843342764755825463058215007769909911964269756611959653844209499600059970547760052825243556723737668763196578205484637592918773627042285030516077142231227010048102348627664685858070347021827088884916656043555035806408027388675170858128010220121908826076257046385380729347515269181789528649022734238255721919982505089656156149784816399051810666110688984734189326825068567132111783489914409879645618943287489901826476941005008978977530688817182163950405565775178468730942830787739356273747102687956615587675522928524329157442995267915795547228218139353867614325165927313193086824323384174535597335316135405223490499498953283150521771676310400551157188007762929820993009781129579825895116739218414762043670985853034291076060660354855286240974657795984347262586798346556998557835704795314992070075966834139540942836456281521461385070864839910736026804786092720443207962511083109774131933021328174467885877743936389673099756209237726777531677339715406758811201616238394348429394943725544966103645294665310246695209142393894702677741161048280053407046927688884170905242976620149406192067724224187691761419351168435837905169676267921582903252292743588059961245594706961930466338826792011034342676349790222348201525613379752877565732112850680451921418114977512366964251824035908313607094302793033627962655902066865740244200280329853403209230438480965071729033661609902419856920940632754645880527169317976799417678391812005952070817484994482878259398374468691314691917066918590792216697129626259874055570554151544361226289660839909569375045583800143798993413490107573652242867697101100106468711476859627262861073239502049755595525285377714232503737395987557015303946206331195892772461784106982320493051564244147895076796498271074798837181331064580902326811212621281976456237434190565769514179951007397649481769679928315428801527936944155500192231460925240799550205538260874618976364779499171109021305712663804827345771235361518816385583827630210399541141732888840173367033182167909373790084709591005151764139811794047066813841710268077219574346126086001942990592935617965343653909818661731294756631731039427296779161698730938171900000060274321151242521293682445903429105777755886132143711021164979817433441908759384108660140564032692979172981575725838389147870021277287548260081544944366762440050919754099175466835146409863422941215502278599449105386752044594787354863611928020412371055547543279858557083635238800807153575796310350038210112066031274082781203862151363438241032616940679787455829544179345507466723788162684856813507797015097808426090161099007075058439782197902500143644856129546602473180994035596571369018428845662247832850253327798905569902194611012838638989777506450986161364162932378234334943678868901079474724182501033555716445365628001294000669067733007722775450603581864664081942917567479930130505308296525207794950975697762113298518762372399342524323455772837638910634110214257300751387139679608039993327595996517533685489292733893188832548907694626296481428145069015055582735886914917271552743183871407578457638120698267654043625547709341319027593177327486598585080323446703645702828029513428677384701977952875859511714586608289444967086149363265086844039653285928598850724450082682595791491433279939996520537808062810660519686144063545930827115211040054262831579394616189825092336391162462660838418335155004834956008272510407622077061393534566705896269756003299775115610851658936501877935520471635718217143941055167664453644388847022009906575143316076154777936199163613931066299631375855243465774243615813945905792416579521079962341914278374272609838073051408329213533945396543001774090488063605468280066558025934278335181306263278983397639849747981406173719819529995494173496390185137027193949992475396771200240511796882589911218186838904509771410194373914604724594079601543274671816023371045791195469200346944462807762676022450909120666219775125012488538006591461548457186360645241119992842463288693998037363229806076016043024430407547169069047390225410474851603821839744099356947619587295876225591860283600940763122539794181507939344932518841293437411415173857378375054708437843713470017645952164867642584602864186158340328760091326031089216585042522206677505387557392695133683534229872632913609110345526930158540181707367985323714894195701635329610743742697730918608643532171044556013880108554998106185283437278695191611526143923319162146464105024265720589825611833110253090960260568641184405873567676193159055562679220767315381329558275703200290495539166570558278096125603255921116779850700590931667825290507004681846803341670180200541803842531320189569208518068201186726750061847061739316974918048008790058710580294914770418913967026681039788604649852104686506531208021648693592978418863784799787838087254553329112250986337523353395013132896344045527424054603277608840703020702160653795672606355560983027456688595369725579239933810622402000506181441375234768529399933030404925666125592136873778470276070941661547663456765770847454151516855744316910202454246829980487744077080880534131659480482470781903829512890340078350443913979371088012818884299865903642620204197436220037129710741724649746297697093378931451865720578669472050454560134094652027593052988913248298066322881511747105964172438698333324274528148559014096984058145540023669672651157548539132490498009325482211040233673721040418187076621682352241213896841388007842473653533484603548050246806783353167782332014121072852909091737790777983605197184864307308648211487538156779403936701362107287399565687155963840970017045688440445128654481485241489037148588345228183286158612089548337366427337754649224231069763006747085508380831135247586738608319281333880965482310613089758254944185046458836146984728973772435884611461874903883578467091388607864044690311934444449620509092884002708078483729043505934065801096790366462748160376079268402002002735167375670468090807332494036480477225906652018653469759436065077792723175261631652703603349956926511494292493277155266191349946507492563076460346725031325823510905505485213565209169523035385039822805908254824327604998084107546240415212935112230047283141545074524183936647249614837200465685660820486707213801307405709269433650054294285561472059959353502321161496749931775310323538608572756871886161179817732583602041143262529032742483765733405260083661934006594266677320566830198520778361062145256614999786144641785782534445790869084054411925715156752558471445922052954737647127503028199705460546752824693819764306745928102710040475530117562386915670065263289055505661999287590429325947225638395726110333179100127378041827068324794143313452129381842891815716209165320374736809902625209278256274973737200971773810876951255400333479453752116691432851089650306959510204504389654582392250219769017510087101699368030755068133369225964657333440232384200524078960589204913412794317442187900129215588344485076406816311418049620835553004080153741520374539917215512138189632955692931335973490681879541673022501539445545956421072071591669913309365551117403211395395401564866819181854851796737512646335566041359505833122103334135398426501078936720442776544580949211515121985397849874869778454888638683787431133270820022685217813907378545706845514611217688322623796774126710900284495580117732706151264779434957437777090215589050519148096882972710528060604240423511659461492605714190464449332703629479690714279063032337385364863138443081477682569189221461001772785887074583583283831380719293997031743429232719433486603663174682369295181465304424594579227311710456069458283716012843905619407694958072791856261335114663133355951506111105823737375817825288156954983422283686305671184820809615586542781051329253989220159494141403674532285233858972548917461024558306432204288869833140407401720499726828991033390702866433484449191253597526282645035057018403206838876388739953534265043576021538808124784656308269477152432118858521295038977936126777878667936863226161876745236702203818912764867513349832715053960192961930220365330033183939174511435076553636386948095351030235159739586943924778938982170382441441795357262791141577327530675903776935833587779488949106796094571431829017544252982368718579800390866021686521475546001585155323502228076875998587613552009047111118329454156707007941101213534532098819537401154807760691713063587733018506383656402362275138770140847862235075883514115332491221860135788105666343089933907843030756771582104584475130805027496773150331764191066460518544380217825156032428380557429613603039636471679892557453990393165739802911870779113207324772523684026777176729494058395110728234795878923058608663086303051064382609842820188561794622496838078663822686432235528089678556435915718062001876255390646451790142834621102879418777612164632555651966882629419379577710048140949322143370159292062053278288201764926349361243942757853273554871630019817333859145967638629034200701751150107808000081924116231472699340015117647740119902159225546790375678134679319609729682431905010083429938744178521145895492031183005871197950436951024250960025206073220425225123027023016616483349482225539327688029507289146828648260031894196102561593963487026398337775299956623943099147828479296688648877522520407379163220429820294465498604488427212771978025720808907662923130638105345981465052526244359207561969804046802821663900002914083629403338259475775062499918175187730649904613996122006014911125152013659248829514401662960710531660534993466993151383517026625923735315059911046774738202668556468268973331267043126572027450545467369099765237516872411263979678853908627924278404891952386110698948701716230293094256777844274905568300365751606754664377141079210369993972811340924463514037828753325682747694365053758299505228616283997914244615651303639118908676648101182419312540592073604194038096852837897394531768693240186209218589942420612473707523794598702922474186218970034185406749492173469443031387404347122802844620895354174941914839623864335076204340266235273925742088891839751823376691454087227386092231430350046035873194246708246543354463204978895807882467397319568462474922999868358932818150158481976371587521291060875869943026688435455802008461521056562792827907325406370864238870945385164207467795311164051781245235641868729207629149802928770151653801713188067012176052849647750890292603512373841484400334193769661607786824711483612418824958352590943378308957980583047672608112256923116511018544040489624153764465765480438133987588888518192132873951527242754286009707096904376900965860323133521954808860900256340456895667138463950080451876410702219757607933693547275219575406053819757106309589963226358564755151993599029023142505820263403261090771855206062650518582154040353743313171013256539267894727028654389361149888277457176113191429374720497998518607662108513782423234082571247421082460546445134280406908433597445439127250731931129142434307274971109624794231710209551993808435401022524446311952756364308650149872333407718627199801291271949192337353464873889582809412272194494770540320246790744471350544100605003194262229826047813813715077366717767753081189654690623403332008990637488207059262779088425230868065860824368106821018533482181966490062638540999969346626482170246522545975971516168926244681780649952390487746533819803787017482343022851105655782373281688582015273808196251170376310506619634922623394894258548488479337895776409293783448858562586650364095165389689531517827385373424395524858760272034420156766807195717246525070897583979134700881823640028880127614747327684301635332044294414623647273232338666905291995170334632896422442058488140941181696738096906741935854874383954737570058020887560070116724309376676419434890208334676128907348976802760564248738055323746543610967145610833009935664139727667568774008502762262688274028653118777559183347439343518522116330024811396679146002136400179415753510033625826402874108253458129891733713683955714102921553859444081196358488902825023388174373075283861635108730813841507916625341493847282305375033347142419133355829180712872334300180650100995482550424505367837854622032051186030235910751491421404431823551387452375766544336520851314270099164614628489445081626498162085588512771769860166438508571445829591370134482923998494112242223699744550707658260226393179059520799796027709570556140446608020268779931984330295152316199168984377918764408995112910317407752516219889490994072933250675731676070982111289715858165255208889115904164839181527041130754513172550716244846289940950370500403786924875536897733127383907025309346761302023532106370726432876477127413843217891458515948748129041505120163601193384078134448456147049241385039692454031746661830300042952441872280414177878797297233741903728673999004808039850949400510925206470452397796939225918584300594007861941194049894992045857137727077302072077625589876504421548663024765003295757991282418926999538981131756982679791964247741039608137717811011131238750869328744431850257549386441092738419954599199113599849289087794834308384983238461690018224754491074574429041634577471193880414471425215131817964843226591837056463262734925977885832153573843417198237614170809924368276058190065774041722826747835744019482370200941188136169564490597634553185464263678881155231320504563788222714055976297016015594571082194457092130614593987030359343820266674503797725028003168231596568518883877251263215919506014362909805647396226992195054839804269331931819413978308009694365831637389815306784066703179681190245715744919876413103252784656349069634993106948802932510003160425473247035755597713749663309702869110003476171838736622238525193062980824804454451881141693050841758136797273675324963932834827050531985117554675553081012391721820712350275968465514816991157898983812983908490077503775118093686664546126742322429061188768812732983243844189395415748213982555647160115378633581682355095929344966088511357545875438048719794530745484031555927702055396455873993828995202615373026500594315574379717420266916187260694838333997157767667722999422927529620713443155957125205095115852078513243244223216392735268360851718269007447273904771398001715221622309425905633809475283094667626262561203076500049388290285387027757693567915752995768997731466232847872243931081964634579190280245504624748310742708840812930688765309863003691986211156160869940473152683624936319859862581820348901974574827202695115931029758926975246619814185084685877578963177134147315578869105171181097719855771954125735515720156188836335273364612361950148980734864799306373018364731304607832135601667664778049978487369607615851659458043160606425081286310153804796194669607640945505541403382184005348286985663620684531091691572400669263376668910933243380910439412530985840389120465129797422496879797699963919185229548186666830242190866052357468152340746874424864711850631080177839011687047719900163623490529572134302887122521364031530816665908414212933979663418447287919667184125929418882898505690849229690136682554590729705726750740074169648495327114482871771884003539666420618320110570227113127608108762592627056333832369245418872152469568932307713714172411600705577015964482759139607207491682890932540839991193803677509942322883938718469508278150121865302985117333184515771178688075805133938264881337930883473861318028984348281472218461011650113084427966438982724055164274505248577178979826086997068887287797107125475759511490332871743519140925954761577368904040683295543575020631867998635983105422022892602211499108311800786124822301490287763412551366373265086450084728130853165664101598730489941324617082236651926941189555078773601402012538778155277946140476594520898223361716352411517968742401297853885775351759861509811158063133145694612408257829473592089188910516116035478712285090065371154612423325514460616142087091762943520279811503798776533808301975792440280763968151877304757986487738265840013725706953642364842463360084942940627922907480903681150156198712255857194891383855767387544114242950843043556917268796216825896053709888879964476357519759183230463697062013520866215676652358859570487635001980354273771447655749052396016175163550072728734132646076283784716752565866229378078817750858321696546669020472269612928819132677156812983755362622220012271355473548185563927491246327359180446213292546630121617515758435809653022700907884228739744284223925286896784915711643795961721550877085180794939552217768503253861623332257162915228513270289694818239718932718826141697736821791132761496302608400067158658582837341994681257436928882045517502510397543393922017090940198608270305997337895197629905539580817144243274427253170187701333284271653969433256310113653212349198650672991548858793344705152691704784622583383884724600501251459530586235391815285650407263913714798816224933559048715745518321090149685308456010079062629496614963966012660944362201812260981469106035766756966238409642316695479578641956505697436197702587330714247460193755211018738173766063351022361282923838706464295684086201476263196636579249554314950992963963247031388652371796638678393291704981981852179089751079297127836938563093762892214874962970757993985598433670461480985927349918227491050700202340813147003130117104827336761719701724665159261874917823955734921690844501856515096333751559380740340332303626701171335420176272702055608498272158624835028880330342917639654758915478825089901972773921218571722937612657369933897023122847508982495990660960930539828183878097926285224508173040497967912955896171606225398642120618781954518238829759285857727966446362824554993450821663947101659604778447694061581768937023711203631383351205866406485318092763671833811663316774616859576083246416142465631887710337920596834061552717840589839406944203523478653940857330843944138013740726109883516987941110357401667925458025237607103037157326134485623696966543539708769194668317508460762007481942187024569243631599032127772561448142204806096009572995731597380390691853319846659883959260135277299211712417951169697125308028707995174927920769937092121498341924181714358208049557213871290057972464113166540901316974719331632223339498021967820829664864083299616778687549187775508039251883519013567686767233900367621703396594613843723380793526786706312761131848757722608426067218873048022586746746481141826902403177906647612636076711992155559552696014924507404218481655422624932857267884908433932620610466885065029163802579172740843042128059508210226690421207360693080821079107512467081972731758994010062681624014870176918989754056845420171245322526875026882099382412697220819207459915789085714226235029360269209093439787914747388415490458782903793929986310116345180480502547349048630615384570425858867827371078455315795502597809945627261185613672002888659437801003758943384917293499395450147716289390105818627781346796722189678113340999513467634315013685760331888154997705328369384148762398733402783941447585841865964795592418820951126371050697708602891469958920736538542142515194751825851517418754893846610871366987230231434820686498289702922331475610704974451160237098257441333199305132612821906510205241164891580561927645718495664786398865519677220028820691908190190068244335731061080133737888467680006733808755582994278457073548159214462328254867649685971898320389131674569214568738850052964078697538915479350473584981297845457804066425676773096408297381951171619312193133743716342609561047209716379156786690555127146320602613160821394353186884950476811398105380794963235372865607170835564200916027101180213093927235511967892166273422231887258616449590059606110988649211992756084183712595101634046421916171475870005342147518194342934727385372965455203577003493812467690156879707097415992946723985995304030661303123178343938510643409622764684197845194513967591872881060177638877699578694554613549455969711097017346224843743665960072032514037954379676572584849392215542187449394636624103832062067354394882648983466680331171622682386531996587417225450079156276143000071664760389233078674916232875568339298114900368378648948730724826350577739360402572826753751149341187661630766504203603023939269402292050722364820668722212327302157898431748219368375620311664906627784496937045598371759071003521102778370257383118415798562787630002079361538992472109462268950048394441282067510633445501611600278605347061418354577202921913127384289582138250055240765796952242664967949920923853736805884274147686956636312828304066876377826873305524995512232529081917048347941800981349094094927988353060621999378297832947800127790730779921476280092927376463953810962098464978975854706442104515057640828387129707736161293961676606433825557546531211399218655853026146114728937340541979252576497555606199660431035010156287208822858981022231577019127780115864319413399746418668431700166381449600165555067567589401259243728044135476263539177083400778819932383251308261456129030134487226626062554984104593672580690506793254187358450122671351260730369104750929031446144343930759763408865517954396591149412949746602775370511430631972887331972682256789881384110390263938686700672599466194044990353238634434729245924114153212725021669926728924411990076278932475028576046177354297307793912520005164663532898738284291750263712961801210395173180673137569130463455944256700253126721706990102310548172359440611202822308701477787735251296785327625467259060783277731443438907896993984515941375356438621796687073424716966336126822946476933534691693723008657962541349149954680535269921251670910584339235878970933941186882507934345330713337792909634613299154652077564691588973456827322269835697140708792299955083524626292276757799361006301706542578898820311269770784835701941468012884161332337833790963654545100542105618595379462158732404177100774183217103727147903443578798736301124467836034731994955160153437999570844759425542907063986311018217058885959615026234519941553185911149161938564867640938697632741319466744849965707309512827304678494464208908632835058192993126534197421188313704032375568954957703384483482693185012552678591920344428910825384402675457635271713435600840868772569612755233612196771813956094352413617315283279379152773046201674609207621376648993248909129418413108188580899959070445397421285539055924253756613586712677989736497631720388377478386639558613797689711269215965848425075429720208304723185488048210537066500656849616473419987589641756182938064276235295967708509359672006170439231935115928118749919542596693412492898953706432457343372084059360318079933528338735041772727707980350034324184529410313794178594374195553886620711572658110748557223993531996541282192039092543926349108846300495504583198866620304899419086613696652559364613410062071640352797795191134485966276734552638464210179652754464848455203636764219369848565633797048578378865452917373312250095749977271609844854978168426493893838351823525151439690230380600950049555772051590717595868357759885569246810894037434696687350815302449753059326794049595743013045345581067019354549750621303724172250613250012405995943271574902110081526061754137450936758922439927489949090851663355252074150003193241628331051086732212780512708866711792280429813102891238471805610038662048128618013041272537724935215413755995042621981639876881186949994481156534827213622490207216759116987154705461119441233871957796410738093827540122414398575370307691206213311773612619428406272253595474898318950794050075959174849104210381864586187890661689201303503224064845145697278446094413977296761701960037013719652809627731751331804755902446431270421768272586854888891539265916944102543779562904583614320144334716012657205938273269400159532902301493922343303917086956053039655736524808602214508514677777545631751331071901232635467964747236088274522752053927270462505777237567119612410602670253634816205580237229685863241826754566629231656080274660622153380011780875095146451483039841204105766957496753929059880873633495609841854870715465355374094824849298681861713263505015315739651129276204370420758931090168333883386198194574342963103349804040665380108482615741464403704475220998414675475642401470752863248962615462044785974015517476875188786249783518643809523448920590647038381457040061887054360631869456068064750819124936499389252099461880301201029317341906525707186927461408512984406995839708743628577047907441721343754613117133626342404026590833541810360947501422943831286278498042208016810108074409411432872891913048928910464684089460869498178336065058640768241552831526042928149252175050243748602245878236285803158760171841687087586947058162089581562159365384868771207966195596875542928382316814985945173181904064811574434215754340752240767151208059136886866444868118379102105457123657487890088842238941895567974961612789384417421328328963527177256818883643768062953089609343448197654776126955396220093899946228906793253257958257588117810930009854703214692405817902715416819163045401322260422542390414523534992453982837339142871854352210818632815352884105617908893930923583154949241991427947291048614151369227603467180612578815759556206178623526498465554504252829452596951715755996696890858966715486022410393166269062932418093846172724879126637861250611499612858646820207697485158736143588853104415625642211521450102854203227968813974581608311458902413913163955630468450326177344594347582880262506198474487416575757565146312264040628091551120070300093114955776017135630038063457829343041187914974750756477619841583395263254675867249691870484784138212150720188250344507180839445365939661509499616222086499169541885767018968324061635035179013972966171170417151046568082421646393307526947117918966592494837677817450317781606200647873757602568533344293743599807210603819500302966202892359237558343586688208567762058173052819575732702428556005569860986100238157633019064838319040522586198008504928121896749434468821979891360584294312428817747247013617410263423506674490739490728693386691331907763477112378366351292317676093200630831610002418426694363634240218810654344828077726795378849876951106187179964516645355919882895479514953979760344116965692326586436360228882035333639033316435958129613042024423326888424900369697603757985174785880125123339311912580051027564684653808166155489940134179702389579980038516702625468978113473571166276944049616540145235060177382416833895417676998345637716765323555196394932338467912020075335173093322372232973939238419201292751684475310269042963108324313328321138329177285123945567096055625495051437683219034100837929604704883067986965064150409702579932626472230958304143948478223023411336314917912633602565479322290180747912348985632363397419618975058437133068811390848163042403615179987297744870869743998066130510886112369917783776924649894018576127567081710319190498450979182089868124338565119628205117970912773427145837917597671358881766133100456504366767551269367346047244723778724364079130881481633803545405931872469287046277582719388227063575579388750616707276626368547180712018525716020405413738299263298962219988067819907497039538158627591738534415468295745258663068840377939691256678014870578133212056550821643929338812240402936468305985645945408900433258656926510968560410318193887313177414740009986391174882153179366894485277541563304595124037334902645351876285366563352446681364949485086699849262926147162609631090716197286312310309752248956360959821714761593424818737142049126617898262257700073418444442395423982591557585400023919647599902887889638187707550726553991464661371928942623535386779422577012506105406945463883449856433434299695259668600773043161614678620441321857953936320833736260449754522612864653499870481066350409790374724105132730750899783455913413002475839834402801790737858981552773635430644004145734123661006305380679932797225430755706641939030810757243597935316766208818243704353123273230241192156603128376702213859040144483742545066283870074952018399839638217446347523695121729283201010743845446836507659615650115191380533210758975000897307575779776815774831815377264103922295910526803267920768210058244492557799173889127933300172851052295504803340089713867918795417657389553527576610076868491777277491446313395234226727639982048956774137525556727045135887328668110059763218618566138026230909412364807043523376348944033593270945558345410846188207000703420536847896740627705014364281037267020887563798328028028593375692272648304821531640924527767265040082688625269733799233558482301231152652820933556175196003539680278410037803659734932444960242350066973822286520643273382319797108138558619554507326582894265012977708180410124875402286041353152720337236940997038786178033341683240799203264603100698676570689518104554223934133283471878797975455609300779740052118252333451960887359659254885282272080824112858530529277384924787480805781541662715258284638497765092768219824940065746561252475676491436743777022906885972023534989872042359292310075968672432757290963409244514702831543167037308285595129681449628504952010106982357287525440298365091230895392184585015826561193065862561537662331039646831493132300975480757873247080889853348941333469996967179139097960223415468303325144149942756682088161051605256066945512382890590964150378359081489762477945961963381039048012746649936370299452893687913068676267585832279039159355876940575574486595076246220482997345024441666903923076642028716168729440803742759060996931320948533202217739342637691931009942724949090333440083359301136229706199893692506803590884839111303339505995764855882316735464414713622722488953383504605709444176467672004086545755963702794865317672951623989493693298857470968185111114155065049892148783960023225984580442099482845693357364278175820912384933854323667063590601019163098635784518067645109803780717871628307108721756334134313902501295995204327661756930850421988417007201557558942324986248467759818089508787743242482942618193693046846719496085649668422641432020667144174836107350684652577582044529752773429460079285588446813982798459469912485861832531518803773168338844139597644864075576313891372375197865685564548088765120819699391842554101059411279879108947196150197498100983886749352704805381261953207352729358437846206565831515644770786384581665778246639929200411512044323789446888797650366695529352510939397359810091620274573335839020149963187545114376531439316737174041574064255316766655024982402962329569313202171194256877160911050815337942635467528053372897340178278438003319366706373581748311268530074716895651653463986442589350719251889108021331309296039875763397802331721098208679962847533103155017723773990502721718957983766905641872526667139283796193100181675249176186136495890381998278331544348537758746043769765047218011590533325126121041072644853516551941119006847535134749973370943484881267882164390009509152552611980028195068757582376082970637233847699978331009777047871280705123255444734781397385709451737766919770722785644739462536511253024622286749131050990004941894674882614496434541158391930708015087516302070294963632760628475780744012552342078180975608637274654947711090809291784860179408821588396420675311492714438527295642903851156432289179231193332905584184614857935602272642273513914722245479021609073526617236129100182035790300146792757257753563169543488023964415586883815238550775949211315701119324344709595407007068245294283782235864324508227487240103893450648670002572458910621219369750829645468693352021019858240526181929612392381872118470828749587658870495613486004027740003485804502058659819277264801956603408052465579718316810927647905481877672182142148793506380882420288878653515557823149958766295927226898681284047579049802538303193331668606047088201686524289116804932018704728678295815083736295467123536984488546118740958360636249918478626586944355892481814387088250123807975027935874469676749134912960904525042704244539450739319365852379530443462515636204856992669804698436173479798742012495279097172265340060344264845795592580376074119381469794943471253504085149904222338194055396172068084893920206886541143049922997131830978893239824335708328713862063056730044387897079951576924330705369981816521755903042111701223206165413603990831396691756817722121631812905512254431641098218762840656311163245280690995696065184959712740097964871253339073380868249793643553251302061339604119847631409275893192878747681180251348085371452361790152684569393128132410315524261100437967378732318213780327329882396512249429052352444183213443874393212302833273979592004273635990856951187531904991422570076818372907050587240999983521801760611949600148527608361875547695358819333096462228258779886142428430733580828200928568309768164406379847552801809392087060871951500932616807846724909119687967442063313877333116946165863271443120001495093642259021119853268102888921775638730012100480844139787755478107990398195804621807483364990741575191511228368078762728141677863120360974048514149399772462007222716218485812003104879857229771907849838098577269115382564237555992158785841968311236539938765328852345779733328926159067515069610591259489985092596006935340663764942636248154552654376058039959461062013625850702652236747702210364549046693921861782133758821735521502308395919760204545006981582397538999468525244638984812574239075892549316730483802574711198226142043675592805249459477194689435968533497639338351796674149401014670501586377131640485061192809811065921160064812187345136867834014659371783827987228496824427072561672290198035178841798339784245058519460614370525240961980610594434780118370648415413415279709591612561462157380416171947457177755108514567200726859468602236963244640697726852118352230463975883400484442167211420568967539787251859008450372493233284171542625828817065952025522230616101751045784388415336740443537675144686831888186394456126643312937535127955532330489424579624717752992250921129099384480321606074649820310145811276092906173024361405620484181099916932649549084724394533020485771484144582295865012861262019805410993212804464908278947194808322339828883757530498901539103262699642538820181737777056498989588427043244501984011437842078826449428100980970074493250580731168833843656543948381319119913413120566174105503664454962767317453658204123713636231891304395759167679803209924570085731647240066903259099481260075791650368193616796710886638237161580019489565864061951686880594526429314000423358352713652015452468981486093334283701763746644244686302634451620362092311437875411715971054080298906948786477560964679308165125960631873747251301331875802362747009354264624812991755938619019323307362442338993785784152688580428098771093756477295070261430663849717954056237756716416164955212059629073245212053174232269549520166683928990548912485891521600529376939494328842222686432127215364611549158557074373114912705624379299211095247991433417788373771548096938389493219002571685497825888175938559810644632484951261427186533864269622606066245263740097092981807154319484023798799480837364850945902916900778967063563321427381792036878913469214685311484749243284257692981430472745516475515847328421112984416053871013054648869622878855368095330578696242479162638973588767028945514150292693232652791527014778772406302286212171426414322357068567262603132114928898042325653107089485707175815432471575252524663051258619374423986481973444188317423640095315704109294422208818770272976195110565191501372759053028454673834464591028078507464763399052031253176133505935261520858638869641008299820517940110188352347967931840761896028557529518620201171744555969497430549652240653069387414166981240825868213031271890431870450398719405923939427489412302092663601511628362207909531618167940135999777605452350818131983205066969132894329688075186876677576529611012961291364161187536513399691076246195631610689188757435978824457449656422961463902926105878319786015665196505268767187964015529448626901588388981909319195501497531150165520996738404736046215715264223543589095514808191776164549744544922974636241701078264240521731272324222026477299505352301293731797764907361335004283351271795544394047129219960595381882009843272000983157614616943277586821716784417039131044444816641994920683495786643644747791342562533376426403758243181234173475675904471708854907489333634069615443711853261888819998043996554990544520441659105700433908036679915994445380919731542572548476524227353604317287118714027054702848234359035576639505922653039500176227090490618754787897209257814367749928519032962436186792702248047978797879577399239322788718393109500663213964157375673370551113429045049503322697403331832863512447547970922271913344301874403867337484745820366911728818682894894951553729042163090858837266775914672786924792013198396845398981502102520747163386334215802998115076644886824148841851522738498974342221647280117067889662046810492202082832070570181296194743419034743411873924177321026582751063779486229647875801584213567254963260751430767363717533237532124468519692027937857012704143546560363163581802393378790088532151088270511113879227674073875740056225911650050236200786549290726667826441402127458292633119178177275986436783673646788322987872445652394409460545546389666912013857696597053910769426832742610798051374587605704952566147870529084958108318136170418636273763486881904178294530955950219431182138222533555566928445266520339778786129122928355930629694425539040102669365135059162539624846783063290896152883702879781808582244492273043838473664317652674268228574071432330228816351129606778212878258112283580565605217347678287194711133863664598120890168237690725456818587504768886065711804551097755135207592860245396790137618656852974520839716070088058411390453338033535673604780628499409579074895341820983771993618861647615066664517395583711222566334463917983835048531879590874520154767493464884605042588740265737092889550036520126052569281390549039047317751767338083987146152276275566120494303975077641148510265839260351719803824791658590683170077603611300384329844419541264320972889869342781572086984841349315507536028451188773583404233237244204127647021654440868165755748347839616465983721850213192419820060587859465558392407938542613725162923895529799756766544530095409399380005798305846904353954567940329829887750959788336856979884397803321186192787418691958459893411417671907088482672270615389652811696238228377711131807248090243641746997915166932063071465124090490755246247695534361465602676239637679330503696435921185992165836788726394310219430943833212421093483896648047199448760401435689518591919696511208539379749563976617928126093841599893448760500561170915403952125126443030451059071896255487756461741079115424968474119437548720905265657027565352224212966588212481293912766409210460265701863071049883205852610051522292957741504647829843445905967483794105761365868585779807314781553380759640246330479744386276245744338693338131169454812183326439349859638252112244803922862882485524539421817709126841672862687701539779811941845202961306488589285771528560174677104359773988961712125764777100015714779625600930456829150790129055443887617801822358816152256437864628811817697191271689167987125729313799125165563551588361954920330501703324020253445073627191161442020470242797247318760565396710333246009932221517552994986433113437703511967080348989337423047545254077693049683790535539687359922032874376147976836398485227197322205870496422423474089779083968945464728556319496658007258373602190017669045141324599736886370384281758584985568864671441493986486852747883157705982851050721144012595632427607196271138439056010291988630172124162460117513694906664390531242981585807441372299993636423873954379321017009745449538280275232781817999832520292638113240239216476483101293112745143316498157804033312774074967726408534927012210377421610294548488085608505768189720848405003635484104806849640537307999637844555185386200789526496817268549671483191935405191686214417873915371486481558489592406053096930546521301050123533228347843097123823190204872659368276787690983404911269860192888044553351932556742833447163654326647763131714399548796841244801943962948809368401550670619142176064272154978018687039713157751660857393125320956378828747175738495231428149411531255386223484866961117091513019397094970136150104477883385130591620570252257487903695884306419089572009358679214494875450967892974696693309807356491874403670720266609211480156015592399183426725296294903297829089075464499690658054688976852653456410047989807319014726521644340383004515927318697136178954806767136734773299715339321820137924145850419052250474927018312777384257286345348799102309188936246719468226008577255248152539862167437578419866380539904025119356838496756538874217974208787107503640998982513791583067909397500173191798233544828722858784625052469778025728388092464792243010967815337503477170876357363397066617885870612356059574245607654376278086384266635399127557973455374754996753683065625853672068231684265534002123965069797248980538468498904021895068530884780436278515463109996529355409080368587936361341481820952684894029405411808331669032367407435961267361275177138566317896214795038816346205349220327916961944317500610998020832947572185092427119592170846818136150795959851569818953014665389771693612477653304198666985020770500717819748344819737563024286229928444947134749678072948512739121364948541856263838948323038825347267558261442514211448561174094235100129883355346497661924667568466951942543172448893302174417168288134565675113726611292170859663356691242272659821525869049088829718556938911111116209914978463261859041402238415613154452942355013152319022555108071479292452591326931857021341815316223808521426915471750748383263024246717566229048606807502393477868071179319143575308513055671280171174345203298128476295353935664952933275859651789592456407038979982638715329959168794360293545614086030439142901586468349493703428076994031923757546145897665486766813123713427966425459799684591869045211573237413304578136683404228635911809746870672982770021725432498485942060287011311436231706416430711832215024699308417112555452989522118202503718739355352119786233972823238897916946191582185875723068195037513917843472044898617025070267896991688933755024806215265835604171366642294869322106614815156411737892704096908188069164405234590613474512570475427334040675231710115791889702826059132369107528794308059761260639467540810428306460861917552920642817721961969228015362544384628195045195533687215743973221751624285551348875891548124222426330213702866263583926427749942220297299168738636648703036787446250108354547862293995566686878158316573730880450150791140798081320182138262396235549357029195724700777107287905933274333613649103972889645547961711493075869001315122840329376965546464514828675698318787111894018436898095910275363414358822891027306147884874343400008653950962982795920080854982023264120334063031400164038336478916979586145892772081604966389755971209986766922974714606191055516298915920989961286286561404250294106612065040994821825726461944136064449805505946175710673317480727087321408336324232961895165126317781094026730163971983758771540408017859744370817776399430742592826890295396930857106814120056214679047919511971653100840937131480969626917068406461446286110505924522136981979458017921637569308383502444932777272987797433954574428213542017748765319319665765057568315875345944991285664704546142276236125207572979661218839321289119844083903328474363176521549952179919951440771222797068417065372453527162851710188750665522234967901333616032881792910985950051007556160928762831297485903166294867903853761101223866113913561628649913449922972192739411876358554287909383634792754665534488277265416967473090381003854866088019830205158759252867139544751748605841749748781922738440793370500527528558272867416650373731654120962207266894817108174643525072681047701996637511296739248273083593708893023294993669342139874573900778146806587576142159076243057517251879814429389592838876932429469286747615077581102745901713169693458323834220697145483049913591161283696303405798416885694424934123668587945492224177327525488649519112049609583343016506268488877823066933519998804272628259833222834023408339564574688923233568035799479602100835192965289471095619205835096385700148795696963283186902845203752520766058877274834576114114519222902163066394882348437010367264424278325618483044050710203148323394692251843529043817909497444778734834188386213927773825103130209347822547491039096312769886033315125743650763231968172042717115668268915772788989832114564731938957337982368430261654632120388848430987783601685585318934773341818801983830046301269588692593908518755646689226833039436780037843332599089462283922220554117171639195316525679343345263034883566822193509881845199091495299943830467281151236638998232674988366537223286366161050080919945918948826271639501638417319238181517496447266774889770607513900167768918120796382076801202159780633793384439619721279056013212039707642121540369728310988700008624095042541121308679449106796144285338132796060746076947416658150766169290056523082356459562130813304819420658102812094005637669531659009944297550928818946776376764369087029126373527649174537079948523582552421041008524786099882290732412648186522388652098971688019157262722862360443572879448242352133031483162682736049860591084091870622487522615843098552218767069631606172114366363899608576956559030911226955129040162780759908925299320523281811953149973829184538525100166344477095111486076817530188890075851181044410439871140906875487091558261463620050413711984812145249916887599305568504737391630960603084428520959120138861574732600254599719217256634501616184713788236089235794288960769506492016207442840687427658349626641697270772607292097485035187844005571947775398670771252973464189951374979018793870162209695535582993519186797363958467252968277435169306644791028854352419279277619947827890519835977703123624060772706791252160136617300912045287431811117160628426559463933881710131054482321159580816783488117841809222060574545487744202502050207974406538256924459758540429021157774682187712170675756826399126120784593437017820485982109341041967589794339933410227248916572018000149846438208974055510582313562659576330002391710704924990780240668619031148179587028061618320052565164024877504779368038733779714918548267471557190195448608504468292567715919532246102696072881833362236447099519769993506031411646958201012297161103810127841445109690080874610288826397533503265729955415587743265774086943406066841227976291082662395462795441642561145085550595078275762014882396222452762471301772385099545222522762405774821705016763495100061697445917459863245875769779318182426042218545985313818972952010029563360234606285997536728220396482709092097528194204639559419607356815717528940985250583978283671403351454044227831290368750189350600094320591522844953385101252303138339339701628080521796532975116414185220171546278154425057325570428435707687830952840908335892216390964201041333101858320704897063327228504358426186940328278135135171299177162968980087186878954180404289620821722705062243109491433942879619615335947229998357120093780416083454696597941587610736816029232395838480977203859254843094611084087468345445451707396256596316797332943712174526146032264730787094593923705906535967165796400009131544447357945589998869119796418287902659454934609551299597053461981819260820634926498724722444388221484642858544791188391893400542196866552562336028515527629240426364505348456944825345722694733723529490972278077170802650212294909729133750570823198700647388912208116445855606939037277273325865076116710192222855189442582065105951789686882222092825457218627976740180740882127278181069308759420266409787687729017692416756677927957625216372671616243804565844134245600707176967522881610162220365969156994656779222447335901815043776710715280776904018208305760578350838257548214962675496881902547246975094223074236571427279319904230041686717248511722265546600816593696748085812832148367012236833704842766508337020874952250016072438511304483900093176444509690604066112542357875671154994384350552895773023043505268155902033198019900495478884465869644009444357726115055331671418203070727567514861364306928033566211034973924519739359964272257730235214883305980100252288066051374383468513328942882390481054556002604203647224545796840088658053651311828923245658016888402617123566561901352298393658579572843260683983880704021418948075013386702727151185752813414574033891202119817959758286347193962996031983417009238617139915156842623281618971513953509139981700746401328032288817604641638591706341809556128271492431823799840170321934203493587251608959745929629067157897755284525308207027911192400687540709140676853252618673449850765712934443066492635254562912154791332850445404702378564516432998277447822298540048915749742903442347494717846616588849999408029573930902678552269718087013635916487824372387381820229737061693821508205105181015981326809292370133887492459295366926352121331924619601833369579594654748983766051314064342392314608218892106232605942607794967530119005590565794762388855706583097370546087010042504639723278112945945508481679260356853514165257408145555847134673385841161676987884891313013526769369296723722867850447973395682165551066080803917108078051530185028736625323269645083076298199867999628188237239464842474870302664474565252780711836547648876244258015231853481107084273696524103964740978560232117836886641908548982848442201060196827059665832893537100847889143971356564226802029245134060689293855831418480976616019568304718455965581197450926602319572958139424137776546229029912805577926021032645083709691301543169793451908822360080568890273265797527316275232282504208371186127200280078992808934493374260771559737254468168911991428620805437198968459619867197080133175421076525127222390972119621088381640770158462943716093893327169788792197483545066723281742094923125337891249232315451991889437408010877850211920897167429779067164922206311581162897211325717906422051518334284218488977737710059297959176379690022237733209525000521573602712105338631455935035334014486225286872700833637432957772251209740678602697541155492042768002666042581281502407611287193004774485880110137705015973178406095196553128782882663646185744217355975032715815349555057351912778187005138158525121374757755635274499062010710965374206755171785858499225535711498033871497222490950274309620847041012499417301531805164230989643641577750271243796194990217369186425942341662542381153998971516066738042671329996764952629801198234417271867751923224700017916857715048708589673615718432276471951669284617550512659219757111074379828792916085955642208747307313359031732627764359809981583399348138199536852778499695297702817702260456744013163604103289825063886559893579325481979857285253781407549272461118178652706298841201853640657698136956034783752955999857101238739143464159591286049319864580615044725924965703440554773989722131411512372439415372106015547241320510296319803497615881956282554918405109740516410857108810467939395242193286906969184810423911384845854739834117252097170913818805574806522517445911704952610346055433845850900811731815424734925931580799178046662219377726627114381637931833411338667361915431937417872879853865697282014679083604733742182879680762426680549784012812465507007046737300397116325818186989492599268949051406236284629048481956870542480699146489899732944419976975857887082714954253834100229683944467997408180857987354274402229805765914421009823723977776738907872285883444064395233925530388699513806334107443704229675040992129267698999848167176068862186643814684661844883585405056981258115973129082496444464488496680746351949706644387032086904615018164942006480479044964558234843507765371255918777141411612984474154977689326249900948310702211525582403522222399880235611695011884932123170715810287157880754348091541194531186739898824221398312039765966989790764584763266073338649736145821221863112296637210128776318003278668761353521057511844460136122554670986047089700581455346161084653968036531158455741198771082026282671568822675724689679785511099229007661208074520325038652884298758579335322174452220845723959431806329028408945070412334523910894421862363139047103192680654601465580964587926217450162269019124778774014143604641664953684047235146423358839091254747525715600176533803057837675516767792435104237094428048955815100932784875506376486290175515251890136370535552990376970247348176179420239120273571956340108596436538227834570299094258955259811196672255355234358377883436717019185645508559310168346639497671040334688682240318106643258202104613379796633159952134032473182701800847355587767874574265574386538786799742165667316044207693071513785998281519848745355167447386105164042125552442357771614707811352595670092502798782048905774888183850755172013773584459217479186286961165982256126007888631101239213235179368367442940248191687516852099345863777859459246560893962979524891207819809900059912228061136739244709090910727879211948578278672275961935734805618000311317722518460712684294380111663473518657388322101155209536515107089425512731930825473148223529221345578948702527202401450133813844476976613230779969950265572551270482119019277516564092755566305426451179248906366603431934594691787862590398327966635715486726466932289963705450385973970006597158469732245610484510699976322100620944913094786394619099548967008450453604924319457987690032546485723807254795219860036416521556297819780304979385440804290997818711869683702761167959568559352455485560384662869688368645104151817968564206363971856430690332051798936929724086591233563844055391825122505273140702103583279986095897617474347205307673284520366678412655417828360614504605309261698898871563559635350876867792589892621602635051022822963646705676396819304555471664914782553671115879230851280799346663517278911482424053802270714085188382126988607264786007290939349645412851727973897959946435718657172701954325608317003382829852366263719720493303306137554480721152212166895593216612462073712266701289221621179638487894291867962607448610933061479801339748346247854245419624779984032817725475077372753964793350576779867684908030191594869429297960790610782508585262792997312105273602370231870300953008408585754024455790150553458898414438875807362583693606836279819655258200645752798003277117409620466658285191561151567675251444173850977741575167526165717483413214093883007996734609511671208648071067274925805513883525064445564507871730223135870703075493365953536950528333018823788071375656590139247156446077846670635477180582552018006155216734654417113206598157965244954006663746425096646161725749031432567132564083305005773400271981262475930908532493777662147860588620140078563334268901267995910083378694761926342790363015681136998356732248729478901712327480485084747452085488651459001383695511953610746037316611655484016656224852242098162789180440343127343049490686180250821054959025225214587347442300296018371181777483819919380932472252891535941248859366677003998608342145811804811001095098466803938173666628584019823717135366424135414720311179844394215924152187785399871417385250616950995358551480962753582075987447358048198944635159916774954518022350724728067779946993129052259748607320751342257793313535586074811162495115655965271928774392771035660474385268598218959113460423146820473250953998001295113069341106925955365196922329748991022510346950169435211949966842897516253651706543173611547012261523297462089449669414544686864972751688833655665482593540425645501085093492164549959857508645731668689593909447388702827602948540545901000800358898814141279562841422310704400886522574505325869461160183590428381797383056495154587388774551627988933995617302159739448279091964576406076109625233072304440555232617247275269012689292378514288967576683018109262080188637858145653897274095162385994632267655200075902319126449085704666088662189772533643533964647486247654258941333271370954420701962266059519523243619531828902367570015946784455158708274792600645603396156897485384474224419719940986181286162018771968280709107944219793735571916307452419194227155138707210129068182175810672509854861073075582713682002137273997038579955218056065661993957444021294856111129083456967095607787801514074866272252451999494280334714965319324855798467275946055191352315669144161264651368344416309048347612324418951524396820702241731873076899590324957141201253093468764239060817873846582883401719717663842753455571973195198331896008234194390936853216896981798356327065081508845407431266534909484216886142430459666310897226943553218351088272794596428304364983925305747573399254092408180189362814577706201897815591277694069674335204304848336715449786568375539044276860057765468171074815494814948364965384776948495256384341347183299451725591561497470265496267049348057528722532386911954021538184259178043876643508131115603203190153581077627011550820665996690357809361518678817990297920351004295701690866826859440965213584421519375309440824014181342995635986365667657011173374286792586258527874488998249595026985065429653108599676312172616879703396119611438124838279592029584431969387073431417625628459394037712216567917895716338553384601249762649492532409329375680342227427668107944909551342439654590173128607654263107580290094989156123157162036132978091585330213732444541003073765027042972595418563870568215225394090125808268654070283259986808748770654316850926125743470670977614860001629968854444654657350388220506521824693134693454794885178595047900598893510589461989853850730278256155062455749720787285249378892891153347637431833863335933713529394776139722355218028528410349705552834348280582859222185132465655092911324712415520782055495738316199077842123935411127531742088773644731791391597486216835950076074388980786718624743193485098093607149370009633399383475537267002533316362212514951536292191956896153012343696576852147008196608064658140960393865810800139631627114979247654299724289985090525652872730240566329907333680400759877085634781629438375184146474300871465145183179862373802947550161337441220779934980864976891004367026277912496693054543450860791571181664093314879203862738825029122501337631233518231929046535732042232856311819850516382582277040907187824027629351230478118833088203752915554954554039127132670413837870275677499467506501540324076679835018598301420748344016750253705543939142613319406474516568488242460811377868387091148682203381827079378099777682680713508998425719305794749471732343108751350994244325222096729247612071181614113837258340607577272728194943733579130713049867652445181136824459753624054797787789038592404127573292156785655260174758121289093435912432999022500668476357398072318247665751085016176049029614389730616492909447158589546250544024782835875638729695318419825930457420825077782459180001529781645100245187670738739925978505216603306074192952470020536218991561680666922096513140524877539301266871886105719924612311475673876568851154868073363021790703510731330949253303084061235789319171911648266420162634424939518089803298715801587719667658903432417696263726911555696034813368570009720218780982000704491746802909272729662953145828547876685911564826304901467623474642742122035698658762358265530450727998149950673321747890742542150228836951756999101484013769452988553357797967306998313459147652580110134317502117718392783464832468087073420572997720485366205767646172994639945195175537480585917416419602918412963155741635798305131827063348439331881450345546676574888880466150383155700097076774654667110341857504840401791486938424031763548568361179903713887074164271207143384185507480300387045205230800897199185074557577318847732217057600492991732372071686562182091335399871614505780972050890635942563183683407670659698486216223354129501520636560709424362311319161693080511185688614486194673292521597511254553349693726398946880196764738841412934555133732339746182617465808078300825102471717771434386902141717422874607710798681263491177319849058831158448403144898413338166896265437845625467659559888875031179067774007700998089716428774085586371806548781293511376150642334024212354259107859328914411603748539148128256662316710737178679056169416947422863284769035966684645694781382117703012043066780623103003411753586649699698478509879440632527874224426311498213367105757074866755787221874152768830414711413830284938281767669136821126758682753563591538377479808920665368771997952240421670774740455994042913500673210541655106461391020185959474922020713211748229797403651156060490838760376927575794384984908830597728642435266720632848050066815611778464160034649748391630350457420390844683952457437415354526361932012464158757892577487888727231079114460224710809728736499962060779710306476715788274283104300354897584362333729635034756425637206184926556435875400245175958844026350057305966910081550131869021808253118006205876633769753988908765882077843553495593077988290618385054672943815225502428467007789339907126406111117434666817056528550501846134684112056190140519629732738814789400415436136717731827294811070462893294201747706711017939093813033205301657870294016457563438496961141892178014203849380766604770493862271306704432575426627160637443280743281642918067618739243011408568005689982185968639199578722657393451504364709139364558036980744498064148788695969720831075059289972099802720078407140484177279476301125550879657958554369854914559572911852624291326440739315033981479426169860832198656136665182598223914031162144590434199877988601156162795474459951973812916706142649401477086672980860116919364373318689606304818163075042495869129313215406420614970100217707831452534659708549737560943759823945360339935640522523440424701040045722355631605914959323179462035437214175920843497318348044146328284987025784843044021124873953976243230813735601148970289342853076008602148185009380093757247732177496070059942187350717370657987830451123560120486655527805971066075458923873383930884747823567144301780265844949990724508147607081647463945309503792298910161575418551890011992337329874498312214073127416595957931512718267792386400768955681284215089242879290928824517346534564501050063875526408600440004755636216413569957422972157447646305537241151227179681509264219766963657247218955810216390838195890635572760152645533630235757483891283347658229495654780419431398260317198399241890825439352222509826637399506408091795042964932658694204079378469590131076484551754808290512507432643330300100326142631761183859927330204170901212109782360530112437816974519530225464623249697709089433274900374511283258254752703295530130800717936081317492646914414409309052341850236022750282918691395066667484863126683569308957007569657049708121451855782955112666661514232769347998703257306356711747296240748911640565551503427595947964582632477503067900651176328627997783788585073399704725684061332881066030023388195703287650430634010520457532853352820836847301919220465487971468407259807673311188029806078459184942584842694969921459344142419056964171188554483776209367262063274944541428925958671648339013159453134051204524113244936327087320766389066798753685200756226623711745639375982034111278459655749149148406059884925180945172280595229259036562552768406212587596997287935131586954948279612720957159557515320376807924229465978297101466435552903683566643248004770890145197809601066817264208976550616277829496546302667072999804802446612654934579259647326221243876476170372809642063724261014634971276717843731803000372344955227235710085781001336740577885228733676714676391779889215670174198662870833108586631857565527012495008144339138117638657252928440179808862814448949995831826044578032869981733333888635139802660648296556190639104789831920519187578497300647882650126485557301664000053660495350512666755850099919522492260727602463006023160872118960523568620900355801679370339412336746019048693522979396559387529899255823993951205420189823211780969156036853673178463240195659212699629414927149174549159557209788044346868565603167651542918381327627761859452381222767966222571415965324796693505217256718799382196819905048296641458836821609997156786003862575033200054077164604508062288074917999527506469459719793229625176259872579352021497587593796273035592748587841461196825837900593329681576547323194759538181249854833916217283583577324077296443411199887189574592756412663618114961509721257399079273979256517019132935539035185090616886733887811162071247816636040981459741031941318100213453474111658201261619421030315371152836840317975106928801284818708673767352625603527132860548701704272858903883684788510029347856947256268104235916304624255514572944287750165766560687189549116765607927967281312101212743201975266150020554943572356220269080558559766639700141569861714871558744074522136106425724024078518722430101123264709373741319359162145141610856194902795402192244443626926305250028806243627927609381474408055222722796487050574649491389181077133862841651006991650578115613983515956113916113507881953964645500124044577947107539144519244029155148543566148825473321626864735858907471593495382849661984590731943097260424568543686578922631750040585282408506632917120277363851763807152596572195799145207688758022949030996199866991400247141844052569611675774514778338699136696336371066058283843997150899040472745120688346437575561591404396005651355685933870197803692659800352030984092804217486966468165253245153426915846150153134812567998142784426605205670331604348151826238246420296611747045278897711077558945816857473299371990730373036820028241049939407984580539489066898720257949546947829123893070552498300888095412137344297753971952756152604569353125613240563009763736861905549583047868015851371860110807448940413184291567147834939020725553541035243073380144261252544872167173113603896084848017487608012975088916629478236848790088232936474609564247799218807450166021683428403530587102953773179445988560526165101629410411387802275223355272032266519633851991318789554664153224940284013288439901907407172319952971188742173000803285865186137690368103151621980114458587715411678696045227533662928360576284139386540847404408557646084973864605156817745268943938275290362826469411996506292592137305215109259694195703199455399424147615661364840879159744724829641594160235775466395802703639501063795379507694616222465743666452727188461757164459196873573001792502378779439463757358462274904117955005048073435880326461246282473916171821870770690147176033254663496470586473582506696247476253085196592807668351058877016153033277846998982979032587279501182628271839682078993277221415304086971795443811070244398335797298446987726739989149376238189306126509034080073505644237033828761268537980654706962070672877854704196039682511391196132667679819625848459826139442250745282533048073166362755895720925862764948219917476186770661526022415904940536193587802275454707292505374974804409309129377671961196877131239128903576865658186575404587294890867050311330189088436369377294518251015149519267611246276405522458080113671627457692490067849007508457140844531725274764729376009882775891795377281768850302739260455254540414471240139921989756098840742380125602125508317532115709973451030696036468559739619063884021119397728171657021696110199001729022346876050206130998830331102138982467233566528778819230566842442021911016322831677490651118727698655689776498755378387426232783883104571282957683857509170242171957399667220877437536817611891017999736738122867279186300581016645098749363128728765045933614990370695514665148950373603385998102618993512738321063268500796750148741110594449118495095252522688726416458460360185522513081231581454744736343476824979040392441150855483116632683643752994249471529302772211123055568492155456729568446983162597936814480116622247199500131712221534097313746159142543302133867327472382408161780930889186487902486683372930054292158122401960323847201935375813680486371878648125741506585846115967239849439807145954190437342545819146640326421829607797938238711086538413624956032622905531919148337545170537034660277381595014623716242047836030754740053020023189500366383299880329535334597898241983726582044159426296440139073672926014748236847219603939874690080449991929025848829807110532695914108751407871297390036554984871941519212924752607825849139031948105696240890128727638264712399982998219779210041768095323867706389908265918501085690034350616059422279362566878287944043168957517360252706898949653249979113887106270725474543877367397893064109414080093122727648807673044066272317542153439929620858686697013684549815116563840281441890523501322987900520216552441491860858303555919731512815772357750354903738349351196466899378582145721888632797579356057233637339949472282446441901173234004414264385012054035931504269111661523466572937765319657080548919289805251452706265586594527048197772107244388580221332170233181035161422892511895637768884449725245691339659250985400273010620163039001327686240702895673178688466000182863575694298068647683199202373641601235859510440417917610348778023998513192146110329558946696797895319027403773926225544818062787055678256286820781405560445777315994151594771158767994200997833010530046258772621779805090100779317461043646010854863501449014276206053253644985842428514403520232989146072798125338454031568219226099277492434517409057302710468608138143022465781607334772901087247522951702654302183799356459523232780908760890054343421825775175790751628076090669322615197264532515982062721055092286347225453784015441647857885222399173895809884025638182025357524963359559019831941708380175057689631863830726128016360524287333354876365096126529591965391939740746351055336806324726867440673960398915760732576359633722291954993155724782285788014613601493180999607927324859396921945228305857826662331215397978246797493135498831386840040465994445176736711992897706030133948696172930149780754241162623330986693856161751953187369609439594685430742432271731005180594724375310137720119715134599520264842845641345325346772912180999108185738807305325167839705648246538757745411523190644054983266516261474110046029596502959582949865882415511875340109116921803675888723893551387463493875737062152415965983583522524311602450204766202584996548419267101260968613500834224757379811960705312238627759752216869583866583430541429475534028666901079079537751546925912516087723570511766171052060150662504457808054580316002821929906991937673163375567192603802931003767953298048472739246677082860445657368827276074342695713857879527864889955999348867819010418770755424165925444836865640664358641280232525506268160452520072570508548176890254102618779224520689506589320696035725332939214344724802417696696893972517251249890793760732902271918272447608892159703711459677897274400572125964231190692033059299078715925063832459788959622705821530610084999766428111325172580824700209965481868966635785359627961404465138128126557694739971278411171114623588635282074452300103221887517796713005131671560492672187796653318696718069933764959020810188470348976558347998120171959398377893511690066096664356239534692053932719053163331543425831733263576229971848996827304960548505236542879681097972238125173316552240945392035078369683436720204523545269848943720605616372602940347811923144787996282506092387171971312347812970640514012295822076983160435401824441197820780750514456586473713568840155718162512110558485341871181820313141506607886252529043015854409863556937687569542041388333171754828754859638257270647981453362053858617172996280328687879817166514721694247142851863851592744836617074887296954383716114125420017252940872505438088412327098354910788848245429394792244989991297396379157598007870387906235381877016919871945585081715764987153392512492757293832901856942767574289970647259011511422251003620930040562840823199251047978196692694606153525725744112243882417579176033031939252736200886755251951555976619608472054793380177525315906226481227777362324052026033727828094029599594867661118689072999600935033920266123185385323684905641364396867192968838468156921832681469769980867838234042885573300773379390914898136321269487675611751898610804100193162639904979749152867257117350301776209910467237506051001164338227459281120392634379004823531630092972945579866057269117429683229865593406246168107733848899457677769113233013699470270804615343738750898455853999861144606405711778927011491179720840306052405979830827120115796594263717362250367144125552182136324242610218035881568350824374380295428804971009739266306732730728436933462977738958491983287626906918216108561962853008755243590967668453596123308785835918416178692163184987707652330060252274673743348132189846095517343539851747963368479191789594434450933631438412609651208897410415200132026367103058700523308832834537021429362776929673271129959812644272476926899207842220283197793796592270378833609981253396794099241630595024156926002209880264670336311451452442862315198330269936480182118282872849160769283412075384696600294361242810829779355882240240998332465839973858663374062480235129374754775490849934196672820699620536483939826756174215998503782110046288565036530990224916100448254059671240513898322494965069633104817432678112995688283450253510015820313814212275173175362063074068798215727937738305091238820076526413548939454800067372963345450564685364481781004789578938661210583783356623095389526038198667510108292110150257968598635608442493726466429494612920772607511281748789007285334422366214441305545413046223304271548883380334014071304040666479059524016598897270499571727993961800957984582923598014411935896385823001497067082529902854320733819583690178200729555611345721292820876452167405028197706427272563343104026779596730128860767380684700942704288938788147634832010150611712917755472160374474690384595429248644930583594153546346804908077144270339882018296818359450060874100136388523070801171056123051500729163854196949274212289552336973552605975126193793424062319626661061302816797325884536803366780964812948766924275060054935532974751568221478790015853213870218344312380372692002163901653923225340421660268648380214090039865935780026498669540502019490299758413303099990378314817132195619639926024399585408919315301855806697893322165655958067683371059108209706537785683309966406551475478326028394408397112121661727005120836788227128632942051970155153879544105311749765961620330487341270101211442568184404101252208599404555859598605685188242471891921756941992888682676813667354043752524525319401272644985730040268630746244817488897207577374892133064079488700918521191757951191780430906511516718935635233325631614285279349390108675087338183797655037277678948675591297711597445661941013072967958963041258454231858470018615839676568848850002435066084969039741475797332308816013481906363391451430617142113055269979859219989120879934802709677560212968285113698174089815182159466280988272767816463864314519845056450366366274420087073260941724757820479426382905504789823251144364520961560314199640784117354643238904516571400506728704277675693381522987343492344339510624135056877187566484981740074284494253366339188643104371426231341408993509166025049063847079110196545695122919517129828508245338186556531457647714224739923944792203018236736683735815881778570130271602243382865943978156551305894609638152307854756389430375002512088364756508298833099130448906406020200337935945398283444284078185629990690054062244686291898482536547052867784339548010544871666120564922581981072944273295994172716493707193586239956454215851247530364772200690754233142779588776462508297280601800978649415131771952819494639982175056080001232434702639070668350775921858724973272672203122831790401082657429983212595416890938380675620811917467890100022916343920274314546068295869956805642201566868979067909842898445800138268442168799698380628475248303068630128393676977561183272447962054242586148866249622561116396703833736531208328036715540469824939684424771631840680787742665327196228324859034492597395569479950826831401154255310419237424333454670989648579725672507500437899062701572993414864930816437718461915467144917104355163651141965164063851689233029937342179138992631121694194479292778195544199905449424506466484763128716329356651858819158059433513923462142865781750100231253466006074730933860062949210613792382590868735981857247944806981670206977740589519574697322759492602764948126604147793009096062511010371681723998137701033426740662511594699578959283755923713624884106237482521973381849861664770632548890379106824700985919689147842231797640632189967559390736197267985288774750750752765127530694681311376155179785078912981398718702621077937189194489405939508706518967787443473630569648410958740614229854529166837571009043847884883903209619316511603564302291562661013005163482633250646348284584225549873128786687275503823007629126826271559597131389795067771670711087573626622372614865950382717309676403105111294826329727307352732430450498164158134555987676547536474909678336688970663000503948301999497696853405313327335828577261062838830118975137829999734499830202966903802017192460138239372846776289728831650750188444858171850952249953296594538833498266039901279474101151846950443123450525397680696673337467152094288373854460769257923745572187949308911192430883022885265324074490542957640160546532294052564002132451392823871271369172177256179835367227229921536569046238326440731813842716419962250897256793569679400756810824756526369114275705543278235618631690281976246179681955507199078996545262658473080952209773227828371818689163579276593283709929777647296301814955065512038896045442415215145282286551008800689456943294230568686637372791693097980668869091993388431041974739570242541552076636446268967218936740933281529806000838839827751771789213855921302530669846855809916983565052799802729753966383197834697059078719409981398587214748537635100146939012491339041121252012085315095031300822391446214643191015486212637676620438179655312687248588496124148787347205176172757603281926970393630488945987467588081639499903760696801370257226131643557756214896899682826301796098649036522127995115227909199291543805434521887908581912548853948907116393190104432126037889766480385740497813027982853386056988969431973066447807101090707411440187442156851700782536157439603146585646831623042591377353157125248805650010136612263585854177853760456790634693781160369724446634939765569196914660024389409050288366735482881369738382313639522028732516189032700944059595489517310776140581501541702235369529550838204314715235318680490861787034229866480009527648670595766958957130193320244082262791600113307321013145742461969952943522011185901820892471406498952817774022738169170733245660238079061575957248829543308630382429645215167417945586247716848810143534982738841613160443539120814079596534044001233796498101535242231419350706847137925843157563212948696778199562079626580012242285591620960035300565572286223946040262306654933656891180241254308767093332903507479841816710899945946767689997137676821844280833595865128725996674384398549344874530438225602020040967885000448354839914041469645052246072949048740519059296977322446259790081097802075687516652665218949747777808668311856238681876403121903062045298084590923220445508700870566282178339106534624133608593161501129701779119989700165549182556826656531446229248393755430601123244384323493676027455778469022967142492407611095661905818114162583071202464981197863650334957639198519383217202765543757962879859219820599126867068815152685053483817476041384860579182361582341446565422777349739771703061897215357084343659593235064855311582697478762848275279618109117199156063005248689338430669383743940383278068561030811787967811641583613705449862725222546515051653142817312763982825594296197975525734661325191390269758635266151637779750928388033718407190642954503306225410829048112283301759249954652109829200497490471093375689047910757440902278661935668846113641200802573463296179390183430997070129764348662632473077220705228221873356430532784107104411215933040835465796346184432553895107400276447377609293222114365408624044990831845551396554284199763201434648538078634834099515059773575557163781643669367545715373551711207491216656277662899797901239737963708223571559199532519597212832767479015086538814455606388240491723337533602401015768955774915415928594972102505137160041330673387161524043804693757040080105912857232109999332043925593333078590943856452842475415626413694690428916760810959111265657275541138974183485571579152928020801823805425618763017753837614834266256516073504751211577629795494068246748077303629837407592035240425054095985062385062579209829930654412719082116706342605271879014980047863746236560707306539285550208060734702562978831343297308087686402570072762417203497213991775751718032641159475757721163883190033482364131060682945143378255187986420008537427718442211139048921166494801495390631171385562651111442068520899001800046437048332439614026542739203369986610408387510387359308924933535469269262225251375532266187589406335330278076034331572233121890397760523609232705197528697230601092573103721106165845027474294160736325521487494039843285283488729466370647918623795826500318205591619350059732540446126848233738589834178525217880997200140581406372834734447261586837321745370901557398202718468381215203132096300867369848731046833430326732022064683997380227003880093711787655886602391540939965933362949209400240305924735697253996302132126926560740981514927653331926689216505662371815980976156114059413030150989438606442499358668346820315141879674497674926082116783576927069441209699616648121849760187220672320997990314150370504801233561775173141861153625123059706062164506204434311762578418240282707390951003979109318327063082992909342610361889227694505414398009039684131707796735288306487685595213074436274369157947496492059892224348391837615377756686466159096244619562862973108333478241310793708442619283219753492554903234803874110988428908488054971870589483687847511211092212881297890395324800514792166507686059514826948088238817422209426640697919230142201477452565901269912321669959980846288956121595365681528477475579462508676473398945933058708847857453778046311381534856339378714530695079493508082185417501920211463308544203505293191023160590213236291465280782991944173680230257860887926480842487169198721509220253817169951270448166571098325081196525037877915161385915832646437572199590452033405221654630205343756460199250350408403249380301172443958187962817647117476454254477975042467176051873473033565292444789627904190012859760839254320003793920553863596270424925070912710509248678227764324479147851561313554701061292412456757152983024781281534648914027526779874574111123784095052299198640809993593003009488465900979681207499046465812916394954504520658554961965844762697808960756433591612789641853556297051397563330588399720526136850711188204643035158397240148807718716182076218844893150557405334644406410824789205148542478968818547867358455266676169485607923636661230511216850492794922030063563112392461766538255700152959412772555389965051246028748372972412346646685096938148913536038275068416552735547337587103023473920822115901387711061452892581492010632333785211626150501534025182445612550815146341781595218666641721909667676183882295012082012348041856941483639905125965952115183411476174063964406236170730168089426378186044938963828651960523759075289324361210751598192456071176154474079127127098612354347746222091444751244545384455918839156571573959424923361197605951502398375438902083610290809529840139813111381107998282999462036053297875104830137992290203804193695616286136208319699974830694570322443985729667659418748324756938586081860409470750270461686010695580349377791953790818349328766161737161291788975554353187359894538205672686324154610642360350746651914050628780873235000977967670356501772175545685188288208955933175158611923803369436717361520373294095129622530573308174823233374124339197397790305271079976448167335300622471108097393147959720669970037531964455959714147191432511865360442900316390673519334219937679911388215296753944111381202106705058531788794779082187757780457004438290089322449135014674659777501898719486673672749886926421092627005096351231599628754087029636714271417009527008053161991989445989150088699656349837771912139506674480039931336490552382477115633610456822892033545288275974913908324461471637064448951302753364803504256858529140535417601997169774615093033045558280391523820771787666734262132655245772578586188634278512038610262568359860279786994118366703425288290294907605543383470725119368014130546976841700430312186748553934887119098783589838804580973747669100254951611512016399206328795605950292367052422867472891132647746893591705990109003098736518923514458377112692285948812952127076019474805838808511708631788376598300944480045541138567059190366009638925453746731152221565235163138209426606403377472594348105475501288402947168970961310181105385170432662573614961273154314329538492420359449091155608542399285798137112681721244735027864838405880212769379321200598066384852252387849590305177539875747993192320452352911058834384288291699100882097099218606314852379483585144988155438039275522185419637463275783746134209734776700333694073428331537990926819413263485395719041993073789345203169529110659461355831791742934702666562495113870700563884266456090387884541997800125312631625648198043475580225363416209754348554213401604044551946807176405394280515273008216253811233875772979450747586792601456315825476043023899328596012175251110040266594443460214992033022609901182710515530586377532563728004184274057164710434875317121183598828921516270264821148584757100709557706316950592121374019067376717964383070334564347959507648265978340203195768007728494919515137939769078170728873343364282410812181472120438964557287872848394169604754359719645073182913895090113445006688096934245460068424519493787891629396108837787335057007176790307129019327671346456867959357805631891286704977486053973623898954930142728349119224145189744997381963239543632898612446765187995641232012488623949778073012874501751480391160887970742735565786089950914264665370650451804316609145827403343541253132558871497293755184803585215292371166027918438462668910885979024034826543006405006762552058707164472162032968809164128166587138332145937960295826856847952483877652637326941065064767658849314853247608411338905177267532737960434899206247631659781966290970174799605390403576293811690261665297103788767701844274336527009579703687452899394105342309114965843988168306691534308941845033243881942524143998963518605186185604855343444277111104807493952092809904712179093571341131372889588579778403889623161880284512155487144919345003881309329939035749235587253315607139179408045444449433942284800428777738064230669477429240473712190361771203326854340887789954475603309726200770470880364565983984960502059211970733022306654662722595664601493782306601092487989148857562202260985995175351198406486484785440248454717736706141822121194464718295514253132970531064761920523883617248241844953580950279975744084433792534449774836497392342581885033855025859508092597643911500407072456859253391230053384922995785520011368429235855815386415045581192635737141701850329177391079840649486667985527730759415705543662845007186013998514377729088067693147035678709794242784180514367955465375634528214024672612972272692589618936678130853887777430276385440502740528668917296434524725949336253200937713400758529309005530539245105747431573769971493568248202238599724819692022132676115801869848085460387216387870203084768626737025712723824507718278238252061746679208068705426746934180491393505019786171610554222930179740767727575922763398799709261082136325230476691547963491846743246166991044586016913761209849971762332676539799777803440377290581449088484298900290852465456432998263970209729003676804136478517829034327962299125545878484133472393471251164000096106018091033778380037080928980829653686104137125656757202093863130499906398189015076327777098394481009424782507055053937145131969664925696108686903631930811968996832534233972109307020204201637081669415834561651107338818330703514707870439838399361249827457879462017135081750580958604352466304238163665837691097458894624907408742904087048595924743753808976450706898296311835048940790983417067743001438488474837234979553964325140091112283914210284279396096925272475645130586631770477683391508644294804337973360595873610782410846006504153802465400520555362991158425172155686814509424625986961815123357748793779008828061706441448706092183456256084722893571723167469641268405122870272604401143992134097870863077877032275121515412244801651946863864463422834254223178746182158688820027800874829233498385072751513376961061311788627856154679506659578633191394965983121400070741750797798947035250826897065210834599897719484206220904311755819480261965788705308657419007035631270600382642354877127387685968869551496094552871304555458052685578624699053601779663564921249413212007081265059245582941401715878068267276177999121167440290642087216908192473454710474186066352019765987623670924091463896500596925934422723815302778447425113486623462162851783270982008258039391936317676509533244248799507337757247290574439116483235962125402920737778817683393887583222337116647768200139215026671061325753708405196990485226637686058266585269359169191565244464925545033690403000011881780410387963478790612424674178492925353855550911448128357016721691100153226005859665368870738661428930066561212542201578342453578321803285817578325981721768383638175174867884410590337229212559770821150628846372242425018414412836930745334076015421441381192423339313801093433246206858873402930750512170100537840148316381944739003211904921410036845376950561917298655086597940239780663509265252827775447609162917045904612803662036582790584948366752189848799424151570904717857787676398012834750639340128058916072465673460064797227290850804608283500409644867521378141028684725206365373592020689155734173108045945322126027963505837597186440585786489545225849037666614530438676877624018911439394706296534578094815144271558018759488620934433195154354608264467529698760436415623871615264745795476648060934216964424522600204905215208400579787155799225274660932800308782972516217175745041934425087978463336820982562790561337089207381396186260420336163150910828301351221455584126531801653282986323197820112055464772497024084920033713452353481965812489279764966345421843591979460970748898333263047062356159369685393109973760632711810457809130970899292596886586674161970205591795898607091773576531911445510920310436552625065166740961663640968864502628094879226491027743553460911364862283353213890825593237936293758810975855378677222357667127692385377147205048041053692247960392886633858252222235023017640070978846733563647986315515397048783298822315577641213233974862595992894082582277602546384101962744612517342111852579229524823383709464323122794996913311802838548400400234547515377466137916534466419163171121309986051870329528636225159351019157201124254596808856722946227671282104379240225957454125880235612361469604343582894038999399888165126394130358552013963583054413887570982337734997779098975875014500826110788779709435275802509628633790416844031276356017523976322912771614335198759557190490436855304603772048628056716723165075880771935709163627994494384897839811930881465048621810889829754711715085593324471978436011488037261022172274156640994726635725705021949394993183207744115388937584164443783493196149269863005644890625826669114347833708820537569824339121535649641362949388599965476892868486501365405790362905003062625756381666234443142653488452502914574982179309716070987948060291927967879274588630181218309400285082736138700827277144776572517514865249144140447718654471525282803362234521065529510013277125071359780093016053925674522837764564170175749450755686167714536312465732827910895367708869017667047081349874900512525988141182295913297096375200954144281435791025611424379951804197009021960945057263462561940942817858423060747739767055232540587117262415732681647321157913839950602543279590572646931178368750462597333149318877941769507032525456841564804351130018608233244885164932657233056460375754913733996697859219526019712716136836692532688517937381869178040778923368669841722811057270830146781256267260526731809851967325631813172119559215153493794140740740684545636736869354858232950440821932457471861114912063004840587942107824743353753547857504450093129409838470411169413104255752678879868299115951029113402340954108998066953222419531899544055265983817658552732109495757833849078160495098323746982694204396505913036315688101014190863328061523969251068282749019649708812699282069824314402323547103113108252421295301891706505658286275847957844675742025050804053412963391516868754536144117633551504591011149757058854720374919167317101466911074198276364851930921611271464247029080178799657603618043911763964101262549907219166984836600052930332524868780500575626727669964299086816171454635841749160050493493151181868787790119400297571901365667064127326141680045678550474058136153027351178123864262286068618718982411472207346072743010410532510830368679317288367408098184986671422778731879096016729571879778889206363734577001063246672056887694868008201212992500091690446247381115893312256844884319816283284195114411022985386383468753786414930901988710570124069220545506136360928259603280866464292638090916879616059665027254027963463689411112129636320830544694942736255105767101829934887612065741816363319131158706715064128204049188134842395685162147969925136559959279309125145147006339936934382791396033048569034516827078578402123895558897201011156411284084909616711497515363257053862521276558674628104969488898864737442284610655972996320436438159677938263565503368991203449074043888204910326737354079122743316871145956591377050533372697454373085714197989988925840744328310885264223969743012339170784121062067290243753293418496716042162827084291059844754035255616230673082338230343816664800825843198897425520235864918811397322456448700855798973660077031410538005300634489508336835194895059965701052515370021094086628614685074659411087913545565176604075053776552893477861868242199436424863011236867621655425351528907041985130365845923474405348456089036216485008478303986929195023264829077406692323088580617915600256068183218082644736556818612730509461924216189149173437932099095874443298143733974016515900068049881717387095892972830114536907534544201572778827860219928743547617983874191072173855916464689422203223485146687471102941697795971552250401337208643083082702928135233589550805461351234521956316595227412606990674684246946270257764627381943365900136245772687406905182593810793883931847496994265391083982485311728143881899337352789289146845781962802484653781158389597003928890748862081244250671219710181281499810578905120745454700239783904682712867250020569362095031177131909115031384164005312437998194790479387020851453012322956204273336812966497372646687301606894216536816451461193280824999205717653212458714790874156056148355130998294171638681671129661483857087896636651769532474069576333997764608737366830043944677008680015818424763921535043558802016605003798915109326801391635616584947650350519447176774816063812514803651802416204451325466626812743325002599673568306274000448999096992381593850525990672577364982390085813545932755670059946861464842552816417583533281131718109021370266567067581723127989735074480682350253497068516617380576790339541417550676344550989325953701289426839448445012929776135776574780526050655384302000170622528316999920892386144058506851818605331164088699524716252010866521810419247587182045347031930264156169371849128330875062555134479047642251422496377076271521708735208192548693132373698485771511167613414004757789832172818947412513917486223082019340641214659487535133261126662660250190182003652559234008664828942610790563825981573412353508933756976888664576490863301661304533851276316137431734030759468924875691764836519416659702891808474015397833624484301742328308944405169517448974701897994255210058855357300286464808616065673125602844985267294223455070125658970150912384818735548931326839291555255426873133149356577700754079918197034353691935201374937519597324780864754406826246507788666753164629348181840499248058041043074504396639287328248223053302726720139062138711420672710182643780570100671793615596014848874061840317091987831863080313963918028790584474308805668272211411477557021138901526610658727284021724252087337172316768211731871263588579927204341222029094550001435117748025664263730563239037688909109457330615716084662525991794729767489915591210337179385546889991458174763193978437996354851829741690779153829600167999922328325726902153655118546671445282634402708852928840845870146970488392222689382207275820647064129729721599594184377944749318476109489468486372023918966159677807901220570582386302178380161942936397433154845418651174310389629132895478132132635478709255163224618101806395188330000501421706375271204539408314969500027059590294986528267402795945111811278741607661146912725692819924329081204401167719070922254614084212873094975545091573664054868394865181268804553984412993326743784247972853201488896331706760246800491526144356596023797520573889586116741969609847086627033722145916645444554436706246450078154621941726917873614419303570040754472242333384839290113297899536415537573964443272779536940901463982614865327942115907002329883314859504239498095034570111590783429489624472546695483392998745508032154962724015496178373213303282037489655968508273984843797079006862316515274459193295004611140420802333462907711211721220616088585304859813547225894532278574745483325443248054355835367714968891258628986945225710420316631655098430969470676400761878665987903045806123705893377373811045008799209486145747253751459432300362808856773240371461034355978330626059804766472264873463796155792417546174914341525305443900762837895452304106072018755455121256130649508506232443938939875980110845495241261931943365959452257431762084813167852057093700692800925360164980279519937749282596342014525727737215974482771602314403218096837729216557152673927851750892113759048828253391092751830216442269685377213120495097155753066494099909919870085079889555460976549081265023817726415257249689796642056893529616950142429486194509937567141554058454389436545415221003632009241719102157176063103324725709608050193359456422611585083964130375604479977864174330569209169440575183358905556351513735658673480090346154232666716873816778670753171970892159645415830990592605386776088049227620401493290375432439018521985956784103822556570224892014407546609918658981852851503569293846396058464617658471062833548264623131232922451906926676172589406983171354810356667656846187321054689859055928782776767949399084103137703952709526793137702218750966495452038470872569202003564893181070526124503723009355965951377048358437368879803912919346893347395556521954911208613291227234186209848599239614214663559409891376976421857020811891763731536664548358156169944413100912239156484105306265971823937872689618338955343551985375955722386471743665510975247118335677421763261876364848298449526259019512954498898943103775288080123250292025354846120346968767500732591194951489414740570453073265981179424245449866578837222807318229975365404291248853821901604732905488277444304216809466423450003240469815380089868794542399010891453165990843129664748086213830680624809784308273338330988752356984503866703328110034636780618509173132403032360737346706712903259618710177845648294741118375158065810441669837898688990950391633290730003745886641722702332166111292520964797842053996924202565549530470791262180768676843587662099103427424668214952199714567380067519997504687271515856159875612977409498343799138073063919374032584179271789947582759004613246303540209945619768820132131354073928945204001440482919921997504767651713228442712355865044444089486062152770606033032461974814311681445805642378084530018796794280057142524191611021701457176988009218716224190504225319355570787442038130252964635211542760971564996871737698524342483996479506279612804860297490420490399728580654878843806988383734821491481541343950645838491366564386279684610686451954851987773450389287152384405620077633553102772676396604849786476240020611196755544553009886668137627649484904569589816312160549281896206626146950453904682877239158348370342501846054800120701793265423389141485318792359584908324756826450068877932090879559178186935104088438233635354701817440803306947401854950231591765271908194445887034755300789534405607935715670382796621350718105491581669635110601928351541415336012309821393200042852996270533000671727770605657190834797702382600353026123680585682531455424346903016951213611691267333695050120116449165431695842780633103444493123313382223577411543197380221285219789833108342167967072148111956248337862458599892836308642979735254928995801145831663516849280664004397808704042508801243685414935461254640773727609306448674619095489918115241399940973373055673563105558157461303563233006718053285989138083232726606208962538771459737784237729766091928573036543742353888280389227665535857539538418693407466547265105667817203579227064417047340388025025220046693913606102090953190035904102511005660309777430523087404783140540053796904596529668152839323949336529870782738302694513283695058470591597015843301045965905858041347166261230591635416672638713624940441186693232420392446653423306554728195841891377872003814502044847993713600139228778530945335531071705027326033222097378534556096782310345179701609409689958498388417251879603797342437722245406825210369862063375170590566173726281749875802841546623197317872814016725832517445706500306960700944470586228459028007739338401821683717747532978994864551206737651773647564821650720436341448430203816123973068858079400288886657295256564608139377373129244024240551565289207343041481463255638288287373031634078922053554799164373650549103926746713296374757492714854268319355913465605969342052724586745027487681886718406612862760521683530649337896666587763694894709611988369097331800170966398168296184650005969740576080347978975247242776461982892207568999251824553250558784627694467596660772935253277396588235520902798799927285371003930064326086783197033897611432949130967649302734701685881998749344716238046037480262139530564224557007739671213669192235873390433592814600837238787950229725070857074121015814794036699445553435638322661347360562865761353257939695898937540862009797039725660277297662658956317239208872767951330803467357147814731423909958579371916009676848953389331565316807169870596239333285664627028464130801981972297460059419937160634312047176234905178335349687990008359199013900880600302629301446661805185857796648659560831275565357085947549968817528604349778958876063076977680621959184072343932072905986742872278634617182447630082461041115813900202886828389738083418525224267818697041225326496107314387309832420263011153436143231522778099958722333221192427983617859080318740395694743121152105990275915044635515911731264362998277455731752858967191388795798348305478683844320900727833895266024222328175964514248908269338971645965203148576370202949011753532148460352429713226282294534850721638944833649305322628113915851475406814497850314337839192583231146507637533656199043651443796547672969452763276403266221520997995951528296835114479162189591452294434089809120955263425388533788634593448742183584956242535890794794938416399699931963442675599378148212260351549986793487105534485988954055608844360223202154803781422905303622162300198208469237211004071206532573463046138986258837937447864262973075633663520494269849124257142143718258396577500489164614019820817072278204880246449941681851366333076275328986139769005162246105596285739979766437775390919138013414995624520457079027012730136235081492387570459471139358610301047084918945938479970203641713376938232744455841997863583700375847926741816214014652483224603547824034433338381504730360072928423531750391311238638005054201760147744174396120339496912228522276902615403398442022712071272083853876775816754856474541286473456616381895864041673961202695020629419011725525482988761847104693231502459702307086590613182965679918676799838169041760970858336558689499573357124415804853786187859406376310021485907395113933008077720670550579096507778505435705925014237068568958923753818836973580225859927123316204618137919761082878647523928216642739040323098560002487819378034029811731667023059345511245783375721420233916074469526210722742950470629396831974778779960882199361588128625403708607209738064927858946591241680298696938735033349883200506509765780651241789932833814248166305379307135226217844909615375364740782957248668828311503719156718806142615549766387068721638832716227238008283687832145277909932126195899002236241280159649854253908320840116137449910623774042261187990725512263868791375643668110996087709656819269627295349939581850628774429932434751400653869528221599194717049601266872278485096274959713619740435885805259013078080633170230303933347108676918571431362882638557304922662096558248546301440431886848870424309022159685597726655582534791623477472141172858968054325540798173760500072975958609045817619104425093447183725567039862521010276516533858674655464079740782063877181509877359732659200926068217306825154601142310940563061237507985105461373418196301827833228921290489316375391011965197087837200953558721259191124274127586019320000237885753061753010770742258205756048735233303164105988352219334934744560200897247182964682506356652275134762962160530074449180180404576910779442993873995137867457661745494149575787055872620994983554713302940551862270364392996049885170626706702139104265253768761614860885203997430501565658814307694111729680548193838168781189133855348707938140369796956566445920702555604885372241767571516756274767224819202216411641096139135981813861351303306687703949570742387988522079347100741054505005368614433110186030385790863675101498421489808648805588277528195347786260539132965804875889391995565342988939337807295230930412373208684553170874550928436390755366441141177191528525865296090122448284204007737393836949518572822578858412552514333964828379897881092597131650859475503138168714389424049699015325712053231873981161634802272870447704431384269914099351422184094997426068413343749152951856133845725112169574016917170822818583059543344730405199184454769956563439611305935738971211138369416035465333608216624869003408498493644232500326620989322978463376077368775111335093834316191139660711074915225995066640024909799529661066289662351503227985509655902096112338880318773740166884245273136781079094777532160332630116109771566586702435890846962503867751238379745700197692946177301481225578288365212216137347259269114939990567003980294714740075388902584410049646431797022910063173026774166243207316710562701074946882587698387053062611755726843407413915449892596700574606573426797959961250584313032554308114382734077947781238276880435167622344533212445282492409494769957505020871510980607816796323266245816335855482122452007709142549829126261000220502854482724096932991397298022154498777488474590024538283650559725188865768748412544580625557461651746218792552759999051663225940965876413037311943723260109153842218172607872459539194431862631909042396375918703176892893875000387491593588362502226706275817577479425946230701973994299858866397299414290079919899413509059443944815977405036051910069416598558661564608530001156727360348899110178942012796135123581082514897548155443081758394713289361667692675102863891409147726010871365953224355058063790112631683051185742530641086409442901339293331596038205466176298011191775031245227326632612484582023613770167650977993975284723458396558023709174720563838094626807561871365067354055417338099658435646852480404444879153780597797465117840069774179587326360765561874060228001667597820899729033865182869634114255761935375006946355032966273005685783263076907384139615535737036853312481614434312693951456543552118227691333802629141643391229591427221533324590684217578061234608592848431646101425956209166805046556585848781181539733983387409496761599483821883756529405854315649600829195872497842697932987126373579059778247047332334834344068325526007870665744798678168297699781077756028726764167852778051292908789256861955305817293034938315341935937902942812144812785825373235466676841186581707630252036369167342512752524171803240880166872309334563382086279442684035862671241954955269641526492390241834299758297260247039855391760355224846751609868275723741547659985561935669951857597065486553971054948534678405346332058087519678951664927105250555321427223492347407333518579698609264042751239404126116610229885305271303726424849987709990239972729348586472788961145403097047516932641819677861464599924511876729097939667360277132341306579783717072587285507141640069726966186174983750900132046572579134553858796536339598964884470300581872778591309134511973559129981244420946020676151477970111998979694369308108100639265175537362768201324797383603864780079890515668963287106113438146228437686099136361668740724662269544946248281030027960840675001261311134961298610690686974192892420465540527870323274246818117397053112286377453077222483207052150788864646796818339337682699213821624562244225591917331024407575118571259042752893611647388602108638170284513596146021276024295655537246332027799162858355489042307737449176863774082060282074040833149759677764641736511734069142762413819120118020533700866055911655453629011259633346329843787915833494029611354248604475486572949137365948923276239377833593346620715338599018886757891001993104228534646890527780436421977281445640274747009677708979500871510999025523714358967326879425484229437014302324946319745006540973283746938899289404314661822910325372257364978061591099293713120801999624632784654812186451445595672723135255635364769788447357211376903367073653971288547227902296573115386573203626963700126030446525583706203637014812254365256882963176825411982555427760857052920887265487870429836590938597254117393138929297516001956536713393546090743131675259945702472942281835520790218262168965341279274878262314615534631317815985843334669274868500546852552340937751185572276392719728844874509717664791632256028668750683470849588439972752632549902512130270850619176235463415547555803242112410794782760432859613410317007309048848975969047899588447179498171421522732986298606563685464466469093116961492014645172559947652151892433762326388894950176411231903778537260264155865549426964588125816443122400367038629411744845513691057807705351550993172590280609928918796993627246396753046437896499078993708134091734241040173574753329939721636467524856222616419077541981709575931312760553601415796597847332210334850447015258214393352995735486982891861903148315112927559751450884999550868885216506305601429380651043295780238460539134097856615536603352300565180266862554139990243184919857647444503174564035473346725373901423415226500223193994639366050346128697521687710359243564748865988131574031473055969651092799928595703927495679791314769571351910391980722202021733358416793292778558819982930653462776380546430610956142830333805838614857208366577268193962043785145698679166117071895014588439438018137935398931591695626351498265279765773861515937677613140177622582916585976025605984403084963542764951938233591712877131272889243292713982706379844024421842623994262261937180527649339018977307569237489066330414299029859330866374488125164849743061817058402577382851014200337002207056716035619186591093225211455613843037731585413023729594958619350687493258724345382845026614702165450025313057447459754903157240166303306651870964661349461146392338295837357762148134334254989329189202517727573815943252848566423832432555688223139213651426851533399587707874710286673543794885161270026935102369665483603212754518984820813625466355205348628147188997504827734485825274884599363065227016932072896551332066084172491791672381781682567778835176981053064316861622552450774045271123515971246947978871384998673723606826948317627317576319511387412105789964733588294428365565013936232454428090963614845010014861079917953674452048298323557363020776247823805454308943551807587882983054941260003527465302511668965504816729754863970613047726478483881040963997091758814818486835467028843933488958556212175452198165874992215381812028537234167005487576364365617461641242783801651839578880040294082777221836697838634727870409473503175700868682924745315048405172936487365905995835615269601898902974222568080660577789898330268807243084249012183887791604774781231327394254438958649725741187735227025603060769181770675590302720345481119707499846480847354998864335182391806876643269885781842867053192665218613826941693110278256150933150759653554599930685913602151700663407679550753088343980065308485552030721438319212799541928150562037376665305173796507049994082350845378618652949375922807202092451841967382872119135243693220350850653821621854052298558701094680705159207167058627307224878186758701538471994859394855663594596715366666998073720918295514390040368066937402726700468218472293734713208548673709127062244131221853756913248449444422829853557371228286333388836529494317702843630118970355343103031984652744374570270363698621109567216899222099655666710535802849327833923671610872091002082792556069144019611505475491668133150261966937272966351539347641335129503108844094107060823567890515923094896669702810955596072950397105595912933378951092495639787264942029757524176516123368683499160963426886178930726450455317883345757107331191692075739891678274196879871386391590422934747039803544182002423682842853486879369671178708356355989025943592397748622393993768754521471595712295941724155953698111645505269700294765077576485316346728565380377045475283280166361339787920040969919404900069010596781878332615598402853086107632956638595288584327828603554786494064140641838208153984250977739225973860094741212587644441910251792560888259714107032068695688680547809151184241045513898222498820131843199343577032695899738675140248939939364444499717690180806609121171291654498150839045780225586324660286883146384686206556765355397282617143353180576861170488497239241547886162007152246249626030675341669523704454347145031905067774423913017174326444948193395473179237214165272729820518846897550022706693181271589905112946899259523351776062488803260303602811624436822109414351637389889048231795651411379774031889968292686545602974466836857876595490244151476508010283094427383470387813293623100139174528384719139842509391746705335091521549507262830497137715764905334573489693087249279153526601155839838278328467820036570188793177393196743472809519541733414811870498714116912495942017035446305525168342968633279606632651413849222066911889113594293570759815996078729297433877156768296933916490860645439971309981266910205760953477285186629893325495398453943186374460921205588958587673680726247746013431509446037644571838199972203242687362464285366292259516582298388055815146489435259447351346374315431246635228571249714408544552608703121927509979217800402657373403722536523881705648994773263151181711787012387942663600098610718129296100791201626543135614088733260970694025597186218634910775786981892508313240479032249258181976967957480956434598687827739843261950929706187600455388453564829471677454817768893945335047669188017363989172471386251985482472287331997314643143856284901211827277699676434179950743527240450569000857333319922750458668438303978966521310614865170323846077150733449036028096277554864725685971958108133979940038402626379021490596055511708180011969225406689360463964166561126681009423979098326039408904386172592091499268584394038687114135860940303609384010462919940854100441105549619733649357369963142568106423762622198888015481949273998234748442498887554057175206239249367832552915526348705314039628756606509359394648256131352406338095452251523182534915888074630844187599181570402535750794266518299777787115311090262658754250723889555774249585130923989532441372152830454466208606700438817781278295679320189182286045251019118655919643185378392682645905479517085863517219983504741351849876393743685877105789976575560379014669727480617973720741159620636380161306847311130075846142623741057978814366300559064196990163641852044764675004692932111215925924277784931960560345362819675458683395920566939326378384460017472699653385493062549675597996529059418021526687895166908980067161908941466040710361027356931036363778420122481455161849736030404036827366361881776780361752049810604983832926124557110933723284594138703312371080999973073582892396083206218417669205003919808429189278098133166374558405770227925940374791647088565811895716977745945415615880638739099637040332633396745664497135296942317269805011447795418341571186927283716380845546303654074890881726985542825000491152158134394355854392809520167913509226370145300059907590173739690303782282277426867387955109543387542225940541093269722947976567007193060340922263126119539857331720291527266393967272904477642594708315255600112001058577089706175855772148600738571498906342349056778053131682240217399198631566234268120283864877460171252992143667806901070742194245631562898469595728707401606717459850461539934840487928589331649294579019123704049228201664758224721405301186565242826222906663745395349922713196758520239160222984561585841463696094607496693632078891569740506317940996414485571636512788349491739452408505474155312235910878172025271352279217986890394983377372789474108719073219593446856374652958586914018407557313299279681541071506076478783232311143435540706494863194363973683766301940881847214188639201313173016175305319452550096024539856265655336892946780168801836158395694294328888877766269156002510717504692811514008385666475604864395069390509110391844581216238348326048807314169553154168444298712328156691088402352719694728794729092382284027731169114745872813383191371234947035469950216931438067585880816637957094873095374967879217775698587202394564757348516294810744360291636359318010803341456377745511941162465508882948114318781078408418138491596250379220668016127085235937859322421738828634807825531892820810496221147928600221035032329884630625462288235786010634777670940798240345472744184361174234326045114213562316458212663717942536151282643986664557658657450719250924644932167730068845054906721942814119368666284202397581810151337624499060807006548616334851562556844911817022251957724637056675135366318291474536411597527132024969421067127289523144588237410473194831147531976576856372733032391860556920903166291228104564475540440285370157948364279773054187711274054205252479320492572024543444098226464185070632801169763773393641558678633416761137087620595756955412675098060971824852609625190761975789029794040749116621263448632807169193742216955913687064982273814226313837043469739973058178119446360188997339408907663690592847329595264501266250683423505271817219515788797790948240996094918034847982523185801867451644596503884482458689538877516519701471829245357392282121925968583675683521491978318226325475703318791621014609096599968233916917443002495870622808678496226878783271246476156629007394109873705966462890408987526775903021055770836601024931770387999287937410932233506371710640104577417012832628822852180496040772781967014033464482467145596444969929528582212526867682913917994737430906655560734587105810437287248841370778812166463105071684209875017327881184405960090363610927056697013890978066705889390600257501638012351313676297793798735042977807889813551065923100686718192903115210853015911146020158451038421110582492118699471157998558570309959255519816777818478839710583705963776652706398925527398582417678268979617438184158770348549087223900255977093956331311025503266677884521926560612195254562842038862410115324644170134342893873753189263872983963910714153886343137088971115381413180818348074083344432984030336875485057148031137882959581752247206364799602907849866520594455285655424549187070780653010056914899843320302449481722063209241987846200416433373383664385559224633356611872890981612325155041577930473694485633532887947749325218706896112379385446001511892233844824137619980545651311101484703447914633777634980271817623434499874300965698419168584128813054277576625058890577322495160219925179250351774520506939897853355517694652920494704601531829914638610093045183921949833831283684936854402597044683739673712300941576971327501494842140798063424290912640809422255689751746530804246832999933260424329962055920298337137404764830221609236392465955944053407572894909922021416343621717589326684346977189655213603243442554399335907487762202229319814216578028582146723402022233114173701848771464548059877608061309871371469315401078487296247092809366295265068370964147409723517699047358964848576061855089527298244086125642986371363728789386223174405543861704660005646995172949139618550357695483945877618173791958385187020415294112522090480762871032356001644278171654742885977903287642131358515694993168976914619417490199225293663584475648164987304686738926952053918590590147127030450684149703239457057776960131107474284552048738625338070764418443905131194904024925783818542726645511023366380784364394076182347803313904724159210272806726072793881882045326660276145890713388745664066281774357307041479187636757967730066865446575551781498055823412735272633913255840464953282685478452619340476569986677000521031683854696560878514046937287903528576604034652447009496563150970805145489173313911146862767590321409057273846259022853597693390370766456727326033746849479711020890029902687411868208963601108728266913628767684280870831194137284299635493145403778388323170504815160326696692064360011289199664208783379000078961138078422661959783013998008056679631373608513503109658734483164526260146216319930099563517342600826502583860951530338894673765071954187448464506891823384788301243431125039290495875850537887861726049371013095826449430228233145530706450934478436391946644630635032186517639181225989388276887421871311298032631224273261536137139573188569662854370229720973714355314304498970221054417856074149903944639525512270162911280700580038032801674127381128035074024111522436513797342138443774314444095957668623171937043740065431846256434746952110078290577854029794018582403516122331039669052861586989312265772919659098330104719787951493232238258947225904087229096119976280807686387039331155634635026652483917027589131439498261720195156659599424539949798648917647186391542817206426783140762760138895737749124578002980975922006744804842651544753969256549792592202433606470238687823064632269443250736524531146049216134282135120223281994433310892708054446439085200435825636757266834344253721176368313286627426609907008817414975788896422364950272937152443461681097066391714049784353351296775052573736018281065192537438148030330450143530504268771805166833368811345588736852236040025653895459606006413364209639216737685314950805292785814485369454760915621910725401076991359163597238010089771002588311946100203633092082829361198540036146472245566865862493615155159033703844549717365349603762664780865187458938508900438155555967637445304408358131822953140169614397003924457720307086597373520169977957937866443212756015056267046764437047840667531017164487974066397040784416270076145654694440416064349362772160075621820208075518732203746243043982790733751002355863932152989120615495345205776262319713814014909639795824386205155495704482782835120582817198478192412273299965088613100885632542331922645803594465099280812369575887617806195500407318684380183619066143705600216749749495777572555885822011912156472404164324378992072469950582268269941520204106230254218122735734764458386738213330793898225586854126006247915799910739316893698854341711729170794556873586769763765073587486183635462676070242869778914212478914307697947767861169996944581160683107468976912800609528089014374809625873241603360632121284474256359513583274967072839334089494607376602228890716544490522631942673987429881002132724590583366150893971931399023769028983064715596636438321568609224715562031302157365280458872144254798631169387574723417846079881037816952075064824549379105145170578930308563558144715671732335931390362670239501773040160667122615833481060693053973329019850708143406637939777104949733115566283014980561605913766128511005857624612165512688798063955210279163252652067584479695509794317240461691706170677798885205465853794280290101819400380540288322843949296874821621989235234524761517516700779460724188864247579282102982764872960333878549572067969626978240228061648331440293393984107931419285112906455383281313765637455513067979069360272020574339474338367542018319758324851315761345618447202802168616148536423253358108407597776922597686309627056324489807687763847801851316262484558002382754414392881078573650806132789118351892205563521272364788373946244363310536402643366270641085998507682300953139324459960758317104524314372812273568710574433196701049805793109965350262184029453685310558709464253988966924951130170658764985053839993923065421558700655172308043906165334184356397665485596645119192083907886346329233743943665012394142978243422440839045994414193217850151142301584958766299848055717699038152712514099977399201333118926860123075057500006946246873102312128748671491064608643963289057524694958561931889381997653033806779229799950185912202427118971665155154352519997434030524869228948948952198555531800361092654434794621910258132920749611028924542288432879677645248660354946014668460246158577085051999867629672290916220419351693081210999527581708729516214630150870763958108957852658693433377717807168737772025436375662784312132656279886985122573218206447381281903034063101906122909461003129514199673258258514299606561604938723467847900382906340239303577590058240045917539221349255841990267707143079682538058428749067970189557925574754077056125607790810732646896498711585389187547598743534080276735765508494280704537025734002025419523535955197829014052316450769846895755292516464465666126646503321239092390164610928969542617402698630429764899601373983746266536405251436317970818279718868350017436736740967933388333765896366166882759443190444908257898144987344586244888524891503463801531592238845894937649548355214291402575231824317894145161295623825769050271125492070341198618196012822019686713936017566427810733656224905294144286164514514713659478407625961704557450377849644625599543902984934271069970330787488730525749220399623409849627291940220240220509861599095952456659224713812907869892715279596076052239141239486076089556452097421600195356512070292110406989898945237546743924938732557481412861788218362389413563868768175308604448842729122104051256162817829405759083168393881613683511235844017763951845077674152085911517682751212050939008655575546888021767022770391757903088807248684185465508209602832772284047867896802297662066391551722677258428147774089980542555998479657478263546760280086827465166822768248247044428424648482281554534826334868113060158018235247610881504785007265235308733486668953980713945629991253096991174847382843599303680362845501265458019903198061304686652435808221890960444417442296970748722584802720639053978211482549588562923576158181398313624791145510185145237328802286712264228167309330249745854934649760750828397264126794092688985393668854168628784753524719788592486176027931042967178656761869233238916333130993148471346264582262097821814815473408805038401919980444817937437787840292781911940690655278281166155124082430238370654377628028092738093762404965497287865442596619245072268311257411657582817187423737094551373023593668537990891610981959566914304961119050541978414674560689265581424043078043037341723042204225016377776498971561131268259376474613515360902069190814335005908604393304595947390806906347218480804315185576160485602989365774659833633435162389652005228733743629025749889961873203334261631382348868848947406495499342717817790760184824722457580133408102510050313151004236096766999100811044094590877267881791281315495756074594482607132469241086033519841944535565252005197501417974837601960563628222333460010572285300605366136177447810070180154622661969716579388263812269439566049316859358152001282814731029689911473359390275844263455751706369406934372282393558992888427946088034124723225418886005171913422334622520016965198680447425474344763658271432353129623064914212523518110746149970209908973432626361327876711737448500225566022340435354656386419736913589765055794113585657330524235389690191254266168710790315723000429487911504942069013471480557256335976318073508690065429730755599459326220978555059311862573174968698185815581047271953047033238638476837641520081565346924236709338416394966042957617644902548068219267564270042186058564968953211242528446175118317453703708910575824227698863387848172358762592891640187471879423628849222481193770862189789012112725280084822991718724480558108308674571606542828315412335859967907914158558854800811784162936269905652243336419888751517205590941956572087203089322492738067179515759734998225490363670526823645355435464767262406846515579810697603157258815860085528685042857712498086284935554792390106762973794327914394310583522347812803479693632953805245108970762957226404536397284964376118060866331728604329498988047041268173836146612289148035382271603374509107846070623462718535168930370851911203378817251302085594163179800696803739926446157633492499513939096778869416885256777403980642087482301608900602247606873523512660662595264637878653096018886789925768423851052942324528538310087730765180872102569103374108666479012108242426422360299269806879697377876458266906607723862324508642938247526938544645314398740487118504868524737851919333650700325610878459986679975995281665529371437578919003683147681702037212346755430782280421842414473970315624946642805310688321964395644047440097877664366348992877564436574450308391473424135994811960468800705247279112065135023003287856169564200643084860964282220364442792511852713476003518713535766638438280666284801558313422003497688374078289646707988812926929045119929782418139643162102478302827920501475447494401239409039577553829968844873083165301567579747755823492314365543858150759539228689308888544100458096103386287816876187202208351973051139348501527490189429373105300532237009180249168467062184083377686827073967171795329858115360077271404660277407753032273190684003999140723197910797039465362934463730838636303421224339611450929245320496399464917496235858123587112985352131144137947595548124756228602762447740208019953346277824398341168901968232169435113244321709511024940970885817352607542891374085669842518044560995739325145930819898390479389014881595383558782791402913494950555568326860482199939510717685244283590058478275685053342543360250840989455942886563588915162968803720771845593760558025157749243219853156360401114235469512408119023546411630132161140947248567911690294215926577091389095888111306839283609737050017133865452933474938098953412825666485115824287093013391124628040145476518518806468432382664009343973163895277748114698196850806578772467421911135215729943089081922047200367426375218325921360129339909337940231634185044769291836723908727826882951628965780373515216067061992854934643687124793308492680036321079879283228500938947594468412919067331720318122280011155966037843166055248628682203520467600564971715037408883272210571834293361638029719876872574581193260760086138108007457569897661635072833810536628070441632915617985510493995651329347260423773529257117778723698661821699238248459444692810719297956730431489063818529219491732994275677710491039733052685863534488404176275549990013749290252065080611201900223516080148124237988729794511142957710055519414927701171010240550614621483074972456848851029658979657899361255289276703868296007170300676464960803327471040123164689825048333534730564274762409497253371255155655961837706420107394286161106969242675216673179625242645107175102485625421246035567673383699534723654406499697576793038113171982986771834833785376217882981316297855583843947921089125563966761725253890007416593695608580582751497927273891165689461209651218880891672033321751235620462974266180613757634150591331115202220530762497164856545044632864330595175903795329373000719998515279624402550520864346285844248165094861429126386237820101090564653060436986581849861845102847332740888755796206461667869550357577737467966179026927720382260353976695117956412652848809132666506347550451307930249891318625900575994182096722464526381622084498656138643180046275339096657617256485401618629492669441428730306621577270452638147522881557127137617025057492295890008551570197393818981390640269738045580127096178545256014634531718783040779934381528082278151151961897887842387463646055430912958970515785198699104166119203232848068282460642447849298368708773045301411592033781952392276661220582344738388643896415678466180859498389038902780829835883338852772896805033211005517846383842353455369057512835469166992501736933586052072511707898158762172577229880013862467509181918205825794191065648610567196044993877946079565022297124242387538212014007675064482042517774957763180657377896514614812861229476254666391722298541306312694661251943738588048128648117925449862019141226372313191740961131835755312690027476250689218254306582204140256332289218830744486904460274844428984202784338929985712345850718032359703072427888497982101640391469059839936445087866106357304530347294448825734142590035916567700012606539240504645027549791665041821168979966786174655204756223038648248968493209774127040267100298897070865817498663950808225338431983853066511295105282631404675842949688258500543558179932655637960129444865759480255776681532399578128766858982541395764827554424044672244080457175459477564179283158687964876833467878978436507322797895305482458551239535626896779083503374563938287074399199273739289144813978243224236969462302920718171853739112972004465981678895699021322742763009719850763897700466402514317610298284449516525853246862523213100898194711114092051271949505910990031707344898120275460503840379674684756996974355146857143991612323605005712009868246438114929515781321444802422348597905055857867679342736198386546267741385726852833329627572842650213347463542118187690166497309493896052731307965917734950286862901089174159732164020293490548686520498381284800467308689039823141467733682398447099372871849444770406904947359667076598599691760088389439742831421037119651399883452184962227924811455060442451950062411220650190088401862488511068685118532602432671519947721322408388562146179410288080395434298562344438491647308110196180072769498279631186505419811916968653068848667428508821081701832834358157975295680266742233023962281915909456524102424950951820618421141678102493318035928019886241791722257386403959559046784329611363156357748991325761194024042668913011807628579018180872334052503570097923282731977479955836939207539238510271791440002409307429594649668404314255096316387606914766474138942766026902743698363783346354038781285871015613683509862381738462228577713725728696803880787410403905185475723109255643913158975622065019583161356863622381499928303458980292333312257559907405352722508491588859413985191920628273835646402500562580133946048323262651200473687186623363002316452700084328959421704529554774936443746576835951144632872215069120018755489237307636516188973454617546657823594523021914241816451577212831053629239590064336362049049257598422794323131049614589234665098539543118681817652888706644069931276955983591706891373255294639222395845177911879608768619125835435395810302798811947119888858855202195854869641188592982780987723129233459870216422275952684004597140555821882864365512736545885156578145933706977312666634785186878968879387556810868263924660870339609491072885960311962786919096350150567312818283757519542265023117823014907556716001047366701522657381407202442717834725811600712644027592576103103917713152621414974080368947825166832053241108479347232009957615102550597959503407321468197720931332749073995327451310796395694082506910352486569141642548610173437523054155032845862090162037575488789461288760380828677741242177295819080357629187894204668840492370558735981841342579550583490615081177436423961139700308537866815533947923180919714789378574652140732891001146470411519354236654981134169333767944094522896927440036684911393989927076227626660716719898745924852809796174468513553649882738744353938326553003244636249699147996416180151284806251947103451818638420663978428685148173711466338049589463997685676301875935472114527788282220066076840363175143961575704648389827296953247958804154923952310705369483585603223107349305554435961282573475285234825074543219642674001568236954249356920400392849696567882780978340141365112802546294880742984566019686587040224645744699958104395608002020455369838731263681915033652075631288668376423333329745007683098955227048033081691378525954781502123391635723787161146033262845404943742856697392088111272482566779977809898855297551230015501673159531216151766561041007057679155550155043020717632800992187027628563334620282759197177412354983736968528673680456418681212567715194543606407817625421997669195529057653236842986402442825397635540232915500582683102949136172924707248859872375823597303573540015583295620116199867459571669882433071692098065615877599572630519901324783539526073270338692560890294201346496251392731665076167198155055442976128202088576670718894676961991453525176676065053254172423670944430450331510846489812077896122100458685311882720893205220652568795000303187832756722921599070443485725617984890641150616106468540026166018758459236451404373284522783642102648075332174986991133376470031097120674579076591285490226353285001342141796478916124031537341494360750192783452394600144778784370204367844100724477873159765231289629249761759868500470902164475217965896141008776463071990606115717025085638945564375023364924216167930684141076527402033625987226121965642777250277582778670015985074690435063265577474943363928623433102880240391135048784782764195638765790191181835445253109833144899184102898420945554497874270798219794755065693072566059491655687559565277305312496536707393890328135280740498263438416191370125575552061388287827632929441049706533891403939540617456098714203755949058087364060260065903308283654731095364339860002066971648449257681891763046727243835020760998012211506644098252510615720001248363086637578302200730169133128824259980708814056802714087305616390809517304199276119727576957590455788347116617093205277009939449032620866286435525573018903485856330483715945751512880796415684863209421617920702856165096011925122041491030229016442074973570296566642378502116665344595554601653749462154015314371009617761113960756426617085172907992572613503637195583567601977352736516342621655413399023768261992818477257375163221617748520915948803932357814985628958430486820568133980567086024593786709318076413452512303624906674822860391889161053926898650367337730043687644995924382127176743959981470088255986481145672007658431329382354428866984076214718857225518138209300179506213293479908044728038040478494679260759226966447360989854029405104828442383604551000917905221728968659390973548297696871091780112003894983499660720054639863373860506858941479925190958590786697069567341423124821326913259001817476946245385125622326084843852313035083471911640089306807998143668265101152431100047851150456486989415527844362692170394415824456021159884086253133157544414231254465688297996310770323801340435514968160054324266536894007720884798304603549059146933451197173097031969752500440126200030899682786209962081445475327325067562853592314168180901877071940639702139621157957058732415541738947133728969504780152246735523142421859331220459401378175784329410323003511673015687592963115905524335113511110999874762702851467038537323112671413436116568615017243984854830786041676173681434902299244442501420483205598953750167199762949551862419084116287526150552537547545191599267911174009154356479518785238658336004892879140005917005999707087882425972540854655528585130488809862697228070170069812458060683573926950641669042068746148810010118822678284029601492003749639037993982573127154602907161059627979450946983339906299899471497302437990007549141865114190397997484751751704678852847144050258261107525429898504280722564677940867143243147486983373148599564656280576503590438157169794682119542095859955306865948135644748020043280023963921280845563184344810298286207871560194788614536847265860900110360473060720735625720658336665805539515403366723687641224998017795636383139250529818248440952383268123987454497288930187792183709359257569694866929100583723400268682738988165807049200687509951976957359218675591128471059257173915256423675764373754835996913695900203315325260981279242276951071740260443752812060413227735183389048140582666637026322315925447774125703039614271518736204870050967176569472889285329018136796283766825345060445620073329495048521510532986038428011316485302714250413579563036517614312572111918645137454482735267888264454520554868819472142860864539846014081630820176992978745376522490908179993196535923051236882021078858759406902564355970440648399106134901137356161753151370695560632325589724838069852440374136373066490152570043423766331407883219117672214423654678476506465375161178528757179148967161191460029178047980611685844254369862659392712058490386667021608406792566732641202237354329792774605478588792051203341411281381003893266612794340405165132924645965723488933639504276880879549901847477710356997826416902027416445556029584934481197785888990875840842825220421910790785504931246734032986257377096373438818542609287401852408496931984896594746475155062508713824995866010488249468191797771961132623020171570508485221332485723555022961767399313428333105521477945200160659094185797202555024773936146417459359923968443703464890050893602608883551955387509647445129087388495109619422303752671047379004579093668722241301307495547988213546496587488395185766226746757367532555428578764583131761892405919666871969556659161709331484153800343981247713950921648358836798080780862021887259126242560192467478199185765489378398408585462236318190032785220492032010546114563151075856760498252861499239247434682244173671478305829728242112542574693765190201681514030505934099184885821800522179883857063718328681905901759491483653206843161195193597336274067589037553763808718937537921828832032125116291680002296385014014843935714215431455870454150302126770641544752852918611608082438716765614083917675510966629427662735581538409102803101750086444306553826406178797375838149097023912301333844840169455069089789178052570043253055163900449202943751677329711557358834362069281652888642348261591200233919461358702073324754643112077131195085370809253767678130058366479932872113517127653554799023984395113291575640093166729897015342731888642697165416810451864977305157343315597336606972729085146268520306150745127608804754917092568965981928509335347229974062769563481281999397784077572457536567828907629422382600053540586957242616535826880150109348407692111569807871338623941047545356660963053158889797087727191930518908556818354999443797600641304843064494592189922110269097290218201686083011725870434032818376486586878775409204779462776688077065330001060735304018353087019235076489671960059133717936369250512501110771477444583839228457140272790706411530056655464104343168119749888950252850972063706923269328233228068597728310518182684888840246967021167608536799238969727596815722843303471778468112209952710339011529368917730413908378128092696927647298779984356625952572007548846969354156951945153621028292762079367912480927347049325278027589083110762956762198583954606079725504800426604483903970264908602489208875539959379066886908542529515761422256822947345497290492042002724410815697840210923031746357444226028657566263320310934197898193217129858522326126222228948999277209429161023844890150090047618905025141287540062112496736345272519648109398548131885336361271052261770794923866405809148912055621899766135636282930977390299685282836713417747073815575704676494504675864352442413472291989757245382521749578129852254682148596863754684284525361077958999011890963332393215639970106926542934623370225181743202018742077819219091119659717528816490841828739867425790702032147413869559218207856248417435375622408167650079690577300433764394885115139207400643182502998735808500826608720650099732369644141347706831746034988710119032884609370496620192082780645359134024888020294364929753644541995966778099980010972912411221038897369790071927818292375139151723010664559928169140265859640388390556402534816494456970205471132949254788661315813512348969696518430568724246687454315981074367772895031166011393223803200001207802645601101625967907879622834311673760685570635615536466589366568916524443937746602792704243635446394513609624709565916427936118554532175156681981868313213077880489096775680711602308421210019863271466546828782107306927789949782041109428490121367999821341719707285630050181001059454326092518633578310971504142562480580456429157906393164873851878024663780141563575685113484938718901886464986111207254125578541116484437150653019272153243574003727496180736969028365653626190024020128187534465679592968486432317560491904888140114649749793705694107588518002820389699591013729948837306650493273932448332050022029833195808792622344631591331113420924611304420278254777532066228543044984628789756089157540993500751336410142753764571525246177897079161219793249115408351807120506676567204695285159010621086786960668620421536657250822089163680832516032212922423860635759466511521676207749479970311338601648265730949679522235007757214749172599444477160909706126264856560147304481014465826808353210901161573910547295341470489521236123843916007064602902969585505030850830115366469044257545888563797982775084955957269683661300276777622934977318598796604658821816186195443659406272541797096947237244384051837895770614800182776089435069330988529974387599993528140959122718640084572672653108285505251462994795308277567012159391564197559715014557965923818643262315741252836130999465277201456535880610531737225900023190389585711964040515426554187274412762475391363618696118738498682086214347584646076951839623143008599786216444921071404293944903245091591753035963468623753907741613960504929883634097568152104463597152186349230124467988128276120960930888985064548088330694882317216781895383954527248213878987557501972320361010701790056944502364795950417537023319684177989430718418986339274947345294711865295453662105509177996254788367256979606653862071410354144840746652402118160684313929146142212558755387027469386091449556494231569726255814816095104476424382140789602415727748270973828934871277284802114406636541092453627680778964063066219535442936623305715260371219342139636269715049459178408656876587169180119010993303583264133470416644887653400305212326750436514102787614786046685911433558119301255259688133728514006806215843810088906272245212337969371197217498868048497272413300610832933890115998178283988290730630645957771276486014158487051261292742189828077016087872666024086642433006719508867779181282473500937909661692334694062306353191894370417835338322138221993085573624909335302585238524332979118510348021291179023939033544347074949590809426247739724289635140324116854289352387463154241460309519988422710255298555246968757722300807426922339083559057762683803395768125723243188252106137395213869122531168096059154367683573975608420203902533336299245001150594737687327408494659440016440769041819639644543232369360368155585248847860796843224428394406267428321542259416175240539011241965672836273737494461182643918887963970504087376103852125990278111082994542156490983388915322488208081541486722151309731595900137033804620206136439227563242743976770469026328153819874428756111252105750474826807674927030913367163532110394006099987418942549325438960876444306289195319092440709431189191879070337426559468989593324221951655666244319688472756389017736043403088122737161290535380584751668221067245630614798087168936533899986200308097763788799300262383066559344373727855942000982071211863219145533939799057686237679329002110668040352304414650996498357115131580155783095358464166967640601129320850892136272860986821226223917908440897296462610779736053403903499119360348979484408214809075665002108835142047215617722003597585854378266852135386356309600371672101056111284960841657508945205660150120722067142660611682276925915039329538864363849094903112442614004931164660324709018594140769862756576502595469642108453991177796465599798571404967981755047114876854481658721189563589433293857482959003184334950931114876328146560817595566873699680410879197097357545333169285178879464245010785593364365554068614834410704925454788445866507749181702204097183675288328831829362416913935753219551518946154061236407513897385623592058179576601463991098846376594996868157088419167342717767241625454940107637110830035047912699380680296824934455810276401747173573126892512003936916699697692197362811713853642756970872207619240747698625848307110166094166349975712125775924611234480830628407808811372737022573257962735833705981650768798931686779827395351723879218885567478714133834212917675144425187553869127653670851770853715156212370146610622186826034969130207888347619472927756664970982214066655139589887076651511705387521589809512099833636383732537077236504597222059378488268877469633279059155382748886250722998915930445574646142491279083902491739344691004716497533462588906394848477835585455455284758746254666812647549796723275659005824869389560165092053082542909805207596503721830270055955488028683918463914636178043431299264921291579136914874723885982368864201174164497428989068038295091721377043043588871420872017476224379456825746121702306687525412554606738608718180790562045321052158330184307323712966787809145736103187805404240031873626988283408431116677682519654099607977898850808683312423845545394400533800830229802893431541501151590919082589711110935283241616269507247253185927463020245239928315860086492502769809178691261110434875063636728246416007894623224819588065409873020740174735736882736592287278841393459342770674566674628478291833868507967348575321030941372272068559487601110786281410493474175141632797626972655559617016667702680769712330912983786040224701914575471906536934164729739377727226554857519180625138625709744486704910849027532290666673905968982868234450972749907415378913569319663743418577569351384884132666988750742934981695033710874389145885919449916535788854057981181391739267271425389671248515550582755764891685438728852782102234214949570722600781206845478449624498716777942885681808994890945138283110211957480789135441071477478979837565568999497062066230544466919215308584279812982371481602471847993377262513578635398671843436770931438651798960664773353233647719675145738098917534391851381830336616301900837909820724494679786086376738639923119026674706954637098605839803347469008508980357708206298679775930466575811824375550248217366234861445917043186204852524648129161135709148716940398111849121404597765165360715834816764568648964663268446303044050153054874121912392874344581040716157345558839851209154052594783828311589707764853353323239632404031154149517299268203597444851933266627461472871809358235918070119918305722820712527723819746231451666200880869569274415818241154890020890560453224778894925210570639116970543592582174751388281950448124809573411119343668164787256098238921747742352568963564748847276711844494603245037280139842214432407670405979315955703143967921185542876456365436247240283706393228791941906611523511846077677257252179479795721378793313389281796098685052800506586657708783444576364487247866292953896385492039848104893352780401947003193781191480251155800953775961111047262381249891971555925100563876364523473474033682460540643175799186617689551441468358247898620123770324971409943687425266357796948195068990160712163963080006534002155347964413373797152667590288188012854124770784535178817219653543048065919156593066140810119814496464613719017202976754055593565865428677717715708150936020807510884716157521644203586665041426713539713247130443416690077205248537388763637183758817198400822146832706247125096917688307161764235976437395265367778500716609877348046159674243296379184380129599739383010349150242872972155838061101454165955439559383042266140162809547495041829014764689279700404885491867056400014229873961156334863963420470572290659393784869780065227221693731893949629682868904180931481012237501098920807598002702224101540888075643642177771382210001288966542754306345494587045733478366536961305589077112493839420168848306969466973113750220725526517253836627469537623587860441738486202077813080911371355534160431921439253829422503696532321643834551514820898834149663700116894377479310454659097759961775604302653386123568900568594172613157437177552173574774754521997291561088652366734647025735756624539564152116164880917621240828757623647587046954435327784146124239005459972515838020612251387268978328350283847737130138544172762442685775053377811352569308235058708588883901519617814859448037933953051711394007905287310227572843462059693396429699269174094108410928806006633076944821500299381445982580537679718535582615873722834174453970542708692488767370051162043073348101349936023747685970143826299259839848777870918959069988916447933461248353049341038200573498033868821342750671742004457270958187259547910989792983843587762442214767401472804608836653085012440478797602143704589495246767760457881607635476887156200276020318258091590185529876367594384520232457950861868145297617649956667180949429513755287542265193724230183984528590270485283877261157665639162579759184607795647862779224519612471405457524515507805017437305108726819991266127936890293576123238425164941817751767091766835214292207310739697724834639709953804063312848619468635367880013922712677281344901444043830567644524854462403390748898389668422828735657609482302490174132965782771753343673493804504022948679978533613362104044096623241934269035110074641694010201285308817031977307096996998504548140790749630537788195187061874163934114318450718326103131199553363687964213946093215706373004727123998915725432842134681493023382989717170023407089395193925795700198398610285251151691217855925220812267273121492606502016428210397235264945408213735804639705222774124854902475284997814693745328969356087031241023881746603452223422104913823267674297116972692773230738287535485025410566162413703717258361720046571445872236590130532811706159862419118234130357275607533016692265885732822460636184932626360903058407924762150686120200067576298470944085300466449452827203281944764714683815906910536939420105784744358163053403753006582883243372138787739450956613921167765627182646459165753914790866609662763594299527888585953168370531479049560499555737861396216806281065445206923406496577385825700216309809984246550743610187150720212086210704225576371573783404043508137746034217677490122891216672298368560140808482902020730620384450253968257831117169052149474214905205778171045860954299654624730384896609983111601375661802007697689729361877133407333384676475972498809690521399273454098872917061928141778350529409128882901688751039653311938559001546773222465999107562179119550248948980689090033637631899129967468292548359405803725113956208604599068374662476852514889678436121016518678094680720904618663351232549330522975168608984694981488518745754218350169063354190936773777734313778088484936796848441717954484796575633869294260538579774765478708639124848959890935010247376573477640342927100777587099557438485019536795972140287486716126135194943640117915540836471831017170324800753932789049364807777120383166718970756091904844264842221451263441047769468350610651018090864922629646814104739811258836024883219433689476538226915093488821691439925065354346834091136655862810980343878981905874612276746952436048975700425710011202795200367713971083660698384229345493018862151377847351086694605790105742327014429973937634564656526591638420613032930045389824382208137396965735079406905306641897413211559416077115757515259552280664981831212876219031052879722329966867994164976007442186619112653856939138809433720631693331620726601511412863608191353491788472484710156107034003575821021701422570431735401797480239783443725810656457017008134833725225859270228853328602289529131375541847251426649404995320121610272534652070623575501434283431793647814084193581879943374619257672943509201228687164849116383134783402596382702640638715030618037915119909327725001372960641983702966306427832131660233678894645088872528114273762320061155163461219911482711268672461522235745378098094222754518822779363960029680333611551754086253545823131601877946445368797554023219677523551613502536471952515064606892296930460381160632475378295748959653705033674845029408937158989388307710259167177822266322452761496802017299933768009174560143708046051691393219016610826718077336119666420206403702145377935065506063173061038135643479786031548578383741339583517732536915656486725346378161519611501627391070621374409992528786857720257446037307699904078967891555113033215737551330137777954718721866312350373446036803188419815316384931503691797408680705162476898268030134255638489477534888508571182294856777999741062677831500485619390400316345638327920077179289232713584688070075795571208055451121390425429652325549381035249924294220799279997335503256774701758633551430623177887558258161700231235047733732010241178240369649306422394392186601868851538818297126857399372493443036169817089342276361227683910655937106494658516824317774200335021218903806917965299669030063657331095449213652727684649862856989728618569864049813689907468530570232746286642536781870576057685638512893151363251281668649542265315091507740323865442764864870091253713390006837236377775114039310224503220088677259203053351513661552555406935300147152389593394398200266776090833252655131579316269232843762612077723358045020741510352581990849567093543279849297378309837521937489905375491581555510428809869405312911593009966640271073316854794140482258278141989021317103180133719567098152546787332939979609167913057341193464602347605742863557962996640586398628520876352967371404900461919538334179778289285953335821669623239060447956789980734896540163914820662831822195297413725761503864257643572317374685261305442372170893527287065435792116323537466894487240676855202928381889387625339657857701480332045677763104304161006330331242820556129653584826432059486426458338281692156217470014817461824905694554031393919754782977413959939883085202947676375881718461429061933868327973403954049521118840072999031595297547951163545716586850677139593273421812513542984883312941970755177968210910321564312209089055447515021625472441519347423846055123690787046252491467692074572029668027821919259076006265008553306911641845898690397280603864788746574994423434543365361707638643221785659768967854955040180304688356983000861450336232773405859299339150754191614690363579135635274829632365467728062292010083888325810374780485995058639853033337899438537659838135444820629801138740518200900146193084734865289693410353938416621900960913144124936950118220939647691696798126171691817348195231610348179679193060478387130951922348727564127678951415418912499330555358188218232052854047336252373057104222613485860652876394423297244141437607042021509239064878735187505520555789333113257454870043177131718199268561935417490675570687108737514432569685343647939294552158351070394876793503427651503111418306606966361898692864965125967358004220438285203233485487326159119406257791544896231064426719425919881590069596487343908978753439536658915639121918971624239099624461906795913346459829987553261514328249740728710922243964536374110250318774284574444069420395618464201832527752267855298609927442322037894170800535454702254776573351545403213919805650990621113345930823061615366863464740584893461560734140075366174472668287624206252972307971759545999398188936344995724988166293620203690358601522890765906146063862061166077373498425361456605579604820176253902873956064004366873274220330915566237591722584917989298879215646420720069845679416151313551059567408986006122220214905975943716055308046900950020323460414442859400656266025098252075980596691247342062894383504975097339831284823832371468429103994501829287326075830348255110868384041320487188988633649076880781812326715864144571588240415471061904369954184674831180503516060793590756542892426679101950960330033570411797748937475788491558518255231766534895314708585528250984994191379648639641902636985611982358600618883952029569600563605145685954326451282808245760699349902322695477658949419458917315558116415074095590392428919179431550752480186747981982623273193415998177201571294261681754776228591609726197938442980339839063880227587652471803998291326429488940028864520328903806202641102584100598584397567891312286869855111501038160192884861976196873739531218315771128215477325447160853896980913578256476438245911109212908335088804334921066553188459487607958403604276478030676097313298704741824231572078238828323798703600619587814242081650179318980600022660312496794146355142254381191044201854436486702498424066481924608296788136358993203754592125049884138899033605957441056174920754835438401683035111516115199441612569781400162945428355331098235788048475697032282113149854026037569767468314205398921994349009949765802714571706817277938736701856923846631543395511571098050836256195579242297832194897906353272893782115397728916398697904101945131536853008546175832824592397854663782369763122422657967969701465917208832357639996810649637989738288461633907990954274682179153085642889170291837116102772363376906327083884165311741958913840236546691140610596003790307290139347074663368832260078693716040196138646360162239007220310424067781748690953313647267054456968920234716290271481032667925335621414273427726684024333096405076174969597173751240525622495996057665288543643420304375253472918083979738406742618096818954679356375091724088553864975315658648262198880838932330371032265173280147359495243832739762282115562752524156309726897076101576973580468533687604810936503182474134077848704073237712406096394418630440953522083347139496316564035672190411837103246405615176615353428545451115622805030114164514276920134412667310887662209365626006995942780112734757970482619199088675614182736361828771282142146649803671663658548032226025958779676441006334397360544824070554000134558016660671970403415072928066034997779526849880592550961135646610338646119928112223011580277494580937214048139566776783089944921981351232119939676615534388460811945736577239642587766044972922405679587085799244846364715589777423724228068751687171591772194104581476841415822677683344452937051208145406732851629377948306220917268675378953647372152022981839220761472159367440689921473137308276889385051289541218716037720819458376470779204534371418081793720506522073362967784491270691634417991907155049857827989250051429759864684046225899991225280957900724461758831618381120384545100860193749366575594675441483767141735684394202581523699853468257571750848556502432857935621338628344959107544199724219039956194248109858774194962933521384344386473457524750286395161640051592917361029090139436787530967435083984993288294940236496618745356277512448533433927199479414104617782963551073019161043014766910718057269521311513457431695775433089072822456101915765767537804009841557273720310043613075177337671125360013343146806946284317314939195191220763940561541158454257232787029072154427763768268915560533969618758435376678787245180406870420581927769404778588740628526036828912502201478281513978298937832315652073821040239642843379207506583957464324092966875217670430133292428740016089645387505834394323738582655464282518446635026819745713075809042132593667271970359053322186298042044268446367077804541368143295178837334250740660014046260059051090452582532332701679649486588353405798312360478842488279161309568054586106712086298035855254042369673666760302579700561061175432256111808654387872320537660695594181113757268366670763187982589837860011983221584343767833751886441943719142585047111907406779081810194030831580337380349194787579150889005817176660994407707372386640814995300443359418480254480229244459767173447991023196875922761296220590861151315586484996636981409493492128180194224807275831930998819763987608547372368075491407538864724917795121712195463857726379951995112186121579956094595548242848433197388198990518367897848368642961353763844717113484441616174814369686577811934553100526675059193474149568057833850740407995026541674503889080048609442863133713941447695555405445844472515644678430141869012487525546186769772127665492578175498792406560560959584008427111477508527250125447330161570429366994895000098027617121685458038092750334044189771020881742488359512597396596439370545110040462424216697270519313390642266560627873427037955265398760072578367565550814155076106524933839912554919684283145803217357043446307445568292393417633397225200114552076043866116558870191861770532451624820869799419233505634998296949246789822882182707813208017955724893630172771047986517205840083009064835345960684579067085453987699807882544116213681200785825930308756512486908268922821374766207514355591860411063367772335043023334684905670867841244677487350533087478516443641441111584292524808821327722099351779069067289210493582317171234032804336760118641185743317531232843776963621726476557726151282263847251945183475642962932933949172010481014593126816047175244229569837684570582488288525808072400800952202020495255620919386552803409969675967362840620964798609368643870250017601595148210955572964684871816109942815377354304619508324715260558458550907064471740287517260862218976789166414836248213434994204993601814603888841240586296437258352477813007600844447442737058815336237821355199497711079339549287967957287475727064585269508385740030603258656225343672219185004496361290728297029491940577838686133059157037305049230401142291246408408185437678304851950107908963997829645657839148608613543991863580962841876887834815613885504417041071271092149619345458642883506028285071561796306266377141224723252748764818132785190571827007669298806552531952998677573905531623980384105180114751026857471818144131530314878355784479596916835474614970404898215900260564559029112272947215177194062454783882727360480174401979247438365693999020396877639238309370149913117973377778098774531981471894426854916794007795958086766874598862720130594988983994586662117807618519051585205773845958011604467397601192884608095751423029673189036085049158587176783641381628266735089738879549494209016386493773699537752951983171366746760186038548897557326423930899877607054889360803444836681994213584318223553533488169512654688169360356326084275587447863200274252365559800073268539854925852737091360243903479068502783002640984778150543390661681703269510220555464182643018743763904201138833199009032193780602064647011609241070949800063993899114449183614923096959376219369150192697959855602839927776366024074583233648039955626900145507926086350848255756124659931198029241798254118048278013327450909707103347806955457330247751953293320855301307320480079766250086103898859561331884596450149312573598380388406150646609575661001658041630845254806612887599018182332722345200571949710036337302849980741499861081542937654586122286041485693385506066424367207485929945934145873358336559985115737603071822005894787935242562441925562031893287392185394018740920927002012930584155640819084880741553054838802586559515671393208783669953122827947963787629828899783667555074482161302485409885103315815958695235882376876442536404969603301443992055113399531465595222747566316854076843544178648706693671806823170268979857653241254829268572767207921959192625199057414159212140662496435954083074835074474667267727512689567254219946997588197510326328321077275640194816510096988845538583141977421836240043257874947040661309187732548026028899512027139754211983802840710022294277708517047940520857368571395784502635761976048746133931260180715518469238875084184590245998570487867415537804408339039841295997794356692746371912073429067005836416767537732430144321695399050906227290507558818116364972313894128026158269615607391175043537125478249947581791286842328524973982069562516163814688078440734474182803094946428308259217766536499212316077419103283953798048444556770642860099032121726488056558610446954763500292963805373089627868041716409728153962194331537760383142516060150279667632053063633438618386854167575376902907319393114888760307639381745641563788680648056038514780278657724120266780169995547625160234369187514136370019461041816217681494528209938364600014849990411037296603602838314675460721418545669808478528816725965288635029335814190880569195061984914366644425159330042941526314772709797809725574399421669771996209392264135722843042764185210550767045059788614197316826734236452181089144305627821096781159782700882364164543015518601062504888080692448483442547554202965474121662071817227821626638790882747330938921859245329713545089439357133114205202793033604068486757802986665542578083541808031964089552873293358532417427934597814898617668604701811152751547785233555439795672971782054853352599307461238720962791446919714260578015393552079367510417947143368758368076540343486651407067182153811693224067430205747216771211769349204332548624034253459537462437336964581291992807138190721179822002927286917672241343704060653465409881877046810067800812409922433189318980750664787288231193300504833914099034536078692200896975278151408732906728064930231801742782337598334323296216785023916889173045464005002349837538765845272210783538679593655983206889401774983753637557928956319286731559454634486615692859232431878302484160893920238034848173461749125799578913356351162724021225613817100313618978763253472876628151638961953993426992967035793009714619641026479681208140545682861560770628437917446821123825597758373332210107557739015656875032605205205505596885776189398536203235832744062288169099071228525672048076175176130586456610344743897128996309212201455954071041245385436232401776624949032043090744960197589972287157314710230194118235060369918115075287480866145293948941238434875319039433033876610745781173944310320249699444731904186588778509481595867866553211572552320183299366706113232855947095982032623313686420197258636966172970137925935490591000157520635136672851485893208420669406894959947880945838197653984649013981002593261449588490727688590743267687429970646296840400892996061150710900466220826304836399656925575118037717551607092403215430815854840558717261780917654115669604541575373226143966195420390491443572991945625720287166863794242255978953329947984101914570175010321598715351198613720458675466433639767560798158493704384292368716846510649594052423960279031961839659794670201690392141126830293591941679317663214714102534319418687048219033768589576087917746031350352606738029425650721505975189704951850143550290939377297038415337140054930606734557886992970089624122081176377599018564177299139881080405817880359956303066828519534425461390049805496976462835883573897924706584075034285384659661840022005488538169150577484282454989493063555474298211960590995850066817981476460200097719317108975623480991391906925929490997372859977450098804545289741943104898935685413836828591396448792032791170021101686774098853009965787483911152813870750752016520767528359964728768679709836801863835147727120192717295397680679618962503635519893523193193783768025814681301632075705823613845823009448798734497958650323207969692672629853151279885410767907203449161789525402668782151880433113957370787891281891117894658230420415740400882798031919898330793299530485954154678453721262944100957120560212116188811968878264367824295114858658267404744658869540873816205475084292293322975937555461063519130791205442990848469773949328719694786308751431976197527067981038964491043443652113220256182266631293738617210102428485582994543896921039426212642792375936739264651686864947233560131024162859501821948630701422629130118328954377843940530197782585616307558598311828401715483137125299688366290297405472339355323204426344336329727188713635777430613577696364880979581396415078636461814478261910177214467496029508718907338382987343533743230954878335237818327687745297741941487149591677365813153961776485073193349235067320719244223885964220048111285746889471429015549915077361686667425492791473074526696921971513934179007502871301904106805800109183317973028620711413382847591223448777967290665295295012487829973612223030111269379560162196731242118572162848863130501260612191188695042106384950697679329437787012650287270475943166966398984556311142842045078124745236296551663619000290092282712967504028480271695505047796680019702730853901079541478700290277809691749066419354449724946254041333270618458660140933070849031090382559283401951701511797230869887533287015184472187903650730115248845165796250732435357457691921130385667382393807375560502115565375778974601244101210726793582019091572693894640787945061700945794706592622973494210563279915298675593166594340248427942212454797085030020022075036728850668404523041233313126009542940890034460590333360824547782600347960440703648278442204479113851934439041272579930047379782928073173187312253670643702404926122735394444015756297553576115472337369749855801854401949516318201142368262959401272771918943684214123833745386845368442167028276113429583431832990943893904581047234605801478369061404625393100890470447857974556854742491152551046740454086482339203362882799138411908392853324021372124699554099112423832230632972560578544904557567692192349323676098730770659578293451966799176271227637971056475061945699649893064477208859998908770111906032668173155984169705836148431260138841802680615923393399561597412131977903197800777550495050260109740350840564609724718766344671547049922247771189985318971675680134572155295095589377785046279091824943523853663692058465456554050893814887069961690988736134537768586832904171929252080626212078651282362929122721441253748170834548094521100082310420948692901005345436465223943313638651592911669299737217318136077655937472493251980818971393174891737364314872786965124915956335347876416737030803764396631854952929918985032245944739714260011028901144510619924032814680840175617410867067802871653169926951162491548317664637952632168128539694734943047959051259212779561845514444231313403129765624381669710436629215075087014384566469614409574417977807461142740389187958059831723875384782365430287239865812265738953018528650779988408890854985281179052768939763284476194844338582454884540084777783860969825859296529086322002348346162195502862393185803142937303427053959285017391774043787432839946753187616429135335693285179398064807985723053762586810365423615805873957286282021337496866609536875091814520143017678948720601224359803085347357708925011488428021876586647205944299933882437930148610178994085197761621720932296699142410882881148963764523725877402165785362424495002023780137708641932433885704036418082451766773324155505965486643133993541744790959525743074901905683044382562890195881887459638755021501824993284376765966288842061665041221416417698527261441704811414160960595500174525038531901968103186783400159127795333553263286562297644243191901949749736076332840773683159420852004632028173704119595452841178197771355184870059978922105217306212527501688486947168188961112248391579954975815490656814597333146207326339715460783027177619959323882534207473729986690599002243954441307774075824608711583928948454693293325573893129168524452729629571916287751337628064309224173609794957129700252493650543499371484164419269973572187736884092528839038693372306220590046675189840680624628306442093228675320074508374430728802214897456247513476355616168361656470417468121580337338133725205192232826402903852660632489840934931658010870621929703860757961789965466718032457870706638261791995640582807195852014637891311666219856736079840868758581610645661541048611430253800004893071095328274161002280883802329204909225992461890331509543391831336454667728605774281201559502612430361096123046390906123193701202801764986571710110711031256660846437011790469300242093739409232374325136956375659747521370383866713640673047369321797197575836435941433162597887505276855485756987257187116332702337403628128089779536578229400296298848779215761418610048886842422303100674408401452083520307546255992150744646961982945902323732541603261673810342801352807154070492247872635689981748582722608037289709365750480978929696517868253356404132208937994892088113067398632806084425602647899917997173698842852680752068124352774656653909300034551185899806282087355454184461376802077054498852825529212310033951926059051990789072003918807795197499809163140137533554834233561633534179394571006959349414604339693739821845689888573832107364434685799886163911811465092531885908016620270602202754220160091260925693138326982792532117321870825514642338508857581119274762257327577605070193977873481589654420805459931288546499181336883572667256212469231216908595738227229985643792746002723730308908102083947159125341017452034111837706157551417848566312531338218786849423639014370946951670642595587101944311844741140719595890223476984771728952454025481166494891320161907800653486164333884064736645662514722449959043130994074286737373464522172917941957707809919951436631533510948848204281498700767114997090468467747952418426388646781113905067149536418863273947452968412864277292455359361549394836794885293130001198321610176709274382331739864723071513760727973814072214167107826478835779612415372236414511214714551062527454929398138801564571191619529862462670750334912361453027395661955950771091442873882177844695705259542018993057647074006943359965525290143382243463682536849340665461737755653713885543350792757726414134629542792268112448691063842316661596534783677642660121290514516932706873957989152292013823812145438099094941569895894513868405944356992409627152511862990554934412083521549230214262376199498675283995538519102328058435966531668115746859573165314553816931859772234982857009155472365097273430087226905765361799973303745027816446747428630576768111707511571270271465213959209422802913359851913606996553332233866387399583107225115608597516717955448224282367400498417079512686358337848115584251922248681168945446532662255454516944390360669706672681922900530408900675236480444496439095484241706520955920237926409012312218810104195896874397762943931415836283798256676574366059511595742891382865846256223625470446878670161682963433589089867810363674464691878997385350125708864871490684520022142668687528642461204580904754836662497517776592944200425050587005151433478141913608726503434979163704911863821270856797579552142841438738816150304762841743442271117320479463345330709498994778944820495625879485847076979009032244150000776849443053349595289632150293454709374087650169285239167289456320284826264401759119525016175610428957782378474632397393515201185307247847868215973691256918512725706092465369227872740754735325049726893538458618188986771946218880394023143177054891943799350053041859935451440390720960444584905814053193987042236096277317935964127012618983746972761256981928426089250102723838319986137014166057458780166728311416869930843295089862218729681449418672124898657225221935481724570205301753278660114631976624692956218244776831693391875833252900279291600314250674123643191865174959201430677552552309020668797562459056822752630432312255702678367923556737369502828902329837656960131824567016419473374601162100770782246321802046019947864588413000982611169737366592164352324423867679948161907568010162238565060870618142200903605128337811690990148349646093363752110920956028017603558816897845466403581547833974526629611426195774530548508325947520496730385079666944778956917883659311804689121364924676272670074596109853519720721965400354164957143311194667010789958767183742305334456882240093454939252783324616985056611610355876481469429247921928632629120076518626874031225767543021709431081600529375895738255602483388788297764210282546565273956963470302445420770980856087023656148805739613794029941995353310626720574652089240836187075369198767347481826643853411891219801823105176728484082315258126309930981095613043013390767251916176501242284407695927252128785880482030058408340343339776354763600902248068951683704161422344080702702462942402967486372037571712932681560661652811581472495640214508501639369908367909334362616541465411957242386719099290261314332016237463524988061614416021009187370276419616473156756576687362092932257607746932469913162014744973278557289808236636365162279138394541342383860285055532380218926466400748177855852128263974949520057747609863829679406241308498031675328861420543566617283441565124096140485360010807975697850395553137381139352331669331522796503149263871237205932009387104435411764757111433391298315674722275006411926870465547493236429696278465386032164402249922828252960286185638472560513826278069734424159860997942968663746499815464875015167291465767197846776652699835441836047803654687321747643136857899364360597816226938146370405714500403269916157134805785175360161559953487585341483630454183023363081646335063121376944187757219341267306606918171774083380689400113417051271531804533734654528334944639268535045077275010330216792209416124978351155960182068606119872043679614040383580296923226056729021716626783959538877853663315500241607204276879661542311841882416261730206155923156092665267886613896599158994695685305956632589278015044004386388919437929647917350231355519344034241863456420732342308062585642713730973454298674900821170373689195837797039385759130355472855942973439094214763388735367588957007153777246092561832929031814427703474156225146901920197346096245808529225555112917225357560579572603249410170423193904241975477548956872809669147248094272385764296643767917178684543454674277815652762529068985113556140096846101719325607645437293649270175885386596068650486856894098648127277367681998839169069668703624390893742708177434382566216514228297439299279685043572808155003435990318676404533908840218619358875273591338534911531188751104385056015613271474068395679248596521593830729945034706144111043410405559606202803911547313446282536235552835764517059004440377634784821167174937323941541448569019952317596157451462684285239250112232241135692718692972401807629990624151413953662767725989727315835851867949867462596141986190793832170578851761558043053930562178700135251239564275891035526426557506852296156491974690108737556659849823797049198509809367635635334866793109578304711051013302422778123736898017899481052489651714119744923256541224691658392956648046535659399957509937000897751937370331258964653683481496902895264018825085352386997745491738523904367974398723972311108334079734735602497951945783610466155551247762228577116557203345539780452249162784792763543247549775114289563690935232598558437584704681254494638008966123609831924392980230645150807692287112675765884726297694621912848533360781806070105099517827306888128048651670006499034588221825039607271997760333023984641619394120506051965395666700888316622638528860498898686177143725168600997186721146458483605699217696769074837850286025976916576084396681473513713047376916095305969882493959006602869140111194531792926230998404229909844982375050282499198620252990368865950925914736537113604534721494613683725382997644079602209192130339084473648602203275657513848737446330179658925366998742241359941534518636005145645426349793453653713729813069134807079617054757863662472047323321218835844673703709938423060704177781034396493810735185956165598285616216609919085419016098006804102047220626582822886632621584377619754789386164934735248193746599025113997816948314479422242068955628175197755922401985430681422548067156552254441972165339287190121770701022897703062117482547132331017028580754002511904407243899535029888394944907355989013449263101204716520682496096914879770650946851803314372978550247759832851666531507468607575493848128832444004983925552111339711680994033928658572188748085797560179787357618321739679440033082628763261225881072071708915753079853035570545793095964314378225387038177923796601511983302505758886814996437136121229981314937997917979607940677577443339625639461153971309817288793654884761227537141510540736375372474664350363000134801415689264378350125632083973950576424944943076807933852424032656367229181783543553262049658593344131820105843422159106494267567000980504325689320159865870721753045140147031246070373606886200685846836974492394707140367723077502664187855251886657044694240260583399277469336095272938063936010710623586878566043152141368622281937850080259272604602618504642228401241040055029094824179581417126132324715883050643536904153930011170889077215333838783301295642010887466314875362839763121833006334116449630594686029247788776807729558869724521342294467466569560315102022340404807485212134443597015415113836857391557268957596798674816608946247811957560464968654309090391915758591025452434761005617900168349477009574592612288481199672254680783452883127886128230226050393145291278558124607326859919364813690864901922851309601946569717262241515406816102480654265888161656707100296424387099066255949406336570531167842621614858702520193481687370148427690433349946059589217914324378900680347824427847254656583808977851606327778805132732941870697909558083982074448965412590168431133172185095403013921084893072931988164764560949079950130290205628014688583303463713478173157887346198968794389873923319510399614805008685140532316581237047035482980835181638907662659859312556018989945025001501589370147674651682385509856770187066575756954549741681762732323739873724465366435202822068267168264955829435618898348102030616805078816798319815364887511848164864125249608031837785859440947526918287406012872243674339370967808025703283229177357779398779702426224470582532858322776139526902954217087581429067799164776742846369202670885713531824001279071439630972259496821801000030167537116875819919726024012822297076257219395777321108298151307658580345289524340233733758275715897371628529490583547389436284377923675078305603939613466681221318714250059355890908828349225517153066300071716739540397730985573109378074524178749995222165036293897280312984832038941358133512952803789207901482179483777702594844724164496381482961547949250222442910902189217179532842043558071063099339633355434671780631923427559115895102824659014777013185940170729674537541065550564768596735740171257605298785749821902770849331830177532625427243309407086415345912918221607874787694325424424144880242041636188302773186475983812384247262672563555243154412346829513344050394853294894667677181418345842975711396103387918386752365017161281130518870645525768046201854502640700126588976335671918483067242559661785007166017000940462632456239307432293049420340800105454079400321840498255388294478706710567189680948603149000861128840779993982219059099542219407729462014501237965124283213249858916211695289836757705156892347846088022046293380203176271840099706700859615240020779734475011472393676097262901169501015476485791373336667628892379166290983754171745134714429794969819460008937892877132412421331018382449607923110399205072261705076278085002158136398170468451115746554794503756143158991974574936295317513722724872067197645717612276035442699286512292696377391376211369803445091716505276629783010854873100284837254354377971688222436818019992454277480207066829780660839009629609924243554459895706965479136610449961102823217212707819651330835682194037227376183794412416797547842367913833704723089039967201957190803121581989596069145066961646659140272729439044647987051177179328435868531723270339980744908441792026022783862960614742975616046307372190977934287527293459037934403842886988576474921003549612130903008176790506699949648359921908154684978943206380497240822009991982744295129097973935938973543346632411744658108666520911792296143279483848498074103673992368858349827320081182745622582572978980153892422376862509549987455225815848571000213119744805115026708307234093208412236444543922293629297621088723272029756197770583470542388435755050445404737082736624326361012738873450324573121313318600837120413145749007384381538745577539887521452746010435748064225596145429172445077449945141337992230057962951245592545710166451034489368194248574991337992271677474786539320092367632796951835245394714605296941307758246388271736441280392179199433114098442970842879713102141482804712844691846444523167853632209864325724247315473658671016088564356049119982511941274719631441527454980732346247214677250836317091068010656560176239982981456240891076480318605413002330198733669732451685614689119110980016024579040390999871659764284079741879827882878793639604765990885056735302791622378217015808925480579806607805099916396306518248892192552595724095841481442854913969714082925986238486313605889582994156572805297886999660089096192266858274198441277711312195051448455821370682993758563784604695209256693216509689378874361028062432735503562220964687391450677235748751320632586482790379239372761051306189502801847161155609745709305182733653670601192448733537709000090852286071834652035983788599074815336145111037200728777744846976004723622763819589731702212180300999497624605599719911322404253193787231545650234925151198994130069318753658356708137298652454216056314586143740593775552216592535142104177366923074466879231493046463724608338833424773665409964756743988850385183888516111701014257678989413919173103921083980940562328149844046323669057945640858153532877917909847003813963411671708091196454548377083221844675997243296594456120102656703423689754487603987617952950341032369494326211969093042450953844444808877835431755133978978626495907640975560689805820015947965942250438294389510075061223493509184396417520655181898535626808825317590197924142893599168752087735776368270709375616955522771239954132909993708852301471569422018714110361926969460856222912432352742112301305971492390592795855688693993269471819171460371718264465388373736878588427662709594368995393255285146709661416438619347217225030169886803342155344411067841100518007864603450268750126877749175826261682455671476993954381528269285110963156593922365748510214149523400271190690426679017551224559964366048178929383069550745116491274321137000093902499668602550773790581391904797651433122417557304679344296808808335436780860701868444440449896662090719952416308751682624457581053119778074195473390151330375913614241686104004707443974340225030498847226305033406489642388653790050695581099231651026659425127041519058312393339836852018123054583589800376484566897381004325351174294923738525634568961615194719270310711429075864304427672546526053892337035688883132387242770332788091255981878402341426975452154962596496494784545103285132825913219743995407031829718945377685555075738633286947078871104582570292478733053338205942521558109976326789624321565126783656860877958884690925275067408986979056369742369295969678152891458008650071190812073310291365879057336673089285381633825810704821453808039197267905816186419909210005679991369369226633913217926160022695214927964818474617596332261575822943187826710791764706276859360322258720928806010719699197168827442250428462231141669369611483150121312085251236546862809265766548984966383539779974228957236358493708814571767071304680241059922966953389271268827323507253812952994631189377257035232070205321988137638976477646416979781075493310775141044776912875404959674741793570161693736499104529541306463158498109139880329360344045114411793718109430489332651373626942853591434623007328773150732586788040953120232510085133338775226329307067479466825743918781205356341141618957879268159394100312170988551375130967139850476303960426946405314876174293815750564604288191157794458085660343575519436651112536925349605908015319339380325346184688884327725190551939183654715168762096268795858377838603336379563561307331794211787993545704266730193242838980134199559805753159590680405326767212150526981248565361440620063628618953123630679289703452731718277670748363665374548034478224721531264262829429784539408839730347456682750090189070112560097690003363507635637840111603652582215313488408213233054323448460668967582865882000092683235987848946984566552466067111651168536057929903145794655465331306450415773871312325171850678723383586550054658661566340908261568740426175432856490667710333783598474125549028668376436525116348519862221891790648015098783914493772980887061186912634229044621234011191575106290415455889722720706606664147249981520061848656350620064577214696733054955339002189426173612337458561742953492803288414767959383301659054917448126524552712532572077253177541408653145149847015381517247535797992107629419911302358093795699773186593249465911184587357574612223977517415134219680925947544906227486797124718999212355137592003455457932390693561014994167280311829583126939354763535977255540498307902273843976594819840607620188828546468279632595531577022810591900085493682746185684957607665639414249223886302995347514555086564411652913293461395725095027677667593725665005927834031280103816098649083525209205878034741718616239050117030115366388296476670608488033792688607183799851230167327396306264184128214551435596069551832923543809437756842129810797725314145195607916827468414111565981215873634059337024059717501940464481014420044563267527027986795921338495215945335783166282582267767785632373297737570502676927697057894541403124901596963071441767342408631826619784328683635707506282612928698103975041477252371738481722080400547361258341359397643721813721612942847122276222807677729650661178007471581537736657764826572830972787710301022443528021119041409357496770233074219181589246201753096593502103188736095207221127517803946529405314564140234099914859997760767333172509494310518575382051632626225813922221231734840715933760015000949327181260309592795362717093019589360164601238780763526488887890437252890245661677225802236667005566762686301746109998913833796634100512167678173810507473290140516294721095521691043299976666497074465337200299195164094559744248321650958371418249234973089152944015747761970500839006620388421386531225209972124501138434033303136143922509908025712150804993772380201714571547545443770857377066792609761304357710576464271805002181398486075604664485602681330981508936723656825705666394936354334399987601722796483375758793231557022371416907789839341272171402489813616392492572155447428076093189636664328858065934965625902508249023959569564744481203445236984453250193697110502221219769273651080131594084086193356085338167378769222858658239352934280587953697731151063234194095465986922085997721252398807021805725262251774648989962813109120225389587600467828889572346746793874984553702960530510016665946024274253255251325227300617652249768589561327644994659217765514406184306570285101187214431239503114902695031360480194953816508220669480668833104411884597484979766222597760483968548155730688304724514666577907374438599915851126510245315213610057886383044690234733182902289792879534726197892107846316627924170147052810061697451923499494584452654593441485050258278444779686896783889670272738612908726680009988249338702821045796696560698501120095960272543764490548582099684300092103565782226053823136878180484763239047658533371155678835978615903326160851928648212621664275450214757475929644930890019746310527472388209342771599151028404721911637693142105566911835769002633518311915563375216232632298513681310157283715652458121550422243370574220439875179356765182960521838025044132763035122884171900414533202302254518212123829492604336566034718690594781602007901691987617893784903955688103388664507648805206700233568971841259322441325892612110675211993530811303560898179551756786433778909261552748344677578264531608771719204270832858835522931504573186886780108830410140620021658316989390566225310774104808053102575910668260460461973917177154460611220612393121306572855356353747979107395551642461991093012762562319453129594394252501500286228166548638960153031133362987390411826148009471214858025522069915102472980512419009128529687519704361925951716873583437382467369289488259860094582245636261834491493866852948963033927826975758606818530071606443794309552454913159763789851780734386046415830839352262485079375983990233625886428184447694834115117682364227656963987085410805046469390837690185784753148928339365358294850954370104858061760782038744728622536304540745057198836880962767788054368796173213063636254114289287716652438430571113874862249548411001645880061722578294403778499921493157692099538402492556298869030296812704101930375029287425246805922355872478412284641004613709064215386893812114489447097441738175463437405648869100932994855147389160292147349768090542180149503834218468742585138966181953954321127144721900125173634364899935232423428202436436328398606993084493327261276299229980829675067173285389987963251625703644191724995430087823050207579331642087445768449025308731406352595813691819001377975910087472577378257515192631930340615014341539166629218279306528048520309331781506897857744894066246494281283792243767980071410443306905165639654427607918542845942425467588603627245006694482179070065229525222333796456243976453478387985342904615276803838396200160681754691168287404950694354640374619163718852271522596942214642438588304661679686681269289786707951486419419673010509037698722667625289210054478699128745615405318455235889101095814084654090472165856394355145765208444678485887081467315530355418954511931040705311487956716671811062088287586089489890536096959059029118019416884741096421245020713788591412774307332222071532068310992935569423013527200855380568942572924497425033359898173237790700929017796189781428905874257917869430441124598123935157432375659094006372363556729145921040356950249947395284556278795639129460368231570846134016749470455514836073942701338961522689092715910003778492405801489391449594755149652897811378935822517532769201761832044816537149143773888969314503303523302802173130505406831304787635384474476648798077960494248475805037338708752149381236803684602094992614263638684711758635028838799196519063061177772638934230102008175465523036404521864076098078481098714840940596250607455492696866826465275101923708215408607556505190728453611618851614341627314834409375868813059396237615918917587902688016707630155820897946430972663744851314172220312826053635005763029652653636777493936690956493029279892231184479021553348830832938103460135845649958832141695484311273109958538718105660747410293086780703974319451767675583207101336629425442773311278755748887921328384080313385068385291825366037720572539816989391182809594047053952095478449314880020358872812382622063854623578162329928161376880576764769223245657261867748778743439918239992774460123061343731986023925714881487568926481496821523754421377803601240850550554650548551369102389428053085351853842023251676547352809363520207252533557528734092891354687967549590301440377166846912601400500200698957625228309031275219313447640190199830583665742139589057653039872746340867973973754768952109126881066548772282259557309892319140041221822862466661403149304928826796445816631532961022785330929216350517066664633956464618885146249932748750148856223827012694474841251730196084204333863126425961386825244651806875157677935500787798501676487729575944824643089490161671964186516141079498172368742177369719132294717172001413582392716520047070439527498098826539163258431378995026363602424364168246016431021051086751253686616933723187699351063064203890021172004728877639928070517726848601671426960091217521576927000500533382864517228453574212158428840088737442326654300678054715565914505232200353362623857984523538125069493301031021110938290456696537534446582296188903299440069484246127618588555119174063391551469683087986826248473034983170588937888003481257627648149754260456837861274256358621442700654472889087626055895986536483379498048849487393477638947508429678602487803572257332533498580613628396457186874842090453114177087214047843615575973000888659528144374650368695597835497209661751325947531915050131256312857318791318118268395605820717499122435806772199518727646022691297517265985276458479969471810130917161975347481128504867085983528105838774218204598655682028549467260898716369374491029050459680140414521639538755615656774210228238374380686351564750077837054746120174341176223288169591763466565164850149447617077115119719707236506515160865289971725342207935238648291090483780219167944978209630210363839490571609155947679428199041906887557436558532777252181312814493620682284271440631980455055813115009950780086112209089402341911371527677109032434141216953069895343503658440316982438444968724849839924269693489035324622629498581209388167266624199738533485011473236305882953376131257375344164095382746388957922946158755716759237040390355528480954061743117935919570227679655242592392422022255436609770929802575091452065220507618688208259495342160387968858629388939567765551912132976321196553355288214548982740643355192198753398420115363069941704242932909517346520284915028733823017550122095273219674500782668514105811775599019323568765712979724459960342215481319297168874631874272287102506699825879810189864958571711142892432453486785836436415408923508782724360701372209864621631972338741694688551472476300612823930451963938911515942908991605763452302180828524364965533107792868027446496207522232500172115239092789060108504264337122647456907434682317007701894047658264682319607148107176183620828366307310494358122557040337474601308231335840502116859148857288295971833923877719986399837079315998194900699810149521433287428118379034382682993149848978168412039055114629515118539948302142949073913509974342502380992222042976369609362351895747643032749371566457832913609810226479244806214600361840669008289655484428985340593180488396616591477875108916225100681473774641058800175290617811705445229496810887172598905553534763863837868678192460244765975979526456515421927433466352593774889745101149371045711517851689819064257195235468037918110647154985956046361974699617236928756241601132584414663969864238114909618941346710623185385210567480895911807012682945528228022857872019796021323812614170213545162379752693446524768906269631186482431350734626136926423695803497489924589484964610719832351126394400323884366689723754371823171117516023945067210342622790903651650344579008821561954512402477989031653705024766731501598333384972359204430499967466054075798829702403477924186615028631121547687408385852828758799968100558090070307428894774385104285753858125413278743211184995498113353896136779820732488669618972129982227690535035960563750266412530308381286471510257290864763972074727391480318894920402325835631968183895991732085950807415997104678407859658103903146968081076615509869073850998582484420604621805158919500226352270815164066066803482385966122212896881076351727662224634946921171229441213660555863182507509385417146408745717366334393282439493659943198455753146434577622208590486246467308310939417784541437824705010740969938036898493074789436536827184773330247006047638103625378393962723415714770085738150911284328367970212310049140327517597695261830922315252948901224923245431002595401845508749678555267965663136795679390994445319198408274074801866763930874367806870163931095878392852318621149815539923098821415337890461718823704168050605502525851194417868989964149430651917485302461554038778427915731319805422479779185576393963679710984348457611315488953158361782831827607578821648113872390030931329733802800097803356451703603046421444593729928966227906302947817227260035505257802689871762615879462814272741653413888935498061146270972900731293317746619661780787818690983398079033670435643406113229986011862292352126454706557240884060283293538884039249798684437344904255805866077368158711056457066895587031793704279963560602506625596772693894647480586573622144186689871634867478963068024990521237261480923552332339938397475504022838740788570050208537429294274239199879286949324048962005138801084721116360667002704832613730246305147715838894755066061560964926668362701012269759652745352748926809104214210604699286304747527687342020461757265140590446665998341373431825537063131065266101381880351842266879190188106869599817859701439782320287443894810259396788394498510317759997537009094946715477175383060647178159865950696627506552941966265422300599852741230967470045574512597243186962154669181549510109640744495466118261807428557032739299158110950212492987406408460764624874149832202485299638317804070936243436178702909135778611761487314058714075829985955706295418548156722797558792033428276901128167766454065470872939823162448481405314972590674064377231394299428709681296072599177920556774329136961512635136046470618004280799213493860149412806307644850020181210709535516799920824711948140788479983806643903184146439726092962151841647600606637443229644077539199597719633480020529371457712238067933539921752234135934291493667090246350242556361078166146098946511220564163632588778206480015979025405718796812631360959449566774248537452365406529318897291471873459571074522351887047324584952005483985610314196515359468026905401680063247222423062095167694833379562076039344599927566064470509718868484073796751899428456910117695393867495588343751224369533695934948589392259473855143678629734205958583805533246708772939810325435397534113910995800365360407465430617535906245497798219042511764220257610419446058503883811055283737111537745681206043544149176487288883909634623992014411171951803374931271923484859425131089414948030026544463757926148289463874455685213052010426960190338073125506849914974253076494031093830795080730148408939157635564812366059583808947080275268812251442943346161022929748052570635487539303049495949324464484900278670723567229266482165947867644637009392190797225488898018292929717574217530389624997240278507293834011348295032752707862899559111782759183859787309986006115691263038689724160967388594911610600710536952430474484627353871230764854459948665485847929661709032114546249191590351988948530249639092432624168679714717651836766475627656814804423378963435425977757442176180399823425687294507108105982787429038454531469212538045717075941167146715959585720494070929987452866009137403607394960693497426299010541297283904038859183600047746457783216925390615194533266626372158155147966268098487822500859136266754908125189500613128250822694365503046835364641998740112806821042747640504171019583128877572594596468756998512815121504954037387258429311616247431328222566388434964330139285538580094372077591190817592725986973418388152844850695253023620861854788933363098182862127422610393082230658021654077182561812909542201961096446741125977580597621391011468885864566538692488019634769068684025487100998971580384850402468690392047200363540189194400513481103073510263503225589613055000125958001718581328513794041724083134294941096944624073301246595508959010106539172181181482223238033755276659955721024452414302686998954914840617441922501791672190136557218680125041507145992760443946883062066512953576104675670153145418062628455370892064752264101493289806277757181649742366793584691756489582478768948412193832330887302139917300080321230010605189017983006905145296700056571419657980462696225264382803027759138494525301378440758196052161743479856227994900608289509646000900600204567854193690597237651128538269898148823096593801397635247389283742887506987473211049408888508482606639356133602141282553264429711542813955778486289199123644014149819666714588606869252713951855554625044978585352256612411747194162546597514579180813394655388359000516203082490058785570177553915277917738457624841247233291292757932377405132414795775901634011184033493984059550094380186210784275705029431982199392318961404261646224036194348262324755446159838352068497177593390210329246859621986939640775326790016858640422327863427047678723472667129935124813507528069751819159213979397797756683829293635457617403271787582940359143005259004454479008310645975451054318700024918048983252593958361885648500960127324794725610527420201815618806371054644337682105886275783174038677304528951388331082072529170866008724894120430218134431094014919675138154727564310036326566422510275961177364725985705022667706905313177194227825915980185841233547417494413563028080635476872798077552487864949274872174348205850131305785768534766850348625905937325270933804012280927429941609426962304997921879179838739560359667412609119176964143827219355875863764962530372084091927019336405401727502094926142816868146104516311229353959333364689373438502811839620942661798684048907217234323488195268126600185009435721001351646794940419565754715067878687672945609916895501689728595564145285344152180474551920217461122196837534606053061351868528230723145420944692246841427993213297029544345199657253309101733386696014105803058680296008055289464535045375720385505271324512546425190697869068766316783952674141012372802766341216060872467377607255689318882430306584098818499968093642443104229401574936523078670646339851015864513209112264788135179015954414493471962162862403970780818257455563937177126792350745352296221463955972850487938223445618963643074182932539646224107247259809502083971259700560878549050671983735661193010933367146798812617401257467376057405297267475668295317547927351539897672943858608829214677010030096364544758606108156633039659320929570352660039173066442862393124159196674441306382161792032629140740528686681667867948949458268879430437406420048760289114037121597246595386884571070720999501533335351772323669129725187497428885561975525616614969379692943594778648157648992800384614118769412538442350848659355046429034433369865889802476543798191332449229271372315189531907796257367686961071878770859374968490083650785005326310753210765965334378013006575458827407307020356976170931446338296555701125249184115454301892365128897895659007219969829568493688700614630339308523504021575288911170120818061188419182470830125871020557334733033774912633523703139821849983032095358323192860821383120488875651738992602967153756622622463201712616213420382011448298649612546733544511911674321221182343469767369717887205319044077275256809203101069231153666136321687274584436009051511018899322747425503253194125902339473054803270318652459498261569275206148597181535695309156132451687632091764869034074278150828749014621652534944645984795949513785444849683889161251919343266077503471511793133043641883946272487552100088717130896744477487431492890910280387941635510843682298390771469971778582476275842474808343455020407960368834318863777178678408972534071804130157832991885483169342790094342734689082325617407610013377099697984076084183279184532163002426742418830309126135011983172045211231296086424426916921919994243639989227986219026720474444656870806913064392484154372682053782193516165720529005000102531429062217029132316948303478151617645754594404383735641664093698332313207183867141086916722229400470626070613039065107364881076077707726526328934025102674698047855793085416080352689758234744590690578719641223347068266595420576792896284148105956505394500648879858394785936356324481316644470167709944034376890443356951750898415208235456923436196946722053765148749249369686418467398947088789250288196851889817881767841753822809056938471165210202295185611028594827470263176756836277559713343084731299540054041647842660593119625021546960167341483332526615919401552528094760321597331325089079710869697037131048549811249473830334263498110207986311431886285433206517064142495837822927874462600865651441331250681998279488881174984903684842712505913218214828502735108390283573184102300896570027920893988751612248893074586764707673250949671809913663155273641705798462947798376108561503002648763064888683686766738155206110350926683799878303713559941563497794284138114421625315666625623092731387372740271154387683546091141402142834419499665233183170247146977289978449400182312437373946614516152393927611026917612783929657850958434372884071333404279003715441671328069995573375816379287735700524334819767285275617657812434492286196088007148956143139018084560538108446386459238039993935748501716767306737106778974613015195632507906573164787721348213348561499886223642544007645336590583480489349281896893263528600664356489654656994691579730892899235263468360968121324693317478700033846745612018831061832367154270931453705091906973798332159158797124624584525153189556331002181847801594935582121429111176091719014183544331091903803894871323721625310223627426411037899242667102768655309780871863766437246313869472754468834596230548887809074465393176525728639398194107953285452594422105316375995627663025093505954788232075662812109912676862694669486249936633969050662045334876228243922220799639255581004348021388107610428530186899093055590125729906404162606267678783214199220446889918973912894196554595342085848563070431800075743972521662478494584617169998235712072932001949123234736554673342957295541549904325898184174013663548121756466439373751953177847073154794251109978779436631343771949819820571099625186004476986829870213489468382069178587404018641319635385796310450521069176250763224001201964242909642441340713551704996896712326105944305993454283871463156680467278140369968185787648940932715573064856747536865237405235311946235139521399140094903725703810677064168706876667488467624786692825141075147265174680317601613912663025044548910118731580589031969417467864571754308335223420818027836523244844118156980048259262320649753689476530871685197757802138681912888936868771047866294856876929372041638805838521190147180287874419745920382268515915477819592333648353152356286979412845377098701677617927567259278241730556784148361466074972722030525603283450018752438025498547836507961905518852592951724958438260001630261738080963432553177827812025828235571745621740247766524363847980629613377807057924109976955092531221914672984372154286324537726150880520074391687474027643487689709444034244376365457371925906443327681372139419394317233019509042940171730056663182362151175986731223007275018569715152185842136410176730915838211687917207854626634842211689651828143778605717439939191874268296236574450613632003176997302153094171253608178971409222783529196932711769474818733761390456745694567018302054909170347672143537580717204958127166122157895790809293313848757455000429860461850555608948118918858140355297968561918209411552927310158638571610353278673024577631831283541075378254685321483904086319153062864925718461273468726613938240481352083625644040111666774190528095505778315197300025155913691202022832959010204847786291943464284578420936838331022307982964117359185909186754030284891344529889605988325669251651287325872995774096436906871441742241727962293344939167020273222858057218525582021300360379836685407327857772302191884012077768082943693828366095398790648919292997594691453101561909709413905656763231007505033197400433403391801412842972987024239269338622644405402431114366754887286416417361151929128731479777295347120889718308950223413613937444555665847892054061358268922511718794165717514381190425402787600407426374868741785739200571153488938303788757100915022761434751352922345698105549182927439895507545502285323696442697402330492267819760610909507494991016266628158994515721855754225175988598359725731173865907957404353881133723971184800927319759630210212622187505784731036054191645076744155665027597460121168006169925211909930040665095998813860098102418391062711121167542181572774576164227159027103272515098994162280714598239632994359383905157994116423700317489550181878416651613128192070358948101006954261367113407983161892751364150340229536195437889623850702526908543961295149738257896441255767344932298306190718125850400932555139753625607587691789765006560744999698939038149622917243104823090559835365588532833831918475375401026671322680411304399586663414632480033414217902586063357540177708374068038578862446204322864955768935787649471269344883636699123318852154259672249598901030483033601011949516491838629607114149283696418146398076770720188668249124933274013122483477509307078399887432887116541807968990957180533733912642578426929578480165042698986748581329477647472599594528358908468715592161347023982828292602951569055096800161666324521420834297453311939904057446128488387065955633510579430222275470878797978528196871191741225087490597419690670889447564679714101714922300703604541720823571454691707573451764174487364977119309440179056582420934242493637938542916248472785249127276740437211146421528787713289915824206931127129401028429619935957019429016827285446296537834275825816374695757757996467653544972638659312641608361479525104179310108376781325484346229871509157778855485144003022040234838121052754522462322912267153685785733181268926444398622676051291403105776947271057114222589587442155638355651777480684264523265044267991820441673161786642384737158470722938328571629929389353232646607679071281826733993913772034348914933964971116683169396272266285639970297128270172051292715403035132883688259124565011371427866265497034231338011971620019581758078487904952338033769976605866387249774391257443216182686413547224541084795438386829265173757877911151757104405787985834775261581810906217083932482267179110994133885856163184729301627636548760519873616827992464515712381795013896290958892044138793537423779363951017943077556658274143962706105736951308117693047441394547546036748291892560408605188235253199880897180002686599008341857565063678675193097385629000358286682630684132446981492889749596713483440166051352016222393780037978695006562026038851496015184788156989008748925452723174087217654843883075849375328617465369525718931329513649866712040436311458879792570721100725621324348740598635061130223453924547783031360786800245439667779656962633160844296768696498803163628955584392982881875138760930692671613422404580402433134551919992217135676914131706699121614353160123038230400322724362000299957788713806186537046735003248942252589954779003315556736692617442980857420957744522420831114826726849817573458224555626955703908732696965573653905267026609595694483880773910192677321166966158948661684036951207189312754823203212332170993554860657900027942450301730595144307340608672527294538467700692013348676752508103811496445886505949348935882928536827890074609333447799145332798793997291420408670432670675928235586256407050696736992616634265746970292859609995529816793203730305445812650141946413348380979340381296259232985185932112954097351349937692400240195113478356850048725815278666341341393762432972271445022261588520654824033070155824062176847045445086714316387160107990658954591764703825856849720653069521044787895543813524630579793649667101924102489138999149017564373333700768744153447363126709147184767594004753717551491627424589282904341545825209756885409855159960636922494781028092166634978859297902336404813892360505700504684541161714033877101786862985235382367916231246371911917999979152939969195353174149000069160252712276183303413110173254903734510359399103559832315734990396752918105618713788805129055244400622281415354326834474915465604974557316207021708594695139420581464114209943400885168563862401959286548273885621336972823509699004033738130664676127271730054097085231594460444933574087688308286693983926810218015402706982805104980100882543161095414713922741713640220225484207871996107830754854878706190492004558983930323805041434533849556273583044195621959963135076841166936831954464164562374476508252061251576220964576087258088184046118576020096589864273461371129517378899768974698340241041562924090211909751163217633869444714048811606849590424515635637790106165631910009906638690430952148635431318800213302629983416271909690429067290049005967652322299666041934057814041445244136400649295319790736499099439448107666428081432811417580035312192922371573292873806923567596343607625536806310931233272293933874855502937514943939579760239297924550370063470493934409076046645499878865246142983938067697293626171671790823617494946315872945606964315562542547650469127381190298010647719294081679155856054182541283327700918005569100357588777374393697722939517234339895057360091462144755092282332818787213008065600386485327909316154828644406697300106312697744091173155180575830048358709923171760349527406438894692391794627614863591786238028265525714246004627061807994883824544792028359835313432404408077514929108241183351746326116434216735799499274887498462491808413348876229660908906169868986233803288361321437901520650834398351596464294032639278146309833162958997700797802547946944684110460012068352881721646926581239810982914283952439006452590799334914828107339274015055057356568574490004724655162909012360689425053930307244710346462125180994648387958718099892352022922333395551731528042378654822069930174803042801442021541446641823634289203940377028983409957713791266834577604045173699361532154023040543069017183537924030993867981636530708497514875814805821141452501539353569027039024330336757596910549021433545245263071971024967441870709574291972052219416562046305868547876106214899245798834808665272314424024360418034609285814537022689004802664726990500941598896998204767047213322028458823089468880164443735809965942775192418244997114635566427125704972459556175679848421336281030264718178661800872170426728030256680284069026665040688311556718413744451705377355234121559679732858168610290496794798426314794565731666465494177430531453706562110593627679282426566633979258444621395870458201901714533784913220103422077566442446057046318913911422978841685620712237551960279564507638539007813968710635767373113065885736205466653923644530587615496566034863099360344624418200774664370102897146860517978332336133091226100686824269254385339025082560575145913952167623784474455494799567041941776629836412829495919196309299944205987190434158061536864101117243796300985295359104042966629911493911669941212483777679921360064209228591963439120186531763749070901201428537207898390489397914973982380858470840393764900698748356985878982987072933653034859530534827193883679266210044011844667935912425133304645305965065297302161028413619622253093032121741492690925969868112752171398023977748426724221911214161936026619605701545880479810292880774342804973171595086680951812597890012476590527153412266812777861960007218752065436120973448004648326672305223340896044162006573921609533847196973965808807095220871582808784619964605536369584970985914460008497849955642138942343572727058509047394023962884456949766407658436581683515659690607585993174179833444249428262270887481258980119394179440209774385723200427007132429741247293778131328392405872124154386934471151101363553278223357350955819149990619756282732876095838763493047662858562822315497042857817361030451660274370035052881819854435155766107527408674511267965618761128898338149145704797141666848228918297717423855177909681971399103536077182765364662697804122783616453883497903531104896692750984296806386076510444653390772316934131395224841880741965568242655748408059930600574740362660407940788407832464554741759500132777086235645694735537016922125621216419410910232403423652073947840970089647132833317327175170964506274971115425573979855905677717026652272147693341012046982813978095571240618198877195110282091878008143638202174026890345303086972005317796872939126057623958282977373255010713141821212996193111221888514639278929781684731781940314114887198578514681623780528895217077506098429452305019991640436964968705716919019181742615078652989096708083739706980470953314059571148054264617797910208895980338106176907969430343533416936797063203377208432238117875809243075985611245157370678340891840840430795749248404061261292553486801382057095418340028394276094366117908196142795091082771004420718880089953882426323301848982710931763135310355745322911882879527647749473931375293781972416924907521905594420504649831419528841572811749712184490739214308589564964488777068037563922604268172277259259044788394801187287483387493505976382095510994312377443207189488133078524780659863688414896499938731014279313199504545848598344973429673548544822411776236541115107840680417216965793305159677377443446303820992076418474022367921144834716186169805832618114396640222887042895734480553319378954476150278494561916476671425841360718704604140803107571368633560005525760678693463608027610586291453542560526961054485015508026010959597465013009505033335814547026832308464146919659178558480291821023343451331688059739019790939996328389532144725227123435204609972729398740433705163031666866223870482620393382632831096976070605199223353129139551698119743152251493046087391133027858032068803099288957369062432855164663737321946879308425229284267429620894613495177977344139534941842870898589327435479225837452188114614863746363335333165143504826477356840464962113713887967898078344244542081441333153281954741730111424351111005789756564510375292599042610659482242253543667819865880218365667984277523137746752871433076251843927381825057158490109030844158042731185700521196191899402708447193736541062873036378256938514657896840108004325419828422209272703134777948940986323121992262292945589399828248244270356372766873003074462022688923532660810633120649364804701706217513142675747306440717112371620246242833599755837632581107627691534027369503388085492830842789479495307936019024530238481379094678073988472286101183762161767109138794826198858699018495823937867145149849002448603322831131469242454582121570832423823550560527851919753150977521006687782372311125522976063296956311041793468701537282972027203044209107936206187606338810628827664305377530152006228691606027326244961236950380665421639379371815934171638166520536931565077527473479994029984667422905039797290305856698148779605968440095782567834814298401239035721216522937981727545250914468948687817268805671284132720500144133914179932709156323564969728386186309213451323360727153034920931493471091776828229294185425468319960559033785568415948092535397417689814756640071049307021100899568690994890717230726218531275635669210295970298466953255278245157753757002633874142098656096830765169947139523639912710655309070657800829245801880483392834440835571341277075134835553899372372326227092183334594300082343741481120189659703842748570069575907787845453770631207534095926341589275202519167019132794277191871247998823554942051757516090630283918656505819754816266810988662515798798541602254390645216784558825153434987139751649999481058663214296910337089047607745315088857660735957154572347781674748438087623256684458024810640402264043956460518886418310826115752473960420801969900301135269450835657207097034982882723076951085751793645742870563564535823628725553646791502172656031666436457177275414448130096744757893016005523148440395982255317729036653025232259655543617886385159344392375312165218374327164075157796840249327382199337034656149431167614356685758892625784696207603684308974025142590694007438615936718927440501640700271495064080060110901444553709349241097103031857308405678481905238381177307345875566595707544162159008498947406804070559616964226974752704441447975020228081114586764914846064761949387147624886561105081529800699564706219610905546521300358604302380688545389098929877422391595097042215575932037010275311943437299880920115373351629819676966988604025790362283176317105850785663883460392407658944849368830407751018015359502992584801050706642810769777431405303491408236595649646231859322880446693896905614124346691502950182914980848191362075576018071123939522481402939739263536595929770742770544784125438519298189897416486832399813110725786350686047628807266317597936412120414456171863507933938562291015210162992563677124590512721416072403166148288913530343155529785318946641361014139225823602692302351495144888410773646904767672396105821041052404126789780697714721195746303012851452580060162016484116755632027411545293609803308773255893428803171397783079423449641490753657199380830322311292277651164402682340184293329096048668890840215788086039528540284714619087023295945525423620409062721404064212203152525863484602463331576311977910660018060148479663729107052429452244091911425116145862561979701766257877607717682290823961768403263781054427841621379598922046785339620142842453398571437153122049591401134838967767783764096987187810075254671516071517101850155988196328726397685594429503280612586801039734804356461228242040642454084546237221782281411753209670947533713820745564623895773455786922134284249410231353801239650223088571847022760614439018118361914987722668275844041697823330095412747979967524755831511392871169964878192899979422435044289005567720936465764300469582034003201141144787107354780322009418043083607053773821523703200726915786838389468731982894915129622121291841057288615584414604180101896523115468568660915575464281379064446912456540851137518114297483469949897573149519094321542525923097395968713618132345681082909109751473406542695147555272556417361015358006836143213059732446952312332026438592624442968295732041223949705342589016004470471174509380456351969606316445260272564096572652979718822941393680070361991920059127892517610716281270019785877868423756640331357610963613055448387830539204942017717196413149885716210698676942951784847067885945101871810098095734923052075194796724393936139485899560952608231141824791099739866351472064889842788053448315448923323688411719249950025208837582130332169850055256403685612997093357255714851063273426887150164518065447608937128148517072808359320245737386395271731533476436770935211072319301008005855465777812610016198307584225553119458371022191746283560485210305523047254326212949457038747226249428465942511971749318378069271383129388276939138556928052824009454977706825941711345243821032513019970821731872341099673123065668360511867698925906279738161110147490947051502331466948297410885670900804784259495859316240816292727714021866615971823769851817045488185337239881709599756706305389907486126536255599761861943150469782426250652174305855129439875737681007132083392562349065957978239843272994350202709938490235471987577451541736839355102387620743409340910343473478452318747363639524685443452536271424126908707942108884488631714406373942289291737891389296829632470264039968761220999972995817629762715089336766198978522719142396448313518530205291334067474376696418323828805533152983504073319722167017052795632198227616608007319495414969589506020209457778973452255475435591983296995798421849697231238145837440165205292174141154929989533450875959615520504217923892888186111485459222342740010139254736941398985150259111322506959470965320990162240786098877288214707653087753156402602508535233989791995169698290738832928081076037253433242813055865843305563134232766454968570168272823863257722764826968950892329450382974930573292635760808574070788889389213228787053847980645913938064776449009523150448394498042047911570267801157616068063179556717721446135807846634792195219425388177632348675553472246423705152720218172673212330981753336055176497751811489352181225201733955023032551162547914488781886225794272590221707334819361507117640977230305052970024050850436291210747247405441033799646564291434356932692469463976512539565408464358441147736839485462275601715971620808303571326114897588575733010228428774631305802137107434362638134664879788289050447234998317335681591463343053135912520949761510647656885996106249506112959947000539083450557422509140263763641176539107309880327605910293731265500689411518887966185239930126052643133249630141873155298187156147452038628004451087123574228616827900566967528034061980978210968012714273770577324865719894311457969705151676507537444846033549034584221654901865376873976779036066664699641111430806721819008226687331334557758806023131229502729807613730150258622989252596057102345721349465992562048754886135296859200755660221845201498530342356279350009277953329859530277406172542553402491397209715601237467600954355140497445197130533263123175378696916740043398081262804014335624684636784266225039221115499338533325078737853776351116768161361178082957582576305481099678986197180562769599490037372253253320004121242425136172253765095677451015957042221769876975609999002731733978504533490871421575325741920491382599209936467542539295188585429337978141158939491116091698900931957194569534948861057431837250722591249337163812610466176579035684914506907263312562157285845122728093725568380035517739181520638251177246129130691010116880053502160638975983127112239163758774432826271882330812374267101661718860600859806438561236958226401685679030884560121110370304999948980763274874028879467645659108063786400582855801830555165355187164445181403096674545956361221777772755219318335846608286453182817877284814167077186457124907850191599359950918910480788103226879313503512355134360101333660680151029962245539145546875098256503871342304198942749520934798549271729610827190439806300289036684044567084329413441244644564348307177120386145010538338574653917165997701753417350489892724482711760751705207638750429571866531455883354320861139959036811647682445422431556556890063762182470037974784420196790773399377391169706418709747938971181621024346652351616901153566642278518348703918858807383063434116522779246584749122879212443510907951771176511848752758514938438655864474896244410753343721519308966498020206565313284932270373036530134374105709890061346722461226877898309774873371807587565616036290525759805597151201195920464297835314860326160624426461097709523344442855951341506267767140859915740088823491478380370766240713498308217975322036129126053883486506050692580451742466553903729186297202765514697839087079039285274379437199805240528151537148234247613909058784844416639652022170321298159765718872720505559778140215340489692858417437716211588172397778467749630299127758257918189862151358223912061105329319896548119949474534786721118723340497067111331890274167034808787311159636364184184000133121097477649039405735772681369182856996646333632410635816232891969819544372336717579258979325329519131046229713120765336492205304931133582071343253346066031796773519117476777407777672553284017694881969605898765915315217272078460647403112059271646707976484770614186073245483623221362772012875653887680714096950624907838598349245126768303400946840309542911040113194971711150959047388275580438272897608263339801484925762744380046115855614659489688698544444736794423817872553887987048016265167132529575932034596915254301775537259483467598748235803817094433816598979054735958240068572269807034519731544868227422492152899332470114065679769925011189925237539051377632066646958605823174606440798958733513885901843071311567183663133986079815642673282377270660142670978084277424127894080316307156899390618823208877927610453901920407036133951581170517283279385016446367022859417243731167930039257138418160452366408191126659790181088039307205706682331087261159013078196656234599700400239709392641288987602410055889474729397442396117786194241473106229377174981925681683075595584215043209341446110512612481142459439110706475622608816773238422780269600410377693850621755916735303296505785845900596677110374247379100845813347681751493896456008896550608531531606152599197114740987109830915819267904366608142151744385177117982864988905175002327891473839179995458265262874657385643717517490580700012836784148767571951436347870549123082369060976000242720321563469949926259388223927598440128572140146632369243959546213300740447955875149338185351520899279716597936563917613797494212929862315036824096647530206556600769018054849528675110317825108435934560097010493576267786252049708995412140884986498227098431410315256233002862697029649089634704643277482026363086464962779325200609896611594266155269060710469642230777559557603152868203493459539052529775830362072062155906103063756082637996544188529285707916472806869544824087234634020881925904438736051168435109361793642924778963166814668187371963051677577847368541938779207846349897756690278829583378993984527697681822504953242657919902705451538611697685073840406526066515697977371877269473991225399222398458899453106399639723758942381319928385243766157189688649689452388940156628551135709947324803506103304341974966026297348719937886272552812848769966965834081205449438656159767124798736703965145114284046577235112368186940961922600781910587120219745723496287624031824193948243775268538355111444091699785300773238193185951263231784751282885200238768798520641651306635419442422104853526316528832103068381765469192104465474768914738749799679960887558251237409760028849734290898410971006031544133303382927298729194649062693805418824143075279839943358085639340839282922942470957382256081743126957553716908528518652162997350411955653621254554360004590513384425902011485728789184867456632422505227815864699937246164498862943148397257260740360675738695349836522293425720752822781691792109903942332873809844100123973371001521541470681493952071991518211175770592292978676092894561578067851243775493982650729364259446830201349876753764454200820959775740308148735284140609248501287667441738707491036463804058028597228712699252551976493299938623405094379283922820329955478028777647018016009620975258662434447822170286360537154245411680546501214579018530745561663426112432835066897127131224303400942442220048854766529508321772025022977784691779111239536643550268195396152177967141671556083554233841489616176652429970492869055161399424987246526726221780316183532542659192410031945165254428031140269250504251038244131535781307812828437872052170263311222184759154128162706924606340786770262388794770300789130650799458589821620434746323255457323932525895662439253462288938192296561658511239220576915415982010410150998796747097450366032646823736862757993226421291167779185700225102030202874972088955999119516077238498165583228142472690655307202735657566629596787972889314887953281720413591351057580172269961174776826191323632549078072684317141040681233015500166280315887268576203426528888350852288462523612103916691935377237178929724292320233217285609059319311406628901044460220804154608970962791415503212266558898819593263814217906361822662511808093264159099271323501455453430109974480323023736755691725094065668987358696092411663459786252095471185771278401844716443373060732560744695734451957048960915455233921289789554181652575306660049013898398439823171187083130262110298375315868543550327664245324921034737644139422332078190706284737705160429103857599842907495194505070562863238267380530007952821159412963388845363162375713481001198499602277935581094353480133742942334208406079429034315479227243194654468590336714046859237849640815023470018983863661609351753421707711071960737233758447481672271502436617218194758459972313427217448795774144445944257083383535179831029627659250093854786543853887489766642169285947434397473926566717134917823575487603189230305165234367886837767240730842287091656547713624573026688194475314529653530746859081282446554808266581522886704673133446674608090107720435344774512272599196093204996574153124277706355644421805797314273435227856540008982432394442941380965543379988552022749228017335245939243191324993626958368778684739516041950307526966588436377089723517361718396511677149544860592215162641327657960609276027827273233323480350373983695218693882764385463987675776167746709563623444118821819493670559922608513477515948161964255254319951077713299465157198843205602146609047162606681434242587653960292121358551623579781416184658730262710476948343438015710753874276076203991857479094029572234821231850295290695443491038802934605811839827214424009482532169725620382207597520349537611470677072329171611484811650537180654858269333915645878305665616268519444210635233813392999873225240051995492874661574695122212426657727396151513535403512907284447856425156783620792724225770953801123794023220172171500796654819257554288659568488027660979544896898229570457860290957766247426306025347359402145019942362464258173530862822243042623967029305055919001763385284875042325815330302490929226087987736095104066862369702823094647514671655121256864471640957548262578350609884594219733462151155601409032728340683233123697954775360335736014789015850012758678900590877289729795392217720421001410955585841125566234788564519470102819331291723699634794749544637424628950629882305943002683714009346684790768290773414337918937329069975249492954381372008756335073218726828651658539600222286154166946627486356385947106151640088933348110128694240564555520803416814297073908325385866515793584460136148053759135501650684076758151376424668492568033148087070440490316190177690805422240610710948463666360767666205380242878334954682201573496144655676705066708809612397527387870710872637979386165936702920413569067162778958836329741314650419999686135443690666992872370206960099617341214293988516730903691035232727029245839696862921216335161201037008502062281649326074850525553835084821463518557058110739641588511029823617444106523603633164280061564811408743632168566239443943310303965575960892559686417354089668090336517229608892849097193251023824896160657501451619611098476008387595832051148656991696699777687242842410421624667407025432046888534934274786970707693368931263837042357099959685269199419346493639638423672646907386588883413045247636956031736561478032121188222160582288450018381276871546884575629359658471102345175566292819470600286965505351298337815325354816354794167399326813046795334625194509076850468633285355269994646638822666667950708565484549309764778053535683525536460458217700350130580586242385845301648920448621038978879995985660578708541138641204130280062330698277399554761129255041993161257957146200411304187676453157702092197431993737315606804128516662250494546645827277697942075065692451737035048768612509472573543679615397522023324365771389511102031874130031217498886873642094182709205852002359647814689269189302655148736727112728677914236204434480317488268610175142896619999949595728190062766935273536888835957524151647291159305595492896793604450172464029592022296852964816394922664866925913648056859340064889472432520637269941421003275188943258017098568793575471659674493083455685856720896473707363550809788386247757744762322621811477120613741626129721785648008839004217261287021742659840995328681988406063460999633428115696474277729330176849191653941550264063286174639429945772433038306136909701852114561218196807329758517740606111487510189117672798649640096903118368208153491386021647384289015512371370461453009167750966151690993826133948549232964395567394927421793134654896051099775358286739378335738871550418009314547682088979103323669229984741819273707704663018344041431754370143615996948739138845699610118606864470700649750843513096021069719407302615755847601342638506019974332346639212126645510641620861862532178171494739782004897806676769468900761114704686521765090067663708531175995912966178317369788620645804328605920349623120534308965732635515135257941915416316714909851041743351067737035689860430068744241625303963402528363145626640023840083788949563802555675215040581096433234904643947185631480149933968631569544000147849832981961281950342763644123609191141203444085500383514862079999024410598208353194436281677277453936912191821420783619694785878477168272831316768816561771132962953398247029786038844468570865629921154949688059343992213104028438998345918904961021290491231253909557550241312329908756688118956783763431193424386922794369042198456015744964213689492278578056213133545093543347072125249748290928447390322771592265060987365450754350971965127954080233097710458996228353462496873428920062861708196401850809897477383169969060306779256336809933043640260686877973848944817096857717229262994233398278154616816512399362284016594438313371162730500935860308886370204997655649549023764328962005959817206507210025037891320680814837063216514492615188759190528128207362633582982887032447280901602093577560112259376513765379517979689003434469299605801905305256204005614448864933376691046806666693322703445936003268123798294391157159324668874106969080362665253076303570967186676438726894591139073656715352330392764947578449049711271468079582183928495304149722026995395035454873048986700978286132065579542836063508989367896348759713985398344725331814343204629739153419681946993849002950472956347155201111182680046265183271872569189536612250165928441207488680570893030704680847620507583546493557537109351898742657151920725981785658183521532975400844697267318493584039642736230646344944592796583950327706361860525209760317166690759219391972280620532557143551616587100857439832499766243841978799087779203527841435517210420126592763245187458555642539647343109986410163139488835579737708307529006471151788699320107605640199615426355866002008058804672887570216157074285810940270045071601294815833373936566087071182795425408033583540499142515297957145594913128360409944363520472656317382894210458361520134257737539552442368627886326222866779730046090065013046342628514058219741151615115136258630457754253676651147459206424753613545548202534759642619548383227607698013277332172687938703535407540208502557806746972085294469450132051124222041775983104491216034806627443037580637506480141046592188842174191575196251194535470265791734828799919106405460564587624440452715519609555652505567875087484952165078641914759271875237384391702587619134594613558926383679798457528742326870480016654431700912590926167485113034372886048137228467544050350070501635306155535145849320383920556386359759293072170063085066391380607638973373964533586888033073995863309400489210347887281778411813650573630723174136328254870914576514691128165906945852878573522753248735941786681956889041567024143675486997157991639209465559809456504437007334153696363432986369437005480889734292013991993633234812490652398846399023212136656146368497978828636575544981721404203596004498420907298285077226123300211499069775856167691376318709596538430952996855971117617261509583570258296870742327052266003324947597763506484779095140683938790316360330077549240616964162632172286136598192772351751056348967525763983882709155604014305089381176044462789089088456596404093549355078700756967565685765809314247525582356071851654298327605541582488413863673609893159623681993019292402790729050190891313973767335877678096453017401250449480540519047176081347941696890892333696608285460460168661635709152062022478441057443183711550840194440708743722347831648507698391572233556998081243089434184411239307340399149541623055038310066543494868056209707511513365727265180173561022745647324650507390518315252333984349714262917813066818328321490430883498011271114441862086784881118359411935305836478414978796947649627260536999898561677578620035688074647133127529394844623530847349916254732177838615903434003893489958266300752483094936291840760871842006880604301354320988576150693607992618436915476110633882656139668758664991361632828819828683738548672938937139977170722365144966200502794878005992972113157199360953818864854364578018533455532402240328513234650551465731798785733228245157028345619221318505713112005906909334258609954484471542424521625660507674316239805507058836763493729938899081239126692991432354354741296945781247227177734293967523785057592156783958229768293978854418491829791734555455145158522785724284290447076606034890218844599421291215708344396149781634068881817373140264076789972881504655332454519973888441796271423689671647230195666558568598562437601495602511825612663697067203904956405110323400096213807253864829758131714727987466264549952836584417389376963601285637082629483551608472237453601474963985013546821249306221492850633440645331167728881739906550744293445827598721876621779903219583441152950800304355957787067563271711023508798818544029688983501911159625678594534535706265967397646184345580228328584691039557231476774758029137488336552887474625664502126508881488672048929836032379768990961176459134586751923964302635838172397866891105844922944750759361043905189649469998794311850359343306975738966338382013639493998693810745673574289114452862206482816818758042956647709436515976732373206404877187384365920615998580838943239840998944753526605876565903437335830035368312213980660673023636978551054686648232721170840716271225331591971889124651224947552832004086863361590556471141079417532525126075772615316289409163057261173386141855003821802670524966690265044630841868726817091861690972754648249285738327651708586722083534031760489392892843314572270951549427590402758724184709849098383443980524878080989593830997739942809170005503752502438623494179475709917966270879647117364635367720951547414629910647260482693010310160840332960176020395128694380422605829650048923497490275766222183189193884383681287639912602411290443661537865464850345946951881329813569885272651044917889650761213648775821000176641335117921510077411005861684736530283051063895763609317021765449367104576307819828293629585977650437854190255306496203390777648937529126718835584602255372129203322978526907441847682554393761736521563533216258185582286726069617877458997052319313237715895644895209357538956835156453097918165313712481545491839490884934549022955741257109990044721203976043025926454051448360709545876548786598332975386328923428919323041967263880801946358637169450500937305363913649315980604344891406638910958946649114116046439910701771151330364643486723729850053671533694854359985452769757152489457372816996555055370113952812891375928351732887560855833614876471834612988353488703732614829746776611415564104363989400361414712358630390805325161693674100736076302919406785816549056649896714910623984629542202699179180457364956453485228380048494324722469406238791315715417307113814905397504995668505500972823309188192109407907871204864361136053644645760011718271010475524581453872730377804080134143986207106162562550876685979844753813127726388885029481545441623381808858797736836915117386956485936272023180039791165284550788067284617444399284743498040360980736035873005553261172238682979359624810691745111977967970573897633423273624540002227742614113275608982622096083582351895211199335534476971462237791339471583943203331666767112862967193946537635521395245366267799562300252458242537080083134794965186820020209289864839750833159381863106204450486694510466265749126059568428854342469874221254278142514869039508903884999511389670143149300940109971748973593443689844971772409602984244270231477785196691941265829664973278552328796075503475483083533825563736408342141691399601829342980273707333905693318586938541109269371767927212201312102613863209055191965754563752862442055222303160169000404056240451840702702315095190131095697527815593041878882772889534987273784380735324687843813693517483824691603412581460117774445498844525084680622775696987859944716696165383011583152512986770259282598607527246944663249541981909547718522586508524395975880689143035118660899575762282601937239802138541780747502959616129941612853201526804696422793729118429260809346954349312155008396455608655002881862080984557916956587876130041022015850058012669172926952724733496318209975212691774815139795187599327949094645374697214706872984522584264788345507737149387550651963612174418795506267636466912508670870358157221658290051282181043915335901404439246415704043914874231489427420312348533440550263712801634989594493890314846388652856693690288940163115303082813719702788276065431322667621397939620757814976439571237244637432663663726095552562348320333324576364437780205551593725196030366525412071941933221520710471179697339106609788174097896538519021767346017226411590358059368121628924585864956827896458437564258453095762927710582451066048860591545006887733779845868664973446790636086442535728972564464053385470617971322392526755802731641813654736511721735767573674144599198854863289004058266342187523888949911006009119291973092419667797003082770156701084808848838377334300560488838492178014980683451976694712581759669273765058926989373797486471224953887386534753411132424532377289083238160145028078747517721942660549294165179973656706451457755745002804771549429610231994216753523009695633358923062817834618807428569078387364953252068678544103693781563114865766051925503118993370513321188746589068399683374519069584904661127534993592285202590216691189419446430065334499826673413055159808896631091249402935403333851559772825128228140204394784570854964416581998002691590624639427889535313249764538271120705340870903150466578906165740221994552437297533150500109630629483602494255188850137900295502568212193226385531316999237909141580394644934762023627339193830453821098158367122719891653027187363898863305666303870785807774468690638727613838924445973604671033326423773239638256634462441646832947267503638952209602126131345115330355113980577602139318020979018924286609347153716241989737288426297335085044124505643155113546043697280082566775862360569804443541633038139768588836687616711167586709079363500627328010129207795263999171944989754123618521597420170846810432237576359882451307358081351451410947017911740418772888601983012767717760264897217078215927620981413426714353411357083857695700148391795385343905694726797544874828380407354508139307422440891857606394579373848910810056147358878096183688975418631247791931862457516139763203651277267038479021081606489996143283099539891416323688099871778982140039311811643980114324953928043815314847756149838537638063323521113658445915505087912996032205968972877086845485055459938200512918670995608188587322416477772623337806861315558286148690378806501055613053503923091675593680782250935877507510271990999913522088704698846150042161746084787789270412035905336133347102428449391610185825051732655587120744791474533502886694110307492819573005574528313710037686948102635539041432473905365232992499473362411607807185890343609828279513363267713201144871695427210510153147853151756174300959939343113976242744318486620992699114525672748346126367782511109281248124971396720603391224625608520648290212256494390878376085189086170387139760874412980086173103277748892227644461779889191877515142040894752398800158591657766884822495561974108831292633528019754342200226387049817300289013045439935632326339936792597491095342208072194607338777636037692477497585380919264668763641447181724083880357128768172330378287023402792250635576700237446292316470697835016655965622294506566240598636411729315065468847763387565453500830970252431090690722078047683421495892449495253134515412902529519359793517348139677792763830671783810464153890388514209543192373321732552132230242803414152761327519747414085359837997529469167673071783503604328349040422070520331322140045818991405580549614877098383957825509366637001331392119931816093872580655937269183171005642687194612676135986121402070217029546661308723178431720389137444406361895796197515099301505074465850381056786320259840913704945060874118761725785616993798954443467931381970208415438662453021050017397919701055124326829693207190600140223252643082832815519916542094215816870509339180337441940169737454611476027763158392652869738545136096976144911841000861149540071404112477907257156280279552324480252192109778372826042103859858991922189642352450373685245217682307361574266510514652915225262544580493660603332794262694042266843506738453650558214174912551318190017445945456717415018874764059915705714519456183494294161893330363740721340313134169249670275418829717300246762950867853151174683222880850965121846165519511409261354555301522278817189135262803057476544289382124304810030458880519426281019814002570322679339309434629560948094282653429584650740293094069041436886379796342908896564394327543693571524692073988811953205115991483134247360711422405751326459190169410019413109813176106908453476951643062295960255304810602744939120789841164568464586253150229754082028990074376024238827577171475562224518928787071698651458698996340685478470665808874814216796109614593759026948741319343442468032919282215160201216515123644191739673560555042086889205861486473184111530954290965344723173003208038997996543436731085855297969321243948786836023474332155854528423439328319411209744419168046496824921007772241486447369541510414126726866289864955589840782443832115286788904389279073450131990801876604225723999178442545635283510269965513990780257140291556923270162659583833123160359832687993945023394151597026131318105244096906314530923998158154830542799813274907045392922313208448509252767004582843969042347702804714264350426775681216731838366826629799220358326574501633197512716333908969124881527990535153488194486276122741624989975985504731145541446338404255534215546772262512431782547968509263668868350609741887510419536836445663382713747091253480688712309883554108640494038954969428659945016464782418218957684200833836085730344565985516711132978188353171725297417518812773190648524826438376899289305117760938635085688551786810196813659176623958756718242823866217157034957394330467198476694363370826261633318958287436047593725170739380509202545708445105880387379887547438136412336322674892027457341255995777254666405268281711212372553735160552010636958686792281867054599777492504679096708821461776516460172339139462979838347319169488155405130231192301362253370789804403249399940656231757811730609704782451319800230954056091090907212215871472736547186005556653708393589264487401514054929955585284702883757876366802566360885568595004931207847218693287214258439999826858192765129034020122438497311949833103289832574840670551587984175120970857351404732073164852070802102115446052616045152836733418979942103340679971081322372608137109838452461044738526872382436189645308483701461976333025342500365368347722056371465443856762052813607993727138726746209073692450990832018121210888555220500685207469270307557185088404064356344216656158988490385345950103624975391561732539884337942430044784668643753491766199582139884985863821803783322926631146383580583641158381668834209308024518691375241919482920697315443096616366264032303548575068408670720146717702568152802084379197232814591933195218369073572766495344263873744176688048170194189253714930414717134181202106251809923875122428102604555173955064644292092812914628284289441450905584287331181311087914251817810844377408839142340174613613671319223280948238146382140894502270750726613800275536116119322265547824634467626131112693327636021107472687712698020105007982613922215628165714340245936315447202579185258441514211753990154265092196681916156228053654140202425246026990528595309657461749342394757411028492172982044587132053257193998620850001848959602021774849846505500849069836646036949047891271115620800174746448392534306474281335289948348977970913211691289178247561558979193875702043319919249511018958422722012608588336307572414113883911885840176160120680970037068838869600812817358682093593130022536617412141234928976800955800328784351046898503108780885237101234241791005326193856675836372479278540123480485912098178415427519675416104458755669234772947353292916499009177093731494478500884347405023899458086421841591645637466181694510105856165796677341597811410998419565459327739175819216039460865814118033435319065779110527616416652158107201036042319842234927740573279583116581532728001092438913091041379336769566523131546575352733188216428397853009953717223343859640668067784465418221894474625626737979111782400741159848687859998681401302837812382905030874756893293233330946749210425756595387936685893268115061291826014701791991200098821342377319995363343034956386997425773023740291741023791524911622197143036040969662671609840521138366955032084523677196110809808971244861965553319737964676208533782573685054691889709973236343142433597336373672850333937080761294999110737958416795485868173792532456879744661238775723050205746697212046065086531457076937515123212350459182177327655911229184122552725198675539567991782143168665998596411279187813881100175738486996735512458284548177469150123304348678282784488707726393132681872237501777676594010049663446608498260176493482884821686195520784154256607153189784146566345900147532251899200245238310795409487871308324668812248395141232479292050100101415660649984514614122903115270128165076400219838984179467750250911351512856453318455313677248763411910918677224756340814858174225087378279983716057847191200788018358094031111415543033957170660906858034618823963060971987273295182513285548191607969563761672857649515925048531567807365733002619109551779718354399183629723234997718077063431578646302014619986349229853646247672781453638437680114761008763751268927724105367556777574433321021772257012130836147294660307408719233836869393027529213059923524407903765600110941151419595275636127031835168909495749064458364617308531829440621986566425368605738928957831711880622902939312700098769799873932349686490484602777263912313321647983472250077852425132982790765229554876749913789751983810052381417517875636331445379733445169956371924720121857482628438026676896553461606434785714885764264015139493182493951705927846001605686311792004509629322707805317352888178090844923796533192650032624770383439502621188675102415022876311222762534616270068879829154229781416472744410606520714920192648509861346369721000902241439874552282804082959237718550230380965882536614604302207142720570142648530777229646497079783045127274356788217078206421145511696065113728977156295379687957656091237774381485267423386517109164951257324449227245203901816232371602986084383671972352943332818241397360101432061181550364619250869859637067010507498197379922077828290933612666691485947589357726263673666928501089020937012685589182496157648348512653209358487633656304259617495625923124293616785476539735085042403320880241145874817597563650312818152142553066295874086674724195831140430859554638769610979335615924834553395390901188750788924637472001910951275595820385016379447841398246194539545462051019772833863116440432154241544705608064288296287727806086032942630600917726095713371551497966415662543666345430382168763047089592363703698472303006795301827727566396717713871987161944500712635223578511568764903417553652687370911668046091085388632760862156200465580790986621409023229603039306479025871356295184833052793965479660902342308561755903183529696702262338882169602132802266322320109720262299142109169322526275189559141631024249208329062265192377335845950936281623721176129853280664255672556903132285347669419711969169640484407820280200151468285514907635192888119350271079120607380719077258675614769097313260365014484154751599794887227943919006667575450495455664848568956088623686599922856977162706877221294333767117211417403154389090506383138502569365913484816775206312018807418888987988031965032692968589058082108188591047448215782814867026225944714411239174957817181138431072118465070164765581300204122625823508715102490966785994864216802396295510520672201235538202360206167161289682678461751526798822524092298391722229201446900358197801140130572421450523203784369383002935375776108130875446108059065931656091176574710014882684994123477860021239995161638501833922982984180610720767134371781587840066358286692869449387314227806111062649926370780032802037286635774019626908856673975573994701099058566634911474693475153117836294535000840231034395835036286216940995752286759267960609371159887230794188363580505572522807339281622876769965590277630231609316365156873156482666633531383278814015763305486074149182007929467413264979107656475430371991319092279243579550816454287943435047767867024602539508888512929571927080113512622018703600002062374243214262457223698239326701353612733993421715054997263858889622174832624267669362560669393250261331911034253390445103587545427399189966319519863595369075887171534961599863272725806787031600744822082689283453537005037536133868101538764894697578566297727053142569017999804491696962972446788822628994838001452522463488782095773262632299079589733695849684121548599987129546337804700061386074283504194750750431694663194533603518917585733514834110497732836233643935080345439749855726561386523695602694084940218550057707199236567845355987318660619749095714569450074852357971572391220398195475457260612037050581570816023901103756784278493717873987418367405377359549447174287025651398419815979342266029448623312201736949585535364116486661730795994925369900482721358521110361973095249803846803376276500364511999052914282786126580102609299694875362791173312937450255354129775186690277194024257006274228240811529049085286742291144496609973068520234787811945428306974927375778521667108878037265808101498238574311293449735954433131004555916699883990035617109381653386833764728620481324699645364487243847180384381483487964553289282990348720497591995123736056762035702971093931630230808038114253230510232356203514736814964216911904040558733500117982543050256159918780614481880888782571326662054448984692145331034622557012098601800502506959624873252160590191834062637059193705718865472249966825327648082430998038797317954420749093028252434522576255757497811565175467371449573891954968988924342641533342082511972937823595192090040817494073720113350099287791172476274606082405573541397355603168998814483492687170929039320416126086928924064557304796260212129858488763577073201740163068000881163115120191091133126987294944156772674885772554315661810613912048329568535345846084274969953600203993596007278273163284819042078607719109016670234268742399343670640574168144577525031207100683814149425616980238045542948796626457717698269913900195155304063861253760487141499921572121895367812424783486564054072520832386295604144252917855178752849788221683630191516084062574098730430740571835662909277541452702727029984533094099889587606967228079826831162283924435982469888476503570667889687834869316206034279582657937332180750564217729363030388565319305617650070532188807136749568876813324132486627394352942660441016667873295011666536191516424723888505672126629896788623351763484525875956014086978792481484190229591115935876626451291325305084485720766309093642805490847430757283022927097971865653769469329159767771370437815587832200897507417899600406095369910172538174805174106570777913516671411701679541564595094310471102410267164026869680167752805862457461911927459133258778783601779443551961682026092620752481850986444015587930824018718609192058442473882983752124492700582068469126669972624060297729705986988004678394546010628959490473815421951078344300308016446192367845232033433933310028576458376933755122554956106672358139214354124923953606625055211149006541525557230934865083659506006623297366028083579344014343036012208052146297967877324453801358427949187287279050313515269730097001049059016018920873563663180830446687855834474229102646299006376643938103941388811920486268534199623279786329679073624864021500060191835919853914220192093107532800687609187382523143388695023497381720362824651382921280771205695877962433368867468797868324064481617220993121698957855006614511326754180659134125742469933335305188147547361028490977672553417180338184382697715167303271030250866142531105177914495921473634681625555849385309732182053548162930578559662486277997934610003297944343644896864560279919276481258752142842530535602911419672348528438399203429549337858904213768123630539139624457960933343623328984319229709152039463909803548552246359648044797988586571936217376932373330118594149202055680190452386001612036452018267783702579839425153784434786602232782224100129656925190530012589041810675023983492718371347357307206903802685166276572323131490266315128232902583189911438193812959604109740270655560156266873290507610460928795817110447963525373109744675418144312434957441632354013690028307376452247534327802780781728639008859815825620947123121272211530875289143459303445366857524028891301942307482041492647529587648540075451564524025940642288232011561671674322215265994448710116046625809359609164286928245187786168059345077167177980421653029900665408325886168563868687252876413095068199964150425994775765163532011886211888356292005545050530472178126995807760597217254067738216934318839809360741638750069786895525200747050195597349535280982416814548686484742124256473965418185003448168911480257292743013961580900306917240333674652167315623948937604535318654941943115260881457749690681544736638618838110827103940343353727090542247654781167716967391429721036711402935695418200934662549699008197253308477858897146790263386379969464026219405495078203624633642270783764635652609504248130649071463435661556006565789140073827721457253477784973135110619095527545136526743480604823969602851216371750423762977612434248351039258700772505767947027372229250620771110626138353176135744986750643900793784028574737345599971632869163296987524922551560153685745824132294872430278774208450808682023348982419999949182669967739253494135457796696236361665795171316206034627049885664767602983607118278651252026455371574300876513535946907288093699715963518364602681046331186382043674306310974803326808480036889772359211133357292412388505433854459564619202223698259631319901170475865847516893007877617552167621840781959352318078776129231490251641405663842705809856709521261840528496540236724903507599148501684081727672532316006592504271409141976213120409703810064341106304141535075213013235840461676833101299537990885556809593158838157058062471287427397324510652485749012762965569865667191571019676028564988133008034645552041698282293285879139358877394226168864757610550984934595079441561838634618932077152239511544985843912050452413460588302113304403102956533654906803826922185930152318851155760783796028941092907772994330344222971593894451752580860914370201977284258947755435774608131068013071229954793040762559977450342733597312085126989456533207190093825875540577442443836178201040177382165291289982876483022976861044535525303682215796426817701432976508248574221787009706997652414304077595107689301676395588558358802538454061431237525681224430312632046232471262622469226936730162330317620513585808494221139531362299837670067057219990108633564472656421310349430001388847543503435127262105145257973758725073578667265494590146565863750981137318362398404229543165718439820746662763500006164093512964384781895173228371982388161331712822320183451659857180989410164303530410154047477472986312953265995252930909438908271129320747112102579228362277476839648784123978245980060430656633452787120787355404679551085269012225377256248419139139684297432672422375497890020962539123434191912302220693055862460812947976102126120648697771410713500025928559102900976970648280335165259123895177097662047145522342645622616345423119073403560077448395363397189608104313571358318425197275139467377573780105277626433233135711212744002577854983819308136163630629653715502932183029872560439616895455488366036764501713795901851456839715054379509727678129933895780876791845660350122665790968833920579829927928308271598159323322064504727137983566198048509609106780986266240210518285124614715241236840406145870737535575031405497602284698188482991643037521592326143315166264495737864760665608471777283834200497984349335256922524763603579542320873825911949845412205026173824318530817916862739846448352305865656048339880160762951492193810739668255505497667747944208788726927033104514278013315460558312830975239565550765229620987773417849810777492249955873515657717105617191847518910340382815489531082717447614274210784724768699740909185302092482579445235151323190988311226471470842314687802525775175429301144444790701494971501043074215842163481114597224897355540283464417548689002057131051866507749320904421050326061199551733669970614754783097110884617731674869275972394651110319209576558396356366573023868526456836021680562889387274381232496902092918093870059048834889885093491833717176384773966806633649755667613992848418561017523595479045454113516804819447610413622485175395909631715246344700190541902893365360922077202681349367217128244765573979476736460963392631074161239978476685736334498394803024398195102201055372923758121076401069587964351179906449098439336376815714044257445658341627293864105733211838775938394650098004618618060409192965469840454025599255257425377418091776391314642506335810113514301688559214896596177657905096964046992450366343830888890001747162600233990130254468371951672680566487329826363738271122878041173508460731540360368689002643432499230654492488258116965105113925402122222138010677259044821273108574835729799120173877156053251390078924207352115583786629725183808038891233448903862316139837118921982153087044809470044168491526651298483341703549473744672479237593396000384926259354635889650638616556905723411082120716649671406099568823282157138203422515812960683874689837013613384784919585637306980200529438584945842166950418897787929746101705640012261406369052588881272759185507860794082993113321689629298786264630497704551542311672790106884669247914295271952046980412653806968435578854190516702516125430016511373694323059844401550706296318306916022048057064542374767164167048766066781859010930222879749618343625905873494206642836513297825894225049676385567260516693604319912433579182054210405457040701182161026265121779346327869743631922935974228681276975434679757728549702054574068106097080066248084404363140806907967363400947890643489182323805125183067526005963738605769416455846066810269037818574232783867640805108846322003752445743309040279137326906803503156394199103719900501316437652474746942784281212888418126095589843286241158330576427108391756542340297028942938919897044620987747163128640343948355670404432909475477287911417323333416560815064948743812195523534999882430782555493951496464109225469566560743340579380967128014389753291671213711675345719976285422249706524789162515239467181469067594140126848234839441663980317799440457646372118090858924401207448324669907778053932730914674363062070778478833178971003626114176738037086749820453633145743168984534328253242739734015425458743621750820576150049700095394793877741742809072272127497224589261262913222699365069047875192795405704401900022461906423194513221269130222948784355464845040850897800030971748811092090420523928332412899082540518221803710384856876331507642111765571849000333661373922985565320215373928289535459030806620104729152196434681213663834311926477618224800720748498334370173518378309330145239626067705164785767441869160803168930380255748353889678667456090665778888768804855256435185558790271603526323969381719865324894424604790963095004922772879460580786914598655160949031365182823506357931204051655933780083438359107691888702432442753109124528630676267890062774918265068923700022323275663853468403059868609479243643660307130963110141190962752217654680224926463257232156366894616763593024714235063856671299034539195291523473170782807845140078663180628064631643371694725918485449230957053089283072145848267134116322048393498475455112543200735779878128804344501739462567933034736377840751592774455939195572353043688561702602233901931734503685932533326865071127170058287282178220523431770230535843395006336623684054320752426228089501373487552998171410045216534393233488034676102182518952054810391272316125072114440626817251794561496792580818886909352888150515058653226231323579034204370999022690186452453891337879763925782825205628250821107943255224136766030626058745781888550952770093873919904640846495651092618919759850080723840861692867747709832361668976795342822923338852841958524875839694726744153582770977005245196721922098105758517766777286307862255633966707010462841763191954718021131171563924036340620759071439813504898786967541447820427244618429117480041556349999775947960006538677490862791092123022958280956005975893819596622558689142472075880588543119698280742700481817466787660282738553500314277620582864732455581885569069924617186473870231317847606720293837621348933042982778098372352503830679161100149679961964864296003360471055733802463652796140665131724735943407545645188674228103250769861601877999764145305886526670054049634162095074248769185605293890196926554393356883174058309343883268216457480691542138215847650508345871396652461741700885117523527733869088205728626324240915719632019019391523493827988895075415290621106038625923408008786363717234561093050762749565292368399860165631215772769655386033138492358886953740706392937389056203686048126366199582997352653290314340720502393709945400300229896522464460363148105621373454532775194966244182734801450442282520870990371694404983602828195739163908448593557977665658764954741971966827582899777569053153606654275476071953685767299225674217518189943854032990432681268421567718842738668755485490044495786049675061293437730365779885044070224163304117320979626642784732783891190682062429574221260954941019045119648259072656560275012713802010418108846567623283354140790075405078033750271216830563095217753118499650600792453978849373802125322181413333786842685601615307359246332492015399813783088301988203019089550855271521963035653819768982149441641987540090529741289577847887111780208033012063837248947004545348721028063409396224449625120724485305500458627040094007001201530551105938918298322349298695986647396384482145903018334672109702750796103422816511298103198402832173089890844639641351655010486084886172050598712154729203992017517605503469447671224391791506148026661097018905528759714935186183188077794690188800210421010231116674942259365143922256125822753420067283756633854826613719981100905336894288549662092874078653393768891541213091091240324016610463654916216894731038081345678110953052090184766940722661286214482775810398835925033223398016313736534754302526146360981000685300010481770706288593676809177054862261407465345899505032109285108856396132365529518544200085870800771436838227681193641622684042657364519417065609368332094605699371516917381667191560969518347803112407266566768691276735133432328452873199998491793463445066340993174606179709157562261126420743695482961439884705192758613802268205784850661540424268743025510095564080850047788009629411966728674728306521355173995522437431334108037111554307224451190238666267114478360642272071843745424750781645081817220264310097147239225593168375797256716765363514495805625688511943841341002240888798797286017084154271887427086851885416903568621900753642035954487301712899673695505671924832037100109557827604467383624090087174738666734280084843919101666224005453027534443604857070706751119856280415433869654468261169028659003525927118361384270730181090456971902295664058152815493770447987636852602131521606395841291048839824259955901400024858694862496575357763275157014588329319196943345828904470098976086080801337845826112963833709481443864253277756750779550190541359622107604435264387855729623479106093750477825490384485040846976996189942576090610550303911766842791953671170576360287917889540919298254346938111855854623833071352875382654612952631211057434271292615103168568989645339870764624628445229000470734719220787173621335336788849635347464936183260686666951274023486505402223165045887142660212447498893408424514101180144700891148115034929996296660758946883849033831687343269609828611760110196668159930960133264056638984594136923328419199695909032742549765409920487968541680539139519127999832418833409456911057524420117077396996427963185720162296392346782604789949080712858570887168831830056614726507575458233707998870555058890815701520744423438723474517733489663234687849694426051069593295224174101870429427011633018715783719103657943531598601490664388426817136933471000085421734292087731364063285953031956516266998679602120730817817258213900057850697903256247998029946318230899205481770685708990042646104329638798888524631767299411518889523662887981994531713337184080239608397073462450965788354111945469826932245877887815551999534976797301606953299303099019887186178546182420909983816762093383511336589649387319579280908008572098791353067865050772955099811754229258084095220946972821684049901154371504920555065900891258512484975374918009293159386901132539115652282663339084428389727923920669539492669780742682660001958175521704371910371455275607225406529923206446166419712384949465540474996538818972357749058103798533894452961651421382605053678862116029631285025740074561316969925351441838059528352166350032587020840960945420190831320256471961207999035561402840624836610846340900204753675888717479335771344824156506237742172360093813188258384896469699502279184238304444231449103707034547219358846671215052780316634318687392856205410004048992382157840387802206707157869918089804664040351501940536683823940357310238562582555179847896047340633661047229415785967701240318618910308708446895736809161870648857980108443737442053265321992127896679367503967069603337605480584178587135674412032475813782374403186292973847903379341092474535395074230520564078582381622138948059705162766339343233579090924884799225027633628242597417580961944401330027503924694367447910890432980896137789360303772514521401986454316162283260990401725900473328213454198975873006337540280232303921293507529872395057458174818398473088165439402153434118518101649156580212609576418876803221921181827502398111485486449875049336771924818536009075700085998366400107636775371524211146844019380690234173744617602022889324948070070851082985760845061129269732404674960418336456212434081309709734035052107287493648221979415821366405559986314855801149472939514950977217451043753524979898497763746051002043945612938602008373472374626883488579818177220156592621182471313682090450876087724421023168082886964046470199504163556830627849233604300242535747957112472401371274149213679566846423092756288528553105190303774909826245788940339620981847342224879288111205771002179678409066796992743288553742314176941877345693368552114365053043017783158292385021786370291112480043670733416169023638006828805466208536679395755403038768064646714063234844487139899292813281435337802005070261449147580350802207706180615749884999902688056547637975968864492680795148977365919236732115051326793032356597171374213142416124934972892640082568972483703549140001282611802025749936250231126186389334520486229728197789563393472654085364220478200869494510486926065561644835071402133996157749522676067117333372109469428241155617491401058586690091164996285801136178042402031122361942405204607009431399115352998559251601448867690247918650176965476325206487253391333803760262186619943832936329959369574780258871623317654377160628517126201390684038270887509069960090283468693142369497621190620327528231770154170012390079902239560066124963648698535321868851268953133949209344517963086127799753198433954775519219695900765778850704683683749499673009771668394337845577318202891966880115540353935259716720310200829008793814956561345071961586616919034974140117452585824243484757152367350954639931177990135234897008259707839282281398018396310366788115060677308877419858989810170688380626551438194991716842039578432507876432594469657652331868258887472595392553574153016972186390496663755124143284022781867802842328477540406495704239988574248007342817188312634708733648650500129688435952374744060855753046468292273351705869215960006819208850064741280503137144783117618864610794246818815137100312455748473369855411938357122642352587620093554967531633057764348069536099274619823353596252791324804164976650420499013376343974508824156818215962901653845300616682609789351060149026257400080751637659794124480621285334192427208084066896810141195153143001911997157721732455281161274001516449962650525782467686665563363468710260729621862551497476309757444888126440991307887861252303082346528234164700150858025292991370149762080387877919532538290983556816308213695346908181374404058374363120900975511092356700410463903971274492975341957383791290611903443849048965065971842606103955120188558366464259313685018422246611834278776923334255441205790936275475891385172549245135605749042519840539448941841570994869445636187429750744113381889387894287925912924179213295706827777477884125332188507871733439520508271966776374598800187350308997081408085907228553142970056565046085539623577829779433472879094330640611383422829802424366521377854120197919885322840493948276750802754623068344310315842130145834894298524903505255969941610796566421592835601883352255134099277519544894982129266948240248974565486981674430957066858455891345811302822258295951423594656489438271296588255403182670948832824055264810210101225567477858706276816223484103378144929045934676234185533587193128932319078374649909233089756523832845968467321398660971434025458006107891890196242220478906364690583122201342830843847704881129203009193456047423525658263514157342140595475914581801275647338636461566789752517261298258871460877443174242875546902401124986107923071080820232450184883956475793856621345795366291960118746068097601483327970610802912296059277584569775728943867516136661219569068525746933063980767182613864376845492873490854582962703690123928545530501843652060285888585763862125011619092036413466319505921921270631960928861426997423596468536455759775406526708215642726728223046608262617985214662772720780397570244942534416972219754487465496200715738504216885287086184183386413379306839037632616298774730477633615988017359707237478026682438287681768574295555928310031069466145514717834483150326148773780023509456675459960978752993693064002013826908147553804281689375116798408745453658194241764411361983290500177086784342789178958636841939246140918142751385195341945710055948717462471156146872061439253866365018188972800150258516055856673488624604122044220548283451020306851866742966415621887783041182965117061767765721035626458053436099440615558964461217063631509899856497935587633409596956319437402435192205872457641344385426678898032925672818268707800519630472876762649788893292836532460015431028843366705480834478164284826929598086004331491002091684900406868778943097592789616174516696643616748948808975390508708717954361957578650599894289384750564760608841443321177996247492805941358854695157062765732207659284348091934742547172437185043330354215964601644566290887993553048958397269907158277690770324456733396145052233743834645372070360811055878297884435324117974235796807015313535726146225916927547647954614340523667524391567272519999065134046435123450373354756412678428172928960838931078960624968958156881017178269355400111925564617596159326131404714779419445845975023660688253409370039786134575343618841846997106194143866205533412107786167515424345490000995231329526935429880047928811345948478607638702275838865107812619081397423118397476863387784718830912679171213037108943557128093695200520474208819492214505636331299408401111584932012773937272330188563831694995120489328664581502073076326328956894728327366406188874673516541951770024739868899157330984653312423202491393851700651066146264911478659316338624281185773722488332079653969060215783604093880364082494384331375182835364679747659545333082514046422962891623152637003835806284068820351431214214147109397983082262207883903685607066475589167216953858024109030459420989995885871358234391352950451123979479931027178126705504516926280583194132422079438315519720576504404917524859114775681571534231511005413590428922673851386001810815893864172102114294914031436325369747590513983246702688492881948038433345522191803029970554815920458849320697492148090879890957826832142260563668312284349904012383403530536137422942005921202508321198617182519761358627517777186289605415400475669860724312514083413400566567604839563839108082275988601647790526889067924479268760878602784395690504371575914076098952169263014048074833873786365710443771628143070011188753565408954362223149255756884785211160820511367646761511493830496208105844765826118855366445820441583033385617017549443957073750562296580151043416852836444060226384392007172238150408850683914068703139134190399506541398126104586782959122034726724691790179219838628500726097220597548841956992792149533121776184662042456035653434380286496411979219945609514587518634846522543219718475101421563456010010449959064873079400473244588991054818742115448466120004711374893026790219503115830660164861969711826276264408892729370215445699044771995442128505053415428392703071728268215198391513922111174310556822367784361686945225665253380707927276325914875895385553023683465552333943094025316183339708527700162148790644118011796282896127064132269732498214473411103179721672946487246578202018066668415381409289612035923251879574068900968889831047848674096841845057220906595410346958303896665267165590266132439755016317168227820332262696476580634525226409519115976631500314014765843516844760542313185714034627857233487961178210753815079867514622355471398313354674475200448659739435416996312491199561692425564725518348211060557649867844516082310166259900896133308106340714551079146512355109327443533703174695081870970877002626689214938688922218049773667514432723776017442746049124326593969038521445930233338884747960635286734247559956277593044148366328215752526500174509377261954991768143734544232980014887326341489428904781223363717831804963474104007472461849161149994720908122808225633331915647083879784777337857868351218731578618732775587952796273026494325242541140219137731201486909033643323301390835037357227982115766942005796934195266883393319341790443011710810779099335277151935391106826176554074133785536009856128480359043414292773282552288869484693330686764536591676837694943333301467819311719873150407363657222036999307044205894078071436614706950364225879961404641898285569372759536658515025183964890795028080416155000166404692369569999040685364895947822990751331442949060456538868164474960962886122036107430970927556059844934866044238706757030099489161863444579679140684869154045367540645445588025265606107866031365770254977008259502207925826981968379306552921546569084649682065758614005990094216642322431387369684118990933992230388596820795788093858415152555997309718419821190688214193316562599135026855679457009278577555423107504625665418716743605090883736475085562361743337340991617612591959669889988313139132787267266494042821000973677943831365680758029966624214524698391125088288936972173515513465607613411815970946374069855274788185652185496976004626507314277845537873590194886882220439844060636251279123250993894662146190961221974753987741235128182602916947631091944447025176681263467509058335059116244772827738682351839117627713873188028174671174294031871940298092766518057110613752553430832666627985894770540463790156643911208500803681442824548382073303242802467509354748265647577674120283627839706857950718591393071176118520197229842054750727638080386125778975227050061108371833143823567032456587735225410483251520669412038642393821511754844917778833118899589886033561825660489695872695203694173528850804580183523296370604499417501355788796365822008213063791800798489970251342372792045839043083749265806977023596236906418906986817140257022055970179852900948234577563484328582843194222591322291589398295271415893877529584162461895497143398840820852359939876071985756663125747854513418153525130415644174948102056782841019490453212685382070874550285268085368933752163578738300846292851408614802284044047683254803979831601026886644660892245543571931305866792238751430227795659167945267726005012327316139552010879340049287434244421198724248853666797556979956880636906553175692360244313093422012076639541773181096240049328646909161296714121409903934151323059352535670340366629577285084986876685140851444969979157627970606621814247058533980186898954778679782346609517998339428957538588575925491655205366740320151839279202852316337368628518623000740235878145726336216974287051987077916889466140037013889461553038942441044394482094929288568951615346933576719217512128367215158921001047530132050431320771016690608693750305881811783459071985256881833574602487501345964573787721657516603881831594687694749543363229184281447326623044963316174885331670175152435760072523093972884298345120760729194499040063259288368258939970512602573730762213577493366338731204788885876751602307457076506051343721831634457805944168357040696788089603410206760698672695985145918104547703352975564368033866562048847742337258021969834360788366144127050768475941916191214958432503641250852889309159577878833015330412516445051113133653520301095166685929262579175282500091925482512379913962185897359265183374618432054948361530532160777614611421513503277737401659632754312226079091918213212648702395644573917576949210216698323665922292919810316016559284905446290169168297399610460317884634035711628416058545557764336875646083706921920877651256932046655493937130463666054215135270307710959548976818744094739378390658055188306438516134966747136962268382668810307970727124274620353021886585507522433649642344479417093859441713685524550856181825490617854327354404683473976720103076222032137164486443774827134234709576591366737115969005271915855457118297327170496502460087467326020889723876421385763375692693953557045473979312786374804704779543959721782572553784230786213908218231564181732308082997879709461022906092792023698233698637830512001305546687717093313016877830882147023198063466630101026465709985890982319322414303839807938871321369704786633373876319557931546838325386101493965800337766827831535813046355244348535834428639771107296145753823571265619959950930524243858668501170208090825655607971409496608483897192987434236738302437592966444247638305876875385711997105332458773284392111060731058587829600494540350562338321131442876093882254373635697679549247143296902071983378482560680824456344286117460234350758790742183052925446441716887129052406689301772803797822943036300366019624920297174924023436808333339622361882871086547163722493984662973966414846576717629664594903803608407281296632412199916529100891673691288651422514927196335763647552432386141422413280632504452606320005546099336005141538205275670043126046165199160753214099611058451890529809257098703623545009382386930374101275987373703600370811577002224545490453577165565608048947126952176922647205597636247930016821144265601772535426289111599504156276946400553144861008836461067517716580207371467606736415968940595928964170463794463017932408064233295486546280061521353813645321534624371239543681041105155257463144568624642404799040792119144061223763350451106929323234316718893134227395450804950120390213572413325934993935215689692358380236147250601050471650445499896592157482319427104799035138715776236717598286983623554324661235938266463368241151283670821818125769927417540815169658771197897213634929175223264412325998686396084768743067908903154345463836563388458796563242872647425885837838581836698493767044143715225000906175677398598525915268941014353143015219655032991665010493995497957258070544686004827946337102927992859854494076268896564130173389519933838723472635171242545290035617706325303097060478648700744531892727837892442621749242063283692066555637081670394297605246223921221300991935780363735533361268947141101895017114715256841414714704158719916527717826782188428945698061485873205483827943104154928241713249291425219681199783139027233320238343464538596942120019932723098340638199791580117840108360993362692992432615432963506569478453754995668373578484124928225300273988485950343384095208439437066774262976831990969089960422901137080354784169925691674769241240383187799333835079970748413221742807407170642314770365666091844574495681575337632445653035385942038292454747270084223276435863881503864120758479893849398754644707990258094634483293382642809711448827260902937239208339691425936891949236693514170562375857535276323803812962985115246849217578571529080733892927158158740767684247972931619348279215315233464145204635452812786040121644902917298810584883326026247402268063964502204653655778489211611390548533393386095093562843887809444605579766877853163853825664814401514103256874397143503028926961966109617569553742996184773587215404957972336515755011892091426558917143616238129517341580728681047200457560307405645909357698825965329475134042608025995037743350693929549215338960274783494978035247034439423092916190808952963273330626744676492936494999665296377736172360149665499500842319577309328106170099160791798807227067977911196831412677770051543352897146091474395788437045381094536535708309813554211113393390820902443270042610235729563106211123921753823803742786557966585855575044764186764213875312247111749934985281649887423304742341254919725331060242837530561760004259477195649206923849288571051615619215882786021341691447425302673375747798442424757832407579145998373917341372825855357885246148024174122606286864157455440969830422965801418769234830329986856133679451758246909701605588592692824522914394399242398236692696091862979415200272079931931049341775462067225879339038205250045141133721580217263330234650151745629704456217218998941263425287198458148728936241848808572459479045127106683196519319825628768652377633155014918400838474051764307358407680511869007925042436900604287501379187107979346888903541413229064557802461236390427377893845106550001734693145182044161492347072416083965246914425111788147265584252875229663901072833351168665733315607614263550827388462274190780035655140324441983914752913054496027500027753212692852684856360396425411929620147555829197743108161207477145581273454723009731754930846330124400373312190371320596245043541401950009920165231112494302972517683927661735503807485544018358465044245247803946261393037225880314165112509173969217937823902094259377482364618380958825704950208493524667108272944328965940737601516935053623589303701651301910444841928376216237596792234958718984812288817879960519985577244327696097468301673528729112030953766304698953750603301872598469643497449851610033205996387813509120133841334988834128021100925990565436351172026084683558369469983011941471540883534917236353435965470556846655034149045595082211360384460821283998987715902329106062659036269810997920839829587558603239960064296499525818404413098254306810508630004802495622727642843966345947512753636822601896196337618187418213290573703854218453601093668878996389147526240142186390299654124518268868993284294468416687651889403933737548751110221491127084790847842220624610856294489927401109881853802164923226929275996169954906553378842222942807092869889412582406330123272269879308118100486432283572580342284108584427862673249422211181688521746377532204688838391564710963657825879645030403787239103679980009178064686601066925621054972734962326012884566732343876735455860640530327179514269837296594982710344012741869442206677589069837642268843553382742077100920608094970797584624522044027761413335621787042638308571999859978701610567491021689374395898380208935514622696467192639740218121922829283827461816461284504421292015118580143810011327737675713816659878461076801587441566690635159605166601318094995868556382244917001508394213607532113745547657270851628447970588426300687393863015097350944407824147865845070948481811476054798714247918531220556471661347962219589501616531607814749204226306180912201782677622713231609831665393127262482727492967549574213496271683666904382776453662045159657917469315915061241933898739580768234665597716628308751872377597174949659859853420306533119793912159724575467376355184667315843976834185337623438059182728051323078696859022674023369326435139709115781218118744741226609116041806910099859395466611412499924815712566039439192753062944793373916614505686006875828291608589807396843947931583783092305179613098525259456279570002111883718198686371269888110594263188219873741745811453491569897800284170760423520046634612674964246658693657404133767497230806104313910056132705938608934605039808479614130032304704881565979830290545423815988972413648038637836395048043898864375877169774912690596964350710761789626070582483078545045223133461772340457343508266149837614527874947361977718983992398968165032228752387726683290945683555387109361627262689919638240277985367937189922662236528522667224365005586606037036654610269017944292966688956670545111617588207574304450969857874392234723033132908062630496117978263069151636488000544509168889571425906502106917070355655200563835320778838749585473644835412906463766212574860104531775071387572807204068271447875878299580644469892294360160494500581336445649011324458635081305305537972701585837236153439394455044513864612432928554442500760168651031660268331969537736664900608357430206458739918177764946625703036210214167130650803328664629140609522999289013766076497588474138327855456622038044277485312792464102543245593585671112749228350131366282845373974584849179041608185723060923565086187704078450517235930749659686925305896088314031959208774954009891693949163306384675268157772760770517861704318813569612129094067728505843610356979386509559904825232945611954172982000452587087140230246025477007484213158372874954544508096893902149661326801768055608678511053197413601066625201255914311774665178268750795305098086956179642589619544220962559369244119058128996080807630791955232113725089239081903714439726742159586050585758195009356455862717983613544477505467151645390855872058606092345870405372755620566665765567668423576262203893377540750137281401504055065002000561646886127660815330354963914284127879876387473366369698168316467959369843781980439602779269569031896915298437550451397098421261913056015479338987212519102978523599352078054890149323803472872369052478903536471362469983733375008732361619918705126051503171650919364449494069390952983948197116182778775136223145944102798303732386616251448797614118944941411881762821855750385422774990719600267379034164187154599320492150337266580114063688547417407112152438691001367792192600085141488786429710898661456675932468292333593140674245732468013961828508525630718300636849144642949784489999032860895730110840445265604370257955856676446530716204343960694251746495902092071438816124351253310635431613708615275965540343985120073696437565969893894379296498283537201274670917379140020070697904313519827902300788964959340990432718155693237947102043596614866566969221493272543247778926090762402555262829828592450442715931796702219588327463152412158549874070456040486894399903621006892649848830161881878589689747042653949962601074639661237741846174385479726279066197184212587475387464632362444513647330583352308594603817104448669200847701022821014840641429957802917128022320742927211984047690151819066605757737077155599482558604205565290850903739280178060327188385247554408755517081080131259513808611273769490303859391685712641867083032791541402557830163686409022560071638651408127664087094889537334916449304046386929166856939234933162148242599151266435472697712721252148126716488569497033823564806409218786623869640503540908629419635014293725728672035862546259727085400872619808843839326180505505397524874513690474309270440652611246596749399920941981535461524050529825711565056440181847632630160836709267708976452318063346691360815670748631455259790033730509828623440354867884335675174188883208867229766694683971335134766485186945529410329921638850297187633807382372371891596035107644457985968735158121413344758574820388901534214305817116051589637607004305403425438053025578507287937245860002141062873876726257325072231390035104586330104631001006760539690984012964260945319314295928789564856095973647224866084001866489885651654213382831101642074226352030440803704666533016254869541978649917666307797991435284387294503776749468129483957646022359204742193411750762789105181123281256001359713615816909010076411090203414675983532046992284535547445776941026549705371628705043405827932494674125827752107765023387324752235899040451593168328657068622524667549318049998594045042551852942994747102949251433566957778943618961567729368802213155675745837446810246209959535952449088213778665021082772476091012255717573631050548086059311494346688208779299474930590233114446984901553230889605621533158419079921001187702394012375055867674043932763466417191576028188116301532518127331742476077980154399977288077840313438412032753009292145153635844212542129131527876276993712328770794216939087205789782887870723588873494710209031176505920680750070171311422632664424126383087350878007899508275106547164243429243719789506908123531719314975719474389922004544096513208440182666234816903803747162294914229448819280080648575460404266910095395345285500610444726793059643099685641502507975809298704667980237508993069973178613927108513981132529910616997126658040625245479954658551050109849453664282011641235664457975531355091085873408373845515275923575810177718208543078100434805949895485127781575639139020634741099406062790138720004939439884199831927931757677593167668564363010841753232965645659583765950061978846623756273966601535671776100529523241514365131150542975827810652134328867940790494998079297013636689058954676929153799652976190148911224813384738629575403943946643510417529641389683243010359688998705403018999793972082739223827141690013551084690416712255116318258339986153497927941460304963180523443791736143002650997727495431914276075139381551940737658414159274021935648245397242579293127744141043443214304490187636662595981511315685184174380593933941092361869967141305466710796768810107542649129060513183403093944655140083875465789695477414787886178053290102498336044941596234291001608863270707628567078498043387853074083458052623095152524337452149705681166417033415779379802471041459475000508725102843705569152968902897713342053798136292272591920659638813904980744621071220849837543221472878219796859375738694746469036304012910992870455492288198771969775401291749161845579580564290268576979886986678582300238400341966286192355391140638551398871863778666065311974290371389367406809003755796477840043782898515137486198225751336391795014000878349891800029563613871902532098806754865893637119681068412735217958111500408154078926473448203133408465736223373024612317271651059998273441468184387128604192505671148985447108881615537815276971549646862118190328053594506461625822120898926299581185269683359091335458421965989210609597263317289249827374847005234820761198338219264382289182875452925610708476766072069963987196568870105196348803637803396230088838287359074190332170655678115605774643164919953165175270805260720837372158522373843831286322942392394951577674762674138064579035571727718940065131829195354059800152259864964068759814337542267702083683395152270790974334828894126563790560280060051870365950230638834990402153679416832077329587585495077978083250912591318829777479354481099622390002776646352941464570891820028295150475691239702704782901192633844230238111300496573764285615801536919213423814738953726025106739510820810143038027172038135182697970165783483355157388419215758372970293247552055292935434756553581494486957122762166674324850961898726680359266769704732552330216381120179426319048633642175482020843426139682205501815835170389539760813108687404003788589016294204898218326893701180299532776976230661530246071906200805037546729950446306791580303939749841808625983142191842120926680417417907598034627019651986877229490320210390285034412524439054755482907891243200217011735525431532163968871068306148225254238980313645716730068247059833526562863736581736762873668066185323916431251125211650660450663129681366770420349346428431067265356163222193199318726380202325108694547363323292371232456168952425528704218904829234150399434978373009974710456836175697736916215927724988590255862103482860852548915196649262796783392665891521717562303354768024703230915921732895970524764944873764090000873477893257436773600782476336492177824269063067392341554381594539968030767594988076203179217431432453733756745597729518004337205460887755384439971536185396147153261553826065890307085920937796462524860188780432262565144109218590970432525320868448259868034310740501025263799697801683200382597401917249659236350633770177198433177737129367823691519898967337022446270363181126725254705572625036329013855208269595588164490406593490530994307518771284538583652680976251189811539933074804214796534699494971430266323855701341654345288092234979363746689943845847765487076074966644478053561725126885897107082109269335694559581481323800486425446057354182131917817438302992544761012468313865009510653458492363630906300713007498681253435040082043298042596638163139656005075002648715518356574790600064662429017484984070925104663264468948649877706280773926165499878593311425039037239899653433196172349019565338677853004384443728689712476057307422521228700256818087898853413757544394038046105774586568234875822175143299182741525841719054975313435308245641090617599187936951077783180853159501587467435451658412352771139605658682821425295536439096291755895028589378713335729149558186228592508848620341653521762765043506587518234290985956169739836090932618098283972788709411296840138556689065386109615052934062211835068735540026130750649375867234882646184328006561891507560696665649546225966758038971395897207972772605332873510204288727606457306795206793409179196730074598139065816566083370914249805586317629483518216627729994371613631967176729908145760390778839741418382196012229862990463543183645751675998598893882385908462205866737919171608856498885988256549444702918727743654028435135944938801632608362746519635128631269887605303445152620208731922462257269589474369150723934500722186706531176682216885123869670502937641856165861800819186849069707907840268256865413793266951849064275109139566591226504365257620887521009200568617094062523135655977928147484156661649823143899824747402199927442348105260010759651058325052829193843755848876967563126203632202344199611966358162552664418126865872083551017581006321663142704730787957226133822515586576829897334899511206958346715656181938250305818132496750949392853272387076983221224692567296591856303961765953089354804826424507962873587042836697773381960057349653445908577497664829432739655662307932006638934543198911688326384800647505892684890860046618102846033788741710570236400059594716651908948862857084577424642715608206065899463988135576940439135567353311013261964694540026239597296454450758964904751668430992212625676733282309935451412009823791374114697529481526332855165706956189051853958312304024633044947023541254997901027915320418294607555225851447669965285762754302187334278888455491524108063917554318938093343634983254977062270865485756232523596539071312004785025858951582990141177623894197939310080957012303283636110127772565279852329401672563900224939026549192204159092031687003637993387190374498322610647070375595288116152387697477961501486544748221068129464493542352424839017939565087790741196147303830078491624562191330518490502693227714335542741571186650879429242015355018921415105253160509003445580077894126206838406205202255281245707409992592778428886321489168468260972556197468385861196417883403827675436419415137838401471711480560528417889428816894041036277406232138815562506169970071912150866152663091418095400070323030701225918363419395388348595319568330895022962095870186852873176817060728753169343421173960203660011352590932129289750628106392033343209223889097642797318409369294791159840071660045717037067174541653399230078121794907311564876352701075651321001425607228085131844409256778508475788881671043744479213532594594612485804511996954135714270883457227213390598967226700807660705759306186317081111601972657066696024190618962623485489094675911569301736816725257513240102824190606340799433411682189440064633923140018541991391103362644555056105936452059587569284173585515755987631979031708043234341216935274642678687880775273827385248453747474162720286526198119235963204539140809598319774486963850667190702988011331357607607361875686998246652685675604953870747975688596831484989557140866184893894768607295281117067095801020030724344904284792623635588201907764182552245625074524165321905742793789313660119937476491200338452709973860401393371112746619217044779242845111913864882996934110627780204198426774760169925306576045156894867177758176473056468647936626240280620863029394169146730357819186282216088553598271673927841768070712745645806604659481105428528146056353490549551930180296888527051454493167606370442389739743399276137631758879391321002207430445232261505609611253113086030015226833832538190109809661890552886439176498952556498869915692941108651163610962448967150434877932952091832434929828371435530893716918225538843112130353897239560882997832825877384469768212998245594062287954896498849646384807208821192971062204401245516626520604493204825858274695084762782854407025513873351060663298549306861595942967265622455113681490167915536560994193519583461792007904128136215727537484905162028399082935336203744340808051824469940287598005294665562437205351525114667707518951775638247801792418069093348154361537415101040514899576642584151941589750247165739391639173197227674141761631368578621596255387927935513938831621694562803028817453899297473868836753333593884585305807346413490687626671108611448718213388834952847511468539399577916858709246847844125817427831407548795089433970561217533139079733076653599720216930981507020863058004755521243685844487762187797381386492997390371727907804126252618912908955643124727324820549513177131571425986992060242446348683947589289760036316975320698565325712531692767829063201868188672925349622025490345419605856127284947916501848854864521536924499918618959174821293753225292188861214103139866737993273568713575513617665815283144586107813559043962695720990033033850561360877532896506678860826395749988519835285592713004387045157779592760019579969040866109576411895635437208256887816934126432580213956900792709350359014009326121984792893905176760267960722979756558222506084491790693026004816628594178572896447815776164653802875567638269898765080222908057696762350563270655364431651648274481775370454928764681260329994650410249645666791563792109292040410652979376214420530605175534553609490191311725125952862282704771254287214290717036580503133660522632472634043991287251121584561262756967920654146372770659769851783573783474943930311643187386291099492773528785300608131728843463789571617147965457419141452748750355084324525481049665616388506768647040066027346699434532041157858729193628205891893309229113538997223827426715673119089655603525606382535070362296994025931500905885423527436003861740212231100161790221176851927537611201932241249907484334187021916181042056034122864499654151234224000503958044509016412266485525518749037969322844425401792203544011126813357820744207565505043940598553854037585619042988212119265113763951584953754268684974255722404805625051935026208205758802781228720382291139793685615796931000056300767853230087200347595349203224605363380338942959227862039744462338656704738496293763605797098200265587462044796346832431949028920504578645931642567933793624238495642786715009396497730437505622581081867727261661594987958356740824002211942924102263687732074194881924523047841251948818312968560543229879086826831999768938742567157945086508355315060889084338822453182663665251543012266945928757031377897466880217342987830545682733893172460055095666812248785804957218702083533167234514868146646583533482261361109147673154707490246243402081014054576342833439076209975145905752700742153720091304922851412772732535207968820597383164322822877666779380741274340395061129946193689137684237713904007301493063358749047513373715135428215717289419260195040651067909310575514613651916129955918407815415637530563408499687752379972127757267364881386447557940130086731464228647899640369433504164221084989563977038324751682948970504198132370528176933432193528000073853136883009378116727676127499847397855441638873390355066520232703779401431322674277617425040422660832670770221791128730718380570622245939210517527340570704103797184738173060354045447877590649070884586255130919335824764937034756890883734545218025484662712922851543284114768179737948658051714044956731844164960955840208281230527302941410514827082363589246732457670348932513547648471378925866215663208301547501578605395831193457929200489648710379363188805390374274381828073256418363792955502089880943162279162914333287565016928829384786024743543012951692900802166610874151511646448101879046797250135223561605901368705746888964921520389579750571352508119193770550670630923346585782607856809400836270289820094679454615927086298182293019757819701946370381784715518783227429185792949951689918228701932956541654408018875960475721104856661211367755483315075338964312893928068819196885374929691488396399413700555100576553444223173706034132564619038706922024576459456583569182385474721529433356539589880581932657053251672607519683774510323979512177425918956651442121146298572160833566122885811310886490486470792952156146938794419002035101380463822222808937396980445552486551579485069242850690276290206743018004012095109884270058648195490090017987456762339123825533428193223823475247999903551685085762340665245529916743765281201109105296582229590152885455680666744156689917763659718203033585526095197338656998472301437664758451369011004012454650468695552399794448184025166355629490865013918080859816425802854806452657480754694692069041143651819507558342986389340148100993588862207717236575530870202577294102715805408076647082019697549610283780589773704989000179400312523790789656999642349484538625909144666327960930727007718086938870327476141040102688277145192411703662416440911245622319254795025535152985872534644112006591603748387768755346077721528851690814721793627133893372814271779699541859993378359823387964337569968246765376794953319550770742283137566281774531907973153105148271852951418782275422044109612582377507181218693454310941295415358098021412278173895340010866490465737376830707680480618298187602758316123475197314257393733651211474442465983046509866796324862108421587745459545712997431474977791078980229416374488953189187329441615293187605363117765693088330582781158747741307578039431978984454230387461970141266491236112480498224887094119045338273147852528728967472288805123070220311181862699192853630877903613340908501757366677217781932259040749630129848562346529217785406032672845700202667022984327966068517431551876209268200371314432539462291523043190341796761617561668849436848793899732350354861852423089100333540105292241331202100875772442591781641499190433538338848732062789217578560441717384607432643325085333584863627674867161602579397537639700256936294055883111955713636924136553116000982373161791255594848003716571057378690825598201868172288281021524775657905201276394852438017303203929464684792462898596213335188857777824966968510350926448305268740686988444504398551545119186036506583314261885309139947795143662219834261372721071858987950332100987006317609474298563177613074076466556726648146787524995803511025747825893967273804628998455279223286923628310156543118098239166490560528266121985188941586100378180362433271581219895472825075131529125339451175440969423121178658505103335905147254656992452703695854747878171014511316514193092370447532667018227173846657736266864190828723803184473669711914752393044109816369965327216788328004592619026674481882874532178791251241957962800765797100707464274641462940037279459927054160176795792463886134508350965651980823292425517124495930169683158385322696002244469439048364529648152971711381019201885954392423236817593367677246346021169983552514861217286653600347015670317148460087422555069758431988567319661175885927594642335359219495690435398029312392218056983454435040918184582703971114756542663793543490735004008154244293893822753437119360474984273277614809053040069969484835220207243509771348981308464787978386573997013770408380774375504152854633643114717177258193151913029804574665807114564615311915288122288127876196790224667794359162897679739235485595120712002689094118393200056271106797842697647085380309446440722962299287794009573863814823639946546736786691938121447795217658366880449930399634589526431313467994963866040682138871254592742830695257672105479669587412583701928969207972055100961323068117617446907372964219447292281831601013955506569444426560185846120022403668536043260738799245819403574478084565018693836592446803946353619252433245749216209068118223692985499778617971610682987369556917933755591413737740569892223531218513432320579279570621766103713669110185396341222941500834826746439131865742424161019160633211582699868313389468171406123471281153718391578576768592318584266426001158324020029426780028968413650846365556993435975463779660075582814511366081267502911147923544430483348814631184852908016569667763486953389977432425585246753415103200189825099501380628059796114869753952739705769065761754186078379004222880547390507253369819620292943209375323668609628327455180990143757133083733214633687203717063760053474890681182124892997832719459747003685283881245331492792306090756675510198613263923590697250267779743794963761837668761753931131112383896011375486409577075494993021505133292592219280290862303552592383985065178116114674671642763738869976786937294029936413181229795985624029329800034851032937497593099721649305009266402514224741025922319310107787488844540219951981902554773945832960461128164148892874298850497711130097387509574038984127805459067937559631345432535768550169542850430814361838814766936368797793012677121759524736669447823230281101807116343842133184653341426530732430881003966335098693238711521738150120519311184969274402270165306925013164949098675867990292821049206488110803739341965422110161413384320796453264212056163223889607020447468028394127034909597340413482889629455108464842518695494794668595524923749208306617452941847754628648590049288977780991205797525541634952568154761614569113896324301353351169322253905294320605116375348963180297593790238291875520563967790032016380702165563565248119954411000292734377487088011055731180017897507777325768302538630069274683412749339130557099621769161294675707033526808101893680391622027108662973534720342740907759146140814637622111582248728917016149189115008445161058333510848326292287933223916786256824733028450914281919906002756169231415209564797530261121085784394552347730038465049859698631934924486019536468945090886717575406693137936796965046743896928810662576240403372109116984285077395300383764952727133682918400242573605342232501614164386158841690872886523675246503275857062957849037484753734336281295711924278007569222320921747209185037414465390063771777539690751831577441639412264384936446913439109006253957410305684827816113409933001730489733759904769834648000953913456478232488358901818541631439574088405761147024344681980385610303960952871103162645824509113913155267134856809343029498315448454988956612565391508475273525442795602231279455930177781983846191005431734837828202780748136256968035240011583796094444447068130975103269572059318494571945598779566782766281689957673163444155453304329929344562636639326959098796783495182633880046441750818321104831711397627344083238575046240303167242484572078289570566786251785970927997036775804487811902900914418362437635517526216871924012867851557289744742917618256505937429644127092809546662409903743756039686536821387384003629601836976905028872715022514971921892806640329905336614471526517280201757705772190149751826193026627075688185882521315314314026736628627919344703612542894530619797191867432405759906960770428807332621667799334689268844977291591283006199976908576475928272045363214752778246316738369000848512658850846580752206095270617053290785707182289611413036937940184343799517333348053403448012769382022073921777710594778747907078370073811420440543421802655382405897734986933987907208376664694483819744755097758620432652415424679151205748506748212697218849090356642252822412201566516718090150786277753598069926923168007921598317988622949855968031410063080536245475869643371059184985503301098472468253806526381613615405331569273995912702527459344861132331241978863050804526614871020717786601829356460572108829407228508813550190439767994147790603440899803326184080784109174686874176088783026509587437328447737996236587062114409367483132458938411182158083614552221606468038572210916326565144159105282339909417901285543645501275536654215264531323592650049417837168539586429464182933497175367833986810828759362298452339478411040180367936680047802946390032854503004594138659901444812374756478883498120091572164681009318492780169676034205339491374281136822241560416636816313328143296864219815074377325883068991418357581597725214567423290707020519592849818886003518786184226341673161566969820148287984416301362425571116249988697285118148804488729538736099664725260354155592859243359833847881098295902992078573145317173581189897560756619073849992720765680883799268798416596281341981648542395213613154212668060737697083022804244086431189512901657545195643949181126473460139057715476484068152692537789384150867500416196644685219832773391775477668979429474296099892268240253117671513555425250639105287359176038716383867420675067464145456729422941152339419042449690166346482454210086515692025329077200689922043395678544051026617067943816509074375288667106598251085791454332318854667414545889383837464269103056191711360479329828216546982637377845973032294091372312987038945788766027912011368677348635512946039463656910945051122442898781169356837880203790918984343530560847234888980440637267302291803718385348218597521178876383891789609142076013995667346027931773952300994246305736205057335060805234284837495675420718230063418707171116029996108582578507667929838043434228116905915482892692137164594991133597839224416275525384398393492744523658716931156830261004235562783683527484286233170096934687606774570555245511039993530360457130458876246228629566551378071769755652771635541753147088158821992635979983097800102488517679613378327381225704411403777763583078617223039482157993965521467529285997262134794696777111350768943720411636489431580101872009625832060789610837023912059047043322482960536675593509753810797174493782947308011359470712101476154932031248260443364592681587782707089971342388978203381588254795641072272963212201524559777776329970483287739144804069793636081618227952437269258871566335207377253937288247549221430503142276930982848722945549303401513437876419471600592228608485466714170503609556138553741028833721356586043249266290954355346799189756375391604351839067344399086570494304988743211545091554032321399451821618027477057207754794897980675327067374130592381360969962266839712412188543681382290225554594536589073674833188855366104006274289659764467756442205054014422988154171769871553398959498122398468953517403101812760285243645561063118937173566088061950482220593358081796084123650557903890377997302313609188290487867040172745181283943000705489145342603017814536756435578823535476395121024056056074233277527386858769566891156843427908656684526987364901307446995047870359128123218807254749437723884597156803519031934503467616399690622488640432513203178263579684698897202562907598925703767998768078636819217075030015942919038040531816306940387509156093680521637916586973570816868754869306507044542053346329807430801870665226044075030070082392504400021201676646479895543468649001683601841472203494546951954348908168452152058116356310111021271905602725520223540084446409353050688172407496980677443424315041513554716643449083625508502999337447143823508240496689556947000820533594331056678851584006408790640461355069802051902929950300967289205396754575851162614148970461059818435176972316923579284371137163066536664162213937185627647779966121660718638907173126496119113923482448990261903690641239143001595138028986771317430735584053592726024703064505235694747454206946590457861898325286357217799403786620573158080218849892959205092301713054188014309360076818303889170244867466177536083097024992756932305039450215121338260789628850862448997750705179539595107745150443173642362363003899923578707832838194204938810117295878421961840721642615779994732623948896457047425565937800286647672667163099582954013278456534496528117271191873574411256780677089863111340746056817777228871724206846033654853719590615439193848310165744625416681740110549542832021842291380942868224995442359569067082763981460578973697576814160003848057088665983684499357580386292284072748168387883522680082489870332142433762702061897270420839066596869659400780712327759798784152837100237073390941256015593438140891072006500826006403448457859465768040587177072074274961425113546768386426491925898206333206254775164863703929707948046058605194835524961319918578309483882970557860690952766039971040186592457465843376936764815186308393332017979610272673328403052667325287150711505381184189337387679759040436771260043382031751677282368118307976729698478376728743494581988972352642495505891961374988190108013782395657132229162055758575479895064205482086081189817106325848062669498388897379711960284027780076723939399495341784796716680431671058127712247539237606493518249471985887323755762044715712167326495281636032950563959222875633726894267098639657164436434900806592777690860190768324782646576310747433481340023476468444406999549564933768426683910816103206098103374472389787098007929164975471280404247869543955413287006389337623654174496177503972254428841267332888989377545957087236997785472749885857157325730586226804508769892794778385009809258807797142613426489008426903914497504197529205740031478622149959756031399931373408065791284822633063065041316570659814360494362093437527540758723301240074268896845327698739086354271760947850201473088628864676067953673469627958718572897505258239846678045064844101608638359178015507583727703698127634128988600454324927449519608666105173047229243801387976095104859477514559384216099100187892877881629946767662431746804239445730740845290127349492249168286228206133567095536666447649576798335643254697594868411027104814020703466446028517169192895794125905392290858641826797545939816492290597848387752293372111572766852808170786881520168358072254088532495138631045770352056567228845092450286387355370857253109131448293653294652027408531305155757619018311208867365897202667585776743763569079898815792072114732743905271983330721298548654337386782272239804491407270212447862979582343637053403637488489259423747998535816148418955596194840005666409735531968020794582265306752316516427382659921701825415700248858680544204188198006784728701303382764836533712407781973799396422793209399748744166914422029857038718891768776390651627717782391182973828412236262376111015030372703103066190893173272804644990357672254654502597973591326744409677003220904648719205799979374129187163100654246276348127289595191825523890901758762956457638639821069270107234168984284462532270006023632046898979393395931405514453460642580156308137300027462620193569888810608242864401706679506359111134346256699344250599567731649073529434870459346121089956221492552085428106973045667973157114398038179949110379023433037242374778254109499260933173329497699571967663138153722565621555511798327445135504644837373798328960743833308781467477478720075707604976702816168178673370347158152244469240458160863331927084139488374961393824432649162618405069488309998745618589024416591902623031000726855793778366447737432983159515948486888252049310102385091537857833417699676766210299946292793725724799791086489172613181952690409118978527831365142348722909850255287487804791807561260740842998034030776315330357588674117960304339298121477688157688758902772398594265920983405966994140085508617293565178737480724869165426871541127063014666032699747634250272750141905809380647860539412611386970955851535157070445630057606863182895561275468166337104719071060792717627291262660336825987840085434657365558369264498462827969170167112526930320346981606380819440894229419239059783356281208309891555222630961540183787917257229822239772410371740166983382931869589329245585765597974763869179093972071223505853689034114004202297013340129625082869700442045974255162395875973161903176733126112189120218619952776319495127477890553566162772353744683877661846969015848555426411285004778276384415587090439133941128943363950951497043492137092445246399103277273727902976041538549876203009365055833116845627902509412847633953546526675867801919768431139390841879136870668737828256901090904565636107031767996398999417442194367418511434070263286269456380603011066845799341700326566399688068620650030752440201934194194126939209130991829186814677439214532508435337439486553295506809959588463093550997826302944408454836749565775895144939978884034964152015400798104621239833255538815430343719912303479036630744347161582707706831282146983009414965253697695798548987386430776154454956556138232129658552505036207471532559983931151839387576859977414053516608848998505809933445317248329922215735003588135526434661327251312605455246700834521033910232781323752715426506048831525282236889172222347158594552977604524801129639635599488138187201076727734679455750102599604405638833252055966087475482857126380345726082120853559972197391089064035772343923229776284073623304582217742437833539131672413836963662077002434990630312602645519515608619655862380489665327480176492827148359447060999674361955971220931604096075785812720401684425353346079397779447284861554537941148289110430095894154012377407273695886876102385494059020080062438805337316774671339513366986830693142806302137190411200548493902326280952298049638792587523322957114802286647309905542277226729237532684580125712602340142828930661861870112254628978728785487774026280550889680787859364886968840420030600355876204312578158515867321162600954379624180306641018922365364155864848325532841271057472119314078838999696792110047158718025347536538382361016609706721393837696863168513323513748847356768618796069042337194609293128661433630668140283381523797826263440389289337083124452618138132468349072152985622128472773953615585589125854034785520571682952788009941612276237857385330534104144792405276403184279312153908057425646313383416009410578381384492787104732326081451991125364019378080746852853415764456506375596864292496382735712604730519667870336047210427242843875233251290078525392946878019873513615214585594358032336854829514586533612565002210128102768847669084950174843803883975584626162411551276779492630693961294670972450527022120595377424634051880648128261868576182349271814317329814903301738461164254655113412327926967356188520680093202167811640940535393244325257313778798433214012244031274734529503159832327341135482051503827468555197670272190965396038733269082777600337068999907334708863726480185064749250774042439841353161732138964304892948404115986364310919222572085413825704587147118610038110049974002095067830537675699179758221710129606713530290709011877863447808331284670657768611362755319457512084511080464338175699483785847743251700167407640337135558858510453297865101736723874092466343240422131230936879909312803991643950828203995968800757254685796254380121845250104572791899698345197560511345432106637871130260453176547958276732707000336285352687763789652478478887367303780934768804073738718124430952922184388750311725240774670222187951102081302668842761945121247958599050221182291152481790582758359896589880682509886049949647138306861855844819055491880924368654872000039406091655031704724335009569368327005600656070541553627338678269948046115419070649295898423841253176296650224636037618018170145706554826505275314601802105291064196616715197096284462551996393692804609072838737835545878913723003858964169030724327402752697045083072026982525564227024081871221647115642623243854129442600624905316152046129226505354170693132035221360376178826565980741684290777650644242405598503804756319043648512600466800906394738297760065153761838599545643052547817313519867768057287460080531604490042991611747920183196967836693939357973028315429773485956654531648726032582907490607589604587477658344308151671969349055641375550081600616048251757509898199245571546901479776489210654569964239212478280866771682489170095939807267941864039592160488989836768200204687593556841265367293515232955518655031919724789622315204242248309405744928619056158308913150835621120007127329733252946600481065407923409454693419043372737497528670059984158859340473366540763751402978077736275457442148244506431869727074264807260871312676731676973264462391742301544900605484182973833260345572812711889057532044840487928704342197671091896638357605098613898643277868783354734298589952759549499822560791347398319797360553149643483043345499083262224474523371194704583003510288553537363943100750175675372129390109792458767508067471941499446475021937669196124442261703846405114489153308410284530834598215682437350190346404852015935130223351579255353790748253492137050432974643077119220562133954539558036089700630875095690147246360795438362928924731608885091106195790820381252419304807655759457722519418867003537056695079999872212315374668337922099127429325573859084131584608489609306216235761078044263464472388468226760848659992598223718954557009326409590622895578497562935862088103507414552866280109960969114369559791114368187402625370675692820911784274449572893861189148629854395726548616474247558412939134260022032324683304442479677580729043462578952013953275968869730311937858296076278660646665399048382096518580034896522340655203191112765453542425427947775207682497689565994831857830538185923369178110645590873392677993908713077059538179978514669709939565613492973573526513600840690358059176943451362929736981946361199551617811870828593722223300404955546038194245411394721909396460719113567955770781317072154884648245504888053886723271811952594333804373155769924898729353049613884877150782984379328583740138480671168460184382947545964436907820304337818394357371847349510891207957927127058839828168218215431890240690890186074828954821130878144653796313495624200981382632423699053819526398021023372908174159857556287848387542242795072680869461285328393327725901863706218142172534001815765659721419166215898888699918275023904145115483465761239196406644581525155555537637354897560460036805600751130444038775923441551901190066955375162968565210180103705212456732220349791291553196987688203501594738950989494763515456512072364390842126741139025148812847845611577596129601720008446465276992975611231077166742694695748914780786576241664628444199417388951158272836320119098202498253944570116424935536767494394365220997675385911802340234447010598033529002838464566942539328051950470423280201418979723374747187535516530294470484419297106339876267025744997547569001950902954917193649328116043111671109691693280427829034108397740175252135509006516867231666023909772035733756338798974411249944305442532362670095446244224351590582765455770022422246210830827576330528585936644110104310728539519598680624723389524753635975061329185154344467182354822347116071343125126010501992117235454300293779320527214335021892581035019242158383655085435223025161782563217678888977764620080057744493412864756591774323959347357958596563322841237171362150941384978204030627905600134149485114562551621344336398787673243450256537737750419178949513399603234417246904693367366410385073401096982107690351948616053466164843898599868857771417444183879493303535079725724980352349042410853541740264708285907098944488566320400199524835045431684300026186638725087269686908936661985348032866023672164346457863762977746161171105380015488732781955690829558604810045376387287954280732459175913351550975306420286447969222873732499992453929916680018883087858623346390501142783913869303986758937876028037870979740786177245019833103305909238396652091826920063508117263101603565245265088859429009035465844869377184294598545998917671753551853153930418813790794419446245177874632367347006969297563142814603076139456608311786247791407216910430698203029038300814327862600056719060044900689731911473990936073804202873880581637414113096663510057366163832646877825570484146829834385024246793361306707771068514656699632162009607713634535600803349514157929003828485422008498318407693242732649114516341136405108526903641588696554985684973988898186746817822719876220364157378869416392268978545803492612360820967589103595435794652596952752290046277830160633898376591401192767313796280013114652026899937502168428444022761127122223792457342994962967606236689270247627003010923207004626437578397715941626132035546939121964754351313423866284237755762819042493622596776073819565675666524463503785498674787501917485708038242335914446050138428939746297851091895700119263802551972978520224158393197181565334266450167767062817355621276907622782965082697920133944012091708759001806117066872127452722077233515318527118347736992587946051159224300602427690622089671468664679794819693053022746251486516881675551971584330367504461603639107404272167184355965126467096802981151566069104371444632600200466989263545115209321050255930976680602383051614304044821994151418199625272822895442898016173289764030542490663296087203248810056369210636355826764047680806781582502480617130086349527593600581576090368646214497359560894019269065290526766294792146283688256222097682077200733225434524758730798578656689902425026330440576161773505579543177578715110312974981012699540325415753438138418956780177292991069466259053199183832062814921107944210529067155087737338325108590173115636324748135415691966558180120966947632103157074221261740800233569071531132659297281833837408603054641850282716852948281030201962463162292268592703930541983976169510679167163186444587006958217707422608866761682767010452393596289293962552629885954497883430661022378149366680047652590859142762385522713286336871389382792650334326461677405993634725690350171314428561963841198267376486065526812533366132514850103512622466944775615730503323097568670082946874280282599751130242920032183809722106431056964746479243953971575312453205666573462922026407199710759364749870913249737106323048618381102684887420638844772249598095870884734376398681226420288233131660256718308098991475399599143521216160394484895039758976344010614670191536851308024096878966406297524725853427079455559599701862981819542705870404322983904747908900439821127683493749566867705409442968217911627356482274254839300562857264408314225420559856365637013257224265336822459049234899339048182853834486156782051617708459918027801688993045932809336484634691572117048132816662802288346012615636516339267040437754777456909944498296737276269307397554940906399601885532029836145810355636495746739963410721250300864383854910431882730652773319257674395934444659727351738208016703023961936329864603646900196795313597583335723737589701136710052471731273701850874894229331354075216401585452364746558024053161073869926459858438585125173177963218224764971144384702729579194333834887855182974791290801466318613141155787981543893520747040412715772452785235529018731421117456091780611658915924966293781836799660395706309310991866500238242114822239359862968449029499941989998349578024198256147735007709431035552406636409340530006725195696900587257209710203944647664501351814256409545135121339492547160134623604799384792780582020009429845512833762561443430945792222817685392515735757406756914285197416562168620522596109514148830259871814863769049749687766256642919649560785905320466519997983461127981520731093272182314359698627571965386553351201586815875202048489602172091522268629094647762298446260508376013492593694799997576856188252913144006088612443257035856900767243332457321217856253476008660373443694845464606033577574552941156524043844905255312797724366819576330932459481011990471282395987110055032293881362952203191107866646569161214886467332489630166742059103786727692117937980953881082436248714100227676740184427782374751253886654941558956217939878365291292785401785677000308558802741109831655537632690792998840057686441773396544741859048485091286923909568468170719007064536683358621938170854269950717380232318458289940913832269384035747092436689671091541899362483053599387590566096520735243977875269217050481262460258393424993902717407952591668808011169806052232934770675378668202256766006068785189422268792115024421790681226492901849567299823171546655526809063703983452917925123152307990129174987468486822811303785417537481495461955500049884592950661821698371212274447123848659417092976649601963793281253272982029308560410828750850923872762734646596196187213678660809311495065541527894029298420328445857341125774017416026720675805590962794778560133161561505976052660870570746477034828488558426363478230119682469486681538594640000382572723063855876804150767320068818929627307951035606148324619721624958505216803640858538142316207146863351069056830200013077665591505707254821024146731503785886935703172918766134262003672081487290784430677688323657709348374860041752496012866691566345155781562016533917779705738993357674028114487417032703096237733604530351709862710946069723694520780192603295926517591973076583586449527775601857301849016536104587369676927432951082640896361933769552295804105536557852727203393009729628861741016242654666286632493973593796854849662938013489200053664663464573688863911107612804261301184690119253934409926848844489917029995965095080998840683307915596792492673915447296207232013221780390932389357236443040674625008891923369562633205672632957605668166658382821826137823282002596321806226667934309891854882940145407857176692465954277183070633064024719016801788429124699040689783909377186696879783533687132825478383405210898919201586813030009994184064051290905714748405778215765138623983728299687146157425556327405216649526795497092411981383027924833126777003888121823519639095490959577912387737062871079041203381711067245212842105373855067886161363524113457344127431304337164057555699959978315834421755185787153318807127169386817668276158980958649112613087079427163607125675783275689846765933866227655055660010783565174788028529029826545795258677173667807711769327222853003643414757061552891803438959971536869282550576240365855887804101749988958110445321121422002077818376159953008281341060989364920683724266323002840218818285477602727876262219017474356847212899464281414736592687414067656941688588768283668541248031342751436026078490866979846843327540067517747008403831829100361239704910891433239881661378271471286555344678003686721087028892354152864344162740992613886254793826994785161466647779874561438700527931515334981917663496832918354259809239841673441944214144467380720894200821240025266735539748234752597590729281694091957564149362565609973229747610067814993756259443308747937879691859367882635690412158517822413336787947973730375160508156434741885760816868015960208516242133440502257311836620556597637751223560250523044710248110964242259531409305626227736398396628768778937518800574351146179298963697161809127807524964427562668370620906376464824452555246913376352983342350960305298907931330694704911192025970161681064985303344575905647140268611027428322434355685661915553786529158239044946884694648280550883040761595774554390313978740410061604466148176142788985486805389681311123225393270118247677159613614331636026187192985654359880270093908666968974296618428373396132421987516270611403964607052595771284010569875502826377345275924373045029653059133194759785548795796451933237009956793672469972763879745611356186470685612619957671238816085751942428019739674554680373295057545940387186431812924187739626688719820775817232847030285186384025691090585061415958096555219585433512999232494821960154895474406471837193045528065752764467886680382779523996929338312961390000512282646600581527520871225309087204101573867314340518423055029796863459178577494470288802577713482136138980477166701646607632716950485815583699154674191934265524509284801073743897016572336301013583512612704592746408941613166428523891102344443883104341863013081120447387066362399479098953083531375119684095303549902097752949722862427746723075775519103258514010162922063356866244228031942838288288660333257549133366722483114539099407633010119612981539617782057968755937142286089684495147885835889163251924186314684757792453486096407427709971374337954732067438668377111202055041382194516961831066163653136557406310583893045686654052684922568130122740278590081240736837853341377735158131160768238249093193606494531741070351811871084729829837196938142383165488600945717523383501203125000747433135938083091933297061327122441070027708539822742278714105766295107513494495998432736648870299232379184150286611778985596555921514191661416966110523597844468417056562731731919633411011834883644258030503368597981591532128788554029950165023444273916803705552543414516814820654987176614700208318732171578773321292597918356145146384548459831155576918821824664111454062613766905172075061215720871841206627429739866829101070936764617520730809685037588988751597741621529744776159160356724466388391858789372948284207883835539610847010758622202327680879734863944279945166144942591450040179402350366251696142854177358340856725893821885623796888052050430402526005906387442189404780229262886993192829702550749266873640916608391065183445245535327485657340975996766984098302523373458511888996641881971444453766072542921113927654108412369338006627784603927669285864938136978640764675595024209878394162896046719623501930744434968162599502091401098814548901603494180304259373231356735626108415644096343769743346077690009203992180189887455236870447249399641653924191165394756471252170192218860243055847390037623261708371337144920845895709453675384622697967441056386885527646972696698357559533241364380700319150784833677685266151928943351452790314837429312079589400878816820092398627484111089786409919475738392214815328430336281003032453635181034490447418031194813899621791877866870227277616730758548626924986298622777897370729968688307931147198939984438534936236286335140474261732169626853239702620076106480819554070015268883338916093822667229708959524799392112396341473331847533844045796452951503237459768911514265879299666138287660985897111640975656552422011032875580319716907232210938801878851536029556925928340510606949026246162589682128235464066048202032086270122055196089701390934938829427012914218519963610801812787567048088861612119745464885564446483356927131572660809819909961790591334304517322661151086634626113762332598469174949655966609836332521376727477768259725568186141612489562832674078389269321001536911744753331162328485081597705618610124492186595229175871923654561468676124226884454546042146965371303047617693232192012660714561579646073209646451020163118662055757431616971906832681614751018839511700730311882146335021102386173752841423379527006722917783715553117670981273246222394121379412788787856302260039153895209008288297421882785720317757939458874885298040135328464540608115815873765627519994658295789889540034345457224730789166805894341380545542719891552223828153219182633240394883421462050268747151749161398075226384095588072363286877496303478041303708690847965889782996931740865578848037215498971622957213460402359838313307817686407003682597876809874892997376856432446537556451575909256734103292513486430022431840195751758007531250668603170562564283124482227841894148427825161751345224061790309816758594938326538276154067935607539945862257516736973683522270813418710843628234031046087557336504218741890183870281256827266722349525646013300532407054338948675569027583617421422227156723220870483740736359367117595630674777839904493346973046450456306857329263050622987466994536298769554986724032744912449567770169404268080935614352611551234306121123787392339905629357831356515420703647546760711869625094613340085640881350537075161026481425470038004185366980360515006671637962688634729647772420131400091318009674040607898649154922575384977608241102031309223051906371535744272915869693759912270810462707890538884914816096305710094617448863901134370876109616130519592011825891225262385803176060452270697562413213958642663055653861386329769323283340852845712008975378580492272801926203147647567826288396095778663202391442726473351277109637622898697226955985104159435873486507576063930301967474199826596318097656485400740860795706978001677176858901956683897854292838909049475694534791843166014500532305934879676535990112259773806692848053366933874640920322845987535346361001937782630736827767322884677684107059662693154965523275915134620847045612465652558609255227241528371304258521307495647902898200931761692019438592190550029318251014071755034347936849404101816901890536828474832256287106768302290090523450440692971951973168457067767908060399193496407754670699782861023101787112913613131523414667811995829640719154004248985369704619118335937109304766748122647170098095243472279812189013596970341392046360226551094682438983742361291850586704077249446795686307504406173822310442869833190772879786490034901912131967454406947406592557256044484961235977746796533845457541607591692727960238147475213690952349582021685709096361640641002104500615013395958297311097077888854198611207174492175776663433824003302776735783917728222574111493275229508968233892595694081580657706748020234767037714074337969127749135761085502743577911707325186089187813363441442976744828307043465212565012474688684056144019599707523633124071672057494133562843146240884212121283078100554051235616120490394181727023469619759531909342337271175770051868019481922719746026692592913869597414065470614448160830576453474579831677406458419231231079209843520043540773143023248321264163080225024517365308451459663306159323199003026738653926167739483745790296266074137257238806536994263943151858727905181333579090529296058668854985598681492480859086859663733914318150567354601077562769515520370288771461028184504342669093895698209902831370455812236117549257391632657854774906525954067826699679053615338834453949780100011198469411127514142633947836075474555100886261629160080348318594035844650113126766413385121677340581780010382393648469575935646588879479605152485152389303308514742313493466971527295228441337832201280145808237888203491760058153811318766785544055540175293443893725734553490058760433835613087207808922136203308447643284988660083863382469238143669684135375422732842930734972785670075719801387814761216496363317264699114756509179436389232568949631505684180267716325013202524174955671704791504012366326945022139458187786355383339569307369719053514832052703744764239570410636782592956640010281739901459777378606023885850756745757233920712749487658472415468377307621681327057210407935384608414644527895689154407019449090294436640744743883826642088878664719729522075429133667019911220730735480204175659737671598389622629488752341089228577390498895053140548857258763531281810084832603804268840003118536914015672766338194067804693732307594303577277905718827302087524677657402317907087853437536802852592840596430539871653376558588066393549745320969963447708672486809340148998799958456452154319561081111114464941519804092329247564381091964910661034250733779657398795999595321802633072578673290434234285815786539813839943301242514018031202638620729589503114544279936168519872596799151001087183919095993711716809436161073598793596529745675722210396379665749098348455789685739593224926405021104327672958906946090419635902484192731907026816790339419785750287727322596494532377311663337068490217556706066536234057848078044919305882494075749442296286559893184542339197507393519457869856292139475083049598831621507350804767944199600149774911220936654546612292947632201696085904252293168842388545028934341288243526348453561598980799086535952652491489251369917323687870620545975918226354321322871152858057456837250915890842384724130910867536963000825060184714822588061143023152824888459487540923037433954830416156906918537157933307554909991712188295424218995724205528356795410559599452272078560104824877102066697561418252132006766572392147202311048170862844757549350797694810684498379853656541167994937450369195842357796874263416137674428937110735875287070323258816561183109367858814614562408362890888390061925084274043447802377586170126016680732751684318048956867154460376672832131015791860810360279805598665070570677229763453983223479235170290695841497312652187081144037534509867256432223970112532099606506170304208225934486974896879314705866173765305272377862393755993977878332820580454119553920447958724807864357113509430388560668681151877845461035750955676029041918817574754508749442832688189455636620886476940603329258295510073502308063469958900143622902810199829531230306329942673545527311157064938265602939742987513980102563032247616502222769191150711437576052370973348965561946708564828800328292213373274849650274092639621392743687575051535699945287799738685694026855004587513250570786775584062733724227292987573666618586761968870090280000008736625655977460600802079434682976497497427969725746247832399451335993674097069936424152138457917471183082795525873498246076328405235504638384637677218115563110846474290422866968850463926070453907633905560593155934478640935795470422174901777891452054240519031000888494471737297860127927273531588346629542957811696339428894596132331205480215983863552028479345111730086572401274758630050044432308050527792100171124805688081370520108966322678729887228959253483346084524792971663019626889793753032100418550820924831689763998621963117138802060065583955019641857423322746256093589535734266124817214278126625990295681094597085281121716384085095180729396387139970381895040190422756961005162187913300535350878944836814465020050165743051714403718783506412618319002812811151759248649297465435008032082725229916845954007347925969820527192302917325814728236779522593195531099689760207628516148566028101611003305918668723127197217164832642997954913813912310308601416308287351830482015841947609903248679141972254716739300225538645767220078266316534326960800210567613744954684612733331627154385164696781295029054120307144040661031957107854463368453304068488125571738849017391480970384856479291063413587273135860267491013025791827306103473759747148907444271991033175792622040784411544111338215969613302403627132498641294560166925479704188961733137664910754026881895694830226782371159202416218494142771239322806602091438573982801162381374809562102210307465056679390974514537053076470072719236867876502035083210046000099103699488294607809400401489663521049316495303772751495758955814432380022650949059432635485494663760491502026141521510713548579962156721524860990128557398326973304666324864210837712676688824004180348200594080906126045560686654294178257844221753382304154353393782097826230307503777736639416351136535975007401087784260704730427230350342644712281373290154989226023620681668556557314317985245727614050509690310355287387039068226440262943916516952620093907360499594594021626990225897824937972510723636540758727247541528618234963832507774568044437064700060220927363784124286762858863812202719160584432535589724626192070093969238241609459870922247615759053567719753323156548859092316405861181817250519062529995859756833841317027949305638313689598063265728043414873799495140312970170062377133943523119291034577083293473733257782177386289296665319792827129780404502611532995152650937679742547799967429162551118874847406502787456761411738389273617330595720584712292561348494012127278883534099669348361304177944063357490757468430835930787633062430513066364599528763399603361088133452220147996570885624843493590291637111413784969909357085366528573739843110317646777709257301330413741018060058424647770053624122621832088017349669167289605859917718023248852033759475932602973219654707165758568197354958710694491000606732301432476737913948225564583181847470691269244707731025936945656890829751397902659218163456254112132014573486806176284963804326457454135470123578727684033807907369076540678203596209649535543471984105015819851809626327934559425587344651952028514511501336231005594011727660237691760376641813256564187818730561105525074339195305661741099419681065769917049401990338934900090320349109583771870015677601915534148801760540368226693495772023955317455475622273771728147216772676309960574600738081747271652450634481902871054334574228523207740564279776379805677778767878939667714760389728728215881539682922398857438033309941378125098439652367645129594389110665196334418585783463203138643515724606255608885383873613506478228705697061834823248566432035657247775979784253734558683348329704449423832002023002632034693674586027938036315334857101143757018505517933103675986549175938763109575551675969730568124771552380270619244928333998319019796676285329866264277782071025406650887357180292701427909382853943183760885371265744972003359784454591740860013848687179829082142766542589084534152941297005847972275253258472949076516662690524763551624885175345418093508832209317648353073337666019892029355348939820247528187912361169708656294811267189242434892376421936118563350612765769834131130635045693798168184642881660779673227647654829288553652991279607735081483182116722347288878124692559844755721338044229042895406293103188791785417981975190393511799878198458763522782946760041673826857938266356705226204868740555219833262553508639865597331856104839213004261765322328439960913105992787585473748197700852546744060286151138570789732111292943777059701614588131743344702563485473233539491984306900550026213165342363456173661556390681965847078627444901816617909322576643962312940362820905346791285437088221581317476153041888240489926034137299266946618766174984921476073180530853464878368819591684343016644472497600288825594489661934592782626247643595425287783448359396748408345066117340023358191748368166307529674746133220397340231367022967045490441142629287978438213420523947818320423010590049972336987166842837560657860712497488553713595344235293396691647258589454634870433281705248914666189153490382404326761236681612930093712706733694492677787442155486965938266322544322080466531004209457103380254852768732850956499735123831830040945814702742620967165292164442581408089686407142283242033010047595186008727404845902460232550848883265987078632166726423032087048825555635968346372526146376566287965134666125476226140934566656409112944755503290841780457709273754290490230643049302077726945903963362083343089087505221084032553270688244713555129669170292104691346224001078077564585713419034508549076122797404488968136756989810454279427047890595762884410069475951222865650462377148874994062956688046226253035077421303337012671171467033952469853466150477592976872090536209945762564959698089167478953203196038723720920859637007178404439813960876515095586789358495965330059097958440508594451446438305711382342282526219715710721897417524083531665165521636480766116904587764647278902471712229256416338054358147649142333191315997861110065795217068506903065013977372940758432838208987695044664238825810168526296342784301415768271986083285058446890512875530995953676217497447568644510041404502698631610479411803052799335624800837521232314827135034797789202025783295253018008279652437680668634781833726250940131599862630360193957071549190702273958243882330105523299702100524483965857546270925676848263349475714634647600049210252847226459241137932531863953667353791290909094507867999310933805120647684582221860422666668717610537928722877576545735896136940143140986470260217358813227372841210558512637760281090135046838055192601276147326926826513558358096163544892047145143016449642525798827150037400525397391611646701966384674871880538598600999313377595934566698928251906385710064600846985928190782166498697312950147841514922819688718468599019589854185211198192392336825607866115069783884014566777076457746736900674235988765732738431294396098151782333223783534123881465551947119928946487041090390417201602973720648466917455546845507791303553580248285836519586640122639699354572091085262597501005013575589454067275470965628342538390449049621244453502993428928617284262492528545049185037063550661217754985285023436074125154900260528388664768985599616607489520698128950036399654028365349168970486690220207535615031837565876333564036191536220308737665360378688197357321375678221746904751349513184078715842727165549061666946981487384407645241679465775935469352111783476729425180249041106070173225194882625746812229393383089757605475314927257140811964959793465064570806726154800221849368366530498119433478249083856209955604963794909512773988866815388959258695989922044509712294569460853929763515853136904990116873350154520728374784834575920017920091512227656833674294036195604946492154078402222464207519231570842245459417532301148435063846984323239931161432603383607077370044686927574747296287258935229616356936181739559612112029203430842689753118919145188938064564081414402648253726600457959090152329353183600408591318205412587055825173657479214323251088302847524635123832381264590758230100163326277158417132560576863514921949776775607358139804695203574073930240892239149632735083409065973415309535492628647732812378961410536791008261524314654078202953779099247884986920720259310290231488725177629975462453871837465702731513216027180927054193666753699676606705414403512241372862775968387958244318817830768263412336784751586793929629102267591307605599508822689512782477633604225489222271936856968281021978642104471993339086096591594839340010234661734393899977341906490032834779617996208966227029736864367835274482915615603876139383791807383343748234222777110515724364048933734660579823875896895751242614050306458583609023947164156229281605985098702285064467851060107245700434411252213152264922666876155770311467236133970003371240291596881388149010270072372320210349669901673929875628713570748383097095719024643221243237426382813881096942175499013734318393691823727671555068030585875387786893498485957199875486885826335458598203419897062598227253785568750593223943146784342392598341711803977279987939592361955979231965213859650437533382522718617271520253982526206981487252766825509303083544066238350896096273363977184652864087648116688475603770919235455398555679681977953517372297294988640858276943505490632713137112827061034213186152298145226878951256693957335415235871826317363935958370390782333464798910720226762551822658390930914045389038694346535186057623911820955460261910081481661879996222847973095723119249357456467779793815323454066748485144937932932356974039295279596461300304676530148943914039577799772565588912104578018295004500062277094186609711684147195370427086477754164612360322900244542297858157883318669475819731553332511572587893905449984071408750680709745571492074309825946112682884351078130815598974688987016215525666886914985869588791373370321358640124876962737748261333606323776210043754000469331985321388053939901213230892705409990661218891985967913212378356888949672299330143256648432328703032427155780257967219614339724570345229515636044730497435149233478421312882940356804666303790762699526254527473630877820057368405241671272932532349337344572302927073169478615455084498015746621839547130745712493482259030363225873071881328660004700493464976182546419694163125085198087495943131153294134446664639589668540577442042414277802152037201941102420145708729243937922623634110132391256137661308987466544412810608572840788185393063636004007820115475483104516060230582216969356727063156316763157617583760057647222849082313888685775031003940163665674686558628301496464658156664087801293691787967809734641156665278703337983845886149371295113369464667648677226611131277208054583762393158142889609911535196697884686160317094300155600101727358661059036467675123091717132269293915112164123074511883759694862960372609741853634871074942293115679152439807839509836663824651709385566967545512051673877479535447087026009908511865311403212995049503998518630909336294997687687523236743118105141775275110276011294322917616049851063033231412274056407348521478402015545170205991692485276878133038510253084790739324030635000736062226808889021877697264404284528455946447021276131747743340309401109528230473951790145848619338178378213244906650898057205090691230139338230025459746938826585359019184413081915981808545226644265134358615942572885549931994972875679625772804918437124787560185814680270652954897833557630578499865295194989842815087268172926823047479979049009588920731976219986021388099938913013796570184692852272942737889085042169168984221249204160839444483368703383870755082880188742950177997582470531293637525842975331027213527344732266550139239550605160610516217963530337761298702040254487324456957281235986156264270137696672521608294548366594761905901969985811437975513905487427009520780074223948521411932562161496974009882057007682927347048522938691808928632450592981462964371921314305053016085723559048992611705320439563285221470853614087843314874359043424579130176483291080735902058198921659204230693725783962696375760309257740527869628261364641701038323259611974681623724018494768345162010117556158793595160986657845937541136997588933581160379855918554961507445659673187625782243397322033461113565924058269061220566878406013188007692303550785840338993534458584208057221353121036698987316626162436993876267355326782844891005322636626442198794646975660353390836459348744286788037050900124794974421271699749265125805500829911203602922010587253983270297911102323818116900397199550857926868363086764647315716530939752003240810223028890011505403730048975149387497766559387931147705852369755086096421126475366362654634766302296994462849807641898362978715501142666375398448640900479119688565254831174817749370149939764530722351284818668115304907323166471578507336784268940105843326614214802229694171033851712696398072127476762638976959724393148757847980119920491615355543827798542612983542176755682193404970692226399218051852028584017999336044385568246121450251024855516259586836243824301059916450264803936006939006758638066444377295701101320011482703251299668907387686755350680186029270064013100245398280577466324235409103647607579411692586970581851108837089464117993926851821057043003631093111024801323022477536433553975883905733133193329519443372657668700268797514170617790403874414817582953301441555098975410613388508194322805946966884159632909749323260259787664866035471420450016272140094149405561188553164487980930201822501032227828818174483792660212764642262367000281763085340165998956829063571613308000380533886396183653912984581904862923818213211690430801541407912759971779143163956594592083734808955082638136392780710490994704955466455470895191272857154709288592269102034181544721959924392872940130060003227359572273600045911570277103147551155301258218024197547720075590286115301983073611088970398022416631360825509623929667510303421322986430542988448987547857083402574208390571675651796892303542767546341476160006799963097161993358276351757562586226007860705349494212635526594092966891521808398210744222463388545735257850394453738547968401761714463621283794254966344095921333247249940156959613016461518074471123287368761398086673100497539939029189991878171855439400816418441393898478545497925247602903573434616978222075764777719363475045857217397272035164455862923304935045588358733224766179140871403455244494705293050898524662007726635661311697129113509500755125469027975080156516583327205297944112458011426036520093675499358637785856605239579485275358379945961384570046153154169386170030657098622627634663678354678042483239983874746845247141729482519157725473254014558067478198276736748890931399978292967849798410157683746597662661555755476395520995370290808826035245186574222743445455265087371325944630741495924631600437290386257793956144886499418683670593779726574688703326745578363073778351308608030117579323649818832680270443696704804495527500718509669891590226717692387288887352926309306870711972961218176262697802821629580965147003400786730081861166372997542495677126610515891533885359475479767765787510295748095471236938585576578984356846997791304452200145988260641502344492035776636700599618504271821459056508432253592514809824143265756141283886584049332130975873828308147805756014944737692816281587834795850039867497193026310913097321887548178586110430520945794825495379118291470814891724391835549474335267652884476534152738690712136406572814940935891987100271100303966716653885760890239142976694514587681381392179416979766393516320259962794066718497282261858541459952569289251302827648800391714156846478038858447446024304950429426718704106615751101482101788515630012092308796494949541657107865079140165180170873897643865162987953540538469425218732206606681751689841914551982349338151842594429990088741503824992141391140846672572088727169847858624479830932283968945049791647477757636450725876006474360401179533239307756482372081232117286990230071263448603544769761470042888781291723165752132045833146181608582656333096463449496295422337975629699308803686378298113266099294810659171937156640146523573931899405830096281813339496209777629735916290158232337353336412722746061539205083897473224517114096793563646994211861476469610580075563347541308882922351130984652088746368985791265537322631488498742917841002171194616665372240738533066518413864286476365247472529336735872291791065633453292356194138112643545216175362865205483936479788324248947987748565310765684088630324903730989587800454327755325346875117730588279046760300089536086495338164287005326077909764100160736031642083457841256546135299611327307528104695154658216922351654800722659166775238042783464050503065601246627242722794547270243991707158676840142761146422564687472832628586408636667371186308534628435939602748853814770265303906598553476852620265222273518957065199577434577766041414532389903886632988627972550787729006833985299040964247589009992775900927719147796892874286130749228209435632427377988263873858833860422382980579877776676843402417082686472259053530380365618973335254923677679506231000119062020812344147313804614436373539177365905826812431756743153391925064954547523972175034095606368828497408499185878154361401597824303673539879150963527498269237467310936979889335374656904969276816173798865314090258509143290284841978109847261947912155174346760974667832518003471522703994426259608020625810033460171562463445613328653003113009488336280665144236214551675109012508969517715814518136665444171282749757822555284086336775613047951442649576106488959080073225278430008586413968674849292894877806123020695097775248340794993577946371407565075019932643294255250587120580846250826145758738462123149867414516602435850938170075240561904431154979097977895528986392521291364529526302112380859966578086768901258756636571323780697360142018685830820365497448150836383630478922119644681672597648884963329754565448488279823418931917596852864619923180795175305095797708524305168603067385103162187244440645976403285528991143029637420359154354841806673960083029754248162247062544032459611017855434914064400967574904266775294374180414138867080802200439279643294782591586585042172269791352403289608597997393199347672431460762348798966250724512127010975293906103685247244740993747396517058057387519089462857780576630920461668551857371989345086651396822729433390585367140122131752012585233857456586524842494484296440546224356677047349481688164502320068125114870891109782700292331935945668042297489173607257923828964406367804851024469731661901864022061794086219211141301070493164646347507291051033105853676866729780510487913208749648476570778239843100001112212920526631979065884175140476152819498781904847500671203059747649377618739720332623838126873630928283887698071074406007584748774436275512609875732963573094613064860767639998407256329685584297932475183057934481716984642975287896070011622811503629103472797999765462066048878753198378098927861011593522812895552641880960194799789161242239980844631037114602671715668360648566457925106281197164885666772875882831996837422682095256571364953687423457349334959467375069940337856052372640041461162891149069720936696687108056139066994766498633111593364856408142824506506728720883920359261239796049139460887224993338794814334544121487739758552292258911239445589808205697398569349886669424715959839045406738082254367412085802045893829461171493841635919204862001102907999715163330155511686213754923918367794053190414861450280874602980275726000790160222855563697612439323849551306082644274718671851279786937186734305428121806055434317148390067207287877628709577449522999037798117538104302024568883008233893953633917375795529994111748308137401503647961893622896874153523762784811113938794739910172318430319647827324637790819620404541421485182883364860089756346617522187219250824609716688511421722015790803941340975880012379730769233752818946199036702366644463496599937320048433915203745488702397860199617584794644611166243455063463140240454723395780537716670554092622613566212896231860562444738719613481913789242501640377883151661233351890944895413202034200563897224578222763006248204920878579609612027698966075101915142701433378385209229066278681566301983543331683226205068706239690990596223043716345126754445382799935468287959598616834674965878559383170212543357820878623738207849825656170615546176646500230391944707502634301302732356250583758586771225184700723371166870831560324540288636245398378877065540214697134404342887022505499114849778743820322180493132129644469556787951714819763169369710732735111401927901743295968289777891952243938036217744822844988958604916671615780193827848215610029362872663489673248688836490684265277831952690100098047212067557190439583108476350981149127405966150743582157195562822635624590400090150957976364991185439888800096494839714877903989748690016044992520895690247184216129592434879685445657519616416755256187193082404983568172782986089178004967133001851122083427976625704865801545078797342871173460487357210084125162736149106639055961693657049551924495441712866723722957071943127412567168521685060764549454587323376416823613275423138162364509304065245461337591765656155643822419842751787540903686472056233279727890181774155617558386566123600814031591862581680020478331414212703928700384226514002754679490403808350359702605847466781392794540962329433681009297373545722654104154456617371511643285093702404434491044724372733005945901332790223866631178585215815273164331837864559288472693588240538324760832060491503289992661066473216028044092205420236440358594718586283195640899126643626559918820178764503578015863064859516421509595040996546072461514014005827295816014547793145346094187195340521023255933067792154590984005907913503872226198330498099242480946006586176470261028359768448013179206157646250085962887307486075380290587601076415339180433918236537897641032113665918431005263820798484250087650856128672413431051470137016108827328078842849491921983603149671201225048792211657336341191851388694959973657958515906498022259300714868138750701590120912267698946194670216599488490371937124128829973783364917892204388657120322780641882513275360847879730231386858366331529192033639247734299490865755797286702982191236038300929309777989268898994100322264466440274337306859677885669136051100950968755932424947459439742994393890495683575203465279081347637008116611790234937815423360743167281494700439047609468717519319087698887474279219010477022952503179984882772501279022926938826589853176835164784484154859768754386573130858589384248994251629283624940197401225257716379125411205756361578700751480448363197464074003219326899172476067058798041846423749689438997749465001685765493137254227207904313222881531851942632387681055794471372826481909559577977854498473889790167954660637038164502168530365134646290687348081081654060730321286996544421977168944946592652053344568073145210901857475244330885594384258622480080159898690528331351102714030018429186949402517694211380312224133856482430311124128332257894816040647102875761895328854267881337322084424521415622402231276072775477440351200485346098626591648614751808347065145721038927084333277665738829743868719799571780289623744761885728705113470780615209160831588964847397925915330758961030384298294400780426289573159334167295402355332046030799885626744145731348912063863773681137462008954394658093351195910085575801266308459769575285047197580582779808128604679124894534584047845002630125659747786328663679963605436121813252327365629487801426971314332432656541344730998311361969299429671061760437540447946859436904916094576890295105235525693928641869211643467241110777421059449437225172315578919887697050912252259693051099040806352804140155514862791254664847430919148616549082684232256446707889753069507748696142629044391534097623080551707804746911831612503653018572499261390570732406363143346276584930978228211821133392384117429441606084537261805226553602296973136294453688135675995486527068488323880878197549890174467405189935321844395525036072827736801549016559022134079161326252403585545572127502590849244212705637262043092444888103078065618181316487205357240284932685258019610632234638973586022151403728617156358476749436038217992467649185182372986763599780100029182524265706910707316044641502462036559870604351510677157656169010623578137656838835961721254235926736078466556854164074368480555256436704177722510822707682486893137977724249698039315981638556673715197203014801346179819907816491843779460858492464369745253218033994232711774935096009808182420486458409421571228527069500197426197655757127245614567086667909202251173710831473098042281709168749509722510816675082909500516587007907406465745965608637905348120223298155239083011236931845658179687103704938589577103377558084688423747515356568752740923945235059377290769772564556572468509102778298039315516389053089813237860702131748464634563003790182098603153672959237363794712834204998671537737492322204792299743650963042112853281942978626992981081211171580672673350975069552114806791750231194859561872281282134929622207666674187199986322949399475668381346468382135422932676103718965528014449693550813282438505282864473804014393253184874549143673818400585964860782693045501499254928350416168480815671173024314842675401939689379757950939161108318827232197195871992199592682081021694204793332398916352219658869542216320639440462766614046525747728834365188403709452704005309316698149209139545956161101715515999378033071891586561882449507087300187622579414950191868932273708688559592139716179080420257109833613923302739428792716825425226605058217531000068888462760349378379561799510387614127820565606638880242998545660206998624309903976525867173244012207477051930390792699364826701304524076478222792487369241819140975267625378699453380254483223857799976502651695710375124913699988007317622750959498526789482892717887889099316447720870729309780126037486104304184664223484367980908318042928612322151060129330543189713425636297641429283886434343685985610657554799547362753079752988673789303797117613422528333362012952005005149636182137430581791468233651885335648239414003169048287781703970663938388117517168805574936859675070543454401186235281748155852969531689369015127555323698800603803155752683779153452876410136602649588920918736135362443962120606850266741638219489979591377132843102165712018787954389581263701596835334408959983611218957016845434672726832701246260944663322892976788663467832872031608776851114188432139815790384824068491418912195951042722496350802697163706134048369237260714121287711288307290067412628474647653492769294239843535020974228325093439608143089337663771302184096023375046138690703954546112398848072548774466463562917408761278537475412675029420773457457423330100434249284263934475311222067262229026041256324840032120175752088662549997230700358431402261168255424684033567466433624146077265396013258483829521705628639071408529911330376687689119606052871553002618815315106940073012763222684410679747673770050269852112702193657026297813991668315785072242839447405087407555868078153383638226761787878653525889668794552885082721718982476853842963221364795079564267002257392578854506837020476890203240056151299065273211644264968722534967973874556789823002597805091128868198853165172276030038062034675446275750662116865722953711938906662829351344989603541232555592140361442694449423843660453023805739887466253939722684623671195812928002166526862020423259192903623624482022458912468128787238728355966007234717295873552337338116351041742921147667557616453551834708769712836312126732874614778773577096564902284742602246817020858325907328164060102666035318804293868697000353086768563331673430023582653289204174680077110222347577753819504303698082168826472817601482618519920088696866916461243962668520607035996653341064312798314421519004873496004039422945596807943655565282055857663507411679970587990261422595734344151188038192831847568487808086528461195672314704612997896716298737935845382860296404729625736455513359568221630252580141519618515389907912350100997985690392141447270726992303048073801076301059144693637625712645738575661686427638248744410355794056505341667364296476733794557310456832434183037458514668325142401414560108953645462166984507051828783703255305079457799365602466662258365074905090579563993183041645067196626858409589951435976529069572684441683560631023321662742160726236053757753218087258266367461440138789060429639238341285094933547967182418860417814396887324718847476460866762833791159984457054498569906600199742266754784698517484550082924648059220998450696236001110645752247852588156900358264396494406702232222406966310313925326318718937439030916919416138505255313813582735275759196005282089171092689254946020663764360681780163000650479180265613401043791547251656324566505093995145617525982427733043710036207087235061489237883960264896859346958774826593404767447348590209007894671756167039335316461937864595452754797373423798000636098361411495819798901751272190808570997080852840307782884184869291551760794867061560995697969737371833650248590248573121566388673566549951284812439570650701835608277540348351743498545737761122591202561857619649845868258635471490880024414521826536343775193664522539150314417885701182504544156931156246090501427723216247108988304285452036674338532430816581093369015253562844556366276206174979776595654444978268348366119489667450385501555525479742993482293152864013142163556232954292190903238186964920588331961544624395153675004262866616543128298891728904854316681365945829873389550711010046886601287124240474813304776902079699443541727947546518401682613463227779679696489582399630590993923185608935277629563144546512282809455420553372205138924734582651471245654307851293186437160956862391995326617366172906760286252321328191326692275110995218392846424197338836877056957205292964775789642054599438874370303841917284412266743042424116089480146593948215765952622831459854833733936251221355922260452156577956330976221956216776438072390057304078885511344174916713415148598127598450816773669497264194670281662382731232194444626653046740549885150116481969600183080539056278799928673884412293354686474333482853623993385018790828112201750090521948188378954635480201767046410681273027421034791427339636107086730337091376671652765053149032882194982442460544758554859107086275662073272559555243352262286001995420895473522098119529826247482996486097943882433320185450126025223769612119159133197434659679467801530700309775254564818930827933145277837216981681907882535275298877259000165386594767903684954958789144224320634635613037350736318848175443222712410990405512659903667051283834046346172627044973633962361298099110206857081237705489296492081824706806117193389671129824973509785929570190939430569074756096479299968168517159152521574436014605795213322549622648318409773746450425525447467557360717112396944941193954442690296340876558424397561993991089834392780571822134431011626385087226837895846005304807465308169398480607142643724238659447831543731804212667892418287336610221547728930149595918572477852302162866533984399784282761045380919380885597769499582776563213832075160219848088827539387217277526046684146766708284116588514519596683066669801313330578118039215962452516310530325881442491234030674854824578271216547064796865915097161361487695208253718173466276504042390563519906282764545717087764970753844686653788681812563585596181494916806827199898354316359396727111200270147774932921519792359750474996314681341455305326028414948487222380344796996281006398993119430989293670001704989580670549398755186604606346556866777115526808304107917308460213467943276279440240811751905434524421608633462878443653870881846165602931501168620423281537399633180730931527278332253304132778158116880295739706329389231683228549993647287042691145981042045068721311092902921974498993323242944690900054684710329017047877644622164327955287558060332187276627498909663796413096947168194156279000927510881678721586297854194492097289686104755147868317038304702143358680539097751918710013734120665153980893259225877968078577777208988313626184755067113280894331014173525987450762637071682830457107342721323599826717202739802490185251872103177895897156018882961787926677118105730769809171061370602647918837049891369751643639225329201626384007735539522201452070746524590067517069748738887933676494258141346500455460381492280664778338024100637255556269313299605968704974175152766754530776877062524248039435385451461863293902785455919692566622827059929588619473997832847537252434910543494161348473273303425315372063026284739129108190280959163926258564107112498576975270873331142874959688660034690509855417985005862525647083976110054540512509465917784089911501992158165687444111356058391173950059881889070417933861928623450386105497129031985132378198483611190425366179569447478293063655693156639878352510277905685157335318457109379028682158362812865677807022007910663818623775651845601683825927897472220310534281091902929028990688456461293983080553199988132096318367764396999859535039836880569380588918050367045327290281286954941900903131200280878796595516288095113976325830416476669365633271640115299881619151081376759911063334440202229858598517519822057193960423720527993295492562320230874944332369831226712787190510053487212774508286708406708149149218244703415369995489115190248226064055434104850511414452699132303640423358588192138178899391177524343342857472976976199473525611955035024940778981983090088760633246709039028629680991684384263854738937140284236058394684388814444317806523063334199086633679696122365772977358329417666641335775888217184083238900339692714928823090102123701473097233319408597389868856272444933154236771285841270187393685733628271473938540958778195805714961484185573127010283362252575238900132633694019979950398336446389681381624653443570399472423578413806191989569154158991187988279399547071720927393947741440542500389535037779425642261764242466113192505564041490517391993263470521939493486522645649407162784952660255377629586697907993080354869400248142535924988049008236014743181737059607432125271774046022228237075768800728795354741496846188778699805068566867384911083671205293266632813125389789933555806853323953620625029718544599811812553227220535110045266360127128817154348546652793426464190789545139115381708156589408485297441363271133934183829253676564589791174375936088671886767874403464144632050936599815563806094354834624536140855727468884592747512084754221928798793724423631914888952484898667245101710487181306519658065803019946417496895207119302182445356058500855382396713989185397297058751944220138272207673072723355621661675336228717547146941351471571517449293152159374385645994775365317282085605389877135877030072399757724989163346816225382095190500757388681162316244278336736232770646488804696822680298023653229630066850997838082267608002655165829136989169977180735824607487057295243696189278877858699186741403152755841909901569873255793379153820923786941860254886257431201373915687140372078640132949145432794828073550231292744334583405523251707430663009624285540798597021063782664419195456937092025031439420728740334142140396121459260691350260029047282281881297282083481921123592119671626119784723055285795284303974947108098809757871385434224928593878166143349561543528810946748394989911258982615067000785897013270530852842867480188545360405863783564446442755243768409740286448594683485912423616350788068300069744548744979485310294072172096914860229878464429470759287107992146713869951416261740649030945391067602254599172936766707692222179969950639554999071490743480474204433508243790192565249943114510918323619564027098729742558502590100181949771173008644735008081147795424524448940270130938465731661312185668582526232741809905218442700084956810557704177725318668728250764241000001263832271902018349991896566156950333392964200074746801683624832510402119345524425936932133021547201997542678454624668508040063470432445623962465129494105597781338755165165721169294068374423517223504357071933704583950746201945128348304426118849049464050322768410634444755532011324649310804531036089408945301176000488606174991622535522588929809426843794360830372651686999373224435160550221418958689099695871813804616840166458632496920854399378639354763391386754707420339734142732953370906936658393487532046145185305257591508471472702237233321551503224658812002986129381255818526551088424191752001397997868615575094379561407125793262963959645593280948582235869560292339703897804542819056584574210213016648443048215127543204181177675185732088601529947506183825246183639187086305446025556033611043571379071870769698669571087324012812881963780504804353331767792365186494572196986452938774460942069215535924805959888520007649129667076727866640235715123464993397619424124518207625132638319249512803588945722213908583222097488992942432360281534863827618536119049040733660449290472442587605063456048898018747057692062031050507940237590457359048420792323006443269657831200918494900817735742214584157440474405141054189137717121848515295969966402864764777134777746840934417830775298851110946197294298888541646349897741878195921826440459858288169760719387404662776591415668438509281014234051588329652864136361472310672044435938079886464457104784059919327529318718784170191515110478499580149195893681524013403269658423381186840171146790638849689962511997178119326736810151242952477089784220048725843433875915444668601265670663716777155398560248864536083621389695677744492814544750057604883396459334307114314969654764495395499786887705952868112952775523286971995384381834638373978600022305879120018259514215949613111518812500595038954177782211450391646156109502399081081293568116865763643222318981450766082404227757776863282297669626166735487819792483357431500379416926758933477559021877855203112435634441228227283759258084749085925590615751866439941970235370177949351904090885025984235762104750849327595690510672451859481763755175601246838758297391481999378564661225155588856787374448978246488864183879413172980467089620819553926703944311111147749898210369828696929340690327406782006756345417793984409467178160146383122661384849634974847236644477318018409456039976356951287919692918142943720133293211686920861608240872842650150661408218225226265292930166330644005488628293381862269170277143064627296463895871665387110480109983859394891384046344670993846433124979347838860192269514186313655827192548445000028232949802789812865146915350300106550238343581013143684034394077713821469566426677306160072681408714206278720992608500724836420191212319020227908612621092572987528160623918690810775209270806144546951890934068484657694164005438697389811061716498152392246661086130843157046377102280744003838551483260375588126920710082922307940944075579608806757076206673972643314076657933720979856379527944331003006076421304996875306556332683819158918794302640723464946595596205945122098647496163626232515949869053818821050414747287828680725524808568920529278874037124551832418839466357955786105627742412531591584827064303384018222053958375723342327908746765644523625594354990323614534496047951026641026945156118550427562801125313866104539337520591264103975828956046539626857213556956320865761395172413211266214293509852900163261457494136646611467172794938924262587219914969692499800531250052498191732429161523560160915736235258043683463371254206091344490722192517437814359547791389488116067974162554160070532696936401301863991359951897440206391794204711661731902640502786271826541114907519301888741569537271471939778240395978541077915293180893435076290085270508583613966644037837291081385978061596113381030706050221687616370709860357471930585449701521922081372310421433423022023118245650888569793478985209383949451761722866688138440437999295551897866829902409919572829530922990422153746083606498741299628029607163612662730325859202131516967844835481161608536919361928110877834601915645177174748636401607288737811116151962012498341281905362146771618103192517205575337029061047324207118644270391067283211324532412770348128430088963579308744714048958822750257020347960252554316122992649328701829969321712815851781585522781620552620894349504941753717254081555923483100320129690106352641389078113148926649589650313855644139834244681270370251582346089049064330897100417723266950203803748682434672990979297298092251800700826380578522841835766648834252636915877694556362815620144670344673291292348073760179579647433454661398461115694738107240619906806202331271213366150819174302349075721541430248208562212610386214024401532198332182504262385484538042639949011204594091432590615372887825823445866730772529031283448704939445398076867407554071000424230544919872181761309177296000441000344019423611594798595574371008579415111199288248678713477147460784738247932537379735672957827790844578114663438260636703278313396972054440267902280831488177617876845534494548832487894737512496608717249018721656287230808696142229303523289394967227225130207445532270792684936434143400967587473906418723371133281221749468662532028911494577345026277318137592417729661240856248430842440485782300967359193586247413195392035483512382493621441812129950371686310233204272409657517537952148406997038533134314117483573776471235193953647834790867016390742065368666349770456413768392148126232048281413222999318532066615201845283141028892893701159005771751597972263244812212808864524283733580700600441590018298227445610155661793248039718573570789894128106696136651793480524111437320187891153236172058972672659074946015999256299111422881583653103719071280581221338575311534960532375279157163682287488194092951574323536641448120238382822366907285938400456848309600573221781775811800096259241125623207004367829720614620988326021236068126699746306978128558819338519737575147650834125896255857630656456333544320930092491829757090416262596309558465652663281478261849177857877153924404950466294987349003235321694729884163672846132419122276855831273195462813326550221470889817151952390277019785075181210191871643089831769298342193043799823401878349268582091934416170975627590536000524107055273210702871642607022142314201845405678548724400604277094573897323933627233577099766191847459667812147176403527723033397051063351906093720625535595068506316076638924350033432003390217512261107164054148191463802819205147960157389364091464688405275195990180462481430256203349689232048373944900336438216315795925279154958292473698143560895799806418416387209898418713159233443209072796732209124387238306888657712837289508654825880625626891503231758874118139897910327806464834674491853634423056899728468518893201875541084062648810563581516881069566484570719738744514464951964865466110009860578060934930659602281175046547448392398849302485817166840411584537810175796990209797228896420421081656922454189271715066069035277805523137455481231474232335482192422089391951675249287233164060269272736093938933626229327323454992138252178960587505022284139943564183558043620911335695520815626276002399718367444358344913028221157305728810180687770203127221759510515136861553095397301743857637655364926299539088927149498390949559210699315365643750292814495176776813530723581690732998733740222217789811658627899789594716645335257820489381793184652918720657309980222693066443613870873439027686614844195653657096694399854513170092273097603104219376385712030246478991889752565950549419128410317350153752808275946733908243439465606161357046336678727237096257837108295175368451918481066590813367503151278773836492712700159527006366888764271253098076894562115576618688993686032601042896659723872037198909255988288424478301808923139162030342019367784670692411414440449523800097103562972517174765022304693164513596147446401223150363294832340328883530836423531633381355103845391848449337704424020911823460867226809196911770344769990281434425504908862126166225041093570972064941715187521900729533878413617141973282777211749752532259838122675341366951329762944182890660204749342418785094479088989842743481513766159117462498701652897605383655213876399367661657677797864276963096938036831713765213830854598269623952173476700813453110103672476549232100453350173553214971661156606265236578399146922378413938392978449455268302671311865680281117693541575980618948598155465727091755148923427320311284865186884720499870160107198544226412920237386653777909471312112858420806993446365053412238484035966682645702660048267530339165187444752388985000322404649013140705427834036258643159238310604304308484911196542017695942983632816416882573132955663880616777988334354590029587253634137724474091253885949021354332548271373939851742376094468537344665212912054417907238675362151365892156903903823785422901466206994772203533869501052955038034845243315391302228465272623178508126031130679863281242524017303542894926712037402008459748502571683046486965007203183361316181094661469287979749274475262081128155104342450874080335970975969092038995463474736775028060492484073581906613381866952014291381228229772417447844074980650136963259224270308709729642603152188995182931239646801735078068945631689166043580219904854787482114051504321125726218955699021185723558775195177681327533145494207945223129950993380012286364285380647707926856557656594211981019228854878100463457861645788369013753293412703119400031998419847345047763093259103498308813232035164638366440365774518233120198727412708750358218735086912593896736498499281410399289221293002546285689151057903647966528262400609744002977971470314002682944649550848364306888913512631287799990124215347102804994055978162641944120607642644540637121782248284881882217167454642233180045180078116211915968891892409237494740241829410436783492733184725023560048869676446037676420137920889679656752072476377935741861438047508978073462304150264887260165881323284623310785412874822977703580850172321835477207774020745327455343302896113251904488021867696911919582135581344616236978812659178203250437847703654100787318760561825420498817195982255126983254220534005281256924880436684939403622997085585069932018150771402164999726838663776132297919825884677580346183481374184290873461126739855385670024523473133025943353861068009979536690716712610581421867636956079581952325298677812667276014740537479175004471931855307735517957089353902498977398412337873671580644289758241264368344475457147068641641920939257206201120030345126352576844776116689714047806073378439340852531342694394671518152496094829205424054544674205805535710174785202148742542680368661202349806188826790530036393907149598168190677240440852881575518829199160376418844279307626900222313095122377108284926629239090728373107199381299619988642935313218646264340545491291341204292464034745962038153051855965602423647969107241328849966683612402381580274646797302608044654615705267704408452816190153053124154498325877731222944826646448530108280704204837392588426131157674987378414110628258929856544265331011154468196185126478807285513047146963145367630590345917842958520618493299476972113501183528388469591555152770052352616250977647350250912089575941694620790547622552519200555679803038956185246600430236585432734196664848489009055567966885354290401830609971431061925852020632758969527082708527487971936456936149383718496075184814714614601061265204970490076429855244949735403492666166165426759789121847792496901960401175616058738737293773216638702068336142811870783599844149217289412550703823009921956776694654443061040116457622921748002797847678316921922744078266621105565233048997466170000615515551452172629591178512139146735450237702880188154619150462434464132018107634041946237558641305360264063848374260689093187612563828666591728930132275734457898876038347825552853840647338630726559256850784544136556369307010575672355051018085868078785116880206496658303987484074047896487490984202194562623948102260132543100113173009401447337872795691067970800085881054506365143265120210461663773135759625017078469946434431454375961452472834870206848483271526374473386048038327891776403420061122141051904477794489371859263939023688171191897392634289877973489177638233854928036446560937879018823409680637155077159255348773305944124090923507030021328099222755131909064648896967035546954920412435893394126623112693649986511324155521592595885739501234609715982373001841050012572084749769891549483048389663539369382961520159028214569540402000455234075760474360716832808041916107368038594932372746458043729417393637091405627597013413721771207772450488271110767402672518558131203178032304821626292977551178590302087695803291962780622488070247824792452553557680161137988645641987810188020188914414944523672189252395884053735740637834043147213652244875018869436916144608155309388645408763520986759253544397183076800540649982574290233311410349295922547918265854190406636091702342112813533250829803360014049476930034257231886488140310310867773306448914362604588632471579188881297964273199365048449938849696239617730417892744364929565784691633501449385197112906375867261444545571691354343571302826438197322004148898894364781987630037000418438024163162320338564948765655695947824912094425415744706787491830490154464753923742896333037628799307226188907710950401763422764824686774262277235126741333925181037225928340812789561547679124048667436936142492805236070663279174876535570091565488352261624512213536343489636862499155248468277790667089261098085493607487384852947698334328803154369175903208820101796879537467796306367031496396418304764102693321619811981466714926680672314935266605004338338516456261648158161172069288033532679108111853570819759397306511415155409461524657154991074226606124530576167519919416132197523778436150716072256379788813308440893545198770244828795163682865121553281102777034951015853671496132294444048065583634480576928389103962830023657913414665334783634517513793704640926954084372284504722375529730026866807102494447112654027344860107799640986794562443603451065508529615922844925798301605936268956415094610118357886989915922797750869318302735653130481971953526354778649257707241134530424448373198738669671564163090757338681147733195364670537516728626722731081709219531512615651542496731170160927061265182891704822582950004976406197889157902025849104384292579218938085055954788250145005833432685266893538629493982541183845301391548031737737245638394890321152827037508327435405045406047896794297715791385023151146894750589910177634965378874208310137978525264095401365512931773780598807554076645060989348266837051235759003930163617847766003184443475573881708403498423165725711332292550249073208208975399929163148619356283105790526365552176140168147181511921081615795836648901202466073234045427551379391912260122331298635801489944252878644772338224400903820358386394974139218869709480586982339520708921510510550975887220939237841182194476715871454692568446477554242929736333956023013680152195176673424917065714335767345115834488496630637058557790961177085043484359869749483628230682704427764793152261916811107332975364580247734672539613959577785994277340327247508852527176485702527067444846301515538498493505291411718402834087197769771363966695996759564460846316541358089373560696690891236989510104668247629894628061862352612553628282986862486161321986806179642094661893171770747885118066695702017147719989144338792739395954145048986937063606517309661405160453883994343110088885467993501736760920609173745808061046928480994969865087601090880354200309443761140884569392432757715910502142492939324289922791902095751706937191105302908556494106746289827890824756052107455768442031800077600365711196541236571263007552282055475928997259835579424372643737167769033571800269175902229744465060974832445468333292332567486709929856995527604626496191803269050100298228953034987670922239906637823448156705527847432466953270249254248694942544299067777825848438161183946853025812762807123733708741454047942339572270704366126559746436361735857918280978210295149626971746706484032173674082459981439890485902400870829417709547600669604417033380785445518452456832280546613415216095564371829418817694562571858125620511676271824370508381505767838283179530591303190909507890660760720685016911212381055833285391336135348755256974202776628515932017642336130688978979363186986937652528338148035587068293223602452272922713882431325882985647305202208813794827724994638076032778954723202306457442290838956057444572641503579273927134388076794869724795260091598864366960421895838851897340523620855944143328762929069463424523816219581654011702051655428818831943852422559289019319070174982703523528577698401027193920955421362165465004205393295394403071298019007236966797025905289176190833227224929166440112941255119024843029404957491674006210581812296246777511098757201850193028250480839362654145755869211480991281482305387477839825905909389204612081438267678291442239440849622969257469144702342514376539893646175845443516012509435940471632878058419852003010485176063015336265212139651544447429263228227995602930561342452139268084814176106536293806622313091115216524644354054433658764265162677491807357864400417206122430541514567583872649924775976412028656627278103280869596170519066909996556289978770212197824346557735432680653238613182912315524259433785233913919644770254858530969080108360260422560901158526315157826618052307913210968638273687131166847357616051356868488436077903489161645337517056220900974944347784605721747785861893284334105918656709376244143344635310385581799604910324623448892699338533683664722383578488798761397417648285465379577313237153251633904325356842262815787722026130973973168001554103532665224424390727699018136484303413968713346380466675056876470617078381325643508357934104289324359343681947973589700056832422935374440526159966626372054343039653274374399006393963659343367829486667134593938743501390764618343011217417827727707248731428756782879361116482791779138676291117891222522004509674809039408365656787343258418056209512165833167549687471353683345645478096512341439590105255708093358017430257477096739517032209775177131786902069268796387559171540925557067259782884636103042752141100362456646877533753619283251375898418852805313223630507508546835129979492666128543135054167964861527663467720509708748727234849124885843174776958246958434432228293792911330368290161470755365599228587884118641700322894949344039828203509936352650947276771583851152797984144732566744868632471779449108585331527668716970002868568502681907963226583793043405899087048008871389563062562199436835607119920282930199720819370497191194232111407251345731494021840912631369001987798442377462291889383122304241293403760435582209420041479206962367670703431416569909046482211133946764906945393732852333004914961055782589058595249647810773156087939933598396476703128418084786087659071816921655340126926460241705749173307544067056029177327230565821833270828501025614872487658619340584613743620861478432958942825264150550503429773689421638735392404909959304590378008362071171805688069125854643279710768229374816208520009914577618522062886117072345095719791952260005923125591677866084290876815404037613554329570794851167558820713288271278533117208526018380064952929304588563252803383310790866825411786688045138461005082632297202318104184543694284562236389221896347216923960231060934391860557815117663170423611025816775316226385529621317919880871059928590460231874506685949689885310813507374663274289549578517622551265470603667270869087793375540707507599433779275375032141987755599570655628599420778621136661682906901710825255616658603133076419770470655542901683252125454793654133489806178176310992155196603792706383287487527269081494456875347269359444733751560502018824323638074960788724570805484667732711440530053184066493211106526908099576433774045065602654373439409841938609962361494636471921560399341631808214120181503741790677961477124428031776413258361350131126873074193793628368956414907850763486001094200564169152000054599709676553765937778101845259597005201199167323774227712742404333371658104547967081369393352060066216979589765921706265156443781901840846743712902120505245233467922244553661856583713781223438541102063014328825620423825625744342652705799048428026927737741536074477834054073951716862791141122398696477670059570170929170299013375850933900769726486305798943398960656864975966707051847442222338739427638405025884282836232940884692537491256086861917752802867726476521546167257184861089970873030746202877809917865669461425917752490035895613574980805705993892219194124061732894921997571705459344058463854347081291438549994919466032698570581801743541980890845369147457887415312848075299290659007559374796406460312709559224434784610541665600038457647449087541469400408473360747300900904710351480865013624354639674377218941569927927056115391053900479729027929913808695702687772114887907390676712858745362835915613087118170782612945228500117502022782366835584803678782342639580916093285618130081007570105754778061144863055130932619526551093568979088774475236471376735429115802344632990175883455482812768436262014686592838302704331180589748629884219029944269862843336801523398044892251172339128997114577962446893754064268817995051863946075417850978861089192157028209853424602316856555196042129972110748317167360810823380364752752999822444653482596510292074515072846213875795619634737267594373276780091854784570210827554956874677786296267800448042030405527550978351713208603187928233376135274868178864656375681999734749178396513471158021254007746726521571665992168603651495981543296506901636893247915542756725082725951483441380859533764523348443813942491774448678252101943330026084568635678722635756978379762038179339146056524785270269715374936060659946123031090408888964268945453421276209329430225954771709679610656490398296842939060422044168708308165645849606392342274404847778241765357302279249176780667323412007297168300868411121985543719362732927667859682445285933344552141590814830743997883180167097852162119771140215926603406022461449710408917443785402190965762662679714698444766550644395277341068649135443801006944118752265110871676187530303722138340894141621324313671605438178600587020968260845438848113865059241825744445055298604982719103616202577667435371943917713355859146334868267929401612289376293101574793553172794802697736250985504222560001673426660631266778896071457384884149022424331023538513741178528597734974813624769537476412696230548851541691122345150791634008017508085745361380745137163262377165447613014023322132742503812925809954757646861533192037859659347096362976265598235146771316096992433812053847301290660963640899671835825014607936307921124684117052240949180213177308090820024626238104729750044951638087669853950187892837970079368941159825017555154141394913038251551875725669004573813219628606383230210417224198245048242551330805338810045962098201002075446153289888170892139114888849972015306725439863308834906950857550059163265936396883635523712711195786089648461342455715292106260040549198235671406471663081340909297594963365544428272495226213072638683566237137937421223894368587024891004270712088948576851939374838875431887400454367344863961839694880122058785312347701185692859710976178725681037865678605011867170459264711057447377657653135072352422422611689762285707715131512894519647767352196521088906119434255712932359333074965049231557027731035537197788675680442923657941329518345680863232356303711227160381414446488514534606361118536075037918945897207198873441068232804278069135442286122271467109207357116448801598281589840122977699784676597353556955564461276412354222997057942134767009580945132759997053179157043816507332761671740735090592406845439025276851337815485954129835593746836209185576884353075388124233870009166319963067919767688929458021027504016959957903324949869747171327115213271159109927426898433945333769414760268085393921947683596095360803994091482679826793290139865633325868125977355188439036215475577142103027877846082906916110400157709478573609516561691584324981332376943316018477529429722349047914517084205964507624656133165539279213285893726987928966726418489497805937121380725699494586936064264955527067109465465888606922975088957172897329554393665090394297904869911203341055454052748421635364606134559876682889493751486778404249800224034287943300308688181748662800356062670671096395934455946932696606692172915779955089556003511213284014360805923288190087043513656244917733481708338669344889922944721252978691378424859027702109460765646306603203261336407081054674152337383068535224229839369164031877524945839907853787345977530487646864851981972964059056744822825500942400262207552104437465700887795412845547357628237670623215669279131158439004234362253411482642902597121480188197738649661742129894728341172417669961372120139127653526804526827845982342627347445376786288378656172903367888638880753290637053522423007113746474169835010005084033774191530192046820564882405973231736998989333402137463506600617823745669990991202494324547867781033292692069070846079440610740105838597194722871064256150301111432155344195678820769797732866703180028602381492846255840215385862992309786270665482383392918186030462410811633394690534480573824520444558725536597061468858467910023391587840553875818006885441612126594292819697841399931604752932124809631933101557513013791294046353660129917764356368455103090713315248951848971815342122147600841642558857256909093965187493086713891136070915080629221171286633045209632499925737433035681234452482940386217804587728303117000606260063125061754070116781284774952304263013749580216521183800765158033848497272057024740453648585547733160425625324196474795250848296196991660918584558531296076936288944476010963027402936674165590612853540410346806557811956416257182240114288430848155387973026614526262039400444371748508128424307701932961287860923737982384273281744624697628907689595981946588766204703414154037097303720187171889399919918641688245545823289286733820350122424173408067023942979083324496349638091698801418306646558932834197467760831852852357325850470455549965484709215215961936022742793354784021248525536490956491933658313171849976243385480103846341747429247149824012718103906354420757740395654426443138652740167027395744136434981400505306744472746135330077973745098221177621263495247454665109909613788652303548932913585427261179432061084671693250711104410538213152215507602188206617767194983339711022480478389923308862898111321513977553148122845835577282258218335358133612432350957797336000946867538435960271281628157916440707058399877362085277779752243215161992717487756915421874939111725829169236313772050904785121523040681258587009663679309461412144494994072463459051319059142220851132410108491921794107191209285516532472936468946191948921832462488403510947959652594745623214866065594514569771829794769165669587127512087166361389053302714716049528537178652103918561765896717311140555199431808601144356366860368478398879289064138197299694328601199996483088338306974219210511832436799430624646291474525013799164034895993316914192435408960989499952164815982453949621812775473070821349958699420079406256315959582614565363537918565710959892127798581713724463554281810927058023761193263738086930856768804158203464486160225331256733268597409417132435760651459557395651496077772271149833278747898850152095464326043220451029771401879330024532059983376844202209014281980064189291774014325977617398350647518685151736254515278218075797676699397398250331720814218111721847470756546523052299885266091370898981147354572513214748005240680723987177792262163167320545978659222691116333599891537099267146167537228907799495527406269112733219358314464156447954251343763955277874140296994259481746631354058487735910158257865690941842834495333335484782825815743070603066262660495904972858171745784117463728525938952992240272827179080521556453174486026351288634068515164427708393288837225177042157037655073113515771782889908076711733956911592839124592988581634257767158944768839198682853118739708639964729375295162364251319478885715779054073339379434647834558262367086739664607052623414118689737266274569171324941971552197709094944682849088303950339144557163343297001355598508573198611547495703253088120872904465969251061106644596871872856432064417943548886966104960351693899720355461360084317314048222021879533188196156632763386841049552132683467604150902674799696227858715519671205264961944992164043546406885641486079298440849247161465878850041180307007236798584032709388781410019262404358322396507622287500641399208731837024834695640489927985762155569278896891057744829761581411404826166684386348313705538385340047351389222550933563935371108436858496113904011942580996351871150400544323637990151801792382787442777922763405836129671184554406320374592145280579063518740204753652134598633947827208200887411363338506037351421987395892031048804809700993111772287279636580748635063982759440594275225972432928425676680185711541310099529208998506357089594742102701683819066818130708705886550084999357490451903917725182416514542715930082151308588837641028801539962861665664142919625041217990350660726716033821542331888656668484942463837250835564292954269978821235438891173145900014488902359841944383779506745185721376018601433696164705897616996586586994400394955131139518474541382183109694819739855061396181413624686182149670560980447351921901657856412327439572327480184589253837730712516539706731256543498374653174966348137137923187385921762283169966696723896236419044579993889067194120411759519083551734068143854191923961958541858644209215044799287774510202327184303865131845614162034873220928398612432606409355088337227034426977784663265813962190224757624196011245129690009009118054664418043827006073133265328834590747045053742037701398412845493220366061839096046104868624869894215142109663291323100309210207740397025032421328680186945519754353288077727709528403973718624669281665941309429437178940634794230860184346125379440686708026689014707046491968298251247367200595699994952705284677205514646482285429098598766966083970603566482335446932396378198403250284817296638558622571188751129760763438297860443531357067980319430447689316919373121749791609854450938260030622335987217936152275276416531580590880396033913282128290864167822443560278528891976953272013566550535846939069427967667742713760701239653673171247509544614368250483427304420466669315860828960447771020431196590652294361036683882761506636578436469249112126487220339414160479747250382447921116889118327865910203271874006868558096042727234679478825922406926065300750013072957615789858885182436941746003162296364110986632284142542878089409417263357482953986610597776205701546798338923499911743256036840056014367918254924557061654568480546767596090214814285664998604192387260914109633051769634749796686607913021325749355293797322052844390826458870704289116517491403057005348830111782678268538840944093819782109192817422301920377510641714018966301509580516605805989723266678175978235171100650282009439042471917566144454513729562716635152002159775303003373130027138117388947890466397259391203579484951947493780222656746012060031627631448193195106757857100100275046162798962444782440756445817597745775407314708071216940235916794742715399466630882644731932431536046332691094629947638281037715058658269838377185469914813957201089990371924896434844850338269376710561193460813593683940345425773818475500115585397658176548537525513750204022000042977476403972019584671362632603641879777226437013921273593802681136929232539718755125622991493442834398284378768918242471228853822054692002584803990077899584702177201820333204815107493096897124099092511263212663125403825595773576217043938848788652647988023662335275960265260492244713410371594851301177048045951153246374837046519592553209510518315708471124001702401738936852220549409526383791850570964875016563743854215089524004948449166747266566952686006777078025736583959478260957822022238191477087717790688477377027103360644236355037609857810664640364042250756155752846953294235236153873003205644993610472504199220640738439227994228446411782264082005062950800975283087076266271622197420773334324072052905279387037661070252446906917824251399962047403371756186397963755255985906445583021247169310029536956332790109938050429957770547208219876021883019751675644893395795461522541381431870434867781091275075834612133757601972139772669045746103270353765144931776514685705463707932768364650780240895876816797730543951852753442721633493800296650808501715534221342807349843950321235587950152860344561001420476838760990065305221237640144515170779761097713490593630472742560852705159033120058953559217598330673303177540301750752838905072967664431834671999911098631583195920167864623944643053838777493618081670758252307969599164411728338629693171711596416706193249659768288349013775666745333843550397459092961682213582542888304820652756406827781366826886339499988970855145857382731227539982057636972039023330240519177466518539947112459031337158937916906553496110138238667330053003174131307606080972433886374336373520519535999568536235324061225313554433313004481817340330299007480430639817470354478609239261318652734045300302743535006803709582101638556371093591390772077476301935171676758312935561169889058840237791119388972670544989509997577164099941059024634279109178078739406043963360234296577669354618632317829545341882074263413435692586679991744249033712958960516159302642996600620280914817947393595856307955545467116612152425444358957669001802984846142574018276349489509713852291041699084149481666793934432662102057307674148364001385444005230802367728954560297173088517331169218543362031864538817180316084706432312333634378099304163983554610231040774649243405809915007928408374027950427992548674910440841663306918894998218388486707525592852948503242501872259686276414231310261202928474644800451766869022859438146586222921442624491251430717894424894829152384034210208756115878511533557396176173541299364943670353608797628994991135061206827044640040144117823441046574109522698828521117229142403810079363393420056040712240908143880050361271536017439319781855864296569539712371817893154688465772852233471040167627524632393406262577600460465909314474330740313874198347608456217032218785850967145554941697953564734281426322789268323664941772801324349718792454490054221213918323334961196236477654426851892619227340439486163831485867015853766473586296438703253616822261483872574227579360718646364982899205726757699043437171914141596547918382318688016824471962707939800418549142219678792358161019289822788800580780718041018797055724752794557675607126193461033851877988070897356615689261688467090949486441404157505802075527000078238289633941639813081610427993466464543155309902026191159557428943648470704017047931226580143561462900396427069773777632938215380752456560483416973724650040491261271227077190279507720509342812128233671652259843008547001523254416706249948847719408980826322232286877800849681691711283595997281700764152882621655285830015304363412871521977262846448305055441143103806709256078070728775384149164130776882137651594563545508912152096732396821007388791434738982022705325008893248201339958453350324493749601159829859265459544702573510408735445589812029600760786913545368348218222957488531841871972945659355961645575519414565392196806728554809405857448038496801313780261122981423071189388940830412456718745030949690178496786695583932504381446294515253864912033378840845431167427111255794479141401834674565241176235315798722665441804189704516687910582092719065744260163315223330052111915952381742305061724745062970110333209890644559624689909309887653806418987264051419736439386719252541220015249839884618897528511134303655011377318321158920862674770331195260497457040524817409885123520874281220246109628817584782452488708534074346325760764549054442855686487914496259662026692142440089164167879885617406782269302230402186386293311474603129016692491831815765380643411626505872492905594329530543383198095146928016589464863079753754140406749065787572402178889346474404480406378145315439920483393131379142303884223363076231156097411309032860986905592692594104892844654771791002398871163914343524706365279737980134316088140933362938920327208139995877508453583276770637912837379673729689186469337093823686157464896991081802925422247669800787567455557248962673287010859092588238463246550379568648502866630181045526278640851622063010591403391340556493067757508267753428680141455222773908720833783020480433579150767234503949112996732474659967709102348180579625096160119616393240685112693941836217652281485067680562683399486174339742719701257689017792083384406671877775978842411719336893049859257780568292842910428807339101472181027836088830103886266605824128982970980488907167389528302520569031918598452949029225721502971933468373092076585360990166781206189340535294006446679248459106511913089528938947420575710389588842692700971822596125468974635060328419592352203630578972518200534787264986122135407859973796310431007731149050893452153860758024702531023114251761135691684394231696695249956674456766831211916998696761738074839876742941818596769857773981405600814623106959580355263978116028180039627069773363233383758953928608865693035612449061550528974225265406756245089300833817752347883369557295069537394415459759635126761763731434457371739415132216873389763101264765095525311430534920585256704541887119871821886415319928816428625700132578075824680159621393061992315008552937619367007214372733770163231091092743814231002753255391433486578172731033427295668278495049902622916601645052493406533737430772198289149685660537679672177403294288990436383254247305279500110695701397061525969146405941324204426796758385020807165497901362134230258791374222230395409123611515878520787542139823697357698397026608783192101336625324379062557197045545287024110074084241957106053851882335301077515904481036015088794981902782690454509520342611794468586599432734900783882536263629310743162275898036987196340161332524904111338427916250082669112869109929878980044480067669652394502378207849108628546328747801413372136996635946155913047638982464025888221893078497950859275768698220853551192245366377362083203249860723554868539044693132374765340993205480096961900255069818276598334605666310762955164824581681674591243524756872240513650525246463651263302399673957435008287884083637089096044715526510796014971895327826421680530566665647336050293517811700782294525017218688576739199469422962237235604670573481052012498056863216819705615533071418357195632292571757012024738386479795615192731820709323701794888576040312194087417553506178822449818085394849500931287223116561386641318574527696555494081902430311591995175107339904072474870432960348937136528672613312272143277976173981406925916277550582555552028232157148992774951295608757028759512969556174190075399099587963574973646725294213520282786525398273673283280805709956066731389217416557887609546701691363830712652500494427743142928469973368891757165028534203160596439795202166057905429768302787910810738350820028249687864409149555175779582913266245097906177243197450261767767104595432534839909672505310400302100986467844039789008586662313652901570130998642222255665711907844949177419029679711338559267272504292247322107334498502061760053710285006409923898146739160054221017856847270638868777144545155074859479025157704366609326781253783897679325053265793748046247305067979231064235860840852091698363940858483243110600004757616404929459495599308409607177922590541382968680287336713037172941295069130597006632737848021605284768678990598076084998992770785479708207592196190508236482866079148932116316298582162409889100454008298348658052465116597998041951136069589158224018466781542436037426553567835746777474819766453351766627636269694735829312401602094890698369370312184988512423207021409849596373590688568835617245224134336360242194840519417198643973227416651754126650994748237587852939291791571030605893257446131504778302998995879328722460645550175158099204929685912228778986692722881877166008387983142195235868529797953185358107274574728713050929711955564459823888307721497117178095655119536569449285129269133215999834127467532998258003598715541719441972470732163068982330995148060473194236339451440758334382243730965676667050448164056349028016191915575768460942701425713216111855315190739097943614950037032314734536695939528402163604054582988409181696681743356745515946959488009955855947124753591147405593070427369974301811432842719541856573348919968251388077452589188149274819826098858238293710839550645859187708961494615465970009518063986585487152287979045358933354777333322924349901735761325005914548185634187080644824721986536912235305528905930732070648348429607143785655086147733550000186601913443958273132424854867460814927598203480602246388072672319999422741083045739222623267263488541998578439371961292685578527012852038962857895849117278737667758644058904412009582641323153815679520082217557671883301827596555902549712830756861638436796242982988148884184964298577514243695657151069300571312857527444562562069813730123202643367146012540025428984097189127049688959951423520528792619515886182788004022778733587442056919839774012588582698764448688614203353177301126417099804187080482032436263531150753693825486675967516389907921893965813706714475100581488453577360925257480065204139293718929279799902744208401697686663257812566818689359142322073233968590234335267149323127734296496197195361679754374772836998882629460064003003291149551731829331611030003150042202706069190885243424732405805623026310248300171861227098785907012549889289879997008088303274858835131035635837977535653545107503716559438222675868165000094904467760493516593238911713496914648793216359073499318833067736930537157505077211616359125079132349643549757794827378217721546594803954493021403071894319385869003115352399042151722259517430937247396036072203582330714872346961511768160697857824354963177244361320349963801742970433719218839855221704790866822831601454480346123156233145618482958740750430775317774044831839721422277636005656362385913404862157546316541506883674289371899246628102973249052676120732735589224940160326868064548330144048063155743585362756179180978646755926622569233995050017429699189522488815299877582910365267236041741725878537352981738313419677713213720897613182491430506208549476660647194751900767073633371301066682461759720008350203329419813509623436945658689808618760883899878412520552757189265071615656922932165458362779626172405425624045913512887452467207367505668106954134705858667188790328327712588745599813468564414064503230162913010957108863543505706881487483048102402012419903589402830736740493418565256522592926824777195480352944447165537463657313270711026396101315551362593696770842092603884805792888471858908328055905814497368091047485681852262321783885914857253477496210303070056311634668146960375373469756566112188190391769195104209182674901572863517233696681269031132128766316979046070911120747457625192562309943533941619705483008081639584873752815838603303497831675035540588529930333944542170018313245657850105908523891103455521496418002785471129310282820047110837020036860430380166673151892364317462425460926389257010046353342988670341781581283065314505981926256394000437144977797275877827985207316842125863115354132880041749717246054803290501212356614214124183123175272524671725355965845338398089193740986475536608401520603753744552861970730296597215061382196035399881103657328274744177165684081069058165176606040005754380481311450179847689260735192412213759738926659226816979050302085719473635381729610354561785582341528297809212118834357913362419914785282387310878399514629916434688405830151172491042924657506861856269566202635924944151342683390545777236209540321519320216491167251155563287436387052225763461055097150014545957259288654180075147099393515160598907363519081841302764163820562154943209153332330309812679852815815585647339274228066691620967927717705793695598988034875578747532256742401408509292766150474206376937481246518162505490496283411097357260027995443846237578162155699760680856497311119914420412750214104097747519239049661884291228735315590186825974022530722801172202124865171776852351083581596672807624694367071623538920128371895891403121805981173559180453033652321469777211255554970754267373854425326226426730081724656589197868658512283204237413809615482792495369538472326492939964931867397032249031342836163343322207015723722599346951022441912821710891478169184647508301920798621100215042056756825485403261224383128387720565381888222525199760746443328181382806509469427906937557347483225280023459555894603787525072440487792563247152007564947020401133855113357293029032115377154514001216796834955962776404486542838335969620775010181806271852301870554953851947441831794371625018642525854873352675793108132684115580281019724547999761735499061902426113126308398570395581712279153546258810063805881609901045160984342860131320928717895473462231828658115290199217842798267241693718711950060724798972913401228777716622688562327648933615153699856598547727184946964270859792900060468782057966711997540499847086603770116668013027664126126088508452145597586206651250865230835848382634156355059534263335846657153474547437429037875874733598732469593622044893482468239363528625831987999882355745373271596987921886625854898433439437616933522389424396435800097327271744600578900416212922064264118013030727194850685040538631367398068664833014974605997948355721099495027942063968519023999900696169542550479850757740954082172312743318800943331232592821544412344408923290558989038308616076410467053738016402550912118310527905245686624321782545152037816619330411700335124859001120556909592194198761265404703424049333854627252784646613444143045692452254023345158213130283511396063237294594729418377573259768052213729491946716007493996136475888725893415972794176560168883518379209709524303029188459541102660724148382297308116164351116206357584107558264268219076735286770252642074620152579443913101511394290353642288574389177895324572394522444645104557228745698299810383724206643947183742455843203434790383677876683259397168785187119168549302273955188623147967412020389802977454809794387123106390405545450707356632101873427848074058832782048089729675385687221027406226739378561644398315171502182916388361100773174641186290564396120992067153382100126702560518644058005246736997030896833742504595747970342864725579873174611556429799241765948236646461750616811506890635258807235449311354794636315712869290255254277346923148603385450926859326223457388744381964316619952029095596457433107922270746514950526358446978866570990917218551077200386174134345536724358318863201837072966185130820110136854726776787690757169124869739913545509579241801876831427454848034703636850698336066032798122569929640861232542453808214581326838605943216133655847601537029604865552941574973823202580332356635021305775998483299775146369527780115165313982630027339081629799196995434446037268637674251146075375967150839808807278945584203595002115105215920558401264669400820620263764012791841169133515667309495578772266836922771285278908505430548479606395146053810396205197069945993743557379799469669937982587570145153510046706509368699017761054926590066584012834090476212147038725394273797381868814071252315527011856879616814187920015203884505360565221390360070750916782750669712043387721448499756106579978459406930614448809401290232715875598161850424580367194918297119478521703388569707848098246796006478065221636920996834567740195429547946191484915412446320806593263478887037734321379139505777933794575915595612512893120662112690058012890727150894714504427029652283806380740577914632691376930972315853572524532063316550062333552545062713697828315683856061894276511197592779486391522769803367457961633792777789314315787964369030985161038888989836121410546839354010602125727885753258008811142128208877144072296620513254392433712193944525163495534499488729561158860132524093974848001870302603480173331802170182507733450157082466569346012754447603403003268817481498491841917481390693153843124924367725493743760266675792812228555502153769954144012981625146119358150365898327641121829854271479255103241510958584364144992967049518015943101466722944169152145887368174475747841923803785446822741116403297906837258347587683667626954944585677591056777218628634278035869702741537989916089566103943042991601718796120900070166172767968462320950983746987574683944339407960633076215192037215825935760536688978330083296171552963307375708151888607369122094573591004256933317622798421849784915754088887835114020440268134627535144706980819235786157687124558254997871570470500760694799279129339464077898587619914659998803120729192420802013278788478036138098172764308808912745285421559348141622785329647747994719835679676926199772250522231112671743294124605492942594717459811275630845108996627992900911244839284410427039731531506956819597110734651267914107481602293455467880111046292022218049437075777300059910004156179776555144619905049347062708755558512188913707306103801215099631075460660742159587221469539455897772474046739671685187403817184036171357697102161899887716043040648795910169576340216401950384325963431544326000907105423338918428487289344500554950812826439510938569744186502326046225453571844236239651453765282883855072594247270791790812498103660648073451071602054013026158719112472417824354872135455530884053711508054100432593632513063501055000099804638049439798009035605796477377686032636027308480811853911499999370468595135360130511416676316923213590736439151023833540563101146176410662506020578275398342286627432211383909395726113941968287353566652428246633454618421078503701858308425968762704873490191433345268290597233504352436806960093956215532154542011610990167046933349648049787093941126606637299061038695726821711918827521363110436965226178944344848314319687271617349578294944830331438229114424139170988946362923826188227781710152640902233138991954674500314522381231993305168037850824574320448707683594902239143615814117137614561525161344934756383401242730278984527727414135888938483204093000585086327366762618196701596793857294400317184150362418984048311394312012130626912441645867606954024841070710577633720968336333277472010428184855269737609168237977438591725604295220904039406991519205793194252730683410638442276370139954418046450687331296513789999473651303056602795240575635934736046980322918292739906176778921515584919468024796925474126375054094875236839352943781655770809799294817264821322779144662582650404300743433004361900693624640535154947319041364892842937850337178304589338598406944820360647817955306060963408229006162428763357217232866545780806074833391242384590961425325834156223207607476142232896717057369263424534286727399814688153476240787987513949308208070244830873241041265035271113889338796991841812300207862650352004291740404369396803434317443267127638560879926046599426496949624268942476948130738342173609302607822122637751089801796188694566115164082745859294104278392950761440122324046388172490169452575141328883757485187932659408344928977349169985156741106687740609289491352302792135367022875792032022391942155029872182369165739204225682806022034754373582173643018401325946474831294860401947602283013827794562002048551044092957314983615077035244482430804691140257130611373942255810470304923943993790293888769830127319129719931518006790284582510112522615968488571088147749604044629086564084540574505559709108924071182080924332133685220328060161108126054014097178769793123831055463583480855103210782622753882072926275517199843072270007929972896478077343475309884848946508548984961665020775701531643389358971731488639895757061759614399500671945116060329457666053420105045112821023387693992327231548958245339210113940121609644374132017112463315861033657219483321293716176523204303559225728898979851280254727541672767898148029065418163584007120859703367565202363858603359825919782444194830840057381714920080353286636294555732665985716654255458028209027460011223982642171289361994151027724968746975490887577579278990761720802505350182251968153709080936649748065958730839147007945370670622470512015129736275716630930246799818633666510403014528967967747502050640970889861519007221393279367853819331528379272314063449458716341019102995895541045493342340057447524117797319787287717139974436420320019187364762214120901306576020846313580724726228665461699944909604671386792684702703370844057273737006971908823593266178739064127493217119303391239110922430126103096232686363699885553517245295898348762216117473822443903692231216081629060403212515112225362048705596648301183094047849786249442675851002905652171264343778798392547227097078277698214366190533571057346289283450250873977635161820627635913824962369812959920264452747698222042186114354754398537134083446300939356212610917955648167082163012869703116219693303199604959917743859879523597790721281110474678941404854667941584795041701437426441523003632096524480478666045991825814436773220263825551635950524715261947779160625350391917313218078028375301977678735321044153253976992034735461640275477178213586346422313436321044529853388802683493724800106396708727972300732165352096648109572474437620688577751542264140428565827682103831182642705845053820155939818319049308875650734216620179405328043806969270537580345435349417358518299387154943704395154954124292901317281689611124549774466250723508530845869344740570870606815469577527064479304226063205369644552620617502622287608054591237305934821851436860461383008292825767252282520511336451154949955807340771917386994981849636732802254097118390974488126864361396366734803399383279209262346130936277110669440836014189432336686776800532871289514765287710525410969051379792592618657680478947389474288889087382053246107570411286249914858663483795096921373614608173069800688595195437692531327981217473057370155410187109218328058091664561826387618913532294940241540554952662574847998783387016074489794533367403604459896054322376437384291991933758283534784353974737929329802618014690363942480567947605874752656177698919335457264954250863598973939497589650320967118399337309083898353084662027363769587273139249732715206872999368682788787773154191458303721600537829700299082494166003640175052727464171077356634973769464174608998248978802367058766567240332944340970437408865459608389385757571443548662759923401961419509296977315432129897455157845770213002596739438033747665833957057770319125938761222955559970051596285347373558847241296115432915471754459758984444418229279040906439167649137101253265338527568472014279510950678795483983458248882618166870910834536680181135924573243114276721799276091369645120403660762200647186744531474775093195276387560839085245959439303736892622851075833538930411782334327844714231661441585237184066145834775990885890785781063062021425643909603709186070567631321936053398183188215080685255500951869326925351663856739087422287774051712344175131273788917155006987541362249602559798502429335987465940453696146005985296865186157679834529099720433982668585812553838148069171228814154705517978858649291860615244750817306910926931544622157287805899902349501368631432321544392957707985128001261915428200230836558098476450768733608602581708844232652172247595491622728054227063399287091254220029431977905804203517609876064254054186830051322312875371074349639165644000919280111285311190071673021055532027764263880139084090713538213217041309309031052915979306613617110510277025568143937162963197597962296307575457597336145814794449966623234660799339133185231811988251296082427058919168936922411963270125638873212455986091378551231615583775791520164318273270237317267653516707400205622708330672574910419022786743420119417329652400164271091208945948989766817523940797911459011668145106654424463404580951175591513497632945608244182988790993119718551442918550826648674308503157099062559134528588202359747885212063364229871757780216013421499339285040126341106228346393947975597070547478143827338751909495013857413910105600621016500478020747893982402511900893721022878179854412150091700544662359926124500981036452396206542567176641074865072699067553441206673980240453744139255606953581841637399497424035612065045328929107453040214721401911795302374804862685666194955811870193238220718459170030471437369541487456784017601071694054694766022554019763748623814222762794306776679271117121692465493600263818323069550849692845389070350674124988876502273188191047168114318977092943706916793439696118025666051030680343374331311268325634179136430733376871336287815106473362104505737284610297806818025844879516154152615053680391615161899427415253936323967340060209304003683857667199126826330872717850559400782560466650052683043897072921401506237088505337810680621311555741100930711506660378819926494587853371932463003817542792605728315207280224211917830036827331179215468947915792822147579120440839675342434542834932849769620949695735141662243344449380135017303203803258911896249554543774361327521521526659437100062542365464429279622652518165544625833918403024394291386400309368294343971758597826582002477852499339364781306263234942024506018284229195425733314633593427379571334014798240064827163388096498407554989711500783580055089043564931650013989346676325854945634396879807100382066857707780507636076847188110618532938949668597940331239842574628292028324694186346886911762448040578616886005001373708085986105891984467142154742050800807684249605690182501265919282782818302463371501207820083473694701989271519379982232351450622004998659076606502144598750174739703608069735823557917269663548067841992984186456865056037246022198561941724454649141809267606755499743778421622882751416937866383016358286751298051278245536290021622100841479932500360498714254420053424055609605342681641665838885557263751658713793663150747862521032273884836583684979135720491605461706611369288070068640376211274081882302395835150996549315608394036394318723841448904448409095589134192200849351780447038973817265751409486464424550975765798176219770562170830106445801103799454458191523384186243335660239688007693495815754588784783928245859079880964153293891834037291791828636606589516572060610852726876698419094032622287306865075155012638537288063528373362527729922876955131122719654308724055360661577635421070034130211640334148914935220809880864150599799673517241204269997977166772352984839271141001631407411703423889812973412491284493588783739812046186699134445269613757985800922394345444968345674901038471610705305221555124556798747122152560119999244709083045852319255605930600133100110341619785386456397292317048774064295254658271994641754612146487250764941563928834956136467159487264149791947902074774030716956252229490618615716030280033385033050893899151704263151700623748141574699529291110525175130488905755220353364668692957345587434312942941242948876388356588825994574849508561329252222255188095944457367335429222779317513042671085779267148154714757968940134109526094957148526896814454147789612975472691232538330868397382569803493478959302118822268811329410855200203314916620063358283741747421438716505140978330307425663500672979062569759668201390996279110384774751746129545972241585882222294978625713635125624253393424078858833168251607609902547409933567115090886730498332761959369204817346212970410080228669443767303466843633419911143193369759885834916459705145723180028502245259960770813589238844695557226863621731049266858587411860576265372204812437098062821422550421663048119601485832877917099479696744971977306115835122222412013842862409309382234545040237411436939115288202266417116143362841671256164029169938822861889118117182345050259996307109563561575346116388469584001059460665252658722954845135431210403111793007880428652188569488642279592361362145004059111753555219000135808724390303304785274479812015264318331374451619724916339180044546137262356946704282709454201016180864317976021626580784928002472659596891000577361413575262386146762383172013289913926447318214846325918936492690087657467160661368716848445477944245998923674506105109425767649730240532206529383608705016827783467056404992511987817055436321125942489316291078732033168582688480579351415096834460329671033655917615912838818879044805099654093802483474769118313080964410251610250682844749609631707596173163793079355453515788276956185464751785169463376521959236417747754034816012772901850742200759862586942915426579410543775060902526035020374674245657183282644495880449974549353486562647901006314403276972279167974139365281761107540410889173371674201527768195187176223762491344560629402509711069398035101611287830459212777149758247801980204824931709599322497662515313030712515406383882274115635617451301554122601372237905100539125005371063102613018671727483064682315581342938142090026285727709423273664189689710297482926640311106320543353035399264374937278221311647805527329968731266904517054548238951871141086410618381733184655563654048592022514545383553689760176234050484742950660320246858029456662219076888135445769305187796612112115400284948844761629618734841152765019445760065649480136452997301320272708972203003205158057350710016727825263370458236929251650668938985315945837839135293246265536494892192177790790737654388582489963493081599674902829713425622721010079871576876850882216206473619942462807111416723413348676922786626262139021747921852882285726620655617225647174425548568573741771446771014924422206831497219759251318644126071465867733007684557554269204918547063726074741273854412767191287839600651392639202187280501640722934524959060849097470852556192768653648297840045360292384635469023397991256900845807891569062051424437480745629448008625863725475547496013536319686356531468012699687406458527629741969048242482619615945922402827643811935865936092244482005101807790839698569792597142201934194366900580902201790084784077106828324714044783927751003259345640828717513857747132033803892518103344615878327520718752974115211574338205387882278458750663638020805273141884425744374499043984513534050990529368804201861825457970847013025272273737761074125534435112676418372316068689855391069001260163126542414477275444091254279380515387929846339589425971064657270893736011745216136166104875117356220111124096682253701055151343638137570263108732034694652613169842997697011779638317369410389786802452340029534254897845679586363914707100612253626760137423734286663747539922176904639271784242187982289731928873222343673190193127602502777653733225416539223022550168061064249657492141152962701764278504653033199679966503143958163767190777074644332943401944233677829944353535675319843953209876861210456204447925711607900689729782955870098924926998969697135999510238599705714885145067607038508539940559184167224910663344300771104911023031470116211810080384736456522250395667192521434229304993396026247634522167198976707653519057312724555012639100235735997632419945851235743993709765335719004836057974196518492387530108629005923455176125708223890276909381025812918444031057913400136642666265760639366817358714223000474561825475388537489027857893063468192635085296437956142796103861573111678978151579530992742116216436847285294856739181322348333731366202231490238483846486503271096077579111467176408671306211701915757419181312841053465894459712890519784483001965936183216794423059037770899095367576410458931279915555951692260593563398422153163555908533444517465594614218488453199218478158175429304650688729283565528108494029021532545113787124112173087845135125327637851038014129067963993595056215127476357089370266134132742344096323330845823163264864441853303858090048676601181086071889585536045940933561382386656241522911343266942727271073230892427839123840196052522018196304146624367816101472848017338706829419773328034113180164687892316180576756924353428215308149152682116209794637404722945601070062807140675226293052934146050089754898212981954307006939638749810778357231258223829380745097181762152644614407911280749525616697729414324707481945765782505736401605476610931252257032299436233495399278917456408280433757757222197119292554055872901943553378785924794016818410745021298549865752129299905928033548130694377707123431186485525443875806284122955755634720567296766632681573764432751390870065582578661576737006723659401699133669069232578636651114035938227466348147095831851408857336105942319360203969051435662055485933223256607591212896291502226388732976127246581248115026826392235424362593850630472057779144775000410629156757626883947742794381376245057980039613362629803586605898344556407623977550659822884602724077997934493056872176034358784761098961006739243312253664258134373982081985873774927167566223124851721875754286402666374670586450402722251136528257153324255366571009711968211621211174205185187871762016178045238255657482262099297941650446892269165070898941274651291097365436371104159682776457580313930839548161137833807480711327531562491311726679574142204162596583059807818738281459309691588355976337594608945127117662676600917844170349220936776024868643255103720907622209272894997643200523547691430073922095777951007271039573667062131320126518743679596618188010762918927665100132905509975786999890007824513434357539780706373288879536178879463402101435733577553341403309913511286973685682606651801387717609554393921670756387637091294375223602037165266127852670883911263243246334910847001786454902043957651662290805915164956932419712858376786554578887864352497096262102735052930075513855305051608008737920816765354096408869731605648017136411385083270205779815363840158388140935702914754070896917155248958018710437856930505292897102459003475609223136124984030840291028392341131631054051640907222540270849596494491221597491386851545163992621408419762558517581375388440486063226523077381551275125175239424891154832097999576316125745800406413718664727101801825897666060572450401954030923111863391939456884229798293775589163686585542403774983975572487606923738366457697412654452338821701108416065293545921131121850766207101712201383291973447452359463349387314171525550589757689797794309489815892404522409619459194081207086911281597940445680301114697013785404004861064207280170724908976519334007243971427435394690826905200933879276818433817213047983953247133402042110521598775103727811160155527853311031429623328820738417531914471191326924848717221247455369192402706494964940124239041821062089449905925046043801591362705213142793300381399802850770710571769236315549096120833114322488124631877792495888008301915361901339556465733673182567422732082150275154079900296434438325664055320282079948037577499240439626230287864376057956030540281868100918548815294175669291113213148111085900640324992681207736658245591831675968887174124738583824525180642117680749279495342175265498190317845369566019114839817714042504370066174856578425835013381268222668885368587390285458875479278901761176009416395764991574330894801602206273645200919499582593144495570532091140142532816494688584050760656072409683561719674446225926153174316902509744675220420986732114774008227606645355138855720702542555491848386670323584022142850049215504175645617854518276854174758362975606733152865805427278409612759207783979577554548883681829903077028274984647111492766966055710896997205298773028171300554689576396433584425567246585880290581466347400501913853552223759214393710221782165895654539883402419007627120958697197076625528239546366636383069239991571061545301696221561470936055397978419613429875889376863808237490529759515887631369305027314408247042078160167063580226778382430341319920976769011915062895100067875377861021121320560893915734723659745226439973323714634899662302159922169127333844178907240635260920663027803151616081213261174829117665458491243542287140833423470597644085405592671824578212916490615302156358451297648677425876963947854286820352069530440320868749988400577765899363707609721602012719616880241533687950353132953769498567484760019164745253434003676162355666735907060617580372734603739747338112282584369546568454043955703904213368191874488215714210703803354991538828151711211207226498487432463369097645960854299369752494828870883611284900598895576475529061078790545968434479870960813641912979240506020430884863075281114482589171759761617422979662883140531585635157958223526342620701496718530084136341286833688724636825097787688514204874113994893961540882527912337147769209771303548038924371153121895150970881927522553655934286603638704692173041515450607078933277723396807092458445706406322661445936916504842507021607180281947689289344721246975586916991879171349322108871985796409940142951937699782652523351850869109266225659612423201896256882922797371360272648067850047443038244491613019090938756039364515513392404488878103929897966574435576188172762920979787978746811370346365920830568337363885880878918765215485797594053925289470446357309707874873420109092764126168067238454805207814048977537443791449616762117989205321383843863212418168052107632926874034720936910638631208723286542823374740280549868262707540762973512309034245371669675092500866953568255184684744536624205203199616024833797915160412839670561927355513138274874978357137785966278468460281792478097246720878981475977583545857096166583090713493213637297961986366475905685985066421232745278617547300778703438979308256578582195922308944100390485923819777776656581125580742294255362112722582027139108071951346208213843212515560053945083257275105603544051541455704669903201819787104054630460135841347641292716648734666126243990531434989724787705048902155847457214566776173551662098755389044314292719337260070481123339195190347157392417489822150871771132602176283771707090212182425508856126336766176989537323575965107344120775690541269163460540347821409484488482087661224469791603544556792194014240960638002993137031536159975175176731140890998793360714020121895526104637765430951274662735072816022739271064594662568415694688373011962192593811625193071214607919561768797379076921707837655815694173690827858876018385903023675373280300172035574951727966414586330760851493065989624621048805515025716152632749064750367465875069305244948470508184774653355373011799198615012505318714497132157714562357920245064812148362085664725479803876738969393716336554698670701089452687144968131633342145282677700326463483564551989857541520638180101441444679839011537492192576285802594387338523953989757895194539317343167137432976216189645076658330378388221594498019763703373791628598615170255901869133064624622004532938631944947514972760627999770261040412333742655901901005511798579426184022361673967679542416852193420311192465406443642773718934070675055976575155372434670130606850894686704447907386173853556983817833389507147352582044607892560470470978470804282841978855562758420084638837367378075433491631009278414543200841035821035892162055846288855955895068935915264321064936493603046947068987344389709613142798589661473180741509855538153171447655749889080603465835349663034778170735847018479750114790900052530395440755884543535637874744017173926077473677712309208384216999225140612273020009632782471251205379147262290181344146366177477856378298927653042977929501285261192221652306321892963026094512334470109007574335662064001795022788456230271206510610155739651186536717793442425031616951514418669519152236934276503005468781615939942102230326562985181289941685344943799343435057278187962028206699635997065046248181608376584394700875762886617733703777921635821074240224631986141948533743356606665149601651113782162752997708614651902080767542784344893451896377159570368537172644833187362435477261113088827706152948042625320775352770109479871213944057304063742746486256235105685520942996987799690557174325646274899966590921936357829772570507648797328626921176868890082140178203066970959163793753551902992743944767788187220290441950616726116740008172329421110258188112191340379791088589715806362038033999059035990151539877970449343848892981820914916410375644490881203045930818712644248587529166724674833494710117355682839745100315504112372210525943940946159480157282225448153033394606411879977943592732065621773762738023445670050295018729370416206683629088735095429610657410134352463907869381522196894700480884223287717733408544559185053468814323203835340044420799136429880881631418797214867271806104668964579309067644247815116079752674129628744287322126413161196433242707481071135102138669440882111398329708200798969265095076352439163101635747591035377997805206026823195280352443815110179449155856022600398935333217309763991116936927311825452230550525815768896083988877174433324521841249342520971865097417575744555758216062474015083229369353551132399878736585058463907512818131734765657311460067967325407950887740127632292831558703221180268639542126225178432966412531730563345608173983678888045329356594437128618127553062234286018318679836684611315607142237574758741848653584313439897174253440616246764152993043341256710411268747812561193623066843962016221901833000003380181899205335029184180486303679054461407533633128125405476497398478023037331096035090824283817033471558382318032390724081859708726168210392536403885126525675115030172607955991067528862996134804717248698762638933719220482452929527888830916764322781038383927196540698037139542023472591380051615800009493333945260465506196230293639088298503296492526333828011714963467325100173287037093860609866328718897386446283979926319921448208967259197684329027845233227477280096613797639146121679534768438480602795359359599859732503528623440511611650762442690156053637678655095730887902143412913637305757443886398128344098396199796680023640441019960730412421369030124886479358768917223306358437068419917610413516469231963707863375525106112366353314611954801683668290654706481028755160672915533793711365920933340592641719536901600606379713171331845108576970189894096732778599962026061505588757860087097699836780459900827590770155423628676007470484385579726827704024158918262931480517630801261358298121998635555644330208902374135744978051330293946947017342997202739365454582066443580733703436285017416329887428284084409839803794436062711478261347471596434948911058896075570599115209517241213286537759354578627725286624557691897252938917730719129656546148220853174150264028179548913890780997906971052065882902124060895220591585473112112385198585196967248429397827274187760305357727257406022485067201512626544054595174248762662962829909848249959596315028171830904578631968951246860228937423619993355652458907074984629781270781640406646072892325906970592287374193968000482910459789312487759858573259130105643589254880695693134967354471852994561970355207008165689905671401317376197038751376204285822734485825642295081658824761428465705516073873147319453618347555326527846202480602335106354721328026183996191959738185716870851917806084793045241997788229488378618732831252632227972967334554177246218649205186845781965511151180488999090213960606609284653507755612065322590718152499925218121540130774173940359939104149128212127225624089063082416375976080578002031880124837802136601085872117977089280989071557555941387710583920117593672039053095257302328087186372451501713940851939356392942035458114423183950180787111617552348121932302935839701985193477476115770751160012248206410189260623167191483993256117486247049605917346926806185808353347809695987506455488897990728279928914030044504141104199748172356134668610805978269341127223961407347989935217170499169655798826593760071302133186387809442292009169515368559782245434036566406059371657114348555783673610731370984775776928735065656512328385967429635427653976058093812407707592469276550334485790080113199138612427064479027474814635932582797050747550432579693737484525680357748537147390118083533991687429132193602782424593604276417822791778063295636656287151994533722552779165571942381902526879259211088779905755941913898826078500184056391108083938285658246634393199657790512522682205079360391686319499383728577541363997728126719832257303646515265513030867617465769478553605304694006342753877948976681123046737549775918548920731694356220111474167271694876772143832462390737616058979074184617446103157833595296833988120950475452581286357307292673451170843902167408244417575606911201897783486762493618136611865471712170642432369989174003530073673087236679465229101067451148066360403046558515525319144981703845395799078629215950063251729603294506269484919089086707897329213973586400049273955295001983579662968268121108618582516064093312023479939155706764389471357858732663156262188259500912614125563490111467494199189159660081914873591385191681942022969535680573677281608234023326179322863219465397241269028979166204902406966776411527361312092743677961657204872560973661029400876397014697497397877463599356059077608097688765848617279805185560054613953836350510494841003788090438594762916546583781911064275316415574806333297426384522524803687972080860992410570385746855861893373446415616783877126079166449297769712615772331453833523550966137480597353829931754591031531940134934201481987106446389008905455069147990108967856214167282896316141075798609161891156259782441706196390624624409065535038269953077285088265314675386857832461548012166618968327435867429921053043136814333873303672489324356749180564338672243300939247356248822253786788111705061227797694003415590539560017414244152198988180680602065518746792879710902138839911877916918754634555598365332678779046656877292113105593948435410912282399728053818878940929001412385991544515570654817893138365350496370519342407979316245338031521592293839306159094600917820743011817988005879410711765714650744532694918121773430651476212810978355209365837068464421153971230155237131145917167790805453115759099081507760464120033611873036600649190978885127197543651410147362249124351989614389814003984499060573530251525846644864438993509998962365362075348706598091460684029648979369641791790523629718103230250330685017729441844375230667436978642790333408470820934936011653212251708284256653495919806032074852871218063387066566816744060220419283201990977322833373180232524309974677366546821795353463019322175854810312612478178286282734453778546327376381207287907134477083660854964665686247515662442333722095925264801886955584352059078499506855335326997444175253379220697159097713429194080093333248159559204308848942816960749115242584361693129189064503151972180544383471387048372132071413505512274169551051284918382607058326398766985400765252846159925194081638807151596470591780201780711477793240161221027174224501978292253291138286973882240463507286314627725103863251537969994380448785851738192460459942539820449383799243572353540549180957390690077478017703766721992827111440983362443808551475533523214494168978967808227748970958362670156771722666488832037919519334100646870267556992293036915272238257461831806954196900994407805708165233137830288806196861178832838974083486258730659326882093998750820447754351387092330564470588688700933337867434704637557921827883454866102029817686491164516981526451379054739355778947505842752655831086290814336447291448808810588685320315011824994295660745037900048711466973330204269492034547562273861562854802025109520904009619498073575594678138750801589340019001505916935988098539785336447414172548912951181119927155604721150533152986797261972653801434844347196053829027803489830107084547617356870319203698618714534814473413508404797180641241766117755757669145110828711985348271848861740854944386772847248950151503231515602239016719556281093966292247477765963301125628129414965201465731437502380618524513428942108499633520313696410383022452932465174665442947792750078074182349425250486844635632522175597754955440574651348761970603215935057050514331041698102860264661710814949784980876079226233768768452434110010945347791066129295165873510297125192695786654974171014794059451963266234108472848417612978472206944664137269532229796832122633344633169446345699554128490270159318674414392227083935427230165055987380776999897542868718177647488912182726423861928650632612166501429376718036355243968328125275009886317615516696165134252000978701494406759390341873240983012782087855945290697816318760082534638516786140167918475645489980143864682238217868924935545811181913568716413981315447723918281004363579865432739176371243674050789892975664756298394737600884495698616138899415922581269470993747355990035191851818554300237685197979074395320434993996387690021442749481120689206908763346080414886124002209951769058392936561105788008822239428909969596284283615486386831466399125175256198973349972854650675661566652797317303501427484161576767852404553491663599223312973450685459779268539735406760083875722819888320272083823666943765203748385974550027883734807099423251417472329626870469920653667250730006492027562177751228346720334729290224952569139806702988471650478710881828494790638111462807787297598227454124618528211353752148527525167755848180892262137623390127615427067437748032632701654133626177226942852127881251404551598190488366145981582362394606761635843980886337132681235465522697286255638320629754326754172967936296181494323901316007089171496223377902071163850025819672044061237975535360785046674423335560516932167598981348852037899444522316284728019325597131485131471434997036052683241746849500040517253498337368467175383656373109690579652752660483387475093615360280056418603010583813577180694365138814241268018608728260040919807004685634328433951198599219006664382417265275963510710719302518908729136823635292778584794788677060544251715613646202795892300479671469837069477085775633801202200147755545785644451495884394749170922655132877200412187851561761054406685667830629040281872526844659923349821598389717596393324829327694608820407012546655100211740334239476350775967185659685497422751924917972876699995697641224492541332056760462405114786609843356501854922769896037171618907940374416571443258231383453469145171201365431221491914179611139976106834450617492633137314181362175859340948639083553020451909472589373796075588319125052359616479340341694562209324409051361069779717630662259733609514242996883129935056555266871541557795407357609948535157740638888412894966034453024796107763336555237472507122211696929741497748782171674832260821914970500420599546540542524862694768610502979010149498366033586271054482644658023607825929755004175740958087913228858522972110936325906885791376024254912689560716550839270250399603515573557972110744030035396699090484734283797382830196563221920582148380662793041906058496748173460181848862233254483718040960224148037373715458269008896087161441952285167344829180882739070055636868173107383892435804703475206357825809802979808052029765241567548646168041979512352220033879781126648417555466494426046609621799379106386169375728782489082517441990285815505880446176700067987288392038033684075333982418970620381541096124162808533245193660260706949565307318326325540906744408505179133617393143465918001197596278324796432276649382663873882131456939190795245488855731072518752845756602472486405128157578948910587383683922267391723807153183014083044760557431493151342104690490822062514043543054780172150364978288234741060730262092184851555517269481296478748030351753449341955561045003869768585079296768115759507190331715554365563819776943207909936272216546387431662486658519616710223179760211786666908156518699498271143992193617710966774764886395229434913225083729112486379239007269275935771630001888372169716567487604879556436737801931588573765093243787121429697987152938915890596456792321740661917138324520529248500075688684402539426046200448557558790247513362557397014911927974581539521422594199912186515899876214245657488059662103045889565562931689009358666554240170796761024479220182618164727650288956895025908695991461996714986039677245529667967655653580135163245853066363611367616756856503426803651471560701995903521351332688906708238574704676844973219524763408655635483183811048436935339967519180437802796969941589132442267905734847677276039330228625700418481069243393742620802421028717985550287018126289249493113618921571292079813481361926948285107318758259203224069831754600617818656645270846187350280879790913301154478567070158127007677977727801266511019718568785797190102386958345040578665118431820978799654877892489893237317164300471092023022687985882419956840441804592851124808676609576803960492489891202922625319043923116584272594084884360122088794660081462967135796223857519876503664501595686406240127907959545785720038060085638486108231795167799653364724405217849995257724777296015177042083487032007153409800286933159787454002979297622926435753929113973189439452436268231994886625899838366036587189914397352105332904438113876456160733042233708968641493998989298610982319688036573907201080160288698720935211290515963482504650458499300472730519604103321674379548131893541220265370267182144564008433797012957838371854607682382230910731337576039743722027474569709698978455502734323846612182685525659405369257567286825790893744179935393931839703427770582977790299327725969102206656093181471917496444292624527807661430105125338514600199744515780664007783839125312703551952915751742453645913802214689945043417006626257806772193105950734451486608348659974977799106140345217331577344206530477503241988254124986311436359837414888305285321393565479202335036213865914124329101936621870708818609225027141507952780777444190674257906523349342678069689202190628708026336914433555252280023313069161800609044726144256174017179661872742631854642085989267295709198591645496845108001685737856142060457597013799720065216300425085618081296756352288299661018336220487486168265349621871221629533047837522339071141414893091694641433884994875932734259400549099576503205898219827531175638914143182470710915823940707437782017048892406543396523468609615543474799521429666512509123454860694419561851932345643043413543772784649406864876967338902956517593144506232823128403683577698659128726127955084156640908757994911715350303034860891632228642283494296200154108722722099813480289732194636169228398018556097350461864479463709180205294282251223069219069990091283078955919586430438672385257436266370148022209124181488217749822301085398747276424405450628998189347937302071503196010073180077019317111869385032598284614668449393021088826744066350799390125363158946545652906749758975112340585585013030529714069832499358734102146905469741722930575846078012262623891415347971786797753937029254430978800065113368814256545886843361078091949892660627491492748572293098667427013994987605910374684004440849336498083871462703048733204513273461557097359723082795014544442041621091120500023575130950528373951952735939197585155225575853003774578859445238073309098749862216401011341477517665943953745499495870320189935434177082062824342655404293605050383218871353999271306801279126687641929280366218276406683644518706278977532940030329844641626250140093810163723352761867230599900602579016860602514547406488951682378379145675276147638127533054935847406843054554222618737908157295884496770371795179070600460768438546034526633201090459811637639022737440099164415352993755212899487316285197904287503409940646891963016597823954745519374579026997929968723115373975682519673721575511222111831310489487466585111182647510288023783136076604082432939152134627888565202710364403440916616379882557657239062592136399577597002297079501560755046878357884020005202069413351053300757898102104169933837619152477069348352675133238479507060773135746761933408577047601848422224119796656140217596184713671635122466069920513983203472011406627487187485479176735385393591056686512023998677539182513857969990228451865380345603830898332488761874720462177698851135573017573460140413014926058757479997727635234162044962155214639245625694618960059555729369495724950944057978682348181335328900031558010528318889926952878311044414185902267345186286250050942913511181810779129696198729165768051116900084861456303686317922447490465570177975440346721971580071767760070061770803297807184448028470600130970632974424552907551249898189064081871474753974701718277082428010018449721165189243729261037353007233125116337392546880056595441104475342454333939594900910938207359105656081655829622519023415278459413688892859730441392815334928321669450213893029816189834075392352528877224720150547032930752781605492793912606017978681890741197571452182869776883186013053588434814780491023603582406996881475870153134644152468418990121570490053252077011504796520482162332406295152067674891157405904990601307675988479123787281008330499772672686875435233410970850212375352639744341460803907854212336199726176777505770837557637043166028527696861164690090185269293038624369577246163070108961104223620405571534052367666729415284026898654969994632168743997656337397701438516816642767126971858593881188844501349790766963407692000234955949322203303112367827791146665815640751990246799085042361616050042607192704648493856465151912232914656022404363471723811931378818025223227649462868407782999435736528823470832583063194810276121822643761702114309260413377504450646435170368532670875289697404500411157113540858442912540242353326607094697924411710505018697078554496178678392002795594203106963117244413927685246530443536018848234450352421857458632685482362816048326314378760122552704296578757450862880684901747558149042604748999722915913616032594841109549216233883969527384783261378669553797531155499936424062338124999548699401163251645398788027477078936783518226664278145794468548763245367932213567426097114951299409476952242181047746301190099345626568817901788271149631627250816346333418650517440977044253220534933424417884983371246604883845484989121950064576079838353006406301175539621520885959976669594256083392805200355201284751947650579287447847076795628837160304434338639741567404578117569042184196016832345905775041161517070432220304552370260416119266363471278256687068464721676373088368332513366378327294351506200369229825194828040096367504300670014174979943112607905691768855976924996604410872784721070727212671352294315852133627233374466895981271506415742731580602521085277350083405484286723636470049773802924820800692680795275587030906579523799217019229257536777394279148240373437717831051063364966352277094023397688888221754850419922578700810746922558522515059609623370185658488578193899406288757295883145766563867906453007722064802407810786142052632720545568645105070588508282841626068406478475017253713526401838149919470759579007753559943533170098244528954656540692327908411431726876117127321139061968304481384457055871441505576840431285725306316882147814065201790546650262070504109737852403180252900514959646413466105290423615166452034173440755753272712224262910068615241883292483457196854989135336045205764370915893012836010921131606612942960494040694733485879472919710567946198077562154899374300090112139839463865742491964026135037186638021949668666001264041722847405213307173706882387987796340659300210677086507188517421962855389300459321076075052293226380171606331999935447564399534057600397750997246384338588210276027735128506713697381991164133801075299411517842386490467427594524122478410977218650272630141946966361346812596525623122776745587617945844258589603511835531122726593256826946238091324436499717462191087255168249745712432117560403213547965397873555038512920383602528386136902615886655115447934214034361052337940808107800092032767950108180781351278332723001353963295263318999822157965717893068957774900557205922105109019603571784866338532247966336693335291539415529304743310647164146026930198053266947518302446476622754543858678390559901244213255364822428657726813663128838544387312305822539081466928624228769211077470049678602741861693480672914180723882240101382519225183965035828386904173702698516572289450695633096577320828988703737759530040859002505610968230276422456787978019717459341918710372800190221224501788340515154929486542768574998007318200859807501648858233260260790715265053009993604512521555610385267738995761475747793447878771764883241565334490438137254520914288360567803831640667142405824187960084027921435045952243937024053119831524296718705753457117216349817355730704525104551587464414835746492629347605045873014493103950248960456777990019070076173823226139054334243697927227130152958445631299967508202083937902841403872888939232177208348046284841505404530551808950689588825940641018094690175684254821984439751515164679535481979489542480969423716889659552266289500358643039124376357990505373918326753305941112112482884858925612847026888372154501529925838217565421654054185125377313464072354045671843636766047234187381984019770149401303894077894286292704893892329575883071364572644412950631264623734618048503933902277698684925145324944894598911402905143319649224537313503539871137770510017186355588968788566076194855497353735231912760333938167993917075656426727976829214254547754571496101248556048144347023806382271214331066566421421881646342667130245287909597640938565118315008958687322976723112181161668315755014394088661848996328788792508144712180510475658706149425818157259926319841793376232970908585589250070237901404834227581577114933414921774683795791053059594039877211014601803052006629963336534876053068734250083062565273632909109676656307098021881707910425432326667251566685733102139587765565897647271254986289060827911945860957110944797292373187211768786896249256979427270276017243690863304091989531514769457046306399785359479400800236794457069971835599444095214357557625229055730022711792014006910152355600766563722692077630357243406632392029699496015534412898142272964261687675738261383068610487513546677042104736005674158093493089361690066640357159845640000518096369749734367407034897987357972853438492284639162540924144221924926882047462015575608464292611666784935884555732194040219079255549006919527275523858226670842110067172577413663067528505747975981624635206576828867896126427455337369215205460835125719220552926165699038463021822414085912233477101353713820400609554568538360159914504130752379829538457202886994598469855721507436466547292904227120192739456038799400634283343660238204508715429073645099133176796873428745799145332335682742986372609350597310288809250661175150623233471394294700434822260616727110379316081062979144137163147241274396885750047150525722737047121759668964527064167474568207240737240959503761719144998488660805087709121564928555214872418315795952223899249516979581483828286591113567080693232750924099532375081730787732432376107653145513210610619556739900535178542636419866080614486137269894181860404432031780406193844179537175784751134154047948668599426236579781720190040887755212429400341792190450857162343700637617576062294775388194082659962594196536111730377860729911980345687081193539482312098433236588433477902058889123400999931421748260382513547763702032468133897609707450262560865923202886824067831617309732473779155327223941756178278507840050129473880407015534710570512571978119027922853664266578921185337143310538216429499555966057979497305570675750730834246644291657766506250332569399665710566588088072828113098115916538792144308239491965572645937916703509654173720357816564664387102201246343149411246238971241281308665697734929389233891648148518974916251662546791573611366906974102788765668661351147154322842925766892723443125015267288630204593116427933207170718599326274458033151557404665979287633811375746488407359278371916449512064091894700772853382527754074807506278558067815440115940968838069335104173117538199826917182074078195548039190465124263622935037100385258900992690007201638576229342017750446310603163774816428966741402763045632173054624702852139981957550760419505784878329065154894164945714704168782542596779235996501169451082430302413790340251556489472602605697184325414743947340542452389829235301788034913566559221279645978686996171973824060208626432693774247350055916687513027033340398892568672584477476168196487062498754419713660999396260347417929163245860396135190915388365613833859605696042891459374472276470882619614506895797343313659515029906006891982955753142354368886302219729353250349691463648353889709844539352062692319101262545906625639772143552703031945930033647439798607232040736426362233157851620244712848021463465279582093460387141240965940602311665784401412645434451360812008343049214901089510621827836998041727577577864365808535233238466599961640113939719114825185058465991926941274856514516116498895028364007492566622712844554308821824067860188032570427658346846489104139203924433223607981638175526370241767822049617207553658669372595595755796399335783029060726666356153027516360168748797936971116783047684441893202313110069753563912629770655487708773060087790173681317117406329780965701419395510975109823854288915245238048817329373395029700088142739989670968566051316621336676330789488972026468433017910239327796016042394427517501840697000362036401956437361591849719474244060447076075039422261012770522295649190934924226829502927532479101159813645542752736198921789649120438184557243090790039988127918867728516743649826004788252407792655063421415326046365655077950697189294653983915294975759685856419047487473379514473821586443488204535363080394816714991015599316067796049637733822598254679837090371178732716328262733241255007786500612561406968644398940846283713359772909896346423942099616670314594090063868006604811878670634298127489335271226590104550987242673153924747229916656498642695450538314354599864107887800324633182615211648594876586982448281059132108131486674529606770903817368618337173697171673776156410491312421057633123736755079521914352438038377249756911650989729327823271911149859528538386058281239748333107036934958112759845324934300115972584392104445798462063234732185887201725910761197671289126555096122178152331196760507887750553507283264950738489366282516997013771031374617098117198567947761745073308268233414433782971822586869416118476967824619199049882005562666999352394317215053790487418859387123874248272897685611430344424475359135929402377781971102779368457058212575311337548503586790583107678355464661025818610386804888273029164925387271799232231579107973787428000471743375284452148443836719909679443711167773795660560261997356678376980076066597279028049466356218850890834244708597980742425648110680432493771580246072219789002748132980568651558059843354850238057642980283384758996166853557889808078485948190067452549418747735542239690851745762121608046380166356447688558685904124237311424090199737883660011158480757015029161512452611363721478767711942768400394770201689651757027168714041235531722965124555084123934424598933137944895307182717881018904935364257171540789795045635549437232731986629814723317104125850730682024764176026710138172382257600805185509355317144500363957203826656962160401446497343456922366949025107026362575545397861861431361363800950532781518537716927120083397408384737019364461526920393736507039667308378146366260500161771377735880840413984736803826726268636776590289943554603330489155149993330138834063257292637274553935417948795342057361256705022832102529853463352021409278802919828475158990577106785008193537393309445711774015251952154922125996687975133466969683428719236690643662401413827000334869088480060533244225574625878087813960001546241831467748915230269074392281920793718854699650459156624163485621789548292951470786921650762734977293940034380685793875997924790850597447264306846938876111386538046152797808064505240325828080860342588624338755305387295257441427356308326456578242804179308357158486410207570162740485001860723730392802922766606655447919167857976906062622471520863746275440321711551660524783064354683019087316714464637510468963910764895016384898144558202977576955763030848848134156218298592741360468300913445282242579533390135245772533279425003454943061246987013433371815237633120823463494697614225528413046969712755089846330970922098646240490914829884287457182658583738542493163723620734569180895661515359982364679423816419835875498054287662638749828015888500709894489284790167556821264093558801218922278656407084444170344785140845032325361408733048916787720817179596567364946128901772124258956029106259681112928044332762237522304492939435391322826737912850782304272594227373629735028885608784776907417022983377845552909883190671931197935899197300289228072778840877304770453048739565719498797011002385750134261071990945687286220310235818335642050845791790524289731400089716722780380592397135189337571414454909236136986081468880720130080101087794255183854567222078932718550191388793017328760624332123631404436445026861956018703902697256171232912566861657967759939297017783992787334633893136727496204628583826428952773801385184344809987081681461300082030447925771486792202218541643818348871343299206450646323624289423670945181086811167185422897705581710422795336634288621756428551370311866308597162374249248004780803178380808621877822775832855451716505982887337276882734107006744770315797905742861857854519315333341199222707159319241112753176671220956242639894100291498799470578053394884096107938558137448052190787034944692219589991037617291135881759452995945405510855549895814360652098530086070842085775760348438234514210055358095731625720964653354438427533471128262734741930071579301310627078019867599874895583419682310101862851963674172905929805252875581338947848223127107856748382449077367237313347660095999825128706784617365106110143252642273878417547242635677712324918730576412673746721905509277965042724814931894481803628053983822101942989815419969590176826036177035249554016856178435967554198559004813976937570131931252119198990965400908165736355386981175833207029100391809463212515255797131641656570513894749818069812653499156509155443183168345097628314953471145039896067767440022772420582994975573589482617670239003989183906954604623605026919265399622337381384294069139115817058440576566789102811618620617290454542673469303758122364997711258281261456911512220658114959360211926305062336742477884918135120327818540810257501325642005995518742566685997196258193683809255845365348504445228376870815980328418227417837852844558756759282124667555304232243062575884010699860629302264922341295430817750806747940489522853625945984020125508054224486913344471433437627250336772293584096439128033588238590634006891459329861302171320667969683318889073128814992976618353932403042123239888282114975432323386183193967065758981650664191247898899541426065615336358451012427511983564698110958476760077259576163205130124686903499399554354154070806282466556601521164284421944387905006481454281307248727652240243966963730589126411441978012321196283983341621708718647576151264936268022510270862822058285445721517757734718474750125926826638037654782412953923050412744504200234974893902359970525241497576512331362360663554846180066491321259657657073517461691657847379114293385554895980847241051444804208698626885113000797140063048391401394794637841493911813427193830877628353604851255174054909477258591538923095006464238929021454940145993303858262912146234368184201268610768371504952073322553615717407002946364416917283196230959763520051933949333548326336834917526795559334118273313120185034697733794344102005392815126705818038468058517578385959658149930305692377454034028584132727632203076349553682711769156916802297490557340382048308335993215699030370158452218199065629706457368919518524002241549774186506842203405014690939216556226968746154061781262850567987586853786591804541132496915781507518458159645232721294566140761607495205519859921188372720233338386041884679822445652947432690712387374732678750492497024018159076944043372143320182749277263866699304112744315960586224837488670421481285106884743693213694106978134322071942632978099621572142390761390316171420902511935035249673758813561702990161650258206462095482822873694791240690970317169053652747656535010804874900395401649053502587387367135404832214034332236946013975859030790590848077367508885205879648010727332694073162456435862250256569339195480622713296506356701140692740743302020170196486406219955593644871550388860023323240731649562770894154542825197775034721792668601761943792228143683391814122044738077818326049124117995584336901307772248450484387426200529915642594932815319739618159872749540870917028228235598422315103163668923323377453955421088540546908435587398884392951171285744416315388821325797217396781405781597080381415360155174839998914279544608541229077821977103567131242901937594969019835024192747319133411568873184066739397976150213898019377043246748932475303324578746355731144899005109706730168785301191123205152074480323457121266128311874131353739767330008859868443581954347055482585763489798025130609839340964925706463336207939627550259137018140045294055964261808604742903639896388066918884068834377294853359401419006374636649121943963859709359595170746639471721948531564015425912561936789264683243977185390224933439845787503533913037369098121162304828119570491706574393709446591397634865248003709697755424196182646819436175146874190560550547529475415879952644595024941166271175575535319019970503033274928368726407218533475279446942069817424090822337407412308954945086088646002407076712576183361236926782910039440860242698478574940046986974429610290157278124016081002835878169258408275420398790351573410400243176514403990966042092804380839982418163252382162668781687410633356348761057251029276024026608541855389843371691019044327987979629805081585063015664856194956584041376202079734182297403490237467275015288906145684987159991252972282960513094937784136651484944228806654348084274138404391584708478093622022068950663501734926277994848572784602467482361499107956792468148556160088593333676830639731445487747016586857399281840765034831261832423991267127433794987962357176098699599271631386157524601459136381849891484866086106906478517481637647946269130777752330640595031920156858389572441248994607664666458888354928749035030969852295331514086431628090204237618465519777224633670903742007819785937060132414291841303767565550906940549781953379303291476043705348766574806554272751800465336946399124087406215473164680880262355004024046923437440832921072209763520796653853132705948669553431516479665715101416675271864353963718277551702929119088874920856934846058021996887832721914060431910669618745998539417759292106093956105590099104504570894597728094354906053268855163143042896957226826201521004076680079248154597758350576802282995218857213822450695139368833997342640828851685003978818438403767972943800508580395658063050061436844246094479009072994515904868221333592740880997391634589780812654021913005459934173463912391680747744017928393213520046348334594323643344702647832238473186115168205848745798719673952786558640712573092395250455036187373058618500728117670037180267792064377175255351549562607596209889433073390334447975386358789650098640372293807548091962048408720720517719565113192853031666695975600030820031894990434494189984596088123416412047020485896674780429227367710324722697899620919351682956952837007538605640664727353013180496261430192476743845066856035117438875288465918484633897488224520108301514070838076565060065180500508331724038844399578235038995254090233234405627153790824328501839554955586575996920345809116136107376270029187148977456746384282156317652118339695212417345698126001304237151523008784644165524740603833012833131676530586336942168585700908721650856296279107915053495633099440732439126931371375570821097722618403343576992077983370622377222107245566427154026158022461239415964817163867614954870300518684171731651124916508988396831118001840881152985444345538124418417176734461571117327270739511987960291979364046894704019182248785284429992902452207154660167167195162840878238705054848930230727934527353988385006462737274893662057167359779181867315391336193607631745119941541360756431439001473082876951745823966296509289780086158702583681711493799366744589911057320668993988695413910400159892643095748965838219067605801104487731627661330970672920746751853593780051608456461395723221610535470346147845905755800901350501881221507125364086234315747498937278209665505690961224352173730630357133872628563139720150450430605109667347047369369507374177681399117107529483744798696312261943165882259464749706837668295695746889272082237640082409406907779760270729386183040934981561355826285214779836088448545843240058544497970099545737520843295281358182239222999249834701874216003413172994168597742341215915202238740473899279349452811626865957702439269134608894407511703505436608229312097645270138336515550272343490158438423464094499628243718546984213776158767274515829408386945182795246827421732347171968252421417175553957396796782021056800773295273268060792433055683058619855227102891235303218325530113432905972913135999875442936261515076446123271192960621321835185022910323161764298887677909567323002280222812494473812987478335512330756104430285713671821911558945231824064664315778401189709530509251817015204256835887263452726471945117628042399092829259726645259655538516481653175511370973242714968233083289723780524982271846824655399888843472229106940327335953084819201644936609067321782489651232300605909913401224617134812927467179771200570276553667706969948812948808485289877254118894479816922960112854338830864010073896998490519451256720124896388069843483909266447186263623310253017340307803082357698119752148620619379595232831240453289014481216248661701738080276032005691682434236637062960608849104988015020898606596803223831949712491528675862486147352775561706254182966587434255487604244221959653900064887175014509196644609849642283057878200155476072560676793471789077401635016618939020535413556339532068650948671593204933484630836029892803253395577935492327470215643269248222617936104485887985666463801117243752649654487141918362686602491954286279422910564274187504430027636931213949724078935835609047607909066273444352622126134540003448574781773420435667085830116989229285734921554584071466095317511954460996378484474048210311626695520799196574495735751856950509843227744319166446186424940081448085417061866243177002529533694718095773474444055779511265585739291655189208928169426270700924550962890731860378979671509998692216133017284933498992576864394596472057204789960226123050605629550928074899091837593281917854813091863343038104868043467363891227870957410078078868905090218999456255881148849475916392415441160859669864706911472069791718009216832943854818635743262055924663467355416202752004717849432855097352162523571753611897770876406033099680774018781917971179074060166206377542986259474184131992130518899386057902844181611865687361276920228567020963858352571872257706296946211596013211641858300780818935964499492074794885361928099932181611098121763839052045812706335124660476776810227022115651725686778801705383541234899993255611571986495442833172578323985895782475108473114778973478890888887002228412991031952400626115005170164974180926716343835421649029349857111349927554546579927255032167682648102143707804555372432429565083941269598970326040739416476233890473652933865592776844944565934072747413543531971331596723174142371478917506595430529364239900818163599791687237822337075560386079117498683653581489226987355819207117199340387626484804870096535174559196698274687414222946967119256991732878589235767940072370687494145927798251262503179294102949463727066435349310984018941377989962206575107307744175025067978440530052879528776767207713999337296646461116275545034028352891914667682549055825016821140940715136094710907217844981800838973287590077852975830253488043775229913703754712804277510437159522234992835137446746944680396186104176077811261165646566493213490050952538336008468601165963355911620559848593314262264297422851014036493892798366717730282445608939324212638991018698075367364642623194081312202014411518456372192682331321875777619935851272626813572264591166016397139191926145289779547498926481139462097252580542299817592566182454416651801096145908042153219183454955014649383687992075413519892934256370608122676562829078989334642149631728315352706457764170989748193876829707457169423744756155908627916438327355791877134972361376110708108387782093557343497436878266980377181611024950657128919549031136092293086085001539123516678077773404875196397823347950692890630568524525261609510466169763095220861868881127853389373522310894956790961418508294736755547375613328556163539658682743316231940683220067393554743371646363107191192196629484951976467157981975747293079433412108307514638064662552752737559562082076028545092711638597098513559007464801954118797920155923160624241458713209323200733759551473616814406231303186589234731302847787055817018501922703844366660126193518814086574857131112806520601214667793411670010303389090953689053540523907446855596454551856864837548791939304759569753214951424668572007444957770218466022672841358599918744885645204798420296919514612094591155309678839648385144758875509584640441954077670923054197546330570626148095832310175228644725660081075815932790359421037154444188987586941297784470671580168843574186522320355220191185439053786847132307039965757476511342892421104867884471430470152249981370200804766437823636424392107498884472737713958599588032540765019769403372933338844010255857773864221512980139544912071256874790505953449181645719334060927179817563534825727165794735581686204099369572488123407366251502589668313197539302476683274220816746680296398666170475002020544013792765114033050163282276941607747806808478565281609178021164289526693637275911908682177576997746039938180531105884095620175382159534098250064013357849357564666244988215848277240981058070705386012775690495966861761502944502532531030307207900269871702889200549590770403853738052861690722006207171607060662698520578860765450018802994567016527987839562965495514230201869259278776238120311365527637693971812020734736742765425324755323707172929782181214907861866056322515170493426627030632711701874991621901328914420908978504199542150450100928262293129587253069936048677563998415198243319508167501719893456029848057083654021879792894757676375416878289760710050044218667168247979162118514574381036210215779077636331605955836152580115855265369844000413612401872587501804842153265681317533257283775575201424098213358519162127580542295615382785259111563153338127060900059970735461658578925377010950908460935466981733941296583693570243351938819461540141732559351463516314223750837496122717982375267516991854265701259864286136051605032933251636090242767503712429366447477072165872935608740759929773010568992050672931194340709397983402094544270388883625981712804132115654250830619546235321353199395881638157662499855531732066448047492617015653277677922736871477809525722017699101482232175101197840390746627067629143409760834301123849635561331352182910407933189597509962791968283482045546160914110409299605363362937458071322850835204818643075745864926992617273272660434472978265209576030281445837403134232659504060315560844000079111057771914298243371847215795912035006896673081236751291272827751492371833452454113257720917970984796066293727284189767377813794330831481222617655576910011353703692239462682926149906238146766462049727827908657724169324386849552686407135389702802117873734835461285862549006650422100017599821255314941052110990878128116669464064837294619768620524121437288631124098755470568954823038844147176219493428781922798125415814531615568845237709759433504215497889597444745014335537057093197172858406815741445562106460367857355999785104753394869654830259092758014152275083806368997011402902374994316004209455826125357205026686945882421246912865750733928071580875688289462727435850528438522590811419398354545378596551127367306218191680396528565311702829951250606606663323638900192720308520033923789382913109381143464513748398622454629276070209380411938374889444577067722385682829928234753149864726735930728498823977920351899038945432593478531609814177313060654460371193171110728879293232430300962321177360650154870325056263302508206815079440756292217141735411023609731467852960039583259279004023697726051555374631720097849198473816205811187465793285391235004548222124669490412933887086846078873585926810068429408191846935486447271779115439459536405381859681724007711253839553644643484971882423476038066869364611674280818583979006641395682349531465669624259754408403551950097866157721302817046118071898852233369057873047510968366626978519798055918110722092949766134974773766869298818730603658296230641582109269239062394262857813515912214104413264160491594388293342224492851185908126875096473027327641766729033848205866660909145706830387962668394709909486034743555707332100116516386217672301188895517755770958703172951059860561944228621473213264199933709642518672702154596331303931629322323760027392716238536934371197597446848445101783948557393475128016966281899324699095226238347811492129449558659327326224306660982771263082987673782623087772127881573665206678110458555942399950664282178666482323583153373506799383214554106427476237173151089000550820583813737117206646022829570221381470400980675324803687755891944746712183583903480891958442585554589183827075277887344422628532528247789976457238810944659120958283202967723252510337510071219935600370393540725671205475088156617061265491380120921802118415013485387959327299149548397252932712750849084084753591095848144485603777263165046144485356807430855784507041257009132118482196441633745095268395336084581802648461846233541289696663924678517449237027945759984633834865664313412518417092004415979517155824856922414177033150150038402471025805966530116029067967818678274220906295266539452375012950934568387101868770419691506878158745404328307262037797303734104018126458316968492538788418483070662512761513543581743728006594518587380748198039999516347904593622079909945988796611045961489087159267365294837197421169026999901982554754584723723243710410188683226459735582509852474283977528268225824983685600095264766420055161293845264047555303331357871248825482032438859151142601579096859097879849380912952169056116054571084482384346065968329226330416429203220455352181170022406613121156136782487922903132205816714687028275409645169223601494160021967926884635284322385775094306165886462716358037436587747888562186937693515146844265696882780505313407589140704130924193104020018017813436891175027005582503705003889339396111188477269105952282158103229439243908330437703653780609169768382514437888015403250813994574658396353460686924684483500523187956361374627798264971091738074268545105708937892432271176232880003815103913665918443883911445528254938395669599560202615212819204951477467847362894539826084516599578358732457967970534011462297419902950620725793328947688453248446848830814692255538892682473652338006521050808856211400566291524409456392263284016045087976017423272268160133079089132697314706618545813644200419149662484413043014129649257450736856215483481219121760438203870383844086478436609608446860977237514459565611196809090019806580675934320667939056065070518467776486568626373829327560691049810566492913176615837042048799935782182503683635010929132928683325512882140953656400332394593977127493702571066917904325959851892316154748205210947492238677435270733146953276277893185143352928383250539045854482335907152000266948696123363177198768007231439989827967021047631374555334141105953707879831271309712250972189935743334377627205013451779856943481082053974245719594908207029939117451313023515814458510848631166012998694942116713156565249703100984669350072528877744965429833942417811822709934281600425157246984691713101032618055400994870790475868180414908247230015646875684116293066990390527487849135604296572236730670857557601823206069001530106605219187039247725407459791042888274449387651633356099800206202882983877115789608650070074246507780596282368311980041514166571971071368868732194980129163373581963858615076722593479650214231951734246534075940936564040811530616522159438552726511405988601498002140292875489768161711638042072546670689510589467211452333422125653928634131320358834611504605622422619109975399679220676553365893286374870894725849544576554362357948620409826761025810190056718829325480155712786958821030108225042126258878690136905515204717494495409442485634158693085236420239255322551946705158781331545794419467232991644018034454365666057406341113406671124841574871936421447970448925986752560642259614071103994581448025161899455157923882067778866287197218588369832063458722573093845178703508272318299983602661002618883102427519243977312232273685251023868703689419660188060380134043026935832751020718684783599671211910849825324678307560859547909851704571721638810082956297935579504131764551930706180511738924425172825493914201053157422268303312916593798753873281502370260403548856277167355804080709478184483253625888070724102126136980999675278460749178857814644163473189958137558221460447418598365573683423985464871266231583639958297187845934911512759111596220668122407163896656929499468150804712344184886644314012627145731155144054642652075116941579174639186782809469425631254364759957707519157607136448076806183376732051192555263572195487445650637901872311299729629619418350441449158693788328218840959572456680802556568586661074554098570507453820995363004305283537680506289994559180437222399317534535015309087892683964701405567356234758269688057916276507407419085415963501143818737743743755712737395597085903417773585630062817489889748413046728550063282539705549563186044756266362733032249577208174350424000175892510756643952234644812627060854803774425400016741725201733561421024441069913644729146995243575636047042126649063196961510151937481193978148090462170127624790901210986134741659324574022655194696877321616936287059853589618560910642092161661098359668085615046098350207631964678217795110239127885128913803661242259118247207135679679214012333581032398751447256260186260991327200454185306349603499068861333439266922053875456208490732123908161248838896989096133274427732175666786590118602659646151626755599461089217267992770224774750875337935121285888132215409070884460950893518329900873788068936152546945685693766871900499119121471572083155841180668189295145923714854028938540659718735417451166975294591331279945331261665684858047123559650663920640578447054177046612031562807528331782681623786662178016010233257939702773367406234716786332800703906940202327737709761411532459838928871535526550711828784068703246797384260663206937260892369558055584887440141039749623108453892839165637247627693502487580983332126821793234670967000408306429720809965907419089484870231899490168775572012611676248709176911046241269497985175310446575648843846417373546260158760129191153884958809517919686300992513173677856047286916126399900115624674910294287722581142301640943997549029005471768910431286962436592963377244525518297049388298973522093139176504193132569185589938378944470357907910158711319854889486926342383735661666703292495419663999378725794188257054410861611391343595318162835823658691636453512850601632443955355559315344587693636650014503472302209039583098994699558391376863384242692468317364005830298802390538432120815461750200605545470267109598959795754180505736057436968876670151514425785013884913210604424879960869789080455148575859323516170970416346437417131804180883966841839839528415683330870955978106460681775417481443998381913046595164794951993653877112805194725465478325283933059717326694270993991718108116761402995872115671458292555616866315587717060292657169981827997883262054161413573144778825424556181861393590612576616592008379198796780433206339380548452340151773727905652895895469312433886249346554766821374193697291612588802630452747856033368953309519677924925850127599654232968273983007942928789283880028028954136485258743077692875566025529200210365786201771110678832848795648223869868039834951133360328844944963421599655080616059145344023300734281491972162110060867877771971345506357665030107793053612260926914304153620071537540459784330031207280330558742042573146096856778052666482623907981408757704330160984911584692050364284556759951890175454489552003404146734226171464947358833046217279476473286700222270680544441199078885193331730261515102878659118838068639406677026392675104966851494900476127693310420094413183508199184892739748241330671542272566924898375983470996551592980343245592853444554268314731252604184146033099201436670380693328027820834396836692085132239641151356034215168310397756248515650620400916063506832735580228303107061563202921643139866335843911927626992104279177372166835325634653402896162351695810115845549334708703626719304566830663264324238933239136416640776492102166880587370051781693394726465108485090563919869904861684015438790411728045612292170212632673379749178306784272375573080586113991573766692904672189043939776749391271072071907216593622677938329859585641376433153614441614094172602667501749688693495811767200622347360225053472884174055795347969551603909290991249212554193818078923829278866195745529931997731771020964556418774619188014271631631518634856295658657523204634900147933410161296375259618422659277436934428132225814570526158812374941257015755919802428364770953125383079954645724459801642260845793413988127518700320378219078968279228724160931749657128872301998562809221247154673359596137498387034591257424279959775951463887893693412418497794566532249595245118905787021570128560732321094653920678041113447872556061429483199092456083350666704414664554398095637010527151938799349244024825950235368424016031985700008489311068954149245000158650783000540867391368695926774611226926252731325158343486536082717469746730841442434494911491602004517291827390063478394266281249345264369637318140598878800208540281176086397675084769467478442336900952983091347472391370798566832324411043293464964287389986405809974425809746000951260325251887996688710728802928865794206538712743832682149152414189836465577632241195775387167478940238465363874929470829967388951918734995183981740696421755513002584267991580897891588567846368921467013972328863633736308816847575166512237958220093469499327163753000632221183973308446241423034695314153201658382164619461830747345909216769211883331671672827697737817361556555888056608151020343170820286366084664034131873773757635487777479078387613386006163291034305154707788192439784683546268052986477296450888555455144340067263606689291034288194493943877064439012457240780456971398487755227944154512164654469831826177299062992700435227251639600357618782900933979913081693225988260879496106564986723027832582646903597906035521611272703345521652363064942149085585347738507459148790939758082849369726977862817426420935370510839620642587101872520888821824568446908794641900170813217057579112229214971967855026165070464023397155236380671788262377017507174349307719741735933888152311826441961790533930686752587339044929472106683872740793071776525309378176001728909635952890020199498528096553835429289930938043404511660535100853702042447551916858182662652702860680068693420674666022624644607250254983981223239036108158331501251840202624799389988503529108707722456840465992543422273924121191338963660484084403394522730898745846493310236889689027435114607236534125880305594905910891104029414351026051805171223158501784868437054248656563864316253245270905506996050728878565199085866354970772599496751237691181643597568873085870184478276858515583951837494659295782628705083695920017715220994006528200279202801311838989462898941676590894962326680150435596077154485209443429886429813287286870945382910725889883851836009656156610535195701983592612756978830062083496964891731878285900120721023422136259305447781350033006281701972564886279144871134223754587860133704169641898983708830102963880045974797713162190240413523729208575827196515477321509136600154836345180242038909926447558913129597149460279671371353928146966739277754073164271915413372811754172548406530275909499180925190795582773382317788128718068944822833553735265872480422310409480987173371433191765345195146449057447119412978635329841320085041644592785590765938337852901678039418882388138959149826034146042544648884707146801818308123948548041503792461781203685879626481419975854591752642973437944120495246144756309016398776624246236738500849007615035953709988985335301288031323525799938097140046768874625824460860799950491176282623927085283932317781118171256729349409094677650803014113489314738105638369024685943134063320763922443836170070983066642537934300916817634731456753450766423039956489408450982448774705932296670713403870209022352875969349487280669187200947857015819163369417996109675637028856166108757569899820256463574840125005480439374834756666527696807899971305706672161336457691394014013618873528356675814283901717437710293886137569279959864642466257097061402530874267345532929996947971834491704494629409810701662346617444038273731049261747108121853205503009552732199631059201205480317329367955932044806377197422050176244506120551802421336668945535239537120548124647048938226263688950050205379265600831932916744859170885205550327039848706371951306037223646879968060926613437446609078067090692132663228102717046349689483282004604435586772126524929569511977792987825657726581921430228538867776823053144981920401652230063428223373887894683487774425165984927014037696791997886549958698217791664796815928065065995598749062341054526052027360766563153880519810797007654584563056523870320395003415730496306842452284617599320348450936934256500373238332567806687476153613395385914020223662104008806293474019301651540906704593074545751181355985518552331902649426592069795253691338209402500258662057623928558713387357491633746697081233626233777317939226462748830734578388933127430019340610921167946145235870696046954928321409708715438960913391324876295569448632050770445530694522928720141509276931675550837900075524219949322032160148468000478801434453646388667881288875312350407934838259701536484972586485688654005542836286455822881418764675821947821717964917752943677707490427094099896117922440486832518445898844156484230706082932091676512276978558335623783414346547363433949064379623782409352698232254680568004959401711176600193792355237851434034405429145922695564332704376440537673424125227126080572172503468856091962315935827923119286711332478570899748416835778462651061552218216191732909030568027118417224162732077396549185579624582476212679051166917401331759699664720037366414742937773222930310633516199688315860694872919036478564917121033982467373914010053959143116275986472663383031452129911132129607933166790150400874802157943202632838654818537244843633292950156976519406983604779312597325605349685103036543573428585251155658428975460850164597825208238158264808495749340518528196929323185677717266090479025829303770674989532943752069440957226586656397791541728508612136110618975594616098569811918787214280328116380266034101294441657110840572573302598848482857815861561671772462757684467350121256139780096980714665860312403377973726741006106581110070111509979225196891070377526188785167342000909488534577092241651626004241709010601220922232549479465148042147611208011195677352336674400463328606424874317272976133671366750351928408486269111986422367772266894122215652508926024297475764443765749121268575204243169510395220798584829223328542386473411216197425970514491926674415448657061886180931070782796589679152478968769252758430808751946911983500549658038933532722789892817292862710344279986442373660028697810234570286634987004416339010796075327391911138688815673205939824218932744212722902953182148159374422939153616308093706408848427767074113955889410293081174195812064298687736526573716154412721572301596587457170663782641528804755634556067665475998780041010877696161907084221127316335795741048508369049362207419905070807686317335236583247475708568684890533400463387568111054570799337957328241259863413533309598480347919474111159702639620764860097767008638772578093986433283259665761040208498883489826403666038566558981731143952923183935219990519211213790464642079531671078948711669690879596325783320393789309588590392003330350863188735900933704593266021741734649747450476680462113833549417567517219026144318856189630870698783462894919097491680242753124975947009601831229316158551444263368217542920961209292817133459884374719043940986426046524179827437883730878821780427410586967069614537736913982693442094594345288338365411005971052078105790258507359571634134710149567110711144737413198663741851728365930653546827362050003468945002727965792912129577532067468111723375729930091373020601384589962226065298820942825463722125625286353077105548150611138489998144196682831194243822169500740480395852402309877900097971752336548789339321840862267220932200026608791151827933794101437445532209920744947399899032873171216298093394213170234884342159775757198043060046207601195782120867174969120864190092807014600334817292710694365642289454081996728627593400277992479240966377338033442048234708825110474007754409449600818613368771095378243562118520502345300091323574629424207260170827124955054542862261318319518684514396162141680200627672596849549473868737022712594839098547011833943684851554381119115820133328023900581582990547575420340823128760667325077173162630500309406070088851503656474722586423029109021489802940944801455370043294497546685072521937471834137102131782878129603189057694933612213894238155692481639440756855416750556485705280631593717218272984628421843415408756957987571696446181661027190246645512171054715759865004544839133833403754516202235909515689539155262960847334083963617291939630067344079986191564718140009502290839455739476999736752140046297478881718843229295288701172909716839720010497168225039304730280673602367443890753544209338717980217985085335634665595459055703231915695123230687854377114962233632522818675135274961822327274267799718885488642724011038907042947914640840154418885928697163699940243386931931097923466262931868793335602917848572872382554907193371266283937686885297899133289588740118209643370966001301037022741119461614488428621988362325303241395263831794840905099898086021448445387987452755212989035719598328606604898759552816359855614819780176901247840832640488705826112643373974557463481512092333477361618795254111068685637976093283965810632018099187635440941333225060823603630852564698786040481348025700672972506193624031109247692513949389792288129553998141769683442349576698410269248470293858774526415651926276349739804862585726302029859300407555036858738331509278185031394224252171367480335210088267049094542620983684038661201147640576781968936690643749420016062236350536829488110329018195488677426079896229019674803568931195340222752829971413216232795526920108047099936277908803915462461292058395392335768615229331519610282660289854155283363979141788007812252816651955359678022042520198347214268976832757109038684667460285435371769418371891667057055116789160453505596025754276031681023290302791126225659119191239857171638022137824731304727432264264919298208151031083206463883200760039877446339489227699565656656884976024429652047294014753345934436133690346872994247030722981075070303671946991840037061561959520709017038188996641057218906115262478301534883608236396435451736215193289243893590973987274874644571439214647017512638203405882676259250743925627131657943118691710516878971205988390704466435400139279576358427932870611161134069378090049938585259591002759105647387018629731880422448451942199885596250712840819385319657608150775902285495403744936660662746158490036251504394462797088788709876286091028070602252470658065370930311787354257601547253480427914645939227582516947423352274535419852414486615416290654996954213486656626092405336846430163348068581989821784567370414068956054867866746122412059586429339498583115810363843044584296631611035588669531550410479348339200678346099100716195189434886269590635704531432843157802079676551672987598567392612791847284650185208420413924718119207778710578656456728798321098874023846542599781395098922903502696056717738564948978004223166555866252172611952948470741792227107997221265881556399831063606115394182319784103577119830604217340312255332338654338829685491936823789652555168024290228832519756696733112260401445377378158536716396931566780677453438699344628869408950343383448714130242978009275047642614037281803875589240871250697124824080102817869512730785074858358623326374340539042985543880265720194319330793000601281310934743576015717682972615408807288483037812308400329525889881847640423209706686945946063250146014014839048293926900990318061310840884588333317256211502301785034077023120847481443944135491801767846054575000075513445995252630422545183315183099556330295895669555465061949625848160501322140769736800529485182366852675785154098249791568369002099585435726092578219770748164785557627966967651848473262411865364786426144030014082740634443667655322154326512921751385153870002831492048838002230652555525312251157323146225285954847912272019749313346597863995026155976489918512417505431319241264662924884835280177732467792357759007503639646652247185059578187912012409120721393468213058836395047782734672691097263584515293345601264276870445926603425510230154759023525051218670285037087569371200649777683958050144247450013298790711268122334471093582566111134662254139328226560764988556408129732007030188347676766623053755005133566668539964777517475006442091598045944746331397412478740641387138144047707125290771360144636476922296525527266186481548439575419839427863686173827275442770031318770233887928936189235617058214588067474177781879335641223674136855679007444971695217941953200360352664821760661749500359003153660686076303867527675165134809977858857804782142119350361470180405803378142653029071759395752420586234472577978526003376094242361678374629593735975527777978529285158543025815604722349507678545402960085095546774928250506492608287294778602741057483612386257278195221149583366072572132139386033119826775880188025599606099013977382218069556943114305598541493947660160039337523468929817122301066496367578919494596911285304180219180429442219950497141015704071294926480127699718670538783860700742723163078724678731164003699358492134595911483434964994269253422912950447099126860568684109850090912986943218053175140503740855059356868250460348380409826331310812690263711851648677684748068272658394864535620529016306062929106728599900868783288020976055792013522398988869124948676594080225652327824953416328516702560003598755381414387071234907080190066244211261415335865770683674471379811479527065086219751309978374717979365267096388357808807265711562705596839160648779239246897489572645218162409746665920624683939939291535794215869249722167192524421998738993472168638228948188185682884091699282510286510594798228634223650450202637800091861189160134745511359288929065358774562487024129193706069157349648290523228138605811436361339658325302158121750148764072917394926037706059787307399679418815826387672330879499044510213241057868689553078383998667602601209481411161725688861901823661153478797636440572191599059676645585258138776932913001967491257791826096593284653271915860010265799371200253250376909953325967490532967632744162465859785237658950773296561731038356271868103972923168146663412813617390744961776846733302759901940076909293436882383879770419321675596281171825942158370887684772651247862917305327684828034109044263160764358876709547798204779763294442362598934375834624282275014089903098850633743147667673524264986350968652007786783180261425046772778137981322088922735526615638084889609538809162717783447226847664419451608048346297378776168724795977694854116583788104340520520154712773440497709268178661157078718898358492275414232691071241431573395319518733506892746906066509345373306291779510287864172739159214636978724732188578071756945538164933863721477201712151256595409224068398420377494788695776179529534080167364256749735792152787235286654471525384640798026098187216882765239566232828716069821780781543612309317524186887098961838207008696513937679379319921493479736588572013260311957649148674986110034354626995403348592090773782821723267131393743562979893719807200749520143498547411780271823392695957504190211123333398914300290426880382088059784783290025498660800234013279929347424826238201999027975343981127654213242646988097239379073142086295255482201273679555876734247878077512679242722142254291237094258557334609484055827311499144837213351674498789573557213985088166301768018675486028776101233059623717108529239577438117351403277065804296991960128370429010556419322225118826544684552314935996890848720233400957282534109295888744761021823960306594775574984339148952515541328083899452702695478396053083406245113322439836693708047673207566982730026960379568690868637609940186368371510906836500759499465942832672778562225722414173013446686677285533347045756276216216420034575891388313617507541548702758885266044606573603017863705053121884558988492391286889230934774428625716110415704493710009651820082011873044562320251386746263241672275328278718441932580045105323666605520275030723876504795776251410060842583800500442382442684670626345691769865825941666415517727825908033491736239734155010238578284522006508794082870057429501982855254721719016697444543875393705452710327757989827396088905535955932532206578227426395797892480580577001591078232462663135370126359851810906201826090858285571600749600860724001376894202231539389282004698741866091599179192087256387636643013580038416851311118548874161198177745853999178809561629776140354653018637625896531910721978829546631771797023632454656842909170637794443320963970207387367422099498516515920860091178595727606115577944071070618365659173349587979735075523315895250732670704701776288091289157707718288536745017115425075519920375011047046667403774778309032556206615125642335368816192910905317673352204800712603093051168766558642409964987802013965383004495243997641264896314113960329488644405145929074532340973278400288140470846417068642541445294268022614822548035023094001833219403887838707750254137005520351186056365829772675626349889183557016851456359618373481001433506839430611688514530250067361634518515157223884776998942844378556503115767032807539964921397130404161179288990716866620281039023043941373060222563642761397680484490336350238973471941465491792411062778764770664725448163767634244862457295642420944891300110446305618045766984936555812588762193383610781131777181470728679853262064640883812357345035924034399321142902304144654402669184262851333641111130995288377604051898043231228219278677848426153528220449165154214717468540807051884864982540596239533280290171832705418523645927724874752976518005425176987978523606239030397255501451506422293500355415487794891097445148608161247344253319710948167757943542390261763410216738821394253756903199384828468828475651344858929204205528606778592595955033401593899873768359187134814987160327456949927596816230500826654825684139567640216877130080168239656061760971925989173146151519138199247143852792585973589153053098368050499621299849378397190137811780054724933037598735760511119753340752813994920486751979235103328045369539051446538194834127000296460169499745984081534672221585193777850866451790926040798203665006320238083884043893815469484738426450896588352451810699685803593453114530708460209401385928324462368554495401668708341308586840475838667633459051568638886727363049763201069227904385042594725876885756378074559042224684355975403144131948605558840748137844457800382701561766044164416559142632498282935000345097136892570903888824232190140667322334370021974587741378710292973650089651851878548632035585464645787909525956551576967011955756812462221980466398932614478841800209509119169313920763500329300018999196588711331020700070071028056380079748846145239774616404517893785938604829715020801098306155132799253553752030305914324146545265080395175706058707810559687178996198614163136339699425555989827675931172938115066209095198662135359715762682893623907180138437157108253609283595733319533000401969048114250516635620650300736676407503765651620632602857778990512774151112378099492672278865993175350832660990368311885269600489945810971076919555207045401037320553369966610627424280125254812332710853279156444387826113572545392283969987432885278359010391475574545094157228887299210200699935332362146432078656028555864643247453939215385548870563411130878642291301983351066423723418484117977209089138512174863464832275911712692583334335556331898935408012966434950057748617767304321919826704036208785359358343520518064357046677773610864795796959396249623733446334281851481414551621438877284538575447212597434276666854922002245616177216299948736334652958939850316216973731248960389978558317965109799374250394496223089960003823777298599814188382372167281376135420824253246605472847414879919635392481303916858069023859470448859455424550573228335268638522731380511958334286795787323333673733177387934184817289091553895614254418797803133944973246753913001168253405331045204132736914273969737266774679017184100300704753693399800055071779180611689125740806438433419684251599783821027472894261478856500271317698960113213226790058916380523326368423989818267473003134963722167472526616380544868847991336130047279318234126747652248360223952094154005969018497818005649651731873541750741509723817360802523941673518328776811522109207791824387075859532743345184040573050278136834461309354766080476025443330551656251731217572928460697494185646399186825548873023053766279247020094197905242643770666714309662520432668097307483073937779023463779054480891872044796668586853232269567118819994193276510932264544315159125396774323654881701382483409420875846631972559935192317455131985678959591852392425014189495303895231102977706215878053245142641693225996440741543264137751398110662603936130263644753739533606084561911885983721913898810984553188704090037495657548901086854464766844727493462602195990182844609414285812291847546357099389284883387264947351072823911697000676543493285754171894825026089084530118950128345569360719782748764508778744161086570530782500552652729653654979121401136899184203250866979871345320978111572453079896939184943535494120404115235509694722391449815353056732047975429753874195033753182317977807964423837515487346031382176815582021812696055923654671272134805543372298044416085021051650290257307111953085625564221031720764099997373700343507091881250756890252579961016715138231473453542501100072029717517228908484819992442685065865245800971788337098884200672793709770719609723982332644641229446069806994506302874912382672897311876828637813988575108179658322044396354647478532718705062103397680907441806044729995405698111574103274217476890483292305078943623973066811301198418560592683617842681807602139601148088892386207725134066451509906740141313884359078927103747754472343517015132361820411533658563417056501252155436347901734510830660779211473537703472396166103876765848763105511145100352216795136316033210991375662871922093647306638410268836930468220444451296603315563081107133582598031993735133427509303976324392485811885730078471931868574739442950836339462884463573653394468993359872915858581585733943231527757617177683975693710942037129891871907743099992301675891721578250371455651170747488488114200390526812875356836817301688957949459459093722836777835899389826011461928499909451155501579953671000397806164702711366399624968126036785833543447081051367939915671326617145356895794146311428846292174080095222874631610921922918276871982027604754812583356832316141185564294915868737273111686682779942260002896232365803528002942804023435570256591809081035231156533008455833005305015425780965592251639358924277947813248799106492382286009377188052582903568324290324146636573375034591128775268254172656053950650086990965032854308284982860858356145770243449268442255558210423932435041319563474594896815549530451927277246765526615169831490024446726985511274006708570388961049748868077109086824144103153580777629855453967932917005437486873675420821147463892332635379547620986892301731068454892952285935515965215674686133344254662848341169411016712105089493773133746196009467196372144789836313210575709916318214214115309774468161822766598766518052521330534684672256624986559849348705770605646646338135747589585314632589618434221005056543463423526855467908253374538483960002883427439388114578098688397240162852084989045544122788988453301900149393608880258643171591372245824187133528081832913658427748731598479235149878849900747993808566316302278016065803222898112930993336399855643759452115760849730028883812916686583393404531702842516571219477925566588342910356070625698747101037954092895886989185018818521539709226534992430916282032488846411574337048770320795085297702619110259694618259897330080027293038400596054105546788458210607691285708941096759035246587220152001053035864790708017398667351559016537102243399999945709217607194587508946571924845960694750956764406257620627685498356873291519013105479552962503637551090068300922142075361111251654228281030559491833596214269615181669222894561006904110948966297879616677884623327055866322188118156137606376956274433736934538179406564714739310143983774994540102868203196280333255740541645914948418178036416144341671843683807557962146613144631040716401320537266799162127071937806147706926336720194530275591019875892267540976440760409247098246955451739805724752822174881035179828103750472754400641505218841307131279528068098441310422524648275548959113006627234762200396567901966962916243142989326946949343037339002049891542199681444362150432132439096227026782279826955567311621563150569192779875724780656593849501482342006422129342557647887498158280212393063968842859199490515002351033673681114752807492279879282314729528792912866103793316799447262023890225035109182391880031543493186527371209115541592687366711978575460176226621967328142041604749950973708876926237625381052742108021406812272668760173371526981907779986073719153341526863650794905460636893964813377154765237618700175219584955101905664450838706606449000362836924397866850225877819030168864578715085354989935524350448721942293875012280709493338264832734339066076121647710063499548895301652146252997254412126427102919219128108437500162908061051232332941738993507020213458655626364861810517742003339342561876489445743425831946004183367004207156945669572134207376330124660777179088199801000936637808051948276089900813776521252621919052872432622526180552282005350418903550693724202407924148161933146644188132538770602844141020356010754698589884960559359731585707685570428707258613501680707734151805888556472152474151137254406370519451424691731721662297290260966878134475828685264865515025967259470939808230042764340594684479672158084081606449461389816138463883369307218235701306001458305218934708688355397142873630424927143809012516557401066486537905047608555719542617627411791181574372968274356857529938055115861446856784434625225132619861397222343751011832084745671905072508651544718678785597383427452592970672705845903365341575895856264796873061297061056051852019601686629105727492079938606151029814533674748880367412152155887815466408639379702445554575358034940127974606552425501121601802199913263751869973290030822211339217741649795604081540187476431079976562634679412598331039726269472514803670228144730141966058384366059798536560515879694989866824709599324564169535626600217504259939969078382639075484151325750616928490810777462018004874548418930738401947549708658222574413147681511125176892789747235132629687964758212783974733605271229262086771053300170099314425596584153506718657311320979145237314826092650900133843275583217203745156474261966486194164710039873170790605655904205614223639206434461587972917874386669495333145011631523516288543337143479007577395956030192144108269734221943231500701842057087133514485760896238646676068335045613634570162736054722475382065559516427079483462949640979571567710372889967355128012583819823207955787854773999894769644861894770102549979654796754962517557661319583861631034313995099150695446214351987674824557212354552043741950524682371283807983167673898492367679193836054421446214333554107323172194438925964692337062949853445895859644352675817126379850078437068494746826085833371590350394883331929783278214283433365704894221203828100634950059629656155809661723349550632429021068955129342191733776247136610047529701018315002805670514494778199537028103317164112821868169829452164768326308338187989553206271907936294397259217380779397181086040654747349096266601311393873547647362877151191602382045691164659564297278675908611921988982714443759125847131395080796620168976458007911110081977998437827753202109364031288678891922020170782671216050592045547575802029647493566818467501821438542273753192031315633247259218582218938565129540655996600142515807613759957745772682702697353498910668331229600061615751972228687969895069160308202512957406901724287999350001453268295157021429510076937006323709912857093102739856932507612711193961510346010885017909800691364038456620632431124140131428155036381923588652944837787976494980492133221784770795843139682427846441138572575115681634987529718651352903547238721159716004531945039756075142094819886885244388161498833636914588541351463208178288619581800481496713428697765224164346729369746970423538674745430406863934636245035437485104768014415251674877926172212179730777448511416993310765473271090679462456230890709012127110808040103991709060064206679805649202757769298070609833643413237749467091088940760857952277532486160436054405654300213887331290372594935896343549768167704755308380492181069060410177734428605521649681477839563530298987084583527562548346786119902983575232219860186226742989386452969174545773248477899942633073012505742273527273475585184931561189628161212703969914220842973323931947311249524403629774751851274867887927489577568147618951569010766727499081240961711556782355389494114494443198761489414926942584711025265720349298028795784240720159946212477068504211387515830755712638963540823634532618868021534006051517469876213364725865896702832565507767601594955227828942074748456571601119096811489875786765125568932424120818462071710033732512450651070608798494716222928837624292441203325556327539034832964211586060036957923124113487065339451104292191867999196839915863025025846677668282764874421124514612476866477390593248837329909633880665972659917950853010748780595231047383351348597392676939356538791169297992551731244932272441953594498416234497551366638793003356792325423020027866121874579976532055640378275679731636572403603019084100913975074161499488290942878151011955618797252159790675765759370563697183913938811356411018628109781804560648181128574599518721946363824060022594986300188011151060300861568490517074632062199880937964613173286990710720994034587340555336075335559479800399373729892491078916828391051111796690546457341770752699527307777424829700296058979704426765703253936768282866806557747405909976495192548009357146753255575123163793197855803068586717800335407125122214142748502586921226749133877590450642704049087679748139828994142266683201447658679845940845945232556383931893320704297106898741028297288363194066122357047325953917193981933271882629123960266730867071849710025290705507036530278564444118793200177960464285846761540196401024141183044070154112793996775402983434329033342857749956149415175756280794873053205034425794297420414683714672811002420248115051319449653649561552507659783639161607813756022043881553576004824004333040422313649810139435208520714185524187647808020575037500581944652243471553868895044721343482175303548763925803519888869536788620217087642605182102643719661312614097192508213536340410819053280393187608378714254942553290672674892581848956584824965916850019342086238609618506089497628880414174416017027157229693230370342087069534432154758162278492421003376412516064263426676790943424299582724646451847817921189436272900711364682845533759003442479339648750257415380117222376032169372970363730062291626568916476610907674648010780041672982412581288782650594654039009047617127375763316510560457644724803992105090452957219781126927097850033147082831609946596030821886169734746636739840329043054273851288586649580696442037529974132292105117573866939774490228097230470752723015971813838673532930642995156045093592347911396866095042355092988371776800133602757112943911517808304288065654488111572417121901281378179082923323925373876711211509813521990168382019447283327642608350967259240114504431393232335261356105304235570115112637928720949436881467591343652177992938445372279950595547955623186737891254432915223017115556616914316164396187103229009947069696890229211321443949550302032919926488977186379086910101811810565763116566934971667696928096344314562288840554904523865499918697698386425911782690399647688465144849726073853633549788255533016069405423147848164097741357963255070900918354335899629022420943983827278757834844878224731064928576962108386495708878975623795156671563660002584285596452910655365052616644702197208124399716565039005262870495218419003893858267955722019959780284832234305772842977360521359462724822038843392914197450629512425077879487949893382153814285190506258893200735714271851247286017709672940985520032408482731117375836364149865550673374779802691809268108677543594904898098102140288379393125455672645230997337774553670405340114589864504004190306208032623101787088246304101978475200588535737948938404227105579240888138843927657559962827579731332017933132163174323110933317961651608884855133797628201585724074990791328275496140891020497157228467915252418951583322011344020790840491824214258449587160126065042148600960519956701576833082259685714982051809394970766357428079582963938895128468094695107120992953482019896868735813140107920702035757005339129181299950456974227541871766976693005518548289727268885646268643526916202565055105393403277733932941128171749795026284532933431155605979264354669257267146739297782667989212286128527355003052650760321891961228191955541712486988137314633205763582306904483397136351594225063549620160057493497530647174770598491826632150628305340659133663810703986234679315508521898326861125651299574449663365614879856700222425239395803154062022192502185962809985054343114038438219281487297967631064894335970919874573105539804956893676504059826874351787977836483437947392211095171810904874181505542161631178979463225449299407811822441323078366253378614297048454614838589290062635310813996929282969713346525086443955917898047228353556971888067776135531894373814365691277559077690074559707435833655915864735228816135844198286878356977030207083396123151582171913986832700156602985985467416652456208181353216940572678749842720749817794789035969679567447141118773467075072238978361595076881490865678588685806426057881770810304830724718792223115908933254334824049802478786536954673278831420605466041583229453801258130414468271150355645901049418907293313199697310078184482444113644588459295424355939275931984946975005299334666279455175716766224749137512399577367064338726496321987820396669751200695612867677233683847869936777715642544646678050914967076400315959137949256087517089379968610889378239391883092473226831344096188087705597339405566567582826430979485380604518869198647034389309819156873299778555081480534824014835076731656048102372556510459908877695628900469803196471019589087434826334906538255982083319554867115917727969554866729812685651328971877957863623240062810822775469832294005327781652865407190268083094389131436588062096478514100051912873411446038877633298958599510624789708680869543792824817372061039431101845817153040177382344886002889311112202802686214721476041668480446329600561291663023962240591664643828721976827542610812317480088546537025108189492555352754537171672873805293948145658192836487511120981666938432029302137705726747554938786205167042376749911568959821815620267564405243215714826218552207913270911697639099040365865097060016940953524853677121497179755798830546896954457946020744889707439561339530157199074579940134617568749212450204291047143450109740990769193079981154618232894842658414824484321382981345470320340145153961443511671042605998510000153674141773299752689848852259104773043755209190379214628737404461613808132116344539736745545978412520873441189073875663994791484180406011453445070825887466495502429553993890951804974828414369371602327770861324478709592273088547524313158594367434313763130264247960594587077097424685726532972472862035697260762706671209568176836538882693309211286697970735340501529664182575216238848483278515146635108086703884644395761002269385791161959089273583412942322609433235678445296100703778246580088571693549603248436681192805733594685314221152256349242000228820505631877011069244798792758559429318877689043220766973413610330619142975019983905697133192807107547355695867977622794080659552187486098372297261119220652928219725434435245491274639774200956231569700675051249926025201969048238733596580502917146179125211644597357601732057515178093282651396432828977322071332369874574194546881013940187624355225734440449600921227963928672004063518443971743891127712392372821305649953708501667555368007772368483706916971132742551122602882941121643739194442524111409737624024699393144250159804749944796064170546380077153240379137764724033068927669950967839073541597020006148910093728927215849900717590495219329595695483085272074812299608566667719573227625572076799352134851346445359099945320588026828602872261933497028077027329164688862918061352933524104577160701057882724524089514771249287594747657395836788718613865884197441251145704983042977405585908511069617074037759282082951513829943316566359392215034807411690746030422982940361266992753374809142309828692436020722298879086606776524542969231714947469658371217411920791301663076779163694351923796591852417264061700678849077251106940219434627878347176082441557135895657829064525567512453538460028735355822311707856654841161664957054828853563155401895215540637406992461232728385468323887121564711514470183053906241198498945467545079456665349432237387188719795945467055969760814267620568120933065555002154340700229121506641387709093290905588473415115508794037417743612356333581004476480104881522446407075375644707492040037429492668684230077928870537529900464455565203209839141166495429327639460464773608584167190502906022834575234457780942493684386297472300010187991234112213635099134785380021550326909289628868806551746407531980220777851357494848859893096551498263990160786791076217230667963521592596212009871742289699359291812309695446539375294524658738779201653657628840951127167045878495844980923236267663272757385664632114460087509799545591386358539481944367981510232743886919797816307906264858268128295797931090018580841267339293456654442063248973986374816456135370855703403816320025966914600069833939758184284543371537313175989151278948234430110339128093393496066318211342217489957589164231319186854747624482066902418056202597172557158206049205855860898262565121442225516202826202328431960825906825423360059420552022543697118792547483299085086397390426650713435441744516767880716388313331564216842734613875522921528146849368147227562487400520353608367971664871566551810173421325047019988449133815789273934173081472507046658584407360823499793854342246463154683419649057375913477584132164328836375656909054923829536604426862354505285405336000786292096855673910502040770008539111954992184090898373812151424794303355974222363706160757142414504430140743809267119403678596935636624558980837819351852162866968141854576871112176509064564773167606981492489734907855744031197554688216292742963035083383386441361350925087919516305243080148863916205561155915473262922428684737934702350549827907504432354427902927315715956923062344538576727002783700823440504870915324111667472962751926100344356437493720534697243568923866198581919357248702246064354012136370226312448485906291446319937473803812598514529316466162418271838160034350906957762599092208171295139814975105907125570756569097134143527403683166269339100518250965418191016286790571337341498005370825807428593213798902077036070349627102542797952416311127423366172674384618112566556913299009281103436775939373000334708943836578422495079129802756349751766941225179485375850868987595015038174169000252544597293417318300342410213213237942783079509427860830297914988225728555379254051544476969251394071595227475554523100770693705950349252778757015875489132761994141284681454817100559805308871595654393678914393982976192173012968974587259869069602280727187466082178858756293386848466092376562593249791120014419362709647783262412400934250503672486572927224165850998274963390536986865902265957864467282542192301188264376970515476231824282598801417464328833696955116922487584924660337347113520267213329010274659024322497263713092141215251076979000819554161211187980060338844178861575934745012678190250098557263075343802372482690268536254978349473871847423227730311492027258215878340726003934752317707319176522121128276526040003925158975610433014346884453843204417295493592559979373463148240128047779473841258654448464476775552171747926322739191689264896024512882354524523735328800751941045468542913989823299620270858515616382200134087121184429231985347444822546184328374404326510543591770197198589469036765887248495430229062443544387625623010471096239065743929644577497677418499405145983228225644567686815538499033878781965439588331082321015308268327044570645475339243535939955983464916866834309488412134602012356180677757107392887332127481737428214081712996441042183299541972601298898116707217549591253408195776505840383452537919287871960551021207514462960985302460976918572141774777520260672199865796052112053281940130195362567188206334599501124855222462335342035156378903040690919953215870669849080042593898434824543078751258541819813587119829113688588116326485537517057212195667032516542080263438058338103596112969228378406351579157638836017604454896222736808122917954333351255141823919470261358549618414561151003071020349657753632064700649189045086828818416925918746611053873321363736978281137946783800008972968493854191776115666231063538782169562599822134231425938776356889923372211052609878456752893785590299150922968628251390413170162204455921565762996334250624753521102062288099343593686098927747971704580527527788877501238899555412144248182814161965014722297842443580459066725736979860859111840280960432862131451547997667898554334791432787085257728194858848885303596131149730944142811193773408404595418841145819978047003557681613491154444468623913300646782250475731417383616629251583960461360213063014732170850418821262135988129106584693859441445218606789690141038482113469106548987037363844705056032884239446812129084671625938933889297426624835311972070368502220972258278086002199064048472026725951376228269799365743910875230237647345964755043757843347029647014520540286829516402402901301496617075455821603781350639275928789567498675019217973422083182612814438765243393983508184504923391033272308240456252901238645723705104202644773568221854044306154375112600222626806582261111356863712272028649281045588974314120734117938920809741222977281625686618912946912051415492195716266044854733711266282842586126456709298539868075566669363010204086414303484483264313952794252453644842066586916547620184947012061054842030218542849672063889662990124175434877721450078284609626078629804230794027139413391554483949973025099208817511633820305854770330118511743469122466315305097541454239247407144384426346643482921017705410614214130794339032267173980058658025357626800832066498594331454343449788184456965414682249123903330821115750587854247342009902461080605105196551941676695734655271136891439735487264890903755288190460766585696140031466974860201243593411465078928614618709244941923986265601942918931847923267094026243716992588194333335471773508966988128555775309369452721977645714550172691785155167872361237687939358454650870286771786716721144153433331692764025939897714931693228425389158962712224807457293357162637274918801222717779485667453517207105709849234613717540646562007766632517416384534749031901781920520724057179594449241376401157951554071029940644176931796464253794811148381867469555485492034182373081488413846177099194824276431916671342883095241073668284599827932963020531194631452658494424851253841235654059436486450235980122144066902454104503927672060230178969862340891021600080408750493373472225225890453629896839370201556354983709742826635317739215893239158861715385129174954087414487927420642609720988957800678467527358573665397201978840453670707639711126759769505068267737990754303957934763913317437089763963838879324877217479776238468348852194821266615441514595278439441717076215955963968897686380464386572043625972150777567121731877328619489019759104833594021186870722826536599235234359213133969993257871239467376839960944554250339264880557918263802377729092396013418726769517899273457526418893108942107100448795324834255664183163355409663153886982728480535635236559809488391749432313218805573225092354512660781950821362660389353480832385634979108996176633654006605162234179811244521560703156161957282119871840433232362855741771968284952784228572562470034029113908605693814067232143807915716445479770480590676811982772290456372770495759362786727563797328783755673014732962868001446774127632358473213743021065376203839553738447517097771494526871032028429121017627795814520261490099647117244276619418130701145741629559748353601303254371417212762130962936583338738461806793246180955374873753161658634566317411580865727805212730780073616087188167564132479654988343672551950371162503948107102299626235981867517157812937403633332701808709492866614448825998690092602145996544290881419035915197012857526008363213153607494988269345646148065637032167619838075520594190182703988133502934860496939078410745597989180958793854264350866358000279792112865292185373271825634655717755339450706938309354578173768903282527337240571227635316978537530895061815769591698519186342971288297344230975407537361358772006245417801637771216939203784967908174813934659303103857651660039881767820284564571580078279832959793982030107654591478617099876498938370716756517414221324100144399048561859646852424899817649093579522183790260589176483425440893891374420081436239544398409463366937075041937009643219146594959860558879640996859992164072792413238759960818629928025531752029544528763810942421933156403075122737102283050386808930520714554612255779670585480344955018399581487242207230831333832721428734191499416280468330542757378458603696820411327434298953774271321334826109770324455225101790772605874396012044579984291127617443417638247414305729493041942992000365417438481124440334546228041049331150865124503642816263981175710877672800266620028926672722227652473256780076139745943223282186079996138954307956140391708371433516964422042961030535503471964992802173657244221993404193421573553802706829524597186194389002049273147738350102765049482451470410759731629901001444805708070506134573468763439034880378972569882758422333654498803667849981693487458089712790489333366887344976404971384096244824513738239983343913559029542372711565278525976717741591537232543654468011784454854400877697805304058665528791173775311679094889862028966678740989839380917039916263372672084003968812657500999287866517508615891546044207377139328571036134399436369888277939009537946227129832052759431181690350033445653083782492583828338073011912869446424182591820517496068617931541213930447200174489967995862744447897954816203579285283294153704579441308872517646802875209760123779498104438907946949392013000286557834863725220382686694442823592653709230554178717248218862381484825931331904840356334512325671730362165564805685981136481870568712834071179293581388916689352376141312279070004370993741710495002845221464685634383764339336649739542388842254458952880551274313206601997726692104742100279166275324526486974295229435793822372668039948393471329588261521113568400273561327306374025850731180685083043156584712114949435541435099466696115481401330963164303300553474647115707263613975000763761891778862439265626898906744831816050996956222228919172369584624812073016891920327824852426716242484011474738207044800909733686609063316975804059179911690385179473998939952807587009988624553641745717720599920714489170772952071485535170635581134668802536291619003202546887674527985663016702801315336857011242489624412614389588610945083332037174470086710093591787734753551992990815141183610481498215398152792836896837687881164702341950535959421371404964867303060448443078835321772170539530674330100453553735868810500618430215627662120007857827416733477679108194890890403364264369871692888863014794760929016134253135290401130012819319341044497514126520073317567644671824943069473989451738335565934823573443530177627016590472810387733038628313980417995675359651304446182867185987665396573281969314175684933196770189283674806149405145064259866679501677438658671578222918316849867123978234857772776640055107365654048902114649385567184089459414094096794549762868310286490733221190754519662690843292232631171782450798428328159282694967616114160548401086870834858556775832481762990295754588561563551456906228860383207555544488497935658586391305069450368435009878666805974599500502422839545202883888601033114941166434355133334234035049473003807572602565124182201690865876724112269818068494639029192579385886987327555661834772901083591832996867008322522936176870889702837616313513052120868669048900717501349294371187514100003606758723583715864881725953666746966844153888821638038871286011942337471494260987823486955074753857634320254232591130855870305194397391565807752736347650571596961783662969017736244675158494185237665462352617606119498847185500655111129092196667380523398649832730571922933057709219342098009042799698891255135404751789048787405586390607215477133700225681234331816391150395905262059362378729602840823178241015357283227656083005371605966648963762065098850821849310011991919540703131837455702894819009767628733631481472194021377833951021178576936571420060367391018806255024999676140127598337355222202254839470914738466554092603781731389041186702122392415949601735452313963008216883938509408583330712187823837045952252590177523939985180644707954456024553029245719674613102599758777783312813489553323591480900143354882014679487865558581662407389919959718195962759592433129231311833238930961329309662980318225785793603098702483730838632004919051693244393396495427777755222833302824029522245912784944863499535526681524741239356993334251343829816050632824131089616702918868202496378444915067077446479493077945018664634805135380374157285651459553605410678422472114109934702164477024922007483180180028075659413351605154657069065891454747347188042909688170380810856146011592205080847551615333070772552292336023637304815354638882864863469232642662858523878566128837575418539562906871288669980420012887891283419319872597096593927051361530867215111723329290946245770714195141273528358402043013705128450186022944879852910966465513956764230730889373776069069089755830929464969860786554725065639110863269380685875437662694368415130213481523301481925005719474772727391099553434087537579635682284025143451461027110548147421366129888369741608222125067784631612948978576757987484017513613020693783222018130442885777228039158939211635025397804064071476734225923635110460670688893463150436379410266753250272761032394173698023743542026735340604070968215297166055631384061643769820921610156302454048072065133239589545443495671799834612268840941587144149691537385123632083567313387368561139570418592280104420146345343850497500346174949421702391912189432991349005775943068084300410106716390174378030884841968082492758587857178088182825958715086944357128758305518213485157895475483029581264472175576074663939076530653498374753592140865266216653743512234443167613330502186237371040199709835691970923809174803501098514613778651783679816203526352482941810112529397386557942833076551209578452713395806676545257131705981469928159257283958580634787951020047169592259923504225811597357675517324473926415888385385549275557329080502098378225455448436045647496398063158391967650118025282100860438305037753013265006850082590345975049690745784882611910874151703570635390599199676771096427941169709551466274106193526754745782772530575694479930267999863815119402399331389698263361150483015032818969791949093085326221481395047497527026235350102759019437510078347894494788044653187574636931881181795729884899195233303858406350415291041972121385144392070817558277751280857207903139693059983032761085984144877363542847819788413637138733268231347714998172702402011908446150548759294488814562342819819049803375569765745512680073884001360244885786640060816901091159541443717898997345903312117700536998329490915216485184359702590409993972498587193474160696543466692827028061357276356674688226092418826990939107156281155384328296242221174557860171929741614600757048028988425600018678428211044239025844749890463470622892189592535785661845592162910903557549585803221916131020461336213230563724236776647655908995636719143031531734340960048412899544692490295015034951088568989952427162279041263994156861847491916412443765376950778062312075326598760833780117725274232132179103215334698559305705703520122140899512532670465358656012358357865768943359795407853175849704591965068577690228115491328046357686316166981064524279596420563114219231497022823090731354383731085604121186321547179497397538391074253265487372367876088796517970275733171678967467942063787967621450086296730691924172627353891921176165942958208761494246576114697140038454161318841748578857146641202539075238623859539761369985936068965903740605491725578412524996155282665170244193015993472440637321832840557516940777566811809446943315635040319163412853503329285335142472172856959407384386039260479075158634957928381478767904556563750375327806657847813660017550225001401466873595013451659976327406876829024416929782423444821226607218627092346605543034027154284441136518055783427810318277024361120757230254460199906465133521416085070245155326445023446907708585024317093354636851615013689792522109928912749436972929899485792382602226806592849661885494990371184844670442376561607600257715804354040936369048954126137135298625770295268612010362836470191020243767240567698081703812334447442283045116518238031670117602908189338437007352921561159449035942742556482861814327672134312809215439374832244987601691856051838080547837058602114174546940190941033232053150385556760863175285197084976164409873468800912151724287097807489097081676570859263575847425309649764487487372368166813254110110688686281735552817655552586890239334697522754826343727045693058235358136574144390521005515514085761560418600634574968977889763405298461160842943484765167594316620697688538076370288651576359218866555271535479143794269976135576507309005775170447987312156850237366425114179280240852072581312502314778941727368655663671745400310428229378497811400805993151025186500031080065049390375561295682721562947074156143715492402820933266685132653249714574550872430198535612794248631912321825457793431900799208763469427982703070509614440478216333485681456490017397939283731606465318067247977308607346101469924219740461189387158028926389479610028102444680790263555696764556608710284738450720051671831108379659574174192806260680336217990176224150696760885224264729509631657062145338121585499252168207310237419093983203814117588523060144239095581288175655704474097779592359530927417796515271621864609087261962187450924225174324924904672650791808147721569163833723241932536654385676414883171499100336847297108344277617844603043006895041739334028951223768130109761141102980983089194823098408891434455508292618328089738363298247728517065669427827195779290351096772134418047194631681514750835547798212176419947577240131628833349330719266310345488718663872089960904034584796573621477587191283735651783766688280271197503453955992723933260724885660645317015034304194813674466165711306508406435114065191123157796389400825500849490533885929262812199049830909797509148377026179375360992268157206149806381335515171636508370890161240791667625543651275035992796590995559019555509121869431756554133156469536914604125602005765426846540192240582682206230523136528987546409082438600870757543003834062784819015193332858605890574955137907168603785555897987567076976181498602809333744923560461869937387787818926589018848516107048806893313287640178326905533054247334468317931669277118432765476745921431104664859832570450307089732732492081968008658469925840546591269236118110238540244481366980517180606820793665303445943825395811037370561144743521745896990392229278535937328453736937525809856508157382613691500979808656894843714219218204602241279633808704774721838161426653393947427763615271757507867599950490508756054797770394475185691927050720599250309242127673861383999095821744401430559916372641332777244108374270014438581562271031517513544772385875476052473761642298758172531566693507222290623449607123175906295033936679687404062560275527582535927606421320381459820180068183748810527639691623390640617423289004006240990781893665432640192722770689618130181337000576662295230993115760728858393693957818883340318008887308747689744283615454783132512204308716730840862642550952622104409749833619423145512051519061396635370469792676228567316898186225298632133514247849528826380263229100679406404340088578371897138807311522375407152511123069440679317723167832059642323725107013329434604343758493612439796202623440084112068349644297191690596907814808608157479435781092753034612293967738336074828630088234914258019114112579703574638338104862525700372573759846464255800210342167342860859015631195856426285510074937176173040429151521233089853859705240392941239557742329672593890269458490423574277586449855045584145117145051952139501746437234849264507292753703718842162396673057004977242337324753828351692339214208081576006279449213431871624006402649773555904520086211000380675770598418803953130580214491515360575831387773049334537753041267687622251996608787500317536141017135658232005900119786151812289958973961169064297935907916440205782214399908684398029594967296143884245204188048915169292589945125325422787769014339417424586739780637843872529228504371432294828008057004654197724420272852670990732341680902541272278264903832126104336526125269008574892674297579009451712405040879559591230303717898972250661204923354381374062519237927528634218265496706138591318400947247113553612487723209090505092661724488940652138079729940931200455139018524004846324446984562267260218109518097123029525266489130514369419826257124709908576657768009715279185268235864663897097423875278326084665849569709576746717253130916515202411515606413318124829178240915942207431567555182111150696750633404055380141666670802602164849750131194083131563715899469472764900172020530494571016930163658404930833649390072999654261208206053214197097706283439527531656594135622120022952554721712421177022251246658335406032788591913660405672792736301087442474722391680006371487615369627370623060152480627574701532384791011915426384655441886972007242493376917894027415494169651079169315704804004934729159061908371329892907455449063713487780061692212400660332526205407076642861298050977641790599519957458516945078131201324085376534469096555630762715531310615021597629054691158572717926392389011448825411103602119067643530016040672557957194988732500925887628569951046385052636195812731206927677692551525187817553187369219632584406277809664179671452090108250652483097476042416772419415659701907481940624881078897607394788903944980551026049109733745334527239284211178223754707649569038897188743342732570033253812757386115896771514554659123937526720044688903984158902776093506623593775971747880673494896822364647793725360144347976507520541856396896294222216464589034699479044566915529652899625611272375614468820620507628651999473337495910539411157393891961680567452761958110603359244673850669877436436576374479422220324910788481033358956339318834179245272239936336338255886737322134893542949492149688503926983622644881435119377197502829624057133921417963197401951684826422714993431002009068424886330607347350455421447921909265946978243534299835797669533942465419820324660161434923067453104251160805924854258286110880160696050691124660151370207391507502975167764012343169382015503466120957536075290446627815909206698319705875000953992361265817354246726119921812744076863543253340530333196582302781797633515990770527525264408558032197524714854279240251644556664105402986108673477336023864657212477199461858417528066529597266287580675511726024611985236365219531571700014642409748533010144303324121993258048328293953079203293262906925810306629833681602970017426781731783887010978075721644015134545437084934500625109123015517863927192997243865815354687487471072995155318114314260397403838833231684712216651260998241263975782409016363136580269742727896269444640160274379580550990323819685087697359002296097957320925409965214790310125579475651422673556695605646746385154351483852600835671348753067271056960837657102482154310170148560246935947359254030313045764591299715866815505087785909492644088194205532255227969168074680300126299918391741075927877521079209067150141061476109103750612048531537543477816243796400675031713470263631062509686486384816342573035444473364524515302488540737823289095217875668588132433536953317748880555850270193296438942413918182678622686501306087563668844817232304664508827457386203997933994068717638166296875267822897101386001922295915746024549922042685657783687099175595735242166350911428359996011085644070711123405523407840683639321315620536234371735374668274628789887425136128458629897854396179593729403821583486656405351739891003136445330210656369049861280134475290146686240821072379018234063578550234362719392794656091847228814269152086519125055452080549817648034943009317763261722486010148871934129220484748848728337759231184313607543269676328373822731304300307164158510237281017948497853034168361317839060810221138839892057885903076853510106646851923716015451906001795423987446603107150590557368607627584853623048629009231166906145361915229947302124642856749087230400992847687134083161378192611969861873874266030881003607639912318593725197075184547449547669057264768768213661602591732565423979264995915120888711364558260644169692793075424729259811386956885763613329727635848536428734591437023546561438516740934048884191673930810184930052317961422097902360372907562382142072918396539854376767029412119035358049207398459438102656783366245712456448375781050490434975014010245092824946570459182258900706491995089614262846092815846672708214502536728966844967074948485703527106713645254098415083335763652786291044787236452327511225825116828857302018214898864528804235978322786134366451682235892833460286553260266070996236461093492533320130258198288512657595776650682185638387842312295340354990194382162865038773901021205196512879869220470834637120351371296754301346190807417307171572065956930039056557939253048925391844271849492493944911224374729190061547585494297434907462180625140179940938326581378519077202225306426860865978222899783888351118859209603188538571102932831665410819256527941417174696085290116721985553774734295990588645054602730338000098786952048738969886826231320847215966325001059846631118724477908407080146849750212444221386774791486183741990202455342360307437466841239920540918224361509526348256760656987004868483779815925971813492955903215524298818974328940979525402150091111243430723846726498328281679017158624571292966133045464336193850483005070950746621898862392261582672298959202131878358241332102868440618305055258827411173811862058801171894755383287779455754114637009953599915359353400259466445644967969670312171896893033157395552137874050600390912253161600664468917114202475225178129989666825349206400882063592259655524950265065503723280396638029064721763851124037998015372947363402798264778896410830262888161130910928438467637331631756431417010164234876750478869169378896285757123129862972241250707467942269418620336261171648096268346045316230747333773894531460822097322254044105307828460381224728388408709683902879392372179798000292078875304100473352442254491550209764302867042055354494026931648855998659976508534794614491506347143412673503616060042591333382473575127687875327769401376025798401017896412029675049680603589948541546316226824824263721016289135275757397316485432346819404323537993968707094468972051732038552886935039179444878690240591237311859038039974130883394318645919336146484816203648581165255747408745236188164108566485053467470819300704817879542208828135221913466840392360796942940643761951777474953591266766511706742090125983583870792872476135679197740855799520408613510010670929308821223527886406179673088223424531090462043618884557907261692923013404323500339434230628093797338857043110411206089875449688667320059199024954844882104382384262097273900384342549654809945504241366834176197306810517236754982854157216565350426895242348344857232052410729399493047144066442881994363031476426952046037252913653289063629391926230305466694873254684437680433805989980238919226288419925580862657077727417168509957622168015371862650832287406067006390512058124443249080392703495354542103541576009848002883566415881127781864301476660993875730190002605483302905447995334063182348514872808168942467280481204391113523464708578273866687231199645287101660740721674062731572218285306906425885861859978562799248600434798337337261089479250060091962970724025360345355207587140785581173098443613324433648758286037829728462400774918698673387421400227837987283999260748857300902174530311688197927667699384729108362310072930775337579290218374936273207358119385608064965523300607960768849353697089818929665093498881452175003862086752545021470854989016093576770987724815963595396616493422908287796626346941841064786344284238511077582924130457012763160279236716211516432398387354832896840381338494842102054700090496667986851638963826397841051777066282159667019012856898393510154561151780299382301534711071260230512159297540018443797258160372818372892092589322747328415365745385806723907853534791276831749729887719983566428606487999082622847047492041615508282525832897707515927059550952883812468060892934945168751071725643962703454079902674440699927478948996688740525817470070180571865643845364099792536593703110601251986866482947640142816522042450680560490792156218287203018560304367761850186585578330599997082990086598822706074134896083010557521628537444402056536245023506116075883932461361677933015091137019159975005500747959595007083771254739329605967109566198583734287721883419955717170285578328362636069271385757207920105191267235785603728781824768604934424857706373148700317102057797889988025712482464225527359564123344588530345257866156255266499118835977607247361872124492436763175751516329310081649981978759896030683169527249895235828230107254691394989222043167709141024886055027055119945845518623588498073354605676279168183655984682095370313094501003550786860235431623445048006292412213353501498833441794750818029912872398177208343474483729186394060785625267597833822751213251366857135017546024174129285800643842361722486246524410560864461855740285366202876640194165906039681856462931381043624228022150018405443135564582385783016574322025341783190770205681788549319793479082236939532354240136899731365733763723875969123904676856011952661618453321935275991406761619532881754752384110095785826769897645312669749275261595031480908027437308136309476757087145047290588830342111778962993814709988593357828294508278397391141528544941577110121716871079558685514886096896661233247515696924803348714090477803549005007739843245091572575215782032979254110525267416335750096835345958987959165393498204878750220429968900533637103167021788387500822298768857772178872133849440123124942786333104584825450395834557819241386393353078469707506222376141233157006562286512141171291984327687199581160192946244265009074200665590935092193801650849425873199041528218314111607115092426388804434350464199341426512059202301513145033947726685963204779691776321865158010677433471779880466302842890751221545838228932157703151227528848640226861856896867956502317134938626264278803433981690547225333969708332501070865319729581645578313719022924240019459611244680013251677034448396618247851536142634140085890684494978047472989866023590952218055819438236584827687211397260826218384590231942239815134404360181722971349152589710413095669403805269973177176743927451434187749314490932385856814982650601466275181883238880876728724216161936526208316609549813179039123954684923161384576500397393806623324807578711273577436507995428531308826064390478284808183615555168391885929060168729736573294307768155482735159121573103290885859392082168272563658619330621774974196021866192545802646853807667677766616848673602518243663523444018211791891481987354528483146731309794739429605080211804181777762002374364475921644911732431050176669780771398099756119238482516150823150424959131513411177144148959281329929894143927130486335341678460057071647574201698083663279281095718961354236558416165873118069555966147787386647751492530150242745037949046016886099695508693761490183107074155864295011653736965351227866599430241025947360190122326833103547104726939134963215128351598094093736050763889662329247985415557597030005296984019541860268632311539260243763981499231123797379500083357822556565229365821162279632476436875519381319489115738472116031267726044814413364221315583574789225429049721864764435682782277090588008174278931735073191624304676754884554474043883402472993982384220324322922496851784254377168982331172738282539933994486133479365613297867179481741909691171523371675068115050217876446813103930323358433539541343827030047597439488548319910546548726583846582417789285999768150500424579669555720971225349375955740605925652514698071043456078248213347194186823030251072300518285109461283814855590801795958245178584848670052837236754213245264857093802315718823040424384643761877583740156151840609533325551359592866480035317854180308716796881791093331429025091098051838490590064981386480052342099965822766159124163468594586563529683249124881180865261587087856933242745525572703320636255280481443845482619339938364795142117437328404744672925989898371121239481737704256954466265361243208706098593947214986283130977775095954271211785331695364284646496904807967230954080034845966826040453481659536353622115525186881839661454750717680795842802867163425840333820206426760920157039722909582578223907855392808222005370195200653221293752081218463949456362773758846461966494250454355004976730692363374163970593637598887497000267658049420763395535458025410774107045812839110005519969289739991616819176743377128629931704339298090772475117491580976380068306567416993908304607202760913310911194394139854743012177065997293588209228258895148145374191808919664626905310603162058303707656713170504471275474053456298024785469933017548481017316173596991373364546100749522170901968390583341413827930054107802449605728195595372667313151410917631893293667273511105669000850162522206433117555232423219831635297662607331621063333149090783547476584553766556537154279636057420245991834601243158806335304718907162192084756310512238500046366982929121116388799774500928167111823309712661211049806326645114566553247013685860077058713856384878067462898263838192367923221145050141896299093822791541183615114116491428188225191611789448063289694819576246716718637267485589112208912351195815642839985416356241105985944059638414177403215564728332176257758730029174638908886456507040352115267190375689213490004318277680079312068211632637401601201403245414499721728091533309495110042047356703573897384404151079856225728659238241765251544097682822530712738035964349316938815100843181201475130060138224664998831957029995016825470260199934931630338123686217416816395015694158214852712976193135187372655814010160080564490739121647560808414178543081245104530361037400537354990048514222659881461949718447392221350338471787208272264054452451815367560843870495552173648390336150496218532463202717065783148890530803283464157399655460536250465937996928269468277045878095118252039915537483574872490581707691024452900026085948722062436786547449812115605354790456736467845462036495764293024944823760695178941604339153786523940441256197493099361996210718685875903147740532946498693733192529960772903014528501964069428223700723503109996734507213514300256688396715972433644089157980979582350944433958570684509582317444302490270595672190292502172555885209784456906457405101665470415999862424203642012865343685546357381835680535402621657354970082739487819772034720496862727151905717986197020073505192008251835809386200476024883570030828344237897056246302089547817778538659492332701344212502497523659236018273456037268509316353745374244456408584758092883030718942171097948569906651190881225258092620099065763672076858497278639003920748624402601591143410132381003186752373128283933822340686588514855734112765808895559094661756364820149347372898165450728361523686953925642303189744851399610922873600253108683395428146931488224654037609130988721213396997227928834951967790234103458723020964383342269074515203513749614076239609031140465442249055244485228771961629719567374173024253263755121343099971536408485586529606918619003689787113451729316779783152465324490751986066570211985796648902804172681668672964470925022076121718214077747155916631217627338974220677912334145196156030716847558050527388327572050389809405393530091686989031674809997163420783491099777873989969715708763550727392522474064036896293035858199307140511527681667936768175463987390176402225203104397814358818297083772143705142203439005052419316357860494506443062636473306487697428349616041108122310825111894153869106472010070086852410302810010207112380360901667964769804351588330708689398463251075035452686857040433149656453372241649100406541677030975572546860701003254323917149474011424593536854475183538683694854476663242940393450783743978964743542002126968898188074510956208676573246286482253169106593144039938195361064858748358326509660693955244212197709579648210571227908233283651580837317014079512569065980133726376874455489866574306924829046218150303155732884249001203296861653327453732446262079052754160087670898019218763126701265279509344748416274367547409570696067848291222981107039021969509710262994237573587342662747798493719396499733854311032182253503136250160860715755597197161724545868724795540109623576186549383769029813054246834350896414400969609366815184070734743329446747597962356352120889906309006272846150379652997086422643412937228119309416522411246060029206618522125440095804634822158927238759375735451969899539322290825873969947391152726684114780544594976784335627821114991143568629975802722938042082867992710528886616818511530588585558931266459457277355670843180869933519364417727446210351540213803681405342239049740820685704587001253075499870610453862202304366207242563577414308358924406537538262474256525376245205212462537249293278741957113648897022311832224184535577725389140445687108936816147617903085909654253551261433666400629293952272377611474697185752235122364011842461315141387767647099415159810901997302154644877945512748883986889997960105462470811983305464212499721867198789214623295271999061739490696550824581646940251618922513304323395548383093492220821000400366927104896902897390428729107803540102405325195263785139976289162047750253074070977262173952404334274727246144218986958923231693808133474677375763885313721569065818705559502368227814706299229934558282985358278419871710420563060786465363786123108412974425037435520193233586094045418919961614977676915404545337289899387982139462541007054792280437699574395677670057702997322625604125035461662654620363122548718406039603724404360142578363031865126757319251228940861481718368989332151594023508558052824473941680031588080982451388998626542204983859608442464943938310373604745235701733904487723155209084661314831696650170118648198082593444867682951312458177615104103750683706131721479648845322598994095717077289093147614958459599780476217572522792228534025683938946105804832694030337787074822811783278248532923184413478180680115115625855086077720238137518827696896497997878507101769187721618578366109404719406243180529761396435873179269953085388316766254711111966660913745808735981219698418662500359869642313952017257607358553015796414717870458398624611139002169415008132020535673545391478666151716702539837717498291978265819952373918472603640673708218014520321362672562441468545726624357264298444788401319317941444091914123985876951580897269327175170534458486928037620438213914909424604864041784445429175513225246974316266062656674818120271375990540415249547881150664178087886469524623563801951687246452649101067794900316912557616187046408381790373902398327582216158076467718537442666122353651099652204891631313473768676038867854884696001925325451048694142309666530724660414642854700027390588065193953198785928648704759461677343263769528600046445016103492588634360379412939599477358166843111455373430815629705833033878894800752273097653236253425385239228890192392418368905471877031915213335963997157568746456764439370485316504835383075006349380281968884727767216436635965650635855253279506905111897543374296744272644721327126961086268064748506658475622430006923982042489878974209210257818959091457557118650901419394257177804276052454536348962850498908376473444806484340134348884256093324532055266971198689374726600850980144384254903386691332757519857697981168365120571088694787822618319000963402570838790078371148453345992446367801508731546301571780308736585885319832736496582559419898976384959734774018626851847618879644056878450986608960041263919462977826077522409829677939399676963175493620013430555659128786749628804669309879642455299194139388455584733652223627490126945840248472216834854669399798885328886265006911376388375622363978206327484746591636926145189647362326214614174520677415737236046196018224321169555980789854390892204070253155960950658959145834010831071633817808514502205346519066174145740499010084207234609993182486327043056190193867801474824156898692471780260180910779471753128714502106404462396194753697583587659915183273075094963768931347980791646171151099951375341405310523273035579938979705658771701171951522682316689970907327370363896639141012597807544130841062734902892827806563697134710772745503672011088919279017271247581921187270574277559514390983402358404461538372756564217612782353721520033532171599154966655299107635588736703589137057841113584898706574132759035204389997994084435847705739258068678851822280109245103915830596177020997673939911065049589279112371629709831975973853149840425502330420473324701648880723234497562347050900239845088877564961811922908491791133309009581150884016489579055492777687693612625593844300547015776498522331333690151249813028472051539360219801907166338696672124185556720772687932404111586376941182348101907737455012397106784241259180431696618973087954882232740538285212436914469883597119346790274428906168771242066653497461788708418880884924565745231151508717928825143459961927280222928495362429064259548368544678988860533764954379271934585125538104361150723496163042017440922218234837487471756633711874934264971326141173674057836681887791027840852391230906009753303795005602860132032778372058333540572105519391150668230745307212611816457707278321211953613947511644694383951484475914394891113253504501747440233263657818159330401421211869901433734128617715141646149717931301457525300635789698706269874880713816422117979418310200509160308886133797134288969466319208650849751619321857936580540204286124105458115215536010700743609640912797990891970619574760502564747202154008746108733049716550181296278267508304142440089809739268686475185879353041489041053192090603443968037147747348369521660986460997665347058753416526043015316239318955137700587920360393394045657390289707756903889795675663638131203774695164389519349124004672740976164774140843458077711595906711283477038055263044589556631757601608844860173819675822476422994526283506070043150170624592960936173634695598911380372825231979005658808499476851174042622405921704168380201642740411578368113147904433537501728595742681216678665648398662292622999044950825430816661872103418196324855143884413469990270066605077838085276837999486396614970858200424789327107865577292440855825153936246125379847523455527459717956749352393582369138012264854687461873257582217565688695685406101567125507858590615166345676654623737315581509714709734642152104479692413934723491071984758565108429004474765085543487488337282986067836821905538589134908351952534930649236989505715423321988340948667099450965362224306434939807433571568409923114739114511837315007476446167135720320028334262892245851828706328835661114695146205106452510204469690899622441909066420818001924909863293440720766434027747943694318915921272714572906111337010079339464892235109875748242817397887425768988245149402719884833372929636060458339655630021255455475408623284531780793727709557703913100353587887206804873051476194544276226236253050760442922472524202763383224445680822556408593468902999122207164867348784080947847814247017209995910071917051495179550193079441855170072037076803539247912712905127790590518297330565220225145814718981185359789094920825938074343200139773802749497804997069648136419693911321300767415358014421912731733134748858676789004923202902573410827670830857752698710372605246495168723249268800835827706733802262930216076579061723402498105531888221108598517853619036815989148876485440131501256061090496297852015705796501826933493671908992827313472194504989693638197465555996258873698445319817711826811150445494554641993559553261373037243315731420119916943013807355311556622124350679053123430606860004570523911482142026419048310436895614430564227943909355855929666642059437048730230697335961066878320163973935390962362967005511975999770288886487711768445351084649303164333493222892989076861676395727288307004129277373316931895477545959762015471527713121530763264926396802294946787456840260190391435224506278104236304101767240569430318036218527765065111895003820873847668783448512670984932015200108980874909321652581279625127285947511743678369005434980966015513563534944874127030877223818793468200579284389801195148040366369708566006012134298844362499062701846722684374851492132055955646110924929433185778080899621944466863647457924065367459766405325233574876486594137429542389968333557533391462105063583564015940450124149936583368685117193728115738574837928185721434417852126695893891809546378981157640408138142369535136222390583540453796967685507202063235772995830290138357081669812473307312899358614137640339122137249037276303956101059902763664953098657740697392008554485801760792227440297631248053206240580388664916049569966788952104184676395432365964195069971071379681777626935367964270541642588903160726238985851525472788604916944296947159490304288860704625947279628714930332462625436565967669486665133777743472854583351606983290377215285548342211989306485084165281987934678524400499361530310647542969535107562886287094095528813525445422738851496049368812044326443743315069507455930158754075160937699663258267496872876028969016787759154541447155393146969608823928811690120710466912331450247275645416662400109725211023156328871919053482668615707903869555545197056052000473623093401853811488592145923596838230149861243316420256079484591930012004310963432913250307896024170919751153921836194624124749173268663477687871035693328244997433839102463153093107226345342564547865991237000158440011944647771506938243605555814560401928912395695118988785982276354629238793973271272016928715538987874952708894896060452939867428997959640343395980020538448360946901847795706132423777508654909432364094569617196694382273787248978366300318798545454024612218315334494326521930811347793768785515474087192122719978648118079545706776141941796871025115234095813082234195565463944409741101575482651355839791401486762726228301675483799378498757749927653579868692249264814990118462712886460377068340237810547806046323485773332166930328263679677874600705001408689369935908024370017296425779604752925822090637077706625692805685013104554365679908478938102128228619487694662001759579196949193326930837608705651564606516215880035487085776830166566968739052350445702441997852191421242713123292952078517941885393338722079375813350019694068485277190915794473737600056276408814771870100783402232595186803988072198571623544581808214257727096826329715646898872787517367480417096417178102690741480210316157252229421787171594456959362101813450278730710604771638062865894645887654503358521189194509417483106624837608545810548543808950937483442083248821981520932360902056991283736873282211298598003749575752919211926624508473322451167306044171425179504558843709285979518549499268181983599586933886293849842279736182949087934221901845842281126369302172567193449994903124252608460918398174954467555739570730191028790977768113635901492603313765272995587607966242084013879351417123200644939036826417881178993402496670678545955489065358934936393230616021767851473139391419320266067768198044759846966059431979878891366054816276632960564772587954926399578715965758724640198850755070831969776720999873568766568609457910677028035691213278057758830968100354592712971593233306309021878189124648632999418607806977219332874079231312616939007830797480925678882317616384473736454206449127816615440176993495326684552987148058835065850309177262677756688543534326944621886740310196351557119677919505067710978650963893658706613027352191877950301987032365216818632570134900996379238167787107669382953026394069467309579135339930126909545017297951030994598112616885897972983241482549169850636275415389440538183257749122044379987977684533600765596267261831621656489489632436312430795341699648383763772066138993020786393146614877692311173511143325485201921926945067294901582996575163866140637564661850076463084943849154098009182910445739814331581125514239007690409204085537923197952946321393497163095098950057439623564200015691132417512315537046374003719204633312254935842048678719666592036307470072165248333290486999708706467839420390882032140803510499702248007220401595206308594553825968848190793505915841540617006623636563247739743311211967993963286056159225717866336746644147706704827315060250051187087791066233649555595660182930237728234589551055870102825365353251722289835185852530526515402379424784946284918247143688142050752431607965192541285884625752910363037359259778155869177328808980062539097087621291387032310708391541337806325586169721077594431687759537070291035565461305408099727187533287669415334491694244058316279982812809454726981649472601328474445971305194132308912874430384504899936793590926380118905347992402802408168580094275295622137475172795980828805897428034997086781547367001368233434365412229112073090957865011581661368876039137129185719702841406302856584639894477197440119682221765539056077952454811118863100601451059668929896936831075694199767894725717517540789193618036011677239397990337702938377188271771481132752590084065083980860167529587403974277522587368048034051561688088640231098175765257186543560223483135454685962912605557457638711839073095918159212459468317272135932857898718243015682753270506707529648708616288278212848790547458535648156193556624582816564329485950646833898339737318535167557951728191519880166698406229625280528523077707252596832338621205046267138191468541234447438874258000996014382119133872040675335096482181153743162672500223672390752293475672174135001485431577230763252321929428685922739395818085757294692414575178216912476525025272604874214796089000331990690631752697374155748346143123449666601310023243131541920590945266189303777934894293725617882577227731495162474314281531434435977025276035347653137969780864269682508167148320442394787282572873885851759575394177269836298785390671505286022358774993462408310536656682137919219964542642313427623982611701341366896323738386728624028887420826318007778293399494925029530822344283786662155680922800745541151203498437402941350526362791867666505985204711943775725606454289437773429143739530650312357216718653641971241069292712824070802793466444903639368663148681098637554977103622929899335107864889866659162106072941899587409449483813663389257812884458015338373449745120354507989137504199255923556438723010576897082181342969402078388571844857249985925228093097980245516339553180110524591348074205386971653732758203083617836197197685327926577548621935069368483517950152030242466481372726697138712600854249007549170901492863189943008636887032457200165361203883207994923563727384362530720323722612260014073038337848551341520378362294896439913645607293741980649290350738863424333221684074831542121895634716587518867027199076151257013366769270928138549976771964680512228981338370099514595141779180915848148668649524573723230424924561259353122698933786854884386132182495269053053392790293198021040926647110497529813301274298487118960296008265965181249068864887160421975958119426310208366704244867418007633135798584467942272529715144964051966248153039462963290003687468857974772323917570545555605482130676805441376633280067385236686545548747609748807075637209073843528507109082542715161345817863828340830519733889451642282756131251060374781595413508702309438094256222767246403197337221264065955764394018687190636685098522709343964854686456214815898691373124944835259367043077198016820715939697399261676475812804628979220063031344202955648609726397025974427955263759707494180482940413750981415893214742213054201670799254514416879438932537374340303667341883189467890630064153982127011103120008561123480280604850814982709812796516221760554151466612115867265288334654741531063047818454327668556076096554812679698262424941688678223726355172630743274007670967422852824527102163466750432641718538992390899241406915923625603161575911630701022207722635409188834438620390602050734385266876514475051464320206341078664232850947474262665914537661585152438653424134186170135317499322054043385477201361164012005073439465067650699069196912701504920807589815156861218662753102330647208190878252602925358925056262661765185017073590677993050955504309066934342283739002413236214055600821853774260715090042026968510644529779794349275344069761090543842105887282968087530969568110118374764185086259328898511962536794127214875586095913091399024374698440002158704871252689978288262736030010310645639330467785888690030760660614602942338831563414722266169759531642607448665852092168980694283832329807247080384071427043471972448805646721859987523075484819485170375827114839221478741934754009872580077620912121835548564128347865267609862842661062806295331772785903581015574871390086538268681051300626062772720539772732780573402210730010274107501920031862241554852995777279049887682903290754952306102333501242433937027116371331071450844472744955911353414850389156309140166417919840405974827900367055743729134944389119113163054672495466565580008037905475189954752095960966603026011057371224546521703471699683578946095978046987476644751621841717496801260694941294591490823374766084142180953800927505809016568095177770552464226594684441467038846066675682435060079487340121388450480300485952027599105064139202026414375512872974185899022752144783248317968254601244010854705709394976187854459630226979099657307963807455696878510610949598564226480628318533883160490817208517732807098519842359059777074899324138745172920954334219933101995810878601568350509503420236387846056219241426250229536649037848137537242697268820990697846674736327457170091544636393437402895596898151681099427951254468098666343337615598351048604528423465958855775938438622745781366262102782675985990498776270647889928977137135600001671252613156677934656550725285015221124989140363905979708755036572243698988475028456797867213628166258232235967850649627488957498927779984553711117950952414554543846863122671791555199244852711858555601836601085749432832244057817453783337705854772266769761139416532836429670253847064669207198510832085833690139012045794188100427599388474415561142416765407639483492762820414121316167594948305756862015399076049711161016937813096230050634135914767314541381535198428135621961951896753996083734671077552220737527623840604473377414275505478642323587495236084435453216922809007912041129683015198610858894724095105340854565873721039331147977298299532623550856507895842067737685773813374684964421394108257989529903710629573540314809502925249967317401903622641325169533667743630212249638922786675952074881614324091260062300557798258492089679359583595231310782792711947483317786050301136806056206270780498136816799164351392719522583532459835124517749693666482788618602561863104250231982169128244920354289173541905574529861506620290601011753998739159042315136969753794591738378028445190982500291810260550833243775205410930729707809781659473519697144115166486255955534566753707862981214050984996489863766035667889065192924927150064093015361882194317222363076900324367329816818633081396905663704258721249307505339973308089561580964116414189207757158877500148569822847955528892672968751666541988309352854563673170926610656725212261309768621624461094126918040479804428493813485094344689951290677066830916671339462439942754266885614475678089693393687612869419499925608933551017766904334503491281791277075330813031286395244978916955916921901447707141410589834569455078240866937074973199437839286142675761590620854347135124957431633740436027571879447683444240577512025008973320876375970143724789414491385536624898729217074239934667659789203023638032016824108645057989749220138265872992187555481051064247185075400594898653391112484560360187037989750189920476928053812614871440759466526623952790130337161982331643986911466995067320304862083614099789413579447749447918332173110756083816232122251057728649336287929856039014117634721242881529639229770497248102325006838073846309103390558706283898608907844723334301066667233491149670429777447423562979359857600628103568196999851824431832667906161677059316180029896124160965316124395837600027100657379849244541146746536823820139870065187994048143590937723261105909880445607012709969792518871779494472913767623286836791524089061865785487978279255579087863951251469948406166906160830488598297478062846547003141239376018356870696854412334857922379209172322360205389319211689464124593860332934996837445678039095847299457703915784467984579000347080565216580154412656716771362223027397575504864249179974307021585848421371771501027183035706871747760151947670474823906519659073346661537754537027676906242209531800744826589846962403946049848924339949037914861035022043464806656825677230076104967277630408652006834693336812842518795484654480330874502188418986016149778612802787059848141944259998908039278408945450028955394043338851987703241069922025157651269378618105567562837860796247318603809170305319129305376416368943304072706493328511934013101555556853389649505720778967838181668899233785375731847155088291686014037552773848833430064513606459770137564352100897539490614802462673264813078065424402444249989586753474030475988167871406264655015177578493104482751069454939675199729420926513451452999918422022254463445932722221832739068863398860526972470902611580382737038390888220655093717451998555668526993025492534912415179512998438478009990588214097169542671932434233010126613962871458170816714258094352342769718539923246767557446982678086332872275302737307546481254189995958107704770442392180913025613048954473699724953899908883909442065337828527492032912963303236848864790602438028421228596907519248492898113162596343371932106468988875469838877522462498101153221925622785450625322568283357700233791271985168869450896830980897937179096423325880728508448580221694435201998462031943794198320113822449862147422709731115811036231930250632723426330449432498900621083549163069936447042256663283642154312984553167517978272425672560174550067554949904972358732033059046212466205623485260910682844764375245687212470760850073275914425574459823815223542346141631249370348789410248786365714235789138181583358129227329290506322439781999842637799095755550991726348731557356979403511737404156827248605632804693580567227518174124240216854226569088614350421635569276590882836025252756876278877234127959683260595028005700061215792276902207066102823744974464379969589500843420793203192441009251246480038628571400386803054916122048365889367616887023625227811568813092211713054342268192943583542110199576489831866426934709977744672993886914317004097326049166678942471390311000980377554714510668071336591354963475362850273549510940141876234369213921165060649191566841463823431823062095668229432526613175168354864177452633153366639775245147910069452840542101781243961834217199343333121937859566118826481360212191331566339689382206755962792896465213498291502596393273041790839488587971900245586520478319931358181007727420898583000284201180281535398362160219779403287489898875876094314254128412126029325607375257027817800659532938936484514793307271987601911033503750554429158536673136888540834092469267693690012769924636848845023812347888648305457405487315322321912359225585075317635750816897396595958324987412513852082032499884650616787345803698058595082953106354930307487795896564750430907307956599477195923401736613614409619215788387925242307028314497142690455128503685137767250768890786487324403476104689653202871334253864199508172999131429196770277258634879481873225911974335449292638916093722006646250034230316908868431386198305396611504572920951803903648975303376951597699880261739522727275795221038213352009848307309309824716509331155587712662295575682296131646761673426941836686076689264775058332931742661763920043265738349796719500318640717480545337197130224878790216074758009794144289294634444276263037359728086074950532046461432775278890784615263178030948837519318401311751372684358816160225019998508283098188512411398836452612517353401445993324428999023331227625466055040908320257316962384397063449179006769374114976778574091433816062310028633696280626799679256762155182146774116590818298023325735030912669215325289476548987138350803270764542491226389617903563964644081991507445897295058347577669391217750917717023704766411038839555354199841177831025071964332009793594305035679577201153136775304782425059462931271019112947090177100661497245170923119909621318777025168653699674272711495511724815518091413150109209221257733718034806643115802485010618009260876634824550105121092374958312929886201547937025323189333292219701064899015600613162080530380438616168625783749520502210167933625241413339476870478144206596205272052304390430899576330074398379720800055607983627475994871796168635475697274949017214904256781667227566531289378797507442164743650086435210206675535235915786045779067268812863802594447855108944718949329863547922989207605232567188073593131866263580339539997005162627999471703077183724396502558447923440553292757259323704515961623548885271337739737809256941046737620675734866147858570358569895206807354931351176943352749136847214164076779743796177767407805152631748499526046761854596048940931319293287461231060229770929817486578089275913965873844292145872004085250919271903384993084711799415218648896950329906806453889735931431990773214142605642970614973797742324300901900252485956053842924688767286166904987211374793486310659574260208198416944879708648638680963472949069894213679693122883214432197920311082256806488847246017952817584168223666028877906369395863574246707141429966595506016831680661347630440288853103173601003523395449350774955033962193933629330160110034229621959611091201086725090853478129500862597054510814562603003626049329432628277209836468536225352233962366140078977249400440293430886145710824238980194023242732861155411588738340500165868099930627038653059343497958116463329309927083686333440208595514636999818854313163377705789877262496877481052118793420191550726527584879696335834082523107047998291084999392253143354865430089807133640021016742499819760426089344906361727856753443767726851072052420090154099052599912706377011489576114820605753280062081480113060687709633565483020285119726438831268010151466424807363724008221251036851960553674274712141926432784885682753232431744686065048687745539674453290424864420495916049037615920287515032629245987374066872672615457778317617269309097527402591410685240934024440658082032884047358593444788039295109332762767076629874006486744335118071097521415102141768295950995136619753891875438298516571962289438160091139061808756964444345702701880717536874757148746014978032356188405277240922323005594004543983739440871674977402546393671808193698206133093884231940109932240600003273593210854582865596856992844074953139444401243330707704123203901623385002586815084332345833092703992534219840144465489890500298116783232656145990676309584547880529869070113878713728501124936105073898867462267730602436403458529267520084024746305418127753599261336359452099779222877268955995771114051395731848022923913195422911582050053642243473162860957289950970995923237660272243143179246181951415372939443081680243332282907919376583445061600370616839634517367914008906801159745503462124778497698078604603015456235536861505702483084713350379892510432610157990389861485573146524672607099811855036934484330269769845820598965505053509324446634405867156751326951911766243278130467849121437432737404202110076719665445301951070902092691055555398699464614046794135777274619931323214451389450058061634869210291050579643353036391209917552685797822636131063225960218501866688616760149855988197668028528592581206236623836853090714057880634684764199497179728196522048941848562432400007084030214484082111843549757571535720379581190673707104282572212448370664410468474132677366764396036935786948841847624352688386109082434981151806329569167069558289854626419300671099555674513813460453440177723433576678918085917604542831717795889517054196097095115755842246150227828191592986543929904973909686520537827002425008686696726320162422114563407728609835927547040508612339915049397071307935106147547865495506158317260802999115987518351618769364620468107852479670572949532653983203598218167027056813037459714693828150261416863828460399036097627144905071422447747007511088122414569823483436410136735735530375063113108258905928712893151307016779371503159190438675957290735331426529717167187988565633101620214139416379720343185277596357898301288807055176121560335495905124118224156285286260870166246266054356638986454013711386479969705717104158892360061483953519119455911404408852744840254247951972952363899333032573905395555106514217220465746343457794418972635762878370605269989382387418614107935323351161055664253856343098321689285635463863821441364439711657927362702128529239033229301006476684775811364530458380998252267182139869626224948075478308267282603445127371530753144510508702907641565344217951769448990794081670309136179800030542025819624992818411176285978485143059382953357446487014026794838292694022297850650572502258822058660167619094019089151290486031454631054598319185316628160854277428728843996837812513722294768239829238298610888237205703344939676544935105401734162316635574487486812960098693288331704471794421592517486811883025923298769317937178513934021249800696813818955070959571109900503788106297692899305032092404762377480348311363827203391058673409154245146933124267149577185672160209471960036203898222412818618087871665908837456679734845022696611659892574565947405127407334476644628425994177971625877099323045973078864517325025217666316843496130609732424153614289010487786221683111687221611778340339650738710840738010292499559700479009096668094717159348398508064759560215831827265884809594895997078399423881403136242818093895214997136356664901678977860773856349816045852649539062100992452104961302356058416892925644568393266303276724174276237373850168103641530203198837640804199440783238881518358097530671432959155738907950161346195057364319113624968572535537740069816515434739862513086987523101948098146587975901982624102102467687014215716805457375825150069741717021619049992936760652564537631495334825269348178762844582356021766931535881513257997495569125256129371958262951053226050427399186968683544044748832327967353655453838909691284770702370742757501639530048177290986386511208641612621493037084622935538843308310449268509267648327275637597530361827698343752431291178899994943309470067108858804404082243312467245855667958623941398006033463404533376906563244626392350804345604656544230228739476225209698282998905343857124197000259372581151969638056186134138009104672858255324628328149097891539287005101792889491651403264086112538184971165825926288177337725596977293563904964966589785301993746398993196270211827592425885710992719976970613669219484216776146868797413369514559688378579129991788713531826260511589415555922189044924473825671294008618561703814237076438861685011678033467719031121731560840935290597445579313721061863325347136660145362191751651436635592267816445930464391139463802404201001737770017421815626254214246916309509414207845749273404884043123074640334981225949189314788613037382781526715788861303645843532738134273071301206782748177179709304794486236075065933460808213626667326494380101239677551120280863529931686297842988072866592944943809305423952443026496853595781727329724643083857500646509637638137282417530481636967206039115137182025670189350242219936661447260852505345583811404732170162566643267139675715906807986041748880031270859904728105089556900807511990195593163642383075874986291956976521305317113770611092650890500963401847503616738056943956427261158438165619040221496942888305276756348029509499154923500929116986448710297898438066580013097349057820107522811012034115443767239640852238036079165815932006277429857662677557858900004487529673114888315725969122115840333539019378986066887430406273115168940782568203947161480377818445922740281218523455889331758946658908103796019560849399212871113660348717309171926857267691986890119035637639178273239294460393062519578023782507909296877335000959068213578371900627531857794673752159798007574445894588929936741640741216975525330222437747612014488514525962164223445537925466566905043346709246343425379885631545506372042007552320028743233770921692681907267962068625111723857717816822965986199565074787194354144481497273406053639588161790669964597661680997801928595183497815463627405749531916556144297979065637597651075798098630788080745538360343504466413763609199925486226206129243067384868360534392653240136125480088219144711457626089433281798020163687308017164523669405697607950067643748817492404325219715913316965401746370934879853798243239291389788949868796313924625890301853464756582018514140843678512188727781699216466037519294194939894285675810091978046302936740721573466455182834057038477637846715734272764897155333040540253103771527894226408108751878190670635597961821266930517789781152434434072927727722927557050964391866738805987767656275047235494064886313421556280603907786634267203714971517258306953248554866445597555677575030196140464330418470007946355469006976227959360980541048341442819987524180907757432158551005251386619028945736139870612766974213869640136339623666378970615646568751828048969255207945368543071033363303057701758836290602233537216057454856455975684835234034680164759161635564621376521779559856481007250978666351800984011230523113944547343268278386049211665661709579291156039595942457521492005662007942005482230776434342475734354198463008799338983899303938117925781483326259668580323014384767525273998069760424664746732270546757111236052235398973839268227724799939690696763514910911664525556661480858902231214829438888835703272641647072414984424821555801379928843195818816692399451178674895986938479419132990338130269523793314267561851554070848800721850395411034926055727043522325927609186357500585850196536837378848572988025992038542875333928825200791102536334161958638240674437924067990522586624749348728421849436265081175434752786201762629992867194840288150084404405707341055627785538612980550487307581655633475684944047878107580974973174773920558794004724954357972037921543934086773260492856119532682005924569067723970361771626669156804421314989491101135471191459937060612598709595280879288033568570098229141837627480436522836669773856712250799214407515096029353938721530213322679737232473668748112609195083400399334804295780672267711514145599695581442393296923453235155358768712072327999075971821925473512805076964719558182404004802058533740731754973128039162187796958768566001665319316464662684911043938462890327842531675172275225903685897447633396274288518312561735881635215033732670526980674861428092076117574576997497901726591899816975207723972391429761567745350728749640031510499147909058459156489303355769686934633560318389821989585345233524108671941749237209408688436396740156923605677084855259631348230807118975912811220111602530042476549645126539218157405610412057982379481145721134382703879878668421265654067725058277990238129600127910839977392004724643456530543037915232686191463558902565333486486468754356945876678976387307900577809377343070870119944292114081807992341311381799801544345203100228997152892366230734084516536575411462540797054718196980042581293064579059204452275503427847813714065435643134192025415714636406082567841770512035577931549925739942518757032903229262743572364435070772231487178997456415859874131548189584733617915934836431680997388602983841988502318269953827696206581363030166794591118236198133443904546159481763209958706576028381857291717630210694861881076118772788863362491329889465437203329093300544067550302779838395018321884675568951057442433714128867963799254298870495992969778839349760169971127275928517372289492759452612862751086075578155840271780229989166097799430075706936000681325846738702751772602340761858903475215824544017413077695076568219389356497893790220693561154801712336254626432395972307722577140660426241079518840483680717426597632602169579347980778589574441168438019387595368391530420604322347646143557664580682943405967069166133819408144597312156351627926306362637380249067645019679679322739488481065711703014131988377297998168327946522028244186933046924341619954959734838211256386818876996061139260662260417628654884758389528615771196602720272484264318379346401486699973303604562659112704590630892073999757780169887897849680310775949227590200589657384210220164626696675795420322516447229163548874677112977433625893866564042566346888431553985100791746502836407038896099420983419549888323390258752300256974813107987774273267949535689900498149291243635523640666712600487336288843036802661904364885749389575060704953835397598495543466524740884803270829129852040967654538521529251890987173414730451249505286064759160209998718752852958154795886810326402496578139094633286964758313495738733298314376724988779947897547455446001039025680548274017457667910035054342370258283954558119520136097560441299658366106165666750451872932516714040500145838270033740926952530887468422676781749843959209019061753869037205014610368591204859917883850095116934783295490029395052824530002833205574095560683103538386089737243887392828216829033409575249660014912816646856677381314499181529787773676281784097904687194024859598560889986582267657531366862973597527212722104541563277061486453221999230696582489706387047874914593702047491280375001542942082455685137892994723671765837273442586298480372785423324064602299327910718706451261476064531423980186097037454900803534385827130218903829919105656064629769261540671361352565874947723983573753748293440506851129399447452875795451374395882039382320825145791482485107974893088627173594610861457898718925535457160244202927466402590037177432082028360925891800903164058064452218692145590943326607371660999209513263175401235083262327988100434636034966423704619784935853245203617346350780747124437886385642995241701135955480000735091653168941415662746117036001991532506856739097718116589447131849640465117119031501339908863382191953587363817287119426434412946863127274057627423412252401133164688259401019668057547390474222452264499366447254166907267804780643049366306145528500459472780161828070980053703831522443175548773073750261652338414698537140729254033406678601908035948494997539763091681159664857032740446901290796320350206288984060929521154384656436528211584019777726441005224666939175390164309362607392198271431331452070149578766883920149316471403090667038376645091003609565123738784687057722715235039265690182545398836671640719970890605315014417161713702694990184836798666965544826832040181224985260325540891805459480263226595548515744826936882581452320188115210678906568390051240394251862913190551179211322867597767452343283769035460385901588921504244641040272968324023118266907771541185687354043478696658295672608351177043627811482431031214242341524399552596698069117716472972383928896258301930496731917817541720294175015246092042498789904129594197658879763170365035228914369398674382631138770075203644912970867111971214510828078036301520696622288166890348715564571130870539384640354765282758003520880024855278110369735096941584394072501290388514280352910233626865964876738526708973431128664514389102027716005852156702014929473981274401211835798420873322471950265799150941858713095231760230387521514595335163096054206364278926249588779674594457891468268788812740353808777648969096390190018026105701802258863756248373195814807649608627793197175234623803226667879968724123151453999194824823679217803294097409009711069577666760873610695780412589763575056189996629612906053745590996217779333740316476664892096102672188929915132590683454286845926886660172115170883127821319427624914983786216792934303757889339963094101053992016403067998365796776747834612420961265853790865389722363150348650665897774680730081191160143819167196303570133009758630506430633655243673696462782010023876506033087599143170696160556042147228208319362834708930834933606575623934215993888197187026740976520392892466399427514094176499676037534667714371291203775640557531745012379118485163948327913340145765432634118510261926438458838784009761391460156937909830307001947520954749000443179364145331095474288636566740892587514775056803322152487945973990272826824576786281731203628208616397783550045410390016155253699502685361763535566991888198111549813363418638669496855865332473937629033912938833783131583139562411356481287378651654272605440408702045064250129984529310469051685498925851435165622380343378294063772944101604424975195935792595379571855603860558526816254483556637306834274332862273539923008323255315808746712667924051668359539218695792276567090621440392702397394685628097934530994561989498750536489131184652980239176431947956897042533938567415861239724331001196856519899540221919785303490587579242134090711836209014223089511831700062288060120143640013017177360707933018664712769909432741326915252334172538340930657305868069113361604563351009203116791574285606944006782658369354014583401138205163495038786196730485260428404253255269618876541166690933778447380290147294889271658397406659365355730880980047814950221099474276647995203290882614795145426446516141154109445690444261760030462707532344777885515594969003437003947114070748833271198045979735033535345375746560244144935637287142633939730643728685080623674489405310844563292034401589978216080943635130322563994170114905686898370023339467691675933770751099727044919458373377227347221853981440369741192140529555295615925013312999495356267715453164099270600222761136692061354778583943547665408847717806547296096419570683969104614569832511795957774682374192541935762927047909862162382990147446114934238724116159891692312360283966847347665924998750036457956293175381664299830122297282848333787732522784020592776385132606101171360888843769061978785270806585754290142883891885773768391873076214041766674802131609906475978032682826770291247645737355167527733613406243976221095101881957308019949528128772482564453709403167847805402921014259061797398676323998942041056199101866812120685930733031563796005743754888397817717944787503867287705602146806243472235432064563858608582621083951108441528527034730431691664293506956804069389907975745796675035129785394788527346907028319890797921695611595251542182786397262432291271159673296844350985747325445258297359940311611708215742849633456048887664666028003764987834992250248975624532390737101893074663544615261868353117826813440245280843752917917867165986861833207537165023428402241229877698646124418024176852988064142058214955520884018400677833862241836565276631530366421456746814849694159318322255843383505587521337461677063707549583315430469130800586083557195837981363594071032653526594202592951233916134587883505368132665172810837601019354260988990020504343429580099216923264427582311771195436782446172845702405154687298006621833087647716317081596622499062268905060892922290724311594741077021701475395828865225993144643853840863057142567291713598710426578533697628560271198981390800152904333422472147912887370446525128666315356057274987835452493265293231698267636277671019293483481265947734616334686697534385717825745877720357264684725795838527215260534528503623682495158029104983108985141251449409877503302042678375112378324870365739564951936610940548221392601926342287812796686396836522404918756799757829619606117373202060912867175998554538934823281454941643032519482688602014248582423608313528706242182656990824014101317498908194220533413436647553238806646628985857041541787146881176258601796798865686604695180972731816159290481652040904062096235885399350828307476153960882536911642144260684348778741303392893188928787492749846143239611268410924825064438695869321346884015200016193707898938912232703500774469675442636285824622602539189985283727280103494787778314390425414308758738068250825751459282610419119853041774333581875302690467298659732244148983878352833033453594160084025416805895912262682686656338308947827981974652899181712223179244914962639713057908456729245301348967466993157746199530541222361731496069687737099742964675177767744938361716675627879156717808719884103211319030788828863726201844397274936508034109833675439645095116787888582355573268236575221761833287420198634692315045823935153121608504533504202224846659176712432225665334830191587724187138901725458083674595170613992223350269025119215379416418283077422934544292914499860824238062978669820992809176708873903674056812304467235283886292938539680849271909978699188432494881618553711906716328898021572159048390428536945219758291350611697087412668099183540765768729791086346378956792978649688238690879935142089207810584221923433644058143866120226893611463288339264471786654572172981369694996467833460519084111788166674604600409172885467303505820373368040021912330377807675213876230810812682421133146638492786531982194587355827814436426729221388641608347000990479042743554924850160160429765985472596917359326162285872137621528694474925307976742066715633040720367694763855628432053839090145812732756700109061311946760884399860917064619798223001823283108069015025098193369888413604797685725279739391500691445005614184039209015416840605789527419908425831063684141804643353221892461652346952851786459002272436807653101579759063258286198056049350411259052933379024446413970547693380828672288773320330710683547245607060384518270742204482290981593380677114945622775897805036533276382789901763279567732516718395153778103976140950041605149031405565609999637960907001149434546809995944674940740778262178741899154111501227290808446543427238009056407902454254886221409510661241358486060269179868424140413194373252656331468952683353319390790846095355651148675324297323561697912009631065228654289910973099108031787376521121550036017111578353709988509341988232465667592094879786738189765733238404632666129150209976415906138741502050372563424178274315377692205852541709098626104080888349216965021182712495104649422761684520719046475524223819702692679462195471304487428728405395374604543433524938772627059518680827319638970276453611153637592345591559807321531618381275862366022600347512341977343693748419043272341506215414651213331909788667582502199644714288875811380643677296231350067758157867341384641973874381856720478164039289103012109516130083875008839676961735391029114460535233869055280508730811492613935010867682946044390184640222105204345457006417091499279142137779377706459313421539680299258114659636281561041778831335852430406802471228232707635516543068499611946221074860979254005342509631344937451552013614546893888924157668725026663167103211321776211312755819670438992557402583780651523525856739943115154168053118847243856877274159968424945199870913009855045826191645525669103573005123902506767945577946318945245729253179150157494480182754061345349293551516593081838279491280701169420087588907182036916240261714397186173097170700065071771756039700420341855289221962765993116057492555378413542309568773144204472533415844559253134840527907005346999567371242285489550236845838967180648039881976216439071878948632726014427246565695096500211067962910131918098671962759238777544293377907746772487034219329338697949286462018580976087588740718043742568517117171792428837097895513019691358625550185675595019891889425721779900641056939900824339523974297405669107388926074824021187440353707712490774511778487890561401865730037667593568189843977430043101204787628317002940058909082230910846140960454644263219639100094746712075167307412770535893175603978835089466729138173111868274819094364842312669442365027064051154883665945550459800833476778875580725004893767335755943560881424036559436882191825171549144028024977485308474236503279232164578533628737232118451215786349464975818095322310643095205963437271568032049428889843938399819401382978386818601744579559251005418717414741838540909663651916584495310511463397295375676355135921553341506759768825044083200787144110368382080517687057176410911988803265558379727674875843380099418254846871410821445560238813375139344295038117706575578418511513534521920805934592121455036498144206034293504575532361883192083877536922654327713644061502657867803808882996574181425428924805136498709623474390680227967531107678927438259452049764244065054657068757604620728196340337566690596486209540360324607991532332369410099558256115117027249987054838438032387677717851238403696110382177764244957035507779183328665851999520038559727933657361206983041615280179867278114305179296233216435218163437870315827928398186781318527402084483074945480974951780888278294100043934551335056908250910903517590672978729159312834235082421709301164833752637904963944814603236795120948639592762373597904229052815066588533863138812967898756808377637049225574640821720235665087460641963476299318772770558270738589553618725013454650822456791173102973642600528821381745265860152898456815395922744248683584611680902947419127969247415812678226875455196519452549498874961915968904096803623892860691217625744660654965119691062201072065961543271717489031179615656674290754458342912731295131793117646489115578010617372243177975169902304773704297331208619823076234956925060808883016038395941152250173137296475721454672622699101817702249557152273086052659845203231009071845546225137323464885786994144390323404277010107205230134792325278832325879094098045125052661602357810762445942294106927481272966593874112995046197631503646367633876743658470653353287158890959282235899028035490341713390296944462877882511822149391630562682993805539667350094379860153058748014830785404747251900851846209365284089596251729547252438990512344752441543419677112013644641866435126072404416409160773662250803624998834181307920629775140822756017875188022412803156671043078688973085045263263452964104448819687985468335527203314836425987420000137699577926477181140279315073219509315450156451672931054532435766021731040994161901256432570058018317721353989527409620087211564652556266743480534648105607602501051286864885661636168948668434315957712410867828366537667788394878868657458632051125901532864701187756983100409518850313799890035289793606757115262156711202751335958849997815370265136268334583916964758815313493873339548742182678080211450772561058604002039850661863308684174092164085746566059374427293729217962383096193116036899999756257591734676366669647978823817783120731264242359803537774601592188211233916746926481915214946256318241417336241382089297561396397922497854259969998157051222590147516673107199869079256265646582662053398899246629177642053413459710285046271348743113298459542755541777531808121478677272437641736740552263841354325176611062058496928461457863298348058536582010692210399556481592973802176095073182439884885846392858036144800543270004564324577379682325924040725960214029423362334732892971895560108534426526041256184998722868522087437848691029034256828470834113005599258897422775902669504920382849017941102058776641179917083503468876066490647511313506124149417895350434709645155692487456204910508602053204880576801993281961464999882254089896158899413747535973572467643833492023485630948307806528517494033039024331617843535302626865980350749784923638563753224489272364003522052981771543603223860732100909024870838797861365471469214838259299094211770403997036890667074873684233399641996293179836083150805139990924026516778797278950002495009376785669070685431064183692622961509369069299303565146645841408348165246928890785301482630966762754701111638334801914183085399171738653161957739010937943615071083046800293119884801827473290775133542409097618338739161322892005465600139391622939326495867578131528170028653775223436622508359227061825979289964613364073960073854691159959072208115372398297773254884660750458449402916072741118894200080907766100584446109451454963095435929150655577151076746630511558867521941740056393471886447396970354821940530887928503723104658261070839200508926873624023797853346658565312185273899331236198522300913799035539576105417933296772872295019488936353604058732849493571622114686456077799829282182382247127542974859002245007905450241455791345002114933310403567164681735590966270039703315536642891398892587046935862384171065269624835157394427887946238304336288588107366118003920877327632863294890065136384839226156223942953132835655190634944111918292757114498000872202970291053100557593155204786121101371155014425543428844425285288276274300689306856204654410260815190590900914786028111483309330763095118650387662719118515803899278274617924815394336081025869889461424694878896018460012096373655453726962993264471336913704039154398066013468825880902006537021822885197052950568219698389879229230191125880429718218796499354472832776621846268122191836051282554324797751859927763558009535334319604643773039486754459610989152228177752549335402193570941549970910528794378268491439756107592561714958740766996660308051874760404585783263273123758861111584295005547585523129143409450700920379803840892085676519920442366336439710223757025874825199284418787423236779794717801409721972769305231017624487754808801444562311615711677737943499143287522647422181568787844755052610805016681771484004948484991626904158585972892910665454910181547435842898889393739861408560811096231923375315772967456123948841581385333255615608996776900124277339326002520411649438782289985957744052528925705923208317483557884633630391718707252455177382690556488827314853764680684893427702614319657392232020374496923397310678117082983354758971615415775594624976913029762293503337699651033420833292545028717645896953234106223647163716503514196087194767554994996541178881998193462247012245732424680821872254082944077828473792030001140768924831995143540208762760056040927214368440047082800354830104999700722739027145679427600623648662865875156143975450079631819044113554744565743273436149652510452769452515385035796331711532510647976863019499752181077505549275479764424440728026811521695394459233556910446538663336171893683144465539076480039224416395564115693108428369589825114416389887442976777563058093079516337959041102162484265448103660900948154146987613416214970922384768942287114494752381051199565275771613417151166062703968825112924416863716122208286182264672033946641996659932343944510967380259956892747115697915956657862063718829266031776452263572178402618538668789644221123206099929672211652411250487974122547373979767224709297820180150925877744170512392590476451638065813114329205158149999007060017672801831366418604019922429515592212688248183409907427297931934272408872352415615948952745310708443478436256132338861182093350317296823605206752390455124040651997553008902836244587231271055827286274871082720418247327408216860040601593296288246265141461233166082471036691809507395731166408532688230176055946915514271270386407477190823466991145383108495934048656135347375663220500300434126122731497513013786609678634380540414539292118995716323295009242686338727818731985533345258153163279369487573314464547279262128655503948150935718649300431078321021809862009110118613476915575836193002740781522309357667642272730829752853112396907598504559316544437910522082076632884787884694536988188438481932503119661443151356636883659199477190163252301734242262530400346073904947277782973320868795954991329828112228124133730521393134157556070999813179761501559281478951751455642433900141455806485327823332501359754939663089216101491228704344022178123106064077196008186654897063950170284526498018824831964571877274192045686400208957480713979184356155742507095490792444811004264867249095464145099948046453350120391879948635084251656461890953561964832641700130238501950551871674436181484335325190855493751521626435168922339869027780918067585840875508321357604179892534226768233654076792745978127128197891460131380540644052320445948410121824216163092915863713397553689184060996896183205177880965655477253693972691353493114125698350696185024622605274949942017352456203115527187989296608525778896822880567304592497001028151973208766382592317661466816095191488388271925852736194097433911102321204964365084838247219366633953057447082142138992550533220095250894369312465782316413813325249795919722879657122639076622058177500671666958188765214356038485393058633927922665654106808031411737961669303405296632448463911468793353275004017083392540180576001861687053401903225670238997690358257571506601006332351157340130504954755243899343674857019429081131336882744134803637564087874816321158747490090464867760872980375500877858199460924170071629734322514111608208683045834592048390552036216149352591046988001097948147012093309513606576342247669702076325199434320053734752271652237864624979230514572570705666195722575545052764232474621703182098065773163807746188395672602065008974027186461125700593643128598586490773284611614391316829078406834101653270930516884744562945948490910174709182321212103735910989385490870290591147224645693246329862803911034819627841719439604001984695707828063318857989677637486171321733714385488980703271033434196616689171394531113761868752115815420255648976305775907427327847841829574462609650533847716955521378306087580109918599552476504172261049077956797516750115650211859345764522664854965632763739233806594622312371418357033016727641922418946237126552155817113019468768408884185274175026159881257996401027497452080353119793712157070982685157916351148945575246939084197235178349157670148092157123670955774577950800059701398163912946370389408032608682396735357424051657271528485821574476482936586319686175675322104866109638248611444683329684701296905917182121290409667511790759924490756344238400853444638164909012872598037745132015492160697703361091868600252999152105512172280145439563284952993851338208216740444662194090423837452026552362272569530060099322535980951025248262245751806328619094656835300466726797451885784113973828097077705928860233640694559835422303032405466285036147248784009513866150609470218485250898813908860532120749091239009730482299828920622838975577895233339025001435694954665457925269030563970760113965109814823399000757758638957438705144512303851870331918564708510778588528363708248988861830420762060536561952155929957168234484440238081794895969738082049968210993425552097397609903383719728645783232494054184771459666471170332023211724024197424544356240285152335875275208642404354918346118148956288826728037552256717359274921674171938635355037676483384179521401997648305081420507369890401619828024948167676196457947834786461319717656537273413158799210950908807940472064012510690471828961269118937920678532289537633354038613419546728285119924493340882989812297318994394764526357106094284209458774386568009871450449809009739263242366937034183138932001597139062736043531139756414370368577751212843663688693687998955744104686292478257141492521464142667877533844599053373144634396795821481723903880186964222533907369295457437532164248010758002191901798485538774511111771394617190492616466616238612505327290158727529210167017570388747894791448795607095604836126647050834901640862120671262861253237880580607499131928793786146323889281512610306037862547190950646265687177445419324072830663641966937359216313577375611691816633605179679265723435007928355276703816942983391234814743641885813784071824030324643001822794846434175068275079306646519003836822732802505261692713715120005171066048472165628778355480235132890656560604925793528515439366321182717220250258531748849785584936173370398330481100209189434696140331696032081818501987246772469695640812168207889811082142113500555898187234579550577379502147828242971465961753311021624137753668316109889033837076709098816492987626666330533774920992957596154279746752012636554616838410522911067641110145780838843260993975649654266322675543930477919886649775659615387482279562137926465911948902080120464899520837162442018498698646245390998072971055973965937651089805352876859715541670909678612763404658981401555583621216844772970279952557963805495141411016581158251504627259607883891431163349979855186508709048098907451410099536132246249452809285515436585421602834074294696102614305748006162387334455038250817426283363364782774366246320900965717159016023767818745143591736187502874835609257516209419782515198987216972818445725052347540860233892424080532292606757658149260705333000844765339492630671959938981858592417424807482746182386730745751392110984882252376502184960278862787786599471157034965089247313000579240785429165523753515316095597921328020944685582950603403850810236562318606177683419418512994120747475443056476460221321520818234012810591114403381446598968334810899146927094448449804144904332402889793356338684612062304622446610439073302087032802515510308503608533759619642293747877719995270299104769285893475702106578286100495446535074134717727175583523472364784211289987698984628622308397856839835061390148632101802889728628284839992599712329300803957596422692190218576407315090639348222122156652972124083247368947902696204219982084332266066098541315389874323661393208736732439702683754588754200117638678140142661991666286158549231743997348686392557635958180914477902935581429052062462952356026970625754955340105818337432201821505128267633714579468982463956670412007600867405703398277634849042277232392514013552739576166874874843755009420565394119313952152745797801864951349086531968537911693510943808106317381493782489636899505167443362992832244148193601844698815586328097209726656519658095315186282677866242548040786730175272807374296163222411065225868619569939229863904103642519397534395929904116141042314748447630687832611768771855298253606707745319493793599862981876698619396662592933271156664995172556184773630661813166775303659751257799330442559609369539678975989154982793936580182465283963854856707985308193842169919985352310036275900228294498406553008355479414520536831700042001272788783066066066277391720380941505367123986380244857027069267300239744363254292697502392499839350070579550611676715692719874142919465571884605694071922598083518473242791221296538032574513995267297958389811931353139750096486446489006705281156737687573763343170791709458009910066253596687883771984255127597373533728976482988261342779500808359709865437034694635965815822029565180956860208801778804296725851207407888150560700813230984191181741428566450503307761297991338208316491144777541881537296089792625886251193354771876774132075789469344144382650090967163523180547579937577745186238135952202982803296677932698216082347778429122617103739664553346520870569166543273440962883768055118502545362929964062188888124615124980312875182465628632871924526970939339557972035812186566677469984081833946049490654720730343552874941323825551683221030354755630163876124496756506652742382295737048699754078899818517309528276954633664470548451773137988993907496048794479530645334218214038028261111102786117953651109344131444126595449817419975715197371922265409611871191694218125370235617857168833932509803704888773918804430445958092476641284699124497095469337178144900809979960582583452510636902018490240093162766468418583257941637352192968845956741286604755664380629537819333534897883132098384035503306247683672488285844334500396949337411804302003505098862584826543313542178931869817517905962152180235352058547019110477942856673770293771360830807632230354941068666692145667042071594113435973558731423096540209833328672217968272879640581101530639244208514097177875172707786069516203431329641708161755654096574433759492423916772759374504108975513796751808585935027243701891902458802188440364623930723700114258740658468370376747632518732932803346591426432531253190890938529842984895941413668046775172326085261225575056554946740532922217347052020813024728609498483116002347764214469755756115974438357660076079063376144960828427202678592032274742442688486874772570322919273281582570164679328036969463730404827180848292997606356921675381651261578324750552154991013967432896623923815665572852794203886102763251379126549832565652475548730108636951767345603072053089293104705792549137013593031972804405960166724015082182462469928842318207867083127846563417021286018339486438138215505362114604735254316150104620085371201038116989144042594025566282631963652818698442437831909332324530206034092491508383110403243375599368138610634418574616144989053725368048316724727679398119375202469380254230524802322212420656300957952026886365409438892645882221394357378344110467323743813604967997207842066274618828878996308430516374245209112745924592168490401172244527785332942803910409912360718945688491548904513268882905657716360058445588593280441007910294129064477981115081321049907988787109397002012582557532114969466754709959358400123543810791027781691191186146213796923359453793670475845971883192058089654980395030501567384370147002956902625739732451940330065256567104130297563870774511826655153625041197294502782685771881456244539149306690263438933865640479937532644725455565336997185905560532517728064478836048234588003713619922137219807026151923655265426841513704958258869617374675984081951947913728512548738985689511977553468243804640284177255132990919563658870727932856012607751665658915529219097608584493156275578776344888423261019420305607164497667409433445213310451838847600614090733555952911932419771221973849320930733898435390174700472237552862468670800903448700113961739029051419012866082886868382772115030026422260439800018256279839681142356025594971739656612397476709980449788037277695046213823046123934468969130167427469209450131294199536565697616472509484942524606781295939818893373917293850261908854701567902111812998707088018786996940296601239045853405618340038445901519718085442948435587983327693635257106963367072216485186439849559814787386172066705193225114305123929817554578099144851907408367869277391640392117774307055973499925781587809038562274545891059386531913798597534525376211721820867699949745133715434612614762205199148668849599172122039883128832128093966003411721837205694447316881761587778348012638037659573939532483517758603333807203639697759140763333955514207803556396569617848210712037627603068881688927973477823437174271236225957890182002208402187432983089062630746691386542726457184546580890090054410147337732338397932038959901826278674463819986619560499822050066884110010418404868903689026515360398637248795306949806463124650018374389104270153873866330891267147481515776879290320697062878740136813165162989029315316423270594549624253002011990786661665798408090409938524842587994428671125441862669286495363197737217434967385300580634102946014964690667972877682095158983668834485438644324993901412162888655906100614269465981298427681909584433944872319776766641369618182141083428127349903229228958917029399024533363417337120554691466637681553412864250577219201174894014518859292763840930255870796321763293389818915479826420679537622832413535515554128823600552991265576756976357504897494924242747922934541784280142755184001520937746486035217055570574142084777302599220520256964498202489841817940758242820178678599934545793008158131267746263673912476729731049825778098143665213941101663868733312318722544198761519668254405157484018519749330543891950689000592158493417919254834194417109316295579295005740215073551360112047232964023144895291813627870383145935417064761745309301845589773051277904963101576810119144420818755918925524037381658007068292885391419201202659784710950635275906375607147858526991076102172776032161715389390742429885128131780810942335285910675908222843588108744990583312468822509581365304612561902261419944525957712946598887556617402492160300366766936508990709043201961040806408559060325627055425061993211182486503597073836111485318726327703009497576879823502545948697451168758117535526134710844911867486022192214311936056745236758680164615847702791208948215455758614204317239987671092736700958615374024583403295432932854794578628915787693669142280694966012458102709100299289265155988662025976482115767929753725273709188380794536513373368202481901576288996227562673020225426529238332776884458340373191817119360770380463199493941617469930238491879576047447204365350197088496004517802559595506291877060669543465972575620436363950302682177542111048969874765334707437401831051715677590343886643156519775738250668512608045558540379220534881974660884956356401819971481779420529905344934558612741978450089291004618614656641586977733870620590511151266032485676441016033904152371480371055690067463184683709454845512293418450650722555223557123946027963276446644175244040752102132344217770513898771816523239319546590526770577007171643767982858795576188152966568158809893853064892426365899288995827105101558523176593705048192970716780820444320727006021030282114423455897056813573309258948339632529966841536175859764362434880361982303181847230669504021509339186106476369539898094047798994034660473732828876284694256638355910892071077523854822048445391126751250447979707311346266087830848353612093964344515945863308423606197465817091355748730533280515264827894292622151456179398148470483796942409608665398704802287520722722089763995608454660497465848712882473168541896591741215930493115885686911746626738117532406650551256568080576430107479830281192107360880612324462228461479737335450373691279246661884137549347683943196656397465852638559505895638431266850794953639598517385220019753033201863586984479680687188039221545309399797716579986944729949298730000815480597144917125854928206698736392230316055623221171234984118642321333290736169606437093018350365041839390540639122682171200787631401637276516964241714981295795380105412591577304756069791490921832318840012129923649023610052288785797422013640854019967149985629692707203348864149313204354343145018633407244440283969676610032194612458675536922218370222330615374053169319107456912329330164221157663024665540072774997737090482895775682739398662797341295582824865383021918638570281504825572726410047886602866545918620514912434787309297403711037466348647250493103987656133624787142001405606679450884801642941422808643140927035031456024049966648062456260999738978436408922541027122264368295032663987222042596898951994441715490547050583753629594971198895051125918753060582530960394034366248931951659733242871901363706356513519449738667817321282210219709838979385875990910550046908199097717575747988150241574375298930234181726223750126124833246208855548629654330418780590136659578385381481632720544370021372998191431292559818898368691140652228268916842440763358385612560261065890673267658075904295860508766745317943651620580733750350419849708568242312660238751827675353836747102483864120010380052775084588231355422460407444145740605266163506232094367368474373471662069510400169088828880416322345575465329294706785491605759391318106703588629338025087192465619325138203241497092317970580859568129917298236648995328219472530513279862525719102609717966969379239381088571357891955669483527982397735063874727036473717823882695308345731007468032571700594597834877221638971675222371477895995883670729918604234812622893357166906674149471789757225771420864852166777974574182469756653337803251526617365695550381774816567126637834117238900383396014745730020284305416921635466972763836196550030612577495936340380580718019457715481430221015636063098682346264195268642043536273772428113875422218915600968471673926549346505707194283003292487972768120199906554469825694262430277508452127869546701899992983562221964509333952209988871275215215387748023052537674091504257210006831973141130420669192003227534504787410812839122974304439240309176508676908019754070469054111097034897076797604566518676823944061225271406002971545144017414695505314726161461253489636116409699298513407491198157003860034288695728524493378811903872100330688619747730217581928915642942115553541328421557229694270813629725490619064958296652696683626251965321208644082021165785642841613044739349400106075194916400490697730102465065844250200058803254841864917817043311051580514094638116018152460801599577623791596162817319603333489530564382578037155566347980321681380653598392410063439727223970796414511446620661222075359808733800434287786754238982261256685869530249455575700940787172525070737050677348786424290651666370625516529711100165368697932896615069594123359839390537448730686436981734896822135213021063848580690856620279926759835104686153704804421588722219944803628954981815471311533528740962348334231587914717478169374321064270640121291836368232883426256665131554775594220867121677010491259318371130938343903823529389994158837367540030513439645682227560106067619047729985926164187894383911615710982257742742782828082493781841960211454998121552224709389502101187659863038791608184075836166064023524094646415973845685828793536465832552146159429762929619931260467879363401766232353654985375909402252996787375567339944557453047140739418044628642007265460569769041247387950407476588993623617429629556254876107781207541182851909142192589831789517750379922508507024847794358542513363151904277157715771069867760568737724265278697718416922317289993534218720583199088585976600900389904652925412985253091789742763878749497576702166008811731147682743990587425400237548634797749705947594304594982212196211387190341435843278464705497595351299569982428380069202158751968089256758812609531221576052715796549624562443046905411624435308351491897041314529897520783379252931523908896921994942800891549985745228284945435141566829778634091900944337274119648140335354470111272653999509414043836351996967900708017752564391469471406725447833540380212909742597565316784058364538057992348696599125089952604862039614098856634141249023827765850240055481259466153721622728946266127967274639094687669554371124484256986947353608591041749757585556446826148361656838340609134461418339117414345562979114904135053154861992639641049457722126178799487208080253829912996564318735567577321648575479141040121366537884091480991954455537861238812086594176849821194500836173914966351325118683181323909540740460966390733326612788554559724785894752786552526246272830695956055377933607843282761153752479715209177025792979004255690864455253017534724697796633138227979980967248658489072221634427522113952540274313193144849295092032070242683485056326613933946597604194673586494453867494264671492254148167992135510422792579763624595194258236597789868540068813517055673649899471137428864690447500661315204657111599744882473424244811221730392748235505042865091311804475003658146612928351246334871480814217819902124055220135102316015311863182748086762875591980380461611041096224339961830180753172168643408746419706438289138785116979615743524794956227871435158654705143879956894267078752186893903697382887553203575452296762791448162771880270491841295224364360729262842425906688348845146456578797189161844968070199474307648892009786975209801568487283073787409427742763645885357342151452411690787266670554537561049022383070610776785622333500887870113102712991407458926375084828487682876221790604763794668541388789859711969403644737327502235584343643855912310145687920512491443528673716013279198995259524343899679474929717091627970113647545039232126469882964857901173890866402092640140832644879759087206459069791201834778848974155730397126474878158557929184147795880572156919851166418423999543401957271315344758921291926985316681202090323303085619793501472408100801364936425812379399363530014037392106897314449284213394444518812250424466981069859301730050759816889580048049013389241906545322833777189389131463402207781545309196122419055292545972627199535103408036951516961560291559442165242700380361993064466929807300911587273982640794140369128589486231845328051073094254922613213132161785870044432362007513691846288516633101566478101326590165411523684408336409397076667233857352529386397057013769476251994632142837019892671508960382268469104769560767635785129291149472440312485262766136551424826638626280990309433882447765165966595679982286271677158978376947170964921524571275135429584570044419229298698671668792930978868050845202581022580133348174381760076467330198529079073664653925835972185590051327059758335880844738023828438556567615418779265488123900175449583234838276385117591121041928439552676173111873756766937627703465245750235587598516511221487028769078434710229747915566568537391712748609347075012626756864471636524593158694819251658862116636870464420207383359473593337892987699222013374294276942412970924991236062688740808218470848979265980736242734585275112408934086024956989735162719785740981073579619150301687503015273035856024570121372061904640269017942086547962241499746640054175884850319973985854154311332349720385252136078412414361823288974475631527396110131116115559428259021326132670948361558991643293997996082304269493375165248723893376020294553482996255094323123932864805151471216587925309318659085231023909392528121373388028866574870705356058186847179222517383893950521893329521084535859879455626101985919423297449613144746203594231954754006292929525197378267757097583072668948658522445465671583237829949362520002063249238221300619525842670058739680288111287198102170057984745570012427270436103450359090785533950001880265072142070616049957508515392173599919661884513876030438977417032993168045541158237128528283452875921051333378394309366472978826229778156577443700295422414122932927611443075733924963406227168594371743967678134170388209514215855301100890954526138325767455038264917283429386498614829465018995235723222310442091012213346015572285658631010938435397338304393322044582059018355824777343473958398637073570351685652094733135423848848168035752799263809724807229393791790926431117004443817360515613772702552292587566969908868890182806896707316358425290326147695577722078153235827980975135733073444569938968010775028735708102181354031541486565631535710767314741700188579436758188269470976531050976186120674445648361958357703240238591154076261605852382435914109739505730776330731391322934669348175662957115364009264258021399003297460311732169140903930327246728480141101899993216257762704110364669040990774130197212205754434356726542159612084912551489538163159712305899304239587605982889596936661314111831267665255765447511978585610699219710234680605197332237296999662147603679469866408037701843787702443581986336116536457194421140928702936734741450207704231283778285218717906591442489485205786907901068752007950644359640834326347707140955567372010758818148321130699200181778213533143304424105270839544791144730939666606371427964433970016453694802220799312431742216068126743983602099531674535813006375325306305651992791939172154033626889694642930192652683296979813962267569016427129162810011784759203382477798751379152951415249755655431983878378479627816481693242737948984484812195936717232720256209456292098452890020242515741723235666494644606062710139881932227106636446676091776979070465146739508046030566009540248249816891024196428563279582825432821356312414849418605639575977688462183702815857241301915974337565307431059698209573913148031831999960963723289837140011438551476207562739326885586265316752530973468338917097843262234511710500784479538885019640058660098538799156823155989032201719216012210282033649887002533181990331189941006980603069938625261152824448349570108506879202619739213232719191731530346592851488602578112446432562918822339448446791545112453136350690457312011268966985435791792559638223259912542992439392825783881641675474679188990153091206929138750450267307921877561545676567623411474389966942338949415414763923265150991048019761561064732490587811913703290445382689828845741960802030641224293232648812206107079956835236565676179617204497697594654995747386966904390343007987039316414196129311229690548049965287490066054353984757055941846192729629798168550179224143360785026270900195510681816684300758127663210186626188560447200782014971692342413848701265730394397302940746340916843259787314665579039636512484505176413002867237252080464391479109622862502037941072876699639013507011240859246878413592948448703945367495726307892421598003535098336666786740533181847681590634706687173911874459946937315605938076336844204543726952318374183071251973516898661478459746736688820412399709118339178913241128743031643527637447698309426904662852900827231173673612751262107012016842770806867804284630534774617649881316153114077824318609645106167018048627276928040007738515460680554405850026578697044961077440680010528634537548442265985643330766509650026372036752322956000686258216209365028078148087180430411615037514907448882416096329954557376473759440975188093130435714760824181612062835242200132155635382762289153086389141091000181900412556630402564481315390415951347425985778917310515616178896077756753992219924939088979981577092036164281718671603973813556759294777657863256311799352270362389588260009569355764352284991190375720117860333567259363414115197090843967728419371280755857324880351979124695130683075229707876070697501550108461708152246568815328068475269641527439245298259976318365044479415707027718113066625095973454142935843428606361080116387905015639218177652379422907706849934784993544794409733546508988474801936744162228803086543657984867852295746437676673594361241623976296416229967620100129264908773925274013472038917116945877230756650315510548528621543493811582747985306290420204312392926772104523650358944266302341127848603125105132888408551222284105774201880281752746155241138162160476589253809721283691980379614420930769693171043529624501170571536619681396675142297309887294332280717203133880816413311317448579546452430174839778631331327259618060900838792327997037410445069886488634095807243114331688008356584666258636285823253068414048933243173652690938119630111314232238665572371140606539126390643541624637995598287395049654435343228870040553713822753965885208512085104264360297514942713149207262324151734031888094864825447205955128278026025609896140252606438934017083505967230710711603538320219793524420258740993934101557740528448890860020388830954134881522794702264211058805513189888057692937467412043127190521401291529991842545042241501664475507027685056402752179418793835435299398335752771963898018782984878244153921499410904467107665379342747894146467687208911708574861925651955104258992852504249285638242723937821842245754206849085982500586783232956520515646501931088825150621276420763304978926235413844120161188912566464130081078545403587906966627067357139748986780856246692090884105041543209443842315420937112595736900731801383059737845999081907229891335743465441618227430806629234881317213189886825989018847194814626330400753499358845361827148883676894006849024116941227162308611914321829906692984993689254352851531474302361303129722444973397778813247726615700782955263493130493720344965825869948025997785014911991852467097230830110075478177864631985973646648538739611544143926684538044319972656200035733409551237632248410704995699083302736793041548426718030415485335286355757100366340222463548868912118378223910180143458123455540283555090707548219964593687484308304667105836049083337223442496437595985939040509017645682544835373422117415319815847243075016948437321284767391623509426596508871199092091488356114195270450392486853680146905073512971798453284858727973592830648431475303411625518636897885903364487715188886891956141911695909853929985858524971348012327495788446348630558215045541789900792340082710681809321010433606174065181982690379507278253644704095539903706461575346478147303332992380472908962899923492846847435282445994773383618882060210345628419369361636470533150337335795738574238407471073892198670485784755163109826355889241432486715372049709031534303491703717084130154297314468138818551083684943801716840221339415406954542094573338128300046019679588947308706775147862346876494278487168951157097949240908214337254116572039380834331405505477626112659000621035100066100470210680419649946156496607306524599482652811925703102995850750703321181757195104070729202609494132148107359970138835233327945279820359010752298453176784031127262644115839229095578409386800176886231814836187863597899780573695057247100212492998049637685128485512047287073615799672961588838979438746466530834933534096809471961983078295904494568742823931498464824133329054916212010396582280794805911633019521302863557225730852730318115224742563637480620507228653685235980594833551330695639949400337739584985486642147461219773994353172042117089908221299200024787636838120863497786234723372060161710846735977640328915845446561556511832082574415781482530967586667904707971631449899197855208973390136597205710374093660500776645767241939401762545702638169066564855543997013432679668591042581445590731810166985888831987080015399576499672423775248823366846551054759259250422750527627527964423129724920475669568750732880839153778285278403221287195596337651079281177958601731022783052151252735651890073128420708321975350730164690951421722765945164426483698825951043299605323199834982761868947983139987657934196413116214725041340056572490785589602127971685970621594450765815842034647630736659490936042378483409052962697580682011854071442534033126758960964769741356562749258247599070854957838365174512708935377248258903927168280948188078276960795275407887740525209491977788811448699789790510326650348127017524754958702388033657623859132545129915452495716983339566422706558836915512408623358585347165700707512460832973422772818278300892045056788645047517584496170272212342851659841633302730914896678725312870688796582027200684066426794003139296071467089048742931106845591761872580136297343017128643167770578674506294844514660713690786871938266317875873677349008599625311520210573864395861554104774960163798093647459004426319960082130227255268684020943251958250024180822782447960304602528677161419181082839288351588786344106041978098965827062246961579303502372698039361299349920336767350623099924877495826894983158572537590661612565764212317446859795848508188486361348832231129001602577025638906458096261671428651469289225837302390381212164693902595111545731341660751728965805541180881822928424256965698082938054624314842085153545076434112336263846389413523697796762007462635968071157045686659576324182204302854274741390897870957014799528863356422021820546863324682398487169891652756822661038125077840895568414298962306998694915345104942663267365103815444794653540761593810234491653628589173826188823028540306206931816436010847426924383388172348044594278306145245297367642186085562074994120546490264578245579455944671400579988154005536003029198360696321500846880141750791264487254801492874840395271908917796035199390331041510109294444487370240022681798105120336182675319993842224753178824534946978862784111505025908544020324389667288704528220747150263755614527947312097518666182414345406191249270277947145161438543901558434694524208278459092937536193583704848916914692423049967338626986459864663942299513721683666766734747965754227925212952123111934387629320101251703861389914645840299387168152428914581649656865708133186977927704442027170993350637061274769944208522568905972195160994116861542267451144243559992385314321532829602562413668136077094359464174753800798409172642267928264281904555318260446771232992517888233917887561726364723875093833224582491807156664751142197898330854849452680227818082513674316128693765609242492199358051128320066947223544249409220673416093895431420429353773864758960217708661154712527582069408463106670635858136075154329913038900034653332901217924573964481698920466016659905537323902493193217121705166678124176659174303885986237467584728166745877937001069118954106832435585865205644323909882748279732093736132093382226727773794470133097984955665341893098451561761889468593077903462763745134685107353611166317478952593754560830367568327838880809904769909443849544492842345963830351039586266852541632755042309810674957723544872981907735207724455907522218613780775662294738591216828598506386705418899123994317542582826885652674277317729090558085435503112617642026543216248206713962178688285325677918175370258996858968900869916310630556193333447659970276303499145018331411302342325161983314599526367369607074046480487799073082428115517132365101743733143190052197280361931272465940156887566473979564657313154651463928302560956984911289588845356505189473714393163884842170679448946155353374774828495773217421017328174645603387711551835091677518885299709275512483620845699338889653186312549081469826759331963682348684075342121689622526956079651126116720378728471143677348656290627536805312383266968801638648708111450347465967899645105919727108450865097357331260482062651727440436804145615354198019362626246130280080021681569790782231115925942424000898415272881014915308171471462443082194673262019522942639045266652957882222711296146513870206816850527432421703761415540947966306570865302940491308299515941336067052383069587304379236165902326540865650201647230546644839374658356077773151173309380227022089547234031460896781968666651296252762461230241658628972311947205444159789092583909379973302203168873472552425331426112898499047061134170085744273159437508741765192773111546932689090080176845486195818343994009087523120812565848697924611556891522816711677369964412176819591916474826111340921810052477396735325253933102479517157495402103926576729728816871460251896443924524975286100720564281594794911305706194892773185786491235204500619661650973910989518953076129278561224893871707024057220984582980711884631323609004402248421822210842370440824199651594287724158747316411086371295971548368770916879113611440901784135664276466401601910721888993268070251850742429480693920207197289535742621093060251664277580117465285723238878132411690902214932466600295467134480014323110709968339668815024641019196145657401394691728407982026771151963354463672686949294337280362442302368692262692445298327168247296879294641550510898466168990457208686719986004471883993021685521368375045371028253232020214425518229705575220757057551299901854565025957709696116442208961186268965165655485187847052251203892493422385123380571516396188914619430551510194213125970006807671906983153912247745775209530059320888519881466183667932008458396986954127708780525616706950996814754111643519931776178132028231577281976376871176879441060588094689674065923479696084005080387570736754919907124150839240441106417541920458584713897425601779750212056319049867979578235955852192556375032072742497905801430890318151590191879242341487281107342144262142695058235256527308999536141785332080457751513372108237758376180518973330482287642443261811594051995202157210881147453588835067220987210115118034421411882195158941411876016301974056545306576042479215722973039368516721116444461298965002391425258135406621161584308208267717258614411549636410436175365252250264296715969015118849764909746344952661493433532622136423538215923804214942456729427399693444016872257025034263952708538178342620117245417014000895484115209264641821187803346526584460472340993903863977235953755191539899565478126392897478978349262716439307981103339132713986869890636642800028504705124854447535359241735090830285730531721330130749547087827598525158365463027235286793831944432708975434018834375782253643472475108107524988474766801387239640926276988808091945302552476379477496175030318254359541074667396211547058824875446694646583418612468064719238272853633908666106306535843530151619806670118435298111171292347425213814849115775659944450397241759416274856418251089802995923132694007528141317073599700454213409321787484302007947930973456966382491887284228408282959179281610867868785387035461391958591765147460918616011488034342844829843496299343747502777317573383118587149328697730461208672509579510333792650090927625049834715003037370171128446529798072993666921436144585847271775425526294431591003047784341536974991105126850867430631392454855658321957606023754833483275977018420160486159208481558014796865255044484565655719022869922285256102805462640941664987825369618149613679784806398317558844997125211101495035064536252539089344892853231995037502209456440162793615275941694557976930767633271047200501005589658056239790390525683296332232523642767224916683944893182279255813882672843221474607891005949494934129310403063330996402076431829282948138009650283977658436298222830036178640764149968330373616797813166020812958879817422493696016715495667613234223030714527263105089887059487584145459873928250895624718373459088075999433327506115086705102993297600176864802505057425680106039584411406253930738890590368967066273730924578259481900794905040915186554397243717729602801205208278077402015718491208280504943447346758251141974594456455363949844882215778588601076753134013146293914661547388765173589216216088281116606527016001949737828781214542723907739608009919289228442444661109417263768512565617929375348218775409228709505064478046418519379467122852083331240084670416288685772129063379686226095802516698745249981062148069102637232298930680235987711305057832145753216401240106733264022696418965601598605661499672306835937849469241975478729604703066518984126272883314389042525594316136992759729556826906923957336995813745550682257849653401265161305633716473672019083665001029269646137378151967611039341711776571842673706416127940154457829698445734305395266542446891642192638864211206286532598210210684465476195114952096007025918241705416742865561304184986057981105842901017208580812531447679452221577466314840574582882711036001549249075715718829294398352892915659586326855708500259757168459860270174417557212912810507482815964689194253318359912624535238519140724468275950189264164017466367765559713307994355385393494312473858019585869237259298370940135628669032108914292851571950704537370114177694796454832899314578955140690273132613466518675173346961676864148226409457975267329505355477314267801782105965638486938715496603428108304016618914941812152563931031716559311656187577041011569820485548072580847205489543921140510985354046213412005731921211944015041887464620517344877021707217159774043347650265701367640869580298190315056343905596133211435239799756490843982855505598660900816474457978031383418718468663034880532271116587005609256572168805887333042396546070265574990045994364112929724334496286766656675995563892357460507088691503491034008686747268148427875846671869340014709806491230090854101185918571180057971734350622308162310871794240267130378815838065019331155749199518681819659205449376821141217995022772401579580795761193073744673948933527798305277304044017190031534831133268338340436277249625818707536841607317497544191761064656298038927485522013389641394015208356735176800966474080148907222818457571395532377485451941224403208259309948621980518461667692577566573872922157947025311770886109901993207476197116926074539741962931652317069499535063826089308802049704828572966723926013207918765694440682588134174780238829703026378599456899186924076958920980128637726804091489918262867550306738139679047954284445377153139003061309087282789519043211372926411055835936675158570656144177107570524972464459553454510293585072915722485868952947445393443392431906510429943879803807474076638458405740760749300573110964709069117321935103682205477412500458815946769051031355445475284056625713003110285120424009376731104724340467393165531851733202490883243772305823567669455916132461620136800931965253900116717463764003854128154075773972203734368467445359688177020894322416985608638962503139688288679876416993697339966806845596159680115890019853727277334070956606584926260037698994042786292470103123106986742925887851085333983610434002779369650716172359263123084903175529052790442034403430521364103816425670708733309046112759436581787176396406135607605459473149278325972818623715089867328194091941421041650226041068967691024321442528713741124059499348322496410666382709153054218206767066445227439155246845569469813113722999090974092924155251304482076209554080415314438841566405011724158300306189705218586472973474470286875640444783246732281777024885127905545515027103989819595010609178423696396098851265609310263792653767917852536920385446084084243689426848835575227474128997140262754020928704228298026925904419036715753649585412848624207592461532629733018691465056640842259063155428328826828545984362839082075230560181807068940868054732045770385370583915181811599753306412720373483210159340692974880471982980811115875859832867443991867159947619500866918920909625341380653711779574182978814698860735803307616466996296961592299785517699939505460762129962987579127932242829710079828244801198492557366241553196358097518465145357031585175161915113051903562979504318514698965031606784035011260910742385242111379756750243361407608730978925672168206831523270356670981685752950400350351829960234339026836162705535990537342237419270892267125092869870159295548958905237226316517983835770981892404097249275053815809270736567043133260791158020887521302223751703330428236489767441493190054597773949430856739541335561049630021402367739212922220211670481422540919563957057992846399614638013087042943718172260649431566566514653002047316278739325128043745359438620384641685185372330700646164054239319088207160731657512037289828137576205530565860505473419220794915699747415743061842605433564101575821317502337025631752510860638779109316292877773363710341847648055223846282810837344937684434273780747674149023162370621132986531009552352250170587254209562685185412705352997360755437270813560239853947660730527627670437292218697287390028876214665311447572354679019484105615034552488115963811760018617677049682947829695531233263381522284342131249130382383035438774791022334097259598095241841700169653251209807045124005412025814258437651746429303286414984948298850144884906467081940359090161434823463610155622995391930759756927373990605337002874742573130611814945923738811509728693200830053729997984344451603508677368182520100926248084789651631721474876565358187436952470316995069502516289591146465611737932629698779031988754981315981506412432369881369977148298177163805029413958626961687951975862648230400549687480610825803122953719275829882222890871120079017854741332549121901112417578255967629790436200416268257997004149266050672067457323783637420792492068890437895145329923665238136581143335526521368192705616909087244503592312665379059585428781961736202972795191319161481779262131040070669713050917226704366056762286794805382154198518366430985759874161827819055992840965938568952239631364345485579268840736393451730203234740522904773546024623213975313554008850583030040764916540485277083498227081198486848039441292591525856712645799988979970959384609526521882186193438341307962744604489394523808044891437426159150965152678260159885563627850917388776727880506165885191618796709691721419009811744812459285481475853687615952812891406637775402024417932549460085280656177478457226371341582151315244863339271113399653814824116567906015689258415904532244077692723285217108062243791664559562702852178516410740259175526370126486889414321431268930943856547007073511452904039793014663064075526834903064680060528844174767097659994748767010279788706407214187507384057076599982688229361444139781984713070455822290283372885138738691717490830447210140209312668765844813181624696579213080994416390316706938309978093488497141549902872511984560719710101470532057976324717983608692037918166445631640367239353383549214490675695991990255402236339894685634082110353629942062900522677665008086498199124430326679829950275781198412647055220768233769917445981335410535781608479470983122766789113843733544751167515861066206741759641032535383447931894989994038914434279945804040591113989143778509460651183719037448281147099809954795587404227877466831782980454784339596962682013777933940310820295198314781641886779053058680207470475404230795682969839329393400829383837413175578997349025725842717307392955171107689006788315469667085400920234716809431849618180540899550183819030034994027764807359949009278025285251636550638659469549449230894311006862826183099644176541883267954267352914742524916115255384869663488416665884903323213138270314295396911628376712595474804487287523246242070625063619212582744126110814629110025047434376568316229636763802968470617868755800081548924746223887855656993872645851378910545464628216433091360116703818763488395839694560789759799473277103261846297052542932169348449384128466988683715137330221641542306631643006481236219130467723082483897360174724275580624034865689862049819797861902395205907776005921253023709432997944406592761011746551632671114481710181131041735181880791013692863199460264728027602841587709292806197067937109519717932403380971441561897104408803729677752927832215723640705450870316103886564657136402450952016497802040657982845289136268860032290880331842671992145192211755820526504373726100150328751774149102960056846361309716907716349819471770313590576777264007718746802053981825443245341299272077688801516959123401386136924430195369320802143449841068277574452362093965592053497340600492409030448827197348866289387554949081817425702587648413362909550718860024380113619672673733896713589623110307268295232673959237047140628429052725279704822315547995899027366467081994888629254855133332215105742137681300357387058098532945644547454260412705683274729352606886627523721514901588294488798302128037234822138760761229479043658651567406359125358517483370096401234318978773009737600881220690637760939817725063913096611577297419447822546008961420466297412519164600160901657712804719557066116190635436453893603419956682297179224147768902810249643354959533035308990220409480393545846219860503894090354127208278167276867957809047338582521331214040548284944262725460130178377122613532394180084477761548787493412259927974740024670960059830515224586556535217202638218963777120126875231914147515174191056826523864563714520638874289109102135368546854938997508777256841116619163967540191392705156980613072844196657891965203771423071774382575636013669819254029431672529917802516340010550637321382328341184294668386407299642740978611210598381469389965255051592291258758038379728173411261001173018140782002219901758379172061250713140780807035759712696724661187234394936176868996646290129414164393732432830747882004271740218582626202949792861621172931845816897193924413935760830037265563717850552025369826305387661011621014089724910430260189322153966207871261958442282906763353704733320768647011512927260379570550906282177376940243030612249494318747865426766650876811588739101026747277090039224552828498948421668742319624065481156816824311063920968795513901146400974340420364196524956267493016607600633223863757078559011141865402013236462975593967707752994203247739826619872074304315780420858245631730838214630842654108440850199793983696593698323775456162674212282645039226263488277002787828956981691087529698349236998733069886314044546279957478008626599468952961929389644450512409001884813203917008791117735163779762564567658206148235966868319271499259003883447505816985720553603295181786202423840595589438030830921683663888561981971645853941777052346232115285879466261148360929190847916827376933477082038490975734847035685524585647099146415936258993075198065270661375519356556515430501657967965329562355176888364466823201206857050870091838479286294884611306491402545490324892722252610499044495592758162272330898518399687339497267145931834764801722570526036653825071465808507012080586631593685847016109858693765307424732258700028916199834703618324497741338739106378448769763438296870567585486412846441101816912723971570242787779764670607420499761594075838101206826221197938568843346622657587384915282719643369048463506733059718338802586522002164826076691459915487194474724374534942513653352099689176908003261034974848630077770796637046055118453075711095684237671215495220583885225907555204089082376176089329313459481221142788931411926608002038420848859950743490599918642241580151528400867549996072724441895890441249493079874911115497779861030184838333373457963655370712494047036252949498888804740064847438253217559753737327950763667136485310006547452825453306094987505813931706736399051359230568674932256971043838664209873051919669062516322350456865258612585815504107591039120399014441103354077409398648796075909632394370843462850761411673091916743477779768302527702712705288030199230229558179509653269190700574341921307967959478641639704712152235863091892611812182509961296230983197005302594340703799479344252824234335739903896043749533156781554236725669018063478680812239885535536275354120838796751976012777104079152404918238528114573067772549039214080179814941969772131869191886617030031767460105531851347791810040292389338279154059348584628014356271725827636869724546996508944671258950201192515106934212261467009737948562943011152974300668753600997688420289433243478861960686295968938139801997849193682308502828224368625436850039274435345991700882043560081726116701128902089822462031637516571861786070734496288745394529267039661734911970922771284689993288344336240135342258153645717654708029047083366325406857304525838234255402272305678525307824621835714849559844099634311305736137972991354563061938644351404743152170524838326886657747919745132636153144395764155058136509044270547656408237971157677367427812710244919049805422779402471552389500576088401054455172521617743735343697636429450848340709891454936069358087835392031333176584140702852485725162909958698144807745608445131433159977010344368079009670525259098717213935991885823887985325680148607775549320530701271621986089712440132517277427003834901248543554197652932200676537407943331533498057226998034792279943974178754101440175125455430428986377893902677939512245361119926652270984816724538584851046801752076248319441685190454475430781329657857950994637720818483341857349750972318514516222009132679367928187047415442133236048287555858542107139670073939396390421205354250065228141141884841720001186011938023749948722268094593911068885098169053902001820091932495069799208901283011384345171617631893558367956333779826915128872935186010868937725949990723764892854020757757378609715179985024273469124723926933381419679122980973165003687732221318141735780384185596626530722102459476295156165039811301952814948633184236112869665449916640791524684919771049291887121646573434904763667879772526539208846966134555680527140280870178161259107751106249346696591243647453073066750880823000316063449713262841104154445384452850164722838336856119407378260275537433187060829463464800022142305079948423106623531986809845443059963416142045312877567137192734612448323252908653828789004366229564010920967513544355829175844534102819994614647864514200822206332911971486928925121613017333201236970851407625688257973744505558434280821961256192574526777924922598757635014392367761547432266572132412690032298860609659894341741305880170908430546802134603456148532929745541284346713277141379306102047034388320958330594621862518496516322321792962016554499557451440482289798733301539279294235500482000253431881780399031609600129162660955818895293821399637605545347204941436519202435847127351905615504367659294625962314533278128789702869541443960732751361513359188004930264507116430080351815933387244997704170152074921369796867626984159566249688325940546869058942990213029172119425142920944892605644151690454019866849250364127331973834152949277496135466279328213001186325122799938637270956475424213990256914061797645685123596185544501902742193606493127850501867651958321101148953199658142076190030675153025453988865127684568458840805663379760601336226416174440081659501122113220050805701763331116688217242924984567047488969758483837878887369118461882510349684694574966995141425977169940497136785927521667799269187109365224588618009847523227096586899116897764604921565656793465584836546432775008585950193788002180196309391349542057017237976536537139677030899556458673244426053152448900822407689103157177633172844749979202172312693881850336094802795656721837095516565716575148087201199979326734137095916117903364165097699232965469059420965941880600757710876853597192294649981403835670051868563920503655492607421111535179457755833905766165812832110651516504084975070787708372777541090686076984501626426217857208524281103790470435532612272351099533925314282221585771702132990832369718234574145258465589367128949071961398868346277092504868019302118903868571449436916111064976236036870427364179685776155073811230933799210083637367781108208506410856302509868401158795402361726887816756391521283429855396776836115330095709029491364383866603297306450533520283396876254043594399532306932774551997461004245793388852138761923252652925857517427723796143555108565813030678225075247595224039013789990676886091999987995878039754157692374999401524427835480505782366552554737869977512452074822424511068998224861704665000480971488543203860863735474232229963309158754595606669775328460203339268726696823116512370240826804941928823268180767953681348402855892048348743865018437622076358577872307635536527693096484459842409639967522201973960892371905701393021399881451369650600564575880060353566154114376434280211028405861549660042246248967283813626290676744852416582956133482172200167085827508232041722080615164346208939258578467432404297323790903549348836969004733922401714528177869850870507404879619949347856121238144769964069081641635167056497514051444051587077331989112807724504137038308897462499856872898058491516631491968696716803782178374710456849032860129716158387515874303391755508655835186183342116248560924550380347223219190843466745136393169621223306721925962293965935404530396657365307849405388378417863976662657429000141858846270381266125603755554191372731256043361806492917756025558399059933646857285877331034012693251760206379674225344411526637312416696907740079526272472363675649905592101850854004736061094146654524019020274517331007223083863883332074674914384801074740551291931278562625367399453425076857249054786943242511335042801467990426127012754972330884069567583576195248315802725020807514044279122362867504072918616713577640907777492078272892859938430186165386343404619721142660792217879080517705118231884145492399294461206762321694628006806713136788806830038190884631637120701298352299186508175571589103686108556430023125885838846836450232469778696997182376194725133578665850305409262853918192602984351357974564371830101994762727798206921593270866611907591456478752617148930472108086417019019120427810930567304357433783258304341153501581423780891686587275876788894730368678494108487383088187564292243338865478009360839958832497448271549420807903762337202062971823748870985089768351753460065085212836000429180836071629054850272545711240346911414641628360178211394011509560491884724600220640873449102858591506794762102720137735615567996165835100539774483063659794075652293861304295625885499319760239736606812381400857444521130970963996009051999231395836098852293061719384874365798187507416277002557159682692922922260111176815586761537356623549931036912785113714627483364936266980553462713027864147714951646142246900343345264455164532295333859691437068949865984937545115276911234671351528934995136011168706251646278519657802570755948916109510452861749651542607037619270012253737110480716301204663515958135447827026632216208953853653174168940127407018063416559091820734575404666009638043295050141558204041462483009316173032758152864277343213965035631830111575453726395815282078666799694783988032670158348091025724845267664126692932933238221141684317259595174801892756530452752302169485422487862544321566649478848343903443622899351318113515643334643781343355786231709677739607212127274619639081701083027581813587723431756472073498553654798812844067254024187231823758071456502217840417118555830668929865580547189288956107182597341235364605889450484050630319444703473709956244613029020423363769198838003745569426048154490186390056485211031448270026078495218431307909197313741031229700772456881234007629273215161168283000642826884717423862693219266666967500683838756800705633850972927312684279153045940054284244363819869810276553219358942400901714972494793508490787470972033198337134987911720600039350190683320568147628632132534479888341795914747424120878047115795319767791285453448572847527440324305166742138998192809664525850810462670535766450762959353707813889725929297957374357793000649685574106812718643500172671722891807384827629667218400262893561544970450808503808080269793504380582515865952910129820463749491829640727956821907023073400880431196449941432985948928735250351697641041146165671035554721949055699920941553457632833686262803183053389679084259788373751058673969912493333342952195441498924443304796353706993282701644880022612062071743397103049410170117624489093028542773844604250793371447635872399667564222051815069464277270876137277703898050710955730633998501146363319782901216965156172154901135632237567057994231309045903493313218090671108362979342162158573849138469183721972289071775478494407375388170869554518134900392605172796975690812655000668161368933374710982193274801460824926725984243100069026218158112291165710570172419929400650896003314294490457182553640844295607511719919488051618156150891761846967161554082438164426650762790674320224429361046319215447908002649271092893813985049154539330506128319729830672142498685682548019231408646224324619218977262032557215087651758892972967921591032431121465477226655871262867113345302850348739495908276735491323109689225862471864642552819703186218803349853524802081147747180581514578822597879039935320019345836198893674881289131626024887804669752988057710794354914484247799554810213715471629182673225865813126308617370770232107145630862373379615518313378647464499971393843389191663159431483760298634685987077261128134696253351286845690290468089161387515580869447175421895068394274096783646312286678955605889190088184357419535339994210888994461986095121440463288614950269512131219075747853949223707166625062302675097426721587688869314547840581671169972396486042484914298375975295964077683370743326430203482491275656642292482530563941513515112847424357259170692486676660775687017173659835967075614683980742751948423830947865637055268575554319403447918846834285133366856599563641320539048851896310931687939527745797442999639673914534930341528154609964367500517061110519026531061738208144922517778822636735840056191893868346627507810631117331055237831366701611699316282847813982137920181810700377299694645260145885685722387966890955748910480432709536138263668636433869844010577697660036721480549288793154485434392514856270480522133061151854610324424871880683525191251804800173480621930472908815270011996396543529429008326009434375746432170649031068765547993830404375250258654463699232778942077118507905599670168675275959728090742783933490205418564047145992266592618500839163531954576448040842019267847019642161839527442053757989922900548018267181394733832013047445737880699911326771889836279594914694157024254084415142779745911367213567047522469042194574540577919071893017387071557206659993010698135925527287005918120943937521273698645530029821468343109093184502700948127928119764194465690030210532344513272108388447585924084132811172451383467474830520668630189482517042008682322348073811838069629372721788056587557717793376770638062885798962555610110072020683561497972637635083018389200400669995652409840719699785982416389027905464484028944683397610291997698576747683022586550337871243908462782560172358004529210798496550803909383506547534972805264656582045772918682236928436178260632665627224009129180721048100885837940658247887410448139530639327515590976678854976304783914200541484348040855148398736783425346984014401718402441885524758258984411672921727330045704969127123988129343932037312581319236103751505233844880296151244690750192474537989723955654157052756042769192485549557151654587464230283947580259925630798800661467203304094114939444815299963832714118577942822045856571210073061694153294903248009426680172791840784622330590919524593719984990414859952155225833291504863110220343823935354217050829499614483887190667588914281006679811575395782922117094084086050570862211988934284905895200348373131469999187822265270847586140234124104831416581712082965144440740208811154218514129574921697316398060685824131647293676247694085614603311166260208048941528192540978771660457069794389038542360645854833149935634512400724122512421143516464930371310063093567851701740013656202127752637380788767067196235886427601829325467420599324194961579092642285490628227716501909847272711976894963142265938614021217058145226604638595968899890225371790352459557513258531631489433911470403173831694667084469292413901475480411500923033230334976878408862537682068786710910675096827557884128916638620198721243178418405244813499671834626065863041240824443790035993953200303053625943074782171588240329416095853339628643606241445158844832646008388689653611897604930822632350378714408160217077034257874972240545956213049430653265202187965672120256291300050314392564845821534378758861226750756927319984162436226030244140227519394976544230070907278729472570184631773763960096847692750859691758419701908068300129051760361278784797915446763645441492550727868267962497041583511478756302366117890805151089593402252336585050114836563332743542568797941700158217735786620429908889639341236026567493185536919570866840213367257762278895590933133081167886074761573700763142864364761855791080454663887087159071608284210316035948288157372763998944407633209840563562992005674620998289202609633645302188056227012461621290414432963129407007514558707410181077362986743316859580819996228086073612563538418921222960910065545503838158977092589624049851518398739126082849462683984904240419872601166101412218234547313439290047580876626435311471344509253249723347207466501470243934889184703426538680119814230036847317063216389620103856149492345863886552865923917617982638846292215525140634071667931559290554087144811277708412451989858049033145717547419175918192086404311001544098367868901526357410696343933557751983969353698219331257866145405616058028633951313625417301911230141865319441379611836608420432683623299999438028941542254278334794073147129020918327963697109637491000210074746745097979581074938259578655069538216652734458734845137678957179323430066277993978150928316213754388106001588213392024759313892148514157999750169545741530718344857175592239868778876737489560066837920944109267472529929492338831885869451609908146638413075212842311702128766436621830600969958496099815818995006714222370185963438006163287215528450664106617074586070227480035532805270747305348703544114954753145889150093346366188577309103942795456011271264613614223423175344425086368352489334003358643803226509738853964548886611857594624701947709815068248564818580169208581800284099594261028619117722643034221554742382687505093546301551618790099426551373457940614562206436805266796038559125111330489980910684977250568545595775361108848247404027730693657976988554369051620962519195053681677864206526472590409446676467073595215692438762599284997400340410939203168537768357704702531869255967005738669643426617832973196530364460295592894961787985032380053173374067480671082588351231644983559721039983234589345762932011007336980372358773160809467783920920762605425428443576764480750513287864117699450753710953279352524518349597539441621507787268515492686377037617225731869683876004271645751866217947680694460724547888593289498059748100919017653977184525804981386053449153058047266953598821700717326893706703493864012020552872790141575658743842672297500338977247716384010661543843056116226851942834609267956487632049977397665048489427816860221506140296250373940598408362787046552623154775523578147850426826487990310778972262235330361272867409289095045106110254156336108167448461581605041814191478592926654286945951043147255948353823584322111595044994755465078080261170395633056020417191562949763916019531648257721464993729046535605780830684283344641292384681919956728594705718587840004852847662009668819185188515556221380699538921617771506320063251865316149815325544107838629737889487222781448613487811549602850009223437678577417942187439868978681761560287197548865494802543512405374615574112297017464009282912452310797747770633636529839309128871020713900579251995616103572379971517234169058134102643710949456405380318006652642616282512479856577733712017755201760067021204817830831409578538328372051054363260857851841358475163365166049972349108919999278820090624865964905903991231066805744744840346980199174622501146293194012918562083522805038910585902834069562448559946625474233197908299516166358728631096018617857835596049149859622297315527388811436851523798683167377992282188687179674263892445805362227241731114080556873481621009581478209351550919213544719767557107302285438382525283964287703151947670685881809532263276281447173524958052637207365442827190316969336885408200204069919422262619725255445453563235381593780238292635690189463123879396327912421018108534586731535825725250276249255727069810201707741638745178987958954728685897185554103300638044785539923099670251425223882062872450172735696311543963579615807499064517095593415047065041062267599878339399522975213399479081092767520523450415389551666992918768296576901840501658724540805967319587126186847111686340565862850126576551437398398536264679046496742836876111956969778527522915212968389433772630042507205480711437387280140361558560414327398362148211305720000634927428526635407243949429206111681469625935440211622504379046030824420522365725898382073479498754203623598715331311744999319071053683905973771610481110166636670880332010265383590183200295084021796329347231088923317548231327222622249380279243072446946089960961525058165453311858782767024667987989234536065689659870887325978318834960897526231494389907468745046428588682387939583004356791749115729318989681221141094444732099388088298089945747300784554355214486944326961892513356471547691722721443193693106016092162601911522349765178535386201327828688001134037264232623594298402677906394675791989001508378926733698638922881742913902016630814956600523976863368136658329910254355107339814526129575723234480038066994884797463540437753580138411731409598614714683904473398048895176633611216721123879937220209208430676256611079216966019225520146716759847342535415188271935665204979753564818335588154719509626387205640163140921604419376754535549225411053239682624082078698775427891341711736230488844174217805526381513722376550683943887034856386532188590191137817373352742096167922726873820612635811582972725756083222226902704539294424390386785465776027928906286857378175380604068424455882253541163238820672086050801654378714130918382572386288465442671573937095280551956950153905932943417442621623005552974848212637941197747656067872488791562630583020497904013812567470643108154934195036331955941369464200669965750939603607714976774151567933317763194333233376390048183644911290649976960783445328086941309298344865985725628953285020691212078914095197048091295765824471068065951330665748192278293359974142654953733067944261076684341483307702678716605944708781902938055920538946888186404953513433012291281764572197902956954831954364827854921504106639425673397778723742588014343471106149378092358519097570338409403004348524262506360248593083069394340321364812648221081368631923279396868000809121506488432548794387767062985302291469887698172340407808534124817876953732508449392205676033556863162999801013744010993219356827344311845684634367485796709890123766100960444951660632473031938625598483195005602337205089024973587424883460655127781468387478563489265423828022708000609134568328785807955393710288275048414102814175773443961045031213106829004689304013208604896806604788067003287637768897486468991556175597609631265806344410672937344556490946116426233345636840483832416423700072550736946472552401980429979637766067592618376271914470666825472408154080702859928896898961016072073071267576820659024321397017335337578523448654071096997998983370615218666519841195271261455945181579350992098598636632076693831154751146148225748540940184043523503549809428245774869775661515756798741606537218775883770669816931162002879678945050065065357557602958568894354115421365605611326143396465937594011593078222356910267590014915213543930689306340801420304834079004030142701439233675388364215444929929717928305980327363055533670247020148202217600177379511021031961703132747296096485506211190093101358918026381171972769756255664532076500905961481205463433822075241651621683053067809194128028604237236390786146730381624214342923070688745950230203058257795674766816395679686041584655106518275473145619650517576879592177426800844336108339737152118523958228643907762362133290804350480965523608518203131121905138348494371188255750347830181960928367799688419836747870944172965255709416702138893770635499960302341561008836553087538151181712671327117605107224742724998625479047934892819389692249224341491343068099637469177137245026655592550543055284247133295412388944543192463609151009417408590423444255326506272632597438675461059580109883912237207810095801639811956022269706922504970863230468997011406772332157037109429239526681393519637786078770959451072063378924987983772417831066623682000029492382011337490393779821720527955140342520349611464668451070466601940212556270248755302329695492032441434771516781245994046262237353352661070277433055641180517495148492092717660736770970943845180258816386738689240866300256689969818231621691697563165796794342719012057115974334145395955299426824026730820840541197810199628073082294432196993337259041302551924206573063837780869523632003264315534957004046233148380821597720304037506418847607095672952296376206484414855247062300146180335605338956195586238061708625377941423926408135977761450783740363670613520127677788740670309551182863109918346597894487513522627905624644861640043038282073137795843535344507934789057810773348503196202492776520912011138791736257302373622560721849158785261722821129651312334140235866723835176370727368510050141947772093621058845505643271985738346964545883143187552818293103869396871891290352687133221624463308783672126583071521795641020457705294259004099226787793740617017443899718291398190187766403160455727772207228677322516997785240837361992104349292872833326770169814641063751161035518726476092202616962800255497277277981053609207693695738075071436520334641767325052344224971185391838367976457454865491424607543361475385803392504417971596353017747289724898175679650470943749438883583363580664571860685336302401239688915094404558051921101325098395603454259551015279788831922440210584530243404558802241258008765164593166486054372678472998976397775457436667287149878669346945329192227896622879400572639334748429602245966805346069219042900328966189195393911906264574227571599140940407998981485808995401031645663414552772523955626558631825511551632437688593672048782077710072296569940149483418306446797353830167817103759547064493477504782485730154957984276734348416859741493826530005610900395702850850210136989781908659421728963830434994149596831139641786683983274234862562317416537984907763587815331294007450045668587273795531175919994545357581058273370434171091590264764764770631640093116636090474190569176556526338087594773178887507854186564120525006845670913462864426108666090980675076408931862481243318535363308676811170188152848955168180258530670106965546856243409503894923929360821777096276755467555867088160805916993648471514631430601390509213433216460052144239148288813439612847531065301928600594710553329259438075790397896939537141294627918754585423208323155639168716899210074540511823592493281536785881694922726121274122520124241241798636476022477106955021977399546007439854600789660414269271994743947338031705014972255356621478276613242479002163958030618162456209733047095912772344950670262209049801180789683592347487300401043117455805542417984502511422375118258006856651318361854212016909926320493901161055067592429755048323120487696818534710282801859842847879462303895170680015094731676082795054454171407177013013590504288787579831184098508187722626592898524465216281736531338150741804320703085072909233709764186195134781187264908703244804114038126576664943828513070102032911379487346665987585050122674083354494352784098723682072417010133512619445903296195920044306030849935825488546266882016123883774259234466095865217536297820687753514358483468200389147458101997194308811865847210578804918125504542785708323073560501561896961802274071959018075733159417148002856887852363382361982967865663158596691246445698444809007084886132477977268413818626573353382907604809372313406038294464870394132822507786559272700640681129118895495994718197369247984688938816973668496840716672783395693861828841364315583344655843830514244704808872704775008724299083950025800527878396449444616756552887871198095109448630199070630164194956598416508527949025460338298167165386541003665440559049873483879894386984165708759913500901398752755959144744288674963358057249936423675982177718757821165879869681085209970487266876393472974196352328895935298683687851315741436846837406859914100002354341607052856420287008839373581572180942601665664037884805407909371982627465466833117148035017114703396879065604811372236408014530620227042825022393523577834814023605194378958189774920865386476726914131273783338321142417837410890079231668225347848971508233121994352092417392585591501703148567012671113096908925304669707172527688561504235479052233690657918792865210193023408792201620750115076336136719117711955573330426964760956999991272364728010261415175408796887052635995788707938775828774608684457525870133058745972365429372583921199711465546185580231557586844166439703959319611854242427175572027748415300187218864981244576044751645222187726089050493066833804217226561874863775355096876443242113758104921403560421290328872754574841586495034644502975971508169292541483482798976882725657127603458332369805969891871716956958567319518487989443371700313318203338476647984642643487740875132498325834380382361265379996637794136717909862830498468927026976572973312127028808477571477651814434956333252575699543015582170460641185099562413200141208635010807642818822813802598463812876762293216132725447984514716541738657278057830033246619623377215212915342800544675626543402582379511902289365234013777815640124807152646938461558320233504387183345212592837722230986726062966627538887981485616727859345886479558982924963803279112057988369256626403931263134435814546950616958568911187416775969674197185451493623995870139156640292303880383138508034618914822674929293154850749664396344239576157132561659003222794652542238575402584185421790747535554793787703807080768594496301909886645723525123163568864267630566094972756288221334832562749749812790292281156643394780643075080314899396500810011112713919019540021854278158124606602160694786423468614288226917141336745735891015805324901436071313161458588683481173475900613565989878618824746134725508846575569829772908179310092942123071648017582451190878659316378651897826469590624133409947552015873998708303672950800467515069658552250414303362500935989873659827581996435167839554927315965568754620575375717386821008694022151885518273882234023354289067223629845308883926546948161999278281148362691386037808604798771684034761322320000619314867288504651969694371071583895216874714510799869869065080442025546372506738525129444929326116355782037502057660149288215549704267165168213675085552492593806173192121629783525928877779229801824542710747826759885260973774519653038666836562494473203384920912645046042331705943118358263749577528218561471088482810984379702794803813346236408804778034225279543378301150730451779344499149619731263799633927843958091957165347783437538820138006307064787341865081559520217282764211134739844832898785465686477703627669263580564155512391502860431828722308604032918472068518751550647383448221524422189701680023531885454246297312707321106344582199867042613214126337607099824552770268982666264472151507527693013430637038039470311831543351529495187795659842236452078063528716271210348001142492641616430475139224638948283683739554629725822902747110549655513997854613059763692177725800063270018061849670217207868529683566371199280287395016048143380572768004541278496831761876335850063130208155338878763541714358866795605958902505964134512517078362746492048151869144835516979842799539297527738131453516598799425902423093973593313775402181011370277630174746020401738184115959661326098187720696590310187044439036969426945804455106881823648034213125279921777127923127002535492058124207667002041415654035365799816081439560911190727377748879072654536183642445821008486460384909090688425582575366297355105014369049375247379500641265805441160755460463743265168968043218720762608707276678697966481169917726025118416573638173325727607875447369872380107631542468690873482468858161834803110475070455286929291988622912870161510955420844464811029214513463607093368654698334217864358656219641700961070128571718579854557554235831747416413915353316626952838370235477653774321070912795182713615297702768828877342518457834606393656806355070966024347392427708135623420357377685432689771359045889130919006429563819738753312069126580954446626790411993081045096450605772894056888917829777490454774489549833043235171229577906124925463743225982268244976037784893301253703920079785252237666458554459637596383189163029875906909325353721495107212183654187912384182370917052251777022114524146208828220915719594032205052633913182269940890876795490963559429930380280241965465094020623670288460691293139377075491892743564131448930440771210732349116388721196019941503819152906776168536514837963514217839671464510587431562584490384072395651370155391223820430140329871718245636291662943937136034355363084035805996372312125276828055819109606264686346154302771483009000626351106813339276739646376978602355007476808160952825212801627658180472066004110209153619538219475126089736074632552143630278801016925353177029770280711158355293232624020034960310719696442939802293674886516351384127086095651641313332080070995213121734699195547194712392658657355825626181861222004151192796405489222760565449396200027443032282537961433940184080173500256099595693016647989649594085414642047257151123723106581253928432843184301798393038882037621994086091621046730520138658978845810074629168334451691013451198238683485880835357958585920200571191396019616686965690004121637793483632785541100240179980909756489519325151830950709970712744829884476254420928510754451848433692687404345256490237739118188418848565351331403076218734944590952542417642015250446777774545434400755139844241445269710101775532920914775323353850620556694120368692581967070829721701036365836024715382986183719370103154242820060442377156435279340441569078961120674719897146328641482921661038348929806842775315091961304575890673810028535376884204004370089525484315701718943625835220027886898941101900314946636062950795863151362066003648561303996765556531450031647796157616357114778800490889002227590811110732075380381495279838948755927027703511138537575268550400976001861990052616206687068624714163122114907723804710136487338713963395660459702397992944318012931386918691598923659282336522134724299288933508001142172870021466155465059985260928446480234830659739474957161783563865340882699911405072024957602092353580973949851107987801149267102425498260821228429844818683943827160834256129777605369960622419901699964716353109481631904267345331244233526534343193443180316698364819151713662555714133424089676061325572461613499301483255689022084522949771942156279830615600904418692746936736368902775450890344568344532198614425288340070129432902842180274411101983833335106290857533781842331524282089090750138688044739035743234527475250637958026233387984822568798126215663015227745460256933809561506191896424291437732023919995004477973839395772729441503668332668564989673228300284812485596051169242041844682355328252629737462414897784051631047037465377559031707291363357243696388474335694680136369069396927454927228005086085738513126722290215514383340185756900871578261950443056939220521492514137768219409875581480449759379812640824246941064854879215641312621277334701458494188361136535906448942846900581778431290205358518587801986458123725537774356661678959569566032016894187204673482814674570877614369176150769334330851299509263741854714408225617068083158825116822217387463399907447985717189870737925938944559039372665635373637383055779209305500695384791004692573662917229786067758600507650466405857381095013415800256179284959580733080305700395903618969442286551246844823207680567920429296104631072125758460615434546434504305505978829455980498743841197653192358305372273348932337458128506916927918048319176631993232055080600584490758548610134363476950857089690953717874832789497742822428664872207970657145799834615147752877697812001930496502266961557374950602765084197263937513045543156864417955757465699534572372631495331748971537266502686851969212890396997290703808268974845470656430214354777169187447186166293676899250491175368621997075390937514828967592320163294332031310712004885025349541993917266273297600322399494452748846161119883339122479042089213130645270224568078404667605324534895652346943889617046802234205832691283473606200314178511955832065121263175983486757005513961058584677837454254617968068336937711044143994710395333980162205494329351892940490637389429304674876165452906428986838587827095865111974163881437590818885189460325378654552742024036580853857194966857213072680312532637885065416474045248245661868388235794684533251447336411139447721324152104615236298777121994543806513270315247411307648620396228795967748909686193772022335626942478592274087975089574332307207996844692766493416019644786672918946155617831137692012886021655541422467477948510112255976714543850145725866846320250259177917611730138249473552962158939342057358706948388923918870081516568862167243202873828393967106128689862702335122548238382562570294714976552364308340186467043117725427211491441826863444859971336991490206516675938400415385155528231623521787310955749438333274350285474884146815497974706200075706732599706982827667558085003527540122843486655574301082155466012590011815322944809876385061854154725059133701828561512470820067487035360532533214604690851222496242712680946395791831008697279097102967213181433935917232530296224342128237171029759551800677746611526531698935693956597195094698626032770017964193735827773348796299951379473466756506059716141362426892671378653602481504835263901434086399581298226325243249435314657160320519330498849749040625380125840029584267706455881150076142897220441522753074682328679916502029833748219761925678649705375613586340948553698405884371059390589299173378255146857502655911981611546127738403923186445851939540704134033033280422658862840700628464588318740861982946041231828690093033555663734521557823931812378712807898688108050040422361857049764869312818655495357759325784090372662249382556031820738256211913349484506293900678250317216088190925093637941022259387022056794544268913436377883078483953351967513196513012508569749704318546023763528939901153327529637709869384900087442667431466241852273388532151125015997860414512166892697228826813795281903542867921035802273380802858974909305226229811277777877028409924354881674162133171391831673581314796547742051692708721300317162901549069222847636349869559979496998783542453554293788294225099842043213715975946586713262754946516519512091265411626116961018119800853200287078143561119972682089797210855374064417839792673848789664681179131157978659033591658244021384472436867252633510820155182535497908184035421553984017276047146839484076922821256512925192040349013543535245273644458199757870652641892747364798006608330054422309183513655943490798290347217131046450855302710064257560274715755243500027637494371988243805444950364805538375515519909899022763332455207594280792596152128287519081219805920010946691568924272021598651974773305053004742791995957005257447019869793458171621249378270941182723036362082123448649174337390139948369424123696033306883657165066838502717194586211166902907047596955390353800460040231644864169725878368956284289969316419336366360588627459539503686988283196395800716296849947898726168943976366053268578223336593218957550467623849234830460938197808300938305268184739619023667885900714582268809521639934261897502693368491263262208978689684099529425640465680818326918233463935676991393444289352803985639493840564002922991544515015298699472168027690574559293734099343328149022407771557478686962363199625258404550102262579525901100853094401214790424955357561258984261539476315694589086975617065720523686307547686093283374360854037615951111587375132304529055630493355172349161542534999716527282415795393384474500174200064293562873831900272497746044895881581330997128456536360030484598962591524554389256518921759077889703753273547392108125099550437320410829957919317956295440322396099198731948982603492336698417128384136594336454183745615308979677798507203678834346178977826547943206255331117516682442612618416775034727838330332592401256027052302892878176476378983833251718232265740474200334033530531193855389565016426994580665354190893972039724996991454763755453942905118004610782014169018169096612784084338696533274129618015322492644144804773204198413292136725172181763713995969399496894496497567582609343786676636572479480452633219328802573626303453579668715485481239389220220447654097470241169170894783352738900075099739692678269425372555777619809507071334772218272011096583904568371753359338207351148720582882550172123175462834396210064816838696748635244980334598202459617915675710978188723301227732973209399617161882305214846857299956140660691790246220058431843094193764655597397555123804544241297008696675574235639747010715153537618588416003265428845319014788931425984272309800685405528728262537849646067894395103427918761021422517871739062869190712535529864215653813359371147451059629238793857317288907696148579056227649724900593421426348407063139135662322386901781421232777081113711680601262550968538125082752024592872670462582603263133414633942263722269556771697142916594760602276212009775716236413747772773537360346209129223736274885412070398698563339127056652317760006037158241512856607201267175138959710857385583817257479552706198793985772018461353658708736525559092809942437583005730800095936399068145820386424041139410341547687125571476796731968114337059444400023985608552813593571892775463457836542754880202269172269995571948667149907443354331459398455837795296497005114469611067255026763301780772490669204407220745534516726702889887636534339692789245639592851459107223547574450362650628422450028166963769838139645583188434916967951582440714369422583105109385967241260191608366539647913998268219169030839341943353649238320912694081560117320992425273065027020878494067825138902840927839256068309304724747095168101129884687374401438009911860154324770174398372144725458487151018831439105182901691674879496779382747633991869825740901034699837284331462998392978347661758465733279059769638757856564400095722760856927093271763512859212494563325058781336530700919982576103715344037491912368546228879212465734000320178693384672332108949586640748304987310640893594568107515582636384174765317694366972363689717149859523202768643994787910005217772802553003812553079699761868442084136554727320055141273090865914770753205228692593874024425576041748228208965423072554439434495551036942217572084406709275535172476321140088067647890140297458260788133371643010278275791470135485594409961288491444992619986868985720937912581193366080742571272954631774746155154036039913595236279224025832655814181439142207078875378781900240825141132234550582323548881040040451857215043217419629497698744494461024454834967899777455835989012667860147565755499908253680914658130833265346110539747768791847204246283964046992970667168273031368668643679830296588691275204843564199200829221617081344277150510691656979049272432768076212767739143065328763841863123387957103386372538749957829440931068082390533289536652774293122483299579936376454048442561664412489575247120014277729828275293932375740797867255528117217389592618951421684256933240909222698731688949304523318184515329161585639107807471610776311031989118470581277958817191475063968904256050081152956446546546436549087509226037705984121490895015887755710512605098554660374522692602608576075764023667667533713348319705120091510387590121399079730868606910342439849546558072371161600189195024468224505348075446220462066858956744551345622304598725102046448671804633309302035067177988860340228707688267884165734432836718322637476403152132455076967479643395898862380422939376161825548228422939286711236251043965367792627588532022075791489056496476877969605221952672592761074663699401351141681909383101842678544403959011179088671651609791748584488065858126800359380741109211292165253746283995707887905086314068276082303916803837272719547863903661067567922991940216109866559928844420548115862861253346352808625578520203118505343080721489629311073493516614731988371132696161207865162427228270259223586626873380772956339236059058391344113091651333851668060887152344750668454296254368918174840260724156498607292023739516568818179038729150154688824466363207401751213619556178379146060680174173778045934943257082564324938318679346556880197322404532924425929383991989287314181427511552506329329815824664994009336476699930807686956403548740530891631659530069177069076909236868038300928566912998056542902322878470155758456786126306669181327017820292432130126830022217377574142521782953097113362049243149308656402047829901414418286818764817680141963243498361503716111779272699481341450333106013776109829599255873855720406516444058750111066071878869992666378683624096488221857465918457923668086407793173028745600391016690949649021785040763475358249567046728189545368851764409429102492625276635688855230336300458640702598202051824965566506599471189269362920926715589914636532330668350197902422126704992677096645243884058971742562639567375295477999698597688407425638399817818938817616580281890582603036551884130760410616165276758046258958257633388223800305518867721244742842534435334905676615684975078856173992367348466570049907430860804091039971402803919173726644531902838108118841847843980947248630065062764151276316623467965948067604195684638355935861976808726801411810813757686135160867070780813672140128117398408908324455320718685399922896172756709678645283962536787392041549048153016092425631161093457606211901076941010479008087037936497659925390065707303932280598961818248738233582006155892592695975009609241292494181436199593791369635823862134257191171525834015738649530653486486103041673954025263068012626824310261478992860709676004161192164224600413149798568527788339787199925409410990328612453780857061552196260012625214038980893544625952020511730422488502040762533804059435756954719023018054778986387748979907968635097019004506671144701825005776130287987926944630070182739819804951119399774734556661964123141531506799812491810055539829037390438119985867631449417468310636767810202140667262159269776304587977752573716184052359184796423413144883074164892691252295063079661076698014757217864372868690628834600428033811512202487254298004496038014896419419667587410924468028697306131705116010818764482292305429576332593509545569301882233232770891030840471940897778134124508032509631001023514674733543071893342993115655002300554152730616824833108072547890893429947555180903928502665433852887445102889947455976140413054042353072619518410863912212270490195967485956320700926129305473855202867532931672893716551344473435140498739390807639890215734298841390155930559128033056998651319422878982101660789270851170952015773315918090522371122491361415103883428925816019437124415092977238612857383222298642646668203475861418943076078899296672685064034052436401990938804369586282350667876120244266490377689213927118008337277908452951660354048703419118735001646391998624202055253114564593424621196881473496879713500077206280019867128029479848611872211651632767702632480221472534951947656234419418608067922353741104025199865444757933392386168903405719095484654494136978831445495996772581591248893579209543842518523962066070357573056598780053050994717651383230664030951721777195642031450418466284038745491837692965337528579709272042064963339508801673554072731004172678000622325396503756219246232156684831556745278120695038379161991408467810545524087346786537967272766635916647132643637250287962324929389500005086211878933866770087315312822798618684404932871543278278194806346732948050493150770181693192988673912914224004674396829129679518873363474975493971835682775765682561196501042658089159398686410510488574779305066882002590977480032716812042349075558761260465984591503286302702091958077192913812719453228910474425483452673552596056779787957051062350327713026177004480383965439941116634626306260262864135920884557037035173489319713853760128102757310443473315776824776460671419446581961398755725267523584081517488504689253831723615348217129997254190328413241786575813534482735921033831672613314183168816258436695065869138019395292950566733916616248756313135239869249628723086055185587494721226023412048713635764103598466898229809023464991341563776681385348583272636781012832188211140955576405125773030943184675743965971746847301687907199727436455431940638417845823982210716803002710218497416722355462431974660968395052840043241132403158820072785062949025210064383782438832575433924311568040612478487928225866707841800690960150393182944825229352456443452546224719497194053246826515490873596600224356134905808878309517729374403799310308600428095787696107913822391927403346773505996110957211303499193346801021273235626360914268800055377657087575320457742585324055441810315775377697656199834097753466235140294112863943552493174012554055368138439700070358285599589444513638157379322435245398146788208482289752932134235733769337668680059390644405093421110324094959890171366841983609498318404784077877479645212228757278755270517792177972201919347904631483458609024915344540008016035638831971298553391763412420518195568226799227437866283080193479398856261405948955415140731772716858653111245704369683268873495216202994359358307526684081910308495638167889795247469872807759382347142598726011613353404405586260530403829461171934635367261938615528354653900126278817444948346169213985326780117455672815020385524759989056757087047446670495624169725560739090728900491273586421250378108198413080954539145322369101015260887946319226927660098697101127330397953004446989133808609633830856407030337260060828022978275949396304687606294050955653600920762501006385338954020238832538882187371796626195527719644530312066828942362206376636322798714098015154161921702185511124539114624101849005558336250828091120866826530525392592548982744572282492682439648907208364421319747448804154760802129834730801032795654630625823717789225487365260718065712166695753767098764889613774600910190286740530271160368274636475223079910464094394925981527840872202606320176999209607412965196699888391011573084290880454436745453948773544874008223703324180328031497639402363510204200537249101595204393616600439331840428697720837928499968644282313858525304937704708522470152637897487599093540185840705042395666141662637852768039162695768553815299200002270358200641349358819654069262007563239271687797334359065489922853984785827441723620805822127881681382405106687195195976859362582458452348075256859112702720221172712510717440999520224842563655978319616648726038671087740738317515983710389918265071478545716012068792029539921343461016634416706671553480905877432054596749079687579024512022695604931047783985738076177726155168478016572328862539316167414282911915412281056677963903636495580231465958159815138579607092067878796748240379216034830980409441897286649863623019233735334716062362142450815432794336087806445348504169458743500520765843331193210890480713977109816281776676852536170820908119474135784876815134513827714824724468709342349102168422995478116856032037145286122722700534349432303213317545354250512463863594611326737214477673109409046173551132905600697722356454124548425900261907869735327346949001600597172320690361780032818237904435001272583648710710642042224623906666546521841201321182898124210623552740751202304271782114666832566427055277231116636098435740116792489844065088551976424525512753361473571354444311888179619833645137896510173188610170689146148322034978360196776836409588460543300695174845235920727676654533108104970302336035394291924740666171151831538255936786526508166735255329255559084339957049991987297768816584502390143902249309568878782930126155733953056766527924612755524038417248480358019217287537613536729824786911594084529666565191821420315744796813953667210186741428191294451753072219876307763055620234128652293730477834002454280084927250676268930721749924529213180611409488163777949001427456881129954711446346818848275983720592275282270661622612591562235265230053959031068072359930823553715408341955680846285675613246252046930103078908083452518777312277701446354954151097304940048542361352528875270723588555093511000120476232444398149302573568093874784870225956867390766422708415058380359695480619943268343448440739399740455483468817117083342501977143835170340858380504072056775361478803177322339554864398181992571016400086552217849750428176544107378863063047455525161232202728008341716653869943010955664109222216963381922717119991788277972037370919197259767236819153528451470988200931422562122559953680879205201202130252660894404313136457126834305542297675309799064945809651286246286924021626079239282866887202284395709005783684921029201454507107489059194916040155895821249709255452972507496084486230744750315328746948439737305800352195693049050817172113126870537642361945948004471182204214206637619063109437225553248853895855120673592408056485944305380253279988315032236495007856759361545215954592926547023093271096596421892125045947110123327703011449341207745813132382257681716463515302741558138899412310490420279975943474286835794121966599925145717865209736623941601768246063849949561375157633257965222280515808353002055536235204689034220959079202446089819872527109503426094643761136106642749562663978184529608445737633386531082882420959772157550047998636829106630924697472870951009962835753889887090422426273359835541429693181669154639087549906955676690173089351768423252395276794644648228943928923708191201876564291118230580349618955906214666552669531413465960340421792430687032247625305749157436181932933684321084297727845059855147453554646823097707021413844908844081671006571882118897250077556373590617411233594330941271894867067986859651609768549203687377560176375964051309142290845434272998084872158833997074206134440658829971823450970412243143168841878428432191822811649640067718171935646659443792840182422701963070434325967263572285721917264424512386753906293580721650723645140701815844944757045142317821455030771756074116672035031568260320146962030944614742821786748256096076741473062370409325200783377332051422289927707285425257405157171932835333636414236744269587845524450707443574391752175065621898322918668286160872546367916673763627179484296780205180400077803431934061411257911787461687479896599459263334366467367811912558008757700194490812072437663328765263966156901617771765993967747152440964745341533708727173379555769300678641796058147673298085201153908442075137507266206780876024236343750893829967875872552259522103105421780403015283720222319368265083409268481148073766008850311470788132586611468016437344381905661564562937901400017794661257391391705151662291627705292810822108577372844674287555986832253310791488028014419569406879298838450489981007845358217086587366333387215376067299125906421825261428344175297710199215012043473436335291066272570697516282090191680398547776303217156279778790818112001550322262117404626556457735950629043761151697640499081640338894596476136285078364663816866063313872187734918009580734731754423288671445025452545516977939075848469390076909917943609606448596770607936831285642571489858658666047233097475015806035361477379159411417155866755695801834585922058967347928132472434243917770183613043134389517640984650916063050142197686947005036558666557552007507874418129436991306716321746292299680362266972250088555096345549098563947887664965845903182298619254184984615810358916690498137008346539047195082856581730119714770299360839004869083865421138926998097060802096960987845835680117906422697187138890734851700301425795946732107341125865669121591853398065004361783327643603186488218827910505475473527172947183665630528082495644920448477849713191116804277480178771029601896528093321661367093134641918380849498077177646972368726929230216507220816215453472931617639557108665870500787826821239553220801125345697294151344097931309889242785989111789956574310110621535061919864996790952131997589796169493234901848741944292213703520877092481116540334951578804746534796923752554610919471080572253742276178352068418184298069750898466966738601474467730679199861743275051882349206322131449689287293250134607880847202628274935789339778252420125766197138920706355631463164346652797141309829504078840842634400115895546446720296568461212710740969248200958423983291230775794746572378522830849439718713513237754615121017043233960390693840501113629542943769554288236196468206538063914418682613350528013519929735312507214580773999846934816826513990550816342353075702174868286879420800645222279506862062161876618844433759736233921548113425679683740483397677854419467317090741233715927112944433970561998259811274139239406502700821065052003020693872854250980796206858489696273213963174988185028499396235223346193150398447338997642511081108577504912844668768060765625375423389620429743034225794936723388907295498034046734442135571232274343127418337468604537059710332347180061517440630801295685578747593562154613504598075053925081062879609645503295255613586881667677340779493197921548282569838117986695771653079849821714565027644653274790022253858175359802043377483129292132439597271756924934398145038397179114438653214992020587563190879812183816027855078675623002125960741994940918368429342430818834022733174177391881469818889076669566462327619717264434365367223418009603699245482473390263778290842325505886111133799919246740636234602451862261640479155838471863992616966715924414393134490963284652559773422119097183055456080018230246241592024272575792480759150027605996306528180986105664596116556516681492858292260115600958947154214786718362434992299798043854498821146772074564705307459064237670537401135642344316694979059377882946377009671153842947061988519186135366082516388217971648681783550536579672051215292814959284444685376898867771731007031697096336372867038516935747052603974762792002242686348499956564364285607589073903628896694549604551107686114867239291138418424956488754485309157611207018471233795098845369933391830190825578258363916329752370337534362638751616536519778308526437669438415187361596226352024675814447556883226056335933077416097689493464336624364557974783336876165884530250570599828725880655483681911278260468354420983129182220696581113387105388192904345073861391543905502357944980348088941605712789344808441692751525956187383224032570706271479727466183453591147273894851991191041986811347669250390647368077172916516782814253036088393977768391457295345367887931302371330507141553221396111374921793845649158742906405897873017006773492688471747023722173666529816804356722276079750695021977483040840998583284378646546078165505875720990361175539566065136262498682319228413981659707401164724556763001619008772961387843825122076349561133871571882599154873644006099391859369650920445441923850931892942182224344485600749188228937310335296881012188095712761329392519763094102106732043788655138569890600063625869998481196585958095962533473759088685862037397772092300314616381871080412755765689982489576908046022380574795003883000965061829161568792785618940785986311828577379380450734039214368557112641487596249324132203561662623101065612897724286165549707879370537969586883553573702589755924145167314412264929157133960560806521679512803248335572455576002266603635039594186631882844344107489657054145096484898854121057540658950207029497572782880970188493846180274246870135371204458839269514299111335082485010236965018376166666399371798919048677232734212255685720146286480155468199445447391526310706000008972072192700168802350991299327518621480915203791826662991651939863507753520388420931389769412684680141623374777251900071645862063363416734931384791039078444420054128537078007406722101166549992984752837320376891075383057853271715814975775192987086042899472029546351715544911776256878190520152102836721524273771206035534536370319767709893450188239894034812764701845209716476819385592974903498716058288570885540075480037471555184204127409608097313923492166480740009054338189823677034353784715071983063687683529088966531624120148705349427911059446144118146287764033089358144484867265156423550881709200690999684065219240248083560527208312647329896958001400330161269746654018896156947297861116835269940571890801666139987441004851129768969499925585030539717178133329937220300423347484618670197258827699758049279031804898622744941866273465688841802362374561694563590737993117655509581146445225491535969884431872226693369153457192496863372990474484927145319663961444286400713889966394225063927188979797923605021467036673687975768141627580696639476716874838360951950552166599804136027577856359165927844036199628771033856736282930529912872128935764276946582530607697521677624574034942455124231106608202503016655161950327263010844643072984148571650598240418300719973096389783771494181031130111926333803430917131357378911585007527808088744269189068376885094377364865959386820919921708875126080467258086403881567554597975462940249714603830697973253428426100644007665165833726371157521826904156478772773892526126046307232854832628025710899007292706335839670907785598963687798797657190038206873147349927826301241049770712799076948195071970952296619962891860397894302239146354577006180002158766531217908635704040443490210306778288942072868048214249238210034780606751614238852800947167743207534243945106670355358658620577133269852373111603695066716002879102045550475196875615688301896676946120002086366055710679908664750685763673952884774875397141991678332980448643738860976357896146618899939860506170877204973423711416827102603663698310112486200293392734193552568627140672204998389573370601593920178750397920243568714129573568745680716775478742577570447030603107107529053369636694221927862832998341886557219082685356723326831806952182165966510505545529856230407790271119086679701402952498503712405620681654683478629193397474341738482457648364564539689285980222153918951411908799326680528027404877521595345935674462618273118275506674336568515871835576422421051498843593336508022531451390732378256561218661137441046546485359996030237300303425423869267021814955713446010935743766872690169509412090859165875851596481552572506969854488227502366226954411580849096013930535603009271922915235983687008646182686858690755396013032662932856369044097146136415262405100387217576784676459970495206665451872556388743374045621622770487834369962893119843665739253980676340692898731235004790670100616369354681236831767846092502005238015467790331889200056797587849642624867073712463942966388502694039538310092299196172798960744342482959286227690888164753641424517899725930300856128228123362827447289689374669520118676030247478530123704091849373867000065730761960832979704268676471752024704066015220652465509852994133746896950887784116963369984957580937123261391913528453414529479232329047519734799698145472883870290252929087996720691588584999627765178167154199604048277950691634137285796986981526735281934057499622107965746627720654697617057563045333593212350699125209331704634182545541810888235723099602859288662048318477048896147114828068052175432913892082955034832257977244743899671127052971635347032024103799280741696913649252148326840195784501850779952813538115640853666738914310654683101942996885210958846788708098973361064647609128256965497528353584383356729333948645368515531926840497003121572344266653897613231013244510484886657132532875394384759652959261938636584151728508286383497188552700944190231635900590083071828495037676369810007868936394535973164767815243745190764087122555903456951259339847797425238478603334077023735255099482198075808064337469684977650091543695845828635454152561966162254274137799257199583062576824083018235364554627643881533750278135859773668282756615254471749138161704957557722111779035102583692187474308780170762186753905796834344187043827294020872391320179206499696179082538229868999538082549225533052085680705893869132790174411451553076128361569187479737829994972022242075258049418353104774628144693118532132148561748094301174642527757813657914048753619492256925410616239381664935417290728725377959600544211801133614759475394744501665031892164778021357981421105190235573573830852215918667303718587606560467559529917969470746493354678428910723651374864675880222221174613465059872253313578505228068394120631446586817010864663883465819289651253626117033640983320165972852410048477067161564492227291017547478112310335253485246817728909955848688014128976982721317051567880052794616781651962934683223511932481934582139616641814263411225279253733588337069642297920052139861238081231217044944209520780530437903735933360778838923279202248862061707257492207489160778564635973687664365009418838405479136450943484423178021764956384843418360425158185420501214449756851995731929285257121249776325071059813004061892833130187461548422010632676945889412568435289951003024888894538930262881498964573778850455446036295712506797218907686908734358660624424280435986845938706445157904282382920379626533848139438594144221776510722629752864850836242257808190419149793745741732224967293015690990860059280955778076150776842340187765782046590752676340817120724801244191343545111162066975834591458747839205028379294903898825325039479972564531931329127418216742771571852080807816447832700288771499841719418465382252753177676330215694159500989534692969855623215220432397514693404758194597620147889922750432637283045923543979804894035268188039743509955077738142309044445915105400345899945389018330505236457879003450226196319326594977816276467806747017351667899274734895892445813724699830170194582061451567190470712928725307353545016945211575035583840626670920627469363594731467729353916253092932063640304094941992515802317413752198204168286725813719869077603176390900742948052816554864196616990603194529548016059116872131126150008120250845824377530042516643874577258610792058737685859062492770070603483336517003823953963109871916553114879542034888356720488498479331533058736928560650857884636190122251692301014491163017027974487041361158918052526332714379534379725416760614002797244198522407343765965020525744176395785781222528492809666074362667773963173384736139487770514675630145527930772182462640317460302758971782199033595192046957258846322580379149315879418896642638791859347536889388738272202505250972519287495269339525967839424050387833948099727818570285559519245904579827956633688825661988436147914407752933523171218093111637093520627886529263888642180897474248124438960256904981724416987488079651926954659628666355808774887740530557372051877183024279447593913882246707766557345066519155219445634629812617914338497656627939593592589223297725410868810388563046323532938483805664288313281058297514212511154940287983448844009221319861083461250881173372801799575868613724006726027187736125561893632252392825356237173315656718624559449423843991038226225777058291642432108275826949293540682730389032763589200778597486142070490883762564555754749437857180433364932034475411725232138179568980346538122078538299411269681381213714579003747952692368808303750829077678415400899509664526631995024942150751895904611352054512720173245915377874999102737141503218033717493137606554956738294170373080624788909634260643081497163985035921433639142503505912811413349200757154810500512590258391046464146068895870027415657542918871068268075976714080144894842702974584207969219238281700706843711054014499761586326777311634933242114806222775226101994484267697911507955856339158221266494129876355167283057365225087288312110520273125554864224082335781879600569986868957232167854717978030470299091950766187066995603295409870863023729394477007153970868211940507640859901685236669605787004332509937105235270714480017212214760777460661577000566135701329272179550286805282693324564947949262095772727142198038043553271581527806543261893069183072081214575605773144150037963711274009542302020086752684571598737076402323637851011635077627013629285356896742114852476587452743423343232867498334709950932706493636729906090268501875390951839195592666866321708194026414710194005473059762338484532876464988029100767210967965266031562877398190433201894262326262129060023894602037708747710487106062292922838207042985815854979716592405655451139160600579858085227272329844224582212934148672421716129791311356428822736409423510418072967593400927655408285109389347575870309523508582297722216259056743159279164657058449033330412745880938640559917485965804300022134386827366733669740886647892001540379648530288858861489700682267017662094623272915406786950433712127456387028432507295320734904735528781984348751297149789749335898377766229789327297518685404128881720619938485318945682381175631567349081338727194440163398081169212174053541175986418200567063169488036290886381338371035191109028988521266944980293385385201509540561522511240281739708326600671714871992212589492347112519023115621165251569140810554929932600687610418190145701008989411257042905117868321964352731853386430954640698078373516242569922629811162352185646466871890633904342465260607661713291739914002487722806126996513212820686943139857049546264787512761687236072186226352476606666834125937964111056677384893798185084655860577573203620414816709044702766919658560484596503971830192572365507335847934328093981694050277259115204448427152241580273041758013180070359120750412329136480434923815409638067244595595060649856180448278932514003677728739792595869992530658333962969610803796780743126212035763204700979389518933837397070689984029060378475629415850435804655940121163933302272521599678256448991437055263872198384955112272198446477591646917800039482844305008491210721863491990293310316090059756661286996534888001394186612547285638444572830272807130621581175334988199837199833329418595398690786257209797645241218321356392720976690571432651930988276791823716331961672435491671824049678600007505274361401950825470437605451419075973177418077782802951838029605596256758738445727488936521866476204418231273109895017775355936778232623901180423651918396451566611486411621976072821507840205756915674859076984260481120294551826409306770273501870342649667485734495649076494511425578539313889662131049817216569699582939974559815209265191586417526778577554996364929523396595845025985391063467093120973599777291827308053285084503944556698045480017203878278283160390875195151931276113135175897724519126729424008067085999095698903365364150560919021585961071234660021388137022853217233202483395874738431073857814777165326411396094479514628889279711651424749551515007249472088183951452983874881458177916734534711846767499406275256050389410550727401648281193040660738417044062244203849901812168503311502735833224338509551229196618395074518789499967800878135021958634190229724894172555350478125021649751474338869334760273706378353115878497143056296702348923536226971137788297227111733932481313030244793334143531563355259459693518463472108582484124994864452976709523269643604621596667527258963869618686526245586283383795476462362195950719560580051058419900650019379826454354538226103031942152360366668818725963744861434590366876530045498079362982444943844798986244568704394552548104672098655350439893294730619237771596588036648219444992686351994351453219809646624478906694860071770302644931041106889226462940646722310292872899862499210158726251838523774076992922795441856213914134322462088691327064032079523356595817602823924376435869614002605370820044241997385782626588510150719222402099394430608958767794232036040828021490865903456249100591831222080282405940402321152841593808006460336189212662133736238316938198019963688759455789777924406125313411351595461204242688718887418565533761231184328292653371148877853673882465272949434152337637392586656518475132088494662417266412097236833662030376375974968352735409891638542762522309895808155378232159578782338727197058318544528607527733413840532314730432354021449219986340949884928191450450697646878654974873964382934194022408750243935841594263211570080945590450737824240310402709924754608045299134900490687111738670336745440070421347051391355884880279131531753847080846680785029458706242697800166235793512386582590563627875031074677290081684475963149377909810303958029299964560974119200000263382806463072145642069602833827105957328016295303994321837995071259223466150898578674018478088317104273396523619639115769266237293994874523973826989202198731856815721494909873103471821726294794132036929357361886980817151507100808589374599446336894990341486234157631188464581542844749100377187377283405701212486154592870092284087417939259602287609500791362259713578015713094673441852579891469717337748974928090020415343255844077377232001940241369132011682705290329153714869461432428142449146079923864993941367209817258323008681592616230057678693923796899145011427419033855735271145156152358240594235544112989020281370135440944608355824125250178695149037417171662214272610532453703182383397567826925702260251546445893169554442906309018162668035980705364048401366118912399418461634300036670331103486410092988037903855368047899151150593480075763630473833983329782633136905009193774105974617491273381013108611218988769911866502075015230729690956763011047981514812334427889499026949895860751962207687100269676547344255435365233572427085041071946858164592550926632189130555232656580321174515224744890460239192551991849702412172364326011206880512214265492867848022478804950550421208382411917513367865208452583136816662725025504931813624286100274744832469902240367092088753327521591459260805610067645411648771490642067914374368927971861677682894407163567225215354999256784350109315778684246267718783975869050610831674259623701712065376840216294023092883065632903756353152913867732503156460619139593620858522427492482283959575486967209970672890774498400189972404079220518685362450440887325140385471148904314470041574754607680853994475328012932374929286876965944303398372488404642720715862049675667730219811812349232817590740924141602714588717845692988321107511396757508573022314985974996299706356894173048924302436481186203805163012750031268681745119279375326763460706248594338465474513536551914775862283657392229675706878070481059359619064019862280177744997066106923061217523794436565599039827144983506218300679656074386172690285851309736519979885994672832341997488557625734769368804944138537815553252262647074490058906586679453993169059457271720029603785962124503354419732024101454146235389484521625155374054245820205961329720948446574370575948964571687173305106791248901235378644371356372425026739026555838721156482201763399396177143574306573767774290487626093297134073702932788385052442092815704967773890567534674630016269636378316094846489530095649313036428658187873164389165925765160935401875236256821399836130916956052183409193054563164445131594050590216700036092306042400946181337041696251281522546536108178599790094995614955609131495696966928308404594759716981901782934615130556349712199408146308288442141824453322754205527657538643075536051246404021920738795594150886797585094613240071376129727518934046042228473234419258503364246638482643218894697614843948714769449844714333492771857508502367761106035241025553476388726105436957910952193349023229140930604252676116336325900160725030857039087752165747073227664454234488494405244868654486427027023615280761234319543871575936222086852407390122240022639781295277299867862735812421555987824179651245062399367307921061362031325418929242591744472023777612078879098545033539978857660615874614842196134748351785433833276123450729708236666662471603062236142566976202914255938530824492800840682925951923705675581721218775888399995936115828721526534557032048649989084681470598980324180339888981198867163426140089122458039142116914740080856840010086816051693202043216956129528744428099713984636171569046274982744354182917254714264818563316595889593904332715820147770694853581678662225787053180821685606432947246854036665659467553064745230991569236725687610657974930166867785382170198619781959741303677054047944877907846308861354793497543242009135783740550272724373287411352727777946399077878259348257668001591624341377907430493509327614966605343820844651717805984636876711590347444026255598761937091382685913213182083296867172566760245469916208325347200842196901128946575287378940787898783208607473998762322852735721305687668772705408301837089725497041790044906033512136832628235708136507662172710944519525878674727904209694748035895142867178819236486837495678257068737963774648924507330605942216414905102692019995246204851294202130097967039222666981895152738993615521596797296728226701282352791000072201557775069427238359335499973066251184856341182231073565126172992335393364837032720243060817012505949753946473159315444311288478528830120597792153022543810549064959448053956265135675014834718292472821249400158074408600093593289489022642340533713699531230660649674203631219863291977085294741872599588223395320993741640319380352720132395329512995176831132156640655708387292411478801550899827211888746553377309831232579810826634133899659101832086670633277339812414393157416903896049044536972691282158361120459115269372038754187528012596353741226299544219734646038982530443243622800281592239563178744173993175940528251485465176584400120952163897655223481750312153470214745478481522112786903515229921416365313981157745554717692200865517831155875852071094370717584857202433014276948681783248690945377572575209196570886465605622106643211602029867750316633674835453046549576734989475526504392279022929490732906472344147567224315962999027921998891345519259562920491370151346357677904305350973476700978793755855289375426083015542989672656771127386456573440119067753972102826878038692881022434366447720586088580737087347091019374898281295650018938595817782598536330295992221532348573898563437247774262763163715885996900788336864819870031382080757203841481886361036974594271850408293364217547199852608194568005208215746579611435393065136914901890666318453721406180052098221041407169957535750640573707342443363863790208338847366883875229324016365909422736146373390910999666886747607662029048604742629254453331054710621616120996183467129351007502399106904825151550596783239171845885034388981899659875182616280624388701990829688710010399615002708911049669244622905752971884030087090778622850311629479353411584008475749890078167134409782126820426496540281195333471116992293559920988468501762858004239529543384397938038514818801645393501712040452270998107734120726727745256418055262389347409084297741530854878605834938090330808018167717506501176312820514327883703078082963639382299727902649152327557124780342601987080864028375620713709372342456870589596411271463742281617508193894953436711817974503697912135310671101442794893913163899208429751709941145542375392756017166430187930715441501623494022545086054493674769278812340627734287366587736148705175415607822237520607643806074623078111667313876058830657610521901267369104657761121967164620616532239095131150140443911739382019887566749270155027178442198085937676095787371846967210531192835042319425036801741151397435081272961993779551232948733982081506937199655865868989631091492245797888311193757663405992387830318792910735711894293607953791176442643368319214274910996990893496575421560365009203893458046316452056858088577439396833366940424104524322595105909674219898525511910445115742528569594778915692548441723462539606313164417461978003854900698823508519151393890434777320879297207766627779786066704348450514813711711147334081050223109577142595689796030103920519992904399122437823625596659088052953669649392332556042930293473815439183529544851211085596547610103080547779870826010586502100960452592071937855135987939553751749139631478541005294258393127775714701512242827056284473507438390741418513814355572547674015767351700209229724401618118813626479057934837495892219923985272972458791075753949475615796119687418253406479207145727294936766998865416047040687862589050692454793675112628471146216915058227160658445295115220477884655719848603623042639591883470644049544385793178986786310848386783330247055667352381273338081073303075261167234005155756353763518778697178312412855019451416494050025905914202345422576234961487257850414805215318606640788662868442695907262409720157714108571854717145004248555630428412304501095214038807197829688696543137185128229552355179366886709786866621568403559112627304865611101760151105689855406653203127190079250327025601875019282404524639961045568810760788770960606456768070324652448598851681541300794925023528831666269177034423929774099359652104555652581567593126334875521877220177168850576196473857989229582457682007574657774632069601486582151318636058668245285888500776202518579256066360018235548358151071761864333696154097322488459182707398197744040926089237717353865288937031983649878573507844170484536448495884120609798405726599371262684475509223879526605368344368600164946961052611464518609391535611088471864328640743969825703683428769655631376120148702462517729262813598479685483750505988398059442090645469875507438933644410164480881958458124259361001505370628490569437519288330534677588561500281094510038883954221905700852278255172935633443119251558780493914953794930472958412193538106912054890085610259394385718205490319934499218115245075929210578729663248256297537833236969792862583132117507354053509732313480111153491431990332148286132572789421337996988666983461662150686970409644934560172271700709184575718994050822169192840138122383946248007161060992693985852740768539742515083529837877122008908353617222530900594572447255900104811433362675563374032314103502740223857822920966851691647608587038231489522256105954990081064009695169185637166396380157818413140623098089004567610823857693924563156937470455577843065268135710662681463603449151332011172585312040592716884826696696915764911086150687435449906388230816272410002346636720742267157116039344704684096775520783129485311171731556175612341222192059579511223992154846962944821767935481290268293589137089367718453570353492534144097780015269864741105443339404313588569930496731414702326366574105662683421045621337006133228708634452554299383013133623641462519230571134572977188664237079393045470189327929882196355013258712912876137441560792020876943588655475967244699814785044633112252358668462961220383360083492845784967856620757375465128926699218768067398859103742377234307363804105153980582180190557325540051607368689158649325410249587827959825186455408479168060079152908349513819304408464913515741126112094903917323676448579967890842109750041168105142379437931742695639946828605808840752675265311855839055667610350866479870660360125066004438198385756406628845302213464790218794650476903740872844493393607671802450815742937951919047076995972846250095631114732229503038924500291312045586935910718342900857407039937452178113813842849196932704968818228952774383159392549816893755758606630392673374396854908648845777233224798878280293403768975406791230968534549848597393292991487186956664748269055778544923173072337272961634401654654737368751179592003331801795201287087664695316015483434614807448409133536728991122481496821276124520382561269138326231029736002725620672026499348046613152468903060494859754501765139722070815254265153293011899776333190714871069625328901088712202997059701819435587133905313133213039121188354667095434641632552972364289936769439142896855298620161030937031718004567445223552936698094771107008907591200314900346912196547635617499647509965431879822796000150053798239049272249484975751948278345154782388638041759929152322013701854615787106063185098637584750031475800892732891592670416257786101545898442364689801814075190929975141572220652624944158414060235871357722695913931851485541737818594375323718856614144402809225005991937117792198014013634598895352634684510514845560543858109448810673277554725543481632501993237869305273210704303631345866043582320034911516064462322962918608708125977028855549367335772380418839950546438740717985500086577777864008606169750500367248208594106028087620501018882904455539413572540838905883380802268667093397549106458254534120471772927804361367721965168379725202657727593121017184160856090297330719372747433675226283233025198284224423036024840099688337768510438468744532613066220000686598676585441771904945032508729552395192858309104120729513168781981787080594159479422757975904596891829623063021314300966965777789763656027051023303713374311790443842815467726688990967940510841953929009669537844711941852665098209642280973837500174884742668922920607264072002293086944441843053278016860014610393943240785591698773702616872062702397635470874280756544864097917584029005207897837478380973539314318342835388563602719010052737749304545381685115600716173943139284844736238943569254725972627232473825257224173658834596848100347075302870704521085947981130238472033948738798291547081550230221211415196726533754684268856044999985521627991227072751926784356014577622056803358605529565771314817051394695440653025728483495462321043136541778626170810427248005890755415162991081408872858311327409470249055997503859187722973149063537132031824638900930415550611700859283462510256001121103109505040384560212291423771369198270066058376716785483390053323409192200063901645301066130870100463271429694192547647814539470424195878004091661171889762408803716843490849309198963999792427662074726011397534992411123696147523449010234462144032054507232154975612792808973316060263952453655466929358795715290839393802790626265093688533333273378148448822151265522808814722670606389077716773945543726183052378290209820188040881891827135950415301406695537498232673335350746852995150516642541498687766491410469306478319135575909212560593590952656357219075525796290402137970132002078969652445644582722116072861622460639849253853115759415496984736871789827821296083934091614779343744961293264994518194589719493601338466550163924846028299752237602801194553940494771489016649013738466538120360641620633154180233373294807706823979899814765925543847969307829288156497393902957612787725218569262498390370961182119698064423757349447356342235062692842246890310493319386204667456330445962216899153856959016226826790483596365844108328708224587705531703646998758721926205565496170074728463211793188062777150921599587591555370018986481293569369225652692212882322749753518117825544584259226250931153854211874324687853855093485415696086592166323275878450701260787793840135221928387964766125888578675861065217689636546159332854177751803717926816267977856444860496652818982313302156803527085579205946520954447816198618260107451121447225302677070076573006725073185951363876818389930553356243178802204855424078967174048746165767414226323310954287547765827821207988648242873553589475062081101966714859741343363056014591433899285462248199895921289560945331956425383561168261597937274524871464899491601269259427582783452767820178702646780279379346268419501805478731218981681829430566359888004605452118320153893556425309275187317973895971723412265461949452799912717055073317903174040726967756984801964808811973877803470766465571975438036173552888006039258016085258364190673075979836323314710858890256389652299123573364682201474886994087233232913019295978133583757320438074096751001205794880060875025530328425058472631461438205283313355968581838590922980141889811574575138303065671595620487474368545882806351905735746464421770552504103953184646269331911966336006612618108945774634403065356091213925425092635564539737430212931307954497874525519210194575056364885130044206755979956264669857693003212398033704312201241640321530780891875755271123258908455404720874904744174822857564591674490269924175124042415329441426012347778778746284651512804313766192326819589476884913173198911838198838279258878658727349882328977193753437176472484808691396298982459990570173229247607611009293917903881941517664631112162385403910264433154773078747495834426736286334142924774532574991626901518209338850672037795837327195023498892277553035222888296387143231440547369073001376370384913394632124760066908544300752644568732342948317056124852207265127695843192805832464755766756718424953218625272118620465871700612166931681286694387717237759322663127251022489717736567547687818444973102476933484369971372633955769769313902780939364477944004801712537139605058805716766414217249808238312719295012666811390767220647866756074155241717899992004686080666578369159538276546150883742272502944427287943894497124443848275710364636380572383899804609882696074790183536040569571261120059852244816992655019562788980274505298162721494124756517336745640499457674832874147921978965990858678843601549054641574867275591718024973588473094156182945658802414736056364746283203172212261279886600898294062224384457475345074530020734096889917038804697663123473031745827508319263723018563099025163415007114972898027940427043757650448305465848325161419231914926386333878910010542364988743733352546136307870237520933409082807627724774309604287897100790393159425126644241271889448892578641555756426402081887609962991461991040707537306940259344310784293258853649652945617464189861987923493945012403240344743347934019898531747443839855653433397571341105678044233865650699167947066893143965852156738402271313886895171345946904672513826529335237075392819719234478449935507517962675254041983688738468500330085893533958972567874087143243427469034406291181101574511435706375868556649540026989866117206634210148504907508557372358096556163280288072335607506099232759163749951715898407998356862451971724567580251730243654744048056104376452944122007347026345921966975299509241915608935166556625744560844486720923241685383545180864369822142236460071173203492146380727982319326419274437337590107938020477058312159916385400289863512767238567018802136883838535668647206212318886713781566406026357729139918140700183276532706770775616130083943144921523596740661052435741902339629299326753450366250496006662039692703797278773559006561265963216894493279999795812891228077061955079720794980607993680203840201066316369469084941103337495105185873705191247462390704452240336137390753065672059705685664117987601766679808182824237217442713493521527491180503552709847200702116821910892079003412092915793867252015619238328886699480861076117024430516992675198488551489664674474922680930280778660259684444738354778589610400853325133074559182615106169366215037361890753769189188283266861870660519864852698531344639990492810809677258142768300205155508325745474494689662002991041069998820044590662942743193582045843004931537070438847482725091451352172880427230498126900168038236148020467940853433556033549023379406557308301185989289108427132653594552068825594613745774126466327524767735823749826651368766835103319938493731891818907534743070961882908683045478733597613725975190928972878217311282408313480622667636601197611892199452383665007222588136910754914767198769382666093192869377610052640418177977191653519956556500060998235738174659322063610295087386396639025974683626856355928329835651029951374813168462163073635599475883107432010147267130375410862010316411690898425084125500885241880868270723270649642655875280496302956618950637999382424552537189769863778935548020469759405448595118122852795159997140348209734040159437367406348046062656372208903210778471968788898771049832758562274012511522934794319459457555928949189227552153390159572551537626513740030538112192982385336809029938493384623090935971565355420876375330716828708114332711072347169573707674418475728172139230415654940565532751731508056188673052225487967986037763173225018628800172084803467078688464794219992243643066382549085602348453958800824006506668458413518834571041077947766437819590064193281152256432116824355942243611344093743198107960188483853381336451834549430155070755338041792741392494914610796717530799733779504763098260755821605889092619040910409471680876707672280763154441413719685497183765146180457529334168158754797460525206266348512433154067237928781062098054884648955951164940024997318268282407060178852391756430816086786241566564449557321548915081899647096833279920271156994161081094838086766632227612153022616601111502732635029511363041478481412728708915588472963970625739461637414468571069404875478897519492537148515942603248809066970723986260445377548540165626700720976127720914821879821595087976799845890429800850371247722902747218005894966649315508324166250102501886847342877353845485989731706813923565766942891485615362975006585475486954211639505464470834909272791700200160257130568089447189831296383688200127033936098434802862399539458135105265461431438370466242433247174034183083297344783394430281962707701191745708359115460476992414550991350724294925243474746694752137680325506361834277845227496918624522463565178464825110427357512215371005742682607940027463979083288545973690934313541868633760758661250447477264166024840155954271279783601801911795350914586387249643039233837985045152567432446670757886110622656935826134683005891654241024384199139825793574130494927075032065730704006325812806780457031463091297535682892073522054112056994590334523011228152262822052239069658090211945849063519306034321672893042551929799651737415440004518057568284544983838021533974387076296150324087424788857052440427532967239884766858710843525972000925917478246057515810557771406997561752783678720593787858996678636616712577654188707267030899596334026280557306673931860378531755980724290193390344270927799688863749653695469167249355046727902857573499386228993220517861076705301849901097863967007349486504852796439586739763099722694610553492931115163906430839177056671866467610391867690155624070463218566624027124634865110163155626128642843622348624774522316825630311953540969491455733842965087755871959356192866053035500309181584188855476738217801556036412878166206770596191332037073333421214860274310651809751462650174888640702517020588136346536688655493527863125963184445968457818970072611484935479918089698550221613233962681564556127282475423811096156221776452349324832309658087897795963669495709076794958829623451011792391735751214104714509382990126762519658678735125378052922431073347105806615068448239612918902084862750185489885574388687887102631126261895357863951113253677563893840280082540360098990497052443161191884966256131338103569888679436935282573864717529320256099597829057108210032114987045607616562876933744316054405572082125204460617165782734203329698392097733254577600257726715532644403650228813479982413109370714299573028482130419575425082399421391610993278812068661136519579825828074792024502139431980915073346739780744659369182668708585749681616785885266067571871293136494792748531185601543123237066581547944892740399199439907144069400109054867253649820964903535090391654436869156135662471636840597207002033096525867740603657339383533955575843131397133187032515036486868597995595173556231101552778253358228390698724469945289343103898748174649659588004870198787109418844239645470760179200395379271717379558614648072242420907936477569480278994161656091893020004574544879420450984745129099703211176995128565057296089782861598871721321120887108399111026605897509377957054208970211418211624154747446046271458188062407825485856617057621382836153693574997628655514234111960788137908531020485072590083775412747607750363358394178593433461320922501395462844653559519421032148115302543195504141342243726903466363973117781407845356636603576126643681019463603125438779136434972257974353546646946672844935355253555106115780296132290858686171435830275713520957677691256260782224855327771579389513991671005617702489090473229715004604274927910377581441161152420670003086434404311212283710943938454381331675171997296753454319696183068315052762955545562133615724238124816197854610673918213277550818122042464650154826361745527176935563315670690587992291945899389008572689874960416457404087494580586868556843816613213142553234411800698933938693272931752273686121157319339360034973145257474944838679556420884215053285328709525628614215805582931107002164577470294386863396416269794887033611778651744555560141817345695871922829801383529077812354207479182118069977419301188540439474867668648192402409083708188133667596560746337438997463933499503260228370035462560916762834068785170265447956927374217028164439754365922854149029160175575237387372020544526451411288907527223910123768337396765388036784964278215235136576660915192180284641936957052033413390071003524357261410675647883592765313509324783756215598792083363956940545780132652513112671389206349190607248452259535820509551788718210638971058940854890765844702934032709868394365962109473669629143596973194983088144387671455506080510755223067791578600081286262299301395338434201151631920422292273953042369632308106218371786296051880116083573193185770903109846556034111133573992587886587954993953522405739510959712517547127382226853026771916406690086162741825004394893334587221064865297035113465237861816003489276165703707416814559118284870459946410331033637667475357891544476291493882897919261330864682168479325198236770330296136468737794628346984477945117768817540393740428139291926768155436825675697290622664256466208704749135521573013408994404188110142715612248768845996386964883889905363873553113924963719105214508808769135563853303712171910062637068589653758803108942856357695273399830081375602144336130604217019956142025676225569300761091745567128441620749354253316773819992805616335257750225961435822189446310716170387652378673293819194918946112055080231818757012632271156476426645298336002149755167435981818983186022386839977396967995154569228951804847824262142088751046332326439263877045436706544164394256619981979555548001870739370187555302305205274547508576094591788242062478206336680903098846522963528064485317857200003629414788203976405806078960719149257958559661654795325354922909873895777869418601603523044194987327633066297156985189496540588850967692980934860273639340819707518433124285777048700305725015268954728387131796156826737873996723965347781813409906804806135926458425411484515941566714896374629055418168619241189817140521617373647877435587660687515363014790402376114078562148010028027767258570161100544967397378500716557416126316482418817652456897941165768159495375273818927608160949165690612720072670266871004863438622783843489068898367094389951847145100283775180227151760934588046596325531067586188975629620857672435416658037598793810088114337040346547622782419128246904729999413466049820325068078818236630756856946015554755683224800975405972508211250347287864239378997076372421067484276002534395238835152247707853702056861098246280415770233759965089812242359854523076296542601791264132584862205565039212259475795617063194690682360796565260913661738013092192400906858368184370447463932266788348548093023315216869680512234283291352405987426135599210271914938472878020603871593656878390473096075554510109398110793810752102273754553863854785335760143597005807289154101638493894428248989721462149559293440186144394809366794454704971234574231237927634038578633771473948187244419081773140727582363659510757496199800412824021399726216202023375775869670853174609280033003041480016948638299489078984682498171253473830025498983493805506616846603776057744493657146346252511411923545222730399242540922403558810215863820816482430230001085589225508349801232515373760706476646604729194182409728822118356607830957009497261295518710930654932874302352765575287873581490087628338804962748426224395765715200569367428641565004677193027936747652827866525513404259039988418714917596102420215657477257796708862257369371481174614567582318456022668452640625005832717601021743785360240271875927828016023444379049126821883076340961517410990850573322321661732718708679843123635066479529035171442684715231374068549050390513647383544581068520226295596328355140802213762236639168726222573238885841293333605130072049744873349819509221752360327733624262685946836380868203551038947915704290364458082909009387530298024364631048991671389471087952378708626573151539361154500886033402260626668278782013346246669992425798672484489171399234356823233276429236457512838014323342239754508874130727720669495498436432636227574453518763867013158463763960845294806049226216160834196708457960776027910127839400105008406129833464733942837694944746943807298402596172327485254439083094004786032990124032211149381744658035936950297875866230269196839125507827395737024898171701616236921943038817581478925407408148243669726320503004308136563150539429569531499769495579019016031903740097498617038069928221391238792050770158129723935309887217993548975555714786958583023739947442103369330567577593404654591699405585664649381320439514997137057699671997917053874397569490135842067018799022553328254488044958683382428918140751148193849083612829253490797319114339280152663704510486643634031331274225538198872867072173387421848837188687150395569703780828455108592923672571254999618818294981883651342060397615789020281047813416005262101207463323493432535252385085692722269216598725302083093775736170849492489831657433267320753195590111486258849858419870142203736997388264706359847104312443596538893658629477371498167108152693369745518272713326831775589484324966965464928308389287519949503203876902936788819203568702371393940417087452052420002157972079396382159866665984910444998706902048737615568939891275446294192292933729933339852229597056400494196739262973046536471885239033811070758709226149301353304412146996608223242967829326559089004233178571375910117328830132291845860029979547059775849934955076857871617371877987352530393140074585179962458268580874730709584298722497375386364963429551204326523492578167007062723376602974042745573226341678617133697808971075046065121064612773172075660089357769242642656890874784816213382289362492105066992306922885027440175004201633401785987983655749738990898411350827532271693313955421050317973554611750243350129703025000118370634482307141957976536152446892712786042128576513346547330395318546716848216556862801889932456144875449300920194245363273917721631286000528433684168040495085615392524089966405453419388082125240600354328236230114363210118517965738708359011149288449610230108696026606851111429740256639693730162012632050515994524160147032796383592989596355252802529405606080573523562728409054394229477133900010461337591800747687035069501764995544303650627351851375770856151602888512932103894165052665440648157758776553059989194448190521244957932354599896964019141002415493806866349208420479731711698935312201222464848150423802080401157022472444490003844992182148822677509780517678780373954099608599975968235712515938560210797179865489274297348636570030134599558468365241152269650057140472284455286121985910607792524685690202798455240861640004941109766920159717263442638248068382948055997196466507310476809804468723496559058247534541618714794066200178546133189099340298853077725930815450807757571113403088624587556920900654168343548406442539534439826427123700416418349158078420770393073122792705350965153202649759132527990796336080337918119033381590590085456333551327581116766427872437823714415738407153421659029098545657371307015867002042529621653440471432231108560444384609568910605478521441617196216760405790141534104137677115742284979598217032685219888601401273775417309261571019225976459151412837900186549996274064979126347110398470347785147116825644562421057137816445605420979933880707078431171463129420466998452790778826408129988463300882801673070008679705400203337628802233649009317280591280851918295812735204589676856888412719289634260880920057363715495799928326281110801622621629238225575901045629109301034358719263314961260342110700566786698580245840335091260978457949467531083899996231136163689743768086109063806628346164654080845968703072777778942895203583254262420349072304135242616570854689831445149658447451810781009115621376680239405638257236258852400907784649239733008241378002114135517586206699833529284207381881125846532507331980944124767064034935066405535600034331155509712769734629268293913343490215834348528795205803454741106205571446770459033527172431993892043426111572278566656075337396921250687338324258319933285172801536985564612492659051846183550907207756678137820538732429773914902574399966234230583127812466434057884189388456350378212671971288694373346450409707498088465947534974604635038323039122911475927078355142143568887651659125694597260889770115910337564932363456747128553135284346399172279157613234672564155848332866666602035338959110098647915066707027064119629019434649745323449074160317020959114430012362508313159819762615301738650275064111226288411507369615056904378540060331351954344285488484166478346563320148348678536619000598273050425926268745284213231709185996209176118113111888038019052767412708741741305667760997920446717636738369964197710511799538346130743896266936933803183307554253917984572422694281911250878572351376627490628368557645808056792369641474151934032666455112125849888836148223146983451480663566163774369962158957532392564078177022308971116302950661013383213126179993406245625431352161990275719865464522616693532177022621167222352305962145949098618738221803142070428946583812919802984273947291590372259844285419100479372192579877549713322823802075508068325840626428183724161806497794292401849779061958143559161618967000258584254551955774880136173076961863344897628855355795718310067375448522480891281191203408776131245363092135958571771170097726385330038314251469996485431936584099911001535729401870318822381692103618704889568053686003576811634722921128390169369900651620886549605391439790137999194644442004349606941156105837537397841866269493210869799188279860083529330250846499067785762841627693055393958743261020711388945810100653163905630629961214040236979985118537706489890250055853539848593857973217628877926043761687761219368976534597906759079708571338161050907439092275004675901890767342134403741479496299345428010008347550534866203910206505102178980973880142798472174986086241138043970787332648136226105743772183878354198134292447298666189133247842608014548996005000794723350345344995848935891853986621422285068836857345092915373980356608212922236237287252436476033272876779909061113111078718846820362609310896145198182645067526681433883162206873114602599443525401784928120808941243298102733218530741432482474854978263405038500978281998005470928982187411224205417615411451978821504422311872279049534964973876510246778671302612527962968561825219660642913210299058999189169811010777157101842385468117903930232386417502153402660077492685312429805360004660633399548059819444553163190475662989013863178916693787836325769987511048814827055820168336667684450368431143570329881943551578434119858347584116090593115696156695777909000074973477693126954006975423908166322827139488131850148816933262562330415189687047867389349408057911037122874640763643018395485154692703640427338135233944465786546378497637787969855977697174369960589484858356340423070892704301798293016029204239890730018419062574649651584652911134685401171766083742344015671447152296048829888670880183543462437043436071147549027941103830601374343010424885707383090114038736320564289248348651147808027386455087976511463082344070419120519919297705438303559783113597608439112955436150705420100587870123583623046708571902732428841775463390705290088861642511214481678118591811045193164192910850993168758649840917599680334166494061501168765129747068439625636510069145591442232413619967468316410426439378288837146250207224378519846475669182293358931412572725607876173824845415345743797194431045449354177296435231403560248863439619525861579999347201160403711988757924982474462688488421168769654767351651216425574535934875248592526787752337661794607578245663733131778311704326934483677882447811656782948851229214869930976934755475987085920536216366718407474657847012848997897457819285626199415565671318945723295394347380764387425751029260576335013939288601931439768674426097364622493601531111324759377495119568139987330087986077090375226206149171430894076770967610515009685509277843113948047944414243448332621832149565944565589211828199189119812477106752971527940194297961185565125649769288884945735777034660137837741752802493248512170568171734564183019161897406064436094516923144695094498422365533925025387817246491796603815396034872575417142942266442805204996260928432251592065544988137428561095227045771648170756148989000869964450016726313924075924836751980336836839994633377482661900195516053783048701216022985650668015718063579608398814655535709119480963811894941961182037485107682000106435626070929918063441515021965559678039377762593836965399663058382798396392243217239368102487409135184047586535838805422827897995099022331762122198858962729713866818703533074477074100910616656043491439716168353912805090844569211847585293705348048503209860725918789699381799518671509884953778354823824367972781596125991585126574006623723079866305280536500916591073577744175683332352915860933493537701549065453618967835009507979317188033068816615310795423117267259210935555084068376077032736986376350884698938019231277023600874051868704663508237289467768490292860217985054564413345854967009245669162411663988122783529681839483462970579878062911380245009265848601010705267871981673082713690235530677745821023127994861111880487457297054887462264907296392121848616543341431994574364567463604196975239982559291036711101279303324988728049879307276889495461757662430303871970990880915755653184849105808139311034259054270515543493585577951503292614750160772631748833729788221150114859302023076662342009941809850980278687786191181318088445646874208366815697581723827481279892444941835341200775374963929034900405876807856348316701727352780719551040887068727256266299613643117749662535645132796215759429544972918528974720430205918023295862185631785734541470735959966080890177778026021112334798637661654157998143697184311408258964236963060744239277227838306431448774637261452643227293486375746364722420084680205253343795410481101893339293427543397263112361288620684520820466317978636638063855751169752544174614548363433760956423319382079206794728616802040387196628004018665109822699454353052050423239368912059667590015826163459820649674032093529326334582185547841536047336743441116765612936731014099583669930612360582124737415148666796419340022657296730648064244463449268652840831953741517061470512726393612461473599472713199107886621874014232820500018879400679257907732417242800550688800536991106234750089467491227257353299667027891659316418597633229871498134568904694043650370830917463645286170932296776758128380781132003474150040654709548720321150014231459358344372616558140301575051618845858366118414279107804826749601740338440312608214581474169404135914652527551001519886715682772386156646664497137893662992528874225343802278738535163516639333933934208333080054843642084824706984365238488003638018760563021402202832174140958693582280289483737512117447638711103320099869537904469708308378306125673630317701294696726327251194390649233904792397660890711693732439549806551379808290833505325450453906226822178068766638181045177899587946999278133152777494419234653042540544588840871553131069867715067243530277523772073763698485706302637546859794753747632187882262508496460910324784607407305440739508249999346497368841643056519446004639334999314653398770486285919646657596662728150483137238556855279140367788162016890960054147864897694790544836282387071594747275843121245199140381148026012903687609339837849418307152773903733498463276145113105195876475039972578015750213695679199063056520617974666607676136772064569338991909305580347656087879560486298975514991668946742205400122739959639613668029642939972296485775682187605854586849387130154672875585348388255293360503044936243536688342606235941243916474551741302436495113462746715295158754397088845747735108330352280090883764126158877091084595655951396604807096785225297411282543830432040162657979135144180520881701129436418444757624239765461384082210969538085345447635844201084087293419587694552200959640549092247835996786982838306820532946433780747861662413989357144589007192391164062751520656341338118202433578314097281617729188931557020141043000344218363213048170528712185270029762774036795363515673275337652877338887977604133436952760158490394437867180705876907252245142905788147201554215444725145978933871430964695464373036449614169538628687060181848707230433859922596594954413977227837532571516587912885927620975124569031654583119573963340480297604056383228681472895514845602647120313512760187462810986410784285341795190951049336365348803876459722165295752046071107681209125021891643550793977866871738369306970943331946915876115964221674646946911818696757491005104761928174020051727519373068614585634603993933258647028892997523256714553752360715769154125380598387823229069594531668296088334376079358478611156865173168817134339492564232282072595817604880748044409805249964310798259572154432195377224375931959542440840710371660122322463334687331105476262040325139181734132625022982844417854645821532091846970681535068731264822964133067873196164864703264205948158703336285132297430408530793516195995936959380466574829857923213784391266693623294053928144034734712180250515926585399586114122353727314026367362301772975783038662185327222266300968869739622284641512966479019470851921409729692369959953358273561871599040471864873495066598323757567801502378373927676681400634595343641150768293268456428870164876481717934951288047393354677946439619332740420490842043494554681564346069296988014952674888754266289743103486895920456159700088889738601874457801772634119159308906388405619999477224756885417916965495752018859784339037343304278580161753661899709432533306241647653796739498214619578422713009222954567299835836798550388919895725242985003016980678829141432460653032553317764297530198588616383603224485146614245712966954353989276970291080526752195923667245029784250645909387899483870885762458864743071663535544247141235321499293897942341068134290282384190346490654392419855404646984409724356847335165908308549432157480874590758794848499008709893321993164555204805069208992279039077158955941651579895468811102170912177775353908124761274297718050053757935321582210345639751038903536914614460850988932241482792106004344015904715523663357922992438772769386048665386796910512811212665367518759392143221796353232210724999007252400663089941301050445499984739850286198371620112007133876770675850830988552679366982831453747108966507322856013559588464350141528015721284479241428428340482738403930383117636926358674771435358566659749906654786521512989751859039213668058969863800455634173471311378891416728580417315210868095580230239022025199843459498919369380448943700338151578475801949397846023439559388910732978782836506592031074021273312713996006533174287097666082858786917029608661343738057411935024791774076461146682854739172843574632717409014128424112399484356427847798486397426424636018442239077777529309455198351029776513286880237773671733269828807715052331801748032919864252005912656637864246210782770462512430000804447226746678239531898909001482917349977694796850354866001885038931152919259637724345389255951529946742519120724175300235649290830132750397025622525958666523698271367724420887024130762120638730530861333388492869411493820977955125493579433265887863409028820208730610135645075409395018661196101885551673035720319513195016916055501183445540425341601624694692153088863136561287121760228763791045663091218374858641394669485630357349504940050809637392900685339434956331844605405945529484596069357639283977436062837385012729250835832651686351815405036326683503000948740772523909769474870718212482519236840496500734113176803348541331894464783792055368347519176285569135525639628579912785983550668121843874759483000800669649422650422033555414754261152576568776361246068030032745765542002614796125116015411560093368749141201284078770588882265729204187533553646990521050460528375141434247677034512691152864002023837888492441846065975293959339702843941264252704042473092846183527881263988236597136437907500643571178144991825133681212044762258340852600600446431962523045826174731558211825156961133176110502958444870214481897092894041872456943730538490658512320143458711957906264615920321691248060274093786646114332154244406749839386020861885514352060751896171772416027542356789458981416634894295732301727193169922093706899158410031217277823648137772806106277053764674961601531952627148665077439667401407566619272981157622645459965588625359397267053474684999393680523298092975473352410534828671899676031860971784656575063802418713404091090296638361111803081938894303590649948867324141888290672691419546072770467861684537844551282146420012831530118554148767826260938796236898772037631351757851304562963097936559766817068314451838486981387748598828532439742451018724056570565795294189152140720813591015741620274394212358237773867275958669785447835755795659720205086204485848685080355679889369831476232170540126474809748570527198394613356806873581461829818681961815373611192982365521998243694811754458723910528956010213080444575222046532341103016206406058713570733115274458855882983529215598646083879997647057313313393722079253060456560847192284428995847103181351018860541487103654254809737088511247205905097160775350170215634127349455963702984719162262779830544215127154263694900240594095023913575213978987950497504413968087597273435082844462296395304672416715399366153532491137038102856953398967040661915780322968598802826248465278602303232051755328199191885807571117301084390645881971497199768076805791190010977105302218260123598365401492960243314909662836879947131716536135484717989884357720708688416860091882008752772325344613605816495901358870443591857567407535884761538181558738159734415942056099873426627013446140621026813155968939252687399671125760721236135254109425450011943269853777034839114932778686132726465665089477684150845838740404244391902298664625941983668151947280430040270151568893313573114940488787719113274411794603457148552368238626108397188829790948074857618806574602155414498756891205887839970649548417199240877570755831406271451141627630893985918662525214035662737949193237817883361317647806701724964838133485213244348714450564673035424676127666763016622398488903983597002731474622094441672908315413848806152357347680035890207158593636178287153176058799975966741651903791701754930177121472653383276873206949797668085196059714843810500834373046282895888095408752421702232453091587502381635592262674496885763045605603022315467549188706518552297387225551700224153362060173180570988868150381183620020630385447034141017304943510054919617588938391802992275493910882997400921142610866594578328951233201257489602802919450096218899627469636336829316894095818339583331680454135125665055680279898571747496420118770349232398165699148622095792608323094614212459267403306804578054061908673266775379101204990564683261568844240475908063137384874713157916648837937313051767471430388365635749698394232503575430881137484320450074374977207921351070868047508800221441102198755321745725834427813079323683270833979540485551292167404817159410982365064053186928376537079303915289843747603515984545138617056356251065258515202746627032597819236403199749951432269517333294214096034804694925451944350337228884577416827870060742074118962094188213925514821777863427789788081874878488321701654077992061211215946820040236841429879492745175761371389753032393275140944294712487584183510460064160412531568321107919362611596733177486816859246085180053219287564748045720291866382789151522798120937232782897988308238229091977586890719590953343745394033014744799474060902692931105723610180355286092753403713591981296153365655222427630500779829762215479697822220053944851715407274683688245919467229903477035117111133871658022919839921460784233581763352383795535631208857933085491434183587279912351876829765738040257041110348798205701319868441245688091299036044239487895245014980559670058924837738968258163667443751129237428397284453241304597087801945469653425727185145305727502654082334187942877712682965039159245557385089728396552671567535251764157306252189463598565465536100867350970019194946320640245831911778171911206710399099400281498059092945625279774062982970977529821058172392211303397561517641112128721672094996051599728287558051101068129137179214781174001747759387051340304643640482898009566156227987047966974897051743435739733065256580052551553937572153261895844169419817647005783294550692256730368777324314290970422713792272484816023275650689357480046444182487489942055010837956232075742101516132676806895695395144954635258174416283012772471000889120726568112528906663472006047286513504357077252668968082953014340599802196656115927661959834925102342416970000363738377181414857548999338072574506648462770123215754414943773584386379184231807095605771637026426520664655361716777353611658203738963736459694623358105760623915851080872763442068988473701312660807283966260531177375673507524840754667214844601811644585364579297642789144337742033330034328096789980116796231205707334895787816016129726043116997894083812036641767275993267660702289642968697170450617951554707396543913710436618513597474441511649756763307415742473399950999487296448115591602164654169403958680040350594492618530961967928070524635568466364598476972833156975692727751140036202052738847253670291389742418630776013818640373666117511699558799407871414890517050304131904204456663472899595635467373204304462367135388831178887329002155966753345371510749067377265320373730151014970055330633855220633657313892689169967271144962797965834651852300714999242117719322527245236549257820896579395648666781893622973122833057492454479858573722930583719270585784536721171575677163032652661490925465122698355111198992134443968038935389994083476813523600081944117817450074108890675583286842403279840344943348632653956776762879372552116243818473811021070526169243611716004520037657169119289944656791056026862805482737761438921860119245262774854912154471114217547792093591380927170296274264756562607279624248430392613533067376079532509113219123952386721434723152072487196003863605831920533358527335640044962571351659847106062792215201015946865528229120246375670799047739720639214208876213981853234100605217476403917218469142043171516949801828654534712139376993452465447856001286647660939181675584569625865906432498549415136476438803811246830921601800245276187971697423250257011022168298093777757495594216723375680806947420512266742747795624826171023654955884474247249637909917892957214093616891438400045189920391182965923215293915187647390337006938581784613794498115446784554552562413363456197528678154453214320594709746348680098882931247496419720031629376135480216873505757801468997705962178583462189013379280522180318383975869482991865270367268483778892562534005459709053193932898082203564356324115587847810811781420604678604565226086225185422357132475760804181985453146467446923298744438510177667472085333740383228555350765206429731907129279473157240020534711112304118354770591246043734369257186117623157534471788878368231142953469885193328398875332343916028828441787518524576994838427224762992630676600564983599526407899119419284752964983339565381619929124062667366594216985868705500783501143920557535032473242629629252574013970561312594171518829078401791196958312495910918740327343090003678548750527083670598179944127405147942000495338202615531832707742856167578822304954021337239560898802439957958404374161118107274462525922818942538099261593670459218084384478846122141637003900525402982278656369272511307918886688722185958673427803333988794585563999181031917396408609365436102044068047543756167733923713627538550603840172769285681499865696535023431228014850788058766072299928522188349895411153091571065604341018414103199490554548721720937816584463050582253063293337833357724974814855000675830568003713099873760234860159854733111859532355952108676278431083423511502068533885955827588452220916529546595706904493557647390344980762440643984308055816760814860061603537943657566231947837515351012551512140590366974838346620008590748297317056786991722813763955484905464572324522368487087989727375543226371777998894977376268877598160181016258102187608407638215049334474293565044919083600081412412918486704085567677632767148731211289170483951890403201611147051439312723187572671554856365491729503930589059838884630102168786545412965657692675289432420929946852367550178906358255021418419015620257748103718635093212901103394320866433620358022011662036801164194466399079144181217027946914887087836369884763096031469466795897796928709027576701131713927921247549675780628175455902079019503411152345290478994038173357250142689379347673652905407350559824519834059730930273511356180854976766589925524993031144424311277276137103808736485137859165067728745479257620866103451256184794658018676048871398412329849052046255286124359998880931363416606233165828533280577984193406281704930899853763038137308314922713321510098714714110331398715378228193672386726148014873571488374410109770108533307372334632674840874587151092372825099529668945699501902855477937732425023657396326881986168537605928040784956881878816818102021210108301454375423702259354877617476849653851362442587552838089733355489785828461379334980080502909481479867922584844360275331606827481675358201830647384211863016497279555531356719731743262298756102343400654450096816729464939358439555831084026878337505391808606320585426161486256609515019163813759858966676550042581037412166835328747571970307158024191995424379314373253989749531233323696887227255841595745627587564225527749873760518781503902080883696058828876785062428089898347478024861836241831012736143524708629805170176365301786700011469101151209244626715462966088560766392245732616095565265499799905744757695946867217330051179162378195474335460595282358666126628552770893152893377441772122123162484537064111871058336306046734644899546896396517037475575763743971671583284627943008539281864194337815391865580171270449127524748795748705527871914922763416599506592834308780084079116105055408443197369349130830806959811808626528347510727832769516419703534563059020099681407617512094109399118871062578365989386532835591371069176594714048954163483377674363128192025615778671994600148012263866745736794243855852101178847161761434358325644669854583282747829679403248885318775293603389196538984878298974551109989137126658178019019792666719240206613132803637668140073027009119414918505957081715399971769389702537969362696767290040045909141300025872459286546722482326603596884984745284712204149617155359703201541085925521089552566822347699336872225458247811150954292600041733585149233170378629627088851868126776567791436589989351536630755373590553070633026384579771355135333757043611373368233130870536628351762065863776915192779221892840336031300491016282561752049640208210310657166783158027759872057156203507969252215247288500295615631228916787819420448677935511806500431195784315223965993267595267505837423072859370736232100197970911745944475374136794963091794400495592251280710821255520775792966272691850496935755357154196815023104573383262239538049885028441103459438025165703488059169638449787417329744270945137760004276236233061854836094534850125310456063719891454898876335161131348215810258593595329514984248571248202839494073783747691352255321603824678941210761374689418390893733138973621173391660096916749319624599057471592194559750950699175822250498773080893116193055978811241015322111869106514345681562080801072533606068873049456929256139688449126016391775946051500825971447108588584684897835234955527683751724717282519073593488500778034706406239147446166079956567818733876509358671904197754410797674831160903052594307060137683053997125566180593373219967841021950028426355495527346904694146720505410227410970426960641645291363069757124564948311521637709690274441125577297348891332692444877737754502690509074809296853221431467221875013980485162927243786973935133797379831329679658583462988701862040790307603198555986267069555160644666173805355032885250575619766662236108418137366039878479102861672339116161566489961595638798692855302150382285233064024065721158551164846330575165833341599581057553500127250268204624877598381309923583383368928048622092999783284510321723806380593500756964947293056127161272919807251405523897908604094689783802135895058804120260507502792616244523609130959103440460191102870079217431022602400309869941428806722022660605107154703261108724908507498876998838814401595427528935608337214712944138057995870973125969712649848969288142058513834541401012507345455191806749600261125986124121153956599403841828111374315570014947170794957774152839657611879112290054492558154932888616287154752294387930804769513615000763431724768725799692112565629995520881841701022246904076726841219883236866629953707437511898812220652335675449933056008041824454854869966410777414606974515311732851927542386235900498715013596069248205557509621825200576446932045499997131865872415294561917766106284210035540931505653183820447628635527749801613403652759491238336630088211461890537570631011360543373813822723466250371261609261932180648850998995824156471640759617905187368759148744368412162361746358839024274001274333069424280022316645230364585462181021236518938923612597969616655106312438339702735927978394450537808498830920853529487801791109449147358086387107047065310135537458307171300627751199890247717490834728297323823787901016437417710231615392146859962143966785418643096234179632325145262985571683227118115165733359368349586126114589321338554819679164066430433510401704959002880860658028060870253151230425320855823214927844774979221855550604295076362354078377338427113170218844881463873111921034976679666307393045286669276236001713826247171149121390536154436313518220523299974586820452369701316900680864587399323568129388495841930723262705722384555826519187983726216647718491557107126470600426683075190773444402876226226963466225633361009455879564492774028423995305604375019948035028681448930926833580226820718790857627883678435926004048936273866962435270103427397358251834691672149506178119061297971438329238706800790824354595202631215932235199883613757963798265715024994920220511506607372569141268293625014204175669723244123606922781508279006565367984791819644390432274342948771724015478702379611151859211794344805366567528517494225462066680651586380331588603023430269121062715247755344280889992579571300573877159391652290912417105422277794504129881538678444513059113019014867742028376448989895393614887926503590036435820717118631573054775079842629864459624673871647838741686947662889536594498744786097312405213089658246851836840022726992582858119690591970784080178169599304814236514547285646545739386291345679935994726630314257530888361771394969080372109414159861965908252939008353021162971322769607904211906802749802433653753389750467261882711912230722811119286292525105064252183582829076223760760097499382251113546761698091285106932135849096488405542732902784253184392309097883893059238130974894035202639893763356646240013502315714802285929430149223663247766567010534129681894624631673179341308511128492137604738596829901848459114616937039440991558561256910711863823107045153286319147702353249137744711864925480144069057326004165600555235549826423618715746498829625625041775228157291777676463926116861994125293774470594405978226095578859353004548733824437177944237266161672191566542786928965830288504857195507827895225912052090099545586096886327137268382305756230829677352648829512401733397096678791628626938666415836866814736589588073118350336928129390918989471532280802359859930926849573997224737555679469092647378217795050018673557053801326885191823108349774727962637112373135866904440418993649944179022321254646838167539923613307320469216428973502357586751084056904657716040296224109683201171610162713856005023103359623097285353439755270303539835571906550791027693434997600405033748073012750872178618263714638731161977118560981212180241916915746334552282619045684458539399302108044970907588375888074356637520976553820624681635630447964968251278059335379286736408868631284550672471927327332360415895480142071289298676096138872077298860568004236172577381709488407358597789106172158427197190487876027165784466275800644028768263046323348430195579540151120932212080619269658636659890358641732122504230267351461023418887962389880043960381277203069400859571529718512434355422938476383528724971413765572532284258203374852530710168361721021021899689859449270125006240661051759426081003924667919879341317374713658749050529741370971028350712987645827070278222311268062502823473130064605606186539352886026984965510759887090711117831057471165943095614484930749085143255536950861809858908405301698137662404911538048694599083897013635571202068673836341342211905188682134285511346650054991369763428122188221907336323790074347895434421762648722137699463506041783337062360662058232717155496288456380557853762319587463150540734819430037138012332556010399487215719745935055258972454516071829988679036384568063164403075289794670626301141640953639719569600251415451181853677787536107224185787189351134405060841487969473111119763620584396008908627545399234799657320350114733177368400426422903678975609470300931693099455682299094668524793711899787165414798335301445302714846057307843705754396081644663229307165239140218879290443629582626737533537983435751902239522683857859350051757361869671764739414642740427863524683833514386325995513615177605465311671525998356322555597411220524380166748785189365588262925414735016891620902777949428878583701639010180267538291747700573616881193307894381851731991845465140476362610743181239580778119434412152651789748569711296144233980697562781841251100082206883325006914390695104567804790546534034714151904526278337932569888372945830434471547698500667480692018616034813869277207208300308378840901406178001848782378278132779763581786545248875343260238559245162909511456187684496723054468882209537782507078161294997894450065629199947258798271360988802734591961806538290938155099757782812948584376484986881232295813567774060510020839330038238989377541891458281434397710396320816836062777268032207852381856062905966752061584062146995678061696436664364648998431686120653144654303170945491464673183199773239844163483226818792425013884343695212598030187730680602078250564804693993720691627061805246413915334002962449676134519402366372490029150594946133561054636673288593754908350600368862951472926228473227618414827890587893285985900777640856958012834620704525732746259859881258448770591697525713572600599513140483170595282056072624820281309431011868179173394909946129934345472919676498609509823587491576058840783181128263352076946981992330645728303097436267283115480596570585515508230594066213240768527749333688263350304161261480735604306214588923060214416816037904905916478588722297348999868264243604007546328139648072515151802007991801230985066014284038470447186448153737738954832828361159437680377516406838980166587202154867575696518069918589458226287809329605971507512898983552456212536407986960988132965926771041903665588316280182252192211783214990678879067855294476207322862049666585826722756364650834173066556310716275704539214386579268553539509406159453349280755629199773522310025516712372272320058390566694567029139930591956963015802331395070395432216437982290092191251517997503027704392433983071656610206462547121380228328606587388868326477547980904302751929476184526921636700806028816556956119943306701485842969856252952954714693712276222729765464022209325684100235119192016754968367114382910171916257272828863048642289960844452701314073648448540506658916529577768512219543758510963224640918516770733257726035078239200295522045705311482866045824144479013019839040866278419221295853336137982587121350367606374234434906652951399788074786144718838963999432128931515235997072574956911439732720081032081168822582071814549671643952009844918406003681789065160877901845148628696382735431026465404505018999206018060196188585145686237930262999446165517033284182637481511051698443677149791704189799204683007549424340570755901218257389863047910041552071359031514165795365644830016658548770097276114090079916321634638146318353334578840838875188989383268037507819335340997481947854575354202362010603181397619148052110126410578491866211254770728659215927548368846251006997532505819412011120477658794444658355225766864148938558191416250660164944599190117207614599746543163075506810570942234740058141445298867344550831477289110407931677556217798496535715123812478115358597215415694041230211000624343342721430598515466431949361600021910226540480729415935965678980628970186626544199505503028567508669199771988543583116304413797780615656116483678091463445487425829650073799857427002359040284111615236883085927768949905093447255785017209486117625573171786972143095904775449894731391051761757066785688858465584419048257009000183901961105337459358250448981787640008075971838763066346348293236412099793427777169753777592469893659158635020119227120470637878402682365929715396436648897650490806635878520521665284691210577149144845136097206254619124671250344295780364188482625039682394591203606852360389334008848671956902374194323834830312073845520993588438637152315378085491373545547853886317153358289276112607541426932202162841253148089746534739295444121927681474611906777978614809937634594613193184674752512408160488839823937572203111290265433897870783595146745549579667700699506326027432387656995115640120344577635327436461154906598176664788196257858031918845400772554682835137592720532845082510529034064020172362427740260474060958115072044423641496611517233840428196547446327565312252281215107311729275320265132392137966169549437809211513242174840426925345730096456229402003204761173965277509821819438220982054299395546106355124618709514485316848752096150893226738781670924725253432691370307208431077122021701915146192165999630332622463844321215138727128900931745582468269518355119551319079205148477557267234774306376302166360507021012201658683475181118824233708090620099412678522225704037660990643817212275552424057810728864943862025004323958292231989457991729692423738275377922350399900870373644511546850716268138556452009479694804723592452260081281423265478337611375327049663486654613311744101428094295853277409548574551884707632019296610377903517624218715052828516233904475436572959808837165649081941394879141783723339815245132768484406091184076552923987136389997510999163914845246626406578801914362543472113392179287872617704134235623679398723041314033392109247412902776910839646259815610267477891080525554745103747001638445054998052073144285095553520213261923053965951590978847381403059744080625152912725163665905227181243507760586361660261071093530871376690949015688556673180080498223157568857517439426038593526952549851008504571811567648616376854115011451507880798026812263251966988817087933364618808598476892381025412679869749494673284497057703432206425408545183460365701557761954053994108879115853102141704436473769228553690471100258808472773708324918190975491770385012811367397136971260509099057992554462810869573387953526612903611594019139245249601575950255128933898790916721770231828126819398293621500261947244206373028461593588312165425737714194676505253921191744595311698442197978149816218808715001388889603994350357074675764295709097797106677595909777179298833052311416288098701043914288663216934411162981401066617447456819298191364399276973495622517685955014070645965572331431327081197512742615552136895115816252662469536301732532052352648274874271663095203294455046880027677613539507359014269736211758032502115300187815255753158299315948181822545730386381086392572437337193580183360320556320547536616558621361903935336712609546709595297455791836453932659609873595453354232765015716746935384518164215205514105398577986088462011454234514965985540718438991603253867566262902338297579303551662278933938163026977894800718708219590449742083379699583219697974712240903350277707060119100303747997345345016513650132733124197238221981802056970703632568179483328183995318946877828784736444908064411823843178178326495825029048100440754435391226343175190018960355083160273236758542272458599968789543830687287667931321129178272995106052307371188832133175359002874080179885251305536944136259437423105849302587360847266471842658216692466419646793730857147720965920979779761341442538354241195117878982499310527359393244367775109209797268348194479885931223462379551660738764926801864244708521560890102715539030428077416953494712914102259208526881898858366473493808891207017186016817890020639345882746123539066704052288118827539330094173127521468480384871236375560249036542557514568153000300920349569817244475396108304785098141127149613983969818165024987435450381635404568028261927223417647652703696386533848861057764015056273305762606168498522822536500582303444325566923828881219902983909921323188163976746873831774505406325493330154824256155638453037668137520992344732071016013062235132685260428328863769896552193734390658370947929397075620578387941419521870219564300507063113444651271987284564032714546324023466505947720908172885133492365791379863795468477130077474726843676467464838380592673040691596307954863555332999119955822140227937924520221801575113805161983187576449308101747992622182393590979429985316548610920076203323984225026952873943551546895944978001745258180832859702446843128807911781921339356087833412698428087119689271845512058026274816785816628530247119541015570766300718252725801347284840444371430186252632233795928551873689207809596344579570280184199776333843898399616721647239807426699458193370100654514740786573520412449861071271471638322520560351908491971245412528001536164020788368194809932666031692717560735438024103997274733160509419567452802273234226440589570861252644870788356439953120148830714029708582468531932156107412501526868304296716554844352365041236811401234111336339046857293890393603691253744980769783102226692232431687918545969545063447158535809720075519850229541629209346991054446789516304744556447413831909421318935065757581817156823149241916004165569658217992902827822491499174793933834695441269359211604024944494614449779295301677789897862771202201201598631806878766183978314619979057512980293568339990790030798344413124400575626614632952693311592936946469421743753739977600396645665015338513377768674472578318772175553916337002817789064563696211218790013416644720117184514270920243193342340497804255705868120454734005651357844734538968580829684601868850289366725752463348467186515922090425287589228160360859747913771666121045376165863666888857802948878342225137829621947730825618642023289297738473427782446866550525102922338565564272936482438676294340905400889721036525823653906566346886367406914941865169334447057637298941787710580575915015026673348323433189342016787021013164556868607153568517898158536389804246459990277262753348284978364411083765654744102590900381231207159685279096455887927116891413801825175338598476940695649278707499909441856757962286282766722939942871165824397840157394918979845274251588797839580745319524682305794716808645081065035536502960231106802568180682901380290332606866600864260216081858307717483568900659533358773559379054558492388743867813591025658361611341213455388329448902625792830195684582198088531451786989232446967686481448739162035228211462173762976740049827454785365810388161932065347657528338860143607284138853105172151030373323121230678389500848211893528030616344558892504133397857928556726702551826785071781399511835738857064454513761051396778431038877567980463815525666774969925136360056767699443150712355827055631365498396310919162557982349889783480123587676619595083377913373051864212666083524034464540287108862083584866525633292648900615411928834024751235164702893009179066060471893490117946732257981034115644306377638085838034307362281754620425399819397991128110004103585244185341770862254358179953500091257542512542674515012274105974584526087815994091705099788373806373127434700706220830571709315210569262758092904775669159978710409230567938667486009901120288810391251763605221080679545627124136628985091952620184926140528805905416311264833247574906759200333900881516616659196255115989204937443810617892460124408368483841057160717507051275168092551135046691153843578229069638233028848053821610504556767955628087597912596016136075544375216781856634387605885815405088486765268335063048828145798420586359753824266014664028156062847943636608994206719911506635417333387147008072095366693157498258253171610116818160488218479416046451380344200044320160536399474282229680100564463879253022614481096432763356650697529873829773397716080212424911168067450504338839501014730584262928149648963742429360353979185018064209009239603438737526422589841608783913300333512801167449906151752001362947758104962639865380468021239735265122153314151382283615956677642075820148033683963536419176905071504554573341400014604355022552202684048678217183455301574368872966801073813486715680192083309050489064088238697535099334050643215521638878694458368973389452838633644118707686324793344245147963352304781196449296470083427385529541285235315640538637529454352697659952995773993805408633930165783299727384458532556692073050778780169554870195660942077195495960683133025793540653335019091608672042983157280857027258894161658930286522352033375123222814641949060708442682766214415398286583902504621069873601452403805867034854617882660617184595699440012673586506162499243193737968701921971621292915087299813618477217571903622974876149563385578906545457250030410226894774032992478993780709243659484563264775806453768939745669018536399333685262301505159765673082216764687939299123573278448483291034021096972131417861805560081480653682680725145083653403893766575117323596918233663462912437793989788920957127026750496253385632319534872317890367397597947443590988160601479632987471545995177534910736316404861026784932936133967991601927151178762892905414679813704801152956874812364311230792901693440358041806788025941747389091156539520189705887882182272335740257328179455889647355965325257472284929247858764609833859422360503550410897791504941063517044185922870097906810865430251660338100976987572552346196902253946093862065611167461435575638832860978210842733963717354510639944954760172043754507639491255402764257723496333771164312168123379790360991706750864944252816726436345083346913058314294937690182561224533121829701907206743719872075109209668031167475317683895302003576540364425089736358935564357533366298191893772657089715642052731652305136834371529022964900750879695448417149753651944681595369216519649659398949995264154656799623177158123408231214172695734726036980441595325889668534109445554433668221010200501342572130692148462693344856534051075641500387754835907756645954659411142763570234773982598260373451655512256495070980185036035038258115108708500250089367232199143581738452924069230917732438037785842121530528191708886696870217243667007538120175494998457139526594061374708689973648709247894392247135508371784071358901330811318196940448123691985918206601203550105396245673455330095007490059573560999596622458409080286345064575012308668687783121655397657527487813517762406640430535238722858644557892029677029808478870190141122023816893304799310805099014052302342930312008025134525240357520111642288325674777647061318617792763987621471276598776035376493491471188507057946670800780087054706805742020942661089892778441048187424152827366354249191811465911542901219804816669094506075022772330178973220010283887991645815964674057879923815792015308564441017524699561526153300254591970214622344939084411194761804149345816785795685439410297939164588342550163167573535160367652214411391428306495210795111372368781025819524662239747520051745353782817722244865159222103097690359010822668014100427651604956222005470526443274758673977896338781871907244352673507733744506854948821747029358701468551415314580143425045299392782974533163851998281580947423061393496074441893415332175383190130520534082356683825597910410250343748625908935417598392270821428546832087022948918482598385299879226698995313604028291060601047267661421797837730092492923114379206832318490290893771171900160554340999819118403891971662482361449777000680238094797832999606720218353250069606573968678883395572846998916012341334678904322329440519339897066120935083131106965375785527793201501844737737678245196460469871039802172180659011621281519161068420324007276732948041913406863731972494589521964625620308230096103015664346175018411692541215910055961531266575014712416404375011109157660168304747322865699356788353738573245514180022069361679371153297285367105615397089086442713126422480842495227751380543594259785356203308714521727169182216856561896633503060266728016832489605941429513712212810329085806359144360455414920868973923908671018370677859703077006092204266725188554630249051213920441700401925408829508071566872297832749666315142444805178548116080438362975403605361882306954635227893250143956637200855272577454193486152436356511471151145647280616778701446141851063633349142122754080395540868208972128904479704586724896928795389663115342762584123235868492207567550245337889391749191534042804728783564524096135936513741688299806727741936416694827019370689717295758462085785146162278031978575909428348885379103321907859544830980076842266985327026569311837458453894658488580548162338784395983553342049773700999433634032411962688073559591047696727577614094734069369997720186616939399088369435790342735729464697268693447330089947418272597416609266745129453704169429331369483635000717959620740450277331619409894716339992997831805685577464361477546696985471439400268282166188683859570149950603223427830249186546394272036174266857546911937575173874810508254140153013630593105496460972746338956223063282895345792062158533525715565138115215969426014072710909742395485822945688479899423030678796868832907083615316833885550149534247204450234956564761819733858582904625524849408235728989038889140869649666588859530808358645864844045603290876607116258391630414341445849704361304423220198145570040120636746533899807985062923263883472328912488595797455975284480167265737974336705765402767346141694278901136456624572862573603270737756069779324490100262647422972576159928804132517098536944153617701510887586566401870209691201139033543374225536936592006646346144022846535501184234637617509797787660629601942836727120133275449104147560960933624433560295912294390842357984419308044078610101419720274451256341957664530310218561503149737442716547423632388078403184867856633932931954014535300882464055214301162136011554818142953075620347059284150157750770348067999728262133063127382465914131278750316055548081679330933126798104320249427704807741265514316590873528763498814918835347754141027179022063603220639481100429243088649708900304698025376158582570780985159669364839846030946659978800793124310740226253374167225558859090817757788918406204622542629717187782849153652888214427636401595342853528601900563750706661538453349567896102158444248064115212129376915236649789639817940127765325345902964184894722235331818621828170740480069954741156109920144072379265696082628172302126050960505110085359009916608739503336550039412818571521230339067155496706901516645558817510146089740016773465812613560434047521938486998650244311103244354543803651722676814695297882255794070893800930715021246512806175555549743577946610069434263829314710448279351146179100557333146339405632487473429853001676771676187487098924109724398396541875921776134997478858546826256129530639179532818797623684843572475406275881332216051235242261401690346622640485603095267300256625269617454459309289231987513317000180732215988549997763332332144481239699567805796477602209070431814433774585846227722636853485427760604870810008147958600736236994848250872753968082039219143626105752480530271045736015435506057311791210850610303771610240149901212737192521256119476835536087972503701500132931129279169364142943781835277269788133127413966649267592030932899844167083531250253121492189571595060115073760355749168003329387792890231332229161861429362483125522916359039983099898378301685472497058998725586175566369663784146512748129653331949230257889477343865633353624029556379437272778308371225838897399897836121950955777666657960219158380642711887142884059293069715779075731340166080018381155867119178876563026306603226330233192744880231949310672765979969569857094909391456205228380706466745888742473042709848020831315852312864758091709409147679976508532469268595672323321529275930765586242232681633494952098119449033991662866914108159527248353338656267235266644615883112700343566147606001680520290853456218582891163088691366399565616065808839103077399793533339468106038960864405030652050558114028869050085079160038303176915041425523886471454523410141612164863286225961434640949188999966207079981742792057613394145485544705994543990283610515546684707116542322751175906180149885526204073493003292122347849515939426792562554612874949498156465044200450104353461921803292256353864053566110844400305781874494949369148169037243180203059504257008580062009597839123584198736701922407102614685314132860401651726235362169247636629005782879588289716003045296317181743258257580955350906553149788635082863587716525013753315955445248358868790383361653184839734786887618888447822406359448841733002576288523095787882540444630644644909783129998543344332020082165028408389832304818437765741671252707704833898634101490512754252710992585435636568886565757724320810026861359440636090329621751907187243577684270915003192828828692342687977363840866245724522576962103230210382384206546575027340543057954111413817787883562951815072519970331332974657257156520431262207214299939277232045001927665052381207760800656709573268876412982527395662923905584816552725041499922126171916846982346273812311857072812219537877972792706400302481106199569661779398546838355310778675085957904161664527929927456837461160915808694788627919355722875703854234774939640631116341245156225151651983074366462678437697354209525152162968378069845626854259574209030621591867584860020071183766646583904963088495134589781832533985340140045034766867448065153031217239978211543967306631841708270235518789334674332421514055907179019960095496697124416265217073387091401631492045604228330158276709554976655926868625193193518464555971042577666335321438548418192261167070631708700622949337259149603645269573965005739845944690377444681223844241711150820486589220728152236885785978254466028564469964504255237491185557546856676548469547873975465716991911230939681220221928499220247977087317386965538693229628589832506145241397606403877440799781918542422911214111301993199586525216743465825179962649474385236566921068914592966033000170823705657376344074282732188229851340413846749970915128915235986763766483030431959592582165444329463119929614791410723697563787564595455319697463235157950461785019101541401341106549392877498263015539890164854074221582522687249211399073389385937870552319793580286321410717970131405070983793238805037334117476640952509097096153944162788989778070207196843274967629011056307736384872345612919994791562228164752624938931352966102726392067810352578258978845640832005064901052483845805959893830352978544264853430377491738197983102667297102540910832912578547398179913697798680074140629533966565079024245597126177269055686201009265064257340206288716983435829814261840942854737362675870302130390791227485435384532417246513147385984349522515951472690326318026247566058792230847375759664303639737785415953677511905659979992497010690262538337300852152464926329770865903866428592590233629144126761491526728329534815027791122347122329128021981276935306101609132326641577516590558349092007047686134225174838129892011542757914336329398904788591931803550211276153044280590009066816704403946756817694404375037604443602022298514763527441093204143066601763276487477577892515480220850879628067986604192491070166981211146787241799022645548548277270039111950168728839353873930713017050529659917020283340006350137351554381772025662308322371266417302686350268441402216863393252046815479530859937074468713590682094403448391583427684981868280909931074103120071920879790249433036974268861735799359911389746574234692473575289590765646045123488575622675509275801057231650761710381104885885232548202179985121951531859861064559032255775386055743203287343170454610540377803211327966674540806198334528633776806640554641567214597579249034144012580580120820849190758686322084780179624164374333129317842478544693663876875818976676250436745740095118233952189365903414962039118644156371118416226326116179741172635142724635797800340832567845819026593285809024119893440683263206527156987217377056725986459218500454147651460361780946004807311514476707032227636872474989231376525762598371653693519433373364560943175700104834025740117220476691186155128627285199635113078615824756585870699036685793655704130660070401071521634703157535586566942526505765015868951625278108070318320848477937418604376428075557007865120223108138200803256075157308999058989156370655887416502486021761528926327223860525319816929615012793081465742710124201913868764934523276875715434430812431232486611162200241997876576637937519947386702527880816603407270735786564566800895022822448089927313959933335453365934374778194165925925971233568787853076522590790063987469176039239986924051814400876278594235947675550171899838213622637184581950904649755855854816102356349277072388582399606855836144769512515767999115311738192455665747454215714502704261320827086449108263118632475808497744398318956420811832375763877030553741329619639426486050968547878192735403400070978582977361818074085145406370505451980452804149062945209014190335887790953052514953187393827254750406120530672553708152617226390628917306782090482349099155839357009081543237076025900028527667684009078886162558978753028787062704990320952445806702690109508260557089844522704593548877710116561940860496754363130408193304519448061690625066639531520839931206845921740419115522446352344471737658541438562947399495734793860038980250281778292427633328761174476982440442699855041817490968658820095091920066300418178814979657892623344084375453737952258564981695614181203910088450467714283624106342383795531403817631951593868126590545469437364209539184170793654981947510008516446682005313314025250781635529726217726906412665288433950889593056074272283248536465680667743205965157303347581426650331426946965945775528201033894783920785578782909084228552189471098817500133822498452909118360191814532110924214874516361255615381454308881362587248678216279632455989867428146127292680289952649462771787602617188005557109993915446019946164961229447654091994954108952060843656611521839760369272121418252057238085544344182702942030635486997829229294515268953548051558502877064302659949467779326041902206733966113056714442025792106199294403123515457372173058842404358041976216108016860807452644601278176063559687185880414479836585783778438707155757256350767537805579353755247936557396262988127019477701469454258059476866872513103765756743740769429682128238559657308074882790634383438971524037739523526903282445742684359287298545648760905350348016060956871071248366088476488358378048133536102301505681716672733002448120435951359232907453750837716684230425621194846912137973519399140627103809649663925253451822496286755291758413908043109278475848838163291136818755177929602588155491058120932969126663913441318006610175236392302755240702988972006952474192477623693426936294767852916160824955936364314332382629818654230164282728367309444754747942653237748228109855374816036622625491615576373148679922751192302368248125251004936604973658036508088928042096639338963683530219010615842879488520930831456482939104187573390408149829088796478250538139891799024781457595449168843108806656555164638540562076464123117462969944024932158071736312698043804354702770810545439856870168555809648003765519852439181016151250517213670496405225282105078055501256943736889129508642190530329633023333554156550304535163967901405829115705839001591687476946716344915280907192422530062737749928526924988734644487345495744274677217719392973453865100289525086043786396254140819680104132318758896564902117325114334023776752865928721404139764310719598755777001761511637610925655288214905774205374108273842486832228060636152037074592554659429180178683710419283855313657417183500410941051637994457995118178874074089937942585133039553579409822676027794670988846627319366463838387526995470672642820095590966282738566220209403490010312892506182144880492109822921168564500252841186255399984500570628093789874661939526227485268407974196789842124564585762919874297450186767119338706784217898946600678460652556316900792645916548965898785821106070788405530469725130777388258331309833782149287329911297623463415832786969293568328331241926174062569836890009023919904749219063809864296394373517367879589967638969039020833802912509591471833955594596945811525544022715054739528832406525427126649622604506011494447314273855571695060556584268037944555659868431282094153888537077955400289885554635882927890799868955541800975854402055248266381826070252571076343989672090522925896315524067188315181955462101616032987048218088116950418698761556875150972194866521600865247372513503372662923399836102825967196921427499428751187231307613694460999357320862563385322589340129612163210628817480265040741165746632789018776719653169768362143266405575294703039797998083345546435079592376437102835509082088246164460318796014354449245189899908754202932470896413375263308062551635196810723925394285786825309799431752601956413573268180648868300046515754408562169527284926325968230762365450149109256931633758892689059854953353959798229263382885131462067944828654688419018891985948747587531839543849472574453329169603232216197294208174029580585307549004694007133339940931843013688813763227897867956451561089059433264439549306783958994675016873708648195020956382099607076930708841630664649558549840702417681043742477986250789688479480604736859979900040565269758870314517778554872115626350781358846421826508805136670606135829177324193976688286756221580573170075345643155607558188713161254224778157655179881782304315775623966189969641153797353843023124215477740257658175936322405682659990785531445847060112439614511319956490131713790589105169521612602017320927655525953288729865377561191292609100968537122898016746403052839976864232689039075147869129931598852990364394353889761671144043680023771479553959253395926989765287372710633943769515913539172649499147881596647854291175847581137366780390943908517057389116321271548842856172667475506219087799015471501884458218408120688652786783416499364730623411948784046983408632374975438002414373274454814229005665183142422297193188144497460310525704462775630094353614583234499631701167765675125803793635344116197526230379611741681204494552478005953750473996143556098981789856778819094701640523739399042519568997997497245490699454532944878102449295938117285068788683932348240757613863764812396941522655166535691341469514665938664512641006927349089139719341182861765165892903291019013595628546518599931459959565504306556954625819449009407532670364048059816827450144625761357428580979953022189599660158926087585932598347587447072450096917091273908863501626526017972190143970121572360807941126278446557582308772198734351628741871916097450275206775189398615156561051329743726349031136826016635508665528030929950171022749325494927903383403117823529115354223648504631948626354258579587305814927428562032083435664881807533988513626470401014330509578600905695880563081832749830737046785849842495198883165669545682611245793733965134721702003802894843493790429705808574671011524130978081400202183318554027170084597648259108316858002829674680763765856816811460339771162021545349492379575627032160957614917808748815308506132803112561754228894266121703529725339571441998881088519320285059629664999145281812462289697024295888483652210551545062780632754526970760271200488226419334312966475186176149342833504753503328019422476384621352456331085404729628302784907940538707664770380969579645834167560528055896945260489764750694991516401207084662336826271762776605834241207080308681259977351028882016229672420462491951348206990068487343254271943830885536393946495155506342251423946189218963710683275791223103403083474298515803314577883414390573379582354159495022943500095665825765333885608138021805148617868606190896048290613706596903813576605925702264364439690831059468368089210365657720678742105254848172022920156757952713506679581984475990571933679199863964285187264080956086739395050804729058651979390288178588367109108410461710348649514295063102423808171150755678633730735881668255717851860664375618930389959761479849841893724398952374059545412940392537201912807396078017615728157721568484196831894310527663937472012138513111012707532479268357458350663698498270752121730603835746502510482443650046031564307118126514311542464921089787407800134067692135941909715522420153493174722858938319985981881710156613254618305241352955549087485370237034354802130487056225790722495573939195189251648114886173814551318731274921952821373079059735710967418660873490971587246399135291797407342930457864236124918383709188995733416083736254903052649713580735046634524496962350926355311833510595630192722692471796347164523672071367412904062798373318777161215977994123533144499087953346701272525901713989382142703876358375088207995469515373014950114910576523477957505757428842088428314052727056845032348702967425122217234898835994684397442043320786008332318574081834302904627009325006266724556036456497546288967213752273767849154502839045336819613988321295223706669307725123519228505519783908090442700308053109395852147839765334175879209516206885901672212877696092413453030653626141247132361698310393974698659866282671895323148109892858190956487234142296310419384619950508125098314515044167892036136122097426450917140648726356507177123289412004953821532404125087173283606398108045024457793817568704542511400386595433476992460233374405766150128829402345153152321505404314237276596016028343044313710462945860455371656023049119410615241018654970850866574418285167093537659574286677144804715195636798949949355061097062265539341129869660406984229672124866523048174167149434732646904887164544993389907918415087128646144996486851704299407356481244131837165243347248036997445388382943411431768368245849606161333202449507167876881861893460192525454365850077596430491575766548821940236585511067784956319712399273254824713725602601501054345595071639166923045546159338728153169678235576316801523163561992889015391982223236284683176315034390438952081691685078142680404734639582590058945081549290886809885371949800541782076275370176088410575468359526280777853821315254150446098415324950628904328313980205924159768217613105084648076347912735707948579152616222620658362391989786452204179079727544833900721902764710556670444489378586506615464477609053920753477006176446189372936787460879386917940575337058754203104598251660656848213835131899695969506307089292216321355260306039209824167163385672692081072546174126454802282705052893711889894604724479735037060080779721456818535024795219278447126851848523256271221856754353331917166057339380974725821302486270714608199416665072960648369536671988653177656423951345881856496111636345360507355071279673492067123332660437795057413334686998476098208222354475418239818608024885466125455364337880994955993292405970035569690507978808411332611647797222708717754674420574992113801114357780160959796084053818521968010484550349576581087326157383945137421592596306665653341689430601774150458279935078810366522824537557873307031698120600955016097791319757222745510604848464618201956283248805982839588323440606582128691502100622432523332032951121287228744887713849272410296180274231218143995382583005276878800747866383432218765431102738779108890282981025800132859269943508963715325153677093315523614823377278763346210301273120961312440014170333239501323008244564781084539637786100377870144163336488327417079591969128845751803808641779096033387011084203234690694525277481198784945002524906260347064892388100302670165363106058836013552436723647614228700091449662970008699361244343715619169164911310590618144168972390060697365745743453425855785359289550374947977898318959708871948527756795591807583476277755395799645871544462464158350063155844528743314482432955377423575840198741734586035470575648970773531580048916742955146357406508924466954280158507948377567422522711443008265971562896899727247718893109364792029128566414335151819915601311007429948011109962066738876750629969945976545641142757694170132415276036110998206343140495509132689752421305742350246984102382777702666794498826618392298592484230069371473709160251353779410839053913031000732119552040645773177313613102681855138123320702302047319337742318759756966691969769952037070552567712095404834484204275201330155712542380799289451057888621986857711194668780814737480888780839764511979609182334149542257406686212177486066501363687949715062856462824216544708516612528417391440663851266010061328599620797063343087450085144840155781989111769068512174329625980415467819722198019607401398980226172585317245784156302512497291592333239757627643053564758230049598901173656075485104576043897432144893862469469110669216902213901008571789214607270538607620008033360043915445524302019067588979628690113363885052657287987684893716531594427889856591318992862322865272509580301200428046955070531836830242068572228935019839428787098916221286348627824940933578053110070525422210933634092640050841844050559377511434562442493069536865253947418983140955200234697088975494015816264951835603424932835084145278174806955429109922218750578231506427519703866760643277987092083500087850479168541875420818008506501383275919228853268867963259873370614732897968229210848937999783926069573256756661471398722699026164746461310125062345487133211436016885137492900258348290037434567483051349216684304337181970236681995250429584460691662369472581541213735528120965186072156659711472945772987188293542536890816611920058951456473246465428561693267363384964203965730602023972368374307571017528199885688776445246266432356275012147640808722337807278370405433487505559843119655520854334545914196233194883372130850509878875057263856450003460236380148888507265920027264824859107580348117589703246123955012376300071474083183450691801707054470002113532378344477684678673667055754969120090779905404526268797817655366076547698680117439447339173743668235041702085368556569697925118522453459091156553283577109471137138545374840762386701289545740886987795827454649743019168588493136214401505761647848296858869706756909813315633479145814077850637216784046920403873277046438297106484650698150724481431225699011273086449213792322418106927594030766743094398310725673290619625527220102303720814303518635163903047538750751954015061363355351139302856237108861846788197814040053087445672060118370941995983338412899870062063306117470525671609756800009597557380791119189853982206408680054438812445681455573110724515812789142013381122376395232765389907479839486716136061990233722442632935215646490909149421022652963873850150200716708094656226472980359164178706989980091262496028274480454610121732975077532099151659399653380807701892238880435671700552245641712409999460897487133811797825312200757655898037602130693201815603552728941377176387476358756403960904553539670524916770144053516952254265733396489609736195509681491107299596008396981449563847065433703710237150427957988914189580202336543046345009799150054840687865735085084196129711558313769469279924679417821208956308291178173101664010243313473248561802540011932863618642352711623603621879347064283873072125086483434695537548340810059087786080121533921778335094748712779782051676452856511754759291458648744120175062891911278113913100303831782733100697189797813414515592835928375843690546313107948791044899534236650325707495869616513612982033023762929397923131755063995151940724238754326871919345032014540382820965786797958522665704681543163210808572705451182316604188561273415475798655778489481313618611124178104118833628577502142168911362995896353478027211433323717669894720977633997087118637847352793682374913421140516615501950920194242319943724157801490509044313859079527514397428923926279212973834767226914649972267316652291931799431644367931807409891662909086811479816852608822653920580098560453912492652849521921858990200110024044534530628292709137316922966515945145848365310179573132072728257682859374283804172638836986886759317911163560883201653351233790163884473620267312602062593194896856093256141257675730963069615299220435213251477751980709867770311012702011363976552880327928046482904707465314919480586487712501945732066686451520207353121554606452013605439336426755745730060653207684295837071255851005059113528036985944009520916649125067898875966697448184151849419436282697844067631127143324870466958320773118793543811587006891650555018687553551941600840061414797794327747989100506746713067770651593360742179247275392893089660540977057793106110317383048074624246831398422657493008155157783974988261792408606942218264073279497880763052487865885168406860368003667674235469180430823311310888053547697211135313757343988253284950306785046421106631453838984095143364781675389516602591763108987146270416313867147371863585129968602805546815909882774034119854286094838550377917591847123089641490928874185006463414392284501820088683209640132861980322985977737525429028594201520198361428271280560654176162945066241461272646831921838838058892760591543385717955280339656383958319121453801230131675732680742343870209373179282940155833729504601640217840499806574293531609335505957949618271175587542106352161260152942922813127130058105614909200986289312693205987005847182794697735048812961965335041525094602561171537801301788972550103925532686949245731150222463146014306897933173217834944905707770854670754132117711542438487920486461859646346634896833160199237209215686993932972358126405198901874179996466541864796013016295587235982395315484539805799325181530237276434405285548884021071715992228799527846355512999121901051265308153731591431251119575136050800533816748933829996816202335838460684866540095711798410253842512041057009245040698215315011641555296291553001663671394783721488140618080045065126264979117311421484703278895388908157344031910740675935512421729782111132969000740378657425266944017807929756573890875763073892692870990234801834263499839474784444177920042652683783633043663275857901085554955796680065302073960657604208711535916252354203013607042587050909199489767831295223916819994607037104644915194188355065319566636613956248730228882206887247387652254774689259712526921861294392768987694332103494334687271475127391780766427080846985477926322145771967545970807829227302022463500035244487109079907284881374480915724578752423277457895339553882728177651454235012624484007202584097804973033404936119990609492961916551854349392895080704715215184689282879362212060301896532525716448369096892844224773731747161305154543644431384821975342807698442245330506681702412011742498194481651429121130049037493824986526546425149305663496763142487858752900864572010159217765418920400925560370430513065360734410535888862343876338273924397050038734928518736646282476547857766190848435460255359496625413642153794548706100612627573166885487142856585681922826146586922403139611830491636721872482269215906928908614584129159547989310720847516712923987761080946846111112864978857175694297592003101375784232808905198390990558721999785602110487804153295675660849259377519843232573312401319337966734811405169757259780680564418614369395942756022692202017744794540459906608024092020380199153751483186027071907345246813147827319165747043100763744917038265724262577927892777114238425274740176855457185102581922097363371448715359886314826468582146134716305325360627296893580011722448849091767210523427333546274698383712051771293610337267569466178658876576184929313772331424415048481099470566356332885962204006769095434867057844855401973222162680229926269825152795685036828290644041200578459927729731615821742371204064565711136081135923455237041855590496628158363103082113683368306348853381757688024122198689930029570647346882433171238362854071284481001738980821377353767025889380020170949876691951248309795135794939273150117120101941023425253522788553958555352671641344284715825868771887665032042475465065370745001107543822139823202328794947231984752366710964673591285265750310791912392030883809029694151282362685027029617174493649691567822879133742735370642277241314071696576811867431433851046855371085113908350606358107222537817358110007414387123585576382774725054602831459569742459237399226683534712898891839414445402478621992966466109186714403392355302529983699719227832914998632758795436964265960423359153203656461226140151341644491024475418550130241853706515243371622872488002509606068568915572196910215516400899958657491679124473173021129384394756392497120240419840237122346214784413288632568363233922774519275130216357912463358676056460622109943687642470780293231133407587736511266054025181271052582925308598421505490451459211818014683802729432738738963092831221085685716986874674255576840338830772220917177746629835272460642223737388991299936053987963723373880506639195739097115444026707339015993568535082522991615926932465162968987785750783928573411469489586547827375024789103090604319528537689753141217387929348095478725913090981348708704435109481186794068111821759018047880997886283957804731997304050335241981399735428191960692044062183267187897125199099050977460981953037964620980222595263526538248538682490455032487951946154190479261222569104070310513938236334167502681040375901464531796615118305117966031127526441487831422701769234250448625876552488399684593545936786504709412355087549034471643008012069311613534769565986045170728800118340709064667401199690419976734299817559916770173002946118134709019684602056425740217375735130705824857242806420667285163538976153457470547424110097557421972885626211677075604674159524462476430679356215977197490429727338655087800450832687376888415789967293072087610498052905719052090950703263241916367372351341319669275104723523029072572731851007565677816953162347553568500608337923215423042475513031373272254242573265001090276487564733859739471465545621638596892916099414655841289536201366435482041592629487229934171750750817889409811232616750519228883076606335066338565512365980698529194016837875697158470770179675655110083023917397893403655250174694322777516394746406796762238746758483779206082764357771012985187905610170354285511210988348251961984526831857941528090248808198322198520258133881348000080104697537956234001295798637756722404119396545806099047736488839925507091689406794422920986132059589474751895103878716141191254081176169480886808360371690872546455423959969291069861050615798438170419526109056748357313712849307520490137772750182925178033632765123898681039327044991998930391424005382098888352079808570535192579878208256598673458107182471284137030535560280482389889111896226251272681571096926692617870785675188800775695075707486745839951987132612488096232051843262353849125261673370946147819141132522442694353801407069949482701763272170066442129045012450364711139018756362245044307363472930479836735361854678894478388286828424049262914782516073667544470086709278557609023104228951752301862218603253105524854769613946642444574035350807558756910345498417152728682066580835100687459581156745473803912755192857441703656478678466345820835185958502293950996678083044649325711332620094095850126859526179441381310266444548146838491850675322398422413965917271284223589064345013809145039680402022800878057600914421246280132786508939744143522196050216894550962540490787515666182869133014732956510505087806140796462821537385030688078469108040292164005268655978869631198414254188400917257438440409096219543671228697349101379077700468180906978756587527463758937948267999895370886699024484754026997358091430003665575024868379359218205788566345267516865782248053991027199556848743506951255902468940132401823345625951630497945093272220276696030920456196604235685283013137285861092595365933660508352728976216206790830501457564785682921512158185131716789565145852760470071556733341227136227496862996843958359274520899342027057133751709589008423688463627477862188730994895602653629548802297977729774650795450922946056836578339080187417134885965914201091899838456052531519667827026295972083332781930423826728484914025506003037446478915049504247024997339265770060830396388751262524554462721506525571064452296032693490494142357506795205982797986227240167532781755356478961170236023014639623143110187379137527016096273095104227185525346183225237346575891814007522705720712809818544805125151508735869210218830254396847797596818952033727422357529470620978211456412276373997737326789365854394762569963461734953797237953785415878681399284871893278573717999801219150233361146362279258957354544664059244395992450785643693552924585362966430627707351117166066563406530108702523727607712522180043007985267149715695739183230658004048731922721728437502873171883319300980683949775578807705050197103469488288715710024711450810123121254162743142907880173759162521305447682359996857660006385312295939324513802614707521083065373954716214925599318129889999753787687453530823615122463265792122663736431644611038874561170568354399341722258530324665540352681727139395690091785675756720828131334636413736002006717330727100733125684441429117482358563914131829949769438069866494672932511972475370665995489352582269949491097476776390269774303945925532063178350736998025556075427517959178386513208377236094648476304551584836713472560535027056255179318163561099848121727758297134040703254848580766977833500031672505586800773270188122581205454763275806975146555172523049629275064779570000024332662457382776802175254614937300148014033925565361436219678815116775975258082088278029782124825869090032043538633782532390932126162966453039137835226649514665831815307531962764475821923305421021097113852830236647912274837481248173727690074276612740859623509825043811377831814105883482415470819073181688167456560431723157884576280816445702853108695675981612755871815408524392184411733631372960976872214937157815551384350690366455342241825117667357401499695517059703971309387235373906582392541674635270006259124665786444753267020965951964574059677917827422060185826078905379083139211833500289585842642008351529929384366149844396645022776157749036027016613850494469139423557638657308965447113057887560672086771360057519415810351008768863501883658147261482203139526836554425739983013375631309600293727860804886531495021391853445615542574509614669879189048218479687543869862296842835534475912696727167222758183525398239987893690293175991373041551754168638324506019219439445598031979998799377726678138513115389821518935361259332992515814222502701773064711316285279773350079947838487883021424898737417258732177976319026092231872824670193004705878633550010230664196547032571889537530021876731948946149055771759733280039244145729903663961885430210282088871457911346548167377884566636682758808356406510731645912281370429161554706168588384757147122522254147751247796370762488581597224904363854038892427762355797295855513144560634670946759467481989176947374476653047850105038438469332521344054144417265208199712078328504082048248923826464315379965459127566700041413111659557115546359146322232446035596169939226483387211386837832377273691056839335550930771833888738110325590417690385969194854020382926013870444818727143607862085619987457756598260582060270876889013119832325385225028818204665570723683088232493147949646061997891078135318229902837251175609245699746179575423700038154501341506669430767790496097546282708443421073038029914326276311474766151584522219893385173765522344699526814805489770042535638705721707442199274311785878944413279897249549401568365906403162671717694124096565038635281708024827057408922906150542617847711718915990828637594180299127224229353311203991747990884211894031359929409988223138400241567395019527321651058788336397626540929834890965095584162877669665006008456871515586272268027549090441843501254172579408300538311797748560066038116426112285652385472534680328252497854437738769585676906416611806520454446658376207831893402280230121182131558491706467374214756398760873663418671753880658958324594956465902613725526354669265606911392919398202972698122556154420826546917983119673916282184191143179513825735007719974555948277504039546099882434230695626049454757977780903999981282791157649783355386143182879412482630247974743241444628551439714813123276961443256203463521112956173246013989355245427820738280911562203255703072165687354505484680526093389041269762188637899133825331176477724119206116337064977206654945218670356715644001852391431086808127373429289761335859378489409814687857832247327813869781959078635975380726109006807539450537687403479125760876884786698640694114660838872169512112452100970873106434644575088534714959717024795515393837106291431192533506202915796450486114585811555658980997282938339819739318230990657571467428491607797189250985383368958642792281031474216613906350884742411785121952022477223507641656263776368018335136075362585563567140314665304661982219494299108323407055465777556373675836437054266833249079860011547666383191460563474366442473097113654586289980082068366586068207246413476109936969791570926762417901536453274626622309306488046415765781555706953361164937976983557525395295036426924653261092513965042233095836892971294229318657661672653416673782229231053237732342700923625656284043663835287318293764658718876624272903818381015016255150374741920332744562687183141707755548368770174104552285195559236002149857792521626582059078408054240891088353631922878863315723424259685517469640363640785105681326454916770970112633646708859192997431285511400754815603897649932004097351965307032684088376722103029407910026419498199330220369830028942028353569825397270168563628760410606355780089839975671726185801384865993230579238702560407691654443414073946745399066531298264367029101047884011309178133981610816258652141520311956100742621620706949919164654354347837396238069948861588208468079348112838729404787705820083319528798625993383242903539149426995719874330652045421728370401253139759086308774886704226690658934275318905318296015075226237051150755599537171683144958478891296651070461046924985438052841124552678555906585582174893176316811320035949343462853363299490791629766337944723071021809197544599119508921810985796994419946437244435890448969864377401835285022237033988707387527678907409927484868485449261975434796784775509689231889405151602865655908199281173443014605578513879764303526015448105495227765117325976307316379132128287975789416504928600571127304747383654462930049919092826149841498570392306023151899135481394030203039682931373397776990949748512320133047047938009277748705424042072994197202833268813075386995566545146439037864369917898976730085212072302676627224513736611513132374612441544941671610299197834887584747927867287481797077730106337690530003918654740118958967121229235587096775582005521121046388897445068678494562562547195863612133909478367745965882932612246911947144981856242741332717894164498724065153078349164026100309556241834996810533982684424468645917356928741663664905948202679498297822460513048031107605821060274382675807746793300374827812865200077571811972219329812201745477822677666545276576231675898327163817298904747658783856885972544563766067555110371289184646593129308536535734778284371536255352878066115198179148314404431892971511223496004851422046374942002044335046282678610750156822257325611493165086207777132460627051597998750469530840164495711173267520689842612850037695228673309399526349325034927657628229284401242045077952170739707310424542589499451910520874241536121344117637476981156695204011023366584093142551040505833904252246483431522467967556490326182767260634027670786656664568407815141897921744331137559947676093262793872067406621277276573931899581260955281220499922211577912495890574929915772748512927569947250227540622195327837524039276311039041464086789200957239068431059794488078795746288339985114551881173773446405396153608688861566712465755460881254981426861325292977739595448652861100007883200224187975651983205906978393575023972953698317699033126691355182976508274624814599857972287665168991389723438379011695408368426160576193343385400560005500954403165851583933575334051743858109521742743221546481386760700201549694379046960618244594441155519609559305708081641298891752859512958221160390618857454287372663022657708075786917615035566992161126999376094518741555919459998508074121185549161538664136898705291772258570590002366478964567496036383278169851666687166570569384583409318703918079052111941742784988566234273873340967689958524061924836201719186057341370152975609935515927565510085679772117638224812906030598699709242832872126000416825062406066164521296046939157398274589508622194466332346398583098038690538251208843521097004138542372344322280920681146825703754960508411852711368485195940976525459916756576165577159962080838545286849840106906767374873878949212798617450235701862284743326799383401114006879521268352121845811736224466523952319409060459578743736667176541803224711446427531408544018603658819208152952991847582995763728820112877893000277079801959179513384683540720531314970436791703641882115509766214204571372395974993253759418862074869316375772833426222728795114999265492559348925531523120725051328506778236499312029874481813307991288317655693470692025505000001794920841808231538254857252715989277342097702057017199098632665735381490159110253384982922098419998519928497129564188683078701946575031899474706281572854663559495342032323613140094257537133323407226269884089157500564009594684374803998858768407595118284695075124294130727367958518951703303918318533206673726573866586729045015167382131789003946543011946357545574594644706150527867968772729024970559061576417403900745155837115450477546267616552430377817498962611572269432230235171868072879017201122793537642488561451433116695923369764498375858585389119466786546481044504274303911964384702416010066082891950321686328285040024757698820520843282752882805239718966129021105331431457634645731030013678207769238725716408199568784243302671769553469961348916417009265540203725671725056942074795889179689710028221608409180386203095608928326164888505301441062975644257469780559271435851965612592724423201798002394006841023232288676371277092412509220557228897105875742412617750823004369208435122907938023967814116336081975894949037902609144364408867796741912876630778097444416096260539422618195407125080428541937498781235238016014926872443198387834674728804600676505517733425356654531629535974957946073533258493428068205872895151989071114628076910238755665143585034450479090951107705132665155792943953411472213803001992132368297558167175049053684433020985812257835595515866711905275681970135324457565651557842944934697409629582309528422039798398922941871053639054749196541677532722606155005499055251902095294676967556790511755387729649744130739713880474758649325201415549270953685067201354625399146277148225053078141818561801528572607915295137127513059909935262000443006447381297668603151329011794706788597558885586311963802574951153022929232771085424242488183553857826253758499024686774657708766958971055940046504165675884018458287106674361528354547279791890092343530885009192801601288034869968956766561157866166706291536034128263866308969096907669421168653282604418939444980405742365445940382070939653443645739297498945454786950495053291504734256598547433862491480722141118164465709286971652567696987238462623195225953133173766054011126064304698269109145266521511338823430941825275691337071416736942821185379827815786730572009852942222609169711985158649699328979342115377946358486028815220654833614773667772615515385674268865684354619700401090389613900912282003618850973492976270645901335272281644058926820653503103191039583787480125420946551446943651587880916081866809044762501560978713485763783310000787943726789283061431055960186929401560459143469430792178488169183454411320587733879139488686694109098959709829492520447732085690469973712845233434450929805018115712764061428136731112604997142836463129672713095937601342566207282049597163343140878078163457706621443606808070646731571597574839065429062609886500852174575942568764288210510599505822688215707869320900287329591365535119003749705041532315087366836833431951229509442129677929673482181659245020935763294853958550773346012728297917216590690733912922548248258633942582184397556763696687746008477089540047497699721816456526670685583557818960430559899231090990160486670753121593885156252806894789664144308557984776266017093217766849615291960382493901533351484891854955140332610555462482113019793247905316523051956959275399943840839775178455842199566178678144249575160684054720882738549869992327497285662448045514575045131347846465423280471479992627101191489213299687804415444710738297411107691681708130861652807700634062373172834047501327954065145225060767619071386988081801144670918196336738890982905652483280044214754122274651067946509250859987317554495044160753547674929371757930877582911571535561429899026172237755535492644374638842904081594170793972990960098950303453385581617309778177292377491909063502893497843675735373585854292868378945120029627029619088547372044363797497373248628997601303394459754814728128476139208230085785617818785508421816021947454625141684601603393786488866858101089814137776812924577733585767755167734527134430779782578690008341185166930188287560548925429616272712188428126495088608520026469372170350393091493833095232587194884287251140363309882655008080195898131760038832622961188970349541137134281998120426447030956383717627948753607973127991230580423345277182472063554204789899745921042826025344495806600208555781585946393499954250623677837425260164934713137483489538308007051609932950312018285030319079488195556627208573948417149403303833642882634998075783229202167156257855904896311749248882678184951837159279033251807601868881270520917916752725996467115176693302436553600328842063137072434450893095661746179738437436192543102000405580967368007867546594076003948678100031412798241753840161335490444187353303884713335534975161686907333483194369222644322485371583949424221594776970972205220442902474765179088933286328201664453052518178957735115340099974239289079690543775404485426153710624183051017846878435875606382326095793654245099478903807071399636717091168041678562722822187498233958851169300246647426842031635320790213546727875149252459347912988801803059341272682652464195574353796217733485777005224028477275422033360280621496393183579648967490872111432103417456933038434886771790530737764355342810498634125920149042680094132978056803809273305538837816902897421134371000650190333953174319918276437960517136453956324749873588896355468200382955792950545900738089860669948347206770671779649936317178377485467268192806310142067933112006407133749543665485958836777496865800707326536146238704922237057374233762946747006915677593771851642788326647102092269202869421732830970221042601696885001687108456902218497746519896969011974074297223122398459471779982859181430586316264965581012920656202104165390553495666092687806684795391696852403706017854032624023452247379068647068506231621289070388775559124480502397355609544165469320090015654008802453370589964473276310299301045736083140602457421091696607369856590940749438303987950224895289718320606941088941968550733565469610311716388457452906302708310348545279177246075454253626733160766807790912438667399466840257261498553316228349061578127792260157405946943752445497991350562339356891450332726820592671280038330297707074389470611690605149245611245174870807676782200702703377793612624701270860780179551481195454807145448851517397814165377850744838525080212615175817778774512784668228493094813406006147604020080434979077081659077557849869807906848752376371256341674026062787815537917381382718127029678588266681438358137852399656867130993912689049431513474896950503858061373393571728111879607415792393771952616246264689188363217729538992954869108948146879914439915377978421449810257767495185305351209960377049531027102569541815699708583709553512610693464992785830959408868996163608154354111877930211345774060217021528757956525651781870245472918827829708572360603350028941482849670603371726476362844106286821583795350143216381771214177832074133622182524559431594203172024165614726671110600201822096131312755524751037024058081401991569346294595695165077059166769948924924322613276732174139574254230536950571449695636889246056391541397907946052150069141553421200338655303005519081335878230665401994442795973892737511749445286294178839320005709887936794481326132615760028453667566065531085917878279535550936511421910903040766143094480772871608675313924726318381287020821251716753818793004938280573171068322254914120794413883777468168129497147816458779660442685057327519205105940323946475555404887030154139269034804275993471288669889943141350579474059035282070816294938619737760243773969181400299729593277030326067890915040461884454070533325941811577207468340027644246918194703732239216402532178809138183733907448130767852000699363285151499630275244638659041840043729163514745036223191837585934263143304266205602640977083633308556007481941874520237303588689248427662723748275459845863271217808161376362069706247917147812200636686596189490484966708754777606824338922577723238097088783776743909356938389540680051590281375820377355394362919818193907953619743607024283189557152414278132253885805360847783616006331470372857786189308417286359846282765876162176368358830182871881313152157060642858740120738451828687236652491732846742324202183484194532204601668664144190067700158921950576403521458555130492519202931222169481042630445856784996866297714370584895223598000221420114874121886884650779377742079676655825520442691338507010579852012024740418431642463746012060298756022527293509724553086261274778483550861783274314744157856030599778559623696382721265132456005389753854206673222976599923348062081645505345409499321914862450794722008883185020671910278498506137947820207155507063986025844170301208126940456509217244032537620440446933266969302969524868375868243231768691489268520464833963959385473359116595750098085252893832762843182592190098533238323220613883987416882090484644009901077067440177308696810614962599434672550360039598434680055623324199567362461366980853347255711203310534522048154749096374772573881318619938722359847878820901960863789659003798664858314105431390816459253320287063833923921531382089593203982147045390199502666048945994013938717449256977747155035885652650315386105934733775265791680720859233126538026289580400134419900836782397114089003818834418062660317578988213971448136159425576250307837161365707649419816544639413959210243598244954778118936904463968817578014876016461428428488916184829726188965837736942649155105839096562011568255325879854437894602810585317960967870087717333585402275102430275390627418417871982273904200078125712681218832306714499742460383371996598969218876024003910159196257203408828879235008629244820619674465830567263434654728883776787450537693954524054751723566852205408120455821996458636790116975187259826341118668191414785901668062942525493699444799251901691195530291770338917246085906526412290238015072056941987557074422383654373712647145355941467250921167466445641123229608731333149236781755741874720899077968086177376790546576163456960974331075725871311722985801284676153099478140980326092540607563098249322375398954630247132385599563017538097879500845233741660853486418218787612505193636237367626862017732000381328144030210918992558388189980064726490719060373672010423900135747726999299076168484351975047404879379496529882667680434477369288918680810062480743842303168369888307773683332979527200986586456610972395772460569687694356881094242130315116041248900637146995722776287403405134528436076868641731598746358363607090483946377176462544178586402085649752934419459805670087994671608007574883878607046593349460281761151349896950734607191356724026772045293692119693812905294055226214170203959639658404965577955834234894251817676362924241641655874061977550706739265214811948517971949045373252010940122030792234868942981563369683816434727633696224929946953765194776964997806045298961698407317488971922652033455902372643738625658942696318206559603314543329641776898720520024186974961632494329098818897136504952474936813722658303428343326692719794121603898131627580209891303120129341921223321844058823175912392807515020718347967154807515334863721740749290538815398828075289456531809837572954778687611376864380285362864774563781886421622033976305682091914281543958499828911634149190247180878972652642975844729513530252592096985609164520329759640240037740665857989369102274846538457738036849479790437153196018555424161221695303011359791828176654005226706032819767666248156977479730498128336814416872423259423799684343767569818956165704666753065672760653702284910922118877345024703281854475363105047724240523942014835640223236041553626889118667896490091732340757125157336022296969235384221478777185209816864983133918879160543810072936689015309938927258394830273773063644429932292027837506008841558787444751695264329612766662186219354122848897573578997744267143153867551282558492894032895203661535153644641637302107101663315404731628793394416455772631706899539429895561597545902040373095400944379078144830610526421264580161322405040375767329918216996490261970517415545443327591523618470753496502804570953368274796278550971021514821479412349785105795972448377411979939954923679512290156315580721711404593301018314825184144967741169298786483157173933144407259498797573301005893898920775065352093940419463438026054244171350459947982799623028092439747279741672680322093579265023784938341485620759384592602561813172772818254924970834718740163765819506110029418505145795739144035602792477523379748014706792589184647827702463628586176611263136054278345867205591082339585844430590887460933307606704950717144993728115770326481136920093277050270613013315229954895388865519781669386618833797560619981200103646533336811796416009052405010473636350021538657802747310271917641891125434102984579077291125502809166310262369831192891387828443003708492212988914833314248669979291399577663196935847757399206189657822524312198594537349858880974248534543251973372538040265459887088401290740353803600384003520250474153821260568950286829157667788985721923557543439716605063087514272027726412703507988988853806820867519190584358357671267850816907621985505996342979212252953473209455592289143220968659384874626029804515758505813289430028150652266852960139131489612049625002704627548064540079240110932986863189884123218862275057416151553289858818569026518504801359999656771133823027975790916617257010128252220371740646855647990588494450080383508347395393515803776138510839596817259887765760939487663818579866398806953716522886028847864573316316169733341776520818937978563429036541819982517597392296095818456839474270500333071542773277303392302654698039938689686449396798681512771710404034110651901236915631619564373985585286774042284790518053554159414581029134025587724667323763699365009730082812473350271104067563869203298673794553737254103768778561166288380213667493003493555464414536720534022556436689339606803570546797054876172551113609839695623091541751882982930906653505622043791861865359780471959593806832173304087497027228903657207924481271814461193016737225968524418935307728307687045698745369475650955766921412430960026939396090832535655504965711666068742837823576250760382443765324383799640525862013381382753199058406907714766022491863282266331780999491503000762776361395152107460417700465461113828075241390018180609685393109389250577601933193171905844617753867684987548994749025784091940133848412558999674759219874515809528239529910421986676427143598867676408219961021092202679613849397116444160597972041258468869623965824774777254098066052572962902766881085529736163599376063200617112509632155526000790950688075633878417796899496947621986539741783884421149487638694948088527845816533292216391462814802633896831735327845915613748143843834713413547276209778755461292668681522735710536872171449884382489024496183542925918753457174671869940629528470597360248953385373157460830512705537517290741196949237734805064934082098323547712853615538484444683766717795249178512508181571315537989701209750757427528724301980759296850020991440712788013176889504332143322869562557491060000609632071339396264694454778423663478152787497062708306550320043813262512584333900947189029307695046804751844241704639307456347223958258090065892405300172255205165697787028836116848638439449799967505324461027247838917073107325232475565921943992587880895100160283876262884706725499350083343822582064214640628574853292070862186923455886289743958047534932787024923029460687397313170692886494964636296365724631810575080429485898725552154726113531567428965147088836227479255981394102951182832637154538486480377093472798214362251745974115157671337310773341682663903432910844712214884859483990446332077936658176394944145084280334801974919984952133107688135221401150598479546652820204318094622995558278281555490039605811136330021477763362855865936515871601220528245210928524583432648152198914503940121745470441077238956615337841335554621332250301848710515123731603531227359447248158324781360876337461359055575246490144722030247103436181283756798190031819443704288627282745568025669987949549970211344582017037015188742539135576819965994471501054556268533476424199919074404246853105385323213206512159137260445926251201966366005049054055245218475140505926513466663527537069690934872954052258265739783581576912319647546019727997227320664437790586763355397646332837606843483674479633443689527074043783521560472903919546781847023415265963834342533194965619090263671697745453059563657794530725512526253536950076930628671738861567049544478230053114879528964462933741416079127409073717305142835703693111643866488280780510002606172120106580122584673723295209742533046960777036863712675075502802512431392495613420098506655931485229368523381313518717991157754665920577303986066253088530853142421407329800722831598498284761555232683131693717134976993356891709950938699761782285373148271533156533300906811173844057658585863726798449339326753301525616458191139416865053279889375754944509482110411389636914580937042060300415993136803732396042061099863934018515327540423212979900429068869172521856833702869225505981411323972521126979400184322584408500908649326829532667477182245953174319787221481868994788609864384299832682483197223389081917532442093810322905411358422836328453074043249303437722595214757673585763327766555522411161413322261749326268427883726516811110951669339073584821756273624925663175594056832386611243971521760659230206886343942577920309518399221211852827499694544579788574092616136557904511520975875410282144321381192615750693991851926541836481447523142797866008375001934116773564690452455118498690360520979269494571001745844791499322900036809017893970980931415417227780643361774358328745090775841921044259266500755543327960309909278667996911690437149162065567225366430610921679971793247983394257053364571348623961240253117929051469189607225889487848201019559261106820669245373334619596535033876372100913050142826266479839695771625949459234224026790073657639013227711073907686733237371241260335738540730455428029856818578957942196806277648207393982093259078558643344560551829345585208478158364608250750525010839810076229882231242934802071470123830946603700898926590690918126227156662164041353819320102363948231761578842453931721598308159971162124890791311358428721450643159529783693221874464750777624158151268345343823611085802243865753472185803190424890392132762987065469636790868580295968541053334148194932664348158991914468669957627705119042915008915237363580298314013186945351181361623476232067784075602152914313432118882777859697765459349496272301158578125685719156665542354893287229363793663212638844199781115488654284590517060041329757476766260025496548021455061725942314784057938386390088938773277719696192714726743107860891566919595619894875159981866234439411956306647331963915113753263540570893834922025264547349437366510035866087815282609116200842917157788768906334128015553798520642491674862706522064983027396498276484734779164131840764321715752151376625140421132903755150142775871717268011393639737434558653868127429440921592051280189473920338982857920481078635933769884827467634975350979145144952468274477283013638702000347238208264484177030667247572045876701392334418736971845280775159750456978510941247713193278299325456726976163453157866197584589639578935103738500206295747014930984302232132308967652648685680852366997844943185147903882964104918036890396036932788305619385625005427617598378941808704996433813180128465952308959627726316799949971735356051708506993847653311883281576649188758823882637232504960786804965065249364007815952629847170657079899411508764514779901826407834851193361576742776057360213343428619435015488075200598373091285895091364898206738125539250779257040560581314775955480676519052950445745546136614607077119482494042086120200340406616056575425273234950255786531812349084257181140901000925678579361072319020784465330238899765129028170611178120437827448022692269514044675549321957711489936204420567193369775846448015380735649282682558313649110650020092374012161246116091359203063142869802394705693734668915183694447209080327058502923939762896461296198304499481274174035014704295739033436346108078479310701263107108756902564582330891308175824192845894885295960758096162139553556416017885483184385408193692857668339457315383322132415728686579300656262801662814600932414755927308394540879381350653114577451276645837053140668134062752035349226923232273226206249808262554418759226378289060938631830858081873780108062286765745377385098851206817220984349609840729831130998448040809697136145937904033060093776817499036337644815631070103104140125759924847224399128934419600030096780046136913538736804092495225317247183060157890352078764998965141464085490243765268136758765449338319073240656213524305768489590441554664451895724091877383297280392042835764217219445201899652182571328222866397449344514492681786194710416805615449329533644889363715298737242577524658382677974128965555266589466719020232195229614349121113047650253847084544803073619096875769530228091279142412516053749704479913584877334547228463420236293809142875665250200313174269390042155403807562972704075801952893523989045608188377465935019637510707901459744814467017838403463024946811101615912782224319304612858569248252163384173839085845233858844557550567777830317356144232465261467756029178295995460498226017102192964871198232289490132412198488674514506381637204311034178726719911787340318425949028250456471551675301108443504803350311345205539301442592507311742566116288137522346263718048198803440378695841595944466254170875784944643790507073860659977287679103570415065925908919447583669856184265026213903060327927737598197090420113624210027110699684586058395141855911298978922787278550423671201415621968745402780397880930136089350970724833762315810895269140876367448922914217501487501051311253529255135679879440671986202457974293182363510989632235620246646140550499603065033274374176164590269033259681622831972716576731979313222682383344223464553738206970944662285655519507737078827477041501859184950439887136123707911671896552247092244151756765895095522312620404630039128901763450793529951916551478415243385413825278623410795135097180955164640645054528153522966092717299843577399100261880378640556782480895236024246509508949594199634130017948465907425851849914020722439031307230269184581769465657825806980363319060604108799322184257238522322248793907856410636984795333886291437288805667822311860981491767991426956604583203377014158053508090659691797979868142558844225019570202507574634488284562413849597849343599902000405498791934464202404838536889016901676077402908762564868687041938384855634054990758126485704030366712199564749102843123666983363011003228976033724904529015855510826506776909429663038987797275508002164427925316441461107647690447066637987641683513685564605702196339055389267921695642572898820768708713709759854572509249309147920812870048333174798663228803572084821312692482899910369180851365993789176675169325755447962686394487588976853275179587255613410543818101553585098951681327110478718744968145308332945059047435427416938237111565140857587701556025035481199276685801918907970317363368351856800693560295192134897536397943766174741154892029609845951898934910592477117397618994988907800878650546443894968564244423622895770713068790276206207673354434530854994595678409184354782309160436920690895634827783139005306211342070950089923766583368725274695101086526615903345361274425662112296221458250755862887205105295083444950724402153833403846790362739958395498637940324811671921079837761323499521207067892822352724239877398568033277854617341965191167867258134269519439664123994961066833025430097286460125642469914744363416462679931155795498074081767335660887071988674793912335645462450433597897256074642794405966042008192220403780868231960227673574457608956798397510179115473780903699576729925246318614876427356512893525116560529486671220426135904898863371226680904220954425861376359825212408783339764344152121928710581679785021480629594029455962850980246633521635053621848707802297367635415198504012609912898891206099235686219469614263453012396095089995873958097311445164367939402208064540569735212722175793756381211608845187302480921551251253040687697791328424216164212786728757710220249950328302785082775216712320864298263250265868801945340456006836348828999509809851566856451198885960851801311659388416740194377164688995066939539634654776711059570920369649656745638710949642761348358328695278108722230048380911305153598970243952776185968888713683197832803389468177550317625336394158844178784793513914642269111660752078728494395232794174102573335564485758625911811979346128316830058635891734717914092455189623606618000734501044736531998424783667821018978684402783380651246929765203330954306846963350471863321051360310723287111996523969606762851479902901910728036287690564271050377324361905629122305897518385090444136280912858578387773101601726163456159405412768855166859301849097128672014949271762206770614361461025752985056062554006671857975400489809504850529091324420870174312106854540920584551439746257278415945465890025827034379949197019124995936112866522360578778797511000360411284083625818736534837561389020335072326662455981732836432664690768144645830485097525552807724968332137905204267151944725184503879857219920729161517258654122381706533505870921321380869049503886942115017760164131059745213219152173448874208004397770283116104924044026154111089621187278254330555950770533666102057161104687984251925749470364306973692912537429855722953556139074958536994283163116202324179617109165017164033271980319161422533842994441551378416720849744290156896329974066770638452197330158613589876378447502636178099620919397702007088705743339746198740741405927844419838617013995888713278051769485184055050916690099489124346020823548449227370537962130093098042915517820768733627423442061601654062398139020607867722417166404914277679656327556485425124690908354509115544446514492617710552625875154780419280808719475874869634046440160133837041702827420245024701217700429553354754820219895663142145511726977076622079618130348759977532991143597611930023487109590759656351376875587610202515162483832109356562080099219587108014985754140641570380937517553797935625492851724083834325552574412152878432967340580371780829698966135165391191123645300866942967716948773037780806007042928233719030254090488127249691454537428332527456929886081000754334965964802454131029556530896179885108566279237770765769234901637518090689734166391932333859512666558668907190042559638177335213701849621418569263111057787000339990518707336193088529984513725355236887649767971007553194855506202199891913441377428427961051946858410044248302750109895151296931299535636224426039599509825078353557559055621401053463834910290850559147023466560608669183522485219373496205972286377361828227515727082183628526853200378499941295623092070883422209922791816088881213440814012023480587199140178130002627186111353269251648643458517192676935609575487425911609846215414690383838218482682138508734521629540534866007747046742784354288153907045641777735773621511010782261454046603193007595588813520920285254104998437334478449452226300646112473188275787097531569100270050043798274235426260665771305639452059032634492648527084757626819280186734203306488900704351761763680402805032132836886789535398662747969414312936402939449208760668201776768733398903132534346696845334999353098385482389182560931738912329794029032278565053235573536196073152100238029403959964505242332409744527799114470956940571455214260022081632351761477287850906034369269082146665916604137273601349595836906354805836752267576778187208236224835420785914130086642059640338825085430480203786971518705140626712303176712576452369668656212169411634494621790418078742889725107607830574510949877108552791297408480133732569360255546241688201382544802612462299041867934915064154316216610024531777646147808532157200218436731199254873801968926872373355675798597261432043576348599968713670278134694423685455569237061005460331644723380588832239715133071266518896476375744547392572114120201081601610741178654489243889885952186705558357636189774931718428084954331217113878126967202721318671776080776783901113840948448690699666920842783788550370417156660126371679734272811804860880927179401813231045941268541374149894903231111583398571515538657997083429456303010328523864654745677231141298100052554056610648173130486888940643802017889714888820864563000666802681514521849838583483903437391237050401590698391858461493196101561803407515103343752332019675007886173801045293757036303708106121635045439107324655141405348009877134356082661528252645196411733786641215271043665197718330711423276444671668475988201184252486493827390803858629387555036812975161698284641264425577205616592105726896908198902211006995028703335814363057234166266766115558434704870345107701244910701257453964139479832396209454478986473662173760945717974626262611196875987555194192937649068858854124594578922502811814980206965736383388554258804951723675938368455173150364948580805682282416648191851012435752660184554138058605423092588500405614487883661215938301204967302016019911362365563091531417002137426775054399274298076124613036496212796235056418241298553676887218292876036432301765976853365002891495229439050607195778025126637216600526384654437643086899951195271354405333507713879800482060535422314983516788245697784057071247133123141584747212901952022181735593783284105149184581525268179108296257610357637619864081658408344447939558498062684753214046578528860481032828958518732749460652300634073975812280499521598195743893911583119920898215304992427693428351326053164623317242395858648009248841266675076946166148314896917041842510949043449912732305115213476428328786158310385486556807809001434351793604181778876396785258119712969033856225805651806752381013874443986304945894096390520250596908347926130591795720962709539145927835021590423181947691455404333881805926746164722139787416996873609721144441793378854546152592367379042151449592757437562153263132239055643506121910424905000734369766406296855344365043436355811476490361757476931398123620664811322452769884389972510238163950482459712108920049221036442624811804163135893537895479541199552455537943787816234823458493172938371239066168309507484766524663019777645544139351121842924692047174416881104370681433858792942332037485778666438211029733247401529770759380943853274855031415316832433207295917857154718098967429006378357800021316455604921091964322441746615094850817288794693867904667096502002936133624013136375255636882435064087373599723070656480055646547454336341905721834016078397123012962815306696253743848451314632398640709010353204968063412232709448553807014767745548015574944741741510535078600765341914188292804256565227050208271823755562839095454628955906816086661694097092867492055866690910605490485838444719564357938710240808503449944813530802002992280534866094209692563530338277041182725669897817939146276384012920677623441402467362951034889909537076444578162429594473259834181451691560623900693525500211283815159011427494679485394332979311242054553857418579002581007223709245311929152525490003852280856904254895989788764704887876396383510638317959721860982207520164431553947607493274700294220919350480799864714943268565109897017940647269668510133752138926525134261230359578799760583938234567034789733587199618976001343268428505714708871717303555909186959470341336627868767925765277376772124119490608240905321863232487079734609212375345431089597505673664492854058192433193388039733219709126717298173552540801755371294077990517283546902148705303463808234194862402438553533778785028309953854444081338162630143714448606108935594286011491676909429310692642556690038691672264874445829042805395759032407848819788482084552043656736871090543582241762645107114203286890836518625582543708665233985255756707787390034406010398680142584277411573072761356720561616157918178681611661637537356606305515310687309395847662592453678117778202024907676671846093091187170693047841388177815002917955300713337702276124205066336794271071955465628833910320900672109572451404598084100258229455540979789012898881779709793001286255492013461503408783716011335590313917933199521382224800898351155604039348071138236350511025929109048543095067820150767548058782364542752245210575218153035134210278005552190957898019518070657598690332127947435467007658533023309894060232951321593966920300590214893200942228506652205510223184215390693591618395774465214586782040499785943437723003865016704881363854626678856380447420899862823539114009968193913600995704836255921557971024966155789738096453932822105274786005147965089242055000289294869539954914427047755517265356774887913412575760887058944044383574501947240881357608948929631724623467085929137814675946414821366780455109589910007163852660691163640227667950121964665008462753326498788511916779594889429269538741518046236724044372891425477324309702915624870747290256003785345474949340304078424142760995912855801442171599790367359738680554658620448049973468212302734784932805698315791204819521744311480289367519721024120714936687060459335246990536381602507257591559858568735514719158190810818155877977023850437526060993044073588918700999348185343013013945423092096475683527021969750295639554212846724200445495725225381917495231833832316479385313394941283356359875750202046125540674672140870487188901444960843825054271704570084870643451077306731520003011138503174507045651589095064061378866855312576063861382542705034631597072013963187042557029225254085861059990024736647796220043588305658537434196443957194431194149974456388605604865438092421480978061234422873783482021755779814433463228748373859556447164045836070937861966654849773001026968226329387599847799526887939539852019710122335983764075367487780194728697240874947198515563581736017691836886497987191834136196881165337838362916085798325337653191433934595657967561996850722883585447667157735274362286858169065165868424674054325461827809216139127601461807172194713389291855107169555226989528747901931931116750103102483925738424528445885010273907383181005128559973855351328207012746566856279400386149033002232578998556347054670468218530182601923396369401061641951206546289816747390574708464415850239874469820024307215160646938804382506049859279315163334285398035587038140032435704659160004809830843778058739816020937925300383945499871714214989120390219291118408842258544854606395972866774121980666028526810820337674215661197575278301418142230621346297287256808147081197236883127015258018829770093668319045609844181112263250598643149117198473006553373419580462800519237025356311418780146083722298625223110283303134030071745787075457877512990789228561069835043012823676452947731930665080731621374431097979221857895639700470748652092329542598327359235063833240591102812091089447969848837000333651430907067786258335467510129114295891200229037280704350747925548013834124062456343555785859926217807356358038325357593226465388726539117758361133212822767899755772049905133416133799930743430858136000260573327126333723398649523258693857840405627416017385794328163318616104509613104691637518053735131908744968354244111453280007616760372347185880383240886982602737204832142685364952028071122035247275891612983192808053858385531436766083959001891630657755859823766650492627325959895969402618448110729539495194574061398424504740127815646536883430408881064069757528320992817452554654747015456455719200951422611085048528944627435842080740511425827415937996436753233001086693001217423764781501679568430578254966632375740015838693714417670842650758429225640389516961922431273587097825206592314169415728015171145749209999718948033708040701177364894749412551080503586773658055529657511197299731392148063235282624754752312678166246560139260779731626006593771023336523456673915662617425473444178488011566228969592863359545281838198444854099686449007678949193763473247361992116802190893007851140072768737952001370664512104542596837056794642057546536393513158946583278697239762083092902735691862012573827631971953478117898962874606555475586952956056566916128823791746412815895648928644596880629770944357003288668015357676853154063193179531360722244188405479003092956413342127626228418204309583352468140981057124090951322871317989996715878001185222621090987304203145300053726699382688199491456104394394541658761194764334433834731291516313095804272313257676717817552015804282548307221334714499754757073574481965929025720511391471728793214882163820832653079724393338809324908294211292076836449992880175795073052517138091893880766292095937105976844594451933841818137515853416182242015606312386908049057491039356109905540231868943887815713430093679198517623763330226445185375678872456240061875045103590355694334027959517533652558469452521634232249542630523303408992399789652912057641939354140344351453204553375899549778712030951878773786166803401111865185092787872091961265631049759784341993172946290229595442778267122802481007381372744834844866412485147352042719686279769589949896616546839094342249218508497251654989981981934418475816727730892842923856012856929690821254709707327043994433997459023226364455944237513868465888392789092127029856640624472816528388738842666443652170927383396484427170519696664742212469011728577933287207937946768539345971690455417828892724918362623126756218866690038489208960689455024620492241752317693782356280314256964962007068078214441923426663572746278902185959482377865014422336895830427043458172058299163155778575338340654645221038251551340227718701781001229494293687226411357469717835097062909142010797671669150773140037405237407735373601557102247985213408613866619390478063792398745080924610947790807727751746541320801933332589067013753211458904706390000367751416188525260783721543643329490678321643431821357733069354205689373791677451030705348578068129566982396903375931073142871329506331257199461458065494850745181086370863726136223097801549633808315754213434629815392191626272271531181955368395341786717023995451150807154527478000137385434723480036120572435989709514051369873006881456463137993873946383699571446361870579127305601829102282922822896284641943691417709018757490260796908719751158587002398200484854394270135406625502118026686221423457195993281976658058848083126629730791428258192677288574823222780089368245557898418452206105970308995898903711544847740180444676444108691133671645726267077918206939969237387561104699922244672754062583602402278968035073314484975478925966305274435413929295745232457610513518818174626211498983126998640700329478941429095651295621319751258621197310936429959651108002159944048717015867746638429066172883746362120157854690958655542326433188164573108011939642781468215860141354036695081259626131791521132847462560984950141443797466373676920898379531697925420186142536564130739830720988340579978044755941408447434906451063928706572735589361580188153434054115230737671794299632337160979506872399797086431758717631202482194237131943707946936004509066234014335038119120982294444008122652033942474063037848977482301183380338203850166569833934186655619665031098907262528624743164574790126427718373166481432848680694198682047456462607216673677545355228297827397358605510952344332212448728569175154840970339602716877539797529353719201202775906302560247110719106197548558429336961773693283019307009313606244471323187145623872834729294806183194268240167579037626883420358734510153917927594197353504871401404821071049791884030087752615137288381683771531165418719877249005324801816351117348605309166497521810197637926396349177914368060412548198206368055032512249178346111560007809720375388784160048775670649826676658832169212369907473188963753773435733811710622712542850882570651358067627229811999476873895585384389300852793200564503079960037363242619613436231528393127079578396695229923979071696413539200185297654180609486097463644252682052446655905975043367436379863920738064286816877821697045325127909711842024691800938510895524175112703508425092479359866015924209372290490184251785398559610730507976385796681289392339986473185478917491806180701762469758128457501133524512631223081802495710884082918915523624916779523886865882385107730986069791808307642062421819329503540364816801931220764484452014236365693992881630078475890992965761876798655102096199462528959214092990247553415092741234661318909489547013243746508117310847341603644988214364193514379101059571262050513740717451178131917707214752325271916776337435277896980608473534336096757271760306553924546500143767556788135675482420406155217555584390559390264309335536569950975690544650105277297814689185644565379029353944292053197996032485167066584160818844794075646822377151478369343763321718288800849169443760620013027225987136346858735729030890353287465780723184645086782072574365857126899997863736163701201856409428660629553787727481528767050124418624190916848157767163264014486883479992195144802931486771954393461261243467488729813985216212922578391422463601778713584373588634281320408799893302877829477376526533781912788236702945287721232155105776722679886928373346307758582432909564544098079670142853069791264111059148378879171358426383486852228777621730186787196350168911604561257270719539645578947332728854980093949964593758289783001472088779530818850001819174414298687701861718228346961355155570842058585634744051206958895348792071131369454621513545660125931898963901106692391120074066054405811115710993062478882644596906668058508808219093975088756591210173209902271733675040625617741135309321810972752858699888420717389561006251473411117392537836593476598975363867006246009108401782074956657939852956062512188056332935972190458970437539297001002351147244741883187598367170819381205741812308954737260912555428429108876761495206602262459216119870919407544312773243829069618429439357430181256805609076140576359443491102583565436602119944965546707659482190779776748480288855442360996966564657758732179035487766381523618872737592144198518794861562218681546107811049196766122455862571671097649113897271551904075739701827966021469316132563484928251083414911790370269599367807427249799806001184344801364601442356646033138304933846824358503287455264809346733308224110005912966731996705650536730725020307518512247331304591443413955527371231829218323423425924275875344201750580512169665959883401327144315393996398671879251445805473741726671849238446040804613507509275258324961204039609015828265544492420379984482244523518515907806272226477024178689192739761483809834348360783127524749343825334235713811920111535643867586191351268446184245556746156087247707611829789863617981611957923732690437296915282382651644415399293005861071973838462127074344646979817301495958854275661122250828899719454490883328589910182279331664622679137099089304681725929267095995689739623908781609015083699793720319130929696118161586282513377839204467052310830815297544523086917639473478078583191896882032028946242193905637904582296382101362375266868776459731018847744280860498163799386404478604083592127380186627469333439383069639704738797031990914103734342808537861761910726264492218936907801724735363527603780057599415232597796410032455695835248498194797671286635706987772697271296785682391789473295710979456851262293524527092711072138523093996940942344860532956939483757556939232403550141614501393330875105067406789027643789946265649168249926640432592441349063914132973434069832905239705210964842842701924825681185749168076729107762780255821033997026662702016860716929445105733624465973498011457607616185210638829629249446010899799606645442635614098213719643576627565413955436726604577965269532897372196783650356787858662077043329641414883522968085402286819149357030947737430379216990531570608684227952462135138583855572853090734319655609511479317592447656923196947393419237771187483815562762133966614439667960772200202290082966190252290381117872712824375197530833904406527402885858890288114721493238495143224865786062969408274252963507593042742867837553938901291329788538172537834358893347502730719913042187583702476184576372834618958938339563962372137932752370086902096517264484791284832792181803938319608161852498176231845514459104752846992828416352885933330742655895013960114005992561783392679587936587776935485075005075152677116558323937743876703791903069582651824258775326577365065848526281883241641655334225383971669721178008716173626426010730713062541031109904682336422407423745827606108180045571476776999501834498665378284298771823911042791243614296136660338488490310539866214282246380135016684253769204516777422409408298000787638773135873121452533833091614065755923443327195660076382909692085652927446090815684316938449205955925034898699948754855352919807945067951466814512653544808811871049073637300299574384620987992552770242926707867366745657007218041338746712441572136786703258099465769960806184656505278802381482578700051027924999451818755559114770171959743166236751783374959881999503870781384097667252032103148466640369126266744602277894243840407210495533117263440693650522273350857862211643454416936966466445866944030275119002498320268955841410267616365481696267331159442571295860612442622428683841576329229739337779616102684805121959735621108849636709614059061158096999227935389763783961055087915187347776640057856001885327785978626259748430123463617957375568206788632596073053566940149802268904833525080247040965699016701509407102588764943558558119505542326646224905193170194361876196544548565328628797072778684316876287107647056697283098945628845909866110590581372637177203188458680309042390557768222041918830968764970512362498734583068797132133272088576096631062899106770931536824733171212690020697254669547799238635091957218424493670322658985182053889188205664346390470865848002202645193247717544751825855591919151990155706946439254711074554667248228321227471093755952135547529926354048644930876349103069892407558587348882009034317305314819700566895262073415980282025946307486476489997394459970332272469786407237504442974525288227911510475911506879175766536349175248132638744405207437645055613440481206155852890948516218799625557676294308839682013703193895798453237796037841638347329220308621719466420331800500960486697177609311489049420302963347073106141512715117611587227469297087459973662779821890565688057785384032415665624700661086120501295288653572888060806198635293517392473567348963992380395705492726409759772113402934609115850842820365701249611202445467695934991260071883999773727195894149668146576512216295033707863838036304430198670330225811819203637015686725536139277000801352102561651457624695938783219919708510574703085220903608357428753700921169419548120322799751840450614481326600397776766466544456866436673992654572912657321738982386411281573403191977629542821180357258772155259695981070977007026924017265217947476519805258655675043363337717494077595702888509396595113046559740608861480192527528757632067679874231127158015945977012380375146506081449687556511908926153101381231195800522568196567254156100810608745862771874190851733171688181989073761132061927823950714750945616458513526000460760969871568008377652133468234133169723550114480312883898202945277648981373397254974833646900802504810669940010165610200978835205516417825103218444169042021250117640555170172408304403045201494765952478046536347731859690701910373069104758848568374745795203955400118580575247435412969507722495557339116455019081098212113688290302612233288621840528373759525737161042520584938118478967919943815474541907839565432948729380829367665529814278199471547344286810753089657653266654502351446442937939329186175268310427574103483383316622906413441471642747448774571869935083554901155921867977317052356182868364869261620131389751072463424531959224318082787067788344447703304319514128398946200874415345010805783858409747980853369569520062529890724957234679425860011351963473802844510164539111987433653691254022500019491255397840916003528642028199356368258216117187981693055359550292932464359155882678037444147361405135735314161378164213429240612475298759844821512380235058717449114836198719599081856550267770177012428223374341060337440104102778046633270633222414521120236948322108550454075851058795918811194859622273308914136273959847978447887385345031584747802879424766053190305021391781509766697937668533275540464385308190647290215944069708941344630129438710048813021258259191517365170494139861308212706186316976088154403011751464407491042618039510020926260366910130543762712289457840042302519936291183759692132520584593315557713292004120695137378012710247276456585077517829331179743955918383598204050841004015292050814685668667121419673301890923162137329186648310210051416313938196376691116823315666987712457056806692959956238473668145059671124305730196544448294842427005930605041504371638911167704436550771246775919062315461276490128980923934267820794685913457451109756025460835363094447572449441463220710787602628367053757961473471111256184612646028577072274515669663190325907618989911381430752717103705258944407992185076398269238760042281944511561301557770084051014677424090966089075703809326181090588479601968403272834466325515081806126319528059343797111384503941357237536864237269564477129679082286961938734577182462016875436201890876996347561322131814255752783347159990803812855792800533784508315493342284372558106940675554040597114680553301551484337381136110889690313333085930912302136592283061451292606776678870475541457848384864564629657422581386998224232202842915999926363006920110094385374857225915064370266811103865686628428417292119134943745658205589828630115441129000491737659282867909688470423617640453934607716191432811216960146458410620574223760791138467005356630279625162937392376064874641007067352095031548951852692280783128736329521102839970654188171504336030469168547177611913447600006695573892942550055421147663723079746160723218159362375254336789156491689641629913343967923709424276405314944743510516905586357162237200530861966350192244506734033373754882887824041818796034025747603763969594342033030013466402668188398545945529564785904484068515765921368200814629768801501064249451641474293259880584024010223396133034897520962828225498650356455966017985294891684109439430186043185450781666557877814465873141566786238484374163051586488542627028263810986841269919565017145031927255918684300712857036670224768477715219649531710004633258325367311809322367607417557192470061300224117495508953967241987123560723089194754158075685017425008309578520183735585921706862214831945401458902887724793418032361634946794842334263410678892636108175021112305529662964138038043821437663379806901434066638482994901772336071315031913529805649472871636354486447752249925709760435748389546229749804249672867045615835849557821126524325698725104899939803249475807968745534134085555116797647659569822192329599850159005125066806722695584870442363721113915190680730529696473774455480395761531602513781238025117118490919800002423520669545343019782697542233301272487164424845104260007721453532997769980256158920184444599129677620373005092796537038268507697998964683340572221804851716894932009815884153943976858434139665846054697673875806638011628143548594528985512974520142365820295334965393069645085401154928656024807295884160968579109269946180484469898147322883997521245933779720865857101067976881991824469273938524222211509149462494149443709427637070321488043500516119373973203515927060920104883615715490138270949945089306522788538190477806900203310302494964389964390096790933027252744074345224529828849836090857403651952355290332386953899817227807680388623540896585378191956630407917204563965990491240062398360382251894872439504882073504991952153122088135767960020746042369427238291743475448768844294871745982605505603364326959671632124330965490849215784777002808465461264211130091577790775711719754121974766202369498354650819418193985649544953698190634138865888841629604287636045841628085855626671073477138209450288936752581968957641823112834288277882618889757392155121951564785092799955352333408023794159157839952184369711582594638986404684741870585848906212927242956038284180704988297103965919738017452130199817800702300107392866398939316143494520941050368925018846863746525795514309377596898635867771155683883129468353256520017457488579851083110615292833407244198396505153531664015473491786456138220288198748754578663849986569098484271252111589606879723590970761865247373991302408097144637243556450869396935105628955565340266540379006020523936837900908712694317112994608462557070463825931828901394583103028403112449545271472984280794103414615914299859445031464830893718168933904532291660565720473970640276364214228059346474920934641701697427847833049839208974885837405504829482638184420119940223577606196953595193162770481288086235202970163544544439120219949144500168721729773358413949417813429856851607072420663265742203151938119271393144169032279372443941291358533041954461053416597270846301090247444012559646905464616773524133265276924382954929701155815303671455314757751247115675501280590388332722566997238485140715827804621073883517493264014306641824869294274798063329019546764498947965075479024360288338259341536002230041480215774262961253349842232780268535076466253579248137953314774652448098251019156109663144372463918838194234691956916449375187341164382891634507162657910980698676043973331920459296775998136615874654249242456335837731765462648332694942027009240387689162556496778920904832301975382828071180857142028728971042038138838325331110712143893225721387380323924100177596363767949902728238078118067006104413415650796859034121304153807698453626686013757027227965091184401953447598683970719577974575597095857712652618928866776623061586768233771491571344583125219551946567710006035883927918107708131530982429848978723335803038327907443831733365839261181496289241540001431997495138914906075444026610589673163242146162511326770822579819012389099913236637830818687962484395857162570805622275000804331385624190540929846003964321306977629223638855084296675638202241966616016727335088504303795357759131074309697469632828292539510907579263979187554460112804107840366141066016824436257289613146498827015091314998477595952222297039611435725459153450323269325536696842005130346671745356136628249444521031990009054959454864244050322731953565149182903130359090501721706032981052364238560515093244425273599348842026407959987608643896070552119512914162872703446740398477866191336364293000938469880704263259589390016278590811294918370672463601555546469223755053130455913430755578866743615898074327617500374742878437983451822620695982574715445999462351349012723682579737913959520710634618107569086934500531717998192822529996429240952566925878718688407083603895758166175807805336069382726481134693776668584468668778498976483427161068500400691462329394307156549783402430658736716511840904672126312781097862606631736945293190079189833088516685926027887408374582373460069204089173979095674598260519382507475591092963353887103607812037205198047883223141076329832709507445246293341010363069490739106003776463422969003434777699890923432870517625046017224924094493480196085859845300964359769335906840111598124630609679283905618853550248529805082654272869131641155630248522771505284658453672030981135493119965123929688445442747142820314784507020336431416194083119267305348470474705238669442058781645411891015816819452603969798724368219445218895507686953673759249432215432897292910505128109779337374008574700539677849994837180459442219233205744758385029183801814113226109542408251722352927852578377760763096849453651041647375646382484209308914975600611030821443232689022363527683483680771540392667257123667990772032542498565171281335812031491230275815524423724949434415072894640445024688120283367298909772127034657454819650160794221378866051268438746655591696295222521539716338938176332357907776225678147057839823598677690963271537852307899117965604416864512799601683419529909507484338307802819742732424804582566224829379157325031207772044791625516490624677011297546337216669718097325724198105487032396831624218629853100130361154333674143485673487800258363094599423953795053093102351614030386361955903670519702451042092241165011889629601253008388016232708994492418603852075572014040361969300977418318301898751145360046683929765682325780626466734996645671406140016876849478786745846475091682801230931337846374058448938154487471326342156631121977096075414531122289658284743604862067472401962116170572786336387657358988160970510241304013622975891284246874103314549836980856215684690036445221668662605694662918138899237142195380855387841140379417081232773279103667468441632166336661585752177077034652148654281923301882426728124071759431552041677123641865668762075999943932535663086005945093316693127908641319754017435250905513534956696689085453828856617506086537224024987807180804424228406606893302251894350760218369485637763608320189567451825659497612127019224065969010268044361853758851616041898089361165366019086653193978942510379370153277570236484644364805886696065796460571572955799430140910664414530420950740440233997265175538142877005114523662726344342798269425203757955792078576576762305453093217208800454086917376857340210137424485190092106171479190144592988973513582508083142477972812151443062176761296745905441917118114760926508678774940907899822850079337783619218681783296030854238404213163928833208473359258906752908521993997707941407022921635133290614229396857272766536292703631995966198445205324159756629399642447497785912962377618550584017056492878161649583431233266067111453478047125151970723045641023637643333345858588502783224600844555696431522015011990893833141376933202609180193752300441679522079775191354616568437537793007188260070251347012460012433838250916288244212650644820164321099277964979192411099480391582243923755176548246144102523843725209058399271653511753802517630930799632146872439857625731430088475325646392863550195120229883924257690144582849371320503130955525557768487773490705729155401599621980168138403421440796728461889155023892781126088922615556316550733307196323866410126890673018582930280105482633661593000333765207406431166120037018398369213649378567345002802720670756964542975838847141923621026331635247166593782668652738352421181013601771079738193405133972719621700080597229831207924129838970074753741753684636782010704674921112347848212662917322425602763259168712951840552805143922137006189635787017486233061844330456566942557059139473632882096380826118292075816727305903960576700042315250142365475222540076120815672836918840847684062240877706508664468490882682010324167611297743564718042203585222301457421381234275333364030881448342413457660688712735837880114140843210908076618743954728966094390925793878260843142632621776562994081538725358445513687525440190408400448940887746075078596457602934858104899705230181752590844739656060826102536081779028216757718153420473065288828625372891116453938852851605838670219288017017138139043461726475333435251409985481044385622338849663496345633624665137138441937615402875493926464642627995166883723363982512980666166443710973605178364063987071280004359302311347747271421985751346144848173152919364789804857324909613497593947476802528675874220533868222674197687384347797789188995452506106893972420408471428294802602117327056815212227928025056148217719252915465684206737946124358168588618936152867711425858897065756718676973486930695132066778261842655947772584265747073675940726813607583016928875949690350817916035111956183057634111189643880526399359368544640598361203964875119696889461096917893920431287072760005849750168579080267196567811166073619375469301769694753880305558903875718709328826068109860716441361925395304196057673041254321461371410022795306575735990658346807903617101209028973138172228136466864986414395209051879997260219417955012915373365847167753096823395158378012635438385061517833692040782426429289664374499358130071198159213393513192769014902073861041464220803564578404305314326475601598390352494116295704572889220228644001040875593099608997416828114660798886649591493169859117455825104540060552711520504418226810149302148702325887497394786182908729816832229960438665480380636060511928562657091878859768159830721733063367059118875037252112002668364086266862740780754329984227335255478409852527184255259549055864930739716579848977345560861800331003420161524904532045049644570049348912838527592532765615523797213661186120713465275621602679904779506148117470715182621701131001596410294855766819299002301310901079767182444136083736701707457353363834681151158678051353289008945364779369929085368343240069291762647342896574963584116003356945699783091691293612859373806043436805365568189149832311524878206360630526905275391707899990410873490175960351383573397852249611183771579751410927432577663127185171467587296825478708713399242416259323507162549581121594263586997213974759173070293654623432519521291448237793444135915533416339160244111967530948097460529817701954314551012808796227041666793302375535679220112670729003434372373451307303156066895261705960238241118655315022320875833550439798708788516253620605229905070996787629763768580818349644473960844871762067898133385158063776763631616840017949440330767568537634544989228131313840001945271657133350484828320785652386186550909848237453967364968192838479999762660616553852310651684998362630312916952191375577786838292512997319684918330177948122324437035883593610735682937080906879168107819298007893189518807360785853077909357141159178326776695413557285173240787029006112419451283825689651533038169454102241083541884754119891609844323272190984375882249400952371620065678103015780186364890791888082228579963981931084764443970133362645443870817409400351559067091552952963293822425410390055541982452161462457872659771544709084230418133832898275106150761106265795514598800357409018045722000035253799629185852117327405616008713478750990787803738141122938867582404854894341529852764076141818311421584729097686437704328515024819240857423782005175108318461292407550266921465068086495149437285098922115051098450105219842631272901203015815988753299516314055476394061272921364381033696730205030693292791330783905967402530540989136704510303717004635405459426607153474636849247618031580561873223273862894068741288357329544262137178987758792928877452814281837697142509701134983564778336908420655259724718025527281307217642863009714718975246084128819613562688589525691768503871555670203448392489153197935195152490196154401410333926940864631708684770243699288629439323349171139404870545211791398876317010651421934593757489610493138559780739392480904690517363807486780519418895125759154743621989005550013876083629044837444828908787056471272620174808161227757393766499256848967681798292143548325311473899860223107536546295009282253012520380040815824984603324575564538450389307596755299379326302715159743279263587562715214509618148923398318861761158894079946181150042601119900980815976948468668011063641886372561111394347567600153769921747100576333107448505175108850721622633721204423107391475333131073899649975237161911500415929859706888160769115840159681963815381236197018494406462974456525570599009232583125925205579552154425756388285304190562623270665758925089117567883075015687369197552151058559680103823844134688664605662206682209145403703169972263866517176162190343959742411651695861356360014128260486086550143096994598070846246663654999489022621922888315635342484838037585163323620878678185412868924998929230456211628938825029790024285744893661837909863154808191385902732327773586766421559388743067312689994229412364631291874235918602730301828763979658022701880480698713439447283617063997401100703845757632798625522699757232685194778029582004281317565474263242701602150063778611290863281103121744979523286756435058499374000876776503748233395056575249571672716180968201976300419308162765589901515384147083906489302662784912755219026831344194399946707523004143542000599867546646767429521781911276617642942367189780943751364185921279491051140360895073963600973838445464165143516975571800771539248239883588584129112043954986908918321714483899365563783675588469035943163544903770377413712638804985341992123485717601976522642686041368667954616702027780008314290768957231623065588363174732359367941352184410417452938021387688362621221026296584518214274462112718951528518414056462871323089417880953073056739937192437636467220661016376841476488341980433597087494795954106738769147412260258929774385693550109215805387644155852712916185923378441437753338675428419546872056364413948722936503664899362700094746917900667291711996756496017730484999223334851244077372465690699811206714436624796057105891629044788617749869641757927236689033937810033568495988120199564662506269621476941832624047258762764950224641951887574072194378865817790884334116265160582153277711135891701565171663589075525749526796476768735434486290518271523234736564820200928211818541923076971722270722456469508584642749623570210508355429540719256647625732612290288724173196132583820294827673109658171698171770760163809015586249474501797993085527438767132587630210248317985070036701375504639168920222619988903848313143951408636997937558595504822232810964929440803929013533907036898845994912807340721297349865424314865793818447382955389967745532068351674253753777534015704132140038217640217219557228201604708660424752252366849118590804741730441365503681238414022147403019838676644027676209234303629922026193094968727501022465379774379647447501643414033059944250259632590399682745936666185271829990036679554571113820374619505161448148916126815450851336984792030769741686289198191196379620670349374142213903776329553243485961071666272622372181504014767442353335477982854346662426408840890089038518006944801192724395068064992669258425478141364325310464138441708334551295920308183261115363529741949131285474275864035429032902128243847115587521273536230692175416398946816408701130265140985743945008434253448091709050112087422120710196040607553289771899471302371535960210020095409438031129456778175402911582147462891628232275052608706013987653802061561441782184561282229559802475641133556938873168374850696135502564443030333424578431844673312076322513428340617840024228304278049626333445314142409395424198936410202653747295411216165118438257529753179888012634407903202954340071155281086601723935354549701509773761177703200063918028305043925867894020315403857315303033632269712983640659200018938274665605584089871026865409490220478043137770272878736274056678002117685530895624174978475486969976992284478325733326478707911587962584291891133316592378586554162589014502101371505618516351901366607504223056072191899407306428302161260755498654267013077109079817288161554120484249283076609928203536536114721495152567727842213759942752179689307137215073634408325247611371080804292884608460436688783260448280804249769608614751680902503293825190651240881010197856484188547725829756901603136391948528488616268103655271531018253832674390006346035077435124459932393330012817175009342651341194827559360503752026152285939506783108342930436458608307308681347286789674741951181012795195374525025997330747249353861593506170653240359048525148886608924450210521506919630009782587429397385494820329428596352855505795459291488070151205819058043380472288744219997790670243844832019988230702473530588379960256997961516228193021044535972996117087448124710819221034789025325847969222494735911004222316548975940126032868906504597001281060903564121937178861016100261536558065705863471541278794687005951948187875583269919915643769912580068662072927581804826574383644089405433655997582000178232092219400561605241677096130438610365454637947669764091588103325934842300770291916001184748568643029352678723118014206561864760732203827060941267575563101531106840982282719506012298909236219013756553946192271247245160353297018832396355703799819637106579559215344527988448354229470997414949117267761816788755222205225008719018470290492987778792177591034417940663831593510377468927987225029473891798532447599634178728482546706640939479634138955247202840793892320181827917909054308210923718178411973894256933127950660230424620512929944074280067351296970865935254732627073324629204141066259458140609608872472781140859678096444266448893122334890330850708843396882916280277471836097419991773409589076867463611329847372855265128916160228500407475696112685471769940530473582951711987675049885271039931647146458810224882295008814992277358435526762414589532285332441824012418925389329139714522974536647565843657736514618868067595690906382642763800629960212876946128433817356410004781643063056332426926786064091392732625267070408412448879403884424738413766221543434953702099062438062262176218088737302755220154419131373661207669024533711829434523801610460056075333591571407178729403535243697257965433739772457037766930634709793247807237300562738898606214532677101718868524114748484774292675091238458382367882722791819773896184162184680318001860558125666172967887599133253917497273030553519044844240597502982305620593024632107269565257501241333536785127655112994807965095264374147907939403208461466425833935703768008887322964663345526971176545665437729069166776030291494398161081358168270708697908578351619933430067093149498374407112561181089083245845557748115863805421741185265003053444305826074619281015839501318080053104237950721911807819945459438473954546233032934584508935348706425208376636022462761748484484545897792303177408025704902794845217761677238467034539756430233227604685902120472945540152430755349772396914444314747276188098557025166658013429800147922848885677673727469282229019380074235150668770391737167926984165091385285735620699616653827390707998913378906686220048997256322358095362346450585683716311191182303973042247492252068168406294975481273334175384749717459435448189245316135101451952551294151409251361394491309360445469328969292064968505780008724222157946929528641555492845303474960098450858525933946817679868462503390193895548019261850852067338484351918239429060925900012313466196787917924390122181491359914139668323301124647349429327912575094287684410927056862057445024642659485460575881583651356553893218877956712405277353108784833710999033713881307142212557672653139313995393040380352030813809763698709234825232385468115812295755672584382229644864014648169581581992753955082016329163902703511850380503067672293011170739202976756996737353183987340966407743013475279443601969566695198637362654625764801028421893448678740326123204787617463032977664005721520685569072207942473333859031554233871642604839655042773117690376815901842910468695670962356381641643743390680743562940781651398025754044316315301171356480124237557836484589479480687045673153135100359433084992745410065632981666717486927141587290376423023481690206805625736589533355312370536726828364150444900896623236909018337453472167750855494402042205155639162677107508850915405614151102212097751689711670169473641010617171905324178763202048177488084910350772085421891035128744507330445885455761360569598689052763788626889848745355859845069868032151154224658171416408148773036806056031607220249639553605289566070835283681477778687066678034381959218253438837321067610149906852610311129441786892432981012720848754887685014392103202304899962950415054080044320758088461555838513581562416457323562862745126070453049743868169614942424737689222705955023242119722507616904453452681893172272473070522744498827642024218940562402836718656726852150792920503546250578944067960349358405142075461210159711458116933887281449903713160052631082354528164756933688949851331398803814489079011033831608969251809472326452017229286907922898535908419647338840479714748595700379088598727665133242316961216828451992787020643809773434307096346292568644459957674491365918619521825789085743458526835466693798112377367237659969716326371082860539917651913008434920563930610839162946897168075262327084132563983641505510747590923947270662962874135121689365559243774756373348156698980263505989037427431644136278477121733608132234566513822090654302977135239417496706176777048025739134679009865652640627807345496361116757834990646714562574436809326325565535134686156456586516307806426154708728563864388411812443851106202501004987228551943414864171723737867906273966679496539936779029914919786069769677591684424698581747621666428802740066733832183512789620517432876722724593451833588877128880375026110289123854171984212261409447464425916613843255294564524312557222971430079440249707989966071964295527204804484974119728858198918461688426206868235784538731190066796622979259277446304897509140652893507807846864627693067844480357403114727807147637720555206017180420399924353868354616958864794168323529432852676845235731444205118820825372562242745679836634788108670987112678389491052740068588053385391517211458554416133168536587067973745817409162734067706987139757799284145643824735634278714319988111678541248901876929885512982900585782803565321954118271115579416463009121265268507234058999884831704883145689360201803540839170248075302069072415426189444834088100004114104952074971563904873084805842288997525922307472526017735801239354642423119475311719713484313813665162057970483935876123222694426254219428877168016626222765967020075529210986353761033208547863464572954024341703688808191436649804118786172419535259060776044484508128165661429608041606680462444752367440018287182093916269529373992094781453280252089681173288792008278674709709672315304683525852256046937349155485429279724704187759369482929530780201760277894569693636312320747198752041228584378327257941274316676641911379625299193523337376692861923625964488978456199489497805169831687890866093906395248705360222299147544016533056192736676241264867980022727971076319478673469893606576860522034100501498549189881240382636719156959414968201065814311178870252112641469009098380420495323562145977208562747667066266433022586750568267300761306601040183103830864154679211478731027479981377589763057817848862671405234296954917729721511281119500154291214425920507067107961372679375837908428817860820028704773215548417353588131096959127348710128793950615074737314035664910119075866311050487686823837640839530983917178984104600311634157200683939163691537721513789878404812729109020995692303843503019071632216846323201735590505810422119115270167835542059052040146075266426174629391380467373093613483128935380730497931740443740748434805716915793018891917839886916115199269940558624838332082760040421474105807286256070024171488804735164869019524744161854379971771778331833110828981828871316548419443021057024848151417890536307386879146129476146657756767630011548957057496919362187812418193225916008266191197769412960320959065731588048003761093006793378099155097488973168647291398543606678567584786650893241883804293967918201007711420047429192580242639670386906216220338865487096345541937433297055615705908900569449346854805885961441190302326390175698497448273995290637768135679016960029142704637096165043569856713749599055112589027020285791180275615028461010785637493193784310626353681019768295225116586162074564284759381474341332780052317592142547239526846281802894345648221767548811491761849910341861584197841296947651222418558846041607623315418283490716020292552602282219215620015312534837833672570217168114383284800351713331289865446702338065624753252981416356997188584381782234992169190426682296555124134590790598036761806320986485977733345209032423133702693389834976424449995876806913661387208597075344882902120169827648216470421352456387737777773605345340230002658432301283564476197196110064988650794562475513149498689543191961755403148013363289219475526199794565450570138661443638097136366150647230296318400188600880215593065171142523836926657165425430810169685931154811435574227302779153686081114319430144482778348891148205956434903255514845671072503587184351479934910033792428294888458440172607291666485102806639886017322735282030815622181084432111400772462239973877915704420075985454014458634717890661396397477729447146109526082026922634776103020846628408484075245397013562508140249898930561311101282871970595986325615220518139466061179377558026496480875100570976537513802138946185828751798931478989920028532614286417203834428678983665084237690406900053092306309767880846645922706084932905174482196564328994691022631405435175562160402341534264840641099910004931792556725011618822108982467445726405008116289229724824831842589758458187983932250679968485365996602322176948960944789718236673985972809194295712211845387496896402677743762340930001441941252781304482459307654093940261795123590397684297196913302659378556712067570027332519265039659781217513078442094345206960804099719345949224381428801294182800726879816533746350544192162246965374693733048323481325588472316201606079122379317843686092374022376707146271234700940313893976364693500325384454963311807889428536338304018383028133455688767731276201102914784360905581277215997318796280017156398230461239425778542774949370434442331226073459765742049888572593397755329680816713133660341603334433640523397967424061737650265209154806489630181554491013561760924554184800930250276830484267822245142123170477713743276846546105148636370614702945056015127869548418327604001193148373542224492391193947522513081466298423145164465851555491069905728450599133035766681511123758818128415136630482911964075678447203167053899043202740389180603043245101658157864796995133180268564137276175835457366598693090612492192313018476696890928725214693718120538733907044937884815611372607146592252496604147467523906919068699166753455539988799615769745228876580668937308438521648914403495492773469866618672077449794326763398129977917874571395446604321745568752678115659769591983323304928634795985441506536084046207048806028324064896577124447363670399835306537122728446979139519999743208680016263048175389029565223567980182028358584768823682049781067579632674830485968250839744086831174041658590783815436538870837259622660851609761138688339565243108469876766909140417784423719025168928841588483263737707608475186840406576064540697810196862794542428156488559630199997057037299429919249108779894373376911966176183541866172699135260564343689115841656342397193409569263248922706852025452294533066547170493569626821443238803608159482305716488663027291141951563248646855961225709161201137268095450970998477905654047862685383969269332739277201802751808265533917101632879513265683254012640750263415529912001002967296416246884935380262535604352007909767526641041442925224292700454748291583845621328756640060327751588645882156142346657188494053524397020786796387627966367941576558551695062208284415947756969850280145678687421391920274365578977653991982024629092732874339954241000064516667970741939767284317153185759134403291449262092614423501985787749443937589797256054070242064780563823430485578371246097029951712288281298204977999124213393772263282684421379708334273651953508042018640873761243260493354560423364679363792385011122906106973162136063275397249795425089185693873683097752857256145818112128313017479384187000031074988963481897668945088572477423930096812494069214828920101769559466238765801557668725192870845378653353384967172325519017204096449709352233438568814664177847162445182827921537704534772645586304425245586804209822390117278390422558940066384639272663886398538608969683237586610061646793182923015207099054676632078563980128550461174095831473610748804419983262228677180579845794565485375904332286031328703039851728857350379298450752439907023412110270375300603036149300048980024034698369264147269459474208295473685750303966256329601286376796210478617009889068389806038625357877842019611737858548737360204069947694601868329847319023191595382606199791253555974484710909498286609110764550302432389274756797005435817704505270723239345398166355738383908043562486897367680313979712424400813186927900948432743764385053893254116999370311568792482728630964507352337144858038445828158553556940068690616000428809122304775586816281745667402058359025901801168273099121554361777995421690525632345986027525013564909210024521078034955951802936640318169285372656120621253751997796857686482931734724918917805823329466300425901036713664794063134452107049910234116479089596087333234052473778283448461297784610421829350572925278265973785008143928455299535225797477661636955902118558177631346445973946328228050568677466543793855678480594780021194000316545337853184300093022611936081723876884359607996760012348305519609537554163483593873758336236753776485440773495204047704297012451331832302786487892565552716615860506655019417739083201069968503363160436959184340744118296994805534733458692361409934893316794205664887457441174692736923706659500673748010882318626947400450411888815574686515746895155663666697214815020001807463781959342378466663099572172358416575962165812648348440543082366859601352378204038825481643917122568538284062538768890565011524294815534809864736468635551666438043883766971406523064240778631725417817348182010315682326326182867164593151672665766810463981387587371305554959062687988766303432111729703904578527938690287733455677381862756602583217340827425363211663346021978344975293341753052059830967132445471378308064699159330407028095831597184443181696446207942069085320575765005909895466331178888537388079854023365241038026560421415847886023518712445381756629944334807419991787132249170496977241971795932931095182163562351343655870384584530368230253038416309125658060243700721324398199950335367881000827283406392955350762017105196730117367727797153223382133796407169880102024048847744224587726909982704449513263801659958248537149178882209961560035685365647284818399581223741850553214070242224642051714546298856783379813095231679941401922575870661843354637544100440603755540510197942299928420596468364149291757072344949570892606970017334570564062817159468079335098114733560523969252902670780749494939189212517638008337284049111620858059401441694482698400267555636236260297342677866538207824067365196474167773876640728976276513131656264727787819904475693256004062403688004603692886975079028235613360713946278549523391191058174526667708595288138174009569688056132698611817061893283097846865333957190479182533683278999854092605491197015029762005072825991018732399634472464215081204014987750120659944379987015496665957231279790752026910203319278436352311230253821781586207961056858374718242688721189606865006530488703228718127429810700392674711563587361585110325492166463938729792575408321410929192114081684773168722273999274916183440588070343383566725073882295421312611252344583448545550229750940089331497254474670106811285852173165915904566906799031750960289234860145025622312568094393257365069192280718226497023226362526040454091768344195675684689260375964404940000190969129537756940842704967140700678347800994913588904674966362398256389580681242795026638260868731980913731440207883888131860662033797007502586148068871378318473910145700962347876229848651330607698502628473526604399666481843684368578020268468762456585340328679881544782594251467784615477827050980072357173765565346156960253096997095719560329313907024486310222311224728748450302470505111996228097331015156202783541353425638566282391112703025625919175801208003618577077676226385039544415281087602571514566544488688933734353370490730863091226120670431109588628342784935918441503897468733524430709249075758510454054063785060930003231116689108720560118047373007683481607620645001623374010056936533133747676041926772742350536827942901514618977818152173428212532641500454667284434787960601377514011816167287078596385161217850984029816572942394266722298478319350377307411038412687404691463667988150791509122115275402071995838540970139998663117750329566005426761617707790037040463183031962181548942485079740043515345540453747559299138376515704529306720502218674106293094229689080590647577477813499074964383469355496608571249056275134072404106139201508678328790804337971578222143968697646720299546188191042379490737339994585790539939920920943699191349843948397791209209400827460545408019059198568851332555335730106304582932004573968292078365395608491161652254691098899644468775596685855084638897967380862166536111100486003752400577763686292550637627297186816062939620700312593635418297787889691186368210757934857131466719398388365298231684254792077021773969281090080996583941418389933412975599120395381253888507734698923176302627102073794425441832924326927489365739239884024662278849408179512465503966058376297983333182538834287631298508315402211665326644679713099108763943906922706757158883219055506692579020912327485661639472946626762578734025222640690270579473234106284488303565470318892285477152371974569835457595578605735900641809132110451713475879863183738736821288145897018928566495619962694299497694004257339951051644267903258138264058193699424541607281987336724401699479740969885556339588117180087189623847120692265458012026873830387713749860193618092845505692583465169747683971147243816345763061701857315916483045781950553109572559549749483253052455889170077457730877143802316733648250380231169437450427172064449223645552588923458335740631057980476845537929576927116429836419575834268417142385708120721342967784710092951262245451666033056576061401668862093680570781747800377795289154811720386022257046398987795678562553529443907550229961181915324961876525082849477623045074045189377396806953638940657173174364628479973712032327378077472146227110779529553477031858991876870800322052865450840107964621289248923481645977990197289080862390009025176521085113370082759471320209719818365520935490940745284687119856641278032145028384890272402147847744291402201254151025264970965077336738151849597422135629732594468142452268931464332290152401610027393449206758759229670112502477806310716800713423088929706782607445065517544814096287644861561782703553155297644665749085866983946431769531907214036982382299850627422645932719147487182634614944585074689358591425303848067568970042897902065408926375729419045972643773719751309628718078838405767523761538169586189253870869009835813778709689072433613797610353075464289934814575046434353006622798657449175811622830296035270396435122466900134638937854646283767988848439748859838356262805178703019118702807923510923813236729487277848843172404977047146307837819699792711376831792094870557348961595853672293581866160570413616615686379695298771169267693054619781407538616437958439809920955139790271891680945721093238073520299603496998618887908452968484659712258804814358617047827734495813173117556325508327923698602655538586153940949997094313479871825204022510581139681422672052147759285491059196311443615182867975098340029091277136151567668014549107044057792188341425944336530024637049116031516012178183903393279827563568506908374291944181640230762363051602973141007345350923331806383879105784120452825748240475531129372521229562963607896074022297714352108368631197900769534573807322468956885776652945167890579817117613493413794932155279899454823532488052021248418048957073828297997376237360988543658507874243497050159616529911491623305506716685907267474308671392561405080018868408572692755647557274287410148393675114409507037295991694813052449877022672427539576706413526870648204884624853733766407155519148479346846491119983842719003347051273192893787180585283681711929774961145662426200577213119329207413456110480868741514435841192044994861420125125918594479539443409791932207340319905297531916204868866720812169204014435922158766254207227575806484070325174419019877296029333848291177465568540639912696235276460745684194866145249542474413899088703543983862554947373834097794902259875799351554919820530700624559884399943413634219431493175002364089512410228104611733918724695935397795565923622569223355178945363408276716206480803743063878501908981486653040062073474544004574742955968031534677419041040423153020551270360172706621449522286711284973023203573958653171577786385572069505289650205091190686163861214205061789798950022193058951296576172199829767256945216298837243915673774233692529289591635588034985669409480600608972064714957044756218578603665742611374885491556570347529160338496123495470131769191800816949313179209204764877564820416977948049261097927938120825031040244644833293366223171259000683441460312857181545668390219107843271275823519783209955438810657564154052783837085632107399133903497670390536721029694543191945824379810887023918261717236645323355991511151811120443331319368260217446418730278508127288565187555986069863771598416150626196133859643077803739156812054400958363298507744767038344697314399593580957059249028084444104954061237694992657858590426251200125321245335494498122098943218515513912485052758402342004289865575495184703685073853097928324011861222148259345166830759476902327766806415665641113217733417825640230577871258223578451418658035535908238067492589544272785001747450048307185519422324259062247977951294003246784637620144593617097487446433722312606549933786249166436344185948053159031128773379766597039820025134160893288398639833310712004047756039106186734212967997023876883053070078273396641377026831765671434461515533803786065111740835254537691013825358650124530034086020749749746537797749473253902987328070642186032370503782330070234134025449083187054401748639887052955737460768586420415845007424099266212920635120860474391409510545705944710777388955477401651643978993976306292924403024091759575873571245759585713160726677537733757264816961958357806642432364706287897110279413783631275890239280323818064835349379491695423750238626646983139651348871156831671612104029596214623447049842161063510556123014019282973214261531247004518374839849630208085889292948878338747505424381310283192224179115348095316087003614812778002091480005091716573992722840336788079659488907921913251914008390872668105999201676778230743890764295595994138535832258075326167158647063738665310953101526333731495986070789590965239210101586470119571237263569081001380774901680612741369965347600579543862246096478612318753715984910526071085821695921918786375141589505468925459863879275444559801620180209223678573078297831033240669399787714441801068235126146589617230623895056639392198301300388139246494383392235313477258076985990109340625505291575272331225846865584792337890410894829003933399111012694960090531869248044319152743702342330404971929629723279444759237221020217437681906574825345568420314947382903452746957399405847251544443116440904115950609581387203918421268742120632089117578554295680804086425072241512986214805921415366722921305412752384156218696126738009355969279587605822605369786140648725699127852790012065314421250121694309086817854604088301242530820066228108724025346061024873877815451783069830214124068088735232728944310255642292839990139080704039558426989824055397542887210006594801680963363763981106713288372760788446334314683070582637222040837153715396742232607272362991180395959043533148055532300498692893606674207189518343954001155088862999036383171404988426359644761707607485936676181268817687579077820925790601501621717961541880126757184553387010866129975381673904996355572834298401527197316479933093740921529738070243729468309308830709807655916034185446592950524746845747231720728642533043159307228297224154230222985462357997319400124246134307215413153782470336767064997822970645829357351834500568059513602558874557691077631944467303217671461564793462568203301285999703379392154849529357181003423395806837107606612318889658415506634498702479587696403490432451299439823179934125262178796354224502075223996044178176879012300893651283300082925295090828011519313343870149818288433622309040684902125086177594903442312804542292276486761442209423675413765765333977033527988051432960215071720294629221049895581884296441303117303053793085712588979508373170381453839690993244918585272185503779166331650710562480936172682357872894673580484453023506286715740612666370227501578205318130600374483457632517327458382218426384726053900627926452179227990421871033703399048824851198394739307254565038558327621655166608331583689101210323013913627879459457696414439443158203843170972986458433159812464437859906119165904328153626876593178469792819199301042733618919242744778228444333205621309691040086735187180872587830632054795303930856371820421930026294056662565663792755083908219861252448504551157941503662609301402084446627286145463419948803241105934896162490253743958031603471900035975303009438769910225783218751208967176129445381453689890419955333543010572133073111612433751596107633585494902947531566636340874243331763342553009380838173998198261893452711767262977565971613785446636896626018619984444578712304689642987360770166828046106106623112695850996888276634953482315379086421006551977297434857617544363124883382335694718762291939796487149339306061471580200118694645101051439881472838650827867688114071984912025721607191031667497558790998291458806159332665676349553993221061588410976012539116707830611650753225131360894992419442588845050371860528058730037703633491446304625251287536698246656161290911146638182034037721265070657939216136894207334786281144468991479028023838319449209264067655174991817701744899206658251766354678253484419652792836154068098350729952533454891285699535319489530816308828842939325989995418282350570092878841084193743588395415948976363294842033316048478933527048415648139302056858814188635601820365393249833814256942105534111227495485831444321781523650518087971384196910455439404745094127520276069097179100717308116631108108432389581710172440291521122727704038623869413560453819443385494895234950687176880276092944260711987648839783123326919535321327904992553597603075153397744046182438534273579050364063890408853877062143029588129357750945816772252582119439721890488771153462151668557318144691112012761539800332218960780655955136967061943066100450021827440507755139798441571709061005399880118134284824701174422244436374818761082663305066785631914798782352925567533403912493888129966362185085249947301343397847216716096262254442632082827550235594155930898571102977406147988311196820821189604216153707296353477987382030657214759166809544330636115342071775024376066498293250421871705523127734125106992770182165994412911201555330098918518521338772865244317372397231199249246363652701618878792413955383028616726757929016957920675501876410776295261638796773908817143030814453544319293483824889819772259314738783235380189071150579522109697394623937031215213577682240006854913462356840897478624498179967870130318609887845548060887243219322937195443516462735083295825677245401660962966052433300295479342468918166685082886447558756754872952265546405104432162805122490632435366956476037034645990181520956711466676079443327977084948235321303265485630964299161526456641594522784402260747439778385905076606517556649022066248408064172284594672528368022988221368290296083049086944193987781279441203364970561835031105413208106471858922188244121743080110929009281754623901790672129171279908456499326288334032098994721979897262802178269300469219353182267806440055213151029842260459680023548535761871023408005455630990761386325178042623003038395173885879480642603719452053453616667923163621416284043916358254951089035672660479840179791238330760353302886732057856285443660523478604418727930468764683854461805461063134297072866081875721002915809551720400468666413213521140064380976826513403781279696624541188561808320704624851469016542183311903301797646931513512871076813233948979967583085325655678140200623457848785361599166318887262816772476624981907295336875653586469589451533466893835501345616597012121094123486450958899085242128171770166042887476162061098285255149735560279598722759529832357450221970258198036779784608267432329383977771871936439421035615354491976152319106085111561125072859373140785030243475936050573432919349083953664984761640807205316643495944444699034327287902530985677964477385734569840847468461836623334799102911386716078779046252059515077997133307033621803974941137953086823357283205770650008981239708638350762574421634643231133946295108585500344148908032675895003557515827896537125234701110607470609085577806074134838795636141274425312164886882688515502798918735602475747245476725033050380414479888819890514544659760975052790179764699189655437221328024496587362769717709890536647918818576766735279586165270689082824107761379581562274794659934659574777554214792769018269625248608664306749394578999616041813206941810850790918261682166440451883773726653456389454758471440715187092336614569691592520068820646089289453408263926492174166928747091772172603712724686028114555220203928163188820468463910196934703548512900354363652386930246905771965157815840541421917855674974501223404085366508758602395865707810279896899491590922328608486901261110698310370830663220123000826114045093611455506200609420228521115984928044754480037302623697602118161611490881776456577791566216183005015560982623775729447537613658975672338992679229254614814219956736009399145359926239355539720372523216787146596009514739287899921937915498351064390779410646631302731015554525872035142783936202428097418024794795763187454845131465488397604467381284956207433219932645541468898092897943527073894509148282480379376500838835853169818916054306614810977580256083663522266666917349680998824337054015847105544060818705537967586961145323538473805668666386931057911927155015874528189604469596169384192861929810164508890161131248845741050170933955877678482977562586689917060350880000301945908510711228538340727686934539482266766667521479149035600403060809010596759716898541901117113469389859208749663192812076552282873613060798271664760044076597708786651478511878201981790480287125532301343542251328005433831254309632460372947767517293832659145085980550942996870282068097945198162189279986025930700776394126818374306304298221593666778962623447508102012584276434364729351752005535960420151600779567511977751374240672079975354561398031487320858045754824115043117756515860689773209001158319061581754396933763278218982606138950544487101048367709713061049275187644152662289774538400347076251436996610052186165600111688052770517016304963736130923447967864700037901138831500872017994296398110397773637682228630262009782310395902666732508798168166443465155466944954840417632636621426178076970337445851665065908185356121680005622409955117258668966928915153376280333644436672791596389169757235613866788078589043559262830434558960939147019488751907593382858831412712342307613406349629262603715391030960425910403450384255351995229914650984447400205251338030788346340433788318599830506210726981194141355474076756310826606402980394578163970637681772948732989701038842262888817993283408074960501444047531326837920300720883523255832197525307075461343620789819845934288464100875021668147850409486690814544728204691016436829142163651881177112829667529459636152927935515699088643705345531713925805402771895761957316367664811211348347260935388580014661445535465084523121164211892698717518980071059848558117088544066715447568093578245347106836209962657390219396462690198143159409721290396910793753313137459945531738307661832517404254812510191280423850072182687939609310001206406512825281215994020204298235970110412122356636771274750734864499483494722735191146367068149420873176004367317617640581661005680031114201879660112525075627114024916565189137414747045724755600734507673729092645210607634151852705922924603139821802916866514337053851777134952567423281303619413506650288886159882047299111816215698881468066625102131565816728282047822884079864527714465152011982240731277781744142716441025327130247788521518963318698553084785627099556289555990592076530132493745469419249385994868657341793651491438566173890124533548549123324523122925513587369622131297173620922603569853523767810975908726133564626837807625588902847866598817812249965944930276044355131408049471276011955728324605949240064232134470032952954752911628327693076990500238392477642527374887859789321450531994280117937581100835811609244892378866846475064522217279681063382308111613028067187416998893177597770066126410715076549943208098198031122350692895432415261410025343212134581712099301651504372074516154315992651103268821614277915662444188297687527717312558367804365779546368805760448916050931492426931832709935843167198550911876644109041044087836164040925273591444060870834158882628599945982917964822190295991528529982458508143098329116204041026315502940583886511714333966999240728845870414394390922691643302583746194656792164841869747111989513860251723837064482721193724938412011510266283289271992168729064536688047675419621190456914364918751967669808856558917803865204447236951068853111892082614023237326793158653811426772511661462703413395706210625957418571217309784885522387908204464699561920939657536816936750474833174839918998713489827871640485232477114858790354453169783514632881000799756771516245905146517822336886544267419954507958353438131446826046118618875492477927290063571179557836687193947743659815346055849183530586641208637335118034507343509991826652984345171970545280280115095899829295098480273106565984986917316740457993155872724331148279422111509569460657694030708309862614670242304876333025610080350803179378988251454436912873891701864257960123890608128828458274274056512537511048597414654745175781144778141353937860801815442661339154416423542342095748543949129949950866478208829534086637673311544192791508184852542353511854430708104344932390044049508545436856792948781575284612799362349192721917935264135509348936045484465076451760054571514716882791739098594654358252134185950533464475319647542914911563583996158930799489552474193384743761835489330166022078477360512076590666961879090686809509839636381668206992016350994505533741742054741027115373585404140023534444578141722493079959887509218632978512853063939720924215395317710203434284963783242020247895376684298585232417020320430724669520191327388654783320690442141336401145025086860489878062269231988855077847512487740774111075742144410759364874568128845686760979137070130488004633032524858807239224036220319972579280540961579756327165297804900705722005054871726771836835935107980573057672555989165919390692107694910335256191617196318719070793696272697506199847841980213357609065951133526914772563076129213940758886716240771861858912639292850591711786421795139930365271239850822174353120486399364702420215396397920016080238475028297796801239342476779645968352255850411547820504863777612117572447855436978871394114163234798114815215521626842556274842652591142492325302779818405020720852069122650466581510985209513782697313383177760108616299864403008129444513189951942180715335648538675896109762679367556338384660445606082765729742432905286096094214824331744379286900592825670272175295370546162930406950900931418924230758175420979256468261439574765796893691121006435303831595043607511414023921483631470026309244490972034685819557946956071707560361012819756405883986728936190383786200404414856117522107024054212895806540089139608068898687470342950638709520323424017769757389303007642866423731012245160962014733004127305790791055401918778268120765282467767851561690489374747775466082890415910206496717842013980948377053978755957606251346680980444981717064808565392857638914473181889906885790676983891986549392450305300852585121436515867778301675408565326925930072895895379363656468489702911097755692766391281673963490762076717202472298812309902860469579713834182149133849914454676636538463235355087252144510553062663349142145108303627869940036083275981804668670831875435316805413104042552726246708554544865022609795683734473827158952653871845307950641312450198775911139876122438378949849389795475041287690629201125067112144298972806985015613899741260613347440818356597811883727904789515931942980710588400027385417754681667938658822378494833601522074256740526493372263741552770313289312208705785917603353818131258517935706998471067878741836053922132338643618843719674220914204347156133217944493827955823931395488635330394981392240602181753404491692169041758122855020579708489936392915905086350821943628216329680900744249854325103913184972615720296843888755334190599172813238587555198229840985717398746663603535174660209558828855685814724460561310875850679565634676129916444016919327928986941229931057366836627574169098582037276759015853636170259897390764666790788191141958018586477160869778332623960924968514982086739697815850816223913341778129773930152239203551654590526646031246398050680121302171208813521432103879337154417183123500848273517151276201041364016703315185719116637076400350649427100135146100993537510173964210687058096464940709065588337679417885002952607225286873906982690518334109774806636344564485228898697945119826253734196189443813451885449091883139238603713835446513191495295335274060077355276856651757299161410719701405248641711783258922015833823726025250739488591120370066495294703685481925732531580752975806182396010767058527806088978505393172325622434485136458783804398546645720522482568327185999437434351904084932100979782894813713548551511248059530566116397532094541751131352181099654320138306145823228263897248920852370361279002457988631550674739673772254599332563764822298651179079642025805560807300211997162132629569543852946116586286687843951395872883805248359035219439513062414833848107196992069145986908846896111392234114822959762817273566989783403779914896394636553390230856634243889709933834099974320418483459233993083868882242846178251989639197099639499230007579506044396575490628886531372262235318857466545147612736875886758968461372410633577247592760271412575218934231992654933458782333128146925366992338701344755443150962855643082888450631401158889652636184228690782340701910157878904375446380563233052134401062766676285852579370064482991531267742687612851968143703241317229992864965102588633466260564622662384959937495078578905525361331291888299363129948995037706208295922134130851572776725228039755988254124688106230045892677418041828792535711807763474800916358256479271162723364505313691587408333479903118945636038224935412891749096791908451346855552923836444964540466070271212294520622687987667758427285358925400651104116994301085700216884926673894767811481998379116913145210267110635907266970198719893674376293700588774691489364755659748467235988310738731996845502936396294552540289266855437845106685496412659683597079322972688648607856543239019271116283804850700619459177902626414675290874699735637833574362770461951192467763780044447401540290886478250148194730979499665013197007541027830829320776945533375309161074464969125655023746207033646947215432119004754535258226498950029256440319236436335039901369509125891655415049560136305060100233830665851892549102463050742548397263188078264630109722388439867562979005223797297454088254675923085605500868035337495119137651307959689931481640925372894237449233915206483048655918176975271415619664443703714860908268538257225049635545619314648988424209556659432035069288815311033179314893748629924766565419317423068987133962557973785172463363231575753043293385075204815338937721219708649887494600829732791617809243315588673356939114819055729269008503900672729863964490871350561170646912632102509464884702699428161722966850323897155385562744829659500531552111835154421571183002118067152938601935474302456117481628350151030927396848400328305890904863412776992183505151153537959272982899298732222210380050182185070679558290312279107665441069050632677455188118421175823465984664387216814956099705988249050705683559896182612105524174417110538723892318086030836090507229181532699961483274070998956123236780039284137143115720645813542499217350270330095337008878843307902760525193413384738192429041983894379878089160883813821372391483898887428342555301822687871444866073193914168488146124673787129167612604392331557311198136737079007249624540434021673865490339870315033161074651974988226913117214336936198237083155531841795612088679056673909669119908321000298630004828004022134827610416536648541142183143596305672759814897957330666171169887325319568471816027979972735123796768102184286846011393335618353214575211411631680796202166281596609666484676963913466744260705195090604377202694025496788936011577343205986241091797408259380485551206772206864164483572489933949172926040958571656910715409570697961944004973424880305799017441898467315653023642546702861857029569649386093379316225194157364524259077687814530440722666347665442298877281552983655934232813514852334350880121622978171868899985882432756568124672520374146476357978255389764447479342110151245440456835058220210129597099621972481336549621749111539351678261155862665885478745023419987691629105932091952907299641757088651929838294456685051387640524350250330614351722547992168494472967020114794044818056418207143675545141974892945932251922929295255337068235233543990794172287876299583024085918652682625320985482496744916562581034358571278607400228263962361014737544953344203024616120950134670768107889326466278120345344363983707999253860862825352050305330404305726941256137896995793435217474572658984990327304430951270136496351908473557427871473764257727621253285060393966083811047961867858642129496684064284498153059618421527734509139763169098615994523975148419447886778786135512976252184976738650408602764354681746788940303804694966134702672041674929284319762059934122315839455170028009772614601786870574724875660725764190484344026191458154784586840894734669512217519160357555210606404379005119339205898389699136004050391471429074792050575038537107091955697029825824408266610372516061628732684687899139892219116160877895917431527515024470265299841825356749431980359921779084893136593395466188206285614990352134378142806192033635403490381927413226445926107819349865184729462057584320427502987373879779829704716056918414933682624974636142509656679641328067710764384555608887583694247851194857296423344538565925249344377307210504351136604001254390981121605093211094510611328121156116874373672756730244264205230687776497624181851449120657544819841038675829901422644827346758453106073136987369463867445748394764965923430682083095840503804237385383241354751301582452943586698673940042071901611244342523211891080048225724882118003019515011121642124828873495147762600914679111943972147104665457957707017429306652162568733613029029407656155900552329074815860190285211722035428138161794968298509024974233285865593552387019736665609738172410060204781618607209094535669372892243269645286127149216251891786628661121546367818227427377904495880496560553354672588971370092670298821556658405117865354621278029828549947318558994639153438819563680123650469889307630470591174472599342593352590211017669514978649207107123905027535641030386030817278926471506651452759318801315806801888885371284110986980348747241034309056325867277245740658773211012693032326781250697907180770296316585366184176477962383312783079524506715269099174428389707532814871929612210719290360072976400574801765090329381326543739713068856818594444982862383979996539241145883879899492141198607779938331379742442976566368185211694539549462376200774704721031210037671375017001922145866985535692509372484186175308289515844102342509315926368495097093014243874002137209931718728126537807977976882647584260092812222956364315526473696531555976304956137546199109969257508188389704603996377446947074773664184048712492042951767702374954973050798562141600907920545145806659963031723059805844828273270497267191039807540171074595566423324998623797570123376132174873931147564327845489485613361188781503972401256164782367389292850082100118091336288600637391338054795529873393654773513918706509864094927353111915562375911931533237828381925656853556686055165032570849534653904434858764604684273553025977317407994128130270268310021193947843317671343911395978632153270985426942840288436609993966479468171172607098130740692868629321210862722337120694043250869337820416080145643306045374515655592221073796442342435796219419827586112227215932556971713078496177918628415078807048037843350650647517580240616785032968622071876346686419502324485997035784400815826740479010939984171540184727459605024208633588634282470409933774670317648082721065872614953867195118164356333702024320569582274800005548072384061651810672320755500856243061789924292719356969872801098490173557455837454253507710600720256159147181812455163585150564723030425270295563122425228164409504194382637179640956979904024965205413363418260280756289764568177253991964228819625864995949244859432669275681238709548219876763004582002506364192956164379918129893905661471231954814373326959734032381238422542219184782845603040232243384384260749055099319139544068624748096150179492147639575168098542273635288937093309796548748743391777338969062274218119901369416691935693013259916431850572384363712545476420483318771489418535241828218068725871122846111919822672316660809486264848636082268978988833247035761810640062791278550527026281382203877318933617372086867817587804317056171671797499791387016739281504337834628776314823033522772868930101801839931560173416981825042105855892800581106370263467404480365372718158222376762138610558163555890782921336307257941332513035076655918729206565143713805447773056549307003016907295668667486422556055881932249403576524746779513872438017392357046429269838234522402716778335848493737092242729562925574827110729506359722134245155247804014155435019899825891267512409723909864524185849805622935134761516673261327342986830298011787849687097867482727519733371191495255628167207603494602087532745803114110355105067690328039496454825986866514596172305481487634201738674783575773123783533206663952662990776796322279863252137920788555753859595831797686800368143049875378263836154714381641994674676477566575585573861287325196920823672396608468757210408717558696220951586484335440116174602244206210559664901880893012948915682416662504617217967853447278143783413110893534102488665043242808896159216524497611628094667145843382001419794191017270190174028656270054949972977939612538159718842261627845618159030730603888442434451908450284033075921559565961079384227206452192899626347624317513128922475712052744053243008582663068681161276377206191167805004431271555886945423420133554733137958779251806797451406717471990286731403679109091200613782876281797832975992780851877425748374008566474884449279378562584170294782668662721027013381013611448414105481814612197079522258994315656014659924340893664283825225811827639473019508135325683978971498214715368818035123147582138481305322079967518556704261239107949156041012367156477417871100421672894870158389737941967110004693676566256484024239038462152052594128786523216115096409307212425429787883394556425976176199225129753438561503301531189037511799512143220021800681570039398441750766596992281445665162520986651827763354696770919284864141361630824804961251678041458853129335287414803023609962967358885417946275658066671811514870942701569951770449933041890438794627788541149738895528465275411956664092559264476225741560855119442414594457025789114794202698200183951222244581413263995479571365577087871802569511435264986454456038580144491238754309541700644466399325638742348268559080945513472952230643070583652357413389387297296168586234846642957394248080619585201575248936442692726004832194592463331411359999347160023138352335629910517098470300077734501619970443306194694942606232176599733183514347911306891175789951668830084900707258719198569164800844065099475910590361964549332401587263962762374149598443722347058911209285339135524295556873705318061677129859172764719225656863267354707803738103037576758086615934218805378541260842048229979021151835408863061246169479012533285322857221555588785577356087161392709052779460461818894369664181416488784877605910068580435190930383805690331144933237111686634141876238090025003968404638369179824183379631371810485470501584482486551592369507333320441794023122928176417699075531982335968660780447756461517090505515074481980345555556759950317624255146366323901715190474593220076191722648780366938979784900086788939871735967501353787600584651860383675665047220557153713588221168458925368933299780454103024355367942588456197312444427868291247926169050887983095199871613736893793707070407839358906580139939455831318878618899615504628185913039120472806286916275667447274040238365792684792797114329494123543149335106925436065804068063348499234175094303684308427659664305722895566393494188362681597845567752624258218394691648704135701192888060567816110605285328859532594953381142290797235455999536131698437412498675012945531639322014700429495139892875595709026806333363260563779491087241336282272272591080941147407560833315150425547025685062515336464491934500322983048134834369756189572580682923278667198356283445736492891376482092740778850149103797088563418357917302624077201057698689175130402390482993592606529531364207187096793372159927876817313685026958668463551992753444085222676225577104340440014757669620905584717168127006243785668067195394092189962539404380082865729672193978582592895992926395425364293371184576993483830251627650607269607386258986609932620951524677035854525098677127709160539640236265714433777960271636146262581624096263963712848209963562874303100094092454579173206071788488222670130722071789261626631724739876030159351443497297148042313620655169915587984168557426406262493785174739312699718025879535608531159473276391684348455501540492477435528281675363263919869633703186376015583693230715024971348137425671829725070570416653748664030810893100238933036876193276525263327875458198016527212058565805044506102398289591946213799070410617586326560446049643204354618983973074234824210615658022159354048817826836137785563894454195786524753285627736406704922635188875470047051296054436449473430269825969109180125379684315440080654368940472220184344220046035644487210252489814789436198110323255930377129272014325358094223949713930615016459751459381209739465878668449866806474636090766823622884589316215171206688850992813969714679758194433227221132003072481671559888654887142554467341251798519584989735164089655009675984211744946406185350300433503017455112452578566271292683943608169492242372226186816663268149910486865822151568460130266803750451750748888863266868203843071882875717302934740294554345974222104095677099218600580422304907169173645524125429131592590384735323304188331676737553274682067666796837638071405651872816303275945310969270074227918167028759599972215969233101851037230040140348870197610306179146817558235676632042334196468575520804822420764996292905226922220633306166519716507696966421068392652924550293852562181632110065661222315125642959829464871719946967554320306952781832944574584337520565803521033111019776913252910000177638540156921032485664281365259711591800250714060700008802826218127840084532978329503124203380716333605732331841948494193931736420342083087773204288764446084488683078515368983775288167816436117324167354301347278649800825645982951982166069882885497646701581802262997087067249146410525608659755967302518178402963372488993412842672161577588803741162888817595195727346251371024782104410396328663475497040014281738496518152744253342214638397927435952085936334061461423796019497364053011170145759047832545789543291789475451675782960954105217005899394593264975590784782154152322539031423116336726320355099415964214922900362160229643820265810403901884027547353400579807153708000083141254484971788497752064013284029512122197947700791331209360170226459785290968355420873196115169726714817653712470041482507521072133016695416271751565892042380748808904257715534213011280851381480995705430160503402849284850537566998124843738213610190825393737903130108577724209772767618537401290419319739943803418497738252922005532781452962036722822717258102072732655893499972715740617629065237502511906888351908094533375776054242731060968073978271184060016154304272773786805500737830203027900428401968406385069245994497375118574782480136461831754683888991132828620270685204501178367699254988903558715356712408612475461521088344117597295351624557528746712926633237194839837774917650677066786992074261374615586921907775333128477344763904105666864075461197257487946237085295093097363287070174130044798185596869930639026987176241680846860082904354894032491209585055279190212541204198895846734411964680609481531704663032734023219978820313257987814275651485265979929624858830091845837785251641996214244843704340222338341335372075612609467624398085791686740976195062808866059228745532812615290380972778880196010999668584594363007272664398916153219487444993163429323134937135052460699750707418422015613074789284452423329733364310411083162485620366178695200381114569310442216276991148711904987970144655689952012531325163216382826537791634862237674974499205101975330314539149363848757447581286120559187853111966736707879957062485759564420759231481878469270701917907944007898506877528725562274288396416092584064121247661757475400579872677742384857289057268080415414358972185025121020275511082233113057471534258115482306993793880093020679293355692342379622777448295545478683472405365917702835332493731701500654314035759523226051211720025075011314399892651268276819201484504616864879717426720844351450804886110787256013815124322653833482784590449129936275370640496853682136483359370781066527478034773451358394786801283322402252913922006736586120598304476394124248039058141873393428523181142409168695572078717143066729057897417411492594770288324834248681080141909048421448911805592591509516829426606393948379173916514147480326149757071837056370544840261728973551538929113140235893723421821075770339157166696446116190429102518339562078665593192861209442070410629657630613342444485460324263532927452246486683495589790232956270667879101041747778801998274928597086518303448949937011560275301822973987595854183529668463117402387368352654475411686228083211808125663099994800030385267469861559506071000469334663404913451283778605259287495089596952231499630421248291925089592309504178874133062612141212899328182924419806884087720645254222396728387336292638247226834003899397100660992665507905955400841451818298503920377161216845290334332816831902194179512487503782030641954792554024977610630417792802585552985120195987995518737015813300845555918709953766412664252915789992438049792001599514903680868616475357172659899235174599194575137374542068868732183490821996179481267572443240163181506710804725456994060861584265399484488607651166334061576115270279074706738579365243348460313434651659623562124529275137616171266014157511769418975307668736675642190181991667634085022375925628415922769492289171768296374242531770302808604612358309286823887906064976003366064802344623966211464083568564323405528666852042410127266968643876381478091615376635405528688584322347958255604957089314192681583072413968335173193965080767822656668325373704580226129865626916463569978699812941259565768985287055113439671433688471187819560180647006327156812067533784039589324252926922624477929080346225724822547374468880372027433217318395456828928013371293308343264787592059177947438713752766407962109233157581744207765816267585487160766801337828475272831663735801869850059937934327930436001381388971181401200132990073014641908910230944318974250209838380014024725181482653059815450823335591848687314406373445530877421537033222585462881990966383286356121509349253711374248140471547300450749503000948093977438489371988179874370606332327625962296401378955164815429409447177299884890056768724932685437945150073603654533592156374922943476355290673024311249262320015479963790457120545604354566770818198249864076548497741631064103543390848527554712149877197394948516507215318627431795416913373823050355979840345633894783923327417903944109534093713958694629179935761448930915284767477147189207532443689185025137287019474858957765995673466339591334522519579487107020592378935032517102130048029167736147885365106703311640538609016044610333162002614019988876913039215201329935280906446241605960224267847534479197981521131597630323304701894791683821455495129699931523407290633913984196483997416398426136082676592871255412047714704165278158758593409618026959587494426638671874947055335771035810245285914615002268749128453153035210816322918346685580391026778804422081874672116949761293718146990069705104011657858344730495883065737540196368314137590184859577250931582356911777736436227539017607343385917218301772354733645787539604905995607009985497538836371316334401763872053968471244638703715455283074100507342097748545579974804760308375113023019648016717519619104426208093271785270960488195531701776228902528559053775105121139076227121837754870110557339246915017288850259416028781156196036208679505577926413805894250893872784167631683214453366168958790866555305231611591186692201886585464185130859753303715451821381398783077618726489030854421390190433623444816132526652758596130302223651397188542776851130738585420758686639267371940159679324508426193574825562360314711408007111038729480334451102129644341928252944314323060249432738399637038178683890094702407654113038918312202687061475686336086257259363225895942524139523675630612377464424477907180814826071987465421729897868781811910243286498271813670925004469908157622456985394034873113925791596388907868152776106471833325306610928355985351412109917625734608701327838864595337003939655246866365420049640299408658904304041031182586219009339465126039203476960145592249703248612231362020968528201472914074952889170152042371296656768508358946536042871697745281994017299827999075044058409251828750253668007301227454062465310487396974108081533636466397457253794237925950125616283255079234331335308527974900972112144224423166805269152727172683576015499916492201089498247125802613801297919466708769125096949517118245355110736901215454403938244083730680855638600072383972718622716881112496304204835823546538507783451282404611343052581225692071835448884491459560675372181057017535381476491097962880824436951946839096618923365762292339394257434488174926472618873320069648389176820281550625057328500394435511936459615373977417890286476275185972519208007232260761514833526184242586377616522016196509149577932389335608100177189554961070095919772734309480058510283251939651198200900639135333517745782927687491004805704169639884667524112495296840670749215490799681719780581248893498032427350090763663500232567227538703647963212109054130639908571767709139727260880284400364560360678441048518644448851685473914959372963430060551098561653821815463752534026854837600625766331846299341255357008398563241042767728619548302511505244971994757712152465413000032877823954064246124332462501361174975156919069018592364361383153743360036253375501334064037678383634455889346533107537834757746281090536692295975421556679547571567363279993333106157753390377854585478193296927228835770262146472207794767914006875880115191549071382636146936054511920391701918338471051359766596618990415436094291615640508224798703935179819122214388355953564738245410636414497582225450768230911582405753612903187387651080649366396343186244629276681364880262463144355392318535976892122910615252407740475969864388112040688127517991560033742836266985837669206000094339964120618969537769437235303935782268008554255094780252879964154839412179031016781849200732432969293910019950784580364035474543672437820762963697535726721365100363458604370059656222330418695026385018757146406770299598641967120608927743335592917823627909180821793006352363591932558722471196614972512532558757231114841767704568829715086152269195796051648246775183640416715198101515693138562241317139077191386407962122897305428153442389169806016838153696254073183432908829229099168286586110951363573641639150682951761177351036309490779504581722932262896040230206875387900167658701925777770326378987729921387566808495060772353988360817269839142401964871548226077288918567985305085210981592671596833636524020912512168815431352454806468482845347545789756650724541544306429621411176393641968153815830852009171390849664254220784967390237973189961692182672335606635981316312632887740446906791226186804685861068973935257832655884190462106225691031845707776523657241954676236225594255079507596519935593312468092650165609041582216718648564126140525367742400548846191058920166540522326950772296980470184497930856609356537034546689614758050797325875544290494333165891032546257335577158869986753602992024271786052075428907978848113854736267414392736724307688480575952250962770020224387325539871356429684881283975252140587142476527467084690539555371940816613516529381195770606459490270838955870501879271294015928637043354321624226282143090553573614273873755354613558907615221695159896833792224581808973508350212866404043464714406732305062642340150813608372054134472172569262530989814966313944498760632414266726563912497618138677365441954335777513169290219404719617151329520424078942218749010404324220905198147081627631149232949129074051289556456057335825725055945354552243547493770494786888748029290973902080554851812490701984207588083877866162426621950439152554051016751542129100690822323940502985929607859432752750700132654077403050514985730897886261902601916216767660127550090957837779000598994652907825368793616870146303546612782241594065783367165964645411946545984196855552967730381772970389990199733594751652727609453028432076965333629861434039469741955334636032166534472763951205361808335376861536020326825915927913849089828522884881522137934363057489995654205773968735077602595550622961925436515443160960625982123041960801744932502249493110081442697227955706577673155899987848623928700927572486784292432152945135183026249636839342651011883977802823457449460506941696500315294461131353999790883900081266703485405273014983186927765310574001971416930232068104265511444783911123745767851947637050011902930856073045348665052653422067776540650456197581111805701153081027844985090840948177324511916451685271492300353239066249051139651289383306813171653552486063932057716183787027991243977440353456162663368008847800634830715767104858696506522371595336578743160725849174088874095064589378320454784974367108162579214345305995318928082689172636853568682271616086101348060144602659642552696257903423303845827263212301518691858336871305168648047549706752023920605165147875746813680825800006583676426021461948761884143958482653447779298296695362008456899433693474856278594355728745888330164085469618189493775833778850302531887417288134464797217371055705876756950634115894300228791109482826783709025601942318834689128553185940132383694474998598628309862873698935976313431838831587325193708972564373006216398864252024420959127698696002021939069670090984996154801813813894549561450751057976338138155366290675977211755927402533409592135209192914311064953748547898207878987160032268798652676685616315702234879518470954636224711584489555761655551084816387123282542064557190500317597761361866594924922147645290946205343798610608182347930614363627951304866890460096457912731252538779651218723853578728323554622337215544663883126649898260750904871852879910039907564738755311496883950937661295669842774960617774169638948439394766749425226619728942511072018538587199485984628941548659050749445844647365633897792074870863096120001493871083163619299057300732588433679792965949564966059390094524552755027650108634897470893760869559909750903711294045990330363108783820953036078131150389587242172692987390340554224311383867339893648238886574244213081288751472587206557146804566565008829389251363089774357176366799085414202056339637520995617670344007068283729968267838636742814210587812871706284733546447619454131007079384422930200284640650780370919057401111849210386473372922315530180905851733115960863630848923814775817799616862930993432687851833685242708745299413196724237480823897388767841500437025533736057437874477787136315314455843457291234089596114758421914918302033123505979754761889169058782364524961916876367993802007883311340586935057503195498342213169885297984243576460113716376595035980897768901156665621940912897858153636017531832931909679538569681708676316633323355277658406113233557243522733861790592934081831095886341806326413458209097053969251790380484175179126243824178290795393909685762974999837970684826239587361530846990629818033602690081676908714346394822635979400001908621478890089611177433297039475377122224891876363485392554994643324417366698185104854845651608215927937617835748312635098716097837665474955124882896734295549927358068662763723501338619221178861577501066035895786169521180632228618639526435610660231229682781262728996800345212822337432769966435175521479154042112657832661630014776638694435454478351544513876381314832292123519375559243677791824946079572220010186439417711415745784377727914948208502431981890088945943421024092961692300334575825034154063687036145748629469488387694519084808859926001813567416893458217977362201273591596202465187297130708044522794215018832770761358072253649546278170299889480760593544357870206022710099469104027204949052303710205079107666047102240066270790680496635827154853099850823003658161664049726222502782696789452898963423102250621915456572092765172878852605905679599494371984595411715653617311807983796432682350274888750055394470489974329674738309611411449447399120824848142684571734827841623553289782157474177054711009318141440938427404276698465449215250564674723853474286721776730249080114375746316006814924078758894095872063698001603748914912538931874206004970740958658908791241949987524891897953779134060967155258208554579837757549279783808861801159745423334664342852835785508723770731755762069619395189960102974346120808190837740026102514115243786573744114727532717189114851154051853850779823483813564812436132523050392465778442594369496419227906488390625604168537832414828755408205509047901825173150613264344591526077688310878504289826673972445147532368287465166398976384271679115750162032153853104689684581355166026185117323385669172610801391558197289774410395598777345264942060627427745146876876232244728539719455788818206936209068161172894866854756688977127857484533116171483723154607175193000948809537493801245752298574523483784540682599344353096051757754066158037305791062285156432917452310036053560198777790860801667482534797188809282463953218004562437565039115369618194599309743200653875077011931214602249936456942314328581319134803174978796715510909931337536890090806527733854974544547506667693347827661863933263964529178181859792682316638719386245255676293068961351492053729014817718816960653201563304832687763264024101581342867953852715980368959888822680592231268873621225824529004117690548079419525183891286891918235192668554019004063158708978636243828941860293721635808541405876742679380395519813505419594986888595586167033793016279241901327376355256121592545170464196260013526793117562044680813746616914236202410930852304644734028226540584584227215300616390143790992560749159086030854122523045440186227671387930317132284219159869120339873038169318132598940469382716204205331976906248106465940131285334778338918986332897103208313745207256932984892618131430831335203075862950060891383163971343013629105474913666411895520907659996065328556509189697728466824599005694632170609596778242411443169973890662516936214434611144891121194953791835741397110797171431659824582936895670025500891616970946435881111366273240181309283763451209018003424928669136140445847797728979278521635258591482963003843629778757201728484889448016504958309359331175265383243295779695131723944123523792620111479514744473694384611318224690866061285798262493839276046149326535369374957021445098586528176909492226843654069235045728047367328013282595734936437402739313985964272337691076696912324303221497362785474185923797185885433885868479009430205315342459862685156258940571725332117211762028355883088606828078329548086160484116186568999100281769161860121898968217738524560453412926973708323172654131341128664659313914843466235839450591400996477918902818229934283377226671631844764816615265789499339728686964832560366629855159056549359156854784079408235431096951604683702740105521900085671296319614785037993628471628857256157294388545823196236700768479199215570893393023115449014211312358129708059318738947683179049048850501727536360303208296601725716386558716983496789192010828327047240286960634514438096524048938917053142322760006349607861270964293695140930679321703423801646538328902104658127723691932206911357795039178830146876359618627070093525575843555841866376419996494257473360190762040954671525101218028816736637057656639381077858939023733847438777209842524242132715506913113645875319744266061302015734223425354468191218772382456514442749920711038447391599281499285406569199017235877512352137619316013125308850077030308767816388835899093432670118831441973897976852646754225974773772891610855236039318154902525182958085176751582672445137085698777883142817399131541481952260837938536566156533047352747909902829728245054839233450181571546420072124854239283209284914584231548305596742181577478803282429064356935241724237417410420327158630060064076056341697576763715155484748018234046570884874362365538566604908703339627351108793713384279084214956472588566708562513774592143938664050331806404768545080955371716136883749365095085060007868687382752605802421259248488281255502818463666124374106955846021264758311319266986100379415341172224170620157778139606232599628758001675426843275035803924893673856255275786461500337631813833124342273130979292503651650723685057085713478439311655487543805449191590287674092841785839355039052262134061724843608457506967987679912760806424828889432125732142780864802499452947528288795233164170499621520779127709343420859287813538510861457354731409886596558298155955260468453448433241263586091675098208132654182724374213853641717866800401268017884090327416355503825312744871077592148482002425669827380906577980238951296540568166424706933847422901873510122334343554045707131657283124496956027439238397452710204508588248613422530545428913415280023727998270090566899226117167868566302972905003419612922786515464631421492885954025679498987728214539026367255019400728690542951065351488238390375524366336197592272565432899726888861338782382106229921050888368690264246616046946021202009734767242020106976279787702115214402508985324497206591883657941847700802172430247568047371550299351001738743999660271796400315147631096994823202025920221966713829251729396997868426589253206621451639725555298043981133631974442411409338099683637856947846487777345395690652717003478246648798433624635525190925267471818905500224169101944667770189083694665698573461992862169801962811753862756891182352313833356812510955166288830770624184227658588158280646978941491060789481268233036716970337118671229170772760444689959120615264910359659408614327334145658446537002506765470332304616031649932280645944075239482758227160686163305299086636532748438745611705273292403286704180114905722411737002962985216781213231308263734678125068576534435113267785599288621559285217384304538993309768000218458589707051769409551682071879697360059385651947645410885511391495741438235082845869167412545593952201061526598200423383623802715275140515080442575963071716833291067238294744147631416560677838424858546763110440764182999423574760653931401416228615996525240287984438027388437349427366027364979465237424426625998168389286447235930513360172407357879133695101199321127304892258204548501291193038558545985366429990927870827694868581697872850118623822207927766338196240944053587272333234773798658081685870736380575351404189806379254034354358602366060538882828636530459680811070736584619529366675011361372017866919484620807735539242995262936227242286934752954550957841331040783079521224857283737748178471987002367001761658070738019795146554731745432277878196194724399141284631791808174690135734891693471307933715898894309051804682519045246443039067465837229185486496675542583696601504491188703942843265212907682105166128468963249713501298178325363274428962938193259391175830434914019031739962115588282324742252335712770106934221779470402367625042887865045512515890449004887067588277514231409766407882863419250117265951565925488692845957971848915027934315226525006297256004132629259980454614276691618951793587460983823023654440502911718249012790288481200720978870722671556111760556466060525114136820847639665670103557192964021474311139370135831428556539264312319427795147317598887845894459703386260380296622376815373445893500169344268224542573947479080658525990945798343717348499982558602758201833841275767973614444423246515283312416850274974907967922864886505697317139496280395371555372738167925574474600195405055173071317343197972542126997692551524230910688220937138231447309688468026128665235818056136654971264488290371271546697354666660726420768072415632755505918444937027254251659044130165998533330277562052753568828464940814174331241569312410574477413909751257579017982358837140292938106432309887457700208698669991488787427053192836753730424625629555918256948956960278105256922927091326576861395630815829887976987635756033248205833714596934507566545608514138967791738621411817711848776377361009898027629332854960530516817411392377605056652026515958478487294015840360136167428887561258827708392813712256001811649163157584409455450751468082045958709224140298149136744112205104135734489308461791669294299208118294025735093040778377606698100556624511848753394792514777427645053277656552412267726572774897278286820878897450258495867895584746875735173094524779744192855703954158827728053043555032414839883220982564075606634365658117497367049004684749321333895442539793883208873875026035755131608100360431854431520974406875578010313470039587097893435364532155701416087989917069719325572019129694410680380501441992650737718216941426656093938299512496294448041655297858492321625698389584254357253521496713704438130724985736149395625610529388926565663363508284202916773035085579241774872216679339314166733309212852259162190001561845508657686812461749656086741238716095131839339570281365007433326558924983501376715419826813649450585391052665943963854236021886156142663022152823840276150065916762829503688986915901510383875557901712532173091106333326847133933579088325226307932089667130258094768816072651019988470681329615453086880458478459683575006308102789531358422618231957417324736858804557159829858043815929694648148176642131730220145555916023179427653906459415501951986091258862565272664045215235996391940517441499220011648056198046320480094102754117679055552182747217686581700431295132813267678655146276227640102692696226374030683856970668111232247360258426723735145488287839268180983544238394974678018767338086629658857492357680409962958173722840998944580247413438552057249294001921741667722361778975586828384966890067507512531502953128158382909403328073735316485511687559248858705926560328104908539980504959799976615090965022177846309241630812377561395495333614103321321170195130604161319426666181979404224794694805069535527590571743910688758373268526238168990459164889524039325788933180574661267915170093486002384507777135875617452662327314400433868741223701188036867497642015802387679617040519059775467260655258070224122519609776046007820469328836493206924941364079496667012017551268693069227284351802769183004530814021580831910557529644903663971577276725403260697734166033555634331170001938126127009216429730240565533813705920100271669928113399980962331000423350294991636556602024575880451577124722277831223436563899882982172325917978839694627358692433657910838673672923802743806737445090517610034852450378059273659476899560248030540339867216451279336198747915417877931218400264934644555292314438866887604421899790271630362836684169677253118304195334505453679572556709953120997632323691119268963320920670625454067838170597087466409162107925759940629558309553047623908511360649794638995775156225808646520277819175103490126940474453572683600373704558872875821096039283153530812695635530304981974190524588994015575584285639302299697963683922663882273003501668381452574005558835604110158091145933268615072236002537176411245884831835807690287599838339349739633319387853326535216574397393855542988420929577754212187682132439936750923991220410660066032701277287794420787276416635063797567687167422012968840394946872011406083514629986151803688235913254648779572427439037480258536918912041323680070362117094744861745317198397962350062738885773657123121227344953401122297813981959892020004148676082187995201905379045550087257087368781136491597698934070057830187218970267860725102132409986516556384288243469879071811347124509699358772766377571411275130221192510178553078016649610906935439535884595870739660463753041893342344794652818018683139870167069441790660937541618994394916118983429579967689477114528094268928629720480071990578840018009982840739487659916872245386063000511256357042147773966904157107610479638324700451991641784236630792338780570436222323867293187713288929283474416005431433598182204126797647254836609095223961245304049929053394276637203732460476951031912419543077895201099970073513713942531322241178660958987498597957973326105285495741396484629419595882128916696548432713884119886158490684395021501568225011341537988485306629361729755231742114652444348482554471598789718487899854694211373647359261859609455591521958318761449648887785080247661366001959638062657365042147712396541874417249685862588874625090738524169281552446116176134518483555017250804028790051177497620545035796911838582766488927113674491531402995717669195818588035204211408011760303480422089640400987171545365748874265061604789670893478339142598820279834306525221400736983844524204931991859466179593770691756866897189577143600320999528030052549814034103811799015352520922583817562022736370617361053977203205622726300233563998403795766345878059446287781497081144854091570540537960460043936852886105117613546589523017191137717497762268334991987923024562200197367718071952644860109400181468468738582006819819275787067649033718131189278904359472994107069791800327155734122586744193837974006489295919495439689643088002151903826180240540735028648157053238762434200056226754953355920106980207058052316138725922709327852749416043366198323596738323576253994579414543640508648296499032810475298936568845909587301248599342963218215508417467762913007132139215776112357510441517988275133619220074456811426854372739286356099568514257174633371501951511975636533631558577936486847427513570930699783361603923694969862836372124530279376834319409401115498983110192017132262505111325396717195420493075177154902176803080842011337777276661565416668535029281291477289187196452359980162162391413329050593791320682097352563518774426984357825389791939141346269250555160766513720132749655288287369348247144296483584467211895888088028080660818955620227968508191244176385878014536636019653624989007964367930129135383733318431702112711553391549344115971888730401852889068576256337749823393936062477622622072788929174716425565714566913638765082400017878992526019778742094682423517315791094953595614568848158701544457563962768138353217965023744756408262007161029034317941872816798985309926764483596151802771363745734013092257264474570130989913383069903627341179758560192823744571379063146829749149787665156161767080999568158236859169979591998719549090731675444140352277433446535629894691657834188115089787693984545688629485478778725297959307754983839491849204976902798517090925049353987793870065311066825536394576644834725141301872770421072093306840554810705743187570208591285400289589701802876090791105444061167411855772305340822481762894774875612509541276320245749301873688888892600656041733860336914924278901857095161229546621992335293449043841583056037723858159452034091151452355869491979371652217300162182755020535492908295593477541524211176582491669891637242033307384797629166180596783134248612736785917138077701326837313293009720288141976869624247417847356554896251471671615539023776780569463397427312794608842024745577486458098365197772962756575078187885185072018582978625137041398346282249133706883315453090211238592719043378610383144466397079829057229414305877366711710617042916168167045571305520238277503386613801688535822161846696908147419024263053278146073691003929981655511503973697589165310090418043184509892278074416653699532546277213815822925103486091088828249213966204708306700430166110802588059030448330160075766794266612745784040603324871590931636535888710798549679878070036874939684415566813077011020826331259391937519250795682074811205007307690355302666124216446022119560725932936037370703995499858620639399126287509702232239852980304733288130132244366841641723693536762546479889247752342338259345272923411150199448979574162001065307886993918913473870444919148715615019181412793783050045957422608683408770623864301898895159174527553239751094231778271431122194411245209060792027757908928737194961254290138712486971429222182761984821292450253145951224622863551911696998202559106941623822342202164199935468531748895426603207962911223163193094379694426314493484983153174563061038991555803512795103341038375539592421152479873153644634836124569921219364493458484620452488203357934972601745796601675453766905146819051662382160963277769301919525159530699709108876367635191475318449528320313386716695362876792218498135978002196968758752764030910264080558691738337893488935794371980174047911512407449974975057357151216489449079559704720887376494230774554192228400993378330566849751477994313779752600043083654621738022525160556320239427595508036254871499161690905504378515367232073463248733069663778521751139562056598555859720285016754228068046516671983898273608898119204551749517439688845807777626235858383548985113020272235562649637814021313591666503246777002196176630514690031308156335494069953246077265649757582895462318172723897006207854101726078991368995877170543529600546639613688693312858969630391813486582120480361507389242176853892891387781412580327685243092411335188839035671376440414973976720407326384824943394233117422308200709126156549564271341854664761719453250204270830436386335551405483393219489559773776317829767002805604253507292622679300051694702076623078922961299741574630520944783682633447789835664250566094846217329950768021575787358215273916227758646852382408186613521913705464157280925349228773846235683332416506889734441207655942035199729871542431615466694629272558906305544214964964175198678890871293608842764020653894370141799778137945622192136553848417572142026701941809920050124083153073315193122523885570947678129345585123569420296890107143204054380006896553987284330854857446069732822081014442592390772381976473653870778495505165448804330527202013296265522992207535272563786114153053045235744963014682658509838328623294003227812084146689388472899527683610302082537058763582597170848747444191386203511639127204767646286334515450337539378768887592801490342065270664401253070816204493484916829884275773426759471922188070649850610571967533293581006301701098360125299850525883036948979003323114499920796758624612941693606980439694794695053185196796837668411789973405083193518886722218151208302328868316406400462936711092503929849646403139722491255945088036976001512137238584555207927473608843217954213784283534043267444150225846824729183372552845782583270117559453003968939177824053689465843242549240308384271593683724023967755502574447546646099437237724490624390738321055163491342092506535859801972692706909757815852532546761937002145826211477940182251759077471761517052632059529914043753252967017390601651869596409161912473961424225083490736175592918804612264354627510028350974707075217440549449382120011049624975347098029429611213424094718712693461363388263235761624643062629411663480049252058184978497956510948274365728428752264463852483317301559522960583424688596138197807048509761496762257531842452938006850659094725723710391629397913126514846628009682504663136869283908242546622323678472861065581271796373543444082788894391243292246943950482440018428498737554145321701202978173177539823022380464395547817592955928930217104900699246947618441251279088510818890293398205458054151515129162609824150822090798097110785201545507188131002069776096712283588001616087497537435495311917221379114026647799799975993536530117716048329643280447925163175193440795526932042002508044704577907925064791847301306774917890230149200213982228416650736794418747207354877724741147407831082555211354192668018145962420590900436422611547679234358989165401196986532442240480959285036200002010229297549344848891104666492566500429598420399216669192593374346794706260386152651465015026454514804286375964830634951936531622301539175346883823835762296462289331191099131958312415164866145896323277493482331697132568170707109504722251927279054820515401526125470448247247279133786965747919577555113920138832601255326191644420141024687659023814135036612282672083167023090316802615640576980833027693357073097893340472460845361727071936292068763247316519626964063360644311506458307455570268255349116421456115231518592297741399977866453879506943698012473790024455836646093775182918919281831934051091415193062088563440199672625118694221997063660347793691000045852949509425769216370375890595146324471720033306997059940422355789684546947450030343864658812700863694115555338320274027206532524884994289679390677240997931341662145795671182591862059607560244361800202104151636417917127813706636650671264050019667663873690909014340983034650947867467999184884272835465099734837730709331174482495731986516889375537614114583827339939181998285863024980853638507432337021703388770184923176962818064786755933320976005770057316718229753356189220321875251041163606704424264693842222684911203157060781536070997934963170085273692837425360414185416445185568159383344975948417363083453272367810538758969066490933773412617686811300670923355526985947108691555706792603250783267426449990335095025860213979248103205483302882537347678030277057006353920756341929612547520574758997889184387458793673868414050426492192359996840044104697713525547807573396557329213631431302744072156931604280894011351037628359790186423668394921862327002350012192836856357307426855673703843028099960669840235047773391787456222861618010302888518055456157683387766111013069374471968913656906072103166667827622472985656167021534487560524988606731634847675756550826791556335507459528565268588067863024212085143644531683609143602860506578973171036775586746701468467552252499330040445373283083199927406878944517117139052556942404558517136189713032077154228737505746258218915076575265717619399188739533331981457344856756810587164254097254034455956993003462286206224514162435105684174485043290788218288549194804235890029903044432747607797111912213337187402903010323685169485835057645313276745168816420347129060638761699564632052384346856374240714407491059199886619020737270297352335294626867662440440520960773544273325428955065293694062939062120031419560950714851966017072005459444114695340890507075609690247123630720430801350087484084700426859221683099179955260066969401593521083901475351267733290760812534713512003626211810401196546243867062587782756776085289608943932306087187927098811903236004780033394789458077723927389485632932888255522647609758387889653215120096872594939368171573035632489113103840145094237827489822948646969112124144822017893874499711222392576042497253685090908561120622204144675076801176056569434657487309621705612557575198360787397333964304885614726204807997620361193658866589874873302221675843392842614633303858115604127663619844234179109920462626810165316575082406371333675711349056141626287355363933854609059029417741820079875658976622976431509212017215775317359925410290980436846991147230620740879350656887782145350664900258563609750229624262025780514140849941646811091696868856749957017896941831304281269616778943566368290358663315260558914289102259028613064822006424650534950434287172345605114706414870856487338439016899782352924570700039005863330808035795211435920103502936493251020126314650356125097286781482235414348995808655686215666885291718893210320807468817798309165027108151621776240015409980776290765159234439971971642860979909126889751852983515778481950448687447432193102134966094169125887004491256566923402479868469152422890788294102065940582136346650146572273633061287160548882974971760821799247157749319824139874571230750652040259524194404477648691287402510594758647989875098087906481200407170564450221033074383269945438364717857222208341872497918394421432356294605793028446227913338585313934849632630431806450236280080217230021277281469244004176054467696920323519800545898682989939588612551954756332470929187305293468295062400302941459680480242619835964242142744545327890101472244300016420112678189025615179307679964008355716530865815335896680899877148152622759371341386921140952773656961095639109938343269866505029356105074250272502815133087147223374196845689818650357386111062265651504356964865063376314830510374917478119349819168112622513973092587585889317153926001305690314443532733063836306727054860504664577052063940367598944014461711349020246005011234389191615951892171164645359099816776417134023249954259444774038555463442364833067947119839612187176815422990739772132545137232702573971581968689266687266146030900169347981365782544005903627553065878565196616674622160772112242786844964224924633021913164834880871410168706740405550266253308266588085807283565396725585866700690687824229647004330170484332862142667510687250493774624908376649255339582319731867155580073756746621559688542645865074020971306440571392123353770688365551273212386813216120997481621728424431727072265640387984906593912261238296916160348937703823288632363678555844665966826942920771693412080712156503856465209199712408633587610215298588343198123839515512650150524943380623113484644359626636096691192995108602992692425830488419196232404540164313303564179289757555185167257298225404626249324941143215158269273747001984548764947441258275415019836728712146092412585382004834461021617129718299758865362943423988235474103582898934608038288386047662328702079467908491661125323583189038995181284862963716346684849486412033803413936982833465452110791288517185522414132541762216770471244320435104485807559416627242559301336251390438942894351020376531551613807494615757181407838301745851334685576126127045947755059631953246295195963152550111869057626840762898869997213829517202796305006449067389007751023329488205982537058002635224671192236717231566411123092113650398241571844261078246501478050580730686603640548989695797575774242586117647209933615388870400104253110071815770378798597524857774166326312050240003240835918234699629442684264912847558999991758684833708765110881113981854343271652125019312688336327025183924746080570134722955597121412428279682716646743059003651926338712314310017980215263962302716331708740489619631460859535464675479834922817245218084895989180175818679030842660439769929098945109558732292614644954809179195030215352993741364292779091109268797405957916389201914694615355471576821426149294656897287022542642798850450390369185429368720446476759861021351131532126154801468430425827325085352873693834541647943145332395623029546324602929737522142642289843904806462004630860068667099744554001152283663840215934463530795032017727895734291870339764945511663314629668227426881198852678395785857227840267609573162824102226473754878071165895008288108794946205560021950867037803580379077505977854762003176586347369126897257842631517611040654547149285773255994854010218835759840676029917380307137576180165418961350747842266832289983262237354337269561860191819164080107004575308178232751719958848251738568564330449014297187193089969102032409808236048227893030100388990562942917268100502492751040246139354414717363309841376276345046184190287871604068472332425451891694285380526836271935459481337490144448800814119019964817866182898555977108243227329952995190285043361470580422495988843237019444839277033431342661551558055046520997591717716451104119742881181504769032022656460766493736160499851621746765305987696703677049152232959280884003371747681826111760724829156547909145495744427519512064666491874861020092285524360552861302983568429743250255264880505320289918871088993837798708174671789440480744865344672149400270284475683809413510880624681521559616752702524272562227517051579840762074735116827195140060831158944709436262919298569138666767846105022553162695293498105431989293979239122673849800414687421268781299886188329964514037978019651429318671445127356181612922163243656837420089752434144307526161644759982034265143319936311982596198183717526451100359020823050221465583469825564526955228272801797523002074362056958361369833433216557283000503742503046790069367301851692914673789336210121424817100316994853741450897003702111444450516168011321099087274011660404788104641468944082673878418943658228901060018458849164177950775056425015711388598318510234224976824609173437343469568753611529309549467410579873175727223254786819718252907291214417705029804355590820708766934034553534012068969668235106823135056799978871226354466345204723997137101270765730452847154940395991466770909951469064822658227781704950722778445153051481118890310637972168019040265384868248623409926396589453975965578484313215680708925913332296676634924706402956035605224697117472706050753282004301707158224050581249370070355389434417548826073801901995936783402919541936972093406813661262224540503322664955664970269062168407477363189549027008810474136763220118595887772808792890299131092138193110564141307065520093332868701323995416549753608849250583747649787448883770302708596504516223900895731752079842156244202487257010811302310638480221035320327680799978182151379369458710881087538725905189100230438093603386941934698955109040047358020725814201287464363163782107232045611187448519234839873590284019003482870083827779814905893950333083288767915259293020234027562249481646215884476369808993328046333475560518800350923812411939668337987735594098994413801326934509351851983749979375934648961654123992812567213765663437208976361939072210572190370396461174971713509878917856330165032763802501494707366817101690649300659047845893335028877278510685981112988884738357438093769367707579986916293654940375735714122307157763231074465216951540180948603813260298008624598224319353870137820834110933827952638283892682386063880379761799631138689516344560129572072524858570315268808967913620474320607995039869486584713122638676687970049688013728459376854318598225612273719894107804089522041757486787930036118135106917882476811955994264200388571473492042987236681430972915233701964681771732638075695805589186284906167017043989718859838470110026605152468953252050814626789243832010437475538882004269339885925042514406138189773580502849163972044671057159480700561856561974287343188021824784237544087172445073917339433651429705024285996725198146220047870659742741033056721738906624867357273765961454013983055067173961199364619933724317690953749990689621341957418973478772993148579887299191532872781690128064496730582905235317007360129670608273536806759569376001363849961702832520106300775589914589606697763481625552016079612064057033477782762930038272957415908894083998696616272191122650922822404107957150260040651031410953953933883358304091614874852612643883198388387169681809806810907206638864901732439728230395318186431007365064474043668687845816426848377293875981164648251680017834266473303997353623931908190493332992962174176924461611459002316728073400621050301403014644073298435697124784261222412708573535117407246242058155626340262184073764553824684058848410399836861220131278100853222462982263796921915892680676221555242991120942460737964850702099872854685434985443399801813197563121542022549021153477911629781453453256399375102571668224662722103853310837739553986201091815062624552415906410562464511491131051674513359969662144182899467292066113057774175187468388299188495563221264573193555480796072535443177072849000508761124162486158761619945168557918462225516369435857955209614051656126164711704662704798842145668395244734928244655696354832243293591004950144338449099079828444462330185278306553113900799233312091501698229879863086777787772039659211162241878618570302178329629117691349983235189001649159990170765044498382973766680727453582698010020049977870214833419413197609282057015388408459336103660151850371938194969886502844609356795110783361638187323892481751164982800481580002755194332078858058202724339989152228887931994888775856780273211394377876092669217822518461077254340787832475855269773671414529725633589844935084428446048727429549744663222617396313595584831536321424375250388788268546249758636143389109544946199921558566222425965119908531338580207467480980821940599941813071626783632786974061906761280816080140440267201224871414732183472095485888925703495844873655967096198283179127634528085482187221688832071602835980151469345202200392095097317234041121063170700484377285923260631780119834211393418138193718437531175636778494724317472308588086715607062347166009897925493827873084876724715803951140116617892871061418013814725545541051773678261981172505961416109249232979712053100150387174582326667653059690665161446371756630385056787881138341646664861036972454191296260352035798388604001832021410452583935203780376619602244032072552439244014890841468220803009609402296835765905417927648838027091390485436050504559672572184800870509089150255554809509323878764484055126862019638813464808624065061589507032987118616849720158350506836731631643186505796106569888008364276812181439133741699125989357410117576801052541175228223531401343657692448816190204152381475938105369385610851800539286200906271007069510753272001750631655735083496440259436614106393952004126268822562965133951450694289556663616697096548636829140704428828502048720606990190856858383866815822849795671075692730195688608922192718607231619127327534800353564626900429049691598650629814701678570566243005554891576390413904426512528575234075653145036675471804091975814459741613902530121651954670569747093895350546249905218588651127388164313574361447147800594864127046360052291394604729884830082207248498936781353688434033244134261016867301555104307585720114352731177331483319929083288129176383855886290801551050922374722499002043017460734375466103887345870025857699108787308724549954894900575454249487110867954804915638896603555398151137782427335595169346485087524560293423937331022592681107906175935361807279788929297201370873821458654777623494867859612986991047535847967543616209105102852401523387724821627543085285369717948743816828408918085291531560391832303902631893700397416865452538027078023004295770843710397770488600384165860478907136208494464148654417490638407654696608750598585523336017166100235605816054582892889799172321331028499732466065828670351951205668325205969037220491428175515988917471906925925682337923885117848819130298470823914266302261101529608745475324508984284768620352175903062984001376693702362654557711399789394696437069344696330602723248973570948874183650414399309584065812642901987285618155035237080184914499250698421933853938640000503502908278398906653144693718277381688331688365930969239334245383349331787903670763186863272908157257649961249303945755672224187838110783270484065982728620392795770656243163850993812024887601402018311733430527347366936750480330343085922495575296923499621895344690140759167797821937480989631475758338886783593214056481910448508558426692990401552839708931247966207885892487776361200238104472544228192834516016849837289373278475140044848913053892031984327249766876273609788475934041768765075303057340598508216620923830817311274004343515642480875868700919732943117811885282520355874638208467146553159479052625808948530000417942122586189793469934766920842911395248111418175495673202828488354665216580240748637370706168965223309066732943860120928836181903926520109083816948565178393670999793424857712086067497551030370889891800037014395949176922236813652422931931566084269960364166067314617963942788372262662262221411000011221677847860887648603581699013829593699619629752119537454786820890910034009124329734081816294130522542765891081820212986283873440961922687279473626205080272789155569924295327523002510806264831126063329557141239193864144445092458346574073923705101108232278535038701476770415122933515587585148668215792652554467932941497446715773617076657682772181630476592932621129358141531205087350833978053912879251150806223577068374711785532746531809316316967557549392979334534941461834461001787092392111968664889167674097570781490099092841910331844612568955189800350645603316918623586243261809886254332010436675520400720068804956384758128367011173877087338012136687378746337410390332499219879529380438775219864735924781086365478398870601310086587046252677054474862593872879401207970074628270584210391114683146990290064983214963993391312047565997904256225044842700815605791291871252684873261000493201714782631601267253965938496753541110335947953146955625953517334916227988869751648711653733322851315433855340371711732385170808460075113707861112808413107206689032062561936606364421138013089484245200847746281557284230210802910282480140319301927450637554128160833034037227401496781640988496664799293689174505532259371986375071782054030799352906358806135719252848161424914227393101862339123851982426992978549528649731929008446679847406863677760416915810883109821847790961587687328019045216682921579805201322133039096359883221382704125973236419087248529623916527004747576879799220977434662246522448750136280690757659183482635358452746352014144850087676879063584241373103547857605060697891936925680809588646175599349791663298418516170907403575856794191831717902432443836897654062919522842617269174479938900328041282753581462356464071919389087263638126349877936421279846203539972523812240813202979889591679474000949034836823552877445699733501422734186977280513542701075474413975737777950173157398928680500989476980737846476561685557607267420547312988965363760141502553895295085098084900785875150639318923118534593932659228773874728067307836211119706071720422608456243172171740149969166110870374199202064587815447037692890902468511193524129309631629989778133873621530672651727177421123293244792591171118892712502174113460331681152237658316058002375816677948504877790737105595106365565587190499298923961146120872270762456133039085298666576840194279918571490444741526986437234110095429469662099603360631923815509920069400372503346518891446656965502219177735580599988088970184869371465421827310740137681254717323526629223349359144382443890195420478413502050050232331642007663451760875032919257833140913393199561867171084432830995625138553690338810329966325096358532949204922230551936072633687599401796354039220570592088899804324471967817474985077890947337794723016125266712180328882390878922346490048552294979187677118403360025789674563637543935130310300060772041331453615934397826714338932986305736572874819821131203172165257861033421830189428740483445786749287519458275506128246673433676661880780404558608749400984180900344616426766212355941774475674547316758953040662066440627349568864547004961829505510863048478973112058746614913228021041140539161766785464679227334014651999829327044186074284971759655365103209372981508157176472039479560591194303680907790149573784081178012164482370534665695051876585674230259759604718718128312454772377204863814881403715424698974294302934355639715235364804360436804528729023261105926269865731237504031212079999294445366748280437909624851391634630893490479262111428817512457716874506528847688681860817120901040958952997393611197574496837149864210090014296263862608673452375405359425640150065649151585883733817541541145482235203149550150647800676551367195640309304643169094766264949601700796681953947801466801073820461066973247193253334435199350142316400659565857032762005634164136724974372556037918351268939584333910095009233748016318356186987933384995824102693474844003918931600370882231175626181391788450924030535351871636253615481980914476454187396693933928505767803817058747376328920944538317606888449703880538862800432345203489582091054322395621062811401296188277080683024625633692004424815584226746729814950027895082709884445167843615320892590070296132823883690919811982972495071113069869108677927649885202866321833259363549264436601033314406724053512927681943690771755201738639448086125479108987650614592342454378799123599046859256762817054212695107723129690029410153318223331470623460827324917909467027123410197713290742132174800055727703004667553803168560698154592728713406813382588413757785664016286224683944772922319510792645890081453088469946813785903324854695970288679769116657536007389521070232127217350336734085825114422652707721475025430771308652540711437729301698879977461438770074947265328018722935642941427342403119404575227066383464317713579912791817918117250569948112847641676836503857429056493574985682051811315557109750690714451862297443562029036776869666120267084270236002322870884815273767350658228991686398072185652190751178182071714177352444118863026698514676296856614590777939044744894296262047123115230659979391287692245813367177776773359815589594930925605277484054261064648850918902286040711668217639741960713638548568430886010084088421534987426663283697965609621108970218568632044561496131925755186661156004929301891881178125462222534980911762825144890900339769384933960106135356998128885031642735556712817155215569343662106021287542358234474462949877366881621083446593651231707715841567507578544234167301816338721213702321767449826614540865923310208471428610969516598422996969368674003485899084628360614419131571242975728349308098112435685553934608776208150560685759160973267608174135294652276588585446184431128437573300196286450943436048656156257974502285516343298231520759204242403351905479817825029393976677067344505846793974092159523975377799257984827056619116793559741550889684162297163363326296528332141972981082190791618363803011519539944043281995579722101384526161347841013305231333635782881316284571922983823887637997823025454385560244505310757106214916408599678596173639836537146694019268575651199602169130682690485057565336309569283621845807175115204321353837284263530319909089654109662976335419941423139002819498944607948150768597182093881824869858589477826268317891326790477686375915182379686842571116703563815349779518010309922550333765273149988265727636367081675102022882542603935080980516222412674813518540792445633250714592327966149324271565379185899601755467136817123407946998827432410950257733743166582697599098917633004037851446314338223743656940056847242433540326312308540025586369861687314728412823204451530806206579109738303863272860033164957071766844881809340964398848148505309111002858334545602279245871832096891298829798298884416117850296013514695495441519380479129249118521223365688969054464160994125570601398404645030016314097188197172177686692080722910207813500323900674667793246015762031894409390520631912792619545749933195660058745933349322660570785123395171587482338682291911424775445307342349366326335142486436027135433248273815011312744324445931283775433463308928488701404446669271643385316245472524276060014467686223070412889417267704456963947583238764580591139913687616582139385479206846953748727281749276373818866285219919938274196314073965122353891546698269107613001232541047144325773722106829613516196722574490769243174116314497040630809883237312044866028873599371248225983652985548712189078327415733077455689351119823193848701457256652360148748104961799167109470277327648717771378597094122378405424527660004818177654102274082965975166454489109426633947713617701753013855838040432026814553958403598278902720958702614646025485110364914180287205254016125790474725500820812201371198779813836910105213724985140316112753266298532748437318894631009555653822392983064582273206487055106828309848350506013852276450564991863134266816438069159903507825970306051683740177552806906194670988366554820779970030679609549812227380090413330603213651029055728269701253410890863174806262936026655741294999110618978522046634036585128881802449077155429222883654547331763406088256257089358379132343512351333927213426759287487454603696921248684727154047203886248682175050353777855743716915613513466601481132925805255294069714605639027598153206839937193539466844540883407979051129899806519869774303436172212043376599295621588638303840811136574467973259118238820610412933654590113017525052681068207140493424840568744720829525770012726050358730133237449704153958677081902745788647737114756826751916110240316918856319668995694785324943471131673155504039417590804191574948461269491942769782659232322040789184060985856054960565236714036926448401672121210219063450383784435819987429207613358427006873567692625107401996435107094848922820512840147947378258662593168032812150451100035836332140786676769934858780926573466241646444873854241110221811216551192653408452166604169880467978194564312232615308459100537873681971993440435481978564924705726546471906497464630839455448086011500930772182707499814368546925040059541607702637780674946597035915297196038577176529218385450296476523114234519749012235192959238452306524061480746365380606544127212686994469133753365997652406733096440738187977109819145323117494611147765281220144574659658927228566733738946827197563015194084096721879932031511558258681452489865867542092367134722280581683115049401424789484775746957407887851904955543550867243137189345872749537545103595212543845652031789128425274371514885732182745603453465785051528867753135503539661749031079716234016457067049494914760882376657133502016817341654707398080941706671055475778592563923931818214489916083275670862323377705365726087483055514154093148300381742374190941107326469020407877703888403273870519389070052533257711134445347376003123572384354859642778135195126360391472356679246936129210278775417000713095230898874323084370391823479364579556728341360144206989156690949852320815913782140340894008504335630424073825679624614661966748689523229511391753601745502276937848082876457637607270273590584626141632045306716029420251025179831846127924954045678126927288622403134595333580239023443045171633928215485066469967454155282078347462121389229487917102934542329857233306912645816420573565732356486772381108433327068014933781638873879499527072514862917394947884562112138673170178310595735584112336993301068991766727976357351947634411066660368629084682528745192360582054733983003334759108017180889437774707125656192091296590718973543741349788848398484773387335372461167332417603140845344199137307416594379791525040064122307708554078133218587062826946544328443955609815087009854533298748054422450748550635317769431907107178749885899802419108146792251679794195812716203641949502791805815474915971089681726036018597031246833407517325592515942923710231155159754939885263345202116829685919754829931225844241298417815456884014519885072371061062137003739721312340119468591161747211952579732661994205830146353676135604144980161659817574266549326955152439061205697163941330235814349411900566351147648101972307471557828716387904985885367702999475394970151329182571200026121007272951061944669162918690259165691088345540410541227404959954415520509773398664456802838438400295266348326923677567893928934615336660224016218525156274297787185462179672166657951105330932100765135907906495157100046182317317200165153763991679325232076558499983149625477117467591839758422106440864608202944486024605927941785025340696393175335471693036151357316358376364815202813449085178024624557497334403388967718720728715117739304391609110597271855806776821203541207684506944274637911401460119751529133813411995729626669233513291463245436628335972285128495855453039289643160177578997160144295963548425138722460746750022630042791497957967742025118283261868149070515309942744290766400494862444958233343283118499031544184026990712464237965130739495271927090079017297909936763468997991039325538639711746547935341000048386707828284793070327987905175526327281380849659278379860835677850554770354297720247759071927605132956241539868171235013688606753078010984013926305976173839235009615629844262814852523998181796436860794877065571915598029831247028269865712961547939453155234568283809690565551926716405254940742277292278009492996277571617274165277737456706072425934840566553830239300965997526697112963650017931318054473152157274094268999473260223195010845311968272317393825832855057688008785551885060207705559428016204770922206071532136517054399328596847699417481190166727009709960438312383600997343677969474733966915667957385368411532333658696387599935240953022640319965533856949876478566898533823417362177893146005150108008372507598066899597399072253129913393418997067934409360110903417002505848753782513529349722220865997517853124392268276593797917579212089352725525308611335017379235095512195346833028259951115747836870323706179399526592070292454597337417708768100021302097510812849961555833020378050207692377521907116511789246294722887607780315110903615428772165080595684479343264393038215938076904567148301173670593369162143221421803865748635589518848780522764850012326653744289011412423124964171667076300974897721869723395591753326993060449455489448357474927298157433269304188401442558519363654444880205360892244456507070857941187272879685513499010019271657950067078216159796084405867988234598182730888992069899243237664344759125512666983438233522598833040446495593284842819492279255876191024608094862561247959849928136023206488316521744088980394355257430454310339446530617328811988144613004194726812761344792461362340229573674854887361378939675017823336626014311694085880584015149606532997931466154065936043524351112631729485450427652821950171639418030679975558930039796787506657360973261661629633496399040233992018942875388250116990862512403080346763433780159575961809823386150893175398165228762598249373965943623324923774469946293082775507706707888845751373233157022955945791277776564996650805341407408014022399633780822351268353397624108298269098540275124010547475662725871776702099312707723041839174114375078309154108683546903687961455038015759017940649389505160122073747390290969200574821619258900739157943532371397829711843655273206700450113975615608728131997466414917607768183154439627423343179223678672818849022849103721582603170607620332409361989325814241990297623370072021730530183997488509505596721361339153435994458157860110465006958200891558057551323288237221035297140524052162498027676061388849376406289359679613232193500059573333822608592865283429485576887316377321476943731696957321488349177457014421742413988200720985606615988159977439890835355218308684177474013680460031233383379408162274668401349288079953588724674370032938454673824692814405156085645657392756820901424543538195839403069562454184268252315198055372773027190810777758464371784511354635799872925556046096299096610227876737704947122203969133609885238954977349829020748974987625856503771677851354483797355264997831856408481651514821250743554619402327411017296213577991141688440139101890277543951765208323555158426649821342367009829284577899157018064924670258495804427509254350129988136326633115595120833344680462047238781515404147422027768749081510252596842327579631292456787000143433055463185389921440777461566499866268683578021694595360316379081008916295159439046493813351897337511297175668392335258904858617569988337443556511584511755294581669605309602147002631423564930770300079299344975684190337351523915488175652493662402512098279869036592941482609220153034595941403692317038477538463624314604857122040454171117018191550110291521970842479801261372876877854488055935383959813564896029919564291303076347737711481778550335199337572835213782126593318733228685185835185790480962710625598108916630885596396733894238520345715123330049696283471170090746470814677799228528646252376865359201141613061490060056338413536064103095290215020464871058603943888020988739041455371402352550040776208085605285084313189501373955745506618799220573316801406959729394611767743510940333590071233932793625678957720493877152195811309406178083604689691198301060281621580699307265206382706428654766921627761388995682479209831531611881071892411711268501488799271016287697973051959861114100145885518862096528843224723493845590061964735310347061641583107235655613430557457132904980045046560232816785746304999328378846746068015410895407719949083077697849840175486170364361356884944113050081354234473441600005432454927276151161066394627629789177439792517955189885335706174201576717753199736121169868205603711693619112714066783068118931779292460227513097993797010242645315594993917500797311111071548037248102877142189217374994930760274924871183885665736675138565477016267423956860813782501438418485152051185045985861919096742288493202578592241077659991388449826860968532840908138792997806106057648410157824105573104439994808072906081889864166313475795168598274711067011596097441509438462759977355246162351497109076117691571279845959394510701871927006581151685447834794971273376217004900962061996813321055662358458699975777754039955560842100108801835163109943263636056202842642051437284933366007253915352522660743880815109197624558666700877690374959601603894992474755020559094854008683383561658732249663766527642729400727458172107534700363005782958629007938045508487678053856807891236647727942445582125903061585500664907893064476272290762674283850083784243310276514431729731093220874537108615888524375746619043146851710472310999333196445157716431268197126822720125832791378604087245988166048950226617320558931859394006097958629932006115042972276892279384399586427379746782951569382332005084192234825575362435272372941145385948609178626176587116457432740088086895500020220473425117648107055171134793810604941606083047355195850702358413368014565919232526377163931729278856813168704500816129829882837964261822180930424847187591626233355124724475292870157167673674156152880644429466806006319884925940654563984275923921952738388355372818339244380116603965482159663715667682957938072539008181275120884255341063283670051635970601342341421978663646730606728584704846001147701244065885777408040483228950615145133125420016130677824879174695994522498755518312919037059185061076901239601285648009730543785384619732552884979835268315543392746934218050299354336385179241606020707716653145182436545673010298203911846423853198276851959246746442698513271343849132936071824133664688757138166708054413252445765295837044680622648257887843633761542168913430032208021114905733068635937347339512668047320748389226532913853213520345676746402227204460078363196312959290756480633889545569024103327088417186975696652628886783120532643524346862733021159266330019020780746094919180799501980915647963738547910436888151888930634007615565514263164362314557010640833439526355305794597319666103555838539242987146097485149234561128278903955727909024080545119529995848787885860788379364037438386954360943428384882437242215337723205011326410623074725814479206332007184994107380462052603965685896094995696192161772864280133461352729945996454740307711994226115314362117380810421323734751804372723126404227619155904390596188552314549933205938191613271230668584768837573132685041457309729698450850660021123090372675261455401134794801026552109958773951706666839897725891808293416479006092794983857799700311946992250441345220616923840550007784631168462608577963055429475816470646902474667614246179242068514434638746655187942342147356738736423341833916730042749700023216031857101650055626952944192120244161909620009575067998900451649031237369086878001596997473398886892387855965019822096454240440891451949309215799950358438359765288793885902970251488883055256708085733447899350052157110215062839890506097238410809638666944208504596994105182584752710728297345560167986754854955909336224092695971701534220259661158699767700276588234515482251871925252636551957668568303266438395616166586722991412041292748484674868917989408197999453892426938512035052823183384954514195727749380187280095214624677278508713274039868541633405558126936957600926843663358220174365841014959399702501349928645483268623200538902764657136019893812014351392754284089219114723220147331544601432518027900827322746735710522375378310194899910791952073311999924020595621110779135270309396383972509137773566364647036642693155916233838980949168640142156056800310126901749655714697520437774112439724250295036801607786174012526286360238255209781419282389715172294577647655945510336457967480082281188110167707706930434125063020973785899039547698303930962571332971751120829565884813910084923037493097314922901038748944582108099688606120518957035288353692743943619382474571461869675693086569645026293372001770644952286690627352527574173869560252114363668446888588313747635883702664251016788245115013646843176614653266035871175815419684365981620520457366541133170682076508183142431525834250469376048827591383236524657994357979072210114710856141008524601799519638294721360404578051198307064402461583411747316945493374377344372362966893781469041240668488373197606863057710687520936965102502250920188273309522659833073133150538228237946533038834863216895124708441709370731053644503674654924986875821662144139378338140339667326898441867502455358149029435197433189733808749611567270472771868811892438931119089541605679357248735978371716777044718721950790890640664658480289515689514845130989847774921272475407511233244950720048388659641789265263953488730180480798419355270178886286961568623790176380115432619266536866271382121748061525503659281500993789135527084598956622544376665369868922474249090948567314539726034357662530994220413856004265673696735429880712523569533468548978615982962004184415673222302424025527241166574924423904039246247647225329185730605915005955500500546577222859261324321851749425014445036081262651147276366797796392732584420040045021360415548901614341397378897698717215056318283226629857281519939361338723578101140495728681357934828671858880324251326443344804937637571422927027197638617061870341857872545466468534836142197036359315053625987776774680052723250000689936473839388914845249331693728893705436334337582959401187166729745701437813394892519897499713174742756308051863003025657031952562770872134036930300996032260007651525866446861076164283130567576763866053699292700731205978671346683528535395126810010953529393987617542922921889003062056775123057731018194916802213022507520027661437263219045663216273605526842164317711780490755851074737527136778945426640606849929676155988794671059636425933191528754899023915646926807908323423741056087962381499077765211655596295540398375477044576384991618620091473632339386105563438031357918260046609969691639076056387593879064880018456368284345776431798657102476312190367051878491255336479133192580809949090602974576966321112163484154562774164175256412350085919254644258048930212834478189850852083408206456353136033014609353760827904683032290950294066684743685338101290662265185140809808780896594276430872306915191198870380466600744928493741458234717132400369613216127293966394713050765456608204819126555752566828647850722842332871113739815394179034597868210943733954979648737186680066300977371716441722873408434940960663107752288821802194728265189227801984063539915947678381494443228859138339120679289688788175005170934202453611293809705037807634888575064958677853203061707198568031392156559213573254785323410706192981501004056452255982479967476032333886199079211650858014309160698979789204369529398845804005707071192451239652666840658574726176469384464014681686218034468858047403533061951141937046170464804424373724342342303831275033122470256042878383216868191421209956132261129045690064791022513022229313035066019854919955572694954321724973264531381649314477728192478062679369073967074425130182196644781114385752261354771994215968908508576237457581799686219672905981450012654956589120432233639298337664440417916997479404674856770136744506892283369231693450233663407167286030912937971102289760802092143405717996264909252405004932405951844283461585743509558418007500612977998082761086112812316609567758487026287285658697577933647223629383768592440957697614220064382656468960942814984928131104715641322650993918632576360709355331931370249757388514171860231505246309150367993258260664234666145920258840699371925224275564857359159776675973581589993669686331352382270685538415162866501549289841352144443994720598089090347502499663541315832827133808847874148640042099583992696960217354558971027477447661925572748923530994757288692203978397892719659787579510045939082123637919673029164569665864278357377182651617529629687078819282734182059504077484393907914112948733452634771833142876323942711003176654876954479623878629014631566060664701649500447103049543757639518038503500037134012723934543212956344922421643334624458936931518116457154545534052863716418780559661282642517702735220095501538777931621648178415250739723464002779502355421718540351112109398313107108179888749471920513150660514409370191888524695318055832134591543199395861996849461050541720368310708615401553436794560646307023955945858669634951862355452144468376089491046237250453815317286567588272698311913923375276915164810029598902742264414400481712086318079833123500959782902783603683071338175665757642007471990318856848927745422717950451898831202563547901832100807308424246945958405629886315157780416338808757058063049950981210406252969939786800555046676195879899748899013098893884033710303087246894002183489663516193270584648526802084804467604194103750731679007347860571243248963919559690077761084042301998437698257616863922731756534855350876637053833001879706319487009676984449154203071924307134719014590950737801663333481537835094278008981256289904084742550064354982385692156949402876181658505674297929533740329993110575146220047676227067192463881331675033883779903092241791500357759861555732000806842623185063220822285476896980719073557149800969690550894416925547203130690821222531733851971527573355905780823755083664480648868577604146335253077158769543109482532679132967990200191400587204405979689572433054056760939021897102514895867171838054206598433702583215424661629723097035597818722459988223673828697259430493181859079553129084167662985419395067670981053064570937117479135617691325035630009083534632771821755351002842450632780695380116777164086499298611816847256815236707139573789279456988595453826381084415378145820037176112964467194471887901125372539718849289218412015800770635178656304875404383047159990951696094825221416451225080383365044405027675131498481028444396790502655519443920294301513483765006174937392575493684771250870405547278968282363815845890392384436144984861252086517056722634740821561536333664692930183420971418994097216810505924985385057289389549664984332373059428687304920600043830396708070228161734086719020589491360390990047328878055427915479340469493185632097930574396961089528954605832081630465652864653133892265539314271840622833058586916702674075815185195279866159037477076555263766275965059346287005812738288347125260173316745495352569199606396184875822336439595787296737292438955885974645802647569611651400197438674497444304656832319665955754746175977583059934583647880405608709683689928486042777508216228803214026630736260543121748106422230001411763052842547200649798375029137151701173192214039351571649105641521149778642865884005129854380605450631227493038490020839046586552970157160539931877844363739388902138972662319526791652850851703475630542693069866442702524046634019417070873901890894985937917304030331005856970388424803849565665183657551768125596375167652741565257968696329773226981725191843615644408510349882441946292083235826012952870344058256908157987389472802166821905248511488597194726668206220517617583369450471186161188184446278165946499566026181705906212461429445849214163859748042960925619134920557487293792058639769494898368870408179402745999365367515333531217270337246167571030590378791138934851740305541175236175797724425993074519007688782698672802064290733823386055552549142142568801250735933047807504723973118057908521732799317243877810719029142955278560584148743558016649298990778727029546110654271675477505502015230754020432176383659215891995327366096637635152914983169705707837599066647518697666493893227671105642224422820012452751651201488097045824164815080672112198840664203508488965649328622424941702653871369371758429291059865223026611680989483920156325749074401764812798368293106984508023569166910712377752350071913235477071679848220135309090489295290190796429155730615775002348946150407477784895955959465975050392262953926681881778629232079185883416715274488121499291735124464679332033553365589362677246749681022031563361347094749895342631039091548179017795314403682452534359130417794121133168074106905519020364380576736198868778260308507600587890804215583073267952254727013366071227539494921373824293949637154004001955245209005456147963683865907833705282502135229850629181189895280491658512762549227801869019313954501872595603950985537305487739863398340454168804355290195207594447849495660208923892829034974136949187635082695155157975899107549543711112788512307314750917359384064106902777459407527914384555346160153935146535698509275379460117928198671708392493895250004239799651203011448067615979054166121230229562241078887013933180439322099673294588853312726527104903166405309209224796122825128467156900334510418926284629951869109452650696445976198397918919099886226392531652250607726437973600478146106561711555154946535575642321175262738055305481707766788770000894140573630746690790360326655066625449158793345536916569890314004907443540325132405961382229250039359133598656939411199414576433846582139338998346175958926445571785235381513478623256285049656733298788951033364032095522527847119838971752492382085580530675681413766603969592273755856531623597956505606983241291186164175289124856737945365700213356268484845656918853706422130865988594017711408575040034916080841793016579223528387152655093526768666864270974804822111489117467121230029250832084399640168838308608214758948244587111977234903523264928661894791544713008397693903466092239161260107581254141645195237215277329326695247763400656208709253634934501662950389162791747762118756881257804438369092980262325448108149325586616794263873516425393771901024042777952399749169196012940364893614374680906509410130016012700589478980781550457514895190525637027441223408004345094590951890895090747507392606519663318068565666125943303216853296991177213259360543729124315651499910620204395838156226635278028254839164602584581993159314606323797789394153029540378332700739108129294033987328612997600411863610638645810016154540239863002599690685275359825731081736777456066916225150763657541233563111672212358747402339088312201944678280109465788048942552764848236807405740527685735459298297684144925173881864456008708555646552971714370830249044935993551684082880750416509471851806794789819342678927468954787741982985067200975275149863976028841999068174196899901682481461019022633404035309412555124277817655534320804941759786777508991062051049682933614917831866542905420330355046949497201091409348001564783481684424584614432732824219012585391195409441959471868964128178134079719986442353000163634208061841028052799017922583162759980322086733304871392647884439501327243229826264236279247718179112390973820309496149418327562453830888573270240478015587805049362453916648580335380050920204084285811059879405628215390461459643444415139979944781678187144423842367541857080706911877686704037934770179462101828923711744318390707700258801803550727023861943702722236914395744603885691841589013218677747417495182016465097364673154389235967949217100645559299742472690328185512897600555260296782386443047585134823352835076436445313450461014822762552545389974114364585333829166075700355612269063444508247410322293823032436902016759242375955295492660013212019697406051952640255949352661775906391251413168559574121898311414457471889459360451089315921812464742221789725120860388886202362278955080167358992083290979181626297338390973759103161599697464604792315502276592731880011230827135865977139664596696723290673695484600569591741138525371804795857420816676112816578116989270365610375054421271815730196941932009177748596689930205271596864594248285221154851209186509121143092675587493127968183901714627996531782684478503337588985892413518486534735990723515883034087950771786643252488539786028902427532184042876868715772045187338723647476983380985340471122256820282483362481414104874901930428829093388075911524933521753758687883658006918641905630239150346031536953928426731575658753153250076500012801499540120362770408675418633031911574967171959708086347664004177975053629117833035685269234362264427478758198171596768867110169810951712684062032837160757380581067531611611438248678762369849921909760168834561053330139038815301128004119481966712775229169791742121044764759964570236843861999641606573549848206508705877319315748327714559368024113689662654604126826849180376440380043073355327933525152070043661456966782986688987598221597298346003994593638019356749080307176128257999713214247734657203187788950347844350017360697956302404353261159954359618901013462389830944565334545900304493374115359384918055180076638381769268615793876723935767472044166616276580967223759859452277315691857949532663496694283388901921700238347343751289170725528076301428461632131523981336770531366088099708913149952561778095286598910365839800243934911047917597394737890548080006252029407477874770598780618710037174508272299900192179598808506535224175071422881815537557643358519648512126693933524038286515895044808077871325808858667204382173803561146635077219988690693429979573999972376352392984878433732062521115963168374750758533252474491893395383353008011527561548817205254693899757668229026809069387012043659249248577860714400516061897240484261536386896263942596113587894800196020336184354135525430925179714702175640367966294018992290223546343401290756727125800773750688328440645819965362409706881189465595791522625887405877913813513377312857888295672917639652119761509554299618481605922305841583939042801391374666475740741476808001303465112218463363746960649687381867201627019122103447812418345947476865305246602964423472951338932701624603058826033100305835388610241013410483556511890865786782645792383865078165674785792418594824206668367973293317750247308110359192439418207772370021669601295169234464694137470274312033683581706714232611757356331384251808086115965574651790408887126619970244672110862613000283065287020882875538014907484446326449025003135395933589910388288432571650452060565009141664022642437575942283849120731498860716484301695749989267364591800870836564651219720293032452305447355485800671851479413167504554292246571647534573884085517682304336632256366026496420739896871658660497325406547890216910843268460679906116967186832391814501821240666843511085023966012288275818261784128221552983527844208803428052391198585121027347734928419206779389753299922303282739559679512923575494047968850664696445308870369198476820122763790983086259797392709688712599872789266812111360587077526232476581804946406984312680581255493318778738731551500323491740453680625986461715097158400609704284190553830250928557372563239597225006752448332479537366990004915574503478670585969767860293294351940194638415398302620624978317848313056479771556523314150223388598136432219203594917726172472353805136606119855024998863713880640397735595169424971197264022355563690227762258621540513187328942516091231485894172912473238136855569409107685176720259986984902667460632575641463084903746532201979221151610195656864737571221984716558148381992078587748692733357633932544635225927195784413636275726874007871468832241788990637880928636425235201269397611241157392729093114981598160418270120959418264954903426378443450793168034656371849396251288545732704731242467067281081969059829040756711285874835237246897338001184677298124568655070406453318613213347940001984779289688946597492282407761410563534674130297834545536243941656634137827746153573149838347228619382042707130222932489971634912945130315673883754094071904692555988237534178801200038402658657042011106201820471651387331675339554966854537273255183582438042770171469945915376554192457232879129737568397002153436517831129044472560167731461361047685784424610819404797641970274444456148907733656225841693504191120158124482730197709113881809784075512414710161907538387189823518788655720537391194832745966336813050492158861329228912485673137024996956735712020168908173071365163187940230692645284390044332609217697701090132721468775642990328835293191484787134284387410611129466033669479430630906212558865580360355441373191840148901698337123288461529660947401137779706021718075566525869949554359158913463153370786225642750730431858824721160807684239116765546330082756990952415259632779383288305660324376322919018167943535633289191797122100636692227364660786012324055311597131235815471214011995842853497751453559851574954369074828206161696883288591991872376724287232499943830307515775943423135451951281347630726135132613075343288566148687350286655911265999401953420367918759480384466282219999652268308791716714735548526428243631456308274184721071647181529008795532760581476670036964743876385102143416104929758015366615767760653191874542245520940201827469695132955661103233313489124661955534725402429413447461083090406393662828480062377820575075807538499749317232617704420245097953618974335697756134017570132082678048758370516827964525231233298475161459219268745809405196979993809877003808887360161182563879830820600021759272542995030843938032344463375344242861162215805411084950002134767487192095698226105752967762379339288994057959612192939471561683939086821931821404578238425381906452707411882745153879162882031025382886005102031941578494719066218724578568363153431759409631365782878830187757827619222751309776121205332970215339141172765604869596391921808379551680479757990637468995449885628201526431018235178748849064159208256322155049316541224425558192445703828712356213238740838410684980804492982021789330864360982953098496830184996984163441834300067532963984574188495167495542249346250231369347232615886205953249093669707009787794668840579988438553625047969743757839252891707279496813257608689405371449559086570584976831243198435789754630963022959600216527099828856741315503213698992954412881858986826056108051082943404051831380185949974934921456277336045731428838205950627117523563533403174345827985885263318198447165829447664436024764313715340251764057359445875121224370045225346428695204571320757931211993145431954139814616401792166042648112245248666698067130790054146888394421758082764406608242803805392180169009644789076451292913886043735780468758125172591863061293134617489391709284375769000571109691359991568755097324795847877267751326159886207731783826239250158234922586095611448957859273819513132217094612921941489292690186733454819693296110306571245668648577547433342272398487640990759943384843998608715167894772008894218965510270366200697415844668860740456028930235609802761575411587245223873204479160978087473873228053430794795226006457456032671263039618524491024736313121388982325673321865076607413318835205384198123164240536750347713867778052132417341574047973697118342545641276465610457342804467165064202215869702737546877848684633086982592073431004394041752307243621128838940721078458490827179798350587310872303237785525051580919670771112914183444997872318325772170500521114143680138443033818675195886379486256616568473780305913860481717843565977491391613068295165913452291585218573951059815771771645605579498793209451360625881263368126334498484957716530644031294918428433368328156448722687768236062380299840116215674701530069127372072654891502095830169572851434034334468959355834589020451478010903508719607454217580296053658660438108966281775436429180219108980425850885063469075391816484573087654017681425190394289127723683007804117488677641803599910375129027990330797196393325023858737616153590861014820789485214870054771116315018305086607433678591773850747523013539649214138126824467169576413518567081651774246154282066511620123558403461639891242410126612051508189944387112026098467930633533578610513795403469906422003239720805428957344782607367542179180520049811653329380914403287470402409604879176033647276981030800626034629781720538867377452752603719463261336520995823649037485174145006962646010930946544412579592139794371868128078247044066787503236211504581001343239457281934297022484410510418728277506024268642208004469100455871322339911578318114026915600651327894837111989352129965624939224740155351927541856090733158181517060345716304265288690729766913344982875388175892600498858205747741326669563708622275795331533451559106210610813797477485340848371328700823206196674799768153936014772865173689428414091816604399015612717892981658114264174855621884463178923140416254633937244027396990578143126076038936229811535445952749142970460592554546368552682653341449107344563084260926794612503621524287926500435709561441064612796711005629607875152116047720971221784235371347532125969114350047159807099096293742799399280895160994974401809921519030061671267322164486691752564152335833447277337343067095636992346806077661282820640713467303163447808102277746083080460968360035197108111802232566069664513370981713749086420028413337511047573377093557071347009037329441191002331790398807963046002743581432036169319294349110021194162650043842726632095200964876637013071763381587842319202300411887809485473262536079044447338971172885140787284317986222701063048127322265445076685895339122192084958606709057799978546759597306782795535409206791872321855266659174311213119043264750172819392175729669044236750137514808364629245137924210829461159099796850486515912339732948591775566795125451937381975312162693884786524212721255098600716217993127629494309032575608870760046948710695033964753832640591937479928896887096846786359109401396296785224262327033191614656126375620771383100316253988930394310238842568552417369459503218401027031076741526333027434235113132153432515917200832051921662012648663027176205501023322274642030279439373276753853930756248363811410939061241425113854406832970596246425399604590764035896767972723757696393414837138985184120693750081274209102271218278025853353573242884416146871527840089298297900978944791013141422371430483691325978866473424532046893706960921854158640785785795074569960712235236393548664482061399388017240536650199828231445534342333951888945569264490491911985172453141832869889335047928574837731070595343318092471950819121544372322150432481983051085034747017645237171389590173816447128186777207139159089423055287418440962136945652896497621674095408530111382350200678375694651985408986841322128787281987112978995700086162154718134333930610991113178884914935979116190487548948168322574540159899970288998235139909668865286595176076716620413996767739371943721980902663166390012627056333001991625210467464734675233996284782201723542299855030700523772890688299622964640662504875230407660305171951395304775750657649853127018234198316293829312148748244272152265754356377313023285446363278977828503388403083905762918992747515898881806740654365513593996537999753147175334084600649111322930539767209389136880545317943827476214691343053448176927553146391176036897570461893550402577164630072826567597210260939946878503402150744849667017778584217789658982381458805548963298487687866567624900359676946121568247557567844873630392743398861086291124709804319195994586103062570363281893126908206061197367637475712677638577204888167716852750955599590277714559090410688398329719051526619769354851007924563481668274204551256049571969146080652565247627759008641708607835536584192344574298667018177344822485806059442877087501537891154477637501222990370676454143243430587538103463832205251574326735135691085608931946748290250622615665704336417009223915215988287571549963214283825428630780149296877287447138732836195848324690313431768517069093396362047669297715585301038709925226027839624453103328516383768573962039427311562546331568876260769782452090322063566061288694212563449220381688382452286226970046443807094343774835611792545567119733490009417040553697919719460965562807386056565920630964356437044722469051693955797886520793150574699339092240512517972295658562036130282111465746662951828722273349782140650400695393347885020672800899525488681188477470244109910500210098535476845381546220105146387648366880728858906664105826322159626683574091562966242243468107430166998638825948589793862764278119455629781094260814521676375125783218424224920434129122166584223303429110584910325286688900962163245456680585265023754756081943696640102159132793863715566797861100311472779747194510755972887199913987693768972751390355989882836748402307224154348355316907932548597355153681294854380096686519281917193593192766471883374833906192916462622076903681446908722981500345710102633856196890586549925592073524098113066902176141442108904222851665288396126169091378853921953070143699523192906674258783220749642458171724494272473519473396623848877107464588218738131117444517516614999379895317991849000433091692125448259216021585179820271981771901223406495503399708994681325782366231060434947226475467295104012674175243750734048802962774698105266967574725840281637829287562590571413226568803766183138164170976308569303518387852506424799851162987235488087226035194711968947917451705910272462530951440822511116744818105115269923260287715020988100832459700249813829831120751450886982771962581988503946771337671767423298859035517594752947531936162932918293681323035434886927422845474482219835651076498122786660606139874221445314878145927555806049094471106644073279780402573301795466079471526150951916837695514659090523795385438940759501618492030924639503139925769565972725364064907671081880445862821991479824956746478523364863642633335728815879905163304443362044957400674551924014028655802341079603641410132432003704437007913561338014089536376099806998869284833255387035391772700572267315552672578131092887490487053472349364294797243303816827403712921768366352202494533105546567496053643217720397690278031275438286087144411757320398033551654395639572475782012164736001033499675745875123234139118733599566360500051420590523351516600687548964793243372538112859237384226302850058068250887711529153160195085186708532784601582046766923038315775984645683651386489378317551019409600229441430464008326485283610909352424139197111908785445234006418886670214588486781048111475472504374130077261133477802205594226532622283990005383838544365846852893347719283465737096164330438609834210145421425613785788266273038063580845726063922551997915632836935717512481966542083353831263182990769305790379646299937529307671677946570437369896337836655965314119458547695423911329879490714326452636077346906817175406917300324221116948673936272259757773880653122299857191371596898965272528582665516083560581027013100477338760050449297532478791889251255736939571178014923675345791711143709566871195450654528594199148003076279135214696442470762363674022530965955165354374808796726400149518701692691306374771719059565514436063950084843837644760686937991548911887487215835204626100829004719319180499161504430213027439663713648110927100624154513059654933592896152333622331086681998371384727137194789135732119106344974957806391145646269900358340018599979142900520612215385238427561981144981782321773867919308267146664340080319768973838946626199578215299902669926938114951318188593822524205413486899575656358260042176838970020328317062238033811314199347635219953442089009552909987964779068365655576818827887891879780592466306312992436422445594966974172760949356902132529763912593995805295244899116012805369064992512009154790828550782063811212481074132273746005289286630130379627536923178822144466705884739706087424563370079068025387284878659609176135144906570348494190612491443650105216897264722490994981882305097269016918049290645415142817323851572490791567119479016738317106227466561990129101089433261837606720532095548528654897074509292016437559628220912681447382223907528104656515126834530188962709608699920293147283246036019890948970761792402094715094152207188671786097816698557691457360795138749845942317966081442301656835119581717639664344334801748347334339253361963867566292901573273940164830349872347095493873594061099234148122673235888405677696945447025160037616238553480889929865569187211775592440530945784526351892466890332208108949278176963615501460892887331685327784574803918883826749778580208562891802191783089248631602225086593001819890922767160023669376454318990684373182735262809690748757631040672303573885262347776207896332146837771884362549341551207392511353722929125748949369265016675432446377301966847811239245176479562432348402254029942794202976747631741504141952906217444300637300849198544168998922967046668212779647006313456202940879563494094387433870698352281902526851724163876580987531241825646964006056548132751653997338303020226480562655799937523599766071882136139340118208723394794144837549216474776503542987073584476557313326609645633926601551909410976811319899884138030918202029491310599072725524522248555671722927148186639411152072253864795041637043406501581651302854718904064939947034883856077923013261874303008247992172052409866310857180378601753730143601609632495813587311294069468138320694417983120193134109258881310573628979455364358165168366715380577236497315522129311867771411010506105714557822700166454823116310709615373227689759198369466916276003096371851994161907824585162463325613101614657952398048853771096614489419908230822633851437553371274494645265128073612683838861899492856973876390590549795346275744062777579830143247874644181935087684478226121134892007753628740079683411301781119610202502074319262538252987744714927966709267274157333150371037201869401544418055487252686056450979801986362226027439871570794593709085819430264255316912673871177874382491048235872907458097755640587410128153177902571139734544839276004788802273555396572748733936656708851851591551735257023296671143913913379740387027362032968578790081353747875203219160405259103865095346514724503736683548376923754683169456970238805408768498587596997943089422737631953822149557167923792934233151451907571811785459681432181212158841141449081791288413754544063614924783737734851362856580299664191985319631045045220235736727725890889053345901417037745710194590384016263109775789331099999038997546581430578472212991388947822022934067181390096646786967151267362011876515133356618758974809449202581282006140531783889331181091461135266744293925983951947167913188402955242013406084108913523277154507532919577534488539378150169287915419117492635925706065947551178561784252163907426324049271153258640267878404067827402116184391847484633835929652581487887940770174866095788891393042843973167566374331810657769892532265345755540659270609244103950179431013146203889770911002863997575003344654587898463962254391132759486331873424176456215406586733087684520698877632923125218970425378385843502084161040330346842778673161058708416116781889766107949813269826241107186118521704507679387856052105247984677887516687863276441310872019216742984762035324981539740360358788270819238400927732345434439022012718614907320990391703997729078328161501166763924357769048832462487185695589193846563268577376907198824695974497475933587013504839747815176963882787981424446981699565761872859111097512837567737219876342291124199390857840651359511277451877019633444804592221495515750568089420414497052305173587018041409703533924116544082304919009561962422931965798842975705891564763349911364539773572104886881290445033897696994403917073711343134997383098243849415556215242316821081369759414537571418199817567674012861526476597225945143045277728645965008878651497485148944386954419762974996398002123814867774617215748726146118907911236068993535997750621674145893082691700080126286460307757449295446530021854731230227759243877993374150063372270024865255324879194794601380453459324869545769887959897202400448189839185103798654634276136199906979617654443328853343222266510367066825444980514822301709987406823020330495911323772321148981300744924882712422572816221221952078019312157031283340266593597584469846111921847390239330692636366787950153703484695259251718184782406407949946196485312505612218737683913362214033243057967560235348038537257666555690983429526338604489648662662798076183354630923651303576932466060798796125675314281733356045977218817232116022547480783695404044675243079432988197473228700413791761025301900332751816860689053716677679184281451703022804639883676881542464821968769152467573115909857206369147635635921149987830822263503719194082665006962337626401693319809862634984790162367377370550669608828823390865246025719005473321647811373785919174199861564949401612947462457780038889145619159930545426785839378691273136564604589324375783144177141321349495554437334335288930090126918071108772917808746752238552553256402700089573692866764362004958083340376353586142898442882125649771025975994970640985869149418096506002871414916307457060902454535824123810605635158835674908932004720180757123375812214089172207185275361385429089943048988128886852789727103818497161804312176942657998697705596751967704999183392728215046034758989275523704086027934573439060711859413863067381390458882916901582509665505025339325023358210540115821261107816678776268933078635855930644636564403937744293967281787028764614364081530939179281388288821394075876710407799065249274595405051526920991472715571369196129133699706291139377864537948342042897059030786561094314789864138697056267343465562785096172063121319965119782919613703827995293554804172068710636116787765580795665178864256500746853457572628923742181577116373827411971486030322333130974205797196482532973962207894961286482701171201484020261576733994205900832325965173136217763555705164560193626911400547376596411730553144476803179864090639172032413964835911202503535169407120399204986152637703887373335657299594608021601997380788004329491436560397176152938896935193839930748876041234717344650171686778784784741502348985552139348674980460366155928748399571238712174489555210321970077445783344608883585482873233528131633434577356904578051349848707136868497604468931646896820525683856797560006310440705022386941783643160925876266647703021673963792222912507636302515222432503154759270850609079983428503668724780409219640285900990184490586011561998933792442573606239722695060471765616515032144741762599887965166175458692121722012772060819561899151206560241835240540911794271009733272298887707816183043919963625643845914787204241130058486200819802458455762080420104932077629041463935841982265407468120714452058778444655755251546408490023150858871451331960548652145967040232435651346788589178641180901672561592294376670817408966112848004612053526505631097168687261226784641012163469038158913446855049824477116959416897792699107757327237592036866844694997963093426542071441636613953100630885382224007020430685155181279000607517816396102313083935861691144340422135078786544099108037086634827112752540378597423374238881228586645047644281338087951429523857658360760871894791714413703555264498486912037697846122338259353771466486351799285257403493331320237729245632532431493492925937292439958698898130212915215159332924438987150724294221691427080973576558161713174700961569533280861447678858634193479047064855772202558186676191246417985543567974936676123118413304915303128795081293248131384054396422090016279575576032627082151727763676784462646852147731398014295648885089986798521803341576442829800331153828268914625029214208909939410999883905476918812439071329806908661590860862471601961522768468910392378005737402041882819823266201812132172251690097071317646283160768741830390504645308405779766095642206537639400395634964791893552173379375504050960352529625444250378790417417480515640773996733229481540416153895758935979733666530739817050824296316370414838227759299438646026898172655714791078815596430428457536903641535553863944666361909267229307022103669719929690983224457162659110322707247488883904120388887035728477950602096001341482048024052492832627816836882750837840412421916838028977271994206494572217175238245822517732210417165378284449555767156796808098321779430374231651119363298150011249196344149245450532096317557739793588170377347278606276477969212849687264666724651330748798858332284470235074366696841401688909795305541481553735186132912244343979537386625979781345932600043617460162476358317351364167553343915149953176477671549438461657162898842658537690634131831292105369689369189979194560320729730947379257213194495631149876445255399598576284457532594982002892203583535367944703460383654999631386270879565932537602120095443645948543651325814613735325338487028440412227156699540477410696780944924209941125182300438856350858394185961241378462278111164925449269298249838475102780568720004086021815171135082534648768742966334145025247875228751352681012164981029967282821603629583696556005712417010026910648587163518028749852007177354748161732583232156392844757793066850953586612888739242466496945199315409759845210486817411113272278944297585247388832965468643980425564474177711032063690188513414446704180676674283743170649102747353713046091380649632859886543876625734509354856457345338185341764327067474846631905005375461107050485415054399132746610431809653279740271597555466604816460032065916897789777512504939131957284603265987438275250811956083739178359309844122412943532284362631374695491446749634580475960629845244091606247184238927987016922428860326738379403965924069631924665727093898331506236106066265008493085370078502945272120462382705308064710797810233109448123465736036235887724993395753918376249209038144464632341111202769750212018413559922524524064051570611820303682455748074944697159595555245716890523892740313790953692730578620886402905301362227611308706748748598283585657767135771858153862202649020502817236138718475388721111157698124698017096435187847907930745650826228046250553074107697196740439809566978086937857373336087825399672186099284713041654637804058872049051348179318759454587659208931858189942045815759782885943154110357293421429530666385914393551783634323481835347588795462176753032600746874647327885880157931777014190018401746035788267956614147341342415978168250454986427158060027648351023806895787334438068535618240401621322684162879691600611262428132843434063290913082554208975523382009937360670395127249972564459737984269075536258727401363176813292508716960648266350278732881788601679088412936388930525122924263934779632729293685713757694478159216909576513222907514837169801423588564280436193998034369118480555674455523277709082766262156477605777705078179751047570540866356412945324455843376566419030834230296626610527533950653255259255411353138932089405509828424844258428658756281772974430738972096358810335515434353735394363318969163653075748337121053446911984866305673654397632308965115981568521940315510108645627371018881964380760571086287244772189248431134914655528344752688163806128803208944921638136400169147870515030797103833106487580248209738763761164534648086681404332129581906090505686912158423087363051848121961126756759789154126977232426909129658705751897379510989355855413278828439196490525309905651596137192861241330051394129882299885136068803217879384922786191096219510196313578968835406709192367189814222187876837704369850966985179635225925438067590934506396132066164505825644951747069303630434381802331605606687891841163437863164648436454261334673272399752177358212709358443879138277999569758650607295832490415671662587158641901297969584230385454792683725671843481464525947840708746003256581141069547671540040687370804159886448375868503731576777999352105703534249364092714352614876475034315680325417044430495266938109389457357447640761038166032660845326811736395039829738928104465541446974373936010839484799713525095679678427987282890751825669950238114790306091939099686500266504460486871650483442069806043255014503375459187010754767688148132413086179095879754802378069289373043190594847974723233973414881661295822506891178631721756096648309979142209731478571743107450135425114119942450931225410661013782522491054871406430288569629621499252236444917437885932246121884152751459561958879447591414049552392641308636125427866464173414134092072345602851571934029916146198499048932680542135260944310506922568229679414007665032922897859845271763173354725568037093675190076889363600006073467845416839115020358183646088161371325121016408114203038346637398422731472785257097360637855874204260948990252604286784084398680712622404046677843905760543216834990668609248653695337850007354356534072297341124365518482120498078025113150599298548813509570795320554678065084626600010215663714811877955203832211526004840375212303361626666595238975326212428091785879981968856083190284955070053672591646482425944824574455356844270823343700558462706406612361611429534808345125785608861912777163837587299379847999274511795874868802004979554958910950742264984486823172854823489127046243086554758238074122126817969563399764215105124241805961703570961193515476162149066089288842508867426628102335427253921452610155155688060596776562000144463293917105164737041488613412220034499202003328705051562311945695451465796745027375252347548025622514143420043437913991988282358968586083573187713305547885656756137056467830016620451708464316391684526924268855933092507824949902453815161315146395611532212766296871251280881995578750006870830658285684254100345330037410233538974187009346583516876970739570048308551439981229744281912525036774194273214119220379094953595845833124921166222610262166242918016037549580602718843277678533670916674819595720198243592600039283851196246732636227411802799571941672795350247245105620155575945933097265913088221718013517477711867547220652360859340665887304757795600064633750781095735594012486662508163086397725610346164461173762239630185726393777329191707283164635861478193915567222479104596943684870981505948957400608208360910642650958308297138929015434135166229147787701049315081828177925383718501982422245799256284015720930448347624531307910947315949004097291971328169417180557744165816920224200466798458349836302842984008449651649023942149001991402301331152236108063214924651729899789326720211978913319000928746836071991921832612374826998595063973832585194157125368226972357234278093504893946443597985646214858405345063927212055617195236026922749381490166008046166826305623311334158510276025343015892592055644120438405857450267991066172676096713928526588433287151032154640603576867731378099105434632070142137811297472157685653351766932585437824404324321069942007971687547025908154303999624242564850025075967635048830281464787480444678163124074353453514892063693957209404874518967720847975352160147236464268747323446584832794250999689531934488978553994850542526266177121813767772476934117995138622761614135934843853690492587676599384632912636956173439716449972577510844746420918203652555112321665203555878084318305363063719545589896698817453023248467473346325415620490487863062802493893268192695684226237960236960484413365675140119441809354881414023163260255286628036627762814149502389850952036397310634446921375039307630244952721431541613615026233434177906865808079786929714168087223692037254379238730128471587028985487411467791851304028532080363209835745559595247190484050406227468021542093138605005084226862153705103592206622005272108398163104047880969673310436603507950670667708568483800176518740490854075895985056585570010665936261216190318122103828226154099754031986827915529673371386423886231790079729473641864399879050781318622615334703708079716656183996248194044334989939697469253744850931701475941096461137738301266323684787922015951547165563736875350722113213798229831676610181022493689841168270451778792485865523382517877398917394362180411187485852409856328966468142128140725725261749627625761003760131249996465350838782027648070382850560270994982510683472616073658482050410793018698410362448730798605468958364967038287616742682673176428234331902094689674044892270021348128446445843652060537525233545469472700585697802932736572555992106871028507319467649284950155021393636966182509667450915704105841642750750789938199691175793973927702870809369991800624212845136050049032216037191022945105147207374910344538820919435978879314559118987812503704613720968312004927218454913297873771163310090343800008495246735771886055901081366998341480219952949668081555828262643978394551291107235272318633714181901943982581613574504266902557370554316074568802787711445326349325095009264071655383151479009849588017280136386169402643673587941521254526540681037940607245753290845862028040321114808127509376409503553903979583200561707850358271305845727837410128448398053581631231210331709523837811251613501957248730614529031564692143363252143038596383783867034887717062383463901791150758597713532975845364838763839166991812527151786462082882641293489204791493970926477973188718140779459603208985191149933044786481498327708623051610303100350022226522740975479311066165577893198400657399800979187989933129272966313867892858448007530001288411891774899928335878312662345216342431303440388286166170574750598659913631080436794187788058299143966164681812503584591084433802333441751885473512925371745296249751773315045910344310104654797469135987137239045630313713337383828609832421555432734825698982874731248491742288174724820881981460610891442604626757765803344952414152595896429430450424623331871889748776419519837962941336519110007643055515025400389426215508908972258515017821765306061531824868502591054319513106010423038281444854899263426441769541478289046343752779381770828434734186515963407337353100169835416760524728581294694856747752340792343860250421949479246310041019018712777961125508586076229537895795458460727852425151484934026189245127041635602991534842517998515291155650330921923156031739605127921542636957417300305954176718695604011163504750456033064081887731245043171301979731487017306237384829324417710183432566959645083073747938969230670930239781565305665888708290670631093620180156269174349809850905207017081329432364707169517877357750534939207830281801029861231250044750444015220524495137246520651730517601762190248537503066257303914738229434021719631046292190047587632213019858805633929797077190542560835406074929033152496457108522785726848192357941831293927909513862438505898536436663366829522359380131337763288094378266984602472515003425521093702859430911981160669864642159093989417061620692971764230189744065520767688453018852953428057064853177262244699170273913057722696257870493553390479817677349812007662566738667428971192021558529874502777899521012095295320539675751901219650633895264095723728324204233310634716023269974212509261321035939937683206817649060136517612783962981348984330831536496287294353857127136607516099436122305951199082364934955951251048147869743852827168527701330955622198138525863064783911373877690414372656665590790525684720724664181928172528383499839148170760653128672866526375997802659665553371953481906191398188654746613821614182358618235287640107744514576709430753100332066254415588366860760014177469749169571952786318813868004753945301522676420095256376625219516960097942589660494992946178594041320591363935681114878206374490409998989709539415265668927355312761852779028893202817499250104876710899494800449058265552912904148691214900904525788538021362436058162547044147354807983884250244189964839306582478605978728976009695780757226667142406235284601799566852007388441481681965343377256625427573186651154962021972318257931922844409751331588562473625179262307614479857027049968098529492131463788020960992296114488684625944816172079753985807892812805731816299959782826689021889262208217005942373366516250038596170196827195910508778100479363912834185980661657275169808904125514916619840155774570481728402444615666554712055260078678321808596649454885174152208033498762362137022069604831871072930089659071621242356380773089319013892477894549901949727638563667074071542897367945505650441226893092910331693571367796852887836696670464725340176306729131077394662069046733479915642083520564925446356041251442923661756999861593000714432167891302388811349671672804503096190201015049867731094539804810666196520804791336089887623907731861323554094448266222510171587124664464062576701689597749794123765342005318094896736923593139951864570362261411282232860004485452214710165153394804151761821450767261926918609877093306749154539937725626241487836938292884181875100648511816448573361878854464897330933737222894873643176304787322482537898202866843058310628256835146924192414321936525256318035279909839324495981826144760878202783652733162374915781163136011574643317001289939942654865639508420922653785822700160039090502527174523122426592019684456782458561384580910045658285709774552492320913800957486792998220850128716873989066840113368080319509251754929698069105593326882210425554423842855868739103783334769217394212329073367783859945296687555306684453589338798429288173643866034473815208482756211855637593539200115959194971505144555234062368813443873802166247191659260792045134137217367957400101083866366602154057328634289406248591636975834997202074153492691942126631075421701505726540255784799235920909048487522591427119777126048897716329930552170061490082938482361144867762440658435389581565899026826584316622471231599525272243225784258994007966727137091625228083122731524881958432730581360375952432576729533428250256979592904172985301447393868379909593930467617500240416434253239742482910524824879989080178698674253059265546445850802871752387926453803677123671753897627225414178754273438947146726261226324050432367455275163708816268901821849436826420281819512316660797744227730531499463817439866390429231094893257657120745319268962671334953089557431543774625995871637321635452359579407095282570411820593601379438671109005694120156721510821056552189279377110327673622722697722620800558658301756190973924858072344157720317215274510526387091360579643990899716101565040903227438797787222718758823410889631807567140827519641895613446402350833478576458186491738740861798738437569928956219966632269995105813761059081294940762375359090710425795210848153558520395184520362229555062921999580730362750571052986952586070212450080873449051198079960513554486126994306344118907359013329355076977847250083070331036512276338257066681043070314524353606918681302513425416603564558925174424970393677199191339099262314696715814156948045162036928094243010031266754751098114752238839990300843339137591505094194909513544234005458108254050039490187239599390348907938197212178357737205041648997773200945889470288752786975127512477387105790728703719929941591976413051179471196245244195496032001468623189998693135700056163709809113017811105454764937665834817444406999854607578957790147072807893607319698806709449343638318159265939329343068526531269808441283744117093588995700903947530003413179512558381932429657056853733018389154182799994936198963722594378787622334461020123065258590916485966432669736919164140108606149420518121745918907019935231028894556804823975376644646232117178794973313747202134822476892748269412458773030659551764851768652783051075521755704010286989157195789595088071585650757174880688098888245216671241082363635288448981537251303809539973306738088370063601570363777954499877455055636707057537311082034088664175637514229960909954156504992351780633170332832264537900154122130548276127744722775083155582005585687093219655269220451290988025963603899209656040055256328502848902553370339936914793977028302441685015257829273383338570252481573149116936306725741238177657060853986269449020857736488855237752491533575658179133497957866849150917790117924889593052736853665021377851623742421713699619755138086738993610559801936129361924154350921985504606454987363912842221160454826982885998536059903099513097370337512186265899073504894778305875630625894373928207228275245260323595039202146483678943684773560451736704036733941847234991757536792909162902305686265200090546467963527052333074658853916813974137639902661243681336433761425930531706533420768691567822761724000266573047045368130515915557908342971578652605123115196059839364266975753439868850945218298677346363903224145724150126933621171343800018869937764810494140977235552159578977894261578257658381498529710287057670810694300819861574632757993644156051973520113897266911019243267794652090092011762775227793887714120563645797361775564037309634117493184259933574449789517581675379606234579852853833166062524139511146412648516402116572546733790871174389150753866450157354735356360524672611452045318229574870843035155534342261632799061051807937001196226486795031361418715138904888521217405228696860916266977446108249702918534956403948605978044440296284256870631236866042341811734475840529618325065034972100469054931028355621518349422129527305395192608334211457813158260984416404535125812048406992897010497975894572604616361429107534098343185650785270959147014082103920210211523340839938122746291309252193727954004391811831930082087062934092055363246620035609609795469346736647228268235461004503396450818513945539081469698792903524168988060860225882959207015360433549941756101857481845564292601968393301088220442337915033696911476380181680411559720122958217080670338478730437712718704415740479483920582704870086623670099391397446525909579143375077451081247107363780978831984263722178344908513770228015709865621534512465822751271942972994867130956949021456551337689273332040209937226665584730393179400386106740903625518668442253898253618422050466806625291792851360723779415244226712024692674564660991918471980460270715077798747843102762779655482889206701918288736773405782678693784842159243947528849681481771871118322346612817867319722709504471080049606620942466037621327357557247970385734401324316880404279265956078168182908519746028324505134412030790644545347278688780770489923305520547849900024269332210335339495557027840788309004989637619061733271275916836083294769271794769504697834839347476416727079825420213259960465943646827992284084736787029345541051206863434852249355117291474007789933639120387665714476280008509458749665256167550643368945652057442397313376435412623434349315739746338680088041792026683186074689623890432460932962921752146279459223311560434710586010085393651944169819933701392582108910507050724301487456134540639692810459986954315826960776122269788754711888903345640831191191250972651722766127202199614663364790440570402117090543308794734156544523213543879161108361861280091240741103028250222130354189735539771648444240933491014621838230443823141490976341799556878175644201252144921435978006789522739360290870573106796507607793070036332752052624158098181014313765531753076041821504475428746065183688354859276762368365597740431395009475912407477652877397797455212069695375456362312004330285184007540535540391198024896316619351007805219533394850855431353982434491934721438173551232487370309848179490972378132422936975782654899314546587472011376262916410593466781170814414582971547307958910143561857047254498408487186471224315415248948987454019712976355395040557481695880006321375022547780683852120060632308930830783375279618112626612851427900969894238508481114828585465212871731696104878476158259375712913092926776774691400383168806270233745436894012822127639447639407476541792689405514991496462000030798757995041862268993708662072602706869182793224250792611687065206802425575064564934331996959862217105738948555379052237609418515025450873918429556141448087364088275196898745236775779694032504986308783522520158688536932033421012843734972460803892955335727827962931437046183619423437360441284191303878685910497423049673944487847689089763737525308509975055243362398932935452078642243195867883227815262864429704864761981944427503766569899099014357729769546495063792516221265236715139953350968912827283117304540512246942558768722907914673773761369873830988833179310715627829950621165191400605427030608795525638898056456290895874176417073799884121507461825722977274280152402248489541023093584587772439315719943160687756793437358426522451666387567728288096639111616877184504877150941021518392342338248831714358912665895095686146482662588311928141502192212970569084566437850297893478609748837737088284038692914497915680319753872397798301780091007871506564861269627050011487795536771942334621282139898398256299609647380391419113253270828146377898671504330047232826603961373470548843847511066425285250960041155564410339858277032296449017570054590096113357290442373978807375436352578874679892514875977270996767839877816396028698052717921432575999440276262718312507879990060314855615048580868019227599375684602625454206259566774031609930128688186121591843896927165087335870199190295843016342534775788725842799615771533048360885374749769989450991470205306940572220634854707711196201940535182717552874528647894178575752439691620553423231930484227276915895668350261962339523158486924967835284755152680422454963776342394034768962930265280320054710209491116398011978931746897615615619101732622732340035832263846805017738203668483574386956954399626649616201482352592746830827530230271669469710388659372440264321740925380687433107737065609731326847255043282966703228565559194784289110845515961906384984013377151776779578081949839171677559228286292683911597162794098942782904868469243846333345356387972118514667957004422174835527344946101044307060382920821460583415019837680555925213315445783989654191019588700320722017363333723643681691064436528614589917083985795584279267542935167025710636760710702764735893373820121266804892916413842826473333982296249082160169068801128587137279168499744385434543055901544531359177888685975039706178941274173734859613712644320534302895429513719474324798189305719058215669017112144236711159145878188049858697494126185235010086513178498492037242141723090110794884147965934278912043153021726813284085980896732165523411066697771730949381187496202445109491267144831095338032264719808169788308552101440246968090462786516184101820256988986842636594990409970992056674363250226503035659039176387674207347707538305206419642973543682756991594369676885919384100090304404615711146708231947971381101323656608057047858786128513874796600580517017924480494652239791676576497423907168137257135965893880669843062967811551887900519250463341333151069955137972207922282506238490516892948535543106447511185122173162221265516879585016321833201277786579732810464105751620880004003414231932409434558737704680811488960906830548448325250341423102822956725011480892445923832299733977877029149680755234395875358360197913487317893271222673743235988677754742495662807311461041391902972721306016001390954205138589763893263647031354414450000193238583019984302965301118855798229839924118203607267759039735196111913101285644375615451855416370596725587244100551916918560126555150582574006070387609374532246297192975441212953598866841014232421017755837106082857381382353139768265900557983185983236896555847284150845886090639421985141115817194800003927392621375184313240786616368143873630472475707542916288110703163005922463284123434994503741520132134418706470427076121115431031384592791760959960389868627288612959637039407315597081897741992655686900806984650538591853262921480153987940643786799691563583795047767701636145942836902419476874021747890049117132463381983745495493534149275679052096712736209861323699064354022097940289889326950707317565990202952220215681315436810669716842618637588277865515100579573135302732150516204906343943664571848441462567107852419009096483831159695466804967792393751055605425387560053405542348173403320228686012890004273338861111755316453345766650510539557986701541870538525340134998650997611989000777157762919390599698883050614302587118853245548841974807906292547267494756726823876609828606990217144174143667375540724479220504269655832165284382073044229747596895810546648161875965327768882197431140140903730759764842257320758389072919764493948967561151706793779245956646389454892942325883394983259266233109962813332474289888741878510182853458120296590638490249356894204054766357430606633636558641917524319638196554377217200281519299330102880292120394093241312322606968145256546436983727599432372867382699005902793002508165782224729835539540173875829011697705149850633919477002880361025535711742072765537389134601317716682742174526420042424315843813874348799138924324361823717136664304328154851088812365582340118607690754272392044518542079857089877764603605064776556073650996781495815466304213219937767709872778882751031761434142942880735690837629158410314497493459126437502561247033671612174414000862419886831603191955061273794487033190295744922017167291916107552743410803674005213206912508873174791587881371610740832009280896465490817370909212562410260104510992105265252724876030918579835827887350341463180210543982895414541742202678914692451991267865799550460883081962474257722006437657258263505244201126697627233424408795308732847539800085425173349308445767227310648447950238590854298378262952505174334369779808069006934759306668557852003726513511294296385557627071844489631826314817397650838516677191966977989572940852283060309188868955936943473698955170193063892869199879256784635926352207374830457849892718643550354489464568358593054477043494728242808043912388343791250878770308847853377496478865407458034672493527760786915555545510140447833605650398879164655096045275980395153768406708697090779068212688580108097868912741122700189128997136720783910631415517949973484879725136377369201921759473713631322134518963843407931629859058648419388256122160789018887106079878883631975125441270365598603946298170099963934000973618021855359686420241710446581191945394655334821584099608941224142572986813155203617843871578158464131712547800413425291963158752216743245079796190151803744985733121102949179107017294264311446915459767648317042438814156508073953036072891429201418699621111169067702407497697510213636719691249421181514175625203062744383081771499032760887382449778104729774062896844434809459133658608914948383819699865617446871832248311957070574574708123251666198429539023617593283910454418418972674578855872567900934768209146426578839366170595461178044113956842966676127262981177891756592614675685778954531882621747418868991552120053828501517746611269226068384631588608434380255543255975439195267853762752276474282368925664950175347324640765873406315474817705148131929975938526013589538979795565204284999660090756271359164962811182195596519209730867748299368703917811707275349303459415947972164215030519762795698902811340130277478650854067737915960069233389163493406483539648096084821849638659112683539730841929653964433689916900789451276358027583113309327710202619876002448664652721891766516841357407670852764030622617845019041048775723716943058732499507783966504001970384825716883242418250569873318712567910639182586772554969766161897995051835850780597461647722592610835305752595946546509339257990465135334486204691863012618943503819436563982744105068225615812424276524366539370843320092733533547496663951226747336165074601711805161033092049897433094665902241197523776586932087080991539859414878390382618887383161866275928634249376658277355723369895552016135791270335551100955990484271276883145173230012325750806412241022179361539001205003763912519007062344979007500994102756492513600155636982273737459173715524608501600072453218336941849117741472702322644674525351474966259917065533116056556792369244694638615490570856642273572676642497915473280692832135008336045738875251653322693712127287659228000387235602527471572217231727503470173106488367965165745982148865294469048261310905440828188830747156293063085839973881061349538750606918031986624501014606913230351397478298678779234953045005473353166468724739650266242529036756125905756028146047490367691910479546478089613494684476995356057190005565800010042810578739369246904612212136688441221262516838683860820753547438883576108718593916147224287631235799978099202775083847219466557384232039577354678146488677113243230252748647090024567171662260679935609713282444806562242543742210488209897064902100579473362172303818961314009952726936251180578813547135540131532540841642941131493453364391044631973297893600367192575828260007594069154666781493136881091640006090066442163243305729470775303338706738824713307116576043460344221696282468210572091445468284013341254924186019753605752030800744018307269404564664855686794062447060002903786110582021036415546020421601648879055188236247373982440977730298670078964978460698999283788878668741683367382338861315512957453712606208504556479833829811940235256504917441967233878461681140122525072078737352812096591519223468228434079108848312022549264822754043046582321574523752019781419670394344192686071773541580192376376737825712917935066016615236118909530159186167407668686376742550965203289025076486184992761042824713715218825601284071776223070450316502715880711218186069962599488767500627438342356282300537294294612001034154360200263971468332000354385678457361675542533232185049575848778452274965473279845530750918037205816986122009074158929189166005887903006242462340066099769122919835949662360531508572013888290156889130116135718364180726095761587729207316856658097331670651967042956320389306926082018901109955483433184782280076452249994606330353763947663056852124849070070944531497510135574888137461917648745288889652277868964601734710453029966985233056757512119865624679523158938435940817094313152048828170234060454220665708822914045568187850633129344939987824680960909498247914494666003535185430356452284352104903137760764511717980872779678560178647214091295443026505631856349165526694770850319866697719363376892828793861730088880855224063000258609065258229677941157089726308978780557387943298775397331284152581810524957858980129165435430756657539653349279359868997622038554409332596921057415334114765465386038761826126663331299478803117444208685778607371698570437700553095324037596525926967322188269249349790538392909690762647603021091181095950431084818537772263784311514325223336941176782532219501696365317114059232246541275566822750037859192631775726111414062005530936607960022435495321365621969083468392528889336981703829469505486763776122524560711451717073591316160689089441052359449189400665282179848652107755785945190689242947317897629203388303200707879218124274621005043181727891462528811844104176483254963731724029039981391302151808762368012999354520135663257719746390048844698238483868706203847894310680406344617546629680102571397738039018235751777616153716449030243567105035018235839361520685118627845685659732894737383465931927884871628983507274251653676404210967452563553236124571700824709855014190083767385158897371142183812314044415373231162621423170968287408222681913632723258583511776262162257431916545175493186670096329427928301028231710075901965422340409860648866583454956099169466455367508532409225500342669578770537411355329372913975315010147159820829781726464396576812013641213758425189033068766682987418692723196661355376099616230327872393381643635057345997910719523817451280299367158941418120849344631890041551591125690810194905209707321428698517959024743386724143328246602125863301052149344999466052537433041974545684892354610158858764656894024996105942577674058236423591675026104626780441867805962012610505277990037065471794328503695026409816605544140213621349853433545112979955490142496550764472842765614201179941557650448108851784954480981667913159569359293500294938948027950836047948043832297200701598426317055163318668521703914341778885055167648661108496254196044619322390319323147693889481112275622395174167107775240072729310501755021038732320646608774804528616031619823512802630101427474055811611732227449473689688621746028927057732222459373369211322269698625810442187596546423708599321352438862466191043892215852399814419948869086363105271850262720671452018540298778445850177710176666009201427962273117612518278513541688874340097040842172425812395452065502515044782428540438482334167708820004142699495303759249490919481019158817325217599015660347632199977337429595284654755149720858514714651589149379236630285105432056475922086475966756906092831627033973104189617142344153275507401443539383258998167717376055374660420508334714321518681351281079632782060957941343446145909315399746749488801491677721851834411731444252878996163273044467467409542824899875182856592997208938576159542544654624452904956626598544317093166167441580750221206087740384434423775818776033442481657215473149717437919625698032733278548374554668342085080046737784555198085807289003412216066277054277763264227687282690775242937966904482770983736012542040003747982470073858316890177050865743289565270635593253378948179661881339184687959565298760584645662361026557880325096648288853306059373552618957152479622868917270583589743185263943372379438509426972535679413350963847843899844564857029424907803786444270969672281474320217182203696155338939700792557232269916786732270220482806958356252604976526780840254805039814867225554184147991550202832159974235790182454157547078201397631256248396838058674099066893482585410317159469705746240289847833260498071817159077775476182262315533993174756763833220098914003472006157768263381363687913214690189250166841593066890582631768566297500326957882962361248007622416716058470004646797017236474204800140638942649105104529250483198880023766000458030172163836302910811736758862212232482302417158901118714156137492277038969014149364011767731972086586100692389725068964623454870619441414823733138865741365020421747986339926189604601970456925522395986117218114707616441934298185963602104730399172715394827908668923046322261996974050180162107162078601031616961267124320666808231199673692172015689876563403646637941042832184513417672848656813643073540446609803376693978994215184258459283501984088865959779099865361884694112376137498898382722779691026973294271884117988882618708530302869270837777569725841941176243728928389922568567181851499780490315446972807947919944346239857934811893150703503557358070405143589660911340787115941020195540839907920486074959151668211458029269306122158363528403368071594358731786158543930980147163791815002659095673022310271205613188517193397401480322144840846220316720988554290857085717136566338794931055450933817547444074637483909983747544164754207986019246698595676719896288393609458848962999663295627815071337451384925922504329486974087103643620066306398216878394603413355255558019297798053540545839351317286993495559412199290600948981340282812577036602118328767088620186025264004739470436244688245928665583447985155053902939454551976959208903187993349522680784405270835679884204174719598014396885410934263565756306000453516594276094390805537005286760360802372046263968127647385094000524328836238049631985400593133375209599845989145778381405647953146806210788627699455743131281560154586725982718431764241718343175856581156409133511699988629885598581769520848161222905686493862945249249802096208461269137359669772283239499138682285738294438511400823380219381765067686595694269531290957014190481199007520195513835905006486064922426621653600930246313930866546427849303178947629703093299649176009229059006519143873167597964914034760508804582419041742736967469885098633539248554852313574580708653069079164713070786410497058655908893715030682475844031113503085403601797788784870662626099757236007361507619330698064898102639259749947124704154031232486765754452739236948000191501572130578009612113435940310746721115894591076218913668722629330203308767957362378797620059883823559217135378263187989158539784762189082296848192626574994104003304462016540160551989125371797146697478778324152259269792352604782558014946181513871175601985903047889121844744911876578259033341763557825105769483481731623293042761695691930174848198602603624088523087226521274074777929321056031043501981196563967029199522540189171548017296701938823928055505338184875597146402212432840345178982626438104898736397870520870095267880266552573530873605773782166125981899274434578984002319179748164343804006378308438532063665488727402487709890601079277896573546646861122764236947787370505834256372386845695753616074751254511391003405757591128404184319531963081317393334017133389430631645563840089038035225076736000486627921729685014201562341264182356234348264056815946848347759965698164546486036488888843939585774628267299214732149085907604494571660592140454533364973104586936221987226490315819007206720587368482709960690613774743634458941060501835011793135017267314513387310457295673755098590530216839950488718296443197615270072592192863042752460296573529471955507104355111550117059832665714949677636435548861445614150304347088717634537476762641451017162490968101571319411743259001203372872104217156952608995735456818111754937091921380795327592659079062590114275930879730128318282761157488067824546738842236363527172528576993909493746714702449229223103983601477230568794240342937628427166316369918423358560750963861914161333841804124586387773340479359024100635349002596255326722130454813259992754911252831023563376242841087876575722723156862244064870481100588367901492030291569781942173011851458773529726168645822345664916435196504352803225211104355811540631329301312677369588620179998939344198512024138410010241034223174836533642636830033902719771936849957803125002379649079910597053444070274649191749848215022519945256118177463873638525696436431654819565212461328025950722963565581958858437543609505464734686846563638594932548722190109503631560869319592436941320290878571319435374986316607174392346363070673733246575663411401338114732886202492313829509489033945102660021282865317805252908836564959995431773496448702014184732864018681875119229495620135243321577720734086237168333335278092139530530738937356448584451223203342068743285594630011597769012163897087022273491997803710746438813393874847658128527959924490391984340918027273883865674819148985099044684927896209078183995844841371276276532507985008792780413039943860119550862202472320674509351992355044901340079495701480356491604658796921147665609396894280337822906177350666625391997726045465700496692812820920483884170744010717530604166925271677148799490108682055543941097607444540167012974882448593754703889140137505452485146338056099756902411679049029900989787742176823205982727410425315329535862666619223375973128270233911516289658842549804040702559036754270760380146764545507956825678577873516447460790731074355087934854457901182896581824932321182698500750364493699661713222998151600439453506351086814365832042182850010788852876487132778171264653151108219030804346389567897522731024732829274782153894406744091493510711180593622035983754767565649927686893308189027651251398233385849315706238660373936997765402470647473633491301776648322334891891584549679568631773620636244471072932057075897077617321875474301485056244002220858028917172136864183129558712217387931493769757308668787945255226931405166387010640182498625639560213537713327518328423388674197673345519059993490179624267907882715396421925469271561507872691948299241833041895025913928899479712290420985286573418440365939102439053564570732918422361092821388465181125341944069647951059782197766662367115756985514548013700728296724302281410914702127405998724864413225168276735852045387513903678037459026162375220137234707603003677734875622474611887712993477382767736108802346661710116242192549680551602799494815823935137276840294618681091025683258186977661234322793633027628169754136752355263634814829283279326703235633949818444378455560668204698764963991210114651803697296661882177028880833125400475564835375402845703981899703703518107133388539258808445543481988231690089781765894840856225026525369201990893873147271822249289718604855462192806627906290385554323295416657044124857228530278320324366529680837488076856003648925971301369004107185613319756779449889216784894288429852533993443694286479296119804986926532630895267440512330394630679143021594710947064629218283874995468432390434014489654549794230688629838074889398195543463396663019184007917054244109301465438905635290098404767498866282422049362711763733905199810408138047348239387543114737618635138770637584221812232360787485751530556773805355280401109538235785486399556471387941841202074027950235002211778479384593021838489525736819217494175540306008089086996309092824231423159216291183429223475165459209344762897005212050520145478509557878634215064677568430635959595151356920087717186824475119750957533659548084700876535516027997112725048765989997271312562904869368032222730968159923235521649533198596790268755331680678444969057282901902158354621562150003193857005220170445696144574159546498543593229737422134499936300591461253272240181651214992029486545171981494774213365885944275605777975706131912663656667198505866023828226165733325816329762316436362124964606893114397764301854132809862078839436292657003889555981477424440899578486730632752969054659324921035707133609982180731745015950657899338527434174580574940277630861430078905291139858350406438965549419459572939346355847512913534044568518622674268994676150130311551861454338053719678309154033139951571575856713632735881666556205645137480275801089948446723648993404791318925527659702917815010722633734863196428089204449887693090266097672263397926228359460406321594487462326359466609907112066033446777519203075407574184889814913232685391196477517107759550321609548729254272552396859679791242908964161601923190701925764183839438932687999984679095793869500038773475555988315215813514606813396178439236448974069565914553512689280845959353485410573066242121783771687554157811930937626652159369178942206992201691548153010767595451557862857112016273393396316717094100978289731049467731110572750967452648500211688222181845017103044328034519481276129894791896838277162165992548605784986538155479200180015444691774929912241176776955975840459721376146184818841318742150493908521796754477905382127364448553870424446459475124040788273292625477502015460083961251455894970726690143924535658033268581051497194720841673477486219846335481114990755074818287172969834469032134622240382069822505513222805778565480178509075219084262063777884401717149464937520918912128370712473720734005898550100191974658982147730727753096881033980883667492604248206278627619273692271900123722928012892513902821520429600864374655690403838188312039677622081700464339433483993808231497532164847714922578377791487210576213947356462753560896473450517333774682849033309835670762545605815507152582246523468598933898165801683821987994723122681116306880399112178080852056995931781417694455217540405819146054345941318216253803309351240187868092603697935488290642057407210804681404207423916130271740838871110851425109718276349390469309016332387884106088468919722741820557599491408720518018595263618666326859671266560354935418658919031043221634996693701141405026761143707253721580091545300987664414894944872716381007231548201764870685247708697005326143842578391974870021793662541686334053394452549773347539055130964749759035090588487341307830058980615675705974718880701123815410506483616521531648055958796782889952787464336846212546345705000522171873748957851190610020375111167456003402933176257964514620194319520949788171495174651256019735257102777557184947980416334785415891849112271967767129340768134616302800832465372213780363804553049833500139273132293080366270620602930386389452261892114663645337482025262832745466498043581486577906164663565557977413618228520010686854852196014859143778427341024131117755391903896345513027785756278961627550373106898080642519789277872034185473964469259931202904604097994793546194325370997331594279616635560157265265130935034423487576987033986033099228805958979581547154696689802493204289240525402779844157038610990850722323647343449903272304707328885795645420708088551114952401927024883683299461537002890871423793025831332541624456415110727054325736505661818324002668695804044461040401003025576439939388971302795854040545260317620784889946501011265125748866292011123696885490242688898560871117286332621539219615107489736194386184217639074274401922458145602916105018041415144904025864648828406579489815069992448430650097937587128703677251583796738450004373348380216361614754488150497642163427050540903062577132208049078362548465880550650627542082739633261521582500527626562533071609494153924171299795504759324789291902363241859784413808430749993004941822031265118660759073881386056163117109775799358513630923288130679654898318343176137578302238697910050460208392430017174175944808854663295995326254473426290190409449697740053752684721926459378631703716840047237298199299036802268142124486082946526250650036995448717274675920427059476693271257309537128835571076468717028352141750412921349471863326124864549574653136095854459650766268248810202282765128009505825850710450169131123358824879366785301128483468217186526344769057275637758552754679211881310152423780649870803867414010331099002231769203734254323345979267028455132871417141754538923423887592379565919726842807935045462159316613532240318044216747143044222057703258359860567790943178780145546447351004619340638623207860994968734655950970382933288767565027509352269218845077807342491447626120696349329522168444764011918371962735009416162373995971207898523814454789990139346784053423305544910439661112556383852616244510765043073090003641425113858895513050789518156719046608853720033685809787111558825353745282048448838842223111236407633776865268102461131703725964513281038923992081974233342908553403429268946112777881444651921355141632187213017082577167111042455923916152303062320446772428883138005483645074423385017154535550798352122057569525651432254782907854646530442146093362438469203604900479799991426191527949821148808870019108583855452557455175473874253014816182079239369480001319768766812144214039181077527110175542053060246207283084877342137227756264869468954496710759478350008635298612493246549988184075773848056287602405114687970642241548664246945944694386186340854782042739024357391314262084976221682858499798367235496944053989815724419710502765709638588160903288306324989922242187066839529687793666042325806752292119197130306840328984544118079486951442612344510840165496220530229198853243152796913347123972563299065183352885798968576564221326065087032709267492023704394304872110220962807289997411248639989107995852327608431659130418978885712253234080830749136716518494069944282812768029918205523017893592789878731265063883083065654532538741089344770415635251092909824358832613862446379103231820303115057290562645408275523168135111390435839260218744439294080798098359812846391729338978200079223414962830304349492954072533868819487804885147674276536876855709175085098233124285893578739729463459453123689911951629660568425784002520898718486321035976105714702310035304379032267955363190111566108893476258782171747587335711680560574680108368331077128062606412524903876377889921910610362029360684844428666969419725996790233514594221789107451678764811156252969531253892640542065115124902916066002487635195119324898191412207017889563087694244379001029164298222786661729406333911114040223316124548154499621819158919308091592689590671494818085283683385812926846436856592730986804963020667698288197991989657897636396119673908629021220436305078778894962155013642969788405249611886859304910846481592821732303681520189080821346981794829903662032287279784113579147733312334679535033647491905772499151128130056663677302150973443321891442900820299999599215217637728194271451397230961655805352815618855193036048472308799227098871418082685177374070658956431675448068245665947819721940842755609289243759113568593136645898696140719500950744261966827127225756589381238122045015169826849286098192917767665014621549488959957477918842922840584682499305462649001725340859997160372586846932585692662703372598807568375988681578642021756700884650895528539520307365954040827167501568517918389268430922852613574638527014549883618455993210479128632525029897154195249513172564161076320513725574814201345617210507830857759626337691206146793178715835495185766173548392061306634822219101375700757955968098976716832527500300076505301531850871105895104472141645878528689725456389941603882860168296379807986561721319842119497792488779900596295156611167067794066517337879766825315010344013620039290265028443464463026335848407663098508415167613201043927330762053741101033168922278659755995045081294318702694667829057648608807614162346869636705283188525045413843621666712489995577688707839005291254382511988185975067131390748376210240054779597108930658313636077723220209268523789845160852218146127315656939398213094042476932322823002545843645979706299351407312754473715279670899227127527715213171524874007885843972223805873231028863286748086494194227962004605070626987475627580872139727755050192389433464820557460242268731186609724966009925507701728963472711936304502049946138496859862222294874377280916006066462290668833441833587473910107757521954619631009672034129691405315097172061337817378036540991729743859104485992725541966488272681433144334703571497542712665151728511258982502742811035018741518549366782867659361905802363132862719543702141653583913001087369921035476176330436823186529160810143434747313112109875945138511830654476907150994935423737782088970762398385040988036143606690121274876778996087536198817433200008334423057833688398788791530899052808412718309520101514428663507998858962755360006113111938456398638438868047517058563034348538766713339077078276329753756652019275996446932856918047065403977445138304754362116491651217469322870967034580740572000211735580313486174821161500054709102243482216780579061311148982676899667653639671486132101574056809762961979873325108136158738310960924369395900174418957775303332593416343798418543401610626569078660399820873714598677314584460634996587584831647568348138706627778534273460144625443106990709954190716321363398122673633184312025050371516407563989951725722219562511897423864948297122044624136871321916378129298093378606611740145419532619916461010388127265817371784540599295399679528677257163472592461638357725406421336676449382702919227871613072802034518923622688424381876717047700000942020467414462165979417132788622557246560781800080718508055314388550569634162851710741997002260567495333861988572242363545973256898106480985271644197226145018196560778113333445567737557064962787415005437232823123373404286273474274948291985216633552761351204418183348991455492605949696984820533955835466138947701309545873127722481419190778095981544406347126768762291534002511730785117635373466810921213048566681447951607666628187122869750521071222324533577983328905882042379077456450578026055401890603084085733788960391333351846910887605174199898268181495051199934306436979935546304814659339768105646386679005448449178530593297068357694686728855617079870460461417928750534599721230160958082926441696956040701317065098128132420408699700541783114520389889584729448726034515557835388530805210775023619573792505339146703122369080189484475363452774661071267272970111265127829693599119451273215701811026667306944799506389210655123524502500855003130633305795306950941501899986061339580081749152104155003886270278732254142501801345470355580674764621405489895174498912376975165814865353498705263313109842969433726999201689888623695791250096460724230839449819146620264874706069793794740901682366474072404086939566039345645839122156665783324690125265369027503067226254866553178950125711031380225966796345423179554307928744334818181215742865499155817696180379129810181390698203705617508915760172661368594482064902621430306531832502523727821586914338530322374677637253625877397956482024002695187420123634110586881481483029734756799006969616173377827530213860828493121138948461767721937347634074106623094503106399051310954672881996862031000134936803052812558258879342945082136377057244452428862677655789191676667938718097264123969904031142396847189954537291064640372304735725978390723734594604684261498800990926560824991257340898026156925533239443543839733625581249532435595672884671901680689620406254664566085659066061193262756631884110354715823201530921810201523436683061462949918453963224512054749800750579681162719309308659999898523889852841061368479090393071368104561522445026697613963498921402799633754690125592593660326489458018712717275252141503871692321832453892505349779608921671784774484796057951843496245968432632650726554846165332670500742092931527216740029547060692768483693764435409140525913724125787156802510272489818062659383870192377381774758022914901552028853671028263627932803745089505908980998379470531711500268952072717077642651650832546079738846194394220827067797008605593027520266692076609717404946481529989477271494734714296847764908535539745321408612673803221281971979660990360517655405011708289884824359884658937671243292877520943213431016318053711916334103454388660227186278063826947593243448750238285754620631170814314173732488492729652157594249195396842141900689406152670316488637591335304447107611808206842125837427614370045051847892274710585203799957778087864753881992118165783519351928594944144615044625019742728545397058609769108290684790853775174385396949154980357643746941960308438113428571574325565950909852610962941104863224220607978843140721250400643723616031120532056341172404389591359258043385764482764067510279361970836093824697843263364539331195440590469952840561389536016716723840723904444643884938050667042737243546539946659270719279306322445708349841880596719682006737073059761694787728689490595295270945418415464892530720192158726626326319750827286816111262622297874090267294472812258613683967972712008679030188014085425145090561215574485368282371041151824814513805226039593202517518058151156191319171506221553744872341626651593158299903533934650994072321472189180844128278411909498733458442996238522850679604451518680395315557490230459637448824563511697420606722754278183127450946652853424234266469058720886939388405503584737856632984517848810972728181467171927738027157969416669699612541555119964955712552860090435487247383265251382515356678865714495574006075600088071356724781602658250882998787819248717102879272837671929360591055173801765867044543057164524757705393692717700745569306933855152451840257592031966212105656359707353791673460510920007365631376755281823017344178426022308586789351387465764430365142575119925239797017801689979865868741574527054639354549941291477476462497849612671130200056826287675153255686931366959505475911615148246090559652431256991718448317843012619875624519118420118644752900477220052968396172408030747600808264409829611094047666294077823024349748396778454739662326003586697984867158799343752742192858273320471183439459621351208637471963272007495677054656836985602201719092100460673691173857132425810467632103032424186988008915429625580858401118256873476818795669280602079569165365278464190297233054160702443236476771324818681939919332461041574978132052495212868859073941220079768597362266265297258203395467417947273953086033308556731338094213524270512935437382912442695797512369585313475279448411643082986281590835755814762754412257623278641070602854618486386260988669274013137269374271097087636032471466379483576715999141934240022495679957719737541964200868523183145111632646653881730130409618722883731619428741449299488267896808886330242003346129620864077888039102720816585621315639251233117023562751869201081236516098358418825583219201182042142245047552137293909499857166658164450047280492615713540868154925442844265608470890180915090887853881488211024064855669609191122758411290538772048939476381238004402861158236823721579655667570292343500938212538770391229495718295106729827385130749478117946018930421105154573591231075790809167877168287115176950643743326451910087394539998594201767456079809237752622913574151709010059367826769434328856869478129719397094210412742531247650683997818334653629696255685731871707246228474262865655367185150604156360037174898929603832285742156175728021216362535664594095530861642568494094147832286744126575906751660983600681606646300974851075633123575029217404489061060360461976752881864707744553486544047101827730884246537489454057884054223724703779185044426931846393280044018292860155598589550929600926381866178675653168676534364669678185896613256091298024780367245897893754223668991910626728940901299776670777700864312758507353312539268538580340704263599020486824530469122152534242498893581430322051195992651313042266099544549199782587097277261810500227756977246546213260637526560156275656962378047822581376481841512644239305129518686678135446093860184277504328256396749199529033786156820056837540967638017868384202522988866305566438774534770249822031653693906139625122548755623965437247046415262962263141509912380457162853788508887200276726058342924246949249956086075821835685042159636797825145892805741311878618714008046483735667042162273442044605665470557621883170741216181334629889887220168270023991060740091801493870658180684194808385457349369066056528193443089594903041742124852561528884502481177182617867890484897660275863218180295765481775398410254978027688934496243291131095448026701934938255603507483568574507067509119542994996982363115490736438051977006586551410100818871024722627484866178741241057927460290592324894024749265147106476681073168604529784230471407388640164843845404449160607424358025459462664929857579380751049936779495478344846044085744447763464362946076093299044891704394891169692516117062598511056084475104310027858971024267945513141862536388915708800716662569756333795098823162778066181238151986562439459247317164038496483604266448290911726865245259770518182162378443870494312764750941475694197752980330944724076716408035049791028931524857079233966081489116564361516784168512518487795174462611681082549966130882782080191196606342486270831870623784587388034262061741089407031028253518418413901894073704285093968235368586846052159597676938264191107819684610197560782927081005301133823018856491553840655452360390927243281306072131892859673972141517287767595574982636371742849812651893100171373279702856064494973315644806865429036757750446580993315256987936866828252928877064936277322127733038310118253377888464948938035411059829707921759838252217154763180759155543472689178821374504840250822672851718043507388059822853730104969184154709372167424576601750943970216833499400704779261485382267757042092876531160028685542424503457444156200953302172664126563366565343513459725798482143189161478386529427257109086777341964925483112642739460596282223562187658044249815763105880205612123666595867813677196212513913746732175817821435483652083534747365991235896907613444454902196102709560207538759439190553516842040292020666607144786630199353491749407107412605235350984705222987272577634315581926570924458863145999858484125901123331159099996547285661892277421871255965591749706198154137921394967422005875386161718444030950970156702847726455871067316862432466450680276375599568247900103593643798008786697923641266766802843061839481784432149529271399652445503262233000677220477150948664123456150029221480717899866995152935305337591768967402655716482370099977597248149690478449157315864212655733872549690616572275211409086549280405320072388990383505041826821196921454598620865009541740138552465340096706607576812251915370133209446165250805973586101369446340954896173982436758213692587475948298822060486879894445572989093991595648148661866541162247100519601473691610519886085891114531662953475930913403716333087245252746984703246259913256312215688319355443186606072117632806266385652366985011596693092644858986526595218129185110372617474367361154126131085347105054978447045771751456813374183008734684215837045854462690700926584308646659541512659037253795186590244861274310243635314347883139107998004639272419216262914923109607510081941224046531710494064821055188610124498009088613979553448764153252954785523778989569347386956174778768100451712013696456532874697148853815465175981094541329009945074574728236417716915863764678131459865305982109885565803042906863551107209815134137508472392177835515647646489654178507095267566817185069407882001953791780080434687989925394453842669790310820818518672544288399773250189053500495031231444056543582047471887226173927822393350107202668366609771411176272552659100929040868599823459808202603196054203038889118747827653234578844785230096932858157459621681351408050277088011808021222366526098961839290667721647009336105548512978984362884698714989556820155190487822393331464130621565528819630919398630566886562103469444262545019223334638899506719492525386478243444431391805226455190513666460164371307785271103751227335340729202172108198036713651183462530350444520323198590940554362076025451812699903758449342290008011825840872938399044073788680786918266295768819693288477605141777005497883879416165588611055729044347789257470059951953157428362569752566303595927556598125912533323679657630509665636829635048805667917239538807625203437817182182754790249946383692822134351654743706342369460039585380211326795558348301789620327177447375055616882804317506165722573594931723031649294187089791704636135897516720216070987608404557316391843253400673380729783335948231132824878761758185028219066506325048051634308292427539825411047743300751615454189632332706358862906272813017873153192185461780026170473470085670442038130221696772040790850953527776196499643423106666285663395961449654438967329461547972127676569919791939356766271316984289593061203550422678043397481623389542905910146216173774063560449298141982636923070050880735413243393203623471060755606922624595300667378332005882819012613008075367800862732091323991415432473235796842735288372022638697430152098328101342225135798183559989935131003203060077179236994891226871673472191904790876746236190830253131067046307220719091697623759516930275328606225223421909178414104273125451924069693116318508533009425752486473975136937257194063341212938718005383299959760925340546301479454979700731130991962400641239170859934197601954965385939809021698877404340421508362973837357070347553421333154968838458514707224575369409133248415569192817432321243272301214066219777755691862819315445494053234024066021780823386475484584238049691749916253225388143544321780231539085860110543257922101315877534687319795205593701169075703175128589068675772627971570174365741331190222461771960681172993212772408608499185201821945028843572884182301459877798881982560778381036210493870504665326800205490922750322970356015329329040174665766295104108022248303907372361274232012738135526770080772295676325378306912325878004714696706376774047072830601062220935767191574663151351275259113236196565634374953479904678847709125145357220531864432049282687303266730356349435510463971185121959263996129815336361134027003175120904397086855206463695184257000650022451482473041140007156509621752482425399479952773988957757467980291430303469920620281719673877161909072765609082983781387126061470461955395290924473337735783614702631778851872243848459332785523668155595753926116119080577613495640983198084966382173827507412117651565947946673158290233624659039111989701173953475593707378364947026402434468284833213356783679287294575209592333010920035278786615125128290698559325817482771885884553473303388421242500568774376587580740530558989159458563615127205291037580970506000487779290732635358543425435314676953080862245790570199320745665932238503540139003249454443162724084843543005560948734803950832897901733059602350090406149464229943244324386519165976430748246610929829959441335265742591034792695364104205869554494065537237847435437113433393123540639140974406816331536043546673403046323692340455679364141079245204040713875089943437640198185028066503424513790577704844897998410678459687602298270535404574476081023713385860049753774283809732959631463756219375841432577764092033364281711577529034353071683635032213825816079398690049555553035132250244573363107665518489930636408498980658968790375510830367920645395894921644237302691634217706276711742610020947034760747210283228143020277403853949419657955557210417357588759585219792065640455029762495963591921567168818487539887263898317665332036550948071450712614254697205151863732637886663375713554597872812728081101212209234788061847619689698901746468970819235749762938144094744688821224629599316504952078173057027233866524120637088737522859001232808563168823523550910161194630078230488326511851551803890134669759173783092181531723429599457491084849680391608770495673802891900098489338642436118413298584112146174104064675985334806065235162315891154273535437533888139935699053483576524846660043300339764688669429449067595568778832133000732333860651952935677212779307478606918315977513924682042000290419499896722606046368841167114057034928802528385506422403946935460136659766004951772230470744631121049395948203329363472400201502764705805318461074527680432262712421939037910635129427664198458629055840015679208098265971540196879506535722170151474431982933837476564454591118609388419818819278369786037105900690782349570800298268256446804420356221070713972276199448908439953151544292890304854215840070110760433893073902655554979352926717302772160930555322954874245497743395926451931309716855154126123902559049464347102295561232018701667224640447969203398233618771273760764938674233160569363797675664015574211918841149380367433984931913705226210226726632119928215301488107780228910634219782725367079135686117087168547930578815719154763708445141040232934384445606219505241006028425767142576999427357529957620377410063716134745229994967927086446345048843221105904953518061487921236285398933328101032203348451806433657266838603283562116479179600084223543957648523894473640438328587243363856325396872326744830337395962298035385048815575880407624657793607971436162310107906455023691424918736284538044731057647395413943403994255232520810945627588826888616948802041422009344599455893049168486044188622787380960872807766604757457245643313766845185100228872288044609410910475054033244113304813576699908006398320107816030886967863209808738307920927715676246517237624507718987609468382094973957638019721349855650136364624400170072698309629637487149977647888770651482826213241102034738431906966387656191029997567424418135076417780348031502720430556755456933680347121096241473921212221780999266788698708217646514373250883129835654451647135248225602998412445961252340225493673775487664001126928798946818594866069350706518541106785173988030928506843293863077714408071353252379625840972912381485731930635366817959324333112709371528708238451176421936356800956435456580315188994834911621821917216403804978341848638288397416432602598270115720507070622025880633506473883143393028894472045842007352848781642192679441032327110130681752190950398074415069280258688891763995329263678226034036511797017503614354449812759858019785670355174841349318689321850259026749016545311763708155259754936271751019479182171480102891684354912598062495214559488775843879918877767991857760931649461212729368700734383761676303410150566357787988408426975495596617083768261588853695877402516116595172357715895781234930460649529869741549478374877021983264110144825472771870862605285899316651535508002210785596084221865697892494994141903138220490965937424706120339905651877594846751855079755414088173523084510802982456732834070604732343698446960558592850995329224572337777614607529917502811460609158291048761492541277590300336290360949487731162459938231208846060774488413046584285006550373583226695181516465603867444334486846611282503169978499138094363883190743156543168818393267032709265912511666603233052673798606607387021852340327585778354097754750591962695836587431229470640873345603010392680003090131658394009160471129952871273940318073855651978860182274464117521595616699061890080059744477670224229901724203100044210983684075518138678430163384706101483311828963747831303124311846053879713517130472880111166036368807760972434025858571769139352011264960762663726564931795501755520461312409950247687382172906386522669395031574594906398059130983665983272784163586015074289872251676298821018507370851202867539696153756210719498138802164060886889514212777410473409919935709934409576311717278942150716669129329793419858465408732308794109439147437708735774029424278516996812594696115098893451613130873760659252280855472972839662260541843387587877178696584391319980494364796045964115861275358266466129147928498387241946757013872684129201549407267610663722720583933091263576056872350838784143092414526813306834231622953130494644683530174603536791651202335902260614328566194498721232804567887547912765782245578576133643510306705914491618907891169973467255853157138340096039475117507968002869127854855165430620683233594757546279093782748136215830833277045294047711123897591228637062334684269472678127795453463842879712248894700891489155815505631772964311700705485217303173549720157166761613852024925863717030696451890669267516222069981923202911854732377034300445137915308720155284199066172573769867963489138934111390863028006808548613901650182897925873877299320964391518971652187364769404693045568733470205096809193648417765601971807687198032346029903283738151285333527828568926782152232467210212432804025872292107364991039916466526401048886066677491613945128672969551043588942319088087739987451323403295392620560302042454730268503817071846786332380098808041521360563131543234214465061083600996682808936955959750278916247140917166311132813934090212734788580075718762326807744912179394303744456352358204541032465534679338176039459296500105967139004657096232500176629664984970745466720427822269840509922103635157398722147027187367542471187455529023797752658155055346261411009796378115582342975767969252520272276313347984051601750755529288737330059534321317489667785569126873070485562950285823226670748626375429875919200160698592523284152266281894750334782963994016748380543874548173408772155901107111096729354460171425141577725653727164977788810784996280864911931511929804328315279976244795546771265908345948891744637725887429502698675758801442105028238066993911469909932108508933291771460440241429624536290875379892771897544076717374996232399702291824908956471678984217397297748085099079185364877039017183398170084018641606836673179589006173693869091780359744920671092609137333858777770906664393157809256439833424719584137740689381990178134892561900060933083095006382234754123751555929284038487110957257906643756785742573250150401344566743576671110883681688699016201577498185621318282039659470617151721900126393884940125166039149462997617258738423593370353234028374441298089556032423904499812567876391591736245691676558369362269942908896348338637123064135057579828421056933459375929162279868334993655294695779865387771396169548303558634547340092919575811485234140264490321298693602227861024907364083343556161659487904733092033600859284288680502843988806633626143207621009883478120803639259167710438639601392530343307478063042801004740875412040605927984606984158036162439982616550381437142251223363931134411698870580892644886825118748589321080538048297208259344656963970832839330137853412822224421669875752897305449466439107163944451814294253303555407189687071441028199857823891602758109711901773352988660245572920372551706249702719125474399734562548102295088227704561903393508947417012460510587274457111632844842365422252255848615596514722687780053362601473296751459980849763568802266558979920623673995398924405769239750673771232882786227374675558064046052691436682654359069574405552284935102553928669027673589487037120649168427730511901532874014166903640955557944671553564789819420190830233373309118451981011078639733896577410176089813205501124877045011482246775419200796544120799372948636507033474564762746447892179851019968209364146736801399806521392293198918715397089846139920456197102517669430962775004562823354227806969164895132687907824407955366332257476512930790201007055080678894728080760264761613340231908698737855195594202861247595555526040061124195765018518880077346393764139914406112411185338259511589745387616976063688314862464212608900990759022496879235768061500376398670264628480415939249762528122548998485716948944625493664882613922314680218800191882198550654823698345029748020160446136367041160181772133034630137541118164716680314516656148226283676860353638666349014948326550185806725083997802394287994193026326785973621806553798620548922046037493727070619364000414127947546021942178636387168488278827508828521487957023848430494911694654613655649941898066182232441848040911505410419367217208464949672234495752272308427991638680336454005306563530206473970404707094910295447497493922332996067710561823328361952323645226314707386225847471122091712479627802298099903212830226995012495344765251568583567939131357348194104570276181346554218865518454999840505277090799106349930342774615469127941526255476635994036732740683887467390053325192011032432090391661749932699226566600337427585153119562931022037108043822129115698814123338425005093780484709338565521985278000293497196849133719773686852841317620956060989164460661134001053335304757212408488297384308300809043624898821332164859095382128873278910511154404841147321257530120541962002413046440830833753155087810856803745437483574608833558687040522457255762912292064498013584492474665485062301353731262256332569493255564694683024304356172921437223200514790069043890143531288031508416949421577892818044574773499927869101386389433503842420333973975788566425462193207388807089394624956979007475378895166674660014640457545943757737614158702505093762954697603794584482310649591150337656586960667581119569192580400456232509151123570940549201069828953814797566839030692292104779676456856395782292281424235219815836461343290701811347276109832992863011621103588982465525932397573858375664634244825518150410362402873677346008814284573138466346711600487667879030791058284466876568946498715910400062066772597419869161918573296022565785089328465472428792705831397377634424043471998454334811637320158931490614500918878197903784761572962792076061229742841888556850107933495139026935743646715386745024595424188612523076969648568211736668749299932153502904526686989841031707347652369359126518627591912553841712079966460821814628008476439474684031163206422841153167964685695285188276394854768510127696509753524580637834747679010479130093923247746961303052677085151555150610712798233328757024816804378101633381798255271723322026953963262342072334243959745855319485079866243928677394074182794368297049865760638976107134541769312518226614402053567284963864156837332931180189887896869564340190184353071862028724499715270923185376595998404985227685625515291809037881493248005504219402555145934331509551779436867168388191790310720866831964186696857692598821121539224002832583734946013810239202519583913457922789767238448268804959441569235905808774637144940108802355698958178686934010462997294361457661403322990689256622117075804283431520448943171596865480525778251172177347728375179017349544216134708921771263019871239110349457802008794364076617463174824490920171994908722284786800002619925554123213245050715135910270435195536406332752654138281870417461813508557002949295151210541153150795402762047225333576349603968830996352376558265214576707721461673016813134793198826926954165995120659550511049493674506667220322351421651910676638558470603631240796966351007487268049669280009481714718633061438059652741693942019193150343800010790729869413675538097620774173907163313894533293143732763661628152609698454149313789397560236349872198404095370782653278553948028441224768120653794789953862291516030192901170963313209431512144269562960470478541821445680850343825825949507609931112278620696674203521959668749484008321137688933168845419962454628898900596672579031445593131952235567770058027940659993107242004946625113491979950320697184537116026277693663264605051648850734368062541108549196058538863832534047033397389394712159331767081893160759194338488044036410169082513250344349699160865316147345275872355115282150508649951949505565800988922290657402463432741411414874365148564189972481171994644358816837103042140291115866287562519107031904465389522014997825115200850568852960277460598632923578139146060865047758299732782415141627407935539161209312755487563512579617409968145094697215920634736544246795100087344609950391388579370668167790065458454704813648561180850662829201042517314147292776867531694414838224460105353191097149342795131106341329429052504309892713040579785174067062866377957589894501180989541928548962059477262887191891129798699558205997157891501787363357953012721060972876501022989597820738909345440591785830079089476495305099367882608756927774007168250250144701205612402247380301807107145267965475617140103863328973886572560713259498779650008275627536662371576790269442146494238546049226888824447599061995828438898599458715863968863579988249381772580401352639402036915436529180852917256043921164630773731502820074458655586964740027221195463954571263439599804207859520473750851204413601735987740890032940379906546453964450883427559219037194701911739444150481586475998604412487916120388651748985895800809158931513951660723746774081277093980643507775026943356906083511351958788556971461018844692038597533469213052569943912596564807416098771555529056377973871103597151665502622490793814740597725064267813913674078888052139334675180269669101306221679939959014054637351603620495454975897083666640927959255413658372285893504779401525951207885164801113144383097641805562206674211472562001949971671756390791771437949209017778582664199615445468551914343913374106527091918949470566845375302926288595619626160972828589188668582144643505573539205530481231441617406036897308104685263957364911719999273625352225631244364836988430770774126275426750252636587897873886857130083921292206588706337879447170380268573295586289575752653393296132647171916821554117358599478303615120890850494047709839552763047307573697671297717511736739314316901548402391279705487691692124005565162942308819718478284544967156270394337319451006151839421048946121163652049006482675251517310103972039763106387370188787295128501130471765740748932811653642570147716057899859480538107018843403318436086668612947715108452196320090379524694715162860109623398004461068013730155490156480227001014237219819095928946532621335829220808192072811567153790610088686861378988878646528143118803660137410243347870550982628877618010771743913068759848901536679024427204133793965296087910116658255871464504470352474317411475873467794548454725921807085977617786205765189454438466920035887664970934441217843168495713482921346591063028512011547825247028325667995431668468168865357664320204030401340764324422358846001967901733406144616429415496295773895826796789534785173457816352789758182045960876576738327157414224727582822546116718458391609327438852948710072086678391760078176178630526543276953032283620408466908173422936977839948439699663584427159385312027834989901279349760800527918124326691142743422561463945656262111485961552674732327960610899793128278475307003725593238068375474317781339254294137288114151155975838876377686851847759313134572645815181809049639003823745582524247205387932983834671078190785125826545357829755730413157007814328705259419183258557935027567523996466732683549704712321307034505002558003778197588760788669191826996158691409066180520827973078321693567386468711301571311888115965542281814628688258693440754915599965088388295998829529764256540575388254377438862998236285641168994975069901752445578263150222525323543165567760019110463579459295290251990415993225927909169414714680636245987037742960898633057317599504743447516987954042400897936015938479650908675880608331496461820456052420041022720125032709474892224638699215056781448685300911661827215087081581813359907164237128310024151198087695933238874639254537598466086082391734937184409329828171043089341808031433585186739681616075166506109712331871398348076529469808852646565314274159080783423378054691659607069459370788519241520310263453957892269012592276057975544490159868501353164145618857203001185873627159605269103687632610710068156455841819408604708620622400460318139413167227618062183484319150254312854889506024221296976369127165600090362053602448849219404396198765330477900478004452957332123314101083565985328746102473873569909788282354090324393953178500348187449606462707739998913484122959408941340862173216078008202496048899705846654808532501489137263154032884230656322688332640462269199165677556625342785616817282239584749377655739780294939329218801333191363066376393127221031430531704144893467969854588360882751387987280474682289724213128364495174107025609952550046206945934708514079865435626731040170325324305518303403611537272050204100243102216808836254762889058054449013465141187924040867799859199334675795454499000847604932642883621042208595835477473909202748717268192721503454038819236261929139076894568777133170582100699877366391149823857621048488431361460878476665721169714904245221912652401272443979726883847334247300349596261715824441487748185092005353193798872322325144224069744423585930519836787303840625343164636250667827160052620206177687899062274001164216958829935105377227988707984685502407507078833340583443697721353027502474342361972126173688009255909863082851062663339863209509238127970363424915865607832226732934854040910976902229245530837806491412752579737240181900008312496018469620760310291792349385230387687555544064668313757390259907553844661725444952444836038822243655747889091715524102910238409669532464857538692504759785674167110064492167486106795010922947528809719102434340327354716529668356777392128136652462901001040645445388105291043283674009889457665106849999179698212614830723116789514026631220640614163426790313615690726831696724075449333997922846265010047409435060944172699877040292314503199592336690186237301194256099675060423682419847092038510779897806321992621620277619823870319969099596546890271436739931313957998147399747908234191773505934449857291330157012088382966741586186889940115839874090038211876610467298504865340228120827995273303576218729513500654152496953073501773049617043540876085235806638060868681792634521918079408593508412557090761771438091298631605756949232572112890597179687734535403322517455888105846798966601098557046839023652867133740877770036133408058506013368191675739863104460921534155699594379076682999107850074487080436728173164320082839259371113941067838378631577192835736530834436329342800225535555542288705389043518129279736940262299553610777434320750108683386841197972915243317658881128096840256364229960008222494337920165673390609021678809138960547305856899804541104249790878154783164908827470648965046759188819712687538855607571823406890876444869001575562796531754501748993584910959226323394730035482208005091787804268551779270736796063885973464361471683905807017551113133074181963278648532004842884055623301438490083211168652361229001973490436972735510897970227644718401970251770740218790704853924365049553632422805076629214799306993978307628399905917945685235901747815744086624548460432167999711526188302028901290155533945746183143288294282471940946938730346410974881794461607561582825192187287419342709651127759691560481053018424754390703127751973838889174158012784246257379202083491467119651231616200459039418913126581762826212305681749603703671732915450877437324430500755067359474957052037386409042353559380715854279064469116267399838018592447266974120829874123574517544329362411127860906017139721080742250592296658133543742122771871858493589903765554455107025110347853968899369408316638402109244116520391142994898304863873748690423524394561889087142912162836813884827801843894144691731355258327531859844747807065046962586791039045052343029075468520932346934398006200803633355360488480229037989680036480396692835856930274705644859737174791376372858293789968340533933699521819537109846287666215365280627932418360416990017221564383032142467190599075284055012066701596783656599415772507786969395953032813292427055939380689357276768068961475495213036588805272604823350107902191929074085577157493775702860573630291715009552902887010638739048594094380773261453864901875129061121086243750007757195557216040708218277110872976851255531451722670833817117190593032601592546593099661488361956550850060425429321935423367113131873413303007758838476610446242800644609490848444336013627669009575123374390259813900982504451644175607934979915020840033412346551151867283303678826760863803579388969286925234065133501322268388829872906262729303590576886971512302487708513291535926873893844826646415541433575544400899658660435478321715764515132892506664316833470589981185667566559501645171999129863385665539965526379475160098409077155971072117828980055312188382030835809495982912247875360379892713319848752851628688433416275379913279592359313465010860169250813978454102128054008912952782081576406953983363965334579983856607953710406924838359898790688269085976333639660152399299367059376440228183801225035483891038025301268977060128141257672949475353601948321434148841679941452740228128705116695123492585550725395004652995265255374419834498170493004763895086016720152187421507050061198024772351299675102573334508485331528827796535611598809270981353078184548993214951764240442186945156039674944855826927690863190956421997291403173256077796779961686058472479148864984837889661276308232261692112880208674168450813125464520640254442209810729751056185147796971395617921589431429226125311467507723416009432140736824438209462362685805337985295641091033632600072349212267447599501275623826392389429165849763297554026484762087934247402316232452021254301073813248922382004242015643471582953016463075414449900570986876503833799835478764259549020114295125172429785314162886248379218298466003637591818497285555483042676792020479869162432924139210792110154790609536201261170843111337982337116621825218112006365004260181020583647948292843630497518344849590579026660262258798500785906586794162760845537993515235400072196552752863103802437249370835372194629908840482759415657285221674948705690772842096940488971094603369197554689506339446256213173780273029825385900173463216350012048101252518328551017253338576548610947680006175679899037201112694507410466482665913385186896155440912063853034784643903603983609509836901420124516806371485916652941237829804677759082514576556620773213484017364714518852660330410282550671728703180020070056413238815354376012008574305994873144027000739939453238704588390750433646824754996041429382240706708908137543544435280836964162361910720420248842837763912732039186770149138843454832750338300317723323642108588924817510098429474784058940668684849708234823922935287079075367129758514439323313150806288679482070641921438952887230184817798883904223445907094259624747347614457235407617635135179819540506102402888051417315474167653119871931488774810723696410971218187808984644987201888432738223541910957320068999024350254041324150455965379730157699690848740636047212289370941047587475544128402158461822401201318421615045207784775344976860855134703447112926365451610734359945656132075669781840317640749023760773459083630163024979221715324248051431680696119585250830767986177274527941506710995009608650654689455897848734300194161190812248295268113992381080497044005013673581227397337887161275816499940846340674249623720499668460455589090916441184296468062775539148988325757988086306697699458048670970702940021805003634942147578757735406371122276706766867109610171508513052030527713635946023679494286819581805504904834511928134156422778994389509868887048679081195921563302387705523758646641301371912936207668763812289004429834902988385769553409038358869400896183850888274209155003487386290137130919220849562014685929361683429200558375479296604725397777824389550082695981788563572247378745844601811071719697565511127519382396091044606496998826157757132171940058472559252897147591570556720135267792260293805608473071908916760474275992444957190821476410846082650653957787865893891549354473930577491868185798804838679606999344183190004992789230158964920251852542135224672810807235760023700952474951137987037981274163433823941938889650748070861909174981730132811041845588508060520243580233615374933576848955325709409665371013588637940903905317453576711843071282238114112066877914313424744716369555322670976423796922402466260451275674334520250381315746844145786596116352593161330401020356731439422572525135555016137736576941702553375885473504442848658300776029408717348071497788533731661902998886927999500573091078092148301197755235671836166063966148041798883941429499247121748773224657216427072299978360436062064418995205465665488171134922979654944695047673691597360955569567485967721089806778294517388028098728232958344913163155610637427208267688362623043377051295570535132606604236494197547613230660624620047022522937400913191273857163970007963659087698715219069307838060105661715038371956300590893196712510013943221426481900588053572405979692661560103363557673832085773779132973645508364844270283192178688150882200033605599762299805235064468778335539600470738234343526734735100920202676491530342737523963594252082096547878924534492682609008256813274031504930875351036206589255381811013468368918151651821891493666389938337443798474131412022982637318651061619786339166166171083542274343501092258621733586970119894765027261355180515563473650542635994378899964432691574261405680482282357437071495955383347060364215482287873986036207226503701847437308641885690410321685099860604516413192599731491048151200490169024345556731811442759106806046856786371546120929488379671480851569377218932703384601861653770631757901808823188603595004798849248509324291222020784533938125751797946703714112716100051951121444032985170516792808479722620979375969026723480654094162155937786587247399372007658573668263944228459767006652303375446568583921718042875461538630965169022159397009687030333120897968257756920491854688369886009315439444926627642601880004456678827104819459643360239341394962787382677655417598706344478939770218304066434212541199567063559305059162618195113902877951640968531397296468552497205281520380496592040704923505306372429085428899101166322312026686895864892540056494057285504262979781228456497148301572936152190399070020229830168188106043809127258547693843423860029746096367727607585180377220199348076709864806885541135093429787317235390529966465975136143726197558732756649829464649028013695618561574718364595333191846850302310751118880153787303690118596250111729380568364692623048108671835743055135397309398571463590530290415387691805777836958333359248643605189575102963260236899154960637321870233741857740274199741605133560954200194846365587693818807137105151815346562606348741648490424738037688349518001413993312673974500036710377126585296884866965320137638529263814677527041639760490323005507565695460983444145553081420351783595061943817716075880211732356593201801758744775225399552403990212643312006704507186747003719195621688841139456630433052491232469203765682225280987058149308433708234972671902761569092655221371497462734342781693699451385927281674225573890715566928076687249583062674037916295402023027506771382106045142841956117358358056942972156442217145783215900513598450690252830450313978621717273851739411259257727648922517234391532759374677260709175285312562041925442718362364133544110275909476653990342122533498910236070660054628006745503445831697575522508861876598773371625909072161247602370950072322746099020088318858366551444241515446663267472438003590929620828132348208778537074676607696626360853582384638646491213382806983797699200366232080821556511020407570633065504443352564648234985966617518734975636476069669304704751886993704855521396249414702281811655029369423373320233430374663196365710395532291434828558009586142201395010585438533290410920436548928377764668699332331696619486618614094839414857531153811571121669905954197627484824727166253678555709285134372480745461957025008654221364873220102854167275049565131981534116648562239560591093700913453028352453197848437283350905112286324434215396254225043164843639908810670841847431631759543643588808418671891573388802053642805892162022939075223198337583720271765058097445287954464178538922429193097713361208056528105989093298280967282544305246961083771644411287003327775163697487347953314433926275259735547002935216493191386677419511236366144704651396745087127444228749905059482693919124699404099672021987875283033376267990784004465905111636396339201516283316972613874718529596350015509640408069290061890166190069415237680667932790248574146049818019007250200222213517012572903495471304687524560050424244898401923749848963033034179867781547152116693825423461384395413830229087316015573392834394212602585316776877794074354911445915103478127648131584982220729107512474705744187441430760532540852814227070445432269182522880920911200594687273674846441464402885253715873088951529487846836259995810160418087555525262155600059981968237436504960262851660348386749437157854287284828636255094241244714896149730856092101708150791872508525481671228038417312672341246620231111319708149382807387310693581893083861163156965175339879862077268450587333971946871559092503930344639460577228631871357828279606917143010053901632963372501730567879935019591370538423939092228747170307694012124045234137653273528573713151002840389333998860698189544595523336742800984743109098621117631000220865535879895957712461872272425835790870243696031191883624366257576200434259504735162048356809669699895407983526779104214604785495880583839264505494063446219729959530278791518997986553962091485953679956061576511480999620586029157447013438923265333869665351825350375471027379656909374413413680787924658443548102114494279693154838889960384578339478653340713205609786589213355561204544188054670387452404547525675078141178489656458729334394745330952221767994807120776270696635972616389992435804673113229460094557561674798955244324502217272800120066880259910605153322776663370821968306725255809981375968503389596749897427845812750295512201903179947974622155364895345261912702635782418011731660902851876453775872713169647419177237491288462979229614944692229226003832341782816460621980618002572297114212104077138384563947585830474452484460540235357249829301757911914381886319651639743760303719013506468569088658387961660699456612583580455751001140827665263592435556117195828441527188423339456274453117338248313328639081092822796493837662851914456986228046600538801591458671113049260097141577437473030480970003610581297966178484093226401487730383956375873561483602792573539145612604327909627819014924541063258236056548440954859887906707319623729454021529815401231889551446774230244505568268739565073255462336255952166551404221025727612615493289436933860045232078336067793135782566292732114354365404119165566053376460709120191494781895920456628246645911307130965320359437566773501168303937142710849949662498428285357625176139760380996774959798946481577453242481439529080432477826669155368731651470188250259813924164330668732789818556989235663472114086592958646219398217655113587095792385270001077872987654218610395247672835561290831746316277161813080709793480250997000494055768184054991035386806865116821929041446707341593259584003169233143100071129696294148251065997528295166028077647171544620928482247681427013156037905744761233786543192987157235191076970192619143670854330340220012465716020069609456196728873665675602845324866469411801944218515129345452059833486265629348645760896563999872514899697186329701121841856086511430213466085587171811976669596619620801097387915690222694567925372896993309262963419160896611741867918430444462965117281846640758052155004659866845094646616487842910075745018634063744694385743385357485620114600244038758799738210888486147369504693032871231420457689482286297828342216427653209736617069507281345343560834563928206309682272065663347676278675044319531677410724719570735319193484277708122166464592468635740866196177107040532554395532983678035388237293909834405513180697912857459371463011105365159252511849044875650734003681534103567379574559781813364154242739062732015103100718087369868670239547872884036476592430011760858289709057958515216332062053167822081399478965398267473089224149829967424830052469559302849681125132009654308449481170678955980765429531301883555853241166716092062044540190375540384814169203756367470829159352652678207822658675839601265750550486233508779964766834081405967424771574109426435584117340326314771202211190385850823396391606149595089069615401409084370556756187371803000748210543371994834955721535053713962717182092740844735082560361496073567167339641191038261264316824413523460099910100353245473782753457070431137949114264296876637773883838498236618569897071815449364127025268550236398849949132106020442030447336030133212842829124361006447189161946853145077724888241933997451609888045592031736859818871010632223934574333225073788990787681259392083961173817658947160203352341132274862224677381911685902877708062175875904979144076490335484200726386490447386324790710556417372503257940287305952275213935152827034264130093605144659494056235663917927710441588882083655434426818613339253487631770906831109357205325018902703813789255476788810644936240736389505232739020940653607864934702515909527278720160204416603477549922322636859019443666491374612667000714885174029365818445172507557224334949033600041296270236801162575576657501404683038121319636472382054183008098597193085165902723544607934208714244396971819502339852423632633243519899302057890672254141226465754531185250644361367705940726656532151560424602793311058426509636301103182244984092014856090533858321826037723672632191004252508562828699681642156255947922761735761461917499481014460551659928953504557063668139825784342291304852628230180498022414509403248479234634660428400257151584306020304935697339563779650682967920912241732829072320701665906206567696243027079437608737625909350106867889979586614956759420583300381328323546761202753630137205415050024299332814395514429068174531513664951950076685056182451247846042470321519833383030818623870401984965510405481298701287730772825357363866945193202900968864617336691730126278628193196371379191252519688735409666246069496867864849443626727267342991151511920044886792186538370043553622965303423900164704352711126280948079682258736737589022519111061412581828498206912682470694486104179321607087883222947829982001540943014623142414515877070561856939617186664897165595103726101298449797544981550553442208456139190559129804353820403458410580282830365114063098747426497696178203733585516019800508738942176122676792966490967739518667814400785111604092371330172864985392117364137705621889153422106109021030826447466685819320978920195218314164387952512400171139719314551861884613733094435335950358894561282457703805030723514578208840948358860564799747967375941709524981483297722146670793352747288659116129087946881691782591555447985776359554996459708150918136980784656732340304185005012763969343618042825394246459346595235150368480109854716064156838891853034726586866774276461906869987213624839386334165377925650589256409377377893143234795027494080549119329624373681408103558432299046371316036920398177490807656450631573796184917986206000064545050916830299405893530788557584786539216042489493362718785003642682871594904138613106673998313607413105068868179850884038081798440489329501631127242392856771197195739262276837483838238551817276210163272876371758734605213982626027287977108335081142097103428352038058399180698289558190180028430820783351083171082347588581467715146474690444014890220289427923989197180962730770029156056593912330193507700085579206751279413719620012073495428205721975802494838574936513949167777170063784234709001287407499584413901786721920669210897653825862048667918598713413995101667393866328148698115599669972410574890648157335923305372216127968008817089793705320141961513563598582253417983618447410421707878149166473068986065126447536266256759762466272503427696303835636526976772880472244311531205484201901761564164882620410888860534674597508164820228095331469432148599009345883566144525165417168259676851602297099802168279594277724270014594630375612383777398535694603325107217398700864986161921775346275829616445224268545544478583593341438722052097249197545783607718113241922560494243503628352222156567099082369450106006460987875400916140060170355599475294719323752064801556921745692218169302186165015188844456985136253712984166121095658090106877945855010264429714858787284573822962717252169103072139346276404542192123684872775539912446411546056195806004574553829480436270182145790007608087840606205070132276928088749103207517276070199948261957736330126570294091277069412390267790315842181720876960660671933493020366667522652673515483249303905509962166349895791063068812326889407164914041864113080290422119743670775038150733693626272958067446413532384256927846858543735118526721597141900804715450515760522732886914868959598286717123950088754921628096555031508327050978959169428700926373455398797664790537346381029600264577921777068434676685065215863235160770693972711736343223804743037974566231036756602618715710561116027950145307319579079463982440986079679645897928876997088614424214659951993527423608734723965123296440560134137228305023226055998657282570483535337416776203747489283963100337597820871098014239306391082281237425510321398975838232029367656956874366470479459028587667471646453695824244281718123090375094233793582569657460791760323043630773166174165705618070608667486459857935678706672611606273025302090970510111484573270924067751737962066568322076833287562291509353194927800300682018666963910254032068581770250827075767158554794099995563319952045312027242949439451798317877475617701146197944604786959931085939802090545431713702674141255848816278491152118512847181576480390763771594413463473672061406018806279954712719133290536744249752706211605362903039972333564085642938446533090271431482171067864141626464901445535830105238520735876529967340322675168613202880711894791186235594216256093992191592099113263499741187310664285792138431984442490482705381896758997564868344861135881798876232158068526235458286271567763804154402461077051709929756718841737336233478705061356446662290285763746151807608426939177234757628627187510739717531328782208607751406966855200109669640724411296800964982416471298513736682560150442289932490253317566104912001894551889853259369830696086621322029000925954237467723436862605337969020081814729262419691616766115565967761073207143954646404275716509718352124428981167355801835094493863660683341096195731366938467269613466482447997310758716453787631493690206700496956597643165313501947394087079370353006627012100612147793457855456849551615391612491523828509375100794435866837460584134756926215760816888912051376267897230496501999274556349488774586553004330716101179559282507185585329123491207616634685152764207474938989519121631221981471775275569995630572743912413220893666587163909520498692234658212654312095901580100825536924045319627703123834394559295293871441913648643431521394496386089742088479567936171112982069788607862949073515685736928623969401035892920418767527459758137788330505928911047872854518250467501917268303162008830257344436699953080986267372207686418998158992193956700046349994038324978206438222557359351970700345025783653496171649757945113686283845206697006405122211232023892442857760406172137130301841560176578319746878889751164190788479303641238745907742211261782362842380682147831118306000336861151637305634559492652948879324861314290184709742479055245653400611047075068294036407291330109104729597056931814575740201661263688898930428653218667685354993857141654093446738470321843900056234578481156330738748080967481252803261940748842469661086252634986134522771317516256068931176117828229477543020438755103556495455574906219207397776983380481409529478454490966785343803063331107341748095295783681801676387833596288352015369635437588664444238553626384938210252709887875395845004912351377997555115699302005645814863086982242413133423224891453161103188186138403713118952431642672955280669735554530157939682246276639870598752773860333740667933303444432259130033791792274799824242807026522997559698291106801857142068989806022766428798844177007006242173607407324544818498091110638769906400134007821456777481424279949289183149086482157576685285731611617212948713415345767461157449931089211970848248313419647650992998964103973814124001294447765165002731355658495837505037139673688331885129734341160184820629895733548948429851956430813910021940913829110568593691683863098335479046182010559210764121506397353533844485952980332930173353475703690480762186908897094239664008909242595931655373365300926221356326522393697684066680776862377671686905606197499959927880399070528373540893313896312829600792351108303264484067663401716755209289574482782829374681110894189227599927396671275326833481128931837432375016969735183290040541588924019348949390639544607450436577457215918510735843469877602474633162626132899040452675775302881496049595614967412254381882323550924714976314621120330831393588356828501933208279270062194427889658813533201449628867232222164492370062770738408672412863418424282735657811239469827512039906775409854684201147089949924876777045266645657797554770313154362481037473427621583119779179555459968426344725621661777751382005132214531992140149630850682172559767944359390098793719426895660220829296751112262125489526819084005764103521140087449332583373195376209343200589427351444257392877603026822324521083361588820656954610922847529965966918213112854044655533411651786264629670170541613184547333497834058241929748632603381155760993855979669722726362242333544822268383669804644810962409894282835002518503634771707605744213855912803587736747315705721985933226865361122510439653770236192941845954386087480136381512042189738309898498773042915517277889046724628036335018011086824255920725098831886417592935555747550660221009923136556945648307635160086454480760836852936135637795306922623531753105907313365007268807139841418761557861608545691823974791865931680535779499203149866729703964316487296502668822588112447529313892797015110303095015015294302635149447048350036392676944901187452502154255942632219595323362767345252109625672613227360273497682755153366328573090620181724829669203458443004605365011472168403425721846529770914182641246314584703618548745816264429933558127840579591402418383265820497761893030670214191752950310263794811254156595457553837355523055595749633177024483492082634729018813892326106731109558247050148434352973657961606090737555490729569335076075617798567877559645861962686468484315171908588105522844297552976025260026973234082516200696491140234613282454647893445577273128742469281182414872702627930239868093612300295195930182769955236210518786118415047360486228258660557134601155114719819408454473165811887136641694702918668123096465325706738886249244885060604184144909982038429598563624196512137040381824399213322607958915081132458845193033457757662704253171968448273174001430311364666576110112687411701210109587084154726137353892307985905809484208070771963640859820020311301555196633338053203704871600591903517544804329858933117558100938433283677788390393359977722310854394459956532767482510245029195890491068390305599855257587625581628050335589298909738625587084576246157031619464309731433181018641586658141698649760041620483698650119750623646642086000423606699145049730973865772047902085369045280153162988256147528336186801404762292174816617558079785714502263642963254470187183842405872554023977128877687785975798651640770908585165376176996095787194147322018945526921715296673199247163443315692100889669457524703165561167515804615151410230628580853273539000958114548865666493117316605227852206250141680933475808576598137819114526219929553367408987231931661534945424142037379868508915331554860210398363194918951764249756003046462901818501966427952697391153560816077827865486651458451788538834147353711272745761545793119612438039814543051361908082424653702412340057646024306747625560987375241259937833857505682947776591718305482447750386336634175726128419060528631960101022051713825994043810460715020708895610510797091830345039019351784042514227772903724917568696016275781260565157339182633985196970617005844550098046274502616542439566321823034499520744541160650932985080750497123575285855721531246706932626471959935367532941951276688742178913584142771764080118915686012864584662047845122644967083357715076407471688218577593078969870950298239325776352065098425284768527122409634729686299015604437937545740986930851303332837316304712773964762341106315257025097084414376071070915139476165464093304648699957218437735071355366297811841792978249845237192603616820890971763640391093822713039507619881639266298770592231383755405155024551263267673345667592126819845736130248932063039053572928406540405067701141536236417089069987000376034982422126173436857791971268654642366269648756526353584646480605500363806709657953294993344042167120936452166194870930724249895421712662270474763221306698032301437091750688503470417421865982171695644822383542025927360203186770388678192131192241916952267741584559712525548684480259441109419889511010273455735307234327179973465098342841355404829630215183997340492355106917086241834987669809088744106632080088089386137948273572399201465045117743255348431811451412248103548858871964032627737347030457696588017816033083190642208668913320134185629614123375405282446157646821550437782667063094126506826463775611595328502784391732765804406126854487124242286323726189414665042126099384523264192072140992409399182098499545186150193545919182166104709988249138358313962341418573712291537955712685495267175971518375013409154423155080526802123932996965977910085442926545393007681345353128610511192397619990474391629794361231296357953851599624475419595702488768543780565515622859007565323618284194825290429486215998365900730299662744308750508197073175785550027218350769490438539296486294913349301539735236298371766079395330421544157760937885653420963357340028935187334133919582357884063927819170808901339157271869603369020759266807652982656590167755693915972133135667339190504818068676822319432496711866278739424362698811851233309103094125547253465968508515654837822699325679444424381320929098130999293621860351983011125052761164643407235780726366277558190470679787613893139711436491239171611946756068532917003009402354767442506629218724674858236845595199059050908815509293833021315727770519230591407499584686776821041585537256014325227237725784857393294152115135213317248421475273040995446644377896158582442291177070515271669249168522919744754701045408638650720651083268444440334841789261056999261286157579213276604562863297907046928508124894677670162749929805083412504687018115985573800527652073672831499949812789892445785788716577794422856335353746037980055724948580321928829687249478451685805937268191487327099251935075569363211262202288971947433763447628571557653049996063076876603528323213277534225219328276066520928643564254709575422425170269230193257011686855106835949136042095393467764868474268218192530537250821410214586993814772873832330487720300632240831958510583528535730121503291899729263338296143186417925238423338466461431057753117448504959035003338628818416726027013485051984504294371062204032302845216623235257743862809522883323802793159202756104740559880268536213977845664058413871677768821064510236076977261529967018630034354731666269669111653618620994078790929496182777407006957491912578931072067938130066259344140345672804256081106644011603097285115118900768943492906933885632431642830780986507932399698977115149175612741039605030578392734249014866801602029663348845273719834403881070774397961213805298117166100627688730976240494363150471920450188413194343513432598940737631749930606195848958701720584682607009612559466656762914641281873297100829188185714700055759707859170998889027146812516510338661401615478022265251470916040565132736061982488235160312635220547669151253297257487442706781260468932841768556237408432233105446388279137618772894943376025339312231850298030276312296051768631206981268230868346491925190681540586751883644007020017085251123365727692528465041911902538886600549451387829112497455757663517635206964558137854005506807212756173107515486781068278925516457966753430245155478387896759205572133514287046992469199286414205205188910289356733684621103471520972295061791333594388806823450113657836745331612444859614113422659579959324872042622692187237924454572549688827648057763166581940154927426815008548736497488957778112463719061545773268913741059735456779093304192189156402222296286964527906980586310063074623909184966024635029541469798850911424686100285783625589674412493567609348757117691354155479665157428489048054502258814245602215188654515287358350731107234082675732284369698951186136271190815253152410070053307348952817241545432038492010382786814829380302566153565311154450069754528993341771595062957187149460648855930920399191280291129792497278882662584094412186749012793731049334156556541128169169651719340980476240963050415106396501415354555139845608192591596575964393973964474769328735290057564332432969971369624137740858118205263638834770966041608243840817537624336592400234839491851741020008595558109072220498849052434377201090641223625066116054746215745463077556587405891042308674448342788669934501749711613563154908083838194464081738190809468249902283802120543374648203495044526830329103380108616596461373368521039319657480103562820053219821396704900123258850092643495936621652933509138926793750496665108484307428269718204629032641094429728017323939587107677998673583136677584118568623151521747804907869406344895457135817005069523095233381978832101437194969582277446875718719290529915517521725841118869173133598385041299897655896884882846211283012039113989668484924266628801612575898668032890905912706648350005783212182503461337753050647613543183886404481315918309857510337876494072498258094383727376960921614997891164990605403301335424462758744068586858451191083627669788480996381631627880851403596045583115335114481716534026211133356346192259146385940113593815353106548987720883630602290934559528465541230309146748641379960983498898534588428398857963564523461617947550538673279484191898556509547114611878573483532011642894317061401584170848102521885236854695149123535755115153980350624325702746633904143646721563457042284666555101205882252167942725992729996454574791416934213691606095949176257504347334409014908242309470532492425548628936646642090110800329686115994644710949737385838139959713002330853914683138466202533461434162230526395930679980583705353230895529818271928865907864233672754060176387739639115584850826535027598844477481798113963984787286919281242699395062992741797940515955368415245906183411103350183250994742563225862480402604737376478026216438497858762934018652470515315320925432568592530022242348861448959415098640587279970452616308118867649577307953746975290307674409629991952428996039111370962767046155131556148997641186422278221564261744424011807497662719339417704816992134245907610370897325361154420116794520031509510184674434447706791866673191684906323133929329336755121025643425524811440952511672706990458811778522758056393982321390152575294129348645867271434409248887479450855730181213474578803083620656481041396092357538635071360881609403792171634233727826258998225627626898539373810436370889035500092272620531341078655885208646639624500408829906034696612431756192481484875979257800555075851496684583050844236515186079895315110564149748414298820085515777073892951499017233433680498771336763045296377608815383903075061437585602010886873599831207708814041581479748989997279797304465325045367333380027900628144931821283882638216925393894780265888337479902029284436939111690122195242872589790761594990911955169506382060902499371233904001430729862885748621647921793916957789620955597144121688123742626436979471652586171635969255436449051420580386767159722926165923615897520092183553173448013631595771698916846033939620224492874897170764742688811132132773822873630695357311794827442423821256626826212062043264507800652415863984096510641254235387201681978482002684481989589429512298249553740371174892704593763934365709978115241337439339506375829834795331432617038923641658610521265610567007791370409877542429894590647092583933481988196371013845383459642956944756926481748288556443987651935772505570634188066315813532490797418966490968382289124867907201460851819327599040034182458655692882113759883140229192622188213462321872911702011815089502737944991882343946587494015379760240120643374667390460274248174087948168507389808058172392408058265255273656227590975171365408503853237264484262870905978571198063861704906280941364352382075162628404314052887829761638909793975681593000937407656204114488112022494046097771961220847210236728327373755503412430292897944943089321725598450425719713407986889967555256624204200160939157797581542728212374840748403625506543463157989915074767257290819925694562617336079728497880190367624012498725827941484009046876395081199971887247309816294581397948038002948525377055877917683116132541619381839751627834962261740520161011548018728940925155277786270627725137355315458002895757948963895473861746136396322208196267826129826028737697405276290861160291272096823480136285583638797600748064876821330294177744128402411171257429832519162814023554194451899403170248903781876841550438713538645606385850510017554545504354543156596293835206887116778050215832288994730531879707306305067307299009199439664035865611179232495781957694101045598910245164355861430177029354009194169782102837687999370474581894415168207426982581781681602236779547379348109517896557442227434785696834454815637310948222745480971822029187538499985415929148926256636598311087078001824685215773659110690993750262950131293129356826955400073391010099362398261791301445532006843378327091288511077832460503416306041360479397396438217107646245840134983838553893448495043587907719799683846729637329710370082546654273101580114258176107607171393748113628927995969597065675541249873240823753139038856339533475301892428147956347064310051699163756201637603913695623745800922211909360400924431778865650648455503382032212738059294070111043403425781715183128358525743996404489449323947900008714714398373821315302983108063879753047998653036224543949477107690094121632732660872835386003903819808090750769622060520499199397531522192543924414234643978857036487112995242684237260869176310139570297471400164546712968867338845239571258109355103195870168114740695882057438204797689786394491976885769605113330666072430815993631439443031882492450508546712557316905107704379287205292041137872207113968869638357206781717974770192705909528073891974672220076085526330621675071491162928511132084868284944657752879248100255507550250953466257686727569434592095771620035997410024975964503867982684601548256572379029504127989502894518265313591972545921261378884518020450941142928721854258943249601166854217724597608166803079614426392773516242342926197548494824214335083176119768420059282832864544958798816445561455798896507143552642766107272469490501867115360724985948045383871132464792993845652967761006414145513791517153484267702948083064692705946997352378278652148017553314432570689819344619452357460505640195061185295490962319113721003962893645005921193075998768545283529430635809435882472279545476153602397407582762695229146578287177462279899033895813938088688326003452556229618649956762196349677142653021196272413268335587735440950774917282298733126768787408451366467087212993279349549550897532974272864312956266510273421550047131646037199933742133620115811493815243752319894265875018916486846555241961716509037006255783821630413575782117293657872991644979415960723969746855193152519311488322431930952308157912496136232016871407977821327484395487758483277347779394729911343177250602670597573534358669889546288793319035457143776116344381695120855720782763808848440937726130643897671348556904105261273597889497603432880298572794585148719955807326526831558430543231663897403866687365682061299400845048226346405409425553057365747046551900263493941831181762363174473966462881810848292607312907446451703727125570538164132026265359708231056683738054464313054034813627511127362311893562021353671498779045381207417375232380408951469265334896150136742566236371225048253175683595116933125534871688377410466583084656825489790509563802132444793569363236787855047314846048304240790481585189862268672127771391357371736415553669796071569245777445872719161751425786149000946194628914342887072315966846251021733488015138146280200294371011187284211305309400597359739236635675873228408531265044430336377448549238175213213142154136331925978023563519097398005633730943001998959333568801243295703789176686976237980737189625207896610920103861866810739910458035880308608424184403278851726020863569226988981324814297314029328790764188984475987701518676942986909267459804552337137944507131758968102411803500408953940703374921282809060283711549971762918144542094800257356903535094373486059034700192639576186694951061901507831164074788320211081801926593129866853677283740873113266964367505644966819351017910298594920928199337645601413020364986881946283857346168232345384705281411371517044290345459400205166523837613818697548233412227996572348197367087525813707416967819498739022246721374118058666580924957019068082577383851160367671839118215246564685950548217554669457650533117568682279417711553327344170546851698717454236173127711457106204083382212707319428814029192727399837523650596297654487611287936870398023638730672161381805244807212541433092933149367747025979338702857421043343966689524132831337657855640331412295352378440531246058141661965004470122881925649818267524021556025413679512687479359391588903101087033797607835699382095670643871079793956746205215942638043023614423587877543619765932728372295471880976002616868452029607884245523561043904265998510867673022003584934603933470157104035897822173935628594986636407088813829692597355899651249678769764938410653073684363352055447369556845597730252919450350419126048510641464733215881051469142548913087860423535168542678548725549240433158128317494451139667951870250102650734127620179922020447453067608189156881289968927082498632633127441887448101049012583098118743788906751045712568550629226803818489235212037580612003699141811389782698656466820947925017626082730956105857577295849927279014297239965267094298581763675112913769989910325430057186612241119693721208262431219800749727342244606514431024934986428204170588600379620538023954717653308528107329818405849763846267979420286691739022217183226784028268282743088029475226587081127470238149622559003514347027722621217662952220045405131498089544721555263325393969323002737989844174606105201596681775715631943232102972953274279448307160513811408626239117488729143857365350962447657833627842616257732973088223421075897416427273182321167813849460570889042176981321456052240748584499462060132584104620176784082077040250650890998516606973305192248852940634926518840239222091842594667771782681063704425213883247448103132114314274630889773082906409696995338378226003228052256161464894932973311025070609349920153964495897418071884067503444469401575895076480357612148653349741167389324039234506106688184021936561915578546925196931740611501722706677190741111122536405613438280936764210325371287722226386053333406007686554819930290634637029533025674732373963183124847111126359777654441410369594545772104739183756075746627532743494497280340266829009550180349975019657071483823670888880348694183347024619391750136705428718414277589072522647452149757443361875130373317811846453550537112072453765775823789214641686285642474115941398092175125078923146815258668837971702689815062143458165894376058838671699965346256154047413201938284188765865022145299781278940650774274579637700398182638399139343521847988899652897836021584471576591428427013047008353654243453386661323345170916038777102510331397069270807557353670941119241624451647167800920471159318755328380505107971100385230525433169812959605753352213628429099424999870921406677786507658878502871935621114623885117682979963031071523838575035707402724264709838280272573221395893396976104990887083169732737662706844110007775113442412162790121770759255043807125611377465990476014233005614338805847260501357607484276623133430297917486650531836853407481920818610716269989895013622735572562652865983936037296094736981685495249974807565098658855519461222798810980384861421574287929545817876436181766064845697813673106801417803784660178808890719870268051005408786585878849256388030999761804854418483714145746896819471288556632485930699888939581047320066952219065516221416127667736944394302553329379341151272609678017106290157697620337262084753117702570458929765876612263256473504764267608251808590337006930177700207775390079920072867404431412559734362318511971105314246845945877999308874533945810278576206839783348384880426703800770636879320073215456691806742482821102444603710167891839426152340453852136872537518153900326043403545420759395110548953702336834867138180834720303772479407112787534842818381562996184559681435574046230124242577979544670478500616241285807684432212407659889320404071931073774791356719208749846742108550349907004243603368020780950828462962691090485867717857849590595759180240184202891169726047262304261085454764401665747138828067942476939290806975303328153767149889612419379511353470177026336949168771768777353899394996181022118816356444904384817563507931807096736529118071711429152685555767942584428844948970287131647695433657701887915882848817525291741362967816087200506950888009463037054372725392927842634986488942183739634081056097780416047915995029503490466638160727288234023812149866812280460881642613206545064667277647804838720710516219227761025782666734809039427160546756378488428698143782221753309275741494337069216069792624931092354285309980645165189768138424833855142945544828264628957030609022860945216231987186182552135388623290232726935792679617665017667462490872601669961795856798797026354986577728033146328042120530026221734016878081693598008909546898093454269710166604083742724457338631699916515194263026619629475518032743626331722780929959493236488576636567583707062152195830127697425203984224034105343962238275635103186172781675009590309581758116249302239914308575092544390482181808847661195547741463526235180559061495683843027360970326289751756379547222527012776708877304815735805214697887765921375536898693043519282310529447039845800995197768175733622275327379973959037647697274370368612531298919574983985150908185057750723794057231310457215551704803685808569256550259382082165535730694182902096295887670662426712574290270016130602270039530315172111823685293569303972475811138485866550969416524250599568937517322399826369619443848094636683555885335325042018421172517402870295085500768257128049709587999504222390084298113789483761552774004076329490102120852445562590345352866234367265080379327969409671551736255185831337744241319173597171390341151186533849222525186153354205147549938841559065210012267766922718107299917802015769006357532133439353037556235874896939843768768790733761341500896264819822172138755551048915346162193621406535830895588643162196661856912433328458691374093933706345026347585746320613242430466134027433558933840302568679352609956462016975837921796417012218262084607539897802870603928209797399659879736313683768977662386834953385943279145082133789276763221774339512494221866168668602510014238995466393008442875712189994943448658409503603877558476175940646077784476618487503959548382964649481476696018410874966210585447177902050045243238436344625842527011860846006230719986624626855941391205626948260656565025085387626500127210132932703325387812326196716622812667716058091378585759390352014592820225765784559715827246622236713334134945963424036645028140164026201961809542523741683237535017291018383951649154436385656218011491664227769090088305794123025619375166247818264694696059144929463700717905109416161944175708719850270820447352604279906353487477029075745929616878487466774126642792255099592159343945908025057149713779829660129389940222247811243243358231285669974112194945528458122268219385152503198852296021458400138552312857995775171294898064046557966528688298474512470906680058773791814502110180889306658972782280519372451097101355799765410476375182683838446838447740318461474430661658401581289071018100513446798174729886426010767662653081888233287581349673544227607001294973824045732867329206109164279423847685566641130090482259341967989838976325195197703956249809099530769024270801962135351363645712252325171767085341445083670016368833414453885832199217495029480395756099070793597890197552605963860696133194609268973678695526048221396887131605043249597000412462535772341063659659795995994519801193226224252272744994356625820582133457686006354220944390037072357527473629764578691957224105747338807263390930435177669168061490075349680011057304619010517031830848284572835052958266784995130857379742371132078972463484252820319404530643538790528283755638923868800570075989440304658680779228996704050467314369722215563300596432636109414838057152797344237950914935804146231648720521380172180959297368572302556204871425264325129144521479067147066095098931515299793768062211928331788468652559227135005157762702729996138532126125575683774648732449833959685626944491903253971075697530072750067320592003776426135284856408375931586907855587228467588493705880379622105880722721087221061663768482872312615533565558261450238096705727186995620657347494800968029060741561747428323402915084809750334677277799346541183790529141179832202945830606667888761036671829935087429525194300990392096606412866438356768968359041975803224750416825876495239953387065311616180838791018828005781566271740981799206580338040854540152779991128765523507181502592340242628052484192337753756685092056602418296695560415140879500636308688625890878058156434546439644551355107481484955702108486792050701140276250262768188931076162335686113719007619537176405735229868388044722979840021681821294535979757843619505473761284187106940017066016122434431220540530306581425574815649188368065352844958519929313414357124464589241739935681748686147388819005324533732689226233583473937345125863731870001043438770186088454764836494292597564788600603896121313167394138372448411039006023749938102134143256259587686995989792003434481736631154809728783868707809075839039808120147070037262603141136814815827000877065766400643072923667041652348948658277157701811323624848293079339166496348023146619662380637981178969350834624736252094489074309273504690761853092253091451726788182139416966255738953485730358018245500333386721714847074946166197178037804122802395348739118569178298374702308507688018607392198656753313421205778771498427511785004045104586591562063776206299890857076051023741757092787834256687259510452310601341707261869606851387871485420991559270473819385728354462744537634732677190800638154593307551963738602135329191389683601155539654418095776270967625639230782537962743397741070522580254867087186009912802348384870211557883441201443348140965821820001740907589031442040313841784470248901262778011439366893078468973813626548428550879827464720248301116132366950305766751299016466670532097897673440742585482480993319759129633262629620771890113594419932405170983929209692564626570046383047926609745286194086186182732840644423804938545683856426790152302271430463217119779715129890921089194617439147032792749125328435232425333560382877844987919655613673000759235442861878097095896855918025076910349533240524008538773688129376657257487699335369267486264426445976622031429192981319199783451921579133444131448200192970684523741518422845472898440078906431162496360063146516161749553579666623867035250998758787646700005419111998759578966155972990196832865232113822606681940143486830727640256025361191395100635345583146260372552123478660893109038078200409661409412343968353329434624739408014839955526480466090934200474788593902785754070414727311476554291832477239826246914656409904420121192103483473665739918290779657020626688668962969502775822003749167561609456633573674816241416640665038278891320632412069300388752013045167981750049328096210299739185285622277379906306685432318870505688818884866875381230842900094037591998561471352930593152137627959957650415281103881898791923663640341833073402162875898649774164115521078674255863767390112333418019440050210875921599083766073506570042342655491554085138517633947013915310820592516188935574466567426565378883599288737769340181070003582154980886846743697103954364135275920234736645518296739133580100334342465516349909777260772235189454988232568956671247223394693740882277404827320889417029544130770818431157723481089640064445256239023471443025558206299692745527285746533505617293858073849150586645355204197370729130048183772677221994591028653326470045097869867901162577854885596204682119757830134815860573325156808330146060490726286871856608195571826835184509229112167145773780962498583271093535003607891733066062495045330411807265410661641418948828860370791681806221039365623775764375263209781510610330265284506358269306375266176690779877741364225018456659833282632574552863669743179034324937979879877275551135610513491087832155538438551517200864005674757442250370382779598718260202252264377202118721561675900591749122975406580684968459167659121787493266405420326513705956502522023332546117741986784981882427091946570269386234510299849519844851124712283710160859009410923142355901906621660902700918578258787815510246136703612488502615236580054561334626215253807021910602954616673433087594359046232962511637877473162790380250877993853051014451709723285707719029196195654969756960715946554778971132102999670464474901297466801034475101543742422453467680695371842236577215960945134472703087291159620797481009967029089598586809347974270326537411658712006243301314373460320883596316362605367736464970598289388131178005894900694718550453296886697179811243163506659649863064575238348498882076975685750174008924026063461804225107346925247875932883755932564454897893565893876145696536716315975899363949969342342962275941783669844436162507884005876544977495438245981989544459387311633194897954244886152588629856544678566589064635048897463350404149093368540204533345250004676478314656161605763327294765964369537472449279840045844279868723745523302392238079989670189744780973934801451452437281232382528088665529254421601313723479630096041986144421124382466234733369727090305078248864880338432763612308754718593753773832198905373508210182835365248313909882894351474045020656663848560245742833754680447799169187409212539463148312074211657474245278071484706669298017110533936337191535549075920246427368919284506363620757500866270472430957577263747825474665237854105755675005449374170720693342352579883224852749872535655241474708865294540770241222018147154041216994005368871863465402342315909769430733055085673121954186450057494015193489144626522143349672832319301816172409157593088011972306937450091223642102841415211924068476921018999765355108801691132988943622478717165265699651365943084026155857377470110585651216900320594227247679932584619914712000047579152159740897834285285333094570957080609501800009106237107983175343803740841006313034461001953263656248410256371828057142684388203421279514469615972159109066382708263418755424446521014104249102862997903650467211176654253846190186979393046215231788868816335997484220105476231977674316604143951942709381576697664414774984175259847198669077957389469883726140988528788110225491884023750793781648696000893979325364680352374031962501843360662803535366255120481378051635053857679838219959516357840869365402312147761069315363331234785758223013925748914436796504751461935348585940198017862542120904521588203039269159700985229209446707232698949956523784043815539089323980079223865083609971448304831593973923598126453929393045667931461187156144018204829827400799993447053071623912072571312228580801199696294145517766564192208897656209068372281503550130143244521363789445790731309200559296177585413113601018545622171472782570951154375676588661993194328891318494830579025406093667290327679848812862910043054461028848905225120609701778747306762035665165990807813027635133363223340666413836696579319345587362179842411318081183809976318280338779311902935728198286746750332447937813857900490429324278770383998666851323715016261421131038766546135944323582670091983780494955949672942417877599041052772161750385048582551414983298961018111140773253525258968410371093786671506818013851626998949543030923625246419373603451804889309767374898537765941023787290262419898299512331329294264741280200472197608079691490992312742416910288229605998246596603421046307801686158577022863634119305852239094495124276688474313778857975094136941419389877562055392636181268882012327400128750365719807525640270406552955799594907737319581179104067175057631071238708457829758083813108629378877981485469684443321685234025786645469032744962563039326404155627183134591135637746702733342843890456556920547387114685006737977495777375155934986867400203415625649113233052832527538352018769887724409307753744420042239212836615628886749748639960779712227873161068804835188437050334520704123395626510553499966930833363165399826896717320081715278193027403693717931626684647564071160480262864142112870744708394015527064746334357665467817257581593344487683160490590045353776416511115472260429185973360619296705901829753555518390822885831241739656587080138346593194626925086839286099896853597225732015189114401837063523729799509624297615620687603611726064228847263561405869906500172923160608309060033305272659896951122193227628728453956885931363250673382019518598426971392986031221073727764616256696371477827741593419020959506314396025221660549574029046850733675112562173654484016672131747801513058958549171975034089911373586923710332663627909938176349715727810024099352932934844693718034858591376003341090766239360162730577039336900931763697901987082095481095125175131333327121540623732057710295794957669169073772157443847471333633346801927554072623449087728003906370431603877227694444538316290907943153485475486184379008477660989775070288269570901518539163711061345337372479858769248073878324524024832827717197579620894973682680903975617968957662761687474735800859255064061728878825913465545515637353625468088245734489267765701500150247357049272953000260739364245201470352210063018845008900005716961754864797203816416027910633241918097327864043973135998048480127451102547332561808810288381610986488060016487807297397282732714849670533499885285976351522706663338375930501633805421495197910215926141966176942564815354308236822493564524177676985928901343975799855382514185117416003950140846151432292268183693261413669088667054041240718414756637411683268879424709720386441182226552948806886418467018337903374233950348947355828471390191624248252167322584875064130918213103550695072848420370018352397975608873996961523361261369709316201695899328580672163888815294817507397469243498358320372846067297575380294270089108966492816112519119093120485198513104350945878308165560873964803750134457496813615166449570574558777734214998919711862118347591489299492586543591078982237455453052019079672681320667353695298684800344831352406058184691936386808691762045685019476575148418203514578975238442409716224789628402205966964392107485306539603528040277914799294339869597303555530337355130560828016231898825223126243067328923326808389173945099777739082616353912622163839930986005282149389951841005894107718913788517709862128216254055282556449800967706210594888115671124530705588891955666748768955241682977238435186562841833274234545957265279988931590847776284788489189488362209444357791507880542268563596234618673585712864491468931671472809856240649845154689623592228771271417270795175964094510684015112096092814205838692212678260167306008203645283964344133827537411230732929692507253191276690953313584454234259007809821094409921400862893974605032410876019097300496525796118586313431702452553057022363426743927958754734941939029022371173402648519899581143580111341177709992023435999196823882654929019709172805531314630558349820299906871909892074519412040456396566602541039777414782164765977090326724299738294135783067493989091915163886227688837471059193186646603728262444965602763769043721951917548243930320917289708956012451895330425367585026445413322248445250777641817891148840036767774983430476699725974234024520978639033254166312391359028367855923565010512041778841711897978429907293148799258581150287888809718061091670732935154047258824688315958571801019817719816469849893401964782284969131245391608257692000031763071027584380305926428008733192989427963732548862721290757535593074798789210907048854715270599086132373938615517121080786497961265492479746173208697564782541743909849776760463177746151670413400356314132690743954554519961758234883089937221077669793952993530315293714869434207245775963393022532701716764337267191020393660147050677254554336023598541007133471587389488163079314911229200629917040049407312519968305507229357947020754676827927298354793001995058482233081913822985559583124560949197522693656349229691626785127286883830034068431633408620933728976780114771449247179875725012990025081055459116973461477092703883034265765018040818397598764123629178950306931577424789940809211155116648407870533746598301937358180361493552192029838902699673247865692014362421241281869539283424746531948163943106348796481665852094607526324761552960497275909034282629953870984305028393209419436213294218030862340449719759587488136766050776618873049737841997993153246917963147444561896286720516915149043958747047722408654816107771003680285839312874119919872698751764927650759193391459674222544200410040957897838287834227794750155768980110374546309758032226756510919811165230387571792065433731352404366334044400961393443474995022692041260978831756122946018952035957187201776900689402636954724440277711180121280327236726306222791483031131102037533160080309304886321670223375589025586654993048182202021995805309827183225075362452946051237610818077213907424524996479846632573968829614825643767234649327975733837007046426297039392885513220427792386013894107098716663052792668405380993331918636755064869759564657330984873978470571825083364614833451036597011022743569209211494912391456455627953304406182265632726431786843773739686430778728333781979624629578032542919475666976926203373670302958534177992781929294059493733062442499775243681427311447043841834413935169762629176160958096753697584940594982161004027373358059021945812226296742186144276642682297616843966188684985834242919789551636369893557846140834475124809940043006049300889078906019386567855555314678068570206715992882880057602905320019663162956970837760808744838382441582187944449311743438630675376649617755095922963105683021595187486546881611514068296469054886092126199793485417254738484693255085600782235596740258398443616910031773264871259090221747451818123115592482490393948210412482434381732282420545760026566615932037572827779110647500628640269446663796478192586922061914962347757651642771702890032095824489627497462780735095030276875415257139590171400173092375236558434253755722585792800245824921527709265053774436656583767813197727550105257612020991389883122540443371746351233001900998661905802178247782359313324024710266230361205167868731926172276240129752092613750820117734260662205441761686028489934929513791775190326584420000615659324676649747662398273000362567515778227761847830798911057382184987359775159987294834182480716659372049571974217030064669878872488596173431785623196222775858834731624998666891248657296341529302656531848399685367427444745742462592473454553090812883216099153377700654385522312572661079571056922867131580479390835340199016353855470753586076176880922850772134947406439059742851840455105000982572401060449367874300737385177489254233131042591665901908460612119280525082573824194817548637521712431223402523663537654540345672646929183275987988727362829087641495314349383816918191623280470272961377333465630681311846951019043388746658161673798509197949033634826970417395583263127844192498808815802840349120807290201202331218630770446838057228160078244790318322285636291576276824218130022449642172128292864803219313118481879477616015884798380532805738470512749472606262896205935535359203020766166292126651127874494704025552853974325557412700773951297238102249432064030953348610705479206181809668598986781127761169431916246789431559917965063840349232036142679931436699915267540244381172391796736629108275746233789861188139598679725446602850381896164303811886511886042139304768312933089223675319452073009348621556131947625705913716006966437447228089577651644111682377221350302623767117621316475975911596614402164322600787954260018974501297607004319832159639345258572731676743328589452241130993069554757461681532987212557341942669277833338036591146544646298704698829500994840310605773722471958571291316775694975733114736104043976500472168462458323950841238607063275952231176882732038510013298409770333761582242428943024946217652772578563296487371927413727481655318696615524215610305001981363128301666807091229443732630611899943914381148835328467154876388010876938567402168125746211877710807425343475121390189166433155563018654017914569156523230937521236099720794559979114288644692501433619192819910740927807050127689955983274383759048912142828265062188984454264329517848958076697151475555056426068007070581038466399543686302975637536420314723429578537136244655718167488273339938885577865008605192391327340695755376273025576168138800450337656511287699922700327605180662815862101510272284927321874254730259416737235156011473257859458251364640513850813271086154542437351602219060396524212535325937905574984947110646133457686766695958470350543129363365896559787157085490460526491128451380969365783307998373357813931587784273935797043627947991053775908993773283659652457407151813669212791379980853479444226692990223206637253398074920838758127192282470475680293378269595819964554718880921120383227511611294075500707958829513101836189744629876899572658703992255736564877469138526021986903368819726982162713061367750757921276177159158985793577500465171356124691396640094923501839178608798313184168459884858908981874410482181964315205983763958494600913573689317320145371880893855184630210235868737183462260566539574689266671372959411455269227848321201520167513127550737724655288266730790969873446893828498348969991849580260922630318576198206378557796280912097563109688608125442781145690239694471637961383803364676080582363916098106417011346098246312011557176522536845717388550054494067490858316065791812608835368031323615612339732206823381859315290244683567489940773133220830668631586818997354037582443060463073661144272907290975265669470542549464313858054688773133465697406900275616980627113920233763128054210319350086415831450194298110468782246200150159529367770887800589541481732510558513617974118274679399981895320197508266930431226565348306808124596358029391981331909272743136606446224510945571490214427106763463393787692524253526735445650322547916164114072974591994657877658383292833059409135177576586876065977824370596670398809724894514999475649861062942187567673176576048800447767009555139754139201173421055089007915383223257969883882624956925362478773974512125869178865775453324365183854395139792694394039109335204412165349217153781373393079724857438521359130569126279742694824996224147002453722744974798275094492543001383781859565782106738020613057755361266841491433386339950915361110432443047940059870848829207151789211290964283046776473986254469152161371208245576475758118837222175813591605070803346477008371054374082656945746081986861421737558382996320850116338035168903183437676603148809075010655576678905973386074284610332938046518204834917430424411203345043349696917659106602177725242401500476005517438114871250939445377465768633306110475155266135051449544748708793673990421781598899572136317909522641947370754530738048009355427453468102019983232159938533916740148778230271846972650127992624841534612819341483638229838178464410134154682046492055192879480331793858795325418890521145484878075156870476889663287078382749425738000478152201175265568117970219424628221652450464141259478924596315932264001017984696560724762563047113138009576962822622450658262100117748551368463224410634012498044692823205045936641500972169263974263984631904149593153362853630038041433875928097127772407566011727541270704476161973194547382212951028119824467243897408144681845583899697036016900861387840956430549505260490941849069331832819116967878280858514804667683880412839974392077861957085523377762733710291665843537314275027068460498925681219292367803369145053434858337143596526200195345933186260455384414715768055621626200428009226053131806913441169880467135210677367191492485644323543909172446677666341128925220662815292297303037176447057576401057929320916243862473239171618940236692033856757232338967540480814333522454381358994631327359296552551257708117287086608166930352099319750870989988943088314850433688235886490362904480323096124428848935191760729759083063415742870556851238023298316388588573183517438090035467997205231575672950730522240405590112983910762269500429111464299034196190596754466465923804340581263116561660204213518760794507890168903616795706574411384986278903407198254753430318142408900392000644242523039117133654595562359776125255751128341452579821798893140429028001706295535998094676028987812334378415953879474366873073051081578885146610991405799748223292791912562116862584660452475666662502585524590592680306211100216988534045887668472319447199680601100725163298235612248527207866531091932785417395635412045623189391625170899202799950155442411264487379017413214274067617466650234474292050568442545561850659002265287033277905202681480254228751895617873477633907950080684092871771389769956872370129601281173509298574467223546228982349245318858403326460857922974588391571511627226813985142400002223624295238616409407364255654313654154109287309636773932253423116356144928606681017518972414644584425391369397283266619733996818111542944159988704970415674283344875110908850234596348003530973406517963544472375405383784869635607981900525549447332939700407003346056025055294456205330491012088477621888513183658966064567199101321120670566208485414612228375988734328632826362411972141572282473245765540428179558217647129940394753546322953303718269735563448297726826705776209896879595525478137920189681349972628518332710006806525142256455908400840552950254274343174263555225234275092852299524188960121889516524242387592775167456205297985959960802110526159006476203359173862107970512974952856168979405429763900787255333283168709240430148017404141039375442828777093752216091453585158192690630765374586189646996651287976970280357460410702606937382020812607847192580231829035745335063354238360977805805557126631193995554231587861736931110926459259919973162812373282317853831757679869063436118725631178581901480348561311430030451946929098463669807255706578786266920330470707670209480034836566133781697597323562746946216732200754429557541902200934549595941649349623905069619890222935344631522243724175984850163994288470603953480330408068643829633186155092007012840268420099517157272671820845161105836707363832244204066764479711297875976022784744383488821509033333071974817096242873181197397725347055540758430053790869449626394807468785944863116936220165774607260734679877409213876789582080869349898993494223525496419422324586333434879037634081048140759150107770284499683142031982350759889970379133519906662094490739925595309314685285602564429527904955252777048262309680347865242828109997276583191404647167951688976335146856552672043587300272350734391627640894093756689141928732575184442986001270213307107734056268589758448058121841105559904045182118227211584642968753776308875684243411414495587578399235744360420728521631185046731520506654226174669563078236177662394449791097120589030467459611474151381520987898037834730549362745121903831038885112671163241636802651573735968432677326386840692621084163690933180758024385833045678024916391432628767061222971000596750152538509399245706483523266782816342172066122483896254564713795432928741720406768366188626448692838774260570760343987219772865117551051100689865413518084254281938837050306566011881288318006405450031775356740376614276957820781633294917490590980404504988761409099368316361005538884273019571894187811530429341985100114993486239181104599058590770094221972687197160296574629778824288596995916544167664927054733527331275004399292618628164549124549490485700827407283276488846013833099847905963568472010315010297579410571843167235827744420058784729392332930778656529439926812538398425043920747227497152131078470532852037871995684862511226011341592295035185970435932989068075419249262444555923852357492448617870473818674323245062909225841874608199323502273973982726374283800746918593471488813511896001710450552120420827974298476127705766938160655375860759030381209439268202845230748588792305433220948698072941061357454061728616845996565855662999540806835436891063013321010711292356309658687773109412858157808142700088681217965571064807073514305857967614429656226908307413768893380258660570920677163994338673807528545803961442877827003776087825449882257319091345532012393198819537633508919530252837768188708747125732714492352620807070317919709639711827758885094447475282736643714966351194189456196510730734988577147100711763937981295910838782039576235642690629633732782429354339645404752992207630795907545253132729935846122762865196972747857355431491262243939495434453853442452587581853392224644358245209508473086203297761523477867429430637874360497601303134929716909211931197645744953113912011556877939813107971720318209144096462619252777164678435441588238835027063777945806402060740132642929598920633453119364133883793963168272381607643850859772727205451337144144325820217330052858870676291132138489734311623372079854707463437886837239684738503214667921495778719812947530568761824254302009736609492823417155617416323799135395474211639994814951101039451522197167113520982047550354582624860821565034080142599011508981786609737376060253770648461073711194855911306630269100867492941660083091582380784741987625304014278686582967557007981803707041223855421003103226164704525691518253391282539781706087650915035890997031061551836026931247244392016246652107879204258522590727562384054573420470118564648700571436130443780287753811655422276895539387056663415383247431518136057156053386560726857203506328917129212107218151959343571681198771241138119983733095719795346926068591996579808828267156221407166553781554924401636043519932971832052997428747482915431721471004295460244170234361315021979502899286808973687121468273799659316040698310612266780413547224352725215319181872324974377295314648568434522962041897836861988924394391015501832632176796415847378947680785543186278225297621083466942294416488279309552416460318908158635571359406573264937236065953342484279016551646236978266978954381907110010639783876610320456810375325992297288000732139546392085475791818137686692187169474237255590642399815090309574103455714112825559689209458326099901306542221100192487240397388471033299453301360203489148089487945881220670963793957278870214638549895481902565777652271888010468095870744154414790239803532175243481257542620470801147566009589107298347956201000678008398405021161674565973059043387164012680238279508773095203160167474453538429440042353519499341118537058749766196442810377012133188654837112272758232025800904156216718733874010356761056562576329493891495581067104485186874554409551320533366002315751287190582113861929837904284944926657248837414470051121288287130625734106122608176568294029673285318961600729712173044736100757374114276852084099933297666680073033672895943774599683631620255265380599847248922643703870435694523892241828853586044708220765001394180364658086158371966915107969860045487080080521128815461447249618787022850412168689038397070639412376442165125172586175454475124649406337434202987593800250252392435526712501549472998220090983249749957917643689646591843367576574954071780673078433651697308890789575179227118661387374133326237327101653495920479770631606088399321065817527894488903537193034811812498290846113346022248512049698340059657046190249707984179621428943385513256148372812185995037822199987584618794343759251980674348759900233748780983758574717347084301980578388291306742959107403166381685315176767704855291386008181898801304648360302797207888574598703023626181432278073196160411855698048236766777638880519875332990268639211500089433363830560757665598323365927487771669500855547755864973217820074796593927112096082370645792272446950530203774928152041935877979719262706322563283809929999573354475680504859599168927492917680218750091761147211545467182893255237638695740204788745555484988203429593241940323359863440366859739616473983238931662767743391883559404992493687747151420801635934962299063117634287139508667638893433211890498450947569661056105832074019854328385787532120566860954781139177372262847789687787696185683769175695440276120357071232620163761158500645816202413250119720744319738338735416561086681186581487712891934674816847742806166132695834119474073831422795881376350741166248775234075487984918250738643248922841897736618421287695323205653612803562056561278794389301087482202388290851580203798299703292192348772945101216747127314783034414119417783203082659028561150821040789230196198524651551556082214006995478550068354957654390103446056491812993495907834327106277587702269149596077679063566034967662201129076154372099932612802362516646869357920970078496110135918723774479924327808601727144432501055602780957755953476930210323519719742163543177553693463674619993456563124711670337819054712520031688996642102608706317235280945883766005757293406281628042570205613894960162881068706937807032191488139238477006817634818175082224965840643329139785656083103950580632753186013730595591008109973105658989386083845490642925487932284268640319735337775497602537026209855761153096386358243553823028874637886418733057544456182024957951106909700954523159509949046806075878829526392584684615338032150249634923247219041494959041588973943012815862864916047580102448422837594402333771826646342460368815411439799484902696367364473572910170679396479803594317551181848590747387553502868102052297827648161618832537959806466086341776290442361752670063120542688799794704477656811985154141994362696243951066286255651458337331645367137247453495943579097672299255241725352755075091040995843741060810148142539870702487760274761480086619184899253088856579579131168717408073615422524469029457827169628382442371234782894825581585310086354334534577801599980549728757129342413660445728351974178103246403674769730881600783910295980821440115672666520911344766212018722368316316860714510181246667606702284575545941498098894895893969817320612936163918006404974542240259606096346375060196152266163528078636896269963231804369438592704699661279298583660744258578093511345871355875408447150614926980021888554374462010737759059735450704360215425193036538045147651585104067323138138723146482148881886181869287569855464295678616572756038142084882187641421451577648895494268752627198558985455434293255825564637697959113030740996567290969921165523807345647863004433861075449189397032086476564088969180608634870569982693716520405618232965703625350564323143251381156214231800645834900958098791173143719537123040657769059067524446529052609955589445903163907735835466036379464376018837061862633456439472064000975184015740776329077750278217668636734497606182684263933839191417498116350282811629094177838588383865812117799201295546406641967195987054755926322472053522828973716777016067692470441534027514545928647188961220256326056614534439469457835923947455637018644951184726550590018134516088611576520101104123797366610661385513203323777591158638962399216299651429797554355968911380905527151680135645448640742979422388320812940245787570905259831779040802251138185387650527052875489079591581073208716273266566424272486737695176816774236002844362121330753151469544849916302464297565051148432212147840543309419991298648481868156748251319174179901704582800579761399661429959378458176920107334895590282558144404506243172292683097278194258424657992984938378004544600068318335263745165001876274849054509721565984112700305310327008586439340261487911402735140688356745387592755260880859720177216468720308892693645759777794755597814055038044461908774883523819133595120508417104740532936386672055014253202870405069228384494198957796618746069779932982855641208155304668290183084883557202249433013763002657618480383637742207082674141567165316062237981120204378418948668197163835093589520754437276382400700056260693745395689075286031364244396793667804512551866746145282079363947397261219625577314634764859758756844666486079330374599031552519005359918704317397381590148856275617725114285739255307175354842537893088973302962013323481747621985521299681887498863539651674158851353466081156463856416428550029870949948394035338218892520183601250006723282029107437819377185198814440354044407022910616805417865302822938727940125270434231999427126182112121033390190425802990317461312799212823347550259292517225235522853263121942362929992044562058275656793796768485370613401553449578769454658361919895618858758286829211569937017473771132935179101387217711055426742751834136132277886661742419977795295359516316435877295635421500711300876143426112602037357723087849512228471638784820431233590398880010792863921495680944309130723225677235135004811159929471345322668870504085022125690736523661181481770007652644408187509192147744585439858405593717171743404648537755588993659538944085312477610061715474618784374451651027498349137358869672448109444976111311929245948936278942631613270144358486083143796106461112541373912764070449700559958966343431472276863187786916780958665134625992711901640403979477154280287889770793200822000045346857791390774562279603621997640694593578401815687232307526355892828566321625393561543410048609431819077596808304997972775047294261366736618696496723514750050977566997756144528839638209446081167776724710231890525621584684731010311183066468811302719890965669873275707866791664170640572398669739732589296021563137169592111570632507793812804321221865273105400960638529407410140423186576271072670340557449396084813707389001478692108175535802548473725171383382022668788489859918294342019969396851649560368399791738827065071609944138364587953415425507441821253369086118884534426087177319081192351144033940673999673979349416208069367729523880482471176079989969094424695915340230167099563333773650257077955361273492223920010572954552591966445351863666471317637682266128084038826502969334788250657834817882746820485073126870808283895720730573075364073401462228085121186961909412422838820794626604503924330595081809060827850565905508391065183677929079742058492777982484364745875744785989094954393553747530545190604932574624071943263741574296153067123419376167093971576591277393628034242695696035970706002360913084367274641063872907698400560488070111641029320807604969430705196479162237509173140972217482575022368016819277741156920053899626985914224753381346366460065844601266303971921019398455539213509653914212756831256060697643332712196400102626034525142750916421426632527003590168811539087072021391467127853910081813310909804380457123629862460290080616791507444365918311516823245548018269283134159643502660726002439277169652945937406303131019757526488941708482657331630273170114235836415493768287463670843105981019580688450010288629518732092196109150948452333101492070856872009976883854036088007073979741035735192929241439748452442711649494277729724468019183615191331461649678787370601542631112305490207110548534965908079743215357537722278069335143165534911730328090750813188490182748721295711136628898746662746290727623705517190070385673459838974911076377802310407943493602086992672627691198726335659617187080105344089304063875933146999687012663614534853517945047858026477424698535935800984655346415453255124969698400429559107913201518535691310989749235603327865478691712365211947051625959695107121686548736174575268538194403153216185957900536894730245238380677980206740075924323198083077794172390858511189563330722586327851053868237455778050659902910392836617288952381900270945900018992084639616606707050723160004654293885880763768884756440449722912290618750157049304725676060904085558616208145981371521345334749141649152127582179355891759665909786850817474504223483419501273507942359096275808842558575350853000502397294162985684844650237845223723205380354693324906232725865382034454103640862540254981516278746540431966513979522489285476223267768104011639984197396333494065247075121010822096160295161111424750633280684848612196393599617990166277005713372402660459246297344056630697388940924170351601137191800020008515116487795433328638272764958672508549149116123093114951292551887675165139894039298968900054788231466729724311680028750616845504907123586160088306179004652669816106045033835355665169804426654752203732884665001149526332170631285808944522131682050921413201669898630051232657938275639798890955721735991821654973999886145153820017900414906591975773483764003023449475907843229040338110476829457784554457589462056284025717787627761734507766100523445681194953893629092319387789108541325325476766843926014966529207291209708479521918114923546136135848424748511246349010172926718103532750120544664256058553184242651271815461380057917871629544337444233441856194570267566941045468570816465177045959499447736028609030919624589733719729802014565567171714105385531460931187036984481738319104778113032514536406330111243974979229440744122660140865304700252086658613339046986715477400695702554485657417387125900581642085864956040353449926625019873567208002766162321630029989486998661796079753352678843965984853888553469949437953616089453749127665649848626273436789528739206540150606756956410340424721478955509482698928166316669805220485009495793422594053319047392976269607221107531866241521180531799168572144206353479156238391704690696211387371728938533506392123956804636870090063538114404336682896662805695737970389112906838491231149079999729434419560317180684976987487682895824096409201488452869475883545152665188793212648558774582569412604601633384373580950820565739348335617749817186517311343368155535628182790087200113070401938812584850277503507164267623454822007429595567392801372733456342964548213899578897844364299750754056515049781307144689404527336638892873985687552561747208094713857090717967751540883643601748865606518717515261319836970953885727567549506582433078097557249486882224006732432829601296186543550176875920802437144139881773141476301346125633911011501232426561175233984189144439513763968388642284968552297573889518748222885600128772464879832281175000448176462929353825658206739505741228504018771138037608836132793048364770585202733002225430271437835175124978304102166150772318228320551214648321811818449330669410606931115648289314889349922401964798900071460349735413067141489564176661491347945250168749873527949837004029584174281418557832472182983004419650955058140236374537266879318926407847209062642101728722859676726828281423813624219339499929442333062565231449140885026422729277446411771719257700874122224850812348836193522255069313343002808641643707393922653198064289514055781328488830946609487929671724284317148413567904503294832704616261259377271313806046655441456338486422554391490336028931042615691188976135808434962404379031336075303417224906533102942868640436914237520290564501004294856309808444650173506642555339130326128038727284076234504430607312287325872279709355798478477022359616294723412712576191912909940207385533010522982579566425621633761900497771294312254928556941676640661833272212639711507740360007066876491054299049783106938380530980251900904224675772287910899600739432852517579947767664252787135752833630330444245578203449119127874261680627726812167807563146788918916145704649945373520652974137240381145856321205284089171065427233258230664348766032326987842286001778652012491142750169007751044251530021172515486349191737502899734016139736471276606613095208203385361942487317358604537506407037337682663258151915124330838273352267162784765298426681761669483928043693763588925336902392169522397483218936223383808770927776370585164132397131007451657578149717431105620680576884901578049452114798490231426616638593534663610501057484227112529484781345050170591366357300865221082778507182977567781519521484419981960919509319301583913516926258461677884629929376337396003023403049543997294327633921997536621894297507034058010908668818682386825792210321933643174513107443728233520678642248594331408556458606742915377081887814149632620736578477893309999184179412747876315351536306814088817706729946399475191335450734673342390340585428069214209065746288629173569205948177855243806322618441093606917916242484725561592532987106288506260292437057968177081194027905028922178551684038401710156895637766314551246251374785098575538746243135516309110737251965604355306935986195958054156982984549234368086020816058729359693495782650914809763190478027438474196563623143560444841819737146590302914747769858577231474213308058493069700830002119644932980246179571471317467760166403880419184494287014279966279620167318395837478471060659980992612541866813306569388330890934173263099717474157563452309741039826218745809317317805956370258635649726591458385374231983271365228168540313896417547479369702209173370730457139763391851720694062837944344502433058786803057003281831704576970783852627583755700553339566379821162129170359478788917275134237429968635035059915966782495532015720886616658389210168360878448408271485539803443681985347414902409705356698338963024918775588168568997691857614330787313521701326000977278568763242456070191000985509704652140223443699704501419880857042826103917789318794975484785880755244116083741760777836260211903494288810927009449029583448297113296621898559139930231818491367705402769564262219982095279117231341514434043687898153001817873444305777871601340175051509658436699714300436890558047871261945901928217533388946694177299483158411274477702086119169700683415011616028360200628616997695318065760440010568334413671294322493977881658069345501225816973838761097229458959056642907389485761329788403428536039546114492182754800133911508491234819289803525292889926764664940180243080768683026682421647258846847845722585260817556280629432533152563089708268248633412617044672734520643526123634514410115715084513252772965347490308959975078110444094700613724768118344147905232884874740682400560606760133301634050511849059927676882840819074224836717524498825521110062803249094837582786098231863558030959771766468525323741960035833802043634463738186575588766718870720122324417657068272932590477615703905863574638817731059927713168440785425088346858003787119083944532133898363361281053637974811781620578171912865402883299812535506586790901425044602663989095760292048911165525201956544601371908660011497648686195432947270910771960808900167192841011327777609429851369454596005629204109775704311958139608316160991065886534328198723854489869603405477528796691889826068706193182690044602260793056415878282136238452750827295783527182751413248592226126155429269329056655822087791772873685003830631077730771438562976329417078965669608931491631965003749183957541444285549052874976057654015605529813356311166780700148678768340788327084673759757100026380969423496876360336296326281888546447208522482817471352245869224191205170319036257246505028359825947327202631351989280564928018166272530863319188640897354605991724279362191409360095990689026963690727527802938704198349528204602137381523336594045679850390692199379972479749680132818146902571049541919328971129666875119933744361602026471355240517902823469765974088261662206273449506840462413548128301585835858679277193713692879639660456349255884693224912429193894032556069757990765376274168778618476492844096561943956949609437915569700479433910234540152116607121147776341529190476305910673876028598900710074917935072515877400188925047698772623302624292552830507128266980006709963247723376791166755095058358540682134385569319169404735318451764500773495654818678725604465387964202618890725375605138018381054244077926294365109216741754830653741610815892761245233699668400297724918246248497990130465537475237784146994477766732247278709552046369579312545138107200122272474352709978512106730694182262471447401107032014986368910932512524365658911491231985522382330710950964370431392319962686231407848503757132508979445285982150773755968901287777047982637124509676955982367367655851078672125410832929160556541283050308077965779243569352444494930332211413857194315249596662049244598455795334420819736009823795873981109008808451460829858212037860111102926524660304502994070451798787443305564716925005167871327801358250334315256921180032947618404188103824239946624929365312120528293285422669893845084031754758867487494670108040635074794685488921481451357115967827442231234420226117075941175689880869174224875132084155515806067508320612887528125331513054992843528914678897938898439903001577279876432583224925244911501890780741864693312402220221386720243638841429150398440246890859751510263953973570375292725378912643141114455697402260277849432795314264884259008267284243616783027890299973474395352863872251283617631163826410677320617354371795736599873444007046730868493747748980174163464397286517926555007729640768704836358116987033083092577316301234650187269441404549246121291399636761910506211151560277377041894443543336318153062997984288912445355032862433634907645564853187618357002755514078063313268746358489348318939243864374191584008876019033340356682093489617636476874537325825329223058917742497319147986430517066618246511286757625720736968459430010556428033524697726043748624052821430919041933492990193992375527636079936142954153300567185183311089451211799432576407736132432837776905386751771498651869002744034123415569784508237455881748942386184722879352703890022133230548896624662886531606014773528107464097607235513205063673860893097487197612924224841896226870012019611659043768488915744051484143772676287405803631574111917389078282030951512379079930781255580659932135857152807488898997308288016469648245074974902699899585046458611508625098493905527893937153853873737327178559213704091652432650555221184006109361722270193470006839052565100037508386122393276567982420675560122540129698231669879656536876863243417591412055647019004140685420788037981731374425928146297438719350774363992628270012013343173336456173254530523748636513995785051286093267612915142181589530423554523369452996012723079861695295930135087494224013574311658697256892143741620166456300096178272083047534416513812901643078247904658210379561924247970480142193563718604282700347314389500583378278451808431835994214577263547779221557539287728214518172250188207006467509340724991245130841616377793111781548515524628019213400545320767081660441102168703262191823698710739170212767989167768436509554246748296581840416017146009570978354362209832858551776077420070334688363234055618808223718567924041853216078006050210124087222592063565839444142311772071152920108322212131754150368888859573578828243253589287473424795539581197858961943586259715720691389165580973707481224328239154043900672000049589649380117443588679352539763333574573596720587636777893388805805936609044080287679511292544342019044362403073704316821609968559996938729031055998166661532394953060756431256411787664750568679360703478972981940633529873919711696410799865966868409870593160960714080612516269861414152078490469312569943232403078923533101488102536824872064145755387600171411358593888840325533616560545581251473619878251800515196716667915018131304076030512197722894959992119948791157668428472903645650911059829092432728017263056299335540827592860184674848010318398892940625365486107287548168401994927426932444192043241739659352295917779971947920219543356751914515950597802557717220841206824405821408603394450988614492336528012541091441557049847193608945131613665110312372112653879293682945152535779739695305412371306393599595164138252967386120429300359655857031586184861754299678518306587120823307657268077472567090902106824458270830375313281103364330726218824417890412303193329673128781233668560019548283527768690012531715191353295204366247243013813533797888010864909530881040870161269262327046551552230911672861612901168873515960797690622537543611859167685396050910344912785377942320128460876650178691354819420316150518465677011189206640098121225434747294376852033243795616493102963206822416427774242611384280053916561359615728560799264304243124894781944718146125254459949285816619899842556491916919036655648785461548199434914783351378848332873927971930373918980605211469076108672569479834632531496389116945717072460040483260659040945133059636730439913858962638911709418020009725833141281519135279995452871110131814704705772502683835670607132327480698995064269269671442565648728924274152120834018749440328178895900718064366644927375639348299602822088530750526124972948213205303699650374917690759312591021533651261749947233807580267290792548883636291487466560425207140071666652441489718682189330753434534676228269808016664117979820379279439110184696212951594589516167214601700538840324498481595882193723899515956202301777674182164358929023593406108689150120631375092172955015887470155414882686013435540650213715348535036905416705522092374229332879149811151884190231320185594779816799368141429408068298021651985751996082589897242170345722914619057893622220589608287821201491286812815356197684796859835693377804855321884535027425884374716646792763844768413985469522790377941954243418105966218700722871389320294011004570870767946949065533316344626609234032669037026914079081811010728883347819336883093462346973722159775196991812084505536119076832705664344473847815046792827545985538740070409833331971624114915184577315813624352193654748952524419584437351533882940621256006233724281230911301474041003734072370140793888744203814913747108995547644921510495955250042603257036746933406748918448677504194929247238178773277202419839040832193990046929965566901138632691099953759143716293539500516850436772901108615168694237549398432975834533194722581064889497342595675729176140246113646806088126364235478086621983851771795567231884165525500838668961132263127464303279193472121570525436190090263353857821689398033935875635295573340555886951762343074168683384477382664589413138972784339743582624406859767166560363797897635605983113831494887793148423985663877575425317944544002299174055656043810112272785963267967755971202155159998832092123393819809695184377680177045124150886336572646934630387068407989570644517178157538259454758964587380974059693360590597840939363518489930845312235395239778641267689225719495055643859426552729250448525399612022392899289678229086750656091431803909370994259155367122331874652696917529880437236718956958722238854496449461118944820259360899729840175883572544794693496546929895040412719368050172874541170473325325591953937333735420491535609029172660257166789092586413024287984420276258760477231246316896460226664628700852716528691922805230497724397464844521680054690957632054552656856766293680906697160362433361718481053978818476065356640123687772781501464687047489136957789324976306449696846212889383957901341921961894109624300383591794183941135045819855600967767447840397369324125623352811515047453804900930556616370910328527564725365526100361233308251976980791689532821698056621387547207193140721488926387460325163887083829285071309697921496310712801355568143532993658248443375750625699753199173073718671546277771482770835577365044150393428973618256420969021571814588390575217167582855572141962733597412443766029758831965963306671458889628149048076685380262057712508940356694977723397055340007982989240861238391638691010398813687541297652697455596099368110225556747215156515488736711077936995449233317398683502834454673684488144778178260109685476789671507098170905129036630543605858232260610261622030051188451098546295970370415325140346169796606763261550756843371431885993806670751610920524648391600736659970552250889107708401755795838202629186855966850766724577729515502266595972770210512790149170913855809981979673255108694914581532948868176374691769544884481954504425154191686313688236555281735634621163586538265416748795458859099112239432998658405775714964956990594573898965568138979589443658756441639372738403654054810122196358923012944309214172108256040370909380469572375416184104715750693189779152628719615315619663407505714467718199815385359732737341557947258337531302153706875214540931434799469799483661770365766147547274834518203552387539368828821344927542755842813681004985340034785240851951144776599063328969423884497785347755724045531990762050426351645045278700557529643661223572772450291694597027315173297766585382796703343333887690124467788225821962430195037298383684247201618848734764972235970695477107234754212765341486412874480922025567295122543853949981234542092517771967079736823577044323626925537819206291797893790526401657196890502596668228504909441696305884224451200611264380276081377191352347204670800487372017707087027388845363848955676164957373786893968227166341284163215633334327872653975279627688426929442224731873369090250710018352931439481863560599533074667870630554370660483460689153260519426504023074651409034228539116513209754579727249302405135176790759257239835028960934594965582403189737968367127086759178771414506050735413606230060907011938095223814268799022838217314793307939000685483985992520899645884042121067305170809744425020928929847528500524271608229027412704222931947887529625056814231667060577208762084607390181112364281932521662711047690617494043696979188626682852339748296102377499476808070326935649057185159632656145168880619929250774191005451108600243716897230066754064592189844343018796941256784005113073788017052618391061470001717945452815492956538312918434531181402080874156295249096494107394777001618492765389008636827771967540402136793472458424264129085104891283605599170754308820044008543317430434302558502592626789456350105914688968600435062060911806022385837564315843123574144537334583293789039314641518274121125959252956576175084540207792795445127648278864077633486190486040065021777750272702379020476492469793838867501910800996147291147966669477089642765046176369355065465006348630279593363460474421855359566717731523744133714411944920629174447891373989544521623070043127484747199558271692413261274527553403990684900450184051418743075922307283626757449460370096525718381543873815800118084576981708536235665417116631688773489818682388448564485501551160844064882706555078574814939643898150028588444017622023796318861188806264239026997617729671193803916006871051666959898700478900350710506686572247802301177957740819870830479528038308446417296940861660417239613417006436836963731737970200865229641662094486297120925069651733220258529485766044548760236391152529728194293670692755559729269711226701677724854786392288138949478130595037272296451648506543179056440012054141302448693164983576524128535953223760513651741754041049315268567117777091195316906008353096419996692319700495477738311158482170687305628614408386622266049609269613927937287702500196248600497175139200862111091944330726646237120552390172814014369928198506109775973562708596537608963124690885941308084349137847633897164209248281823332564151482325231532981944261111680748377183543072503736996748565800310827918099690227824840557174809087134023574048094652398822976159218380572859972226936160467121324026043127239922845514144758038309033411803495297416660270321815624375110944750750333855825020667142957628072419177988159164944519081137209944780777649527278928322564295878140606643381230331666825236595686870680736174872141664444833912277660823893630425997055277112341074353466630939331459438065546298138922500515286689634453756808489641915101788563550270996604370191657385483358252946385545459452531803236835464949144319991805061118962563318870663575341225207622217199008626619954890371311138904562202439710188334939625246036395526714929252345034279159601341431830284069931106497316536680403478137508881512949959857316309008708113964861845763733326562260728822217004735098702643177744030638554888732074932005967645137383420474628178448128634018898015296800112784894071411810077993351549091919522623048835132027075434585005694054221011222857880668868901140503258896024424390760936862214219607732989001692304326983986056940566626363140661527966558832417311693675985068388667165787314859472136940023905397711894970950690301788262215085866608501400042739110228286160539763426244159286736933829805417770036670712331588721489128843337149731153733424056633259621778780233869947519949071163763100556026413723857604795560866842936211529358845595799919276607012039726416590104387762129117502918477379877728331523621981184752346201370809330492602234454802573367611876960657676834746831464836801756923293753549403566729390567998352753423313230499494360921161984002500912827296651521066410527955098141842345304179511297548024616556488904804807650216418974322693693279055276573029856564752144549652625591859020199291628452484052527539591762128959528979170583930244083052289663942795567874487449640231257909179208380854316132330451324295842851917031970625147659733682281200290502945374778663059688249735643648541439408958952883261871368141871620298615991946649276149369825934986578380957231201390032452210198727288388997644265670996164383367584329382041896267667488500233778055986786502154630659650210283585643763806918723019487606577662114879153007503014549257011796903772427642078810772445801370231970686673789017129306129173376983259109136820469529032724431395338081050616671192187819133118553785803512356607121579606716657209745999434548559510236890688601723652022075255615521733744403413091911796528363682175414890576003273826422653870677937355975943760281056829338802326592612096837801121580655168386404933676767160396275453045408317848272808459529132056604837129506463595638775057780054143732673021741335564924256469582680945887091635693610533329162075319208882830691469893145377531009111378989164581148935464094962600976799390642559080846872261986316128443371223293751865633316107001533611502876114704069680364511490176600917238530861782020572977025673358882591489007474043647681512892282944478497643706963766072375414229239544603963971098142162505654149163633304055434505844044673154505095305799720185019961443388665893776409876787716399714573309019661197324424492813839816944608382750044426864551426266881524068146825698117167618024869983771593698105635139115671699725474413716329233508396562420908269077754970155904028448145670565127253407116941805401135100496833199887027324093318213033211519991252378707966854222791121784223412268231949087603612099205078072929674550844214132957361872150062816957173740776151338721654103244151494965073345197691772548570905901915712894450944746704325605563592809794378433995034988816134168342262220360515019480906287902885694449071796966387441815476920927804031557027936498204449657961916022926532068038522627291231817085904499914472517733489816736645548613495272809185786096704920980487487486915732689074143573013155237786704791713607117026071294419544143686986680610740211862422725952378448417158454109439967717244770976572078383102410277667617828376546237496202303911955427684030659295319884704497107221806134655068424623058350100404962431279910329255615284730815282395615506856601042816354009089476938681284041029142724544420479520997129074992802289092332266282687237720274426522630084582450487391966370751365108051937412703244448341070835547019106767743161929902984992971425557069163293951135004491407311342243911118634776426875907100536661645021743928224069363285237530852488346777305239118170701784335781067871391814047044636519354345261111351105980190627401496712202624368798615778123064571705896824398435002844829506555023283996010517777389256925401640669037645770904681426820423765672291166010634756043194007469530233041135537910821281127971798849836590659983522503395276419952631857606740810935178424227859329266228677038486066839461774561039536033418309330188279221262731260244531508941072848922573949196534882620504798403870424597581744875299271461243054606115583580886658279801110491985978068848084476390414398040115202094998273557338580101004043907195905832079739840146132514233047555063936425537522268640248321194710280518467629490118552834692274533706825841299546537103113261848471847727407193813343662029398852295347669942288648591021947534202392734786486358950489329673353663502549870299173229773629623688761083139942607179415860114923593369646568929064675591493804437853590312876457367272215528944549484842587066901784282566750457106828082867005712157166960755564536527807147237359743098072945203099998978110068623861038720020961090163861156234441069201774813409867748679310569381212111137511239129088383431748653511020944777311689209269594586588495757683674220612578823079689555947638538277463628983995415628228955435145502797628188032830581159805971065889092299150843083990473022230471387361399402069773852075569191126231901391966727235892797121253067399257210488307683150408458605762378299267492950727826711557815636247058705170028891933419175019904720690094210061746306910356862141871391222007673012916860993435052735735423260436123865946395505137441577092622847446501605240065651903911095342599385924102640985940861115213768087772869094314041457466701188917672742474616803802663523765738054592492462550204651677837092959277033331771191887755993629403358050714488919754545410473846699424596324027775023646710212130715521835412293806203801410828863605735905119066223092687768942360897071996109384740590558027211631351508038917580021489274081807235906493628156060038313110082461363619911634388898323392870347787198939592078938856986526042714712393333242234125116298924472352380593953804280022747796455391635918052766283929036190647700247430167316770144510114486073707288313298229032356243037797413498047178654027399311309987802183803593391186595979058079649447944982970776661282430871255922230097549640788280685185348836149740512078844998559241630494711010591337668029436003189630880892413043852253923834792351937879563881003939117429087648804135888210395760493017191278808882470277711732662024454722643370977319435886829274155926321791117568808770153571874147072136440979393185757211764685988180596215250653167260942569841238057770272920860646182245012537716010978898783086674458304600200652889426691071810630479611365392615342770598102072970352159759647813642296255525941383190053395744035919304336934319684072428482646521371975011548824914991583262426524505330341679381349722346046597425314014885405590710153402189969172377445045764144255047176548622723500259701016677551353458641793559551838990090541556354595667853299549505342651822304218914674941416467980553694522949041254748320614439482501857588679193522667089144523408079851346275785930815564113737096992434824551886209236721656537796561097671576229685470916276210910383534325093678052108716324494633218330341905806034411340395037862115413462646395978210618472045870161605404832756022983286013509647566764694049518425051466679668357257159108506834888020868627047014654694969732411927955498109725890250388365441262030531187995854937829601951894493891453298722049205761053159985195552385068813661388202219102268252881747050042586583742116984720073809181459112653344900190536422761681091857418669327784159861055886425780539494902550215699602263976488985894456524478777289063126024433506776767059552224122847826126996339842066622467097750186938107618109286485802605856045499089797287753058704576189877093785375300522126155512256011431607172692439717876768109778384717879040475585242826042156231832879781092290887453914505008169407102982752534728034512442125958081766398181486924218410350338719322655328235816651004886923793768269122418940520785151751323576376260060348275397493346790799184779758100804298586164565522811321365845611484477220913035608321160558473059232053821779122344974629081286403409828463316454436187223257589916089059735382680976217033096364582733512179075787881813626474823588744638014608968762329212638312652925111685696161020699132481745884148217371393571958293350771167427581064858572539513461224761785827946710946804542169166649593241560077196795538704203028442058073090670344483787051507206129692741592771454092119418678212086518950035867997636549034355459624555718689193764236499141189937424427427939056019990587558532953402290489085578164781835133220719484916827537503789591286688579029718337948843673365527712735601281947199574672327220406557252853691230262587137883928828991994431551032120426182891489979138088265874454700009130022841001703461851418757722120183061161861351543059542906889259437213385159249331116881056746751801877455924892046406702595454693336153096059573962803139893657743311598406343152757971095186896547794257990788554043804963980012499767747911828141994409541254432875129940598110637934089005508091596871060188838050289607909148894795988156645201990181274361860367884219163069743292671140943709520226856613506025704257651356737201393472908447658695472299166834699480337597023877608583520358452848731614152268852596324736753145399205903669475098785332840089561479222806136841752341079271563110128111761712844649252950882642923341043844975149205538883614519297873663729144547370856456272061035522666880537159785289434866730631172241750584947093900035935465649178082338993792619649813846566377395279630732079472015671491361457017988659439833857198573353219427913946194515640209423314987633334390440426541044429324018198489300200536185642397864744735789529779439573274132632071308680813541694966312535759198445880844281125770660895594894878497109481218758443281269212011210185502555400866688381667266293398161651910234253003080480482711989577167705954465945439950835465989500761341807148698068391938459598317094199490819816086429941848398969067015071040177108228411728648224813404949436241332880982580442237842493068653440847580766187657777629315649101676849757624797592065423989101684587543125342564232052605918345767984663490654162515602396958841406025918133209220445134544700377956273935095915723715807711950304592602238111634063557724134115148930948812790776512318263010377429533403068658946962821045936642681757012503541635626880312761331321838372440542668929271343025320731555717936259440155805468240332052632947705808985532465225869807468915604819150291985994386539045539694775798321518974525884351209235423276231242983850107805135506991255251006072122950775113808425655343935169669379896207636445218836941634817981293172685636687314006450643007406200852881619059432560811054722538300174084483612549569816164632100724439554431363642903867020427908255386889101151217083842514233353117014040642560748261127497742465934936677789733493600008082660630836907863885815809885043440123991729528904434592333480254920245037329889550241943022126445833657201554144077785449038081416823535261885052557841726668596453301870470912746838507590133714108909363606589211176183282341211816707637882861208691120071016873198081826879286541113195400955774741166640378821355418987001448567879431899917631663855936991306005329030092096789542101153588961256786932824123767269738790734313289276959126136379134022596147960426722425655820648413579101343845850878368865265208981908352051241044548574309013196230288227045014683275187836603039241376178332647756436666673469486808429357841326360372688274435438499669797219281553171201365432506506873398625326812441040606656209928537432984521333642085038870717205408192444621853683470947050785174875774475666676701064940791132793953046061389064687923122657437368398950783873270753888350845599069568942573369227684544678745112759080771376067648125949125480276967790593308700835627869204192571560303246817582162876431557368497544748117150935805170160423501822565601634888772462424176002010892066203772407365681328915712459937135077339554503521578050169466383942910490685972837092594224968995754069373694814495006135773762763879285440155972344290109845230113376945243398374444719685587126923164775011720079187026689457945144179513556189481909300817544120215419621327401755678173831071102001083425296301716426407756355567258888071781582403708875077300694169956461234422096707636581594434598367796347038397577324806383799822688470934795902962759286103259140102044054231964640825854167140804752436685013908247091137260412083406256355898927678899487223072239780497032368536395867347339384119460202160864634615263150683307019286629156803767986929594381437476959902249041793211107899793244757694316789730579033215814250683619214365966500360729728409414013317394762707643158367718478208213165749559117962437883616133003618467442441828958520549215773891477564088283755520651220989673757069191138197558651777104360904874592899972336098817438025035800050401371549932546660611302265608568853508261152270825511288932892103959662612299992010449832429385673407951844317328283183892398051486184855529033724675573410539876106464507786904836575622032884118756011769120641588725703914354594562153012164138569446677462903772931879779907467622995283697183171175442895171660745934448413167797029113998750021013525428732269396686217633511402800638689991685582684015259033379955017989978158087196303597586176817027283350601513013870898900358034059873462807309603300372328426308788785327781050751629291341082602904529685400877454519298718548063618820281932348254234441852759970892765978971124109035772206388829887615371725962581216925269543131847460967325245417100851564068866140993777360379282222620809461986299897942543652411017725368316068554019447269144048944549468083598529652242121513137310444365435454499596249372482963212904125202152039481370421115150426061135833878739479810898216616774915286495041991697907808594552389654680949309113610640930322867718236803337447422460716700769862845444890427771518081364592730593568178045050666236502678037503640459176865817609881162657552441551746490918282334465561376784860810972459790832874923650130572636312230105173237478017415828976841445275311185171891435431350496818709711737015157957440112813378359025694039892319687072834817272429846091016753914742786007394881141889491343107294743702650768818714977997684593879852430727098470638930652274012273241937520235608307133208318615336013818899498952620838787204375498910154629437467769151848739018867971222123941036646164319357897303111044275519093829909524228848691007809040629204842667877294180974873795495790256902220154279394818917492510396133569340989318956216488998688281768773532276023651300296365671239115134490160408305158806389859000785167829711103211550019439518889141131145809812058199844307379732083129547389787626367620115202532870763477768993581186896580501912280058149555210074883782032246233139439377364484259596120735660014676300432295547224814597088789566108651484571048113886169756088542478536839491268472803374407842469217368222414700922825104587460032380549083717828027535408589386305784887401925449213309639157032800779246181061943169737617616269628434520328090691039266437398615989573652071263638475725436522987030646435329640362901925720850601684405468869959823058895118605752709565903911255919866025744784049518727182187508420080893595787493288591760491064225691045173008601599170885132520226747013412787986485227221623838667642459609609350695893585270043936158937192379897808532239287279632501925317599813789712621974066867285538839820992880286203221298297030799923527057161170180543672066424115974855800841600571866884491562795222478529722799394392543808581786205491583658132961778498553585859791478014447682432103455200670360592484049355823310583079485261803565373633094757721012749587048677454790103895188291511372463517027689052501326249329100436860935544432369443531422796658411796210035850723692384628711554439359696116844626222803521731140957677995621437291056982754431513603081242755977170069871381511245863515973751503662843721299861877730305412492302941160013373485302708612039809430576180442161026449887307106822193894679361831511551857989821036008033163681396441303783193023401143381254235563221876623000976603665200411580339580820198861993638022331200983978406761979770077895552606094370334514262240706256287552363264840053830083322781924226168515951340144315502056986366748228774547106734402730833082140129221990891431590325272115733079954183110222149736023432802958313476785587839885090394074838300535269407108557931036771259844648347134983092065996592913535015308157157634150641484366277400956444541244402478208858826684665031052604081521562178579599875955552546581381485016405364020328293136429158821639614506937954640523201771785385497564647620226033239231741736671016228853216394035512502474104817837239264135612399760600601074620107385166778772509517797626336066203792871233699754209540223392730601316094436515574884639951577514059470512478387517603793517059138819328056397759625658247024831360752989307965195364450003112941949688555506064177254141171858283436240320670526782525056967229268977028815581429560423512112009526583908003430300345235783386257491815734797338198284824918679284778807901370033254747858895441709997938876687905096221617435722956940687311838661774587665351782203012281871759242057566429844137886421972072130730220973268595756249588863804425683645600773729601765357588322963317790448539907386428061787467332326431234662782832128487644947974959323492980636814996284044039992843632600638740436507188532368304399839437661000271508416572773724865494020968096228582585189032446062216994823056013823332927743488516532551181372982142930623568334693351158920298310635044508940531176359314374943772332173298811260642822301004583806885217142166066153080033274731101594241912601885414246608114699377263645628331343482760129685551784037940029310402702849560582351153470308428622509205334307643298803719524401841948455584398657062965278286929285589039030428998740270430024840837679331585366345152361454016474640656718362972240440396884249893986621957950469222954957983185389860243729305548875634028885855770053275429480312332624908723835515685664314352046645118816792020319749822981389021271325598258576351995747341607723181685073401861220546279975786338422043218054826578216336599773025005371294692847718659478779878321035497867613619318679255049715744537572665976379373150248997356898323069096446519128168068223807211024070051155662166014501262516786809101983172120893872288726280770298810063122519187772163901630611347529955505633607618087223858828113507014178783768805421238801230645508370791674223859924098106529542723325744448311865383442660164982756854041558051345582056803992109471143801695756845015042924121025631626909053893421069901137090654138107389737965254722324623444029220018439337800868078070402377541785283883502250292044060894027969687638779143891891216459114206828281430596083215499155093868086042135240733196199865146430707503254011579766058494620386324055859529661167478024136803825864653174202493783102751223785170893103751446495584450978439760558616158765004955772801669197297227741659344559841277310305978547917777299187444087310505451167269123873047458802152628159174434292331616360662614886248372715567890052477927982172791043811163016522163321505226277444944562524382822243159516747457849990346782305049607194409713175353197813193785401130740014898067858395729748927874030237253493167655613248726115926310803476659314648948753734026332477701885401027253046676226711589519669097438848702680620908048430740603252244443796950222082561418264606973259074769286898528026582307357372507935017180455486363396157535164501262584461159499075066650030343624177663397790432206351053773546420092538063766841439989074751749619570189415982254845530667903709593957454101469531758696388402724033224501013261377535090098628679748019371414420887395953542613208040648184424055593940699415122082047403248554785061736156659964610046230457502156914719705515270461875633731284379459965094162383879273948726254322497770290658716757242438396101615899710812609758253187712046842237295262881365705282520126721651408318723296277436347620576511695106924798250559811446495207357212990678678657550773084735002485423023437009499198744116689048757371521433044591510205453996912641095787003232338599566373101759284589596414985017331928064446877816582386693968184577942959306889272303151476148109829992263522063083667360330458072499188036485232758223029728450578299346226530051666550160547187731200885766783845815343440506432510565271802638198161747029493381901970637466828896743504332253493496541183028440449798673381192050760357283506265444172157749730712576084360894662356352075651281859945748051641510341393445474090429292453285154874708623384179668539647155335731722135804468120337413982385216950323050211305371259376196505201389601649898685136701783969487950766439871812691787987045253123768027039495458081322500561629428353233768133515983999560917774683744758108489909803663175191540711991609794069262419291609038367177467958254522172781769453085405042239792002115143138407796817797535461090502812835394433025493680355325201991799168536565864151309325502145135850502248407659093160010578645043400405123529655141232462108998378385045413714330478726068021090683428249798864472860757377287256473716566838705963232508645863955124181607926467598206108574394166817392072731099821576457255353816615353729871000895765543785918466925987582603874896371148790466039384795050193238705072982558645521702756074035518879848872636824034671880123197164717932428321526924557124583170228520866591728973845166715892544463644376804533513100391921276107798242690528688149586086370088606287235668110482504944569712321304537639273906404095550732255098762305510363303621159281123762210261666866799557914944251725850088459448182183682654168673138312450545243979762248959132355528693150043018396541944284666189526529117339123762377382939064827523538236065381281980248351452602680208588723121080896820383546326463142969682821357595436859130628634146696873046507504564576568963464099546161782599402217605235936912800430897625445209258693986911195794887055901434222310212218025394527236211892119056935313179055962081338199724506367810413647012186407034720770743847477738044816164761615418456810302741715226629184775617826875509443903267489870033909420843334380178439452711618231679205800070228192410132456974772360630263376871415330699272729128442968753308150610784717078920175431603249828907395164670645985563227080658236237578284778870581942335104784987113050256019554289230111943702961892532317282231356931129192173045327082175666799625740985434269110039846005744693043299564289636339447332098440616531005674478790644101180843392887547679228967323075918096016662948211122535665011565538701400620143457062048603202431371756171513400159001837343346000293667769595465272284974385964786367335649981545918036094214328308762219657200671273499047630691722210441157137423837348687840360879704136996514152696053987691585524053825079645932718586164684870760360088050861785566338598258588753139205020575500496635406062009105672183010696549134669504925592300213399993778351680090251243168487362846865197500207178190231335231045085370475766228416656824483485092526108326777663727190160664093739750739632015501907878941104719631984681531361120184626063361780829896722003951558641680642162913688094760665514562430269334022808763667477100230700475337507811474837676991281609797420393145702264290077343520008573146620186739345168280793385836697508277420373877401574647461529085096269249169228275236350603519484655451048787819355863290716180069950399184395695827026175788163454991106973473493474948789201852159508680927867058533613904328917833860838239273701340435728379571697735753959798648101177707517779658645944183214022513404592919228484783076522012843671363984718985244590162935117838844597386500546410658616186430879597389928826846257870127654287842010313412604788360476097537582655598825644055989727205813444409472213890219637285144138897444911235586973997365751523170341841494802897119429783808479076917046590194578213839452117413689321432974365576413043008442893955458751271808635333601164377794154668508741233878607437034583098587673540410125777749455278456689027762164950187124672068745424273233952422774618757481865984230608252756304793485445379889556056261620876472446499410478364150111744520814014328071199621365546114961396475617814255560013000927983554534805704133191573241369189374094908820367297270567375257324970624764971144217326770950063355830185694318199201840899998155155318768611629787439126171224566137585820306609889451866198834808123043390796045385502853492657602379234799380734719633699629918049128011565826444891946214973988887566305131911681526645388928658396005802028516441357903204830040985994975000127993539672209036345445258943214296906383292607774218491309398790739635217157324208816565098495463117090450345171873534714009876522485627891882926710207401678859673529671335984680629970107959524260113764081262780839951762877255683059373321739503242788908211521897234712078484001590593935990150356208817661109830664937005002601428175478864535393387761069115352076194811665893812694326251567098176790222469260193880864310586827310856148569269850671654520986012408102504188272584498866171121846061585057588851150956683199456626637274853529187808070461726777503850210502634070261928194155113261655342909716677947099613930120579481812493461260911993244148831943586083551970504935454279928431126218987077506893796440930790491454701920093838745661591602060754024491776040244188235303477316052636232225520721446283554284493641722085130102088205193775679403759504169964949905708181447361243203587308774716548590520197797903524219177382684199974551095849839038122398924344302314815320033414273124832654226694638267202131290926533543911851615996398842574793329971155605893784204305644927124777438158771362305375699436327490158078291512144709761016590254784246604232267935506160216468375845183296727555048454358668785537539905976496578041549143761594036233808006736280096868920021892368279287947062053820353952064638924828955897104529777167489703642223349858689589230788279443370943988870637155486907566190734521187833640598068094713513423614507989614687295985453747933604875934393414591508797113208488742994066653668741590696641955182039198721875652120748726925369210473285309052427013892138017102233780545311367927454017913389721281721660304124965055977803885240253827854381458547063526463199466482781016304131059034734657884008219734426385541632020756196744337680173614852968750818734498664406578462513270323799381842071888422843777213266286390611827225062910795844378507213432583455629662212158601761097566943700892229037935421202936259101941304039396400404748006623864461106506131118172914384566879403448991222453903774845132136613545079401583883464578636526273096084678650948543200542694911096293271296783732142366254724007061388920129620322587111391800711525299347120478489544593985810231677645931383806429026763272832311305025040318924884743418565221062441829351466513823475631243189587992628065244146311821275883137811888449372875985634328045954835606578918162500342426111056931470276208462105782144773347066153710386985017202843750520486356355211067889066512165376280717463527522893616688013610870949518923138650253023391216474884427766611926594418800837452320570961832095346771863904323233199386004119607283105470227687967967110013462281785947586925319900757397169923872664602946904981612792078808814638216353571528532169027297612767552374230561137573488027857233359297058774967777202963570772887815031343257984021398341068367356349056891019799099410747819017529393812926322413685402370757150547860245373811482735824070023888283723968982487406569554401490613975466079173721509404231333919223584140190006949275036371535226603579338387393647121727921668887125431818421519378247292528349276452374752306382905402928213205327662433159735614510509042171177902829741192407039780011923320356090465216068164228627304349974101210117888056337322153164637585953348619448387467665495835738652709310555821503038158090790461622124446490233262682077859408797027127183654872386601022134474588644325507204281895476022894717235292519782145251356112956346387273334983162681155540584576476116665575723351962127442167164107804051657234296217121812579123550156274591054222565442986390497845948911300556318491034903376636945304613134413689234720849213574054211776101933751674373250195137367782839152590942994917960958206371506896691235745067131786762266752535740468196903953681539228728381657230643508603475776402993705424523647628937818618796882274017686862202694826855111709908241608469546718047289009503953301444788499385899084901246508843467352245690931464087340026215004002931570420451357373642102266907019985272942554804101814140240987920963630592112458030243430762706569839920183643988686649844838031832759764239694578928320534356518614045787465042568032181932330891936363382633116956174281723309823676099567073387436109635131341404147007958591743362344835005096060441052670315608657631564963175192535761311641522058516144552917277724726639447087875669673278014458804813187744003644392687078428639336534485025780235657854491788723716256876473085168410661917065255004378759860099023898940922885176503706971734820630954356839713201468994690680437545734870976476153709443050541870719345675464091501749412626182180704874189137905995656649347468317696529679814079711085483936281213844499760739507152546862058439216999099079481930959395435052607505069953143395913280895961700398407288059766030446884700595269979405345961192114387716356737698756956511627877971272753915514653660983782714106816259374446784072855283642717642855847684483502785592121794198061920016775299386446844130148929994871671749158139490219183542376118211337371206386551182404821662467711716816307940062500061446646530948664992909654142002951533123226848363038602777925657102274838072012371083780546671346225466368750166002596965380628131684058150801229367367034387140455663192743792169421212775343203705203575203246269667797340799140489702128631783886141434525521063598141005869821726066261475403567458217248010053683984640397385819855823980178412651641198528034596253736300901831620529768920135414418842512269424692331779578141978516807446459790025137687852480191074646322156743261004971030875163138471411531934335252115807425689037682863744634060382971655252955037228528149533732561379285513268317597166931938188293414868342154212180133616442330435179917091242409222838047483804080014592875159622600330167509153178889457060854054762782667062868888998173682063723809398056434666640882051489160479728670637760764667214995264278261619245868218170794964333905080659459320118909887107552842958235908031328436113754292684238311084624169862804503901010838476334674720019743351594453263223444917771459483662116620858482165176200408169828336084057034788047668417722102874122485744847518210626267746447850273758379129504279648432033451367596276288964382178380390656725352340205822365742403454706366243829219314531384693718034780880426735294543764042638973834655054796140776656448383351909515189669021616580721344343324425587305500556832631351384201112962261130361319261192648277499927027830546292852808496968045404397808689616154925213032838962708724445877837033416142826398135828025712392504470165227928454493135530205480451675698194751865861444961514638007593935867245901022146363244703111560412649324640073671188229797396451930000261858525933165955175593365969733457561670440580016295878523306744509349276096735186097858252072379975883775271975312935699726420404008728787309730285547048943604656876896503058165997847646137961578179303429093985690419508761234780202742595374154454738760127825636049090196972831763333928091126037005964810152918793669937937348492777616324742613997688837569360312338228441671148471394944975659136833885986569789304951179791083778240420243617494903197978205499159094789032347767278937275741169673622601270479348998949282762408335424246483940673225505262408943495956924264722810727066510376889479123170565148280096212743539125956494137365286825130543642432672893173663635273033943290417640273637754778335238085852139547932933037074404309366267635618479048313214263604596753228128326949877310967333867593763926262943233967669583837966735135830209207461681828651691140646224659438027662654365064078894542518732648822694204559577762159949850630777924408406887281892017801747852077850707567874772921855609723458394455588086319219840738910579702339270762218869483787687121625023227512692314323122558223404614859306513060263362019207423804030749966165542848769146297560665019941682185080496229874395786688467561939650948694989411979945222752087989509257608197543824295503881306491689119108365244799026365891264286315488718100086426688619023408696511624858069769870270971003567042012514131504029201253518735006080402982886958013693775800382933356396327947115040611811432514929375405163828004575076496838864615794841559815919502773990540994210015687624751953467053174363894129963770915448367313522575207798717009163406957778205386136756586496331172149279396517215391020515190756002254104459103942818559832986517383286746675383638685066198480125945222352941556270906764367731840322741683854161361750951639162160002251446357297094244664898267152287577401904597630691959312453380928544565516777000280419027656695975772513685279083129445177000733464514159816755149989590768832693887147121079341058977904420687355491518678720537618224353425508532143621783358927186185894088240562134960033448022998285220204831756229042517429743704127327480172906472074940650692921683715009538311455541701587312994334125173821252431059013734608289698423251140272062935387304386903943810372081131456861570385741548318673706368540378951815452056265515826350375961276568460669421130547475029269779835962699486074772883580232954434359903072856211898654589175339579499580744100718456408702253463820823913197882286980184154290460091293630512412681177748156748562054490796104817942555718394001417175303813795939749766620868645908879377396771408277066609291104074494542233529024156423600402301453533050046357692682102868130630639032252519558841286414980818741408188758032547550603788337553687092653179922537601014175236536746646719586686264911319755509701247882665313429520294180051232874318329374794706063788105652220103974945445222941267241704014396786746137550079036280126881743366696289680700576046755987817324029501123441309540057008545781024366340666580600260870230402042574040815493635576685651284904746778670666611591252963341962518320465319791165960920704490508497971083618092906841001129210970149370326282379355061360301963400561571652436060889746236467923495011825449414468476689595908882150546232591863722020964070501058807812057843182876813022076957635304422715589635867102291072994206940750774511448064240671857640615805176253825278310781978857793952798710239817856284498166690279021870989987356693536298718914356451511760604551552431902135982602499929771468568664318411978045591777096197800644461405956321518661062556259601658297636266937435124807442582466534608665126861117494196195684646314965935223412025070647001857852991848771134437175250364987761690038931796096280395886300899412138931752217516967092679182087491394124465416176003149906122901136084040487168614170796098418830428382772608028477796459309810081072475089400452163672365067038898091310323798051428252324160907725858143953640577756803768739611732731978495460626057855145760283772937755707313037661264286390412897734394034447738966608808987233911974883434217160243538250227972439087836545743522322747536565286519069403400703351206011539173242991891605461301528936788963379071019607005552356505350330587250702635121242085917507557888120806334945919894029469232293110430675117140278425583436786791292948062569420539203621110174794692320370505952445077090722397669955293111528628646670788501376258621709902872803950739011349615293348919415804345624179298429383291534590278243870037764787195069044868149886924166415613082055399832975626687491937714138967227323865608663129366106499739401591531073857287064403212578874260508340876529063919358951725972982315275387307570606021855443707082266336902298420320296712722086187009747803480490082791660442379537973934810252009878446133420832556850074458504806037469381158368952941771652128832256399855066324398371750947200699255545431846981609410105162903648714848565109464246652994145340574747704988662901565183034255981637964384439538839748992672638458747787988930815795204826138474949335993389466288867968639953453506952195628853327791868940364840419033029463055392015680119453565742421527859143323695671299498056952766657494498874788341171851138001519020831509397413258192897408384712191306791712699849491953454836005519606705111034449507821853534020392836980172288355157191986259803586854937607613291845198821593086165338161597867266677143374223063144631200517583390673749380295942506414386093275943702660672513519165306624202006221284163005863461051431211323247236821203257215417048337208649372986985021656025384031316954123016786080789018531440592917059793942399008555990327929519841171652116125820671673709438525584174801637548601562702977170547457421930560705757983572217819621942633925194682737521832429937682306483902603492268194335932688493503406464159793085346264310057760064204139797336686808355481193025202030836035220261913574547570740138158736362313298636655646633481065799879711252414814709691416943023250769869722061080855522410439709593840126817793325969107847719689668752435952946993405803208133659002408841493151933085163259777751450405314791655649573767603847842169837138708489354573352257915303982887760396500273883260035832695283301623209464626774111046981450695480278363653605567680697941200778736091018478123251764885546349833250361135836988948098198118736139636952864494074045201013380701999716591740067523934722826483911179174512935128918544106649634368073766184246820419569617834664006899158841772871211235803501729432346868627268146149840202039054128837654082655379782714990353921498102000505604210581986004794803796374716586294763687764931337518910843299348576980633066873689837021205543055207925776985448119746176459653113385771818618052849438259313191396025691136522694795179823672430545384316825044880130030485904574542774717130884961448213296254756114146009388882244224733026492537290718252275493093769779188429616676115799303674935799316371312638218046856873948814175597316084411029763409242143283929211567451961776930621880818188336429767653931468251721355678566285627353491614831484026120307810820951723921363589805067222299486655604311462100488672437358594723669833868998213747554753880024307213639918355908998041507180474752469305746258208182059534660322285049261127402687527938663126966656206915153673701613896019547432486792651791309660054370880870192471737786931655319134269863217064544026949114029379668318227479032404061737535618649058339366331169392800676173995819366058618602841114940538772199404378286277089385530661571569572139692078566789332244887437972394314394574066612681164424666413449003344869409533000767577835970957068220686778497032750055032176876877132377484480402795954141446585356539400642823405217288400606616028481387753842727129309952943272666456865792428167249786897474527660368237119046449535114117798569323243142985226412595663209281564040401513832999348043368029138626626527134569166594767291297295666889677217224067313355908783536328536157344939949247769562560509558205031080714025657727530778860612671838333294542813731660090554990296859008685997979096734002431202689715346795860271211967910472461059096461886437458115490192100530897668915494657090658130292915661474893997008232750313468448873667434122957489948743008721716427608637369166662536826997017948774382647260048270131892723078876726098848046129673628230010121649588523089004060521124903071822462522622678480854598687048089059774306310845851806661329213282836030262448879021478593612295209775285193893088067382165148449444571265137164223480838094814383979222019688545972613850746784995752090059548530220970128995636387900400360656336352473577813200578278288625115989727960137882295129714484477056196729793069750498779100732282952899186604347234167695753184591950179332859091191833827558180027928704079265921682913015689445774204671487161075854667341679664858044460042895353575131911133560982303007453878334811750564205116468707211509731318496880033428883602084429827690295710013385163059523303324908020061935605813322418435786169613196908559914299840458670444334828329287048533436549181785339295705262453386228858649250421050664368355184512766868257680086859664149551604171141594873669302178604032455422069881001920445151855714845730580449790175088158422593403662340823800103037377510155518391077152392914758207053698427136359264747150723643896724535914226317769157929778990986232174991843280663189894456390127641864737249963033346942819981232982316830838106082030860035583986316280801884080696461249037686636973198045097971606735294210425188371405621135299446957810037680516743980501510714060883628424593892086116174992659747193999440542372619724537387446123346856457071590862192109941676357593580254125225180701717260973163018609301039123736205083097885957702956971155044399603744705223602223869176765595288550731664155688892865388167375826730266676076879021503705769834861658539842872497526918091086698174657544487647483315746285347420501888794274689119386648073480207827825883378959109015422263646158225219301051997795134118760596193758870186338319777176978234364641645279635909604342520575799225252467610140806675413110297448782852967844103240701357852366361584003725429483924685418520359106418323536491226490595637553702039828363681782799439559009556908025074488169283350644785317100588888268611488371316525090791369691583226641764737986306669896929917882069766089837736709151325868809994125478316400046628740710161854741093567029709204309700948343351886377782720823992321782865121288097459318281793232031062187186945320233151788012391466133118631443388503879708709416602752019179856387319962927038131936598019414442900150789572384713343472027933526779911397676634394398873662812855967554798692454345547411144217566001770596262715500214115737112071908308574172185152638478049182153318050656325481091345583981033823566775741679204975408616913751233410747017771438791974103396358121379910855252963368204978178154480021404296368650843929996624370820357832888909532335899635175312763655448282941408266982784303803922668500611885949125275575280350364960465458087471635786267657910653172998517384463488543120744750068714408059708433691474431083765992965204414101511882451765850460228413239828376794233728797242893876147071653705671817246164313758352327785993153325774001695632132940996272276506113177466827281021324470252642345208426039737556852462066683071168164363931448283193081476434792117107612836940651791757316794956817848286786816758906157185092637625474343004970150843456182745764996934052615907848508762663318218680072632832089885152830848548182011475888165043518413515347552439455578764118289782117898401046580406965168044340699695059150859211692977643176189049653369788340421073147655530761868310075172353923633424633614573425452419212414819299389848296369787464131730192147197116822924859136140429932646259282772225138610960520119111365412453555573329548951830734257335083629190377706448135178977037657648897563840969276597061877141668114081608665385398823655618323939277854305823283430282773065694578207203323360248574193100478382314388530483487564980718973860575231098837057725765698549512166647338343461909102934667114404452030043680518574292167640264879658058576592151480902889177730228747080999952438568427530907736242208921300440955562788759583343289216612038650346767354898192587771963371081539745461082668704462893687545352544066165750765406692736323402415768541477798319017225573976271271296699817303397934702188645188591440775687652608074718825198406907120006263684188283105106840332481969847666718135330572014939789175467914282696030556953196558764597661559671626948740461467536396106278998755655115723972394936798334321484338454169332489656449411910943827529815714228499591043684335658002589591078618437579227969840323976476875756430704676367715007107190906024356968857229065912083099947537494100665741463767268604064331698056786057044064039892481749424877216928139287981565334879097404996669140780982846785336174121218082576382635659197239108534223154901958319720184095781577727578161825208715524247049430751511002023079054482666141312383001362435894919447295000886318709271192542063269137948147341077709868167793083945631170618314986343071256532186820137558683453938758988965107381321773961280572500873552066402980535219324764170972106822023180003669102419677587650173061852122404956143434287485438494782899267831113999684867612246842248279397669955753838102745426316170460306526620303168293657668944820657775385850749424814992525475484033655629012463758342610400509618415585269839620575267330454732662687641926457127555522206234483175333511823739578584027452188125877935926818599763934020124808450699121663044852156694858717195112818710473252740750217389603175604470856488488623154338140506049944606307730566492177907134916756847992078117672189750835108713981217773550972556903058821861019066633428310964985702583689146784599913176442172827161941069093437987703173841475207720138775742879702405890588484825469577754659709846980303060168292850826180796770544698707357854161819724424561483455090408296185131141656401048473944368341341120091543880134902007146625554611938674202185931976337288870122582216885920875411148403767831525373106151959605307998429429416896100295479308497510448659883835360236466426583317755905622872058274740226700722305714315316553992991039476744215717018672321255406359357569418181832680735134493294037461270429655661160399683099930573895217663483812236865584870153119140109739830652594220950398075441254545984307285699415238222832565490487520235751273885684008758234890991640350523621489722780402284356704756718047747485139751914546734863000856724965031987788733726272087803603823924810725246338328637319220115033305003182188171079602702082524829386454223394844922841153290695854292997743377231584863179912663141416685971323934392996685873525774876131853826763255932027691091369142112993649275589962810755639887169734364003961545350780517785201789604865385011358989327158783711273366194501943945117979021537735420748913456094790077591371679403782752802911314510352922820593017511543494315320178276140773492311638546555465840882090608913805239046262243798884301365777014929021206416370519895067182250466189510254933519169315821555412908741259641945185411520119155199329959316351848099415783093356849920764036026141132835970476149128770681950944483409018652887970989066120032638562869203785029094250816211520450879889891523412234228726097889611343972038230294096818355468321237882974456676472071861359571400008338837532671729151663289240452790125675361212339049194674583945710221280577343596842069644207473873893459365368806190607310768012125076846491760376393209353338586804236775027523641350016582130297319882675807360991496763610044796807281219737409215255654829814584311814889935717902991947178984959607183476933430597500789490151643131195538110950495598877617822636280852531140147303149099924034971917648624197690579397230715851265822627429577757391086957987399125671511226870858920940578116062753868027354180549134270111222504877929885853784749970505998858093944678301106377561671117168839596068258286943986814821728253322576461359036643663149022846073686974471317768868526532556950505419290176207945244792655467021276858430961938476049325092939925329824249289044009313011186698605372895972742220033891334709140531233607443145362800044114860144169736209735765312843435853609458875695153233141822032996339727970480405710780276504622917312650520508004655870641767378220793082205445877075182860064843916471092444819838062580675727670126376705620877409978900694889283205806878712508958982232369698926312275009363607289444635417649024647342373246722939430477277957865799220483473912280251388879813059988648318783846595387847022515014404177159367024758716929966043783371541719777902848107572443753307282538540060869570769142084940348721523226038697440570489312601546701592498465636076050165085824092762278820835302523687637567180757886722866502951395037397726973610024921893172886136940820619283354344303549567562080710009681680512135243711113836993290074048377055071561849044168677548236648370808176638940344488186674704261776395765894727022633743179663535806444400526656757975199284731833323768999544710296857439550088398235112643669290189236976732355232786708697705825571018795546138757691383496597257385312771878428744433051783777018699084413838739296688795565191027119809462191831249824493080224560172770797338698413447842277798290815737937815929249934722523316669568462080833103050910057853496842910062371913190611780656215390314269556861701218391053403661334316971459215197289568617142667396896771255551265613479684731629464941059250272976297071390751721236871231369641323952428589955665531154686834402309297372196021818225192562965832190293479870778413411611899014012405739424342731180685786911258150444078586436018971119696794542050384817184531127223447450610982805509470435926560216891347399188073793295722086327751709887253502272196138622984539055083834493479861871195999718184734342338469708148758427505977377757516804768964240781237551036719600267086424945036323650164429657634672724078251142460264857572755924804559272609540508856677139250549197730796989728073509046695456581550338337171169959894628440800388255575350800684756069660950072146704849976369304851237532917381827422753678626726995836673823104200682338246576332463548891662246080269208378803239930241945254816413483899470100502916582663012808741156197687121757839401483372305703061340961360301905312499081772564160375871742977607619892103218030454920292952081228041514846490067465713953882968044075496021875226406496403573188432991185711964322819856547121254766432457818393621779942341580292510050031248553909623270756469115596976997564731820453858684345744473540478086947889285533924694014263600434179621794489935905826654355999137241357710528138844296574067845652297510187371241433712939841241122413415058571481239864099376852510022779344675897978821486616892558855818274459400726775188013426315716446048178710262025703830198568830796390622388641870057908044847767504436553242891307734706002588285274265702152785549229150897961701554728534201609447166893817217714227774667174075297475905630381772750936861061506824372614482834864669524815517584769353948746758479006589783694608413773377960320042391204332837051008146092366873100488124101815926866121677327443260898475925137468449228821178477530756388793993600591728122050166036041668612740867290441703219519852238214315094881849294844326824619662999872722824881129111479763878315263898780264448391791982558582433396894652697257103700587464150447817411578254181713222844155581501859522763492766857442036692578128784129745877274702089933333431553468906699177624265294294684915329472012014479049965904874538209105444295141212768347115167770758069389293807365661399935577348294627170322726418227819504425455007153194821866709157107324755500902448777015175428084352377804659271368498455879582830023333717791656834302815805254444219197797801900305887636357701403994040173011664324215683778129773230766144891527398975686900237029637901042502793614507749994112785401249348907145214565817101691809556890833734576723261183225882148313807003717956047032101954693020942838069075623893939355797585802112762295848395353547941720068689910267976557555741154427129241908555590577216045878141095600677196441661539396767777813475724130000499750913211396535607647229408264458122862699339594157035650078539783514222149241941160754737401975129993802274118413390725924798446461481435857785053898955584664396125166269488629278044317494965075272624712995756996307929521428980520247778972177614638090446573055236456031726277229618980903499735284812569410266572835117125581174483895324585558053732331196977706214227293376236745891406129621171565087852480561276734386800484107569655628797442338337022149118776777521671999057496587345020072401688324083808386227087314733743249437738028220838414073905678845299978715360743221823940214610826271915250934026304875021201220054581664768755161168542407966210418718106817730287160556751012079626954205990695670169150768770827832522871588748435305421130201654832903120697078217101093253328064452084264710706843496354709893105747118354429963183785984865735725056911438999595112064809219285663178076632601175750222014322892221276488263737240002484788347026797936436755893031974027633101508380376249544490282374108825757165796940291209802188992574167104761502698222325861268509074126214218887273396967878688211845648375626240070898336496582689094395653173554158707342267492693905822630305557608286348192189838430875768594224683726956734220491850300993669256534468814174664862103060020094251627479759552202596476975385196093959943461133876523288258039852585649236148885415249628112977342440235589521744949090502040537716902462103939962644615190194100499639472469620320815586302170483706963361948274948146279345107329448734536569937116136961486935658728404856923842404415836659803467586077272194232795394081950409972450021032040069984175546364612636987203170957822978917002917922792420876194600117662372512617253510101897582219319366950535489400643080318737302661261937207495373936443065662052757075183576954518763447296891200595236185575071822570371040927522809928025209282457106681783299008882400343672945482964399164145909926865212923194941884403612602689384328710903689967124905446484742674316510288647461943454093278056299876282606193911947786343240858086966064102958469532953768630284091154981061719832022538101377679754083540200130673905705851384630855425023945851255761689772409513005265979710584081558488082626948202761404136372209952748878981546904134168641034845741514387760374782071914991657361899545927351018589210875247876934643462974665298803241975835102241768452877003933006710385476130774281916604010462839693037390209862883967094917634783682197559798235840096478044929634345729893800292443983703022861730554790484527144063115366701182843953227805032466388958480626389269695398167247303667108563252938675609147662181758749140938332507359370402297541563274390528641742533831278039832255694729662932867482372905788675583138894462087991480313376314000560315552554038247788097600090636488246185876815211147597931911377793478411126500066447515971041956137690717582242046818743474307410176977361734541768458681402905387953436541997433922702114548029107940319036148693062464018606617828518656261780368389413868785820936867525278433997991621435703771825565626407782406638963105936312867128102718157921933571947812063902391844101007161629421191011393909738658222042218699112238693097325848553520403575855330927862138227415687168196995338510458191651090812707188865567069572994107503472615153918627860583012200088273349860417207452507928474490361684067508285474118663384182728418245966543739604219976979220692455335683969789062254793284892317655023765997235141410145158168376727874469839842128830946052087528988974710111382541885868234468583147226855465457437037733209494645643060566212662468344014191323296280691402379138476092318408110225887207759959710713296380848937665532075285318820759131992280420657922285904964872415720491362685144519379853798404186528433657108837699380585443672580577947902293099531835733004373063270058773089228810672175813488034866562377984108277312176721472651332201516719798697274303177531529762656496871842906305875615717961638836151346761626785326816214282401479466380324531480108380388060227539944225398786110385016365135668240888578218885535941822535655645780598036524543088083066273437904348017373247071650247131150535999813722886652520443810040204276059356927411892739937717098401587231516475775687006031991328427632453702313078805388412255384588869061945865188568424210794147419527901073501241940010876361356269987126858365810758632455775396439102232104810132794097322970011853755261507892002667768138819045147524142468751665297152485494411758961900598326374140600918103358004419234014650508370621186585985278066904554745760704333426098179621750871225377954357868430207481477540965262296992172943028020036125719394900254387195412088491602538369200717148873161015903968719502499985352575058402177109931612690416058968107990492727861967309191548034285235439569857115374326655386549722129174397757312853302666375826710758957211499641614040253739277482527411345227787269626869736923554919276199096966290404391265404966057063858201230206372387072866805925040703092590069610152388819071627207591152064348783025003537585530097579250459820978228524755173225671363829601655542624636457022047923194187722444692197362243180843362188427151327476541131758278202475620125503206828375134809500534469791102602743927908821599615546262832105719362898196501411739658071799793595208489075867934772494858379977776257356312535177297115194530501562754424048757447498614312341260903190204146370442844087350788084110097956889587245820147063150182945491724804180459735796685258605144229800621787125257312418384835863949627780948659907617033512678059698887159212334465452997873834956110823965369542855007734991635032222677496969532905536715020383685708716902505509494920341735180304747080102428610994296819697842079018682156264746963278625594959529323222690916258700723258569843632270210588611516374709834622116153604764365539627912247494613728299738074024387979231400148264425160886455483664140844294975370148194402475657973326489230293692599342497734990183360834845885189469146828699683396222056087240261554785260988847529436965753289107448853677587874636533385014890767174968803472953231979051737818240174297117700848281389883956022736653499774192002434598966361876415491635200359427757680909605858305952589469782720277810366667222955989725606702449962722451115674752480429852607587370465034026758344148727795740054307212678083145487863756075921450972395082983838977294628181624022607857987885145427421998708605634617342630634284354511477060919428656778176428759619706030450323538290998587374940527350970711420358052100977766066681088167349105010389560495238221189109937402867998130561638867539777084202869432047609940307611719508430699777369389304389132212242340611982825372617972948712385817032192207729352674111604184893567894013912901645210986247969351403966942349021543136112001769480013198626957282321484647657700017676550266977676722609301932661712436580270010593578378047255390677659726662195495154016041013201664099456046634475760888093797735942237417343826062746048269289901149741936029035569958607875271185374325783688651284815296473268334218646470201572793182363761365658501092324492259549479023126665357566869880885698054476634600899255005720843374055070013513003003325755100251534687857652553954161631205697435399685952988920077892353724049739540852769330079068675313688488340540402518659618104019505369907497398482148247054757738910676801167442184937439196375376702803815457019227007054040823890075804010442524264921304219885521577006235956747847459478208677733298054107196182300237087472982556753735546732386230177465206977204800647490220674439062596256424388407790073183551103893297115290276267169617419226525550901720919805179409706516324038277839203013020842959653345069114189113692513234854633888240321345760947218103793742418981171619705531781456152576237497190181893578640005855435528780156514938503316014932956945617958406305248354613227467918513103983614015132036134600889299373968985368480884415330569420196894468839454525548957742185377001247133761181032001785776798762283160173219351808790124580843114340567231858439130063595377943710809921031749383823717275887912536625101849919181761689256404614170103326121414497330578408807091191006556739597823922247244736437703146376523372235248428866137168270240085493657204191615113336407407483530347951310755204574866080361493287949911855534729420308625924598057745347364853884607171909697308069926113179178281881424187051108616569991094381732796035896942487815020134282185702284554992645629688639951797474767686677380368974012939709480786854710965485709232223515798189907073325970775817072403423235214105400404370530571189430115402170159843581706576340109899750909551248796332335242103273405091784665042155123415003167845428034821839642224643928288821215836307500661050222958938642917086700558007547363821550956057907014412893216247026649782228064875849830891754443090314281018475449951317647965243563324994654916816078254797334761813363917492557631135877007372153558032754635063336293661824095439147805020194488825319491304283629127400305821619884792630133255451617746849087200542914439926461682546474818557964788514486262985204632571015755060395069026446052123397187804973985926139362017234775559520414244940956172626233469870831711794908143576665825499270835980611130475317922499683991067079881539060848542196993749959615446599159673280755579020113401882551102153518295200014595928569700959545674048075236866586653409277528627694855697054414036106944743375938550101357162887386204376054181589999615190522238191545611272198369145848217006208583405265396111425097398935286610975120335307067785154640715638762471066405021217851010819217407216581338926076628038440379716582589094385127880372866992721576202237296649114514451323304822279132689015897024194088323506087014580990282050107841226439658965936774507356513894579788801118041811071888234117205371322358154777393831330218911698862244418329584254486406577044746152333138902566886984031123905647974870571628572788872506239634454093375510492674556293676879599407172895779616860254732604761310605737636688671779846164420418635811846834254068603317504959431384722599459826340876674047342006585124760454375304175099676896841729528084778405589523340596582974615868713952990830883535082707727570156921134700680488658671183172963142008418034248629664408501683768526385749978171934985060026457959822955811741516777620024217716954656907431947185540242127276758423361361524170612537832621768286653511658042811179696932828648428204867498139107250371445292723042549302270057093198463013255788520278715004325064636261311731159124074037959659932582484951834057757801532401838221449108436247754631911295660597517259570099368190098618274121800938153306454575491203856196817243934216794060435804311991630182434233723599491155447037692359488738955723445820038755490804714048350855926863696227776376972212601130176335784897273026649750810571562859271667890111194034239565078700679247277632352866255211676706823724347535729513365423992711716755484353102189734917823677643938180781488043064464522013880058592242540467868847173623895774238132902278158914190323694202220770920944133666490072471161171296970367731663957359587341769032925958350281067981474537548440206379640138662539275463209013505767199012551524943309081946105791812319458002576304862864723071346561722799707464321945990923461588384280938801263874722682339646561512924402515982410110325407919234663445827943074473071784990412188762081627531946537399195521634807263039449407091852264942379227603120280433354659313636271261025271519860117648904500122994074078852958020532131026897780900552432231205145129616771250581184944633135479782012855646474601969115084944274363145297276394964361872406610542020345394223435971308975400401144527883266430737253521704025520709271926081352847645171544846078258407720599482097652823989683718607766035778889940249260268306011185008649854691514532753284461666993740454887310560493410095197415034518157321386988809882685293721162957655870473413843535559532815938533996095324115703243012511621731286853170093097675464955464142881416439963742934512996349303786105693054667710920252638852100110805908477782924176994031727310007133315088250467216882903321374707226821326961352949217424960588095841422100846414832870907616110539188574952352978985158488744899623043252201103767434972267309076405595373539774103143971757946323445899645844886241751808341100684339697714692020644067705363028227502701675364438545994538482255735030489716896169582514353554450142201493476388305319038367005538447357782203160611566538925428919702515717360589132503793686127965203147063366966590572854694485855114206500520893495357285255316730836165369079232406345834971376904799695659374970806109787691939000047356674572290915743068600291663492274196966616618529609335985505767777829051304535003554729821222266492591973599865405311480466978311494895868134213332596041841880629029994664737085735316606481486568709112553465303638639686880491584911676785707750347561898655544812784854144066359173543179634111115420636209935758634554339470338775114592736189173367571959804478500749366101675126655561250516580196426223439955083635203496544369449248397641610800362068450941240631101344999107449384907910157739866386387801481588565654038889661887315604520223473202556588887595191008960956192467572515979208536076812239826356671328520390727341689283268230390908222577140865260276682462753207143859526219183565559605322505782233078878533249884940050647039193760832406608193031901683135796824113457239528297400203758493654419652587948146994987485561885944346777291318743748853710696284689929443007805492243852883861111190772718395820039575450714274900387008393128076008729207092555688355028156203475190918312224460853574919085848227901299412460973700498221056237087290309841085059084034426394782146848955765887440535960914727404410094881477019245728060981352698744747995197685946591730528265732837623775001428602064904456828338775523628709356882979383034138006294834973705784496568808093381349176579507168455501245774100105315699740049203473688955076521368665301688918424230934274168704030999351247036587146766798937862190239374442505736693537586786217570960194480775284128755153163579670968083139724492747262238223074899552465671056180857990908470504311104341058595352611107753843493174674437832746065376767217713525763641613056235729836019173986765523422638783839018896568374567281379702946438583626807418282328114672991246279607630585492537768252071567806807520757284827846024508817239356193030930353986118103921235304579594018276204955656495152840377013370307011616549335348431090725021071243985687929719995557243393647438104577294116177223233895323664176163227282424736841716520606590334663919646530247160207833496218187748733382717713043302425494183377822465264146221311651273342870674482391753216984567008021915330759424295140331889721449401813199212199843251882486225194142660499953548572615210437235955667612713451873160376445648949779692150222508282952838277939412254037174712889349943979855974880006079733389396260941239360609059346773561776650957301508125227260828482279698357456030844647861583761395428554096721047393662953850166881370125265729783381891479889084340832992239495810104502283195233597033003137015866722431790758358354026536189361076600671458637480653340836002614590886509407000760778325002294618376003415320440955140075225829365066735211185019096456662152328034336727684057942473177528888806766545532169134852464098415199550409206765652322739950881360977842608296833782629872987737108108324481301160611570892729664818346629558851645338587942719718583038888916193874493791345536838867952469351086822492461125865340398898850921102215438697025149762981089981735714985583061233215625114623342360779226312552951994512780211608022717831881032480183131215435769897398919002155115867285905388362589638262122081688689966326179554221547380064361345440988754371341000277823108989290044817289993815940780667002457352315383708740914025806565436111369740097846159457407241071056119705576177227312046955226470595030672350469896465774504233270662784663481200356369625813168891601587590684703597279963409999547865390090071220725004359682618296370591902177466889935490855963434846037238608191552809308702245109374770747791896694872859916622923642486526501867284627123118960178526857507138551306818280210505389618572851205251222885148732690270817203420804379391457257248756445232834375654139993174953244892998435246058871449465536088627282994682814097728489185992035961511735333704788796810904283258422359843057363979914889136744598316477019825813520380791470684810937391954434795124606009249532165999372613222786206425945419365607272730906916955715918662369094974154210035655588336585323148701938955946956796180089598317799103905601806855869857757341579751847943445818291247781356495594174439520017638194663907987404414029080630520393740009134040772954063076534039024914763561771603111557978272466146906719907248736094055250908764567433261062795630825895315457514744170463206446804976157421169858050147492784070732272832085117824493411425645910368985029532901891970241814808934917132079808347168675691498904174542154678111682990075240442316686241803910411905459378346477628884109072990248509596638215391087033432533108368596785742841724427577963842036626025137754709090780649854472183748114781094755649268716349030457160891196241042808080872443258798410774198426848661413543048487174354217439342165137493884076352088492488834477058907649453021376093481818126329108368976876713428405151974211846675237901521489733915334012647588204682930927976804536247499143318160024865094588959595749018700460474453920505033309554473243433879509223460492448107880028200815034323048704260704856432196534834124151591256400915981988768034172281491322749058488290756370785646238611901841778397637665643689189348385392690984376643544961961778237087780566959726190124705503548725664995666380939174265446828248480071554143156826026991833053063643820930154377111255690173277672198621777809730753880951182542149755885347065243846364530252446477603705451848322981725717298322237103733573345919646119295673557122485810238047354980058984000820764402995343790581672990542296245420739375713270985016238397196052475807434694724117255249575889195892991968563737783246455837466008314149983390604301121755616327627190496330175071235442551529162278800327703838762980601299368986076439739822171688635184811817615405744359388650115979860667286486083901865973879504229223158502174176727287231485133816368522283146025258696223711224500368589847493089275012622944408589596940950193249920547487193526750427865568867805276003488916957301238386040345303258026507255468551444263874216872145436161416906023234662564957123982087476258969674655950051616504854444825230042456561602793479076191725527650373548549964041403903411632394488714147493116305499334064956060635077258859199552346690599396856831384138003535757763233644706435227550830649470060186201564627453922365731074341048326494588295008247154222229566392570462035946480535069121498974302401613147629179552293572463110911647815718108191112489368183592932933585824230133123706126037037901709682723671194602759509831436300425902049696816011516352514965714225998895202095245701950511572653600228147095618714205605066110305072831797378021956909474499202194006460379866908782741141377803911090550479035921918679529121918120536985401464071831839072271075763859685675882503599952290070591654922090156058800689428661290680607966010695488123895258674291657238333048398813994934519596822504066567532265856010077079830826446706433839876633527466197176758497273903635959383018821236088291304162679750791478107383112317281415033989273840326001304592199423063114089406061635216165491207181334228286733892057055803803312228218536430769060082911041558991852753234366323884443657916465416050205825714465515815829826147395040603992594764539220503753069497635142934475990315221357444944023441991460072025073304174857167252211705500162168899897636003413614783823640794423265911127584235790179239407306785659160764494040390438288551698335952149645667469506761537411077327084552944519405637171475777059716522989343943796665254652935508497663545272878273793064815583207811621451734373442021015961479325794312587784381660462529319538118892924114329074796029658092763769893656811106203640584209909751007640480300479478691667284144527536213264319000052653131600736578641009900505801342591921407869766888662618433528114866083237000440968069792706118769149897518670737954645581437881916058854480207471112987598894657870422749929370973203950995065644551555528218562831452425991096086414489058187271935006459576968768159773879152240851819436275964938485568645588825664600750183836412739519464155738524756609643743667960806717726888615717019653541586639219058780543481637800679649930475981221049407225829204133319033742844971479037532296735610875100552724883437086219867207135358540285995148620680209717666904161557031661741457491947297277100250812134642623758966553956772070064423422577940281112142003185363368269464371198995638351860736680281211392456741980479589803408678777671000286351520196462830867928096115348556231158713394567168481398887920884153618008743811573629387385355345424429656955125578812101055574504801201012613221796952421670299479972335169167803924040151382402190127386745810272372249117347225161279952181983967531652299174161348885427555947704957478613347530880315310528619283801746226402321224210202949285333363119348093108578486125738625885571006293971904761306703155601359682695341742352894641230317637743466911262650713003627699291314750156994190650740795209587720783371636303231061089976400980827513844647077937868355452534014331953812041201766642300098106758651619934388411141935294447358328244481750549608302600167467900190156098645543336629940462252943073409567476374809983524947779252028106418194814764796285389109666783894887119516421964135953262276043300649652772013812434624241360636134377887811651617186799650045668843467849230551644764158244330278005489730236405654517127915499486360696635521266496449709554285052298494855823302281329135610762915052746767298107569301156310996323906213824693027584730620255459883545984774893790063880048799660139686234758143272943915521744342824959713972146534596105133400224283243565548087669994344363844395188099662626893586069580779517132629170521535184088379593550057688134286151408666389941680632801863490051057332990270109237283878779290918281056104379314599598025749887515395353140350644637780453601404698643237063215188919591977678049719855327207496568807893049752302414488792000167768099403900173530744011243384178991707498726976313909439979900613272115822229691388892116813865514415433572233044900919942928457839912895026139145713898847344769934907643965613822683168925430038882397646492591356966817147538806599449650404463857480465587369992574351882863382151472563397185534181725477071883241642316182590308048158453467007584895744010299865181617940727735653539568116777131613536426108402297733545611839734461851896476997085468407236196397685387714408869662117342858664768145582663335498822411461051402064015363552429703388196695771287425873465029782610921043720608208780226998733069305566482120039644894012567459052224004266775177283264660339079316667681389864002799629517154377942203277265312581567064696572997818555582254187670475625117162906513898212476599858159689100328425590948447800485155283597931694498056112653738510861050662946177012882012883366448698719681130542570499384435873516321203533396304758638432979544533194726473120324568745767412802344308361400519871882566026627272316248956444792284801826305950535106541866560348578910218422049152756937309479868863869922134790042894165169769222341939559400815898902583778891493206124000946962016119530929062986167103122132955738374297813925742343349134990821738474688715130444788518416383840403615445232664549839733636414431379622996943567368522565417285480110711695427669579805931548509561681163124270230078703232463634592437006222134758223580781583418437593528095110799520310116788355219386783503837764042170575501048980000341742871177281313324983183386820360628352399538973871269057117594101583043986630031361401127950689199107594419858550568800105615590450994685170662265749633284716140934362921555009839376864508536964926928204877063974878570363736916531550083538610622879168543910428447252290550844240529279706219144602908823170692131836499119483716778142675410119901375239618572898948714958255865264559813015586348265592088549586315484786843765246880005354145367342004824786762159511321334232824030543035695636613619775711641117310789807091400871981537555789144211272169660352970434861763789785744780899378602925305016123351042352167333547106294098256682685024439159659492839564447640697328955379877128520996134064975082892501294514545358212887709566782221627902086268126355753321752745964775808532368666837179656836255817476415561898952530830692787342320684198357725147487608493504457389119168724356502170845645558042680682806190936556412226553507873940975751475837526814708734710277078929607108331778960142566224870630841888421255988138154357069619023679823424877532473688647822009624219232223579399376469616220006679407143525705450560662648136915031971670328398764459248440368081424502291665099064486403955731839239289421303677880289643256137495424256115594998197494795122383478332014517426769543403717922427481663828990629607732835636523306038961328014969819226503946945871352301290827682147232524314751745691872647526031548263794353904637279001188776511914295186100414966240482473561282696659922763565956015320124469142460874884187123793800798091006583472675003967015829076125340109937282367022306036456097204308645859962636213413681978606500509283439684948637668154600568360255531552639710845746730166179599749560887539159494845344903395712639899687564084302269249825414095307914228972458422608697884941898450775603673730151172549662417208286448132253690626744918879111840421263685882718972868955917888625954137748158926683685781800502133650617629311709887213033387648580998715019017054251386711677360137347591042118922176788911998414895457059167566427164151568008483998753410006302492461328874348615762039307401898730135641765662065698618797137452654150480033832457340563476676639723471535166334927875142260084728739782577911561580334483342327492586163416829702115055424204708407449044206612867001682942015049819551030416970864085606417262704157652154311059342719457715940646940859572806848240717647159135869644252697071490565385584997384128635547644416790465611897415629476256364660638570158747200659685172314440728825971161814278186137037152741874136954857499680361099056930529153810254909599962682703433717310903185559181179173868160304112685631745280030259587007943252900343346591770490218908897545042902747742246133762184844761628895506075250111160067396564914272122150069653253716883633161087744085738759963000642383294891547193638988020353119273482770428987664723941445120946652908722092068264013723205504402934809923791121176617752567450878427722811370808200734476901642282276246824225732622965628105602529536112803807953275901550905582637759653990016465040539532847673043924215346636213908515727550233522007879743065453635269316674873697151976056897808852295335808518226369432656730364388512026275487989351526156941205630278456219512676494923806329205515622396979048361665586384340444925375123622093538485729580507053242104522901119407781579303404718891036310697868131955282677887180101416725012311889540080348381612186620584146646144163706303010284479786570155769629297715763390148267111620751639764847480399795092110689730823531817831224306125576508110502117880923762009902529538938755047326168772261491190095178000524503864958378298471492133790892965456390265748026416374218979416802941679013010805376299629387933115665057143312140804373757106264517247323414807170365296343064598899321234354242379760329354373717366264699188650445133543522390255052308385349332207892162656253879923434785370450806013184910961473919918694199566000853288121417738168338550243400445178615510312037425984458898206816688643767935378750230031613470454852734084466866386199246534303878182418726997551871367294315931093267935622034401517296372754210198226080543359328014197464919106164245133625578578279064447108064864909609813199544421388632497868441527694447907051067335638594407611864325582797945172085591774776440090031892132648345159339719356098484315163050531914618078382976251445821226256317558764720203230814788576273929133768456028216262889948014575678335495140801924757466749224396320488107827804603179492910442989719673834355662516513252622415740960737219585421689765471142916452698984848743360215229954113793550102134123039069803840653185908430367678328318263333308264537736487045961333494393712506699173475807101657591260616268031361545079005710657072936771243800388239212947223666145006010658841827539825061161581141853712886337092634584874317882485421419491156380741469129284855738514421196386628149169061426484376596410062973772622306755136521650562971073042551534811431052059011827520583768359671112347778580098757669512149566119168570382424954807160684161053889212251806009171181631057832839532070594419783305611992457706715630579917157509768130939842629240651382018111207503116542456976322883751730912305347435096069030606495443469099699316957925589914895381866357657041653307360276448959021332970792273049513016510436465043528076470642213134639808315086031512124906824592050697289917116011193562636916836417082500027631445766518045314256489079232060383228997821610578271554492954394333176551555351684389848927597092297535656119762572562653331557655248871463317770216904992531839120041935426479600544708035713707943007135384440443966573961133369482553074083518990351586472955672531633160270730640721489969767570292992422750629707606603790130787343512843776460172084137208641731980496277333537929106149173264995431032918965128048570850611937595404874552019568786913517344492752217495907895308224244567256364381258003879394632988660967203021757490741004986311980120797895627718773610628721752002484629849082069459368245868437729052275578969881392102365607222549678628507240299410342625828415669305771960711443032720848423078402902670712505400779514366145533918783213727283269506805948401426711413735677171136866214215601124518991985307015984467366308749237785106325180198165928114276434095748172183015899732253242565397631863996983237143455092703871538872306074237967589199462919016104068625885111345827154135576119981648340079583576076047619252341150000526502083353022703852338051822454909358266247037944348388721220831118664469529341945804420866753054908392467233181011558829350403503447186583697694334704679499049503745456056421622872158613063860743440951747751908966607021175626299158622282264395750090839086219257994724522992060277592675383086952946726814880937284206498686841676589670673011647253855548013891845976519033014659849030861109607021049553502251665488951978496004615489877076811912090988585120460179645322799485082564223049809767914311431091547561393139918047529197333502784000880849903357399969455228922024146648658515000902179776216107177305957905373733002555236347746567708960063406621378762193694594101626518128676987355485234285256322119380167557361821865542436723059901096176009350738901409258723179250075069070162402994908783914765666866595888261182266411144983783836538876281474864268529731911311057491920865798000394050169976845419355544953793882195148561593566263851945189815276892536278058477946019970002688610062754139850949575668082026880077758609556850291498219171779995812949669187744235315986144872139263290037353539192568110947969569713242200104730968464554840626613126462713222566098734574210563920050687127149331954997259223242384223829615676394609499264842648501893197959436430884165886161900634263807559104531665308220341588148458010144182604836316881964193350637363674324095295624175477513393236310019397139241519190109093670945836996546843487195433557112923649767658607566800239781221125379894706293972348431295139879656162941042160462281629689267899243852032410154405838669925176210514895637454208260062758217492194451527061079630788251702286213460414207923951806794166777252364693855083409700625545172536950639819844335970795372203511761951448692437525687997492641507718260364743076779325385784609514496840283225713202421706238545802411484950447222035142974456791750299076375238919767751224955246508573613716678949239366597212753567588511581787499990779541887544658338823426264868398176032522485960702356035069937690401557090056536904862566628198948615993304290056107998779913727143396626589100522580119649294804890683896350658046328822979739744416640614100079078934760830259781194237594219186177470383434384730703472965628526357198785443986409796351830198087885725437061456078005210810948161566447697092568545536599323809966389781182617149231482188039811563990520721010167403141619839012363010801281978999435894427341979165841610958278356661162243462243917872558049297885973419828629533013803996394015197501889765318520989028783629788447914551872757231614206521315854734939888720775019200767742544525788325986567133212396567891526191155662125533088194900581303457619440863479416706703360727103769307528989633585541764698259925173480456979272848002714703465701979072670627231668266548838889568364654094378399104786592239526631690857548270812788894642104919417425756670075396055313603891420039379849879785173628436311311669652798067117555776007201556524489889305617725721883650714557582808815577079169487148709230702601726206016505234764607486374052211724196053974186583325114774339671854830281791070595600428476633103511024742811670930340221256772715485089717589740596821157483666272014366716342517777520279122444313839588169189978853695827070496479059909774878238016959742053723138929648060733113156393717322936013202441249225776302547970201181922421519995615550556270848953748770693380586370075571423233891370956166298946297888735139995710607821600260581458701617834983937374404029796335945715833511672561188251437639854557138171749042532006255380568201733323669398978938354514444046250671195122768121320038168441708550750398943916700298083518150051952714486148138807684565662950991387029619143779299863591736616635498364515646263314420247917774497750903732442164172226263721484647133571376477176797341952680783626152766042479421750379647382538655331555906478504667683894237613750648228766261545123589333323290822989058851876324004145153461506014058713839157540234304890635741264458497916177470905614754804970694123227914020400686638619237375138819117363840361310035423058393758205871374250984076727034791075622740450834480535426300750292846644979291955533975672452112468489996903853597906922211682086315568415573230349747070957792209302908026557742034881919459353577505164630488755592953231596814617824730934558525075574878441876638389057674102849642765716489471106791089430869931849315504968333639905445766156563478063353407176194983677578344582125770159654702794177258672802503654485048530163939125892175785920963304292032970305121843548933017175225227056490887820584804443924465416247128810434397688017388401830017174915081749871889876417061347531528837619208228937257227750485120296571767313960253773314803076762594304975492526298541868512726266666414895251809000819757681684117649700799007084517558672769517873828608861824510913350606279800191744803829667211732783155576660518131109414682517824213181898834134111859683165965029649914575802785538422319564276130600810233195914877613449771854513336031369023779962758901516836893255470721187276448872337379113034114795326057285622643906200062016372207758788366771317780491632311634794745135440145129076216177246908468134241459262793115544450399363238109130713880290363888327190588185236246354149680693326718044024456791383395516389923363377666470401713051145426831595388799203235768123403774712839318635452038068322713219365313751112541398683945574579202714042092105460181711692940029548937293258036290691417269049431922178179259167616305921507962192812031930889494330613386876064857402403164016727115881427591415103622321546590785281129920765257299278247357613972927113119996040355643800006602386079190800598723727595787683770933662328447169457004966257801369563699282327197779218207917176539633661537298346955128371959446024682490124455940919086609095464608367993618371259819974971730480663181570636238050777098324122666583739081707678015747433531856133800021251451400197133243929108609880109877787923530251148761570457047280692556043744325160211854926199115787023173452859768367544653306753788596944849491941355336346816621351934229828326157575512172746017719144944036307194799655530641340580561641341431604898905555656819102558372904806093899323706759186029067550979204140927669732095198139537397005211870157775751076092757793244751768179487502247025215092268575249478078696574566392323201845826000034403113380311160791802090397722853402517205916785202707644093949491219544650036218682518578816947267765350672459154888358333317999631726237375935708493766496776736335324905320595545548826216889448885333837990206439503494890739043227348301484954666231905769426947400970237811828576063481513046712869519113336112272896273708353918671301925093022810274247436199371031736176286355101618154034421023834320718428473770527645703942733673519646467219331602751858426395025573295652761938270966204439526662679747493338933159469739371237925762826108850940192258878617123106405296333918866874122535701474659107057073018739970350943269230681866093443239054422410235359428878242878651917617161480943050163600899563359818983386272563440458714884757468883782861887976995793532662673767471068940006180326828513158526985321274941489545815439403474336478212983356468089246738909868409093214127882740874266567391047147344907809113844741531858922729689907034906624509858416308372704262659208308763679218129120835987402094631962807229829647039004549620692231664942623231871592110578686123650828584730666501797832989158168718643927056224402685742426884603157689981055740634274706267818940416641373347614117238964708511514196692681082603283132050432483400534091400949791709971586028642146949628902504350095069615258144651002453931034568371912094625288275422067550836675815290077525949063004221425334849268259272326382156689262053832901582029562462591540164503197801326728683481094642289230995115837628456280431636243274280674474432666447091503542495192944469055928794002892895462258995159387858836928318032884012991242268905590024145478822927437261987880411302707859401844046961105727091015702422640116003697703167522156460547018473004166969342214271998362492854960985828892828264546291890333041161227164878850161366387916714255763093391833599120732112319738137143233574522570283751538844764699570036500949074299676169552172025108803721546855611995806742060234711292100227289476865879391415191285131998304291810104697839718628248007099230807391289604148782624337978020585173684674597496278288248924461848991594641341635964293936167073907157981405790846826033007992997320594173977399405832402668151106705166000680875897364379552078996415709769292649481852666409248016393866496126042157107564705053799736495977926954428041846511986976075239080573462094953799326909246944787137896389448399323874771793159339693602449393310024036876704474355794407449356107383084461688795044513559429126298793023179449819692915099280433376371508837830124234508787146341609510217076861815531382707734765642888776213389053166838522496736731015592626821710585850125901041044716213029115641600625097754612445318624685014127479783143407962524044012478093279612500887511653219795664827928448862895105260875681607998049302672311530090873872093726367169269835220360327096153727198361649662785388477004972808239423430906054701755258090427151642111102770263893195659614488645968755949163334885085755208857410660074279476142142684236390672534203028367425393271733457504042407563002574853386432183415003135919404170443384554727345730708349760330139266573839525753434716016112086721919173065599280927780087653014022127426645096204082374461068980783460434022088234044969402091439725867993685802180579226071064641597203860613617647996579717058410078216806504325448843442946572084728671754438404401673117877124227111219919848125067320551900623948092353878771552696006014383563068692505237659671892237722177239714595011640208520420673132521214323298388874039709605806318008672923099681826255514482101588646087088838968508116043042024247776683839222182663691472980835561766684929268578134858639364611322264933083233392688235752034997953108959399206930688380761997761802794239496662133018062781240594693117483909712679248289406058696319434574720260193473125199487558996159822364545077080588352859005831181494793095866112288737648860287158464374031252068740810376646133727190494705579683656349305053471414960841152387312721087482195415450517273871958210030731738804197179408886925230198246858895760790076772212119102273701144889913641510857142140653057419358304275888394814352454341895771946570291975436883661753660507853646436540595549310952246833697634837418708941893439531592426849616443343195983325744623950974072250274753910778104381080362084895689592751671117057109246246554685250021672081050530907842737942387314615642468435744294662371687236014401701873851707843986381018591139905559587144463200145505425980705627562674761669201312608905821270436027003869631442504150600488517439381257736542597193152573134574021187443318538518576678250979716755715396363827693581072976704482707731389565340679872749142322840081862879439294083211947132508243305938200604688157871777594829766711739821569298999719897758359898022586879498055401909592994378378166097338303733699972841296481811007977244944293375086546046044675774965824638636392495299689974497716266434864141650863079445146212920306506026395657915465633325266827253166030297239014824036239316191368487313528327303152933939992457636668691029884859451882166078109283117592284199101698191467152569108891535024626698385921855394341139090891637611580856474883758386541509606552388941163943001225696237377013434834825003530086159584978169696437171019376071954953076428479411761869290848113110926326728656023768985936214353503594235185122949411820602060792139945719742391232912219192815927266847264324375652899499185088485844820364460848833166996407524070256084586475508235019200447130105295774898701395072282239389925104216156665779629383825247683526667077013689399433048547850012693988965850074190042862319930373446636794484632487469669031231738957646485319988112972405018960618503358781752856543919363262822260783633398775644465046796686230704738961895931792721972170075659212872507738792936781191307714270087290763850402725778131105505075860274055412456484490672582735739121300385405491778359800947665745012371630602861616071586097661497343145153547056101977897073408285109412563184279635125165074282241920319604808454760000425643502796552410143043888541121008738541788252027145464183986573629457929900452291764799862647856194010009324017164393003422311740904665973412353749582862936266655836238262610260210215641752350763599125063940674625549032602003889446680608036022174075609523382956441224647127305196838935815572557030258532252583273573507309455043651175338845559285513651108732158107076325038973233489835187450795981707527860070123016814037740502888748619951219438377302339732218107798153035324218108762753148427386382920958661857078027896107269463766782185535229414302468961869941839791312737648499840214240982800318641358478062827073125021147835166743713794993666838099280642622862190630983262820493203632735396449533796838660843635718222159236319309287687468691334366888120163612871230164846250672412991110714916969361135782089266231203276217365625896527259423596263199711214604759482934734913095357435731738443175322172390327058409760016772162439522049894722068258505292317066979579720256090312535747668987808324258231351021006828258787466666894632512452444254670303322875088141334293046346801942972407669063580678365940321904115443036571146449836151538203878327900449987526944269742542784858251502872295241091246674931678478605058958422455826647031220437577686413569092187339705202996359665319687283704514311135179657373274138970519396585591455821745729724679085496699065446871776208806190700689409084049845715729790210978738918402274072443462580131968320710305089117895760951400228548749727352270023219559593126241689691424490649552430983411831981175796532415899179445855703830218228617211018584439774295648642116469648290998180164827428661453081368471369128937704696459727902805637852827590173589530153331790244087786213455487567803054079997302782056169442564570544143932370076528079378573022070713704136691467990592014664222689351268506216020658486310080124931356106313706910912219493329923215977425122486162942699184934947343400468255031161267196591426380920949447150345729562929407560878280999046185644383314720787409416568569983945966098049250606207175608028914224267924001729861222103296484254373337665278141049073816262628072641496005869227072247387880411643165545294390183950850152660434513188259883179577532656983298066330266213306324283116008135065704334694324646241052127985333863180729522303097549448585486184667379551687743010537147985951917007968975581300120645347911871950230175534912711667275936269460813777444874252506095549149562763912248488819130799226361043323337620439552322068812105661508342336021786945162238412916725414869896523502476491163312047856581825638013295482071910837944519029604245695486130644814400273140345356701806896252884771119853022266324343380660725796085416386265372913761819703931954846018228104013568951786496237799344326349908274176602904318901324246000380455009231660210621102212730642982838252024971506579037776400513338072757299715175777546628564387168341766654891066464645016927509320116707121049556945423875004997517826471511058237603082276203138202678135442612883419014694578116930380024551466218323289277141125910131083530864255472704190694257627517474155721297576628995368045450555103343358763126262249137913120405869974512639178700058848791276322953597567662084925384240840231847670177276490158503045979298468054746908619194946323929813752535663567077846120345784461476885730226685327904824852115889873040922141125382728911878700250677285986390687199969174389954692380182103767425889741889514261902003867931852557650050800486633469459761769079301779241597093668256451834400569272951381989556273488047895665253080323709580614336614755059961246230169357937777990557151456551121772823795229926625950431798502303232013477638528658035550775397023049693797238534829051564952699001784166145807930267078243736456690298626965454606201655872075329268883079468858329941328666442258596575514892615622024006819077942473471006793111931168188923439227520468736152517753225002309207859098457271789762713522729311646852620966182817376522752200414121543764197160644445475879217313435524420057745280344321921912417210230603068859496069829582834985071706015455984995191672394792183354680366155938256017174043188520829586321007405877146692299905812575451852359818740332053426083664296109237723093826815822189531791312153131669038437042938069013536783009716402115302193735188454783582632998900103525361615994966833560126625466066583805215470672436788033348568857860296167330925031131168276087586918099511908751629488471411872993275410393905622072999537264396640887581196068565683314945765808003839584680365733203116231533976028072885186809560093209594048046996789216535747254953402615602393480638613386593427339423894555753210105433707614810993913398479802862478016852392460409809408004182848451539112242911435838662472522428341288467404548645725389981932098221979321667425094579356327420965287697271033956323900331928385670720370354214693302219144407165507264873179052954115926124357659608637924881638185242344632599215924858729462594230488127489942186443434139056734751561155981653560190086908969677306235860218059297432811115639154427772571608753904190814739137937912030086610235022328202265874970640169572847905888750774042948509171158016375461840450671737212419550618742032471402109661610977729470207479614674694221931277813138501572212010488234034626997727745597547414380738805512428906752587247256468523036008505032108444593964002326339368825533925888401845824891997627294377377168329616923370901926842725006269982707245146088573287244627773595460620549625281728509189724403664165265446895620732347175998228206377833120130741589547082430179098482948351278774515594108818669601655636545706251904959871855912350466614472260696452566198033123105296938270852968296759259562075718839768303354690996384981750198522513040598252520299674861543754666774851530430644194482456217085613480931326948592717633426722164464379997713903564937214106604004348909397761401135962347453432033109133279908525073016401161587898283754170716715245713943325170719190227040345115209069680762957669740122296816168796384088706263254890334698389689560175593312685341333945039828698598283309511929243659548523182262285057371170641843632817088735597259632897494932829426309507929063169608139483070982768983799155368254400139290721854199923726722226898730240277333929206260706737848476552251607886750439884383774909002860760736991757103612438818518458521980570204478772886612585719956130530476506077495236786398771417693290642133992168469015924345762600720296936520602558338476241317828659720361225967008152846724669482919463166088326107858733381988137868164226394764266363768540619212775580900185427638086194294486798778608409827037631450207356731773797097927154334861621693922412578732858592151726956295781019858641844302616382730099231339311367897913900640867967437029131035698110000050043948264652691318109578900487916274450264893210819182831386489201492846522268427130078853919137886826081733197191363603101780776000151167265391628976420467793797546188992568249831067443377321361679568663414239970337977444343575384624937730718884333682625902246064934950805973385261854291363193548671093520387310693391671152198973819101511684756574514775566000474799094258126629024633557013978871879965290632276374642561375977709618911321358838717577334681084262100137217958647634006767495788405671623843374498435864398889627235870586141036682584364617145024979979218764534411162819897121584160227691698671210672898900665082029543586964446620678526698931625782487095567786007140140219593308395721605916825918811033723565584730330101875682945126361198619844928029239661322129093858016229938136897204470181644401635253403629807837029063599982683125353265513726478468564141866014659153408709408886549796502911334886264977401475153500402585018868016231158382654627953698848718359968860611450630764355779792587877098656989766888830895142577259007009628516234139287809242550904480941226132202109354884965172490221510520815469302239926072882814865371364351589357419173158145800325479897564771499036980288634027474549208062770465693044415350581194732376442772151200137763481610311136346642050256007861382093748357810291273943291322196611830211260739842264965050153742674130424881782036975200527774091007608269291158125161186308547465203255264926912172842198509545853318308566350406244663351168727200967022626100580143015270665560066630279356572670877283815461081181957732542742188911360601384556337709107613662196249524582994971594209152433734174215119965879200481971939626803748883545477521031174158147419533826283038569068716104034126210316496735340933478265900867546776112289432075780076248723727828912159048996809407455628236815559004755326108502129183809168758007000347514406813963313937300902437676379382880477200720604080570378414858701095793585127664374425504916442390817317133844877940115906409809898968993496221863868899493170692135255302880982330982385372309919890295599742257107795810836553995071911442259420023591655546044901823047042662344993605567187055657552268546543171876009186220740157490686575228682305816123562521441083282963392544984047584569575008504609275909328554422003917867337313004179136308141745925827090664792526516243099993741153233931488764726941968547584647466918012647460434195397684801065900086139831683725812377164464835702162470735044342312720503668844034882079439283807937607085421570621131727923741998378795210082622968817291268241839054076039389508363879094305110777007281441825687244896511191019029424424611449998984652199653010540122462633925866318437549374313454251024240344347057622739660433247077555968880254051874958127351901575564007931327457164952103211180282438455215956141163428505175849085569958756595803116481709973408673706358903223643640677282464017838892810494212266487274772569317857476137503794928439380245402083780807758453424735864089479922110058644909556900986790837770143569228872253013263678907821641300371375854818834630551911995331373525224060878187334256248391175019211031751227485084560793294831455367781923331415558993873677493837708350805375711589658418262028628473867570162243326010454714005201193836485184378279513254438272800335519895303035253973491108353949635966236711714070297386036856865969822731323654541445078547166238654085822494573182192123981649902868388401995654420653856125327733368633117961227003859199439417964776664820371584501887126760696641207011691654089556304041907355307123188910418384132179548245287481680562306868959862718748715780673405217029159148441623603789820639945003027153905604912667046389337841513074584380060980983892137375270403259000764633407260724519261955205448253792662333029223710916277273351007724230929753877924815762747035759403169449690726207783426784131275555310005208329816290952180351793307637062788148895528753533400896803522988062907798234042601791298456347842239144859293250115883057882658915889873386366860887462611404025896794361546845910079793239765036583141699283917840799823830075530307692147791837792157341984945727414265475277893096321029016032282995463444493254726057477819980176415299571726170331508734663692871796978484915070774444613940748968504761473088118233973866896668495968967329335178297989815000350185765037198154018356989699174625381097415835829794209699031155391778107247787158054119415945903905995258983401564188391462094792964130866038074979049174294336419068886834041371108959904940960219362540055929893653209205513203324695370682545732554236106108575686166747652062847184141551502250975095668233948345328166258895781582415138858239710920944536417814668687031063914612364306693714965707573658349146741680674695482480394509562255107317750437988187524817237914434424602380595270577189523425052351537777278878232142210073009319779750212818006527741923264804211181009511635209022117265223944614056992272633005611703651062755468795363933955988761916082612576229848892020950396922829269206464936968590629160409296737808670443850508002393963313765830560928143431789301058831232384249028361971129173914330766227849301830197426288072649411899127054877197306715693445068262027597197096253345379697703625893863103297081530475651142242005609101553955949632190331618869088240962159232572203782062400899181345899753332395350517178928668493979670258008426777917832122287708113287988912675538455732710863701705871138452177030267782813759534681367254580446314631085561664221273513187233250512244819379832450979603645374743427290649324223770409040362858276613729574852544711093851818802051191172235580104938216798116706130730043508475987251223601685526232742617368101637075698312286064058591340264990174042421667330377084446022733904057451783380781046831411076252802241828436304810479662244157025222893970548064749890525252625939216991999758661230847495641435429442445459415615777749589060707021061896127204355229485461019422130782283472977019904534356610591436230197732684600403152441973011049430630920348390929752330255097660099556948699308203721492585526492847899603427779952950991634346466431613643354403195639239129768000915390260735267487046371695546068645420867374229708252892783093190923197515024806865427580914139403382979741215033922919107443696150216574643892737293465883222144346392732207851977297809029151118675706110737172227344292415753578168755871603963795587801089493721669004832976407054224781063234006659779647226591193044879915628473803476271712631196883489675420271764875673839037660744849269348460195020219399387612308406427217617689842640776322223215953477669785804228837381675668437287649087567467587548373634157431499650862152255588883833752110384421326198725826045769490253008282194438045307301933978877595403156977034925989654932990448775745118919956043519968270618192671417420671319512729977947606166729300535034655673127603721172109255466905002892077464956714226582060015891145808733677286649798950635871503098572758426187623165377134104392538507850289375774439742493841087424011362958574984132531102705786143318677295133761235816295666220699291520156901242901810919118584745396574886939542542213805563410947380406544678387073315217775607642134769129185077711398420758445769024861306109119661971268329437125423667224661898265618889989212261342331547745113809546927192567862915103842988053232404596673942718131326161226187299837165698393568354368912396683962656857104510767713399719420974235736633483258595100335519280585099136876269886177153277348357634269495292686284709092073880281813448515643023468297054722866650357596795017235373812439031478902402882928920161742004135653911741496516089142970632400330772789624542749022288964831760946112819838851534921366842687311278008820969850950378551752981765613248613923684711128218690069198869109624002122775769588341552519594203101418253444451032568669193379822472101745785206112240387598819076396376424779681938645005300121572189695188151119016421704641376877953493867493909797610280812622956550815976247350640878635722840276335658062922226615415728592014012879111143057718901065434956378904048549688752435801797439051096062583757612460081002536084858571030176409981491571521223686986165733113377405109882238428949119476272231954834184255039796823712774986025903044182709493195344686610790508603056368053109026254278387096236919239310713767513806381541194589735409793852361415938896047916405780304026892183375301789880944290991949765011851624065117077835085160800671228274408812759567414217665855709101290988889365438841041159271300709324691394916726531790468694587825062364091103078892418319718321192314988288877047886954306310344719752929400603182154264041923056369275933869197567557425785808438010676661941828351400422027776871560991554712649936757670656185385582369392959584309998097350789154161702019363997446565633323127605253789112928027468512842836169181708446351383838536611209354698000005128489241122479163680644281002695061265017318251000973139153021089709335121458285805053023868678954657955971767828018831488876772143451793272448553536502751364587090199153475936742773881776606392712158384638424351776072154634886808435433703221229977502137196842155912381419533548421728668186327813166828077826703190823049704325990048600115972059223359772541736472616977429618331512239567894099350797751837071672420896624865363422277824556361477755478028065549924766969822350228735071961299545214459786526713704471767001642086929416025703777536372424022395772307406215089131696540303162192718777901002116094523074974961107095273887018555637967459187195769553603772786322329563690485810389735153437936604128767026881474776115614465955313001814463634370326385961688784552989332985874222994609070678036304506454012890310221813773037331132064073517671082497066316214778234962829307694915036486039971065681314777284877466638281255537676321079908358411997418829408384350827351720604392794080696059446707839950190128768427160609047189165049940817108728806111551340919882936777412948114526090197256826109608385401184397459839457221583956832263088995310675372815885145424326905658885193356557809236231809246509299761601624521292847038372635654504141147286553346412871214448833109769552399335683603273149066537638210391661458962130133352251866207365736620385252196236295190306270296156344897169515129836793968104122693338275245662488450341724454191177840120419981988985412949890034818688928218632792024205105671051663358221971809009019075608453769478079048269527491645389415949721134465476995468362492442847810034009724716832979074015423610628438466285045357896669452785042752632592173564452630445010294195116464621484021102046368379206787479968507007261212231956009201281079311449194151980089493686334367743179900562828266888195102117064974176944539865396900760247865506881842421745664647633432732880999212581208518104511463313934643351931680684283623840273528529186308031037715749756205679045665571775574141232777834850382327637262127896401452414034160946279334957675020850992112022604269030019735810860427818386529676586912971978791797535953106027338728596421531583968337286493058644531593127646050068943446830256586515826422098705956908634613800797693007640585883279077949265921274873516530045546268157848984396658332219415037532771279676212176360751663117521536840039061889392326290248407747338637859194904419973102496649299954768547757556667102602210638736858295352759149816725556618845592631456087612300827440147363072802566112694749616372419871017461292204999236921346163769231974974174766667672623367790350349908654207999089978048310979560086258371278401205551094514222483238316816064793791909586232332427593669835781697366399584464715950534180103106612278223789398027544199842074342181195869056757367807481344456195266664598670585017735774496016648427066608903739824067548250351822879354201959030185390004211718329422146539609475920871259503876914038065410115167980819582814365087940689197544915830558184151732007436233804318101225273505831602052388131278040736510416326060661844764971901488281933899704749519680992321684761769048464543711577443051744439851020808596710982271348016150028041800581675961136871900676982551436605483130777185910516799246925436196115635817173616391417840259632732619905220364242220079168407618611105809104195372975642174719988545593856596160885854552311346633647288137728534822509525473136660855734598598878536805523628206133202661014680141053810474414997385380133030772953612870607106533517045589252945121114368517176442897033299105592133085343949129202959408638423387166687616558605715339183207782145014932351273326363046543931364369860212139707273651480800639909403861145817243418965505291117177808496084304158442600774501293763967118437955300904953716628994132403166132057827167824201594006041209371449862271023189401696927721014388161557659177443616771766052554003768880372317694647313288274233192492763192304399868658617260394591598282025056086012498129945534494216768779710793481102770305008911552194176737052115232944822461563337209685628451660389777112735197372196202933728543769915558259787228324667863297006786087268400844096458185587147302790612992124345168086081332314808778692834025494261195160511960037864582488560384781624914061821882936197948779828932387614788729316525982540051410130775308722966059309573454188031685299087866911140557052400743921189409572647521056891921314152546451869497400270185449572196288990999632501479418654152377041533581260155147427486286675601749661490828858121237157535184591531337135088187955283994197846394794853934543613092589236985006704522015128092093169862332065982130383952495698915413978064709803266271326024622238265890017977937488686177400188835977134264129147927529188260704884251062939406881673064937325931829239101295184031675440619996520615646588243318043310335667560814688877671258524441251963249823163418848798944414017755072923279415990773381104982836619707862590009792684067043037216128005643451985349297624850891425562225815477972386061655588749091774470063447694034989570626952038031780155391073680540169410653472465215430109385793064815127920046310939276489802622988816329961652070619140176550912935842100178453569871098942206012166949114930944928274261367900683100409558129956441691338920460317347490674773629733876266240781902568772407703647256855547784170647817161322336419814087726718250748059084322264412880177838301503474156466787305554889619840122229368591835610610855727532633233691472464781546493907682081266382799901164314333861001243632752793997295915139154806499557113513345828385586326193727363981426687536705978058516395868988019762759764632936210587826529552430584416491756042567133614041488637808443199387078156878493802872724606214718161590241893117473859007187050210752734123161926443807642714938412501739334454155024052674829845440846919293802272390428282820431624309228882925831882685295185505286454869688594613350453105744417686717025184455215913799496417196786195277108920417696435608280771816035708534901516872791584495375811696457313796022355777276077376545062666673221800936305736769301755268226579795007098900761248251709881733869729698328124734164745736757675717118513080984873273096994567299469675732849476735269282907274680909312434457799596111944095262473111453721200470111297024802169969417095036457433052923682421309086348372153091575684089987357838842902535401354130338451500654556509144471535253070649345387582030763940923350657370364559746233326044218794512897243604237757582785846974915047925199922059331885300304656401451724598009412882286135466894656253983037572299787222184175769664056899731190487212851709689494411828249619993727985834637906021528013306591864148311033594713105515108140623996979410313499665391100344409099957491061897459084820174581587725125907550479575880964087859793637258654961526248731294222088726293342723595902201756063212415298171271779843201919062325621142707266685498940618144289050867712866484218522078950895939245286798563999960776362306883559241445160663967393422975462934880275485702532856289085632692857675864060509783423331655600725545399169207147553014267272590027491574743599879206193450359219976271108418904436751634821081404464293315768547453117250636205934380548489097648904118722115263794154262696496924207026980048440691342142168382091491599734688051800942090797066226187265024759046070973643326499112126875578951278631294191917109933197505995432029316841974569525574908625083487360441851603855924378190679354417866097566483684123456262184476593368831035562513674551680467083376890338676448050314983474919230258576711838243530838979907015104306072376023900973272266142723758931121935624675763450856419978345370069540352783660726910689075061685418653651753736600177643827039918892512421458152217811692206488863646716030253408430622674041371719795840465186567934016831301902406864098623157096290740332800211358847320840764305429926556913205919405961527193965251448367356980770715582798253378769086837527389013266583496381513580838158481115977698425236460054876131696712924607907136970643381999423683592660006105504131996467214888934708160289961593535077326232386129409265158282086461833212957298448867282412061477097538318262134876947256752313602984680958381292096196573656946742124586503804791758993219838862207533485316070581652109453565094939343033802031940291195021021915270260425293970561708752485267635156823337805739645321938244296324126922356674812738011982446248763984072211530659317958841153388874300126047832556989316205417723523065603150977565778111655435105455373329952990756208010933662297069081419306906455316956930699402300235555346429765302116183051007103080898490399400085080048711688778241625330958649223336867493716476199838369034604856583813068709992718988557783387870054033529118654648849745091705569685099001147020994704724058027970107656471490423750775234911687274363437576906769402097192237861296362869392975607554055778350658202851964769125228631861179807406186294138097465907521871316754789324138699932177058785598913511846735472670603353240927169946285233843281980582155177402855210772649679838588141242076879614491369493328291530707602226917776335813233442457337025969668366263390183816962613174710438544859544339341822259044645958698888580164949873580066869567584304073218976032582311400540653212896630087813194503464759214344103518480454161638279992203496476517703581897918415763030991211647212440664654084335075656060816180609673091681342754268907910486961297463270529294059567996565747167973396466379423668264367542511706494436986801957030003128659733700904133307881186283226711968466926868006939558657796778258258281016846462495320157715631591721280636253508887009460083136950441356276906152671316264591928746643799187079249765436232007792815662944179295118001767173006741045126979381622980126204337587434930315104958594303155027391745181128458230955567708659866528663740140090377540656041642591992314949338606448346342282128950632308614050724284156422587092629909961589879133449515155598490292672325147105333154855819777269711016181047625690151272705711594480679056708778942753888415099323755318968682251922028151811700871181515397555123059373501995888177472479424263339060536872242823644782219171944006543939607338038043935364594499924139606824889427256878167208793147697545600718274951113889432974154080408271648212196400020496103943519964617867321958058514084612642009977872567532343031369892803100648682877902693253745380071871757577611288475540249074518985564967057849965143108558131766971503215620061935010753854722813072124562857688622431726443168780110471600054435893214554224616122741010378554463086753556055744693473136547371095740768676538952993612911800953809816275691838336740760899313182699433047949216810630609282331735473095297698462523962163321734515398241387805783417869253158279706584760400173948174101381185511554058461898094572525580978724174250608179403922576957937237199807754656054754159786813126965225742150793518668367099197479463530738739495554963090833597205683799395198217173405933890420137450836278725990602557780845615869753001160589815536408315555047086359256865536845738926835694937996934990723517826756609892986933833169670785264143638147631018125710004842609097374977190787748799368896319706495005028174694752669362988420472075382643081529711895894252767526073331827912498415743059822640113198851869326473378464020993802018929534886902023181932334114350182885737268654993474823723715158506035202509148509283285264860334539143984981326247945193923287732459128005789542437176207500888407563048575864389462131224990407652909944382919362992021296461497011978503323666790382848768217124342148504290366254338782703247901125339540262630099982087798477682679952648031895574415076027199768937441379552970045783176628766452334846424213330488188495700691531795524857737378583739557912574402861367561155838470379655674764780065802950110549856342258753142346125425040873495793183890686191758350659218629657643992220173998927713822461898780119542091396482752874161359690313514925074118283794757212379867797659623476017689428420997417699177949381982632198314291730297839491877044923123030586841102136236615221458533271816997178902099782289626344697194588629150666414261538563585229622513067632907273258226260198659794885953312852649068794370001892018929295163142544366401183030947434371377857059333841145430274771280264050601176807846688371766906956724134718235842280881549017797358315748837077762973699421796951529327544169483828473380140255808225907373165688948951266318726405858937245318210227062941676087326165295332996415618687732393974108382434637708484331817417258345811307762320929463780905780024016919445584562566612860233418751374380581273850513350799884380153182087614986205400415600849715675556273492256236100450803969348383196065946718201616685158257496499710305347945855994883273512295306977156080961493639910838898497598188386824062225772405357216945057524503252406551683948900050432842343804425547519398431448154035924930793530632865430347475371738774136139646985291800228939341438040156399316376352564684037702421377346418510334063852554659988492382073003733841667476909632931474660742548490256745295602531842063650207575302401966205966896581550400783469195666189036697197493511878191887041398516202984777068119887124962394242729999624186502463575874373355905620537357514448136671055459177484517018124494759717283885004632714870783572728523080748406205622121495339381602296278153317506143465884284556675399622368495176132905115409819765924263880344442485786937235693620534904572553269299819185980295596361151411495165489578090249874502748982683154161328476378573764039816981449269437181819231699600445826876097616123840775332353231009927829972671335832625928210018743038025988495594370303503813611066330519342013490035955183678825153143453497450576343536803840813781403345528387114065262282533036242834684139101266093984153635255983927465933285433582021713847821801675451548939264115411118314558846913414471180759098041229045820709244262842146529245596534222522876351115423170333214918704694779000093136882787800380550584119842320197641463071254080292951170084399131642942025617815617175381845279215362523548421939844459698402964181002295953804380385960766374415481242484227578408412322792084119181167936107936743739488085764450241342087255672696399225626196916942383813309408252733947603858536408260624304835318281240673570395645387875823841240209488177410848161423604898866434679170522299193948628942746073606813022778389017810464614482443803222053381813383935513914660019441246520136679030849638078163422403252568272248773452855069858274026241556490500149629875730223061552299466505174773415677728236766047373376377057221497650849024166683994401090309540292668151303636328591819347157906927988625745229765511414099254638148055691458365956387846099827275140613217661080569391696381099026984789070143561059190465243324611981043240225486463185556848262891139852054885354892622179374231878305614520050752172188622446557619199196214973998440818185880974757942376108006736817428596082079186770334583952716608332911565870988373934510785657823543582104843421764418814035127388643868970098945481592656771954001119456890254982081860032953715785799602280950169403730821538413602659773537191138342997214944582997658214601165166651194839130563850698227695494579476073169287688130218203045458159194531676461573243294988723363566117253294411305019702625316054278668855843113113738719789232212253397223186317030461154834433059584225627162055604630533637839289244905359098123190647760319391092132708315829361539469199773000862476137892171688641454587842923309568260418164903821293676477698570319658136711879504482870112616077400742549585356744327778002269592789389514121003455275237279224983980182965371735038533134720791467164379150046010268910212107791579714505021767559748950361494832431138692145494207235533372444472764758064509987405991301343755178759900778079577676248709848578926400801497291824015978352988377290171132671213528880874169071048442938912493540955394302008931628266097326718968854956727869051845774869124538470670128579000714263702538437738883288289017142062280065434214251460518774309605754412578542446446581052626246526917821314273314718558588147006143327195161480517787463015018417679263529476953857276834777754960000728102904963640167833592235002331925118203102721964748925316148160925563786197675190913053546911234723770840182519086242906385660102992033963531110105160953582536662302877376285949282547625253587475136136473558702966915414036592449321934803239703257509708468545984364413474728537216002770653168590847255578164964415026790647620759640425868382052847430898025451242353953382013309695546808814913240205993742520393429372055777732676287029268336043126587609653484460703299804197979033793340560038136627885844653837872810282894956670889535691264342454711278093064058129876406049262749095065630409369667714394244010319341424079109050904917305111425698074698730355906194579295385681775287845934774066804493474705606766836737242887809431235857722114643546333326176506544179160704812504528298218008923836952723830017082744330023307667917555700212742768765442487736580248399922513071371390796750929574889669880790606917299448801039502687537660436001334404601420803416998734170047078671472799772427235443544711238052256623326817542384294909903671265305404150087204603818071143211587693156297199621344086283151608118591875197465585469900736444411833664735500494566355235002632836460153151594812107144459714470704468574046872144583337825399602849455290140662148802833232565367166098600377300827530344768688223748989858391050260150988149713521956564973172235738179656064404389429028586189624611385856117165416322142911589601307006328469059116827883369379702066258071750775042218768888259647594535205419758606106200900442635742166771585215366779727500740857319469885074462583398888309102562290155604757295801099609630883608811352586545319200472170411584455344059031932041190978113352721920595655872862823591109649654953723675589190810819873255114258215165022662560361366248078816564174803838604212877952293300885261143654630301212138482950981571315459782377013488967201240647000500050759876989200757937474095598671139603861544154670589179800926790010889749636533097134289824142809952644274784117916054242676079964996978924482700592427617402212669527010206032131770908424776303657535292246484234228498051111692723029056059705542818282125885921072856967318859227619213283616450830748298218980360149690065305408791167988149956975040903296036690508251837478730508968365233489216831190118761105644970821927057325556458874077901493223897998434717021563995288176653304543284091624610775546121657008325088173256119972678312115125939779244119555485668434424786282467429720559367125680950182279261699891762484716057966532697702874160613250890183310104488583904925070436672183018375645137873441340361642794193134292201198543397640781614053896550119611796278366558556000104762802774161113310009144928648047534163675057618731330739900337340504643110800523000198184213967207019309912738802575800223536868789873786926842331553253781357944301119739876624759148848404770841158815106294468720378407972517794614951998466407452152609929732330818630851938632808498910370575729301892876073460835525334366419160311279296715424420719928455648775386667486709924110789345843024265691089358600369133039285624816265889369736664185127213924767338252746780168610925417991045834033559424626840254625434576598753335312207143845407070016304401679122546579173803084253888703667825286572719710010059393360554218342330918847911501870301304285944377464398857064316962388476038837638684598714950872177537962690126046919854214792313299583987054702565920817133018868065042096696559619616525045130505486071447033646561008613946078521746638050065351916608605866280002330429269152804139082052582442332306155874893019703419857913667210718742147981092083661612409233214551341798705051171091939603577360423431542314569608963570304442162683158903251294397247018333345239263536712950325977022750561842072975644032561242757599623785572688598402341888311355376479107409546192668275073814221832557436051121066673805043637335046801350949235349503649176818599181265462780138030237575994583507390456103704704116887314793486129243369464909804371420119463688687792599396448115709657655050843180789474791358140045533778222212554606084741222952062476100711070368563670081340491692177789450689122746543092201311833154118531046107787515262815518708752551446576380934008121848997951232811663239902231039430906755231533594933246586315641433186058350587033760415785803636927511333205584278765218906061530247630348516051461991307510991544942064654393343069082751979435214971897732278991638973368205287427726824955099275451043859543960425338564907779019605108944040383646959698796025254305335101763484108784139862869521686378517722317416939189183202790544593067009268498327872073060408452016140969680771490976153716026264710816682268232437423186463964840234317880902372489285738688914204362443863417663996107143620527057694941469349306892752092042403774142022037652152271929231606625124910471459550610277329912585608075806190536636509029403711702991982796982911281455021316749226802256807656500826253798482575920562419019220418817190123120447978545937619469703406675643184941421249199020980288633770202997302570314751582795888043223781607961078104060512793641554983683106473244688066591702301817287117563685563538043754645346834787809194001031480403870149472036906526831323855482494076400970541205436238668652509417036300245862817293956048165203360407821292546158516320974899725413988418407801641411988092353526012473170911076850735233412022713904143321637532168424986895291440882296864167754920686328092081953070504705144194749590687662904986105685616702641334858091206542773243596444460168562110935403686306711756937236080554630530024018178091121191467257239494192421764374388478998638373488114585023955889949638988540714576239304151952326657626142859861636303225169248818986385980024659086187853194387582211055986396883447986792403474739084698740782348965345670855037533694306325887224847544303324310452757851625080070119669414516758795188122306704882555281602187024282723099896185948264371785039393296568514728978556061235962931058629529652412764357787962617704285278145622956698566077361556897499979185815881108597687153679753679943965034142948238404894150364083303017851779825835866097509645326403755623832493253516152136277726046321140639313961682664565081094818038228329045753399828169244585172758145640397816037259646300651535036843321913310908335303988398179003089857134154994943573532314915416604695923715346911448083275913617095118738802887503419768056923803678224067343994252112470092059779208495517518024470987785922610937511695128875344469741871792947775083549785622037417492006777675408128537894621920750358909258389834473045412499821297763102252845659131890645452774956586960214011955433827703803524139096901680341014448568805025411521841974292024300587500829340720183819999288350538438710607796958770867601588250249972437201164575513220870837390307365408052334236769255183590106785594778387151684717603778519542856224123043734842289925059995999132418846130878313798423250829168841356301041222890613593852861241740598427754664147409735115363503013812098784357005339640836213120518580579676391789426255050069720608445927045907269742477927910674486476126891406117697001295182777170709569832136210596492931641992310493730215777668349372639531063600702983895839421840753794560833076406919987346702916756996659516954698423737459102060812384575067412689431815116907439667364982514589583602468225352918937810708412058761457140775843987078849772032603209798322321778215883217651651349753352428815867460545211472613440494398406172253485933338800251205760085775098632467971182110109647081586746989781827202435087279269552738851697920440402545589072089083742853199103138039253570821141436847374661881458592497584472419371620375059507016144618190772715871820868298982493221779998684843481291282017049017638092903360170229024934179433948768955325339540563051577492766342931626583160678209527235036456192660361109582485258810940327728820872846764465530266503611768800669716411541835855946662103427796364473416250516732878083269532960358123872784810642273398761738168347337459248596936842963917627764414633472166422800899152089209102046815828941706740393062834889248893049856792331546080385565615117840148869049985857010577885164074919120457431920872668435714599393397233047693932846804069690809302668018844045258768717883887463567113391580290088200871868459593273154845395867958638486535894881040524896236797791214210681255324811120744087089060563522835361166513022445256174175318908741597774665435765895109666172746924437574937457564490289915145483403850152870982321627083226764110057042992411748192747799269954893412802287472644893906775757539526548641833901798449232460342503525753700092756169431926252899544356569374282005724761853055648472434063148282359318023898278590845873251878813168546739285562072785542843771247206178135223809906837525881876531213572069475045500423850049222329088196918767918186842761734194857577957194004904224372581384959198693444142903173246447586312761370584835412320948158138127658295332763897924363028291777464830633862863393121188887235656992511423316058207796414153273929856244923948310705486105738590159738639472977029963594076104302227284899444539741853777903151574106605333958590985323316099062533547168694820636021769799666681019560556608664228298875287951000389663252277959359992627861621723636544337304299033147083414932092964302244315029777603942363070314210535403717473525153252923560649012713151885705902592511724500372135831638986312624393180792062743183798250499141549637690022953167841046959856096722951009695140917208157107336564022641337245223308861176206456164264585899035590697096085982025727195957686313395874580334717630599096912698758263026276724302569414184533444987905000756882130652063588185203730118031670015267758959963785114636718583971400182618459084884450025290232064418824153070379680347620261668250785152464724054242366002589413789942588546905894937045739899664944934498650874764911717431487097101690658261715324553473872900729103006427815595564584024020945294411099306753262269368179585042337260847429758397956808770363304830328394847384695515577407911733426365303256846530106276705282223525836790774068620733477354371214743370538600585791799483134165717195275903342213883016915251953370784399918909284750078407132945632323156074849310781211408750559166916977806421626866138696880320345095845079671482831674077281397592859989560322008164823302143143607156258017917955445206660474373965662316530935983526802433132377893246081876445378146975892271930248000757448435375029569289364023674008248903433078677932106494221957545295811819042726805822258702706380265820379469896601074518467165863814180564606934120862442169421910254444394146537217508755153037370941461423327490494121058545239525002114192830091954582404860175963407279112909819047189092272653373155894711615868054598915322001868695689681460344580200157257572504232690966519785673346366752350561083672481347560315467768212822363567965237358393686792350160210124700496155189323321139523955361306485825233670862764701105879027171326022613389809837343021571539638759448295662757918043795691785569778171634971854652406428606018787431275853026137559782170314532909460301919720387077805841141625892738754644478170840388805345378670454210659422091683232264462895323690740736341207736726771296200815954296084242625786147823114804244023604835407444282487061494897374710773214690295875870919500414970161120992819558603688453973279088161806030834201369799294675402604570153250412194197026519309452905051000234643516396196814332679398815165881590073612274701127588426891892448573312982145552224979138008780027790022433964349843204021140613438918356238453691806434625633354331070454159804265027039674127860661338678335890206172654160782274284669829522893360307043990518997517284403809500379042532252860849367643289636058318597300838747464726347319483650817536954427564687798704879774976683453070339211835484091639999669601533012276629230275328728923658878601852398624963052469748849996671743118234549777310215183007502635630924089650474809142315902485892125742934418941283315076733094105010245963842742622090415767395065812851769840710342588018490949836696532772939322093849400521087793368303625776981285972979182290205007786826334086210449561654966294996926508689450548607405275128522233939405309317922571959693360438222318035301125155056445958050179620790837787428467619142922522268479195298988044489517784664132799571111067123539051587966049306171897007691779141143272841050173571333703474122998864982313287445551044092558313092677333258343945511598768173259126110510935494005905214138044481976702193241741994397245198071365547468417796327006353390597580093296526805186573131373880798425481036921017736298395696710700964069270829863279739297423797075104606659259262759816446205511547881327550831984242068711731379675957695490223672520932018996026321412462446510596000455652124853509220472055959300468377190716413482157718955360827921255681162289787615076558886076949895433031729357999131210133445773860849999179173104574139079460612284669416732205237000376249840129849772270609606477255107979277070151515446767550814938311106714115819230226275275051509729576067154386506023670098984416841894750533494092446460628398759634760981140750265103487101730471216898459109076008635195037111000335799352838763183376134011572174040746977615412229269883728688749154491519750106197481455831444655545291881216483924939136015689941996155701762607012580712872759939086242048523743750147248800693920737035321772972922862826982828517578738009233706955906103273114767219153497361618473944105885848468254555093507635031400723566243838110799592824196548247543886297712499358284370403364908406800409326540301796630128682659299570969107727024149169858650808194072357818088679968620576343419894544146839913235807230405587642151175498326990092516992395280045118599735798439918275328236973059170629017083523417933580644077513839917533519782212737928580870035733718835258990610851673767752472834320166791279867885671344942840893998005466610246146693638979929066146785305939259149345979934115248023513695809169310864181515749890908245512448870658799903153353153340580928834611658769440021613164337283816462380116685976550898744422445953902403337794861698853546631378353285351741584556946019433172527889280315018835178736675850607403258570775854953915896113210505805696881532958549231482976720660579865019882768332447131976438433132494751213103798144399843995596127584542921199488775646125654750534173155318798388085931713980713057076309856056853468780389368916969641461683380723417409826540085757334064526392762953418986304890744779440962115980013125687586493212553446215859854584447490467923724558375732515179107787682878089614490591134761826517626699766445380712936649217765098708206183684606945277736749362847178646252024902741745307393408226763238476423980256346891339709763120619770755695443230839177428710755543213739682855328476754299627266526715162802847443803274710882207994352873686865340441285913037667563099681253208545363884777432256134114204027584583111099315548837167696015053764717218883111277854371542462195292729816692997181911586978062130222723724010770246837645125231944644721049696865696768247290967171282915466713271425119926298972426192211267311922492045564445076397753404946473984228128514933546525985199120215888974970503756593495688312724103490669466049866188124001473965989247083170281154397818774913951877042732739067086306099817395314859430491628232915865683269542971859272992097257210287549439047546622143657880490950092362186016354931650515946839663941693282456140389346101285585725121723464301820150563099287875943420694986911839434800562521795883054679019426404242614756118716641314451398045152457716163552509791794027288946286789701177389866633733706004806117847695163759515175464805048544842322608997750073387577516461406760424539055974192681605886069596708639682273899668520500391546961224708356149547526116087494325773828932255725493022957497843960067954859534982266071218343609731079659377369738445450058088691019542061786584328254163113695306179295027835353722399420311003041252299967420464613045719750204618919316421877844953118663114649759991694264992374230580551586439403100809139077511853006389609769847076589069635228968491500813373139003448439497262415594089332758719778559000807500113664938733438155231603515575275178766950330014352864693916133281450797369834253539393023398971157675148579276019119184139790996822791658065865307668573596430513068115439361488034806957103357120877012870399412834637959756431317546511570786823960439052725776358313385721041470814475772821914811468017472334383650906456935384629119580530346005888777763676035365270223304146299820820180926363281940664305167360725389135650206602940568255987181852169992250109208952214779178282650314659183336955214313787793223587789831835392113466291610933060316388375913817919239265703390694589942278099137193961357771977081114273897082365439657148354658925707133723816507681856306493178652312145739529065878998812750666148359110209383961160998203115533937317257348451477528395386999754205672540422523573654812249522986883998298059490581711694474410284511820779506765269643444987724531751958165566395605211014177410550281397009596784305880518476796762106365007933692700347733857526661878641201401455478177196499715973064526240184466203094703656027339304064173064110836794550945801485301614864807322080923323424619689559438405935834756918827257251896810488423889094228258792281660316518109536694635365042713313676396135996181426621567970211920374335006556252158149149162727058284494093260489095029748730289439358194231803817248038843050100428604617127033986423634201291674673478975479445834030227147563492322981520856564648538897771483441613157799189352557810895492180641452559429238593436657909646570325248390510552227591728322075288206606419110776902191472331328809137176324596859678344342272280954008887323970302068687269133777628837337435355541686794628240171399803767140830449291705886985928970689861142509454262876334212903914350507748895712559732389569235913489565129121888770880271400066255939358951935993435807310243465844278704595481195968115740129602760721125094259000380703648875634709270002195354957464218534968455489677964904135514404824355077116385368115277492919380049695958456739677937641410623097920987361435415235038012060661515532556672519458227157651639907412317890182415157747576595148701582526773607804707212344879403173290883169849522034804232163084509629327719558273224741428650116505810821316290863606349150175164933758804699298007709984678057013705912185079241329879623619912554685567216241715967626929905843634430925196872731667371374385176884374412756680620926252582128917900567886014268728673128142848465362816049019955366803764081704864958779495678536088900614630721960491791866374966753433464003586637010896771986378630192942320104987261947123640874681450407271316940540061063609325643660269402709735998818583614406117570430061910382060054050740959840767145226984284722396621454246894825185594007019633058128130437654525140397453014788097604534139582780324981151490455803126997157728541383361921827679857591822933733730067478054884345357410249064925389229981975175438996693636391653821547407663068165468100360466458808051558235959759926377182317615214634740410316702477759746728447663488068765805788358362821572387721268095802220329729826349844332779105584287803653498605015970672079684728757711891131099528590632588781604190014629726643315599724410910132644460489356379812260669256397176204455005874497824798593559410238154731198602604378822222552264211962343593141787566755930128370826081402336434127717290610883782422695321603930566422029730712327428707897297886158596547488975966103746149243958022241781922699162017828255448847930844557953354861554420717069713916214560421005465234401627297450160558526570477999568385077512869054187285687547643526023903741024616468413959384552292145688649138121299496647497775148171865936913549595742469204181044559478041616421698831695488878845114278074390386163059218034310408166822848090272644270829769385958093385596044301986995820040428967080211177204916133083701827505241960994771255381746560786065938404404082237947541650429793624143313283529587213581293349171480615246556907977140589551633031677847602670131321916215354514171249536757044291782419968936804236887858740710653821906435114611468927715101495297690017896182472152293490338107989826893176291486526682678467999649134419266898800101732270408333736551957157704613498539454931250364039226890604984768742613643617384854223272960245164041277801241238794928167098877957452175260359782155443380994366817121936192073626727038005748026122677545286269190489147494779718086194252478349308374371489344275834222724065980688807377050558208630775445811819821339058344582270894316843326869965990116450299616527012834976766510944156604889008629024059842274793035986282608219373592089308317882727132268105147597984673331261306753261323882570693755904001741744800581183218522655919743534861269952505677468638538479394834790514964589707377921568956637667324657300131860446481738441757073196673723706867833945445840133145613257088612547958577736873460004988506267974833106687155446496962118482177841972310863520785168575516565528873355636146489140706097898903462824060334455045576220690103526721019330908720206115025139981326972132643154234730940138309715530420664497170954932662467910960335200018082536853967079450928170714076075943430213106044787374918724198640220793858254261578409247600400851060421128847898747226184879057170153208127529375513023568574790706275999237830363040119480492904170548786025358930564953967503386530594280671542464203927725856867350172792822243120409300955249601792078098175593867146411136346312946800220830632362590899557761662162234156851910394660807769018444259476952174034274540762587477873523354375617511640650769013505824945937734730015565230732716726733647699071426149178992578292116663048766280364591019705760225193985476497787702381235776282156800471071099177315227807264263162776433055087527955090306836523984452623004777624485961599507491305582612970769334328576673289195451709494187070366345740206693072334402680639563124408382322510198035224652845608266712989472462885190018934485139404145426952152815909890319502591505685366975425051373718669813533854276479355657002209904989715279703845055167820968818679921405366495394707138879327549269857607638468593559668526139573062495818115887005357237837592204903843387609618798049074768288707577687840999601958744920164716516394739984854836868633943316767737642437818494968309608057148739252082889013182291399218499136875268060554451706617808925751008665673625186496071950915292636407206646842649549757140250982528591655177120276042648470190233404295216522371095219627045698703922631639617009566394545950309484259574282143785527955352779808259211938693739372454626790155486307782425757910583181673944000392101688912309062698292210505973550212484958545611726990590944520551818117818371104608068431562477683496203366535612473942594197499959402326083896543669477397309592443532960939373688601199837490044730858880889912402749711853708216046835606795460739587637103699953032683317251752039710806033176734132907377747753262002036245213303624395625478412834663628136242671704468158712254943762793766919506207644941631605844028047731125055523980281780610329922979067883702175067174074230996092447915856138142299059335533429274461105888992977855857310056004077854117280257428791573785735192885605217659457302374418774785242756529070583228746883216028495627327106132501353233752155614685179219341977466043206340457147475129327866880748799906709437889658514902587698176254436929092635134276040380193834482032679212956318582361687436940082212741601192132215979032047950110149673008701613131813379266550928517352962385969933687083188145297148778060375095276737721635935110020632260155957195985401347229242869664201701061535780803155997583878058925543768458966205183951021595671469376506505767319659113628252342630564619384519138294725785469864416891934947964836746888011104091273706419078789200720929658411006147864339659993287852164940715483137350081108755675635311777040161312155631013934255567732852887746965788549769639193792049061957271263217508645101157091375327822794545738901898284421555449363257149579672025743493676007945336200763986109833406853687355555727395410798999585035682329317153924061306793871609444973187511067515738168719686841589839484889046209397703336412029152215632030015501710222414927726069867165050078107683100194746452067944986768593873837466006375982764407538673572452783172911263382875788214328729894827056397908930069519428345802323801275635060757785356862903862854872859875903202865611855886294621127849862988453405323903291887817605016514478048040655182460518475873317251931045021864032613892192972800862865692896147483274310189517799274210364078338736131653306653623269089460297204353321808802044774898812015132753176327746274388093553295232212111168112515412279884811122065382397929494411428243373081082578913218895799615455088847738153744323462036193553927879391891854877764271374874008869925354318417942849493662471879815322067216367473407794531614760779170309179188810039331137652927708939324531165736351907913409502036015586855618694287556977414779067162046980433597869306259820945138123448909577992835355314388154160316516082070834753758278054894149242064988920373776061229039772596642691077071567306904787669486860590273090194054478908436551643844065965572657305133096052616523319963191352721372996938477297672430576800961384465825176457598721724167315390623981538006347842698895020885593692881896131709777297313376971212208186871809691879597231999526418327524866470740574958344915853117827721403619060076329833939607373641703898261049284748322582232234327758945668588775778743008660210892225201903215398366848132647430392946186218695134063554973407454779926691867643877350909582014501029482696828960000343924912534507519575550909195039050192919373083066374438550836400617493500923435644360086466660603849149914763984325964370789138583925112843544934125580172513586589153922773642317647841570049683596738567959431307109784581173654506618449683086289558479761188693730808465888328337888323371797696120802917657155298937442309322811204673313154063345392682788221457787809029829376901448743671355694930556891053471227371003006813921976831246090165101732937137901053912512136564645013972760387998662842437461593007573911227182292435358181092432931416005853577441176137707803213564979490999011757213530090901189930206682213476018744950211127789226021151037266034334882004377970921786150763578574133185845801689341436792673718802161356593106619012014799680154148381264916268511543860953019527936627392356751178697358504384558583438453892559219512650772752948379163617431028251522307934958662351126197903551876149587835666571658592134456194702696405605875535576503396930489544093621242020256534672265860737628912551555204220971160240783021683070329471696530169100729287308024599027442053535970123062323026493504590443659035426431319657522653262533333613926959258156445778192306373469937081581225468890001897112504513026188070050615348634440411406206015731315367925340913212148756667095720670554107650617822238366950892108092915814038132042706405753763513814516355314660467186413041005927445457313099775745427087978028595647620551769647947210742822406599488335806100211356738547776557557041848376278372776600257327797681847031553471338492945993659817234058902338874749803385503997407719815507096454052648933982250584952152357376582480107634585490658992714392807889713480835927023605182535866231704370296925652204918046987268930952619807611213868817101460499251685854143007006095191526447589526541637728625045057007003790301235954091199309727097069559381104089119404805152556338652198462495517385926614137006483114672269268341518661205794195279898422144307182818380886648967691394558358257593610574633270721916738052051809228611334500478018054236302338596877353887735306821960503952783748591526880436016693165126892258111811404283597840601149055808037437581982788279607867185169006418543191862904004882566432681545700934717191032349819398961961409739929472498280552096504506922656046454996443840682357846527739311179651141333440047240702973559320896142900314558548375992961679803792524185956204296368769875594927647181585359042586801449424535752427625416256647723885936461010027398985892625500208651703078452612093526860981480106738430564945241754181686463975910718747444021101813727033901934806309072774896066622008283627098412611829724924874971017264368382926681042505905283232778164216014017243128457236840018942848645722814308192421926150147595832647671024079997445132392418055964556985417572680095834546296986057674832810570812809542235138889239286806288178524644377344902228286186164922819373413833873433634020690870080954963527806347703738966632601776048347376740971483746824111321182813310945443585383862706796330575273939881212381838180907888368314624674592289142749784647797016226167279716497855488766711181681044994440061962662485095009157897215502703197960148194047995329978651762129413881634018000382165030948844134712794702654567938453147333757220902476089396196293394017609762254952347296600767000043994885556997204691395516990261787639271445630509397781736102644312598930946557738404924875936820326426100678512820141794175582614331762190649753556909016906333547080589862822765777471408035913591266237430535271760152198187893345595833418475229103180658717776957914985159350337683945350773664220529245259339966099253327662330157829374717954875596904212692413178477736379604743974727291071729084579549300576964563382830612416653293367392920286262479338384791384975562009535995398273311817916597992357223763908363945226099864663299577709133714160661628024922580791016785928139411342224472288818439438122199178103243622396434857137749480738893578860104757633154259226141174246920468271733965073435666976961739443185678923176845399147411373156096972400673345073192066168405898767452046036024884854346938829404246578620471725632013529904683992101606023842748789962947848295967186504503112995877224779738176268414474310029489558187059831895370117509905057509534487988209588131871731761728492452333552631810581968652337684319929187122161316062541122464999701858598023157354546949256920323889781407182105260190595252932652954808016712941113408329549069059621198563273087145620777284668362974872716675980274886141396094036829916737369987992799007696191146327967274104650228781139218886520528034814966331480216080911997551651332444872047252353082107286626672577206028575225421177864853014930011090121933470064327285649883917893271078416982513655007421847240919194703188987199774809884843809756675837885164452965253117719846594151726003054146103206380030824903844705165951839328983216092433874257267659799718178588116107409083709367905192764748530391455059837632633779503129346702274115111335980519833458224410975470831488494613158996156104291133525480046449495790551324804949978850262789539907294122949982040462781342019802184712496393307577129247601985738837166848741324003549412473683310220856534997080577261863488417483492781072808215180664758258003225725651438400553637849277912808045542700064817256731923758757433780668706223990583179571021742425784045995950866622187778039385421824256048542689655360531856205196614760762628879115524009665286883675852851673190501741989580324420022990854851200115267803912324841792316150404515718657358897582371227516887399954933643981829470742526900872747032324973012277728042151059702080089575407817780495971177406453189394592819367198673060228339571654711728345775390398951278687409273841798054152340020425836878224887281426312643391789215961508961904950418095002502324523526925206086204329293059747753606272451838850725244481558475036863175945097662951297988074548989516373714575765206838826299838946814002527829414626081619536440720659097846495386507675397186837566522967024574894165316559891079557787371304460475159865449077683038350366542079888233440999427956925477560760806921667100701152771487372310479440755455380712444477335508459528128876742098142027492190744157262522391120648255255098643323934484129435471930774869192119592647978968063149343455813258513065101993379051647372499056094810660526181663467761930787554773338661276612881145678429825037960781424732022107122795738163514158066644343138163745350830186288777060317472841132740710637560954822815377735111429721757668121982828293413342972193208034816392015336576770133705457838077418834705486365623676839781632003652002382662702496127072472009356751685426987520203948355948827364033917068841682214684659084141230458066646898839516087037307517447003968256987513454966527885091578015575536690439686191500803196281755777152464299310242679276659322843699772735142599018297457271783411775760226621351242822633261076600639365032104194260750758642233362555503725866333167922086326914733318795683639591129839426407409257669975054048520727955261380750243258501185861578201577772223255167493361037752967506751543384457223848672898297387000279924200863854866719706026682152969733165070365700615208283571740315487728951376254520663372969221505644729984285043525822792167478878770562255548437953220673493543330522574491935657261808429906379049637354748799416772252761372548762332095698475831315090479960520362238666815204501839953158283771671514405439952098147853859997417758135986671787886428248225408224846696641297908597339017192622255362544432982992679027068220422627819721055371826668338999568400731774319167142367134740061756457649681491546346837290234054797425243027159703781112178735712394226702721914518720885223996680235123733279546492754631642033855468063424121227877816926295614843714499189356311007640488189258320693083821453895384424390915142298312517217931850730520474155715231481374737007733008096403072421304753632084605067729178999713062723554078686157966898002538848573448684550422839591834056344890246212476377844294114483325559330839277302852483822168856314389379430629786100778013939914720758688051211402138091846535328314779564124019625944955120931805452590697496565246339349633617095151800809287142017422009970107179424129032658050365518685820095911864270518252014669838821534902100032973611396478243104569654183192131091540752761956801543918245964846068753899697920770251797847688430109804374365438193486198440777327092115226536096954378525432521352486402704563084917430868775330217594203936786149254375455994736543186164903504759769477997766721907094438482689121989653130098170769677036411055910366698339608647474188464142886335505196529591777290406956099925068054071067567979112346203615730878920241887660865906350987238155110378065673812579202463847236193338532092667323802485217044516317074658170353158021378439344673451730689371530029360502987325122499158720215167293810493814239492716942474730674038379717356342397651544524165401285124283279385909632345247745972500911600521355406633215361564366929956598585327744997685722205578988441125295234156819556399741247711779043138309737608441847159494811456876802523995941634253196665957251416644291233514879253664657705884232494227479652132642277467851307513326336243226643763046281400820599250853088938525605239401147382047468950912561266093545069481757402282469360336578739012195178193275752665731806087457676297700828635327331471937508858131022598207657713211788835425902176013132234842640350271341760029940585293244550879516711880630214885855986247147309696933001072404523268537530432726971886803858870380179388612780298987865032414142478058991387730525248669189655976698133910979326625172611454508452243363038839838927458479659770098964558217579597271949697924402891329909001221756796141556442500405161020731107364969721851485962368299546140160443757209571876295441398585383693600324372415655202720927023096342009539541453941226840331498507880561554822981392831839314693448498450624829191941910540087744241211080665068846696831433470252611636922548698039793125563124292777856558750264506409986657124115725795881589097999387482431584909723982078976754782687466744725887417286329271072192825433713894486285035024853174213358354621219244163322741582860161456905333424442091939973781126698101304522969365937748757790283555791720919429963937112671342903320959489895809130452884573874920974739078566726777375041442361658063213471704541499606938372509925227123273243790397802437130987992846925563159906284839879861449481638392670102345112166457935344354662247159150264592917190046050651142498119512350750763982349016139312369688360447905244865798322024790442869040447433571563091108751190521987154193826541295796943756213597059003742051342205440577098488797382298082735372498642857798146278949510015458984831454066844104336398796244228064293600626871230036336842111972583890815215285806126160459486003456385429379677113635705031984476113049321556397250653559221369673234124168112523929165992622935477718668383151367366466528261246185217246782557545375273742051719751092516164238677846376364693380332288816122864831808791658019910348650750850218767489818563479432616828440203364243013040869850048732175388530536427857186357329498880049849666645751748080153802523737244315722446081901699461008233374544632804539585888081116500728607431579102591091224703693068196137749203112387613690459626542606780339732216133549017251513796430444647893581037545055735720768309212527893921860896907057496465938468240613883621450371659035454202319665663663325629536885441724495264476855277389461793687082714382184645418865860354872078736315877486414048409523805835595888352530326574388781932764224592769746372415696642111004561028956173104101130763144543857643188512008282911315042495197617938420961061964612078686279306206844375982356618077962836453760975003437321945854164204977501446715350614205124314824569655750671977877616481696887149655970367178077567007481304871933952758300003898020817632344904378189732190244907946441538048735536027246728962175815001689692765795637801240786057554352869964251788272198408802600429786420415979348201562718737858152752043497832398515613098224978204020318362962002069586317725560043600284853837296351176744737879293483114696533670293876865430285533661442948315272432905275626546335940229181307179085144890227834194674539614613997694614285824153201198005226996868889818023936052896525034031060840934429009459546836730608801101891866012559616757147822932284250890077129244176849301350874083232564261396804218018472100739156857576371680784754440955180705241009365654177591089529551441250091412906838290871211043433785385129351625556817966055307988458024535645481956314924696494365457407355751802904300740900795312273676007240933035622974197357815046561950789148186882201258978162815286991404541435686732852595819978352318231349882250933128338286477953095310393226249239888854882790915751319946404868868820294373661553560392609319731738263609953522842065425929057309286503628804438662074176062314804526787305163898448928735670248700699499213709446547384131090849114062061987028901173520081654755836040542947340602079201776629677732305321601794114553234207001162170749143471000754278367510142400694788341036995087269119091041827379320305744094725157296833220704837894582377630132143835958449687249480310472215857999734897905707740218771338505653831038126746481039157851590887639088257138253085835359005527740111627277024465548253121623591047020464420775742286228372218248575524510209655067735283267103947380856570077554395866978320712779296149240528167724635595189545174231127299082758438254297888670258336097193252290323811028929836900924008561087320468024754676542795777432142304950237613412353326925251628661135253591473818591542473646947859772310556849158302036328715843512085627869530115590299840592994685237494916410053452874977356336215541503596719704654231451685738331848611698193552793094581693897001679307359574437372129315941315269578338057870010360838601196393373616306253286432774399545486674508853696577284478569359374140206727000526810238913519154883638680540899031538215780180687283503731206110300798636904134924479935736744881040513451185522717672931721626149663640718912372487364399440167471694410871550037700003053197331196219901923159087271888327423325368754674305526106911657581587701908425906207472141580386207183617779212731930976691506041325064276751916963368879472191962868127361520582407079078154376112965702896119247968799298241031519215549897834372377875029938702016176554554617406946969227281099094655471227390976915379527595219962040520681892609753254843515951052354759080929536490272865527189038469934518098052271650471373919371509198314047293365842702581472684245522910118611178269797311948471753879622618336992075882095961114834069937533474833737432908543818733579677473010158987761681471895708332876047826725305027659218479027031832972021594463710882850353476436595166084378519313247081386606666649417573140862604898659018796522336595316768316120450263740201828759221557891652009549765004991808555542959795876391269144123601702938230116601289505340100265895386032530950417041799187240723549627452811543506539163900335602748929633089826826588836495807720492605381028013756289826129740657604783137299908068430887715235455499408533774918724900800484893491828515181498013199413644598655808239619552633635528627914233407440638796532006720186600687305933936524852073844922137691616777498654240682031216016319229371277541566432881086438456899592959034347931815806650678126279639532322662541517590492107024712856248520642895001144078455007177647094022531245090132866933258011243286268248064299895747097741625961741057749401963639895873370590571542749347338601547014462683774225019105538895491338823965606922453123468044087143301243270662948361183789845885461525460491355666255832365738832274724957408586086333500286589961142657722194461145606164108443695755045760369242499987207109554492846381808978284016203759864069246581334547396884334215011378700074986443795359745519930759549319920770020197857670162664149983216730028605693190554891036123111140798592015545184468242364316661611659794287651358588049673836306668127926867974583634276822004049033714414247148406354204046651665940453406060720772165585510737734392280060990888482759751421117727572725305673694579007940671258079672129134513845719640807865370359844770799219818298337298279166717356682512330439545014141859342844993922772375582759345123790846046356754972675248146942388451461007104684827522866674545138001410111060207512235093439048677938401557930349932784497292050765032440826538610069455691648186355576064680832676840940197074059598423066447535528791426624442921562362652819293703562208348426137664556345911082741222594358108799892636190588201922562991975183582025657066764516476057063525799129139679405422681069838159228160159863041501119136526507217917227243334742343977772746323970319740062908989100100323113361353933232278683513114749622920818729989613555153821824377354450726862683715298520053168195008688860150118175603793720264872956406530280797263391922869989751545982310011271053699184087765535592350363300032572894272942352849228899503238228428022625764029469596537570985813612596004416522976648161374683207127189407652696947618520023457177094773287945186441798672613735441844705463251417432278474281038182094142822015104866493229065870030855965287143531861971844868380435380965844167003454812102482497829137915398005003503997514626842400380018611719442694566623219920088150987713768324627323102503415244512689154958011281871949427183794557143677039818708633580070122286057190121159305856436148176822094204377974723962221439392176664331387679426379167166944530909952269644998067229361126200041409270752086158760667006659689325642205575280184590029013690166905445049282531286740574754517533669588012423405873435006109877185642562157650162931722804857171458039419504444964033675472978521236345881121429169019701552243073606930669966875390821873026075978181518327512819761240582044781870242231166910743727901744379428573823924106582715188675147067153125371301011666630636930323052640943039014010836578561134886921430051505607486395683904207442368783381646450749576777686005502510141082796394865563433992157461738597412420122518779034654677162314280939260873119709882209725765414547074900645706575510758277845094549550254276656233154416454784557341950433073495874078570175235878356427972316927040676431954800988713204059434210221660416741603141635245609532880877540679833543626638181381631286301203786810325435054957743029823318903768156504555740088551266409290112260909321451569598370822991929167137081836005301672680446271121861821380224865017971221749586194282170756696013843798399018038835921944151497563079187994613827774123732612244443124160368027054629443226563993599877369190547122635591434973165519215471331602143781059069248607324000452796227906294168475852786518697680478447008193050747387821588275912256838066513687885996823994441154052277331535888455971464471479496428262550509566646770622290572538522402652459679728073963252081356653548765864271041094409145687256981299410062281788582925733050354329166146841658380755389988242742402053106932920559463818655466164192188106644022034113112521453804975158681727015823874021570255309186689263890987406917230378189707790502189009180225262600192569712957736886832579296450844451016064517411702178438794888250410306267599521522259093629581658214011866166684433362030776114087430664888497608779429770670025239891536575634387400346302357573680277888815876260555566972786276931638779173771321681805297121286798538737227816306126993016622614263569993306176844446140842096415472318755298758244288397655595937281981571041050570206879357473067608376410502455824551124205535766048708267649789699910232657259841502390738119333727387306709397013369197360155282984210739454448479769393257191836533022663124483603212819487130855299710784786194684209280529445087942426854498574732248620724087816272688214131126233076254600977879453973698511198050340386176213966146952770629445925519892924392795173604346910831001817974997216550771123753304715282165872128507697814202448143571535925984696594062054663675737557807968817685029666369907116858262635582209370330715667815148458434966140317994748440057334472319393550046119420589747869077261566996347332141628337616997992408625086117316060097457174668973388461177804631459501417551038054170362192711269076435718975025823094781134164264478250665484146680642698086968093741644715406317205107387611972749052546523247339145734866303209759908110638927580253184734421774632007366963525227801167812463480598038501009638756008457149942514862681003208729916235528949719197139552888749318464246334919801869687604706980138376912968614813008552081562386050618658187083747587862481419502067857117344293577762442598654388278879217663151550450882455654780602271009087070021060829504787094939139314185307697021865880894650283776956353209068998621314294782140922579804673541131235900033768734211181953402639236208602324641088908849360929179579858365067576075536002441669527287136999500873890901725563799967919397849882142400928010949614949496168747780829916570883832854578003610638720062466796246249706384246075130631419687626764431497874642179081488275470439061278916580373496782581081742923709367025815611632960869726122835561657409844422560843148257565783047365367032466482911494900730859882351592723430837343926478246413081848222745140579772848365385419815054512094227084612609527420220081505760052343163830736029087314153564940059521905319289819696284541225093936685327492535471130899256891868403324817519259889189644230752401066809550445522685315764734551619511717607612874490777190116611304510210801073059196604998620214706715334572063113690218183268186140692989752975816355583348972066356412066467365196974175748347661583021664149565358352054244008451103144284636800707889130409109474490695684606509417370229258756514180960301226829051079281860812650638997667502444924054403546034869824863293444267721911679569541422126567509117302047779799175442161707782753798620177988665446885838213046301810945454745710099417094711216839159167304923022919860659043214437319571472336515045174636165533412909017694643564159856238030756675871761472146946029407262648529426649770545289486008943548288400193693036384163151293163930775030564195180206580314700352696093689066450726680883099339331298954476868632482346039314753801564314410612148634615400344114542328921532360225631855160473215780694342377051453398842659710638621517961712094578985645207068187451931119338785179387523724194129762891292290072930535819644974653580757522505348067084684741827472568763599788380767417339163332921297040252281619094771974106592249109094865788350782865918736644183844070679337165975139873119624801733193734888316760459728712807682405217626386571618036248397753246903843527096654129237882561999647815314022202490965194563580419580766092708700027562623472872548730836832499633016998557956980992550437299741849842208835322924988609329864123078851101649533791712592616734342274417796838713723960158431093347896441965256454512233717264488258539857275618083374548506196820173455091161109132674557429896710899581845423128991836644411788741752484788716821998364905142703650404660689500559359497694485262926017813291761463383982107306273271723650515697459028029270918264966011739740900676987884497048268547460116603265072219784536139145321451750716473520839032041782888710307448775674908606583348497041132459615849797282725639026319414289013747465568905186580631373134211389562819711343137566433095080879518314121172844298584969648126330401540178973920202244869185000227018320135648841707307854413924201311661013068067839424857757756088091899432289506079770107450507452124786380911236341757861321902498296302152692430574303835932914545239875808525177281672029212097862709031437488558092746027980928538230984165937413611633869068682297286721689085645022346839113942590401770509909801329513745251222090192325940680911560951295185918163918258390990014217822653754152029543059784325935318057091468465181939392304582598408339993572446217520055587817382164449088686369527450363883399928418687963906877361733502409587202561569371458710826817463437533393003593645140360249212342282183821522841075007590011187464195053528328996126238120849317450560749666658058266064184855290481395825409177035688185168891658041552372612643536025315898683406457323863028649010112504659608817296880027855899637717784200294660938764498266631039983217914414945518893185074214510899697116505515206819663690220763847124607793746480459750168262214677239218361426885035147013761060707315260960343914317892989637720883108486386126784708018196594219633162878077097144202343425407778881346699333422316004554002846614335790065976376920608458064890787513813178787438612812236586074212480281862321381953989820066166925001676900297549650870303948398503198277136011664444418828968840816960579078658492881239829005465121240203107203904776972626279223277867774919651262366349445629548392686237261313199057896353223271438696166655860382058845650566061306426124181652406615206301972393546592119311790152028979741854514353816867306190048039326020638138243194487734226349682828517145351573532265053543151169720799225122935302534888929539801165801280248782766434404404228097802623671495978344786198725908257140875806881451383920593320718417350738769751224016435721110818829309794807995327617656558234259508071114176884516693509434260245188125350688430774660704544788925015906573110935413864709029905330453473656893791742319190869111709390610581237130516597029011929933597206302745216707540709942352558697710244630225900836318370603803354439440573340652319679980477615159499059056580491019632300839690078579805849820362977757400608876674752020520086880272542898260991626174218507486131727495379210224776440223157695642371979673937172786892225405553600165729732549372454166222210411854903834492348150526323706127922249096680962795184889709328714328693561338859940207831236323984568437034225880869671528219068124255550836642210254010498604331836962240007968848113411830799789507843381145579674315934497793303948825827391052227321401434778715777246842024028323420191195287120654726338359965187519105864413770702481850992810145094028992363712559437268164365935655953125620582844181803037152185583166056072180223799325476752359137888207114038410056300993120724328541683282093135954820576784328659060235875727183669219292143198548322563892531932601087024572239616146101601810319645386800103494494850062698995775830912073965686026751694638974524108870578877260858365633241933179508013081970338681269127735009930178644345168647979318678974624848583978502655907231182079153149137504885603283396832538029813599723968145194750820637104601681290581939017619961757918183788775672183048502563204288247497200885905574820034976475243215506302928337982072557482316024455136863877415509381074786503961432850900144742506260480692998203959778961503240992586507666027984766362330062287955806319203733793399680576318374277834088135093611746397355729691828092349254119437671236382720393123641507636294684129717434972541655333925308947552497703874050645376455510735824063566286714168166972787705877380648592648820932586471265795930696762691514393129162939046347331150761560928391809779723052423910246465788809131684325235964668849563557917786268458916424968707035662850688036857022941861972947515330551972926020960892608322062218336544940280598615057505182742646413853601317909858545474463566884997257252055035697339079232334264265009972624112687667031488555063588188531803852019210266322693172305710134481659729315333354049365851098017587151833359621653232641770239595455214078818120941788870393629822588066145425513285595482993078475221786571539853287172546474313560385319213924365150939712315643286813009960399807726676086790412767314859225769993160105276686101305672168483153965384717910222768694539267183245013068842830569388688252693509654479183574234334294528666327491170594810653014532426754997339329300679081344345393331286090252523884778468657605027797784737567279544485319319992911327686567151037036253465181317780721838286306645882189587429383608477906856784666932601006119821925461326749789154010985904911203375015157207480081158800915867464849315236736458837140984850749236111370537555115014035949191862706690868781672878291159992728455620865456285484093797124708685217086723716481518731603349211843467279307190662141398422972556528494416625614273856043859608911608916855161380125838191408862031097766207315709194485314405135464738232982453653356322820453645204148523037474766308806023650202298908146925372097633050723970604302913333123786735751266850295305216869213185517725801508798464661986764622691885868944365377557883953682385625831091672691789042133222699464339658438561994183308521433205838200373967708805237921118009559260503428613119225292188208809621251081493089871704052419401586105728145066893149461694934769463705172647994264265603166768488580310074340798516515307588131606969116305479419212481165951391760146674805122625647186333698833324367269322797671221442787018732140799020215930731484651749254680321952711682209260379131087227696893726270363100370797946039636562008029477785724751887555544285895394002225979565253310914020788396244217422296170471034812126807385132160084966006628132952978807269080875387037339113258958929169247796618297957277803243137313310122172374689677562590998961605140633693795185427810464189364270108301203524942629019487616203864666624567118433750923925662995885946724131298551855200878238357399973884550783737974514535922283563571286703548885775573605115359787505089220694721905073322763295864728792198912281479120415052174967311642854131159133807733017284444226293617458141761457051856292979865130346535692271436077868042644383187354772812779818982746997641009634906513006780259156543366487376128560699496056871293677990764385734467403363226953516270236170620703328433326339604360011146833434230116198756115845554335858020760688993844567659482834832157520221425736331054498193882220068133036188019255201844635091837820975443118312742060026215373853224099651811155159561053458564889747127060745221685489584108190527043897483925513547640228610558053431867557827786628804580547705004744391312201293126097805761851962567853592424111116432805994188661198577339601144462522748908198217074926368227633690721038743337504674341477271529606003190841709682326706170635949309701215183002938911509559314582672966796171620163855477547452852655403280043673698866728454795960161944997228240840276395401141505036022734997742016141101879599342323146354978325621535375686566884715619405005526309073558072924051629805029580156719726671097436103807305239113148342147094884485957708603863223958013585826823501817650263000221986494252627954855800637681069987108841322483229071068313667518773862026599128179682176246632819608553073664188370181797286674173522600659035882306342966724361159097980601359997652564361288470697179000681930359790874194454999452268678735917727031460348313942791754476569138507168886367466275815438439131446139237414388597673605167596525150297337706066278356942607875227502748755190686567561085768009514599340790376829567036911075423140447650112891411291827746938513196252194957645718586077705131231675982928218971868403976362057029684456860476700250323210551671893493926073805791376667035451327475001703900846686270802897900995335613391525434556141735501234875860025793570626017692756293130675630559733315556157738139517488806525529675089415296921033147615894193125108111834546374254736729647252003699967395322870458111513626823172835280653803823897855126267856063037784474644811213774324665037041650105725093704848262916267347933867200263624124280871611374506719345332789941513187533067773557488722351226365343118907012557475181224023213967645405464174200436135304532896728347244558288026639926229224634710461261565006013896031540971839737011382126036541925974089879435310844490181460197206306709436103055031314433893406620072394525605752080498213739106065708451190052951034674603808475323962562279291212799738129623714847179265825592382436561115802348583918679668448271019862274860979832463759012019127514677109099227127431542401209719184120727156012990610304483827964706048303696274096026021269325212111881058812704185206001014857606632515231650308101064653961900189919560078940495828339632576106941205812188296534189364630332963270499127756815949918269548364406935049956391529850998295507320244017991017064969682785453840806515919850324229027701650784052505511121188735922097620502067292935785909989846058000404899451653867654456738568383516150310323617469148998721493307368990642248878567896232986340234261563302229505408565083143414304109239836278426129284999805188894956011139828292191220869669085250016262827816342177317298350478214896775657650907061532163144825405757053543579312756008146403624600604498551618544078945345377715990552358889009296400532415402462106849206952934496445014795864286992566617111487501752939266062394664965470029907633602825743393995159064928568476976389249434498536597802568820872072777728424827695824375921180724099655767065151899685426045640835317000069725128961226890917353132964315441471404996249872900538472374761298435313005907819365187907604684398935604284366873133343869992462393743175945324348644453607687288897811577529982347110080113260277024602585688270074207829965651242794205641160125701783541867415257019904846595257139083684984757064599208486670417085294482514317411655954543933139526438673523812526829731139883376133251339205871163077171817052522041634967408454756030594792143728482910793889747764127724727431869137543020976983904256146539019983106391187628912995694860960627141337513980140924560660143442344524313150209593253570418509495174499351049318579503533052794908867061614893464695266104783786369770150398057863252373253075129868391813313225140844478094969583959313094101059207760975896780507473006053719117828509539262665899843441156850436901687050484926644613311884711475410312433718963597818103433582121992354376195984729990685258961615816298982333534087352922073916279747586811293570970027215695312171245643994132241438733137731999908440437783754202427494061892430317438259843705526047355294232989333004709325247883409060200471817450653443180744759541193047369079576270541938200504848310744560871399376757827876458948050559375444448990219120163651905373280184622324443715231613815368909799581127618500977570768512185465359638976422887521201371606259373976447569916926030260710768802859597719876046071473907716139483998524128354352585825489160676157988685738324773464847640853539547876652537568336222606535251788274635469117715938732767106722681681902376822796977008823571162001198370093014746619610808362348654898159596125535047764262163986559741461133296668175708986433311593721246472860589316460692680909343713263994944402748398167877819764572730950709985439682058015401804322270207320669620453502902723480632394717418248628280044349413558615072374637242703016730525489916371460145552331348948734143034048665686732063092828105765580204497830203602029715687435913915439387107093577890714933227150025756750388500845517233219280059522558278816894950394317346931216655010330904579761590918955544210405435328718532682765177985348717095196322638185438450252460314248239373951911106758929103406076815830341385484194212639990745782552034640456943999438313028575616642934268338232487825422715401823168095675085571111136176059438408991864911318929914416569976192459949978245854475673874046622057573051505238678681157575481898725510420964955205990078528049941535410537449322829926198981435836170638889375117543249106434716298448043577185668182243094824729495814329700396033140462415380585835527209567342142248439483475832627225694241111593434309866864967741873719000277125193266539305048054598555713416893813325033919073185670714802444129401806293572080351801038758819303129506666893959971727849190933058326889005464572939957179587832015353834842837153224560190440476065084323669946704550393531592023504116581741823760368442875558191958999904843695918104089471712144438804069096234358048192941337134511458327836656644192591873487288653217128738708102459153716016487116447925992836055849682281369671382593227753956792575776128219759578693656240054970557968567483538348227789330038838993672161751870323780123206418457747776477209148114921956259446135147349334531185561225181882125998968990419516021138814821669592336762376355055043473578047477313966613085462618894346821769064025474923075244214669782161634341422995600507418188555429753628002021037458019904735331797239732531249976382398635706080876459039394544893944065761293571141023547432716507317777605950828139915621540333559298536790553032795734199781032613870078597466966391955171782126181323718784839710492524593762997793275949899925401273624646575399343267472453768111681356528224201915326055798728193074647828469818086804916611371290526897769500198913894692826914848734780239936150239008466022577896748804668885124049908500605222632309529879555701965383437971530623660447895142048502372217529260580330243755636899982781750699571336934658006752484443667264687948300964538941232574850409973651575244633441918685015679494857701526953292866190065395058907318168235379069868217869273029252187328647575894901545818561947168455531041612612874624352347973163702818236956744302499437469790979695744108154742719272536272400951148490334213813436001610468566970575717094163946517649852648237400923972471376805095291583993397241133613606450453375766074637002327002376857728161900009653772318734972117904170694779059709600904950537397694650380598446331191249411891747771137121874196712588611105275585339214095272317995027698090847816985145244521093637687684941669552550149484964892531763571589501434222279804067888900203294954092329279399184689454080308234565186244926946981841488648016303824719851321428438410874293205440640025217180470446965822553840543044175836011620554958137957308775205580935493142636079624030625554956595183196124759402481070006883622154998191441012899256097286342655859397873822613722937424346635715383851804603517291590025219614328691171203025308450250398686272889028270583611683161542098974486288213260371106485449145830336625171995232031899827120575128971822008720600916675265229535451718459374926619382689359520842737941941539448945635863057553679927742635804937553658555915524685521689316927287780115451009613322661505784563834617227281053416966142820292832562316568214862925647921352421608914380328574042546850468865030586765930304028552415473331653850474610810317747105515824106366254742795841512445196270438501866157621958455915517064523632550202713748606439440682699896821288956246909015973672188924953173719296246528342433742825089797811167717810040824000967058563879737534045537156531833800524345655541935478221062286124641794799424460343523183053016234333633509759649451304212154567120814756194056773733338416044785269860355710857025432908310157702042134486559379660460415444453445470941301692350823636603648077438594378918453578693579362883273403994086156609245885633952562665960414769858709579020565525368850261799191294716638325217054742218259361346682399212041912090108186276844836086788054219658897443737637726477851671650238725590165914381900240571790451683522013645382765268942495062809278065421205662226277493068087844124793523316982521447026769426973139732002364223644800962725214674578028110688816098437539560785470962477003502318187334553085871573860658773850645258244683754848712558133680811328112497709335156859154855673782254608637989804511490259562311138263060562593730131043441969772798206237527368052222964838620591320621679153146851293533385793858644763375697004439166297950352632485889542790157839007075727224454116118035620708189875355869234223005335306712637023166243959509015139880281487249488106213408427814316813184850693784591745500177534799730319661772916587016728828385158468769029461283901388479309889050074273336702392737471318456108161400934318375252600472130754605969676756312328769905244230858462069628407925061823915070627606027575984676535872499547398330013119206098909402545565112312974335336975869886029766646843121677585375608932491631942323124499902932130061186545314390539769592900435758830042165710378891179293296171227973428685753894284786858825709524342611570510784135087113129255632517792483997462400334916378159501902730665301474566948032292512859176228029419385528598074185766092027365079481571698108821951214811660918933081042124684568112384721582881035838723239715068320948066628932805834518524883589571298469602073942309289716657230962208655003277259518018984659754209728905649699382220880140383577945659834205782610735632082935924425580319413412426825451057217541455690262789371397352829869712716328289425203625990765128894527525573938646260952164146638030440351203214681877436750863506778773061725265957469958404186796412125675741683196535594629833965306813997175272738835301483967585885185549269936720253127081703517268318871033268040650518897914255608667919433087832252232655443916720865727262687586307814815689315891124671438259679298161830418396807589198586479594054959659370785659819204552389690820940122848746118387245104800815644697035011210120269148977939817643397636000440713238262492762630317623373364337350340047944327387599666695890161861505510864254009771227876286689853537799298144566123262851237489884927797593603703722027562152281200080734827698336390927300971065216893351685634302659637827982752835931698314805665102241251028096470102485106459590076425601371083683624492094050240871798949682735781503208545626550094143501776805831881505837781709912042110521660751281673807415120493434567913622916502623807524106802993380130407980861543327058701822256608880044463847426717338327993693108483225969300191787761681173480500535847261105176161923865986919770494557571056620091297973531112786659457646870802630929023464635022347859116976216042506410962000154242078768938525454977918544945965304808053244948221839399246791326321480494427628373347608154009566996331349327166088528801304733824011495844760014950257979275366039314546465312360646494954429504638775123054382928521550292268873410785087287852602094555303759601253838724531673433048685227726912979461963054980154740653595383018991805673272052880497017431216395800169929836382258819039719410506980188068764498200918114810576752689797369818209296035460788692808195369779451612903362445343644650091338244833481606803761666007389377409995375692365931449278759977531454130738230419752266549168410070197371685867061691583667549691707140174344707668538502059827876343694394272998688785207083190783569876360474761590466707809162123408126740243947730892390644013396173979773548180154151090785488339909965147860019668295926086605432859485265968291141737543513613075556287369375280293427460429593905386723334788458916875224580270501284098498556329153918838948445839949548308676826862650757589041713586418312092020667553051880827824114210220896192750980814397177132800961811417218263413311092398642319754321321480717245474175050258056770637176594787534113868304462263708670719956504691304530200800665466406522399777898819219852855400480002677056454245957989526135403003305818912180852081445048081056549968382855821158752463527973373794894023501694001021081068784525652008325926820466704836247750014386260195702485795074910468599366196895240327886047077945920335016873811605040324546282350964523991367803356884753164479069397275462794914545812048873973911198887013183989445451616983000216923190595166962178977593154319828041640950313763619896096979828505367440660535756198879133285295076601075166618159096698206440656277983539033459251686304597964617513578724595382914328774209228537890252354578834161300130248179991159786518401959040966629137840289881178122555058778070080401492664028921878047459549801820240603691689022606027670695511962312329675728583972271434303894652507330769960830259353239736757077185818273802628189959341144085244951852809338059928977990228469899983679258323412173504768703392704836102638463022052847570480093753346511631480233293463628628615540561763170786184235307485934404844120727077201431681748726108118743757195352082923798696675844614442720188472636795416938616806417784474210128004877809548656862921134958635583443187374303547331901985186926387457720738933904022678470281963411770625031235861164076454382755291881497058218218900371752000053535429111679824382128344653844659395281277773156386108656092229445389069370137197169348822806236567138829820337244890614922841683844112956136462977112194521012303175351533489613665043362830215134001712239072384505473921841565832837777731633934194879483801234288931340755814430691720527948177815741275187247475402766188081445577588671351172585371917318576978827333444236264799188872965810011529189684290601807154172471844426245834803165669076561686017792119880842908079251424627668343398655606707400783645183717805079248007566914579578942362588172734254901639067366078625114629208716179481946183013389193859381081285469826375774658790504830102065209127812529958714326945785792621348257432591216673599311220951936075627560903709059689115830231393408131770629058120852785072405722151558316038917100262560919956953519017183549044949117803587588920828492753272071366993501270807699205598520479238829456647588262940606438287840066403887143868614779835601139384783303529106645007587516604863906741894351624429745675456442387088741092173264270455600429503221524576123104706281874387446796778481784933051030818224898906408163662881115653174074128342459808454016399803415571447525343572826756353816551645086673800163760764836419959941206446602162415548036745620680589316553033851879428927036366348277910272275038235275382301066267130805046218654139982479017318289131094079568047023357533142485069177986547472164942313399682652786024599797388617494488515003417952398959748810214500937338704510712536969663517076976388643490217742314922059694868100992193410693544967612019802859576912641800118127416513165383414714463577457902518602220942365462469915534804275493286756700743591310999832675830516721113500073881344208296052532457418191027227255921221599895397595000938995161466622449269517988084148418527729047074635760629983162111109179149905116810685300777641378941419417136252786520885287077304896040612098002306097906854900115515075407959358942084133348294743184645176772548880493162802648044703679946527208835915085090428988659063033373920848000939832609016500798108374900706890509789009740969585625990826952522120828115581660874748312257983636766331272376056132260095135649930819043603586031642596864471766411737851164374105677785039909633889448322957453281598474889547191415561481916807899108161838989224485397927062683247630988899064590734186783045214978122096113447779382213890256264326728068766740740566555913029151547116326853801850681404852310928580318126533072118226354858115731099712722502366201638997256581347494232646873254339705790520914028217874317423102012144665492323981518954810188133685090415943602970877666616209394501471664718711992002176158219069571844951126163474297450435590413270215563029601962479303772804105842506258051022612190843148647002339145193446200138506106253496582123126686299640355762749219549679040746783590993503995517647284352370357783307233613526060636244535252022348090840556693478272586264278440617772796501077654863170230155767366043554853155861627206709179359642277024790288551041925664576956932024120607964592650479838192395592213009495872329876899571087346545409150448327121445054911239671778814811593926279132552871005998079946112256578304632332481202316467658604371242168849150979931758727775852698637827943243948535623070773928845670177211890929940472136401883195845848770697804410359668428424235282374828522476916063339485064399341004826044611290245178968723330321622447867457939513722473092921781462389186710838274189054933202957642866720902740125367643007825346718743093867344843656459482733957965701345681734918044597985289551199839448584610051368815276779135088428696553442120276246668456296203863187960235685037482100608587222860565839846249056508272220659496457740815809204833965191911880655346860199417463594222328233470786994374319472788255039593852036151582333403815053118230980922380653511012449866522916469424026324554842812126874813817033877291911489226868366158627852608818116129341370517935782528805708020197218115278851145637209041938572435022292707496881189490164255524942044339774726540453390728987920474645326151986208675035285988933195073368937052357443079671784004166939157233724745829220241138032240856612240967361382122236251760851077689138822014804220051220684205976968790418962962193165239165370751419981482671458419374194922772891573835552167204196711783479517566447250213694159737027408132925522362453439158843652042606728266792896815211613796269268719529081082103563244153631466979745794259023987254741227265671090161205811245585529740175374000487259889128380867471354565409230537834144022807587669204049134875268447583112704896286527107087156764267248241722347143165992000229293829714409094575724398454395026737271975362393242214462026892302627300809835994463077759697736202702217003275195212447080701245286051627939725184872613941222482641498105374317229623628899159312230981892550387607849461056618180109028159926291304835127188401802720140978341515066348006099748637012425379421645965794379161835727651802628965847661739243569520518385575247372498983007887696631178850237900238137710790983445799252751008436224080870304559782562315841992678915818816681693140918716244018231532240855101335614422788738344352756991578972933559933720017834104208828884792147720743569852954059247392237767688997895034545846600526541747817751392586386926648737179022563206602747002584213504416542330870032794587031527290367045896521695335513818623368896130278538095972370351133448837704811696701211907047466638066088033266237835021920127915990003909535943095683805419191952882992578248951965653363203128053284545317491261331984732256621265004789457690327168508802725649568215043055184464678132763523964170655381898703283447962212066938537589265483330151708626769411806605632560817383385868011171071718262717687271378116024381568987242646420425475543445236649392753103951407100825142280316233340438059172549630279439529505115939088195483159871991866847079938559453819533807510782254917596503560233088999617727314532676650723516056834288482489002880185190593484639869425975062879927403233956244187996965098656547383693086913670580467970988860494467285696922091664227389063221418441203272119095809454421494071711462183909729370749060063245060724712254239502384304092253360407188210324650642330309466453873638584710744134775816476098724123274277486032299276534181469610654516211675159459328256886458298788503123327259189529292973115364522737251828241862924844723048430953912380237373928051953628810381132156897769475740863246663543246249776469826917460373926467847224971035478971604485401994354843528207603946807888189814405209286873663089746225943402643919732857260119212435104934284092439134590658631736654847270356234657158106271919250918714181854701295664833210784426526503116955698147411611410174990508731988823534862078170379013036148980483713635812216500442896914345199920453834886570362572444506320628049819839372331669693493761456314515015119938313901528650558450614557761039899552550692472100901735919771773596186439642470581203352902547697086311223420734940185383894340905141320982545651081084243005215252423584086422467040989470592841075888237571774971812609177830645632711057800695723712192514726381917022205335259666314938180174051640962318899074548854295582500315875927138297505544845238448740113373569509105962150896774046750764424811027626011014020505149707335481201838235897490453304054494708998880538792818025858326714333929934069732297122530959607922917008150124823668402084161833706404311053709067232029234821760209741845151998882304043467051095075488862094390034711679480553587906930207959005928357910750624549976082764718301229081530372051156830576144011984266740244256839461320360955902973661661708613308006409113576343074674347818649721252357777609106228555755931114576955380375216956248168352813180679150327747464062566610408723552703013033699629666665641516300740017605862400595147810335069116311153766257280691041586756460954767622059863487069536381310106598863099868150947337776473530602152003736211475850073869054376559619864503817661115451412966343373303210246428513755119258667295783978787530670677930998013425425612663042977627854168519470451871367520294599186903133189961816399655277985433678405590832036878940150492565163314286856449110476410220959074737970893545303017726284166500295891363462152222513385768586497681110965699007117042888850056345949901113614077444765020145853674936223070666371479496054860941429666722455161012355444018939200100366662197149995110142760127593045724939092901808275861378907745250767702919196391643362383294195507919826304962988314142965829919910091865881520697640615575704775038057587221309202518247373010138820235123597237225927043750608687610825026446983210226111789971302245871712278714162222287422699729367843489197605066164536546623908886078169739964395016618482398200066031099706956663433701370805915939006948851595765612192837613102813447072127926600322321401396642899675651175854179077943090852630930406396314472914513712898956573591185458247147909983151295002462389522475060440964787210436629096503601470026903942698241677223362829117170982262349336974480395808579264797849669212530168037503626104377942097655109486292780653960811673489319525608225785874521271594603859640902290688740088452403966933414708903268895609969147673766593080717778497805571370610961600742410224675089996813717688609094187243137574070079897792316276077892436440695148749424148087549685036953305315104279726948303579166307174570865965658567273644792659313436856838077122913344292817133544273275998332861001742634878282428109645601985357115404372968497663292171424487287182616635556290081054478969382414858573935559617464129686438123057625358723930399813306894384621917736707423336226077855064454670092583435226920724296235616322560936783148083192507536908973639777807692709982961821609463135927611813301129009294695957438836941786183428497534703805995836378827911550412013183226655003589625905719623831433106850333895308301374765054559739444444933197686162707227377908956700589821853466984533349042255949452679050261563369669102064703269481066746016429009359286517704001056889846247998162230468236397518234940112089946886638174570076641798842073968382326915659404382388585015995455880207773370872434182698577987617503217812959453726001628948127752384543884760294733327166474828678848707151815594428156268568084721596026934786115382029925071551697607642277048730626790917819510944089218755122028113181108594209011239303752998710911608614138968275702503300896459607525401740831830253827443171288812453568689519216736946696807999183644361486096961399620817136467183811985843780116568248299443407078830555048606174105542429175446994749075067111073878682642382604359924366279687187294375396939248479499099212127154042743293011771477338307030002261580118563428404573591048938201913271111349329641110294270594547436649527523656352603191770161243783236555861562324959518322020717910949397148166695676722230930187953544006380851854227480310533370418038290690402519952749761381020993668180967136168445613003104554018106342824882211980597723886427431852814431702388039542119403860101265033187548000677880743552188670983313347203887746377042096299816602414530468041292877906930049163153832692831260700308344588201350998473064388153727273953626566792612853980696572274498720332045489475505775196432469647272927056777178341442269562652826096018042110398166636296888349010442419356886941022444084213420041039175514203527646473028128606410218807317729257697836648746319491892661761122127620504671514480044184191483402803205537014084319201124677868331215151728450032153568767910024745998746955977667271915300544065902783735770098391359598513443456092109369102669653577993091213414596420173841847551064544487521703550509201985875942264866244289909656563438706724023148540293926673700152737927548112736966693192793912937875621189759235981629301177009018513488672270865804348205130990446703610499241661147999927994064602345011882286953104660417682722473241834440629203626904869549238803857016012556957088491982380913546958970211534939261400541363837887094341458925493704300159338293231057773547339487456466618161976809986383808942403419573501367775961176810141925080666626712197492173375085715053966624690093987920230357824903453056915974358043903174944877360621395132686328072960266592836591368534460577756848743253022094862140806460260800371889863554755166692997676650884948284873042885058343654003747331769484021860117929204728099612744211594688268583642459606541224981424795298310896237242859020921247125310394912037089421700862732952851453053725687939129471848128221363444217074360912968304982791257919588903714076417243492505280999419778624801309746113488240795370717870056622868492710625978581731572754287861312111937826621986577771848688358294681245494711976067038020839691115873319205350028588173003330032330059560173294405835604344051655500577893676552560628773384012238569782659300088824497894086866306411193176083121753057019576213542300188364128414658166358463791242971889326872824329012260794687421571233289355687562111989599209300474354382383098559768931807709851600472882645483103310207065074294050244806521212631079947892763516133297732099771350425003010408614757973205635479215197759468373006631285575415843279056913851225848991928439712772312712299369828577778832001636407477380610427298346071808604466304783708482579023619803552174228751436630896236053979629160014886010106608126815242585749452267652784813763649463663784692463142538843149083526695246435969518550384243971348876936866164555324211938000206263215517135620121839234802812460273037826854781718984373498163623433561458410547051923141330920548452699190463814988169199836188375463417741704946631877469399313199584566172375495518047802583988595750335568455445025837209740105155785584213217567519652197445940585927589244902361481130452224032102092781117103861476671349633877934776221569082665299848709714172709796964230935906640940477131230877942244297489617372703317113435432403907867315921986134788063727796134535203143304197377652416521764213588033135000086911437806651668338971708329082366181535898908333025658422313799197484063528793308551390477799008100868948552398653055091956757195218183532641656871636317925244863954617561702045946894788891049273751495911436227743932242518106192234332488736392179089010968032940478264202929473780111527862104483537301456488622424891040575398997856078725011796348438586706793333178412190526757227181806958433525247005476065867631770401478887767800159446683514896967315212330218819863757504080619151790811077893886507551679302980130069958969092584040483955123617983253905368701610788106680572577474879361880019472411917787682334542292896723128865602739961778931844697639115104552775319967555169021970352256148363361071900144504315341859457297401661568330469316078972461806440197498104889700184768541027718468215840448887472558352654441294874576459743515161745894522595634181988084954181094498034805810868445941815474253116284869618785738025300752239954331889084339662585287678368610750888182858842572178172725145374165027485762517589402747623238734269487691902156826349437242403896701791511593714808218699849462072941521367510044451903775157529346693564729473089180203101720977864425555282274578812078593481079415439561302708538271260360860045449183319191619008482199352025975815674649866118298367369949987737777069381386676080857255056160607632877245209717642052286622722068886930323739442949069885483754044882718287468612969282866048071510713525879234167067813085971338389839371950736265419185438162052550632289698409249333051220309772702679079414704288856811375595209604998335072815700791699618452698104590551653756822269577756383222684881867895391018215491426636478626487159057321454398377385227489301030984448697113448629401409231777957268451880033979386607412518809235506551684064183320442033255926189444652285264359172513248438277528229588801554815499829598534488853761709779512318195938817237915229850057415163425276103795252019184938207080488813780385996171243024181842369857814685439901988761989243569259476612169451346381978211981396518365279567023991395399723893138871431321537693513900756525831256167942131068379353890948188565159969920534275599275664320787133297960777131216581891200484959079598664395645673841929096655961379015031831582692543689889194345275389534624699012131368803457942022323079308329666381486088115285758952619145856263646555396315725761441334805584272493460394501950318087653784546187033573249912536077432661405985738224942207503204248444884001616006286995179209239754851224991768425015033947223641489506320651830270239943596271988245503438224191269043632117169713701813790045345111395974354931416173414540488669129249381956746619761576841507208337884196346816443572701460362427208374019859439627070079892004132570935533977781002608795336865872621998935900896283241651205524874269204368431038380317662202167810639032696957309299670633920539995366468265329201069356481880660573764120710779013382976413605174899718129639120173364560487127500866379330922721220756723224167373898043451620838712460970987949200571405060389924615068796307367425133626566295264504124518975816047459619578712545479899401478552157714436071755220756780780169702178785203250373267033086039824492719146768669033225509859717942841836503063805473882966989106211235612928516699712755709209242140571342546293461619932190255086780376218249536732081440446923679343990491236670199269935185052912224475758224450920112365321399126618859573032252528083001131295948417955190047126284487199303667393564719325925362025932495674757458548266433801196615865650555873544431090637372471451166056522149859470749727524596153365321620572415103251219198342861037641619857967849302878570218917841796392521008576236030179581153325238293319650110966060708497519386415333889105309839794055456216496142455795312718087894332837212909657999404962583139080514257099999416642657891997999704250448050078871014808319398088019132809804448966962903771105394493361825484147829244968922755490723770689827940852913756586922633078009349632577739447519625805261707084574877083613086731874762067358082682469600309512023822993984719171515825257739282203544361716259701036076667815711627268931615048294434843191815229983376752395759573379865785590033657651165568311773172362515069932323388280159791869251780520580255358305228664188693579683547919182398285652947649976049002071495548978253329856326170565489159713297971217304573630092979680333484526530849783747969474681162677317305280574447752648869931057625547565470778478725602416880829072487584326994195441005050188839621799585548405259985298710986645431558186716865833091729526755536553082346526508503150776597678464212838335173502714643610065180455090159660934317045829573117813936115280122556157799399428108012696501423338759662696776469317474482599600890898197593145740415447024910712079324498105749709092006171570494399578605720407504075533231814507524937946744670052324937886471863920447987367399497296441335364859595833413843044398090168844790786847171670086333312570031530882322917977452656785849260679229435168316149192681053814681340750171220845178778477665607444194884686610141043382806443121302929909812847995628579163004072915397549697375361340816577969676953249546540762918985454462195897682691986594200370846453300947765016454181575071645903508559595164193438298819993465615894890503421243412733243845088320790993488727386231897850339525088785325858227001766557877160787834374220876754455461848399902326305264071789172627840165865192798638445514595431888009852190595049150783964042503580610974028576749333839350397598151873815922904484462904561567764796510823198175803134828377495379687708530540316027130663810288698680589809209289667091450928284934282417106348805116892225447118139830128751366275802760667829446970814270659496092627627361852563001123049058708791558079785081809053000129885404561459487628163617330129564385789647307094043911487506125037140529273752281149903026921103577809707710387704747079297779136039482121006172416251656342055448865869868029075353516968107084254956740039031921709994153314349091103294986005165359961479847189156172836192335042867037651464246809966294271390382852454357138315538217304180695181015887690893152305182496420558114488242231321819632985506047156533990396541666685576540334483767469611910729319213318167422284207831516259903864203097777599118556865728193220202664685810889949730200389338607395707832494381311638879672585462452911271193816494891015214690196462564789512694534637886584945950672275403878703193808372376779319709244984047135673807242147385058435460507807032206911912277996299620264339852480411824974099497386831552425607298711005523243473749691710184138242569212373387784327373497193196681101238890879873705659265325847520490670976022366086826325662880970627228525677827469857639204152335134526342449801972009969966306601788133585355770673397931215229407093299581793632005992738780732745050932506497305570608647001284895788716058097375596766397454732241511199998290864462992000564676012049192560946636667298464675042577353103473207549829051987100534184944161601444806935213362343162613905328316249980019239108299535746884426943607750109951712689286740926853469606768481418310569822387897052594642666602892804811660217377875113233034860036069942784417783441605583866550853573115377165526453645067863095959179683264799613687255152568848925052578224930088900222648922965359153116521963043852643377868359652668777467696449570699084475280457880765302996432196926525286178454217626386349900988818901318333885476417995456013172454617335714331655786153683146184268289671546572578518088891897053779651896594375974191057113308464229796070274290214158559846441602048700318417356811133839264829425150539737351450522134539966685750550190988604727861430644309955924653635726149918606746118963376941870413109126905414308310132393735823985253103850604401548165431559496302378454054645185938291153655385442600392574230239257001167761951411857156569132986678364273847465229282042852335907978265127398721102944487315410045968288292880808418647409605310414203113493177979371452677683661399321715799219843208250853515953208221598283171599699891230995470787672333099995168202158337664208556402177657423773154253008247463903344595523549759558717113067336114720806849042001004011877173913555300782983823391885662185438442204828508125929468215531788261190259998614001027725610077529296544548993649705981189231278194653826036730620293775775882107021954968658830748587087530469875556970847804040189785722713964910961735614903568244207224928561359795929540529848562025478162760144479595152436510914883130137016008701814215325017947843043878910276600738802572711250383725236699376660168325803316451969513228366839598352818648940676263642636445741987048897058443173986338539220269669887491013252106627485624082793600970179280407807834004530870268623793247327292590729271805474586637138201544367374470044295341519520016535071440858241047845042575189945162276222730924243739759138819609551557017345906362756672479530119031884658777693309946925587896887114016726695344837539919890226688725345473022297501985258591662471194072438253299168080779013600591011431703773341773802130621816088183142720028328170640843119734761370922342886496764162893063919738131033504926079824371442441880165530936738347652685748150391425167694392671238952310305886932144017696046694218397194824772045074781832814121953305772547218529063957281853126125827221459438466330296111184948228494007718136146101497451711715190927953942491256700565218965635876773488987167644120240257563101472802941375237213908578379733715794370644577069096974850029848536562324135690041343926081488439994143889162024460603647970932302845357333210449005122649266168937529994187624877249608374803519478797851645786354857500252603118419252419116056037426461894979024252359555439590116601075554752708858531348263441523988595202620459896680649400077063341469415895982870827240907342425375809226759007082496272698391570874030474301699994158334423218776651189193014096935200723647382671558446209975122747184788289846808892903691866586755526797208591732832155090822595264532312691447752360080319549698562768046158926304507319772080724948978530879200726691024974520599462522004812205914431379068580222529243874470497624120897594265432580903621098526742252329936870863166614060012789188826179028357591484996304335972159686185853429905328831281901324911358841395670706660577126213862714339280160907142449861849376887462215069166470247398103099419663699845684937389586326502043270752427824452167536889523295078887501984825906906085535578746885157259662180273702081005514932024829007451396160869447004778806670466238873890264752957868735413057432243298150532585171713318073256869378244696482593754041843505850377208325129002533247255754563007300188155894559847572578992148123452671729271409987685630626678475495795291278901910469424843875541849412038641947729851961826814034060886690525459034975418057404813767952845399541464658294005848488197227591334083702866540236802949908345976032800943530017197311767681691652797714810068181165472658391771307306378931245561695263691580415305183827193799552464026153810390559081939820537001494983803184154681023896069544649406251811111163775172786192942880635704100591686303824615519557617098605069249591624715092572888729803229692968394627442071163555049607202326951045737764601269263157363693880672682771106255389328606492985882693442425848836044575659953204941917677781254326609327693772788770299738735039134395101556467809923351490464087530345211802423555381973183808181372176820349491709820237652308731524214364654240029106550922712923352751058169076148141165910785020917956498334339593460924644368267768114310570714707914013335858766250010543804926638744303928005908539053711405662893502743025981610138710584549727738767443711231036677325172176373250903179665499514588927919294601921451902185120407831315407809875712391069023072672128945294850185645028675243696352317429550143825207174371171807454245061512147798624527925647746695091890594371786150192283069447815350462740150862193868498690482807121457555655543507025073789751845492713624316769772408000248921108145263339262152097071478594963033398668998635201967270664262238297830161820821049091425250683499735532172954761718800420975497235989295836943317669162297070665975137560766372759935502236015754677289151656941059721532570146767504399209706511278843566428110564922506756969447973884045772297334409368193242927599842431850522369861518547899284491806235031782818205787920571820711141693510024283731443134270038366868519582306467825191747520784650919729715711231645538727860824330740421151824863263591057753536210716193246803504961208792908024052282611520127609550044593650228639673454149309679131808732519258540267565186055686366690038297943805015812702650041869896740617301590662647051840899546682793087858715967222775266520228661559730490635038399724114360864989608965975838345066458149107094517603719304099115286381285489577953432615118078450804458068700356981677355153142629761995060845874968701471360577856640320937812748394650996289453381420199163250677463580961677860906217886212158434980824842657085244342624168215322372096978454362890581011785723554576756197974286263526257503378231871414070082568655895174566857972153487033537105931755414870864811379196080219749018487620850495693178352328434151461318071249006178965645351657485894825872973876404316681810498605630048570507718026590638582466147855623227768891252214043875659580609283326940644153596332462479798110356779852216151548187689442485206106991803812277611327491887179003338141033896885929031668393222783977669564120291348171431700475271920634775824621992938057654984174518233462821508315426108325308115149873335098214323752236443610828271924511474896631263523773895892274128680114819753496879227354973683146181836272956299049446873429847107085615886530078927698836955674151852908252078316711105852434670233336641691148311567143098486982264779169122177841873661619079989093954020622695332653963959259556031331815889844020616396217340408904808781399896971746243468787797956385118981082306503119199962476300807416455214901662396375775881168868359523991473230590471766017135477290148191445234443544818030794453490358105818141061024821926617737525806875468075298076080768452808962443578548164878030446785089767454929732404934855167627243320117612715759425377744870051742676304729003343362868493856915043912673178322528018976544372972150590776481034830698529841341824865262678557364604447527332879199947194886787074405691837046191251050152527314850471187694646504278073553997971026602877954121285991955667865972167131122574768666681374821993637325541891120630688585478497490376515640760399365860493996073329179265831176947175231971333925985560885891639396041424556312725315997883834676452735353348517276227098149300542081703745257174532254295495548913042670489162602375351532338058612502694539965096382139206295235493960603466174652509165298163607268403448638444909756655417735412097373395507341852445889069169595919670260778313397477793646892119721038637422121043355849192249984562054182596251356625896186922343792491573436777131149621998416861140405961238780708812296084626943762510297544658709076962506957471721085080133877926083888614921015572191522681090223368595617041661664751628290149815543446340423784923581718468819738704115531616485584487326727713515744120986347783672414866175757541150568578832472680178852403071621068857310751032504811986890844820126231752068333251732814358413866871952551967308477786235515382904518493966123252681701884101526781288900402836744246991939745866611290274085816676213096749785245005873120362602976723155851928034029262502321512978272391352305421560425197365788993296942067370406038263906457118388460501436528006099056985741404683866884904512478711994033585490524859234796545774771519616192425642902330290431745973635830769235178192996583947901497218877998661845602057441383943486030611574797661879259807884122580460892870052651067144866855708425943014397341494157710674396057355458309224303949837112074184932245945174277352806085594821046193434916415999228613470096194758038722272385712777304604259244893075836235490026839564764756879317773171346025446390469123609845202511937185150553432907338596705383514439496868039132337841193044269635412309415172339372759321450537709077521547227355799671249014272218993024611581734377267282329591928462992260150574064180365621024097580835987426722097333374796102807433915627310314683108564398980397667197956457576374468548511961494706837043368320814793424917869370506007861101593921113248456562904169649594191712017120400947714772703694726892310693891227783190482724558002084594700549366226015478905236222298440034469109669221800792800529968504808015633067423791013136607381828305067671152562332921583378364252521750572217631520333265060257899841611522224456349450923717413208006729900467875274628693541691898220100489013075316574649953902546767639498508945163285413032590689277942502167916047165594607839796943286483282848485026895296683969026081710899273607597378181037526816236034454438330328918417196161664970161423264357299051756638085127883693171113161985675635187418771200965812921499589863017344456361239843957126927156408421841922527330604329735065655550725697838572665559238586866120158178807052722768026035935914468703651105735002472846550021371245685895092390771331340013133922059338992835493663413157449491875937526397628891506812724762064519797709404146050784246080271862180405641482710963933460293237005746563007802934648984026099972847668648385827782699465561961708390060941419980870188198121997630795233720986545115690420992952138059040019286018419023210372302603306548564829054082816253280704811353005949074700557258730818348099900638415434383381206446102156551521448707303285488051833108285411791700562692860227955007166725360131149287130888835698249386351789809887319954209934014328947547116748715041745268305078647275829111809553269258378993493817283698335871136832952524451136423856800841269160704241981517147082469037495245142835995013297276625719756327213394771460850191215535247041754581137063501597526707330251578587652602897448694946683132937042038820826062873268174809468550662224711012432142565668135797719930741394905693845997704025118140930559589841566212941115156717743396204637806527808372006425985788701301794988549786297055211927967528470450860938652077644348064711972698943430404522870545757733572024000910592372090287982021639478057182943883852943603613309546762501424699248309449065042769936637655006679577983213900617357287059802908012373747513966289519771659814163801672335062356115179448778062152991150455496258342743493292605336281915475471372385693838465850136400237438829041114067821203557782003526027828239713736249315577473559311117357957060472244458065484958941540933147380672888383556835126551409995230893265166046494659169219555835573113407706655612128492311139682709731019562909702318210977310683092151056939515771429315426618355198555040240473237932099788694213671437418692998063325387634675146840970509506358436522284438162651420415220714895166512642285756337003709926972185388466487242861380429668073291257536154957183970984494646775270290347162129529059756903095927460760111676193478171239553081392631642049156644208748724263849596815300980666864576123953095910377340575778793488357574147260440745542422776901791256056352571603728695357223185622561512370978742977022443730836329661026543866314453862020590577806930892068921759112561981306194902052505138478408713551437331031817451974498649477917874087351952125161328478456299911988996892889478825240096687871773651675124693935895795498552776892207511440478004523485725384170635248937649105136319558398552131006977009433365901648711709726517562385825627508110820907230895546502617258525889957155367778057537246895048029141111010921255148858674588392934672592718238777713619770759078300181702737928143274680665459343059959547176542975386807517300147946244744460705819598047517077458537719435287786002146803112153799010855795938268846708851191600458067052170555891918301487792183509079005513620652987013998964390955451637979823018763736403626167361507390375148517340259979892372533406177706028434265035041229942139230234320781807408971548847721963953743557532519958498521056516843481140590046181270187325266438844904042513137648602341760747312429350171835998965515802315725913629590756513132541131258697059013299609910166020289975177747362031651202901412031257114232147175405653715484012293623804487307528111908825848082930582124704745926038195921018727703669997297875248139898367363246018600036976713297019447083304244840544994011779323686944484442594319298587576503324511040181614696197872068570278638868133793876811607984884179653961290324223809329451815257963542042210040360448811585982539869942118519996906256802555845092660108173643414638243560417756112817187089970809849899775331468061530715936386975603746549093877377825170799879125307125393925543831741633333954693185781483899952462193019215906991402270159094157297010341705809277455365670080535299749420859332015307713098790529235238318685492777274172914197270243786705942693700908848792918583675788219012554158403725467379835463507541741733834807970753475459873455238252943340455906927067302282041648202552458935268006423456089924831111160704494895123084555792566255888052679532257266020010331687308743229356412883407389134074747971580354584360935788759598459879493161588187295529975895624915590952348899032489849051794081926740723536651214692922186299739313370090736009501350496291482854762834481375351323039187816029257771825890128704560044503790102297527380885518942426786373873762231189093841584778108810098831184264816299382326728219492455091284477392633545050029717625166285250618123733217045765534101401973347037092746608428511406535401360500776318226264570210672202090669714265786213942084079182574361351486632340066654280089399672706083904013911022086920201969870679714383232745162498533092421333278667464599913450852748428730180779007383236094917919686247062992498974503663475192114060641536360477904962547196710660281112850131789640892858195797653788926709442240806690408061060162714624684689138827145698508900120401167328857390846011313572290243012285714574045604235568957780109052458106567348281563821179867086357041722480698151419064516291485634432046127338738607943373267809451872031697693014511804187344859646284552495485026233615983255866190524653300763856785585044178647722899357373649178032615822732377264729990522491294312952205488582733049685208038517412747083980197166445199969327927541333107480359967686662232701879364247145607109537066689195927479505699566863245946730300382711357723594764737804130275162914022029173591559818136757214956084828227941342180773024676517230886017713494776209214204298579606007007947790279329092482555253689860862058628612341897198138638308885541852037015361549227048883006772395789348267742140554859867473202831437433150898382196429310431458435373162111934055655072399394117690589931521419157882931092825719665197014457362990659041562068240037380463642940351170016855900505039546140017709314421612221574872255101454161708616031426165484490774239712494474698458028535006293061242818180318973050531436763438181661607285387547460282408842602649689159976459967950122965175716797507199477178464308564778001550775002325796777809520465851283731568168627924874789509955692028476003756265924051877278342662305454507009765434977460305993671775457794708431503951562380216785375775834052202409404555044610331501017937736574184345895390696526006375985444421839574738586948418405557587438514873044757129000207558000872150858290253589436868120641324472584334198872344014805134769364710214844096085738459542694067453474184977141326751849023592627383835772675755294348876105619813817143785320057615108907160800524095235172100945210006753512041214780816518636553012743245370037858365720021345247234166727556901490706467362079645882650889957523323000869128240046212587863446893545663170020384445984866203740622926986841911764273512838456024406183494556218137405776583794240692765886131928576756829956252639145104503391922171804237755641373027726178915598600547315066761382548824259906622729105945190549719515869605639025094526077747390485588726517569041751554458000239163583264071897992157538950667351134650396507510343125345577920049146736203951165094910915460722205239406800555196369829246655424595275243907435529318041241567225490671606143521431209084684312926237185513918836566528109136680121938679511906222884595686085202478124475641711610398043303565109404346238563610886352246127179971227603428829283354268976601833338999458854646227815456013265560866057326941562251811164385907747977768454242194489212045456711408490038575970330696779970291005545546003095685298442221332478477508784006690544664989212675916648269496334084691103165883065995029284334553238323763064749489547938129172414816600569670263272162255931180774346035881566083883487947754607632850188952067662159524761510995090997945406458658315788054853295236270914891741803106953746713352161472037786162018106257072954239509788897494390647181414818966758177352097130635053264886862526669661631656438386862213226189022605434137274801205499886441014700036365964701956225147653017651871436611047102144352334189420136443032556808163809378750738648542781375544151933886021279388623471457605297684048234359132097455325031988338889656433957581498229858541846977307208760659270713622825754650079837147897659200633226754218576410612604867272135052911693352340434694132693363831646082843092326866819103031377642220237146846221387329119562546639878772027921463856556845828114225530722261863871246798883876084062988128303997927369010012595948020179786632687710477411477046770949546410159586848077383925820643231791728753745622665206460720642731375054284001331652627634677996798775058811591160674882801674018378709729553014423640618105806878087207098767628103614999128246248906250765384771219213725396725860615297810576226294662802619164392854904434744015932283754967647087235168396744139731065949875649498205083241961459498441440547496888644603335422165516732273028777597423366323318920162291620560552035000166373685400751950347491454652167367071147321143966980008877731590266352431976616788722778849325380297080324068752199860358644221674275659629599844497850318683496321194552175976312952890354087779601095725293702604910629077872391772955891938074565743448630070701128983750756546591823840570694773687338402674660703843944465350075419928737396059641662762649779374421249166879555096153243461029871088174998845271420563233291253438949335299505339676140717926554740898476223656226979194721985442364305411266902539219009302712388646007628745416148212709209253200894970863279155001041971770078223738796642066260547455340982131746521654612881826504707774024939745970201952356776749821544397045927174272614909805970964313995995174263996515445536991233708983654262147861559473931302987846219698887873185794902557269872402328705858845679092142699904108393750490454250264907400036152133591972628929998441313731403266384304510684269616325644044632699669840108816973707299280659788450989264737983646950285894328120655640995719755157457397371051264382790433429408169698794586166915292507852776936071668097141379475675306885801752620554042605081975514012363878188810267084862577274721802579164935700929449924878671891831435606033177886805054085079717442220195801688438661826436681226783353583352426912806514460524155680412247012885624341035713410204804635660141783160269335123358992164642020471211385915571873526181271300460813312608109441788541744858325918358197812915701209044644949603914788307158696555592560511911828172093468926682955484354502318295751715561563459220546425716191731196152609008978079427240515087413659697896477560479790129697101278000096530251506488187592532279554309114287487206013275733532301937095638220757626345784684077582266165689437032501732962548588001143296653777104595197886608937721185362314447034706497333140743536516084902211025525374355872413513855285304250339739122867272758352376268166258213145346586585536432326070380996831519737609267741762128926900482976553236084371122770834276218814055646921189003825609804040676841382193991568979513371029337851344557758053288216204242978549851416067670341445617829001749771028644418510531289242120293323556518810506834104399472617699382770098213755906522628805465864319142876519597662169655253094533881485036278219345766126013764302957805328535115566452535516117798589177349092404382844381959264766879242915194728054364371607980964397601853432080941857163427236913617215548687424741651601998037343793717858820339500547136788994094627714830323021985964565089806328447721203560907653781384697016133325872738474272161715572485110841007771080933043554696242996504578165708250681857724966589505167224131622450992270769018714995298742301231838912532569243557402866976770595770185821943987712956675217097912138160587977881248170983784045265721979950847954132756937285907509072254769172865318259313665345255412424026267380987805733573762346166044165327798697669841784848921474192899206039519302829553708962731479942859159765259434483739143417044658540062802713298342053471757043902529525748509451592760720338092548667870886412595244906873102055584792703646201355463865332586239087829621941840202272504668626571435965229097560803171711711940862857000737892134897872080521761000632835623045768042824278815054843851210344781859158591015262002267207975433684696442180518785752201918236454400343909632289510071769332954130776511039228068494912599199169277670187080511058875001208682316531158482356105696197434791335217610479578214808916498365937423646604439442052657939562947893078849626615921164759746573816549255262146812663509593462536944853649985619899075165903428425061786532361014589758056206427854274526249317133762778485752124122819690430397695395995793810005254609900090694923477777919071032430746239159446135712735955659760857536352921503943866101101932078497692022188345873864733453298635393790691978217798759701006950983814406231089392002787541265694660291913896696556478867935514081469741900956156420917532070084349182078294412021070002249147824999071048535151547501497932039597031367769126127510146401822653757863595873905111295235304231375423747172008462775756319054700261231001638912419803056389150871853773173820479354383300784651753015212629029167809663408404674875830446563164632609397070902343290847054203953074446923217446281927296260710717641128277491415272603991480087811831229466183175861604009027692288338571562782490604813145241743088640544338317834934193802932243853232084176475330706401092194619902169067049044561623767294594882921180342652002959178564047224679253941371526172518355733091809807183586583807834744545750740241754803595037650189078208508959379985632970461724642411920423451121953094761803847442507928709623152062829465421776002435549202811804776479308685510559942917045321052991859392800386985463790428515057280063915805919874653095188703691843733687569842252543840014667303722960024631604615014805271878748279969723493008011480988898265496057085840975434045278528170031628161837451932604928513373363876317461625213280363791750515869173463096565312517871783077224338153803088164457581764769368468398443119477745809531681593376126892475604083485236242283805266754348937945634276897487209290154379117559882776042208032675775179632019509001071205868686204685049223316205008588431018897321230079025436543668031769853725848169514227561282329713096869535729753922595323648965829891348165310623098716208162244994013387264321801448050284531393495596168725409104885797448561330308572181779692593359530422790608550513507347954052919641615516255084208187619443805474186225262634794327043042439303743350056388445013681995933211448867411758212854924287127650979541802643646320601502993694662222671048059643633486059498392468401525070135564126858909688630076329028112064619100014155443271388209216257259304252916696892341790317966283462319339642156121686476765485511074048660370100710567090885740461440397974428278143711441141491156857492699492516133228144708641228863315758509078102547678190276654487053483826546217246319071219121992865633709393718839207823886117625978299604178474994211401143739643265861049936677035502134696988068843700802238028233803486701648670086428436963642026582324772198215153076225494878688569335717146249973235152368736804435648334921397201634343399386998792157066775637277501400184776709548035041543158233364045878708872660136733266518746049467448717133391771969437634717860546731473647097327196671450048488524614005692358396550278881514612449601939169013729646607069027927192113606776291454152818177130423215675651546311427399698418929699483865848087580699698433309780723764552175315073600144676098230557510906931044779534546770722077924899573584470558412913124691713320041022505236548462796481458193897806361204896914154074633782693324000949385227280240815078934740953072675756813351175797080568684789684438912092045708159112173810253090216157594591630437592055504858005000848180237670659044300842142733285163554911263416885124261647772579724970403853732971762250453267156170075896804568700144583477558852249752588871579438791310056370769548269987433635124496785356259831796721653100432048769242719042756787652719757621179945815884391157504655351643302715550894367869444683500148537876509051172692855218927590833128789291306211102542410758561461780557407534025117904632337028790545610172520627253884127991897316265341147153295222052878958413858667315807343657587835520212652654782013673925897018744663265973682543269873514683550538242082506685428014503772197081589177600130705851159670130677472654476102880774868335916073664964802902211099538685021080096964052352947274508710610335935160965366624664736549294545152763753163841327988197861126640369454830721540438778827457504972861403415724722714010791709880968953761598040741022361704578489347200700243396156223963542262047242285766882371375876575683619366420316391480010565393181395649273035028164813825005520826096758921596927976029773109548007636526439511540240476763909495213140280813875583478695918203826475484105135047039119394565761126109136477952973500404767009618398112901749385365024676262934621519015274543518861602684532960395765377026652002474368546026095406882756348776458614756261725894140823283074967151864373151984182255109122952682078360011543151505144122258339861987181754453380898823231730768060400796390009252906019180284434075133705890121910857773887157152882655525598923919759314748308458356291790492207832647294762204222190689611590005531106207810715167850960255992996871276069198272115713904925613788160380662755076187772668018161106477718975797862567303903454598873762888126126570344522250938438351138110738585058563707490555770533859866626011057966097870099930085487190146172596353077255282453553294616829871156732134845342321647928468964192783726880862058234904401174948855456269772086712422735070507900779732367986511021203837921732018107382173003061883809326634580821027531362608411021573723391548221190932096983532021591637839810019102517257753106634153842938369422580376510760883047451285453601549474437746480823409680688824913804597875286607095220542861251748362371231353020495780968833077187046538757575943021645130423176110640315800575172208796608730520287306428957549974446298918838190401374448126441550034609121266305105382756336092003660576479508962500398771402334621170160458005786700389054963080877788075821796802068163153658038206054044062778168073032932109387235806989184969389673657760775554583907767103269478568836096552324767178270336441934890668322943099989820342831556285741342789620278142586651832736452348504370595840475577648526242283942887328059199644766966853345460355433384762307450336216748337073461032182117850215091390104641947745749584767419967571691020943145005747613130007258418254430588996481448007023278403418210002143283486019423562031723654706566465494752610152499297126642158582557607547499076778621323036106951810878330191088922282302344447549773698319183565356741744865542443495611983547946788295560696490039052075256440750797942048475945696896538053487595102611830514480817600580216501374000878908774540815209332238178472704587549060921179939343242588898783786687871616053448741671229769325322118653570476150217054153329590385645581388792197589304891838590283994647874065645738246059360847224078114854313751373667371501166853281567584714329891603591196394401098979314011652993934018065398187097496274367682830782120192824364695290624748478172559460976676897848615443036848221181210145839706286133583280106675695054338122466121212058747130738852714960916382060318916723252546436707220504825745427432999483586585960334786171911003218715745601875902149143188426877553797632945680408070243734634267082956883110150173362681940523097130565754199245791346097821251212017491496142090647822789107587059643190514271657777392961483134023374520398661224664929014513203267278401327042048758092606743361680695182393890244768201242034954978292765133012218360995960604061939666973752742847567067527619407844237411153849470164884896802541417169605630835237130175058967792331612009249751744265225319738351805293238924755280377820632526399623592102177744656795700013679864079006930825441037044909614952533712847582285985721742042670485629417805791213379617166117077709933856233588862758714985357902311005903643099974204901930648019010106042278903349315980730369362515821274489327322271289489724050362820799433739991135700391894595771028885333200224280855459101985169179645459443634221397034234326922155134590961313255980091735306985132572144140020404582753707976185283672408434397618954489098591565934396890769504010427814931902857681044632136427268953577502397710591632951787633920557041612943011368698182625716486602112821202627881400323586257529161671360119031713213025935579253108632673967902589689596862604571733496243602051349833579270697566094161322408998226990744875797811532047430132447556334266577446868434648071883278035610743477539505627007765501930172316309582816317958994864175261557865817171840624565368227867850661318271164226387103515824912303072492169454067586405127680118101751128646226446455561895774286304720802862777477381094578646062532763438582997607132053683894813482506398262026679334621471325769103417125117876621506706121942797080419910394039025022099541441198824966767092937053051840046067095530630715707258002667335568781844796825780915772721708653520218748318212884290003444090836268431569334594206641940973743016491679090274768193426046581128205515304729111764691828224378571445871570131550855846780856581600087939105227168860114340915868838898720017895389735007102385399958133204514634901610340037370376082398635498159390926324189386047883728180935510791126903861398082489641894805203708956059902916279217431170570058372537558928471010383712110448483288078431711144321722598725482589259893847383891387337344606137093197580489234662611927245102282936166965116373219855583911945164548593083910353611939295824026033582340694818257066322906249024523953461276104789418153140605455090573472157058259106593563758088371084831565211010658289171252602334776159344052694963095002662151967797774745195838815129284485311696281097446782954390423845776309242567089022760395976768961350440517846448533789606448043191955737186734491838416844750925657600192414511070636336202209423863723547106231081836198596126568672257763954172705200240795500688804997849174034325246383996064515087176656718396295915397740022189113718643739914501732087214451784205185003271066234547319399657319880366068895567663951746367591497477576742743916575819306517026141994057264412626753312916622298697422671656033757898861784765529671294858129046984958924996756655563520513926539486518573375937329031632459854213272326748894949396177611643942112162610626882680887299334195582501499416070905913886551420135492038042448732389448626926785960807454467835896108726415318954439342774290565532353108978256218663764240532368246212021211083898698737188539881606306633264886206973012986547815270892641456536820099764295408229190523607666668146430262380033771646720588816696458912523229507961291360091205482313944060219557621938763628053750606907373049553776779767479972007440199935559602222738860076825668614731264060291317218337100277818626204326574545010644525944822710382827797833788000128674260936423891164099919316958971082554240115145367806604632952339271010245634815871874198515438506883959235846757594379249147680625357627030725144013285152907303570031911141757502976898888103760500236530532834145959864358373886012065885715395241986091409144861030853209982106877279018904371824868358870308047340638138711491089939090337660283645283840235093816865445874165566886177231368546544700420314918372927594693104568569179006977427035080692572967336900473792794899147380922532764411695794796319979836785150948165170741539027075836813944629175606704784749340361387509655811440599064968469520013190856064762432478601814515568251352436153474291630042196341859640496908876681903737988630906311358348548950592890913240305361588518747465907983556500707052113555120411421857373361004117933365510729014039738779009667771222564498328696985867218892895687902567352127081744239206398081670274452358727363882879717053877147338738504649654742547410534536763978164400969850176905773264862646741033651204728558329886711914268129093392793909484376140901539549846432700647911003360200905478584237406523609493957838119719488598228737326902239200745661871033723336930011207563132272747319764983369723348927211729538499176885254483478316129295517984858488986017702613357628639595662549762200546908493598730976375932612411590039376994867633519694202619413551128033370343497768462626135007559965882924282731049014680475445494429230505000717511858568720957156590284113889474941175562426222728921138812032818248701614639053004750805945798939539231307366248486453747686128445907777868750789709566158642332172694047479089825959786990142953247518217424481695802054058215967879723228437418480403919002976227523181104071483299440201724066577433079704767085117327607224561883497957704574409555608736881812654496999948006524481098969543894493858045846670792820093063049110994338350546821873807791450973889325565751819742544310227360684166045550137232564477557487859811321886141622952128479807472683317809610412820833312072174371823212018441953839145306620099019387817905035505999065335548049008228814571881388949112919102727495615367648824461153240237817269510820452176870160940797432113274718401810761213020526418365302921354418580810077020580419549613996719506644089231724376623456538511990999007563170347952496602180313191058771045234916746212359620036319278802371763726814030020040945685874450657170077626837508098680520248812059548911826156167486110995248456621778474478483901264943734183941412986941041652605138078750782200005468540003385308516511724236475905629089055300383181141448814311132873192771375814195676924895209202264670418416735597360855289824280483759932016914093922290922337876299028959719245047853600281116480596131832093749286352297678863623259152044363425705936699000645130713752594651019761901694306713359803151472693528181440112531779182192770634445772046478880268582852656071442093871829429568112044629016914258194388896563626401332191303529987931139413374059324829446290810916063058326519249313472963103479833931405003205930902325670490690528408232813417019026905540637079647969524436238423586432226209578659357733586482281501318420168508052292625835223759211098491340915217712144593359450582233787766532837031793542940779232746414333691231305560172507229866108132411668144563267284264525788518789016499697476176391563359886336051446657387724543288513341208060594070012073829322470984921164457669248694187747343778318017438436391295974454385553299204500667899525195088287432063944235575857341420324248707913559816452153118080280800393321944110376549694908739218704682400991540512855504845799012625459139118455499959189188892398730052401109677068534428522596672327328346433682547322637165837413420563388526162702677167154221562506668707107378584782085420732405308494052045211453599831244626321250940352276753785028892957131160270297635096020243586476695611108808966047161135263368595541226156684721548104991457740109045226131795297076061444134393868139542101868524259735386382442339388626255192318549642161447759663551325312506872155115781512134653026106353045540537887284060045410874228715655160601947429614082390648751277276692718301774288458466716386299748850424269362642396782538416659553823958939712947911222395542288458590730375370015411917342006640593726926999602072037881916598239370088523807781703109541471476557910012134382180162974607559610350790316078757872819202411597895815616109502183109297229666217855162191339616185366005358045972586011649188670704054808648726306443372301029041975435411170421755667098865478889571907804170206083956654474147837143682328259824692778109337035924957423212581988756055599561977329409789882690209178120535687853312521818345257882059811347464443027398568982977478910168973149663558698399546141497415842772621311209122731405550516178846248949474646996568938672334882632929995020528267175193135507040689934642582170127576006668571867836928244251539075024395006837095622494589692150104009961118722296088381562095730413476792412479393605728647418406075165233494379565393039031567721368185106669202144795180419518610561109754275692477782046747273598956152439931117650607660834259697477811604703002462130151586319416015628666797080613153221922159113956775766208128924538852184409012453185722855156713116112940799760513786935523035339730895231495421657847212867375852395368263093904639776095333079397751893536651033670682494808042134691387612774369719416828616727560678556108956286790347288705286860455430449498339898649223619336788288170558595980981932071361487611687667339397921360572402123132300718477053519149188540799391964921622662445916602784827671402467340729999783883740639509155007179708679269057761061518684750953638906809632768150427464952597097977256159673863719575818845779350433615604533097803674555078153342536703706809438565289518518873144249218272769762326005385249839938327411951911513850407843047282754537634781170540343478600413067517182822866107402563209049082609486329352030561261610872431388765479282749804211690200118829092221848210919456844875481001419801624074533832724104819282634802413382203146204433510408737176183809637928840709542455450632946945765371403290636970052519995353200977241633874034198799069582851759280122207534450746814183297544813252188558985524132122559382129712258619463736771797483651175718472974203194476142382186601559725056358226297279510669746931121013060205699688358933197003243417884117630569676960240314993067015772034439138488161864803428350361454051859529211765096859113655039786688036198378764329606928922232221339359273767835061876330089621122604803329109093677867838916443152483089008567856367461204189423712319650756647968624957373596194288359819435229828053606026861041354254881533309161860829139551363736825846866769629710559285247988266877280221263958334510274276200278199332015550766638849756386338505349465687442798890690961762391458445322881367342210726127374391153028707448534095669166310206819676578941946434537302995590643116202929896178885278952272125618308595351256740463615822836924640730224938208876350373562060496331536579413054092271717626261378505723110255274203182668724039664060026872846082601287052958040863433018193561632116269799301147978911645908058492326587558961758275431187562778887399736081742003885705522119660489426618030218490949780394095477531249919280094317721885784236500180786600983479912106042379647551412407315844715961508504193889314066088234337352855984856886187704725015522689838903885145613657503270342247023987467225081062858301972095322726813158852326294419999024946494658635089271027840744422730063717347805471381488376662963115920673936392848837610754602373544196436856341368506670566386402648845165438275556948741782237770910726155539734791580256780371886109631347503529836243112110388827420892012223766578905690754112489367626693843710218805187840676823691273521606482444125378431599970645063434106015301586591441692985231948308607130852635312868887746541017189875942052573619927104245592981695591104908387574670511477334566515779626721795462205800542547756593078042784203650032416181048494827391896595792075524792687830158812551843546423015016478117570374957615514583322889779825488263612400786686676976734541470764976002697636177803850240452072444204698402581445909614066267676855667865705946000644724095950710847719950050480170419231568241515765591072999050422331822140654818271119920682774142265702390207080366290196895079665434661054948930685237169825100347195306383636790746069269045017867368646198245836924991592845245028676813891627050638907260892367215119827273879301585752270980278553114815995363378823827233984140617920021382019752528951692014733608114505600685893908226883130482735693544953235814390766450295188890287444380003174348684643370196512969213039808550353142534185984674176720888017520708835950106293954551002198496490858577667987359853127616901122581593765600660563085812774639093179948686709670590031188598253662549662223090532340592044063330757529378746753942011879892869781881752901213351509957168605363995577301214567019696067159161757843894865071757764379350273286474000570428338466518919166730975284006517654735824016559157127252030335869982560761755644250387997590065353225397406204393204661260363353589033195929008345720681272982911952751041409273330212548614931117533941494818663713526042846915219484372728603776637912551142422435704809837172848170202104439210487738911340838787458598157709009326212874411281439512870800850205769240495338254043857231758932361642486884914795640553802175954863295256261462936840585360246140138782446133255105277363553091924662342864567665682513562330440693299384354550030735982653110939241324807959929230177848174497438854589440280609034206692743018935381352892966133848731412144069431007938442267893376318627943568700069393228148702613699624669524394353754616605505972778371643073741893836292910533394584584175208742290242172640928624231702367849577334431767912577660015173757043564715847202311985631255771550302126253061766507297388353833783679553758063276091867436561638795207743059686964848746564628770253802546734590377825746187481376290657792933301534801382952067717078661569251413308671099548641471714726372675367945818625998482049240124409366217394690619093722986956815164781433471711502503721504512937275947348953763678364772672895982823159886014506983123166977397999845645614647531169124827633395189852785211342547286451042223365214363716760729026960994136226543568273031664617008500385337902101934655521677299392041774567464995114570481565001054398394922337229226632959920876956151366729269066303244222489964737703423104216571616197316445547564528299090997835882876464231566597997802481261719622867843884251291129897989750697173020122057852829394621120954328911719234515540215884783519951401019505964622961518627554324663421852377553043871709840691745181014586876204623580208627857976439698807782254132663812513127463611389852716205142615967036756152429548869920429385413265704607830685932256785351413647740623277106587600510680272092356249929418077438829638201967908258504996009953405421389543944499439012656948527180649148217866013483370600493984583145717515047875297682787078100736400257333279842254627231890595079110247215949156942374777079261918710205880058438765357120856087608682024352674775950805214901656922537041039563432551213045255342597853587160424122540755284424597428854504005484286171261017820529964629162945749051352558623341271024604742331760846820998478280220832410204910997238747704797434412001839086210221034153801806099676567828708802315915849086551819326885730029540648988152294261383062691207840788826041694834053851984884470457838766738537602621821953387520332678839358991884102770591419004689247366349478122784929819514064223849809828567246416387602696589956480161777169366899906587634468516868249139766414019830364588359316747134193934611540590418150318580748711963177982645655520278331020662895205784075359460133200230880607563248205484604054148715710532257549898689852268900206305437161053492988863248201576648694799719902797869693072430679963889051902241027010043365528245002997682376492207909937710196263290087403254413010487053386156839582915907257154704238119064843650046269281477035027427436241443975992908104205855950906423765247070236329618248659995205635260835948245137311173033652704282123123768283349804450901969385349966476709941978297818674349439500148969032995411690832135748795875258752423091928144111801634276719483726360505406122092713946914623302518431087016034598712044007562887386772132330028619757210921121757863941528311001900006836528495768370016052546544499315049542526982338751804040177947408144768591893235993497413158597314446994510035274842537894910413637573877634186059344819357103013068998384278087259818049210577899335567009434028101064926830120197768656638373748609270180637780548478293799806643441893142398697443046411162973297918716140654725947071491549509382344227187940525546525790424902124416243393565999580621783567374708995630694203681263484130643869569887528244122148483786411383236948813992413310417882660391959071064386251739073846757587154835194248626036684028365172658678370492539035980615743930987611477670231909477120561083623080369476026880961392077477293777524084964579144462408374794350731416147579185245245571415292770148701228678544405493689261191600449284334355588650022814702882767880837384087402774982399879215190154691276533148677823624786213325667372359326968260654845637341063624386721172391568089018783185538310672541784343425810468186110978237441188915755576687395593872339484424472297546169604004659954075442711937851755529197606474013300063649483124694916785855521842996057864075762733444821524844102152862450033646816559571961628980290762241040970307819544146398787739426441355847372039666594008635669057585198989675281402166261224159764847729305260987134988522656996150414489591777663095847364861777655661021820122665762120225533593450164518475184389209809188203023036250709861010478271554866952966896355636859878456760265597026055325017040009756681600449737083912695917896940226315375840597507824755968693619494971584255198079393108555940641967323698234065307577804945743280395500787648348249642101293268377927568465834495729173368265865558518501822341620371761469486352562119927455833198525200737590178249692776594313680557401804600333958099084116428485430189251987042581420010948985735398834044144534808463050397880394512160215958977522722224216354049792078767351033002559909165918235858558302934110964381372147794673387353256257406760146624460914098909615599798572583932528280224856824612608367738224591658194750333088385690722956785098370172156828942859676400087871917455322917098187196984387689597709338805797831500655705521272005349882206238673034748204727861318477699461882280382245532878546604097652768992130100247524533099214445133094750822887197731684350189318516084032911629601007839288938544644570406506945389300728174863308511466851190703115109028466813344542772754876951278550460863352750103562269154367638897799828637306331048993506519343876553593911724518633325866322451737162419583787412514552388475970676875346639634108936379891870425009814457649177386187493447310424656610759843944735128543377249275404790884124647459606896349771593632615370007530261998672572591043520101084212286102409381359571615329549599663726633587890374304386508997425089972549812628805818651207534473246782041957061507788470719806272336505809671764177961798454241261696364657993753378123115384329505503061853225147303007015861553419479083467284327633925260226608678334459488376228297334894721029932701806443497357861000368380290109115935486011936608504833566494216509305724178064146624203925527270635729387066651575443874185567725846874226983627845944854345191902786043025956951966034126623309659504699583598475648637981911689463642134915627090665113350437738643630383929230125736288972455136317311805561018478584457812356741640617465134835075804711641709842450060931986008189977993901988607085891336388902306516136329202339489970790321833264111856161466346953160955089400856200964829205061823910690279346923964730455538083138821306942367613281411338356176480884691933477569138671097479634594290139948041099217485138078569180738273009682438161451618949290559776030177599403258247874134005958001136638466201160900510419237319395108333801473841739478867069417636219133646571952673788889171052285646119788485893615021903113406658362885640966822176712336659213588375847947868200391816468727010502598725130775907389181422109379923676216586861948830846241619877419573202295706634413974343178035582705416694788617320165843000416818990038131157308167120259601053422286487960677070914844085716720839872156354594590806415332541577390557972101904059533850259466428247078844763267291154049903229773571908896876123360718631187517641604143961523502490084562917466730114826537377759128089144330313453809847794813277392378743490153901302431936912966607090292187309735178532187836085680021230903181658931535872983531251713041334056466428266860819407662028822158005450177112589013993852334213002111103035750655648811325466260531483645812285239997255582499990270908089799078485527967793478619686561133469546613771012436653571280400281822281516678279296633065727720344924678908227865486833800634707037158812429916399595850916986467049309282934283083804289878341392840404059918395458200577385280634282596363022155083284799717485659268870145894579991269838314478788672954652705434942585495154955685002265953659783319052325679034564936847335856118551425513418779486535071062051770951887292242515033582338611877497596755099274700114691653244002685332219468255809635696149878813550959236576832871009530668847417141262151664924927070635992700078354982173357143449998357523875433772116478392328181856779592066755422273383417042883496783970684012317815255557857341605395289561644432309899175410019515173533714080249801869065164510308190116891025827535235784955361792914960809111178838737103580406327277394021831864445640098148413728224440715322992826185441059714000900153662975425977395410000265532071073152121251575839691498661935363409997311861976137953440903587700877804279111231369851794582866310742552430966989624975567897301964529846359629780073619102675748301252725682574169196573931434924342091327548642443974184950520216757920163248236620634740283916918932144685125430893137526163486557839899292887890359556482832883303878108769201704288696517689623435747431186634038434764287780007147162974993820303638423848037730431008198254911594553010668298145145138397766074772319791348922407363680392634892471488789589317033434435615778508852876531065370584067400048612014717419204259119817831104878547334162887327091722090204825714247118336105132874207196719987824633437622037151346690719463732410470199974607756964376387861346707205146116544376862561437252729332050028456518355051404831409133753684716980747825175663447610637979638143449281738483189474946098276448546118825277919429275113745482976241044114504810489223886752323911179388070339757013410693979705611942371226884278275198150499917997116192216397342483443016377938536979388112632519843883637829480900124895822108242070595715570127507393753811830009955781622146902428125357686667529613227622915634841400852281952937068715029856296882927334686279967973170616345853960158521062862557873388782345924025640741110979480938969157005487570692767804202114849964554970233581357254345610354029191133952505426530381765866135354592905735326413408961395301539226647551901659509946357361957365264210244331271305527681936420632976503793986866333188550053351309667255649524409111427459557517571013292269005526258587159926512786444442719230467155176680275377061358304547950450127358480858149507126256853829002796110699420624695537587063660756074969773643513181629268429311988701897247868657387503573619587934340072390885701828081326703459941428914391852123100142903316706455267965331534650906176656930982521030903493292054269747342091292307501062317971089072573345758416447180744216720922306810397584100713440294743033097596747616723490465233889801840733830021885223082290612712104307845979593812164461228414226600674921647974014453365202989402194738478225797537020343145806954897615981628939208348053372390125442646309648017909082287162668147419816630858389469914469056499976656512376030012659075882870110989473696042403186270174762428010817886479397789399541687241475580900727007774855853494413347038589723343418056607704444914806236105695794273154299383621506725817321933585090185369199153829292646468792528223351197525868211343838538520989979513155933502266816455904851997991879093094993237514503096696927076691321389511983855872551320498410322092166017460434498234205269163504208407964026452365898088269632579814441314998480814598814319646720789084551764860283455624749841612291779807286023222617841095890490201199887913699781161147324345839303808928911788858571372654823828715633099904742596575645242758316804991877685702159130300913903673838447089761681706151004930877503353438485466521855422913104913135333216095961777719567780611480418201672351227870104219808314896655844139103298127301132154139838718771035434129707192202412159825019772786519487975787022812569724692218839559918432743529779476855417597029284232870772460496727429842493706249879430918572371404195594184794218302092278395349776303075991750814293273289764260029638554229003242403251945985322134853940837300781483008898395853748771487806283268315280150042881575561559257224850174030087440589125638289357062818676107032229438610177246622845325447712963580518184046164414845692922483067670333397901516250843987824956420776921961776416343508505134527722722598076181901264570657471260517239677158895036799772074141114645548882897642840393788111740301117671840897102693606580530168466513578256116159600393835185959123250933646730278005910469262838845813989201465645572644568249041543634456298864250427288616284232954737666964750725723831873401875255866031094840462575823748522302032100493882387373894833028282766069407368415017421499762171591471386714520082643666120297040353741541157699842152888436749497062409712872770771756171395129486432625197464435709435092725391632477993198867985362077040337415907186587061555833373003652041170976995821253699799500070617410237846674389601434071856586223303893840376031862110099134244759423990056460392509644166135309873553151297240289352425113246598728788907561548050092070278210144890578972996845218050964797707033099367478114537886417614826499359544315341478691991015135529253814522716802119969705932211861083743028734082788388532744234475492111538360253568623624188450899135171935917984077822224661458922223080068856007108498457706486348070730570206460545063782011656553927800402829797536650160991805504465109108396706976335615811787607065491013577415591510638285836477820580675457344002024188369189573305534027277949109318888731693836605240827568500727781210035032092175052834651612646734539150092126796404263879715910110530545751137121182639938609349165215695455813490104658468836700233025920613255889969390643876439595324071312060847863618385990073016755402045376544674718112945905693719322488173669237468668615614553248161263735117140508865899756613806665840564576762154056386931155868618605935984020762113693291346413729365645487935889855138561192419708384905095931190872679539771643928105626200209024882155936823482840519679435710821245253887387964399954880982526117950799241004915197884111701260105925345311953249096772327591189861457686080215041780933859305859414335120956085709765501032784063224673890945775383850780164591220365005841431801929637622499748608560442908437168945870593108290350205243299037307860080305974802347975421752681408728912480910522879768402102571588999609112781186665322957440222653516564090638680747202785223423771362204189352031985761741594573428958860299044959307389767886761204137252936233157216001521200583422335440415921078017822135853238118922427160690927861378800140432804313412653636577867631801408288595406642507217411414605087054356067309907850171780490549102849042835088304347967558974510084335106496139754562696003749600305763656875288422795837595834970807426355384957558764680061343456293552340357723527664520423189069491302102397070877911636010391757389278942192429326729922746996806110055737671357467520531729413940832367625915086129720516529912374478313339731541806049571139388134866913236728305901648024335956344059954697713896685807054821050140905920574995376026251331660910459080992735268353073115572933147449215211293430313594845221935152283047383556204167491076558200367585394699811413803133757471092421987908370346037613051629516991985899808415804116007695089160414524397734497356187001562970054442160954167283562334235106937948091242565831536151286828716705208853294627592523387296501964156224175304686809041389072754094558161909110330865488507552741326453882703122290521787486595382062807383444746287486116824113431482524279287719443992215478420326918061047006823089032603091783068088607735329601755567391181836769305399423886727278031179735383018614702514285235256828438321680761417888720990092671541996116115584779128928742835343261403421666831367166543358634580842785453003285391165539984593125951265562674391896216403728279436360099756709751339209366979013035789314173317327414299044508771780417405499641329253379302006755783000980404207659833579222437728438569330633234855963906497239557728986140798361129671843455622340883487970500000327348476820168977412431804764845280969535419326531207659585354937219134362253240350560040429871253970775507841119320079372036209573523349495016160642473610451815186404979321009427930659314506737558468932711147682979545354538646303360733643802362146691468780253488634872671497579819046084472813821157623680079781752332849633661596303731843923008905405603904726917345850331271492671867259464774471736367274249065347276883024923060278084538489128856502135265492423140990721600540875249792227960496792086596459688270286359323989669452264971258410532157732207320512881123970904716259756327660765533345873580859992283672491555192291235429477217099885212493315992216521249374044888336048611572289083063141180594941810008285315639344041945815663191147523470091154367926889311354476101810888821438026253883609247474099379409457076588637061840925757284638050409732614624921743304885463351701436495349440228299903392554338866029345867820330667376632759162369836572115756374058482628784746805685548860042311503287994929775165543820498346649213357597159229464753261548101389148689445656259734507991516307110919148853982188085243512082544761419862460785144736986664739699907964000452154516133292796452835271171424674127866929127425056784845929338316077771839772793689510634500217024976187040604206059266617074412721986861484890513978726651744430687695907219850120721180033780245802852283571419991522128213567992460934967562104457595279997009295557546332912623190142925298380971493570500809202892069067285150635088003575782089786295380191235752169597921455015438158609555932948960939770694242714053502314008952249448340606340380107460533172846928701525203665185558885798343155620860101923386953060030088146765265133671954900807590649667296297620710918061547135232745719587710137817983691714285904220163238495881714326722914316950196891860402753714749883824080602809443125450612966187751774787860771670100638313163448008519207738399993933433956662616344925275409467300578969708742728139809849761448028611259287667524278972494286082365463989244859102645638270900502765176084813167375843065006313606687169453880628445953494560160334110091715940090065746107299228643623275839665280344213166698932981153356609863629436636624643117435669178386930193008066034523698129192331011939892575933275327333731824996338427895768898315860072457588783159561562628392965731934593784004265708280579821058127230277436492311071782893914929549530864935917766276458140289127582759909205889367025249198128324173833943583903805707617580834870539332851973853674114156415973713327665835201355337532069397108605925525120940297845621759027642443438004920754535861951486194122816287061435333150560793948839565496732661825094496826798268740850263466314207684140015178946913969991460064706682022235619374705304183218509692748004423415459547473400974952556388602224145962481151096264172649618442951542901032456124342308327819834356591345430551047229502495958272795130245683230367949442671902825289278563029347143132580319765547448382152811420892716790803476727576446169010917664718277198892873737093841760235917748607428544889852395956348716443459683466285749803830841915893917538095741751132584575740791616599928759244474419595128937645648810251046083433457986057044019423745372483021542203681658541185627398002711232136504939512190215006355536580237620308671943383437363507342791500374589863155473871180120545410730413686640912421976363540446340339681410790473196830877674226510732927751661966281242388986974953520730787534017130621338720602381320223141008918052973685040492443569552660238343867557287265191584672020067707486475298888547552342718171496455815862802279346468739540609717272081717180487664825393469335682684863795286980697427424119518974824107873145145030371061509373749227126671812267645853986012929008418292428630456014864477780494559693982587435301507943331752121586472027305171125331786000647810553928441595698977404304962618467411318997295365804126628746029871108936520396363278159520192812543983356708679429232444291560152747616460805077919511350532496054487745344440541338567355093177399024724765074250660781332532886816813477036259510326114617147131677466554599439882587927503605639676065053730183117990619650079502549865085246195750681118997323384083254454150924945368698441535355615169017902393999947469028428368445731404083837850110898676408255521192032075465612895286316374200884666392290024324055923198206356667518265792478474056690347985114333675528461416132017120511573219770588475367039218773655799338061277361636568959325770726729373295753251773042598805201017919736799298853572897692243191455084169882854030710583832707444485134535953398768151800144824731124853115637331858947121073462809515005490517456608313087045797721547568546627080720690006525727389872378377869221088742876089666481369856853274231864099730725044661990775095785593120937521406753300413106101678366296491724659603444515600980431112262711980762361978168789710174946190724359218473826293952079686790799326855900231011879604207054506566299539613008837367602281696175558607222628160040828059090235316182600642567172940629139467192740189203092780286667964956360824850017289726300744675163834545143238683286374050513767644276762970772383233112819646106383885974849074207698701039537280998744208680175608524773156224771847087481079697295604285807058277668306468303600090044700012795763512112526904184343829459352698854795712635605565846130413090392872523603527759120180626808345948209161023176952218775576610292606280849096311503464184514917218761078744255408463635721114431066627838100711002954174065605212872610903990843487852397051184444120617144791950793085931074060971495929215730705865902939479874232036683175304204382951552925480068154913419314967727927272351854606274883763586496839241469321169467750379978008778317401703173982864478691336913963240845608731141707145162358189727093945351120099097278052987507249788431577451470236397983975436036496938630685623676528298462454737798423732273485572610450439963903105708876331018249243793369375419278662694456876096843736942167997466352545104492206458673479850044898488090587852096995390205224124559015051921112822751969646351246294758122865941582244569177236835601841758624578256879226421768247420064037366316314441362544695761278656697288929761567882898076927987937336737957772477796644533507245676441998051383774360413111644412654733950390291629639383065594832340426227925431328297656842902916340680481449844419132742916092562792560152009781436200236737117382208525804846616999269144272994829115087112212043829040789279075858205857253279313006937199374683109921055969407420426548808374906181523936528014052305671127667272906929373110649712588713964815528958513298999637612124456408609291285232114528036067708501795133937490632774441594290831206982007739108380893700931252393960540238191039894197685294602516716571445375566826912512565646796829722065150105288139228376302039913337053897374282007578191939310713425669202743316139158308277312855985283665089922658326051309554592947977614462672240844621957581212363507804386197319490471596093125586393493955330371483809585767505048533551084515129110410576006831165766302058157817532241322692395582182037257463970067326170890753392871139442069759128048261785915260837025754270112699912405779001298077480232104317080412745333827742260795163082899957113388194950074980143518267404329231362249238519431961757574210242649763674753397784837694069324945720246836472260911093348470988811401958014460421467026238481740561165949095123760618470374482307450415022970451524524816179762646048914068496580274739642167754542999775270780894323115414957277984529039345199448660429971620672725383297934139352178700147282930646165952611070274227323676771215925061070818791540710786809969495425507707644401058267221949985227842710605246652358349105558004260170730779073487776268727581905192068577444489128853283319516952162855782034644492186642713053546243975967854790017428590447330809105541022938077155830678785708206782200952177966774674470963704504885586500714189096364783350216856115629512088385677669988407405091989336265894264460173729502741726628537839794712926800443375677081015149747009662554088323829221347352135841615576936296987381316397285105473843639724403037506533470924325681647112750688704746278393009407406088259124032577915173811014893323468470205347232790757672676775516892905937546406734781628206392175743139293401150761027464919999240451133194109036217855066994906740732919464634506521073201881464888959966008382852435990155515782839300921870289922028314276613416785404865902885061953406598756219866402872818998782659044676313439324264500837165641536342217610121917112968050283545336971040607282512760567419862371274440267000788487071554072557358004837649611565943004432356791167932004629239226481360201339848181537195844659287282728445522449254572715526697973965537379516430733580642332007413044120585916996994922929104646966804067391042005966251560490892514779847434730494059787620994173665035385142124912564063830206187136967705977324494038945706189700962788440020828277462520931692828164398744398995308642621745945944631387542246440621142684749679807537419249077324951895178777192941365101742663393836912399545603093926001422805800404130613673338244887356201754291564575626845512658511698651630501226070932193860345461005468599701303084831423632750990267349725357239665414654682849572656863212142950173478824265105521243772958580109882844485370117645610774698288041766037133365705427542370652695473120191027902134467052703982848177288022918521882888949244684776949607971015993798068329522240332530194291369546109253503090969566917225454423452203740690046123268641524758320839444605784487893506938876257650443202071019278907680184748381876002394281613325763310472120762262238824251081170129146894738864024188136633645690215238955033110023244517679358147630804227369661003608392388033991783140352991838634993769591124933666756943216979400738583936936692424472673752898857770553086994530104099950727278619820920976248592179208270551631142104648496240346899644322792373326968938806379132248032314763224224422919361544061724416051576369292382594792527873786613173047242332713590994842830204318006750468694659919652160846900289297954038041816049359654686871431046031490075641448593612601034336288058511650401793379272416850588719313781654151591650319250380016786075857256132003284152804127155867010960813013650038673440199130044309355251670013593659794163563839211793430154865820672792544470522993435310594075679450663230354035924320195459029142102150815993956542636436322237820348678130752145796324133426092625321765987992994016902221154113963383899322306747433668885541615223383095465169562685185814217301376344015638244783388257924774074471571401020719542415809209032622885849543232148521304409831410531721647353988363038140897460248022060291857348648727291814697133689642806043558251879485619837901054668476055501608052421996717833124292698383939242861761874427048275541408938498572667467751730447188637553177727947210577071333229254291718875074639061103224658302171116074978306574299088451356304655640679544857234157292716423895871440423142768730367124570433259481474580458198322010815244242922328678836076394269529675013645509092645556203037673564875406217216631171572074259057237627201612674459710453340094830631245207273123394566569573530034714770132782497723372901350773067365665193177687678697609578287900849686968046110070263634459150336124431221009021476900735140952094906542297256412753833129295801294847515024874084190549240829366496395978133380993412945427802851273002480552925108395897085829515745006125614644649525277694660491628154170149503793757758985569441985456555507396491408205565792192058019835222018217450881786783418011873321190127526897397703169785168589362802559529749812673844338294003257953435230517264521452528040454790138197440205930347828143025793169482613393344576222799273314466233471218979638671330790056741923942164803554937984719367025294387833149533515171368211725109417459410570799831856916672581187054927772326953910908477139765591252289839079941243638278491321270559382858172153363886532124030010146052920854062946551042449723301250279331502511280384568496386358463869757509222323524318517884510461195773472215850051902063866381484695987333391674664073019359555606346984052083789927618065955528694659830703258562044945507918020006900324030493671565388908072613746689058356754131938865884117707586443695934899382564002815350687912464006312501277629107961754237447996619385543587072070410231813508764782553397250118025657215746191661795894060793960139067877711643649089656302162327199457532494356398847668087168031119832582595014272249628054077044337948433409480862085916712057944263849761208881152384971058923155487722101845401900104375171064669786802220838335898172281042444083584290058003617915336999014902568680967217693187325861528999688277565665359253491214914447372875533997701465227125556982753568738556775242532239212232070960758572564621924292701350119327284800988705725791187814283061793741044079544405123405036763289183402537962494426067550930573659714307202217207526146807438452969514506731913583063863260075945900053420060363624222678062609633992681218581335364879928105318556257943696675130414119367540062482767413295439522292806808835729081947756362760396053725783897512243743515070248183869265231342656692064301340971248743540123611737659913977618263140689188710519194464017660721917330422899838609625074231351452473820673216563351944578726260078053584940207340842890582734521744334414478584018963503996757024799037849784506603801516179728205990612508845167062230348530339624756217003068345920216571064624783670308100237312659041752930599102690891400953555599352071302447307061987863137727744220465070535483349770345970625997051256258280238917980650105102011584293771900783532465932815000324308074689215035289843886872848854091071675965050548213254313153960797682196370887434073034108248389860592253357785097624345087781447819590403240601862881513074164845154740257170122945053063597690180355193138444253221236694142049015973728822398957874834216501254123394928264941081805676981586732816353269592401998059532007862678095912816148402845658141619177822445128318563642514701530840692933838078173606540613338694166253660641968705288767953445318899328093560832863014537979209276958851818124410303092357456526459842951092373215414442500560461463861735619138385995366219726600610472706320139583679890025686720941674364207549347044442505201039907764523848791281021339725567014144775217557152090332378456447878024118787459139051599988062500996555655905409993902861729208419852267001976052094464178838525293438432777518605862335122582480725620983918221055580269993256276395144580191125232319695805624774962777466329323695514217866426346258214460983645051307032098939088167455361125002905502170270977330725590883159810771988980441689679581619058035227426504526571748155637102032328281759872900127036555652001249372787942002248781017685619545133340267874301895488697669388644822628672959189144840063605716800309692804682259234114372228765345578623079270142966995579132708644908732979637961047186294227715818918020093367187695355396547099674305127693833347201039620153322221569761563996431974510580298373816861187641085365756546105433302165202648759194175076706851105013063465373748658252913907223517078652342795876972009011537402614065524266732106295490216411745026051037583518171308963042209571373925316111313293913607546269514715453014438922105528066912091485357263907306770674383322989718372844534920041898850756913472476588688777455275052572650161167017132171283481473399197302167676336990353272053829340825558070391529464585610555906976267512628071843426842845885171795290472186688781187462000718891247402656308091521440559872263174539347945432488721124318600792872538789986010425921265620002711213592682235642613459733263396433257122734477577515274812418691592502955013130768096959968984827355186256782653649584030750995600356744583457831666603171722317033609575414449516589473952520632186591711505959806768573554354397826996143458938486793915399846185640783275923783613992129510099324713614474845061207918476481350868194604301015876830329795533618579763087613912297200444926639010370181861609659238294765601081937758328058878580727206974628428543855075994526119763725145638024212981903783188328564378791292159065999676885726815786212987866553602350928772940401543290430355940066417179406239294605883676556803302142157877434638113260803154745800595972011152274945952143405021020723621881940279601312401143867003490435137624004682121282725893755109614644713970485974095469161397182688951389805723562285575335652875933518527124188358663775702537716979820845026636126279279551136659664748967270506543099653095472546952906715509768813184344151522397016514639951417226713273828820452574900786593016288802559394041441553613640242428525465166515479637637981302783047758859764714682079572805701188228380538003546026159799871652804299251940417723008389676158233062831845161242686717413294633196960395920778051509530102695025519898233020084535523058797215567129409019087528476121485073609640930648514579820516598055943361964744390758020843698518712537875285872895334720298865731212995209922428841471910046580674164677029715596368693068160813815443024063408718016640290200696981057624983549201327369242526648826256393914476186435214829712641517126224124146762012069486670917560553029605858676805929636428598308967237404104344556781677456134763567249676773359336322301758773660375250464126087446444483224521294057849321467188203495026766166075192960294894457795251261892458093494587833123221606368543235927830384532001295267177396169759668637458635403084077272565611313574905636195592669159104467144637253553798500957992661147394395692154816451540146832341087534316841428498103023593950825506854933335707050628273795245402369948398333191495381872091174049511712243019923304430910471364993147309301810797405520589848420808261976593144283577951165507196320531603606013982760466079187732481893761643296057152356274955532773653410474122371232202840212921749077416593094404203480074760381231341430098905830830796291430320320940152513606569004600147365567620814718035217387143598153236671410581898297308863258938134171964525120402443187107939029005480873464728462593774464430939587749726870600938134496772772129053958198617327037680908703026820857649744441397550077679507166312207231077208391586205218162679285996375931685311076058189947496525464293367563445260901411591621243029529943280341998932183014052233017874760132221542875779616067130848641202988746601889249973147767529937548829458005387358492714405969973842429067236737030446766488138079920618323737273629610073267602199933847007126820083550508069528127754909660244240773742158528931237613050594189863707057775798441346054497988576539758528473970275045624875380785756500618893284712524891085829936807150902403959043809394683473995564995222359327471308570891927757387824542589004961205452444578880770607441793909244079961057023973798061900574988961078459299237611410096683599098321438541534370386155158943601752555686361284895425426529042541605750520107253551510326341727379262706611610184476495572801968023057810814201213740296303766793591575935505615666616515172943019394430159832032769858912316528940415352011621224587590397913117824547901760658450897067518259387450388132327026576557690731281409933877985915261546304173639680994679845659545823179663398950636496155118301176144520132530629283909096763620734087997910967033559751036007605132100109057671984898849324359635981947013539701711496208410956332942866209310172474202706672443867338211406349498398296701936932556534265323540273917215309998357183666745347077580327319754150130276323572407320520136038803436657143170849926577665920255155423094279187547172978109190890229133260632505959929105671898710126660424120659204535831356350820973334497606013923574381264388196543209016784846456610605892209197293674090852955852116796626133007187772606401541638038353388086812971686217840870367896810246514072149028860400531354089025167259109642605132084500508882834897825515033513217860421500462252252081915042794641648418609353352817092795016218334601794966986619844290962909803829801217572936209051231279345051201815943669985747169059474641329245725615564315943287063060180308174422163971633022845204003056340833321872927459315365828047445696764027974428594762510752930528499960517631391667557372665048107783890790170209916715248848938120648387394274053209957714202876668663425843257243519731562829028511505712664889384858364491960527371834648008469187379312759686693508551447562055673325078580029462581614211874603857449439361062396704256254558580910128056335179788030580769110277256693268128724536541875748799446004593217608525286271329322179936892717192682479377501276203112559974083049571780046998152585938462413992066229832069899754333314701631277323683120923746576002488105491228947832403436314168325922296320940024397061124384995358338418893567259924672254494940635441097057124710508010683778349595825047484384078605835030148813811758954188248955961744508294609465885843581173236817672164701113554550151134147182330125336210484359044845498529319813177776474962798654851906577342417139455692478965827579376028319197748995500190487728601305916301234317714419885280764418380177207400882984137859941253779907515759230178028799792226260240350898810239428699560787918121933010059634110039568021879872278860897090009914931114964241635452583226777488397810741747661879113340294633281489579973942776087492539266945825938870928572209998728294142555741384492392447538807403883495115556177716595025864919866592223821187810106842787922825735346665957607245403202849230572701387769106543850877551524426361106324584697707103231130877706687828927934782308597489029278002860023410010541059499050503357766066969759547842997557884443757374511238421648609122444227618135280742672992232862564624501356291188540576433108482987840848635268304711736138429088780230866441920354404765130153269125432123124688387051446293032140478419124868107552055014467478033874384430385445604641841556537204124195661833399864327186564222747219587639738209603964397077348616670170882118685060078567292336104861534788704653665910674179252137248576340968923420085693872194595811183557778918796729510762427035912540641212501063165507029869479019283368125549951405019614364004818406047372763985694978055669464584978966622674868979134219572686877290129253608714895094040931346060914932321368642949911661967502151317912144285661362397715974041207405460913977990745813835194890959900655288883231151059665826148834823611798098069452343150075125249989670510988532733221901776683177604821244410062726609617189708032093634958482125143811032699426372439891433040184538528191939022032737524016796905360531037954611617828458986647673123704327596125808934988586961909514538145307988075408229702200091229875215211118185140258967736812202022044792379037762211537504540701680876761923898323303837380230000589996709328635266562976044685158680225754750965837596025287889238986844052714878803403195919358698414260543412781707172879500767710654477183264067513929890457979407175511585157944945909437207061327115861471860399664586347237647639471005582020432205754368779178377624570567999504497591129496726347342063240359852830601792476025340348159627913721395721476623554472843579518640485024130306926125094910789448284454041820811037807814294548642527927083276661234782963996128134619164974053154113138145812907776262435119820495148669141969086997368032493457585758308865355680817371397016467074989263846631160774246168671635504604050924340081062862613156661092004048274221311880114135918194817307264874732045371844295931022071286005790729647393542783673547530914680733790023326369187447814537164919310162601118597328628182286697656325329123754727019521386206440240216821280077168459570745512578857604749041092900634925018059295067544683519081025203972281050841475916916817425834800374934099627777633642275769823732542301124693963254926829648193281606143657780447530840788958976990802602516474957122036260478090210549611296816126367943564452309484636059933985477388617776657759493956949638850625116756664914950555437279504993833762615046584897402545981593559174570798908017643263221546277598842633882067755614402781199231534520548210285119499436953205737555635062464266965595028200681205463566377604164178299970490308416987570275459190087784769666026050346955535072780194620495583715590653061366906753350926824677227538807571822123179154937750657810273726263490620723038504380111559801150274459240937978044756738692132765015446714716388000917047605538878237272985369316389852453732911812975979282710323367929673984212559174620352812171937029144185200483419251906349128277765789702228011533356771941167032755470102705017762821586266774351189670195750809284597037414531610328121685833000743774263156789971989650288649056393362581265758891259161391467963043947915112697263345507350438339069084764985231242278914569652781474569603102381004018138306769020832494834346812030651836598472639511612170575437408841128285546199092881944286884717106816382025756911175620164128636954358240356512430331491373131774348454623673456000736075189906008767955491066433478517864039184105857347898248452498737775121967072465661531971043623345607278433610739385936643535913131573843905620870567868513905870618042489185849240599634138652936672692007570448176824490630005150080432713799514441369951244226905415066617577310891190313235146804107821301951523137112409328842515320099429330545723169634496868842745230399619729904708370294226045160474607255133266252124232006626076530710094801206083398874969807908709982723621211304044022997671097347851712160872865815846367581038867224219043263816162910889731992927907731013547901242754740662931313811491756169598276635786270618950303094890345640838022520929190168954263826064283635618314898507959033639579531300408964105992291556117733184848470930626729425448325662626734216329104431035578486386729865785286868901104761887492636355300273020874660280178426570027396979582695291527265740502655825037356326993663704415097332453802238264078137100809983114201123070232639710037473778931528083960478301075131639749679063056875378099927997860044745005555950617168721939143697403328264731047762924717604836318111931710010965727698213628008769757775156358434916223594794067000041890286953235186156019164541989971597396078627314128070217649358431715968106089117461690376503067674898616814386507229094388406064236546490516905464878228482501710669593138012698547676068363163195387725605010190722705385361314486403922764764265886614999509736376943662172821838050355766462941627776099025088930368731575857235712860631385459872456432585079507521507360624634492199993845147916246953115055880496241879973445998255571403880533519311219836419992804573710787974920996375081761088309315049681264245115678055642321393111711238587041142398791014947532327681571687175125685022838452088068987743525406004800700231560442755938040275632911851537624837019088113002024980240505768893844789988055525379344000608668635854422501478361480462644909221191679341395502959893413430819692595522203284387257224027634472874184253696205255352285063386047034018090005701293722848010843528819486094063224437513548298021574918694797429793770067537750620272375872262894743636175241399747379782469812202986457898958192343852602938999940058296389174880947399415205085050140626658252618860809271246141572290096781972456660144203857503059806575400601650151614755303934476158897873177272738116164279043622214331258146996264546205672463446699212301426381540243154376286677056588414564753612823415191762897000814421473371563201338002519834653908804581741339888980916675971300011328888132054723130778346086972775354499388816451369614715906995448674618028978078207336458994730942347718233161427630100279858121774786288927231515408890796649617094863721115648324848873403000002981816086272471927257289651358337095576515041162451111685676561970563155683074616332462051485905751641204031936697945541028620216806590597901099988653383747789366482828875688665379067775952479011364493228412377978723360129719060906757419713334051377135319131759846455805136918132250368830230091340322497783309511016173096990729765416087449543445882742391640188424177540530772704142737506069857471311047931042639420828464779415967914708586884803140455254493536527355189568682191372675211059684014161180279440992194924897772215877748265280635803649682318784486536886537106069224882845659998802776679994209377857761260607829441229054716202550674496670832612781645556328906822912498828815252797186941906832194307270614551856386443484238108292469014735248443932927340664840283812259113892651141006031779909414054222416816420641171002882339084268758202056639601149106707372461114034401303007567319576230651330803123247765644689458235236357964911314384117613366266404178608845292286506599974078761612519150680475849412419961700486778028051298910786000409365936660803168169724183827181114390769851569903024454758316301960910056077975722774683578608183757746987485533478203457320526402475392366116282829868219849101497779802209956858528022665846936738232745031482168468242429069749798155923568666237636602953011572982393178946228346248532841574386874600179072626723723779650775549851028354764701179522771312693035688110754268293010946941652416902565424719827111285748773665384980004842509064484560296200222690163948746240841704018226502292339666070059729290027718966543084806486651142776929906242330420537605806090412990832925866338416722413961393680042386145021011240084949774493893654426519235547158382726810307023165043608080162419520140930520121612550609173944633527335026455873441519816124274535278491832576245578523908478385367299685386196156324791351088645143428701352575630637738287171407049895949344572348921396116365205077760004222492137962623172755468392710017043947300636633920563825269054711720113146973771117565612953566444539663034425026124990378320608832579186616655058360953263589808046050152309782799824963570210756264766038806584720103626698270787328597081526078667259531485965553061103408885351392291930176498748576917015845232214695053963994068805731225076629093779654261758317812497796345847287083555383499871230957484104843840820734676907513696243299574477038921929929787470654715729463760692749113985879422324723761001582856984943262130477791101348753388261987689754423397188721079674423272531163547985004883264898173862487889879186609284949602684277886170638366789762018093221257145099320214772745313932030545391825427230141488121200235033657127773354482287152969740827531460507310491332097210152176525897135239825627542391238411674749665689925354185167043082670161985766997801547901881403028763677677617677929025470666995486906971113268109443771530220674689044898231424399031854962117672850762201299749732721199951927336625139598814748975571926987078930758419982959171728050927953766419704019718585984684074284627828009350142747575224218693129548588304579574144669086658963135690249413057312261776008806683182700360298280417748429250159169127169191923808172279589506236692616334274340731066985962904257032130651097930495300672968082563158657170486191910812364072310417916549014780067327292718816139916107185960266341379661405561958017523877198373127466696283199720308986164912207167663738654733842563303105064405017437138690021849520995597577806494352170386242346924492109033052796794918056433786647560009016316724158313549593451853504800411406886315254966437640361390437876553784030978193063840870728975530121622802753318098517311184302472676773641050090363534989455329431687737504839553119681063914354713296938120060509523680811985041760082415040491741325306996724785351627437241434695098539044686817157609540388573422133160042226608265217805261881071889629288763965298095378422124698494541095266712884392868594319610448980151449616704858298033784837123996949796088062177852389794887690851950780863491537618788092169910877265471863230844359690665210769160232147569906485995383473858246758202874754142628938590108871754268778309959884520161951392450555978058315718885983921239919952280035014048697310035745703283018975279755481098811109835007562625812988908008852918488063025084727607208932867538830592713940243244922209634863628085918624380621600512568783288937017443903296578262705698583386235870461061536065366318350750797446808351085409595005387228124457063633761807462679198602202532835393530783593227118154506703207440267133953967436108784472149750683509812581050560713593240396156621222450659728036529200141771954779452395523581485695654891215106596316427790274492191874142642376509859031709078287428064206082944382439239420086622620735536844576258763432214137399911043692407670307215956858856425134119994667293184678343659149726990992842920409985711847103509722527341272376062582620382792628240249192465007429565326754696628906214260146966804077032037176011456592354554121094669709279489890252045888499625997234588879407812088497148524709767253653353555056439555332700848772979622236834496543184451101720427932804568614026170608837837520343082178800237373327741641379162371474902946710664202226641976931176431187823496300718814287895314758322876876825929342350044147859147899558569176015346775751582511363164552895139292635417308463161048847558463914475871992335108665150591707638138926620003653140447130252444597617762267235311587103741976492922872988653571914997090670293343969799345624904569932741234090251649081967208437414642689251974463080877658449879292173181243100616824706705307716329832645462905409062179754369456894210253342167876443551583683812969594210539218183712215840469123033173114497337816512253397047315658839509551367937260401708088961154492494139387710095811947815263754536056092495351881969258896966794299959943959527193843206632542798055412824474671218961680444850789834075782464756290319364890893540180019275009917181257467841416898109870005791624099245253343628793434651277356367039516245453676449667870848816495329467896676312980098797620324751810990002867907426881311731752042803258685087108142489635243011067150705635402215284027459545590119125655288107984343339694509468140810575785111395232998706353920792227298901502554682343748990963391667972257198817506529674250601463503534978781889893473361996258235937565123808094920650101902022839620198923500616897402132893628188672937851402440381025697162710676459460594072608499438609979723842981956925285701624878735994974555267548572193699517992835563620256722195705586970079018884813915744113904573726304693509709305485989355073177401936363875058695460207173864987029918628877773097880381599309856346672963407484368624015418498766023419987356875427407951886814947844286183768529214362645666175497798190900604310313031628121059881709466676314738098936397815127598748333313336830691880791188979651654856160332044755603153273387360380200054667420494275016816332946851116392221572083449474300194470376701698097840410314171604449819778106051447678259625795370350813200432384337613929534232284163380263568658039095515340892592115982440686959501827228603647918391616824063831287974958340305202320784690808622368938290712798856879919985980590828898296336812180295487090835967860879983520756327829531937509098409063153102861210294835279555058301612276382317342084464886875257513894283467219965389160009243515198885798005920216916048072277338817585939322351933936022140594493504152732462605837057431381457044964345846782154371786737604229099978793230957705214989381599484857640101885872049188574158711590589963233600839589286816243922526439103251699306114681209104923032752420592982898953202182554656055919842952844304839140099195646487568967555685492393125087616114906841616522149943731969903681412199317200364109593817775620835754380490599302127585394106924582452205188478780462341424460909272428182303876882655168300327608537891547265129795938675429845072116005030851586508052783765961701907807801605282158778914198798051927621453013993669481808838581041094946982409296397113115226152395935034888222263007884489075794521220127035932795203803744038555378601501539572980696474346037331911280434487001841555057974464387824658279267407255576492848793758654743051355768664313184953835097688480935428641036672861312428257693432543217052825048728327438416588036431686712394861548045537228317319442457229218306203797093698711235613049140155422254145604578855751698767202541101531569103142148502260260930778032359073193944073306755487496890781753422301170570988973857049250135887486320889897571873788255791520269531930581137673025032273175307059644888223357990889164799036871078228471310688337225616288253663058592524178005523991826432608647259885939823719556485221057951254445446417054117839510448833982376163771925867266072221213800932345530584531668251720267762176382769158408211611061946060822708808733790572342097739859814293432145495460565109575463012982338377038781029083251742414766258774573387766935418838313844091928166225406700345897410673648546842438045287827061014971735726318759306956253653516650221724254971473081297337351295396502545706099291642834983642757930970303417258527346107000965892649532757737020726348159410008469127086637051410190872239030702118418448488288835783472755385344895493872613853827358275328470310638589754751137447214273797162317058487817679277557020123931596933878366431277246775851556617988897093229026140256276095256093536876246985748844079482221871159846124936680388880328155130384710885638989426163455871515985846891901978910312891281115667293543792797835714719728641554139236086459991740592755239148336093938007100050185481746009853627369510882303663251013634215477003969268425127596282669827777465395375704553392169778540484617669014503307667468409462390514036514262091069865218446608678774687578628910973546385935651472595754625695819798225231989579596030667844675416846100343181082107268276181493722642265914338482184033462319390113585762212354612154174570257659658263470541136897356456805026022221884436567025044564776844180173648004775541522885498359315338729983635765426166845121431663916899335353746857158828057866369955393051054993378647874919552995719527602039283606682483685885846566395225717574425856044310663457152105021308328270977971224572744178646762993696030383571462303646072451504806307565428137905219327926416754943220744221377401736427313524609424223510917747493997757415676526812867701534792438008231858301441291808127480672562747654733397697481653146056476454421139685531902514203085624062812869913551952582436267658414453780242588617152274585913342494076664286867091096523628448399790853635924365632458446607301610146792402714894126666646501390189375463903348668196360904656302710837715692500330143421939100760273819775559244845900375403966788115205195819384114101537794766569521426736266496771294593646907360396398265429124860523822750815353941347013413692394518738436760433366477216426811331144026854995291231827938446807624715856824342812496470259083464928969010413984643421926914910730413503655298620236144134736485136281720312212727125727040053737326426894461228463789261510340184474299658874154703112903061486616061770633257369302671542058882925293840121924258694444172451125660236784766590037848601254268678837807675996137511124721386637806396522164597705041379521419643916994504048632267123657149066246215981578764006212518930893213665316807740753745184520326201014479842896205820548827705462753962062843355962723132761650870150302335810216421362482640200197044743999791242565067916850406291217744584202282260688767544378512999172111245349979989759299831028409322795130056596974202728274494174000254549329099755771447410756441260701959237722050126960229806550156632038970854903558867429320735371915610341625137370919540940837067778503188030752383807542431957448462858972051327783125463832966667045219737568980868049326675390231359559205394708905686894246732809338593322831534368962526529348621887138802248950603205791959125672212209147198799665746219498145241293834651736681592470182310832544383731829478222045854870800373316884260271500128179375961775456330785420548358442361304428800792003384970529318688165902712178241131816261493609041648782062729326303444135161835543458034703907562748196749130666809140785481968600699281070697135961582285842643715094173477201458909820445149286479735922184507069157444121393061461694118512601485071845070213639054819940919555210268357030878339195783819923870012487803608118142619726412250750022825943014888312104506467122266979431578348798086279438497028027869406976080025087585208147684674299091646560619750482602149560697184700907817608345798013126668716509595617257444622559643856576132727938608008597177443232006785123663125993937214696149358406691368940744390705809944576776540847764717925219072955869370173799039754432316443734999953001804021535005324100573398497479889674128965661937641021702537178630707822425350642140611209092170737575006906753138930695249780111900386149009812719731802068873258761507543774070508883493721652865059312649203538241623208061603598415250813097835873651559420698252692017723272630932578232668090839267884016065018993196548030020202580633945963913587390284973259458903269879535614322526822169533304606375862598149478053860533497649945134040898703561784831228502441695510889783729617839006445176481103416949795857258839283360367166224643200395146047857299806331505579818826336802849555046406519070427832378602323479935617364695033923569702075618898394478636138396710510989397389130922322420979356477793254496959953987588232661401345290898127510094086942068174512435661400759298489196602603341510376321447916031947299365316213675998342385403633177813516739590517931709749261319626764978776072152918176851987177553739071298859914995002834444357864687386448337222027927601728411132669875802325475285134749756449499603749191769825036097196534270798525183406202601367083063824149247038058759104442903371967209007528337992630852957349923954954865583244026188107360789630169263063092813555761062269086425351218792626159698900679243306984785833193631861075340699909998330814137329731555984211542610324883482658768870726102543431296353267116917499709406009547346062318493966758522069745112559754309635554237795199644959161226124347893292673792110944613314944515081309079750856244458254727527096816375685608258152746120184066522698205504313391300725345332664639586454702148822242574593341298386137766790040670012669133500662262577830990042162196027640436117453250148247605045844770838864445118765201847936034170452558541585074537177295562922351547785410636844481879051254023017682685643212979939879489828952847611214611466328093749142937902145131168994084628567729925641019972268178303075295169528574860110624768929028408664226361257584301470535861883749955550168981161364016072827712074276415256740149586949694374138877546218445287655247544083398381352266850478813387530132752788653298447027224256828283532018816876726611967338205123442145418469768982955772114925520286919895806416465422248541811969969465825731776852203771475972587963890405734398614726013248247567081922902840251272871090123286541111524600474378808108821642190226717277388881324060355148203185809984985043328285860704356610509872745677287558386349331608225537449057577171617501826265934351082918969165440150734328343566927405877534610728480564540757066277523691573997208873240482280533138892417293791989288609259515022110227466793573776869391953629057205842507337037110600527013054173011321140628885551573089453323584304171888601161158539833458445967669185510882686781303292362741540043448183783044613655994014316575620522373118975799935706236350048280234339190429948774559182150149029952640120582740960119667330214234993175094778955036760640247927253235128939005924434330849915781158839713962651136750687382522279081769169329412767752083236221891174529062595545616635758025448782122671435934710825080167046921294626276408561674943523263125118631695322392836807847889721552734778091822976217082776129658025216277550418920079632708655626079189879593104248722787965120752819012346378046898878359546499783374370147460279789087680218639687287063726590581097889013743826672632427193011154868637823416238332385233194036565966171616958176785745549506768641131588683977567500732376971779700394028042620276726923374623065451647943299837649633283484003023849878722075747442125647080535478552763643752510573590460933071401479185021084111995801676523106090480641006232016632660125816660029286191007230916771748538699842431976542070869250895616151094314151141601992981651561543922890205697240681461909342256790328889188482479206602322118538202406064830258487439070051110176344245505468766374333005089703794604907759309008099552757754195389357074842581193465253008455282363681009624444323906547434027471237550149747177269895080617918318721507809828462772954524749709681799583176395556956358494658921159885244700419155309865458758731548094081951989901144207757837715780186399388031702781276184138785948293903656394723819213953761398040605282990106419810854969227126867586046177131010276356797685914706036026161082654177584959903689516888190024503040736998013540545671005359614899753724624368813025418314995079801685012056027810514723388048427390036301429266990336832720300599712928770684445627366977854949698676968271612119244101007545096022009737394007582558372493744918173114088574374255695907918341335895897460001227599469128799782317353279240263136283658956339545743500380218150319333042063774284433775972095241803722428384597500988151549989257088311109877518704877320617961597221952474945753777821510642176339594055185738665528912408753290591044811006038760278689386550544942556529347741436000852546446844091861731974655657976011262307149450436927661882827901934130343169506130970973609653328266567056690719157639408876094421165156924630190038320144184170807800170829339877652159558504854828188344048069603329461602220627573503796024199276447487608393671493679380181077984156277975277574432983254389342276951253350308060212837156795750164857963619920806843229139431532657112844758074645116004257532406597786451351454158820001115379475579411227759339865715382984786795379416851627458263446426411229380059921441316982771180439184902420217907051968170366861394535119164697516173901567050920873311565830798070317619486156716040846406997449793260550245216678386977440189422803687507026699707570845499023216385187659820886121389423423515274204061101367302910523657604394386326692023343133013258689052311370179703411598856388633899632006021403535062355652981857236187166911308065511486537461427849278166823315554599750078144147677962085282640875315588618706463874587916124928035236760362702652287750692328603236550778748035379480643720576971080442063476429230603300495731219539317057113975620636206776715942052906496429465569110331337168798111230706489455098974689586527487697665011966870723726553916684250936748164881205382808358662022872712971980424163201755901597734748744562482306620632930885274767051572319352621083281703638833109439967005456450330367155439978151767551199929705452803878885947152436049964939542479386140994895431319450805636469565146250655036258585878111940703207882274576107023955113576749012561063285672731476450909592154008144615672285331066052181970656125955101860921760270474946590876279459788942554587619026469625377094551218088026504475667672040912283743302643347684080747574316640766162387422524892311027833440164239421301098676165934900929683698373188829325098707773119949817911724132989552163372124267514076250435456310789075131676883756713452221033621752873672130949933712396551535210401200934409696854790679990518684150063274787384916176112609754555157039497420962749804047615468583495439035847088378796955090737473066523437587839090179413344617083025259002024820945808155667162483272461570625130827400913722357571062246734844149012408125035864317592129623443658256608770754771503601060610780096965624700547399501948992067699414181665963176188148551677032848547436270796367280478789736925492363379036708954870481981491457798235847441338358685431211664611150933220087757864200557634552513962604330292037548305763918508045599252506111108970604528532525794689742031533682798236300445097293382547823912407463029681074328008288415518898106433892182943010353668469908462242466257099770381893884814243070320901685223076008033383891771965783854685525383953320840893084297420991522885933331189843199345845178861945050861599711349468446418945820753797733501615676411096105405350318383502445133792830371596291109606383151551741496394915288194145754751081236128049560142440775878820262539609949495544538199770085228977036014213847976228539700991791170549887714225536221367522774923753490712498101022192063209110806040607282390348246493477280706443512741437968785003062976629004424746072963679273156811865329657790676969612039694756553432460953946820744164835883895629705355376992217713695259207573742440357469956704812901531693028180576749929542134353865755423073538677765059865785386916563508471471718543790869420137445744525162102280754765369724879044265993072736230169131557662460502657314390005339539986500921006683578212835987595468491234680063770612360300531636839828441537637513078418137007743236911787235148066223929105340594117106946202295652505307328722658888692329966979573725699161118525840074294616099978772926626538122205334913719087135188935075777993783691257874798991736634172297040695681125485817282306636110210149089567874546838289619877572359675761941525941732542020774578922831448281386019808686209103556706538642478609967115434913699550023152459826889689602542784948641634873111464505537756203193307371245915854660708688413154721847399560139341305419314873504164102351841937172786473077123056482481512056210047068047927302442202769684019017124927048850628127893800758028627106568249505426278320643107750133594297212975406815117213600441895454697946805563965344865682205605256303462273047099187133719558446923495901864504360296236577050456111781896878067552302544415863922721389277041766870394942590659295159977793928880244464664352438685073658445304228474363265712937798514822175945448814052151394815416275599813021148622968479907880903036169022608293603888434496537428909363252482788302466308164575282784146013762747487846952999374104710725219952120021523973214790711124806830251898906331402612860689284283531646877884276099174994189575612563645437068570785874906394131915963449115184193306712137991558647297210409492571607715325755112181418989335469849533077890490453408350996059851713687381713352536127590675275701980020226753722809480930716640010820795916013515954998948562380821641228512819272376589864011588421778342758655676880096347287663509287787300283681614948184301369362935907222627910569376898000498517495668396636438125007274149436753892097743717675834052571897595936839891963418568792779624788284852475912812519447162784725405909586684097625616303891245304630425082028450985093404937722950119459340267794559070540348758054763862164403016373908595342857040645489237014338538952408131838237284246623364725168057899855548263288454457765339198838989245894291748523091033695258767186170021483459326023337272536926385643728477660046987223058356113999340755503086404229283701702137929633530827001904332997780612482924697716257774113407628860476689438927740764727875508070345708260317493394926042345835642403380088219346795817338112173769835897983714897514080050909241478328294796042094102757222075163485366418416439432297292386434294943450983245561572723026543136034606103318945233763702020239813499920376352779546179560318607853867463568865383027037509474879826418497294869166855358868282145871092861686008215195614471722327983279380024009273523603229965843455196355121453669855778495417465807126417437038238399365385670977110661807477153134294177981719310049699764968084993869413581174852760878876745841614354829997870087043571953038743004198550590251928572077031150272718843534743842741434874340144797553981039196209534039689395487855883347780630115671641646144000246490746361374648129878428615158801471500165567624689093138024950318669936547528347011156960775920339168661425988190590501274935013973919358577325284986267964518492182885826364478595329423996230443724286584035455902045470661038400464839245393855911196018167036172089096519649471070161784304318312744233696813216419919333755647179192811587424721676675471761836486952290352668100632115993035786211237736204952580487575082526537767132989884380258218991158215496719829286090664394591634586079814998965565853411796269776614281989881042457295536362124166405939353892984673628691262955215795993814625822971995669916504887286557756138684782741845410443050268831891245514790789587709528535328030901976042084679877916179935621534495973517429434476480190912538169086047383734469989343912626227253027540319959342293504491480552184403877468615198861595512487024950691264072347955939240072871750821750129883953321430584603007945976252683770811331784114775215999507973612418697591898824420208326345552224498882671175031447991352378902419601065445925985011095095381717427685021478062608944166316078771357521055269123436873763306535096698799195979905167192673440854780434033390925234588709482017987474333761666092885747649698242032216709995775783183671963564235374265856615723591277551025234062194080467907447271271068923771333510229334565202946217447641542519925525029654662566357173743456473138586213597977272622937627235655133084028441413449478552145790106751269710071031406285990951132203096599200393295638925645365555846121840941316029833426265947452637495518164952933724378289863413084012318371046940412771361422315368265398463664686791888320362448989515373123854538190049132514899990025694564345162844161422572847439693996228315928160859235245532505154756330773106220505045332197761767510241131117599483577877763827161592073537100637882790833529897693863667876681108518306827554176582282859461500997258866963462147508869746456873030356411893578622434928587593163909593069243436262801317287517234689432284057332843511479026137191710274447699614281672884774222164383345263897747357589815815294526466680859554994114962891881479441387984576865572509438510648724863979164304765144571883378545861166412706295224708269328420972118079509658321786289095794141781985849417444544737418050246975531726146761653898805716799892761813728921317657674960343654336127934654754916316230347631111743909550265117667085003796708018414261460511802772008982077509120272024783877887586195524570076489713783739032742775527041202426577322685875982317758272340370744085377195208698425725214646429248841880574324395469354592505113204139431701270510192334493657574800516340451753721855020592439643627662622648213093853591606765912172152252863892324358957162652070867797973745885870008126111933340127352844592564872959904367642342421460149749523961380883391770674837793448011771308761110225366441099805807402342088274547084698519406706552646788142894543420341426775626185265208129934733113108670043804957306389966343620695001049407099989193910244214013387547408499745544713414770944527446404446182542561946833155600814109143992664507093846340602650458367170108791775327525118668588606823235278489493177309727795113049751916419145872651867578428604426468296555567638647550559452859850998234527294222636384826392522968076598678004073846031064881274422064152109716789991443644751539234355434173596568273053329327233203405160396022915855515296966293740812709153009849547473719724220710577171698178751432034180375865977957361043834031587939253021650542467107215620077312597551577108273501837664546632166483319846767827090435272962101700417349324442454103036213591257707733626401098106905080090669967889567682335906743134495890935428140846665584180735051273751902259617734524393535952559080375379684506141874255337263630525182584641761606995118501304228128372864646911739991873081670645738035288150212510766700042638715630659254934848543650489778741911626692110994586657482543492411581760021614231357162989799346043564557659099252383559460916268177644742150053229114845920431287812199097854779958661132995063940600091213946113743267353886528499954827455649246731332904470725709049392545269822292774523230503662911267050121925970672944781923844989822883156667494992215224090377732786818347199027229922727417560013849149224877672603060934530084794688351466288748104849027783594144755287415039005075313542342366580475204075012264688065901858264175548766453266363458442669921220454286928248182495293784564397775197383493031133641758565762658908896241040844417285748640131662451720324620001186971456890814118352185316125830088869613656326321211166769442917659257397185226802906197466831096931324934568753345365177086397489209978430744538659120406117604010294786103226724543675101162437866742130097328066438183488232901707275898860713045206096564334124258500095969653695422257005608889324699805745294032382355344215440782315189288418418496880812050431239469233369528159883687408937855049742439813472786353175316546131127707688270482523745196724453361403330370429372026353880811433839648753956952040197380840946856106950526143922651968321076326409154734079774499194122425405792422177353484398638081870017009227897580585600059923986960301645736202359675855829694181795257866630208149033299786371321403722130536118896514747627371316865342464365003484451425693189138676784127973850021588626662187645828392019733486581537674465877207678804207698384221403052217723984442141793075639990222629726222186222142223299256803863106477356742044384231027273202994270455659195165907768118600156224638189827363985354273488443535135720552871012882062976139525448497371471493146899795900734099280194321648573583470342009177521364489274032489022195199993315905759036355544343682240709842207013482546882085951021150289692444533353951362428414733597488026009985464177739434553543365194370835320632772827337769470107104078830967997607964444126026013761249199574807161053470880016789490968458799410386586656036703093781413753248888458226333696405051808896052750326146346473697149336946958563684515559314854409168505602500954987942438681192143175069047019724652539872405729339482249423243672088777156454068053099772057087508729859692483786612260283216474822349904197328444313346559417305205726828518378341362821759060808153355638376220896896380112743741833168483955494723089145561133814633122225398675231238050393179110530062284915037986396380093879834448843363344896363186525480530621872502029950905778486346930999275418224683820531762189364550852024912248503831621479621645163443566289054099913241837918955686705936203876942000842675246611035334580561516452643014777369105227731725583351337146889713516345169973787611174433138995680093467595332577255165905085855602371158929224489714783532682141735302845789265335538429565625807540200142132179533213342271402644665543461547733374636885376946508463944652476084866709901587034345815260009388351574193870337074222201422458329934819710273231581179137045826926412977867527617814949688105509273981621351399332065198816304306422996819677480380806190623876561501754503615169627386505282716823296929474854246039230357759783866163150732754058694933098981738572083197393919046610817649218734925067818106324288205731373218712716327990592441643317919122016116623168341405547871946900204508047823382311156098756410200412310641831792151292863278069962898416983482091760341407742750604770623897385637843253058602590569902198664781524332201058423835498187272355124452696887939761320441901127591942945310271168532257026042755741808538368143618058590149155765954610112237861014518735079215912657848427195596526478584282435908459453308630111497315263886573712882533869577855208207689210471822442330924282442644388257618219695256669878903556104014616630007433036718985721456718546693540239687903849302553438043258101725050945060555952177636795897568282648462580529733733705664368712628989932814992104747238452960027007498671861016757753191148112775466833177645398457579728122402246145926139922115859018327494949709443172353980890840401279433901330310969727128828638345799761068442807664357377061890634441029314956811197477210896551760909097656273663739328527385079879667234081348968591769820516546258322690951485248306173738569813393789786286627023729652530200369020459368909573782659006496979316744365097607518051734456109621894817915362955047747079073509221262225552467116537408408518333921264326202194782592371748942142552870749316891360749981848837121756502699865958170590929244941642843407186267232531835294351431709212759055551183212459735936381415452331766975578087861701835723663539510640180906840546546929687787082747184353929019168894393587153811863268227409379855120248834026184321986775687800907911811710610309210222057060214011145122149498912755613843888552535273772329792686725285400050933034193582260830605758223089449038495036536558165818007010626487782066764947718400872918097796915099300186032118246085226971036082554537603882034572324181353804245008706878354946425841176361592448797050661341382560702558701969696645690873742742236668875917313338380752382126226784275625812869619278789737694480172902896802462622471937621728661780003789657047060639306705045822882692643839628675096940376964052075168397470514980010139538834153894584836629104942610795904234744171922275007311113197508519322000982290071643856186576946199215725495066241483503240944963461835202738790727518550314671123740571488463934889997939775533279519895157747964732302506994960169842202061994452360234653383226749991952542649908662449184201329081926281825394964041244606598970066477813459998114967595849145915856143184373880622609909299639924484400840506727034999486333591212862364460213984872682196320212013375676658712768225067783795220248633846420940931281741334359850341852818331242756794354379738185518811409114866687335346994882549205061412846066821188758246466502009064689942502614931522693646506931952072444177217716516299277488397108084794058658406652983912412414457211590916609553862686168075386005884055192752994016384705528167478263234046190265182947837174042798906275550114711595121975688466450576079807114801348345224043076935294125055385329500078151313748776868879239145237371585919561281341892392380192052221617354440060897830688605894085993763241948899773992748032744933539016235133728418606768586965376687847847160701145413461693379196354086567296538829647521951778467034621163729090295120883935102784773196137274179285246770999836139685835553476326470367040285253997677372483223554391211570438015706215695158671537839604353984816521573986455580404576090740771736836949940854842055731007273932324356855809883491859027129200667013230774303556980368125034823084733556977757920572447327003957522752868169573049353946656460653305536744969066074950952436880835479394974347625859858933865028896095758576555166110824454380093931390952976700706510471323066634921430771557498987708873777892877728791695866545586091657524692899753579335741261072594864680198001292473413409579708859816892489350705748580098620844761009405185524656768893211023187195539657052321590572220470475972398732453920076115826538948809792049756240003244958891443278880471629411301014207775563447813954902466703177941336167592929168098567837411970719378794509338870363896787972005559055774675437082884702843872797142621816677950701452853981796714755779594874351034950472791740006591509778992523397365434297539955106085907142908649782826249094222514587179907206814597819654273883243252974906368345763195635248526419670773803657738513491067936087647202892375878385688235475631405895441400624308610586538829991007535810981792265808652301513329403153679553858619902555062454107832252818036922207284056545553751475527322214676853450456746138870482020634554722357374111449044872759161288379361901278061431138220749565233135367662825644957246668492163255864370446240481473647543603712231709309480895992669574357848960269980676647307293258762482877054541909383221691950920453775599806653885554357523450435560348634508433651949500766759470707177755534292928765967901131261947518457061848546550029299630102827292041902039374003545457977457466089204299815864345026356868415273094310123024436875874132633070368025971506197826631717814469587999160062654764869089124511459907039617431954257600598721367253667844819043718481988632688475634502924916548381653892934031706831275567611119887894398140668030868385186521355545517505861029123620113907984504725291600096734660165876329842046768504248550652178175739406548603874835973775324632588428437318245413186181335633690805290178487898658423391117866018932146271325620822626762826551768758792076967799702961300970096937628365962952402004327251334082588153132356086027961729326056239558632566561240083141066581362224143890843672003682500164838977477830109880069041408749266943912284647446683955906922258194049220975370251000203007090399010083527725949370519324548122727504373950702021778614838012411526206481093084303590810769755549569574087831123526571439184680967545329497781130019994536556968805734629703137807903057015601541727483254306840449641763619035728810092763310923444347147983928470242990292510121328553609083870214858207024284121213025127733501509547302175718637220764503318847948960085455268319276102120729973445585402751574183674393881739152099038641618917276629863125300037940047642804005365440916188848199516149986779045914182621954998673974727209491949385649116624308510913495311366826240351564735959646743432194771076633610611348545352691968349186502711155520980032869263096274395699480821270086091495228664314285184480651405118484792403076958190903391836095459178937300293118550327843209236874306917940574043008896280436544179405401904622511598563147191484580291382412258932476219070787977072099191382196845697999298786099441873895138865024777720006685353023547950902935251309894184047582212891678100050456009686529933788539866170442440275766649165801652960688657931371801143209348084242019970415526255282673873169264460851779827009850947201501567001697614607951119841573517173341027479656519558485641492701266766360770353197322716444359146586516053511685203703846220674722515000903509253599890953500804581821061610354398085799881980280382329522437337652881616242354242025894395247733867645485431723963730443521935507425727658799863251177170657393969292729225908287766851842124839477009418077025082619937881222107053903323552420597917369296776748401046488868261467968374995835840857757154718975556489202688460365318263631057240829791817220676865212957248825809781772338031152139000370020825751398679043476283571103261755552178497670558006721630268993475519557407324942314537369003304655007852277832126753728661090879524830696335843259956722815989492722926309294915310319728545631415452943551870331092924891904932915739220450284473580794650922652107276537979712340200188709891532940659063573122010201497150183267139253068983448791166028890464689287001492260738303852712329970333439572479287430031147578247677646996291756721267118495861144979924822691039093047853373571747900871932423963590964737875468905141295022440396727244796697863656076119395977756808039181125562528176071162017326191308288035860022918307497570897855453016470489852593273813756386863961286978174379724529526386802517473953242653520562042260236216555463356404680682459490936718747048332129554380984389519267528234221467681781129630085762061347109393135962003191999539094977460388908274301297022309871342000977108596302633140683904351038768349257657065169846416905403997265090932245672355796457783174337585290709196099033649916760324216623807259792341745017227709241830556204490769889603811850979422693322017276200031782723013765790274089556305384979799116913269696855773747578123869867449386762758027667383045703511572319815353919163695989124617024961129701407957996461733676392893848304112129686281851424404015038046676496683957218613424068538007104482444149337473136804532193943557299130684269888662006017366478532195210528868076352505628636412322633665908904809508118507756627162510112980000099734511067930247461402234650228748952530915699770463012683603301964842477630783815272111704782629506457805880275634777303870875970250325830530855042632411257253719820675031663270580119968896010535378991384927547955986497496767277223155099647183907172497976149014933541690961675028328657892518621814187120546131235678016716454794110796469708419300709878508749111235105721731580391342171313562456870440146716503830038773738728339112998903684217308462468039144324219787117794186363059922167316120781746735089962354284159002790931055436805693828435621466981462007183288589325449314667529983116527678219964914037310082958525906001607067424677351744090084613223257082466290542336924826180713061346635450814449522799073249605015750180328770135815919536592315026546206193052129462904143872679321793929316992430369510102014592889647994203115075224718580450788887976801652554730365466709939395321365218158176342586359625595963914588578521540704252177382440259107236600822607040719180230576267471899660062535903522758475767232312267242055390880004171983687232427365917527014931712056559867041167712586137639599534723756855464206710564056184986898537725151349587374845531877825413591872768285859901319996264594602337212555002786092802313840593172764425756652342866130891342600351626441472170602710171317001931389774557498237400335042033883818730645002093018774984225153152720766616851248535187806151812039671459222672519480141226005553298621423197020440764652008195827697149589152097601637277813845356200607786289724642870644327096214944705773404803821240187853931582064404130368701053576201808307988939772212771725610765768521243182179444865616172508098120875362458526687566798481879420277991010405499391951552035170923731242943934344670806850136270808913431236287638772487298625250996730950377992342703004519605972047700206990239700951053938818936571368014635607547045443193255665266701737129886864314834321352605384985836822597409350350219947268211457191290302418954061744859394643728748998190779267714709412709899814217558272904128477202059602358072136919691630091500394711488456969133804214910552661979171360526351412834851667345333655786661534736666862392695880331604886712454931460449455823945497202504148880705064188925579406597396423059321668107992933391480448510499063875012685483311055637410163598467014037767607727833771957435211339253661304159695714756632183268029798416192310540302040829062751905045798183548113271159433029112013255592525934542099735386501521841392968385502699480337267711827874009515471093810904938410191975940508598492429351113328762404066075155657484949040342441892322353533341525724711559311310226723378824291152983822778049844340426249589817902249486975962969626244412138919794795682922770845926943133243021473916716623227816361676620004078733767597910909609195026105838306819984277040785841436216520743590555930651187467355625902191988970125192410276593896989929064164689203157453499860162231152522652528736871620477285160372675768865331721421001010333007536211913176978647405426959267453022539232178086369420578541592346618049482334413435024706381346545086413165192418431672490918254422205722026704934715913076705417675435637355206737496116088193732845049290634160988738242374844200792037678229529371469407001600354336700363969389695181824310647252355596405834504854765884677578291357082682630701592386869215150475994583082475042895496147919019856847484934031515479152988934566300758953972400256002593925494121496936550747708186339872669332328780289512301084890744138480190584836593531899657406045075827548859718106299518315117867752356646821391247401941416246738634470425743909001521856799792950416576093066008706425219753939847693209829262603828335636703290830913343357712739397705792446191036603157057616592953128183213316274250047174213809105373470529198127297222700194855517035069067820214115065313352198315964194059044504685918797307395474334095244158169058169246140925171627634039394682719816093738261167415796244168608844566259308452864568207459676814899590805956266726412447547239529526311358020146690643290310337231577092189954412762940853368341671896231352838059317955970022378685160357520253799822879814921510722491190822923705928696338729773929633785275197576685171759653788228979790964662560491527011849728342112536333059382067674097250716442394494614893006349211643813592255984496433340698260884061779238676017124291154376275064415933308635417105208988989379003431227082080116390928099493697039619852053691383603202689017205960102208611473097339201174790836619581945172736087076952337110528339407319624573899143343612868252663855201537085913374989769384276849041929561021992326379728417028287182930823174293671163714631499792567151555669461370836819774695811413953135600759675915842515133345048009333115092914070058485972360130142625751922577557464545293005854247012376895964600583667505397974909337932097285321681087401360703454333793468114478664542119794035835540642062282609296181505418288249687666725297501447404052502611371842369186442692505077599550942332811845437953264949079791458055532711615938525875119473693840884837087947401296473574669616704244469305622974911102512395404681300121392218840129065118133945077286201796042771023584954675173498769152821457142931591386575221221459882039540365534924152886128657217295745434803328222978566434374197547830007011877526821783605700035764988708193177212766123014534619274963061596543082751123880023467060277694460238172944227113071105906031753992872441198934879145886227526345847672420083257413538445826628963338384983376042836574097661718381047325028925925277794908534296542579592790470547410393643038623898609091913972931580266185927743773244812715780547753740998781048985144519310176328043582719876733336174677969713572829948661074348559382385353340448343436162494174365179289011218707745173635602827763251358918939183782355092019110647700256463591355477006389942720269810516753209615483830008759498758192645115205807747941483749172017879699918841495785114106569631947602218750210328052791592873672070841649419776956548157160503519348451491435618611732229729683302065606310612924717818975226920861742030829174117953184253830349012433135673879984700313792103160713615147562369970800462685469840197685357700612942724219309817219309126860832431275714914342993114560989347541977294325818311137390520277558338718564610495822366062179188153014870167118059898484253690678199344889221160525969762913915963011686267818713391175582016000545226398675972311791187183577051652640281211977083765830829589324502742776913637784311939891472147965740708338986031140194967626386746182724605983438789306345908990698305359582666820336285751708056293247033238364163489856932888537898514080719300166831957753226287526191728484259204361332556523895916245717237827957990340149980569696693633112386313001408043331688187326782706771873444629807080691960850937015822584522977608856946522168336494434214411344735904938133442046538991690760092032547404548887807028415581156287750608947184628126948092056723501038782289334802549792316094429392313114460982449361629734674267920979944083565751842928883307583814996197143595504863498735037884342956037473767358292407234233953686993586767041619226838996716393946213262480808865665495353901386907948126972912754133939664192038168676047023559845996515914599619028665757922913503602572183411619153552070938267724494026799114005811021257134081412413454715241484118302914253469281692401344923014982093085082114703831782121686034053548250737387917828741067032716623229809800293774769273236133425521874283701671313118117580871307353887732738055000313997388325336188559892936814659507146134559425555728522195205003140112949668214155133065587809713954934658999687944116268256888038268922892855658558888757943463853137461494366029128408364421124477120970027925043376924502740460982058894000701589985139586354671274769494914528138108365317110252030752214203569051095769493401207268079470284028155066324157756255971764155513265421445875648978848576735496726722737670858106344540898862024136888216079711287365337845626571617724673828235286748171314069852104973778900000640673334760586313184320211946850024746551095606505597471577694978501480285664124591491126729504825026454915599410273813506795520769976104843032836359164646347278468190682678562602898203378571242644752689058840672425622749560050481730179326913967048488154266464787972553376137595601874986035243052255162838267450554864704669296885953591474023355376728412855741880421337459886092132005170855663527304097396733011171008160906932028705517569181243609774320538266275921617434709542177916041404228437277374430091343995017699126236811769614876927117877635296765215082602880539482880747901009503479025484385725078956396659272691870991578484327294645005300890841123703049774316664843143233725213852239193279419504873251825069848727957489062936817954794948246004018150058682322380498590573243965486714814534704816672301655836593732199555926301611307169067811152701175990340711423080204174076278772330078370108227554214689933310032443106799408566532657319523159140170874454716007452703548463031832675642888171236755256048926401810988013149574996186680181303648908187892617963741631353877410749795429165835588042544469855238639578914972537141353636795937480545284000738396435597215476272805815618948191282311229568355733347554311827920689877990703053430381696757515786754955069134362872033185021684147670689025832948796991366200771216887706288936351407167100001725175830299182191702019426651400803260962514213219634501339171862573923738994879245750528206873732663876735184705145626149522492709952973082667716959015608665227797956885359112499289135303632915880884493765219970512130621316686132437354609342973608466736667177204001733056524678316117490045088876579755047182284575177851198372125341379232016476117560949814647449701438782711438423667424083212750301415278650545555709894316950798670368077379093367233572476670322230000639924481973087752948276471826193285191907805722438637848844768048883659267169511296548901943532684542894569107781312499387625515428968987667886400488691928067569814148572096273337035905718266052080096477236544127924475110628016206596022120690790444019809072691452868715261277966266141543004115713966476881271054149083225688310373170240097718942482391283445517087767320016995968573391083856588544339658246684534875419507119848842130303968159669068248276572916665591690248480338497192821981843427804996935695304567761928866787569401208414221340065907076149207967169613769313078402615295612798032266784032485182026871622748768651741733918492516548245437236044733764818356441547575347859017899320568267095793993728154220019162282693197594171706116118285888738758433969724074525656155811085188348055771123496164145475628591131287317479924045169838244771884193823423855598070562726802099120596058541526761131312135219412548472628865995245594484188514166974678046389828695605551337088065987408816459446356822531561015559530145629243454281838033777322906242472859766194095579019754704521451961047663965277417745783752074259493564258510203616587623705094052874761418712620724562065792306053210070543700964544791580959188856019552238350612538511094222395104994828861616945366563873938517432565632315207596191295316477994923492943049344576870407581000240019363485055122407487804418115785459034861845905881187214260672917145212900344373045521190308018539846325801313117750263253681090074593247141227180308746881198902998708917205139507696444782390980578251794746418320543828227872832938474054514343888815510199683929662068558529093592022585317579315113592074764420680356214529381770963356259340546230651754716908984332713787059232071754362712281517647077433186069296462543183057976995514254425601028745652849676443858648483417027423078107872558946079370916930425149230675990015755645634699364823500451869144393415606797088033617143633977372112945903179374877234916301548335810996251964303775490540106831993421678428742125165136771811642720488893477350527997842320824050174850929700672256581641190672000548964275881245039900650210156591800209265549353058840489517684179272797901091684206133004430691918831321538890340639335764716671305853788337398076898676150290752685056959588359045726793752502526741676101893297458350807727214773998861066768344258945248964286255190376663856100283972769978098153649501282348134369605169897546905632071681750821446558111502621379232094267439963769660464498915858465001550153944736332385673515174392148204255228889730265387731084137732033706020971922637546853612091735699809343425054429460692757748032530880034087757968516255387580380753713553082328823760661535073253643079382603196831402892396574594184110045859179370356920957402859691319568839885278164361842992046785309729690846358054471545108327410701995421293119040837640448762954977714833452675744170451624427436594876303108088429361688099789076000876914423551570712418730114846565568286196513226479704394643125537981223928805604752553852917252380360283624870710252010635721748973204340178513169830618152382116594821355338222531868715210894251695473986270213763766998024581029407156213826818041349387479155532157790309582990654331943920195573881106332661770579870150804781572386622308857506605760260673760648488384787194184477350247357463273636433564297293836513433790759808383409517155770639159486133899572772054227275791025930505290261762251939968850033806955346991713892154537888627558656481067643097796808311686646110240199106013191039109772098732325231399024012108545331630298280995921584044730402066169187929383846124425404280809774307149183805920226096185326488630245162762104226050879018778398775906474152640670468334466954911392001219266386515508955156162724619244459809720193934752070416147085432610793215816199392262861233371287398692588044506194797025537778194727116132759415777378302849914633197441917264517072952306099768551494041416711265306326187861095205163487730431431200457333965366732567885429448299515276614416081060197007004335304238570013486073790517872448255801611259895794403470490777212622395623408007015757556074315309910821763041187699118777025666358824565549962133773796927507996060056194012863517965419885429136463561550632280850368528571109771903088514352215285091956568816466560539245586814583590751290615453377077712373592719600980237098528456708989619064412710823610066471571636544468756293510745649904231294603590894710714891887905760988442158498274190657157608383534481945113767257135667131662767849657213265134847241800025504300827620108334907237336974282574638055479885123056390618489688736805536166258181689180760072481182773875919045770581361534692089671343480431193595483430234746589113493937518166637961842505300774058678058190989136124515244355062247885235137422306062230385322576541324544497357971995572374181287796257864668130471220430793662012667169715354998292314909314555294828172581440951617947974110444095071235007485936017716727662392864334929427413029713894590497687707663042229012204708627999651407259094855070783603459759824469380461879782753733131476822354610227644213011920484674095977032998604599472316918922133577802894796966652661800017268001059666192604055959667429138950096535923863497529657099623901426992033427106200104324921075590834902430712906410208133690741625918711314881707888443778982999321641387888798107643743579051179423991547180489380236410676902681328952222142864152245509099965508543579107723608802628182862661631771861742206584813323609915819608261333591098063610286758842009898969466598467002714192162060878374935362707756105982479103971265719871630157965405824150504143750284717239971622536612216317158690904423680890691307102280017796607154860939104142556391982947028025684065186540604676928897984152894522463338723376324224639642893717824310133972931642420417490929382308404932199392628603165291715312122471224503909839887540544081262270837259330484207204660712154720066111548048789157293005537178633917005992738249436360544642761383971345320734887232672786563370089142507748870123087550237375222143517513624116689716201862900987082101474339620841182433013234903226867750343175433667316080618102935876676402956220281283067165255155372431058196001980689346742157993641805233297259621106210437278640630174376496196477491237321236521816720741643362014396552176887463275946935866462133576623698524387452900058320053743341607312530900723899604328323564543567424756257384071193148803375897277030427758763521750766982917076268573348948842119365860002087326501330688248807201095957953308160539415396608447394533623014089707526400608639058673208401582858463620607617895090717168846228559802656524993664678631768583530564493256626959655533287699703152390270316091817489566703824816323254402352256767150363626097755304273259077070071137267564407760482987619556838083621453077096460904632569431408999087036160237084788597914602521263496765774627842224730461702223615880198619337079285919796422446307129564268884413031307936490958109573065411643898216223992289480265484520894981967815106296700123813080363128440392718936109005110327920780973857068230873240251045569284082365356903914067850405603574415391327966825357009333697416396639345456612890744121666059947821764119713377097088609658481419833446701148042949781174833026954344888067013236993673863828391651040541619555341197292909004214869857926655370846809659134119712086387786707914347420083464674838078593459397715028832957927210787740292363500625705270579017420242565737086463977196662685603961916468449930955001294324369240076672397789004039168415619806065969627569584861970952114171288957672240852632530898653647808919046507782492079211943445220731721306208395935652767589360178287255137279509535867539246437913023369912816539756405904383828952425612603156138632483154478224872864676067354540024777396631162919253619040503135300972104299032882641641715020482549172729529266845054197244575436632060604142532060324743358936515126121277054793700655595598612080294591430063980690675057937067050142776247262293960197844620042655208557598112096084014796370792735906932943878219229041771398297838703714296100250336802517657211146798336574500656831935943704672500762446338840770648259541456218962509743954182882715176665363959900693929592458385592665664961304562206544308417289793118185176820713305436331124329629152490647715626541572969488222713208250823468191454441860006256005834389341376230491787498667906257178160814068505966269762538770567738401655919150345428746716743148473151577358505811838253889499967602801166233163945618598123104765891844428462408052505669195685701524309819336234799441818024467947025811322902942507880428445237619475014260182416315517193370900172128433272820076465190128873338606335122188237808372166188892334777477182735043633421415867131498476070469930886002051514709812483323776236144801341018668518854796260886785879484755594986737721249661792419196841226741501319981303292290894520503604905704567418842831688926900461176049106508183646638880954512624874254089786765844280671886069768335737311943831496187936110953217602830471301325652641473871251854359738072040247383246197214163864375560508348368382706109227574484295548318372112150834494827048223508806925812048492328420968764196736388091314973891044678319522532853380771083072606800013679361708486135715432860965377054273190372414647475010395146506868126896311147869671475423576406463627899673562557492119369052879899079698158514078577733108081987055275819976907336936612563908382935028313820286060159582639596152324957100810778959928545308072547691032299981186034262638124445576089439219156918636005182380842413032850063769909707303411356301908176235550488177444015920982550283240110961147420092221180342662273101200319975093734640381726716571453148642616783007123023816212543732864821682917452884804813882672779612631319800330880158533142378880481408208455120431897132559653183545583776639722796065652982569201280451951196899864757908371165646634860728815837582874257175206316778898978537464452342517772617739999592014067458950600178711598280589392346118659996010494908738602674649664285797639538952732771444075881140034946223328299111276522579042446200399958987629987402979404251290483953365694211352908120212334570032427296217364475395953503116495386485478060262809712246873193364031255903286958561011709218380032527944642961995047831064360863703420094790988973333527382024999588712633320187054489434453162175744982200198578807248567525866427082037445318371565213552270376130205123890808880949103503503852197585390853622307169322925734314278511360157643432620711315898928136775755643378070803015958667627847677587479854041497460549536204831754827444047722348256875054045915517256643055030650677368238123617530485358055029547887548639387907628649518230741777412486233235433417454740331779006738582129832272338143187596792396167929236339412722831831666242492222410939858329817917112365021253710145155897068031262905052139904774070284437344567993427763721861553129959794552651231715817494395567078591770779566825615548314466977584304488502084447643040766155219528950200557834849473872649061288797649622340084317387103680908980538443255384692742354672784778977373891888946216258935843991981374882766233254767951654126986801499124081147350286332791328900843987772145859283918369497852210064270203817205870119106009161926066071126591011485068198085305619790864412105177647040841140614364128494286820766320852393553729858947668582813432690358582298740273365839371734137722406601102984729529649632186110773089694072621982560858223285211961035438167102751327991112186427954120433935220988091465455242581645211024223360590927087711710533192360261284111949004324778677955815747683620397104971327260975784992776718923258800981113809494290246186694473634038317707680631283174178163028360099190812493094298936631377984508207565829112525602164705833346125520213216974065536510807432415508282502590767563199436732428202031293406500099994215608178623710372723231317684940201619584989420215856875799557872830973147910989597095518122485277674205387844782866552912865523501969696497983968316465022672575931221673431418338514545605764154775520226690563041415045111310193353331418325367014122601845722827168584978696729650248911674031870695973670178598363400848820771858111011377429982226343199582263070334274960459025868715586213048103614462642900132982087203132897315414010690917049433706785352899642013865528566949983323629086393422816495832224957739917337388395035524885301050316431672406176689839498341879149273171710678769168295438573519485819890129447518867824232546119544852298286301441255629271098205921806105912033745729172299142592067587391541595901096542182536511611749696918886288099479076845265397099999209413402720067424481342817011120733555193558532141268447325429504860353037391497455019782551807678820635250412361947361425818807298734510291047136352810674135324721657003728849620420654812706350318669635481358712730241050772168888763136807146412844139786662046050692430064224266659205666261042102817591120286906273514089294399965129359369031957726136311245836416170478187663969941921105952978843850815682947808060966363483287572142568592145225219187332224527558687634709007002868636767795742581680557109629192201298922172180146049814472634589112262900153343796671475601747471837363900131241085916766528780964308025516558811439214199278624183726777683117711390435967443800768726445174628296939618105957749150280708641272998670753145246459082247968182262072933567470239675492372167652081771249753761705636327136256370242078766441690029764115521957479453189606183650720392372941587341010142120794637911759014200305690483851785854080930393563210168085383799553430947936345827917276934849620187688149461923766010262006593158356902332508951750729965276666943009101814723409433979460071400869019486858008216288986735031330074186278031449590647110592872240577162271674368767592910187177700574591085774471494178774678527299455050407627090083711389762899500596337878852963045040098518896758744543132388096890133008602621865996979083216260642917792030404300023595587621515528857334452871994790418406006200177806838014844863730238826176811049468683037444854151868870124158698614642387112602266137038094131279964753370560720119140398099368183423100181122728897783293472429558408965222637756350014374954263747016206059669412787946136066929792026022124427036835174736887267844296799222076636108192933794606686129118898384110907143834217019365693715016120276507948298589711338605733188772541986276774989532859287046452816355466068413264651576840023200337074218940894956559926754389837602156702329768693870001938990529864462424217988664364136681465219663876380009199755252813482519521652450261135058506607809990006537850637916825556170057307157434725884224484874468132545020870513411419767078072153353878646604876422170132037443819208387147021063323467621294312434275318075621716859574541010797793981468280178520689662462500715155146224468538443569576886666719242054923064996397966982798574310568132055562701995304355961525999125410012283131437762720101992835123073552546589147118488616083643456248777242260035357763688198908831424437111100079555128722467932999671454521494402012295354847687866406539661799974925511319764520044893947224659339095114491347965397190672204891203718646172594593930548300074247578741364469797771523887847013267178337561343011383126858560299060607970773353108391028482714045118045221056416649337133439563602808821790467750358493466372431124996161211266297997336655465522323843543527858661009347517568232177442201083391054149090019759085465642367525545611251898965704803871951730278988914360056325662195564055875701887980206521416705554681848016859462611054619620839650775496787817524526880026960016477875808539194622643519957422539462299776753137846065833001083839506784825949005448196632866817117651607261831369609389610828746872511415194734930668414442271832183708196159428391185549864240939120639975481978762149869583690996158580785462443774657163321599367771604322418680892102291075253936748535989191781175166179762810408714882112290102068831391754257764955488984444160863254124071815594470079889046810112382039253730681108945837546281299591555288674435588950289730977847935215769057845282536997957412269161217166527508206794822893075364254169446787567094251761834925246494736202201059678695805322048715337194644917890429833771300806028013204593833467590093689342607634571692726417279248486214805128265194262613073188348436770735101088699649256489391624691747650044357268237858078818250224900455016471141718890299438657901385005010694341337196570322685592392752210476409541517874814765026785949664907241382407867444922845961714330717254752529297298184880455079040545562755921925011353140314554426192317679562576682064676977552500343723565974755278184303152953000443841905861498570503983816242273621380342045024669080849811883397471161093664340449353641697765854833125089003842634212017683199694874552683831307408928708387727639427349504704350053609902212483963508614790766150728247318314386671484794790757686655608256985497274340718534723361713085599796819414501279294907841006548200196031779758622368499092791086470867005087448469626938881916472673763202908082897571319499742540508202774840827246028602486674903059746245282312622406660864787119849763941250483407835432280036103130050021241491784292242698600449787227500447544836001379729839298576493141202625740353562652478194136350153683986080293830357575838482130244037239815353599301217360667939631892231093818077067020206722293804309958706767664329930824812917901647569426584723011996679370286370995028453448539909662318657616858247310637740291751770524546217680957461320793829233341833829934510878821664929936966690727064073045305734701747084883445442091483155283285132483490026616611712856285425257133338000511052638990738148432734641831829657833495544418182168944514218765079052559077283790869970393348986607999901145708189400430431481743050604591393261330540194288629710182941829402618456369773053254012978613234685378430397809893095199070832821444911554731560944382329223758642919519682200747354588851502031146252713706605692108394218555531993540015422759156010138379607173602723501411431834040867939546373443540551486169006164768795418028711162804005774927332564963682751695677827718673986328708325524257975304552412861523078760551630374230717511061664767736393581565456549311852941344076635837521517319271044689567872558264881318252411375944478298784035141364579633992792074574116955255072727777454995520784666778609786551523801046197063030086791393716289535211412674536074533481445797646902019145570606830199173414427100840413424949406455723003081181567037769112161054895016514716278012305186859572735819093129719476430089005427437657673374160505045334804091492701999488849352000540761522795124066805788092998755909298957638012658056939860373816077561754506054254225650537280235496350990525668948977558266586017770499479239117621175467059526702771614818096322495265862508204007508066035312896082262972916808108668058046913327166410601461115342203911072758088601485964534475981371922478732223799221035454563455517742554867958567352905294910472534692918891393695157151602699651012132999374226761435733201172557286635312206214763135495010644681355001020358809940719937909831868877946994695256777534839321115003899328022691491246847022065071539995743305600077875883287410904131520652633846272024388075261113596506293515983005051275274375785483943316969069400586682291412331665976253003309497898090880281979139195483658631879241301254189787439747433328228008498215335648880609326553642602410968337309405222248058251744740357105305248138163153380542911978018678098243201122549207500799763845865224539147211785847800301656648223377969282579122063264662852113059552732656223819874100408470274158454366214675375773604658514864825076158892994217071906679423159052248280970182961930793977403328941834937389324962470085387088907725252914400024947859683017430913158490107555994642838997048805975179811980524866330315143670981615563738202649418012573726065542868189112776461859375808336786683535099015249199899094857610643951125640510488756072468670847988421639116976802120193509144846747259913894548584473981770333904878894046913462693754795776840772893329331554513716184538791209036285658477423440368354432955620043607996934853257535018884212300089475388720165309766783355079277255792944749060683784403683621065128447511026563236678487992152896549082064011817264636862062200776582472005236209060857781951202220984712559722604095116524968536653960059871356630442407295080075138847598028174740255802174013376577976029474581369151237990418221033951710658721659649635546985894365581348259009818334491239901341634485314877821574814775820674234907469802114963058106736483754683907105906577468816032120949308195611245856694263947467387474262368217474772941426674838984361206308921850095143862172680806320348071275712887754988521503008768631044478414911897966660389974953602128560944392803755166940024836007486549653032724531227674070907401136771895564817328516520187103957957771413964911394718661579229802055234265712501949463964622578418460519069411493270964902313114855965319399603125355188159042789892968327793403199576602010141224733627528370151987912359529967523326604053954921247747611049036246750898657743779389917643393092570083908205219578772351175340709137679942988494760696770056052867570624768111678880407093506682574610224787227978121392327890706652089590310228639068819718090810885930753861245600872353416285409255477548428809306338569399542547202875660079777471992974849580768708508001859665786645498127910352774847646902256963922072529567540315043957910617359433468949319273739462219296708418498626237070252570034474568889447632738625769374912520379195791478030979741559821277665905647739561605127789678896364116923364642159867891344571121920708690748437044573892214451900477709266373489502129729585664191168244868906857120669353356186937612858947497820151573643300880403071095528150379652665023150037257986597262533374840545407603819928244080686067120761998459934440044356410994543329816544891402041638970467053003759725381843282164427413489591258877687426957545090577445771576694472094747132073338141349600316998095894350728673934876308820053921709938101716532272279238089057254481354985428374523522262491883643810423643868461232258596388845330950016404169438145910588808656898341429528598181925482196107697313159043317364606949699683478006390316314307568777393964724468025540762522413883738652171840267302114524599269613698744094600320617624194803256274967065311971230429091577280289483680554570482963248428206388471417174558110526688540371920638624458310822235070103896773431613836615357043761627240540669974205985002428819249822437452793744380864056592757171127394749865801341637367513825198873982722989853349167612856179435472086196745108536862673108377483442813240044454011379398100088428926785186816764847768154791077876867937238997360509991504560582624400974575165979739518364263013125535721112838098896552098003384332113570554842482807748257279277688317179096438030009058689698457408102792929322582325443312135587186337591544743084659325142879474915737991300569521376880642325308000207538682984299005979050368896439080111221715125594831462192600936126090787579707936466801124228517555013117606985623506823263339323547451908955332513760878853428282710930903031704543061123506510317192133126406982138541708358288531697426142471755969628811199379422307661492278834778015860988101928666786630993314294373545351928621510333980498625012405521617594861450956283673736353492782691921119132879544869415719439022732176306474175503855831438526954759313270266492479071264061379817252721395761344882313399377966350832737028415572065968870987302319734647098235418988424893762031042905586607238712800644738517453861384400044312082254978941048901412093091224847948235524002813293906636194235375462255757711794720505067684918680048786984194265430982196452175945235436723983815795986230900505464226925432711639278193947480889690198836908354466641380537274588825042834959786374413359079620536977537838082808530713232707661287863024466550327651064604876827998254450382408573872575478943611815849455553986934784838614862684190162049612342454868729470946211451727104343903757116589941382721821326298944594886052069309316734934144365637979009792389931275239279826741922438030370619022074018937298414893547797622336407191767125419835742928047893448714353653704851191892592525700733610500606536807932821463695184014975457882446431682519339913755862587599739096308577417169807558530245364137341349582672890645512614393944856514782023307395271301681645097637604621151770625238406592699726648386328731739088193275206505013530709360403210483483056027914563953385120418918238530972952708259621683371552561332810736387977070625219535486572169139552721476078610507988534801872841407857523372277711355876121568946772767247618169327067448866346816303014149259034808579473509365519167435058927345640162972328441079923116892368383872234657656813897424213706994781276456568631128567891875518058084306303350786103068401236593368994048927076374225169390279972464250987508106472062874999816759997146085941162076739623069171832242751055704851827734223946960428547656376844318187313157063120527823608400374798052369064147815750775954515071311956325797565445411992691538409648152610668018944358382653176851673821718576990483533225637289763041532030802513614514988759117885453134998445141596806612615684951442395242570983705486968210391403303296057406969232562789720730990024144533377610483269205741468112084825883091646765621181162341914000313610435907134644778223411673997751770131280731492770708341783881936449779221626095778521473791114680585702608777422498021113637542901659539944421913369395409311541599248520132509600128591225974321784427892721295964025991511612875713403745598456766753627570368131455554771618885883737276162873793901006658859753455113084370493029080674752777493183677393925834733849218374670257871840723756420608573512036004276433306616761517534840194336169405381844046014203758741350203559530016402152481287114008965162092147133215836070895022595770334776376366619485412177348683362600945643044899446066567882798606348755848834827991633851902413079791396920469914713963400144580057422291075741545093277693054111312179241049643666588326618438994738268440822227582650975719874479288058043393965173371126616902940752775856271190909432749138966247581126770896687851393536570872456745903848979759457882894808821013142844715892445550665445829053935218459970124895932514429184237504854015812589506154186174171658809782936276801763567460573404716278086516845079677440840159861940958811874390735249403286796469159260048165114739020467441778234885311707572921972230435156094377588056034171446638490266006520421986157491639382750516062149362698568969098971080694427102936262352416978630107748938162228367177016022813498231882479348044735900933724262252792999088782689869542087347766842809681965263283901207395385183562372266805886780083410642669665857103847929282987657854156590239914248890516151114675790348072228895591334604154114444800185204834610738112051925295821041110161776099355937453453242785816806388348518719609634984250980993297271143054797508439743478037787047057531496553825706517099657786502472889481045900765377985721081374910334100300313312266860133274444800205034675915396124726007321112000109900088188613132129066786191335567886735156297513125343167581730443671087502745535529098174148342906409173104715882890510431459733182272132575575038132518585779893350852190509026754777761498154412856980945945049647423446799000617291358324968770929925482061211301778565227100212189506587361549269648358056870074549094468935643845856582974924433902093324036880982867454072476579051749471990617393689497498221092979273197135751591628830640476363490226664379019012591954173137870495821735179584596230905981777515990814321860323008558823992349033198126535299584863676234106006649293345641314628786232191095361548211282238344734404700510950311038429153459287080474834903974792610025903376804669680171698066032910907308004734864651586882295947419263606432649261443006422551498825821105369424637494789075526963945564310497075913576230524993880127076571288133322982372811900906947676075904506469542028689696969895533698910237698040042680960639400509159136285588170110294391515456591899062626800929380421259142881730076895434951575883672069266833875717767376167448668204344224844294374380191277420167918365272829419415407060054293825647805228630612246862026761674210859362164899540316860649694992740648818997274481865182234835259745002403530292831925371067271916033802806411537498821939632725932871049133584412430894143767735211388183068149587520504444626344666919743616672641256820208585671930202497764413118995909835272241816551316313460182815755461381894225184601325259796791432417640329791520648868745130269664099458293871647535962956138803132543800315828913046842741312124251560040590699795418031950714385621676895840764623840269005527996323971933822500990562020598870891738171037691582448811294026707079181406107606713030146458256929432307549213328119944495246239220486280688419337420242733575307793991798217449942666674853002411294433920554729138818256736425601592330472729233830705837632093293953224394781338285381027390076587367567953850155850099680915893692670208874776552516847592639191840811531027087908461873078792809757898795104250864926350904105486653191999564055581555162924333125697901533007538436988294312149237594032081588298665894854072361425119747553767811165300237092539055991789485784938280698615193303063247714504005991493590498939415231977751893169961941632864208154273155481975852380149657745028063421041365679161865503913691149859836501143221891035798371416963846987688334333219144683821742659107514880668211633316727198686835152456551480840573815665161061297619682115093782138807463274015702334775821837014364008868410615446831848491107650255795896368041700573214397957665342173565135422023585982517898233910585203122719328547279031339764701705974934524637986289475797986283388997357773071315110304686850173359162537152684055812810019242472023066829403681147802498772263339205779812785416594684610308259672124013935584174018605089630077338207295902633254199938200244640779806947626124916731347534302553251577262451401806360072242626548997058928790795744042174849676337042436534756284665517399163758390497640273509292114816136018374607303809169416679373795260645043455549996406720693125613251989940244517982618168519488018740752403260352695684230550289990718973315801789799539916406032212124203590280890882005651027873513114807307867116931523178725878671797239116482319483059466816028644237675777475129213378736420965380413081834595820354128799331655436630892259970267395809754737624661844453025468638449210440887630490019816205121939451671730801308711343320767379607991463780913374302788922654273073088809502550468671542743164836858341226310897722901813174735880439132621693483755007123977611241925745733682226598334745613333905843646166349087326546104412126002539459125124127763945534932876767267338446686606253288753993421718376735457521708808935970848707929649217979464537139180285051867509316278965328653424565494892394881421202067715789970451375055885564645723298307832830396087394589812528628671306949011645676854859823808476396844010590730358766059891051593902300435754461264747883887145068386682173574421498312774217014858864510942656402765640897550747162896630547870833450874087528133081198671867173564261757223826490685090242345897287460553041009446941194435030692980105905501978928989728577380643233846002195929051296435569113328770845345987885846315800659555773802780304299672588641503404624254346398518359379866301020744280149833947259196270318315508534973992757470919647319204944932829845210008954616976914568509032176756309366873921549618989479503050293795929087278949464891070059647539460455894211407582339739673014533264282741912096824157959879506667586477057878657347328437964636932584750969905664364470957302886659330931847905031616685679940559754343814659628699223345406007598088880668611144028410104968178884882814937227555248640314646585505473461472211573197487657546440875090161325933431578039273462421987388000638018233128140037412919095630405200899488030750106121693740558766786191985521303933574633116241066644518724964710879658568784400830478426743834959638180359772016987003347352908969550056172126036993331587678316970983092019307590414273433705677812429764142908711207200013912690442111753639331095468835608240607327698057939227407407105205158612333355445780511934398217158588063612489664256282124203512869556797393553494748932998258413023790614092748077426083027588941362113791795495062441825717374101168299480633575910422917198112959333298980715770517836890618993509114744151874286257959117204232930002534844856154084019428204746680521842206179043700129732365936170854811384544820347558355921629153596099532900925144388679139240543940208855866849944968386233689074250136753345545350944136788118764424748944927276061880766534870752006945456211747881014567503970144539141830721322354304049167734948167702939589797493708008820673138163159491684310636552732834785227109464879070928903489491754118156345471639015094164054870959805399580725613129623340346262162271201580629613341604254563163080493294555386462863106102638470437586600801688663795122069278661750524596287178173082931017006759499492174137116856006459183442386022426983026374078638012704028456751465609354089557029855633355128203608027610594576703549424093612186043761672011683379774262118733475972214575197385985416907603515717898422977916439169488878061606292913681294311320040516828366450870448368975689751063312925958818498061286889214748747123346667717877127631490316308456020176257562720561827531976142776847707547882357866284386195059890539754805232759034655346758090373970237030291709593557605216442968435329399050487433431429661447478267549705427884077161343965717505786762169381353843878385224460778426299392875729054906195501232140663612851241619943152323771224907245182289258884723966916794934099430551479450867071980497330756937741963693425592895403104659114553906302772717613281287264019917068121847274674477129956784658027110705936426472152720694723774362800287740832856607174979772019114587785126534142914148056399253236364881330255724036786521315374327027033238305300309872111236489807436901252581492915065381282373590193126442651598175713148677731841154043518021835117388554014854417985330468423491265705692546609745884220670968125632306557054568968372264976301107836567173365490353482891857057979298363969894036506623917687862392579919607522477819581920237722317706298930891390512375703754248518455397399617948665407165219785344010076243186033829758813998629975128393965061133832231234023268963204059125012307442318075546117928709733809796279275014559776180289998616762496510717931650475139986609473783197487505296344808922588998747048831946383539614544629557871288676373400267986146470227562530526276528199821906323492317495345820972873471063971503268755616423571607535889989874156514771889109446742622117981381522874191330243886225943237970380455672965166574423953174356890683743897135082457272357629430294720380128701088426493539939042455018649815315268267017108373931909628581779208011140239826474818972382901246109815238953531459800993672832441262208567042944183638847452816262843921024000334713750427242372287323041316834658749573490990205890359754745014982609983390484289488682560311444052555140941847745566304412912496006198918244630701528539608474843620527246449417417893511615655399243662639329981900241290251761620292862831305219106584395504259253284118047481265540952057093422806343852314487217614668227693828254242081926803428981018278687677557118307221181339084743112628540801477966789666286465378844079227934027682436592330240908427566175888748136071049437164254075616885180816511140241809266439099895396947342576289359691353095773959562199619612654134103714889080221436964423566675165424518732776849471925943993121846456104575886597309957813962526160215393180898083091965211124263574909592771764100691269955614375849017274681731794869898645534201830991722365210043834451449679388920588818813490764753767844599167835102584418830244665447953538598706970330008182748381408905948667170472817714397268769537405105396018668284485630201555593807390421408491491398669929935628216207000760054172896412112934839049648504488636424067080808486828526189808742163564053809171235252858139170622816462113822309562449580672220374016166550077166859941253568366100250121871352547137517783452444859545473252142900780281468854050076323523948113959380258981114873450437960609263574272348610734213974528557075250990114377733608330581180207555431531846484383695991894555617385159988559544699394950592954036242907827875808968347072037255646058920100536014282908492320372141447874397618402708690912708244405114557362562554225262847933954980804369992038911699504850755858611048618327877169804501942304599386732089376074572335889453848547103471927783519010948578440844533040736342280673452820257887987473799494045152544701814245465308051365170484041507492493830013142728880405700764291187844423444163223783011847822888762625636900240136938399165745472604587310212762185943738169496304182220482486645501860036555679338028293115510721520072194798491975588131390276161015424798612426767703547482714474231492370674410060408215101264816573156769648050057838008967977662945739388525328397900095379145046790755317919405234029078015317587296011991179779161025004523434163868226864342325651051419262693745729535096964307226434254720245827980781047377404591008385531532963680112097067525517096498561789080389660022519537916560252431916401189452974260494202714228512650710366006630704804801557395817250474939390360681908517749990454245541167316547098994023799070229902464557493827120860498652476519419491667539985807552083176960521387455667504916255379609048176875653042704593908556322266215174812844288774677508254638311584026633361228510559934503602632098465545288564577320622708782332991017446813390603487284643584255705776650765765057689074426834132695306760479154305093272926600036054843341080127530465279247100573594045293033094399817454849389637201569920879087610507229124828601665845909468784078700610628058110651735813856192384009809900419435261885491457756378190263839150472353265965157106666079042371584327935394142450079566874214862584665282861218622642594674615094360063867999414791265705851769949766724599324741418163169124977153404137302241477737294363597508629684385306153145506472600203804561868031798298982458949110403943444406038047583431322788906299103299996280000430044137608533242792311722982280850248878198214172282247613481408477297873017341792476780805323698583391960142098993951603935896743501947396724904100493255060003063753298951298194243158197237316618358961621805144559689990694266857017821015346182257040962818581658676006934061235386771698858496685299574667491169618538135364145397524840847528860301036407598812286934746463541772350419685628084186624555627284418017281929777517207276422460116096536252814002585576624229315108272728922699513214027357004228184087383395312760656519805656610270809171606101016120332645922177483782352483690894382423558256670575965452969585737782971241250292545377095156770941106740240144346404448114444601330684987560385323746622334165219227259460380103424625121407635454305698985210961389224628058333762536636968692571201407792923748263611155640578933285760446670563008937348083538478369382646663382418797409194057534571858267183273164442663777413711041507601544551824378400732344748686697684436871444784809635287459798017639600923972004953629091576150325191185036935432564196540217641686465894883869212122802040675410087583261524132539185334283284458902956789653815120040464543058041189070681930094946010415490107076575966993866299582789424408628788605663749774999110997783276724161888382561343278701456236082895245731557062305645254784307999323424966396796873879001348630578905812027554244945839892958411039527062868115033961680661813723098387091887651705225166013332469882740656500777687010697232024001668929451169271690218379768529875747468136112708788230722694363788391729253326473442266447747974211924947544536372326661611572842870891099480775197173817951900697032933376640297346160844876281799272323492709378029089624681783794056751001002002979368037366602147688627326618684571480552000828226752171306779212484435854523942874038116155632027216909829179849243376967294197781451678037659174175166482159814470093959105092660049065938174096022549175343993475937044806121144768842259239419781742974870792943030417324450705495800058145776686298428398370537196339811623292561074937431862311604381390076847289964780848326541322376188525136448109943252176236778772988464389323212779863186414258907822316758243360309379692275103359318963042242156336117460451169273628292144285759444314590753557901517316765845488580851938048543737444787553008086297711858110157569736942771996657651095884074500973828018934994942584767592118261601256505988553516924408383179942740799727864561154847071463464790454051740815400579579501871799048536901211691676672299640645165009847839044389264609968979801034908284504202072105044563854504876934887314897840295959119526501992526779512276659749586637314750495986254143734068988887520485938939930952692523869741757557427340046468520598080816069597955860781706973800807844336804110525039029332911530322808262956080257630759500139341941278174764287795719965760344576382039607314299173688155938264247422409470236328147368894020590993904412618907673157947922004550398048390314968602854046692536409152963790808374888396575425392225536379296735737554522669934443402312500659542327137303221407959881346680918513591422133026219742713328859238953975227580462987581784004001032583319713836352910859795781116473644557072129620794072168252694414758216813379274889980862058395697295833230812679160056864721220555414478011121740708872340668704099385434266888014757691069305736844483722456424607777053106970570115568599860983268015000899605753380165070901401087743169246474641349618630277919309822576546982621975594564732053682048259039824753215303883372281467946296992808039998121195199460294132958435546516112224694606906417395573609468958487440044138908787082462578698501532589071101328188648895991235913035857278489403178489330600507151698376999752759313569144346747528583493486963439856065602893756696720599506682716593115293198890022948166009583043829334511860678276461026513461621631446575387095136010601350779314858635105025712970492581993202397034039974159232174859016570915913491839889294125126231712483468334245589114611662818156733982199873152115442997615676918580750003884475744657994458298516601628421909764844899598243260557298608710681412091344248934027542239228322349544110498277231163751572549233091738807846824899949456155341750320984680895431318691982946741280168594852587050579288256180689982130618032470276235804039397379013568368364756177943236680261107754839988254372481680800195980858942077733914268538069776654950369977675062700803303351084546678434510916037080981169309715087768697185101720558832089956483588925749053695206937273426494276315722855147727369686639887974906102528867267214631516286215875850144059230971984257077515664762137993253973633832800242569893037794893297767262667709587106087164706137564113633715704020872870241281433794216442032230697476217542308010895097729885350491852545489039412999205118668460498752565277830694573931632303174589498646910293174383663339643997804629757670878355657874145656201586792254802788769665995947445496659299246959847517096187582750918660511562827248332083177452870036604920123056202085719425920925578556850717938961600941831774559276504041055752982597583753782308793637011856161251618731218236103942369514664342167152245937717094159162753925729371600041621462519408745329668118928659759587895577989188317676380948279212077199064565673445256551442318384570046847360615928486388944908683086283146229418948917952410688730793067720084135381808497824284635540612045015930606543118369460690156424292854766878107858547639330864378965837413907888840419118795043994068716934208161888563648221072945645618937514747186209412884721517367752422597853147341193579585429772407689473263321951135728332128280524023028675802012564571514354023825515936684210522725231927980694375168143672380495862420837408925696834936799315169495914958467850420837045001974064533267344226639621944696180485210799766490290555342946824685219093533160618035162620625182384051552827929889080886487685729183421830962662867844830609938583143323895448448094068561128031179250667730504873974172153711211726437586377291027131864177733662116164254941194044828812716912944609282627387915659784999498080863541625253704100080564233152423505355073421876903256585366041803825705557589457060724938068160537746881336551786733093723388960481355096968952554599621488203836521882463718780524413619847521394925604777891763664311679588415939437299620707560376224585432195912878249732208973761540109135551813271280713274938233839748888404762881038057714775223659300411348423133614282554949484670534174958707492962269230750334641234188285600021471904963677187489632112030976008292334793429944286073337226904567104913750794623391266806088276557508776627993619567766458339573871183807286846857038710204619379282627154964385343312090486236408445734155162747407349445956249957112151457516710500079163487644922549997661434797604903744117793092403879803657476063701988330199661884866033085182229039970272052188305545554827989276728414865181495760755946537343717943658048793202591072557160972877590565963921324335420603182150451691435188853159630532455318478137269014149482784787151916450745880037865817993516657270422602879204639129307636228297039111280928949399985422627652046358690680520337582304475663972863255787147653051416842049891022225975163185604023415020212095545146657387618242200827640863201656478276957622488697271092820813778796871520509916701702914653554169718208150447807442828536617684538216068294317770679333644206327007365904229386028923092626593751990926514817689224827948277255085782917953763286413698907706672027194827146089143722909000976745687309079463033062428875985554862951560820835702477204055695574363467317650407071045032143464777842472348021773626200551922985147629312540987872687291594814940603367329826202435646157419044020374896753340490979502561421986954475643240122678854141016130810142604029258917007198468941773402930392943961775994132124589737904901331069375513254038826948100776389876135204910195545399260124109520067480303557568895787155998020178142271188643776581052656927732199872654234823720414084520413654957212457179884113792076918285023451872513496770419721723845603353161627668204903859231061027822524071577212100595581976903000858774906498251715911158995350043157509489756707323140243841918193953042716546225447625399062562929718234823296136779005579464924349123704334351822169867007001341678815471058175295036774019581295788346180753182677214516225716586256016142420624053755194306928183121993912448170738407641928826111735356063140950129028828197581090918243405565433236013789299461710179685912794250566565670568769850492935115037650412177339634267439680031362782687315528530191341646310075933668633250585614585116762049763889765317698170098908782639527438882300329987100763026068605088548320016407646730099870344034780891137032586283863304310143671613949871508871637921112913819221373714848651125770232271711376330331517316593144825445480057085515374112465023326489653075454533598915711092291471278781638366123400599715205463996870102906126717662546645767314876753232083893674817209412201668137308990444110356113181734644635617865590957890060348352371939493554844833013971642986641481699681040787483500983291659144260066404985192936725936945073678599294891624251963437925480397727388104682762687955509911514929281059639587112478647791093497071973543961089204811590716971198037512169712748128637931041202019061535171812204155280741377549493928604357597926596371313864662862592926088619031326851670684992686108145097493006347630229116300653036449681407230038856375892638233421020525520560637111484825624249496661004636332052698607123803794308177912885921770235885574460305739862106142518375133250809322785144925698435711166831441066301352615125436425495861945166463708003252803786527084245641537135000170136834642822081049139021639168387505886596363047605192169530841930780171071803320312110259974074926482459221371896292439450641794484089114153855908756537029387205321470414447889484397948212297551001729254942332983819555980386868322232536353641692069073585415254748213218094905901680560177158923781333046268785246072263108542325570185944405995880844936479770408238425136404227493537175569995422834237716004834430866968789282214165506810859071849577703404579938694723487263595041348866484839431772473476411527981789001073837632181908401354005344996792385318181010574966362760640153449786929914836155062817202357981918087199248442689210302165303686133106868884313686696313129446307921605585439412703964974896567991139056056834693390553326222435559636441255917995620219682098900990048913384567539613128924537544828269075770651774944185120648317820948263905048068434193082216277774003954965279608315928331957482027015319778982245943487512433105105767426451732914599972447316427864737448489865620940025038063147761791831646032996877598593882746805095759474249015473959377207388136588777509540984421293886616648098496616122422160337871573906734203588268905082302305149613928070967719821599232026342979537671826314039110963442737422851593193582191454039259984758602720339087263243062783423753058537528574655907440588948212765175101971517276209640087581218266630474443449328357311336283270479219694490125714337664181634067344218295678319555479709706820939657081218375990833202433689044076049561201004826193922132987625784645423306511883313357435523235968034373333529307138282642284451898817912121521595731256763635058920706085591764615306455036964111329058198590847737764369046307041534764742217806887343691018324194779505276414850028275988023299503604278070126632725356025326085200591313711497428919749934522748504791019258586176496520815148085002558894233958515484223623502510132829368584617671934013604394064418414686296644410504696426245679052570387731943406970528976783929422183231518805674770982589237530542213307783300873707796510191211369591875128558459878392033933600292702870991647065057654621253878787989116799298269896682219609424152806029286354910092591670939334053705083198516163431756422738849512456364373052958655160742157313058559784447593497730077484111304995144331951094746376206972502930112843643823181730729517871096156310951681194036700862184723620230600821156012619453881231939152467493663773749066588982881489302604929477318857232542296473664005247344476262031712476228399725144055095744822107923517873782208371754382289148513215490410895597341411651411468788249792829913312860898531997720438361556683300331488955165100140031063770045520821119300902022451375596312610694070679077155074647363860884127854760236323174480525574390444057111136920780682895141823000063990538075198743951980548100971160643837836966483109622445772864909687154593991279742305519134438389302143459031610766402641826486868282074615562936579456727493189683638850758563695311267778794668268408735936551278230241679598679527056003411830154167088379405412980815151103814411729386930406106039275377415775964831890841929000766623945875803187420042667926708975665247967259327501823299805087581346356068436377812489646286715976852585837973345990885119787778729252319354328488117497346906433778548369889377350077929055304306772267598509176716770555317192959391932205273494472168373503735878685468496214119173668515540541109840747280371354343528847669981497395940552556344895864824135942480098184575662268696768659247205549868332348179398433206930253353250091490629765649331008137576880186868139826584882698686967354875445981971891704885019536996207810011308159890317198584835207160708732521574685374710250301240622848974343767946466601671580449263783656841546789330297528185407071006789963426969125742545705492962024635344825751187371007692480482615860318091857081966328781380867473676710428775502092938640023588332887915653826375537478251984679777504548817897223328365872857914058353492485960193359383179547379232125790461567088696532309865298959102745636671766899791592773161521935078002580417337060287589884960609347955903102035619822747095321485564118085222991844178639463184106315949866314737291638183491821603541961479352439009979060435961548748650703045789374999764494935736846397026841603908638246225993360584919052771334393729985067725282806087647685860993114599150270715732196569766482731259922846847607434689817725744961418942953033700245366043185797596011655105045249594484528529399865896794393799023733801563163032311742217671307158629213868751625447093943452827648751526786591133654751831861669682991389575455012988374443945988677030187105608999042891309587735180422512823863185785370496299988911125626199789542737252502883576996091402114209699376642033099508161995301799111786631048977424673328171579227911047770449106737269774788402338132334592832867702986967600387723905809968950465951713610557557701368076489890661590669402403773980748508138364010346198079021022937646774566236668803070718266687765074051817410244576101169019126778688162051676491919215609273120027413775805904310997917285267691288705572483002643850677515119948930710521079433532725153915500808703660359696277818347002820591499116830542630904242588892383345023485717866479705957952604556802653507086459980994762812161556590406622313339279124704603010685881246457928248642719221155931407629234410407983046666915365489850739868996997474486235866403215620008476763131724726610574689863961706392488269008919956539020106408280899284092876052914303387570109112813867456031040049933534848282611810120449671398662903673454972134945533738699250898497536953835483544076217690963520013411515905753598610207277299811979861330693472123595447686975414395733405255400626227852555052300711631865301999467897101634241640796623723017091913818811489648367753629448344809431037481903384567720015273860228852849610692062551266852536885900357906849611314642347651267346188169070914631606356414124393858077106474926521553080388227266396796154536716310930069974447136406765978139679383270900452099092874638855389288819286085653206754804901925976982050433753716100708828675593656008760041700209126236449926863097926283887308224647972191475645531115803164746915527832028725629420479660138663807771920848783224653347472247584998414942934448252714500957964188552630330281503520544323923269607884266290149102449213749806514849113575296759342302368693015274600770494007520194970210087220153146076594740543620125542662498962573558320489971041982207572109371501041545560651654435380495989688661445521981842927416888744853158732654911886857898224553339959671401870797321571862842590661945150177889561411261914422214054580867789176096898456604623658975029728212898060981882049199238587148707784287347067718711060220694296368044884229532442519110688136642091827019093881896848304055208928814769518417976516812211535237727475231006967648885109044292597210952699635560624515218006689164811830960380022906229728239219144117240086956865636645805408149416906691700565689206606013256218581469677835462541145019660614079116568203722760008447051705564952121087845199562678667246727449454437258536507736710906938033456391564656997156253186015437701634405011616503059419941123702556155701832085857102994071688069380596908664801650199511569877229563128785481422237933673161699804901315899576965352427872034947313565879305647849348394951221069696017804665142596705318491856000759510134903217273974140351597902784726021976106259061462655891851544365504183462275847288929400898134294815875189743703394290900933346013637930235342304522487740574944219277619507761605419484108959851420534265102480928102635956192673128150052045338225442821561497791946768520373186031382241795724732820110691312949575363729357812787863608704479414610814948946981893114406687866709006020306882864147585719477417537202668097793891770007906721490405234468502072026894733503147530254175721207670248025620907151733545915106620293126802841592593532033368275964814103755839159443479398492240870968707298193408800419881293000697863347535506928893195194413204533114164598351270099042318549561337292979563283866405698550570535813699596498013854487325060424494031341712187416973629116212870733675303355140987947924475594968656618522153287753024038122365709283377134977428674867223187945960054171059366091252351529404792419475336606159305230315156425178983076963369688426354841836801321556608526024988437009245641754176558801223296979554801901334965344802852486715080452077754308784733205962855103715802023713393113607408375367282471784667332001393207740770169467838639532818719980314905180479303780531991940983957140560566819270028624922005189078831639483730421419781341171656298341239580611174964699711349795463461312603731628515283259666498501889601237822360798277499754281211232524706461434397901431958820094307863780783013586168673943507416654209595657041925143830034539766940892175911739936748325604701648891447621870796854079650833965471778638347609931832270301428989024714908641479277997249053294119518166084939605715894093325791531153551515665367509437444337749889778397042523638267212755767495132181505250668898361307539155545353275520829237630214501774900476079695527514621097912675196780323028300172389782570729522231737605990702301414491571638051583032364887601065913140888608288333356429729509225142898149849236008897038867408160057892382034171105667377783049269936583679243796163615525225965603243691092914981615559202154634465231291046080458800869566217633812724643498371281314231472700499321985377960722654584892694610192143713883381657806241373056881847146920466806337214537034902916528087986686335902563403171394608286109031883822874796359932325467323262790185529009025063503838811257952656798043184975581897052592442796274380423775815249031547675542976651496395498508487270903931395071380707555484107735300320008395103927643479738160325191876027349573964795676617463206984654373578257226017451845209279252698929751750603116583168374716711715055434884210694442516777420177449015429207292211169875907693272261953716191350570332131167893658414327797031324636966134096093902308073254518862049781682301325403378715312896745644400563755132348891876254138154976046864093421193513367341184771719785759810529856600078474403718662626529451118999295568015528340957982581077573176348644672813080522465416538176094103016720960598440973783535504377257611722967919225761912402528555978150724987415764209109283627172172568983708888347164223402884016992229058367383953207222217233499073978830036441885926131082273222964955813496824760373507877138410668736456111512727072084241966782064069298557137693655038091169435712972598822318662502089986278553518659006600967989302598109439263127263625712004371232971822273055370788202914655728575726614994351350969085864950079351316104539287916949283783044717549898507180838322713818379683715607701335986640186687130713709595576076205321939593741402493507269163627117279520705554312029541523335178223764240793012321225084159014964457695202939231026287530556812614917807659211643540176599054275210030482735918136570405652305588193140094936774299351336879020144338143926095899094200442287852092740412423020508808939009942606406237844318073138165741557387417503470841342204131145085153509848507075755621676565494312323267925735750598107497397844693103205052780109166880328882030452267960823159399279899669305589397473309433191057060695833190197444308112308010988726189790648912469335290130813476799570930377541781705188464460674316813324316818666052409626517438591328258895319640309311289051182957613519583517644378624548313175165733030918552318752211181622113242356802790072392160216928229119214064616289054771845389578809424298606004321367450059732856574138873953543096847815620133670682926045595652609548639443954405084394349902569802534674258302384806125688741244801499827673434012404038234464990359949759651440400846101943718061765522878275238337327539205843812699828537486006055057422766309425304947065978200931149554582103892068232028095499396346033852004739775909814250993062041090642213967206317527464741334859606875644534908932698294053912992911478658976730276294578074090095148708223664053930713427723614075122991708615905139032486991684248302832361078956128927710869451073894898825446777317984262848708453073147631497919865132282836955855303155828907187353467362210583698977813336331409670436200758405966160112015700814282211746302008817015782617553202978840398179528517220439919962944854904477579497096515394382736283033128555885127041751364588749017074826462599075673031178445871095698655501199603450999480488642297427518366793212424504445122843378977449413738042657041486718057330278230712505881512607518436496040589683156491941515735279657590928939361590455082760657705125015245163759549137112578778576089635940854960510259234648228122093499425261798546926978255689005710925539614306534887269147205023609134645729303025960078314715601792916250478964001933918865709102863670527339169261037309818811726578460824434129609845879365634831772962407982719721713597303994644954345840153772944345738473966072093620256553982026713204020535429693516564154111266350573151172233251813951057761119500538176270515722805648437719946404043908355242067297937544118135147846365480635451181205064703173775231544194809245612167336184571186733219303316311400096712074047121448553592237671704631159583122233432546980184540322920987234633044271617695817630633369111349551217694847878741555579413346708145149673488843264716198432437177875550358720573948700862078679457511639007848834830280771143513612699713237010925876412948802705856904145667044038888378383406840589747423420699088116037909467640507247813197384904400667170533685454587795288915616697067391838260641978826568786850819924255881465575407715030769702293143889727807894790689950410862720509698114791242087887720151991774270687223127885896426014455159030873089519257401903389689491388052247264603202001340773052799214304114883297930850721306760320213308123754955524935731397620175237951160123413368647451829694426003254901555724229302968034869354958228069480714344216213642011725867008907849682487675056717535808742318662207153510972355140803546206071576872601331862161130369335295703001538422741102669295947316789974360052512885133504660203005722946997928991490234464683834962101931674069058557101010555961885606378903625361284204657107112936953147837534240650039910702782102001861292534747797665020525328332508873530102649470143259098676491558749775676462106306119199682407134630764353173122502617831061314153313513926785017315585525831528391612612664969832233805161390601590871635361111024417272805161949429673234659117329299189411714590332205272110891583404169461340893348585230657023826373493395274984666415602055558086131641902844577535343792633089975291569169051510849745616508693848334846250108928711280165347194812895575668527005282616900639719716428914616542452795402825152440496311588622585129244414783661157360397110582522359228412160070834525751622288432506546081727725076207101154602930146425889094754838249244272358794308001989758823236648386480232496327646275538653542880542497910222831378392523355526401751065438966257064230134364577663684598339113952691406386799987568584131981636335017010108368521412818899907219581899469698208044289117267378390823559075870682303808009069635232313775905131609773050411779953795827320880994651152132244395980618006379453805568500440443824312784059591325772649939870338319940967741199873811022832760820620894097291209529247952164061175632906868913409409860880274021184766543535806914389245849079912368845854093087880521186548067790380098069709021929812334980746196144811954790339312721840343549910290781347129064486500420992763516068386850986266758996707138476318711692789275078033466824154913680331933449834431944566358936613195887175989086004424182158987730351214465197456433664679559509388350855440813188045379805623279188621273492003049217048974287654098449399262411628220548111291515172633282274048495164094379826609533397886085322783772312691386845077105921122584406446554819156715033358647054647494861896642599404286587045436482695185281714018495837258187151270854108732832852196100159088794673797616845278981832844611249046126725623678996169030485089358732876984627990102107383384758192286540499745162376355368563056049725632556559734661746444932144096520786256001224239614896612146685385394637211377652371997841934325632504646509750300161608481222228845689607331046757412996578074199674576856207605977981273193455088915498130026197073103710382835678944669707506824612785414681489327180843676420630982034902292382844474333609187964914590576886624572366459378598958484111386939204688395061402427246658109494629663028777021546235831809225006962281999658536016819161129297841020333563480980593440180791288905251388791775742936039686775337041388510971197787337399770411545898543713440553011825062653962319390570056456379020875270809743231637433336216350770538004314985683347311231899105705011719689795391419835386550547726994548344985048104783737500486748115857644971844507212279774458944438643717026603981446655962155072414395201923625109576318817568621886939076628185515509048491509814807313457856141042229622632524104532478318853247460543945483857718313097187478873695565276146360635450296426832284825230637114025479391280135537894916009586543905679406258157550107427915540607262434365205676599380267381719360120798761950615143129267871998528906471244396533772163642321697361733739865349532489301606200117141737682029716300002809094944842068937634174270203936105134809195864750748316541044379109303097034941253179081448146712185604302676855576626904002718909706732237600098117354937795079916172215716843084615352433667386125694007816259321832110430677026782018722270000493970963079082588970360248275635764565038303224519956526803986652911183934698709802087235081224971240649294788491979806242883047853177205024499943588688230589026074305245595280858290853755691640587366857741506413155354348477904116638883530824540065534498451019100686420957308624621487560576257793751454100921103632676819829278850172273886067161131248482976528149338413825410233974182198197577917134838185439292137202972556000976201565992190550219174861874865913238564307463583306891352876034522799896390323629010677655171401834051061257922770962540923850039498683647045925908511148854908631160422865402167383752999202367023779537411875413720255704924981194389047245548640430692705749660381487495838071517303636073402632427435915986547351763819613290973877049915892926192627954818509768742751311621377629093658437396765737193703086463918681155011258863224789254881267040494385983828797635759282261919794902861089818085041266972416916253362200989393521466375516568683820914658938519125209160842944442751724423257803762843896577216198779497145130586859032227760129480123438251409213373559529350925799893612198896704444816056517732208491261165978621857970132826520837860230643660216318957746706748985200750005057249347115051700553743968903201808818530641518172859000247048155169070299485127247735677170167848031226434763411584977952592864020847183310028170599583094967547796192916438008389558084938031216573126930458770608521575844158078565423624958894318388182804788763701881655508426879975079710350689242256277964415693334766063659584132734918083267892259143545017288029388396145412494159380034539253815109052662148538855401352242425117200127501110836010034521868663893465219691293999443824779054677899990321240870464863837521364858643029953286697833712593145184304486167444154825494178170479214865631353121368027219060372744860274773685846719212798542567085693983616467890374465697743280046340221883448856473807574874557364845154798725179364997740907364043339369650586527844566658751410324668770645678907233734809640329589085968646570214916865137239476465133750321790451154156065907776571535426433148239586123167559604150994910575527119607186433213823628613588255505747614290993514759337331052840331880560087221949479280056207994856089397372980039849895254460616796364773836032726090321847822764037996241496614831652394090716563302312356475650800711361138114126497395346953139970254385199503136673313301335630540881097919109749519018009235113006287961833473515583790622172337498020364529461658307173411713577257448284384528604203029566505887001516595906596297211300668588436208885118354640260272445995512860210030003272015876077492738408655099303373948724791372950903540730562302388496072651884842628517677622935735382110926079170538887075480143465766405199566798679692658331270756132544178683398664228770390753392815871666094635356240831265892433015547666763112898308144695554930585097582369528252124829001764787966043565856815973464969671092118432152920720903398049852925591476689885776068242304172429717909120615128517027197891401213287793255673424671006457367976690772507576770015913503149344901723288622540944692214099447606401361597252063914466066927426476819143509495349819239077119337703321734374739284387408114300541231056654412129446227163686788489754968401113411573912426031043215643858661203254792535279360691946495744418742787169554744257660782505619971951093759158040099843610281753035418684293749650049561191555227836876162703475751855092448304408446721825801338561539696720439654192603617862678456908404906345385053306795889210126659468263451043268310704581302342656443932144664622212859767811236370238578893106776321488512949373239797253518285274819056182512240620593060260528511297246362699937459855470582728410379093633609988899808849583640296413363569332674307383965014201478372611605987018677407373670108519393586348698534780792590618163374447858812161135942099206783489683374657779554865233444659002601002324805940917861902507657446082752618655880103203259663528249913332356841671232484211372667621131495329693924154981357437990493809921338165490156693996635642294844927444842961984132735600307186629139162360921838108236305837154185371327894845040861639041581679071635558474377353840965665907492700083601871547845696909592775135218747426586341076515129748898837037338742324346792770597305370920406851956672125284235038648209911812279217331148777168244453295335385591342575100999962902114562100627117173569693473443227436953423267618699015866737841161037582899599158987638314218651620484414119605532484193134837355457005200495493291853163660909153647897915969601197228150723626884913496702638619457282254539479874581170266662125491568643097946723804518122642240807230571440010363862828261517950356830971419287745673337887489844143980845435812265765190079795066352848033913416883269027523289721852143703134163967494728378466562910074900180361747303362938347013134460504909999185491120070630613478247923917748216043386712606371942338725174221298421629190409297499018363605981174271942076594157910473926167288122618643266173804429333291403140732945626767800594949911907153165214461677894354998629480140914547920757057753445499074172117513938032507499380612138099802973372378424353183897814107450050927525471670955431485535002615139218152983110924148161815918571246843874724786031605477323707402042028638472343792312511453401495487060009062968671522494656729897006424827322544843842549379231025819307684810822668899105224111730094651862552233635872693693553448126788913321909605154763161396361918825181936055922792049042855603315474862722847574412119921017453526089802785059598272405487636710746355958660263684131151159312677863263600219334376514425806125131948914213015633537757619117165439891022175360254257108425412820791013437268632808191636204289350139419783690241444280327367749138512969257018913013723111912518298259396873784564809074587027983131577498801615953767041610781027803744627924897800094271929578904745132096009282754995346305264538739820720070782075249332073099179658640031683028158104147374406252674328663043426042368552969109744054355854404486459108101658375942023291731916359685401021324083094953145439107850183509036056919334951999306474358474060633443428157327817075507575695856321152782484388798485280968377723192568036314771828085608958930371099401128719439820840285125196428380419769326148213445226388009508710922044719340782551859733058494226248522419447021485631977460360284077344618707270054679113652840186802049485828068234883249845173457386284527369022370519224339436285252207350019235021294214263732645342489527853838328608834326122288595697499355478495454974559108232131375762562860096930556583197768454605969488492580808410636980910816445352914225141820573055790198322729804511473173299149621911676904594840553375063963859068267213996683963827672718041675025848035560954925175025149683923853974541050553995797334485326858665554468127725003727740499308811270121460368319723647904102327020103999476804321173246111663883695292052197268072796025069903961535287089898280977938725027286820600896601042595242400538562391895714046161319763111943690685289548674083046053192204680127360387388251679112711703457443485145681224019532075239541532239881013503344647075688730215001362038206502625417433625209373762985158767613371925338630810601007256919452156524737346016427125067900793670231177694857983212085683130053574071969023202493856784558935551001288145581431957879142089924378063218620508251208148944850979340676675470931525303610876837770607674153957012021091110192294189172276780712513733737090621893619909121431064606223323020167439753932433327464823956871640561776794040801769549574359542649151222972190505614578340390190307010865154415705051824656638513792600696169909733254324170461851337672035207514109280899576717272054583623219128763559704030179498111842257179573520769012607072670573404680997337954937227145494983950990689787160063281562268752768290330354314483201251549978319889272156405264378417915869364710967171075349895416236573964651916201103281587999874741081071864536558909837565598773045571757865319392803319907332064097512856973971788106936895622554934112262684286030529254003554500812227401161642705968208185397161649650974585554947273467878902383696855862461210843709054258042020510305423009291929507386979403812561897424684196805685160784262575925366090116647536744750227554402355353915260356187902018652363879251802488547167187735514515007075097697734017792994300144747365061056423346146181129052108915442844566376159776645472165118209721169112441254355135066886180456653458971497039966598049793498185450059272165033469783822980572645747313894629033352768136752493942418507838756232465418251177789945358323296888127517045529639464326159223189635828665975624536558247482820336928540608916594305803710043451648927758732365269235923484775132177851580277356908476183126307813685538980218801084088261063263169561730657480781153722207587172689999643084192324543365674416571603278931749140811311725099181458050916391292498811187731427161050639875268629335321057445435986717423248799562950358920553173917230949934871504238352998671953700117910847934639865534439170952204254407396675779302717991672736342272823868196250843995379103910208809407673163908483563015040837532485812310660051122686241507241294922996719052282849686180014802729550726826484593775108992982373449002244524367358643691924321214641473484087341812138097189884490027907567751980405859009929384356037781534318970087882724242487469350168038937587018797555825935232519453566397562384257130143158860864343085026134161011960861486328845731384017721654961288009203355976064005780493970261333921217038771791713522609024402253769466565950171280136314332958725074116892148758237597132057733771876433111759989435258715668915638946576107737017721337040323662434037519755718801943078948350869934049058316102143989135247636031822763533423090802485215147742592936653648076421857969700176087805507023421110038219088481903747667933770155607101515221972182778400065626975408264436476306413046135577305394772675279777336820456519604710894783515537814595627013743090217366901214902867156994497447137064303967000441614584230943572137926009168937770064455385899318721507412802324078000421664813160987800371333491526449144889473022800915043791058716379543368226150409744740530632211385377804776297606972533514576038667680053240433895182794394157300038869036040980916623872818594897995225381235130748457549714469025522148639113891976105793888959776175091244485914576814762857374725903490096766251152715624047071719734073289634075551920795476115452855389009154543559066397195024716160842348624188650691624065275557952079294026722743223346636529964663021309862878080993733368690339418224169764101199750284595454148261193267415285923448160059007892626371403137621821749331497477981270097839400329711937314529040820651826693164702754227254537854913983120151139724673406027289564068295800019366110991322169005949057778326487354652372271498626349810484186747472625046243478694875690275046684381031417508452250250527828647899973112894145949364460484221385363896640487736249249668044642564566188896085003432617468343963695499403528390219406491102655817894653562839446141141756232741376529077495479450126669727607215073045589026685811976798273435626037958399365426481114163592288871723476617782061402020290236965248484619639739835021692296316210072205217843646286683887444566632671494956220777482436352359013081567859025299089785416501140993318090839434534565513575195895410659052732088637460574351779128855779918679101479860868074167867538202216665451251736018916519832313163747023844983888181339544729132043683552391900749012373119948346375547649423869762810331438909619897112174116051609679034232441782961842611213910145790604652571945808800741423670814981214751426183425321605228151039254088294079974248734952720320137288819375736480184053768214397029492746260461792695500577821735076705692726574062955978227442129080814084899869935431237222686857083688453824579518275491470973038404013002262361602325302725156443958382457306743933289357270970758513359257801790120687248457097653466576931345783842707084159338040927515050870315491641056605075266900501464096321760448757794368077654361880622349196322441508910117961930163442165349420351300820742869534248692399535126564228344524486841933840694676098656635062433775744666501868072181653966609091035297955094994207296242163489923508700139128033719716150743558127705768641628424154829228788854267796411811085762101467969869719724119097387727069040356406723347366020681416905147512843031045176246269045923640748101751650801157105641984709668143444853618767007474791115440618139556674804455576608489446115988796439224437273962639795124308301685528226138016356395434807576812233669120508166332361588456315688436791448624499657431159823525605871861650629269298242561475286610070313012722609436848761340913794622008994633526257743172223909224276014198713907017573055339265005789763686784692655948429028701960612739090641734250628163596502467947700696571446839348108691169888410640691692721430897186724135121499026073777840554806038738374717228380909835852712190712736216516233445197844958513089923828598453788449274163252081981298032287733747123101353890695458700328395406182859629953240844271657599046180378383296470224006135647223760683568327936622784602610334269987184503544292628869957898933802188991298722329446325378942363366809120201209761576534011128096757371272403378748824479195503519818651968582311435701919816096664223713269203160532478174758089693860820716763612243827443121415019927170325518109430334268045202689237104290843395248817065390449447186663994735081785162644820826249950860494116154129490156641295005705784812193676230096972426604163610898450107181813655350776775673154144882387211254810769390222432102374439888000171275381791023143224520743438693475665803991544571204884844872095975100053674492129996217963595604508963327330716804123141426209215981656050480440653098353643974044220779246078022840177592483481648746346844392362472911682855116431225892417521599734189591621504602784217207573595057436992896161307463376463131502077024933975662437035419967516128400464984195153257698096350529832452878468401166683241834449640075864277895351609513955230994011361478430729189036969081475503828081250849817160428953476477582114963488337750479267184420955075705579860170861262049530905201363948736986990746635316817337305041920673374531105407360150708115537246403089577406253910621138010357150830852712468141946440570726040033159353911948480861774220308079810471122680214377514306964569262428388251839615728273504293301540066043579189969139477056516527277045871000055327463022706563209336083244998577077112139546581657234467781834494440178885139147095533068008009859878175793400612415463632516912430632589845653293121463187719663204221442425267074509183138600569569008674657868044544487571473589479552291487940020486838885409127501587800507534620947131629872960359199525281548085776319545657314660885801772575743486463864246124217251588171215682550200010190222758159351275167539835648054393614703171675365093647185809292382162650485759077808618361454296214924539836596795310444673098382625206541124837359664027146535883240331226471774445399191118363814667603750035313936802420145081704378223894369530584232466907363994975569700801145740047302480998379555593658188818247934452324207047425247233893985120310922528932970357010376192114060106767950846802777625121941982451706869343392380154927950426247076298500350354018626167039071788900004822242445409612066832118155882700919790626423724079514531903996774097769216045940447517004791859251282143835829857450071777279051638890421138163126172592729986821741773490662157048784754617173594579774060786312441273471362475463692034125975461592179269434080405442697005919964489403525742335945773753713669178009616878555838979472943244700138381449955733345060647622308369831595887666577265672505247617587225472101446523911638764706007457272944946488611552362036750481195451090327472355772801834966124447740527621038987776843960839625947792849173506781073781766839528775784061220052081749850548980604980390610740434711026655891858710256157189136373063887243286494736383709115572791733967935059835518373322933790212851236671181146134441792047392365741573888089853959330625512909965738998899705754731554785283758944334787522717010801794207823794939322656678261033152296851991912483417019835832121119559340152919634176830429656271914405834143496195988818870145896636258715598011901138274802875438065904433444482264886661371056379569243492760306684397166535454934991857592456598403129758201881380123023710208703108144634692106009923286074982820713239638282029246496207480078086816400470553743425016709113218500831425932169487712343767601632299880314134422685811136676962785686319547702915300675734375808047087495608196279837177565987990550319916539758627986573346791179186444088823671985428894968427061020028637926859833784550387856620726242064320215581074457634911981216966320862469511655118200266217462375810634696299656682091572693304322086281708495764525468455019024789247805790040352340148016246946299075886311131578557033295925706941158110886135521671115522210804024045463476454844952123720584665274161838982561387325429759760575976735837627953865498885828460950849252364436144328569833047231605059705921502795727171160880259165570141117014876298225345948880742851886047262902649827212011410115911327448858045020198987521582874646715793270251293035196912444699498843110755364441861865880453603066015799361139213685190679524792106697165174840095645652933754711461740458279624198085240676860745438871622456627657179917237601419650042938569180910121040850399327523729115073808800147013760893502979008648221216925711277455568415238640376862553816673092475742754105930343620309645548739611099426474817952389282116787539320410495134954786578997722759733836696067005373296265735775657430129423133884354446724145042434178141774011630361616327615564257378381045356316577527710442600620375042707962355362189281945005454097655727862073295484448935073067234583513466045776648404372713896120249272248120109207563738046741217392410451730312981929210229230894479336855911494578582653449004486275245994159288757099030650018659484375387829473517061846745690974907195714815228787672364250560693643782560928718649448256999619757112639360430469525053253322488417868061757617584430013855468894171076144405078714015849600754476766949730898947482065399436843010043781307910412651429350582093225032320023016161712323531723427768150880169622473158290025428154343908882236291602560281075248575840722694855249400738045217280565180263646438726499519402034753659294126214929393378382216842643054329341859967103442990389933598085064729239709656834354519997417006315928379636704051369192711160708756814979984648414389771234344920595368191562131543144840979353670166719740153514011354745891609258046154425588243714821956062647750063032686928978741585756927033634441101077012447906424240942456708746178488967828214876349522951880566661378946259769204092922531464193046503456209945982645006712208118987384851530034425880771174934847391510258143771521266695332974234375865711878209281385269553153976062751503713234179614476017209815540342280031728403311870692784786412918459469627273549443507348447327099972071005839747612198823759588134088725515997349421242014511740653597205108970199927019136832168641697762508981878466273319527870712490383710830576451730996604108034091985142359426950285187760353470656237552115806790246109424975993356739190654231428585344678168417520668258772052236392756905423039070140168937082273351751725783946286599950257862769882418764239889136996001507371975714273432274005840510209286712140707727437488015361811640730037671029480278065234087646604743286979147818648863592016527107074693462973104383610161356257553804842456316602404635731642217574319168712822774606457994041292067350377729331993011202211628728792994652127472462336781828967149435689245189056502295271168870160771563450197370143714456107755055450439995796055994656875523962424182409038543699228545303320681123860264325583954128682542354146728895902069223691058728519044896770197930618756526378859598322258562700488404937352929916645922616693596364531187212400486841721658219690244644672850449489974469198352018427676664152905536059366802359094773850175284148449718296946469489306145057544062036248878710639519353024525361226489153063225606182289603354567738024050012616369109853748491398129997563842320389182468506618262254066331132293537143906700358901431890719334177437679459539308392934474051598738175931641365011934847173669307023266019287112540070876148299728828945537459520067028878160953128770035293223011178148707660206744672054406063127605316878246933330046681578603538161725943524909639280228448068040012601845566094268254267410452754787030994130103352385059839444169462237703323418424397291801804984187052766412783218848854972910856680342823612538415874725205878051728552611136761723752651534972968196742144400791681677517858805736234880232685698658710502732899682712388762877089285433038411052870355246126563123860054839622911226333085028496224732010325870419004965395141830852696481561429561221892061739338293951452387297603280465535244796370386620745260942532649032754484176336941162459302182860243480894778135949234028760141317876538325200789810724100564616528845766968419097073693682395868422014443174755077140123776004675775665441170488366935080351201574428292865171875875640111211919725717225362402744992884445145916709673361938816666130657934023754708797156737421229626564455999207772672666214759442577959518998133086388982121328804567071324204841180502586025609618160205045916440894179593876936123803879023091603832550785564100568216808681468957629026979470481515378695933992366508475184325401403463030503919311260598328757160523318752817109494226077562759531533645802193012114263422612892736120226234393353383406555699044688155169833747290040326982199196091607068329217552754181645159486824299235523754138547968507073212303655701951226379327534239225695696844068334010610002248111838661801573080350117355358171565652908609288061688673635721655376193943094335045961608125282975260955134281557893798775412962090723466401411067328693430936194239837414109962419725638907126213146832382719413892778281835383462819654766135352232431455410805412391792509572033938584814414472450331763271781771365810808691815552956344347077499415946084901552959543514668733148758304571941611923589584899957034537519069716157989082233743432240402816353748527730875090518684550057039385000144051310338900220722836758185016601458708470323160084956886305715081177372817996854289814421020852026126892320539053020311256256167346927760867403107411628679538801314322105186106932375110951900722227751370661592652629495861478142691454665117379708510119340868792223945780913340349513767040911302551529771132786795097391824565516381057330371437518453545516335615922393836719988626192794452810993354431759524341638597528842664445940578836883382682719414396910274346951892114092554816570573453995566140408874230664829012764046055450794518946113959245422152295115989239192584136415170448923529253407413628640141225496293905965689352940889181372566925809395402115525268309208056604623058391006271595151853172002813954855898244247250005780755942290264647152814653340478313055761838914854845835557848545394494919765110949406144204188806700361680940211306408642627802878181900911452668125931390957536308428720619145015211178124047464983543974351680817916675796615824689724624833640609771311586223812314152457524759403689921556052419607581195988382864922102012098023701186840358222748479722917161407033411795587674971569708271535701778319038246816765170257251819755686002134493784235590187524225561651738494098193630091116253507682672795801331776134974694240783188167772241343145177415686488852226285744947049523645752647481480658208037180608421405504925391006495095689517238912133749403421915619225425425051246248591219596100063988079179573916531814527148709634922186957874349015142292391136835805581867657100575394167405989791296009977054159842040908067713320762920401738961666025150936749161763866082530773316414527593011021339995617704671722626534855770497772673946778608615004685127897830186593283444196264642933969758581739225748515689189945791000436663796474724921891715574694682148086029542939237100247242448782481182172234166427635393352666352460271547005566293346443097664143749194911792792516645134467505063550518336205490047710364013510412778213376491799484525883289915652560566380370163343304912375560750320903150012206892479007641683816815061097996664225193678869948438741074575604969856151897929084238373187846323903546155950448448275242208493787564599263839285726561071004788937877314837272886545029241765853057806598789270000223401447511283036517090280001377819397796502708844945030721231365667484417061874527084388123589143690353581768387563239494071082772375861227063021446832464526154302368931266546800035514425120997506000130258925724054502278936939152116663444009894702115292285777459155375459250818896981992202785884863803605821725992747521378354505509272675567559339832030941100175832818332104097845885287346867200667264611638457220084901222691275273366297494728424623346411064158690539665426949041015515988614047050598942579475299784357553043984940082954184583398643404673777378925173322123068958305707128508245611839014751452580153952596454564387765584219577950500498496150644511642277588730032973235762176238400374215581418463778930415922891527357800432387568179921175926890409973601487351283557253231628902003481252231674877011843169873088023939939690257606649355134151070218402111440533186503167297161130903648190182235791732987319981203272551887498463166999848732933848768541829315837921652594373349597306799058456121066593046350449939900872679719837258437009703226564033815546147341799779219305433757808432067100231127534999877852529277461550443761694784863534537440847382389297276355800421793323558953946310717835631521284108482681542523569570301323459411932217078511235831648190170522503844752400486946083196295832928777259500863129577387092946043615760227883595095303932176035650027410806282019920145559635744051413869595604084840941684307353233254984954187321766663119874117952095420062006830876650423791441275228250405569429399873357417456249054579248016458509971292035661178867750842747901656702372139914624194042136529332535327972550873148520039708179914912191021995184845157261808394311784108664210107247347782898797116481296533873285423647578956959635529429628723779526458794679535983904683698365431580546015775030036187195745030899580846881527686036160738338341976762038175933748978524593498933877378823071630045903685348079085528812398573157997074500400064184254252680911830650792901108080451219368660244648579757917101809152643012313083568712833123479614226282722008049846125608510461310344728461630746235995798878128138034236249265491441676270639184606932609190632106379249019109142207499648632700404093791856050817988148300050983133803157330626260457831023259339138531525875371749759170458667191472992177339391404834475359177340013690187667499141290470583234222165380375724084449310225504070333279341674236886405105087588636105276753871408708110454332455039975695279577457865604037055195628839274160294315753365678152322213645015963171823452087977611269176983908768623122012789341596520974586892955236881403168573034339645233371939547143098156405843488445468870718051506506896758310916878230973603120006264990570616564648663053434462503841453087057182355084809833017679973974054248898862806998740620346391807259359898639275349545649633284011332631129641448719514015818269102588147460991962189356552376957085765616992671776628785162114366180549304208426295690587693877697875641605312416016324072663856503475405627908432982306470958516061832387402094304514306445559006335828695645003122821013744378411587324987628307799983632148914862392195157731335871399374102293471533380036157358301330888983798616511899459566030691426851886748551940731416125935854066749840781587512591208776601936781550468194684731268583894478263742710335187005015059527799755240685845847677589021754034676899320338946664446901398888631866629444875588660143228532751106814563357911377628025433551727991796834002201558604332105292032552899037113397691225554761255723486129467166936928748461389515630372661186223066764237024663098392213259162654929012342900382929733253361944106103256633100674683562630700702295451095805346027281723953686950496705618107113249809748990097232671852050626676466027169238942785873554922811870770039268584625668853519207168379537874983337189122316765311752399081816103973419020727137134620854882240614624800058247283625114918792839682918651027041448870295859172924271909016108887363145447511813964686645784437652954095661248524453510685417846663275491452872844875819004355808919083495896833291663976186737193362006911618945106351236001823368502296106834244168062901846161038932058996516968950505903069253946792449839378980938266587332299443864698358026010599038747305725034118849723440925504183923516771316331688957570776071039364608484063593213774346245604648378946171934643593806830624069085152745842997202498252757558082368278146154025752170667973383690818792122711991061762158819209451742153226303601893741796848573888590679853421157246216198741300660227410987845656878160553022107980766809488298195107575331550097832556202803511765656216178030386364429938914425417456755874414224823716313363775879776333712865186830108354244791124960349142168411495668383962267393574556412186752274319174146565706293458472098475616993564596162098693112681768800070764894904721997912127772581726321033792847018092023777970603998199859570654550725664719014632971582914968524126037328981420416211792003124120705441091289810454935505660937075921194062180427463714642808817510163394406160438709664075886638973755557355144151100892341841178721766319419216589459480410477013114431379580482910416754144366306824798615348714650344578269244957378741282720608139347631515756225408744245447070823573189689338650551487374995733697780273727929543574899660579650275058408917159485729879094296700002946323540290787827492453265405809784415061261060927875019507283921425532455518423876319106371773804232808545782301500186997266408038355929743360031683786401225776735072250779193695377353856225118205207721834423789399711493395500672003924826195268648683484161544814405354481309541219261492995720221900354960324101759566282853568352233715822225501235091459404359957277568658953522037491862556928576758685518525304645713707639635203219600781919208872453510677584782836207344553648851393894808817869397469278696214931252900807861846342316429644581940225140575934124588325103123823964675749241135505318476048814061183584613280770013819411268928000942606370016019673691579752881161288038657546681901190774446813009776727816742451478457208872211875962333677868698616558672030622912634482316255949049291976536191293355571417242161699741587389947311050491146674209254670305626307859534045835781429606143434471520866905742132054799487573293556263053875800844119275804930128013280057384811054781518307364641024699986028908760704817102512555036115238998420914323966059632428033667697003534455481548620673436788399539055778651158531900118340333315292172613693378403416009933041992382276160158072123198866702017012859444982738965709123899828211227931356155216476914686378726858580579559136045740749701559849939766156176950887226905597536781309830976534319625948959936862436956665912076950421062260600546005515826822392389950976333064518696476944401984519643254876344848691055748942407275505073677140867621884050743447348480264764739506291072945093890237588133786833448951719563620667383104797517708180649483143670038141009312895841588271929405109088660524794087649636039355556984306996821295931495961044838676517689228321948421344008051789873264710516794263100017829193218005386493508663891493447055547130030632143438468918275979018248562810371096869012494200432139668317122775887373835924837701185295728512445873658030285252526895152554747035479880921818032640058229136300626666073443355691439975033549920328464329310817079137950071581685002855036691310647307831881347087665578000208337252137874502820506222208493419555350398058421569549543016503183866159406023302451036232974407723999924197884687991938240439108245776932891706301009788459298663588403150612755922581197900209099193019806562666428415626645659817660668297418886047361170191137914665785758246098995145776853570298394087881895933019062362710394990971810276270806323348799772137936195763336033840974175564674136082113479182570480088721063722022117942164189781911790858232008632342744641954807552654172881728185730095804528627333720036258007585141100199646180352978753844292492466115531876128624191854187028356196249598996523754029767976214164121877116865955432401955647254117844175566751308577148994412906744944974349620015894548919538972405037396186573271628722999001906414296188549902420761803652772024182637819278680192631011438326991396987951887161540941226069009528943934505368297659355168987610527727521278154709084246475692144333139180318024356258591686292526387837573122500300024537665840297399287598663453661126846645141955749352759381347527280720190627333355455814554274714736598509951113549181070012182940760636662835275084239612368236872304264380264624174982921791208858731174863584746041074261873717937514936611420371569027713998027553851223690554854981043782674346107778810974839944271399285419668318982321889436973328599984214446587035888833728500342419372350884839219052576269303662624182779835239731653659892580041905375023849626201709638754053247057768459695444270344663745952181334523231959423268295743368335405996371077719414242706072303910297099052899482567425172122065271724993882805256359969305124574623624007264168826039886187646827113332369385231132487693871444448992285461425293581401171007885948278428740732190768405396457665859138012399577175514434865026100392211801800779329970121635815800887882012792392264706205784138012671031585872846661168769414947480209151914947608329194601039977447370900574459401130225366130324113574033821362890374025869380849976042593892641738728256236814811551446319497224801198461943469625175322288804430029361338224280662536983608367864820513236871246414934412041046537209351646495515429333824089388219364800714080971109225592206726661530424506275801501564714936158651738421873377246397332824444965592278347495363247326401813093238050503718407867242577726127751815409504398372429326984636052343947541625893237990852486579929292635417116926936151795860036965244915905726261626690589398937923672896789058922538806793690757446546167726052390264539835747737995578108444566813081484525107370978246388943307273989017613441890671414460723744923046836802966852042949485021607919285990256083822357585811863470816581268381282001679797484068237943330106583766733934998913136832631685190313025968413956002441992313522972258879816953687288873909491863388295216588755497907925288911303418077329983263174281683407824980037492695860167614578868284873238167033355192638219129554030252836170490053403751597770767247465137725643142670671444908644089224013098173544509755204622363535707254320618318363267957613373543871863889019697364560094815288106207541745779222046680073811000797788615704306183323905511503548819656243353917238093098898814739215820093275830582932483165435954151461564462031516696351438031199213141557042110287125815927427143592640434223284305104264356147808938747590187375287850928974989955301069160613535045109178871163502308536093491218285211869341736885516458976569881963533810789170395927657318829441838082653986330726232902306222273012473458033698250758204467372839005666406651408205593975668185775751448439810168505143804923404157560680836618746268450618168640463510252038736868069423267188572101825975315363539329439180682346907051031814066969704119725947413273601418925176767196938110958374652047309439067450577719736506484707726381740329428221322673411264071693560403467919339845556547325741938928580576518485454769304089770186826225487987999016235740460636925984738811577305320585689308605170400669808141850713081479691760111771246343140292301045572598780902901330749272088515384366918905269209082399875458107685623329224232805642828745791220994190984354148307155033245396372667413337684763157039198819704622583399443747849916975345932128948827647937593898736476551436286103175082356498001026346218067138688371689304890430304060840989228355425954071070219603331960303992165750370159447407625297190241345242658180007437711381851283769038782107090444537671539413635203450849152851488566356567566845514038640596819720931313847740010522740041107426075126734669620269591098075932111543583851728907604842166433488451210533487164823570767206466733081942745461346469321651386171100945372761749057252033707449049368158005112520206636087892969181964628508261370366037922647578624909414055446501944782627029686284591455809920140407234356661601245989306697737811661187707998829198730836059187039177858655557853714107123743955544841016710406269809114781892704531532276496581081822082537936322294792853443316889196159943039729168365443481717281878174056771064060303089850943510599767771868996258891572551128008333933377177969992698884533419514183423398641436883315130536282472963254519957770997928225202962652799144063592268038744001269330455156226115541493964903252400156874886847234088253176356487073059828490584749308122481638985948564880349384765497572389481248590321102583730868465920439806659499863401840297537857676353874249099402530479992003545809971667186734241259943152522415939520214514192365447895167575222736713525460321281743476183065813213239955986441458476698099921529119608759441017886826216136566027168628586820893122713530514647255996917122094260001273416873742149185912615645459902881484639573278456396706140843016526917437009025167740915401630169582067936280560586837151111744353807511394482252086792045052588527456904855588717997442605947266952184156142236459581814246751693507922748167965363584016597408991517300777537905673620097489105502880185597867341622885948062827127335138721343039807959311892587322789801352646551298365562032994732787403578144120830416705163198998358579074979296580945888351094412863238187114332711891502648140980788753550156203825743063260615700468052353623651264474180859468091806487813038316829588282012795158025737670672503054094266521824827026178763503800821761015758076562499074252483236911398653628482255276690292539724606465719126256271044433366031852675826311741342914381821047634284586221900301881155286386729257840223657425409228599583691564011116345293474661641499265992213052570444619934919390989504398411140962148102547130643539419932552891316427821758952118213292710978695984452972404041706851068890995651555774322815081280044387372012603915763573213332603073348189316522622617121301997800496103290274032311590144331352715645575112227018096845561764144189101258075054219059191380012049454554829153254521213382484312301796063809759132475725303956723858539988396953876915570978496827989056309262470780331213656256343025578508089275833541811653268908137374355351102566158492552723072597166224170350623904461980977193019506542339498404775141595887492848410392656755109536858209307437890654419190590465728701831644347167326721981339650020527411151194776796430045934114087502588190160825535929036143156186010009886723768694471115826161036418678768193402952982137276428251843897774254605761986925602894966856904483665224814570226055119370258901565985622633408013675013443630473257153528084750519261282171383233893695399249259151069076119128027378171441383101694171910948278446732205795972794342131627691905758718367012627180030786417330569687736649680193687623946566572430531613556833752012103850268531664225466826241592221782666850871038346625753445438599949421799434762900833757582981220755484734684400201424387666313696280198675320445670357255619747558387256043440745239217021140012791354240103488785233759061685092907258951925032958646734635392591846592594101286548615610578419870981288315942500605911592489378469588518976167328377841889072373664496790638489808751630272007235548035318110465329076844146783034079556827303305024051725988408443119208693761815036274302340688935244685523287459767010668030886245833541525877966854227542012721987523237065809656354222618497958757587024600995928604481320472458021045545757347550589100290357070224245526332670191038328585994736736374171329822989624518626341671486419828774534421610655360194124022720694763500380744061113418446896342172441350485323292644054129582015296157880040389280025681602882468428579250373726547918108659285692083301052231569121732545841036802150368533940791465967533310445499181300078182142830607825642172311976774992929423890719571002248456515619279413300403752022259961166194837143692520145121329322015080769980459858358363875822573407353298696250071271036481119704329911539132683608286299070919429309138303245327437446702928288486888534652742996623778231145193628318555159307425217489389662452673291288155299789619217788714645338346240438430556088455898168667402981421210417613666854657956760073756729225407449238843318667879695086732308172561651797511560521398580440725574364533213126891996179117391283186629150930051906356514613598287755128076324844009427349357159589661788581431318642506698492244407385205766600903669890976903225691196113050610336830389969597317072043672475373043057074321445135460015503322555009017348213421831829173292284250936238563197087810995662106830541108043199474351559028191601760572072071103879945402162619620139435684885045757445584622316619367711771587319855682065733856809267086228791920214672224880542186232198182663515648667220567159143406369232862019203492018126306173393240630863056901514632420945857876872966104066043251789137069834528632639622051668809426606601901178954914993371523838971901338806279490498143715878406946994098066697829651614119805805568458681716931726682988390885980600832859350557462232609659609839996691910395295755111230567049922151392253236131984267182530008311381012664158400521853174530004898787375491253550116387996226820985565107117512410993857344749259613816590953792677753567752867778208923856505642484557739942906771019357116423450652371305213459009688532029789594403097787072015481505581920134282027917392321535651885514572217909254525425411949426842401378423791892484870524017879726091884850495777585337425196558828956382346077445944131125948858943730409755121221879929571477736513282240856076156158089375817392613683716984749130453451854501875390189535325991087409715575837180946893723692400870430849282812273093145459416330668640658926636362153839177854566477481448694950947765011861257208185396501601634515156326235633889139744443590667447858513243534804408631189337963846090346278768450107025153843709136484271821638270638156668093846169656075835444865157178263702752588235349244834847026806518399947461869465506048415149773905237425966567549036058002576315942354730418625346257003819315261992254101148890378654734845731876651379724038706920465682991692477076198462841109484356342086984310020735983477719889877472783302550217632673454634280925079627888546666885742763743343998079437921605397396035883945652130872921299410018628861412711197252370203481856843130673448598455882354455743954815781272057402171558547083727400055522610048847807470282819328864942768893854839162168394314312577270750113552312446386483782262719552482055111501500424769266603476622240080002243106942088777895385985205305262161933544143715729797425947131724405242706021981832752394059409938244000117366801195581714715865827717696337790106029281671666126909873922754104412224365450806326380819159855884344224968785714043768121828421670266425305240641343630800426788358323293752536327421592821035248870393442303641622836223033423536410738950067912716003833362713973865343155039044869102821438136244697938559800974288423932962271941223134581296211091638374968086207254548254494870808694268115852163300092443816033889347669984089049804627703768699083578300322324639990948114166008089547480203284092555231128698723659207875786246234710758879602239553212773018083637685526794424874225137606630498477653886045530761063378391352031261562550934370602955292000703237734571150174944076570514786139698599870590514077298962882533665658476504787022598229263560659661216728270755829700207629837139688885795201066525907419336701985851188337242841340935499724886668638399133148078328809187739056476442083362887140012521103003673680568070737882049477383346530942641593891449730620117061356064962129521481101390278555163189105828712180422518838094032663437280886149260460050019056763320070037404157774494125653659170933777969912236772347377734879951684816033492299461654985308185183662341332967235279824923629639257652608820838815838075463462762192281780506127215677644434965071543586529008497405031990485863621631402527546908225852577671960383165073657066466211574717145220250659654796012166814626747301008456098296125436928288980106851631237775028907844288901165076269228233185707080381178779369107120539216381353801334057828854765394707038105599596725302386762163325932731048776427757763972991662914876772631818823944928404521132823554865361521304024194777218305772768699376082395389816178570975385319203607007399181856132172475198512209778858615528614200220361719968481906229440211312844041046458394719634026394068444322424771381999713020717596535332153743027574235838563736761042130271429948363622163367290131246682140938257868263882512253141973198293212137538022214284507536693025063876222857291965201191708130033947416312182870178413430254595753994228174510435454305888867267041820199617774288626262707399025146275474941522781104104812817437422275634773782670991226408956893183599946684815731654649819999793993629874540549581850446866716736100356245505033947028279498743674624647602133325780380655185500614440289515039953068226550702410781627787944903231217383451882403131511126833719710661886962285461186245139910560867637695610303593788817534460586247339865156856152334962954424023630244896995408699332633754751102167625013567646803381592915018515056803907672269589404484535497202615469180585088599159607176480724181466856696554823539132288057944956001961652061304450216273581558561312506604040873938883607778496913418679484929535315901670941508028921784150683138234176388934055943169407867829452518144080331847090243416853139763719757614594063576292467563156783289110321549229130073287782791759240577286262454628384762386328916784347463831091084277457797520505830304549835957190078598108463286178566506582076040055231105888860969400124210290002698039268946746363166799028993266022361552797750765893406179387253936292498640027501760188397673218848899853541221427370779186536312304612041329761240645454959250945767680298684605474275111694762623891941061810852907737182280754623611063044127291946772089389216200989312724571119509984245730333406861833757325110799966100791935361006721989176039526172741896748280829589508861406112998901221757826155706446515743586426965218187096819757476296518181949343394727503567809239232423895390630012009323357364154850453285096779995554883133241390628426287222285284813852481529401782773646964004680299674237230711139917847256874371725980239743761440305784259037804972225764244492841948443734660188456236242044213718436187814080623850350921366714401831695551988491506541954517011777692839321559732214517871213651066447712046973676697372816295538668439376799054454327926065339773014753408139896281833442443679300466098041187272061683918103518016262703200405490341130039233700411700790141026200964159504387406629647356801197053722914645662595356731786076802595058778249816567081639904366075574675412750153076508029383866261200834762690858147256989828762498044229624850051217757268677474688398298988314230042472173938556889475169853795583540154297216576890062484951831076341233426888856775146614179728005359172781198362993333788375368935013844130007901238915623643804707719918516907208381267662662901909276847419390366452797291602245555808597559284063042102797357627357809160125422496018173688613655115536964594135001368625051950123010065131033282895958011518429381311390939179855673227811519811428464204814853043815011259816269458259310294175679294745784420742047288209394269033091237720768127698155107686591933454979362964717765736283471186167612365729957572026480930601526620660676734129621789116577930503000472179637971828547549004310465223895571951297365731038102920266603594720091637306386359509485425286906787132109369978552918002217203845023385228718924624875340647087198045914133453629121662369165492779637807903503955916826154451953694811907642784982187319397928810804848701533920451883432405815315675698106850197733769524408340542975903628080101213440367533782991091495571735018476975009119212251114382789372150709721670865615486705991788285875908771572331532303866633963549623002452015394673041179063118579575043393380105292984675097424837081127264324022584293803022505924580521505717574385767258273044132169852410073685542633406503205939556867022208661886628124760930108733978901251701910256507987064062874711001323568195512063299944868789104528381195551115919485851482700541776285686941271033306939626561129846291849924950907283258913650365262175903011552418903505774713129564799685639052666733432435967646540509937459595442066384802334609267921867332617526897419697771685635485949469956359262812345479585956119461811373913719012173154614474662909798316222971206454850521215052816814872651786608686432806933046773085365979722631158816242993003896803093459689600513122547740376589651724302528605066662701317860179202234296559411942221974318434750438202234020177340907645967296897253185580855208933375119759261966722376129177460919103340944229965970450354593369551178199418037352375633309731245469124667434875716415188087983560688609973678957196156032151661763012692701513072175601177039587912335675278475494053637930359684679509387194136394822627347619184196310003010771270843301120932175637732263905322336505521902608615653607308660361548984884194906018343043466996418647848651057006571252078552597609151564022893212131808080964422630799583327722415856450918282419594620385536141920921441725698274690785853687059907735507437461554199838904212307784721479774368380702578464584030861125604238467702868953533246676391834063131970281905812706259558961190408817287912556183891989029586579206685888870304796843005278419495002420467693786850127500842979727666455417394027922027162482011690493925159889831553258974030859801359667603630433479302867645468954866503394385224649480633925281490349554816446876693986699381083938394190012445791532703651208238588342646940750278121810073395692402578155692012970873561066213217829589140518638292043305154883870747067396245130845043316298738131235385976726684701447073485139770829380700301931148735840097541139310535770649838444239006335709443000716281506975041159803252902535519623835382349761903490944159294620364513757486881642602260790208793927291539117392935668740986535299757017338759138688708538586292398151438082181749811213755782589838369819216315518585204175413725756230118068052712897256442983498951697310812392396944120483472789147359611651013993691474405454422726094442433574052729862221362643740634938977331353074104250989679425001978216819867410864191667899491641501471066125975615377933058679818834807513320685461340508809665214141336132399701855532473288725661767953298364676367606641014559847552783650309788661763076848264963171086888402496945378757764318233057707895989134448975449588809143146898784136718004412275445379950826357356186489024636725697906126966897848642698052642949162871482423923989336767177425276223413262664477784152097345282002679635392502725211627595725406770908218421688338684014081641579448595950689269658114309279456047426708309405130323487803915537379361444647908658683544985932575706381404206919237039086092941699535432012872978753644328373967469226019175155992179099901646614519774495584484556255939625257511640833576132767765578718764659270365265561914717758226107937982883895134435197890842128758649228205062301118754459134829416398396290836353505479367372946626451709167181813377983609919929097023378056054181004037084420831686917985063225990631150254287540263143142018687110470981518802804997922846735552039030416657444061352310672364431385612253932523613133158520160976816152423397667172944612846368309631239039440150080096279209464542785092203528611236648427725633331378862382718466741091015947622159370146713713083401357742042996709047027266916949152144579016704932554904552431910596682852988951885153860234160784713572062959463611675003543445433260203657862226752900080212090421939988932929967181521943668747188382634175528934931565756137741134632554810953574789252119293646852145869805445218827645613967055766840499255871014463992499880817098339432807424586756184512233075905898377703427186466428114681265176020083474041318671268213150728247689860860972625513455694028129647650921587507033811712912553554046440711636936185555688824008392252555566448901132649617525418840260198831168497344081046478823035470886648738729956998496276919359383513881796849655753357509480261208110839948114752181556371420452081342209518125303811689763119300183970881756631640633361873588788098564606453470033975288147849407762543516855820438545780473468294903690930519003274115381306804036252720330950363108965716149477378214379639450802983720786526874092068171005024035545649583539096952615139532717950856316379284439193319170730080550454564729726336037452598627677532866328548315703155170449847905538028962976213837061644024168550655795862123047948780874291502368441603236580449415484022236670553203785500951173863588270177907275380197286817767041476189262045776637409918838470208872644616750641011438120197814332433498624769800607577746019793081058320679830782988043298495388495613545197062402360115972066621853977266406844698131548159580485179012455296438678328721796405870534011491121488851134431757658765896043628400775373459685702631817622271513101834380504075762568317133129847495566972858057123870058194626369148847191923248410929222751005016126744041431929399923421520420397591910170730449397724325783297651338619590372637360277734576113736285713623269679236320049566986835906197376383224229578499052611580724349082615793249088322490465346504974885644039253975984322275470921952297083938151119615076872275289930223649393902947853069325497773360847104786010794855280266729292225201306166498592367672372374629176067913889939884705470901634193660363189419488103782658157963800902603192897113636044241408946009613148366534301977735687286855095682560034701670419007517315982584455422434300660468119672626466065635611543996773884878263903087235488694632104209608528502909741928826773076780455010322101064653449856817127572877640411450688699669569269951143267590032233990656845596748431893211582194928358718808219479622332877159792969696017313743055547944838475008092361678363651822008106741618153607772493608177235011993222920945998865697450597160398893979298768284364841984664214341462695066506354404432158935596436569199117347296650526831449686054851442991752618794278904811320257760343364756513133912313977021483512616915848018731410017818899902929720009187487635908842160807612671317324570343469836203366110142907189896975543988421464182750252008175781007079029681008045269522355847100576924912902768936952624285924416945552493615571377474009750128859800469924151199970356031036699300425061757080801751663543460430126256303606438894620680687954143540903301023903012824373382382321732816809321519425066605354928696224817676248780733492171807557106787053959546191533380495076015983965160279770761404749390565050178684729139271914592962337047700921069623867667760807504045217046768773979482898600686881079703264180430833643089268460337785313055554193052616615020482708308063520598957747475719898721641804090089872847547060590392794705306785949118355852882797653579667737938338849688290269104249391235296743857202112603511317121523538072450051558545972981210556094579390643328195735950149509534019492473255707230654342694368936751698635947557272817967937268848522503452155136679024707524767282215012362353147062898256376181177382098383780950878430396653075898480564168850476986246438821074861148200630175780056065606903221014599540303476686889809436196366211500162228679015939945442551533165803820802433967369736499175318505162587893559622710713242319833208183790967107616148373544978479973959924710921823569127840103938873944045373085952144353410010158715251652647457222430396726687313321219875419417578672745434012875072278550986321176505529641979348079632160834335397625848145320696425238901083487854203571690092887956145803478186601531798380093913090270334834136527509541361982816082192810218385298929392799983445303996562536041125432590525797133132294975124094073661915841845574402768507628432062371251005489952175479460001877864525314972053407739067115846496868152083021828860773451248929416606596207784576172229923413409113353095902133293709552262548281306380501885252915938267081850035477571560590005334199409054178772663182915621308862127846657539267568861263573097818072652948132891161083944756289318830844386512521023294087668768268997739008961515109897039003971755162263274141962386439426761137023835716735424356414874136726094934890237236959219785535742516038729619239580970646934304336707412754858130517482485053419470065900323820658251199409511585258429083799876498642189510174498919831624749395045968140559066434946093403382432151915053189288382913886397042539987410111520425927448544702470583523678128409398298589356342810578107896014042723152158259628340986617887638212815479809182022523102360580318854347938296014324144573978779465315668837169226862552212561644604568976915943383851272095233153695418347967855364170877481032667443494164499140946439731261779365969125687731088436099589345520061725813368277332737834550279890863974525174687185827962626820421058953432791860025278469928902176405871160838931602606616629532798537822980545781652187189310421532680428753356873002635839320994106629155876406178087907391609426841384789737284083337482288617232159813804106103805974788494400422645354054883570472181748718289057777123548968797985477085302102906219418848536250218957168393641044615671844335696144854213777721355279182117330604154039878960583629803192797421349424815115101915196442389904998672497787617228659557346955612571190531292748775118000504279205260843976869329964323351223455742197286433318027384463418401602399326224094419535209148126002718823598513333712735010673095964708861834478792592719704384901019020771327300072376096462962991054468169853867554219818348374088826292727707839803876161473209578111662226277447480042831901018506261476290761194626222000493683417554942554434652711871975648451612662590307031862862068150422743196065987213270238298963938770407868347087345976525419958299166753535008029621113685906252384446944118333953841927864784475030461515662345851013280168983473715867939989848390702446964178202767234412981630578240911119575010112889809749305325691835434957818015721207493134710149043379655913102885649337974546173246237820112788794335288718874468622520037755766414730572449854354365738646657719863112206514937859912461808021931984059926942067279819115803461933656683326045515056667433894619681897457276136953816361773157447066475171107055534643723603393287328321568846817216910144023244657477613254290464592828927760857273351207924144111697519648347882718741411715764409192950628830860525539382476830495613912729597424244205414267893145157923164854388771513226238386799128253255635360304100666576211465219449611796878280244420983872690050364163070164320503682854912992739160758168588160772943366532212491944026574905548169091936319292323237773295000747420745091333568504449787000716108235086549814243502099571139627610966044531312789356023566448029688655770928597525343393018860416205787782031967378011677135676649125541853959747346086147754861248826471844225544172200396154814594045423930421523318945871486508096015623831182413272530955037855458101723692725577652379279183244970622000587787198160804867238152872598573868517487077809565238552460231973699361511831210723990384668164835155798234614934688489749715918840075131343080927596536520231190409681627551015862824668657840618467367785624048105809613390667652125052533549477368751044079871564515086549451853654009812318581792896176682743301873783164506352422831978991544021214235314376503429309994036045088120600421097423475207340474453161657051030608776448001705158700357828873523996107490094300191022867118665396681626349023822314332318631498972138442400261423186657173038943031157436796310089923338717422240971980516654557084105189659202135069787773301421608746256060671773306616167199626532857714731319402090163490931970795843633307196192161281161956836389823962816061985419455336512503294545273304150585594842380608182041931763389960069468057898458797736105787978392228227788378340963056111908415398523945050470329297327263224124335497627368141550878607091621299923198629880110519672990573647094755339894018466073579617642031419091148435305414382405564051126391839522459780776548199311100166014663957614598795257399839940122794882276627201806960143608439356429742789736979513880291166363827843024681654256910643639208671291280583093031716572588243487351060396843886685688640668826866047554979313196586905468000323552503980394183197070384837532511728951256216673064175291930585434101219849443207684601705178410730435575244531207360476404666903167461014652574036217520786690349214014805093217997312731561792530337043764887642308918196147395943951380369775110142137399896740700527174845839718749529006126752783707348331658752819418572291247573023657607848083170410021005530565787516858660459484535335407803088968308831645424346446857375031794442568041502370534619758195234753379475182561395187281999124921160693874164531919883100705484990608428391692823930797434247135936784795445498152373910449487640876380510486898627813122618968123650631279947876293127301266351291906056249426257360371317425562808232936418272102230963613740220055092732394626005022317884809338815262419695763341912815507980513543545802638464268855878839533563779166122704204225562585567851945330752388780448301196926916006797684120893001997155017452655489543981857043959395388889146881444883490695271820658421681876750595320127705592030913887393126358977937565978592795473624555072041209685773989009686931253338133540417174757811078832550853799099966363995529303977679464853460764045759414272112936502947552290832939345732956418923165818746872689451075852039438904820162589373605948476700971372351429035969832211957730138406880244200679566877463157571544209169229571120595479401133949890384699167419405013467358663978131435193814200372245545924490672528939580688948489829040471986614916746202891570246909487104496594344240587117231397631556729917621474782211923713778752650351362421546325058318622597499368089479531601665342983610893432631255606609574792093327060727082054119285944208241996647521529077177229575833384741542922297010686790520320732167267007366727796449616073756753922467362620165833263928567415294617197037546691606664848727420285622452951378924291554593629760541221137567758361100839491670932902928435767091237103712730893173707236168289712476111157444254347804441347699673665875570465920977175400341950485687068278743578627105721635638544712091082137136466165438060536455325166368623436909723950210264647589038623467016637555876612693090142358670253437109727764438445204192925781488457753665851173622285256523958312332151455871257565335568315888063614734417935935285034846816709206089526834392938269257318195460851261034625124417134698742994810591001781835781791626101583264029095303080305489506474648818774701766673164909620177231934474719626327617919836736041690704844693160168398680920010757301135238072256461107003093140312617702747770299502932877661266663754274619171868538013389450505475109500848843282960326538142165437968590146586494144254595706706632193010244014929470377347417908538170407810198289102066542206860945214435267531129461943445120874230997228785840421082901417269612315373582593423442115754639402822021020949305351676278463115612669445771374855763893959195323373328159727028802696429068442641584063376425779398884618310288879821293735397464435464110215841524930596099871597213175514754014662569327930329746839610449832860607381602035843960780888741480032398116727911660957948956719713926134412849092208026895574452298980370522264694163114042799114809087937311535439631026764379986926495198479552367250893538927164503437677954689963668646560328259509340298813930471843499495758909511067479450395455297219074042586916542730668888504251106352732555320192686067495272972369510178197425557325208909016194236020596943372469208152452927823516875772608648873508488208032388218211580456392884829027360864660778365616031373462462638603083421515060931205808616377665134269563630927103405338410251329133969265909074731546020539832665167815210564756815419448560594991489293507794268302843890939569680759918263310557973892054492764825401874316013461121291179437966040561014276688989907988766243174226308078702285992726010174994178336149475620299312710853875559330199912461489672526270777938351386331677777914967889904998407466945248822425667981458883047832087637518780328667504084940757481923795988065281144285684723432948064098851618682811584011548379757602505844602973387847845041092206433850413603273357622111243042755484179337848338279359029152256641740489288447619277894723814603773778805587809634273715300458533635166556767763267279972429838857684538238060312564089669769365903581961742250439688210574485434252306548893680544950198336781656382995586314270611387239456950466612413160913860939247699690542263399692756594125394979101033744051681487127742469802199736413580021454320677524300639032202293073728714311807013404234776791982296353143466245232507571280428445452236988667335769907945943354182848202581679761678648703467475226904226829892288979642761076623075021534105250851511928780215350456985291068185300658177520813690697167050684932709905764215644411468501924937352307758311657267442608616001092112086297272732739619625493883814180973148848123902386707023917559192819534344634588390012114678002030648423007232227422842329696065031237928721584331967555645108552824047837386751097133053376148466629438838584295000917836210214684863364242206548024798515049426542018610403787526644049946065693035707174052467907288354133068837081961442650482754845215974390331436103123407728230871449371178837722718791459116030924433593598783601131160323418658285420736995777575329369436649210407567871788229325873862567811148797587542257391055113987829562949970563355937768007431362668433272546697234934766346809068434936073927429591008906789336289517236410194933238388785133285321802342329559828032401770022136406975117287176898225659837590794900385507013893745784709359007818371048848398073049708542139050608212511889412039483349146216125468868043371143733863921330147524478975708316161858236861558415891661944504012417828878754943863951156237052978270760933242434884232901126688171328856672996970087586139776534098065351581071447761407070563650263894860617300241944469782452383848108504427095574113067736133764142733656254495212822495046933844051694260385767714228888678474523950899822460105531305253854481405012067239639387703559409211085238493068889743550057166031806764929580403149305329927034868349204472938609640508698740482089314032255380146586004107130434613089123383676193648911012582849391564839813959661503644107707933729237132790867569139273866073701478393008419959464659840091453570836570092799804663985926578056693761883870085125849832565465291389577218900631428404943431936576111652644542517822691455758820831617994785069354216825015481674428670698970750955748815570565505664159373997365973318239490965341840353244170090969695677422153777564416238059861847929609250509128389660319968200164185546885225623088207593909888422291238317313451661225858327463375741225656057574109148057021936940775134493020572262214418027845973189766657825429388334893289130611196479518673744982870975246491072803380517859911895083737879761654908203274423350709826438891165166281385835740020561914055905747862680841539910047758250421282667958666732381078463910082089166821574572788337880896708129458242950649152899523622881824495664520941175333950717963509087694198791472861455716812123035832526378684143377288376045490757598984154935571703771034496497827933294782386092907017220108715303234068803242601892341685927759227396935798627657310446341936987335414525595495306252853079309111332320780092043767627065442295159301723113057550975143560416558814735113653076840633755744980292988120308764942955289203850832152672506042984534758048171120246596446370367610506451576542860048454839364039617075217305002740615454268642245712040470917491272337060307360962335918434151157241195406045376647313425398059150306162137604794293199173088853858754032168500003526469220401378327902573987581419844989119522311624412832160681995957842866718470696601087767470217355435213666262955134313419273085707017786746283278770194832194692886436464574546152576538084282739989030265340584439217588119980463738631475747875933804955807297804478399046610571830941999869776933483414735082390239603829088904210799581445753351953924003544471788645186601285009307727662628827984697558259501774191302754670870059549701773576179133615780601857160718388560463729481485273037569258276365773627224281281784417046981528456996152918326744071256144678567435158942135251127207117912389882852589573117825127867846672252209978219636668793400839960691340892357798422619000984128228295841842740467362350513577246585769493471690338957117204482615433397745030548630213488599134056556223448545839028709718003147767600962695703678096479681418757567782095239466330320941142570279226023403811155043759750022364070910797222080939632547555252896682815871017234403712183466718477643960505754983627309836091440054819962230327770749567504624654941587672787769126476489980506679953964536154320514670226273619473807411847783318833306146063162395229168155987906597405880009091881715173420585145484007735569752719912874144614819978216926621225610094191232495860566717293152370080739341955415921784534024232174275190765283182119719020800879906305975994308929330318463901015345265673721040575646236389232865959938952985548398962518974175814952094343831125786681146151151085035105034491023042517400428240889061461630907747665107015183701392721551513312647507516785089443634362700551559185977943256085195199280041790824788747402304303666097836422231048912588968589445527510133675008615806192126860770451905790447642087656890982324401978289937747764317387884571920134433313975679702280592175578795385976991566916445484304083012915714805730802450828775167409149377996217400905182144351579917606875280703518768641272590621270187033367834263736213670195131202261416449521976815019950165008721208491877980318228908279436038103382457366575427873038612497868989392270066767748425658171324689524728321173367521035784698171383670577018227425680044892843059595503749979948325882992288630926344679097103206555631563630770094385464614783005956534431578355741400592150671587380173526134192862771244637945572402711119254432546920638932552498077211161431012619225896978202253901146314142267468342827749337429844302686204575357396212396582895294512323368924724594159091609126223672833230730909436814104903000396493550037111944353239195664809757138815549910006874446364101682216525077358502493607680373434511843882215711397262375827531893970506573534358725091500610498198554926088166836508467696811865107354238678596165278464071174245505201597526862902692255894163091663665085150394856940358937893712365156826135438767706274975043626436545499324371424358384837673619505890816879499889867587436462073605012767783163992049452143563873766900817083739135408408079578453147736206193966239423700298342790798189129235899070837561669037921305882746402975100265493367630035143475671041325033269545579923146005825678501677803148961019741157147261757356369305852440018673242944324513653906665239772661061547600866391756805201059970816828074616420471912887938659758531460086302107006977842944695174309917198444455016013941028238679630751657297803215555598408883375946146966861527821873444421399195983548131710639152604517374840993290338062302551936966029227811453546108002917503991356739287350848435773288676002365211997626642195315559451269994895379399264465259407924091975510249763849360687882364560107252930735377487974629783595314738777129736339999072431777680932542543320039721922662666658669126613908727224768905069500213949563431134810051038879778014563419986694866554148110098271925264712545254051077422157863301400460381472101412038139337918857271705270091233368168681451430025970460513669629693038827854449430349017821595662890636282673946327304813427795836308059370050699877862333293326172287889480647749152203124148992469876823582995280015506759033711950169214365990250977635434719317296558969051385192915863935203993538436440870631323088970828296742799899828092120329082769105028446578377126938445214825608236290455304345301843959305605095591004505333129580153225084454796996818648487230550197061007405149170799519136380897699155156353287574203663549048094445961668037299342903988402259732229778920965673914028129604840975868304572547710449392267489058295374233730198384008618262508006275043109819670434122269535869279123249662086110022946380061906761031318850029319724804209639119133128227809507240016597638737910784261536868043616199462604123275817828230421943683277820398790745177106509478215807870061453311265027176055678331039707433454000974067185854516088927091849095504738214089987699016590902700799404221968152690981941913888429784327921948130410121281866732378671991587630304636069858812382236299475994212170007674166004326162843249491984518149721271516964274718511546692083547492033926895519704037010059137476401826719393548825197824924321215995823210029938599051525569155746278220140636295273738904519076686619937520924797531636823272719350521508262234333921283606883493588499189213005994873983624813925747460945776964970743884814420520515696411179023805893641548513072106303672957179057577674892942918339278568816730368928061261122955939334018466370008292668648137128380721350425626482725373564526219961389525865186042293231617124539484758522271808139335327735812722919954391307592108986133067977504082740647975311779645767388542657657516095553195675368433763569838759888560679208239384654312770268366364693548184848257027138252647432478426879360129415562912719267707951626489125887766676402481937319369870834551927748276846179790225199757248602081062781730909540448577441494977086460104852461173105719873790855100285140444750167258703297981635509603196312403604203074591204072513511540617719400454801251719307602011921898099764235245841986707543497998520023814207763713948060536095051962513191741452613487168788359824586338819089865774860370789343693228924172178519345613442492142179590202612556759054936035538765630864659578716970772502571122576174398865823378419955417467769716663871262626383476283565940275065019154143699856427493170409155053405175600772316401228036184572652978074263403964094040715615326521862490568081025826931980578486715625459671409866484693924146313144527703364212488425791262773758156592291157748329643957613773319254788127448790551449779653387362377284407052433866282296103453486014638500643739574262490534381592932040779214107069208867593052127588931352848084448774901138129595643267590585446176765313980085500825085137625435223519394326714647311108805984376433340174505508679220143897845860959905259536379007897750887379100716811646607883514478054686459709356486449778059086393487192213202201994078966446074239638979949389005033406247610595958946909563967810166038533100641364498520131867147499506430822551776290116859187351028761196663508280447281018009546925894536845213325614133111197843924744087199658402762214551587103161756124720861057110387562300996629853058409012249928056123378852230830214630091104799680572504765713315841794050307788573575816557619803676017429928121813081885121915782288657246770387089190087904418892231163888685386496204132292573180854474185031174508521276287656812284660806737192998104138857624708581883698279973724085153748496329377667310173646994051973093359425153228886088607820612579887681828208928763878579361004358171026811327659302421296110426300493826122040245800664377884914986027374211683582408569755284101845155049291275637057983584421337508054496658987313469156686715773912809874786799945220594731189447595471938336543329075429177705964480756891662791905571580491177181496360403388562080791182154285531183264975492090943303258461044116830907840923126168637290445006069666515034646136046015242086102632205073994980318365574816191928380378798158192836561325500818053944552824527400664010090669362767056273081611763957176757579882384850211933563849351265883706367339220083640780581767692647087558630374197783882184791401094119466163981403639154246434206796201489396285853999230048573947692592611049876665321234408498687291959628400413127194443518422413254688465155834224004608217756381382928979369792277830936342437000243711741124235663217323315784109586479421819936417779496000921694952357916283935322984945237800958943283327737786468482357258699048066519419784010340740372035423557749236454671011524039367924706421137926398966878009255271959995492129367363957562929777971069455116307445474641153093233443417029950071550083716283593537036217898397433901134891738017945823273376608330432243480016844144220252200284312805817260531321375097100687750318849324123899071769277314690232654222385544795373113134926505924055663802069346248157628140680941461153681864601031842178768567572568112880802555407281785566897770397555193091779050821862909327363517363671058415880476457786907839958898563029535262139459289842628732648630918896482285365809961230075155565939069761204282201353231609782747280420061306712314804475446799549679887171402738211124081220058665351237026211642244047502047828195146665321463420606860098681495461255689338188334952855048575483140784818855036108456112531476924559123235623630770651523589309214087238167449767157629340258809794790183994606281542396101292230320302465417104896017946564471550884819255465342681990609240088008933461118376358593867314068693865415041129615754282095777788189625145169844931020804417079733637565045732186260105185832151724932937702887718081909216722384468131529431355517249182443290854972209138800520036557111072509754830475457487390274091455350492578401521404381270582283563647963128179890079501116721898350753873180696109748057094904316259574797039971678911332334172281866929359271202201077802803367525553633379040541843241834994838368713436364637307132767968052671337398552832605746462813632838326033039907765816974001061438098682845144559990534281048944331712706352379941593833932964767797186300609864296186679723214751766508969218180449698916625590339224280069746066114425712145746600997992190372764136600062720438733459703427005144596282536571619952534156131816933162123052563782007758829412026498816070351382094391964462683064446324290537987824501698607627131900587720700047400301531031888568057954913166528744893925437875319241260379067867339268831616317114896438193950791847110145875580933978290919473298736323760497594107504772423502371573346668000418270657986982741905100860822950163138993705286831434922325125864650458390754490777468857207103740010057126437771441718565786388749499697712528554641387251386319238897039935417063052448349471861717866933880609076681776746280520374004540763139928335950523424825993367279362772239279197303812911454325303601162069795357257013741736252611250972939407624648650269101225617190289529828516972778564984967728520045386092493896455914410074991078707296920181593673561116605048182484949077577664998419115294826862439764805628939866922175913919223743542548860136393355379460922091576904994104592651374704702635440942703462028971467402054073990882652717142471337848793430545038312635747176566949199534274613617791686636349664521989407492325714876170764525975813858065010618368958870481448602691468988369070598398325833542951764111993259794537377849782950343811393985206249866815257663604446258258619518214257934379893955879422182157867147507806302158127988869939695640734274337568168620977382224527819067608441449842235784431944186902771803506325485707684576296023054898448421408240864336115707908193820240577973231545301410350679336699545311484313535556628085570308132372952658567702746332410052826808957768312371631616266868806561034670185504476415856773686983778440548311444304952445331754991110606479894455537766824742521969503612323333226741819589164399256782941982314550397026982099946665301089544415375853572894783606331510914077833562049120027854539176463866785197964815864449073390512624049757425075564981655684885277457592844219607939918948255205604646482526297265792010589810795558171952692310762986813323501621370491830454723272317297509740404417428245425054491635601621769475457459465097559803791410066306446639396879583105334119878078418937443664408974251170312351696479005532516780100585490442422108867346859074030311495746341659174549053772037155999913380058952281281704024631848340782176787519703936435936582712871001980507979642374049644834351520217247215016828781430189699753446026020026844556729317739229102873803923003136865301012281272895160070576459040246272412113772625299068286604644841196382949301511826744196147793409811170737530772783498847619981793187312158693494618816742506172242943317427930568336387766694109423087475860473725521845324689192047477559190318380860478352193397441959472582916009510406934768504243604206281645660479175620181996083184663075216764435498209604074108142910566888408231844452061273677571132226896974196541971818244182881055790520024996269840553674662608256535386641514958689994726882847848859767530140948078135297880260251205468784370082751835289338434533531680337222691320152047004733254864847351758384849855906661487707780247855763200076067678306490981493831244472487038293791333960998294013123173231982218248706968408436829444180372743582402730469805173317167478049362237834402711952884972824292444234623084936948001091875865898751678544981019437712096272875523390764587330017172141013332359253181934171647260953567771777414918483930671250167594225519593428450214833843966013594405917087673111405776023068816819180470701883134209594028759779363288755723335540179156274098665226303389557676466837361019918863272923913196198636397259988034619147031769797329877002310801368310865688551463718045114593281638516388724530096093704131140372829142685883482235380516299336287988027329239521041873325745275042766471324820732882059240489376641012106897096370553948953023231989384169088080803782367223584230144496201535412816650613944346270696222340239706957269086432118458455282706750401151934206473700362358186102209849394247901765583845978874228977951443410453142693302988865316793348657001821829389612780898002369563382596393297024083192182572543855089663441404953081897685641500997795375015148967115298942011813495805834115923467399738565021074470668148171588573974105152441487616911006493775635470599518952742915432165985369582119388045872911459616357656453553734794381930088303039848693388883388429468310666649336372097657151527596373934991288667998321529028600245168784355896962864323388289863710815976265615444021388560961576511989225070396305600849045844445724008603036704668993681068895482935464276652580101079007908678416493281512205880881941477309503324616826563333105124760033240725987529299631683352276180942408382134322301260565803367262801482239312610222078834566449888265297458033267967716593518237699587722847840031188356268910480581702340141857783165213117868805007229974140332371998524889537923043338059066177433190777813297006543071355152525234972063686622767007376496542145917558008832219159121217560854699499287813631150376128945307429419074848328398151362693919709525542554927079039809749802284669352795239171728145538234240873496148987784804413863718022109224836185030575239156597205019123641891804637195959627724955285575068016201764667821797979552385273534193137173751688662709993226552406325308182994448315542159891308488282821563240368752996131270646304857230931633768721888013723854516561930661549030052980160973663651025727555374302389171017905342643422073335749005921681619336764560551531903982488946243445643214096777138665495292528129867711379643796539319276007239653285444911906932891486240464722862766363276153548784766212408806596441617963388498885382860935895708379609512899450412644693331567066562744986811698448209308552736188119377133528906610668373514323229285837828062274531386228346922859889970428863376807126411699164380209181569713531931182547127233004998282012460561363325085440206180658837813516577283309875226208803351942046218210098395299699765476369465657972060691670617373706842143509063738184010699909901905172735362024199409910901011081800949069525543074565268526352232974365978231223416613921722461684707423911560982765180076989850789014907047532515431082902348935556377305523310957496916803238406590138067483161809726815510722879410230180327797617038069124151249709868256242463832888533463926362864865704067157485853057486090344973178520090105434416911003085488756509820532303988097606629482554117192800761823251275632415334607093419869442942139014442881856926247451493491313083502585118306776523597580432915101670128629220770362172199649832856643066692269234841937016018912488982644107425855317628794915271089256618638806610143386008887805154476960459612792486054382821442132763662239162976986695615454210587107505624827175108733090236268579245367537364084879695311883715789741914289807462299419565232504799629395496872447703871226976035844810504237426988338893720608213673161281936577116030038986896943776446476964576237279529794147430384992444454475286600288992927298296211744809448014500307836521456277699530360654683453138337483599186344413068076010003950809031571290615880143931785603892847717507884617299749694567049812535872386303680117122149394949219981538757341323479568120899634894258990728335190826534624858459622213527875588114862216751581412104696108309695958503310181315588699367363765211569441636025847392132625778696541427027526965422496304403375407993424640196244611944942921256712599486512273008506639901842720495069538580447952283563595414215185796643221875936135441674599937317710734476736799988562174625060207671159996349866133358153333088678008259001654904290025077048161623687564279748267303276304670307748168192253326983820694539817478145707136619717839447224502835549842936497521560727878290764445034499053607266190668385545372390819323867195147145018214223775105538015150870764309735979352119647474473456114806843166779716633648327781867335515086942327934626530601111347871634008602660205753701391997943356921984603754803910582458616706969974797045379987838295744189980892756826039995382609511759940463825987501894070323743077821579322684350141227128644058455026229375405471915576644656477935842488294330297294072342368016706690072931246872667242133567035893205822126359734603080793583692662166495040212115281164582349453257966756066531431200872147607601872094625477502026426865842650382995040175049125916429926922977241321124795177297122712578581191410154974350854796547375246188290192807365945035359882406046711543630222393653396538702939588568627011140109981611599958881791089414091434923912248859651986625400464248834459617038253925058020040605509496135041210725398506879955663966499430124324757020477223256408221852153251883456620541498419975340931236373439794270143924140175369148163031892813110239037067433902861346848174595732102348455728893211798196332586038588447057075850894917194732642454279850637816263611279451410102890759434684672818933963733853034156915904883306236946950667754827211704684042146741909743920297813869667122756204001152366869982199468340355178807132230353509117727860011183621578451688676807589239183659834448131775009704825173097497602251758409066599801770402774516861001826438158575012372807057869382131078925977206794709184875628790029212636443679650194469390347101117588505090877558655765044494461696331057160921433414350360200894985773374413494832123608282957315821523011446151650286903126436775733003498830017061062546442514488695968657181949531297360231083362338254307449073966063980159397058811569892215184518005389633325220745003436460235018744777474880454691117426866899721240070613865707786247967665110413163923040827715754867422780421662997664805941589793818502714611475299458222255241608553270683633245983787459303521850189139281736374677915814172591285223741230291100326149517476635615290885616882494459559279199060850841409540321418025018343525264720314705718008317947146792181483748791834277194966097473121714548727927458270575619539772176568752246296899652719911671189071947809344847608498009009108255806250011288249165657911137479793558927103220602686805919713930711833996424908991996816451406184874442961715122471984226877978961421301245854045115043538630665403331393567599930014398222965751016368020992697928642183721500493481073159335607340961896732884434748082067815985887804623734981993533582354895274285067224179230477396702129680976443151565154966290978169833262481308381906491784859534115400329509925327705064543265007535337429382744583205239528629103299930287509618856341548293627540609388078526419449897535538651626576546847190205201890638154722851951051754829474114538160681405936450787170625864339151699095192546430337560114979558763816105332154922446762665003608121675587125443356977502653656910786582677124357298775966705332436925372311504373517570895415449339021143404325669046390729188300251427578903601331748974717222291570932944179581984512975470747636927590037501516352533853206293829659038118247653945518366558357469952917496220334719979085971443941107159833197290783256023573986979688614574825411629172441702489514805403236650363802659446537285257198671142429175401127440502927822342175395287667527851887724137036906959647511992434568076069807779608912795722595018396261289185926141668762969789828643446254418302881584709823014457516664304960503345698931192981116693440244290767090701566980383072698888150348694880598831942598004307965760726983563930773412477166752122937296043287800246822844322527034070101286812248105570472984375965886947014252487746809358818898170314834897366470007208542395653692862683453764876136392625787399894818599893728710806494030207163963102644945908051313026302357641592079604624933514141210853659164594019553467855786884857346962635966109809223020825822793578264702658153198580994594195002448655078667865386463995663498753325883031669350594976297650346163829877443191496537222804925780251374581988238142814113278728033455219548917323965792546159493098624497326799619836843315679942445305285779311082459219901497646845411548295648305477772100980533928798200929736046722485791309047899450621672742057093534715677154239840936689272957711543074518339286271259342834003540425395003323072935960932714434112638884323811200892410948588997085687214610586081319422530723198659525386862511624046490251619719953511804097961608762460917270347415556586478747164523251804224682673224288893033758701628269830422989919970450377505621802519085554242698610793156935010939850439919753170692673126380647907309410513869666948454600008690403245598628842662489904088290158007428121091167345800059596289963497604598223471907068286686644455907962206036777213306796719338069450142004426751479687862432935804573258401573126835822999811889712842105832082726410663316795536928776353926556381541452782862619927280297708366587042061839694299029339145826522064520190473728692671116341189471409265404428278976339067784117782308188415612537511077602371512379447968229984191628634810002334582544900920890694096126266992179789044827567609744155267255410402096660133818522792217170376033368897767672312007385965169734206701907417253707070811116941613741487258796937005508717270305422954866619989335964412089691031941192828062026445280525203924383285717904410733142183863641872840209174401705179555484042234471424863058406787627080139424944089577587682805408587408346877914799368960855329022370810792981841361668585678802290514148750822836481531406668123721026910883051502253058952712861722909146521888837059800808119528951640248404511414135927855975771032355963549783510420477596537916138466237380345113907630199739160931582897929549020759732514788906642466538985199309739590565213755342536606610016638173000145389457475213056130689861658911084627854398665095251710520024757380274683265904229072964061655423003961191785710298701017166841898394864915525076794478504805604480958129569584206879588177371203917229850577248278536709783334712716080485624489018854188639413554074008998451616953773311626203995251926629740031869939054005731809143025646146908478846495586146832616160402505946725455575705609446173171858714279742212705337357104835515387045361308332302081142837225416659495508995151409459933203533095591254644456732361173950490154294865343407302701922377517242142169913110915409774719361964037702501626850169334418614143021077745758664736733357549933192585359342194715899953904692801707448364092205190615096033102711959744665873986144461022095238533329925375061014896054890642004460539845462133494300087754823520540601882740294667864369085588559714285582892831932650588472004588067848263457521109665624615398146871124156155721268540909380999613490761374863361353384371063226751147671471475243734247037328101504051539523497328811032974272615618139078652147772594415389443242805687452492682550040708777605574185924824237897383051832536174343707595414470635322248893780173593677271950623826092665357305338205953669631541696643467086649177116240774988460781106706429406645025154074036078053729679259944963659979376015812149457783756232246276739673223632394929261370634573759735661287809251299684800739054730448008185247508392128830284823532641226559451473974644626259276140889606374596025015533443947760901749283391016469193858744720657365080204075870319266640887111849454367017559027782259090923821884765874851583232644226663582023298353430284422488235512152283239751341911163963923715456080492007231426824296110084370019597535473336332782463176291391714731812748005236544973568285324470711883560626538064920469466727057496558134524995261513332691742551864933641546500137817116062638025950779851246470613848099268881644655958867103907283225708891472888956993910985793024053066084272618322561782340095570767527273119504528468455088524860570586437544151615590545353169540516792803501197197080963593843871088747179492343158353907254823326983082041414276727927469279834017548275119788115623617760715636482724183264451975940904067534741959692973851765262421955847883275691768940126410480489555636022672418958651942877365706197865127765795914272928904337049499301672445233671062886446817135986854574861995198751907249613485567313729464616798832674460476107297881373393924893061666847027673044555505530060049559373430543877926360608601858749880764583438721138697697516628893873121822701163516367878447718394397673777665382513841210793517454820408100850346926106795116481893058826222857107176468144396327947496645934309470280484787820999039136033182405830516113351617027497892705781135504868178066003545544965557210678961065189127702586096083486809578083153781812945253296276167554850185542676104618755012006083347565349431002315626771785777361685835994543039596132011753966062472426433601302783932138585870634688015009891320043775312595135514122422313716396066402786165217777735130201936284962549581532861206192457879990484849956011356580560111906444666423052784404839721159590955911209113830485402961483990429861058012633397604640891284160275963273209276204529732369821316730058686597635077722206163811216397183838285145062306288781715790677730923757468179064219503801938562107915546719490862654328993152867798006952581263499675435436457353980538619042812842350238578902075938495698784288118377565366480241448911280844886216190203296929485250270504701845151925066549956336324309397171718955915991773682910786475536879728925320446049091502891169066799646938403889909136668522844381386113738643179763387338616013270532776612124386398911388942926629573436361900372717455781526769223523301203467298376259369302349804364090944957205102938731214584396712162849383609722395819558080878711569911347819214284668124211935204547416365140646971203487760586606784925300649435296975365806952983382336252580555053725589797805634581571016742840947633155235455836214007324721738698620280508942074099723401813628115376975530726128573448045950769233237054979408340712020307507483771374999023412028368334260210607967520139648571354345830301654620221030705319365382860579054774815813282308856693493053482004431230660615534933093354432077667736354231272914787247143581014625521779618934322842630702140523740120537109281904634292288032574357951569198018607416708936728819948114382174385463425426440420130910866971406613458764015792299392373739585939550530679784383202742104375899882318120106671960537067999917512893552623830320267654903112319116528654612663199350737709031987096056721472555405651676926592108009845889779091035033506141906202163902872560129102637191086638901155019825790360723790500728856150936811480834039216866259405332897818318777244591252482973540041591067812716592578382539424042017248863666924854553868650845308610927436415384367007078450052249220408547724820367925119469814727404266952125235940663462282042029991033499499339351568929047624779261222093009539062359048651042807410262311460351532707045891084170772445613485203580779666464333053125132452441485265085476103855754852239760871283962092883470448884019850738312520222195976969857815973613056270267807663323072734640764267353488652005097207060345977084492063449283703844376577693114225357813324361754689292904560455319835704878768268135825416141700952463662644383347285888215736188684247979874853593593840892094635607867500414392974274006807048379420681518595598541736468556249853006442442966495738673557383767592228670993076200775632843507696969882535170727821322209752589818865607080144372019388977547694788236405631526539193257092488523138562135240883464064624819924585169559411070559623217384162364255571163365149933015717169636730340853668395614089853298137839281753055142975402567699765155690528048015185386976329341776517198195956122570934139075677205911867231275922330471264640900809976232815728158601786556813580252993413214714653253325386490385950693181749945778481737713965575867323692106880994771541146655890455710750214898490279458545371369197416685657836742229818265221117111933748438900796085901301313524187225593418373254264758563589202570643527558941758133952547478695936417396989542681755844257569320117257280305167427904953031908992293891422206159046764186460462327015386154070944569159902926416939759587306731542348735346003172482605446903390896392769296304487542708832508032703626109720543629301979382955392148994515039312594316306589813933970805729828604648345146648785641388429445530835674234819523983130699026230747404121757456429278559680060314937559188596438874554698892711317052504751471394442011199203172403750649810600649524196571399275891967373097194957630647817354204879153594940128357998286945573209884311523854136104483292581605670435089286050427083727352044555985207348583309941692087267835276880386116371725312173329364423518217668401691834280894047011929221160488177375526102350650548520889602749409098708984121479702603913361353196901572431278555572062097885286639108542067253698873283125177205871277422209413003772278764061667221637171338817143292849685885147969528647200857118623705591142744750259703716969520322984860395161577225427925606334076955360954736533485528313922054768408021983342557036201957853021309990028255107326856999826825932407591064766652808796548753173345888068624563111971961578360935368688099095429865268180836894387802172507982101757968966017031632963793349834200433679165224113137489377361984240163353276105736595529264380283833569994765808782522831412016850512657991798768109787134359440843648414706276016639902326082785407952425717891474012980756244530213755072813910335145164353538911492840486309835455831281720577517730184152518507269648796364571721789408924066017137315909860811316237360584060087436397489225160935128081971182324540615910604820539416963578946246968496886205502803163646311096590939704425383008795592012737570948475557167197407701639477306812748113348673149496867995684398712831823033853379984744101561235748713754852217059310419333859235082942019055842671326584737801807794683779212116153830935073196255858760741463594556586569096595344680183045193998701792838304028000424156680180289051880937323520261194352479282211671495176770988366967165844663115699241725008416934701005586208051841756338425273244605770408597337738571031867352524179369850546343413357638226350692737677315612453558432692670130577036322337117622792193402644427640325714786620476309694352230219455838106950878012845064215175035689611651279605951876676639917783400358973658537401277758702594271695524634514687654641525638073120988235052335936609302073353115598510952070214552839168669008294888856478619942109516402018895298648624968537246349102748233229055489983954410405511803241903571590030582036186238829478945692294418381426749861010535830505397341380607336610765318617188283046897581063735497392424686175461952820796062688761962909746376005227506781160227669114563828736942661091843963227708136127754451564844051032297548265901525609653322347807057640891917702530719625468135152141521982363977503984393748473760073294084570017036093201517011909156838582169523167929376665102172572447221119804812119445817123644574838504464858092742805675862597988077143061533864553110766450062735418076808095657400820726602822583818773795126432295029659710020067236219561045964203731376932416935127588196434490014378914362586278220556404654667652246268216947988312712252495887448154324051520122813413888509770736031099919820199473821540423223133328059622135640972774645335997006275685854149321884236498710427492960703804229724363145899291934784433418625761578447991583714728782538119420493014205684364072845096209147664994006058070731693399915891207442659287322374629636912937379998900617619324187437439667950285720908502302964585755275084436602688988268587058132781415487771146651781264295785349145481854260143289882775207740747348587370365248621567754061784984727888874490783248845915639492933945471010453030866654192523592222499373682850165951252400756997613893775276762413812932705843669061545403459041638417895263579217089604309619311470778153641078074124453471205314553925325656547318542580681850409553841112010802766579895994123211333775791354245197721843208586214743945135606914485698567926600375244734537177514776767838273684387830007645051386224984837339144353372295954592688750240722525660428515836264729331745186128084060345554792736157294473028701337961297874717728163043069553889788713104786378152349596791698048013258627224421776893150917949930354644369067867362299244185621064290581489088730112763897324732293859148537839462258039152454422342659951289134591579598659531165036791631360109869216239070221086781255633687458795798619987824760303749133197517989572569141107465260604234904715742206622396442598631611109726187782126370553867353978354074239351816827872761241243762273014741841056089882175159803976865107987917799146569070660706164555683337177576354649139206971536728152026008612789315851913895140891416963820887983325961859863130134210811758426919398395649796246317495226341272082951818474189801638493780549893998354823550820232714531822331911194110469287187347479718295967391841077071098843838611690180566819795292758417394662723735873564087260682106679755098042207507976951129845363465772061759345142043832960966784995402635929993860495311239358604300974122560668067511224076618653208044421222119924633716522613111262230964182960066884470982101803843039873157603002971748852911082849787539001821353581976428025302825233225486630175081534242457663382650583386924636398562121771992578052928024588586124475340359457864676166948375948618340190488445507081896614415363211929259358976158108246130223609230402495384339236780839865241499640091787748510423937380800274598123818627069204424378243446394312229001715290608531933084427608773242484061804504148603577116186307554562823342265452354784970388966818986951122906144948313051261521544522460191820006707664993362518978015719784607638023283924658528487208096216944577781015478543706379876355348654211745134668725852998576495063360847191957412272343327510945322113925024756963549346455062500204665903500739051112054200390062273878915812509949327518333615349927252191397959434560967442176980627503719437718391726922532207802791460675578846487136088029347472569126768925694934223983354588850172363853359870346370428314933022016038386069727999571783136553862314008787213387017990602350398114057539043975229349728960908711923772920513999356529116451489171050568886219515489079391354890736229784091900518702274233893319641934010869897558785245310201941335301695135205746374644039254421893081811350044016389408596413292934397749777553222826942706512046377131194185732384057171602082039081543143196910665811006285485689536168983641141573953546971023965487460542649147456218501971608695793850165248040164420622433742201719190994533924005848960110836933140293866393091737217267686984340115862837421146073327677052162117781772255604022407654866258439359233814033675278544228814443743167423169149582837585580872635841859380616462614729387181353417765578019386744480775573967859736342996923103188849474234372058525554729833044042270168259417742197569853351837839841295772049078698117880320883070993300222351312549011607377580524861238741961564330610889033079678806178137860123956168234702950044034591201971169690270235442423756167981299966939402586401938380086117605830455609080183338580046391235673432980653564907387246074047036235982620430327066732923760783276705383241993792141895637925009764158649442754373601338866103679376993961924613405979433997548441513274352709536490712305946181714761559896745253443451638086687446510074028314897928050812743173591977178339445869734862456315283273544078606006829079433936774741680395841924793568355969171072476249359382933733943702903075840409242349126125568281967194937777200194151853214654537624094899235309882647099840744327293229332468142270219946438601768276768535471136179171939564480535606225604171175998433012995861698480253757415168318238727635914044883833865448899678323051441530954295925216533795802337755331628391995781374201411499756310013162080636203628489124682353820382735261873995174290103082560711982350685983962996477911056408168441205170622268574579263319796021881441759877398892486366627974414141350616721461508811196370491874134217030633096117660573007247706513356673366285915204669503989590635632321678059315240578162086416658100391784263994919522760295892244711087081487428813897665424311491406593335364173946643828474761311466608453326784097544290965708435106915806914603343576049584274225163873224856548771221689596565483739335786147990248861912967781253325275733294907106398121235856685993024568259650774817096348658921947000637704726167031786699073330230941508084253389893625192132641490443142399915575565121262860311715044702612570531699505366346751545141681454481691703625137680159299859543551775277723211858486574091401921060553144397360720550082219166566914099842722141907818332170424799096141956858984450885610796075025638879327743139746361784695364392996323003715270070697913800110027685822519946680481094602234504827308874816112815263874947118739103279409980409451037226873499281559672061281102113959432026624463328552168720111048741488312298946708573334476341567737250897895803916990436501673599929953725787901466780666490362170828178254598794421348087092266177728581150206940492868140847291859917881970876852466977381898393045446885643868227652711917522017298152172886588391392390080191068060625483883076824746871116689462615179948994268886791691444431429936383523365009168395614987459123997797464467996536403379034394505601296799966478157252182694499792827498715371806706354330194412048639272576929775551795857069009442632327259502897648741765177855318794251560774304539243109019897860511498428473847163135192882255176791094634965116717328192355702138707363751599591765382646866906682721290829273963083354388597737708562100340145625724549784199601043444977066974513934200753769706745398212566175750920315540578855932963903428594195312724100799460857467486847229565944748484027524437458754557660795761559974346674468931054089126303704644472404547086873111173632498599319110565974657868638552467201242418261569886993028504590650489825979656048727433342137243026971691325716204781175247027131865289026125557968248306638455815945072252515237260523374463372869892024096461847301143956606555259791147191299475731122293463783640959842817693688021097500110722295826074521591452831853470256082969973051622942528560828479319220329154822236139709860959267861895559451466880277756630501819438045624394050464285983097360585103369726781965584220032112717699106542154722868235414715123142333873481456905630424212658357578343693588638881495791688249712912592827947424846492554424952540582999551899046081421832238174452378981882543918583322501787041471229869857336359228647287022778710274722904683366251077352942728050276171045268281895392717455757613595703967593352057238093623419401868677450368743665804173957262785240535164208792442029044400620541083508345895021336087569964691823786993241836702779333624735374981454660348094397122857265063291708827119962775501303390240130553176279846774618261637444562886621086519862306963792740021354972464265242365785053342162525353814587157180471621754468027125793414229461805681991684053939331085478019143033251925482747656632634961149265854585932464088032971962972962683378079354359162500672129897655312371834644838950777956993186440422332812477278955230865439491068710756654838953926195532141412654121742383480871590907661453775414189914343912144210774335957853920481813580164863792603975666878530674255376674305128241388516782653059598295417571423132414980157698391499880812154891403754677049705516583224361277638741651953480226134962366058406337982231400215541671931910516291643397790440379381855335532390008169009609207606570978063702728531345864444903483879771766817804743214356807277601188252937780196793886334997975512542927220532852819476292319416006706170383229136467840738087463814077999848115394279871666868543442266304093759433832114738874603111835677488145361219758790986110836239638565098638278171436781210278769511399445443745417178398828806168789590004070899153321479053482979241727907534123898584865977272210829315305814731090870440939493612363333900553932088184597083179531814196917054583597025905071180746687631997676810656817348757365443678038649390297135058061030053261620255244187480209879972315566202688082819283184958523194479703645125425507809884403783845880311303498541954271639535910154552571950674111331536328697159714317504939437982743312690230810916971084257216986409285664118221729546116000619815411543159376541297355868157031623930978734260785740258802510972743754467641139083018464038949790752513387156280295700826248433414796196964775304347970023093300513809730410989843114719553281811102206542588323730236091281149640800215569447253719657836627715129876522959181482656615025051724864273412708718609932927557327754355986450673142362252528217397271767754512719317339061473270776201482982923932036363434929913745851086946699163598976626803634142154095912645269548409510985737698791120314606536716099140645645347618895806677258202433916332215806269629330324360798401955438733105887116985223729827966585613877696916645119858077616090565184626875098092510529376269342074420362154446852302548771291465667492198356957052372491801630231331680318410318420885149797871633499695964210714267990236045613107759431389067008964129517534401262954590919380186294279117431932107837011545870313492463135099739072160346844127390853922518580428836416612366525889559849061538703061982082467104971070777860382553414874481177699041426872022444626465037201713728165899930368604097870020213702371991966772715170416215393573681303091466402121610384750007390977791532925733877449632155808377006177082133311023123119817675168791477361735365124432994811099349312354768132335765180164096951727639914416681866530722574411940074306444332928818029058524175135926422409165801573269542887193523289742443336502111817271361392125263517392187666709066027500000592372728230586250529639390259280983233138023775428528268221857268963213624139312971853356418457697997030497592825319145622160544088720433721470978476760140879115143102306429201701540549328509583022739677128835716687456480729773879284162202852847750804045775214698361621593202574409977516270160972959163000110058429688091308142846753327430554613033281981985736502827434394736371059569132100260803238798817889638542723360116045761207785810731829345969593078153336606042334169383359082452972325186718901088326616144413078071699232980077448363462156598000892556283294352363632089649309261610340675742217881772416743159869843472631856467417481275588928236961406117574807835289587883798482483494204167759867491731811500745910145548859696231485232921375298942274413876236867182194020827607111567705144110800046779656776484610382153056135645437267746701679704749607364548339197053071905066455899176138440508558892575762682643555084864381994275497775971924109434417189640239181486440635707535457577778333296945594214354544962795442155442276458226401634948569137393212330116939703770401627003669576410737731630282069321698248518655292063617397878194972663771241464763034794487228946127674024339379532164163380187370401771262524630508496570147720530688645513098219808195351296127554709590200290574638579106068211828280334186213152845715508655811346411613156521344840929166252560773197734462272600844833747110895175601802108264940673213362324380297806994937977548960990317529425651693988281933503801288656145738632413944692996778287813289775422407103245502305558530671384589062556647414330338631188881884585639563081698995826961297509842914335975960792551402899585638194372633697713739995401434920204528680098837662112006988615655423719958292785489711001663669861262327455681439817967806391811803432547306956252914055950738615433855078854149552202896593368340230786132327100200561530682643811413920361179335381891858389768148657467734125915448578380363675196539646903500223843027504580967205986635077256143786474547462472629393453449238035118414375242898832550357045148677389368721214641421406846094725853925329887729173209848132200097699296765351955699902724161183886813165751492377839310397044373836074669676107945405841959504969088526175014937557704340469465206812003124736858502383406170883060646419888617845564175890712048351009943477409268447958425560319300726776322366967352570254718980664009842504510228312324807086464392108577366956569937422943899430472802790367106435695337781615301559099373336480477552819357109552511167747997851539454046647390748797875005656982665044823517792820782844519940155907041752642529827181091420127748866629632295769620174877613897403793527693597096491589508374743101171863116889045404016765459751429726605991213944880353808858091388339405636908863036543754045110284265848265830695551615967815187628899757935006582812288892075086498990233564459854083634040299045679168929423031005470302726670658902832954519581431529909058783406110451103012792319761570576861715846927772515525886662665193962064275213955163937689247876478504778855398263694188513549613368830698485342256052071701476467014225341688790814790983862579057757696185648269806221682664443630774034959849685949467916873940589810287272674363496095493055288440558483983706890629521593103616890319802012365705697864951463448088789429064570571948990486197469341048144409109051898188163940274800139426578103099020387495716561702745053491755360197617147844425517813007932700284558774226576781694233033800938114899915641616447459878572356744112593130089743838164068824230285277045077854390971713709815562996334259199704588262636902997750695756057563117820985370257887998118698340792668756257599739960989322844420708829362327076204356870402651444616024446979365051153606619518148400244798400434998931033785303299660268187286985065714258987663175420503561157392405525249111161929457116483411518574934625476069080490712070837445784865571884697017493913622645086463332971503544177397055870315939284602271323425873744917595599602323188357910260441373221537320595185882905453229246800406040236662377510307360120553784785704056802830071584030027060651230835081916435094690737063314066770660399106531100720926947027349331887879768927528242092363457036260863731513923747012840514225186691272601628529459272726746441030819223861051161585330312068322800235629399461992485371504621935156623879222674459010448167773542057167546693182007708071580999626505340645814914034516823492924825143636975914803682847765596352575081581995891228545641902938815885682853565813111380905290978654027397639462334232866754246288059151667764506853430804357440841143659088848984186491924389710718800482590755058398844731058579941195986793080067666519706692623786148427486848294049783355061227445946619412599292732055587855563648928452360999646095567528704292232758411243240020720660009717875286219455147978601401452003688250222632045472442727129437683497779152644122855334401709702948405632080684822527641518954325337874980345696034679921661584450280976953407954457112768732930286742172384416469739769821095097699936209189529289626855583134892655797559711672480341511671364829938643658884814790460444787776078054414867613026019433116282868772863913199071304859384353080953125956033509266046758865365960355743529283181137667579821315894256232371970822704564132381644707396255769553727682283139525789427142746751418755062409513343457996372193201866740622292844274302256716363358105347086105899162498380276936382673430691816484532029821439460194449287285668470722642277395563832806339036751010081468715966768960799684075512148919863522004136540030063771144586751692556317218759171188963459189759614326068249941635402678439643835675766637590330339864038076437621571604416495283474056468210772353416809907309197994536231450719551393840232933425533241281836401966976303633423968388189962517060956422297775555321737387853558933751383345617875066615779630290350650273198648433534220462521469895943628139018447429198395597752109235211756854478151893487069995853444083920436788136519265388765573387859539171342812988108075407776232096967224084494196897645235391137084065224954513381439960367650119901259069087729574909252599935667670024518053564097469191135913682335849400780561153659526146028303511915008802710390420530579872479225639238911883124033293229592289197099899754644811100653476254144820229103818442420970529260112087206348036650545134882625187749206565382341940585193429405266046213825198365977642405594013173499184263809660588428857293958612825843243554345637940606204252919011529643708453180310320143665385198851097139692959199900335698665725551361347266787873953236578937313717918129136091146754619575104812920438002034247564062829568851316823018458399326753305131992737104497552891484559939804194755302223374517192897328296018079682313749196864581730545407953150796050392629950554764947446245929425853402682749946398941563053376587995554770725927232112304893260921975990967559732176674588366509227930780236492683069932903949072346465475281652325072494776913452670962736978859832111573353785743600057046714627212639777643418007109618015446183018735463590556190007365099419580541123215751696842193250690062206137576559903961307402961815058440168837901492133155947336009836229893441334746522935969625077053932597667144088427909851807404259313776629418456773010895055109250805291800568046334689772008241035873843392081935657094611007696333303350901792550183103368661148662018495271929265687777088537682058906327980441756035000876347598446516457495591702353881851607734926157059031386927984784743245171785520803293383456941005447822417677330240098368075998670987318416569637408811778434661308681992236024380065994182168103016846737923414106775728243917353131590675540555600226171173594050523344332178963083882587005174215623504071825804975559564977946571251343080985794248138921919908357181657764532029741338588460865642603566901431157296027789277064192033795675822266806605230712279002067376641052076828418465404708161909432347773473562889823420850855812870995714875211530352795473549203472828691857860961106806174140810846462732992533990567082554268389583124907970677594277106673940811518127303424731936011191742622983682738259590597887576384673637810941957997651191787546186992882776516076815107463508603860772534897569624267960499927130352570655001736299689393763932700629849745508352309784641325242119011746170457179738001774330848743147083854579283758099678901255364627635966802237594792753178295329140214123272921944369289703604010192798848540756797623175257589312743998077530163185537513496205334472379000558637925992351038461028206728025840948689584110257173901191876115970336842794333959662432467974000203707029271809535402410447802844129781747088064222831838524661195462603760424422746011196355033877690067285660029245906095634257441878222404075800516332618662822013381658839852686068276687629006385893662534838865835813930514896205045241380887915320791344064434735440598202202121244996040437398929614318327014301964029996535692004868613672915821799048247078776488876935397032739984274419017083334534722009815401059782282548577067392399408110068019420263235849361501059630333302308308537047992236721258136414033388388611783239364782240823609479189956312325052860247764109533112913198347030136642563791556051483684084969890846575282734386145856004003076724250691146319715619182766192994279713915626566289933976123094164193507185397509300014202970596270081114775969075325059654507674591877875707892771371880960284922275020337747129464788652087830513391714856388986089597657969103493432302074678037344869705307718305235912157640817794580283872138846829048302086670530787401495364800067793927548791872649412882289670672518621390723835061743160812361560003660822853411724931941012755318869180386349680828973210210121484782440069447568993073984281031520636564975753303625252036515277906209370438771638729805244694655125985776121683025449618794111038940543434942557014796486500194794942318479309179319229791190038380890130159111548666628140693215898711333274654447584679973257593840300242153810814113098643526133182773202894702600494077325992504100299827533069177854840883144268807302934783213825552965545536526480930526442838428666138135692881839302894143927153506384210871641319078457593196056527399667973901649175935569506335429663851924819235733141246496488951034832833742512588897881002366178096001852688822840841545815905621566438308160628573130760614745268721252879069221893643320479436730053689527304623185641808852204731670328012057486502748409655071912369069923877717273646958871878933234568814492095938235024689137400602633349550734632666834449098092097197153536936820110845274023980782253602974197705180752681877267379199679715124353170888846514366095347006424607606306717308804075714094103839752163154667925717653004048620436958027093798284132000539494770111892389722580004714344818777785515103198139061904619056338073904680994163578228059687900787621014734081891443415649412469333168058371555627871533689103321732520941755406836848789581086494030478702093103074960664412604031785649151064354914116510656901450018624312036574298693102466086007652620575431032632418516513023879716714687030077431877212133455234824285211526845950851505891674020014011125164404675380553906677399902562192784803647693853938134963450317959869242395897113082311039752649982753810329942088142538141177091779296948369125816926403685245537598633531541965908797776082644170423330013278931020900494691180657714853728597546231946840868075942625601409058395271360223905234055582408405610274556851355226322202010999006124349484560513571151705845063888941391288716910677762875883437983940525547589046892073168586609308927752578184844996809412384012639174723807149482271085616390716615563718989224248492936963861223823451711642418277277195839559300695326537412185804669324696889679179088174731346195774503036717464625225571085433102641475740674077107330547597215580310505044493514938615099910168686509336142667381196490231122094843615197034281344079080734365913647742236195794102059707744861707633757869448214422711814928536824783979698727712295752884844401262417768741606956088010705926540568849210037943619452018780532273246188398622476471744292375433140176737962679512398802319457689237768273775030808683157024642773645511277216037648945781809990932074647423157753616392900289601888767402047047950177457720061511894915114908917114218275621076375043850871219119950625023703456478082964149032718328872825686607525291696743939404076112189523339873539763027541558054054605565230541718138393201519323611087016909248124462214613010338537224074019325922845293561242297483618479335505453394391104730975760973247159623799831359342563941022106320218831643299839639227300959752928308512246177320794214711173631645248261907193839870345989430628859450200614430349230104301303961498976994664053736557267336299807944649655409959171164852338305136573124201965114184228024806050732797119888415007073014251879054515828619927002783176761864669573692264726523859452667112610436669421662759678848253871137756214771576754164291259372665148115362937590774250657105146354034363733712162604946006019505932448202621404863733362533992807164065266973699642560716210856356260778078847094934164690831312700992043096956306394255400147153299582643795885946021256809638344671937241923128677661103081033717218638914426165477794080483801642334994494391842053364316828502185378171594609744871316137635274148515351094340262080311829843029883110586663614542018002932485828936788503155493374992056700457996503668672262492151395092435688088621649730825458887991211425753017219563778283847144052193591442261635355568939988879689004017927683177419022788006711783596015359649198089056597468071099344458750920782753123819537553145375861284181178534757850445733799095071319858271705189966096656380745518725839111910062268587766804748351939457777911186671863939997205204580392386411172342144367211506260724525713269740142560456806861563129862994473912482609528493174487645902853701892248869571769021641820283068400351547070014375309197108518679764170863129478447897257861514866377244580014115627285771688645810969714024506481118658550488551662274748869939521464027709101261288193376125921025822300822280039534555078224455218423166076542044395120608026367141457327812909787686331121385075209086647883024863619804565350674927935772000403299817737376802621570293795213955139220986441110710337662182394103458755889925900238245344275133573806649445874234035589341494229680933056946525276519286764987967834238348441263028337382992021644619573609865778787049758871857110824742723208364497722403026719096662969985127504034046341179146414379461344075166296782671773185646256855882150526089942780530357737339204681654391805405554068009569724304614390350048694475995478138300902665138591761241253233967359710098739020576286183974464125841698267449311819394690732783895974499479306912688110074763219477652419608782843642682405317175746252410130065323954304733138128560613073671403420782230096383175823293663459921777197878578430661258237861537504950642073868616626580348956897338415141973171359009475068835290417698320100896802879946515030731852136724486141200749393473670130379374351047736913198687030938289677383624914349143858315634748104222085677923794617502511046776602659160943503225745533200190584453934626732773823332282803059899397924203820839406143353041171838472919836891253186755087804919359552916092614897056312423319213415425103057918891379040781835869924161749911055095319372813256390013410496321086698030367317801354992117811101410180360396236739636046212137572046192415671005120783668627888734118668730485460652035606007727453991605963806839465786428236345516605522892288472666473061620379471586388215052947564308945541512135133353164236394541993636075164966935449735766197712389796045554390488041956544850821947855231864410947994762634082677565493481758541820769806305337006924035603177193959132540026875630642834412328127755422534363267448984582719829071123750407697677351061745159532947817833499614929569355101780923834281852575307778867820445851101890582993410572214741062774480282551227564778787048913582531936039726017860803788196400183459979512094821126589292321906115316019192593408610298782281003723653295601914088320790796177996181335982183669085440599586576074317328696335773561346966836859977230706354015748064693543050807241220205142081814233066394362225380149393347983076314553983915360451995538483077736541270176068222752775508289521648852463102491521333150802327383262045097849404792756778244293067636789699912430660841641276798720404635074362192175579279481310600132040380783392901533849094660751670225065050285507456410709440979502428331195286885355721490518736410692237420178196575304055626578848180813661947356205576281527454985664634233546706546898326648681002469810245929682942001968171459140475057469659667608902911785518033156706161426054809321343366591490067949357992259177321882044234090950832634847713135389387371322711581268528838948918203417603154561391739649547887308316275722162049489676773894682085617686642540680081433976578815221112587977136536746688947754773227774131341368544419612844075721081049936611956485597857342570363728147051182070264824201449941778583990570426787640246640844742427763487712037133578868053028484707329943279575950622476078659489084670470211571547884973003006188993636574606405792337611085979347908947987877738313131516927416129379564026880258289505579869291067120801579281204946128120430046505654673219666847556208602681463581817219576340120533779851234147538209525787277624886096129709997200470357752008464484318109680885017616356947122948323466015104038360014626984832682728124084160051953637395227766249347783055039933966466272218580575551049321799599636740155804779916465320881542043494403678889146248943368603522812276788155874687023824792090809718492863880530210896891922965436261209360249407261613457759880136682111492706779744688901545498351332876917266197730360734229338534993248373133165766341121163218033316229371984733635354022448057424140750451911363351705913135194530974116715084536453985685655779899518957436483945055677866274308028197260093329655437667268416604476981769695464341742167394005379639833635903407246241791570540665851701405973472806060478507471841972068918349867122356126941593021832698158621150173190153964012673765060359684542731348761416454734605970129480750715163960034850321197827240384078715057017357352384842501939816493295700738764048348016336698659422971528094882752659151208305306155137384566648568942418858514952237816904637960331215311322930754054045464232845033739885182233357502060216879439865609503737497813761009919917600839781583678907766061459668142798515214843083506350612285608535182529268961070211712353223643223645520954675684399133787712925818920042369026183514498128404682083592227416065911803792143144809282948786815559719351789009163885431512406147003670772352957874570607228942166840690681730427993952216143578327597740732308599129324694500806270992408941027128847692920772171236051726025320935479943676244715959035405733960930552625727835077666268805291021806907177301444179770333520112761832014030134796152498540881958263925538081426699348112563674253841980159300938158195798680724651821014384898841591795097076151417072449481270734715638271067866612654194469925607540991639300580301851507475041689257934264703628033289660206558909263624298518653351800553154209470668575740749061351183904761255427163572609101562562341792253090833566110742699952741117750209239796865544708555333078815263675631600394158708810722605343796679560319859997769570300698010613593273819339175217350862908501228640862597991461110343765855168894490069116008528925791958881821026763482936440231921087148582203741961807149951531449954710425953513875596547124414287323256030225073767674851052234644188728572563622704505661022160125549428284006479381129224239211274325746248468105423312828771395349413624431269884020627037403111654367219600813996604678609544102855728640055555001935416032091203216739944393842916271054216169938800477749992987389698352756863389503013501935820218283268027207950319930321969234571425363165879048061845025906473821776614417316770195133330158830002002766374003992525301533779944326276652904974522630980233016630677190225129577719569988334062240163189797128581079607302800839903297157554634183979790083975611237188349158807225857680179263266323825698245666969930820287080978379864508639503706920545915113987646704508281403126286542416200015194465503246756933262431850007355076384674612594230852504452181734479937350761639264149202953250277398680430139280121467560036595956023214942434646834421329528333754291435840554026695252800404247218163417376548878704040676225235321677843076092897692693388262982059185269525424217918727678469406967129018221730833003046062684342269860433651501742022643906130139787394236549461651649964745869940594974750923814846881245232907171007060270930534178437918808634370897184682361593593905981053656661734501613001920429320394243655666509493917823045107749580555213970180304479271166988741518991212067007419648061837327784425350211579704544549100647102188118031280919444981498005686592319185768998971555894851795692575908831529457055811467721297675822811228490123323567313813604093020965611998958168829210986988645329968217694404309095952915717019917436365990422973499181267257715860464498440566691478049108456522500779827097449478953832353021626397909371292684111633657529005415448047775350714192369467806789075105679088690838649307253000201104795567126865527373011788408364424203428846401858665030684344439280245907439871972450309334723342458709348409586479429389763661012468027264669156555708434117909248759573470556013308476305720622907844390066033905935238329425942467228357460668700144437553374089358933914868295239012105679361644412475529819491027864037925424733360578298742148387491925976875154076452714318441337857601086696685416708120785151519555880493435706699138258547755002372584195133871101953181020277167388660358270034705457376706355730701411671051925310131510326529842636578175790655973576784783571571422379115643105164307398892784416598160092547113107229191333855029127737919375862768823636937707022298205498207017954300524523504298269137611485944795210710617507571140639902243595513459854148813543081534897417394065879639678773700998563931401671502166620065542669262996288545961464239198155559991886867381049459027922604523757238836394978316631388211179665325204281320431417782961643155456221393672628403310765337388354406580365799842067320096924854056872575096749380296498068229550319743397858861634215123687082956705710570268281616793112677347738819020025210847112619290463165447316287502795284279755755663643215609549940509125594279354764663348596146681112253757745162550083868833191543830609579831610677892713268829089706315406454655364276159074415298515613254972663126326355236767409373573320494839876703381137705701156792277982398915812804616023999069645140435465041602619756628184765941420735700131917977794992831765329720399669602788865820928068807651332242317798313690810906980194177421299823764191441813376945883903640366583868231457900876936929548858082133403070675185368359486456105666535996685467368893785602997417657183514375194875683988113188109705278055224221347761858177397691778376541955222114877585644711900194443067660098651357905041529910326798036911414129799018220600166829455207913375305996882856239610336164845283773621874346255419624272047687444187442763399883500213409863819177575304786026327638635372294665062198192365489571625451619559016921680590365624656377234189219607919042939379616194790195608870561569105368938022635462446692563769062645937617481479635585880545895409880364230101713444949937568543742351953272699287053132012180539862095446582292066045868654596947734216762329219761779638129572121630980042338506336045730080453015776663357621923688441476042889733133240874002393288630904886341809117825557142606153659543855334391309411631587108726865638891364489962926829619774417397899422643309694116096255185038703971533135678571018566542602926645525209875605234206367085667616053323599659173685568900052777576853800834504181907479729241147563163547714311467533525179943999386528938734654335782236063868610586617556513321730648956595443283706119311248472396820465515175098713092019448313991501087276670996016147479350732865419698918924154919366985098230321924333120980715329557716883461642772658347133019582260490040151593869637882135617905683192041802560271578553950446291224266367160435460574357551150983185074692462730401668435626605249587972097691324535027156940405610024252773280590793296074961605742745006607541070597973544101502035707871152630209490894496712479881719284779500998508812616704313554981939826833961639099213543885028642928144955122078018731951730468000287320700540268589276727554233393263871787496969632759217172154365980977619946415929480065908890882495565078771506116367229884671827450135186325566711278932491319153370168291378964305083206047795627878201252062295336826393478869146983609946992016097514169779239715117909503309556759736213789835443740191581569180810497758405676405614443843496026923074307534256874875401781645097482433650343763449777132588300897541246323436317413497348510730807755043874894471369630405795259631668485269543736931600710051044719862506089557568038044458693068655109427321039306803749340516511157739503827193319747046682581603167609430676303095666633668675632676086735024523904111716067234050381501297226290348277948703480740622804384041591475662085057676273534595775573940652102790605919828285633906881094958969700037583997940855963925889676664702789299502227274291149149997394502054214645502442041566105301272646322541188201237674677667143600371371237486650026030368598377781387915439438636011601527582085231414141512693685773134178094967322059998084025531244988253872734693104938126013485267937475673934480516342294990079753943792281039580351458300631497083040331350771852124634897078185603247437023085666590033490138285626215859687306157877710096956065360780183737187022130602562644602389483156282792705020912095990328516046802061726616572268448025306000860144240645943883046287214512387915488338721686387278725223114905039190169963881214990478132850702581022619616069527357553078722330663149134969961104584590630774977898318238697640877244648474913181082815243127620426935249286035599494398984124294803167923533539138678626464540424478840633119008819759633696543927542981323346882386307008545078436114129412427263620117483359230100029903652338205718911049018771521170639789511167259485778229975430245267948021726741491417453844348295854038504558205380796241725209622511623629535679098460826553022840234679294361257150767263720449808417663911314306292829851504674266480874270367674583624065827395117690443084294852553340302664996764944605576480905955775334899637784049489186099987101666121193928304663665977701921445748715140585938493215313127856184321722919260755177101640135974429717842519692567070871789437911430822563427098430705648174156531582972324040122836403417375592845828424474036913993515233132249627272326678157409877183117642360751347010653847598120092884537278890940404655913538406366356479768343158325462398771631227914898445771666034528877421345382413249841048562342187824290631648221355663958171693626165252427027642313772396991208460027548593983852674019469802203619688511220745112796387058516241385311825800516713712176177083730861895322744554635097446014674137030577236696574247353858970884230928558946995245161496615997318243570083691696081879078348499770122454316735556399295097674997938356134825970491655202541903538708333021975763359106883497244904900022944656820076724237465743473618662099202334860324379929223139159062556849188332239554219046317249484183325234172314159307900022228395714156804606322869848915424617161072093210130363527529879990192735592406774320480871669641891469355012856055535333173636457856247426382344153281419436788022358314168587300388976301870577983299421078504517663514341494094424518562543153698510403602533964609135700284186493125475082415495602305606877445440458449159544788927532370449798541983775114028731990342149679908892545905298005374479917207512725785777488393678956078063825156697261115737937349493646577771158953229718969600008855327653504085828053447950417423388700733972520118923254274404042094841682911338081972736361402457371293374046965383313453237642609102966818829744382617273144167115412802255492925959958624568501798831440249166542891601376812126311350599331232400265945773810508728447433008870275263446758681154315576119587098765544987471776851320442695288326740357514713814488747202141002370989869145059314044397189805925039518053725779242259855149294933593543242072850181022056410467819246840342242268073609682356641140237165493163597837624607074974797128714904215370768059548948296707756994819294769419054066934868945506505718931179179155555353168069808269775662736277839791591523012624366892455496342972251941564413802203162182806898367341717493609512000921140605953516935664083839923225717283204825032793157466455328863692195200277087810055021423412670017701643398692241972332591309082170058845107005243064229786232822370019973266251959872165387061675373243964089330985866418178627553819858480864200087153373453479244880438288068698516206040031189286342702929730721732962875779035148711020916491073872134794868852957390895581323946405270273658681108708609698970241226271586987309075705940542274504428948218303231715811870567522431791933214845077864578409601279447008137313124758750209885943873012611382407094557230345139762977498081190257297127378076313270200563887700110392714539428064698924079400841565013389601592478866908173075763914199710454927471170714190267417348605696616853568785802842689760691567427689339921505278058516468502914022948204274119290610610374830174537956848012828768839744961838552078714451183880710933328738302164458921583134600735893843403800665486666685708528026985045601540160439878680821521652654079107503614091151965100084017751777838912893601051656675166946642217089769195883737967405501919289024141207878715046669635950543986348552277636257387463226000803033369570536284089985479302094892439162736313612515631851168889874512582270335283644364867567385026382935362693999375615066892601315356219853445743998092852461454189798965964755885734497066631325755780761969741247609760777922649192131619625246093376147166567117489837555742008651725917466418662149008601502623271557995189837580056952451696543292644250385401931140875619733866851596253219399506852479079330631562023103539492873419381548574745628324039871537621213488712849530334609434303338639710773976183725247869037205875527019280172154881535654625432166273693930779962408059352651185957243686542972566288459570089740410568147561770670009839821322711776471446441110045798539509857337273676492994957076353042554917714170745640214483508893906486896447948157471933122662570096121316697554313057054815364476045376689478626100404059784550889181602727995839348871052685006342545059149333707708864986802297573039771205739268887982050369121723972162841022348355319476869046740100040438115974675712205771074913322766118688976074643705419668896178571467494891049939852660310473466694953024627792606540648266468743321787130735734337924401740935202000065487483056592777873257262781901043883175060249410533574583670859398989236535707501623443943022441102018653795152517843683119267570448938369204767935823684845867396217701948332904401749220375945307866741896349960262137767856043439951273014738612069191220916794753116392483926236337703444560255985648526280728387518910904913579185491836657105013301647612302977988839754797074116957198929644538515009396037532611140712684876495109650110704239510095131115179277623718422514490068936117188632602322414119697540500954829759080711001953604249092806412387733840222016775773268165796219680371191978730031118834883956446470943035712415781594485143114999577935751019817060725668653015695054006698656759182282927760391331039413146062937777598274460679295734139221605618313543186533163590563045579580327645797489840556549184027000873777544825209103202605313448197101280508475411344818653102558729506084441688972764419373170603678282083527966145997829919277856499011156052656336784901692354332373304647751610533966894694645240182786730389410884600710629045127740030091438982620380918488780455550903694704372479535109321220323713590293502178588006424198221508247849045729357001358165720069435299020637646748278982832516569159895830288526525592417607177075801305896460726390012521091472835787838846852038867836523670254072665673721731816438121671833854505354290525863015607104969837138261582279602643888423455098065454243709223025890631233485706067566797111156256110716437737281573706921343383795637865809467587382634244664149602844859760503243147760303600856050911219689504287500817281676520546393974019659979254573204553326577094555736228830427686962708455832362386761475480677992608105873478722816671953201669233986342268075788234492312340441385485230131408637636716402510915698658720744154791340345103725502073363992006130574974848061328322899592379115154847843629898572780914741438608167302352705556346092440767847171514354632655364081303931523466927764942289796933776536121232698819088554414889484611556752759191676233101309679809314517860991499622161422266857235854349707257346994835933563369026133849819804908759776123754626706569473677937344667260084382428621318673565596218344198065322768111119659625524453718587688293082878215352337376609225546570329589732030899329355483790209898756235688059113609046455582883136317273499674849400265390639422204257196935712532107570585393232173256724565324787661369947679817585387616493947013762434750582433235756444522722655901118927214243004694089114158672373535656475693928517477027120615372307944332301784752358411812470440041560486988353912617842981658207676425123740931539886401138312608354017024299297485568153339629319943079123835939644340420635788500511104296904069325585475718298349349986491135688190017157273415618106561050448508901064843074228646532274102753043628796820665167108574008324094896864240524707946883345400795214169063128045201904920291800809789264446734831443260648028622292428183573310644484096162209213503911413011989278493473249237472498783940442564138900223414024270096470861107952146084516189488325528399548189719666273774063273425354871891092458949141535623402674356297578589134881681129087568709463978163739886628021444169618283219272666240899556957257163069367995176397618471819369707206809610332499990825312099779714585108274263995529814679182318464991483122020662405491976089596382505695280566548884428936982113050168040787327639336796480067225361502207082467411652105779990027727970391470534916528324582591180322831716886053211595250754235954027912573519668958458617526416135406022191491048985266673063238950469758723565428334993243002456929605080423490553444049953595279769079554352021111059491113156003920746256152045202333965578532403663034337940364005473890344123707248267812218174208802891841412380960253670086215092131346782327381204662490824196456313759415912709538137825637843898831734239508486125248523909611534558241224960850219108948189707600138978147383670186615321408078833237542981042280000160032317406805950939167856165954091105913479816253467055790590483042191176135289850205703196107868275111344589183880977154886834393764012352549071594618770976929809418734340802018188497946631883918810643193898720532259920425638578709912272453407056078400713044563091461549218784608572772187468012547596492482841496386591232627475221302535994207339866442683388932449276184103376664710328976635607817918096226508464687974544504333940246034754564679334635717958406298364708062482993780360846640556385625380420013715194472893733897636707901889219584192769453876123076084280817770374435508768466153010322704636901538146884829669580130337677178906223300593365815561612671686839436027565688884720096409035875619561732264752747721967242561371780547548787057170778056868378173115813303501858300142596391238296061745361418095489145052226646073121769834595162658909131446738118681957634522659237339792693348567076735283663570212249954276229419413743538264807156726850248533086080644439765909766365731382474537330860052034927119706212905250767866132345638800586465756834209326443370163948949021777762307892605760305803043283392418874950546819412473579546483826996847732777373828618703111012784295112957456170161733202572993991003294238142524021089201612764943018614375404666114042784607098616963079221571375359445414079151867323154736539091918176617006790629702932173284995191991118092937314058631451404722719565712422537352594403306838883345766186591956944162265319546030649004643188845401171025599876644618267210506735262195707614607322827333254274838589018292407416032024433334704243640458661437850631886343465091211046732066766765075077082739601900436424629962898475630500706165518864637972900332339581157089154352342810657320114373713515966710268352679915144187906315547726135857559835390646490876024086905815463526422965393811513666215175832353032767697905484512439641429421698672425768243128264749579113778263621818723933431212862710258812080943708369834627004842804176413070589913111748674358666641569465478482868200188929698141056364812734080536871308440209947519357584467063388429613060099515839300338700134235227840034484785277766886064328539597434615943284410409465378225955161614895610877520787572265855845547495170244439597546813559862477041065139280122996536824727695925877946612946917799046665055728535949176928058437673608530395889855858651398610340186050769505351337464972182496743248635362528139523013805392318147687778639218552259769601288007362618118202367284107890321461010434862359070100386459803417700565908549255764457244061418975715574096574328424687360752530408823175613438796925426239560381594802936286668901155815760027011486719040392584287139102054638111842429156648706739825333333211467709325392883820300411582479669643700428524278678604269938548660401079771983815504268772692181758563443622903731121596004982873220851696115428362962860758300478217390279469427819661741224152541930524253528219241057767194209238012232779694843349309924088468159227029777635347174974484805251075706132735022730926870077139749227099326837496589712523288148265202180464594614126825377269683286404222146780568796919320491093233843972019441534615744428497482996943474842192992215612923282535362116380717441350748601352586777336202905212195498253490082057359749056997131335279079725226295553962965037863361437279731600963443384050214872132543063219471427460488105027924423955598859124431671557253974113540674661862102402206396312775458534555438197346745543873689673594765461656180599743042852390289180143458558162780410108503300931538395166510613944345346164957062789234791169496525329544327476147095075759379258318914813568206089969841304514371908554786421148856726903196334287863841947755971291162339927223012516869565431594850440490029129837000161830616123052634827511467331887491444496850771913958612810026513041169908062127112751532240918506334953398775192473021974348014920048612930606895336006710500248377300854229478306109055670993649933163684176806929487489067923471530072075307877794135751678349950746209884838787740607091615375372613042464492221433921099194903011052004037466107851268910860409832903766507565645290097689092515338333988370474375794094709748027942915653240903850577606572209551219067425755142905255397476810314947382413854105170916115604459045501488761763416334274972932516332525402128121070150922713849152643473198928308901666589799326722742246947863567769741702623837596580958643583455411728646697847070622159835750552656260650766167139142436559201008894472878448439509875843003821630589158442180756020747072467810522559491878329884783996236469050170019770968780683330608482769279763472748975912846625937130331872394102354546214968178040345673200960360808789262010920082884582251985500743344919993804727721722821819340864935797720524182678271131729214863961942645281640988435563040973889376582504055090963547911053264466733992673621374484717473035505255484800176001887658553930910494807417245244413883952254097190529700835021939507411886195896470070552498993092230199325386349430673245989335038761305205963944434866706055519202303732603572157306117655264779454288124722967098679552645175947781874500455142767247296255847082060261733117461833407181719059940194746237876226702079291757511156153344664339363786656076111185089514033166321955144361189573749915975982796616087869690276018095224435713907426969297850428820143099096310785409227038993590891878054226540841873580025720259827851579975965715250934161781661942840395134738261181198238407348954154263110772058449387892410407238027885293414159317366231073919103102480018152256633859338430075099459339836400901331988197193449383435104356894416818559645745214042036512630986604831203235514604888351488730664759553435369892078096592746814435789088805322686493027363804014977266042722507193390576152279256846086685817497038229834775324167825138975066042497751240317611721106902643882926234084933353257918414916405294354137758880921754254563522382490156685153339777185744802780313994551473460268193837227724000391873620193851739801141757526385188946761395600351924448792379526936125054560941364564067924220921025008002573433609079736554388033854949304053542450611856442760108015161064086105273172909950123728318307298243079286893446560280844829244714713634910495789178797150690427570522944587601267875008535327954097960913098601023318088435284449912596698617735302436720010317471712210110517020746722572571435012547244255784093659265314662565372294079143702683639247216910032332810705003383692107912448131800306690357639998375962212422830436705466141125449035637748570437177372093848868525204060579578749788896443142444412365700595539350666495149973377312189629615454328605258739926811636072649097957612812712253233287587202783545930970233847893913117151971437071216415839930537403404557712598326925871113773844744087509646193904940227011670904355234839049304435987466830640965845021243370964505772540214983425948151498993584225495762417412052474892986581477683235880720461193806273845871226918837131773721450318260352452585567996126864041794788088204005820426915454432359072230928314338562987682157609898263275110020500223844933087977501602220514786875646632385278787380343053806973300288892820799800237217475308592728059556536284937094035325417496534845587295740117925335553251414398254301391195246937392584252728855122925534545230675504124718973273642232737409234794669475762036217666284296729988328099429876073958569865979417538727111095379696416622415034992379840049741092225238490094719809189879707879386769559465067575484214517932390339027821122291877267631910784781794574718232407305549456068407572582211758588379848667423213892996935012950651895145561670249782043817380251549009892431805443791966668084892437378549786711458209346867088492165780817863899626438618346516040618946292077996092149400156574268160703288106871859655646570358969565848184624112537943614268805351308469605634993457329885775513721500565177318042039465839850477388106328705850285255938473268566989594723305429069572136898295105221922335088488802203414309561387596513590015717403843195612764017782696509357748876458183084100812126282809249014275248801256902292717998192474184777408185467563857322215034710206302216918664717232772465378733924846572564674480120056022078762473177979298496748565560957056612948972530521137720121404498068705156683114300804660175247951170724685103801633963513584514937743769246008771138791049743477738330671087264016726115497566835410478553397532703736609915077293489870177654802078024303885984272043729023683633346031415254381397343705525333789323900729904288382873475443996970881001570171788137308742322791280111942313374090131055114953343264963668605690400194890647117735771892738648904889545877040706496693310214514779051473502198647956486393916133424895563898050447875610710667259879715595613028127332552003950630797599584751223512570746368458764546263383252520511827261625066964524645335650015256894531770106763112906549937471398119227501477857460672170748978931473917535691951551724257779055191741934549708699323506891573078506362105420534712361978656230580922594155810835830430572558101372402761582004447293268893294676344299239242636848365075788586170260572598300578312796072423213606332301382838387080529494762674233118279036498611005567174505444119938454130442890397366334031970053893767884420936331806060034977729993851652692017131431014643294339549974670067472824774258820642243573416115670239209740864291041241804945084132302259408745410435825195097779677256866592588686129321694974820828461510725279242452898856866630174861710119539253967145161318265743192923803586017011297595469727721261480629024602212781071339013343855390190849514241051700166746617135149139236887573070933079744015176859970675342028832409755106936202388236119839931396876098357659589924313530450098037096874272251218541830039876388985497351497162122277246927127037804606043922898669144386893173291326851347518358039570035628932745652896170882449576324419850956570136278741445201064971262482541295808390336832687558198314875640482232062791726561223918632228479366934629664069819790705622141150461771462178751732644491788470613269306837552813668288808673109425645159892339543711177265183080426722853148301377984667487876421403480563056052777859041492733383633513532121017369865282831003592089141441204704140287872138525085009735193973589547318071613078582255098914293038705802355062592749131866018928546305314356109043389305463850972419937300749638372604012024789104415554525194732862438351784297267627489851882193827881554161534731923452279899127512490626767915980511977648770429322800370792272722225368622368382043127293185346047419695932985961511500860041535709008421814051288546394679960888563450104535060889274877680404554617441179029765342604151801514502339961333749596751698032980472846973202003848753619034419920705019053450111656015539322655426927278570971908978439764553629741165709768605509520791202923867659403645101689981351853336899473677350822633582170064396506347256038436835367666854331995957154282181469852787924349724409272066952909946120977858779790586961673519044622069391812928353074676379037404388195059395444613782190594558488465393084256944220364865567866183208151909943734087837136752612496592187351008200539272485913404702419307580119343487031948291164545438854400898013527437998111870301964958460557590987293790189474968654892664881550175307924680368159319073123509869140143219329462157736835975498694856478463383918737289733599210860732364780632383522511846462826584277943260479592878117931961667885964519233555872204912144525236976970982365681906507056644081590392801670084577603418051519053295197059861203296253296804501086769278333392307190000409542896664365785450434675545358132767192209666990593822560979924348260974383889114612889940497818120039005209465735168039537254925032106688108835989849190543468577537782509983821014575010189761973529952091632078629179457830367707165396216173515855317631415313267130567478986290030806959834877773452083564056358693700731255749930993354714627490419564466196520436596582791991724288956986382821641739414802575045934885803753041017489077501409092119305921101666869735359521833941101230747615275388896557046262023078701542228033559731348361727928761134551061018653843705555172141305052709161329353927179843291125167516618342100193575506924653494393343874747547142645445693025551398813178236510129853980881399177201279231477798984340439958548097435215397477330280764212551113316511441961715277492040339397334849380883818480312308785970941595764619556146589999204004185477034676924306456973431711554088875729122940654732830564311361340898974732123208906459433072835235225440869898143083052793528651986252748580075630639744838224708765525517148099064123593542364817948783092615590281118702854295606175511629714871288020621077611222702423932712257057044706641977526473282060247104784253309073483029595719023593954279860973057369959402670569371558072269522974844460629223233401249154389487474848527198237666385047805501262884366109575527538510553148837805148664543942063749093437184350042941428096784409557650272619198453377919539127796842777150652002948672489614418507582122648830835537867485260059608790020917639019310758421918121601600606274884710414903096011380469798623157424561345689896211810237891835851095313840201553135964206901095761313529184661690239325344908020701830079840406351609135432536526386599291442554972246858462549196402615917287447934353515528805791177296139392473712114733520395864707606040007114177759656586574882668429276338162908923992641451420766792085915867644578521654145242053180621778921342153621420425322296538733793184029308364450513269730004583062704875859474093600476742606986499862561380587092729177772509602994704788870298489145049761612397985530929591214447298634888804153125587461904827063962518586361677111610440647007670403445418140137846578150165568393154972048193199917796957131599757081328242849284184629523962113203867481676363247429681919634477208662923682214372682912421216966553195602261410316189097845046398294170118703754896718559775088280410833901114462589784344090110347567527821541476156187808981325485236711558765651028129586142601494162825859138803848252450070742212011549612805564137870166611199829173218740247182132431327030520564060956312950429697664381122596121654083039210897661736820509543494792381861408486456149373479250194884852174291392917805028754306382240189100328852999431149215033458018159468458999344987340179707919294179452747754567718988495656208829397954739192787355699059175169340543215988318539032162311807696592407309320255004411337450036863585742690264437738026392627997974366487506628763418696555976867814610941609917968402825187346802292710878451177324334242466889881549633978577310535189726745082691488948502006839666038205625826165573214873612198862956083681522591570521831183456789059851045928361282027645041099681819980638822314589418004595188252875609320318503727530467404818399061585254598838363218823138566294342048213768567497734550901826613843830593738043772176870612673997608817034185110888451027863172196400496703920420023278435628943115892915694236793034375299223372271075677072781835147226331986844300123630172097274114651573203728980788108573732803202731718081699589603900148839134026819142809944441965764231344829168119650310963416504607186102990155689024710945309919324595416058024518216888749429032252729396103528147130516021770511599233384316346329100437225678087615968619958917478578443925439102814187746052809438148820969829152395207915617266636776434693088739025394845541982656836307745275360365519715525356052471141213160848925734821726560218834499568415142707908590643847898295460470160244977580093212918386116107835984364872308651646591467539436812920421597187053380335292270423764849097880766584389605180111786115719465242944583383444067295844353411428089221776472057473941891070078306816077755695758819849929129215781896630484295838873450769978769449170570803782785342394474479291378354316821971993949280042048790718893811783874994570861379337574643429719396748720988733331069765997498397559085937346070949679214424264056204275991381258294240962302641063877310993760912143303263454522887573597943358664941101182213960564897744839466197935462928245472557165610847889263525029780263341966436244117628785865896560445949401512697332410135675484304361817198506473893964104840503786401320467309695943324472779452942210764154148350927708202916868490773218760697544751360931287547641771515689869833460724832617689293869147086590558575974852080646274303080854546683613622784391795223699254224869406565341834487547869405826530510540217238692024228384730245724257270460994098596919297233017743878084862864909047165834183990870355620662437551780086193103394344186601229315075185755008116594251402990729949684743074000925987644202999188442633190749790515226309261651792092366149110707895653902264223817637895024245197209725053739656523411586858938823279211643606005053593569194961277687970536631269731762027833227656430083686460817044603733130979331548745942495326030582509143949944558421678615904601156573011797803962265457134355070264933911376702354781867251174914172657816511614965828312731711386230478932884394928139163820393290790452769688742255566698814619531702401141840202685434409859245610785762693841508687709328237950732672905795286102650152486170608310740039182825464719154327467375622020186162309527735064166481478301565219981845518352949434732445571877142625600881307983494548004252575842635585160252733022282383588590984397937582906424527843897874977453648797805931817457762885487608725890512249445589236130650408589901028806691976154985415565035485742400421819143356480165794571924277419041939867559782504992466003247878852521783977800235401767489855237850935589694572685420735154778963135348352445311037508547157680311089266878491095015656578007616048318316473698790722361800884357150151875040340157495050898059778192279994118099864720903356225170141087180269230237137413607328391266298541985825278307191107774785200922314849230557201875902445922800116514654491902459541288350735366682589558755081089250957599815639987650150316703109650215360094188404280924537594701473800787657933797202783429450689970214238631016044299953967055254231294926285247901560943369726486146714461998371411133448267634183044022251660789017313344144060215068050224328208659541170666351945074394021089578832287385950489883404374342106628155455594358439503833884379466646909227606306255670137668600144004022571608965799903032550492398760693820094690045833231156120720025680486560975029016764036484445376989156294239084842638268317454915035713944657717311891783430255679712516063766631303884666145713738411591652472903629176840884774321624547562327592207635514052689779826815101629458501186399850138541821514991062057494301391881952544098530753088933310321168354362503259890613747658460630874858741720060712678666558842316345833119106025468031386791341824628152476423186844926848740842642924646743966469133032253672184679576576014826072381861541106252311950816217340249766222848735497277252947842007746729500065132170062647336564037315009706698844274701992573695627419160328311784278124382045260809173711878405277845725464727670539337017419771345426975007136628146139637337719288908490439192116869982532661990954189152793505938264519251817599902138748779742200587973862998100239953969707045988435416120756754233623692846471303123147355547200351089631546096060660202787631635183529725933215823591904916055932842409144175909288783111685046008772867413455567230786700105454154003530215326222089059660275573663021472755762860212482662989069497694940517912738607563533286975976919956075817909563531925191299750002644787876544366634826307277882764585993902118236444673654704969785056352660453623305622626695286837942623415873825032001456664997450643074462237164749958543946309251344158754975929376581419478765294353462030162195825854016107105631335862830058015077737889770720908802734595471413855548616875792470995968733407051843348267505652805895440722630525238848391582840578616726531597619287993009677777145310180750880291501706208741084832293478255114934118142126425978343317236371121908612427106520346795326012666992001189713824992152796697680070643255046050948163144502509451799410266362234563647251458659625782462027393937595895854999967445507104337902462385241926083440288851657463030644669872127858424022655713169598923317996596059037167389293460968642699347248148190959564060833564662135366031877419884982216106032492312223909753532509129647175647915022811906647804302786518461951638309559344539638197651513326100598200446320488232298460164226121938918454945725147662926178652751326078542081543846413136167379895212972266948801805133986474253967945655763727273183880750228089420526167406036555915771488073257716399313424408808785308087695601491548405513621119300293371317335925976833593710826205769033012376825278538911921509718864801970590765573631055243708495723731739654476866390069634086286550276695006629618920193815337736075617862654325642436603917879432861546665802882407169774749396877369621615135075032376002672645870405515728197057889875608391053741645383871079695442394939024697532571821711005252863382020913961304129337750598243241887783578171707670611864396441590621631072816085995183492604396904005201380233288289727518140384390852005514492723858379515645197042406737252910768446103885009825370176258371774123360396751784110699418563251051257080815100604868845597595337545362032284437507620219429575466896480100682417724648926834451179358049462609272889276833262032271767565884975458973462408279905452619303900607541055809515180623993325395940529225408757628899481874996765837808037793992034581091145886993897328229134125188775225805618542925558614291084285339602448310243535038651539024212253071756110033554313505312562013177576730845246423095031643673365063006274347839760671714674618984003766408579921803121643409578419970023672104580668062879633292132512077037823923144354578827077752841193425267612312142934719461259754683197743921217994064623551924863573983243948389542109089061903633440193976704717925959893076523354741766672411824076525232694317198934858971985812457346478960792252719346169852358321213198410064272177499563777535400685363978135923204870371123116942080028745325422947238359184806776919123884700239586688603403694102642078389663428439966016527705911368463546418360349361069827241008936406367097052606879623339327033986931541957989433630193174561919178431706464976564590385810489410329338927448673398285500401910558040882634446896333046705657678140472657745207121617350308846152900927839369502048902892296420751047032366550238060935189359298533923677004815042857975927387556798637066404167101906520034632906436507609576706854548703318486617714374122140106063012825624919161551273095337665857973389252421897827422867883661088257283529756693601412574937456611915620652107086166115021207645393516513779587793000978127994393691285522910661164724252091022359013588179008265201131844318314955978970795564985715448211141559236503413173552151319662532982817693707274689881101929114950936880955052774377526063324846937976959653442843115247180832228062554161090682590588487743534818120905481625074931347953750093023007969321468531965796417187652207492557994566226749424139742390774767970358987959551153745437589385648345866658627174110371038688340246744880761888062834075080868133422567534986805309163172802863688566896436549946717321621439076818058180318188257045302069229698959295809143903574985747713534668486318986888068930663434173204013008749422513508257263636378933396351205873393177416918131047606372360126376517956658393502211657659626459408742523131459064602402686458219260004123346751509620838281870509095681367306904023916531556370643202423433225872541126073293208388064658034141580519146232760618743832493378004922452704733108310163041131357354516122691678149053120371526224864326997758796844145047199599504672460669802009595884119871891737304339702403490705079161094011417293539349160882120700281003307479953932708063627897155549920350781900276015285618816011393728028776644081658123914037265503016751019660688000251875058545036825453367626104359124971588589085571326143882557218802418654035255517213397882913793472461747769170307482355047639298356705633066511353481341933038529838637501508563421315637666337629415934611350313846023396444230590489943657421958121973643340051172707083203034339540124340620236367122378501447313801515021728012135322983014182453475240961167496297344866427979495833211708856458310678838384855307782141107391073094484532736711944699222357372122363434446551942165476058085376819840109198373650763867296814848574064647452252231912212217093317715723583449001574400021033233330458470518631470581151120164113416910892294063173198709648928860388367111461402458141182898147303247440815317389076086656626658218163992126022831767503346412067070439012220996036676958073563205517960952423899862525644010845936671120277438966467881873260563272045933925858557010842067832684536984170856898558433026160476681137388741895361276077435300084055432948966396360328323328128969480385854057997360814940448398374340960028728752745716038177488035499005332560439269795478347993320545626554918391769052716394126204202884401411773111300805505209699121594186140498889902689790623321965851554347157244621120599834677380828246339901363274111557382775648863230161230614981376821803513540568116064039887360537150672723795074248877267671873445036565283857286648957564459783219015936814466166357110695795082192518123013689869855107837823666663051056444567434795033896808630946154603717125435603632828676183528467896666000702009874221106147357357795777421173764614470817155182857188561402077574181500852532498621137214964049622865471315233077851657899224705442835797352593739456563410265133534096951734172740453269932383199360852471224442997271660514704580811051199007866297901846768192308759899964808325084168370688557754873841233207357636393150396569753316782996531359140095365348401115344522266344624375275476346793496987316722043171577171035873609689758983850865658707420068564195965305731694374841600326601171214713453599529802252280941297944265975364995655246714878752460443070326554587133003075011112299417387348069878824179628222826295744835603897761688166841421631152718829066465174594728903173176081135799049089754274606237308845064792771678340068889270387355571692381238339904964952866818797197001162759942009971382032033753288399651297305531780620423195244604785293692530823052844338103703993849286549361255735552916538222610979436539546861845925927391385806839953137984233963267741148752476670010256459516997851591256889709241114656722933332108723750552584404483669033250306115357449898161246354523407081408896721987894048915348654063692466092786714783698369654867687871012255842762956519208227803605689749479741461281661315106240362425714066501108211881706579800839545749058139282156278485583111344647371327628597958607786345086913288523023770317569157475467604504288836267361044380972144808962209947333576058946775026849103396578734170362639137075803775030631090552024624134591673934773975725354173532164438377742164964646591664732136177757600020832087091761564979515940040426441886309054934089383083321572841033083287366306346047576024448992584514716578664298823097541439930179782634571510168650180256115276947279595149634960080921830851014860395078393295093298049169149441012326981536642693732332937559541643358641026932133592651887471992862249707790529341001645873446098421452363744008196806592466877788500242738947937443173294140731735086573036867519288750414248835570974198226493460578496741658455144523054657985604755469232619141386145143542779697887447559391272669498684848099875421138648452280518151375675511614007070662234021528621952913898749101673633084020660234192042583350186102598081274567985362023405692249221698721515973797076538683229716238166239430454906276781675624106933255264123696455192888611103123534040777569513162349596970713185297082823517016852901041094172701465846975701803555743518556772373326625505501858159639630643030106007359668196217367116300288255807850064229015336674741315678493424600385455655825738843537550872260415039239386723964823424913899875882637191866169602657085481059079811020475901740617494827613362000171179023159050780753590740868034682283765233696241484109617966501886011458714006310699648971571005714049045764595903817282235131122751557420726564999676439054382782815515578815670952403105590651057715256269525106202292763880751883204472854437477739084313882529270533493469550168742843759604988298436436852579038321344105391646362245828072788517588318567918732698312762808581426602047539417076054261033932010451903644858294740479350023749160829306131768262586040818973101247921329334956858988482386800337390108918288864224051345291029454282847445251403708606075489958414079452285056053259339972921677250526666165095526352346438431595757500933440497678250214520263912818182627069102590851232872780872520976584178862464155168300228544810803417948696123510353775174734571156150459181786663511775641038653696008996330113257180557747291078398086832701271171469210611566154997004872829319351369484919339341664649621331138439993562073477705766067596277321247684687051711211775607279032453979144325747427750155438464495630538612515894075759656043311044454141466934058765427369388640890602163299365919201710442893196855439757360082622213373529129212352443939028910434641424186045579362768545263664867306085107013122809585375116648044298260769459319230302337048441625001207382018054505789334976883619785290400490187622982531634279012269289228848111012953106085986704441953168306187995189068738592472626856416085225020651319031891240709138072899014003164972977650273943558967639398644756039019972179840602683868747254279823720640336059590960050793358021631551146783970914937794913395325311417368756088855733846050739231427358075033254387022148249985164423394175349287215441434117425594073845537953595208328629559704460541989666404616405417569819547521236894269613014856401008028388379142043528066651990290539537297433085204376092542949573597099002383890589312343218374172094487837334178151661303021914060797044951640389400385876991705695717164961673060280420651887835691233440089920201661723431813475187269293239850256012793143125006388549612346747496104176277964079237543818091969083865561906776753315592054777065890201799844503549707776205084421008821176934723766969277070101548664951994707171508551496956505208867092410897246441510654215668729267174373656224905742089161052375081839036629789970455347289475677326020069765719349438286090587078039142083917140546668866173512838051949338259275967889434463647278354288300081245357585044270535959535104825310767390895389679008921314887920666279266662052683041762839521987282073829934047108983116516630753668923688887092819489950664310295464989954536114181532543168591348474975327680154502405228880698097619807366913796088759256958995592459217533540881796557192670109397797054290649752484161190441318554012357008024178847045524604090295894398285968849333544382244390769294253324318488016201679144222495421943436979057488530496457730534605499428041959446955711766171578959757919279599494156593072438323160224719954216728743406025681078871055213971954549028068705901187396987530345581511340492276778921253302063224658602887737999704685498906789649946693642017443510048981057306296504866338095932826745632014205194615564220506585492996583758914294326899951302516007205297026669785368135158236951618112685283952494394486183062398587365577771262758813196885206553688188287856828268223417710624516404261226221696444252342072574088851644849906005299640032576490873724373513836327118973903754397062719037922282368331246679078637974197821077835811586671866617381217664834890174983880827586351567692478541371595949435742345823825813500634028681930668865427807925087896268656146298803504106585126928091267896603262614176919953911806139009822111054496531174377070093405310968298419066472576313153203591870679702504308257013392247732574721262293874030511269522768694143935713450467344724961740638119438523025376064857143948132929192175474413608255166742219624383245332582147980462840658459167328499923822706597358771574625334645103525684409366083619676817472312813404476395821643357335403568759058751677275396642570387421306068654371722237715040983638410484493859326725439509964763980324595694307136237767526946901456101854177433782077553198841827692796289614415831358340791410191444251328353034393840843607532488713855954795652155886206766872202434405530324809467877354758616843283648304582592335451497010576626940492256022811945765914547871329032160956980777818146129988116237218275496411804626515465693300101291797871514243729874143968219707331833885249961497694600453615256883363577068197610075829507110484742983587718949610399470883616986173766054132714182358542559715634238167492917256457589259137400050509877285488200480459288204318786140859040886599211299883478343573897896701806480893631375351071334649666969247704599426688572350101760787080461709948971485801755334248950669615297271339145083323977700926848955026693504365864977808930848770927717647830500756928553743981867148749943585178879714663478472832895813216943466130294653770248449244234836256946356814657745983305124594612030434108718245357202239213952968235659244724291558534625405712678421824973187973041086029233090659455573569164737186930644616053633929198778924325905873413881494639515999886935668316630301746282972784593786537278133976070347373341911926176107794170839478395406431851959122315003177968237385428938977525626790948298279097480521034666086167733580321067150528647098658261609967818340648142086307710828050561616383979758741644817687118786232631301575443944108060616105685243224848769317934135658009862413062826534365503492459283556518680752115834269475579049310179284064414935958118118718947793149599951853201754229241586604693975750491249602189110734137182777136015617822614282819750028266881568306451384946512231114888700311243032583381786972145942219620785141854501294568036644441113172344130562762787309351639496594725269225775729181429421569420199310569522857900861918036960544474946837541977216608793006172462235925618633925777104009606137431888700119223612080351388824865018715481384358641152242581959157165503298003248696231743396291606500270031089712576529099518248140531136916928955367319224396067288552766306665649850804075282242580790622747069128337862927332169699248961806667480055121823032084827875426491166254558646568171784776064693292283136530203972418407662702543914229372707010780207256675069154985739952395374551354790695976306898385755563525844295773591112994178613415411703265646514253535756770647300036291800345123919486323563908189196793016323960079237726385223666598837443056530888563679163591970105027152045768014197631174638183982600686717353269633290283518864537036112066023014879518616963064010990513735748533961725613832606074545532410728348595219151635984511949545839986678349854453349657879183627086210900857847157129647578503716238190762460719966250296573179277686834440416065902198382519094635387691790749846395231472292462169862099817244429320956427489454000730508572002704120627468084979155913694258370684024605639320588670295766369870230319070961879416709950538890210158903620931133641729796273686870040027783825985000907027370025921436485929596381314739628867916917649146924978970792216270379953898827805210949218276695464203962433851098544191566463827062486554137116099995840638210685431140058155242586152730991814832653133547215992212365852690197588380543144405862243807632222537739483460499726424220396266593251375525224401142088867750302973904709838906891787361006251575414108034916973129229100902249574168013230144723283072191281831955260899297810792331542439879030209957528586096412808993340115151866170604520758228313111097670920398105210511250868217395244097038233566919537189579127917060603445157388828247417163394527597406880881595542595199105232662940791753971326083045121250941810564254333749368255982892971657388168244371548320011218060887456119958878988380327910711189719537424371417222835070068237028593987003088363108182351720238803350409691637434704125902014006177219772379975081357034331567680044068221295143093785502355767095698728730262930022972737571435044820963364835100515405880602476739654617351195613528788163859729311232781835964656411142797803169398888572976448388312060033528931893336006301909897835673541400086412252771923278377022992340387810191168428221431588462687070015975840194572051668217567682325974340097496868043759568545267516711439680427916231348149912769065006438846519323774706283338100490431657312617184903711311227573715056095066954888443952270972820790835555385342635554911194838108823184561173987068381281305156516294976606319035342592272422984399302045502442820774190316764507749883846387455403729712398068950332192206013953666200082023385937292363278418403748853613334439571435000541688161520381565273614195246158257113584401036546652358652673268168895140435315256072853802243750876586530349914128315176119001655799817304697626094292240558909074977389443117232316955629111358917136354338485121655936910246098838998987580369102931375925477859384009976407425038211849491952188905492815474440763233263372067240850335557531257288036311356425362635644592531220318334110495188326875892508930006644340738920154325370460898980341867920368625529781660389542970221276765896310040297812172961993391232258332864609652516052048092535923994940143181621762386642717807959069107607939874241401005726361381615626933948576395567228319482247932163189597577324302663366689161888362528494755826690267703405002455518097024769037103448820114563756701558142916265034651174825419768487955801169525418752665887613615492392832297441393522049588231512088830158632141685135462384503397789747342585277167123404029273518582848265922207763417283908560265693728227532028129875896471843583861410512886075612750537699880060458856329836275318767027335577024394230009691382895239896640481149055661795143377497599626698575421768616467582410785943222480249875267825109942490413546265839876658252092580611532832736895165146494114201204993887803727504747099693940088470824326874418135801505597582240216919671674543768973719369119914012371140708180809175290829982943383183400500504697265352796218216719038837011652622207754391987216078387559764324343867246188796106130408665993540937201654333935050243453703442098448484688179956978202087022527836240545120406396857838618192294232437905850812229321247574950170835517220989742781807795717925306781583030212165609274711064866600612511095407897955744275837501814906592650313320332941563919005987203902965776456083930803932092242977934761679592119280431730372462709185682355077921465941340537573851103767109674038735671318362215987888766132958398566139180013704766998647289258636473588442654100952221413570576403276891541889781325329273118758050124368736778650728485863768749502976964995964951343906663553844642302005698591729780112682037087018454808033050045170748973934343541505225005118107275116890357251807955707203892619125660177022712339547451441137594598646846007879462902384296068856482886515750904806519361553648040982110012942143691129710800742154655744973813411339816329397615305232855923962426100692999508764971118325039084363327637728742001560442699154052585419716230659968634787772961340739188246830572088375117915053452155677543403501813453645320849292175699562989144448742436195089042769481221584244965449732928572684896605658014357428159778940074378551904461062568064433805296289180251667124324000338074467070692549508960514181366326919433815641391138898511363857008162094982943133582142084237149037115077336340429997891006066415277164399713067845156202601873697955137932269004120020526489366270644596602918555682571995804381986345205358812339702449487548841757712950742595715024610897851545313096245778723114513660134541474265140679270372859876540183308195075832354352982222973184386073329575956004530098850388089961034801552126922769060706600016270380216399342572318233555455452387677866690439414405762276459546427166950497141078950158764406352947118005674418016656101915633990560895138669703411538012812782066760431079034750647441473617087453921180215924648530964394790620783887695266273760138167245781910736085194904208781433857696667199119869073232365381833158749047990726929027589064579225895837451351415588467834702213613315463347087730934852827040751672843192117979513456424093628262291142725073439906937955144032351209608409571048745097315895610537447285797948202484410212939245070648420200321905449223530067215360775713625961015392558912931974450558054386191874916654277999347346664213459872624929544830497742959164007679393542859729603390209172434426622619937296095672579038098371352211114813015297187376540655661752385023041864909164750066885176987200965810380025672079602985114743480421537437349202105212065563377030758505219766931767138296031793804937327260494676770390084952047071087025151105320004094932584215368440635031431911218901411191641028269228026193327098603021105382413436123798935121773649270297362725838676880453563279518767148160736783341825285888271745177213026980163199985375513655098390168667040671139060981132290371334094518287635312060366963328049457405542027352503676897953334576841107853443497098940215815773577810142215662633505892081424945642370212221357783461846196802818045157171776736899082503817498064553963168629820538487572148058377627276947238978679672613494043520738372282456524059984244691626014678166195870266054883211544457051181322560859264895360819526358075210836525452409532151437680192063673648015867367203113828395952594448701487414248118886442818606283636448913682481222599138243248663062087266150750908699213995560832312861242775803662204073280871118978717994421285355620205106662448638612148118356718137691385322264956643529895936214536629779361055760994866990051043780374265303718094174683491566371850797331968471834742761148003664810836422915191196213236708611302305627920471631630497722372111480788220328723672801124728696452824394562978686531718942190979256830855410241049494416558322857070129923062988908949852320523829593423464057654599650218883968837061413928088903767926384593409525166891193748282634293481580652993486616022821410980982676991135148347938392001277715245295365063843085107056143023041108575333103434998475944744862568754553897978168361571179794805675721699328708533360259360797643585557630542836154104464599397550353301259381749163805625217722085185652370488187429733437797059255782852648396043710015124584104276915820971558911122423103880373304540916373918840750200899178690827136778054943212454414946389207309583955612099333590985518216031703648510671647443911891427930747009275347555351864908532530868899643444520463903364336331991287562518653005821091960031056248636511219507094060305244292424326030464131181690426386563608678480449777851764992004216802111351120383956707917468935594880293448653773699181240772951019529535277353571224299347386164726276529894202002750108352194809176599348015449250097555730377418201742957067750295284765414986540129996993798543622773477722295550325560055679936887841227516568738276719750420863532063767071341051865842752174658521804170218996209143476980480750280189996032274372728832348847999692348099644744006052791819760305597735912317847857188288764826818404278864069589951022604320387087220644716412919383386960450732288224355442624374384497512444146356235317048100340531063838446744078762897690662941863899768309094548317075189586249253501223665515046216448455366029368189450643490182484712961396778615008818051910714850690546301498762943524327264215619004367534969833771204411102422864234642176158815439212535750870076110605985978622747000366742075811991088912368950236651912830009412493701509210621359213801979326888697314792182764204426041529267921594840234749292093160690637836179073436842439344264210848299444265266894825418770862885839718928509613402797757231711678135635091434338015451662333703983693992240487042055746089020679747797483391748732587549608020471738261809569500599080796234150554466603957083681856919938592526422764744074652981303227144165206345507729296432655113647746202117085393845095862734615784645291246018766683270629105975196582100109551868501161884564902351886695133699675328302281373722560217317904446208159051998102505144537381845144497999270888060941084556015120243842402415150215975565506249921672127674552335048746742075377427251523126020054725440292682231265377635429576488633480657427335073394481904746980153355708492051112887722094186602554626261773422010043690858063033208765965018095096197221647945709852110955973138826943430840099450909125175572839603024196662317401623891577513290620850345648787720763295198145868822671624883385152907988274312611650881724211172638154795717579988386024057994771238403704350207652447135924562261972444572323215859420926272986069618195528646333083028024152243741203722777811742688055344891673383448507134292256760039388896618823113962525479583793020286716265866087083626634553769268381319436232623872095290021101590480743913820336838539083985923710587945986823215404508474052655308169066687625600085572810677979209829731885162559360895457430022219719336778564910837044718469687544802530558887545224959946737114323252180516559506720923165647173021831048039354296376057442333738795654944299101692567745379579098129213976830727470540430394600629721061778672411727275331700782310911587590426216538345785489064730725917012526733923353027928057118976888833487550359927359369379041749979013064666406999678641212780399452484584371895912981178776586981512697546330734328873065956533601819513982089978472418204825094338783664543924373277524530727402224953803679730769270384333582346898356525038290396534103407641173421370179660721464604405065901514237269955165034343078840455966155725515151144667621991480741678546010003131272129925088679527212055803314065071919902187151147968505939320243760487161321073828442435264823072169649548539370685802786377926235792787668757499452254302304880269759845120999946287936890384849103921763588868820699352628634733368059508587244847957934583774591255261856011452239697071905263951126000908452700520431486379030492754774590163750538770803485262953986100010862064781060591030643764409443949808951033117113507251122047926871608546814345215907416533776873235279937104214405795833732506342807943242780760485739225650933093757278628590460760411699095504000756399962414992700523050994297602464973667332191753286837272795676181619371609440505607254766003057843362653095986698004071710567080152357027012061235253773637641696145030527929771764723628605518855244096966660685728322302298111530772012160408527243355635457524524898868360416861314289831622471942674164320465211762010598351800544878477820515450489544116766342366793314180706538649129332445476866832483152167633100275233156338692861783221689353982620457267052403402722925511911333440557228406983808252791610193057163835414726807792650651515570896500167579216834757925348431582972024958639542562276007785999557407179644868834834473248156336397352283908764852470164789757994191403303849035108630843742485776275535697144195463043962464526438841345672139477571573819750363719779666339274012367037593243967549908666523643359720724902751163662211298931608065320109856788913682999545585337009851643212105235605810836133075404323025531285760964730769438358975972493125539765594956880165612586080266027408995509792129742030931891489747097513807259914456860397457237176507289177768380156967101133265065884317565211784672152110542898829022667365962910161756755518598797890833330945152231070506555908404153128566374749035187322665679990421566767461631802573318721621536333888841189134822547899261926020137930339395543106747464610467761605418203348445175257142911419530506413128345310953366584519814404858758331546376968001057775643878238112769260999423302497554966299003429689565183597518169026823899822429924048295984079998847051984418234493957405692701113706428277906904256545008084876035526126921974016667214648426458725908204950918233952711947983688075223130840575348787430507976623144654361763427329319606005576770247871734710166126910192658903288262353854973442335974335571688818559224835287544424193624551132652325400276612891146323387359152004055846758848112693974677700053046455222102392417605955655959019434731668171320679045090315619071704644605050810550470837246835961866234822048603149819084503563943619489437767320237712356814332671330948690182918345732076000094689014999184156918002890266491529090287083184963210288292544613269350100671093441451627105454408951868907154339632232350092641764449224282847964091267268755417639762409668967492501147532001295783692376211260423365164197006610990753808673293884263880412200702062210221246078531439690040655093262184708040840894978140982426707897281901103301955394049473574697434747307606404752424588720157937477893041959639835236162214613064456518260099374725387597096925471908294404409427704351965123636059066062050030754173266001199620769120902819087354965061490030030478533479370046730158307785117799562365206739014011886867025508358302287630128643799721207434716061442735247075635793368773704321304209898001934782476143892468032964731155655192304740902944752620582258815119595805981060641916552654857044106584630532049993586871890564258324457049504595930759081271023997213680571466565300548081087617330305074344352158212705971056515119589254015649227524027018360738983869950276677716016751934813012319302269644529724376161201082219203738773681091186607637017536112487839043652832575308599897354812516891830989745914651902819998605926295034062377123324132096811821343123105300285992341321533185311851256148512921359864499206760530592472654277776568593352687991752861147184591886485295483687888715899953365235778520148523370479669192824040296746188975972594072393107705103103080546572272036840260687972042620636529918593982757476421252059328720732512799681281328079882040419598754241857971727913260240005992640013002900031943941914714029503987434941102844460276476703144218644874505175792705456569750296338224674314046820155313719360201878012471956288671643533335182002906449237648649141052313765075449172061790389992831802305478347301164184287434736088510834782977221228751092076013242675267706797086343427560653548072177150167865338363435116964828701444971784984630625782473151109301500346914811005411613288009760885236887896340653789154443822732735896549844511175925412532541124287026018589040476229839597297602455008714388268807466714489239233989371289027160232302963062118538809729087990788254223104018514677347900234009837218363125849597099097672256135797344695873971869205018099111008423392813381839288440483607997399065145256536323446962518259530340654338688403593328996205568294944804318172372251613173253791172291213445076303547250696735392540365938008562393774383526003056051862006739436658521688184623479394895956479843486795068395316893788980426478600288867362131268238114533362254689459728234050431765491379550535771596016541067278459423520013373927574634602193390402236151569528647832711185817634373759151959786901301086433650354419066889824637449013691640027986882424230406709283219019133196234333060071222523320751838198862178993326429056853855666378038910780004248094398712766852105914076274816218104764011412370556840930567853154155320706165812448539324690950637402177554324454759576724687646350225752500679117554755750632284296275239447406222777893277155980766051611757264898795199006907286353350329195791879149642268363458760791699102626615489052548845871175352991640710851867468114028390456782638640605504212147902183600247311691887963379148887519047145839208718953448482292411783449708180901923971735644823171957589857495653550469047754486796357925508516150370786507606568613339499237846187594828889597955905947190378203407059759846396969754000681034834337216062390710243438738161625564931614562991194643520168062352458135298931499281798235371698808669791694002343508754761018276736620895582248141435084427511472665599910275316035835661210766435869799506037033245135228305478008649803939263858173894442844146083740109938161425180671039519160645149494644321633449930095193117217268637317871616521654869489211310043192596091039163976679722042200689097479202337954688453612516841334260582977234459731958146335161057682330720285344225923440754187568445760970420375670655602670123344629638784834601741912608393201612690913748633571762541077190575308368186495444853281386663186620933100932322453236165375379378045022612113242568554019131616377521028604451007425885547935916977539583488098481587306269670736811835916799278155054355245801938554236014804447596946723907380268538122696623411326095492264104453946967195724391486698461986328189900934174703155874673753943839782390518673197900290420992214151197771574249088455480006087851947992803212009061333971943124258293193576290026718702048425834421789898136206520772902020823483586319872019012749553455074752056889463656631109200834064747619352901871899638195516347939413913097627632772848003030142756964353934829223576794212454558579720420904538268644766643390290862895197659379644326736008750854895881879278801839266666839533253120111282622627027472220270842004243747339778037338235825375145500963969570968893930733896105938776691384097593424230984594916940956378447870965378695560094933922679331521444140608121133174187846851223119538467376800337275899886794271674650589846910901792143832220628733744559830766200147180286640754304941626658230931567952261010376149861883272809647239399357004874090926739770788352414247738107222171860845436919235450698373976450859514775032470996774115077355409363089589129215708611588841632183003941426089933064423124806446307401951065392280034310489584066629092169681238961098350245041754260111650818997399065009214835430463221118524579616741785801427058890504435592070208353587339734010241556994303739834037775329851472013267386079490486933458745780726271180306862953898964711629182913471553525967211427165732926648844534495928416435865214147608433784507390259221041940534127320541025160396737085940356014350866190246348161213972426023796885800203996683509942460581922167902912895168640696299435642362801840979239279965484364378441665060820152833173749123664869166491348615161567567792398814268435624799955800233445461763227774189742577955852590087142901108384587973222617647718146230204750866322114534929142989581458741182650393980617193286630044474340798898854095687145974509792202331236078940898838813728797816502204593545068726155769800446274745896343331514139585664421964979478367791243204448490330725693705176269445174241813891701513129850357531150071060172149018917073137153181483075950614945004843484857852798095368551317909728595058627589444971372676787947337699254047046980412063074188405126585113802834935393884962228176720251034328512477106852249468049119528311426356325173751472930354396025379811801458320043135038117857147731121391570992469359107256841131054257962678497512606365313741296714495050853861799019289740356674292348455338017928932906477068581254834374100880410074743149348778877356789509397117704960216987626964542918070639179872291902444494187960230837894375702354044242418816499043979856605271890581135531849576592622163608432488334961392711642397701532625753018205626787522016801099086029016677091771881536899266301980198250348126714722620370484132741732327564823832671646842934537718336006824102372901679581325574877169676279125437735256734862502999386117130722752328199554354676998686860495322374028189729765226265102670680464418708909242084791614286132397082048748018737394610501544533011933579054124298477056406417097619781045279719944621705690414952729771650663671196007160938071371337266509102652625758098257213773998176135804750630881609996542096242953411198092727233205569204565173790018094314654864814377580809511942597914058281332522476033700649478296495116480409356490301251852186525058949932249314169171073840134648833916233217524350921382583253240887039722045399806623301485332634194794049923059021563817867749620260933161730003267879229354283869211887092667034935741784512646531841604152322762150392891262309300770625887304530331497740492985633140865494940878968611969523316550522935667740853472341661391710561553109452026484943277402685997401296105775038403841791014776443497549958319167625388752423262510399072609527683372910406658393045510321331051042628404263116334986474286041267110913363224841054809772972063703227175967087371136678878735037719062737511833536103382030618575568383000573157448611517517951078950148070631193420957316264281149787511049684081043473603857593749357150005533836820249375022479511617439182634477151557062745446337736112509248075889305137381789176860122382037350586884271346297131609055084413089242575768896854460531168057479308204088456102664444651662244018370434432281195623017937972246659695201679207205652723445782902977741850033445894897037493642656799075025265059765111401390224634970737682638897067420429543562209518189577227799149217000620180917715282994724853283882190367591102901931026145738870257658609950519537547750395889104868258405856940330324937650779424905367308510395065713436508028489704517432841147376909293557017221254713661448364380248823136206243746467020528676891185275142984640908112095972065014540503649646838042197895371255781556013377321195022597239364197579480311359754031356799216655082147033953722361683663943367193057706235179543881546550779920409780140790273404693822129423910242021930652706698013407411180159082601274972778661758788652808135580850395478057563330839880616326159132606104311862612246754700130156208714457958759844891943036141588438751627571094038361984393052422383987930663175702545262905201878492074366724670773476431510436499175671942328841958276501028434564092506480058101545581111789197610638292169334628776150605776635194342845937947640636135122445764825102488038580285331236727113406963802621542710816354427948253014115154980106510261891970271205305058601979552825961022785116762461107885637607619977479433772770050744908910153590532628910844415741355145798743848276831043394764142038964728675017974738763117618050500778303012294215754994688235715642962005266165599411035443109868826667533692649639225857889998991823266551942131814004637624424786525298932475194549631397093895365197632586932813485378407639330773905661440224138217097022943130862674534992895901038453645920310554880617338592079760826799687425180283448117283515502937206064007811321252291137618117676969193982635334454631971910211258485898980602666345852966280813744246262994792662589147433566631719496924071535018856852459445450530435681226127490455736631303410501689970486652639624524575574380287544719312987488635231275666042428568770153339481561058816929487742368377370896431039507652430176493308615223866653630788442294992999508686739468630665069402535253376796913545462136260491332795449441830521648839773092544359056520449022343621755357480423689228355019050282637673388381486920524567565908899921307887046407277058691259510639318289379208334463512050728654743648163185862335950140017924972567716325914369910915497751528698211789705622915731578667279983604794105258088977919418212843060605780503537934587370982107253010182677235691089441791573544310401828304519551980172356988172885372255612163941950072140701637912195775628221797385789972387907887812045594317714291305566607689129380035053191352221959423570256685898888498772679028017041947304271099410430920209279215349229003192104558330120405374838419850963511636206947370601505092208001452709029170422622981162495918843577172035693340529599226732207654718033864111392890448424990555191785646117225625442915770244793430858009627008436840815088832821592622041315102292400080394980084608733326798767964269464891802635091080171217787974829978193430423259955206522059001809091768681694883977295232583988513006686996015973666297562379893788146023627332512548198722093790054821108519276242356656917527561226945729394552396118402683377985851294918723459075195120137804953252452528076358450765192202654222925331392509270417984466635495312273964222513866480012009219026441148213008676380931179490432833667498308137264060425177663002753838700391573714533538102299918895923882557188361426158600541427468273500532188806102694492126383539116306403773847086488644147541158670928915363376613199890903512730260440121400169832136379114332303015643867443385318513858988954346019753136333003822233786122426195695655677503871971212078344279448881072388540555160351914194500735586364971428074383306399458975516827718905666503875638121461617601973062870578435680461013477807639089157197278506448648577807900821874604015996750947345176101192372017902042518783715661459345874375325824094427486611041952419143266930771418334726663221587652690860562353522115468998745959410137781059972028060772958570819249291428494609983264872196559358252801803342647287744222121337902257712784164442583153827206169787021235233575753238818325051157919683700037466170656468394593139534384311910092353227505765961921612536195810899748531975746145016017888588080813543697041524155915448076620663352158473309825130484769417321632381650987889849393310861827116357713247347060695205638576283366394821757081032919498271424874685525015291573313911218376849232044158128265186627222002225151862914516416821096735249566616427648207433409040995097216328866085687441150891437101106236479399462365348061733264582803095022048758235426502076857531989049840691536300577512268943758693236132511883454494148321881537010743212832094810847144685223120519848279167504332558359295044434878553874718346247242247486534818839684270135050865558947002730509476402153292337103903597582497996249767777201248045890066279583464706647552025076599109598833584892265928338888363779123039477250105562567843147795095623994546600920971903807509535683103846837339021940211925530939502883463626074052069074517851755638118059889062932678845981904984047822340225146034682664190988440282584778547999425129491061258763614961037699414004081444661700179705454546480865169921103375129789163468772394707431681244317824770108660256023585145385358680119077051211643643547877495340930918861684474875737802843532012347974998802017707387621015050598948462835930664448613888007123321634690627729633473302967190809166967612069320759215082406049917825947079390280794688640192934351829652898639680690745052560401583670201664943914348461029780753514790466241627247833452542623806100750370799689668588550938939841041064832324466492659315022981609943658187947569432467860077209097720319426680178580941868882510240009555836531549404341815241133173183256659332218175200089722920401508693352855721561957436231944926692023446268564982910438070710281523596721588524025356696397572192599601426993860888732482317831039727938451738428806493601395563150851944078187388951320232677019136245392056376111849064792959742062194605338716529572111822305013236730636318971692212415310474260279151501752579157330712219439669157236775471564205970031277533467280158443464503027578519997260098932721075221747694213358303296762733976344123251498361280232768794315816357271220445827038773283719033755670477597963923576483933905523490542353537092320591886936452739561375513858194108843661501347887462020339234412028586818964439935961508302822684842200331351418324430890822845576741258888788281693595051403032754559337178558316537345025255656157788683023332053030482762542064752550079937417791722756531115947490812066474088378311186738861925202714780654261060497617110399930335883948903503528671458744143030833695616621314304615820421378632258058030177159468155513953314677584647431488977572776334479869489032806391888146648456385865551026026756238864823526563956041702390342436363935660050068860839682246157650037552700635883819892779918658479770404186664468951628581418148953069088640008395902319433985012977258383476428906656160965599336134821826418585971045090886659777294057905494766601488218813642887008221811008817160817716254707419977926409251690189605126756824756887183424338613835107330457133693406368891985817683900899220866905154934532599325199889830821102326480758758846305193202514419016069708816089640661551401509443915592208067230213586050366989543334554207927358616211941063040962372907402675861267701103535922361839017773564520420114423074487460264248555192926003042919163824167350131717383064455804964301425734036134993484009013898556262855628738994534072957502506101135145154378656890292410520972299829071364890304039946036842827652395266384531845311915120957586684392870905552854941547791656478671078522539088976123376190083066821358230402712202414325509035417239797720456188730864774854125482425090576180435043997734551707682153623850261240424060437558407666903263702495361737681999486586418735331604593698664224098754837586870556373519696719417112545732667326016551825481774800417936329471605308443093604424352231312891668244074032660668482744643651431928062459763161666451153792438176695656629354595213521544504383552823446527178017465784554206030677586337052359970993771544891683495428854718635266108713972812614051308180273956930609389277240819160874615847182035894456760967611849127555370595244661751053016014541024578524005857954578913552797132654090984652750524706341998684345430066955582862259464158089735485043630107057948810914737512792281088644059886795120588700828498917277537206921484022541998912544678223447697628578355989125984814982250741642475212476778295000235938469760592211827638128366376340070085045500604198387023311997951478902397872168929863475496117464345517381544352282130472328613641726604307834370362897731175007916796276513059322557972263900707758141144490319239180938805939364190415852366283404271496389670307126064401474950212575610889190507796279812577886540062218196104263340665584691103149292462686403721907022216616226778145948877301313202965743659379242163122148098015290872150937471809227494700527077530766338684468738856800870814656286451643695358380650486764731345525085277419256751596214443781511057068950718829892071924983258604892576532536414217464986927742755732060775320946323226497506513167522299359676846907142452797326364485558422490325437885757554442953075447337721835995888241421879842893987862881684946037677241146966746789293927532069975412765216268280840015342888369245878975766107446482889716773683434707858492580312474228648097815521846747864035381143640291644305993244725182687658487978147416163595116881419082303993132059360141062906048536112902416166683020446120968031558557130207431574266341940351888034112238908961671450806921668924662791107660128047097317210896029339345586671098717195223266507377681969492859051013543351218998674421534010099998601307394946485363530038731272301650573039123118045358790566607015215539158897955963902778974584570635536231639386907694435631620281010519635449559403658106449665997660215063893090079051801867178597840341505941700960518507486094117397078597623413651247720303815432552460531581153620006529109476178355318537180861256113115346263736688765800307093888357866623671494737584519188580149020528584066017973062589517725612770203430504359852755173459480214118878779201824365220942854744619414871995431096325589557772246005167363731253960590662239248779836048116497023110793116538616345897972576662157454710604760967864275714235302392850656030749867377214921661068168750064866377910044153261386640968715726600827687749478650397112890108176727058668914962503166694262892711225978946153169623587094827118475258935340333327176585577098207351384382606260094140787038830653169241004310007652688298238024185142755240682606005188824084362437158606132896146536443497280311823554730250341199411370886119833762027067236762851885723833691814129623306919376505049203839707571991387824282691848641490025128829424231708739185860625057658317413771763013037319189027158681968267202827801059515119467471172236292806855715320417961759147232778632700722419577242175035372047033296976157075094773382928020303985991861638695947786593339346421969486417208703838692497096931208972727017336604681779824136452312001346334878469610103935879879762526792061376240195694323239681894718309243653412338768846084831779728528346939479244512467955312012622284970053949315414374565312447853601500859347501107489447454807450426003227473188298160111586006373711347487169970912773494427524959179245753887895970288387641834054306741173179236526656968770968419089371074549643803423154188320126699747774420074672682368134583951377653035095426489552639792466204518883294217438262649039543990805957149531549898261367178483414110454691907436081665408654301946402567890328669179586396784426634840999073687333107869004006152282536551479598075692590568266389429126014182414206375974585982366509782918414139800938955706539304699788949684796273901912473611932527242863525849705286198480155214534887166522479247184792886112363312407399492650049276514782992072419425819766470421997568685391858360566254023068238241180592593274552738435801509028017636459371658747496986986653596221920806867749079152672391717144790728280958385547542453688330045486894871085481131476082564953601576065137125060433741731601871862116582061741326481944832374783854745619114779956993551423595063406545394617137523717392284293382325152561732149702856638699280782908794614890393950444744267053892011056065963898491345984123979576083440544807110447698447152974961761322378194642295649090736567078942885340669612119115515931434205203067483705023027655693148906009340605562203247834922385877455805643504434935943931310451993573195269436410103691886527654635036117202111397376171871536083762898254342416323442219443364121472865334871681004755228140846498225294372825837389700130043141059781484984338829252272019699583458151089465475543883118588583031864195475016599839378499944072751124399151256611562589846469224875098233989112288760060945356049443515487805600036642965495437889197007941082581901959828703428839052125900087516294539038862424537357831240650427829440215451789384504223300206377847506475765236988379928812064025816245960057775317699569368201976396538727169867427632682808804444224807121604420189616346327734774755848862064340432217797142831376466121365620719910806109769355349814221003532982139126423503287240367501474751135145426035336953668219435179916495666734960668855210057795622346161377514917852932336174658784103923338105161187604141310121755215010509168726128730262726719444766718950764572891726398260933014380087023922053862181279325790523243505154877446230126323561334778893534123082076116270464856672543604005040854569644870081328731517870701775151479954590660156098825184969377401357202301774500660251242736308393770400922837272942155247592963789066916379502525612066876544066839124953771440290529658245228821950591081859818256019049499315061742059086758682935530803684209215649081870777837829977925741229003247195276297527850159972475345131022509874817242683556526791955891369017506844050813303768440062662692297784918981722098826534304778608347994148070290349563479855581149747484863528785341686346898148065664833330537779247712505251225613669727882218360061441981389936985229965103369443896397592581146341798403478133689408467421073258662504346859121053416052161887685898016605963199594303779995074343221737351639919367794360736642142998887462666394747997862362020957144923969726083631246211858179535533718071581357172585213325434447758653814149947067327125722138959241696886479544078008798280793989041110712447345923987183872456790952026233276597849938849533356460407585560310924859085948829387259660637597304379921138760750930637163870199775105646723510983233225838969785231041292693125445654014933291591068980985924366031842224182238397593328551817938213141545594781169915748210004581903894808682786920407037436072630775568244185817143053139375361775835974942635787218537661282900725891288430035126749995356919251443570413319071507047602684563442316938031070613561240132681292364688512483730620001173158024040968922137373584441553943132621278800077327659799852236036246449741074625655911274975620221298856161041557818524120141906506930951058334180155539027280452127894047892219886207441583990762286374647460223133474493830710712550525957189577547749615399507561749468897040313574190956016920354582232353917047860404348374254723545112438035825048046978478303736333255550187545482621420940381194634437350281723914584418041311819370137762016719082195352518559520004474059076421201430904485071582021855020152470954812521186443021047497405715434146789937444912564456552360233479467982620813258041307778206618224885535350991014785667188518871191951114572900723645697171623860308543900553126084150310606850351156572150832718622200979022724799183715165297665015981420269689360676452215749926134137900648398525030779982748541671536338369005809823678903129855949222226344176472142840289598906305811965636876822703320778906063591055021847025469606654824894388908213448008550171432736153091668109787005168566950400426823251853509705102437606030128258945050007888146160764167617675362853521364997250091403652397954350988704004807626206412737661689884554095224001561985788644545527917807398933216464787958038507105502435296421007306742016439604236246547875014813184578178194954673865185224803468272608795339882464584408492588485140123087555546070558625306075419782223699807830564226758335993897159364099506421296525356335098806235465633289621136578733237819317757523784251050200805883658743519042862232682052508602534963684632438485945256092060952419487869201987113260639192694688935095321629614916814480317465956879139125161300019386877237888883598566884993016522041109769276655589017448838638948721682907242557538687144564735776105116113554892483649801526483339414995671256816324671710222479223979742178243980689694230440383042244149867727548570319480359356853656838222808489034312823183116553485351239338147268747352222198493691018467574209362227810897089351314355636259963048310168633686136238098095212784015135002497241449494650991727558762867172406658405670822163500153667114571925075135646654977441444258873776199399755899866976757628604472760971154130373251005358459010504495126340355947361154994712752900120145365435498920437670333008108484053069908704659608017551768011306747037266602563286968149427115073294613132479757986974008118070507111292796628888095236095669458736376551895688565606474158238392320474515236157506983661257441519048182148594294650434909286781204134338759191748069228662215710561734597121976867094754991171801627630123026063159958818343708924552897420749825515233064780201264846582944338880028753727930458886615077767913325983726619423417782831719927354558231854662084313765574926685947649134731939144498451315663494116986831901581584751763605986040606228371966568124093450781174331278367613389255438674652462101793589385219867288412061451968227207367057277272319390857874008490271247886966064216000055555919930571772643648991486326024654390760029978276070557782236103965000922762070608414239040280253529305147373157386679436730755081421938425482595629350337996427372668905483953041515191853022108867434605426676655948298562116046742446892255093951465186257598946813024172852572395118134797470867819676033995029586256573953041633806425829712915739011484709774289097523228764621599386141624452156973518773341009646469691085262807363355104955248996537122799886320459006208098506691771385189013750862665278116040499455286376238612804751639756812584828348006650994503751953962249271707597859725713824102091589757191568661176349845848905382670683437926353575666683959370485091497171879209420529027277906324535784105134109481231520596014386101565593012098207742639262124275541706245568541608012722759944681449730316724774457429698243679205378160237851009609151706390721916448406362955456898070711567396285532497070384546693877860246745784905803950691610374247767468702717875318065051677873847542104101400632302912762414773461739569085457501494915875012573265858579369487385333230399931110161492216894530926294191753841279682216351874020035925520888172741330108948150229080525349185040066287695904230892960225332456888944636821290885751843834411025913195130926514463361642119621847803428803552234611850696069053458068674412178580195759673339229958326705105774842797112795089724228757501677108410907313397392652407674147304016146103439431858474827305025237274097841604466069002460067481201538902581768262268994380025415634418819088827359329222458483365831563500946351943919849361081871036800081871254414746333181148240976725521672717075813690191326198040567389730581126888169912180854992606548854533396874815922426819641388357536987444210912027299832247453179680834298928988501520717460420256832359959154913885901624458908194026046264823912745231952494423452398507179778073578707935900225107373545709561605699826268930335636875821174040660768456177066098315926343247481347372146523598740856900589920085560161587554382453246097551472671813317939112944643651066199365932548377702628602573893029976213643785717236645570406442187485297236601794065072917382435414407225006925672063148679181616224361993254162632470860163644273706868956289755607512200829787712197588504068920492792641446730307385190614180847332100646362133870932924071926092351888422607551444768585910956751881350696652194964957282192125322671605291531001644802274349663323425505615087994350824066894528137463574823375224543841090725929381253631393087800802571309279580487943768067671941426737257913193688354593325330208521316226266781498556809646313659382804048311595867819628390640282880978340664120147388963771366378178008333504519131525030284262614903041103244078982008354941243380904528332796633559570342910096936478635080099668512441071423348816279300967060543491463403348567938187162935123189446908598649570703121396160470794427909449954781480781259962651360479389960687958546553748584142322514715225331309421911572182098880567233039601135938224507229028254589924363230973202802434620945528340652858742061264474493112498083583549240003163783225371296423393438936368491071885986282723949439952310930435463585356533572150556639406800461391586465327022290075969915984803444461083933450721093746957083887750197561900486739188891693266056404094639949136472038028309608521363199665582159355696276330418244183122673895640412801967835316465495164193262451935632968858715863572140340373296384014221285052684877855972433700426977040750518463384048025026328538519779450111641363765966978986749428348404811267354049443485135718651783687353892310552438084832939808395881573486898475710659169077428990897562504076775072633350924494773707595220873584922680577035703237893551309334625858377642360433614885911455260771738530398124467222770852331104436822315343841964977000124187345382104895082138338094974997307251790637246002720733467834963233335334755065282050583195976596763335055314687588416245739992270736776660057485720865793348392866493064869261500001438351428720499084825631300184685490847765104741009889257613281636131923518968904327997890641543517260802685863675313653888373046223534009495638677685287341171266875641376855124304538517081029468541636324766192055523426034728513937866872119607078060446305779457552703858375931847117875864067253386473206218284924693529621086148074857626035788968604729056894906319821565845696546067718878483107073849778088588083095339196518503854205414821360387123847532180765546243733445304508819593308834361015270786541013452246562898852263434931981474424237742294060720687035574641463625140203402228362798300072469923584483872048195431664559586355804938901247251152083921870450710466327298114446885839823951049898445667092620803818455270487862068522731885652535308149153912082285910053654229553074611472405768896537762579504429878731663358454578863375366923792913269968336615439914158847293744176694314901346013753872073490240559907179955045230449358164272053008311295642075613253781444248678613342656573519545018177826041840515949004546208758014825442315953577544531172926305423323217524574106380511326983526698984266738798121580176168186100143074158907951856369590703656113053913634648657045794314708273381543070056991856395931207251952556719709871992753019464234387794764759439327345486406835542102727584765992270341833265384477347737818676036834957197157405265348495702691135683309839187494605670238077881407048494245657305593656048531961706105486271312541046548969190646372026406894876412829517660255687264820662843060876783075718882705116475149079164182423339180331022401621639073064618009474301446477448698211752137611597088723606695590736000213502708347619254828019356056589198057144481927966425445829174619881795900271746103731789846268405722179437439007855763750204031893592252960964281820154807257800879604261495120008039051146733345731590454812340188271903019405055391982353652428202948231649796554658545290875403721701776668683649540531319464307927401380419084746653523968643321129032891332184247313658959263458667403418900242632337585725087369331681287492205570996135940458237731177992298810462804921408367077494676744176446113648069838115633874280768147998022266996643771324466485933050358608220193632343217466193934675280986347983671259075436324360602722724546067743096599729512271975793150204557927923166149185828997320257715437488749380431104628337340670587561100500575194799058809127467495850592371387044174017241410934785172419455748409081693374044700443288889236859077503111687764642797980900104251985691782954782096634650698978077806505352340478882378564384380890684566477472694629891615621298372740198117766465165588012170322156672857170020479802830004171189314160224349884650042686722479065452944222001884644325528380824715266475958914306853112395434622598408226158648894624033432235409017514970787292177680738992566708127515506861362707158835227115982859876023296086502165566697560461472922355782474782959767054727468632806435009160398550678131338539579480410697028692164272486526010260275681271110841278198747752303152938168384413105079234747718674337638627702218379021303572130897304893246507597331999055986115901126751458114625282116592808504175046624935046836342513722643129221535272679823452634746085498090230491052621519242562362056123962266675435575849543155337208696799508516876609146677401186554945948165035134594581401693400062385552006997395985662932607925882255902551560750056936776393385809554565543425444008055551785506782415956777458736778033176235614418636544665466025092529913070551950693547789143935741198368059132375615321576617247176873417541665691004269621009534873713391475576000723046961319805838221306844545524390990352623252899353872793157964929006221042814145460040212086922347471755552831530623395853243437010306961339985172606552138586445846080581290418053148160565927250696167379566030773863350200414515103412073662715998326555989995296672172188513948933621699928793204116176931522115532026338741702003150139640406950744893833880234978401827042387894596994184967377268541304981167910557035272981570380127941678682187354268466583837987585474283403427378058689602804370052930486888702730715072548061368977337127716954232001185404024160512564769332364345402858032689984575590012830033081948893519929676605385943918537103915456841083156446718531748893552365819661801227287198926545530603171234713098392877598737818708242114498006372538418046085202059081689120562375466393379877691162501892811635364038267415943624694595100849795246673949180165891362427633062527889346510921965500613676790736929812026418931264596797684879388183207142160956208148817045391730041507413236299369637192980418875922343541075799755145820363802437027953166438684889376356891213630056597029286138876913644930732874179633365362318705003540588098783719823187804142654482203609507802034295140561913225219875718409976217371365375075791881636435761215710822767157068093849466297658070282064686057236976386654081297798083378631041827418283245725215686270256631518461596527058957108953654667572813843969398526025767699539255864912477022623968843426776425300968387139936219501651680077225395754981504349083022460464755235312266690665671005452741882002118474813363028677666037121836224869034445693535112442860601666126568434943140998129100423141056747604293599156053698703588163385437132149782253334604574421730485447553869377067684971574107255650407349411141138559255500355980445190102674402108858854385605277370586544185034125836739021341952293700355334777654174334729698831764546097744666860123253478160965487145585190555356735871557096185948704525973668082912363369322164311147466800600408382578830473146858226881178216192507823166437054819182411454841700554610942552419101509706399634688213454695142022441440476098347983266664787078143392316984906231677546864238404866665134747398865576145358735202794708161522890137866518962075386516489682347587902052819646318608181648999436129897323158276083759946656929362402428316996016444949112480008502203960389704407930770721762385478142955191118852523836830518570470873407486909047813744717371880299794179645677996465040887126857740471600618805537747197745376184263676219486105742442463771439995812621635956699559898354853221019830603114566684785346843275043829821651342198976791318799221527099370700828998131571169119592068841630557011819807559651175925189034827438934633363276288202621403263131304771598372972604426768197665583800919025296869529283840890908056526232033740098896215037121642026328279741939540424711118672641108882437407643929353642928079986984435083663982938591992572610621854300493144641156476726627639473016816722438994163995472690097014727734730116761646666300345834984520594947982842731230521672207278137885312728676152917606058280315645491384920207331049956804651413637884490551856230874312584020529129087568691677941725574726520186349544090031844866492936391516787824385884723048507984032926484604415079014574762591892061255277873264194489997450354309280462020431348348733806316313837390498486194790924628552719779633128847066778468521480232120511435861063765271429841563470411723082227398936182763844385272089756189861434495740618784207879601446689924588114395020389569333724637016662185093498965747283790487728275116123794694620158301988383281222219652407239069300160537341753743678957118670821824298657178443776954197816750802896536001908186622101880286736153703996067255766790204182034032626879507133241427915987902526276125297846807218204212963101580172552658644289638324719737133956564073276806604874766625545180405927057239923555793833401130444315511263787473059850114441715521689020447325037073800895560084032657259362466393722582786919968010306437634856624918931375330841605697344913651732492493934463727263518384041471789125854948676484941817992855802268525592974669493360936260850100018633293231437273515883923883863185846588170698046451706164546348390537825210530460340661089981001292398903475177175199148655319999446557600932676054488786522936193323296970415765607021506623429941170875739249589017811754333113512582641963862247159051691677145600322016973428144324141832587185238312419682983140514784828135469760501393575903206775930528342706952806024625569524777886218640458528664074207897282023122195690066137676680490224954333802234593704558741407152330585982823980948438629480766061646481154058655556779588866540842665957495527726520000522969015472378543828357905142429215909074658343724312596528885875702793835268334504269413080594610706969029277495136034877926216130453310106856397153630435988137741973171668220773168569966425976074794111445487562647825385710849849521145787336061676720961428825301562770580540899231438992111325285564516158081604202906832784564870603699348308045406561902628823100387056868267318244334451543700222447125718564115334208766544064634523396176180612721138866213375446487564936854056298717647862974307737365834337944877343556698535144973002753470179744888455398326060612952906461627317105022829629403902676097784523004434314511906781789105643338208001161834420406345472498513879486911085862483427339792170682779066194075269235053738738879352864005497782958908068049660621531767849642294888000552258191216400138523851609862545222351579610466677760289213559891021741796479760613508149674494839076470844764164534941005331281530283051414267064189454595671629469644089944296793558180443562314253084626184640357051701084039253870828356136357621327541391543069520843608216115155538985089003360753367773039101249949782868710146766310123796410861236209177841771778875874591879554154940947379465727601389497242248567009755967494453802686877742259447729608639535763795141997184595466105642376516881801883444255060540419685188050958869061255995102383580157007082057244669164037673165104370995783843891249545458660369705408525936388166245132345842814682292843381112530558755758367639479344962937798257794955533414330833836003682798812635608547492029691331477965715686098456953708885122353776584222918230431266266152175018628389653857506047156814974296967385786767586281948213787220658806550550729388770025845810995739009931187386510265145701943560556648480424514466432780096247998941130419363537914193206940388461449165040134599145282594411722089046157745685445186953169259158454887830994699099342782814352680930950204105336883068470580389784840959635243187095467515797224726598208236881557030424923595857605334073675075244698314337170832120670557250854309801482904197968272828359841288965252046165238293382455897751754045912357811543188456492204085392444920319688310316550923484054712990020602855548145676986304056321767204357501666312387292986363069239175364186887854505568826911041448203199863338260495441131075811759531863430874451888117357650968670217656270304060133187422373529995886700404851239167823862185336077448173712741272375832881578184496826767266488768605876272582653670369057886748273011071512894218410836797141099650863306610239697194937315556742951796842569073766441683474651052535282796703056782113084116894569729152683363981314301946408035296176389588258030473527286264961327374563732325595387582270050467169834848938458315992944900528444438189864825443509519869111017717963614300584755844775037641829826320300413225841548878438566701091130906613579354686562998561707590729583149155972476651868317162926128229246715450024002985571078880109053651879916947234898926498313989989146598659261761060296187925640863053726081715873609473520905158578706490107367827518764549609544150175760140692911717980845925040216492769680710489806736257525027092093085124461019541964753463776954594130415591771097993517491465525832444725362189460155632743433883003571944484488440419592349283004248250898952587523059745895617284932070907551367523512030324850608334362717732215965540970177153683613600522354563678273905574681248989498866036251773514561263233324879759800673206656299367691743141458706031702013855263536661877068925213936535705610398646730307340063400001477614947487384514176812572987762032302073553412067770863534039163053946423452186384352843197175133688478145799123141259305009066127557275371851101785844211778241664703077278597389196147212714125203541979386538140914865262222430159580486007229270618032119648385020309389772252442329352999352961337424903504592977204535911204695695019004436403356004645748938837725595088828052186989281138289365167445204010292231055549730659979164507761900973963173353195630675250704045578206734125485813764778551923494262991780830744089463385328920219196607000364897305061205123272432802510760636777046481388132196980790410059211141999500491808863597374214011207416894578306554139582277030264592840080199669092196679244601301962284382334139941423773947535407875662473611726870339075573335327736020917551537208937422772361228934064213649466865950286679225390986823272699252036965468682433597602411601982561126030517142542476199397240618559171203485191745831659851464971685563946348986490515584918628070396533819820511414886509079209873004791985667025045531203906103738428874213509181204865239864318873346965798490541392147921319307306982106902970614309595787447802080397057233648705786287332157542954370424200964010282533505021852930557410226176384419449714189786921939573882545349422221317107972412380315794096708567356307857046698851903815875103976982074123573279461939765574043516803808076778884413446582543889802500562336974758555815738614333190558082242642467175852868921235710492445265945967921658926393620665926373993909540686665209756575993671580163068287129151145093807126918857240067590238565312069808788439390195885203923991616708677643723901152983692298124548389088707458984373249644522204474470217276777224282959841560333069007740439084768686514657024917949977285148016506905269879751919707387097184907365954897469216209264380692830926357055346780721310343678183169574409364022622915561608553689665898917030023865864625914588315000805693698924011166896980263891704893400730364528751597464612161120828490838391095502415453728029774574868078654729103694067145690036718206317113264286977986314297963338949775214820366515262044557683945281624322036977105101406601269611866806466575981454379558416777343537022727682548183282029065545080661981788827167947372302175996374868627137733189387714050121449808775189212093397243419802495112355989766702558252527671914913969409935266774702275873252771032202727404430692291294023974161118100123379012907460819307944513841623438246109519915624333850486368505986320996475137647701618664081986719078383342561170374023947973501916536727335275117572455231976225979925910278408913929046182455303091698963514339997915370435216318712638911679508699022397467290973987914674909553248683148038820236885636383816624818573644844818824746452576229655445120029595970775657764808713638887329770723962677886536553164336402230261609977289948427848215934348650905481323105005696856774386877582866829258749214341138049098590392423969255013774888971190656786465869241028590930641493316946609030482160807297344941554452760537367672199001956620327289942148210083387890182161272380488323147571889668998615694866657401690067537025313625661102951964327199594948766342135510097136972243403370387977045429190999609024647623749644773280945831509984073807060471042689514616422903001178991744133840691671205438212146899414170438339346720481168481929862264868424964920958911674405508753140659486812114965316160861901042128425951810072652383884092242524212815291803342217937470323759950695233765281453114036493228061171798326471682693617087053537656437550653525888142188269918240687402463112560105553869935708716324241002109175743785973517502539010004469111751913596787032176211000082509307620046361533830181229606622384390102797833015437613143675528170879846662639221753362062960803873026840530513922170795560789844048082558607087977747773011731137873644312118185258189679107870995816621020573040199430082247317239491947079187000790762764687205418165768187180458875665715158438690214335595747873628408476643674658501130811876006717763757085037435711603278475937675881606844962315540578121023293254419029960015342097767318204769738465816465223258127015909368784885960808513235375647113508479110901107557019012696291946298511768985689136688761142289616795838356094758462441440264045227087951542429669540400435385482622142828240091294886689598955171259689751890999293475269347017929881288708317563961652034392473715329293969228671302757838179681537115098940419304571771948599951714894652992293164699382388739000709686005713869247382017187274704768347762026185918556484307389628644066622903255284229975241548192172452717432817883156568609031504811643667635845774511072669343509553608489755671644409764099900783574573983255690864677679055663999817630617635314042201452202794124831029800374670815132717079876027727982021059999198135431782022387621701115282051857252435555808547540796645733034081041989169670198424863609128794497409779401236800662325048022779532939447451673615640198040862549053476773997883516876176520718513687146081551226714033889969605692621211427928132326576936290708732776039712946555081144662315584954700054002195402975808839332394755411221286029053889581395990348062176536113553306188593013513325466124230271940072266140482483345465798699477802606972249711815835469975762994485582291304574253404571177043520962075840713615848551300045310474552437330541162210447131164125880549806454756325935713878698356316188402012611872143790319476418871407206625759471066575764215609265232409047212932366910383765353138290254211392641675544463005528657705967016967421785881645255907372025570651078366348852079489187115085984848226295746491770927442583621674463720244029098247680394948513467861298880914224583256338109566023666772103686820613565423048592882028980909548638194908243899203881924076755664787380466601431148517706619846385885124120672385543269870688970830264867553731665614404824377886419172893644230930910674748869221479361140841496812835874830241749809288355737690447241622339229505309905588190754996293087635423798252590167241560971131724371271158095372300866752722807401899907529881712426587082354650037842050689142816039140813546510204474307297766457178988023007205340278214965484730140481238347870140112997172359237456624244453890938903315340363998830466772716047322304372137790267754784081839086993102465965865594711048158803391913104976416264165363874296879873036484158170861898687262362177445588632336627248013431987855124799163910372128395199557613153362726406203745046296311134171635634785635554805529709224461869690886350267658313655799990039709320625550855125452413126211146295117402260633012352267366736809985272097788685656339698377565832039167739275488348396096492932490076781125923734320176534543748115504082579575633089973352774628850118429298525431727662484541245463583473080841293453389234154026729883494939343550629087599525828406807342215065302167189847531158377006372582831518855719672541743144364025895117498597831261650134138760170363478068390035013975845541154047048634408022089217100066819608475790398244946375798456940811944207280173247932118396665026643355773996719051456146510782023473430587410308911448023834781830083883451876116470566685972142610959053053196258910981851244354760286509276105544525838967988324954362574111255011638283624171124725830322097479849986940587071915830231878672168536743386711111280398550188977730395473933870749477020292671214793506491891271862577047869049722538976445089512801696466968566837476260817750332097612093655542923160644043115325680839054135248681515232407256865724080152702012277758248980274731896699330233070307746813534170301545827704285003917669353651116217565195388012174881299044157471115431725144788147407572670340528855652102668440323400879012901066066112679227942465902266821956939355363712298513362132422749441176522144013672604599492547844499996731022986688147190488261598431284504121162856560315671466423045195697814656992065309017936278554459348331252854444725119833107839748397222327507468744731011490456715264530144052948662045848675009904978450977227678828246719195673279580960650655997104141218346043381241559413190280767054581159312000734217499970954400982525785598740853323605520359611002397481140512517177585389513612920741822255318313522978221436077288836484173834872368627273137662182503510979499659679218044835922130444301528333806027633033512290275187738447148477089397330702965297373175348825173217976252457789288317951188146883482152717447139117030945071555041884789417466965934010042406558015982674427806409562527748412302178103533914352335275465634998431951068222348166892939817133132903193075895835905379202152207704843929884210982423037826324600275982755170112707729720950807188930744226253838981325793972687645453764829542024077238342732746259676969413216031688029836808586187986471297852305533323018680857269358537339751573772661672573806900114249193426801648526054497413668883384664290722540117494707090766315614245088536358217196686916689393449502583616194684074119734477881116575443161053981009545114206052187398552530830288540805998475230877552399573261127676506020090348974005666332114340404500307897393148708033672313936547795412511438631886669837956873492316328254155940788254863273957893426309827226430859156152440048836829338275617132250971399706275783678536038106421845696168277434904823405945314025500072111978151739797528819894698567173625555596441391572304062261240887376723043115303230477573320527070037859511076570879154020870416167538014303594193694374857030262997195866432541878885250287418604288210039443746624893155945265126405808280614809363738564731655409751391599029385092955397698141050650776985428620022470914728879596472296566600466770435280585019807811026061039204657693945992350151500747706522401509431639620759914469967575280048666768869346737855842460525508399541408957925714716411326979333599042083662906261948423526459750344586512912775018493609878686387347006614907351900930079865121488385406461303800039530220078629379806298900692229953720352100647013982159500327540340850148240247074772182591992251733779850969137519592879491096062325778449694771052408416348475947033548207706350073248969478971261530004439383414132244099289021487940990894912324271751297777023099269173780206096549830444353125850346004553987529998603589527949360822972951189233596098042497346240402139849893957793314890576800669030596066415070633689795413398674399356539301548800128745936769786197529997431189928838423459934780266921495343767239628890686795467986746873320067511080955124363422292237000778759278044939362789939959065762862506004934725515618522919716636138561126000396733483816191763909986486428108065292608562193567685482078214649763880025250953667165881954972365486736424636952116935271908342023749107041389051446174347221371623854265223532578694796381193783578481312284486666185320758336366706730418425196388003113045654180597328544701397431998527405684361444439512826844102115754561511116526232809707384718717995333764619601829742979574761039790683642314885027693924057659895385723595890524786960215577144658320257533680657312323424850606533229359436755192777445291484563038132074702740614364960812210623051599959179039908544527451978966565332814420708547504451880960351343329401893931904187170528805134132779060733493613243993712124435016807705584102413553882078765412731747948873134148271980444469433337443697790073929867135549100651279973100889518100767714045684802129227428668609001483168341733066486089022182801325840578390625564854987947466501021707467277103232405375934803655708823063716658685011651099410954897819301358288528626800934457214492359094248606262834131664079629070195323152030565592656649040545743530569575967774448251362948965266877940006353271425289760256438637053180785508521835622955785386739634416310617575305318752771106342091863307861354489340977669691916195022844497057145562342450638205694298899432153716117311516544260087677423739492911411652186896950317133266942449049492197217846805786031727797295814574534262544925949493608760259714954659610577228536961707218625268548326291370156577231905362134955820471325404255962851276659632502391033085334622215840278557124950747153258308121956088538857981461671272516023556141541354713323103325704436521605382324592667817241723195507515481653737255380444231465208171643999217606010314828779409557364509879743937581685031679845091363004682684517469955399448624939214885583116237809863324540617229205053866253145038597468083248346859563904418796747022264845305423145428453904341141475157025632066432986017314897588037927856490353117133133316321213111729653746978958341472080610619339794084524554981721691631939518413445656745903870301157173863059950007709128965895242579412882957599294836072358959556330316549180554392550680716949508198453556264755981979005324751281050643935594207662581351668046749936755835853365736364259965797893284024528910910067823573715946576280917427290264788898876715831816748611976529404194706752310859621055003034274263048583695535228177182200688007487321568401107505956812251556263182150151032298758354036906502845263455057379942883908923335434792344768569686632133940360054420864896787162799488633383295073057396929276907969400576976546594855517468190352278113603289025485523584510772998256943551002207319831828437283611344632966943031645323089033397570958100619316788066914150091459419725016835089731222519118345365647730407954421419218043214099944693394539674711139212619589989842747144206025776118405229313332259484628758629268297601747554323033751394493648828688114326960017062665232578290386502378075994451518061365910305984180376342314417552441242662779192627662731309787133323665302485675575945321919121398135371901833254407035103246080939309131722999487898605303712043838498348368803003929079300746360796682397972749603195537322630708410178500183891132000605921259174222699350846786222607591980285980443974679954629011046123824612265685579652523485293918629447190370519533094941599823171206535319225783595585252812740162648389201391529916218408722095721568456228598431020615405720932858758595648977548268627152399201234703360975921577664075003090424012708548559967077948674346607360498090141466736405348291745758659699623262570421576697709813787196248012645909332124480066765630414840546031903931340357298745896816102883278578967223638966965571547993093948375859550676564291707088543689834553723987046482580027069978451984153339874763126910731326520064465785203927251666447664883914572081204780892028683655162766169164797687991646288363599735945760327552782905719399521740001571617286777093026255674358638032073562187714801737737891229242395120218316741283737477581180591945472193655374639071620179722270071325687881001335674363096518919189366883441498589343910169202769962385995670271912640914614469615387281759373939437684826295441734457579195902354964095802503688625447681310245960236957592153455839136901390398797216079093025020588759615474626949200893376751672211314305509975090195806664963016930158577996222405079544513364406658115506353986229342632690834215723068134241918971222368839686421365137563941791737154853854689983236032338800220652221103507996564279862143682705438980998081054221851271586073534581337447083734035932026435242364829951013050653237810742702417795265736034343540718240423382435395635623356892946417156258131318021566827984964697984003785540784618796368045914216342544667671913152196439147625248755376288534267025084489954637987083542199660904529498982512407145815471977011439488571562235393873751945539956610002297716682287282308357252011087643882153267069202930637211102766888699334091803408260510868701644718949785988336094365661347692384868586123363531106282871890438311212962329729282107975639966093165147054551307170806387241652593190218542375381409438894278936195567738971094563012280421453299354889788505038013333493140726672192826924068834025646521265444523827640817056592278831075923880898071853587433407941322832684130870442385879378884850376645626029557137864893578392516250035266200872336917285816375105538214063938788253528175492910286812187167001056249919959593456032391568347949955339509908922247518620588386102819824866054605764715674686195291688229599860510330851095756983647033742391362301515168680972629612650503492009598386261014793004855626447800352554929787429725671889366516585091614391550732193985917662684525034871218115825471930885300642299682062291213680734176505245133618326134394110550459721925566628186382746207995636761311267279625195492203334389131251900061744933271202026834719504107104018654384261577837748910686036143972522083802540918481258215550174842742718735750694371050139082195831337532793482634598981880137977654097675037040469007189416441218498136660386021634533865966672323111971120056814265885697582048439012874770803752756706635054775137778306052382953422805675680580341448673039369742693591924497568993365066089604796663390295159878995948754426333980401126501953613227688396533270991343830647775757922359292599843349421969489927542249028119579147665981263814724185481420319099398377056195506015209417387316635092977527180208623806220240431889480884159087603108799233453960005232873198732531532334525869122941495718053042421564871249917461156934519264717453119420927468019580193898663954687793937360500214534938420973544157113995893396565606736156808786215656141732220268231637076487987705407991191117947225505142801042608280214374113603228970452189682693472364189218287495771682638850173390536293228905100131155142644750291206599710242538928896306469842596260550041039364938297297438143117455526789882394636589296407721185939363523797419155830854230856001448691636778200697344958249715240761933209215578519694678232732837554666614154133565796031044731322532211404251020848185433428075890995592897208856901263971037700733515162487346838429603016688347473596688025532946566135545527108714749615132197264334297585314793906043152345662830750394822267788451920826353682001156628812754004204172242199171221454268385759918876170457438945358134991716199669770346249251096642476247534199212965824662250779283728343797455255195736196797339344545550411201882815106929517140909011311767802694879464953177196820493951850637832352671056746688071730649589474814130074194024216795563452650205851834560374918516583182663535771698510962235420399481639049636161799774318564326197345321258413356455035885678528051176004571645986528061828527302117616554318259510872704480848782372502929471643801836857659611320545165303310264480325068787027515720094499965391881488395039222153628668324415007936833005542298197935356604402799513474798859332277909711362669199851507848005893824158341777292918966327385568579069623147448332267781337955710068817876926107640723785285107007707214217616366993742357727328230068595909978375621696684581125650612131524528099985084968207523889327552933041534707896627614018651576629957779575727719561965899683356012826358209453012273324455247577675040507465991096776352930706769466534104850972105234400125540485328074288809190628108880175429929356993170886371831023170328949481817146552879597965465073449281739430805856772671637756919511649212275384072708967684652396626317682887962067909405324126763162682950551920847934751401183049682907618879710220221772576198184769456485184040399733630027380171102409875872010988418919404914613844962203026318042714844700553074106714172821468477143185233598942261024694855964935164383632554387410324565835176383025097556456168317831899244798150881680973461860446644623020196435349663844521195014894766198741852141605808284104187951787798169197548385645304773042255059341579989189593896650548086558852944364939635325121138767755261221375588591651510883424285951924554953067556009476624159732001836804903819757359376922889334619613193498778812755921606426589388825204811076232693216040277657967680687465843283238316136840952669247204992991696239456295731392501130355605167370117878397872909720153668369234237128823567243838426491778743479588681109033408569987032416369880163798919807102368318941043031075090379519193685234168070300309043361024738986277314220260518468040991543784249582083340552006404953623038345534645632852409302865903164766989546738940235990521524356322818487347337041758635363358137424379095612086246059549222250828319012532027239729075061299011566982306685516076042941888719956484518695550001952335780303517215467624194416075802728785340030673559724571397877467826054412867927681256932261485867708535467162713996178384245444661252895764589628956345985548548566888352528719388002077295432253197386534400145407266760498379317540478462916326986620997592342608152692796126000427468108932324043167785125970248007952026459010249221906629942136935502068160914248524595042014197963163269360432448748764495822071898689579239328271174468521341264495566556213557356106291386481487490368756564227241365635138700579947886359696947864505769607171858304106866824296768887218884794727499737136161617217027762081076123638591281534390318122665412170800256177911918856719817364846612010434490545630417544561832021758819843675693304381176058093469106244324365866534684685440369168836276051445021534835848721436063429106048719094592505816880498790475024836236607762465922909811330071463173191162131615817560113428590158806626982853454769759727990594928053510183545284989048638630973826278206099711399966762510276313429124403178920371519607238939891911167579200013214805833397638858153183367187014041942377007454787201367129345006699663681956215670064825522937332438276122109963872286404362631445729601760964679212159083803049642345263714191304887356253426156747120891007337718447760080225848391028470844305998063523076819057109193898004598207980958783688518450101696523404745713041852053392767029354395800844765096866421218408822080576047145666953508238409214258829157259700738747069955312464832647688122321895976277631186339439123647227229449175393705467762903517555872271565114144822123560430355169080491515226577743910578300985804941686049067534592128281005498410961651182789525108510149008505593288971490640467838075610128464313041653411837383031037884676292808644592650666366791168788946024447985357562546616234597299337574922324438689540443009029500632505278942568154549393497274319930598456947445002001303174512895889803776861129699987958283605460714699086178865954411540906974884686299456033204885907928834371103536789160916964681580744127980739463430746169526622358557898107464803875193617654148381957190450974715927377688418553428264514932176604567553195375691426293842754998756337432718430380237413823449882384294161856608849881185361679268793203917797025126286604429289600419351059277988649107877546551372255814029762690157244692339179772304285839495668376798781745904112022590049436875286123555079203339704839320654058080788564138848691248852782745370817943541869769792100511687679225613122058152900007302931444805192740016830433851427212124658694066867285623151294559523699519414910196421120842540579336663204907744724109946663603099422225339738431107081332514962321009156158447580383695346603191588626572994472892912498014918082145142926438399391672770541548859763821851904073619698901218935591097425342745884404386196757254655295025931171060712620030238407313945743886900634178143916692216348351616316289813940361840359705149594114398924313557725846127406729832876205592982605611710232323988966797360193125462023382004297696578535904507097263753074138335754320685192979497700821206687384329235883082445590879103028038347450183107337941892530197861170543882322297445356093933798896394870367134007508088202095879380075630244010022503559724847695952418610915148728877579369310791994352257741419937400068730087422402715576533190312742340328111097346546059569533969702574553929364409847682955916016366734660874851690735953868274480052633007937521682186613494079823689430845074825293671756173931404280203955135780154485382157609023841708651476163156426596281704519180930792601962787961997257167803134496368881359762951691622296527860491199644069849699801057721163595434420716095791239319860435634866425046738631082531981919009674940562159646404598376258878969516642528149651756539420834284335758220375473313404136957493716563899325820630073356281675666078723434699173814023943215476035967863539359814563439246019097064455395911455226126392865318077740350384578113513010918157341607691387548275575855765377211465058403875072546336137463012941388958324231685421271270931777592914058489329052680996394846895205314684010143286863114887727582708379617192563470927220352587612006378902018779857823274153703881310634185973855512165296174848987737610439547288788124165818659819002959142096503381123561832729453415231076283899667270434166208345155298553891186399810169795621876114462911422074978783996875924342333837572066263393982216662813973913741728014328958611796732506953663261287509526796834559398611025433407846441023356928467625684433242728468310345503522435622452263014930374409961315490353816745614442765598225209459336348648526957529187119573164260160632580834493002835955188490097622133389690015629844215425144002918027688015458796573509186139309115992048369179156701130455332407475769703427677783283218302518452120802772219772532592026487733078019345331649418979664688451417569726281119469265350747663331390714620207348848184415912693762680719043092695033963259441778683278831873519603629408556372694196636134050850124447360667635104122957093984737086386587275326370974486971683253140776722348420252896354056606587537622334641724737747323678704006610736829617865731315364135149178641958924073195001362371277195991788419787442319820035151828400319655869418414848924429732251693645217938800936247038047923262097118288278394315347870485834984932582152242992186720328413715627322246769507580032077264485566764026382600937169284167979521262569965736538484066864068762986261368335212250496435904262507403105512818892806432864942069888571181483756858331856935801363967612325837270178433808799549658749031025070809666756084936354611866942122977351845915563190080296319602240732735041368471631505782700624927751288264567522694593603181500085118000367097146172528563426460394291657539575864813090787253075256833079467571648642028753890482519955461497755274883416913691988651070479229458311423904418589866921648952808170718569270254146849983240386206286658215347667078335052624663350718488327698501189137799305829479408712587469556766187168269843293871075451833689620141973791399997803532240874056918571018588967191083053211312377930392565075761235501753237589884670620691327249542739447999281261882968370935311515901275810041438806832676956136407333430055567856596833495862859012261974883752858906449059938538184780740527707549517423833972077217270725924569366794902400584765151598986217295213562814168503594202195352671430932591681362236843502435832513724009314295130418586477199614705528942951564290136607645601959055849916458591272217815734561708401148380729909167160818599860690515555981732564765036736675510429382759831169477562413850925462389116073692596542494941276472425295775086737795691750413597635699878074569208431851742318552420224950986981431318886419039045223823353785504580182229703749813650236680751838659220232244226137060436919157187926915868852494920497845368070555513088757511492547803276989152755743946168141811443404774231826152040508859842333266741083360308739159246832556712081852007149141776469076426121639735883187512453820554295953965405453662676899358885010188684863330648388835928528577775100673543103088036047215145080176746143625076396031911347261863234348009018372946209905195331691827109365466326825168220774224365893596994098081757171761031589241457254028278248066944041997925776870624613720951263904953283499345687178821522696232996273737929412935146703931709281846827780979560666261336243279744879288057011596748004132983628646540643893703476086419063973316485591323603664160276811929797966592765419633330526726051527203709333412589786173806334274752253083333750478589519343861427397046941933819030848118366360602707351896753982590843624206517927574828532410822143590903034005480958777865632735588261735581663659125328133387380844375197790982131236509737215752400736779651684618514560792558995437949416037007564442731988169444991626059863526612193807177856965585571268193382853926665916437550435926535040413405005510891554025921326873682693637267933772000034502825081606807948141892933621125254537417708735613848801157307617464589955496821232227009102726449928367312722025911146174930991108683247758837612451428135313092823348266381604081320933435973963458218885749275809256425650087007452767650212087391280975945629453823752675224566773963914894450979004090568977013603490888167892161234434843209742651418721985734437108324797117237622521233200245282920115925001856551313767944693347109741811653878797082470222095377070794864638213042122438838609248264903390324249840249681754124623752093370812924170798627238662392099076545688025911874267009916817625429777467125625080499104588017041188126309922533734816420515940917341317118074611665772479990222586316052832717014454789477842595824052454570587041258715405963311267829597182556336747932633457546187179643136379459522029430858451067413481896219538815929442383483034559926676909621880599710119251304820546626074087202653243865431504037343674780315593102757907699998437744819929588696892217126466361621706101125859911267641876742111731345237091151790924849394141056604412168145651597288032454052088597244632892082001099713233089042582355342298941670023181191133937724705849661596488116488638856288825214566362064050362112073998114255502006176648153870831522861468263845092789374866555134458593277191525426020129569324361043833328387512760477542277396818779685479410275179864282791745490623362549937797890645715890184963223385345577261416167263351187200897322574454635572353711873515021962004954451811585501897016207070333280412242427360627822313566039361055247623981112026163158782537447021422310858352895180759552753933031467970223178734848500431851030700515517368710382723799490768429381106764687219365533555215427320522443943660538014648800542082521714706000970114722723978591372939357480043152785739794934546630637873642876552058525723814211837075724065772314143901642042449088311661833822191378719413200088660811436472306176947183237403589660971585477081489510721530901434453346073951728350608221144556582042590102315023492263599320908772326320890594973895506427758448337808633428591714613857548596083237399176079194324795045176984958168694184977440403022654557204761725150610751811459620641380850345675920582977100034812422286087231029076269286971288880638734866794286290705372512854340068420201951178326845782309896430136447480803947546823486755811808296875300569505472516161188977444465511997915334376769383562563240258266216426771216625630942713195585960401305510956904294985664208049485087660894066506822512459269034632486200722600619586422524057122163650874770076967692333732434019705012703864806488165922979838431420237868761384355244925657822942396712642915358213396816502743286904034291646107804317857135801950791615577598327988600873749403064096957201635015774892018289501989709216045863588819299164743860506508150112589786298923110048336874617558274549190757013306632517445487963624601737662287486882542221116942313138622532127145896719762938121218516349830379658403603263941797692583623792133835302963478675173863679039564964971772612627524438971703097320518994184748786383942030280759315084792517288073405588173014271006945721584386426096479881745927824175486322971969759672404883667316604254366613179845378872241329077787517503677399266769966196677680268059578781485166372059744578306417297446007389042961870467992555689735991016478469555274155942729926654060528129717947364148500433560794907966899791712594162932343764789126179364739848429524900285519943808107141594774432163727662306809805997462988005897650774553552112714676874402992502749667872940452128989514866487596813202490518279335491306932681403639922065153307482336131699350414777878954245651026718370355410729062832779608386710017790652456219463968919108472662683107126418866210654590240755618050880902707107251243685963770692674389653886905143962917822865174364810524537166663803005165527688058797487063023764315544709606304078570562021059349703986063402575008887453936907170448441722871135319289395573170441917049762751716689163181189160885226734002130220223868316345610059493158477291666977438950584218971610147006003823618240130233168013692609036402134728705112072999362162912328588924507321492396083811288709075176948092019548373256385309586199929380485414142971830181500319610441176895918703134146667959824162351190442174605596656440771194498607502037381226539883657020373220412988137113952498683876250815746078100482871638144107707195341146020681678156493403938684398136498563898742575691003018747889387324959118239853518685712054250499628854554214202692441126138629412937943863823322451850572144760006123180779085871097834558040347190919940219422817982657994434237264529063889209584339140119009418378233764147376347334333502571542569716434648132406315073326447859320698323573775908714976686261754337700636013480590888677208648718047639473048586166299213561532895835102102238419658304430231664746203544942450084963323058616360457292980647023144634311502305679397219271541019310762613443593124784291848745750171315327759518826878208858566050692336799371809860362515934666019848400734502023355724314014272541684635876411670470080690501873457123071842622293461440100114028661813935536440503012783432099677533469300353698893414912475560726154263165583978510081721440354737976153850599485247765318143370724374548814184814736238122380944615873531352362079921407951879115369207685756377069245838769715901212085652576675058989921726306120594640038196600009191684959871327242473533167963600043565748888008249936542832004693484477649341312923186134961211357163609126621802119788112923995423925448636260322963133069454332719788204552822203731497790195744283688522657261332874048707462720605503119876746020569009256670702447618863645409904803908026812074701767870454815815408762829531276348957525027660770886375435713929473732584452010612126078867004896774445455483913312867084541426807830561181584214772535516451611656999621315822332042150167929292561851954440468849329496213973629603210937466169678948423091920399523011125562638855426509908476930554099602604529388302015902245406975574070387840456336761144230096856135016855811367267188026772080095311364854742036931282151073011319688965923368472322147266378325487945666776614668969731699048059181606638308459905192867737096225534214130449766247896739896454105791235991386826414346936301972211355539240334260364811368974509821497360571926868147957777830601574569149204016065212318227650356057945423643475986722919921185912266938808966893645019194452794821989581624708052543186359217532171632295162938162893108020443164817520922745106327802885280457407509402277366113547249286532196557654932042878022544090369481915202692319756936828484082082276187764826298903732580383103453200573841329275648153322642071977172223907614470865835370833356891948258883860873427168756881215740107964823526568874972632251802918849308953217940731951791362727467030785870321389538200380981961242823874100662668142041309441000343656512717812356660597035706013005905910638667943249829395833203815659760037549898710628996461134742405414924428322956394485809668309413712170108650761178192800064914597932829425106427706415594515325883482587693002199453004615007575667054675389645995442835002661063108727761585771959942213367680040058935530627902536376619831058201464183762225200428818128437825415901644615141023875656634813282982317447816432576593102219114259292520543642887584631186198359501745111788290168739274368658948266729338640988408713380262234183345732213529222340649728742280029673520153227845156932665902396115114640705456361319165086489624499175904743200700659887211573131456559568525501616291113243422663387630531307927303163089717925325251947712127660610981667521248831790530690470443387378573354233705436636134373681460774875712944466983581892644161650429650412853296996271477943117615365297432128545268936322638697871711580699433049434113540408427605662287982544994143960597502667952240760727091114853406540266483131538661935926279060811453787455640327960957056897682193057642392814378355454314266335909992919236908391807529020664596586231579441709756316096103066650157271128137103303662284333678939625670021644566636831416707046729743386028458109727961946690635905733946488940398818449713524249615355558821349947436567250909462596869046148169267775217254587579944439515584513863174700010072788273527738067050261814812900839662599598514725720363245569061365497739327900021627411862341563015993928192581163401684218471725076578040746236128177853626098601034398697100081296390396785897335237639604337213081880433477027925776084452299686717390772138271555155712038631989726930942900864739071169861947766410508345617096665873363082992316943734574476011146956881123901576943155429947594579800116030352517093316722216094378786630016993245041076989727226611205735969730216720729448535307590005969354008650755195039125778954962604273858919296485379099201042139652969522847739539297275009775989861870149603388493109019494101044926601365650604402595736462508257699516815616051529181743023667143883700797650028403774376101162737165930900508283571687305813539582658132274967271909546220423337784016731919631780740993523323897633811845296371210556970820460015375957240080022926374914275440154267006451793633137638116265474765196556970801332735288824199331143031425512289843853183406605583790779850829614958051896346039814584856391622471195049510049827092973543971409084380304175795494502000257396452463068898382720665454834258395265724596735405507556584680011977655971551165626363613242692235893078158057698528358324096690617481162010252824332730682663160280805294211823867926641764898212960492358471080853831637010356923245233899385930178324682592394039962708283471022609420812441933772782328706322621989901475699631297937064291301974720137695249584455792537917221365280187756166323263060130972000313681918800629889495848607758286106707624005399487459894531605573865067002491051579424990806677293850123268951151025848615360805063214916460322582740341798886625293990294070100466127569141772939935027820858856863898459824779128615327544179336655474996230926875872637559965704881417422667229977577383871175089317633714137504543175773304428047479892358834129573793849478540514318445344976915578719731515963525652674214766941249108404773632024164174967699231075764532678011777259477692660187236750123121987257749523012147966213728859695810313267242546435628774932421735272683161421733020611772885200356081846376565586300353926666876669297732801473536432554850085099748351014783230808687807043993798996189004889982470090890939296072610321138660129093056009683787608933664900996134495211444802556680062650249294087406099429310214767562394735827454082064166168577676903897290843715916243789855749999313245759521416631128040388131026164052126466372034463630393311509421376524600881819297735432760272390138759298849820231597491109189040589283721510455144097957075324727258143528591003573586189562248731774168192916510182998987616168574586658417270447909606935828821826047266730572355255854387744901542984557034235569660429305829815703301513147628557025979176144103825914157206536065050670997721094376800946605327905957587034052892801997678663688513187691607085370276738514700643248823605395176185490865552039379675953744356299466947380786464807528732046465637008399425298240222887961072654414869701576190545233540692876397828827882076204778224464933117712908663139912533688903701161829726471834675070219038310915829061878531633455326805007403641882063964018924275114826068447309140439096691979224134590947478601430409394204105743301398353742515440642428073192130628681070360434048192461337761289854728147436951116334894461258232333814235410383851791274713322870003784918796999915754017923945897271737759862196302347775066243155192416105263341851694887306497742682874006262895897869219015158468304110426543546442736795705904793224642471422479885427973723701144480253814069986823481576609380475825422158326864429764028158021551010199689012409083210712401062032927242874310386134111903187519229113499508153469251614847467355386174343057220489801739338220332856567950567337009311665522345867659558990713382229429063241179981317146655518575697768531039497029462976175917146077851949634276308337219205932634498900512739649011428990232330578815096805224057405176808698229542573416215703894777145534136762013098095066008944891504662816384329602547158694658199924658723959904417992916805696723517383520852842079317977033809537718010576584470587622980580026386845321009543092887576829256935326340747043217630357330305624385339127053851355834404698702642753867363719186582700118719644930755785326695105021645124573848865558958276809368286477980021815394583916167433617097276225145048774452133241194363706427748429174001484904560193586003453974411090874797786845490385775357781385792316277803808101295341900290755236148847839187685135119819847993857217166509462866756038965653857191155797442651221479442983996771779608101448114829771570455358532861276002096148342014436804310500767001593785217365414132340258678303349670698106633722993417153226367322083140268240716931743249602779487445117961057483468644233808401223962422676802352569661004633700382192980864583088541831604909100135939642727317724753640874814429727200755211640807080502560730642277585708162534596029325407996776950203452277609135536951405812627914556018501274168842022742094005343440525634510723929314119409718863498234115369901633679332634437245115840927089335502592001840858714985783928323457413034606134621491421750355954659157624845700096239963745435992738403915015336895295930136022586342232191076942842100789418404359279664344242684501977665826731935601476302262244906659310059767919336645792587367690255544047105724852584668562823882777842437697436617104562653576196450850861666723205894310908671853555300215608300968706135116159722612229125035202986650652423089856657887948781775713873459127319219577801193122510179250642114817045587274540072825493863574335786943932552784199850298258871698266313233875868190684590803622974976306242171762601147951321240800707381508822317422285479503630420170736035579661298471683555081088022635105574454385840925568900086878629287870630733362330683533670197764903502459945359927666941316200300118897566327634233399845741704511558112709444017849150508892353955211495822971811033533636828069278596159191002997278167854016791832425575452710226305228633494577687232286963084739001949042716282577415038322480065578932914876402073962909258006318280353933319916902531044074134546848265338422313027456831082085547171548123427031556975449038576044913946783005195962349929501055165298329310706566665979172321324027951555478647689759764971225367846288701016549166429080344795215791554327695664836690533013600733908281068783869809860277784577547250242818695994825193085103408297026890029479771127519990494153348797480991867695934319098763676745713229803452531673632178127572311191891255910287342735661974791671196993399601226198651689882606597557177489046054588435283052630579234353871520548152864836185945878920792794968382040739491150376050541035206642982462800445665055448130269194325335451752251561931002504716719563346091256391338251641660259499934763666158611677720828637705576109027172893484422670778116362934995070166159426718100030312013358090317314330255094416461487719145704840146326879463762029329822734314399225033493296874951957643565999486102087367505860789292363245851065684106580423059807021133838811606800621797902347228890143365727322813243016948920098575591039015777619581930652974704188550556254155650526693709523110000831621304409134431083962806530991128323384764155236491088685098985998441957594420996273398151018229438921692673747240017019186517308532178035601905251417040525780000736184184028454726482813508632299374239880079685584869233109489119889160895387054542936522885430032583959956452169851771991903158502597895885277731750628774659666486128142380077069094964094623920195923617550734016168416829104694027685162584097761550204974208955992469086025951612568753676209229138697195964129240394899589345107393601761397134311621831250259172316849270357449593081231372712683049286229873662486875032370346065021373320719057369250061897612649393756057706536999732063629254926362498649655428324959295207078817247446175120257585563842595898429624784968926934539451860730825805963871013672829122970683626290636489693689397895879520964574880375277619460192454435154191153139249109735057719165141646466483935902646670868693171379968055379609209213003497545889692611620883359557454610812865956430179117249925562858687126262235843695758506433172261684139433657316342996353690085524516615534130583731600959434561846709932838881915550581753182429287661611171949614697057874534375803109755025220321395481087628178003034070660333976968730240112760901357100700775096373042820503730960290552778544363779927631541256108753835130164475615409486745661835373251222228237807315679796384776741641519605501517220373059358636961089630064313227186869677218430857322443527954845897779108991269515245399269856506156386107856307473613388797339406757735896581530769696394612566449756426469339091788322284160446188472263487274634098673457416972449605685784079006127328518558789504693175726150510143314455295254816918181749657268525291975231088200979485778496747513001842414472103223104744873071570747324178513072820290669904229889746975624201963376217210907176068817862597276597329193790077660843628913298894097012366594697964505770020294828974704655076744898887364995828985401811800448446230398318603882862746252219121870853800300161414518453490808326336416506947202969440210613633881781773131371661094930566466720424261949545791462820203147652281323272049854260164100053302002894177521053450697367536933284827280667248237343508191912199730238726218087961272237907669197106596451337253434393978287869899541288285537919935236926782730767742378863949359208184597345305384500773283548926638318055635254862255100932785353912218424623939496620422465299748232241576852075833721731607159000007758776452550543816810870285630105693603338018983224001052622519415515871555501577671854678701219652887858281387876602521079814356206718071192900617864912307482173020240736350501026888013454269993444350134869972086921018946900760837002570630876317630056481314074162387712534608070490376134667720251402132442057944159128724558347949276777431869150294954858741632428321702486075708756976133767659587395819382150674856507765742230741507036981957676630951143824493330171387519126420583983504785412336947968357233246409487916600436558790692796461917894999737957994073112146941211098309631784673210042769298806864071663834329088883836634298515750602168629140445159159779624990850749664087602954597533094301611413421787052253392340088311652443307256401164004326513110706378189934317154673785284189810101756002888249578762094713419452854436041671869044295142199034974566573244562805160750986754197903271096002786737777276907362307850711122248896882470948877138240481486842788655141644353138740050558892404903584046513264587233684808244189145533488359576609616982900114211425438055664658792648638577971671317725205676068879389663459159990059939520733301979976297730573905039531251497174440763098586228288801519293313580210195549590665023553571842931528042486640651097237958896243765896232940020645910939632801302408423104870295897225872667896772635210773618280017658846455105192222890809737099370610705826787805444874981505005215075126472737978785909309727724984499021226854660039415198967599336471286229782885554987099337005622303696201822481873377043879258641363403565508466839267332811905199124716627191793877862777858573588688872490813071037220731177395957642198452886704393274270146966235293447747533686662984276722120170522619238412645741621808593141325846777179349567913351674656879753408287093791256290321032706184211338730728354640827646817176657093901438234069117451451119864047376411962321709333375670132419285795480094490672393530102847470888208174128342485112366419148350427544365658617278049475738778321039966737992487795359278203383965536637274900530399358920525960429511788127347087091378311389012853816835581962916057299600215215194733032146534987811408185469772782657048518311425396991237364302258954537376332170483007964835666295756711080454031445055917373015988807630504447100698065443906653937857249192165913515163397387755029383570512868352287894685958078942404665593452835522447075860055969260137301927159063801791057708154799688904415955968027199641281625644717197027031099333095192180072036701814341325847349162610677546120353535476181195905545115590713483955050944413554917522678245741548672758663998589277712853247872898966988633574292742882028874441478576621533869489064130190157864027250504997453495976631874974459254438597858906589045879471730149151336370679346280419008929788386966191352224840724316137234819723629221124589614613660898288426332491596597709787788560023854994852966099406965855183762427649555284731107847978446604508508429333489764046447395868696568028795564509245427781414886582664452882695625361165526436111735356149819511416533864385138279148726832759937537529758645362626035843078497351976103144431634857460180774200828645658904697008545402440898893278961428542452272630028963964708321135740517659083308176200902160718989542120489309210222457899138280124224814372526971099504740789390452874141536925449821384314561232864552106325908242387033718446070979955096034990246795795057775649730124269276642749542990221115404905398217674028422737266447534394057922534319112803853763495240934320930305706256209708488242973997123977314539342857919548036221692482308475211234772007960265335653917439483051163185080088046600753024808857445113102133741443902654625749954964834015307656469374969070208606131366392488810256916669163380399786249961824355742603757424460687299098295058220489282108456965761231916467275298261423653054067796731581279833694917445662230095474416573758933590819087983741672832742257107445507409567841289812724233245193154336638427288911975297677855432244870179502179576446899191736101264759111025656317873808161126893118130586937168253190409178897346497998997842390916769763186682499334796623517802376265463256027624516080342898957447297434055699704188809017033586259728725225011094607978689314668734910695208346148323568294236891380016504741326191057688063073001273764490077713080778174975848221546393534149080205948324902959196093072174304891506892381790234175701593667158769374308158159514314208720104627640642563295014933227451323102275697545071402130949799712219963644234346392158803262653422630122268656037353542582523959483461370845081567787658893253754220064480055493909004770472842687701586695764849670390094716529969511510764693945383684286797603558736659933676149428683164045895900368803913031445711725832122156624716753476306427828069763025590884910100691079104434637718040155700916087867793856221495981718709283441856459931719546428212633199651763907452194389267078409674953026625487202099809963596535976128022839345217732604528749587040831257248618185457673005258305465187383350032352103998186858170489102638123753830881184600143392583532563613925388264553267423126809775627191276037130079947480365559687586669300178987837042695378597039122823419035226970271534376084992821175210560613272765395020532164841756585383258994097557733906397990757795293495373082559193833211271097863240882903661266010528700873713042847767383849833048085382802408032163500271635861362295243362802868579758895326566357475664837734095204553861981856830653275384337682584985510553533247519037573297475677166547506461835286464692861236246417778952216205823206655118235749232889379429608344396114834596760937012901373771184135187676524625334588987130080788972977579819696646825190978627994820536148174466164352160966053602978309609501511086543025933265037502796246418737413578795251098080744293886113955443925083447450035691529808138158962355633388551032165368554466481044784809454980837342111168745093338959127550057103062313466933172102348859214390908205208297639304137415252407651496372421974229672546197487859817290251416823332378890232033169834703819791799217305311152508441537972261186787648560064594757579612452979336197079012815675413361510249327159818798802903429813683414392863893321110961328241044687637488319036343235441687949474742581258398762504838612909906875353526100145556833688529382991258128189729043948391106148019411875752402641572143112740468878478587532431694275071598735492651270636912067247888687753238600226056451293376911907768496405295692021393195309493973944372918065301834182518670026453378043832468348925107112212140676177769899457534681971505080325496969277963620557273742636843382477169287790969953665347461978379505265648952569282090163614936753422028881802744358241573036679152120344917230272670964855234384101281642705195946289291174169486293519229504744559977389958673220759911777835780593242694300227755439896064120475517723480803415098133887155636652819301237614963405609536071400469197541595066335270569986508186223919909178641146946725693366908517710517390561490106897155608207215665004008393544994124952681780805171970956696182361015653819288136321604627986588932083787486729272994736697871245036892510519891925513798457015449054033129558289312291078434799541302177650730791868486700523527293264641415072140448760899175619549550594235682879538837454738876640703268932423783865425299351870303707691478450108232459751345929520941290551601359091578395505529543520023069211253932695679582572615729723582140299282735332302335348087877232274537968629440282816098687622829931612627071336869422907602000697200377477929433437531729509284548085484979754253420402530772676885729311340455964716691576363269599038872253111920890820974101348911345405234833659544114279282761507119944196005280858547630834927450422123043979524847798435501021094248473366021093517157522183365661863552635336577699856822097838430850989343698694436683061002002491811727878270210187323175696272327105531344473197518814107157051843873890200488867478314340294422981003037459530969970751554109883808234779672449640708132569015322174877969600035502461921149467724230504279735068400813941298070359385839793852890925843218258629016079515241357904934294723071477229603751106178217415783172619930122841262139194349804702637873180537808948920153599411645224580617609205011929858605193800575969037512390153199600926079918253204378459177517442080048706835790429471883014405398333618879470619974797129660480133517849610152850842199880730356154527668971762446025201473140896851699357630859690836696289616976709148915306998319169153229671349241194471175941008124873485933106854167722215602962336838185859403934317747629492957981573674952102220776824063232364935364920473417792335799454026985156736764053732264931093648300709425248308731423678726662701268423872286935077336606142451127310098885521013181267661354617967711930563394758580761983391425814975157608409037488512876632067894572835597783676891993938762682607988933156954369625928234787279881715357830094091705604457815995596399359268134338154709072502593496288658193393485300765868677068990946757929165538995063153206358292749548215798172740345485373195668486592838900608326200737060493445625946037223915228220278150022981371579723909866123503245669339074282422209099801542137310285506454244416398278394534878193167467398877334721590796924169882442218395954429777303942857268612353230514772153070151843324203355278218638988702117872411106024061477767613320971415912537367301269619975831363453178702694220544306013830830915474161521181044911796099134269822567765836170728976919242532237903062483833466042204293271188031810075692226955452399634824109104906888227537378522101788627055258185530808918149421821990019548528753771946253951027597467555294407169675260875656596146366859459352352844892187360236801572083179172762502416967846604467524595503736654003794265004649142578426274512108524804769365171161011585558917281265632947034464686459569817886859691744768466392565234568068045171583683321689251039741502695704237770680063931506032089474919397805824800562675495651303064823959500174680462349418357473852744217941850037526347253480925775242673790665471093939835060745439067331944136809303217933604288300626450017719060752921367249415005084388406617643476579713462612294834629898813568076509050975813627545713406700225865789333190238573241931882519441800093918358362715833653599358786125488663090007946105884706279699316657705888143112207649103582271456581322056383292882100132207623374324670291453436675535603393095510294951654990828727596506759988586902913348820281453991387286182891101258252211406372640519147478757560553840079615412926485209373544796985007203890436194311612003962837234284930354759803703211004252553177324290343201726083762785537722346384244914955847351984694541767550812232920224802946242975425178172200582614787134934680769583265422180231888565884344955838967150069259547484909547707759486705485082564302241809170593182193391636694847070538333111316838777579516729892118588132815056152513302996492868015618368682314250185088250590953421516668571106006789973724975065530409199617078873364513541872685052942511402839519702410284179384695037608201083847357418047240003544692343412853840892953003931629882504664162877767539872429225733521654195271776548146153548673708841342388986460113440243955987445233977525929338048237356680603950758371750576067046452981678768866161514779561664117313548511274369203653277358931842623869885636047528270618080208938833626464002009886878070363853653550553870193073802052318047894476769657148527609466042627791206250091038693818199674581072844280053857467854151264045295316145784275554825945968356520389801824922508058025878993105846714842367889412239635279686333326291315290869972156221420866205327287683608587462874400278663244912985636654159035809348666746728374175836882292500438135766600306177977159128737200137057648380994004813413094384153262481315258346796945487437976023699929062744573069601983016454282581565283549009867319445892035347887554853342600007192391920834422614419655796545319308670470143221291848144799811722236913179056768271685496851290320792557478195434238928819935412847132472875862142350347959343962463493585431628268634883271569242623511558917843323468690695193669786046796735222506569532183457448449507022939836809319859349905357615123587639145073619820762970822956996764635189190394899649928154283988780632139066784125797554177432209365159423807947237772223692884603256420635803758947190078831734113110940591592802373687617124539529741016307730203563482494967305593932869009829467006757149514354815509434927868387574128176807616899585625205170363327232659677682388789317017102862445793783309817300475897237565180125446785631833526562999837036475538891145694923939185475678838864869544792152156144471400310829244347504379148390131519718647371059572103193337762308764575568905672814407125497264065138799872752887072574539460016826250603136875982527679173847646866689127567030632151122717317920329809170512125839282336902079529456271510106437648509482945681310874836306641007266025131050930947213191811331329156847529199789417678884509667141295621860863178882395316191714000280220599542098898193936907933496444014602864059863093257733679262361024590922492514955815081747578590462617839940312855317297263601030208988405686318934307424291008813809469100940776612590483723910789085111934557789048086085138594900494537189043714376983890326154378873654743963590590151267456030956967113368565954884990407719630905515351323705679570680756554310820015448822783904525969731097889804781884645610977639537825342813423517652866994299923350084379585564824904393016917131568915783355269544106049092641231787295780859610411597637221219617466671860846970657363900551770742705149233533713544078593691096212571617194365566796251812873922525019731440400132411261350458409046757858710052961781694487295824039107248287204647047004353801390808333738855605311724164433612730445076076834582742989321351518370160428687582630942980379386692946057947099594750880571113582963202396745594818274911866411450767115609048644681908276354573971332525706729495534573605459054178124437589092289058580809295253409593289818751980819266964662019961559209136899572638793516199817649664701069847291677186781568848192807643883342642040435680230873453308700183390770351618401210996008880355251546354973473273740735664557668977676447321124727509409326813963456173465120556300860337045625577828918301675063660326196185523420119152972439852008676724551602224500685476083600229258902244216512469133620233485824204301828743973948476131415049928832596626919643085626280544596996603446182060755424640486735583461805847150525326628894440997581720564383510977397001722080410146495580256185984107000533322429198899497650577048859436449810075452930815563408225875930923192404708487295409619998576028807374423992836866751324718757008349968090273985207368593761342779074028026964156791701496354265033862529885557075601061053715629849938832021688332400089554911698744810683988840236736441348647725802828912271598643201928570152052342774887449301916494589727194388294993997421924553188985364995960970926799302532998921091605748508883339431602602732996494838303137076175853546019592955897788989715692211654135605893268955136944432373979764998405845288791663842738206579343060656406351849744670788215509078425936917393612427382273850128151584277989679560453407258090502679955654238774790242957337224873031016764964041999344535868710017981916118944958087597446986365306598520741259144937569093876414569866425853332602150880320383339189282324634162639421190164093594150322579583492186396147978019220535634626733640207788562115473130156288800222717123217370745971203206059032761496380309896101757432240754699813958926915226062368807078503048051926501408113606710389671472603129932451273558604596191294058964154006797893302871704985477832628754786492213781492104574397206130986063933470286827265458407579128326127038096403326452519965334191217937602281608705751988736612308783581532843501918570462508142239555889199578432638035115714440328327817619072858819711688509212644532932710168140493492022873647759127252275534897642876800163933995496720035738845220741560163966529531856019845160574073870172597167829977114388478102706617095746709878801705631425731039861045105379415328716503470841821789651031451092473912056400917204704348672541424882888535470148070054664893395603721826873219714015365338074321552215169358894113227222023627437868092761588531231018758061768661538938237352864358277710629308509099196349068428053244813989759205791390951006739851109111771555481137444178870205580909525485064382830683233254060783534880817835590249513625055049076176067176965672760640859251261150401666441266607937818508278545660213933021056023567797362509302542881525148389445990574810774090975903563673144571239371497698580399296628357873542279647362600749984011518832128036628373518878427948996856128167525434221762169395693590423298202259880462901623361723374291864688962826152113600170752724692875592019462062361110986300937272759081113280196738657996329856135089285655721782630079597269085027754585468657401019376377290726017238840486360247612495689584827332688974724028006609787118358152344241317666659120968897494590609456173719136853739541728769515841535117622716594515199201064443515006997406484059930191310261589823624283731398819916610226311447419080971734626183618671633695458222053764501585285445140064881552621926866220842319164368898958093277668966534902995550518816090649348210188254308892746384909434272494983753827860424443183075000598954133519346232464965540148430073750804410802991232763669859645664770975352839510938657151499147987596167522707489709202681235508932992090183616511899950143206717507511307179256257462914848053528559172698689014250333781684812776798544285543588583736358107755650400864344495218189295493301581321742817295425168257272550285147837225739282806544069224622127946871918528042093576538435647489526848940207940957213452304455827769662464170002129862264784910543464850201551222853216429894491253546642679245410960548154880472292249326299215473227752015786279266085482395569344516049883911498558258700734341945357406885148383490974937470840476275139384443692325183115245700969378790278255506321307758603546527847472181005671064385263298431174056484720974492473583526433651667680925592772240715033323160374380022225984931722990277315131895453640513690721364262679016266387118608003180586828034830018563234756785985035305500076198339106121406027524387385003271674426070599251636100013972326285291517909291088139810538563045088102000686423554344365053813851881064670198071590644121073347950361358617727840071740836757350947274096149669518856157831210995138169516059453784374203663746264509251635492164575588377411394064648697664046655974334154008693704882611613778825173892324193794275352050398624261460476538381070753916710982764993433185132489816569827101770898296943028757782752251164929415606678054604958883315678598214615980072692063825723676117088418003348280959895155342114802829996776661973049961368479355455375034029214337759248877707612422571998406126528673901863537397967980805330466602518873914344209673202802459527423450826955030197212285923951203240723307456936991819912452542387815157441392596206230796557957033754387530137577471733137557261818571780497415881892584496537076848072785551605816135786063360885847841920593375503895939757334260483968000243008123583018070768758796166298341877581599524861669282520772273617885913904991639140358506273210486019116907147976110777809589183713304779081978020512861846631796421931419978950197455765623572526520875313248500333570795701860374650422899571431807251870019731400691978468695268775257363465132235160445215386175286452666472794983837229980501146379070288654765573239525262539010729044956373891261935208824408317101080748139948024790992670862515704820589520138952219310582427866281447191060045194398916171455806471857554937236676636427951480743388698538175977936287157426690496263314970756940133009903680391631845734584317627004713186274416037354268061306888336348154112811582105072239449622703164664266709002657146129124427154162842264008580031378804131900806305578598028136206615078990468655829088518810155140988087404486680407180844470901204425484587191171320072885328847754491418285618988283468614313085015529649612359408593677597112278340810966158109010846674647997302614892112147443183076007121478654576205147637393305852148514142566030612781875429690302676117203957112194995070085644826732908462780324155540526502931895234312783419979443159585488176083798407502574319261523264999213740763916957470071530000568184462012623730076666336985631118537704505420322271539387267189671344746408889702375009815710281780002919522784796374721362999921930823269421722856489441377800865440338065904035941297984920317946623938233349382401884695181991632800585313381168374681820047936800643393508968009477051996208847170471766256046415408460248425488017837766530743096584785466025220507665359893665448703146205141408188529567990821172551435945394688773193373686195181776172197825166351900027184330068689611108032717329587940072050002459810769164003783140905044272978249028654598084227455285384923875614185984549518227785118983233380565124303975126362867845837487398414160668218770385147063575347026120297222432382651244645972531558091428774189053767523933940816534758284730127397319613520419218288007586780969676652834362179630102844932531205366011728715235159134989095437303046902429018174212730893357493010265057059510563652957028399593598103626025467322072401814469622983828174869879353186199264404259296079710051738217001518266190249618454787346083283994919820711542629996037398192486285960367796987445068000076205128802561170200509146204435711814918972220256863227710397400996957960201124805998707053683746192759424099858999954518200942579505853759610121773335047550366917393099338993874174632853430296596570014102002260466309134143009965215733802457741536688996083825645304160591937518623431968447512734598510887261544813917051902089156175681571487470215610821946123806649747494263055129426009205221322501430382212066601279321083640893228939216790626097497820210214358991372203899660249715351013858712510748276584546937873061054209770037471085302997322951215349596009655688217973816460694596797018085942402311530908239599317557627671526264910766168585547856416244667316680796851763134041870242131267197544964764479656812642976965357388523375712945173704309620354418514645989200492351552979676187544402110626272406347688741646463442868241115496195675147337350628317603306779585072359783780041282678670669419021236123379463057758730852532617541858459442408282184725175427638811986237159452947206468583223900593470758490400233195191422114428066499617632751229897521793733781355441876816839498955867323601067221599313698425594667199175638297904052062082744213785165562336560373774636663238558547657304917593434162250211109933743549063577652049412062865677897266875515033387634040686755706410223320669626156960332400594918158396374005536045294412462113513323434660368936147393518942246976385707602724927586251241576781180032030632067780258970976632855719401030431483938213706404633964901708553647489290826193944835604874660329735951892837792569869760548870379184983195080730706933578787159804821322348093513492643146959217658930160043691972206044603210980368581688906760903703221207144120643411576062187731816089648188337142788966517141821567983131754211333834742868973592225350648006447147877587750752656991825937234096883359662181674197759484072104155079028788600368240836043805967961697933303067591337613510291192262270352973837983549858290271194101816159754047090281275674467151966793629830160523749105386945296796951166069005081454998450365537199529590491762353057253370072549801920133880073223737401623362096145252702518169719668313135336639322808317659845135034569299366291967971518722238860207303541805453791385909812344523533563835943912559528399519515314178237018433643591102829696849290371334794156066570292437515588412871221356733535534645885874595370953457007406961597080111818954142481174122092711281232688945578188786481510233866848164487585154125365574467810471452279575635019496432353478330530917982811388262850330533116840948315657660309643459787415070203942708602059347072099734704146079260995714741340663843622539726448482127795842214470030605822100942634103619975955655768159715725980039971215739272456661163548289915197446718543496037353188694315017603701269162522230528983182996422418180590195750340181739280012548965934188997367835551323396741928748318127209366069789789467216874439688234141884713715403005200167428308772916508811960198698820421721357829557719589413270228494889672648611210673718027261262951276417614487191787269081880919086462241428101908345790617110362123177224857049933420879687215965596561744183841208166200295399286346970193258383993230827523025032429055165600868262377099190002340632457134843405370686137159867874522482156370775753947195984096892447103154553335771869920618060029595501604930934566847188660979618612717559622428869007709611981249566368559886984886245515574050569279550065463131985592444720136015236269161330773231950921368416062618998354294066534605302347924093812445772603650917330863994485564205603702830941558240566431502725869850749110691740987825082441935665386412141853591796695725990137473925076457800799405550622613763559037524000320956406222163299664499090363130083464114772721851827357356861369286929001734935865026256749010962277170436118788581766940777354558176399307997935289963750491922965022431029586602372392410017189907165239850322639106642136483116290935065291022713226201518366601233360727360368543935528850213240024197970968750510139124410281200959964595908110195943665923429860536150843096471759696128700864118051115382349763356863349932461549104973675285923830102599430922608964943918716616500446626723019037925384379285439926894290277429584586233928399147010970082614031231096084255744008755785681187041017687395403550803179831622347173382815762548802970867286160501346275822988433220087299284891478032494964099916118440318259172408754611214756803113491541630737088379373513124233554001561805396236189082552647869562904781348595829948595974885884312337789236389591785802019601287471630522389010706734513035785105164211904825861687770204637181818500358472111582883706758163239335020673369743815793955910661652999753201682071679827233989065781410418509510043454125576607425540875269294892539364100891529099896218349802174567323400382487580680732510147101397823369228113629474748275765328805593266283106894262293237326511965818646637188528518838448987177068392505616034634772516395898587488862596478568057210546376333151504424352458851625512946088407591965753386708848233859236274600743638716475687686585746189298843680328268173142362174125744741862977938048050614067181195312899879091610942699253068830749929664106868346866401945282554310005022721703203336483855048582755042759623968162221619021806182099788803279529059586967500458770581845063202233964815897911729730397802779225160455641204630766036450594208637126103454992990374997299299225716381760302569979066242811265002174619286827654861001431955627879019286919354591350669552363247708016124338877212223938831593765904274965664194503150964267178935037150185912369381013990905140787007221001132522131503370540579425934264164121538941539482099802753190169576214312177431915760460228884971934169280461207911757107333501704732433561782716865082130959655318523366673801060597671744144475194887588219264613513938347251285794254939898970978568489948676695002420888252403286802074082053099456620873102372691875445535194515361991951798352230785100617585587540616757068772727783683632778014841165690830271373510781571793420882873497104514406048665213074262535393234547687969990923728946832684284261057570302776008943453904253662001627094678430178520528640608448178074977971497595115332043735024408353507535856958375808863366600534437286721835793041470823827022666030011905587618124741322744497365817493983736876434025764283717585574600822585474840286634696065386168350150686116662148077416043464662669095093680161175752921967768238042011541516758954391484940068925571249669453325045937948976324798214362822790797424693524127992083795000386551555324406712082570943858087418245979925784793101454233688354011631031666456743501062803579552060715522373927914064853620621452170790206408742937423994228604805305355485915570596056440570872975192859672071614604004758593064757216879349204120022645668345157401182239187072625993887316258854888530253145727457179594623524179571023741059423025240345701369262643552786299893444006195504946528822753005992754691603327202648348522597769830397813369093215089065860592983372600115718463603189878914445046076367196312630456903000872851679614807224060745731122559015308995996747818695616415503085191642842557667028129695323274327800918457764489021526195411731518765938908343184459815327454636583777949825043913402754674812404742938823065290478002443004686843734848044372160263215402420072399948422825588224166958176183723322280192298592972733831809840918676691179656005025033314036425359279064678866916495799702006363287215384468107065812250497269584851279244685813339476453040787522323267534766563002114327782879183934878056149764002359451658805193529979214694684914574914288932877910334156327387538762493363405378480541581485560986966913007995432642592675662179036655623518689041127222829209654950911399435536624411039462344588771085836691847315379369660274976235769014440975952096177689635932703536793069456630452838397299458206487682893282315115201293885158465539872920700395019062462736491719271765297164159807670167673800764393990699817214283723188571675748461342795835834865944775213320324591619091107509552241626358465535644912031515326293676591310417340195544844585131195588012919155592333936057029987625350788931076677738973605229222580754454099140336988669967766183141476243666964340802114916373554387824818451853773133423112106835005613056994954857211662944208608895865678094832574198598466222313611897703701177471412899680411177873746237527756511895772902761564728281982907443026426449169309240148758277187774269273961773885097685115412063561470393196834851940159009268939573253411853441332200476676293673215518276375113344096665042266466467028778351470435547822197208334049348385163070399646085243599592562304456969977664483271766488705041752394990399312836022361650747519601684718709229235253181270353510751114072474133162434377790849501649580764247358493095795204871716852186019663111256940376077834631562821739323377651595713807755640672338177615011259907445525691766978599581214545764156213048518008235770628424830979171360398538918827616190222971168141196905183883976059298743878643081181627725580535762477243162893622353737624986022057553786196746705538711814395219621505122054044096735301737915676078815214213374797847533193657050693351932242415612946075473367430438388761149486254417968845531833370701008646731214001082324488429454069944346881487336586280000138473969559042451623663780852415506373059048355792541924399362509067393783728509705206994591869518588746690602124811408684446548880023855419326668900419105079048788295952932917449318218356302810851376238135412071456911696719217162349241172528759173357222189565355516727471215047122784069998998782101822749745843995495434052492278862217030670867216394915760372802418203054047021729274661352312458768825387335986336245736338508497641755879649085642462666673030376224408591493726234648034057380515690639565515324038011960434131738516713897102468252819808752826724655264666890404565098873129757642042973231513566863737524323927683854397786982955132508304532489003709216692874549390064162400336333748170852862722596471581285806709775424786237103890896521689379788348569191886631626934682264763117989869739020047102769550415265015362377761346183162709741454198597654314377358709456249577349897252981455560973318067993626253372195029461464391445225934280353773040047151389901901993759608593086168393245789110308179155480597830279236379347833146031059490740876678090901712938953705111815258279636199573755074882938795728578909381017383370491272309238278045497190992945727715932746009837228160645190400679740884298011131815545113644084134649904450834020401546026642095700286694269643655202332986748274800919120254389814336202621078934312957512794819621305925072565460338815184213644819293488308639220787914160287477324474366309608337196396536912155480586155408090086705739308870971051781866881492431547645305866486660235062705101598734442203117260384803759082215160706161450570607402662790420094285314890767711110670855375139452315394473060970027576870368371869778531194951664130779625759870536387092626828872307026905795135294841396002328859520566338237087950773856843592885410346770235885510861982433716614736914752659879742976709399677149929173354058445638364918721782634448842961437794142156337167754560818847948735204902766473798782634748366878245166678055420699405430264184598645674781171843379232818056171934069605551418159180563144048317839492140286095127608213416304632474186567752562304941822956660251365085302562920784344459648036677840182518491239599881635898132046731211170333632970588970562187114897819950944334732106630532771517702662478958500124913740109248748996632435141706917060537556165127552755002626803624514017499380486339463065951599610589332468134359677926698565746326357684220870235376883773286780766734772254422038114070041874652112485502568298840817190529811136817565553954118641013065857408533142333238006658126566591369749366795784295889530884249715187932310158117605984732758882638496110498639387360150139241124869074789655251430280657154095072331948346194509320639124857570701157277125352895985834238106607389750713065946411986945172252363532594569105272187315864690040666147546911900180628938274868336751094917865448540780670486816424584946037480232917495430065671916575179610089038091674495556123068666140980186066028172728768241718087556452126165250464813171272920526075034597301123623563423996560570464643623950835769254299474763666041155194254478067671842187559064820313246850800523479437166868394791051202874044845013363423043139405865346925611492510099034571374269291489043381650664173242971615837993690671235845519225239640403769255029553705250485456299022376171135643553376282737314228395494580277810833728984692026872050209145813761995717252504845836981522315959254047069269549350664232832601338060718052317368856255994948724471610328006962845665443595692539569360686087577633437484698313169988972983548039346409593678982929791581482340269498730802180953584851404320377652925026494353704180561696989842743927882570368874854445532334363464431294438536954012809367249891746152258442410192181841806314059427049074162482318419071277656211917317120336112212844258449595341919733132040062590305494942782651824062058356561753979906542469389693673530425076229584357521568275502851918458572434527083016475915788425972504245326108219292752537353170253139538714233003228574067176304940103720812863043502097013525771592877719799448630015394292350705913369359652724505623668147123730666813344861451946800447880693667548143245679345966398214190590104718445222396748755831080597952002506544896994782769850370713300164843776536288179606060154142630238451206045300274152049308260338009728223031866985839152010135631281820280718885621419239450835226219508036687811906244088525706515506001127741342771562763320971032013951911994192915102260628970077565492551414321755722336853170909434547552039152585835577175899466226140205068556989874131082421644359745464350023000379849253855841215315400543030112112188810208827400214507569116176527477250243874251228734256511959771171224358444786984726956560256745009070248508042690323447675436412410755125535242880903333934941023264237436979996624770826778449221397583903399423750773234843134437978092632829537606963762956075900469458100265036386573288460278461113523471600930504945000314933963536529051197145530483949710484652466507408333656736732667302787927766620864343316619488920843692557370055426581723793144111626855360778548004132833769049174701491284244338505337799673986737210961568884654002226845869108679378182662589721875417941514617747149565746808518191884994916125670770602489058983095011223332869331001542629967718810423900764915006904188969317991046104773680830222346046329044936401538759109269917246016671776168687275838361273225250648343519419118210452534140775913358316950434670568863294965905377385046254912164280474756480815993202938263896140413246414521046987466537276564868871260855585292671116873165253500973606167909473318276098401973992415085855961274447997167140083213507110818040422544159600608577261558670035243968593955699987276174106448832821985068430178658244504439858610779909721907031395607826657885521613459367651692490009195412964076035686164445232380827350814024446967437219491396042558792694299989679934007333613536587223318661169425797458661997747662942207225979950625140695547633734871118539632417914857504811751344272560061368768473430590771906197363594875062277571188047444087020960257822551653307408169480930814760819492298577564187461994383754857751115516479192798435798719388661929316602697755212226592521212463889289394190720574490097790809316323353463546670685909858783981290913226944059718033321890342334839136621067125079279724716537283231580207726504502214062007882898803993064640489167309645537732748414517697774511098613479443914929340374084133066623799637442420217081386338522208125890817932688290537082559622826610905046082444069737038107643057672472006419519229305063303725050405040920110181216865638577996921647726175839988609854352738164036876859127933235951074131635546860729800307103056308790122591801158064578168517950097618445529912184528076493174052184325655995046187532062229684364224564669988620165455952390059525894486784719476870465127812872767073308493785346363824850240174694596292766774585505381443743860172099912568146791065909618423327530900058943335188469187256893380574910506657793624332458852153936404916078524442605197066994932474337797782543258361953223715562844025910186003066394364266866694505686219570154731263415556818601480888967649828890464452292005694316504072436742426948091542242359316869971713965328087390300317302823015338214438734453360258825576707187518351196156610229681070619922807558707484461808792713226036376611103189597180752115464665300540589704423159005049009616229345062439079212307283778094762066032466150196449758138521751792142618461688318437868830190382969144011212241960044680094994790491874470608468657247147233878280288056660241020220977408223706140768061348271822873359518399130794865382097683007496941392270166868296564022999616705875724037182665459338554878621992439362096149421443031333763951747605785236290121947508659463732822948553714837194855193521724446494187356707397788062293843603796536300322655586334000340789098130440576531319147285206676335688502446657950988262720347914877912422414881405958287807018202313635642978569291618400035406518421225776462442287788603755606086964777914406598853832369206672190359668441061142381341155634393283011806670163910919767248191642249708249800522857129316294166313537687810890909918110616264820144797906619244248806885650994717543484480848051722146963585666639526387191528231569632359144144049838550879483634189539411083637893431936242132560745723617562394001182251484861759441788640964565873697266155873054687939175156399503723798700219844011618854161379334353289700255107174881560909291601599691190630560244950426992507141611533722383478200691244124560609930700383285554584340949879033558687186516570853510468220274798081025363963955737460596624549423043599150854352080930733390568898063515624511090640761626813890631328119688621153795801025352027003512657584205303638765029114568000823506626671523148430431557010203005296899426805083651627553097604051274364080928066853350318663521600381880699245869241947297038297978882429653086479998622058970110352963698646108786223407954247315238394741740013827373495614972649249321585637342112437206086621783004621947050976804048072279599388943816445034392231374164382133923954694567035776327319687951422424365106504926324845314824662078247381328896463236475474843111307662528909857047910842140566872689707622170640878668535135463396793531150935107640938218580088150563515196676070323046191636195974033125672572232268166350098131001777139783097285929481912565708510918894688007311005613902637990464284817857961222278412647704225299614823757061937307793636554755086655204837087059477606447298456149205037970582713876565294821420622568482529962740552521265073796401640197180481425263538995906368404320329718860100563430200437369467770410059486142987992142660712564644466793498890127273979188223174390365291454648251793684415081511023489115810355509761587388796481802170243740205963324858816781660223318941519544614507563188877053068621790052183245081589242051854213016861442732308829807043043838149665920938067996817662307557825902910136422371296722770754127998845628805097536560309983605876307487460171758312262641186988357165024565427830772044031784918031648982069042185162441066776667467620099122424159298864570891402844048784705471348834485502834131214967792971336648099553788408368328761337439742457431008301872642328154708009310561446487759157268544600921219601275500953626341377712147909596697581379671202781404855841009670482766293616067318200133676843285396711199967254409984957032531617833341352873644731218490481003636567547236041467504842269588521746470371441110645332337501810827989618756700738796739770565987292692324875306632663034210522942354522793086276185771658593224003790859836086713303441749219587790238786815637067041084716618429111546528325198934733703654728942690563537437852600562126400198104611593399562816918604387555751087851860073034251890448777498976944953828429513777406802931270660376394412974086636510754509775837303822386323484278277902442942952946473475926947158040079869998928453223662452118853839936287016839785614901966570720773041565513568326977652462745250990649108505640671205281351302395186010896993421646673188217106440699293532813025061676443833181962478328602237972487397973920373991185630112641941618782371702198526105280045029890847174623254255292786176700763484958597142025043437486716040562806653934750151517414855321305996856676598938887787846434692310394298612348220310040437878217863138164547569654715379798031433209038774909621142201320476530845359437183072162722716411448551637529419520921744853221029697498069521421179314974791017337929858659589150112721945753896492525689209669411239972133267760052746344212200533309271757910271758696693781030870385046577393028561298329945081034040145098003665319632829895869487733833478028644752372935935590810578226206744440560481143310082372781543829903603195660291441314672191242024368176078451423815267956477859459113559213471068037174865112404196231156972931895523370841121956029786725895893845617314946288948984368284463020831012772742425086078424395998951775722767491047909173209104748569199152877219782745057738700188216596340632920526113946463917544334796123841486021164247760059107388033745597006334355021745394036545262043560686809694309394750154501190187525824084742230429685561825237609068256957686412523436457383775853643155268243904017091413086094481273934967310191961596251753222388849254113723058198572268547554347526962202184144904425901385989429064063984616847483258155208026327204457652830631552725284117901453379802536519862187234738442325314627037541932967916881465866396324835543777553817833156304707936634533460625319078733662789524675089721537805274439464121697694330576666203803844573044954441667141311234348468632123423294395212977699028407457561023398353592864260189463659960002171257416374870489663181805847516418468637659151015308649276159302728130580160766701539777522914463866998107220780808029545817223286435204138617035660447609964640656195815781101656770015098233236662975567467499598221345613454212894894064498913101465452692106201207510633711100521504787477264762128932558333855083830472790534038526162328817707868793479501566477878366931536095606511229991899109423770819918335485739199749176881971970924946608270468455456603640564893202620282403599144279454683943579687071586044516648829592297120315515456176641465895041849309640959122455429169982107824817996349391123412790941275371406010152967718299775864269339975960666054645440353648197488209735155155737247538946166326981984235869715052207110061170901389601634895039664375948954300404268178570157118433955031245582612480881485131440427834052905104249087194163388630958299327052580329406953048660456952942833680587316014658311687529327736475111225063563584005922116666416183681825841700378871412256387269471332748883964667315456055596847143329710612790768369952714979221999765438274930097264509041258007115151525277304091390367328505358685848377738499127626738220273949861126336304146257896958802216966778652899457360091923144387794588480839709846282356208795052665977271165473705622011483183382171400518087639295137580552884882828278568822384364980489895663948905516653525569795684404759278831503911157677236302823533899449304394605633386949623008344377972782800853606360098272373783159031551443651812126011931211630751762525842211364164090466947380203671143434428204284087798285587873312996904619183145049556251434553826632631760409072208909454214680498501084100695787202253373767897266749549130554783187527991581415158545532546174269154435926775023476750435648537490348485765929097280688470820377371393758312442061775533101737022460871552670510921038704322992188546108293735130959387533503051017513706495404597501805944300679274059552683322074139545921748214986102323305857964988232336036502817786550142050604644938057471970530732121954567739117462725726876268079967939412019517715702619223374446591775194605271822707577249152241953608352392343382364929975504689334412082980210003620139791806166038662618411974925803988102121547118678888568370650838623578609485791431296590121616480204527624301023956347797820594912539299562826433087671499893026652826730301522086346236889220686155181876536129874572303757823719573128529023605956563138325778567420450172194309753809543514637697532103777466843083990597474522057085440798049447316582595661137437782813087077557898782566107473286102021163751423737304570012629186961578109675347512413791622073761696964137425733325030649840544119518474393536703989201722533757952271476486890890037008677891273794757663358791530932161566653918690887969605503193785448009067561939226146701184047405053458520679210875757317830865955982611895786492949451824298017122970751449330397364306194683484389381960173562674751366380575259561113667850267655119384558377350304732277183948818554399543083725766962507410369785786675427676721489422137294780339635588727578810863887487491441525921056988375683101896164282198153677205319219072247056997958105530069614465353301145988235745356900346247572114309730756685518723972389306569477207393558615548973842494302097518932187926952350163524194017401751896611739000966354652319001040103882693753049722206099095160029877312906877990793523489955482348535225733172046619510936575992059390210550343996028141119553087561242760515269846933698592005812191514496790857440957350882153335223716314573215363597893925561573097110165769477267894653235772738380815885002102922186672774049992916704671614577319245547910331167456718522716573645054537709291026374491591855923092477569908658496677790345336121845272276728372383207023452842975922245095966528230292134417502460693424204339871081662399145086191947879666000966103588731238440937797530147134584099247384235907622014051978014082399561064809830381798833990858345639144711697605534330114076305961826351180681728965191965232472521051750284333188951974159614747644741125456928131892531015177170895529177148862395604003486073491176424438475776766596090309596963649154423809297135034356599448224009136267460235301431227640482988659652170383742557631026085230372334115263059174891545518516064952502445786467940577703615500427314070803971637727786325218570747005943344635470465935928866205798253922175530974577575586662996634988664133067613870961228168885979573031217794553247444262706008742123345952514024350614719145500494118079681562677511980086568733909750800913471843726853606490472107268031627718569667097876876659570875283782947668364201923892167156336496278528554583043810885597212491123652868533822656325460269697028444056884053382477302344595512793780570092726841842855596803963454677921725907220186679150296109161622748587035049854240502203919664745119923037171011004206767113765892068168679358146549422478787727276918810376662036638883283038975138948078343544970496235127162720282906975481083528007113626496660447042133649656017871193011133523815276240690444639982480568082975404963283780485151357490915407587312802679472357445180056368481287662764550266522509229213101668205662623004832091573563917636575024574009263194447542035684533779610956976725056634459941178271430635195295837132511969438400133693858397816971370327183643587806326636673910659578920448442143642450973014954209942506494767604363831334328079788928883895216275192431085111354841334880940936965151646756492271315330298233431845822065480935701303783751104833786303247022942916230765681662758420226165964188778753079691359837913799365318305036663855945738601688608040387281041552973606651636296334761528137473526723202192676592700502361914960403427765261415403849376197241234816060862482808917374704453603726511814005761623468376146270925496420534661828417733939794922895368731721816496977704142132282909522011225386752857019477657069057319252253062374116676443369065602426578713626665185395352348754305924838762240604756351870047851155829320126143310373044018985185487163038138844853923947338014399738797402716831169435025368468897234932319424972708071871440112672913029335905384863132888022317103315571125812839838809942523264919329321285460928847720094351845601650472880143951052193786548836312325009136562974936932738772570770899140616887582063546150179247707308324084874037880730325460803252958565020518012220921764077298858687385541797962879884156798520425034828314148894369874542195674942795335853450215287859901832415584457691899267434566289241676983190876616288278068816053699245542407687310245571015817569446700614047653960531498826949248213127592754169096638394328360063390355972368605949655898106158101198608690568061512940941610844878960727242053873159835743573603503122834196679313700735560392655346974329461481110719146078099581311711186764166019792191549756706481169353267594050829606826224931004115039455086117812862408179814608940922633147056374811394114927528644322210344362621923583020857900102501143526451486939432968739374871795884756162069223210877228387932268685215543469711938619001082082236540535379065841692270488377955374374198981425606181728525424910400764744474372114465981085530786736145683753284756077315604649681036413897488355264523104863918290107672308708751160951507584015989585230060266026657209308461029020053252480218049343363649844541355729894620936562907105333612947273461081386517841808653113249041135420387303961248880720055854259934323192528582680964984163656615561931559733844399044346645325074391439978503337568614823687650678650587557486311143563891051817019693357951547645080487205076617110688932806677091512794549620069423659079667502679644459860630245062875830962609771580060909378298188624523682289573856189664288910612620522638926707928759715128488890726448193997189744687376481763138647613125753486990945492795742687049486583532728336266164330274713826160145890927529152827860023514350244151211596933843465105600404852184263600692755960024882638124958928982386627472722950505455546776650866646949863674708478169785927574074189009701194546304089275605973619299403158987888808026901822079377006080892871219007040881272206306915043123764053138410652121725967647354225688515332740925394840199111300449702755055089302939434124430196814996328667353621024977190491615852613038281002566282923264808500428029065967801359072520535328436024400768818527598430536865115654655743826270723426212171291233682447658052409975455461603951567674710696368980277685118697032517245915768958002140366860626723278762590890081366127702848786040546499667351892920520098325300112045208228935915211537608864675566956165839783319178428845370234086483371748413389960895039721050495948363478304046577160321999903931941703751166315366369951134336091163303651610801429887686525223557487955163932223913740127060700334489611974050516650752668673447601373026572859111767291064906941107757931912157467294563721517916288317567139132201406342510641755694371470230278900849698950452667746828560879817293925958346754295687893232103551800398197329196608666511676193702946848390710310676199834875666636425034548065288985300903144829435864397874070612573634785350602060910917210561697455901157871364701557885041419376831407234818398411286160924508573866970897516153717561687572659911706519698569434018157283929929077938836384297722436331544725534958143903267476230096722225860600167499619685213518832957381329291034317145283015906802623475645592825144907639663329704597951031512770342302546736110181437692462844127177638975120252100546581945792004732082994086181051778576012221609747433594503560774404477281841929846946614948143893402847859876831648311571003415388173883201477284291042729787916140651129758071713273124734142134253475846994047107095287472170380830231376811559068734540779384833015913260513654327041348027923052603049419089728334897243262900393076543464119178131882128476955262055402109063611627863621827652614341895338490076676930663361433208410039725602832983025354113321557311792311206160219882189186265739849270111167193202673926718432048324818460090006395983532100008974792973459744636786023705995012436195063805631392813591103239083721732780549472048650841231377719570790893728914176177327820489387687332643541398524290421070338885852309281999006399047553199565992495115842589168966061036606105597500808076425025015664562324935772761959750560821063066500726194260690886545696262902201689252271875063549095019855393473810955468529553468483872535888277735456627214096900547272775579611738040286106133908323977008010568293511597075639384952027878380014196959167451283793824819940715271203953033223880082998861090343429933411467438548602076944713346509205217878402183300956597419566085574628421186163507988909327197148088138441790649306748865441702886918157471817702497060457135207350509717491583961355815280363015767185289319530926685585615937190746670878524725375059529646327416736319797351429684624153594607778804207653107549703689084111589731678563832689880869959304291684538528383879360149811337340374186967347943836552297958010182104019158105558871315442887387490426621396957240427649801010258015814946681240636999854464784926302409151518286863583030398492044226185897123599145314114806415048849526733511753785268616011175531703997988819939713738636236136918030508973428697557241086467118366464417484471645084785711467296146548369218923601337675626330462845528709255762173421677543943743831084806381002029964432180700655130879443573161897473904053778560134181935089442769964290736417845077294212711285810493737142283761930744589063474063831863402608831072764915915376116400191013695318278087072273122166535858229275174253279696142354228264633754683880622820707142535930364207678267858000755550838072289058941000301891180406821331478203006690291581770821651091688023135160201462704948053105806418484691755462228802848412943666025735081714931262609728933243112826144222596565639085935755189867634960143991834114928488055059717782183887223057037042996496072156491534986248368157491094363412508202129312453100231130343738337839708887737705419014120975537037090776832791862845801711942834132200228619774393564556312434257776882087350215144650471894728349359859692294495691844078898841877299528414202812990997363171347022096302180211544873707286926105087306851515585730141560674241412837381161416245691119860071202828812767006220431861135982303363845186648488767150094822900326228358478316939494301756619962429440402391645350609650366152297697745015787728110510110165085150375284083717545643270736070217295117599800301777201650565581717181820391943358688226407511151836197850502708877210413277858396905834628751403649553979425179583653459944177397119647261815291644104125381788189447954329446690185572846015052988464943395991005630717395169245518757278419429809182692788951483099482725856765774008734681779310527205312788015099709482318922706281208130615142270088340817295091407099750873463601918860927597712210338646474308324042279803263329196739813208169839183227459811859684989316460048226433698593886783601361671937462091830669614450778446995166579546394821852259349130937572903440244834910114835700983070394266399759154054571086199282964545700772598154172984102168059539084608334528548678968923531334273181062406370088844187549788092591671012266703829082507159238715062873637623921264848790616058747506986987751419179251645060240889628282421461495403407776495030248621779693492618555223980177805570829461496801176699037040121655548351466509399777940938385675495711906874709499786346159375689875369558081670482341866843180491827639592001478801015416768356510492985143605369167145983167490846780651708420678435901483218077046189108677540759945445505269037352291744195645068510659026313597430427923374664076947191345212922012143008264627725208611496062376560126996471657456392654263645290890058537562560517202809526838595541188790055752981852744342642400737872713681628777903950430154638796731734338750279049920460462345614361412594331646599453171585808094385066911559328283418649429522167624247961099807085158517967095887262373272326753460733876134070198118552240130050617225085544942922549321305579106153662625168807250410697190385795179535321933964085936859824277992744213605522708227605434984194419645954559217698492879474298136534679198205126593079247128826310471783416510237922728762144998139416955580946304392209885097490705372347398978773041497456873140236878925843924848938544227125312466134565481139250063726747878409307806664017740460677622663807003851221622430400150906712408577370962822062685283499229988307006241445241674509058772395703257681076524084262439385278607726865329493838256159324975032126863237373814057846270794940007318019690013460085147446761340886865747891642949588717115724485373201529461624897755784975279032699592049481195401910877266638393372005690409406495260644615847066161993919500430039630767179591135625490721199748468516977674293802389050068539603805366697080322764562204201478674431153248805070409208224604648123008224806227468070726837930843612000571886774147472487075339928578038983542680028215041426585529984384466966764025663518081876065068090993021210042202230467408972032600222843108297244976870394088740122373106397573541391558401207507670076112902022331199608264359302313327515056517110951923728876410944805450356410427264238929956782703261887595438485295112393474812500719591334062991884761921360280421813786761151490051645101860747923788443096857768712521372200611115733306401642671821925774195684765727768015907080082819543960094665236341879912412108007855283383176169737011977323841576972332484813772771176221322186794468408285103381756470653654391792119349614217777028015032302570983110783648290920972094131014570352228258816512326964668288501142064317858481499260078856847225866539001806523794598248215682014570124003526294944282622818407421901862534887659685387297629745710221682929922255182306657854856767871238504995940765560942254556998657694605084879798960536708792413803284370046831045728154775615311056839135971795925390347903132085464005276339557968297675401245006272142744074068696131300585135204459006512428663483062989280074677547550310515496385896698976876505199715823210128845065536248614104398293856366473913189327570294720782542545502794470449363791880246593424458641457053988780006051631099388076312533890455622631295329075597680307200801389492369972349715037845538266099933537680220484093525756069474818054830619107621361608781631382173766222569770822383961086741745903739500019065161655346592857085910740221778438072928211535073062755761772827552435067426442531673404252897099689940276198625763400920852801701189353472890292857706657372147713663493266220157486975293020120693855911088949708652444637347788096872120151897169741973489626898461521891805789012194611844397986183670770151404006084251322958913591259367874675979217931090760626886203296228004949050854119830793619405998897503032515064097105535499426062471077343404050930569464272692894805732054492758601927508141241675159081654160627417162127754874891830221331772803110816189898700828494324526718509517482260579735344029352756573314238905464243639453963509865703838884594147645198131343084058822552601060321174100644744026473473100534293438470353245652468131421243554377714166246173791839948406487270744728751726296168441979727513670146829376110699087560894587153347900646678781467412162188510925295842338653982907895207894524902967680720046073589134806765957219228550472678694573039993862595126204864249672433158786596624204597063646228621004167020062713650140069950536220591481972282452584946979134244579695100222615649121593428920524343785063727359540518507126570963972730886905598787731111905038976449511704795593097739880916799105112228365166743930466338664678511098724200729049581800064720813662686308594947110120028807291356614308814154698455478407025667102231414541448177131779980427853128178772191462401733949124991885637434250829651022142482383823248760589286767005429184491493795852257178565289911386858541255469107356865582602731065633792912689089314150792442540073775617200744791973206226105259287309751541382407526457366941863880932019785631541882914730022524818328935468923127536963814710623076653348555461413416923849317711416407106623502096539834654657095242209781981082982389541367317276146203864159765161813218902302204520358670900905488748909005737029294398768221940999125213711681665881136300270752606637528990024444526882946476068939526265351342731875338121430118935534930591132372950036868779259364223083995854323959530355579434784468093001109314946632022322931294654472863817732540250110273482051977427442124426077605688858717468311941410845065957574974867874425174601180987663058692119381237198918052096667160209320244628940507014211189951621107456195622272168621809766344157415695646271995944373136723820199128113189322064599060218086212312963538340884587467571946994103927795532716744536949807109012081278838101659707303382924592147379877678044652988293361490998333320538784870666813173809771930531713815123188097101286646924448423852398111783973129547402731450332530399107948498220073693499425756431627880104227591512713364352838505305957352953484794766821917920718358846965164670842861547010311566059509053567350243438347603893626191655068313786851226160530634347365314930218482651283126854704360270493462391294857200057311539230404256714770840183499580871074304724046317323176564477597602782535244150745806393120272776380165701069957048583949739797170285659719617809620161909963628843844318650112954344172635958207796563674529520648749277331050333880473399417101338103127812054968787834662116976594092516916944935977145364005822552824303581144252935165871913538336658805683931009226546745231964607345227745508197700143842407907117875588130327913891189019465272019168757581370505841632112335002484063998143012543119528718937207824728292987022867667633845067238217061869578587819942406361500617686728485926462258825290517327662889395579552460969359576401211660951592761403368648983370912365475212267896640517469562477932427827190818869627538872686722771540668186032515139477658424913877037946975045988657300642936603759777231693811874001664146468755161745371744096920767582870161507220069029825806903009271468493595540315080075954264444418538456918650856401720841672311443340047767805068440584991599219994144726778007253400885897762533418060931467764034302506786311341130008660893504906948845497286537166486090109082538226947318834765045367094185821018653142624578175258508799759015389522356061861433991468732275412429223361333266845314055150936092699415343884496768893663932146335633210448369573984374270790047456344486691791121831061500524532330788889406303728153226742478211037403299182094919457869294730786216923063546026570782645228709642992361907404243747512204397333712652282730393683776627708051028155691198277561425269365208805355863431422518473693628918798319854447000479908026994991747592779348910452187559299765622476750259932388983195863204992589118906557774327495768003885033501805044044315439043315040784999511920702923868569976779111109052283483858854670251488896223060905333460514036756299350869988222050693164503164891171993761405090425165839998521310219873224476324115037425600213996922633448566463527090677661364666478612637332937066955951664440961214581594154673175357788924490510819270716152164429032506625484835504516876316401973632626357368668029048975247141449014885012703108389905660506006061387942008181186093313041285534324110307442253039487809038399180074085071644317803472209493129492956375758033201223277629731467297570664795524566283728219765988400465976854208326230707797775511521875460786980868208671941373095457091024527676515233846281873012831102366671512439036816911385543368908846707629916162023127465588147890546372009618013005093503597482330409002955673084396013948890445384947113435447868504987403108526787392053299784201455734262160747214711346334006392435131614479292360092607251315609425789198246704522529313666461137351277681128711956157773054242675054342487745860575587525619505317031334860613169889973533565907947541550220127040563235937705022261461879612003882613625238198107741330771213980342999977056826234445461165156199669434442512624705753277482383080205824287518447697352659548068215506528397224257206339561792959218720518238664483043892158296775222224498848604126544934465866629810416465234313580399936890409035465630343691617148720229318726195882114197987155901099482598140772614378921391074220880684223015578663971189434881295853368016851565238623354507638788811679948246924707670525460676666487880137864118308280978734607000314805687357722353908963192807538770381415398485854384533677738759196623779771293548949801105499791328664325746784479043772820011902242908512939803208980825347560544538610812274468922075485578804361653639605184946965352901627969961458122505559903063702093605744895622695498255751999359654944732852978879818065931956807961156204823794785851884210436051056001815063813025670493415930763400659942918820168169280829238088694632588663675018531658536082806252889839088884778369006632001104597457165209515779694489487302514567984799603000621306744798257618991982887986199579568059051289556881544367294003729735905886413221689021119183831009511093925444986249326307751787577131778487498256620899620485885180973879459883073062922146343579903464318982825747987818345530469629881403720569816143735688113708110584704177541790884039489387059457359417518242195938427634426577681601162474779284923032585250005771142512228838729947190601813987133562412595315054284941463935855596376164610968896426795212604570795720068657127124463828669254467219821169967741053906727920716498007808470968773610737134950802560043855261551777146632318421754228463058105398254503794802314629078119527936185579567496734991342699141543348027706861212609488113146451744641539990554400626364059359156690954221029717389140347743482426140017212023019095658355524743760536596396871451483245971537125554311135552319795645338981154626205144268665104995657446709153654762520075368884005626804095745876332927369321071686739941633434294861036520411802328876756159873454472539843403444726997741914785130611004931617881251999600216566422915943380118174190279957931423002561764588209703165134922544483995474462092828319538380698162213013061366534498418621297659223321302510367752027671944846543536867706900331933030441627822498801656811202916801652882836869089848905121695410525728333448597336411395407524809280526801351205666379333889624183290194526773462598070767232528754547503558514340639706893480033150225295771368946128728850210640790697556875770631056309642422577951370606469108318723644444044180235797134084526601025281281473962148582909856208365222444032778561005719969192067567484742053867976775298358717633143656886671181669139493663008252450447598467962509549966949028480865063591504741002861755812489493398228621599834880095796706436588593131769689294227040535464401964751435169466806745494442744062239736935782943466948034051389356010182456557389894469155268386489956069169092826567920676016804643517315428746874427066004137858422179561195877555781867266366197417378541758790879669558727475572771066009943410784858631145917631781723351156377445442741397631231716450658184300481399100611829478071955374688977559538423805618583363412834403831872371555441466140957254887369626519912465836989111760313096493510845657864995633097066445979191744887923073695188937380593421105246701163382509487722569164295735200378613267943462062732725958217457475281559102386253942219233496361753268220813872566620157614847547868943956774309008921676400427775008935327994350974789269355776578918883862786570594080244487306473039829663738690331768232327221242583472574273017035700213945665861165115831832957494236002515913577039080433083186781310220765238905800058429198739589619392287329396442463431895531295716330679591878372672667440248814070346024276741514859332950504653893171731866499272579291725454349702872528799240530137430155897626555900551633117817675066711908018816841753947952789069116193951771795510999907591857049933816436576716151376835008687938281142779275266836245814858463312038377134123887359279047096499918698751399269059446660376352435961210879917736839912754679306505577814159509831066309438349239737094036106445828681896668527854287131180703572197568861993669251238892196308361578866225800887985669048549935022785181465672486992936968476692592112591704317737355407434860091171131048832030699926386987428848165330030645144718418038977201668980110588175188208277408988741105045242554209406880406281486833275709448511377854468035134722667147342509324256485841162745823145015297213934823979415829738162860931074965759186260003214913410983038857357998735648032977087805957928164844221221189023048012952060563531933305362289521566328686275157872466133032249274328871021879731808848413734021427278926024700154647531110189465021506194872243175451148084602982148670028127803382303942730109575921849520842096397020221218323799593885816144195468872151919279872837210064599359100599271848764404111172647404909676345283275646989907656300245453908207147519525458278392346135759439940228221083127591957182615184602257567126082181860666614454792998943040204016907676105133165453389939669458059057509817562271630682631698070571725236026591194786372195231021631896202556526657147870463506276424444042220192982042374947229644182884040606634609240591916974746317498250797628669443748456893604085506165139231424772218180033680180371109401510136468754470903178353930002837184447206469176249740050450412212148145501923248014043038871967516737814652865901082924680316798145874137510307589354067521619317939604116830040798334304448636451511175516000454945974942607589195365280135396523791087215243217679170029723657199980606728871524072314611413194071864692062916987576427551001985015457739425953397187258243695088941871751231355399442948846695797860076757598117311849871752407105451618062573337324334219219537404933684880100633577425664476239742891038575113867007969680498798741217724645678988958949165680344657637116257735633377221199026834492526748116901464180400949348481683482131344403400040301964210061362545152361994217488638839078287837395769386487330244889596264591604832483863646424589188652181705525425741439697333496605253961889786508689233285500846765505359379417036384240580079431552317452728254950285305566395576732087438486869624224530184096422785683666390423229124682998862521099143809099983317285902171943199832280922633550365022271905615901743174318227254987791628646567768333304073520237823440643801930335190703548277030518188455892331386744437573834568752322992608688073028388166483841708436905207456767172988775938819710949066512438068082397556401241430747499968298886519455297936588326315387981172757545696482739458093880486378746115034623290048427638431769065566179728703989395730966469248473532900993688795415596397647131569212239259223466127055618817650607087071617157117218641883912303366936120625010459206158602290210914325099952804788136800331250762924734880717661876742955149220845611487936549524634806439211827118857558339773506388006584036524794633676441331681846321726853985507065519475163465856401947497659187908960122574076020229337677515909522815255258396892035130923125328685001867192103753368930459916702379982003026752697940917822177616018819670068784595547553965871065331410387147327547814970198731325883706073857565708172758066609886859659789557683196370504807698915605886623404261661765074298441501021226078858140192404622239236573407485107088169713141934024958080337655959242374158266090128647210317373069986548175632471970626060798682674800011887415851157807881677101554654242089544817975286768251009453498182083703092213575345480697586999203127944694540108646584840448756046567251447893138745822364735200925499275648578230710154579127349829192528549332344719852123662153725330567838032959003607107998744351225151488951311950617604012277587110615205640506098959565762049206971795206083369539326856482078302141402205022514690727114940101878856820147852996722586753223906203000368604650960291679026613228670928491938621947857259640957573466628507758715894474378941836698468231372510130077791479193960973110309499449194723507235731287727761763327045547491539268782258877660132029578160891034392920067783179563053451242614196332624296802151236918995597207292977453070348746760533528099732435944296610970622034745712745324173797980063443664240460073208692769779156202567995328675779437872375132191419212674091511201004187635114629010095330326524597454225572229518741853188513847706612271102187324031933188760908161495669186278096934995031001712834952584506189912388103902050657239487386021978640542058058449541667939227192811117761994967812547866990619276416079758259204740824822721191275296170592442814134244973910008621393438303001455701314631569906482767909892194617780896247216281921018652503804667052664511070551906203373599137516258217532871805627243474534172088274107476576884473665289750798815032498854504516523290431932837121820888207176768776231299674676019155200838195404018368939794707591683744122124772840980858591237584882322778782063343339315637906583524957654843468825606376437273108157597500489758406394778942804730738454188785620454306151834484549552627929173897521674593201945044254617798044812698585713772558523886755237967045910781399110207937358593736809644150876327794773403192223750688526695498203483019550572064245502300348227187801824650574103245068767431388699574827558317059030055661714676910152145118319194352141916519711083092480210783547434744705803483160304566114276734667303139733407846498891809837204107730032485248388262632946730806760072037619250959201310197474337167223835999616331692219009273711627045955904269676717786750412918733193349201171953449852166987918195267507952506443556879611991128950341538850153549238441238313689218863035095321857134425479900701461097578644251206310370103800890599422122608940237838081947279815535451170334925219802249419353240998127751825108404030166501951293811965006079737523172548868953952527527101720965890087998389173207455125342752652260958637581421659562067123964517677199967922529460539216738794529771594003672570903808226458628124501603815422803989916699444385162212836258979247714477436585251789141045040984378714536984435369496513727107053371800431523774806431988908079264975243782727673600712199044601266794108646137748683652164860887208461493658628554492150131649523933254288806358890238290673749028716973218147835653809075546132901455204359295418454803567270094323193912098644377561982208758475679636121418853402410689206796849780465195789052753717981985229806270935282178722748350503532473053631577393711912185806227494070359510449414696896563107598557593999311484876561590653312020382910119588359489795486089507530996240882280940776809721986673046630005860682710380664065336830034105368420151579541967825159064755515073282944705372965038834869725514664772313687824642403914517542130420353152335973051735117149963202366619839565630322168794164528769312557993917678963948508564355195995890645261135290480232915938854209555338130065974353788262437652865336920559946545367415634596707102453231937493627234753380572377604716370005761654511486697118271245243071088525135769136922205677719935749496078513299558056761927157742410812721337386103274305819195504574914921268198423755207854442272584598218054028055497845493202143435018274613502652811506292331954423702887185881037820616065819451250690403167888876446873523081223840649071758077875322282001682818774333838278000811031000766977393314831354946219017640367376048843973719681953501024082140771613545856772434344781550550440029602061482658103716677212386507384113052977238257526513160908250795166751184115421225315980409144317164186375380898557931546922169787409679650662023484864648541426643726342831420200156629094844185082762597175883138536093115062003925792103880950283806868180182101404211016219003698356796609824578284369255938895663186741966541899990886074198674271396765634566155491594454550226048040692000935508634170590143665273956048341578728470762551686486052709857614542946598113944143502761981266407016037443181153594780645293475747097099661060264602668698705085815194394565074682551040469290962084429808505795551610630189840497457172531093710824485259603867088227383355671205260237115039161067283931572040237335583762838383188979440878441735872281510843511209094894165016014387432871865312383136398639569642608263416577270905337780530451608782956125713684598959918125921026038423061785216675884979044758462103412757581272636772309256099746320227487859681251675463942039487410713905269444510328386215746287517407669134603665900533122984737915455648128256741018725721633708399418715448889927235951180983844751235836926000655881734739365489715381011191086403642010172672380340020780412213495297049461696334125738477339645685690165639137257664453552322968340445008767858998727507063081428058072299090160004951406050683969184887002990000226003537873737445906158211202577808221943532500420061376242909145259623711728200321116223792355121222347515297865591157878866924656547309201684114489147170814927926241640005443329541100145847364958670361891079075425734785846119453693370730864754553413370226665094804471771473659913554922427942846220486675833389342308570432222963524345969102184112310884831719447824551243068208948936369244381599697671111434677655898044387842030018207265988848848305720458350929910382866202682661823643103021481474745545989696776825286576917720444740919618242558805983406765233483023368116123358365849878040103767550848186103814743968854012562849535810863018023314007922313258208153251094346050023116716136325104733569575998847847517374320701838331435730048665386895972402428197351600331342753581930214284196559001143939895052846297246068753848263534233055757008302339137417086127940143045543657462324919011611738787966052439480327544594952506299486247566629599756607914123528563791896151706938936886168431670375141860666084578479544197320329348735567732635264505431124502631286398555576805695524253866492604119339734701604881072975980508456732835953498014950759967139169386179597908744040799323483679135915216288374913748857147215161218797573807604558743300596877705128998558610456806626435788039556017558266343999781527139539304403052796720554712053931652172127751102708743982332638821748175034269489602654644552096036779068001505418529861912197028896564996205034258816488164139849538720150948471893330566645906583023179829770048399673884357290934694437446816522721001386432148944987043105015403522909432107185362342155813464949006156995971555301287054092007168437640290456997729062303421005096276008604005083341910083916150771087214051634507688876868019572583002508618496599300926732814190828456957581791114888711550206850116437807080176536227254934378148238932515250916038037092812628940003823511075805248954206205451172916512531375437346350179758887853919784237426761500062292038134980541125458556217220388493418076172874314648288175555122733763767741245254761639667774309668847839822043144814919097997591258807305591073934570737550277172239845055836437807454998511987865946187310885853094722102772502589540054404540177726088097501110472996843510424236843356219945856393649562104540756393094172949730940112638842013218761366805265611640262887284051359234547634905216600054953090028870886042218056942929409693985057558568614543947826012319873677479429677132009173117213013499475949325623891766861160327900671867144240209776906681277284403659769271670955566573637600515093607912616072321188769255441334925272721609445759522510540560246350364288152144596881776147172280525349302169653913640991189721589357607187097722843475816279005467501163322561683918320573342322333153396082896967302935383659062139425529685942616797921259326976799235533423230271189342892716443620847617142187725364568932048327049621153165659179329640296876502952351823859066916376424165761634137219392663006591225404622267136851617750664391273956009252626764330222231010426789675012464443957127616015039435064373357114188965018613620937631192969359814241270533900087745736409775040983405912007477532501380486079058012718863424115320139668897970197281733372733851547326504743971790485044847774518356748209425602544515421630904380907913259996966068982042570583521367290140440360052718083240021956799269497542314882561437648390117096096581728189270329760619328514714982693788939897691244238339866498488925221062118905388590624050255238308540356711133374121136098599271277505187615155049945030164873022392943181684401469479809594728677549949159204295660691738587039552711436588336826880198042679708187917981167826787372829057728627938879172204217225237244080303080210442828622146915146023103204505529933136772606115363340781285723084075157521499415827981361964261949350975078689048014510448787014433771951234118360178082687675732562631422271794381328771008547812796072950270130645319031634817112164258281486244429616346751278203235078430933865762105776144559417261609121010700973578587492357753755229686246438111795766024146481118193896871099225944351535912353045954887035228561874034953223426941921535825779030963595473379395012190977028446700926146099944085648698883917210906937563949442170542327834705331148640100265997480911026587868537789571654252333529799491355834786667029798210562106610599334079360677101871403781958759184215582079313672140439178718743086621069100214217423056596401274867319158421089030844545832316048059164323974869258560143015904904520279935688499762061851885464857312759626083645405382479805454981536795869634260773169513204714065041401733303699809801293298509045946522946959715888305183358469788260117876631460817541549945032573496605477604677510755879237197617663827836428168552929892150319529472199832347110443652110309752073359504144030738407418461249811959887871529968793037010748362096146554929771546015168516853556960032940349256465502397722913202315161977683345626164520409338829746632810042396081213900205495591268348264126261758567972353270562396905804608889056932532164798161580838407544821540796965922400925380347082683981435392720259113568734382738290300694239993388001782711820725033562040399820919138593048404728549758547085173306851019042613678833608725713250203883518424814611033775070061124119140334416284669732996428389445756794186633848142847707301599392724584480611888660699386379701645262757888120269435081412181710402617361654408237801655918359491867324385885019327101765684187476618329194906735969048611837702163071800001435235785491528485073330750471071332199408381656354678175924124151587938821043050596848636419718024739968187258964540567208385895980477099598013388453420778924031615488372190790479162115626397184527907446189995653436011204727729294339415157703614221365104442722463772748136695196023375934384517491558029095504914045583751993383300280909382110593749893670633310466575433924212505469884432274555147739031805393150075297366486224764346928184746479220285464459107929943973226845343022939845070227421681634131068113044794431268299074231675584291985761700241009300120457561293992498462602690840783740909938411794762040479651217808235478213665674351041733945498432403789055489963932342566804643550827137631899646384057245109165778138305270459568759706226185566337960426096273454101745453476950936745366638857298679532544585284877668376244941675208148410380011966801237248898199273544894280466161648931333923154138641384366956365119467555995077389316481084886146824845640971108449716200687933110908174033143692016407158087606424608602039406986863566954564494771562432651802480821228732204437789200632361749391047707572006140210785305952914242603878505616401309793330712879903551605677467701647147098952260554599492718205838002236736773986168884994454284297223579602954644525926637156958101228800163829153294467681752151411341097753384000883000246751580519889468606233374042067581744353821347682120892724830881984464489870649949561783861450122006006166496963546269332038854422536200912218052909075109549207694663362763452437050092448147748022093671954513740623773539830837446716432437140642056645496556819832823988114893558793082255248938099563337604872921209281942405488698485882761782899601101454747022579957760664587265952535144433716252489815728824526879777584560755485914336972431923965710727310435750318049461688641549188034845194544993097016381237946358701818227378598262178240217653068787882312245117018837891952890635015123757105392809550226144421105582912155004278424407110217163840878952092781561285371709167552731720298555237835114320629460967611730577301421391944446999942210275040941391445024192117336202216046307397761493418296595421842129853830001813319464366906943741804156384961845901205933986023759592736157296511727574279027696250391718092069518369811885967275889847962171180269439976389998186919085915726531527199264114494613644293216939083817491275427996086995686657463746506651413359332948505939708119221923988726537119136918208099245049506654047561558001812738799495294319427739976694141649293292604798773611812320955314703970249753291939111173450282220743436733011298415496533410366684891136416032608570031432281199703057372878693952833918041143448317293548536474222651474603168319639406425712858943390604798608945372132023880722871703773400643361559248092684242075856318250540304622982478929418304530102238829024589851890865896409121530867892531345455475781447737344773370147164585143491323379107236399093007837402657789276025914179301420231484688330815935285771823362604576063299173417251557072489837353600544737888455380926125869552175909227597735370721865483217843557415989198509660964616472570523568699099651006440796333413342544988841704717289148318922748390828788157200367279171630968450239142494533542928708632921206729507155266734377556215801306903547556809140898557683046659892800204138564609684086431046744368129262746183043396004416367905050812774040481252816745471559583597595746499706538196394357890736732762042372458323930335117690562486302003855976927820013823997035717450501195009393727404569349762467864841759577703320508020066720669995243536837717164355903291859792607181477565170351993699277108767019428493274901003270826168724111889297258695627848019576987607777748157624746155161642603657656457068419915850744571466033920188540706744815934881131758775585766408387888843298696923571529569747255957034426907337816459162427703198449554625201656380505636362883026715056256335181377487959588955072833013638636479694351955761132272010686076559919565453530895645024727943541843765074378412166409738551730272280142118223426828040961194369621985517089775232789489775176237472352560522571640668755807828304023927967866129066033206029975078870103954957847588267410603169503603173332309425041930796035077351330547993336750504487344098206924871589072759193817398034518111372214396467469808288610820970134544295312875258503909713462202753667719521186923230887923448884094778248675924619377255288445272827245962917890721202640280703149417485476057961007087867012526113937961940353605528784925470913671355314595988892306860880083898239589916925318654475027265370243715278564680325916437871741776558661744320863989266971704200588834518102703203970392908819939716503202855675232942293800015594370139933707792580707923465034855981970650501210853821590738274876816995614943208966156923640894882541784164629892574256501972927683519796938387035425850255205846956573207984230258351447174784577927715223028141557296244795877331941457780502295127420370286587181055599152241598990026739401195700846888177748863989271526982652434183215387148579896601244413494319570684598797953440218359197702860259894568276047398327341101185247243941945403546787336518139574163650925253275875784275830046941164085026691138489144393606462503399782869528737290190310839041623461017425369316073673021430768628081796902676098537364936719245732838907849086963875542647767403657032713140940972131880239834465940445316338829626200062586260549902187450244193961126820716175103627907993654738497297465983304756996172271772124208182215057750638368293816134961515965479592402273089112550275284695751699729289272259545165827876127781478823063024293983977552636179827245999569232969523073983386822695512565252064550479286195770996593218075946817704976168865510285713598745556225551494796436313357738875793598422240827069734725791969934849004913644239381741058338320222695641338541706723516042929434542580741570165261712456134688400542007444647060485653861492841601639605851043494452792473455289852879671669465767801630292847259549123440864718443047743712488347792948444040470672631262246905631766409364981127392953126532656382065052439358107398713822684621173240153962970149541982645131107060865712706342999229201439715607420961048724372063527943335079514918571008667778091151020690878117332473697005298170308432691920555011277403451525885681735246922933549780381495115368921660640577323517772736702512973103852552513715096143126428435310255591650480758611545435673011440333857912317975184477187771498887348914208132020064928675957042418520292698300779139944080882390747582441917292731011874556160709387597981340038044800186710858162656555884159647714125831551819255896325413362092689784028184985115036289333001145056909691892435671707399704727070168425696365000078107859064534250802586610374679630382891520993900060182380933850458401204772531109843989718838448425129540825380772361747088397337285518616478772907372762710828961295604707483853700710846349287435150540230648909719000416891171236043619387715160329516175709594689965972683628560764366235018397165237247654337275066827521629036294279737041291158084536747801128581123959396272141115454949634411809948624303695670991100299243715287132793934592612066257991811683308781854952069129382626989015857877497378578918187174357883420180906729737746107490323897224614337309759265320411909219678536739789061561488894403970153996991965584834434759227673740596193842934261232656334131468533919327394834267443383939691731241797346559571552007266121236594350342801251172914511589668604323773585806855660892748097194068595891401423294702376638913257381577574129333658288200451720016322583341637253624084262237303642741830801831940341318769514025423736650511047529903676033124401828537580221611357448761361498738240441536813972839330201971328080733257040659502752610252403261712038475761195848384476814217154899155956902552871585841839023756047666563815389739240448757478896247346154286168369257478025671114086829779546054570998148591028356946463272759452532832466713070188412193498806434340051015395170612956309871978609347180357126493060003217465010216332431304489257917309712325210987352136478865005170367458829114149859854409561512191349712981319252270277088923517234156108665309277119661991269614772223513792814636777878621498280034969389708301209780758744797706376899688207184518487792819352914846119645619030866113874394729479630382488483995218879784378281377214258756260634651812194753239193290773906097424083678093713140886437818445161191670506606700551573063339917519809072145758330959145370059567623333979819046320311582937528058021202826530855378820619581054772382630076862341777633531707042066543214426901198714184749114592991283549739072818589258981103889503954594705277380097460420019232617286366789147769594386069371585543072683576762948487057597248458478061592119011949719654696798036975233422521685902013331126671379126272067942158627386875532677162683113104757390279949451378250775825052510290675909572023641029025773347972079655912780159137157174975800014653682968174593643501946837184220646902337961232431859915082766780759171659727792354599533600342664177945895616848906250634028872482846134145672540867971638937492710073247371492155715467916593653003399725559572279751018021845825291184335040496174631775785194786265187041098618511250835399547514536718707591717234624603405693756037355225033495335256469240671477962940876058631202899112795236848229314481981683089221583618872991377036564716366232623638179373288746502599431905049209718413779311272854994401057755294280950475484849530037508357036886878772471500154089798598643466739510475256104552357383832253679214744941876746219254062103944468186035746686709600343700032014305033251044389741185431004998535986260361094840399154923837541208999725569589637319558049279521462021493877175190991421144579053405868456229863576479957687571156379929093451446277401985468914558856342363732064011425728602830252344279816486780268165455003392099452178435350857308887913321630348966039310308728905840043976176979811802163254125164169096110419387680256034300745592059522396393108120428345182619185455710137680246758970277888493927990779903123404111530836610582814730307841925960906505736045110846293492625068766846512468311432945842256654895729013032488516212444332195963129571169750536680546853583254683710909546787000645955658753879900239885825918129053572080375131876109799155623256340073238664474794923191252277979453809255907062118228515115581887965723829194353080536844292455338859281184651168483586267083508240132250504187314789729584278466448306754164038350987142861490477169645034600694116837386821949969147516593383002514038062442720949053966320811131762376767741716633940382862023121261803040908987908825188535805523210516530475781063234059411018190344084552100486270249403082962607196780505604704163584205810529805336219019138071473485837410404147835434986786636242308835119087203580757350904853385095634502254706250051327065986695384279470702988603862915569187288209196277273049783080586629416131814476359319675139779919243591584723025486665987388505078707927256464422836783036831709774534879231596535767993477445399406929771299563540557763224689408575992186440766013228979349131054016387096952468364045766331868177678825539914925049011017213819312856356620313867713990663593306420578808734372036538161731234401096393757726645566050812893057689744348317271516051753749557187272437084087631345397414345187558010670323789942716084514044603829931227437738008485504137245240542649673638860527154948247322948070004253796471053317635988175992781084914930451577031190740931151615189117737152133352997220494190379123119854179949515524051102077848345224384929380081649128530127552289963854022574820919231185918302887406441433792690734675766635095085191763414052977883200423450671139285730792705533136417974250844499737289086807787226094943186474644652469792331421257112417051759827942902390783876342663770995753335153404795096768590581096526234952850550740052287864107106781981252597241686874421145778574430681711817182472614351907430548570881953737928174155729360152558634703596083028808179648669353137970170030144683436838094598003010142609329125536037898168678288628140636814091287131686094584568002631520292156353409273537671919064217686987670970083360073776992437673220717729151033800974387254625396778767146650924903959167439396446128622030469810186093185938552072862181618745742115227672937145881594829041194461228982167726296161167545747938606878664734699043974626853804895047969199646126195568145514345982349964359741917436189399487388894639598800899617940395095164045707925099301166879126313742986411094291019219078085469803400464819922880147823880805687933104306579158896401849994563634731066448168810957109399728105823544108178860748998980128886781156275280798382506099002538709137861052957041956707436624598004617543776853202184369722299324142259894800425757871300040319048679864887240954194959505806249548189000585783739027756764302684657956417898895487223601491149354917893899570933749973331082804904380668132263443564243899717204052229052423095115885034229204338662005083857173540179492423085213422938161298480874579463650679123516545224035281690758925463401731147188178202394467723597132257111446119821728212718075305408254602654550375957785328572613929341954525338927421384859519353375440930775630203650486434986191020942039158381400208634207225533692291524101177388313779327547147984927620505712292933366185835255266594698608343987003224243846468285391773544677907035076363591458891037075757696175836800510448013529014394549672408591003624168799249856645321191990972498461936713426652244148158712659560943190861029952646646623842921768755775619422575907650936591766639864663274990786752903226987762949050172064385066050164216674355346976461625385736480383876825995683140531142633022785062551532068143417589409244694894144405013925183485694593064200005349996707321940727899780176011145146450541232456115929562479334820382642303551513800120849810395321584601341123472555482858267246416481491742600733755106528430131911451019025915985883093287217483493145590224019623359013254111254974802917510600593858750499695872696082681221176508850620462004427156980683199538071560421611819463523136692036692584240443613818216032382018746333712966997894229661162420694939602671310518899229085280788649794615788836868946797965120479620947495270553376969551331418676927966460544024834431637110212930367611812921971931266686339056588150608137602445397284312168905196429207143796006433074683747324490088494805432307514973984594174141708321847407552916805206381989074768738182678818632137582313890724332106809183641403341960645050131319582976605155703607955284062842493540335389549864525011073656745269521547805861921660635881614351187239292920187766924943113547372034757921949090306497483712661777363570911484866149609723302687979017666575978816758601880733092126861354209700789334040066344567296434244715825543805499272443888502939191913841322262822843549095465158092349955400342190197401919782686747625445754819838360786149205300509007402339032298667935333321946196748683038460543075160741761375295532509827514344550361950459106460643844106508213753069098481647211743881192354373578714615537616484405497370019989008323801303315043508596358768409190497594214848784570192387204993870118534184568505231035172417031140398367796173921945381257515706995026771898871933748768648489364593752825373341331774372108102031973181424749788543553426522335824093744497958542111957656292865314403083803039755942967653935235899028018136650325158866123263375949979057780870400475298339482557593452667958661791906878067520727871808947286241372893752315131542909965239287528547826928873913484539184721691170672334419542780514435159481249864434630994191667051354946290158827176510903367950816124551139714439402477276940258983620380991308841454468822792290605393407065441655254121031302021169411279272564349241692329585514644859142911531638595784058127758411364443336488348078716037812316346726678181113125987137290379785807694101037430461650837052413307259864409058108582175611178186048419272318779676162888228546734522544839140803886921011605558079780222237474266054090738598444072516834320158127950529761666774429483201511472174518184878643611460038473567475301587080896772902930724521581820973417608008857042732412826854319560995501719322181798765040096193513792016797104925460302479991543906316366867019740781515306647087730368103343921139790495432389333839029559717534257620992936537451750623713623477239828030473151440725808021074430942677262654076802770099537053216441891757319145799361956152038291800726650714104596715330653712396284768243858513276600019133943327897188677163791588472068810522307346893414954762880029440664668474993389644995341940112103393805855185134506037042062959769558210915943954342494046385581844698242947569669473920267154423933772292666403138636280848590403035233760754100919409220931900652567878547899642194263846114698023353667731278017075204033095055334201889163264344223766986996869018820348579974718875318856631382626364984357325220140047020205293441790593667391591558019107145072464352949815491153200433957390510591853360008919226884455272606165965013803122500564218329114542508000523221127482669754534266590261578695560327028397578360548698438123494320539485461192848129574361760504226208918118443919764271244029396036167642268693113884080323290749721251920320924767280051916524605773443911863439854812308253181063591009734523687922757906288788898581629797581638243394070723233919239004265326020813261465988662623028271783731743462777897160146568436484574948759113821465991616535172547215231160507242833943178322224630190767246531184488706839130953963392935171807520429663210676937969241974836814885855925021136916843338856736932988868695312256122447480879293922455221443875225187303742221240435899145991660226420831256466891993913499423942725628850118920053291724429182682254731567063123515368137394774201131080786900283669939646199252633904619788235918558159302999856657095242347329657156179969985700176671178690581415782681391278812520813082628101051086111878450765621228253222873137786453133580375557294696148249750615899960686377289749332292537810302990613389137358866620370685484442180588013712177523003166118145580705728734445655966922982245200196873014149321892679177961962490574158414647192066700419176162591621470793297628845969494335546494218499337645501484874662996731340217878111123743244790732086613645508545203992386171172032699733341036653275101917846394184301937282299302825061817051970977272640924805616968482776434679502105921230115782591909145366530659342430061916210870169343934076531680710094446286209205758262688591869414742321431124845633478784933660306889009875385883180805560447402431789252129873910239573461839297278323887064926656482736007320047972414502459434493699295429466632615098834375564779874670054998264694524352727903981099494518130344391681153456738736244068206450423614279720340845590372204208709742226708868271142845626221895766282787941032762562558913710838484796433441246795272800154108371101577904670620862560556521513488222531907569985434019757358402082607776389282062332993032398453540717854766845205880419399003282790087561883377319355210572673567394494925544380818455611678237062497003886102860371256075813015302957247493388779190031954066291896890243811270569983573901229721743596478401920106421234777207705589075573891087171947807691394306259930845841702978263814728703748038906340927098854964267165898661714595421009737633478215533450074382067203275906172025747762200804950937121123903724381679049266890214559568426933754211867675811040313201888048344686607121369001673621035137008101275294954444142255612895853665459263108592711209116755411446268527527889671640453807075478585886146604117082104566421938320498660184100311806269432989397117861440922105016790254237945978077168994273820782374821710986212906908283885479761548521547643235549018781427381023093724038234328022937561894779481104529180800069829807389895562143880853646715279132487655260591462265732087192605991018529132690327924949914815446673564875065992967980741942551602650752736995038315438641698420223035576815575281333155772042686776128510204077898726818847924193189803857659128364831802290717029585986827233993343906656605729074614060165917121961382960382931279448183709399264547059606529873125871093383783596308948335888840146813953382429986242520665190717971293041268367261764045544076439950310348640928319870241025328950229668246754535793859169230669498961524456397434250587965365396918284151717311646958047454262304225828230416145445985988361958773323302848568507081682971040163032572273556617335092109878000184102028396310065039775736673121355927264852188535980313058644914253534236550095546076065177922596442252453895787429011895807553322969718462501349840956429939702104912964892538485749701993501886192335473402357832914340077518922379078746670060179752419717701315266589288049483238628130735574050857304086632545800204593135313670764027128573451342605699418776387120616269024622718993679803353506966213754059105900696351573266220850029788840816687040998093813073068990848025084782482624348002888547943306126068141302188099588573934223473772584919427880797708015637849686055696092375597125373236647166017898368338827510654216179857182488981346184038920037264192559352365216381956386194166255644059218237694357670955795132543437700848989813666487774406204044720021167972083322924002203151731035999759810697491280099541337014975247902886562555318963494556117670793624492081192358291940317447140614824992820004938909132033369407995596510741905105591869405170319521642811470961301091461059161192152505559088216841525087635209204183968484063692374349551809496925992586619352205370728087960938776308722958220544504639134933756786248328573882606585548531731714612818055867096982219845364197447984004585805024269730375498399587960968965233596540214198403822739264339094090009152727166903022137996143415024705986326459728371491189158255431240944234082068127424382990896077724182889437934750417411253756477644582184659407632648862247079669711514219567929826098491721506895675109276263531526031533897822154791118168228745326941233437409561684891684672229832202135719168621805971367103948599487961063987525319302888218894586579506973453109067611060394115155823860481681740876824230260791422292822403178725670048418906142864943074423382548928355236020795874631606917786134984204648099778435249485007844531445771280065656140717162903945261200531913500731795392734064343266435370908861689389141430130142361126199012198602985896520119343686446267835956957021296755075657161230926297077820745582333328677232579540982734730368197763437038175192519507480944109463579339688108647585544566206700530929921291365699647147756377993541499613571749128560119385087357639191943190522168661656464970652659269055766296896300783371225126576312091874292984965152941506351501292147957173427072781865043248275827751434786228514253731347443128015796546703370856099557702120558107296691617312432335920187872259542571863280869090453963604644070865368586645023318498190217674048319888988378224195842640597409030152489008424653896304527027523938848235731240947900835774803137237483168936073308768005475929261068840404805704219152796866768393897206347457276841936818886995355788363610632900640672193629527411583661888388509014110312128981596581893139931835730244792524880958819932488514704076790059598841643366272753851165575811492229287496982337849763930990524049805204021515209821591285932103563045133348437807389104314384693944592023844227198919087051949136299545419057054391803152754552422005991079785542135518189312973230087269606546425149095883590060816367492392741689815230172699044705027987355337862438849409269905748595058177045727659879891258472567440741142241558484449522503957154133537181363013113736119986911876367154298352353447399882981031310832490365403680090204220798073370430000624368205399049980273544625759815101324558892859655735895588605622820634906726187474186787850225018515511649534765436362174653070117511887398912316659342838518610750327707637269277424930664630759169381207313111038195688324291251138304550510783463847707265154871036816309433087755632531753798734872024941783812499906988545998217526353346446174872605564568021639634773937917512603341169468811758343813167090271692656018776161564932669928709160662688267128366309738010780244048296752606709042960996787675618473346341573836374766845068838723694841251296105157751619467484556855407999308916216047788044618072951159953442775286166774352185126725458523904169929539998244411910133927141757997772159006588887099573960437838638102279634929075695775448476003357934364108191552655185622952163517838285779286419883200534796711787525274933197749897563847984906401595676907188764911977419054276692988160383922264362342023017545554302791450724069839560626197214823763245830911097961297344097786394462636469911177641952958362274836832848434293163479330774258390253883485906146055270651863698134564083671073144708167869875590935383896673506962141415653867267166537667501935872163361050547849823774435061273317619948954609107297906274049266872058961211425679662839025420155683695480284549830730564982814797214138348983793643635692555241505943654630487646222409148286252023325717081772671513003280364442274580164457451396000363291734894910836311005083985807382938463462035039868248824354712776281901670120311077623282148392323049132034445047533812507126407715320752893347002492353568704452220345340918057447706937282178808218530181212476609406512378689121143614431475941125565655982457572404837086353102215819070486091285930153332190492194631397348652591410268693571140503441191485868271282225519189926382180399272108720199599174409627900403711174991671850773251197128313069952024857649589343837744274616767044063315068339230762887710227003050777858149711419330620614275609599869654243238879679547305293864357310492211258706854921909057571628683516894250271175755768251848959630817516095655964171357871655916466336630615840230544711413931307838352154563881463099215689182439364738274501917770091697693994400933633627169213213892315563947729743206790621120357985583069567392462618102311759309415426294446189549719530383388532439398520828749788021529633703028138337726639349519902726427250776293508332744430543587315629408448448005629148858505297062538156101249971572639240202401787158875509967566840928499810226523756241747090129668831377827394933911802654012430085443560744198368702926333376809388499010255768958542215632516492496857256322623991619773938118400051225141023823803539256775484611536644545995011400271002635906727930036009268267025544943250882526871377781150746658807132337657572357346499801353113786484825205939000545753666102182208357036879542517212734554293087498979390991200199647496367049311043608807152388616306455904360022908533567336489739108232045042793677307338408514962303151852854280949555577631842529017748773773608167877839023067901759446170978531809001525498764213337720471418297043356827282762135414143535274212261713652076358508835271652912893603383497775563677783118554155950146557739718901395389693238307904276121340965918229962446185895507999906986503190233682822774885295152296536597448180804693689764756996323679935717712351876476862359666637501221487414659982128881955403325537291986429996322127434750778007939264416584980336640692406349584512798148849737693211081521216147383611930485020821021017187493609172950239683287616918609227323255751397776511327796452756848666985706801134692123193956112940401322582683176640999724085783191809913481123099870104112032447659352399555636109548842611946575512914765582575301069218103051998180817530154139111005272905212273141953309469559550251685833449778123171216181986898781790765282124777065147624431860045389609088179652517199564641955933994923262678993124709155500576321440874759676185860657870053775780778882901360054877037414354393310777081753257334272943247582640886154281781994187198582296414089478994384999027584808936177460995915593600917722206639067625153622747922344198385595916964724589085920987385396990938410855682448403982723051939913804284338963246136373535934024686199693917709142276141236831387064168958047080735254770588411215206969884938448873083545923785696263060000951562856631051385010634694060779856712145223211992228423140390481708492140815505404293059370997197544230551232535670219180578945763691052151011833178850186436984904349036534429241987432961735158978799067300495920787042467528808514677151743868223137455652263938280262306181308770306867471019385540567804750672123076691452779901027336545028969646584730849955238609656533140529940821135966246048966400994133026804496687842327958740767695402236665281488774645979091873697670802611164477167651187548296499157462389976640061186252209162142786874091915173534706303469267628500979498153426752877023281023182153612098033616236000159728639430985996648600492706654779823788553942573727414086901120680975839575024108928216499401647219806188034718139959784373378251560770202184390352368307767822185483278794855614943622597334078696976104724763198719571945494551025245572871105876060981177670065119218662320893195338233237616585942522763582677062614727120528033966285230694452958724765376170410427196503215048615503229490727840984098430030399089292802700418694449474424548030255595177035004326770779894207355302789884509124994232270213934261004994022802085734033799723956799681919365585070750969819422179842413514039724836263710301779670344056433140832492470433175271988062959827737916209489017751847846652827758955897665441911127586031603145277229036125266404769887290345486170635791809741299839875368467424340122552484071533437447718418872702741124956834600097276228394879927639623300000525466186334322053370986373063941410316783302102485106613473860542207006856445279306575763608267184102940015357718174675803950118430866740319412567272393696889986624739095959142420440995944880629064221992129021217191072408774956208633792708061005671336916824366159920548959873130620960546871867024626258702962217362623825744070403169142074639417013032035547630830843575777533141806467649672434472049750601111657933225812855861180874564500177760375469864602788989762687182106240595303199128021469554738150676578401714936040911227508725365096727618722594150062379212187224320296983678266059431446092961176325086599784179159697034987902529193872476454452099665318768119241620369995508780990971983979931254252826339289183059939319053390939143724728123742431146216245110058987079784425522937211888039005015769090398250044647329933317514796640671432378817316829381544878935718217574735305382620409529470304004196434528546956598391015017057104043364343712755701761732693353068026666574871299153891427754142588441570517738479643659739567056851147091602473709294158275299233740232018516361605350036785498039359715420686472070150756080137863193392445590274717925575880549134883050644223379490006000848995956934644206366499259623957831967310647333085821611838576545033403583335261419250369696263270218391422605599694561319986915971053745962766538133903394642755500362440876108796274663977263357098792310345059998822946009829893029244877001569987172303286132553793169447333041342584988541019747916536442891882762540159118356923741993009089041948125218095987737816424167131978063754158914630039270109220956612712420140715776076728081746679662801882818628578818975765602259246155238312490060239186046893418323161343741298737839479060879429157836488068579547333401266683655590948643313286423546547073163557235726362362163418356698008422928114631461141148546221214267015719399267205332110810643763329168632241687509408810524326700948342552276198034235430704130808281309079049284374317728350708736837753284875262065127102862943874280376161454163060518649552815849894628126088010243699871629606040637921650103676720765601992125533928486349528189373307184784969617415081969836616868157393420766611161483864420699231535835376974762735346173513058089108573254866999405674745517040558616849444853139966119040489408347070913032365803572317229700186469490360527127808403959315175982152796354713861406934314776902923252784893624375577637000444833465004034341593487758302005987463287911691663162344074412303793899813343131082317180741588580856838552441031519773988932711574633279390557762317275712376401165004737858463075873857830130500782517277844377494628274176684718069204263240896695868239684011231962964107751999074082341265488362246378094477649476994332198903627364085867422547292649344460157685002094004838120707442875842171197371811602181449406248794923977782881865129424552571030122264042088397784681023376823129445986335743560920914244623687396321978391442645404925294356531400190740011980021898117775075322876931461167054586742658905144908217196404374295543586642935462291881648399867470585506709524926083124877505174248662687671035767575093115015779041618458112350972348241763384101784433392689173149950247130334788384061234166754501303995317539474664943910305463412100130807734346640627723704016543942048441351887578850873147530464033000757132913649585120554815669865070107031621482982341545145075828405108224210643537774349332294473922812289452896155184332429991552242747827370736387703558461333040352330312602539584147829128551024623414902033787904705460202590666428554384470234701057537839572255811504738883516202521090056933122709812234756665925503831159493761133498980643077000734203534970550582817990731255316245784079546317144252493901208227183049445742255594304714127767948463898261100252199677970769116995233953918566512340190224557248989918421381432824615996408167310264924087153207153239003293156273786966038202481497099953712677586935438931759766177492350962393399583373304825920028949928514742280926333037439302231971982426475738757871888576767180506833575929823402455588123891188130963353396839460851627086432693815893520149466696075477599202170184362164159846919847579931338218896827562062311659554146959538541173822990011611697421267733547382452455405675081467270850673743970713726164018304829833949007018692500151179544727253465687955535926685981775919298059305016570910153602221650011422372707396463874009335657860611067645763419988976951120960755561694681308938661061324405536178824856316435770610250385369756102234317614807044160968699078767948474283025293708793661228683468516308905413325473147112028148917728795043151437861072396729733047324128859514977047324533246638015412064317867369004510296197777941427493880147737554418219024021874297166468983147541344066456824178963562398631698849653684775726131656656526019915373814045119594435349426034599222683656584888865011922988373142116504308049861786944940085298608799166675379167239103077906948945662691782447115240185725230491878941459050364328869944746020338597725003915924922416048772444009383580564652313429912573403267927524628894195562803383179138302686921089038272678228523398414472223437259620022929755764513707173933066191619760447006759438490464740714116636180353019838861868876323178960458462555076293504808980665688345666844058319052107037689213776223822718398860495368624695889978095095376791103366466019288386374815042427813181455584517512038863025928003892726360543630282916126744064232670078409096384192898296750604175626368425489673598164948301258162184292313260263015966766034605359316554975348502071918349845228041725238121728563545860445335532671476345856019487419417772729625817263835337087813694424159501630552851057492512854505118362602053393291569717063521160463751642040741156143869755205325366689958085715438252253060338730601879718884937174881996242319069762135648950143917946068751225099550427234516478263692301401450557422291106296357750410068284126997961638322804117954945449700859466308180578419446885429558440770958990001094500329841429827447513693533756760144707622709176756531848358908882252756213228497053069537087546290520763247004772284673909232824143178445398659559189136416136514862077639647696450956514163845757757630198190735026772699501678086870443157680349977973220064668479341600634808750774358557228085200094515181262548192197569486440390490781390706894677514409859318799585480931054474661974438610283675874918159111453757104925308254505816909315159396887659750869396889145412795042199516249526213004518002419053039791193648561233726972054067794525283831884060659958376058351484096923174545518290031393421034050935654709968743563089160660347677980805838270200379386452445471322095075276994317533344312169472558778359574570742246011704822293270893086530756912040004664168179276023458257217681518380246257843591841352434507957314724401836765244840913662919071891844863274071521744826197007894562778408688138081602987552292554538018411476201327653415871221292208360626310759992166905376941083486008676456722745268609887573494095865188772604693396517925796951309657710908727705688292749753640935529784229812995034714218803051643714700052809675825438431171150895350316855857774175658739095897482198313528364243235619510799390037080420593683129827182814047678629620072053278202736162860428164287654612534924523148689287466899193693435224309456639398253254137347918108524928595101873317221886689710380785369625904355653743082842643552710455668774197752403768315680850058948109967621926437751018515792300931564688598031599373573052030656492676853306525586160338697648877137979245474128867901991226939764820239103241435278050268262384021456731020894956407349969660760453930936195715090915666687452740953024229170269899200766770290439926065642268761374503058356201654281356395559521824116209638104876548892126102248337692139554715063174055762649565089384041152712137894208390665329138393899594026341370353180092537413212907377749024405488798926304460013899139377834295892088941327485149878924992005993124922877323058077291049608057810646928119615412795477862865615298087705944388160262765498353588900622008881275198778965570348457249759876842659528501308466834895207511123846094868046982352527961415960313640292764594994860109083003058318570280722944336943354489638915373631367610112178787580273969653017488629733220944855116723373571449888867305694266112324851678030667581931725344462157732691153163670841060900125114736230540361289348852474223220535409772367385927775633592637155549291583007545912965093906107911437633871302263310900052830435036345056213983756912402934467094839794549324550730193624850178333676095159311640029026219832125343533057782571825617127881884654327473313727265511172110640852339368545361829590948232092138984931665108523194596785116332956433081371660753864680462413401764632976823494419806017026876402423742220542990350820110848330256243318189874348089598658878021211917938651456723246939881118343502900337139194509975612313207660152159622847892538346225025414037748677726986843423133095475880090099831735057717971446533445432918383694065489018725219353013100652555121695311388356420126653215416969749729657225494734877479005844649254774517352226759701945708096268577029497280240177068496566372907464221797752936380158308427414786466195697794473731878361403827420078969394420409556782297068598619337158311082779372082664684086272289723275335694890099213164100754952627015844458982871428613061562033611098065388988752545631791708681635226775931362194640816081213842046277350171485078627111029746425858855294741794256808504716847736878314714069408666142519547387263625541356317384364023350114403350906636856996260160918597670142678015101070223074680267337795181288512709272038548249494807937786705961528486394288454778057349660792300679882843028094366988067591207249246108405278886235745102720185440014622266446781198352368416009559702465992993096935896261807741498024817738606846015041490203289949571181281220700943165579569133476541444063898831386367738040597269945195643067870071959158437413733551361940073318773943582744996600214240036110239166383176469545635742013577531934821683123750789734279577353534987527519127814425866306082716163037148812108005463868515377093119403885005350314302941638574376188347392695757668052868966223571107404266926888422939249168891555586143632895231815637007292559062501467218951747727293865038781764208985331662141414024251165908180259457720231107367946282777359486789284489423238796286970348176621413923848789611586213919496014027230075805035551329527514993047255406989924269907064312323352132207906788977150792803133278399477318626624303017779831649703047018935983972779188245172746610472187868954262755185019638721855177259570423831742017192262523305133500169106067103334595393784466199960303476357888602795308363975416856082904545302218910843583161974862304628000839907748177503722019355101376515485705746336718635373621339690257594434958616850887904137182081011683409296688314271776682871285823138599851796996821461732426286593500952607673636081360677219661323151806421449690933098550304184673623632776606787897890076961207386645743351075425732498345980471740836191393223096568918816734755050954882064318312367302742986108987727428985779359819294810390343036669806942244453161561435970194730086359984318332340386444104178859458678560751595240865161986114705836984479497426306288854536347280885003049504081701524407085993933908051274535664576163941454769449248926203326433715178671594552622631508592041744774154534525780551721280702293287321458565984185968826949420306031730302391350354510659783093018642371223239453695205529351099361519756757198467624899141608433774839315384077679919157404315989427962854820228893324006776097898494127882146695919291885066481800699573892243518122709894171767639872666407863413282539060922610414986069272910785422600623102250420483892585593946617043021639287500490059661581880256157065510577345314151226813396561844278013975807821551356137291617665936775978394662853781524288628413359829783580747042971098010312313493414709950003664592176238299575782716137730599255825496189621885819070178105595192860196909252951228868306837532416510010774235312878533040665014577527628763067085036759565560749061653650451355936858509129041968519268567318361766032046217164166862757524846547788828013861516813627876861670433719276786030079063416343364426472181485152250261772708106377108655382038790837110389808091997963686056361922283875484706243090942669616756436542327406964800331508452938630119773337699951595588712803135910732905553370207335377114820134005826845861933448925754406410480342822750321620789088422564215014005313529634521108199645659440104366385878369140225319184099232341011800227584984977744578502102073123373895594266603657075391118584920315953527756867640968723072833888096888988854793943592728960785886584839629949785505042378454876814801144204111616415575465386887422081379962294300955042396709971934376544077834726357098590453650569577981686009308896535164675506829502617011213159631174725229996252650516120964649725311330364566877585082108670622714391899053062875013378590324024771993062407018813137317410764935593932040513286408350166497074942374218386522458255118775851276876227042129810796088254430481537182431545177826508326087337092668647487514162376995175746985728735767698808968891328452415268808104868614934108812688429465361551289092491871569722625224966600890030655712156857481975250836139258835457684622108758784694213357172773857708239985222286187421775701162514742972186990632007793580364849376996100737145918842340173943019365936187249280425312882514087762445406408152866042007450741874871018631781775245430527663602201775378307661394075499934727724141554060145462420638208194357043157327565114000605959951022495263369210549017159134047397737414222816494961196384250571209623392863694280229597724321028548475832537385213289325275825661401168253517184649018836103605921036179293085008017803642048452873725730739421118038982323195161673606204913669280885735824010042524232689497532416694170175369215286676029779988852786104463289356506084789878890434779685913066392048365505129737521109206406280701766808807505478169008415339178460899615698504104624991110210071341936514524949811405600934823212171240291864523013052555974260688748099905151096171194073527737967717639714891671129706604119837544811261477413589335797031850534223677787830476934624108235877385028169724514012417563743072383992637024135815987522282718323192405528386917751358693046249155579442324724314616406961626098947161127035172034748517328727572531324347691845885568083363289626227344452588782189226621627659549243790902809959213406133323313715703541634843204131061979228149510396131499112804800219571017614852859529649957508547199370601124361873782599438535593047333213378727911460241960457207699456885516975349995358567162829918662101812932879499140417213043483347739412630030100638706661320238229826850403840832075954323639180395517701797849087798094036683004338173698190529662389747196572113571045496516757461495789657401098870761315063579672300594970332531296769343607128222274764506053828836516669159619159687059604620057183106377116187570484916596657379287312980213328933071998403299830502483820022692189476124039113566638783486154842214369118388721752796905043300852653495469779874599686364446769538828684150021613489170428946917523094643953779649004957200117524087224266976741154139305853288232237791804428467477622626418771441528909672042444353337966196455349294576639924651846186827519105435529988787941566959054221494413530274275807706770856736220249597894993731562969078309442614347811502738676126720459226842825154619327792494376914169826623663081576955151841546390010045580651581151055062268008882360788886695375476483593840512550093367653270840947322828531540693081116699787827967180296225553160572866106379998245196536081906668919697313398880720935013416545398591542454168264466516132478008061157153561367135213383976803052092028910009385304390631461779809081349099886638266427206036122694272702414747540701345535750127490075961255701381895636114087731862880380763703451266839808163006778976735014556157005935226411114588360922691848051240231417903918686803508315324193734087292906856671937401074685427404791611513566255690237302325747882684084077553187381553722688472421196874578359842823785746078224458238715329469403693366526612508561558731511576279688688010410974429801699254983471803416012214135280205022421540429994747591760249543098094819910085359940230309965389473200983161371427000561713040139844420241815337443671424543240178995047040811462385613145870735457705609842398710256552916820025742200938337169530203316553245947326849796504659849329022466880836205915714822656916923500621954607517859145502759425371114789432838641406704853482417338094573181577240016749743321315826960197319946855878252767393692761949401717889279829000150832975427559573397666492559872684367466741207101974838043793175436493756742145077304025598065396149392632201076650140809728474858465637226725654268597415823283598546570751860197836966120411780934704345661004626076747002333351819982810516318846493412567484686187925939937061578847174390679686179669668315664310362874897843313070446317233584580762869457823615156177157483110667743273408836700111394155551168768095323730122092574953934761192908834569379495004344322691496994113630498637553753424126979965382800680482942820320217766101053796083618938899178472420316128708989445186441195791364470541387070135698860084621132771918938108446168769275791207024414264998263965371725014751615464543448077618240091149723756139114978592543507196971143099908817239030002768123548463047317938315066041678018931571046709814533571529018854736449917487551525059320303423638829275745146082807000946185272781559804520257302448566727104015899800699019747388529791051518591710673134294016981498519553604219213753359253089789989083412447844220858870818847169200425091682709329198102177657506124457269285946794783801679314636465789008260400272681769330039326973533330009184153216987406185945772672823135689526071650920003774208140548923718059175827673304795959302204732560301080246373216382403937386787117889314997243332761648106734025079140103984176848360764078609322865003089112139861904621826620695486587888085976538990326298120857446829016412827858244630447921530161324193664045818622047018883126344521513299955149484983953459749017677719114583784836163318992610153026881844347461807521843166693253124504733210078142483262466733410948823210587176990981532136306255760210860738394121485888608348400503567062097621451556013916065931537908813186255309494640829791869228980085395379819253279854946187545062662374009527186762860408125485629448738217653914500257185178783722271502597022890161250321704990306194126241413251130559920286991467775852079755242887021639538540575899301391108678968728405483270095963892032476804253654592447664977293525165410852569676764318293763667197306699236203080101193831927865582292649080853282856710714162308681689637846845853583923331318190806823093261217707688621519083967734027616924433215482424415955471651193916539886846911909519923568060585031206062142408682000069181931133013050592389825069450395762589115670460797642911518867535231792036274405633961225666696486054370943267957171013157374090135757057240765944675785297000962667258692403228233263684987763151103686332728757264065704188686194273311186655296025075855799815630440003888063912502910521140816450049476952646832450396542913950296724344903301368867885873547639569570911956440229070926155805037251406351994709784726899141876658494914565339730262264072277678832805806567560864638653893747652826394694732722248226822134600643919696481209696729760017681164663880351118129583492443800631757779715799899322694986678205675454984502368295602921215347799774719707001903606574112027808866346757006575886438881969100935592008227893956775487750162677009520260828310079260102538738306287518656402634705008286492234585423776106881967136254680728937348556222087828877883836345275289409136362896039615576472468076061147849986510323381189802128678798959409537958234712030378042297679264964752237866077104201944744302918753397074662790976000917788394506254309190520463612795658579264892752379006098021551752087366615119730229142946938425553886550489450379699416529040091196370136755613908185492489492780803601670862132628333333258384316923535370498637945180780234690600670437526063341697402732576912812690651642944313224714657630328680529848233796913503646476999966715082417813019034693689227033795617601743110442678305095072812428458787296751243888833791325160558005936711483392408158357851354722634737288429158636082447318741666757169052905169641541090758066006441879914270930538836422581570851437388262153741723153747361954017474483471624269612528197684921163486876682193903018913740962499007231524982240445920917414925010086430173161729620682268836754302316897251318722412116069817320759043888131461583958202798741696390499839383286364496488252492348387842318481761005090042937625240379091191783095293321564272915334790729314670023963878872020245301016776470861987390548922709304334615878426431106349194395884261625798165173544960157560055916741329949090415492991723594576996448424970154138498750892244296571040685274466076059075685041117315975408097133776217836299013476124404701696475342546637742456430580774298463904751481026127856516922336701002980399998454130708804860885671938792250271323153481973510965378390723161689209840248339706745203410442499251718563286719989666976575300695018897925839293771506777726416851983256726125150192719529783667183263700113952514818986935109738522488844545058583097142659704028786084889007169278806018046094416506895222640842090563944237648835816710296459280770291689362723816386976060617170533487605011050115947266424020566875770346505299917878065893479615327166454215171203661789559878460295261388286297835617797621723608667219106606539147285403161313096022729163488120669407863189646375487249670035605809292913735942772559537675803234329930760575445093218450033814116764115153069563439529851846624971838929057271397229607751725023047258833249592749483095703480918761026867874310401091345278225446019915130568105184105889607834472777021164969177277216936213940927412137348227886072158262904863282462302039437412757018369567662450747701670133311011221310627125069164112572081044354702980373596501561130065167480094956068328834061539226475187674301638759396367718307248152311535302491383626271416481174389859111502528884003793580360823358676275900158911962478970861557227521381286982079455826753156311499183373265167383461783563332985518306662728416120915950724376703303653944345990743650579033978908608059794077258567597920053220297076669836945342165860026463726028636426478784626307102502039620333981359642597608003462087912371677859873041153760171646276412597169388654205065280218216674132481382408251192949333140870094645283476010690332095198594619727027444919036047266686886487798471937179092108967637795040903737262342148180879134330890513131276521508582778642591882562502014380950230534209496539264518134073533862498993859450815348394036280863618307795169867969467148049539921466782999108932209060720616672100103215040784092569324995115546243054539971540881448121850354936464459773578357051188929886634590718387874531800726247429876856385110969495215085963646324097076338397696101672511720738709801690894595091222072980590386111129080187821197141967598271402084643853956283592497679575874344773758333254911177435371765939946974665020489919989845944773472729941900641869557915334517705220455693870772496511155654794661679382378903189673964168204969777538626344314864406340254783575101404806791949595331757205203376800059087362899382960794089368143037253934343061223879097618656631066773845274885138104596700523957026175466303188691485772271780774787453117811456634352891803168022844083452580042044385402122978316319807444739660026730730682165017331712057261418665876902148054145841198947090593556440664326535391875395505959277542821549893451678843459013780877507845656407127740862339367445936222485056111585390723654833859329013816312541117064744739174710012432732008613100760342989077975681834146816650458816990090962629345407723238300981744791431025622119028152067990829223662677018178998398038392112566191069428182754289565222465764573719680063891422606561476893374904192443385393912708764826892928198971234938988958922324681592506252919243501131672861464735686231105899354060195907284600244270732092711832543798265870894556498730979021144027270677158373089992211592794715629642983456465711899835903576510876741784944086157790510196390414319780635375432037567721944640256766199157568367936880848161074791315725599579531278336234610278168510708556085584171377620422479575601114537236061265706543758829342537049809989020288799928463064808798545493117771796156929719545424257361289712375232921546392758002021433553119981321148421702241221154810441733382581102971180121074664135582307481815354846458680114535823110080715921239368393757109650453577609755782680677615645129620230442403736926273031792840294300996304016592047151499013796514277358572502992556786127661426647321637644177588669456998728418329607458620897924512063210882548680739918823209196935586645742022276407350994899832319198135196401181292999470301068817117167147470499710027779055642210132240638133956871057507905979615648533763237043328996993509407850276694264114725759123404239000748861735005644915013909215235196769566381114169248107450826857739218067869238993998869627253136892769106790453487843640066995693089585677399742368201802013824448945272659434839016639897061597327438608375021432610179023589536087686825303056748789152978708924645796427264317889860669479456486490527300915289194236062568188665789289900757424217619494232140023708601874771735894033215576920486995207188266988111336075803135325892001962750096547055652386689361939340703687169140296668218803951657673388096374882367834752666458850639332095037051981381128870341617618180773279764138037643929250197371880875919891485778481138354934233686820424121404007941861339317191206977859621610870334450998972975052235988019447381836028322688830009315031425823115891003712941866250067303915140276322010768829834225572181196112188740501784075281584538690455250456276480965444073204404732803502040170945642637025687611792568753926764379447435519294764750720654394117340010297726381922607411149623809152418851037179564515714898746155282580388838429595353736274914605983309568050157092901039388466974203292752699843654611143374566697449536750592715427517926790484337968056016998507759325823057862490495552457228935859952695260380003968936712666938227981420007265165976826859240212800413186257404312422800217292897976944576606310252149654000248058439672751597429693592206977349990720589814534977108846696835518546581917370913195972972861224364191381748912152800158218239259751376572805020191392537620600562113156160687231899015464920100050197954791051654354782899801805549447050745864430648143135165751738093883781775357465736480501714165836752449713550607954884763534331636383803737532199821881727151849456748769562706969629464192641458573404060298290139856028610440358524613092618968428275312514479371782707356938326209491623975058804859193384523118883773424001843760523123453208780730156362147912840362324675820665454820886919699579276727997175772943135904886570327806370871176809264216783939549483865418819908616165835042819402024747056441370828933967181112672550683318206864175043561059810751431602920465803591744951984520064272080213240910331007248685508903326941999123682976914609793706537076669824542350261131221580292299839329887480202753059933654211286763621126894031151145190162726776259359674111300026327702847996264777530248682309467572052824708592957803637326063169322665207270677786667226052720234237932371961648262549330237156266799406127207261390253951299910022640290285256685147186535370973025032832471327521714921940335907799890234116417566743915670108462681063061058276683871429835600024996527429796292474057057883662326287121622549291016949881829491321533609996017796431535509478554930653324404160112118369447927398987185193488597428615429874436401993534531061557791102537333605847523570216572021904096266971218926550948122479314727074780756265868870534924446685904488109303015682958606532705903641127833630714458659755207205510092704427294371236206429345969675271808255344616908614714698288549421537228293271875355835183101096320344181348796882495835775996449294726276555837414693369228300867689323251885847329600439113383857748649053642701133292314845665306149305839807603996509556057514514492661388770148897424979833763802219465813679358059133075019159383454764223010920010897789652020873929204334404598435721745451011524008211894596448993659772840054763830788316380267645186036498636515434044230629292864483796413856429337100964206044283738687948894498714035185220946242632225056967032626862739992229410000155333562171147907147010039314463398015280553254034933173028153786313182666195054853632841203515168233707187246508973896226665003514886458175531700478672899119660397025995772044984653803578318577435617241404823341319278887104784371284373470407373618459727376374194497183817234475923845803410644040822373982229829040611591349681218622388753047400463573184350803169876558467699131476192023510387660387323009860243294685409139119262651745894669273126186015515911595688214848485431949372257606662265792654648756233634965981871003605767759142613015968832958813285938223967726921562671012295524519938282141112715029214960862564023743755059233261236174324116511559362386482057857523327551295601000303916092035584526061227266351736153744997652812546521960995468179328939236114689300830541646641123198314325188806795302582275672306525776141790402960406527004363040552755495049465279832196252931347536307897014194850543056257768416462768075479696931951706710032602873537641126452102577984594803469127221401236372457375807387961806297272985191803662186680459664898150032901834483793058718134847725592986920427569506367583077060344788618438936700006461604564980917825248948606604440574116689818281522740848488831083474924532846236587720484230195044970169241304996212484890253607435850521670527798254691232056831267611637714697037066896359304286814635352633961028241847760455611424290635904561618335446930110958902493858658303486714211066125439784247405894992505202266929783582796472619052066373214977714502040057843395719137647423854259243041168692434644659470435501504371576791839058123153376154583778292407721005464307403989486650529858818694700347347535241578412392289861117483070129748071702726676303193881294384117849718871316494596141698791309183949138777438981108101707165598327637709248186947474929329353189900440952060079746427916487012666115109305577124026844378020971419048617167771322969916898609436733414875351682913877927092355597295726065051032053091289964673141386779635345383282204671380890469489000034794376004044869888622213073944383827884989712047758824096812848116362682014336681169445391896600308781944478257298357969903248022910607835865624018285112631951050430529883380997522770951056437623290111571876973029210192473799014209247072322322689566856381311657833315541458790436117352170038949945610435385076420693821812445290505144770245413002613660073145453899307749037701039676435440598676911918316337925025996094673668725943763875073740595713377789106580057319365402271404523280021715758537278911666713107582848688335572442120598758298535903987316110005333886158414191288577636728490811688945196855143070943686390497005699087392221572514729010692533233567365137260506495600214614945056469807644325902182319726110729624404606978621419321123841148022945123694476172381585468835025793960083454829864993307451585023435829808127128906616473629022099826932467977838655476020534755359564379627463425593000037296182977778837006112478750508140890264766409801983163159615301327755522022710658160779350079744151968225582402268275091590370982504601703492578473661367534585552238765958569735140024192816297382741012241747402037816227056022868774752836405804964974801973423946603096225869849143117835717537359825491130094246054933175968695385624201374089322434683352513392027409299154610862169378485755135292350428312146477558911480997229615325583638021267148650753263108129718673144089474659607063469646569461910091124107795710412574170005882696089936857474647110202106805187434433111702351784603138543326684098732129519702859283904576489901080867795092581340016117857911849990120761442907737199129111054894721782182089054330458085860218623817794068237704435091530388787146236684240582644992618261815836548784402381839105780874679581717389321813154357412400239638712854358099302123229425908311487371323693294252686847908495439205536847703016174711267564271268105968411963042504770800153188356168220942596579902216472418182122621194044254809657586277007107598236814403314467808800505969654291366955986688831690421851354885146470164264792982002601379993419471304291019853651565784525826250991919531888465035220856826648512173075447027167628187515355686814935799241223495159247825534081956050449085154261673604980657505426048609326758457347143542356112138217966977020663171479231881784624720595832627279642995953958724005109402112354044707703226768667494758422804099795002881171313574548845367670539519483763722693656736614652816529087602970836527878487045185304486403834751121054634579194637077983748800318337508799889529764672278169641135331414984865187406003406685952819146912453762187773566160503035133499518449127251614635937908369935976507387487427231940345821124926585345766250377643343915364204646609527884795120463419107209180863617179853514609158376512005449665849773242330154552205416229795688462667279410072774233031350320868769151437825085295850111499738341380687145914426285960096095487552559845510360505060700256419577617756578024563664179256242004952474436514356933826786014510412297296858285168862329283221579561428911424259491608942475214246417834678993348225894667502092505480472655691410578332920319885700958321836226755412809581150809726142473897127445960708453360267239570271302930974544142678395191823660928684116781453174758091942519516931122267578430344507722498911085776675613973917051705508852988424197828706251300917704031744905937610132854344559651725802571235807651923622079861968735407260252191732474531863245998009684684139657488378598762964318890480285554787823740996038857082895751385539171533203226647678815940126207617975498526701798452346840285789675090261716670335829456464762446977259501826152446981260603728527515919406967624032907774337769767742195388985435202510150345148303870996291206760910283804387070970563098981854451899214713496982826171833386582281203312572633772594731986041055867254213051926364554388475400440919376609842008849883588123787369180829230485324367628706900109934086942656517468540684132132407418051344180727053107693093674267047538419567230438598877321205056073491538895558395736990745368893587727065772173207945695456697460744570077449762639417236974347120817997836148823771670487078517510795752103796792203806043727080663169597542001464951057564901678117755929541795392362526755249609135383137580517106064969367468795273243094249927046355099285949841719445057307032528255749231235757910508976926562896296931705518963044012772847317878070550783376251688411286536179221298984809717523985990314018278118685663137376001844731700699467351909994543974556771003289712244518755204068818566128739946245262225787394463657155808427128524185085999136054441978833688982112350328681246618662785573957303816607970618036286465985156080015288996059806450864634527765484067087550342944002868905022451611530271235767273748782993272615258128287938197015609045766584530655565742963455258361861182981032291968793603556002731684236904612753342304238255891935451882041930058387071193907769475965819480575219773145186166348201056488094603216234170547988940391331522973682425083609774104323573282107618286084427636696132544245943458436241092243701264572542326399482302256736778673428330767177510280752760440415468097139978409572944731068335506243432821816920499822809546149707727173790578771795504439795927148444835757987239125165941792366100533048589473193983976148563595950265694860478369517547350907229871924878423400550840169245002252132520757295290103422097039433526369329341165597087724148778838630665067905562636665762195511971368698681330085782768057621254720153920512193232303156713387220217776732785890445805599872476648797756380412108638380413106175189317198352587006920927013332735051738291536839191623883255576762657721611483985765750420284957139407088059043068288295085207835546358099143684250682232893664460722242740945420693641603819064414002552815392026421667217903418680542781405894677968913991073879909263547932974063076416617475786696149056840561272081032906805298438810558825130087819624324157484779100141712675659050309817950590226793421453068375719662445975484473680646860765754651508655097656203095460296269158020943378023423350235267066536514946361169827701273415744780666462282085336180042690879398750530829184624330821212980668716899239817768827138862982007877525754798244443556602089763164963411615628228066191652066376859586036579432494238349617554440061062028351689280398927468974455295723600464167510419369299135609236137442887943635064438486622543457790577427534799404357176850775924257553379137812576076075631287316725539829176560896798417050453337033663947454344645497987414845805370286125606301115839901331346497095725356539353800111032424549822886221513184017617416877148811059097298898184554523987884507788644223602987990436277721532064550395702961192570350737967172421550025851904736547143052536861787043076127149464988492199598459961390581362202501149426117252147610390896901079644491547090655437300681941266797104769054832004974002509408510014007442369100108768194690641131314122046994669729560107858712296857209848789771745444128663029067282624431127770947442269705420540763454931879622893836861019708566720404006836960573488065060827832831937180678098837729358413122122738571378217895431631515256048306825976693304202384037706138821076095503913102075995793356298054205877388656884928683727829647192648133222717608874883974295275234704840830548283864810456914634272434296336197101360950633279250514821283355799996297314359163819869715337352917732443933189250401307130755455309005840268913792617012182156391923942347338962682897168697043490334578207754748469079867025508435195366784883649438704734186509382244701442111812564141560218416303901641261741293165655435756558278272792518298238771792128028784651690075092844234733007822471600534904011067033711871689433329120753248289537893615944594704571237367456853654614379017747988810806213848919244536927748128051326235923901043332027855596241043177752315170253038107645032010468936886136550525710802981581914771654885760730102416061213943060472718999196433519671233252763072540774771185777927670115138157560328836630035014558120334729429766870713984917378793666418337397696274136559936956910800154896989476499173946770737577092988401763130022926924697251246177749192818064504847914857182343468844772448759615062376786314174561820300964711286312259298084124026346066714228355032725393149943619442521877647614848728008184743728516841157963747271620463827288629331919936889669743320470948479205511551133984828932787288651374472756885051603474982682921578308438675346426658699940226822065526909175200839355299821373736859633954210856180803186197325303686883322227823691551682628555772227345634522439205134366728245870179869564499598741800594396801528001446067521147792675982670284755943836926040535629818391390356098775389536062483968848813647673243064845874032979263027302184040650330832293301601425891564632976282691955008933628148009424420613878120797466340233236086036637295184145209065756048046245483549075607825199354022562788030781886265028358578847838370907471939721437201634610902017276567885526386074779661790099218199965767074277303585954373391561215476899031549215642618409330645726374246197958602877463960319198078067785828581955989628086391523298140886348563857003199526149565861491311771712612085796724257625244728380200531986210245459994420579536565065480137453317306664943215510972197581752116626115233786500277561893703427470390118122143753972164831671548851853690997906634851296066996152027268775807256381697522575694727637251004246978553664042888643515208979018610433581054974631103691591164569087701504432706573064869753469629143391667851013930651639620826057421747091181620560089745345143092870373510970787734481249832859873110621213912886434119605445517291507433577999568124875010580548593197647790699422999483803453545232407461418734730697702418814137037007296456583922079338211549722434746410326532117314485168082578568720686423512018380156910917905753162615242151381807436034234819032636269142775126765766287090598145537082313215876647073673731060580938196478292856628032132790129402295130847675844740458121425600040480096399185634086167321701293686941530712223455188346298596560478317081613546059412517876151173455206319369424428049639215770918780311841220194493809343967772780885936685767793350959785370125010640912239025102710741291300831802895576654789504689199669722721372712021246300831269578698903598549318144116156138618709998369774269793080212418100821625154188140757418375057513782662894145321463770596007097517054830280050186436298291379529628880957424664353385703820730650249280970450448112708202267981769975786051605098358792911656381902767254941811713994559167900431415071740283089631415461391396957861874486586098438058609531436680468134560401729922420290677209987566363400867683070525635688739736735509574554703913840870626922625599837569841361011734339342115570910617247651824854845329197903823866763323457763022226553769279513751476423406329990458021927500022260688530195332822178060781645980462532439943015244915509053154830786044207925346617409719872544180828526754387692791749861988479908439082519913953367389957968846239370132603255489424485705970345923561378529773900646228928736370755452788723096500100486156421601970681975480000521571183864090681318496899085190386982467847656617423279297291163047789576358641754248252035484143337855150396558110846598895579859973027916612734160185513972021156888708844625777747593384451093531425645279184044025497717016714082190644911005661581833392248745647819089963154636262696557368661898705507010841707793339233806302808798875779880616085201720951688357613847935919810525434928028812204182869202105372148701376833123814799954529364754612041814720876862304753234248868903590521514099454722730397153659862015692798864774353001434661175055334702849479072428693985373344092834993863717675919093660589641015639700031106278804683602398057106208924344906417727399665439041189519146010499947932743369754566047450271775219817806592284473300808783091432799414921421430505792523079090941758203295940741763164084545545199678833212578224189095331313582913798794968277098696659680407780688786074726132053874248617072309410203387357217229893557228287145638131728381594843984036310372290986477079521724512206118543512133049992936386200702934074818736577995757811556996816299451852165602986372253207458822595600040760622931471480722219867873948326823014943058198192445534182487386451241010206045120665411868633802355545303008436431005480196954772891604318414808606767498226994769834913966930500169608017402611235895395822680014478281648039214910509738344639173069235408668056321013995522423450835598804398300519747624183457366193683470946218264456207599073549185923833854772316620199211816544423418039345474224594136193559630670550871049822741184884839807234459012870591784284504708846060722293109377348305005801131750032078423439212180923491770819708421029909774695018083012670841616354686654375542588513971551819444704876468095118627326090452309136277004005076665338871239946753740525545857491644981244814870098156080585748603381105136200768296658359079122522009142873943818003720183223549322630650377972121452189157565910788921221577295521754534558550663659484941491069277543325940039563489588390743673082110807642981166815973231392940355948653193938990986626345710761877877585691630337911049474033461359622661576869986248527885166566074722833043746025445951367439456082386378341058283888048649073896861235133236512452905510866193694401433736784267264708618481356014466717686985178585847447145093180661655878757955055713635113249341866816326867255985070702783199499293935129684320291025719574073352277147704307208535450421413917724388053606699100773938667957856680559357660878278724097841581918279156933216042088001119102951488193617415803611242990732452257307614984251890441978886291970282652127839456325571771661372735699779395802538255143982735764215264754127653447495658702663449043609970860495195940403779756940999863721120037528835531484890399980583094444300779970402441855836051385389723991891462615999396099361895029441162943948319737346451851632248749904056646663227401836765510566150939053522733548916113607373271408675576372979388718329638056779909573684117020850817838224200124555961954010872620481738843337385012838128160405941085107068376195487310416225898158228517399546059391444200016674567458466376058905392097110563455680607874880586378833718830155240158941891113117763105800295600434183335836795172643306217833973043878845675877155065713135241279017657217838903536799141930933707587486532264330143513848059482793114904945728909131187790229001302559578587690642252690586695968380370660823724000701319962332502090963746477241200850955197139258925593539023050887815384069941845278315018523570041904304994748723477628656179704740928159344609781961081787557154535606856188466245468552435458308526115121191099242220680877344417782884136784916370135692773526563484200045025306357153073465895349618829350578441414163470979033333748602432145967066643520367669560531884710026821850504488234525460075800826005414993213161233405262634091981157215695811973419621700777285028596489418340122768074064286798193313965269421527624521267476135152416266457146005695135433317674108523477796085170636348566184834557647223165839957367680098457963838135076859689157111473383828689328294653851451139010380798556041318584161170520913931005804283310549323011184548906679577438650008299952274032672109565363688789316530667730046130490656304689583681267305668092485755790700913271365839777892888493412770595384971140760230332490774134962526516919242563100161402913789205810277355029442807848076146768817478199358041520852606250061956872696142087736032435769486418148599710106147678865232078983679288571679040024171552077097337405907717601663829502689596079416473720341777225587665568149491709395555103019153149465195635805756212084902603364715422475109704817947335370796047867703028199115665809732771205561532549211239627391671990959661262355008585057927432863100540390767804813784949655098851203840833811449489545289969324621552553313561179131065663688814267990974274606136643359388868419528451311526366293338141930748389037040163185297646663443969646481415610411870604238979063734096321170439763557003333987969812844950824162265298306767775932626330601371837450962262168457909487597194962216684431275717378957966891771291875873908498814833980009284425354097588113122016966584540128001838344576800695871158090595769406107799633468826946519030999475795039699143270972947341753858384621542967230898157264978415054200058100784001327086349745430820435046059984313249009699069287943398263889719463461050993955376187695364897451853688236576267410749525945926795528434275537159354782626296990140136842325947684151176514537315008854826490449586763100942736211438572521330209650797223341113245491457504082272507156707518347970298164727769176862325621686806958279881042857658689046076409939468727676137293127985477765699747789078448329970346619571246813945908311669769108437509667066797709861508177536307903376786973266046078056421186088666661616989454385863028169082993953155671990363903731357645303337432806343955576226737911783974040172910340493280586356199861380268734581073002967747601747691174764883139305273801699133178594791960680221420629183452434121900999712027325241640520027578463654297131168971940217187248608681898459886676941956483143793616474143880360196092263046747945744487391037453165364663479833959913203928276096129754856761326348722392255771115201406186378981545013228325432461829212795228797159380110492362978635718610842351009758604603940923965033072340891931757200366713468776396302647011025278678955935626536162842920977909498688585202257961043477894845058294811031755847029947746638262696137114511115378196028491231645079807829073445544910050152674419314275712884335707357774124569425690472347101757625845784781690589761276596380598959749831718835068873429327388982968474930112254502049562160960588898112184177870417060754657879452255916780890733080146415373142317051033863364302536868871645043124109724218236594651735172424805696262589381057935564920412728631088349199597149692265146924531784936147927662463446265975410382688996594036434019672091893929243061174428311645230793963334420023753357079477663976284545433394588483402533476550064923763208181397024909534033149952687207555553612605384991660407681215334728194769940849081568178796068382016391210369035546177821618417118034628996440372581785109951762765208268077361201518239961169376325572802765726710015688829290366722533854338647957400389676957846130311220573928804591016071217147803854824677461245695357380659583114447477719429745477326685837549267424284110381258122677343417517549954000040917373769728161527921101659922563843608446559420536595044643510664351495018262726124808021609824199839011111772248591541742290648556966816567377721228379213945173292796451212008331746512889513430683967897499469065825611256624916602261100059211456317048229910677957008007527727138846237442753239999013492262056958981060650071144267827182312551591499687181139480523267705873950204275538343578100942670010827669483031342791340357384748852338760814146810588380625763214191798715852956416919417786231248748331876148791523215150559571334652962422078913166983370220571043057440299699008861762986308396000612915439161790390624503690368080494033178493831696077402787621677357796745494137097452061552033882967289361950024581246628503718979630316500819865637027971796641784598570320353928299068296635906855866937937005678995551584716198713717866385917621441782062813246566161553089394170735620465567503373894433942014438293094192187209153544478413036749668555450223677048012507524816974377106152158673831595798013426468471743620581722751182639131224130644008453700278518098419118353354558677749467717601881348440940952340556810192024699435266489255443590833412100203264426897888008712715668351288312566605469257777302564346869108398002181084949356771032913928401118738499356898379105427630363633237015255383442191182084275494198130244885574274509370180124640422503961593114750377149639228689142058405033963584547505988667197274691705146293840102437971086190440552082810563509788724532707296370578529841376172464141497641940434881271232174312031948600942638264198692907063401847097536900045785874933878392900104026904770946246387378613305243218986098010948463178799237354109442281000386951948785245186189131543034990990788532790138025416029765652416627445708857462600434560228551212953855591548482162069699602486417442592370245658224812948411358506698794648174244943945361198722901912747534146312762656083738461057516711276966284299033051086882583494763059684031495571154093696376409411298514220159094379524448470930393415030011065490245609174729593498325546288183964844049691349339895741300071091090336309985780397735315052264192026726897302209128940480942626464399579773067757468248519178025704221674810854858746843538918921739448240690839254881532767066733717838377259535631295691529991925977251729220004727388903894018196809656614819599454862512955763719184484776930387573843849594784348990586133339540056374805500419220586418268802779079790673197191100955305064864305678195789241760449016910535063056786549279686389736612284729992807619772057021112606400590246124954178680621904462344422227198723702604496463943077922704715170473703049370023944837988207476652048826899336429023442537373951736097740278886533209915847431355199321180266518172794843400461223219539489692616936103505008702386076094302721114243431929275253037044473310116281953918499372164819850164688281117156506668123457018616769553046417539442047193067377357501539614337761259190520632528075798196816604996356182952306548041748849313755677438070997850485505847872706842568767751621086326596064133364259680629378015207160482538420371682498506812651891369955499526933855394735384465836394225837359545018026382894713658550715696448168863959669370927241246403130157800213259903307650183440857250042743121649752498850586356673839577200396774525785523963767290758150058017483005574609219767511088953696896948976262833509403560653673409795271815777908900490737462398444867913469431770004336606437158267851825085808290431569927901499771463381141355762014271465751135204828433596368959515157944038048768776434885282837608561197689297686855236105004937948621502498690403134615666847577846013251756918560470901415975631260165106388429210645895012194563707371693417188370829856150879648120057277270682712134545285246695201991305932172052689889636542465172150593281604557713265426988067021706357771548425719164929466256353291191451386132890918202207634336702862511493217877749504905596296035165565479169101984375303505274733677879751844725692914951947341834894223702707116306613928305778361291885920479938648465768613445238062713448447934739530623170851932690804316726641555152522880697529027561591448255235392239702693869521285050023169754940165108757565295984216374056851614867448887087647967489099257172971842455515953520444806092139516342778606604506306177527289005570506185572551206880156665972149042119238760973767489095399906481623937238154325715795625225695942709597617909050903280163132550417066136755610901266184438135345912892243211221525279216489868168202115047679106118775515413596239592470456753825439688512144301036511483514276940771465495671384054481574068549836111629780816480930468712532969168167980261375194351616425183643699146468226526799071860311732194939335058501801349556460093294637814546576468595509130387016786405626760970856525284275639060635877476968128923132423824786061757519057152836238907074982453529012142422192696425507549931262767234108769774547852703851656572894514737562450393478520061429675846209891270242578208169178039144377917641349610028283765222602661270547767602204660075532986651658110488750146284704960989644551712746417554396976018370898284988446151815200298160065086209161682971656813621136767986109164048616880933357572644258798172692536888981227065641652382297018478090629571595410347071585985131999851182202699224592287539858326538161914443582217293107577496033651070750882561737754134957396596101317712001704544737441451088186957318135758752109580181470985254015908216848006615728171815614758893945325719402229474343566850231642041726948241690269337542998506716850068224210548792549818266465967459206381076342166294894613490403504010859975919342778741994249934737315847389658931962476558213475979809200322515191134187105409315777225504553856482744092161670279069705402387222740623974879306444353793183046971096657434943512894754566500317097172681744434974999207634882959023738131479472184186854674023902386921418520023492754841065449055274655008961415123587857876767163742940421840689404513038606692389886857472470734660963391597557556959891471806150950449282167323586814571874138694824167078493248945397864718843153171789798256204168267218211364658164356225163364578669601937241896553087822292830280825549616509376785754324634834124760100035661209946599916620853540876217090316899519480456199473528342794206816191700915520747134218690114648894902225103304154037524934942785963601473419970447799230757430266416594779627036511920725752780314165563238296992264865985612705468259783381004893086073899917370962185538318355800253674120464213812819657870414704385255174379343614209034366165957141053665521994974402279145941383457495893620731762369409452487865308501245217226958492934987547572691267458563591368926788924522253811033657595655215668688468476823053277094690037118940950678498246916066264431074276419854920640132587736563159242952610487891416239041801160077082702534581270152486928079011760019998012093036892838809401058933881261989110496112981784337716029492023000153785450972373412651447282316416142689424845066835542499177832525374701451108038219081974140226652796095899106620965674409323216706265847100108529719842188922000469494146768829894148597877609837296621803385522700108524278039957782334168575851968393890049328605003761976514177374273787435258768198319865584442876822203020751323065710301370140290406948440083289912677344461395416885690099413898202925866643889691265005098698744935718805690225025536141252062613015273661640884167707164605474209917722405594186772638481702620295595782654072712677289302678407772720538596696747535264092895903332628741463013359405250895678486515292551316069592853771912523013845505980168883658800888626795201828352787184019001565038222645560416017462865416040892899639148702526817782625558653584927643331347770231654730275592295107334516962923731802900699720995798914489841725881321303498289986369088727128762661827419641440949908402836015280001568605884596604426094043175819322604321932913025497132971899934605940472292815839152900309413008725506800286167919086455671821258576733675385695144839637523622684660011666047141237912114611560766832763437623776432139907813339054152707473577115413483870485820553504019955286836634893967407709339657130872336969217200068688119210297353814047917329213167135651584923082817011616820043981899432844419663299515094523692730310050143071319005619748990056187901183291930348931604294979819798316513830621063763429493477422678983976680995507227513926259314741060994663168866605442926062932124805513893963635006548612592746041667419157815125999141775610336725272696567931795766595873327007498717051951025133064999526194967094618742333917023838956353604312016476631399043651306642364605183728115336621081074187401268845408708006320421988484292477118656631418891749318781292965580453861904643011188939118367040002216610012340767576475796646960915592452829986764995103992401604974224724950851778700588474680618725393062825226315498000270852828799155154730829004771344212707344183238292958937249147413771511722371824081723101229548521918647742838603852369224068761334626818300860769331235490431636897970946510372393704179624920372856292450515303087623246418766231974833863354371091322128560683788477418025278925580219665516924907012707582520266407036569958767477843113804596042683775728541130298401296679003712471166743809643514208633621472591122155871287095135465899667517369726251918765439244714462359187108181535720951294389170865132240800202732656077429549214492353575344073286780578777051871053622692797123003805478972512167135980255505459430571893471875594637779782237930157478464867741792674967256798370243177988960217094184671955351023859292269726346658199613470252430542614636596584450847193721053594168264699220078406587362737325676569935539033925396745286487109691555933194042830770285204053807857317305280551843353612272607071206070672717420029298675275259741198987507915979214735907778241726922210850309806157647658801396502296908935722492188086543726462705176196997959263984584657933762677605245082149944429472856549321682953452356606541066451411538540264566106674207368983678758003656280474685850841135745039638046031616127046317535635289680296469924323245473275603932118300837933078406993565582580295399314486267952272421806305993356995483188218775901509167832303896453785501193199040403348552412475449763890184743092068997837204987154569970632229596310358703839596794947600697352101739269969969766868822259862652631259802243174060302221007670683874668267486331267109223549630755446967348902193134144754059222466071682391765144884055869905797725005142855153904735067823064989508806134966797474064869727825860400561982670164366104976010185087436842981432371069075735685460751233187511995669652169560586912739003919233380791067972951515363379007423985978650420626465208416656647442388732987973489484952934679794568466479756213093302288812238212892889281347290370311285237775415060762399480548671299436122290100120836647890572234214126106166060070076825186804108179902869697870980799787798877385355712125480796404382160398122979034560279092613799602013696961528412872992213368441195210533834169068751392672282678449860625121485936898122298203159036421276792973623188472040202382883240515561464701096303692579825979834814475339065578282923621386167854464649196328610935217713031750880819059673539028896704617222214418778309868402371086043929012723115385857342207820787476683410213545581088263859133353425380648671621959477530387774853651497974800677241933015558541747271636725511411998208936010965909246744039407110026877416806965795490034531592841623806703029151317241717786927314541399318498496437577165538622541006370498610666568382434531909945444039993719151180601693967163145181074995261725562654392692605240031309992823990560323417678233961214286076859626015746797566931261901016589904303390687481492550782460452566527326305567503344374926523775343311166230121241409959741552396562091967753768061603827659013658850906862466124829710893584584696649721292462866434318850297769475143846284144021405604616822972759296551560432585008348676050775358189012891758866032446569629204720737677239548808738178278008963557505851144607029358333965932549966045089532722894091507803082426220008933095377264225288991154424644464068059721340919867034044502999766127219377007809171598161707663369634914526842031780096175001198935261615232061319148643922329189420135528655503601240305111615731567614464821150767793468970635390973461210857519079526550142863882031792380123151363200928419292910529113759355959838967856943624346388624640827136852242703525147575143562464378367231662222563105846751138380741663418666402168134272797623941319771889313187656300916379130074176949583607563560440388884529194403389014655345553862646698119364771940542186830078425295860228821519050454266041061877969289926302029982163003383989877836152339367548219395023449304729421151767810150685977059163454011254148003644717884451738200616355793927375935164228130660829307149387782836615174276235098358922650349906646659649949646827702671889530332947806856354732101011687712347393220571985135554717817809308436002324408940328458438233281137627971110287186643522926867449888849499310576426778557393607478085168893596113506822987217479685552625701545412221372255106655883888117316435582712826994456898376116117346560805006247696935525122813608836502167681157526498015784717671047583973397587130552894790797114401633053663168010985703856814215851498867748101662907870557219463678448743386257352803366448236999801144262255916728122410317699270860423435077036381883620261165174246864167445841678290159993419656108433682161002021529235565868385677778170209687478393279041527149119672107306376041008218890464041985796982765487088467882636819311944203934505911284015747384060592639598881966451844850419526620595280250472585997203352564895277796947577123385302956053744731703809307447534755963011472711714885950768948170823054487718719072857034017954896863264289174665440070339669613870882685941746585631183615984141367632689211325682187105408323881228693951271941703039032848136232681799376211658294487450622657025654003064277919675268256887719602179356782216939813877096261756648568283358438155733062366268333898427198357974976507074699003555721383205249769543847521553684487724528639150808810172085750577515321726726936304520641083332876127460157104216014374653181752259632447537977946830645121604217793222183453806241651362870771581715909057506345893599712705551114943702476595491656622377872928043400388782652296591686119389479590847008937311941804918906683547295532972072552621276466241533236844057443255613938334800414047608982239960301777273804548942107629936323951393596747328655550091960633293406176153877332344873060401421266027670309996709650435846170244416003243476404916650325249596433428065535453770041972974452575984623309884110981267756425655020330544438861055138836231321587355396320967963003524425793666518012138065738684425119463482532838817460492992101965197347831760801100027126712893065454136839495662131711310125942380172576093085051751833868396077028522812898401084120987340249910080329215536903999571325698664912852808397885763984493024289222916972857429746133398762494006847946211587112731115807074179600459762672252040865717886900759141250695745998691092684743898591441880407491029443533095649020050312373000021739368312363427361332415565886964440245243846851189286419211860117105744655686194847689207592953854989716754130238801635143848991609278513332712342545927174384655967437675866680507544862002223100810044250017989973018380288607487272607317473837651565162125233815839209206798690813072079949716042002383824636840523010171647108450369561025503821993840982919128078169046416874158587078839326356459139428154865816460951025347621231769548224206255979405710642066722887565889809152804065588188494388726939129421576927442803276026196746951660035362005534849410313581292340339096340173541505105712557871116181522148694183062486574761438221344693861053553806168580090351338089451638272656743550798521679210430983598603487603823500869451057806782441987589111654092361586365677593342691904448662889408026776161829924309396488682677129924525296949328350204592020878350657209424465715470305378351510038517519010848877540690590191936376552817242500505474479455084584400573113880623006413843020899216094915558134514300996483866435991073403837341952150995713350538377527921749611794371915064607197164301862438479755747369040246945818940216565629395528074720201899869075529654112454081387984883353848094720043602008852730027818882026586854340235244018120471275673860633182717356962729610055402844960842661098076989021481751351101636622507203022070999135280788743579418992768600449826134856292448380659744314707200946350360450688832577356882164871000764820663059170504714221089498579705755066571376201554692441500089635415312537377971700068530654057197683973127943606513971196468391889192989624820562290890830141684452718992952305690684929457591610817035404287847291958797671158398189645139925525010025617284157669044343946561505256979515759518515141669230267687014482350371224428487762008458253060253481222986885027965354127859988977505160496231822019269596184528723701311490758168643718058639977007882341891408158657088143411575143476052401552189154987464509977284211048624059873617708188047192002024167796557469305820155534042190238213394214998241248988820195904618232949095100561159587027454874291556788738018703224780459251361253976728549084096823944452800283311236308118070427691667622244566415806994395916103239952661481860157120502320754100875069291918895687958998526034274349858022204347119913660575659261076895358914859922644951674744461380878672706653002215029613940970890549476313890831466427826808101491075046239075716521080832850217093343178570744008820570716962586939736845863279259009915680241510442774159434614277563130299287417702512080752458310861170553682552421340790441763334837402595335735474815676183621721555330730525867071544083187814961236745066553962762092314136423480607200716680083818091169795986541912263939427309231798091051263380786840981801210184567421292717257567353715342574479847910416244024883225456736747789412359428094619448506053309619823567288288939993023972874978073594263576033036010089780381872064044167882254750498435686291599871607600599655225688830308692335547328133431673181469883242740358853015119048856846279107812383510903449283244481692400606702883183790848711335378387547567042492452438975723552691588734611395544934614124589485227385920915272382335602446900274979526002570729346261443441261584086764023701388684851321469577458330311335311340171516042283393877702166538114477399658535236834310380802685994009540749734722760563758560039331372773671401131343732243575852615152576715368988853328551140278294205341430336364019355285316388272145578112337422446122026295918697027274468762295927670859435997873295599364280313234080055526637080253297920832113023052777710084735110643655218049594869706119616148462558080455628670229195826203808708847450249081102213438276401881483682585610261497344362492325938723761741837743364526849611384351926377136114011480456437109521801756231251339104311702403127010342494042599306555384998957442096684988934243866787596933088370493894684328153505474399199595139929673049550459923557861651838535101218279375531744274949745090314840588128262427696642308452032099145657281213196156904018651054851202427185880945174584099361013568316409056440403485597301761673855695963860888965753227096994701672929535086181643085499514504008128635561059944826477591102459058381144903095221489193516774852851593474127667355199931036409990698279242273741374001529613741796973442627913058046355775723367052960595547738829151485889477946943209365901467902475698844134236773505404707583656978557692751024048691819506300098947247712483351558141953534109796977733494522311708891426213905984227481924971881254067409680258344888675729183285220696582561751896407108361340554801125004674297825330622511746470536426853184106511551146910430925387077465890918076920042840798514420072596598851059226839091289146304746107322298265502541363639697807500961945481246352933935778786637525569076927549638623967225776268103536769463347559275679307720008046400921272563574016743136292887977839005963237195839789968464430698129593867488972494218004003944744005982809732517538626740015718266291727462426337486613615801288248976802478477438242697880970392857686227263577364803968513095006114939291252168466601060841492084594637746977223151405647051864303126257369311894090259042465389318121351507926043084588513672273524788132241883224651737088202221636034500236655772293860729906058201930879630286899087528547150678720663940448343832337694505003842763411326616857278319208771274976541395364520671248085404737736817802294473124056396043085157175789691283213465035477061288244425107170258058842576102118145362404097356030645256671247067520988430842703320981526807881280681668054116656894861801851797994343581151822153757198415292550921168534874664896326752610821603435730648077691637296668636364466578982613636895186153981026317809531621685322340573113175863750603062523393280987904359657478506506489826940090569887107959864239532288927557606481379742301790119907063043926641976511311748020077024251168708751805767213985896047780891469930680346022452327055963955122778363833019569001662040061812366559393372379957036629623013793184790418098641276230484794499566684262398336159901098362640492643871068487289008316772777959026527963872655210709496859948250122888699333565788207409506491699749861285559118330999168876526528294941826061110676381970764154401232664711780763704203692013510046216578820022634694271087081360046672871732308263888012356236583128786825203731809262896176802360692519640814704303172759395364632381921907674954929931488047995658417791995202383890493592220064197834247739745131162478709082255209801115329429580186896225358307425023190470221658170746479138961861749733277803440376435680375069449566567967976616088103232071092782910039731662891024562784341321682726034874394651556647388067065902179069173665964738390304041300969868841186082521727796135477692499849448497253155001745917236995847617369733254535311277231024327789320990835421635762089422017345867033378465559052792200758129726687910802970253219636589761883071632238889573317918655756374624469208135353663500935476205069511650253776947874951128720602205809915272173878569533885856802645090514863427234095691978281207077850875547472779101361756633529106147168385549085564319797989230896592813779175027653965245884479696477924365028289971024691695252960252134124056083048074543984082331276329335812404176187387660701207335197911628214100396810326295145882951645507679737139340395047281130266512768352770223594827599357275079886033942409864870100965355597867497073789308349916837482201656556954936436431561487890627936087199628950415965491415718569854994848496117371947078359048902720230851578370275096959586116275554468879450178414774958435398498820072080373115132044794095329352603347470157834732662885328723503371865677636188911763152214222800270104546961301117194441718621885302223724915329912823552083128199849585540369264862693807308506431164929693137745362763783611570525829546076929690148939662058889053159532175624718438522507065482937132953512385852846616355820052279318993484670923960515736356458281114789012317274793678785608089313572454416568255444057624447619520818038534193621384434421355571299926517899257767806412904644856499647386381422994491976756238319844399311170258943128446880521637978226863490636871294539952725805047303167216623523582669561778805334081157105191173072817736813450219267640140281462593606474874425307668398463043629047946521582397311263983092238190665468052170688820478326302584295926485955859116516233288705872282236403343902480740452571109785871450207696413958254859266941515993805812895644912424446722942086994489568391736772553026652163102081680330779465064277460009851660987976971876745306278163425520156502236074367398108207769334342504605986109723627207054193025212648425035319147085704881750997939274623799373835500275592669255823252537656678680255292182789933839177153348661722393212944770960897450709522015790954596468349241423720773968147775823431704900980123721681934572461511792433401379945437606237579297434477340834728757803214388141348491550285931652009267866222305267240468594401324186969033197999142299480365953575173766836491830694322613431748847554558806311544220196983036675276084827751613222163912816007011633091660850309923661272139088289214905269359813994275071304372261422375143281974777308735460834482706664688457924640986879434005131182785787953644893848021321911190863181059385549199676803919048000887163894100332806223397985083829196068940535119997288838826705435948111345073576592840707156709407779976306032486100079297167599360247129672799289937518933326226322940458099330116636025357798209979580968011073468464325531233335113876828616096390356131756918402480858593395417319963028947257679380463826868997044707056738579894905544794466236280481745054745654819813440255976946127668489690823405093978761717124487088057235893752821303960830874644489052420752126464650537956279429607964600009898469268405241725916436407801803067248148380800968016055283795867435439305118084698001382552153811249031920606705161262932221071035578671996474828097802496660034782049074287500950066150731642616273120828873495870176945809433371574837821652381686821089503868924636605977490721615585555499237124080625474566470730155843021352763609844656989937416637230573100405861249826245837425530862813461958777141392293808221534581881319854518383775534194827045806268736311813603399691588645444059439253708193995561143286833102527628228504431468843465526272343903578786954999448349229067605344324639067421383391307907643034123763971519268471438105475474167046382040351860112519914493513667204364150725832626186315787310973782492375429997261188402023764035779030675039058858069023499774807890636269326260298805468766933969216506791997882013934756555977392661687313331458842686224734784653683799644215142324458645679460730490474536051436934968404218014188377749304013080793095541137566117412550890080453158872326997272136507179729747778793389894208943558738096978920253075568319527644454902640976184036703895759220106488649707224368146515754259639970498419771822716740822574851944324463075038947272102214101572667631201693159304435960020209639665674981617742571327553954460469724667103938603707809798915475005746196466856832006040558473545460926450331354995895906090765391206026849745220315602854341353550976411339902662464953917179643738854386389053735531616860108700565349813013015758623719028884189438811010391507776414815458377975841199289292053821382773547242555864362690175730181360606356288540598526849004005897790851244235593756092858985586949414128798080554771135207545600225101786475522599091378953489960473237274147969670817061580428271575959701751221200909428576142316892927861702042859384410593075220864764323158380931245529194466710742817821438851647252000663313929827864346895077533571683354250519188786382353004768675296508986627047612481230331613880911345646554515844401355543489883063467107057882895652463951814949166378389220766133308513345264052540611486093058657842978859935800592392662630155680802184717591161576914450986196287883317920138722642614088698289774639816298743072314480607616592946196550021526328541925195508218805870463119958683396280067174667766421753468275833598545836960377448022302076647713463332365267543915533090230642894260020467139243670064358115929449010552039497744196022721758852698390613270012947995279403451522966793203789128654365470110615286454752132636840577258455471045037809243260209556140431433065841063808894446713405497884459609721645734128486734338446502907632991172372310151670792299520618231140087083858654676225965610389383991531561478589333749040491314747828089700539270115079650372717159506768245687540819691712458119053195889407142839089071643853807966056739618991587524612880028599281117200029912676117523611679753509742439388499486648028109083131917139715941001138755272123119032249086880896429698621802567951575958165922840586855487216315696574439316443537656734638067911789601726815411847486690418485284295180263832143150383909367875500303393950417419943817300334577715656083616853755377781079750012518912068904942448011753311599724115388534101137356383029926879186572620631176438452875778747133056483751740707840410371919262045385632356667795529279006577544383083350037981954005057329247086917950697343556476734538794717528930683056436718646366664124586457644419586700325619796130309494398491022988420766942034330699705102210750856839246625333020051317656228615066910645595919056915107021945575778736276154427291493663946558923336721410844594562273637144121378658448221872790831857535029624610377599833426365208585707785253758938392484538081595294636019657101532042962539936047022206902794758535615415336857171357505736298657511032482625065977572294047239073481167648436676814059641502271834125801862365817732551813940740204358675041745693857667787418314985951584670217381721350395717347269446559229658357779016123040097848308538264292117277665315256084561594520802308783545623837959715699006454943871358252512428613357518599026936702140404920537030082037245601626433496787915367027649380772705182433880221196976354967981613829525926974867990173978643541051213963535581065316362660830794494212810009651059659233135123402522046963084444832375960979217298749987206675471760483925472786385695695115872840217667985259191333075123282687371732100478853466013490763463098457634684139478538253571880972046714402168706975321686500250487551085497399487895968472321478197215516853406376459667045970256679535652029293233963697400686434232400028166946543030632027412571786016867248792405475170203826472184526514405265510608728278127710026293993888815660061347393224360597217720274529106728667067656310810196409268427020096586977006651589808038635033408625730649188392285002078190140792581452526987069857317197491853865413243315829801290456371229991043645783459860578810177798585496435284627299799681811945782377510842245208326155982840154895293881947830077912592519852043578689043226277051682197270554468302957868827122260171731231187701425237727119379007606234223241385161211019226968333243701954848948880048039350692036507168460678006943160815346449380373184434533418019337312673078634245628213184812795175324669410827757906829441816863392206699330139578912516280908286893443616634541296518873241589136533371993338212205937049638711752034779100208282734738855437797531601645473430666767545506229099743003354286226500484160973144290209140598230940327464302459248048415913688039478484469683927481173135567710971952086834268370511528512713563164820744924580023128944343243269716550907354800088431937933667712307431603148044083107435286632950272456464702231906189854897172655595452818320525006274016815124972005797866509157552836490244894096393919778324329717374506367718548094207310591163753099405251150318217378898880278312981922015850934553085609641689666859490616019036180497229972123732365565509281924396464556351065647141895948181468902531794667831864766333231486513962242633093889334466328764955120744369827440076493526617210758060547005183961479883347530964519905517785310926386935775796773589181705935917039471572684757078285458940183021374084132096689533876294183751139258236131953345047115670715709102798561729673288786126471128839699397394558622988393516758798580212277644351004920173941262742057490768648841404557229062745073134422940097430719480751811398008973807580699402996773396053511948709043073592166224209125005030023799954881052227343301771814214670672860385193318264910864688316987981672190879500963283307024355534244370335435085014197562163759659221970739936811509788764829815567410724699359780833981096104266136142448938915896653474307237815495329829106839474544268203362070858451946435486911004070291637503758811387002463342972489341829552344560456658488967998137235708553119608628775494054726952438568965984399492378937900996923111904025241682384074194425325020982315666876022978326326834838148245311467275868366372157003412335145520920735501969116717918006214667496407155461666834584368608463413503642634397190781155502858784169788845712903481849059947639480097653236154269020454476166435990601727904888737063555605947934033948489442703909390994409321002276468703489922820739994198710470107611553206130684031160000080338638589324481977254917726726851676534724798113882653755816277790249671688225107746993508443010107315877788309022672477710602085350508804467960332816484252639391125558028495694075350176056967864416240746009788105134742412634699575098214869706242332278033412290351242617220793066348690493097027688236924247826473522365785735995980582953288875078097947162134980235372658206400205661977045006251745760178556947308157294325344729878357505941624510975171549030724027589021551150096482904589899527060290183560982590228429227229747819287389321125117979859852208940151236128264600264852638076863156754708372387612567692912226143933357006447253772791321290526779754621837268548429793079271484604589609430939954056037425635493757346271999191349731472716197223596666341769446172231381623417210919750033686057685547313612385645002675427747174802003793924677050475643953416378515950885124415841767125113011808688727851785478817515920907377109450222061281168537161667117600298938344871138966530263802044328441123186530224830553358871686344411118995538046597988203199377574986672869553613729305102197006655754287107249752549680066490474809823554916211042927557629106310337926299808433591614692339804622834661054678750022719921802124647614208035967783663889805964003669861270184837121239756259696041303834333372225322512226702506196698595761795215847456929197743688012995820226213422879294408733852685849239866107071925078425689990506604411851938794242367073935710903131491462394832581848782261552904686227393238859022129803718431248226944565961265039145909196004057978626289006618751908823047013435101382442474165647311335837878178163714586167647275191811506427968619162704608375381763207214388834016234049104972178699105115262402128995151725066780736714202337570411170735136152977400895922111985924883058286934305931700917901127502846311886968671400688975416354361382756026373095718936894332829124581088597383237383488164720314638818331042166078337933419490020200704420158359331002291258861162985174421309428160885597176146432235212652562266806351101421106888507937866800440308157459164918899584405021790202159658745913593990485189995662048492007228749862175413366411762856858259175795958140222226940899882625701893921799965549418537798460602465490446158880441094722860512653689402531699074320767301056739229035442769883810606103688324579857850701656611312314568573080124066464870619153982309445959069907936812901255355164821149150720319009453805064635674164122426199631920727824310382776304873256701832199289839268225495725011919456030914698577487956932411306261990371624461340176926194327381013992248148248874794057008502287924317232773708328107186318781655831272636580714315280277474917836158077786129213225997490118521462119883629379531113293587858551581527644587637720920638104727848865073338500948930282544420825520100794080823945494441389355722521908698678898452298619309551100754382203853641346408940283682166633903954987754936077244057218811375347141734577025137544481391253832681723669543974977456494075789866272005602781076417846117968722059533192654389421631046129704325662099103005217507163125968752109192375039319067307425374765659125166521027476709230423822911931054406433931700082459029128031752922186623399870779100801203269689908119098667984524356658024570210879476985608839161057524970202538456913600561949883092813081147800612121833662477585416606980112510176328283943243220180711712616958261730841634853936268374185130900765119147640532914565435924388177410735443797613796935614150441294486142120489812665007287111248458561806103438128330050850159661181702753221351370453989494059417033393756595998409895685105222202855992911332862864119319405367154480094183287171190768306913877718926564321823420686199312406566762205945112223236624134195007101405908355252401236153856953824546173631023464715891560454573383522019825751287094103380140162406563311058704960810085455811055887423537853662879476395155491376307901177565060074141704182986822110177422218635711447567098535195321248473554340414323504666303919671086397405794266325147944835780316501856640990646691348191972453557149273674081183388037029750438162832079741424891820254924092446404268239819999472167068232571706557677544013772980146063352479858427616933360535058153848766225335966971941090220624085621353816893994487647954997935868253395007034187977370835478493819174586288143727528076637699584231374099146714766388212536734415243989468397765053147513410680857640687177398348522759816251494106203504500610926050547612884737204445064015960925805119224952770800086256977780078963924157240863102210127836118685439675994850467770298710944062650406397583915625278743586334065564390521752697694753996964289350541161141307774032284815453461912600492262172861889561170080624361909951093546019770215581512853768821875169458083839291561112755656411120651503983196367497149036790886263041698729913828894568516053120621361702256525811509971396538449997831855513545157808087858725977961523487811543258145368841176566511266940349053424966318065838553013036955685752655331890995940833253573167985601242263906045195735564994383094935193014853847675053904856753072491482210311904134979844399630778472850551221661987596413900020560520396916232481872334949546570704510945427301730214555023434079141896593104037277488697238152900733406895528232561809876333160626018632382480306565326752666357376721561791818858208536257410511732774477911406892872588274989719090395192591219319662853086548493463033798835692513063639130605207202414414481115877611090450591261201555863333688324726659213529828630957457212160246961725632353104677285964161901522815149024372482814067588392973172388783622901119321951655066785127692009953884464699888407569830757854827770791777685509191050623743788230409784874335875310247546432631814006300890473491610418756266368402238805502501225363221954238186563486917376130554895473521622783918099709195637048823705335076703088273115839137192190061328809738774417950576230802980260788798666072822692669770309423964791008687244184120711700178066489679241384888777867347275232024519712119305076958292269980444705329223542502394191378812798704405166104877913351178200395527436487911902592358199842074657471992501276875715691217747540799155838571065195643127044539976052299502421095517397301821800603123361494695551234012317501400528433863941542736877438182307647427235049226786889182167312466707903019666392836538836237986315878569143072477166834819488833582837179843560457760236268912590581340242762962817162865758220611480965583361554094406943593116717534377959355879855519978792530779127517700058011106437377680324802188918791126359111644818795906463110747072795765838798794298595667596183960433051282655618234322346761360122683484690225436967613745820569669710764332150600206096584386126921967008954859618773680074678553182259030433769477747470955308783092484305739656254743627378435811690034777065422699564772643326050866057758737489692541613680213759588777848743555807268477354061485207589042979242399300099980197098053948075091792471793077746522958480848264301475399077419410596231790119487235621210055447414695724357970722846319325918543655645242360600426371916386091482195303975639403147301238453727206718108692518469126961965215240172862113830360313465044651014682504517115647979772714072836768142448403378933829134626424804094893038970643160618207723613688252474963689247068230654295393603032916442537018539598795615227999778763987344675499555819649023869547347400697305152735865036560390668349842897136199343689334309599856519651549661310665142166024498455305056578302737739334841246939870882025089539779449470885156211804342876182781119837074870275882921508527069081247247303277069819802020839278809271618698998228827936117475711973762344759364259692262614364295569562005354636262563959674689270460275226745244426750645640189805496670145429836046662270791527559523415940408743757233886717010353329571370224144221012793811398344837716796572358065854653397308865194084400061266007077621658562207892288050782868387013880896431842174744458062345199857298018428125556197646899015078734192708144397025068666702482696281311271999250472901342009813471802332930092299247126913371561927501835311308213965988002133110718736436503564949644484609386685544642023824998680857425023794948434980822833815461036422655576560677651595972577934275722462568123268216227120762571028339617238283565936997064714333107545052528671696988840142537968160933118451695241133215959251074819634365022747658715437219973558593049859548048301767213245282736408368732432177081389252728881973923888026935158220543001006657790826835402830853298532742929259249213431634261674444784064625546768974121072179243811235529593705189222459839577400213403698809890413766608723666567223947644433568631858991710364169468870891117356051221882022601501147742097217976041332117023579813665763174944302088629880464035158062247902843057778102607017259822898673914027119292917713067939604339197958370895825057587263031194746137727047022284010094091887039440362901879098673959909402560151128594623883826476040708607164055354487159662815146124791319158824502599324357632973690014874052294347014038831428937697612285292227755529611644480840768969602776769274184530412947244611030473220557541905052011120538717371510654386068422684265737993819579586518504707921152890056174786808548468292456418079161136988903462002929527056827846985019596450999951721225945707204855351102903327272451211151368611837973990826779907541364864550435020999260794214042205513913147955178725377754949746819871229178564430071872432295856117104381156434280495451358079440788357813246657521726185777252064720246701404866267777262960696823073886186339721561171867347159415078526526259375959443879843894091174147497573223350987349290508773974927703625397709817941793675817081934677963810590558636605361034067695762027909785338931189218967960613641212079507462429198004587167798583144770241828398350644182770241530650002664988796316026843794012292736634814285878537827713941168749757939708926662191118492227142833537617760157731163935315798687209639437536529433958321065993096017024102366807125610316879827104178874297091698209819761084603648722358461804438838015248274089596924592407665017752598144639367785025057168437705746833135484401223893943374509848891206606246307756993213292614001136080098538231782492850025498620212512963770933809117167098184767234597381773031382762820932129619356826277125244209391731259266768214621091221198514530054722611829331188409438318302491354463865363798837844059654739056549889160103387415103229622611041773769405991337262821554471931282762699288030247665610946633653547688089846461061037720721959574381321437708751940032105005948984018946755707069135357073523794268602538036088178007729490532653297886981050656627385239925006464461459712963383143342305951623049813851654108816676174810431473476938218031817256474859626036402292417531833153944076579548538826424013696702877018460290083473410655602168679972903526130562467070916107712856292531343967620624775883503739562833519231273873835435995889368269363233969854859618198547869219270434499309190213349362541102160662514990099361219779140586692423001684028587985363244958772577363350231255445990860859520441620137447518872288549806046763102118254036654329556611103740787294480990615579298668092735464743460571994748798813325627934287204117450569581011928010133634835954765163366221876331607379050628291550009213339437159042117137668293290732151839179170352900288725132281203045476062630678063067438734172124990111352668483593227473229670811631103348988553001044294962957898851636227960695840344913450228805017209583209326571420228639283348609266529038254853808503575229255089953606460023305558638841450142143173657657900708305701769133788096715052451668386591730764136591570290322768769718846422607158897202100408495170349586836086606374795799998565113414623338870591181365819030333227552676440034879125320204712783208876111267982037074141122381701582705331423167390219571850074455093833889062963040437208573713567951926715764209744035167432168422380526967518281443511299581574561407685421510585649214421457034731455222995564989656275556915680450953701334640482860893952838630759574632752384584268824233870396589818767079125765682142698414469098727926928748136829031400312762452386688840108915161344631510377641972666574784064921168489222611007892035809834866589992123708796957031918375103730278436719470500724241806660746648712334895628588300353385144283721027768160718363084877016796484222196324246859126947044105346001124080790074612527205001492914379481057858200283766953177677963732394508057135500022685089133850693565515479984970952985084123815461767107241244887328230131367812672308608014761134658366196340778546288302160671853551092486000297393866784006228563786235831581103073794110823613387261297252080609940753357363762724738218931480491324249595310404869544679984636258832497867823945602164383044860497120856780829527363403610598740524064402653215389528936811276157705131457157957028349023962660305980052549374240368860663806874283629470955340498254960194320686522713981595876684326781364348282632177884415507209265622936077947557357716462730805534060336469688630851913554887203497201443526785202437332858371635107772851001723986607224211047618260919784024098818627059403645045029312708303029838968800807633304402715653332448926804562398618085423705358008036226053837644746874719360690072443085189750820768507330396153342960970174096149739293242914291866265657916634598627393118000273178255763446663838120008450822778196429060320761937879494629564718962256497270833477883513192623559854259979729988530001798059311258164428192027701312644444434146420377688797084486818371519574767491090337552823343141066460828978661178719598160519187096957530086346861703601022341190484686520116805096873826002415151986978078545469015101589346855724836085232300150275629723229070188773247494101997130612394699218041419569710054104596654717417915321887193094968605228010400078850969312767578835112700861662315964164569916306184987760615166455437234459821926877714007696683179812440151305113495367561135765999131189414006163104986427709552785296251563606601418344664969844286851085611997826526740116600203426723455040026091365105038380522006680106050894182746913351707883240426666835778023683153827177808658268605285140794792313617135810480410006191126702465093857006471282674110549730543395560105459073303781851870691720710780490094122132737953018427476860872290135291512674905119484748056963799805382709202013152160518592295149369932779364536088517439858452702838905189936775003838136510243761900677515130685900309319608513262353295985251390919986626823177982446640390178377228106259722926946397891295971977992433211960082099787735778190053982624771360168907952417537954628175354909702111714870172022551832066264285035774001418719727871293064187313092385916551641084863909065078069577854062281906423890308618070203901945376619133946782607930462800401259591749061097830902548699444376951416599862400043544640951099720562828039080513012600920285204516043742343276197089248954720727629023731731016903281081857818632405085892581689362392230118936537219167415442236432699601500071441811417293369019058120561202784495529968426010653284079492440621708174636604553404083237774012013395547599416881071309476309785859574966928066929283198954288631252421024131930909485908683833811012104000596209133392628130774381487792720259296714347834948472984721165406730976825092069284590666607850627031204473981759595300874472250322720061599225456536584808888597485567909626821711850169328988752951453648574118309260704437200373430047299114230728372389651989223590480151907081282588310010811817271394572924768256934277483377864215814821304261326913016691110274658648297600699543276830746822663245049933133702802157656377116451867110798332382529046431502984317711272511401772099330168143406146818376482099840221284162209904953833223273272857985602316959442353336108616827807098944418955516147560217926815224194623753502728903212113682224540654650712507438256247752411079339548129077428502354682165531450154374300195286563737301865725112067016967442635215103971410162662068468155653959462498806546239426289902699993038957344179394337595125683784910296598118620070358783381639097659275873635704726442835533278714575437796326220009626610635727267520988318333939632950280522102018643612284838627002491290448577917730580732904672911911871422415265457977544977631061669269952640769215726912277510880073972115996435555933976127808509520576827997741643694727264539401752983707542884984817855915355250963037924500574230649044090632363562171300249250559411083291048965592237740941995964828924209669693764461756147302968023829985266569356430678340536820574848579543086623174863210787168801035281068804847693966260761946858144062164165228624556170593468490152783479133840186355513409092901836046269379709502549147737442169661216666234751418422746254975642210012641343365970153167213583715333174535329599580218623609179990792798735863582993635355862144174603394895626357039802479399531318596374239211935206619559122658805356588146971073162366021911974562114739767969503085001989165366760037231466416449731194756628786015513948410255740547288015862932106235136373831439915969278917093885422042076252336155409475882199461380765024652989998707268042198778732438392436223789601329659771101522637350407820118055040165054878857768118591189916222572235594973436594205235996696412368405778736305262258024494737272675925437879063645428936404357672047955647275501220816809272059564073020861731142553679852706024719471768211925602467061952828734177768136263301559847616938313565843585942704362208405313471193763176022633706105479447939284685055269198731454835956595325227307386109448563700203841411524429344546593974955931155469162809626229420816621149766562754998349684301753279345323393244267788241715423060584547088920922288794936704841520671309570275969281957775260670476788275645808631420055149294123709382723464369726471244137687255360846423168558990053996608576933843921010771598086276741515624370049718755881502752729359096073283572424468217649194920641280606834120023644707439588034653191625682102116410177316998857142479938400973610321508905502109349113295800158236410631534043454694088303636885923672504842491087059986480185362782369874296355767061823948566491806905915824567789311900717969218244140714311182481452525056453691974458011979591844625330607371024380044987574845181433587369886768758949043109489271170137763341015125418637270270001266506736460575941962220241245117674793991856277264811372258563286481065591534013410796612360291026171708794097876319909312550309823215511131093928117464445713785499360501955794512020452279130395215512456723111672256311633868956435503073360561353980659403320947890320852630443709002170180328531201984810479097091585528646671669082421832864497562762073852661065418504376317323270777692604999305120374851606988895978880533056865057687153378072617119741421832742927686156448065417764308270208341602547510121854193553342713713672001497560283057316468468723622626680050447680218713642036685312437894217677440648568942181604289381593217879918959901798757986159813617176733606393464426531517257248902338648416906648188854456783556914830055780580898121837180149548620804503867834299410835574172625486168487566273221300100261890430342208614120370887120557393129193521519450320897955459458688061885464699872831609192069384105853196469688538138644958139844501589866197091473308113965732506361911937168008436702213725132343876620313543759211793351479877063471843493199456033469571478152947063339908994058372431939483434275442190021122717606557737794752115690584946761012350067233119816634961033477783016507129980268657431365664961481497189356210151313013057756237522897029431180906058028004132157761710660269481212914458874368998600854370632186101688176757824628390416530816431058303556299038515674104543424170990655225387535268677988249675127283777898656082369468882432249827004285278586059768166057557969008267891458529492355712078017339846120400841773672747383286386834238835026812781336065798606802950035184303026899794883680435747906133202133423680131602110669017283648711665537960298180788338461769333306486530210522978910596298123532345656835513351472856848577411266881097132938703338029666707012089985223715234979024741086486517343262088695124081368476843184015888327011930813406253345221359311378307007010891557347038977935958531821882113113928560048912195570698469541415920023625078314775177724546093827258061300407574300642948724036299851252161460767731092120358650832081305929947639367470389323277237917537285798361483124109194043392665557431901823554250629224779582475690952422297749494072369625252429779660845201474721953333224458839729601341624281666893492820769154742648628725822814248269467415332477774697415517801681974370095298329678819765369522589024100795697861220760929610397352174592033487767229563847434396848037158454631231417664457907600986369874402384387558794925359628126791853562880919440581785787869018944843492111444557131467312517602432489394546671725388063585180150194307342317850174306657591117520970029566639438512119713401428662855007219538212876139616363104963462522208615539841221973398887923282210355439619370687178949081997778431733198786773358996542165913166364847017301006543909556808011714931941962442587132882912165671667799127393133950652091281430609505841312106479132319855884648938399339215412872642472870122341388902633142757792996426969443543103059234701096633419225953845783989744648342713928054917329378144949235450984156952442806450228181018586444320079048968012256690200518761993579945863230404496299029179085513483575422373539911949270056596880074003689175912030798183565421359015664918982061369617214953702447849920151061554815592226995849486575205260963986236199434088157602857923246105509666137736175521472880208504783380865557299778817695334527883501483532708041237634878614500056539910060321762018336823649897008103438808852300629343983844039151058341319793803063452066806760549157386552088331492225437769515992502536396731148086657612050101673257361724204036352756021526350891880360384159121720943839059385323797308595619251613240177272301826130405751125229343445795205952971475764325158408713545324541693533914726704247838735552781079383017728475336875861633646901368047756507672493721388193509358709332882742970650880418233455503471885299812800084298970461415748708803937768402835429731985847906837256959491436353920099621162694039743981166848089050567466988548872343317702190939874845036583616603393331021159117332181043989959319711092764095336347374648757824691712437957889153490812459241967487567752984573609537939683313797070554864811312644764002438827603045506112776163287271916440127836915288124557505750548789874662755104653673024235930284545520130771148550875958766616194192041412451365695591910742020099898890533011543190890412988389963330915086632253812240328536767712367765093004580827360781338437994469842085780873616234652253268129178799367063254666764014314009233449385496692694041872026503097538412759764252321692795234403451287475446346758942185480190426078906691645569126707742502628750109016116793922957390794954846242267741437084335139817852367318306328875852229788925728883439313793257077005876160096368450388296851989053742597318665682578681847595722717893887529419281141049681752906896590207624186057088776189544701294372039644782024369438422594194162648563597195308314962433529030317624954362278223168962974281842572291225197692898532938290538287191053327277457252407423574638100678326504980689495763901318882579252833517516926929375832774936244993414813704351419738475217921759940019904917744948285587337568509162172316690018039339964687646949356216872824769752909772444576804955004652307417914980933123416401402264576726711880474322813220630670980610803088844096812843054437853731542765679850742320022110877425815621426911334392306119691477295467878896579605149393158787809982604006659775887292032300183677055775846315025150860171042292576847020837247464776012111948730678800642268144579346823157925112708082653881801237509729221776931634703313640761583051684608736806128970122450766334118995137404402873711619013541950033095897168577817371890572684324119384192984614122153870080407601418333027955907083472896258424929834909214090974008770051347593832506770677295275151357037297373120751204049543613348306372836483268287593755344581845927135110925174682576345806068963876313275442473055259045992636410657436032188338093822549967761150323886848216354439036630506456983643122661659804471228025698537695842110200448523826327760957394484075102990544954710358591973468411069398182559235802763116045060426538033833122437464257298026849882516697675233731796649078888866490252811633954751872275616433666908449649394449555380794918959566005959181160304873095304511054314599672442471764051524935001973592690632730022514909715152216538657795928742950702941047674291187747419530542598048125073332286733786455708436298438337507737679798661110647522408251282349269313835112084097922501465316719875087688346333291697828549980208446706101248455177247136691444736779641516512589992283257899555943486326714496377773803509742592353026406708804930258528077013380236051121842748882219647369705071525713131755994614676421559546404304241600797563981365941340272385128091608423513272411916535822882358692772405863095347742793098493847293104630349716036988713565002915530617173323778613929352866053623158792331378959650102452490742677596324508190470522266753079765655244551825320716002436158257756884959067475967420581316883525378245353902143934416050037146023334262955547690197817058301265861152821303627594908595416948735522477702583423405564829302444459305948433907474118664904152242053677128449333937929254517671434844754361229198791568152027169148851475566294812958406807481976274610601209829164848402934988131172440038338138572113989136299579903826788992086774347267927930750883747463613586282171093546217603535905366503172278421961177656982839455725271727435027378965243749049749749654896281528860549392148721361209975923614862859077754444629990157027955669188884066100288553239713893824929400784243032130505332028524381544994804032114329928985803175745001225781922434891111263469897905436970927632560746048662848594252605633650955486546651678306554621397320881353121159723625151458637106619137001784874043804709332094008060444860216576646687616890230061458531902295113591306172053261229880939642039847326253964233682144279962392259832739039863862306532559893971034257675327121142765869442380349854358104322785856646488355860811408979292112992319988094972799813938583358185005493783432570973341801314764577422975202743747473669704080539665832692626100761061498453386507248397383000544068232302090606320491044191703685459256121889390284926153400104746214071601097456721781496578903135736051133765618941030936659163134007194369197220082656183315258598689526254221894064970264266522348125555309415828155077524483240908348135718927361799779012014373205858942732544024978954773194289281327511409694457598367233148699467362564315213768283596375818568842290124859724004211637997589941844730653876470963529261571263555287741120968159035007410971412014392265904562179615169640417435904134957278182556608057761918196424467427437272441510913863811502972121942741319609065387998941663731488989740161372684667838771335886524822867004650882209169463559054152526277156759781302494221229398825955618399219114757510715890299843130323830743895080040656419206327867019778746371839315364705551128200535511819786232424640582883951598981376410070936325883798984718665139097497368816386338732371897977017679044497377454402124169794138716782912727415553577024689225452031152471612895126361704759211202549070752868103971675577873932951354695394082430489153736157589104582653530867774683792720159003204983698716847877879659431730933065675607815158329645138119201585019131421074121678331763968799427384311884596650132320487459945591146997436802035322985648218386596695375690944363632577918241966425581046860010899090746003156886654675526669752545538413306871078147776084634679394638587708002191631252695006947388976186228562794536517118293202773831047390110923221390291753070026397539852841145806619872636899478239068063898472780377308660078602006631858496509607774776543830578624452652067882667283345026643182884823269913735608608136489776230298799888594429354529547241236511681770536992354422151496033634312543090586744266509968960218315962301364363879727216979239530309318425865435228549434612379148742663388728102786124748844553133031217321910416704529978196726414000639313500398712240196942469141500870183998002896273358263644017494105716574780935065028284975363807094362334224489174125132808864885549287107368371329169485900105937899251406646297396517832344241346347910696378198022041241035728691836142466358857766341017803435198638129412504250967493747216697995532759236604563764827784872041873860026563923755303635704824217043726442248511747407057863926426952372127963462492367042030393427998641970062345340332770475966698676300563135381434663898845563995092086075666435660312152549690708461039987711437279240365394309012908638760440496683052140939697100075362832491789863834289336788072572596263779417685275200848873410048252717530845339976999036330165881031455478736903733972974599303497030488234004128013611445901946792769889127751950934631186530392788400107785459459225135393698885705811436015937468564597924275886250351080278313351256640017747676339904175395036645544338870820389152494227565990889738235199042984529286064787983373949829101542198812022146012045703017369728476600978874440974884445334241529543853024765936080285878261433571498466213514002959881392804585601441369561394205328294168800948170430460536556306862129552558483619080468793004340784722998728331570751116243638718751307154955601142574245104678235821217476400038101436250511330908218757853200958034615266267798721326887808619418196131785103703093595393958756500235911759272375521358239505194575337730145025187252602613353607232291426959407616270513344479828889373953318551354754911691441078053510429401606286722225727243141394254481005619732464952041286058680544324359212391715174593222175722055129798602469885924648455716369999642763800180239539497332092980196939875041534485341884878724499981739413760375487340241447868792830583327959701497783414495234309997195915746982370821408730378837471714804781310778831910767950149695351205844905805227369853782322800769690034352147938323587200961232246815848572938542929180890413748960777133257511697084135513383941699720926204519725315206385458977270641540840918409985360915358816540259971228029473689750687462179594959201905806558274282787662436114871274613804377478289438528727538746876775273324178958026120453069042898578981354739962617167682030457893007501299660281556987800905329401983464017870803291211601300267709238617185027551157051054963661333818804814739237040590365110798598080321316398758676239667591012290100821499115462558870414905483216677386115733060196531696490070233447160507640904467940221281281685123101345265497815547338701727308754852493443046800066859037062285805086868355501200170127844158059339894653125400287065155044750661069552383332914869897493093359050756700439908880350599600317673060665420164934496725311330130668120905507955421700165395528698848158963281641222552915194476959403989228844106751347419430935791570853399296477332777184911161644743312085284119031310768280307922887398714439090073842598935823753630392247753635862807284120438281823699392051683306605562145807161283739556394789199794780067444299232719436803196949311733451201562046596649578414130064469393594469173426400621460693107792959976154043372207537751133066490055872874418817558169242555531803195278435963818776617781014985279585289128213514169358066038664472890928303239433298146079970243575487963763909562249616806491694676954174198570511244468308912451047725273492148707808684913449914047130375637322272589315823785368612751159865906077319825507481095930310651589425877743667990181011096406073034939314531245126615157272254319868118492774417132291715757726287338833791656704083311012497724026176578591578991204965281439726435623678197613049728396982931848182236576079567382525878593628940421424928787213768996491277166967559861010758024729106061496730021913496953720261927305203876291915838757608616815570686808582564759515801550728160207614371019259286523377482508193867836892068673743766331942797976529121186185534065199430974515412874504518563360348497371664213774045462401615476799009411007106874443961208668926073653806776195471338438097897278516706293649301049837228456834611321096472280366686291250066045480817902179983592303839528434540323230715263055146805983996779327433663287101025438424612308580933512857613131624503834010593539136729431710179311760523665304799464462102806565899732250725616355568797259459981293503055290787236728102583058182530260937726896328176216122331039875752173780254339690856813636211767393205202475006392416965335345589519754862615771467968457757228196385582241752764357382204086419284295855682374946455668054903038347104625777954897751778368464580720532677306280808069916042362301134491747434910105927183243186106332673952585186878082078354893555427617458616793870415466141776733916454010419138796412937903265865529605881413798195971425531294620128314385831728727701666430806186881225964430975139482300398844159705078180567674623587462516515197495157627709796788546027869659021802105606954224487644014657494819702486056740938421334044579044655888311918425868878468457987443442882421412828013853872758236837372808995142010917296652523189027433513054434625641181745345843916984477440088090904163122276033834385699286858701763309884371326428473402271524243748378888107777505090827293828395365936469833104904521696201251667765643144601374341372275269885631363979062377899836968767163502910494388572687404237390535097698808195430930430955766704443964577956237355007077142528409731377676746773248038041322603396129750716424164303539398010662259874802135586739163084402245010809186234165447981812878213435649134495985400947581930981541465219170073273198773969571483213389979867752239272122024462996785636353677783479608589797668688231320068028923577507393583882340846981544900904726342468481721836509632543144578451676012250642905912570408567389357515721459855269142095604382898409681242102986566223143409663978896884828286625271946424125007165102528378796194389661358282957985203700791575617999625437450195711920113877701381314421477682294081499209247759830821160501302362084176479357972884392725241487158664816860517123063978446841877808215876627729624439435584630006016802754044159155431848770808149213064068791022398967067120090710751768346234738577600505743738293236000774005160683112127957124028162424092947814397223259714684347275405083596943238480424799231229088815372837839274212029601792027507403350170051504492645518357846047329815129859108041773303384633470377711530697254873998217696342411149925882895822002869182043729340129795308586474542937733852699127340842056584492205397191120765785585080109036670504351967887183765101564847175050509593368947820024542569052179234801255400668188267157540527593463862842911127528281092728000182429473971284135514279143211664734841247939421788586380349153528026791166032645941264166307768770122735824769711987452574631330970067621314660125258102722879924205478782538194206755829453849711825794462311302521954424355037119948515422861641080562106721624543581874291691385753091314918189467416442053335153176872967653131916633085075111995520784822869951911058374504651124954864957513191918210130210662362566999165985096239759441377180604201532975434055209954877106909993825209461260792490719328440516398218049422812084139614453397072171936934687941283860543901897125321967905714315876686398224143972845087782255435257947872049224748357873306494136274455936339042862865510631955874169599202775240331230422868711045913337723888338923507004213216281088819994518866721594015005059826369596679771107481904759279154106997240647450086296501019190879947479511148511454569100346277745643733269721300912927221960301889622793156638996129522245452748080586138748082142242105033587193063108889128096829586248668114541395530523337862450153497413859620317091377826100237647536177239939542473265709238429160221457222328843091317831473996899390718707065173934382427396742522286452071534545225873667668889367129275502811457882277206924074001892143818111071413645872613996435181634872808198823987015651169387087096913808107650438023445127658493871510092704499647720424210925225511073973239569284369702405123391258169758881452848877462815567210280523155671216664765577284544496860061541957747905027782243513345457642383897956067938063774225332874376221773521274108464429484009060357680140079251791012680249723263222574320439488189725523410611771670638563763297358633085183074796268745747750178877820543972765054783732713498642318229305293233965572011853487423997599627583828679577160116475153043700673330587592816115217153448825888458851354907161983837054784144018228526565091399196638785914642578210232258354430225629124754478216934857351093795808275815576867196783067204365718004671980329963153003511976963375836043768093813619374607721588466698424125738630864950772747175012478587041473697198452167435338925132733373840324390890675028319624902204258893242596902931596734259042245972301744336473234819487760552667142377052535613167035467629334656180893255338203559363462436706822535366453175912486961072788099076313216399768856331800931044613880525865941747022791081978196385440104254586077533525123088867509883795899140856396997476401126524687942118080485112002012176114771708001856350585719462963814759793956215380574483048364528621193001280144340124136810090448477153215199342973692236840942277111706541625516393585743667355243177283513034639982925703679178826328603078829140802427191395615130521585498226830976914695354650203795635071039676946768886582501078439766300147118736721364622592714217134586524942903982751520414199073382147153141835073373756015708260832871291867853504077504711588920520377823344550202859189167538183313498787841975617889325384669390868377576308911979677376230113224024710812108629852289882762932967708817474855342407132725426209533217141767589715486928881745845430672307675352832381207627877392304705113657663619062928097243841960613296180462201026990549947855534743088543296045794173722050156688996740564521078518863325070747791830299709319749604271336341468167645489045077218271023640397067049463356996464541744762696383146429862354366062321941780969009690670260819562224392836896791345911093117631412193582654501559189874743406958465849842366675715963038084843068936067779722169395332316527712140762521347844218543947689844414834193692782866305543802006659000908580715621653528712290875552957420560352246576370069400404632350803791834027966507595496043024147381298248757549219116831669051861819906181613815381656293883930330269745467670978717640790826735647010678121862140499113837035369301549949735152606525696620043462606981086194461201743948416265140020670754812925182915562102074926864226263757268263520182411947455146476917810203658938920607426849120742174213642604811477321719960552956284379462638608485295109638078453398086633831297435125893634162351157508922595829464123106328614715803137099419563041325803527449948459794826845697347790617878879333734952515412095340571650157118289879165609157237078855416476448542413960228469350079540950691179547895106673921683373810218849324094184529704444311951469419343889015075371441011380000043715824939015113362254020243705167339006791558978750422319746080827418854188237403231087709304576858871354484589327195015716443073901070818983595969458528544890284770490382323399941378454444268340186615557467484289273374055150895964016882821755536651296367004697942899870093734524906121278040627558587442162494241858346422441131175269151705125453259384818136029906159748379383727640972254747585795163918717452926386372721807216609631518634202481414039145307778823756485138874109332341312416026377820005165637740636786334535419364080407986889928732748576780432531185690381416419911675992498321873426761658904822630765401056933960167693095613097901675197111346761639389555356904541222187537698566774654490913009958329931272469611492346938889774432720321555199078261418804666753271335378923750378037955913780433718584735143018633147438595866005613630174719251942103395981359040175436808877008127637988639292602421039147828400036828697332017344616686314616503935256042827549070632124299202297715529263406729703749782798203521373597274873347281342870338841730365208392434919793169484627605541142894543709284601031462437732736054654505768608162487550040034848189359252944544160162836128101074353565133815768651551366350116515610844718500867439016534450311135926412490097487516925491373361367183659668386031922482317354205333442129738415714866391632707393740993227236824308646039753169251957931748273209901279329607325561895907892819065384361307853200395027693708333504430620267163272358312834349825690892993151629415551563932724145309072395424203956510042076302187175289755412150418719290082346624608420275848259330744548134839321398998685871416732490879253649732189730039316822839890194128057264267753007563332662581513781293983029778743505330404911624573195042907742179029714244488382519704623079735769352560879690142221364427573747316752765410286211047961721605209156161062520577215593508102966470462203609344326915502344356038429314810850386442785628488637261241880801727520279149491002237407270826398217883029206269965300955252542453545146092550901182029198803962394577910475051028203926254253027392983086481218376286016224381175526021601488832269977021094833818487704991382915908489994731503666463035257731092376344754632992662147411360435990603812820539315713885689894615983503542193999909422849478768605689582122096434171020559122357254474065893149984964975891207522481488225095387561329838315803428674018286636600501724054376477326937628086712063848042587321775884229723209161334761240182064025445790018532495762181264647683767220161764627659643854919146685371020476794591162654088009490772105563868991252072397565906146981326952766006477906901035565864750114923210033014014247204690348883043697998027974615041825559043658642114071453361957264154786686290498685946121377534897134092864572022007990795686834400776717140992369745490666333476637362927484413124955837254640731981595516257201968073119189529826296057001534956983408357727272396771446269404302775756918397110531787340451460370698744712782449171672913455238556749636816716541402500679723160086699603404755774737410989296923369362221518811607029741969651425859255746071084621564341638067684410696451806647550269303464773194812488899350889286258213742300242838638751047495730677813779098028295396398753724296254124262542623638504019283452959969427504572275207562407866022514596912918796306561175218906324570092066752796761173125971179675579983253272734369644773060653626787639122429865307179556497931298114883080055940837262079005694414347335278285683706695783854375217876598768543643899883851984030454071301202417812466313454265993628452626746456691697047088039780075306721720424608373763776117195064265081580512744216991986847632422729181880005238415076424540006827500535445468307907753249180698183131675369675183720548306671179327897071274453187940291340201169739098430022566787294799839910974753722569942573157906386847399011434089004945340966676628241689509376052563026514458149654494804418398498249399992641721863142280860592629601306212630792541882638700887235017592248145782027310434938512800411869652641643000023139229753656302393567249892615031985908789022927185448982993017854959335630754168163155775993765182336848176007574981448372641380649177430915032322389051840243144444563094827434204610238186142123803786708336409007923783090564385732497552876487996296033504109445020659392141716767702531019837928604427282298234585000883011584312480615039802636784028457252723527256774886574172941546546309986707172990944157399084332241159450090285736269635886142295359369709468871937504044004234182162134583279524450231695829758780225596552801783089120586832456907204300772581210696974523693026092895087078148014647961409384927589760211008517225686097432301878834054569100953555536142124359956744071223229851957561039735338718366513925045348000287299588506097313587844950576144538634624455708042399012612333269603506637259407065036153195027599034094264931535144231495656627209896028998670014350950413744016552753265043464474287655726971028312035864595339172576825660786317638622162245903752323358906898189328084415216436681894471296738962223687098328215408703436019394600342720382341111657491927984182843640097143019847512057199930351388162850224413092750693607165477900903115775559459460969878792186007990461348477712440148987296704203387862394512567754124480843023733722739419391789170043877849734237568178831588461686187010525814409819024341581901698687907997025037062322872059783091036082621239336366453016822531434273017022573409116252923667144962932943019140644520834077700264333398045386844919790899085321631186016648526192080918324799167257487362546407038652800345139354933456224268446663466432728769469802005256264825244565129086928578135256649189911494787540072656352474334089830051271715609735981787586062117583977850073685820918185962232352737662176618268701285166972172566787665466778485979311009983232467333295291383321095744668754223363760156833222217959418291345902902340916130439152397199676750519495076819743627792791254136735255016366479834072266386304061878433830590509276730760610519572918928610578596479459991654780530091436036985816889412841874042582042372421483766653013461657456725533871602621191098631098478310315739569994150464158320130315263977548674511979408872943342812988258312527287099532725038541187440407539961174820320475931548168637926449832080472593540943178945434643793519957475029825343671496759262955974569702607142500972334437223330957318458866394932831606334922920970001817496077191792681514421737869752073530544593997860485739656489340436208997860722534141060292573070707825164446897639545006176882633810216737733586853848638795380320119365320072467620499465915901853136555037136497972879113238373310914925683389594255734829760933523849418066315427690620136311902757425327730157428614670875914469900894211956368526144902989705237552082648925210006728207848382909216394345999053113038942366979313963812451458106434365992623269694949904299503376987154637986123125197185022093093832442633970065817318350548766460955946287690660950501303606129089786404993210399002886617524506730699309721974964286133376008858691691556471020202860437861433897490746168286369825634108188259415887053945030310576612537562574822424307360611678298812025878801061234525500372923804316738311632985446005386233622145918823848003217439547157854444038553061785724384746375665342446344211897422766318730419866138232421431990846270659224300220537208972174587515320889815511369338232101039318837828873677570230610059691449894154331230956315738083371185442460603431161797563741775391505383038810123367032986098424001409226937851512072998497446706979319287475739602492964936454780906953999641086565324412305948383851802642040599896719218905367903837070711484409645356482113148415877132947683716682589902448255891355294541136424318344607577920320535411488569879756161405758748583411712698199625402742716153808644774167393206981194921349883885876260596210909038593404296351977144191944040403746544947746812490979391350168269799500226423234226965825467946077821550634418768856412448969398511192305431070130181986855529450693774727913578744922340812903580092725952669099687335849079597765465776523010747085654146162618284183250922667256002095329878507866784070960701866253560885283821890202916378382344250328564660669478240747887587975573435904454539436599581987730422671934740118054624177742599700228372722110659656006405603851026930599444137616452640607693593845771400619815984609525178729399416190394039342052795965026429724442314470239134857670309250338897782415390878561436873910022998775766843020185952445965703178053745576701826199779165287698183748225771641901385671271401225310985752844224993935175292376794684951451941485818016742230243164666521980697620960770239331278243464995393334837949434517816433429558089125104061722293078902974645764596448734910963193750712406668390498556518401892587256605272137712652277397651995408569448956718644539084888987653279374829631716571620549278639799844476933460652447283869411710966255959359835200416750363941801376768847066267252370772107388508557559640033924766252955548979398610091388142574407674471565912879997533375133802551325689125392110223520443561795683891855736655860776524371223567814070292576161812066174659943572872929523770050493975434522719151981070661029666086131890621036471117873220367857032436350824494917474162315292951897142537340367262366578451410646213074912215268149207781983653632846595456439089124710523342242865529763281837049285992217180963277726639835509822556225181490578636668208165069608522130194401841270425864019608503343930300634752835490635101211463983415081515755699161044960206686907517633105422505410000213501365896613839946819689759453318704554828350401469568206210321798354384214082459870515873101290677709698916584828313278494424254101679548994238397073218024402287886015824613781931337243480867107208028455454138449729345943205740836220581465717951348010988689051521068222852442627314678868233015009210633791457419502889997669266097743969152274956088647703618374942555563946927801728215075892494774851104669768943003626009512364340557483450995699152898851841868829669432461003136689065348906562375395427804225245650035201607662061601016390408429204239442620896021891070884519325968325286047466281339884767791652479274885068346563499569268919401997085794481489887123305597914138658629791334225545938543360881010143893326086676901241558128486579804682200876482894493751347241973471657459781716728071106546733552274651771020948596654277540385519288012962022484416236697739320705957025161823879308841443959166891354022282820045889667999276264310084029726905367666574132548404564808375035524837938252031679290683893417382340031360656095693923604037380765145745566802205404075051215023960910009868964306752496687002943964034345845348127550491363259555243143654061951989395929930459151044058177584462546632897041625607374620504786743766006664590174701442157512606285390852253481049963891570728674482316999960738307039353131969923896423775106567922705377042966165008132106943970090165708488355664970244133654942112238496739423588540559014005438506203921672465628995254381092462329391007758420455079650299418997794776176627681245474570952151315318088391253668229641765978133324452018825806071898254152010700693443715957111915577466863079587088147084653410362865880160240530698308473626313413614006817401422784319223235169349167977241370113931230812374836798662590687066922570925490921186371447397178453617291472162725913722137586542559066953305088547285464519430781351397523953716039544307689768506518141216594346052134215625643844852785394567844811283384392427630655197733172482142736236262263325284337380004781666195650518798260824389359046244194532462115880324310298236845995817375477499166246777628237051004299780725090368387339599366303135410197102644298361338038683424067605213221383362938202300754540303298308799134560088095563339264973911884252205068266835690518988811936668765157071575801491838882244968394092291732590280185943459289243440442618511960242318514115051935906270010951187309018320676273651360456532020219288862828370098790880063849121808245048427838331164639721955262251720222183056786661093816469477616407684052644426469787708643056690674128874713864368255060723014086015057038401499096822435412275994869124878815430537360845518530129461064403314905045068794547803941756677551225053114969022660668128394747230008129429448205252336178046034016160546354637347142086931437409348865054024920656956703194342615260962756193656971899103445905733281122527398142307205100471528641423693687736171179072621961996033721550498621154727747132186006239317237414201653018339389798831044794743036974128855203086028337754145912883688160326572721646672570508045861752293061627916188321333310197830951228049878227667630179165961956554242982568485852914328044093159416638805686523748987415513295325804317019602438761313733674274376797353042478982127003048872486570356017614362510205427277086373376602180585054375620861138168062340717648433939205723775260006293316291266774257405936652272336843216106447262662619218231958452268623074245844622726497614486564936573024546314086397555731980084718900154670475478577959935311608166159785265617760817439162612073314838694858288270240457812066957333806939708580141759567783171136903072591935769564406331479415498536891328846503296774594769774536662928541369533887332637685242551419090277900005314620209902107476910750984355225665839640082459964482944533067044549261679484633702078882692124295828502631489306927820747797918266831153375268506349523454956888856467814458232206070565278825778144745348073427779282949875715062112711988304786087852973561453413880290665239678437950183794539995572013307026605127696078202051898824419364909078141446288053261653114984454488588912283717791423125379586739795847850307300532864593936337752788768384408707397099491360359071530031336199875231503901922204639611645660055834749818092889431629081508338789062186674915748189011321371125911641583704811340693356134378136948730187654267033145588662713436213837990213245647759721446962286302794930924298269584719653195505665091747495667242427718266802884533796232660274682759299847388331970483894414724255531484377366532591329938457273951987618952722252121320162410914951773833637760679622297456575227396456766837554994321567194279998320245554067697912482116212107739838983551444063266088408657011104119461971503947548300462158692476180375655823261469171605809026651796839748873061132189913247793044759684346740115216841715868997364405173005587521485447577293773103473247051015830550250007606951654880623266806476215315610455933877520180947165602822988042229224679997719212054547849546260843129624450549763951033194456797133670690392815388259151507367006920892657409389051181606189906159512361917119472303868182594877178484526986159823812071496107295363641985874020140752532728469347426931710536735089636148052091038378894124456258885268017060927741377869725461082311434725587572253766716669946734994725550950321247244943694981437369139518690244033971830535168861827506219722481149787572919200787368839841602442818808701152537469638475618416979626003213086821108680358540272567478067934807659301607106786769421454210346065010924981460966226103337653101896350069902392851893809680082511359815871443350101682666378029035879896826081864307776315543751491584078895906749545293091141134576350290281210031636660715439328483921134217348632740733669321993861730257764388970466684027162544629542320089514220897006644686831465727737106363669943644165457173741077543687330438719449988460565945978285512608807209591218875700156458419335869048217394568766737776924417681540400474195781083973648833630616952514098144381052218455727784649600706511323980450279913441061002466176453668072743044593871153295422800978574954109975033242478033263818695555913313453209866251276197876828174493363953784794274166748981981065782642226792105532862726063466355251156896722726169528789931650392071287839459178474773233088032816725485966855752585157431346950348688586076342620272141808537667704411655703225054662929359386006717464138169982775723618025438412652783777456269856964455049658476747782299586595622295298700752917939332403781578358826065601825686846942308679579446510709624656633000026733146110049174303098589282522804992029630778937482292396358732622744337890526490142476174971438876282219533556926826959013406086373772733780994655634341529905898937191572175516645492286796829445977711371615341298237002161452920269413212343530457657267780470645803458515272944465283454241916532854229238297931520401372027198329845184612071347145215863747707254530828613690575237052130096168710104335462896516937098868611717395533082422594758530954710526423545051139410857232282765792081357534721549435678643341403303701606964259107234693227255741890549024850698277227183307996274185998327130461938796932675582710771673688902982256808739690695923163366262854530818445329911598640042831931588825744330061228121714123962652659725750214214479853747194940331271468447794986186112298255066434248552376501784785859345175773815036611030043323850089186504017145293571033923040025385828385732956089453769136712521531852166225243772327607521033383238411503244963558773165597774284797333331877774242271831353573270709249883451280076226131987855363859238719359734876963619779784080291054108205549723995513946778116221883348628756050013847190382679529342427919851718868305990584701551242363791808225618890410471411219558043935149916752258605094800862344160214871414295138934658452024038763415691229399495761737038840248600572840769996171769721028932262174485460646768231192409786507427324455068154797218350830102729823062021585015819814107091294611837781291596787587422932081821092272813259235592749759598345679676206498870166485665376836210990205081876893953550274268800920497607694697085326211721653197321643164591577811629981593139207054553315904394413284398673873166184713266251438425592482517280539361440759353250330746513264218895210340304704856855632171500469473143267163140055334945749449387326156273267367522887646606089260078970841693164265812937285482272091022674726114242801036065425393145584230945372833708423882535401261609178537774127544487279482057181517278633063612239342183140853668565263272500675765551628551868398715411052238571882395133399788821220024288969908379528877600847986723168808564166257678756674437099296499832153020553476725556871505018698744657195565329651427257055511357692362044011900691221270032421150216459195822569996387105907819309471281909426001947899806534553281700516669258212128637517368824839244645506741778549001583827588042445696747283892492421579775865153516772564549036691795194142969221401727395042654768514110613795989539513265402153606968684952116016541235169603571239642052750973464533233550724412370364858992125196049545734652888018660992762625073689915590682932544937233035518522196660559832022458648994696222675011715001073443835058404896411741388190969530610934150308256742076338154134135814649026190191802479874868820364577219636963329593438121849055471882630706494529640908454759280180531856631250346813511298880691985889962137272503494110602830139053340012196090959333577565993808954121963237175278442440076470222869950483620913402779068199673891171835442521038711562379706114047230804640998124083529762074284569492402818222824745767855792226003559180462504594814192348282855094755395915056580017103692710112751594872628279568878854881403764878581996800467648863200145996767599908489674487324220644038892783019416773870605932448542366361327044049178936451860508888636632728637041082094229638437999129813985174855722362428941806952027682225400142215255413124049807086387804551092439733884614539356249136057561757173041504746114998974266243724284752243388685489260657916757829262589651446681518419872799330775614559465876686631898866867142694706759620354782824274389400418258826005196955454974295177713849193780789927620241556940934495928384485696116338891417876696094176781032561462278692070895796955787354548884643278514871367551580717030636245001729673356365704930349345059427024523035620732389436713082080572272148793332234362943194045828756870583575021168398719260665237232956976611531398250655205542840747875987158752608651023026311242722536230666134137271767607670765413472152076515392026354020302728510195430711123316917195500512400479980394674402859381019311530075553107972028850861702910479233338743735088859854352501526659989246445155362055859218179411786906624150507448989515771934922690479381365037425247319696460221084785996726864303418446728236166960636388082927340826791958011619612339485660401614946145197644198396699832716714659881275176190382793918101099785060594281216109436235080824095337919598425017057547428724892371947363262983676142779634348677304123893483715334687406147572842047137856391198633694320674117545411918181386149440740802202537540360123897260103139926684214023195735377134318161771262944130397784496375198780244823231698001167694211725065924524664961001701725458010166744578026735707257260014529067442720928926352268646279963581848888768350412481220464668480420165786508769240624221181427825651375117527179835745870724084426133622728434904698805852552815812052617754561066245797123026395611484900633982202489834212538189306947372324284831379355337862855025343536013958804738609850558935003067578338168635407035428251778458168897761858639822498794514184773663852530566922447386637309571328477078962049892637291422319329376443808228390841656126775401582142405467399174317523821038484475539556193034722350569628998977018436649869113897118282733762658066603038036571105364681606456694496651996095018993007512918597634226149985860952694067331752242202426164272699818547772630968815216184769356246879516312516241133431490881896052283324044618033406660609075282409599517429967327640464237355360298150561936809956138957598842243995413076261339615902254129791470355159997590434693324850594802497287211806328553217854658810896848957690052473034281637395942719651685818339752905073583634675806844400198933071769568268689454908392581797026505783824188255852313740207637483623778126640762186260079660771014985135830161482856959397773302416686551614428310703113192683693927859270343680314525241381403063883202336680436423211109227067060890451084302338815016431369687873340609899757617519271152639674461878576312549050531223932527682181389599611527617676955237410177422790424357418858498389537199433804329567693527419701674603094721270571680297849120255705156441372323084249934208572824752728036132271915360177976876298937353053917746539251876853976241795472591454416478976296241036566530370083166606549611955462438460286771108781448028554831617117068944536274165957890593578630403608642956068575036862080801329929836057015504726824104123528109823735552525660903583227517787617265033819748999184996728937806872284374022068139285654735880859843862142751760016081190473669261807282233878046244403313863608447531213266568454881792878646111757565874095725845772119894680391990133449528832195828765304656108740253212452765953778741733243199234086916716657852126882341314107710892146016951859425389278176859806634521586323818105833071733304690501071490550872053102029844099877156282822385516487005561732500666981180742694514267643733019156289116390671141095707279202816901002871706492813408129520905803319419932694204352019766204934323666002263185038903933036270309400874225371930285992859138827431445274176015479925610372341197232976240267678476831472419084994957390935293483023494052544658402589684734799613450164317571642076280369117523440666211953313362264937018529595831969122014768878008177037715145068289164508297284072586706198537601855693341476868427522687611579249225854322177463074582189630420891386999246629724141725513455064997471358137787265113942923846769526644144714419582895017664114384175740326638890848920308220076647315249807164775599864033625058693905441113485360886506739349468575240881938977542098755963260445511410985831847185134743791776013232770984431373184763449951895038638011772544549640575114225102724766332714312318536166576694612867863201624431537651276072595201416074265334343203507616617841298174821936968958373869912142880021440434341659299364641017842111517249353704451108788911428107638437445177283911970112480270452212425535285191683136082552437675843543682110325757148047857814185250145330893984019951682501123541033908788723265614937989965001073834854274319520163038567031566450078131059134340919298630317476990835255329428870013162997006056819565047128806420218847268581741484562120266857337731973290907947643196124244778926708333875958574695626151269856676345966957908108319063821748880237514925748364936982164498851707409499435260850344016252126833969221114626443350121179466210434159720797373879987192588649599795702908644599438042635674829955442397202056717610871890042449701224508959153729942724293392063421596345810239153032938447675743973235148030894711736475280655581839158615496840527465595582260019565270429406000286307140997654985221317310386489277187125746743798363870243149585744851453385466411449519513476495408765331945549284721599524934012877179073151672819072112680180150480790044223548316775502462387854974198295163014854864584478597487520788264583448408493881947926852955199902737883872001774032090207952564712190020833805998705406207180137034558341513890250198377929125963081579083219081419964417113257162564482967041932377337834470006381776584828188454417716206964628715841485295749768360232952513160137147928581181528706234793970851430046816674053298051893962223607116182959448795684849039570533911573552221520063989174448602578698323577751128827523275102877690864472739085447350817678318621794765705253898604911946259495199425284286986790770459443161913247135381674575542040237057370083237991561181692883996151830353067217620507766192142946274879779515351006604576642572713835792097994780197699761415021251734386627877481570540105593741087539689956274162994299975296359602269879575263120236574903689048252268274046174361959571376429502991666512372486098939623605660711337271627547318119056067238932624149077945659509163127141410962699990485870256889506092183252600405264433234899116133418106619702467766364229450515822566840208454851455374591414403385226954400289113965439710516819883825572527864811320903400349657704279151750878045513891160041409592050887109767000394284756324953684295610474700739311549668092457851918561482871899706440229100028799995641707625243884383795690350373969030416743185372257852820653685239445848288388498519428195251428430823169197441639009157413871217889746187371041777079033075635635706654747104496547510582854280368394192832449668101288327905383304123817322603396401419845752678095383889241738714335055143232091931431244250927795594868980831387912388881864672505325063340040530212657715465688638244143456800193544647373131288172426304970888961169821185856086564433528715703057340716054986169789450614925489222405461544406790697643105108234708804962181803192649285380199578100295995865471082665953603439227014474294605228996459766120538532154971549736894195384407411178602304971831083330623601780866682273893756860405115617120247689876333047571572663776482168800212698345218819682506270207284087134510287558921857621599315455957326722657232926027174824159895288040121412526312691977680551954183920565586530530934758109835470037458890228361978879689273820321571454049735380978190401018472889078352226928379829572960686542398548157969878916239282033905406618919624258997907963475206630642487366831794459999508144255496953108391720311990890132848804567174458547691320959205673750144772325000681036245577695129322757693558737937988986934892744120812023127616935599101426512385093332174842056729626659758132922237374855527505186946543171465740140367555751833616303540881235483550159367101287280198096234385425894268647229578460876844112930530326275084760250598145176757053320369591482679117722078370082525743151049736946322076562309034166872291753284054903559982479378481549803312713908028193573995163324934315957418919411783564290199660730220932842081891634853461108202286361835560506163828552808412804414411274163232607060701407320615166869351986458270592852172806599312646777342937318214493999116161083923517396236258713602544014969967682637708311123651191563492883526199777412060517513795126465923261181437684542920293530769388394592535201120885669125937879908325124777855515574015460775230299976882312162120235669792113158921136608272520988792317670523094106075570733469155049818832991122372782154930003440827073033683274061641326102338854694730163561078196262164609110358819747994974967918228312431715768182530342157433225603549728814736354723605089737125545944635243265524424596942369504988042127618078471734369313787735334780090544266813408362639160879448050556185217726682965421070501179505345804860111733674477147615974225117847990750299382531577364364606140352149264781582450581011883558920649670917244088153676796815860708379664743196963567406439915469316885748869723753510512257235974377305815158512431125296910590461524375123696261212128992994542060023624148471501257911426833993577735497681244025526893340257574322127149768516965886515690962092958940030263463355656869738018033243732986081629395425720510632948736746673755878275127857387317810326233516137335777842820916664165366385380528557455638671896492941883259484357908443953562796751231584838422932948384194262841091988404257948919021710057171856210345522948174472347453944995976021314210993484511643619789097323163105235561924668451634776010525325122738774500985084780446894848521036634185085323382397700517296451662463871862754705517012813124699050873168252039423225848795397988971114578359760263748601994781003750526387967964677350130462486952622496797027955751408858378041621847561252874322124517675845671889353037321405654763351943415306894285961386468623175968872158596944944547446849358425442465713607615068315260334525726915994641684903795850322086995826054156365168725244903461241375891856799946448292234669483648282420664866746812930155340726780063420241170017202290125915152201045420973086240550043670047399322068009293287474606183889789787367461836884999599292009640671244507611266674192163656607578280707559455366529398413921830182415776377979548305791314820799188076178497999667565854983035172277626444768316604705698729087271978286154685997571664962584502398154200758014778153128555216383493753456439356533633174023306240573534131181545940545704621752287299762618003912953749645192266615563591109171429053469598360283811440011245353979282776532664643887614110910670690641580570662733603095563939616557000760746439789677241875925125226373626450153535854221719160455380796699977013849155213222727376532764289083496708681772577175012905570249808345177396303919106935212659125862729280183829210353018913224922605960993350521787537573983625955511363628187994461252939674083277009974353352434891036238343634178276206218582257733318621579219519232712249669713648727503185218825828843201274657665882949106544174341543094077870510757792215768049947054843442058502384737760016469287156927918406209310307171576161904332138183955610001263892072713676384337367761042036342453786200731230329575731001853408872492790055991659198992810950634159014101102000453679201209702561203439230014865514444043745729059539436721663309578408143312900754797168676235334068303574437047377940411623333141484940985115963322764746968776144521432334330597979385383067125966987125536860291235865694812561245655385360449352262948846550870966666392696849524715804215846114552990732540857470459696704822398600939599848621102250111884861444240707052934574397883593354108343811410200463621330944002444639137613408273660069669821897854343109407748860976466315845648885627057031060661752871071361790548074652304457566579633947645193254711896662057694772128547736440893464262769866665453275432304783764724735158692560986740347668016234734378470200269219368848213765289087675149339429441682190596253634133349360172999670104187450132312133359819340731397867794696201509923409932144842396627857125866714037093593812092457784893417009658481329850035982022748049242947497304295649766003367730295986716541360263492690313440806467731189372240451372658608179572505789829307654477924246663013268225234137677400718981131864982458861843693406334278383808408568660819894539676940478914955498913580033841609289478670558164693110390188306653981174498442039766357452542321457895338668674181586680406880323668244293186638225619329893943535463592489657406329263068696396633953202669027160200705192335359580749056323473719234712211782889627036615504417255443745740144577891826574875451449153271631135205129276967835519866311027900193820482921996366355540874891506965468639845947517456221315037409863959619835219919792623977081578062551938013844754640027027930888401285338420968814542085004876702203088984493387206481826096873515101838977803246324374588054397992048823839183540496878869914328570210214597566391648076407860946108482567259868887120409586900006029636438504866298944923653153411880314210898588406441180696139669347971816998253710623372635238489904397909796499098441320691301682354898659128388536052629210056412206583413047363757678058571105813117844815572571532059516310537348557542657363385420068081129530171937531047958538776911837799386788307110309963667563603202355360064386329644720341710561714507943946407082470439902970584391100183773075002846401416092805652631665071552237583918117861862174509269969164170193301768322578226799952808758966535319553607701502404943120164135240161239801863644091142802786687287223695312637228249402451433814525124937635939054127925209807099601004884027403237526231192001239044101690023331218624689156826227104275764119167475304011387940186136303959409703875032502929456351595316368452967965501837913700863501166414284767860168787060163268202308397278263361585515332042189782674227071026777148189986813857839057846807561181481917073510624942007664215408601171115345170076769521490772449389374933045000288465275028333327905875445971152391498483090557469106980173943447178574339261914869975709033712902855307231174774781098450860970548176855550438157012705804610283610775097592020841983834175917119480438091374930167728941874020333023908956496676152747116078298710113609728139182977872500691435424763916451176290974235134124585160801830741705747458282898614216269761286829785166319397200239773773867612356630941579075918659432090876492405527985821395757567604851000423187201339115971536129361310777566672655869025685250712583790860966438408417769255650881683894725196527494356244108112707980492463768019201608463189248585450250942708648770425957576088306799091797620283103274786440197251703933083938709342728188975457789692647802645698577655514514284390623330652881283369491242994013840456961845148293160951745417011515780158553117562060932565580602070729327855588917489502645469171683744198865207815889774119752161799661741008878203769434017216684701862237943465837432470391544295519516419278312487041872190438673313694905628694127783409251348910020330803330054858479433521570176316315595824030793799657201443779516496390840140317095877467978307069251934200899582344821119759349812439790008790920863389104804861183507108549376003971783423355946303533593248288486654797267483087284873721927740242259943843884483692689386785450739518976536949089774930176836263268090872275778882960934257397803647042161224401376319214449538434433565001275265933030836949189724278396182403494726793092588176246192550225351491347060470628294100095133570655433551834560428650655727676951917889658890512815727697109000725066332901084720153474957091788987113455585866107049735676637345676584340988820124416785671121768087052081055480377428046649400114882664141668585595874111706383074136951332907256229604091682699232615359262388914519655099224597693469490516042242381864079183249277876834981465731333952123843192471006892695189528969139742800066329820631634865562301212463478336565927391935058264623286756542903392683629542156234055989938557686718122849651532620145371249318893539518585115371487816522061156730710582292665696196302042500176020040706609111970737533814076967633509735534800367827092865842231937415560294362513514359794091997208485918642382845493797837723823146398302893019574872494555034803962213456199406475473561822036112392421680671171885371794358722270111715793667097440205561341329715849898863747233649249760332433011977827895769396723029790442767299607407333622376880349359071813495939472805544861511314331519565662178591057505378575445880641315289351320771199151203949545779451237723422069900728100414518769790404037390796404967143821682662092875658155311669721389464723893093005897232789810680546011672812255038300453863506245693456343783400305900896809245115441980249625509942799193055862762157335405612857281517688938589894301916835835123543735510108654465007719720251349115207083697403784012526171222910632102066985554486052846673876118358820838114120265021136033286901298636563055256258960905932065459871373586206761594744269634056349212824574505744339572230326890045042109242766368283544493642388076082579498804273909849276284477077063621910819601256461622783825102034318767230975125422713809305234696136031601579403473624540915140285163644453707026967699280284270938318079836737158954776470477997269516146935161684182207176150523998011890895368894141561964675543127852053649044406329154191393430288117104168065078939573956336329994109348157891412681658848146816391920735493218582916033670138777173474631217363480530881663013833897141696576001389749943942261339078215162687108767754515399511778651873664508291093045541165576413327400875888973246692249153271253104762799142561952561671463854503767768638978386069687212335228503691189376960010296196784903629246657379479246732090706885618848369746295552511479663032776509096512133719916008577830142625458884840859858180065774517800886999659956121098285255010753930725693517262777347504825885434581915937759145076638354602389182934529160223940902558497282293263674081687091046133514046633585574557823490346345061765368835247591685822306946338893555331751344090646592267597356977655892528351948793883581328232290499106406461164124965637812573121054515887790252525652301916813942630375732766166482575431491785332005666521358662443319539495145790910328867658696991065154163030675015859617870194588559216223632368221271919397334764442294020785818076814592491794567084937592193784376950909864167396022792775369525920667069020196475579659578016535512668098812220474766496231421549403685614513749795007955822576417415559890964715557683700804103838803668154758853560833185126008497993595787772279216587642013687707509154865680638736612226738082866536738504434235676294244722299503520419934829329181296879538850620653852181778502905090987574638458708276002559706029668170632586999596254841618875640479057379247331162476899900080239476243462158137870391797837446374332316976383002670345650873080092915307567180777367683038124578724440821066702988483220642909587502274438896221477500335239402379590551088147976402466103383236117439992646398024487958487765083069064203279458445703591829362353947890931389639431733899523173724326311068177115722424723974080812765000300474307224999297501351098709292740436147316435546900841106827650030769425481736838915839046385018601034442852573158243064923525189742272728487858095457191317386028542030965603408498017370517581226947590056937759976372935937212875198923261511890675330998360272915774630415851531990028454553621405150630068643794946732775249261384395446679764592099594402965364943468324068563244862495698548613316404811295522351375082141010843504333302753750100697144441980462043853973450700120690221805607468561628140321299932724814895356611083504407368425069446159245497153745497331669970068691888251475872461652984130750226933635866396535820320887680443873312288773944241680049744874882205305352123062168964425185922363368640032820880066902004522884199152624633013096126922774631942930983331568624181421819916930522474365665147079048292734918365724610323759475355352529006281098951036379220829320014292847215382352207993425249603482703984202380963876856670281569045368339480518981571363568489157824550711776404840434835767975519498768910582037069433497276094433928087130391614897915055019433153658014853965332347269958175875613747292340092623685873367492658875884647394863337842225228764315323929966456503858130483492152778095649348467594103072738724513742186555021846594979468429123182411236699043630983334464905931476293598970768183874487724336679892653450158321972249340147278901498045439862128376545913516774743176304017018685532203762259667463476060540445372298511127749903606264827021128093183313242355148573274134796270278854739191657581180009227920433017779410641709840719520736434349188863541451153681088741910901974076284788910695261809808744758707633976056222659601861876116678768404592428253287988822984558240012471203633950188901125651200927627700717266315137090060732319890029327170668657932068193689483540005449754546600325665021782130806997990443583535764991180149642306590475915969043803311291097337377142149310777048496619619558939754923205954347887631155234737893221285101503073803427631139489109056472613102522831448958507286217240556474663408424239275501872768573868720828173141962347933035808642262471619051467578952266745943169569727322417823892083923369944386807057885655126922839808424972835705200527529565339210129248188340846320399613250762909700447716787827965016998770303172074122010292663853390687910261944247188657999319381506677877174291313333333247635125312528327815413336001827307765880813785116236534518908333669500723562129458494080282754134940446354369886598769885800283465580411076835809541291100152548765063013358199582964945941008480110237988433671543162816971977701406918526402810363438195314967617563776641818093780359486252284141699675811114561726392567735873986958979308834869711885668459970050652323213222106038451301783441288767828305973673337471448801423742460392706346005418941543202935646304725209468152952101448072535527592393147659035444011099345645513983915734954447787374081133719392258639899235761594714011937212001509954896393707188856276935083695169651981494984064360844373083297096095485750498321749259710844174076730838013868013852383347468876980691990891121310671992651077786169611714913740618122986596821955831626097674923958290890063674656938109674359980402721913210333568123677265639330696261964712973686965549757067212070675471259346323647839013703236205970729182035273197292990544292352498678945580807816976264440297064642966986561490158152028310226637055252409700538121501280437411817361866186307232414158648635402375456232450154891391110755757040127551349783975087106207993046325819745960916690817133533468098110252499816406246447491495397897321072301814542398733311709412682628325905504195635274946182636725689815022184607259664878310731678723776584870221216305194952173287841681426451665548337058256016193551109990691186530918805345581079102858372311630402121242577647311722808785263237733050843354556110314387831346697387984807948935993417067393392281895393611617943859286916599423771463065429318732937964954349086945987653247824244540490014337559811682476024174041589961093692406227298419428425129464975761357453522468494372744642633445457337821709977939441420004329105110536323592791688077963312786602872254902581416540335316361149167106018229470948790960681179677939252492470790142853884355890005019083649333174230257134536739324204193058940427794154804327453615245844229090002996921108624536036723502173735351428491363117172233579184224867120790387825200927300234048778407885750930332505738271219247262381406042888933496176822667619908435027382516080462786201054792858540247630027656333663458435828033264173629839192046542187042389500346573417543284301593342672916540430820121061998390514622783003103133111881011134440523687117553277282287414762524922353973350405988638848581650701308063181112883177540191818000776758304756590002841635725936362059471040531210299512429859010098159770969768487437526893235376238101628131549714829940066673820654815905912539607979769012503968067995657229982023881243330995857842232917916630012989846908992035750690575266196036040923631595542342926318375890348184378315890688051198385665146591729609870916829414084349676164455662337673844808868566849581477630946716772334983289254536052697745544267357989805929851131726461375794566647119158200655573839368724205877904413641382138623175878549359752980439228042626396289576976641000281135736253721011372039641150938372152609493979925782780014080603278171473366463956791889058754066286614698526758427416601687544041053681407649175675847524946613484610135906383337578061898069738004407596184272693860277908621955919269636375022502835067670746240744056294678119078364381634775631982254524128716432159109222187643172462041260974536813431937924426905721332350080508607180497098215954333275130321192383971007540426812577875718094991098980070657019638676578615450868778858035038627160003862606131540119266454118141129321051760337515299991054791254115182520369311485678360112025441740559537110794670786891635505398093813420536865309739340348586445418155994939177593284264036710171920510845876373036423850907297280884956908480352223267183745754127683045568579661080512145436436051896265350305312496808423880811145132168596304854884072760239548415367902055143367421652072419509804093094852861346775168007969114681780854511007065775258482526134026669642167556066490843777743960575507747786938157380495515579953837678856473404392226286195479076913570407482202947923114523002843904079734551748356636041478707005121996436578937824014636361913654429543999188005098029976879380577827609544926988649023983076580536380702564476308415470835693905030363361893330399049832160137339768892143280387034420281434682540184885756977498412764098360837573748810544334779354271999277318793371802422022785466758140574942582173299565243535664688299289736474957772813587166484139173554598525927735540065772410242709979900703278308164507355912139372388625608629456603112506332650679349068565370706649783245063515620774170015009937041246612325264778555674581964383913307248053464127384575243620727464263513327121253065964196460713163643247006702824597059208896249257273084978005471928045990929663956051679264917709186245314657574178623080171269158269833067962716009304990140779173665220089780418591065919031247799381760650064774510290627739842891502086824659402404974711302545329386821808940281982581581146605625507614062501730144780332285454533230247336661134320949741284288335288607730658125412942899948001435282128867986161041806428831339540864239176429877320800931550626018081438251422489835623573350085774022031700881094178113732678263233630600768422325559871755263753232490500238117685164353234372434300752646705452259036443703164540505334575446458125575626502478936632358045094784643851473500154437540308923022887947849299620232580468108446679391918118885060398584567652428527877064729089501270371743977617903313403007181710264142462637638648465766989481386533033418115994209841077954589634994525753304011844913056518166266488735711000075318863139777208109272714582215638024581487028800047055357237096858037082107014710932238937709189630426796062259399411778065627438687370675731790305455470062165102222129234175551723345170733661172306944765819114747665332958391089498178937131981094063264955775070374193960075017041447745266909969959070476188601509716156150830908120721250685811067651444280494091426351108939357846095740977434794608242677556752707715792666676662487730970739875842021321990885310581693863716673692374825281606799701199314291688292283176408330136957040938093308454818640722758148672732195642121085369406764694124329956871173437047826302294644018446524436737989517969433368564754301469505051404215369177433816209453364999232492136268829967948318370128535172674841357316189395122065968447141245328039409707539610068022766553665048739909137290906966722016627084430976365435864064929686772258561086491562117544605340790662162622387597471260308926429803902378803534334073679857167865837689357948663411597025506405668560278525836886422967174346536430388502203050100929973128007679548333490702200811099521344020438407520514377537020270667500826519684797570475046085171755105965968868279296284837056893670866106893185062717031547206162663188200986722321577542976566978298332585091423655267539944145583791224720416636938798167609718066256814463044347864961893154392388957078930160485114686026965832177647974746902856280955370232534702568576540566309213858502400551282633146317265633012335730426139902171325338299671189401175584197632835422125693020460486101053999230390587019701041183464003854758716377361922928261370519232733394528078896007742466241076021308483508508914616594337770438339168053894275545514125359119939882165711575163629599555475792963219646900647286824532033521633888438688312781569608719521780224451875690981311170675452679202341452293955026079880930117148252437156604265724329030891752376166672186689451036009215636689529505802617835591898732710175550897801379601342895603183016095564917236293089065039934691299304362594235807187253043581922208464233096143194720995913857317865692338889238929077542847649023911519510436761522136940059872527560539079473417394198989629100280160894174201671617309301834596236551272625646426863830678705154326997284773986983897847418730147285279951369851919559749530190412921093363749992667472110723484504887291369577075329015909425963252333225373670857820709163542928105903936011902994232916901057330562976143227164668650227275386126859105191440941491080587591963470729712441718954444425679609578544756723232135593941871443554658440460431346406618013019080001603386539402750501512323642805233893883020485628756935429530217370273002247000160076647604411495549387302592641679974492906527373492356345367147305994706723045668905935670224482221444179339971686864163652961643873078721983225396919183118940649375302396865192491224091939323931261555756014497568222232563799288342801667388021370710399199693057193686624950700854347173002636680183709712691081140631378128489547573872018832450614588896728620725906509082118327293956577937935488436294161650136425936802401915802601141618568309300641984428280407565771780901115991644550129527486502690827611234300575242805419498590857780101546641872203513608069127468130414894182210175362039103590638201573827756267864673592650140987159843053144095676021113589437739347035808506295971397511541980696438807538470697158390035559075522256987814458668200278285508282715966348484769067421868007499946432330218858035542022594355524905701959241673944728740390279329125637027193737843100961482375342110109363608490257354141331250371117598270951935607117527127459439056323754759848591543452121855788239826819223495265256449442848427808938415605174534170338720467295720368577428729391331869531868556818344268621513353565388433713324558228002027285523269037497745596363117053019182717732447783026915825660985076859475183865021237907971661268015208548970625240810185782367368185141387990771017072066943424926711610628943850064618772490887072949382624997513858418017194968872882375709824057413602472621404960170882197812075757376336927480244537081374008414368376314838943876374966818285725241169175826760163785703841065954486492142324786142566790510576962875147843428946859513961961236606131923487846815307348957033691276847582519060341346261517441893402909426255519020252728739513164212280416110760084319729920400636972905120219744217710168420781319311195973538726830737218202323156501369702737262197605378273452267522469114179665887490011491302999787432681646834043518178452729631257131927669130293947697507700835327920463402012919854123465255052948658710674114141296185531200594786150395676819703708248982588456425883474085049284371074626354539904927897777434556570729020807425618183518377778933720055403953823216098679003349597496641247417246471284794096399305739482539528379730552065451555456249693990120804582329935708573741418259078812419282652133704824053117698454831414886515470362138973902380291057409428399170755964710442813433996216150633872549665697352626086182822319577873321000157683490940304704874285225690064133951314047328300088783523674817280280069004637139179813641447013094218852542241254602474367051548200528330058277851974088326967503109586783391476618599656041309236003431846418668830555963207809511059211451019520028496986243401484433599422531829930501974176840122304024470313667915364978060189442449872033357272838938099189369990214059320138375450167948629049405945704191661840093964745186261842696123774875613468459795257981345303811166138370410617835611564647677937086794735091009077769861753400654090011219176798050921693056271250885650595920696423386409610845959112004528976477895444863610496118189645869630082462515410114068961802524305174278880397397953139978930526694460025898814857745895100342282801203569491355595796516467968134158875462922446131081807312822896886290790479603858581442591669909872814366978901622347400435500021673795386681773082025799085708454867426138460096444170104533527180050384084572708117402064207848320271288832465151935332179982293638830267807025941711978013800234894034857286636335316754845473221586761579134482503178340688247139101823376436083217079180634857786219667698017997887740872056125548290351103790119129530040895073341229622222417579028279435256767346821639195425962398346020044821404364983782711411379727649948834038153693375685713232347099585810395942258427970489208718057724375486564888273358275529122513115189838635534735116145558703710783283745755534206161868408328918616036543297829257156225403207339407930261077689701165604423242996983113493384961047338198873139227870649330518044765246731503496974732025032426742199433039321668752313555067066332894502621120833358484832701997600829473116808690523559331663437705959219042332766283151390821516456173997309594681985451357188067674641142333040918445141527502292824016201508803897186801975120477360903520900407991709193673462623964322589612905856350367028701424097320686049320222559858045438002233000928059001987134460878145064442194166746704578204396266245629555971245004052891268056427893606582621306371526715947561684083151736399621020131958678461198096751606995546939684228037735329451199921027159563958929694512041543507556718499730708766732317429316651289884953975103121784582495844592963196372738893127209683939513625955216702609049243831958417131544278104055106571281911371934020300119405570491241702954993429550122241063994064613965944130628980409719179941810317102942279216456663203943860413805960220862673049574974292017008896226083932880237397268005031324987270487811281802869375586070513899032758754772974509669105389011812525751275070895573672455574722222867106163500584158531667274389516876329403892896382739468122400427826461690532473530757769924449894228132337120878814693095756283606328098828402053887537588994048847473639963969487036285851670934051351154003003874913819239408962266585909101485108810178522610329994557667323186510705460069603583920867566383617977240069268390511283938348336882655732403904602912257460534037383519192983469020897768528741260354966967780351605232975399575196631466099481546731281074025472190012785997438194818599868600653411603238516663943481212149894443860198222473039146031869674692801198710070957996750686842225344263636048585665832908022595958669505648646615536854845092993417024439049995172684024600103900279045770312716480944378384356786363718885790832859093924428147454134975601307904959093483203961039397355171403646536136023834848922167978943503943323761527968956558348383289980223983495494669750954038668328886726622498311654136093925871154945110108887168486671276886894804603291853536716047414536407197566256376045572544954025422728660782838591354296017334621479577194790024034859154376318828010125787460799693517201826022093260211007207338796562439861515879275803845893819123533613912780080274057042961965246442744340460636735990795684393118895933301906465588351432617549298666625329603170370324382460653164344979235618138618750454249381686927421756423387986748864910312222307978068017838297796788475566944069028291281149092245818586467692287333034205867723350555069554407088162393722456009904320522823984856048932328752570039398516555056602113477756862788648973342343776959243246418474544238054896255529848007037898815951432710173825473314713819590657708236304299961674549482195707951074082790073476787321989431527988779715781710485274255514094158757596396255339308162346671407180256315707370472636388313709221804802284626347900773439673884553162818472824901082088585306174931991868434420124708887629347402181257181324071127880168731117660780811036270289245381436384322593061372867523115234596218859913637563894945607990763906541195477583973427075108954979412326312970218605706152282800215858090774193973897542241246309350270570401197930024443084411388610655243434960473430026403829113431899611004425901352425922539147334795471745060165822159155348897478025847130932880545864619534887586807000111989299635642800488244758908318073964123555278935695372743717713480661946088174044694158605554416328617190021143524926130498665131830271495802029428803756763084532059963952740562138732999752366878791870442160144054420056877729906910511234674427834063590240927044505920745520359203904688277486555091054677253491873831845972916597950236360564050076216315390578326432966166053358172470430341676806632397697972018682632379101777525060794508296637336557548779228145353630572232924582349315943249630784602325122770692236211486397920404942704470990714088983831234298749918832274900127887809224353168383552638583458357123553538796850475207999024403072727377722977142852316630174288632998405502573571659196782829913980819892391891746223783453522029775838780789961790678099236288402487784041381834008720311947113303538812702422224920298246873693104890114092504207441367850020246426761425586893888210454569928694658928530645870623795570979270809364111863331271849525585743160432940403390639959899675358533641673830523946072382078585094737698999907805221780587210441970473884010241692846481665689275993372302478458186219380350254080696247933152480741821731818573318443344201626394880237839357028096290037439646134006126896451048734524824036189524756953672343544490353415933651806108480379854831576340921169848738936581226237630478198685737952600832577272007951610222198973476241292203321588882770972673542971800420092846902507679238411975574507863376385226212960607060962746140079815343196148443213797049723440460762220330666451898444946993161210039398470741283456468091282146603145331255246252350725644662357346948764159927310522704258434236745589766964800653595542263639014288058023827731768245771210111146699604318248644427635098328370739324727129979213472517374001605071890928952630237134054099259202285753156237953534207970342627782077110735850689622746045045173340668384994401329531334031983039178234093804696154967334049837021222191226110071558484862381529896045086064753440551342396003023117550025908010794298142146894754623388084880044066624730749219682112934272470903681697881635148535168992077273911890628717038057147035661002251365039802449915441844516568816718496459683040621075964016892814355173612483383091580010752344503257977882341391882169993256681629393004850611000638303735111388454620130254649414663974758959185256389042199124114964457372832339791533966157218931298380701942429928538687455573065402627544283390748411725766644540501950374350536078701133967150622309027726051587451598178976504683376810932754871316753393742690972950493597923170629082591559655229185732987773652699167750337423375479557729116514189592689726020359064664703228070261092117508787062711108131330934211970148616627532126664091539650485808028903070752830240100220374551088826486150637446293094568201375997917659418015135130235043716038537615607337053379140630774092318441543600568788566406996890291151802797289411502551770982966860290360260869541888183328237579975068868539299207618173209111557094616178545255759437129203850832513707320662340725904683660630272454833896147403315899074403282545436546033663457362700744004907530803626223919229263801063360560243160236093457540984937379130164670945486168653959667574264821454162044416944243382562653364470037956676840607493617147186021859470790036167506978651024679620405264043616737937913051337149676330751436126135536565423750881028481608803354540662382880821626356937878721679040664831493081029992407591135417532821107803890174664566963919160630630020293147334042393450231213324003807534862233516384211210159353282045877747365586965799413750889346050812012506262055047685453552707524976140935079101005220781602278570884697074037692583474397614532717558591314038675354466045993876206106269164907946315346740410718425423680982016009087995215530564440149494625050156383823860861969446116677528350269680896297598059968462645097265585342856794707768033117036930806405104119370379911573760222362891986360574117842363268648174519370203621612004969332275276558206468172860301447886646058640395379602259270022294830396521180861821452323941489916971272750870528997803768835424785807070790319801649880505733861069153243023193011551298551238696546814790013554309671662365436340562631303363499299443730650097477041564382290669093043323131162429792149483053806099371903864983554531229828292356590080367812499216220435185586809376499735113940156935132922915165108283489859452598644085456848988171583571207405529976063537873514337059445498319855391976990477503107244669138937668618616335166056628831346469605661360392777573246822885611291037980879166586561849555890410883973209587014392611424525145262900525621668350880459929617127014359588851453580758695628852841214296484458260721642605132540145387961456024310380294364565365776047009788499570152389535966930394003665776666450999474392562207859356871980264951019175575303678423422836877342742995272852896907087204227488075309334036553106807933934435771725486406430568369369699064003319648309122979247746528658899028864853121129520461377435505164288688157208495366705630611171838976208780197664747925002177630333683481449696700682408405019056215859958391323633286820565634970766061011691347975914893415831094150394238964666511198922748235667648043707698409495265704788978526944971580043629870158753462541696737548682837867446595792242374966824898082330466142973495362749490251610567127076747390805311664564064496775379043953926541001938797448320219411300452926593461142765017838867983769627052084681358063959499877034152613657785772426715505432581078544976671887421520907349535282421992116829918259287069324303730416808363075715235931524519581756026106975668699667828945022624029236521818898415152426307948913906478140278752866616819274557962425242156063031912214171165877137843919240307978650639608231890469059466098197294079308590266800192957929743762385086854265905750146264145731431450035715221689402362374644800572119179164164727069805375258846780224480305498675111092267711710526174487480741205638613097238323883970638714987482754833317153507483701186993117101621756359101387792359584165752692287172566455541579155404088840078770862627984258437159136489599595448632364934224270079180490285318221874004156629879129083532518801114472499434676462730965953814467373214643089957490553404938929957839088680501282033996580673080121172507589424108262319233406032337392687446120977048431517049991062401123985403026667412912669801186960331316581676580158064473754824236956598977523695897274400724239240060115773089953795140468874367243937510283088909070008207069490640774080683326417049771189308592191311483226537402931442694235563704012717264677540887846922738283547003093431850513091825220665970634026626312273842912513297012786600532601611793638822389909977493331456625947584998746005536547181799622035781443700343669106037903136023080006917409590144946179464778047268147336452220545431865012225755676259699652646373540758714005105576672061348659437416596252347063642090564590939816459883140626447787272835664748202796927894311849201460685649659701177633693688488410455375594605514826350829859442824463296324724606028223376329466184069544441736469982843924191172238145620733319053880398238434890711009653852469179885627533263617577518952270109621793398400117715007212118112074350369006025590098051788478142918631111513922950420589250500400789135923531909372903995116177236760003200757758101146484045886990245748422591976520807210720640823894587493177655492806992473936252391142814255051754076438958507205390066714122698441654225759887846465210476390268892135208059180777915235864904041933463826784505560856624534973018864859080808027560978329771210911861091754582614726572644789214740587232609271002697051273191779837070118698776657654446237095797782447918023493625233619774142339739848360026415089251330182732711852198742368143939107781020808817361833239528461664239016947599575035453499031069276519484471757703170561701176947995347189232680247586163236857298317126022084769341529328594392258328037762941889525954345915491288916567896104812503431983186858100000722508563742678764955381723404242764998782756413897273918203380254593956752563745154940901868264551157985603033366451957464571686739683660540581939807906250992363194085713342132407111151143904643311324357451830923557525915402027123125936215887462007591519010957008767423911383219194053286465146859823956970401495590954473717202620653262604820154697435795437628333618557502987996030294727824129706324017684601272455945352685295508610661634988504144626065602562430813962078548757483658003388641179782553399142858747838522624772184859093531734954488861511457982973294362311811700173137418578860912255312958072516573864009823445917388906932621240083732097182812356764256547760420919277474404908152471462625850110609524612129006945564618707105892704617485214916588695632684307291727896161210604334020790248277562246267760600928310793952503118366817673449845389959571746230549779490579363951186764435150017809543355297639368679593134681662194978653707634136158963061861425855222305156352489274799163027477044598500969034896545337855093997630327019612654837167127328681074521233449496217674984788559622440279423681095423282738830484991846971392394602450749755520188653458888223806528778246925529805132923622482616649437970752863606523153947676561508228952687740437581450499949264189136590502773518110719987097565829928926464606481524003947247350023639684967238208943283468297633836341969007692296102968412080937431281192647698320631014376507924893887853851669560005727981913978647075577889143199193233102564057523270098430846001875374320256098419698691484273870510276286117166026525114175481782414255778937471466823284104065804136125268038869595333621651435715598873990626965586832291319216834467268146781557260847237761168191827150358447565398480098899918464389030307083474649789590498395330973040852976793255997139722140583403595491161787861620428621205987352769653842588097306016823640293211785414663935759058770015075886273495107601758977616722706886904098673875998331577215359155026871155701947720196049854526698853442193940633930084951710806963229590725038756469414518350884569978279462220431587170973602173713737020641891662918337360409621565492212798125637368931038981779810560986202714884277270905873745850674618806588019591256940668264436975362781658148252390913024266911442265728160210413393984575753147768126864528355667676661503367128699228393593329071699422926248674015502743603084968422981844601849797658826498491911075955160303730260574466044941856167994681037976712003693790409235100071661063845160204275059773543621183192003473872547465502430095043342333363461418919802814347073277520090449618891142889918531687272289427512805314749150158939347102189763959754989740135920320818382719172387425312519935141746434826713431697875678097437246388051686093259481179194586502850520734999726455222443328296993322540345448453234154842064745458068347335098336001436031477430997258736958124562190151741138450603681934392645629560766688596133350230831074972024572515294088920927170242304062180822955765259071015077120749420641585969180751652444790792480700309558316434620099974713720885425420822513422162238781838944289870503595243050674878268935684391918262386665452022858908146082068571623034251058787114738626440712432914176301408904529951546899662645925045447815445587142854590038500497486531171802879753792996718744719115632597494865978006270750305210753041747685741022654687331353354303585928239275274091608176024057358385521772532161216968508165003629042141973189598258072941788497306464857758456517347045730668286344323747713484949953175850384623800977746198924900405503641733792547850344568727214245198849904874512179164025054649745974852145326707005086429924601029985446434617459954734842005480663223863945758927961455374864959208359693603175663300884667982065520298203246415097173580469645647342435110214591820220709826344437414439739287470722547559515218644124166266958492626384934705248925208982831723209655714899975814186947471433323772864392461600507715031363644145613903102507009091331012283421813080128412396779908911484697730659772274496175875037530493036362367615336268255923814644573311664335422701871799857125356410107860230647133175320778251601335024170937486540794942208458813237830409109624834131116255712370385078654259386679753813177614745983571477381968084634832295949411473352566360340485938405322427290257607654317885684775604796477245960871499899375034134880923822690990237555412346800893494576661134285471560960433760781776419649025156718562794985172925597070492416215552743960884246904350425312110160683908085360009011887165891355029795412341780465312283859961799927302060306837738747214586044535528346379528353298867421955142013293140737408109647424952144457058482137510229048508670311578142303798575201882806932807064086300314155650769449048919432992584889559942662938962693356481238787216427056434821735780833984552758545998717038160905505781695496421672613925105141961174511200918231000243366310154814233489985107671091503855431417267012066993602808825739213781765895657411865490688424816397516964623965978926163634982545251766562891062795696902822907012280196436836515186201943033460464990852450473326906599081081699640124207243017771565770906386657684761047014095970541132178157406447925221519103215241335742219624920787053178307514404051531530824714017419868988681376207410325427772893967409945846657158767802486579830939680605474887864389166774188427912055263795817447339490416551686268947560403659818227311719066738322492875199597742894903316476976752728636710638537477152847190623867582726368405533246708184459183989669172656106422516896800644486117150472498457244737670173958456900119560199834586712111475515389682024763689351365615696503693737064846294307649755205515529183214792572241363480937580966086143726658179766187463749298879134586639956589240313598715764083307322713374133639214787346069562619342500964907446882375892421369816489052829708158427023906790546006306336367233662708821741919463021469705311580098376643919603661486767715605565085896567515052342864716696226723334084915413592443392136340118927193156713690812541121454986233303133898113750905783911589902923356330583172543393934040626740734520675592266399175031467489650248837387912357419417709164648082900551599307251651768614939827319458217478819774949240312563371860828635953919266977129301761605900800621854703337609978924078489551812975676354724919959548024431973837233597854055833538416821878886229612675663575892407899674150916047175925103655752079337516594333914909695938927644455989526312444265944904408251730725998259371362893688030811626814015319029441377055141143031591527557093010627481199047084047590568949326875447495643992309062897735615166975218730902751652310390332449558489604027802735710350255777481397965946930737441560345403054529453772208384360773110729976722461294361801411096189260816778913226038620573345593908513763079546604388881108448329113133535412477091723422465364335008490705609050090346587714341472628844304914576779555742265532901365763365274158298049016987269277461470731153406540813079542752765153921396469671037415545161632807585591880267829510251087164009246812111973042201350597075510888125407018057144286092103900595725247716066504146521665840385484928037567171334776127880182907438990989597458072389916016629317258879656208978199948671711234306250961696457514344712342051897254746411554855477355372606370370520268481112454643005368306231104566278633341450784635309795748246997614666621399756864118192975361766153967042167256667017388178489646320459207579686783405924233861128578086196431247287478704490722940824692971905557958487087841895358337917688443256027690979013845661747591994990654357661644580254692758907680830704214450570858535122339119217032308809251710700707282831284524971015677040629921191870397709014543725798356961206522731489178724530006200970266780299051008696091259313472922426996217837673572815290970281283086837460598059821699498650282697271338515162802112050583401885842055512729633153740060702501514801047350382259562305044535700337704498697837917071160541265582351247505469253152556652866986282730133970056180847218106612441086957894455225710102795857676784090540781542771372168500845448723526454685692877531382660109172927640666461130259610546872467825348549145924211870128537502366909249858427985041159613589071217699520257996827403098183651671806488168295161301076298188765015574271789281780322555931592952388723972057948836574668235324754308006800361043372034076317069006720697486463384377425693986034941141070795833864922625750290203189331825477487518307605393870092723559193355412421516318322298167839811757862678691638456279213716867597245533630696845832812098712322934217864917994701241978162234309317758170288068759104953199054839201983555555796850130200675762780878676061597647689029000545572510849157575798008066257523537390255717834428984623902242383494871273541802327571939528263597404122170363259972049281941094619497217400855211040033535212396376462465919878998894002766767488339770633077237163904804560729724324177901255203170430040688735932103457318817958855976508126229977125361385350646883718365021503314491590341217681531976837281314043129266751176980087305209715992766784313305537808895922954141124458950257680703860762027907884041005166658885786599000237234946348490104177827460722110041752371147315564618326861425921583153336393593609038079300311516215094492614592486058150416937395700491587188051052498552782946997860217723922196428983992263155126120066197844809044663669510709469160113161120753801271156195677962160648549848712759422864891210207478322710404815085009357341847762661132490213658956039162054000783177998824933599432995537720749119428794086502473692463014852978282546905621724117105340069973221630470568900001707676261732217492749128952638686472695231183462422863906982415190884628998410824670701005436724643252411635568241337981693336481222176803722138802644533723763129029325684857737119600799807830427694155055805927778561505529766893992185100644747065308943283852691673968714628817081964177258716371522079766638992196692158305947622084263502220578838287226919389531768123248457771018430128821735495682441697436381125119875225481933223089731760537219988201575709555333550556563401016445311159006759456269937584596658661013360800706696181763234195033539040532668485225513924899467268341700879573890227139518079589869576057913291515435979115636145653683465982229043338922688486696056103267156793291579544259109458367675666818774862998799037556158633427089127124014140518621118597061211536391077229964849645440160609719094209673694396482442522435338105919797096040338400625874422545563786484925219295160552064909331945131450324590351327032184876293173405712662877172758895470334495950081857725175956175504680454337246875998455883256577376212155234241121452347448669614281699657776750617058354124504608874904174677551293210441449111160212902453542430789586575393760317782288026867922158972725269176055919735081290250303125326301472368330981516416603000788220851101811318691487583566542916367181960644994058447256077619769393172776472391082918881670210703891081575217011637652707301383588998994471530082645440544871496119284834436236735564078795567936922249747125882919822704487170763398046147528871629384956255601961769122912235781412360695576360769038350249819579106898843580878991974135092950202855085465426595439864256820091525399703861554665648570939937523181741646328063013768208449611055182335117917256182979836550628841694049726436389553234362555701647755634714007466771718386859548361203586272740691993067753668766056117802445470092711547522169295444515688637213897123510615957766570870025226877870432839576249423974124907986731783931715342248801799731743436431329192763626283160854988377632004137294642812845452642562260152402648728674363316287644240936468976953441325515799998537322316291945855588894379211728161249702655167769929313657420212854603901783269538332173330835837331310895541299983965001945603896544653168235027302653083759974152228750240056298920831339540894180950722693199877479080907660692888453858445149089265266233869817151073382511982402678842895552245933558954703776320722832355923833294987643018034451698238201356173351969095731796101352705977058988780246182373896829779906166003680883498262002903879033947189398396294147969800444330425466370027886860620994094612804943348648386588478492607500218678442607540942305558656380712735730459420087414026284984555185858399342995203306357651882852695710239142622351801167607183856201953475650238894449207637879433721109657960514222916227023383908092910722404399019200333566220874342715267718283429804241466153676269681657470756195725503156013381483086043025177407321843466271776913968367404487249897150448732153914812642332943526229759738140537732079702454069802864480650501731563036848337890731175145741827686045020177040332095952091397492332314036492859794806685260339237278230713955372928063925666917035093206089062326729948349009479673459385006660362032443559862496738709754430436908693910813778669457337211045848144948398680544316114198103520783781749088580651046821397713246427452512462009424686160324414422388854258033219195027670479166289496948789918668736819818681005456520789518120630381483703457444585272983653295914456094365040857495123588201560500968998979451299545782067429647586030910789515772969945408549662670061408604037131764656352033306309418122847845312687658268874855765934732746502837867405258727521927046203594143761140805438941793793162224102339575784895441859815938460485878813430921119177597950371529700187092013840326488652881623616124981070129088823732963459191749472808566286937366554203880202740755726184735179880807964261341998514382213626672968586827083171244905747772081809413976346541647686611497322987620922628811994416850996286397487998714542975045059102493274834416789706987522831422462915228180215832044414194064573192684350709116003819103721681122802974198135134768416459390519923345086411503763813702008874234740185235224293814405933006550612208957086264528631218950941297380009793368092824439531833554653597187418423355926822307908174014203173547487076982385278103248882021948437145220563023338497543346587953745405214919534288093716356189185121054061627896671396630109142825830479901823728921072515542332073250029107891563784412134086134987448756842508929683265385640408710086192933522243985262117165953420654597561891372083293593722052353506471974639648427962420632666501423220895654269817412826370248007649013310466268193197715630725860228090373904866659329263615984095221815929031652752074842889295424185531757457114000106329941903505408435014311330062515400771702749231889956816415871532549532148611636065459490298519089835848507539037172242687663421042738359897104394269741386086883905190219370264938697640949337120031092556117554613862286100828210788900866319534836554396329944178884985472428011638707814259644946316025698281596202597091188548962530505491161663924931656005551292390716067335036266677885421601755511516952710352154164005053407258767839331190569458033653181801843365573546366230484628715883884124124906922930779023360196253532907026637567270357540134959214625392304490282632765672303752008853088502146445023256062213364873240837917614989266913117418219844530164227204602570335794959889743639113186058657945190148256772399653022915608764783416557034196748796955640217510554900090172472675826062056068505862096016062709261708099209020327802186576438559505669763665046588333838864796106550479694860252689882755058345980965859687006301456995096276000011942317292420350309562645615636333182480463892601624475087610650147662550691809239391020714057052676270332134574676015806187772698787071986160798368663876382831242505918366859350435639440542986764474451330549868324842276714810440849745845364577573880941978422136087125502128989240257160833063459709243547026249502636218548883690268046419894798346761260877147537907898545404947708930863359462105340922475285230421550748491647451408404110248500511521995898209973194396255428694951273460859973110158088992913073374223233209724340143842349659646821497946159330201228763378380431447656831034379744249634120564427337747848398403788100906150514079297418708572265441952155869974102065877635067721964558648430141628115499088306815333336902598752170321081285603477226844573715543453663962242781522971235791524339762137936675728922255156808490701542523185550348067728655060767100212998705341774047732396360955937991630218375676508451788805701853245094828435945954432113829168784525906171994753410486086396534881882768041710316281179066324265178118819788336428299288365042069373483012940468078666847697413061928548767210659728491078566354933386129913972564556524471559814104410649047389055523232283253732304909131673239443538145671207288708905597117997043964928585115503663292056946533765019316249593022208357317620325462800928002059106218931692862123911110967246027323805618124764732834647185606598006049291797713300600032900121009036869319327003155038503519962114032012732584722848727010843962314412714624406818264351932830806777584909046837622043820459848331927773087172602584181128746490430001753896972054140584615801693443158927049927789085155128215294570141648125849230277895265729898722950623786061467590029759348733882598194463078853451916417818226264496581525358057385132615411122435714756135494401184064654119011074552119520313919518101919796024845340957168757058188213492606119424398093925055703572374528517167791947767698102525935731668627065013101227669805087020086312340876458224595073311039108540013508303119653643499153586837930777891487548773080934460546576308179080087056811069538470771180427299380259944292610545692778358634211046371907006899723516268745456023205754459020876294924038880872218599022589199049129657905283664551052149242855852080377347767835979457982892393883511634091073260902617591657414716802654209085399598342067869755570381840238739116971850688198493834948691510381061999068348488760536096866150557947354696499780760333108540296635902886876108441111930487933568419537775595619633335626845930188289823103898747132077017529744210766040429373993680232233277194598683148449204800661587522173705688509174312479763045773016106090006283976233613177972934525991671234703840097739681757875376558866917909221664977836632878576649975632778817198678551278026375923800915670464965597717096632780642886351096350804685050313564673814318065037899406058848945246554946436700753705763780836520827865634960586537931995371451459593209380616203445181480066485410802595693747492095846457460069337216119940792414711534980007062545889637408494755917639886001519724978566784292257571968096504940356423510539788460552751155883694190681435814720180910067269918593746063707956571819558895599494479309960705542200348434013376350418260067622709627798448559237230821755869920505208629085109920023174059177722088903758674081555134134097886972587857129352697071783451459508152612901349358532949831185338223512875587275957983377927932805358735487513160577515247391976631350329606376900731289358103509264625353050188965414360644726056445118124604465164792116514240954228595807897462564198603312335788197887827804699835426633984835367032731849580065315854059695277603356772518966504565924015945844936393379624101545319066943037203288697765102613341677367817308718927305399973978392916316947402500754238919338354918573997275322257528888778964459713457763115690307620551817416963121963670505814665226112371602026003080330017763366192093093712726048403996888028169812562768985794390208613112711117501435750125893133144845113481796366494582187113266192090364405304365598136688665783765061851121072828286776034801599698994354672507618687133745065287795598725860937619651288574149571785286446978545979941604279629570688538247618297555624287720826267933456056241110718219985654129075418761383085812280312810894254069126621129105097620242632539441793549955648689492043696413285377442613661427155439190399817883121740257613340960946061979384097924246999713815952472278667595246259194045731546800339464134343070464093503019040712857499782619208783706450691044058394717070639136489821307357931586126484578459205545182812236490225629365276783170145879809669400388314028621374304071407825023612819888070368770604037591683819446295621136576281167631495805516104288416176481411550697912417633173258007272027006398861156252361943029049123033693196221639016786827312301072227553461310271441125123050738769195102210278002719125680083645130070388253369517412067323901790706007063796890058625314831919434872891614807408998911852431178838124918828381987641274418563423676883373489893089856988108804835537465492097958657573931981221624580241658622739499473669194508177053306202323854911031739926823497727773965562273759875740322925228059375433442655364065224466328276162662677343313720159610779742045002297041081469237852079751597729070977388412957056926476036992033713206198398613038082067749536710019478627582112544444062652325883261855667228498823996468284633180481902088312619402252244964473558890183156531168765602970026460480227057498345127904861825296973912192423934094824851112271587601990287912736944674533636621166577818584694737308016372854221499884999712921327997622755865499359895747543070500965071849838354081798858466204685063600471437791779275596393239243214746683338400355857946447649653369859729491320101887742665029510004693086604594240929007151797079686934060554073852922962616697188175622433744758724557915153811392490376517877611701525341833251722530079944387822212229446580196216317964843739324477427942738317831429942034689386186282841642505561303879134195983838801440819903880904525620706182436361962088926492762626845098685628856276225977925387299924176082421346557438605822344819243685633310693301274180157759187578919365626458211610419772178725494138276175735715216455694137741822906292193356973469733103159569584602677792323451151533621244273793444963144009916756630727600952618858675812478021399639442932343363749948502332380800665219260141341731055644595432620214365231853441944855634817506512230628042972146553213175437640816432515631288575954229318995094850175499677078750817286060649987321180653588395133305954414629255374531315676207773389525653856402032652501033359854232657581819960481600602216296930039953677683012947834537697180985946876036901054380729372731129525268087614349599741556879241935928968198424935646384966533987193044608525574298352678585754103131054687907819206450915900859551210155959937509958301895454393264738769526407703973653788302911023779190592070852603100219274789959003633022886704610700749339745794560689677092849059074925741236347633480921529649521170319704832180355416103794526179394156621153910196187986817375643746127346388294950708639624893943684717084461084726189901465696182931467618093470274036034744682004148818596265552583756338758722519903500989268721549746831598132033887591405778321245155761631073139146797252238532351203687817811009306138743599629562960281873771393290143826329843480769358060775430883122519598194885519593831477518171102036755419133134530076087504487469998784215370273572680961323288025893527295726886499176223465407731674043802280671531714159180046749925889922066671129035986103016152057238193852299028176837624020541699776921594920017430456839914143382971315636431791966512092858372375144917167891380897950472189035363320064692079289841242150911152975639853082142121193813000291647906036428871489025349748220277522118449822359468414580471259931659056270825088368636804318638468357213039019644905256534977934094510002687112707251011988044659513472848818296824227664978468288789609820453868193875265607117359843971262582696600109039256492964721210643844898065600978983160072082594513548055505787306939260714310415209422255701260761496184012904281478228744695548459441165067648086215871949471852278215297108638828959027061114258223999962098558014465108670508853771487746538510257515436292957702130345293401127126285909577857995142030208605582155155799509290963893856751356305482358749269991966412000053803327929558182504558018829088494175448292558910891835584179007439559696025336284164575166684922255648624001085055445186676800722582391789912007389864719347519480283703077125506699594870471431634669662320201275311744248567419850061345662861185526095937146479158970860216732123212842658096499116131381637159460335075738425556143835592782672562426754596250859265335336097372465533091722095869851451526206376296462976692980993493055004643480817007979103944236992350851015401622201241206620574904703054326242452270733238641211896247628549716504615351668110996546747831711666606842475416346330804430070478445501024239795480639835856174873940783757981916996238966950290231906293090541672334286595129341635974520283414181423626055151166788083933017714546358150038508369776493411670813930253422027041241506078274722246744425762620696777357844300466794934131131348386662288783286149635542650189124723499881146998950832375060081462241805701403112531197233035581970201854122931201803077850226404194523807089469006624795538612879619372169822454247355141097818051908121243596866676212310369156168272650122989319112435091299282140208958789540017072687664403143125028914779186165826937474361429059458775988002755124003447870835477827880358269128547826714547448206328513560854925562159603090344765684837181639530548325800172866671984366276022716407494986347504042519986102924186728295780238197852901679361466912264886078231609077097572656138049748970484263219849781972301856156796683158409234397698546052310032717626609726657864799585860532733189828550659763243149789409193245625000971893166512762017240842249411442889942611662159585813586199931399615713655499374600122796243940969627630948448754990416188941828181557625970632543678912155004462290082410839883756292874686191933060869678914067886029022809573404425022417852699208654463112210594165735153677420208924900751356653633348520022722683391784560997209643582299580366283128867767467324174231804190308379746813951561586590857010179948415116848208756917046467360279208058299374893291539841150038621458839822475843831281655709191867024407088504583838637658727246362280943306732836343689257836141078814813789981750120727173293220011232379449307547258359512614487298684921355717502883748196225654568418586120535219673493875805614589468552101281947384714969750945196942414035894153341564377845909548500625299853926722938049469937556903854636148749483213448204669439692408630203730961495871347035138615387830387772479172394510381677153177854690705370867617475663551019567787082399222990381462534033263960453260168305300201823464395135800017864966810038563783162639275699621907729651872364289722591421703819225718496237727821931385249847988087884790865915767358243562756753814354813366262594377080221046031947099864937736516300031313075138783817301715524186884903243970236662786360245260983581017329119886549395257225202060446141643953907064426786024373415411311277251731151887206301417281120576133002825380474371966667979673328329067081718911336602123350801730092440196690641143924357918670653237742703418058904185712828228603041669276735393195996695050830013488950572321855985016884162075499670432453884414852272497262622370838970407205899569500936623845784526840999753721986018129948345470757173405541404315111061906048738804495484837478010110543284823016167514130283954527997914135214939338672469584944428685674243054096469285421308582039670095999997964574259390140023250470316314895855566432260451551916808926114276093378862798088292518707382827030362425492194930739469486570581598950598638112457229041104093159751930551307736428624237798594398068119265642800172289719765884232194448255255893730476953550734436155785192703450085768485280962537543414870237526864073048149224296825865123931545903192640890089987736149981449872640747788153835429558325499323140695975903078575447422995107721095659251140594620370801827560800248948730811401717939343367636891337287555345467936476521209464617741650947672808082759134155722855453871475219746140832214754031383827016921267833858405863248279309562149979035345009445162339541641109494963101335945376315738086482935636921323873699748003739719210987238630224766087152677688477627046345100747425524568562046440386003294028789200887325902169745741717003243218124368866735620965734945669193448591048100270148454307573647965587745220858518037388872747966683078880965495975584672769773874965349340617018855633624773532035374235040559646866227093963007548652187726330745745406940657520273467358296094675629596565660200828704694567714543554861209329012907011337262655726548493556643719619890241810344929029998094830379081090602259692914998741692437337917992033941196812608438494658220305526967804430019298629552830055813451087948043580142272851117307543811797657374048255993264188818105353230588736418136882601854503314476373369769068193269943278744853638103461755090639901680222687503154803327373424837040852121096691269056137963066506295935517258237602912601233559249875369524486986910837823025448969485629096501540084872364167951695320451486523683173278062079376410677520553619116916920818620953516804272213504929498748567527366665147639663839422868970360411044603456379761922761767808390719034476771208668767090073078145679191753680606756854901403203644983656260082263166111602059254604416394338431524743927154044674560259417215469326505166133613103676686353229906595728115268030035133744220339449023307573943589932334139429572205711523503916588873985005869796956810231520971372278034359707047488262075819449405127399545564907385337153106542428313558710504686263925459764541658429903794927075795412098077505239142679521034270113121385697167969209701317787926542574314453141580603518422453722354994549120584026075997300938303975438068968946505597340864589651134666966874082707908900130947185597206741058073383967683047220738822739730746875958460649587802009822286036162956814376336840046012034048288309621960602313425357952250466305453297935609963450012394284021087349833152918314755880100970932963671379068703021606071734625553129056155044688631195680993128292613196277554083120567106690563744977060807872185769657346856480710863184188660737716388934435385086920107932606219978961855223952513328540220727814869055423192552098856519639414671624254621161545472943727860654041948309068032714031914497449024249046018106275858417909263072669493282825926182083625504476344398105232958628510095588284445513524636161945751154625957248769252847527271787287720047874762330829140393060221519962574741428615718417010337446640986774587765441163353637489878571821688357671806707236986269806893674364326067626228506245616266053100543947576359283192943529065706139316517022011455049692442122530384881120127751638508940783442793402852425809609485329580264963265274375902187236396088026122868065379440393521574199325561310231865944733626142996701469398702730400469230613979924785959771799483068674137333541926865391088343516747916221034460640158646028232183168781145296874146178029688482181972812368041470804085033995526183446704005310449294688204586399949152601875972090007022160846151846973303825716476413392039518474252478866877409552348253255326586678826337936190963116574810466584046261314259410760536550999504259691203141265677139544577795610316961037618797907880701542562883959713274703864614997854843513235525612032052328325085482887882503795920073770541869947665511098083657203147045503298829950840900549222805220166611733665560146708114972241710582368227971175369534709159747419841491395298094738932138547781549730789574483014862572304199440067253965403081602007654123934432286415000389524405048403335744382791454626285900632678941358799143301586224849016731829391629542411737942606424578939474655067895194423041978211656619432258666436654566959180283369315629434311220260756733366400319688341623465886728819274533982950182618006092746021954640380163782119483378879567438735823701694874105052878321696206981759940327796154109540876341982967323829059527789903656022501163892605801042559334504055000502931190289809713887462873296334156275213153216088884642196455623170296233307912529134435827502452507939307218730188896351930062555544217975081451575084998183659623479197147880257218894553566268070112022455134388382765329640562782206846752009266246402199033221544377338423685237253366214166392665313658401474778846084604020070671465123322106162599993525175910028314132918718218069824340690417486327367619567117090731629257194824303796418965845060303460789807761644817330929307861933245902053929243056329275654261117596308981915797978938665791511922955228967247139362942177888985895200527843407351347738122224412561359664399049509826672332996224618819196758573486562292377482103400077844688713108986509624928988414034385096896329522641016475964064348582917951067917000517938291245392876401932951174437301963313933704894473569699047421340141741580331831553949651296160455780574681402513695908387721801951925404160049840372625756188720615801693434547057744054432359966816955443477523764022941762076871922162389519084160999422797917462746893875143251064572004436931377372948097410498447841879950997405743001346937393204089585543502061395429954200840398962979086716163106360276090070160274003271382929371252392989411458710886694676781380502184861166797734166383315010754167944825637040616652555510330395486578953985674542195855608979356271957789087040596845524147688080082681911517377613024530083812737734326586196156326542961144867615149270404992153462972724045125822293122512055202332178186166802383761053449074163979952872757957115502138384104220416680272137619967459418984313048063029760651615116908220061488839612661144878125055288842531523902419266716113873818167447049075679560274042045839074504968592789931411338717357614594158791673534803573284178981984476324984100583121080627288497887524294673839504468187619446100311245996426310246466453638892518878784888385603745945966306204981622405667566315177934796057510574781442002860858775673295474031652709104837484554314369237355820871646687302898066656635914473346599455098930954031709951632737953130515294881256009984190516823060276749591151512313657734487475103860263817756359447031280185192117376509526782238174022279137206291021945043063601687913253690429321578726446027721960518697557045088283778399820951458370973908450005874930823792122007663437564898045624244989681270207452706153952038206531153366747768677395462784886182699501547018592818456860940329647242796275190712781838018058217666277438947582133796393030066349984999804393141695553791911553396129156483292145630051838927770965512747009561563224666143566510529916811134739924266038974210486888121813979118338235761790054947812736366983492367652492377257928129528184823182243621448873819444328028243106507872865947396608029187909229731325381354558892328875867800544822908190741419179512361807941701918243327145979663780004028617421322958999552578891176193172352996856666537871767013176787638563947045252439914264214045151255612097552152520784936909857835780301738585373155077159061917498620875149301434656772199644874493271466639431269724117029599386520319478063023394807534281074620060929279324361820769635211368814868651473466285248738900812203183345769004325458310062914531676435984893544346105232909632242344611392582473799625841710021555616937324363994296712156788267120798169791688066575534228158407706423071677185285261370418823969191377188122498673621652631890076188112955160707254935975444103727246645915250321310204968477778051942721486290423079929144194358544819810005761670742594696140959913910992697590073209417767202295011389533074473613015897989107008469449116565112630465033610103547691415680835127201407078096176259946460738816786833032893611797931201736956244804773898824711129128641985224652683387321409546337907874105676886463978039739245108392555792166006520312410775885587681801146855846617285502828240985773452000436172191629256317138596852601862318868526019289246764047031861592375760330435986187658488582461829133255785010937698316908522348164301457012755159069680725569603824041783212947484315284697044475616982911728046428143197829532389490696221491937436039961853353748829763767174676793545413712177528544818819131112754456004837906340809638980457425947867462757749758568480273991403899620659219584341472165706703351839973509997555965233873142707222628959085056354667602051376606116163847601544913223439779532529657447269958242454344775011201569513763901104283965271151503841469779382586621438253462856554237526356321591713302433482994210770853727821122374441430423517407889521997872717581372053548647645180607701376137674464339595736211022588479551716545617897610712049620774994098820682495597156960730478892692111904808943172797501279383825131070652322966159799969105250361284581117409343323859629562045808749899475307595103512286449626192706565788370375080577095249736155806098506465946316196974524659186816363123750443633240038602331908602819012818825596750934416273842462387821711699734403252298516742603175828662507644665354446851833758800958804651798614223019230910924105291546533782443692572922339563077573973845697396444841194301742644646741237116229340142898035673398585960052288953411789440049101590636877915884348408007871266701884435727432160006288227308964425661906771323214261051013137810528072973465852804683812650704822894319770142041949411009515292231206825003559797575028749281926695862058438764279159372732800457005057489595403434429273336561821792719469697573478172730429952090477946456901621551108507623634120435455830989665032846132520298860806441035412024377429999202440443749901307101209971537103399850343346210401678127189984035684846661196272823029028699140399567919084765319381645459246550046383233841241186260251529317289938257844997667665374350062799857452930652226795677891606473597948740354357733429905443153285617343300860380033136940635985443796947501749732362065141533148685707344320036844587233272030765320702271725953103885643127864582053385158314558618821051726088586102772943265432102245201411888852230628526972600936911271732876227557111988359553513011584076349574701107723693411817307854209326803149911135653382590848384093059621584311838946375230187191248453584221182917618767617446297531062373661752209210489478581963908400629679738005515079089201507743053081640624105615194126488786171239173897667168624256714751156130602926446170835364717317701104125035688095169488105022224348674337699515674739381650447061311168294258721170384902999928685499728017281925915878262293675371461973722008263283075571246431384641019954387167872560666085921361930811529797303649348658645479128574441825877127319122344203407243699609877633904790420612208724093217729053757412017448816377462350872777317311967374413060014004687464631120335720131062685301425328452334479981713104514462245964026743952310729761733137292447873931359174466238809390292910306636605425068127727734594556391756027651895446357325783121737223353175430189818208984599040939335870957641470429863708095480243847709610761246520728109161681694254428773203914409337131657603992965463936092515329064986933959760181668113095119695380051810994742509820573920775717116237072942518351376396937395497396030046490071273840874949807888519519665097816325978811254726168054781589936502266657082766206553675523014687461573698145272693058099445038968236546240777672093887964401597205360599042626984265098203081561510867782272507728458843956007305078080666657097850990041661563730762818127895550885463531511548663747701013898574133373989151300380396684003106090974895318768832870538229909835547640275033180969188629869055482882926401599064374894607996245990767353863560438066812868402694518905547885349478751032675342578206627919629575140420896515708794173794760546298643075662388488866426915017338461237268619052281417476996147107135860619270580332864836420336665426532412895176295236474569111231240246338241538383067816984761962243499182634121653996667637232266980918752402243220452024648756231141779670723692849670448688352568497568336501706062531905625101937076594975362130938008307674045310189820127565439316072982704536063956657354723677306567095202385004735112758942007533788943766679092834150496079607089906866518996282687739282686653884982804649770174816737549466698808262122039790086859350453322063615643452092717727613465678540661122419918698790580419421505992775937579141204797913859011437431526503296113823219431100819113641168661361501604254833059913259848704528414567884117834711209552947685234839420744398212652576129472043903489157753481198233573097008070331954475445557146725462881229109075008570277679082290009278887757158920126516058407330229593724531931491852436828405537627992695177089931296509350767032646723209343186997991345322356294546108962245637192160539634141707589819040013218652912868592347269627216219209942694457348110454165074896919711926081222974884646201845638984550893414769722168234892131251885981373387151547990983700885064126921039641734749742828479360922635831585216287322885056024460890076623261688304897898070377666099587787608628789297281047222532703056076336267250369684649381984317755895331902118985899275199344297544288732113855915055371000676975162180591200356998058205207522274797589136182561353937547565586016953668889935441799151761948608109651943885268110270038359219196689770180390936739345786694261267200486778762282643920454061542045343994024984181022089928110677624079646202887945237496959641571252204053831082138133466466573151688705715480312387076330161082428332964895781768960819082192433982528590261746141889562363744545696837608798519915733958805504009566909590556330422170568064889785498161012586374829461583770856321056075717601322720402742303957820388027147795496833034018670160728687006285157054080633651605142342772251882171728562009420132120793870631023586621309169451828919011546178664448564770553251573457409092215938675466932403049464327636002240014067039736046346415305191913486994981963161244006151860065544829598490644674435833596804054807696940393577488364350100215559065237230341629498924978307058250520880880145040971568433972826418270904580609854330603815225507439141401028933580905781893869134037636529773897889717889898894304441910797720389583290213541525989677425784942667995132380801730118111250942002294494547915820266226816121585231106548357832018141394513028598605667274806121854134599703497825513039364001909995303730994411508754060524682343558420782719111491305983202598667819812689862089926441886156675635054414518714755667774525193673573936222287511186957974139615865413448073192037920946730161130959811218074097100595059447466418968858641605016614917448299287354598687730401649896180890901348412714783737424103314384520039095731728864415314666248381517757642140790030857348084102546468430673558533641988561709921411502907747729104022606068144220236176744846287751088336076740977414771859450049258247838799640706118918897144869247822036024284611913596932600816147460066777945931422618171143947516642763996386613043366612621731681321773644898404424699436984529031758701675063513334619562511020675436011632695069385805074569607875128242165070465107806485661147248673531617537901651137296532789547924825135318756157908902324125657031431819099077892293042667106765138908369887574980662587676023659795109014885167239107412846635351108047151553858389665606858679679698186623899700034082601050467450328800868306275550291493497355009930490230983680130336927877957018088605056042471555447597016891969145677704385030993771853541137076577973387056543517470358638421285651237825480188749853162208875701074416050140803697242506361998950002692205546316551400017949310385891026545244428871033659508296597696811456763349851608641522406970968102320698546359781063432024154038296847511112865808596989931470851330199821362027512830730242881102227318348814385510791896454168693746639176132042140952499767990002042299549761108760899292156421953229352477989686202275307857301316942023441633977014410337253067242981830751424682107012155501811398287508047441499906809598812834384586021254211792575532147267964177170934096909538833556072480686534295777190712087101831752296585126544517174847598627543399051653733058341356213511050227287999857979643539288690313508640010262088174474071462789533614372085961185177445978313973818004484157182440627020662422224829425798407338888453063274041870686416943791921723420344422822845181574482981408107654897532147525322133175128870117045087326798123487045267032817262122791700198737215767975897663955738899183557058588741456556701945521600038988854915870964405777857200980646841255206589970146830996355746154612183966331810441403440059048485116677590017272253028873961840207060086145450061965355831075188476642763872627561640739872529691678498134993781487913394095759067638328609783265905618379696808617980873446184209434635845258014070888693650171456379526534936774942046128278741918444517600682067069564736600634979376094793797310555433503586767557390366689046305733008304923033278393127082704223059381869378369708142605061184111490508572450922670777173932210714532793112807417119827788405726369722897916700682299197772764640332447632471257326866778089606422219979143349830349288898351242119423003126486198298144578521288691394512370813899525359492381517664144051868234809461733114628405346358960550944040066388168494563951845256767807094506103062886968372277974612763403501735379579605909636076240392092825921631720507360687975992439737068270919953603031375932823210174469179508464147079104911839274277581552893950416323124670588207005848751256644493202387449636483706526916499214203722481965878185180019593788616899613772316602100113288095812538342734145826855144889021827425700247771241692852698781441380802534427608705615297157456463405973860130683302880614888998044753737508506565896860278999454966642038253796565947867931504813847342468175210295201582929093246993870573206011466506935063609545534632971674286362474640209743817462559088862169476188459106153413754305812948718158071607123086909079178112488900573020735144611706384885981912759217352927483181342765011480556724053307386882179006235366312113412526510230773712036267529286128430674436467542413433628606721793758282903428244695387415657022453154769956272435695195592341800971503082133541916918795999565410273173346019564378728476630314264560286754640598600599357662308258277399800574867141246712583330709828486873017182207410120810893959084771257555249700768041961397958831499852748548889028342711015832789191967125935995539050681465493212185688270834100072623956151123048609560321225639360317961874731330218288026692670251565893581337101329278302079525299380058771244984891996990607792611363563152949709127285455734407200492790839236477154123757630073962229354235037195021980570918572973180004856961121013739737504053496002211822407337001348520991746126034815727492417874955198908947448782276771102271616907383190642688787019547386144498357520194828874954539588277889994472021164032691971558874192937009130665495954811325641874006404381000015830343066723124459070285876467580289213107128279374087450876192654994863828967258875655955052822591567784204640601383595287281021337026102037481892976065299466943277032028772934557725925370923650462623571659603885871228790107041369447710128722080537134744457560344792243860366618124812294945179656405108132474919445410911723854101689080989118864298087266826236088701484041075886637670246355847305773070879139600606155103374192164618605950738447019069716862318719910580316449034287905496777731979282030576424946280602530396225174834504053389282983547943761302261327769204572391608830393766466926354583415120893170351533016244746922043427816538966175458949322146892634434541187754987310961536523332073657429461335879892063682121919193204421557570210343104668246021792925487918380955976117899790368589993687250909167252706210825183622575418321340774953971049569374150095371830123273575874491607488906957680099709097853289423684850385732866914908864276516483722031330848316974634584876074868037561216441932751338747143467746313919214359732495924870701468782220830668040854712197475236657016303984127961254714513077420709048757516832210909648661059234310783514602363934437598635855970800364879188963962385115985385649476459017441532812339254663614643605402425594082411646234497340511340020496183260975331223941415084623574430940899966276713759694532457704446176484808954590293099354936080551697937265260472447065135361735277122126750018637579990250451525296398857323141190420450765339572662248800276864107115766790107040228087686457615923559412798107459021377481418952218219844650032520066726568622581855284943701511240300972291044642926956588462971160729622539985619256116899272331984426150835629497763432617322687048452297520977022524205967622970712045551043427282808395229634868583960331108756675999739867466208474266797305766220203287472175166363900275588677614350319004012972127839148053596695684320820724254646395914404085487332428140574043600820173425211869236262045955999192745510434755408019531416344428809072829310591720598935982273480741240566957607191806811521818956852677426888517287520253535560505442155776932207819988728828194477636049777701723392420716496491789690311064719404885915730232674203468880443368265145582047112913703016839559595111282116799067440954770412791614380418981082289666716221376786075808267838084479822663242034478300989517208447222666283308443425930002909497146067105993944330532570387452630358375156096708234829351073970325064746271866941825422543159843563441913713040409768245082881634242906356384573406294665090841407847654527937607249790386229943939938618559912180815068403317802567394652733458103657729700129106985368908433911774687682317419206509979337217786651609624840128216067253837673817238428115923496339748528495728463283275021402655056415135472772092752811152588976228132384201989453040568921489932597902476118361543034817181967556857505959515733485733875614087366344356053609566908046715952707458093520028251237561430004468504693379748350871288440493297598521284005546622806339223186806131775837707371253643455629761296883487971209264162719224198809744503973630627324727846725423651214619761698465595285765283561649176607164195896508945273611643875263068975144621908281875202576359267290262001253327276395655678889999285577426070085730616605895485997499929832855093092860124179790312113490271240697461043846140097432395514560857244814863570866984068839199050011788520798799761650267826658617305576234930468810922165779863682216379467386624803204662558106059608798596442852123761738395735244533314398286430767399207365654636143850181826300190347782672399556600789006610055853601181404046167522704890481613191176428735065478236073666711056208153785841597488680448534446992103520705748922051914633077027171880071822358581368032065518113284988937811719048593647937947411744053641026133380416969800014959458016235251785004042968260100361717676561572375966180839462284109772553760402316783731503779031181436195534234190326358514255637904695055100030041159530916684931124653378134187458927598849923486537638992148092479556603068292353606280011617647717787517448124177212293637784275898106908876194676655334725286426433323190579228625396658630795921599510986073878664720651049781463173424021265130806235109929825020369679580165041563744345177257528797786420111125642436469465204276206716336547596567585733999501150923808430997288997739608227690875443922194358541827090352009517518515421975012631670923913770182747289623887064602314184723387438953276904954134647937983248568051417193629178700023189154674924466960555240878955135812275134732607178467214256017758081642670630434463910427993711241318648450612085572162815125025843166857373110351933676208051948231185199249983506633580004017473733453723738333321380571393419822747012776532559199997391340867522891080486078037894572706473097586047179534107822646473274179597497581088884986546182210688901173657060119432223189988827457750476396345176596111164570155107143902167875232236653913634359966769099761083791421409991771216220918283116079859959648667833709759649014597084600690844321879382476845947457203114807271162196659830823212801350580612258204879895296446938217343586392886697815887155977922948113560594501464842135130149126529816327820931134370860985986075556355055725516083062437732309683998368625250948994628570375543854351385594746733522866600733551407241302318256603578494441225013634747637341404267558576798277541491777568747811153311262281402974907008457336071943622232298736695154787095594621396283041404239345543408558610583431448124189918722090777071927445328726287540539728072500531548958652689464164420217753088099658950278454221142129999929147913876966038794246520131399519257992607858492694847977973093679901554496510434935275472530344360919862354447494950165393765710549631296765346446364355001799705310919334530940160351226154869817958865672949522370256065952604262981907705451253356308459895689722238429618751648632770208717043839788096998311048265332639782869716423321048005472388528352901394044006441719054480596780097262892438939162212611167201370757899101459332417752548851843958927110055606343574996993273808101225086046647201785865463695823332057227920823201467655077782300166609887845994232771046579026587343041521674379044309563396747891761572350153219054059351188376832683735238007804967077047362518749001874333947245909016188852011921228401868279414689277519479913746927184735461902010300464554723029685577760118579852580940921629438118791330760587679954933950005146525665506771067651617093743765947353460754026951036382346082954811533192694846406216726420044711938945409409919319364582135254112170675772765276829069063288370769091711819117596806506902202920923625461941679245316099664192347212661685299407732827220020222337405898729581262138341573746985081787610225687671115227572386524348962461764943290060711519857758411070051961657761954325265404331989493294179185922599452679260252208835865075975763742743183692673158587766285496489138165163521505949683022405124650678631881257308370273145911940436188216130322807692225688490182009253856456054715904313018845694796458936600844942063058508263528188293475977088137835434463729305457437582614780120591443951695823183721327280031997212941305699445888493601394518675901380754440399033226418237662313345636231012623183038944009132330004363446042346408575053817895129713433775524354156565168499962659908088121531653332129283141248743221919616981080962450844390940608368898664944995978346112507843851502288898050988518871980432224044058620742637367485963232146555304380941825713661280213015656266808843607510013543896455190747091815549810644401410596279129689061641475728855826715291966610273167333269511383101117081866531080497458248589158569519675101631637494840627681335543323867532460833680523061452730229331026381860699686770898557558968821475928362974423027491408596788924772020437973724389061748673167706996348476683526562596423864835220340831069167572840461162056708704194081930468538128826471292414129164928508405678037982126831265905662333096469365454120645530271921306479507157822929500114640006801495813517998791402873631309790963707699568204309796316562322713073000304821486791006413875137494393360977037054734252403845810742232482666588147619566292180021930780180260852548454517181891235193927549280735332841420409300859352674477796490898421232465987853085068482457041353080088599955461247550148396183308233555846805440860781221344758706651059009676880527565999276666811640455623103000757265900433958338202556564183111330310467686425970107633566806558071765436006653243069752950770270555114714128773458912033241744166097603137131332026230413785914528937607767730554883309568910785849979678607541057455040516715016401421778390495747555612743928933305038032234202335128746912515386203058697934154007892606012240153915976213602968268493264590588383141241322062079079687539190238963066284801627266268572681253060706200777364748404596383701340788418315660424793799871902268782331881587782091069592154248532603902775308273999959793420318011783028531143038632829321438097363049461051941024948217780227915403434313401099526827614321054169745172238047776430994300769867698859395783017669453643755834999833461778470978251728678850297298010964731813731486167306419511301389262251873598820213388853901545771375666024936453805573425520672941564014672526876667661910725058136611702376012173300333877409762710464472738616870392338476642516527300274005547076360580018407160256759035714438365622673553851269494185107832949927582970782411285174106433943582035102815593433350379721792723169431415059761321378036707340847205950295365726391662146652081465705537584062217768688870328666624211235225848106664815384352268303421929611685757832004234266413139586671058361641128325563153157538640051236814235394533843949949092589964437408741877051891489956328303308935688831982172669507178623785292565385802050164445645238749889643812502540371435475284743449117110971512786385436886471560678264557250164176023276666577443961435461491723607499817580387235515808078764375852578758653495161571885761367231527055406400241882244387616286966678083271466026744561858691663090364415853003836688846709227636835360173997947899635561661788062858044031693766318300840794264702888514087294247055044026796614017078351395387426730083417536121204001585715365750751667025329212836141148300520343743719961124608120500996351627865205893774942338816659904754163557649591887086435039995104307136511597897888116530822307057251978213323826088380732836172655136854519769120492537916957723760471717320898351868199571427616658833937094989536506159911698579936826301995669003180144191875842609964080162601997908947422333281629394384775385681758033878612276707919359882501119500188625767728560775895046656573744979640284233419610295675743400679802562979930152450627538379710030129718806490424048872682177725734065757870361642636159046382914516686676476394164031148514929393136302145887348024300571905897746929410739152600691293496319096540443441231139371806297369825924135637455878383370392855173115010287761596470426643609553346469206627523480780776649480182112642902259653936542771340745786233114018826164349775257205991654778120725646864728989281256218470181371685283316646146143250928955055691748482686560940764515619602766032289484213317034503639574281857219512269566374736862318910109419937119005078506094460664981269734818832155623212573261295883051323149496269507221082595791440682721771651644192029011087609163754490924604274001218530903417191860401569139933911514024962063755306708715289786537116484883451393551657949033660943371612315572753644757183671542092788225418788990089429803558369595057226155900369724735238722188990386774075178708913290599150623696904249800919303771926917373640399987114804622975151687917679221722532025335686892831822739029650219658315876347627844069184137576614708497827872732459007856618755887434021945537417734727150741987507478262079430213442962467232685897549084335205815401171531270813552432031977886329928872190952225521492083866611830900499727644484648286645188247617762042721815521401897037125449979398976602951345143979328741023526207279920289097359621697631010989993692691770226645337192659749298440997027929754550939137225080784924966234015572380595282998306598172707181158153983950637431838389162170834633656509760690220282556945024566569772813412572458660261904904394433654738550913691040864948203515167712255074026174039572964287342019505844823359606749125169337569549959619341008399956460259086373292528238321427145695993816940526387510856972000404896054130293300936527544113934276049116531161971907725646937155467285137204908029860837843735754493548610149958386056093870185593651908147130110654502717113455832987074383499358662352452366112346704194958997848641285474583326276987892952515852006257316914857740222209197335308489479609096285914314325924841601843664123765129976805360820605401977814350470518107722077575900255834381638050367931004026600868761717310407677893207751520289218506115398979465538962244295514766566764920099561890456491457377086291706417523357865471692442105773377655709381759172448388666229673068040724276591037954107904218673311669608563846015040885410774278151639087185732915771120896754370677053465700147453355501549160279316847795730218773856208282208957951107206649177774625929657050253064548699971356376244017465719275223931094841591497810135846109741032187312082918974214169102372986092041358458782158746490910420889936079149903908109153923335488210357931292251819676911689682747161218858592610946699099411212497302740714106907956658352598625108467342909969332751130345019863006880150607423154625182569726751777562499343533920967653244271703201371414353356974384176378890242366910714196670547878481464786005642637221359779037312021657076074142497315636593353462185397505357498524853033490895368105209386463993012911177670127395361102794760605869085342047211551680812293945559083952291860324700773348900303313724627836073203631018389655865226752651615932759563557488404706439624197188113084495290331469943202828493128073194995578392358044455458989182566552533775472612085371491750961038870402851564230155542216410884095426606444594316127254169831026162311212398727658312293641551438957316470052944527711326552989544324987606310317402201080256387294995106699357866158796661223234045327977434040728994334066065718428967488798254839831590702884856883344980658199778120657884265764238418459142950904657127586648556900106474036889707310575257208145345830259123612401682022414895204064132517395411064524289801087954494723082127796828051780493316979210543849039585394781316491125661117978361663898201578737535746396869317271530843319022160169944309369410667619290878994831466716459019397043440803321766686089523434129972658340274470790008016912058443706661244959528783348152978651404169189203275307765132094241054447479333041624377429780716925255010421754414283487354943892189015314364456035216788232284251039859094448622749798771232599627883171865705944744174728415616111846392482538766109641799112160069947473039545507428789405884814066205482774532433334557854251168109727802090873709618066106691231531180115266301792520101355853783614766892155304543272254951257600913127654078833486059739352908108224138445733408737460711427612892946897048900135244015612943869815647795321869510696993864047117551795531396939044810317378893537985066381020151092101727134751987138617896114314728906929531512972937159401820031334973576018078589753848932029469861669411099832385149791127950497982601107398442186135432989158343644409210904053545793281458828918172442472913800970380700223028261607005636002577127266193202017831861171266062763364895815558908271913196339901500051671505820038024293785922421222094927273609026525139584617638679494359933474827662091294433212113311635283390814139716935250468545392024640702675609945526415042147882996292140780965934926378074319131684844676516072163684583061075822179646314248253367755477677617101746658872829788469180464803396685318260337520588448151866522804067142046141620560133148719820724039330041464730444671919238243109438264849556115611008815561511719151026098934171293139483886965188900600215351887596515234479981683448392327664076035705773044769058059613319726598334603118341061719150029164908739552858951658859599631289598669750152338555838269941128173304113086510664335023880291004733209880926803997161621640715232879648885351348876610733355341787484415132964215048774818091172299073885500700993863821011377967773458906716878868100343459425359281013210950714844244040571230181995987965166787553092317175257565536708466181829134617890810767093756277933760640163302012218936840632471681224898494217652979686477106624506298881408156274272744064405721163833330217441365888547618176402987873767051044685926001044547315925172750901927914131842232110949486304622883455961875995759510184486614484770017353601428172844633873315013575416225730333512192552141045171658385415999712603038153100922098036774775372120165401355579890437281944909459152968212765227100225146316834785925118465644644459494935839852983731228827962892307463102064230371876877385851484157778435962622988620958148468504030508262942560804558623802975729318282438155526948227889145477191641637543587845923842599167444821085543914169313300837474386554457428508539231569121343236228195178536252286450190948035437677617266914404920865776427923741311322736579783430510303527165786878047629045140419673661079511615750900527789180840738420007617760383669618444166227481194325196920478079286044566667421601640838947785267904517073141184188780498374956968225434784139430714857700376892652712367680147253649874733107366029395474367382127932016395469633755494797561593718739614410482544283869569806545170557380228857698894008131644359769426611898852520180540196730257199768546782236681592050626151558684632419006803973548542034598201340974328273068430561604933711453854411550039474280781915309673545046087375291777031217431805016747058693294097065923932879114796039140835295426435772369967351240549623290572174183011797430942343141716614586091604035521167884356551364258235795988499412236437333293843457106403429005811329373208543100919447227121518620377870520974897803554310272483128006527090476680123355075427327659372124345315956146653709055291223040885236109992113916594648727615060487792282162804779769641080010619662367031967449571232788650117949377950000969811891025488382230240530340644664446902185254698050801389234456942666347300063731830581041561469810578779806132704202508828459217219952676858616291209398104178852178768806135025348486685352955513430675806554166275047498331256133255296541054009458041771407458831355473857951919856144337888796336667544188639555502313176273243029740639108746444201784127726589403654236398290057456345415832561303810343420875781172952268713768284664594027668271660368127705614434186814788084059256922246323627729945217262767056538520597397775271318665402248230759921375075060253231035004606472173515612845208503878579753859124086941534957738815004926060592992056918268179270858627112875897112596018207510672799868028854367964284344342857716879252246728735850750674602496463048827407685892474538389274031958322707620506633445955505626606700909252145393201606619913511469496638393514528756852243832396459448239158415176731563905006805705644345631412774838077387630240412886949623008820448080189164329127816288628260144233841421308519595418746463556765561806691588162547909042721977418968495846328941560792253336502520608671215105006676241867819965763579153135436365216548365242260010275479031956399736245918115821605646420980103716603670921573477590415552012490817855505593141474126891602306383398642603380599576012567148647618845290880592179520858112058085119632329709340745208267964380333919327403793219987153840124578566784843701391730323998013869518184428576414169832798548940863480836186154029693396162793525828541747909231587825677802994897489280715748312653630200668537559226646663680251179135826589949712003115566325331872673915637298012230442631327124633678798412384590759606878041425144482577066748508664630682143795717658185046045385536984653966048656640614251603356809449898724014716919652463221034069878264548721923318948481105983660624480887720361838773091436065098869663067387529314218849825800459453612985918976493516479823128569553074761508553973365830469005154703323230091378958148126858525354455385720059843830552434614490071676216668999291263967076988132619472613251191407907375628993676943667461446869706313954776529784031104844202103630931236370157113670907880873595489151109571341683015310566906309786819403790053802480398915920104822285776013348427396116567295923919334369148126245232293772395798058573159488192817936652910715476467807671826422620138609817033186927082377150527901776514860178478909773549338590547331868233272803589104699577728815997565842761846718483333707120148269097506108496720397404518089092059730496972012442923665872509448700866672957937596877495860454406485446904609716620236301117164570632412309006132665294764505164430689441397777853595445383524891607173456755666043217192293134291161812584361841124220212002777544864959607726025325133123082129738306704293746185493741666414222083254691271745481813009148649191585528344365361694006293579468601451460285595440124945788643099802251820658697174338345863003006211020593148583976105761957287158627266561909242292124143369098533393775405320172026758736258828186963184280292897018213170989939937757889612658559988413103462859516685093409339031918268305510178533830813632228453324873395902832946193798701814526543188560029312581166063528186452442711961266976252863219954649057159752815837956629565911793974227766181803857393520990368475189517246957860016129998116252693057237342896183951364882330220611271214784605514434234020383299970046466529122971022213016208591276398036937409117945508988066517868867349234358837601622685790764003072319444997297057817834470731990159854155793987341683604620043065690684227779180719962804203885323722676251297257811599608783870903220500437177750325681437993385721083494920937456811887341729845059983165345276165453918900292433404341957488334853853296032377973943852541673797360174741610911349240570092675254582324019618962762482308556648608004845360164967142889588244980803921170509550331037989313129704715450686540718611542938588479858360812750347551762356458785703254282239756467702847572711622539168826693067191973199329723623974218473011691273737813605015935106520876973988263404033199229179067282906724351902471763570400663268594181577892580888472546448089477180125827305224732709687093465122155729227418148335720033583761252596619059176028664111080850543631037253793401190700934196494306947458083432936990308087565905508707951542646546914511920528181306188198784270022996995634433207799642939477098909347656917448360177131204539553177774926474751177132163061952525010646413910931381011753006116201708101128523169491170565128911763127618276586715117469815941542618000954778426977827122230670131970001427545732373775706880840929416483300259042671069786249758908127788254927392837244197213800144717362444960128033154825339414121735848651994658071342570649180442173137882254082049705768056815021238158609525696333908523797749489579952288643354844315427834962628593008470128587566539528890850134641279917913918625343936672482391014769917224657472813664990742558179377993767676511144872982113861786242303307199086784220669456440337321813878213195851143392542584035334690213667497670503267618584205439965784401869882182047455304975103587458253724744448715221180505703165754225785540124801702770437717679136939446552108040112259824740162082050889009442567016034147622250516655363186222879672000397819390318589054270150280216196400123713093304299262607371397883040943019067723861178826883279699764681805559704822825440654570676709434424465470430313787763334663834843098287625968298518666925506714356708390721449452478270725396411933642566006915073737754859555169321734142117769869722127337491115557729832445717286421472979937519534689022095112756916979538458221590962319013074127849882777384705207077149754308826818702720362936118672459886823334406254494020291911852448429017902182529775146547522890878919069309984665957013619669567106112920110960238585006624875003998681404365463657169642643982280055202495945340083991320735086148819571460143930734519643419067955448268126047091501686069207284107605103869427095230266853671647790602817181539192531658961299882380095356790663972137346836192393077751172206187798068572439627304087422780437506620470992012738880995021431299802777602820297792204342138766157130972586422220828755487758641946663963659968613699946727988277105762141268186819011235235961541336941488751919704726374549092043630846690689059028480713465831090437854565735900280390078155460786814845086053085538510272387818413742026045391607057083251244378458089066084625637658412544038813656918066212817115263034042214015276107571425222100471386976421446734323882716588674269241731172822836545763842146319005019108586547121629335305509449999703589526998312855259528986680502216425284228086600347803103366312009605794066944746636659658296669551101175957646391664714867822478670791778614224131131891757897040882095236040905987414473439398629476764912738068618054285861777907049161420566767325652114556684823797842332047276028456316313792357122768946668501683207546047770074847885210576263563535018180941590680624453841522852636765147798043587284311299391988961030374838577933015690084519040498247537920356977506150422941495233559127166240748715793022154798457166469209290776571301456717215672193348631638229441543369102312961143335718084178657068498024421811359294717143152009521222262952992769040469392673191245981180045019244132743601521341399420486073887209497507460621337609060665046649696911538186738959334345704776919502414615295618388544417945652504285047988842398618456949555571695565947864013247611240063989395366744931459916304338173163882003324402106733254147034031814437697012793353375208487284725180325613063324820283360998548505330197611586094123551912466800923528032347389577700383497839049837409452482284735536947756496265672898813145646258116231880707625631151002663246965361924326757561346351289143474648722358352345970322180705873956957696182842617046323375754330723623924114510296550442240963287761513847247558557643016647944446218787089381955054388597273538748245228031651572532047270262050594647894918626589107448251590195351519096751801019592469489919076807074421396276836268462739265447577371125264466458001541923446842386447111844644393390588349684220009379795352520607031178719514894403321525672822768292389872605854642735793227741981227425092679437686307406578763385145711878216374404736354117035575084817308437350530790913636540249766999985631906375269711172379163566885149804901231972773204098398366145531328195524390843895096616646698976703203682962114441522472234897481271218968844646584078999401688473596373414282005345691481169125565831105167492992093220960789418047326829230821655113237506283175709028838758901797409168165667393212631576779413204225232434648712205408525140050177423323721572939277371713074433930010049518695530940632225472894503931280386801470523714253399215245792366842975538787337279276994928604955290713274354293311999846742028431526571969370267055254225947333877636365950327468677854603025137207065074920794823327321345038637895235023947663181016750965390909620843125680698639090858428545363976843243508631210843867488187658663961523107052431378604501523024866662021851591081514041941289707861814746101952266861166774647421615336244089016145841364236408636294795999624703027291369921065264847772892051507947428552243346860267026167013436671756757585390339976071639492885662668197600367584848929513785736143269208189331732410033508966933809370893491007947875427653099063233999548566382641098931501211898953517641761224567634686364743232771485954525792521082203071328136079567833329008904277118905790365693495659205230665285729150182214500080960912958205143088257188915003390557769193336193273788177894554434653793195257817616543144506346940421536629823111393032206069117228330292506805497856068738542120210338824950960681074368339133228111117675747112172325370441210353102684641096308527097498465987499808983410092404855496147271804947360146854860487959204986093495660784684484321454765397829616052154947574699678582160234252822002613602275813993982947616375081026186659718164957639466602818041554763512204756849128751677678415528749323584314023098226269896228055508145220050185556034545274522860465827488588250646975766873870653320394542086608244530769279109189834184922575134088845687802100165738076210852242318855712260699821274235325499209901067507211791154009978588179300902990843521304170242075237174328559336945813877936939893581410232185043197143771905136925007566367246637470270698216452196346360533145427241583525308216017534971637739860151513027334477024630293561331928576391232109710981388893219267109147757217155668450761986651415065877102970209099525126443913442680523537187764268094122321205635583632489066407901723081731638946513549274821704362659253002880190260675749228112960602588697501360667446169125349340794533431218841429512904664035139329000846006467084194339896100778732950811113693488075660468357157362908967072434604688460212329922007410992200461650828597888767255027153481313712164540132889105595109831368183828816872533962399247419133485033903200204424936953540796359737645772817100124614104085508363269886103964725777968798535087857838819520368884175343102702078450135917306850483832294219594792839763866131563019976063888766286659434051207193296176269524071750408478914866588377923833912804718027150090084244597034432504497247348668664204644287006222730346709805293036480981781967874269523353452638873744485210606113336552057950254645635639017867199814562583541369173378986200537084788277326446280094590561972076315308598903515862606791779594994797315072197609800923021808503999923781578067363776932150035330667772028055385949639267496952955931536077922197385567075084627430282740383039226163122907452517663907753648689393585494558780559506887162272523352696644958992536111516607604994228844393583691817253132841474480996467980937219924447431367046217559278394754684124469839197876971138701385190421982688514784452941377510593531284065093245011667800997291007076628665656590702024459022174997570117092230809810382872611274626923354184364177220673082678483593068381470262899598519684762729832605111189688708468312147958337859450491212915874757700307522847931309850618201263936640439909392692723226254831534820442140453882012614137238811909754077209806173318571902344611502235681581336627121870310522117623524110577688177939836354233957730261001307370945989415119844251244807566271188560239598223845627846875615384915434311564732239615954514848158382143285699811639681097761467169373553045510923589145249689168947380986942400837345559061590851825338575250392914371193078129138297729923260826889346152124395561807001348276621080227087072033068896972190069672582640467810283538515861159439069532952706961397008114710980180539417827029748334992805208649480752832330096687670645055333168100557184773846989310026085478815825841143652916573637556789085039427753276424337889917345846921520965611957202401519201678287396641523097078036264355464365024102891977907334526750339488145536256014806542500053787913358673214920960193163996474842577065357426577614758306484210499455951955669396245952878350882976006969301818843698518663437470890147671693782411992435222826266415959856541895934238405690161887452976733186129129626974296015534587770105619978352154209670995777105168730757319783216673695836321734768849343047242271887280123605396975834273276930871010601861904914158331752965505515732839164427279915819119893101552566814888834301930355421357844209508045977840726561549576816596271397316903759020992645499524800213282067298269078704844626575312729519935116635810970993581566957378329616511860069548141755713900848879451184937622311221606456890327343917074288623361675895041337718306454067650437782438489875879386151011920371367255007823364479938282394064496766769560205770847104196755376734969011322435687477848188168540547529522562032496936246598763786790667787726242494593434112044348449690258070851590197210141769737260218662065534127319007548743912020248385218632968005798134037197694266995935075614481311294384408651616424696035821590177306691047598409206559883752604107457682244464389052055836531061876717343983618336258391325645104550956354694683126971551285980804326867819593566734154292687425599108175669756731406792399653927528095606035937209863850870226805888002272319004923557268907622075101846365910736118541345025056820237578612063811988577051464305540869354001587042882132227883907682769399436529984285754429396481419154219972742751807569094690202297607686015246727599966191548268966646527617003498063726401459772670105491243357504469763944544072286276527739004042490055555623570512198687823051142444365868948209914418161019077682075931263455843328246785996200492609800290901217062474086495457894580519428413469145795042896400984284094316831618153081833418342496410124626818417661384049680050161315238596948477738484617500072587735788974997311143236507104605342371880692328614130042011348872038224475062614392177688872004034933591845623555544350865141552471586775901801912377699851289397576592790766851138181870267418222224151400366939531045885100309126098162697393689967827973810665069440923821575911945262271652102251439845521272697675747076601514685749461870959139555825160890505716065331430412576244155053754573898711216603340810859048453836596768238501782323331201972931369638973204696873874712146754386593774333841078061474728480845158978026396778367964280251807678509033053541864194542338605429322057466608476471058874936486444876927431929225236324448507697779030462082354765712625861927934130850915673618335540164656699446227072881069071464420476532404057875427075988280860549278251632879269547915084356556790130741982030426672308431679736005512636733391430486535749940630520089797414278234417574862148680895748468554215811894518714786816743705943799910132080204476928931685644005468741156650134558245825822509491823227628299610626081562435532136196007937571871774990792229800832660353333571469506411420412748031685711290832487935981450073324368348499218062811794961775070143138550146465039033638134721313153714937219070229823663268736611008073886422324243225955365660084662685829292455094099235473837110212305884622348809118199525657022319873111337020493231226907659424693871356669845149884547327210564353228411674598214609656961973243285173129129077583283848786841681120129458848253742829500152871388414500460700365819413818941523248532164793553209110888513133857341049012135435500033025072972027546889905329532709909146133540656101096200810073091449326000477193466675246564755616799514786741174234008076254741404414869397464609970490031452102711312142431087057213809972872452828046639584710768645643328576628225126328832237261403966316014442484129128083230328257708614149518586230070695342890266937869811902053701915016666788579980239397663600246443770196101276139901304782195307094205326876506976728248796101487865673496895454246624089033858449174753743640766499738821722337140877711110448727604424387553197143816742561121660005997120150742790054780785974969260511230587686191624887749561329595121542859168597188177315025621855760695715747352891636060248907485582292058728642928486146964432534214581833316907302135671726627502220530727100926328161454039282099216793980181367955576196515936656645261737300339186204782951631325890046239978503708415008728571672022300661540573271428853103116452944191511377174023193402449933001106459942121026992843400131150728587580362395518121594796673508231595989849904975950925734959764683344422498683318221481021981735952848585724430711234729008194223125085330025485008683826633832665571751125803614783410103215842096561110592060273331615840476346257362373991295867528477090129698365905908378592692171442695252900349220234830081042222411019586823774613122076627817573533401351737742770734486459222948134449242990447784078047980967147602126391041685159620256261776097808831556836996232264677324403468936311773263303256894750206661075027339801807770827641253399822815597278644188775646037605174935539277626236834198807241261787952615805062762401857744581751806457576978331217454828709234298134835068577229351020108982652898107996362809597844972722507849377900241808962737728735521653649043571005637908156861211024370186880106349250929443957952775852455425070183020001348856375346919336171140524012351960836465432222582342526439661502938140593096229256002722216225863163143676111048324020006077295887164338666157293468383857769418693920355798723278445442538936287693136605329592785322090179019308992889129091229082307993927111536158574487198921773933386793793972173029603454061697680588142586252182147651899956403295516794923835918707129266564840564576777068749082556752270120526618771766526264492441838718447512310267700533305748763331670605022979772551979813563622432738457795026025197409830298204198238395203538987366192875484865561116959650409250564418047027430627164964294730484554038472225771394620260166410474861094976311190658632268515918769133108961886325257414042534408808022584064649861862537061042587155227708553197000149445949229464982924816316665736951756937712913176083641720503293525033586902114994715915461731885907800641052576594354246181293791259008101229581382926450203866464805944430338261793640563005350569855925190855257378709560668145193701304287294086371881050470750639754004813110289222868829513391128396787068805565191137648484428127020684977322316120547652446962017708799795003232383778851579148653155323372278664395929216186923207097489538298874473844344656187315109430966303426690751292120832926423247865954198413368566164179861876463557225909787482582049533618180357497016574766234046962907386915036239280353435769843848966067275567104576436532613386981516506770521175443866813419064189006462924668116407876836695970323219419239050509708834940881100963239917693573576447893235737377875441341506212851432043453893090347906855710275314158163994544621080709535236630195708226709567156504712451394849021660756523904481559427059397620602369342235473793595777269576793641090305468350791638257556719810049808422325168442027377326578313358053896834484266539068612760943608660656904884202385225720592846195711818188225079801531180721961861156918415922163120096680333162452358146855779231937185246266499222624569636065711159431736257647275555503449275316904003060214042718312318654716045525495269934852445735053975907587401383415722633431176023121550092472929468007535417664984489990873352791704556487951411804541723456699871416532118658815649932017353945455509347223904421477114105716519529996135415367874751946257823591960440442138863807666561848749601650979460844585847214760373544311951788607619630976485075065730616292353666445679810491373097993866410659879134313123928747654539296828292783917793370688394867884197499121337829879615122970581280824008732158019130451156984031196241082557900178560981021336961647359704306324011430896916731412784494059656720443935446869552128514804164183724484156203309996413676641572782411648342810538959692426383749902640745530180593957188060703435994849618715824278538793523983338399233157989842275691665567458849006468391153461331687935157693302861545778640243260804290292605495682809103796470280493396072788500406569669100569128215131799634345871029174097202509546723426204823485756225439583086862704033399104212400005974633700692488538716633344933681372229575095613771048698651267449498552882362412645354963101499715698498004366852439481726739813000315161667608292877519551983840816331593592335463469316357190798875131824126254365811074719180685185595762496079018722936905238847175745926166455253946273653661421661549897937004954863263648210184090193973158758953549270940424678930116427393385975905050057540602718960679692014046595094211446411244435834328788305687188082680633397972564827767968195175681046740067232569262160470896989925976766584606385009737537815933445350301691547785874762625217458134180402232643920460720491324420585729472420328283945597379803961403673599804801116014983698622081159802744399664944750392591345238802390457303917874144523185066647398937212911588873190613987966763808701220005414321449347173733260248300752810292212916745223234209730703651171435484916365435032701804301738976731641909611412813654331668863059883972011140114581315763445988385411477533771855835538844838564275329636143423779516550442999401136193345126526448756244662002524780458379890030861311314605729151621820939361999377993403302838491634329802846406037762544705179747642647698952936620653305229994974792302458877484193497084726343617162845843426216047889454293187608256094058501071026033001005943013044725620000705856516380122811064647863563816468822149845697165900730893249298045872100162313530956942070111215792870643816055265581857716269374251917831651538332725852708079932349380378776975739156264369089092641507021500782269882786632612054106873551363045398785589915721871061138166359230211963878076261484898167551997432971131964058329997395257896549494746524766695022197958169652947360977955031659020825620601337861418507641226883620292846547270778677879070139122433643297098989560124440730493011510427212603060826292556213915342148056644662893840307838019924939169697203414042782335641315622240448641807906567938350443945879764435126490890678427177260032207262844512670216757414037955260259656280916522173941799136918681296189542715783287059319584438466536800502895841992081496456068415006767830773443048232748922895505998619602118340297368050339762872964634379590957700534035467232584862593073646751169477227990596934706209358513164351460778463129847747091328700592905181626221402990496718230881703329932880737843005672303885592685212509209691049057937742980653679652676660236099617333212828387663806364366228744138570579705168205155254649795046517026499989030424066120597842112818011857750053237272500192334856975996566928008759880334608332782089417386591237298685588772011393206426666706941123348717578680557548836267297606711974531941764306505445259636808932125229850081085723168681621232579300134120100683335448786341862850329800666322503415069994096533075002997046354054462186457843246382770576499600082267271131683657295321909527289672230107174665684649117104537649496994686182513804957945307060963410943204374223637281245708946860834334564818414666215581179179078077529054175208803195685084914343051662478568289181031925300837008470975903148797201711767343654769192025256273057950685434868689361598705652948562842106265187201723000221374440076308329550308214642461309705752611124305754976277045427652435555776337658968234070728665308841591013637548153362786383258547882922856086095888190207948079300204527643057392010331124071669855299671247836476321237738658168710245216825735320617446063583811458527540375759325535768334485154629642732148392275836757492568286908787603170295277600134663789507067087776488714057258598729995032888290362554777263104315922311767666672911272008985410047658223123133328349207052290472124584013667728286923725165984047579453679216095029497830124522250647318154573967588706197727150359670376173271265195547955978122384499982594584076094079696712894491353693974244281681220332485428302760925836498780159315947299141779984588248872427194883838555803373470484310933642787771562690615642353614314743641550901233524619723473768294717091283970546901649135914603833953138116755840321875200691791732694090293390066768777676995114994685452878421152382964985498835117888695021502995899295073863140079534544744118089870056985179392372856161244447670668780253573523091655136243072921160539955743432817366744783427242762156260747866044103640606392462899781470032600696920137562557717703662892717237251824103305727017793396698971884693937877703960469789570405284198931340713506095631485399383269785522205883405109858662950232355377584642437050968335172187281326098426151179996889462093283486071184801125105217903253390496435813715428369458220009511018634559739243725216437516618434934520173252782133279534242347502790258986864840832556442556933891191831040792682812242909830847047660328496750696661067191927231371368219233052554147777118887471141963267391105621635913494754378488104636278397085536898484848646954429112145624013852453423999658910229100266043623129569802996928158020907075147682304374946489565669509029400539733316043332225429556079257934433460374598377434955124536457280954642671473383684745200215386988901453222833813363019403766815484438034437595085248489971694067992732211140219724124226849981654202842717405886065576446912604328972790776379135640739468677284083594997800879326172138032804473113219266503254652391567310903302006362671888311321138600289638228432761463976957865468078311085390188210502163216414509715747212092083792853718524719298651773773126905665745034259671828431440893468591604398553717206801039395477998703938661928776653501070231795414697810836554182931409356814555988760465066838914657794068360775031690266534760555299298827750923180996565242142093692946889317873076662024939377968773344510500227498260556641080864753165693466593216166584039762406766977153491721976203520897013300247407188310329082383184649607424280070600509859779509781261907071141536490460203440025492291971589923720807293673596142693842466971767225967220716488481211287643211355644400632770049381463547106153064508258564011649226639413338327435823497167999056875998854649932717538186176291192943754874406235104868626157080014585511174021070658816512035314248045644413012855032000433970440607875554878264238848719431742199126269027764095206645244941466118526381565428632465072508409513776944005717761907856815977986312543739736032006644693903546996395766570898063474194931217980890249755227625324042374384848312006496153945293637407461766443165324652849627378290768898316613350062778000909365753043384616086474189110304757588453760872848721110741355906412948424342112861228918959046665098324926632164307536565812522272100221901981648995184164404625629390706304325810908076397564633146978954169858942499717996897971438213093495219524417586827759056887346239865124549140111678889067206018404091387664247737685314186561144818550464911731052034013434335055971564851597661110924324383381063398193680176279086677596242415134961813999205994628112060631556274509321201160310785195808899350711469071192689313964266990685880087999177847069403269598125604139192677935859657455001454975615143131524464496105199920314739429670102601999401344990747459794434534836187655189821785005311191112837681577143173596545026124249422845328414167048922081485566489419668779169255162486913853291270177582851360800319662934185809107511978665503277968042590808907040686489321812541923405180548738308299648589860143348859448127650547056903524117534100126913794921591712154853107565969987533777968632040357242743208935331097318653509287231154334122731817843181298489985449349103399352558903512536508248753857386738890088617533315777359558729308158701034816071348774984282662111996740885543095083490115381061383930257067796570126561594657915414096280569501662679956248113759234509785638423291289445096875999191647200021849989026292449046192511686444153093354774226547153470793299028052606678470173773743724065647928306616260012461814578727820159985494062218708936152128289006890244910249787071096512765463580183158058105277789569149044847404877562057360807109079821775166236813617773339033289598242388087508831371036837994752291128048580808369001982376867687884389006076549873702529532419665731176966667389213716396400120959319570058463350421573537624623216865618679269929920106917616690803411938475940072908555774900968032662547508461740321496547105909751951812578912838582339417869479154840089293815819350397705540960673839838792602256036706172593475165105481148942000818904727474998894336584988793196047201232712605634620260411482475923665327477708959258490840469467882160258228197859324252232503126169743343923606818572627270711454768539403496862088982224228186394689265574607803120945913636137320086590094850772460799280773812657993435777368710863183059633315648385147246166659714819196318468864605770662578394876924403222050516648031430004158700015803315490672372658481035165984125270530395783860002676592140249092291111534813621454037935493544972037634786997311523709504892359770201696191651737365537131658922944151685413262142532527527868525552376109514592136810177270785882731275266162207844856029362156608482913924406741396432307830311500637339865048370692699435645152557273026235784911695071607473164473433944634221693671753203729802076608252331284581016222643093595245079369670383823924592381054417205760713608332554358531298334479147862334117787292898251839549996408106786566694399556140028780520800132373001340776200716850213283963710350865767083016141259155440168014631545889690923265026355233600742391654763242808453719849988638661962441295953596412359683026664796372730595119758236136908155297408645722696040120548187554746029331934261842817645058290935117636068032735819924233473010738977190631338059551436129367981746321854613738719691907545816072052355784876245467134802793985375078053481879103490939515453052280920435237432423658938692606406200960386453195547645254630740659939658411239323049318248540882577165375626502141283607975828043761172464616735651639284500644689911415406704453953000370537909620737855630008234292241136821627555444355880238275102917637266987071754260532692862435590174874856357278951318398096886843377766799467247409615898528126664314045572340927003720887411625677812486745106812610790051726447092629314778436167525038533560434503704177766038079675052633518074519459981854007611055648182262622555038948960354678407966610247952592915073218234578042001440473078909953265537196338321626195110418513434689091098312383034255528836922079013583707901633334399580337357368808318517176491077457808108696310270801614250505362607189184802117430643874949698105036381327519879655665289892790883375364830094884074124842221885449061462218742481817336703067621388114313701672975965876775905930708885631113346095096334278860737072065313750546242392836382851883971526052263760401343155310900810865938800887688733326371111210976259123940182145379148820605183511532793565676260062981515608598079123193552366060992071108567070833090699296727522564468467282611586331576712843904431809470569315242064213517554719435462856645098293138499852698973564018656256679688111230967879258241650744498060995780683144392116501449315651383284591260577789690026439559241318747201925966865405966937126291377744450629327541582864160033934932945888268265821878248191328031457854638002622437690882004447309777379763076681864199218604439595554673227261442588495222086553332785120727757079220786930749754720335540525325637778844508357761247140371907415321127517582205531736052688160452405150910202299121901174715302788379220132113500677164565350061352872553590764368506431078506616945192470462426714368715574618541090295245952571536541303900507421507976243675386172211071686614900954257983010462177091872586767591430032327900826320453464689157897716043917526798260215265072759733798384209971315553458770591258455490143300189391401832755803806076654492356414338377967533594889013833286768457528569364024163157245650535490989806599991824253862314269251647257929334033737677999219974589806699514852057582247363006028429819730131580845587098394913010335452666281986068551096291490148918978352296672030634886712353615958586259249377630380228986548280763540917152198828636140699502415446031439824010902028597338252212061760586017649169104981547652324338994341338829545007802908525213422691457242151521385703430618966296757074869648192973236756931768324145916276039706279067603488867170223124307736165323133782369007550760771184763141097165757566731139194707201614157164172983166109375924904935186885778906818180809016688033387853769203214118482537351161363207323692575257180939130418288351418913088023094100088536354594051116271237403483631286477722231604234157370459830378374210759582091351134620113905900266070944651264672365338495086397344763923067839658418569544217228072514955973142353099946245598377934589404323879101504592016335498693004839655941997293018407054608615560754268018203359627143355988238749204981304899035848330794631556052360824217584175117242948222786826732729746117893819768631788749077237417422923901129788118602155591700640585766733015989922212057371454700295139622040140226453560646154984819304036976049632781864403286922960571627297616563947451591739101091674125250232750290664720857473902651269585541874659440985367962965186317567945984461594133042778112587961046352053042295975202088407272102995993441269914728969691073129288425433918969083429600540240083422225702699441204040923256195192278427269279582476147091945758561855950234535092464602424655481982389320842739636125842501978476790870661017689419663576317150671722700020294973952110072811876855233395779771977376091349874550420505758769359996008298296511130673097986310011871134613922600045897093534762040524305684578554019338570610550152202574811961464662672423280870899890217380228206822448082918854122162405797110956543020936074658974867125852328493703499469375950640309758359277961655337755134048808429867660448339909172255726374215180323551397338188145004181674259329094906725106428690662664230699599768665779308260743171406693770039367337332705914801025834511076078194634942216775281729441903026527069758635546431445426382926878353865843103490638099113217403104510839805924168991683460497105255788471976060401388086994466035157389510975490906692265415113842384783894622887236811749145143024801475151031558351842976748053724032467383752565702928203035549469930827760019658744802608698486536230243286077157009336200204120744153906118860655696411236916968943296195251397793101708464270302372740656907625702206084074629315433942322361925444285866689293993345568578953213105638089193126464014496010950546373981372040491908345777161470151397934251960519365539291845859674273861240348982170917309246474895755771800013490007947946546430332712990010238207459673380791472201775078698258030243087935288320713162678613176308377750982134794509529444476777763902056453682547164532398137050138080647906188929520320762244072818631334048816891889933640748935187632315302994942500674966090856390514412218359778529077092806021714274643780447187212641329980687129416887065670215923465702420648393472700835119725604841179824982927426300919523294429964834824121705328127860726384925267452667857642288251393322616578208098703193238372616846319116610342266553033114583197559322125992285872035206338979120714940561679210451538528225358448434724625350574176576289947844708034835095876113635675659953978634306064324146773186964088944215962096789219750166274441434720503267260894762832221344346452137360819834256471853634384153508763791399137583141108982033057992978643312054908631468544364756261559517996648824380289547795968208291108366919278242359881367190365133275780958786188880847038759644656015826901454306411140352688176569796594588300443021831811353707184586449644208872738718767749685562506883253244173058867262212004061872943105608258972424799731236272166732027548550653682456887414778203816265367632003546187876218115387507037903588294313896252590257196907754553112721144375371057579984507107118390310320475933612755294329905884432386721811640393563315650599312923233801179202668746175072415668357141123839751100341618574438226158830232288807634759867991685349209099734488069700998474375659615466236968345900851741537778453745137143124486577883294168203313263917474990567179407555922872258442338565683430513321104404246100152318362069176435772187724059234130453850607334283945099469152204258052319182245717304919223966903447395980652027905482909215244720994117604890700510772779969702422290828360337524835869207933070025721875281886276078868071701367132117000492712998260212663169641329147989202882306697483734196251097280770920508566872429124843078932744246414777817330609196670815270484754653726184295806428311208285198907983027423722286223378117923079673564004457396121927248955830936150279797652634892955681566249489899698009160505370699086365736381212921796900553887521509301330376623307199751091455593069450536573605148670541542902186025780395865485809017813782932404110493236341499936297880298664840869039554710951349221512631736242773272350306566271535962182723841757580109974674424681110567461929640494411460693680438767168262268665097239003462613890804194887982994720172813163203474015360619429779334077965020838382707168908216736852491680723985203636978010159835447948196150478524374545354066882911658673315426029373448051369517254119091741572722952383402616409564854316732501350031398386062022957655665094270828336218966995736909079659291420955482510202735981251685055079247206941310811445924954297736681718647914296003497438200393314413642390933773148977458329799942278370689081683086104949471534279899040463694448175999731093815461174546009780961416307916187434528721751822550257230600385638308865135765260298529196182118342593322533201435038627406060421532399586567521012853279119319924432866796007359320500241538972363746044139236146926385252389079195362553970871010974092864397154361438943232796442658178242084787556640874163170784805780195241598288176414964538618934521114296801977649099208979194588331463338660316325783826253820246257348941975849691819869858699300273346857619992784263567816884112562483820262189111658110194503058309976640254381409476191280876802145269204618178062568034773685076116537329041212895046371510136781582057763288770816435061315444631804841907089512341832048433631511550754135989898726409400171090512228003379570838783052416227593854687196773650557523492155878395581425668475243777811195402729235745698053941908481256684764614767813069851421587451664904305459973934397887799000750892879492767763587948905565468357363554465960605692382933543052172850990742381304531699359864170288398919575034907133472461559864881262988247809738926474687725961640837537971397694997955845620627544722036670868483922772951022237542942555137003491236823026766141862816412051323423896283907159811594664206512413515229404728438815722476536740072939947703602417271304901047425046334836011432523975070626570069015882311998873817121886108984276682852387616781656867459355996328733929120934963057002084074826803081753882806300763141524005714831224625510653136441024179526196431341471358648420639766249627149862463482997435535642392998232378303278809333660487203940410388102131635149569321054052663915140463035551248622842935204437372669983690382566510645104760161537640360488023527314526913694722604256283189208625958625708950251213854405555894920263803588642332570137747648800820746926520665715455457036595789987739712312269448525742063328812934948088429167058855057393461502383011004023207936873468132723756981850913821019358085412443885543035349855261443680757526205938451181885352459951529364348726627367372293896536031270834454431258269209983232442653436654809177852619281859024799913285320651139851888654661044212589499570315726980439821999511705570384694509586116542572413922211943709874342015121980822507316270261757612563150773980133962175029514220588067825805505284838756559207171539003654096771002052009205370161628590567875837977848589059910668780081109571587970801788169271630561823029861685674488960107613028834019433944230633886288392784170697523787268399705388806313799789826133421974693800052064545449682813181163246916107096279979371495001379859833577225085190009109586998693097776139050226073473780746297007044780797918938120978184823058563691730169679445673106881125102096487856253880528815503155328276890976445593427189787906863323830684333962804189105888296745832694543028786090469256960598478816340648035888002122976463110624566115807153129870322499679962815038590191113765578415753037562241769445255184637319592330564591504626306468485269849799468620858930207749646399131651201849615297027526126668785427230221287875023053505843537351966983750237313290682856461146155489536409434981677021475805785735953242111541337792028890424669668857804019856225623917065710771245058502367741351890569923903021773075205421701759941994504993305352718282225694761375668379601234467369197097771521161133924638269436595293101155170075122222974875720155650222993189512848772153432173386515430145568431042474239410057596497798795567641894120206604528602866837656406402652164411153527975172797780144188971526113755294985667254380170540292199325545419366148745776905673537693626957337590436863422518523625183908817239730048774253784848086466130551688957815111317186870881683095959321149950432595890918768243001471171565168739439041614027072180150911487391463590887806201524649917507953032818772429907831726738526631038839130575483503514227526954698641104228576964907753015281278531060787319934628728777395424248281097089143075394727347889202501210341381379568692180428103363785566949869512770173793884859754663424630314236888141025389485568854215824830612264073359737534087546457226927682036801572166334732311204344540020647730737417791736272288515256923816747404215851697808299582439757910743249354278071494825984966830286606865378099776138096803253505773532855576350449789112560651371526539976735864976337810235282788801399571463824943520431047459570204506607052398159813509960055255686622903609958892795472343801928953617812149130538691228604106576541325821732131096253895457287820241508190193867653657689210348390651112965951022522795568305871848840694589001386327978154431661657529118301168586287549916665548287388110514756280017361983945606026551727248882498708924317012248034856669516221145960536957852345755145539019618791543781041918822152920089607539390813820909093895939558215108176878823363031932267642338048588226419519949309309368833623461076223263090402946035840441091141266922471784710015777461834859132131409497110214788114281993884793734037510850389775869803643005568389869154443665744652263638462268716592803968278419761343867902900049715233141088787173307222133816932635084121658240918802691718097009169020254210459593129687137619418573527393970786459488094672825300041532522156022430425204777063079666023416404456100695649807881982416577889040833971726000825452687690308533101062453121121123866424393691865038542864897564845203678451457064001998041779100095795891746733200404526917203786249752524099434836334284352492936800530733869539518650870138711293044263741463492338320698718786014539349319228465887211103069731660238949536876884879435760327938870740392608840497841852189188030351160426491685877741124687245856545720461440368720446542173201798986009773376833545168689186975513024074909485100820822508095003423861846861855852765029017375926635608118264130194954835822831820871811643973955753316907198300121786861625037074180659391799526369074364615000551002578576134987560349289223045400617937633115537778862965057975477800036749527513808184082278833586298499282018517496677840226815490899371825481902443343964650874460037763216512511325953397102540314563811659028383153565651686485602663643651085771241062502796599917097187158712450701579816803811921598398472766722828450504700290553670471852688219866332079157449853073149344710688203883497861246781068227752057098663240296428047109421854691280249784311915837410567663544907628242481340158564158357960242472856267836238448944617130102332740660982529245438310348111433688931679430535967092276442309040352748370316544261784094549325183765450737330853000539486981223295523302755354395679516215782501885924658276867689462141663438844698315929241995702835293170690061684970494922352156901050894682682946076913667521557080814861133599494799578858525481851882727987282968246754293109223681832943280946274871737012617663693952612261197553957128096230002281722416468230107341970292053338592439520404261593641137347038338714001775862072081227673855452319884699562483015878500138608793379577359763609515545253512009887900121642228507502485193583091807801429100741479746272267586653739276345792215288107051693050367698077625324540832896215117632973665990309940340755064796937186005311991273478656870380920704071831673374176596047525599986318050009445054950901109074734074629244025906515128848371992952766960050379294870652547807218122763106324879950339374051232004078040918291529442093677620745891137551197724017458736987582960122018617738754674239007086363750419235157247794439789967919177466504930574612069755620228631081011408768967145972664581106803642675501424236741309747894934824878191154178559339408521536183849573163375050913330831288290655923795125237552965190446542559995952994616231907927624333876997690750674991942380031753861494948736096965484920298152108962031472179498834232257151069627448545791920507408201131083820046642572154339981426118591592947745658699879150680674612062235260093222516129402418234746167768048654485829282979372753716133031268170625147538521949650705628423540388982927694699282575434148277726148956714674335979311177864488279632813219230976946772186327124476012520681139448135917471704139022904622753226902778117518658867218580237780998987736344251254275535204869492159594329746046283216828595114964274088118914443128344212065304369587033809943543066032879751368684105055469148315847057805064677706455492633628204490679688910811639592058860998170216162683793127591369472141820120167918060757977163884012098093288673568987201005084981976972240441515634140208456484495171476858413732721510479286845204435175344897351158456881491433281820638564933217823761793106015092432310484987816096784467651337480142776655683949514983965535955978499506439046208281718701404168738978049667724066825453816060695401028642471520683534951247891219130872747024872044869853712204024109938209532255585637539013841497552366590876667834176203449036144010649732282088488103402048235649340552735013922339525179595185880467825070356193671795754769073091481595108098920101047460974863067232062946217193963794577990274644416968176284988503580785788909652482871964038519578750425779213891409745404907805928427984614643756542208492220667484568564576958669935321613693641329527185241866179684324085967934152034601266733131076110929839647601074750051221820316567978601309675158244104285765771197095126282345506873615172844811993403430856720748669822826625361857224190418676170110303983565093645754505439205644084758661258307490313601280447127236351648594229259691896339881051127568262591462852864237059346108511538182907939973774587211497928335788063379013026942257607080422092784250125909668781512118210045417484082550803340427527291595337455314089536827458768349090207243429400931237081557082453759062450656577506548328399747953233891120282576817822048359875561407175668398989210079432407796487599386007366313029679559707194191292687900447055486151090506742233924691142914830093368972912321635580697981500280579115975905655871603458290618646413262258006428675210996423175572981809802319662657282635091367532856416448184611503314792510328814945529349538937265447619260378079627792380891590283446121056832950063753718528173715866956480940298032763828782535568007119383603587494820518043885345483041369320156297875486739660464239544411124473300283542419999608975824508125439002684126973049330247028882006598757039238585312012624520546710829122846700777005638489673363285504625901101477166972597852673876466808287156693779226217785463940994676211922899821668430274133396451353662613821793176269757918655313604502304906590931331183654480509052285980769916681876599915583568526596264907927562677994098512266461736653406632163129347603951628641886577266034804449361821317200750923369487249056055744931981643882942647956700765789791677862837178962621825765839348312456708012121113816307120830960879398538434909994225275797672259798676234670197678259205162235536349755712270572560716120580569310929691036017801694969198595513633934551797590731528843289687565225642851486805804794189582213046907364361999124643955073548253091483121919417459744622652003253681308313507939029019231029015278484707184519853816411728552941253973713045549081772655997805018535820969585228342510936916755850165497638904569727233052012505290115967254882740803594343865320389026365746329334248481406159711091581110022637954742740642588853836418646658189819525288837146240746370052461888526309561704631117965243811092440569436431260647514851413655302038335832255480458847844328874099894253549679948717372161043235862769365611122168240160868851409831621071327202179903611084456366754077522256090530854450312641625036342613606244014676068710210496989080429863795083989739588119683497190923251458363361739873263827571113055947072405921319746578462385879707579075473134422080868507270574756077101302532172966091654602168789733685069698852185783373715679900330332661469601543765552010467841756353600361558022220216064377015472009528834990996693601949875170125874295250593951820786417443746846041497097512332408836528559085534844417574911273447910107341450421338484663358512717452829618690295822113328624514103843301266859941845629688224592564468505631848809617339401197229044241830081400618109617888319549861685854788780723110800685191770907583012627275072358685859696700449225004686794280612920452387665076967873346579521287065941172488857157602549446251470132911555649473721314395836598970828434581995536299849963063336310615749864459973637198937427538357361771114389169383138942935809544396448183906560947914442927298634933945619659225628451657405702912970900471942117156096945603377599815301594956405650102360978518283917322262869585143917726574557108159555772064956945427969016728618542387106799922073206008218183313428296805819069280039733741470784862985146635129999213768466448759781666342334738422401989629238331953126790486796361938332610245517881641081676852482915169679354197742586721499367451835222165413611655207208129001980961958130879007494296566342433472997112700076058268282823286703434014559799140657815375241732246328238760052425352145715797226286179710653104024100502652400949854768717738497749989161396389422814437053874836865115293132323728112145929522536271311166616833803989504597946075494663747053516262908153233372445665227045273655474638293796547997560773046249118327234296877689369672619035754540439088689020664958812643394528734785677293734352465784859556481571143520529296958517641496774748887471117214558440135631695448638413416251627718028783399612297825093272886228233125954814450134251121197162181371866674047078255098895318313130925114734178493848895611889251525852926631515177468545923720834200073403670162259814836581627272198091074081176357219864438917736088051046104206041415246862824630185052594754864646247822762273081960867139009597757365320345698772605366211962837968891562405941539242569092917803143350918582289446810661006978509049450714209049113870526236436561970047412921164306681667618773182542404030010578220485208583141562447152029054223514023956661114475789100463830122166262182656142041369580859745132945212119953716454003775921696140037739892294080533416935211437998483356639433702479049555960664340380136195443095761480932374262210595348869644946271200030872197946225591495415370722940636964766430747546660283388473421238170132080122482561353503527548315239906016663920906833577050392900115754775135603244203217916204842737282126656405754389168065832763086927796156562744215794153683771341298755393089872591601314630447724613971995955985079820523468304518569895452422058982866388246967252589764514025168401079419362495440826036745506576040314419584966664993182204561971109578954336724349789396117823800869306527010018716860266082360579336937460978951277611010482065110220538147324057399681940785820512181714482907925338568533999520833381330622119033351275654439094259094096829306620828170176702942092768940146713855589223404834815556289024551342365073937559327700416003687857201107947181447017177847551765271189546671315795351337509049214248601336011737474618510405091152398834586028581259623040898927130345083311185324084821813666759204367499203358630578946027539136001230566363774366254064321288344777923994901296263095636436737870671355832438433583649765692965851986955522462725265431902114630539225864188685056746628916700974696852673437682125013102206591854319136265905343788896306708833017409795022951460767822927575904725091362822088658360773821964815347747175695916420716984619511848908197911676747898184139826040646338936986028856276764341406248247053403475693822306152452252673275022283815956483058199250915823035871030400015789018880624980063446985383372854110150550248583103031078043680605156857670951400096809429209790849534795786356766219312999264254307838365052864394122242138570034236788055772489790775740810903023089735846965895418171631128678916954177966730860154280767583511479410560721639787351345302537128034454140135357347796206884148901850770849555494541101035385023677366413203477452212040962403448200577067643945336724700101626713025894964819240905506041155109360021074268746691578840110024511970709679970681530760092103745417494671828911777906199829427465772163963564345241744621178927538502258867558369241574989136209621122147676169697167052296696832237169952921898815100909646650179557354083802098967859142205925396925268638997816436681120032907146660566198073085984375881108798675323391251883702377114365366560739361047111783982348257511039400514798363100734870810156108903869094732305333109752037036583225581847547910997052477216446588883696293346308201772624824201913735295204841620950180269779659379487318208269171439955662395319436815025223697774359618621707077140777604933294037532546483408713235715938702594977329596889642797617417946825392630672819428760488703963597355902696329955295063565103253257603753646759332685087873058379449297785551724537194153785054651358259202699948430096005991071809907471329448056462070322573680413304361362772071400282493969725539044872309740987168910588303272334099655324327587877323921815747126090069584936076028925646745848722614619412145942901277963832645591205344231245765363501848292469314310208998879826619847688935264062620607710340733347461320895309129536537736696946537309181800649378487629110926096317039142017721714674370606973258685379293351050551920543950999357408961708604095772930961850756853084555082072505707143938000171952168015153838033430222293536175372746577434398164696925022097008720980416038738732450056535727901591184170317765333417884955595659935668851227730618132677340389964932581469015074313257981970257992562288713202421890800877815901424264941597563435065209460059775885493408338828486910614256548921522073368590023067046314550233343104542730095552124871732662448664953734772537009310425288741067959038004227947556538466595645161993801647088375863090434616287626053336814870366070524454224462166168821988195074670859151435073503165538178998192767275100636594321138438878795861807855989587793819732618548713950879893452165179903430601327287146577141269089235884242710671284574234270998229087543476373046646097666606078522427377106627667297346022232554558672264482488703550572022698706242771871774126611120164387906676567791010596191450049713905847861175428045392922028750784780589719642933979203457593064135084596185063793377243048188433103387308140515022790501175468526692380671066404780239595453137402283140173341455012129137930204642722196092062805131616174482494536301902764415282143301897248378230900598189730069693627829387935772288876504969129534855135394981797510338134800751345432713728384582877028896989133216684833594224761423377846059199657803578416721773660399599269568583618293692988809329596511464315572659925599771420418594630758894916321172460852046703990745103429464968349133345597372847163933772671277005614519241785580764714930547038324748287662019680859233007164348045689659910512199350512299160329795762115313097905157058120004037006858930114667623451726833520286508306848855396142895945339038491838540330221302846782004628598508892167645360285946290276467080444207622371971246270487375847835056393403913506509812011209774746182260173210963911664266202274840373632022303327474991309928794417868378552456935828032018697776459981322979263753724308131026151542279514807883427404385957723984524503367291252527219626405512535310459747104163012564010467169453725810002873800263800590071316494180932936003912899294838450844844686312618316836574421021955246500556213349628679374802272528707484549348974309799565786914902525810317718571870042954656673977048246302277360141080714560346506895000183636578688943812836754325278095352147655398113254655590211776699457551143983216234512598885479953663781491300236962835285369343348395945838884464439759360113836606467324301114659576153099590918291217842326577936909713722183076811738825478958805953416282531319173105110323659278686931459586512539956689202925134310978361142831136213387481364456832958144157246394880725959203146028370032079008452996639368525116038155275674829845062696952453336213878755111527585925564151687008648051846449117710759033578740251449485595098974572919562029534946324930004026792410964037714000019645637736322384482911226355675934899180204727128231856103094965288917277892871325610930276047804868038010205430187806059131953057406611586437043401202852197293945747153773878476971035995956408224898423447483636559283665245832390026009450448836652544664241693198968491107895708820597325057571189281186162850083790827172965594776858755964443027914668736592288693515169774002503495514507860259622508692931234627826700112111920869569244875955685736488174184489103515439263615831587102065581931485960649688905017651463819045601316674008789090235160256310680875788988902883102559236088801073740878820454712495795993413518724757306671453045882844302083644852035193372975167856276375943008976719253553048174696194797951263232231879624178043601407123573241850924827168460669044014626733417554927349131798067666443761667534228057675568594719401880852946741027980887612724187607450747581844584287835688366837749694285928910211128092470680000440599328601389575342034109036908600266681014028609390665553717016756333822370157530526699368333077034396408725990178416097454191572276160462761889754019746948622796753323876254098017470046224852588981421112748796829708818937541342931540105252451622009175823055730343316549494612370249837832136466331328032498784819037714807145322878799778011876779139150941034274895947296387738086097651733025685523270308918708182867540308898545431770232362618377456442787677162025502983678971507425605853148255812118371637262479326037805128168899713319088897015822491857216137426364055694037913589143747818711042509214932643496741273633007895687929368565689940143451472309584809080805697985738658721415294081396556833402098292383981869268329855749722732264613353598697146171967340393120367921382293102874138814577114618888528787288448071794483906558737565862422853910455417364506084480792409271987930111519612719895850450458976704924835881691169767908272646401516262411938893073736880534357082932416750593762044858688953115976778504122997270592486677001339698965510249231885592207031092442726327042020705719243159800846589646095469138936634982238055726964748525468326828686671978318725841647500398816263283175777073072457774729201041355461801677107801199946862461332157365724582390996389979393807542986902841464021658075656389119173725940234849606159017784004235511242753806317053849865524175141047151124637655323754998542432230697301095013516292616138462188199412063005773765194386300806572228155913639394341652835690291044518864445529409323385111440400414241734989408785317180206440143687953263632826286694222644494533511761801774111586354883745054649103536362716239406764268519324047592107269194673688518194336848747129119100192667150257237700307809783107969583042524600979185287842131143822106212293127813820043652968498052982999714789876955995827040858835419375645951894811565321967442693732783482004649652816586997008335361992149652364491564553497858044701559914267996803997221332024591642867699391880356231788263971323299614075403067571839827124777272658038524782628704393438894481672670957553993408247206883298465384936886484892778311628176417313657188179261112625440748001095592630007900488943925357173201493515431330166669778219775806833296500089087048990255808988960271223376116285538454118885331980482756133363080459782209084476294451208616078862746832682678167324498399107475134017928390241945543146058371175386522264835357994585977571821369891207912124922626266403481971971887622287933272140098230593310537263414843970975548811385634880919065314994645391133256544809265153572393981493088427586404061434952631384292699225392733652834948696788043291156995500341100883222970522050644688274226064927930540479735183308786394446595529875064316015007328963435419119005782266634648511904130284708421635249106453803217457276972672030655774673139854597372451117708515463917025000509831381950362286082412289472434778649957596324954351674084969867792999437393844017108218876877948682121515335746968270934089579440080527678545985537327269011338411499413231034773356437611142084028462904201764600818306546493463915051728625909306485022321424234744283695474469249036888300951304397805504511788015608680385113325943628416253303671636312526213411665804193043255079429528119884680125447010268888424676642678855051783339562487607273322923169914110950359177647553251708395636921133550761032789065558562320463730910689254740077952786058951106347240296062392396637542181991242870738826537683542115881485549508335177381190422010585351991274977846592300949001081196999371675199649276420752028808383129232432791014946842706659648080797621946805215095072309284732144118532967046844851130157045953835983885495549951563680306744183239550043834492999657259991099668950319694248225780129185310391618253903365563300144463946827872429908859412300981183280692480024107183558366299263517406520799459491155306356873227000480918353330910037499939976383882152242753527250874697510320184625531346581842178165102081345381990320029702876399914989183407832192286187612320366206485799960829313573776668602615920061389008976295523712887674201616401969076931661709076213235106857969486179420724732514621229349114882888411707620994366160157944883080795278889346595020706620958945793967803231621609854611821368119884625029960767106088526695187945818062698877070381995384841222142305316700548719069530865097540918950108098006897752623707150045317462477101721882853524185849379070707854507924555864628513896964568616237851254479080127624311203917291557143369738914037899530812040845781381105628291596871486011744213156371813779071434284190600176253012870184337196848213841390277190382034727166837973541326810057927451173763151721751144839651239408265361101386620441644807793217870375539362582243281284345169958094795383244067165522488391480022223351220568716275892944220061211078308872364921848988096218707732931810955469166759635164825434414696866383530083842910244099921109523075815231717491764706082871346087162342505375094542006237878020206994001506528970461968507694949310872466607427073095994313242892123500566959512035288920611978487962167321893359086646671404230962617605378010561814996277972767894200478613036121472808545979238563651750097700728068989711913930806056515977335336806187847099930489346993372029170541083294449989263301130565939893833800847467741466133854332070705268267041642860928452593965044486249017572167980335230180833573317586564486150156939489789763833863732424002016652819153013155458117410122700294605455646512407341179882355751249348429443878183949445296993519756658457311588068206810584729199669557185903542812822194342914055478211940165381787844354469127475880745252480209690878773359289746525532862954601329795819358374703219983242604086226629839152993413594009666602004907194363402176747785121718256290759883746729999798503729908337276986145380756984833519141341557174627597951736217491877627605954607480374850328374641375594685131904955719504611268372752049028409009300127771312974061190457892178296486669392868914328297277739112464644720035326002926540084918607152430296009499219336151555364644702943848606909913646382202456930368234073844766619235623434810516574584743825541830365724646787562204415124165502520134936953768567183556614908719323834370453273984444608579315189512241611613880764205338278467303903558480512614645328517805578975786392938825259002033200257318119108967381781018879541886691948362360291273014084971666545629920761554875988644304731802324698327072773017158358417800884734079074623538954705672337835243912114278561565196702120396368541939146170363300443508087164613023775741367628094752293451062366979329941496444635745762960558652826420790508377517474077021334243657320202926055705154799730535135367356247978535515345884626191885891734291316485766175023489740221268016780096260315661824696948712208662717973433948991920839541742694144894289948457618199079408993448795930923151340224006780834459051758967704297014459944632078900151716435491788146338304864791501922251336616644515038632900773163604839945403799833058546421165690678637452858327453356496695904213521202825150568626194302753530711241803175429999261015006983199850172497687276376710822900395747311737606108194205733318275705584956321500731954903487378510344915743172240193641324899266992645273262280359706244932063893428244117110885754987334969989359733157033203488015391674010517468814372327965103936571580469078498169141148768141527200624507704192008214659207995267738764473352470340356639301073893725239748754285806561324070639903124090438884786995609730761193302433748289639145966424233252626553558211844634621638474787468107540337946465158579887325999742305774256588855603201741181635280217115906687208990281586697807482068373867872321338406971917204158041049428618754953033476794274093429370184145625695058370135140573809544873270545948840239600941629922317965043074044387152151562847561582539211291535991146655004378987801555591861438750362849790998125944303870990405968267642596125219249374962034384975361360723246419722938284804952673671782424545287177755407238439617418782699830764881807570845358847907844675825887141050932449317289591810607748808381574960409194515297766157659133936679924172101272962768605530497250252199734642614646480194324818328087872557627481652265473999111502906455007812105714551741024695070005328143333691666731022819337007305103561711040479793538059287739129586819976947395262091004794871138301239912517745184719755045527325538642180965075121833099717955681030473200239358136605919089050519993468032801971180320880078296094734203940198789874335731950833974259457144022715246079881489723222046132198765073983192051290954836166753672470473352416915474405429510089343946044694811847231286418108199463365377815989376512151203947380781925971045205599564584605395210913551214258549371947589313475586257567541700875629859544842724509713041482478618710194188043235955770240834822508410076938901157921062167177232678217012985958465121623226503812292498314696030449284548913577648052887940692986427461383864716690468958844021686962241033487551814226206333927093561474323919951576103836819093211761522086588724144912694916763493398573254016851763448041217823777282419793090975791993661496156363393489580364952312747592650990101935838557615069350554561816146336360707994611417732269948336984299785503324834332089204677934734243018542508648070475919811844994904531607895904643140008296382533292336965649709336139995896309124103380147880077051277724324333191851412696245007470798190779376340102909027357098736263291048158550451140782928375918562239333713285459652719434570665560536790259024516165045201960068414264519835826897947097776084953310491001872681983592297451034848819541720717629658497412579667618465403531949768330222682281326859631421537339362254081362153621040249740006568209985177419480020834192061747836240100271468405146160582191368333805394162654364886916923519401137800210383088930965229651760694296921490117633896415124000765724213372142669557110829271472495693968964307557243946871184609777370520049455452655757957923929930639634457973309689056303129052532386021829122730057184974646106005177014214186627935832360150583716970574763637414930419533724389583715801520917011715708193169810884201071086465564644718727177483722392973144369132392087098289163598247371277910961627538272038466903196432204963944240419706080253547751076344927983844865700256823218107821001831858927327005167568595897361371563413289243491173539656044409720702379576106485377770602575053172009978775005462087316241445964173687537191201905414885490382596067779815441973629893119506019746235675585967209295475672443773639958960246746249813201866296505632030913913002431655863055982445297976737859629014922646044591233305125172402389730987264344031647532001826410589502520007863745787668414720965735750758523292744332949931537104200475959840698759918559055023515584142457798068082007355741999892901369406052719790400219591195571164713293559972952307390045703558411908512636522693877742891978417290550939398737610741381268989841652352411271946271017816648317366981088752867943619076027019050811602227508340534057512497892526197962579266076794315072354712029986646089235238219925462000281768196998285403542448969426564303044024045377478084866723145747582297428855258797711839606945924278842479533318692527451202036958739181924190856838820918454142068100951203423425956800563377254553596190158177855997691726628589097785845823570594600529223792747152011364351158730681161823193465517421242643250117963830345119776962928675682578453265933442830947430805063244533525820115217543474049531628990654758049928674376862820875099118019507972039416847730840766667179343918197703067971468039698150337721716192076009196326113452706777314317432541508675503319957315888081531213129555148085803220879662459555783679925871688466239039762469160432659699136268172251972717063525531509467219365634059776673219462266342639267316330203772558427815028234850877291800885346373196572848296565444847812675440680922319965725956231143306710454214698409603047623914150259220764185875962710939679986833345171863333344310307500924330189620114102993792651598802080679653188880279607643293232288038377653978480117947968978801859978603245241483656417132065788267733715376769669612664371214135671472190108787902998797782352378506336613343709020957899976305630839984664673278790815217613286625713101011192502426999544531187918554691428907541973060931309441798847876519709031270455891125931424840850083046723300551455275313921926852658464340068817310025389537552933824541809768037893131705609542778054843757073655665956981086021404859473321069992849888666857068718529768481188287095397448715718525800377223730164885814550629899211486937641390495095580546693382361642316804195981795100029762268506872607826196216627993855690507196282233270581401544004882102118798611449462570579333250267502886956565095805869252464146071662749604745404963430670745345459925211668894777180343477544584166646928682231041660634610552532925354106035670566032137989029211480607857772819626509263755515229359472560463353409087579865606549215060366184507370029711717890823938772948422348572997196506349865604809249290876019966771448789130041757539846058212900584981852224527237251696096416206074916836306061580262266599986691716652466680049045182895794538154319556637577877139645245765057244460094953426758673653583440846666395035758817322161280192076182844436682975749382502991791792447966144516315073734683077350001109085704055856016489332846824992038684795414556993725960547929296619572532391529527080557420506960278002467924359503048392784663194812820536754740001555562956792212455138719285595950765608579079017229717021332409894843829111826558249707242630410012108710025946648554868159209827793110562649456926483847833926673432284631833649771319076473413175637225781306027124778614929933115796847457945181738038137663404626076225441422443392169100684230084479764442640067444083701718661764304522636227462469156350708870145945487404170181079612620081570625450100835458081547568145877937026216968218202807914635216512374082370561037223837101645412904662577331180979705457935558183504384001627341033896427014774150802754022053477678688348652484233621546445660717610091352237040612063376070349428792907731481163005112736655437816830142595481631133969797769090513297304176321773962130051069089578289912494863998592339144134633770752937791019734934743895079352523597192277515465832046460964453786281350512982224592527997297227760034477997114934546029262849526377583269243660400994445209361134130607654212356186208526402683255352876927526071819191116590818407934811744514673204475467563310790075048823478571565057664804281088684533402212747854510387779001132048631211776203051567679678421408317351001233105803428361196826987970664537210072181372154643866335755978946469230058925280011556106128587543310427580549457142879044015678157527237733790856424165923136480412247415138770636277015627602929276349341815764930824117921242803195586036134302648544238554566673842515085110300857338775438330052067554532599817585082324606238805335647218056470189169220345858447049252531085986795757001012830908801736378396443488272296244671935606650128616341084301565414873507419978242792875754858141516421284590242201165582016006258421174028854823000266317305635931480777096587419975787409993419083859096011336046239919311932416051978512541097683111350623328170673168709249883277340961068376259787430690437991731301590092737154619792028636857250107897950804943846459559428926643049629388762999017312740286931217338004232787587518287427347456744991282182672736795925060561072043580903443530910760509396307632825775877974892745625323585432952707735149575137191325297949615129009260055972423610263871121449775384899171557470040857459186841468702886242129626782082430043696429677036355320652684283160806928435660992889192610524330009689314246888936860080558661865678865600746306555244975488332384812451558274128051699498948298902138231705865105447056064738862062089813497162960480479084735856456287082063624241844421698278534587359115503991024772634285608347836794109626949915095294313966249590894936095802362456893985223498847668218552166686318040596245859661915115297739934018038950383275538013561424672265560313289351886125907135325028953067947262342835831159533593175374719094143867142287202321576792900505922212613023212605957769549740475739865543356374033657099517275152483674195262119549066040894033212575301868022557333767953061603512669646983373816031502844560820518227888586092845351957156749538142693825413541257137759963273043800309226347479515847449234500310126960415351011767082356203529130363826680855879129365026735283051124597467691896146144333326394943399022609245759478545705246944304801350342162644515977003110402541428440235737185025647367007537864979490161488099015203327761208619093335002799445574089700885985361377938714396175966624927626296631941120280636703904700664357631439093520573482133867106630863196038309719492390866797161470379379007207651953412287466687624759288020257061977104370508850968351234193250257381128245156881570867825344539474334093852334490654672823146478454406302379553337720340455997033823687323207659248954355147651717039369722365254370291662603607214268472245925172569132244036010923675900871476099806532183092740669726702511082631153290922663868874639601806618855017969720691396084722149106361471795240545540275368776406231978306166989275563946173713231003671951635443883473329914207474042836191653882896992514594228224563010063566972970042881821486088023345390287539763667956812068367229795791970926182606386232917283063623823825194738072242198980161249496235335842236897730367333826610122354547294046882527486432749334147757811825064475969939014393611385859845728815954678036239042896315655283868752807664375946667601942715784129189023654614018603486894534041563936150701869217486157235147385586944181443200982995197485155950982222228030312359476754741483757273478882128715083137901164977642834247792487996652911515474601886103950159015385775693975749373033388904668156186076417532766428938106084532259866714168088878336498968225639309981222647732346502727623492109937907062578865648684804130230785927832993003960594492028091281691036999412623614006552476836463028407592578368555311465679673434557166725617013174274006269741337595800882671456496325318090033669133497042816056890009422139492643606267442993693641201635798205251229515277707525166994720435594759592796594388647340733131320444091585682805950257211954213216505215936226788697139378762815451715086318555865345469946819712968202541579745550710312876579481001594781414690880747931280165146612741724026150482114683207831480384107961596736477445644263023242338908262182945916175173053118179451157462484153928159623410013084675839400657411543619610425414409660349773471512547715406041427815686608485707464277348551948345454909471565256207053181027009525842746559313201595216657812958753291609289418603073601723958902073857483149195059441938106847561935200485269116897977072873451880764340352402722297951299349778266687019421031953189404583549269317207569617790449354385570219305184658029184546292247825689819788759875674356774459236126154087847070983093089077167689776686136415577938409170306326725463542953399456160221016883639937659080428798573445162973933910285234120578808811904045470494538998349622190904282409279934036106852901808010644355478460720248599279157998846161880599975740787428506008151217505938811018963464608849993011762933128369835727072916048853780545048534261989532164320355232184196127233234556161088448693256995555957916096226898806135234386447679879207405243599331416120227349319426753860044300180707548672583215928812085596306884705379703909499687321828134116302819396808762229397536391341746981456298818488361546903972191074957607787308925169102267074337457938826354296502240744478469081575938217217457825191836871439951763926978129688488752208843626902705929617511027901051921984172308359798892288059675988245312586864307115114808835119173332511479711673062967754142404529639959872739437433785434747526653257202013884087929618135974734143467859964759909203834682628463016320225597789834993549878174358317128337066231663183938926793284283016952819927214379355913212086639738819825945616206256031859034130288712047350753768016101985046110620412446549315257147066679845329128185097726119581515728410445820706889822730472565170775294097226290744652998269568476882515094677184910093064660673148888912445005793636709235294908961849578946762343740108225176823923995469778648436496045743055848231095125845087594984453537676517888915343842410226704039244429394047438797809101424040843276617569332520280382137779913702225549764021646276126943941069733954962301597893477148831464696257469229649614872826433079769593219760209327595185480837043485366401977566171763324885871392090874764503532469229708132286482083967368391745139796412592046730390895624699463036135812655485834674516757929567790977621923060028071817937150956707110450518581129156970903408987789088937049597132095493237092988196725230820863316444407486819250615751441350089786813764477041186132026549231654462865504168532922627063218794515232508376856587695682897303774276930576002972864393684321227137081319378820370275757667822170945913503874551296887827172411509312379951370583810792927241853400202382024295721782919235467991264811318320227759667131463506055738406988958908601645783379323639307739669111640798304948646272707535966313256824523602592129857617650717704994006953499368331233197391416860277451316796533625231994462752466195656002803017899294081493038661822434878881064511927784997710445748144378564844754177531654268568291940834977396885448074526043209051662639452078631240115230625248802499642473384558961389549107299148020831641495075924892059267234049999622199122468195818993070546394983080632758947592704515664212380079948000579770285414654318699897253326688260320532901927005374630373109820304548094826413860163597149214200980036372300989999031784154837803985988045493233353119337550329713405039539766115884683148150015283974096736395804663132170894321366129423644100349768021241320217290216499851534586789157962406287077985800631332257635457087120345480947441917772116374222338034735509765313113468703177235752355170294838475423844559732858774117563270945170015799289252592765240187246395400630350269728424962003184817192921577442236774903687152929348161191758913734906761015185112246211414297799808930644397919777156427594689289556143918999953432410049217751861221727637272578557715957381986326408284494611450033951555120771303306766297552196296657431639344757562255066918484059495581388809561400803184342955898079728605400613401090023841418029011128651966503361097238033204387786083604481061791951745473219255068822220443712198477885654045735712750318710120692281318147729131994437053806744924658520503970126915603013756496488128840817842038828206428625082360250979257778724189905658631355730039707905271813845986602070489698862243152811284951805338173097391700317178062086324784482586734857570011926409301964536822335037634770933558196388969335609546768376045149963514396263055529360868476062997522925427641631134972168726816266096330985421928446021168886728703762354253092007519976564131767626260197267438099994404869024183692653066315620059404895942214069208465296292293429066192154839571565041521480004066527885542629708430804293135044537036942396086147790910213482910606172196059310922107388594339453380888100963183054072499378281932283941883035303851929481980703413528554922629620044332054447900376626932303153801332878332087196309367026932748998492495882868821536502626744515417556153856750233926837065709040732048800467870330037075872313100540310591684727779058272650917037971315616897950528845897517769185034011119739752589394362358116885147947581951167508321757538983984153838196855431749366318793815397989830902532821519420197615238743716309516024668139997221542913077117584685405527559992527444598435824661147879789620097575106159546941547713702599488507363202328466254215233823374397122610815248672605516718751275579015806640534400002743095551083562415293120175361008725155231905726560083933325299358401574139172947958984586766595182931709656663661233334155768342220274265930628796820919626965859834746593661006478182848252105130927400324191608029572039101855683940852955081643033663990754803264390744908791097295077507504998082858858869980943692527746241253807063414952624352364120229063022287929651951375992616814704467358997968677264070437460762028190409850306457398112263180959191004231822060585171250538261288936557646111090066283381705870914350338698206608021689365562771727008752686377517631412470442053362566994840067505276784236540051436037108647818782587471339515443643098231894555023795078969887337690548221799984991238361108046958087299911864211352916919422064399193797524182162453254956040993284041330313349203438782001954470933775033578938631079672116654219314497884638779118586218493221297631177539134951062037862601609690901879812272339602277747427432487793458096361082294294649274354812687633064470881355954311559582970733460406627864945158537700597853043950367115892061511785015841376603187893213549146701406031336336248842399048253444780294388881501755750316501416935033300870645199783869537240744989064080776828685251618332098364278499728014639482449964380872821173557231536134423366238716584270029896730501198018097356254431317362745015552702665911837249660116034386609094379372404413303276972171001769651682101058045644918173227885348434354478754389878241102323234087926431020724503944915251551209907491748053702614231189912071286690642543757228830640084917713293214024402165474584551937222684065621840739109830409782182242661882043584874988565696767880751893709956868576657599325629088325716954244347509837228708147883109647431676026864370630625071636974247041945003721244656550292554206962463306154957713911197948818012701515834720194516780303589428195089750277295861396276207366006196131922968534794936520598318856035947245759726145000693249655277038248099608511034739710016288379558111219446319040525810928775600150909191415116946201187477795910978894895628215007922894050198160311578156829980731764624104275192943799930356071376776924974912800029387203279594013224463950619597395121622958487557671835747847415199612639205489876740032402986442580528723006898377980393258988217935995526735320204508958968313665264670608765762689061137127921602345957965956670355296989376999702123415387347306534931063442808164639298290541772902912946534026685021704579537969110241698459908339668556292428273986906838489302770646737281385038797531793594694738349165992765131796468270360317959470912264963214896062981898162573502708988489926176535085705099513700179004226398815927605823523826567586467386432744541412803349792328276365326970699329695436460711805998995754000844795302562838704688019066567377875146574019983000025392327225555576439542918245034107423588890405824705124012531100652694756755454444549374908103183610352923265587513340500430686920491039382406008128302527582347828948805203603952360919430471054553441670839502053085453339652040153272063470958823472297869652712872229334113015967894239805054336556520176433119011060667384558176161105978986008447410815829389033950763436694108550827284840266871444002403050952276187400256014483304849905039222255758453360930884322401695466331374886601385263715594868029024085691779722579221926890992024575049826173144314190553007429096828696281866291168423482369843313102310561373029438469216846795090570700814839032159819396982419105249329149311485108090522078575559913693636126000103837321312610380706493466591836206077139305864400834143277915222235431738156265436457942477992215924947309283690477207126958004453442217257369705217588435367979651175878196382408174879880040577628015480835384551631742522767100565179848199751929537443339812225335688654738056559721907447405013487138777650191096480045370603290371539977996435666768310385998082559750319975971468023934583850343745246005726100753822210517327605131272714390390263271103012832270180814585229028550094194218097959704122326821118632140501817707360786608566525666317371332729070113857059346895413549017899704224370833003136874435368586370603140109807351264148089027661483611418502014221530542959620184449630808513831800883199667111377084879081267333353977306151812769203048867784561364166385544215186136755528818230897649287360790303669704526138743640504777471160664965460583980124314500189891740213685512764393034598835794067961521313808568887574934868655138930255895268487262687689516897962902189007445487385119095148263965398910865620902577655471469361987008151099595705382494063764114679947545386116286214485960172563739992284945134924636306555342896245608351198598622059346585718219766566640988061609255419901028868500012081718428348745108552039982910955494836058165742257556832897165773712479264357456646729374345407999059583212103837800425185731183976702943664247710261412881640229319729799035693911139769715582204740172517779577122985996200447571308910042523822621294719882886636645080806418334197629997155645280583262477748526986610007703344869922495058539669924325018399730519278324784280778780269816076578023086193470736453160281657085906741274436789871119765967321068298070232370141712503896477540401985230207009326388163171351741977175404755229660970803205845557074164914749805993649481094580315059120003948726067358260346508990463697833101611845725677216979653708245152684880352527051391166993480308441283568610920606565077607577299889540862897157475192554989330391764256394332940790961750888638430874662251299685262688495082159447175526663387089954738770558734868974405460320720911855355376510229454992244804249522622813764352141744870345150360753779551923359080355088090616532956492901459534913755558526143261729562471292760886324951060352294199613081072921701498302560712915664262946857636687626019077096204845367155982680434383350817983739903658948135923808135148516263923473219689258670443008651334207958892879685445984606946626081351809733375951943533858293136231159922154956048882418364487689770449160706793418815073872737231612532216838785901724640393747930355163277086054810865073851598619263283488900738774171320769740977754622961405536312371940995095555342654339533470988252934405397350711408220478801925077956824399957148938103035328293117613470944547996781672363010953990490429085357939533288448719433924701043806867846966099903417490727535356902945140308087190936873317883124184208217522119964986465440385337325119741111780517518535130331710373459871569268340760814119186367714809435319658761848234404782885156762963627227762231179027072737930661197541408890490683465628329504139015348041213586516491447003603717070186074174203753590215253210312327199260874451628293818473907298560181155283183166983298591650822912165787943308515162330845637518582519004050475637744241956946945828742978703676831052120591819670015058166320423184800358422443105065025695820933494304096883417255071894743520233151167500827357152046735519422278403379513919322024867211646825573470248707181249214930050353666547603266372262617363815233297492018390601595792464962361130792779713592427159699874233712186955491784899293656943661219671416754246194785957879757359751703575635535737441592712978813809322549181530560574287219686811470825695967524040043541657102560333119188713072934542615619825805034028207167474740489448315007404436410276127242772881273949217830604179784153276035235123153651874837551569571058306510253154889760188820531260479145238993470836769247104154063858335220897945549252072476888245056243904192358074843561597076484771727016538451414952184914821063469977107953740290349066501926244789728987857862173870447924555358013005880307948239072490154137369835189709581802875847495608802436456882057378721980817286517300081244237697387951576867156952749874575512300397432091837205429750274371275462516823423600115993731745840335519735328174944133743485517952085549841022022938362095257232134786563649141929677755891189693958585260441776400120810229157714348931538539419595725550997317233398999516880071629087959741552606051697694264264866110507770852169953733280795278752284587613673612910929139713773601365825818200409549901514126930910086144657466521111948002154100025165871506178231527113282071964399841405537572398816682461585827524957790455930307100300839405539796521258510727922692863046192491784720141466469787849411074774778450186810035269352322863841174618892674150622995923441836295655880126913697922997493919546233972048667121847920624380149868811482918638514971045747277197815732397526554014412599102106857785477566086885249549380624568271874604495102515531544783645874130290688114438763636265221640113548250218344135731632829435925840830326758002708295377283650124265178641753624337084923062478402023331675658146253995571628836945715261014173116121893584308535379589200997488994570146896140341172997694104099809389923031914591000391237877753940183235084365611408076374120152935154535812577156606807016392046699629191375921132886412510968980863746999576964670203022817598310712131725692163322794950055198699143788712089426086339644064170614397413747471254303047384311208097904526609613429633770433207158879975023265787531794556731142242047865905036028359406940239863772740561184993816990132793997006655957716655855870337440792881071257176786638090850637313667179356694767984548981022622821438035867990631937618309128482594324914950092195270917860623185993751348248213055830001846865955022312506593886485724469718708594477478524110296370213415717343777795670526889408084248131202022449670596463862255274483627830029882343012635031983922979878302166384515279915603046495715887779100611315455692673085641537936123161317639259469817224907553413722449884678402533551478488372324175331866706410217779044376792164476093233549575238830270185070416298157262899795043202694565825973910144966440448557757453149095127053991516304173043493446058536822239384100383858604037848569197134393565012299136350179664429108515075504778607523138237159847123155697968288042844610775844509629083747815431355494348391452057021810723276524048267818626603856528443100415159740866937939905895029635076181338460756866611396361868577004326027838572482595874128162842433088587371217532965483513278211243249341622810279779443943017356610437690862874441759296731129191786022925533615214891935362888935939469545188795834476435366294105290697211644656613881997156163617476169129704400073029481293010856196713888401217718398835739904207629146550340183074471198901433309791783667848872670562254476234437518177976990420456419977173695971596599511962355704062399393700146804487554405511164206425655349814921015495164291424791834259315789754594607794689454253606012587781878190390413402165539496549045561365861970859381761109014293388757347116713998888358155203003314374256483674010522649645419608412658864652607826391491654794722752409876122805377768999390429136520286602535712428004666031071859358454396510655884673997250517654004280789419160316828955594757013458221968526901847084301779252551106100503697350630533136576056671674696134724732258087323443595343527617366206243638705037305483993051386459250981262582236967514983379484804959613022143337182908150976402732581086604882978262975550058246728313373118376720386040869290445132434069984718544203728936446979248144455401408460252325861830021232755249544671569768977603601448939577945039738079169498065387684812301521977586333160104672632867908711154158118544881856203700214171573654045663159521167230369672184723519753126432100887710221726098306747595103614644210718918147614755959989291514119085438991210511795206690726207096614750162935652847969375204953088455692326311373698922530063826039125635608757728181918115752426321807052283608294688054247853042603660247213252440656585702676338962725700511420382344713855482270055211381686290814556307669938156291046407937889502985451212672605344335294162069020021502300282607626336433552124823421079652214205109653962411951611317156023246498641000408152410880823243413817460083531206307941505837259705478188741127235123634590363432119208806087219010456928614973571135856897050909542662040583560264199647667100792752777578630875661979907270129459629136268508742955669286307838938126435244074843541359407164246253399217715057062110035883621548892108012827545747169050444686987345555436940958502907206989317618465011607214894254032215320981246650347348533214215498484438716496576061983035311643374176839945459654410421813750594354718831065606965678213328190813661445070085478073392640662447875432304477325686093518213582188602415086078315765332462561015407863173995196032378304513541588191555935196213321986925572568281877019558047605413442146116590141207298838815183796764260210526065312606512442268316834671852276698957644609192826529533690452398481380186398834967642338387185548601908497403632806170272954815086762447173266607228038198123424481578983031793052353000221115904626708211862055612803877675633824383467654895107661185400918003894600018931509683484276362007353602022323556745019540868005319568162485083848806258751396070311635321881229725047848551837371951267549507464134887466868490675972691516668070988679222936089932137717800364818776266960624191687020565859040501580808863423137761851329276821092614717859204474964748227360064884555772427225445105422765643249247065994022884729971365291520120534205776799857462419275258345199585989111786921383808993771870088413477532648175241886836623776707871527327036809278601334953939323879824168452425812541322611501953663619046086713436681644303846582302253234290099906688318599648163738018336362254289997723243104240873076381472726388030745656357142294816503320999166285181105397955199247258352655827218689734539502239218912957605854178938592430748464714124677658972921767510541261468045583144242726667132442646478072822100752629461078309612788602664963215414289244950317951261473080039270443245486637099180359630357799838514787131740951978196186929145317302494129635653123314536287704133756136580275261748965110961370203824655226074443834998730368585533024204378454621532144649917987892052953842825368443119691809184102083492997560304572324752718127123985571542087397315841711114611746885749934552443145624184822076949571302156192451131619317300713406837950579550509036700963138892665744980515576018975727941652923094116130053560386352785630736098526964545075239748325585005805692694330154208190794955411503984657537505141097409329597893130920530226471211547349907938126277113148508855450394101393377935108464304512309412282460094272239854222621466879966071930253138182034743978218291584888512261218569313604971662802179888437820128205314580799611437950803706010565188439054351891324592957153444164876142896392424620580799301179340440998126083780946809575645912189378377990383404308995228201780303485816083797704663837317491136397436071755634600028218407283193758111788886736123802305151125339428082683435567979816648786189523518988509260889777119172967566124186501865610006956504669329839182314173424348058879232756727354055996536955634956147225244368530161809033112756012084314340668270924610478778038593088762590128265035482547272881049475070421995703863985463735988026124830470476497124072507055745279426090745872433247247170669124234610109099940923438514592185796721242350176623409038630763035392987569541221069927582576969624962446422287665850386994868976873446123138564756784848468802207432643305866384115030616391348531560791606740430418028645379667478354176737433052989094264896525890795009484247012122916695864853427586579723145283827978230704563506041626543092096821776309629889601151578781904227118430716575290927293845608962814211019633519598204960735846192413816607952305934999719405014083429412198145533767454672215355933011089457929567754734018326260407135253970083503557412961509835443038688229741080851558230061634286247416983350117857531837160134853378704392772900061236450996750522749083336597744078494280948583373448641919617825365890628250492331825217151132968467954425536400096874098269787959591934570455769473736666580042746003187748436146378228251724545746918464911243772542565369891492085639038135427432264330539857101530228283967482976283303853729033154599853881310253035003270954427819935587602131306313073530208136395008748026148466896049547089101931353467914716037897776336515500691000528083830654667288196635348773482902176312647382845559397136152769643067675755683953764338873374674375249466660209400748745966822712793485461343975155237609549067730222626402661005582656080935654385461048381759778081148095205170877072528470214836757207880073847469522896018991365146504646545914088969488326174760564011791096420596068287417694268790511937986703049144019898912497951849362796397774422305110769155710392571017412366940079803529707210980257666530021064731412865677525088048316709086969342495397869494710158405961625388746939945367833332344513807037057468108761765188957538705121213429258228514017446864162456052687507621809248572302708031833204274473710273319555267425545037815469651131529317329086402920567396603245385491417888069737115359553338590755273272410321684946303653102314701956411983580456656696328612592912843606124692552293368767560078903297814621661069526449102327259971983610770247312802251526135984652376006266890085030164560860143403409264153168632965876475028712026780026000327958376505132133139956395552877897081364551354748006162322070250748721896419766035126268661186875474486453916648364024318352934401759831407387811300860460416136519105485345926464743415064129590952683112231062005339697648381550781070614289982506053483290117282151249413629468392177105979108878889402447420119333907592429610745301379888869979492975782247174218699738055885275106155493568158083024171889386300616841922456794866033980143430121297009617187297271519451373854825096301365148060270534704904206020538792280825950591196643030418777567163905030788530771782397573771328412291999696908513001239564576920482649831482987767594645071484399857212010776342301582995325575936089482400958359961651140153547254409679194026744390640703710667751098074518653623140777755000968807789171307990603252718565923418220609488853775025748545892994559458685772433305689859138092632468933461431447699290417192781976800280249196222098071860606651577878022478883445746080176390295808704018627667271247575681197785361279375018163604765398897217864273472104092738597951755133100705082346538674202952324607187200372984607848332039128068938011298436802004499434630995476764083450629474476515685570545572850271952961617905244846140022841778088689361193831778494812927089933703271467009449680818973681531466663277463841744648568994815451995023320373135111964460373616940561615256234986323507270100466800468127477126092650685616568553529298212718180074182709743363302965569212415077800093657599670864310490911668426761373616993751937795756994121601469263942575678052342725895266340551526139304047929825779244284328470945225329246442926548835627034573305713836269333837257489604538268310500917048320967414278584899521235658041150559767279241012133168036670157559998457519528945437102829652469073492783389680127951118257387256064375779799716426431429243925584578666514751154942245114997500694490511908049323101858262840211997626642262072023448739338270547897661793293637515964299292909827069800333174090260541729920423148110240610953843887844461393851067168251471542079461943870916109761786651018763903808182945787183208156490556622688487205933056144375805552527571221637012638323516049776775404049223684904106032608617223133442479781770792800193158113490454044367962822699511164741692868276310686114675115838900152783101931357160656139472208335156581780320582423123175458511213511101429652085804778141674977752628798838246284455745071606549117929479520027029560986453734286560234087404817552361719891804589702440524496834368709001000555666463739130320138932642629645998410415854305193357467811251686263897022440808831068040357372364258622824672378708044462742262640824350887562050464267153554735020890700149748865759432740246509457687487471628948453935682566607766664051909598107220169982714462652445759976090951637771428553421505003921742970632843249169472715654469208067267181417492741995394437374919153697741888109501732884718824267806029790914822458476972539058158509408256041639350090020098488724344250940393177483347492695773580302294592864778461182204675005831745601933057308167336266406248120789278282550323275857807054053156359870718055841345517223218285231601364545284139108141885647577839074332437085130552159303122744555480493530424888818808829005757516703112596433951307082026776373064484013344273666658696469874354856765811644252469560197631482492038126329038569562798841391125728759356488139834982272229616997630427533054094743285262221526092365475997527175953277701406322297279240369436014821004309983449913139278715364317049257046475757245715384341516507247226945826647854801378405454640458031979823930254392121712704448178971877864355585307462804988761731326725682687045806418123737398047817726554130284622566494797924400328849708592259575398700683005844434763917603220519722381461930667657072490189849567729160328721254477457994948158008848879259865503198160272594844749813529389067360557483572106022324897487798616715232032116279549091810011204741957497490150752627091829989298281252353297780432501205883816193225366703274245113401030469157036522312560015775401219747721519643177307205761113014062998997132782725986779196614314669810613179798114535606192926953569170781305734415424454402956070145995823040639501600789427933582004786348372438072651586527208919240415301017223249102228878130203844305251703244523556842708030611143933997574870526656650760249626617515211392256044458399246699518720779370557439410680953623007152755472832914769293622705932472059533057205988939993362031801276493434339469056730356671348127030549408083595419569254488554861518326873733441559595520393016204072939930293959426089151566644441413678508721274838750704314737241637660724882814097296685845184871873034409266366635411584306193302546716046197751246335658886000707396087731020553638427864379994993228822668833734664642091033822836586864351709403627607607026855665866106370756435561054558773214853572085018067487762108582328156246552876087933802986530464789567808055548755733677315564350490273639149082017630781967951902470516748478590954085521664514336745595009195748802819288193893063049205451732528545593738973472387744616828836778742692553720044726463398799829339343255987542381129594005787024499392037526401573088115531513165613020272153825814095173205370257188935734968132665493567558313751606602470043200427878815089801063133288841163564194967725349408145677711567194901129379501538802622500137518642803927901836293726765984495834725045159421719867996605578511614942013390621269090952586797124118706344631111462514322362153476666248762307696927670868842183239437345041453846971180313726365797679765434537778199710334245399633402456525178185397680838941782260473905321703931593150813836961359293656223138796422892386641455013748004674577713648058626178615196070487241750022232678718063534859194598566168163193702003750713486643796195374376791137395077410539262412868123026940057225206072580747971049173880943024751560691031787457959382597334417109846117642153199249255393559730862415731354812009373182455175025836849397424138691575344642999548907654562005017560878180480052940403142026139429805623260559948360498679420402632267296528776585010560402909131720854385741629210136135472640530233648105566465662382346898323278080301417757743541672844215653008955789683718752766909853205750244822942820888052795305692172839314417458830532910751132917450666128959168646942010485509146538167007370865911558853382595610179083691505613176895693715715127047899887310394003924228166829013205718497058429839310860482305596021286040565474254240584376265357017661189257353366824021747620513201116425852323075676023281390304643890900537917131180476328535127876097502434195958772939180320284859959794606274151174387006717804908903601469700423234021773364348265046550150160034898275873734862324501038366682012795363047334492614348555451006537396878730788869696219401060390142460812880976627527657720838707518920754885042162310700853363772712569516843787051592677680085254897305134572117767669290614055955479527047310732377022761403547029106206791351871620004417471875656858391379028094519392040865060937353287154859580859020716607334233837935697201773222207404455512900749092985519304779063263774922317512422106587180279087652343482234115896459827934954212635226927992124917831420768323917022052381836671623962314392739457240318090088940189698790147338617626602036146002465078217755950655537895979652996578600185778497511667137431654680269119555278280800714674331161208903284660596811019132761406240255315415349038931957256348845298704397909316379843467894681033266112691873715893864639491928956408139741354485433171521037619007565530684275543077843200960595692506604144573222996996830309965726083439511692690864016144243912026020086097511326392674958747909133176976143116998259643407973640530835909319518752037016426378398575177237173012466439990390194557897811938863736840474512720351468902816477470604051913216874402914864363830172348278547443420223334081288367154265921292062352441774435182037634994670171648591286598424394903132736180295743268570882088244035252075615143661265626151967824351734806095060062802454428240439380774093546646940974760375750455702738101048406437148020693450252534417690333265608912281094357020079032645867540632347576096864147168126656095279778682427130448044528176386499175527248358842288250580418226260464663862776351092651901981807564608112461982630791092818441868031588699261218261845601627008040721543422553365068154801942845615206970178404499346789358484985124233242682402788632571361698911628902701475003501527940099096906410372617797272695777300263981875116534782088394189278337708063918309622365442142444721852454837841209338298433953989592954577166618076913435581105929087773275642776428049463306421122077588989011201275292082659311309672597164389251072981682621238978803677285425344039766510063699995805458895325044912839554477278644179200817223301022726115997002753808495133040407301148844675743651454489276253763831261153761989902411454992373543921453834689445969345495633743961201335895922551931892234952668292275986577884076567262791519189921152641106450640695668238912076202838781204847925033526476992529856787192134972938977253323111537515627675635707110187814390235829234252972562904317745648073189341938021973962730360144808834680092821609600797714816660338421664339091985203485694819285602136217091457176940688203328677412417298910277601810290466356428822925682455300320065635049851882687238253890553842613114189658051586335263666687106685966195363400801193818030493221640762597228293338400302353895717611801479955172728133523722309863209561736789147026839127477133176659975410897877978662118789927773663882926534677558192488030540391609137690915009667255707662848915189382407314109813651832678393507703968500870619944882822725003234391639028150217362537244581266456722769807994572440091862850782515441143714087163445755165896325649498981625467117692235663399643007507667391980230770546024864305583324086734601280614932958686414305090644891453899234295604457992405388737688346534562237561763363040230097302375178480682474601804854260295835407209308003244769162992657625129052071118901938085140197425204643752747968814491214885489057291409217249928488631421602788672964333624125473815646489073145138143258553979171014655174297400012405778874496902458301182843430756865367620503440558932054739141233858851815759388471749556749930413576620062743997693433445002079457184959873968066543673004995168284939932575579921377837016202574101860016842644043946070550334347436175189741658304937026668752086039130504677964187564924917154671891692163491069425959365820158084351500947456784075400195453833007889714918406899021540767876402843550528515771415930782249391480913463307024052943807726365164936710027359606024701020569689721096842622218610584762784053227288512844497456539469124065039329989200148496646133011452785058973033027167734354466984870272412321976851809863649322403180881853015073108163370670250254569581920829892643711908965220346262598635707182902941620013389081176164896114628972018767263063026672542828590929824186578853260613313780387841184057426990622845989169440341147836784149348616598693367852276646257381588330521872385068330713368629748984052311073613547665095696391555955705255564103466537907413398905766609545125189117927272520643378180239205104721457741775002010820948850868375285277975052604467112042519565427176177236736596599985124714533400057273734598353348824390020171172004716317847259130945376825246976813389931538743280629824624506734445416062788871500425549934194223675107625888354698477769786759869474483206331383991081938901519100157045305852494317233652185878336790328011361091831628317854637877271523984796688640591062165172893466855093857661058575176260856160455037880731330840944239097734014822455250015768378990857298729194110364904358240072865489950987275424763351243878741405621657512913557778426466088466917358101229314427775867162611261013652191675415310190160990544991329383202655888151789902457716388937123515260853015003684679237096131062076337637592735556992974535688062333411053888396710727844031834009388467624753099494963328094289884423702106698079882076702302506846465451561797908979935866360439218531151997833171901491354862999805513485697000237862016853704392954063494702179548438411296021228433290844483710538268617604579445223522623207725683588753697178026352308833618703983973489778437576509274250067693570348351315593299346177899020355039368100775583953988051327692247976265452832288521165503292242618295754091256664206231781309170598498221993162869427593608808464944005996925203615726637909107376030070454874465613457098064432988044003844943983614151871939627087779395307374817804572107262226019265617657535720194199608147416276207198536952978905563254014659624910741323219794706123680738751656796950700339102662226228321210293744458309131313673257641405225266438009337196757400275776265073029993951123788765212144214288331690472272066179007890794763030071888562930448245883078048551429726449658751444689220120313037431819567466458087355620873120011449331894853738931191926625348244368998503452595531149330855949944932453001613008819308021365581627677990305271527185557666485079198034578191332768541802531525977278869724275052785325610272287037309811792350424537012410661478003389882692302447513723456718890152354481350712891508449073395356678831092483621482364070198213122459355123238415700857390746954315204632184491544465150434807833857920893313385735388631671592576086669919777708642644263327198123762410540869892694331839091423124878757143189389515143279870364937232314574258151046813967165522887075851170388042619789764381606706569623277283432985800928152346096939565698233098993717063120285016217943443327031923090430653135512801174921898775165471166612360846726529569394368904341869786169641461570075127964648715874341333674280743676095600492610135691469858688759724299602161659425835055076891239184956445307962044228136180599758710032622684294722142715079857776899816434513640035335784301232687517149698560457892933620572453947676800374384280533178886833655491034583613585359319089001660498045681508061333959897532411444551719052974354362600434828804358372762703746297557394056267462922447222133838178562193598324168703309540304330713079255650299995845012306832436661739854968353466770490928718072437271098864634349744346873523618713931070610618531458755250267186560190939041719545187039664602320465946653640221505586621697705063576522740366218903954629566298279255268675761969221132740900275701979129430200663291799592328425285923192358560642803027592764338418285184385604650232944552944482948525109343703486211455862156230162642313331054195195082485688521356162367325577794449013451261318733066726099849089692244077695547508211326956082217946341474126235696301727149592785129439717797800959356993173466206996347641061489716436765480175267912338028300931399080329174936266801412599856709666363526213965517499320464200013639441517240157077430360966438131224049424125783569320435431981313490719746218901507737356073448264823690036027277440020858170004320115794425918618055236343431981733491271293592990843155481409295437202908952555377108712010634423911669975273092351856058404943023654226066345462633415462258840643637505488510770152516925804750242203390111851281506884609263342597735219944078391174882304642503888908444191429472379243148782171822815153478194115997314786793674919870517274986447992353527838880702758820175864527594350469697700915950381110899117358018465964821761133730778713582897538334439153407508243787257755161966459169276830345299604432502873518179732593177839441874628732956153966729863763986352933620276208577197347021634203758514894880646556643884877464036327865643710193069788489807197376030835656184196286184513947813203775917567303068109726119937146220591645852662284285881129671241218628786217678560584133231176827998607473014612353848750086470567578620999873200152839071132508273517104549523830805371103586709207644560790621736021648298653023752628959741691855706858203075145614153109192672877938364087534132660295588478395262763701122935240383287952040145615171837572547937111660150487751816998131715329695220902148923023237832205729075778289388557183323754605376084471067683731065589753068358738635845608256336095306785306608034362084381575755827576066399659409430076876935689800866364476701605340500862677568561751638484337240170864694992813730364319922600744486367392861299442595535818040458540746292859862321103761743507817338181472043429530083887954634837474518344977088091927802244405521585421543966922154299774181173497747267067044285897888272517485241765639663926042372300900490807909256121255888418424255431601973681039014201728324692317654219936620216435844198215954409672840645719883130517379522155598818097577293371360967650955891489795971331792185268757580557149292168784408760196042315837855449988051493429957903495611681867360216658009359269296878636292353841648240497364918831426971137447447495384405686928641755766144942536909884415946324913342534859490809613848643983355082125249665437533914743904158753639678448280332729057489101132058486246584539761488230752131993580706500273453899446220121548014918241073142445984439384948618118140036302277026220426598150224385233486594110274304870298300055933414526809619296334574291319859394227300577690001431045666840505359884504948949049271397540847136607668353348389981998473341228869812262784250305644591075307952216976047566370993088798373278357116776522938656637193255142376270119739443726625903119386035926284004633877977488363673486551976840932082727322435171413681757452701728190818365833375411109199130078805753978476563108647697720924868583993115601415354637529507126559228130855065389524015117604118229726233824506481941650150591164948827848264991239663158857199673438573151019830983151822256901578340138038154638952860322084580077703655886085845541920900522946279047923284295936767205049544910953837348686713912584601698617557131550758777071135667960868985144649354947331969913987763394239785457698382387548091746680821718530903587420548187295822580973952325202463398072103801710498047087883549068034218503263477871061431576599819266261806534150860574265038093493499218908227020291437341201421996009012979105352101141418384001944561665751453325491251778570556975413499469021142290284717068895135505061906615539000595303849930929646943259727490627642872555568047267638625850449762382859489527498571077550121902619388842036970300873895420420291710083023007713801440266790725962254762017060986272773446777254300117029584343440737105145654468558252182514513913713848066496258698917378980059159255724762622803229023409162642208580114760889310512208683846835329503280956787128754069295046695975302383539716060605705572453467573770086631545985921758962274742161991888512950223806338108404814651999832012518706450890371021137123178541833071873813328016479547806357921685875031154380217809243975391082672672684967644535545400251368851704840691868778918265904026703035715823757858529639088833888515961148949954078086367726933477848649869630590419873498281578807579389213833620923317927510876415305497153716281501324125269635615542167176286446822961514996787924396561157042544903273167172201373598770748655303453132952317400427153965773967206251097932168248354756368349799059292834852229026716726264528927165030313951134172475366111868882520210410558315505044969177756090382589522581106420672539202874252525669552478420205768209082116491584232311786026954990533976597118560192779849595968483976448349291432982742189530501242331216953032180020102869464114960557705521933490071465666610548457274505545016126253351377847814420516405057196855355030706518909029606863790463107069797498268336651728506411199477423716698524129229484389964138615649501556598191127496539729165435987269806483195695398749609487485992180515810728732787523113515937357032328460982543249270964053776577978519097492709461781573149857474015189463656551442882376879937351268192425835630347650442934226094467593851306739744840996362591286478958316164465847505626838080690531735502796071011306659673446486685473134520979153584034159799802809258803352418509206424522408538481667911879253224176068560605073751167966041405824671465432970966307249010280240957749967587415031290172462866484721282959305683827643240319501003026827357776614653394662607093512932024741957352212486286182523478078208890430688214171680614900021827678127093990328152712595438770118670010133936228297040109761026765666668854422402493151004533393788220337036135073835805931520790600733290007835123621911430389969339651519905900417884637486834787983205611266864675282615099613423854006363934165203660008820777224496225239599485279754393115973810644898746084661272251245534234088734620477540297828772088025175669019242698307001546169110240948865010916804886341450105675136213478831412587080349863031327156787346533305512499504522099558007233500323551908933557881977052058081388227964140039170378943108808655436299883063985186755402253435550474405025871568633369588724360237416130875804117940518732592389359295880959825599217630900094816896551365225185759066515594585476779649573573454191592345943505353636189087653045184920878352543749285247093708394939920554605159221380502833929631338353400859938472278932561703510844232022613099769617744634071747626244802663712635484075574099569606139847339178994184638179915758981659587703736745667187956399607730710902836261479584615606365722720868851545518949025975130201871711808149861869442930922648699807985348440988992464135805217863376346024822713057460912375356979164202930895961429942678005237920131669133485039074604750773105854826171470244833208604605921027180413427705637824159616766333469471237174744103817226540046813553726805481560546731207132814236621416163844599242303413884237214859848304764593089631743356076467931967837718881108886714822928445533209333470693595487277703580793428673011512334810451958197260665121867706110793405428634211955546379059482480953425379303099841627001468152805305602938560382558143966942235838975905189506860571719258659321737435602661701904498997652295991000148364355717755994143891021452396194219499204391369466016539482871713401994684420472040104667467457868042899118658860591714856350446110926068477390108455253177179838746276087554782263895843879777551612818158741098826921882309386870091476882909689894996775406633873207677231578858376834261786361244107203860737278622054113931013599511943970435920188957799989255981131684868480789018533188827795228482878781154494245333007055007639497414813665758897325008367087829955565342912414018246061807984190333623996400048090579153915755449564084828851660399426651873015832094756510133903869723926193087647191534007034771102660119291165574343250800323491839580902201154392633046862839528970777028600222040404408517874054131117567353360712420960952633131054540924859236078459709659705049214696277345204571627505790683532550452585832004427263401813435514806375839049187443896907920025726013986057101979651197812272831437256807991380640616654513370106163160585332368341499138871343018614690095055959963139192574676469777743959953251675715098145098436771511930481972081201366588712929884189292866134016806329718723555643361258063736243918284572122654120225564242112557250782045776472560060341234229952785083140908879447126959295405453004625880714221474128715915488759614293328962816084768135977414091940628559281781752011215426979345764481970695759169018360624598243155088332688413242878945094547197131330949742471179700425128480022060526968332495607500917896549605913583477097369800353236628639095773584674349933736496331670456098953366505540089390485799412014703076668810800336031387903828176837874798006839950687265870831430088138234035781046523760733964670560689777576172216057702741779757314172515443149351485143413128050801253926404856209234755324939451522545518131149343161177607859219327106637867115481040514372319151317670265464353377181953044218709008281290368058285732182203158397017048493847955318079318876587314144323145148684632068561637078364326176098424847599598094184723941383414529377268810424078048833824160240816526605451397510574797836966429421548132819834522682303037236519795316899676938147987138862039652038171310234446788390442341978964227624323899212932391973222529674516181936163998869103949781985665742075071280314866231606434023577841915704058248845283331622257776940180653067666867140249279136325532739657552536008237711118186223969090478488811729720964228261269238527910950435815555933800903800899673885507591485278733128171060132381164502844890210814108189872068516269560270917555058139680665884976834953885096914177694574473517446313386603597382352178645358772805813995042323746579126315687332430871441542854853103868600969089653787063214264967693277765111392279127543147457830128134709901567662007110244503660404577422186156014767115176639089221147740369745736662785415546277135935171652532473370408833065367788858007635909269915057821059363748960970451391071802020233875173767275635382265957022117999576216725715861931444558221344413682182117895887054177201663739471987324703340063981598907377554307936031230275855632491582412823432760534927125263645882748029985542965595316918469778404444145253572862547107727400176828557651516197166843362998288459836709214674453533198595254872712379254950398908402709683311500834062433252715189998733589377831610652612804720153249236132233942489757395485177200805312363614916929990563159113226341004432593398875817743182936969806799707416754717891925047425947439595836675128822194409067901773534111182584818782313017159525891972390957965940021385642436189913393606547725624836444500357476970592829346104740502416140358312790258352264638074029318274176867227819424407044764769761511751908030477156927804540032927076605195702301034278809440686359369602358206636344359600561055880139119524435573855151432420393185425728972750198524665116628207280130229622954621580133906247442357177550593555239421016390601344235189888527637209870884903937651686235744514959571005995984655953080124007504467730175631510629496359040401916976626410275508237188091925231517874580214066543767696994437116795126673005865944675765845224378536212699638410932830946270166505024650322124238897408453521238138500151129921921003264211045715713849667120868176370669179530713703292841739450423702011493507253137484206738119833473807526189733283161773842837697435932000347869278781375971340878794176160597067138215081035594339391739932099840451526673408625372422468980904552869995567364761949063756820821322936514758531355448756458939686377367768517929901077504789224103566207179714266317909591113079039578815249983463360389902726313997608181876632994738160211617391836595695625819278336993061888642831706871051454059732092825518040696064200025317285813865623256160154921635058747755385405597693018251345534399765420429275317814094523024408042399694498372742232027899303220630206106108283541638685873240773702122711580425000411004672629812508705336490657383126320208268345609408443460202871620217083629507428339676716762813906229566804424821409642002160843826723967683685777035360586948105492537869640900096690249435013127834479098932192561876736553274820488115390851546732488821470298449900655777015853464553236522270371674534627406073940083434378368682684922089577309063576608364413965369321594013990191208721736148607949853592383853139029375424259036109701731138861858999990373430671589533663529531963342058994291256638857272314937335823277823019909713948283252307701862116967276646656888870602992297341288810644169861419183607439069610325511977707495523445995508470552445490140070468469146764010859866288096912535303056398552431529446648731343043773532468735459098292425991787397162509864541013199601898271178094529623130155865530184274718021337072157741570616778875298743306770082746696988308780935746823114469763708637484580261197221529997063049823259561439494876222004134284798728335978244985347936351362777228948273630332734785513456234955765656285407164198190655207955758630035865095673411926347803961567699381986351633532608469459417213079119713708970361819582940191550144549694633723727258335059884403150401190775858119298497486995793196893766154843597097332420036309124740715504355307334683483962218028874862028801062688056965105091328990855966671950236716182793180255644819473308208106256479333276407723046767954614024318293442923223053404362415942426651139948113909223030441917737591590646308161503058729038444797129492870107318897400122649412942832703547797125094461845055115918578155906147698734275889257192573923667716859999848783704560197707697248928310842047296433328442381475582228826794883684740765890792676261143811026892612678003372020217545687342875667381051663031426351009871179000213245147778051921917725793631926347241570705157360934363037473456903232606791739472457220142380331200523000748310595015704640091725919628769580102523775685331552412067265197156998638347499676294907895296540291963750525480073885920415494707995214154762909242522452579837181055108276837698742728032298412552187499138549477104894447255370949211969664217730288484227750279994629973100713496870663500808273662520830977568294515490681174921419354357900187793020643637043085114292752597719102915010551989238065661555474598734834180335531720843273588105865330769112994454746351150631576710722276008257394224573963280102203491709738301499570933648811739056312733361359152040999585593407630204645779068464370677111170670271199113155643949872467621138569089227936271483574652745786153367427227622253230368767218007589859391403965532819988428921539761931011985007039679877732070205721141837273648214069411875641289879745148209427924832538527458637040897240693714234939516155603514526915425216223496510879646369811066965334320042279817435429857144924009580090683927719197278014666073143959849601029109460969324134016956987440025085385362025497093004286306494187094068222256387209719641631568440013866209156671812551802344512376488808874619079008580709776533350874316759573964408614825395182081307293130887125088101009310173555367096101590390830129279104082018180004769196577981713117167933840706777081427651951520006497882312583029126095500293342842516738597948657755748083208189302322491443723368096055287861122609480250518811722722164608412690964657576391579910451978624364871030286286561728999374304878222282284092671094777404503530237874618711475190514191923183898075156513858225098267472922770162753689967439970801421407862053982423980666456912791759960358164008041905487774186321308246661562133103981594287383837253136546192878406711611687879621611548689455579152154867602901175932085567212880678846837966136161074813058135542812531725488236512730590997963722375261326229321939793875933561336914528505955422447164705178562054868290015262705199176452079170869341083839340344786184841912633254993361989357671571439485244676676247508352769755910115124631992835277420558642078684957422297391116834929256372104789262072368991092189782038041319969645100772814373444315141148704164425241515492522014120254293928212886629323488666027033878988253907590460424999117349457069581567445794712076310053417959733068947361105656763255292007619846629000211406870456067979647936897687020593075136784315675656656554823207715038486542446242198277690335487102663250744827680872224026242146507002474846633634328799952261389504052588745469496727786488568950095355086542032797935444427824720294090006571952898441464701877899352063560485196740025050215115086690055748833660400124289376940619310725802548910226868882199511707168721485695110380423844819015328430921843420138400771740964712231484576195975369727906987275951035470681061772249112698890828329699682914352821707903337482587741916658551900623494178512632808677530890571168533645286462577566428088245384383020101646065429537179890995101986604178945582202974858741931089315189445041019473523004855393970181783741005254237668785634420891044260578509428471467643672923377226540059793616106712878647073677890905877979863852894869078197497898465315917053576089757672031515908719496408687923585145306848053538613911457208881983020287622055502702048461697493199930205803167057030448839345671317562305877522960022143246692516913025238907500554405427162673413274398002600730906448645097347120343761462672879039373491349162087665864818004736942217619797860607338367924487110607803464133063426207205809937953140242048176286138465260529946788043324605221484557971540726332517296902517983448492079649437936623329389649026190124908522414477139858528412510693913217831970453691379328514845642975955504504349126215447957605967628328337181657616368394935383026635478247195804604054279476068676174789214125327535605552868174200714816453804197675969833393225594881561865094995592936831442611026878681293914648715378424560134492341936791046911960350150114063776767848187499964902777699240552712340437755122047112047323864729306611939582487001023972407874885427117229237882400209648859520913197251311865740604385355387402736097635123401632479674493278818383047610932612798875044055432809558666195361844142126871926398619918366421022169084455495957597452031322749454386890307940694658270922679258228003480494667516414396952566005088054085033241876143514591678134758289205741644009672871282827289748418847989991853677938128532786168218221164865327365942927223516082829792264948802260624252315319786632016187641897478825374716299593942442948165930697483842639161395760069566045940687165507010944466093591132068079086022001024599424855689167401376353268297863298972278895749431773100701390204203528218369378251794305410361095323307760106205202784616095762850229211743394685307361429512804617347381640611961107250924862719082368495639584634044817795404415069792735491391535254431256081262372493652116109662999566471387050996368979511524443255407966695712756771458424980912405579804489029222162614465490806688896587602071032067883693546418888958561166543036366928365202550978630990847259855854572089507405647165224278303937847188167919611585267599502408990696246193467854765204544900778508122250999345536331450839341619614654610702281445999014559643875149089637529923559731636790886304788376068836442036823442682848123223212707254848652178162154584358383457364822613201592322379095362753898837362031036793049772374998634927251174125448754472017065052556828797929622157177632465675516114468919520074867664516348762146778425802009660491723074433794172488389744400647229426417477389566965977030723790903213503514994016343646958822603060819555958159393275109835366880595450353296762221500993352247924550921203909677480127336801870365997130305013083869202759597365368704393605155444750058088705596290985458430956434257675612732271394436256339069018537750478336668919146918008567919117922875058259218308966901363352013275289204535419003258263031452809791833366076082438578105052982352882233027217186498875265681962451631390332441036660933057891888980453689576670102604373686989737170488149264660997108388752676885024873201691866890258221031013782674700953854684744405582606184833175994998337568014111237008268023616191748685020475367489976004076964274777972342787286767990046572147410204249019176858189030267680212808697967144174598304308670642556265909358919374747231756876411842263378552485257138690171614683515316060529017070668683713912954103425588258076930145876319041776941275149867414456435330052203425797747975847757056203026708518886777638388316305321420985823160465695679839418213566436680915101823256717376950181716377693776435809199892711767895725755248495914001190363636409232802135756135341068373544156678103908328528853021020117508256896144670348006574169212022302961078614278605907882362282427140760693251152655467929875667415673909469602388641195417510577913848456296437916208906873002780942849550289218697879348929709665489666477419882283550409982664336014585553738672019011679618224164519954769175031632092928530105764541948893358354690789590129392418703469497694201726826382600203211737282795972122478596552879380577812610519213722466619572580582917224257934763194410370135939951709051996595246173360618661433242270932834586935276116863045267504817988768131497027963976748492247235021404180697457212862647316981928772596526829653432266593238274409854818404809883971299005651546378576568700080853678778379934253071580314953333842682676302716848056890713876277766204593499222396861775081001343939350698631463603326480217390292678363348300680644801267709008556385763790700207846491900708521839335929547694185926686593048789330186098736127230407166170774588007996166056914586932709499428309115795113704801945673778694232530309928422199183105292171059433999646879354121401534536758199155099640537335432043030743743625705952860307488449526656607753328701582675706302844325974086237133884943219222801935723259496588387688182128246688032282897238127925633736178694153752286465965201135534854667932844378310979290311524599708827423229432822606149537680173896263575529853747095706014703234538507454473146946380611225334325952238245094405175821798377203719703463653871205212563092174283945469291878784641832159824058995854876552770162152300797763330375842925394131773609199250056255623010542566642850595382750482502874091382310104865231180207051228464459964624192509985017069795837782310471315643984959670900588542296754565127381473056456199040953883930543075557117355080952304761176208691775469955172168986106663556319393543371145217132293894716959923790426097278884774847302384485992091564937700429155470422772869714283866821085815128940889586007111693372737065816105905942531733026291907650707062013297615591907260055637998700591461532455959619519963002711948778148016819819538094420125840931111719491054031859637825629566676084930981381066085591916088483642795424116697986826461922915446779653316471152617023353477349287900422264990851140541409631625140532919446895500957273740662519277782885941211209054121435712523905070926342853092961785519797519168899956989786286155269964345782169802409736121292180893855218454007578506322449390360629032399310738013519147266331233394401972297947565563357956810143513392699181575896170731892505570504710560271970204405642400025755825112728779665574207077847125583793158496195077063640998657266098124888169423472051736920585027399626161410894087887916846515883903970613150878833551704247282828997074374004234922171450209002637690653743793554700504189066089338296247640442608063238562327945111633581945659946673700804619644184700104918537127958233124418603220352472476081362019872866442818868755622251992811998076432772958544010257479413054448145494918102021981911412474797979908636366002960706903118479163082851552268922643653047899027031650712918375920395154342348650467557150946449630968643918988529881596415742438407134705096038383459149510323652894888625173628252493198846831159970232853209548295440402901360837759915471270259671168441843126157800474905693648760232061017035849268616244285943156679832412916106552925253406165324696073251496768503222785383376915165395189744956872333571297297471897907003802431211028934575483922014089595766599863221524699730967109723203867862304849805530006439791336112909580162941894207229260057295153703550882632325730521134990711055025225391250581725463650741225247406764615493057887163249255570203779257212335149706199913039406254098460725435600639162901237932922028533844070841324554221694665568651408788421698239595976362870713084662006884282563388349250427429615876382997412041961549888103472149878001410476043760871310485815965377354645149377733177984975529234042820198934799089028524594234365822036351179036491214279005317149617035874323442265508551589712939414636863457792103797044284957283090917315411993143238969985583017394543346132228437804532871801390398928632622227103032952837786551780274621598844864667930645472313711833043070143567432287798438384569070855430517327589995115600511788347373955851829780599921344088622757102935936460314995821489496098463729968637537697226536803351823971184078954692003183217432274025351929488383148327810995973292457997473006032003541506165031159897039998706657736969034831014546840437918672512187467912655016681274334850393982573935173523370550744136123010577830855742510312094246716293583493000069604674184476328047346775859740813677081552079454013050672692390141608642274822756283301604524261265006745013907095558647632671492134322058362472363005084748990353349193138889389154179133719265732289090974735278359946070485011124163983199252337315073081698757674835164154396120547421392173235148164893095827028397609372859162554876258258906146149225259150515560015321987995173313931604840525229207331048226767870827678305709257533327496113104280146761330938425444089084455730812586896013650652810080511578926660552191501417925448945429453463670108258289371856645140347457068276297764640734376963229980256567979467195225119877040643667125042786450635516213394732586127300453628734399471646643875177864202256963359652620722494743380199649858039887318288167564882512662896050059560996596708324147248497476610063676668897731539504316318047547775671241334223366583965162582559388407597333826614971557577466412129079273876291212050882553540204459426493199339173030900495241776535018795626487317593347138467244650593101468647230198363085618765406564976083067697775201956550148635110982973513580197304156706953185200850513647576847186292089547342801955638589832287400764948894186877090635303116336394389232655397035390724458096954582072504007513394674607103018276496369954243392837126551488744660905674520766849346199954995572533196976450455130174869673399829998449536910868843434297204968442476670375849642211772762258335421465984967185997917287885668300661661346659433229171642072627154641559683063841541216198363098280535485404556867798763750562187048573361360671592266475790839123331298816670553461210692729216079005022776215691761662854141287991615555050214956459473615000158463278208712779095725947223687174561440681135212618483389921134907278171564504971774404246224605038773129169987694966699948411410406584286606833912950414130335845058483899867226022891908941536172456694368430435423582687538619135138155146993826057184555580260973419568606861469188752755586021159314216009273536526520707855543404697975256378080151478862021491746037694565433943260831402487958890618337349034826014776613400723685346649086036542699491651233233298009019264288905876110162291398027937671351027813824479806587555157512975963128676410158583120375633042266447075816050532809326219043263945167795593071523203299144894038537866362138801432948138647134320434298377474767034098086954698343793531279125931787210491632712462478079893108803091408039137628540098088354909026033768089603920224665767572147892959808149362433885402012772601061843759967231482584624759600047167851619944771531242695813292279254633653556295860706860912246798582097100007323655823564861306707102542566958543093131372392126395084701133505531904191869954937806092812194530548477748494384628289302474000612706382486940941873471817159051590805590350765029428616180737666204047847842363900329288778681653600901800420053614476370594773936625440125258580285834278706020819767945574491416048509570097654872043993555368076919380232869665467752142056904583250495803549570122919005979071930809779185564808140273772635254936780221493579317581251363413241765126030598306843155733764207408916767371428538484008185367738262683369683430339250799897757490884929704472711666409131535629444272821369024942957297193620575940845139269266565808326439277060017914396825519493850059289402001506320852761100322618589208914455513770792035679285678020147085235243102392480592398749088231744875399748640688365475803129832903813243199255091989754708638360580528560450289200537543682683951041113909281509601150019003406871834384632519144639139923126952791265354356980218032733012271436065554416750227617572130142866967371371718451613525429909190587634366951646128745012520963249650809967374224246204681658316064203164448878220395461945967373091340678814363363383536675529147424002574636943777645075766847583153460226083481468262427569205886030207945868140393142322408790584675541022126195174814348974289208722756462656894496084580050462152989189159058800838700089591496340275916948396855858478010689145346567607284920867252461682085569494854694458111866439493243804765755332757047268674359704702671468141477335947149772730424693197377083318028887883902406249270752128646388505485042880135059975972770723967341711618908985731094232617547495785755412146589583846380943442672055906854421663960122033220902656305262857570480622512764824358149419527264497168631135606255829975360135172001876531418193287461156891295264171231167429951604701515239667279265513617113840264125588819163425057580776948044007201745420412551220912694884292069434846686299155868742179821128177067650888102733427606755883190405308585509871397482284009904518983956704731226936596165365321289701138326888246955934567833982537863142761643911309193172750645419851069124661869219236403357765960305992669423341202701068699387386659704060607985310308138435898981581081562769039737492774645952129590859447265260595316303488096525836321992786323625629155765157941118841426694850657800903814865655018890351573309515485086997611504415249646105824001023971509571973353458051039290212888066720861062798244742259789991021920893962435441265546467485464645904801110879089164606033186815296126082364221261842989887122982384931049929565335626192288512284135370012304380261784499564925122386975973515335896065317285859573304828382478227690913368771881354877601258684675211568140771360169711987311437932464568539638901922585827925186813204996532520492092192938723932053179514257987596775019381975318265677445686714585739302569284215786474989250385718428379156177391237433017227624421667390298656364677659342933192472979340796512913146346827680717987125838527530310044453217836231701031660457923687518432954282846117127124843781978785357169255192866357412402305925240445892667644326876290590223512844859001423686428117937161478878097060535658348883226245185729790933372342697829489726387824667637079219849457957547900794338970306364796452671212455075358847049502116422762665365478961198878877706757427398047579585292906309984932420648422517936382031817541546767233013038286732732751550401371927870089002165551787166317905788993473789309068919560321351359225763906564300588689767645171103898143330644719695167981206750322969439806866056533415968619704303297411140590260990735141112209204669983846064890444159804624977524692862948383763002291520566837328487285343612873573364168434699628309525351156972436562276794552812113189301236889313241483279939734381286519790541372819450866169335184958987332800897377704242082149454362018459057153662392945016141972809581487693130549187212584082319238649096264563973391078253273590772209163735461707402391104051302916249591714488502580083384183669572948340121251648880025549759892736144291493402723237289360033865929982129858881827358308127981412505502053707270006613053851781506883269032429320003017555075436660593036056018840664384828917171551512210523547798283035516341541932048956430936510874655584193827162999547844917070371714801697036801557877268821180273878944150009627052786339529276560574479759733910770052024729618607196288920820719042107951578032607861218546922811787035794461659820781973386375852180302833356184110199453333480716941617064942106620369450615469523922535729298189208628376366574005162944142408262077375874693041362720978935090497647591976442506379641827299356533749615406226931535738972880404005768244233144719681544624982668578999021363840255325332686256483697283505160272511379021602666606347967614341313292965521020359515008237693535461106640317479705547516554011509610858858004645243148363785386588774127294981635977793295343681461139154169653144128034791451193768893744282807338569460555876030338357209830496283624428461110154911805839453401730475088650874719451884785283244204840237262271059393739702406209129047880181786783466672324444019264867921053391828294273027216799983189470623465163103959078181990830380166780878659870417862135617358055839689790327844878851924777433268611942765996042138375886444040931926505791538756944450555117024383016944188480352137860231819213893982998059604964785105257205276031277755908721117812606640646728387801977537014659370825395456165413338383134385879983534475709029429184304650315358548484298846523449965580700787923114128017454486213807592759236769776436863652422252833176139365789674251780128571986922602941967876238578344065641475706023334125204456556770264232786361541714337682670001664630527315132367060059846486398627379223363884526098612085768890779753908027157992485908019615385860139416314334986827210206216686913274201908014528489922583170776157033906148735142284062926796386767272618032515177614241967081957302846332417622712232205778803255555361481279033173928424854063432198958946170379966000678399732565511959303982683160322191245694222320197518911987784483965300592087264824686232418983473898932374630350628330400284733648872320899447853738982088102849008333647335500093503973094899975233513958058421062713830968285429076478070468705621517527581283193166595366293400369746420299397205327675471227379747294564902880367026195400054077339121237352401751124104959527841944107408775500027214946758450637636773548945277052721111835344835491334884401906639007278469118066317073036028254357372023253746316374672321872509939031810715796197190869868397677849291519483861698705526700582199036986386569023640238533521297558511772247931572408873416549393744381985492105049050230582893594998602395179734250040910271580372898394157570411160525466687453893311999608383571461157407451133937080503567478879044225672190704007827327992825150182944924348792073625656248291255168073872306913496619687476999508469153861134024504317198577455930334698599763162409306218412987931875815870048582319459250384702400916053824603559928929275578179710329861928711684273351917560968107059362496325503026782643868316712182180952360447429234934278478931639304064277387513793036039597055478116292095840218458861792666000950605633410489357973139990671879761516138833344078675443666186369257889791663302580788425423344351907715170926221924471154771366414188354773436374074677896245148244962307566949109848791688825934687442606527071803710810567912205125711809185536141553473548127285821904367908093912632883049908233312126446455379180927153814805747855676085753046219764807233712015896583154486712090915080223625546527039408254470776996402543459858204082459015225605814438361122186240629372551572011878261765200330445892093623564234404803210473879568436465454466996368943348784334955760671082048968141656425699947110066086325044281248188574607514464471851090733768262974697884833768745856108310659425914113977084562829467111492695467607915313596959069095634957235978316233282155532657385385123546225855811192830860620410528112566245742646282680086130156673972438774785309792440326805678476773762601113056272383368939981914557148607407626049721221788245959487996535044867706459425053279777700771740326816300287272881435288321731881564844900529723746686535125502994446067962785008206092526998884101203332056897120674210817934636093451239010379960358962256680955687389329704186542851364871818386729412566240096940835433969942468197093389036326764858293147906632410975585054757031709850496411603179164778011045769468024018839011039641576788688111677170653397630440326422641338427627498342646537556359536764867652779638902890866484669003346584833939610563778166317333147174062234826755420211826742484495414137107847593056523864564926363879615217255685180633441850281943195917443922819073305524085039447688177921885800481964035778364215312922256958189983177913450779876948342438347006221168152379850754697664554659771327272030908970592036074381063125106707237800825203013347581376082577579551250668028393737590468897580992921545216533508950929136521592013895443605040472691620078787730623723681023940996574253676383562191705288758050373945406863811737772082803669446664811919860624236552342597381578236534493556479075407258081083191007328613893369279237547205530923421981861776163520301368859899288231255535015229203680414623670823917874366063983222794362609773271748424492901982113382520581223494896446292387846677316824766182965674552127663956331515680236480765864940418119863835170096851822534882164893953410580174393805159728442707767272408476771318458226255789616215903959144950753060018677460617230671474697580735758529403815773430671300126903488858420255519807149740718476417754800661260448153747113113856492849752798731039920666342677952214776739150921973617711086183544824807666405092207367499739890391686286194390857429535306869852372588402081390389784933801941515764641000008219634077893927445897939188254594179521386846211903744354277199900723850880508919326362798168420568240631437844526204556948942338922293069924579968364540439348035957738343468079756131004420304117211445443751874633472472962407513628262785495300980885448281656103646142408223805178191103046988271403577540059179000513634694407003537484553774324073282082738269186284260307697534587002811044712581467396669048322894007983246383444400952922674138681083735976894042484002966300247519272738415700029790060741876227050482787476254140279368037042659605247733666083735919794284624628296272025659143569264572225684360777437969112419954513790839063226499630501918387361571535801804342532655266476642902207756096817844040250366405839724590832516068336940728059405166092587489636724268016288896747306938289718185406674473144005489440893392991976837031616938652796385688889501647368252450853116835356197442316939322072740768401330155904112934777455760782768233067552178979074233691695829721584781778173429692741372282506803815624466526751910646316098020199774268904377639707164363270654827776032327016503889589411633854985826464497197836031133100332830626918932949681413349788297858628711260882028977890454452292614563182703355182904439433678115113054679458734008474285884817388135675115636671678389742707363887111114282436615614190548615456604623135670738877581074952250757206021650988224458284798280240146000547007053743620626634471975336176965191142467809914529303316084225178249798514590169826466405159376511336402047620850485421628802271013994497836537955176768646628559763439607082308236660145185548991234041188457602386482765116003358996090588474147185298634614446042662170371319540878090903289017614759558221703245426007276827614860630762981440410086910701301587822166334567941206973214142425698461796510038872666735255963190384623784129598342339767021828252371065375901786387332393369308312939497880204383671948372580293876049912437316209247125632079803917037981335145292760799905107920019673631920803217170064409954717258607232012689158900396550213093822907949477115450255023923603411393581137375826322746256648460291804454058207790082178275391191335270704320993077561037582439188075502630800356646259038466244140822413500444843036247255421022736213010685866817076372696239935916291266794139449623426380044049963089376214491305404827872804832989706417335787628156207035847776989519585109446395926373570300177589987693471434785589439985096419597203915810972663265908978273044818759952044755140342756750050181510076037974040921271859925338118526259811349389341207058246325875291723551184110833655181572216502872827655399585211532007292706896200725918638076440078775749350783675062412068096784202032356812169819216638407975075655163566779982956024561579235767730655510855328075245101610024849798873617251408739225855000033714177799152028796330869822284589357342510110125592721646245771656382684025155227991500783941794225342580689781359649374506779205729910223581779955664749212507013458473622073436681041396438276428261777277044984228953472562160991284127765910522147717723298718705831855446286500701368078823535362353284388162972601202833938804497704577027806068841304983984906721823288843744329136396088435785239423984408586607257707733147587439636025514405887911496826430635148313693430417349422607694739289089571099582659958104115254787618075097121549901055004291947682677468754459414109559815577831758410504240197561691706093002223258079640732897943226785684375873140289176653994105028030705228500483439745926191551417108571800579652480439864608478045018207554193285951862736080175470069838894234242155517038580402350957544293727404945415621705085968401528882536959390105143777909053123752140373836499172281946573792113111255299945771238323931910282632546882429489209049531789289866680816109612364482306112636981972432301960397835973575577878368365224257774295978942657641121272429193321487791086909046931616418526771074000423495723138991209209930539979968395793354544110816093707982363895102005589837266267562042122719214942856219536104339137026884923587129973502470132211248790481737282011168305793122843595568552793570427737940479806432741492343917718940976200696312848003822446273695167867375987741134124559087020570735411987598090202989412458670168560738877010743987503047225614978688150696174138288432675073042864837427755757708137315301690805206277347502357451799266125776081850106416886487589541562969792685256682757552260030927709283139674402638125141745433878782002793481086994209777908644138837274576411038882131413112572120419909555729887268991891890253977889912960119990651156195903883447553965277788834442709151730293005535835053789189579574515193574368793576138550080185356007377335203435264593987844734655630091676489684477762903811581058346586228963808221626782612072307391769661758834786672055413739175466098157987006212499593917513814130898302713721101042051866870227364977483606055515593025500796778704389789771226536524768909779672153735752765141373469464042719030726101980062953161652332880040602720196017000561779857472964292648845191654815185854481511205491758217009271503053320023531075568548288707790856028724490109053609742940990434030768731971178046679651880798547933765387581456863369104759325864308234519153162755462789528747926015066217145715976720132248162597633493680915117327261913368298744969248908048563200377442172418583073883558016378441872880639202216929963254918903919689743906103027714653071951383164247324446998262558159249944586483429014569935084393961730425759930562532261768540488583612121137004413303398241489512760950308824653631368542244345527562710656651760117781837910979955670242681574896187498529206851494201598008357850311948063468715828166435469615298474020927368045846016453311670207795332341231428390484253700756533576559051609917962275093400458843883541746308111339228412523204038582338189104428370177498043809703072968817315284833971332999249340687159273276919599246512621357193758167224201859775929259553132310486101974575819207479796623601327111062762589739179827855751330195930319341340287540109487839292839608417111762430665915602618039228786750610310817083870100424804608556754907304744876440256625800169757762253206083410438312277475613590841555125474794812388172605966693607809456791313834875261173041877064681561669869302562460058776055536355172650745109606961191577494334986757762594101480672286480190354857460976715279737092003922893781467516210346745005705755244371788015552091262872391117292288511166468116621195932560125995751854458422233933551288185343329556289905196874654579804428139764589300764932493847275375184331376441132471162589730979736749073639452457292786501404472506944041419577205085610820935419621015565664215379633826053285941565996466598318645826035497869837464045154452158960283448512356084772789183145975315354364180727193776001756750932563206322351882635271303236295533482839867705012099589453133079936769378209110560772984190099017542551748542239402296936389541039664400753711624438398062415658956420640433135941929676063656157965530996409549660564161352764625771588267588464977223147386761603752352941825451807914359441206236654872994272333863953161573182369595287221561936252629213846447381122944487126067808894786754165622652666150859478227719096216583223509671442630762338769125762673494534858543398354234662612823976393372540438317127107066902528300150794269409098011909179428386123137507506858082800751629411101211325827093983872236221092490236778242812067608953525942398229170135172649076307311457045063647463957396840401929753581829791877602461051266624713585647275638029228480430761603037381401540511865532186661937592109734774618215431222914379494144185921529156812807390488218716272505344858949441728228507523234623045497577547090049858274561996012856005451604187158542072625282946798788938129186214348767999770649048597612233992549791980687086441214974948443268952131786136852533802302365290951198620929519216432321106321282301392793018336969776198882188258346879309273940955147352031350578604504480737416032935601287326191411766652794205423814021070983189412955051896271498916060550237984797240092887626346428035965656403172646564095454618790449413362600706479122360921128138297330635042564221273012741084102688940011341487664502145756488546948552805008341891625302945293749993517793072324079470002661855377265544868105789272783887796417104156338968575062785887125211467909975194471347843252332726556530730702858836145655704824393325450517834028031757781636756264569252225753083768523235484462621746839972713329597780482961827038392764564468091069548393316333169045016707102586117356155919850571244929177582018754953460154527490085531254977905779461020366619296643220349379198907083134284596027076357568577764877553451859318714448454197722441595264745920474948436772295238066155554639912503636149605709017586758024739514513306612400448013349778450476002010907554259400022911615564715126881308737158513415894327479535684305775962058708016610443420030527664183266695967291137381562241758199181744316246581661601554909845108812909474509190455282046763439473338273223191074427060140578206490718453312477187916228273390874205588031518150167611485407658360584477905038865913104968430998933358233982227354556055824100514470992468197136262005178685222445496127399892409123916101698454745678026123815108239542290534024530090443136130096015921761840683313105134561771885802226176767818440220305352917330459773992328495116224514863368384976335061616006025128036671886334663269044387936161178805730017358210304404358992318244581239218355049463302250037973997418082464260964907569402479021266593225407062119485761762927259724595636154301406876421248692332282752084539301915349997382880050871374518853460535982099422738035596399756677839763809366577351949321684244824006882590048170121775157937621960831567664535270297475748910397054997242851684086655719614160028951373393345790083649036370074723533441352411284877909041637296203704574606503642303752901427619410931794121698696850259922698938851929874828199075968570881479248255881837432928986340610917681569147031002955884631357405376127215483223074791639954896365167270817910986632506023458901181415771601428877949374816171154096505908073995538590895295623933533058146770090613591619369550913725568512996970661549242605230654161523177785327641357111118668713413989841045812748656380710364359243795929944685391362061251979047642390077903004231723002161520677435014594630210026669424242035352938364563506295598518770923167907605939160007244628868275617318419600698152979474557408351557669181362822459096182184673526758190424442618457465474481129002851619533160367618182534956155178466349175440241637130075288906846863053214232258680645068292794835536001300670069119304557844187580175156557300501808810396801709683678099319072651451005591692161003085432690416003254581687760324596184206823844264981877822673953728597143001540863756678477695182087413838872418226600691684036641690555059164473419893350467159199650345371186511808672553979297173656492058846783453015938463498875127417138477740963366994617998536415786987739907285994527237128522770386169990791869196749688738361934931957894959795037571038398912455050231265185578669440057491379826908800368434453223024927103267591809009228018190548252902502927468953684990310114170686099402715505434003165232743349026613192443076793960977149572442866682268939454950083089248772277404673973243528795874502219416713139579460247188131137215593433734830862796010217730718364955631770585138272377919053960044391991779730042362951442187760512698031805529032469566402904564313340923764502918442211474563454079160205319519386315605819168069318484048018488804011798767972249518389124747518654102884557480366828076054153135054103198997740167920381251277008005158043596028555487235278116936469563750427457932405710226171860654255234645387684331353707728378813657005410892171953144503192849958598586455563041362679365036332664849237211659442392323215161907809156612544518238840851585575894219779405156840570607523771851874967495201329603040458570624183120249272824113208149783253771951808033865755001609061462715074490582664263389057314782373740910650858534807172627000871965434539765981397237244998941434352778231917730929371258439721814196899898077733260544783214791985204967669355772732187106209707248737323882043371922958059635842670602545655249433037142954259931164783027124754561397971715353946201787966738610012723476963803237692628852894612744778589701174543973665043348592936987930227351005745508696068000890632694942126967288788466275396940705711587106740012768294457182378387954651811512003194156465674950261618641407615679046194552797900847034800105949928306021857210781441431785035492678530473178115563735521606973483493850310911353401630079269379887970328998588296578935511537993121638620989742237319738802188329290348906778590344356281707230994578057687807865063752280611457115658775637672736182990024594913862691687874115401299071606371907376624373452092011735012030600389126667658209143563179044141986556437272328276702687048032531183290847454748350199727480651517870568693799888401279654215159226749937817629643711906884162570315928879183693892487068257486012677839066042187379447171165397822913072837121513184681590836749599289077351854189674019132423624888059492231652222484818387808125702049101035537480303302678159530453578647087964695050445175715874013161221104821217866204766581607533056338015329214806060020381660782141442861170625828438443221015377635163546932205556118294497564105238558221840082211608321173565452185083688486394237428589514810489518231248326357138168819105915417084348261939288718362309072375435058158880922711126290019124316455520611458434262567423804911677768686148010212728388636794767222280502263505862423437659722692562102909929563478314172582920302191156289065837311535358340691621538781315454120235369669015874288122070906709030050005928798169212585717362354781097952363213085884434922482812595307914536603060873814451065589415662855271193464563345521286556943285060714526808596753494437862095417719442671851377606716746454441726566745746594185874904547813394926558709345177334576446817508012516285611720631342525930941016623054511498463191455781538439217193180795252414449793506157441559604141902436364137433604104043373837375871783843681051061260567105777569875963725360312616551354144970760448002655185039065749690347275220248694314486606917137929356374940240734497842601076853081509107243460736665044745211275840019212391411819559541792730996765243048850514055851034632760271544839903600351497848353371526338480196189063688161297580560805878597627523562421802041737248953814149506300847914364218227103773630125034116653827256460803545510720907136492333257542998642692928888690880201194959301501216214026868481557008676951086027514987069728044568267421263402995366029678123028998812546358591564470097554240556296053335499993503777567433592573831681718959373859504391708681110981876224657273240617066338356021736328948804887647990359806770308797755353789219285803883557644476207600628023517119514537670776504525604133540429382359304591259197434384925092561832672099209907004102975153954268173387503421804911479680925588814742442321878284116794190367152733343702027802689639731391591535796769467284337078204879070161668793318090744587161854715543875468764252334885528998982136752534317071128414512168811364245526388280270575059397967209324123111538564283332587049365419742580067207887253672448674834589070119767221517307757206024824767275849444466755194424596739354235447803510221123234271280948052648606368139501915262069430306370700320878816732524252256224301719005637503027553574873228291815093179380928157025202616412740256025224685563920307562333453176171563805613949191319802765848076508107211085723048571228373761578831152469710045593528212203707036638814175418466979906671833747748172126468842655840086823858615696886820232345005227528335433944213049258953736442293242580548854020381575339264433734036317796977476224928210895572758419650320405680872746587485966612920426754190042325248651820889297063480572770999608690452825206125075796456325160402575508837033838422448183023626949060647214336836712028785209694134834235686250298679465164810154035372057407319051538755991266958714985855478490914117911000675539537509932401869692422657166066907994818746425968351210947610978527716681332315970876263739981756955061879050820826992655087856824091496118832536378396735960112856412312321565432305475274777244225025737012532561010450107827518704105089753322313057165073021087848189151048691721508604349148061594761053731501848396525127149127750014005136441399622598579047872034191797035546072987670504031184981455891049259823626947429920629832684105282092112011164024518518146958005750256945637324076652025999790539938073858128696531963465474276830775858374019879939367938673093772421606767183245988828090761511774184628477365203489417325842384993608780128714951974540509426764983787462099118060287288643439735246949137769235887143363718166928768497587444383413125181629425123037104256787710634914301336274245901561520815695573580761842434427595359040200252495284620507223082334503423756773869156688753148342423224761969745642325547908750498543377875745393234131409644761240661633047811665092411921429834353943153884840133479463673223148416681212581517777718689456579476808292528278160674780344063249091373389091895119973637091501951418723622001617637592078473659561828843674965673488251541514428991453445542676675084533191952048678631136463844771248663821286446441739276451573339412221287965715393667698497246512422538815410724484162140618973422717497016665580288196937596079665427322508897689397178878130090438673385315369223798763488836105411410395357991344142854222385396461698077172324468038033276611569248622837350462837466960274698734269009688814539145441265208195691667623846992526358164481333774390856109029087223763569216917537742937183236195022698551938507955358495936015171147928522705169380448379889995034709839186969101585298784295656560096164080184800616286764808937619929195167701342180976791982038106222953850141320349682713336755652746924101938953713444610821303068267706916620889920973394602486798217896426969025036822776500584419834869433321239855271277426403860216245297628782212005946726324427168496087083371567231603908000694356833028939830159168182066935008306570771901033422336040743802737408071376065431569391202134852007389813621934802641650710572353271220667116176527932625281169821176571120035753616984312848896318828049590318709053345401679712762105889125221394085536475548078086761399362744475614700693596502207258258417603342412952149614570459068115807178167606445393873727612015167898499058678855417858397801560814436268611657410289220125124793045461677420337143046587125508347975570441609439188908825949218096278092543293772402170571075828062843271040448260017341600463686869963502106583169389371683506003229090163746678780161169036251025203694121823764178021417757754292653362220290634628587284662740103445467248784088009490550368094243029445618954494496620343792613515670951492273329454360804812138639230233484767612353434168652433988291046823971187640594269731110732390184428784703821911692237174360412988567648502392240173897515774488506841846424025881130204368427614641407811727007590088275722221527125927058537550051681778474359265244810210673294599668457627770376836697943522711588381431959967393055537154948209155432080953468668009796714835985285400595135420675926622539583195801881203633407271826984857357291805317391596296580978358459145886070152290788738459922396971355182409765430192306531195517382230609526239924809072245754190786769101860147682551356512070272828142959093037353131933159424876308586780044866989163764926413241611533710029615512824357404928479492547119068114558922046977128201557635892753916474324581204226561023910078124201387850037121018319175046713170817569496993163748490946050242387501032722962463911035632445500068656455782517667189279817009192112681345255877030933982191416572399587725449312117958150017728472828826585859200150701890638819251178327998799891090525091589084701120332101206299696282617805283023360516808195160898708973786722245041678579127706296014538138343457961624724881425335762397465751725106891208047902036378160374173929519513777211529798341241504252102362046933460597790826224138572821643412696306166134562328513310188897555623628042792970545283990234947587754912199536418811973904744341253237565920422558242002294869081207174999935420227156417456372970646943433881015946931602669318873868465581631406302429555442594864478681953818717772806511043164137861069468009103526711846343293196447484976031692228580837888698891510122068768875959022219990944394238586904130356450033616345751330660254220811574490594331089961254049507924292347843489202545807604838527587251064157388659556306117866919769709813380937503648298055578040229676117133298350335167649115086460270754119469540966391353501605456880770271314287393309402557392152698149441027009837573873949825213278135109874866864882142789684588234799577313431900186994720010510759528841617101525644997018750263533971290102386080065126051989336877135365156895549983169361199279218189769824388226133154878958969767955851567374850199705632469478614590465072412181874453207075744755118810140102315504360598661632749974398322046386412025298280069943595129736013552854907487714216057889662575801915568979128523443434213556178792252217195853193326401702698424629715591728522652153847847503798168857010152691762342660362931577368046595865290968763081557728130354828056367029504899939833421267914117743010321758756066818954274654337479472957473034996004243848610407563199655811338400008518840237424453845765779651068601384275964809750146216183291533235585501741288645659689038528889809690848812494716515602093521923209281239697101198091603090348912061108345774963228603089920657341789978936560064494786339506226048748758685364615282969212908955758978167372104297418866318679137451332600753843232064165201924153994116876512345124193478225205977777894998941486232458862471853153024289834464075996213344831406540897558252373183637847296192077948066165777026222389084487896570509291738931561303275660554717203482179609846655235755529147069324532519536421683283592962636475477372893518829344502226157150208582703806309218820854361974806057351281261382273826409518033857276978033192584542316467991826023476852364749764374490109321695621363853808680649124483831946397493153403750887323330625826815531344430030151118242515234977241280340539332957511445363319028085280958505802852817097850946300723037166119450247722495019904575279460214632000254057605584759621073743260633692077609288015167756229088382907247054863776679969442081926644342473627310874337306664869328663582240364992815894671989258206833544966175090437636607736662888197321153458610019226705569167513072084834397818237557633448638187520057893831733243619988291699995687347066706344041701038144657489694160422845059144691530378723824585700756289272822706477096447258464144451506862208484635460031662219634061528340522089947496990759665370301823873929129288038936818905300867156564506440722834392373988557366532099354305884137698663861742178575524906501018804213924054775860899149052847670136197981136011062336940920868038051347510837597123302235970649876917312878767715217204312573982087293526799286600387430682920949819994933542885191744641201360820643290242629999105817919940671201083610538821314798009290628394445624882184252232555924281750675287871699961834752326286805583983174647273379632250281218105574416948663482973402214831031472185647404997977238894256310739497265722521835225928991133027330863691940025921339287346688478172775768636610514994346737496295680271236592785723457859460442660300473989943036676435674500966021868669489227682523500954202012045452321718623741617168398140797254978597725946175520658745367214852908916014402887696324094384631331901019631357936102340108913931606135984967843574228330636318581880770188805731493881862057308052829398780046804197988113925547845247010015561113766614550187378754822841857954838934087889402498683895034380567851575792611849421924249785256553258389095647566725287974633294684345551088197258783572583538045218578515386844334691627999630197267362716694358860716898853038855049603229208057101714869068939563754098378516252149824093479667336474759750783104602307102325377317948615032117877671653920150967454649161209277797497219217199768270197713739102233732049048070224661997556280532166617047081525702771954443794572968492158659308307707297954662410992150303321288280668850739478594859951537272010179011746353619458530241036519299826687310172115502148142541365089179280386613385723627333123763762892764159064613424668553030157238098966206846897899071236548360028921558274406526633265626954784583498949687461599430216442850277828618537397144056337671025145215381210031782116569677325130347043763426819898393494197673211046442106739400840490357365875903370233485272143176809928266351244295616728715542433130149384039125870454515349087740579014557788316664048183052923472815922425832372528377058749532246278474588103448743529766377734531305264030824992017324750135265043412508499369158751113200271233066311981954498090447490532208917047862043764498264740504719628360528686676516464288422006309582091982484036753575449425053677567523907134597419980598138290346505448542072258421133054983673230141917677914992813511530309070485249862243368133884906366873211602843103003746217658688115630875667119274578381019825984502688864366102813033260078479850655979379921405137030708953543284390526726637683778739015032935523032811344434933688388510835618748100427837999427477536712179231395350245195625629030511368317765233321164735244129121995280872955986621487273303982642155396268070792725519550330684601395045648264465609037583799210243384520062751942417426617135454559352388754990280459528031804692754273182743658569618967040205591836172480893853219446146238813420579252337769693819519276322169062943054738758744275854383569632473893264889148516925625657173254882846806808698394474526472466040855959408151339696845387311110357237104939139693639417342141424752938884616067899295977301867947727507009725181934293460648850946033226504819480839542380020378676057464023464027166348021422947041406605115465721737148023625163374675511572834159959463530786626290139539731350096595153904213034184906817699244551659862127532434114995226155003194028616226239462097154717719276199829194581614386651863742000737655268326555760564175536875276838473549145700273984139141410471828861978077733226048701596815617467235381440308630311761300509320697698011126608402034484203676569176470442129860684057725243392643067697266345960330428663369927328318288084581950119612984790329784988678524540545245581471847181829852112736110729117133385101390362385394400253009649384672864225605222987709234881133020850636571662234238678153100205269512072589700326463740398396717422053652980616712696391446535017772503645754395435858496677656015016963904352971781735389906099853103621453478600502199272050599221353246703970062698101076002625896731292529029439727822944018157560434224009085708468840071733046991606691763400259960154858009312809797982392555800031041207454435866111528216583986831564924121351840023092611633021736129544153113276261690742868665391101866946308710668511791778725842563693270346773600398190940952989622049232564698935128219918854180567905574751082224424588583854992891022573264257522123571110295336044044992955148846579056152243407385321911967104629145908508239134964749051426733078732234947188060103798680368345065487709503351792653959656991924639294778046773190965537768902415779463317845949289685261932717712568660211651179050680195102491416794068548630696695929566206049224817088743669453367971639129750152805121345843360886635604715841236930667854522880739953504188071752821110567861853026706172239832180143470083891431750458476921906081675387806086859013354965454758201231674940796766738495167058053801928237601193083578192975960086260493639792930323113423472895064586137602551585199636555064778865882878013443493667285206786312528286433263681170179343113328668028096339125574028530489949474913342839278051346222871689292478062473934052372970545610291932025888987047917196220331479506450641066767569317938677233999455173633675908011248507765116848152327552151840073603862434483671891243318698558997246667352560410727156104948105276194633727948214504759094897171254168494404625009801025662260701013458897451766096375375954904752511344396239775466197801754106374033431905137519189553087495510236053885263181293526240137077686824323288425862084684820915534325737205782627933763322756395209753980134185587330348179354060644994485019450788978432091172560308554984554982218704111859590276139043281647372496247006013446142326371976825413879724558130274294436839420252352533030736805337469660310709938223579232844005031421380906163109690931820469249304456798953003871518793835561466152045777665167570417280983942862148641468118385374037857919969364872929889833005272134385564112896939278808107249206881807008950400499051674406854592198481216751375016978394830279536724402949235712596207959829869542887999543709517677181075366285897829660931803381031715025556110992203429037660174846077222052713802534074596929312139701664701221647676959597261911254974163629511725768188253497711248717462244771704132795672807536328376721429055999502448129899553607058780328863327399229281295190659067083070004073346166066214416823128811346373573369140056534028028978548349685130329635133956674578793620692280888944328775162701006134504125263586256759020359456100657718673832310344638680342345063108366582616664544065727900604587204657647765311429663213139125999136778722896166871760219649090456860337870095152922853185665220423369457659078260937958824304047719969310750530849375998021096331715455029860467694686333220577915992306086148765437058944889803788562786333416764141199113806096558297293765925641452161559397947223532297198129813662302889744566054372321974167339412692076522635075323959261160912188544974043084249213173819754477733806307491531638937591521992670458512622162540954011884945879473989776282722680045097848565047250997776787914742503750730830292816213853925533422902407495208195562918953987053387914930574868764021060499598401098918714560726483613353894367355084840709592249175126664264015227441432172649667963100737718128486298560018581654575722915462977258902418703239716617026221687871058282257588741723015455455316336062526783406023770176644130188497170190501892295174018561775383860576255658201807440384666608538789253485987667932277734711160761861961069657156073148060906763564214108519771015987328715933334695445753746341509567442715540276525746934007257085795213130055337189836681541782268304146160091413829666720808006791345836355852460192590312816163498134473040676356692093041091759112059221384087811004589290507947431167830305099066946671067839101036754107917350695233427197190869072033071077458277044274716960325073191510848766897882629254247367368668111888078410403650290134571386249443168875714738080858900545714001011194772034467148825248459666658036791851596075572614157879050842642662162604526548877970289263350856804736075606682816524714055057029011211175132668540738371352540288046794798881782476957604897218369763079974396347867560600008854823351991098243981990881547561973875108136541265718772174391560125914685733352212524831879002729528945238239042830490409818686486186031702156792008022222300383501153562230371900872224423219271526372509488106241203087151848007313890376422450335078539437471850940179584951607524218709174762586364707062723470482087262070741514150619719433782589785654459637849278090713032993042933657043216545156026852064302562386246475665088479971022022293798132176232972732646199445564790424475079119376851478860236524637021127357909100181676414452726862902333076729824798504911659993935827122164040675238278493812635088822945869582076256831724379067529187743712576865078416303570341328233074606418869211778293990659787845469444753812556265789985552081625088053411860495413307157005800165166321473625786098305463839813817451045565971221886741041990286628603877347844582006913714832015454845267470083817742359674054234560410771283225627446970640202681957962259626978687305521405857832761436705764196385376387315343191743273595852063428252499761712380976274725122200889214813794522856356522470369473130475358286818938559821437102086884527062740248687278601246373606455701790064485991191892462246428318868228170794741163179368905994449301185232501344926579703675154819834321176098572258915599791905892803001339562981524012796114500844626040721318595979902877888882849660796814783359042834122038671763729046111417755720216027282305484381345646004921936614090106619236094926231989376292060816374776673912790230340353418394738066682335030666473401293530158677300071477785592147999855909296503777537899670667639935008703012750128035921367842893875406633027075260665429844293540592151593717044569927505280778490461159613437898611044876681807397118579945908147477251309669103675750371328711367105036453125867859546788423445396944254125936860388021250852439728475154923778794768562599740494635398794271203431230597964448741548925911435491030596310855591224438852660932177750689870143939978483801349910071419983444380272856219078384667955911074837239965561451229099250487134885820636716423104331895300661206367045530006617052836241343607811963981162946641169339245468319081827836480163043749774603176226686713979835974433524999132047909264643765359584034276283030247492301851055850136583647260683844341645961917583395347575125071470761390195794002946757435581961212771749635463048763239504837746232081387920135434589613866714186530333862141812586015940718664248056816870607952719467827334828640026991832849997465281388360742516323713599954487040586791978055439215963185529600114633877281603824327354102592146056271761231208272235096339602869904260187369495690259040196017362613223257072182057079842903804067592283655573791166152886245047695593787873652080134508976525863520571380074618369975326114322296723604441493992321690471086356630996930034296026063709439581862851607080489210239942340793229941114096377721210186255199845211355004324327569966797392651908814310091587845017762728332802075142660746060194499798074111442946320201622943650191861116804779882259328502670339038772610092975883141493232949287790123589936395042563880843342143516058507967469953769597588933531430843392700057907318783612597164250401161211403398279762775367197559329047957232382190697671295995312500352373671970750976223075314053057627859676290487812442392234719489626392974310838057732750062982518194450516911194515099015728911980097333632256374605765637424949697202200865971976761727166621977398610065962669333294143084816180195225797918776184781774706984712714253000378593865904879838123530141859147564247113274048913787138532928480904837243597655088896467925737889166998840345212273358024247379486493516134982497449796880000272909084006594771040947956286114991325183514177449240798000692224124048449177762259208603322118674530086258099066102700892919317484988392173011180032207871138732291111431309177078147634719659356784588625051954116560222392508075043303479758198060697870052565588904800531925866589510077784286221592000418333799546736164859032387683727947802338219779650387994173773067773918202199304330075643099087230419801999677627763073953735793249776440204718744059259144834149187466137574503412743469773876232588149684053054367455741649332800427058961968424986385200071204383327527834112184601745532255976147474222579229239454058138995241676659733352652767452226076742724714149653084404781281199355467047637118882698377274449240852766200902427031207709490946064732860895584014676701451913742137044634840240460844279469069597412855377535932445687206053876115639399999443876631960373688938800506726695465679836400713796880179717637207498166544848532707697296596780029974028514408096770099710365836821769928161769086213720010858627794983130009236383064609052673307336999796887025989239422416215899573959415107086499856429397414879268012559011024190798844831480094311439292520672310073998368412687358964058306381817408885645411063292347179708625159095972314115584200671830800906136616120841561745137183844221458322818306029110304297458435952153405471421239331605062331393042307113467272240810934749817930335624969844812225322032937709114379259629551878705270748633156716217742879457428622275538035990407853310054639350316210687838145068312850501312299364105307634464665995769136799805818029144493352962660088690180485439834707691414566930824376009357198664550353688678216097535171003385931549336697812556176383924035541963059346614153606661500502525233909706138112897193653104503547511726202696178961388147353080105151033326220939069116464186257054108210590414401501930118216097330521461033679073395922135421423685445159709431371821475373928195922752479630956266523852988579557077949906215599943120372624844658075489233205441265823713467744252933534288989338840022116002170735719037815048223898994007197837665440746141221067458372260016768729419935788001049596451478192742999602585975993287053655011928008043000860070712343820443314096389988747638639897407223671782440477579014248089307184863335600387050981531926169773898074059642320500332272436235558453344793360254541346828324101595671793878893061765040260690706573068845866655185177060938660353776285174799826640994363609199087653472591314847056559990191930206952236297393392737254916910932390246739165014860894523985477435070749149333014341362853669117243701210290233977864817777753680858064855668155867947974716241550241333757871107235937654578238020793447221305921751756739308945615271668269603633135118802919701643023669337591905828987358717455589203977713435563748012346109873509920474755959049073212312226347172578039519981482349474537752324959853982964997713745446865097337344066056144107171924183496631752143654694714682745423616960813058977339580787674237767875417827923138666506244677940398174581276695121609982840174441777194901859791137875411721253816986995434156182777836339185192130052871486473597276322668402181913863914499220954376161097990395799466160702620140673800175531184842647685048815116426267949391187737984591800469674962333234751398155765616979679400878522908538334552214191771030038252456682462101084272236821293282499222277700637119401659592623250400517281071798989372583727249406727837394097299612523778617444221643909353810227043539601169526019415390718039127094742944681718820678449305762245735070368659529225449866103162943514495656159816128728398375611484563803517322575259727452844727856477349929205884366314330171743357958038995975288903634335540742495602066238369441466026591024419610301663006657170198763879345427519998326256921330282952152608373634274903763134197139619424339958046465018914709383541960025147281732546171575152478864687236561305077074510348339790462258792232291783480876784509949305692497719236892875764820590052622230179818278919434846976404307555973284721342091622713915791690985237312810212399695475019625327860134282965221921693686708417144560446528839205587531230342290040088767462478745596756225072232188811213492236439540528720519615622029291943047733612450681641571956750950712280110571816765058771081192325052994852689492432680558799883347200003570772182285709518795378957902471540594414229358666648664163667211232516200067921492113898517086505042236631295672681545203746785668450212776430908301888095683876420882859472336907370162832895934521489487731512545364600469126642273164897268595086391686161136348188613293263209843065183618325745753639815306449927940399237328201647963567516318864739811887394900371106728557967070342085600490447928270654245283966541465770958817747372690528122915167208092643331288790719984389192721733789132360403200405814797067534353010469038747107949544275431447760228683434905370903055114342572603334808196287270925638462963845636398698938472045984679613501491343745191440506973231260105572932469920231845516863629138272246211240296758441628314749803818931162146324859195982529284206818620479274070911839195124946418800332592712143702505109981137264427392459819125583391542927311759742971427020353459531590721511271789118508865877673054473324473049936364634329012352028508227381454262964388408494129797362217595850251349689477122954446258118401789965298921070068033449687161345624856643579640672253986849598365269115289107376716593882616958323281469089853717844687103191237883622610659473009521665814060305958873075017333381527462670821105459180468548527396686607651751107848009002109119948704476294575502806612316648880884029925125842287165436810237600413914051026712053627263702800370818339818569822192195271277824116274504861370227721393903483148318717673968062186474068891615672568999980457418697558345212984593376625876238002288256709148398054596946902026169348580389652334916033020881741046438612928564219179011155883297304699711275045945366096301870856097744814985468796210721683373848457092217470865211414295775336847284228248589970426626778359055120539502454384833882643413410489925043322536959727454426043309056261534056901583167170558759405599489921843901597819097358002652489018407405046217141244199913881958803145640394986552570188710797292600562665886095917501284760288306428725678437499053771698663872802771060578708737936604335822957513366447303564846535935198479786256208892955623701374669664923788721843714720012475678988301229387077067216848956029984323599884234454412849241846571976205418368458974752423427456924584735587775103306400604745707820532294315248519709180113555755930030991768331167744143387921792015686371411561526352505527584634200405501059109530541225007162744927512046919634147213675846351481455833989613315104955269360138856905045807356676776295486078666992956468347247038137768136414350800421152499124855166214968262922932208303227425077069796122135787244018327579566927422721389797713440386347151170442978390337718445390788476221904890208336503209292397867648375081377558384162279776731046225749205060388292157590250674821456684124144006649430890116828789028812119128314578409414475269504330003100698763247989311418020401621453788246958940811736265283767826944417636647135550411743041911650109313515917970206609466403893228390858859908902337743702898331627257501780617979967309059813175322699782878956200960945283567502464556161913745209571766532958431394786835974107474683411020538362675535241559034183075495248969403348928236994934950340938662506265749166382675752032534478090932002404506191971377700995963969556340340180628673827358657060572982876334388905322428200556320422580100701745036112773575695757484369531281089396997631355306057967831797744989250895271294949293968812137527775662216272417297528070779860937336491530900433150013756142704033730333026122000980494567996027132228104695801653089022826454251830988818556882942363933369472661133190792988980237886905484712973301322871249922839117097616105163870525803849502818455636860728179521237747899641883544696610921628059614531540821891869764442080182251778752119429024162022112473780453503631851676084969172626467436757117230328583783019873521296246165515888308692796834029546093804152370882448368515490710876672621022448812244666951751556395841655970894227643027254853473550651596529927968782885164492469804147111637980844164786793810765197322504642007163273222249264835074257441577040997396248722772808542394553165693965572038895453017369709116727109795939194917265222845712440542536024547178604992060852802922309758419234408560847438493872701671750219442435683308321588625525498698678013272432692121112242050011659648394805538018925491790140740535816612557033904886868469999466680888364346440055885754542508688878576969372622104336098084323996106611385987391698082969237106195926989496080383135014533003296452466713459433479058280313516211659255295404903924424614199338375769869983064550994991883476653181242775153496304015338578008758350724157510708723250722443424397806776859590007755933644128953025602106076345520308367490332881947581005256110764614957578385126194872776044036474271580503924142847519227288620815330906937036576924030692643154342859161770139839361511345028369813580474266398809051331957140503280205560718364962703090728612723900200342148003199630024207034076888316985699423778690483221002159778709697731253076842624536622168127756188586711491484977374817923182539288928392913804899476378381856479788788822356246131180712382513635881312970174377931803735005901038942703144955480287085445778017447795454452175595503954837467435545209288720605711985875815766324648453150607934051043412676690709128006813432152526275218724767426488393794450594396922230389500654003776272107003741562886602493988980133249489486455332519183363286217418807010274109314139718538925124473506096035415351936929883481129515191332577712339880979843329221617866038465354939096784604455331783143728457039241410236758691404370097944592863636977401023692952551474320747046551904785000150160478363401752542434344958060149027491574217182422609133964882596064625831377623885112205036378656983095446357197023131344436887839032272566306386837870223404142047007724435669931168371493134468296364138875704265969002317607485168913329573904563690808854307023271356933657970711782887498264327159642226399498051784976707571631645446603486509328991153611655256047783785403167022137541302359833321779599036656535872071582029712974152060578377632131729258768464413601982428667350522211079850050849226163106739776909689060758152343111097345218437464800925562069744589779312989227672845390703023814782319730857042813018273345197882355923695665521466069514317912890742683385148482437863662900156260265315832744106973634492193998571373804551972298013442562398562593959436924402133708218930992636603200847034121213050746115719487729034411460728531312983377213459838074837291768490093550149282117645444533591472563119475379099988317012424902301281254643039794977751193855040822225580385492720367835310709527281213584062167371248350429415928600284884042719452126304063198508893262678681095610839032821660737597803840916811875638771303282161488941787891263940269710219646450167277026007016331441399855870252020104603497126471929889499693773232906880150972407515471144602708802193751391744461031439517444249290067462902984239627820264861908649897158076527320928247716154576763622498457433710431464267833369301362848485310611186264092805368509621073674783540645059386965080397560845002068087316383475238082781369880696081288718830984268696248757838735078459705374102437527132980210844037171496882338378046596538998251095973828945045779490878302532101361264538400668354460802531657029374199607277778671893346848960142527397364936272115212062627074088656003098507340110151530560846671313611259460356163957422924313089965873349677279640242173047660753446910373803398126109943395937679820482934674363007287413890066021461650750350046539828333612361515593334151961750132575056641029852936489648340901590755095625390505327217006682731874925367666546760174486597625535960027645410430814018933526170398914342753400598158595928803135007679870841663481089038692438624491255531949130916519499775749525750246451823167392164309742481657316168158821551290514104307886188790481304073776566193922980842336269966579664023018443343878860241169099333465710703739807908873494216294377790774752405910129845493089152575932247092429802645477187453355972019505580480944644669402408655735247207033669980985404988910846438549245114993204485953921986368949302611902342234363359897957153315073834678799050391054531339198142552312818572763971090811344396018793670522530109689694540198511003845006781049102362948493232646302187310661894702576015560355430844542437633106859343956729940263428873156774880968891659885790542269987142983505229033626913355224502475949365660583105645906022325704267860851179335462702758775147638022888740847403586930457822994035531849598092310485972490051168215212771313264544151978884940270564400880858994191048446839979547512532073900004635878759343063015583629891885907251635361452638714886855522833150198333144005949119266824303901442059020948295007306269855095653907938556827905428739950852928719594861996768059001316144224032546977884798116867405561314327824942123831716990169091793448155248028863183127678946831216867620938575702006359832030833418600560296024284458616387834733082514696147000991337541309154812777225849646724170239545225772622303766267415436608419513515564588975264090850828864501292496898472565695128791700902128307763845087899019049341187758860852784390362893707937328794589594644921190521563291675929862355867196689927474251635043331301792829647729779768230657284058032999107381476811356759511453068994887908941521862909695593638130445456536201392936420577726403157582003640915540034269206603356823657991975627733063430239300604821611283475308378906832529882243950049454352014677074463622939406121630013772553197376302131854620143870766858419565827029697406798791274056906302890777069979795622281671866694552985731110446015936180473273134059007248910782190830370972285835290569754264524138587977158866061088521790728451936248720622239959285502885588768738077450133910289304623428300342472469291317245235198917928686637925488567772715296228210142496881860327238371504727719616149284116702191650313754112479685412215068473229635852098067385376164578752764695619780343047025843910847203629827979643207764744294887440366773263840333415087351567778159396333118042033065606858085160925170427426532153076982457174240542380913893682268232427823304822823383603544816619166107917324011568779631217299635935588360150465621747107739693684842164488266818170471369090136531855595747251203724725773838616657044237597264374933519899799113648644343155723488416073315679079934976521511163321060676309518231243334367742996032755541052591391364418589982185796320854175895122471505475713990716731997386222472205736409606091755579045701097885891381236366113085238178590639064613219845673656848314085434732220454626626722565078223838709000619180470434776240381709612917605129723529978055029404711880624850257534344798101894826487902771201744430918819523172184979341881168955579058121984605316545391794839053478193297989827007048168362808716243091788422693122791880514566559096204483915793662315332653743560775765137367105650446972748734940505665109564633758868672295805930653389656756439797963727347771824152452307993586216268036876086632680803104831407380609605854803277440362748796082516854306648082028483089465696600607636351551402206334777064907730293894681054140254336916538664186497480858089895580241995205700266040165993495284551537857421015737252926165286646623407899420995019655413732860826000979238292304977648643695002472632244323368840916869106417276153476989616337326541420514641068861479662278146136138447514678587962200749009082295308806643828505891644420002275642652375881037745665266552334717508052475685433718639872889248033191344949472174568194104284085378812986934383849761260578575905774794625412431478310125905522472680884566029314453235669841066389597730771400048708857963634835813499875348740711438747944788495867822922324358379197151304775203530083323219719978484649163506723316427354665470397961006615280292540403531103982685609665361310030655043961527329932136566621337176375157017346795896588504827244908763301968840770405715000121214548499102650746947407141708585030306159335963494472830099894559190514569454561416488559357466260588455952367159265211745180704703097575341309965533850758388423954529020570794082601930315342005787634812651881015369146686543195437228923377038580734194972257599379993100790059917702936036041882437969647918906077099882932591989771709293405690456569907564566052562932801935337969780058093738017047702322612846657788785861600347526430502950273001266515742777468479811050700992980875635845749258834825095573784808346701967504661343604678145724111384294177810758675530588173369148614670634299900530006030749186764534558860124986698628534208256720706533866270418101231823978936214328020337544048930809639888588291881070368428089768209587907899816899489679392925430832023592053569215957757803776740136513870162792115824822709474892171774064895459077855631737417764347756718540470449801105850382972837419488825833359589107375759734762712268839944030287711418051436392779469180485743878955939204541826494183797501046597007901675044020080844204132959629995901082976962881102805333018208506640118179588201939554711018003003506736015760017019264056749843376964306350963679355083867156181133401724100983484888371060287869290083252300071158801879464898419744348365521132067014083244503191952694238809489084370157801103053354412554770582484380235860426386401204407385008565001760131731429772085028654587778553105593651996978427306213888947760369090035484955652081749949592645921291516603963630667414251868241130526344285408061858099345040733822137940415377113014341914022199230290384388648342272177306616838423762802327690918904111705776677280521852699359153966128576068107462510592251097637934993935185159113835326849418190281535799832210187945257220712295696757243304119088007533128430384227645632766148841419578260942265588397206617125699238503942555837075757061080779917253792317189298369064298088898356249282050187740078497259709315142007922010312501732506119481344681346335854462660332520748777469850387003999079933591275970167967054281125038698789906357045830259844270177317176221909418582709533498567729832793771532130366211152123868665953288598389261627741554731355398307896544168228288522827859662450333647349501925884598589750953631720649249818519298663455640251117023461956335157976765650694357654964554470001481273106117913418134336174472189354314526485764777061845359328156744875472629366039747541704261591387229534247167542952896271860573785654902774705441244381515531181575035267286375408562689775945709321897760732509214703018286674566245243666370313973918043310370456628933467930883605619756875353838905258728227621731263579012617466381600532427817060662700206305436695055233118199749114772901844278083523530652581319073809086676843147451223890438572930975192145367523690405501611759926563551067748719268715155295442434052113824784365017549632648595928995337221627190263930964812490309819677662668462175044253124723828342913927829561620804926434312595750535290927501434889909628630182409181007244639125953575872978091102613567733567633125587787609440014640047256288280348997885197494263174169825561228144064758072571302264156165254263486799682781252027722330265450074534968617463506124198021197877971961119253407670147738042595449542370082622991459948701695609215787397561412372913102442801409998306205434464648434119150941783916651798808985086744977685941778336430025226854059632074327880387587475883210643662406053638644165810817708404035662016236279770572907482402048263038729807357228401624476136032737765420772955341855887544163541344574420469292079995007529105853942598169929336847553433390543946318495770029888437322780500991350322982761239963544085085884219236879881576115022841225097749199616569049627403123448456707579995042025753108459313377349786506200448240554129027321604147649132989807320569161182061199814242358944913125673217498186669456206709136415880366424228267345703847633565647737602981477024411341847278614158010626816623001771384024723658662004870302785473493179973431842727383246522621359865799098958908663031186569593661582803097630301225215125519065042697581936648095842564225105037651272019124880135113321605182731501404762472761355496511040850624713097834426365762166976963406079687139386695700985154087910120980084820073351376564213102447666642242443026067131375329211096310143547904093165231623077096498863972895166936104050524981435238727419026135181622134432015853123661929824753035203050666740365983255205843728173670063143813519991425840951567825017601506618829445746613064519520356149340585680667718069316710504592590364840388327416467065793574015199022070533623862382134910053279086068002805506221687117869557347386887604467051975178239093126893400051838221965940315471882438670489481953630909067233478945010470496875366383821920527431510837068853185824721106619425720287811043396415057770425393450347292372793674615607822410170033808821426866920107085389656903526835670982917179644820861953087841068583490680924495557180666788170554058826826455340468125017297700745042510051490414970988244078758661179855467502738509524680208798339390875590083752906515295841040279409815463166037179801806096824331216010603809867715764937556016137053560165498737074976855879415490139658957334904375710214983913468489438375689764830817510817595108344419652390223527055701044799877229488332589786316624744465134085115864128314561541974318719223964357015749789592063350247046748857139179251380676195589498310765733159769297843746990132647828698579079395038973102328481183980182115947838469324069762768104326918418335334673061042193361668156673606170388165899781867961081565697476562479752430953449829612070409182419999491929100005429811057109249978818517083059206379896218127011456023396386422362390257329764312678152821376644076820148022285206027297945597943084439849081176461062339305276083049933819938708229772715421750385869164680048308048261393556249055953288287105198008086041453331629225758951166236517050367786844470815809238274244099542822925717982569241266073236130205820501596030024001356429911705825605760450378963333253399425853008700058353823153559051505319795867882525474040731470648452482329281566341586620361156399517196005685950403177628752698305018012560991774595240250847506838703042337172508347295097813140702079502925925928773532569870249017323949194680648327478784672136669428038566751565509224881024769096718704802125754660644945208794031058311475127207415947964945591232346339944333165366626317020155914565801505737984578807876553345004538832490474706263582337034066284683170718548848155763567220510931086106598992670431441117717482085879907190151381090388343583225127692374858715557927125427485006496243446708922095702219024946933466665304522048610923130601594951931152066245535117705828335891520876198121264915722035599354952469833560040927466719501096849459437680624862284109630808535084338872933783554503371246741352967405840744898099250159467425524197724022130328723894096664337341664392526003041726159661685047510932140526234655118029880799942832514888893797409023747215985369432339130188018293587590661159863048183989047023469475979403459907811023268086613164046495099516495942147180012413538467640830304606204264152225135282438738171880139828155833965097679339322343953824093922387055719054959507435679176742694493501181380025187693520008649588660451929573760681369316755216792155150635079253695155338695927003356329558992534472594378069228490542825650665007433999773464710950668639618610004771569982125123734213495334417353938896012750759056115159042246039506048566935783406638920718139135763670721164761014970223862680007405313700703607173708888852721689946540792985617319835486313155314753297706678548247491528149283879240622392289981665943916031943914050646552223347122104885062816399252602439614575956946176404757524900957763861153187063035742527155001466922905007724035411571908269171165005065104055442021879978586757627832346144288112100160013993322976768999550992206898000052430499271827447272967956447373558710985955008744819012502214360235688580008393494776094614359903725959997696846262802200366548313262944828717618562234343459213169946103380051651679644508137397108704488920330400382117324099044960517562807499910841490525666006286410684999899140248933197473062383557481779592266889150948814666582664811453820784436735297275752028552302559744140586131642959588418763907811901543013339361064411008443652299587909774240734428192522255862726290111213723072793386668269410871521981710567780684808613816192640453197034048859866201659709825293970785072986863271453239280896972913213666805160699951920806181859960943117723564988785440124310764932152678125973264196024375814092790247820182061538952448398966650950169229340459595300748969558176121691342647342617921375046728804745299610587431713341442176504149273645572192972093611063472960455097047205258109054257948276448720667767195297623962133213230038917678283692986362631340566526044444335737338983767925195212282040029898525258257700494628155683762396840467179648450646568851376881267839948747158921360132844512505315511075394128848337882877098551860337482200753660513490796793482800499696563739881508025015511982578577773974482724903814689621605695806229048828598753102955011327082883035048914521690321781762164120423722452708251986020123708121661176559668040750287680277240034555268462538884960547201600785125673465046340497699419579815380711692799907881620760529228031793210223880776184372519103821545515625625678138087170504327361362008358491258106619926454116446144198708215497671108881109850155651327575190359906864077452023418005303362399903803737536631674868050339083252411737369491931654509492444946914913765032011888695957315559584146494059256488141842550056851051395302314814009147084873280995559533806418393622646172772860649407186055576173265277502934219009859972509209159767350644756326704953273437246132568321091141198735592324350922702876572570738798061649373690723052814321528536910359741865373501631398655194693119019220534397779699052664086601742336700497024003535572954568129002838193235586121651880682536187817021447550393924808781469770809475901302120502467684230509204309950524125034343889371252827753830774662658553934505457557813540603414986965336517936986607185414241838193697219544755682404316409682977528564825310756834645269882020081288287163726839733470988876474133182970612829589252226396406458452852973584348458508514311431368437656826406558938090322407563892055267157476720692755836769864897481812976403348625446002052645024207044721680442273223239255558266930732271123880152247100523910364880370114847738291127275641949131506811605393214928514617217587346903995079984361734666081004063610003596735660825012050004355675892034311713073407204820876357565079158899501996319640971508305820770398058233128847542869843018307767235040612183905059336607179115632762025522375310951743173871659288209121698827638825574976608606212945970719605194685936774459538356630465942846356141679613261480565484284380377527079386444970527608908313995440571882964640582988353238855622182177819084867636629137457545311181608776805037209860898968889114382387592894510337369756912205070024697145892906016272118515876616701938213599453710372371796673892185903809349691769517557771622105663233256469114792993455386701824912041638526544208187339681853354997521339129438414914814587554295433993604889913806419976259831601919294162670789101420603919912567189856002883734445013121541175452695790943378587098493573637753881351611548985106795032937394076587368133237700780151721194964776075549674473933559790212168740094684597492102527089175747819599936671949506452718649969881956663055111501179551398018648002635885651372213299630169764727122121537598815031339523347480983005296640034806777910076059244898034313650017576764453648778489837352438091350878237666495545292880599601338885718492897332771237889928771853735425517134784794204787391399468023314908728282088286874619205833332318479774509533852329365676134096233357713024231070418726470340867505752709232344632474961444849748400351471706305239043360162968340740656535060174834935617607099386919658252001750027394871570823921395299265902257424860037088565944809711110725359951249509193061513914595447838705886891017609941664031059109163117731657974945887584105934408629946762515750633582784408561364483481776056968368406810203417160958165491502043254835811215185847170971024410757018411422524629957716141533362375410357678083674055974281718445210887018044966790134838209601557819810162178007115416481654285170781900425945484820640947093978049294368924212654839138017667112449568061872442615331453292604718525024927468885021353558678205273344450514910698793458107927239041682494333320986324983329112345827467649330265406838919354044470146217232627444141579561089308385854152829058950529177400963279339444499276388677474644184814465741657852156079935684094705731088704692554828524259938540678078014075599810500276350329290522962424455734541279356094766420654375420702297017235482723578489102222554672119132400492039337524900260128846014863428266719781731248902948086982162872850559839027286102301308428973779677103148958651132156263416814519896315117381231312568158608659349118824192045683078666550784678213562010386849020039753055967502470498149961216217032584149808460959473313415436129668249683904177050040540260888696480532750826221980625996039966600128324922691280176318652114859976314801305910394784915381875933046479022964438585795917948600340306114003002602867990865300047667403048990889619347745884398370928039995616861061006237390352528845157756495238908582750706387613641096277490213594664594396503249812284325953681813812478202639945812331758498331897041434299531077009191113485472791747644385344816120979756413748204154590094232891586810685904403357421817353985119431771854761892554723056805484542319941836966222625075459248865985539130011202901043604427174759411383670577577383555735752825955975183797461217328258058829930930447603022167377396013480411961936496710422438926841927221725501104039283204509222504742864642424109608514186036637945292361578895164980305731114934655627408635446218161180139761541780582725314120399811106310181496879352697522512128899631285914914136560395632165732278447699701984683398433744118573595158185043452380467610090201321931494850898066678790906970784156491634231746699052701311601187267366012841381918422850743651243234063881592009438950789656954490827929866361889955450382419144773882708175175103010777043855981519598132165822259621477862525423915203536523426642694612423757639573919007932926349207784751212771680845822565806572145538282272086264674562650341119700221320013069388457065795123257763004266033191923265344474687513777055710366479221530073355517985454243531730662477377200657167498979530368031544656109294827945639859508759568180214603261040782462186228476870296376092199751607955729950922638370813308547320114021366028692660627009235090598876294618611183195074492815087990984959332698300832909293156140888055007000837424974870843065671190270669549818670046263566765760924045271949041387692298117914904058305726117728691371628223204951826116893600364544202725733497091538410506011859050543628767989110953448598748787499022087659154071690767780370684441032066383398561947134010197801690577427881999642950010194480551770467248210027508599744940367645767026740242094816501248120396743984877639139960447386844400611702952571826859641862627113822943799919370851779899730497038219703682115514517194091617184243239860013798907135338675146272563121406602502233552340579429123541158568206907302372936252306867971934021768348274707196024056752800638670240138204437064574741452514545185166674881510845059313010926741420739944534305254026625481608780114657051253093653626397990097952256256288449292922343327843708407514470718977995063571340078285649497733475906078604766949374356868044523107174861500192489431669864879207456368302875823031133737923521170096880948281344117250067191358889475431471910049149984322544068089903219723432731662153483327074955923780105713523072286724833099111687702684470027032186816261703713326783038992683157091725932018768623705491299438889686323452586096400336134574782067984304867219303331185990742136951501477454965049570903819271919967897687025512607259838861961383256038065004554371294995322441065579154852002610573439739028490224477370532852074547800168568297370241961853019621111646016129950604705755904769999785841153482971840347301288101295913492450411397131432021448859196911141008904549206305742662394901185713484409419609053719014675845024567307807976094867395362744375055356022460699046795417924241029804721970374948421942909678930131778232654261044679099513879556816403747759356056274087695622063553907653540583256081160083495533112356618500213370116416792084652701867133268354577414533108963767237444665514578062732593629575437418149930773050421026624305667773131681093603347120669270284988385298545986850768473270126452235911612837348921794272586936444764843839967193675256876721799785665434070301111851015721646761029976781141460016291226663460255489731535976620475736809711778654321776397613605407371458513294378789744461330026507156653883314404956652905223918295640148544972309280608197828829236674485197968719421604435672734915642153423558892700349740736810079473890786463868844602001031134607921649709362459758411900601580304861822977675023890521789133402450249082926901062360072582611479304351713389336823698496827163948455316424020534549787978040722436750095774005514070391430673991043692221114754644091429763060716437833094952505109055407716544915692933510198747473496662576449089887003156702365414688630401874299474052593992578668070709978763044657982239637457003147728119058709024854197605582138065689357831152144918875719628025941337822210621719601630735121428335801408420235782546447365988097152745505695829549409195044111247801253896274486446001511016481972949113742341298426122210481079196970695769143841481138317394214394080273425844583674399386638716357161024675707086636165823294582641252198179014985125787492510444459067784812316143258230233423353560146729627609224518651480857685543457207752694929168518662600088174613440009493602454851373948301801457161254946540764597964637194108299580027712053585137556589213636043739201658317690500684613280446319848796711402958374345124413774213429006023309508771286205962466469059757849704439753247454176166996733593808871931450168927281387624545371351131374998987851784963937891872466742827138439602368024845963986689189564345828913439745599974793342388327591071430698160234859319586227043012603901869559447766593932524093623382904826863706244452102735582594259044493940369777229368520671092845130496719927423448189203129238284752808473406706383344308776919743634823923008396304931156897739240126147229244242500304116583903162011661095490948885827961422291904755884350133148925449230732764719097451483059323305570573154315545702868928325351662477761322992579632310340796589358727860745118179969588198252511083070184179690636073056074502374802615685987587807626298889570355358671048744593133619926080609141357607611086966542924854371959223114657907522539492314148266191007761708925267694411062674972783522434825327856725728529543992457264201975272746910448844152811284728988022205526361566661073152936588975792428188450927731060253053236183388501608729667779588931506308112968868085218897931177111918771664872580843804221047358946751526495685346210863556543710415945211438513567237625235454522204239052689551110194887855907760942949781495035515665391007426090089849888244931735740675823213742090248943630722220468369683246551280153078717115196735900863337659647853701204058481202194536073635372230007726109537671534778218419671851337630672733102217899406866753720589229654459469630073754015484805137899702312033517476604632894269486446456607128034938575585287474419549129480085653136956758340343956780497673002877236255713895210967085032525046386298926966284491710116355995173937901255748928664285319242700702014773992139439748643692014993549148261224131309522068555563687323531209240886383162023531921716048262644203524489261155569714654602965928502625821437098407347081386925578290793300942864428166302063308408751064571279201199156891495413274935956259562715998181631884208359859354306586238644549970734673595991264029487958592544175262292742058881459733251833819042173650676475194049198909834224667293238193577343217086169477461988280566961682240100109133751349684788154128145212751915396034569499967519219053800762310282490739159126648303503916770840890166143908859877192587459826323943994715671942025376722142861730653340169817818621995460740417518252898407019103774310168146578427438966795442838294602112198363273811139378988852245919984359842736334220124029090415139731803397933762038798205183133904984950995248030710620002894672722446023688728243439286379967197233884925818367736351744379100384417705267465427914510613867447650908417817107862944587470279164828140684538831284049433868365545949231892452970724524375454557273729606135430909430103122646110924480333435412609970769697439016367122736034174074351780830143740986870545361943356734383869888904457653826278956140527957449099944144593896817672992093262527450980129349812515920387741063929376582241684330697074468962427674275960068018816198575067540312064759651388223860070885941631238990873576955682054590959288132242321251994964898027788150015947620541552023283739591254150263246109248576239443072170999850669661254546765932069477586506088237056567589778744510050873823340799948750941636786955172887965856948317378297049233944372369928272724335955436370326784588688090885099076099526471691027522635496440699424246423647524404778534541962860880457045917128684463693042591834956877536451314730279301772509754652712375332387155401580163337183130479817349960387866365457545962252848662096173866150975124868640506671963962208047002324817003517069260603865189772714592220889829798320112980883468948782385666070280157442196911131930591815145943509869218004020885322353436554925508630104208462076413973715144334983129036140900457831278328312289257469021355101351415655270620685671963126926222964677891732270903749075333266180687524542433621054669447750935481419072512598891382982175766550649414832218699976658297402982956405284260828849529977920670737519388933108308990941633581343700134718710731942001575387354391370659433501088814342196536293871670926151903457717364527386940444031564960632283534360817005558178356848665027845052094704527520027696671715455014193822991369982244986235826897853781270250507923165968192093503353034685208003942878380707303709404209889640951946431973287780365969283763266546234012718846620785178556248912319560434696459699851089942037192570535927440036297118705947832749800161005405321859687725449211726617005988598332177512787705272116887872762016544215283588962382379311007059436656612722969046168903572425193264528354044962155881497186327444943845927806306468380166815167633348330356472862787070534581644021394268489184127146890020486726197645820635757878302831011313808069720541648748082775729127187537843600810769573317232799932342271178948932464311562666079383360998884566941821280847925485258691704391751358772578438071574633170070857610528795518905783442434554074022411874594005164931439386904241020028426360533893744222750670780852986565975465595068904898604396398585774997821613936170276329847075657215442170493465780667569069784078763188594696320109403995834625549513476136604368034594549754562913715322418454603112891953574208207834586365136742818191019996909397608670077869336929361992663727498302742197247569047625798278891058260240265572925023784164787402073103126893678436663239389349370456556458876173656819873196532863280099408889395619587875688322542268692589775036461692959112975575040910003068171545725177254948376122878158863327133033208835369738885784030485165399249281301118637487652804597038442965367087802291838671995666400867788995420904350388492449897923918633990969968750300721454480373074776895885255892678812187268082636399429237361868894313344875266251624390842503846283138904403694332052403273270140012075678565531630954536310187866245274525605819036811983890874009295114406168808296468525399495096704691408153826308580538019069998264201335745496400441917507954331643301067967785732242964116421394958078680633058480919123970900190386743571523154820812578365019003172583008774752287645213950061462770703181193804920573636345414832921668127165838062691579675314518437100928838066952620003383201448666844009053943818966279832878847902081525086257834476542406077428718161420309785749537803183086981112790392554763190013223649425392164923851625003989568006710870238234299629592085535215679354851430374344760371566882624045288490098462609837128176852012633163026250360931817602605844112485709419279382812367137658925455670600962038355712206713012959465006523554576146108893272995284083776088791821659120018245485629352042032889594774921486464920738310118285224791957630565678706036535074800639403818356084892847177497928184151682186227682069320814314455760895077954734717410599257042537886358092793334354825351736260770506324272441187326211357763496347305575730854386807288553439524862692994866978722152636382730766745574941769520914064723552696269322649264583722363713660070029985341686415459289805446946745611530484922877809144010984486322027121435339279221494915316765595412194341517845108883815166937005537036829822186832508188127711500712986999445176704979599679286388346908445005922460701595629991643204858196349929150240485370902655228929794984896645816349190437259076258400309666768068346137601814902931917152730495746262116630040959063609744467004885062507028856907834606641031712607666863461458180341540915170839949173741135311818815127957588151016703830413685839013491741156248090706203682227432415539702122908476584046083211392900835696306162013200675304420775639993296206552046494799970767100869370713968433235555016224824867095587447735891722157046907964813106735051593204301246045766303705213348962590910656151139379946422197378016011468709849416472264315047271638529594092642464918912190850235175741219163990683211222637967903267243187561795560028811858700996390602295784223399457214063999298836905195147445860039886754803519120810607059798756400344627214271725921498720343927044262861980583216051859817886018964632110407159977565324954826795339720800071500597349345241366164543157981533452032410149666646058813675005689971394421678309836923335723070875384660784832484124345888300050408897301825463388379383844099613268164891805098801313228640227198247491037433852875866629131217740009706942844340462153413661498429350883462767110525356831794448021330512512485826709829642015773579906616211166506448272502913851980871025501792294514476642127831896333613427851233066883021890324923208708607913915279365887160107300297467284936119930536491607992147830178829204624238477844595117267117180057600379284157427830194098775410594436371820606621115181531635311679417761661012565905000002179474235328961718851119883814016829801257572075565045678612673011283488468138181367292645478786370792466456835663300109774195691376736349255616990003627173279540984514734546046281124472676271390462257968087803039748143853773398872196628174427794434904563512683065816274213800749300360626390682757252448644127260028779216161993325760462613899566337113561817503404551588439424897751675138912178016045220775316772912725470771698122055699937078349854016746546500062739411954661624990926634602337996751701995039627445048460446055316445278966388132854932779128751063423751723379168208176694098996750338250444176795110056050186066136456555098318110391350408380547242134290277944946889261948557356239118266020120162616489724340375349542436565382367649156272835690520872518517313597146490948527186202713418636609874008511719058936775035409972883906690733473245445215662404640167740628808270937281718897142847832925042982884294849956715100104194011002107261799454006864970653097135859225170596607234535484924969334927887783460713169850951840802630584224203329544894555151582740980633182564407258062268754075697685253484437552406691300928690319719711405677698462240906761410948353554524564384879515525356023858959525616697361700215896005195574165952841842657517934690268425061653745406888782692718117910628398293271758094587887562319448733537616677113954164863995111586620054096602691675876291456947202637931495395339777821336190441673829609240743933603124172330500846395689200225716578697951989785145658651585808496947634040110608338713366674026959629359212707459391814682187343376694860219887861232782031147305776786377946993866469977339858054748644574974126560293272663537273251033594280276406925764071723430971343280464700802159444852415494984591215342604599949911837432388021471751968881311049803910301952505638327289461281745154551016926118528521622411203804208329355825001861271297359164152493861625668144929644384070797764537732277377358000895018289856604219572470927640201919577042397638189411336411211752764850710684410704637429078397184766202043194714200656589222082547009950474322712350890017795464564896426147446888882705620326109226279722198673005478753546066935820731452792597069591795492691432640936637266146726055020200891912240541745937513155548070684175627745764905194301865739531736397125592579050045210647684311122531676534279098525508087896683997473562282561816651962143987442113747615293135562019153175811338056025020356248068814007280804702668064309622040797395339931732878779900014728106763357067841412566291925255331809945305612002403451805321931535559378439965978188076315366331547056006972695142460010530752250956861912932572587187964365784904209571836403452583509131496746115299727501224408248212551840774770296944179601997630505034715569829612204230105365000098153703467640153392747146573361111572543459488262184634981179606781751624385452768330730891528749763490172210159560993692235221405222667799286177917894347389177411619907929209759000971722827804477676239917550438714471855889559068172808024345404968428701135840740447784374756933106998310512300395968992313825204628265932785292727613324118758190844286858889820447608931913413365611925186157537956012179409334635168223895922546989908196598888397369209467186094925094036680270160442000434396699190371833197098847079850908544243401012837717525602795701262879270367716725621704953359272604504464266929639841909443375782558320776569259851022215606444070922031010733829929685856722713551779731017092805183585774782406158521426891676753698428142307863406314202568545935162557266380188838903862266351749918583470484186661381046531684883303426108658668198212496756751496101310961337343136371852499859428290953893982893512010901647798419118901611050453625293336522109618296552400887183937765463472323177699843263662266478386336697994381126079717431948525414349474106258676083143869379186348531168254028446990769565369899604010363021550534647509817877540844512082965762446143940965221196461907230041501498066523370382532260250358801101515886206010567668071812529406616549411457461880049534665974148904240315881961998653048212703139019506732863997360431582825267178036425771876253900915039160864081348307757382886522105001645840639302297506418021564224408258500147303732252801324132520314598982761241541903439089355673656869648761347598649031133750238688679260824846919001100514421725401058928559640781191149727955196155161510216733164621075034774499941282061353007171059392532893602697581752889921073658871596236560606302411599524261285231041918677413343193486747369325197264297245766424285507862081885975918127911141405645599261682254620351613890064210768130737189216001067332733269641178201473671131919869168310430709013077851649443092471445123213396757751437361524461198700510036818638937312965366383354266654685708945266418091375094622698381213984634835182280736548830351889088799312218160218063546534836221421979426041258792731616500810644813514054201687178617666091199028404819172123524719299696360863321513362716048878602523326785634078283305396445602791491144042408884576177323926713755883244240397673898550114427848622482950901479550921923352598875263847038737929187702268298975256333801409141797838158504279988703898969010170200119729634793694856797006488025847919668421766800132846637222301347917899185907158232155938094712955933017962066840137481776077748765530881471169017944726508405470965449586775950171742276240491582232777651866074900084924970964429295034108858572034225864648052131784004383066181756384475999822409509733395864055203175055908780902346195342386934351957649846522533256654952078591384579246679516834622866051789801040930323566372350287265435159499250385892750406594027977209783058552472528982730654632818177552603421262654245879347629087166038933139399580555022420697037219455448338007857138494496741991275190200293844473757655853582874053932011030666737068774758735926994339178757157105332170910622402567232445815882096506053855581652552435685780351063339715712682027831169172834423011636116546683730975990994063239769166276893272647270698454957851351434643291053983069371107194913281483007969959618686885337258742633261411948200955938928797744556271336852274545302161115123783770154747662416777905083054958137621964434664935302955596424747807211573535080966175735221100908700350883200852554572461834308579266665081388970917443576772667463430708591704671689885873085693507217460572022325181476790822376385447712171256732445096765391489976130335015818730657886194402980010580129207762610314080605438933687590913140917306005693278252748358944942819279838959914450214594524969031332210782380978068894736133395318106407210883387653365620327441438425237031662046107946794902287542021885982399797653486498022944970817558970381365252394913335088706938746862931448693507900344573895351965838206593845794137451537852576385185201852325462501921835973685936163287070705608570175013421233569755159229169247689144182249984576282212841954685264081237277471550872066751253491153075606185059970903598464610462775303163522837450074650425682565265916946666031012315196733937254521101175140161638159219899241559305463970250592462431428223491004586705787440624127777194527215468062167035393619289031735404591057013124200688749321260011384932990335386020993562632711648233384027040365967075114750766717086117914187376668868890510101480783805315295333954787563602112668528724988710276510255884458316246001665813242351605538472891449645285258354414275987558045895696834909354688167395080777819551648737148241159596665916641668129117296137560846966982844526878971686950522307764638192775009778698556940732938454024697752182556754089974858494338501272680457969467503312028309511960939254790439626348418159958513196720385637508994476002348392172475664008426152541868316807528918741887499087901627572165267288546331314642173819936086179009868179095439089170817266778370823534107388464049391900384093799612228367998243891829423724375806432467060414963149304592964058924940202891057798693477434115666700252546757104211671987645243974499010728233775969697650908462882027589247279235673873466540920136761274092130628934096475551513259681277154863013999756120771027223467809637569605331414502259991987694845580956191742425585198026460815424094778520989291505344561257034961864663081615134261655708620831444765446506328379096028383343891385231447588897877975102379750327402906930649806659378847909851796500024219750622758899257103311583842254456269149526953869463394733279006439101322291913605381705489412102490548889403302537416776639613659763850102060547046514319763438305113306507664923468799458965702075791592388648463454614617696749438897450432663669190847527623068281927214839822815536130012047733497401250159342001186195115171740857901501296157786197369239848243990625301472633649907420912372038859299945901342030328416298949109176035487560298224574720864488566329165996047584069234460698514962004435009038779770187996758814625368804073843274380022076257932281591029714073945685443638695335808200798662101193806274162656616744981769329844108991336933583845619998613888123767773867498372185003738445434740095221105902879045527685082299777871334529334998675822004689833812708187066597944035229619132922480850399118347398657695495095900259812272779101466373275118232754725991017237986009967832579704319795097961502750559029778480443329808275694613505045407305792699469076127795115275596048151599775754648969680203411354376016520905859890066220593048285751857851337671310615273706868821743930716668110128421858083894893893415843411295509807119052354319440967435274753571504697129369696338291900691687023130745151023048515864081876353904242920056197860475862497781371212061432339088158907435664332134651105639358977617065812434086163780476782101632377603964790644595056337338950280722564700762565543019108226819366529814865491769239372151524414495185280141069108153554132484399050848259457657647554302493893139180024937637050130995682229620223633611583179977837700926134037921518990443988327561389902726606563764528271066456680072805202383757980780089302894697583006441387503942632667545551493433734657071475315456998530320824206137224060540909935012631514921170898723742019110190816839116711362959348926451870233216139167653120468138246038764273066745977492137581658958099260135812792860250201460503337414230826280144907556760217678263638279170711766294328170862743839110753837686031697958518842583533864747614983470072996973251980587111723095058250191406179239672490878386579120207564390459900476032757581041758544220890461629154106467565787884973736743920227663055633648963951782922362645634634912259756559813470699883482583120644601373765830121562118302016610778363250190273086939821032131088750860938982273112921458252831061343935500611835267391509832653638627305143673302844047614452831738828085829236971273600143643204190502494928601551435820808002016170854389533585324892507849327028810927204929460272548479710372428807000916635739921342678999795993274183565830183439633192803524850157313093745004314834621636196325105215412973899584443821240276604386615387073543162670051926103619445528701974389831591074774980582473884728869180398803592352354750403248382926606462535192967113653983118145924320726677064429871264884415841725974848035400171397687796839225073370308924547140372245642093419832375579309215591838548761194753358498093775923754326001930397266808278048022697804520598888529212786124995705837622934481628671885084714479319456289702340557756111351232111984114999327943992507373855400126735807605248158868696330067027561350117468496620307176077453389986665023398123495820626159631327735469886697819901933982791913265732607202245913443933845975061102018428198343788146213018711049583837389655364860197952204312413455892531068495699076416722651830385240724381818206867721806858301158757122167534602017030764082536467288330244463118489744878074627561867392189024648939091103493705886496610015782204346469572915748558320717843763829771407282256322378193195753692860758843053151491095771247334335266844192786810017536732919131335070739352295487776457845265328108071437497712742762620358363221606619432011293451488805543021737898110760393428409386306609987376535296104517395492770742327757921304828126697706845765811056507828911699358475134654521535838151981403095944962857735547618112998932383500629688924698848015770832837428545944134517771018873956853683859072536976061034143358618653112953361435290427424173148162985395030142671486009632817299909372542486809243915542993933537733179723375543512661961743568443637278529246471437267845040716031673782012175370779396351185404429240880125578886983042010825688636810504547722200938460219778719102425101857760254408258821858857444829476037557593676864142745484550856481673423397982520968242786036795043600624379303502346929936446174454582167180224310512176795057771127046691376061673828878886496294916548676353110255347104066261984362634102867970792659142505716501172009268728729775221117369654715408955092719315493901004569402475227160220002537497813240784897487607752840588710751049086554718565560009174470385641849790855409872009371366559005033306645959757236828118640058765411752876983111828803600732532195271745539817425649049162732255416743418911948672579830047640241162607179603098487846010048662398584179794114424321258956508629856893096572146346823593104578013311003443766749098288441383981349497985490242172664032451932256023914614540984027139530139795190514636538609036597724504513460740447747852911178684999403686162902468693969734457162419239032637740277635185293003513076633484069782863817165332863167480446863001855733518060757628166402661029784029360425919299102701680475985441185546258480280899141052484427838365199201855277455786979255628393618701076485670518593374779520379394730388693912927068222837457655775039890207768664419732098757179265463886214980906775339839359909455142071306415299130428181474640178565858659914709425126751917588858242951573945727288573400861902615853646597877531281787252010244383977407111938487573316147490596326594889953767029036276024933650638375122281115555530364674988768309506234377721019220169065601446169413347315699823045563506171414330639390727762081576206064876818470720453873573215914705622051268756220925482106780453865894107851814157354781981581652903071310224617549733207650765514846025844087682178108544248156968265550877664132958996078016402253552790911354048063063781439384811895766402263271821031854409799048330594087806876438698640174460986441047794649834537728954468088066893630890116121125017266963770016793620618353185015995427497448764298143176733885639292625479955540223792702993249009519259659638127168548404381132137248581179067261642468707219544178584563939664306029536520346032020760294188105594047230074713057118672307406584572926215268342525190227119042347790460273227122411358071547926554929096355757665134461988086680487505039194400708510940479092592834449045734500926854916624359874639170885454736414884928948863587411268007532321782670222752960695176210087579647139512026810718592102746794758341987363443449305914503518698879213946530172286304270986046884431459659616080840461427761579675266685491006581914741545071080692264488183927682948418979367405055352495787213276759730244652041635115323514119912326012240053387216066251226340316811805214109253493136461852953483394675675277582029084868157486848908312646275062712317402688599660711980331383634861517442019121550008073069356670327312548841356513778398383547496014654364876396953065183497950459027244979770566408105084077810227502522185557141641147367921323248421650237716869425072584201998482200004454286587899578491548807685329171394492008423018861837667665534594170829467376415852084127875901291028723024846219162964993516454464507989278012465127331507885613280655831981589409254502566574166810215234423381847703421177603938024716278563663900669153406576821109366940347858859371308298169497642508338358504954380619603340694708988441278333184024963412708512857408114078802687480273493966864779169527652676850163923865058375207232942067133208831928595236098097945145928485979914239403906881928629129396638321496342169061751983834708756404990549103621850546126101321676268001156961806004309069132419420135621161097166748332593796051137575880091587149609630769977977826228949072293525192802694977068860188138254296360300488387303895885116912065153466370267558440663911879083737936755076881052420697915088775044992959967690264611148133282554475673834871114838272871729930389566726168872572199399425350783480148756649752964768669153706771825193177886672681101590994121025402844684554523007095958255956402793774728952949055092706092454718551799699227786915590324729022259974034984028417180121104585701292218529268581936778174592179692478520098693661560140498847578528905554672002830260266233799674733177641570944900881986205802538540137050128667872960984942213142626136333075457844374550124365999593836618654736171842444088740694182791312973824911520188756031976299867165934732059539790904472269621268839454798087475864155900797934075100759317596629035115627166438019978407839470669310305274416484240375459648077000303830506061783812179891942294545851024470297953492307770011132065872122283738448988858368713864774234471394620312002466463219106380155360615726149410564135039797938375802570781886018197739649350783931772358838327852320463135508220766325990887204476760722121676409226491012443130400047865595287732423858399878615385509405312577839116822581931353024049452368181007193025730740267279212414641710895180438735154453601068138720508082071722174190977963833431594665455339787036114135618941440051515565500106575209953812970597314956780409896895088433213250956342078850961522921538969783386704628445210663952856502306810893359828107499658198087861111098062002604807006429587799268812156062070981489589542101450267860468854949680277056689032252771853233767133008648717662542374497072398203483497698508757700223725417539385600634800325895223725428487972197360492015366235569563400923241277215350603984223613931673983729205275186592244607267046564564239917796167326524077489858790461309340571734827921791722193731624168533614025097792652822212772473879136043793777336818249600958023871369392104363092159956069399078069075914622702277666906698852499304637749863841959976260789105674906888448437047335291759882034998531870635070762795336625394946138975926784857055828971577952557534568630330795773955052538273177258552874682709012131872817819284702629044720388746324359115285756929905400840382747506133750711634687640692604353121588823442716282129946758451445086687005547478331673007709051702070135761863811326805148149879148359762654236770690618401569757863758322572530117412057074026731688524181011948231248098393384715618526874301709560545046615767814790089911360047270673795336529709301376865044088321029515941208526347424038621745694580151220499761454760649492192053485337410860863445447846172141801306681486743748580517591085675751288653277976718722585737878735643995747537538739243722779657310945089775627528256902481078657986359536932742351360001199063343272330819559799008586673778166221924353242996103198643817091803588685113766032133067648231562418440762362674007227693414939627204085523293054594878583581279474117593048899852112731283579212642465284149242750678103654839566820060530804964220646950319056709915396381837573785134178007882870553220965893472494520541441138952827167531857633692622500211086676378032751055490225666577933747975017581490179300042050831671109769931135940611467629202583542017685275417489068543864082512945497394355426136566000640432741575506830890141720320539131152396665914743820369326842409226484938963789080765647258446734780794973224592619795228188530756364884577495281057409592388115212089545346037979180060301765642329778697077590624857383862210096217027168721947333726272904352826996167528232331691430970551713799002423751885852394250694925195939236803337153748573005392548092644341385783066714715233655006641198443991011494019414967223461380548062379239593453167937908548819138401888126386554046832620609089549090523886983065827795102822642946674413174183534536828902708523008950052502167876911462194729815492198620531642067775278504333960801972578761767004983754932364493595053850298920594160112475418220370499175908441098153966388462534306981651227136599054258224648114142641544826076072727367317544420696429241949837106938427940282856161618507410993832035161610839271189203405328881507348473451332448235954947234182472745064729046928310342522160349320148041873573414230606462582602953254265876385251142147415971615404932084494393510036724516352683739571410213171138285342044797684563502324539201192055700626507544296809660449823066057494261198278157789469463181901163016386410469217675257834031080146430710389291573277302457329369301203454982680325879374047848883353938172435612649891392680155578196539568369979349215075164273242941738477230885852833041244014230576927544661697626739224523501812817931329672134971392110065996504062329083337377984933791076919326195182390426644601654537749771776110671717655246941862163716474543362145475945995631016278682353527351206434321835303512504857884702730906517107021458946282796715847766101552256211144621599672651108727278388938462316193561208877528427469723724049305660359377797339783282472886652554453210028869557045489457571915965754291753941021018294954930808333432307923511293353945317546266132807840814443721782443756215840864505998666231106409575265110763189845643993064187854284948458892851475189009944283912071943764315704955074456748360273543393051554538619502030083481990825653144890985648490600914797125074492986746334364944306499434739375550097613306056695872733243040803070187579359252537066889561340373843710633222452546280184692752092806639945553041249194224226697748034370176502307451488831346072520913563250199182253430762067690550141140024845719392204360019859164139855300702888418695123208467307162939530656331965311229774739260055739987047922926977465918222373291609554675690602696451860532015333677564418935031759835864460025147987627614161842400908279938877618707309334476038508592695334782026298320969701319121864713601866428551497582966980438882245292738399405159429378634562340288777927151746070956561050302168722681718080587539033954172950570475198366279442316263297636258155179878224306023608693983407009283260962060124550667514045117742115990340665251014921544091845887793095476350909261826673022643207524404856956364313731802869090142472198775779767737489505654038364282104835720250307686721556408978026878135523302446834420184375202468338861184860021455885685498318627385393148576448174523128295247480494072567667456172242137693355782958673821309294129278205516248169410882091703451266426548425868599967751697109557995990317403694720460955156620457961211288286753958543150744054158913644035969287078029451873112942102797195304763654489519339609180894819307149205349349565698838803191373326341854962076010728971996859562681838944312630036960035397829705517697806705575561217828801003176982405864820745961957481281429363309018914293317231280339406873151166591517637321948773364074592743329732882337515547796511389731540017725055488445591427286700090575505184471755499233896489979702737778193662810526575223022519021120427090747434356901977528427855263696477153222617565420948894919853363182040214657936708607961652771998088808102352685767537922620396179814868234997536650216661959959094399090029291142718063851784693729119611098681876281134473588306095890257023378480730110044927685370047233946435124119971959417417159216485941076620592762098195655865416519969963468155312496684400007284406005520386855472767162553749726785948479978474664096078865534361781697971301724411161662533483407034829503636606213554602778847738446692220872256074574911016266096105428697452278743180160302872288778906532210221076651142304658388243083495909108689355513389498589907971837480034286162634414764434694059264826650655199898760068098387059347799866400739744299648620460616559481489094267138371461680080264927477617359509888686858579273245096657514352377983980601946442722904154776013223107331927429394916874325265917720083573243628269206628982790606098638796762754383246398334550321260695451669417760359502545668144613856063351014685351101509493746449292105914132615542760537335901426149564952342922527779177064858015536095331627603227984751403539124494827508672334274657317589670143007300395312622246981595610274198901095825414780880957616973089782519932366182836138263949442547027138013916744728367080902978359630280261615052641706966893534121218505508367137332473012041326328685269535208526563780061695635850997472391484423282551866940071507699779270940117525615780106778691620304146250854849431084506054687803308142429066662616551431306000077419500459957460058530055856780741109643349941394864693969307663125993023609268788912728496384681696731592361240797071850130731387641049542231013980733204014190675966536425009023058088777321989045168254461728256559760272948907941753733121094982856719296023573521175090436041150866739508111760140011507622247854742560122870772093073823512517970586028236975431871567455058278328109315652628341038222687805696260428110969308153364186054779996586072333542138913576576716277434111883913133650620539190619524045511497049140613657620685425595037203858160620358053685637661905648560362120270653986280270962120114228550558707026853762437580804082603804717973449030341127318163408340594428971847057866009538852652148813470143334352340790716694734168532489915922890011331659732299944369595510340703775483482654300333975334107084840948065017491554413085284270724729082869099010150798396978060570084279386455681069553607967979940722962272768266497000459517332257462138745022614177218828348053887950550822577751956223207991691793995276671651206106392150631180495380569363396829060644723580162918256771654092179076299047026380509234504168927813878392111433729956826267430171404478385467515177061298971156306988176203105300421071734735491470307470890723095388717714497612751306536067053981106960271534092334604727847340572844338860935826353943333178945008964837178266431442977705317173145260056411591387526858230015911879599926898993836617627717045143786085448916582131808132034500494934719256255581065194438143080583631075184457741934037271684338042583524426046736579234340810751452122904255520230323513884717529662152020026940310260779681878989924302631330860023444879268691945483705851433344336184440506995564910307338604936277573745954989662794760860287460298054699051716346335875469508105342636440105646720076101310721123999556497367048829699252368068964024550196204189966023451937843347587031479409033947007049764416787571907433240245295505227363476847393000620487503112850590689909663917752920650231687285188631171491937791071732398532279226142568469002393277707554435577091512994233649042640350009433371492704450968340577925350099539244000006423153165384518191458656598792839329795484002197991082342683913068462229898117971890036230595433285154955443959663959586270650573991000919627251500241907226400298570693471793009550243353626643159229106040166646044212946654652049734241622161365090853870929813013826227839383518626521431814509147837618582696622718945302602446887247289562221434244339491979342103451837629848178096919136727561099191191638726195839608887727037290449993299828133845036448298842528875090353049035035916247378515903383678187437858688189887237172198878561604578118695079237559743057374686366644009702411684464356635033194253083841634622415917796129796409415200337116945746376154703735381546153718890290559009317719301429066417767723546361545331358200563897843936562319744470464553110263994590224698717022813354577130572488069839568042228887411677856299286988389597908484788971771392644669959833562571923346731240950991875682824255970505816431851044378942107603859315054410507715605755218501773305917806005355040232695635030113698719036875692875139432783546783772162642503099446841665079547032197127535779986097172047180152661393763095241306419252792202386273454661567179805078583104207873479888074051055325591779279895984573175710706930887868815389781799785282503148875810314731294410485156790415348996628455927682820726513778206144130273445290017728044739207047490203300422420359200818498564342837306993750661546745741266640864271978955854458816975946194949722248512439106933781575030923680019587599183763931898684215221863431641385423267999873505776261203228974295999044426611982183373056980746549358060444013365572827346509732667198092179169124028350447472201075462501683309167606605470991523840967845175051920689508284355197720058561255042915859818973757317445435062417988362451046720210741233099582509044764497899669633709623569936879007462550067988784365345948302378826447035508034868652853235219195216745425672702980536542269648976648649224218782142989292819246319164699295984649796788317902459002229427545032854856154442235510759887585877000107620573621002550320067165154846432130979692100957837154276848062969988964709004779408757489465662106250132385024236822162632299503243986119372180173462158488282104297808590690903350483462344431355882922167817252382705726722949811102814610042423506001213934098282302334067833507515634848997219187381830557180673358974611325823405521404948992300653694761232251924313416250416640346983738678247636394325213978930384089714982122025229101313575322247934210413115978073976194165062770920827231029219722674585647213508712038083419503427083165120421735616469099219279088837671865294693169570103305083804363308323254798166917887820629263542770961012281184754023714133629045533559693112444397171329426063876917247569802093776076602132302748135809259451935222140658933900041370648926733524969000893876407996286433729413841374670536403655746415171718328740427553214414328172878455807650284124516272037334186914800260226494366748474251513123310318778306626053258713587254571941812061488838982874830597206188924705461099178604155713331946047045828354347862745081082633792644877044656175947808473695980694016494643456377975607277072567651093974835235576250766758087334137053380808588225908835781293448620259163820488536030647742550298934162287765411783394722716156397243701549804127470307411930237440301860385248363861632358104960334331406507680331889778548375992556839365583987439854372136094603188227286489476227132354173127552700920353335932068960355867484006380727323128319859746629037458438483567395633058143661969681596706009427560153919539645591999165689606613646185920863633547976387241789360775673064439028978727959483532713403262698323751653064795938863835295561599602561045986368777435369374787467706150801200071858134677139334469794161122000574056514553571604458618687251109093455013122031181210294591175588232955930780495620366265631596895085720991848730178166667757201813429970365573854094806721667531942482459269186026426049965537282605327999305090608882269025017707410093880606858013579383828249117155067672099291795971994227542495571439857494195060353411278281424627480743127995006504325868697340375240741453586807552165277164654232442682725251429390040943214911522688266934800883307819934820748258957366042025590522310620498220598844252352369036111289233224659553041014504485822514733768137019517298139393028207550464354036680334931024560758675593844271445770086982896629375463690723000267765714103762951316877123087890498152466008620464033977467332221587152251600686758438672706046701229580167242385700600707151886263911416702359857136336454219904199795616657128540680319145639729945910854006437658648962918102959935811077293630254913304271278804081203998308939150045415955164480707686189730731054437065118004909067809673801109537341725949376777940028161630656927690786296693659595186849141723658436579957517078255512292175397965174963135280979059206255490553662702320077394166643856972406705995861974240405040655819449287558123495598769742727902114878295673303033200386588359565661072438185842569177191986615093325770830560367602167060574762434755169378371422029414536667901320877001132255588722456471651613960125961195993754869080669092614654472051234193218588245781949243755105159655686348493965588246903239069062566068347320526943092238831089833910988266359028465811939999162472980258279369065867537150871831381896744764560348205528326142113875301071987247258092485869311120423408790661087793356870843054086658736905490099714512791987821898835200263377424405547379206464902396772089164673966317075082899395259345861894740535771802491986685543263017632179364357977579984280751171288466986954651236309979938029589073493767817345804633407673346149103392502297785524457711528435366724058070535811920959502079907702274851667148889111451777106897911722588989747304396242506449311611721352755529702355397761527557219917570059559216718352569465609048945269676296809326621330023521066613679171451129784922553429186262170414193347447237459683385222105487829960536276771937584027680589220936234877691067652125851416452919395589532104477387630425402852012798538635507964882232799627228242637939878934121464794294789799631004524088225768975877643621309933364766292398171999694330440359800738739367062171780671732384505255157810450991705799337274728470754281232269417920145951327098881035629264455033821235315031277185126789147624272578707470370864508814618823498338729712169817901642629532548520435659118126242615234824702978704638550455720475002247584764762567236709548275464360420018698718166626049139270435410419005079113153698002772428869283057695106046086627088652880567293683998851802344088044305800990133100412614870230534783930992329157181884221619402429408636321783495793686063532818634660625952033354658230614654974239666321705297599439578900618179970231368007604211106351871910995907169408995180596662273588092618094668763992076225075250712362291038111237493533910938494226234014692559232168620897197059827248442754448534902226207250152920043661571845057825314391231961993631840628374839346374824550129540153959184461801081832166139243158496385310943322457507576413838084194646766452962763257634150443779841809724831713879659909956175265479019263516581615232499136739815947748369828716267807459207803752309776847650395818052630808157820288845121983291063921320314412434158831140024028555641966119423190351284943948349592483959974120358997699591616146467979674395291589830056261834686493880413154745644635144467023682989414303283362379843382066836884458059366591951273028036597489610389859871860496251912138890199480866038170480080154372303630546219363423134781633668296466856585173024522909454378084705827297595910255333863680361113636591023713350571634982331080493829813840428517708636039846394624969699768937110972694967035286300069599966724334619075851333009899880352256420566911698692708969728949197012073213654065543286291366356428534030650547396984421923898169765544532840064811610935894466870911310091246913987496530885924787659378623667239724279761998759804281754260902803834405231254608598628252686647497433457460566172900736989296938477015146845854728486622545834074018874777122255751961472648936403417840615974893297272197977888403810510604935439207519011601947178674606543499285590207013945047295342062156579244417430846607138141740557381595704041319237772305955360858518856205567561782635096428317650724949236414454085847040293433849121201518795682614183800094511507521683909397105260896864022857181291116110794931262827042351279995541411315237768631684038952379403946383595778648645519788213856765989181794190550350978872442263445783315978905892123572306097904875140391409377068928603786614711405440015267650320106240514589168387594634086498099316311047415758759029650789706478342162612944416471845865861980726171413769910380953404785466783990697866743930573178256762305525574578834348992296675453686593881682442517353893117852413134888600432914701253486040916870739812503388103974187402332601678370368046073249067301352188438439694937531813865835216775223823137646318228804391559345263489498776466151900594549962255835799565993163963173510729930137998365697010674254527393376929719813423034312441106899203463779609522695613607111937802502187613633367867274309974571330967818375153699855491835178323950210148172827992592316977548720662887976440139239417197672084750919662505449059609372620222834895645034829910814198628498636107803646209672440736024194071273210148862266566929813043727280111746601397753790905066205057137784886987116262771601577808037908178996367955103830133935504359755572926921046641333132402592990410706431237629403729571528407767066247841724811137960887367668747861266562374412214329120323737757997621235640394737015087921578531385004786454731390368903432251984959237536862095964532286546268841440424699837187483185097726202407274673773911653741066138468034954330606223561751622610312872100793840502597530699826698453853660802048928234152905187667517824971154579705930094677789403219187751411085040919089111674583032896809345491619683817312312746491581020764889607426237722367992539440023133642775317036400504731863200794188262810108664642219923758557604772569154921524605092262221658943243286671636909926661936076338901861491168943392244450681249027180922176599138953162881956364520796656020414483134763047477764464985589882327624461308838790115491868090123636462648971355543652969209156243547586652805258717685257412084458740583578196274378245289735520974083573316685180555508278714122351012361287442565914657426520660764710932062260376210894577364200015746970162142923193257466622557086642838432018971703511613300308827138362598912103759920576087044620717219575460998208837253564113255384871576339888036033730806898555017759906834146267792038887761092925466953273087016501263503351351526930619833608709947941353524943294672569242474142422743744335005665948553913714154934969389017478326143396919579502474849863445075694871415392437487448861779570846810126361581997834226653935171350562866131335328714180333327131436360312787612954489231547129125429063996076245652188415859147323082897812243720772768701100945032389355700648224294392357752202522380019629026919818919507400659298962605486309433915882990467015468555856206582053815246361421144548027747296867088540397608782649638678250877950203884885695568823530380472818589234043407530296131550891009501716505309366119896263548437829724704435295772781579642720647443030076828587658508711076150265900866808450658934791505667384946621768573949539853479490795548290274627828256189791228358209493527300609066293377894347639858174583300150840688288640356841695256829497460938249642186101662474368709977374555165020102469805175105741659818372570839738936364714928069130517316569912539746738852334281409463352450282006010601338829464947805310332692446706878480838612118446445182780531321070168462586488659021133304563069112890811914480419519272330220502407595248836594038546439558845103205945798696370788186116636157336477510749282037453607499117907639237031702719866859534062832082888365081629155156395310919518509352782060549685562154313741417070042461851265685471670228219190610614842074384744480448667943689474741714482022578457508677851977017497279837368936344542785407110544081108531519879879744996619381111791167949378269815516364108247050700556902694855604942559627186513678880636452508781378614529742394830209044431348371999303013836139197026968065362465422670981553645503396494548902215920899528846753985790108833936954747602703588227722966163171492221562609788401086856204294372299893193947219366835889155859125244230542429070963998899369251086335306434768554460625411465716771112213049217489701967441386564327647869947046803349383404470584886871778130060543902102909805810727306110900326163116784042432061663472115413630181717802743423083655549250461461927169351147296198814171068462644197191044300316199391669452772031159901857367129242559343866766087394106945727695255488179196900647914622485213508638173041214439254641036925981937680018038634246330444363232551714043864022695016109615214149666060185638991621719297983774016825603967797363979195714147150423732522939083646024606003757354244965952630225726148146218537248873246242168007700601197847506500698984228465241443348543386746177671843003693835008939584207428116992530941186772065012888965345530559681898045928729153380349324340312315651646127608825557463532688893650851156794371130724563483133221212639286972095736246041569693492121657479982160406828306227442503594312209020497307039265842090226780344483940561506946738974230536184831052531085419725804197907014378776732129513055150898091329264514588970440567852445802281831727709206963228532116102226238606503793282248030172673079656421425499864989264749889902925868446217427380198167835735527476092203860526995886535516631989896237206826544256132627144165233030995201142451802763514378465216180991598489635901640595311906714432210902421930366490024678623092307749670934761333373602604065630410933227349745589535900956909522985692356143869585699297758418941674760596853613409387860862066068940760686907230060112409243905992905459889070172800805201716248398904099928334181492970382297752625848016715027214130266210550537724114214625338019592165592266542073057237709499053615046088684946993842153917994983320788998615627220487416263346171961940905168729118913289987507006370110120807903597099103176176164991819637474229920733948728599339787522449593720695874093536155967610287420157976143888172751141067249917998783967007301225579813327054269043018026630907213625984861932120756105376114621272048034971657343171033535881180440934307653703367422094968534080922880411224056804462128192604995427934020587946767833705243695269547421016988416465356815408403797113134799347728669744762044419117224882822767666203455629521144312673884435462696455683709527330546342016478759874884449984955781486489745612460294469725447098500424274289660664670404579367236397258635521210301977919949696424897056707211007683950593837365624452253470835277229185334628272095136054014273105658366508543227088311326020017867329437246933136636048534222348432555293395220879539268553125115045098350023910034407447839269452991419752206819774121205626050496317572873105483971767246230152025381821112334674468038704199169934677766335288382086301176940362713574466917444518140301772376329701435287184998246626533906493604461430820876273614485608891420078873933078763441187214919936170861645967970517221204061647481332221512361078027265407172884918975630575621027796511940434346120510077534301751377059170006761481749286610757498568429408375452051705917382623645984660237899817611199944163516899676384623035793975080840504420282601762231409402708891479714875739728277047388346558030713026885710474104926896346179638901090956591222163868652898298795366147985433631854200383624801670595023161003414090364911565487539972573138899847509764129402957910610343167746822730123582996251913673217095063548525832063822440289127670621987212472878691589880741627991899787905315273565958907978603475047179494197886775717661887054203755542957856293170466338117844110441758403522112825612828589057025450685901642929206460081140890452901337339770118792329958408241802404396522903968332956986553724282970650505269977538796795470678584621807214283294092124628093243621356479034461016907150226149902728924973615844070111975879167275345592205028496582763821494689504059788788770065101500110260497516145059098383116291700931968838227273501534398930034211073149610095099465895561400830603292591333586567385899765592746831688084569487559511833191245827651392886804793363374324933428502377768999035302138040598875940355687912365064834973152931240365189573606104181546489154646210388932991875759157307349962512891728249617859693897196662085302919070699732044439911938868816364687599719402730606895019965470671538277274414689569019420914942934451305733284448318071966904746702384422396355184613711673767214745350754123273432924074616860702590364407796500792383427250589136771419905074790225005449052817603299169980165658262424472643496911370533915140200385031191133825424961651353535698622125572976546057870609391428069117761897296616786093288865459649018671446573404075536485501179012872122031937375298661234118720138093866688880380396041378006881594705245574697195487713394694799897182052791837474417625454238307450464102131661145681601326056316592972693032276278861618746186730881955863100665453024154112862879987525208368051218214425011624984837750467430353344890826740434347210988617197468088267120785767373455549117487732212029936468566375696362249838736600127641153353841647182556387821485672656152456799855132991373224815309561694713274990023893054910155409946217953457771705970564111804339252426253950063014436186697258162127135988582527144695962303553975999602539537379598165366574952892569814584676302906196589474756968207846775585216518728143615767989226116998710602291045780472843903338769521236037894484057466818666764246613985212574430434563238180333078743685044266820654330116623011572002760774790626915602847356929466105662196728099970758032654143063572994031800703094596033670663463798266007009426664069491080320516559919237990293035547234388596986623794217034862358509236172288140708147599488401938049638023469540202093034049778631256008853473754602236313921671366088665912103145678205227204944906600133309844110390688379686871471192005391581125301272402193919141344785838872660611145325876900937576079951932723747741550314825727992242494586187294166672238471422625356632155017527398567145709948367343451604430189600050185676065492721553653413280053338303372234498139344844114853328908550668118727729986595369127061797251221218911004722571510243465292938989210114428511311409668366578140243556109664379226655392834525893344793241376785173750337647977454158738852148177623238704546864133999552239475698943664317934647017467980271131694945533315568298891319216545999718535254801973622654455700573185749041186739132633094917851359029636205627016511321164360672649508113602335654588460184344928181355600267099466414550018468097035700125106131436449530577224066173244482340565680752906663208863280667661085462906823380073851984589793915545196258001917716212596846027219522554509129526274663291917122681788945298414361745436955429921782095406636813750843359935729171865391521834159867655688205274618628089005447000421616479092112519434235106377559944667895663328648413045715825973677839893115808363927566630603558162356646216806387772698706348254218752888621282034555451342722812071654125201716865293716764349363723013742882093114046573689093684665677454286312124200292372445380308871074390242552924461761530226218173134783031618864045874612766183300264701396713743037030729147726155524591331090815090265183444561341441264436344839794537667505718386871491564306337921963231220540359393932667287029865015671101453118694654663831728929527051000171227654758028707563433564082458920318659894610543393037953801652016696974445709775816149276810457034333313272630045166900359643333213534430619331682278277593863388108399710992805983757862841595863356295970269698043719663527521338095009738472569192431904399176374148493746572535195786748147109587460494957098454866554331927840041525680759340210922236831877710701077880256330434926904802287694464099970225011204729748525721771498541790639928735478643407854010688481828606980036091354421794931121205364983666938862436500818903723935919192528491871882273248483463115346917474579760760093407297940117560574788952506818981921331083673069645323351775448854498842395950451774109059119859621717949128378099742619949707535278151506573478204683654017169044655668515289319464539804812021510621016481945349952114698312909423157318529194535665868018055516958091783639797966087239849070996909258230864723830479357201047213916931620637554149659220331346920044966788263046117180044467139849442623030048432450148596718019317696633297379914857003298447953922061227107770619279019551258480786720804632235538242924638288712564515750374550208602686332915726072052463877880690146084184516844563679225024311778549796212023782605310193366501790057182598484149752584676945518181926808381727254418300704362504821501482387387493921903640326872494074708898339044857786088287006523573372479799369331103195546929211671623325958034234520635539486860207636479188717902717718128374450252663902071985894346075346156817635915685260633106582061582709915646321963464235377442187255691058438603558217336113093790185543319333795114135577420202319220381600877704812553266076887415679603888724096596279407614701740086627768062069942577211125482671933567330259029929318698501793312588675137323835148919758529464732433262421451055526507192824146443527996905673893527774857216951367671754885185895940946918941376067954975873763447855773079937277009837431491493287366961429402533200499786534153629752596718483235546813853536974187157971635103320328586836021083190982513759504448349901317214481736314030899940837324351768758295370287110432774496236126384878336944012413751344188153609912717354745267959356664687870458780587700220403379477602170543797047788596980120433001127216331501924025949242905669774998628310217103949042409985389279384564725633812687538671433694942973280623186280949020099244178284136255906064836423357359668146656632552924244691577767159488256302109990311746440444776660367926602360480826553112815229862662368713704030912939961728392809189981922370807546127177788625065393205820328047725217616478721833755141196153958261892857749469510364237851892373847572140541263208269972579111134298597547174274524229631549373307499638408618283351332338207276426716083667751142072883478426133746349592684070852309364255628186403793532668964035778060522790275409854601432332570680604977784467848663537975344031535861924554955548541304654364356875070591557024290775638962760772560266874876978562004781167773202125863445247371741272980974849842377705062254660416557492369351036497539686545944147551408467281736577450813467263390648918549343363961069553713118774421688061263998840198801276681119584914241804135153902216521393968037237786360815441973513835011713412565508195628074269147547667758993671785309136892805786946149016033756265639766624419872550370147128492477819935803187558350309980479160196168332469585025005131864168652428010675534801424261091840132960015566943358775335899189178544745106782700503076068991251607000820174907682115083182530227357120406247232031788391613832181979356856913185140707218443565631464087907210149813335127362152233931593969424666647019729067460512479172785093364654101943596295353575328075116318646592575823065798826616366378271117841649078887991059140919801128439881044003311054116589907351491936147415798440297164096700288210162598502627537239443429174859568888475128173094248481415549298782053644958244349361043418183396540433094327366281378700737935400164767231401469263438375109643729581230001567263240148891265192129108848389698962552894711529304128260010727897491214148965012956334756542464531853298023050985788625972395938077906896207789444056141551763535577869860119461908353652143968769707863288813371098627916312023789250516985124890610262435947254398959309337461074578319077317494269067316437369725418781714958519916471060297370298272233833403197124161507743881013822049087534152451556329707873958804986581610921202222923997967919666589915564537679381281609580003947102505249247193947255872181311189462960177797745605876929795628500732435393521997107556071094213941003027549818825288141959535014268996263341633137962146250990111188158072110419123553756775402988531213722322919995137868498455472234949012487373204735837305994947003697681694420336851072164841805152195341596855934098237847701747959442700721380727787897194046966563447595815049069023184057614157381534988950050664485284872794345134817780558585194535162563185717068618907365115396346272751614200704633032500117439844809413359701925921386994620195104906247814387428982341886328542990362653772754939971435400697033221106828165238444083558265159681289473480512388783783495628691783420177057242312810339581748080297857003936219844748057049313438417335240025374660991559420556547656929587095196777126457979495220508534745225191195773356503584372968755919770375551964622714643586672147909066740903601031424243616142020742300144656283621928842396146238229136949852810095998929650071095554825694962891635663296331907851778249822978800732344550345011522555687187927370598000988232973706021395126478090670748025286443139829158793225145027570932433020269379569417116130982009644041171744749918984126175301029287127502190289794982020367298428119065036165576498971628964211101423074809435605900446878294569982738688238692406025585080282266932446895865801976363117151544321876535644139044777045392922769488088190416758745417883868218213652573954339720351482103343578843393134512169010211273063086868211139062988650638484230463752514509363681992788899440154504015803715604936053729516487168743246902234247864078702706245608412073071672095927313356525107846126784863755931310238974564244731095774639610308759338001433772030601541155709896778649649173030388657386270636183234409396503581433190489807713328520385884671768966412421550186326159168105262031769728646170673683482598226613678784637710737153638397319343921746482958175168508309420090721173243022133639214869617018810319721574048477947532937435030909124869693168775788627428121389635113777054665108911523640252344202131869563753613183454839050990964739019546559960688310491876405007337320924262048940817785725799101079360412468838984961849643828545872227409028000769772107735205124670589680203081152488134989360831409980765586210453779068431429212002208684861594184284993592287016263955511626174412244099919417591944225501968536338492996091960217572343243595840857405712859252429135998897970125120971690605575684434120574965338884941733054095998660184000767944773714309482576601992875195605678551783159762815654888107046029295488262435039691843344930188710974187936759634954532570704067427571802642994157114380476253453570918046742866800957838664350444552535720353886252132379853465585404586036328863353929166200894236770578497360945498069724379808868687421337466740279058087817435975708777172599051954915337751985930323944271978973233904350888184094443605523531380254531964424375723002022225312776556197340214475185211817592588471024954585716443403097618115584704326841611870319244639008266369626052594892988073805797253948104107076562881085835777695078386247032038204241443549176796611918887052946681812744120549167169983776397937596667534543071589705760105638096513087281414775693133763733719690571010016745489128397570358741204810189047287058130294644037806975357968215281202780249179737866283417487728056258272897961511900890235446894468129298570541196403245347438872548337428335913828759481192719653079939500053030234766106066834592337159419343062323434163443195167690515446799668142480825656290743076765515235301000821161651918402134102602742601857282056741502698952613773090538021096294714007865844825436671227814693920019243421570012022726107323097525138871855327275587571047136929705547968986484684555898107914241676581628072538269941186025691107377755817304952046893801651713110123372975343785068147058733225267649312332999579087279937214222442882477148565881588008447010960160813585602187146915404898536807232281292867704021291928337414458298544152567355032157350092049461344870752626613682150730283564601399308819026212555098908745412492379433875898315266144118504692735763269326794946617443762174899740785089124955673139880452964343806116993840422403394718440323014352366111278532633503296473125088839115111123472294037712208320934774885148117286868494160972746331178831599788196674968528004152806182142824354808921629587364397804818440766705049380520424867573039704653918003910730246666220176729064196550961736539360672337088870309437291258972121982083523626454300916068971765858770040572083069295704881734754631098585382102612279910929810988751554575913314966747106089902478463697840094158129031022401769849948940694112317323199640237943734556381256916402470593010306971102971078233271487323911466911502470013712714321589342115676070745468884775392955107272855551857551885650234933906232518593588257176537264666290650185912154795588040986544494656395756786252030816259547092244575373082009911562070668203974011135317364701797499265387979635725242248092827125991199387519936450844357801580788594303064196203060334581110118850865942875846139121613700825779886168654132046245530002658147422598628245065665882780288054968073115884261891720803690833963135021349486422974655517375523900601047146564982904656008320009157789787317814902686624507430818678244402699146776811614222029749525569169163627609141267500764830671359207546527846507112524923687326433413941793250855455076467204659982220754960407006955510077225461854754323363180614613860539232511783859156110856734219109677602288520425860499682179357940414288995853047235620516846248597304637942835938525691308801198240791824708576113479674183591620004112551435154138444360117226151770497990101428854648730547630422392002387124189770307798014727166539217950553661627841680232986578667772008417868087398620231578499826625839579398295491280021409111555037481351001100794713927853342864434942307858466795012025945294671110838566745786148495042767113554591809678764868338291154839959434238827869532062959507652006263596866906715389923839891403028216865376974850770221486950138075405708666767164940884568045293664798407790604132762895835218695389080779398068676989984844805472956341888264717679054833350954447064351820569869970972924950130563700095737481676148284624045444946940922170835102306147096862730430725335611870704696796766193634557471337616664545572996098236266256169923348086860883329043249384491442654320599889247677689683831336042516048513203591944339885323370699681860175522167325152223085810105015808608137186571845849693233657240261740736855412995627306657934799619714093345118847641165353333846426561613571483519039735383569439518305909029358986788989265876880625366153256124983122394990248806006713025535391265835427388668416278128406593771770444474460554718639314226044293690895484644760940433995890994951122170382522629095507298481364384903846701142945773376874915468613999816013421044039543301219719254607918169842951978240902584835067829022742438004127991298930213095997464990278982744759305688532858480613606591436872670931161281143190879015774258882644824455149237758076587614496498661672604469370424264646482900316132161812990458874470030594177891600543328216543989210590788565779369583454486756316994010730319777937221946812644190339579745894831379210157642792223480980755453852651603141260276826835830875412242708051523603882816375441442974773272422744746418290608022695222685793254633072453089350959162044857393002614455256750154593295476833758541130979998522944548373979957275164700017634033307985367709091380065333181465588996955922474827111836875779228833101959391817932273144413674110461889071112674018090543466789655199371551475622934473874834386881563115629961730427213823375642660905957790624121755968210865737347050778531805284409317916623794279760803041526291796309271097626937434316960064829617086302450128059553968657461734202205579077132932592251792270354270034957789084235747776253841653761167861995253993871140271009357565726621092405108183969533265243083913662277068389238571191833729507472080564177725096067292180288417007537308669019536783574559383899435669927853196636659893168851077439135571284356988910742313620509106129225607636625691809616193723578513653924125917816729377635682040872104944472498405868333344252395364446843866820971750473596463640917219123372938929651667427180329404389626067842227690096218900544974659238317122333703010839791905910423879941983863090655403217540175148408129953061920902940605903426177127848595814963253984859075354086639731007932942430586778308713346189837210495605764608332767690617647131297460431174467747664272375380701015113901299591442926664122081115849400712407397709293339158984050992308529778660400724272823317052562709019725597887387439892873428510474161719065928739082659590537124855448273738098229946349498498467974334973849562232956756788763858085055440042323330347317973293949738116258273818707063913912481709699122018007349667450868137079754310734071257813311094754765310135054087462981954418239161994245092270550492442404758403376270410792925885936858551374013959331376180415958804593150332692694206163755019644421587349209128065373641966358852135689182230740246594390617277602734164949526441230078070804968888535798477916012345529524473440533704563966068574374111811426261763273587411775525290839293526427899783345575406386408372500460789261848387043061246232535525687419063157703895976585285914833243177686845593769898804734895367382643073701775322067426422551389111170098245333890632131000750111863075368487464115542397201632264674351295495474102362943151117013645606462547495998494551139724061748686908271035584268532076413280736417107481854393670038001885001084760604981384156763210595732530849392657037892760177930479132532859412625541350774069003891713798217811047976630894537389631549774156454234015513080916554309984640749495954860652259906550332921021859724927102271034838630361668864382336414331672348491513201934533568923755479211635552490520780224051464191462981474822698204133815411851077667962622620076050791670274747652288833129255246616886543141112556262504685299868970641990592462710596434155826513821498804722494595419497223485527883418742502100864469155837582920502414559045331649587977531749024900725847288848326855583449135225155006754183528104133955557241073169081088963674469011938861822881379605454627166658690934822039149561828204171480344018367720945894526789279877844365326176924095013107353336326145669864763679362464276404060251591382333844601541920496775925893562739157128818076042981472352282531212045292784592222189749184447959781259649751559436146910294849985532131801318581179079868532697486509730132938409953931216649902516888719717175599585705559527723870182759923044744874174998826516530757396669857323154078324973808254270481934177876840155146475832426547542075856197619968761876606694126724869209143810339436239384071383033356176521138323618291819613589818662347123021978868770399622877097226816456358270994148760015840086932876892107908602233070601032014017097143079137611845523210877131830981757544665751613725011568662526044530625320566643806269041477493553554002747768637776699859491670300477351700036477974616986406332668889866797233956087248346257519717777593057461161949203647652888491962957893142511097520072892060043888357210391965502351777764171681731154817402509384210221194169921346927788885440378155950284447328853900817905188560814028228442791055166664189642703626037328861902596462236306977460591404461751795468206969342009888506335651841494354234306150719150936289630307216206493061323905569476676506509550849042393711857785740680172577463291667779969216155577526675700669356283629452142732189898482769533724914317181412619668989996424175406909636373282933209966967044258063021118443159634561977705053100857527474509614493728113345368968531683781783344982348059312347382540446636766880228293184167619004968557578638001109921867575471177543422947641150944041188302628542677386235941421857151049417033420010878025677542134743933797890176331828422670296256941561678612552671533221259117930016389083828992208441258235589503780551698062566215617228881071329404091362192464930716469160452519098001120304427666016587757544229268631474409195099639207654153089599701850679026595544446679113982631537785276284858984058072742927209157515366313504023618242241284640225961623618277784527131584496920528437146190400903398645590046811695827258117876265916745167313164647811080429910572557199809875236775907821385256880164490675661995784993615688302864544194866221658706008870994368077231479425088524670400293295222846915705031138784248372469655596498932077055083319086262367945888698511399162623136948942188239281531634924610284103669621721036188095840913646958645830039596169115066223221908155714362857507113825196746399417760122113444908813174392856671465847103311377938008093872643854448768320965615903120811102001526972305414749554070132746381794669992199247312874724310972140450544261687890182937770863686386010787530895340037309688119873093162598431495768008892670833444630122416335995009317961620332893569220918549686632871160119950445084008501644261850616407485198916011295173153108940482540806894625573214229398305476932029899845783869874900853702948903642176834328078544701450675259011353727568323512871222230792593003208902995054865214010905501926610348667136745409719797605826754999038748408506649120695137395626836731441973152034862606833667290576230971313593897573002500678283432435660556431316483586522641297001683810124827649481105650871574081789951544852395009148320500361012932669834054995494326739529758540575539942639190281941591427860792439825200625009546663305947318609280816503734051024427755117500543854615426104017572779770345280634164151911135522864960939745861723196497446066003380488700857142582761837595211331683867121186001684121436368860093992075327046911697910406926468961790667718266532496787015604940160738403640987000745130812428092612906365653578373519159377537090160237624910199468762267833401295326489208576985492430437669306883922548622600892591084894548677423398818749859980157337366610153485743933158800508901043185681290096662772545527797676829496046237119439579857922568442563097923367424527299893105064544991040140891984212650706329046284199659589156379424874043999638212295642085176654094899289858538649368143727349023988122506848314811318710194012418992413819929391655928755414470055471006296082905349876077022306735188394701595026253229633605866529162070785316436148934156985955155837844666296855054606845529007933862627535073093887271803863116768210619935517656527740329140439781807502912688608997102289960671777911555083809684616519156668324268606755444991675675775094366446427777118819125007432845057825634117818530492437710397161458416603723815398751825842912696105569194399524152676200775723455398224512283107168538277245168928022203053852998012551934445433626552190672364273210855712563851450044032317285380822261507243077122236934602565681340179443586339962865992263058374513951372231873591093496664490511503362146451626706513483649324178927969818275981472310977415809662939944576129896738619665252936022313964347286881797561880735991170690647133581465002139368845510991448061483311529825306417956523946359939479401205600254643660354252225909881524347348710536638024968376857766292612569544849537917238158970450807356928038887528224483448132070291142248474922122450267970866162304748169498233824581861600659653270631402228347684217671112230302566328796942864716958602550864868439200376920960614528664166263951885092407597414022098679901276753390330723999464624444624998696505067397089559010976094818676953639973961726880978461892464498296642826223365914560788616004728470425728179556031640123515201641323584382985946570843341740502507610706036280698166011279561330203054023531763062989665083438443813413545431983646951765700438170372396214681491447274630396148228844800537181488913342860123034711937413047488598776261952575042075203360319085423446941441369856597772577526403872686033167430550536808496576668483345459248753664120211580356740748482959155858523999492973003854657608941006640464147600258675159173002950958238652388453725072723223153593446702416006912989199056899397309816412419208744603911749933335261549492331977608742238654206621219198337526610398528389684849788604898459951863180895277342241019056935442691336599325932533144391945962985371265262915995485454152592695097346186147594574364992912262706577795159208809890921345960967164057729643092941660468207062973369518705224870991014331823926756879189002919307030993363567287636775720111739239881402319101906265859162328984727271937169830922369903540170112365587064903790828023588613513607487593115466325850984639093483052611844062664173190049299403835987264449603241543512035588724836530071589518799300331072422628690437495261588062916776947228583265661680072757999338671267078288382057781341201631802598835345512737107752476435928737055620176708827871534132905478609771966523882614695329239484467791806066001420054820522310177418219680336134757566670468476658179130451760711517341046818157348267056829320115647499567566287935570430553367515258038205356241838934875871356037617187248755162493452543754963522680151313949296206113514723975455490290043808871647951262026843434889744553913926908928273162742255168547660393163206685343780167214557207572287287566146532719078914705760362692759170908381697024207964328648714356330334554618242924999166527544796577726379193287826582336291490508694316835443171231548687853624812587216780834584642158994313532626465199512725570978718633084528058147785441573636061273019868939299199659746670284723097914223784975922152711992765325819130671769341263719600143064558339124368185074275480215964767557592123381090155992863425350238505460067374527416499345263843850148903807137371343691558144513941193907017871034713227968862663804653872514502332092954176282077505086286356651891491583244769791814204198970819189388234335508816512184248382522788598090115432384144538423141859242430654829677130871738755695453465227100169117261699676455956028543607649424383000951968844740918885625163135219314895069073133810388756940789146679087171132846090856979986933647729085188997098754082915323532092178222170565008009005485790093365657358489545692269863770462303821364866815990144928479850070076553653000813298687131600273270642219023812574847859260795213232979417079942668297733128791949434219249947866423741378206382325178918802137306616226071857263953452785656969533852435947756138798527028607793698274993683585637866773217535972703554388061497786170117426787428234731634442195368887635379937282012710300722467180174467993420960138687578018498347704933991816224426897303864445444072413277696102106984825812415716326597270389629230365713361246323847508991185819996726251584824331050636237784300387555771780126477963530194881468684166487264123370934614664862673316465852209507516663965725355175144345700965261717461280898415027088941567469270048437279158766177020133030168511367363912782336263667157604287059613623461111494318550440284885148869323640586992083190652905723463041521557893451378500540237265364025960311801169292004278911413735039064110832659568324495740652277875038342261584771143951816851984921716814395888695114808903846892885980424029617755914746210767642896371883726447328247854347261364098775177700718586792950698275067467309851428726224355028144685755491690552610205631627395625158370950626664030362595295852790685758709285670928252536945618864234836053430417390097009812542064746719586295996637281078055592551225622388921331584539799252474265040662549438310078760360458944745200177214778187240507606080895154652883049037004656239534874836581534263122260531087320785540422933764358044713978858318556468443422068011694222926564951579849158992019458023729168160040763006868026822523810864970742628027336549087367544192655380109613662007645996846672661528359138058983286739925354465640791496680846084590374672667986864138625701873855441060285126106210529439889086610046029647492022389979954837908777888005480801887748514938792626966872718285672643440300336237490548222134916152760251428371385879521440204779073721169716651759732742581295903998315994758157280098803905266120364815840088199384723980599972476159356462832988175598050670530282016115104824150095316330379328456958266404946959936808447618859456506964560598569217083045183002380410416651436023856281369317505708332827834211221147417595750342300326823102574043520777411212871006165289418543255259316323955554108192759149776711728049713530033853736741793652055933046084246368209164645026289519365675916919094867628809142710954843058053326445302771333883434955915399628821313667361694383010159556588609919577830854426663660232120705882847977358138222699817676239622249475037489987066048317852307741361124210689652280890997431621125843758784884312126163509706698354551842519551925562236707324095330576254081626905114491945088023620855875895260776355615049797786893487234401725144918958705288094416545206996642513274657283644247230547879961675405933157643659839541139628213035555448171307300550572769831032348780700966459456298279837865218468510301219213651591607545618593643291818125154615910510720018077029432612243036332830746961781191912221742676795968717054854332274562438120044919188988352053448783132321632025996303682047434340209167174062018598924325701064890847851758846103683454326886945133752046260790657743464599174605073645563175169404500373764926722473487229874032329377720851965223943335986503756395113487870237181051901701530323559631645710807254077209354414408106425042604634032353641629468995035165978340886435158319727202121371081151499995502753802793725730885036276704374406462430473553594896457818324759046034452302512546256472934159361063868060448199764137942420396431335243942884343496203896075868528514032611210064353000887623126299240186278723747267401738909488145993063244385333133778042260545328393149193713662959727556318300711012902252276856335831778091140351910736152119891610657103204209606518882192106496284948581092596042418346768160936127808643488397603143831217267013235407276020346597073909793610601778821227362527212785555633911602718917029907337072944131969712245261209244361431061221530822011597987430636696585419770603503413796885822493509942153326515387153091904670370275212783130433358518109820297114735695132038125764391928096452642737044688212319898489704338597455208427263777061109613375606175224817017536712082692480630787386126428625581598043682423305809601152959036153440476417072772377364079246299930854650930814907636964665681603741767579914911519752533400218455413439026517144274192671027121700374626750774704664958654582933387651039768523669394537502738902115668528445469234753251832041883324628860145416772214780255130528850797775434842219345518354637791940286550221228194939775736172612895155874877883554448050300640792713459481142643715967551804877874549556598469404308809959465555617248556211348415407502159582058420496613485447824703772061793121455945140947025041222908321937165961440547956460209354385026587258574598251722938739660942925486291517978236984525083899062017892262878655200098440694453312732306606773224074120473379075489167386549546316648512604451645513558877497365984576733884080986814881074089052978528966979947204067583608037546506738380082102573650423774745256283589197253436544943747758751434470358450096878132695324080072412901137889782196183963210501975445987321498804775241034528235136638080547702771251576229781240389010053051576857805156740468256685088162498024486803604089915041000014039452892400525066663483778010321655220177068395370143862323136480944651574072735419265906849493135630323061149722591008161396837441176694279501447842700546107457962293457261104412929853336788809254785019571800621336558557827499492242244980032031995941833095450469857177033034346851561770206593160197508497770983586691140105240251826367692994866955276394808244849561628778904372411149514294703189080272020345600498298267974275339228642929478900982992692107563689014598851554356704640059452745263539556149828953907155896674444444276827372813093214868980080539616064673257580552554079172072098969129850146461841955284776414073678136533739419416533317460365377159615893253803399450410868980979983904176536363412047458944131040733776975689367580852410322646312561562812196766774766422686622014009395594509159972683741665993890139433851320009913877408511296597784404342372072212848427239398515502402506645917794256580676228781536826192957534938182303686257178814508289187892731038556473167162943962166455217234191316824032231710159460373392764634726885994925313526371881069679416673211874021915112236764322110529622987652406659707880013320596651996328458576746163320126510153929924399154178554404398858663618562991134043725673424198302626132905041695984442200499281708665251857562418450348016511017737921163769112453665695703578076718321433020612954682874440817433728976734218123926675704444980086827879794714648921691847817018817278957611820847177915137378432980124894061578726613814290243500727874073467809563150036975665422051786379660148652547916821521447681711197854924296125942104057478553031693875544381136462307522392033428363586382693057743858946625517580497743676026181197539340598332354891285039281431680417240479017405968460800347171743320864059716428311215831174299732831437086131474264356070485548227324613830708063760180080550511970623056968539677443147435449425327182123633422249575050802179212039240008545309565048916651572061829695592449617089399012839791900517069874111782824368376036927582567175554083185456154316617280729652846527352618499038441236734478914772442660369010030164284552480450554574458340422804525747152692543606200322382513788743316218339541325464199982926895179450721853729617058559304667351791989334794772583414135787750383180573515671448798751678126635533459518154028331999706872448324691307201190742416158941871047777902985656761272290893280678224542358512109608386939979301143557581412910860125434555247912576325515075425322935108684754836918782871977470344409097860225863423977953077965189958199153320024520784628177664552389794296832470691224754094073167597284740576290114864726806109863579491052877480940392145657686864826812047197584309037957729727814711801219280821065891070738797385623458174137269338779256499287914156058360732124963830192551239077741568969558414340746970322808367045573834334370705039465512487873833321026802858228436215102226199805550345305377266317727781682311161654088570382952160757025713921886426556983889596901114356706143851683126876285040125032500955228195505536916094752522927368041956944780379506702478821981250142313684669320931866442519385654022323610140231538761122161933203711883393581956519164086716996375757168935905974132841853088109332102178933956680490125406060128636711149357185673616650804627724136392623053671271556253750913334954071287005110136536687155660502580796578900683431406711550213392378965129981235106306678292010785387358022933600166889402900756563153436763116001940506196682218329654522683819494706693430697556367002190547632752076041065016906112817062902974756265113359324476279038975426292151191050732228853289235730287250585828881924135560237553100443135501818623148785365179089285604360658111538715921203339342834929505431645496101174865714464500265740622071162560746942459953311483754851837528656707714980277429545151887087550403099920586678434120933370566816800072386155061428090176555797436758147293408890645873509675749752365552019501169035376962322907878637855782277083863902760303009436506570096885871173178647462654248137558081887159510946269515258532657778885371437773033563590844831912495858151404496421902563148564041180225893148649899753530756808501628855686060724981844358710939209278005013550683570469751482526362017025584516287516328296647005574769359575775560595786527545586954690008319333115642910513948351805274769333447097742236086525360325139984725782975551804445718743951079639241069237088499729332049922980343025558368454069358088297725691093893473651771269872958162124326326329204569302697553277145238726155780323013158459282021466067888562499242006126420222651009983405548823936536058929277723521508583162486908286270697106080970366764456288252687574887413705849988455145582634410381890605430103605887907121573060085313007898245806549915413217664028478862453861182685553901804624202864558485593658431203751302022279234871378568026346908692350312761323065789887527439293510427329925098728804844755131264513480087418235939029201699223021664137474112912777891355885893470806179225417377156437846895636177585289264276942628519132155233707967539773774101392311566927712022289312767320755702198857641764420357244210662957690229325160828569331254716575927806633631611559388638500355988913172880938302619658940410896342486219403066368548009819390430391744953194445524282749872056059258269707456601267052162233819605030779133493458368363221507939859252867727972133839513852449973911795404689189283689196904204659178355133236780505439333139456838354370167212844196231149086172383945830025833931435569910059492906513596348017500333608473655714086084789328499218843691456074624877527744742203881559864320424922827389342452979008049099910613640568512275711509233735076454020520249326299271309780469830683339269136137915577328584380900381615524039635743945774813821771505056344349506174613195309963013885219161459031600016211595101092062048931253005909272181094440289246077569582347206672407480303210518187127679487010647401697991899418521539408057794501667221822567409685186468385496893807955363192508969388124672893453768435168072422007936492010840162686593691651029873919492358467207704314714622792104650218799501780803290314876791493698563341303077593234031411980828602249147741414512377414265126792719377910033087126954208372791888689637367986953487566207091861100583772540860096611027250840351150292890746329296647214887735442050727097768732247487096383766032340163296357478673180805356001374437819724797349777004991420780858063486341685168470123999986059766514255354307659251550224518033035294008937283553898248686401501356431474584379021863473219967564808009148130946363806886685402167369982674573044325106442297599554669249626186471967592374944697529499414574163186060988236196799299702148590034469810809121408593429365842625792568207152337232177939079003716928796284252984606466398446278712681545439849938561077744701508330097248833487626266871723720727554404609077412003413147913003849366158898213812832424109178480074197164870576898834822943519556075258681614258256318536246932484488247036229494716114649362037782575207593630551662949007106201024670048207890007177718414952342894602756612138532381995945722365760581711334310080418178063401653561933950952316101966639455923424803291086408366970847603382740998959233326925352221747318387046876519029498394417394719490929531625563314096464508341751806137014997379452405078684691514676509216696562321545137002329796166459055229025992294438139842104265778678414920560212083162724510106180104426315958723649947508596139896334667137287040465668936880095057672700417087169870739588785413473216955410220851542113068956328720909053668708638664613730832411670928464722590409397859970208220260006982137089180256452440360332927032855304388060214636326164310565923021328228390174248042399762420919273339827125871478892027096394530378896581655735615682360495987304804260610174896940852898147149045027623018628593260388944584625638533773542193231726301988708109064972315924713288694423468093447423453315755471023060590876782951960309159428541611080947262693306473256679374021242730964185126094177419888280968057067663723942226461367324199964667622845356322046776100427813587257487988601915561247010283555223825801144081120736703938207496554577946292263158425957014609112223505301509230180445390407636514518542418682584936822827452485941489857906784724501190118527615183495439846785471325172269569047075128003867399070479746180432708200965943809638944388996545328176508366901627851033179202764772973912763967781706342592732910451308613432975546269488374474754226719232536918815091409967501581846015689279717709178614691405300731251296459344940667336621488909730287439199592859030156425240405932858262947371213232401745641017521195354861855144253789636282756351057800154496495455504624256926049559854514945845890464995425013502278298123701653647513890998749601493052295667856152453616558691555787915698162291398472430272452535330907961580968006191090769470848041363656173454335290683065822748510153136145531381089169629227036197823981565824639652473416748023178584567337795318531411254154309707413344035828410368421244544092936839382881428008915827179612583601877970690917781722967704383968773461344476256498705424807655899148642643520044366842149455941478861028976132750754746274531318048291969193484690829135817970049130636416436919412920519843685159626467620053135327384063933607515728905287321123538887176793008261103036975500319453103712363510617112231513177493115945018976096532666990120576904172421671368581238508751541793835394745821974159796462162017544133227041385938430955101072303974300298621498956962530834606383015388406363686216730176260958613475647069477601053185645589102594349802267891360242099863687130477341457969091105535017893060130318731866922443110782782703104235092121092213201505483752936206956890263132632336049137689456191433789312981936331942897115954177521792366882955232905207915739455055911547369927391186729730918645084761205328450664638827744190001530246087616649228020664876272869756898304283936208603608770048164471065014521643487725777258864354992443838534004181474672016176653108877289512499432175932402204201816280948043431626956748551820653818442918664436593689434643352211626255072237398331670014350182309280318514146768977774319801424472977792482920662798582543840480755450892073163336644082664218821782332984066719577158194052388589342017402029768683164412644876717191440571231890723148596079635409736922504100342479481232196211071989610489656167875876691630051488851772839676425772672384082188399123792081964719665128919576172756862985134530403107337214984437765806119393712319646105457507893324225383831128435570875819662641298434861837219478931983101019965254331504935904381343103540291231506757587525671178512084971038684113509646565590503282563467294543856358960223832040593189053347504234331549253917807869204414732364285737225685211393146320534529302765031307132427911439677011977586130330156814704320061725922380465546030740465379103196601288953499249628819478016265631189630778703052667471093182993017852669906810378536810307075048372585358924440179293681297999321952285326867236167303780907002880795964537911509339526051650847648838675053518773326622142791696346325413604341348825337216812836243699160571383987336661481029042803805048337516143842442745315365293883480494656586987252119478857775468338806233041555191746678773248241904514783361456703623205170047386120704692844107828956929475523623103351361214619629718368741350014675445993990548808640644834150082301594300683443744004748798966731723431586913737024584207019263823805690709114918091373360220383852079544357089527527430021415678489672581026676397240273431560334334571749698668374107382261770617085606084786059117766649829918854364684800811387151796803368837116529185771884281629601871730335895999186242952785322554643423744006953774741325353846362048450229482331472558165807759218150703919418160142568426331676232105533006903331997642275377780486791127870281959463260545425358292453567859336208537174091338012408279403582002270747516736192028088855016841888626045063854229173257701931120154716408788245946583114904855336496376354425303939703350947900195347365641478094442099305069204587516333992378184162241482775892172948634180699514375281969463182566391958727912322606090650522484539914653202519073049655321244935681060420401741567417305119910447458163579297913453387057291972489965485117007142734037845403037492132358373757139655579197820655208617382051663309347012866005789837509278330441690697551075802782712460186325419448134815612268867928830073646286858953954423596731272093908485445696592418362517100604349705504380200770154945622840764750964913930494008143919652249412665718310771531887846966477948351177175847424605855932982618628958950406837731560179149465393906029020657120476692205923074773028680916951399847708515489322534819566001601229923948934647249274292030288504548260962134493053698367924316244011974433622774602133491106974894731310372627519039288303599921839656171124917336951891351849782282093573737169226820336026759897203989779881567637917454590060229056441164753373296295695346276321798716993817233527063658474462245423561642806944088336587037236569345775552765578701025466521658373463798685073030361200282131697820916574992812108638334404537525782912422017888996286758069592776300843539592425860293026375464868468878683920702592861304894949271184922107351270429761795837044562224730204542522456368974233691521833924031242721930880954326155857576612686039360906490813979292225807081983750955924057794665642584654097084399434383714723941365688155860333267410225175651754185599039096279300983867864957380755567950633665398005187014811312998506850574507492279524934055366974358996080220778232395236496015369797514015824517670812275920246115332039919770345436816189155467100792189635393903885399624254561307498763203830686835442343666537042324248660188410972391377907805864889458167586976104760635561170323196575956054409078177480888057589601052278576229961087503371386703215680854539116103031468416281810370663188782279652572276599347618683984874667384188676483925004806734657853058126100976481729816098732953782565816388299642474872785593988267017871462574420114137548947794834226585176756586659685361754169083647790836086226065371643339370863513567233871888847500351692558348382665598919673683240823564655545978391379990065185045175806655476575861427517105071130567008077967795659637844053023668404298844819669729611091921017491183688455206984708807568090479548424223985959894968347647531262278102446018577094342014778397661226619662539469191848224077277045069979755471174787440191106068086460128610107242991423825543956976785369259385884172833555134001111913190914473754172163809096862273168504572546457312025044889364048042817959797449786416783384926499129508898311274225059612826779772869608871212460694080993693271745764392379033007142906940533580990251738027576568187238705101278347954103892104194920570753599825008796244764640313779899902333808283899994404263751610757333195238214121176901386781129555214616015275864632833448974559804200127410536718597329460298436686086848447514282101819597446002872139517602680158565846027147307912101947391630911480952339677797557875354695458759857750744349988963493423381173049402289596995804658662500818189665804299901660895052025004244527279532420170244388407352699056586859398746850215438676561504906554706837011295997916644955359721101331129356191626985550270297960921790428753444363275101091305845844633388209556389925157497112355394346127463149660647754457346333975596348324317059692775684917400616547639838140346912762328044482901065864154014053333290186651579981488217821661119935103298146525455735026579150379616944458533152180158302057065780474818071078708629163431304646350803276569536746994456521259304657040207973717261035880264308630879848631499136049720332267749461156055001076665516637964517651880315240665927951965379643149328567028350862444564898973640443690738064928201883813184076639498088268287423168475692038861372502130666150811757690859194350948804471236371325986744072488748900817126675881619786743798827949668937000789696336456235440277984263137404027309993231057267730899345872593370726323349928254664054675117227566545844231570535231404921780896682724827031511678170804760177779651590217189548218264698547542791820322094884824427762708154136095184115611182807214340027175303998974586066671605512498322087711967398197660985328617158164225235792346020796547522607649831575722646244491516239608391982198946219652330025971989386001940675786525548251550280062832989805304701485344317504630015806101248228363996788743238652844656564827948765181315241475371804794691968262278403937842337924647763375670968245828160983325851015681011936510944851340393988140122868486311764297774944407208713883534567881532308826289738874295950602304762172243287462509298886819573217747988629241910699338639516255422535373768275176474667549120877002112106851471683807016218861815848564099910262502687040462334597539412547548713719875439402526377107361043259824171013190007133335312376658056109268540868091935270023582979207460101375487290809350266049028425058023551515553360741715604643689217680692931759472916810415210397462342972922495070495598235009765495621323423557822073160167346567114267556179302620725272835408543423187038576057568469444394590362147168409850882882773774709274404344721695984500234634274732883319272839912161866598060705028969722381777716381601786567666335825404408750880143337016296203633680927916511132325421685282181518827066452216393954650911575395910753532170905058263723666413301020998838159942438865597635696544755527624906392650933457068641987314162704538461163703897548990406071955653865068794041044849380912326532003087163872981546395094114952180387313634544111793130108050737592298797615245409749016655901041941830492743331207563751837356228129476765918320018558898535260912143770169692046430543579890700151555926454227768635411724899058966432648465819827559618417015161694564315323834149362249893062223185211255876901201448369279224878580381318949327282263556125511736967147125504296652773215594730347207822650869500455228134599317603699625891499633588797629604064579276607604758483091372401217137069727642453723098422972531238271890414713520633677313501887796491612885117391745605534055435726586826551083566868687018283704014648199226540850684283473570219152743299570547643793275876691635314869274854579321195520548847068080032950402976538181239343865450112524382054714236047852937541770468135096928950636562177031113027970021287553814095939128622292511547613211326548187490595397680023071013914673391892744222266017124019768630691899850065548257751206595089674561265846837941785868514330582867883726087516111942700633307049513458781842382526553132039304703433302420635539696372151904282704517611386475028933509641400153549327154542796863285684132612183732863186081766700639291999521809532287514819608048486104212902644536168209604010651996337356999939914967875788833954993426727596383327717256858850144119136923149493778105260196512120213310590850534745643955903533510803505360447560628264288229328402097481634267265928654183573623380267873084732523276464678667955378842460060263515573375897864384788261956889741412937291585811436700268048435617068092776086829164232559810617852779172341911517547197142570807718370596553264211317141616826876627390107797865929361746795101413957919407751559309738254627568296158351401092141673580140163045347151933800325297708125612524700154784334841430273572374899348076342457269077664690196388276665493110188183922431646307814354171174660838133883007909555077111745054507583047471244949813517445021330488984994685347671968435623292222824681625417656741763092903221237739525834245349520097022445819928716722002809428132184186892498762319318846048526369758863424870457339807530446205065488652185026364228200893028600003327774214117708165169447761114529767132750534924890258324376254732667209456955220422697216808626642305155589836459718402237090965369539499670701578972455297296015009357638450668714116380861811076483962706153886236641881222835533994556879183400257303703029746362599660365203123475828800954722061815430340506444150925445628864113434762343892246214421473023992127896973053763136027073796138020643816099538986344912982164730780766903035679016441008009004806566854532580150642848024038637653788174427319573416149393185798602168342100571335595946021598891537508675345126183115660243942856727645795839487795515436934889526411150671536856942855851850951603941145419053788944689296435145029184985462968599857162437061432506681335673214331344146965733391650311359777219542666619983242034932534414401070192580504373524700117321211118493105790692489097567334151390162885424955996376698544057358476273970548605356284309742732963263460715745505577453162151156817092238595323968611214323698140499501337045111042018278718419926487949280534268543778041798185391576839876753348536506848957004536601167262204278860092943264441315864499030970015336362754439203256035461047728957237653575808372704657248511755173720819334865381795375190633269570523099640229199406661744393578507246922191497921800215913784015883135542049889695098557699732991187640899159457571749937716904526110171775432158721087067450100387780717209378442154160133931091328014564416300484081992248377340734905195005361097262195663184468235505978304747733134262748107628442189395063311560467544932030485832988487707680711116223040545170628996390417987078422404576384229858025091825609999127732268096648597644036116020703131793567596431627279794728947478695193763217391531736924179145666023229169461310265648094600599329210439356751599525456954350559784874541978314761165663268074542505463166603117423842424874720535140288222264641510928961323961209060465670279337532920542970709962043561607674171287295794783828570500571591310005954048923871887193817859697094312175918627402841038787461725291706406267189934110584055444685593977655357473990468530901437863652774470693005059625851186114942970845949208721934646984488434026573492092589828648936559999735857773734695635964737041806334322318484280018749370789103964473595114366672140434963227268017165699807819720986366971262110154626276893699374477976576163374385052130805542630719768418458342435395991831459147671826730554566935758820117722886466040764421986253833226421681645113199442775115056583648546460737417151628637153217604307078392836795401467371366976057499720196292149734298964255596558018684373289838156800995129320703995186440984469406624590983620619164546278629726555957669115433500299021196327543642341428941558209044253697176738865291822221654653983638332826716006113592101298665547646581790104799942994498599724228327925233150189791484914677786508264122622272200578925486155833219724860619514802484536030646113390415821378488263311340098542018238577873717814363653036673573402375285689131686690622489751372973881211338516092562908280973343771686755348642003112432389110923564371142062644234685040715578005533166927052671964486450042864250355618057134658208610085494775146452206983673149065161510504547569904246473736751601863891283171037815075756276584759070054809022117328735169548003983014768229878337497186095702638507742030858123077622748183848679692377982036995753976433146210341570012329472689165390120487633235789908948342986323333279757579870875905231958611541133305507347537667457386144415129979733174128481939680106940368066167038294277994774855273882671979579284160806726383268520054919411320097294913156760544617606200236381854192786291959431101366373909666085546130880662011085769698070012340318143737562720900296315286115527712757049991954928193551245278890179086283748771944619066039118690384923601070802532479275646794654322887579965266925913783277097141854897407248745766374436929758757909844809513513512533252681832454742950501472228193941972067978758032494578056271971022610973070374040119005512251690147592535884345116692443707121664632638115583681976376545502997931660313318426646065572321061749685634311773280960519212538926196214770299920903705106321708499998017508325126440589468593366186224995637270270295599651490900546657089514125895992387568661180317348114561659490800240607437511637626148921032310684453439771308695383426107355781330549436122211035172161702779114002859988231642397741403282612141816636215410598447112571732552712305619934432736089511697433883262834959742114090429348782669004137220988007250994616748857148854341202507756191062627360838584965663774088156008906028476412598614282759189390984330013331392249269936396035691441983056623326929012863967699090431893819384827361730203647297193688807952191726822150629466548001276060221542816944330839731697384583162316158385173802013461465879516826409430419405631762781509297596443772675743677529572912937284537545053522248575197482033397558594202408398809449247727734475986578183817767705376631632365023108852946092503586633494601039933707247478360053504168388952797495101609186380592204621648364026600214254647071157589907838228745170446094979079088495877293083457131197768292355082802448847717606537600245409511737360675143420914661912022000687531360777113881675172027078584082153796990905954718004955782576551060716584672153010553781766899458667464664245198854646287119825715048808316354523660229546457405924055614598616424189564980177956568956727061621865586111488838086033390657109990826395843028825001442478563328082905852387414023544607774680418345785134298617404689026630923449337070830264200090525157105664091989902850003271941076646415452873388785984231903707834507229190165613274891538451200549584306662368011281961158600787254809537928318680750752283596815938789577888587697637295809554616436072192085009031798807574121494358810857323043736569668785121971590021852325088733723149833826801107629618852249458073135851610796783989251914362653675149129347790671556036820380761367551877388935058059810030647769194913673429026083015059458104311232988191644089954992083127716041741272048011250430350583907849711615453792568559542981966684426257942755112818225192502749738443457248345559612677283249340950307454125103746914530991472903305551568335169706797532331576354081105363286341360777542508968161015007878023728529582363727769902801303928447624624857445476187109018088886069523237674985771160524457806528809304570464509249838030770030284020712246842409421076369265061865430561282153584630199731842938423665970400675275703031731309578204706924662765208821166893970978191366593990480764713459059459266817092529454073095954026451276577482894154791635630100641630436102212796027409625603327304401181929616223871826477532147003557894892654153753617807210745538714012239150520945056568049996250974162635245273542069236850540031268443591806255483407500362182788987023175929860446254651934214589334953317907980221856473122494652457742813426706555851690577944382600350450411467962641852138287932980259282330050370762694212672417906401535672461262187677412979976475021341467932463649306650180803414156324126353001405264815494944420588600802997421571448914666735851565128500261376144880595195449665045615943500349206358671582441555875624096551626427414329142445697725287315339384250301228148507589141586014711997656758828140671990012419095689588011882869311393432244541722543602974913294301235674326159438507000658759925546068055144242463656786086085659532420562907042645593945895247533236431101420348399402880697456859387529165411401880611884412863307510197678829528460823928270474417676444323628586929691986942207573067347549672445343135268678270587768798362588625673428979603540090709584985185843031426238983834852638987274599387920426720529816695037671832471295763973176622104397222234776467859243760620295679762133861989659463515135354921324658721218562483775284842446651067181177093412532288961957809229533689034904118334229564648213353472122603753712146535456651029200881339956512225777112550246223935768002262085965681792008804277539475408052894809675572650757984815654101424254568785688211000283894051758759388271267745446166163688387217503971982228218528705138427460380230480660460042536744624230297762142160136004087310783279977000122447025802573531029981160853225162905855890415606880915798555352075091566826556040455807034163973475905154496105600781640065319600425658154666489896829582643709630757118123156926668502458532242314052521307602032044551568175600153806329577445285378801776557616985692554561400706946617379849361059502266521427689746563835998079595907264266613172202663817223360125542940391106350806969875115648266808576263052914252220410687066626884799876876691872143086521800933670603385118279365080488134793902720183266055724683832676337916045292702278709754200930366040052179590773465249213207965033369217346841600599002544630687007156200605398092602381791146106396220133793890797230596883285382414989743360652160613288029269604841996605259630851968169846388553394254939205125205978116097878792736398158252902222771993318810979763362263298933226731916128327761679678731964603660504898937655653734405252944219474435421623996673713807737878356146473126119520215243175230181064352364564452317507052522136432384545742554199868484439171213606203761754180874224932397530755442178999055545476267263080962119510745453344243208368964597744190943914810485240539136951472797883587928856053847971284913472909116130883207964277846077902774558867395478974731505625008586490789334168541120663606748188297209036836644805665963906952942709165075450981344106227832691143514076987203589434549818278750512134302791955166035505267723322185790306195682241001636561291893127318735163266185468568995678410639783940298191775216136042807278791060107750111685351410998775878256087206204684426849917912417510574540405271156621417880244287106010215491382202464725309684008230545922563966267249103554451861973176969233475455839936611114595757667230088289920615028786799013144576371077130088235038096992210868383575006825582763230177534973858736046094412265183601652894244908075947018359693901696124122393222770644744021714531585215483192039028456132039281128765169929127482218179694245943752323778350328173337402922633815499436621833695548435741687311467223319818323432074426097618573847452788022456401411344362421307977286211670584912095635488449313669275655018530129370834140968573042224327062574106997533132208019492082687988439710336961873090126792167422769628704077925317010191639481025896353663480069341546074219981811865696360602537966457216474795124277996604571915580365695668349155375647977740895065079640732624705432486292224717908690596879224740317188298615137064834345762347708365555511041703353603983881373795159690508272803155216488228340094280215075414051418671709831960245007269050962355181820592078349407785752156974846194615203233574888290195632030506086368274446818726591099830458859984185061735755490071786419494849001047135184483457980811414757453275501974160857968001761958653986196223678987027826441282088943090728925014515447201381592096715174160738963405641521662100593335134984924335176400136015004152684464344268318701016319865128045770924558743028709933187730547870833056190203559590977400212566416502371078965204304424128784233181566228034948847679008614667721704523066752834178035741244462817297008088170893681747339642649504732071702334535797290708870975859806068448396709232951880267661211919288785074078428407174328352290913152041481181046390552129327496735797099766836580931427518505405595377683732075609150781137402106684454309241671532809867238022318948863703397802264728061586791823900867125729923574710336157859327571220006145801116588799724094268588960019177667305960509233584355888246053871237435944843013267909368704228050369633155333495373710682175803551124144423805507250021062077984661126025861445627899654305953902525517195855395549348717258705476878607081249536067138449060467292818815545338252048633222756745289996798369493067521855225425490866182014702255046502566732914236909909951246342395160343780382197045618753319319914449983537888526308647841647019714923445202260293050685440096417262895872278856701675583353363860860445683745823561449744687795203873536587677199264984662880180432920332058351928037520543150432606970200963967561342885828690165892745180310541079198785465928544792275486532226602857273038445418029460191452287832855654242365003652723873285766883780348337973610795377729216506068136498500830442250273528519969784757756179758918793476145030103102943469453369344697545402731946917185875442474103547010228712710763842691178821512452006704078546896732355200239174622438868983810180145397480315889348114000210099238348695273692025251381810398274140071154439590564401849994968262755568268752778751558608903997509156349421238564176210169894452657670934418232759907592365287036978493930388248502773760241347359741608544970050228915617735971560184057372636469051316327442316918853904085518844394842159865663176735448135775586153821418183118337293813906252140675182777181843909579075224941212320179280057504398848603754132315953541228368038271985011457925170694037409633492146128285633648580563526035669524494265451406055325107432451600549411003121560153159018197794275267892082414330227056980037710692203402183293594632813748519298860069775826295327038040534706194725342487803444942771740749118672321448813820889446905669313972605950537931724076086445717254444556761162172372653429436962593199777854976352981884744222435898529492571405769350668377083115073250208015569928108177212556480176911824465598186082036651687769736945285854048669121973098175851861246268924126392202423966779918164523373317366671575394125154186738909411660735469645464642254501944975997894868604203528254977671699615080944427470509922524452051710480840578251085837153582743088065353236680504797064051841227523505781892089303618750319176056686193248369003836604005229233063311277317734366487376262008320198315270710038509672214312222742883462170656497312190862576607058004705227065870075023823042062043850419482414236823164068315168771701630584253721536317977857050543588665989409089336208638691691982101098327954246177168665202081671058847503978774579167436294458583883106494957678031819915066055970161718479768624409945899915673204997397119507825823062754874746739901386144031954251388296278620435758031776241476020747931856613128510609699354892497430098313414098348528313317923359581208149874240407011791902433855278720479203020829300253919555665456017707783818952654098429881320072963635839060193903202196412908729624760129190291073380036062839888786242348268888080473069999931589031534376341133501832521521436035972611461618226076317692177202400808516427966178772441687370576068977004020812797445030428908299769144718391398218945218349222005913140719436473620976375534387345061757496719346865105895618272075442792267497645745458810994497158938931257847589529416131089654815090323538717567685879765362206405882167128673239246542869800735261403960892828816671326948400049362022975276343138333983532311908203493499248932647403811323511237220444552002216414246792152545064317306830229536266944252247301453443778292206910552831707982794581008493451331152392617058588135132923069126653795016779478745751081146254782382573627100685007418324521641701992872216017270659139886799654834707431385872535597359683322138396181399203384965373754198916461410304947401002437710533396606746632849505337463801471321641345832589000187045054383371402091253234232338468499717725578048629258904952346624542503114776151216520027456629846930399303393955927428406900881274876579408716660070348251221775770249571133787903105237239807265573900382918354762983919492074863213606188784975906755315910497642176826981453920839379162065206994456270420500447258759791144668664813319535816428654393172411127344096252340408692883794148455942377487006552622118825110642251215195956759900200174969998045546088697882678600287596262934104449587418229018619064223293299097849455795962015525897370815398738876829642306086609258931791376990095946383902720975851164293679814445448446787003149047234200736874456351746955018605630222372994038094401872320971622781552876639562291727005753364800765725375170313490084326830528396015027357044924424649064734767122334519506380896445043764575670991039217839606145148866156804331522516673052092975693737245040115195286277774929735584895867553748539462873021309724931738149947572748660399449900891048331884748128610034950850716208339754649587044750716812084263231308400747374566536154202997355362004560084662672162769878167203046164285632170941240497988100114712785572748865465936297700353552981940211995623759975123577298870205324468856901412148499183837145516831777631394582020226134508208581178576840424670024960964282683207960404546689951351508698692560421280587938536019432606888649633883476494528693486512611440912424698612807673997352052690343844328285486110459964609988556536844371824850274576287343293684906936139603252381213898274125163071237810854518249640464037493649652293920177793559981566759717377628353800370733237177815589140038123897372216986431007672861840526042752008672262070440982423350085161248209795869199501390983722666674281385843548548460538132400713029252750655590258025934389291573914726904277481214377535651469592160885843806354621511570511565406698186275922649028200516132474244674059958565209460081117400955167254429911260461030687150167376626707078538520091730895071058821963585134662774597638972398699392038228194497059243342375139165729973502483914231660633487685435892183111539734982714010653955365404544271968634377395766323542740019129677118040418553787768804452170805788597103048610347963979374679808701634440916647119705998813674731150585994768417125999218451946689539804124465975682003106314148022150503143552800132838975427476051895488490502700827622591242718953772656424356400271859565150415207829259755701490437034248961422873870066002177600357550755220369920199987647315562388478299451019160015776346560915050421020836143215347289246839385275581971610337870214472083862759490894116333272925290203220224424976554349459377581708234100795533635565515699526121590730219017140954623392529663313383041063303106523822133792762302204127787520971406068604592810877762466344700742516726520879458343861662300354090856413597373801139755458188393102141619927051406894481751277941256661898274289497571576458830219650117060879357188294286832094516741189327625070441980586903854645377660355990473283671967529736540548346778280851887998009011695844865074223639693807526908716359018689962358445138815300084160437191760613713378054649638783930459220211885366160150680290673285274002733671520061739306606079257288189880086670824192080061005799110645985147231931245787659456871354892560055212141738970934504110488455080265682847078437354964121075308611223406139950613106747866608163704628843804006777449420348389977581935211771364593987027559542208556444011872077307180265033051783954119372751856465620788110465014395342558493269273175687839558560674289319835759291387687912583864377316089221527786340314621958159006559479125313018217456797798012947913989739532375797916457850744696597383657671315748737129746940856185810024289405913783801205000561714528417299211223204586913735433165636241711338408633226888975108657782604461935021287564845613675774783602467541940100598421197926459038808187285452398034714984046761363946476378331703713389553040480330544963540937697810985078984191352282931047096877457221342687929762279121997545266076953714547937640345425512407344472587497856038520483722797790138828652196185209992247635459322809719900141916643551503847362442285275443295110555119683247463266216067721437628339037182508848920898551914805026613521739507254912898421884926135015534608128558668788556850174517292025593091680280517152578828099196877411192046557811789560958342334915298298475625096450713103345351077964544545415753454373289993268614078833706355599032970553751338466947405316571036910047399504848586263572504693355108480891805399177423881739973783597042647005462664945722461387743784554010182306418300007717927481690545777162927801483096729908016312942649877171096790785075137635504402704759429348475833698136613882555256960996051471614312839252440977394590336075584890836350155210433348031471584608556288414259512949604521565790074274919959720351988056103418618015392828966712439496717943240376496617605351015617793849565383243666612419691590741981554906980383633135013774178719796629412879628374707590089982642497020021486667264997600557775683373008051709330594837850967895103138840459004579229521305826607770734541133188071633671310839412634144082426295951708186800316013974002011514270243989962460444418833930168841424222697168717140152202097598780886506098331235710871799967307038036638221534907903319810380922678354146079459381116601830113658802999723577398415051425788950301880107483071340013889165821858197939205392209331630124097358683400145078636075830379536702079769025922395412748755200043296144449000428369098130496545050978165356398966812979950157144274802565849031949246600424014778523429633257141315299803255786106686446682399193956762076627953377780303105165141003210294379486797193028796999676256127636125202003259924208783755196844602588652826795741935823299973610097611405718291501440001421439265736129473764570064571713392186825693471866018590227456417306172402666598085556613220358146435497078264173713589606955379403643843775639701922816512601815810470479534596985201120945068158217094127442394459480739289105044452100213706765770699651542899456262235017316395854158172816142959242075041551032225791639148015621318702104310945250441036226355219352397111729911314441333733407457377851093900005247121225208510280496549842409041892191703980546664969870865274495956551964270602479636267782616990045208796949480153181096806709507378346549376431331212658609392606228352313492641003419344533086694257875718680577689679870197431801872457639063972275612825537447214529622284345774831678791322070362828507342744895899702000079817602953120622561869553811009880379893289876381228382149002526019973308833983491110075711160065798259853695490616250388166589957122358190116476611794214117628180557324060743731398762551323466130840392772982040820037426524364895595006393034554233749373491386028483049759833993877954892835410529363687869385465903252030008690872631172319783784062636494455546496020595139400237024833958031848232283373155231038867392124186664296469421619366569633999904265400660353549776731540065315430364364609049710747110083753290902877252801148675383095640906582678383534545907111942701371203968061331686629632710101416241691383541929183932129924481367076843856367755766458185040820407976870481475332341310960605575038007802243238021790120556621321513095496689568337555165646564932943431122423025602180899753530251382650528828516246098853006045956893386682651587473009673860401858538727680519336452081216629403521786492456087496393221884255030529718284416971120236164391340178790758658361597448314309632333527826943315306381508181121369386226811059765947250766932067967200827397319248868052734610331948403519376071647218439149060593761427398360890034706513665036038079840241495563727650051310845299616996997160235163881295005729632233084863547737166022269072209942903022900737621412516308245961143149908429363808578953311392445011224812488075493033909259507381348727044666936396631079387426544354503304588448464848098499985328097901562396048990842763705514606027235705747134672986408888051706121612449493229626260383970470339182639263667742127322132679717221158120395457258859692949160106952223983424381871826137573615371175127101261106996654570083458026072729980028282089242167765088214581756250165900450332777449388668631231925608728478759065126525112155941452938859856219828846239822722458994299974878950348937688078818600599160222005212919787628956349048791113709898239768022565439109815839860244404013029363327491728779766801822588803075015995753752101811441967370430603343642437304013538841477159672788249502591082299680122843484331930783644498265920969870868713803845284432233578360959864241272521809494885705906765448466897946160790123448630931864265341980273804575648583010592251154987231258768748848102377847089724598071093210699262790539845355119713575042387327068022672702545277485066738127167431428721345186538204169684777311338916097554623935735405348265356872388593183572151745772740645135567495062168056712936034197075904170378978017927943816447880733271712478442891460187477659992825700427151592165330854889536495239763004746229423984953467441535707025662804003097503558204104308905770231860034755024975894202017177263800963540883120600450004532813190076890244994121437562927911767216898327918648431344928188930934077352670401508814978910375033804210058099705536765675735026933118709531174759477912956782708838028609567300925106598435873766176513011263399510563141764208669637537949452574718523750510649109649106420308561430441730889194798562081303507476720908202958783788052486532767849747901906386791913751188432092513319909803618710629029949436530695771850378660791587297438167623029699886488554140460819006672621707913307066765036563173148298455019808179728163526667074754560267993845658116983771586380688932585636847812004044210640475064680456587516312163791878275869707917890217433559465521605160373807414882668531428415023953773090026172477125977759813367771193807562077763955298289510085483958960820248300346630125724780958854794620342890782531106138034274506767398081716825889652144980060366530080235600726554777794839071919793086103744215119407530251668055332226741209092441188454806662590956689546976029785016566326293799774378913580418520476460569042931561275223836748992689274171782448702107060198912630619090382804844126635161816599346498491816962549488550563351411906613174383808825875513426931217524264723087330727631919450176827649491698544494359690037960752001624946851669955013761797136859542476051380458935135075430563671518732124167832067193383503768925251577931431579681172808863737121622394155722492824052541199693671926429537102645670816248728717781496590891463808097071039928984745733409983037044961032873587784404281497374655283823359052060621951323383750476401559578320501055349221283491138559376562964371315455836622557431670691128683783060995263464970414874837394886442396485988703799904450034770683339490706730427820505225769079031784754658224597771861105111394369311500402571519272529655165592321791616974714947364785937351622891412920932753212774621443241421839768391401130034871939858515836742818832873391389144177964422137662381657443321891466493586800939915030322873133735847301043077545977402930528107288194125094540139926129737559283849775333710232142216112345105267116902561625866633185549410566570182914320772745060345410798637934585367825756618346213845158445846906851862636593196675743341317390640902912859470583473017568400307678723335800280854962319707122655716321660021409557792564312481120445098054307569945773498792863368335822660405451996848032886656834102145499901983137049896129488487246812053209845783424590258414404563725345333138213181105850373123773108504812553952389550987274963240062418629593576357077334788337637817610776280323232213876376119234134830054620053181658624402463552934234784681373956603892710788532837242745355636749361492888295270198707644305999411194731309306508159377476245939279345733160519004022889035880448448549204029029143504615530643797557677175014482494139715122680707631482929843541698563920541631286740305394813968963838231296817809804607605712894844276502284334599253232595259528375371046651719926517023836884768826972265739386967898225682724989253028889611396876358467622174470997038581137379515072119997829933288053966178455608481830640234791132785343475836150896602702135484922825409500683055703237216440260568300966210497663597689710126275627214462375876155588962070942003947487903188874623032888924069452143335842881334984909871766097621946606666036945402181482450246485684094094960237738210270275492118930432878297620019752358417076209033046347117417191581829855283580469032550317929882122936760013811458515847063895753380106103072604046803353264751645170288692978028648244879983785008999416151229035509486760165905632316824557524918879768743179747114628819337155120736669574712077292280579002842642629116896276851400754063987208620793277508576919144296846679114239596686631588415313057846477059649898460424674329287112783618778864897355817570084892452208124144278196763184877427992707630194529351992191526939907544510748175755465192263079076619897577265748349075707074908195945923057239994064989553890810776322324502378059860243392241259836586646827274616799020365551398453752416068324334576563985852564283789376934898688493478484458526081983190697372755231715961943122438437157203310878960193959356875061849547215341302447948789204770547518290595964832218231429518114926756676484748853767718624523520815153593587901262867039206049127141409983166854344492701544600138399742895442271800432991882338644161565880186738488808777912956280097852774454819413803405570318379721864729425019121701909495176616435484008853414789036274970449791469034633161722837407465710655067636715365646268127983837141601644671206615525070138571227328493327080828921908748612767882381454840964276954050119657306092071035974756131228971328763588180475482585828835121628997035084403606098492346377303831025990965966720062142971350093166077314145919674030171461264446962425889448470464221639151634900590026090441256163207891094350876112095509256741348841039196930520827358427027084465866309268689335340203732800783307814978795339163631274416158009897713618473235570381841763323958532244972139587107674772921737689954026410305449125115414393832487456697296156835723193889039537867302654942464768542344154467438942877056815232558266964076615423639741681142280126396406278526387981187634733323329456394371178755360793114102716523907490073358217437704669791470020217589656252922096999613145872773875386475644635164938890896788854927104242057594533367596445483890038128864392336885455690809648329654394253352007054975810767791183406189956063072062288883573902332253189188342397470538775755524345102996565503547204013182448146659699787979376905257907505035691819435649265315960286558229740137180532167327870887552407020427017432472890894245146332655140427460984012462496392838364003920820857686551054285368051507211265522804715881719666691419429378280230735799467178924966202655401719995955688558421316516049781410935258868194407778689722879338457018962744625004934746018634454924101499564236054306494507696103953942764249267663996717866301200269570020012177784088992500008937882664748395337237914013416717066065149307992197679860853256669535244441585986614474321132715878933299782578706432849823523122118212546250958938212804527039894976457349761961253413855619150409228233179692101357453584265669534458723613384659733405405038815839229623323230568262485731854895182584455786834683697778447556059209777355692126006888005854197646955618266927830656297713009462050480051035593812064827285145519134852146781624137116485214875829170121082862532313078427280746574597367434465913274097478550810898013278036596281349080398835856702719049942375634510514949034218931744980456998502446189238037034405622260169517394400569046077722132788021326577525306127860897204378749164374597666421074026993844798294788584972856569101605561264618120090734998724087932268686488780174990209197684751088391833036315666384219927237001935523474138706253104676726908739791231461946306837812834163411155097661500946473164604075381483142740909623865285426580718318752052677660294300708193821133169908595858038245286025079561459554420896995974844941134798421853803164423293578591212895196924782341630552120783821561433743999965240122947104237949223052782004522759236822104650288790807130087730210348852908014345445569227946068192618603815377392630704779513856282435925318135929436546508405608789698210765056626579308039842502411639128317183670784791299562711369192120504961639697765862642044685199046063924952192386168043059270889420773686525558262562233325194316464165100531073801331963566686936818817886076270371471842939480679051938540499225135714704979906674180402151704755845876453581761160802675373967360606510626959464841262527411198747561028818393883784493137853519240202518000736157045078831885881661755576496054512717698188797559188028730181665218401354910858004147725615731898128768085666224665452091146528857679804707806393192654303260888934729004217305261879982712132062091649259559578729729488136760309986328391430295998320173773947022879647988499689848112055116518357282530994672126314272200333681818356057930300133846504977405121435455782252455250891443460603957641292951247510225855385701728665084284438977722961589173060427114266582842976701957603596527747689125022570770568656421572430387527977063322358838084526370639191470760918773414518605726931336392419219810224447674705858179849693558841798705755026305442651943653451236393768670164515308537824492715611109818243501598061104178245241527909874583825935918493447698078978651756508353745030265354312361592426533412305235027838884013531766509179655240784384853769082618189609054009604292814326242732132389278920865051761616924970716751238128605835208972344014883541859120570427324381774287355951044399961742391099933415897190673960256128974911299640660251435405808284974603379159610028736225689045103294930751137805146542439378890084178138070049800027216152427823288754170978432192721430889407883558833951216871707043299873041563934573422916436468130090425671466321395016510554214274350334445095527852091223690229698116130760158563585678760592905061148726956148141574960195351212045182600266364645641320542066843796996968891130275545635839787925359964734127363310862621918249227659039466365161757378004159480114752790912565472398580585114615448565585580027504178295597251411046415784988926936317863346236407352815854204528709463270105555025099971178758167608531140506167559985349246102947423423054502408475181853835847460581829565378885952414125182136777633419902000044442296856031989463403060080902373990569359528411881808883234955873903341054893471128757436705913883555579457868973799352200347793570235548808811103057360463065738147814690533552197957081883529710437951411087315360871207439940025360678506252416487957366081616214854733598414278991573725634227297638666470821555655193432605322577536406679978934398847094402800841410396255471901767701733346989238021797795772658295015691184419398488621802411773935549624455141442292010907746790538723339988709792671503095763348602923360154673256156930180112029674343017630202835809522739404025196024802785844479878352171575665112484834088499863114202118639828641539528198468419454179264095048603487434607548651921855233160718533716361943318011245631229135210670358650821066346636083197297346937495030421137559614395930881955453380483551171132918762075822018266482161935084315213049965170279022931913710190693685601305554870982773337166719406383337960104043777179589465263190470712167080317345503671123309222035803780761602156156907196285363453002686277156865581313065920719526476005584348947581775335589307268068784206821613818805498711087024391934684643359837515729122739431552472521662804396275476740167363790173171358300476009050247730124828937418229259320557422017320345914944304539945095467340796694098530132754578270206751326584537743471689184537622213672221934989581070687339489495105907358477560681106759425455420311723715296794172728995047292748455860457037211815131858350880689992626776517736332244491090845144299259518519153882839430832880774052018759079559875740919034557008904022948498984860083167865502355991285002789604664585390130835932753069271219665032600100424200659451902572247453460226810363619340918262211712772124601361843160016881327742808841243079427835617427031997555204600116858260240774342505981550725616884577153197695831430956463922507992383102282432587627262821836719705469053407206101764660110419657382166349163125111461382489957831702390009949160387045729063442291122054365120213850930629652815381991443426774546036317053383470964752638357427818563685198878788331265820146103734005546105443460760530299131098075502251643225819168622197930567900363327148845318566500253280841038090082625030231701023080203014672733351393894458094992041497087212696820020086427666594500446745888210345968591827227591244355601162315112945211569352809887601966656302061947677314774581185836695457706318544064118460240956063499410790270276708224882114654378799581903811249500679048286321238763428290641783509636788826035482682810039010988634837180185948150618124564267746916836003626999649321626264929858020213263013904387315957050916244526268666566916154049440338738317274776374878078205966055571987520482787849796539186792146033499159065450239813333635381211447131607768896764000744831820501324498974614650754794531944814192291766080339599289625419993795405916666933110910816366363936562460008421911331303544442742769277213167949483286322905399411787159242092394084454179922721994640512835430553253013222642222389856794633459380704824114284237676674209955160671507746830024982495832769953666594174166176068318193513057526177892954718986435285077672338794252980730897329983341063161304745625563036796488127131027706246419203019450948125750699858989789922216808718713248974752234444005706334692837108879180106113265747719645334517209553064237657447380521783761042363567715473101536056819734599640844056775033119982927913071467892676978273372144947243242026105060100086035150135728619639630945641706626065515233655714836780809762206601864790452849111841919155405242491815128156530238197034231660088858376432273223290919286326728506278690638339765240033402883242516025093065801624955352764347571964294013832867860595763510304539598948543757389879936650911142214465259388297724978872744237385731127800472247422201064315027100762910735500744057137569309417102021109086896871546993619754567701434081880064166688689690235098915432421907574256128614994189585484700691679309326565973626042592446708058417600272296186089810227782567104616488285492418667032773931061016536798981410734365643688412144284126164078468015406819373033573718923786813670679237652234043231724082670901608692865557597816428941392612242168456782647113677753974467280144564257436485467211748176959633395230471032743234721705315291017091494757464944434997607794046071785512204007076658617594794599501024316860548181665641328177064491882917169843280333705982984313156229083063476302954369916540765388088374751211700116394449249681205711000697815851301684196478407587203174769567810369277422848121445249640109298055340009441963371211545643159967981619332631819222083334511739923446369853651198694626627361263978963303926271348221168708286774209899594467633955324392755728756247583971706901877973390082756384217963850300883489382488426487562520456919666267936704230821808605327468465041118277083246051305769060968585288988317968306600709649131474736627681508470974917412375659571810743926886480930822544297365597453705634013468761861937208067667608783147729162537537915473729063213495475153398746836974761771167453245784985409713736670336247449115269464875226969540085831718124101754536292522071142068396095751837142682750071733523293663110508469071113915642232147759098782695224076923303638523392868881479959710012628759515311938261442659764240840548969692536297670022258912218890931380433502884388105895683108797926692454871779296599480153364908761888914623248677117536084149046608966961604714247795426809928402469707520184616839897812306008150780333693771926394073955920539957033883724750667765254069712306298690128472251239622550642028465477374000209054299797192683808141753864442088595668691066072454323157053620734230335497349780298679240373646681809650776249896774047835813930791237277390780768270293176833139448356068451000871067229843588641744628216264689234315463797636915358053476045066218160250317398017354197192839816611345963158125312984081064503980574334308397105326893590894321471690547060429326771133628408980656819653837547490297534480476355570393067600090288867602308903948905705357571926722132887875335203383926111538255617432810515694102827849108903974000400143003261916643874668186923564592635526842725305082352324706475926824178385837305851187798654373638476046408477132308421896675281299950984514785959592842591481178336824140846633692072838884953937724990611945260393980603805302542630201444719295397357118270590303471115740725595524714966767686142267820927540993774828956495403521601989290352533676089063595193537974671870283938915205755265679624727192513532576510420842740007020698286202289188064998264823971942847815838661091965587329507593007033951841453666214001244088205182398278935319570087226626041938175361505390300794711595929081322793595097198890299954739988044990162583778709415535272592317479832149978335535549623165235283600139411878009841697935865191499170797499920055301942853803131798532671375107730232950828818033896781226297162390731064586370087104296660469338541883991123046472650114933490325032678454035498270600647648280862456318256028483413218489681967579723821145214500491275180808846891297104213843015285103967277089375520746578323543967900121458182725734750678313331243726482458585316051342721784116415883201301594294678328967764002234868874651781513564968178690435827648729364879954192107585504961355152697061603384283057280569470396324701334504798046445266298763888386198131293950856684474739565513701753914674721800380891287781129474929458131189280928098280879769695584811836717163083894340371192053977280112232540594213725640810107242570348748340731909178876043642813210961953654897837643673180197765875351875543022483002833544133267479512724909113219856801672431594542270643607301480546798794722964194414160737600732280306301197450541120244744117425059077777993019199876525189298675665843965091760133852729108012842362436835397487155038930068787357980039737497189246815022549735444680205658602506459524360034976405371967165722311510450049129020339092746448926822815496627476827459671539842057197169236465234906466365097511674073136599440841438183092623399961015022537607205831046726351702366093217519297931749989599609734779087144121250699979595157895960017041244405573517457215102133522597795719711170123855272762261051633056798097956868515139777469631512679285919659851268947467488542568813619426500075290348176746228823287939562992601027083842928284493738851183569067211625750481930609678770146484639990154889359078363751985711330477249707189129336189185155315311238672829192077574240619980884300861924821131854721883471353091209839545746973234592612957469671160461994124229375981501073380472288481943586291330056341408880724071707736737331983976371926442697107022364617267870668336073604281415040731240188171088872613769986541605346488674595410409060935452425353041994395370776807257909451147121092472309011673164552151215439195143718642761928952231098204651793115376359753173280284194674497709608953330956860802252996082083148521591480135300651731213635170697728378277471569991317965598993349755151187788252584749929378737835495862966038145068816859650836661435335185065271763310207965977884236144246112219530188179091587982994070113658478268236086545279474005407809771726925929284398543845353837554152475288289779160050297323348699194983174484583497697941589774953999461222227321280435697031129582720362774216663859129541155331039495111322344585850681954455092374326918594577615150674888326567401566798372243387458370409762993785368046777018226302048729224406912792430154270688728223175140175257821087728061740099278013765922996530852946801740459913733481395863397489060830410517197515802892328777991243877124670752561327689124629457022987259263756518747407136169306957453740292435655461286810948353561156237337269896770583916388823564466420458450551017279630711083157170839747381199452611156902176211390390451171246924104506635147884402972758993167085290995396496066784325482952646328261588835936736514476440257447749608707888454019378848413673692094993173602774008467269709739513259322114888367184253479345862165809601846354274400159900072169995135093468130757123531851966187032995863704684540838901444413990824870339721514418840605588044802295746554937712080066206665369727670212922521902159495266883556320291270768098843034648576341086642612054267037230611113411792051692752487328210149739169967969102853334712972831784847828010075537449306844831520937827144228917368112570582152462930099323071744844032954006503127241839621347739973222572364277516059137593385016320936881931012966939665629908561182178652165083704939380174427830207777369755353051349483741741572914313428247080389239607923192770180637642179263363739657043068801079916121604370080437338426599462317865122052582077839002677252571284515255687154887300668484710108721452146859051419238555216993034403630153316941688956276800875403272017295825472670037610876759793347039504434603737624514287579516751689429325417357201653473052551676025562871213065444580808181946183288285129632266565157951855347563795003335811914598082081153004558816107300289112145085743637355671142091115707588290937611154579977537908652135589711423326562970781039389548673619191992123938650932335148266825835291594134144775403476838410892718971675565936608849638964147249731587081228833424974412850885235777262724468466403419198306254968188836277320104958903701586401999663094678491597638097875610493250006077238273184197362932227690470192366103889710654863326466822228268684650595970516623011330175603727868137945838001891698535428684408590979216723168459164985019855071487479350995854284275903563764506784472355837042728834046019780712571043995301998627219341052467323671408310696066613383518403478050678654210048727595681588069164431177394703009353186369562298286805837262029387383425601634834060579300045257088349784211088228227625335045884151226656404179167992192609525958851704983976607132915326359087754474884494475317540231008521159878162680281566943261444815984486299498581781616728272400871748608757216221822284038131137965758773351687256978466344764150135557706605605938236624469073511373978242495283226254609580539513249368064874529563712347655709913180808885165150422037106287984767471552871188398173298571942799829796703854460022985407508850613845576772551746787619344544601078849671226472707552967653979078808420710593969694435179352384794253827815213538760085967883138615076573815979321157188027742857247962840352435918470565161267208339034824466519280527272068752560622370722833879413072882814618936402614355248025530743101567478902090986772396740767329127405526468189928224061602790617700967835813881735991109872473877412717969628203054844432372893605627011272269554020292653376353877504964485340755714607389460638717785935895388391151202487807341189339297944095479946027853235774677947121068533349484019020575942662618122270508576122740015830405758532135744881796978689502680224877599686794874711500244290647666670675518659576354302927310039111966695191958427948948851070046945870465109575680142653739036108250685849665780996352839627463096617524364249851597452558034596558496388791385002048182482502197091666500542867088933862694090877756389462897993774613765982863965544323970202069599850491789895564627977155666068219356844399810763921312652085198270727792298095825701087224106746316283886130141637651413992622878383997090309633654224469146799003738027378893776663867235168811972950937168648804079216837394341162077880769254989710992712845073005939000115340610272954806188805493309182614588586202450277309492109825789017337144102250239777218747353141385984115506856372353313887760587766216890892408036692707927391595905235475850274480215208090132315421633514869851830009539883631053048185626967186534205448407251312949451484556318344004534635782664490244692743676840982709188367867151397526500816064750329662779934543700560184771980347736698328377380622651834352298339231633416397459734327951986787074461700931027035528721572882262197537965037405924159489970047954005392493776573732197872842021147774570802692541276263366565101981792385477245036778189130339003886387008808298634749986846249594852530726162857600387548190984316584577330479223762311182025786781046262308675899263192620390999340464009333019705459154726431857559488410513546552055277035815233075311192791302582246310568008136324365129840582035336911034192702142241753264920305638902326506764333205430684939093197225377631188260583221156211301203674390926413641771273794834147415119789900711622588469334106017118147014750961639883972072679658413260107518998660068546291692888426973715116844046341123364807119734964427167842991965424578492850685251886244206630039781733705471982683962438966417177613472638675307850928845833814711513668921436436442024576207101481888822617130591689097222605577971312514923261651980006892910830744291823816120692791494852338443621897283512524367234073586782491069547468576607625267730558876511543427410630782324811556707743477284498610679993070815392717734922033020749413048900726021497075684433100857747237963698492807877300082851032349335116606514798167099454008815574350926706387740616867761790609937988180958181269354151550520714745906138737910243459427904095787808956540975823485502005751448859459124959764494130010594687883594404490984511450415061692848060066149768448633040656130615353796662755625873726064195639740341688770115761271580047849120426105628690585038448948010588090991230902196756783766844159879638276343341033030425839770913959084223837790324046735111286367896023349451846977186324941076987334785078209769206602141692447319888350772543926046225455323240960091846786648857561132055830535769496780745045014111887070136353704333792947528633022539703064751627034258551243298230223739781266503312394930365221556427544656189211172469540101354205587729427060039919521103718933461285305371163703587689968410437002754288392391732612366536984163635612791986814095237205797712450822075622595888035622444002282678790008843091263436475187015979884643361407052716467100243638245016276735043261337980305971852705955301342857458801828664947299269648088497230858440859851436043277915641684692929624675350409961471762244702796002069408392327478627285178565334769258249233576460113795146544226461140134842940073601595797030452198328278351301567514429634511326535136974809806690539373567627091792715486030507933177036343099329179158199913239230395724419957248469073970722732130408318216965762357050418968003259094515766370341750722800897358157984102688002603301756114032002398419108955997462552663825022293416458607503599629898817465270587524591197825115667261414314191987376969763764252767823285418022940344534883650009287657349039376301557285305057480859860352204914439118860472202691573896180876834100910441219011649606348554244654751075765266303107048851586744391960110008521766895826250068719610104334309100847165875886986005223081813612121276396405330721418742675538923898376145710378765822708595853228030141629829656555173956174353117457800528190735169862496020447013254073380230919656473512773133195538299199030396106796227063852857791876976736221721583339824742180507603000842916975681761249229860108711509486701495048791485220929941882217481184672660336642884021893324011718321623402757903810449090733887882938828564151215340748738877305656433647925720467863525389113540591713002338710450318698372103858120877049299129816905415523015934878257458255256439878993112607793400589748631599848196476935112878861138629750692230329761809520767089419918268549709132502237247139953079085270954013919541999275762455520148176543061645111322197962482971594508803509985244297001904180737956486839519421877873561992708871970071985517815863040294429094540404267497485072706659300440492211797734449708546161259545725308498179794621765482886102981802477303869251946676216871431284964352377644709069566955337474244828729289745859251383819394181899439171484692287680892614059318834278019291708699669837079921599625330550490290002182673513728499663112106053581102931281334511021524972369261699220593715758170164244575143947029344694888086395299200634997522145474406591477094141124255675530242572352169042008522496257598474124490695575657015283618135415206872004880503448592237914999183050624109840234899735697783957159599846430647171772710557248981785603681271197774757369618661314529071444094358150602290089129165147070644201135326585469314138927051941116555831360762888762993867394420142047036279827245412121444256562675932840153539013578678226816953842586448792471944211794894530686341963984966060686265616169697892885521806890148022135638645871086181273148997023338105511010836948704639438948813205580880846124013194710521380838451082898479115121588164282109674714418398378847151061246845715017741031637515611134345483225533102753646474088918861916292892133419475800240647995924188422085209368618853689482468194588572921370997596356108092941476978791876526429259486561036287757913182875453880949921943920974291958448849296915052714841250197936965506686848120167304169088069799155532894614727961264245274460090134866586185576632977589568181241469443401629684352269119349372943775739327756672443016295811825202223559855236940479250628152578059659004325487487964263155103452493349442734348153482095970326418987117597619190930942769974040327182291535552073622417588430762165172180851615596535597551039845578031421490574183131454237927080044038422113421292759398653246739166969050944781282821308281381629538080722531475815162668741293453904868716262677620300930847289179531842548393445278067175423276633164562561649810895898476678786274081058400451646609229101501768361653627330481482773615619894468747585379457101803319529000422944491498116534599821031793213328668127575613876824996513751562658286416704527693911518904117318396824539831999160913790024640534170896763597666097428281783628234002348390957017122566199956858655427488750199536687418109058017471684470061112701731669661857109331366127156407657990836242137612055056033399592605054508279109939073271042315933170771835806931980979549408440988856318363712985469872940870592219905374269960792479269414749958883547857946710352131062850169963283711143038996086928131906151239139867450819906408869782528872630305242930384260974613110505945056486883954390239706494771237835819674500928224023741606649662571071719557756250091134314664949907716209511037268082906768990807895468205595443209456391958975081035209171730064194351381669398478536440657406196152186817150948937437599018076794254949130735359369909849119005513164502291234111024297432098187788255442603475742536378463291064060776863477526861314591056493726621126137178989508163278858787628713017473303816679699293587926586215827414376954128560982563369472580570056068530784905545313715091832088794027255990411361604551453880699660291676408028639879215249523526469475436365739796843270404403052002560358905087077609891103409287746671944283280055676014269266160863663707990869004899100110410077715712595529627915512578509111858501089061448202607500876466830572632252636697834904295106313009815146529995986379796091380108013069801057884639155158974596800746368855789711352242567307149563392537923408184766255165900350804958140021018757618716463830550906216829326203421311375593326430042350876726129316653805250444022950335446483808866718337344932980634691250881026423692834998859540557064735537823191892281733097567350434012020518097443912381287471644656513242208208666677037256861323488510987117362621189735247441233217100016442767161714803209525300856081980323075933421643542337036357888545251446710983524283106770461814682147988008885749007746301417076507513330711431098179464351028162786224072291909466343057490385652230970938131027201665045935429266064039981341921042582978343752331505116913901572385860807620524812189777478437909440197560340846661865255250514270067254643766305386812220237005218998947525851977540868927474340261160389605366897364714876314177160386317291562822872992358119999730279158184504776644866359511489172286171077497073632451332984462649982213223803318924750183698437937907026843244105773875673866572935132928614245556881025031456423842239687095616790690673341515396283524833915620497056479328398996012606421697567772889914673481993111097871520987523299868476012350013118696583996228315462090959172307762178833796921663244095980846219903903567778099229502462312351077693141367608209427338964317990553332055025650617133228239537537220463547463367732652042047320765268765270600317321639102248689150401375194867404500745514748375028502002852272548898965549431302555909719096272655846520062300105259016159701011860548104194119724425433888609659162308823599944740569275028769922554822965414754543869410166499548531190809875138902628571850640960751424584406985005877155954954203724579276024155298539282095451121676358534495745412667560614464148293242425374283719224369965762504586519326742613449359500794225207296400249691945950599203431206492288810993746781129136154609424749502430148533219409584073341919406853612137711770775381517039793219331588407867334823017325925924652261922479998460388525438173401616715939111863273446754232740029728591312924788017006314936611662442920771003221430207013097928720516778707404517150605902411347293879759451739675317315661431003855874582002162498402558643162065206202790285325781177932450563011880254975964547062879789597336686291789924341978502645368711025596581760233721976790232697584846477797290510138691719578355121462394509228854655526379145430295046871907221929387745682515035663130068460195728639050657084741222389914148650822808115981723126389557334268089646653798623598244075481749822934126616541113456214451076744182092245871428960234675970521290290045572133825718319499944642876995950887903424513287665541755793849256125294153613406650072216113758233864440634231146477000739969386439312203405267553488105711331794949388709547951813958135635208570397836955604058799487503255164869682574111935227303652687602248501652116671632906407495708971859998177245344586205605382805008736161395756668228610247986068650532974816033139213192389238596554127903435471744631449545007684673699391500065118663068107926835075976562139817024932744442928403744272526781325076554281799544560443652807840866862204305474078678726066062098482712736246034552818923154107685477422928788791322906158521343771783863251485921963378569982249186124027653306862147817281369556814203311902404132147657280877467571640798152088370453404773391756105274465224643999934099801448969723214144180111801907696651620936925865110290321863828646058739083679690036956551151947546634409623361490341576511084395306505414538180436117318188480960434249263469690859478715978331465609657685035163144024102528941574725280650384191284519398870168763963701348845600192688513263753189048002175739903623195071894886196524794712840011960120378374197137406016970889933210388646436994868217375197200981779519455549694593992978914913700538239537771461095930668247697775356791670405526345903833798345209116743363786527112524520809637065639481531617316555500473274036795752505354428769498887054700876570701371985687862015370581249407155401981254371149547911082303796401734717035359901021816681401322929717110944788085812399489138542818510247822144231252845895496100172744097996501063118512203505729505693129616737884275715255254509094265245744661176813309256606748274164929993051418287456748177604934691389812568032419728050421781042356708040521047739648873213465003322709412493479579725500852038355831739185089899947201456906754299941566335523737301050088984760513887421749318638160575734196879367351358432777099750155520197167182884451262089560441951159166143111862663389619463415452813509802381809270186176278470377947650621538664811870962201422013489342775466923082090499581613615744876805110550199990689014633033463130885403794361919253343133248807013184043982763055930486602545277707026233407234786276951662883875541176591297048154981864246016505162078932860047896645625186437986201696725238071220132982651494186071393068500435097712570607395147966438586885679219611727668842263187345566256871205001748943308574494415313844784429438628343885560505454597292276469789089299382876496607993657022950357637696106045848108628945984097106836850970278327473645812164684175318173005281714631567860664609455233179369520714732107340173042704512616244147739325009095577420412323603186224692400498806879483111571338724995386896018455066058975910702992390677663501366543044095046849374534054661326656258826109362067101068155948834256353159528204921236782102425653634918223128078641711159035189005625344125191012148803819514362866621873044305213161184731296175857591630954683322005672784450916720803067486156548205856174680858630545604206762870570975861167691441197382426197697712346009592957509753263051387111469238769898575909689190503043719257058254386681280486892982495821314987063977161023240306139826807254502749359858755032517183792497214684622244395765878572853582767799354260480175312296028449830433208065072065931399971858709311618879325512035812513224799226732384842273923054736578849406510648895933078274738282270840691860815539780685255216617303691371153201089422113979832561552662691829519475165630881659954074584660973771965140393805435146532745027507759161971863611358899810891629367417307018397513660658239857969641456320277821244571541161658563946150710492487310978646173233677227681229832272309863577106386866389549293126754214719132777952629125142131018710424939350644735913082658724586425117070614126629744726622276789629347655401626171690224283928571711847463807127749972072160350394690328358241712789877841090752402245365055209193773758976838100467625398250690011258214067322130994188420079292224295863602914285690412081951587588237182642361175390568702104504944417082612294332411189034932141539691863926611290481663763838185513791062703065391119294603908192587192213026846544742625327541243283974191703457909915355073555574502429976356196537157256472107145739186458602284388019236161656140089643033274046682902909184295585553736552717029047677528980953674180173945027552445663564522993886723269634357334171651151193936698387267879110662542300785294195391101203410121589479012253529283287743861756643349005200493228244286849581457254453820497382195283403403745037831822251579354737560458356086573559812207686522036196510745375762358912371346858548432734206711200243450283067204344118470500204501476596184831666198827572668114457987189901764136442517190512010892318439681811088686707874932076003185133078097344139048285084598230920794213934350176536400332057129782447598409697745717171450258591477583144067771938349781400765187361279411424111809802272163825265745018188588201530670195948318774459988057548257585225353641835744487362249256817420281677139068295075131701210030152151210518866088329532565975320803177824904618296245560068869758210875609602908013129431677310195911904338029027101511472951645854720319117746972128268993403471232420784461948803222241106848322005444906266168950798416644288592553541054907319489141918229800073970918954274244702113385522694677165954715967059757779706421704398165742756981659124677487973562416872459255514942461087831290072711257498391432074948090104119517004171953319363544523685141071330462440725360371760494192245528586897306204157579961612231379074619997715228066835094319960597219537682201888007025556510760845013995025307276249959711327086058507856543817444132332520750739461105821951458571500730024942173526928968614663074246349396107463587546737689514163887160033466847950504581092120502065309336394275315658447789846813649836217024154888263874413874318245514357303514354259125793916803482345428405575177601193498390055186741850840065679411504532385548799064119077545733523585367032454359301870866812505911526155134509212790818391833764301477212207085616298924467632251535879120817581134336469785977387363542459665176730638583243554450656072079123141468134317616551049559379187390831942796523485703933349323068662281712076857061141316937437539939031629426680991092869560299566735113963627934102853647404265181520455256470241498294570002372635833185835967831872836587130912708730948518076047239177547844538545721931546006727411545367984910456012476326723888001319440755308329449468536966849593328039979930901095307901522734281727509940091286336612230202801221521382764041404646618533241365050652385736719856421510943280644949053879871568117698384538065417650921367689740862131107356796334513400774437031010967306364119532892027296057710089663976516675499343290120200073412313851940212253555151270806313552436073086743077755001408433450325922660336692692492617333603536682083961780317670971240670219970115662087317175094955488040896785591213088920150648136786628579712515509604424370880510197474154623272937394034889650761085611332664091303212455421187397064411265973326628671659228900445423393332204580363387127173016271886682019267464722248977413290542412972996532691966718537242140681874495669190551497119358840982274403909725868595087984161268249037533482180714216897304554170125045842527084005499997067546671690367878357129235266095532593750714007797806459830132404796187574865163669833600817156938240619835643000685225812099397416729306429486760157231427929491124304232535236790050337554771652404663783550345807613037557809997306139119758703703309633290775308684423560638782942874441315308025516501984882287210034127171196189675009282867119253120184351327334604997114058355493512354305948452097443399102059771533488265463692240047803156416972641223166233869198217814319725025388943845183565190391776079749171215085568658305694255532771274006394412454897441337859222489734982820238869297149372896800185575979119248185820382336419163867219236882643547989150828998376012121319033103123529819146757687427015899649251209999047983458686232830612236218326372956948887948898805169259935596058363526419495719960682629074808224480945661762200763306097913510172933963685672734807161392902890629578228546290693557137648016838546827289990229705568846695841074514873366778692446115668067291026277415420881346506307652510071465552016505425764393359876372802104412338710345938122994036368610455352249056212743678623316344821550283880380865454883258195157288324530770417715864104903189324691934814121333002229883662236394502990847680809462337828849562254751437809482279633625021655929750279801420241696525596766464285487876335690815309416858846349205784119178135478686941490463762647468724998650631824858944889592911167006311565823113323693389077280998370681164048332463768064412770552913260303965812999573768761535529184931536331723646727066904695109481633258342017150681636998466405175419520021887920763637384496638585028394195142086125540754664624684359701154864079227984753277212141850468367412369757992092992529369396570454886657345527118710486504640281170152351653358626115384758841930485032014438408007128857146922843724630105525290029034105977941965663720947618914928599403473935780506031689040974427984862055194495976260189005306000231394206541726426993274319589775358501007127742045333292906916879333891126152344689554780259460032747692945883425717162955677969975201590148194730949055079808460144793671079994575294078691910733724884488042703315019880915061721665391206885264095796330511930855087598445549959648438161446936268861250041383507279913838541567004645116126952139876974961419534279419182994803208473740714426501582747097023635250070617655602370942331941829683697906924244532564469105993977861525048838451317656279064589246156140755549055734930360855399105665607592658474751228792473800825994289244332589609514067835783131380846573227567758820117688673876387755361184597404862191013644898272753252580062203013741191820140650184889789259265798950906796484291597935952101648092792306318914323395742416582467363614492813090982936816655287890846755714158536211553177944984204019972067345812116016655416254044942807240602013421007893654716332293810272030615242993946399245887496886154391659394181509097434550357010342391924011650575233009807737582243332733463181762847062304557385967128383136971563666039701676149428914687591609568832435758135170440306321720135918469780833262350284237651939339617819349033171103861105001987100404900939830361584751218590373506221107988153021776129302025233218569779196584288415143392005302223791376629592254276941470938972634664319458680069593274799821306523878655323363845528295696466793704548818114511154822953177349195173286051490195057068062818008332233381717249706709075270515468060264274853463973982858036908383924159327734953108004096398190468363932368563505217337534024722455151071074789579049082940947482338139591753442100583790732024218859700806444778311239030467289408082579270294367140274987864393769560777357819024435991137042091188126585389085585540079575294672021070224546275583436875016511304599760020264311589364616245748285639541361259713404380032141366735386621408934423806622848594021893558019213951779691260194710777811331940391023521752027756990957967859821814738074905196241753576740384927582193686774027445500872407516277568124599393275600813183012838230794432759262013538756419846242491982554319519636394497812424260640329505109705835138361383550769668368493754011843427708382582072010051606217756640414031720383763018632385797854091720064936835944283753228949092371665573241742618347306861548042643533750870029545363547640573079218502184834666042140147649958571656067782251048599233036038524952203954760088086196546912819393755870314455184701528735927850616612385638776735077138766156146503156632477065833731534760056413315356295395829221246582410606453489292341512113363913025078317413870571106632925753228450766667536738199731800243518925418895715743501083532912515135465056384834442189719417710996114309036800376656131633004850707116172962598991042015077813837232934641174425922386411634938627786239779608139783792302634003448310871034595171962945559661047540634033842356401912043635100715990442864889922681351667705723634646527574057833784090127261718516982038522159399119545750097833082548135036206948936224466962715122380095297203005035730154145686225565505464190995151530604877023039486325695384121676677466462421014668083635225619773926822701526213209691738274965733914305590840613966567085078652181442575534975704332394418309701802016897204869867268378912866462728065037331503307472117525943015262736678055217635636601349028632268730506562032204699901246264844508687327421559320557027484631454386327749829235491623707663224395261688247236603355286318505278369837711948239420847438156402651276345003725486285743923453812193264248657458722553966051424359039023754307223650636006945860682027317926321133677708336950685981107571384019837312579021394659011250345671532844641766170638582936968756008764897408208939978748037952099038786341248831874488273889815246656505957947624425487404522930216719670474886723598041304631571601781635786214371804702038320949684553539977261460559682309231343158002272952420517765209620725222579041999880228993791422382878706588243398441193438125286137960992854156138929517857563560920168754799251606389181921666442200768838242985929109189340711125891469199308352083416139886888393337196956902397702680560098848079108835560421378125799271083596983710373601814225122549457646112449274595246133195972132753823940916563495860703072304281135522064551820834471460114751076158719559258539925267403080644124060533777495266294546839977957314212044957219902019376896578741986390420257744273941185854612506812646663566562088963784968986330247094670724324204466613998853743930726136589583614938944947813714868391310506557864034199976546138105533537136193868171493106445732901534189955461731659882174268438467022528390986486830373493546699845476501861389821696853228907611326901379643414525203484240799466245073542244891566012939424254929094660473449347127803387245360315880968166985152717172637932347731936765880611792207935768901983333575690865046228187127208422028612798889367699527835797672684810206813256153228933232017288706472848675970319472073884499257920474835507059659377478521000661110731850429692023254149483797331214737855786154269690969365077796503657129902974782583707791541859926165828295569032351152114336491433867569442863074259481959888169996868748391450024544423148310290811057203969844388955597840148976089801942174040980235772104420566972364464107048771451715823076764506821699303757503032627130974513977914632306640340566195737934361886026678156052585092014876806193146100037074023985368014315740056469399848978772791219662501443130329039039686041238830194115983170846385594561905037735930249027800472232121901594687113094585490080353062155134117154516434460928892168961343089206499121452570619586320025437952891922074308580171221630537195173917472397940241588489716629639130469005219928380531741168360708511379397680879858316163215172047721535815657316785640350778217087842758556811302731545362518552974669522261742435686172862334878414569603177725843308707645735138727718507551768371058920951364651202100999750751296091941587249721260935490541042550136824133426733115690632326906145404341304323949690928183098058052992159203304848689570290575838660740689463935855953199439695787656253390174517454135641642320410241896656506900191030560524050048762194381479725800893067148520729972459553190726772594187199311572520584924285852561222667196805572373247856819443812486582064236796135396655054629381022058980460144422544099367582759553070185136472615745747628901282907189068493195826940413641733833371110665965868026638532701887340102694025098333160252695713683820194006645300248046288846394425608440458592416437797304431684914421062577534868953105394119063871855899440877015304080463163257578575140953579457599467903863066236726437073106942669036999294985756757093017777033276004078563289912815303139990310144576739745647316118329202145006718127102908608855548157914034905482599514729175549347719038836783748652682452409941248574954239969458383410826589320598625081882315487290165005165847945969108346014385041321591997476825129581380475857108368642368222240119519158708226205227015330517938775413763572028548549319082316489459954393526039670610496119293574891586756831727042109550857118986743020738720573940435465972422494312304904107770843683008889242401565316927394057138591836773711070225134727918013289810799272811198954675819258104413268003498931832633716434456584884775448365999215929824213059601874107525268042548040253991385529211178848846942838847993600422876652467516895655428492084486980544189054002932861244275514630143781562184469920463328237650200479042709654749098338272257651915471124464729138494569288674434474265162445814929523676476846272194607395084788501715734579635458499348192036006430576346086458237170509750340939308895719002389894631636567615307152168021128105389626077500182779308867912275800260738370785968610540397650724789515613333448385962482558647288760536898261810153102775175485315378337243499046777799213449682168318080742436844139655609521258969932438030824550495672131069034947809743667354544688813813025955087612897367234910177337175633284491923334178798382774544464145162152038294187710540372171049812173568612892796720256737375938170818418408157434455111803132729310482065428359945721847811964031614020367559349664256056773573855593358907668121959139860650172409605775970050305292027618777675963818037029216855957379336750670202220213914121176288713707378995436596923522548877882504528007226880103301332821925004641487462327027106117422700026434116672233237137240256294493708891602953137064053611544736250257783274492138603217140819306710450533191743697618659535643169404646390120927428416071525112213734619770079572953606575514668577966954076485501106285121326068053541334402553754598693810267566282191727442226245847045743174256581020195042109689384207876478114632157742235645206858502951759111791976769407957096718152112574176634632949040737935413886225341406125225052966762345322194186172251810095598097724704032556549482423544564748816012741431341105510278692468052004816600635081984038476935165908055499113978009780650286900270498497984813575835167542727470767027363509913440309220968375519089129188720660633032978009204662804099934361374332627531292748703039021799467664147958063022484545761505352389744204854001022294706271587292019634135946053799369726252638742993646008355709759148254430331301412603031426845705497775866082947058215044346358267340883036588736975030793741165352633654933427118431055998673947192094437030512279052553246723850736706404032705935733185854732842399887706799318260300001875896412070947359001061419599404158745038555110742061705887595159925288036210254109254490292967384704257012773122630118685945511938997515105569676669916661713594730270384943900518562021999595497739050838981001108027417209774533094609945619658576341745357006626623747101466352062438906561788665291776809948656913625662482660038314577301151073978855405160244506325259035803339386220804744692845152525514025530824988300817664725130532590905604865652672101409272631498908464886251949416231422858553844633152003592150140566614220980926378404242431859481628099790952059422102028834368298791332437831808363259336982123457517996550080043054659857625978097897196883762832375138632756708520610352171381467141388115245883956002675544856521176568212347307685996105912652844670950569061438729596670033676689161682275381235582332097867773896687628887738499172378704153234135719968235522030595536047851450526189557287533195428784626874505522750827554766180490318097163245699303418519248123600711408698588283568410031206118010529526920857390846939239210340660858740254470713324230708366427404537135843459607919961976937932167053465963410460222381097382132091064956737027658435518239619498490107581136231760544650603785802074232270756160565109201715868397391537487530867271054414483653289395417072852928232587663853712706061951377144792271193545570503112160675792473065224799279021013990641630587808456572790565020468953713338603035790116200072570374171787887289305413315620356919949098772958582553538992814626986734174509297984329990976384669972817760211630006401658063879469009202581211366865757328178916807027625873309977056192515374428537655816731096432565886597953727247105756115128779938519273345629155617587242147276640458090218327274647367190407396085752984120940194076670969975134075220823109639993939262986643253406993979086225850858550898390607440230262547465440645457919469294476731141813975913001915707007101101672132674869396749202205137285392516177302808900996244545883572362426593260937997151653834428019388483744520529059459835239453328196616945859977538051119582219303491281419176047329634139865616395894198659088661596646520558785324667289447437929708681550479693399702871651024331096000583618804046473833787659152727123644153202013524266496334477583384551356970294588268433977245853115507675516766184318629781409981097957033364323094702709097024428422003530665423453553595374905285660557182529743759035821788707995006801385966213930914725391906236228791570975997795432174439761244935699867405777721348577624184360210757955829880560247933195481517547990587764874167353021458252333858098795453988615040789736621732771387508192146217024520978700086451136120561664877654640930386271873704510320716026531613287952957024069986086254279921222426610564519509582015133383543250045730798723826989146734556988534111397763507623997403907207063985004532619667705255674378602514502840696517574587766931385125022539005161606429322639213793221260929524645352508858742668483472897754426959144108394547403620803772787199862191506202062087049760348870984203917749103933908675133798982505812407877366027981143670645554868973825086933990677877820313457907815292872007968918847342390697327196282521487341370283127412167744469917349562179488699633054868523337477026957770937996231323375458471262443238632006805671139662568851163468016343200147055256354059390962248951449204707365467355547698666127268701248554549563595131728601068866557449237031885982411532130498764888179969850691026371035542238130522906102481738409663915541017629357996395388399061335327653794708183838630444364276525872756608100806283038796491945848316866901481533292389094001269264389684488245109606537502209287013254174698143194901360189100015546336756817450237319376919173834351429739152490532935935331942437154451352090702029148762407084675796259907690367534844915027188772667027499154389000931945801568098021478482208600163934883741382391579430850880557106269903423375203458073377196792249791462609939074169406866370228719717909044220949659918901005034887668689114204817435785821904987328976392093359244593203759694596167230591700850123325762261388207689435117031128862865573409133344881745989777432225853177776379283331565653992401337287691108751176504616998520489553841229677876579099441409744689352205314540671732137468546607173522489045357181888361574955783238482965568367174000282075710872243394017373267597657645163916885820380747792193146933944554526522480467959388982456718068457235115188356036871767237915415017923529587796413759833598146415448927354240683603009262403550528853019764948688253449889462616812576978063837677592982481014807119808889991970547608687617356299202512406168589095745246679936505035362353442459353188818443086303651086413243632143171272908055864628144869528877807376697780007684326164042796977589112733307266408765247462796663288405708859779050676543448421664927537397380473566896063463774668479382372259542549733260966622803362884360937863023829902927054974591879068232426651625832148136520227740504307949551258564953675210549147262932151404890205295676993525802352557716721906596755206302357642122549086371145320233659301493693411608590199359340923912000364401393725398157386137314468108291524633138422518201141389019656282482751982824730959670103996794233194007552800928793103648195953709381919396052899186356582290163515578971034498347139658128804423636395659367751539697738729807167582091072197837297290950843666431794597521336826179931945775629544824301215687398952343112481768591280827832833303753735015728199002205175471433925291852645220337401265903939106113513465875639948699629645313435161365335391664925249295468674870122862334882366918187527041326157466403842301888907460101007911185425239700845033566362668425996988911793342174338151894935250846732798396829278514819074013286592949363820380219803368748946192932320142506341980543925338360378145448424018337935322557827476610907641253269039978405360718407566744374580878590333052527441026686810271116932974598637952937431231010755012606982263952763978065926855578765772562319877256343266796248186389486703431979271099530882086664392414357948902401357257940947187089078836141183027705358093709317112141740843065412569207357383331746693221122696494491935681141410555940139131335771906542469913571229246724337090255154700441650042790249634014014937388171122534169945741858291454654752601874079640889652226672385692148992987232848227408758065491516144047351949007797688419914276463100566019459253813909031424487384658363857839914410788088383295801120262187637267096307215914808959146204625295327367748650932119821495157834550765614825948805865375529112419805415736419102932935376416355662323976660077808000968777225795001145458299812140675956918043862527135678883090574298567982665448787732318700139379846196635722418271176984680183361836324200439837844617303633491144595075422520417420230093191573801917269049223225558032105385315700329609757900545699178752963973270164507673921234767045913277501154335937429725029142359551843213042535635738132380784727741787553997158988186369412905053797362877077623513288411762114396234212281091616674137776494906025584909091028497822287488105674635181734707434424673697796534656083346166183547416638938406324596781553192754764289366894996769006750250028415816557849099679163909217511064906818560230369780868254532335684150872939894462553581445838172689006368485409591791411820046519481378832405306883318316927318808239193414781380107853664735387685608360074639309302763518278929816646304998677287374999929807721206859923987804460948287391427687426040139523955113929985173768677344813317793604641856711257178994976097086270890317100883488110713455184145021013750550498237168479648374519654419866540705408472120713889103278154426354505072183257003695485526433068545373996467678094907617404413605682125907983316542188682748081894646882424626509923313349920843999821961711004314028339785543678110318755705281131992970957385190803086296268831999955612786222210872372715263865185420784742412317009157099934195364064885325912466544604360428076088791507427834585652903238126713402628158374112141695764862352148638291369360222315413341544195137564704373929641130804163553468221374854683055191188011573191763757985552605719581290421222813702675571196051393501007985962460964511242350140666535510542615028173143359812067774606411214788822350951027413618348448981068893753453539924956877890713811463607667236879996566464921421170258609256982703586321319975850511102527665079594258017412626963065974698480781333215505280608894444638304990007339897728901879041321391591888017707838036857105780244766049771842768623284487104365078245378272729992886866693382316432407202397033522163047629001229999875560196884725522596879671091947765014551131536231257810387940932386984848249536217662714180829223153642564524795318588702606174919511818571352987778745576660544216647545759012652517828771541706414285650973191208021061021364332781387760364943134778982356079862039759958509245306523382858705416594534742433270387189937481929354770015393326865526581143109733316697290463148249369335180423454357320378343033368197229446139333139630678464838116735736209128182452559061607383760322401661952962763958044583284915789772843465045040206470149489227943167462289996604186672520566431165186182457840214685343536233865141098688987509010283310451479863017335064661543941765236120913726926418737619871263906547298131560931269941575508845117872864738695573512660181555458144498877636987180343639204145516661944389337637263605898212772590703291706285409642638262554093343965485774475777096143704881651968212321309911539718016561446127050669961720875957720152697827595874905702760853420743718999259319957607067848988894701259612735234404010698154587140125899497769726100905836553257590773008481701240141433488018043133700994428046394964456153937781479197290803762709554450478907378748358002356526120336174943497446953628332019746716357143061276610320385604535052675077832953559757337182447530253911954448662576932066880278750986854575258614281862826504494911970569902755154262492151994302535195016050670994001179654305864041831071541874596483951141493198242517866348999786194845380202681437129803070803502601405029882111192899503484432189945684086886954419608352136406793349945183578269014763366572242263219681629669972184068941313090444992526673979755129023371582902003736511873342627828694514867540647923906263777203759538026067747088466213023182239188512748480667304599821558244139692535135175392815987865032534517652189537279241419558992738854037178591553946975128654700177057658401508695460200141561936192436924168571541629858984064516680155512940552709395515259062880865462780174656725093035525363226684539038535274128796939594339665144284103353703764444227434024351121234800588981919437434685737831319873710755870714165409312497686389070675565967571818500745043697470501380945658575465430848562429896046786276881204384752449252767084846796771718117529046524000341678987783765377907304387465282592193337654408887152551362311871874226159760891426605759574703045254883655551819266967472406668806097443281160039613337400590010685015349129108559626678518162169705807725242319842309289952060742655564674667247856518825750386690908622103279470513229825152637167731202234845002601272266535822492297980939273628352451187422953417628196095523307516324850524727092082751834445150889944440512756294069953909435906888385631898501504445476619289990079061000885923073875409205778008224218071343531363704909648722600822402217704858826852473410251220409744117474651433227268116542711457982096223585789006416976222254321062463178829484051406502329832457295108132395791352928171453756903240376313129279001448138568363916551935568111982224055626787955650191566814088643013401464766813914786722445176504617568350590728125921819876261977410719584446123789802941050927992712456378196694144113809954686135358295895153807557293279379079827671784687168473544628835521662846094271944716756143942237384922819515739540402442493092562271779544393791693514704710368536716320308043078095660911748372116203254392996910806103146101399895405889574707166564211158806473766492812296776070940801039270779438787065310476885797272704030201040777775762761773429992805183886560205323828615474121848706887446535963496404242957851271556190120075080607696560233635123088815671355418046560583180421385532348351846311794318369240326496320998233896831658761675639059489690557387828840904497246948395119808547752997587108471148139648111603740071701211309016541489230331371439261956678308216728188295392820279086952852302032311463889604269066146048231590992272594262911225613455932890535559835632868532036953799416003558570263155883586986511520806235931350806182407842645362296101078441250968440312482235344612523440108699741069728023099396294754541524906246834882875521502571908329349165708075307164891574126325365131469615750476828773315376910181880074650049938919591229322697689439483780967828830314523362473521416803776515534668979580962251748482064578181017739109097191948552102328619405296278794694491751575090058447300554664241426322551542348426805092181448758329106519714985241966102115657103129624159819427227324778699572472796217169075999352130036318593923966433720331617291063760938561710735004884603672511901728291383249888775507798840046148276810951528056065380956743726059091440297197767912747270271543064667869972958527377169604692117044840336160429718762528430337754116560956278467319129145632661185301064399997299873157356170457916839297650594201769006662269950736218112956722855621951698039059004916156614168843592961798342641553350649866387951539510975546211941596622878408539660706416290190740972938910120058547351928737120858270182294802019653737618105377323614227653600220721663446670811606649114884571605393355868446569321905911458166170262829670723293241831481676852451024835399286234210554876297931143093134323047952508598336329946860489366413922318598569386345957802284615566966298765386462520653614976326010855898303149742587650943992539840875936008758902223525479724101110334778902982291496728601124140702418900532666905118790760821675262873649602675443736342909911459820043986294228237726409922081683999081053950557209897308678454639502884030922095181521087314968714854687790851393913124794648210609427747834353928687347304024313525050644781368772579406197563365593833073471368481294521205309631410120276712484705025927483059221621696775893553094439156140463369138339774020246988740876755088494851009911115626553116817154120530838192788113123078133072399579146771897354238143771548560469614958992416078566188214097131071851545882946529583102612032180163952255372958029496164640979717011411177304994136139179758721871227696336921296844062552096246600202348209837536855338656940630872506626435617784366282459289142249515707373950483009813909169464978651243454744556501052017737605691822740673011768956394443205008294940311657442178322182073507514487786242063863246557882382731266427040735734546674807065202357775811420054829503057216928973731558145481761938174707587148077633526230277856580607688702213128056192931642809908318653374059342047463773339249742658846362035362107458133551462364275686409698640568390412618666920658864572189298849765015976348346090960610974367709090585075007460276437323690336182243958368167683899837438069069164133194496225647241706614892740971089045445525490919615582549809654590714771029632548967635640927429218497947206183777943977590828672120248573004559240487030531314903261510885950609677138493619528494793936093032104482414246568498721820910196798711968638601899769275012848337041512886375957397848063345260815622671019580833950757956987761643986161876915937532246363459215221563703714398399673398382145570980343342011813100904797900689586966037200371300442049788034524688775934583508290738231834930534844691549654619749648199189563998646770749603359634381093466954936535199084418558938281609783306144934816282359436304430109660143958767981867397485507161892030089171281597657408923703500680061606781338681338179278780030323507469890855204538355801789938976426507870522351221385740058195902514477831233690387557753736862045827519924087485697911089479989650922345299615275997279296427607782856319220547191423468215553299305961136830990414149861631208386966870715883809746919993229605942262721695565129137867789814876136117954424429689970739653993686384298725923684046413701865980167753309523962448577085683907705544343211647611672467624946941021380281945999353975415919324641117026462735217762049980684944226390576181537777791327141332558577229626900161945121708874416104527000831063875455886793436400963238327631292795175170252745649467538430241431937276496170986223664718841285962876510148893611587674442586297550974395837120285975151777864430407474052835544570352640574679761469237355962315519520089260396752492523102398305500974755165097842806012448859594387852758891627862622610800708464501070787074943163562986944617747854243031917840112596997473263597913421012656033659504879979162235563900465256360024474777230029356512458785048066540480774445775380001243875581129277453802510498519017634002996883488572261907980951048808290900965187893801490894876831365280109682649678428779066776878508956734697165008722567658757537479238040225561254180339321184044082481152641307428417973687801570414405513800701969141472466688730860519456003127312039564388076473882877775342917409673526460396986059073158727758287621631047133063588326623545876580120538012755169105718319170138106465878787878824592668929436137048728327218903150486321799531507209438379927229883857197277682457311930024433879899973986362573101720671139288158367096413545856117651942033015478037853140074905682917051064073940350879521297221615742961127040891340487277415635297235180155801424659527263456616601023194596194982839639168605269357152383532137186408452016481724366228561271616087806738125010825296992465768570021911558459930017544524379634623223668852598704019568846734961906602337823255011327022996590618548935317587460726061762961754291587675884933842468600196637728766031178956396220531600366820199550867588775306049618924361449672669493899664405762431725274013286274066421115957061720840116280885494278603813449744735138760106784908819629671905970134079907044520257236308331515615464221483540673443673189188419653154053064230488765874441633258615808081274855448753666685941921063600847255456583408478690385459958508194360896295231714457932645892694143523736937167178912494535070679333816890238651761024430552845305954896258498810720229719324165874555254684597415306765244992346625888129676537044947449739465858207778521074143414182969223999812895892619773985075247273323984260386693232137065825851259220449618768530542116059758320479535085313541708495638654223311154632310047806754909520967985638344115576729768906323311240760219482929927079271386696597129672047668973818834280765732385523003578877439847888482025766064134186506566594169623033088020498867839409716632255758854718467228307658429007448576238768422205905688464151173517498008963252877463047994956846921425374790917135736865891425625455846470297839575103498833253736287637610732363838765841379397822885719157968457249996722342757283751439605510991664981792991407343710400115191631918483484245353599411897336173783230312999512963079310567947738516335206621600389755606127913018002053490188345932691837279426097478456868518304397135349203737521667221957624298545185678781201361380722057610939971384633732154425112487108536204140072269212647722433961738235392057696027298540761313984027171011842977563187387655417283698211920861464337180854516171328597068712325979489107424769790630418029674717645440209401229330496779949519923061719052518308742667826126744091432094420262050143822498511990331266448462982564034405886043613558019037765563593858391286745221867723653631096484637968539483931415487630887144883386386612502843149996833464939763855832201011375374957796996805456244416745040654163930606786055437017499158688155883593852057407077405542756184929657646271776881148663575575718362648224861170401422903755744650953346602247812715254451700375420588921882857719938172322030114322028212965796025084029309919949463843471780151090510463878159304503698288779509002327071753115818443076152758591026166096478351016376658679235795485862072230331174040110238643981021136280567365296199065799919562112154964209290979922369742690427839956120373855891800458127525381000720255439688876033460706417086544569395734404409644052337346211183659682869714674237897005784625366916465018338480529834490166749145137743201929577938572212180662147293618933732779716836645397476411386243163182353978675686347277334552805613427887931270834564843793426053841854395296966159038888130298288965749783689671951687705581801577926516352030231438282104156452894687879435228581975589824451439026009529274565524849780926107111474736018130663232188655730290187006917565830363570432092588826266176807841355056625377946820976514685268690382772263144091701324845062521357523801848579041276738469855304921135907134007881231912539892979305231791243231152187413183762331188700458247600973284483446602140274551015504179665692582017734338201488663652179395423999157198384463621184741733727176800784817819789125330682512332792788711392288486527069146214788506021835234803963807690089919838541064906581298341205394879938559819979125245718257822704731428314926205764534611336683458080954795255079553601436620919406023422474493246559100286197724223910348824557418683394369905154279795308166084619744180052955271015641665366262055339658695457297753784695811211948660278084664960402717131287689014605809492893334272671740016414475898667424497920884265556354577879264376355417510933149051395088885776951352529030854243751990621443303703623489559683906044799314955509259198341839576207915680428497957736885336154766780745390294626821227242891704472790313711906395852018530135926469306265643764621796664673684418660773901996308353420263672685768868119057575986462485541395763952667266094074301097438751787768189650518242242922392820105476904227796921615487219192359608750678068935922626023954445073227513100452504764889018904102452788963527488117952873747638445284690267286549772830107727830652779582653199835959386990758930648778229606099772566632054013041637318657224990753119581021384685470819079661491252489953613248410281659367332037169842718566385076734050509355496535133968024502051769807101934740930970320002540680082625434159084019636884083201810676265930865773691587819731519878276358714980712618055374343845388918636282236702434177076206839220373507430830966052435119248602517216539839267277466325866447554149143691989951680114693167811457482069606973108933434101342089675905294310299867256107951007719672825471771756503075772555251838227921601767209141211027613921840402112211743564926376430666505960760671781585748220856129526073047612528295507208300890709993450381694176045011690541669371870998108390335826634120723774113365246673490591857154266705351976588187601648826741843353618681283682301672873611451814082541295999950296911518348718199488166146723789546303178930580794419574480208070304784839935781505766428192450198295829309704484665847346445132887451043061939167899218830353470698368364743552377878484742661095617150673721883758098870996842043989142737398417384082060798970544743785109940779157346543990812207889812146617447333573515672573834325577929030092060504945068807227171386254802428590903392900805809763623145467006981412245134104660044362153640043763789637709575946353546106680722771939823842363230949064396882305320713325935530415200124316219302549466483776698221080222615245962204993666069138843629697687551681759996802186473602892916972978696122530098684868859750606386490428367744050297962077640118412830689989945460710615581763299254409534359964430288777609934784795787647942892899091050988605190794571462223327987622425479364116825247167521503736691646729598295439139594382943264831606193676659491865329358492062564883487162996954981783862706790087685242327957651638643400858033015983354630312315743017888901504777427835283590304076155734513426844716114715904725004260045829577367560254361163112939235930454965753345511490643169369389194469469780980887720845273298105739286393681029298454057381713502525512410655019905947744746974375535052576576975355022113047358569483774641516904554451969589969464704617140811189417978511769218630914815488486980657103708081834302188721500267701218835805596824313301933377856216444050125754226340331403761400760902242407109220701232931503036245715122956899287715697558570335738849167510275493939541730815102435849916761242230762115341199433057157585463644959355108566325205287200235144239213765520632714756397386635106670268913896671930551240609051659029808174480604187494188481795288098451067367370026279227603752569371430514431298496342674043427247630466616287278666125158508546251166978105104070844287147246173891880898067978687209607197566247282094624017847342824798675207054910664610670339880992641667034102877645089519025180231748963869391812165700531240574323327817471527024398719679429058628967666803907111846756970130140465031796089517763399137656849128247415032782061934343916352797224398582133510233396421469572657133956249636736461768822798013402015378615473306651829414693511263301200474849046329740470932364056209581970028141342219185903274830663465007288080540679155260493436053377939641593707917050278504534313559831778364318527453392015594663475879621802477760351185835828567809997275884595292771969830692824857593338013070617656862532723502568189065587766172096954363915010482840423431523044016914600802743136588923573391444770015460667947579111088969525581887851900068688587753769610271805034878986543938395808178941357633795907927019276831324677769375237837992482938756090851017354899639355070234911176926346448107079439928399093883897006869813528089208906784110899979695821032494224491739151436607335827679780480294523064776202101424472475142831573244588091670623860992387852635433971365896224649009091173857661694292052379558801940636395771346910299631793771440209169972922714230470457116479489237920719354402199625653689292237134724251838491891247731289286150786854657953119027493879702834595438257361302629759780826369884709586884526391834554863487832765835933969839713772933769020094727313431193796165215509657762715477867066082695139928116217134058188841438193312130086068285341962748170200737182294252202433293604016448130620789405958486551986506203455728884401737612583373694769025482026461534174248243136669199433422638653795182720161495891907822433332773486094656257825068636379534341894875301956255857693382868157834190776480721811619917099579196394105962288706978955101339243805676999054271415466381729775359641523064844634047297786310493983806310745026180497181736394887966359967499788534258265910925042290542603626424242357395046719606019164019451226166838967520854609793321962130338045653828813362054979548165176464156921825408010003454668589726969087942026248678522219828976852312191450961059353066828410317220843383549600764212073535237107673382069311572489345881362859065849780404472285344413997749235336737558599019408354336746962648590362168855882255808710816574759395209484828983595814701772665969817491750245006985922600131360573423544818915102738400505048474626647574872219436693217762605728003011953736372568865946311398688916230714402379811296069916929904471085149327992631256911684441194080866321856935894168267044659050107539983048377801794644364207847430219408299860587301894106282114581645252271226452714582633039415549086807608295778558123400392831829034240486993032442013497190856897486439951888763991815942215711820707068776473749546844466072030937837383270437526726528686187753647512431029876564152510133054203651428262589372651365957370818537932635449913909190482830410266677325513975234941013987314112508583102605184406132999694961917181368266211191957442105743344973493732218526331218790920404531395772527218769454624106769410948140512221235986508010468719544968687193121311122663291705174348112347606088665083134542937561792990293221100020210630409253140605301572917435919927264567715337821656602916372786265828120496015347095578073882150370903545605956103418344986054516610651199400926852873133137548625768793279810253921862136388562145568574551006303905438895749201605774301723561567654722786195770537396247609572041989520789691343301784387753376269720603890283338336194011759901228579323954135439345206214344184178645599644433710761126231842663196102347772641047168409258855627880871753335136127793866063446586456262589372861969057158465826539547887155120907067560950216337096148235000266042976092340984929009350311381535719174494550601725558126519781183659793890602165247045722867845416717935626891822028974680923382174123023871918544630697902090668554179405981034872866659046428098959652218927556575444147759258059483167690907662190212460647969772696575488594101217843144726583292350565786707788916766531220506988895535284238599087402534674219988323879852427315682042105056959035301752314581669258305770887533667803573864148101402938220455574171873511608521787143884263663436279156776492959780874224147101012054798242627972465005907185811147379994984267956027348949151630655763708042569075876784490881916989259924390101851603680618978566949173358198460688611031317142340922652566437678393616308577293462932085620069411772225253219133237431140258591652659382944272077376820588821620104916805681127785440857325785453072005835699351046425979840309608364289094810740124619539873952061471703857635795320723544311496504961659005910459417812103036596655559349621180599797175042854649058975974116118009213117618352147463700976103095294242138753284946761824631679243504856069998204358316466380305478480058592498618706990896436081284408733329373103700921568345039656191352322065570568179953698266124520592449448844874827525970204647008520344445191811298571866770432306681462085412971979873098403781567278846478474840996144415804725814985132694705491615252146314731075119255905099711298543061833383280856386685892627012356282671279839359846459690499158953522935230190246668459391601003832581649597921802789792425514344215118533652165323893909435800817946573685997739807562627153766054735192559983997208434586038235396757264445763286201002603567962638322674156126975059482621575053635641585227423119400725837198518256348288030588803039766632205973037907463699437532448545579485902464211753859799648176378087165730682490954755383083736879351299969069524820019600387901946025739781963258193964439494198647880118274190105966623674923735503009699080361943194153629950210477681045564893527511234018000823001931341556682100160277135870976948474794982225318351306219061662902781548174488934428077423249323570986531783825313179833175951006049801622013688013119301997255638329744600590308175206349031842458070561421112319735905824071612644868236320648273392963504489879793603885592412287853226308899126628475064540883716064387210641147659308834673081118440993690484608260181251737369934167445068643625859488827311092918714578083037085076604476726645032396225681505361391782127813760590105001148232027493311857924217892414765763761205077431570324397401142576738430644884101344565942070111788998026428382879427015833906945577631946761555335739665316878292322002872121373182438119392544989869851492557729882535224187507441885565191938589880997301624979877269460387198748781435509369345235010033078249338954589553857358810070450772142014951494739658309677050067797810050229287106602815406119986054979791427876155707511089042647765413017643514292201148092727703806703268517473146555920401981427250079918067184824459090519172970339975276982206481887172545395014235880394527447729900863815741848223505158881507965155427200449541970112324170612846408988456130782820542218771570092329791243909290129393647994613902401683899643597243018537915026595568724439535995674673216489506425475166159212094512185156203463514486836856571343086148551168762603602463229541469330636441654535224902004988794401026325116197829650557760447285120373947439722896403880314077798378272333994717457890539960078643351677647658995107632803331731731101447659543725600763833743295030930099293916255984852963363720238793478115052447246854685917045507478343592089398141131046386556308888215982532974818340895488100472584210677396434418193527931057999374239014301659175681600947385332655751429188718052275994668305902255108097635236550702414643117270243072389446927775249297627824571049909822518006665605154795796651974282490690907956898938424759787263934220813805450124308801242736278773607033647193533297318423979216621847672875541402237594910112279950549600410059765947641549270627194214057978049630215510951929113035877099190933121911990384440123367744341653610442981599402580892714248493519438346635255911585330601121679577443948914312434928819972321354677814945321612218192780182120649826102801911007633674615036206180925116396952876176595367128730918505992565624375476693173690137491127897870311645619356744817044864818827655910494886499423888947906229313836815630340985079369320576301857922281982336610541753103981219387157794650092843966609174063042382811882953630393301584354787686649552480845247651452294806352205282973362568618525851271049902053791871944506780434038552167057241471248676427128239178155760986016710048152858478819397479256558004057938996608425238460863004412723737525341177896610400978756604656886191296732598501322391788514121939210328978551354217287567090487478722723700702627841592931536357187514539032967283614102155002323179208557286704950317880964067906097991010258317909372663161937526105889194437236996527969596880679980414604437426617606964896421567688334075800832772834906636431260155834873013397961800336044162821631973040856381305570958825572874610291637153282144912189929402793835943999779454130588009258540083250999146532655169888355450370568659849561727322573503431321920491516613927257601298150866232067242891812837504564073799731294086908041292483585196121245117385504804863567209105177692435171008534835020408333156412132669361746245564971051934896787960194298567724290657099235026913167036958960820523276068094003724247491035582680630120158579578020369950440575144662412088313612587257252998174880737892740245888633663854916786863665861621559942933263373235566741145839830797390357056730244446174266395032537195893713913379492233145222051944585396083790964122203187295222395247949299081454986569757823994176757982632263507963906595400397965852764088958348306033574544976506800216894944731966587635059304561361470149372467069267520597787161728894706621682161426652257367760262303273205460872311571453397880008048160784010896471224643293599083449358353075549433829930595913695368839901497231976361035313775129627393182793417619929305798469280964418662201125412971961895075071728761235049377779369808794320573050743627013346702323479360110417168094493361992419258946509324406719949470459959902343084068348948089466822606735633676246800099433486243767647253707360299022926927093343280459327868621370430469717670385133603089298437303929603932587838369662760571946908423230387731241469133807621115209881831658720723448655915297114478807238997026983760758591608352397480200759636992818788809582910861898899267432167455780693232589941322800086513789417379885182551988578711782280531073710921702676251197355875369660895205963975201751138755941832805037197447319493337104485163601846135662371834806160440137205936353871331779894166618196625953041049894036727854892403966157207038338931682641537203613381463036135466403326258505828856108282866235235775921321239782442475730928145467427182352374591826893350121167012418687669845297441314505539563972308618605718937569803520671474171949255489460014051294727040403866165823041477432538619163851564834659796093211441691345061452410414143416222166250536607274593246053238478205833899832512457492398226979161773615525433238077464690491193631722877440315242349867542237178839845361565041008616920055075216558549350726702996879173053469555659362441142670707622389006567228821646504066118991894701451714033571496585333665028314328409196462233662979541276315195888902883309354038420007956277093692483027378964995565145232288364713743586895319954616733679087677169882106453001637425723822412980831303995517707157357571994199382089104194934919630359127577738299361195175560994318332200732761110794232531008623314211590129265228711765871983780228683405409171801713668836253224403214263505746621709786398518755068948524208020357358504531684507375173424920350244780341397189588912090937796595995348579353713692665220093748130164133275485011831555554717379581756631677362723649008185599093692595950429447546885536431403414319708693210272819501969056064553225760045133999735940906018036736551572592535311901797093250483001768252150407842009987883229721952616309404815897302712047082320980594981104943765102462436299063332393609238050159119685361489407350242227425540025178173778359183174690641863559361660993114352901386098632450375685119045904730755313813985785061307337540223854584406130940312195246623356580573150392003351263408471922382494607184344907949522906898262823049785375440799442741771183568688062849339497748698119664815625777321285287019803568633957865294543432657897342678343478390861046831765183753687562168089196170034459494649025819649324460239663399092451685652942123891537501106501891964272142689779245601758784480998998038893387992076338727466984845825598856400244775790079308460469976086908254875534434812592529278135305935835269086949688731149617923183665858510741110983445142475536914924962721063131933005961691087049388413386515456944428938002934466813692845325652313945714363602522880119316451382002786313479111206361356058237809662992024570289088080733139072976435974216420215904691330912315478702681468446172645716177780431212817278615572615749035109241119505677874001126372562999142363257827797068340147128820269854795547428961913539686820276898188965088184859196208064308371329336094809277381465937232527903360269772121482989492378074080855910757383417720924247009432419421700264572145656358391591056345494703540340013755575494215578364040640706031494724683312658737132298066462369762962788681323564235346227965959382338525402336727924840656781512907237079364214654933230242130942282162395476024684397761941131131916441805523864552575504913368168280153350150395316627291132088570288534640485559773061471971618617911560760267888474736767183963410220554368550612003633058890348085401088915242363192604415510713247261678189004925136723638606934131077850942452963129951595441689957367167147029940912485542841997389964596743858955641930278849033594106288183366932394875610969861026433459829200997238398928854504988023220239492836077101766596923466965409339315339914820976522901758586537328996108257221397196347247623319475052456744558794184959508503164653738096712223942241943976041388192921670653299744632091571948781016374689922011015996196471109245494455930269136850417108156371885036582141509146730828601990801097367690521027767637459805666606003266873403662224855426654336442747655636886497986769252849952666401948822608105956266573566559923905084261386757227709688403287033979982802293898629337868014622888406309333965762560768271780864261641334666304488172867261922844266259371051395430292605344110449837974108331313400434596468740411845390222537191834166399881684281264155995539761597110766342422027379002953171681829889451065767915316058211312495994534893715888511835543265456294292354245741648742922453765054763912517837392472627237701970802193097423333903123357403595249038804429210104845388318017809463979430361312807548098212895394067381331227647602589786860790320892785762386770393670738974612073763888478966334333385597497273947375236083623187745461614606822160346670761187196616561755499121923675531698071684734776601260192862507564498554765458595847167309763235098815776648089202180995262460908619097576064443984878549564670743312268234030299292293862278774985833344322937101774340906464686688895053481374198504617377403981123169237383288568579154597022696476750592284430691830768135109109837793867550996124857592045675216471228377356356327863772498369443964788706452744208559983140040121180972539220964373483555793341063500531913477540076766924385273835482121956144858124569451841567844165734064068063708541982005321987828674217921833368819301361973068431867304591005744057695974566144333240469094007259691533996395385623561477007174144237854542547986755514107210367888025537283882977689794486432598958696440298683649035614535224454124626726222850407364815039454366254613252826243634340999746804794026790172541828198403551553220294209176825359281398235969843638807173591640940310143775776123188592723737001728690578513847003810511426249996529814388920574568855089222092926407042258061558021349324263281447360575696918313108608906763642696244652104968710850301160139536245969991285670639519383626684418335251977161951460444052104702371163827299863076172142148251296443141816987971291102876140060308587637872071063261014481646087435876268536392991777901624008976766396221129014155351306992697977060081303419740472408304761835551557719179878383899308138733632858669976000068637397513698741041110366464823998366212622356752306067633783682117792158090702486120741081766312621467635242380346593610671754677968005345762695132420059770531911885794807461557724757010763952289936109415034492158257043356175848872291233134676796252246646218641722837887669730201881068318596539305992510359763159833393561242477838281830503131254550813746972728398735183222963128559021988598019586400144764188987569322261707542962953439719059756574960402815806690061368425087005432020891583959315389496994626860027753551436009090821699556040640899414616560425588955108463403923920608331307784407839915033268224109277262641737015714720133877804716542924744330166980310861283074067027850458784882210709433139892137123478369545441342603114838847512985984684109725831687586932236837584372325370024777568717930923994113930871167364837383188948314835031088491886633024266293616060714637109760080768773049549783202463667304916268083698686628915940677735719032062819884357930154899602773198385557552491936581340057879180610667446498709286504261875285347744277675138745318278759316055201805315640880044702643943234284072976265240030293176323681842842918346622067747774897053246506446119074619505238694401557771282726085860487533183028493987077007080823831414422792122581381054118615634338440579438713222726228821992083803805905188560738451025614932808170806526059044617460938376479272404166335122452141878013419130361890978339341967849688156109561839829174107642935384356468876827528136558797318295376318121531699745218386284325169967851262168760872783667996745853309839847249513724042731589495049680527389800407134216864837576621928555608045986950547249105197240050841534456525390747326283702057267399153908829435981861064008749050945481329185976512601948554138510254789699055026181922832903915501961289327110018451754599347562797776189390224659976784245200895085113662909569247665459967562623610851230176619938619070942218500319205314295844240568499816670417387235002370041968518004801256168795326186221628159512393435404096532230796201198402979028200529282630821796692861061141541985842269984255025368349831784539697369564037362971349026995058408150041812034687738493416442179010896376422065023380802515380872246810256346973480858798482777944997821527207831555875687677505755066740983250674811267183974772891220769103424935304787992207096726934818184330373387682764377244995355159406691198794354814113333177595312414983326014418254471371319144719543320338026837853365636331081480403318716233842859532133946963754573458187032308387652463133362728980831898095117864383012819824297265843793986759086471030928375059816059408863100638879917852456061238626562922644598723151800608673963438980433899440176575857702323429294044263164040355973054509697742191418316036172273882191533508388698415644529716270115668076739570438751280114709164040713220118324832667996493898019255641632321576929422508153728287211068528013356664504687926696867175176728406437339436659615866348591812397014397334569672066964167361775370114154777924140737967575943021922121527673702860468600185244955734447704259752447322438149824948446190401706642440573837721391294767074867891141959802698834868370867216583474984916145130606559242206590746981935105998081302626455655713850323069334239417482646432653140731886857393118778908090156708304400325520323726305423694648398024670331825091961196217971261945457368440320445252503510652781161749706837680446812118796768130727830498826041347250624057523574109994874980386635560775707373642754045932963887178318021276895562419367121136635107055337551805685585030770311276962662406794967739140070767231177672862622564631966934747603493842325951108078469040456390587445408642171158789034568117025819971350149740901470573853505966129515101962265758121232995267764123463301872008020391394519983225059002080715552155412249006680296444720910152188608349386176083411989754443894020145890234482807163817150536114913782750204049955424091838782501621671742987942141913438761273390867772686564100362838243984883129938070129330477424318030925733947761723986252051879808914651278033451941116426006934590546158465806663859915525873446861323160365495967412202178286177520478206791225245004259324163404832487635958305602401881038513087261323702769968721443417384763126995994033118004504956893904983082690562612577871777834514364178449027970734087106877127123345433335301058702892232826794593535824157881460708811825166457069306732983888072876017293986068709984622989596603255490342571548267854549438972588828784435211237815935041287833204409513819960736913234737800341081649867373657651930550741333549155995191380128636137157907568099109055184824884049174636885569300591060431084167558190347487708704542390730314712121405671159321313649039757623001774618146963266847793443223359582702639745836002442543642304219231441979763580863724518526836005798751696015051114419444963564235497984330076750697583036144895787279215055393717338064366048706221057457754907892049501925606735218141579511537108236722254341343499142910278846649366081172469026186843193615589852662836973778776733676749933572675388972992284361713443798165356137622670224630650877540112980602798136807829733590332903538846129926910068824470712410634384553436548389458744897052097270988873913428888794744980897662918485260909505410241252827339634089821584533635760238662195065552250470011087938136627823776890070553127876892234165497626817935610710633351586630384459919141777173543793323147174282952449620676750766295982275799680179736574911550600342310044200546279076889390333079083651327517937699710342119765480469055127846475412063477123093725082611683804860130071331849662205097049450200987522721963671179248411630992814854724548749542739528544496880434573946450976723453390339062281549645293258438126526743035914213380894496302450219524602525686748521958087610897503309684341172402717644289928807052262948461747730789758808886090263391990370208533642248447252199037059558849822412809002790822204254333027252149042688150177758725386535959080927446325333198160799723889118517270570113056015502894617274183388170825237861736067424694939546717440595575603132063555273399235828383441003197384282428501294289715357554994304792090099996539926918413704127862348138780870530216152822674688786719010696739621477198045041383868079838480694376723617919882210854397013356138924878834473372534049449756499521617697785244444199326435583481294945875935051695659663115081714453609560201161522827490484396570773724110806860224473333756413378658839594795636494521358248477723768787445932559852312523786533056468328936948977370874707693854316862788591779669563473980694993917484475997158823117686819988748836376106838087808398906756077294915866097228065745110884939561137601065861861255602984934010692982753192452265268044014495936172832903133303413967115635238745763666553833568542417897093485237300042242624576067840898369965460576366451302822166196909911885308495123644774545870284392301220780288740871945376300280744862674957234911016771022458045855018875006642226818450209835210056450848129862940580089140086815005379489168157417056272479523442969397641950611956745632196350086564453516212738412219424782439213217184288006028785277249877987707818834269625576541284456728280935545578855788965715047148072537544094872245792054919868140999183445134506057749120145641011553423369404354992101378349912673988892141792992969890809628760190990159685459084882569963219622580497598857084760563823104596949761988624091744595071606376237394575135353677450182552457474340361350744861504816064265453558348235653812617571975903580285896977315294368353976726528639721496691872208277198517451876964933785874319747420459353476088075830569779712974742386609196761076694727103864199417644123800091602363862299027204728666729191999267400167563224652126394042728949937647830389048375335580077128041460733761546330977812276137082230507665625235665484773907999814928014086415088127436249867724889354041382858594590769233230806387216630958302921683280388408482304877851499353548484651882796119588306007796144453891702875201435046532457923427059072821210052243298143855860073390136455370499317174481580589377455254229655460529668844138209543076035883041932786341703854002279793325054300866981574390180730208647697842006367063434912669480110497855961312333604198220619664998865603414784668343341611898913112536998881021913082283730718104424876982937118846884907052137317523177819146519415177810208460637245497451724611337927411108131133753064401740913828634113335518393877623169479517885708166125849244250793084611602930653142953043742355470657079137963841726947908761308824657325690571171953375288161909692423175033080261285256275396397226858629773607828054947303961493120990989348547547739372916615340570769438737354312959637422811547545617062729054496569429428694457847937700328682915460460030236504837859372991888618975335001803950199003885543388540062998050907383638148201227193283073749437994934883936541689954358200516796570686285176058400545047351449641028818423924130685680836073335233509283748995694586690785634806997501954291459275227254064355006202387275301999690136453957255231990522893265155293107953794786261782082039572720351200904957238453642116789680132465092976378048770183931066132793656863021852333745066647116670494851934243432791229713421058856126129416063713252159118923054121510856502116708051170550330327306289630372053425787563205409147038811712112181532358019095485381636921705419918659747636942211834282826001015837740576562592948324183381201565500346395319311785154153830606968150759625682790871554426603938902165813989981209957090586486837594259196929148993572803578343788243287304072133599261379289601458012565225179248851505896249012849349572198430120524404762608289813615658577764269585125380465687294550774018121884510657373753321152713271191517439406063932012300178539494191028529368490733913097762312052252554207115100435421306372529041963352144327586663856754624166730625058059664874981964794455311158001736883192472690024653710431223054989915583226884152081027456801643333594310181845499434598902833831688208502203515426381719693183129600007267855231981024182994366377035373804604782139744196862563127857732465246802672942181401052036596326156201133899074524867438352658884713874585286364393078977119367523002001894890640740710534223983439495682837906606710444974191182911874761501044714884560299422880570504554369815367300173395446624483127743475965542534136509605744416515443106161025965653175372597376106214239595789482009464570341972786871826920925981765448511012930438973569098935445519091831316706999149657696667286002651444896791317069158220258702602065441625246253708057633532759665863557597212052194951877953545591511521576962786984287335985574941552836722470555269737009191958234224613222028377762357146502624434419886114168317805736418744064118170291485941472127409063822398486610040081947214363679978803394880126136110796088967861933661091130649921541717895270022597284044856643603014117037029018704009215714879551478816274137758259211276354291652762552500407769773814222855671478769250571669211743315952963874599836980808675026574892806322150462025733031738500807445700577054681835305933610593137117112567433314544006911817680108409064024964566977221060165178746362255511561985539170737275298248145445611902843418271963308537640249145376355669879128412040945399696013408491473545283130259815861505761015388399073297925992701031282572877596139145816641125613881175490793843148943037680492477972320975490340422015576457476857821484032823290280487554963608620341776546649002037289056891715455846966724716761061823097436135692393103689916668555611704817621552977698710273391195993857296595818640062964195953083617049155793437276495033877494745202108799969296470266160299905908761856722309472979714592398528560579404611331694772186463297149876769956136735317450964234988866742084339577236002591041942446934268085761620005337538175495849327653794276780146177287184067748055811968183697387752003115670038439444082066813677838509194796415466107465598025497816267366739088967178827707647995258357552673607466398489257874292254911912260863242294976052627845991442863506498463293796488830863356305687081288308233161051755710758675334823772121593464504197197421581623845171620661159134048473113861347021290642284047464244471381634907810269781850653451650681030602275021065083385840929631180396240695084984558682711623248707540303441401644969482743332752604703677883512729219356861370075012940119786951329512764981334789681076590667669003739917877787352209713801411541626710243900981715442047064777455745004512520574299223081228658186079223725279791890688832012238974305258966954885805618659840901930093346626146024777378675828858323241090867576122349948886147829405969832476452666646065616852397767347981320083915576217810525330458324335549227060250881549435356428121620292054116637517361058419380364651119758644292859997876979053523394097348721354365191105945597892090019280209902742397508674631561330891958517997899342760516394192178000654787582676626166671366630106307018786648725285421285783860736372918230900329036608531852831049227021670801042764538190214185122723459890053379366412288268884462587502335759710309961549259167184219632494225018303217765735791418796755653496825940312293028367748764664785411235097659318320568270108309237453934417374113717130639313905497320291652833861092947089925459078014355542127152612465958729316415581574649106309004645457633307387698925732609098047773584371368242770972829612106648189318831435018893080795536937499352925499504595871551778300286269814140806254583430639378358714093206448014200966935027481118637621644172705897716470747665973645905759637431718360902308717610481223783029421989885758724447394002186497461636115965470191634535537095084261555807665137539293030503418214162515298675872677969838293800531847285081281725794304440563968215254532415298769412722140761086195498869893323360660863102349446182144243869597917473724305665124468158168595256317207763614878167791886508922910988398578551009789732917443500286392988693040675441577828492366695487621271369968437834308541894537552042922030464897624109843568497943599714156322973025088924225020524096324530035419064695985190917153472811530936811553236528553808472834920502923043335730759871933132957017594483611994710588949027611079503259426161109503333292199522861058279022591139751889435409634977597406777821365188239931861407081579512405068639929180935973924992037921468057826964638872717981490427495991756879037489338552557997936361822369947421076694717565533014288089225845058107059633666797377412242072693317762072207522667730621366989199476162470492360075356959464841959872670682828363326148772842680328623234026858433841317767269005687766167736773005022272052898330394558418825883184255274514128987036887753172777090528967142591099097000410436601990749744253779709999803155075451714633053360578178452331851413351091058866717626991327843474916547392910062887944568235599654846608171860983102471085113416978878586529161194761892747643291772770206864417242593091057414718149357083247826409870381235462276795579240189247050059590048360542384834016363984130646089196188565922789352180056047574662577274948793115827312866143087223933386300849437594245226924077306563237586800112695185940836553809974457878553665725166360937833903513342761542356047400582213118975291354343052964517627167954870746363443806220205234481880968251355917303209424257611966171169291002547633874572763896950182252170581524865091873202423980697361000829926540724966330459715212284765503920937439387521108438558615304191414597132059755686336969516158157148329190510592997274411338932243871754429801437990932977509914416409342493797456461662720915087316319043311785040485763279177063529441953483310602787956376662463275932244945701116695284649976562657246011735223653857395078073749063139471990748474216167847857444429685358734413269388213591422971941063969080829956062468999040730615318096124145420823611759209895517884940864619061334028099375895080138707545177654562880951054621466876366871065564038761835085917409398944813578636434375769088014206156049062798121790117661506711043798864816626418519323940788737179824160212204775382419448645784395556045058105187880074582097060141843158393190733659858090710483243521395420704965227200173927450987010888861117688104501642921967693306795619988626109212139648038084582885042528110651421523546137386333881067819044200435614957342408862289729658418623010400460212220510359507933419034409001337339090772219151365754600872876231125479902721977570173363819812760577052552176896105146469100169015915619027570016764870589854580884767351997004824016137515367521376560263084775385508787033188343362024587315030056533841689867235455374689873633679783596670732046983603936781740405501920594852027125606317036907190411013680403030492384393182614233215389940899928031828117115074782225172647388420729027791144292044148275816434297928956204585072589559138280521997519846104873433991355913091043018245987116021970325840893985317776916368630250406372101236074160010811136598181108012993976511737057096068325586869993119355468603495004708406378284283219135567601485930223971797380978375874631065179519508791019249655549279436703383626160255868174913429593838847387611340459762561611592716012216248303676384866607608521662505349092070249827685080744960812229790998073243441250578762918972614516715197264264510874739467920519784209583997041914373016830476388728611901901463147613135066522802530742356664304424099762475487575400740635698299554990552419610812274989142605151225585322013822405579071470265539496243143660272244588313826951546526133386832398345310883917998723213374748331932510192816061497519506848564327004133869539983605590021591857240249818079603622596700684740784064791454013090881846759033458260670599071406745506784094661533015429458945792796631925845805444761057791189553201550077181963337103617685404110254664763850416977301733950798309755154726739074980479324164029485084009246566536380790930002010064731787284206428068752484959428150931321306873787328981756643956754254623433366885378155220115726155775756880059057912514607030698409635796062024392974628851050139783461718506954869354937862422610956733757007802553219408657772899360402132540601517853520185199797151496198387327127320650556104075307263749783041354329323911352785113245314304826469809261687088686672327932452760893540422694563355763370141305387604529958979613466589425063327251674800640273677250251845130026356515982578418329507021568036086850029909693601117566831403224727626775610156304400162800780579961099844868995698847764238875159652425277009122073259071760321305623862977187429295612749030672379344735511308040656109169613406852712350371209629053617798404574475440567175901847711831032661256657415867503406718138792633422627462775329119154411621652520525544752658311499090527702268442803464026133709237719799981850891007090401854592724726825378409474415212737219206125426114044747637515676106533528845452062708519206707948265772658312017071781674184396526919706367397424861900744489243173991359418996728319065326907894894860457963073558314185705205210702660945407346854943468673577365518210501338629292129649841926689829624885055199584267722798612080281139459961161607454997032256800199275874167987223822680499791547013962441307190078666414157898355437507788638306904088925013769142508840044327915202990595493732359612204864166358548110394425511727605794210918242282755098378088445588267461172017585843151073084664901585323049339943059700164337744957165181247651919718599817978676516228492442089909984520117722569603399190456751625743052914656808501812769098122566636479072747103804480865856262256304784069538397458590481983540776509205737153379455183702782345240558993311555494422192822090231410882098299041540102132674236382377573089477516935704977564255459628556148372663837343497491493801129163797342066558359721185557146663529458218372990290940008359038931063905395446973727653344658111621518390707110721308725701067167011143030199403583159593290578134903836979255135691991513989648133758298942745585146233015279383061439724145578047598919799482880721854228280334710584027404581284669846767256244208622471210103566274995781613594176897953686118260367680637375835497248841797120785873496625656708753325391231331001245708784429347585307062660248821251606866329653236634963241328862428697771300275723068511655346622413454324024769601352553152225227380330676790104137147926445779471715788677953008493993818159316762175326802589158386030627733872812001746943774994922930223938811947768172139529674297322222074305254843532935076251664833201251402508265408344667591563703462220375229094337449048151776458272403432181213320996587501685467839611616418101737968687337507337900803567563613403569092823697890364537039678063656910124489495122459755830423131507145548466795610778352001948257738765241671934942439874853850757295160524252038976768006432252713625118649747648314543312334091537397637250304926089380041027204797055613351447722583037610031179391868316804847446766553895856021112771110488015221549033282723592294995104934160178683618622147616942208986042862044558488203860205652990967801162801181193388540715540261061195384885328734280562049747558139571206550590655201009184926331268771035739993275887923649900976184888598874175863317501181395472018856530067257798775907175645679575542292190503515262299328240676939210695021289225418597747917390590647409304043006886363552737760679693716419397891933102945425372281302454596505882350176284799873443052335838919866441252115776701032109222065337691724941125855131216842793397405592995400223149350630739214592697109537596225899407556393280222469906258328098517109106728712662394609133033322669148208046523807096683152013578298510721899380638841871445597531479509971063538065954622504310543648362328545151204916286781601785786675633070174853497642578569194238440652764808679940637829395810790979992933489884898792171302321400904076109873482907212039099736819087753405658095443678790466350303460367124982058669256819343099860743807513132998663543136625399823497991185315641520805807480247202810920215922998768066916800756103710297679675289076108185320884282805203364612141906198812564792282069837849151043453004672995532975559104604587855615351735457696070247061150907406419189924354856056468351154602262468736244394266214834150474561475702222523683578887637661673649047022276848688041116516474107095314010264450949383589468861557378656772006361958189076857085702539519393042513760039807908471134099323981701062928308387108644436440369733340259527294534150401075935522710596145228468477162389089624276473065753153112004911696418236279094756101782790621651268635320299556145594616798882769527531833837985835841544480391872429175271449725196623408043931412778964530156116178311085129894576356465372887056582318664851321187526486644354763392186404258090641396493434981403344318473283664705024771205359860030164586060976317229854757080123381994171814958576630078808866597944076048347200260845883728616776286630237682771440359630305235711761763160054565909412761810642369706939340282958749448864589407723998008035525678242401806222647857339489218107713070014060046264614760659261974330328767138010460985284175934290223250961175545064793868094760932298352005446269365570330904526637262444206650470270537746158691258570789590592282601627105808451323673145779846057842673008786094982482601314963326327240721245387777754634273524431828802589042497533250730158163695986382720101190080949160237527571313107821661918850690103602893148191001568592890669964594040818955084819627944777568653949215621204153345620057121274995526349182047651991294598198215463505623868835618002553762899051711662497532969814166247711451091413615441444293095552590978290655633686209956067328615129529400166742394040130366283171952956697891499593550259669707602449992148599908630182712563647278927927215521367926366779285919589008018366559471238103860194750047444623898866751770246779738572781016085983884014524102734248610738428444955592325624295285719401338577624145746834783860465789148831726918834048597658992789412101898727211847586602012733281189729970411232049133756082286332654580488089433629229319530436791399735353488912185779209776521849710476549032976982403174369248522863093262632692571112988282877531288206295239865828886400125527581992889868901104300607599967624863386674780054051336756339362453268085456273939170518389681200967576166700884286100044894043833039296999596448734637692867665355746361083995782818505565604710961584624842398217715747121055596142598779396841478825770347883167055064277779052252894477735338321072415472549897392651837441433729896362494235611602232318711714997995126639044044845791342918979901974628263956309355729165990246802685832324028295862626830865145832617693158353250121560758501851513935722546310232465098553624122717364184168961077356104897420292633114308254371844153628673763467774696939555675535099099057865686125118938982068986956246786925664019977194785850249934262442383648189361244134307821422568435478608985238736218675216960143708112838683432499955240534703341502616228207715759369246315048618190089818276546494030582094114539219857745765567745868394116846856393697055483670009631975496762935227390567077347140696324378934733293564647406482262892226258749549476715987572023789329024590400885841663745119819440581219104104364307336873389744356158337850588561818744588048567165593749152483551002652706155692412789661391149609324313744477798195662099304984791738208499018866420580689970289690231584227684369639029542213744711444923237006036256022165004149155075740461928649596792836635376523383271644749097865697947362070140063918428402984148999656812546651992652611186987201567064429855608442709173652158209245134273574354630354433544815238222964387208947577037239612916467913728980829989497774357174160977596420045658915563302094071858830947021919573811558383779135137501526805410697542159341522199265021867232987226219240216238325660469787994490864128237692385943193886711691889255955529754040808048768136275679421204106855573176154332367323899409427514334502879738226942367585577767121622058200720517198679483466231708807024033704700644030893603548643648317074696023111972370626783600059314808434797869148654325355388402815902757118206631622913789463173083706946962876120355734874032525229154912380300924751410005684724967318817161723892557790577224705708294286638441136834156747276159160520194319418219684441364580886604919397522222536107692457264464190147136669944362826953998821783264579341393158803422988607036264096390945320017847134901772819880975596798700583724912412665211901622379015402599470973872573895315336031923409444044510450195950185879960905872306823831314076030866756036155357903874157104877359263327660229833021618824480056787244079719727398198989194310917071610597986069117143956008212335465155518759966499548740979914578935590016898550758499871624433534461977168640522668403065934554930024901533549642401234513795389326590262648290796932286076650704754274796053304570277194254595776438543496331714718390950744586820101513377760824648546688372082970163261581787210551714772091192179532067889738620385632464232351019521777025907812188154197792752066807862884335579646905510888123273410412008714193946526023047533639114347772543569858426083331337212960261481102890740651804285061575711839863678353422497707477374058936591555635070103221998226467885845710033317847546571011876268923356578432098392558445637987071148994539194548716628411503392130352574423404075886921893826043631033338340089963863069911988849245541696093987630839904381181847459923084206006418514840769170779998358155663625296509960066278058400498281819677475722113423659533788819224205423872931469285578871533175336396014633535990628572959674083689598624188562310242145943799139722064001431442114868513947681888153714926040480051767914627432594848665860171619224231252122359618503530018100525418241442100295268096164792712507285998677710602447824143268733294798850715665696902577081375375401411259368584707497953037637968715143536575987349563164704613867911244685334170988560719642905964528861744539965087853330095531308825782239795597933712078070953020241721392815198993360571343761697646928924436094435122222140875129289156012563021950016957392028668936058493858317444184426827740094317281445317859589315251158803966215550544258642163815726460428634879917746816517736566401984815884277838324417560481308999947501458869954401221777386362054321705268508451398653262752350857571144952543988678366755270844460274506362409299950702688875426208703029020084145820197906555015883493303776334602028775179388714102981190358071477886976029489235326792024714055645894215841398061410202993708367885619039151256197541296223032016835224659150282994303601617678331585116830448926514349190427763982577300963094239695675879011344979208296703697072838272259798502948897531479808717311851078596582096237584971191163953031483672118733829862621110471898926630442780570316816786883701528057462521236945978615015245132643401224822373046027059532411671829315543333113854792138360030773813582441936690058157891854113117625518440270261933723549869892224980623215262373560119967767748400992462008410835186907602738954770996775649644608181240302312825971797214139423035381671611776514782289199887367372560458627554444373366648218322781894383207917847468680092941400568568657248528290473125117062021687501955439512981126326422746470535945821137017859996139521809976967493076062450369432908232117407490282850652139096038589127246614637855272956452107188941949425551570234626579508660030858040648485392249367270306752046147018705038142734853997647565747080995191810784241300691013796410133694175181151672023565467693628409419864129462657576197174638432550814915727233295962097707939076431753233655710842182586070432788193949566030074524979491156677831064696809780514994607530701022641917607939307899977005492860607518326293941038528155674146407969022343468431555533318929302224438171127731322158428869245752327057925876897327133900635168289839132285357597479668559814500354074684743413837503376220257459729246760657968123481941173679650964604534497669386023320823798665824441613354444637596842681435859719861257343894204056761379666054934902547812911063790820174279226977235819448833093351089234284593834537784444391436901776588584638304110438234265704577329511607686151322904587171104471797425464397822311007917450956217365501042951369584308407697675508063502169899938585029286800408513818916124146845706207139993411097317400849274913718237337622915040911993369799351334904809747981603391841217653052130285265424635659603042897459557930636972119028124184152078156547400847331157613680166482834166236303449026935858954385225433386214229852358149276587728360684623456968577640337129022775131407987819147339137330784781590870825424035313044012399822211308711423566691199448492122576280135600988277977138555242653805626115966170118503449673253317891331938775079049089511476873593242079975999759204128375590126653845898216241798955340767414912941878452678459200769054174952494346323387042842928747562908779918357134287111582458124109114346888661640981363197336559572430293625158507037551761137641751397048796565204587847951490302493924913137691847229985700934807062799222667825673711630520133408244553315852987977961935244750372812564645822676518810664284634212203344852213370089357793957910696905531085387949525158229679080751327256976404463769536879641225337303208166027774743892863138948857802400139995301111963872767191077647903900245857930041730479823927132148120434942981067809971132511638798256465094036507419196506980851960882150743071770050971117889937076889124459948941868438174363034425074408931033036807662251213152091098747795980205766183900332614802987773338139689330989647605336938029104892399600772709045508074272355771363150183383247897364823895662394718669376523574750443033041941123243149534417087314720925782385985545424427262187034693085471906587597306613137119156946584514761814788166583659949066242854787914997372561279380597040442575175626617918413624697989815323431382380548552134013405067800618743407457531170151093096766077217775598470812825373280542023328790105207556161604370707355054212695255333905460104439571588504951263256253609012093447504245339067420447257188699214062816437370648572438458824441533945747528359005754757995402625747913337003214334985274990082930332701302887039749153735307974092598546088941639887831974780836555639261048539979372907376334876153154564115058126351994694275676882013110694101006073051256754368527335674867886853334971954492413970898324344851276044241223780823888863410337499701766764087928544776684398395700273686918640150503302711059890976080474763196343510149291165999425386875848112679755121091498273147738696849543379930146970225773080935433778248122313190259193912494287252647401173138758610840813663393288617729339394130952139616076787653938786291932420194968379144788156525387462066979270641711601708750196743809530141681223743583488358526273583817174358888702238201740010593373172249512840683635971975350079347305640615715159686907722402738336835277225191128396709476011913049155056534623315860927100007854345491714021523348256592654250160388173203094328259916831068380863367970357883659424791983927815231165633075854860477048539856799227502498166224555479587602198118435560967138349347996523480482534232234413901701697104062344528786671529262225231031126428061150649072410117655322629901088735652408167220465057801970251169921260565312732401183851097361216349850821775007716611555646888741040076865335781204181910121621455204668545284937060305662370899650259802762238100006673915933239316532898859689245037796486265172720176799990913756550251219334592624123774255895412519314228084103302236452956035268164132335094990131628624834235502916033333861098721281646876267378709432229901988798846430431050863611698704223022591597858795248895337938810475008244915258840287310703374521725935571200125779669575820084431766610875751365177130131089436502189808113041236151564772274611768005068795552395236188013168308280468302632855459516353124160725182138453197800708560719258630128407679109426459423391836396914573244752875650939062616103656828469704391849341367469251251222209766932907477680039538393061922687708781442807609754589558154843166773566829001738158776522662387242737217496074010435288153913886216974141035849056627845775434246590405635332616670123008946121674928969591519018669624105936606804006728112734060320298157196371334149511705088220677324420133691455393871765471826298512212891421093416009810905710982091224260978883906932935189375733752680840859282375379957483071193835359016281841766656648334560030213361667601700769584234768500240627880031731293576203508232797897049318352144477368282603719718031502558558786668178164696966987459461017667996291652603635766722628183651765857680608061059802207985614096848693508154561861618779242205799940258920474060080163084738314230119796992899017665436752084169080184808265758234138487595172763300462493537229633824307893613005973511621523447455648755153116766228999687617844693719514927841747921770895633862983792152335058421678067335460715885602844226846487808138799582392089706482771511763897242610752204271431568424487676993846582201145557047601339944745271311200748995097682220385160975296655478929754110383021562744043241895571236454178312523308088682518692086850700709747253597505716557430885692953167480942326967850747541415840144949907634438824408460795561825717401637491344098436203684413447817617735308862335358521974756688911020960079965899599472418923459816309441564101871446734620210917384207611356535455363132323883646418797537494943497322863926670817574824844280787806373420477027240926770053831260371751652898818530559756334829750619030017243144792918443480586608512587117371567700475946695718287346345311454072332122707797645753520853563682947329428420346484532742596632657994923051886873210389773609826714304643903779432837289082299698826168337968849205331885401142887150830685916530049984782250777321968993935187445149652037303237838081313573559745850416444449626658128659543135078447056320067041625442987885414559857744995985754937565415100644781700357601230792621400649495649770694309378593393327388399560365071426947737560495070206109969154347028093891797871283703234203394204484754168684116197764343598685940842136883663137161690976105063749240512958329027151961779730718164861730602553487795138193176607753621859988187624192549254236186782998692837296602743585170829463794476437848027564088225310769521123352140896039180569374785954252755661908652880678316468690562040269641740330811861478943515169530558276671100346200425632369048123543584041422345460267961229595616909680609349845135535726677547909836000000962535052380761239033714233804399722111054636833852465485097810797844356886908332398998931455367330288501505412598871121723237690836269959755891624919983905427564577223594859130080258289590783738596725489020722626099067763336556353499972192026226545359671644733073389819870215332689909903375677096952092101033097798819826466568588419452191350972474208578812256782782695454602325692610568300386325816945253191048376053220173055779032883465541940479214442942571055045133840824185827358312133471830353043358094341997165268038759263872531174206365207613152570998183514053925605530263859741083924542196670919228315036469492317263534001756634313707975876205843349841177462042639303310171157930553628976953657228454519877814910590776548104758749447625668094452352689240056687599292088308759733479895579079122269077714629705572384700710132530539968728454625169933586480040344557982215318290697227513848232269034292570269000860405106820640321428022268758843620624333470805438846744943336939759775037190664264526936307627497417579117336146062155670147287906244856107579365506483801671143885198654161412896463622725099679382337898993839424768576739583879829600023899021684835659287625524992094729548669539171238568425333081753734899962188639412316007217234539449281707892299258847572203456144986625947457039463966397803314328671099914755444848050365307375253780541733331629065784740310103670357458368834764060934883177196885256927155816172793194572431683255203470291443823354093661644296752830265767468538557354017481841265233812659438061773708008963240909435758321107214562138719516091813436228935336338866074747872432956425521523188475513085993895074801345947405918403933666950573398128234343214680815619422966338596969244896564676141858322503834031824121683471594671070557953455572139376919123661596393487353518511986671106724823576851686715057915254413444103224723743320729581315035232687412528786745906985538632300470759301130270069124268081086656070145584734631587795982389500806937048968567561851221592059057502188034127022331387693206178743839911254475075934861744968536455171806788154459010217628391724545922233881987929908565477077916270627768817417021676185694771519298677171417284641944573196427664686826248051851231640710802844131868204889352419025801599450452334993058799181421361891345199123022661554447101764757963624802876309696735018225263419897468965581486678753273841693909674327526173809308164516605762631844497841058794583893970472987858111419086936111667447075816326119553949114325369665346623965871327199438432021648592507708705541877047341200835307232400047159512256918030476409935494663013877707039244236908176167131553065570076479441393278577890274926032818389297032382220839565593167122217293586312110418409056773692718129712295524603330394444217861636470695393340063417811125904499769479341595087067740699606775174992261417014987696442899642590334692791931632703529250606454105705770985255696658867033891993890492556914784680967431848605148886824502082884383459677214386484461402578929115072228013399551001743712868094747283530468472688743981199240827263922709342285535326327361745264354047774951251376315797567751553323206048070155930817821851346401940155927325465690469651773507689048933392845358291149442665080076169735722466782414892147844189430170050806065156273996490836390930245814935766685919775988331531170169471825847708674591670013870390979021134956709212176313124664453477728612375855621318886421572439324259630379840653260336435210076635526714130187839097995119612166478493346741834218768023907593764864651850721412400564957222039727128338628748350688078402718857032855879933559393342918906679318078394098651715630811920187189270063925925147272585662043060496335978109032805935091215962590584350435320032756605550188761589837127027693609007576033661954194836825480983630589209607141446893105063523199486621260436670347108105285459769031021269935230330075434154993495499552418877962742842888675738367842368890782042860261402340269927822934893568148744383642803322402767872468806765368011074833946066481171480819713164521809154862400367322902058098563648922228584536971532801804623895420953819056232538041190541739839574412323035706807899953001752907718942372128171302005837988677821882364130181976927682723464751139916902156595775256935086538013217398067487515182121222804618694123140182790697274613518315543129605014632510008231138426805693689452484037272496156386825492896880913897854633401650638163466116059305090042457640008684050780320981172995418562021562368934764141746974467857040127339226899104222672888650725772752799181508745274107642917924549003134372759228152787245822828787152136904416676736640255351818739556955567198088228277349864871622782787220254918571755881916506723198644040173969938338124824274389535179190492483712145061333564592346035290418031805768179481808561786250369773034603683980674422262679771414261998293700640930006713387562647343939258724368755491594571787642303491874576335668143507464135425732661889223731207769449892203732655393550662036000335683776373604687124382636693662691985918085669401517753500593099289141580299667851523845580339065590886298091885485755112029437570162196054276513786490252427542845027333379508165565534308380884473220820343180323174935349252690953701049128430468106218621751407223104710778664000412123043049224980662551327160084285296839535665664268349667288892142284656929414774633963849165568020267719521575520392806928348514994632893080203656968193939710327622770760158647197217275560742760293357565206144416803400965350371931125212452989331292557803094659974400129924678671869535128390163090137724575350016665766161468222008110996375842330978974116393348390021368692828060113317021238289830915275043833258648399772644512772914371025189519861985139581210044971716529899944046934870874290504359626759938511635234283433719293928713385328523244000669828211263099368623517997093444612889401237075833188024424678988917887625102484242209165593979068384688469690207123068377908062837865874639954709725689964012788650604772504327391290687974312520048637689732019128684963476294493578799573316638648950987548584925568632781881631004789816389458528799080907266614899445779079315474281141268172011990772653009174698209148297322717048716340209093554181481550010426681771464560773695879596271244741922512382485944058191703194886802184046449479841849916402820553502331487702399950391396796901419023545938924792043508389006185267636236110538566120802319728190458900043940575849981943695412502031228343764357279416818204144938765364420834397647756678667621048792448850983433659849753938737296391154191595338283017487208754631012956344002743456232492410873907465430523248567398994975817762475991861348331702783393442398114490018632208578222582462844954729957686407302683558791205076153158719710306173538440809442854959014276864686924267591120435764507922988604387978574452982576552700276909655208414289388773146412221851848439108541809293290830756541029025847849170240451925162484093377316124996488115506166093371092380438604009610065664354890708032752503930306246924853761383179515051111249626623520025635882017749628033139744808126925494306731754783220151014212269002499674981058305511451923079330509735031943793458778907385983648183167927311645148546863282275169296029021328409653829683959521820689093283491867236953795792628495650561402081632433449369778687447086897227813875944613361957272598867622760959596498350942414218396935850662993838187349165371392813061546497969814516952460047284473926675748899381037212734826481074313731645387243948511125502253282344975007103300623281638688996629732575660831522735486576526238249994322742034248114419890843007710216684735763239715337953589506374276636102275087070560719552455957890899133211329395612838505078119843169294765415611436314703051838273227755024063042994864716077435710610892383967129249638030565300657841189712698436043816970766659456521930451221183247279865332218152709599597534301184016293063328103394769208304568833082291233774391312626466264703872548248079561117460638809690853749582439194509115242066597819541398417300676903838013548715607711335128112606036121170851536667802524343110461206489963699346596548115112489403133734762986765958636129928815671181927760408644498065493269175304169042734307526101689284443064929281276841676917333820467366842102005809098563522375610114835199695446908826494807446845784925367070680838297700926718008945843880143907977899006436514791643902753119819190605936872513625383772115925634872895580653908860604212060305923236411342111596010267077423799614008297386302020196660000283320663321303917164898576488009070352218448266391912500307450259296177991359340957162968399070691531714025347544611198997003625691011114180737248421400650482900372314957608116205599850003876776650325722236009476599788498254075898094370050820050035096791868624501401658697500252531600640246914975642307805397385029692467571501764155733068644413300042913178032025754318299517855537026958650196847003094066281557769068469902052971137748162317348717049832492407248570704064161040827334316649596629579206483890938442710825885261513472727563671424044919707773501849677800237051650910613254945308742805246709976319633147245470849620347489282210107411826781875716978901147197010117945386409729126462945350038848894537403867694002481704710181295940423184391646778172665392127290834846059867089717645148508785864108900777823075141427991332353542305841513841877890485869848254732782313874620016857031326464429100948604689364150520416946114720124542950087663394992288795114206354177167880314743195583683677061881064163941464832467225784239590371634394690195985974818797446372620291728998722454442451675823371968120051516792514700538579964257993714996741908248133595634067680403421162057119591083396795821681665317671982061035157162210611764340962845605855158005201149836304728812932147353335085445825586626143334339034338611442654049116131241733868414629545426218821261588322703094852146423846683910219270943339578251830866076469958024040316620196259261314744686312156645203685522060421751957971481516886604695918851177471830997613090090832866468176182716165758083338812608220001057996312676444858236811556176493051456065537925152280472743339737283307625258947271253312451248168607789630155227625179362236191914206273429800991484993593001108967661638719683621363460993330854893213420875083829795681151743544667215090852103151957485920392297040968261243141829882176425785460996733169663255179402617586811634279848592859265230736826099180748304205755736291487291951267731342837271119310485111375601051636953530403427922979067087401426204571928097311176145652287593744294428076159397562202983567853259768223121009869864756876274730873274169958106302672041808045964506203677755863893410591808569899840692108566050942971359601785052167612065353730175014110807481377198366275157448940515010842626713711608238692828042192739272614173889236597526360108559305044493743593100763589684359734043143935107731830198752042635334091447687864519971293750448558413721869456360814386335853971595791441655254124804818711889719340310611810692473626809262463289694615103671525750148530059807826231500960953495756100918133255566364669356873418448686475572722981932082734636931704989351387936838462796634104813366317747934155171841844404186330373354809425836038540847582559329508620389692908977377022811546036120170800170426177747122727437661357203290451317047408767188981300648433609754502466714138143349056621374283794551783543989250388038448277014411182582163841723655219542895542375077155526405016992363498329132470435133325178448951674574209735528836996966243817085579638288348580467879579316503469452570037512612009669362133190584732718980575087587538501568729687434151166912362071170256547562375062887391945183501958663768611255395546517189588289803692264358610701662757756615254803494455635760180757234192666554660860810412550822988665581888612235485736954363572455922427676405759303739533147025498469036854339911703027048164291182164684479046865656414065428330831373245028920028423202895045822475831035341267571653039925015036724981316961777810261120168800199329583498794857899530492225011904802325096340243919780870574630220526536192594149107358750145099372388713949937838710975237719674616412949634212797938905628590176508265529605815915629728550214906347981127373487404151492403718755643194575982503435712263882452178185354127247728941171253867616585805431883891118265635799854971741099792312454506460743796789631741096550023496283779106862077633781712021834298246141095652436251298481479481867014656779348110473972094720423609052423608130620005006240786502364936638357619200124719285924062352019617079444347828980039906925386184547205790090584260101227984517555690583034350572045578726859130822435767713759556080177259194160771392524768935924287367644332943675986883375154270247152270102154987397524962120665021657623457842330159418662415646629205957162335096935320171914894800960312377471881530825621003115050802525593269476162484025969657145857323659340557198053039582854252317002334636533262582165899381758270959471975106383747505733285721996832593502599464365566165236645024731286555193775914504191798604345458411935161342019645200619408751252826128800629661441129015572318486359875607287073144487064839456630330460015148921547731478688330288584580355124999628656282555693432559408755193296510150851109643765075226512495205995856313336107618114622632238136127254880625429064983120733998350526198159724369711863714879446150263330840144354711187903440238467471792874717260151404332034336817499555550919517319190805598347003864862591931461680399538452167979904007874296193496635742297285604299094185015878551920610000821150615825879399337697897467405269418529237733598225914893379638869435472772283327783989891545468302227949344933682070565787847051829846325613784133514949546722448296692282060084347243134189345802298571421093401187425468692194013343588558362616432448407372333579184451197994097410666419432328310077504984694012241646060910082754882591609719344316041007996454526897741249825650347990769253835238901972261338692125437197760118985969122398100377975369070713023475595232562517215333811974465971729091219849151987093370407521126901582834024076898244106793855156560055114073233853153217497675255606507881888928553910015602745885510189773825425176510012860545937527081235591669245586180211073097649075428804598333372888925338970696015024445214060113089712821571110203028568515492512788116937342974598496226260822635786810723217951671513562901347895307182828092471736509703675717449141647953024104240771739316597002490506677952059728547751218754127884452848146269116580347287748387341834014630905371433357545327334924961078310563169515333011649137547732755434152384505927280755390372287137900097146494234922933243976810395522796442112183899965059409625789908982279693441538278263409155957320161805041913627029989172238985105179590629203837150498381627651263892496471872621766036414092882589924736401242400156850113945649605032097121483451980099149193710306237416656911646473699411863578720074042105742569841640024339596058656316809521818809340895248655622197050671659561492464837823261763354104629951769999918992616872186816757270989220307013332726722380828738469897290632909243790358756691248689545307980056544258265129591262705490995861172265575565963060299916571437662040895626448044888025275725050073225388161932621444004710730099457868436070740596753074289315788657573822001838866226607613167365417404330904995982263838354752860279394570840592920549346978902557483815021526999681573096923274006869710856808821951637998497430198246628849347853670448715748317208246768442398737356060629628586568474143628440680726495823249200866511511405347079015453916134126936689043849811175592659137911579156521865693815983770419287362343516348788849418610842651854906889220067106667273782827648449560748589402321545634153733527348857768782711784938516964530132216039122180407617737123832182300795467203183623051295882293024677209212110132483350573675912771956256931361801835448807556052802548840384943619444543524196483759836062002202821683697882725180155423178226682209449585053725768571095914154876983688862865068631439180142191112751905664096942983201141398251617919718497961400194724662643697232012182910080272945960431778055080588114083451487389396056418009673922148939502270750901873190929325219073407026771989290125265348807710063716493204338181391923861319990872162932984678241984684407629548991243021600467096685998816196909400952338623883853579081888060322128521931708964171055091875610259796096102091156360316126880865720592890859198369096994712254857340604513603433656663019155576527308583550169173139337590076598675961371180327667233600546956439089689081452861258083472709435899610264229868212593759910634300466523965970321892674926675799165937803325802085868382387450428946805208665276478161104242243852629268373664703792825580248087803968192896896844963293157451580528151059715200268676105082338330606754408815957897212320894319528277949968867503173030816190771979399344546153710896025094987637485733340866317525919981404805882340631557038613346629533434512747723116409953754466748888226963543537048629530194360421729618551645777121698571200577147964337394039000781230047686708664451466404414164964568444598787207026460304055030705725277076483722640338222664795454270213359504451544398701518758937934691476271987087118095470648899755164025739962984676406417433008341500662352903924862177433691681456544274348955950560702176707147717359621692842653122487984465747117128770343977620749882690564697809554784257684421127792500073163015608655141684240255178181064109779129695599663762869709937585532810809767064992350811476598257537878719151421187514942363905310099321586813550805205078683038348026732053528306278090941347768333018718865801268688164902966767424914243595377701763491130509912487735126904161404255041924483422161334068450529898646461530618579226589002841283673445304076702698097451262028830004447601444432506801065644289941445252258051620241458927003708617374583098729350455208723277582641416661039061897135876359020684410712425912988186650716774886217945739398571156333008601765696502705390363213000363120654154739570510691480944119168040720907150616897531735659307562472608112610015829490561224199563112806592714676793500269632775993692575432191932059021167820858108351922882831066009001771384856123458446160417660609639897887650042995795002982948744891853023034460856817211019126150691088935032527859942525195394534632915650356875500405105466162269064875698564301360080853777290879461191083043580473004918736451107594775622371038807190687908359719611821806160039640963623348509205078935805425475125907345930147799863558758748951761081883905475088474636963408848422658847459221150994259957588663903466550533124222969953181873050344485627114220348492937511477213818365962818009627370634875248390344997038707636888852781334696843646045745376634481969791301759804609315503761443295347362370903443758909796349689250167597909483349269434845012772878558127626846198619192561881271605911444509991972487047286794410442140129550675027898040385027661729563195229831927166490611603000365086085054827696199152865155825997354469113571574870885250182926063407865546071117425112292802220269918019424027842962197160055003602933941370624524018970262360291773401272642763094996679131876400500270792559323119009076159906202831555236120259329496344056783066470071907583185924047952239306654972755215113134604810216189251933915065617088090071504470096839130278889690216869340982351936590495360776559008714129389987690054105879745166298212754574114921875733242992682219724746215502981963842777538162188337309596787194875032492620018281843110892507848943414474481724335666647902435887064425200878171140245508137206789446723831604677717558153991145379143572770541919496839811426920279953211623070408045423460967957450209088473727444459114463108463806176205868342520619609958036345284759633917351080593827474951966165067884869999202423101805999969684888223274288293639418929939325675178665039854016797813667496542426566007889909960774202355096720399248581335403290577363363211768574548517245452958340557274919710100121882004878382843942074606465181643092110988649200688594908003772053527185740312739079290695952886156961022007295880476129689401765195133966831130967039538321652784084051833566699873179544769997436588999566766672254724710293016402663002831881648922315178162546141158624374486905930810231978930790393528103335424061347200505236232374061185130458531146337140753806656543903284634837977298124815493709769616528053613804500123025010929971192277498956055149713323434730694760069811797790124980429670406764461330691651216568439605437611487023675077770112638394266928140707614801342372723201993030616329928990028662447932432712757069719004823732257386592541721054813344628660238038889562080919261646677865641079998904265338374585498542656522072392146604750439088375854347036972595177180901249612976771116063962760868688206723420291051423160296790871704542974855244706330338688461780691795198089113167141563842289872942414405268602550893988195737621673390610954239176724695872100449131837125598243745455643737585783954933672660298016612224628465573342307541592966266137122486683609095239299241697939063056656973742937038053692111704108729388152410434521223822947154830142571620076717587149632424738536298918962669351207014905017675221257392665433111636996815945052934675950184041148982308354148318990002061987912411147544023060089373078776558779556300143779910381467444766029479293655070084667902378712345359236115422107713003946912861713734669254029752587406224573523294690754446968787124789292405057545497546400203005632062705160559837976498234596661345666727586184853232465368682086856464955646608230905177054509845121130917412989609687455107172243168132110633088817218561216621021017192934259225840560052735146434927609638370357285570607397599960807134691222720072770073045047441542430492330861416505293547239952866095690496799823899654521841155663059115803492506800047865709175831429819834627440681827852199842592651291971343994976984027578960348486998157067113823328475676840083256108001111176401367467447917630075121968393578835105860688539800923559545976442200393553548733305599329349577986526236963239407302687087724872797872737601895467468572733739995216691816157301050407001560711441306008635520455166607318684705215924686321603523475908008965879073417636757888707141936279015518570490132042228632341013885185974396523106668066946830262347003794019011520540481409176165176184955047984288357221475519990484944064241684026678329884046094821907639918719296817948016135593673271649031236400378527552763449931862268500333760447715049546471021185023714547526289695319326516384179282414889074318396503460048059805670494771818324334862404924808799845214549060417432414544668852281501904070051995018047120393235580101217978584745353027239741810579423689904895604473725378316622952689010534508468483453067025863819410359470274305588063492823284237102275432313680499759184313214372507735816571935861189346201645031880509628845308312144169015517252498100269719246261373364111990864492397487694802190325164749266609804633039893248966897898375878594150652794432784499172210978585301085704314668470585818613757506096162635866675537416212383008486695013200562070195670514158002325301112909747197291201330777813994917166977424918510884591401782216032485333148269025764472948221800728867045849409919038994271018604720806850900311438470372213489824920966718708236662555797134475170131802448763924048184734158794554144280392602526012762681193908447822448886220829591605565531548872837398274390216296014420045518513334311373475837512191679556005462730937960114760839473926542490838253513407111050825998966307239779557063682038609231303895739979385933960197462399344858707951039123373293598454430056011698007001238740928667504702649128679606052982230043263392069132567222895199839208730385917525805084595432195567492917685313630855835684568719518213649792113324842575677532867557601544643753032744934830159506491377241936358592830398606056274706914535620953657959767144705398594436936092294722390095445588693314365812660028144564904638836332576946717457471460448053605939251149630533779990514801018787531054251874079530029544748440434741330194556467229595817641400678606082507352386297263216538203661826105920036778416370940780966907396124205992343493506112552155921243939637609966933040102372011086853200649132880280230589647648015452733881781598537779770578922179466482169048339831831706990777830355711733757516273965281405676691392374521703004182650281247528913091667137193206634133937584675513854142732305620121226770666455435953655511629430106333405256766185435110870128730458707001963976716198414164094882638950796429581347828275094515316501307015382295083415127960754937602747782212483515909814467472602586996970594954972201981125294873776512305905849417532107100665214201561636485823912311159713089196085638694500788228398431714068077045387419349094814162660496033640895978193499325460869679450966481320534707815701627616717105770957888213229690458397472586867406373013189093773663062083105444825896841848931697559172093808686710184026604769586383514025051756680264356948859337364013693330362638574462230985365468606145961332108829269554652061195697657484024098519506067937502682696844863833238909541735200337675945044626253639435032857137777960505004312942114280657564075318410531566338538897613587632102083712412844946446242573686779247631298330406086014870833449390977461652796431551941528147074199843822231695825153107170275100668886774185271114004182223792418484857555226389562359719531496769715019176403222753394866260225700201381592697486438656194757621615885776389921862978259674877168399622766160898548224219140919925344515846467959242497933875450580334178896357486481877174510699756456627253471967185598058092059364368880526530915186616851734381642154226353315163822216923240133968569166080848144344139584951056310670234092103694809151222654060579510119897035848723329900059212885585109700595796007891738148844733350991502287811740094802856256534147665440472232504866493182539658477093238960453792727269086440042572668671428567272620409391086333999085709691719710938383125179423026707920344959335229928931120441298679644929524492378096551805053680001378043057490210881313213208341063937769986636188299764897407193536494460604723173049961790800693594500408291255986437388883933299332444341714359547800282963891667608793014104513589161414847474048118882263708582481448460439444826811389825496517321599883338873438964610539664166597658158367470171286474507809605497046171536772256241036164843760685619909725151618753169825789319133365978611022958646021438767435936972757369990019150634253984714595012193275011203963509048639094037362008904648985010949826664545205324676759991065361826474121062557502376628553797982539279109446422420598110129547958873637457316720593599570357820839840444326390028406165816601548604684721822767129635585198323430000362322637167701282023502778812395258978012533853468611712662832639295790063570982075053370081160072288833357630821606550454766871461402703764674506854868614762612791000649194330778329884303080105715212642071608530027516150896904941751961958238567571421214710711878649711950013462750067362110210585974470673599080561966000980531229341256025314633687719495691398131795755310465257492591401027853126283858755271820067751993442386778179780930898140624200384592991479713601355579956105099873701675074241330351190062677733566117223131356763216908536905896608303724026815943733285128115133034173894334952110326573266324457580068501286220956548050174252335050731346648193616613205871054698544914672324809997498611257441679558384282592462653291936136129102027000356222630535271135910370505118807132027145275504549325146067881010822209669078568960219067591440436224282354188040948404860902222797474915328930415855866627961393533720280549759503806753651199717768997313665581663606175001035450721192088974551486407803550741320236267619503907936497011686269606304523535501199295009312448955600925128237856738783781806858218260615131808648242895920877988911375981790934703638940578885387071431112455833367112920291902674815150632150548163427211432656525316519313379421175596622271359868786930050645868283777746924429078431486987094859931089494350197265122581822277633811663930794475638531025448472036296321970949252640241715796852440929699586463831059355814062283295510095826684118040584045652965874898954882612956007021058146975059269304354579387338876540764833565596936522277294741796838901216047847431676165105189994511474780739455648280995469880878142144855392144888699426002016481187185832762352241050305882864860913704635330736572763696661853861946968737295713015558265604956189386631255791208740833495868997177274388658887010631720403320967437811749954845919194026017992462980423624330863510557217048962960649937180705876315913713355772710434924823908989429112427022721040837563185613780764808935270343919456615636372454973308291248039834899311828021674826671265001363312496062294052904890594242654800560370849644932659757497906344533032600151142862099546090360658639808024700675287816571328709470952062429567895189812911857338561189248098640308529176995912579070311673162680809846346150113942755688142894075873849013486684431097747570454245429884601453497349229557848627452785069109427592915250633554252655067692957400042002048793143056498537565336933392200656739924674109522670019291163041778161792929782393339357187037578579005353263731014868738620757417838344603777712524869569680760829245320002620882473582309894572581475880027234136776161176240580278520206302461248487488985820840485982246624735177514647264899602059408863664315729019633865967008881791364016208574248929153426639828327921643546525104291726551305379946252489975396732951610293999953572941043372137393832356869916911624690064052062414894544544354581093499064181713860220032475837654866750636965688470847785299869123934089027102466641225927973710587911015075341220079560398028094465023943884727350435757800001072685628972077116165272881681034664908250378639434688392900081458091238461786296532259049547980311401460534299135699143515612818575244687925438344073888556666702753863153569673507731729539998098232228764727696210149663826994087904898672338961060857283775009909853758883714217909109752399546743852052182003401381245904009499477097026165460938147884557646671996760166246319050340946899116926493573688667048443650311187048551166081020937890732168274081077741502065477095237242790170102331774417830431900940021608116000139771363053563089956405139047232992222987699965444466516602016691365095240533158546392195245321662704599264399327547393170467917084508742141798849284695944060766563909406873080104487187615467138342280910909025769166790354127365327498060634276822299308947912209176081237387116131339726726449949656404950386556394821066786002964597030509269998198561337170350842058973564937338937485642395616171021302546279704993735647496479288087119772655262198114946240414608666732431604617405150364534757041158444366576997831557857437104879999986984790229259727522179873534447593295856224763403893660788609901244859915585866686370708965831240853919218009311124497379600741617735840920371953591108985147593793944970878254052656775915632028808079693131775530667437087830875539006080841930010054443048813450789785701549099569934867413604873905386871251213941176777815573050680631632138985209340718568118749272461768702491356653618214057696395333720797973615805585458733883856135480798179439495790034261792971993017348291974103449553605958212665068442652021133450440539832759266007485064884544883681695216522296149994494915555596371220120205564371242999685753760256485221658844207418753999444784318433074185959028282637232630419684580648953771047461583341838300347326255711240569541597510071737073615892399940175925591899722891064340386556756242110427156607635720214659132452652829904038468824133550908100058768052213929755202417037154891021233005708483206545697692429427943600497032030114603010707482015008780069065270007996540699458780931345687764092163238157899316578311590558792064554612197235544982888974987487708996621338977566322214161910316663649649583305907746958899125236163360455279361588231173765941677815752170326816944415919335028533423212890403435816799021095641624972780595365815311358795110550195005395578268370649328404196286702845571078338877129713690583757636773280996203663566876197370185284260340347054409575095288797321592914190192500768549704922950262186831896411600524794462965543889155633959331031281153443692533204269022655116333962324679669742570450711542851454495362303301091722087227990093443716541937427015715803374191285851491931482744114751464665833098184211297102611394777126016761677531216207738329770225989008574334808225383482870888594220056514594745796161287631653884857025629378149191052212701458109810240249854824964999711432875442759725710670295910165003173181619302007323623693314872661808323673319981931851517643140355288441576749938903694002219995886915930843417038654062185198487431708509113378562796402097269706103506113869966536000387506559261066439703161637387141625312331316175082539030283116673156999708885664233636886901339676973714494501450133056860290259411137289970742234405032277842983577997040387789879205959976036135097905900272954273698451474757577395046870300249851330975016457275313834146261951599169301374478294554472924111897754353840511938730292777506885949037417513549871351296147150206547500079896161071016331884665996103221846148338023070444172129274207485838308929697859857261354593273480407220352230404446053799248780372496077337956065736022296521338190338675894214420259802912156524989220403150057155279427281241850385026710257739917903579026857842258899388484435369375357432740826296273850162597846819683826929008550632561734939071473476290461970065512981348470119783467871396589887935998455024278070139854388187840261360689330254221168394205421884079591810052397792247485665628972550048720635968343406985331887282446640422372642797863981158522043292715178748804399594496191140230694475774563774796299752296234522188600517977513741560418825673972281188762663719771214838609994485816133628502233960876541041254573165017143762558830019655503244458904304972484043672686560289901123306691923890704502423359741767410133425698222491892632651419272847328280217633903493308532272419787431238874530720871055958440250495846792147362853304713997455765140839062682342934350447862736012316744295577348502652221919944205332922681273805762545423787665156976675437357477857968183160938250589783097931210275219978936997454158867491533530651465828848231510661146028854232639241929806707972742629405444767483959391404162547870424979412551073912661466771229712788008116510739463011173825296091985498178570653196774529919116611428860869165914558205517282881324084188261542712298958256511309610778319381969559083711608469365359004405897147321109631919837577444476101202235991544884649919446565840297704136232964886817683974377835960260544920398027740779385467134276835374787104724497954228010317387417449793643568731542116993692849902717540695080643283103057031077901162841932365018476149318034607408509246594229592642251495127464858510053055132191562428220671998076744392223855729715179375513855106736352464956002312546945895494623010505798681883391164313766228609549738498111847759605521827045119967351807517680955134359583695722998404048402298042001749986478374067943432721787427367936722721836254642977142702498005408365405279238898686085098385605166745902682362174202311175861732536429101509715741680117477875798902295687044492585634208936322257874624247815606633049740763868092447903206323389942991946492139927308371619914428261772149881972798303740205366779949583004628780163740807808084328655119238924233979933239992228442397272921493674489385977208903150554793021670729514462381457192749874177209700949100824592827709586983132092578742811391792785769484069795830504228457910354265248431297164845306183936102174004655855730137631306909671810315656870701076027349099861156635673847773775375801255717281489283630109762394696210450769482785329701899570851080501784940142473467268397467851861327093739796234107663639154018411238817819252681554419673137283305240600882477102098916259273532367363611583190900809668378137731739384965610107519753958750721146943706772611024173081812740788267895018105690310925746437656067521712362016411621146559428798273601868943726339965815577006080011530852539270113553207352215271868394032317142397730258682747099207353503775718904241058450435470644834860462636541790367726257543494676650375884543649523273060858604914354067044876706852812412917619323180135621467489177472223319963802456330438004853464746192081807198359359532851510411499317428681809071246550153831959992414112803885609847802456664375921617323409757901181886168005135364365866111629041824240087987410461693755145700759886417005466350273942755752075867179615964147717217248878414277456376602587906846597288992693724014397280991862814950225908374476955718558634530230809465693421926912539959563266516547246107276760233634612455020521480569023028201466490353454848728791106346285566932833615719594977751987563988676414647336250760098801654337528149102660717028510307353235514832566312424436888761346115636830262018117230148094177597195734563278793705982909484978830425759416294409753330899121734316013049701867997826927512347611780155972330868247936958724265525966257770061323352749695234955806671689868816028182217317985751459556574975215832305472763936675711499891129855057086977294760686706931319074078213493363071023043402690228230947777178899601027283619608716485067612151327746566510786866734863026654722074435388558541787183374755109001490963025565639621329304977118872508917322279624577360071694968575628226067687420314792561635175951357943493228211934993181801514784802983255097888402281224675028510679159777038904608580782930572722863656807903358711453447187319238249052929607862482290896975055163320136103045871185184912099210650092829657113340796063630116707025783644155941796983704659749314853490238733703940991423121477566243313200879501192562046958671088816352107207417589023915219034318785642738455528723789378360583277185403918392162687711133198489726213440925133769118449322790670759471558502186892139660925615700001093679549187056250003140889998651795599186110609803728182978769238997940648488389802442069715706058926419712844941705323113763846112971644856339310227774884588197098117567959637475158270429163306442127632023103429775149621626791645855907094879400959800416918088327650688492548405250084184514319838538044434675572390248962632176306445971113543312738873209639978857978267265887472376880520624900525945276110777856858424939022770217751745538798231854100227892150403471869894522776810232526469227488666480921953204891491862336125112433514519756450184235183141036859935983210171714758678061624545782614150292999943857696603395433575988095117569544885147140036983169357179663824732446779273862807921025581771965954484079772762058714451767646365142062498710776713936404847771084711951584251249471382981985020927891605263386369104545254725550866632543299501775466810538232536895173995130820703302846816870100585028761518354843863229860038406438915198162328925402484156313352405449834256825281197386032437585259035282488822282022598392411096821807319277362316052296629623520910540810495077314085397568702928252421515157946439720689371100735959638739859262590384401610166177406083545251197170527249218379980396902314556052016756220523180667279824814460367704538012670568135247773085480309976359850874667115523062361237382924630754712292134145958909859708077474599047667272527193452397161423560920298471417020235856263077788983918303744300718212992278757961918434388797054585922219012685271292210693472537882210767454680817508116578328902426800542788064313286245036091940478363803515018274880245662324658082008529636380125305676762004233092561871506509862783581955077777770019641609553245866394658477439410878754312310492053005837668804346153489467622919513683830438027052992259544889892985267814814950628714187394261286491170173863411574954386704115483783352404889413388215541788735942149723310522837199092898925537993654134822901252174016965918887353840163397794198745119651903141883688601144125451385212364984354317874010809866127006352716988881382863108031732937521739113346512606233020768678629089280923064996482122874355813982754729019823203383699823396449446356480110029539730574791405631402398778370959316866445201860098871501655322464434156854620654401168511507614511935557126710641570613020104079449870445041928698235447843240455603983004863616244047653490169717419018428704872437490831974862614725156729532300408958460622887490189088957949062191542208933971101687091192786752396613867790583806270234914334974890944752078566472747737403835450825770305343926513208583643092951512860206893078344210375398088291390025071613363375099033334919147753669891367861850450858345950334856156723973929010218628706682215037102327617651548265841774808153529414213852398672457650453534552518852591741498558832494767229037066288697541710594220325346807038258396651299765581886840087318463266635219631939543436335985528525360706859982527011895324871014221003761306279847320648178702425872116527915653428818227506545744522489820559540169709719986165698063288721727030690588256579601738819884410505672257397494556901085707902422790923446306023776496792806318104871881644119832442332977150318650705059829827489075727642041965473273572870157140531111291138681964425348437795272048315577625883536162411586789579698896397168852124192445734544238951253907637912851810293039062389992947049836033397541939105463055021736779922050539790474521019931995745980094193476787308161159816038436304410522039898412674421190109731175008065621728417806050799381332760752101962549328706339508929589550624908890083620108050452492340232125599278207329539613474889529095974928757499760060628303232278671492919154853243072733771241375144163769807436789611699527766772585422199997794439267472624216171805358438205524671550560279123850579892090898501643705823094043184403843179201281439266424235804954724625480378911883144345391861287315734973857812280217679216611636680308661603842650004886196517172369545728051015275411717300484027702254320042571051141944084069602013943844437535592135055581422429626808852654018831564944895990995649451875330492602344650700566620111154976883266273255917664190270049146593182601895190518922919710421554137737916835259551010227135845052262918414724115249371309208989361346630289120844364279027359538463286231154220797573849914481773024190079547673233273666130180860825831567218474240908131345568780814717577286068936372636400126622463314153989128817487743480796498925331046959964980939991594145065239783240888724397172649207797573355559780298105150776262930446150094840443848654908402983344738367325846697643724429571304772862671442068994055635147337234775666701455686428521515976108358189110236679856797261655147289553885188765981871667423664158340668536303577538946063339827612360942644713869785741958289238548473463120821020667168265782519745745632557210059509649883139636912420855124840713268108701000897586404844512893967237242835813048658458922123536630431653534593606552413488289457461133432421625449684884405584537779388390125684546635310888123824817952643970738742434262641902105621378777981060902913437075757051815094449774942161711835649315821873534261731128843709725159308364064153304584236346065109355793163138803270726995968557508910340330437893756787579126763033007693476490031811429406789596120616474772970542406186775410381758234212141685502537385262983754595118932706315391272098750324861949685314427837392975050442895414654764236763632434293568905681852426251230215398251066196930666568127768510667255937417509133709646027326942259907255370763053518516822655980382684976858451310430952829785651432194959941978991317453701028657913672743895398703815021617659945223771790364985773887956190792712442598250723826393095136544834894603912593071354517437554601511458403633975890931957120805834095513742027330073326047097986121894894038963204575452379363769491602300700983428739478625061339077307364401168648448401182590624137736614031870717239063158958536625546503556199890495416743079374938597566157909758005397097289946611714412209905283653424905637491060342193305859918516554036640102477619693526535881150066163708668639029486971333201561381580614826355781183935131996253565318208338236854473622825231444770462644164798337678067417674813572238552349639124844597484824439252125266529516561735082858658783861635338190627214019029911661284835998261599249299233717828553695449856953688343562560013266766967974690930376723821033809518964397428146914948155997788440306794507453307175309468113694553197275269071859257723713102813906153612160719728344480675819950311668366355790427497401792182847147017671756388882495649802401515716038312886228630093067920629903395291088262398427287635677450652210142009078002954044352660035809897026866712181581651158996587843779068609401008964423842432518453913386032289915746473258026092986014392644745194148108467882667133276649648966658918345952995163424679137441107671962268246037579331366202900237481671189055227990500121866803975973079033940487998592071188395688373854640551717803766903489357334188077306314907896200959297308190475763248203340393167082745220834699041042629034891696613419063012078487028338298151893039169936991172599851852416552567191699631819676380181845388743329473144793846048686899435735781127443741142407788889620854126403946534967706187734196625473245589208059246237573416482089478929645198915064318795280850908303915746335611517059089346759973355232196411138002231323040837908747145116330639583733452347178273148851469585275241043652399833131518707603422544486844711909769875253014557881715621217313472769910378285155428880471560168947698094667928107070510756024524982512445668431660867836255083967405057289631407580225950087128022702230746554759960871847727952115277643128007056189053375194829791922695743192071533181052260531562914003857269683491254715947291038757563814409067574374044511806775482647740373877207526693539311600180628063574328340463275608091259483840376370258366162721125361966365883829272404711133746068325366703619789289867964248966397580627126350368136135690428394728006072630034154970484098493314488077762785123219611237969838842956399690778615334787653033359409259194111466557965336321374072258142269532095486477176613890905377253681537790888681791350351896798606865655504467394658030898504770871899942322553089755498261992901661835456536716924883311510760970875928326099860799258084210580771422497872840185097234937830270669014453348964060524807529824544984988562813449350812319180245040886751928215568344807934046917163366399961331962872590579842310698028165805005768378983965275350280433328547282377535700716338341950203348592975435501597133683760827331177254132486562569673939902488131840647902542672599914615733915692447714172977553691346890545035960663123506609363147193496507091359974129214601962697722614842508681927571545525037858672100102323233369409389060308235481532409904339636191505204702989516707115786776197233036076444144165838876932719279256219100894037072162604301864630633011155441904198995845322390053760175275363015419208883450286946087985775976075135323869037173463365869799252355872682068734864329613585966666110992719214547406051032026567552785220658754221116780735239278393477133256842417474753131769848466635101867733456748273760566683888502568259303084673581527708946313067613540982984385683483381788442530105590625292777212468913344026336550339684042393012507471066312746440475120187392684938784764805134640152025701881048047890393115936023210103774582120666594198189282074482245264046538206212553388675701027055685146618852182574769291736239877534539476898853619051340599555182377973697806220674061672708605277737496401788325228702262980464227094726073622388282188310559088306044944201754354271048248991816767495012592862209234690443017827405888647495186465809781091516946641614952112975609927496330627784525118783346646457457324817573210246234781915311044455698699030205685366572845962397795223595926637133472886426798334804645442695572862110920202807148765809884771118370811702578266493992602507335908419076456699556552755668050902552525482220211064392072541684638776818780123957770092451069427101336669222330498172197819402942256640104461796647926084462009715174981541551378408569553730240353415156904099567601480838937390247136672852912359035687341637001811011847412391076896589697054671123946206320231925550117399922337127534750369287932910727207493024164551558597104473627529510345576489029979531491587126150283363316705129862228672504805276514689766516107941628962166601210326552821284088749063548843065663640109765168755597414365002392322421564146429433231678859422772186051032984448288979720368818832178633363176584011022445505520199736796408367916324896999601283303705985501232636040360131960363580534548772052424691412802173159993724936191877975367539676924346440886322047174856286691864966771999019446083543606506255791561188172768169907410348188325080535310402068866381393044780916197900950679407068821018336548318701626643658075472007139683127414468073266498046986099851834484010335659825649879855520883145495562284744206033924366187917948434057452721675394745214413519547067107538734946125943058704267777215854151065488461646278656537654373603862650302709125754606205953514866347269157590865739830626016269465431304818664590336801193256509532520750213497031965176768102954433484163775152206336243736995198264335940434631997227686083244710705971050036564540776980669672572326633726117458569505693517684200624773029776136362340571499115229618355320074386264224496782324368817120271334835377738639855101641328558545665889685711337145839906836661860294791973925795980248784288655374532195988554613127502015538418038636665965539711118132873848363659149896889425584151543327264769906993506910000540742836444211770483304289887707901866727028268428057565724288149456344696265908120353938953947526074443790432217871955960133322024621977501110392354227413631361593844777190818825641654360217576413120486962401243373426300436141947413738494273096392370888157940318371256998377370379513125159874366921777557966936318708310208965569224893412313727184384824585066119470715763758831367718276253637950642998595526569173981526264175867981911835204360984597344663279282897962892667515952091837450377676902034585103504346702899082694076616082131834393495092840661545262472667544133102879916705126833705982492958199334742882164692664838269144635844506359601793391620480536410227987192283956642147129955144387950556776752982657416923972990884110156707775238271431394803563402504885395125965812383687786337818711313739921591037914168310059892607069292551802175410189899868740671390156486951222578722628887769130454485480292486257736914056399223216541059711459017065550180375252873220604253946881415022629975432762245121132813162665056142342946291891077960279525448451908774583759542805270020604176637130653684670694446223081509299062919443121267159075428914455444343391879890801097866896306790408138741854918946731227703303848219348557696727097328464438992628252311140313016565117589217313504129893170694125655367539083679764484802710788586052487780706300365556159398849697763404026152112837770497232929410339490783503259150977394721181370730176135807311075231979232030127726227615304473960641372882156098118390691937284537336423951127339851409064504187198012389809451361129988082816926954778841373293344586289535267179104261430861613351223431143870454264584728474916772711684806624906669573841018251355564207769070560868141920009168391005344139882214074781734070686473443496140041543844289324327691926174201074620326790952348695713219569850021150085323528348216870534305422355297646201228275209691889390363230489543092404144093504545517787208580893251444404459283966611112571060608353977398754527043820847398803440969217556658430673846794748343886439867272687440759026758397757271963044202054196491756786680013379425891585728965204922479072338602856819817149733856983083194346226876586120413619059231764028288941701535462595747631533033122408165161633055973644496771498971227929709742638348879126013934719087108578118538473851196082669817189134650405852143983998210437472411782627583375035170820851156082243103150526397614320147280748353482241397625941784982732240319702007563368759347093277893545693635183978816766780824747119241855972060450087591200549324521400559050586421554825703994881271799871547632845643602242973121597081935528261762723526015194781210826533403431453523856349721647530151752583298892967231897530405969382809201571477015730589338972150914867921923503328515673398967164815947284558735485302213482561250497672269051402917809740518280692157957397513818090092896411668241017835925751386003104167289429149645670532008615681114486208710384489963222026655435865676151199348539097845369740435733060285201336336170249381404486769953450917351388928045826447360318485926402138656623745012949494290416275631447928072839370108252324955268153904992583117497110540310996530442058341555878505909924592921082212651264520828334053769465704193091235663111743104422211419631461039753053123605870977562853790985825180792811648577360653735756613323766597838243334370625605208126212050644174733346597983106760640302447339975895538417405721005855730358053587167176829773204845184758502000405793055640155509342026891909644267119690198427529459023101771516574814032058714032100684800654393281572414206037444884387086677266861588629029791629255883363871209607491082896606063259954531824311086641817444037533410261833323201727350983310162957348424735447486455069923581786405880274250163045429171894057633683466390088770553481394710412047620314880256743918553662581282602200668189620255918379368596174915097861387277893750935368788003452175291363408044746051246633949108658769414036677883564974559689938103272812888671885284450171282549660011339569232500373235655732472314008211318297597096822579167333772343021384489333267220259893805240629077648883036356020658858182009119539580673093621793137177844185477794800439484211546618612434634976841267304813420088411490744424180438897895761958130049282006230200904620509250028539002780746263219368550124922456845432970779117760577319859570453562156592254600102272728922235135951471402287231155532424582128433721905863169230503313323984255586292269190484792615270323229046264857726011593302660248160368643996209719397898525630442118925481974854887289351876833082390389823754369182589680902199639128200084193641221859199270839471986015314733675349281797350634948431534077098206225820899864211709937641425144602123777832740832858925787059475671358770838799372039184813482086875803067826248428147376894996463881821524625135558018491144640979998689535258173824754384174185184264737887263253744511326449803074030270778199837387927514097418417062120229049769070712887301245649199493699654029786189913216474385668456875872125784367921395814191809763422267565299118583857401321727977171800261289572410490414152896696972635854445647114865986872048787021604164968716225060899147932661413775120798850689015530788307010669778391215984743387009567600284760539138570340181862041853294800272703120101031126126030045186987383593016012569243922625422268996275385316980919381082980210296927656306623376006059302370847946774592941334265168795875656290601148641441864543670077135871714315274446800808378409292941308282950825968846939437370737724954430446652191173579846134930792552155347536032813536604635326933803343755642650879728326321639390722752673606049621890427485406634196148954397844024883979107473602652865177100424109885920739875669473071140759587044694896452427157166694610590211526526073180474584095141978562774337036096842965608880964655207652078998038590401154852471610685600833506456837231120855955193282076196974680058739986242886178166998252647073148510518903898354980254656822736570095371726310283521021685874098201528540180191161814722151635134829163120281718062041052009625565554950274828628971948303049107378803423160838584371401029551192398561697480780257465302877243389147406225896521615765866710734508128178227852838750653039439046267283702852730414962777431428160647000922048535025939261429748740958300720651969779381145637503761766206995008249218723610397510365497677243838269588854026329604332026660064006382232925790718829945904917832945088615717613970721619661141059368426951624430172470060369382019446902765742480770682097813213072989162910266491859808098287356406229633087024866425369669337543166197045935490806429888023263089257393382242776108443052243438416656983427671820528801253497809751316540276496561506524916885373425371557874238535394421134345565553149202395981215093835716625902527115411350502201565361786209409267551209397526083009732597667785373904983731559140518893338783263384076122012161867271964204845991202999370323721243069746043400317406208722758113103482481147468949026963496293887947387827444272641743524274428735461117622442641975261899595944666630216258164003361234840504700734966121680892739259138438708285259715810826385963429766475943324508017243631180289333634803282938272689062115279462491662387387665708699610805294240423159727929115867656356703817259002175701839856099396897876117583430161770152579049271580338272997342397836501418569979117011224241520324735812407730914520278797914884051129234176906636582615313533742055814423099940527260391752774111914476877639534396051022068479575913896052315503427364149552646528797850796118951188391356890982879194336518494527610315746918512333405094119476124351989244351626693903180998364648861904959206999650905540937683537116950086211362934942901053615324765115222858815080261490493519103114503973637102385043044417179113381192252124667765316930069388772794909379215672562794477155785655832748118733508017933299819575790968044955272859799225657587269734868507146336864326303505179827752162297437709714256031942370839714182586492290816112251841276360115790410495832263616646683242255413035174735171773618139849862958924467441304264481939859761790978708976553007776864839933005981059340623580963719029251303384189547006551416728605370377887753079127589984202750642711781502258867635837508839462479087218832756968625782969819887956116226877699127466632568958763024857367053568170176629288312547712743242533037957811369908193084022935702594836669201480136530062569329421583738772733083386433670353400707019834968501951903002879830476684884783837496336405313270149864478744693441463550898964378615974231844469148763807204178376066890059557587209724369104581809301214867419511265652531596849633012361518236052769238006934587055130824240423820895386454279221252317229392941674064673282639420129459804233418647444825113553689476849684319768973434281190253592268997471040160703960599540162207950801267271181067256780396139195611884011431430435789956737040073946404489927271206466424884656781793562970063846872589779873211482725358005842023821229181992044367100414094239020304390637051664722672841430630153451819142217224490458442211677901583320714814315885895543001562573021590732075836583278968452454121733160025196315018360893065600455790814581264920817643056480011620090553491293145478291957578206317898485505227151272023647343813043808617312264320846144886298104471793399550646000357574913827727787947734543338758208115151805825462152594095963130461393385257199702525881758418299801953095824351281642934323803751215952494965598084968884531769002473837295789885036402534026350795251492232544261759274413325916791236345354289412934361026525392434583421046892274249044426676050505534174418357672121587208407228952802214970177991076360392763350684854890027086813546067557629607281604022113483008694507300500833737038937667646486078799735151292131149301670774434210188776673781767432720813754431937108679375202236274251222840640542443311347657044077618040434599653720328436592393035050707118367735771221732580320931646473973663462614097124325305667826960030120715885137454548999749738327198650347576405709433230450845083455516571946618589685741800971546543631023660018981283019141668158500043017460507428600237755418635691992878294632679991794337498820343838855600190141487935455519218369583981151121860546071414836170935280017102951303682949184907822902794999248312535252006558830233158511328642741656432343309165494065653100186314931042163718676617830575415880790986563225527501987861753340138049656613472526274251933020842634692961154956563675312822321512816478042616245771348426991992985840911264452738001991910035674555936247826787135316197316094803379233792329002335098786236448053249445280789837017728673531940965581186256082017867548379630191281900773817613968146853929977942237720683643336886020515741549621116635405271637960336994519029056504001388592721763412012945965570803169857744052849953888149489751173888202897660748628326776505329273440040234213973159668232158977498260493050073414977264608989255046212180045116364378836236739539963132355254152028847688762013306318653258479414740619244098950155467266800707983145808939317806918086585878688398512640432045678206060120071284150116480860621948301014084676095287744943644993215012867391928825168632797557261399213777783178811872170069643409519248835574254949829115824172533658613413942223014925539333444271472647844824010107489350842865486285664296048397836509162334478112936183986701457874469378951024724383132211298870687897507376031342651860431237760284789684878268054556255525445965534870892483709115353499596804357451392015766846003251703378092295280880335808658398594838592179602966375163606149676567989821764522102029275279594221359048485807420498945869927444233620017902611038259133576460470553514997974271418733529473464787409811282973314102051866073233200384110637541543191079733917503688389003637504193598585145083206678827919101611216903131012249926292383180595290125374517679275164836219243886596216780877286929944726984236931002876010715555196405972230945708067537435337210935074319472124451884926242805392902951312545258364386302729080620270334245122908076145657560069411806536555526202411498750614862912505728613445049676853830935493824057498527800297401695242478238999585622968341668255304043041609053845557620144990664646328662804505843059760027555108742676843028720460244446361046074051001967645510004866134019751335170795051196200917400873073788848913227989515667438225515060999841639826013150481585453620128505157298444824952590342198678619793944799011392630517143319025241576614991855751103800484428062459574782033998831578231611001251186684466994076559529982410563389757944474661151624540908287625278129947221798679215959672885890868839663866740555410347798570681702412459210313177612778773383165662298828131366031905763619001283642811815025678920489708485598015269669422726488311389595496703477231704194747946343700013341429111275506439931071426609502164688782164707837810945671734602430001686585722134694383613413000888195221594353180837279642917255321810180493414015451425897980804259690163413652915539051270497481123043166757422479897286803447658751875820707354143329401807401179453854107332445623544323675326586492381201225628785643699964541914576400244634537555494372669846785624845203917857685997105836262893462142228288007733147771647264329442004506688755383366248477036989088115951193013758821267835056120914672550899784120183411568833199233775353794469894081275118731172362549682898643685977726692879569218065841610785549000258847285726267239512352354311167270539570714305554696056925209629448327230833274032297936351661997292747229479888285441732725216806213720992455229278653991990865874328923209692828544499235111710997578054315024663501243197687442063065526741228200124610266705722514123227515906979003602478466583510075381142347111541767396634855184224282056360118009172101098305059851806895821051296008801886301234054461072391538117669568873795325410142179116285401538844652829263069852353046443506009184353762739123205128374771133914129117159531656420907215592290019768780422756214479464704738891069500099637059338646335130667107386708584135032814518049067377976832376114706189653484545261179142968946168387804247019921852127887043725595015882332177638313371293371978770558622970422666677333394067933711927498182435844079436859910698020681220828343430129664367432063389833005844152131703339677355350057277663647128657102048998004819600369973499805247946393906124248056701165840955495209597733490933396881495576099491276881583351448732472845618961533687539511115221193839079549947908210607172560057798244664184709998106934880600534647186432828502189871132503918777330981852295413636169612227872621931904310709585359420037047296286388457856696179348984860228501156870201501398402973961691372650802144484243707565985231746655832924452450940377740749816440688741893007536577227540562109104571067591784237194420819340046326775284487614597976770765911875643154627391877051477078910788318747146889533231587148203620951103334839070051867190919487214152603141277897865692185191652459803902865517457892912809444951270457997614272314120451519127152036213541767197209260418552290398924942456005796030308196120184174521211157614671837440640315067641389469392497581309174867870364886050705908571180862068860838848933018923851803353255617717029492724254521973856671058803061442655186066198427592693833591100143346649516055209548835510902048753398558219473024586182388184273569125299630331915521656400486647988706770173655469610064343034063353863716821735302391696702071772898582238084055259939643500538859037213625384507190141081193366414586079377133121207396044821048390794461289042381444668827421228026125353744720749657550939646682585723112314638313803229265480632185563065770415743468382950984658233613753500644698223588909916417696647928490673875793009715795681564802787903128031931245286482621059195672487435225766309154838808496408609354612180630293816805127974387195936027573805600734050794379333476293438708582130856925439541583312857049368213318911473749735610824083412820121021790612828503442163230238326342101318189693451232849057973109928738697465167135329007961343653969850688571249692304456868760667698099144597054360556538672020801360031339285720072802333357395689342712272275631462175694462245776067877804351124816055632528337766481641903355197633782868439421098697608326933743511359433244608486239808053491438745060081209721464529007497443920430408076189152625501709180484731314872747841383384999068513218858026809688856420846063563410160877927847711785367794072295954809800032981537136908301493765323819765625497916055657558278885616951170583892049265169921152089628302132537057137662077128827312925041561171940679556144674932308797857096374134029325032348861262352402427302523480185928497061892492953807113736881067155570939874897048548997293397498302273737922885177307470197499825226075710588947756522914821743921878907826443478914473310687672505024848292492297322458796737650386172328787824520510361819242917023646693344072907385626072437575510047667830186134723085677749722173825767435157606949794478891367062264834126873544903630819571222668563261707472860339903925501124103830100263831100232153281095275990867952734993730221461353573959853965717478889546412823348316341976120019477986214359309129373575465389162129897287943274672613322692770334558784607902531768570488214016556129572705396102090497346105851184172177459266288131800426386153576523432092228854607146951145562762862179396909977341894941601875605185944802479146540471402807528928975260381017049419495705871772356873697531282941619502053196137958611940722923197231450830119229614632790826176058744594036317325589318090387968667703551496291002035447504505540812977689613530745504114439638012043849309972939111248319552403621346754830172560896451188557965753496735000860298895947894725310513408680508314738768408476669058065483631078058019011776680982648081861121426085133018687894383809348932880722489217363811168557852757180959198811058725827735428602194307790247714208281835281194314849397758611558685489939675031514947616920534888320847778088929753834440999329598141003217459538527391251889064104280750557832373225204531155806964131916657873351052377003473372357048946455317356645755148535427115770669523357935239197863090524679735575100477848902628706265480699046117208532997819077330342104614595382643900006302329788185726920153877160859356177135518610518524257685128839535632342923699927399312137215733717275672194994943296749015349156200821098921334775338524384605293497751596184259321697635984415368127264011486520630839404192789189255558682226703375678152236403506912909582674460200310164747220400981637801770804408672977887156794405776103382046991606637722569130898041888230489654861171824499136879468798930752302344768242510949277910080082884559277680009245202373735346306822876238788789825870118677544718007051918553007335829263151947241735476220860138690192748148075652300647051064543162707882690384476040235024516911628081465236975457882380990858513727783771987825457362013727513464481023123822714482137417572041132413256226129012411766566658319222027338042458862116537025087428714899300689581358099056393361251625152181708836624407597306690428946580561629759124319259011452856219099463703431048533282135693149815956333295456596007951570402209609675216186809930178522631415460424077929218367940474002797066813318114353325271789761571970273101360621736719937149673224238377078089832519359130079151333114880490036851024049872498172283216847908414634004355497041092929501975489361980935678813231523483973808624118795132575785511115090288074157910540768616009589363162913108536728500947128886935106808901207561756014385477916340676260003088872569551072354869441941909005596178634393003494597313127571538532899408352041292025710123965653673699620864043486691068841722979227415916443142923807627949880269882624122115671368701301274876735518810804438249468454048656588536562689763222693510562833610191301510453533687764209411508666118749893164046370188633863082751340178412080237066530908393605437314117161470708330982870113304967951378721233863914383472163477984920219413179576667038370963998519030585595605363987671826453078998826122935300662281713303048139409257186099281940689375837679416423928133884899249077419593306207618007379443389462307997854362316600407147744436063143456801658569081228851996296125147324831607892082402810396298180521263066542431399842052964676545502123639312428390115420063993587636024421462328474113027424955773239509214527317745231089118011693371710699334522037898232047695742024180365857429169974143591909372453753964379318399992132724812998248537225535830456475355894223910717256754726264927760315385216753652653411745997736843006456863811632794787400567890951045322503237831079784181297657251717531871561979209318052176665173554786574287673499525014579200603112684753684247161333098610465528399322495221773056762442495807841927870188120088770155918094729388844666012292075022317933330919937064870384613365159134082772897831414256889414394144543994350971367198203702964093616217509683144003091932895432601584261213228844152409626618219929348035435007974768529208329691387993359800555953532872975609387229696009622686921156655973628826679627120256591044530745344059036133862546918964739195371302223968532337831290679124752572774540496910186063968158619049048249239573710275598118792431072153424951107626584193685283878336920026928218484406056361478593589560181298963815864063846387572217393969383231808168783437188014626626386254802011018684362046461245983801263548523177352916707307127247237468409487953329698927019806730847396305773697069650808734871509270541277189245585288695423066300694072712497516562381819207443042444544968095560223476561416473772649887138433605664565453228381607528390654997089522132230871742494269639627555823168631964873933815339300626288505545245184918251473133378053886277554451148602145041753548176023270607584458224407645163018740112675788498405659885608496549060826748318659453860410045665101179221427726470927529887067392453212003261720497240675928332686514183301412575634471226256285297028540353693688622948725401277312988825163183643214663143270930640006164799037390245710845985483524407283315039286748919226157583419757605569177727926731871206772759563506952917806719604721211478213597793039554651955017308181114016064242516437501992613437600266534839764030493667015636777053404348961961653344994339842522844073967494942566276858457865538362557952590487723192687686369504232788302326912157732077453927331945277252782242256169335935104140035035341422232968595456674570735081945539556378320781626007937689144761786067687380061535363399784350415160457588747280919320472960866141021657972799554406008743483704476247860587620686047686728812039679131848340600251091560438376564100070992155723731448992757612167873457742654204921890915247422793517796775673304131950640486750744856371141840157096534832168389905552062190655237775192849298423748736039055765510822143066296357241220173212874436288457840250049794053736296781756020878843647464412213643802155836655202911940848519647050228478546820209444499539340691437875249072421035268273162718106686346283619169672950608492471732008391975965770268320013744376855644894212939285451207935641277505342167232008065576262415837651416818115913753517210867208570113084830387704776109910205451990673817031198873441124956520415254544983205629000863101728533994446523609191286344842421291111020285085636557013146402498935287289817773633228720404915541091595954958644859614931238207057311082803631190029778878654743687693484577923305827815362440797798327112328076522821020063015582433763392158797552217570404153191526708678099901903166157779334099050290344724916542220091392096333446890559768197399636904742482417476797481070525126945352144062638483255404393995859620041111075117077499393552164517711931417438125782417786554971204981274672029732680515705835000308950066749209583174209023769508493105085321562493717694082745386072508501634414435144858866498457409167888547031749213205978521332795836534800009829909165037815379220537050966360922636506561741839587652100819855400190933486336754220462441863067363783280316668027598910643245508723966063015689362432712991940892388555416241924016778268032075471990928057593786937465302695897122934078393519538589522787674255802161979812871878976601628270692201308564516335304478942803536417298202586155767004444176837409001479804226617942695100670778765018484877138234512890961737013301825639813030289304400373735774660862792595736607916870517153697238002484701961533251934593086618485227596366924109870165369569094686949601712693544044944064236539832172294167417317307729996888590757425625847264373956019432615095686316812785286962278663273497331250730160333003734157421677125472861616885407490916097720633124012084912824319905357068233335557745038715315792882786904735643513425427234382606174552796280177181673085435464267701562329446432176665619707114262973671823564716568368183510313209783570703436283223291974418408330843458803074377641090218000789434344908254227624835193425930925967806699858297514467947844824522690515742920094742701451187086299877042930815069813662627622905949290161781699709251849148836067587591512259526290723664534145699048379780063673403100659475361304293875221299201405607992338065805681590129607645031348221721578585152011158642088011884794005873423091998808834794214279027718533636913211000409964927379883543131132490884737333372130083861506516850740084320005143845145837016967529699899000670314989210334672168158153250506236830967302537417079224247613471211903217073465465619402117329248904533682567951092251608807324791250628997109842572082837703474178276582860186274507528106039515181390700511662143432512338170944229237216870193642318886420415195937756455305423371405575027901708236937556715117066321142317487632246113465051464761027648919562461247615733745439464080424631067271763083480334195673571064428249756871709256198348036096417314352701498653348757870719754631521852059659041027609182663610971873284822578775548978444369580200388086148180824422984837072976425238337500975433738213921983926211603261241434728694792773489452234857224842521391157186509217146251250723160443566535659549459763208410911816771532748780205738736817980884788974976390719174564093134678302875583043395553626251684102232370825809540765830945589872538920379877649339236948712882338520576329329780755041273491171124662329692155065864393910835662535349697936880788422926981962062312957240169133477954579101272193093752920573825401016651562592928270989015091437463458933700867584570232416157745086794142400766653063080995092372191380259972191402203906124147868073811286554331865697448449266318508374901211406388593186305427762539943969721433205996436511357684564794163003674197759025813193744562896244616356175428144691773730383633448392519143621646956682574794930126179331062718218191495478101655118471598832377983130519530230026112587555309270856123087534911051924460191572878943757652386262574598686766521491356143657502812354485456396455924516786554195364076970724724957112718487187015007537722318234031789376498748394775115499030527481607533016954504353587212523795648027194289225846411211612439098046207068694664215068377637897148444014941493270774112016907667440864312783053747815665121188726989085194935933868394169678020853451996610974384371943990343733893508095370180097656960086257044377124285034455954249368926935683916421618380344398392795854373031875368054704235049858066867488692818058695621544447442015026166604697065966524368987354047875603454688720872884736710203462416722689521195700651352102263710116800800228069310585899684127112679143387849976402803881054429742151877931388156854642808548625441173783699366847108684251991545620621942219628092940840387085736042355603395198989193071119205950755469641874647201423087408329323228747826993081767621769171474274694139707239300434014133671657505992899685110824583417611057300310298062370120389112493384208491027624765663950829471050177411350348393458616167384681257315725971380571117673305805851263198786729057965358953097187809503283712865729939450137664321268368300894008460390727223826761912169409397099866420416136374137177004334174468205193184648861069562967321795512428832202169487060564856737862427953164759560530610282181882223759420641007521882835966955451291434395596030027204538052619362787317761573929071338317095128824130669645691144722810988082150548054181463286690033535401838786451692949140254666236936672572996811000863737147160012801588581701863606287335605272693816379493119975963458196566310228238645757906899971150679539134019808906784692835016283896648069379834241569255015846644075861304152676082387584767126961630632651352131894095700844152184376851642323850741423140966115438120081145216063600203548494608907343025019471190685456086038284939843919570474505179255675002294639425880392545803361102560790494678745516286042207922080478722199522723238606606071726485754407695635986296570597815963323006018295569155471272795270700511789252165688099658230531419510858236075596437456564582416680110716350667115494760238981311363618575922310083397273083022641623940833777253173437472542515623332472283366290733116204324328833063246648122887195438536931392192814771568356490955729636164635573136275379771115844537752899585608515348619400266179184450658859085711859418309846079547856842505797637244654536395210074528731929154305402570085761083472769448058094447859186880775187278424829193883891244594685800566201142503751529050796421699958577316287523828658950017060840040527742127344664075932300165829133086323461955995022761472256063076607919447482931302451460347914598426418176573242822513432871874792434503538877878099644216371438958909826316358615173044854682064010094274741986959960223254493567611832881390981782717395132582057893285782395262814957931994496167006542887744175302095716912412524195316360084344705338910729129453478020891037408963594639547179921866721175114891537248361259568929817652619395259686661289301971133008544080643444097585560371732186575503241130273933477724089261318878784358767669537608242691366744242092713412210481515955212551491541517037396200943492796407383280640879540037543292732330302098970557123732704949532856262715325738566670963963733953300644241952503777018287055848442578587681808891928341334243980834125709912026728296119044640832881421259891451636430977234282895609728133416227423345143768652193105111031484106137634297559046797382669513993045340683756248806947725403541067597747865615622178520966325646728290199196377006828337859596977858010813619469295854524015353976298463673660630334147802863293949585644978033438398691469656674410961264131559318000650612811150129219461695561153949853786135862750510244367328292608925667823157956012220982642230282911629174889834620200488772605559290533945777864081416858225508396815865023845831739794017196843164012009054036255524101401012051085407781730907753936879383300241702640616089016105761910636304410021102484195649280211405598595577902170735582530109600182080545517116007284594081685417400764028814067529527276752258465943949740542089880410696386395996845683037426854736149182065518681666215493400069167306293965785656838381306329348772148440884604772225188564654900816754087011490358429338138048300840158227400199038435750387001931226149864710477964311299945737103438102402337266969609573034313738056795678720002825858646853931125709703128645347823149583972919440393303081271620703076516050731358219107539805602470522244361017698114593313270631423196265735658183479466865625350348955417565279171738185669559256107063180698719916145267539560076453205594274330736954642763677941340319123937804515051077076650986566069290861878041842662544428308506835728655252894967230031511727584083370137660241180111162844276379511040458686607263485419604604892701890868436963795997841059234198334558765115517640907632931363042813140756825991411528178006708608861507622745661004446646945892397797105648748926817590140728833179758063613171427846642466022288754555772866890718152633994309321532800766819559509028371252058242951459901759874473586990871287083549835268508957459307088080952034005818512918460466855410491968082368502210143103537230682723688404058483481075733061463307324796096224542649927283648365931775322154685166666073647184716876821037276214995391413487171611658413996450892453942858057650856835977767294541394604817035157550374500523780976693195499390048661151773756639149610312193269651218900496867374128501131133157670059838938553037396128793258612766401586104127611096893660069983340684129944674026246408191278169717824903681879966815976466860975445140770930134384921173104021991324711680703541575461705958183600498175166176626320789805388327212649117589039502624081645510394827088797497105866538139329661332856333384927552008366332182632255349614423476139414378429107321223108048687438458339144397894787080036320944151240073520170040324325958939459630977164202420885318199627599639026561866928056766944744090094969576458584559134186814901257424748101693286303762016960608282047553271903519817349348906142091813976622713284355704691742993192816971268372429842534543689949206334054897139574000985341880072787324786747483042037027182876667247384230186509409926620147946450389568039529692876046017128240413364766146953092770168479020251381990279906583298978057204239204231707678317964425151365689785551629267680847799331454607607304041855102091574597557068594725311608055410196673115981469482632050849016309655456320800437505914858758618600278766839679112289288280333014111669942258290459649193195241287011871626923140752668753097364568086389177988777692214539772133568318900999145379360085870105638831772799419795159953007354395299171061253180298125904571333991643935775703175464087524142032648846097157785822500452602779392408617747361089570099939995722745708936752016999131579611199783207137373171568046057126042723274167605355326993475637081618214090160032267795774231636631846425030057795277965204577220100752104944785602875019070487733707011823743032847548481402891805876744035366523109906183205407484523699470565706497537744929077179865795930871017379816159782311620962580755352009791842630767891490844462687401436687344444389608857983181751297230864976650658703022539022937789907673040615794692346810808972098894492258935862446457161551074454031261899344084947932491925851229673296872617115606880817734324912477649544289620074333233229584016254993350038512786758704229834291579994041883711719629611685038634522109873559056609172822127207957067297577369702283787053340781550935076112601154433737218049670458705365048916887053422473917247101495299849837974590079719278290890737793473217410965807634469325633202771201727344584725880391941853189660002651115706914879686772943417903549894871921131234162270947647288983747645090225595136127979933416761921619215986416579924619070967570347978086212343949153167365407077727689347258342540187309378899699677954624568530783921103003115008228925943574126685708347359768552422193185545706514583645814632359611182074291663785542913922828011618831999704024394054442292595429868842992538914851447995451695944234721876564857203108816134101761122147255437977588901557932307288814017379328052957467804505354192749029567733872639743372734854211876957870734763676904070402949947273397572067201790334201304891346400269143987221737813236450835139772701007973388084225417983290076825186074610558390567558447411601643802554293072959820612457854949835079083343700853478168986881995112003339237554643130915904206491697906106449407382975125909718439939269347433735103810416698594397067011161453257426778995116712236442633523187271025158974211780944498294344127290389155176500532321006749575066020633614722455212243930595572918704381745404399653165597399676892063651504658663101103696908533887016952615612830456598748029896189799368516809368111317176450908112339256475316943318566820192067859145362411035402346845273920787669926788310614386016671826392677701428398474415542554129020421191027548323223401429310116890096546649199284445555452187976790115524025508406781985323494412383366295904756884124554790329190589749480895415719450350291316291744873193687215320623381109424425190439753378370647890632978278541005331498511779830606977329871107039084283297699752580226007012713299422080994260878933579445031986396425242912874180608574803742911612385608010551359761516790722160322424751054217432155907829469353395332262547024921282078772494186094736974237619116835066908427013475191095727710732130948255545199489822568537062528470594255942081144544375050346797828155961307777643903924288206543141941540179904843221000564618904187431315727246669011168268239857130468793363858653935088947663566500059619715352122589487520679813700230451718902187667947403230628786986454232549460746264750349927133214585835348884427303449933841993685799946115267772534922031181627406303527346010039573790445742835395252299945213255237988180248355394698775746665038337240416551646927379649519116605718049299950366978003670367089804216204146904642126535841164165761541011719018825931655475430772442643455058939542604238119284378317711154688674248698287961954979107717820443024517916405516423290914118054053462764180923690696087150877719792254510256961169355320835321665934421489735744425003573527517321100375384530085500497704260111608901933305864617612005499641558623166029363067562223549578037113584100589397747647807907737916770573901550337909426755275071649376834792161084576088448604593662628769630603257396181525586936653054056383928056898872240848771987634668357391756366590552411755034131740939840970885071711439708683702046083106409344264110032191575852374125533588708850013404915984006369909809192406075102756058950222431607487648400957085451619895285994921580644859353732850022869916510799876162566423424120390622117180580260389604080757156873655865787403829873692262122267685803606866819599886243324010790958384222388786083325020475936142872369595037448053934829362223683163141654698978540499607137649256709063802393892167638791495138978196772019995922155949865810103020062671376560812760839269221684512438593168292812756385038012206583691753178404074855218540339614285331581162756738729547517689353696407696772021071612450018323522748548567873808206160075469848539110577228708874981511887418771745713648092246746539991601897599714924397023465345774081574807537586851933162799137962224430317416823130700736286604263508537632752549953641429175460538534083654528956348470231894319891879708474375094484486380004525482578415547753756694837123483492824961404741305701242855773735207722039396675263904281417169311692568189743935047833680172844633034559199011778667539162365900081624964928918376550304108114707104573964135551922834849027143126644381818916196539726285211869254810529330186471197564258233826191866250575538889415999160365014327604609199728205289563382866096173054015527174807459492020185839736836630824334198897994852327324832872879221258782516069399653199834911098707913081148507302160068435338470339917607659040098191991402851304437958679510795008016077525910417955390335176367050719734475004833079568920064097103929285056710831610784482921845662231684216134981556730100291219030914443525618503561923860751390934342052412549068272947851762825665460391930798995571842643923558945449704114418653676559781594960420892174158689800145862368818846339010040784367503322889648685811156967300609552941678006794054317673894595186051640469393344927436577772991584856195932293106320027816579607864408161504578853819691810593912342189091979716754994129850535117152368735824472912172816375499249908637335551754513605356212125954093014273717579226446670645956323734168464730665604587805291987372231633003041971282244581566024460149919816289952943521657263046150481826660737408826233027954994798908005832739378360917410799495824790612750553364517420674736679906364296128661519651711740860541368594415794328726148051505009623905188995255049704489258604928569945084240782926128296311938652388485201942718049292359126496805013659458840416343301061114030797959340897801010983715766303556236287556951955880748418035196371827594253474210333053806378902171713448972275953134977628814684890741618454644621985494935921726333953299610412033922237284569289173606872285002937168492992101411249969299860215889942046786299204552019907375794276582956281159204947074766895357220804323518583972089864007230125665483984570025643756550884502115741506581795949629690320239715304296948204249998814758476995641423576991827960430915249290339148615076038477420873783168202412166180462422938190015664793835817528046088559583296611968397791087657634639707918794782867837799873086054056748183166895705214893537430219136405024700285092190649094280181380395393039844869569098061918057724717486720103697690207962517152832315285055808333534861884602523117770918172248228367871441413863594927941765263989093207511010750802702294536960803854339341817645201548998201340257031187066966728017887284616074810688861372544422914882225494869753885041504898110542362421263001263961350940734651262115068955238844034411544314782635242509815691474170823382789270271867120905782724151596544906895913105068849572599722394794185610192479213178415898204225367831639301956867549337332216208444806305325074279765414539521739258259511179897935726134430508003496034536352974272349744926156969374151279528584947490897167000794720008439072958329615757987132376797331022725430856872285168604864049591712607708165477525993842159593777542617907395599505349388009108675208912763457781483498796892539652019062739804383370443721413378070173673046262278646988824027456197655525877784055008818316727894306421307034942544743749959035005364572677598243361288553910034697384834444834638517496759359681578942906655688622210889841082742946857523257398706526174185820782192510413672400915699481847155656504762048111476704527896397409368168308403101727842805550260994792805464771989593496715096287911931597098312125294470591761797975467849084340794113535342003345759113919061080470369479255541246733663030702974077456230066796456147691235087083279301874480917303037922431683653318375066095318563957912446290141382110272159389818362557678251341023563777395249543035953297141094442827228673228177853658329003179389997812054899123498097300691792024405072823889047607494228827013054107603730797542069631493409249906103326078075644755698010504770252188186342791201392126525070272744999338081190534538417008099367811756711956491325458003581970161416673601334132722201409415441289749493667415597659846599915376685702697553036717395457183453853312477195958072802996235612486197572671683931757827173765304581169896383456571379111010318462740812239444647126351220149075359663794341702321466183111535211515113846047183671133151523876154725016873077604858503481901022758997327083266699111724545624274166475495068851592218909917214136766431042462180412856447146094643064188677198066046821954190643658648811479281234994529581253065138127581623860575062175454904838843312328352588640782524839323951347153217164042845179688459186868646105325328532036311188749072548691266429793988171430416636290485774880558919937693187938211814743350417403806080046784001219214158923121079549795334833122674713044062199347585691169878704679153271558831066546220945692974208486056506355022860848209856949362019529261564359460601960654059792031452183412928615712544151142070931165467366811463017607283662429038628358317607545666092307673367984607093133090148301375268335895386847843115026439729076225575964841626786823277863285754342626819467343555205897949378680832414276321026185805241601154982481929916286902425189324901485279506134328927008369233755976835793715018499251017012977349914409215409526426613263835275313832257297027597451062743834484373044424964452790510222388929396145020850363723132769037185867363013108317029675421411390899269318283848772279712198781475904413992307771141606080824336821702766273338128068515853195047295985535259045652458413111236292078892961306212731329603473756909771514412312765337423934946077222185233435219097174815910245802168304769401495308753681131901243318155257943514655377361517963600048477420399306550981236762471469554691153977638580425967148227141841353741566192170224468867500045616991623895805503767970513144771507437242890566962108414258266072832723372543485016308177662389599713946481262468394997116193443526175800752788698029733019460620068260540488704386967571172683318945017009467758840335063663480914014923558432144964750525848434334830678086413391240903574835347197561697886598742189559897516440069639752096911658636664147120016224301601355644194156455936791476464443175688328926100220474814751645618564521044232650509257766613070676501205472502875986121131019582161973427924073201443486994026680268267187650383504466886744466460890260544346843503582934066554095663538538654610584171053798805338788599917714538831252516409784901812747913751007235945425300148090447872747631171612931982981280768833640270453401662875152603677413896400651579692190893704537487841859420394446016879635918057401779737290093866176314862876366914453956559784020525151684674289445556315444614532403010379138502155688943751403920037090415186778134119620197518818146170783543502793577026160431263604749204398709103649404030694709260391278730966110267330404867478908381945068383540456547455147488088688691700666817301987839594657842841079471113180908070725254864479580257189990282711623194418639094671002078452969447531102004752917946722150885427381859350061437124696529410795043690150500022560211923217076606730966163867393093556484273290250180361481876157629291662387776509976059855430130522228355972717296712335246481763423162122002193125347253074930455145703011047625254486481477248152398100299167133831596192863337419420841960357937015425080650941223078590980768135776118029642699720456333157294181821983268852917798573445075267321528460316096436038849367949611417786220018959864195405493311215781421276990355188888491336438588356702882688989111540603380037070499688680087345071646461841128248918092181143955491502978722781218256711027921331452011403913361131942718377687173180984353444109293455678191528620468706105544100129025150968807369952016233201683619440746476643955159471829426743323116155520521842868510932025039545460523139497438084988854135782400127671426502016188455899866301076738189685145184049014134103909951744967066439321566060343195785430442087823737011757912599833403931795436813127760405647156706430559240679598180004030673833178379311727115867704860356674269900817441156072025761818425385881931655557661239293533096316805497654217819317878462747322157787828636187567158577372483354646052978044015187456459061484303255431394150631437678247115923738983548929350708972696076849534750394113957019949486845300838491757599654466227996856901018342800135471946548075634134361322047753195495167027285697151633647287004802495750434335615208032933839793735230808259349114340293898731776503224827533616385619876971048693470373552560997167102755359548038117601026278772122613973996206991363449462243327817430875673278455740730981351973561785992730340263114831441609060903270332199269653629668776699528597541219196326354480050591272064544756794084277363709691285975840567127645009731284659987258195647850299307817301604519301574683695425342174937562073933127603029965497078992937060436848502454949078904746585557439796418027135766277979117108406527072590956662055250730004908903473411659585534999357355941533574918301227811620513430715254626899480375208826148000465366221601219878192722432004782431498653109992124697141696458091813939381616240697484113039223982929066055489874015377565269431960849918597725146712493304397201965073657651868790617266282128734960122574468096475314758987338043316918983058640561607317823148943267543223019401021098798464206637326154981590858886833749497321707632419966621160291685581722299076112629163055914674916222693836822696544160638260395208402428175471934754308619783154595588508476515030307952534258290419906166749391780049831869894356694774051772041767488927807277037530325482241023439826998455190492296726802212609005963249433495377929941827161996819746910397144881785172113519609949511479549195536541170135233264595477591216665266383714300037033488310508736265572863285807808989583424797538746519162936987497016088464063632410401768298526535196056438448684061843475152212084673713542100863871554400874412764338441979546718920028454849716831572374849553906461835859392069025497373919351789416183790547730205950633327270657101333079529923395232820370770558744978209741896390939431836220216841823169844822865525203637423625441384020476734998175127045741177979578017961920756218039214633918145518413305132788387607891868703598247783979278852590939238524723912640770504874997030087458798866047940323851401449440440394791997130328340422556838172532872225999990039213526577813049141555245920935567813765222645745044131640389950615654575489419155758734890073499536956816268115632061750372882225219374544818543830844025815298968472574658871640003422627721041503046835227087932431322386733716753163103800160295348591495747131093554192593217314395944833415237578659873764249028119207281400463118049793419380953817369096738415996556229460119003486158170561687931890050148230412228544431052428695537557714338079608574738636158965850478642754760515879219170910401514480508015282879363877424238110979769893579107265355583939574165676572774540349492484492440906254712781156278940384365709282109030836555988452604242558653230869731378633645288798831541663878520292908246720522676140039821615595358083971210328372128888984737096328431439553407361058752744540025028632686718913074347681587768222187122298959307866267139734332861636399691857343277733286476040920395452248459881489008459905781624553015048873282201774192739519371118332184815386493529828607425880436045768454955134334245712007963261111441976942497908593075221694105879907146127611135299332582537949806747431422778617187138547181085879436618858259935544066555445404191318048369534069597195967909295210262303983240418972138922380454056423638880750071664271685220345861767977486122785724412604375683679153388229653949536381232984672635485710774166684107141462488438699216370599226831690505116926834956829086738101259476210425044303252453128676287106686480213058619927368298442935475113324863479095178966648788649515295201839286546021262580573357061452663126375399454094665443960320582377935727534661386146861585532179608723164141948749595418279062338578425059101388143641204145441880260562054127035087824306598938583107905491459062045584953185812123442200143470668478820534180033903818519658858462121858379226160200475056348688190801035201688459992008167441031166910099415865922946839532526208903460894219116756279201516583904702647025483162009028963556741251248756590585911686612692936179646428770606153923454120983108107757804236902313798730252852463681579545422607929438682627159189307418316864224529909997327930232867563007785905520766774952357075336787636334749485138290339952513344564215631285756354354839802899186047215029938014586342765748069787460558808032828306269768428204543435357216155091849006186907604369771767785833540469706324154098917743641041861404749514132126711124960941531826948660521612889830627200539208422379953308118400182360919859730142160724450120216897142129655175520258756962679760922116262364092648511514788843571727225277436041463352714165648529695971009454180557800587833113460457896095284148565994139734790908974785166482741220104958889033768265544182832613269009041947367499545208651566785249711106134299381532362280742371716106194620208903977062146396640558874502792693566450406640218512686917081419233090388373711656976664045740033892379062513430061746751857959776520580889922959297283295144559216150191064967281747538086100122093895000652758619203926167002155459060723533030964949722238997190398778178021769414846439311224508109605154991774664804357265398279688800660716446957003662824255190079147749460219257643321180761816261265367920283784106810480166964363324809043824488735260603990118593938935777099562360383061436867038201952424060939147570532389329535386277005573291651420474183425877660709970966038453096704585983904431346464584544871531517871303123190380392348553104149574968672655743965314209408853883915965843919354390641621457967993503529890573167241782878340691215738436368177509792054771291977980895918008051527739992284196611492011863481064813120652031806570750457770058676790456086596262948405430811198480504465842756812217582666025366301652377222368294994577182060307922200185152714535773710714596013541650948665902816176112389432481872409078619505117296752518392040274884261933933705002675935095061567836750929642304548397628924741740039164197782891530288454382823010263499338917566479088752394358038600133673579926307049141641431369336063733241596334970496191137382888673910508577626723512013877186221588466184485576924691544434431646860904519609789988323027937667763180641970258034121890195497107382976956124084455565873970329113245473539742749036329048235440411781805326861190837777601181358133585074083746719424625265077693895447985651542084800194557516032409555988456603916678313350928454916733190460820257297212686213662421849501225112864871868960982577811346136090808134543016130697462426623315783389455984272100641007749328292492137155491918733970417635447571976456781097642540301359355514322141061504549761544519698444629697413219731312361990850533545261283691589479329364856615553569289129895653104500277060798041134037299574269321880878174836403795477095465331679838596465505291729242585432354342152157434458675592943843351196384427079487503391403281094024893558523160201358618629729475641816767869393800715128834187621703748308775606488499835646858856404284284684965981893116184367364469501346400686373816408472443892744064270811733329432683855567791484340854887450328729815989717431788002875772458976303246312142388823105887871178101571856633410159806509197966722656907609145260572401058050802440734785052828168003194492981982999539798648662772068787365102141383514300029821929851180551577841690856543324466648918602184857927101803410357755944317260804831168656311091600843340788684605699416124055848109023968113197239404143538933579184904749971814282580664642351139406973957167070281611067098386842471358491466662673233315941962267869097510244743399685684573562234855855999088440262304858048628403801813062791000455392825587319479335604765572560689318278153203842411108395051634950729146059833990161112728380063929629101090756880856292399943793160375840999536296509839263345218808057607785812695870205335165842690948050789728889660484962850723417710125364757026479425922104172984270659260015402262884784682262031845082459265030745366047432066870121036741765539139467249863081615864221878408994150557527192186274249557272641580744581244972073677661657050588175887182772921380252305288896722132298057655774888559546737344433008818126171837521211977975564603070401778975416879522918335417825349440020312038331408880519815328792078041861514663594766592037964577057399685742097355332577860844855667747839554116342392663494951655955220082372891875929782285103334567207561633335259409159441074941932606187878890547662510755508140778137885495916396370901883564002186978001273381509906574547366632962655676990423965848868975543726606202872952386897645545985020211442662622576478943436570514757995903870584108797163229323979644954272591262924204766057955153346428131250513600658230642115885912076092019043885363534339058797420157029040596409000909328417842431885698167326674243575588395304975129800572750371951682897106605205463105980352430286659024604742433984069908804463954652667675414937625479869401330025867001821698605417804696299403504684943021647742322389507945579382302946361869989841914257345922618362185241636111642382140657874844490972500870736941287903310688703030481429006519373669602561326808742448296641783474813322804792605451311721363584371137244574273449262139404270871057742946007757777279207993176419531246279250898599000500256836439818152951161421325063095736720694013887326528626404780107715645354032599163574628204176584291871779875681236696802699984745739098900943454127329019506762259141581838774669808434685094852152776734281751559708698574043580888518614152273558018388419306024684791870378350859512095950422820363957332337557914712564535844916335413911574966194096103664034140751244834537613197848252992348032365681337096162173414593601855376155599308565118761379593981023634663248260673569376959553642990318435936068917144708274476867155609266804851163066152464546523595225519813057807915149336636233970176766547460295868382868320021925613697962369635044497598468603638992768292800262084726116949254898714276370070234342589975584978962851704296293963365697902030739109636693978784281982859776614467834321582751075747826234525768538609499126620405321746881287113674503399253172656665325340283187483904472119390920438400562920489253098941096057499657559190947886984248057654770092438586027969845253281192652828424439601962976095747365107468036703481652854782179074762382846779639041094388365040673653653421994341875290402710936438607134068883178089786382878737732592492153914268159129517168924244836969555468349445482441897643096657085188478098352900509758118793356082202245567727321146012150028090386420461097224495840059990489119737835292586853735949520931989173412443804091573605841007147875961677976073574647637058190433598493261436984678103408939272769663574289836920232593869173315428271459796971825725385828530079605870478490115643956933291481157762277815396257349886813535607550650521029343894755403951380737920743628731515484220768080983919401995385731226082720577097353295999943719175721173253072615842652574176968675358086836735176462340423750528687890418338144166363596409895096676491771470935735401366082364847456840562523975149579781915995031812900268808924574467200241513707284158036953529148770663421623164770314296632304162369531691994789528242268972072897883326733007553291170172425933244203833521336090416179995264062864570126596447908782489044266960146916796937296792316538269234764710411822655788701340077913561206192615221452299396874402909238644868158806695514123845127317611112332116097927118887820231145832335844261190984304111935399090392587700053791972432736041137307948152807323639091375502122828011816866642687918982971904758720957724570800746656110909680136320427832285823345118027299384045610262394482883715205697459082045139337820391262835402667335574407375618446637406811269202495432512219362550583298385020356211235614815019903165214397417680350216588810768094831641060906376479966009085917999037808287859636495997897912649612146247351715498281981395383727744181435231706608319922275488730903446069192051313865772512922301962353816854493243270496729437350189162848528817329400789348939743404169212702788198729667892767609168258430483889440383540582116505560851392954519782845127703833140007189006308105439014356161974812798996553713847340104683354164415240598723060554769768987626535845614785550217791523340274805861662396712135790355393322256096058195286651555610847862338844157242417395895448133824322997779928526236886251853041120410332310680872302496864766286859387153582810030009270875485090876517841292048296126255541533646576172851302894003537418222587921681769904701221737928519998548302836798553172932239414839005838355262693512251303974944016203535733188068919001890381470976065513546264703733425308655992415144044870908371236457201703771785860548458596736647631532155240466927087122072444266735117733985928569204343994836592934397677446894985405084946196900918966517737367041214291543337222012193761784219858346208023974032710956296535756392439608719892179885363860039965304437990336626102908776032338235763931357230019859628326781759886979819746228716559065520186659344029003432080709812650617277940827163950807073605064768059724452714352901779952537319174023949748497299023478626800094031886579317518131763891246026680234783617565173495043890990483965447059163267144520833227122971861540626602205367569926425295847034486958706923484669575071723017742413896160113423854227189674156012774864451390205935415406777897422976932110750931223169974213298151317611427470725646091274112352886854169777223908363183438919562717752852123637059860329548892751819433297037132838340825640173302976260718929710187453661217017138570348204943227762313569609309999220842301668708655118441574504385469334424780675098763993510071903258484747375293900876991078045361399918979640957320973312398456319802429218853786815177554131480882394395239391619952292049109526023345232992978549958577553124295186379342356718062012729236288698049927646153449471819703579037782273388641690232732218490614127120494563450569510380468966590588232265879868840090184757930706463197152716993093319120665646051097813619314854199115230340381495814609781414303917693371150403836797841798843189566066711802015310660501314790537652935595138646448547154326316322349181737486738840282866728286724459888832264904781930570050492617315463090812565788190142627428015815927222849104409473936897361574716532602711365912880695988295943957552474985599287900013380626020689800491962217193463152569056429164966172338645628195550109367534742231894436726676075136631856122014079465110041611713473261815398285522848781126673836948880961419917679590074180564883734540955320583603232893739643756963048052591001085512081040706832082153892010077308104893367144011433249700977222282184989373902867198319548444100627550386261447146725496502955496895853456581213478871048905012271059063590952956597510999825060051056531002745923886241693326176007293622744080539159043280290819329126335504741032762276422017306202511653361154174105476943359390365883021137298550073683959374533373709413063566349999514499939014667086924051786770579872773822400462139491427506835812079867437722113040499500770698490457791022034581757755459096611177901973671177967741731157915366494518432897061374008613053186991588318977499359741213991858093052844628872651089195220432222420573563653544337166204148830903732039996018547322555289264347259562990979706324966360201391728794307337862875879132359920091622708024183411859917278362769813829647442602866979677814095402137429330023600305339647499120777701170769749643486665312917748047896544223597975837623938467665475981440345484833608807158093824020711244433974142649800579570904828982331738328733298212062924283544694447518805889019877976226146284521275523932855636693832655293757445655846192658823590820905187024930292359459527467042366564572676024065082126540491809417136832213501410021398531027852987860710158343772003073262335270879787015730643804220954566208337883295443978709628898874184329078001104411169170678457491787884100295879905257928390938268696252577800606348148670297174363683022731294614187160665003963225552532204256531353237402771646221936391160210774778836820089224574501051829257766843047789740190870580244548294365220121194421863577335532602073803667703799959565612889148020836766116746006181922824378800023372723538858472868915461531806971458249359368512684243885413599407952171618887318806872867049128127056769875839909562665240913404994837504366696887475154142960658144933518029852741872608482966457720367101756508877670143002448186640841278912296795529768657588768264683304177434165247938940576125384526685363919173280396876518146927598659563602507997419468411454076345140955168062578939461703500799750357604604172253436962488610177359593401678954846661745602709728957029236233832056405224760213395241807373041848990059892603849671458094168208436476299958089069760796952827646133100285778804108352263505763642578203880870075116518271301340067490292894676600678892481356506156201494205202332058984531506230832837126500200165628510717945475103978541207086211506217531335158911184693042365165614594019652188074095845005365416622567161669795362634499475991506209100876310004041745584541972837411179863837837561837968270995136670297935046826819227341374024190823800646194082405577129241546012592887470455721446986877644291881865232217487676858001781479916485030360441127995880749535874673953663721643621073689407832345100460093891165894638722423461611795155039449498382002134232862156940334673488257134135946395345588742427931287109808444143599656057943467206724686300455974370464520363350138340127468596922983167971879470843023718402364668099190308634451826276473314911053003415848565835158401171693378441885200401897879545157158933611865816091087073255674607622564993262645841132150372052207870614271973610120352568484745114198389209665949285428349917399650765316401001245630017288315860283817050023260941466844803811903915245568799575398952176146101869990641089537135414810223084320525113794177655085727833534077315010666233574900990432731688101474506219751828567707478274275410737137740436548621900853065643530311833776333579512126026912178691058112520423448221720596165251199392929731248660779034266321484358783562987593777906643738417776199725068141602951109248416384428782802132768044313373868070534925289864077347105998316393931107247902954215164760985107435313573633759661994371843969854155035683252879692164044766318092880064602981709319085315963526785479254996498285105549840139447094988091196164577698082335325223202340876172042087832171574663005242177687121432608709241026716525543483385677768236617467650764211078996390259671772755053688775817094546773540088826488419371694270155910657810911471073148998150317167363414874633999877690587477422294595498153815353835472197242693338573590675096946768523379288461808388828143154629097624478368315977357041606735828642991409812396700281557419314040234512715332849293954653802814418324183744020196940277008560834713475939831315791369047807891707736130370777647180665922380917944108970667370056542354143716329421574645253645418683524210181315608679739690678916876044249455772700708142541338841380346967373837082690084540013708515191533456780332534148078374681572042978749005054915510468871095617971895214221074784292762948201002453054298160367441895592124578910642632812676657228357846705029961881894922091129848110518610150816906814978015197208195429326530718236717795934207123057439997413848459011218975017711692577747203967069435445717526614259379748407060293596176043537587586594167478632632352923344844824286750789384536737440597640229821663572837456464740666874132316058705820914201904753819527727983703508395822562235768739856752841626359471637899490481981566542349603193126937266602769244344332547335224347461661712427288791455726494403063553583047437746019915030969221477521743861223571093856520411867035766049203374762883999241499819962720697446309831314588652541331014005357632312783022097215459042507881956065087526634302180743059840224381140615364921773584314597178370935565844518125356219622866819903909654327486757774942480199223451565572445247360744304333691550109288723112338811724915671402777568413386726019126781346117920171928555395255842739078000015727780712858275260742821632707736157913584075805386471911072839333064842498306799728417436588637837831847175589575420668326928971556007974570476765538719786487213245870480246818370593796816791413108658094765767282069057925992208530156779018424053692497534465646569280635178328405234218313562485737373601474410385271418915258353898461223116499647383228974106517664909952137372545443919995788332591173532779155369801208953539793408469964176711262603265582296540173667699795678094570272096502698553766697575753283132602006187908308893863946173580746452997017772038138548665220091140112888067459172319181692797337581574846214365007568631964489272937759857501698194834261104649988279198221977712787280432019075673482872432543675363071736673637282770427882565741727749240043248815069816018744384632449468394342886484977297795212525998603373270287261299610653401735314379301018815091347319006517757772957097161625931046613353667038212127153942335631238784455862636998367596793283506943942929627091955036283153294997670935022171788789500750907100025171443520023939304403186896872850697797049097241934148932064357641808416721709873940993249132580117843984345919504874706391358311363123459084071920778459561019920989054980461320763059892624286212742427794440994481818124355249188632549647113525107591897615631067716920079405899001191749576015197932647978448079606880239968289870317672918494071433465235024000880557700482001925191541619865662238199254954612791991378390536903704277134372967263245264387910908385493785401825617442448995594825906141562026688209942639970041828724949153026381859626779054022397035476469246331437827550356586033192777729669854688537685968316569912055792386259938285665300637131746254126945248658657207719310142437072906274959409685064796842354034332042217140364021000120477832323467078441220340957404723629475974041452370857167267059774711193044655747020186703921535716496963447714872105690752792322361755087568089566663424230771076067789426921168646179565722675249787434578616383889962544630018153895611708858153159994793955089255120846355530014937025027733478382533469536485939673721055518222830969149628586779776789922809517642214748803388140411456174835177338477191576316148625018107050826980308358588449583321368389189566409976317952720446759799706299130287589336355566916518488038440908164110950024279469338883960537844850065124897375056828617676185668809288253142080175974035774391216439334873232751870237257051009962223004982755567459664510995215525455187714152214871440573152012517303847312778247058743542962059595160928647731084013261173441771638433780438030500371574427137471219140441774152853868100540219041611052730388084953729590294448439028372961844720723745754481933237066480096420249132949085107764590542556855875538287813646760283192581134937344321917592655078145643836074863769421517794663114202592578259385528532155790801085486461935755144196193419451122747163885516917564581562236057399806064822091170846021701575166676446983216695693811739477354415663553775218606036581687232549760863672703193053691016490856201706745362574441160514068353692700056875007418248492795789289611890075200811142081643778406251095445198231033810768580031750250958480210067803697640462759225550155299072613858108527117399248911647647325368612271745974965534123220989564519936426039404389644988826020723451805675518534209351268299281778262447724455392157713495680188329675200676057589880114621140239939996498416300314069844473766005194092919871036740385606291655678876457685285416416788895893105856522482721649663692564419634003632630885903880980051057351132978428810351725520936526332538180533577279151730424772466582382641102009755646746388601542999652914547452670965408190514082827637397717719418049758331777704048255906949329798434737850581302514336806876726639963984024776153896740281475305060128415559827041326812924295382829145880804476221236953175909190365044223817180092811400583512320943342982081913921719809228027205931099648071043598800105715432808746253787677311583056586391276932606245120759186096129251560658860948273249746490639244102911668880490043166760738599224220420659579141389723402472539016214326682524914205009988235584730190787357367366041849899669115794422935786913587192854755049550721134716690671135728509785062934506843475343303446556530338966856742277527385358475080188481857245346139975418656297896036126530998483276665932495030377355068118102274925228445628284808713546176580790233152619151626805969176723200284018569350803305883033640895971171030859680976476395420882853239869144045089480894886396255932344010523724737534380154452183839622821290763338985715285550410698651578642976622513776497566341124241123832640071105870526333021678243890036858302893144388387083532298843252934809283017533602863177061349441421038414758163005828737052686565873506995431559074290069740451191341979665572186200775051641682299985578318965425978298045300419153032549153069271436914257744104918302148217466894906195384473188436529592635012091201362237861848832315932270598949040515731028783143499868632561647917133432985547990820994563559526601600830557137552630114346972294063652669142766315484221671252969020793377059470225700156814598751543272691653296985946665656958002276436102289261511972935040779920512695166716317625449073988937185979169308921943323008862447904223526358205015114119409386935882004871164484305298584522846195990940041404348574552975188979023067386285795456295344099790807867849482986602298873785035663083529456108613981056097957106587347651271912157815321744962187023777700318166884196112589800844968315039423858411148282454514689555555968806054091226919930585693134808867568077101670478710347198584375979191420148440627113686377353958597302010324254386614090698276908938330198019370053552006448118406245460203442590936778165716025014594887565353277521394221999481701579631310553057533548758145806486484396210059459778510439774087813210651396968608490564507960870249450043871691876078928711796403967077698520553860887329697125602889899342297579914230259771282957214858920488306893381289143352467693866170176395907378047186228736348325795090284558656930973256925846383247494756034478505206203245541058165166204159858997377147017255983222578354751749811371467747880190249848468581056556637506217510610694988211972396151352296492819377241049282821074333935562135556799576759632866768134365883489750845347067135661430031902967018984431254624062204859887208604375135344859045899851019704207271457192443725099254496298812506375425399195161556013025269662543995494447636001345741016812086221041437067273575652125311546665292405136043471197671646812551757747647614272281516970517748481012896275921594513570132214020563947622363230969904337899342443213269308124880751515731767025799883588593591774078978709900765827053298979947158180525271420031082607773703356289762364812286388959760788300198515232844255829225120301975767414917738147944024958482164005003495748654086337550148336972699342268632011725057446008182316820937757090657581579761500805246880911061978951158219816125805931033250303621278992585793470896910333431261870524418633975686613319508113943580466876209416924847177019059651708097972760516348987428752392864979324155705921060557115759007875077894818680698217152187044817865978653946165883986607856474982166657441808388654001189327981765253146699305860220308145992521357881054394876054550493399615960890682451722834704551030713129596015129012621429057505796954945547565669453852792636841759832757683441285039442416465423140259285679596755646228182902348554375650034351893250451171122666238262527086321330133326752938660206578818659181261191623220880673716505585344989360478552721281205579770491847900973962762774174129496055127592373407397890767303551772093916946402159248418752184910767942910471747862599732929982494394217123705780258056628505500361900448333597008255222736546005750915725218887389553627755446818031703463135336250017883302707738987878975831130877130557845361782778974610227953818823227979591186740742832944677172139130846223218554659781733645956868488886219224852165418864333894639921528460618250302796694898726647707684521371891607468295703412160483581860467033279270334320674184525695472547645503507374639042430018405338387867193057482102726878847811449311140540717259493934866097797646074420942270989037883621085959193418262364970508617264100367489193511322614496894583289815437802648201369418623731422443208588174740013364895107282799905319850890027226987785099769787979292534594916914905553168322101678049759209275517296388689540627493616798998373475132302043570539917876983134507278037059282036301982460564399474765229857729938936400186067481998793889135468762640784545811695598968338351301048850052598472243200156141640250431928415416200667054035792030028196696562751907760799083362049169239003526699326318928676715723096130289915552428426942789777613946505800400418406066432070871767975952732612140661519337865161103149621016568115702967962106761372974896609607905606933957592946847330568774698713015791982521647800557622812212764772220353223019595240839938687352574785092213908082132108501802587788910941461175699156351461554307923538418644977511095628407490888359557806261183397487818809262518680202625106964079089971350272141822822169066418174655478805852715703424939595824768473150892370253287608568759846923024723769780294606628600534176156556524085084487600354278124170156254279455950678980231947451448135409319445148954540062018934226414304345413063443989846477533395549103538205716771735198147838506833067813499247073587429092689359143418670371713924863335550501860879621272267086088765492906835611059458367513834986933674812241417068224499590785656828423596686393245653131190395255729833191877367426075714123353803638395157119374725468376329117424133232297985853055504482061575065489657875995231129654396548639258631965481252302438717722885680632060032406701598829713388405058889814128969335755459165038347832926743356837265244866989458739279955200190848673980242767816778167535651616560163599861469956375900057208191271308206563153999194870062570903231446330972906693233539995299894515435069268220921276258053128033649362034821159439693575858859303033553098545609792204094730796851693449247544732677727651212000269602673167513515610675733137847371755276840186552159099930806718692077926998025986832619973139457465408384464354785822364406520519714596700122147475654540133172348377698903170998593253695874361264546766292696900208730558783014969181312668722277318778108237346011039792736466001913552475400307448253645296047647949435941315092571614324881021870813695471797890981635885609451494704994515176183543810315326406433167805892716993687818549501547058172485251472130261332409234204533123315838516260064358109838546265333245605124790829876180234412287297611038894657664235947036177576540869014843250679959567202263959036151159412985064645717761592382635816146123869296583297612611691065479938557676963168985829735456282288513206106870798617241154758365615787146495251534870067705129540633086246663306860746180225291348154337165196973193830916809265151677694000484646919276706895144695911473757606128188954430005516949156622381254431812452133129560703969008105645619703941316718580905014017282309330420167526304218301693228190374202233017634133245336729452974577645321328662604606756183679732589164503348105938441365085020358451503036428861718537531898276899793037936540867423204320325288272223029122083619483467487622938396150911931394151336439499984863754107336719663846844245967204404736370664658627089297379578637950346537412184742805777465263726779722318778186656969854483013040084504467211739672009777289557207562146349453058545723753435067899209597423642867375017603885810502527223662270813663265456016503763103310800702945757938017600637379008950720969519813185418078607299454665098418961591368331235542424356944105263409501779972246539486677580485463059854894964979173279347241349432563601596620634923856465103833097948800823145743014568397561683093703267916206072748523545073360649319347646213572585285884688438434653141769801829406042156288285104950238328029575643021568782164273451189622139777310374582058753923271432648251835919533113846007213399057731276279299092025935610012893799992237427481910542902620211234453959422165082496481067624743161460425974249422519478967082854999032356323408251567274717199531531664447058590088740174287406276224677475839214871299249768043168309665571160299948044994467430945634250433039866102796260820192031684765457718316072582664253537392203123810838015110933452454632069708067976982241926793009382738486499891432125692317929870949228413965161570720066952306650038384703590517379425520515334971620028201458304001636029945447425302512791325110448959660692394695526420221027702544199115536157663234203535071183303895534598346841530365628655548466299340860828439552073671620070545085487950750777318682896235265205486908825221049891958844661044817812368676655760589158562274942574987482683730411547166188835928197171164102635556160849217876795718194840289499808104616177656840945510898982934178795323811412119245738783429180887151714579676257609690147121600730170084886106869193512472786988566797267803021139118948779473892056342627348176070652553896585954175630271362263412883905029021225518768483801778311325566712264707130063908261688851169586060136247121942370949171636790486472721013643388920345838739855024050684173615999353188606185178413044376092814917590870296291418293091062052463494377038539013308440255326432684619685654775279888035568053427851582062463797077274622513717178523797027410945712173821455045335706591520047730184250293078307445177364436666903899155575123849350027255664891024307124724668517057456253039871102752324244106459024215572892337009432880261105041992454419920021759931177210958922672278115237662158021312704152901331245151510016393623709558056577055161173016836950318976280280907660035338737442878109436857788408296037744603027845518741962345592627862482530395419489427316336073415467862904429886493176903646270597081355588325278991168011219315046694766480979732862211562483545603800916170211285424359221989240228903077584208700691761444136355050661362770999667002635194581916277284208041019036254853393944195530402350658488527283617841884298146610063261822803360134925954221422738430765111577126324716631894544030698982468065309992726180171229164186099814290285543208539163866111364910573434803864499016671610640046543700116775792087211586485318582183622703883837275659026478688088243264976733291342979441669716140620167590625590052253207684635413275651372251441042240351147735834639773522156948444396938377880286070382659551939105910041446978595343627020418458413358322464642430556202764705412825762537057919301311034943234985089942314099085284393491569327129945496499734980839670019868117921838717559699353851067243517055949377229901979979706136724777051618335850078393933571196272234716131090011773570265794030060788691634847254467759563709988502802400081206985507467986315254177576833294324839114663978892539912801550549161871577788444195898515848219603917975421166364941361042091003222520885313621650574889488364408011431878245043354128778898429957200990227360035682213774989494918484774234951979281409996778941077365141340946460290225509150751093272936501190215549605531744157947360677995456730455342229903404175037027446278125275322501867894763603045325171838101965694035451774035807252555165686029034727772964497384890551881897825574655741742640489552905481579349167521260086478707568670969259446262031684306564071015256161392849993417448914366419006994489438299584182291366756118473582562212640064994951364544165903419016793080595912888185453826692729985540545216136138085086703671458915163089947484311133184192146550936885622505120088519073937921038645470275144342888629859058222395373893473835951772688029127987288949811711957929651228704356498959407681398810356544583178695176274567834116311136691006052954814214438827419702261497223022435470184744409283242651144788898980793877032029793449921498186373716022502269375994986296975370140246764023236983117138543590297960561771221695211161130371992856586261100172006777708209983203296464676641434335616816294878070752013071510918583657030611384550407812264312421479157648747894519714222569694891353867973751523917273889879382367791310260512681740454170238935296246641335393353236626295493345263623541888500002996728030435526138745905203104828216196686241948860795156989702035033528408949764409372674232478452617933502631045134990908623423213968173290994043960742976811792032392781366353383142883597810765175933342928920375570688168958405694536699271117190014610702385911879818970411621537215851070788061477976334887084989871351490358794235094180147301681482519482351345300916039867876576708556072517990749409581931878726967372344353469840930657397760013174204466070124582175498828246641041801902413156516951274513772309521857137113475884186233674783919394361309210558344209516076847728034578069159744136345136215622816766330148230260992811817059103873959034303658650865577715491741142647935019841758450427254809381324617576430965135576570561700087915789932981829642979694165389455621569373789750401114068965041432028360773791045581613410745373016163176240201001562723308576839489894813475567286232706838428862865674661873797773666632705579355910787230661694983612637171306040518522238444853636000206842263636346343417840780364850826042440819237084710536421532739799604084161797388750952816060993290232131100449256282286869962606662110804816719454229705195986085714283704436996297403317276478099443770571288801474907783369604399782864475520848522780063917795182096819193780829643652580811009219119003579113589849868807658636594850822669503139649223037123823607111151447600771274991029776844088460399808276290540689980839783620257707399357674617564863151268801382474359874177742547250358094341615163087558812231034707081512841495912338016294336475051674145293011117199421820158833273186922942682581517030880448320314248664651799832053068134604705569098182142704043645347959333587260117264827764056990904122786880605664996542145903707666393947812243012571090112068001019582051547955272293275256668061491158817386776086284098650737932987704961195276708259073076907630430595671622475301817559169975271098016721656593868009760734722004965298130432714254657657530374334626163176491299357632656508119735778435077057815786463777508973160141984355024093483238876896956018166351088631987898790884665836175365804078182334779926811169867982502158838851817294532518254317478332990094916864977729365419396850069062937810765275301526823852015703617587127117955191707296032111446971423113240366351935737080735775889543761118601642366330131736460236584004365478571423589671822196875358575986678341651432930484999433529464413392867858620620832617154897131899202118536378917886362299576425897401930625863360527798841043849974301534379416401148461756513254319252413103602982582897820952681887270273193189422926365665097283069056906054353574282197662653880071928343284071538364526724609249459026781498293396061391399532873083081735151827611015764021617076231732659493959191181417182988530081943897443905342900952744507733258177268183022039592041319248957522558793371683484016943131869723618007100212568634369420213758133287563157726563850016812110296958024362780404411038630891965825649787596915959184938866607479349526384905218929893654303879727839590025413249317670904243670033712166737128327987469265180673799988113575701372594231310846332605921987081837320824766357643376411430755390725903137259453824361386617650105762340036617466479553464702016035363427791111126252061660654584977460126967091882219118041239749369160352336129479832729376991611876778517348290658671770215519867599911017511382674076472480897108661579590248921685545806647182418717960242666324947407879692300335698909170355026964659320564725487542655405914149340605984923266480494297728530466986917232934304227433488968148686041888227190528492638042857684107750857762625248926264831899691880499991282160221986961305212015372909770957245843570244863205703576028248658858306091782942158277416652968325391122524063624557161649742442277072925014206977725111425992097905916914631495808977150226956552798096740757324154085083252880739785825286158025319878615690837118049987665931070859203927699346619015399743975052072819998870188894048137862576244585009652531607282223782965148762598906312951425752474530533150710695074147860419723787992638482247141024785723346221023214998818125366355238186158387661651923180620810195461078143110004875227878749472036403009401023964107798196177926442059762715497456427206836835589151352659467662675324907877901907557807180518220688350020711768206163903608530849487876122911189131650422618209184851294152217495763065768220728360274163469328911555054943976498008465760163570410559272445634104090215410353092508467263343828140702740152131453855195751324771425934515672710802795945432488108674343480793177584530088979438236100902331571184734482106605475188850559705810354017437253254448350446227246011345119961348969839770502779835468411831156932958711628925685059792511235313522828611282680281078592057849441430188848354967694900711361490932483374132379354851569015884356305674464257546898751196552486914460858931342604916918530586265955138277112803788927020508315782731468221185276255848763305185693052129484245342875463916708163474324508667267840451325940322055248901028787557183924960506049297978919489138209646915457760560853135396339949332923799888941431710498145694887555735431397268267307512390331063881072740897152180052687776904162105105123879860420256160744668011423850942094609386365207110184433802125760785261830015906150726508494601551924812241653347252034543908357140091687295146662141067587943595326563441948192467718068758352766575607600593536246464899941739156535188507760067756508385314840033385358941353333970495029105453944389199443553689003832816471565529590574078041272488000769228408445327596730697361970652211556444390006706024728975843783931887755797967371566784151935293697914276023834672192624941923440506620307315607533567500651495645126642747423356897490796837409477386789631411173261312773681026972699114191091552212155517436352578171159564373902509588034778574233526372470152234412055028801181384544933558220346378201557530152875864545486124480255274039279413350956179611140363481701487376206250290177149240432128472934614544628062326146337358900014302006730420094928653391189822825058619030222712982065633429898942978743814748079762497321535493848237283264617832331609262773398003111506434146047137032276187589967173006216112431216456174348188362831204797922985645061008076136003091634518014942453583658048806446523206055740770804598609173189969185570135036710889850844083681228978385207419022926084292706374359737840133887826855030641024493517445046674782213474179297209006532725983246341175117223268411548452149881086184661546554993593379197410522051087018612005575127289581556814310207335573103293551020514450138525660499869646018386844237467867232931785644712111824260759951835287136870055810049309396432224839380058423841225923113033052461034553435959613020138697021184036832448294483601923473788063977766134278277265897561200692638507833849498067125257941599487119904600927585508883016662190872774561823227403874151063499724436557571643319911032416526638487150521769045664131867096460640673611911808665526103192650944764375317025870756115425185446591616081670288401970546247891214287394327441387149247944177726042346313357426598951394623751146610268791472898503504641655138347545688051422601310964675796314443553454830756778555454588513041902067308348898151562880013956728210061310163497803242538911690535272438623612451476138880721175079209982891658796844781749313275733711782592319121187440550620220174209402222017211792897871922306999429980067750440504112906824224811661361173615475462683777070057094811896909525006019371588024502709401506870836105508381170048002359782175840796372159675941354328979940699178622611279301600133694321428608659608224207292460716102941819991917743182158451395701786947781036101337127142625170236454499787659729355546922219626896336924903331276544661594610897632051378420447759661579356119585118092139220111178956893823730513911042541476758764249526556763306324894002887018985050100348084475788319372193289020009433365112284817579379458853212092490687884915878398374806593121079911514165975404024671888529032829771177148283704798349975367968518079756379629689558922048451448730797180900812594963244985602892434488328019257708348382295684750558523233659121173508156918951821795524256825093956652477343843333895483401088683006208185434871915368092696357766980547230376950219787535350833022070199993891770320327742476241044565989038285533659101616837215469780174416775514716734893614947179802704094160578447082173962804296245736475578322401665853288214484161991548425084187149978371889993786708503050622024361269825849714334392705450769220732211705284704393816904233270431410562106845717369138208010573537779368315083817330668039161713444581515402681842652010367436694325763540469186126308688513155960836298845792346089959757117370510046461745956851642756422038127957188223316385979462145203579426395129233675316680143527901654461412417949183589241173278583170174596251200140337637832386952826139935530705771629168438527356949646438166429574066805906964241179106107580178884116171076385767012102472937942895492067561586080357597829747427735806523465834856468546361761180153988953324645041043415034851370432291732189950108317838783889204812884685103072759726420865514875547294440148324934049419439328545439748995052111781821791807561965005592864038617099817441613381534084464353225612612089852514130434990604259863026741230469660368098902572616142303879074351131249373559129381801564562479939763738810555614885627129569260485567894360575612491285805378233847277036912379836062139831543033509131977106467564909136927062234839306677590163765094278153862732010201713614085179022030280607728637328478831464422645232737800099374453786492256594157325367598646429260929807464703357045598191269705772852568502723193125590168797476027375145415001965015429897965418888453223928679786963447448521984796547798623987299694757761513685106476877939207393911399789496228539981723671856727131855092552511346818748388374224979619067286591501284341546881849141558384120764668033556823344987409417739137650630208255674212319482619909546756833965551113379158418067317088938004059108920783643111438118144780764989047197215576869915316184511179530181052786263848737671159256266742743993441958672099129809498319844485593741510485387378553334670011521305264803226033308617019344798019760519208861817199645654968193316999599249080227099751071567020139735862984875007488639670378582184269104330048267158205462583812793111383186628420267104366459344928616258576534137631031290712600540945648589630603197097859064094586186244438117103642763227944018158498472955893259709930939632872406551430243133484128163562223851745467162415042470741029596571589626963892953296852287465456163260129151707582929894578563924941147291334447190864343166152505489887737539001866073570343888691873803370682870055699093727657695004085794630026062563086034015635933182213332542303552939588027924183747827802038338198461099220740054194538175046245380263769262861991802534345417321460161927887913740686001619005999364248909637028935906510448668428702078490296399699704628499544488376165100831803937556703916107628344038481161821232069611100800758032013371815189222158273580180582796471059759171601018838973518409372809785967471087455071070685286799710017489821911766249374391379359851626760921534721589659212835519277051065693623418633787115095627690237964238219324221640126882683204660563223621138414601825024867564334684537970825892677575270152675609483378794239446701049523819225134484612083762073939713106924246362743851748216774816127513759246085883737406376917307614690883922138733851206659901093532035893737424622685908933220244730640769653103124225218568306738396403184054833364057251733154331898381193703076413182786634263058458112023550245946451671261240460050600881770526785258766316850548118754842055575334830010513286827748525008013945649582843960213692184964805963932119328402242724075109016417942981901003213943866334633342390444215093312046103940913202039841802895244430371898123033621686257196967175507120715478495287776851628520123241650589950904736796240800496883409770819760405600611794114733728905012829576784424246497995948621165757589234693793248670709902511978545617022991860693984435556199465603010406348847299054024311612278391784396726132302353600215863444570845675367356191389516529673608755686669235163124226166793306612523688605039602011708548440484001039976835620979723088275881336709087185711484280048436346376912163223928841690753414535607972763186188259547156476219089750051204742855791572249534317554386622519756386679122398364037091171297197250421485298897502865949030128320559628240596454576805873162092667718714302167004692712725511416130074729473165466620412657954905747837959022644133184192497499445553182434684939000094931609875063658414164012000145603900128720114552297740095807403552746224120211824738945902992608726991601760988702060518231372878940053973404058117003465678278675999206638504003529014033474853858596362354023497600719710992183332464187388189267179143562708762481853413291623585522061915858724602034779889768511220654692680595470629772265671489704104924689997158309695409495298611922337040069026040050998373700923592521337741840515463179072262791507404631707104589986867856036597275040946408392550231608667780112996089538314402157474604669510729695326601419625440724176405763347301688287435116703692753468476585545544735121920304837727589882957730164720099730711314719303823828810329183636316941588134086344521227297526495884669724621065432987669799161335121610770298701203164560822256856746771908736942857525917868805831673073223357399842747157510893138319189041523365781299436380050855391931677326710106504594486793698763264438795624832977860563451728233004739545182376179530234641574226728570532769846364494208147862092353635826373994358797509451777552510876530837049466363485270658278804584536461045550906846006619143327497913095826608993303452117666500421515471400309400577603993747192884842265748288338371512558434161368521440245845615398392645681846850076317365838640279555135563565560792936993518513212431698206802729472492677877596319964602833268922186391587426520876386479055306709432603970417602282649118056302552438550262820342945322037426205519508636167405763712648127033250375126316105360582278611604730455600532346054714923716045528046289893259900819730088827148995322983450042445765664594220263825009418884860141540836905045316368119298774581022468875793565870584795581525249313555182831757848538451965736773186209731376741965072472261195947733447074744794805713079385010319444040652901051013877170557207318442814759392107887155517335885003543460370000446489980034137649270493003223955117478301944575449690848033864115811550716183236885071326191674086003390694150011076131662656508163216450750456916775200858083631359078652258843734272486464255467954343675663685054549050952126853492121390658573719801078628117175986183001329618603527099265373211569937317858459917942159649449726613118200441809520113501583383130862476802337826708519876491170327422295715867476181277967898715257984480035777796020929825625223941307631264954085302386089925992050814638946620657744738184443354962068449273922369627314726674295775615024220236625816086508472262971199081779240204425765342973616580998641719293110757906368795077032377719454011572478400625112499366630907893411916232367272241621604634743965386807733341172426931007350545209000418723909166965245483543213230233281603857442716225932822497135675435999848961435203749674650557145407603895727286924780020033729277934310482375928173350836737014788279800539607818028848619557726664106581555999168547153336407587522411787717832832817300764961510527510565887139688466489760706434078154086417863442233695561742303837417327337059783418511572942082214112300523770371627107569437939802109064594191870490437385877087331963158680005559044808497228078379046177402203944079062209154511952400389407505011906776592593987751874101542125037649823507353689896996250946101955509658903597564600978851578508144540587480951096000049824307982958245168368927717488664097008946071938392732596121262462308551091174492960914704821582211746674487759829089700523178864016686198406374933934148565328709988467264811698383896022306435587339910439292045369583451696545731556997629317495887239630908052071862788906344874050605516971789111362969210849536416756405669319293046114934501534493638524932216227425194895528010978796884112241006123608010888250055375696149210190663239822668169325605910350929098023357252783066797609371890946889709840701790817807758797013123384592153993064204831488877048034916584527972736376253022261914653623110234105050670140385953970685428342813362984993640245304418270349664284962385519429825432365977731204437063011156705419472612579920518416764978046005829629598785225924923707283885678969151401293318619041485013665454300516779312098184177903739632192791382791274371724416983212599286215201770792011376477219456592956749038286157604942472400756898720873853311337533829930747998236636646328306882881767346335613155198006242047179681842373667424923227484633670940494289233913845230866944350315563848084479083297977374687754519027257052604006098763077830345603693166077590024148424836623852392905100111006337133632305461157627285866673880918477094730605005029930358560179517938788397323053961176988590258283738772649694953929593868801512979771259910463320632328845388784099769229597727375699432689944024071953911031782062342086906997111708886679120855254699055871896052986355324715086618951997322014240707077084986541039308963553700517608669270326847889755767518826972953509869918193446794778977386331919708069366580267498453305301128684718155828725853690200729922022996257126683592972750222566652114089411957701134641091658530209712884094813582110143128204372595376341278946535912256689851206882831930384816869142906632154576213259915391720357977030086866932872665196711707314118711920455253924753439931122708851222472633268725713395044402705721229501214876321808594981449721035705693671452708331771853429270095992643611324695228690457744093173949449742339518535742971348812253673762369945700706471664570131078740876216081253925803226506557409495368714681020381320562475293898839442426772531881809065599435627426318808162498948267570735764469969379037979697105456402440961814279589296880464592039937141846199994113470521481313380569330532554384713003694781833449526672231346797176869980134519359992838577289748921653083255104768818973485058771654436557165503255847656590337197272804747572768899998950046752402886208639773404867880953005140944695041172563574595426657735594080107088013052683453255248387075903836247770849214072221551650002663889427887797843475270180731128119001372245885432172373447662662879555183859739890857573678126481996610259652316418049327338822604896159879368406931836159906061903629967389544731148335640105368256084249184377224362722811737220439364694887681153028793531141192389857901539717164739623311354641618827122078442226861853100148718113813993020112369305081164081581461991696140396735061155831880144350659345547757035921767932278836258795324391440566068295993695749979581547504386665496933279743068691683711928706430702701380416289142874846022828045835549563374917210593177669165441305700602291128055252794779781960654779816218204949895194988177136656027409598542404483607626562901572168227296565363819939712025157445493215666755987333611794025380230094693599715531379611390778732321505075049197101169186111809000739981251511109862559604503586517206398462245976469272259293381757570013047201992924265011559901865547011671202954909035382000665124940613678366723635745654272309090865636006487450306039845629227240985653397857650244919599518222801083711081174257923184561252697217993586119815711996118581144034309614932421324553784016685616340520842055323302709071764847854694817582816548329151205436356167339252640442315967113036254449786690266491316318147734950105746304626926511708557802061864141131222196531848021220862264415927660573378646316967539835067551395322939981069710992728122715920646310022711128865998829203138436537495339201203644836109628040835114300945226930735357864844751840746259764763131313418127312336799057274226866151552527112143652579795159425967181149102906914537255855783494137640297203406123932366843753077912888931105612298754052252426727676597351204601516838353118748287372901056098087098951748715086213420185899717651026421511458136992917788232723628888809614210639610676004166187885489672197748216380581320627575479236304413196713643456523473531561371261038023038985770724572449958089114918880362943721097978057193246716369708036348251128698561957838438199650114842462273043370553857109514631276723697553918895052415997607079583935983940720174421897837935091327945809529137963021184574371673360181707825191427682832922308267225206649211701600934768096933775986839281637642868289247552394735944003537846793272511532122694229201349248825232300576549090043279221557002520099145129213805251149942084405595436475266100895071649680483043140581956969828032032969112262010886387645936990817945912298827133267592014208096719207368901287799662367738622007051668301784365171254414008415219948367914133821798943041687079144721468457891761807551368865551738251308919460770513264392290161944705750266862005983201819683746348036325317200533349651496870190146776224479793384320515162612043790491819692101082117764596773653067196181059360596230382897086216325796196259321927541347227224331727841903817489082616110649196486685087138944533116607270586424835345540854927544371931962582651760445726207744866494574432087917850170909234737365524817943311616160527959635755201077010212241256510880583585628922885110204027651093238301935041190965442153956618898856872248168967621031564064453512926057955997051414554754382990013696981855325568937451273308923111038576695776325399098194139302789279066853583719940179766029818940961058080140817660666251564058917055605295096556468181532206070742928886214356208544210841398200367472327821443883319027318805471459349784629494394590283550782301420565590194270200147969045584192276299308469196307458771016192381029250107688190939667228182632307364950952349786787233869897551784734967511158549015131407097043460028087797055308105247642535182703908991432356584018501317126669200438330595655432517981241929020754816283596519373162002522310274617662599934525933075513639027021052576637095032615641951268708051700840994131446774844745213574791891886269533784780021463692146126103533349029723559812777561272523600215762234109953048654072637625931541524993317895002073976677210308276963791069232857827377333796896310815448070719424984403665932915516136666375418774541248335574836023797975243472897630537072555877987074272801651761820712800589832417699454531806916573651109470776419879468687797285176005950422203143352898272087471278168909617159758463587012765436085240786411401540545229825675922107255728048313156726386135518130759668461645185031708161808785536074690290102704590599443604791005481976599770239975302708442689158310162249599759422950665569667487847859794743386025546269242024494472979043354582431082073564480579862795607710298093185515428533702672500152955677473121638568103366689014747014168958894283264162589358191158340130470375376544585149908683437867960268929071609561293575301552574707400636059181808094785416603337763334524413681979760766037010937217670580219086999811066997143806852586792602881672604320074728149500977031801276810409474471488335215346100750371660855801846954249803399420958948321206564293275745329085882944338323970810819094235533170128489261194593065580846653937710278217414963754719114234151710847270094118390803071261970545203364770173140435847774068837113250988413695878915558987617220743615822841502130665654315620437538439644246167735088817216671035157867645249708115625037318832242187703685481764147072880807771816153395377914288973006920732018248967311610827836841275375449985336307756414457876049159889325128430467093797300809785091403625119990819356057777061763697452302222817117761006941456945334696158622072436645931156067106206646107851732888546799361145683367691911010802422628903966856944114072329760431993026739034434930205151318917003888244986513052702250292945926223113805091028759084279341760668140927152088587401634316755734162736620802044820831878261846511652875809801418416382997805747965782516525656646752751700505507923065188584490164318502322107016306054708557298643488131293061956469632560046604408707937882211360848432913981722697618910392136704074771338455765026752226846864567597090578312103886694721994230689453317790318115921078187685751628653657303097874284206746957054823246766267362566434795380134866096599503002733457082246079411643140692774512167384923259096409466331605749276495500216863677221363779028392831162895281712311616016214626885516999036381204045294024772071728334578659938234382982660344089617679882092440000656469035305840673596664541709385018530201209006145857475234071778704396235130717625714493599255273183522358176436522477804109654803013055962918568269341455743681089396321726841166429824922816602705871488517958651121506634285353460280332724956999661377165277803741692823350795089524641159001520937990886495759154290016649780154425287371736032463458324062126476196396486585599705468845580005881324434101734511535721898099587046443720483475029438324888332131830610969565215926027503919775168692205829161240358170545786238021047209980499285609916261294413997867181868614997770411371745338371851340376719650090967940194713324292488492611169292058021336488856782088088842894249144030004007601379809237595805833738436496300492180501050228336834785004607646951554133330817178343694338391192898432052726486299550162810776643970598461071642484547564004453821667589045667221233346588984586314090549390927748173041168153363483965338945328321676518081725977425249823432913812204759942479230449615662289859469959608234118782952764047302422487569411880665748595969267263386370799122866610926856689752581169771720000845613753146235782914606422662269842642988836280603619144036062203620452434418945334124480913910297719344969599827560875313294269204203607552117670084441521617770044660593581163468766205499741264552830123691794397249318513561914554724284421587436001705412710416994926367574804377259651905012350456354765593208356402012114300334536312000029736343790495527480657843673707986474863861188377631091295293780506351343832707142989252287049399577226412302734821829652806927939103510596788990635484943522281418703084917940252558426075221318272393277766766038588321021011566549571738631853566311727899240179874747357634146045164520753908766158718491184303371839532817994291528898824612942227988931499711891442922813894437266884522463836170663509426490572051672460714752927623109601590773242533848234439250970789219744968706590724135040474454613754925424366044275541616661201174190161390400350262872521149812933641665309455062434560637336810483098086364308626016638310512981082187470327032835661447492401958082891172534218117849728182028587909270706189628315615882897003123868372251848031122487537680794308641685150356373959116493767989634495429967952001612250115181104834820074093009602014851857345286978718415507096903012757910664926487391983424813545134896842086556528229198423915619157243339611552405582619922982026884044139828961345822066800407078859309478646233566121319758481003013993081667986816563883137901973982111588003427006099062528025951900500085446483944289412017744002952887192863727973271521921933070627580036045917326451373274146140076847518436286591418209763243222235289066223298257696935325021751326584249334056011753385480827787533884147961938893468197743963205120691394895193446682782795333309291156332285780482364396872421096258105509942214727130723445166078536225999458834123613031855266807403751193394785338066623553542996300953443350357188056820459808917158143458272137919114015319989646455248104906570580774856684409956187636159617615250328133976609088783073140869328342218599025493621260639909809093477908395525915202521518658962738204956643273365153902356178395120336079258435626405091704608372350345573061990765773934632863520944561810056550863998554471917104777518667245497078457429494360846342077559340991437523783966554164927612486427795889209681046719227516319381678155513399951108467527467492142276345454396936815698529749215539422316225618722144680710643472610843881390186428779267380639037226240492211083284032947694736311062478189498837056053961879460827092464413093028372468934829501347578277991508340739133522487625452544385749446926056313819206169007571515099516403406409912140218853162560102125515353325165960783373723135612215242167047233849923436095802228322393790336612172110124120906205291921400933724942599241072919190196587855992758992966368908565683459066087497870629261916140855078215009665303975592594084529177449110788382968449185040491185011623512256517404688991932543144863184405472562266407357520477032555507688310231233295021057552745171863053485072322293373087302333134062080536681738349428739700306088550847812264440681789818076659399476816798824571242449411315483581017061176165157412993844871060601094683056820962446550664664770693643667978316849471321815264864632543113639430312583533990001476675542911897911649339805556251323357934126911834851548031258716519689648248075946630681809208987207896166480362408017267998416653213206815776711481960924835295247056851647623320783400559124334460584864881165724774862751037471927285844175248209052267837384074191264835121610814622781784790940454143819517938203903822364927179367644997603902084815720672974075131075645144378875055462319907527924011688186876169918222839277947684867075345468334697059190503252852078781085632533752932368627948767898718435588981054425257645918405933817552988921958424533699879093302190275457865462547532166539913770645682510736696376516977435922883320840522488365028363016355576495496307160860036116885694210674048611158046154944895163972840252709697986326654905653212612367506236607172166456740232673950954759356851623340845878324420605260770985257571323156536143500675168638919746277502747828312517411190475315052286595319674734664623744924159193665919818394834580713868250998302112878439008428156539705484023548005671186324057431110232362690801959568209497169484447994180324418948962343946455709891453381129395025497009524774375277500497948071198439760369616663921157949216896775492957874009908824245280689117006206421298707822981527598733181279171969961241739319171693825340739709214920890876453441216006748716659693298215434076788644141022684291274669466497036607383352567305143671211377615117339596057373769373149482891483887826912389516419780435879168957638188847831954035274254980533658616241312024149900136285116932983270802769147021737347243334633121028678404535132255505593125060854090021566237036257883657851467048091001597140608454237052036944949316819672468890114635864579053840113342208919130888193347771339638546773982871716625263685728058204172308260735070069631895517498138049753719467046686164855275475644369467715548603240723832971974198095688500517605376275867614743684641840932798735813234114934068237370645344515002050363087062178072156952095999167478131855342665917583270163256682662279306744992448818822638540409419219272573958527884770668596638927037263520985183266895781003223381562445492258128850051634382593565125762431462806110337958417818676884294211377368925047053417641112081744512825623505848766098336131792125179803880875228102408434755222774039003525366099032759887992989841455693922335463200652668029800062284162618068167962571127632774790028107217768884449443149642653013633260162525802091124486820156112469438663162430481273739452941118403688998889836219332547958512548878518920906269253316144247861033023658783020148003930069010229548114675632438832173112136401573441976137020349945425269340921158056535851811482923115720058512166139615136216705913135705370734151467218472157072963267150947274618671189582050952733847711506096740204037766889153132711430720460458859448553240933243799347020710039174038407343313000566904231416323733612270359246378141323790499206673830533751485565985781563802113603740343216035225193248171356170174406300395756814073564622421402884449363496784034980291234483590246214811201752362542402372278276409184889772127277690172996120424608996826644570537756534114448645209446272451584564090308618440295875882530329465859355330985542566662635152687266247838855587106214827396910087738524046050289092812007961219263767737455858781511822993129180255427760646105622294976087802080119429139858800627774519863811108323201014647071013394957360311461962977699868019761632181231572858552256262804303811294176459753278274631904746701881514184936932125777563151556599521845044220498429652405337387997763386473890223297002889060959905743739982767491819717438963111959124752834331804342480389199933734954312829242159022274408734642000152586297110627657294717756492324243120636601887557935050688179713103864348969088535614081899149308405259099421422445390689289971813655347359976345131955047504652527283278116012710129437625393714820349321304649339758577438836289241546956589697196306734871016159906052809990110269437449048188680663083089565696948721678363504862631595221909781009780577024570938998965990282288108638316747828502100644071173792880438598114839129139032642052378267752689757823736841754432113684189968268716788869106272012901417760725036574161574827715141637444763495022081737034313554788798902394396361776407136645870409990390529431554606986015961001502096916224083336627723356917527474295067566457190800392378484494936957815031392150811808954703008931630742354378673804450407335960104926089821430778009788043931780464775009462818463269473541107947352473240737823375402757832858672062256574879903700315970820683377076639641441139847304660580343189462061885684279382767629276886962829243202169457920595248621805743103154107082234826763939430395170407523651483518184984136002270746098519051431797683980472531433329732142602337981769897656662944399411763775400298728456377573292102558568940541920464584437770459392811175851952696421801632181729946774785228641959644321243437334313613781735288822926744026578525183746804420298786847602801356957869808076403329626798712605969996209723020445261249607032432186116344095424663231161324629848271807811367531819363309771641660487468215747649205618841758264271935411907290849175367223135098263409323816763959070290139330775879198025079417495477578868597947391376074418410800675619941343801041583012015976999735565768746628762623701924370614629356446104052142477738250135991620645715313654802604873445065803859121096203648613773163076727760649564472720454802866611380054357418266153711531050667729960247322949216714145186982143158985809247145350616134252924546174363085414171722409113721353324363269955400170902367266369523226668775743114058558429560254521852516462738405675746862174263516895550343787131964337820525782461305447010414211648724105689906283454669578711958140713910657276705844397481385720779145300335745150121964243879568868710498158677735445118511292310642873368866705849490364880055361971997895670321970495975524194250987116159145619228792310698903963861476072392185105219202393983942772201852573433827904846920357465678646601125214814930655043573819115085204724613239990131153899419790309917511575864839757624233096033279645546860794819168988744983546733657559470512581036990775249279188643407765800560817478180509058791853997887657625254089309510360961243944886624542103731401566098892481321894887990032961365030205956510173637975816099796043341520417273619835942922733125698154706675379536788548442457106601431431487489485377180546954203740986233033876237979747261045699542937197035124036407430698776849437815908803818137402468593599393261293439062040396868453320408776797135331808856536067167219393308147138673375110582974167724587640858204703166309193506241628291196917835727397520833247414058073604114887029236289273745301628067509552224002865527409846192832896220995461505796892024253167798043173214449570558631428064602975887541396787979324542891822795683236656031433957236234990255885815952689485309137294069574861353379699543916435086852521753438990261456418946152696021699195254985147580690224412176848503419631071541068771298050617997845110121319208820842517645286306540785735696305311257452865518259893294973510065345853373728359977146637714324713888105711981985570776304639545652605838391544012006942059280904719405348405085587594304776886083730753239662739215508734315172833602264100504791665930098090953686315118810801896626731461949599464775986278483442129083180000573587689616696581025778324034831557102355773248871731617745843041141872896176156945624609837795069857414200107599964013096112294112014536707999826785867640778086033561550342809794947666616346186994663369512003618025660697914589109202911025728068864049889296333222348234400985961620708154398354493706951490517167427459646535441754086048378496868340930699304329159728365548707328286279026487723442684096993386706241896817941303145022917424719894157195977334515467776221527519377076153316324702479002674997810542601060893343775408806044180038679441746271885561829648891370368078737092364174308904893539323582706952763146010641040167443706444664485381940618720769989792475507286492324901238430118163210049947378084175931496926691528958233339339494430101079851039702285022726433583864513180325527976906455629116434507637268317845763243149621074106376251459756878265060852618459170725383568675826373765836834036232428076329669557763722169614198561579157472732913798163546455586068663567525720483109879771364311209797465085002925452289007280184787166234873146192912236016081863164271094935023799449628532305778063553624591120506883773387113926961056406849394741601319880249122122877129166244174331048562984185968472811815706345212267507479692764609242261717708947543275599988481096659465365204688961606186988414870047044599064385422443366609739283685961535750443898975506194535527729694012977600092004437949451248048563699634644053955242253424270828125636895111106057702458252992420350193619150601176126132085163176058243919289180387339762212575544571749673778538447937916463411666264869905514330417614291544151390747265462902872954623306843683473920664302425407009253660526477088974341484164254330166429806274300256454588928623844743661270424483226383181430619150311171206036396814801790200872831926843449363941229725659028999393798736792063300125915021780186133987934242862578913165897339760810510132057718613546174563159584973039556322809187585479075880844377029376491861515718676599280541043626895966668582404962883953060768862400240779536832780317600727152329979138299127559337369723760426556388910954402879299199901031286917930249479194027200779907119097541941421276280485861666375443812693627666774280434315794584861089354970337155113650395983102059607629953874862892610590821923647628675994372147255773494729755275161591044860611831801096963914594360200624205779589036250928262443509784449163727422444490513107874912201963610322627397069800454859570865074846925340895878283392559885072540255822716229708987828658349781945080989644037680915826165702880739823029567964685736920160459803118927414627949462914224648976869251111578546429696618603737640279655243289613555429391580092529563531525741297291783208404429246447212854098823070371242070084830523682721929598070390660545438487524518961601621125062494184099743632995130088121340350561929752122205276043124337155254978973193124063816117889771574949673519368917014765899123906036047114219497251154084244989139196572904382631658694508387399421572753884714487721428917448954633485304396572242109419014322024246300777733711698388542085766644160871529946811921520718240304464177610588823595814099884590599054851373363799187355944732151857514373963501973247860270263657627031207929899156047526271451201490357298857531789404253957279457091236196359913131115334988148992159367834898947010905113791403827960758588375181890678248621992661741831628308970443444344070959400946559243512933796358491734201902787057365929184702603744145862264690482626298097831448054465736607769251180081408146689837950038556296461971527059432698866818766595034932421556346611017269295338470841405161666216132664479566774065397838434164752133929535953379612960251719609471344772747311365714732534056771380318862221205013404285141761876750189583113676029321558426277344606450077737819937074224771758044031308917428157136387440374928206884569226592051785054919445873883002735601919246060355749150234894220619566261079861268324964161916489002912805658679249783557677764693165772416882003048005797243100526313744086915633522654881339844277217174733944805831863920853905624885404248491113966831845352863201256596999189962849076977506595315749854002273359232393837648525457920994421269814767048133592521273535360513027669733841960806999952596391980755127597850018003368246694360752020480299691916315583818738423309490415707684343244131728852940313543289994656063128512067216308363892001525020679585017686231159581620842737686398599962410423638398415996956396023884457164261723689988729242401862660589214737612340701001667882966238664694681615015669952102596996546767563882272018360697685916212786064307458124652311279415588982370600516740299952991805858597535524886622419264649252978947012328590303777417986321250455771107758454018266349446096036775283352216041082628260204894412500608433462091997474532985269509642177335218296953615539207629980851332059345863605049657963333447371123218475322754053269274894078196214021316725809306218814319729617204766167832877872372381464837902550083087867158516746373061562919003600525418641012337925097779943686293275474292907483430365076226733049936194732167159169265455990991024287361700460529410514644446627374791155136006928768549135432647232603668628160120320222375302262157822519969761685557676669657323565003192151529307023662306651573212784608594805873575871591633812637457745503640942822718186206266566119157946095907058542119266759278813266091495922288722133157871425509087775786168118479488249588102137693865940511970603145364575062229638111681240121419588011345749172077876679631922081871519682008735818477763046463386389937950906653821899294928791433294232227831052188125840949908892299852898035613393840583766164083835423925306115289120481556468713425893891892373653118112201764432826950927266411649737229683706610241207683411156797161214405269259172165406824844763191245657299980397351011623314428997708394774420137259147072707872558421393091302841360219399787032378010042891184278396823839701695290626240908838936111042653005397662731016094234197967773256066433489065296163254194291175335707248703670311492826904931536836406756237310798873995817336177521800071282552517920185033457506085206814374478271020691516947681472369403158947389863222806196027457799029949870808517529753080903222172419240053225303533543471928001387035217401576681566171463600203329315240266708418766085629118097371491769124794073346167270528044967215288416622651490472249214325419942682337091153407479304591038599906690966385105919684676237030062055714413203310265177529860461250908920516063406362046171884614886507599389563115917572152245543476422627038757888703150565977170222683453516003523158788970417820510442440154041472264898614052400494881462197696872921712254529705751316426817268522628336563105663054455186417271838348020695972131481548969134787651248529800454938788728454858557319948548820309083593242518176809362388861642160742321705241673497368851832551810997449972972660247970204424244471674934915892741560030651841189042119599587652650543979458771768023203844455389227063562868714424945219090052402903566062675200746490024934190369051011137469561962322764645572835988330433608030186186122442990908443442730744790013791625218170841653327429432306453366346675625327582853329063869480959418952335870582372133080327213002791080477747942789770738272447292427640208663509900409672598637430378496871553728242704513046634482045056514733906854439667697091381156328590088668683977198699559457007866308743244712719952056979000088857364483845474374030893117767947961558263668452812962958456214626507556870137680821781903316583401806419547376700599268475691590622833414647134665062437172113729916849036776416903922525011524613586228633660791067892005250810224066291653674396534796187925978858092942983544883829373326502822419677427352468876681528526641988192023247805467445622461076450825856152462261712203588820800533842551255504500520734989593763388136590319932468611098622945571780010081911197901276712313423952711947607335453707864242855731988439628630228068186875051624603255243042709563862606486913658533980169729005524528058869270436990773476128997942043476910741227541095902173053019266393785171242751917817676714767548506652115742256028765659060070525422854205422381179977304443333431503725394225862639771923868825751520412123174339912523664409610204569211914581318249576886883957143119321301395819832578421075398785487125199833412667139314991106270375853081265571638901662778509985344821321507044333162375388503729722407457400341541843998090554472437452362056531967589016148356855871695505702131273943656981490060428278668522663688166783468472140163133330779188773087265176940101085301821381317060800548894050930368918276413042185556097470561440140421615969394299214856824125709374322649153322920405311916681280740222324223039891892954607063464866827415734705182495627585885161604407864473382985071253780925697900993331944920301015868625849775367497334908790133973424905701556713493823125137936907865979306622469655590920025329323430064563332604831784821338137662716068535741153401165580964063675094920319480425071475070694935724065811727939264970303649349026430032825075696595816672969320476681235029761908585804868425612334246385934747169717722651662729097841919454989991687461976138699296943093497967043998429986031959115159450181802964762352819495775940860918541973590643526826980316433008086073722650817182581357865489698894921093081230079888054156929955922223945743055600129845622828557300236496504576878856661134301297850568515264503786732755394302764728787116367877463241854449593996950006708251521352387132471393289984866679289293937003410493829423542159861965379971713326537948512479048476959871834346003474021425333061283813809317681926418304905152054131821607355235853325433306696442020138038221224393285673003508825663317307669248026648441157541562506676341878321181701320158232487783284691238233749977387288734136979530584649060285825969371437604694258862210086574633725232406098299020544030198886329165256286511257750196593364620519989917462182138091441606299024231454708670504991960083029599244846548628431258939232430167071290624910159397287434146136643804466438358755520289763169023599346786675761081748298454350539558848559087254715058438207252476430205947500097828553843443460601804041726715697105771111172734522515669717464484956885602127542681356893459958279735282030916122451459803179013198736982801521201122652080084134100462551380230318849607751118069022155933038350133677342369351952604800874072199939382151315425538704104657911459636957856252602647209658477105555899912145436492308839665398674794019789048308085577433634408130535367873081674015500464129363849121433850545019542370662972904839931477984081649153417833899634550385757712586692151755851048468011484448875603222778237551854055269822220641877044012981234020211590068542396791853843310941504823860682716627126816855543554720873749453949614184419753916739260195920724301563151135708397323029197092764675060913198390978545444527701164331517094435674290812607829426303449783527576789324748661791107072236240168936816256150802088889840235409252917693770908494916637298187930967936473597973587543030320264189399122198609506083159915159689077167432217945585381062963013485631921541650486510367363980385104428997150169024405444701185605439609807119656689854583771099055966642311921567877734069509115324282532813335625351270330702740661763881267240687656339857627237175815487796006846440499924658423592156994078635231770321844075687984488698558092633355432157129164694743558662805898041097093894451664454537379840541142433030887311232304191910684798370537029551474453445428340033222539095373453072994500524586646680903386267227225467101336403860305558801046745259882283036615664796309661273542535838648406805139258277234783704478508046369169808400512100653671651310462845552864735360560112611788587528847909153979297478203675983273369353712736595125902548664888497905525114455739147323958136471276578206161363209251468262597081532720349449240055685838955446219750987182688246530401510211004436142347353658210895947269977620180498171872412680666848768766179998064596894207188268354804211597366624367725777206235239897370822607767525081142187328678632095800441919718591788308424604228245350577278455477646637162098053110977491870257385195889193111760444744959132093685493416238045428358071354811290042949467332811978872811753687657446737130569608456625209246216556207255496269141801414846394320648610874694754341418986542318411781677419844024136428821385410486989938630870195407098930863130139279015193018010327877925449542144139416064834229382124411828150586776175554730268543265932704104155769161354180754308879594934427769269493696065928440063736751884227426769892711942953409886576332284392640936927262709970914425359041050295745868952259165072784043749807966176760099466816364428088357978482911395959303748881760716512179624810428169581838532556311826455729112667653659591585671418239872342033069702182056467884743220424445465189747595734566059752067653635912948999055385980199853454089566792281046882203566483054701565047693294650106682975002856733549778485133643274902432592823853583336937151582183869837052213114592798486621987010356426304399716313398010898938993312950764429604915384172496581462057626085853553676167298883655106986435079986537660943943234976781934176591725707871342518380287944684063727560851138521745394964206803163756110841499540819228953194949813626692328612057221887570341528609674402719505486106333662135171761465011170830994763847427399273615776426200697977005519729535701841374637497911153717054689567357640977453001119550265922125855289943244105268398091832981100143959144094884647758810431785680223214408428706467026921833666072802493924882994522371785565439301788126768786874077745928613295119208988405457943959972620227561906740445138961865906823952088444131208469210901391570280000974546563605421400186735287978753170736264324411940890787215040021358656857282689009095038983145845567146981180159349731600530690584136095339831377474057666435448800803357505521728795521557165565805455492759867218323661437587092286816492998767813287718659974006272744719989419632013408225225402971350330063381723161118932012157799230097710022741670829815485586072525926964498480564474362429300763873875972903670768501045558719813255387492529881516126440761360559673058225717304646068810822253224658538028305910562650181747996438427625502326487083683576162227667499986840262771707969830988624151796937802682284360296082386421198036066993880923079530822934481988051526917546754883226236671858935347066383629012883914422477931689028354510682973302355811695258146550179407345800087726294997316027668760513991876609707169113038447411227751928781051054997530468631091157643638938905459477538717709832704499412641731281509104515643476787027681599239915422226282293986371894511366429746634446373289866109226076857246113784978337402024558613389405642201573989561436852066990113302351277020912290015221085801542362052061893566681766365504461906059833491240506948257309703011193263729116833486464717649398265062959566037372706346871322705139987322856361958613346602463477517052010338817150837927598283452638253183755321502281212064713111403545630612789813665921539057479543759488189293884260180902136625195396272105879857624965543183042055512200680172670952579964351158780783303390734268607126553937323213419828972475605378038095038263053117404906301890820292907456682865386855564681886485988988734127796950034365190451095484224634593360243492231934543992381384696816256385466515586793259010995680719979424276926421886560109014281634037283169057047576005719996079055590740341062638270751281729178981468084591064834122836968471476634153387622992220657085549262965407473168415697943409611931261440003085323858403393125252543906526687879286512013797853365119187481936437807471663570972282429122178100534193931410778479020191247184201662013436526770744997362795125979716125876489881145463605538053085141231851775330172791059857666786705827679545447795126642818579400878057013288647253890938775096973436131276350959612717926845733202816952004516481757436562331288663621190700621542176564360642761450679369889004304721312996340404630943260519784751781606980847022034574389142486027678745009609134349314612155810910434783995746293786422418017717470388373747460701931602899629367977723035549305718624174432905882955291494815342001066161584886128555631312466506326423540725208985013200471442397479186002424466547662038192315359644626036732653592284580807848225854283811890225424273105907969487644077133111213286541149012007994910056264330682584706552469112176976313455461478597558591853791500092383755225166474043766533818017744097906647503892552192096671866273591730098873172983393063084273798459396930478131957162744032491330221014860927643798291875568353577784539007240677207781231920326041807483617447245415337127884853454687171083398285038608667346673305619866972002690204614177227044182436501938871754101693718809942980513842038945203250130758964897788522325756715363577077789320414228513572908842351673976923284454463254778136935473089427581147945936400210199182279363383128215242096872834006243485203379898007451205754365283311816412749228959241584149264413917504335659324327779586533412388646224059532860864563547967964855135698054535285062954648280357329928999526899512583924341776219101947395798386234526794482131928855108354494461749185721703137777850766885104695386778520828711866661541722722422785346707322886424118678032757896254595029035075557556001045182689648389290261951432813130005317779120375526176012493842407756006317882839758521009471312810874379334043279863403034190314935344011389969385092767716770447554551277251405492918071361634222739607251436495128159954197489769804373737012882333770569759431958683744846904416424261999602822451533329234245273179635078537152310259268620828880485410746625622487821850582162272039080487871263716090530349754831959050680082355295067587118463519882945260697724003399016688649505396037430700024062249639163426441412751363145080689599086548305385778648517622770927591340978864434644000377724640192074660969901488546777354312663059718167629569300288849429349500373953866210280612822904948963379320888117929433070474911654983266412314371429198964713641883305938327403303337868121004146183239660056704887113394278039014958690620284079647364084820779361340190649516371513291936865502808017433635605820633499342296697902392746376811291783370991940345473243057644822899935572710566924425938547940828106810175361216270214491793369677602889707357339022689490469858028475223869423411255834182084811211046686035514269093748392153873426593316161822218939915147425483081157051001681253339467336771414280364758865355668173085040904802213405882736717061836292251294816353394687330438739633392613361172445171572410948154154221448094767896534425708996111215665837847091447909530007064958880628785367614593813968434191646164215807317834423943745692313339076395834472262138315454041418488904306908044582051297565972056579899631767624894212958491464696160013700291309172667714119950850613456012618185158378453933197739821403666429501738466390407630717874395576665017231842473052618170783609406091451061599708615495831880583387121494164479618678326033802503572453859721885328363897124580973920895653662783259799256843002266057414135253589069729053619600162654687464740209251217037539130345180125076925154847064003275064531773681858373095358471692962343271284999670830935766742045864359548411887029661139158387821803162391534093909855347161555573929244032448995346491109546071393912807023608177795806507105898806855355722271801320392459360933558909010214205071541727824044092100434930941988590312651699392513494924218639337430732469848265599747785133315373045618661850465347576531518494062750883193407952519185691922563620006522273114886731943866913576770056724613790481821432823072769814698467292538943953049595327340757429241688395161543123719053071012987116421608859662456242418858238687052676158883106238471189368610143511992568634433501488919064201759362718506553857349705948696077285028272381712923283572789652115235797075745785137601988557413799098966830409288088453024975525390499724971751617921874995749829203466765611347493560210855107138158779991114819725229253333439806915501588631205470484097310409395710336327646895002389928032199792357529629306031504801367911864877314377290591470050532557997095878942625633266925585850949449868703276002141579762712097438939312521853275987461161505880077517798398155377516494545582352111015133427473954017553605073847982197762799480908374367264317668611944038746362401108835626200285632657699276476240035190350747973615193629873781639109579491077557562525660129840303679244363313360894782176426560537497893015643106352129159158872311696302769646836526471707079392118650408535448518454374102931653065591793631593800534469686631483009618237528995387109830980985836810068272363894417218537019468264985997162270974376081512949307575358634554396949734939597609449513415099843496868466789304805001493794323580802180857065384220960988320119146792813594612962121108172799771791960720566302162576467804804952198807785121772024490754574143684831265164605984097183717255680092665969499062886264710293465362154012735075626170227486101179788998649630951539289903198254980906229658915657179384660651023234579060461010310490582907270211280734794608235567367608319561298118865358788533551355429696393639309143364136715059342486324909731915788140012694285879942585122254544110517851336435892824673064125976302879416775039664222784129458635533517187428912566315652987957817145741300596794170394181246437824985562980673729294501419903617086681365476056044701919254919663469262141093909641557887541421686068504622413635894026987416550402470015255850061678219603949546774646618731268491262916533024853896361534369765922289485126487967568720920515029130087211175038089352008598358999594971333493549205520427463517067174507123144362243695256665227314010168009805628768426514230486688147198573896743016282886501597301949707435314704156419592703739656657082217222913776431223615114290456086716469150870896208535097093923118430034345917597813303887631969345194892213284332516687424595295818832227512830063221366936310183188741248691738644537340270577228437799213289016638935341025087122348134030236021714153231774127446722577471858713971103447909259381226252463270649447830070887776570531240638571533793986640196945074620965026654475125088397945394781687678704637515680174042439515425323191871447474887915659695574339373833285010603237761468896962840929976736416413855111590847603155280688210477875339617504524777342558172594417097069062318813442796018458920488950119786407830883627816212527874647264418866273948423508631498128352459378819965861011690758783018481499020245493352609543532381394980882163649258022318934096505882116581530171002192795213057930356586944773575367632967732034263753898470279097896519295025346671573981213234196106312507414217093668001881351894183746851843256593221545601662954013922005877396714846269638962817239212062539917069492400820712989930705535838816489051259814642743976166509523744340317212760438176907893642178428021834392868142274138938790678397083505912861577491120589207822205499979575092545418712421186042134145290545512541045672769262045684850252949872317121378918036700935131499970228927012721835342953314831502572902015292003921892251581014160257743924983393437963110639036869119782404491481398097346284967440405820299699867949162434850883927776742294030792027776137131465930109756217609573184075154397507439771126165036762268367748423419387590484591062257585155880846176364837675089565655260013478814379354616384330862528546016883961495087783466631595704762930534256507773362704290016397700482617434593753666941270545603163806705817259647949548916106347213635241454611934577331046488631453499540704527036370407065505252603367023879253638722323245789261241794345583134299277356966808338182161098976699236788286405665164223862614185562108552786235039430875804879017657051494262642843266991994215599189104239888980841751856505140514149282614612929076730245465315186629769813718399433161151803025559744025838433618788382072644274323262922589924274110124498542323588592307380439362874385588852922932450192510059655543708501186349722672931139455956822979240946837246874446509776421794325433226328632556240741548108535054698668416476439923700819433667268959913882220029296678096828410926879079839839585304928923537511279193192188347345687873111323261899604939079075051132633715694016742545294935760877532774185623469744611368380608874939321354832336729147766496123676840449266657626513653983070005471970414183153201301011858349065127334665183176166982867176790324170344652846584869570794904494782049655236252192666057317025703441983422943803073205771775687396999809052734375583559053336907538827442633456617660494926148071675854208725105581701196211650767646654379494743867544021044050779746897673759433586693372440655678132641630600564275587949193508729472724945326326650847511901280008656385807479599014437412045294479276081423691382906684252487332979822563672131409625879487234248582928165723696076639850152908338881354743503860180009685241458995141704679179824126355491748949921617089440924044154129831741892199442454408564105039195187469572989043655051933630145557136792393180950818469192712334022931163210329851588471082454220259900968862820137988655411268792153758395431670975976098169692672030786505348725293726543540041941380975816373169063066482173603165727083576311077842582064397491376635725878124040158012576166818825788365028197692178895131863163964580643326240101083459847908354811671629897714166659313948302171423616601722014599663136560507394617929112418191536826343501582073122562393471209038530322370687666128570513899034459226307993422920618581093731007425218936160894520761239259664032365074631129141115978164817613461575536831141059652567641621504697459295291528100254134081874868860270582998480681771647015871088978378831359935141935028674696387736855142522577141952760937425133934358214131751270963696720383593417312462437774689966692228017042631742036828828769207350058047890167731548346513066925337019063765324246970536727915694703582086961237320542138585731073461928225196951388862870993489353043193861039244389978870018701682119841017053688045301106592113291427321634470088453247964761154283732978488721961780819387212319392796536902537368548220869484931689251490228404456415456434479202844346430769966165264498476830225190876931473751172730983490618467798001658745564104763579558266093448394166421040183603534505139196040261172573957541952484096890405930760256755090211841444606135449558434156391493133160364040084468635278713003830804059114077850413581877816219538402052621057773193365175164669653283501172974574327343536529352882200719277541008828501812841705850754085298198352331344318308678615306716558827003423310808758281342689071640643886443895189137175223082442329934237690668320496159367796113568064423012797729055613618253335565005483770564150355483137883341974032033357160024280599628120942874797419917558536245355112869561797348092758764504317535451123801739010479373423521967815215698056018779215855136736248430172383751879878909685851216784256491715506416858322836453290655217457873295704951667268299370088537443181449661611061636314385101981841550378982504730558119026769478156311087146854516446456606264089614777190838646221442191721647740119814460771943236839215757371851009826488082086649639740219389959192740209118409729673668809817983631945791908760657375340812350804924315184697733490110426544532227269888351794130083465631824399463081665892798938218475520695300678177358070133214361440011925729515957463557117993018428127096009707617343681116779705956045122242871322604263546923842441646603600662619000276778333090205043159902796608474143453274799036340280867170078597141078062108569279059837338631195136324479832577508974482654048326188821757728618023310143340782544953673448052957408118410004214465831391166268980529481963281951659952620449838733154891388069591209949078267652903087563628604428567340310569830062020105635688975577162358837716685795844839599469193618056129189300646029881881314018594523837494378035373273025209451952117373306049390479007051936067940184242734495783231387297601042984131471487840337367412976962957995098494524043107460186901077695532774374802785974230291122062009919920248614335421686347036597071846028642878765967148921093922829008333149247902205408264697948019495670700137427950933133301804305281260955160490258899139778562363376532183981752912816686699743515388439207079708300398939641731400334521381250168617596159645384644784775235017400386337534714108878091924579691189557105254140471682317126703875566951637000686392109298042938774953927395764732125386384497368720470645501572942251271152674890668656365058898521128416880858725512770553850389670009400061825112916395605339933472461679432767153953401027567266648344655327434547174350470111875107449612076382683745782522459324522137249993822979131400329786509154109797685403753668158837232663649476952572370708445199597802904138440518794488866392792043375555105114594237720867822250733413184250425149406308295148461863977793235803676052641289596076112154257530194262238836736703853541611094734078731983360861072463252241303806911971334087117041203646389466211789948348747925188115511309982487822668891356241077664189733251767517555588237663456629762492204366619007021300451559263977246271864435488012300010289582481293648854453498873280772819448798375954931607478444834163822443338151361246355969813817693268605622258792655657769132420822405989883168415992513251463634282750826679467702573265434370801089211943976553389856615368589239314640911587079236900339499600304317248425058564223822289887733437027453090945272291347121095321032576479613095134666297727982959269445631748733150063591365684503804558487424755068463561917246763337962263695828822125999897593165409088617944439031341639213385159184448334302635399752790039679114808476486380969517907545780317623967287040260682887396232263712149214380873539692596149869188485536316478564566993905030900736797790298156272005987290286779942648403811223871380840907496635383363159681134312833742806182223526967899683538085224307055861133171525694829872072872209943168405332808057439033515548614097307968521572942425412187879599794809058006115198720187725453900997515751698404147807187995465510125384616836831500198139301481456416092284477492626498848927656089176994728942169678224834728064164650193422169261504831601702905162133795211974563201352834984116261628062283015002729933217978265696448256017910054076893195694643442148163283438272814352072719737704080324113926177732025404820601776913885635905582855011631477567593496992003472097421374786847398498614573237293228806318921079003359223791795957774646215839729499457113326748336411011456869524039050739630796894061585634599995941836667399574200932275180669037289789327364371217139613953535605277941514362277558533204848722373577612646290070132486271650457361194759488845978036385081391961731883495221559996533345484259186114823823250356661342245893196744911965476284435518959394782263502482077597274841642609400489765921940833977230407517595002327311567356573741448096952430080289694782475336913576857638032694402673694111658929557498785256444780628244795964646091069742747197728659530424235672559858889084019424812552127491878043666516818845238114394943390616286572504740083698169704770046520719193829629307871739669587703130006011660863483168276060115563657473837984220803089950658151959677197628922156526405198461437024835059442034443780273778900009802558037843520213581376866017301042216464005432255540784276680749527534501112806538219151618386614773814448775907957185773447391331961064428889476008607820161316406035257973742479615898551844842344782115766226083172360527811820123193378090694799614354652531931197795529786966093868345261617972360476816488936022257882259700951076279851571537312708825722715587591087581053009895607168287707210387522314616284288546723734644117831128770352308867951749164510888182508669833772354059162299155001851097749966480351005979893469064068469165934264469898376279023171009383150339086048177856179669694653669845104995456167558949022737214332510914349753899146289787050389025327459455466264388340030671856844631930461045904715407911841755894489194369570430509783258620501035443662032830050173719643872765246016784925101339617716776220095957656888178126141757081410874705057048375525425259319276410879995726222757080133417781438375708209328991534077574702779520342605247140980671377133927082097179679819992293898724895659628625405886646527250741252025439425701497410489717093103232728772144246680122160939631548165034168061001168334513005927043644988359872174780594018992633519315733521713800787050230161146118352625072346927379271878426355560754612208600414843653972795024922496330580724401609374514537823200975921535654596232925243701150656464085876333997619095301207377544731963630041681331191770263385086777345618216916779799951522106276989102646826263631799728257433879262415714624046792040512290048684909984711890774369747151350682801891268257837038335440602816782791447040907128760285536886396132127007925408944587060301008787554413336458732385371710377671894191590300384804524492177144149305713285772639206570728865859692439118188023891334910716794919537160562926925341958975737366178561777137508493118504376797015230943386148959259537226650250862043516056398979030308336227508687502441128103234427802647179722707777440207884080172180614652890895392958168204623616311452112400131728617259083427386481093638064366541334757236921745350757522915349211515130737788476572183625773146888197261356726498302542276787470056047524531101772417831062768414643214434606014401837843812357866401076029006248062180600611215750718447480224869939971478670479505639411986136926547637739586312228715582805686062958270166261581330070762189089012355121157474444891280510255927176098688198817784681780351889200703281485081480140852885486770454949990823274146856149599376635786798884549060311254024912250286493699050525096205995177240359524081295187402567057961193044695187518700443968248216294441750313844108558002156128754159116355266385220558365596212367540561132927711807648106173780925169114825591622838800558630418811925861859604670903181801113944876832872765460379410601323395245394111218776194527415978610511989514141778930072831900789519393996552782956047172341767172502178877322564830932767707630942082174797037125691575004204953296416213018529746567556901027568994078329582038428395046263115635316787951963696568511566432151155824838122105703764112938365196365803809550335830750158265678154921052328370633550629669278506485863554789395950805631069363124725382528122659971599527790760334672136320090942765623700743749126447719634637895693922520374168958279713484267557489269772556392045462365398193736164870102359621233809401226914529577447383105265801548261718696397836292001334092868770186178741511395839838755791993679650422772948894645631219986605249448686286181454943192626543673494641495514638449149981294241151090390811149039804365230034511342237796297270495651277101956273429936757996122954901394373699358538052221944215981470503175086998584524008263618302438407120622499281287719301740364105853905294232059710717970697128672042722036346228599256330320689436058923495607243359691306447044880181738004838750888895829932340824243630379824844780943547645536431933962770162539678383757888902513963136324361707680236668076610027380342995864590739257923325394682640241579968667764596013786905320158219261882277207257348380044128407885966680043211579182139892681582941316635368016812073256028110089190578730504661192830121812938127444775651403492982104471771286396675428524507902989700944127747107909440750438553027837807261002041114802696009516382464579931938397565710520361811155529414418700924419837005713339850600875678794141206130337820800794478355559203207915548700486652140118465656499203832688920450823391599321186645081455035677425710259133296584402461583730297728623419513657175330660189694648202049475306802913449079094562190500911944334512598367343725452362291765580830539913337841865373778090675868989508428057433407735745115520926479571471640716334119889628547552570830304756334484688630181330506066854980689538000142943390841545867959751322920843610926262203398399607573817010609609758324134878732546819593068374060238388675948004640188273632114858330009887941073549229636899222796130380182355778727521846347866439328746535756340053324239243844382732926070229864374454227003712041976865971560951974707591621415589002509949359983451560651345871538814953583224300332839125406087487544959047640683264951673458596205762047033858674874998300949188738725675194195726772834140851314799757526404833426783964977042440544486663255172153414520955280967709825739768302560770940122713364313798606476540812260724443266743432808716866958539949883557444316385633140459909448246137781658444552344247622913008409162018876964313850213274109519887103686355853457115755425090963516968452225284173434617844446489782384770820159676236732513605292633239943800615786532581816642904034856785087915461213051273006937741842026311769889151559710741531354420647457164217121340192638107698868892538470105109556368365556584796956337072943000987314625378068846777919177771536323643188722744435028425807424121853368342773445976019178613244993941464667966783842375121693372145293375635064526820334788380189740269509355077218831092760480644922013153148660765050629998525351609661979582055550420772236496585604144171118203189067525030971065368952844512143725562629263920485896325690477217271196086414457198682045699301105444283808743545699895208983576490310769109493789062106520946492626025079878210063237526906292514381982573783573904218887562327551038054659363671853982016777564785771354835001975967189930045591649992296364387573888163070117977086928810377908214556239950188625790880480183080500016517553287569205965076476777602065341610203088160201969748807854485217170940708167387615475768013424020938819798742392692832835825894498422115319705102359403760444819754093797459054948942136234816031973483375627148026649793245055611453069386380585764770820381070398018793943024198978611462225900966251467446718542633248201443730075216851133862619219340121175946608350327779959288924199832088220516360188377393269320429532588286294322072057329233161028682649006218997244860535091597679804347517039625500735793049332788366425664961630952159422475587607037678209315796241677570801397834006150546448377231817835717943568044037156961027758115732295119564179881446591039721873060318827497213706643570708204380239158993773798413949894135061781782105965310250497575820376683423968872238902098791615983824441312597131540944872536949727218088752684770109444715074113846925925625638125468521156156757413378027152141979167890700160111264547042015016833256179269410309760724904711542507637393043473497207407278710089495850833199317804828151133514096207832699730241516512564242071333317589544963183051351057279507940205392366087447485535185236281510284004848687151127199768198374351952690104041796131187416971140134937990732311802691379723282154911389786504208337676770809528031569209110884632411275496313166650243158278075025301414051063882713607780276791222842024228393392147646030368695687500357867944567936734956252057962685563126326897525199404835549593413745922203013659061074349708255870622316088518505825279684678343566041506552695228363882192493212165339927872523169116482479094429937891707472030348724015813609256555661976170790777262729140168820176426014773194841279487719317853528116226770646605060452172804394509771094476391661897432692882662510038418126078775430394116440423256989309746474804043312329605898238202162795444995670973745071591724720291036442644284244028690881108138132111263923970794425464674500350929284989932988096096650270087224714810353374768989878559332028115555286927418121148800812538439404973148072568282226591940177077199849417847025791997551158721492875834235430005218568807280110488540490301255403534865344390437881945316144830156360913920964883868357538922391012586144903809024546573244846870176596708933499767626971100124926577171930451515171758062104714807627649285039334364267523694391429999005013813593981895622871233616528252520048190514026443767384425290783896144837201006561926991502175407901417767743040341686597396887641258170566623970763318724624262765694799621304403186116341655418205385641404741654543665808662952868735399432247601427912699252767350522208146415039859056445382123034110123365449917842215640862419360341593946699697512370039489837905756420374226664986555342008332291480554117941825521757785184587150102829288042182942836415752080291633441097293832870885081220141677884912568581352149176038284749582518556208961917993365390389528327430377557568923244085485628167022619204034177990896913872173576314000522298874151823534559949101801050102379734128109650788136783593899107642866107577316049587136432464725141804980400979775652402385219488919919645369485158474206716958340610750375165442151027009097063602455700264610847035783276089448787484380382210502587717852816911287929478854259463708730231740774422510204760022904040678360657759005165429061249039357045337325105035541772902877407538172784378445717042437713239956535189008240868709881693986676996060874943791629841034213730068169750362392182022861265147616616521719078087849715405934148869021267712303819564446755545288230674852172206161984559840299990972901755834660714235273391968859203697897945109712880482189735150415962387724493185377504943785227850752608343840761114435713318602864123594337843897391419429279254895836134572487849218682534820426448804364796712653223531893087680154283009413241871638701053682381516241748825789413428058216326932268940598021987073835696874178497215108613897640945014481201582629979029532113263449502543870944267126277249048855367398346227832445305615406523802362239028227282182394847014895481221875465126528600262303163273084396014517076784109005238536878409151943167990269719568379963749244967630221871716929343782317489909052345740558373794345089655471957557488459796019843065504884144822977373093978325093093694453689953429139652962326299779819565863202162170081918714762784458835205937788039379722921695966263993442367563933885983604208414000498409048696631278269694444285233716693729603449462302377093251079359094373601422896880546665025402735779348439274840695383007122700348474999211417909696549645314455546885826902165721033838016493945646265153599240671278409098703643735278836984604246889532147381754929984733334497206044018887738696134175983782986192213549982620158623400008332014004951888675575494649168015797954044855267426858660727204883249311854835997491444065056334707256463331263934715905161523495223502721312834327785194897509531379414706604421656165735336985205807287508718758765955426706616015613557591701428603530161484525943036473847073884897059931324384619998377442391544868549618890440878160882337700072149313850771248365635836865887853826750422044200718160982551854109751652648608373647404584736201956378460895416592801594009910638865800277670392623250838075195141772297637902782013829536462662692695935026593276245935126326063769740336983360049375412889879398217487465486938252305372508435926496127851703438129590397101962297850655878762569597613257836404545759415229310194007959274233326223957734654967277854562920539602899002118892834740419758156213962005855534723450146498504445063667508603895469461974224307867159555497704682157687590434352124666555751353491752308688679491826140633595672784901655405972043802863173833876228146823743766051268390799527474930308127819657826846147369824851213851400967376516432638822314331188673030135790415063827483076916982668154462699783366216353388097948345182106541869084675489979215960371348880344148369009674573328304763853034943290548936989934571480644884695111638481460950644519469812399822113770325399098784830120543300374000015843258402222797928267877451902508093351524368957849174632386100880917899909279046327792959224994233216940514983078513011279533471189942121146484811515962965441402421494199124324140232220211627647890313225856777258130635291573436330378056660049505135872362180631863568254850727194387262211727825721038664389369283560091046669064510748049664967625436171775392826383693263337775817836197189787174310756389456435099123423018923551588725904441329124640573889122649204604143059378031531491507568065033321589717231150160148575690550065591185959897889491363530426653468270412900928747616977369094537198599405181527780164176946011560708283428395729977228874651358403231840099038150773784106475654583755813478558172122024214693842182308445978077661922686019108787065830326750878934194662315512552952155983622753617911154232803189308585397203857428659422049289730414576960735982308523803684842943640743918637985622044359607554809267710008034348378026764591929855871537614512467726600590344087029678411991198674967224760861830667981026193554610218649911039101334456156484677416698755712755433579520093804936205306676738875595340008573823298704403669063795271895358096292023680998957504998567588034703460649618585612858533451192964223232233104914956580464885225026294202006489309502714508106600145868249281331827210203427277552223788153228608722369982209000512077501552673683639128399152652036945128858741611816387880060246178658463101499001029025712616616755935571933458288995051907498372447414881443668019515903065703763485240058978181619066571995963157091267377002407652027984463169488954158010600281966025034186759746796377612235122410953193541754584275450152795579985826466137932075174142444298678378461560618789144370745536948573564383759584439159909616175242962276591506452060825811699650720685310594248088450050972963114992854787729662174984200314107930931894266161147237343268328990650639574476494041434210628516668358280462552463378718369906037359176414649255730365132791015624627190893720834443810075769128868856772126214047487028165669119205192946887350596949298718754745726211800366121981874340117316926028068162225329719819936187662923040462938143990624123130448449680391001294818330859196437231630599580331408859565217876449738546013156636260139477434238483665178070026423744235351362877784215200783708456804509560713527071985198545017609706904816969515902434702376208898285396182882125142223443604624264306206683819621567212674296770881508871276520679419683990055203765510428731242799175264658113948950525475933624337895222059529084840150038023916155226016843858456524066827174999607442796108793673712607759437185783367940959640572436621930386784038082915402047878673586883511185175520153377068832329754253171826865722315603189617875267913644892767913027357986485587691642122542597913424607632183903344205380743035598312447354019857229583216923271921589241285714811601761079990357988073358662936490816857283473658974584141796330788455855328172152584561419888981769854038534273167274616516645738345667558757283871150821168671879111983102896615129533719125652429400495900492559699524397127852605430488503069947547964671604814436205903816833696762054232301751880736650400716835550353702314001887711026955936431445664476548625212967429802252274027096986555834116539075934638778363264944519507353297001398917553989870994712526334614212870226215214847066832238667610010370794087707371653026741483800918048392857844040719395368333938027544361800355550562393061410891783765807268315422799856706383203365467342365701980463456476150895792737916501926930404951689891908325511754512928323323532697802541682712798617608943678546626367011631102585605858620271132076125261562751453074979771927870678946943772565713585366437442207302813550862843624814968422996089910913167123355628257976404079484648520024261789116927931356010444740391631557846613519636284223031604854792196530805632264625557416908748093451464608048829550598906014807189091138275372095285747820326100227125059655254583007301087251251636617767833585815097024430148566838427809464356865547482924427827697017064729196979637315894388127530951142111723335519131008968337253078443694379463776072466654017619584405094495078011658727076348322125655821773437783827327707656677923531229441762003795807652422661488876421373786653170123894498389131974928320051433546245647815370047766330266422816272890401718758981403662374055258784283466367043074574387418552960717263941751519112562682565377174635554106977670172459607197800040129800967862587703442325942801903046134473897578778520204373493899405547996909077397253613720446173681073017358540206023751942939953317682551276916875727612976243960739446899092455747981879167805081661680044324933503054126004672142537680524584906838581632205939000466019824760887321519404392448828879289531429511170910319774329462244940612777552381799265885306578051731713494600823849591514694341181719469628295752904223688611382273408607421611204965760298598179643552811903448263730968774764282155799886032039950496973244936620732701093465097220330496979663721783386583507407376882180850056094262071064466196693030299527325459857279835935500000764320742044810770699919246366629318566149778914714516637873877138271869050843709653013548422869410485253316662458850590089266892388130815365952164930743393635910500560628885659817193311263874427938676142572127699816113440859991912723961986563501517110754866979176889431381534403735226785628092913284922791636617679975923752483407071313139958203758953506393483965776879596711358399854428873633004320343159371190007497126074366742996713052657164365624036154616281885603131053299244481241791024885263595073888778498373496925075348046283947858318527234952455500802431461006790288649623639665951494596603468744507615995714570514460634050408487231943867119484220063798627134610600691682297825574376574082314750714968841128009581299214957362474992763820662753642948443199091550262721184793907445842758045479994276743016056450692701121088459957699422844994614609360433898485948400948269177001051001963636868339219128766029624988830768280204023278313539556545472503686184398257042864003399327367105603134942973220053794333731584802954290628261902515408384828937048384781041526717231697964930707489387364451273140725240134330979496047440622556966829050765638809535417951666124996443986555761746459187670411489096914598436335156591690119908518271460269345120194694058319564751040305008603185597344142738566719887299710092766666337927516660912749836952617327168945271190942246871315143543066798651524748289112849290631843959846881685494467329276974723258302064839329220514255529338829587674695197717407311945650456604836934077967682633252130331142702510950979137875393694501413563769969710400676524353712182921246117158290078847438530231694521352668794821622719340168560232845481463643774333299897182229070716637125210608552310157556021458568494461219982986716287818879411877276585338595468025948219521826985428844099269639677324141450330181825633815155913137125161516270289784072459317203349354083431863479704911361952005736691685676702239668498065126958594341784027174466151237454136781084380021700675468440579641779967160634193924294665231171383192151555192416505734471039171946791692170945727483051659120971197512687705680571672852566256773848568511754853947910285074370634876810105182158707899741228700592470269615316913304812828061068759243420098430554010359331881176299576878744494518543279961643120435166114902439065727997543662117342359963397332842740260874869738686578563641517623475064452580938541616954346750911263686899057310066615837486987079436406518735925116365173838934922090571875665617163376142025578809352242419278953440807140079978742653072273241084641608046670479190953215869678571388858164748316724161492680585593413256327091451877877236048359297118011750734109456559071937077648057223228046155927846818610902975254573914719723467123010998681238295216912142623014271692300784642996185559392472331467783399426654101179590045041151934157364505264907861930303669733379300971475047245970652977686203315793041645114544244538395835566941736352347993888425318844115872121686921457427084183241103506936709504384775147526950338503221430125097607066226810768076516683583564014907359303485205016313723007946272590000774302498775969073894485995830545751472248626171830477762052741763858789690287917192271557078560449961907057490292488046168393912994459263603830755676764284838328627519299127715875018388454681263988232428686733891355261589954846876990712850892118509705840502500356840272874632318555221009026060802935563152748768817582446206949290133488739482783294231802667438405134071683628017539044350513249366409622766768791374137770381987316327443843240739471687567780432864312667799407919502241364593357680162688571726620037870050732495562455650857140574637169847758305727679961225289992161700455365911001507243964972446929773314136127821039662463963081846323695074496345732544727554353481483890461303735840736390990653943535583903662920537411856583372849850270362111418454873971113699237278959203143408098593268456103417415158584496596502045160460569119179640889822001380613847175307456460295227513196603569961701135315311839609901538516908313902387850200125768951015686131962528505441775791790955784701450618301842877998868149125313927533175868898662187076685480986346791802345409910495485296259638778035905581509795624381682738152433974157235079168334224933496869430035422876227563526173766152856613767850492017851810870204662777920742403778910717252013463851540825143354906722087392229488392103825265307079059325773235378637665806294153301013755150578658014833995926179784672503185161609875321046971912519915403992762519759593158382421627023833026140552876799867059529790087408519877389555783514585120335077918597415242430786842002606493057795322388762966052112045031265097149166639724829621230038072800945372619639462659301107293500764131693240495390753085025411762050296197067736445176006232161168538800462110825131044293055059625720682802674533059768043307381269269273772415475194733953180934388765347193539286260792082306992786882788387692324209261615657472284561332289153062606500676357798338105099230273514136568018405851109602717237709259339454303838434360779359125280832707891558905907529275650414585893629172555953334790979810203959279543434227655078189981963327732470866333353262088638521967105264511279225298747870121282280056101055181567226149722842239214992976216901279240858672015174271111892028999367698066668582678097416182103010688677472300225939728038301104928524094320920887980196829215676471866840763785099760397112718876811493314413250275255559740392734797144223506180420501890941028819956680587089092730334042709300718221873965034287693795974952811239946644639455191836826415692666801543390098962613727803601564713282687916108543357285031390633242729222129910589494744867073953092915579003194611105648607645318190990760047848546037906928291589887407264619447969295469276262920768205065519416802421316959201945239795008688171009648543736437000540789530823524171094414337844632430848856083622188005385935208552944471041283597134459964308320394566022058467449315749068457778145728745458683710308363228875904058114407826379945419104851855113299562823709976558093452837033794376459467050147367929613219881086301926605139894194465002005262284266850070336726650199034778497254473834648892132548301135931484127863133926849866813548260018198562797085251158389134328349647168310993371102723377720532527740543409823244618948779314555923212026413149915907723162956966107079295252107193866755912922596833688412716383137963611912350761182475577282789212331879540812239116882802433424048863547811328049207731693811042341321207032679455784409222015838593659729914973571117977266469565378076957031283839460541057716225408593651449809732411556423985700236810801596410737822032552454865497737134331298296701790920996248012388393057127826595859447693184318207421383466169999667335537984994537050481600636648459692761594610464133462364900496990997102185947020687613588008105259112976912116314042947497538391574778109746421174423212390197580803167101150695025128071301432015681268311498425498214655452665210048027365532227175940816214807721475849645231060887227300649408638877643963951790262340907762640354033039050646778799263350252021221851917011863185200168968895471594417784007587147157717216194792045213340331112604433371926998664707557364414379503547973146849240171600584881218999104571712117966163597940164659134550861133500496375165667845470058948183632425014476667092680579367490744503837431951768476302000651204328075356261175931120092991732272633519808753105441736076708530325107999499591765610518833886981098647665685441646525515160559730415876640494715985017552093149477465645124310549503334280898559635548272520523297865184493834516976702428358253541717016587208262948647928951177032385110305693989674996372429235100912848157920613404413796106684229903534235342810530898410979843350927926787309368537573414480205939586663676661072153072463136010694892009090715374334746407548425851368611114263099416800709146591786099530409129508629923753998084895147634033539438739902829992228645082011019700988814285920906418171431821924446169287069695262698205779832423632257708277953151041367495621603245197319119727115270822339580261285007420692947938056574795125349494097135443918121230993192340846922691319079379489870227672541464469123336215650633403008991690577035792362546359477137826692666905594299481782527247331833282739803437541698034918292023748739847273951204750951750243155906785100886845799931367236728602370896729850567062176204441632439527798932556554727644789947848290843276547583001657972701568981349733599366674049417743067849639745406241951546471689056433308583099944914663426337022401495686319297931556395873318112893595308197582933422275633923639093201141057271601430695019057269304102890882649525210419011934722975793518076663630495961842890316133750288606921985485726853599231555811108149080986386117781974608672792773338628943295848174268541603003403131687363084992734008102949804869845233742134524010899255555999622085504046878289501128268103950820609771933557237869655826703564677672549732964916095307744930618972129198816340771922250822132754078942379601052308891972283171526494150686317670594967793851460127423713720696445092986982727295857447777778397057298215667207659165564678006532621045959897235243448909256824999154740616559470097963763992570108836840478834741324604968959751853060418162797430217549433569216631757823649656041988212015523807070357554712867599673918592217016940621885243551781965392343248634358699423231902135474421730461634752289011524228769435040920912551310704404686046237777772154457263065409899309268250409788726214456562132122052874737512945340312344701143064298362982093843801056139561662341376283308030500537346531449223374733574277335761801962249060285524218181036112484390395025951516690548161438708044447082762824503856366110187249422683390207894173862755027327428144834308772966187413734816377043400722145923528643351147319707153856333955297900696060935934502526058789870905849962218146270110668493533905292343341472540158754805881424449044393361193355745715812837527487082009867839833899890591476272139877559535466363677093791390610627815791912365152148613189441712442626767499812886616720847556927977824920520499185096054974549010322594877390432413358499100648082043855598629913372320275401328720672164457907247548146328875528848097856568396521225915732327350221704686682955356179308715346380217852316204183095425731414044161200606640378629190336336677294602738944766641378757887875170188512000679381705789953777713668090309480771417014659877715260070923434227813659704992705886995885859794188059780781315685229186085014519991655597406055863131081358528406318945321895272216799494775393965043865337206147788312905084672497560304556300830348625596378184214290822105218846904175456321818876090629408592925632359351129819997889673362308567966741171136904348129497457729624765440753910334474778382330430557980740191864589511852889061063390342739134975362707125845901295304952745353366377865488629432253384990134136070848870180005860909785853829787689445112077977264842342539796820195921435244999277053659717054131204127321973883397981321888204704091391998449564180341976170169045798861450164653886556973414298984402616231503551945845707904275568377378606991330075142288679575701310443594199271678900991191105425394053801071675577025539488361975442618240605947904802341481259721450285123886267400327779332453976173714331337123485695346121073084811614669470993452935838414585561634266237298579533955719371794107641454334076214528273606560233369734402350402738245759937404856544523706901351927839225777602617739887567990031523636834724038792483152535026019140115593608451186119743423626491420008321408951780959428110540800755016646041014066976800842362051823944680294156461988608576981060548442406706186833189281458545470744618198829600131367138631052457707539452699279854413918407700292709904178912663420987332234069220722318202328117480317079984052230954056303801698593281087551345627730348832321786193713950417070529865945262971048132904512700675580927584118593813240305200464105779739869728615394556036820117525524224615525842853441316197554117426023143064823539337411887845972269926061199240164888308252836000282766397517397337567598250310913046721552024733589374991830037067840470642857879617861167587829966792386101543966945479231233181659639764682623715286065020871744764622471907759178729718444192561471114922906080345607879256154835940283721193891020436798121363806929856855899128142803225342943704699726415494744052281567166060826076994593288275635865812956928894611622876145214725053741244487190525895287689497557274475392054255400170983312813765483480909744662268996368198037580131351739091870410214135109091173859467740804274351606857285041609216911421441949403561715684280815663767163441188062492182861082802937325948710259252375752223202706544380761091109242389676389493638392062237527270299088514901460215709205999115241517302364074092185463666657993650563380019837573414510097650794736305842474120622344817047759306971955581338064327931109906845226928667151376032605276620512304455954430224509090023196312070564659054877663935864286812256003247686725495109668825654993419966803721493935491488811497364179112245130794756272338545440909447263191806385829202682808890461915378999763918666960079438046184415838684738728247229862279195554386412072548577695558604087498379890144691166178851711634233845850487866790850282007326036499656443658203154352728474203813369018594938378969846526964605010271628724218595159842615776686483157871419473952879768759577164844843031494977582556863015828516905559714398073443670057282159287140146544151886312041124429269193279158725803721894963588025668568953988318107579626707354850474947055224664900413336491732884317142041017613752244400888542374492380838446791604646289433845967135129721372936770670072994886400831811566338267408548464331754035372298640309210516176830123025076835777804747338795726178560536243448436791605915236651468745359610997868248934232848742940692737264882540533843485439382542835427253591643737888995642448902825540779781623237905599996955179157197328655160087496212510794847824317758349594938497593575288575029028740283153679418718861217114306338130019009788911628274450424026066678006931511949377792925601617719141838323802931851233616002205517346230578176451405807556135458068886634399407031643588038546868742777695504390114097855146896561640854093176845632457669811642787608791904740254879965574765729612020269483746136970043290395166660953765675345625569038146163522824130047290683630709378323606946572351666213656893907054632117342757007918455076750248573258333904027854346522986703980764501736182535956992880045255744828072938148738590481092973966473634163268103147860299867598480461374488935057154497785735067045479485320521337131919106632473801477399847182711685570915980029820565416346564479615742184264289726193271212404594550552487072827858636196467563702170010436429398578886475291180696212365880188989661559303066174428375130606547158797223363757393345620371628902201132117051544407398502063951878123157713389350825635344609276361161079261488951182571333632124916232659626132360210515435304496203973442062037007547989910200021590432815156280605981812440683770599295486109168695592248203053759238749168477920353069905745177905320263191573163687731812762582813030975100114590555540845726997902059817993504175376946120001325441817508736090695566407476827473130689774303653416504246106817786097405301152601458969349855804763340281402219707418469481464500169405366632817815735800185140113444334252615849789333956391028092573335597861337226019830875397536221260889415365594149125463667683056430424545800657750844245745367808665944903532194007895305902625354216589535716805125121919352485379152369663485540927701963266189170919545484806634502472168603927713981250001411841601957515724730935464541252695294003844063523406160213346593840055907807243265256170252454270545920424478488634447932020990221693116611205017407475802127399362195604787895003011900096013514718731550017163815932623140194926229924742561117704383276378149894522094201842914866798533970862649339183312831673834522104421860830389985385370468719305816016369005474562323539979863716584750613543780285746770616633243776022158622381747560049351951440671825499427581943994149764928971720858587758605544055314577623758943261679007787496815802139817478067560586758091358804899293559302255416164354904906935558607362522655194080328905540348500710146404032132993287475634934227817758977802660466232995844290984588732502944858532749899267108856212347452014253582394075530637352243373012722029678947775325592962946139139876953515512497926855928247749995514492783631178974535343484227964669685947067954591816294064157932751763188107544358275417159870138655090537321812534072723242681783494510254311481934564611729768079638690032702577526487162770967427515131557055754844008743161918444686459823134266798731088643454561002841093855096277593720522028724206232437243815392172690409730404782260073424203019387384750056136445813600044131125000705540379948651687683068878701624479295830691152268859508284173631013011637360362916731603913490853938954558350882574029350043073824017323679238961379013780450544902282598391971973709350407098495669434977170226931965648253027219022275624179420011824327064787257400797826344314115842656894073006378666645609429084420768169051667615434709161462607325280006434314270491062575856704570738180677278050118496970991592630668629033103627898227800215857038126986404852554818585405900428125907421259316653813550093850769243202621638589292927838223164683971395277485978814912488856795521542728961742742792602762099262735752990804878527281360179098954826231453514621089295821529741294184246106466309893949517911517540910331442523627235658347250972211734272527960155843434859638099200868240785463275849214746277259596551249233088661734119270706468745434064696692986294293983768566437850073966167961346344359464994027293259109220129045677500448302860632331228613952849461522550409823498298364933990250192944350718102357879201145061843037765943193160051512481445570096070154004855491458182245209743154246739163666023406843646320704068715778307198226268590874755391972939501782525230062558851288798449505155614952831475887316428950587601045635934297652119196883063683570787107260458253320571718658714140341267838481712694974586263276627851521316625421225701103300408388423849974935543440324847430165151858061108395121905263504146959510698009830141979403358482011368542354033410026274613282414875662258029404401851199318403984549338581549050269894960850566893300296604830466390376696718301249545455987330305795670378806730799309851650611851412807797429919390715757284692000403487494928486736342255022034296609757203043172730448028130057574875307192344953481879302160804804971413096213929925781934762557263348266510624879712764076593120605441150343888272454526759947581371306576874704764354668690066501280113612332177317261994712139892830093934774161763472680959746896239506417547860021881166267223121844982886096113986908273385645034615366206615422411740947556825590329334464020513988867403005505886189889151749814160634670468019139329798260594252011476726081813451559961676960481608132921371405239509190601136722776066927253621643011710824258696379586455487326650801403738217713235755444417617562278367915203161616936949346588663414757434498934075216964876130116964182565371444472533520405604393259866288274049592013123540370507247029770757906430679097151859663919868927737297018173760666563888743316141949256454513201508192485011732998823297994453642678726461936471648790319246110470503970375119405069431934283197944528036138008758358205769433576456562197143692990040569664336103250645608853493388504252015219922795265407211388266074413287596245749279891833797672517358184365188038027093982856294702347519803401696017886693673516170886926499766703019570930848529748426699556481890887412026095456930782162287576558731791871836339506229875326350776942146566323358180921868172708614716702859081602407166204531943430377908565253577625712334162904878421892690862812028755298472033935377630116718495342620024501797751484130255036938569161778989305121623182167662842143742754246285849358675191888622450991333894767570719389513070831940010291488245229753780911013107050501541287995095376740115792168277354365274617461909556226971517929371060686777658230906173539850249060037500723830425056098372547668734154058583874488114357989527955378598744990556684539429348683052489318136188487997419841518891460220128157130963696675839890279586390463242768999764138317883223542649101134289528951696204208317506306555137142925613170745540770804369400896889236179048242136024310842465332663712574495062311281887211929250187500892991496041611076818330372618297016082089435304060273489355895212372759047405836841837235049674216355714269618249428064809322854533616347101956855134767050895306646389016631619035349731931459695988261762400317174675033786240159300327225605479386611523358640073195172748024598503136109304113280236779205495398629621031465521422429118730954232352277796275306464720373145897060761285906879653364484267258925699920036678926066419938592350037636959720317116332848252148864096620644680531071716103286888967756161934794248931804558655607979135915986145788423393704998620352503991138050025334658638634387816734557920815602139245642606333677379365943659599645656335281540656161955532906389542170061114543634254185325709792993076874139053005717729487270241059195223227939798141174433206530677997258865851975292085644467516462030767769880022141426999293834165958121731646331264666285266476946169284960362337274449348453892258095442014627456356922453877334922882356225722350767205680735976232714685254434622987886365911365235948300886781140349722510255109788377840910868928361442761406446356913646110479143619073839024148832543397899998628297078033672246441091278490838385482480897169711384311237135151597178628056742590455687246807746359533691735677591543616115457180624056592592810700146098046100307009438088433446181416223308518098716285844808881423895249698813614598758281282679283696075989228126023527280111965291259220825974297487421559896005596221531447796002888048256450606688057490999005016193308565243028785404632264502698210785993601727633626561400218138340181890710989528517340229490234286989438413488782231700841685793561999985698052090333650667049680081489898524666065424447670333746588549253893504674938744204135465100450039933755269319156730563799206842051780648776148932738517072917500464971104178853671432763198619902700270991740007115396885672181298657373131068482436920567807530323895149392447696749307228469030377438737908624628285311331497492003221204335598213619941908214735826792607111925180085242815329199492935399588555962773021580194109552626193627589686506628564977386396428213707310943698431639128829344413484068637863834353592674544898968203702938937189076512691043568326845479210267258619162486947601349076158975342926350864781684800421624082575167456426843092229714833654220593412541604203290230871557003020137567880948700118798392899581814520986199476374001539103303961702582150068179747375772268417964420692119360722117509699123265828010520535869984764463736958371119745199444397389483844154783963428457437556830874060196025845722782803082833936637096647367833442359269758047919997531633524974679058062367433138523846259063064656787601457044788686158287894194144602865684194057791614001012237622834713201889186749257010531123346069202783373586817701804102950337166818435723066975391484655616839454063878105494023129172945242275113394887699886823109003512760298226169230844563297778406441898544705270079833655311133495640684333171343895156911229122195349886765039036877486485325416876678788558061831103035502383197141621382606151625991028386623724184594158038440822096953792666815279781021990204389310617011994920591326288021854110762057270597090941367960168234005996938431988886182778201280969336729261021143822961119337395704845219266808437734592539892536995400366698980050368988155081441320739062282238456255131459162727789595143918060446126427889391028445418867358055860705724319259842638193334105310746304515701070948228855689672396792296775559014007272812436265522392425806545227325223643080678883432913023757772338859888073007715565168799191304007936349340651752883425967366123980543553639887406311048934018305290512443043997079734762081767631091420903745837252027109915014367632420237014897580748349674924446731681951135792635381708175571716895380922583250057059863158283765071849403360078906484618158921244602068308018813027646666211617119318118424009774901231624585407619319366115197845718402225498568879104662185188827949857436308553382277866007906047418946407739643079814455219992940823748071974815319878204727433180580680051414622258983758352168289771089750829493729479207464987414796370871550062381296924656639161440400009838040313408378195372892779489334723842051993341818696425874586384078365205119785715489840994858022040030117104124317502599119442679470348961035267481370687409381245777627210838925751013561302610437439167554459134230272605672123075159172961671913787882846732516280882875184029314491310302684318661518610541782179627155131177301774367083335332806486358294203045589796834235552770520453775083605380726511505644844301269024605158847992955431120447775249725059003019622102775963128962749454369268227079508686325876373437688469318555059839217092427944058002688568351834497691428110468829201441573880544462628645206120137369987495232814897649250038347217816950222253694581135984287400924299005573218295586989178554703582499141705481244421942620554263872371175165408251331614610424934590882002040321965968090083353952004215972383874912008329989578616369646530244532611208958450763369486295075029410291671182272300206301028991270280872914710705821481913843560369065639806412936807175887341589956542886125759260938214114304843900140802113851110708177809148651353659977811887486877301780822350002485486691746280060518956563564246264635824261390464599020721335668692054737475286197046766973180485458009274593868377241997874748339778780290857304422780542919643554399190110150703133547426237437908646405268285562993421665071449274028048435755817701708315976664752944958219842540308801989244900178968665204736711733504866836891509848714716588710983028638567611287537317321048637083104343325395907099694345267828798259828306064433762903168320380475923585271470102642872365605997632762803742522803863727179056424151356530625788178011891107381662739772806447176637945277017148724184053858134639418946433956885873388121310538190136772088180331711135912533127639063827995668208007370966357303176096195009129948385750503270879732552856481934369107719397057775360631583999999937757620013754113199297628252759565495516339782450129813291855276770902989861180728833989519832799526203435152518228880537240873944437597520331209829559262472607895509366705997544906918825922009645500975709513943759533000119831955406448175533627362962375719655258681044383099586749134743838994601198944835446786315049871163372917376894256941543733778455049358075861544121952270991448801920667848189077427436084451487950109212187733873317590305508401138714404333093397099072460817531199578065020811739333886079508445182996118213314444309886130763247360642168816270350792200444302811337651222830719657935515495922225415177950932127724700658012972719611001899228379548887350927304827131760382478522047732602452972371944800221998275168810932542971494146331155606464179521742724977343456976940958032202171291928719220906369488700057876153146531684178989939883847939475431154767602303231821109280672533303455745647730121036922841249537334121097225420738068546625726332393265184656825168047827752670422960213181321508295496823811952788357687353260815160237274428861658760592867617739633835544695568339328096319629837174321207484833289324524000294612090339428611920444511636780508950282429063808327291768068952110041640616576637478712572104399329718389338095661439196873775423595952872575935330961903690512378786779021606868086553421318860165412503340444238838584074545915873767722895438550201875323049596381097757583102466628876357140163252116562539125275722173041269831401882847269027829893911669135228990863468051067991037273534210303652471229815642830567956036648565859979651238352639950041540596979925087472684250087673232272466641484635464802651703135193372958070346873094445385371406971600358267721368264809411782768699757232492560476920680853744009089045047781595264491259320138791399053589361068466398519297120244694404369093251061606039589209933421629803013905100488875675082920010733680842161526595424241788656841688570509345353112087757430460822986955866330389532770173564719648969864232918789498492281390398126539301790551148713659426784708837554720800831886309340066716385822491154820380786426722043378984339009507887483960422395606403032702266428668760971856252180537304882518762716311840505565032547060037820973502844675899682959962043624663092201906595072602924824171288976974426764722841084027059265648972150759600067224131560458622723504501112052183751395638687100967804169486517748728727916745320693229467231140335272484322500135748112939699460237679036901168454894099307762138910150163123142356007709937489176178134330658810525979383440941974142209184550409165315830909271628528246634880993352436691734113585176699870335916677090650515773080613102580291797865174122115242077087228798528117608166975910039149163453366979187858342078365040704230995093840041916628271799893228728954181838378479648155256496137146616357287458977096440700921851923746432834215498120262742785185947354943989870183468687966038194301358953640599201053479686655227552140055342989103235745217619177463051983302044869867190028503733808731692681398599813521345737755505836426200407109768216943891441969198428136577339240251694657718356584855401288605462111586822161395933391205441079839551758823708323780365364562727899429054009904509365967820152060841618974811660822819319445516747028961903641983276286697894177218782200154971591586690679051940344701619988469228050441510331739981053777737910130993639876236974050461679135851455844450355686626008730698046478462530455146435681717062839354377349727915147589648739956379691631435196855656480455487113284845414355679947072436087631075587151126963112080268454651030709903357429941783682777581672156578980676937911271735632201726528766112538742334494242843179782083110884040174996230727394941676923194767779410727815944895886384950881907231576431248420150751861161635276480192101383151966408489684434814580024020973755369710460279298572817267604543739652890478085674849657493314552118564862451010856250228764983469434613130887390818748506484302671172871078832286784323348598807558203167477583323927136591688808074005147691496612605595279344887530425312624990340121023143526289669374283026584157271858204604867194272068656197195922377906954682980000401381960328266167068194069665046796229475977812422161578106945275581546590659176381129599607880101612042270481677496875265196198323262966044727741830501290599410641643137150602634896674763662962481974349792885389268026061736195368318568174174203952027026853427527119326693844922169177949232036668808345365738350901439721229429998018980191132692250381096213106303755979050976014698705680112406866918290207140343169133805052510098240835776728789681157503723960130158676311166070147200792327534067628085768219671629685419647515599047283091576588545985755995864809883155321647949092974984303225766846561670030343304264418225235988765876657091065832297782739294345509046175097783155998417556968475054386819353651266337246038691880818748462743640048765806675655144733922087727316674076301254261619286636855238172399671437120978691166676560864986743245970287862214942292021631927600578682769902180264930305195699423874497884476947408655353574246864909141855634173061378078683595066974124707723236261390814254965906884540618527990882129471843865617405198540124489180600809752594902737574057202608945737726526944822687566561236786247611231741229327108817600122526218971169970332269362183797334816520557152123004496642387058098319467416052966261003134133555891682546455564306750894806465897056606064799770527141987078670345408000257437950413332379104037618689208698498086465041942401997328440003584172957220885751425778497896792686762311469442749854519886127413334579348324119179315232787388106815609394874962762384101323550132831151511730690755539439862766667624218244197633804234504248182557162341909225680062604692130285927639776254819899751642680149345103781432447475143559781869908680081420437352357609828577217201501154434706129498010764791153843463221960972362419942967061080018771366102846482041633498887551516845919104901260295819282638125503809297607558468296563495061210169347574275281398058033828522819877085797908409554036444247809835172583651484462756772133345023748710394433964302877330039892982253148838331351356339130496993376391230384169282924706980641023138139616165373782893031000638020105838132194759067744414833589410052295000367416341802482148049905312345997240264665385250627624588057026044783421393968432645351236067811325930479515706730163383742748450427653413520182731618560791733707146818390042970289556301040867719251084994051022157305143846851278281295233892703113441177799105375477443325887004195600089961711835166819643984595770565170859660497841199197974854853708169554690921751740766358976999208373199698423125143590655889932559897212306510636497761456662511540646428441688671982210599102877407230502367804861157058460019402199493116025422566827925073579303781847738143973708817877676603879476697951160623362493187287052981755193794231084458754158539085444281649949226770999574779634282352410035107147995952261745979569757103785062459657362202292331078465556227432652840387441994765528694947208286197342022411652231586732174079362288928698521519825564388273836735488192838368733036776914485518052199532992767691067489551597100477707355529031043309305717863691619244269229260304132558509836404925508676927510042269077278914279558088295659149014829922628527136405006373956459591775407268394859585181947632818866929964256103270458979161403491952110795671282265112684278505492483673471616270513395542879776100774534114112800964324931190750598968831641280494397382426219992938900776988910889944563618584860127063514613828297390739700975949087533915640046496251064749412725677416335391449316740320226208204897615366009554649114813528294673195701800407248549829653122013045342875527545822390365630981529276376720030523455272567895576546684452706286534324161654827946269794164729289564004962469264053529684214873355467786898717253862649484996232726303915062211569918338183565043481137705063846529475977190810831395740986374405799452736111204678101326189540259588166590047694261063243846267286519623556372922426187061677075416431429056145304630770646634010995241360682377878058513334748165786523001233276881972216565819148796585381865567695764033380305415628999327309053371296532803217753374950860106046716341399840294439509439317134432122137507046144508599645462663623980899231650814645975588610730129049014961716689479191942198979157313120989814495831191553634428547694682227670283150236862443301108426465709169038046925889985424803590809370565278101109619107876954137261618968748073960711909852682237209854684467387998552563780618335845896164118507880290542836671236594603545505023112813329976264209359929448222499094290184792428091631560996747891901396381218212886221773947764250425284551991700499363702532958199807674450235484529920418294717827343624913876934706641649285373413898207533700628237595248450473963401583336716008003994056187985934974042375347504181856228308544000081514302278715013707952036296301543422757148767686226752621018862516692830703809420162669046083623399655038384556741314108906685379709152141752652229231318554388240415517611091183762739679404683568620740248603493922411881921732744700570649101845914288648568645714582644532978625267861292566744994354156716331505095752227024011500348671167078420135823437261433074758029966482424007996134770258378564027628491043167490183525044809449873733401714413097384100623309189177393650654465858990455922939786448006408931152070697101604232173386215726924362102737732338716636694695076743202002652784950440292324710952811736927180738830957629103741209437718413005605311794684940846099003676689468912438626408054379279541589266350949803672772416432472698808642422342836460610530448331359886509314759427178818463368903594793597984818608215857601931712395112125741913349495593821350146662096875642209583481586080443610783717789482744642807835190044771094433176237575384515922482106270964878169337178505558691755667336098496173593882161951210956384019830370168379977920333387801451130435402122960473812584331221806515241814135339188280935979782598564186559155885689906968627435796981816070480665120890597549962357501240331947985212614959442401205787924798343613278287883725205366469442351321987187430268660593338161876769416180007743416667849921398289516399344504870358520739531248973371673269775348564293139489345983590872073974516376933192620194704077744667675568200235747953537983532278498503224734242769825970934100092702429034664722642470889036187417123775695846172580956064891284923004312911025790846026756634543382727135591141640668013511618440498972217996847618437087263427960750576865292892543357425163204504838550027073549202195724774531104677635391702476593505395242759607171321520079014300388749332766762797720205765441234279413376220298430425251377860565541760527401968657577162204267067440908665638887266950560491863129705345798413615468454851194360291364747417852251241677179623536560343819615411959940250367605214472408387389491547279762617049599683413098792920999785380797180092853029659949988938039727966535855406782973192355383574040787095193325519049250183493095195136627196973441353547041233086011412611892691420873493136536141438072755955899123175855676511625661283508739106398778624823374579741238115838859333857320441941014011340492187407392655041601643823340542707455181242132367378195574657366704424083462692496721596920181645499839282413090635811539788811043875834862489958573824541030172713135157433061833843032498936481219340527450891429255857639462933506446572331314060072568621242005453472682043679058561219362662553549949991212056118890126623048532780497918266141054281759821744650068690966942966205817741928524479406611559675486162952596663573747933519649420129207078167623601658402367383371046075548132650646643470632574020227626024472311625072557592195723055283503117201965686736334499424827638448178667017432457868366278215735709790237823807449740187680597518479975230881040544504561132304250172632160384023873139987949767652726601387790661155172993208631705546967347831447691895000292179297296673406966055269053775911351991813244288674897231744943752201562489720590547024404568741458828507446453817524364050797694154822733005124876662168324164476331940917317631183941828404972345959563022365185886626272677167759157396120885604895587895450231347296774425488207139276226956161014859587989449889239259841461997985396562406776352460861397960566082313596440749543905100503045775079159644852791872477207337200487634885177549946604437951374534465795811164902855699902024600028628183225703152142574042945692515811290145546764320673071722770898375513760455011672823027311054013059600420907660627016153090238078766910118079957949894505802584692732155381365377087247906701275417014724684524325873108537983377352727678633509509089201725866984089054118682812808094294105893024836063812125986565033033528601949576215408202265073568184031529312275454290247666387571806965913484856843222203506304139747600378169632525034215642906871659136987046904226495767975470474919745586518636848180061637425213810727064337335351345505859370948215820294224943362232176493848134434543892356019141371426321372403063161932478583552390073905790321339585983380133802395500697580010214607068961414765111492167129629072662698956404719496557039660225671389036991049445154407328728906087578266601984447129966688639575052413817350892553385464471422173414075834655540531771202821833527482071068908473773459629151788997539644316741959012615839890076283316324364465539995595930054663182153664911704439406769434206467851850129651312874160848015657129553345331462798584204907157718891702502847097772742858889929159501883370106885950822651702192557038087788666349411457708416996279694347317478716967207900299190216716154873449240155631824359470202097754263603405324026877831335840124203353002057370942619185385560012605575748921765154545898958711592559719885376657622586490639355614982146930835522341489666183032157424507025595306265446345760832319491962273467712556069317924562941565866274745102566055960774415414629651545918229881869280023771192453082546976151201686811446135537583157739662149708875369944536672929235950574018780522525928885432074530867488038440914432295135739874609321367018929445346122756276691097439443891941558425461229882857659420141079964254168267096520099863217769619366474431891311631377091668251651210333331047142068097705926523191798408650841507560159732206382976820239964840364662650182448867202796936551875061085854637665888961524987579940978307363714559092457430900141097856952264551491434403780880923548861130578319767650640686586861590653343333907329936353603329429008065947442962578793863446382006332574747034619262090876984600103077929516492024298039219064334218219901893206887660245363003869778089076196518291137672346230961723882035331701141896949593476831093755449804196167654420643482082057897558325420108923761510920049080071464574539716258143492442766962419111757709220625878878559378206383875338413963641185980474409442378310493196661841040888912369430908324425666561160467263650644666815377881845730849425592213047659330206206975737143407875230670790945442515887621722251930995891888635610990143245531042127947962690738553337579255228309511486884875518803157944960795250226758463167999579845074286286759221696643891726114663816216651325886288544756844955521443159046826158404534198522499222270082802751307933053083060239640717561670599288721138203650873304416628102757387161420147282280453378883587978177938496201155781090044045855523535222625335640829680554381978698366026741247371138695349660256209173846526924440859767991001465054563374816314258947200021372673763762603403819831583387380833692464719843913909377556316668546425993416569311971142303604085340153513926319882982249531766197069341875027277471652207607482938478343883114107699261810499968417823420405409002500861067140745110052879041278282581135436931867847780941162221385955202402002996935301655417396897265858833886167694218450973784032913229565489272867353915920235515591324859918796845498708310166139463291407436350652248334527923321009858680612416084900444669377761057113509139155529556885485452351524961114681536563199848378134661732529514517129801207415889661769583122276306798349960733719876898741672160600949431551090954552667627146184595680791042574897278807070557014949243699256165820226958548789185892221469619297815278123690252920625588557123555868969746553411968870612640438219529460149430956990689178617633984412943785802594425862527733161819539793637051289966193471190068528901494196112254360041192051290335507562388909316511755805167487125130854437835278517349036110627055592639477917278803398093842665129666371324474459379213670671265734603896007605003036474987941495723822679028512429204665092564212213136174189972823977403152419406964870210696137140121945171379317661454874665430986810697373313378007583013705118742694584920758668561074348155730426046984743095012933973900915159359739763449825064169758010236208937444800201166329309908183150062505823069656748446828775184762619670094887430158225945771093370458473256009432877072718883393774645515541683130052057910000477649458836479340164651096939109673645785148365261652218751644250283257273398587942144473102262593169319406458085727648123948888921082467106631002369049425929218381799810974464111913648261400715223809043213423006891289625293408365583404044063566257321770615850979835428193010336826034438307309991227863548981296009712748119660283018150985311304139311978744096389487288928914911731016801453217622513213515495804783583798466547410806205234011324468605369675530816662508880451687640257390557394584895418136829504836491997386536033019558206675093559300786778500108885738743178418850233901834928724901537852782629551971204301370107535330630951702712633686863310797539475518806498323151965584943088990080007464610363439821798753247118679295154988887330931576997466875815374863104526064681228824931590796731456813589854574759642310696964768274982026423412339709575871544389270178131961472514957247743010358545088453117761757811694191707964029851324248858391441318227301958204706368916584072706856934708474713297026493248642498351025856181456246721115445524399605914409150580556710140690145082452109305389162363547220217536121670708908289405725956146401146159743221668221670861327531508268190247206483356465271697797461041579809213762233012616703499955765288479779043052975403329801951639775047696649196160685209229981257383426263295691568905347971490393273054585371118973787411851908269255278754157656114257884962255917842024213541067250660166081643442754559210545427249666110951603513495465511623246464002303502196275234228288680399419698243984867125790248818843779774957973924576387378350028669829534702462814743358976407637505730258749480285560903821015641063660563883334674595965492353425737405887136101220445881314269827829820140382525055188095958795789157926648549522951717976914537389559981334537329359521058761765814228218098536816477998221221001080191176847557274078920996659150114625737521247425137648673059741174260006395853351734099748912599362392539021099880118009464598251732322624549745005642717562495228791918352144524250833798767600895407283549912851847641019352301184167264905040170817970050875737151276596445435992046775867215555191332612650247255985392005812686708759219502914293804423436349697617270338304490245936890851634946733247468485929858029689933225096288477972796335714214053395665822716333261993187576977547681143639816699781693368204732076525830869880243152323978110552055786515158508400314851477698390170708719453009991618987685518293719833930426362677675252241770114383159655389776172836240415259469840484643852650313874269252325469810804748336083707638846011421978760892631333703586989571339178367075748335880158094596108702130115392904984324131438558766596962730804724113958204163698006897149232479304940616800244606815187667714461893063145807990167306371121233913946862614195863941704868315378050035701059021748444849086882115255957146550404901091990907353471785330752007892491625422589057506867288232608225068014175164640575911085718780576638316188708050217391249139119397806690844446633059827294023464495552569884140139792184275319852927718434749223349669543445082173669084841247024466189267591515264693622363852053708947862885736064504052081768145926095833444366817576832552582676677873110006330548967800750243271048537233595080223089999869043418249915319743424072044058730776036162982586372014182879768951921430595449214687215665057802705634668861103662291082380330859106259100225332570169422017112711432934254552086385941814702437800692526093453139567882327046089277448459319089684698174388399636824148164470724197824988966256476511524120697125015861698647233638847217122957661060422441884548115431173469207725335616864027993468610800862260592055509091737583586668089176193353584016615286791825002763984797999337795771447420195749713739316290892040245726311605287506489498127647607245903396508988583360232691576613539107813360716792252418626596651379750966108605815177598110364570107793573946326096148382953218301086009351880410592379682142543061694936039078740670042191702180900872727451913011334514674465119460985338701943974226185237492633407150334452668635057818642429687978190055605576378106622376720418672315268163807650142673563786958390359760957182218734727443908733248617217690880189926691851624613006775295230783107144830647208364452561331920112909368758342508632769966609926217902288872589812778290834465123731946190064834041091460478921609120945758242055712894228692998453444972785932471158289699112397682828705085922528673040308972309189059060905639221999323606596867422775617460569611100010700475500777636325991936654900531785680268490785067631149803938432224406614235317475558401650367229610974985369655377902245887431096733797626197901302154782961473121299810652029045403645455599446395739183833315898398071529930708043575031365772822821588919975471295382072160366917685889585521710291341255958344511031292863624480736610194791811610027144753828305472873258427409798698471981009002019420793500191689903953682974669203818179811205727356686877475154912638578410203258076983744243166533792301175398128637587508714455885418458290403789107338844227820036516713654781203379568387378908174731766054434504809768637390939655905778347946997695409692541038106065771043520314174085723777893487227873320012800402715064910293097285408589273272042969946787654687928155128063229149291333141781218294008409676171936311116987712472790699182734938513808868581459607788479304664127603137395136144695212721290073136374433350080564541659183837059710582748001339233213931770690035915797430597173646012128665862735439614902300103003240074375048268860741973146894599694675726656142317622109246311306832125098847007037052106643794579424887385013346497589255072786960132926241840369462717209015165255920399524525722641091538152694877792880580128989352901094776153384937107704371000423516716213970226413651112333195736346077933851522227302545924287530143282604807443051447538108785843588739741193196444544704175669829413537095509214885954745232937371338770750648925921714307516099428741088493936693471699145322994054212639059700774784877792063280073497218365275859118665483864472684258197637982465672870845871748687088336293930868322427201780320340457824057172220622156963725174413469541918735154090412957564232025131275033843965845965179078043844958046651330719623553021283961776973274729982495594513567224432271959174982348770675725530738729794008299599982051616595583935998305893668326881145360368371375415597856466486054863264131942911279404978409531446044135165311637956222305390515500291381182099215919939999692363031776836581833793569874408733909407398529794709952875173566674461442622927074260706056441704853581347603647100709285914450424326487100942911741553596308769995083022151534032136413856713378398709301967415969005653342056098969533060984086715641524805224140277930276536943435194268095637546716664859518681186493582718472325305903561898479145497456852622986983162865584445595628468865173220993188135776202882222499907763738105018508549773198901592693023433339252577071962754431501095333856986044278702485058825503107914962269215103257105946485102625567632537043568008894975832169188532192001444453672051493767476540705921395426498406713410524073544934272213692377463530258725058029752294434761414860374770323408857230995283128298217758492185863734195961040676494183518664380688480126982158538716509130448718538630425783968482383125861596862856177118900629290764846823470667691500962604109122800931670017928852464403660175136148798363138896277196153034743696240271006320754023448336921344979888452247205802645336500193408693829858431312831644283699189816360127467714544330666403233967396557707434052200914726882448492215051113092113666013468523464744906267810278023628975589863006963029209735403990311553483533470411786373115660406744892035236225942085629660475808444936879640067129645035635821710544632381492269905553290043101703128546113009635107194764728637970476217410343809363891570189317383109275305263391914703674025747349116583768598409208901133140567444424074908277378849885626248351265547783112041099445878589672736782156381689753406400199400179324148122395852822486941906082285391651148189488968847710311414947619327063185894881038601659767142606458213971501585923159483774523552969424838082725056693217183983774363961817931204132330011830480407743674591765965132050505230578853879148927705243371274409305446404880617638715791438152569679806356112214578662031101904360793695075685979874286663117911393049013586605182577740273962497665292381146254458639094346849482695520890702301474635472919884533458175437792892356706620844257242069597538168345700666871740984265832221496718074870569932922112547489422212133790618707809357212406642314351654622060369058666169438102243897763038353527069809054596184569950277225780012530054350526622512363698430589341662664783974473060625954996654006547434517117999925535038645368159974603454004345018154666372016305915885303608522140868851723688744137727406773256392874014179401473490999164144434660638656521795594219758071086429978999614454974495335732307402606719845837826654307702620713677262812510704460347107174471347470037472388976874068227601299471388153800111354544575472821106069219505197025775001271172574920846484893349520699064207307434348802471035540718434728359767658893670723299040130871000727560129916072570399128591867545319196123710340671621527472872896563917958770893249316472481315121034799570223280206379688554607612950933279266534429521623092887106216588216297808023337849861077518495889216696685894965558650436476207082282242485218050406422236305737421887910893594607361150245580203140326981005025141661217280292269858748994477189393639753165687061997723626647968665824207642846102610160511946134292969014560174888990392888203036168387627471750978967344411125924717102521132308768227820736415402965780559112765169341937620925481045801931248754652097472755762557998167254425423963289337790609537112440374934675073204202562672343265115746561860293726193064519775506071405899425274853698221155105202211180880299712629680599190379529455451610880343516402430636985401931838901534372156474834746252977760851163214452058435446534666434905542265540153267223606471436319633291888768538046645194613788445756022869047171781808929500691790145579342523710980243860092077972021192104026206788815676738545002233188502360843221011872905780073060090089074908604606178067364386290586935048774306266793832054429905256696372283031494365220236623901324416375598213998073951712279439687878977661345035138831741746587153302911094644215044292193675332649174489890691443136624129184359931199413443321814754036410743159368237329837668672895832396436583489621461253085823048038812725218188840808840866947127686746280770395311066349844276391028322700074822798016182716775398388306721687472272754479202962555851285064389849973538166877742140667069756007292979230659617623236014292018281985697220973866422423686429140745047852844677169302971167816302032207037727162910314140349104288550252500418933092008230682374615903584383948954148828552519196920544528307840013639351404117682013455724074049647240289357954444309580879019258999324143223409321172077759039526896457202314651396026488009560641079036497956807592062215920277652733594655859918498228877522916876553326212731123819704286700373474754009556018418985682073835933444050573707288989416016000682749095905289958970038644494032786598398982435729604967102249384340804785696462571442837361466030607233444034458037696218688532580468827517085295534303016624603000666246240586489325114875666680259887115693190753809281267212896767874432714978089657290173570467160071907656726463214439218024491698785428230523189257885578171865979898326487032532276327648263617539903202063877158091042562472339416721539795429474962345777976499526654417505022376641845267020156223839936901010566109569340314507889006251390421864491785596904524122217296978522789832436120303386225351237814202196378212435330078612451152101314267474055020887432518087146359988266148155587244941845198886970559598741261599831977773811524320812209946427486706635547364471909534921834401674255279877544901126314970378869338682779546338579796254468638425526420259780603494297941788934114808028791107594868833321293440691645323512618712185619584308950544807550079606435764761441038676191218794167657886720235051141826246217481117482821533975582387273805441274206282787932223242779288867621250519460582960572069175824462608479707177463315939677821731325453547251673696533324722557693809360262506314856943896180472988980844361240051952000924542051352173530855233722628282387084364847084080723444284287162319941728354311022006623688234531752671368175026371773643484562892148821275158960701043032810534150268769396494373060251688580183582553034562928475846652331095281164630040294783368857881546389058968287388189383861098168783518776310103525532509811152656437304006956521385754978580526566800343802160286112645549988835098376968878219375203699014126176281123027046278739442718047947416564000386484745069937573385584252194457368271229394161181135179649534260629800482104535496175692782443752990972315050489181231884359453855731244945321721368004004312190749039179455661483659721679353920224293565158680497182581546877852915185948934580135160710625006813847878662236026758667735256780133184553316638710739951609116820243069319570957429497717044697825157526164683725793990636738515799866686639667745190726939765180492008648944957722768014686429308123585025389855721245203184392720681166148427191711029557998357851674667495716268244451583044164481568425715470385389867894710293549167637317523330278357503445212008897259035199262088240016725031432659882897266539502757862387162417333216705985418163515030491278859821514847915052145312869330375289533873697907032338838521576986325416263937490152884821120901594391386040330335328459301498977537445969349748542841924139476113899879813796642205867550675385743367107988258347701164148104302801733023860909122001915334769520692843128411940912176669265646010546963887981556636027927457484448670140474217849986667366966771299779718466727524221804145263983703237667331220746696619403653170389132136988003643589855748769125000570757556420149955951288454294787697269936680362970871950676043084913351588599977779712035202258626751651317714767883340065824816348921425734667807413090743043089231050940427409257836411165192094458121695113078636449818157868510357605152984772066188331938768251989290599479661170269659548927812499358473580119570136007197931687159451518732283198890465611304486665477742259336188088535160446413060502244796284975026387131583242034294188607395055297099231290673694563272544286080735234504666084897262479636016998963785961437250565067240652192628645712845590733928703647018399549445297726754387676921174653292689915712225634658446829475402656258547826440260865475269212882776703231248864410840609028506539088140188912374143350940284795186790124589337040159503800049286445540423293136238714194947986191635340827546817438892282705152438949786983197779787490695041063255342894490879997316749784733208518007560935828097609094875911470416303087438146608249867686973181375025767206347025020151344204147985139488294645867402850868413343551212222263979209732822642578120775757648557831825357332926130291676264891409205018235240836387572249677270550599003038548138856257502997206749348083536477157941014546353937639817462653996909131088868087551841978802054537631948491955611795684438856418237765619714463846849923280199070524736360140632421325986324465988485126253323779613907716427189272011600584784011475484017254142389720787027152782952769874087686495838769173463462204634385350105417174245633807946620051377491608644469069348291210293591803203619034390732405330658363443695589055579608557680214958258449726954685112014985944578291100867729104624707342443666479706967784130587651982310425159483284751203254568843613125366472323061518862196151692844650751409709693166308539975323905483323431270987609846072250886373806142238862401000698376209536685727409637352634944507702966062983256326357123525870960240565760281128731697519212539359473079011180375253402867739172938255061691753280341490523390820521046371724542995708789869405346645357355647232034211132630185203718579140942101685582873601396210012113089367241707867939178416347726391781997215016023105707392284950597930259597046829029397995301374309328852401537749473149215966287720082328065545326022424465453630184122563004713637175411906502233326569173907050326222669024081421325865357847713849767848574570003688194660528656057937100002237084269387637452244009077525307789909520817730396297606176379552371665020374780623870237627445221374834835900029105554169230544233373002670250096258265112902218491822888380655129795345642835269593174300743134945552490349905965616988821873982039175869256369196726879061331493650896981791748990926302570315551768140946324453294201743971655566024874819946872679576008956003598554077441433058736422943293113537060550877634209812992225661758249246055405037056664681049503009266963805857072945091773672547497079744725722629959421062287097904403043848454474769884885828663944269705512294095832628870755905876032831622835680187555170910386433537210703597057598053217232024014418668569276733905436155835762150987407357224592012168640057634700972142565775652497251674952192200047987235158170790681079970876833875770073679350301471843503299837658204647976330486145110487650877401412108830177715376610030556541472220466907335500754984746752162434699442036184742672857341925543900563371955951833727594644040599204878150483457882697844890850644268208125126547389798562197307751130805917568901480519781200988218588882955000683031728398060826184038313971131372889940427298083505044996133570805099471886655829826789114650129263912299026594520634600288952089318463267587250627517940063534738258379338678286024273755841719650300327737659804635003808101754791596867342031544828077455742006067317169509738285788200938685114595447744768880463721353633649935067580810521255448849468164312075463803943991426617984673838987715109527217366528259839199397809722583125006610763909433022578317397336232984468668692628899473900074560980988505006287334727418292861898640659406411465376935914176304280606800618568575567535292175113064722543764383927262789283624109504445808273800069210553392386517973839497121869417732978887324747987801074112078495565100679754178054816691227026332835070789941342961098937581459632315443075241317220166199496234995350060614235188165425227252389341112486363990164096172585775959430194184040689328407219609079363369402644904173679348890169928052027026212786801885754418396121328241760595917228697291223360538612743447242768562972152786508894713621558826144052043726786139976433786606208398607580603972091124986512690405479643642443527898081507066142176222764852108789757077322185482824996378842391649661582857031832290471963119808890993673357204513931730723469030939688549050550765446079392820198154611355628640949002352363694762590303053570452233189839978301897121860704768512054302508755545985313673034706537973264160296832351267639005120063517618852770279390095751579174135595423558395522448567865726290013643778690762846869169905725642227482157781622870320192652993130016007169875276187722889458618488045881205969293472201025495652081587350239244792720727066244986811146680362204683056172747256631190450603916127274780734396517015498434101864236521133436577289886824793864313441776925354365790253258628387892896901654307534287313793738697650437188813133510798645358757244753641078563386077323966115478342079362369179870667299240475075027627676676727821637624281813411348959420784755128807663546558229718322245937567582477620896674500608553388596724492088672967188269289816901204056375063242925060607710308401908041712729674235893882617334137431775070314754630334118743604702752778856409731574129573522945498862618631831798251988682502360444003196875593408488455420268284978245121350782409725811475452807369677295567589737404419719973702311511257152847005896403903363306057751417795122248098573842644878277140526231909781124714274989817350539783739455346723405284350793479351613553593790183293937454604597202719589713172528080147830981691393131440120613852544644700217539484161260119247742708559766410833943752572800260532608417466183943512633625229442610621272837630589693883252629936142945107572985776356083263437760572186552369470208493401984157137322587510650270505231425253832318341599117472162561602259339452515416595572740234943815512407998930479165651736897243702016283542129294829501300071525157082194507577996911247477960001349186462419289770400756440447140291494103879434831411773357871172113200088199120309725064812188660005429629110903626170910989845777223325295276267982449794021901494893867820087824093953996132262798539507639170473869483426649396199576742493783770740280654753387443085784088689047150549747289445397115936619447784022396815334440410346925611933768784859678774007429695329226299810426970411718611681793706918604558366875832623726552197283706523056992045224402501073424700956483649502053646437047549839931820943639498765418644526427668360512497616007194198477773685840475364422256726820577806617303190618545200902905891856606868456137882365921445791284482958304130657742551322345568448615615800379281441556937168001141396607490629097744936365756651988727250330832794941027918283240535331013931955274841207213312102427536599034674019248586347577799625566959067721222841203042094157220835292115212443346646058541519575757061157260889242148170288015384051069019026442319010411483367675348157086939900786484081440138303822674084878065232090026326773855890609312793391482870213107518155921778718228061593327665922581679491868762408922507766769507713822163292343251380979173862255905120167834527917575441451935195823342877003533831432156312783715797247891405973676697276417311475123404014558086893495501776539500007164985723346082241897624693171840773763110277607949692753257567076404996796730063599702036540216364853180130823503280823615474443504733825126667024344918149915388959328863128894069355417505407439668227971328946326395224882801689725741484991435757601860548726408424387159634201666299950913037400603497609430155675553567155331850496987322990912739733396981170942091005253987048347094438674943906514059688882668147433862966080033964155470993658185636256047932184054543177244648538266668589598241803807554135134675503420009818969291500798861203933594020701530902102009115351595846444137204840484238172471913312796096102082338580175761478308065292657415227972800935923826335336184139433923859493086094773339779640821513150090282393619495633158286934817043226720839995838414385970375610725229832539806481195604869930600847699437399460229803921574865431870835510560429836765196652430761552119102631519420657248335304782525980805868989170086561022751032155400770394181309570003098221342443126406279391123934648156120954645267372014808309616625861793175702948501967823008908705337524333136726556956713819136776048234256551834456069758725477999203409262941301550718060326378482351330379088362077249357655677668608750823884057534040967839636325918958128811741411516392078797622380473525288184674478221657237273142474132753509848950134793304460482432604338286024663266500758174310968463094578153855818878733904511985243435072159863732692906047013566814145096979997177549901517024737837894747402348033640282605563211004570487782852764976890947994367010105122503304229696102719377399738808119362697590196400216077144483107338543879372179858562066840541906444486753511473139535069167700732164376058418125507477790261847647332207381579310374983848241416627599698304210922133144035787560566777836247466170613226985226832864609876063341140130366037782898101827128867705481122860605078888756131683050572430822432581672398408000014695269222477085277748599631069069254440462425542469728816381253849306743680498459188995978602795827458164567575143681603884506806448111073252864760315089124141699677537038498096651833654678857901188899487848886332838954205781602220901157594373446587419146121512104996615978248543268326968549779155855473709282040001180782126830184466635137723172624994688143984114357970120955363541281127568358734695298507216648482670449269126320704603724272831522348925233071147902630302075221762803354421982648073693793661553765027282894441144903020482308658360004990915554974067571898238551342107109480874115830258460917029794255601878935968726157139779770357924523208655185945562916295840547742821825717662302568100343798132292082964076339419002418090382772277969795622386759908196619467670227153222048751403356937962870218679798898215633603623517513345401235286961762261578110968260302623535820865221017842491089529214353768094366117463390502817836572165660446066410510387988256841093978478343636531837557995780084310368959917781510010360416375849280111053336348300520655689696807803048148618437472584677634370391561808261692939364719998252944117110767933279016334192486972439099660241557191889307548430380569305087383385581609040135693455782925934207153519365060199363160985886137328085318314639923335587706788851823438121983486760473875097174935242517618183381559997458269904250237425288945783626203775371931689318330044028794638817324990671252804740495201377504369830070552015715323749641739692242054236768200179566403962066191677057383099321107261882251102426362819755832885854539240648649455299158185407550854972451270262563375968220850428316552483903781500446293692838438273801067951749143954717454770865639494640558061171526576365435962172772067802296320650232213863760821340211853173330340604126066947721613046750764631713550100778355532146014601898334383085161815519165533309026753487757957762051832747526404535330568524912702230069989706437398597083022987976526498090932552412284532639715222308472829268810814054210657371765951323048809371992426540734725706233075311503743077266198682206591846244355660278074710244219786153999970098186301448041326841068438872871864001688681791100243505386002764479752162116552803217313431690471410444565452219452117131808508304004163889707760725298954817003988712365312436670120845981741290086395458767158603086918347943645388317772333527717147350077447126235865259225734437500970554769157554914754379593004075707660318110657677170457804807053922554600219392616112561027320146562037000960158340942605686885431498268794323871941578797472349369697476474251942467196564794286121600009798745981123303617135698127580533657782513433063229351286260229481247427239573455963338248408601657573572921809660684165871093527709371760232735915774189230843382792608690036186644811162443844459680650262994513329945561241971227816837734872994537714414094306622311199626059239813036231988776591178671427072493731511430470495270521171699871991557708665520694960482726887892893505945160644593229566253014358632678050399076380026802775017963765521924087538959979263508415165363325726392421733122610719643619535032074490211000571969653442880574337221415040082343504859141682264093377918201521365920639072123324724400491330952228864447245823027702566990463842324081826670500465750088841161005599622305455499983379783484011822123291407646033470083784551903070820834861454533318296643464174317917545744904460793525294627421082010185014993003495287238435759168588781339124259862127200448934714382675797139386618838753297584407515530625191327335353683032544605919176701963676138216705192888854034739202031135564032696129209055513767617630496663176953958906425408589962678736704296334924903743973268118483192294156582781904931381520902883932919010378638880426270052163146905434739706716051530069203748700245536457359568958983270390577484623561581945863856799975060245576430298728136046887094758443915286377853479200470934153680534461074040082515042042773428537648023233802068579748677360987943437266320270959767191020920264412499678693749397049349354658266175342576004423905610750428446675300425786814900847285762127622816002991844836334194770083044176523438865200149006586051042070183822360001802588381033023392937596986208659994727017669031048616422322954945018942588178959805889936344705788707411142005016356302218608989953120435819756299477274812275027646187677464824591600034485192512905057567197723391546681910417951086600365600271471451656331609943433708316666195959363668668898115600367212562314267040845600918317825873183079159641775693767261338179948843196549238123833770474851233048883398708635402691249099667104141739540237471591665281976918314926135213322438729327350462720311831263546817129630778820399840891036448503836488290132826503262227819264411050330082193977340271528011479117784015014623783358707581125060844074242368411083291169132995163658041291341445140771624287979360645316533539058620686356136355953120655137551160784125124277441351023841609740165190263790264294710733069169712056790356020124226695255988291709812100222046664171343120644786163869612671882391172024792591763533567148923695608510609570764072243584998351021154028113060793626862393845244718237019244293498031199900133864281702792981045055963308254477436706024321976933415565250981272931877809714173566577547749796595718659350958731774143117107189426875600686630240728692874165279036618818171375282369003172083425871627493923274638844293653445888052778054783701650378578650513650241596180581997447243062013255295215417159509452266616429774575741157247005632922824986687019891368323971268750131146529630860730537320180078430582103443794280066691335273824890124630154619262231354913293433409489594643088222632434208760706496293443560073401978916236269926081877398460411000775583905445254615957212378323176598745809992160318263664112984163181146323291218952334015945072706443927985623635169761147881044815412256364775534497242140803632435532570793567841887989856752776448332841292587434894704070391213423518683047363277851711558489403938846461957172393814319371653884642975681826789422390725331030894448471108526525171907283338254064949789259402470118569363886154449139578074556044510288096445475102892274198880417504040492711708397882177691443301446267748355069336696918969756829046439339902061167799141301177768265223906449735484627946472799191891790343759074365754606524995063435621137392268776111483481661248797999655599098211074103169357361161541915667591498339361645040635716841922766802851542884969094794588217225636877652931453727880730173767082838349542047364437391006646190897489666219121521952999922002792314772889532718118747448932302572723968428530859040528236225447118290044099852697323470131098701466295040631648909515644105416696582332263534788156636659781392722496375871800468580405553587528530499007343274717979498517255710732142800147731090992323962873522986709330813507616653410025668937759694114128415797979180974541537466664811116828561939928257286780833084810380666105790189094907450190373365608304846090307628490923489983141266824470708793831623096182438179552540317241797279677589137804288036105851945393858467426332222786569133664978624640207672849129244381236134775417611610599246247709724548999422971666211306066110211903358574611818007968739616739472942716289636243387617915006687237315746296490610083969368699270103060584400738787622310531928209594012796869174046425607986658986199802616737788608863875366323346257735763259904979559307448876504842229066232429693479361406705479081281749205405097178566199890116797547421117698389131679888145390270232586713951803275176317149847514489471978483672108896767866552686313425826980068783182864232241281256390262113581279856987142659711968966948048542742655852781477799238804391727897310388229209654128529704044802882155096213462566977458918128999263966875221387489853400672224551129669242019567873722494395797816413990692886433475460735931756260015133765153230677008543058347228968345118393878413211894431974416466642924984464729990474542943733643301093708344724859546744963999813167112906663192696060601800861695024647861620393042917613618777434937457064554952714462859919076683147389984159191781622547282441536258466151456495682529720978846665818124768117488179470798954621433838690752985919376842944369747738752411681761886612780455127583921801314001435953509126768902258969643560745605853860635336550643746267207964398758951678590530748499593409431016571670517294494005822069585778422546367411484019241180451065848820997261489312529987338707909953771212956698239215134728577403937592947850971670444488987228737793433170615978943681698607344898268645614699052142015323458607882427457666115606258844976279381108440199544919560730173372003377180747356024235646183234113185093461646913736460026650780821550334154963971641242690449922509864484791323818884446397987427304274401007245031966113620147793222758837783105977411914735679387348712895295868115127530465579834657157931115642520904797691236044817496759907644457379403390876498423506722367880607076824461507635126941448488379241167679824762351151434590801768738780710684754716098317121540358925756068378716271622006209922187655523777911506745593309520025547185883450961564111469305916624639441758639851608426386987880546079385829818768312308423918851332962514745635474426334604909469876910068018065393847709885419915721238403248009839564864882493116313259827665033124076023139930873077079632422917838940417050945990187519887231002272868904193988874233773369256747635994966296623507982310099904471046550854231780579525296621462257725093462943930070409422662388674756304517586287788713947467741221114641549719098504714428304890532868650673754877757165752146624736475163286735888755068499700587515241766255338572166367400861129737049190808989953666591447291262095479142164687353927218907529316801533888488510939830068941215388602520821603502845265095073549921454371861913921706185394708328431872964698631757124324998770179191699903081338454372148595009540353962415719065222323127837527775112927642925357694209961080790145058092750696185212236564666308072498655979261089562309192107608344076324186353484783683837306937588429937367536069237823155973316210762409039151628971764639735282751967578797161907878437415226630475945329174038216961133657353427787695648241191020074831820676057063866248248045141506368926702633957881035977809493116222899314891632936748430282387312845851179238280867916218820033604960199077616233419608845321736878296115579619485360436261507038495093184666863480582474587947495929408319290794704614572636913792265675679514745130266503834811768178669250472355592882859233838513061576049594069141685868176346000491737231615543126791400082557651587315252232839542853491596387768167251960594178083367642530675090615807120052002114623465510756810967957833177288287494302396205176263483109829154017368289184259671679487145672684122999832654076542353216870024527208267632949005946960061239575618526259469266250577752317269652902766365061911566254041912040820797604040870630029240160258407731224553380097857020866690315872113675788144008732778912515293471435930049449124782923996863357559265389130932096250129656981327488542348045358190426279410769349320325755645621070497951204502572571245718435143040453507490658723248996788540159571113755383033418494870955610279795747968269236276010756702298428401212273256719721232473779602209042480703220797596151084231973666546200037911398288871441935654871504239349752249688339944986098640756166637817542443205122653450631787011119871590196284287426971013228242843872344426912027856158911215507997105056631418133819421503467748290333438598002130614095531584966217529190040099391981699596563653354814328334457369065657850079153885637524673418621297678044100019391420988836263913078571502484179914776719507592103960912705584270400180377581575246234910359693597141852008217643736459988016952933066327001436178520009455187591422456819076023147605763900083955324477786534856016178636778686305144281697361863923779502128183938535726383171412410784479321449586297209370002588718252637715781172041792260855019141428133679976459538630685816046301991078062057459424718562444387189158798814504180241262137332342412953176540287000166275690542467156187156351140711857050329619456289093439016929663563145737597047822072086135754464128284859911557059113599865969679120537824899953903009263568739163586111080067219056430256971381696656314964597120179968766009757047998402198400127831692623608959338471026024704519230872643409350279341006633195317883046697083093481091824189405464288907075546419477534464419233115316632825762430763938800847904154157429215776222905761037387430634632953276532094793026496587750785263133636790308077515442618488036805581651634218568279740941832436076235475379418532394633412792470481784919103141697914257784299662320148786655316529155131001100726879831669222571877891382832826701997834177509639138191263012951623076874145198306889975233443206146719584987312748185441108337582330981828716332348331104366080082825243272288245835177936274030010377937406733196338880875183797987522574775758049900366101907744238230883897266947054008863891780433980889255060563481654764701368409838599673916505517192777307227188995656965557244133863233175837982803563883805820900679307613133365398679662560579700884408151514746111774246323538611846612769521599817475154031224428673054512587057681465801113288586194791194283937362547303885598562062950815631550827923641455277666268455854321739163685310955562265419046627369326411898099159392034655719864793655080658099166632422065424627064533775602214345152406629657211977017050372279576885134169890226903507263175671620621653832921075048773993504029560777112639338499285692395957044675626133779934143963676645039031848923643455837267393314433124036666601904094555425833099653092567358900521437444939059118898055666496166408289563825096329134240443709174852151944616213087019483058465800035769551982820799168284688726308687886093584571440471264745043649919008227773195423144211240542143354697237108813251869082641794799808918965052119392627179354275092317387068775639843634791124579642846196047500151288149379935377817880313153662400923073185132133349509956838901640475196003306480132754420466045427986220768083802882801978852996400634448084771257577990383681545563754649985981455881675376102771152388143640964135833730576638387484783839143824667203471139450093369347637975692565235476278395616235478163708955054620460358282302240920941652097690896321996370696668796321785986213461120599137778998466081818700342771900943616180353017009212466861657203225742101397049505382787736464034884486059992713411188996649860635236047997223065296238260148204796016430956881047268020016804152794663865233829386338018777260510697583776272606713633227694367277503767416577887034550372406898989618309642109681482210780010858479923883941666020324304074216945268520574731013402806817635397025192944519231416828655229390169353285216282626631893278914779953556702412178899423143512901385252557564977013655461569275922799355083823642190506855749145182005839168267853798907816513001369147870563632138809724782934518305594519293404160171780266129317244546448761530073441442336926790289334887997050980528363303941659204231026135147952276428725914136010494411804044958845877340722803343441206023548919554541975178070227089474878593847028258116229915081679536437578958225583488017540090535958701912268260529736553143155142306213638003986220062838945466225530199417157388884243248317464786099530317137041214203399331894583507734927871398852708072113929566653671742716338699149981467469374696093587350798472095806705927723239317223228694902253512541644825034707337383229035541753870850152585502858440429027137709491360005523211006384599559707446975385959040514523286289578267308754995441790294989913969747292370113981929434638570114977584114218969863520322978260366507918317912991288962989431001797963198643214736037661270140444486508480287675912650373376171887887761965287042115354248888293069700163511842446933702983132687098143514236249456327341695376352536285026999714828209608468491026856088972526696082452565271041253315189158689603059376712920919342804631773658991414148640968119437846204463527116078045683926299734313221679924347126238953098605581337807301576885183779699487344184164166920263251722492146929429053760049783632131425635870928582083877879776901918115382498916509457503499158740472965850005484287990732529363920962478526687557118005312181070240338578443108564011177568171789192038711526931513648049988252546750136070220262598091663733457257248648165206517276984974190802826407753546291812613574725710781409837532771885608272991900090875674704364524556888079489594789273830282850689174970305058247175281206548401686568114422242003989595389512224283707179054067597670623470600834145942226861515905228230263449986701346399715850541893323298678382592466376189648641283727970994706599184856512240402087435071003612854714456905360770210073312157211767442562257377281204875800745041690955687346722037908410038719057643553742525602274510137396605025274510593564114299201273513121143615907363467566580940119182287074950201887057381629008250005302560134634774660573141482770935610782642318565033816152075699905318777738680223229093603477599944553907244309960014380677614644760579053748412487008074354689418395384792194762271687526456953155046991188379725421546798583678052084773169997091839903893296439315234979814258750405651789882714542374941418150381599639212323623828016709425440094627712972453178651692004031184944064952996319860486927305636577885538426102670877207217999706196720227746025643445454088716841975742535232863315403361203619846864949849714906900181275130382322107538311851987763550105326733360577630861434217054589454020906340630201468946329846998057611729322985014648608177759124180251628530709162971871770930300570999113621925124922301984306703891555425926892345668477446585757622900917331709462035376233503624866050218215065275634428151219340598754387115166384168085323558180242951595761251587452930580561242462809948845479229198800735522574168228107039759606889056356840429256749948620530407925195752110437001343355554194442956110880593550975318255799854175418040057326861807982263716221397603710299240674745224490587007987231447773613356819991984735207326336402216397984198717990045671163418858085004186150518970573762710052238618851979388697097474041359241077979315708752270613767764398567119049717986521301958330152606883604676505683820897253484783721613484084896714405206473961753613605785627206754289100443383935028343513868633802123067279765631472013171024789945707304762841312239790004554572155481718108665116911911796928672973290891149151520365792151669479544868034448973978250798315114539190412268319921101595418239664746159545105613435602623964920900665710079313171390708471371975114550503442674086541603169613772852557117323768932832998707527721472541005028837783685563547259046514355258399286835495368818766224528605396290050925645010579573685008820349288162277262999942090355049131217578644275747464092233211185136634868395942284144343032608849385514500295289888538409705363604069365485727184380959303560021766687910006678875345517114250082642247697860253840338376047924999832759627049953429948753472044739877785037319020731930683419924799746913113141320591553377287527374295386290857291470053584454311732325971012747759812204519054603334351546971366239646895589521595841507741251172222089023545152117221874646252233048480418929481108403162986570460510085437812924608761512503171520136512306608648290081605861341365234794453217053184489013134876493735410864482780406832758571727273881192629663300901623995452896616553975743412449301270860283818880023617189866750601351915695747908585563559229200552161363976351868240612689142070565659176956649735878447890032774674173964970690712623508463022246732788786236811762014750458991695196210942924794051312990633361133822013634998717546574752028923740251358424852984003081398213167975368937743731378602239382913318319450544488030981044885980650246860325308775578823152412489815371408418559990410776146495360728223769314738234959380505885582309605755757051278451587453417101831513307021912705292528068952223500937022520221723787122215871883588021441657013559915181803032906772741801064483717849694682634993171395002587145863085746658826960935674481322853981988690221620550445031168355733043026171782643916818598131530011840775817228585656998612853507132733128781873779144338599085021231966475038465372926787631800358947760428608453919288412435910246008959554147296935633181417679451387541930193773968398374471680916126725429613868441572195825629264842826377420476969508725677465080791086922527650342099866185230676916332662744953819603204234833697251675275160595776335215660264800118035440340744361582937400327884452087846252292595080014336095601199997798718214665116415502638379132284323161177351866379793878105390898466387409445534472736217464739426902132502142216004801416321602799943627741466505560138270358532823229950174402122273963738796654884378331502343933079951586133922476828797335169654320845329686836276141956501493606527688613242957361796616450618833529052827859558955907941895611633497513187041493566816605095988376971113749639161485310615317785187137435036095659473556058568946749157778396914549999569098605450761853274144890856713582945288249154048074910078540582359551750250610082575922067935615919415729878246703645751072593503140391523149124684649908481145119011323580325616837467745483677865990247144064851124074369409786505174565645190715571148922273804655195186633363594306994858780674194246487075717682324621088775533083752425769781471198587386374058691510580345547124324461759935417916435983487044657688839939553906912130220935806129678106760292897930276022106095026636457458793387098864066025955130317231200312254122573422277393733494979676238063994079628770961371104486647297144398913569275030030869222428884450887718548733070054844620592506879120875952530358216605848214228492050836198995923627987741664398783347474211502369470125189203961442185425083352058340494094363843324446406877363233328136777313635349493660447992272097973611968541059269085262414581117947208261857253459809345046003807015003268934604923515167059377686295539402191139175304957127320846119078735669396640950247253323331174700481120130319360128697357803124603676093566055463704446183350586684856055767355697782802977964772805500723299278058948353419592969751324720704582882939890486622404433992504012425031357233638484505713005154735194788388806757030053961309908450907074146131156825147018340330203169342473240510645457321045373514514653341213707176823237906016651971274321400374480043637727642720645448853278512730397163128335477655568303863650896251914300254434036892184886836822930470236672159811348961245623381110992457023093198031389406215797053863424828873011315722225243219959218636220387171958989190962954405477031787200401566159678535539945047231576767822209217927813145623110629881163573925750250286641443756985388612664777521013186775223867585107121386599992996048509392101558521016032300265015154977192808909666695925404876406036210432888161781796008070363322584758441259217954989204852577806240214111086076237687440511138863906740927662353440189315613781095475170020937967557585567162487610007707559404415228048946549122188523575876828169797009039501590371162155139551880599005547928045905580551136030378090396705913354720424270320775215065579748602724535897210436286140373851836560152638091614767134123138867627554241177331829791808165881866939031874284739299678258152982344172845492405170943689158761050525192827824645402303040773779607315550281942354684886360833962191767825192170402603413803967584306611668957134005393332482938330930592651985667766515100451433105641033487164059357527431362090836119615795329157668840532495411848728762034427259396340448835963275150429483736568728378243761070262569036649701688383112805262986953265227485956625327235589250403112290351232309953542415706633925574464097709772747474596750763047131973772763022383392895265720993609255554695900499419342602970761323765624430190091472957609627326576919267978489680673512326503009857622448907529093112031162323106281468638494628953998171419907272743828570073507156981686740835501546647242562845034152523150181298353176075918149203583477042417746975527029422872046501553005174037047391808023041822163024341613454314553353376858591088856528425744664311886733616346290378549575529209948806773486714837867150746939129303853990674763225331385092463947628322423775356229202152281828777564140934661311141895631290565067598717387566955010673421091162829345124142475312959475700722553143598812950431310603005312003362980275323244390840649642003748419521803173470271599946670794514926025174565141769992843778538089854944607720428491467281891188530366282988083656979296509188298575738464715174772032297268725983452812442630537621655294067068515711640393526976995127836886816091047112522185136474901033728755829341881116350731806542758016504952838550592470048999870872921682747918760755750082333733601135986085044758131169278146585500946656821618348608243040670867207100671993470900948473372069296327645752626268839814040971150494571578187576959293300941209677164353613618915520498726497581319287875734252150355494132136909270899983615635977187995497242299915935575110098341453165105045039469688798716925642389287243799364777217000683393129997736351325349730753959763098498395743523287626865523143640996769889646433646337490768647277812000117834700303333438120957687929181592079230594913063017572775552054959026062168447804804888166485622035086619074222964499626999335352065597248436523682571461840756057697909320197153381184741264646229709757161799791282236312952862921653071210911627113864013808433000496333391264618321751419823066525670421583948800460466816512996930850974812779288164278126411844778882592004266999995081834843933526723586603353865080422636748017710482636742808287091679795059889539116229218623631525637478663126700001166171529085588847394422280290625522883134741080713479926227283301540642092423122876610353356238460671087515579360765476530522117894781551720883818074361942762644357635062285464043941262240143445934747360975866940004723032771797047773107285142344845327751714423933732447750067466894911595919375307510206241533626898707563596253085956742955791883225148790567757163534631688275154987324810276126669191220109243213132060787190810807020106961641146383894279782143537411746424713740463244712108137390305601473746432969278635091618720122150708947346146088426075051595704696336275898328699756003166474975976839248938178086203489152975385928097263084841758576490740280049650757092577846094930029968517682385416096208166314566299009931127062048456569279401218007473594680455472351100741197999514898718884726818342596880252947095488702959098851716857021877731912084580171269134558662303639715675502035835118352809529793084152473626753921246902609423302213931212865476241155530557321309540691269568585134401764701426902593569805660232542666251026594950183190316103685335243696033844265249134980965216721953820090639115399020561974778208303518485353529426097868441775454516769945196450947491941704979700799684411170444467172747341579989660886413895828346505095695340423395913166381746533711705738133590200997810564419299096396709095390290641459300955474021023811372097922449013759576971678096856123453453378413422601286280504298937102324113390265492414156180429575636251384430596929163677033548195360148473411422354164034680820780358630263933976131907294850360702589343500398899718303683308739933699279139112925914153338507307792367349801014460715154987725795852623141601122382726641786069664003882791446942529118842495313552809378313988758539335888623937533730018888394319258988244238998418827623241502520814284317578866521298399851695639076578849609721979640496667293079590985628834626123811604994357621544928090424073255021975264147295127499599515413318249668624185100803434901411097862318399392515791360980108519065475811495462039647818610445131507950372620795244595928696457934962789509169871481468662141374578633943347945248683005558116356877206206974805353404050334286338110830733203353067426856275969023376643759768707424461748104587235595193304033755478894520376929187177820741614378695972822793963441816114328992662096592669495929871334446855007098737364187151250893764798715318101746194611040312354377947741505255797522445619932446040045443785593768197103523847679533520426462953413844358915359948495593081443155244149526824470112961043218739012896581702791977773625478951048456576061121653426065380693976586645335108672751972041613763739248675730410199485113700362011341167619546765728016817803072827584286309245510275712304165539129774079203485218043372491474892241632550792158070407071889120908784624894000149629509563106316302141908062017571399370890687313282960032050222600787051568075655274728340268841202169838103753347052929981290006315678201278211753366201679681115133411178799545861501856260108986966938604175971841947643746906568994607057297542039006264555449081249693084882215849074551373344460986607505334581867048783974508719944452589472611423407541111235785701768765388443410493126236456366791630903306337060012200603956864147187004570968357596565522266232296610249550657869334682941030532970259151118380791847214374142355660834383901995521865334525048263333412059732065124521424740761038442237676741733371597623733028648991321484347028385518551234724492949179008613221331554408378476142547818013856302246412337388731624084479880649626370641550541790406389414418239105221887365841404541390557757948968180355076696967638422015214972152017112354982093197138491620292300002576499320361405236948356935081749048003122327468925688141181737776349402034539169528219599038602698916050958465162023917203876543045486816812711107198076740094921337681144167696194262389029418377491738282088242737345745272051432430347542561984167668958282750024071120424114990794596473851831344941996637937766384310802448615520021766068031165601173070346050025942212897271438102260509131247894285912767270088228254501372941133961886673014197744149489347364729420715795887729125587163009003931477666743814742860294165436416228359450384687505475405095688774486245368138859952326808897960129063715609929009362046198237253705486899371663209194500403540863479843889342588839737706590289477612656604379273131934169889020071590745092167350796059582808187432102817985202289447849016844842936889229781414281364825175825107724766374841988943327374656509950400775448344799449835186317622921160472039765427277701457597676368776047542626309916000818123957178600791609427404567124297528335439025203718417292280794082615291602279693146773321365671985307149556106902298117673517182504751379815101154880580752854243394243430614055604671309744729573678406447233128924190937617577000891156703822509680534866636292029286681002642661128200499977090160090425425763469882074873819949916226752682882368450538581365361299863754533037518225334474737685397970109667706151594481330500199971662925991523255232897747988989781171357731736493384092122232436280748806061665337105423390284694010729973988970228100259428232030476661072977141532330884511305640870108856860461700823721214282289238658144536202812553667366905528092239232767831909103094789526635155964261323944384365883045768811216722903346798800942276451609259869823450996774687146010802267997028124729574747201094233840733980015372174557967903055118455229300458539307420710836600866558510986362470210561588482029968553264215975806742912684975159586068176369074822939043169204037390175907194379456753202864063385836577558320372356762716604692726070294957604249211789832870445509235790242137866819455072953263458716134239777499072850552683260784854832816023384196666660651347031172398183951972204474181438918709289427158756096718720144824443751740547310319443687054373781219729214356502421275285788135969601418096682414483786370787981300384944790969110750617652681793790655828587946947351167558692552570698304400008047113622148543829134020954755659218924855033429158850693086879328031264812691434820035800226371861187510122742828364152475466648165037145851734524559107944561396290690123760603801001906210883940121880658510753750726523242777418032621691357913682616059387366258760430357635635564975296912791888674059544448819860358084832231543607222160870032408705291941247794511830970974997025251729102847820334408034149954316465844574824613353974630613232533974354592295016131983046644758326576181103965946163809505063900195463908516107841482929922909801764845211874540272325762802574548919928015380828533105013257318298111865113955660101707701382320994600178845301101827006632956212694553571106948928526821481935653866703403140314601124113443558919692298739768363194831647259552358183229426294296185228129704059173474125022128292941840919061551392939636515280741488659104268713387114866203440025913209710601005568915497490146180572428402842619972862144145359500365147740624008680907218553752436856936113683518367501498466848361370115580253790628538782959111823979638231009758248187036179270762448124113803041375145433303570453787275721432727104272405233587177249240777207060250679311926476404416684738693322353585955740421073736366178245360055997705351694398510915542211969626297356885160348716954242365963086927531610585625861105463975350946371928289502160824039078640381071453602613674233490462995652250236102524759360410020040907080218249610211237419974636075393803204988953372137405381647611770749248077930895198039187845089430778971957229405122536161078198049144651279333951949187892880389235947612069865111063662904547066405774391102895072442218046437046181947814539807413496761194296584638536414228707761177811837711896149943823449527128848295820927629487989913037428608455221195677894960584902960807966173534693265514987349266329456169237869217383876064060959145499455653241412493008821978569929946748681172631429423117384902278216448714486897486415636236492408200379866981758778790757016334340307189294485652298431449622674974837564600573219580566119222929681950785746530375182109599617159363532423879584953911975547138830682787918662156047954191921560705575601694941739569850894612418200427388104281079470709215362461336247384261348222797943401249307604996082930159076216571010071166736114686343028365013269041742701357536266813266605192128266674128287262732347220021556541064176521346537446783947561836612775774821009567240540853581014839350622220517658516676467965401075224533129707432829267068532434092140990617261969525530716286857386077597992474276886845066339341783981560047819869004594928255485152298846084410800181662281915943386963327958731215907222474905985845846213478273413076733690403733837931578152685590603580502606060553635152972284471495266815122381302003649957266953774735438706874690300501860201425291816382083711872513522883348744838995864056799319589658748623491972352101776154755738806290772314223663641603731340607834930575502173181919317009687560164189194665830358933372812700683774543884004004574721599472973599421824913620734999962817744534700237449612540522937139321002122065076695946693837164041641859192283619072662656214984124549410023403445137235356812073686749723545381189559995457450946574664529386465430756056311063629510128725822206653601035909113199664384706150886623039846781419219231602467585182623204880159219969091607473881797561471287265406400668690548460360000159022306513366744104999458561717627490184145059472282403894616512813506869343211158877198061735551731117911737745838354069144849811181734828929172527789416005001955396688680696509076926131994387968614165048303696530906173779784274993641382783190477559472206769078319746096237101341161076058724420747482543844453247235444885522989681823478705942315623286572515951362561029256674498275252010614751216595973303150968870051301903490498409278698491887636860196111401211387621062374893030168781038884595896594753231436447782720831681023608983484158311391172036871163553666155931989249577494142540315370682545495845180540702296181694821440879422557310917693834687501681796792369070205749726653883663294025683523919417119358463049751407324056029635441679704009152902170889025601055114676704936532539150087182090963045378099597884303073227706634588609258189264843064073012864914239169327541591409787206557876675364484762819652313775325773877854198724118992036267824132040473627666302199841000459876749910154008778918270714191463658920358124967425275458078072603713693451069667220361313007859126686511672074030054714781775959283922880171119604567218817495672055076583348306237474845779709234340279835470962361641856170947700550052957745773913919763200809316543569169144736878239556029352097521146458564529784046218493684667681085228265721446865567315483854950373031541562626240368431778959229708990078411655718621396384165343649815158374210114007158636922560149577359285735217960141877372642574989909053107129631580387534973318921053651916671249029762339729132586322528364203438946075779174297756242513542961726039736803721952135618816317950079891002746217961545611022697997927920734728867212579468280595366238538920624132424724044534961975177884310573886634144258727649266446280803214751512150174667472626706355456808391997562222663523402260930792929422035858603379442059160025610853087910142126760433412410025391921510212653458298770493038392556088113292208526264834040126914484784681593007181521408180454965050650239872238450059743596334158550146049507177774302210925312804469532587361080994221568209970597565376188879356651701151626144555767043991869241971954674286881794778179219433769320793905309669539869036783932490249586331102996320462485806149252767947130867840038002929256176864193597373487700752712757393020132503016276684598233650609727415763284187978202130303380319595831324198701608798319248580875431479135292057351581194467357587416506977947581574385845871856150340745907003042734136832202625672721550133074004257727118049676999548215764549804640269248107167842607056295368068941137527823264927082394988049409366423814702879664752723914915824502409562796302445405891867143593941106192721452884826764043763596502273750453707296290788143253985615339604441715068005992128568681976478768789027576712922959287497171870780361116946987980127027597693936217589149664492708442695411916553588805368479291740662501521688463791252799577761343706812020025248541201922761774126403829525049030103644640801382930974285173493073115169338309170937321186449746105016758222294668096962973978648183213306220818078079452668828245405606832535991855938179565341949343421888376127119027355138382275389417348491150064322218822059789661616255374656195916271270907875034000361436783405596988647630168575370226080002824520040386333221874303757673270658822581543841903937678527007571965951875930936090216506104828526982954020174319590988066524471210751752776552431336591321023621430522817456692759780875452018940096722731728399029342650992693624436226401449569026687328018193349252061870793239648744323974892391702973683051540594004856311568795945560226613683058915607107500880971482754376641105833874325225094250133415363278240974085378358930941278932794606102589786097138729686165405560629797201362993613417929194934635110241466977870863377670658573367553564871837160087983557694745797085976042493027292100516672850201351113769794805661689949045320450323786135619530186428572907098198199271380247060469641437035445515431075902623585642364174004714874409834618846937850958352972770579384113879842954484010940364138121721017323998795858998410781906066955600518179504025169148853736929478085529847375950597853869975894979630815574938917230878967537817918576750963064160512604047647095549325863584794713812569493233716467931059201900025736060520202489656159472778473694054942072340553273637853121321032479999428662943193569927776671809393680607595353829229422730648743179846538788711082788050448438543801195090456031370982710268914957565829338586851258883322679880118421408073104922099542900643403521379669685436012580763795851286238928220452093560027909188018846859310857854174565611226825082422168471348202198415379599262850920799583243204367690155469530382504663939217163021211671047178350120800710856931292461523261953945092392241595145466619602502299730740428101554655715650545340442267675911739836871619876884554766045429107574993447328309659785988705650065271748342523851541446306022410152065536244911948376822100870805320678018446515883887615705113500630374901040578291350108121687403615182912042594510885230296965219844163377402608593413004058293039178755336517721146730190070643341593871977026362459646493731612190524462772794956643792763892454837423227041054573920401020311591897766187674397147678886918220655636948323996509724900149094480962225634530856841496052060961009081583915080810184535029534988593551633537020905756099655772290232210736752419101763045198911501343845003402867198267785070711311614161576691103302650522306545091798991351745487581108318756767608668080977769381781557428481622453788351425259496840187326731682185856120922284508814808019917642680161735232554190567286987206445879400730810036152422571227543605108267074243432924147820227209500120351678323258661477670354070346701936460832601541274583724450261056706083988273876524154556782116192951035903629182240170451046176753774246478053111768185766870335199066579959414966098579316184608876511944738784967195872400870480387744282766153360570893220173837000845001318118022866911557762664987041210110073135467680803327202827935918155187057164686032432486029208301361645731351319462948656346759263173817082413690886182085506677596470009500329995665586159288294704070638465704637790176706095902608481796183185843299364575931392738017157838400838160141926169355270248152713804039791935011242374963103199261020410100352520801159374024521171650022699537855349455673187034266789714493276037561303272192559344463853905680737553945689622514627118740166359408024427718309781522612835225419877252113082831793443057817856873073228633821580731838247852222774180978637216825986356527495404882818552426691218284388435366297933228582305020822308779736362958875477409898479588453421555327708230888101672049786761871876731548861449239308185614518692236599033370641617441073964434890628708790961341041758531321314223539084711924426966030325154450847646944639662976830091821942200795591093742174235457682705925560671471550876716064969110356424063233634485109799905663896473737889853511672610085811159025075471785323488644767998688952661245013445195764091864854777300805862183395608890755728477186756153486173785556357228753470564421421984703110677954157288312452079722164534298492769892536257975308971342053220390714225596224909178035538930095946489359829248477509177530898748648735172733165635887984977971209239236194927035905027742487325339926901587831497900345477605147978969878186440785515279627818656162737425557245060073906336736726285113353405742925273830970625879497454132957155984183591195339602065339914753487376228448635985536653478002733925534080213315832940544960598350421419501419354201618914337586357747813618834204681801999442830830094849745317849846874750084617053132184181925436769648787595676197697346629930888300676208056344673450329119897054856919572131706553350248434638967233609065004439605693849597700727790093271666668207375293191931566231943803019061790400557038408018654543188967463318976980993733260927176780777671888455125478257262639012446839456873393765226124566993220368646247187160738719670026123547332122843403909822645420939776551857825092611112207966437064328453534449453795545722062280110033401485179248575072676977157312153842213756637124193920731356087418683545917172222548299195948360872641651239578342023743710063538354658840294381344183750378912917783170742175060108691496589963451186348750980182719814743091954978162982708222960154146637383961175397692676337139897167472510810763966793754561925168598515767102601241308420821270423372244878815783945076154056699054401482072983474503385498802697948920375355617108228057868592687438665098350424012464824345678582046224821025533709644820382452064659338119811272256555370779474030075255620426289027513695947638578080605713622440275935128565043080551517277340157089807924596392480207864687129173386656455515335918868255897214166500812257654422974720561907397474288646724176312273206257800961849248109554429392978670028017111020073476812459775588981864972384014976716782853687122341940653963874627363141554777672759298426047304126268045790711263525913592061101323252162236817052065007281905759337573383809303430630898613680262133448595390527383037046413981898110688343609105793475764651563593227882633957066991130533070941217903498582271257112066930494385265734899311303733125343644573542589669630782359197267661902823828232090822565546358346431178148745835754743187348721693730663091267644548171226068343706314829739210168850638514036238135945453211107159054127259781689304670888248654114626125448671036415449545141406670693254253843897305613028926876859705599609835182450510519515388740501644652359148509189423844835938060893448976265920896771752693988051669599026454977982518693086009908271885162511426731275517157560116091330407109871346117596285336408519782900270691035422819480787825057506644320568904230156309393145895741231231986324210451831717507372334982902264457136496697517633853366916797477288325284939079303942357977489385792523980518851190900575416952256093654283942125725629413830056569370363250486601033452713374526360003232349795988917128006915951904966910740693018119933923589434573775615317558228289239586723564411671999615083911038803634706809705214401364547659112603854358409030192877502921523962558036078478576534717823555760750514003056694547634693913755655430023363410357693025890113403381387491531624597954751536755159989804987486504916769249293664008133494666157751513783605993026637742695322698804759792843756981608443706368682549987702926264029274333268494164590364077850805018048627497911837507339538271172645068602313374017700448433150862469830931414109181563385742114814259455762402418755764532323905997329012263014478450272864264843063596147381232389941002556878745307892093955368148643246713269423287028904463898300457356697145285373583899896090408484979619585855958472565258282362040040725319687458822890801281977708194949561436846231830000196738374570359922585087436813846355702010235672986524568903155671277462647926496616611343455574958311778628369572254421213989546037316954458950539493683491176785503207035490667267869126986664939085117171675014088377869158051117047114690572705877693414532458734830418776049830011861241160131360888684743792417742617109418325353316902279370167233939136190881064106989687004298641112571675180996002210246473597382542304030782271126358992291737939726301143159200533950314669507714331931720166708112507086848339498243524075293517854966142704597383007390313258649571601620842949912475597367710823807610026400461466616548493118648640400683975374497855870278974643434658827410387460998368264992826675459449520657613762471638012112305007272314002139296818676508763283341895504800159367604063933172683752630627325111663330987095651827736471838281422191598866021793533568066386654090214920367781257800858052772581881527932841489663361183577795881262064142721916744299937508688545128858591519908338988950058834257963221661369365803566071006534414149077776352966635854583526801660644566265263199613329861302629519045751466223561876695928246176383296148542027028115653611905742721726391108251701468580651844849797742112538983228342432730665728239494140962835599018091180793362415012925546994595473995082662737984523070048820133466097050887560309594703267300756724845015662168387946020828721917376463800147439853897074973384725412808991319871843001315337162254699934397642640195727768416582987307038682158138825507887597080755268580634016134662484949452521175955033673470163280673897013103645281514385985156213063677078312341478121599283559913715783046449837900001342988791302867811929628779966577166300035787687969370285923162173614101326224844483507229048745415802464821310340809145140718507683469832140661746381919883538583024069289798486171842035236760025696255619961901141306698624762704144644414962211780029490095626179440116302700603699630969080439978365861616519101898340253080507667330466690331260088506863572337070200412985674242897330655042456148952012590838394438987604402855380511858669601342736876580594964083940513248308706347387906671493642264405824191020369446468858495413733657312852116822670965131349422434733561427163596936257789820718045253886268700933361432667133882555109857739667582544770993106855265895974756222047337088192623478055230350472286850350085864975970532304462115099593333129428261395178328878540077325901192905447394832214217563471883454742628180869584216013177795560869866457843268756194069699301859415795746217635953137548951339133883634986616867632845501542559000126579004172596948368488338540099348318578950076240485639505507028186423123681614559441089568139745580274791926379012403935559739167063370050026487595016724154763471212512267025998697558080974066860868971373988037168743593641164392283774642694946261598531947740405345943156021611978360200703990729505169955891850084673987257075077887824998172183498415777408120458967828598402328651868355985943388536537882553633512585564731445074128350747944337014697621724569733385715139609036533876589282645389475559749191074931217956165279082911632995768142201757453126860655592593406636882623834625052695013112729628180371386258053735021908940801568555353646855942522316961771493231099059985512735820259200316002376855826492721059238025160250892993443322701434578458064389927698612818382266956045343052489197778021647966848029486078639061723424278348550208837129763532350840104699149040068955474596281911640174846311098294953681410801167008931953686043662281148581606628123138650834102464718956616932756036743324995306575991066492423303495705326722103211935624320307961851320916410879346996177020177194978675375863250861299648582003954579961268245972012387630243235925604538910966760537528690555311850207443288334137152967805965354236773127562495944553995226851867162769931477791578479545362903770514390872633407627671108577007282342882394798943494135488756545047005941144639887922503248012761102594708633042359186016940426320916172153856634762334801932814253956370983381851434861088322028536535250724108794334695629441052575166115545537277913364543701868959849321083695739124188202262881057597250790090393442048818595748527973285277832168627082960469167450858849194310271030357415979180495764568699520075408355123387986639901413627120510448448791822313327141012721096244867584181171684832623619955468399561910240374313087845108539523589154185821660467265574966012287322397886585162366999856377031369411728088207334488040427973373940248469918467054899608877932195071346059797726348754479858124035147217826999957241250513514053930286254854662351455723586070008550820278152850956977571128154355505899891107506186415985143860136936256943492312369843499855531406727179054571738930591677865880633992306215452482822356426124919390466945906352983413019446784406798428055181417144318457440761646732255559965894768659003851546106403380483508375880954655799790995070872080973872356152268942863587301775094611957837466456541334291594723028899819935968981146560259352685982919071860276203102071617993102493343250598104178328724326061836641868942783992051015427359018628665836460824323948088803807180323590471917796761768550850100523454735578319136594606583153273143269432266660495221218170111963011811602551240221221486227709955365062668496827594047934165271944735595693783747498281107195433129395917874747080107162372799178530112503797673209749752771627115869636072578357791528067176633669190094049573677194066888838643731873093005679831251855804429784949510858786438276952300756223092688416408550300482856731435444980081262322997909760958852959571949316600438812770552042313439203904910983057448471854016939887839679385526994783320470763038788344493043989049689290132962279188145158708341407839818234982183903043514742554717372381817567606418310084131189507262379986903663824925404336413479039288401893408529790883803717644465244477937004734297864427990101168408056088069313708160118124208055794106150418065955165423395175239129355030796276567378573788222220687024273668432935733108954418353973959333792728650101394255915775165619310820511034541970345929327806231900945530732438312482481690196807074501531072781129777765911270564752218407772633482644381704618092223111394125219582176039779349707234452626162641868426025348375187365590174982391037869323408673775170905620642998603801599099035073617772713643454405472130307503325486828150709199214564478346889179525919712750064909220576016190508331709904027271609246432641040072043053490183507989975280282596998514756771584015526099639031052124380481775851084486351508769813377604441770836295204157819001091408847347238633475311748264377958404259294942410427565542657254415399403612253723122468572353306599024087217836084363051996087191632092932241120290315189629421831791506829361949816824120089775250868587810108736565460232944596300378217743504654459389232111935834591635068818438829265373269008111505478199842646127604807071821617834286960708893550954479418718482310829418952361471016720167810769931416755499452513413343859189141842539999219466513792886137996434609837387476994002453890885421111882535821100415403052071317122640293143679060618213541541927701445083747683177942081032870939863035170180726209006521695626922838773509533042133781654546824915724027220431918540863253075567598109949346640321825277583621191449581444415820860597102820317881503715148974367081332590469500666659848159498784288255356246442474122824578106398788120787884142444428438658272320754058244843763876088281098148567123032324229642274765592546157111031058785619450731992036942447232006518768430844270506361228716896229705504309105201234222325187590142597536839134536896245056614584231569047528521531078581539297516692213933856100011196249103968628904988983768594092275681683533689958700286910041912517413861455170553029581949908515570851512043081151332499030201963003418850146474629958424734400590431645303071234720052999918000251146958956898157637297118318539801837216857006469514116097963315292757114998092265160112578071521216105522212914908535601722505024115719573063424812721174198949483057904896897515793691443244719801630440154577205501552640115253843270788805298826319528610099453477491140709444556861169847973885314043964849260616992077538223064844414554365038221816483701293433882623208906737213690964131746758617126690809143008567975632133102588308255033826313873644779410456301281949228524541768905387936642824753460499995008841225381645864809288971847510208711343293611587479552227858134007658656456201387666382451946894634136348132482719791058332541890779661046765625483092302865502510825203626176591807521942251792135179324690712808636106300677023763896933405231799042617700265336580093780508174781850972424964539090121850251175021953067439017080609887510572142463661433895148889807979718891212748450318364721871750808900072493592321888844011417866602715486147129855966644909302790018835438049398819512085833200642731536692385109267724841536211071808017426063363738969029025498618293986782357945339709121405248633626989961905212222661857784294876359212197279913147077997593993701309219022872662507756684811228034945225860297450565734711200309768111863987360133526135464552320947566126716420419445995863555891435909544859094722200585801424354330331848650796210992839942393393179156563981094930115973070641720677549188263152534609500838345300883112739425387015440403072027791198218981135712090314542561618438402499214001778772624149758741935165103000887931168157409514980338390906038119815017224925852043392351534057806032027987080597157674859484161903518794728194493543950070434551217952021743665371576425870289117045296204763448475261100368178946911694665979151422485513066217443249225691736596969309297127186206176480536885770630162795846297526922894524508732567981975118450305384339312027995429577866225521136210316324469226359277419276328822676546791503587365366514657338907545979682228139083133458861759897516413041005420664231298039775442628408512789371751365760334746272233032713096155008337971071906376536964344229928865585905970932315032072772863887158294272048477519500932752858781942255826214377387017504436250643183989870914346647621092003189263606091441109284952614046757650573385819349627478752764725525028817145607583162606245170296357160360334312682497910179219648537220925672803959880760885285023615750947474681594948385826217684229676017627961434640700637516816332492443789815188869363921650165684386860152569653965209895451451674895509259697636796140295820426575878557015408391530095675790816220854786806229429568291359143935572581255280654527376269575083722602179876266595129735502700100040347494423335851635861467907567874717478894321776482558534884937230993448227582597113312775648373515775126752858973897825741933454582717806839174687091663348728551487388188086000145005129505406977112177567750836378542054541330626164128346819378795180258635380532080702516199212383647511334353125516637659610721285524447636862907638145462828269737686836888429895188313325591588840209041746481527975076244850661113298086981018065897153203737574401448905743610390080005674473449092769209140158956157984886540720801573254599335163580124975986632784407676637294252211400041747283365060948911836032416719346113287415453304597937669546932241004511006340997031762356366473020003521277836529498325852777878057232522365540610083809456617118347955549115579169535996276214688491443885301899480965089778458959660087447741010705251344775339380476725466368005822967451393344341357677684122143260277735416441745588599165927704365667191878546935704309827393743002752231477017494224003276681205215188833901752582354485460118725773840281792455687164478940735467659400463547495325019191498466640345645231894836182542521491586842092139765698915547602393524053612985256470669339345207606289703010416189085915842341060243369512466190751933346886970714711394101679011745509336796561262003714830427524996026092630073382388426102002549546091481826288690581452158304608457291339587879789450385458180248506489774881140213152596660626235325510902393318812000516307464610678310259631873741597690581583970394951228042441941564606925691577790792400982795206990265075262357661002521177665674296945799314779680863219358882140002173906173961756843319072520337819538063155310195936102807219618218797479647122763515066057278622489728329902014230055932538590786563888255535870695503793994764888203412762335910374787962262459216083092088309549933209167846287282366996491339574057182147926361437485173560145056065706247762429107696631225673542163201810309885382297081846121759249646310588850056462050877627081823580427964840357139375499680584459308319874041339928910073292931496063866972446880527438609868555923700711808679116478971806773795741297513764008475995142733427785964671120923270565992516315002854354514893170883276524629140261495820203052063409617982018792474628422199896922274175041811047514271492646960608531261027258646309906042898719981368515578881084645589150121971684466353191282847226438783210703298980931109998829610909035719968142901700770459695561927706741433487785645893690124593433053188042109978411660887814952765728073630160170453062762549622533463426468408702566412451094351362827619222812981269687018892034115801352902973563928590296759456884834494607632113441806179578421503588618947261760553482947563609976573392821938583636342070623593195333637193920647831628990314236647091989985515498250993638251008536713139688542109658470931591869400274991204736579023532542216719042368123068537675550880382962251993333584974664515318550930223836998750036477495032369453323009968612409044762971352101951883429207539509418353189728402461632213985943150303397119556935443958964048847313023886602241429286782670541454052250273606747007590329510410717056739956433408794109621249055728371243860061218239119058452287858931608087802168199133279505267997938179920405420480148651466398842466912307794041001989141155305176080371198382040114179808490482660447013104924718009105739163926081581321181474575263533094883180212587640654964943069063550724541513681469672127334149149209486771287417618481310270518576128421807009296878172923458004125592647770080683080866308834697310085223990318109081304345962376276579436227475170348949991027952415332709345529232151407841506559367829416306803690688883774839168556794954021466448481270140532106932891857225661780698301615758730628631197362899134497350198123522044017429154557044987510648995196591971141861953604397208440837239343669184888284795911316984730556789888936236582329749302834846065099272714106744337833139980213988608742347695265584806291437359620073119786521702991393293787388341661069162712219019880359033900494454218259216805612688152432225215280751222662995128139656266777167557351126640537165448333785150989000661433641598228475705221190061036417871558846738496907692076929674697311360883600722969403876271762371195530148677972995389505326321334376142313997397235497668612780490849500301580575057107961707671409769653378215288112953950902559286857648522400855991841184816384433127816936971366440258938346972000399943382762585268881242980881511945400277458232937720259516690662052294472352443774533067422829608754010200440422135223080693501520555612312372892544127359299693785702411452380515516357309469708554842324837507269688477083191275194521467038812512357746567925276002127280746609395621897456769676265777621094383706453455815568878108581588714993103428980056825846585648935962658626458065950117086491915479590866253453611128605703434193061795746852386296553740152216180207682469386901969318057384731011279760124549010871776424810992784264694959050400118678085209842695798237161858770221065281193521781624996740773375233107283581052277348575819682876773263567243405550673057313098324110583902596336812754785121427493951027913363684348443036092065682436345432487967435572368233200903652153195061402072072802179457305946035727254685749502486991781562110485494784302781501571709350035415500388926440662023181868668314540828584210347227770510888420989862173872010866279644603855122427293374468477927038040884735613235282356693001155728268606489611479719585271398727725573418915451484292827622716834952622433241052600036341661241263934683301042312479434874704118970471589827097865019345812720496244473439838453046130407451800614764097926484211655615937385904742017890474246447996135172086733801149084138579389811406270060565178408394457721774332149601199213337982628169046412406635394238797546960447119368848835533671003793582570520772032934096795621169871197131068866479385370885508104709504823072642499711576995987708063020743352678398272320239090168422026781324328278124148934272610412241702659939661245196121183711638357410595458341668346466871038922269552383077839154489100984753326599466129882237350683917450171248924411614850939809462561161288628237072491394922314203838771942618651747131411699626370462178293984228945015877300752698827144569023547831985335498531834154654479758859016696648030557247388081281169421233095897500417902002803860302542268382722573020300762962334410062834855060904969038655625458255684715122802365358586934010175922492359057406177894167560563118620176441435695565006038884581127762978527628578755500559019134384912361165704313686593732980438321182677224626365255052011973994004290202636218059267379876140323748546284711416977472165267740917563433353516582927737044710614018800510533477006445539192973391008586105464842255948900046131548550627665162392381936975588965092042368320170366693007292496500949649732469418427733711824086861868409523255966375933058683451211167231466643168793336543737572953530781251869287634644912331892585280122693350976826560688797023533935036614429843138036247324550487978738252598753303936203239414920407660254635482889011380411822950173872684377236890993618204943263687114681137062098991939570123327158460915738210224689022749405219457538111366983289817234979684146063597493714725315899377927031590580028089628260821031268468785416381570106628745261509576002099006920085633087269936908000066160659219764107787423278594046008649816837396328290728288290807371704151319280696114179974951494730273873016100562836310271333863176250832268764811303462906976419917278150926529328804991375383628152121518895768502819641324361985329362853353654430252484396119323963917518256915029472242453646049581266773247612621052996763504520759370185487595309081899693424812212928422337550675755225155848771665593934948014462389220129790111363639542200479464009635712239395306324909381636948257965838239724775041284181733440072300949367557844262198761134256763460009265716168719909535807133452315319425303234977413808179656061264340676328874220481374088767732485004604302150980529112158913293790705962143141646334040539284351371453523747053079095052754770251261625261196474032300634882752652624673803627220748664742211460198727034555675292928643495609593643441973518467320093843354563448944546436034163470661849453329387189924997219097374958405412313035916359761975516229646417280199976034733193746124110152396402907681211285333552556249284532660583885168769212840621229291151920128037545723200818962843200969966652266943821257775095366883837220648969870807210327353724861856111245101284656403078982137301360974187872939892236494388616456971554094345029965435315829524748478112627695020138911787604695081233440861202471370693385039227668463501305318374292039919433638954260421472641142169562147820597581202894565360408572322828504667948931116986250035168002670331396340305043693763385333547530953912092540405188881432917369339912599995162430060295271267326286403046804439691308502225954858853081638268929895836191051532114717944715579158822478226293658285745249720603695723712998052953485927469525666765813719474599327866303472856240495528666978324857236145513314292340006939900849408645162611482836185369888264018428578212907034336751103319727690237805738534272017041907363999666804940920728992376482241506389064493560908078927035540841437309770510207840531255763708705993292376014457488888968721068878015562818979771914355273310498546788574045758704421776735187815607679897044093046572766542011966701293459762955220355290809492112798146492141140958766952682915185979630754340848604290002059176318136082463770231976205586728106918603071013965794625978356344754787812682420413756020079347653127620689042787011283568792654435706910143883976734526406573932428680929201711156996900682304243353903699630806628416970688257404004922339256333347495495145039894198714236406414397447626587327333919459417738552324538238690267117025580110094621463448767648228216640163479730228229068696867903854064529666794211960445134138810221287184129910354633417459113223942886825387908399829165367039333590495316189708890575355012887559838723763411675913601305865228510878788244425881779241966692520885077816353929536023605084132912201215878183229669623950812939403945823198162510018620146189472069203525199812345658595968674417006917485193817969546846901261632627274569833400780286276297958938042669452300762328070411583742623136670357578728500189763005344117860413573288787027635990362110398957419469263751925410060923597724472425264949836623739526667291848112888968891508585988108454336662752683135838262508958142876100404193136031974661897438429955320356701770109556476385571953462477413454334192097472486421135880433256645068632319534173981253646633542267249133030486833333235592937738794331907164879924923840318548197578052746714199201170008435874667868518858504840319538479120353286506057253499156744510249118866885902681403383977942244444473369850671555133036613829233949385308080148839697131289921570173576894475395202427570708387103574459908968512853507735739684990340177280684395581830283486169659873808427953071344677825250489667438091911017183913917127883373055289136424372808688667320665938426346870098913705489013803822174044215744416990478779733261045915140000561303455956928363289878084558128628958804972508037424185321487838851579784991352057128824084068953240827694658637901944890672614604594547726804439463836033247818427746083914817382405599865461349957498612751343775543462781800466164780647569743034167366184863742510255515330407008510025195782166004806062263490438876249225703618607753717430965380851675793506153233211854884000651162851002937792989329935010986443415088275647632054443655257845375680959790399401255700634226134988215581201112364035101989722129106840464348961190921138358460924791763959583612709212112894218173908466791137502673662169955330649021207302534611740093599024267252579489731446062177667307311843004441178283358500748067862011222705309790500050229566549921998185012433233526788416515553318331188186419563421851430110589621331680718116767942341534433641516038021824342311962512199203459170745608266224411662641564012275392582458855731764596787095428617914785965289006861133747848716673810870006071871917176229391384177688050381136632689724583216332809738369763393383781543894704939994937750822432826967575692274950634130405221690073068211258421797150970233211870918611892999876234533843489300460886266084341558603289490658877295521916209155032101557708587197637616570805395147698664325672015590408157258559631156460364917595712232118779384837409287466136991178209952831172263011623585136932514138237209099482148284850382455145099019091434923251683555889879752480617881647901015788748902291490208310478473825581677820759095367127932536021670316835471234270216051612377538629794622466973070244701499525302681988423125779404602416404669964883047709880546678595748262787154814047234601213796849320404234615017640809982786339213263365402474444643443363140633330856229035159039062707530572934310560534610088012932560823073366039751743701266571761646268114294762637527456409824474365906630047012883134482795308060363204050276792419792180205876259142310334516205521829921382833067494012793769957484237345650794771754063745069603737686174526416079108839773653700573256501203548312421326489442295375099137399400682222614317844862793936374355957429240274581910396119790551903425048735557325833785718797970376079866903897705405175054005623560241050048717713497500735326264287432993214715371261519590104937821415991897039571618618859823717123582509532982383461626374916213869446756587075160117293341300657183459884772722659534940009146764089548790499391236078371608401048747581242173110025763360385919327463313914510564969567925177185119563753169862820340140729586370646437980244100091889092781111622773531000642074399475485099148274726518592808681781107059859336456331400756147195748887988684045953898979093830765025986306220101200588288853203873599448611496702480141479742138828969210679659554789857444763432335668207463010830659985683810956585126213983032061409045966171485698283523753729319042519555203273493667373561818374366317376875575027074244370032490301690627911866031298210114249745055663309623127136736248504033220905444000315936829604593241341902722099265137985338512225321128965755428951576378711237117995452742062839119600246457827113977206083565129093195828564495438432769101296579216744786158957459343474183612445633607263430643750142843740392708773886677241016059207680325255445854998446910599012363150000616043176995088193750392970743132028917815164917041953421557681470086275671860711227884478736299503838138744113333821626944179560931955946032042498729193862780580825054271975346522035203340369183441565199490632599749772527171262780847509427061637356170559186505604676106478186619342450167815150182930406292068894571173276598378989529102258995103364630225195909563567356587284036308579734471356634279547846109025096633976778530982743490225540916720264990128364025773978335350657823652248119663338801048562005461525280928830027285626780441163622623359633611361646469318294880391302212423386288309978648656367989627963617777030599030273547005061770294628425929547235196033633018042455372069223137347410705239995760223946449380068091489985725308456301320648175763371106223139964607975513314870515890721588105244774718938825159114757526455008681243552455416067253324471162555916676334915043066016977770935794420535050878471559390133744251002612118214862297769289704440772498383879169323160884714813206001949537913421481988845940801788142370927018696037234625375318996485892154563251817898287149623699346485588666880213197610181409173591106223739434041191442379610751647763578540650806058854128205753236158161263655784609575532056848110320382342207386082924361852457936696349240967958425707293391993575085423319671831448009968686186505652015631638880936000646240792992170680693035857061348261582105583279673281415072340661363882743853258923188974763142235306335208069172270821635600197725088601818569490996115033547758870606184343438771803326106943972482545916954487326942399032831068535964701155090983892272757516673104084323870111989474792129606977847898940493124624913988840725234635368772486239431832562185440073439383248005471768965127405159731623361951852610738711872890464520345545434665159100719722114505309121828569428433215754601831484564314164866506015651083398114812892587693645407442740322767075729692580015344375628634114047898976937401084776516785482271353306818819434616950978623562634821756513891970396654419521449407210655880686048971812360838367978104599907845021004935528598570659573537965832155997367081585420885776182470438300732950035024100124045851215865100471422771928936859334907231623578873810450690945937392740457190519391980656609518166492758915356919711425397607930237934289043003965235090675115777027729380688370757535522874843713916014379464340592193583886172479141787219856303432728590667662688263961725328526419878536538990964123064368639104148235626317561995221039048837067752897117018342060618003530144739247182880923375605494793654520662405123925051547675688496877150344242428752602907462086994862915451822103932504791344813459289851799203226503812193451219577053833980561277784203405767243946255706238488732292483127127647979417087199432196856600653085675178706801896111563024539190464581575412185812925028659502550979716812713455364941136523304233485084542784300625686846990317457372998997566009149276960951348020666439448008998626972893613268910000900791817441895677882333806625900639577791288818098825310259958331214407728165493265782172303023096605506765164367923750379094372294325699482394097331416227640394616720576627491985277971028487079702872706310772487021144778673918222051040028669189207447598602192069478502583289359976526545554287499295428230280128387874541968814142683799871278121726438902620131956391639757019478016088028021483163681637027822407029423969430816386190796969472946255536723305998781996935974220949015362667427945138996127782880382124909671580225827067082503148728100698024762777140343142987693583262179686563433043052618244180246122211945689746960301629459328410249274727081391058155059241073222144075453095636923061187901860789515626470247642769576178354000596122938548059221139878064558626720439494544212340748932606885067331055830187293257200995551162143137767129882827149133558150417307764113985360156411735574192282982075497449392713637037363762712644375833307755867026891729016894106581415809216326460865913844147245355619671157350565033439692507767688223002968740805320545502850858118717859456829148650339572394512881504970890921135916111640655462136467232079183709448418339093594300021858096930497029644388549616455513174615191269622441123326765372216513119888216256663163374783084029795441223910877695536169553752470347087310808079449487431975269837265398237964533932249071745928276757531860328222300390269799360787312342233339561772559209507707533845024445609318389224404482157546648813021342424430200498699473007934716353574517660391256019741337550352349738718705276103461374583342282468005610995087372749093090708111604613319650568099880930520308197069136284266522850573501626438859727433405843335098097604788636801480973071704717832879834328232863089218828698527398105206420740474668943889051310417362409205622572978633546021311585464780153895744238038132165379304673213323414502971649094430505072312774725981445922990886819061864614490593502772777798861931251964053200921620763972172949277222211614210890778042828119810415865945874974546281803521899441959452225860043856334325304528287869273143708184501201520940275905333045509067078702785934680842151924490244397042294121785451794560000385777241541313033590185958439240596650134903101089622479897652739806950484186655773744021443567731585384843588678789734635194536231469988306839043398029776278344584914693252761734377232747598197203173986353166634424634454522512243886772946589682585608949980935780884487862165185466142607518371068458174406499851232911951949102565384753752426122469361112901246317475164215713956464180601510247255945230918156698891818231500586681892909717796247943037131284963162512853054129299805146555750876820511054078504256682916970249877425137439966842050897220539101709573462153009525816607996993412161574538412764199131058085833428581770246806111066348067972509416325022120184497301631963908974026514811952621232592616028900718737196756781052474129398209589214356721385096999158908002327673604437910837102659151516627382395516940509425322067027352698453806699569875554638359155794035361948769026040830586339969964791699215720630345342583732323869369455623391475701174808775102549468051437635080785107246782008952518678984056807497384568121177292850568067664888914440745699366805950765796359573040267121265376902911583401013487585135160601470965800344192907579276548472537506100519890063175713020633824256285850201005687082125164541410148178890259140839516295161244111956848779099952040998624732292497089227946739719872204229525231532107059742056669043258364394404110100883025392802867251434240340123041528904449889831686937811477974722334923872681754322539610778480226760641121416968842444221560800464305295949373120597599864653606479930548669147971528344318301365776860859639043665488968225458446680758751432645127201352079497786096508119104925141311562903039651060552319417681303693553216615441100313178852388586586489513373087355663956014517162971154672524773524914081913758689644057615162835680163086627962540235607494476241716138930478086447246401738095075499175063033705450866846174111451647057141532858646823506232115771679175847811858932869577736960528527847920487180591823991512367428635603946659458942609651463704594869165053987535739355980454080629984323105085699092884518635623594731555005310391228171964423880559408110595576886394150953978223194102200710336400049035077205753911272761289639773624005789811892465943858010621857526881497386189745696532674740384070021345186063169458152539641658866938445271037343064074829736062803524850572281852399532231275052545737894237004164730842392723767075576214013569060451002557606290949383647412855121317688489717352771642689874924979487339419184744142165847286339773238327301404349526800811020357030352864424055977438236822458186120416081391446483264909511084054960044126590690522283857803372624341654394558999815038905069794532266038844446952776212046292576363299428408638769228263925748029769190862032643265830103298600031234437684862785258790379100184228977163027094971637649628466924314340594508225229221193041472416694854869392392862818637946250636181887054410529704352301091109143035649635743135892194369952379967972357027478871516312737718358776333191219874440805646322948893355424913199640142016970535047664057320907470571975783804569914686086197460545365629526708019105903349684240021736316002284994953086319559613141352484741791146367644415716292985172243682328500259567204135169213490158823218924459864555998725285152756918791189024125947844763131425941463275018097540029826213867314630912210172857052662625459951245987806825410489184738859091401995543552946083595279952203866981202990526359726616899474886089227124323943018785678081861671605946281122706963955225977143571070785253017625638798466102204436674873153563408294880045316651587458385053289906288764636927651193017373750437218666685538757949455273699879466131549381091053381280335751878470792512178686292602108581319700966290567732615198392135995994675134418065964456854311726556531370187676210388061636226180651481738367898077546136319049280650508210570435995689371910962470852840418548369669022445601827917278609976643680659489835276008290953689612990708100820225729564440664430594939957462783123347756489376528896564722313931855224793139118170563300098807304137609863031070611681050121981012915960986955844893762180191980802823974302779829689633552801415166887986024953094265496824122464263013103106387581918177672087944973528002952263462913858349025768322460464578047433283264714736332941410616356760756204620248565266294029064118441114798441012576434054271137529605145603583674567128794309899178243099798297282889716960235102008873764052227083240087354789432398434490434635181884565657478762750922515791731020464272228749354123711129809318355799702858631760222272459750401691928672209670691456386385913295813268107820054326154620508124406254297457997439898677643347344613442657084179116387225352264585814961903911953317939801576943913913310326800938329020022881052043586282809204840651153237231045342757493852173548047286485642633770153771277418131120679238253799163633558457267052055335716875320526405319038929857367980637254088026893859513337468193697896064884050839355049782076897484911045299376481565721633630792088795277201066358922628469841309783465685473322463863032123381555852864868630433067338208903135416035958218057733070109848206967328273760381474763209260283797393144231436135915505088446960342139138244568016732919167126209786412788683666170735461239330793823987819883177257589589818713635179130840394179765964389070923521312816156632160080091343956636119745967093304912976076219309776496128600313317417891106311976813534357061498348732992016314081900669166055991730127005128498658411548219277674466504386155992127061431806463111697431509888998778425969710831966370839321076086602306314812953828420204750936862592315350004865544292549528318030421246659119119884930413759900987340079268626091084936938235638448800492386253260971927036234883448145703871663373569886242298181136567096198060397400995096828583084007771126476355418611248281558243831209821473132913566357346307298856967957131045566883379229681845791676661786099483540984028639430380174313185769621233092818289798044639439001713538670910272184497443269886255392374516277503257995700611873172275906066070830941516166725458543654881099178643939962962311604448395380617785440998752268835689637766382325628621432883663298775580061377093556641428556122702631860220466497797817253562376190682476185635247304085781125416558144662961053019646229215086183791965341346969270605963356764242462140348657183023692411674245234186162510969985058975557929930558214027112023363561011633779483414724054651503082270593546865771199248342785255803662925594165314593302995500495623101174543592104838821141628379264250807586503592933554257664402924841033118944805313251974508054117025130842284128058119005840293050139219790744819312682220318793655195431532481054728367024384841560135736786060737852462051063832800760948957641257950414000868819447666557473719054954644698203711765770299630985241079299200167324506668792170454783227297063841808296638128049475579775392003349404808450864049037849138661729719121240732166592884848150109367425472619078707347304573984261000256744684065094328443365981251598944182590347827810587796164015056944606959628729392575364257522637021189269510037860679133923319556060352105662531765851637303746555834332404548745141895546598832751921166895743295745170931272367904240067074051383987083759991376456669325876930157252681626522617948369570387956142328399187070104792363379734714282405040471215073612320489896784190937282902720780346112678687708109330837479623958632236736901065859225796659053143548649572542686284544057736060227272636971428426792080821931816591371547241037200019210568032866285447378702979522752836122639221472347505056190101159998761505312585730635549427129286314721261782571561099537206048439591687871692293854355881165808514007039274416926545274744629738831537426052461900381936152881585148803225057584091060463074812806850105261252745546954095968903914918162991280617498026507569479410831921595979396699941363622148496961431566232775241346229560228317636058930086580045317882752332194839100904718609103875064294455866650074436478251432095272119581240672058416164349371136943269725212533125952805797649521542832070390859713215044260577215149617210458232939626254014701751486051396848855645336761697621526783849759055948394017868802682760724411239195224829133917513164683998753401720544171151064224766887735361082462384625148754774185732812966897707345309190108453910470741102637506654338451179980352832033018255007507722350676487926089136966855429809690485931237580824386130462064480356807802454872943849483701265326105068428181935137327761018984279765453122215900591677391943984009617290761346038787083132882394571550612223139348828041211299300790521380414004576059691595025361127384501400025556632165571521782160382035213072301925329762739309612478895853873392521529894059642450958874350062380893304147673054200856184952999875828407193738283583777439388609371112626729160661286443510837804336611985883327149278201118776179742698943760732690022712076125172442088323471082971582887110427090511091687893550021370526246480637410811931655970256639890332427541234084218701063316044349679646718119280894579291161514861601108933003089909313355470258353721701674153730656740833257476584078746892856031796589100082800815927461104317110141121479125403645280826196009304042658092589089850971770718168466154379625424789709806972361519860308346198288807189014859861454907502622489283303632896186964894477249843631418040499302070032830268510316482979524910887823152599965627496291680714786378608781470562441127401155701425903258542671637646137008672796762959864211356620541634176990434229671800426888350336501015462214038175570256365270940557288589285000854792553429360540813377896010241808026290946776589798678173676208971067684968518045096729818829819470947778353811089923623332317387364716613785583072844223386539301653427495331290772906199536992986696444617501409938870582793399068530221956808651341108446495154462423272016156486610131900251071086362617969355675788498648631193986318266539587807849123082099116717912031697209863395492628792259324877755579082489129927166236163097980351731835261132720439763001753830306878429980595255244426047659914948219460462971597791904812298271218595848361650348136466632201140682895064208931588969435440841668470987433949426380625542297879973444083520219277033785559181050948036711602114416451978612702188783965830812968399527553751795847963501285649176812465124242547870727752657273003710510358898081357978702495111652728984774694813067700347031166588699733366525708620325458478416717188350508521789544126665639359847262555841916788282757047135027641623865247471408557121298998336110200046522045815546414089287810412678514073851777068470492842811377528871925162767228250997518041467683407203652688295887093751031752393435017449666443301870062358723414559679105156476428093932070152835294314728785891835632219948037238518037417007989907274770126374564107170560907163966458023264580721197330437571313954974347254208583662017283909558386584856648971803669803525567166757023555607745035262016991029799372479285326639142565566937171955189676342855076630714803441148036237805183044622072881743763324962442856971722680653028130607079848050724425156051566899885521500498749014609032498822818951916945804745470420877695078998309774432449308138563181834506404802314593164048588414436331510441141170082698126394692288282721989777630519496201657989070421733242770027618988444766469987732876233826721080549656713559127741813696421888539373568250304550531329501181607848603074863059461453870687673912715125104963496572815662911572588361822807719708670587014973844885580702334659838759058639241445921930755153624552876265621307341194685735141669942433218251922011731648024236535261307070533451028904494226428969218809627226454605879793515651891490945628333876245412607632732379636844268162335563956956786903701890557046525975027211639332173250390734486517394986621688728844094940176014775881959789630259237858147492893447323777105390308851081839430283976815239747055880401493901389187883597418012483438737332341065841627814300652358310606640134937039606419374807861046247373680515941397775716762046215744269805406041802568720488741193759150741044865095332278274965930720130808315534391054443151233198830805871124660415049473313363419918903615468107066796818299828651284827024648841693850334016420915032075198829194376450108476058881760926966026376120005960229569778473508186276951771647287704341559394180586543838704789923910677696341095703508790765620149529462956773837335844243064325821961972275252421337659167010615343588750591144852808838077484045933866271275332265480975011952187944005769159960775979331797586933603838087996921169433836748535943525661392247835624196004765213953136854679480315397258417564215239141250547327217214889649304628003280824422263197557938991561796334845043200714777461687988285299822495568834646773047414203269640240324180306074330479791967840943658947668735056213921117253373258434660263937748733782665575163676411600310100062129980265222736074890573593773639596641354466529375699637428533171156966974546339163694137911979510422574125917417067057815873287241544879577712230107793346671364409418426031273507466922642589380029050373242740184567053528305382422911087887748699174925100624573776676788808574987875467194300628498671403897966435180061326159656085868598837008064467744544393552522903532122629771691560582846463732043224060359480343748163697791696317388281839097943204676326741384925398172890412737461397404316162779429226712883857804002599064340079452518773017110772897251298244676765964996725671495045319747175586178808256791774346457007756694993102206171929575009080746979384027805181023120428782154015526645989352722898903377757315157096957971920627908314312160813699759679831207140290520136957446029429104942471412417416923903141070038277228339640099590823016493313813662312797042508593862775184132071539276996947097399147653394930561674146508312220258562624012891198066997020533758539934593551695704504188097334951661588560108408593514322831705566767951287098212351192550516553276657222042808852357179581518364076030536455422431129479059298815665874311668694641213303067747174808517061400545548456057747709111845718677063028462512901090477642899470472579545699609308609674225185983587486179123069186525376143043770958634995735866953842851151698679010049425511532913354117345136482680712010172298701517637854776637404047239313209500703251520290327298147973139319782607064111232946819820139753694384536579283926381214533806935484742530893329568022550881635753203231979827528363160953977915143806999306937190729683596612396529555437999935434183418089973170577387418151021074649100248178342026266673803372172505934210664894755924575505915063161922814028980224107462045846402995957332428305649479901457294382184402892005440769453611531564386605971958708937167421539440740819028719173917784030105589832341111047060943924800283801044564114469647364729818825359628620233983613051312191746370859338303402577912052513812984094661451901759552624588557275853951331891757490603997501295432214041238784994452550793048416014502041575062061151557998680544290231873764058566690508476313869806198281532351581997982840341318361130182660052284685035357683260374417650718176324311130501452311024439267073181055562262649435662294117239798334009845550817740674926889672644286238944446189503579532289140406049051220683145329684193182713287671629562045944996895579309845250156203271302123678607453729112524255763025215322050365240845156037537105338358737803879795695527604500669361789262296338153043596486343678892971432052420397639211180600534416328777877553654350291835916624575443637329097309049876392150465516322501913567836256530333430151999859892094403529935495004622487087326886511209094458066527256149565616855480670279732632340699063733720860001866968756948331668492960057229488185807705529282159215968324333548236122881613245496731003188551267551734236314459551470578104334866071441614869937778498920282713130713771350597059939243919717546259741696546773697051108960476493266551378709148458930646590585236795843241911588483795507307842641108566478002866765521304690302898160313341992601882997332500592731088152543287061382977187133977430007475103704316505588773208604664266690580275922962971289147967876963375884389007600520897789966998432968496587048359150245182594369004698941816052844886298482100579348930832526904727957457149193061365755034237711374154654617937983807049794575608173749449841229625598222202714496506092876244631541903690342388300208343801435535509387457761035173207672668849690937690439468377001554069820123141163083104657192687466353011969100784904006440227539785005550472199997193123359193544815467735874380930154744061614472848441409342253906738834004183156680247240489284493106720765827313365653991408777767418780910146027467784167146838099152358737205793669708896887575029961319767239297920252329427997459049156544448702788346721389378884613616598593733276354189873628300272232915087601590368848179417924755508069004644311247910170949364069315916899420658187979860972138478487902152691252894963213974595113209512744632900768355697900313988655566686677507297317643030675276498186132629743581480677266537206383708718064192252557821679459279222756830303382994555909404882074976791134664964104166383547490721672492595279386872443307688855575575102358003729419008528686259618028222328827630610955011960606287031059820921416387668794128737539415557956964932317282943853753725540381827216840404492325544226534376606186411565230381678752463966782036748784928055967165576094179116683378459265905916794597177308897536888555777644045739229820576784337291739540872602461758265319016521300751231042092861139115556072534904625241584386799053742642679847253022382208317886519445283793492265361185931933093647407674839235263699015305265996462106659437130884935210739941329781868831241596828140584970850267442271485560637003173137598174868735341237297477756398360239518724806449019922119100387805445735129369390404684173272644999910637751741396650939953877379436562127442351033959263638521400347579195554934997200478184243673696496324880490701511945998508911773230016588799062850138869878141311271955158092841147277350301193942558680718814775974366479034520416331983045816456171363975300141547913692610051504457125588831298215231820596841768641689658281182963195057347925551669926401089499432859450083821755876896094388259307784795020009604084480047656063815683084021868352728905753293631753887197205014764368701991038069498355121095269637384325150271390911861603352103218547993946979257259799462667417833008935546440279167850094720820307253860946307827093011601529939222032772746297987721416733830319898340603919121919679829673963679764230861905680455641791666784751211691783949581847693980025917956048239083543111476183821456846399415739130261471792361886311137555552338336245723225965580350958989955929168800668761119135957529340230047482343775100494349662841937510448435433704438582620238506794618869571670162154925657946534147021391471151940324866157005655309869602814541458339684790471947572317768371569179649807723513440827393813539914374154470746609194336607895852117745202141780024806513244355557711234723988291847058974283818186350316305710359596183720442499527254868900204982106392483120097332083335399427164864389427355386854880567421636062913070123046493345509190570746723300260702539989196510015882696743930518418496330127814360934937898536810019115474345686370360136392487266486658311899539664950416064039716071941921584035980551469093269321746390303784018045533884550990015074656310640785546293856912867007373697564330812600577926723806469338953510827719407987627097229676460852893190292451111686681390665375260102259822679643912004611895237708833139345102156820015257386557551399544701282893808269440429002213461984999299985659560484820246115942428587463797823995365336357355988615872933174927984967388617219197500700815095295648656672205518322213119290324979916951672684286375102371070465716393575781548433367506082393884413502418809573975628470166515014222575107047762758353771057052564897555114958511888934882536110829248605048989710213211929158269033604942177945563486149089094897566019701857024578253400324713765375048763405567254335629161445674542745228749075856808704878924299413506816627986706612940444198647019957640251088832680466352381591688027958570414930469498054686154399649029358638034695977771899052387713901439659940044399664614456411230233429006815329474278928847133918874541285661068044973719894619473885429411752071312084555830469167420006324696758687470653098743484173278536103801594010108180948903618933646468751069864733235171871398938168182582491887029224351259644597740152044512040512662423173684296496386560382636831563817024681686090576771047031218705921131862102083347183045876759376398100029022731602229824386971022888251660432462826144012000343684059729297057801583143187175360608363893730116746037301900226389112928725737407165577930335786932642853742716863152846118118075496712234618625176902347495663495723774939264407162659544484505605164791790576650754674174170458667218675105281513415145139289040980888583819112718946832857544129873899331439464821432587091326233760463453733121071591274408826779964386491506350499390350985332304735130719933608893953043782452607104359232453693525496243221660846844504896467689972921139815336963095939846807752383545901153964823819248677958477406490828422821616421514573296132764433038472501276476574745305309476412545342913796076722304856952710207290747372594023515138032064747178754351901468042462115752910816608052429349584341366378657506053596633344170049726413582795431533040377409976152609709423667649584799591222004673703255177505837134237002813707411935047571649526444920730587389406848697456702890451225910777481421853117627068880498597086919356781710008851040720148372338139589673540931880141592494671503432859768223694040514912890532332855084330633622692436275856915569636020848031586653293767504502029688583378839178528230667551510556567888044368192452070705101829564946000598320550433918267508209392929466643736413521560459824856038099197320233719631789916018525098495279502038548283154267524318024521165745605347758347232514884092127297173013396293131268648381137050610642890866361403868274135488596876529860958976727692481744228157723800714569930292918619074387812948196746748971018536224746685479627627655674866185376079666211949869169341014755347068019120063195097584911531310908896209268685202587635315814206579839261402898775432386853868024502933829385953607793013498423079428968375407565712271649087427463348042372326105477375863286039906389560778284387593925964129132821282433802308853020054540988882861342787817833103380040102767752824776523072697562107953893713445110915410783590708897880007218138549128500346559752329768742659282507694260037120152715590047691870613688172151797286564724482982324343351846017205650920374230809288857125764629093649044764880303989792469556146695540023100217326427266614082002569691652497455065147517851721230018929414598121546385217956421086169382016536907904693938384271761894052803883888850394814517644921449205841409988688413639839641339911594075548829088729561682376654378251316176643851628324876305042916586650022271831658452914258197246861486724518088320660365808719828479510315842327275346345993010575770251508256640940762397130156486824611656491107344200278242746737214106348230973735683692475809251616823365469967906322144845423615592930908804036974055396057401099479980232972307930759641495683595192253340025299058132636616684275331399259151380177593616580092738737680658633343037097434444418548701889779100960286386986311261098281185439564446293143280377773696383005337488659555893239948073872209124100723414573602428984383759753645216411193269739734726745184929817657726124839071750616485846562185756427994533773002375573459105633591179321084856150715696836761097688471076778553018853769151025746289447168412209255049577169925746133419410262278504516441864510183559113959061525978508401934052133819879625188532890592926542038106765778801202526586742338802515061652446025521466840246175962649356852793766476841515597037583543381012138015197624425826717070655881691312303569410535378777436056951658945754351948390446651351813547575899492751719719380924124898205572066075477993195874429389997154001052937420504407214249841713849556527809747851862040169578691300040592429747812197309818408825566344901804787141105046665022996640950399184876776156842571237693610216403404479495798685618499629275988642567384567930626562238549500108483936085309554027677072532082042228598372929458180037887159531132842014704962230191071706909702395036790663485783740214262707129018393615068341114407738324051057396910660192772476806603157373621278114840087246648799144183674206632788056915485420515309871296503269665652915365991011230531652067898876566392309830587924392014685781799486906687158195924989670949936139714609991253496938479019408545234387559077578404674540484807510482663726043252301255436811570330917719663935415545188218154206836462517890270860390099719346053957820636508572826030469876675121255338272659281504432613240226787111813445532324036751232856432696398736285194298722206441485309314826811995017068373786400642370933250597868869518866917933825015316366544772599638049982113030767223903258992712834977825983650398023467973821246465064466588413412141880178835321986973487554519049956006835568588045928767177753492120254972700682518083998869388785452196773223616206726127844028933071360000958403278143336433715632698769906102543388200840784435011237150287681808270625368749971072314097284315394884495180583420071871443592615506565270764010624694789923591432644159155290652100771553498860375501258540737123237795408977994299049424599148799549623399889619413254338871560364462641172468836010560635028384200327656179129322833450833549500332889803021159833137961004609226122608098943968755299467168641691221649948708721203790627510208170273442077164660820363226216049734565722816000098927431827004096789395357553159333325897415924641078896426774415868062783340274079417837678151103654746862592929977446698957615400086500469104794756318756836009444174852890370607341359249337740078021747834978818697959481317104409553965621009847491320581656928357062535130580235060734073634365930759405626730995687894585308098062725074736019058274597150315501526369259988481759422162031207579709984484332278563388729044832793754117388320207601084202535938837314353943792299399026880400819775808430580634300674393660240278734786375664320548757810359074669508241893348287621739295373693938496969112671587707247291479736678456171560623936035539085209761787394043908830757504770722004665917785339121604149322480521950177220025235282224812099299487880529196480777538758662373008576883467582552735679060211597811976215208611872308538080989523661232355086843311745414942524772550994641768618526478599273802474723870757513959532450169000290397174627046884605559901898924533734857407769876457956829795383065765420611514494318282168820093162943411660943701248622515053761420224894158225761163237417555229557881812758021414491875838284732631631952773803163777847209406931330785087899573363594909932764763623266255923813705069026515777111421616778604949977779459271473163413966675356305725621877571453609353518322009290427114041851910952435256796016864573862407559233667407099248792029027555840700366708527891815726362427342402075395253719817487168743288256101365412532830083174801135581194876946706650619213603231338920818866495248735703119061345593826462307570177195660250502942556764110438566469804599540355314874754992267513902333097937924777319301131716420689525010899472728175495522994561795529172198865023551564222957765420525218030453309364320502536003181027018190882577666597243911384434709775719944438290414495642025904113939156016664900299290520929668533507684752884887201311133105206892565994578459750050655228076357473966386133735427557822035002658879363341046732198309682429427339251312187455230438792332080340578532132329859400261113229484026933228346464952801456000601859499485332685468692480581489558944765595019544618443660166673723696532861737289517663991737808034073609022265706442354465215964627744858276022889296922921902866601619850587829628372521192756925672030851204404074979646803218833817244951227679679898548659663514575022440984625415664453515099809272668398987119944804603643494901357999248678003488678064936355932922033679983582789269475525770781257475846691712892754854807870264233204144702234857428098417226426573176905171569185894683113790820096657741620991113742225072034207825617480826833467783425167299696467361583120731026549835420178470935414462879428798660888540941690521122260853361097032426623323821036392641546323125546863717094815243877843346240333871429533503935072338123039490797479979944383151408841617763802268147111312618351760589493648829172861661190566540343881700863636904829341596974531065834308631758305611918286792360283159864481466194887152918944640616537991224376379350988093262050710166617892966828606582459189844806288889803813249173746703540185547697635921580395715896914981690325894408267124959881714478445625045609197797080977065711398250468949331029902870505839116867696513752818656315778553393270869537535390793148167299397589349414587805448300851884919607279783923173367652169208165664002983598408786451464638940839176638979226383999699098828022154662326202686921181087638758266077401721896057996587097521955204785433506557658852239061770802300491659191445271036282223026807538610669825402403903178985061057542410633335440204872867382419013872912626235002103396039773767192446115329913254535669250263154248468376612594504494114262083563506436508303671269723605437753851603263380459073167217469414545140532336825406723015694330922631494343425251045062911842662122203985041031431224809902082332792305978698992943775243347993879739159911427291894895338315997336436735994524555561019510246807897767131642042219738255173612964357393464843531860421009736698569961292030263067112263902735895436626405653839030831783315013101241352579934261731578175340649319576048716504794678104964604566139106226671256315846993167422806757657864126494789932720356723801015370990705122182527703492683997336860465166559755081520893943081529551516139237620251817828034195038588547972611800796012881529063384708846497415264969484344514947880554053812265075360022274581005288566054592800852049495294164399809050258426977464255590255323109942928084486764471674728498687442127025374698836396813140323475142513820484743220446690436498544165438200709403201352081916438087463823792990740107747338316682406528593189073949135046887422340731997137227112804056734661261889382658151256468856095949108835179140679014774364470005085704214896014903855059756080416009134459650726361086426965118475076832955569472368621383457827870917835268379781639315067089631261948341061403364746044005665438812202235054904735279578176565881136923488879246966823770149020247151114846946474618008876765789202545615207895744783518078094812360539668679449198890196859877443967929493050819333601951351542729122262599601709276179087372317175612235699401576683431732242471122278978501885254770960659939643550116205838340320188514898889671272741502529875454533740691159801866242982625083076939708947227502353235053704465052981750421362576314894102618375130642416527275117474974730450600449206644601286248279434879722097218877689652830696020940760966123474288578714340633717374941778803357399529983706222053906785006132233618409576037314790657642734616537929429168210476404344671891253283358166973667012243389627784231986359286822033241004469599678131708280080620724401776785789457267355298242742678964524311465892136579805974173859425033753950282320784387013670602309336848878929213310954706496842588773532204904991261968963487375390148184337850626150408618809690391557083395452414030494649159495311532553135016935631707261615262226435062590883055471288344823055327886894974334008739354037256206208652010229316230013270260491020637148192299316938971506096359560144031434011337933344845387613110605392803506679962835685548107644928132246915239756688075825947910413619419010800183783137641896329548145483608863325236997731644566668987250497525283345305422758212541867088687884506868354303815795792762030289987479713969242730936657061453487547260024234312923156173054722702010016226544653829058145390927320021429159210238910099965204912050106733113325901882703582818110873387064693823537502141824775074257796005124294994768967052937643489376578398747931866216920607155716789257131548203818227510516102565491538534942756975105443955842123733370945418928295090559900819247890560722873874705825669491063882452675175815685410297541347464621076693706411100229237315169583076234488275089730958764748899742316012515062931810370280193769210235281195401915296052209110790595348901308307238050431451254403096050488032135770472606989177006266129266947407625107960304218850508116151140472758382884219209150571077776272593739389828786395615907110287171908611601595692278683374926550186571614419008837101022003341340008138357581550195258922408938789419050860204980817118475939510580985844102514253473455138959967688761562814302615787226244532459021962154344537110882336683860618532827860690244524881953049834971955738586348824820060893495144135099484661950703781620049105920857760975488945026865654448759835568757505503945653031190640174823019930256921535639859117215255303228150011976280718673162307512506748711731386806525736370030010708603098331687098149193613602679823908350149779845248880226043091209171396904092569883280190223721864544460457417516346189047380187816967564656232179610154909518416151488276935419760189799180257773499783729740341378654461484528493828233610397381562684916734514334349010621529236859706230622739568037976260786764789787127039255828240382791366585576100988332692565425170457224148723506771268821109885082315575877918360422720024564706052761365971834329541751617594802043537728251281715344578941633602155621652651534316986696969648656664584185430050468871759601598021182033688202731554769566044984401056580481819083980306067144831722996987433309816003358967072768356697545947540454602982067766009595135157731528686962510661773525677301365025808219527842493086711018528541002503011885763935634848130605264595487076704387491499182518320243275643110366952220641716000217401002313056239141533853559054216463761428798345666996007244943771856652609063571364438762540574355231483094265749088662552553809877265717551106664680734296134042263170343254922047283318981015145041571493331507696918454450401134510950380280958174728649806423982221864418283224175967685815593484414056347038259783055307555115909664280345031390860896058919652874346684642758882033558604652114166986960083155160235053409491384392822955220096493326053133414401490795239520335512877004950987230165914286440319073192497498905892831414050658431655081451436138935510905869384605789167912742214735190145520095266303250427645622909799749930927540441469145473264751857838022567655996822930312194524408830044154377041946596506423430062068089777430677933179993564887969429589446945542515380122434511652984891933029131050730242234173021021047909492001288824635524383389006728459977210040821095810332536400273204253029616728979444372339602116707193588666294912401316908446809853053759206259641503265282435602669386826077012727976877089595782888764949029850276960224854731623032361524041351319835586530739946716358482234074679801145079995305241487249192109746807139083276942881023713344513233216578611570163229035547592179901473945969902717002009986114042181603309314576825534546127571297845232732625404606037788913683008128677894182436701125764060177117546135147133030959298209695255764998355674708816954954084533077260700606848030627686120828364033785767334268871135713508647883666271793161508590690201824396197787528991684757824906166787218447248150056750848689669676939628336885316324015723924557773691861463097703414900096683925676057925426419055863024792507623820963301724423935445241533708599947146428999601908122389704348268550511502234499254352138095223419064661046615875469615661878271214551618508623736931301550053865906811530489722676706155767453969138988246173518351406220994379074749147551492835455034019460801314678437689537492682082672505696398425790248457852336437708698989535335274524805993976751020392159081841925562908216455479538858341566726151553222113138599924385203379383677320579512115223164675492629132337200196606280932940247495524595201837795764759358536118566836893711126165207126402495150210272187826319205848014760254348046209871556731088125162894935427749508006463376169021911987632636788405099069169397218686567923002436181615060862842827049552893304423173877314240288458911563848965765408585211101673173786124885355889252829543296908508856630897678559904731592948766732725946585030143274478714640429400290458377401222613458564356610118044073863801101793343242079790756968366119768141095825486571279427329574352475364385472950443065984226065541342178108758511830964116195551351042924002719517281533461145718752278452708210712689519968806489047350221742996057705774361131902287137840567742530262065555066533779212252335540797590336211001273705813540199311965143717752956268447407652719742072143396186363068611830960182475126483648276026909523475513094897691027653752909363095807861848097549322456716953385332072733678253668435628236863851019923190501086355542633254499343318710616264527052425481407062789395823982819766899160624489056866128344177177506160419103263035438468557862571609207307383007723753335847380281112319858658125191956092942592181149353604713814247921882915773982937603710802615719723206587327886314463973149577423036614169954770766719021096222385650051640223887161339117632936470619085955073019534034191559582699440911846994002756446379212815028336207610031121865627857162680840786044974664201658056222073620752152846567770253541292515127332561887581214039939376127525221365047380649548159211341861045823897005482783520069714772771513874819838595500804146475657167088080907559815127864991684640705351214886049296490955707263904156979041896055718827738151752722363499728035773799546099445416446291412748905437124090083434060616769115428115802007941516895204836275015665340844742097891375997554487287250613908673806771181831979312855167052445800557105101031840247959914604955841682058197765745389879590004912546089592425756888834403084487919895847439677045512985817739827524395193083644054390016420853360819573587891067786136200877113379506466057174004091277966199805631266795102067996242919616772277097962097060047912887778309084823708350241055972162525559453813512065263200554840117248996356940368647106509564562703441683152870555265380443720485442604383696098887943920709177493649291499700961124142764555176584981782218660994456579954673343107788327207007742483166535063556888560637289733444765625411296802457729938026102248156391138885473417662017555439474229338295855811803239506022033014271979274913143324036428908639287614897282777307726367520011108396528926507613090916608129592588145198633824595239999219460442541910560445935127989662939151206749901658805897111385612124422066349101929530937270812644760361102299414623037184835777701896973376778941627771768622051591886381991474452009734787999587693696720375252786378725915280631290348918770006982243797127259970812204317663939043331749135915438232545817790072383464487300524743606911967717839611362885088271833395661868378735037213897231535947591085308084674392288886824721208112200926215535194257403152538546965846865861439212750698082004613459994561861833264733577945608857422927213743314577462432748656562067241917412060138579399170019077826637124431614952096944584243489180488734994971269735168958463920840447346281705992837859088463024853391074638319872429477424752619949459347167978332034446465842295692507562599499412417504389017966192245674184842361201282562415259360250302702174271065857519625393249813086945324374962763475585370477696535764147903347825578234145201356193817383951321963232032350338030349791225611493816834601365827953960406975912628295264518068101683529630543925275452831329715501446931799613148114297881693582999964639150733197005586886708014583748572660263636031446508295890223263887353424314195849361880452710181597305242945439910776920576016191969171926046149298450231614903592471873564222630146589031492640370020373994187236354852044973897806316640908642303814985838782155111657536734665926837329627694648271463462389335499326908613921472640677900893146607489530936963302354231188423358854843523259023743569442724903742566289929406519014280458637766483388552662136489817674505264774067820598490467804479792452262687940248743590031477807018594912631801072238086202855815250828659718326827366164660573502078356083769349980490808113260871464141613287857778827433779864291796295992927129280636179662739841072808844293582803512343925601421602442250862887002307121878861695505824611027722045028102974174034668297840740292457229851689079077143833273359102129871198187932654868304825377509969966144953231140233380238177058539124120108502286864597154304454326620404392189011492709739216688331546401877187785101444426239591633836546487262823977263115849484856789415288791400562592297149099837991412400156929639790606554893395632962642795953470678573471490086330103135928897880141284440495472082572881356983865223691015150726771093231860391544216385651444704598941246128729152337179650408885592246256510929500735114509548558228481809027024051560705010192404004472491059842438772476264093841363806525953471643140575241275895183454911512062994526975248474015254182818614107272974326590768713143505164620449903355211988925997649550804927113763374890929729913389988999615475437987244777694146572645351818688914437215752904049560853443362195986387526809388387629889837630720268603591665134491779987130618467615619925631389726440195609525299059020708316010567701797574338245971806278293893198966881409453266066670877081947485180562116614032041006407891261343583810814166357683624564967891258805858054226448114403294876758113365780527075869013818358459952544071861690270524688511665880952079995382523657656792937142300627905818977469633909979283527991551648255671096140518377910555058550725783342072321560794673886868980558380365828315781074334755327654891167158162460857575631624768196040557873867270781583289339931082096181680673883532699770312663748769542699998720737218150571063188704460766707816119510755274972175867159000170209303570927619969590027026886202948632762644839257771700680379668995590511851073240156992314569988909227752984065078710296317096047424840013111298390735960241511529302363208575470473528832584239333239933255790284992176977008498370054543169449952659689583395897893834428430512643512834905154071974441482618683271082073379237463279619663685840183433005429712669201083705503427897291276931221424947815912806594167606727169395422959996709467025652154548825689178907555400270826556729516396293007308830655037490510379994030876272759439621640674322720406951352914142459294769993915280046742476825406929482302936472822563105759875841306657687873683325420024257366153578741234498407316709963437740830655103033681582899981352353532503818171454308077798483640300475397637088736773337475606175178746621043234170690321926659691602724982414240680815807850335868290822225552256078622132364110524647642701258232461442022540412671001555269281588155984386284567993274904042574049667531689241376978557730689532546505176339352920006738327844013581477238529523839351326192757455265914155799441236461311914380156790402099916190144771322684670671538936146156260475731761653768553183507975685273800434968403237953731221535752962118179178080505039706876004689940997231151820090522401512667375574042577422125278364331234893709551885939659573972809678568284423564543746256005478816839976293873255388407014170878375418333624656864304661540468034890836907228599037292338502224299177336199171313429988098786753333339220357721666976431213015954831720336135822795937189293609833027020902002899701906265745417367233859091262318843578570905660916003473323085024329858700663298180442838674868478189090393955182459725952133957167727329889215051268692111406164968783490958085988816378824957719929328825550468178019372903962156191535475020920760573166081882502965934175802838600330728024065046871972492447883196805181508699623151094714975534496881703771581818659264366226086775206251714130061250025705474025688328627714566671650972931965886596259726946804025511510161997370920623624295712093627412497507642096009505730134165982259549102516131717966205183391394256381024941407371995418543588314334763705972265303009135856529904170195833853258417735718828088564445059930086659811764402874894184087940938426413011745010629673394427548769630501830926155206463929295134898817257864619572910359124745108940377494169897105459990215029353607906747984889670433087236814515949953694497324423317004876352070314454716124787029414711180602073172783068215583782237274569522978724766454088063375504774408774132857865840527169230945030717335552420138295921002427549681649355500725121994014740803873333550581597267668942400678093448479538043227592363656584801056238809624739736020651318991721093939131764845061072552739355863213019645077696499750850565350496831498549296546909695509128250288443946961947765862493943787478012366712141686120167232385847353232469867236861796403305279499783853870328456666389899455537185875625555131706795169869881819296256781695411138223506768334655549222844327768257467203888966623244301664218491964861145399465669894700212842245643539639774371777338037473152611819975398221633653702571256163029797648100299075268831207400214058227337441209908968195326270703054814287570698702470404818289065666417005537681527621160914322240794897465824720608605617125263382861132504462272928625397850851032708462527220029576055401535711437616838199671866913449781972769149552989794801068049823367680184517554625261711521544252637019441509821105554566762663508063853284053921199220761191875312814067934430740331716333884231481670020922724823930209809111083620967579615839904877272778802154801571848789817826840432859769689656923530110450568449910498461532260075584002609926618776244448874168082159176057567440134196573815378211125204647110695704111924709649278247380967131146995504807692539708255588064287700394603957475955773125906334044747881747973214400124925985850731484531982054472905066500963701955559697841092192524831882448869147154430639704079978255357950867923153111631943514893333988231339079624920657403925667736312846711074831883579994911854485206562516634375894525861168523197487257872348949376160230161421725720462688032057489303853570562470004054886781711279012390990952017968221620673218106854771290234007519348593385455932798911725830792023351749863488379419636166848946065296439141474112800827959041882142989219069238520803428022115670606459727999217212432084691975181695479174317555478269701827412891449596336849334934337094072786222994970762059570637708812389474265667617294820114334980854042476622079435867611538559594145994343731012486605654561132124871580042876147115120652211130529649927114316069702465445150938797534449297115831927031972958126199091258253281719506972708413322217925544748565801890592369215486027654206428882498364476403302858383752079092014341822480397076900081131232470459385381657602608354547866623018294904477634071337044546092960053313324345185884724286372294681286728994137192490688447328392847964968915867038000161696373496231079841524986128068678438239128727806527951438475971927963915160289310114979780941739335938318947013236580166861472218635826637658688862238755191842912200968030765659154593528548026722993490925643001776172724014657748133598177558338958103217590417428471166181529182272465276850393221340444755181003366843609581884944479301838189599560940109767910536639315701339704392485329691050651002216081349613238923039892107760628544257556271655600893033780959173353381272762053278966728223736723213140083669985746276140485392955094572054091547681770320103524377904276097196534146897932630617252453000459700621582820019514245073461811175301734682941052058773444396125109368886586086198532292573059693621812113421983417518130398937930929290492437656840732460018160170937544240826606395169772633078480875149244090951335399834569570604462388765422325469501127882745343621934734548911385404315613580181494812749809110128487207898775867400057433319183624738548502981276612960364450940932820664411294613425371852977912280485934182834389102872523651433006295708108265695996965457025700951052173515164831672195938547738024860749093639097575544168265623411900821439427699434032038407881361391160339184403256839367106437552604563074550969232409299451678310732217657989071783724241999532121608351807653013722896306919071689730534507504143781157608951681060933650384165693009626634593101235155286578289271916353743786124645042095100625215720706979473520355399521012234871458775869196815700312078873542768157025923903770447655606217097621244973053314774181205749811223200660402592659596594257638243724195994731414914083221407277339261662270227968354767775925082593170407141727468858985046324771009208787798034784483156436830032832464643273184227172824591322677302237345884274617042232162283718401352590468846657907992496546974569192722679412512155337764301794397921592134608339762039291067045940024053585334408677313031172082101365689331844646186629893739212721372591192769202439186239577004781103809131760501831290605438501206324528017838268043859922887049434138181441433809681674452013694693927800536047848816726465434639301693769215139882232292056802717508008909385786941432132144184281010323260394486479446042785010094108327159238790221299679068650482432326271116258126627326496773165825484652782358906896071474985050721389580453443802751607778717195778807269547159172338258087194312339168320369077134285627202161041989471231742174486807765288053070429484170768354791519421210387618279603334671682968824350628242822550360610821128856451993929392727252484515116105151259709993587339904690547081155290638254062553702154385308256385956257856996779955784549765961353066521231406793557994624139406000732817434049413231515519615727183878328495162104828464010301183572340184284152341964499389615427106017205211376580913729502441671534948374210366669483627520477180747691147455606417801958515088460872810514484086979420779950211307514121314035120043065950401214872330728561235075993749486655829949731423035725239617186648208907391930898609346529034198752680266070966501083223041634858203604227052306190947944038842504420454493154822033607479571942732399971340777751250201564715572766025702249319908614716524419318152245847474297835794142783840395960899297712599876029605560991400796178688797287031126473582413189873788241670348778292962710643122764409607188790147651416109368369331662282289821636830988665158158722889435333537608300865157078750282703500846527532820562118979746059570534334572283965178652067097981187214886262011940423564850203616293092770593525977220101347569262345808684441541212603755335084533298213905228523906655778926111727545251731138145863508863652279643912438760163451491625840681363042876186777156200614791847450738424427335377590577560281260116996286020623702556960553416025917534762665051142129918742347866576836181198014458427573502697095563693266043011130538565045370104365432316890118307510471631036691736475471719696869740006697547445716669397463263580165939631787733260115952313645113257540098433830141486281583673983548284683619477657529496621497591596745590028609575897638974555517827239802419391922298776152577825451997198809998798943908084639032923713606910922227895345664024562621101688107614835650181545016185723199763122397053220460363188618406701333238964631302308571893552273221295631611461534274057575452761227151817773947300325088218394499116822829421490668849493130467372200484021078358112509682136432222954452095087671652371459831828352041903527268109969405242870610496929363911072569784409715129783450883666640983978433058189556782678461710180086523472544014987099983946450283349624138497615022800350715775118104465060843827912421810498435578889152624913270017204186097184549224624238357577618273377895699489263509807400456844343267903525662470286037103024777951487813244033974836455526784328077167768539865128437333984625253858766444178635971676503940270522231556497927338882845066115354832228771790735802222495478207874918665517044855890748606370779477624181671436360743443124164387449374269416941027208290697477314474324854381319528707909423524877771469826903433401058021886584075935200373565137569773171054566582366127887173615979686250646160227421212331769437822650916041463057925000378239249738505984008220496990184448485412170087741396032796070218706024606278827403189000809915655343307956939831959068821710326491392331532677185731505760568166044138510282864186421172011480073076868726636760067315653758642732127722512483229316790617097391412679586010985752697318000977923433036119189892995146264366809942085926862522173906719883954758479530906293667128149296990768244822515214298252301308831679217384357338159866283519059345167609391448212006908331941384648551080564366755100358403061123951791585124624234948899664926813463333467515300182120643813144891340395669208824039653097716460950569959182886461017075219103979128438314787862415093549432586306004591969334314195866336197744690039318602799415903833099063041738324989217385907731584625879390362249083524253182589955707861282007095007037229546971250179402701274059385850417894419827787628444987014159384790142961606162171189495767906091232857271710326852792178192354856444455947710967931273089333733781427243996986183429384239341400770323950149761356645096135767798251133007515429398604886988818219913070061181552000122549881438681237177487507476085608668577572279077243944973703430287273837602348201422595995114360351716550309968145891903387220835935170803317063604437319692521227779685208820512366840876750273083562320181494748940395739830316052193182890007547058645140087008882387584832988952337854088188182858318351521956289977673280588986631462313795574770039481404342800108704853891011608342518217715484243770460486141558696147360687458049750133175088353142570890200884562964537776052243106897092639899631091024377304822123533507741383362944017653321406925312048893790648723713437622544597006489204610459872423050139055803513211125436549139754441313042849850492361666008608852261432948833207911925163280501286716888936639379379377897358094383147225859453861592298988324967825996665378196535928115255436789147837852654049682120530344317463249575907270068105280948937069826717256432886587003294159871862072364471184092607235842908026426748256432831515500774604162608557254422088248013265638524073960547465446528537841506698148725261573806594784272387898985099398773300078715261777075887897735416656067568571453444246983555728447793131190406758302762463168472880636209953112504438952184878747576301902910975610926317262501424126691450869089480461785600248508123221548167361763555304829163962155318031423501885365875528815495150856208574013647821278808543380880873865669964463081089282791666249829115043310889172324608205139228641950512919598451300429644786508436321833620906297800689227504257387597718686201348348602338683480710627417578790146204801774859943571468750221187642305821506645513364390556318810875914092432595097633240220644445826404377096581815568903357815518907278949568795819813906286617333781949519348929697738992999431107775346880442343741603819034384211670618443207487989611042435423555103087406894366413847223168989845658550653004510899214929701232089525736857134894314980121464601160196026463261959721919192192696345291635988850827997831652686882317048534215786739123505997159824150182926943781530862352877815960062531253844357858427182893381086829338188838022412696876772907213438204464410937823979083593670108126905420546775701565992667857128838073981697466753521154320321309382440305206146612700930709137530804530116189057391025629617731161488148820691039253173520068978885664745942366167203294732773500700323023895472891997802007782636382483988654804616446851939859779358621924588032895763117369820784439530267379899786465389389319747097198748501665864142847218411759560282902689224537205537002162551080699832938567502032107770631462393189640027806631334150001397036712509805551991598821903967787497093488061135788369956780732358216499618401378156398440245340323702862807689046267374632950857612027871543220157505129159847124512252954312312430556150170221182190734428078082972809173882987455564826330608886536660007692278460424844280973603882983322595373061813904388690266959838845415988031429477102628092458685702333515024231374487423572579932100166085670569649090059873100732560785127635538157177311198036952219563600285879119402645538086873077692799867218894324974593371941397381177971317917430554581575419236241055221519084856193714123127605738980310379384534492921917281493220496710172472696730112813837204858107152303665604994288051299505361247345122602853068407803366434734584990017982109261116467285687328474866210287230064013863025141855866216943392173516044861471049220043886802082981647448154736529475478187893136564707356879319874154184815019157640264979246011532860176769032353824483014707882585391108689681273717319408181179082298968723301059374846587712245308398948287141311284303552187405047125708131126499022345786968483384819123520078934398443652353618261940181052528534155895475789242842695036046286704089355969146949357150272348147432191058843605423697597376075407206354548475323517915182945094298025510690760099497613415168630629981709727057961029661088451784438450948993462716497506546618715011118353349435409066813339477915301613952342494290471407065768017742056284870210096434561647124353893121670148188354121397502059537307875030679144768245079442034806384479675637852268195955264166263677291810963805882349212031929267399217726363868306511821057940035623541169382469563749611828746879091201599684969234627404728032231440931457054329424187456276640076528241551048548945602069943506647716050618922280191880105437878226039276709206002287435913973661394398812761065878370073742918369404329090362927598165309441010985249010750667587770773491018129352891474288119849463572415696297312489178979924657631737554430913583187945092452852947504655027650285234474174475991999057066152364408186473420121282232419554152049206340551201952619436586202487173797233514268199756192591676360858467374505956222095745621274852061297922838291826288055090443328451294796107495186625329383198006096944769660665758334248357349199474137033599652415639458397669165731412347976769162479499841660836382400773098115891999309292739338947603160075812943581136577481824750082916150102535311398596887718355023117288292185162928461823300493637899479017044460600878869700248480422469201533228136893391580150705018501016964964789104933374223286499389738379007068037747396207564335192476828223596056600684441163680769733584774187449509596962371672044949792261469883226438868011560760820473155624882431021375826754448223609296756333143681451791505055915627966559452034176624834426737811579746500866728700950547725726573253747309347267656458274607095806126294430115467528251798236126868549070781544755047462750028098946114218349580042507219676085932223452444730211012712792107714267632868372336334243483648720227686612388521402344813520641986055169667752414268210124144843835320616667626515766997279424663491910662992178838179529982574185100397519734564498143476858059526677204964233862374760393417930097197051137188806523871012504453703138000466754353675544042311795431489099209596824997453085704842523750521580926957274531243173257507672436712237994773275262125180961443051878487510670000795133000873440185286647210376668749537903857795472100710175830767249871037724370208661935254739214102427769867182438989371367458473183277552870757710675449320582476147902023920097170709326811805460730174031391244315783238720528899575168815138925400847601480493971449875007148221832949634265256416485530615831550734316799889261174456104588306174230093997422837204349704681164088582122475166630926261456211323990611323711287043918809487297699558625825120534255204261133881538763070054282026847563813000083945046813787255313892586724598806438563656394999615605075022376163531186870479545383271497382129828146805446646623972802949958274374331945164784453443953435000728406702138484606790919455884435698985035198662296288039585493016851174130265459449666651689745990864507648472241285697165650514680788663295796339563074958701602348719053579628667998462595942148740404546565538120255769831062825777339844486699017970520102035843795771785453280900203936802187812955332059012323270520156942439703649712812670769837823280032451298567333220207081279825487009705556655434896548180988771954807452997655930355424817182125000180831635515278637222497635277707879207031713514110732175114367252796636561731294958681000000101795492242029620806805889949450465900191844969039851556414371936898540966167510126577653194098280153979407524657937809449961442489293714225120399758334234013553161052074783629816872119003586633577268232359538780890010830424932681028110344443788960939334311732221718840071846011492560086743271134871531439857671405353974564088176884266482426879996176202547079574687184445438494666901944063256298648428385334153826632602591802042158807120831091752034114575865626331278137834455093083821490748918425108734014074351248576404877616445329880829107358824593846342525088964600775489134386842860640611451626095007770346313232067636233953591867280869114251932868410287050099040300888335182122778863332892245759805945984580134130578555615821674816868546062734210595720404970961011913356951285445015533087515037376153183241671825433481300460791934785020957547534692534422994392877367882738267364472001475239960924771317534145044726873572337595530169504129261183514031377464124604423731563239326942687198161017194222182042929193528434596934042262246677543319016424127281331057320983843311361395753854045981386268757474944333567190870615843143316089831164045992108267665456709100907396557937045509628516719641450517466192941079787648265108195526935470022703612442365810402931735898981623980620550790898750479774816408459297732288598250643204531118488270510025672119103370810600173030357415007214021749157370828558966676740586442052318428344332210886135675667273112028065992770144505149163177209049798625001642399408882966163985583320560090646999965785749024778189041295463341140220868299148523802539941962633143335382971392505552646876792693953974329752303146615460048133046642998449789988852977511550328311258425812259332239931381315826916975615893520971952064385779835796394061565261297244984606964946606600427356835139202620130688702227502718933693653149331824562994096598602787030823785647964095279644186081604562569733975670712454587359106776881222412651825336506087399954531355910922965944276549286387492495923476512615456503561926850176400082078636078018442728096268906081363263903264690376530642519406350661116549379993079589135205758980594557634177812019623352341374359441831924133757056304211081828356250339757753482269760627620243049102194290196096049897911580267982445207042009825729895790453350366353963418037205566891441026473519776303133076733578525932604180144940010687602906812876990312904501870315580765229399741180439598244441718423146558583109642019072070922167138960318751295721035582284175800744957215494563786983910494955367714366458674718792660904849961300272080064401134143202132117307875427018791819880994068910991372174057479005626192553275354417173058579500785367428220098474615837196218223998312967683890904322908909988779837297482777526349189510921595031874072729699121319449947685024846949915904131628707528454981196201226218675928059351088618318216696655795711319597254360399226605016463579154740888524758906129805277341838975403261712136762055461223580036669208921954273853934873648046359308292377340445227086346179155476110792680845086751989693732647558422097213385770218912015059047059268662305023893025649356779930395781984791269758561116195011017003299531178224664959687807944136419684853817282676043836340559317828336466137760296849173853784212489500920763321834349791818151690380331178091206925007377121848923998531476869327262104505463316160181290458055925278083381026503671783560624676027761536126840955337323852641633156117949000618152228555017595355603205744379327695117119096323730144127279248528435731005887839793643101964795458242921557536411643713590707940959208088007485526031676541003091513436151455181666819796585524303985226214204079903526641339859923562053614493593121725636522620972624814981540278684832766651754304802055746716603821652552781468517580647780218513203550928225379890360449773242842724344385231508608916587585264225971418662795922780690886047928269623462531612938161471133456668275318100409425509124298304633684625168876413282313923025284140615464000440204459365396411348936585674694029891528507246540043518911680582846323075542019362099132606401735666348337713214302394858680424483868050272467364573607907148497185896657091459802857636048391298212419793599985868699602805729227459746268335044809489343193895963335279748478768569781457263388008029476126112328499060182715525911474044923615567883127381339223451865595680631828920120272846434284555156426831854692272043465405837715888351773221830717240727550499326933294064410634356943564246241256738166659347714936524001503448569582347640692345375032673480672112413725595210931917373543449236607822533104878732111348261046623940627423211813844890784935468619421015536208684219614921029665995933423105272413933959368847939654456343881193317544360932367184575897797593822253790439759856733232016404352464396230048495103236704699995800670384020371229633660306989029414363838074505988459532914375311304172735232010948811281874567806092249371209873240549723973913400194791417190861494517107954658321426413231443419252874622331055022131351680094777373901725160399279985893465159181880459219017228399622177360871576227539328168026117545518883466140887198716951256753803098503725275130571247114253271475427307395050663804856541830574342867351899766635558517770930138380379969359880464863233054966111546036054970227837320898598716601323765206081395941368034403059990325281969665283653147517506584132930921467279848928727924977082367175257484685277929762277481010790453067157684610053880586022384326401649492203669762382143766162083248478004140798166876996753025563600169109289545693751942257593196310872184858689418778398933728301737685286367906381220091126372986200016401879058358938250010577611114849456625667415882502721124169844992894473055725430902417526808044588492608760156681951853304490346650545953825478625674325083653779145116558806458300490696892172982356058352038980869566352418591613010908144023496247488647685166862884183046109215069803534930875712996108673150460593938196639434010593919622567684111621149843617046114461944045689587415513605071815922700191705102908553827549585658703454905023572935543136317359346791324234199375282323972070793030397077948085971826929254587729895220639026571616479838437993437483417397972865303652094685215216382669142063323107250359503302489495538083559621816671586177790318385630188756651949771761836629274105562769721016928731784373003991195478739449446649884235035785906506078625233125296145597104843902260394653820014019500526196077273282468460893427615974755832109753755409181253213394704415020848428520132290263269858906668923106505416376052086136782908937365833702469637549875607093621030575216813493403751494203245457165935161894563399003721719387359971501392700088297892456516542813127330538906001474580237446433563868067805915752291242034142434935733376860112432445540535259980140365454806878961182679170029592857772393382985670757352552930476275168576195266291146576688542485838379261135727863410993416918128255342258820313397359048063515596209023857755317949810927357621578858852462335430339816967466667430336582192015715828714239992444357222155206803361427501735731955380308741010332045171830951192015527172900288257806973788654838240794204050322507132329097207106063618804583113759614015856082867149639571934274259275587924189825421297524712448562979486011089398349302812127375093332088871891721921724888735077400426710130920108583011321558614583856912626810145164401739294752094190286390892970712284443806040928121246419851091584604919487153551605110919105986440039586605744839046060576916319149279502823966800098516540005673745961917783608596338577371546306243912638230060557927379712347081526046290016752756285637530610364130281089493342645715510426670299123356300915577289713701749168184599272845668454482126317081001838062134308363587262434501535017666418346578014635298275053883684828131372341461591938123096754515598186843234920891688941423394078953944160508224853531215126404500209042726700155014902606513540861186530919500873781405537195271327623582716479643538319963206698757082929533086582655684070557946378322891599237532239710710921602188696565393247701549918809375976079606346097416981133527462717187940421284516376815137487076951525233819648722136326776383143880562411561729248568512202358911236135851358248383699542467813956790356373942045735383385751127615049870547658008279488475469306905385949393151050013126482752248460198792995716377144870728094204590855579606182025928865298709278789814612560753783691854292144470771687941818920493736050464851944661219400510537625283032935405113758118644770572858532664223329425652772095707460409703661147240840035121399981636204554076584343534228763196481647335464454352565531372882539616892659807184156239781490073315824048714178090800935840211221831348533395330128396168933119011990528780312938385875275841135190447159274333761421096844842340719288342253623842939016554573386176652925643646183602571932013416590964374486214984303093332441422507057038606353290204605264489790690076660923373351761506742487426631796798736521159530897588723840898153105590080272975503308442831180669111574763666277689327593155725053037765483423033081847666017848021284457754520606711459976670502790170299662926482755923893913935766544151300676107336135843154462414491789949832086234125666324308274355632073156910024057044471313061266446359418897356277037382525719130778122244667891697787156149953538700162632084118876733440308478763102996041030446599579566695203537986270486330958611301802951578299482004280055549661747216533588634796807751989598853965667007190132143966510090487801227100102970012301595214766013277260253739569520223351892344097786152790244412173802703522802736101241790723663135476612921540349631659867784020982406887375197721166735209092763448194800160523452684058325374351001297159633754770393066953265098507716025111042289468998549878888263899035013924597751921792313919548152929752788864612052477496547073232570938036434786081659378105194814232679835329689660018076189876080128292737450734045290888209448379420550028986581505579365716507841563469901228538959531489642291131694247404268461683247371747783246854631825433671993351749864972315311716263977558570926229682989771678134805265815705823358359416252986816560192077967121073917782591095622473387648656006259346511289253343345470904677240435361971640335478260050862347766035741238848588256255127848424462842318796140155932997447999489352355020170235435302048317760301536828175088218758458667373898686910544692354280355612243288369024730774920307551649457972137768298050963207326744621297174360850305580413036710416076884065824136961442568078191739661676531184281303269263974325039906288954189315847497273113257124468274793061432327082082795550828474817912235736182299968133130918094669263945354213113747035403664816701425343644406036131353187347842159708670219348781399847650160403602385281158401930131759769210788170662552531102441912135808219070190165727424612399686916101090528632610061646207791143506453027487563237626064054989203542326393369749702492746348021404343028027516071753567293942518876846397947624038959817074112945758727344198163236554214425556446844845403289557401155239884483616367115069759091174347188272791072099261131417395294056256837201142483179143929307921249840773546699424421354435356299377930509598015853964334109603097321598334744844585713961369068181045874099955621195004804556963413858403510793031827433753515210362126011565741681350074297122265217239695506282925186202992357250153056674855255449316951808865398410616101572143090353431544013003613281314355361818259402930984893467359893749902516000208917149100072506248457835429719317755028055582498375705288947778736690699855582494604599095522714444569642976325498667377941313527895908989734268138238718563155648721847413617141593181666885049938462161811865521724955812831720532543783634874385375361184894005828482850776564240745843568727884990570642991973556781244878645578917903730087614204341755580782117448516838155455020941580235105574571171488768686819166504487403534675772964779735430731417794186213785720470349720019560211902248161352733730345611972306371329830101951565296375519701306491528117394573673875199663556524486910864157274702353516026260701867876936508215095032396945273962168132382660904621488460967052403149044049929667665742605825885264360738479883916576487816522220861312081107100017801159024028961285923850482918260624087724741275425251974916845257705550249050283688454226187946405437505373853638957256700170906218755237685716444802703721094827267562015307859681433402981655126536028212873758031127139365578062421291343658047967742251367823350038868175469083310424037530557825963923841840682884674723273390080644803118396427107029213174818785547477795549956433606375773092535713778280453225721676648607494878439135880565952364933315268199601090054342792370724805123088035802955176730093231491548580274267246335631680023460522819515655900662961958287895952829580662038142226634946532673409061346647229573117320488157810634032574943143024045427824338793384670345188001051615454385521690587599372014490148260525783335256079649031237221606911169894766409168903346966055295185577633426770326354135276072629295743535954674155135488955736317230492202088400645384570763702329929233135468698283872182123270441985640810588261891698613522916199542046929496224289833877970678141941566793059225269466811088526787956132554756745703717667153576456646247292776631007537997454056608600709463669340050946985720474237264103049702640764080245840523460583240229223205594358673675360437101394140958568392901206386191251534428611974482544387938574701647922613092042707834391162905906068545672007432389478367085854417899987931960994354263710264064585306232635147419250660677836854116116253062194786519902430468382755771169860900755006511967406492458203958446084459058675911068511512080776067533868344071754900977168402242814327169168758056590263423047743662456230520594771383592536202939740586543659759455859249630396759802332649846023195835199470213232793534816301782625709121175098416870855960625705402545234490818804346849338245097281748818083908577161191247993760689284254201882856213529155896422064558608024646531828376905605029581280201948302059704898136611518787187142376909436648346792585895936124362146121473013035158303470120387805386760526412864111550886535724248482311178675481734445232836802847943438067562099068746858943246056992184246247142738100571353895331045612041061217990889908914367692886146058714821286871137773922342446570113508119359221404136235956243951606546424443208372365259736705922315514409161684703141543194118608268665194263747624430352398267399788871212335485053909086607761637322286179436976460774784293353967009718344726955978247357563316050649541823674275234534092354750440957098904150077101815327714146505016826539187076253789948459353639764499044878824999608762529614731294869997398280242289415392722107365969358075142596776644193556660512370996540823398540928192252350635903220837892135762289651819165046915613197413602051103201449196891088758236102430846846618092286318618989418242258796706605579545616882830728147021467484851446809160983094471844233782292416323850299733273129615905174576442330515611303160247097442006489096585143822795556416674285142103967244240828383572379752714916584947122286303871038189995361203112764314740457033648176171171452030207518342449495441758549488818898768695841934925235155390255915702220348754572487825174813022444542291638483049830118916747896465822854695521945248679391613159107550085786734666337099918140867085953593918090417292526075576840383454719002505698447969459322102139373395631628176583130274902653788535955122134644917443653922560130378079845163571300439426532858467704207096418348482244715810343273153197550508699001570935765402518724054445379588037243347835789833663477418919078994565113369946256116694633279560914952820260972551490418568334666553812485632043304066358291423142844845708982735843459324170698815382858946902639069062883731394597499505027374765020252230846091420177134640096448882404042945789493484980236588946152340571970955716793488416799022310145218503544698440453774696794722540967894799991018914405336365346659794881713708695264346637766982346574646446641933214857110141149632530575378089974911661018874103745365030820995079916127284253662484862103993985053864909081192927136274039877533963632882217572523636486537880939600354200256336543491440418918790474596676025604607126924122617784845161286434161340237772825681628717703718045004175658360531576600001403105021856175042182076733341598506686181085320218658675041042961758399655809359696190696774140263060128250615274887786234708754164284809736720344690155179673678427851651447381138178131797932499578013990228626520731843194684532089339956349083402631118282408978980069075114183455016190408503150140782202411585743820672323361631676252679762672881062732114801533765704926018025615006551369445869055429009006210875922585516875353413908425113346430660511283915071318672997062730547062762524874579290862866741229155849643188687480820968608046059709850369980893338370174810851985091873686715432450067414396996849505317125681010844980874797204360086628471306661216405291619736207411823756926530003512292527723306707442224993601442697089769222658243684620061942912893557676885738392058785093438763009422768517343196910457151137819361710211071136940683040892276707618598032669522777453977494529623911099174887114639276443811395513699253053624880167342312254769372395840346173004181194094109158060562923643989853331336399671133615220791093334250522617675949705254997445194092243028776778150848446365427473304640050652259930827966066877577001366654871362712336425920531888933092570809182548530914220574119425489470676255657960633023453584302590179550720539615341301048867253538376904956137604893619522092547950815832165226622115238757233084328769842273728169240473918429734115644751479640759475477934343745351164770500778187322723108863510515813553980887354195133249846743959147236504133889331114313467730163256312035019284843682791609615119205089421267175304251708266952577393639516265327860322808597403439305845754177890356650520218647662737003490263487413980656123766043639327028622295553783725438420947895868148837025010521138025740097695440346030341859856567543209107450532126788277445239528786159908295488504008538019038241292349707411650094143772367245686384919496536449617200564867697603162313272808046567196895677575645819560450289770711376037109989689990086259860526750552979685964857660575248130837566134644994899057654506286551378111455781803720200016782995867339989978144893006166588377495222166711074231742810266063931941553039390744289213254585344424410636779006226353204127962000154192245144922315903603588678866960717648182409834871907371892489935098353047531586934867732985249906399124118947781635573415339694399055865936055057485859053225599371987666042618361416831184544573780681932805576861336487346097649848569925524896476092403691230254676416052679738285580749957469961387151335974145946023239261519761296277661452831259286124948112018983740866093490029060569534385257184733527024282521010186462930791970714769350313619664959125658271231886667726772635157430254912068519230589494229290083068828630125913420067936261337767668635343288505157580880993207821518853789308279006709435477141658088672304775970841191086810429832931139105099345734344951919744661229749057652288701124317111667173249966202962488195599279415116892187043258755229426846321541710344394431353912812336386900961303278247856145524933362526762078987552551191979170399812814127727276659321746984117403532746330591452480375818403590771002343943457654521531970735228138621833994458016717510881440753749557082231588180699157403868492633989094008093379658887925184508820316260157516589649460456486216881846002049271421182641926128600190331733591530836579549975284595873089832645471869518563810737891494412961662851443296116775791149383276269443492499169015189379507580329470506907783302452790961987984202496947620068235105525829490187206985206556481711146347302561531579422545381106458973048258096194108748045119443871800297870173904445581056297237497467057335370656678673835285103921074062280610616206897144237031075292393404696806288873152672597586406592912124826990307746047238984459801693497158704542692674220414322146874361368446812961161600119419995535758787907668919241093759079386376174960877713465168115145613880025247179930435103215991317658585747351609374962837434466855848607631649318629769886136961216408323971296033460776432094394601815909707398492940006676698426665337294222795802582991600513691745851135090545352893390994909490343759208681702862160858345415506742180444074292964940186176979985770938735841239253152175817228535121016689733523139763738487293006029719912229049659525825373819607553165706212309573397829558383316466961044502489805477721737849023526609440194630749205669822876139743415403448445987775837005564245567978117782073331686895761973892195616170154693322794352952010862691764486785035430862818363111294520481156672101536580285096269003666142434863776397372696888218476888734097452849370815065959415175472781917929839747847519523344164055873924427541516075094218888964489120532492661673047686309423186810955022051620326453470425669215310764813750667018464862353069255196671210651074635715993386853336733979718765028788793424592764815732183848276571364333947619317214721211096339253318143303806796700306601892318748425177910449878733991168187418793689946709449727538483313308544110273500894027731206079779908877747190780271990097019539322255563424709877588182368020123466919479868108980957604416668120094506999332614316938970852108151945539148699929931512502016825412364056929752892128597507146522403685054096003453514708944816971631764534062835523772988618822571693758848446439285994017309943587780118529243061843268303220771781048240858111915396581539835059329253866294950618604898217982352396847273892810565357879987866785543423668984283597669407032131599490089202452148669579346761479159584815879673934101273590565745532176035767465314481505368635105732097301025867364100404901356312648790619943164072907275438166919977764741938280069104989029324615627932286188465760349152285251855460857299037550306106133035939224077877277052567075791301565537417925297443325292070126568595532192195089189210535330742317266407862291363777478635304401867374564944566508374887809572411860461802774333654738654199371534372411488177712316052285367592128736411035394638257025238459840063649922944156590373470595694318087553439827111967548425207902128772936550108204577119915438599197537849301218407386598581230505863302012180683331871314033483090860270517842026934407500111151229774207373316324125717564873690316198441293345885911850286633892969494733945243047545543979186495271083773813131179096265997568840449156835208582807684371982938591626836712517936018718898233439824146376964238908981616323683213762419767841365953617058337509981235290447501207065994459510541456099832938053521629460781022202723567171810049517186912198867859823231147311470443002585208518425633779083915657469416708552512093207830384826591882279802185124740157645921092199344214923522592957685401995343846264807416626272214454274823894214520168748059488117941335078886262205797482258489344941765511865702801095893964325388436539731335672520874818635315093872310164800106204364497133547423170262724454461934893621611469713077806110540815549467537826126440431777080665410838093768928625474054455026887292578995759019579384006973036564257733313911384020430492920170771640699078206934226978697644391268853246904503041767326309240173394773004163232161735207382024953761077542626852505086380307253383509074433303347498273465296132000420704593718898112383578293320465083085308755736001861520170250555216518545220047096267701248788519300141517998705898863740149310123729073097563255507946428701373515968974362091068488156287016231203947891805303396815232997163032000372405462691508702652593276498244380058195563066858890777954926859117207525973337320582735502384778175097973539951533504476740950945293430532461111357756388589855555595068202425266594057625611465749681152377582798363784741169388645965369505531508886163426636734431020501682284118121122566297389551222671371972232007305017650927537855725746774603906525961078962259085075647226855852526239529395948253077415963591729650951382332180694793111376423781487682471975706147880722954976712987860370317453676226233889107357952691471452635133960316917822708884072343697758360034072556618333343397253327986256342051792638244268908622991748370801557071197892691960324965258135515219347667339597074428166656636409133282549227920473513508538368473230833830479837131009250037495078540739428672038614492646487076196014213311327731673693135213120891922042992536521745395443006273630653250728662080572865035452442122133817429780678106293082391411196456672326442467314648002279996286635504425054501057286477095269383348675217017121058577882481789524876624629758832855660520844345814177458649889029256069773454683623422169719041232357168547986969354952186914779308147136957426211332457062539955910663131392251620939318269704707480319018577149332291017979109115152881735344594600247427256475751471579812864386851387065687443660392432204702629950812603367143949237607846411120285269001099916800143823104706356582754664944581379785175405627027745297973623221991835537617040336100219210444646750713562186771677158450529093752791844683389300333178930218390248817232290115444898321441378978811770013644699092876769683301915761685276945093651437732012835843515411543164870860580806362685587834874404269041111337664031247887773430733701561829024216138983359664255906945358275907008534191714052960514235231910338153856755016252751355618762206239748245182921572385175785834404710679809268709597049152031093012181703660349451272802805361953195693231286618048326700443532246830484487202894127978931358262989931479988788443395118568288825056877019852897566284772772375249762576331549163622282453971257043970860783274212856343000564015857156919719291449863259658090723918858153373620244633015582376569455412452913524061440309543179973902698243603487795702177643394385480745166370695139010285554392782183935109559073869476661748307599564042920677250599926697967451214199781020061739811870874096528953601446774596621386965089885293518617829443531513413264674354384152865277274277156547912146964854354768913009838597916895605269337829545775902799318592474049790733709662694459463929709955706597325967209758442736960452087838011183694093813844138345092456196904611844546847192711476951308613642018385520933762427233309848941015956664380181310931542494578744795395172047263055713900076860434450590222469918119943127739869544411505704822631160076648001679884671870350182186007699330814878087427963150002717298705256827388096146245673595165932152193605391263247140280771520688098202918819117743041378771109874213575171254773480278604198861999846315885800334801719124537295437774577132410134087257350001863550926253369762537409188122883696922437773981580213800465790745335266304760189063775057062751330028403143633901361032834548925678218102816132956579236463674115012743457226316211368164684406390162454493563480972338322973081313382625949987652768737297378734088202510009995030307187588183125756760320801640517028655744904144713558162441010384581447858263930611957507057737335266698979068788156826813142404317288177654129895876676910112552189233638736169286686890294564425765338750830556915353389865752998324174046610561691902865880258858219953436309032060877555666237942522386509100822927901525012810534211905285057216251539661606528083902506531694832194303467463580164184190867605832865828130724269870707067763156530612546926312140471290910157597750870923145548815816319534677767343611347410687237027925372463117363688873805928043787735860104037147720630654233972815378880651611702323860728222250845056118632456778810738508605543766718394053931173548552154680814534185302467052193649661331615957435547744178904140441655386843182306789046282353397786099680106260195617729446007359692995219101094282853011981284310338020738401112571689995887451385350541700273896095068297152630831105259634541211287616992934182903390062465430586212653009215992764801489926382360103120013948575191856189165497039323211767672188726567850914563506612241416023350352803425766163331971888214550398483594643767284870991201415003171638716854996316141947444874883787139128526036013722399384525014797570936415725301417215686757751483100472458146202641334481084549664967513366044313583110775140899947123771850062462169535548271456264456186292046700194155679047482727064105246961047381009122953780520932398260414843895782570259671864387904248285060544093060668862555444971593842292006183706252105044594417899696164506043802623541947350585141183484869542442640318227025511943706491328623894523637911801795079147581279764159026594665265566373894047648535918161854430878936624548887124929469506653598262041890936240883109695786919590188987214494328506509476264577626289922961358831381039843415779894906315005022286768376728727705944795887086954468822914259438678796836765755769612105606322199907459048397549685783742404016415915312607202137091475724164884969449889914795872535841059081442069797061872997106328641551980352647801755302206404544099297258740371450278751167335231995675694741747534693143414107735036041423671987089767420112944796151001261713205295710050241167308511742546561309820520016394580869547376936622437173103026844433240048811623553839309564641143818764385912385300989870533908262625800002054251485563447487053068405848712248868908041914525407570337207533508202932332642288103731774321680466890885259594650528962955275690563596237674809111868520276838678647858721800377202572306933284857043431260916836238604325531534463503171521607328153914571904197029345864231159317779158687748176764533793969133061882974394428876846663836851221666069816497602183684044983820866384671494233298012772730349540799886929500578100312486976575495646179499452986921272204135495165969660849438789455752854651588393534655266283538484635858653113886839100368496221180711569719593785727697877961146362005975090892610506036430276441516572983871738272432573451595103146094664263146197127457302604204387691542182174314408762481903337386321375278324584622156619842220307526410490245781640660000246723118414236784525386749718384085390432436653708925203471468592875197060766675406679030086491280900492050799468311291952291640426148795944878280168548768010638511085907481734562772652560106349615859213617913408434479825823875669528840939151109798477483580608811262500791915656326105370149380977937077168319113631556413916558587581799852923029570972639211170562201025097089953118722417098098345996644575529869419314026334544929072399168718152501968231993300434249403115841695582711013302745331727702576310448323678406302388217953538178090974591846367223908459254207376129087478623339020909359897229770280092294993443981014399480982921292191312876975666905311154095703258581955642941817665934418146247271372396209197572042778320300941973512967822970767984774669502052401983681938706766861208243967397327707577974918660757057204189907453861998796191953733766675006786207166454428052389013119088959334744033013024663120081976304921952048267127037065510227652171941592593698760434885977842851393276762003275585321614637594692678708264165109009900317907007491192657838475343223886597413825994090201189660117469987642084823994189820218959677476951682353412615610808980933906508213918742296481181748001370884984360205797178727222895698610843078575283538645354545732726799372809511841518686590463214801750895550942123894581895985527364262733545610623591429892203217261391807403717514217822784886057008442912192447382101967060202724345400636487802298685101758980751789118481975629628924394292578907302853514070955002817945792731045803759650934025156495778049002435425442033609113430949754441809506434016802237279516851467907286980426597402325177898378180380412395843827358158521515727587946637091827839701108874666455364947392823877011521367896607148104752527804403251467379303952496982303073422296523785348209449995820027164065732134934666140761583251803671062338977628687226915990779709370446600783907900431986988608601461395193788291191289030366772102837583163524043713365507125278126000963663840659853598215155726791930055281806659867389681881576620525542799038318820957087712064397028029850032758759246523407199550454647883312666402088748457304076452976430974934373618802377550055602158454214448882584322310083756832748701154845129650785999209730115293931522121100901458701297778809106692134720257852023470581257043667056511069881375730333713422748325694044542465595594528781219363677817045117408525359102925333170228583853251068010794629307197755328078956417288996779622710162770681515318332205904115161298194805894037537822625170187217847051289545901422099774383922683402088898175197263536949988595202354050531169788623611665376668030732702726469190580696140752679047163557779669525318573226457952250124732029361997127665561132179890493445743551231509022735035233087312756441746456811050907664758494501830491576564596773027634062378005584529250201833625319474531095869953897306392331559015496685130018713883566571007140380490801971987682918856350224744073244008462713036359608867186994056426947000025866567890914237660532916117531461278825370450068622203758824913520509888277362582184730080460720969163513446822584382646970375377499843898454132854247495221626465211488873057695525472428703444770730497787445124505982700573966748615842563984711049046780846031281491926524165710530392225911905047380903646660527369862085965664339753524843534070763863091149506701324383457045694238925395631689768702897947189391170466863973479785112047585154771078016679750225917835362425846942029051714493689519159455866605545763404776984037128046055302700622856262766978548318550133582611564577858873799097767646679876364134358632035720777903801418996660637782859982512557025923390223381888363294344992416548465866355430017320116155456647057865535654277485857083812836094568369678072106487171060957057951751790326324487106625884931092522771474196771485046743748481329588741783840841659894958627155109278544490823651661434274139557032127622807984203597828093415779270959389203211572675878881613690542632656707289989238995032358356352418858484876921320639653389935477442081578861067957019285723275353081118920466659866021362770249691256573113777748558492883745218538954609723527753363489845989362528354265379188395029892577843323267210069593735013900895662640480542285497412573439080254942553867745677797320607219718572984650294192038455176008038389447735588541153632956967293792023160888397001993383443151359972909163183484618736730424728179328929463486170024458414892425007711339223660468621588683970283064569287234035988411254140552248371951876198714359944585242650075143704090122785057793328911823797464722448037212837475435983002860989539731002306400867573620271613092934745597205607344927941827317784153914330600216443029874110194351339713616490098736504332978526408796832635077539463367709256937089836029965346506422775146732343150210136455246770714707172887779930183888927838684625821936176266319111566551834226805331670865672732346545822744247684755594831629878410686975004323505963690799945243010806885667618578827061766726232869194146393325969083951341267424006558072864983746061361727565693877518284925019280179194599886942901897403311179021809977269296913889813791044844338210102346883808137004709069726650500815251052011753356510521410109004331724294877689242985016256286247210829663624857112369600332541842986100469176481426811699736035698811067675166005836986764952783228304888037474800668571703014389295838144947807788501883890874704120529127725310695879817472801289188209294630308362069621457875083872634921404902211919145449607972631696377728816074168020565808458008211666837935419933991459614980638122671536237076385630282311912820386268799776390391534398566594269920196050514151336020999208274966619865161921104146696565568366631400616583531153372151268369249621135807113172204723658043580481790043032749166799868952899703446233910527948750070278448428506162539968752960785633143294904872149788613860049514833607524310679329843830724793944732517361334071812486084313780284739623605533036156688957068751469614087974080118742885302725373064355053334256305964040948282388933488816741248328567673283603532845656457298062634320312672459423189937072015742266954679672686258704787201760669112421191374842850235371032461097233886058433225489942410027167968537771515244097851412271277919267182977372300727393433768354370147622611239987795279317433767540510898612667894073282118585889880641121665525870100734783623055383753999886355119193401834019339733669753269430713683837370847464030628318143037986760118364916234258164585088618204011025514420409523302582088451292934465258569463298398685828569689486224355382265226567454655824897452609113553176652466903155866511331234095153404183390555411058855853850244973231938722041845970750044312669589735897203412872687871974588775424908308259768384295184923283368660172905474162780409996808777271022173811752435513557436395927069493458851450054398207377584870738557248061662676860358077384472333454540937700614049368734626395335552004707718407211922652960290095297601637494447855411995866843859695011139656919704751092024588884752340905605350839382651563281154087081426790497016374342069243959221752022733193392111510064469206857545088591625755247130976253090724583981302519876814116062968803603932998494011716056137021109244439359723710092100405284683714100329636687241949616451516686375383694052627703742328090680172646518805817683766261455902959075835684264899411978853190140791641867090838392504742877680868751385905029715434053470675550765290788757480265852266340445787524879852328943675338343212119392354305302787241004473166945559360879004110353995563611742448677092839226533464516709883508126532667182376190690587836607062607854746301752416025641001272204012267938814639443784812287386206266817608895523038762888002845615680293962759031586704953966363795100638140335528283153918690222035371563538645697084448091472442090810214601750597385467309406147155234602184585463101718856840425383876752833230292754176714849749190682731776226097251801357536620715893582191976741811528763591498162427522957291732967381381437081467477286401037271755053810899783156747582795001455045282339824379873270555718419760413884582609288031689409171471550370421136903043373999187409522680984896844901743617231691010963983347540527033355675043340592161256308108978932431492425640529392407488034012668328959635074510825880873272685751996245090906861962080316384802980682931118754788168400666610414492068823850622685822212362922240790754859093042576174364710092253909850278762371093041177382665877287230524175663831031789820213077306534516745338173674578691706795895648577305966460941796727143229489955614072331792249843488514119211844219314605813439583574812295420286619506654061900040268654149115175087649534664213210285831967196399190907356055843991631091416997299701872645489128609031771289254124441272549425393490022030744742160052200452546943247287170849382875327527125320614172037678071407700249121008287210018953200250727895286752281394673783247802028152095335729592408140400631101866614380087405936675898228157871613126425559236063210446693282185845614086838345229341219770022260834886328420320180173968886772531471942435003690828456947069428546560323143309797496539557671680172250549472261675545126282283997776613968607937170234151998549420753837536439687441912613133688416248326330418113782847011546432708593180603569678352647339728342177179023741643184249279100748105837777511933204359709232487345867525639058640042615989552114458794877125657687642710655955276134358543185573461540108018632100466514931312418565598198445915245372385771552791051585310632274706677784270522312975733903769800299367887416857083291707317119488949391394270733157618175896891273162972499686060060218187248604678757055884030536529425151578761379371135303789395501617083330583426441274436824488640834713928042702061780914380277840440073940802896280018594457444627681280426241759379767349281310957722992293547005477049348381398845571349927105553986593324001420770018036988765899279557408767637108014721947392019295983951779522426702305368285581594403713993445043520150702938752461063987893131623264670824961162211559710736931105476517838656254372740077860391734250588291660941813579562097787887603138524165969332048601657593914546691855884973076460433935766089287884258993503251575590695917838086319222231200703485377616457738787845636463198057918955460965460114138547767330806221818697831384534695152625938408926101725524840659376377965087689422649846606564537413882663859305540232931404688154998124623170749960520056745083848922497447781747250066128147457075374930217084920090115966522668300178509906126994914606154698482576188253020844136086801565765386433862695958904394933668034805611316360988792236507639420458872394907167318226937610991491573487901256893956266271335350690460077789104426454891275385207371221891063133072038822153827010522438175358267233595981044555290491293531862463903880945975967131365219123781803493103446697607470541668274633038951291533000421095732236914030799241794796226481251892617560630566637361767216993072891115007237810396642671563832169931745391611974782418334720484858517987801052886542259790133514625968049772138357578217113240790657802435245238216453352157978088401280650010657828662937357001969644780960890692010436848624735861536295026741423416252135999347095094242824913028028293564818317375132689649139087328412490701898686133947897283302586842955356214780327781006268657940029953161726075714523465854588308405320847463115578588209971112660290522510609675619322465821956450298711822789388806096901841017756490258020901879130265314700829723517136387203665912710186870845709423030214608883391109818184582296362532515386337324460377727139570481577757801878138253499101059198765086477199753687413342825475864105177908011060381456884437159742407135577758589448642654525321287105979695019812389220142794587469112326881639057790640870753001119047879263318699247328190490572220099630488227028751877560812148567417948381428609360084642722006994519318336926923146246623306765130552521104008103534254166823046549598838278116111438565068930004062167997435753739711551807852018112782662466030858521684584037544568929485372540194290463260279185268450798503973496010098889524392883622889883489177151610119038068022914076692357524520327674027608333576040300432063540937909482970269473992354024938236504539483085088222737109702030887779930505361177580325730196492965352618031605339733212635029679521721861853400888116386040544857767433452405301412249134524230857285945629431514787818923211525861944405095493639939204529279769174433287166789494296689722688385534722801754969475362883167864182380177875912716940624906694843268998549767777669019720806138226311474817332230899382811954168559455354764813018756564691976816826746982587467857394269874981122398327846840954517537834716947998284751792595133640080391412917057434583787123507182717456238237772083931097651678530704662810266084995840930319754593144629613859149992226583861956232454389749529061838080523915341294949262581462432495367268239793177278467729171913353738661460292466280096854993458903361681239488571391018072221932469734836219996923201321091582201669936618563168506513571804668902779402945943995847178178048706743022572723320951080310843041549837711619519742971001138468202080069082572058687091960489972498186838960734926469662321436554550998999502660264863237843548030279029806655380887444139013103431979419113315618249091686855067486586537425318493417687141900128439771865571778078322927969719440449815099034905746975750997108352436801762993873095613231456126637919756735458646473466994545348380668880949856002734135421649547624830240662162544790728727674183744122874157420007153051413861727156779471559139074871946956394095807352227656677576446347710384591254974745349682090596301459427943385871033866462247316034165214695255707529061757589496091188276837885937166571402696184201349402919300846920930413034645429148599010315202675089224649906151450758963430779015627740601508734755980849920222104532823917697227596403363687819628766783167154766282396456496754217918949434496295959143918212763449576407708076120088127074499266090173835631474426944728197514269128068755422481172995981648984701458223031740124532586010006607183544851561214165509845247053482072833175520191019525012579419204574400150466173270011685610967328603154142294033466966720584567010238462054955339277862801449295575469650754157037457429139041348856035037923407580479218423654021259196065967142657922670528184501524397877752994044330064012691560029152681922586998666768074288266244429415888397644803278975372551797856023526159062351199758002481688927926024802276975936207659076042553279183797909971646325443345781098614750351553956512782900124973420671785925188491049724104689617557286869442756312462492813209301029753014325357502276720115436463234397168475382048054250379073230477397601879564866012750381047434323053435474530343023901985137502040143314295312613312148668481188430967027222357543367673380007326966067879668992382262717115073615623891961804901049625676365836000131488846446122151935663053166967710054738596092816821928331755762303961234744499634917445290742933572405729931211724949601335960580691048863425660821926298152356290608859695537606774413182347577404451407593067415232739510197556516571687299161147423903742260403199186158574011096141304771023685927114859100542744143440058697787224724254658401781414411040991876710868613870475442569921481060479516965778159936293966062599517606135962782700800241009468575733108043686605400427959251798142072713834930227145540381639585859033915185564642059188616798994502224492723444513367542496538467505026717421568654880425782056135081173564294171708913168148843872549451249644883689681788128300573105307220201971333210835823503530115345985557409507554761191940313005303806369823721808482521335060666215019589417888132459750119840313431519283743335420816747852471969135824541978356901670819352928488669993121791184368638967367690507302748268095734538064981667983710682352860837821063359523591655553770654300622268451559920316854981667878765607982845508672258422881277019670064764851014330795186005564216295666761170891636811768898646967287304001866260564267165359604674842042678197306445351828854926508765381837800374150879613131649152545214803430399970832995793749985264318788654925693585343163403430778897863694354536639910768510302990307802303635262409720048955111839752169186498731821510279807916087001742283920342574380732116658804344794165778223757540301120578193574497548769891012331976346737338547546804373431906469080939125173970508358229982842563084085463603536730883678377043789407224647724957463691542493553391268674784139750332047142090526969346262455175674119981667600810114164626117548920322749546440447857064664026301533066799649630537467911872463134469936428016145812324852431830834365112367195228723251653832508206962764105817343330673679210585013883445993113965653680506585965046447944860350832053588427225568418595049876559378942462362468037110812519192584502685488639297218784348458643496982547770132379821186116837793675417431677594952663282584152490772133620395351967483295476949678502991359790521018600881315307394128127461777112122416808910399875132241073576606676692570594184854815526719715089436626013422666315630552572763640976305047454653782062480558185342929368507332187483425341331093020909915811824207127000741790916603836020207615797728878765815873514072523370009665288565514166330374037560959486954816621513384412687540399517354778254330647721472188643736031635956459468992956396591143137708969710356704657251230488514737442705469429503818979671475788978500830225208871692217385277026740259535689471993634420503247124410777103355348326074265218092745918717044682103799348207559705278432206727498609175374837092552988993665316908047302062073231285562798412222487595798515567262279587858369125004509558285435743688627427293402356106044577156131029666646757766310734023443063706201074910330214017984197825822404042760991817672002454788841713521751194455692983921742698452235948240024833047856419338100538456967520967919329767254007838492718307666011433407775859925332437943721729184084706161855723863680857855242394562488811765958584689009350787695886890878498145193970646336599787757030707930907812285516873377673809264937792374128672890805168760011259616884326913544309584701233636938294996914595313483181060268215223540551997700961289832686493375853295176926917864216799531050025216009180062794158841453505844131099948037346908152471856134266083370990013377489712889250761843115472322126352268555964475637671476435724687891699445056195007539210875420432546023899842762345617870217182392823394189658108049886710374103916086603124765910535084222317338292996097563399446836795653633602061885468506396633674769505525220653340597031248306298642396903848512633552176569026456616883221391062950352390923964915780999744100052115616649653185534681152773191960967171082205966544632935379458549593502564574950376161806622228862367942663141526006812012893712753006611763488420117720429513430366761121524211986891287420495972403153865071009913353400641469274351449207614266387620871812210692241139191459834743049160120882005940536394445152062462483114883348614412228394683697471567923303393277204293414797042909772838673068426073776675458581655971282546742126902932897456722432110232873355363871817680579238424946820966014002236730121993834708899803895939915194872301606372609539260667592999551992923637134577666269410453380887791534628859952800199828976704975709300610697829851385542659308378549116509611592702218554702533709725328095249444911581806366821810170947566040310153295045347204184007476111331450638036306984989174573886148883496079039717028205673848125421312089881396438143515758104040796342872375434360549805390666765408763656886265572920208522670281521146959676266581903796109601603260957233956233662764445510621507267206638826785762543727438975325044079723505478434280960335027224357882626522983159710891689592308528895982338624893229619262013607749358942506598927482557908689061839000663615252658381560534820593274736134250290689320688351392199261928821406142241677295455429967728113836645886668947477028224369795105643956415511555570104744807214972948304977174631507423224705008402077534538645337342626143701125523601535576567180404996166371696353877288228553055371542119737629755477166974005565558035714898065417729916721862918619303119739525063378346490670495266585889294129362176416228876749037837198431862959821388496785742268537644930006430110484716896453755948879618862170170338231756103449145484450703469275918814982834178787725162825875056170446170619020510825314672135862765612581324765169818731932207471903570149708414849698499430992791725507482502114039649830096299796325322824273561948776511803972169703924755993294029384289261208045099011026665083603528053830062761467658473249027181848401761862081845854077196120746742269368438717747569587324068528014592890584789863514268908754467754568095311580434563506838151699863912271036100350355556391360707983205410848549028834601571350148367804902420748754037212393215219096742139345788812876426852310189335353632118779678046485812742638228656258701367405590519218658624387184296999887062799795557257303613731414302045619725126563216187806029450507338005758799148796329579677341269835984192157988713502757969180672682971303313004440867606437571861923956027510531718733514251075614579917282156450029998905358244056311860251436613104748880154832978000619160543145751158024937553167101199825881988116084064333329723682707137630462434794697942597423895107178504676708922358848195479176558200808020221008189461096393423731473599025441702753625181312334583666977341142570815155825985140750009348719064107332526102735863392755912059256107695481334696645789155979348624979019080044177348825217386305479799660663965481927200277357111609026269266244909810739189177515425179883920667320004817476021692579475465054156359293178265053665063130168995846104029475680386283184024724243787963520630090862668043730882389929410269234928144266703417732497918283767005802157200826222201297977520415761302039581423596515032263624397014577995355177888342266100416007037570720620659265686705916962108954516006679430809366401980003860024024093619232159879334668394337405891127829910772773513962559990396418741305232826161424670067865805779012096714316642229414883609151079074249703166186624595447279183780399267564020767974653747062214952260906563329852776262717925195664072672920671625556931843262036385318979081148263737427958598422155531586956921404756266180532306522420223769146153473980656334433019802630246389311589579595606195481935152506441261578759114504025684076338908592809248549752634909996146334052877096563962746213775045182602014665801531427688175853120436604009229510640291912597655500214942634801481993458009182577800118643821568871935409217844234234236514811799192528996153766711116196840643273613556612251515240451689047520420870640682882279227372001170813263301813824334400363913412805256094129664978830567119983465167821609090352586256176162048931571058041851698085402455916367009766026010957306452694967539048706477493328670644202192863081176017584259191666370760191031402114465692019335074415479045587002710492922776402754018974123137429216009839628939327750317718514392858252004942082450077478329048530893774116637479888331534070301373448088273374339819129284762373528425604374949242483445717548721660156450681932688133355444614683403419513054671285249593900572356326686386513430495791219209974077771516355706359251022561234735093309924854010068948485655332751643779951944006849728035354349490971698770681243050908758366124115588321294257069873698213026734066758016784461805572331728623911793971892961355078759188933015490019592487111731065487721548044345681570788633763197205141413859099178445881509563389122124994967230194439721582829223874320912875126630421382430809493334807227354397261963007372809432188836944625118960527327792428869537792417275584268075905186329999678193967958971522785269172839934011473544861122141697140382473878426457102939564777590018693428606627201109527489510603860625147646357520449565159350321142463205570615456267707681558954606147836046171592937937113591781993010298144710921075682000583782917962950586696771465694796056513337488016945865757748120025020345212259391835196010181076301892012224536217418744095234934754216766525930227530362717723780027355625731174680836134729298787200225119466477099948833481327242808903141075784277906896996862027617965898156805074591742399379978690512022232423121125991976990374828786848361197601557695461629184532469075376313180717073505290655840073662569315241921334884729727004995811889095065543857901207694809375174686403119503039445708870605405551611406668715498330273271019360911619646953078529263338960179518716113351763737580310466493287263694090421394004729570322648540342470082131676504430123144010876128863441244373024718801189540632207334288689541210284101269430939848479860293191454289496311617215241385379002687750802177479386428196228777363634635770395906767910605918607410449694307193458788788999403239285782851322674698148108227753427750999850002255952882561351200294460456370220219060154882611771712819979542990191810362149522910295146361592279520981616001180053190509226173919271485555660210326403145623443297124151942054256666718163372339123342276891383839246777926028808472853043753271802084659515319324457910927591666133707741819819154751870629271833051840532032955010160199381767202977492005485633381840051207962680380071227087033803764501386536360225209421596099203942013525817351881717147580349108242809716424400177533643215014313039073707609445516489226280160919847251894887116164581999820323470208990222589058473482358696619317033687348197264619219530473648654953833154547151355847272438733407568184560522470748708298852252731725500500895620108186618892576771128187435517700509361161461085072299176226281791366904520974088623739961924795482098898119469480332352810922644656332641350884061974177471386977954702343147406819386298450295733253287811263341781243343920187037547747042380863388056324088849554968214413884280646342659136433891811495060348190191839332995227995717540563691064008893423488137207919879926552763406305416042181219245796309960262093053709393078366572712545250062062348796942349243806624601338072508517027894309989770962448868560804006835352979659689305664061838269496332681011130225305920530516690601117033174069432174508813471084984591378108448412814962080455037436210434740800057649431246795757639218343792564830078198635679118798617869582539496036747157906431796683996931422662764013937246173231292786226211261529475218563325503501446154301666339873088073654308790938539764427661262456981482803007124933166762826178973893925883784116952421804170380160687019137466985423268708157946998142706579187288385694517244599532526398559453059725347721512158942949321398946042469983871201007354962623320755168455009404407007638668717578244647046020658135027490787429148883256352211827899867570515201593363538969074571761941309793210139632700190268427618272870358837678095645994416522191555407037933920905274567088810673869147870527079160247262409404247843504077536520760806195521920931130609581650243890366465008895628801097727887823722458971519841197921741122258116766626071983609586567174866104286595160417326344926060833675147040994564569977791316638460927161249522594099719750225568053059516711764486867028128832462921099385687519348123254225827844220947316655111439674664481215190818524445769626633062272720017227903734247087550376067334298046378665184849974309807631663384072877249607850747434495831719453916559536586526888690393873772254797567153611006413189948860639187908955982747337717115900376834278251750452424765999105873195641291688805079023993500025205855788107718283165679687094733406063454951879305002969684407694735813739730841869356782472863158647352519698656108180193510731293586955125441620084735964120455230666347152890204744269709792217997196841156618474389292829066744271897568689020374761477453394267118718835928415900800162081940698068975119851219244218728539746868624975653896973006046307258207590255698766898115137479177223096043016924957225561741598190564049966410307418955338003833653041557387766307706313845123857267936834593723900835840375747545637029574330518656827060407602082988731838025709238662921566878855641389328888854419307089928618843510132818705075494201638452749704346240449462941070535025601161734054961520945886843265710523495597648632304623734401150270862308483688367837165982200059964655057377720957113866642566613758088369670153539808996578408271411156915792634225427037067675049061638927708835248453820203743493741055866970857327550478365205134004816212547077874113549038839210719595884733254182526160314233174904576362097748673558658045067301294511741579255370771292495880410866888237769728982627085271682005040062905745937859418546681532105930996623276503846701391762093097176371229604681458088509817432923894875303973989416833331047062626152432857790670198363894266621825112339815044089223283224916063348701840848445128140993243412927021461527996663605487059175518071814763998409323220265213457929568762867128375543074519060981521691739357375615674395445366221487722880869903037170682401090140606746525893505484540397365606904235329433642924617593065695431822625322465818472846473305799120293124159560511337397070457973445920713569425370447889340692768213914848479320512493147733245936416133613653732583332999294167920710471823496345645463347578568099848228757330923265684851027232562638621296322987064029638056217725826689566141027419414093246572792143591710167327980189989846878760119565324352341233082402020410547355718562040927836870131785024471479998169692457703617483663152151782171122625679437452527546857627332586806150782071871430598175582986572338703106781724522417549502990501098562228221914036970673057142925142090435434665588508662349441522964325074232322418615646647957765792851408218101029475757144028209057058551640455279189645153865997083935817952567813476597207875292437972516421035746435039393409965169051242675058374840315476441917067807617380139987111942790653120093997044370267033341518547289404088498805747634016408961723474901164753224786841314848543654155744531457757286853637401355872796753004640794627290250738722800847863513639590742409925393881749058388220352644095637764077628481173721679181989416847260544920078730303528893491325520229861230974058119522819643904465312134427872778071635759081451778920920596899148468643979762707715067297973087385674587676848638883105955912659576120077495471965964033407706123790799105485579218626276254984795555810642401255393963292878885060801663792443609986992185103949334614218760173162220139560482247330546505440219568813132871521216654904432237206750506387691874734199017060056783102074340064829441844009100832037375550164950125992673935166491598796735513312369051414909447399569188971538145700045965438078899633631428458178824233134251766077856370133058185958122767729499646287982213263496919267054208826791666389857480937127172734135891597995201710910922471063138185253202974932960580705101628861826618110110855091436555623044117196504009879151430974365377568269207296691451895606339628110347779225381068957197023515423911269524315590504651193181118626553211850964389392578220612118646943907069174236036617318533398534280228144345398859731611827584423967177277275192221344003337758928048306185010163331409956415343327761784407221415365228123200995221094067304412023295848335872334188335278272990224691023355900763011296523182023449054556756297103634115166229061035215630811484602276823657010648576772896009561422000892583401759684347350183121874779159708446358117321628873305196987038917182844289598551509160812320167039215891888314869278808950407761149277406392640940125580653009619631852294449528229985374913573261264932512665026902036161176380113563543152208597218488376482058037283161402915546834442437437514921811440226718628541270304113138579163040228906355712710779680165948848336717152447287171273399083635615038319850363305056985514876138197330216775158895283239260918171305457797835785585138884474200570272179091549993885508067189398594346974683268939173076551498252487036013911631142853849773733670278418380705366194246086840117679050319856646945316683300700569465380828549756399104699302472801425896012128740373738566626518863369768253517363498045312735394598919533925053538704034833976966563734805540731907351327993845888694318735790169828302599500513169321612556433570787443226489210599554796449182688332778020815495322859618515906986711549588070170410179436907731425648146020496304887438045325056459186738570273204210355948362677687389527574961374487442163521436263650142359820696024363169719794070790590041438098367218391377128648537716192442604566174355282037589387703550010814410198036838799850297138688599084486302926748226112717600834709578650148467584516978350857272847884158524122194232055815768586076369929069585754412391220511157296866448156059655261190700100012387026758720778605343151017389605963290932521554222765376236053265880871414543077279432446557185068290462753048665883600461801645231304926531807063660004746668623655518933565075924382599389999398197191490225555714941830769016591918517147786366618287082061924495756661637826810358038891431842790843134692266511714188003168774408667924377815393903459071729221929181370547028966258825456891411275476283190116593001790764134067715888900347233296026895988989462157841231000560929005207687651427974868784327536076571876767254307095224847683305975101110918771712301051089209103211575488647439591651179975915256966593909937371512762352456332266343444775455115557292027890285106748767655821096867232620345009766821368069639714286102863570431778248526542657445312577841199783698816381967997585246666181838241250270581918316339317709091113245705939168647720330502970940062546576960125455815437334943262051989124877696248526679868488233378583357899360891219436536046944187350742542767469583179381180698863026275473234624556414378014571828747893900006445601681842572108460946044791424960458500472258954559932582489643181498753228307600485553253820805452822492827863934846259233941965697644050617901806937867893067350146247341762003666632559742575736032309159479938075320129251112545153937886428420798883125032507600036092451683935850835483300133851651598219947836615993098175377833837223175945723001083572434358042345994601312069973865993167309350827708924660082365351449309060052818074586073625617521693024484852250417545411997316427949836051923559687486225596864566952780683747590800940502707841065994424912300782319074504518209038301238032664184495513295173881177102401918339633795537649305911132302526581914230383330208047777752063348762849926299226917388567673711995764159471051991808468548230239641854186441809675149392430442148520107913839265355763584428168776195267033273293423317056070359553722566404446600153125514030669990350316365208914359828975220140716977506939448179172374357405157154853427893360322700838908636645228719185582629137706611069301387171838418985719589065839442849036732896889589044524032789309585037016014374387770482846407678124442855025207628588213888117652433036267183307379724228965292955079852601260403214551131257610885163663171291795049274078452895039457288871655924120665156063500394745413728498027397725578770048187935278526633550488606036069214805472530552487157442015353832217246427674002120050267734640711357366462351278697954763873649918299485348002998908067320998471752057084284154860379255570055820322320977319478912554945600764271203476696030968854178731770847014518044258353224305189408482606427164600972861917804093502244852496347278432840002429659532395844751868076550548432063878670248017865308603573851520309949055993742001107676394462695954188146459992815684548982748704828563713229466445882083413504921605039613266817735830053327660007758147642537543009007315807520525891143724045907087682744278650014442846743102185546324098308223197322305885810091177145971030805777994284770050377998386207242624849908416385919667246495049232100504731661462548423147707235481673121695599917555927622908773532752953404776898232165376550948306838542459181320977666364421430037460421185827679676555294001409218882627351428746932762025132270501580637314471125694946971633194516753680698547284554271299790527949920237569318556394808369980024345602589064669193256231975632796006264301038672440016297652022590397348435444741970715920328089678451996461087204475918544062464146957574124008367554713889793029188487566845971585043116862537231011726049653396457483636707583571874801408339152693697604429445960464012477540752663427822231827821406771435969422135079637952162806736772141521969443659327521421456588374786181886497037098561854709108332799055568027782300671057637030037774487283346954981652586562106564409250174234824998811531595750262463735008464099713020254943743886711078856847173912455307265434520824094915795399545601729256332413296805953562670203094812917211880066650544485673470171118283522231910120905814683087387873068820379726324843998220172700339767051794366516562746477649001018208852748710617545997093395498544526155491485651930740126871449066033485657434398321361815485575524503324793976433407076230397209715154343843067510559653696248568476556292969169326861067420825202353450119632769995554523253727047376155386707698506320975513518655703495799235500898121169726048374973449630668392374926710103045839251871418328873344567248671193204447280241978638722819905380793083802155114234838462783253959520300783384267605869830254202164500060736648065801414082944108279782112932447129523031178588516045821221356958071153157487967876235066519446416110173235827599602206214147244986884482413697135265952541383735827068713227906085160563186392742457179640008435650150334245349079598388527875956391475207924233146657281686470280978545117394996438532841277736006490629453533996958278780892332603691039510752026668431670601484842655200778143753619425198138332449887687552507600763410434518211338331905888084446424145618238478081210373383977731690042988565886239655536717249136223212536172132672314069524507857700051446414908306139623573507850524406845422920376064332293821033556376379476166012442517600700680467679356435755536609130913305351701276122503415216377934214925186642526879988202121901629091528595343698514585558161045943731553779107498620893432997651251360393613879985702301529722589979562672125787554675570774899320992802254776453885499086264634000208443269350321825134009121718804469593020212652647236102001136350678461849674370401166655534166178827720725114791872431319757665852827782678517121934507768443611270867369528403037879301006436704324281625349094179694250388058344020522269206486183891854936227851034928210124692688847564921537364609215024399416198787592034151899458818732332631953304169783732425655143683759943511336803826071591917438000169250394128558962318039801377274004956196009745961833430267513971722354870233297984981047548946202534639733997427165151523059680574959888742027083758724898172668345075282093130327977327417733961544988575042351649294033604140953208377553091381222020313431205656051510291518485227479796023470805251787371965220115972810331974043816296224028718416656269609618983317435622222941686750653082127793052503763882844568911698204314474790440042184454971131787986090338124193173287159576026524515709556729903854746815147686493249957652428242894191150981489904035114220177064403842736562319427474350233254993860143437659162424269251566480740820648996770731996548152371640518352450228004024215393706658359278913220451322024914576581493440281669819652374593641913422142061271832924719916447054983395353820320160162802525803434724302858753774185374018807117286449481915916747548671157146280676301404364456477115310312761260242990012815377910249973214071240534971592692893201316345428006347872125401866320785046711160229061493686432936036640337850969045306569679820916097139710531326873111499506610107044664974985431498869324562716424359920319990336711190021700901759941488660808775812583945796268408319511870367964167850633632561768082802560339534668745497383586298087202593032841156251375542721029585506530310651064636080365878271443892789836462637572954191754267622685786285543480523530523273541724907737436974850115596082391907492608295787851862060267122427977992479462019332995525004637856379471915227560279078303956620368197506836844891911529594315505666031874715546722198143098769933521416204584317638317390889904097506675830114952609386154335132278211875723894416164245773991159181801216648778430660063597741850752946379490697557393879401896517195456584835288781508525947912402790229258523532180959598668355962326383540952484565547486868880897270437879811846047879715757366334879754422453143994872059910474944295641063748770432958733639969693451793281427652088458865018060424760385364823272548976529876062822510714851727970466048058600541592380703764667247924143963125589243042890233265099506410157048057169915514747035959270263222654976967225444298630917694936283802443174034798235380032190054319795363055781597412004536581526833822822308952793905874532459326243651357404496947729572304459217869110440226957115063594874717846094065244953531717294259277032710436415236077426114791754671089758858237874248720195057245187802568615020448759052541216363631846115880560405143222276813510756188989506280866337462691788682120673079355430050091608228345689889937558487904184511269901827468727387412908334950549979168019953589126083278517530354026826755487506866869245433330580519912928996047525913993039848790842970600970497595565842937187921164031720661212601222479118964830018632654315793000735020901887649869642337787535454484645735302882864215199937275984573546301183021085480804032765017769641322461661071641399576888489599097024971575660778175384055905605891787979292376273287403989472882294181974982247459530839013212681005491635447247069889925894578614717930504527999829762861239721942746649139793598040893954541261940247677462670252934411396407354598541609397695266062825437898051764354126601111510314769175842649182645596586324377093030865567888176766298823494644879777709521955734375912152695903654460540249268933465077058912270678948547372122414360645845209021898484053257628218821452217418895637457357125720909955593730849037615439514672394825859702343510045529128111792319806458152682589031415171812928777025563927702018747847218063469462789270942955648827739946521786284505956394838326360158198243399010073597018780044375893263867018498645276653525233191763657224217198746679094824281178645470227069987621706329762092562965875585001708823104098912944102648797124634358325209704450849161194344476829384344718116712525207218732144222509803514283946718517608933491580645493411001641454823254628047248021153814823078926737385729888232604489402880413994226086502531542441016624211220608637065715847234832446977453160805692019645552036969302488056855303822185836365470488714294883622807315965622184128859556900571659343327949524808644226836127730232834599022946135234826268439710048694061720675915702663333019216217154850716913810578717981622060021943678814335004174080428257250105088381286473773284564963387396892733900459442289009461526141018065041621617364522495185420013948045453354247333173817643155259141201578005394952080555231766532456113385244284027113703541918773454067911887875389485222179305524666116892953800920518439170678335021085003299501138916059611582150502688940650634155153142200699114445138618335837662457478508035640410087619008846145241915973218819234585461064776295795424613249221834740765960995262018458951682879908846431708758998168136331353906908236870340183453627658768975749073149444607788490052913576603477689496666903641902653651099241386568340970363529166026118514620467234808573716565116413892580702771328468772779707579340783161107382009350112178290445917201015569983912479592333817830363654260965703286181122869691793023095299773396379216823449797875389005185531973189641057951240600847246660663663537916467634158719535307361843231788733379885598425599355665479237663354579706643567361504789230795023660611826278059858995351022635400095300618164187613901130110605937392384746143947636263582329404016679639147419486505304056276742125389078813553300314707351307647502030152138773885510076607042608623850491884137279812430895168237916758238254669256989263881277521909981038172781551412964931724456666730514914931744984947404984967969289866514814527338547697314611787003066844362883898166910420403818914783627521885126925550497016023536768059157812989651437066223322124733257457774739699192953376502588531068681115448454110690311181410987839338685139226502605289183580145572123773347685426446915476371256133098716300475874425295217375542831644939589495727454328950735323463393365037924003189271592494397037221668577181190841486306067541795810237463044600577053329441992705365702862191842535659232077645700924558300714986649907805877017859333380634278703568169218642965594683943339630733252504527423320904464545956291012129894464005821520546002236782944975313542500899480219364224198977276790808978732335365356826850426602170899286728812210976565840292950195976386441440677892842821907233746946811513496301009442191496410966377059364076929104140137156198043002160420187912334152653369734511256444662767171513521308162545524089373161343142193391582849621783538369538285995221797137424749803950353291083190435306608650984347103901757089895225567140355421295478405147381539939972961137825841674268561472867431796041889967957183477159965449425895260440361455507228482863493943197318132471901631925478413370154437025780164110306897693864270899860393232558686458339470214514228142569790496173559959489372492139157180947273249095299124919665172760510034438559995704879196779170143739574059067027614967357845509889606471403586143432488923359400727726665477440220997549250691162822406960612133260775866178640152341584509828996552833298854898856593570054377947761026914817041663048787586074315773882093969026720119118741198229666094016766305043469016375419343887984978861445754272456024198381992564491307019872445506668264694217756213479977315138277700966362013329677932966430815442818801389387025407135129323012559095246297878862621466419428482394903786818709926450186839546654731019502262112896015381886833913856548944745104276500774980678660411261889436990845756507883317539235183150476466415657349588510949196371923834072197795337498640671437226915366505525190564145101417006965153371515222598419668885630311585351593624006861785803078294753454003195931795874229589281852941825783048145804547667974300666079166942262107010099790827245636981857339629388315098402078005017393977550487054319247757692982441500241667636262808721089401039954391611679224673501948833211880569093260414974923501131993699129988543645918992034050180344679493711727077070370369633193796096607493453797433194113935671745501907301800854131242763434702232023350259675272673832204344215351074319615744631394040395541078075153790261838737374790464963308663493238986469575235416251820989951779001547732236354676081302211565939649656247891189781185072864900614068179498396885018941592041405145955755925501556749716073879150539522592075636771566575806065801324757801609469442853721714019452765842497726313308398580060368416543056546964538758337505090705569151768805512164485887667449263889895203878682617953908764518059524740487281886969131012804085487400310980161356611110791192208160894745361164862418931648739818471612964903737379874144261720265518237596964360431938098217035266468106449797131664279034936690420402807692692413747664749004919393059377176816927346160575295694898892008633093757634381200955258819275793065388632874522682534416653108665200242410078789242497075995216721337455932103391797964025834346506890556523853379983801594479089259960630680300479586554258626770374342615250368040142004057102428372321252847887353863588381528747609935935289655150886895461475152781100860501712000527250323455140643691770354671163832063427772522324630640108119989072515250344945447749770586399109630965004898868239266820898857762904821046851179279095564916047932902577821261336792828237647485969727970802680021135374131899186901002565273923142100226806275451303583216169519962078803801971755000553922013230437270460658932255008134423049430766216781258268911307974535028950153123032102533936154386453294288515424773141874586914263815016066648446422769977243604974584011355935061137650455329475925721207519758647496162715836176048191930762341934733524337838413468373781085664852470459419575586471815210022520768609730972768294675479988298021279475376102996377038118547860591907404271869316523596610725005916076810894860862794024790763977274197291799352905897091082121869448419508016342176302560998954840119465190905975316378962806328253195753339946809900050417214433148476000461639722512978763905922241893611452678384328860874026365944896557644210717351339549625015179479562289005823147048242816756856747307684776497199075574563139528631212315234183112202812006625879260773844850701782346840284114912985661263853012682992329633520525643357573604245752146059358653775853379273603758855702285198284717180035712789709543588823781250293658816377895626275635321689701568876790817490118456365145829056235928871412499594527700006660235156923527536056366254638688320266339707665535291258458161383462435499800877744608377336742112537613734252519022305810515728250771686303643992874045497079511919579858307187259510090906422933310505517714637554920102256783699104322338634241842926799495214891585158526330518700062990809911184493903515402422665445898514564499388221828755549910160463638977426236645328438404504563178130303033688372766913988664567865029218451234239791618536474405051089662229335206398947384926257350382444883647076741559133282278881940330419552343954586642639345499745520224558475928174200903771960245896095537518292530636791746784020771029238733212275599289504058540529913336807003270530747937414285501563121071067076865060927562322662602944703545199393029951955316487207843693294986171549648384999827635361155009985968671950981606117798987302577648266544174968261726208143173755953299279218899568878409620099845413626034570869541771683552490270963482397716452833401434117989480240719530007299910337437630965976073793196374409992851633875983833784435339686972837476531072634522884478254582866353796838885080082241575693804028751006363889232807207507162681413571401372450204192020785518042110596929224118662656665957398064279962727194630772702905974008873013185208425375164516451973896977010904864924090191898598696612216046781793887450517867269039735802883831936817820285981765210900154770831880995181377709823883830668022373004600558335517678170395585185172219321706859511209956013634928266283152771094197975262180645856587188946633154215120623921956600516497208083604613321530490625566934140696655769125480562971643287910254010582973209016411950462437216523190879740612895184427241893109248782014449660736978435132676892960801392769989945634554524974862213108712928223469108752624589998548397402140574394739777520910680301529013783548547121085186312262076831016899186860010353725715543518957855435238291022688760754493125224295010827342888835917206446301458866771279570838761845302021658078819375386134985382593934094882058119143767651443277658039402284635532339025272607081862117351656685021465297993862937246770830645154764337667520738729920462322966453048873482417656007398911420629470457187064033361429564158110556767731396525658370548707797660147245389086288832638370636930686694612640044528306339252539478967447777181241307411739457130127232378956361948703097701661945926791302673631403419644941848428670633358243129681076956240948189816438777666014639002961341272768133344698825895850696867324860984066764096765190969780837250618212561601947884036303734919024379473354787530737500034906859017791657380970943724050691334029695027334248243716179260021549007981460291730713124210080697983292103983660029196635842353036510408413728782321530910427222853230356141668336369289550020050759154542561747362754744260568616334410577906165716216489663016664026747593706824251463022578153813403386679344525411736638438666501915817488225685877569265609008643782099198096738567473335753299632979725828802573822697864825620912079927242649078874905656956594757177505882350108948792679538232140335359206549368162766642238462732259754729619918981005627999234802482788571704562214604707895800686601265942512606129669005397379729169542332858604259331555392129131726478949310607280349718449043491926905956262060338411022020081626509962087060223975890194162154319778775718644868076837066144422610872874682097701838015419791206560647767541742507909134302964479924448103583839314983363827373552366945449067610715745201547787811676237015518566746871706023824721936113241973909432772031166607482338888414470926633440363683522788247034204938445783908515692214366221095185601790145508112034705406442248070753601703085202497487174103063670630421878816970015686862539314812174256400779426566556189724366945742666600192844485274218151582655046004363890589529186141059310448332276602745781283514843865523423116056861792688102219638475111113409379445507218552261869231523697601086950165516305485521351416082392672771736240788362558934064336086552886353516408295025097940638047502825463042568772274491259890937397472613923585067410052672195739854068654456401096875970895625136919774290947586502447963938664097068879381985645957234477687026204962697814459487208999751630574190583483477362033953137938596393599147490916913519053882762186021136631604930023188387926721566956234457210635199799421021812071168915615466835623118797365353841132823907695433789638860497305681923090094759477548631978289867364406563789261362350128029635481368041623197426196303356280462542347453682396151869759385727385071719138403768994435288208929852081987110812954748180586043377209541206083362144324758859812597171502308501029645062329777171610824057870353955354937488315678552754200371599121304046183431448676964539128511176007507738787298021083315124829849773641476165359142469168115958669174119934239753577966638437520946358505506861280234880362803054692815134154211801947268154326316390485642253290453160722549756188652261973133824719999158973178087605991670052717720018662826189287369469138880739098209735134564021282358761632116002680453197817864086615472067063480506356860898785085051563979147573703912873905782199280753262665525113063230277339958711123783797864872413235840042952596322179153995977535328514755400866481654812159061997865725273987977732527624562713057694344140765766850353361652182275302371213429033779433780379592343600666226704646116820136285557785401292712820992580578664231947523760863151967110159246363979319884973693103553961471605317391812635995882059021821864065044218003570624041343699133315188624336548971531551946777794579228004767494602304794952560271450750714718287053793163541705354444704107271104146981682455274836559125904657853099147370571175716423934906282371268356853682994271478194848708517239899914591570160110053968535165705088740160126008142287679570465251541434983875791273971358533958270982463506562915389227115991352332904163979110723498450099474725989018452210687559603817554704713527994220521605806349015893090864584583829986854209556940830290358948842285196381710079620506930774417426638461558274847202043422763163515215800277198688211390777263701040406568038401873081937776399461159710105961275938968263691122091668551775680649629245816007397307203512748144014561303830166727491564171303952870271783793800636215282115284049356940471675601535223845710946051108987533972241829263637693417410682775097923802203634752151315310825233778548341241494678609952330902255298252221101699685887003547427594343396108467834936111754038652989998479388154649367262852830667934722937400600610281993249839626137048022518019490539540330306121846718966705101882564797440405664173233206844313251102477144011476481489735460971362637938426650706248178408814972787535844944853962148437746708672022560421294110828549727983178611553965793300608591133596194707182680776595143779512533870355893715731445787036865145932921111200077610168027525450941886060592559865730660770173248088165389832593241275679179483174321785946877752426190408298392097410328741013419125851645884103767497122961593694404430035680265703866574322508486998832641686349899760043940967509215715647912250497446431506989919298492738538540856604173776977234690104597426988108288720816864482134278776826256366543351033226624643933612929412873920648626733517102814309715857740256206020495524335483460241260600227572310115769441706767671505758553734434514396581823177622354550369576958366727970479664996574218009816358369272509112783869931299009869465812847343147377050303610249552561881569668061850295010206983126648300123306274289431684356551175068498251692018629492916796887157368346811518312790349209379544779781704457690747085839530960266751241677883404421537221335288611641359693846603461105173929465422133838757129573211524930401622773032754888953681751806394678704448655213533997004199195142282351667063916209701108190342691970966919917066960961576298274607846416337636790950473000300138530263640139562050989181391133301244648532101721564914822234956706235136655522566365196110230246911379617624491934794012575789413211006122111950759151808695587597204049296499458444329741639673877157500945296815691587270829398277928447104605684162808207139272972352867710302206396640717113822650787591763888075608465875202717611237784418827615619200564733804750912339991813413416232910679740809056056546062706204773352616942877059533872008105783409525055730660446613560182369720735700441981064793089270675304644011805802490354941965558999562275697220324152967956937584482933526339455220650374412265020342773323638136621648215983274874717174902564189561045559816562322800385250228405763284564790393739704714749156008636571936492835722266748613884374068554948599711346838027012738351017689889225769567300690933972335503690896907804713804492619216736357311729678007162891829760362889012953516264446908516823390371018348343960929979714657536189236815276494356215672058367338056216915570687166028132178659475727237029843998190590229347025989399922417816379279690064129310073787704951264878282993984694404507598322800963797931121600811158448436171945017989741511622728903643464961209641062034479375226874106874108674588030411123877518747160232514966527338045690377045140542723958313328239559074517958960038600615592527287076354898628520297665010775011759763991690485338275064954941100293512037371352551218377989444627753425025745477612806868573693359712266275606811967927006268835397805505387574008589347749536905794092718533641771268784415848167121317920104478086604746820346405360175023787748640340230683045875728999872520123109069264660108060283078182957516323549283905853752012969662939376366610239771057249109968275716667282798614555389525040032179199772301291702815926366985558855749238749333959324347133942577932096379522215805049903085490732914827541744576350681411294645012760217310236499651866966889709601427209980329416618821510135524751134674344634552507497237334677050406523701966785725219406431851403375037136853498590125810898370312473428336706289719236975179094403042092131311085271369068726862311803724522264905207483981970432805053824487999131520556282069659353419703583152830709062017055734781133614107119266765384987561641838561699690206326049003505312099893365564792635160502801059307947937651550919347670278614764364848277839018156696911741061366543705939706963568783317963744568474158556388336667120984612895667794381113434828550470519054420393154344692516739182002750909061283628550196392941302742017697565529588898256988906440528917896795809843008854190559804936439680527778976840951891524258507983774035922406282324618850504232996600653315194731892660812770505096795616986758770705962781007700609764970954157907480629481955628426948018168540707438699437010918601317085205257193405069394890936217821860514464967859321538545667250150756134759575068742743461778012274641812791727158103602430102047843447382740395066614605986734196818807757938161889720208174867066289060301909981362833757851469231174686323183715763149342058933326507403916317406909904239182478088774375098947250905797947090230776473408003588180049029243178316266565817450919591959549111795971611882815497057221500432223118953379601865370541672712163240959744682782802086854645497514978828326072859979907440131166563759851893914616217567309650816960780625991622642705382498580939013592647475830921386608274716024918058269033414821293804993832434985789238567355619962048642664496046278883765824181842566211844042986178338322895825532490932907654833883997838251176117975718953541932874694973959219219637848202240302687754160596123625329644985146291926057122119121701780063963619612812252103458116082708368051659450066186899790000218394739951464169106968268424158230728973241261333190065572988648556087869082229689525066891457986741788741398551200898451126819941252610323718741292928708210186835336040218691562839993731588880997860178560860349076763852263106931251116420693639741453846286631309311367100198881446105424480557651424779608291390953053618286158115995354900890045165546178163439053193903814626517187624910684690488200158306493230159798952353121093154498947762981463984012874871576987713273414129695213961045658532963657852472673849162974949466159373812333448146535425521799726141124644320298095013948038915898604735123398171766811500636526075510451899136548369356716190751586157077442878134940230270810853731399548882884121462660190511730336711399639831864717709753738123913920066409438880649705071677551797357584010343301853211864005252302308248218476412589186906526727442835099305176485856493032600576821658223593323236315384677236667756332210651166618632794544936704584644909381815308413435964847275145109915684075866036087983460017356736648606825363643901555705876158960223536128892425458063739662654161763627628031826046051396785654220593794887403007976493285853311974068778749250067055719578627105514276891039385242396311334518853479903050381007514006886845260089256298785341331624136756061322031448999519017089406542069540373037938395720106968066621384320182201350575057469429780299512413189558748479970877138440901927031697235118851380097300600391800640558426434514905945068865972241868090804739556720565328720426968914869806123388002306663752758651389164893235013802290319758155433835341379248455470869686760800356156476687104224110173130109348289641883492622077169780621242514968835889086437912767269107309573433688711809201979727027741988298530930864134832652539017221174313789610049185591464129185937304071036911844389047323437629779213848600811790400384193379483487598902041703589866707978192039076546282207990906568492499766728957181499390438250201297989249782637150067639251610333702839849580834660140465758468980887018941425174985471657345618810958752584269580900178186842061487850201607636853999301401264032429689345334875605878419885352942672349195314498320769850566641377420800629617347006007284996314998713359307919878947875188240696156239909671318698955860071111080205404071708277441307286763080282500733679378490488952289046028659955958240027393362511205122140809202228422301347369590255134126371292604751691489941150844962285252117787216713999381386214165477862193515074989792569629585980546835893207466154587530142808141327535910326632719103260939888581640204426152854554513619401703448429710876046617931903062648680214751567995419262446465719343312061841986230337937706311923228509723897013344039646591159750367636274188833049675525540886889852599205408407891436542288284649465530320041404912643049879244787490073680965385657861784942149990407019957576929351639869473301629419241831019963178311388325042975122062702265494483121060726899610473904741893731785668332945261717692654185241978717966467911999604924741622668284832407908324678903505138400015998678579209698190441365169052738771132900998888220534317315873358852529529454714943988154359335823075768572625686940556401598742668412532849108172262752797691332497120951916415797395233635768752736967911056434601913352520076778823477474814196154585705139778760327040046721202002944671783186052037675737164592446699024629899136672592581721850943479581761123788770457484190426615821302985449356438429874443466866413550999629182843918748905963437284686123679846500398411123305599825454754490031052821920227997835907063674364103659176922317002271930744654025135918394340216595775862933872990578372992654342837986272460374396631407288130851168980565108748939777094007007782119895098823158011173477471148860952215918830019396427210103470394882119205359011590943899691785190315959660706376522715095900347284535050818858649409469331848198175637746179700138142782721281664195318240479588179789086092470678081832470218488464093948414516209048648096043567979993701042981553452601974571720615271673512095515890970347823767274174287418335515656763513068898371890133061663305164656459135176587001511710518639366722469668326406167805470648667299346731181197684649754113990116405737656299170039795891582569977703349395465252056873346307337157206839895560818638724840099197864669652610080101300863553694894255983002803114087070601871141582898375509792340436714446187068328990559966741522107949097612427423705128520620376451938650985212269773803231671435918099959084754654439812722957374969194813061582188493289811306512483167180429522655192653081199900859128760310561544568824015286655620472289703062197433925407551469743978771360584277264906523153410673269793279577161564635978659702853469313815353544410373145991133502746983011089759375565386058449638458377110795178148098879299493165779313641354853697823300991018030642695556744250986936181030614434678715405393291405572723837320522367154348972785160845357052670407676279227517271952574763655971766760036412962054488968035854889539050270947049722870380267295800845966031012410592373727799177960592369495966574115933906797949775723566410304898311754728055588961458355561049730378555458675691594810738864454649196349122770419992391223495137711994278913876591816067656696780390722013069630394226468915072955187801201111995222905059385303802197828966192780411537082161353215661756234451882576835219114874078874973043172145334173960529400309825370096054665391987203598771282300680695354779502448690518870106084441744097570281603290611249182714961870373516313582503011284279494539091824227260259996792840138629896986674560022773634602372920252829240794213712054281309995520068850040601042521979436928413058566568682414689969555055352639420469165562429468245182370970456354085277408817369479908565479542704820698840915660647948883959985794844121358729973836122749120814650499412409658029843340820064839563939888871508791574111860777054521146164711811995164926602718191125808399654697233442905725060282327525880454545908876304589746017590497287107539439187881303602110228030044615108101340978141599561169666190966454023640594707763159739640066895108780627546834221899901417403714675850609089459699847735433967840113814326279229865998505905237193568937841300153147489824074615554757265886349729375655261754481821304741311696759767420023288063010507620918043063639305848582463096543829583911579797043000815013890240249884304922114095358042998480505874012680745025524138051311436938844866618621910960796860590338993651054937771880391714856260033968007061929931126125045241668443994718917280473138444221240033905793117539013246821754002421783272514932691307904325903139078734554981481101269409211241673132179497098775594636923827825295154704046524829838336236655312475645694360844752407420253635629532845488337324570227382874052505718028269177309597736260842259517146410613537784464224719397592320755461219905268644567717796435671228022373533758408934010253834932450006305212802935380411966721460584655112533543786046560073956027431362765182092494155255501021357804923076259593373367164578764965811658831897700754306128703484718107810707277090759814471507252337946427877292539200873774841617314882458940554793220410377876161449448514421388209520290547308268643385962544029803049424400255552182094988675807757233565479989340847883218766944227683456910128937790680233836279620491030850862752073927393250096339843825372267832678771342916890743018707054541180697919374129585537059019960818155288062257143569618526665435376716797138592634127414364238286059702877003919150342555972218773694305619194174844436042394252894548570835409401809945429856833216652279768262959981218923286737011094786242656607438556427162440050870680952505443771983622982951478291629732690435195650909724570371484652098659247833834499727156834620510118386970946912216386849347914753048287575995317763601528534610322880034181603089290551332961456363944660680833769064028235829460617060603703788097796393338278565522309793674038344206464588632301017725191989898447258002551658772250495230295957332116198010764193261006920331430194516939719338906569608723002151511052120297278057518083747765686122028030860586208056184325202585803314309028725194980328038152095828753404883245148564735944565164651627061762076955863393561613628226926526737001873043654042919004617946906340849453685689906711140402292480015111303793940812968145636908966816889542082398268237429403814404889750275291322557914260037826403975264480155489606677853964088639915969966924390407027544375164608969460851636923005796430447212617612612679413157113183145482072497258969016136088095059603734504175800009422857864194985568509149343531572202438492080416095510862863046744456696413664347477728733733715588975190827348409061772313069823361168500647991665333784047703711194906743557072550836185720011291156472024983524479037063427249101568501161284893045129865714192197817099464843008088851321967108679202747303630760370040801383535187799516794900317874780361493429943977674476190763366943536148695963247655384269757183612875196035861785785008916810670588478966189257239213230928241637876716055874482333583423696443524418438604146584731315042811070421922765463651700258853684706675415596037757034640488450944955500716215802969420127370779850236274338527277933305787925919228566914532458949893658661364953535025804814316880883696487367214423594321684522759853632949507788699896883649629951970664032136502112048381067895348479331475001128598937951700931338345214849091527364170756302746904739658938236857655346915871212141515017180458000410632262756739972311502159100054778759207000636709505571457761306946428769926543305073763621748968634651404076108180888625148671689600947971256509281707708935831081070020982985791394898143403409651262973946581437985441877255260661675062936851157270731319672171437903815192509750458645856516585790891455198087278257138511365276092093708497960393839932754411067463263596971417354274576107011038232397388741832094665373524589703212033136090345255804158171288859454635155302245686855064081509730542789426029368047980626947107253055395510807671336594773305255898762909908145159931215552856015656499182805767177257747008081011526206697170649477339732196517340428168642692839565161532659556469393937620928466043000688948243654162278035254101914855010382918085160459605136263922832653407080928560724337514868384887293024613705981515746364948710966015321732633548556062544439979671712196115423381888942077455187847620492482496222370974173090872575074702020093501693440153944470450150194765775643764486443378681421429267653391966850614643609434962605510633661464378639916147539808045589038172291634728317875350244422757885308378252389605628783691739840470861266015566780298228712905429529120015760733866556124859378598113509426887061997547324949563229553361489831220999499734940995539337653917228992204173418969970504082220862026056467960822665924533728248145987655938768858789073010655069157982111239090031873293119876990441377400304808814158404462163546851603877629435890799077221752772798236543339126166663555925209973502271040290488709832868966499803581728852782133306738870655100036428501256921989705404397070536887492848825764194151655894578958957387506915753231357190364209640768982204179336778396820582652020468544676925635747582728222224301933822600186576053113369139747711054277676312217154408424838922779895960902048847976776573804171544721523232553106458366015421055179292281111815793087406026419700591105659610496030204670189114393959518477891865293177782437694422731795153263292361129679847362658780397461863106342617724186900404639143339207718620316935346551669597161609345253876918313520017170692496257185382264579391190282410077041693911888554780874228851045358546962275793829033229205555576800172590814933527180161606464571343446219745665222670854657382082044626350494245230211907645309901281079822928749496529752727116570443724131963437386453737097265921275742405756697700096406818721203482467573395213757277100794632016266964769056574868063227382589059564726189990753108910763666579108986626618042943890197087740132139124765792127680951628816193684703897493186164885278552845108276473798588062975648199608226078460318928081502813165994093922219150291820622486018106306793694416615602695195316070386548510612134327729665740952264519043876872555918392525135385805015648992878799698036924209436193420212770790182424828936183744839319500589742167206325169913222402963235747350841609007797141724720785318386701888350437912581995092503928091650576915329465869131738575705505980974943455493044066436597984230225999872532077743528412095986457254309942716700779064604716102263851010144161502612263167657289608167057501373694293397611984244681664145449016100316520616404103873919034962373713055944081580918304107812788963296621486512560786608456644578964928599019415521612675638319698168847116297292908328064107326435506910549652279138211147184692376657853010789765296575684500867929368881806187444528059936494787154040968940444603069588235652073717100104967457182523933615928656670198238965503348586181744832147741556916668525424302113629173411765722573478379007524562202802811876109449063058727512153015604096360208204081141604146139495034973377411482384725885464035244498597998704051620087408992724556083148413065829177354282280648623565704668105399909603865376751796858275664953153046398789894237501355792206831706424490305622789498794998408179206919874522536109922039429190023278160216345042924029671510742929063144134140679019127858762572216152567025631715407871501456893906650214215619509288676860532666528140751287382201504163374769162279129320686702042855373931441495978889218549964421065927458466239256851945390357340601746990586216119810209235412923156478657487371919962122781422416244529716272388629504896103545903481510846223579821509026695825501885470629783064110068676764223048363233679026181739865309850990942127269361012306033448716368998105124981455808886524818605157735360007133286118157373419379871142298670592929027758142009053731314412851056478120102850465193383293624066351087967104982795648463414888603107083768872244761594712653442117633273822428637385859362108216689998042792163988848248326108625853268273322928113572379244184608458004292313091757371806966895215843159560172253860273945570957398246926917258046999080425619969583904085136692825216401880144038121421338729523139560702670984752934373606209985139871167786553930085333252826605855947563335506855338924763887917844021193510187255139770530367577309728608178248903598795449735483706839244624440644323796543871890136416369662809174266337195516038426248542266746373179722605415469021509547842452763265601410015677274748978072222838387184961377086739484495579370054513904439819204296645789042704560583605750906900921310746394241329510219096880990672092244646123761626508390277127125257602689225276972865580610515039362449986320951937688919878257053304568672561058081680280777778615376156115433738114005056219483788542253791269968846180291628398540626607073427657453398382908789936854065833411337142303458933868351390427233418500827197937596352446290149948175921811488158247908070782995841529926065496152638827660937267051617175266795966787427228951216677471113790085891739522723711992389255079820206347500258002200088531030595717192937989170436925403895093608573329033782737829508542261400458801689598222250870985737689293157918550866606113250616566470859474855213838397707489961943330542882872324486613724733821808856524591351517783904692159338318720388843378317695131122636347424809717644609913348805986231766707560611587903777386527761858288933681355988908187989797904857512013682872111706273668162497034254702557154044527557707595701767073501404532771919588966596849633468909048443700271177828376653199628595832387862808336823817619595573861120883503436703681446331372429874232457582376413037953465820466593375518781245858173980294600718823095342808878176664274079161423610635996466168338427632175300407576030092562709804500447610964411011069247965245586419888415938310607151159426695871169158654504184883380991989450833692804665532467447430277302611304823963213282830855685041476655730251155316666658651438606075665773548492739301739519324729892083817531952957885095585247785251239540477942216775958027678006255574188701633021659807289689560986356157637441911312957513763992761361014860039598249944749218850266120751974175434638087716085246517369260663483375758055422494067484052751621642098200198913404794961430009292308018567491069148029090014619182665373213707163714566299423000004794924063869123701694877669647897312104558775100335580309309443633913059389868807963585323110107287109387560947633898453250611628747316327619264735381956683213076058137452233116656291463740896963481068694647799415180897750574726192722914748168123175726209846175496486855282828930901425159875784321351307492644759915449529790089215187778414219568601319478020317593897568133015738127010511750629949746409702649076041020485485288138167965328147930328693905836638969920483493445750529572914213580831294629983687885425630343692858270596252356684210346973505523755291293195042931442091279020580221519200441669289985797094030819021327397770365355841443269053799295875055182934151156540894523786041405870688739742227470298399613248373169812297545316400411821405947478055724450617458458679711230365021270705672340504666238939691185099796116354589101052743092227450303801733940885073673988914966334460752698381457712741268559471225513030129035010175825538810837794481048562097061523486688052165704812356371938296355548795772883872999677275959656901418407705357133859742372579170695884223024858204464200531249407771023424340956332804247074560050559198547857751330943800609540722156477675895638072825556486441887329510708188287199842881688437600462794864297910220629064194253495577258211831155875327648793934016946950122646305524743029958982601141446559762906123893604328010112024829655826785427707145098524345586552939753210667063180376401306730511259440669863121058024087747795986922808557150516509029110235024854400235412366177958413977533011065855786363459563278051142454010469759780113545943231574944234410628148268443754395134590775597852081238476557319104886569836386865498959751129995741670741507522677669989652481416354764471313506143737503088229360981027746445011152438003284227664239484296969277519124359784992619391177530230089804536370752116951867285080234464823065249055014390542352493774753808818557172805294006519883600478599523523646601932676505939850694918750092868802901930021805699267689607927443065321019995438793120298352362201172629213523328661111636964117342914390604495063989505278962969073998914002924381651883511753739437348091479199380399860478931140512678954884058477109440726200953016873506617456025450688073833826591193979510156761404165300148207945439310974192921858991834416342422339447350632543248979659088685831753148318103085070061926775737545442150766381959108829003431561272157252499035802634653153640997063118394834660872153029952155972536231389713301244351100427270928233608292694724644735532830788517611555106703860179498227510126164728267522684063199191899880936542745897015727206399350208975381490129603806240229370061929124839239819687696540843561361486350477583393564667246464669812160746869953927419262449529610044067883379723159646674440202122988403106114074932264954099922212803771683716836061376315487462634078418539379975251236447440647558376370268078694862996092464597058854078496155194177592325067210115680184665833630997070201320265724025976366956942294131301282026047518722824603946007009136296424253186041291509950314879961270075433030026746678199900979761250199526761001980430387744989780243616535131513103108026083780162814803855148804476525311003287903033543633625548005058434316758699626112652111664476563233490899297783006863953557079111798358386255905736149719473300835330253548405797057400530235043569097346153667176603747025712948849837292367626335336274268379957654572062109258129263673550729419872992808277252438120938099082715905495344505429377490054923630047353301888391523850923363795769030222122529878563170128753163949480143457602538519752029310522484226399970664631458439527673963684635670143523500870595110556202681645210805140122874956843932647479101534023201727960595297560853295166517145305414193719319464381370705666686011950434899323906190849730479733646124941781032796337012592263295788953940546489026860493085863754161707160719598123653683022129474992754534606189039444549750638903337881879567939807409184590634314833386049170819716249523068417391622522998955800054003561923529355179355373015530318471071033756023076751393233815738859813634091314817700391384724220549718920281774830593624398192732703792222289910373382916167508474909573381254501046014955755630452914573932383116184367300301431706117483524789072289499487252232232878553032960206186970235337398090718981522402984893005487672511004185539020417632548323561720632200617617938297109029979220145307253908422722059344756800302822109803325960255338310378868670368893463228099445835083079040010328189472785462721981312982384452702933947089905216028412705162686322789042530341657765124979066498435788960867852384080404660375005499745517799810417201176469270810356030712176041463689320122111230331985173333015506061359600878995681103612773912491227556181335536760234328785384310520263370159766701631254468173483035463929761749850036251947627745387435474155111982724392429170391195768191130600861645821247061928086732082937519169805673979106295125418342506887327998474002886987766272651677977632277118077416485367836673720377760890390459075627553308913835354370106408769992095783611250389937450802454480651359046078911383354194051548223705044113559664402545354049145080332480810883817400722014649984492990134225292741890304740219519102453089636430932607227359209109528431830138166850073203102433711134452740504883076157524140626236489156683827977291417716991286439742722779488260267463752682888977924260397113458706669402993796992275939933383922522716670674339372121786689394692469795632470886482356575779205661110213891624535026055970301056119313030562995922727255625598642471842091018393146522124374217528571554077537769611855938727472130448983699374150533676677385292289398546331861975081272478024986836994404493049286819272739817000228641778253353388816330449968900256349682546783662580799646625093850950291477628443344352650466784808734854055013502028750123895376734046410569719803549763041264620886724456729997364292601575106575499641833103772685046403448481170952186973714936747983570367986775801774305308433848342824202046323735493389816785610185549456818890994529283803585761737495059709778829633254524750151415478004802510639526525853081937911338003650515015363219571664042690196055128374446703228438736525166541313055357097606509253733463076837770828086125440301049407440117026419222166491980881327503957835954752459219111095062177075940925260637640285498895651662658364578281612924328376193282862518212759920968143712936945348405692415624011615796654406889252427293678780176871565886261008909702674936085000172800064259207436054862048811031686862777319884474630160453115876625146809036506153373211025926862211019766308386725869189338345689107862127515988920129142909916799271202901628207110386644870797858112805591088955831830690698547025924151063431007871772327816429237492404637472017314045974337219679441042844703746012039724304540346352572816840089952946602597160223719804555498026568884066526017531034829868862469101180889273193674432148788018698479084674588833460294278147911864276657980519251522705566199979774888802686542911147344116332442391738507219339738253589447251644653673131065635083979985847920881998462212744993330841285858878405574646878573499786516437889061734506271295881966327430123630712778544693635846495001727201395536504859865143031886811812966052529633399933697000980026900611231291668447364643150108652696643673550428097747821323102077385024061757682014975414252921185678774080921973462182830627110835136994142524306821734358724101491555178945339261682638951206242319811978130078472383169336652331554339919930605078527818902391220425351503029298723561839493437722545147617367943981551034930128236062758204256519810537408789691595345034548428985825234781777088079108307820137691946364024517675620157702485274396703232293135957838386094886873050510876066336543741902210419713139044040112263081618659596905891250776314932090335577305287070195443464841772736565463376259173619923738964994952394580339087345798001126486922616578777077637799089553793728874535352408104213694636106333646229660237569133029737236437429481706327882520252661232900704695974002845755177609251721837332616433306429900908879085811709387636190024890113115776933530181359224034832472662591384079315375518546530499620520236596666399541175108573218988375065571312218583629611317389556970169516979358225668668314849736174842519277636349555975930662582307395464287728230769000272897509604132007688738951330222119428179022578344497954113834913732875989978289084158211462301759805518165755045680092185812611228820283455064009644571440190717437840061009057582249665153238666977489054418018704773692081448553051063885300138508431644267213738274116618975856836267661717474100521878195759086659131626137713664128916744739898876103361564507250331499993830867166872496805981693975208232164169008577567245590204639894687342126426480590637536860297057613373237329428480588121681398744065414208309902734378869820395566216552939296870067425454871922100576976033376434559918029104000227806697847361806486088097019134973461339099398050965299887952049204765410121535677645302801845085117804010532597844003568617091111108607863555505492293706321233833882710726449139091774992547675042385785647805149284352720237095149277728013778333362009087542771054464134950288325158637060000956745723031906049065099529783229414150651634961061491285377514925776362865462074039373155802237749007577123999136298574174369429423353416825601426442438503557597770279067381619023540933788871916054617036944577124133185912275351860843051318663078081705979218808205747234162535047501446981716599064070381943403695263013904929168540379926247711623332338623790780345780426768610942307375806894337328257911607086323527321569124328369422016229705154500666070460058558659755355385717798478672864658033011559045518274578258982673248361172565800226152619153514472923630448035873366028023452286718586227654275955201188871020361086203487298881510295537217763193984617764136971941971420088877238443348321072977081204728936332385009638549357495359424566677495390692878076990063855677675966679820548478197747943449335700017744420078339109712524868679179028153483355450136909828283093819553573714004296193877877379792430469919063290071051334113997161312244134339796296739280144846149114812517549391647404708584652713709013035854790832401354740805141433038956354357975636245956939046348601278212481203008205958687560118008027024686422534395723939640908135122985090873037422266538434025021060898360644597540538144664459689147126532745696597257681906112775485610404754976089218382171613197202945993112685608979763306731565659040549157946629690565344910159946491493523450073366224595400671646354545856306038790693047910227685246670852392191246036106243227892302143465447585001744814631563247455198011223746408906837501461682503245023049061484423622600418902326194508535835903967002352322547988905789588022687100522592816041384414542193185644558245459350836065383146444116306827938449764282626965759495856493840993656020289683586741155854272057111413543100323458556455913175394229518011416214784082275551801104810065546125161202615073840401603123449940375329058034917680659352852663670374101469908549208399809223485314055857375525791371074949126661634627519816974228853570505439719193425470365920844523955358587647879738661842862472708291142927871534196491686865711905731015912518773583297751951776053700020768280664258301096553923186919820195630786347388314169947056939760710417712348010253123650641783817469028434857168148173849441789770544179003820760622142801200566239391460668078192287333747097824925511856079017546010546332683126293615202568240383796247086801515325983400096528583191556501915013457831634940454896933471181160962240382519099062370066234295146389789009815207188053471098618303443833836027432369030651520012671856957223462465693806867766879578638699824715982816462819039959200231533075834586663971702678451793245331685963326173202406490300073957249539967122689335419688259904090286121955092856713041856709618773543017588429384883057921723116564951088159930452840608018824569531748103630768145438939605648635381615706435918232912201693320249920555557421461337055901208817721449372366319649860950785676446200262282497516860826927365948871834717464059240425955852001090799370640409470568011899355610286060028729252366874586975316628011307190037212724936945832312367879394865462012683362115613604496157974834722245873244328758717035156333870085651077331306451356084998748814475812932345189603958656782979472305912760474187477932589963032634688544381843867942910117441179078726973709912083175633366037605878895067164786949079116245800020319237669584437053756594400090409259159915464635947031695893537519873420649298621472757597774357300080569743532912660069255006590814434955521908915519610544613850297397284723243025581763966712376925870923137130017697044029277483894026591874041566620390373507010420846499812562708630791425862269025269132733275208661869482369722046184732971892449642049246379897978789189461144492215787009084459265318806557039544310474711054751063719655449414681237246491501249173968726153768793247882385482934081186135581462586904818546846325573079960772559540788053890133191262344372865404875746428302570250664838168120697616806921753492643218419984424413582447006806265236040498153988048592854324842817111944004441771722929584436668305204222204738509169583221217557623086854580372182798084358870333303658322675014606993136779044252383903855476197112470292677057011386942651236103003848468596599341624651309891380390211448942813060524750927371950176697906166194653862262188618182558661428507431296242135171268386944241642074715022278498550877127284737844570231278795559715267439981601109374381069658334601891264680058589134275063090289670936941282536694704266570925077585289910754342365493663284181898885350624347357095878847812976228735965710253140382594283698419423636724540171773669786517856736498750442384892538881313326547325432441351215070777449643703977601623971056687149408198493570420052239707381424233627408712329104696125855019033164703786199380978022599482953246866927290947982517575386389667063290253045443369675251575752593572416486249475739124113597907662354040840597670795494785311143569029128366947797869558004123828927868578136549135533833477063820971878669598491670857139922094668390324768938268878090933695441695330941310833991597213498710840626891559148585149804400015851310792182057654004698587479345040069882690628757479107343467299954766465322776853609645194763689664304359696173418053307450476788994609533071586789794793829112541060926295445244877706490928982927969257517053350088889462395260222729118943527043989629712974707122534590324256024045190879134146283750537912272041698631577928184392426996337017046197595297995834745234200752766364838226483535917783877295955675528471970362905980879087561474068232485095646978395511846218535315287512674600350792626836147002096689987963675681578044138666649240750226307934137862516144711898752922697486057208138063405255542602437524196778378532963283681609302723420733722989253734867270606070434624391089665526531778727536752141743017406962450451645382992253211796005124956099817002147422814448699711469856797215871205737690980142782148185498227444483378345515626551925117811761662127025248524930256622764751737955572276127122134958062434761788145982460317801201582662261106507756788725595403328577475803463682166779371956939084663674550071986966364458573605363357719994305654001817346787970926794965043398975155877707225413597986610013947339471452240177459069816768942456643323185834266596842143105534426859415790571903182700258416161994380430570047818324283289118657659336562285001793141200002920327836791850499043395846956008254063193117128498389155067822953162073309286378166093955176647392050568189999689718221407345212914331773968900865394812287017814257162055899465462762421369915007048524641285126827817082831664105757564403066593922659118644805897625149698041140065207504907429879943925656297272787205908373478734866757662712356860414714404035136202250098846624646844632193038027140922381101952326234653081681599590223949196688494192613785046368247510975797209080881412119913868427468613075101429647689793319591781367566326879168340551781302233684325803124576302168923713807898994947338067469027159791490404866634168188038054397282457869700263056864990245697461588411575390598305504590293153615133888210541265509743822401022290431360089532370622542084876248434959040853422993809803687417197946653431687434602273854485035119718799417498299807700430468944435534313861394415446475073746222085604708965797575767498900039194013506779011726978159310313330597995896126672302736639120108417593163057455472104272857493686675813744310515249193540406136785492909983849238441868941949470990500451993568988028041816896832182506917742112568512651146743506278402654343901178351799501173682966787454918184965943158107715869335009681004223199544690090208687326510285801049726320446339972991963482107723456457130515580486713995431904359010758458299631275757134605500374389993125531417281372360746490139442285624597909064375490995071307102281295101544211284738674668308985124135240799356506861878246259050342680361146379443997283274202282171758427871163984849688334513328666499718736134761902774785485207618571632531432344849705580519184929417557388881180195510749642036204025378501427020195859404501851792575295229782161011479229517848015349699330198190319661122833254035265474488197191637421949672069173903890039294694306828711377416047069989223491506480077020054770832666516426289258336908323685056345095521129034211520320387700787134618545380577890054708219901092425267101673475214787074276072070708553243062134735068661198136801903458117313178507702187860082592166764712948471779809432839972730078337595285095560453118643433304632925444045428533783352959300125834860055402351750230674222474556242423247950527561866927327545091699140569637567901310360729667679595900860382932423956257522801598880418333355787855401294059158999939496769183430291919087339942132417525600057708947802996839150465610439871379442126767433819693718081254733186836659194830238666214888243875638929407231408607691239473239475854305358142484851855425327672178492282137909238209778089231290704055269429827062738233695780459748833345629694371981424794737008424980849619230966518477114463914177874126850795422020623837736826103951009213679613955259999351177351385254671744570506687816134110829607425233976580031826312024549632804924619927139666714213499119157721960389571084753007343414098811511288316170866700706758495632135083139331511567192492098944086887803999950132160523871758778901666742801824105310597199045597609184065896196382199751637473152385230398402176066474133617424661391972214928585289645548405926011134440451184698590070244028388436884465389533023537671938442890392265354587783407951672806640796623360065637171970176903607032957785717448205600295461594956272207458730038231424482272680768393661414786585062287978878297106419991258646807765770848270968554982513848715747125107149969003441219459179725521572954398348910181236211868159754428752330330079244183838140861773772011632884804287677924896406796205710456757268794326712842954111232999409346798692194673419071317442179867464422773785001286574565054358215211600900013842980024435011364324556640413825180221446579502472755580830629866643189926987292659761026913333249390240849192729153530333900503568600159107861213534071910028578723907291108852747058241685523191386906167466305377981014845297472773510300622438046492607305035394295658758935398112158742964513848428902775643395210007107440372386868536858244635981736286459890992647713009406110117489980832987222622752984712880998147397454034163424075138689024235727076436860095423388927703127372735284823469686420007381869559996236901965112616024005542870210194879468964990299548210271140645755656567084927451964721065138322695726227785384560440722293099672939605723576015515325802857112316262822017248304872612013695848241628707640168007611901713379122613272330919754575040162662953099433619237063487562730068497153949827903252858374033053224552443902219104677464094955723783326806797102062778953229878086856769508728571942897675478041877256760337678462345622128041548739323878029544945721190176663286923295807077558615460400580930567801846524815588814528198242876870807808089711097160492689212539755820516401731499776428629058861940822173861779965244066629029955982120423007953549019349513641389999941897160790838490759245002006903973727302856135697326934058336415037645706196442483768582828964060963688269794017017395435064180505908669838498258378621335385109850681817835689773389702246313957187973077151243762776458475957216022697755251177716543886782869838620062809186223798303980169429692595046577311139541810159048478502291076914755013650533807992364027941014988770959997378299207513865387135438712417873603131444120851104505753912996036941292046295761687726441472936485519550022786856219299975598373965522611723221755232156262519928173744651106959513625528428682402113282262262623251511979602221778990273353650350900512914718776518392837626865826355798733028070687570899887661545499299830186098207209898785815229024592594837779455277635473425560433933894493631528177636269228836174056838447049291999409489436543425311061755371219483442360983432683457899268229777085194765779000991617204220592413677812455207793401483502131519923115299421194775989112724859255932456042309199018797741888139630140919479209413098844025156344673850156756940117445263630007571905030543043402116498985844685336634846667405788699142110245938363761116634887679480991502693887232553018390144281456625253073440763627432294668957031777724859774588313780240536521717220306128846238446253655621550565454769854436677583916048377641634341828172168541347236483836679925205357415731529727219816257095117484474264740347221818233774686668930892303138560934171322606221136777772482984676919360675398736556631234214721846034194154806727364183325532421088441896210323718453626129463367907554580942916009960102287425871379968741308103093980465401115516286239398218895803897630204169933722977299910519623606561742213246853528519337240820631610651171584757690232142516909239962445916680932419622696573221258254757679656436249995395346205024441737704731084193008468755016725101045847464475175519210840597282905785730627879580090567042841709179509069686778471354373058450758925767816984343085384240354230476638903684984874073594770080294604873923605446596641728161114054108132352048852026960493716649960198685990523078254901261593960878722048729827772657450948810490009364995945512382047391252087199353386191739587689728178298675925735159739691681850084950677865890123917033481146539392371862909190996168958395707349976275175021245793414116853982831482242957201883426256427778604811341823293487951116822641958460587399920018197392057860995437319775884024353797217553364185627842024345760072239940144724695938670074404700626634628729797932745668620189550577338108569931778476640477043921728341059834904700593031130694594752362090261223571819407460426695305276778158157682258209384581906205641392818928768727673931488167091864315735121649381950780124881275035320537123751720718245264333621029935568477759565557475483211423822426656397222637123081420109311904970306895517671531972665251277036242003302276797537159932589135061480469293117673411333799927163066824808325656218626469013363924484755822136951201795873247677301715877271173369864840983719604899718357260645114695266598289009641245723213398802001169572037420786279576823390103922603484759787306767624203165544426039751346481276311007388370543601724866679284671345088201665967451889073156752593882518770629579464623758350773012983542089631204036905076490847356261771202426268863144444009824161438526458876651015342134429126350585447391101439193624568221858576409908365972336224431953084357652566908547474807151034372740143394525073596169299297571693324298574766243676199799766403446900471965903043739800263076081339698967991335253502945717155872660338722980443368182482561029037089459920615104917628990773270030332241288669906962185088104219425992194244643469028141780895811027930867731240454810886879047339716849604657962798390937915052257962638626229836305934156250918953077205373222708761799923295197003195782083453196653468043310575472208018820143288923574491265310445816166313782588015858425806319938659419991692173377677783217558212703485164064846504804105563416631235496477372000470370790705912825968150142866934949425326618050509610480863018180622083138277948739945374886816209185158930070038678084625483756567323604779374081145252632898686950910280245222388390588817181704205924788354576973006226697610304901701955732846089427126971754505118521858096630159473944901607245835482329691739845512026409083912602163777391417989578949552031348253345219856407483937132769479844102303247950511272010317321270319392058616379167720721310825340920446156598496448239666813737967665951806139919013291047415649870290718806705017152119960370349475490387129367040981121631578372735248118857631922173461190489458615415733911097730352012900304598339532842705568884858540930919627968854869678705497999955011893665921617162215292137635889455944792588962202441819874340945938220504149742454441131648472655737380946437120340629101454507572499749423673613117035560950332000579376806126260109805898745558449191163288851014163237216193702955629421709878767207710838144644215971730203325767827045978809505725715770330755549424085527276065706673978275340309063375752320167520110332620816857941230746374787968158390419925475081371040252401501024342556638014221730042463571654239849203236945528340520550374116724204591096507648652233854116569023066468717388418033904128636912095243935276921492400910950730942965773583575367890203086462794957417562688696979151336581699162408224154767610318841432695261872813099372500741211887772264777319159603976632770134880348621684780727676323236590333274614004483694115015020232667084648201157212253291555820797372707156640213650235264742875408144748474877225179411809484927183445974539267834578283690834379766609843969505398331692148380435921286583897162247388842709360360864123295757235856021267733956498669811705707232755815325383069860117863255374100416732546217293061640129785456346625645063170492646095067877296320926478962188129252064253728399960765033411320678057128930189345614942867117449284940038441422415515676336377503874253807405934722835035248657804450682153265963019474784951284222277748040585693198611410063832710465206436835335963482061380304757234958221665373401905293232113627507495482136299934703885675262191337587308807863703240969623444262974783796070018155967370260853071992864425707699673677377562017113216158606565012031943950995090335646362089334455115804308985224503048146852366474848118169437799181296988517849626183020315905929566539390544733506589435274832882839372271222022692274793200356793838597631069324436087060425933296245947869561229918098040417525081963609478049545571941149687100061882805670907261144080345044579054886093295561679632810008331525359868475161906853429274611096653939293036815842970150286787297863013553918588438307192402290907107655734841638233195333490376039767677661543376699402409485538881206705880873575834788677777921076098356147621510113961660293048881656536967067717841740123437756840133037393059859015173793058312197149491803927074926171694974272520488019061057684406281812576710406800983157048824096976923553505467907274480930313205707700577054875956619698480626514123341977367907651250348106396677742157425383985700845379154302904996738916120504147378428049817384596406473294151740778370562099906058076835780109804910330474981006052598247679231492691281102340608753590122606850379733629266092831581663042897269650067793767711886639443149265801564766474799754153993910430846022353620394078566545702281085321029361446395275880983339338508723948845838464896178804690603673652723116768242886219889177163780425255993109550741707537994554976057200957755663862060385436137794932669750711914567435002623310477970810187875556090701499290510078359384041845990102459883450962360661369339406272652034155169285474971240534231182775624388344190288217395911447219451698055841209656360582006077712030539580313206114890376042738564274673638976418790916381579234224412824922987565627651676083886687223611705366983545732339485460206402397406147225811832889199248623618576805224002284300334432812049506187791341686135256630932087450575993626530359060217743654755205926285594544797878154086061082276534366068658445955152433241056995408266181198700188030929639894870445818104724708803230007162116231433322212378039896506185217948410562174930194567454997130383481810230705136437551492723371614782009571750380327669620026479931524407817478039158604398676733459293771902294581475298138943420739113082753100532771441708392643973720748741030685766231171182326043298833799667808205892363940662211301607109087156582585128623806377254821308057592795538534226151675151690651511489592723862738431351951336955044015385993679126655112951031029717718680796710328797722628747271293586943216805376277537958898595985707102970970141937269263600078996093576002864533032741321780712025152500130748686510379689112041053305103310163839378641632811118638955573330148786857446901783913070226706487707689961203361631535436264479111917456272840339058588195318065844682666156261536522722276084380758320978700871605141254482979312253047873805261944260404909551096568256848935561955708013699085238397950942273274462707097744642881509497522140469138013104909663790339507948688196623401747206825074616342256608294378174187194829136101180186767109620889728222800458841333919317153633075318058261516338562672322908792548367336512109791901814903997566459488141161068848147637372679178153258275835226898358921239929960626231916147097349824335182759106096724403198953750895564132991070057568266964813663294931558350476299128753517384319130293085511967071858838488417265662861746280062483144185359416214231124479618024635494918677530268108563206660139869026820816370804052273943353475121467494188550950495449166374830190565704898054980397278680487594965839977512975555742183290766935329548562293611808522746549218863780577398390920184417557794737235741320102350936022542785993011952032221894160846549480731411382227383180877754184560300752526228986095486554690867797802223902052551599483834941036858616046027374727655804185115900576105503285851304431561815623900748591243010592732210799756490935575448241464994345573128626757295900144730978151218224343709316580135573787841021445984811475954122508203174658781181863588616467296756749305447325767483241439265819666135618964522425125006985273340892538018057928129533977561757526410348648290157792574013927333886257938170492634882561685712493389461807177076363620254448889571178413378655648744709187993308472948432714614344450814556311871880332822813642277357088849834362511595419547562361034960929257340477286787138259115750517736747115987855954422626026663848855469843612808268587362175864593963668320005711520463460645534700623487457983912455060693622810870788052548257593274428089778556772090348059607886907342959232111341105267862562294888921474769603690706445576421492207589236461454566104322760557124606511330790888444076243463529056889474722195569884310183974931086620709724268204384433306002409184572222387172099573656016902198920906880665048889609025488565119308125384251589907530298275477148017688641604280785107906658824564008839205069822061058631298895836592149228905534514494926989871442411166578380322862172661014976870535116379136228478575856891851966377044115670408042499525967654650024476567453616163031053546139154371721257150546403441184229728015676083224703160274377787961877776540673117103056477806678222373612588529034975283151162940702194997230264136290701934792144973859044729662475565983876665728012596592581512976461190598091700542649176967408124837886198225278967042307088686779133999898900500749695401394771085279864509016572741212571445686701268425925318319397517183757897783317236865410396932032346770265108175023601979443267364617211700752066947341643744934224182974978973767308788612133049178582322178947042198314747563001886889986969543711951887786759152822781620330289777353917908843084732202047535027682065522691233248906218133262983186532744456728406630146787880337750286559159453008827854009832148661842679104172472544742423099886607413038038690130716075247556928026174583664448277234613388938791110938247396024085720978322702957843675947202072457307186403476740387320343296310018233790616436003929771563551312062118627298630052970288466568774979239803311702241645489956386680248663927389388200980387277258859266650374554080442849812629939280819634879692927787052225484236467130672730832915997580492196779417829834250746024859450565187014479913768177251898254368494508360013214197210380274762500186570934438984402314408136764018876075393925528576795686706003695705334626961926531780754951066363661690984047521562335967691988180743308748819647857955951637295805254911994124430066584292917506037221461710225508390382548291943563153457606922571408533095036167827311076891491025464174125051381928407190365321814485826528245391778178994974025916776273385888746159118428873512683122242786294895060613658228866354129848641504713715961836090961825012619383978092225825616312517946486338729936072902713025567037717643873713578135535241688859632729858973575853499342268792524278063897638132518530352433191056295323476984188803417085530025186963658449844918815582706539430705297517014562315815961343652288669866173640735997905917412162487315843119161854598118107514231707016212072722026364774095734730554823671101178694145450013952990567895375881321049769285256183298343561421883907045588552851421054982295979138141170164806732351591014509481914974663806036904854525311448663366292176669176446005198083458275400900544135378291111323309715326256903295726143112624315796612455566815833568914958822786322990577545456128599336816688381136614076337492301019464944731549032551479683138712078577382406524897119681518942494589887735425398260498759602791667377130935167067393654527378988406669962539042882621521414768133236181873233241818184363841001969111279111969037143837490943905499644352139503463581961040722220396861853119495658222278998895091210711487618406639173491919759895982243671842968497180647914383962788146920490439353201910039348764827731710878535561049470363652785472207155595434869680992857181593014821223387526681969923241560209376581177481762761215532587721746451673695671012211929642218666671703892912030348989155633699315166158872109717833626763419891605563447891004710984394889022602565933248069460620891608643549903709430122155039512998494047943963158574811347334665566677891339479833322072612525270130656421077596268611507159799531917059403009645890325840673217032358843248780911288297606364782303414675839718979503616002701971486328496810534443488716835407563377873712192209048258716299123207036668910101999315184175468248940138182506260118727675714952059601368963829200106819770159566506340338368118339429978796171698601047966409556310554003617140175052856139280946221407272181508242476018994770632850079901914660949950612957756138794846273592298569396894517188037772652418117764465429636683797891867491597648490170805895848957796941641337623497987215601118078958966229941460173676487968912645051643899793907646455797248505933524413733493717441186936889947078707840649680338796280806787819879879264113175101889900683351154929168989532013087814696252098457204539091996861931110525834987722302274195738142144767122493893749156407022399623321287659871122972129264597587765326021883594865618110714035214396493338878579072015553099540275075526112101095290010836846708876396355751232433254614171998706625726383334856438237451327805640676233372183727206109132649116560986102595955027726833940389633161162156550537805668208520568879485152035874123560121304584741187986431690950187887042896501826251581292664589834664850785892833750044501869185265570343949283515852750209218802183782423356389577070339974353317572765114632740628748269320766812045974850589384332896511101168924642324261767640091172010251716862022967736941620029508807861787428987279172388915495396060651183755836700758146469030713455069826099271773503984908997413121637420924511430598718128455822333378951132902587314356681934924776259355157245449362286911929044656087231780610434868318235003410760272656585794144665844448101355520753337148711754229975404065310396839011248440369787750872501673635880473464779656898280511658469038357843832132389428187774081667987908444539359360560545327392084247755715799562399842695754142717909402650397710411537573433972232670190440365501590580821209000913351900986143349422217379139509977322808667253106694903389276015972783860424680233657513938708256807029494060296658624929209442517556658172612956477524015532521529825931670933962099301311507629112291795599258409338368736080632791687757018267346269668574150959625737951433177621650920419357072394744956115290373839947789285928023109929503931241474525085427412578346485015267167305124708385917988436937243791969666067016117117657308300219197012167474013499474603949189988520867954116535130123887912297653980744358029444497921856031329400668560771807134284274861379393258924042324350575955814655510140706617606240276853000083331496654331011467252001147450603983602338038386380986528091035183009313964081623025633403448133476936574675915908265294442468423389115194835687602951532123292533079849553619645805832300052553524493397625250668333038893617554617481517544294974530561824347107339108234720931712611423174809620120874906203296733932376544987237721269973586388710620042149313360140476124310839971766752363095109586248548635774687282252682893019343087428601462579797138568410759744074526138512710850447879184426415354763685749701960206058566881090834517744927739612521969254635091983950333632870146363043282793175521749208609064906780170661880504912497589604233184336746667350870840921358315421992647662485583608940787990829570401159707925818262449852484639005293470904142483383061117967567760120541260089731508023133532843880962964023843634276284870680899048476290454579467778842026640040356879619075036797249316485005812871270161163406213054975635367238776619710625085750116852888457075658380007602674853260782805682540082951047005875086549925469281192776326048803014030212700736100827722162015980069576783482469515874812734241342037399880170577075750519236653366957980380020935984174464136748383842129449669632717462393438878968431862106148029272085286311248078474509646788708352427551073531963869755318869691917833778620346232032708551430626829101602308637537931860475599160347741834500955283359250846767738065029403953807029665392193657522997112559416910985354653832333451272213488913301187888390709057453412950142506566244202862530769303973901382752810048874643421677937727243384840603098960856369225682294095299796570478994082505774800410072476467536927734538163848014565915820825965320381114445215825210602597851883043303912779139777295939849552552909084593695871135414667122815263210624182422674562348719811883494129335368667085709899821121578527461231799779349045041638280383264742552529100216462255610519466949245424031270110390386921250737544630298448092960048878803375249164560158638930814543917193314446648431078567622040183833473076705023026793234406495596743959183792675528633291370668416525677946470841763650345669223788212612023995188071518968423651010496592362500018487693351289224918793315867393594351550703869662072328866089155883104303282933496095363009922980167281123712355707986503133181050900011130272968244118456807739151447028444175662872505234073545884939268543280893079947023673258974231672545254622514735572787751625220673055100042254803689152527893142293643146749280201788152740360391555317131708077770775420290577715591215387160094496684693991714623023047992752588201408991895279723266878430327082039175893296340267749923045813540470462771850101791872219039488056327513399301718039388405138499318663741037105336848067421149490633959104538369819332634839609531063086728193506495636758443950426101956566127317834936488505520560256231694459157219679403255388871522427725943527783891773004231388792800306715597405403964906731988730484944687606991542294338341403193357628247095818286961585876788386521463064796499117361835788624011351492204527136735206837460591559364225252050228358016970128249561617591908248046610836242420317384999309545126305779328875563163862626239520420071189134729984200049710020076172741052171896240816582518948093236985653166388611197068515758844861074339312522567855675356864016136270361185572124489707665207340835731059772183077168484323318366047051631654485041419067864045698272694961399276679250493650807632474158672925088648950142662117837820332894293452955802361637749659637038956107957305548085191797135622733615655822522468949740046116392170446033257193429838817288888575765619484882823981021896895439103752649472994219451952313685447483813435366551573082775940326019324277278034260802481703860158213527797488272547972999973979803911636012672467187432581239204368294019727987463046506886311388586873202597374887388884931467064300103075934179677351640650226480693789469832696092472353743098417985935802703843087741232352427816972826807750789164732028281300355039941903515562346693620088275500890256259564048736474951243998543084758590977944990637510217380111143471837868422995792038337802140901631152871319819364658377535817911322942643011407696771591239980238713307896408573227186469908267491567441829523372987119077797294868926697657631981442770188657193282774790440781077934773832749179863891242469393172648477048844917291969283387202963201821553969564187317587364421755283947758995785079218500952569640435651956920607810356658308102640569877057893411882652946089607171988180847291226048343834522562121394257415451816058594268681316568642133332594918228419389493600133567194663703216337874083357183383170573841869408542186051593119977931142919047942547481623182761348780413273641721244127020240390957078715153186408340453988761905649464694608910081152124483408244571120717299352014300336204693950571636188707914999653455173537372493679137902308080034346737353078444108979449566679626890758950672742891833065281921172464101130166751767274799706452273221010099458638779612154667114046869550074446380995546116573050652391856245863470325309585965560278599420934554252793511002664770621423780951892804273205334808061514120225201460970953362149333132862713498046960362369340740828086535174828729825034320328157032643717830500910655389146396666120386131358466841479332857242838149002712437277965113047365664976539877843347297294124544566659151970995697541495010036815355927435442708832154421356714023888925166503915933195375441983241874584612486416625781502568405685239121546287555869195053276085654581870252877541521411137667532346665032600580807963340458391246114313332584328779167207916343861843797805837882955716142380410283374581581493231851110471788741415100599330360936676557460579422118625536100472147735266883035697081346736135146736223793117296659468655571565115105144127752578467634509517024326607572578173175435533637761069927494691055036079240647685126040183441241602773815018270621206571101327501553155408079668768429175441648573292086567171890376211100843115182667223706370358875611346174526449495159543267194242641109426364074373085274817902704035773512169025436512327563067190212688000135244654302346380649817456464312715178433606760654596130222815459654662660881662691901443595873779019820705786816763500675619437130530996765107976834764479781472197793839634191926604745782587827155392425508987843093016321726049907587275994702802175661344999972130901947848828163897820873988937194518433355567120927925093508912405836880209898094550913191111043378336115461261536674077742567336393806610203959947984014325529696087271797487467801519688676228192712152805979372845523470245545029331795016199224260241000084863395332630207892905615085556286724612579840327370697600587926281964801968965261685580936341471865828641440330197754084720031729863254486718456769882208220423159099128788242291130205478166783636736310628712893368885067628709228630950967273191541532501624057033857697773521743456959576580799535012004208226037837135610711353613873717119745348989040264616969794153873660579771582005468438322675481132678735271530566515758906608571736633062483169645331703099787856018883404005650214822847895416326699507986979381786522801095400870138889663678639662152482745444571965187777244967431809766350105138220825235924358265487071525525401469822460853920731332862384894120234535123115983318677279354123168119845678622571823992676071626788969406447853497690625476606055857802396913069933600663906848115013528241720963445870018566745371417282334754206616454926732320998425739658075406701701435717632701895205225681984455806660568471390641492090520677039805912733233020231452681629947881541813690158723192477499172849567281705930999739779027030350215522419355255655151404905801716485804161066398091995231240083650789139757775188593706423992284754894838281182262710213485643466548373608201477604159326917374175860815613519952109850894266442232900317468200057410165527772210883653659031868702388412224138532463896792073673376402271845911060507524054459075094216641911727269341908450889605439466643045363792723354985614551054276715121618107644750430120943471156869038621517635530224460816893639676960007187274339773186527047354842171761881422307533258779449148489625205489704089522364154989629145997438166078772102783079923575108602272403404378566061696526113671517241271458752969611928605681551838018662551348622142625435113252537690468497015712355994454346672806239886076580435476065989778677719836841068146383164454936321922728495006375173872458672400132562942442294679087408245220689057644991481276996631309922134955050240229526232116073329430369967425046200889240000295662511341857545850553994657156221734187321392515593350859159201449640246178535013002280962494562765262131201625199020908731887732476809112073432262408973828528216448340733138652646165583840574015022330598774518065050235348048165453767658318837292800586984525812610583853870074864804633985703382579786724441218762291139878622331450311811958977284120731507392472828829393271937557955555183427693255858969621890018081407663458972412783827614231527302911332515316935905920992801606624868834323115438152801621274143413785103467901313744418083137266002196957162619010941334126855562996135162272277150032313230766601563340981960971602722315132345486670424056204982597932311269839243748307882936506633373725548600267703977564817173163762821889922545727864617659435278222240756165872066257701108223182743335565246454609678381744241061849458278417813848445198488463728458980795157126620142597151372599477430704408625232647052822103975413350180331127257603458081810754842773944561966780445529299721530293783282474547566994758615731573426049470830255985860029478368960897315783956470132990344595476587420159390849396764276533667233924621395461467352809210907250402909129089207781626570502525270679324458095518752699953547930437755278669516383615514929804853167298527647066646032870299175755828131571569394006333943118141652807052120371817619879803477264236251775741228778126981592804208582464389700112012079146875892082916172282887888731835853542721727798157670556121111225006627237803859864285205941073297412256138294474177797940203262235586431573158542013800060198294585123287911388918848183292548596441381184132087497104704536091607917309919321315344855361930128110510185738068973144875087554445126029687947694309583255197567742206900496876758272014891198285396555992453568233205559468757437277215913529916340464891343860066639050815204682023581878251025406216166825419342851768534295923880414836215399582661936455771702938573640711727100222117472458950796042840395906482863809454406092330529338787333196198452957226303192783470876879288315487736652397941434788324678840888691153029507086784122220116346256688849322701016978964970513799223650327938927044795828296113270709522293251231140075929183904045119492211546083120140202175948255363587627798103192056867819171590280023425217021021237479816452816431956789075486428746977903141145458582290899693691069480706276225571176419257048134099298795239222137684106111952039696065994947972185741953532719758079037442184099626239102434094938147287320667443268764898396227962457727567510653205783564209418506762241849098781444899515954678782772103887411108639033182512045711400380312991491286760127671440672554880589745170992393554174624251644961431292415592832523561644596457770849961657741262755071456219981918943146344760615321151070160204443841510376371384540046924994292545494244790406620381062193972587039461646771760596453720356363763285581446913808446462866867581323252461698254747910442921080549327740772769210929188560290935346866540716722321786661232552903248480937407936923869333496177628253182560729499648974377525641855598805319782197335660229532732002353282197355238138883525903699451641494945704716728816559713186293360904280597680806358690363608786484549312027546025170766738815061446299450142004563332012766204905167704726419591335703905743252538619535591154083426347387073228905073997415122351090100593889134025075092870030662333256067308809822701932853877406620607275314931309857590462873702749529326148903066949966717724204641797214889779760731555473330733057624417342097288944328265829302153112374291720003084023808843342494497736883133509446280376915499988133789024057875508413467653154019249603010453694213906152455593419760418777182355559360424678909587089969136679680744788393596826647025480521706758657248703476652289353857935994141193376664651789766037309196615926312370654498901542311993525011363323885898329349748436024634986806323451784067187127559885743666510641345709620377954028999315320492274471908061716927062866564279299195832548153353005660458426689060894181081204704389520813013901693876624910947249382482374591591225884289923397354357099466264589302561266442136954529405438232823429164792668109311694514502550251891922735307253824330066163333119182615317180350134956611826902368977139997558038585443528212933242245973022827553438613072875051805325531820211159187825193494204805962479735080213783470748259163852151087682341365682312309848727730279526935998797419165221172844358837258142795529337648554938961794270419482277161701820132920960191106838675130204888930912129889648341237753150141076665236827055756729073879436913817191013531886628387544746312355422043904586015309300792930577469460415992597119805901947928014195044976773457185369779836374412117083416517761106350351596067500716025076869449636206118261337035368599333939220559053381204200403825496106933105487188034703568401702969655214530552991076198978757042732439945040632761571555727836766759941930728099191037751907033733610315096039675049455432111220929082735714218363369747920598919536541469001118836648231041933023053935800164700580627004304029404552371068324352300855351529826353103203194623401896326172836444237757089121765018165450066816696706167941029450536356718007354994157049459226195668766461380158589341587591818733754079809088029473120612853921959481444433434567534690931111548430678019902484383005733855567167475766390654811478084662618315870034959066955407292931868830116583084097682910761098281901819154890978439359934914384748886749792762511241110745997696180199823320937046201412202727866780343229477362504867343283444596046667876777653024152791453245314928767084844484778999411242521606214672981007303419544780312925839232581708315743994977172684506303750836027839675821251824878534187586723947528733252712086651514240168174037620314801331219298421952853069668712955491365247528410886452608853581433313467057347058774577687596814515796611342880908758757155076600885229807834423554196766579964813268196367117666128034223556635699036428027597458755855951457198627615767257135408444681106172108385059271278809530003972233639402313499210286348538640859297299624242861968368140702339865070641774901589864473750841436105183131031927947033249837761917849971206054521129838825990508217850091892424521202187056023749174027450730023274299704365822967150798406097617759475395218798950807720621480569944590487800420767932486604703570547578084345371252037234261446759023317867848648703050339101518454179321211855032396257911278782662800558133963406068539029920428617094940734174999740653663712380021643824138327322991211100529386395985819021103442702127851805270581359644628046908771992134251584454760041077503177374205840851229183089690610991965871457446592396163393557039923552453692025082871795576505749197158551589759659796554206497302325084818038460108091469498610882496470968977604231201070685958694358948558014167962400751811397931986448946823026145408390789989977532794912391579042417277670706746147473858188716803798257795250276277460976892101199418813584202264761120766240306404129445369716083831125063190579101437263357092364702021574257896566697987196928091059479869514332368808526525193426638377469875477367861565898461240204895744574189638610439458528718472065504312646070736988671297186376834888242335505216222276797388556813432627998670090561091802519435122583441629879732870738989629304024869014958402820844121465619090200389466012227707071355798629062942832284281546437315229460898258878490784908807245181679392891580571963645012220272000054772258070200426360182295826758954559161160338740624254551128885162538583807729616313843937816986483569915131160116114171410232469818883452364570645061043612270848809612400715704710646923788368542111301923190290600419304861202821123485700130169028740554718669179806332533794383923446078766042704498983379126531213529475867271290488109238042326705879444971403619642395226451283960792407884899610184685487026484037332897329994478131819922274047738046492595036638793195078480443750016582096548580211605255667395164664558891695563089478926275298629371020447843100587874917799704979728627062288339690626066187679611805976834508271645522861871885711029831951901720061618045582411744449803609584676843855023645282607407262996435013650315838038596428602535323760005566765937011746067705248914754725332776513560535538110216483215502618954943365820769739786971425460765006792814332752478957802507858695790618652784081371900250743707741366740896993394278745880726480628953650552607926364808825230197991043987456941973978466543570246963243071218371749519050778571051486883331469103162750684575000017183218064139461025491011909996459263580476631507343821958435299891887885693929283604324774677970858375430840625732253203200969700966163570575650134026684422039656824453619093097901675774230801911187750111099721303524900205362267896191737951014021452962634930084827916569570764777912104347957946828244321470747337329609677423791563306646546540944683391350334473841238432021564480928946149805628996803856530840335229492228075548936690513266440284925946163445395866442520470934097900149374572382006251894613878078425032360445003419356252211738069898413574111547980211588573529994958505680309061491395856903025191479420008327175497482802258683032232493833078102542175051560698532969892846322903287219351175347140476686552761235902763339698069208660806469811945983137094869532769374749978018793217416302497504767881836303894665327820743198686965325065002079915095660789892370655526443588941950738574522802137832441015026023213968110321803521375250060155737057228287164809269909526052424028859170759349442969977580451130211094920188215944083407004066603177757090056966473658865281582326584299421536856134951872667172695266957769580671665818761528345373623923843259610520412782943982888311344923415429048995967149258394141532130854123057887111434880653795577481945469471175741024529331084238301264822666760755084848306241349705269538151744409549894097138700588469561287741003793321251526425968025106825228740693495997198257711742609713213172945868309188303477511831877410585701496935757184098538394519310502923717344483902885107669497426214973087105171161079606018217672641713861151813844942182577335452794365712448417051753750469332613581801959672506126254805930237334341171984411758427366664677251503456524291182364137034533614795879009688574534240048685503474488111909841574886107745813224217330282342408840584433516990589797133986547297915360802987250309735593109199961267237132699593722896277699021069521164040828421856866684921806897820059660898244827383962107274553539023822038846022863663477100533962530154376516304442000450005430638162283831110826732241813694119007057159015037607362410388575324984946725371118440493823246913483245177142312998109085417615827630924764481800550659798773079057883121412205917954331149988052316162606581056270245782688728001084879012106591990149343970143718784193965961649312472999948484099558994101922808967983077083356740168982505608251915559564723661281148010258711221791963860705846573263719413189390321583544733553623180150808343884933136395874844890321496639857273147057196483080858002805522085542325727064817012186478539601728408589825677154984644165758975281758580266598560039735260888347599082295169544839183876497822046828821442515170505909398747806693065966512520530252838021250249824990902705060574891257743178782515348773540538996458925164728761305216057025968185252097188988405348691260116521644401052717642445775499278914930605844981517190106492995300496107360597054423450592219633524757070081578968651775236780421057723256210456729696257011313625687138412375209035972095872892673242862713068507485490469540536348708031231953427944883870284873500632110175972666357719399999781953111986716786882705162967272936066535766741109486423365878071107394379541795238512770535525894488308856944062093534408403085030082652432467350140283947109193193964086588232790334147314161801513850339413906414734284976771179404142575510028031088408639656769759256821129642323231612152151481730066517726371439555611753410491313947366864560858965833633287771273402270497428016177980893788937288676522027763772699900915842350472053352753917915003819312236047324104117536488454495949793866116102190952073340217094546914638923092721772148570520052053908720116884956071683114890066834258482764463702388087640208270742655106321172141804971383920198937575493644228957067650274614198450279081015423230970472428938764574676383592600222326113000462323704178021794447303421275129128361975205533509589092031778262255271923626381926305739368508436321911711762913906931432247716887406509819335942882979146130974926791463953213193882984903483927580885149778434219604964587583391199908304844012494587433386745643466579381251142010608772993319265415977186440404595115739842001707198380211864203869323528874356511022114633268966832813892980659221559815992813414281840576782304035176757990734413532767300477912465401606848575200083406515848222697729827401015592638019901141597266052708475032725755489719232134499788815041873496453103311344311929094925490740862329100190338281843273899122144365836515292273752275751076572038457385829334982533773650359906385912165145517228771162190006717199120168417655931074517642350230185686746800517064226850470025530519643431350406077736051936869626326845172340722966843406555037221935508938177926816473892217266552896821102126181132961666313190586182421742725196143140041625426222884886897209358578186345699117666638065419365885152705431202445501413692747743621239971081883680277418903021761897006815038138478998464961857657957193393749453615855056995798751215084310353573952721390124138168904162120986704599914820687974296162593108950122402074778184187074509189622413790189747630970344087624757632041385605244704381978581467109969666048876559272089583741746226047491664429717857792485383984459769119953641766192817838726391154671985755527106697097818458335474215511096008951340698392508663442953801084466210208370316032290116595070802022510942481354796314066595859776041611521486783207171555434610019690665145290058206789401299254511136067054626715419053642455964824716194830542399608906479042289557270771781018731295504837173355494485023567325757707684001205860475338081502129936611839678520677523554729011974046261748680967589608653965846112763207539256426253946656346851483762425878938867940827322735126958118480708749934597341799361477872580798657911191065085155812691652934359867467187774737000447182307539777087681539562818728678902694198247611484056853374591212204444263122492526404654985242732386255481837742342037933637449633775432285977184444047203093868585046010248139608220309777713181440677780239866786650856011523500093476872344664104451959059356003554049767310487992874989046259870916741851898254344562595583168420926848402186222302926122250777764966310275898265126347606985501286920076588748966272547119315894720051456315141252426844310873709711073926391177219057171488023443639096368612938592966413228656044449868194392527373681588144347701757025666332009993970282625545500589491701453367594571267706447578044968800276499444220348151181620199209706125101406560884990677947301285345415577559176649729855250333808090205407891693019631951682979403514431866890686418258491549028122218586966265708063554497696364723860534455806734802536673227370786845841327824272291275202446447698493289819894476144330048809060188155466967344098282326671803710943178153144414081651787871228351490515344575514463030382325033754325722982234487947539733237283555411180688371256662336835395355719941815457674512873486372255359745381954295894528778150262588755610500367327777119937979399293500858525080757240300584104481647265248453413965603895018842915800281379496897282319039140128887195254572572001932647559724397469970105650243118839973577109305192929050865184518909398878010841912992540437950314187309738859423267678473237864344883504944979700956041579256119685489124661646271169664746350125032542263030020861819603843425459515226951292650612141302318924902484215449166252493116793225706828724696751866491788264943715757152375770567914712471579662734918522794317750186961898902700253253545339971991798419362839676425183920686909763165576479228191997660565086792870055246979685571097919197065116219746466477978448899972563208001660262134829204103705911657098348353683057956499480694166682006671273532596431996467749556118476842180121070175092665586646130807836005625718733006358964193114455892407805890108437925278809735424615589613691954814656824733681343604300741926661023670803716032460757480734419963169243234727475075841536354441478188183035562912982762124497070458377402955829399110534728325539704980714173804371548044470192832688444854683357464633160380174615563949689878824438096162349770634079110058790687731558336070977317362270101483871892400442206073492965504082729175855923716910364350910395801408186565430843017267493167716887080144141069106046884403516171865037932246591411405288093492948010065989760132059276597250098683589843802757631348492876996823475748300034528228436741650566850021530662213552972804386182568606319584395522550085002362840085539017264031803782168715232950469663049853567033094290040838305011687815553975143132654977004590062578333924208184066055008427934350781089985026662291798792917232007183039346475893437934408282829561426815785448021600147178151368708522607730195677302507803250911550834746598752429986497092265109886554312855924049629150236512514930887873209757934925108946786742053740930963390457747308014581806573840205429867914575255088892122940988551640504041951756038811372986166338307162596929450087389662250689356327803940275748092378200301569830607356136610692691665365259885946077753336091419387222656349050026618402222420723611242645981586715312299416035040961898727016211645079971886558147075690473681498551034757545729557061607717802913257855861959689399563054254349900233941358366798717783187964761283394527299315822568940118861167261939106529369030057378592085086147822031921425998441534734939817572927641641391398780775444406282582806397729293674396607074369824298683943274798399592070590435131595378428700403403908012282831360475260594286626530461114738147628343810351822199584164448958293436297052534921086912636170335551111413458350653009119132345519141553782938513872496612330173287109948343258026287952040978336262048344960836907348204648128323735121356862903987501698000288709745286768237581318940218717831082476884556467123661618707800811215506309378820926284002549280979643527867504633248970835842187085022714062142491668762301459866301091163033374043707582961561130206044036961359578550348434639295669226393145276368211146635190864304558275844907434011079528851095909640842727269864069967497907054153301345965284416661164689011213319829835393824281437275233372445587235383773266674564446566529471108672773165872753242797455165433947510301791129334282033084778802507835473570007964415058866489219104119199034261971226376784095775374638585550046908983617623952503840344163101335795386332519262593840554524752861274593612697022854090997420692462648764976483758284515476211889895929574622905051505790731373643266106038238115039968765621138126267246446185142449512976371522511494847780850791177631689258593621334136821997616407690683085694681174732161915407828028099477109089379939752060941455794790575946734890648625896724827798614715932053777944755199649750349094537841110666117867341415443396591995046937417054916304440848467367550816957176889151205259049815082293793652875314415968735654496098748660030983666229161492704465596223636443493830343023590674408812643455561004925950306374598944387901831801577796308285809770246274767434939646548231875607020470703752721750151297469134718114547998931103631303021917166163644893289620371366784048963256632952204472483301224516464805045483751715779563190257436083282762371182702040373862237797814332735392706174217816241907957717718446958639528069699904369382760877610398941712754498757799253118488140594140125118214816842705827225185697808211864849860762457855057347720175123939622209239361541131729686648419282596053773536990084849713620294679282136137461124490248327712449094451440022058235655441954531947334725533453527108127191371115512560930498187474919784999509167074393297007421261022038461601074465358603433091196829357398905603601076583279063873151555964870153393497145839993688787549741729430491288746591147689007482226797699823152301293411866966532081578265265324260340250292634459296850369304887835012726231792928793755722637289634819230778513474823415646776507444462090738582446926924038275404298732378188358876714035626412916740440338111791877787347956240625482676587937678225961254004711347496562457436777774225258379651714698741267097176622145956195228869167102965027995413095786036232884481037097818976983477486968151254418950656134390233833348756013751329009337647582722658599858744388435779305210181106429590162218786413451769154833555570459146527953978273293346882240540558351697584986318149565705193830707536198742213474925824174304491469561131538749641345463975362485499475977479372582808196547136083845596315497668918238153722673766182253946423066504356116212386370690827504967534436812571161086450599064624331585625723082635932531637695550450453563028250656196191564629492057644865872063032142946673122217679719275552794823630494400067418740314691216209229138362231453833211403935255247281890390266371098291785118359690524879597163761949648531111008831891325970360727262061418985464576691823486448134444152065249782548722976943722700866635804084503432826318488685925189719960798547104454247539624041386687220826477768631409109952020234968175246993579861438298090629046950564257541674288716830404123234641294404149530849768927781087412369472900057236795600754743350460231532872657552265337140235421950861939818116208220052915265099517838349200363481121123784384084216083104281593078972144970185655437956664722317110247036991313646803007332908026853337952802313304009847442419634413520395282893098126485095369840214026429557516181594753141430615555745597855166941485648931332617974224726634825312967873770677156472602568437814487642662868447752195506725255119108341249559121163165868900154974280037516508417244468290179830607159662573425504471736919485589494510359873494727468719868068106941623385484499332076084316472199536688656749334008394982060685648724719860751857005522997790032480447301928466746659105478823352755320633961434704585720185018360511964357844591014851852581826794422259961181970226695734571387742157090214264490067517548542852874267055776418655848811547834857597914044849146809821088172065426960299014116304379518045160155666869690856030601021458609054994917200319965893230908396097949462448513216812417395126185750766581373181492864323801139846471605274986741100134059341196705461853596189135737892792892957349543374833057150679309854737269970466817610062706820880130824389086133319413823119324898948813596653580680823902502633931171168267475013343583274323004007790891821129451919799480275861871334759151558818339389998617963558834254840413420490756522256264345669618304441436563744492926379556626744364107434594829258237342613321335317840628092960024590027127492572983511331352477729790195937090142245780021236372818214232479010674988305402520958841639980044365634266157327940105515657857349903313980382452477890636469477531995126777268182086251834302030354846976413181020675335093671100227575946412650605012198795803351289087419612004320415789149334273603313852253399804357283586482675689224024583601773355497732984126796869033886440271605996030147112925786551041248034432738086244076680377656610275141276290183835966959683203712845731023568577285710431761634481735479324670334329315093667789589475801467054225819303763836019186332941014635072924450821695714959094718799974133866191581205365653271723506441248656890849277704231949610347469412337979242344869931899831355135991091239752033730525907498400388856197026404224164126120550585049625209791754755417085680321908917674701112187171000903708105981713424602620243624709174058290258957070395889900166525554015034683522535832279792788467568294912919951037621166657317836500185802298797668680968273684156039248131912912938905040021328902658897392495602429946571409292261065867453249603572366054801779974956638597585425496984652434740609007203473839497569149314011079027013268743299837251059722523285135683139729455741251626608724168405269042425929275811503249126873868704444980727056140307775324806851444714784829926691890404282100718193132999119798112085318201414550095887731113999626446168682409194415559576172467573723909063233283665736717069903678656107703239767426104194567342314922302734561882822798684468823405088207727650490034072911466902681823761008556511516495335364393550882566584616234675455073057126585216680855608386586627789302709608439568996770443465978894770307735225017724705716870568236330653940904576024066063133391660891189078709259784759530014100313306278305254966535924408636699751521910253112579465437931479748357679981126992443531118124166479230942752371677172192927709970001831579486177472734637804785326364792137078635082888086346064281220883467748850614094734965580352474939299957355999615375458795676412281479040393679162660743408348420333713313319183042920161040137608099003922654208865150615486244408751761671182516888340650686166829459131702485553336991126932517394318527891467275414913709172974551790564721447625453443686503045694400727008096852217967875928850878201885154677232527961949694732625482440376178203714599810092951002867142799786968478655577258742052029650210323302733507988354348425211117450722852733394028595929532670820550278906113952628966122627545772043696242409497432160982650352050916628194287637835176484713374042897151538281370260800559070024728339690972598816315035077501921231694462333080843888169909944842182312560573673654939675387982270744314180479531496985765581626331421446184760031983761493527751316348929620968452352653118675541030534731438510990442401566643406527831497130970537273881702406527488940314621152836530185987967532532015489319537102206546713027523001660648106743597105472295295153965551359738953143823391500274987312224857625032718064073249060160169555006371151688246437403663845074121488843193001980612900983357552943669044129546672427579618247852620727551706116193339034459730115728177239794355387832306222761951519452572881688435049425878372490023299341201246889762791663632554941256104194599404383851991194301368167154522869740585701752575887740321875848567130171947497681438144031275396046781763372186019681858495827974499535425329041319133926451794751689009538441520509799289515891997404485052852107020440138786876600918636769560095319915717137510932692031825609272287903817957108430347677169764521043068975549282840840471098212194771596274655207995794920421339944706629392055582537091607090813906120301929386134352477928125249019766510514513956856678536158221237885506660045005697057532801382044031387372606469603589798889612646639631424291659581273699623125754141037817025050597380619234848624021749960914656916735075857558149765679977407498241119643752765448371115713792510769034158761912877795415022254851306363552140686885314827768746789741010357450610969289519271500493651591140743288014227558560475881857018592532638508337212898217513362626055357922621134535438158630014403288689095288628528529169248299023543966685906769408713176680372876189096640420724809527803895991070651121994215633662373275319150055033450950183981703051556909695751813104200730735594218795980383640233017666208737090713368451499236905760533844370940827111164182315741778191013246200588329388985340263406788444476067631596442956426586668794820433712840863368980126967477191644384129232661724175555633529393045647889066474291081568116690932800648445480855551096423111428734467319609954013128122779809631719424881382700291183521715282591210672657842499708301703574453694459405055870709185734376652531645212521687090881028741301978019254465189929662549163206388730261240000948582555340738415660741679465029667488303722307632981307333804159389946532309732164787570524060197861904644736548709732287992452606719284206841040209882100813735512756633502954577087506288769798709370140932556004455933462940685460075574360049038623643435232079905520884790335930634854654158286146749144107478890657463046170268185810580173947275023349701482509864121819601866844390060208443016149473971597358375197348056018345024703030560038622990025602772104065906837281434406067630547636387658024017708582939857000665169322726116074230014952948230945154457452791325724402559108793129753651540025900064945854507668759682539685651170879378658575993963620181503524222969122383022239028112426498489995388186542682354782380116525510740835917660071165818268597797030358406482466212519224114721244676323816881517640386355382216862824033134407416160787671512100274630055677906061033540441889877381469607317002507769526609327616960329563037600681834426634501188225387936738805236587868984298475272470670179053778352882837452592682120354702840447921261938893003058881703798148538907065318079578330425519450479470382896880425518581488171752279656996585463946361553519967201165253041984856943901870954884752643829145842392882301960556526147134508643258213061401215176035408529804161734650080599576907276349231320453599142497406062909451173869219373696948894862805165326333594429941591056969621868889686512778478352071991719072014602137118026716786275731690129122685250591703022512157458232359700873438147136675940309023501441604141588604115813748360196378299453769351407148116129754937398198094253666280280744433644366775232284870730342020317017187170281087714484265022566168300435488606317709337837076922763175946285889843565917320799826242488282174525255134257978087591875767069849357166511942936441751597889560190584600859684000433922608067421401558826034492012577264906391837612257657443010498141750281539082365661422323292958109468977244406055773259166879947701456233440293344660076018698456274962337011657349565328643286847665596311151494105516067679830798668486256385993769607868824170362637347723143249856550193254735121575884969677496865859653824884997516516414510346857002844740627783863532666137768359489964638804343227054824824527812612846222624719116978354039099097783299867670227515570417271958942095946074261440746454865325105188263641332902504211724540736171979826585665150868492208570790989322904528727020599339536326063637304227616321658664615939569802321900707116740800403192118364378003068184793325427815674644269887762498049579204263701842193222142765288950840380706083118236133407769012032629854313938515727370060518599823023362934756369513589746032725978377863688294813414679384250773541857012438278937728852815035719382708623368712330462554043237264774984127308970550452512084427755925030302423366221283380593526815767108808648053899519791103062865269701433198234278449781586977758047767639222551009343510192214652373923550142141554369896934964616931822335844935131891950846359609453968681730464496275678210844318263276665886324613690036164300922361419273714508799151394801332911718807114359962637961593561089990853075598705665776751348306299924798246915981018014604449181052814719694978468017035436410570915183465050790992114512199640963935941162471871434394662581835978906031964070600486166967635649691934574708245755148268580348145020385613710480163810290057708844006257447229468233393538749816402760280504143572721925359381704718178229535626107879318470935056436781076558139383969576338071976401921468342386502354203998872533446175708056013328872900416245450457899386310786243642542971292109262682159847474629100221766797808812882593960985860102778779634359599419490028480093708167497348458139589950160510875077635508624146603209255276382159627329365670864682537944629140999642513196912917425415947801949171900655549123982700787374434350070749385495025900016617175255989097138274100129898024984362027330770216078721893435060303620415866541731370822516746106955459174816057732189895726147708608745993559187388137843220776239870364984933463739054119773406765951248806140723899493144179173124869342429228087632256584082032289094816332575381079232464476349434573185575146671201007137809796735106709189220413425134896715939338343592946517016120536014243613149395883619475757892009864602166253819298071878818886103683979471855523751121231293898287608068814854848810554212411253459042779267872297346683358956892913312609537545728822514129590871253231568391931455590783351761992668360257984802156763289349591413582939467984798001211168026774549881029910548347358577139568531519880465782001767468625124186059675411084079865722635150500481135030914678620807776990380919645952220204560456140599795889423123214004465836329131444454490523685783351003043686070094774010321233492544634254619129328435891591673872819810005901621788254428351867322372593655214242811909803995620875654771896778233451511565984700969778727083703361535465050589860405226192275753232392841038272982064525492801744035638676381540417380105457781209651523822121627000044754177023947164469489150759812055779474003764732403231485753036891568405590537474421345149477223499005449785648471540418620369220765755128562076337786659088702007382632378332588845616713785919543689563450541625822837083718210496538511642928010848917158634025400182897588838979283756083972675879519153913479315382667681410398195963392394073179382443984812427785114765040910669239272581696956811486621499430659840602625880202180828248037351601659583164944076569719267153827600359763073514128953411585621957783334239995792137689310850406049612883945870072971751522840623010833407383044088181170955095414661584335185297991385645706821661885866955490041924765742665451688035779527150495488825389496155509071428446307443852942193025448631859593024672613811118740518425322523032877909137014276731692273010038823669463383898270628147572446366390639461773970595261578733358099925251176984968089965836231858414500082492629311303749935502755635649159182795114731073275887611313226440591507217679517697441246929262750912304279853682122004120198201348433182838869768501400472287849897296667534782360521894636872321819029923092710798243834606331322398882183549764481338279759754774738904532178721430263178739289861279180554541070810312639648778237492020654746439542619351758808756509387949045177675383907204923997199694140308620622476475256183353080849349907948017763233142731574893583008221732628895708016667501827811107220994672465408946396037724041119461614377266396933589024548806633672577336370165788947001896758942033684768148591100552255652838660800960490774625631931466305490921625103416623886005357993863409844298186102091028476181091831971944986167984948492200221143164897426852135411535966884002305214929164577948720640897202799220430673605879443525312293676316912245667971503695170013518899136181940712089919860434395461777783421187094985466716714992891898908213041983757507515899092225002650327861090322440474941821759295898533328645084149347691820603183166413576717396375971223139073779538968276217357453043258947756586922035034570382210233405426083196476483529861902154163040724856155082676999327303768719136889171761836675557136866767647853282893799562373313221055889861385027887758800813511526330118690899919625355559002198844920629748029891105024869594823619763342091362853505590028302518141653909256887900414161596877680001776048199488788213919678621371181913252209261846076658300821754396520954191648096889588362603573862842036517880005155873730962175490521375895339879601930023197785319335983608298889038218795507055191008821528598678055784931733736319361157882662509553572122240278675427698526730698713795419066557936658862269204909969139777834088692780423918087276653155844212869607579064385698641870067826722633522426982289296692600438057706761264427097551406622758704418256345837131481953838028659383447196510092301605023766554977361034457398955381071081128194066762107484662446989782796484445193680640745489004839911472748571629992256020763926366150489471896480814794169302775082555638063494020125803108190074746775534397759753378107875674008245324127902308163225267693792069051803467919357439189740452063245861602154752117730894341651144408675145597530336988839716181089539467428062805948383021624718808921444800916316710090683991687140194715987251845607852332796376352533486246176628722242117396436488202313123177675997274964113647375761586624409329075378611470300121890154937115240375152991599528669345739066938413960318888893543272376002193852659905886829490634541056874784615275374567604153465160799944318599247832935458692810007976168162614101674659807562395050245115518851202285136667299542890849597753283176137324071054341415158995486297114044215403492180075303605869839115009793418565581569261948917945374173620639733268590783786763560269454286872123615488850633794563505728045704203265502947057588316894370425070594027005743319989949182169653378303656868945560795198495661651965959193636423380787509634680046885860549378265794335528639555828695532382848662341777395323164616345863563790015700370578713006642806018985811263276086399605728226673270955382959443452494709034113849926217187033864185920116097216935981447632073694929766894687018734635429939739779423256062918471555406209991523859699718094695101404822278764409317116554667841240249901763786550183583504546383000780075302527517857286951240565645930675440560177206558526337226465178612790730375953324101705056440882674065871625455500515729892710901745484810939765549709895080750234487824243893302412818478650939704566894545443132910255476425067211082256970294294904067297798786531355761456805312900999616401816364975991754800688449125843588157688302455098280735034476564537629188519016130510893423168760349267593448463696627655763638637050855738959963964956721041247762359704485698369416548830530106966753332344772060739696199562916855915425964362105618882275364730139529043455752182681727518244499805203260623266500360444792759210965339548090985967089255765159113983331598659811390676158087692401542550646911055146948823521940747446958127151590078327251877266865081823726534216672124956263575466179650329235631415499930675159665970853299122305731487589712460049316866086903859426280352388097405280610590915266922322026103066187159257619756345575821232523667813644712673133035833237472794327600211551819634346307870795735015977052064686291403554090834897036656772136632042703101028244678500010971007171254077815255327111707572985562185640152941791230792578335746987791324989045684930732123642174923631503181779674529917191561309194567782224423986342736239356876402607858804357169493893332912329442706342555465292840368469867862481983961094566015893319786282853236524183616765232645185184590613927986785211029743923247759674901683473721643292859607419654794374556323332595227429578846306890021326000183100375602167117742391623692221413115068056268578482238028346132361633276362011860894662730777688505020051147365481789970839817915869710525952175947052976099999616208438386351220549020422334402922759439456962573169726526324476625445659567585512520705531821462885132380347600503128396169780997862889019548315197461096776416536188697598605428806712206421724072865525971726149756602904020346873809598010330811314717404831229694053454253669192382361367663177231351368687304073060104637431439694466843802844223614572228148214164514931510871303732932784428326287972220433697731819679821008087818207494569450441602734434901825561124467089975518193041293742153060235657217616664632038516660591635821202399289497017034422434758328004936359123684996476439231586280091948548613001474141133651912089317268529515870557357930030496789607855887405442441543351846394395458627898347054845978097723471130383268174911268516830221645985048600200784620215789024451610232791058939979232413719787822609848047481345924294290706971751700643025058018552290283953024463723030492991499726138275773725217795912830292591423558289325451935751177723323382089670851053658048999226597296936415372224443145218350677664592417375680889689562465539935153606254156343902506745515582650462609654217455043037239716041514657680652310310640947286745877744371703715734798518078571338651521408432076067419139271753056705951507878744292589842973645235049325546952718332215719929726011136412367480445753319945064163389927473182469718259058558084324802999287349507509702671269969479193649191687614353233696491007225293171668746670616421480041723774170469789782235801514440465624243935344020811869155786157201592616372431977720808056277162014668827733314783316408314248561573930838957809249366866603466072437216172085826385966038569939859204076407232149037644671644913773174614806872037286035703066926381509573973151684922983155125941920267344939629877309369507995267061151175113333838363536083620685514358471107484276699649449506329349148017333313230468650545823343322581510191148309606944961345279924963326735248558733189927102858494086049268580264675620785764411931441536074075619427048973001108753793516185088510211151787110843335914102014535215285003932651583557562585517802610199049928339473994182508093432356395138649304356500102170532993426273818007928940327872571253296633901654645778684255074780158761929854173118578522814903692557041788619562371830894379289425705979885593547281960544715129643465929582919839334758196414989805753873533776646120294529843942144149251602946671179014055675907733323752696244101161771359659829962477189890272250145782378299395016715318747958454739370997402987293558476562441960262704858401159920742733756969460815566386673839425406622719319190792137197281677960626488472384162904987654955271649638544151745696352683153698457166490112905650745625791585885272764321860888919258991143906904014627591596045443486686808148468074878311849726064293016464956639161819868437330767606423062802874499131526380490250383306797799286140783060542490515659974133798437673025646564314899087808422013743836719761064955418183476233058947507447420357557334521014282956761739968820840756865092854213558392695102531513526697872464847216347429011220490140156215619031316198713992882488526618970201941668711011044748362325277366405964765026840893850875761677588440978747455619843474912582237763109169349885213391963211221388398777840592478687990545550836592826394500693612676449700315563800057626274346430250884889135896278563836075307580320877492486221491110328535539563954575428817480066623371518034747580639061751189483497953376330772164097038441105227709380320389739225551770954086190535250704745275539157803010597043646604000980846011712960593472777301969717751775887888024436564886496130989594105404363938788068525906154294992019831537388141979663827749216051380892351615612016061859748609198775474265875759420298326720598409784112707057752436732234610928932358377995696954621433116156620925187902251820395037453592836525218131860027126600541781754047103807445293253303655325070807755697419133312192192857095627059312305087283809891995278954930782453878266240758170054149693324242116469947709512636055850593347687914448995841512590083493150081622389862578652838005303008656562224885166429404625844142690096166653770252370847485020627204579174233142590792409712784177503875656912934993595465382326812852569191229914497743701663196184894692267937595167222368662042152201382945852265568251618853638033681181123319554222421314023119121750305866983302844865543696042484434902022316559649696566882192163741385038193593356949916781829124151655198769441029759271265122802922356689988878799164442948030363700006275742372317660622917229091467542833009646420034706840956426836232597881543646964571854498646188750150007156386084101622254349431892208468198686970985181131726803140870811586948314990374388235456977623941364308786575385224299106313460184060107437721221102429595240281011286457743889948562552522103533148474946884867477011369141493920908889816142082480544797221169848566918471864088261099438385547113838841916488314213032076756981306508013883910272847458977233122646917051419654847591917156969456181440125706027878887786196709677779413542865622992022761297446451598382512158631654203478021662947554190218488411718214949807424252669310612371766383837134014866178196264035012683540192081370929815228763511006847840061209706855918272833835873131540958672544700748688577981836554315719425830639548026949453806212322111647556909052840142090697224644260486764222658906563467542912495804187607671648628120039348717121291110264082706114950320666957275103496648957256274358025762059957645201176114285759440727034744011534008387054136632566639974008148144885533370932902206679314404471850628884155226375970209981480626902037854091346023066523789535202578553621808272777652266022982908493831052157952524528253984135484951830502179570610663928771173583721387722279690094250240927458309224363024546416545729202368114362687451152917836362639905754613571821687423591984648920627006963055414048844927673120036160670101674922198993246451108620919088378708497280531694678862987706280223117823745737510156571727556722360438887986095263114076160034166003504317894701598640495478704239419877423664997892103408642382350067893404053258332573506678930259936858518356958215822839854511605195973841939562624432546896275421051687102051347494076647461421636555147306323437400554846734905209119870294517857418638211777120101452984799483445947214823887317661198172537964248986729445496190955421794316111237661901555599667647339627601734255042407980884456164639967774278295586109182588220780137554390976005401281271006003387606419515676829265085281582274365353388261863413382198379779987526284419114786372140293924838458651631774990121251892247599260601937871564701561985384063677111800199177389355737991535113798389849213365568547548422408264420117082237210755210726694834311499530251343874113247011228415560008763602259378799764141812423531400976868951772308462589545329797467484298822901554778519835857052493073356479591506565353217671311894073839935023399008794324491595237886355123340898060412624008357014619464837636193504352501765135689814219125164431578846782574762008018852977223468910344067631209123542391874077599576336151240950562438929446091920021054038797848267683999675153975710765169831602031948788562600428285542775068406739456962117021308441032905594000684243519762379315730204257798983478678382662099581114803025459920031262056954175113638929245298628480663900354977454572110180153734074552275522760310166586781358690237988650770604126431744015678908352342762136750351300362336603500275719896304884166461704108965260919164518136636500135720073675736173455475546162734443998924736641255708479664759500609581730110472469005023761664623617264286358131885747498045604853858769401259799490347517755948915017725668222396402391285805221471778415467603238046752891977719539101276009812340572359035428584612937133049295160101337191317392115321205310746198561166524429538295144612757650931466166720972696298002956898153450220872652508707882273904095226140226553838787842099989510220320311918340954377532330822249492084996766422440166772033581170424846567367891965267067742779633898358081410265988181910486798190492276216363152742627212580998725464161234116160797109772156830012101874205709197401002867808268256023523143502678232891736523162479293848721190221289228215365019094405611226642722407765311615893229000163791752164398001931435774113457545375837610979119089378104013650994098986168023139522361740443630404688304119902467096429251768295104490645219064469548389980535235702514382071129664764575592997930640883069290719926692214829306276892338908376406946995964927549588107512928906392875544609903744290752074186928295639559147047233006884625282502289643529870016941178242886617499250796265499595724202173367586080650433035196751023494031664751178632239648763772792175688441172657089084389171879740787201586882468868937726326709268925451497908948040100389619335920131522541878269809273013286578183072435142113061334650961135742915975181344872499624732721245054305326113123170790527055967326119970565688951636678275971837154234382871827095924231580136486049560884050198321226111882403027640318576583361657043583937726298599950991356167592823451233576241579150854528517999923404567956130083450769695930775584494236835732481125526409782335325125553972081265105757963230409209672655868798867740582776238551902541091937202412785536018567746532343716106372650206600707301234437937919090168249375458600336376636890465610039421936913350143088278471482469786526199937347189212975587941812370330920457665729699584588064335737275687594527801879279342466981932559335766661540766677132676533552466013231003501677892845269320759667015360528130548181529820617359235455103466000576104569345680199900529839419822841914977537974101916332903156990014718719135462312861952767042753812021500219910458142084357192111810682232480686380456869276365161978321423706795293043979490016778903393324723443116272098478414815321216672586378835610943215489282305107091184244758935675757974279317860246852974599869761105078018733083686760531872349231007948614925092325079105854684534241354019590573832923096417891969592734211771626496694338832508193300877456803556920770559877912581980379834240539353259667943282323084019970253875675857666301680421918044346272165430799453393561964107303502750306765616944288011991757159224208399427117729316350278361704685475715160124670072379525581674774616042166193024802125637053845010209931589549794964798655618017653514191658268021738385637808446931809332451028610493783297805331134236822049598148586902508032475551546559064591213830360309440555026858303123716062639509581548810381134041812145446410748570821559704302424320512841710072288631699402313358938867063022963025502290231347941370071966776776916964190159645202704162249563074128182274621839607855765453866575625106042940121857309786147763653581131384650451968038668601474973834373942919121498565938809505004936046171707932440018694913076561692440988215806382736326255943151083009513694228531268317948210019962517948344047484766042005214855200070950372651381534030853402492263360726756844215233020253240351211534154188563439695245827687719413533231520618242219574953425519388139898113626214220026232482574451257402059003396715410916393442165610923627407415341321866331123989857674864494366470025906923170741539366026333851392102294248013427926940864997616676090705391984571425064182884301483425250570847393429178434812483666928155583425691491761388984357842776694408697035579925893998962258424252910126520944999230342394527197557918265333963110116344696971441434532607528877991442208705527553425256599589316549086508047409724903856852151086688560795186194883914649124843867274191387486503551076007735939125697438490993940181437242884395920620279653698885090870934395911965856911434785868060849463456267464073191614756813707948911109153166807104463953375702538194312172930095217404772668687735900858216466987738649921149841493332468247129273277923186713283189956625063149047025701811160033686866047791077797073263948752883051065085151784996101706054012624491435234270843280998468056851229204835234372066528669838049904324371102580134994451287351824137275182680820311438542573254359007010253249494616741317650792072961709228562936998886622930789187948042871385449919065183516989674815952029026877899169804247099602291897306690430796819415982683903861015736279567410528654065862450309354730961896292678504633642903198356128636031876338411053480506547693661015357171486895372765258659435549272596568451286188335194156580905095488880820834756899504001533751859579618517589829433541170499319293242308559550855101020522932255981306025980637483216220466565097512961800807298542832301665370808974403939983261242612787472245725010576359221996324135894454280292081851558282662122634422731610848354710921274572434110398202297683169181077527324356426018553377294708469300950535375314749758750311855308340292907164938376874312459754085527270512435030112352963419883659837960967740352638433391079003879147745682875285367148931774741210328993716967863133209160527887064314967752867638686609048791055155333505499952197332389081534532037066494144425160304209766611262367627888706741487427461913174925136602639381087464843575026637011316386297183157495216365476951674125270654956251061316588118067401601420513112439912883011943672293360567724227830536116589617587637061784419309960949042924685707271963532867793794301151876989930722415770221852499353961610130641843439173710490603684418511569264122371406895688613910616563275089257255355848620238799718163889791260676404951970794141923267084705122537069735524765211262924164176155346713285321027056684935060274236579008443699782249291894033732273126356051823092585531179202411417571074111864153353318249940885590956823739247002711606536953085425674913196200382585482833463366407172884723051324749839068862232532628095384659653132828325967220783267702155754638403995008976027979219004894018893452620269486229973621026690802267130468060076171498902864918867741339948080143887368025680151177767417656522598976864207317704806865312919790981064172688438105546512510920678658688909203879640019828022384559771832835941894578477740377032384475310717672135321614819396040531568377593077901964665583103559800609519633823477061805838398320465465869350881108305007287398418843136628912293056983275185828078752031203897652107657264584026485804900087228048972315767529770690724852409565229357185980716285285267722916250412188314076450084788233631067937500360761603472211135827795688895567372750531478455246941076186040171667655649149658133391140162986106665083210336651384206516355111968468640362986524247696543790804741956558317929721964216105935003642148000171741915547730196930327034519317295931154482908183326944598345675662493936672263758861893817512429269435609591769617072595580491132445955179475358788101187820101344508503995458896307214326212761992879680375076398438931981849349057552677454892211343944699127584552867910958614405839931943143880007961163107286393352360323920424536575828706357009770092739503867353328018270365066809045054446809523544512628200046749017878019864635580697551708298604826807286113661170056411185126198431691081535344704077849033347732666951375278385233634777736432420890638334537279279799908329294261595617578430594786377221091662016221412218380830813522143101033704462367324223813188395218768056896254278603625610597739611712098829867014020182098716602478355889004926944629698371440753974632927587977225790855490885286482614897140963413933042957741133007538466567601207402834649672666497680810096033681180102084021659702782273784190957137620829074132227099080846822800759034030383756262976446452490653114159681456871733567182845909787535912316295983571282772377895812026002622401649928727103158080160657353026048037307514953147213539619958173420372818601364214835861138082783814539129917691913925782994411609952509790314880115711491868515890129902460978379341059159260195963266453762267336067700096840670485560808909596052758074500206228284006417258481118919634216426725089892833766709614659304890804381900986673328675854873918605485308478031509042549646898850437127578912363952257705099227804578390677465978285096720013771762662104924409351251333402906078167637860340714055547984328014248882867767475832891830913885948391304415113250846932308956094052635715365196383118509925855419547758976449932321209499506794627510126117848245901497320487382609032590236267167942625141153488034139775772839886899626270944633917061974302226729890311017352692719043610837037361112425212346489618247381893922475716145485396036507659899966063453291795472210114991521697116832250677845695968791111112136958232452194316243035549926853666528535919634421942614528701600851117942537926094655425733408409951385322889376707443056598588339862857386154401077898799513938581500849320817354396702188203265716238160635489732000190709129107276761895089627010152205177997459430259900588426536506166841365120628710874247103554037505491780978870317634669577737253540425435015362455703689616697738481475680214729304622233119782353684867868230859466759103104754140413915310091372159230855066755171874187619166771414959217540606914822611313154508040834160591549287570611905547467405340607863099632641477473995570368236712277915422571217717610842579011299916190049053034538069265696334817045840534296577012201146015612972971127208759807924186768018708179321649743915043088989212518659058581609880854023167758124677263501133923177306268809306733699120914399387306608225406873801278669115444077524327591712241118699963579727998932433711669367365142692608310205457782345483504377740906525373959252955963352535828029814319116457026766528401373666821933671979252693901763577865013701143759842216734220814480854197530291288273995332930193569451801918965388386954841546672781777866743285085075882937580933742510311816270186173813589502402602466659633022456912835449757682619810140949871709830781140259908205806239868382989972036023872843244105824416885389939342229164806768647076639127816939279385666223195953939196241963218742875447250159627513889761709029827597479126878395243052296169181158533947356804703976020172427888457126244735300410212799040933155343131971940455765129566761910740912562639942444283982228179174224942347557132976109484556508518878741637852975320697154381520392166183224696484391634701842162900411084410871046347859117914150156149741805548027457312159582646839883951712609892967815657695873750813532552707699993155414288490835730106382773267887985221965316606017712051583741964621587581878976201456964620819309688379484922008780855342745347033083401935165494376948387816251571218361773083147455212530176049276249827545816469486789173470368420142504291115626486461292185023361755890724826528127484158562819114071876527593179946597432912284635629924483746716232054113777095928173305480412464702356352705419092947769575614924617669722545982039613821432912416386156771131964252882644127682026877921145196098902991854132662122658175002515402060050315168730153886925295995573606055242393590254226521206636404496500353746451048159929673389353244249805558827372308902333001371243305654766293286196081541639046224928057698246955522521530088885962328740970235436649441399764700739976548886787323667423932054593158049486515114605673131221746490331528104881621803562060454838983588134699325347825048400104336105322442816488278346080570821283385498971420182958340839611472807516164092809312361557936276296150934887297966418596875581932116607688536806044579040076395440751591270231332152838159869620444011263384578555925120656319105997328518662249122073498059543547798556778037246906203596888986229681311688143775674929323039011528285352638893218956837304393208081466452814820461754540337599409099126086725278858564497369946367413145551850626585749537580223526858966931977307908779445358822752211975317585658769560975604832351598884368775615779039742170555077171339680809169618922087811552939851696501995854530065451226130226955975703308999655051999737286413539543434800536316834456541459991824043011809572249555068087561317848696295282001363166850861704970013520992094066325410734446972610100260127477725623955398191523286133704750138341327249246104267010081115593007261865350119597653145471709646003004374078976603857848254785269702981780725278184505085611784967895629941253384441508151217108701104618399380398851831689701808945556204015296776862708446457901681475135678406260211295211810167945364041144134519057830059470977188802592779221551711845328514201592767384526615644009380482376346884847909366049755577288271508476709153336448746116355194633191856109299479783838234607030083708110459870729920043845077434423202069938432044205237578366893295095332242597785895602139238932397852334948695072273364482623162491277797037484623006113284853168514781910638582523807109218235413219314603124113555608444941893602098540126256599533863699003244705139015714945973192347923792555764558928135685598190904623803723597178650423943255733641164193793915678785613303334177381058323228791032439178370010740166791800796699036255617483623046633155226975955373728568098002411979966350881315524426925081353991423966910914088670897238664295276860214771473659304206683989427558085674118678561396451348432456178015032439319353986505656117409180943528975250418117191369138979136646947490896688619628630815037797402686866009612932781301525335820582424074164812816272739667776318489451780203988018846117279852064527993894217429404665811866690092133288791842838350320730947317376209510261664722924455069304717398398886639721681425085396324493710415294860510870742141544025886831363122757315418531639297258089059810195098989916591640995036101765662867167306463164229812528100283278537801091292307262517484774036751883194795786560770071361513064326095203206615673383424854485975617028705184412806247808716071338038123847631753468753891297369451177841546386032534971839521256960139949002935467297804772489291016483233805966878678837569926821652715497351409845186119142018012432432362849801518054890612684666359121988799110609174846550356984148252557970525087389757897828886748403894071666596117841587946539488103020433168605464700550328830074325385107624391932106301997003722511307118756206271700903281432364483346756891455716736943836513025414360109685028226123716179334741946435012409602791181179257373792942198302874420144314640676477873083628311917016823282764581994208803928274010340617650233737495761875800852503547913206662698694267786313936978432838998158993243730149975761406209646330034784951000603435958496095872518329978524055786770778044848557138854072642044615228175174818413213006359957618522963218671319763319843536088668318296552149391793352921514553324947635901356037476770825144253077495467488440246286391371454075220658612497519601891146968179166573156177709926607316001896760011500330724100722011954628886173309037818356719981409294356571881915794646455530136785635366041587540471927026464089023537521338753244302520482130253451999267966001117051176744469749311317288770650682290705239742969781513932387591817756109400608103487781432739256686521270534144777422460695306928992135460920551081718541957416548704248758034928154360970546221478444187073122324414706843350403396170340916105672116993882327052669707554673682790372051673741746977923142904884600105233248184309792404825835577848307449630705469466543733321340889712321418275567947959578128760435218862265650894056665240051027488117128698249549022052570140645947165718731962432207357944228619366807583689042484085939781602481490765682862098349932031205506060672514620142051121944967179596795101014942702826312835693440987134204019237864271092830301780036134261085434219857267423524183875643211938003304159366220412810223703098866728896577336406447113048477087354384178812461751358092363060234278735386855517680108793734555086956592940258245887521768387383045711624477702424990718563232162695688705851210712890500833471426241499403628734781961249968057609800594746010251137417742849537058770192024579581312152535594620940099053641768752932142167112571141808345095666682277171444843207978375076513255621831562903262194848333685025020705145381659141364042373370919580254908643452383694750005905893355499646850310124379096653953602615387132560795418485239620500328500572442036188879303532389611676427546540987567560593832875197698640601088685206542333781550722903287922460687726635425287630620525998869932801859475934336815189185379288136872625765032891114699362659177640479309895051930586960604843419152310673488782636182180043487008585598491321208714103588229131196269375584499578563709691383740446333986910873520865180262507733697149624086588034342537487085716833599231438684716798774625796782583667659794671017817557411991657906340358915713788767286095115931417387556211641006067281009432359130382578444907516695856255236687373466287246239433916532625618119008066048167777844317528294434190978380572090358299728021249073537585676471593527083784474252607589104239551609819210344275647567085661634638345101654773731543480411913665292320554937868800156600138407594480161940163305112874584700172690343540311694239019323790600648560929819751020999595796562295126233844535661589956172770639210829953139315798337884063695993000392218549588749701506807661875699165137947880258081606227040942032605553631564556309495792233778278101065592378313131400939145687389088290692863917515651813662003406250349426612912578102420650652990015773441976297841999831210718046923903021354829766083459163553118726658631829972046446857418052111292352210060850241978032861708734778804340576067882631281029232800045810219902959744208848350895245288923600437002028242905912157762390316066764345057143756054434733997472900220673398410406739226985000257447454267996737071700026902982214810858193236348242788844302979774573820411135045952066054095025196494100608078166358419455687465710828796991734570955470031337907239231464965689271678443709589658789707126044392896292096122998303842879600229777316612557989733193775125364868814716831802022553482854573297916251499014093944967186303288137555271768138428808628047747456017559208316900347190151965268753982167664988490411717754132531895922090930714360738326154347457090084182078721032201423756936719283134037988483447383881353407808687122790124576558190278309698654150337926711311397947695340014586393914266852055971783152879777798362314214038851961109633938093554004748996801762826320427309627033672838914910939857474294529697495409835718973800154114318702223830757264389453144358532786269856664970551974097651093996992584990344107755890238096465357068213745047154671425091838744847974080210185630648584044830700496334168337920545241134864543124485504105352514500529016976488327357639193376431456079462301560668408362238462541169207139284272575028622473038099100505710380808304264122820781529695896084801130118733873951674099442102059949454820922808888426475263487304276526894026929494580566400994500650807130521301237258299043064644390973141827039481018414727038677957065506042995615027188300422516103202357759834476523151961541372638179566918202077761344222378157493867605395024230413829739297072124008380082524016093975301033715320926936136895415517326369544203647573877218787890505618391830559286233525361226232313026886504789954781378841704848792595685563921857782284220447177831441766391370557201104971085446976627797466372270378687418278033096149599341794848881793210171506693225027420368959053340067638600571419172413729865575951633034149215808659815944057722476454944803724117963415432365815301999733183264930402843165968746649308782633636523056878155269416151748301190067500957061380309176759723300236574736939284462043868134567448767639530340997604914550201783189702867700607558795456810871448640073089613018239780039612373233272999689706569860667651066444525280379808900213684007054860459117516779334398667289169577450564571841554815694066461784759229108179516118841171034005627536769768732902962114748620569202394575235267162920401437476905400960115083438819731336679589781871178101226889143318518489662094382944270436065979944904408431786230405733752738426919525764234292753642922989291500579498688234014135313362601700458649764552387488547024147879199842183272909160299542657086487046810404026273599543197579429467676134833891475116398633465402293607576428634841465870726560990477402876300857100737831750551234814032360085786539791253707303360569253630755576214678481762542827072165113384710744615963682463432559723876161097716075913947548874297988916882377007664464808067680420008486040349262884749562211479827630011426005679593650066967547469455709314577538228457210129745565020535709679770206852304466158807080158022802918348860176764680245033311357056900432877394340406148733360588327269068550693197864710334684138226586216447989773772930499979891268961338552106095192350820144703095929138475938885713738766550527828416603790524644101424828406021921182988181163240475062865797280770967263366797410388327362854940205573893663941362419367806496101356499305259583824082076723803774557348210825981269102583316521722911834621097540576090864345458060149888606154649156908996919609261745065433878375153304629687734086427063764825402413205691061617149316778085636103673809985802607383449730193883558567480267776167627539037726886922138824786690153374985260787097642849902899291479311896173268626764759601413701136266388442008593930226898015110083531752351474337197696067869000551356179111008416997775695894418667098149857559746320096256485412191766310248652927762023380469552273536817053335889475587154030389014124209932776772694621357923806215207273072452311997301465794701184309633539336268944175946092033999171965280101221825041180983125235951826005066127356443416637510137993729379400125428358814731576666283484279167109254326437254200240880629733180304358014484491521444556439361256770663353031895659287820533995584112371855833539722800631934680796269569408957080274976309410075441188851663578850000908637245658696816623394774771977255386991065345895571951922822245408300024418092154865582653456048904038663532318707485001713439015137608681165931447734049194181785512239277658337981982839847337656317094029197774395196351511813690693783654528498384435437842215723557307417879921066545083174498663321647418950348838319710351269092886364681995730772787900633219719017122824594373952050475777679529703870937684644102769259911258050639414433865261137474802352806854972138293115959463945489772226300196023671933254737440060251337166580092745043876469838060243795218082964561206933523349086748756564555638480109394685611305509527930133674477688722173058339887636670878904029100954085586853005403882624569423411959350573037028193208528702427604316447314826184301686237329371200850558423406524821289116701020222293682753931951941640053178233446869934697484277406944172393824243706703732894893226715530893289601865132925275858485013544946086825424299257665270533522554310068956019494568004222176090314739192362683751455459670115604359852742344412214040634177554925072769468899619919916888115067465778212605618289854903224179518158622767027887427253153220187170334480142542523704940306852153342977062006629704211513741966794834051426791929955750361776452336255346438330260325484359627670994472670697616031858330149388415841423541523248664007898079379656097202744986434298936270021685299192246435357760388884698484191246133129387185046848730209141983770915546577480151392404301402781990853615930929463505165476941190257163323506514708042711554785500394398403737450736217841355376320279605418225193361023691384639102210508938801215151855729760405079054155257687837138623180108697899684806950053890562502334187487337609358856905575678516306410952199263447481780397569783894207536182862486629371851264699817420108992385874478782031024644010851980152302719032712800431935958139384196982987052861207466836601462437924831232836963836139453845473239115577270565686075159222557921916717127830285562751741058921611599959587189261105264299528021636062750058309920601851268325354990648376714618438101135983013705838825044044809009563428461173270230945523958946198252828565498290952401452442961733944820917995435834809812089848320009407172948691984507592573706347114245175833987242455741072274667244350228945599305591312260586473234327258167099096864867878136859289533783955039996239185301277297297351381247038706478137286686058998377266651039312497936794361931115349524904976181721070472981629417829930397811457399270227514006882246198772136671485709056105518131868439869529950353959594657698272442329749146427035029488807403913810981727099595834798883899758643138597036138901000271451190125909285735293994760342183266252871567882532521368727677018040219453214357242895057100565174825817895814639347195628398245666742485957472437572842495081452741833670164882910291807046329998615001483120348016838876246294023441649877020714192455005810827659836358771150389720072260501873836812063565239391328332170150529486164254668256883672448684172714641501597417856588916652670618743188402613364563082792328165917557170969486084422643242360555165429455190895201684600354049790832568429935711795636685358525707202373221347786807337145274770739423347157767218035609945300240989126863475333738533476168764987920377555477371452789600043396619000692877892374254984137944735865584210079162681407658196710804627422459690969567992501121149576878609759165291057118812632956470434074937985752542468935170276171198265985739452800834413837620798290501122460144401309142227979019808924185995108745049687507335893997488896602888694926706149355214439826597842253215200332399943349744694864840705690513078639075875136658125665240094950673490298117417876112052232957847002049564220728121180216028094123814055997766494232455919982176667036173218465083044649044409344392881415186308599202223804693749386128127715831554552229281467423087492449783443442620486064587078446652980839578057074776508389809852334379773818212730222496069815921413742712501974229325828549268758446658766239920701605832317931346891534509676420492221655497658136628994930889846365386301954525762594531296192447517321602111539569111751186280023078066378088864321592854901924478355055436104218412330578057155317884785485464056784426326400253653336556118964776602377867116900865113118038331905059923761073240698273173724241527923959395874327432540260374038537877576509831388906302878337301123725754055435287769537873501295952405667111166167094803540776666600748711867284807920685378039927703466998424124061979141507176140458403706370565026982034301353492653330472819676967109213472283716752138463270426127404394036482653693924509730581787375979742104397121151537173618044911659138663225264918749084936466288833631141960711258426866026723274799105602561195403417439829733893321724916421573309497067608383625782479932834705636224045125435383958907936125448262538271266372878885207123105882593049057037441176580214538653799211923378591285757141069565507895414941827325337003173265489487675934047728986252172140018281023923955000999204818317232728685525843267599349004669631043218418440416327289911599790264454394971233321629999114750593437461266638564590824987411947871628545172414349701188866948998545912420313599285327067152606717769034002091463159266550100582307963937908205368294654356893279305911044672752858463480385877455255605849627850536441716226860667483768126020546223364255862043109316173532486028614544991072088928510542238312191542658499894165569331552537356527390373227154266028634419818718272987933609714375151852694564507307260348175574604599876143779482889429909448542733822251235166090816975114176948128881088998977078407439692198773963895636759221795645825995013499700407327073103143407664729742236899289600312396033111761348569175125622577036853062109334110381459285419680527068349828935267322725133599916631308716122785175467875809549052183922042883973201575485827944526986500980634826090891555660208481252936262516370429180066880009030517239698850747389789068900849622351832480234997321938780594952711828755439751981135786455094098293582229782415658839795157284713522942845049362250048164001582433812386340907466319053676349177250181876517288016059433975057480389815868511169948364983426048311446905387998683727973741110534536101218683602020104295034197690396089218700935526284601554666647666661333746090387315993408643503995873168153019129745548994275588069209317781965746467537832824936261737294547600405913513460114778984430081215804126388794233343701626637128393821397518517160405263836810244603090488498626290070870690420363338187687916622709663263845235782460435467029134209732000006725483877310055977224394626317385443782479426588030680836282318818083465537666539761296308920178262434554888246715871116725408207446316324492822137389281310075366711733205648018599106834090482801324817952032612602260525763621140902033003532390753392303945566936810377220388158146316492257954125683118111645636630849334166426977988253790672189403867864831500094874885856547660437987155500841444952397108485871445243830288923781488702128517012050408815538998912285810820242436761637697289933962534945448110483771419778197474064160188761111491688903626258622517855185846016806868926387041608934483894301561632108786285042083644698141557591340923202010997382386964518098868956646650026194805566055620324204109499948611708572740327096989136728666858361110193598009089109397268082368253841726488721728018555291761062351469492518865062630601557725814576417205871710279163182310190214106615284520397624417662770041650988556741327410496898243164414670670699380900006960874555854885853989947611888655486249692776641760527267911053296765416663037066142312394172446338315026962764319421017865024069712239068938514940845955147390440758075577373705102133705778592513218420080962275383811910381980340456082333467640276295571425574899700205437855159675720409488867619968726239575019547636057305883337801103801460263567573443201341472666753410624963049631213964995136468625985839892067842557997033413146405412673770106535837251293322038733490211763815966251203520828489454830425966018531400190597905263698245286635462520277581647197421270681097310632616989415492385530150291732687687477556902151588111248308113406419890214963661281313364907575035926175132909329714075420170402830719115614155356730858603492785784717792415144560661402490093162312479633952907504923219582098379295115375664757831708338119935541422880587150157621200819241370293540151059052059294778965678510060492354289645262343342173782941942564064204092684267528786517756600311458426088302603346700011985835689895994614342370068370568361313311247698417528947304979100944127455099002076333183363085395382154552221342085656015267413035832288912467320759391868202159387171753195896423977376770162102897235386003215222865466023815022162027431416309188515449866369612185156235357165274495791171402699295612355349316808556000356323972248321074629087577085043893437682520711006948888328309147552705078754248057310640107409853739675592984065506434405051452181989736471351648378224868388293403896635254010379904070404861972815860809496564222521935574350279645851788955957490128097909852723592519637117686462012676043347352637591447791655965396568440928905284471845442980967770825233967714459120970359379948693238282307708587148220962598840320983693153675321667809027350619938580577832702991146912944958403287049810889643873166679074409978834496955449839617455277357521354137376479729014917244013396867827576540909876648547164099774737997024836324338869308123739533771325797354938867013758914220777135867559488342397489410706563309773435386261936356963386595155852095687603550441877896246555669595647531697888836920921598687434158879746928774993897795119506463496363183929672004929870359185318604767908937731589634090820187597752491036927098055845930570526909004610662005425974244170299015548269225910887077894304372938546948409984170751628447961950307440717304963721535071645095149847827690673931996133000935576203818717440000939974641071202647104230861010190199061901901961876285128149209742041709988476893001326650048263127660452430507407152066893492154400159044815255875752469921729045583762849835257464085066258016025004420513311885032885206353464306842618253232325568607510747861505381071232743302845207690497395674948105395263288780324920458354430910982937483024968174915824199990410872967156731225043077932808443082454187372566812774802497738098796331648282051038820404920399764030119263900673289401101449209280632799940969855689182150561603540673251725864895335807271717463198368756759884668235765533984708901801437016543870658281709712273326608122153350294801331589673845637058148849613703807782803783003950567969911931902730077928500406163354384445723348859160664122677594237139144229530710606683053102829039419480976197394011521222340317400166573714453147408604968696339649201531789631779125574425652567509398249992803542966682283864264092746275614040864647001336997784879261860779237069255558812346410756627275543922065146407880565924244554264796740485968072527551132955873481848725496890602739105269167176999292949069658853399606804941411574524613059717079690519818735042406543689651781756825317797843954153980186842097057943729412456998967470892289381326244741520364839718436401048502141624767502568777836009636155903114339866915806885244327581660347613656579036605582186168492567238426780694304373167275466026185063586243015400503564367517748581020372108973254443349169126804247616205813772823134642775363814672685027471167596532193577404964462446442319871064795643770847908304423345940513599784081829068835703675039354515889448783823126379768651686559552137652241512991445871986959563600310838194504778222479935246072751636986275269170640285493283093517885840000257133887792760151443746256979613757115649393666669609300720995740525100023595396338111321243629076142316801545629965571357384937615227587855556867107424392296279511264432143359279319243448440688300070467430993843131999738471416791121093889497872931048672069554412576356194379693337223814221122817759848844029392491852820226007087670501860298420103516617110427943765935108204228286585685750776783865541293269160974380266721436143679357201409417855733560826369238204664021843021933410413505159848264015114475988944355980711985546862438623840025518351580552504357804830979867144521466852723990102552088101298366061733593644964017070929489510804589268892244010456258891429354112873122439123575455022985866403292789513694836169670453958147968470808472382846336671146593014971959272906484833519244584739073920284793675030839165103456452471791522274061322147142063386631348367639425434886371523377575400447768978361070477385223595397334652019778508780058130782613964112673108553107623193261252457743025148240180471718056083458788336767643701270735786605762672597685735554447375948512671000335109915629885166338160467689350102961338502648128301394421977355161216868913863814782566848307951007678030622150780677620045383196091326261799371744901142395276313048320346677978704422210152321517214088898192455240940735516437323776779469543338199827092464282787186627866544909955026898311940661272561867816196734045060245160940141510604630757025213732099611631978520729294905140658299245237881345164639429581688019168089651194658527196816444444720734785396426429485623361799196778317877849096535653078951253167594359541868586164104262027185666084775167085666605112651933728413369557825266447001465198991231426951048080116277161148579732004893262103998221857454809028496113539108118297924858679629915020683351504290503628252039043938919230341798498963197194211864265369013077919207529940215493115162960379390378282637949182567355760720705813005699219024500888369127130189775749330476692544404022953218044844473680390282893210108495470386368752530802706470945500371233776350249673297087184382784758642714460218043871593631083997730812246658456514925823171813106940726090960484493262251566839157821376340059164699442919436082945115824117775371099159774337193556453831039651225709429500660791580886149453856076492019774441708843020668671200367847420432401789827086721857393406977401736928440830201666864951065503295928325462526189858452344743750926205700453002532568982039873872758772592409328720051449010572790153038843390461701886934753996482121200736444016961557908518184368102155672340438343416828809621073680667187647715972191293967307728212753885824994125144276104615080707182536557379263199884683997226359523280473061717139511160643524440393329674926163874229752767286959063897075379019507376671846981790509142427378702070837917625829301212577206997725497511749125256155313860291860837466330718793840793771533187808068099915321150512184906704729275343195966833624427761511982423942547600079810943215073220431431928305444255228797266253466589159071059796591467064322026331781948633130102980086341293464864598893529387389906231550296460627827895069564622200863465507237798865552469228866566972029376028061841965609266839426680524239993293236685061869836058205676832269388491068037750041768728542379721681626095459481577385470648638210394451717350036413037472466695525184660347780630963137261470647229501307339824540918811410927498129257082313314386461277856273245511126189339980734074292968214479807065176857293856913643089050081299578614429908987534939101598728936077133187253293102324609309023662179830662003868345052360057089180067154522715874905224478913862814661913550536130918654095605455109907533149762393867670279079866494288751560329348415543823605651513169315767255516401628241233161002198975554242457887329559103477867369077587531225139224045246881059003541399096401102985837322422129564681482524572843569278464826142589975809749341888648207207335956239455360017145318069288624075327423180471777154741776491171137315717557115596139062658549315346123883583462018878307955644209058641706080640757072716348235978615531832911332050308614120283041056997384184777733177412515279659824278701496188403502222687911138879933219186284036474981828530133564363914049949691111792750211863251788858836352710230354034517682768664944876987663651033685213321352571847810809199270288701207592982507199321858129981224333729248820219448867163446711308183332348918525607728792562890131546665649980532131028419502032496286213307849505352795065100997615190451137202504138299427945026728747952936402235895486822514026194788543682375799798789087249910547051116692183896776518081584761990043483223989850149887575316798342692601710486225537694736400880900236124414645457565802165413381607869870528227671757919497721873270265640283693999223140776076592869623866595491287110793275295980031022511356439747741947821627891120100853512095127190045255814897545132448513776083994736394846136277769043229217471614683442572226473226391789458485552046925172439154577373158711641913763321279241609475715625529282766747606074856023059791709001711996775042846933976128055311076498486628786734081125992274380538123643946877843445425262986887354739292630718053328095411853804892353332155475294055037220808066195877288907188892296822572953044349671779647479837904659765399876107120711372202073745746201075614127804966476673155061694603061896950973023671344045648556274425014521995521689285707573797315930641228310090888588059981505054702071348259792362749030381258293078359866982120550826593739377095332708443055067542561194894920820927021521475287180015925788664403401662046794104969009209813119622946947047488072277520616385343355460603039065027686023957189672379494431919170321480657345182435830360177267123161651654041842212676678592496707976037608237846603409818791156366071411143487497120341754622001280414631351949307267900864453501981916152690651326747019343355716692228248815954307052987219270502390132388630975830574342714057270210002703341863880896060797967993907575904265953430298454689392627974696447923782539119393965109165359094027116477813887597458424277176401421067536163679180969893933205255056742514772798801113341723383163178561794364176653279445327081813118530869029671270987413134290949943904130936816836519664825052281435394091714111966132673051207292540315200025230174141687548894778912354113368662666558501307278225645783213472191250755420033508353293115229489771895478959577288918666389381414193367428486231276481812613604581455117664289245408435027008204841165659945330907736496579696171424215812800865442512877501434123183236374391198782281971844113573030222624282291906294373394314528916079196213130501689185934224149630288755167735764111823122816740978921557160480204752913800760735928475257388956691081552155005463126509001340892893985455201085291899104150876702169988602981130757859443549232462044974612301328263140180636454156295480572577760594461414357745923197543429761655164452847701305652743867093549855529063371511095437047904942845326224319536579616311921061261500486599752383182270347706017561004488658080027215340937162808000471005474220011974845829045042473228812036505682863895503942939382375285959759670472536383153284347123353300042065715735389865368346063546115760230361368350314319246597905132743922197128269446797483093418954703697958511620636799304791376869968093661467306189964824982658974689554918860518538617392793952988474848185089516231663725401185286855778268459849137515524295107936201978751240130007564141583852660289060526528339273321599735761336435123655451593679607915840581646175852640633301909711292561713397739939270402800856132280113738360149020503728990949826144225691483203571376212873388121179760899221004970967655508653688181668714912412632601842105307307458605425051881558919676823744651626811162426257292875929675893813588140786629189710828771042411765043807544390602508476325466735415866105525085087505574347180747570033154429538065209045652675850052389302755631247133702586945729912906660447650797095744398141913081436719208578106684103126543144728681174000691263270447758583159421904367989000686134861263042472744665662604907218820449583327831285545237537007142051173630766222159072319082193708381235654618089367926342352124669706892202996581871802381131514943374861688471411133629438404753870903722095364458692464114652117594558198106182974619323284145176439486606482640620284060962575888622693879436791789289616108067324846353734114284129160716755551351666823124380733012773400601667917612428619634038912797031392541433379747685996876293181777321432945578630975795965952000741398596232872941366697257797777829813689222941348691449971088497080979744147982697213710776929634520334985008424112047848373155228947915059403197584646613823311498685577634836958299967014638391356009907427054103837788550448064673868951940393512074285087073182283211672865117308321216425108681874889929261804794654083720303461271167748565998088393874013094954065407138153089520330132861537802548674084249751386417039228407115253096699893950098916363419420862484118705864256423200245984606053430526728887645896877180164620729365145777358411712933852167297792532464473459465931966416594577970342195160905247774296832647523561425679019527176301608350167173292511188600106165420973366704191900948355495143074550650737134560933982475105532798485536654703549761921798037092581111439549661415391520605900553269130988267726881044248078959412713628945329347708747581825141882382257481068450001139993604811166914674263199552424039641708989077358179909087572779186075439985743961614028947933193056882248518835333191175335374972658758660547343016211234482610693368775436875817589058331350478441011792066762401582871504643408974585278294831809515521869551965919076950304835953784626665744409239797071727111782397285368764318516562619755318243779337668950093706968730547606603593831116113563313715732025262360623534041877233999617460889101639268894236588248733885187994744488093708132223317567861678912923942166966718101810645115397924225174147334623953058617390721043795576323481983155621980191895705943863989427012792838133985990255385720113866903077389554977116650168512946770621734196873643045176807426673805667381752070421515196659989153738166792494650885351366307280604219235495942096656097979868735105760202540200602926955253544358103168425344114085806104880822325975797791498648298012685015200710767536863723269935254690850472829469547135168507039235838295572203383654956452636721515498865056019766796877986613926414521034249347495382335370556954427524853642594363976911380443018337911882962413702627234327286463085445355205984509162028528700298515169976813261744969090856960539049627064922515738877952507658303694534390419601834655340184471321810638718072507746999320786855661192079955048496199438879390817885535148132929135486062001432045151918732468963874273514664019626785043990133164188453261894015470899077148552978635216477409110693125064266649078370260837554225514335378465230717532982065530121574362587945648960304035037740345211003851431664932424878971639336410509231706676752368764432719783012134309711852022844842146607075137229149488051219348440779190357874322681548265482159478566923296771290033324037890612412765292677818393556367859897195174345683615426490296678910708618416024357445626239167896405021515943417530735429039431537396883563583350564099486292202623521434168044205295395012645714448568300498272148241050233707369312437231846544518276070970456253903853388789320989703815250497329438037290313831051116155472874236058391575901872555418836318062645645620728917162017852092201215874610493961415565602680755482302043986957377206248574863889104789469079025600057314076007814985090463134077496020814448923726785424410051897850060880701063733229458729000485595938432524567435436697364821624526015735911650616796342034837097855924355204236982520821612933144645270211587400601984694785013462631148212432579737804001004108801221852608639648017212721127634071872176858951090201274405590379271529220267526017968178728392279321054065158330613899190477156963534839652947562944893946686261687512086646426369849916458032081075488634591092485781128743756448970822715228945568205594667852062112870826123371452531698624150895791546570669848487205144589568503096586783306078544540211572191420037218363253879391591022450832753610555841299931838814093228078634095056401155828901942067449503437899372169419669572823175493103689484648301177397535448117214341166953202741433926604586388931058289099858277139477808794427827486251691274636135594042459765724080784679518411304246353311606822716793914732463628590115730556744956261654185227662419074631398507010232050692906785477997314597069810787465334828155507206809786936698351672178213195751340541331847684432658168497119336320512969149091448483023090295933413968206578090253451812244392450640962550845415842552783743816056579504606716380200684610940196613988882571532381221284146420718538155382203080197119900828582125935378591347206746482278934778672804736869806500410446375513408143252910138985865981614973270919353174555985776761538078513578304647236633817373157190467396022159038891344397469732830661854380522565865406049080891647628059351920851536195829717654865424649626368918730178536041911178405117916861655199923303078170086607573717147164988897823490573790198521570993288881159156757285282691404834914782395958166305129327066133055548005479573019972168951130706397548979104909642809025484778250186822139240354563633379378736728233540849148123147002754210389280455288608410816946384649555368466447796033791220076015853727220264617436351070974275627516025536506293521662579139599093404352278443614029161990643980211533508834735689692495682348648071115063157015564870585714226082072011675860414371540232576380681143551458472413122477542676858313610802513612834075903016837833623311101661199454076676212720060536961313824144763863045637613483389996528981665163659714966256362516798935710879918098287033197898417469327227491605845378828296681630056915987833831970375237867611502663394989237188195916761492252521967296873722320200861503375478954694937294193361164220862808927558196284584759467982195633249935984906706210577995529913989271203174021910006121638849252131858434020528351344621204080531960868831677976201291615765917123190738399445506553288417587916167888209042022298995732522647738880054417594271107919198483581016795422598432706098766182185970483563442615352851157997177147004675679389348748885251143733196030167838470365796014687537210047521259949268268984399453258506696121162900406960972948437784551169730196384012988551008343464872971888813875855356894388197845473664385367692788919049581973895957066840015909609264961582594756139493539791989014247129843607446055048178510291536666093455029178424031112134200598292855190857448662387533403084264280791970690251646075380293345943404044190562925496760533555883156537472564584859083953524632358585729444587348053735094269233351211919354595772552761807873404745029615482408685488006752673510859403521505520996166613018205677102397053253043169392687258050553612257249438674043056320472718369553781176141618563170841661564412056535855234581779085791880480118177851842070130728879135866980760159364855207114301788214754120820793864585319030655151020016322593258930146583810127558426064337238786910293097610896930518558890284442667834524417329517913816324585146871674818810144979795375564102359161246155504083121178481185097572465794424850249197815420927518389568252607304762884360618291103453673602939554578933615570171037170304298664567055395562426888933800472931640527118034730910353744350801693923396597190875668892316217952817700490209885589331369129587410862633043613380469460317836590512467985574215565725543460660260849175990847958494702709579550848894948960347904914812592826150152181856197009927214923831479674882543615011741136539083784803614474828490933578502916363303432915349791884151454722759792384138997316471466945084369309352800552506120709426568213121516156789267007665744195567832729703895331323959433861376810278417805482465325342800152898529996465585608634747433576296826220339519509849875991957462268648734155947020513062824932649244125856265191967023454237689279665845914788370579273695944508223744034017043427805260456584741665544104420195075961768445242304771527745246173131872667727964867661733323587953223213700640962063505462853543534095302907014990045719436012165865742386796114817721145708707279850294982502903506044910993952962913431168616572309951185094931371359769465339754906069622736470874613460777576886404725242615947767603142706502925747369846779285834750381717548079593605359583917535183800065247148868743932681011567290078451778018083371337292728754895955336141966538625811509999031104360585946913407540544551114987663618929317326376541774254071280195497009274198558857878094449909947709084192745879095961154951065077823919392390036889331351724185994934609010108440343285990718781014492231388510005899116500437719064400227555269508299297407512445582525193933059975439233088928177113771396047195139671948036997466580709669909272165989598262406329036139172797593793113000324552164116632869566092566104225718713588504025625391895810909790367794915521230885345794811017773188513394786241799496694346787706028281516018769477356944257002721608861477495787378168488390208675281119443641612044157688365252317130419951167781086007506212356741826027257041987600433535301022124579070994209054301732488311973653708735649272185614551936455238707684515277588010843192827218804487616773248282754252642190717842502587183671178504832334920188334384756682767428999163431690781131679996773222440456822686910133590193562088498921181148901174377058910156812093071776051376804056085241274255110330464741618274713408883784314494167392478715625708246719016078418346901679499843505033584289415606883036382370224617142655866297373340454771899340118639901027862100216512213412006672694110445747483889278662952201445503545617911006891929427923691543619930960145192986794110396736838907388930391065204456494481330604494323961868861566171561722026311855651980149044374665823463661697674329445540748136008366586965791438510431752843234821334054053629130818289358795599327686149725163503647297379289513329759843777904612360264045055589286324810723751815702079997816886776035957364409363005728928463474531736652198613725355568169141155473637390233110528497796174892991424874963872354184077838117090529898419773034640025375568356896095548049585289038448632481530429574373821407538336714842284744404879400594830511074383105712150173809479489872910974547361305399774474017692182789415359663649679612973924691310991166832913296487704141322757071501631540291189745629853854057417112640089459491106297321638166848870342279467327338723829013521669834097317571445382496283148270003016457303348644933118753377264965054579483769622396528460098960722053156949944461555377586845505511562224931584601476766209880751231798188189172036489678605481248250152833341965333360473597211816702104269371265691788836203221013963506959759193563119738597889308656831274759108013632628885522462670240727013262470366698371624349120447255598391027920884062948989955491879034570173364321148149734139341483902808901259044414813130867076225896527116264382437142160822592505305785156862263019340694795850439743640242575233126509563447314210966721540231959331035693613851953045103511284230801889468898594002404143780227214203572894294343688417018659228857398846813166208232315435064748470791312442305341956577196088500385996080378849404005097419169126652021149405447071548132575415990112232226845343595431865328103041774100011577376432063985615005976717242558951584358986851362643481138771513490737131493747623000784645994230112813084679151128861048677170915358394657192335326454644513520625382851045146908114651131620966288612080018848216463086798428298834490667206146585644635240133406174921776274872813543620763752558485657346345725664489936833789072872176708136683264455267528823632919273288286816886717532921896495334329223435004546805575265077828419314784463782520813646723509326747790596040218464850306483697939335269743926736718969255058779946427718430807897610025630963813408098350031992586617227722520614511719408053039859047793419050840758421273134377673099557174757197365832811447447261109127099363578242470081483548237303489045998830827023276945199086177458199146168800889660715600178171833381165201695700946606944699813080154254079962675825178844127166002022799335159672550058411509761120246553314088329380783935134485472956510130160615217326686360793694976502039108701527683627276345009170731592679040162008204594032954808486876549137728826026919785196656606480737554956665964727257457337429248111909205617441044065173123103991272535927594686787639872252585970130552396336694242149871367315998540063477199477391633224731598151841790204754566856425847779548199672603667275922320206332324210123523320366836918090914439106937721021031573227381883540357709569834978548703060459181807634919276729519328155613106716954687003438717307516402082966797833513866867998990015856057890067716370574654468281080272213670917553162397095716924604521086700603315818241022336546468553404678564318320074725594400131546501301972424474311679941796556340183936440147095055465799923134875065678449039479985364245605717106842974294292992310027350986483374517135790321924304243041793587334174517167470776232644827006321989249397733136127753774346323548832543955887659409262568715641544859986845407732473100574114931746722258507037166444712490819401025359877473764617932093419611760071347763016396652098513869091147997607991202399035672348112576054002074090784452870327784815826777262953703884234187932798831333428446893910460844240198292319996115563539442125555918106129772919382110731612202986210260623007834205107211438888716008916772849383229237265944116055602642863396284822137004087238231269215085389892346911339832787880226291748944273773352338805843468067559832718498893327604997114299726413905984316388709027190752295237935715209778144304582860242457435317301374393692890917883623570027985216196652649301494958550674757708178912110803229227709574315890835587871902171222911269204746006114042873966939441215575523093974836216203796118965905875720217131503996435458438559846866046846359228378900847340640858569476388897178341641192146632928651299437115887507986847109772768461611703477241317267057333240595388116501546137615391424327296066963285393648068559121738204485928388425331102685799997189327416012466079337789373010692850931132955870255015795101857474413911595523775049027665804290222042324114569671501370726804377481161653907188214471959517662315894877321767992982414373998214547413272039150104382569575435277409725810887274639703841844760808557732876489716370391165091725787691306095089864950622630019989704992966807275908129426541993181455477048904385832865723050762293349738921936396804395313976877940260692396420347891880004207852721153987538180480666623740153548413683280470364688608072323811621673758773388500738067654369756699408167403154625502176149524345196090130655036244729777727571140770258544931158619054399210641647705234816628419234500177102068398808603729970847092661622898948532253001146789953258592600564767160542586801220133106448820511080073007953814909982764443515269602996952429645551888597059513344667738372343875171922981773569326677888817652597841953001183620472998031401562909225391359111839820070299602591521789211549742194844187603078382614440177857783038914773068056814171722368809033662264644008231910505565422812306344687191613402548752632347350177869245721011689763943123141798423810714446286764026468401686586224780066738975291707685756302473366153702903955884281981986087918278944112041932815294117044565665931422327798208854715421323654154540298959994398600610089542040407836449053793012317146845227598245404833973352800581123972518503873375204860248162567152012770376183869699749153935007421370231344092257493568593412782169614617687646353941701304839123854908644178698202692313480155667182271416435417867766725603571013034676499661333615269289211420452975083239258040939605732125282442562468893879314626730394393131690746494133611823541487407286169548438430060862465200844914986247127844715735850840700265498941694877811056672447403135318548067710972276784207533624583987163657350629742875470066319754427420810821997938541809847740424575117246292284350742052099793408492326953355425500909111263760596079275749264706282335357244432540766385136837131199222800924834364197193527539733545834054896796551103275348339484433934080210977323504077021109514201552797961043313351171340782239506438644070340039733794688936870830642348879268265922409778746197299993833946071435872854895577390031719880170592290567079351306475278636446943407395485710351289019678679357476952120172400677535513456680639784801360427841535089570072486194170281797960749107379627534132851472032406138037320813079103539714257255426015898626753738520885138725712440701608400686621813750071359698673278994240844857874628767910773119745189497520825540180169333214984556906900674958466965201943394148427861563937017537982423652308108840654142290391193246851978232829997353376969427106271143974368784895341776995949525926383009849635517930050353653874560014356150278204935973906698034424012899157059705885973676427846250931491681673114604162309947520724389117864761506599676120833516970224132633043285046194192045344058562967532810564496641985322620706159092447303429363965891593379353398184816526423758325228694908283573811555279197789452481220868714051705273895417124291770793344717737495376553185982644516115307184790554539665216761143774370997191175865186289256810738819662394407438162214370688606332089944834924569410750097257738363533265081634436902125438674767602012950683772029447212926149103142665705225706966035637650656624876147407326514278996661110046229439462583669917540940617080130267729685397572898369582009159791776682909116227411604078119522510488862829254612166992265890457959070167498237728520659756196628614483850404770886127856523654209295352384828878780603825070545695823217804674548450986978401083205714906838273981268821772124407444335611135872557492239870810027259847960619307051363817902319540600704265508164080466161492608658197863917315148489818527486092336420282589630143125220150007674641613082743571034557398987386853447112520838525319594151213072421884826888484191215816815887896786580235795261057111131240957236735011922285446674736636460857873163759914924106811350478686606200943451594439684370683972795125695232298997668533711660617633178093634726243808152030065018999288416565728073760597474732844230210464837953249709442104908576535113136242228234808425015089962083201988794834844827423379574386190824148166732182672762261877103843532417017503271280041205752519183384718317552550796270871180254779846093013128369751495937645245870738338511690960488006624236499601678026191080583522669252390834221023856998585799062437840798334926282092970567729024402351346482416545803371611212158259033904954310711919628639496232959596112332777026509897825554360362801774118832008338842330608220348631928633706125292684931492676114873516685227778647553839809032949888296583192080900803180628744139735530043530133775429614825352980463138036431493432378615918209902617453698771733656402159154485712948576503810672426949265571947427496555938953107151373756004083255160991186593649630987364572851113221231167535892933852589132992369851130018675375630822616032244247087529992329976982894397966577547913014723143442063026488450059770235138624906333768671735913847294501900166343032963513807444776273859707596580446120931862233177386592349929151441308995814420355219303543511881650751336096474193501054966290668163901979732144678515197053902309906405678053220338145178597903683252704575317306619260335301117949810606223893372137609291199261464710880093757714911385232661756703674652880672107274121860201294091579512565470800702108337686246402662073804487743721261385710500988422568906383972412749961348467182351429569320405616476111209500615360538597796398057774425038155897227419860360158533676325799877441453329349463484710748011603454835138228604711140000839203065051363456619058639772200130186811958527843714273001840926344744270201779957679447150611845479040235991607543493629592022432679493684244926395181760506051784501859140526124452534772088282082531557874619880724477698900192833535062316343486979673156006294237775888760827126901860179507529414163090637879660697290141756777731472317868986868151022432069429124246488109895561367336949630959343040832184271850894325597391523314607313387077948044128262844906171696135084551387716694946124405171680009125604716433568208230550613881051719625025650640426341052514746771897472783610325683356085710398680403571871415411374902198089498219076249048358739262071188775736901635540758517410929927370350858575143449471576204735691851155289952841894113175851373567187102382613856650666651558696324011015973270373110236019061387121525377052149379729462913971313639267530893076070130798727823632574443168036779365468853049638848499015547937518000964157865531223276781498123022040999270724288478526820628211852857878316709769099397736086617201932717631028635604515766917807331918413323679475724311877321474161382617629643466957188131167396533859616520568588625070095783126140109413978788809540755114644792608905921400950180290546659849759399441771991108618498582717970812099385112529017508849704271072326273458601875076142469148043187833616136198332802751009075372833559334698896955404094280972201322534610783033533200263241294103526041795727001209026037183407101522909342533354528776470994528926015899466471800072763402594159669247869736180858505187784387587314447726973168897101394992713364267398819070716986124219179741293855418468593909218523392113208037627147006929984948178293870116734978149690423610956438620237447487461983578815295793440876018948332274390766091247183404008529926762588373623620859542844897384550134285474473295495843234816263389020792440342541093341111127770177825180002880002068318580619300155566115084642855531482482686542270058820293595399225858104145646615263193016794680995591527351173464786299403456110074778731825861826733178724943806290809686339675266006490632458149356056075573860755547524042113329553274492925370647040291624296392635183503968189746491351057240555660164111506630868606094501583951677123641985211113494600517618469241854986860161088044270437051358497602701676126818863076468639789782976592430413801174502751746573535838539070041499425726926895797743807551871340933260682793588369130911213838196994723915514305329447294660384036345450998487602994761090139661451324522019803100252127655658415538518468261376283329500814798958970142301894120939932115540603505463774952921006491285987880297532179841927315685563103262071150286067649977172949274451559904160029338743318281627162577850806005014620118250816761495816684684085201370296573591495863301283400221296439930968431737095112746715919152459974854289810982052365733433572808796774313916445261216604721875721164508075376635174547237934612927826808424842970031155357121801905226693983102768679971504885498188097666371525275488985519125715779798913829150060331708324156816658324448151576100378098083804214707077198659348330727142046860809779263654388334182145240335768630929109143382462601102508716904358604766654469048854464106733766003547564663130716166601932609114307070641245749349096232186587355592710835200768154794758439684928834389106445758153525405621212238723461623519302931672642090865979588088258352689367761317245171350399536814273112458140013227757697312908434653624764676290361802792120571968779938525670274817900575794897020439897943050502708002013456899536303439089230291227309288121539787628030730598691499745686330482775748840460625603384725360974205372569448087092037044746061838759519562915948730933322227137371761200459419559319311166813562762915156491942824625343095460065974468285492842620497694074930888656868055965691049117276794322911048743877848436400779699593440870406931660059709596630620808149308209231803744388269844143584022273968468634962648323026363217146260550313504410467708616148369226436341463302309132915448401675015530123154133083122437441680375612520138280062025345481749793243366531855018954787352721564277235438798368261575237856138378231064876063608818306348230843962205344802226641459925706093299937656156077603591572392694692669151269045296955784321587155261835981708881264108527305107153992786024691626492835404796674390332138636814503524110007469507904790042244246902511933576409836261634271736988586652785537875995347331325495752157517051755288638837258928858424423869162447093363629081684251513322299740531979646887598914326645794312514727365202116945724175530466373817344724938135539788523846161309617896842737465459516131353949728290925898727908344893353550692332590139945057301204432860051419406180424871418097333664406583171360844957134477570347269803534692734229878379688506280374210455963751917747922456312256222601093291100036938135314526762901992980641331947179456765886861513183401867581261515732972537674989787484120711356950723628599235545020518394459268041415456576878163154082944464978260615313704588512951994397643606888384589048885862273272791798519139685345757363936838469359591161865047183942487937090996653667593984148854472279689080775122718888282231556447041955890700339597022562518995304361294229888005870821545398345125165372653303121611642955042128675667211144568664401499123761167058107498634215744279984495597622789076091648225272839517628212820566646043351302859819490602806940979647564342355943348276882337848086020787229754410010454007050673929572518923050827860955174692576538605698600425388897263832597755332421760984949123735639845006820416555957967102460514754273069253977104371371885778191977739089167595734316492465666312360059677724161329742638513151175928291405781436662558838910542725188110157169166722887463215681904232254399632276637466609698211070613122795457043511682407109143680879678033735219730378888408351416334571581567634402571283108158483004314953695149342623299591184892403595441191141521598391820713238971320706738112587129981374675878455185283934531498130584716948771534824438665553797769120058043883450454982983105389416983803581985273259592723492801244190740819258989362872405133086238407859110749267525882445507167659853464186621909916351813509568370949572697095898035010081290522411839339886848571490789241352853900731339724292468437118158943536835201951402470338332331361234312596441318626599500271450499667465690521515740632289974709067163618427825611259918524351454598988855077693420296615509335778672049116909213726718403572696543924799403423263544285549319955964346097233057955058835334532403276474465496335495623890808846846302332626133515896328817239781049677579648213581779637291944939460615658715309457687789985037587696705091624147575773959968096752246062007588347649938479796773671653882306293368779647487676474393762360107094639551180620744891592440745143142723436715629825752943742271925467560972076662789184114435436994917863079254176762489031621420896868877949335255361198020447893516802778472818403030164274267558342216791301669582092129381496324345336520115660034532868053831725193577311588591508088794817325032534942691042896007207147739990315441010862848938502056091735952663995918451578510058985496852852408595782938468965892971717024871344785783470117891568903503824213855698694862008923763124750231167216880111356896622290048590623437654819124051149847809117909367392730602445733483349126561479864311163834436717088704031672093814970616451931392924042010746267125200086551242357000745489548469415472488501371281642048936097794835612251616675177975365664638267537470517463690603737758075605031339566411882716428950597033388760093561005256265566907814767903196402775303746041704561405589926369080702940934641390184328502922904367285233827455449852654229414830731158588637567224811236206760462241692788458111264613465473884591282141999840027888746693134804806649756851895012003408104907935169904372819538336988630340661566918604629128511168810855634042479560075695968038253268394881474294040978596356378870810192230959306490572757589731578077797164007656429532801424554930305606832233870187686676450201657631457434298431490673015802759707057940230819792740881473784860606243644129338588601540934956615138928316403976656886963714593319237162205424916037689340718312717756194944010798243911654318065952319110759503383140434106214308029440865948461525229213174958871726767235762935828493605045047151400170253650183504338961984443871333567661398900284208048590014479251377412596703894974289645465614027091534780593644282854155831844253576397444118399825999868541794189867094333885780962504074610547543868785901484651935951705561056464470522561576179291255689249223621182084411306149772172899911563008272753058056786767040418922906334406946109593850678684323142075266983944652166479584153449018118561586475732194430048030393771026624477053413979947879833214578863547737138033403149963314383023041022241206738692668652067792859504652769031383543091341000960841325506029841771592379760707065101851798414113219002665042272420623360774082052050175473176428395855686998213629725400927133947403844690879669831630542046290813072545534956931009750724836262200175928451674587860516830413039968968098891167168662787622359474554200826982832307558210516679869840803041797596955766506047612328623398569735103437258055543070299092951795639847719304013434805863922807378312159329104645800030124476290626178185715373946836983385235286402805193876854999323130367488775549159468551461260718284833666549405515891195399449425108772689090497147190197730578576801798956198483887985040669172037286138168111983833016018862298595461271396596048876575880534597231122118866220755370491972383790637181269369149358449930209736210890507762292521074887220258966710305045051932273935978336984935847069154595431503894141574700505078676662970792261845693179132193085812655595417912717537351884738562429170829691424176817656978596103980334408527800462889520658525643915750017546279596933452296672563388214796322122043040879837908102053694931756031335119547562894714013711710554010804804824920319610452216923284799534993250759037743717508346414326334231937669407255449460217286032843003982813710914872403204896731064588695593679483078768575256727070009470467734494669912723942966768740535642145414715823121106695841866740148805814740816543251319674525554264404413775825322244995216810814923178936891177045950077412643991811653547310637765748797498311297977239459230402747260093935645644437870861745859068452437569737527615737354761190743008135796259051888482578304347314832871691061068942778106866755605322715628958509101765151942830328011057468710057955997582547139516813982342395986096974123758025964567752395216239435115806411774251026263562942226669559393912643790931268272990978021441401387903484075134894513269325836254174185848904337522307408458695616457715860751646987844114572149757880488785376226644349323025932839544121706572722774636786625653403383169200486022635853023317767800508212478934589621286966069374496898238817856368297507212275038468323417628268661311199006989833127228867593276652869838377340635790820476794911352124267362961830858404574895042813916528374070835046975961991550856056474739758447501921133079664139983170448356883491998626895157973567908041944088389205093423272730684118306922966799583268631715673137480352319125373332189280714796406503124444266683508957577588036961786020831168883889738460578848068542016626581339174649965765027740836147288434336383598754975321905516068094595116009875837567849481022996443263454339885149373049477500382510134008161148148663583066973808670198607515525051125489103486350532037799179397556479987219058390877822316407528521906967165651361032902875791170185262974993576753477175795017133921631416612343427850979284413348301554702900903768720612726285798759184076577085947505653541467017365747464714056385715451284280509687135083590737267210094895829058254832091076250720278170000110660642647443100870828053581533322957083300713703126663518125586660979397454403433979425095205917067715948661872222956445314087605316764267208864102036327559608348078889712485866766739491596871824653116345928378021729923584700171850776003075068721181420135184600175018743813413889265831639977651112790247016661116889044848025584953905088283602313522664324167032402067155007014953752906453158425585057382458630301967258097783880730454821934666556543463700041175624423789634317890261766685895298686875545455700333333239371885299496077098221462418868435317804269841600962527759654098483710518729364813382941383231832561407627164534926690309426302105369456932389921159504562497939753892694552861256708567495104089902495606101560064802530261108802767874248697821460700443327717906151397163378707063596678189483344012990947028418876085800726037267635580496412361988335577762659560636064574856717668834163901829514116341155914285682335988288735216743903057280784184229252026434604128105970656085768640294621133014955030510731762811548137172478389802016362339006511913983538753308360784749305747454211488314564045478147333348800964993573023335369993916101831934393597794537625212262877882446358183694689555792774270740787493110028551933781081741203828761452124500567633280880194068957980470575414763739948850746139569955488842225056756323794483312970372417770731949827100848798032645430245021812950357965042166432637356338406939713748492760915274947464169859282704597192340287451753399638665623799047388393855867585777044572787854186954871506964040863818083656978968604105246268978237006085099991795079383942453991970654156521668730939413064154593831428310533000025839267318917230714307234552228626017251605044757899488739055028837254297027462211415544554570339973527193743058763536189379667172085618604427902573330084438575920028902947971791454100843014804504023217220597097663377332450271665799843261984749067369224437798317935494302743519846195692321879081230852151206913939548491806329035282342038055862637359838302553646530237545547577690311373495741167112392568691053946705253960828718718546257859486538740949729119212978847153906715865505844077254887753698128673915533266250666747708251015386112938304262026631592490345812555397554984690863457498299666012323113409804610982090257691244026105448340346693267381372948597571937004899996254880974846433284901241443246001814469257488966868535220545764901476518899989325436441561589885350935274772952502210448976884927124762120919062900008666509678766384879308979499758094242797099897830897416830613150786198549709991123364721214511895380664960887017621055203959180842592436726446950625396237842376158510074969317982894724318751220458452985600994819812296008657631640340530738857292512194755793104789786208206094283668860306354877396475114231080513510233554046142250054115043247675075652336755638927636509145156001538392284526036031134456094660285548583558156043172782036064929781245639248684156813307775701164833552575539184378307083456504721165281112480476410122814339391983745238686904885635851387497348551375106359706635524511720434167684517551171154847398317142809142739562483271754275526414403841638835338295243975568078460821959176046934595008393599733522467063902277636387581889465737803020487805662700010389276078707780544401398722787182520231250542867274842172698427563088150562577863712199465048856658357362526701967102349201006424807410462999748990978785425764754250808615532223303314730213780001843546549747067785467312155400148752323760797866623509763999637204520535551921880368768531468696629639032205383577033766207540173382135738414846623222494425940250237566411019627233304066817127202948506609175134673279359059657414621275029244172455632224086066741471660080159855202890237597936299050150252266846325121030373489195548873967434004186427239667542855171566304558167245737270032470002376196792015444033381177025712080356760674381303655507332129413778896684730965431192395310759401881090308970669780855566230348560778944947870900853627030397098541641393357789687323696456631357230522558404424261383844753706443833582862353946723578566063759948813771481465644815020617367788249297890896317269428446474641643633156366148701035604883201828043506675973234836018008166073115922411113304418048655210035931687771657576306277687274090607503803369903497211087302023654213422031515938927157477890619706116433342406258202370657151266320081773464194606574893527503353961682987357977730352711272664325629626787668905099893032157882871191080124121757277181837065506740237515872749535730609874719338676633241159215833574774258091068685939169413153790231601602182802302079858749968022781137044666256402883537822622109125871875584622729761904801174917442676145784392188781861074204286861753506581597339375758489838896680345791715657547545393960690203476888751448813084402371785493552742043029542633244454395658553441134325100902405586037969051029342881173665750882682303967310409495393124526268854119191753502877005425859299559039430559956801548738242796368217621264532023287799037203463357741990437812340301375067412467035613964542766640581444148289692288699141531596422989322225880941844250762753394147154252371418437263940978613943070591554615185673323697434405293879547466659603731806785101872539736697122345237758873768213029238434490847291092264684024368639985171976440086848825143957431261233793006570813849467174938513962244112812636630270659725742013707970335977648557497803411426781160213205612249572239864146949824818362019064548058727727944817111721007100194717676321566403685522791673402301276509872152856811670073025207380719531086954262153941258584574200488144621288580968807882213983448739737298467043600674759121541644281683279504134536375184221103350300727187186790293202810766596204607122514650763376766025437695156983886230406703806007688680890692534913839788771379535453018697942514498256848526892109873387964220851536603524234197107879365609149679552153394297647960376108768459535299906206407527721429223094809029778163643390758974172858725584812601290181089923635276104579769223198026200194984360374239501232551550331740958005262808705386361052267869184042798432817328180081331532652675313252987394073779697903093309583185882446034320086738870319339446386589106019574921102494702891216348339977569214686945024181678466156419802785049425170846586784564138083317725340085341287931590584134368461978962982853378200936386088048382529135610930624745158442238268250083429656655873202085745003056947604946313938284524007738851189395601779564296366256112820015841410623946281234563072042685463506305836624017600207287735154578145336790759235535814688639728691289523732765412908966538283269448064778819583322040877325822934061438122606689523817395545120830285818516273812603126676886681409709456936935326182503324671655867824143332510841084139461480371683384333631396272196341915582359232999268704749407995927828923387793455541795622972434916015563977885593430323296660716704689723435365506274772808310252742469962750223823147655271876685977769884395182902525664291052117680203957012216233155524466571791033538230585372970477124859346491403765301057770431109016975514760032205091078852417157900593429043370792686806951461727200316424970919239479555109486108328864765158791101517922531601952561698128741512756616454864843777977985820332073982194903149212357688875857780658203525389362506672034300834112952315957918703967599030841529886527572319357920166177320016863472706253960628349230947218333065236454710645564911200325622671592317414919615822586682228924909865094131156377918435339769878942897544462710181602622355706405778191330060220594782934895038602005869761198332955677585676908074620991915185070743079328885395573328375336471270904599130955584471139835436213313503135226350628043102882681544609368185835232829281679577056660153404854007362740399967167812815361204045479754115431210169805590956430772838344922827773780129164330383248009142013242240610758057526656656532047496987538103107639487375311392306019958486308030124009651382691418739886043183639592561585477006915497099282705093198002848197901219785006794503912562177456517624656899174733835606221918131482393509180526493586428459966634822703393887438346500598461781748273897018566865003105880683940265162700042863786410190374126690986760692517589124351802850096317783554033516051767542245307802838671556858337944156794660870121047216639494925377172555300010451989281781721769775598297017092387218164786300023123646988060859761812997323647162927498410604450692701723569516715472419159188068837899678611887310110734564025501144332896626954200341952062869294839000848986855845913500116506625945162391819629992185978867655945178724899147062825161677722407172758924882882434958106088996340887571324835406946918507007020062555327355215232837577054864706790409743625135923024847964807731163230060208089385922060939601391844085267622619569163091890487118694977166019810098885985313864061859759058190266245640363261841681617999850747985229472109234679799227017026196266180678404432164368511989626985332316495949844440688461926279703850306551527966010209661963852479349161025027541270220391946033528260402923653045631935318874437233468787046796463892347766411156769211751207355799908863625182951402593900271169219273890841469586589725616253837578895477314630114689663817586882088752146853845968493222990838192626147495199249276972993009504178559158026928893473627922163867175747150368146791279873269243356489673003221760836072450079982201354011677430926502844695735571267506277910021913899482035782903915593942034033696205693387432027994013176433040559492069946064379767301093892861237300257303305290962840320108381696010522080134725987156164814531998022457662230317603573972430810113087296452645713913832898312915435129491148201410768822999084269679392545034879262559987808778119134544475063406854663395278808893220896700841298076509839899661414364917618263474513895952609122167694513125379172218062769827353300629470169648680176262898047691267624720316187021162760677283844307891765849550170775493491010561533905317680865585850504822006010367023028151351402674704884377284641182190387341519276780170592197535065371256706803776983618176602806019058461355997448542827762052510534745904991943959650628077576502866403944979652286181544849868603913111227003204874759088484637701641910575671222288733226587571636116213257700450819629843796491595863777502924901536657119605755755847864618219260762538153198103714266730494894174321359537275944818798024143540575322953663735016993939687934938520424176841510543634056729714946361784393644723200022742822084309290087552781820244943234115176824502065348189113798338292800144550835400579392044925099360642686071407659365151226198446144284823495510861149297906524349471977025559121314861437857220999937085255165331501147739933236393611895594369636605052073615131664201629655741288693286621227205278183831900872472511201322993871468823987122599290725225990691496246614397033368196637390043322147071896009746296827922414319557050527516794793247906998014932455534663286791443378765365315574592296905646827392498154550564372303691526792669982955658332701345884089661159705187198849130742581041458584523814541156353015121954219935142004489265418985097180189382867743899618854533507918446089289752357467134406819800661367197954760464221090214162702841808763480272524478839745037120538462105699205418520853288290001004060601471501516655001021578761507270949518347281846755147295511362110071774862966344419495250580261627328071118628524826969073408012851308765573628329244052005169538976575359687522542693180652438305224911050156335581712742798085646672243482674087351866614797498912019152025576735188930291487972362155326045352034074750032399835004008631058664830201289702339064368833290027006381378155997012651077686074259425844517825035479390557160745016639764970274465866457662736027621182058758165323993965217097052310851740571161544735723102154336369078036304948212324526696824177318831174219719692951838825795839045116944675670923606648690812560785053539614843865448731827484442673157719797391595301107087963172647832547372161790660492885859864406077561386435566440816207005151072078381392010348744930550941123055157152076109514045369111165866989536373240053532812580795783426461422760421648000143477533987379474107971153962922300450574721173002535092201494610532717840412655112204214085097032383536559182612808000197931021594301628909737097012967429501211116606610640695066938154679882815764182102676058675944879708997824987965787668591723505287897190738293641324740271061917204068845102844149591696475722546935587331623456795374526785243550127257193681873869243074415859744842800908332800015328962930552634167410373634658492840490758027523152980077406640908609267705168818037244560223841851284770704948909558430684821085625973849171356502850029617425383810585589162684652820168043589344674370704895463028872625082063875380661654314661292376837978512971667709947386664307069201914935494547418137175822847135905242501061171099841899281492323768803176383787437793626758703630853746861582795651539939939421462874955919418765546863296556417343004376583807262901237355309627793996336032244006323870172547340720309876424840836118624825142641639796769004275789764742095721756663729438306371180813798071771852309956420538288048895575667676614051411246767231063337877934054887510443201167936490217751585265710129119550783361590630835752295638131499036230787912213417350679675409980815254453260359384093174916982029766346959860586390950968631798197207473780218648032880828041383431579257802075322059633925868668990101162651013680153537978166809276929370931183470538108610678674772704444399039967232813011715571798447154283940881923495273081674912138818745057852839313542279794243246832416907338928164775338258468925064096170019117012688486606348850168171979279122766976970806143570509186537747300647618542154761528674457949710283549317379945044831274838045160289752696463435017101065921662125137300557916671129287389075464869712322051623120283405463128969794047603024083879949775251911026356118260925038997058027774334288246301101847328487891442581673108037259681794391245708729737508859723217624660866794911509298129413049268049522978511847577363319886321900652634863478630254529291278461638238058925176626608344264105434057734487752776368811160323198273023241371671132777904447222445765771822718250315816231709881900394922216205236503613377275760743065951871661993720835602117399948266782139119243759166202879705288968366621610965393765487645581426257573052504904526032133596715639795860382179033809110845425370566431052356451197743312715931944863198589791340329620196289926135448076699830711306991769749564906315466709334163002621880070444514875274140652467298123043338082822095053489531826484944131541307183141968596756324526859589542129519612736751917882673054888729411396292002645237452568747783854777846229195223075597605515501962524068421931823412289245581446734108011863299384037965028755508830892702146933156583531782908354910036639449391436358688146508881702549732840246714199712497084756840238908468893180781675601145967299634798870091283476574017106930133152925166561051936779203974496418205984074885524715156095864027612251462461253207212756694757526361634297041117253865101044141463602942240438880670339525662140485963027574025719473787213255710304323260582504927639071890259906050089078707888864790102072760705570560219249682982766400934572813434388790833248233249511269250594000648823070025543101827863178273254057932341779718484151688654402954375913395093431917187089877012153694166835662335186921170984215016732252400979809040631189946760317603340937079230904100260303960690740531353467721021314238409081014470636765745311149523753492719118016029648608739501639058634702248879817932227527300353128450853842182986353390270564476763901098628689733518816789477517694565445574269962467195984167229731851444954933856924943313620420286893038634492682233088698473034929338003255537775097219335796505153307761379201750178032388601117242547371259927806154331652983593376372175107507436564190108718125160566951269304222346908295995025336880084365825860311790789075100483833200503621075500631417115485236664683629409065187865675162111472220166290637771898576517462584785223809037755283699906922402670530905706179836241485221085495215034729699588712110449331570104170013554533066719697173248290850243885112815558933532441121336293697305087725240567685041570123920746776894331276344372498374990325928383566725312616316955056323953002224522777627961226922973080138794372613181288395423396739439181754376398283135071091512891214921277882728127486939734002247960706635276965978699520462602553855968025231742760325589661667211701666685814484225620665389433140933390203517164245411007600600178380286022368518495500755472692837593421109453669563254095357994476234732136737714608618629290438912349448313940143305636341533031520548936999507272043838191436507511775734135958422776154529666559584282524478679737145378378263802717833854015926862475222720664368062406315372235301751328390822484662141184377012618798290975794483669347432992775626399417073810344320928160969538718131032428233514738904249495331940693085399547034336598701571049599650583301049889258754322619993127279376164606126263865962404086830193199444591526011735945793141150173270829645017846093574207332334282960343692864975968214534521804296333509250969609049677904365596098863262141572481681066609725495758167407043803975202765447960231973440315893784852812485334629123762287206914460776679167326847380229053506350460116820308219730279711211217171803635167312671489174472821423327202372190397353132626805886320804018163437710356125900496267371812659101511625814788633815750605761712320602656584946579445037949915269421172372788629970484207819672879257278381929110483491276378761312032464447402238542575490842995769837664335260562519251425030272104844742658656847883754180045751874682163168471043374972151575438135704689984364366736726126697191778365816098899658196492309639942902373554425574659003367136339859224231174267339170428609741092763760824768907401418739562230066276939653512729963676896149905915981093896555507953723474684234414641744324347089135862154497934188943903568115552786772484207834133413826243814657664309238208238585470031411745281399441947194199156282610277648722822992637319892523067921848592951137106366712425108008123021039418127753292174966216779513350666944042308311379172363564501542079852827962173795434614369427564203681468555767907098553008503696013897034670717728880993504659239822320843424296338454769129204256959942898554600283120504482782332458030543837110747277769254999698769152800117214081438794419975695176904749313789622035372204338303412194597726656261091307319527227617739285075964070345793105051610932462936790281781767516503663517361248710212915074654534144063847431739500846625326393956347701598588698305534051586217579021988569522479091991625430982925056472087985769939890323302913340997811196624051397955916609641704866028021341917747596701618322562204409827104453586308088285145135943684782273883603407089923324204521001183452117890593892192764500156513153941778428243566485902776652300366022416015460389420057313342379309524311639501995448093765163291621041231349329377047863111306573817298827551876084822607719031885172229802677669090786582837767127083296384180441890829992819657496279329301243032265202261450028938898452551075149833850801628122107904664458623140989777640890295003221697518964512874843464956031827872767362778808945320188047147044798439736990684184273754933962070399567694222611433454333980770500790303136720702728871404206581269247421058601668922841202897511796952826931111069417795547580964379517395131307807316090691362924104975066973389456571041147387741889803757310375007428787097701159443879136919354522494093456865284178894132292892778481610848694963214865763325666302274399757484245066916508947969389864872504961320143908608071573613314820180621936366836177458211340917591402625775515911155820031754938490060441406357846724532105763036336369338762214604144747263982675151774044199700973246358284142471716866999592178137035235102036455519549077268189725145695124548723211884928156353057366649775708060968222752894421853971585675253974250114629069800745748862763878896869113650624175005219707506339008899546019163101812180763042595358780886102893059521752843611883654837947583719791669862390204421244465196374143245854725872620038948037947497029392436263680074960765336400811288945101487940106480948025166888628098668989221001218736523467180488143234929842875335566156930306492304650060926219212952173190277490313403364905774441074902237275498951638938473702064408213294418402931320256864651869292484445713396235004295526614767374535005736279349156710018515564095748170926320917537010415290152183754921316821699857750380053095558710528428826352093828777428896827855000855226824932246266200539556578174404644038718889342424770192749429264366345707565785277332880364385711220648431560701812562636511946512236558844786418825939526017186882155590457389076350510850071428410550461863767004386852741492800507442529434006457994769972497501002335490890509989663966677967600751256347392089631634600884166271488273344189727744675336046924373913988809405631719215668310267432190142278079608259519256458964202207952225561453331928270493112962248951111549913505834379207840221894267540784078421268718101415319845319114757688815589654899910320380364434683680468094661295296817808668012548217465720771843719843553973515408209446207178431652167024786853995922908300498571999665261854260823947618786479123416226446600567915097503477936870666248120472089105630215766559026303474651042250409686224006118517615097641178576975271771452162199665072436363268183101408024155311108507174712901644489002587984695043474774195135343723907616319750020647966558925202233695700928934395835625524467279788469180197020096352608209787763545212559167877370631385122745971109951526191474969138218179391639579931206922066031146374483517229717239241502277010980647249907558329667174836407565463588601579585231182664048164588948518133941725872269778106041161539415544107863012784950589464254981108118598401823873101822413522989083592050910255327089003431472457167653664093446364167199332974419613858671584965135975777219816527871319627021707494550232384088504798941111650720755235767971124322916224221143429542657319146818111890987019543132391915623701113081409073798911451617967075675083574419731582531444878618728098122054011484590335788190511097384142666776935240630241344609391446765233387756246315656961090643870105533669335859820033485386632689799369209191871889379150799838487084634061394376759869968461530554035300224911501821286757646076508033803624077282216258824158606464662308399171093674046865546221726001375607712949384348182535202866701518449749287725884184486740903290257725258083820842270952427644265967606251633885041422743631841971163121334048748763428041681854380377781206002720219450544970602133550397321921794828040905308807650119188817772098896664937503992183967947481110432485608117075536862825832249877038194730794089186841739588753612332497396507541492563274443332154501401579440004911156895794595231377797702107737897045974542241419216888635461175044728598053367593049223859568538359282569462989631003789373498647380111217874143089396372765341774048017537748308793012156919778348120292623319855114925832436969243739579235022231074688074012862045050775806232963112423489912132699172364666259484580530654803546823228101102690519634691509753159660810255667716553251228735353805288447413200131612466990129536536559745016233999042609464323307431640355886625910372606652208528973342187439269095339366549555764984709509587690426123336460987352823680503036441635078076508226605651626836298741157042614595228281226302102200889010598689610376116106334261963768198234939285775283889146011874557114263907216277119253108023375869261030535228286182419117178232941767036075476268066903739229541156276904531884062340826735733565012664328685036062755915075317129552506468890382583076304386203974759099287543615456740273452627075504605635575674446016138088803228182440460820894139491880559517735179808222314541027247193937615056853774229683457223585577245516634314595935832742658222852274621563289187123743682933541161952521339345229623079711125026905056846436636421158802820160302353839244873573920219293821902238101044366799777729613093571284449757524329693893562218220658990211173264504066180232709256309072789014313032926253259213200042849288372610130197676921555175388128484951071819217277612301254053552164210855503646710364317443050019296433510128327830898652309659441520968634739556674177106466421026125404408435151794122885317794292435445689185513425378383738450162597343405218290163365850426900640433257901173701201575163007465690763985181651354589105808384003339066088246891994062103783671385624264313988023097203606399220910858704162204471940023854253784007134527312343207002336926945796190976854773134246489078267016538285229758694664650055227085071501626392777506525795338277320732610453244633918685600606229139163539117065331742500403759361764414154567766550956835348813701329718939459496027421007349712148027689855071101827660126518248000688606114140501985252895267323421787750076539160595592837910704918424918322143618840405477620583306900187988232009077066538931523916308292839885344696600578547565934643506801303869414517112971857416764749156841530299198198020413012844555076825944987508282345949159932465855294540395665867006795945074921147274468523518240111929432648883528234558798233414995773505390320692095288335655115519455844224018575226279212608392739793519756116811953563483577266063973631613763828917005453386360066054238824573764476162913750448358718575152060145280447832310248532559549034622019963701405860356772789278136462426575451743075599258187806321748248866909931872046410450622622495064529899932726019662730147251861893009593682548050205862311662114806493001503079483000168897342612269786898724313869335951839143707306236693373150057102086948979530133835748248354153737781935968700670532174198937766300219866036535831206052479004189738409732413522913000278770313574142113908648269053269848465101905554888249389142074203594936802371269819780333699548567768567983140826842583792368138794931780611401911096205792336410126474318513055550842784486244930318839972900028087874805426498812777514099135237238597265392689965048490073319548886006961679908779001940339754462832243739572592536781934953435738718141306774673407318575697576662987715183262937230388872730760316571712855923081117058052881425833016274849547709071301995002891683018182669357916369935495012019640943719722515942534739104810446887609765765924173347908138445221847677805995372141731036719703547566073354949683657365487505996624741794003962530387487828310527664670897980076337866312957743616671991694826218014525199966084915176062094869862796349328528207134522067211151642141586592180935324136613517844398380816428526270868696004540711260233691052798313219133420248751003588437526078156245851004249068450166080741516322496820166015721711065948695666826383632966019687043431011178943542760807791127885106304777046662117575716332001505668967838194275878312190311877640166014998100355576961997177186505616301575039839968795473705231353695288073445028930609724051904011326113408659403937954408547426439335726494695277216930597970748933221578818528936083069922660070055321104939590916462204202265331158987671021120648274874972032232897721942760327081454940412598178512570575877311801858039893223273429034442904760559428342116098500978106630745060816876053987607566404885965241622944375188390220958446954202876186014513711140249338365630168437870528572064721686307631944754907536130626282703252026622340813116513163819871315541884408309002862722710121570137720026450615656967868967824336643842153689678343524674955560524429304197485931045185937030717141085145902262720100119051964518668307953600125433299200950425386049072512146866856609574945908446369823253434954164715137763807064896955001740380194903991750696661579524252700192141662655984783313423097700207823682914892026890282909969195170820663124716378213132488374702850255926495731687295664271173552798329069978350756465194394925190248966843419526743018522572173226088465523257401588048174690056228578047278661584938082709397076106270093932198663860620370596736784273684429248307296141706636586021867618083668114740478716827395388958154772490281390057400327252510826748078762900616778219989000152282327870412829903259087820251711790558900937288113596226393169958121706968778456845553557599412266145083628844109757424033266706124718306247244709073914169745205524678812655447745185885016064805288373375513169043705216491460345029841207144737680930951499182007637432918571603838078115513018766470867662353613564048399973844166318311827561697177515452313858078583762139035653160135845084466515776624050573446030578744495585994090168516828565218302135297748501242032328073200919176190445720028136234735960833748855055820255703711308052923668059861101377422599479724614997934124775787272148835584380305725060356991326424475610212439525612251126299900656434686321880015260115441691164961222544979722963256761927232860329480771902425045262035594023341040155370788880733662756842274960927190831261448727236587681425456435706558866027633137019970469373404261967307990075787589661185591872579246472850481172752970946302832198195174017080438549759620944194760082926126917365222944680913864379830894586862876143984508082470656445596294895350904345488590221164426086310160812833611091862391337619190405981418084810111439688035722324203803955712911908907638918900995541068090958413438025249815950655382701506040724393444211103527310633013265874549502967040597300221249010962809117918063965459083246862576683988776454177027498803940640177915680270842030526904725249577225229024142623576634772738855789883445290027729251628449578176799069335131856512296310687242119580364510742371567530423438215094628316659437556365124620668277446473682549784748683289773646170238980895978340989980175827725094041302201063665287318625141432561048854056523401046833927906135408151135092488582376478562812664282482523459131374186636152744330084398944844951605336373955234750751618599071233187682634715147345879249165246224026407960436159115157289660302761942950549924214341409359752090210520350576296556366014645901954858734853238321227971009064221065556437937686890885004048465595710178958856496517975869887061153105116950470832787063302883427179830847094667430900582744590564642561436938198193912198753224484048220447654729153462849330949401051738892049534078481057490064768392749532131691610646722669572067683464914576598670355193951265990535307515117736330060244954674005736910089214904895644186817955784240104859645870310822961502053490688730266474404128125189484494912290672339213401397517100981173971007293985413365610719484570213662980675054077341450604127558607809947077982993225159083177546652545373351827013648279405785679060517010204024780955280105704291366418038822136609566087270032367542545690459946183519979898311580594435682972974582715868979696294813255280901568237426161858493478681577992483918965426905066306561609976577447555040445051743966621208094511331720593567209625423039108807389940818306955719216859483360977816274307167979428746435942860384717388307211121559423538823729071466226448333266528616323086462986046830056311960228877451416193166141276698027237845596065772372343695112131535582651263217723221914919836211186054809735509449930857075842128845688061625421216479188755179290285537495726499775092787527063351551233866763044895887942159355723636452717840737710039036962839650070334916486288679340271261754256695623441054218093070692283944661260339703207866202370915473558937980747487528093143439468836037727429627283013973631147825059107195134732345985336764916605190530322831856031233810001962669576851025657670531200159494304758755937086454093343400013841535045319080161281842450560157867698445029179106659283361446407614230454724911479062223878461500677966565712991978132702394846786748983560059527402492786724644972738491156225054191611552031486977886233350116383412637871340866271324980474784435827562553556078379732749353293392252744888105176999555398840668651559537627119053341597198851228913766799442327218770809580911306302347492353321542566020118384655433284558457926115097517782071906141439859874530088295310465577984397030626116826417007825150509452303742488866275772741431617662079762797727846295658540269418227630401175016981929014697106368343873827864228174163476930963364099483093951567675898219952551156143523498860511799164347285124155214323610253716155951632788252018301581479089144599384479635023056147111930276660832712857049339171076112522798069869217649490007227094334176220908091815051421509821999863526659735157433580136281950102554347550121123270552884400695349295448070870095349636184232190690430552308746189099386221466238672299407730521448566970059810435635520632397046546779737974278500013352668072728440458345920611245287690604136704959265953682138405385475425092187557479957483266266023635455405876104962900030010644169360162286199719041128066883032582952263889548884773293343011190140355154568246702581755277782563545383496689293649263211993013750957833743585771925214377422479767557632961013205649030348197456329566913241709128903767013714383547497714135970544824743110850823100973918730702298765123232133735270296891925455002588744002448868834455809892412363030370965344248227791768320882187442470387325986348248765964283322095946734753253958158180187720023829213116981122643355608598740945910520866462174736592805659972247475190988868799995932019728432272774162809868839671762638679960335793427124167161870424172945675909991278355380620740562607273293910384884802549096422294307434150043006982045106138160707369410951439329710466694261131436873118047756884707247099949750606175132769964940399698338941392081961027352829101530514260692967454510285985207585185632062639262559639299380905907038650955914176628207448843909337110876537282579947930831439407803872469440848609978380889385060166041427477932815985268875877861458758630657781638136365903521761228553405341442189414193754600173925730245249654377588025332251496279189061672674556383327569153002922850430112110827774792657407427619499889666514776329921955617969327428411764670917361578149102031521978354398807412152659232860561349661413957295412189767806076163162484141788511418631094936387530158888407929504125219615807222685983512669658093250648998372811827686448210570472910929172199920266525335080702243416086283692613247730240970251716155928190260835946103671217306168591552860308066328599566374640040041657822889468832789230944905969031808117459899681162428017723161119013863379173510158943387200021806441588363828878675280133301819516346996003286235187456758924132062936059404311375670431139290201982717899374569083647039616302915392934262550135163266097263980760706000582508229079227605390283481188766643753498487874908586402497891683581976543148063606826433104963941800903926329210176964971553105190639288995109535178938437427695552178214379191842692249106917737918829090108195533015619078635699951225780872793466558866654302773020057615429593065825509765446600843827530905445998711962844886411694203031734364193957271333255498210820872997271463462582700588466056419739439526498947393671485858304828802712078589708404397336269547777163657148942778228302297230919834676830622892146418794341261108508946614682957103059386529771977583605177044378673604032328382681651926470728584981237925517941599271393283151161025039616999899237776649167669300054623294396848567899993621769124001481478312232462257318766147174298666395423665411925191252117142573413469057549511031194209079217774775730626665408559346318548251942299351951508810506720491405753595024541695887646183038358990750773332236768994462960257983712916954755432207212521014257540159512794474242385873771947154593901718439240779884975217488604586897441719725819906121944244152931515643861196260653523430041553375705134608938371192957933851364764507276954478108764322283021169970364283552621734185525336876036646480658311766800116526869304170788091031563891001130010156219131136253641679503290648202422014912772672413048744728378733377372028512537298836947849044470353409320466719949542136846264899306701172025183666640305461882065231365875006074929677762071041754960452144229535771944382295248807944573127741932506304941518219963198550251776938006199402702843814922927876788512764878479554159463452286481296912031477612269686144680571072516247638699567073396324771954064474115638921214029232006930608086215554397036246032346564493234401064159451508585871966809521516667437816772880844037326218232494850967082121725927630374261522110523403157382553749737437776891732172141862738506035142914894552277279650421094534144203677097741263351414668768369997683276000749578936897601558342883070155251885287251642478488597901441999310508905660577607925699208261014031262993212777411610892364793125581998171750099701690598146556481913734253815524289014900759054898753163834372511140077145251656338585956916587782146604860222558303505752004990967821876822033432317391195211786704061527054739884823276676839378455991546802793390678285411324943644578825778140873709163618122873576142250621691839196187800193270641741231762037055718081717664355677858068216903891850458037037437338143609643467094697293532636940512760933677421878857331835878622181581096000652605078468406706152185161856889859945289255976079729779011733185685051742042433534963632652945636126035441493042242968249380865167746067150394139918213212829041201685820567038583004433540108704675782142917366286286196774858365710582959843767137465962508586167837043656734728146894894391569487682089869077651897098413074986482190680867383180556951452907543525580155348453562373019500415922334727779703775881898994749977363529411255558802674927507829419425195012362704293732408545258921441400309473179346499598267317844513974269880108190055280617783063295098378037761647864938597295298925688693360168355312144142644940787391771127100473265146686705395039426388643222746161156789441360284166204070890242551030241021462698629168114466236943246254473289704232218972394833780671086808557187198292893370508207467400568048317882352968016943681659097222359611834245601185066243983233990338258785146432351396936655221132720418519512030978526185723176813856622833301336220365669261535040084352151292102175070767719891778285256849286307433420736230156012758473430285305617290997057443166994859045553498312976736338493744528003584896557711893063960903050400617804778754872227817873923589553730987461381558694501997486454923919447067911603239716803351933896614996363691722358173825063924796062237174163500009933409729341018177586038606704509492901584035278133048075741988096226004341299485557548730102708348433464995938773706999625033036426148656554230308608535357075603033136949357723714931469319870005464851911782894421841765105587551287861919460144981958203042077423215597539622291128063107214121590197345935268938921204327256782162479136100992631550730358271057174360496087007360430753353742052523974041273370405922380301868819778345957087911921123816194994395743709741868477945037344584580202283454925816287269393581728477958332591638958217339530768648267984507091636629380914150921905582264871999085794249341695805375106238372571110684505028782378957742000923247523275021270298606219145013991459451217880803295243892133990657312029769393172664886053642665260354693780289289628662922105377622426093702058016514741575193699234005275077716703231031716104755350046797237519605923986473627578966097180398602969112274552837088394571563274149572446905749287580077885637656717312109687898087404010168874093213651097036965921386966906764789712369588076272986030351038176533392967026864222993051230855742098497198192137231207974024788846702826198966382150482882565342604606832577605796785419064661704148328430497297231038795281658834445887185394243216634243324767238294357082031559664046698926187729707755482639488977028395968708220361320934471562742524459930677196157714180442004814453159511950896767005779095612742224476041024869407117310782354462824696793792388561725063307862708577001668356809634063643166221242781415425369249210758838645944099251027137977702735228825809593022139998472522203896735831539887574411535171353170155198181662448749607006446564699016299760987892700119564171351335931718368651977191869541891740673820299696965370149090974522966866086604218413488534489219674374643756438768496221824513366168085191307119300025921152673029905218772926294448638327113906353345370631240744455535533143637687528495740078406188986383287166570543572565653151241259455734182018570496649649540338410428321139830739763511244082589174070985006882315367799619294451961009201498049574766910428626393672677369759001714146725253785995610316469491476193202950562793027668817648118792966301298551113195839534635815355613825765398952049823465091413087125299347786086231384014127776308290981035533033443030064829178121775117803573291606306392931374096598479901875620527753529712057138781987064193451060205139672339030711713506095422519199202132983750387019186631351065763409802258523644099688889351076630610486785945339118408563406942803632631532406387156231002673504402864464557785896191800124821590345245689038681098443666385459533263220966305826073363399766049416737135136039046686775405990781254102846820567300083961542275314318378316468039901639188787783790531991842709633765556683019098135123280937597595662055706598073283354392157000220985445679281075348589123863236086080118403457358972854074265952853858223707786054445210865619335720574764993123230399364975931170208346309689949404917570795446409968185255289188791116760652289564849416332733010118899426131902052673880848959184560871137911201437372080116812066806451193535054739931328506652714302966159900375154891435148249418307950530268269576148291482707899684108890577220005040201782254966069696321899310341162054238807162951375548002168714968126347547852216610602179602129453141039398639882835727387320455375336926965973560213110697869767499853587114526507748241284248024515324109078609159620186072798072948224597197319856258357360039674029314254092235020075561203746620711445471402886456200589414542596392636568393460963719595428882957512872977100826659825658381531984432467579314650210040021488727123054365041056780766861807528874300770713750334520818372416937340909757653452229628421190281026919163019462803601222258111297308125604760909754243177591926371408587194518750395539424038340847712773053013575062252319158801830763828528007723803385954354222047004486125490147268145458851191731639735508072791394933767594431531612122041258381271032358116033252511669560331996109328199121346544293078829729774332868344286568437098732158516016126334514175978114371881785716770433784685040374426708329879041357352849625836128574100658054557973139506474414207473759307244474004974762220637828968496389397757480651836860106165614884364228659875093902215521779270726673478980424173134929840120220516075928989700373543304363451734440546099117077512217712888487781754603607294608239328579922471925713236309236297784103880968761422566634363457938236404113104939837490302740738780509354513788346340465218251410494508100550070119556182185181564946934637999288382547438575137712386252092571976098320116255017524841237870520988064876334984100523513811310352949850177916513894795726442661577140444652412561705042847913669200611384655077829637308467588631160433357505297100444052321422960595635567176756525858997583724230713237671465431837554419373580184916356187189017860253433465853597564793985554386334231346436803179553425055335149252512828776143113381690559072555695920232503787679153291471822425971253362647849754947112561003468964920363902355596800706916796312052516511166403697413776499210592232010106213276493946462305185069622175367570434791087909705941861955544888067145940866490410401293676783367512980281302379793093377912143119288156312522554322869104968894598149226123880263029245448181178792355589759899360952279126510659889446255582697477747552834833530538930707764304190216032324909888901383055960396859897543674797226438216206220396436455097563356002591067918038473315015139364138507461142048567192823296826040895489363870542818010251725331152410952515450243844185498831347622483823213783577147133212340688451226190910782979373306025589930216546824671197052640643881476615515999463424454609797234717232693548595508346332495549138079507146105378431498452834103588793450864296780553694629933061408383890328723156875371375946160401989464097838809389409865165052186066545343100838033897152985696745387612061610861897348453640161830886562990303627585605103133745905042114729603516257882834442635850156646646714411746864151653662189682342470069284703776901761689981713113341573564371480424181554732156942913571813945264357706667694978399608491385005227057069910460429015841012634542612158306534891655247543302605454321510692823110338868425510218264708718725639941541015780054000562569473556990673698112602381962061315741747044170721244437068088564470716760346260554395211219293555748353926204455998313492746618292154203673486919531171755482417637596446996107155096142010753094273870185699566298723252687062904080752658283142237176312855302257998603573729734031806297271350140887851366929700149210785942998202307286210013030200787833310221470682488212115570935733823503428909094324304897471385599838499515089420516665061043558421189292556477056881096208634501743111183470478011758258853762164523382250374736941468605445222562430684023762411327241585295073375480063660787188398404241098459095594873312933663016875778706998570406259785225185649811957705174878974810453855968282131815672839381361577517618717653039675338899470954882301321964325739712932928050497878104124000740180453716658877981195712803255095580618342978570028152432809576426362583624486234931961808941209060489348981736853492039472080646210886273577598521802187330708835566827631248793917645210688726742421464053687568803585364799521981367352302495554057239601085307929172920129653425925315315916619355947805602506079191926194166343020717260978950677652585567634292178954236613439765665651040307127057167038151829153171186422383237075470681113816500259678023725758659895534240934200760031556106541265042044454220489142361378562908998040951678943462117188920866187323625785446342769004297501602797318085726396448342378130530520854230908722048846533126008513258538223845917107614806272738755433037808518017152893553974384363315625275752920351755055118028065427193200170563964947058883262658991321051224580287265930676440070481289905498257007556034095766334917715723464552816047042775786831663922664634096733228887516908810436587138348826803110170585540734630560563819061021525259682921545921379640183541563184790430201706217255845892158644261831886864322405223261691111474898174321234352423512785021819960945572398774566134481984142891731748403340942019607149357564174816454480366921284152397712521741873577424601608292845411780108921038266587736857515357119390153391534825433798051647225870588418231326737138937748978529070750934208643534283333855670954218329094440928125146737782072827096296159085304704515023419197562517390068553114809636235859024671358593900798415221122058419586038437447829621826927193097618128021800667930640863053289052395961245199472710572552194343346202107811328398684562882172971585169395838339534504959266860914521455042871032718826231194729244385968353840776723602713150364700026119833655425485197469801776061439614533899389866799378826758366256330608318570303916225763429292525763213710084502308508620514716079031921807010206251094685424790054288433402638256449780713657336768143489976600142607211763040827608608180589049028543676075518970690218570460450812045701852159995462837757984650937369143694910410544756175043511512791057778976938199827438643807618735870887556894731444770783173789324367442955901796053182125365487918951808716698772170382467257874638539566331850645076871439307314698125171462553800902205311462729684589567877163043532383550672474778055076743780416863356975317046279169216789010887693244800541633985489223288624565597898350631173660518425422231026370659788507020032600565983570149439342933915747585282275562371917060121245484683076900576132419015045331040400679505541986457587132485936927156209018784270391806949684773356762205616962870441917306615536529415926306516416579641454080188347220019223013386111530247632819661520842553127854270948664468201485098738854932214305097572791906889114591487534396573730953780277844692565377917652661099161227406571575873529193951010027986858606529128580154398537263956989664590300702176326103194552309809983510998981587934488648352862152907981013426416352978640642010651606947891204756204812656616008681972000518285339612200264375310508931617160561272740472718727783125822435917241198497986389522015739215915851548878011008822857602928655934645864561822286598408798332813131170171424692950272928048351558408916446990113682126842570386614957907937983852759920404129280893754932481554598304755020947863710276776036715994970662281231958757775243265346548213732416724275375841785527952983122705855569674136169395230760713467848945232586241510953115688311087324286069790086854195137945654431428457755396956128394342040807850407414998627590240276438545083697506663766932920543059205904429493426162519956949849872589739806284876991081821144681632874828646985083888943302173031321097913777102271576093258464575297732209305696151350961477020715761541408482998538096301618137313062590243316877847376728429804955098422876901035431810541179601154259225826752292787244653367044276888182957405070458977121245875023706733012742120056433534054995788274821899297148385149867339770336547426207583704467740164826293804462338313796533992183748587516580316640798038091580975915530678883314429295332534386899472564898916145747375386202332288851386231709564325668940479314029502966495316002402622692634324745391361701747929118995957898952760501254854119916634046162516231383746977292494545546907530454967936824036897212876562005332532335945211619176654644006331965505118329086137335517951784708218619864743806663450019328624112679653089572662972471809965398147089960470780534686998899159635738738059904020476326394114518479995972565587305187525767148275441909010405135892790684075526335047857641605507207780252552314026276632152042007534548495745083937687059994157690989801103745830659336039895804780666577506357727351692250833036781497781722483083787586364577794918411038662789504905786713170001468908320758928338174611372501497846173483065155199798648583385306635568377464963300739184618808821725510342293578718008649761254277364380443716868549671642061242206085760823839101802646286381232286280771345662253194165739579283787191026949310291471860631594738844490741565441427732262908832746390156805930297005365501270620929694415915240100294904827947735813402039419206308776903163553202132584658065290322420609283632591290600447949441618348950354475856157063257030531217820414267293955456767294688240144251217988440906503591539655936388807574052321996784627850600885238017759803144304132252617539486986149649397369563651783470541532056389425016005778495356414310384278688923497197166312806554648194196615412733663790573470526204738296946202789083396624870234703869640584218702251540095038043708275048496685668513606549071997320485810706238376375821557285166648741527038296095257969795393270792983519627852936391901550502917634727111986461033651562034578971656034852295024184750927633214968805615423542129593714064078911675555746095238550904015229435406741580462190823203865339321279005921936721702022790024303173101547509633419295667520389243975795271988813691900185633364745618123878005347734579647530630599633641050497852777730843850901326723476651464307235626165520018991873902570854728895277682805502693437560366631588935146780263252358176579088073760541768606271448546509353197402253351009527737723316747877135362400231799910218361759943255701914896896380607054981835549987276210750080942906466388367408934728635175279994329862943269031659931206008188727782638885482366314115135925444847887125968114773202213034846929736018335401743400948917587113694532707326390345141938617158263521308719682482788870561585372692813702281952030032949746291992626469592015326625145212952692412583248580366793630582379113799368799744782769716555340671287408998127080121847794530971575435309584027622738753632035493771320227886231987199082053882322157711840858299607939629057074748522954724565456198131925456040597226720269175580241946940890697394941910812730636704990740987999870026835652953569227150241061439625222205866606389433503558330216195153854435201410572112068971609780435296513864398793823268691300124646013116092969827289998569912192011903601127126839141982698643846194940046444425899331711453855053375448069764444963621559859019860905777131069360516135537798324516902771507016067834386726804490306634486946817386812557325359774429916692409886008223560122178364565111462194220498830664512940283129993942964362554529791596874636688913139597383995251706820040156450656002308422473736115063807640376606450769010402017282798204760273544603576074825303173333273601496143279217396202279095078183251342816558310430502297102547966334873634798554633809152182534142971929850172957851621006188693450201368879013474118171339709214987021179940857395954239725263604847495624532234460505950119230298978699906589818276630497446068992489852093927727533267463867847652359260758652016837163350223189085491607551883197669898124894184424802598088641092380919504761149326503952346030108021283428248593124973738233145175608236089913289555402925591145104498710548003252227229286534693219684403119161998778546603434111287329814122925198338776230938885435083770416021202382624284774889964637543962940544118671961757984533583544673414131007285699741218893618696542986653386352719861418075696498019361390754573252948624440216457296962605176900355651968422852826457398993589744555602241125152327874040117069241463203802063095856125809334856015975207510289794390117254688922486650558109895024678623647504264461385029344585941209400425810976118392075221449185316242691200156952703138952153172294633467297623126739346067277224791076114303752727373349390465515941123784340877395122123523935776121819978565558551928302510525980475511325002053425179622247124850653067673695136611196851205919397230793094468901288196948301337378741352010827888626790966842415404585627817646260726461612538283873151630810094855111915033466541011153378560138861847041185761991784009379610749560106394671224966540811209844943516023129884435788502952904383430462881895446155666347360259758583748445658829693286439941793555395320500639584771254358882358047354022720194821560257426194212513308785003424249628846071363900820628849709603857432637271096215660561166101030628524692189418650560799232629782169653920494114406688283372196915573921923417531674116732212438828973717884773550562898815206337082314570434884997511099824103710267990055774348798746682073894885456493919601581719087843638694147345260424519448691515153769202905216653453824856376375947593132733304675607012515231443045283662322195401223687106632867342618633741235570469427140541633249164662916195833528948191954685082969260344977419029814744497293615477832875381407923573488414352461142101912376385735575820107695332173623999393150772020550741957329557408946929412109028866436890210232208271991789431939563731171924933062228899308722479879222759946112353664238691571673307944406208297943559043262758502242146810711285605771803069572803317777719124928983727766303476433711668151149990657270026272747862009402653413025753080078544062025904038766915296522745651900727445677787643238947570431636028398967880925716239448725888026770307185066498649113162549717996826817941480092110318670611275347999087283337131176795782604649377578284435274038859888379066598994944205281814517765728735167269003364496605563233771603892534201565245052780143274434794869072124849234046657989578703065594837844580192847899879725610972844186398258262123170461773631438688149311399132393537379570462951656948039985862017774617582712006301871393310423899325542997947332218038776661957709383369569723469556593699384698110264356563158262944583378615292038119978699583766318826115356618519518855610956576731858552099786162852759484604727420470601714596614368578121127791619434181791239174355152971392477647619466066107692494500596873325157674157863319315044052323214924148974300741532334264486032561334069935191839576738412902311612935104994958481716213936970323387747084576808710911063667290561288445510473054929297013096711798250132497883123409581285119471512993846685934232047707782807128457908238513136761946141232956825323149231682011009606475758823520155097474424729523895143935210676325195256662974549847275720915529911389125062375563256464212463955158184237929712806839663717343575233570721365246475215232587232113131545052797749040955552021349404604498536953440381282325655314858977248386365192256671228122013536894598773829399643640173820898396257913212290605607369719125718087986449092104707297382983938513572334180329072816009969690618256834459332452474091145401917060724263616454152542830449256952816306762046203814240627068428024833175076891060188629935756597940601889273787713372593375995955623766094844218642795712037037931807990704818074652507032622102987891970829631827789127625662438432962835445725533605967867833214448454668786812160961947369318638502441103900350104638789252388668792187440522126444613766547408311502182143399279341298363057005649806028753005100784810789586636493889296492031620892440462792044034312354135824352126670163613193103990292058671594178612141912344064572749969756416750960804781284202246970737522906493831846905427803111967850205410995922450774825342486500081872087841926928807434474004140209735580096233362195226853337374742453904121624814383236289960611880694900525829425301229619158106810017049228815413743433013775109048703812249016725215846729091474541191747938222031754120970845430130897009943112221099642573190891407378135042297017103959540796070030853314096467708154428946802003148553292967924750564536660372265255992624827825953089662083400180608698820572958615565837907461282332028877358057909913108190660748071505240975743352353532509840702000337580112343789359313578009523206765577327263423600042620875524623208228318505822481627610180944908097315905138857589101649809750815966557184686990235681225457242684471094689554139201937594060648345879563700060075182478790676128465624307726817763641836007860602853920125110057783461791042233319909895679285898951728012900817650052573111909444215606561890189247828275305534018481286462264769281276182107212409234987864926808003428001111047061388163793511517824473949348286906878960294834768533266888418897352211747584415027460141016569350105181284282096957083748961723230504678837695448913936608795976779919345645900018653344085912095384633464307688317804165731148288338921247951140852365268303187230600266313261998299892862072290431545869413218108070901226635442926698118085027532148969055198747371567386777584575609527210890087172409677568060226894767617232120756261204719808138542056808836488285574351466427411600240428617147385470509328118008319929689251556284996678522052193375680678920092140758211499435803172034172774979828035619815709234781132247940560758508096102982433836370581659065846797798484265735552898993359503634259725031956272547100525139861878756784676812491562733464518184973482408968468535083147918321180450340256308364911655451397976261611963658422769309177953880062330931955759469368881577942558572563704500166659089715351466554744152133094283633616607003698151289154664808479814297427627049231597850323159395926271578449191523286010447532680105330239115964782309488623724483648886217130084521238165053576095128394012758742493216169753608842876614441147079813023144113808361693573546869093382644405912893836555230212736058580395187069536034186068795369796973869880292114892895409737021222188752424216647853768002038625551534517565294778363925707752608533016464040142095064148136522300954557350818048463239240447331894860190293570067309554804776334375940137965157439372673621512103559956414163434945908981758282451929540577763260837179337466218000885631621798933669210548396892855886049628671035561308772636676858997913482596485723160037866048349542632916059030948193654676738136236488210985087048414597168051257820594465847776600136819326139381114763910620584134140612171019566471854986236387620498339493706033185985940408581994577047859470783443420424188775115040085406003618940586251246954686818920799872420378237969816446597638622460608985558838952640968415197810665041440765647332825188625429756975774630050225355403777903315017673675655821815179233211854993234408443961781207244719479258148153663755299458653144516680938636047588480866406495130119038611353615683696097626250921255166872031930948335956625993195429564977083319542690734409125822427167860438894789366657356557579172467256438613457140775228028461623158517900354507904640656158685205958298639608530458761835387764430578777685762439857771562114917665310772522944923173781516420884588989975866085956680099083334927604828421064995031585215880845058612744350467722063588996763437055760705390912946694315154757562910437450606490053910957432467174772428899458190273881497481597556916384910818984281222602140632257021954349736160613395008300256498671266350252341233722098229122796177168904070678898887974420200900692284596458114412153065552343935320594064976883279373755693580529628487957295853910679430723048377412588713413654071577228761474880542716026138263260719823567793839042845256567032915623493692503597938458220910188522232707053668434255132119313603984515841756838171962341717251284101460557238500631199839035964937100474759284362140446811364313503921782863996043018887554394098495345122538119130922270964772335601926221097518723895220193869120139875351679908161676548097042297116793831416579970628870692454441293897829900533558608973241188422198839997867477791392210690021056168143666161921661663763810481126464971065704698512957405585450356827112733443418959178392415077724033840578772174227264689598011272539643232767757860090275296928312173037836374271286631407330178206645308516543947739809028817615561953235925264660301653838913776790293831812043211794742278418772004832689934029969429131386959057750249171856293081709957613611766797857992357617878301303109832419331863416002920541769677438297742552488749828653597478223634585399164282876785070139156259843389992881499854896881949000411779141839246686531070056468919108205499670134925943606041853613061908561859180701505742759606784899930969494655697894468933509074691162563860557614687646479453079801440845128074302357240341139869318814800322768269964937429095824975627064214890302393639278154649770004347989349515667775565298883554511168141195565964871355406818395185816715526422103644860618307860353804351604304762940882237143789701035895382209806036952096842058800339927709990134142220013894015467374377501945431390368518068774411636826425772024058393225397942019526038386873317133525503902939144243253210031936099457416963925670553493113387732438645519047951019536360677949334429022218644609868797222020067546643011500358769392437759619729634603481422812495733590394495363837798158183499565603897954553446646979439823960366249762423279241596784871527723127038887568192297978792607520076199382451090984607580759505734335031872806745349504458856046424570276882057240133220307007729444149682255167793560157420623072036984821745604479809012558314071523308632277930150778255803096987499473275965600111364263404296024740491017864644114357111119016787447847229035578678495492268200054462205430141470606513440345840586363618449112519127256881356159688168060281749876733653741666582607521116438096290661688286311854963398747775680304676680264256054639636417636571306381669167960038813631556834178019908158421625168710391486498063566382996264485158453980775167741752645425544529242777589841186353565995132431897469501376620630697867909648200336546178889714996534784726871351488473325417078370703952011301588725830591686092267605526223898264625144678399631174167599805663218342219352390991471607303807098674094872654376142254954516269862460727188678668443388459158082753496169831752979302690334964570895613934066148414537998620021108809977729108156583153124747820374394870775996208625944088099543892721927498315285666652760847228936352261444738274890875837813360300284313191838696407620014971013903957705759298241058721284412629054619598383390913343512644669949208544615402360029282746898261799792565043170579735748793656736573178028466726845701732704978054901044019842811248622094673671773332809960634711066271758264296234153876159850817827014696247101917887696469178723575919428810586425552259720000901502886402327512594753276041398525755165752525785649250306337421292100614420224655936037358510497344038017275693874553889877913617931978920843502718230036430456330516279141152330871573097633306332238697712712288024140525267417790125417692773848707495641165181942661562400326305191687502562241660894381560524000952972961375147981267848752499859187328305471943939045981682488650272687641767645125691714680576517073389434532590700700980604725309705729072293239339723291090328724390082357242318554769981959311129337774331390719080674692374596721728444863537666915319120896073636166955008765317393445194953847222195766328326838952329580977860424143386554103130539399112639270782040512157849504201363313418982356912545979509978640902706542480669383131317868173164019246346310858421397090574431179981811057747060122274686020888303159995543118200522267531158795521781682777179228087188471954830763306919683261029678556620942187555658523750465244220923598635221594786119198979348339533877775484798824306282270172362293042405754408320486432067489846796567063247475363444006121802732321615640234670121802021427142364068105514224689827680952320462616953475783415716029848819353222658666617593354338409260751106336971833349837801567868293359094691583779333505081121843405508215097972743485273164340731005500999031305327655252464556207986310749713683486109033211387658276314375007013410292179834847960232386660623455290095414144729025049953126102625923792377195492741648199806266743976149953738261008228264241081509337179092532302976841204205409064603021164483717326830864972156399629331941422016056819209047238152322135622216699551741312575628482057648112804365942097470836976743782146392046790880652035914173148161284573442815506597016237308641440657106892575351337808249350473619668156123151705817581772151416799876553347564626289175244118342707806071701575925669938207255807676654340187418942404791890920535544458666697033870481551209451289563027700921538581504732403718750506595973043879699910928306107987503840412174676351357936591897783747972780839358190262442394970071674276182949903698060855789358867521241742951453686223756549847501944850728657828724277712798588898624858175914745672138761251634061021360214550006721858176162911236782828100343397997571607387604570835834062800375607197807466111623220135944088192673861354092122808429119104296710589002948831732584513134022092539151700346673088034207376040772048817519510199930131751133561193775389176829579138047817394063503269221421986700658173224407552891337788774184822543286966745817573205256035847742884765540725884159895479662671876613674608733741477928910147525449663085079739616631887067105184639950856198066309585350403462597246337358842469122237448526925896154765453788220106510430647310394809145494701731837105022145462187094872178218477816729193102559636500707230245374662732778653908340218381452710823791734502429455297342234089988240089381123060913253403460092362957624107454898243939371312646770194755627942435340342288020352812549451885694203079320454408689570852325062023645192759743461211831213214224934321247662301644286251941288546643481755747402208324994357738819684858533533713388171379571865253688842770435495235912607265147140644529391195292603924970782273717319847951827404225526554916371641034823978920192328128116282876650572542202092456857544839976035252237470854468602827730251168759624010350504748974171756523785076213484456281900530873313273129416288452993868768989870827298726551727929023159858777994225975613969676706101655152775059563957570167000308758105242775595332363873485233854598283294931535321288762081727946950734488267215702728010958872278686485246001854337051892495680512177147365422301050444855219394139547151967655481506068651197729594705709610615631479893481219455088914546136636106601431618480199299981759523048246943026382302054955376912745178670805227163613800152918442075856696625632490893723108975528557606105613336457631219085531187880091766951559862304514592158931824299603900399177695400050611696802050949244570844318337395761263463274944908890809397103895158699033377890330332965903457167062189677471252924224113890047487790052576229734107104884452170232270489073469826009664250132924100219011287966270863122857341784457840339216321678182138951913046618741719334071759268861916302133768118699709068880240388575145698751771644723311601357290939160710314134730823780760443196467266615836833759418590467076366571658133377522925443059424079817195542408119466801430838202945841134722851979475264813763166174166092050403276048666440508007781346281624023788559037286292504614163807581743006703149742662904817850869178232895780969034657560708595056496758861388527711716013978615899332242757302410572237615190880045257767377353275949329007039934035790380121131900866332421865561289943907923969132077346420039206928839376589522953424675446809328983908448503447609506518290412409301922812266582081680365201901337689322847445443217365115489713223261644894085325876888687795116047397535616883459996945194460432101611465109909120976331250048409331365568942101470989175281973971649212866123898618687589097455946170131662656963666605647527612734134743769537927697566257083431272726944335422086757607462721257928907939556334312477706911580519645917043810810016031442424598717586315190543142673783099226993150643095429325455980506005499314476401464239995266101762510310540752929832692333214554230005697370399678250893533615400397845193162934814502079487908523859194252396250809270096867312919710092077849147769403760652992070160929618242308293142583874386251250435722954041787356959130870919026782327308505641752930155031334793353096105712758498909276334158228888430098989637062304926282018790060566115478912674829297901659981559059043517428683874870143456454795167464421640849620088397523431022442538622082987423088343155051658799251111877130404823550799478481444267696138460008495349973309589885610697943808487973981233549386593771126400148840518854577459744793785978949359255708328193750242860115745964649197886972506669678518840969454158800083437232228661497838976664111261520645332004463978748372602547246912625016501275711065276057468425859646079532998036982318277000195076897620308799732116568485679542868775677059411904996890227004980118587141118608246466198189845610835336588532956929344200447705884571809628116044884803019462882086976547458504316936929664154960043410252236846953104636032494846298562072229033156199029880756824521128269175248117760418386795303932612294184820817341223092530037997488665094576493288689694501916593401630484677615958727675103077627659927344757589451103194583267311372405575126589783050572757438446601688533286099002619052276705476510047239526859352834569479473429436575997103281193547258130258009885554150896717680495107257667058302715147552697111105293522858927363274624863891002620921082156812114512430787887749596918129131466875919855814806812804049895432765932794856756934770526251245524993396725566813397067749806574692030765870034146117849985798875911787909371141742211868599955647726638605733346635142130522158769607201844560447856911203200560908981269201548688632256556609170888340596976455684882992492879820512631057980093163531889380595039530767310698325897571962396071964707275361298159928043801245347695673852444069303271995196761242412683258456811178259200183348080422341147346197121364432990921556846155228634175920714310263673019233178325055989581055055059305414512884615920448043357286437451440332056539594506323549759065464672192853602788254774815302159670060934347184689925416283890380289271093608299246021564970296027767102823238076471790178954555895397395888780782450427308976674959368060605874684694646776906003537613976293231374722166459407056165975486682565283464270959353252278467290876077270612764923531627466171007163359124753804616593189373321519715554833577502264279392572893216878128149313867885655978445784128057533128198142864742151474985743654053043259717586167385978774291696498869381894959070460179005912355579740759888626228811628648804062665612286557627862088002108315290790117084607215398953529755684203252224292658586114306772350206001907211914913963004426195996062376353271551835769933750787570626049173007632703445924787299843591453157925250480166723049532790542766759413653378504847022921732893125715534417987312586568819806632097021203497896440223260096167820275153676656046090102794599121333280388350407471292390017902989692595285543565430027574636238746379906532835164910028608622740719406422213960821643671378815010990296839462743230064616486540592954347994554773618650241398646537709451750610212459751618822872226731576768133764969451273388117503469868863636930040956053355419240073984503851906263967359954647828479463470814737985994645238723795282185908036645601415527563283093250462283143170053570275675510495291220251129300569384040633585961611635071599430365223798078229970028419491345138300507164563088197130337526472399997459006177438041197874856152877588478082577960642003444134590528585457179014140090090131967439534881041219518591704448903819070776309963234789336458635189146323613500982989006602541429517429592409265262193599025354030178241024848033004665508010230568011415887483192395253444214649620818353853544472413708345558018759698812718343048088583465856845237375206636084485406950456019533571654607928823472007139297982182408815160209116810591356277178197622344403052112153652240478119944778019805699001365819888914701268446034945672490050962529783459098775386153988252436640639633656228052262269456988129735845180712045871776327370960431998504909412751855513774286725557840985298609207105754416655151088088208330925058446018299085952482483618562744003750230178207339154391101123692953412119735729305798914402178815866263161419047316319142872680389759084881609332428483728977690887339444434536584253981863590972078354043780425068375494541607585676846044062214378745017087898803306668492408414261316241109089298119935314440518045151801189200994517524046077437867481413115579414779294369483798804420295844379910665795123662311227825255603170825584125849530846637571314473431236474321964085143421934640495246069130791055555327728583399343704631608746037366719134622972558563159330348625883653491788913168072330912493634983389867322797041398830924812582942239830574120708719947776616489951172379668238520290865846549332430852481239519358127105499380544725884381417863867052542238525095915437111109559101896947487660616539224211581528658289819327780662172181907240839589854346868003515661321902783234254885467040229046632438462023238707557257605427151209378321402890327301241853861207235359106736423723488538543941651362138837707270268693637156388479885468566292908723059164512864252318663073570461764557032681205079862278003064513573881338701738979650659373138288584051765197679437718488281665016264162970529620225055253032974534891502924173056405866121292702907234967244176735858023004329851591682926403504734634562066224923465001927290434097395589513940016763907462091616949109401631873696832660448845825266168669925515261051423862651643315603762301589354714811417192898535678753954047530879336691015383685202595172714040125420970856794430470399972044967435442503913527828047578509612929423412405762007816026785080727205325844861069681229773091135577831371147337128674670763582060416078678435476311472368117926941097588924691251613049746268456431142062177228145727478504835572882923397874440936429120513012800201355140399452807471075655115983763699617415055567040041963657479782032816690604010112823078458860363298918096912164317623982891290441960274485537839889991166758798710759856326598770562660841825380225242485546839669473364515320265486283316539998810529001980306668584655180042606664671675767276344080556217126833619944654239795031538643802293386256584680316441136877810147800436077316559717797411487017575274782340050003265603307319887225565903552049987895513680579222391939685621492142408631512771368472113622131801649557633464679189389468910034467573808065634155648097361391186948882125099293933046266249015035806013111871360503634853621113874972620758906364933696649817862769425000690100515071823502828518365638738951783739388981594975683234549106669664575258495428035908534062633579923362615669441946238128565332551863705250959126882217295401841774217578606825189927340101527468015338918472162535146924987258633452739628268229737492307416525717844100175335795565060842048543589615853528659392137978811823891782633796848197443729982999691008402684023696121246115398541613319836343087228534396615267273412589095375717165532367410256811652727051894982748836078427849716979414693067629446717726922158152968430786693549839623239137194034656635401237300992847707381283842091828584172081640542497825068192046325571683528178825162725187714268867665966574149768627832266068788122800831849544706963529930225981263384197499875653967653503681943388640205157526863785527205983134218958568798312533462829396069956142622288010973801523693266205040044029535532396810976963198258790917139436640947723638396704872812787185888527290729331550071882562205141459441449766230522172329926871350067145897927068954496736328809038789167013145684525006021016730943433912559314999015071529150270852101907058571395300244277044902348856887491786655913880933953131432334159189932084322838424199990089947352876673558406017876472726175236966859410382800183273182376998226316358741822585618999215089073383627046530078290167308838258753112569619566824471968159155543818112572729659827150857055492221671801012447234569884821531711958192396768231421836570639642447253665606979301127921288152943934571124150596201443757505614584805600646983367758856993677020981932800717137750568601315745132616497440970754329379716236704970632069548817911870357647878005880415214461915555966784857722902979966045827265125379876394119344231477400609697184090136049830704028527064977113789782999153209816881908315965147381608204537931299870699287591191983028693045298584489365272616628230945731531482262200288384413875949610707054667262027322770555382351183249670657770633433720643892707866582338898557708673008246263424134661087653616808578182422842480620591857291221075560396630634985745318168646565259687049126998996075048098135815700305754576046425316013135665148581702914161265629413947186574365655021287918498769018784975854672487075197330514247579834515547477194069756295665524542132294281187018490968225959970739530505138778966405367864859698091874135235413394215895555576096792520081281134126925847873293115961334182826567663853792193845241327404100113552746963121751332287731826414369480799134175658183956233750529243886600884680104398112136529456469740122356604757811950540042945247331367916547829788187259852917271223031183214655173435832961825739814167878624147510464762437430067720937294342875435604396866554904758334728109123514026942361392742702298759098892028154451957441633999303960166900283717820758058933132020338855365661258090588805360467485039699988873906844276823359494828578503644995840371280852962477865420203524385400992965871989353713720007762117741540172166305679454723956884025066570292947062917268293277255266249694426560655956336423148637976842303829081706480340753202215412655019363550914008046893144112242424302531548813904969026885917428536235204481865624543201157102717636917541453668820119182179411759476063928853579919617053933820162438294865840591395277573724031267667542948777494885900984053638345469123416248176334876935988274019045056294286223714400225909851786337961445557122856579170944508944709106484633032877653554217668479748313766005353770279656494064470769033527249315773274006169682686146951936264004872811484969933647332425717328222275218617308528420476145372536962808668691994751682628017103719740341444181162157661589200507403938729740879497029622105940317731609466570265918054432916986182641593553058509936350229875683139408946579872817982977566469870445893330554046896961874086092070843114931684629622387532128321924804587326923211320914257534136025762676078557343362848888629640686838093830627686568657394978802066039493329784894277636338105268280422715068944705548344308846462216000467787234153213718620802256166053627141946649400539915671361050070687360499199956864711356564839295383722174500360536742739667563488730701216897886557960654845112460653273700842401676518165666878549805473162352133945690097632262811361211695998205481291462676993146697114565363786299076520520930874506646449626687316732396715056470154123060413237590411335538356039777977857402493788441515751171877215452755110402967751652192909053320840654362180274370403814683306439162171054769302545874540056053597027634305437243942617407069034917052788578450452951044194067529688190046687454068438362192832285175742228810722989070339888145741545029067059600148924936690284705397560103941596257457216545597271157227554596245150187399252732216811828252536891707337422797273855949946647244057967325222514989333553612871323652727600823417142523351376237382419194348563510042816728477135535358392042600722972508489122324450722014371999263829190976799742451099737727430052329969895313552055435408335809885375108971515236695278519491145057869134222421064122820841307806145513172384622392679465198701257184206776869133185555091043634081974304790970980649902029920594769935659009992509819965319277625276768017810757960577465104904182906309757702986939635123258043439917303486733790775741496557533658496298324596612175753403952506822116602774011965429168878399092115990356734862855369473980605623196439563312338847463048733846165459556439876920444654718980425810887100895965197954083292379938309521938691825770578092839253625823042652381838608491058759268413956890535135045185655887636523750052666281255558294116681573517526238220266894831157216774214094902965827292275186153229122443885609465975214144199607586796733761291390259942888880955405260945676279510187280619712866661329932489713185068481061076903315828592011987529731598413323879917522641916264310193241289102537220449254460475323421335878010188517260224645364982653279033582508058888498588952216507184735705933702975822035991056798169720460924229666627373927741429302818082570738052083619409094408943372307877799827100118169102191470869797992375160115432886188018808672908222528203950863845953366467902918307937027077394150507236859174431550762680498514776638122103561317104684867423508634784718386230368163222555237139229966627450557453165431480302512119444682521027479264965745899432657094290487873592081605809928618424531759432332203923816978916071666227169794567674519693576055941994001549887702618154515238714966567968281888644819402912652319021086991679220677453588831566965376407111399782393951663719338210962449506414090233450514693928181212516552938488707948163944383782745817473669699576497216238190543340134275479263327936457719223618049361956747010889313021070159229313658615679189082798546812174695532530189268025217090037236931037304956109125774358530685133582875082876965754529495578013383000741054062384003743305537144831711333307131311586193674958992327192565571197850020073092611917114266102007565028955306584758130851149786614929154633654455927501317370761518173588377914021286434166161903246540225385461375571272545541054322859786335799754856008926444025151771774954518026879341474018592997308037236715041308177329322661333457887374394570562183128476884545526153317684995481763407376537936860975357161782056537635422726576770819636294816454188670790630270374036840931986958812592580751735817737220231975476724405736134039532585588955361877068000400690197122778679714433718634732987221854253335321801365404361443944395714398316831512757098735553587112475203093709758285073161572542830128328417673925911267987737685804117297170769345359315697938102358157976361865304388038726552478798702905325166916453638660808041524354482709798723092827201932915145654888984814242364136175250013204378593770578324242461496457450993836160119923557370575061631938222389961051058145322838657075027317453274741313958960621634967122625682798289850816735055024242572354306736996004709187871085532883364517758415493772387024314652634815608254812389324966325229017515065503223620018325783473146712854733755256416252588407935261817911327749428079813865411939726937653317467816639050181307022975713056757565296899573773375675860970698932244774545698023377893180557234759753455495799491844159670241506619625099596415058892915162507369635795430218072060936485345653070595438847462427639287605517265295661898099904823760257427083704321332975336926675785886888930535326724332489757648331413772091857613584199861947721116341526163420843191629780625854979144036430317081109818606775471885663922102757800871765460932842785524920743311753314025725536086959419253119398260260949432996566202095468103809410052690792009755389591894656008234730530907147378240412769219799061805045135101620965687591158190709666858735804807256614159702268948708209682346195037601565986335112486131463539676728092176546411481622227091320723530394231566825587015427271272426571365770769883268450575173591598479855679957934908456281480549873066768045017552023477760202635091740828955571821576112578866420615674217016592328382220710617566512256011337990959997149160566085771868208893108100035189395766932421020219594662156415544173064426470251876708875538059438972108277937049650845820965334459497726948202486726626881488789493749424212719999933836624488317563384177971980487753362314855319321790394946084344919880407982754767524541243686297119500512465062155721849672831199807424121104029762504071145552552948362727835067847894353801095203570926025445508193027986925367734074719512907196090338979541955357593679195905604365052225954164671605461446733033613479542730056014602123297723155237277855083541623517339046679627706662056826619244830640880155258918568952857764838628308668741184326593601412259553203498333372712870660356150196541789344702775313767127233249176676542460179508356257627940682005109568713895235586653920664515339215833633300301987136933262677231967834884927391817615213448852557334580333925110671720787720509780411563248170561764281274585544236642113588604933438043493938148706265149591682648989200413720918982833260194893930425974461146509810082383256045816138331196181149969863861088431639988299592016938577785858576947026748496531272810157638188118252643020069290893321833824097182307711965901295329715622597697216227773812639232761925655208341792573232908303169331424091502096409787403531762752149907541345408888843872135431101974980575057699252681253588233596519252349419245717834170873733784956778988040197241369636950772817241712455714381132656592272224791086437015470882700847727698674773226145187414761072700915251715620938813632125110125931000979212607778406996664964408528226666966916467844224914641657365836546679541291272926970017271051978996522807636780894630480638157436169088307396392444353967108685747959584782831918911888960676431060196819955161116190164027055458729084186772685437354253060209851556444020378725957829218388261110817472646550350471912151900615638636415975874486766598667999697227753561488810146469817997135472423435543718673944937249356066351694397063190098493614845355424321298942868152605159819927873144052196680477762105000381017199722380675179943362191932577599220939010389787266867232671499953796261890906243204310406206446027961932205559120248198323829123903762544357566125769987206637362352493753852234525880431252551166104125912132880952378175848793638456893585963676370685500526888803860417153422030215877943990532466021772192046784473760010002844555773242880040199814653447489341529279597139711805894728794990916119607325932807511000906346103417943159215983395359844308677432870196425804389513486332713533497898247504626955631695221548429756502783197452271129872848030708147945209628808089985380147912339038486900878619082678625553764629259201242868493289757203145523609434683250608288197255106880829278225356005900303924713596988879987697719682859655714097144104345190813413114453795373689171533954084513588445917455459580887662547086405837836395946136161705340280871808760074921574047771463209654638817731483453607858965558599073814848474071715543401772659007824841748235779506525291581634984935785054102441196643437683213666029053052339647942306875787309893795460778376821899345737313015431313396162984165615404278931872433213263087512914107386011346816427325120065009461825327715876480718604252474999837630616619094773773896072716866642443860721237235481542817430610982862404105989519422275835703145068004244951116170874892934194209739782353487721873713615721775742077946538522545391887485750056703054274917328524721391419602389622591173512991967546005733406982619699784549414808422493580920247124424106253227780737270174841040918163233572066420751685660286287168949600695370910373649051890874073562361407088473955749408645378916171387670925626864195972876031285036109779670272031664900424655176330863692477184000768428467500793936679481789975610262163116868703018126124653922198125796036025011437231038150816980657979572582321266772763265702073053230448377723967942195462400360048506175116731817394298357537990627955853782786033417299278007778089528434335452627700098325647428667128181913794559039029718043018200544419961221177287093757658052990341543208389894316903589811401162645905490780432705333120258653655971159202690154829648455664007856918024460855018547982788445832916393633600131362557494702215736640178030081517961405580985960318324070601623114026877220337419576032415356118843043703348360670236608110438839780835064566169031552454847152720830049960189644006025087590367007601779310347817086281673013575528757353541244951191517489308029866269214031668748343251044106662547311518268434421447187791290317795289046452656976807101292290546128301712796272227644167330637784348352213735899751852961732246834023163809946215985291434934409554911477249712277009740776373576709702315051119313938239685793179613699965924069215210557189756294541176546754216517322531237067827094100715072308975990897102775071414469343653366273426365330437902505475726311559073641720813428432437667046343502520055951161750745345172030720951894448785351655299419677720207987357201355005264965941352668806181318518301060259450881369794996377943521370814431867590907852169928364534558564897441819959741938189901573882769501823987314135446557362058659044845832150857106477066121595737290363802231751986170849577086738417644903537479230562751004718665046998806699607536210360096728837535603899399480152433455098014895280092181057488204510760842020453120910997825598802533475647763673732419830492997152673755386326736211973751424270333585751568187655630407057844010738473136226120225394073461739246489400247462473981223956608676703645956085535333601816811650791627708800170498422900216373745548658509889185075939306728963057929750718845819316429959630678141934234945592252140250395141676237539698828186653889476532019208385600191365626556912832809633421082167736439322171405274071824236568183161811581299644218888103305632660398053279709821575314823902691097273291625767299386301168530726970013548188294503520958021881653760473415409541824412141264260072894149587810861254856247577585567949659922012144453266057740345448962845270101605699408919102772939054236353841024990700308295138970382552402060015709262781425352893564670992621545622809861268885295620732870060495774152655074426288839708491875758262666116175194894466619753945598922572506502689059887995389492073997703802734645332909717971703005424602892501759005081749062449435658289427699088242159965471932109357442957465253772260194444009977261033795455174677489676738963175203706655302534852791091561966375944153544323037173586763385057520730257035266601884003534824979442398724241251935790965370678794726986463631415751037695449598668000147558755807888753299555928306963824707158133633188276910948299148590092121238215146515559343244315991209938380449108758879804723939008420779002100489732502344769082024429718116708623737287260249644938748110900341290863547583664362277373460084835679038770112719418435025081158440646097555717816437098750603384593070892046349380347868932185232449557430996436089604957735400486644268098645840831206235181350310161182702469100442270943801312329299893484274083237485660841936208375047773778083237415203769847422491778244130593391091711047866767792886898109202553420844803571007376620790024860335090178746535151502851639187401020043818199892561778225634171576519354539700127935412972106225714156033664217430439000123822815906196379109821158837374488689295869412677769218385821102524252514951823397840979985973768694490458048062267547215042647709852978950738790434461280987834920278418165581261727953735945654448186205707809389840172636341910580561050787907685001961613460851834920115413025832947352683695453550569576595314630595261942809578013162680170591817987613169105279545518799069323940871371710359224462046726319194577360305018483874238976744067359548974415524945422370113028635048114489363179588891861085448405646792425693864267676699911658319330997940220559138365055911894226231734567449137579049599054772809844912942102793791517724581720069438297044264219790949305559030938522709725793525505799104057758770924455336430975728271549197270222072119810885705761719910818384180887101438641952360007194782379325750257660730607319150350868573651327001872006918534147327983799776614246664546418433222460979911915547410081249870056251738172473898738143131703065868110074109568106928319409325894991665095931237705549677218039214989315344127066023697611976529633012763767953435738839661766219829717379368505414088450421908603989419273572148828323799341254706397761140656751421940517958749985466887850016092640907615322024229839746351300563043146158032041324973158191745712888317215398784972662006386340079359250451812538803940338041616967855647954152159726694184852549958595034555677859605703762808622173490784124639985744787494804300907594228186623112242081652548716660312013416640681405512437478179112763871216785551994151612617123053975034493221234004370989800788681939606746081006218052386214829998877257660060728622195418248337567506353330177447097880051583021207973960635817961947739686804080714620281770027039476576993136954153927374296624112213938496245968891351840516892948455291669183910413411390891205201075227481436982080944424450802600995238764139969080136252065397587504361286102448813555966307300323493310545892576294599585325741692685205722331876705393300936865583246130960977435503142212014724730851807400104299821792015813106621893186454444006918339104979193194473616708134037308622865271006741509982607013852415147292566952857781533809812631452246378795393824216422709162594903941721321845830901022595978380103645372553174411919809314112471096519690141152608922336728834031294398704255738656532332793484004043643848352025180674920149960676023606665886650335878942824557114813968253562461083922158534076770085615810140499005526406361925964973865535622425215378257302163949124276702576182637653204707514095257856032127636408377894110081564015514197520799568547075611930754516674643065145525737886948325470631937770202934804451279949251640763937341408236510042273559556416283850810964663336949753952171274875486628217571757296515291434008674195381307207699276849012507530380568968251852747502953376655235156076679257623362353204522173733794633100208009027972849299223497770182748150814324144897539429241757273654226048906652604832990326362425114065848787395047588824602966427143359082800570030079905692556073755896175797550509625298426401003417607631753122783584931372903110881603794395144628325686315574110153758447018163424822819673420806020787894726004140351839745610285714150961600267867736256084460041340506488602690760960238360130135568839063649894652468336252189699398649172159170925197647520529805415118384955205692988244607237714468587504189938364476754108354017812243541232959018108949584658219352232504737158854842906198312808863790649606295461864184059582294010849071648632304325291299369931211482534870629012495547084047704466736436771791876451253681703548235955684923564871479550407844617024653990801010973009264725106139837713746454636610562585016269984942400870415548972768969666680448089101485792651887306103789734098257791953254885385379968254105800265771575904404146813062503868150060467609523289206766094001026478826549524137706660552730749661761116813006781506784259235124828812455510247706879113036922800502782477474325587076124585606557073183660018558095734775359142133602698146526580834121371494293578637394976433314787361213964177639069712224817163843026318402439823368172072499002352232818229498266906874730856213638934732088321263871461133807930053655525970978633419022502516992915414580253425935520057392133289674348463375253339983158075966859599702494947351019654330710008167232837418828262543174719106307773143454517501984566419197784624892958184097091390131241940367443634972907370291625149587796446946875474488160102085855406292950363857886206943538273751278953858604013044808024592251189225578548657811144257667249893404508453450257884630777575791889497615273034770049006690411124692509992923875211610421924685423374336957904712814980059481882921798928416984576628204520980969035664786060347297302107329835044270612948585788582853069424396654863512843864404078474717486313395323738400359998638131958532266062976835021390199108152839405645702114680659582307112296920487510122225699857047550235460946672550909083677462174471549098880460295015053501351852981983655578706802687000788787817305974103920388908354082872482369504487992706787100163124374067902743585522740092326969803888352791569508794193171907416725782262199613825809516775045666370782648659394371452086256144048001197036991206126517076190754916548487536380603834410247667421760978254217766354596767948742560909058276928407287867675957092610573406232413648200015274701457104348006922290219927368233210121162266373591139299218223072679232403114213816909834984898118853333445770266912973401046562343750880485534547507666551798942394519529693633483983813849746655215646779513925605928179835122380790111283062012334204960719683927272760449308858908208821061958671620594879851128836103762966057370361680540119645350238859737294788437170936494458833037660046799477351489768661533588218892480935378713310690295658754290866415307002236693962627658200146607971758497040084929040150446878069660622243400894948074636148053133471881785658276986783373117353927845013473908553652928966405488599735863065294870307709668053616410003271305897034481046491479540825446678052724628580601805496551723081512470442441366816754225355041587216346277592215141699773538726443333454553652752651832168208347563124393937034121950150422103663343414273431684388424731420540672079855122457169147720322947721582622890772218807058912158152484689996266892463789263689312167979260240514552245489557275622028543959753350939719444889298434450349814215738175206311693933451779091226056650598511359995435423652950202865684439942199949704108302590109801628912029754754781973508475108177749698690845329017235804544410487804264962105184701006707423199369834468152915106098606638028881009508877491883006031047883990081353133122164912734978012812277986547940861164278875315667325254151438325993434887551007627798444931324707156605402311630812872991703662013891035962866370000399130901103558021962000841106460082197989999395379059748023320935559812544760784366856864118305333559684536783936110744893902472441574178845479058224351478382257916103262642152495212554497351685939015377317279111147681952323432977541630216731018114887410956944694602145218073099347587499416119011420329109172493014228246831754399057549712432903862699350963638262308571481563589368708884607442366333633348195116889123255255142700156597771337828330705879826470138766544815409185118577552351802543431318647425274535897387286572639404445744130200882022465504828804571119140850618632081077405600078929916317792310111226148576060336142186309316005157378182079181128959538464661316918423061064688568872005430929787645071666425281220568215478618403830973643444013812215984363825706996231399981673650749571665445486371757262939276470552887927855789892348392139307308291221804631885923616289490095635323191070672455137830051729297107057300499157988302370417435660989795933258933262161101382174932034424713725362557348978716415917243881870879810069896447107116334916321008464127205790350215840562105412854308695566438075640135297294802529535233985767043752269622847361665498053818115777953251456874990052652786102437725689258133380120886318701022924757118342835609663286544298380317196860470858141145726399706098999895439439277117956957851762771886277265383227947508919970354873972178992454021889292054879046689846223715477535866138699416789223235282016342042885905373207556570504223835278248014149272649027514982648714998425655782142695682176045360796549794037184803866823721582786827867587672360077081481793931286989455095362730068119241024486941524265299306398166095768181999232932911332903433254075418018527192484055498689623917164841742550000459810359345800081689401194864389769374754244124718044264703193159031391684254627636329468582903895979582143662749388547836428609069673002257146291228127591203904308690890988533980237394504529348162700343516069308128513042909111879154828339672200497725649385260197200992911734479889743182576780596018875299343974036737603255563166693763498280175082384823988882306340594996599221087918523895994365374876006253161044686704937088711268434848998734711426462461826386805192621002429819736912948309808257443632672376399062316748985859133280719667903986213587657211593152456127953436628483568872068683048966654899154324166924030042981259567528122579644456809409182273436723428835550367349188639068465298467907134353626915973517256309509706784053966416189353091720917061315756220779427483835551764109226539258652514283972661395116380776354950352878915614716138396717094659256151848372144076762921241448624392774202025993999868007085433908512379955372414697918211807938391093009742433816644711870372710369291480907518472353421748562793945240002004923254007557096446615793286434882742380322518150208990166121794240048950131449562878662102641776441855192133200307606988073080439963039351226297397422638816013475020247849128860615316911268938754438777094526228319977602785057106184907320738945856637924935215176732976804996270061214915068557327844196473101125662292389687216723780070378123911607973295605929548175916704100905448647189021007672074946375342788794058137120339700814170811336811942827579476532745590870905371450005871192758848854532853214851224054465207126415732673878986689818864504400189402693363520094221609572686327179135538949865402657218526224301751466152170869675520880178348351473419827985255354084576087595027091653900453789596107463822352818032572810550427697180269109124211078868403390271690758308638680194708203428711900003218435286343694485853051437286884845089732727407436411422389752701760990290483508081951557652122714291323323621659832709437246092291376078081537042840568433493746239889503222537917508353160709542856672958071930158761736121330326853159868320344499589285635115446160544146217126354504532731314867633696084613033727452828514672967724916831835144187992654412088146790074063738038630343338506102221223048771627834945752827533029701322406529096141446964277711546549405238741804755094129476958946119023958749548879158518387155844347627494817820035194499000863172405566209221844154043587793189710621488253657827533628166957745880010213853076036337279036972710706900590890197111233344935961191465738192458590278883478583243609463944922797750785190630316097407979406036306793757068061015918155900647326093911028025740843194215677853566002786410484124304571775011363973343136349061389773008902028209637812725644125848176415990782490787739502791740997103627904203212827271485330821141576696189798331056128511114916172372111698061175997379326974156195553690015412681648881713215973385437623155195204434171033363308217774706521996207613253535398279502638272930931658087440168360823285055343630889697668276044138327880618947251031616240084718196465657520840200370860193618720726255507301820034752944771608689544197938153671286640229763467928365179276206744634738813210603025633848791638860218161962491018140490222748621355902222610200315020712055349307329199843579522763899160479684524766378234194538652096741080009296365526839608786804276500198119189621480779232716080839264733763327010626109441324115122323973184044355678804086949307621242179062404864436880984617968622759407130061703786455012376262090454427447710156965688392321188466293008323886873257442595520785936257224144153153756758101879803618300304326171824281570671760524551276229932003936680709031597220640238648323840588241438508400939582294293162777697311782951676975364468651496960617795509940580771235669464740787534672153563209494997813978562717370273089018802504393862029464190298724638871885206287351278399572491714515391238887079751561739776904207930622829278154187858323111950498025767998967396930679897975966433225634715696995826846876548404102154636942963956939828012203615387162830669132433109999987785794975703892605181443950542347021115030830954227539683981607332789896670113150434124388816666008716421272454603464700223064015268374073169333050097425488899093532458509148033023951941109872958304416760516672459098872565697805418550561825729727711955116717574020984941552167790830046419304911996030393025223179889912857303121636276604801574391956639236239136458565798277192372265507198376208335313755798612344848901010404902227144032497864243530142471580489100526140918352296289280514821598358491038519308881097683221965982973279349748615844932332531767499100905272457852552753479140932689446280105999191834106615929546604876587567432542376621651820645394208303052244836199504743542978743937137366005513329449112052503943120646298391289663948352485092525533132146227820306362296428409193607851125554238075616871592608440529238537307543470591523533707478869665850798365629160829691079305501912274006938406845347218951335788455803954442370551407359725400126828745297398161652152471072464969011054152315944635889838177730227906496686570109159484924065057918166755409652082799698830620997234082244057920930261629687848838971373045174652699673599839875651260185143242970014063575360106027291759499533656345021310350859568069372854510218477543514656862062183770032962520528527508931630592133358730834582302832277251215719071319645084231070147428905309650447954454309898900234656729123813904653383648657211466487489256321030492441109499703437589014738996559318311509007678986636260959718000841550245244415416807444974319550054019731558334690810791414092794368029806476707683159920962146887250848325103085435846963431110473756612945047081716953662353401284986003160709895551372311574466656148844529291548392651067494262868514636096192634319966200146598956107983164156290189823445359067755383082660476894931931017784705555343018648697514003259732048555865606188560849272147258074734315276812064753493763564489548099143791520398923930322194588945095025986955930622883621279420727347377745311048960409855936179797515161258067964383361666800873109300117146713715629943662183609685330218342199369471345686386490407950152537960255209161005182653018206219111863503116443833940454075563320875616930279176659939346518263354579255493135963696820076924383370035982390176806273727229980278206677099126338842009771267342683635508033336837527543489439650670974222985057683815212569163369962712856389688183000374667550806443096982997654688851761160132126788543659259525244129616377926893462930958877067836353250680610281820939641804470217723246778779798090002804113770766351892733024692249219364969483289080082925994789276980431898017164620431035226448142912886517981475569638737113463054204308936085163848521932061940939321322353634829894595165585447749343560808397260725631486977197361617115282988639183108388050473205943401845289208469774941971289168502721901714250876318445510321092653660606297953913633901407589503295010535118134938995812443174988484925965914052899254591399270983394161161570298564705004771836420056523368228389883476424977209945617427063705429882780380702364202578586673335916310864186205726403277529616255119786210699548327809426065216639088524426904171606824655196820439412539543719646353096681256300976788268987138846201014731326531429809740914188000298540211876832716435828720178464189577327532317782349082692057456008547361088976919749282651848965139568248697847163647761334093331706461834485860912751476779682495315561087800865306822988315287172070674567799508250628241489388403075727778016480990639044118456295232545795364345822167071042594277865356520892589745443693616138101762674760321843678276815205643793207716062728600317182832429967389435656190326582722121007893986206382893576216835961168037673387288925715426355260710950752856424014219530421869343769727090477049523804451798031647928718611437869485720136311981791344482916861359470017224152372190974149832499944847886554278270624234382853045791586231374651342128311337322961480704755881009134504328352620361614577236569487330409373536432802348154632464804078353723432251724090200002533795221451821081264340321819540600620392956571860447118063393837168691848816120628799270476597548087345639950098623622133851643628877691860693786615312641935740740989635115220594961539036158989727109421845829003483836073166325883301840529786721011416022075072959249268035932404012334425890850792427080073845923824492063094530172959642722550654673773156312269059010960289294914248781609019097201160017857140014984834679971144233390007312242792625805258339393481098670527945275297236159939813557444260833495235810806353535859197136182634083389023220262988294004086808090585137477693498061521512503573642327206010030721256451403300910738638415085430954416259234396388281526435456368487008887339500883629285413057653049222167531947997829165938337468779651751875015264690211583041124034117513053482044155921930854907531981196771602402299972808350032170123250533807444300188347299563223587422564895979740452018454678297566091378617368386718681517372826941562816028898082531009315303368034983086571504160483594827169274276401692460738320492589702130810396804456478125690886685430900556900850475221885235834730484757027348935041064432057474021139010545760781304588185156558972308756671783556416638511686167647261053811464726731581230865044055410939048721674624059557645297846067257880657708909055565346371785468290818713138463801473491206857531116987108204515893111410816548279403858751710250993036310216622876036300442065013585193420820207643069186882065221290644172040763362245294922469017875102430447957841126291278084670075131462224690649297924180877517317488917968222725307035557873928181159128470648355090076674019916312315041191770928826967706819687304091893868783471608352825513159511967442760785942684681608384647633413037741213737862804587867813425203379843119515534244123130093039444098787294987402252379361491946696503745575362243385360946286109047319955212835537309581301576000335440125618117603886496537548380663626773011603938571468801379518912121681781733419776271960678158827622944290535723333488279601610035500662606565012259147766506792108079194895908452956774638194621865906572120486169643675311467194358519667648636796746326640958165340529228418070444144381330694632213004783088468447195836772809692706797725140707923647468816855691380086338274579787083208542241644309033026989061535222231942053225543420342992295723142247110294201797830574502214729741192039745566913497167722143406616805562249887116496458117508756259010832339337057435719709381382974183674967019373777827309036885262098969033294407063526265642821745516753469346864558026455990333432336787954801538659113953265660324992292784774558633421307592352425563801672404919233092160419495056761619615841161221466423826122719829638677708154488067784918217618046150193803822381470435453901319981127020820264063315871418057381440888209806675002621634228331738642456678458520914075012196411479279028998923086308982543575651438558604332840310117726911568344337249452007495582266464652898802495827536096201151300201629405407413492784710331341986082439919844738694600618726594379147875691591937923857818898472879959520765081878876762082290702780425159858282936270879562989592511936396184126860475156133903264226087174215583818883399390186361760335573919967987743638449593713742767464305008629699240546450458731873979209321615866921305901061672391471457200910248988261278287720953942680971253995400457685936099676750204607512119092708328390408872708389157269502898566357055528254212926786832565059187807682163959227910975034280032570885538237949760026100987934824061078098256749763647437332040022021536536922052073855870935442192688610423261815879832985126363866310498463493318762263947676997455393582485017222850653315470060274663202901491539542485293054229794067024251668802689442457740361764166275843129984438189305079471325317006868161555223253736226273645714065359627562549770749979156571600554354233402944633880083278155418852127643204746324093792645672047690003646041415887387399315710012562819871994817539614218978697571825502744802703839107898814056651574145933854406466862832087067554659433028975587399954858045261003807880489796951799730964634143253462712151805014387211001654827918892097547902175233078985017298192576669226924078387361525944606424727262626773715123344552668428341394207905881025690918621387922662156088237638238505583625669508890522009051032990945184076859080611487094525151801843126345361759071170895752138695002405859489454747337174185506032808758164028905762723435504803382036878190318590036852421633256094670640650068206946349783217474737609276855380682337882116908255551850976070423191675093126223363921178011331087302148475189414155246090620213394773091318182936284446406876352417359501557900710892673105266167983449072474844680438051760259766386889642057003044756314858789108420880980487866215651938319471642517148918752054716923042664996145807950905909551141507162502909566083048608276419627401939528593469738697756691118571103322967951583425458923913345931616884654390346637293747469668027711214226918639031000819139974251059742502396489713062884546989445476811848298952377025270552396684197469118879445475666861092850834916113114880154662894607561316983693122522010398758208005617210272172384568169045921356323950066591948531442455328644201925387017401616829027943906003414505068000731962102540685888818909264580513907780468428959412126787022896216809521196143070314009427272045044343723081298585258881994986261008974225717755053748828792362147426859299319222883679386079337243371459673096533514156187506949951094033717632968033826295731282562183905521687450566132717996726982810428723949114896665256003364899051956701315679179102063617608168279002328635423606530066344531858503895472604340999739651070718710514732455193389459733338869612522763061468141271975725664940689031484382702503993223161095851703690962128559347932643098770686428676920705882843262698329298175566986578722150950142845846600976338594914166864042145242528350495817889441680277395386418908336515707944207529111942527616299618601851445436547543643564753717743514652361767554205443228668550494265246814047531886631459124135908596278903701680448756194572141696739603708182361324741291101859827089790970159685317469679681911891510480709993991647745492953690634299526392507507164357298718469434566060657693012025758860668715493876960843172519708617737077973307043943431693453534885369602437439938238289303911895780351320977724660735660679686584695802178077270767914854033676629565437865695022685426576221914197104064277888575937240666802879644572198001587481436072921220891757832831881835090772203386926211083135417720801130083704265678936723758308986360624975047360508460291536782579406451490190560484223360481807590957061055217251621447025534448990318208528563626704154596739892517490172358850014920888239351054208732365710148668578505283473228893791132840271424683834299375347546799800911615578825793408661149336151147467880627113046529698639900831354534549181657089470834758328741914139325118718411788319133253260237559479565367418319212464674340988421711769345104904730534233230359695699787646736894257709533453113043597278936198483242281368940204238928452905558607258455258305521017914307475840963871492118129347902700476873392423001508347553582213704957618884789985617137094838621161611820265105070851280943945645943853130712612723265851913456752255377670730160139704277238804887121533827276086943597294890597104057863506663550863029030411052555506674345164583620466710319289836745836350185900576906668181620829382950726785912499812742353977101551124048866996181976271286744110181648785972244343510198635429349150721918170361552766743224438928496636414697596076316566322921278343472607898000970309923608825902016330333815025730632690214128329797496344569921345611125236119887556644655279220792552887855211064129740459230105196673574368193684509503801273632563516380482676922463192664387084482333544804253596206815097820619485804381389960948306920868019402348364821011367780104795931765827739078009118861420009829549097689844428145136782482713275043483418706054158862322937757022903736107512510565474131152922555306038396838194527062204082490218864165904317957801069533985097156576115379835730706845829161968441882679201970434138922167120164162048530958902485968404312166333684026211183676953496162739432530037515175205032397004028300040283307563036138464619760623398014193942930799117444603525809654070032160471054703504919299593866456046261973120058245297663595642149991612903111611454982527506045323086630129882590358114716301925851377784786856753753962588824831116686253276543673870776661441636507917994989927262344364653882330295121496721871771621890673270050795808786754093124150014730307633181614775933004201117051916833065155443978614777126389569788880230961378044592271196998346543567959952876569792543085194156198100030252934923226643268929281814112255815952310253120644160469060344729443624981297506205807709087267280830616393318541132050041444209119312272722517057083960653991065976887889117797445815289713765917570627821489217283051877831691984804068785441972175556531954536972167775284118809913089834715255253704574376087136530820953443843793835728244674051750198073234477338551400744374274355675587147271270532469157999192256421116896490092982423188828092472292748084852409177027778140118475324359538782374236910864009666152898248540011393435225145586163258170341156273248267828434039571646369498878785209136100518930268560166635961202102661148438666672394284289736917129008483194326651587680867282954710016405280184274613143508504976515126075510966549438122568449791068022987202280927791043155234974724408281344448146638573950683055286922969778696414208831900470683793093591439059375098461933973329499621345390058760644996670201693841307134177675207221155172547145282430292477481082190087195642417277708602715579688017813981176047707409935818945190647023272785406645850008852159651730179190120935832502126684597430608464070008348799434232313146305100586349850400621933250571661467773059959855137233391183340069032155449515643965732633104755170795074032267286328776686138679091750434154196068887805357243429667258490625407824854267713193570686818721230751279438436549509902040938520190168480484966737237113373570254178403024710217091480793431365342894565137308767433117165806859841086869504701187646209076181800746136035542767256189076882839828001270519340574571509763774058459235968950739261594741371572208574545179149895583213228222851052675158099288303599246024152386748018546771723724338088397792000866191539043955018762494847439707793426731009679992309751772766074237863323321213146180422747987228773945077953113588605460423423637448434681049449206210875804618975328671136279280193316567126733355957508729562434205966744078745910573672187745243401480126815243744641394037250900502102525390055711305268336497377833739200835160524466579306960322451502375458539992851829523914803047112504983461132782561059533853610655158297255190441862450678294396481261502589722602437803425841496388094999085733115640620100819878989664713601041050953975041226910471542382735804106279221949460848947139745412935947272006042506244732227931851078967930549591455665850018909084221878626614109410817684394100629344053845515109735217490079996293784426868104783551358617106586125543581918873022411938364709426345971260529768736588275167327967387742151458698589529902271719322417714949635956064295569967343928546747744766177651042168434296192972737634072658597504513565035310718248636843674043807241395523756985295080003850565582940462457034444556081388737804976358655741443660019760391102861281477126680160241763652252541812422456505266601469256166844749409892504732280587983365723845917220581054670006904243367462568795449381393877646239666099763211022538488025934543910707475470349292270956352695105374472179089073176494998937406652824488650101189757188395772859080494185384645503706568903101906767314575940766977036014208485982502300184692389509922272813763129982903741683076108751951840401579380234935082729405248020009165776892024396764818614323417927181368818917277694838376216783453029325043070966372549758904365457671006916974893202792791610833471297480680550961302193109724123567091462647360734009411105802081664222960395312979860272979620391450699456545375868033866500530479133501585933881535423260169039846771867448530054516815928075159671766898247798746821177729008602091521604754496808430819802735441166140799910082189631326568592434277933983537738000675134750256195533053674558187856767065424454544980659459800290549332371974613427677949515824018805419066707881222251948246732687792424213148821872705606940878117776969480676104522930350774260472262397068285713774128039412588130937289344257378659916177029994517486900560861847874129725045244161526801598069959898674390634435827902531181370057019570233937959679563247770999668882792770466984007595718171434387636577340313234552056063408795731330363519053715320179600329393223279216972107676027913800513492636976932013602980139815401929373700942126604986733870448548462171049682307054307343640091399378130696362367546569724784053581967142538230658912993215104199507303263587161369760830727085930533656465791710141079870719549485575293482282971836899615636023802355867547756481634635563766691365025853775543660557366946745917235180999610671378386687885470233057049663904679120183114160073141890481906164412871261536390310487449356722453467649021183686509915081821027900440412856774709913639337444806602645667383234611818325383030332440947421221044375861711936497498042876177607466998823713966202308037216006528032556896472826199099893058035967329091030354078485044695677693529485181406557510883019696916310586799517724783241091470236749768420288501659159885467342379279748027256008007319453506024641955748073681366501876919692209327138695151392772499608182405083011774742675334713323546061928430549040947567379920511897139623102128667636712223381462838959615947600984988724284088966659808713681191607576373161271422998654472925628592075373232851402563811736744783398779136224695927542518361541020744427789210790630680094761709034031016776033016397223872483393374099846741386463919956622194693612572060785434797287898058701236123588887317920072845447679573576061138032116687141206063895195078696406018366341088285286508267804650828522840975324983140551003578038909380686671997405849127819918772137089092561710941481067356865437480072575457661586400199723528243118644765331896738913662356357504776192244291470006636180487587196920834607074080629692423749760302469472371774219114435380614307080557936028720436376389710528366704101195538907374403316454320854739297853113700865473436695894865869010504818276694298172582511494256561190643486481557752359385566069700299524136699497155119956887748335242324697613671199094825600758248250566577317188956449939773270171651674070625879181546674985652968297838307648865543509248325573889924019862879314876829694981567115721406277128395602124171349322812276462915096805404262220503123646704007653927478726576148159513673896746130807812815678030341941414778048110910508387083613414227497294529276692378193756789807186487196899842140786092909255862177654076643931699837032751397357896028716307050516798929509414657245021487159149857750094513901474568932564962269050300863882766610473578048901589277942292248024181779151944755515865756259730665855940176939624076286796879780899096392999269515056292299638421184966749971600505519484175599872087249825772253739140639615752034882161546889321522110524160937155524997829920851115877008933476370931136168666761946290512738596244494279335519886639257048299904277098593897850898120479916522894932124216089755707006420879652116927850908676920759013664243552496268216694382543028171692226128248842836820982951357619567891164891099615739245339030309850138865720820432115262979373530141480149113665873244481045296838024539171144573445704854765780888733102480646557082545750373607988261170187910556452355316389955786425579723641412982033630390050478129181711842078825559616498995559486665239916287101070969890956145336253212673830226006698661731678141830111229376311868334573211505461624521113535851553002515721421279930118495248608537967850159820032433654392628224865138226595001538839692224197271694217788828559100987761787609664475745941580014231317693739227896337088815990947442210689501861459466993054538909486505870836975654666971110756659700819503459359331462326803467101055889070667845987521844653225379361451301471621870336940594322639033640660180284694331142017298577973498868049074758687613405927910394138782923422733865718194159960408223105238135726065175790705903034973162461178012686242544243633085572573362600659660862081126513655673037497773059934783529606209122629465649461850576128324171601657232398226398296576291603921454242990053597238580286765542831817330945291029697137227423762606409769635038134964508601333819996093095064015789982695479811126178559316870576128610326564055761759676331739988766790096601046538959152041227591020745656402111187754085577102425114935532998646967091829839213237871603468391439374744013082011486392341787780398365946519245285491246864270690553006753882786163856945168295049767129866240019087953551657641643008636717055592114059093310453152674074814441404348965798675964889337561779350252455331924710209370990168622863992445343965370297178274380404496069547142710007831633425419876943165014110136186444124011426811900045850162700045094117436872422159647514415678819571408634693129989953270183561262482789309076077689551725674710376439071562699567275579982393447773669805362708305288309872552658254884670047370552246916766086497795211848528217269311336985950807855250408957033633657902496033843635614216477796387386213888697609884867692933823550745895051153744825109293586497005458142106175838326148717948310581445612872696927759710650177911534572601545006698502220132086945228096791499289766020772312737000424602276406180875904572901446218663235915612288774980430261376661505660073204930642926051425214704606096002505472125444763853075800686991829606551456868363750143836453642953988596796383892088190202517262435101629912272475595196339430545612956940009074642920517841649598063510538312587620856896267622608354528659602933568545882800080202843608479632044717088121511771256926238029179825046639811698297945643159807957590347613093545549418599611436398234561033347260203790080796070043812448983686454574679298458260353087086147321093674243211658090564337614125993811623041707133592756846561732797483191165212386178768887262853218113237623631162975228270171481737725791630237955905008328769335863552212873870985800706100527163628934919327387141226816764554338888947642725123708231343038739556618744994898702441420158472548910704694194873504238638204439655832369825141836584885811325375254097699943067263652921424763836771897617066329611034275323300132928961885836046090444328659139240575639902452290960542181713035654477896587305993959129304418873265578233229356276938738675649993254897081170314025366380892368834873847645023227471898211006749667341871515046621542871678525426708300052591655151035611383088852027068096980404159767595878424117364535237543298941918863233465985975120360184399743936720935177381059402741278438811242097805609083478079527355496620381398500937086198625437021900157898419074414258451366175267961075442305499859018921457472080887444042602192147399707169273626626766028329581195093003122652023599202025423504825488577005012475106386207968538959608213217219447490994145762311306227665448632523937187819377167305092475523756153725562988811367558390077699735543317133358130484207401953969733361405959780185507403140233855422832435920665474785953664901114384522329081462673102135978046870567161562927735284665569798069737271741127595499375781949043544135501360081782022585275112397943032345766431225599604065004565842210703006246374373847665935203692877950307100472480757421310601628461525989507382937381616942713426482143667077598677929361748389294368477705716547829140131037405375388087594321962407664673845990595448191690959095569651238892801176112566813289711829215954920372260772919535626628853499275545105192745661649297626811895051217666810681410413298430433248390007769681615896202107162030688078372489607231118288913618011227018924969374608874864016910502835209198082878516399528985427050050716861674779173785501367305920721302054783805628621619787119312699015200440056723349464051301150509641313576861565445398392793647504513034919293213760607696498677457899305070055181551598281800722445971726910632589824931596394132501448580011827502709825557451911341394991058852114927942447148714904318630408527991336725439185372022873735969086809261052532045375820612182606632352898429217811876947732342043724099969203639786501820053060381568456813801667858512181725148332670021489661812759111230254590888802430831021029570754311246499914390725162047895280270612283582308803966078310726182380237743877723429481585573973144216117076355476792663023333765713689960999476447304108112483193698531308875940642814102712919071447013790170292150985423467678907798169910286999580109126487098040139726267498626738399690719711834594111344169786993777365382707964615676767690456450295052108171800866290613033308166261263740555360989893469086082353874405822618992231349430623549141728167397034840966375732412085851238132886567225736192619841322810426707530053433912524613323437510039290134015499295348034799812402760483143872408945565156776095417603690871948876796403465042016697055988220905054308702552072828921736925473468276574069189285691734348635966406574874119559645919142789597550235714694632971060177613311848516480049383948061498850346970055292505258334918393923107188758040891642554517733678495609566186736702447858737489345462527002616921137048447760095336426882472633641263785926052399192371540717673036006206834090374559827966406696090633919389037851613292335290025428649573353876217354990437940268015818868668389970544833761867242830579643257123610185926865565088250350100842495402325202547938826786510591652315645389293833597278982331677559510306348872559852892150051744961483222874371362075087070287405021829265778233698886977809969992163131483435766149679703519293249232909468053338466100598888078330161663630190073479200335159320478221007496099790742433738851351986322464159367326568188790314193220984015615691382046314622776202370216785517163864521493879135365367568267597732634314102338896108662868473660593394253676915134697879728726574708809714802722360287747281082953223587831384763178290799070976090546201713842176607792928442162214147397845063505621303406752713833297308884356346656634590681884553074801039848061343447802176231633536643063795073217479507675862100607497171769499777137396196010321307684705100667279970636398890519118076553180391200013002137223141979167263553798523568336226673613727604806970818923738547926141616230208618959213152166912542097177381356602431897745662695483627587369804049272117813494703232474619250842174845772770234101783731750576367902535270880636728227001390911095699203448788057817774775555803111228882742803498477439630046864097244780261171121509839317476301717438749560706997712633224809812198382119075485220484493134295118030059678549364710680269854082061931004972484907311576202597378879708262042292681143925102488495621483414525103391569679397448036916434176531445220503170061181453258056430626578656722939634577573907597634668499583724650300798798148287117257249043264948430575170603791485355097117357054348441542075849455936385688228718001994311592897153802669692972446395806751551065192946874843394919479629697182406129872773445598028025153100642180822994092973880426343350003638688781483277444385728423946454071529032346763011344699091344721096593952503049900972387670639064591826885018001807892978549928992593556323595028175457490558486680585577631889548555004788121383533392911892608773703119677617363840194450790355069317098817071897684182181831942318634650715137462809702470006642485190281900535881481174645645876785413130217685890365665573902728736248667011453897009598414111539708295086696880346002831375732082257944771314394533156441334394439986617329130552869055132672838087622811052442804304976074840266047617109387193651856442042016001096267436570612157135414383585746753131651997233060950481834897346284724762436006507518897310285567313733947457640846641885772765610856031647169920836416245917438369966977730499739716288057026025506773677457146697739403222905849979097915042119142042956910574763114526907861876974966238427943127408785068580957273716145290825831077671171200214429461889874653542651252939846801719772005702674299454802034010358171353435495862014152733798898420022989362899973438050631585195659408707746057147665137138514474637946278142238297823366937844904204590617260005233435195439193073413854413548522460320018893334605883656352297429701112763407526990732956641040638787864062274899094105160360151359744801226062600299529723771934820906107418160885094953036293023380004395492324445561148404455535399980848738447559655093054779050787700999610742860847062485831662137927130974299049596294136589031886308782687970868952643756228497660901823078446091967473096724529576534306627205735727811572638682027355881005473665707318288400937165285117376360368252033910799374414235033143944750769455344974674308791150967626679940245465809609404795934816724841795777758502152910848304815002394554673104657754216155491238068432646107914160973312182427723566840942262926773076085368257598965721516394260244008272781962195208746887061171488535592367994148312211001532945039130823971975047091566568379471536211494203568415310596681861467307968726333789260808596046693077132891054326908329952256700020868075002588705703154692889394165776091442473971859524666326513204877945574226520177070197485421408433240027794637918047827853750002492129036122218636381458272870336565968540038416094828843451792357166968654393074724600714977365593923625608250584099788185062657074009219862616618807391948512690312770980057240470349367588228629470928946170456134820859523558523133005996619712020117732509791190004991687642803288701920284659813436914756553232427028669941907809843315325144374970917635991292885729572663991684818741325183778462450576523555082482528600946549981338413838214633504564584062215826210195132072420212325657056267326062488783336586614167587498572107782205137863530918003187547120097486900021437076055422844175445976633292193926046089415433596716608017240554111311710703248623820145379458421875454128928439030927316751160039653058171947979539656284347860571801189021781183069458214880124301787827682529858074324460754148319617032838279882678363314955838191742857290983123070601565225437575460216025178701570739515008475090536354455271357868582009147619450757103297261342086421027191201825513618934172721469802631164203616114786638114015757316969522285833452133758740909357961624670775633146604178350842684778477883471248345428051718769226761478066625571631473923894833424811206765136150048207417148187463030463799207552931008614992514001823860211565653592895398805995096345009945440702638476215437172861557740103925309709978115476521000810333541338161983229776786450050075197451531173528640395293683190522203285686123240034430361572825924354124131806184607706500830680998655053417270853746613473888986341579209253993082028461235103877650420405667220963730411339254708605578955404089919182210627538467614424297674327791443271093853260306109765438606301794839840814450614588775926068852352306951169568369058838905389786871988355395857040165200009600732138843780140878182819111034681765217035776755965876009001085087515795731749345455861040940576239349267701778992380278420150165612814373379564240150123870868873571176950648094389797939224158510411549173034457956449207795229522545339927499588750824139697272636286115724690265003629545979831282458497785090483790297562757549270885867551158250024293321846414626282522464613279677473846352475525808146541550579454714838191624447922213263197741438069241268932649969599064010283836492482682574910590715098535291502322855660453596344398368183401374762680407751446789429135805200751492367844748325319168101015296545910976583548234986132081231868914244343553355845086596262062648302791813613347574681585528153250530952408989248201115249759364928464402702808578201940598667049728235289008265779613184455531596812735693330720314423394841489325454404678211541876991085957535379241803433050836523273757544842674914667609360880183094364641834953233195758924824245834732241108759254900277883239666657049763136372278718604550125104027890537042599954711638026075265641471285051093664546979013470773531563128904047001570599257054511850823938607436246827366320525643179871722721602139988307438979643977119243053913811939321956992069883308085485369968033862411697891743253706502621782301433698399629705809677153144625206091926263280473640619293469260699801948895354956712838864319311095139861146569493667903883244726524809847914757577397896629090023718413335533604723959622164276562045342592738611880318510880915575388667472211963596068476376335189420442077044329993164272416303281023651150763438604194536748620726429456006818675529376477470965996341706591999193215870438591931190636333009733206981189208453451297939354600663160109695428997368437140870473648305080256291373981661857163142747561956965658357871524657173535127110674983555095369599383852838210557266211163600482599434270215239346407402571932805217852051042323729871167183737185705685629368278792219936322216274969650365002804765664781969047531292644095634465071656404502563222817625609648991723480671027510757363322165412651973841661707986966453072542194179497977513554912619354397948611693543479797417123684695678944067934256248853181880710143180725257117508840480566080972727785846338712666831938050549530930243029223882336430004878507470299577675618377001902864079187072130359419034694087942469296493132674152317224388859989682517331596084959977032804320564344404577544459583615034490500549748977315606856949659271952395629714970124827550345359141320252019134827468612560299048274735321818062841269758882661959212041622053630684154020233214442095167296137705051027481333013067118860983274213106513252292831858565916345799147073839390488853574378565040336923357081438939950057822414056260317173980979130512281490059169364008247851216756752379607066595313727241027294124784747079216564001888420153596450504218798397565229917014714504221365013207881597936153023282333089751420157265547560018835081317417682925490947594818085892333349751937908112679785262309772619684616769739652934317762357174784760348501403410416885256626417870543306975378089050530034705377349185897317729897891358557650977260213366333834328467760542018229339317705635661475206544046881586008025718794704753514992629621455697630306399581305760748862524794768771548892139090525407975727376834479179273634666921669228748517989095659401304905382255180887810343583841691928940885875361069024558805137941172713163885658573720233559633935253887003289368036941553249056040160858628068230392502814807611237676612549359112629921125860499756861932141097086072212929188635841245526658829092598902202274624692881520476595596078917453821603899581647520091912187923852148770770519144670763572455116876922275280866563403136564912249611329432456558788560680416487228420136826221507075356273543902650366773852175561172408415033168178277816454951165972018268725280630208574080922908902036479901906362300085298999233547098937520730156820881599383698873257703709190480184415224965020795052421627935126995818852705986822565621936640434097191961525210415722652784123562831399159334328536467551897820023766056356798931783150716422651577202733662976556687171544447700473688933482467507783140198795879952044331658397311948874268157561417456915863794332702514666362086633613444416918381753832022114690281457769715113820926544908756006822376751843667545197485813709220885017908367524528625744228800733126291098597513364752738458277736725904417790118321516777401597145799320464519294339499378230644170907081575206435183903134079781935925614933663365666336731565863596809228590408339716308961869106385133913363935287045070311297275815196633613784290258657141448796937680779917875633230143192194254147983772873718209886809744740670116125974420097011422882844964256941822071894346115393943113027406977218612539432438340880736184966311687154083386369058542539952584801209007470996111627365550966878965556866117003993607672855844843672409233394444329764773731732625619782334831150108022246394094107366493919201291899628957342271555666265714388597578387511103291477448492533663457510481801314003167157482556196168517201278115833999362298725753273779390734863502346595714949109608057456777967474486840885193572191661618979017785198154374409982076244534126326255697175704904487751612171170020125620044501967291839283321530638990904028776595986652198656482314947941415103776429358898544951292133203326846074176142906048270302251463276986537412607651548580961437892571752682487125954655954387736275334979546960420917009937105721901994641386567510007323544698394712357265509383143409263211787002460410816987128778502137357187617076085640648892001822170500218219908202373679489996581759060661206742691860109532606424520130162020430991657658525912908620271813673614858411748024068265209480543045555144229433819764857515523699046778439234612295648164884961850046848572388849059745318890456399986651163930731118338329376241441312183881707822224604067435123327875578553767283126241878299134740321875903970583456058832151453201976173664134285587005297582921552683472766558853148826821362813109132823567646887252765649925322404983853690815035124753522302775443322110129420290500199584489640845861784671754361141970312108128443918558739688109036505588734053054995956250880155041476657710369779615721112135388677062160317719883128623690905743943880665381288585632094588579359274728875192914720814225880331826953240131018790845006087793929664500230613157195517452573660189245973771137512666777221193343441137096571695387132595524100833367247709731607867842092259961941593406102298623963004285535242400785212446644473169033424331691796164295780019628970902403856479132880821472872837747850956142407179865121401506420923795485110112853156216709144817459575382958259144050023033547766283681716914119347950733279006245942732711940120408869577037815848771507823503367567573837508550259659870941679334636204647118824526204339768168861980130362163142694833750947974312656372494787071217815570605763924148596117413385481194555945735432812227977559538670632615124641156556230631209482954883020766634432791333441254233414143133669858105154795749013869823756324996835304206841535039434690052312646464534209546116595407082851457476626831575446840202812634540738608379931928429048201111431857311140346398724074028207554462301348922917382591822250252345826012784054529235549060126681061272862691817942710013512684412714135109636204100219017609303400217215811192495395822086385429980678384326636348299478706339767659585015609276132683618474806584885638163735675114455014128001535037630651311794311677598180282501432680778218663256128728171946915300704383320649705987944987542733651822597393951749742434556701560291800526252297882693528959458217785487327783968822818668915422963737682032192398268059008681448907625193212229648544948346506592196479401407244061850756659043393376076755174138345254188474459885865173271050963239113399730072654441675181983275462160519971377881085675479275610483852578995608933573795203775019733817940725488355199110541255713634039118618015976261611865210082229985042049843258515821990297113708350868466561205808288068832381568594251990898467105192536331275173477527767733794685785024294892505016255801143146036397286193332033165173925590340992893085923910735973468409377998153945474364451161633723696790934395730831192808284803356085456814816224859472835338997226724345064192865512793985673931656674147728592588067502983788615600802747092402057889974299799478596892636889439841172098565030490197075973474302688240198972804289036098741513165302992425799303296458487145779539808099548623671844329259324895223216914743333681660077623757134088478264104545443969165980754331464691545865460281120500498019412334388726581640273362338342250727425160208937009574299363779612858523453624130267712159478117335270981252543983748440287012314754894530368464032298703430121218367833672074570042458801216526610552369500728414671308906150027231784308115908897595239895403418874214596825966183090750566051038465045086326591311518287730642318620590625378895473729437598032344112202026254863521851386498632621277844400263181115410584380957053301668489433364056182752629574508538294999743951430993429017054801964930569431486237543230812414908173004778760863995025241552754393320357041683312902003761672030015646624229662015404162500417420951406744624194361179809531744724280903913903823113713262428376359358133165695904588481166827479412372784161833260457010032706617551497425362497839897169146977459813085558494959545568259233654980088860587788609926990723403816379339984955154297061364383383469149909697793175046626627289333534335286179428230203958102384190202669637181264155154846151575800422772624991311696910324160222111348183292412817433054416255914362444310635860441356657237975341629564657120764997229895169189669693465755791727180569331537135661003551411850281927794579570970107709298014717313337186792708741938668070577532773091249797113584323466164686652331892464056756435273177412207363071809330064820073762420375127369905947647507890652804678827661096769271506981623123793679156219739745805101498221958802115783028920872957782203247093580611251062924046529098133857245384749791353518327439885401385794399341904192892320477339015616277554055906464823201811233644634325625964296039989106918550382106400220482790224509861094070447766685897430423776430013431436000861407898376466161562613057430543505033169779611771853958746324153264283839080659496134781651216202651384242674778361264928897132484553625915156542498144367206045063521334742357889327806201756344100128698588569582300173018138120701727811847784022068328572642710325502609741244041625592645753237265017398608416239828530179391980766187089643010392652324247664563462895877428375846368975100109084945396192022737129906390041349235842682306362118247160602226369995212370297686334044834833583774171670829123745301458454623440521591435895308730254889344138063040706270205395406677025106366226855209400581361071477868793073883609370863717569081930665524415981712064533324960786306067376286703061113065737058001256625919365120860551892956590391550850054544839479609000566460464965132863425455210288076460577290338008750577550296555139178906540438953146315650863572910220160358331374206167698511720699408530873497774315955154808575332708380731765367274109685872865659064278493289553226204661324098070892496554436351026430965512735912537572954228795832075565219618914132672609927205871236313815839759984161671863234704152095476174519559089494470483551003972893792569172497924561205913062160911029929841959992473062037012742860123004134623165054319512876303169714967969956842366014369740273986855397740521131402974381732066198124403311096171762673518440938074224227538762253703036274084187418356894509590384418901986948476793082212754537743750256823169285355342120322981447622486673478410125752718984161854479761493503359736688326473905063059657795385833469572844130353762087388687442698472911165959773326925142696667581480071753456425526850504248801220484721770865281456976213391156296942726872267937666813348536144387531235735343265817406950489538440246481974420963145381298110434147389548725852386723852720681295917782289717041348302082591630537160969166490217647297759797340299568741359601273744364104355943007510393182213326408091062740680179762188857479402258465243873819819964605310847023456733709400709616222097368786938379162750917946874020900491012754295410733673992679961594715014723478710976807297556691017343660203793220827414253929411373704779510071827963779532143877709346127251855384388119322876183958986944931904294860988989626301829673379921416126832752124433223794157289596376318398483351064181454764357752595530437263003416769439895422528110347907724693628726406287448679714993884459460200889542214492198407394428528819946868722616984101466279267819679994884659517083813665771439094386233894954769539007545789783436948407076746521926451961243176300450908940423020742802038122125590087180164896551830321879010415129573442428787048984014140916691034992897650568056267839931950630771466264763472900785164488391197756051462750735263641651448254077051140699631903994037407077044621748987349527133843284509949234497265027806024305061082949808531893519595695737599885820066606420163971434628201128875356789421342365849496265829985453967514263951856767441297792025297015208419417840845287907462112721158459426739989816927619406183569993178623158836537835770789392272053549499727158902493137192520659388082935546589725052891600534298123466131651624492942351331160254497703787364344516762560262461902928463361157614649366810361857743628842425091440794843471538724818767656850459976659621706312401304768389565312471526999639183447817490443221291508483644000368438893594722162736232933029205136845512458123978937519501474374421086400106186374036898087792814419877589092083256293994364988992678354542377146102065560803809529721549596923099471297269688188178778508437704748064769487685060666924730834877166374706987183395157913795561229518875802860411095344323376581188481250588912504978357086206315794526844067321632583737725055357019470889145377484381915441542012675384138833743714341626289182902621385061385273054099620505200629124737434983497455007192239727033324531472644292879309518756332660100228255262826209428952674572101582581856601407747774023792501449150671646158300345260670841421455305900277877202648003692756107168015515588438705666361581445846004948984823057288551280417122784526249741654757146244547498516311929562000303652998074593963724632075356694040312117521847449513552277325865551269228094545316246723453990490725396835364160915326422423209794688783624145694612436513917757961763921204025591778409576992540044691956170865541638689149241220531046434489637894437157164761606311576562295446662037209651520475374172353133337074662799359057959435260517653390384654161548325437421066005559119600544190111044071780626499576638045338082818734781199646595318556416585326652891481986655045910701521420134701048853374129719060327912681684063429256680921221510375725019715835948258946303813215736254050321827317874098896255019631177087411181463553822953457877597231194448038336201075150711817882777415033408798459355352312697662130972737622316816659017717926733649478797504318155114030753111462984679312879372607635179535633468123138295439516422004938291262470028704721561133515229125166840139978813536950533422946438735686778826614910333584802685241110267174513731576938877448713394755138305468300182772148553234825947053770712544050852152942066421632542972288732541490701256568738089458793568927104119471404537582300742821947319906480679414823993753514601142766509043254163027137405168650382518845636765137481824940111261249126419269721049432026307850594948666692573016958585354995677046738756397584802307965583871236395716473391674218772915828518113909113228539663934713333765247112271893188607660865923395042663032637581566319404897229942029164279131737363818823154797830203822630452402415427680644297516870228929409313811807511290526192451238400121624883337815262677403769919934790093590117306410270429063553727962407037590972416495642752606442345337274885059587177405120064187346755353443352792681206173556514566189161007342145163108787791105643111975612674555440478958625832963325707521575834081887195351297899438048213257615310015607311872304469361370443868164873799948517500731675999628770792866938687804669544009190079895426476497908405884916939585765337898397063395307988802844233485769551157229175762663249881927604875633433961122989071857031389861742483617292102394333565299811011336768379908607310885734837415892243686707526736595798331315443226488545942965562706432162250174280144106159013967221042810005434361603157594840112764551048708335127222525242213791466597820566481064653496917675232141062429827533794425053923282841357038814024488774766001807616942046653640703161643136766183293558755991478897509909414586326972070444176924876064347629019864607433168171853067480072459612111994397712834668629555403806494389599499193953759348507164876841339088904525921522929115051628818212151786244770216707868186133071981474335102539046168644303733552084341360674455847769515124933102137933827166760180440590874940918578156700843970675098112366134226182529671698802563602651048279073034729672838128017911566038821664442517030742445048747654772145119356308332821922534875376761485692718535041352450584257942339389956435616965947147895369820496034217745267088585187395006523070471535877420093458571020026408196840959720976347319990934892984031792816075612210591159498086805539623508927291431273156330922099986223747585294571793164839474384573558236639431734917083373281979392004439406089373541051365717977665953927858872189039838538066997049163503814643691785545450333041170821418436443479006111978351296358897096848032497681284770219710868541666656172902095886664004926739436775501463433016464903996444186773806337489539915243437202087251099092195108237154424362141627223522736021890941124325759969622914143227258307514477012585383438718837595161671063083946781149048839672746815350911145840333248535606488419227427436799132663421354975472543064750627008506093939727022815190799806295658722456584578078314616199748322905043046186037651315840736055181803971833092759874272920387500459415904180710415055092890114696622403472652483397877964475679989788279404012133949717349549309048724868459332375569016900113022662874377830265064718164004386055444906402712540021595562781582039994666373256428286769452127996639141714925453511935920437047943807746279238159464949216405066451494889227267736503637630776695167185464190594899887716703166139799089778736780356141953938858780927906186034285449454665689130722453431464654296062618510479776571134044036097089123126193402046048922176260329912066448241003867273591239489057727449725833041933941392426867415359940305366737882450290220894851948070957287163542341710993777227323078623257609657087151889077072813206863833728177570159386563960203012399885840874473466785233446438359487177815608749221071452834902526630891474613041071450270145123162642021687121354953320903794817248146805986837926357255801699687485896841321508268770080409632099540538342117202106249466095851322103439172169921089554434728354117958061926600543199075937120899068088653220766512352633401507708278599841865151579253700023578810444977092887397488114894135041893261794306540077650774128349584677471031763909674285002212408945185933482477829518429706911451259045048731796257040052233271000095719254037919414761044631239595707411603700497056754757838579793135685760232288381266178777670323301857743471330069801553423290025088060463305998275501231675234074949507626991950837980344470094959763040899793824568332652639622005766741325257271208718870501079714772932181898028833561770006429014838767089251495878878348628807831114581773161472909194007488304466623131357982350351235536873303108975450294089939182923055086553467454296972936577948718140380093272190371544029153117135223044398175239202812284123271725685277515517447738748401957011614719471390339280703134655716990365414047754043253157092872992617512328342139194288551476642253799887922964341449337101440502131397096212908510969698285481747406836739913255933513924162178130083898832386919992212794846517968061958220388147972269828840435486542819617587922111124372530562773836712569878534112090894269669143688535819978508293923940731038243498693704575033339512341348889367762346810090357099867397651140612189964312746998117515606050279136234973800927404743236650823676414527032555931749300496687962511840267063670749724981639076511302477973607049646462221223221555317645917740939725987198144960569465421639607682768668121010893097551761997401318878856258439787111491904318379374882717426375936572999974334787594593296934161799400703379142187771860850979698186171043113693975103679658859585981314640808969166663668241319607171286373243375550488029835698519729925727825867115911953180642604263439644552181949614765294632936544189191159540335029260597711459831329809131932950061524675430476066242562992521655110308937754282566720599803200206342861615225716521658720132065847264501568310961039663547771905149294194851729909704293978056786930152746520760102284586505380968986061094480686525993285102840547413101603399472734480213240340524940318007598222886149641493993047590719478173649140371489210464752108663733026498637300190030154969483137603570098453143082274227962197344461290288275988103110914033140016926614068145027760336382346366822137038260230267690195884414030663585377780026481015603597147289808098278012228009915474161009248136956197447949622839198054034218860229416394879536821782067527728931508235467948358925764159376934003532337246325879883306248395758091549725403835290980834262430499088910200045605196822558239777492912542026230095545316626197852104561550585615919337865334815479290506712206802730634277304516893215751181591053119552888874169782828666838035472033006994789642820794527035272836967801681960052262164789116665239391439375947791181049420086850734906764865739627410198092185318187232871949410114277716337495486138858283120904912230258563720444353245712341317273679972454871036413487798826404778469910929056822007595150524932943000904463486115661378298119049764538223754303109061382490716245839538636894648670927953839987927345750369569934780795565120481107459120148274492532364638192774983931684298102243740228085897487722437131373217207441975876172076178090178683529028943982905593618295888708811733037185360270294227448428058935711571762297382031011447476267865241891725153499837842543675144746916358399808240997524667326330713202677830772503822428005281649820623946234002293967240848903949451699148864976290666380787075514987621720202232277905972058307338074759062209100262555231042066165380228920624818733571393329380460146252317334134080748039491866590212541485960887557046109657179355194325107826759195033825894701004813488987784842126814026496370188277943098041796088666867995246462070920472467747848293376492109454851628008195775451479633054248612873553156431577102316988237036071655561585702315711978174731656539418730109408340312775531792684579704520152413914870337266748791610095120867219606233485181664573916150367000089835503755657409391181479750784850404090305571593886732993628685123580022521503993073552584190605894614018033765061448939623129913386069685631442658739491665274542686940023246149530601259582383232970612202607302363660565423298613827136991633737289247393184864653197584631344041562404585518067014624533735505346706151487019678452684650122583503364453176734070072172773382861606351785415855344138081359499027569578956336630551564178257296424637088381849820995645079368124475526856955019689839749138056787181290072935152582774998609120421678960313124666398754014240897148471572182764627230606969014639971185001590239194963386196870578818162903848234780891641252223487634032849813187110629477195608695454281333305499260195098921416796916425755151319730474163175650355586036558421966987717019696675997980617532552675442398882727507670752457371489162394717404218192333218160840420117294571867286053713747994020915363264338376149596953955418539322087973850292578666891207280474392308134837703767330844374885139494296749161895028528465677094355554842357123340637252368784598431242083359577925393164537371418653621619291464541664759670716655573789779649126179831515765066120579359510966708811560138729591058920824811034830885299507071362159174890065230888772181757057702057524710247187890562788652954363458360829055885897550550136664516974412406051951318407595650051793295245589231412066453103785190057311303049667110903576171640499895899850443260164574926424782543090566807161257375837093695373062124108387557892488404188469980458604979280838842279765228808484836648472207665664311172353952713389149757404027726095548037325206138580398616736443204281433196598878740853702685320092790185892805320127247961750216632599241453530760616756268672332874131200885936364127250621065647882736417538661481614827590112381333298863771821598248363331335253034949735174781373904685542516081781644014481370552541708438926530419660884706869361588192892230073487362771241014356350985865690051219367557345394519706917418752651857967835751884285608632188896758459870689504617661095958606860291511492731602179636508462721382917372419687449358313755932161701336857741724756863251872514975810897013857699779195693795893236688481865134004135978263636898359101395680564074504317483464365387309220856824034387310226024059795740480214872894692294572587711864963273251275463283139402825608622793911739744157987810977112171166958778269164803160727358419674776248393042866696354383617881251351867956771102366006800787190701039325157694936658145000010067014558862951459417620370399294285272084443179066903106812000160167677784443636037176310694314324545739278499370375249308567922960727248647475282661791368035787054897522521600916664766642460812769906285253553485188732152850934247232413294560365515880349841179930409015369795515927762926379403733361413821258118464379313175169936607997828290382772615873564554156761796329672836787005435893780609887214572646421267927831846635868848980059400895765023522372568373551462848826475966162625797526506219828956328939513261286286673415457960631805348003942989081057103663931752427012135323596911905425843302525630333973097141897507214510158418976062513889338490372354499906740683959817233824625710501480948030446593294024350167117331831855284489567675634935951695850953312852062155868041504164758632359906682451589281758807376430571567400045504719018669342763909803613146594526081974415894043628446911507676932863881213604957702270331728588463947287687331696709664668407808958235115738776580137830860514109318527306147399377900064867602481793511521363337536490771847451716024716361135552753166210778395690350916601543223706832765894936913413933026664815353790186035215790507748895878339365139805560647769946795663262753881494371763302712782258344707923519865654590017260871304943110879269469208583369966050378167164804993015095977217848567136899056212923410759951125937783438183693625793833890258062864079402497916772472334041733211825528021477951648966119855979833346118613350987594673200645196951715114345379509804474277724589930439860298243498741205193036348238957784091649370734176346294943012247497421186728878977395040530460674064574170637240794728535366310262023816774295364078450656207518077905691564561925251090481605060030213177030363438980681748928702827077313981523662200020955961874646092463532854634777062300428553475668310749530754384776178631917791615028975208101355180145449936245770289836291830877008292197398754508542235700152680542804922669954263685155844239478259189691170070144187847773430858559300952525835769329371291082566475607652325815489057862937088221195966762799663860003518307621236163764342950404395357954518484151697148951965239169182347787321323320023930957670388542345881229472278541321275971796735430871390515997897536684787226012401746460505638814737226676143059807374345098188790646549806919776447335092610404791306798146189317687812922503532602345850754418147084572360552476597373315177265740958945774877654096034102812380916933910203606010707650406966968244559447658244207676117145384154053467691281387493381101396781397879446565364697078275585105090982541440616738370771695268194943926982444952475486039276426869481390313789283168871442165722310322460243877458728984917266315844999837532952072737432886116801210867392880533045715366939993439772130312669366399186339732555903282374759768666193004396959244218621062400829312697521259371976966504939738297413943352737520134920104358849454210655202323915353278850272516925936777240812921830055505406644964643712400070425805479593581011748862043364476013973453637210793577463284465323005214343154500322363893099877826571638648755608155789021958234628621963021710850202987779251274536331272355202367294828028936915022450281559386117761011755171108999915618707106561638219545291480436116754615759849809415991199131090267325838822020253868917743558955150588340816979471227703042409519840235018105110913749373911681464218601712616157998479921217099029670751868571557757725457022787073371858600214838094539098520727837494076005085334459497375918767769853599039723854661713896995678005433191947287444581631203667317240555737281241014936206628817696748399778039425073379853017033899304034686555376527283165054327081965437245793874405313557171453443403920736336492714181547139685024552231689185322182648774138942400370650284273703797177118045732692754302756604637459052833703869848298629952340726991778726298210438958169392698567695794340146673180058310504369659740698186957852634642281370747764189825502327763966058107286004803267451722913176145346221217741439432704766636139734237772937317312287016222327466715342043539501871075023237770263741955042524608423083502644198395448227880658400861567129175458347719061658703538574745942335786571003468385038878529094638400688065954638381187647759984343024434274596721508261624732234376955928685908276008561978861362803539892995007743812314300733539352574620993063760756732651984954492104441047813083128891397635768828215921523527608409560851089209577918155693928816098621760423969044204854735167919065382739607455043463263040859347246910830591698970460834027135064033588055254247779404332228530161367554495514354865493751405818744940548872625152051703310603601105323631908063373371629446463353216628049116442790159302562199000062311236616321512203296495592212257930347574729474802385567167288320069027398256489165742761968907479820258461043142597754355196521424478504806866690392763417940729719169549057693245657885718580893819588771176472652044297977953505766203821737134403749988312784191219529481253828078422628255571759009461052109443632419203882900447352242591231454927645702828877045117220086882732947843937616992416603561828631401193154145455686964982627100551768148751971186815670323137209499095468315928935036990708235766261311316954940805045064831886138622341336269853811084556755602106508048155104912135958834495650255826818363977493963826111882119388278601143222468730294467073104646737916942943245281575771440969053041149003119359342984249201054968843429852463458091810536482583173070057882331477115150742369295005524220877838808552251976803237732506058232569290301020419660957737789585105396323864332917249369949268025300682741891464913817886095509419184653198572097161200308451833012672384024763310308604704110817114788196627821336026187140270107637007441149068598216594448667117275049631807666243849323259358520160543753433729415384621571495947820209202919126011827469769014806155125920343482347549387702091975645798733572602047432843618110424972224202538238491123876972439504204344414642802881710092047311715769798956706717982328468272301246842957082240590233012533953807496951976373016309958918090143178701239539840161494199257168032194449119946269032758053221195315458127085159652097667074000357732108622624396569969258103912331887944330908418947463695264406870184704493769365294333293542180634955067110874815082862663107869933245682094042127505141702442917203366653213912396426457522413040247699348068341455675395126784499932405744786324804183478948873312776777207397272059753236182629556663712279399609512674090729820094912351569503338612390593662018234369807839587054215526814081009747489557179858597178391132261879621874868166027897035847491889137490632791498137988287998135362306954703323491384325728873461656119326726377987698374969076077834583175829748057695853635903870532552292521731820312408216547055407626316925178373383856267295562814105336107086815889936124638281602488294272507887525045527622461103559653495395677031376496045448830206576316294356992598987368466032509632736340949059371699521167825424859992139867164879654023264275553832211414917896461032700170109799820565696732903620367087481866521502929555024908766704084940972006186697692198394329336209367265108097243877609996579224971855770836735416972498903632818308441005655906222938445468923955901086696139148720653212361773015762176889555728987747648194528725028786138689035535763658457790635767951604655083991072653904996918756965481443733639111736690672895563072609536389984177247122853152603501162679188756511871805143073420925092331209832970802741630913584267936715554226406798002307070160553874874364341902519454510514931013130129943561844706787321845823050792746039645471133260246091563277000944155458004675964768023739575066476955338831921964459488576551124011850065426048582741735575441268248141656000464287342629471280991805476837830586961161110289496383200130531471946200650752345385615409132662439663938673079460334817192920734555573961213919573831596868505980057531053230925485595806971098931266215234108697918135222535968483827965594120311704186630257378277308234750445074922875863481041577690011806850218620762754149413044777342814183340084570317954266951814739263870103845285001594128271211746882375599119840872310751069209767771288703759707690095768956831233729652485833019973884224476401937352457846843348049806282557898688426764938773927079087974310897334336631844831398883700220794650841816728600621405237677738216679336606975282837441928202271382209699428871491319275323282598495416023193028920422492026474201533228243353887260731737912181002258590297847372501604190042480895981445781306852171023085090767753060341825297657397535551376529913538611469315242023301974046243069416809086467592669569307712211031373163426487994625205266672997136426052836600092044050645997474731311611668275461633013125703883188634387866985780485231056910540503598458087093443592988971007601025940335855211839936509264406084029695868991967079719647903710164856462302561492257293019235615140395723634018398166068458657801376269068889658648672114764988198207419136780186542813096560068067662984224817759991161258737888957821254449192745341163783087689832070951644492355921259069624791860966543051110903923493616233014190813029697996556117301319133204320625497766939282821903676641631992816338956802143488348016015089387594127165198681223730915702090869001323121403191147818330090691804025934700006543686671189416455850325404427612176691947965864002179905945764527132159801085088651810652591388192605137756229781996719381216659743466558024510222988528541473968908274426107571082901660296555075236763179674975309344126165365919600484919682311955349742516699784421230449524412811287426651076723008032909123977709961523576605676605356882755580024497181675781717877383101142814430599316901094107248278081318730369940024816183600379044944249109928405467875440763822374651639738651832192355069408493706144586040285242301564071318537568776211073741707359079986380780284120960470905630201187569008583028603022661622038942928363166804758214674021091431147867542066747022216576611796190660758592053032063808170070934946051215348795106097127993951337022306734468297637904873696515895872846625878137734671063747987070051146724446778184389597467407977379218593350601670248911609820429732134117276036073506515387551689681837217789709975438888362949222500178117551688489070413636179144367736677626650915140582885740701663775516260147979017946780407548521598919597155302137604642277497510952363531834934420284958927314916855932187308937279041177057441618139921444046350105426535263732744626824498856160332154629100715667375774601371290066075926516673608683883710163242695558340434499711188616338349109251114222735915706643700556053860450399661091254246801874532963355479860389566278758356022205139574108386754063664602405155327365700039402349668776825717045887953555316138421385724981242986609544948488562100530525067606975139109371118910702497204138639071522709974840474163100333918465853466292498028596956625630883398238528288769309332159257126981307080866541421160515627511979216415793742598653820281744801346590228935777408405088907751796388795459400809262170265722546190758019777857500266631204092128284647001155704972548780349990830248384920884956095059157118557859863212587515621214109766914960417406588862598043391330557821755935835357870277671280637176128510064074505694119595624601003308505938520892172313545256090626861097221534001913395030683630966385383871614823806308477908974732063146502417312967235996979914738893927101330634447291764132679924183719439545000871023645918613856811238308902690302888162906949068695688413372940008263837223272485935724685871429369845973748826894149744448062062507239642175843165043724343479823200808397858288813710009465383645138940703590641385270135258921639148592535898676940240700078123906694930170493291170829823331287519687181058662914148895321243767561386788345658215367436242092549084224296133289213635062279746605747670279399852750071877828645896605613385597160504296546773821451484266443624003359275273838545040755172534911110742916429081198597917761363536798155475798825406871509260951031092602797777241604422971390381749905789814678640038292470429204488767189092636871779848470988324577551844774774180501609306742058708812893025906172391989628201439252690620631567890437890803633218752805766100943683133947575050832764813613123615960071819073894920588203675503899464660486205688415526301639649626974020082257561457936860514907562064348258204945776862485581332764133685015073301566681195615340849609927007343652079426646028923933257549452921321034930490977305975763198202408751159460443456336962399007494737925282517041478554550096750242078258847568876160548833927667694294639417479376353214666658835373353206945954416433294177729106582183107234550494041323039188604309936517378089670367532914364843279953332754631774744857243097892109736446178706697653871779773928837992072570794184268341714468675304837672495400428552340228518700380531453948215458918484858448807548554097599914352126128177940010146324670980612288801108182882220284400762273269864858611803625206813868432460514463114351968705703889725836680471894051732846331448445161799768900930923455738043387238083241812665493574505823109377220214856383074396555032144513729080400556437067749962786158030632603664794792592724477752928192482184559465332500596827823660836037111911185011741281631527413053572186921954777931517160899793393571149414621835814629742046117421394156864765996465665352754072734492384920136033099763732723683875376721798712870723729360864175143460929672146150566900003857803795184290006370697383232453732006960649788977880600360277759343725317299957879745152643802125042244579287239731262510689132826965808333338453187610085265257676502008859814953216772765925200061248193482408335122804280229951380903214408553734821386074858305282424469725487042708074441396836748560358006549038326785303824509579087252787351395537515251598320609720708708526861868650129394812321072137777214887215864005937170892593030145550472596649586830949166971478169879679961917227929206077614082347093788476983006008880088157588120968699728712529609072742599816877405045584673688143772244051630461115235839157305186787894037663306377806024994035683270877978557391331908207546201548794785451452094810851171804698087523993814446657633293575364536915928071851083108261371048030447721409201184124287114430560711137211132194602913084586743393737143132227584297591329690678165913029924861279096099886315882516959114274403435862861968460563010262776652047401750175024333834373007700248690852040029761667954683375963359890759408973354887830123500366100862045963263880191581736879280303273390434398932347749613398996095183046755734576360279258536686974257406719938740269753034105053258888010257507915607640840712742773021539475483792636261655982370069138488468857721245928061772364581141552019282070644401116798745975413475336581771422922937545753426105039692682490177322524093079558388446470255999634513613716821471440447322337196766536945677236896080825461428358457960818479771896772296350226144847913364811869215682349713213163082190738112956379866086738674798916816737281732630443592341082206065088608366297163213234255979560157297799302873508422685894244173515186634367225105908453399525772063112775953148561216276122854448558547044785569770875128419300530301493122869959508226532065953595311992947404736540575801011676134037552353092413841897058696942783667414543687650103325370358200625502087239395668588486492627599504229558241379382072009169478985968379063612153539059491093545176533809856385961975182955623921154411666998767712931865785551300161368226424731446104109148589091436447945663630074022079146825357666094137205925064756614957523680151134434727188940305416972595806918932677344467647204596848931370289156891061313959942824121996249324328917722733298798632367153666349053201947063661126525924515779285277702870900503254143547152954975487026917700213076443838460168835522795177830623544892682183204784395881269357523415143154439492262563328542669349288981834394198589275693571968502939796810367957159433807640682287688497472679759498378931378105051133741198315555943250203964431546480935478471144357334343967300171707673319180755801076409315548749520252030941730318132668263866714270389016651370798077148405172670052010465273415718001584978084652620355808922178795444108817339491645345806362416792306499928904985651102847803681109390632459129756367133606057034464067460514176611636464501229914339868953154906186243369999583058713882809059851523820689769996389862953183322770105010904746003858854103803372396090138995398059485511486655159095289160692411709063329377452157674180357759779410570035753689907486269814035273271400674985815812055653395866497802337885399961338389078826672095491240560818652090411966998103540849240853743807043916908273706693534167712278961077376894611231332783589770947391272559854211527915829790077571206266467526956786866465362678563191181444768788080936190902048477351901842644638575841385636475197526471191338237101480249986181726870575176187290550471614774899537025074693584615287131965723353387182813138156123680377414976589883124777032717628378514594479317517206816397999355881957287646604641563354395802568056678404397854510559148948022949844018480699737799693894233040101588928862297310640988377187999395466917721415882288877382408231375642168509549374449861792296859685935511460058830304581686095878467512965790547741977878229836744122211015160540060420066638929817565188854017964182116789150494351235482102642643434983972306657244042230843482685898268588164683311530836073882187832394576956781595795166735084014466749574424072947583782741853279768552643402401162966467321018703247331714712125622336997119436235700474710855533328973977236504474295255238541276398551660718202032235573954460505160504683440014044120942954412694822481651293492482956545000483691338231265010452717059779118241332171118162376123884833577145637088282355257081473891820982281048341042966597936630061270994215464313815933908360503319802665896263339906859638274793524507583221081301284405797116666988824286499508934923799348636253618999684779757445770800130135054297311852378596959446538347055722569418184783515612301815807134933153329438414972615561971518853732183726496566829805751284397265088056237815400049990395197135891769867328759772532693085438940869666800956405804631027021537258070132348033646624097401499927898990423081869984050406884925120173449821211875312275037962852222724592978522038974791525089950238167499330394227566277519019833700432647896003560108959801685929390091176141157635858304970323875769636135599530820464434514273443228942914253612555881775990802972964187316113810360781411153459245642165363326083916455403453115766020319576540048428775814845638922436494339360618108382926386943766404937733998512682799483838905292029584519285035438010915612416228315015877493557541002576786459808079602753782639257846686207423704502845547411550437439261194283062290644841201348552404423899768801665442875174826144441181046545595388836559340582202650874634886954949441616864836618260329988037927327669388831691158869370630529015605833543976278930727544757330067151621093420083920360138910534734656255475546719025472790878577034709512024236559398127097052608792015951223757719390189409941819189198032519519806308736194710945072120616635928212960511364492880703682013400589992639360602096909522811934806443273790229746712419083786756432886938278277236686280028140470467603990353528863919620351717817399026637899862953073756900140926327234497692989561545755920712474191024212266348756697339809190161897394109105826326888567355730835456563008093200265233530601967086620840423258375851829855992379252996874166652687967285120918274462414705540165931984678866067710157944704246487516973315116835951550321095439877047841057520240741347529140542124722720780651428544386445188327251751359812449348239980887810617662194858303480083371462141910924915248931674540920110820061185059370682866009238607590625250916449031862939210223382602536243432300411745430873647315215281779208146059887473956422294566294221424935145640307437831435551444362746602449803286786049343978150617182393052006707221516961757396410311461171496454284591015093949648141849537583144819999632421349421196439714612106831025834541757143721222243196541854008760051294324834968302310178796946850299046692641946846569545936703644561514405489939465612110366359062391191124726333311133458928751130939246745931262895480847631852343635390292954598036140451068592465579246104230014234929466801087203909292868673655718799712312484484254082393602292885524886358107345272825115000864532635189917996787225413698822272002624952045002476499020356425655236865069155943593817313257854997375728954978818670649501744225081182214280556493229679462413826206694564923344026852970109548547590412308281318478724823139706865225099960157569175503640603657732533060218022587710032798392475934251156902859473046612738195457419223716653023707301677651346601553772712624078047648927469665918648457021456693366372039169432994579795170092002326807532069847131936669316512817806897961301077123620502412272377603593653623493673502655888875171327684635009323165594774125220455604315564628919322714453427476546630813986926198812812903870855274050223585832756410707401747065960730402364132358376321002979594420534499356512360652960636225803141595585212993725082454802807517355579267783704356705982589801808324616301076533394321431649104802498723298567571150816996639520569387823841050215552927453071475567447019729429082165959589988636587392766066370377495163000136967997333748954931308875736038873263946065084617942260265933803345073190731437330080775317154606614256034209683715967091584745789314405599757929223846640542814271315359729309473152066337231036438227223734472562371647684060392038098173936379896651549408275813576174427992399720351644820529847119218328401600602711849751156052457084943283699567180703483776006698972049816050096448638058989520414717677924275922457071404179344190873159152324593522827471230547934592956426824221328108151605624942733703379537444301819874558253653611868436703033612679930509033560338092368119110605115403895043057187910677287973286922549115737595031411288295519232722871429051833148816991468919991127097950896091988177406163150467925189515471748153359815182544165144964306302808544836796722229257693740743129730222819074404391865669552372307288820701991280109194001150807639470438966574403844438670424580349351118787149158415244038050087896900490831747509002776073960987581082368450635828116440045041248997654650228222456978621037034746017582021733822147634138931130953363027253848488146193208706715134945242893357967231413736473922835392989036467603113717552733998730115667659232166749089615663607801074473852365184761149566077641215296837354348204995596927001684656477592942823559345214302943412102443285159616643580832104763221858226197126311802932485613009438028877786213539479965528699073397919954696660699803689528269080406018587416708194019988057382744098066426174427424035618845003678159219109606285964010035011006659323030322032198282245010896466592638698314005502902809014867409748109582658424479774035514611989621870285405080227829274155132574109911900527044943461025690775746869724124836640958129256415689729539473202405718524309420711974004651891221521255673084034977737459753208286033639273879835639568084737743563164776543638467619608017793532904119212512591369488089350747422957681879478665828019442042711875195153203851998106846879704772750957424819970747381552949309498788630288770403176404312162125271867283072845887698028031024043697823609032051040948513687892366830219143905084917434913532354894363196781237139863639658799512811650252389218794944599553916731336900597258087079524627148664734760635801578041259533779209068115491282793513828557717345253614857271478155186004819069274829697399041019628224796987238149340399367111454569524195136062006473845485620413393458059409578909436475771461219054378035167236395712932038206066819378978334905493552375798700720803734190621412171717681734365295091637286567717248219191098602583673817805295496935560439093223810566699329905211591723778397400834669779739997939507290209671175277971581947268997482202417812940641514052576263807247051093522378946399459090756965311879586317109269273458833337797809650026351290826568306967528031200039478305092366386942942681126216443097895785010198859370803414352225302978707478497827471417010185678058750655782579930578526539744065580419229416443918642037915004291678686104924176234302292513387490590581993696732539287048592620093615523856190830375067263890824198583017975321143436764002589746592631735807528890242714282878564749338781752888361468273798067148676052894046395643110792659003860636034379298699080518602873757444141066034433479252110490013679128571783042405143433333138475932829825790166297409897909843158528904524824515912343161235123468107994485967725033085081232167671501190282660085278480750714795255935008943872376164572986116815564121700156743713163699686383439009814431158445724411083818026986952308988508629615496764285117508761276995490620998232690506690130501683250551819074227791933915523380245301670290092289898965460292558095943815540160830243750805639340552577060785677803963778549200386149517203291878344804505385194916117517914708848291950911419079482554953263897741405811057822569887829614474087024610069724483846949175503690412676192320964958248387216884972253279517045143889602826990738139210292984050414031344781008266419756902620684657409362905951169117288933077588781635324133511704901261597435372229654165991470933893064991145159818879942473217697170058178463374911921839601737438845255619454107324864502155754440569788258937618382695821779185664345287952917007315614592313768775981063556677738594167604287858214464086635419636271616183295845903343539190820102106328937431960248692940764569963147216579055218241915688992082802676650368588418393704460803546380474894035590985237188588573929897508166102300938257451371812907122594087366841881414556578147397093935200576028825028026231389291741127479870737359405655886736798935228478493484037426979124090061487555100489242622465482399714605152874447764646500272836298282968581594718365444038564939285198885944816440792119212693993901243239048802454223379210983816017177189785653247538846525272841432522239598401493054556286355697042352938936383181353458633308892876440592091581878669321467866182760000798717107441002611288622336312305396449594584834260286762541385216924710908019346667320901837107105424475912909046003160370945658186689534983411383824142808478456823355341440415063747078987770754178848487906372389042432504005722272217600115661165628001068635370491456017073956227039187854711481868397905748698211640420797775623924469483261182362286760023389663760033555745401061356637119229544786182316418012656966258632095716423929792290892044819744045967054849819612913551399426339578783666439363292152822486566785393312786771096349607732961937619522826562711597659245520944733866005252507945498429853466477279041467413054553812904716665117595030608631894920012088498906072198041556772524654552477878917886483612182541964988007988847855080452633787686102553098278711364577245948855162092037279436836691416448162460605507956871728957838757383667482280178057682930784322503794205245550771585575439641318519883897771734451717444172560693306119022836822287282383094570272671917577343052932679629975126995854210140523219852947393086405404686669654511176949408277814701088787479704414135157703161151863022907185742724074858420610268204828068668664675356200186540679049896754656251511661488760583083446679957696805976583824033270725264510846091668844198595970474614655884777389509288116339447598462040138417438317953402247492142300538675357339627263273387815199046223420754944491161802419176722403686500486134126470837507623265097640395367022664012514614085767715648115944054421439886916358015461508563488889552852712426108716645041203560430881354792468421818064466451393531673050010300426879003870070380742128196049163665159637266892704661581304469713771175189376783437978747289088113446495161453913738249062502049320912791727565365379973923356819514245674908009775338047161011136445541815326005630264036791072945394714475842208009838984436421864867740398598938102836336988979024961495330071035026891580589188965356409486044141518406834237390848790494005842009684735237970421475094528376477920858681662836937046452418515241237758902596390339588200135966132120086720969332337400266128679707432119755932599940555463061937188210059743586836530346588685347161075853727126541944160403239748699327735441156407113199385735845166453811943567633937745002132010268371726597873007160294074555296290924570815531261851458804649519291595837059824853566047196643727530690011298107873257863957144469292615201560850051635836867680926768370422054122203996905730913218656220088468498432654008338556706712827837865530641517632131727636242774457224839515945905118532882467338307453894339179292168757996880752113526285077585494475426911599090355748980075077091499871242100238953105434430760520500269082894727621223920558705750839955315468619269399957981382182362612140813300438482149352100925540002532616106025020354818042421461494859471374952623470898039061152711770117113560194437393223493227911042947363658071286072481991332377296432800991400965768958028585359835715546843518223248698596396815602249192397577548823289478333554814328529533597515495708109029209044210592636563195126799351883475432422553590707557358090186164487439920452281113828168615379088128690452151092721882628461135994664756849432695512108282203046895133684161185813483907164248488679254578986003288051512258422349564376361110463350065261868453251138857105610830521807986639657768325271790068999616769875502301482069918508735256782405976303963692254157930070653191958395919490502163495653213789619182891013917095528329342497702189864876223159933962782800403155069952898158205643781823904665140465258632299514676168878308090709606572555868272732735076757828718963717910515483489038922234869016220021178975609463154437342661871787216237348721149758103413386073918943831798124507462709550212510039873585635783772125131235467620869626106228017041457166804252538823420334697269076197147461891411594171351259214306906263359051734541777962716094112323089725227589756088309850680477282152129555358106875542003337572766945744684717913622407903808403011559404351655402771873983984672131842407193543841001182643072626923577035873215705895740944540793991940138178061229470608712455291349762317727348049019214965839578565862943197370624892093688766234515395063629933837253253138099304948723671406156905875645463114761129748518371183861072001923760249894409103790062613837807156634121069868490192377467623380261903472077203105482143943906447039100964795220686514120652709957188088643545400611913851253199365686911365051970214726947797973509727504133470608033798047950948314501133493546926099250958489646628791245025164052891920993822256586211550938624140388619472217159519622736732179435122409101144226037267263491061153676416759822967196116753026611315439566924142642894570439370921223604747478339388084409532439847900712442976825158095233155874394939103988582653438758441335882502583768871915145550425001797299571406325964972072228011352237813123004035422446410043771111689161297927855656525543218575439567290243213288215509246711532514304946104054576806885727953489580286624500066577793859874099924317759943329214213642860281211634696614205221846297305663198140910660281480460594578748159015364467042847820925200262492975566084065127905151106501294939404337194834534939821543129044192037401146472150728102247115725917395446588989606201448838912567105894442103206402097182439656354103531077375470123247871979536842525544752956356441749745963386464417569617904412603187655705171786168721696017260407010895398092195289391533655240009234105033838844046923985262300952281004625025046467210772005814416357725444676110655425123305882905327569036165123119545729453998892344900739216235989212118303823514074882533143473402189607301068520525114442932494390887506851091137846728667353914327994243974911657697929739551564631328725006798657764794307678671182088032933720991402463094872345980387349235475789165689293425306443662311917983367795737831927499614349104916718549832091198783923197845598471717475627421866199901616675335462793747142649240352922120042393120028913342258969857454567496527669304590361212489833290243875347945646128287305980956655960363517631155317058288700883499062144704921308623380493351436265630406468359061286925036848426697852878864734646496488048728854335278045349402638217622556821282498078478920144483064992243120340295397875982171065871952837346299763727895770364115938390815651815502521375727827002391676494202315072176852752567006869614111246512520675459923076653988899450859227905389319972447229975796390551122463487636455416892555788868309231201419201142116530097573950126822831960157799997102722881302056749980067336720133698025698904573058151091792945499670908507100248099827922776718593934909479997504118592871804390448404956435043459355035861923522102211308049343474041776521527696965698667803055189150931642601783308265866808192423278161001880303031463184842930911218493619691255677786695047188687075517441793147775752611670933404378312678721795029042404531159758063125834962295460297848386272611545526737463778832024383753456187124364085474172568722892993952071404620057925344321641338544078961733577685668223099998976396990508080213770894749997022226440032381449208454016841900523554665248590838999671778600738665287022114318512859367024794952410779126607441158813809715602627031083253237222677700719767869136900983255671208232905548986421996343702097363538468394777519069808006341818552801744935361109232954167218364673686353502643161777438939893065462178263443304819295040979290510918415837395056712462920839107861320298518194026081667839536810345443662655911076685110322586008441348124689196544003943522524428724261183836650849744736618159114010310347976163313874682430079157771360232443756817993827572090369464077030753363165828434118684727377553035849800189578626049266724969529012705800994601611878866459669199305236497742135445088082069330066649340034881855489507829617184934415403899901512486574762030978926977120581106516444017394891428700697671420232962223343782752235560116446578519404003437761011163293427130344875463982274517263849980562115705806321308669100981625985561639839419680179893796207220438240535567513714308115007614760228029939508647284578991132641135359136980251193974562766746911335502051955573021674693492599414198561252508811426621890025283142625684658340994727069624535806521412142445066300509107307335974478051756746311589805465692434921401778929557472783146872211441021926017310746260764808092084672231790300691792115245178286617928669482297523666228198153319169633654607370815638714411302521534138251455485649368721405878417949416794395508915401831310240350044252398504735550575818281316561637300758620145834944771122847414451203087450071918751590060249048850873387186137503229722641562511294269379176415548714526151488017076895908981878172433878619648253609942982783814764672847329621783462476182017125022288342170668285804461631276228518877408002423453861096285807588639655087333124588802305497692923941852790278076285824622152808142928455044162375716723411152295467110485748988966360409331814485808360766992842711186497649881365207128091283516984917832239093180500267266975481058537623383881902990228841122334372390118190876181036083246075421655260142137402776655141648919429075547064229468940310229842366846790240453084811022225151399472109940793445925399815553204893273657139376703144356146899939709929730852461885553447563485794093388521216262133569348267045910908009944783476476960929091992899223904552749620385153824232909436515476337983300914208606830546552267441042919836185057655338864044995560101965669276787053218887555523381818499685569795982366086697053446656460327369449908656589577391541290732215326250284336903628465067756390302471044932313550745721998233707041820170725010823367961919114398614353556707094590803526233501633315534099455987841751333071865516675578913896320433992895460360827412347032449908105373921653207931280328707459673404371353403493156843373327187568537586962288064766733560841122674109225466996351766313444610814830533353071504958297039095421877313475566980084241172358787591095933918413211870913899986059556341953543692170322073284299347041629680937782499299223475101090864791874468753258050552479695306473392161121682394337171323409646265935440641190159889685414487486719632077715575475322976332854729143615425396008483000859765442512819289892409428170236917154451048435589337137506178697278339680436998602568331769712632215216316239960015239024091881729586540323117574651663790706880542752063100443007559135835451126220176807146330317520420256658667121482885432620976915045627752207470908411008268678799544641895696712894611269090774673757743108467316773970108793812823576930606002351191744775275137345286507690982852720774464650921901980007935662983097647619781887352370308964834722645181340295554229146081146670401809390712963482666453121501096588853292872018100804233094457027303901913817216944943723906200189656267175012472089988705390636834687181167870917905430541933852349199831018466335561508448275120311353670500236389035125571959973462948132987369075439963694626903146291309723977923379214965151436239209581288997377737996414123218775711011120303983834109219173897466973788850935296048803333067821140636214974873981164401176082153188291055509652353597027231712986950773553902743052923752550307618132402936892017503267024661874161480140927196694605990586418713347958526884832193919497014181583207969941157856504497410232986048428169560473385042594621411462466072000741949341739381903370030445368960595626125118447768649928912464035534175440939305832292481681859126489266197142422370404074155719209942197566258347138857421187025618488201224468492065794952418676913620415320370358754982688820794638834255536412713439043136855690558045337035577820020925945402867022139520484067968974601746723815252717746154070489357188503644865309143559195259479305127244043120013605905866153624727019967368970146086577215017073892337823337210517333235422311761127410237717903106522907350090436293094021642339548698689381418578549275082539521504445782865800466458959248347131836165028620883455039578058737173799383800371806885035209696526183997958402845947497756584753588266840031459745525315423745631095862897828521817830152012698392184075507929933984030260112971507240844361552089653931310175516223179605537195624027736558251018309088062580246824109662063919678623778213344793328763317499346031774590305038463701371016614106852279593156210633478326255854787933291247532671315635695979247035673916858599042506416046104042372484579294911495159973441835237596191067207455334129842480856761225892362081178878124144386211425303796928882271873232847863863333451627726550103777273484766872398662889439286597669119512439695482094118096925565399339939062045403354519690703972896493968443335598433924642143403122387588645521889015151295984694132317281309041088492717492762993977205161050904151954970162641253733554967003811300174447483003850768458390501574800076558926550306902546224696417729662036718035716238747305948970988526952214577244409974217582816853295314018204727361177424518502154096202193300087298632493328463880253020665985411378199583995930500774909389392701538422374588218573243442594936752030368883782000234599161733824436777751280658344109979357579278502512827014451658384980129972437714684375178402140391429317151437217278930736698988526426315200874801626371552780353957718643224192234951331851382228471490771414418102032045889512354952630482536855273833637458342352460312041906694974544738705910399997896739900309464763555934511450195100054332671158852633003524583167726558159822805177649027758705001512071287722718661168120816689528511371114361857656839110781895634032420922168332807945129969931619749967208829941913506546033081401745936249549717300389752499851093494180967860721917148076262779152157577574672175721991084595805458776111138991808834205660796215135662640103348098075660267246545563039293712833712561881354417951092954720768730368228821280130397441236246342337893504076372591521508154718952056539021814585956222513451926759726391908854598269124449468433287996812305825337716610600269755565304381440920561573087641929690723642241961591023968762670880044281839840585808166844401302123764306129213470286925734117011549845262842191628342360134777607497256730610536908901973307896737796821596655945008609383783420436387771866686029423776379128798988086857403810814421418850802206086120331894845592921629819447756391769676259340632943695010883359508421910394167385887753934717115482127598164495917629721811226976761763453203624574601038767627732471101899796012778443400311199743524118442291822517575409495674924587280156502581374644508501977994294905311575720030013093527563390467610577719007266577682666224025139356993225957562258620138910607661726660337018265711928368733078171271281368157545712025794945124188423552768934252812273361677714710850834558638417629855341556573191364940981103073933040609778534502443676652061371960378177354227380866364912198176064969493076149069815934825293044442551201178098096440279762021630490260246626284356329514481595252469839071953949607026751701985075497514821163090281937917786762852223999382554020616054955514613572459422552486477026082288943511436956542180577407542601750765718469045214457451641767029266608297905216861899498061087994829395582609734953767035029132848565651518210838202213794490639672595082127552140304019651026853033576072840104105325939031681307190753591569703892018267028264084305461706524039201013862556660562513601386366061406818462863858964653046317917836799766926484501941525189632419894779086627167147503878635187972311252765993687926411740956912209896855343714602070889100839064829567945037433086927901111159993470864619634798581268559600663442632897130212838124200952928335051126196065169515208279487462940314254685960733436900651781081568088068311636486165070874025709602066880147910200150368820130844056581647437399207249006465420911772774659386150949709532377713003006639343418798409652721109052520562199547622294540661130099689479460656568789382400449196433741629732564899770635001766109424494227473631973716734840151054980922548664543811467838532634745258544091543880587356386147929963183642172244230722390091604315306533782919943200200259824286154818177848371892058454096703554085295717576148587682712463017214580277007377124411190662266777325066172390687772620872796449464455576532249677849894342804749997710866413905498569573153668837747097272477086855115135928624372676913404211324901833404922440976827123531969321603116696275338929658154676312038202389736541295728109889504652897008112184778627750319662990094525326422955712460542837947267943123076411805692538545319076864991331881867035041821671647448185387122185018247861924688172325459964782319678781148405315603214875233627692680457161493944898225127889534363332303398386101220928173257488573946677765432074122807741312472704279741427230403860362289957575427334125417720506249570358354887448764051099587051777479961429627693901435260703699635361755855388543617780643290267304932583285920223750165135576963984519650298315402925066819318825138653728338981321946401585285668901870114978630062633962760692129003792673993289976594555425072519360824803820284448450967316131299707514515751084501644302542149114987951433056331725491706972125549312187686642380721516674990789868319372525339021397242667733994331054683765597105710742546659241247748830184135933366574469197813683227116077730417422180153798074639380635221188684681774373752758562979629903512683711001041654192612773851809829362365811460081547575327285448732345320506093474160300996223634527351527015324527968293721018398767611451499215428149887808873711659386785163756937824811582841855457486529003659694463011196360297363925182462073945445130739940535261248809579931311399421082440306023636365578587503686346910470823406281237646799565871382429864259458208830246067785795866963687264340324507496477328810994866231737548693191017652470534125799797748305993434787484506672241925690305254556209333837078877940159397023108561548019319888757960527729661491972621605508537351533971503989331901537713600539357406391379458788579743047760348875455160725367874736734046748843000935325257068991997273453581329206820478794964455095285630337836496232289898085813178950192678766458019988636917220704234125231314387565940745068915940852880498852536894866139220604336888671375941742911212704970808736407449894919011690808672029688743754360549128895512805677295105823187768674661851230093652362180134008054989887475800304177615375711615124931332167129236613495111154696292401547361914205605614394572487444021149739182782803586373414453623016901563829735984829018473809947379706169381241802415933311030855164865963202730933307830370707628936356859383518090750428617238670250414080298783819493569389654470655971485524536099558947938386815868619476119481158668985160064341265529975061255129821679134712260076432986714587884552942742470459042335858453752260151214984732843338660473770443001823511120747122496053702438783277428988188510578842555264773770351058232393591718190832353594706908689444342846587976405429338715782012161640986278454001593795852460620712324401558313204714076056103080334550698090192241142131453122738455573918069529826043989423747904754401315044090631285604553914197177372418670641990222917897063042610615976067359433226257649782321840264178685323738336219163334554340249734827526480625430882929000464913064671556452989578018323773185516964622792820459637141934885629861513174446814953588361705069204971073693799584724332814727617243296071383283804819299863938384530411941142442905639932841072760635528877121986345374291475990034715628143381855894837368373938076644879415306598016003149123590126476837643126445521760441464160074497638427074375158435431918785407088996079634547496330875118240184471214197615519930245887026496251822685011414160889885548038672202322192420033000103626641710874483741238641565251376254495070720045887058677910563489182990822868382003710178764644194973877957975469981135972707822643673877607990036770082729086307798230716374726420885784786803290581925891579287941321932017228306977594258428017988762317647138732596914036933488522617362258897676847343443984582144375821648119869231885700507583483830098020332632324799999978206441920016351795946148297272962049760820722425446131364965070320600418207086502212693448625923135509562377033136990160215972569039920112857853530135459689273015519695304630534088363680263319218513393209216783906621454876295251158291938949849525113304275291669199673942135708723656185426520069794778010503245567823111007358281339117884395574856319854636963282885857588439519830311341843630030329920295843478199008124170627138032582286517669281172788670863355849025348410223351793260480104296777167284247278137223054637276925858965558990948181382867020685550893036145078758275287590007973686140985091706039688271547181348939192676071160878681734212252202900429392288925427703038640753900522244132908654482082770230524031496386506744268725288017637899716050447206226610568307552784300341281387757518073719236916444801358060953743625597652826979939177699560504918454567489251881020549085257818150620388541430899134184137039984052598188783487299151295946034091346504528991640948660117869661674322040433604997232228079965160091016769511270425902435550596085106477946732207659181255803593190073530707514371619269776854945956413593043268722848933425149891332301325287209486436414609532908329035104285804061298482312047215160063280024449941285346253236470537299260069985965963193481538663455090162748471261491524932300060960550180006528892564814820109861800899961733572005930385569200099398234683066148003320075460822097321921149068005093955651428157866906813544541483034003479385589821520585277391858114500569162599800790350740322288594762132059145833253107028831383969124136895298431004221386689960237394547259872972176855901931405712274029599083581847257299740711386631904533652932563021880659650319044307743695936784140288652017519924455433332159422040135469170718482721437111612016096331722707889241743999331222703760879746120342926435066109138022176040307219868182659530505377154673340685601727831174642429736149128658858360232758666603760568292547309091098324085770021791899426479589004406913836457498363748151366357019432897864717881793725898348222559670152005022517515496653043462851569965112345713958373745177485522993440807025553222824248878221331345183978156648354291018808412641196039595580128325761886317290560290637683969210772839585067857190716059682055925480201523678382050460480724840485691206368681266864411522433837707371967912676583893223470770604739766085572108329317833591241017404721275356012659544270530433803283019416897923744070378811027809541557272927621816411390746820604001819137180399241466872830817550264119434766031197425266671535969714774302299426771459122952601324583422822616234721379175202702506680037962939993609039653752098123033375674849027889633901210354431634477864517263287610570194934616980238132912317857346674282231832894660803198610112784499358816651809084454563892511281652578891248264357764897299561637906242181376481963864020579146200531036308647575387261814493564407067185417832360715136644334704839500088630972857876903005776182251195657188010623938539789954347323114137698965538994175294237441216079134567527485068456930103608938266420989128517286074528292029574386495429562345202766322992428722710049996845752497054745967864091714291848869781557449352868284748464645087957280365523795676936382183040050051795189838512455522677530769559382355053151424402733976680969937455578666428224056340765702693974864861730828742881948760677407651413820767085667329267270660715826717651621003140700805340314149740603353673142363618077552959147411261803924514735349635589319516953296996521691636105050202611949555189592867068759747454094083387385228531548341048605316236610455484807094966887494883485455378449547341852479848777082634651415583758842138617831863892957800657358809571299900333221896289186237212079800013286520193433909550659502936803250661910962890172073239369163699129871890264051910967025794203344090277846739815153384366413243946682560047142714319264434885237089526138900188476484429791688628185475083100477339004667495783757453698600639356592922618917756732742156770729970020285770683414070642543722200589179319530056279001834171239294304049673209730586782977982397370964504989410818932665580299492844049668426291409029329036306606599398074588258676919598498305181919098023987970474704979055710042839167890596847711107666254211407505854513229793389395495054089225371958097039636415808849166643385758708440313260477481694941850267604106977347887672700069863254841065241206590090246750952319725434614795382507246794548817108071919143573242846451935258847977795673027765794592883830190089141112125797894249480941307107620715428433946238101939876730507458177569436020814943185011370538886950755568726222516367144168921689186863108540777624054012074655832426516775646421587049952380787776716046728155135193283130651244941201769943518152359975203750669190661641389714809236200903829538031453806888861901054942760660937508022278323070305057994034919639370457807128317732324947019955141634273045019374593670861219223265679691906469153830422437455718654651637255357998999666828087241602750120842693694908081849711118519072533327207454541095333579599116078681282928864910139470087382241516949054852604836731805456485418079929789680590992432274072677177771634006534782373496412964472356459821718327723313586017782531076067523947162489508926284525857113328612959954007035385603881865638576182863174600364742110572943401965992747383363071355370701463335306338383688312756644725857594469096492779466408888504605250593052656275812705236529362049481648912105821420654061869015420428229486250952748233412074726759411888956037604729584473813524368783669227596670959761776766874002429655054160266085071557034446959309173116150182868433483124004270519358527187741910074372662170664877797215326850351058639888786137467281913006749737988869040546762616764756229498367847379351850576337061096663293043328692412383490329900325528273530161262131411091441895811287274560290274729631874745366745294589732282567690257278543441776908281867120050975003064981112729579557327852597776585083704180148898557312877003299410982923531542736620510034643878965452551748657007091858879542216404210919960676019166034464031742448950421173160181321687407532416091391573153277771287937757510239425088508784456637012510839541198327517236011433084815932910610170737254159814001056597609765679823322521677566853670895803812377486733759526450849376479436995131765466990424127548438482293088032958919882604447661993607354384771715793711465737131329114275733567085515630922526920394382875125178978556896945155833794047148794943813093014929395459757506587497054935918758127853972748978334863558419471106366783972935482984806600463091571912085660047990986033579651404489183563387076816871767235023196516708983554377245129759840160513004698529670722089763184388599817602822364728839422943179340557719031092395061596681989322061530009508463909141206901709850902969597669251153297393721791801865877388498853967617081385197529656353556671830750018844656026207169300187024306699634325696217630705480017454866848832422753768376576468975607683884379802995828893899805498842713885103996660187230453862861413538088972311529149376605758971653497844776912742977214393728173664604539328555592386797799964049994452466430654187985818049405663633294966104243038613804909907399247463267160634084454255929422905647391882363893282142017310503791241097345232118841341881629365902170958361882225120827606842289255965895871236064144543184241700299617500976261981959935063494580656888091140794316561960207351556865834395997932596774073385013117530622441670968914034722037805072570217203073586320106420797760862455545868336753446635379538766371875919852739721360704874331821124752270482131325479968891889821342619904747836414321225023496846950488481336034240375247333175066170985402856827358253044888094167110162055900341584485690755393034676750991072893025241671552905589983304372204669283193017963527045609182603942569557548673701050925793174011824203271757091239777821605141851197486545749912435675188200134408006188933549513795333311551403710681936696487857759482839981111578551268279653722903068392918259810559834622060500928888225651644072907210954957507438683848268056469452936427236892849293590695214728726232414448543992713228064358128606590644766192561174993852275789917182614080715929282583024738748535245441261636312445950665215019910768812369678766222734607341087410098724253782893620959881521522803588984029173952077652535245154659456951739920532771003207426076718589418716230455405818931742432406032159488805826733635188939129758320455927132067797829805464909500113901391359986654364137628843661010432982776571364750479300857169386177025197428791354044497121246496353780155530399695003421517813470456018521087571859210504567097915681466527695627981011145932138505957050331033631202479996170951573311948907027979733049288071406371165444515743649475648097493074336893727300047351278851171776761834284681697110818682847954174154470036174111012908986808350111069385104876934294992111614394760823902574059219546926132935642596929222798331628439147903015705157807600333787845356718802124644345477484680577374716666483367855577842395437305949562011922042586167213865140800997410338312173455067977614220957987024963836945793812043459267500699286422896186692630588607176868546023454740522433748292264006097893110214362906577101145345542323981568217467192915801591373688352019540335982397587716801843390145162328317956416450266537900140666926582053528936705785720996201176965100399273582408858831484488188433534654729086746454557204407730547868661602336918636144086002797230687547645329634723181828737547588065816613533826416124049595362749210272301319011866558871246466897559358228070205652712596499272248908732651880553590799194832547161342440873362155975386425761408887765993046225270478158616715707270658306044883926314273729892329414443903265238665902045044990322685248935687848022948293966022987397870658401849461190195056807617360118447606273004916793643010446639237400795250717159612787445692516571805878545417094249449626296024135451444262636356068777852412737172282523223012678627375839583769350232317290700944264956081158781332031510510708146740467282722317255863600945913607952460966781844995360062546639809490156810330655936096143725252324124402928762614610409562350831248299345655748122937524787176497799361384950318658126097249191613876854941937243855298304953169180470458449396875172415733591433568438952700555642591181218805807674910313769364412759790589851518714678301214477232303956086530234840723688715377059598342991583926435048898378725941679191315247034109777665470630585774162806880995440783777890915068428026128372169215893049629634100249972837907541240587174605773495150041824395650462618127531739334126825723288708670289523663366493071755734991107460558209232862247086813857837125079441286822613978248633345535636349361130981995155707242300035370985084425133322317237001844109573150503222211658755920775082178588075277809940340720287136675273627306931303102882733056823429116378953765872630653160599360950297619592338754589065874116525143233267723777419909470456027670841183208107576295963587408956376667411672735396978739183455781369512513916589991980642609890134710277349653573759434116050380961591746007365971327003665007165643093217677338501675955751408856315528613999997791988724906969521631551496188280349378181599212125389571481941156096747929737150050262691116945800446866780044233123929486874052890124979137238496853273770316100105005952784778534917697114715924575570934025613586247687589732207448335198736740485363363162669820083676188541035773614152724722199957363234867247829292786589751448930661732610098614502441949971717127329275201365170775880121628299928753130805706440852756950610732883408195668924345912063148073266631362520456624880812656260595124173562645916228488981934820013848700288164979565792328379170525677466654458713209974044824364623531098968170430040926995527544347029666084585665239768969577688536459204567557870602242441392888085249409708042149264590594555079153752381917969556754721316428561562838558945425786660051370083325524694406526943202580835259958039917780691914901297187143567901855594550438074393682420685895925737940889868313341720674195436601019986804048619627284974165756937023350148213208527510942235202997723867736233796778599499663734317242776853961107538930084928094545691541863559640606186720211046141640760808808924161611590761080976301631055478253694230579767823745468785122198213963977812622521047686754102029018278670164294495999260461395694029931421786939624412117284212060175578788214605552052834590595470889546047820694598993239994006032120172269954129919555968321106461990547142781675461806800994913674575527823455952305050576969676662956087433721596344228679236247385943182856219799985649154519435097821097947674630081897491231672961150879693688550875108343660650525108324047060083339566066782173155093768681903073982392914217667828625840074247299690899229406987207204583820544197731001204346310748230589539988621616381050482608067863301813720182628577231811977418437037351848799293424551367407671999070059663051325215013238705894074530283761913584724811811949337720020934973930478593454779745876389409610743131947151366232872236510490252995332654674017269224313458839348825462516964841405189152753336250493478441127317265545280319673070534817530305623203715972937612978085458027988580848958473504628647579389996193785803595867180195050173967882865414998905723580697396834703661363978077701351680201610821442726996610585480629773830016073100857753847795328998594885386553218219959362944764334276378749556865062168268950990541976233524703263684628687255889593401345510769072787198359240506118922190198619188640786536722182573814912895984705681871222151691343259677809293579307728198768676679583851848031335822448717751709961142824971844508451420374806070656504850303105087483512667377074548437510095021656798865593431035240914929073771174711083489382230691510275978833613468609649668807167352733005368415079368651308008846658465977841892780005448267881362777710314785130945614787683988384850143965965214215144399370957998156577155544297680840995909575317921775976081933161162931820430660397462347763759373202082503532243777151406249097704382629267281798650469300456475105248765759777864438364593459092692565359842147999011946904194857805075660557912177795910403522682043387633681034737777182216545721751785390520095828693826884934933591996468905793550792580870085590022554688980534693496312152990750497316833202072858492603935859269893711329932465232931752612980768581171274811538950405492329472211142918354812702374110095443449777812969048591019296550815655018392531134427641450513959746236606545592167656538538128880324089715243116554590094077061626249953025925890162648955280511146199535167201748798591032671895431077612459121123852790020717513521157810668093127727812358335222511274515053708583653099061443552879985751119603402084637112252422734766141793820319675469160713932046368190920405123906111187895440927007351763375519110252003342722702759673626003927856936035814753861130376535782264762299516924315522717158703558630282383850147154845760655503624072955015722405081556052874421362361718562335488222666464616142781843514262719520152309351772797080453782495113067872459610066456446252867478811674307841477817373305205137246343346710417898923780447619174367238457733164595386312044610284884830989323983852237727972990451289213029794312556072582110561251535361082258198491187908325024853668509719087651965325359690627729480556143035693730624365608063183570103873905497604021947129768045856543472235797233064684341374491352908811360010444614270236609001725252606118282116887014935570779920498463048201867765247917980567226631904910258107831602774195063580153078901868670443154165898063679800066575058131727641670289704563635075295158013214394127412271963422996422280588995695165260700261364683854377888996873423520640462751483068905984226540798649650655429393625718395119480106054313084081201936318871908091778581447085434717041179904569696134297753935820654232999068323671168572890149151819295612208951816231778629175199267085606297098387982938502105891778972082578595899065779693067784696504140316181704737008036837494158728591609603274710361460401757390197565877105667089065626307837898772282295774507667842656067688658617544709115365318427870390697869157860743526933918126802005892100890019374286248020552829355085679178668381570851239244359275576372218532300917174971575283543593482445722767197322426536373379822537223338768611858358960058105508355804806354329493839441086119919011046010616745149224284883717682544644736172767118093142553042012598085770569481465921090817677881385611035164897823497986240366125596202253412525327538131636127477731498418255616731710768339079613435596804621900728176849114240572834538996467409361629975232209820512832302498932663458542069826838984275080678617679599761940496819125345972320155839424745796973307901563610494296577786524454414408772455717216645419158133127411285985513203661726589536754415350437207939534797404184896165887148120027491378347409242083675384379926253668815341692721092231055661024006341824565981031272249613560045518428295611672610768289555200037893853335047236421215497407915495524085951591236105412141686426552982901143056509979366409464363028467263436372235865665596705238470432053713811869137234789874982714347697187205584926902314344651443949104767846530154364184263656745870708787758205093263892032377142690177533524393451609825306567462421141828754683479129269964051600091493486795340248458549262250478184450808842386666155694276934933274289893198423462490218832337981236867196876675400469415990611205425910288131037267328249034154628767437243496144068108187058439074774552057032749067874040371455353659176707296660604784171994851311759135157230835213874257842194864790618112035542566663207695017308880609745986933417240264552977441627857698611172616891411712679749462469409036215252173816147552649311008588937653129437872819271415212527604411647436928714950479362523630872609923142400741150463945988617619529483848061360128777069355623771728550983707790664639175323441241830571019529594417647485957806622945951744614090360822916869630704604445538741448455034487573906853256258059560994111778860432640785403385668496363390599882543371141843128056994305085530022716614936008449182526971484760331877894137913635636422020144492083978785877440706877845122087321092082629902638345634098155089231151928553695125756340460175728559715734922287347402468057695966537493038760288810694577748023584956578779541111279356680560039548684782607238367273143582234791038745140082697540433595819029229106776189133980826674372974545791890347327491011436431754848064928003548675735948121929547710711156806685904254710466247211853887031119512323792423234704775737196067129611437386589503838596636965672437372169876006848840601109400888186439314948735580840880375510388699069919214430069587518441623115323345431455462606828118462063521962247737807958034327012248191471537590143757312447387232870103136076081504346259563340657255278359743257143692132166071269723567976148061662785447538335462856664398264695211399459898890151385962623663821617620100904636925201133581605982452455863771046610388689795869450403044270806964849234244462523301507237033867808272889256733619152302070367205092445763444209419666150769898958338554466670830418407580951383337385977317546990335824775240544904747552510573527783286126756263803145779253516361153363308866276871923871642487910222152019730850673219333314432769806095715334454942864923890754728714757377078774613961143952574679333213532087428927938417375878682005152608729156260725351404341786474937468046370562210191540494643110380462287604860660548598691637795158204654496645742135813006416143997871503670065477688127369650719357901170661214040759608887194160875647550423535797816863075809466791186796794387881429383764663547842713168357435582950583705275213467687197620341292703040701202779272262237270658667074341643012660633585376852384598149484814360692726668091153469938003940492714472634427212787269385265193619369766298979672309946607324901508804631631157669226490821664617157125205812256247363553079651464641028091819262289284669951570954143746702601669543470360539741893861620130818121253403798454366891459211928899399523671356672989341464501202305501299265958769698909962869422428713259434225730055264823056920804067923984792658451422971189365831052257509895195872369145716549393316436855499287580685430571699847219812511240305421747396129292580530225958269519849833731974474187627223420063551191444891605160289961545580305909791973556398582076331821986420841744172689352399025206603364169755316348445033318580360845619960866466864634563166090891821774010194021888437718374530288860298323397953640202182255636510923312625755309472113537238217058056847300843309820725547894381303367473815670487111276372165032569708905358151924893815797591931954752189070199477667439545656723762650401240838874110457914161938967220019388216485238560131571655153346081793762633408568465023138898152110402324118965024174130094030848180883850909749284446958666873808493488005332548065869617315363159731227531554034938074943660485003018178897801727076105230937723530838818068788682198454834033172311828104640519600433960412329675106734967312393688593095236422503996903178916259226958103467689245091108435621234091953623707435095352836308342659739025181574389996661577493081065420353553266734566895496936222591055550972420816877861903198658820024621823542987531604440837587785668504650323258612859043424117362776569501171837983176734019293553562948619397858207540985737471336225167014997590053548117111131126203677652995910055680864957222419313975305899601334093238030968736159434114572296667019376618924336886809252941284202898205741184207357843077116995948543524098021383043311055448996274775873283960529286098184329726942924572959486344453761598803874877960645453011752870776671772215464123998273967648841183029836835245631868565473488367374601923308341218679159674919004055066613442313541775056019110851723372374146508395009575079906867312719946674264572620686331988098923274850390147319658274073630112475778520008480866323349673354911187173107242721209411189326873146440255325922776597707547881129798635592263631034464758657781191226395237315795298983032396461102119519506797060325281033668561370483494759969014588359690640420191635786388083376824412500271550626963103209002312374377317747307553644796410640791703099853690011615303765205569796332998887447346324978077855161182269692133825864285855697446717466335352750143539181238879787604380572600028359662656481097001287990855014181093331513280842999823019975103768109456611434968716373438855971874933089365415232250639902436481454041261024852071699954475485048394294268878039017563094719993180712279107982500849735188273305524439190193499967897018218633148224594543390348245392438754912069032240380045120797265963937108544379292857958495941192734860265932408009883094652664995107536075380079034746522423927360186386271263554410687655971499224553873735400809077534093310980025384142188352082796796938455508534202567641852237569107976972654661907150832436091265329061699732328673435308386568896848445325709950164529365850108948328305283477556916334291698793065456542047617160178833351244257844050361618476879161485606110584124783413702978195736352237523615920812058842310817862649160694802019724023301102110269395775495218838496069546349463945988695937883210669899839055494190600812519817574816634222057806368724248625077260027493374862458858899721920838161198431910110285918738050459012208845490316507340103182759546417671933372462136927933618054434697742413882525091366430188864799204761755337809210226919379588471579982047450541759696969331600607502968569778399046879474497755251735966413985481482173450069331419279232177495368943732976959923516441533076063765594165125992290092214246403222142300127775077833575323361706738031802486102723431140869584589892670358911948790216456627495119472518106344015653808045785870290612802262388315012826555507058134941144816838197111043827242574993184726767316027615873014826015819337535713022485612161018132831487613199946301889726878421643708703235301382874495521908553072585356408493379560399947264393087141964720408441044184741051646060981368635340098150043360695440670949285977325320698122605067939907478697979801489042527331301419191251455522817603690944114273451162201529155772656964606073748400462865857170971130056323084632181898994088940293394322182775488115477965768326293796858490856291753972001246766187620924386714376300420359347149253145197661307095674593079337986379724388764276515447395103768596712767611750490505774567465280728278433330585384825325759968472562000854475382598868243930211353994390648145864206770104595470811617833780136876139957218178629412270673805271800845942373436926395096305025055615960529088410200204455092807538692572540475367075329697380802558897573333448131000262888171862132853453442241240343306650088121008016132497955069274498971876101884645225636442376033464940514205169200867830345099145869862612400612165929485141274751495137121478133745875372397739066625404511724187887348612774110300355440460708013941910450697427009582300091537774526805932531896785379255379430159773653509180914554728659654461118529614035627224037883182675364198938139327208835368452772294392167428105836652184700359896899451057466593209184897904039815735440100589127152271659571120774617911479503277414186806685376220016396697927273672031349750455504485086566338045672355512727441471126153009872631448574122230242335100644122914972130943478648552693647873040991013947548498062899306613154340185179007368563299405293729110517702819159151966134719866639183862338577614738763901435271978457411758854734768403495729836133073447194284755806118901621966448971215358870219719819805177447384251406313454565986455723476900775143586802776997465953189260249375854446524389786691520331731812889239641899132376097271707946862715112749291982569465812204078057823846528391506487437544443066837206242855492718332219064928229151313524202452795069964767164035499924943014495080609232531158271512817742763142053487761831131925793747412858686958091250089188626027534003091297513510306558133431033237251103468318769828237237091177852227541649844878271663488964478490388414694457554615881403185685633324808106848555141755875211181256342568807411599348251659091887565218826210794433032065443629508760009655023566276148716212477523527788112845175758365670444442371423707226609814293860590208811961856568038190531528185186759861680496445783594879261292767815035967120244195776680345560529047371310967482479955987015103734082994004330832699012163397169490141277533788980968654915326196116275980778457565393750927988481915534750101217351909246946560566596164802852834218094785377593863237926587124921377610404856562047889816841766750948267346198779630139685169263984228077415914502435643554827376017504586644330460770746057278065682700826892685097460652056860529725352207652228404734265489704614115321235009175680002142189767367556112572947183753675123732660824257146024148631265660366438725488632476660810651604715798263661429045309941107440870283240246214810758376279172562389620337675347387154009820750987233020856659049046024997263844680720597880336106871424805320224057501923701078049345531687449582054910385359185375647697615464528639061250571111334650413962510271245651801064402025699482786477335955617181414515143088817852443324949558794231378942422040957067354598858696197642284093196368841628430825278455378550826822844221964162567753154180965014881212069263664750749399526521837949268106248962884593802614764260538304242491324505515279672274192137365918295819101619360336156387253854610767271397982356915861317629764621592816721383417363491898919601947429725031504530527767087014352486306071061627289227899285589198476267951498595415361450963418580203004195760307454453057637643277190561267930872551667234907179672531321535206373662464496441978557279580079384590059329857091874506900029595018310104273709363927460949019010863727488448306298171547821477877016322821011177550231817821067306057754874919844448719352031315519949771356215913632265284681555142611736120367800458813637313645047151894584485058218645120940981305604493788862041511559957207354319259893575552511226369140999932419431271542324712044491269354658401531242884126483277487914640631550133534552855037990605443513923828951493550976874126208595486014705163666319467868051236491629010589370840920615171921800172028374292597498901582558365017269300787462923043150238277239713747255083122256083646420309493968801370705221338468285774095165216526469815426313282555429605182297605428525608328266598246315078484742736062192850486169844957156361143665088083947733816676450532195625022903213386346556363009012724857408790628957090255481668944681212014664467993552957600120234829808082883827363405627982122152703193524017510024828004472275764450756686629431995154570111901387248222212917363409115920844228750201178189890952666734858726259921154568868857560662446034644675720947245940012979114499370345168184843432211023622396697555370357175053061922145744349185474966071012598861179229716750014873915265879373959309305929389896509831771539523241359145207029956287725819749264061880290191362851232778044793455523538776497615352415609541920865821205815907654582593070029892958092694512377006832766194771754340141874631847467397174941933747439703895076006490324590438924566745851748573460649084845668371274739626922520601181522903586822492395555761185444777327190735627316931297736259502893368401580051201026582504269748673995890093947772176488350868418338592408857838424554777253499636670349351204137470365569676510621078661314555932036712790121406283475980859767091206643441576064564568707665092494987106432531787822171913579892778549852313215820499049902460708448345161537233895127507463651845966300960474604187992098902957853517656226961006365270066636146349252558246756510302395821842864900675885363127941643869630477451788957390495235175701890431409485380879543707159933453713901396842262101637197299470554107717277372153492827873981974203627082207674626359250724577764408908885059930981884333640829101584584787299117565589103322248466461072129531712009850176382875909661060108935889980104173550214174834481516729874644895495857404076187248702712547394538691372002863204758313132814971584771731413678914881536930692784223779398520451211469015464206653006304492025342678468165102244568016074500763751308048145503382463941084431637443335236628735140361040507173315713121186454442527084250393505777795929899413829829845284136399899035449662663304040620991903680855351075290316724703431082524428563573066981087409487240231209265081705577750564069928984898275123930646313617153714876492611540944072170036471722875065138596812110268031828142670950265856428628570394748550594921347425081023466515057583893853782091869377923137099402817988174486727985300868437878298350638386122363588158654997459542337581143188888290075220011839450789112305848093102787385052280152327278124210996469806407388782685536922490765005428674880976370103995417713251513567190610390394341393156379891227429043478187500652014122473643286860805118133740241382567219304900288110385985661888574335496037987633399285903716011097194252511305082381939638743972853309561164920583348677775134044746149668869267627418212788668483773667691112714635272741408080892664803750272007086967675033744047315492625639366466175120775576090266908769368775030222245890846793368662636258420843231466454552553121682069567210107914787867925173822454852639288485591051869077382501964904415563554955019466194141594513636605016286108069938989406322114042027485017107558768423320520115581435694534455632747080391071779166608147928204967312207177173386354429167229521810828226779286222440395187172128200074398197149482419764212448932144885741541491126259586691185200653196995078771266637175412371209102502268803968429458274361420259910543014496235654130815520504976334074628277412737279703177334851706332024804345875702548114142338244932009950165866869097371588268807559255979370901484498192949336226141457327256086723627225573071970870864960165866330906757847546825114262465460734743434687857241776491888925822917826473699649645660620797277462788052307112717197054183870998730001210211528905973023407795789197098673349605551201830566184816769146825667417050158401402920801929407917760412131986318091516338288541360240655767230980433501068636537936384436975318170716659694680155676360830414023325272576601935167091562297075387884567034713580615503163622158047351924769780573691439744122664982967204587670992418734060698906140944774704976635434852974755464884868583579456262902141493675965565058117889276165248472764365139885103059658078625011065600185081210156283183904345855104991099507206698613710789783691322526196074356915558499381964064298728472510206285487924895771866549390388577704133224736561333373961130930141681928865954278704672971177351825712331178140176861833468384059675371705059197033859059829296234382088751330704789524872731026417447547003287113177354767483972490575041778261705831531251577811080479586916014666454708784172922355636866874938537927843686657634359083521400417912586523645629226644362607752823038222392290958956786353925988705704611125778872937045522987662293504791168860066750952381069003287988018572437920358837976985881903034701481200466923255396150934950520504432753460144476938832920360555003993727818489987945250243264603774517497568239334693726561668594482083187730046798804408928932842106636757844079495527614844866931249057212459867375563730701697021815401051884537658161843901151975836503893815741035309090487004125909782402071140541369890883106729618952215560970388846140141437590437783757392966281696119488408857966700540845137441594340068113697971838233118774934306344010125700838963239833749732789861673195847007269870352250017507518068428590249067934522105206323998943343703984569609096296253792245996592746353010636888818109916694517006272735283614817906352670575927785744493846860873570925744721911642335398139252130644094966881632820708959180234116663338513663224246597594997031561358309528084779251473486858221225366762135698292497963518878280504839525566808225225629807153452366957582117795819069972308853890158779046332640633387497054097527349834939808511507271150388193615394780068613540519230705822749510002340910771921836932554435964597366161832789013406928134829681824115035581837214994273187119393408006187864589180647085619583411215269303596467652560516601064063102333242534901487885172151238846249747537341479094517139923235267639834917993148071987364104355360119548451470374576070948655053052357324790968588698553325385059424407659854570975180186238265789489548612303737283683504743560364487791825736625677946837617940418831488064969700050316960659807387266766425140197813102401015300002960863921512736771446365975791757913579882833543976138583656721519196365809799450317006620292756939758377199597925582825002980023279768684801081666279432767370715508858615730007509096719051935665181264063190600402170994898730304117308928992687211687411373197225514586843580399221807222860340086028814653959579408630351610523842609525965862168904264306879495555854847795138183875283421539422393171579039282165765917336262686207465458221122600557791917159018234154770752858412456330680186275425484344585683739191738172520923210593936858177948465696648082591422785285997531848360697391814372605944919834350034500508622369914414136474048675077492247031575292974952812592579611177999661284166614597841414560304386420055078474446654861004815711443188241974169091207187768422710548077124168434944075391373897440598204314345490808174619769032842457359187306399263258755727410694616191424307243224539514757386173280596348361491142285167858335662960513672735100561534483108786987726596592035194499355732822226319361542525512483717989943040775901758448300962876153368938598206960627495832615258712654452405679021174817693347808632407921360888574230982640618324265470676346446158815455603608246129038940887432995185399302789236319098322158416625242764828920414643693333802755737454946574960226473636453800460269513622291506792025947499905169790901615907895595505798841248784368398936194071731232645211621978028414045560543394395938784801721064225217186761737847775607782822542615616780809044977190577737050195992396084757676939081719047868009270120173652570966109154378743601252663466666188702129743404478072082916184860688657348710290390442858339183655103886509769520247153247746726272489338844253427615069182226525319157253446473444209404292099915495338610367417617231047842827992534290224093119098024105998454096833347848046287982455656614228926899954968169408862742183874364584703961258824151867364435006297803489466530445450091111508649069101936599136746470329819748889905227064625624828290888756108169780003785459677258661506416872743038621395640356520296939091471161014545780170854150829033181990800968589619235752452422274200531267547373042247222498653294169861476329160554206357782532287990030567783542409357143592149943575938560408745486591329602930782282848040601192689380840048038086778983219560687463416559745363723742586553304279214279409098970076010079867169935425548535967337933981323306721820961432460966104543847906640121546519776366277933034469216026161670826455304440072410752651113239376806516191847141096969014719334028265437790056706368835210428521741914043201191744597892234003728027089155319202589679432500106763393188484796014625232754343566554645495664784015042407703923947982811212603395317625774138900289876601508588328012639999020231834344939322976787304984558994263503543450793395591291795147474558966131766372548700738983053547920252587504006788449111081241222431472200079702822466486837577163734055854066515967001252664623683589760967066381021372179462594902819237441206100519914558107461755160826691682031019936680761051236227726168812450943121262055864703505644366814507704416156667863271354821183371537660824906497169972254617461204904938793047656615435319000378529434252380190135794480963247919859229029515038993444493801690137175704026873674190047087216803232094483367745695890008043050404226108064319630486432628548181034131422036651965193978625015575589105032655927994893083967379145610119100975155352661693637255574510309960575486934820910120817300344322830767625014876803839198937558005878696883835453199365971293498644042836339541026126185256169046736972048354375072657665899078409102711668805530128222274778030001007676612281412817500229425870310735390589963569517020353288963320438448625664244516605919617571606434086300093531838778500509082238348360806257868403394224515489643560014485175908747050737878259470565334532395668678941061346308111485983036624273206216133922375761484174467212086819416715002806325469451234344658927716839914944141064833045691006147286635898589091051322472016891667336154609990284268874951748764699471642272469916555547147657785813792763409792749747440627132148580983210371184798890370703964053627347580732719018884296184595943816976849037705534384874732443356145382886337097206533216713559353169965029592834403839454696362252892901380433278551880294374167638212025604584574416918561598277096298235606203778999363039398414299722498573120713644034095413635484637243886026512921682051991333672612883477744227549134876963388195079948970619076441560816717503420857202182548484594648595635524757967487018757013539782313921170859691378911345323065904677422413992558180819020104041576565858889836631408821109684851812672749898002048967607762739931825866882307386391888095205900023271747695860133797816453937139175962036293287204272052027626099999715654808413318207060059062274305140461253919398117324811078107484313894178677852492093794314546944057305648956458424098217215535739459189696109120535693817959537624192827580476842177134273723037211061554287088942129996500873327155772743344671812212026398341919936047288068537868000605207130543131918109983643744534244225796823396974076361512906399153968227046406979224797867237909004801886954267955574115537261801323859785276163096324765114443330589119002179950663267272130347029422819564191252700510560153011475372178802089702032940014879404388059757881760954301193017451428174462217980076316235087310997763732462303910923649540315321232557848958272789454639068833554859840840436344407093082216693917008357613760166136754141269388524120070820884356080418519869689197133297731575968035683050579351038312555377867967673642979742026594253265707826068098267905229729607438974904275271120297156970238162041320726252954181544074708630455162059102496820077431065340966567827820314504542003335824887764898098420228255886759344186164833180571061150784581362756920617329483853213456444668492374339689990642111129099588115671790477812525209015144192928326770971067686261250829868791775710696572634540780744092389754778746093196263693498014219778007770894305782215589174689963707396507546387490156062601265810768052388412736194899143881906497691391549944370428487428258443410192453145945420120430908432240211125095261302665472454484970395217947521959349062469766367967546274358933760877801506777054172387342275959029566687655737204408660970170875319276068812721127923967049939947825976049861903931056458354910546583092737932371159654662127627971103251555602285572748519686533177993962827431287324871008736654051328508426023743274177396241132660591596082746732562031383708172972305253433885866485409123211147086889253688626180477581186978295793310808834119161228856184053344348782479870441268184284658301811887353384401757482688566937553952997708507394938326323908908703704720269511493814762053211374802520475311764096445929802079583110959194354030903101230507421251782465897444693436461064641494521432023978482549782930600909160539056566828509658550846949609631528155564208171638966694693134221988574295115365392651006959567377664939507372874341199386645229124409352479589622125742550996412103624433665996339116967291684495317637689172325173717906187463795042265511970141948492687797937992034371146117906835638410252500689515269498851327039411653496801835902340425674012325268320692890632120271827736499279153886066272118997558625990984767442702698120261347231007911297189084499005585502037541943695045970342358329491323282264949243501085583196018571663373411084408671186987214339352860559377819337870937632594069195960281989759031862197273314437871695520850897467017840087351796615494695164647416169323340767702496889463618028652917543480119871828018302846683973116783826813105999233605285857284181110916472612530708948475932939586463739941566484999858426097414648258228736990951720543533550635289837420832803181732544058352956466149378322568342590293274072516494571939266607767653283216094375541795014936695974702936543721904653926472686719340437283037279213532546994299165407901434706282719497265915321162179517381435271122323854326135218290895046001918112461638051689690826452141916506256515777463540995936612700195934071587272924856042381054451237509409549334721928833557765079705758258644033492145274274730978413025992999110058287547220173940440692944756379324154801030028488622387114667852286913091130839211148982343878227504866355679408846112527977752781983027016654950922340321128804793595167479754314204285001123002271893350428210732359007248380716562887154489809104681626977649251757361510003617902996864789346551728494616256858468311863561511499317960364300719311808302156907994266544854871218577495274066267484819332362781836131267145332915683876774889927255491530068954710805706073646495061849300958077561778402082180455362140824848091647268830172438495617579818417390225455100035890815259367633262046373613856128253922380577529707489378566034025470312532442468516762070124988880143014853123480779899521641628836950245267546384083402990246271001260924639633296937594368074426454572037410528873253076583697258427095888218471422935172830868450231134865680157460887174001911067147006485774513313309537012161459601090672217495139399804149636542442216576994564783154862883437868389527220411777813073096232884149067337749176660032977396799225805626789091798470419776321679847848458002263780313095596249588911735917159111887536723439035265785970192124906287859182885242350302538310709109812980531603795724694920618959386425855762373470459215985657493018589885593463938884305297360142880120152635494845530775554569361080317021179264056482997406389422405380925477779419525136175524925713484351976900314474538155070369907114116974603321817269472893852619127155274479554737672719636802402804402156075906764240921413492654155737578039529777980398818781843289963745560666426246292398477789281594965992696900307353364260257192397607838442677505180510577682425657627105015389521205136937676860407717573116983351819470352168045508556345099736068429704525515651427370910558401106082942219374742727922837723173437230066966503256960082158730435191753197692281422169454937877354299223998166137968778419792298091980655372019576142407910264657095803829436851943448098858370885577317505860224881959885509797667459712621289814031395957872817019661772420094752525959401726085844002921826202395825401629417253037251748228040342851162142613759783349885625947805873930547313089528971239808682874276170885259450324410250845376057204849553043946466237446864733265543756821946908333267770386889522674148823246745616219829284640856078347849480116221005941638064894190201338484670186628501333115102327508814832578426161913408008652843290797639439869544300028247705706153782021378287035230288217158316333111398924457010634121272934780603627248557606558695001576698636676802723082855913919317149171505120678761023964814095888147243324211545803040369546990552798108478671975649947796562575554936619775491718613202901563473947612808798325183579752656802610133312186957370794403861367675210054647284938997871340642807417089369807987787369294690749293684440594671608242853045491151879861182030283307678315382611302893542451545018780948439074553343562744113813570378715041880869301601157886032084016463626195970158595662507113977532972790334216632054419325770441635444847385545235706725376284700986652873477345321130007628252615186988480664693836196057285447888895114081180397332606462178024411998992830233748191491405077051873654470996509194324393035566474872290321454804387720718746333281870911077166421256573410999780779286124402635035697986923169633349537892041296996062650718001181024481140935608852112788036841772571944579946860450368347021424869154953922692911433361973159124196946895345918052698855131048258820042958453817119952285955075603314926487681363847809258428514270819378996636780128860616822723824455763053234842467990284391792050636697977076063940258585324486675355505562691936854466628215803719694575105629640760709170531725888169699978497293790025983850188984604327130920984837148490381043278208169978733521205651218287173405805911799851790473175824096632688919843287843529293408271605045323962248613528727315485953797469955585302600945444370040132770074491498916547126327526852451698851853961573029068870468735285285624401209984876761715725026280225600654432270667190751094446297148711778623696080168528995636500795431922415604814552518107993849355050123413718355186464984583816293921403964794323856626514079299174831481510719811409826235165900944720038246910567689214295384940261727043414147156239492115797513034403055226770758627292064284359592599259933424038416757952957083679317524680985924477316419967106390484085625468223141723571431229237140818825799319285177530314298749690730415135262699054865229655607953579242350547840388790507080081731754797881602915890251232414533924275322755774392414237505270719373911874503353491531282361981185145562998104674271784988048809574372577430040451564458776935118916615926921077397766186894736665890591279561911948378249344127662792318646325243555115631173987220851695439332320872342308227942971156211916317244652499156555386808643248879956603500468967963776446984215919653028662661719934435241666255747795467357116004114603755138752147290149313290692437057083235582471013322583618048388570405039194905426867243682805838632335176318831976522430408615149365064323065060473827569455362705239430362679040870433812679650920563396991787599472572574200877579153666780860848423608348651755274604873871549056919988293204241149706881844083608605362833726160768332919745620012551972028603019530673204517268589538646754187115991801852597892558956178468690133689712040157941659010101254396287264850562379391973463305587241402509179402722489122561612458768227372845414900393106370908984573397253208864906739250982964472232979117626072842405162438217313109173767238300917774640495881521931298776802257674947658923399549745987160201399978163488782730443393861883346667006387980708863787785850744151903550673696522648601719914774348885482974739963802481256147184985295145026137712506205419984979209461380618651551966315533228768974219895189828211785737514791585319718500091545715914677492884069500015620919523280270571411494630023489837908467802366432095322806007775012706950892096514453546277070523344127177695817973054730861744158977129070380019278949495928486949698021759576505859365415669071889233004168341812202495381829218737115641579440059913662672550040061994258800406845978141875721057419767596357458307600447901741805455296895158984449705199306171966236130777946601164212765813548728746776510345539441833367430310292700654476477080614422254596142991723530003452509908144157049566461274203552670936126249736022837636830492339554732227025491427045751138758193159735297044822766163854412473310879131986493060827061618933468084487951205979236585098952691109784152042184179069897893303115344927239988543843747643438170806743118267570258981533895170298571681473356243852113956411103712690504061251889644868200923501159898800301988786045681379664145753618919258032661363422516263038280138353056184878876649295369234413490387292630287616638665605770171051849028304328597596257642329641162391394410745133765649376461521398196791148365353551898221706315166720802623762839165708313809750838044537400848828390083199990870446974618255905586039083169969325906036402517131066252393529068670013774992272169403879738382019515563737793781994417248183140320845736250756185911118558888927539196838643355330084152945599516830934193809648658304070662416436748690236488510293470768666876919251967218392749250464054131566309144624308853563231285943282943623533447017743653648688079563884544710464834053437250958022960826872672964392262219442698633698281596684112882377604732443580277628958728406174960407866271132370294620125269303728564769878508682327054065636312332006561677805864150665813445940804876337065915651696468975473813843449751363543538595452372563460400563654313765243765240023726720410565606805933218545520671864733178155443831091961652091564634722764391027107265408804547608968546747700444747170332047746402454795614544200127222075766091441706037972526712797863930625780400968267869488923420532141577041087280664218947766049667512601231330732143251223416560482691482651577998883264831804614036003441697404345772327600052312848505613035232619609749721008784622592658573395423942469329395553213373163232518651055644029814879926415892922182239883312893517577923949080002606144949151208249304825125393211194935524647507658137077573398445965350016175742441981948943141555976651888245294290890946503698632960999049932021285599601355562731206847056426147922052210535765406668840881830332460304291067959324635490605770733850386548790672193391452508472342520698899044049222491947834925980749553262630395367764969692638073261824592741126059590514517757214609342968970397001697180763053225299327175725087338330567042652495134370691442935303139030558110183388824915941326619888815164771445477828336738764463549842530802487418315882560809865858438388839357713448164437305297365722980587238900477667016974108774780834086137046849363623536583968514283096490025404908434083594748100627058138872449548181850058185190902986156733024411400190238159501395565962518351325355786618234302719150533852494289432673086959553193044199347737609903809790245681201520992431029445911861293951775989326372207695822107112805224345329249608501940749755481012247276579535318993079999581826276131777593693452189317481923953094580875417454055441584135550023773113813388255064983495100351648687557125476873229103996810722712531609330457317428381621538010348331370283267431859341338245685861117708038687526191043984500224445242928621859340820794739015990727985418159050708997214743127517124302749932131547670185145440836916620682955088253721065815789464716089944961570829191940783489687112472284473912701347998696993673014113111146721917259188802543804066997045956478035364052956447882794895345038793521655636352436521022304338686314879580251118129522052099389597455619913448077980079058576428534016726074681084292974112703079158131098166304114145780023701250886386022996923755335367192427865995309864093133435218830103665321915094557814754261671070933180615144568398319787821542868889489827289261966039345095787835099581232894666158383654205200009935971099839438866156399660438370191443239790459869078713343838730273954920496588372454395805064747030754261059591348936688422447971607001612219070884429861238599396830207253119407348526100964366923397838298136005766055863764310209306090180018958645259328496157283586508401191899511934856553206768872853288122034697175017261932857737994417054898305831674181990381924316743511160136210649983184531985933414299294364403970264809843189351825948181150218716181412271180794953167954855142781310790052110502699782434024418203333481514739497044726725856241814319879603566247416563810934734335391087024160105636025224862742008472084090004720653730111434306612393194412633438837951137813806017754818909112222791479188060023686883131558701768418406844902476377679444805234888501953755117768738101446989129350112753520148929123389198782215796438665673259826699364000936821404480763599118676852986283704440382751241457073290464794355806082295963281398990813630443345850316273672386158342626114906243329224282001830424668437589483061613190461534435973658871169643010385593427456004520610277188059976748621745651028090614849235875474495920841064592340816129232627376703694893265112162641450823266650679134070117110366017749971711676337912116358500717683363413479879671376923736282947106634299949296803159025763099884915693286667620276040625388726925734264549199665757973522516636843219066325743923802852678602874508162754366303656036776387988089256424845227436967238335525986972970284406015982744274785469500653840258244749765898121817808712410247747245388165826337908909212804431185512371661039468414763003439674481364021207043687177239093665100153114306716257538843146255839562188135441142331681741347085807015077261919158972998884464422834405168629306852140935755051650027224160431532652875844722272426686982352750661366945433847054224667251367985664916654504673393364129241793008264853702857824568867882643287830679125918480645925801661272380950467838573792169536772017968165669255866587925224677248488571609349450111295564945855289294655093923005604454001997061272234872794047533194297551989990017254249672605449009603214039493684920064367197218788108420291925285409566153772881263732973387204400179129106272337237312379315237620503901933836058627681529838956050534422689290874975090895757756771043472207038958790959012057195235981032079311729101873965197235134782560876425351666635294741747397973816673752927904387098484504281272152326924773560499364891866571957527013682519054933627510246350446501459843196928186317156295274453196398362842680507592091979109036259442231788277900775345475299837995425980732540355833223771494405792485308036589825881108535856423243429391805618731796703342913015477165709486470444168380255440848308176869281670807072250420144783771116044707062485276220008323738647071291206207907095279541732661337607199468981061265587742437613885052665108552199352753988418353930660498144359831060535066702231138589409604278003972403045589463686522782604136056536475603330740010513190765776696990109802237674095553229711230428750514871542608609291816526325350100067573835791093181190586021152243421265677926592805237194084375612663086861669800843105780960243947427476883551836535649909901851448140656875246794747949118494924387639242365731454547567163224734484740909348277028332543002125923013533048120713335512483436189781542987448185692667767757871436004939375575261626406108103026595579335999728999822182173990047374005682436982030757993522994463656022699034716694721341741003603115381546654133008354514744757943542409511540214288903617229428231609134518432503619291806902377870019577142078927515129069000366999104921774711559847105399234717650267859495849978889243394236619303997215078420799186958381956319623835104730904547907092391159833591060888224349871191332281834260295394841611142554111548738491994984611039677300521099608556602614486421880796117008986115551341833556538812253374634034369328799899497072529673042190901961559651101654853749822815854559449405763462433665378264201762523005399631610646312647304765535443626892190449392968966527684569594278487636914464733078118663931353854886224296784097245390636481150423866504124175434459800001730323297999223424859260810046621905973593526727912638523490304895496433446012746333516149170612944942280287833315570579452663821622296145016677296023576214653926541426272133616308193425286759966411229412408021900175195542413357732730611796565909018311496986451739519437274818966580041003183455595454508716883675838646544321663752995723463328862826331216958794288132336664432778126743606881158050537701211582944655392674902395500222289009287858370228005566915676163348752346625722345831111406867019718469858824423345992064468089147627983451940481056113982000942396955427853069101347663180987892798229469520617193537600211327366789076786077362748631502191587809877072997136564036230262954111193442155752738645632248808616809076880783961105321849324667612503777049769689554129193465332734319769099661972877488415931237017387274719529841602370269229629756382036519712106825886857526222599108458258623129870046652117402018342662141071024557436160801332045909109712681452829657247603403076263204961609356301645874562049452541538362980300693787628306853767413254554142301764812875633649356311037627592683367610268233609222016626980145822478567534679943184532765604177162064371796277612256239046107524652759138269104977372741482879654275315620496006833124249173648978412942299218464959023698264881707680019563414720152266020067993784004209868592348992815265701565636730925088836994734270931336935256295023762242573752498961573994704670169618401123242404472159818174840495096133747933950655279044952992025716697006160936701239438538938040953151044720661444601698627706877684971999967738081141811058906282306767062868050759274822069744079551597458817022088293887358915214164867584940696401417754547860374810897414724893054873372412444971869978944549232111423217482312407796620526864524708827953020891707519403737082743430906660237352003679313102780923694939368234605310273837041027847232459319162626844203220251461189700664042139495338571587320928844684765391236307509205858574271760055806788694894994126924055485413735072539250610216215240633498072974795889703740632039584056784358680200765007858719688559201356952796676308338648349447270881439753981023057387301641654394915201369429625702580625052478007526254032530581684593450842454882213468440275402721176439003952907642332349400773121723497001731142488079944338214942689854760365819259869040244332430812549775746186083932294864944444900434944117979859150156321811714254928148520604928874986278850668128709847512923988864254887879259030233665757728149211693758851124585629685196813917907435287150704086159323058514002589511436109461448801661584662771507359658584158659286997551168677311183212947996788519841904582735100735178790850135874195582404884385753133187383901155123530689341870040004434622232042533479542446250238595751239562526067712310259324355063518604621259284145718146444890372119082881090607703643180917484454574553390824203794572712109766251017296682890317858280580937756214502512604230847573433378142347722084205056078130866108717495376028979549537631062176342744374586446370938856137279952226271301321319391210978405043401715233721485572560512475505248831750252662159047313095966595226904460542505037608516051786707980515398511686292084115374245352205883714870097100082362655788110158442113388933737299278139880846440726306739854491713782393250770073413900959801237044233019924611724461775088145726021724300740121185845301519681017400045384630750790579212144681269490448363554476546197651883300263657103120320598918922936782122298630653637041235967937734111543086592505484157228013238499418850086877128277124779192779630652506077457495772462844495214555468843054835113231334809571071173032255508225321832298380597195161253168581215121899319070038197175026566538986165447946095731698927436976046716626618258205194254009223122763062650553270140272997634134364655036609019139498181472912373226933021523251207223712793976377096394253041562167564911895947514511184826525370090127406695586931164278582726872441441372088192784129552241542416733252298514654066654372698219029222408085605583184108058641624235714314960830593210985964622578893042990892144069279665629125781447382528400497892923822229352282128847488669581280407476287335388675347567370825496067423273738069502610113628002998750251549000598791834793105448091843722207091620542067674017288453961933512937883813015074059935318446277021651652842624518855009498213510152305802802122790240837256657769222248244490707130479022295260077080135708996318367123011012940242292461072107274104618696669188047658226699428447661507397713789303141847517703308583350174522073227752629775576221541592678326566256945295736905622781369507451786853628136384572774099176168806240982222681742769844646996381921673118580892351814458897522938165025897958191447405358863415904418576372506045345520552236831517259559411118707337951583564609001989767337528376296269783517955726492827927628615897561834232849935215684335536847689942502584650587748460878899630495866786052157785868637702995391604406368663827388493836402204667901135292664291677061033882308949645622499118486259346726951301339484503419328433873223731817007337527305295726868319045276867936401602775113661599172571224950618349386760094666188500697864167508205197280307457842464106666405054262508116374128796507261429819610625394070379736806701952936333705770235937802467947147616211382741289283370118556049562736800923458708832774597643703216336386701491947375772323954650966032113664723519991123077905630550124096120823394319744432451652125733431259074908842548202681295557481292493132512378927961308143847688148213966764473074003446741918026002514973094030552214114669805827834167132276354713511449543352219696690694507839082230633064205266300760315971221052779993419565651891195602159921958149763710501110133523848924442339642128023552438583234733548988626577607306685389979008988016777790317504642638699339102020047084274062557636589359252744612113663465161907082659820871194545391097267597954200302623385020322435834800867003533301658603464782087065904456583127418664280045966810742080196018825149068995103822032645995056551377006605135206163330836153463838853877652505121135886052772298997763285566295473945308406617245657394887080095516630652645183404826634967207672585806314918410280550161859744105985351510164218655133452956325858583644974154763974325678454702859063116589794836684123825702106582058521313487918281402095910680634742832978931910715851810676156023718459623109707935139512457736465528139231682688281717394118874482486521046039782033337748615844659433240653608717583775529797874905923214663955630255450667532883254533624516245037852694943437309365738829268268426230555136234531804840895117109100833428402067641944477681460852309275778599743222332728900647979872203133151034633609862507472166264886808398567820608845089726969782219443919999141104295338051677459396392556291708758363916969179475569523207899144610926910309197837423885710922204718620508051014337161876452517459354781516172931009271019495492349328409503551224296505884503142724936765958534806258055321614670619196040106036973551420351473849468451635995856285824998034724297764005537705831185776819300772092170043245998680870002047365731259321920123281447046837168817257889122010306874892147843148403057308985761204820077978425234821075705922929706512332556420773058715148299708789258734560085634864106813917967531589453872300774012061384987836751055472749135226758662983613363369664590802664265540369411796861980959691054054910254171159461995758396536800524727769655509027754067163125767773280341195700008229895037044255029323049371783294694558504795645001162956595641628149908818745626260509143807998774587080932392869133528160858448267604623942927277800551563165168135360757686876486736614841510077868873547492919276292557533598751652391165994314110110880929796714468513573181700308656419561391582931267306695565100240213108096702309669288638332732096403393919690768754892132967902436459022364655025332567030331620767770111457178838889419305207171320640927395410252906385649493831292608486223566216760928162784437658474062583718297046445613140340148467306184379099133225289391763576612971851592108338483160401280465797023269650149675038684537641461701680818400399585844521714334918070784582712871640170005430578161265556634626307274903988973837176994207636868130317877017109957494462270305879987858478465741278811431417720276998029541454275872228421827453485187215884283075311986277693077611661870866421114125435122626776162093182742083016713481469516972211115548731617973628412491416135096259952320414320375375868904200704676422306780439860430554761534813907522986445008848149228325613890340833737793889812071062507819029591256261102049934432668523942656798351065252459551400342269924044643513414312649379355035243145469883165593776389083126297116057166724146755251980078123935909307648256033984816360564461291852047460750319385231396065743059761859071441320802821817190208509316363611063750431235156824113431002179756858136058295683627879384508982766355801451791909317942612109200240559787114662923159659618512704102388213371813501690033118155861782817114155421978878012968829806521736509697379141078486481450179486537987994562527520770933877951151580017146670032931988885114529319628799555833628401014515234873381365301131374346415488802491063643663341061522617251575399016487316016147840235077573271802095153099773161652783222408336457837340922081264839223837655845761456918069201493258977308312073538816599069599886407986287252717827673671724500383187141783047647413539742695807816778571833543446095076991577857849163578370289978674875820114346601464665484504716972098650285882651117442996026034977756913775842120220910244810731713796702759153727191119218422111036575999003475084973173346468544063117754801894641505312930069841416366657610375939761215993255711596777767714137849930696830385171166532622574476088392072846903632816995655517882838269034852308672379127289997436404520130870434317321606990043996128420518843932826164156405661731008116306105447799064575133155270703203980395693773264606273101373733353494556561790296406291281791633602813030296020006527243569159244304898466553344505233415207775827396843697648693104484749462852251973771152609046133182153574677855571238731930618955417380649244608202495134490836074782359878940950496878069026107838405286862554054721267860803812110554950058102863668573332741131210927505702224281966709204445815453734034777090704267779405734725954900950475259296483223596706427295796236128687068631324290678391059994621527583286928043762627430994834409407667359134375982717972784607494775401666652283397855887589267478376757719857296444915991265831440669829979682829558428868259011385836194600793660275891294843420885768857512083268126004197189144594549426443334629174343692814183904125507262566456000141252288744451159727071419628930523511564416897313421779286050424708933413742088864410616254754133079240346111414633080092244178993492707216761114831592422659564575085294764949327750499985908152665317405766823238472136411717579757774651458951411593659344221064703830877382499608278317353592475264842740275505658281104922220914130361694392993191338358150547891760214874824153353390156915974290374697487011372022136956595458185096873352238811441769118363481952129505739038855873003138810162290783575626944355626558880938519252689040962508623222112381442184760301514453302366861749701284556324289067551476392897646929982551724057701631353761809557755193920031434160082922548747493331198172174852467769167728661485333741270116942809605771604064492277681672237722511257304419547761597751219332788295574612777063985407125496554577406029908978497583959508800079812279047420455097302170737947583585097561605163886865460690369836402330779749609667696708094476129004838669478364057367254328412349914500130858884510152683998618014299096108266178190856000184954231304764126906551589743605694742665008360482366933742798968035075851523493005678606026864039258031564951399003170419168879894202010635139828630078962845530355207728880845428721713178030806067691538965209905878639060303966471894409433498996349627611668873220586919882209682713089825111428579597379231700599560221587738552828394527774449318792195743260823901750063725641855796176211719560748710862631866278129359016358518326642631111564092284419758513314839161848663320125526695327739752403600148817545755568490396032893470460384978078579503086807492830525441016628819743138396118496754330934337746105773582056693200188868605671103282236741808639386981688992961078843252313113132629969439512594114029723209550244831911426623157353669160904327393422071021103298581454672321151852314064505202721115025700501460219896223283539893030154919146176957379557555025519980720707415092529899985836507740954035296202530763666325350298803876812419544740207557733680623894188522446068098192639051982476167008976109255094461734026096352712988908740997158289278017158688915794947577250978865598864543274889620495513069125331532576657618200753182324190781605086789765857652427979118702075628378288820946606389325992485349875268587866892007392482187595774619548692773291002789420489181472685064488185995579021899521532679923867076425286738107150496368304543882315252389320429888320538723172183138274091193524446853446419553453771782467583051838248310835172601321129816222698393001783467035903052765636923073348193844014205454040117482342254138741565501360635876358363153602336383068757687129570970815046231875698505947090382704655199289264239513715583270392430788446460522370008330080843815178372799099435440649965665205678887776767890918128721788843000377181623915302215932245184465703436179492162478218352075283928161900794444612870869025599003043304505707358486776275011782883141114736356601001980567204164126291142697789025007298324640330829392227055099527175032692258138532186610680923987805046425580213771124569309710560315969358075069295646205633006889865346883902945895848435035126783746366701004336075752158527855448941910578866950160284522001274112844127901162576629848754783780244887916255647843289838657362943144518356971865844316706669336565794066270995982350799494515033755148660791318290069222656951053691956622056418907957281016333010863501807608426899256998483449095070837975798447523132875946103320008965800277179196775697828200025487033638179025677490848165315286930965496859560439899165292217549793362023530406888663566302257909522042554034334354287974152275097710698337514767264893514301773718531370937359368639361825436476785649749821394991096291128873586955540942432699636472876378572960155603618378960591268492362371861073962173225206406387412681289684846397228917329328583014638059319186463099185167432974359820429536551647253611692350246845931880239032477141951496178254618009886726834825353225962632356264625085833050230322099592866727395872013236642654200187625455674628097125021445614442598171630060725287983852367050348881662125557810356858724637981792657082540368718748752729330698208231401971957342619275436275563107612787102554378177301066913061152544457871419982041068740369745632744635246692726816353258612882615719042784222671384750380840541584552697288279038733768142720113321800070131224510740758494683519272515586243885353281724100621815224349838629228038400944521346127199226957720358913552260517064780093315743307149755780375577340282427155159419706661505397781516904111719619708377126421097984978861422822625122689838523968371242680740385012343919293044882578267366034638852915155575043156318612467728391949760447782969488480743129458707309654349023462809574796865271825246022390133909814271837248261247570862973452347950414272644959219131410110271434173871972803496034903107356079945604780085526098060413455525705604340535824994905783239148863686437789966541488712546892033592950344518680700575460148733341279145857502895188766978163390158066961150900917016533191023566045805735476346024419809038795326266312936906412980707777267184214954961541968284582981713616395081231087064717722067035278208286437152038270623059883063728612188553747286208298646765463041180794421466569230474388781816441408420811048817962511137197758639130378599940506345865433992016163008283030958120303804400509603590177373118112284719240195223668010585579611508924815463784271237746196042637990794501571441357486867632375480200053913004978400150418737626484964087388886140810719892097526867791100584379364330489875838493222783778654444133200799993586830380624896101342050769535065411968996011020650375163255722512333693911739726384809631609239964656143970174331144477229363810220871017109462679116461825887169155237940437601572225157727307915132397120970059643573954306381983979255645075463175468629434451969359882518334156338616787780720413427613174502578679809802161657224407779662598666184130773360527916965305181427110182593253477274304438643490176321334786667723139269215348810344756737496764500520858323126052619177319905980079944559342261773728737303421810193895605768879856490292882369211548068228113239510711782319383820263516785771153001562687719038304878036472428817630839387110697768739099329690205667926476934906968955557975246123457562417055876088321022568862513753776012107204152570142961781947951863271873465576151201373936260857482498673404162561134794860768991245241581215522678023964863219143009531272369760747429291755355628762402435052625223432373192178862718210795016528017980381355871483622819996078951593528409185919213246108679112888589564993371117683724177186406624964188810426359920030977319708425484489135730708598662248876367483622520958384136289363450798684722226513127759635586294548582128894921186353765294614105193559692764683001943398974052529916621114549107889061181644443812197465970356505156485782251612808076276317641598350433653410775489976229418365232543858366529306149311556976684001836079694178996061723386946258974262300524167677295586873151784250975619074310300824004078241511842473693829861706617024780893379038814340983899933734989198895177804950748059967204914917403156339585681242125978823271241640528056835200922849312149576887588980490236840972265886602925562566080894906128113660390030468441865806247313756963842696412097683258573651940932195008449799205561295979541777397289420107984980152478300147418788296011078934665903524962597998106585026774730205082303437392781947965881565072217953975558530359677334000577530741732147216916154056942781501136840348467579253656168637544471436819222008605068530242058870230109617976749693949140345049920676502245289823726741840538788075184525127030476948451696314481762460662182902219218982395836343553289071954753850413568334758372770611884136465338305734965084874178047703582836509282610903068502549684389655272057404277075435156887869618206057578848335527015336826844513233508173296217627742848429259436473114478080401719807150412398004902864568112657784721242278983402211899233640371410632023873042599462562837958860834465682762385396329120728167753447894395963757710898042875059705998866506756405700397693732260385109249100876549174222202046712542572148620597793079044712266203106720465779001709468735952170981277011360886683388947571553012566234215935868901093126215360124052848724202465027170668844959025608393011945163521933638740801113986114738307938487303006323665919305689995853482440082767661748169506238241509576388186394791983490300433249453590718426494464582385003757043917610345412619090488015622603127590637448949267544069884413102423022873595413960007768487139544084152085025684321637111239922330245255582437471485368996688828630941517021589278501466681183342188055427176821353647836870063187071050775799753645774069380982520264915622511911832511391164151590838254360002434449285972509038876352694866810933037793533106651647755086919104486659413472701949906250498702427168355189834211769108484811546925738825433684024257811758493782522994994223226692899082348723856157729817058567655253198030936260136577244406894242939783421976436671873977144563755037167597134078443103599380452348124087603542859088421369222195558164160690615735114038959742504133681755838380010862260076513203392572097579980608089489021599736340833140174111043342585064026598049415658370037268612619576966233435996337377437583498795716255212369459243183169818243246952295140183688559006915678110956115438999742912383987012345199752800836399242540719998500759200371310962419502993850983137172390174246742370237832578188095313577916560685170431145802216221463767282351347232944495457909698170889713032669516981988486477499196692952475457863224747355640772901925609728264782228840963306157030096413751699291011074865966285731818733845965402109854957507672615744682322384887423427611998835942863481470839790885993322572060279377502504239565903396017745596594928280056995953191516347234276726090302045789766263938934151558487401710317441107492127192839661879591883280465995167766927143873155012270211977079998857954345794283633176454818572869399268615721991538189220088529583675720839503076758722865743892918598422737311494871592475753483455005203896309242771132616491252159801161063681265592637116362547029685508488675796269940465364119119981958068981225709209151374330628897225970384542614269323933628704494654451697066695582814030053681320035354219614956636634795579119407367395399072793432747731002418810676876916028527775771221651597689398463417292594354331845905511170465270136572643257617942882230723947846591356668865552313972480772276953603634130441611755756024485269172471748914782379977907132245575666807635732788865562573197780704438165124459045782989853814131848422559195278378214026091250423979752943061033072053417252214958373265067264350541275394345283887692209714643251637021629319637786128789652459303285163684940909431862957751374059484448967286970225504715527210450665913861868186475683737056311159199083664362576178793532854102808921820082101230213127641881533502273421411241802354847092262005886562765405580511666841309429896366771962222458124089896631045632216340041728453331243705301732844577691198941755167842372325164975768161532568195691271200361163444708506184058286215611390014168212979451595917945233356366002621488035318418783370254948634707098020606926640732349475081693363108969439067668890377183531722058931812187752612249213144058232257748294466500364705412509041077619684656239517133671773849523768303700179697464353465177505898550643332616331071885506756341624101570029700901327562498877931833297363993056075206863033167115704819549333026002993473844605578347356316598455417423713011005093024215124314300811868926558042181696127801343269845198319499618660432806055634247090658050543649208276769258580582081938150041510786748004305570068075474478234347899140541928087874221959342062382834800971289019529359444658160257237062745054647588379627335670519060091054768622837319921302592640697602251116891305891057560421817788859978951790214535122229055872579092038518539440241991699169242968182194872529763816573540266576157891622767603321768736002280458319816882537667877517666304102422518314283506783809835003157217340378582079026517444890290261187793532847201909858400853323233633161775008025806061735415072269304600804816755199500739818762158831149241773454461200157053511956313237186728651612711944614618250650046161280205868072465238265951847977195331834901553061416605899161936921324058050473834838877825695172964884089383815331579739493996757369281909948772927121501094649810069799623408277137240945796191354490101057125909857291430166508649294464046124092747916335124673224312101264007202652922489869264701306798581340354871084324611547873203477340213036435409732180535130206003903756571065907741695758030944012334544620469440862130715714206814118498844671688752858311338652922426331615645762963409062309323623159896369752693874446304211072938287530022783492893334407515578898164172788835870184262111601930457450362624934395509696915934758583748443339119013079282472153122588269574505688137100580230466003832146391898316823047866694089215580190590061732695711659742306177356642405374831490116382645294671854384689573595312384273542415972587243106369200061219046610763124306559145665493399664482122940410536525700304711709204439900573066427777994934890331956540149591358933598343065910441705461378159264314383973482765349443742407105683657545687043990458820883009396906037698372339280229596534175129722731149333513813188703189056983789422748721215971845481501715366912351390862223562135459989941113853510862177172989549681124349417434848160267048807698436200755474956062267289027919660325738247649637103302533127266695151579379251488671921694933689862743438788660829643768239550624586140193810512879674820340126786064319037803261890709458797925582090045400382024814970143055457542923921805661648936267654142736411741870126206247596668093964526684536420996197416565338804163089353746378455671482556163863238432584766996605991831360215010386456158817209460680419413674898302399095898694920903375927732766274095749641125805389409038102295787260964671648481567436889145686216445098865564630249931445287731086171029339634882611172394951412243074777827991175468586524678089465616695377629099442331064707466418831746101078789064082465970686131308943152789891558238541392506279444812740674542616586091677799250393561117054309666823462815805552094986905817738978039867116392401015386423559533940338379197638993285933351967181169349318221366177949885614224883449060845184643158753807459116504460908490242794924452646555792621348015903294411288698326920650714669559251068250563549369157671669287549561124639405080535514199026370761371942942071452289227521905624781558665542312580691146088206568065368188756608880495151333551526261735746672823776389542985571342227312740923037683500188330966348015069935663709843008706134287781123928796725403364241338665940903027520595408850800942993820327928606795466953380013660506163274532659962543092949026022641480411016495774252257173239070806637281392827668648618585893970350935025296105620305167885419905884252352976899138389787251207614060770539944624969686116684551546834870622069996075446567237564152656239810670497312065756089091426128003967308443013137048292581181344412688336702804628673326530476664099666516484232262997486983180158410404692195120140860909081476164138386922347480881440222845543507429224665793607908320123167307191659995178625976554262854175999976552199496488839732469238594540954016156796367109062740140652819469596280108005596888458636529377982107445912497292926115733178693805167815166526807554219655332070407062398064673269394896019370060465594448700542368826752269221045284054439611011455584639047500102662657770638283242055725873916266722434679205755344352693781446169256395625219138534447683654203752346865412452505422722023075929319611648916787049443686197066003350644116864360327293598011488724021956882280341240336172742825927033250502845413848071056990678083039901160807830075369372246115529709785034408792021614345987047977655280121059161797956609097584376579103025936499096941521557567593640995097231255360031564784070123767477996684479610808065334595457397292714349017476071039869482256940204254474967811953920464341021070421915598605797493530131214585394713767537430125922974494406146901033354253091407833287367801041557996470987717835184409943733645796675521084770800077991987491136407337826291362901899864384554059688085591646281440372735878199998897202279921554902044189546042729694906655931224440382326961673916523332186522637163643298299914288841121469356397668367410896101182822416026014038746421759691887761678410674210273795029487942525489446656224700320664863944597789274104508456262322946266111145374997196030963144005532835697103740846114294468546546484988479429564843711884097906248527749941746083045296034394942836145386968006601099130896430185586314229450851341067903194853759277144485927908700238559226697050189095610603118025089620182628396589755269129987791631107011100482185014736922899307088568975562839536632591377639621253203156154155406056992243389907175189027933169950394071941168525699639963835641617151272292690976765096210179251677674700946643741270980008463468052398775481897051966704037006055361386845811040404302757372677382592586484183089094743568943690847101968974048506586884417543934134570730768831664171189329299313829969491948500110362884726021245461646358730839785248554152428935120222074646437971733958712258633917837978988943264767086035150648608946476712028107963743603910711050123209624528715326942817229503060399989656332136076576128496095492624735025747296866520123256211916485065899985749141885643621393256500573216246176500342429953614946653478562031783800202808535321599070096704570148559026565253830507668761313898532809767720338737410188260831144150405592204647341293606058303102804636597105456382428543448572903141258207846645652983868000998322605208077069426904210117247476979086176611584080249323621448361411029687744041592964264287815701021522251521282363480939753931619925795353078212592846565247005404756207608455600064543142234337905888873638715687913401777559496034748284217080058649910976208967923921128635218912877118627327777603091303939979000111318776661034090810718397223920233909683067052088731277478417938728377727747392732959690963681259627682916874136554259286309910318018616885108881725293625657383869148325473720427520694458277311110862743540186085589323950953651163120590608247619039518679709824046214780789115258142085254718236661730976978163703154885735631581541964801578562486667454152023782199508030778955313522592609022310205985988795536755844090431566264949251103337039510634929818214996742970410893187169201680384940778019665147680099019065236204394111616565608903411752535634603566411977795073905275909410524862244145458722017956392993578294125340928057330147860016298560426516342699816962914671042086378158750918656897584108052615540382262878368265269674535041413223979907800419059945545276257666437744236301185424418171457730673849509167616203584447848229118185816712229277752947885749473952854334222433967391131319847070831608459975358505133256101979679524693536430636516732398983595584589957157123484191590040353983149990976509988785939244318312441434550572177536639374462174982503770597901762593536330986673901206370166203445950463083412861022557189609531477107678737366731163598188165334748798557833812199708123434730821169298331647232497517094690999083405098654749901678631650675914812194549269772824896713306204401560086842554595031427084604099224157673859003313109856615298184076745679280586359036891259888301617071961017330843351496549954534220826599556935699373881625048818404059937648485373170502068696899612124043179175601330783249397067292125989089176038942634077141290368596788863395599522544101668268875054048993195622947945917042438045175586375173052480389606363846062040226190145107147643207634398621224370453098364022122203494157366470700886387487914256048977779701185138269929206261994192914858259471381080865271172994362983258004794310168499016239810585503448390112422344758850837197198305358792518502523362178413419671704835732439158477218261505343567815384683734539089047834115547523459261869564335660765962963354610338751193011155699426768106133938818449579716050168941631928770649782262334919912763366028430988925573314515768731476309029724295241174278069433495893830012728068066714081242326372476205160163088620431941741129573676108257979290448279880446726029805547109547553782513011816864928670533012058492161938398283911980985671337090988275184836926503420212663606772078702965604408827776949670543767653483514583009334979328788557367362826800752367179652128816888002878093686442384230906830987095789096695816166550584785960446279754929029920549710593824488750184516472005615970538257587419667307526759966797177090424039905000530758460868444418385206014418912628169525451510614028512645999430063879024214276342073407161909112074759394031124455605965431108649416392119968370277909597069486039718719785597790551794460345712034806189029683454789886688537882059706690635756177577215672164914546870611143962757687413291080679478278228075732297428517488256244156841173951649234060194846468478623042839905656168409780551012941140384312954065261183887265977611255500568971260331598579794070124423924706126576316019463989583422588385529303829270170099441332988506805868726928561446462604093536451426595003046403782900266447902642197065903244623841598356955626270576416827334816096052020711594696949099213664292410909671430791140221739263732770728837993806487216631398599804757365411329719060357918552952030181442424802751623891857686815785731733364573545754070241518991938153098721263043297574999980201174847206313454642171699500996298631852528670963553850812186164331406459149162940319883509257696404589128240019264795673215003531236377962060020800958567883581147155545071590597998487722344456306140320889506511108368552643171017749285354743464012148917652973356178853432354875853789515141987640585017939115219397519391183835143915868249006895391090210235641531484988666822897698459248252336805296952196665144168330771195127152754435789670133463018801391131865307529899057621664126556117812278189270882853191059051444077481958218628615358278401655716494792940695813661698867387986297879951911894695448457981049506293823315833258715550440024739726883586107718379978813336933847271638367517173020102459729274702622211838129176754925934670937911600094716861354372987706487487914989266601352260425768646861169592516250466061193087174764907017117986299247436156277413119587686362975870856057857031044110301021579992347494543479088397662446922866518902855067182426908900074981968296791663301165724909832812381128877170519363701753811492869137499514528862074878285810497435758040923538224332504288457798905926358308561932348918256491214548400898631409419193934884359419682539503026424356996874114387385060040499563897849737261934977514560395420434502010959732791096907542456599279757193563000319830133078360478768442421342386622984685664964842016384320455452438820536101141723141552653961999907333613669987530930756937969082714057601719022791522722238983316214795547957982686134092058017448616026357239225924143099365696764162482885373689854570249160313169622717783310299584070228968135001237939450945356203963410053169474878438496284560460428599079390842078159478636832754768245674559727765179350890709254201892948630716891782441526191977287464793756104768363137654146235067490807024731091332749803438555172466415910012543022632807244151207087451284412801235409346146330445107552317425436886506775576809985042107473608658150172538153877627249682196965353604837156168525739234628587144003203154453293614053298702745496142217054836621070625481875947511796603671254807913839801374894240999142803959630355499051771707091468013020410152451069738185039453026457874971676152506978564544394197857729137731319908494288162811562320266117361801108779491803398777112975206221481738679272203664090512211511466457536315350365465562982907964725507345206556972781842915737405549738792637453453352798032172634073231212287860709305681035344234593145947077561049360122234451596206321763348103639374572512423525951363147056797791765833915234287136305696446872124991091939295898696988994661767236035594490252724025097420742751756961075410626619716466189138834323926250940028796977103074867624440344883346011314595828755175036557008565107459010409266323367922608694651973482546425743396882060653289887563201967151592131900926207564798297126134557811098011316194395537250719493400553974932817361428265298903267110478099757177902060267225607151230573517455255218842712151647068887676023364377230795803700890755943836755248065628035142996741605961159489927220842198527482399817970312247354573073259911775045107192035795633627658232934141407949260663266312830781638480167221382906331127167975254189128654093094057545084708824339284912139995841406821472101980521238230293183363484599297410720783197094220528576291502044984578359158834715090616290976274278165014147495975793367853224416345292604739220580437851857780381415677701150597774089317053855303594554127760750844366087238152323426397215253459970659602919021695175709908728194326369717495996231799285273197789331197342673766923416535784536439887075974435565741585497995181694295369378531218675259074931799006885617607884145822612740011249075719504440623700481335107520067170838196899529454827665545613174442983664133049985456466906150456468956117018351406712904742139812132880791471745629407498772265543640175322443709848006626433957994273605322263321397694153932673358765342213872183436963231077098413784050358617203217369814399028316363978817920959707967106204814700166414276184194172569832282264130143264278437695669253996355270033713877506015966566560071509987217712888328580114673604201219552051349804591020931055538480452717002433683347395778323108001923129281832204024002824906854095235033889382482178138661850921712809901664653757274917411587085621460432557182560209660699009361469228594537116686054515168131059303698821742953438544169633622634619708034306354677337005018328867738574017291019752237583773769106520870750333590450613088814635019499436657021296454330393862914436172189865934516318560729218132860376893821748081360660574608249812386508635389129991885667717666395336075815429007678294652432946549511822126379824835480178517131755710812193178830618462547497426802769776436149464833466723128414884931437544571176746358147562546287508841709520551561059922417294394643836312925400510511964329619440533916665771600992133061648475045475660087537383559963898336472815414527775741888051116538400879836201966347624881163731330556381816161329665821525776156604821273008309536464507279561411741791471560084482379154476917784859873357308442318005456407649602260732864289142692811202109879552411723552135940054520723620660847677984967651697873015554818694448786862764825792265057298127422717726832376054140661669260717830804242606935635095266176362996289459133523218500025007930313886548796988337457968733800498514196753014969237445695500595090089432820155529915918780170126665059570362481163998168391503618636823631231579990452956393905793638729054957374255622072776852249588892431145010481452189093929252106237691770879991221083388654586455258884690599262337543545727593221621766372909097662492591860548924455819872375207292685576260747568100332875916397422177428307991076944730937375203662309221864231923919167940755208854151422310543768576332237571499154481155692196230093896256055830727603936336124562166219699826527900758381854028313673677314638083216729935230525164698539665465937953071818175361962478468734755223858301973213778344008949022865879277553090380659411519329104884563385901593457586638874070637785380765468642047408689257679970128723680267634652229657993400170218738182380322034646191129451223498581086767444568358007935406995774347851496584050742952084793296689633387597537140483072802583239024982319449123006677752455542731430781559429815251601588365020962912224527339433240272809220819212231809275666393835957154722939201096467774182936805282230237201819132597956280667307180564227283355497225750290068877411503085231383052640700461562059550159229538489542266889996528666293071942239415026009443802552961911981245786061364649263426729743314364989325604228588676569076988940448996941240974860975508487113952598013172471529281277979087805867167343024328470723289905258267806997337669421997273546609574670034180213741884507200761829829716810317499103176302399093458777717051369488026356445827720229468074982593305663523489928736124113303620648542719066494033949087257432356487124909529261211005499815243244884752730732046044787917449470521379613616872403670778385390489317579898750455946998123597364173533398106288328492567012276185455529291622095254597974288532101302564340622697944900339447505740280424232611679175746498668717000232520495978345004776823388932422825671837313759556031767616074267811964787811683755590058422250305482066665608861560063445813052177070548631985843175808676519588607531655262218301133213316049927748035677908297867216048960127268431273615020573139258207022255650916534340894530631205643087082669006116314314631421532369937675792036174550595132762089093990661333613523250795268465196898627323041475699072965844404760777906367386545451342243570180325157353713476960731648477806761204375435157642480891655220903608984002687375245683882498673670921206245695298194508318510809486082532727905240505486200888313578502622079923801007438115294452711785751357519297784601689291076187273660981132347849732129341174017276179170273057897289176315370606041801419013923639955320532479961830434863905063140827383938784115813539271246940610030500430223839065861856442454183509095403141585681574052621362191258951888404202895293735831850621412311887377399460594135128460573512382480729733665009280912729407815100907099404263542382752166105743989247048945905967958113056078542398313698263668628564281516429316535029121247709977439089877874774072927025014583092636656090283226859274723094523943304858965252053168197337153856781161297268895329379427980452871868302366759215645665951370084936160431144108392278027586213841783426573409116867690797179313749402778080677107355887816096237877696535469782912217205364392104210147083541567332135804238815953754052735824414287620570619725807351969528711960778355268087625524473807578665912163000191137707389807408980808538615172072590845586664288635209684332080778623514639448770856692016607576546517568076304601439920902136314712827198128515978508491760787638319657069703446715003600677433295092170564971707139517245537331712642429052301458845503232936176345609490662414973441341653411142357644791519938083046623282641331498082994498359409828156604793258896186318632138604393506315222538451741391394633885376958035048699821954872283000574614539700055833412754668617362733675959560212497133343314837461285443004507843877940985372425343875541512051203367702316597378559840062115366249565798170206961342897811556360516623117811719969318963162224725748475286648365752634649991108103626878149980998787737078231146835677273975892292983069775509386691344273314964227805216782665999165454135967630742220696216508944721079663241557974037015980556638626902669996587352354247566678380296417964023369068454024885515299384299112903529486024856761073540848071692343045929960931511389046762003428555869820996655320126859578573572230621517170941874687742670767513767271163528096496128882696424585274868978503789607149587484114635389843740770985270007412865319507292726039497730150393027651911318168126402953265417598387227584554861757931089726620765796641849378678840770317424348076461813679614829561813964893247985619266253639921794327489418269837555715301109729408002247912201226155234306040626887851735881204053230407036688132734366943371286306394160632500716047266689341954833617767245869607055000878581906967369396913680889008308098130937018463978815443087201346291910129267407568510822201739046402415263232499924871255312981299697391325047975405540586236499664286190404318714417555125889186271526538166657201261968767730749157753347116797552861091597528344860795123565416377159649892570564111413945722606505419940399191194450591816163203375455166823433992992411000045768806059163995965078230863893905293314164779394752042963948623543532089232051333194105410509977363917771513255036058632309317854102604300714854781605119368362991719187753768699575092748563799989848787786707363316542332132548011252707630080531580263030740409586505769774017794597385477269151737389476474639934870677725414869371262708257373215829773751297278982745147269621894255075961918940854656734886141326002539600484969469452973315548516278108322169261970874944900452674085319671973497199382067447440645020192550679247185034315200282947031175303225018932372952918398107488499521827056734456569604100146620893902144264852076565881559497752026068227722246509150260653030405985550694872958603031200844998853588256181837851212825510120036970255380294822183845458729424855712410257967135227384857766758670640833792656382888214792663736722433745908725365674744689985370148997011287874479173157717637528582435340683571896864453067348556602215145630419681891851940273540266292412165461188166597374397157276142061590091670491077614037813364278221801540319487922608358744898936085851749261206759110816484486322105180644312217799655937542253476614075280466900387340016378786510838456020987889107550527676992887164922899869832759919108853470292949591231030819460726971941659086803009600232921218010544854525513172730648994812989452299416398887180700940107704257005362533099317809565690267091625936649962450988843844026599212900343695869185321753197855750846720610906056673617380077982850283650015837156781207829206216572191462663824089925126332421799859892758423636274804260196350476726344712264824902121535432158458589713446126387747689135142864059539526729411545755609264719849938126520072059861425482367762272279805684063866997591159409054858907163840478679383908660355466734831723783833098430755889181279462283010379055719024415601656995097411300474798121622921219823494667575604548161147442245171098795278458505261240735965897790010519482311518012094150346766448275491749043493126401292134567930541805510424817197225507967977163076828326207473368203033628462863592039786306994304984542705752361737912168396458709156862171362507224546796402667657322627436369692283261179531443406827337838612929651903826550691402299964478672017407401955875626607340656747681648600161332426714300879345611231878203181846490621042425132297286004177700178325913278060275581974284249046699075738080224264501089683002810820755319608755652332339804118257119165601593070816998379106065983121402985458202911484367545008228442556139318235494988333893212856407868613295869533303376444203795208739299678207263543740831264350340739175346509746005430806522676226992102107809545637808826758014296431031131020138049671163735861359695918112014249910110534318532151779566044978966157721735894232269964971148885195331743588411617879843770834133579738477782447992854321670085496985542917238029765757138297500076380255712591839377073863768209481669457442286186544343222779801689485999000814789649453034333404401745098353016506247021128719403889203004494228083310457300554432709028851469519485793126682355450763350521527784992741830143332218977042401049012505451537711937002166801345932493529430750606063224062041469857128935413935903531712198075264879697608538306820230403783934609574590060643146242425085394113237120929008851144558988330272478671770442742316603817091689279698588580974650314421758481521243370830087650570511493311517785343280040525011034071931222875047813159617554617518689711069429656150767186733689739570812728236109263107366088460359296996973099239759393119729811326619978737729873153669616656322655109248215115775473626471943924296491440648689753202253319132493730293348355239659884907746996145601295183527167573820836672639512544525007198172679194032865540755184348990749182759276774401620744289660181316522987864883721094434617140339688382673365991655172631005637758873349874610556761515231254620101278671274111393291444464947306725563416462912535983331835133592875992677267601984954006145706114976507630352106567394080117151308855125025531490345018153752234285447459758216445542625642203438679836821119297170415114194491809325022903563187640135197342402126955261932820628658238378442995374692745961798635944912179867387455456059850199065632938525277926668830142686755117149450724358117320560821495818518726865795720995197115138851149080769996815150637558307291123939657588782818081045007843895039768097009333685547312985046849830652611439340962227342816088130512158750830294254827216040123181887679739156759204845707548907704194262738438119924758031260676568320630746780024041770512010459649096422296416747481733742328954676200701250971297952680896286100433686447002756121347212771718340170382181921123517686904560293097352197976883309126340965631169986052597263413820300898570969732708958850324841270813381962554919639563521478660711663536673850631354697304501940413949399387673237188101303631999270166161110063136903885373942976372116780168261900157924412235602122209783624465882322711965985093176903563355388203552345325904369149443699509853136341270088985204192173100379056543248228649131652982747817511904371339671642954816503700807033322519802089389741312868483307871983134490429015601720164451776296596844827268818753930572802791258834208014206721774418112867836639455828004463240401764855909268637113096104309665096757252061035022520086620859003927862947761673010675171716426312167944546713110050038725257002127874400873682049857565021537461631799319030627450672314374778630339600287728010578028260760692574678139018022723842661981134413820311068977214646340196777831817361301392519271624785585278394195347360681151443623037883303414639458313276297344871440122110603306476821188193469386632322585763039293818129057765555370164972330036788729037771154674254221700115945272623765079560884303989668717583217215450131463716184600458238468147182596670485077261623219800805267058787505008107213451970062089498484320584883987724826204142459180129456525269347900585200979376226265548691037128882279685544233005047484990933178904587883556545909637139285235959332282502158747299832082759315712825570884810262103144286702153036631164396989098997540865597463929500042258941080614705577759765349402442001360319453503421350933132357325704019851425395065286433583795936362990038851680263128154799460084643591918773800789567825787956604383123426674295289039286892657980589704680073756923821529162632248556493167639804925278929614106834814629151015019964304973734001956913223021137007801456565726411097892047699281692262645189563226685200999198381599030478784827230806714927329854279971702295007534512302210619658833950209018503415660485031837480722399479643608049748006702338695046720218391597462633933986438482886970439719584900521843235193766757869410843102624084728882732476364063187918254590878979085472693676772735602515248613798074617786047883652070786777416976740751220450459108691004708117002814792998905931769064498343963104963593326153974628355742458661139337344837291338279976138407171805709564264534261684801555647115609828885461970652809507023599261903817488591433305800028847667706548547410701341074813239009878316421873215862038286558658819246160889055451011605268557022495326829492074012069196847459408312413247418204089245099874955802578167176997399807561706503368374056215961125012495154719005780544726169061955056617467776512391431393108851094888524355485668141544876638294829026708420953237231343710408647985623942099599366672300587876816566328243322223094765668464952979768182852602282334453461292956519365684633057998915627597268716774553380405649687387316943996788883584408742211141692175653040013099186779739106899371546444104591496640025172883758812635810917775922504900285917827437464162262575426192671430811009866315385497197668090560949652021596920318630961884836442106735850947359920143185147691964913250101990160303463814025140635014647841426842866879375619791740721794270980370505100762197370638562355091217141432667475719385051366909281586036150968295227223019926971749903722728645678111031992299878820355937143999987101879100402807240840720599404876629963623328833099003646177686919229625316825892121457603938533165649806378374051645328984670099327435355037501870718678225228824719995756826636436434801113695668108936418395108506923859832490410811512198151896425904554540422564912198065390082095418418879164477539005654274010926495421467095475908800792982061051374096429329093764297739521450881351293314105088003187923190907927655085046348081040905561129110141052541578153905768075447901637483131459850692274274242066302272491439323856523280994113094728469544487787805312754141057812433552138093776661369777389285903125571551601366065908467432274150653815341044058375564147891066903390879960261386062834265946675126273419423581267669473035263685289747422023936849922651004876818477226965819593180910862939654496877037622358777317962631194940099212931297701221321347334493927032273234990243108949481322406006188148226238016395957746089665472612734398865758248552620836500019157415941998784866722764881526827707557255389203258895381647845584746874023161485840383816628659028600168058349620698604776618784948389274168976571120092314600807264988323448864161851634155016909584765997227750916453304164704525426063034031252794637200828319541619375138333811796746431436584412045409578214193363561777673166587288179042723298115358055939804195152294758394029337710638758584191648366862120747324328224879540796483805700303320583110385725973397863141972335590505318884752069495144967742864778951270696652546756246226457672213598071742180582855002455259622922468617516954033757331775907038506592255978337783347728089437432662085686623618688337624309701865082715962831506415238095219544889494087275976772713503300979428373729618944943496011078270427571437678826246256316527384426341849459123068373158713972781099508993671950171212291355215039835318622416027491470113838298272258831386114529137814396837198153971316240161751722086934214459187603127342764379457872278186524350693581785041566132548766339607075066258987208796224936092788248042794350093328008673326754646431137659805239407127359423836120732811063032423116841081778308638357516116565709625953299606363780489571300564691429717016070567233061752690871886474762977203842145523566868245579696121349022851767349431195277777662157987560686207225651188146751991148864648497793642142224277734188181039573538189599376650967170715278721208055751456383251990034943594907258626771587914370885320057488209860776052435569108762737555631996640321739492466111513584844716275021779674811385071549494327860121349631697378918126482793698333502216512509300583400159037824812775231038957954399585302247273768228680350985756222008243489730102317866797908939302252655867844814510540015823817262300572475282789705010138373630157926965818657299901116012326660695290814591505953527321736695958886555826172908251534566678912362925765022616649956292749530842353636610276667190391310612839846301885188145300784263527863900833658531850639701180285722446133013306608218527050528901824701681007215089097274327421304239896848291106576876717516617243256320159053487015340164448145385166336721952641983294662263054830593723296352426067491308667563863987591559837297303881646872351254744211686632205421546518909596217384234495061582894502125319694406432443774668380508482988871607799170481019292903850972929911814897122287385609084837088644034341108276304940529897301778462865647923799964739007779064809907322403821509603904212376375564103172772828971466925485196028308531287045325302105860533192998812327701591089244243241092501489637082415615596319850976529150404819046561140162304568231649670368194121588812409555186330302253220698071644164471015304475258578011181876597200881405313523193750403765925419697848053292976950752645682557560644713653775704891487010206279768975691907059443717133944594420694673936747531822359673137348145162287387885338674235401417624401584099704100438425987505151389980349785351715679672427630010122458958488533050952159989691848687756655300787820882348610758664472363754354004899366634131128303059627323118440345708008492418909915731894144951414153160690574701259828365266831252286757406615622242411682197053383767973652048768532830745126589931241687555374997557597270888692751964538946501752353599369569931711331472031799945871458206490502005326193395939554399706261988152194754759292844814530456941597788059966903339071495121554577335742481670910033876801229194316889359867208969389801653385484282722516193306160481511948175862925086580008416092006259891073060760377315773951376860529949571416974984958042658824955266570493512388605158356293213495808614186199808475627367871131687572531596255536894342744155970153613117132989718036148840034302811005765355408739758753872304243920100112859747673791809784656348235958583969191370346340569540762802731988913033657656260813864694423894093907424484812757993492589625542711699179993141389915103374959039032887672119275868076869160506379646488821670838700492284006576907767743387305764879958000225922646592232119936856416251175394246111747379444563706387883012010150554832698336924864069405898331852683572503083021748250460903709790119692386627083547843146514597471159798082991123594404106213953459249368698412252977956366393835704821385003065725512223016067928579030860487250031352500992816461802539569952728966000118527800397145470630316717484602636218666541247104755254432546200617391216976882368795459065214011556894968087380540936956983860188174585574420088312516280720746693835074088660418231379113044423104832461746529706894069536871186444512830928612950789304533641024518498087254179820322359622366889507772335791300645173606700913851697469882668892336365510194436259675331912910906434515407751893123368891668280288112786277308492120821818184133389920379442747000000788479918676205817567515548492965337660550396112096067675325527783498437853893049357283608013375417598079747198132872395342450039428226881877474757503006460827909304239373167441971811823767649614471644295611457249586065612144753249110499214580426669193704241281902246226910838858886101485666872397363263262497574177135125296008730066440336202841364974445772249502814844886009505044352822197792672895606922474003981119479340958439286957277058165704887566213045484810300234932798851113560432433413292741269787170904192092534400760578322807533756487838448205220804131840402010586521421144091303121943811331126855983814785269202957436140832061844092755297166943939018850659470524185185395939328079872280461808855541066686368070148200759397873584248330208701095736767914394439128570168367099935874899422585177672516735803747593601793939070254761594340340669935028391448430871931451809449039164163455143655313770160503585570842790997109746863906369706894500035252844585448293323061371117340634995198342400030910560820380401436069216760783594296783862042981630279426525298010271763200197300344732581335462906681491889460651306553053811436571410789359160418989322797846599874872705798945239208926784604201288162994011661789822796574265556866907657362275037818787164869063256459185367913731827491880608342491657856011645774119107402695307255715230692321530265760982167300525180874212958115181807968061815313437054209338551016923953265454360639918565736105504063471667726072663053442831471994419118084336648083456702683053889348801528457499384099001409784190915309938907950544946930229102821366346661295590379808898965783262138563004639781504059870669981719829345660978639419409247229658037575572134452362685115954184368434962613251790767165990270595019820164108883304696650987848908267153926909694199539603399543376548125718375571745699524098812178391113622597513747432087472919103033586910634173897153555428883606085878104381470397117928506966454842786314985380820245651672291281699217738274895382923565763672503135478888000090191572849015275809368153884519460344140059044179783704308365129647241973856128212954356174481418445064648646131277058891106871488978036904336849933135726267741103878779836598443689022421312353785788035566526518142805823752489677857794131518425797176580692659035514127387630858478950838140289043205750081014716140255675518615651600089259415068400527954771274071265805911476232577744595161089462292511132621711343861279404487500864523149211331897212535074018660491450879682320229028714291539279172931583717706584177641796765672011573143296379940764568259303955314369665633970967467489419894722445402539213865023763031786387083405781825309706228831521922713588572814887561628090360339594418078567039482143198373976556328899626403338905888866688192959470849286031103354829736893779869746885200646020206598637144817027152286284032097693120701279478669346320762495578644182113563135721841729973620764007628093125941028938042935536688060689752872626990126505189188345113680273437769468883188994687284363137633639877473986017820627720297139343070519469854558049049047477829113949608727198943440407758427318620110119718411265803844702326446529697084526258630787672338855551783193448504501962646994256263852796770285266125714752098251141377358854325838712686954395108433125783554037759842678010081627866614636803636948433368778062027416738161974372971395536409852684850359414448802953569666985752989829198096620387294938042678488187801614696134475842886389438471248287604729576750547209989616598138933233874144937092884242362060964687941678317748486836200645889684083059394056160877949790078644345693188031473519802153132474378178560991282446727041553715572243962170951950292217760367402508268240574851644734193013554005068226224492570964931584660569418670413404419793826475426682152850895111055097838278852878449665398087491779406388206343299040063921651775123732721651723530044098260119452989470498452518948140887283807446171303724890555123335568362516461019832644665469246391093537660198602458158173303476685733821620830930416843238867059514527672792211679868039564038723537540291250115290007457794237425251767208860640840428567176450925124603090939996514729768961458829660412436074474286601607247656296188945811214402836696840296227321539717726563160749982612309025747376877401337712183683666346752860288561260780278178796553752129924369210793270614401934412077285745205876362592136896515139771130962933383246448501099173381276233948577079215865366162670288078578483405917637868324074459636188894305212819806731129407357066210682311016527301441112650815540865239787206223336921213309666271612454242144332121066337229605545508316343211338103231558434650143028674782599428413330763519372635130280054322711853184920135815053865515734974776568801530702570832851358911414645923101435558574645203394750481814751779682736218699020943253954034926725853683700588985002413133299513082598459147246205171743387377276708401424257019403123768770936159583324306302068614934753612989074504873925334027497300826206911677604516451993489483110625333186492444863699140203271470906825503930147367170571727191993138844620588343433341478463846563758209990692074502723370269723527235446673516398886190270970483677912862092496375095649716257565222037620114171789449345739477337528053337030204060147072106125689036681549672601060626828159056966596222823347303066736593322477652496226680548399312470547949850156640973560402961312427909003818011108480128315689046745997915913475847512540421997279086579386073845695252352113694309126949509799046824765829756473681219645686258676511258620836418217432752433376374812963215698074913235716243206733262549885594181879877188034043384720690329961103295079846433421866571586799757095055609696846376350255263191513050437072180707771534414368685623212433414296670599073429537056829603735326493234453114649585726485595597872055587247089406802475634159775914020801063659752486874599832651120844029136236499717965128024269101944590726610677196901355396428143163276197155187568494081602834994186972234768193397163113407888659491234632256496899178921460893569903362849765124130573548840642859753240227209862647779920028718320541939664256419083690788608230150330955422439390348661781142038029665709081983349361065413604581680556654787129610078126214486390029280105947001248400467193375422398353691922789799626970810427073514802246333852669726891287715100486232969030648968024274386966622912500225915117680876230259038709366759888041404474104429259350192848877398495151798216039372713945134746137101959451755122929659707550656087025383330589721909702297479896484583919024440407456538408106730255183746570514320776361111824474537434274087153329127438130682130933873832671327708397503696163087196675030465715249632697933162272949220649716431688696388783814969220092641658920667880381557758545266259935046088339005741319355426378404466516998794769447628635328326925473998054229872781889144989296384627268829957930689331135502512490334867392433880678991063189685387193874801139035955180088964648566851640043621580228280627013803962038891430316941037747137050281252274981297217972683558828917911027271477434992014173767324702098142649496046778968323402371940751696183920661252193335417407871788300396588688554821423038099436826742455456435796337258607794857837564234569295076866832950435346508381506832014393327658114772873310217760148596486204663894573102506915709008427911281110344805669532518843010504115568023393000564434067951894789414652477260272920849497492964585086914616866732697393049492559750627515265531197809937612179233366890933335758217005612588317394579729524300259670106615674844516744435638630409957649768416588719125049194921614250076273402982306008166190585294540244815314270120589987269674599083210987326060410324053185881688092548435579656218104860690185425933796042708984015496467877082700315437446965236827628474481807996571321227406334410891808069949269405380832131734934955860112330799632823125234234247110704507548051708762332137035004547526407432782478447640049875179767713559206433231639872576427861761833475603193540392286809854480761898221180899027115994682220743041700520683990598184722876272663698932561616985551744883861093897892757268761684715836731618743706221158396435877908074039138846734408030774988566804535276009570449695036180628070947378023658623615290987673839986314773733418932093620309845232710316953929458036862628355475743681000856291835852663956072817162784717649431163553844615345653522209835128707404196613940912099633247868067991410380569276236173380338239287590971362535611692511370332588542099432256092302230197834452884215333779393871346864512083910365884670832234894211741900231900988581860134945331086288070490392241320968975135454046490763793748367083014408946675505197755107918080105782158746793676161992355063395019975148878086499223340066918508138996260207569538689361099380531893474052900606248141232568915283950571952712945604862529781818727650679206265183056154187664547632771474626343109365202912692202671926309947289965511100591363822426489029753699496918462170217518440791841051081489430488518540393606198197499189577816977541835473646991628421930242478575050433495313434201142598029054309792507684696931586611068009216693390549692108625180475960723952229933509074711420788597972076591191218290537783041691670338057912446903118529924896299386556610587835375309705326665956212479653990476436481565162859098417347292615630154724283379998415760071542362445737764437790760319529024641761664575429105625710827101191450238413823909026307995667488188185696828301400224333573660882503518318064644036257827996019776347717805481956136219363055692559110419819980881076871492010904695716526941622179441528986728755203346958969061589444985676987134441772435008050925941546106474777774412500621920718322902483664408874117792866806799789315471608268931578110214508186123482472110680416357115371630713959169015722667801464565545600006959429947039708646294589296681090684773473722728810297781743849551853031920416814532533114531205524864824214313123167866422695655406443006962331425329945719363549209913904971379098415441975818899424841784461472042475798469477920365213664828876885135774233034787480919503774462394131003848334796579915481325173121836440929529095719182359051444572421377288379480862121844660446329108482987886894904620055406641548737769689957214052326081308179887062021877978533301447334242854882883069352237237263485678319547725509722710723774429049492372957293085182030478279773877827874649357683572623031824500506904755086530199521503609931022585687761881145821674270804621326868691742713898732471194447058182062649119128821053879087595857076866784525257454198038509873482839695069660088000697288779669601667679834073725102063114308728334438353010724425377484626632215410559610077854093578373006238044478839345326973981129240711372391849507545298191693961480981046670134586691798245293753370416772126472480258825654302271890855670744170891107835784528556943694248797079408370158287970925071233180324018381130083935455803952200911524754147745311377197730331731399932505025979251972407747907402255488112888982543356902997431672081215472530926029149769865736260843653429990165474402517263410205481493571682940131343592697241062074064800458651643842168599466914092615098401463129782913480795082844707805752635682670809818118713038613095498185779573148440355950762545675161984185415963112212075992624490518808069200972751405839097251952073259564888549975656832809089710988211522428016853759421646487672208748498613959050544502486070147666240019859279784996635241536603262192358335059233839260658487383100395919485840286291077823210498048295519101962592960841116198472141007705361811432918906517106397237409677634886018844108146633772415054724727187262090825432463051852550361647226101113316757906347110359242035989142340611356311997601370280020551059288721417740539607106331455919072585517950397543882828857892011816886941817592137862143964363549109643283991404297891791647217111384156688110812205809128250596090066128068030043595470582498779957186896470578289769430097042949444376232711081113532463575644993106669422405382039484062627941634473638781618975461526942537686700086612223196981686682323167706422200459594489507318715199989700053145672929911297470444284189560679710216117921426876189472290816764337198613108744237500627375800417973368807003556038593576873945092537703346732925616154454069128729634562017321384157799319928173159410539493282720025197519368897937795450378010608169546700973950200058507122657255472283769861606521751089233766523177063770872867547195457498681641412825510250400873360815133547764831576492666751060808834077689887433467465475869383052365243570837489676591457441796142674465717192004663431646095251781800189718952340391597590935507154429614858088739599578499904494266292822443856085273201328557913495367090886473896428229888621690085877759160921317971916968870514585227373996885471093514197658959521435789657949451794872210923188849536790758119449419319759526715305133780496001072196149756883834818151314509387197460505926284456987707007463442599914121355345336089498775883347876318123250247854588946938747929005403173329186518709448775554165771538576270726679186352566540472908856910375826473333812117449551100412839473558628030508674767691690829603166321935186329710802711429380599671709037610699012858360754562265799465485376708104925136085999651856572275417243199682603362398156880199969157520156704234885397931858729076251122085019660556403661688815346468646500230291691754613735032206329262620396991693468197820794035172660623383154447211823546581809023767207299031216239636151954058609835153237364892973657227810572594861363928528254527998310873515028660053044216264381204835145946998282320866099717226401976728824567880709016379148470577497761430286341442355534303210331381665594211498405744163829441520595121744203975861953246162675543913117085408162643054757889048610475043241634254991605947206823543165299336487334390737770371719362894635666031090338887195637999441749837718074803719314622398880503612821409757708594151328596295866240522689172184988351377029774862161665398967743014580319362815905650610346349637022662055815010679567503324716284738057410918762023013104657965672284640035641793585561005266678527686931454029767653218004522647356974265484822992624236565362518984650637924623773500399023366334098805532345072470820676939958711613031142578525030651765349523388722354188541204673023358513531655104980045695932514130080375908667408126032626136203347771492208064444985495966714663828191558833001601746122070122902619419581413874048569413137526262927210859750964956067905639353749617178797077358188292117478062922531265117929583240339761199749807301953477753550179237281434911374500046551488858406404836734951238943923612915005420717557753410441716280358407168263833044425518639975019375676507595554317321394509670773067779141596034265258620444742881746767888008202988701426180503794065782062195727308588514480154738420400925136668671703371441465354765163401691701516703021218912790421988843240667155586459499050450161963891632780752409017821125825757530108676408231151521828826859294308075247983680853093460641607536484501145037005655549744174572899853400633512103560326097999744722877447627535774916255117494884494074926683860749820832299335166792695335141853492625135269634571475606099375086577098734469675365913713126257381074844127957104847891933901386068425883299421195190233339834535792041531039844107768356187448566516142377653257332114534574222387015721881315152952515888721274127966177842725874452483787269475483454133912441694899769249495294282646683967091763084196524152890660856460830566625463850986827895439739040056131957161605776146101107039776526606877108113735953845525740845486120224649589515317288056138748101040189023156052641000963674526389272491419730780091624792896024246093425368574593854150847886400287582524634456291665533449048324439085333599552987215557356732554920051666940577286979059363606640091117134769697875616595355598876241163094124777753642246082539294994538617498363190976063462951233001939216564241382593553320747601232778197102761516686237467274879047241407652653140744780315725454986217893771066167929809243869459301593556163767037149996897486981916019739545694586309693609046448872965857322533342046985283571565382789455133149929763111663629267767079676076044773945841340880294271745569938138550219314427164799566007774222686699891593603567421648810565277997540541844024926456108332472077087611025078371771946333245260163033395244691537665054084928759235667177407407705876225149128594364337856936876658848204126173595686362351184510333929316520943227450960588619947737641105002955868059810223103285193165812944311782025641140913132104784134835070083265121224190190894831000764321190052880755480772384333733476756692712642994863682228518252228316566640377986216601170161930569343755554318807153262973536766933796520604173438180719201815472145170367025794147894406391492517725702241365093336422502413909634576977241823354087103221525861024162391967674987481967442361535110555022409106942915661769412324122761829335272927817546957780654846832866040058166321665883346165620574827279102751403513679203810869852185207425365170788863076633102171410990207336366329357849046418657506688527767185146467159285451184289655197124860229690954183846773699782622493550502828513117797630400893369080618184961503645017365843696713309360698121704848130467858453345509054887469269415894376535750239146436251862906153169456233604503977202496707403269276407376941376837718944634485040907418014340880712995294041045711300673083965139018927627242005250946209735384562432904280023256926061035010771786405873683634887517527890441308678024981871074594017660824587020592185153116624434488270037506927572859842392170228754690437894068411161835272657747197745091912815000258064637378235882016012583194557782687320620883160609637782902356458637999624958326366585098565670692943537447297067038651939589977274381140667650205114177761920761318835071552640383728017469298207041001234527289567686567159282976088884218895553084574772691869428914884437600371639011985953295508023841454003903400520574810990918593475622762784277556045478342947949124317334316463453802743316032611194605354834521644357413608908157056945557485544478694107498327507062003749367520911568152544272195074806368353662905517267537365430130728471000791850576865739978647033929853765887848028191773163471909462686633610217298549607376382476150764875325224731910858732573329398072630406829339892350993655690500120582656382375551734148354105398369234955772904922298913898743173484492612656713692532154279657916398130735969860251701188862390009830056538716816740947698916091099714290114637790002580636692746876240518194548610278708011678103765254568330163895233933441578010418191544773731459881561456341071703312364139407887922733351744655669412481602475105437906913658883562273086545043971410942171462945598609063294874122987751900292468154458952735605846030442686084675553299557053660789283048824611077067044146534334788672264494332134112201458932048508727344847530344818501241915647677378638261990790461681826974338374768961135509490528034718064217600921705194177740467280675301962176296466815939815420738950857720815685848255437701938251531031899909576183555215012831239619197957764020325160411689588882147584977459181959048239536162837218399196260084681744920883462095085666399662734395414696036265313812256647466653845553419151597322360320471244853994525514721344226325829081877364617148905083625221988564647292650962826722081201244100219405823924771544130581329666433156852869993170924056596296470080389885016284869655124638961819880735344856762728380654658406477277372299652526651333006863753298450153191928942128346706832668880003864525840686240852613058654105402034174076010505709072571249729332542176417580617642885084705139183839885180875023779531625793818417493675785639097545904163338967609672306219210159617497529795009871364923695640371144270521867571515522330429917972353478785369654521405092342041665234072273200731706588894058962116603473597257995917356951362437486271158636309321591456680591965946090570456333572346953298033131335894295602910182549343621668232790880134022406553547569466462277617807103258971724394921277491777305583833450271559587120540200515502514532442946079474791300948799415639998123900991884649975285505768942683690899503399205355929226872872475884203935146321031187388608293350489671118139719251290255753074989791800063623915466691830681530634847100942612633494593693273755552610513526636444827368007918833408924934587767230074069332780804404310554824942920663622564145696208057364211033923605822117556747834592444545284267296506035356902792386999937145747082544495492335467941150350648488847491437329793345334495684598819823084100986176315659579593952895627130936901586179361946003407402135307043451490012825633149617871592373780725349843702441640403958838990864428441421408941744671588741886672388909708824560084103198047587270602679151376756111381077661683002996931291792119640065695495870091941835730410476223423522977058146614869808274023178225766641303226796941790175065783166671678376607414391078111052681110738008458858037672167443887517601864857686963357275993270282445450535886088614670689816710612865148528253839279406767228929221627354499286854240633224365700173529746331666171774616867735405913565401763646430195068079031568217957800713108134093722063486338046125596252735613477341569664918788447802845319020852774511490338826735278460599802812534793827652122974956652251498787413628442137394297377314047074170356375675367572660972092339005692848392357093719228072074264113536400191840328328731212088666015827334134973415870078350177524977661932815147606874309800649228545098376177787019348162595580459656814573307893981717714454687278102365151685913385674436124286976859765835531360713175726154097855777098568258373918545608985691814477743639756143903912781263896624317801759914078212987530969036682095597717052216545936650039707410934634142169189280487469196965919217746894221101997393398015828181182343120186973412580000155032815635616140263563666065475305379376221877928255849396020480079784768741409393281637613185703250285553146740424982087315908540824852753821138980404858666485136852377550339796540226404766765298253604797848975205178453367168264766248367754485428467593225218523925440241117695549731995165381869314563698045895027835525129717312024871492228581065275038415171116680900333802656280507698607545995003880005956135306201000439358389237114860434947974940797647440578755296653684434667056415572259888442318755811625287784864246234162866770878463761411073715775338543224816839304600010320960951622701741177169507040869074299795799321834668140132874095975580516964957609902384963173903943364897528420508451167499594190931809288108060570794128453406229476047540178977705671701881515239676672307304383406422422737873903702951632141660981646590665012418137302151260468874944476881607338720997930698241654467793762231471685011672581254297934501713708948898846640494943707728046785025471825325538594757298046138669025961613470641899692727873957077216072277355922462627899518725766777089865355829291747108235614542824298497285738595064058748201570970289626606474376706732977038156999869862208712442034173391655955149385359618753304917329922910826708510047659191430728555512957840069556770085050566599251491513870424006896444881360313400371597041252346288456651636795594791677733452432685762844533673211199850030235978048835864062930913383991219147304882640948992731030842654488549575245469503371192249683857030445860694282652747059323392071056339306864245485590704775366071129790481976082993387885172535174037671151610134744694396790879372290071691941370268990110705240715997499454131447304164234722418040809495320608757963815687673167545100638263648203975367285540647464105558575265623159393469402905941046311314263851014182180568565571707186212107947323404822092998698386230893696891391961189837690215550006304374899092577862767069489373100426610755891967535458002991394153726422041693557764151275050022554646544752684511491617553167730924718978440010830773641634206310835240526478068227796501987354697024682347448100712757496156736199205241960173196259085923816379705248097077394377735818704552147756002908614398089431170046116331147349688397735548402989171831750140973258087687890843379254665581081139396439780288983344357247792730928766800559612173736023319654193630852763571562769695821334188708328538408930811998087072026105262987472502339263856561309072066105060077672512515005036112062810767700360917635591134257830118118807429321492264454954948450642179197232148066542367937629041829556852591342567084282494939452653048178825305638519760252604172872027777775789533655818379101782939291511738654670410880018369462364690902469492589917320906548892520319422931844977004540109158277575576688889535614357573518148253783488821435774223927387381958362008163566763258345686249199591398505194445709240266099600639518095258485008146499729267491998954029953688130625605930241589362829412892905190642718914422944635188235374777715415957217811706739759772969741804709023236178854366805111206064276727621426847208965109033044735108802246458492737578763822624902498081500730952033124623474104855760965274383188304635783376360804535616677526990992994511154871922084261526728979398664015432993525861068124903965535243597990581843893571199153393965931955488519971004891432846501549134398761276085505976709556261211289108727571012782990147325082372595720611529783454183470253605107501955330890144324044764403093769649349022776159080100482400358107315430439697918897714945544835815985954929696641426908073168917950508630134898744008836066416326784700657253485491389212329126547451032116944036843207354770811074000380536511652383905211651968537275969474529402706542444762792862998060512437785615135017981732702822337376393243604547369399070457054940285133051582833023319363405923149782022765283448911894225278644740173337034543524998246636239081249549112059274223614244854476471284644449375428958086764773658240123500928873677807747236399203448692280138086507842691806845342816160876579068090691135612673651482771126377026346433262165124570874687361043412178162991659963764814578807742102280691662996552286330034297891992864598417911412003503439267671381111413897311135426847275290586982100650793333821766742283739367699488400533031095614685711470471219525818992921777003434894906540950460453582520599255577296130143394586803039359441728542608840102207907609712920506336019997812517048416456254145068461133966516998398513476630396270592398457382998097692162884014994967598936755542377780492977357166442032101290179778142211714059976167986471610089821163462783499066651109205400699179145055455546176355271913314722450470280892670652212573068658233637590915023686272973984088238713482976029187768071478978147394773151645892289974068475970000792140672843388431488098706923910305032020465613332636318699534274275252786218386052036264909335108946444080249093709980142158149833730238179042966312285258981312176689090772225054598543039501220318973518415803744295995519143864650304273600191056870314317375325088994016500056296231944505843409698828555492676833871750044151713244729715784733623946740093217635569073744805463296500206494923928656892036602149889047834312771549129305638404915018434230475083719596085976732658341212085020316560259765848255616258493656934777417992026388337028882302353929231700505712197324562226207886025029074677595329786524086764874655430851264515723406438076037236560356317750356893472836709424383958791631456038153603036012230201480050191391860200984661301125550060769539680673786118845130631788950760236433609822250322811874170342456393059513090526602513348830535110262117236625875708102090366510402590518302818382908551267219608083451688618875289115433824348093332367029846617188051268865029539161478784278291327036061110909642759879356787009938299662140090742283039654584283769040665721888981334539941470006706659086785589200453126215200619453186569250877484676643489476911253754270109546788911317434061253190014370361794153066358333455692528948660090809650120707456672265827411453618229210486652760621346467964018578119087552519560049902943686935179123496643727828866816227577135266044687518897851066009326073554249108795478655322050323869658485366608923850463253086792733577760436992169600634342211273285637124110307801717906032655508552292464144959639104196449434111681132455127033698739359496389591007722744516803902504042976724160680736914722436295384775717025424760510676403393592938133198582943177152658009616344001551960140413198372441597386076290255968425067998695325806861842601625450644524244069249550362037454112461209000539193527415536723301300575877929898303262203466413459182010015066798354638892227452564447549674993358873362660517632235893286749996381326189580463972817610067887735859677146268544513326287121401305120321477507157250041484606946046275469638959651370816823030585732753920728000978938323171620475830882491319842014287477506343960486399351124330197910288922388520095650860092121160432332821136815293547477438532142861379263432464755575304664689687547441016413947451363243651466187255802962703632950443221191721423465895228949000593176077924689209828889034436347432802390832624263489283268137565149951998514396142421145245559665343955872364346132739751546397081838308363123133891665052059482403992160298169423947062546661255982456422250031974756166783532998352025278448789043720359599941732199613765072539835763361085995155397909941237817862684764451268810532183383642317843741029591131363037121568576204829839824706253206538889270834608935803098940085717867936039243992844402184598726256831999286876325692643140144688287517791091276170632236761343134586480598918748518328806729376034893356811187795220091216555495092748609624201285670396991432982657925567248118332171025607482876124459113023479966258392980146678874007751990402546146394937662460488086035477456021039828345523119965281678621091590482676420662887812970635649876509650260022345862142433563887356519097742429249956736905725060037462475235846742637073677884347835870210430756077952724303407832004680301020850330984599614901771518636442028977223722847356099125200189959420823963660035512733661042000635639595485116241050984981672739360477327322856243484425263697007973538876515118761749393831385455518543078535542457762184631870844327193378460076947880239184144351925937248026862443607483939175979024543816922847937045826984957583108960088418218166449788844243744800593679972030281487179001911386429314299364429238316165248841103083563686773760953286506942217802096616548121562321263195618770413968426982867973130682384999433340857831262179914235884753164563320894414855074849656107498963471746652787848464686950213036123779023338144298662795699168333552295042870374215963323500992604685990379633310830341570810786870761699411406980119084566742317850877127520290954187547754472586932939230413612177927946509581407350358632957093611598945460478480079969375108235402947860323873510055260881180066802077442289102567425876721630655884150025143359900303750706232866322326469058340111357263958939479713934119450080505615029603042812039016731845201167886667943782521895266430158900807867834313607063669567803720894217810296332355990474680585546396193171878520759571668055784181240059997374084568617120488908832843676571663785122108409685333840500032374695377176613685960837020192764583137908482709095784079331044170634832280499383300075548974070120274228595281300654155848002555658562023328122247529523032416273658390969772779607222351453925583481163879518797391991991287611557173286420741218485170459582047806128917651368334918324006029764337469644630550819783373932314764407908009455335303622508164343953555731388289637847648353438265848588601589098074058170946091006001513697153918000005173479072454553648962544464291104526538880280838290475127066271698441323509240580374034251219200719763701481227134298044219926468617682124480879054757559593898763116645317751052684470601524637172976286355244579657892631938395094970363830433509621360151174534906160902271920671991386739426308544007595846013077914023728571608485373947268634899167002276405150989298766817080366688181150738477191358960325415517462056489264933048217945582483553008468588257831597463196662642663215165573631839606970582228614049607183455746147642318974552959556930473870807234305411127243673043857525046557681351334196001168222493403261826752136683858859996374010496566744010345260593839428686341040842284109642996562212928225747241272135892737956678953736281773737457152415245921951019333837485302030154330890381805597550980258980811404336719629622928629045508410269273144717283677068669479914484679618390014261363989479335700299860001893386294602765382132052103806417089331959324326237546585044505161482059522561794204066810989892512980126496078440181731056816896223399838761626456117289003004750996540383212195509182417282927540746416006560200377044062363024566891796680784003945580431428071815807177530476725794381734347337275528185191346688937190428711224639394370540737015098592061819442422913847658581440045925949752772050754150679737207183269239527744108586048228712483218338310862589564154432838072248213368128015698748150152289227223085338084786335397780092832245981825766734088606440743987466401229160002663737050514631846043935860061080411500838432071843927603670910810792510029917817906667771011640196310743580561552034812374549375235242154310711921220807433273039461045694569414060202295209895931712144823837040061372000411980385477261284477639440336203732460566994453756555788517118277746839971460584568534386767532496759445397324458337978984327700455937755668641027272810077136637959581497374352099598897148950232506971462115286611739654729995640471202019286404472112260580692391570098226146021832075287358976367761728537050859616730137064712195447631951912130848873683598179747350840150106069562292720915054712598018599530527082700052801106099483774640845860114680379488377505948520930157872918326310464078350523813230002403528150305041914326320982122675016747439158592958885954323338315091784981980364804410091853378737325869188908916864222796358127810459030802318527074039825585058709889957209854173331427125817067544305692639988230535354478325870818597947513052663209265089721746907381299054150589054558488918683965567321729230760330183099405538709096108511653965614051003044021802127177606515737209418415470203619893695199159312558704994978760357625379487644663480503990695169794655062176227803360677700853019284694676630033004028346084683447654108174145736240766342051818398945275131897873409001824553384030390546768017095874853361068484531327453904766622059429078596367262015406787456134500845043346441851332222264408836426675802342521678620288301895372454906913178491621274589536294576281893829705385795196896879640482141730204907366654064925801099797155844203669850015163446024710893003098255613359148509916878328316941377907046226352561373701483173220519412746489332223015592026835605284661818381415229529888050930378815561430598617765887898101605063102130530796087751392816069627453000669297247496115258238002242749351711733659917914727776908322973952003749429954186895526756855294546395921131100567057995229171497145745054166009852833749916631077470837343239953609036420327232403715714240634231200478812397614200554171001868114871802148313388847138938465588014319404290309367954292312952763905501714262650030231416049796006105812829242032198356140830168242036955980311373018106140112178454754749935833608214880832260443309022962355155811677127138740819996991788652754034292347158837191949547702847547273206755735628304291464376870038008768483148338195318630943111888471728888573086617506110936612241779997542055078021784661960710217144036408849821218828690645675609140979192692114797490457259656044507361803999835667732093184746625120490980058816637196786321839296732176954492631276987256424664765766539820746716034509689184884657676646684530757964612849097192729893702717109429239998222871395949680195593038679586269197043751733396360908819424389777401185031820272974311510373178079766930024676082276860515602719077160195585827861830118941876848906654226473867115987065493243713158866605491806825249857144748575002328960524783191725453310956862727476221297365634559792347032025784737282295123537227478103212499210220056549085581107047120402856992630530820341032383561454803781655352571490568889431185906100256723044386347552457772111752325260878925552744498461888400165591750290411634288432240290912395930792075990291349762861316627798471594962630450019816174502720053638540321449643308246634020320391179018560180094019926665527578478142574081311230045347723093692812329054590570892451259601642081321346642671008877866218133349403074684537219822647204659192528367710105884505437002626247769601280725410563599995123962903842529271520392300799649132046037130134542627823803223221895085546748884029817546870989965895716047908990189747949845337598743076876789862074393652885419183099657263972843404961912517031151979986590244258093685047928047982058195883199742180933521812522139138495277169915389874790067161625712296167477318704978027219533457872789676375899385489387513940686661801742694159519852529026970539595717134061425963155043870800011115228674017122539959636496876908495016647584684751453339655635757932837844397003849238663425667308402356780592169125776732587088563744728478972266162692161545127953490354438332229628356051132525628227473672806578750695371928202736948418587867483577304911698468591354728388079172422472921353560929591949005659527238841420819160269688439983768611478652804673163819264433320666899374159116791609111331087044686261569522213262716013687111738537025838768959301122894012371792255079472538928091516813531683946855184356584592099834759872827828006980464508139991732146043851422327826866871668762376409325405317294328377302710154733526024421274287821982920164434876723895288380715634254283141715556402623152020494005607772977972328036809362326286318779897261471992501413725889562828637510754263315378916274055345089379513096898032493438828453620448152336634910437191386989884875181124491740647295928782463907579199044527283041545346589313980715306920443207100263547372432167506407651569594560090368188106909704857538845994964569284731942516882443449878427404755219843249110305688463973086928787026079659010802794024214454903346694229249249679099551285638615587809797716394597036349803412070818726847768311083933724883075407668726421224179800345279215773477770170461009903998652211887269256763601585208548652804892659986838361445922779077538169857132301798585912901129836368296679998855005929370681425329357543508937285877757027683018755089283207298584876892704468721649480831462336922899719081625675931961346142218025463068139751716869895822319794882608472124354272984545522824749056451281021908150248399059798314938150085995372008825588117274498422224706007430628821044216535366212054009756393215692280729560592410825742553031016121881776402933054491991523112633596521608337881185567922130291725269130222261843505253265423366979433875794948346545983553428042874862946343472506656791361773270435660623888106219284467151948436150801797624618348513614419991820288142395164834912886165784963095367126625730948708037936979660029149047612691320841944693586555604628776765093024550459632209685140293819951886736406532782084183666990069054144153075932444693975045963016234270330885595728715752236337480277845751020013204616620853416109753830284175282997955358529931291173248982967256186914487625630596010627586785252552825516866503216804211040550195267894918564810588849228004375465734449205964088792778026626876276553472802104826875440646857190164250935960024097740312716101032239645176912920782778880488531566533354630844968231710065761776583360578085541715913772966494629092155484770971715837450678385782565144891581401514362747204499170651233487607010532938327065965273199251045038298975638485543605936542881100410030115141642825377421768643161884094780120412649691215452509921834370855199194780351737295802032827705515574724038453831187902805465430591444633618166727644040416943964511544283069883839125159325362125036752041539245252297236559231130836083915064687207256800466780399701860593712039687407141375232478771922828125311000035440676608287171825545219982274429050137409592736865290287269757051851151013581076894009994030584099685438281310887550174836589021068268414823585591363061383017240987458179512758137411857093887801771594983643424941667469111132124613771043388229177167040395184177296694752630421879901559991528947395325655099575161319088136755860980157361526731647775873654230423831145448608392207716279824036724918062459783422407832580150669486341738895476657045855224454389794100895989867053108214467037272426392927170964520140475351368634549162422787014449249933722829084054099157806822675226419027940527832236199750038679326511515045361234885389459848369705078399974564602107942264050431238426789140124842516873831596770445030411365109582884247818580899051560739270027229194948974839912152741032065043244119076724569447861524222382719650689852191100147249855169353103354307570486540290324933483584216408830759937921735957213352330455991804760390766073902538843730246366444167498012623791739640459374021480418045269714935476348336783938472730520742518605816342980418491601643453827331621683286503449434486848235578997242304996190579551509734306949719478052747411104461497779268870643292668135687084229814649674102103736180268115677892505505057064022814762349939553530719193068354936679941746366622955947431749911666783039679243193276461768122916775835812078046626585156110267184707121406759761469510291397514864800089061212042215437089000895530749959051927277759147589673501759171080890800106800721901469682055987661169216559604381218117714946730035988919153873820041443757935688033800593662615791093164861945658453543263963006409584565173073383104085812518682378456048687025285290259275901005603828928926280970608415051462397976140601126975601084620549516766852044305034383748392274941933051346099016958477173760068041451218673140487313795403806105746370138316608537684052330491151343953003081559440380681227498224886065294951706937294911861622286736215705686836122951785650392618868584375430160337081025088142430680978201339215750644939198035575762548288663436118317761904420865871623473735161164172520429329433989590192781514717886873938856518965293862463933148726800393373582253424127499308141476246299066572401139347833413997625967117743884742959182759076366550835128490317725962990868963441357526014182138622866070211342669454784155515922055744268372931923411158391106045775702413194197022514829125255629195146854230739760519372562458643612540305609804810653248237967999336593353279040699545179885293269051026162783482824295967913555052340625413616849969613986121170827728238908395883713146473255041533533786339592285397236774127031828630322188250428785073918209696876736282172204065636028913819731524575514713960522379399045545563527897288121636068874248695543287550108453414490171097839544026894190738288639976810108963614815001066640108222104912151693620746717030964040177878717673766894737714686924021329148861891074416981907098511745161727459385353637143523188714262946732133119315020253009203138392130328160914077166914695887578512433456869638571577933585897427659146370882168038064607926022914296575975303029587869467502308301300528262463606145195540935879306385697585888560534924270872199741734636043545462581026581980986869104111187334399478433475244443581317864642319001527129194497278427521774415697336466042646822969495864432459133440871671621097887132467756390725997817650496566321716498892820137086609392763582089084247359024531753776582544692031016126998892066099492313324682109661192987407426611952873032900789654548438804644454575354583665183676574775111809961655220636713761944115067887683533243401901062005036909502088032293530934400201348971983989773293351287929860152564374891413950168146286378084050510182123954179718283977386248396428743414372466905009280176080047636599839110015542390542494064948057468357751671073887283913876181626356565560145743563844307765856473553632086844037366805494117704552457846137124977303560150297888721057847067929834013358423567631148574982239762199689059861436586172849680453797489896684011451674229177768672505376938743536638002997537110755295264128553132416885239568437088794640770610425369583024127259241680565897472615631263026830343099339115463317966299175074326671402544401780785061396532001527765201611346182730436796369576084918725222562428629809044161210769762159217448797333447765201680601099762611751667899885349937806034139838707518589665315398889644764503741014086120799422118194714598434392017692643295129894527890194180292002174085926198515701610281826217349032364599897976647811622806723690153771799303713076006429240435174589398479112206792457431998827660101956272595227599477965534065063043533108222530494197571010524311129069054889133791298136166590438093580991420483139358685231431469077454694036672527126060998851688690792307048973139808481185994586409188061658010913240781124980644330076207875001443399635298203673037100843927338247092788093154892606740026002991506837585973894899942812115495836930905577055801116901980980011788354610844435168964773569173965828863653728831922621109059058680658902085070854466559526710329300019642199118309509340800153684891075699819509619364163842572515814363471518013774753708077716500693994853666856490177325934494274727251113250118976097350626552170178431031391660281311223139466701900397079958145410481599887503738801767033920906519491553209730940222324763239491594658477261320742020602937692453991027208176748217331048942376184903198145114773239159555437545900247909249682365612736675134241062108050902039024444934401559680900740909462643536632522923792743733861348555198293837861666867657131025822888589850792574078170867005752256645305411841951714812484871865041230379872876511434431570556508166070930037210261997103741348663936187645394663112859150083424409933536241709191195740665421065015639071558836373133419439709020104330947641282100240225871363275763284758695536684910494640792830408063665285471633326061990652316902635638207184268107614148976876288527131413267565533161147404467527024498148561275122810941799666495787584010770838045942247547132171097403453159005193697138210267047575487109081390898002034290854919466125064668130819317498203169585181826501806033380504956149258400220715341206937837940407267070556492685237764073472576538666863153945963635919965624319889050963634757651533298031997485646987617540215065719238988693668939038598407631249751817158513257769973226803743496713479409179884983801999551124871769516436722143518750627773458761684168005526509721871536936217152745253367849426379848268455349537371472093393723048595597507990210383350046114102514382755112687580703202379392470806642714136468905257954533218940170087678339687517110855947549869558428928593209455191364228636097540122788245190076393683213194257944976641395687376935957954220847880940212626829397529219213944035481748207295400710236450163157381760828248710161299214351034984648536585914234306940358449424329780830770566266193688296865134673670635393964704465051648665897442014760978730225061082096423027006157455614997791453723113829224854705122559518303530993411656078229394000191576706226905335228665234638630227471901291021279074284630720196259937019738606566128958581186242408209245598722240702401721938369595511969080663051837554034404923942424409066214352211854212018511982486667042199657291699889770886031273354719332907876041153085308190399808933373010241912832223033908538730309542161519440960843550880340545002278258221464793219736193424029988547328807071921415260754152140072515927659132408689103493671606893816560666156497147648289394314764086363390712267598077046946822841130116432064665340099644006041369594051029627539407823762942809423987524986077146907621733207507540611969091263110982839155179510591088424818849217302072567675109489713910625512949493348638139443394915323894752715422934189331764279954107673744946041735024708349143074782542564995459170111283071082584083268797806182780210752514755781349109928529827046264070817908262877717159060996482962376021180050288231821580187106536813928766982781569756773308691644457028403559082361786459877753957303986027488329945908291459814068651220067746707306277364465072248182861256826857569318755500226218940529962444812610434407108376142978622948307562048547318547995752787079061399403582466341814336806902228282631665381915753701016274088880878994334655098012057770903370134733651721551032762906210417587140629823313522933351360011003364924599894757475906565073993267867906180319105687340894638413336395198251860589709780159466946769967861062226741941921621087546208556993072814283987884000224530218201704713935469577576910473025930137054333979564494765882975213768690112505661268403614175181364210065212411453868564608123986988609795922333871968169883472138696006638731022028651260590349013461524965173385477577175434387648219596687057552042762493760301455879165994344068943260025477844092560841158151383139773542484286253671805368694025276215305882461041452357545813578510180530710866069073750221223170699585636433088194770467586070825250615643582928069823653842629466163003387393458417165368334187082524220232356969678712138562396952688031761879921657080562226116059794657738096019901712002564822599760247976200523569187324515482927307895974387678745798776901474018269306469891989178655137145312643709316580422792505280720527513946977760386967943111295010001777225680148880037850502270574626326443685166184014995588335098770504255515756676872321154326071158836240180325449638034721614621532452354702167928035910356093245879609571295591627900611620236493900931374173219105605713475588167237274577275233179848766166083847343354277559029720159597083268916783804646068545604035128647702796670746644542217950236850551652620870926245086145417078661717718108684110826913177109162647288008687326803613362985641242737223982375752211949272858078295696859687025273718154228402859415067110136882348211922636013603076835029998468633242701833002443794822269503835027187984096788241395290098109995526642506268461945056113218597688712551360201174757063917097542635087285644173182782241119552283492657138967115666892569222749206045174122235363963442216643298570019945983874115190594229270193856378521214750943715929091596771695908414903866554988078796031259524482402695586000290724726739804057372667943693968408813056221651729793480920223177763445918957051427854399420491277729081541228451478242692090778985309800021825324295583371653856709205143140225692650160368868863543518255175628228223272316488906319460082166593961389682550103233263525446173537044372495056371850173974008487346232775960328304655983819427464008314826830825852575410981286376870099885466590270147325175763861995954114448970292858840627633272762246892083250807945329373921209734440531461429284577630784681024694998806019511876651608482011550238322128854206025346485098146441955981157570881425088145188007976984352879321455530150767367296778217080347384327876446550618910043003893943934011594123810823899677376606215641829994288557783893129701295942173513904165638195689887857812161086540865002991004519003770010808952262561294560109085565585489200469163715032852609442825570478917106209814989862592414428015347855550547681785587399048198252869505262326420587095217182006431690361721240347722294693763910744979140342651697165027560631296264137346666607058836275392032532646586453433233123011782622199675091762938664648193822981390605291959134468620790716570428845348347699127153133674462127164390699106759127535907031916204493751658588945454096828573129998717903497753153687189975319813393935741844913993199101745689083288485073196793364670262750481328577913524867042299999047899813188228244412201952599474494980307082613361670137915134445987014402484115567365695088379300479518868502163136128946007175984787122826175808104467959669841520805523153160159575293438310037767634632084252145304047265861225596470564206158541307157150185494988842957647054723695771027207410042955409418924645175477218949722855594202160400392803368685801422491187846091413405532996348983975183820917908114098375101902988963763064600653316931100725083459879292303376270729060802830444502352549434152240355952942936002781179518510179190595725614087812836750279563099462350337239924954076983622376020893940048574773257836358902553026457244078123723875511154247652384531508320494696488511794471515739672026196254718754579612931752366931165267795829916050672343117566260084215758928608460123188633002829036289201407402791516107930439073128035326888765889435498670087953636183019405934966530248741196842175295257966438426467791511022685568356264680188395005699057456109063822867064907978750914359918566274183347501605378209626240512745624234927733822170631681202762047018825937687929965097999614218263189437238746020999574097627280139269421870731817212606333597378494876587795413136084662203741053336222123159199218181658019186662386755795994919661565646011732180391432116603331179296422476918604729901194516555003097571269312027976949895512505046386892708497077737807747992870856259585387647666624111246731724054258429703810083390564452750311321286803833641856549961192203494381919600523016549381822441412175080698813471366870138921001503817675551956880817092742890608741372506231469305474478170222963465539077398775779769205018438131550932279385435604965937373441191723315500692961902802952963547347576049124582302829865218162233863338927937391276375102026385978733605526103978715788643563899739126347885754056144607977920994097958590139547256020471481295777611546131730979494043703286783083021541608209894057839944770450075541701740306060673948117251377053886986882743007960542003163805344682554866264807903356243502422153865419293224903835198680496499850511348134863606521335763912180732088551516145085528178082322409089113498171873323451333197341471834316111915750769293621390691384509160980200351496477003697019572100077793277631481082904497562169047748432187510750827357629873362161705727274396034282337106163986314915661059973885617327411305469559508124152925760295769013104984460330891933353813943757522274121283565231268562086247857627192744137881684648513016207387643840234960748041343993856910149820090450228929472329775945147358571264639106116003668106659232990841458822716560031554220179524484087084356006915372513357825969743726343214025146354520716982810295119817958448038308364454883137347226214382205473033047774357106739131578323943080896114254892644407691692436552128341295657074376507161531313040249013853687596562412116554706745852268351146732639599175228376427585609531916354798954423762658949668674480648990946661522775602328545588624840541190502533344183596410760504143573184731692320817725795880788544412582659079029567722017037231383839236940508611445692961436592496623004183642155914274340062401973327456758165510092925330057205124222114205732060834461394766483353924689694450932628104746518945849760235645079461858058470941615605228241926594288326480194904603805059445423888521097869006792997846446849511676285867347844481583448667204202676728531203729395157556775320719925741702213829833467837498386743682561455667907459208390341976479003423473440213574328810224690914605735836406841159898976663409333367680851021783264167950701568249177931604983819494762877074418104193676040016300950223154262092178836567649510034926879546781418429091213784528461603450518270633819578932860343767813213353064829389168245247889480212105540779963522561715826812056887651674594191236693309179038243763110941208533424239423780775913212699188917920657261059797468780270243531404797962806203117213888768829025813248090688551570296314841905198239793775915455576403783629678778199367517234659545936605538623829685023426738893702542099272145904742304142615758843920644983238825426889019151653347150210043680261549419343991546907301724184757486270215108236015982169374902701489854975297200666438086519156951796949886954875121688356404011197775236621265824215124879513465799638950013279493989891152354276477859122125415638221394372192329542847711848144260317966363906340891234315997808508404340846309556594172569675125267676031109918714592664510294984192279132165768254767368163835244979112400694301923107568699247902451068507488980867301269276657103517257166053313113565723649435173584553982311592290829990155848813826257803033269964037481475001190802950473488473078873606761409686208595130329138126310760326644847952610964160616251158105614749432695050146224290170612392836024903589517266131633127011889630514581709485932593112924536641834474974403174802648580214892642411173767638479781248667952800297775757870261650040851293078032672408849688537984881677121915523855931491804357621072733804628385706973488719169112455921038097876850611375567103853383548273748983915432874616207689001520737271005353589525717703068810500267162917315165156666398250082820257867038555746708849357996703189876099212032881561160446720210906953654213943556747324293680298396648242609158377843844145161550729835504668074903157165572965552831315722961373339563228405615013195459975935067972683187005725580390239256024432066568365326998905564528459268600115360184084797693454506950642142641708739244168229967735189332851843544146115555942820121761839464327358175940272903698381959781042816802402366992880732458769924937548843606180971032523127770965610446422952985337694958178048869899810086339391906709175045648946345056789675684372661634564728059755330344712048399398529826823338816055068337704430289082043671506588450011263315153477355981760863663863393223918725625405975117329123534966304749666064423253756518960776818625202022408945247201675589683360186959081247915356640162346146489658439097290230929122277434126326980189089099625785750661510543750615484185763606867429900323440309889416788543881995324321715974160465884930730101947465503063544996346476213543489881961001773505985999357427111274026650667889458040486271477539865916995095484697231939565612047249974409371062307824880256035629306969288310690106311268658013010850104388465625022420323856718642920764171280448772958503786534385673669022962849118166479645891678604292503962399636977318525065263352653762974971115528398705541131310796315573692516178981196300750688875161098998518215343095961252706417637074480324857521920366388301996337634963459963067334475832468673684981369357172588376613582952552390954311536241505757690344227779273688569823013883917485399642245922022196134109069012938742505343643518765887110241593831419354815911907530922268008746653095912029797416863686492566383341819369118918888035671154738840700087425167070025710580486710969040583249514073297752782907907884640406771804873558513741178896974395368541454809906433247753860658191650166750553537964134110704604578282435839740213945353056074002359854051994323737481323236091531548971134727443575131911191300117519164915175428283196747913800317573755985743149988924930703240823949085300255758285008325091412941814998353772874803585123446016005193871813310382236033659149863384148887739352150995788354575316747326756095067540968532625529469124796257229070697007650667497117107134479842921270043217180640953500202874651253203794589038180332172361342141208327251421291058489876215260399870924089909462466733441003815443946582073750005407956506576357061669476937532741538589221530610508876509431523633686002528575560410628352534160659856287931932122836594565424587227744922213058682884329014619849892561959377164870452691476905227013939516602511430140926134862595068919303152470213331812182775824398395124024076829937097638746028984839349244868261720918113921824669569131563157645834958314639846141329439231133523462122694711633426918620731432856050457255088320360528485495725534467769269681902355400308913346142205742220867649264774925361235835701009948138652661897214807830820599522711470502096549325777642478998431762817035801413823215362449785279753817657514698335143683098578296645231179538888206620338111410345556160263731749697535906733586363966342505812076845058433706042617112737791570980989954276863091947562925991953684260567249411584309803764227346766145169415511356532653333322995221313993076618918220480421680704814164682611594289405959244077477598934098139531396632051921447219688881187636920849384573312026873439840546247869264128641053729594355416253987418853877272481321199308437670398386466848361731481552007802999813678226307606602890718630377626158157510747113626598280074566773434504940780872960529386038568095466885864782272584928245160554627126475529327373227237927804977053217488289639314340052804982651742805741013428015444096486552497233407584631161867256605247156099223439570269022937046802930292379908830831637622247992490953079857330228617264597028968306496925455054483757477488671778088307547678205794667966905299786803701178234822633081954475908567258460782499393925095810900234278794734730591912747741506496794272387053026634335408573513271326664607756174568434435160891500623460341312313313184356835205182874207377601426787905585101662770058671365619041075951828601850483303595167580614554896258944550524519552031537029953678308756369370039045025335106437310865207952357083300415987886371830321504677709073779523112948958126144044770079917429453683200439962701925501337867011319412331183863631762104725910239634282214415972426161417801063620884097127773666157839083235372306054012380723988197216371912436676699575174238457489411442444224201445377921752587494628570511144747910687453240503534117862331449158966123684520634380424571791927199505762860754707533058505524737486151321966179936540529949838558862624224824230859653538673361773336729375417098923321393678372527111615920033020127741871408601627981831580824558634064067938213660500831747606260462155947727509839254177023391231637348631518473898907067880348842555711816373318621977233080634163114959237918344566281081141912433677648197061894942633044564856336606432386580414927628378494300224690158833575293842479781186862458897650814626775707784466685342534530278894590936691706137549629230375110060579762678713675908089111909983965690010741343952490917436338388418140868345714682402304982813773940410391849576785917658872273695726012691463508251493671802586999448753021486330657210027644688274984479423891791253239886445020290409669913747789356636649524628476443712773464458823568663388975027519902018083357732851380682474980496477664006423597531009562168088722535203793138828948180461740146361618486243671752178115804705304567318126252610485167322698737201359920368963572814769821354966903803139965382238020920277853073857937227606372735019345680441451034208923762870972599002828874561695834967234983099082070825202556527339206829944743077225600788571340657870084983213732888216222006435175386439507458234520631759893918779767080315828207406564581510415892666025220060087721521751460429483213716957632801973839662035609572332331175535758808804597041276157499592190655988378426054307774796940767207933694794166201516475121551821499700910262029564293426500295270374281487120428548905561050836819961230950930248524230028680784567424187238591986129088210042326829699486666743047718575393008291219838520523067016080310372070441597570451181714904232657198991480129115345765161767024166700844302695483594220041886465297536935617575634066424470328045480501002697274722191797797082157643064721139774719465677993554536418677321974141698661643373622940477260272211933579723949563782237010622127201917922415673007002478970301946211367825244880555850940193521386525909545421017051879514361309593430845688296418829823495749162706549087586350097610256344426843286927590605982735718563320203500904676915269997251044188088955412407525030790257358590573557931846339252637450629076379463845743218798984640293119165779888432343979773026348698391293116568402242020502926998657711898591365086999395753612443533499261735544505110311799439042343723769482253328327345235143058988440660365286869228559528917415819890725135133807802135137996285724906286037584512146367444624855085258179778742083597410791377370368812380797471531264292415227488810042477938919219962996407473055356576269904886997925383819866915097366267323521375287601544510334706931658122398560836777069155012354986831011766192661446018705679778097862836267300113222840498519770548942543057378304588938614589688510722401025344104624157445382670360124032713142523731221790430432951147057258709139724117164908014134073721650039854368148146529595268911158778417455413743488432737402187479660443347695074425005406787549960653885692236459769227971734816463387177809080740960766781601527906631330872521834355236840429145648423730414884784634768777652275134356445368626145478258946738967294933060232711795207203073630725853158305271430431808317937843925735112294974994714159658385665603058812418464436679017615031561286375817748837603597200618642966112912317709997246477257210555598667208096359470105946347913200150182055313986701193954623668124988100180182247760380137226584120611901403973138340353689603054555366762893748733794581614055846084682247141559673848538929931425327906508025922277649111951716310873768912437830816811577608519843064096294395281770801181043252186934529316652470675944908233476208782885627197452748043047072444965749206608465483098201799363681343564883377993555281406087150744452818829224688251554746839757023821253807001138634687431020808502022125920366909837156133602624688810960942985604674467635523047273386313811436775884391975933334809460938749945388924608496553554903879002497351306348224617174341084166833056422025210061272235806949296567740218975122877352504149696248676480137211540983103529170929116140579976230784343833204654061351994248985508924709352926055031758412710897015330959384081007768234322042831394073119112138285950598927998627419737956057242904345173632184057586761156001375545168701261083579932843652903998567942716110234633113455926098865631256418910404551025706971816933973456756495115100195832966516530330749684483785508214318701702617246233893562111161769850973256079415188103382727225107164895854977404231395634267060697336117088608761681263711717745190672186210346398920427125391692965706626736252580659598082312379195612975666029441021960746468527470786919557608911304465731080778532407504707102005285385127324773775953514209812164102171736027384296638499993399013094274548161880437040344823191288867229723106760413216378032019705554865298562029093187038205666915185076851568058437219673972202012725253430601108697731780299869907261716026479602701551261234846147422094344145940065092666742341908031399761848938266041798934252060571147012615466986493253950126019945216278886071949843012265071057792686205036584633851220683088787966450309317887477964377129171293733571593893819223848526492645008956943196697033831119611449191515225673746339887402908764683853545906422705776306415367827430475181575078236035048354544658345765955061633654750312195400576109344380527569932606801916684659691660000185344865986546051700811752291548667306083926929894235446263592905553603957314287046737698916440837765312730511731039919976131443303489058863046392920667289788017549193841092341978891966900984079770238313775975183404801440972430771888637705435624613144841374040299113372108976501061760812479915834103548739479344430422711953095725322536191108783821303945280116722689887615491511748327069726769736029967046853451400002412902496464122607714855319106137411806823010820512651172010563147540067870341168146755962374144333145963998300153310365601542598729568242188706029749341165444398884718870287466448769678582550267983001512109792703108223848724853506968041389709732607227257916426333397327093670560445891300153875729155221166336167182855501675873069741510497815596558878709002655958068788239372547041110061346193111979364551549414685532301715477642977057497444438465946772396347406517939502181192126632973454236765888337146510521727767932449545634154802134509719462650615241331101213062940388192157522531218856969506581339543571557515609311650051968176357566233072013429218015402715964990822753022719849710455765635519903425886751364434190797420331542366542431078007816556945591388305286197354379015455200304843387270777030947864361577530653571370767890105347403390548314074102736596607005242689401307622309084368957108901866790756010674367081522315011819599409608605591499100285140803478822524523039526410601628072677478415915852654009896572890754577113763037210933658803752332898004410614304919524977869491548879620935700834768896051041530306483003005467515911542856486813135229946154382170514547089219468961545677705905925874576196159512942339611256564272541431660401091369026677197821605913068357930000314578037671356726439005970734732038941685274238042656773210554096194278242373648577203923704646723231691871254044520995090298727147260146123395297950962388074943159560092305190327209243302398649935451955657964903026845313509101015903151747313525269703047605219604867628621028327403054607191802803283167753051856764846811780056338023401939775173913945308090608426960406315016467313858670358943092759864732461631971251338935069612076991227372426634731867143272475244489036958968377608950919920510264817483884048421801364916989667745031299821708221978702007836448246004835415401229125930540602921063898853583670084599954438010199063417795263436144810359455877717750432101226636199685151794420184112110985188096121797438187631260085828692917650405971704346217065943608190012149467648156336711504768561527913010956744168197067547687938097841368085207416904223800143288779953406165763763286612502023463992376563367769230742088702684661945731672303151052449545032509227346537025479928657736399182250126595958491823906495692225224181836273751543347707732389846050676348205997296415127649503899301427401794484903764749307248251718756567565015178338495662175178337986191080574022463928606467689309321344222410573104542158295629641914118297933221060148381221528992493228302823696555408937809100663771398557690927743050671833690808948470704808447209071618246755523249602069117902412483312194753158424838622988827498316381272333011245304027989907876996702113923234634247846214607842924011085029553468238370028659288093226755990081376481085279647453348056997047701338541484582229778851080171450552308543529982127980667724052756539339070424496158453686914457148469635487759976172246109847531209440514813166829659004835824696571531135435221606766775193450662358745083801532856075070920562238405784821801051469776033465727101279052170461496402101295854085407573336257227866827736675511288035956898426519176060912906401282054448618322682236903015597795827758954935911728331037441057959920277041722507045995712299311846982456371357491227546639624586049321211883487608265738154096882965014551645804121752890661859519639086065702641507555184783035156213107528680504386984453068744925705388136373613047582705788227074601493198440528019361114888623306782125988602306908670354754483579328430925162962370088114094797472479696079020189252142480591049304767717203572935216307126943764240916364747894691896253270274374067453400162904428683206564662032295132996906748240965776629842218422397126351421576927633187318811632898464734695258784665264178370753577714170194082377042268963243429442840813170088564086930846883147414463961126366652292433713808992044148623456726024015258433144065495436104154768750712438287280580321980406206560160392672839617591930913294712105020680682168921634278363970305953057341540212198365243387369251884735404472869389470484506539033147827277831650838153927954356629060409241330608423832667537301403933034792255639297146595347359113631764653079882527700796928056995204861576675376507024921943784726216650609664936642259161491984518782487434416923294316996759602745310382730275096024307202890240121990383606888811912296416353587999370740572512027042443214061986964335414861451928765417221585664643313206400436410168077506837755631295557256247426390848089964989142961800459687254521015530781876465419754271450689932646262541390602178540651942136441285336029331649594714480368159882541081848816009997165392530345486148102509839900684759560247390386139155214567158333007401099991455825680579135979847640335503346121300584412748580785276419803225930184436175213759384664850627578981354442433595924339994482862642040362802239668492211266116717388203686868638081093278707966193628568928077363037634103219899771597474593746946615518000096840265869827562145572888877690820665807071403191987333697761804521336038822427936756195867364297840689354890497884847604749934986311641454585660004295261149677784594032872097863011338292414217679038516380054749317409414189777353485619050657567062879119412684189578586253081442574987869686275281426601007520552028460850458970462541230907498064503355898540189185690431035332962308779215843866339408719825853389840576491540982111438043683828959244153866145420094341058515131336251211564852758874340302376602721996075237441184959379468910003651201406667566442869795464621073005186446589795681099173570441494853382043878635874859844786269001045590080493794750838278389134795688750384250581069268271382498832397829652005501701631739000324209730898852213011096692053009333766788063981701034208514009717352846791159433314330221776871011321423818140483269024117051582550894163417916199407282607152812678481190413164632670497353804269762353258651626494306134151322114177628286785492139543717486822485908369088667514063130944770722959734651046801756976299412834112060147116882521149884540606439578654225752537265625585218327598079381653052884354195278952192075533676879925194689648028737611134663848941256843451441976884036836106109304209232753891847193175306713936479028988348666777443954394837572074315904679949215067699442255469541693799666581167046101833129807078252542855442558189055146724393761906021539586379039153660745518670271904755120336628931731946833065536387944789350746613101247868590673296765075987429734834478357732743123232165500061927741297985158462031099659795339293323280732806075596054663431085258305158886830416819705248454596863251268488589357121496184616093344899966086291328209767642342582333566115597370531367066223847778010072366210188834009036148907992450189292920386645468484979727967950955784078360771692583466746957106621304754016534115465509613048808547508775962670278682988334337406617885845829142882411794097790778880770602080934688896850777541276310332400360350501729051714089922302568907036124632635552160374677918450421470366051452503515778726778375668447632854587795813496831218159965528159998775881582795893201516223689285327778816346381641444946176476221370211861795286207143753398337222295375472250241649932425850660227430698644151568245762633475587107940015916660328217728587702791297391998074905838804829496001220578436227718233067910173054436748101332103684040130275254050899794989570869681130968352642792525711531916090739636555152318540260373650964292594606563599924827491586519350436911127081724889582585473825896822341229758722195331693578572505063041827826814198736762662102639390045375728924057928906192748638373602770828268101796859407969228257319005405437625101623283861954999065232275117260388009274859960973038226095355810329542732175939165539068245959239990557119226361237324313328570411550210472336866045458784016521129677129488464268954007016174387686939133225351405352514889258863984118668242949874080614385671051363081865867760991179137539907299043410834007944756341352972270714777749233967082794736861154007841155498775024328393276778505223986027352604647200856877676669080558619336855405297143388742142475517703913410469214842105094294758310476588166363859781794534721555238242010597238447951778729770675840559553447126712630094243476368010615534029107896623915395015767395628717559990006882833384339148323892901699953689484649715178454445076018081238036835640049221461906848120898823769164515931872135918651094860299577246176484993080452013554673337203653122897282815592777808057939598701020382475928863974072962256492555085316702651178683821254408705398522556338104237089959126619014068661233955660319846254407389856538057132022543593697845454565090171234344661312073286261319256299933416745168959876578295821285791899006103765101581029193138499434789358580396935517447406000420406244972456817171091373935172764632442019253072458349967094423566845585454224285284856565791532965831944446877173896468049416003551512317609170604067980353682228935306398864401186635169925182956989671590765720348693973953941187448434517125841095167121825554999716311043074470249538506025863700089837401783446754916716409176541136855483374643772581386853260096291530132210206840425963688636092980074478820282134445715171167271114204789954438295687903291294530029376944533154543229993798473966381274760383919011641376067480423559062802977791355727699844190651004937804894426648347489691556701991690964429929974817897789772279739180496443119178905385484073010930158809966375093738532844447321014259960398951677424498061452191285037374043425022706637629602100905505202049600296075694216658099112894399946614902339561049499744089429234162363759983389363447883129441161391596844069463749030535486707996707212199606312925361696958133059151791625996008973393823850487859775853410774966368184690909258384866817404945070978203476842591551890472095705429037609280807331259405473197979657068690092610755204186494059355415520114069328633904574061872470939863196081027091472411289912130431554863824915432166774461180112161892011597394522383875641213985129503423357051863580714176505588763753097885190631889763196132330011904569187919126137030237827728961185686876085891513382735693697573491849700026613784446469915253325698491250409009558160963834743750841415985477673828158452679903566130239676674553123053451552276409312385769325355541855148523804121940019619020883237793244605719118433614507796990334115642420430526222665446153435046967872453755075221384254365167704384614766046687736998778965936486327846363580350855651631031146852997601194870072617257702720630558018421918611286486184080842492376941252036997501859277869917164780376774123937688673594081386654289245712975898396002237673087738393953201549848818328234434755043058247849925511879184510110018356039350408642317229865204696569060255538282886880785441268219856058328051172961751377327689430970162677149844411687179047777411549060485510687635217676249125209909234366968197996098488877791088083952475600989935304656296019366674418465817055586868943318177825443044932421337247650437248717584891782807181439300850708609394076042248516685947385044912089153278436340829743684919994188895139638080685618398485919840560985036266463743439590581437340164810147666916936086883635139615435169628403067469074126664068848772987738591447718267054480336764057397706247897214936105561731475631870435005494607364932202852191606160976302406411172348336795479105437387262201809252555085835593608332677526966736435926080203742914489986223258302205670975775703529647307568207085224538270508379126646935191047839406307577152964634627563803177232514272511428817873590496160391610491487976172407050856831479359362915151574944579642137656039001934875546258286734847959931515002592463985746799587591676733237120262565438030977921518171725190161180682454055625273812613864027828725856236129683767924616018576130571620217322795950279048159579788714483706270316296840453662062020126767973449045489305819047167500190634338734243174523767851379979552165223133661667211248046957700572985989500682529765344044357797368234764495679063027089451448920486419253071557778236805707481174977385105959942310865702897973508444364874416254834320001024450321990951378304812593376220230256620533184270081678921329463353990231963280049726533105244382929696633408774447993912088389856174413208195564721649529716982409470724292935719169786613487609354612669439982416562945422750297570877247426504626955597062799892101206736484392128269484008458412140235831382758150537559194378977565977554652491972831690714133684530900184271083219534394777719540560174294738093625887347641168679329797761993091302023517812337135148943218037942414792785426557481698592350483756065202213111188892917420945656824042626864299953915224206665611750077831899568233687272490899368832033489227842789262929347205954376572339908278005492223729576290432486035616451924118076603669346311673233340927094532925173705882770815608820342117123282418213608988964142964166183661376504075891779425442988150513091890186119648310456689979644538632216355289763563691564500736007918909719632486836618728060319377702826959889940963750491586749819497623620025893089015045384839326607352595291109352620117704992892859910452092010478448126419251912195690109067229634057260328495551370213719607748731481190577663112261858300354491022139802193904066763649692077230315513902267362781647782354136966575426677693044711736558100341659743085452623308813345530455998878600946150256596462788622824713373083293339598158436842302067649938515464224106247319362753675276910435172898654284354394202915709088925922132257900943309243184976403578432549008041789889998598939799923054598902816353066869583452683897523758909710748288312513343844140728005955174752849239040323487665371353897169100469288707150543364923998257746100124374350666948575314806602315804261358450521512356761613658661996206740732288334134058969860494786521182447771620691653286013874012989783445977681642994716427449287385807399291075111886598418885412868072766653324482368739652057257748949739263053443088519071096454687061011923213125279225105931521755988001483395281283952491495955345271975917555075422310081383140723471034852201508861387277725897923750012871281027721981484477543921668529050068303037255060622374667822877644289338417892885433160569694090174434797344113546549858157748031392332764693283899768494085531314510404880556390556268202100335731251127979672759143144070316224097790579193903458937514809875495899767721047528189880896526219391259240273102009194326985627634700712172775709100642555103372096314407409607927918502653306549866534248424436533182284313421299647136806217316260518442417956825066507027938175266022557661643744399806607648269712308676375904109983159887396832743097468665299249437398939456080391179114305008428681030483418936185873889284287121212239835209853059276925117115735158112318852757929993535378510542544546149876884949229870367886749463468803588800895150097811645851697247299467814738836993682778807492777778428254061021957697612722922819958001115530197393155942657618275885798423339959012389442886500469007561740252413207484972936624489439148891435751307338548306349331087080756032102725866665322408926081109677687597642896836734197304693710512479119154023132321007240103370931755326675941888759568440888865764121394311965734607513637780845355761667693894521174181864472563701712643456298417666174560736794854732942989887291014415655257407761975078339261843223408118818177863010271302962870925397875250159708860870997606140337412718274242213321507621743733382045177034607196649532427013796861582712499669263205591253669015798466790932136604620412870547748447736096225734645421135879359535557765223429747177814516587100859617882241410499384610112907273500497680843558156517138144884815925273192183046352778525589724406745669111354286283766686770289657844802700078829537134133986510302484384683216934258979130582957640029507850748754475065894713142828435541915411670686335127493969288031986169203013933755806162659159967537817948148348336355331681249630476481058896557899600967121836653104520400307601143959456017952136045881239527406540461633259174618940515300714412001490094130718146886518705456139383534277665934950740486210933980151951096045502432968177771320267502426880682527745647672234068084329118642074979053644809587602035632062849112001499678234761934637362005593135385479415089503841873275521803837447553497043305552565205521865747134504544480381102570311248967134399795592115205131083035959817370575148280653121787257156028278978853901669215579834251336999745598912403293040962828677400296702622168677402786409863108995645146114138774401340293489241470389415978952303754179823471493388332014138108701998797061711566164067318050690588177493176260086658761684738140367026398737335496885292288128728771903416907067045614000316682466862617213166531268813075628201875403658727242502678249692381324154936926633047182861667007279429108807744098307813445303364771339022114909035515795082688910514541473458675230312626384349254087906860674269652538671960981115481630755829544704019339861481290600177908390544228569362194506366619847872059325628318429659015365432154291736763684651937022735062908594142234001814477107726081628964345118002961865011743476053394367190240524169756104374267158422660353986451987863797988664837800994949313860670868504298197898893849910670195178929669644560135256968669466065330045474735803335083830846869764100971057487060803997011213601650100114961194999629723684503569790619345072150750269091422758184498433353527111141699169994125279292962355351214176582107326990934274774148419192891406295794310494900897978020061930744618330366671788773117198930603280280430564932876312743331084971831025838220425499596086857369516426042093128986785847050065922608521944868001502454089653397544154833418086141232019332471945382305218751480342138402193715413612508607731053976008041521707060766589846487065819977747070107004000482502933243774384941632730812557156651437350135214606612367148895500174684038457261158500355443472358950633403645602538901217480852037909679321706341830469651780134232652729000087208367817419713241497015404146425622744290718449841944948930774481124614250630926507318984782954243174278437985579181406455682118953764664812925477291634221475480928525226776867772100355853736875409691534299167504367764365827676879728146874137319327517590355244923710688285848206711500169314832669399888060122006084993032873139115605223454039815220068289355424053240483352548396933810172580578150264274323282943584422685042190001134613364752039192124596284992151364085585424970963442352286727533001361809795798167684129568405043876905782450301834663769858961731996970031243339570747720824897373930255228209351366556178680636540406769451454438195903551697285984170375456581285728561163856790823653701971413946756638562830746360550488396844873750299410456530628307015660373218509759178010380921615787359451367587695773633151493932586399902946858285204550210253775552857259420574944741540422489482079033199355222488077657478155157588696480166645851969042517370543140632500717843019259466516790528406597940456881398946848772594735328329476418374897486932463377951770402129637491719406777348628170809281408216180854645634561003243133098962155288321740408174848112244328288352227262800099151281982444334322872266710682874574319515999905442648396814450984082865159285560197304887389536596943910126354202768834098911234721767579873688622996393497594522587834559263376293347708258640967647867229858597126346073021767515084558593346371304818863842814596128843788283809548870863378766415271718144751519481368949130001551738318766675793076348494696530190216564984595133637985611751399213348258696785370856875746999178940601626232457556492718973881652702222762396244830727984608280348995411856840674591211272228847471052693034939136762800166786168539706200141000861824427252613376132400064153180350515656847035401275325974029679291958944053507736919362260942881371754209346359477576124944398250857296769724011540092350344706519763158227765892227318949012274671569125785248281926056163216429262111064600894145208019479849015160706467904256491132213684944060647733446622534916751149922981834880246105896821849749136046358067488162272540435683000853239906009731062155926245719806348246753461391390155452407561341912884694262128224865564896869476810175673556103147779397513731265697275369122323068616178625039707944886303672853111654180532528871117245555471326936278772614748086740818037517668207270161186819835688532743061959718099749872871540109112764603396410124611024269811289412948780440260750654243671438663499675116655192600241792430977926983946100009569789499662320359950696817120106468000730830460838891687334464988400083053169544049653823790970480707890734409277347476762788618278362886118506654054939225606214773373391765918332149795599840111367566476033769577080765692434474353643007679230512930554059184647787548845155336807631863489422648265305242963031302900057650838539662819700923679648665562196499464545558225655786842363442040790588152277511065978895686758477088988068844314005575374479361541991948582517087656218936514549606661004450487122894002341095144757360620408288971432475191944711604980056613770364835591476585229464763415136961792486529567636223425886806243815171650263790155711576488351022014636326223599126200081108647136598931763669721398085730154862451323958862120564126334085350903318882505470586143459690290062455150614004945103529112929235530573916439481747333674248799285156563353936195118541502068374887439284398247530135028116571449244776439818894050501813369810365495979733598567977659314301686386327410060546892929217168681149396637980973046422387731625474042790435990062899844367663968374205249220903960317305614375354146897637794483582811638079263537404454045609547421974484689951408075345568689941062317517169166692607229229874762897299116791428948956608937730807457205469470407975921205866566486919151991441441697220530745797793006292480440803066186613040945763250489274751109004049288195017990494048702082807227413725922065246957893846201194877931800475409850421648380654975277640732435832590665757498959332617003441354678327644646709214528231452865344720623085721892257185429359844962424629932554008828495437032230248953140111864341416524459476523985883893062016533587083869035249745148269560713450184074873217017748683002918301718423265597678861861622309307090450892778942199907633637005740411805255212477891020450603307237493866667442045603551606227783708183796144674191476360285266158091706824406139733263817379172854782286572420898178203448689628508383440448298266136560013086527267562616005926721951527968990361736859338308644225227620605480759013603821139624561927899143852482200959400519435879432272425667623419613783300977140369189317705514655502455525004802260157293545779517830445646433794565323272260174740052414961121660942904531850848765774956343952414684706006900020320625712911340753891787120202399200283292699668002069999108794345730496505341759126282413140093083056170326196105430637472300169415194930444203230267703695844662593306394499197309968751074225479216699371608576546883542255753764935933305441227552597722672580047526580764402874844724959602488334693663111101684912153037123461869923016130169395548598548569031314685967029247636614310790970002411706751345137903621298034093495388506352794710595788728443583334417868154335087657780319664336714389152014396579274451204456745619051421834616075729236833277539510937642127193985815716398415780608601336513849187298900049404815608100567524816732109151434305689849640303642835676844631686213503811142804381018644996198264084659794199088452943395606635076181025428123587007090855593199709163282355787360417094997315553185847758506419357132172821087955657457956067107436684272584627033607351728131712490660209120352082960715797051497300633418667772263891019124326654275803190925263607357371666918785174454206913550011752707680092810131980086625936708950141033698800260183062239618987856766003883465751996114357825993697400459998021978582200751287192359394895368934752458112637726814332250544693958449394508402689025091940570498366791583361796617815323784085424607964132450628765708884695274998342231749845085408042698186406053861700863354273277112179551741410750738270186189845530336320762471281896738858932544176009590261796768048857139296733578130461633500987915372480534440978754813943850854120803570292046797950855326561878926704662502832676014245524715088656215405746606144334676627155028637398476110019576456192811822739540691851698117495915868195369074437971667153616463966777722621920755004967224777408030504205313874529832137264845432047776305036868291336403225402375885397999333283734258336151935000329326155839163013733354709509121082861225499295181803068861246627717632357658251547506821487046762802092789340842505003691420133647661922716604163738675194645749086286626074908911848596757606959633778160420162522790683653684158642680054351837998158928494457423743596090581072469316124844838626569899302325104942049794584466497564192448409595130471255328702593381158897421263537006150590270106978051081953891888725472255388146261392550784780052840403695670366308026285642595327878650611369749120562041858624316979318009882458395245037465398168353468968907356153383495646670717565166494539373993357503736949710680036897940923275929237437297239563329204791036227997002470436038824757970103844504979729147857847793057523071894058948715417765778913554272506462713268825025720916601218682842444418661395386523294071204790465240963853748651179638977087196485649702287614022675082784754188736891715741378586595939039436089362818083131089879909413936814732623540229220654297111089568275638105035751210883300712005619783202475817477336116991304343161312132479719402811609216153538258044195223293204241706296559064762567349897223347067287341112667707614957673210705259219726152042107537322489442476965408401869566740706133102300177189201209405804653641828419020060573206832523593717638824254146292257911716646483837098936779764104041533953249070980618764321185848422406577772990360166160795828017671931578875647550224549161066396420529618086664549397491231303734431039490599949658767000160515413155086217325445681237524194779639403948969775399669855223718758620608956162979689893336638713642159775882647397324973444610399556074429347331850934479692511495390782147068315427496204029221501359397879495344939739206946378786227316351347402491866536372072980478061218195224165173514426392487653915624252311453216685372912696654317949176861824153726784327714063182988901035251424429421094466538256494282875548015635030501296397274800499493002206867580678537150223566839277424130087614808920691083498265744360088513635999417690159732037767018119751554695763547537821244091364943694547867718618832670461120479779801607990574177954127841700867953000891325637255992980626259468042586925281673302966833653198342579079431335519561369676309063681024258731267087221828468107896117241326005033318317695576630868073592498722088269272567741083901049103497754012781005342137726028809036729450013801460482036506413329430624201274806870030065758141726608089650852790322002692313891643139798214100278432420610849252767623933760635071712505870096338844097063342971114598271516083736032880081690928618265300023225556126519252130208605689643778559156112232129172486932999086482356940871675133989763742967002463615709432214739039749905818610747059783480661137355978080602110207565562847408432097777140434594728010203780368691022539696053382668779529570902854384677903072529664048556082211325685000032435915676920032612035051317922226514295184580909940450731930421483870517472598703810345311640579202578219780801788501919096947859862709552257161376750247659812550950245119023048252138537560512074509189628234944200687290325654790501759046007708592251887158249351376540208522575012078609426555254654259077814273668801760773288816069627649077547601942069189232109264683236915752780311347462549634934092383598420532613021225724331679546751210596826581694696192088085304331299319310479044440233914533277135878640648738062946508729040289299055229557475305559692664001674723527647384984221292269229887662080493343518097482531569869887494695938297134512481341043671357979125574133991278195160638261000034818910522006575150635889866220602376339749254460234618491261683285490774717268074839027655111666313038467313081145246245497032537160367878136920439351601478323177046990025573724518522196829364078636971433096430642907801272535318389181430554390806349574696722019636946040101887009727439061592568609043973618889415364784740293930809963720230110626834409176331228829436606782380026344553307531047909536124799541497186679789399475087905589628312974249969975139129077962048723755408694618501158854013945791872443257320303534461840973589198809971752621001336268775425234359129193101012140510529718756404093731004151426121765358380893549920351449208718260319477306944430348463379381468609793428530010435039271829884788252542006142780954806575610262480911998050851413029606071821248133088692634709638212309536051235332850446571188237214031440418039406874807485487134464501698599519235215868658944968132572397226262016031081943845592218082792411573295648032789792122783419218661675418690585968617028481936615110211287943635326600300000839115266589700171832188780778961735729799320587536805549767890051993386339611798360251484786606004230807788479878105563491210845222517074716741168725619444800400680984978640299016801420297651070722538752396780755141254091707941949399791077279854034539391490775042764443910199488609168792006587667470015991827502497104757667867822103081857211783836668388325262165937784473130219492644602035473140746282698175655724391364464357332758714229448458165056596292312045227847963488147357751564696117219563363962376644365856095166475929221142055475579358685661057272404262269381022325164577920021071213710560771916451944005279493665164162285623423005988388437047015490717055000499775157981929592708237091633665571168953002393001892478712172206479916683438650341011655781084626794168684166582564053832647352272526848594263632233102712300716481868770942256738786763454811302589002798855511682311729785031836001775014302108711165943479843329962844422365027261565949223119991033433638857849820840895633379312867729447279699103666410444228467771343343036453865723584962571984614372105524902427921813152802961190736925449162722245362827508634213667063716519432037006562478706122191104779279541181455139234704013796679428393134015915580987137437831543062070089359121925990042642775162040068261404222161200461949236063661611087380859127570722022498253467422859873126528703393398997569576003386981482607084005021281280655185208665552431133286387943576574241085578026552422169255042159579889730064303162185100190015248959019390593696221979936911509676259351756846518488919171333260310158456967004307804744775278490127659959973767729873862782816144775609126637382025497756076572885387473316400959243512660022769968395634508084621040151625139038958212390490928687571925769492561473917978127675482639553627804321965978731504016935602994993070146858157865111054592291829713508370714601436638367388624496794376816887290308414694321967477495881134169795134768894116019068676467834266158813341199247215704965626506467356085585325486218173389415646409879676029809977399719847430420587192511125568135152920697653188159009960628481031602400275727395229811451723944908791511728248446873035854062661429001760354672422236211870665926292640062906833766674581704576878899363778157140295235562410035246015869721654320913200895735439612829682859495397378681433810289242323027448314496244040613319787350084434182597251485318906270990171532044205620682669984892585252958501103084211839304411970620101879873715309552205021100306535561625317064095495934169995318089492055588653577277496409711871855164488333151701433952105737147940617409578359277999800928442650997924290919427442883813478798347763023885271777135671575597329231151464226020052767877362508659228521078454519250834474761671206431503225543091945570024382510859849001124297806567892172368770050025123366034949728609207293826816914690579684773830139439338613639841975412360618416389534240876004664185691121575632651563711598786477043334694352303676761032346313380395508780708327144085498244072103428320731066767168110941372851741873369407820266960126585445217883228011232150205648936851521686163692833341938118610578451697234448660044025564084191908016125159900081664295495695203110846247525041434377624635299988358949193821723004385728318916804999003359431194743103007980581152102339454901681494443484912061908520572095435687294714183373059129751089718234053935775999716577624714774042176820511334098826355854613069347750957549742257031213084898832973352842492138713128240533750966337395402293998370243186147739913772597745162972124742518417383147592827562580408660170421227572984634320043684228104817778232276293334641471525965878494629737623016250216537568390320750777674472007282346677186870781831490591292819209622215551523636970756377266427653207059003978063626246753699649415672963613568787917269062132333256551332935730803925372755547651399144930503700836096086691615707176570969639035697178595100474077837370769757442225830494896846938195766446715560886274283736698394816540507684525125457703262510742979016341233283794517452582832182266436388622243700719006246648198178490094455511238632935226615459630144609860002320397345994093117692649974548752786948709396510000771128790877882933053136053639020261309809667418391808510672529940053470937630100182872869285141634731419004344901608080684369987259841026768667434392065613202054520504184168300995562537855513104484190638871910102072731293248821628702196843423388234415255281838774164152563509783620844818421786731470225049299512747032301518438145704621516493706529251677157455560258846173189461456558260703191393527706454540643049332220467374089064374528202633559871408101062559266896869776097721148354689682369955491035190293096842551711235363119034456584198508358222045417808556539698628634953087129718838607346787674716908102514617870468022133758766703839880844259937905294266983028371055212748740413881709382207037737953375679426363883267501591010219498718802918484274311961731465337283297066052950797651714519663210146244872823926523509257738249358936184430653431648574544243363353227592699866604712085844149656242047750481406583768988521749068913674885480375522427943758978445037422030768629549362686655852519944335363935305554226991156023204101373482526205688145697144790900097971351832828433527328722974426712986704448983257356128811351886131475231698750499666634754007735114149270224742278209253840161649431008063867397553950745654712542391829516447358723831787531152281614244403784709170092180693706314611551370848298824363606060753395297605224759110063298298616949601212264376449570573433740628123116971661291239348673641596508070431243311047334960259679164533987749786286664546977528972946657672556235845090237550526861962286710329954314186593974871691430387374439266161794840747756250694648139447369867408723279298949528945200004987022309351051003391408214056867924293970234971698101299529842585417408212172981007568792690516882259506900908908242787414331578439731718824877302337335719675568885272939980495736336185646026407557915333378700676164225846978979625270547608566803379432415222027851279576941101100462005391024723339547016465103671870122686193769470988652703485252050101426582758330399342520240036337484055287914302474160437678985607175766893497536217397916708591736307111284313336126457897025146288135493858891314955445356920464747785429051538779870513829962001618588133689769460461914828128758333745965403139400172948873411503066331467394725826034343664924610790182644604278517408142808240417986268852708627000891303597463802816824491477240215127414614295193908019677210127301802702898536976428196675929396352078445254250829665170092910046014918971444133126730394951827039162936713590721676807153556525498476263767745664296106422454224399208960556544547330711211346458336834758361120699974770294874327452251788459858063617315482527015905371968882834320845717898815080484098209515612471009991772375981947813014568338535256424002414280222116018302366441303265968782649042284172074884893333733290201831024683571292183211708038296886087630761342527758976509123653634915682824528561217272148768432187640511989016895300632607841097581348419568710173974565962372219833098593280920053620859042309314553158680765278075111791407809087378295464217321000799291099562226678483692843576668259144570048562291052768897406743434889693131845817079171427426264016421839064401029461981701073472979167768843101651290417480260113831043564967641749185539948073831307241334735434852814951313663875982397482271444908953806757787463959806320209118610249689719531819456173842182900522801954944669521377034775319866753146221210065284749966103898816960362271680089752126661448510424485865574703847441228607054631641043810206203079229355817605791380511074086914538880838586740408046593147583249937112281132768742793119534904881852235185713413669062535790388494273680391099046008324357186579454376195733503993766421296213893550383313264066875674834441222464689383973112913327019842856094597102870439659810719525878154142422830474982940949825110419892244227698134596824852687522945568562337478305808405231524103581675784105134461634457326362994967875324454144951606738898960592041419338504245227184773728879281950682684228148218447613659487527597696115231106869187537705982882259211321468670401456069357994307641952373956097716201187056956510655335209845124841030402042431526055806255318448341369269002010864278070612659702673095284241262060119513061758970088554736461610845745949425790985288704385817868035530429125798059494866432547639985655070216266303467746274036937811894141919629653799588674282776425056332384206929773537299526724603303469401314820977939955344813220535337447557334251812679592968360124920021931447103978176340132027927212383301313158385182928719631942695551334164381564004660750157028540267809622286634880432426079788855390155171085934897940322915031165205887479339101497683325250933276566150210431074912609617943276301062595104680754672763471064053637426009674759614332113501257214925517913899043640765714020099745330618616340890542343538925001750167741477264019544380018554811013830875807470264428477959538073439541092847301665217733566868063706955889778360085100537968181591665290081443557952342010178639255642249152041322800887372258912793461949316583658687670720691835830832650140954076770878907785032277380863766344951399114743413953404618961251470210705780990187388230239608556981250002061463955965036197760294401167876178244261185576966031227873896055071809841394850191964075477272011308267661373040135305547516385508609636796163881676336503599750560551291083660860649519438754922066943557624322219092425696137066578425547789011488292175958027896068170788612972843736188039933303772077601451619131000931023502282820772875394801112567280388059270028171188410274263095791591344176000319955667719650843473746165639967350523094758154600380917217450801071328824654876605528154509357628799757203575120915682193298147285857986533049879861054529997399381219603464414457932576619682481836687853812134528148715883519879753561738337073604319123244891386089599752678572720967754997172274101918085377444984394411507902686540041583411986338906654290105347026184368930270382957108328206161262392588890163677450962728134614556637914442456686012543655332101520955922837359893453799309790338777533499589056996621512066350402320221292090499638342326687798018867350071667938098992482151130959452029588393360353643606319484559427613642186683499766385955682237401414517156963282591138410125345058950229404447735746468443010279032264436615709067534549690164536418702442046724484659625236115771371182975429138946392268880375412166274551973119148677784096663735800089639392137469697233490078022707958768654996939117682667947261041812680446173731832257469121873330577040464656262079938733370714035505340325144779983016637615403457766746192207645589798879389594135447995211806411886634712949147245294727891623701519981901839571573199315534499660621038287179069611087438300011997123789991152855321569617187095131248554848330264609483952599854686750678685371771122817499641838832362566965575706813942427464188937115047308376753822892558491924018825022618369335105133799960039041941477390760621879484892046365018447347729263725363844486062558302315657441956338185321202085637495913679130232911801034623031629752415047097294702366644779343410711357450188658560012566216278371170084726247374680705697794204467448589592352923808577210881908285086364819951243253181131881287859457439169107788720768046524902117200034697825630047525432515344347681403527716102387715787272254323352429091638241786579120272627485673056331664199803765088552644705388445164595353803788970705074497707052126324254042328398177184910409561346808721765310320038786766480156982121996998066921612646782845495079728375926417692217835453055564841294302950796243922511428521671192449717831933221393106844463345778554670270365227332899519773254506712330948910577601922485517637838016261880930749073453844443830336516119638750098283044421280687611110732644529924746050323080676003440496295749892071254439224568809198337375527343451555984078582751199932116832779336937400444537296225830268823908466517852276338912394210226183154601165160312927053317010920356456634219481909852041749406228397639006869338245157909875219926515577914303885691365347871565717534175644884767483684295806810456011788175798875880419602915230502339092368063586404322033521148004550603791380812705590597982445346274719821685335295320588962032498885668423112655751696039317209662057934154293448607814035169827750622132338656483677529763700347289044899289046494308710314949799151253471981650293715571141236691538413632872357553201369894121509107215048305234660239382976848784249588976131042459626679251379811113301507093871938687426714754000332857379968245859981230395758173604542502091666395887860801938174813449154208588278395465019805699651591892829757508136918631722830411897516071617272731643805481189036954693786336937174833703560391958068317941345208343489236386628868157907883074956703084090485363904696604287373837721165416049181089691899912498599593708554619350647921754361152964592715467697386975788825141128501997215244674916172211372877014333005420248234125348488224317857518652311415471753427518863382266954412228918735980173012259256525312302604737179172727072626401313630668784982435185686868071289398786408689748380107013886609496060465217927246219831244521801695007549848014018044495764872379940691839934309329654065012038346315574973892644039041320084386044837135768458703963323524630562984283326370286403311061106740770980956672484910587898830799039678592186922906380972246353639428168439534855324365998379882098327717053132378431134388399202785042257937166581536436954618232495337316042726116407843611503961579111060360525737563295652138855855234356178675926584554605838342241560780320853609738523860038895123448324422825290814353059690630338693245903585321804308126761894709638337907133279251532097279102214472666255509068262381134028096422323022463895298491927595606197979763903002460652943100869031008336182632700186579730422157360800982067833443221021353712054077768392440015936178932945478271944484461536384709535916586924950309358375598697798463444879703355459910991207285729972824104327740199880812795616696433759279869752727843005668434907080193722932336644411227332019699047242594255552614503683256960978505785025371005234370339643086485214090640037595817004823514091575816712081703352531414675608673239927080295132872593236163051551914351869121189403052452951088511211955851882998981379540563837298376065659130902121910792732310598071654351064878927248407163073556474154708013122091514358203029780454164342282132902653097185810833595806612983315074077426035436628461303333780627754045537932642274508710035092249251732134077588655274043418038016728233314011996568604001924914203383019946004751257306004373030142359540426415222941795623480056111494363223381202677850352443944671398412643084753844037372337566991771739945943644775261048985372002147198212720993900086607717003353774356237637774328112050058131361153940119873921733161956297972428951409544286797732425689286069098135825760042323597013217783189709676100646034703463991429594402163435262087015033940139663132320634359535816275992001818938447087032068035468851489456483643326644340307505923094647598662252402996030748639355878615241253963488539275644525862219980320529002159876744140716537932752060906327732666631130457998162100118065034267264470336613469891465160817795738222501266786324493064076174144053311451719979930970019649382489969142201245495274180518031299366833277541487682147751184149228231830165684519110051196541388137434496849994011656163113070056820476711498959567811831133945999937623930696213474476215439456823178527476258982683269899029532099571058233078801370566528108203425400863528790190377441849759838097428260907239643081855155706505379352105606841918098557535604791476896090780179680323070315362772943789932875393576705671621913415545961580851597885335081519918956711602285493979540953125767867416754537621659483985243902316461746728361170692810899183688313365221207225001934852881917134721356663168057496425589239624927633318343935701850677515569386766295509690025708915520794533328059624689335587197766741183415661062002072046484800022749806236170485628231521333173753130013102497180465594752845946034722204225968250663502792737369791087473124517970202218722781621468781068874054666498242763053214285035069278622466505073893175786962163811605114705813974100212679579064513443069864595196205282163530360794062432901405045886924350911766126606419180551800632396089364394509881678215648100835589856032809405143828052157220277277304944824109604720246195688706136673288206571762638669392447082250211387826677348690966822735882575951391017607561525229072612834057536976851703031143365037802074787227838245411266142648289234431520368927183844816267953155265762200209253654867140503965250913588302071417550289904358946557678315253917412311426746438316067535223923831665599928947665980499439053542554103147543568784082453980151511957170525489885843451217290144669080894901102155641982404244514021699476759364199118807382469297415442331253061414140367402780391776084311513690947717337142666990253310443775855476939928985385766037236760278324864298196466280522506806110842095470962623293996468851805101421041292924681218815805958100525672573692161038962099487315124709301122085856690550863363775949922158410289573041278581967690229363145666921068301277518508634313387604137473955927893582282449297035060489594484343759099020853549346156641491537436050295595250477922662466235988406395212763444935499667075189785948071331947186654333412857040796085043995745579463218183261420793499025026282729484473856621169102905223296550776705966820894878966972989333332545838805841560611782207780229475835795463781249926794009033109501073427521919646633962268909186940744285237616827037924608924762071045782458760626222151072215610461879723438722312977461191384374477834684238444933859849541231550093596265862278788625948318730901506838232507062662751730984968241970150394268367666791545976668567516563059731801177356634415375920318767405565998934204484662516911090810424500060933756745174425698805436768761636432829084980936108272659252687482077559941256849555475526410360745083189576971463981839524911543535034103886669537558792169100037500045446490383107828559035139556292329333442978752430483641206756889588214012624782575773581760394906682399215063998650252654320061604802086891824766253554015968101103431314127058739055194318788599075844180706096962289716600980180685880166554846952873466264619904151730130318701780558439342094850736590732861969607610430439714924234456696293471913454948154627869924932665169190021786638367298263141032682871189200956010744581802851183567639422155570407078970620400177195381788024976515469891657208993700098511397549743978612711615061180607246671697009244048015144136890849239662708823239398802595334528757559905250086545912827202323504864271575277029485818044810186986494545922704592995629978164413562326538196684482183015765638343421636157745213845224675824099724928560375013503118085678651397233116204774980480061368384186227280042739639248144487474273422166874242785762042733396195668630230585587189335914404258075819782178061499150370310685410691348532731035407968763479427104093980248621959671488354439555342458811761712831916610959540549989403531449957526253303560577133488638286601733412636086214654720590308751784555206244800423839050450909366343290705795519236030720857233994890912023648071736441360993462279151891703529732646661281260196815566079062366513967766625775319841730167734853010957118146595464556428248323842563543226884135938349386250611966968472759030854369127758687245514295028550255747342796395905638693851938026065036891613945875573007174809707556445194172840844030420555177735168172559612523927876553647052180309846747840206379521045917578145192141913443422571655504883670706330928981116322025025842259944568834528890294428782786445433825353300605048934304304549121858384420093456715374192496076272692684112358274053076597931877429340764795669188256122387181748312752027935175060988717313553880016619680123349581376678767004278403955682213813113074716184534549578077282218081432631858317460815935731163380889681965928322466059183049813463718012416923956310284330412266702427806966565011975654982795199162576423136552200099917031075618350403017615865183258328677360875721508628192983970157357932333149989505117452813909764520611973812073620291577210452168095941122730187582305419672416783291236206600165126593390087157336632555908439263371148400621863110725563089728075956020817393832986548668662628760831885494387532437410916824862054408008633305083177486958724475887329279516905721708175608527111766020700320293340682541357952270222784280263219491007972021688391978671132084718160473844620982191267345359663049827262734165999222030387789919578540425477273530064924914371122805863579986539413738486392745074475159688675092344000028217359405501995805268922835165217853750920736328086145400129052316175931486432975443368263280443583824925995411708798290954981144732104858220055889972888346386998169261269904072778947948779448074559771053448932619943217091879805147379443338952338353161844274024885828333639056465904782835606007314149566791982989154745433619536879229502646635876368618058608958112197248689426753965169225311045100223053978467926532816106074639859327562852268285089298446075025625426618750706832721829304342890943790723929253218534359795571499783587314814031597166135854320108020131320456957410000347989292325013048128645902409878820042652352240503435193838636293007309090684775774372040289006108612092634031171197782961597525112593223617418788004139991602135017029078259513088544949916034881307131472407358052355284724264276606664127007187892578561390137461218677638908362173260171644673131171149132729436246078916624365639368435832777278119508088683154824105617393031495440742627521296911407912650680995711285702383701292832435906898454357803702332631456352073802977449371905315328992636093042161759694397866549910859753468197761790217885813113814744664667671036058073794993741728364156742224687079776294727314623943100797354912958882109087599616314806059838909296839298768929761349120108825047957538882736497335443862840784271460348054297538342304397703045115429289343647412136974663914722651972809065309540533312365679862354478815414316761797492953354800614562894990316317310555494181207653818285047555431942867597133031732368448462076041701209257211965513653348837486789796415037465415724212263584153291533040312040916144670749230958266337300537741534153289104011214059058696790378540850890556041019645242525824539490596125261149922134514965993641155799306202554202290894469691711748954689142619553779234549008902577747462258956562952458210842422963722374251476257222462686983523149830699525527241164237266805734682888144199498081105768828652659290418647156099011747123823879815661366867024432119071456835466426826082135645743506151994695215675743174279947872190975943632563927972116600065172837078626517522838769757938333840959503253121132726657152919519587379820956902971619218110840078052947512257765657864107528898513840031388509319026247011613969483836825856905466305985911314866630750285745812793276704341570794286728827088843851768991400832340741320781310535680375088792649964851527243103277344040685367639574432784679630874169985221439839906989439940290004204980981760908082890992559554594081119987054709030465705768068227677018932633628661445917111645769535092610803185411328824433435618249275112206947913667095885604193253831333252188824676776659606150558480055283657712145730061792866723246463138260844211793216052030157634016845287047541164583792039754089873437516480180623881114497498595288031420293920730259796776140399936841540661136018747017730486647710104694584125343637356389232565425864634017421893785295725018603017081577591951894613106553200791739236772548054960863698244377082555895340792333502677592866577407125754861698821490519378016599714299816676728508280591516025617007398349823998803550138253509643281356587890391673984203230249328543184993526088114144987062688108006408084163692161186231334345512408673087265609582581571374383047295218663060058703796302112229807886096772536025366345419074682565940912634983215715776501497463420545520162201920778252840206267342381347016651072414700653809834795757501276626060258153330840433559404307876221078026091600104680725878988642591518636296612873446346900149342345762678755959471009437685220337235319608150395756925765564350267425822908171255703496621459021897566316126108217284668835346829871137185504157669848320734586827536525938275549459059406558136185619169063817525138440036492737244200011233872305924377268135885828310271041856854019183491461472350768063966380731554435579339720327751508343743036586421930195835351645007656578417207527130575319060368095400620612052538844101849688847856142151735312589827236204492228107179579624511243068786040723874590890469942157152933226155637345312605492540537523959986899467907176359094348904850380138400818034271356776408090910425754196550147410972958243000009050905411686620295187212654579356095461101891661176031966927545989326834479936877506033333003729233912918723589418127537471405349870210072347406016257995146023874876911661578844105223392216343561838723108625337271326920219780490158085619581452290227194139563936081532830305826918573343930408932264960641609106090935063619807669104647443983827925473409081768194305925447758952314530816324553691564473215393760033249483197143752576330910351805252146967867966907057744902937256777696719693373040743334269102310751776398993104385605585813389026269770518317402243703276185592847799211303950131656101487951339177449498618802700156971505965139811269095927101495517400736071938797341165871519713571097956277832335685786603599358977472629123905565512830424070268753040819705435356632627036082737962703703708342388417637750266466221000994925080246904603041925179157846895842347325324314661524937536162028672845373669741006373680457278761010320014193530650964207639329655642646404045352289815435776358779357084079813418141898833803067099810043197526342706947540423740253779114927862020940751189280062300886915916904837533115241750615834938270071638381993749717776110909574481583073035799870408698935189346341491965350483236701472170030787398363805066440564044101617092784021452869143663498163501966851351340195416019079788272655287188783141900883955221673265450618949564746746609789959686068086687422564181554211411264550554920439822168696716749548007527271563151146425037341941665897512446927054526415067652606894994418988766026557195180351811194605406458044138070435793570400374713528178455982910817096061887899966397028478111919219845084479834366619525690627645847409260998586471747570476127618790898219868284332431762950060758218632075344561778211332047257278866995593751658689534316099817078221438604115923414095774586349879603133410894215970247483154614318392036020603337939556215558994076379325923575119796801503768021870775921667933364258823922743470861621688512754837447274247673939593776756634928915895079354575419487425203317143276761670608693041771518180935026895594174174118760652724032764725438553516204676031333757769941388124796885042004005740852643304355709439504696763429431243717547261799056112290676719651361058025647036790957707492922013764835203698058239417225670230048908709323053771455607813309888265447138818199099779941086554451435019711108120754136062131193130309924454369374939504957741045022310701447871521977506207492823682550606630279747114318836541450093836399959438701773025747203812379766140730370337731663834359974662947346545919254169104594285239207418594838454926015943005527803996064773267581860865034928062116854931564904766217556840773629854564787534970045894315650031539488217705766108898474894059160614751006271627311460532559678814223702175350668779874887755924570427888618210979288266822725149923278479701099235879611253255182606196262178661543592352997737313911091711021635517991251776760514055918073097765095796185905734603485590670753861917243573652410125481814069734739978202341682248462167892153138348039783907421375016505724607631214466656279227632581643597971345401405490624038475840211445374493388006287420001786552310007059166031022253680039870270110614663669364865793000984476211768756580507939341518119377598652219003891226751475091904460464257843201386226545121281242025896760647991514559577998309248680357223309935648605265705370780477869406122905779389967280408726529972029178136415912109116255712194762788004265429762936895941053090022872599851743370285308616442765177694634664654967142303158095886554682677019797593803814233758793076181880144988160256798808988280370155238293678094511656669251429232162756142484678486097936309295058374533982842787393600112263278156439184461276886361442446253429156324107342675647328503556122811098483491826677804888631865271664398625435427268524413043790187771726156202144274974507092292993730741320446416676218020182819113586375545661531095745974901395332975341932090376777286605194006615724460244184266925540662855070100264816942281718827369771213209424017444988743197057926492044932425927345200244887590623001505080691220038045742332626194379623340837288647690551545207710563736983656717428797087753806512930893037403558117141185882496086746675167771541342594447870821793120383576336502527977186310360884523175083953059547236569239158931804644489041330582474864603931534328678784467379208911850820270001958267811861113942242835133741295379343660366402569333768912527890394791355127704229685998462124840072628141306603581450216222991687405686755080719003693556718508974323894391564751212057810309709744855051784601289075028281660158927229910496135519286429594696861555391997051071780986888942901099670772886287844225662701583590934615772229426037204955250225720097113847848878331305512088774414751284203896079929212628845307131816557190913759473606406932447306696051866966193261450271430016882725990200845089781251672710967705927309723080335176166476034734481292422742633127099964936852288667598355043183778389514323889628955814733092271841180641869078684749597365009906997168335813009390440365096864639510322466802896456102290728326040145791560771304420640496375287490997455686396366882720798809688997014804544428075817440239195951497520908821363496936082716431848397992936210429500325453753713567146394396702583301554273289150249987452818996121169778736141178402086878212824440799201402714672279670748612304493784641543823904687123780563247810487051965234128906367808345922456506117825475591428638925663790047635462655620320719143554806496435045764893976738383638002314608308285716630981544277102007208245492517854219248938738721155968384403541798528957956187365315853725801028710633977780648923432625898665850021685696713527099643214590957142047314685237157172723264437356370991552267638309520380164846993446906434394122073975219566311720481639051752657399334696266251524520444932947112644354605363023526192579450385821900553936249781445955309143650895651909748121728746493548432663372511034761657449948074571024552002658559053229537610919103863097991155411916534084749297801833204712246691563556857709100400953967919592699199663489879335692372204089353900604460676795738494040478630045665527245187077925785510217116474306826368579626954289254539264536376029921835360705815485427677170603188798997227495352771876988748659758091156853548553290149080857496750440362136648694858100754678204509738500676150715000801535730038735381432370547604964355218784808864186709424619548798886401261306258097355792398004859202229047242992573690294020205612273707154554315160291134135124037848126778761566284296244910193335953739256084269447209793261508008399643815944741896894551060741797108144059412677699328923160331077449964144270073845280329119061485342894438141488548166063867139887293391719134189784425571092182771812866699875414791498156020557646757770015365750967241303337968866734382438845499830257551118198544525767780378041813964181800958655227055858492914558586454500053379194649927657045770350643239019541649437307023947112214694812660445670414598188225574112398150415413535934166927984398795474840966540242406174154027985650927377382870156601650864213125565948265639664439818705006169135565000279383461369147076715508050547477906078668092267365364316033975984237183724245291904134675559760470477323828345355509900626193242250160611135302520441072798276480728116783328075398005223480480135736442316017814204130013495194011930605268298068935807370702305939912363427699370316438274748030947536739642386052433791928175849883020236175545616594108141618513305659722061111866149875523530050852623861670448865836935523252102971519394787430704310684668043999438202013583906266318221320086413566937920904373779437914052646275929467546975495116490516563689430377383543841066239970373088018422100930318334029215725645847497511148653195672340828078503656886507337279246631317134867013080321200811049759358783884942257941119486478461933918846270089595353790465597718747971569987686752358633741955376847912369966055794640837524887971325328578840145896775301349883599034499578285928112383547741625940854970064928371174730862650201887978081385235525785677823781713691359113489266189059702309208887028016557297554309752664479508452301398049212924561756139973942190014944760645084021152597685692958079910901944666691267162900216672017544210511067906825777603611229032989480167684532344317837092106054351950707276865228174078807754797500487460346181387323387229116632508792006462052030792341670236513573400178090472446412111402950772126943372916840520596996026610416269567198192448279559173345059298326361220578945943431914750708509326530243477524127178325890111168870256226043676642743358330570455349596821467378644000492196359086794250854924429812795825720050526186083404491620822724758376694710357940315594006948602490768708385010541248546537715703272553310755209484904828388724821594137172368497975950172549985578161455194633594270669963314081981871846499195051763478405215617701982664468632191528303491659334796969255127187555007478839237137090114596410540842819988611400358035033583156496003529228748077974082919538724723165077655668043081850816065215761676832983378227966566566860205337187153026949010551359532693114129198864764616253019329000745041106676803536830566717261892423086764590990538965794735125542714005025338583425468041410654188584578947432893904023098552818217278269874924335247792263010201181431348220213171399840853103155844081430002987042400190082891451911566093707470827043196062187383520347149967026910216204935786264905595194005412629949356619622988221730381920681038726316217789556027021470908519948811404479366062905644056538540700555724245405175227753727927844800731105683140644766321528909243976940195369136418793314555102316127142529095341899845127189473789201004476383473535624557247598424087044476782862496209305296176644862491104677251520613548360763841903671738325404824829939922210060106022990155534019972372070591089888116735301072179212937769874053546290523466581466763041949785567829721237791156903783597446914095586591786672719403180735795343072669976852657175810279865505134753220648964529501904173853787745662533552081794932508480460520540074978558572219700056225123731903435716374813244872005911724539826737736618408843672076875511557599238109812473250699394009164337545076805929308542730196733749145619766018420488386532925076588762968853470659286371227785279615133214376362767488432176422440601561794929466282662120134975297977077723197642237676161342331103967189555739487478382636334322442349846523451894653233121409706142570167062128690814760440744881318221337927562260237398615027146313595777550098589247351762398796277036802175276995483673385631804847730845979969849640874643672805771171576895502443028469214863352276448468836731650014458518000231790612876667007985628584413491720345499541816741166319822176014127331154348578751373070738863462821404103691931309022815020204132712668048458412258103271970271675449907703583656905483478537805872387611954602992315288432042395760057359116649079047451827331241398580759890682965667691402725917185492747717242444564043944032816256474396184047268980266927348489247341665467190429453501175341992742873358726871939538550831248909677476734957106963910372836113246402914386282121201268813085926580210643543962283088665055218447374014677316367951409607665845529135006094137052673882373123845143939927932143757805786299775656188513499295908562922331898778613857296593904832946241748852601010902672753148359103375360144906279635102650737907394764237133075443635873641630545464330714766894930866068895342110668233689568365134190675465397548217552695949095606268183393350886247193541300014028445425337559500940341589898713028152331068934003054410953067633262658308592130809366830443628278454034699457637913388041999442769667054774623843558049658817191634143239121468352474311150390992867133112574111063233749653532997677063663431826583338689542784916829465569211540622731220054508723093659374672277373321894046859975638576503850212319218401795068403943024715766566032871734751648931587617247769764864550277153162235302497920966210037897671230565139043579624633408257908632923530035145429211260242272714396599092480685458563680097865843902558048401442868267584766029306468213313740950862847986249352975866480342861491125470667868878223577929406132807857205805622095179877116541111158188152307406329953436920262726772979971738039187425200093706995899293816936853457478504481563311008384765548756513328541941450531033945474143553964980541452029305989528135651584696615603281880732903104381972926216071251529502225732387955474384319219597930666539854839007956899640501531122753195308800595858058186487161092925831401221764223358425475335008426362111072066269597602369525942394237062817449411934069878793839629054903734409253768361278196506779721109051083412196654204992109255027450180966353002342376324664315833069755496480039729354741948802696474820109317973551796325146708671559605846698710094517980529166635355994774309327745844886445249459427610091505883051390562607327790819669791811548713119760121971188912668178207027051204863653716158954620834439139026290122745469561358425812281520525427795807415599462614159209668226478800501127313807553182050643441010131209043243210865472159977074754484094180740243398580209655824641562383274532361366576471778280203186871719198932812694550395182338455037156132693302754835327758091489627733543855927364853701555596282033676367187927392312175350935258475720000815161363211759881219750813544583704779773853431553914022810072114279517238363289385380099657180555890966290495065502034874166019697169772419000472956252386257379315427022805267010440944878714855751817251593628987287721111292694292590425723144857715315110682513637569419567937905474543791854286289364302241162175532441907125444137076177304129243377922020163288603453942325183670121587867274191764899150585084959511739043846717971828607960414373495184479627176563971381316873117980271479013252133176816218452331490719298209677916137908628185015445830278579763383477125325319836848649846826971374910955981900123816549206109040251524891736431428269942006567280023644941987744816033908190688175906899332432326348239882312142063871935053856582009778823988241657600588333042513820326615427429495721737434625966338677146002178263066313138802776052933258770472483230173840870296880255582365239467100691403997003958108584616619487457672289888474048747193268302095378845922228189145387228467231362988853377622193798671158451185396632603358218287664485478366234050110235081144009264352606351256856378480764598250186973716647442808580278847666207702884752039058707446053968621793633620928227097865902117065760102074390313077494461754367443628791246809594328812983954763129731861379739969356814011806965768563906063527404241071025674657037537482238656400925215243075907678050784940620047165280731797597719470928298647991199347131559958385564776304460739832093474302025949324157741590373158809102226886705447009066321407291081564764755563744189118431530984105337194082582053895453327937432104706490932104867953649822359986252716809651719259789903312041769294414172206438263153993471959227675148529235833399088175098499128987491592605738548145495950695770192480004966791519887527838246526113825096367946507497091698077174875021967746510436514346990799999084010110355761825251812680868955933321374717487908608250819152119632550894205805048797398101578218222139238132287789715653785758137847533066017317869707403918489563749270903455447320048398048028656653834783291978111475011972953824080588351876823532756209021307146857835415167988709534966376134894846697693532942053302999308791211215397836951503889995205603715808768895445042575217039962907063284710991214961809107300571289882258397907228534902705658900994713567238703488693880272806151232693751102112445289825413133767972978090472904061877624849137456922512990713723429231787344599050003287220319080142112945420404463350082060205246706510446928064390025679390587675139310312505111891052884978419392664806665779614244088733227106124881975837222394434423208414554155169407355438874048582026341113023457780328129630863053046889431902096809129288871267122022068240831807934808470554532734132946849126689463639019290578490132748689309226873236663804776489150018586250893617435959853823037203753593536711999365479444777544712038231348503379873709502154915884956119951997405171880986963896658546746900458367709211466804574180562967284231621024067723703286502998804679116219080914460304177781442574808076555562275233157583811037979309695255512410766714554028974437245462118750366623771461882205569111506267657741203425507330913767946970525135909998773533838251949083249407784063127390182567982090316289744156592541046929327188639439877983688230520544062478366967394153824368314403819447100260284507016529600537244775424482869272886246764271076294626038882370534549852461960861480776203030602507397364412600868192618787343432670377174781007253424153434148659487426672892918828314538485046891255418473378469155022564373617397573259567448363535353084630654235196286673427766075894692999387685407259160267820888008701096115585950301554934566330510755125986753751992158255375756023737396861312398224800729652900523592005475620444273406937088205601651488161499565856266717992935797176330411820219310114437096570285056512506233972999113741552186071337510357276487942499584963446772725346290346162225979942649249253436687786335105335426012685192324725385920663727630718148075364248938930072483898575870199144453202311462902373918438552068993409933125511540439333958810060981329064285675417679324061302511916220056279706821799815335528446259212390214495768727144625019474050427694358709591580866863440782861221339637629686482572348955491896797123820657409440835980385009151050958404119797980908512292723007928131235056222142274638378425869838695797010393387253658235543521516305085140853594873067799145129008106097988192727250353801310424466004127536465202170420641481336182336589239056234961352917986660284001813308741871900415718589124539203013665482431361030963672999800758149827211157348894065291904840195257878156775281909433110553803844723657818676884041691617926561970997040102039414000573530506617411506971439103961732190623502671965235279199108230728637252600698424252640457713049156797183551492640684979372148083978422363269238982883842764058780935772796055330029782577613235496689674999187849058484841972699379000402499187848420552502392993633989348111194866558331274605692683714009044603545556732459151943504028159753485498620671141008491456963512557710570311921245473540434435783202569753331521132520476007302393885573466333869261865776246696376568142170116918367637365705172369858628730423841504628067246993005047831817780211789747208642317966245237010702279053534538992169728171467733396963307691452582201086529435974347293399385695394540033439261237074470677858651154379397455819517990880544550827170997578197238558738725590806104771901197087457135497720196196061966747419224170838642594510400795691253910516415660028101452956372500827686283639054983519316706041370902453767370819493611195461766791525511767647792248889007299111718463431039987062393046663543627477300154402224847178612437396599200836689175989116300425798636127234525186646804698551747761454702771577026911862677497872376793367898071912866860348119331085729118659324121686832787282527049780216317318633561823591202165349541199047097229627702565686525902435747351783819712978413831025210991173400720374852331304819817085923804975149408971236274259281473826769459293706374010669911671966568622213438265566091298177493137931997073407805123458133408615692182888307393539099443832490293508935554088043577828755470214789434576956231487045092508095506753960404409135555040461854161177225430528227762001985134876267412507796371125816288167989117325008187172283914411082737406664791320653007565463688661456304254434979039970302234208672363666614707294098859678182440283600333590396754058902565850276149601821780803017041582893164320845926536376134720976408727511569256008264049405518389127449205787568674112093580734274903996703645533110542190954526418848512117078757500577593185728232833719696264736753832817042851893219821721159203665660527535595632933193216061232265662103517990767637788395212728890820600603059685908966570262627444597186475793829092081525674765983630281986524449649028581825498944864808277237638040611739496525719022907446233555607088577254760740360741115226777040807980090127987132298503651674224952061250469505120298603715188217076820105156819504296979207867169808162773567899974325347491834796097758061620339011636968000633406874091907664018695037203122274675997458329661145556475859090634482959999999529665452793017037685596400276379807158025794712384944276660896974415775536146971574394729233305002166268295950944133021485188044469684802110076509723265186341281676649447629446948632956349929056164337651026306618704181045095540000003766360783161684852831990146473731486410222767493636482846978693651809526077169519728503519889131697793363963156772158919329291294670555376325668517969175660758796392225727394105752213203239790144409657190497983271766974605077502969463046831202623594317862508584874471578500720068710419373868828027404557387532365011991489439601720043248443792257785219323487128531867550620314248368025764672650427116766243527545072729775500867108177306763710582526224212363227859814801156485801467861179478688393199542469285898790603979190129426955212496729981664143350583736166839938066424814907823037995047977855581763321892958155340559448516532105588529320724564636648735645092615149360093393024900677720583710167749812935145680111635005787586147521631946658677838733657502573954791417729009388429048440210403144751362721176037449688457612448317265394233215353397456088400453007971340907477017666517431160222957684680093099089233864575636585219663519122382675646675436756169118221796020895449859593247029995837623153590390062905637271488494020259608726555917603687012458979464983420705289684784593849276433911661395542011076585387620146940408767302616259759356190990767700393127522049177095378262276325807246259113398619978693933616661995555624382229151717389419953310710152997266467828835030536201242893882850049876351821723926266073013825014106480555777514078825193814966438377097386326272645499041841961135130022292760035265468062724439554651736558367800384228345893985354718558464171556761683358328605234893856877408234923368731267143611425996115271628953827470032830959203651701613378754633777756939280949260510850791443713837830607061435822189703394409872947235550409824990755244167362424504606250753582496754758338196924196294509781916773050245272484070236076212845832918338719961598368100039100743392222245145471550585313636316712140348676913905679881150233143193922979001569644942551266632183445761522114653770432634590530885903033637081271045010287948272070093108022965413077451556868219507358930406471218916411743570697062252753971762584718540863894488620106266315438831990592356236157096009668611230639496971977772206932298091823941096707862250696867273918221742256990552608547042061579978645406887171971271378681342348086991531032368617614940086374194959322566172151033023742294457949138598976946214079986703078917478564709985382635757364501530771712661240163182213980392243603542582891206170302195785190739302403280939659899081902972981918099595670632190663780718148282931740697527271817242579573158796575785273205604523161992199562926050614047106257867543610598104928855406421691121722600214149821914130328234931122879293477618060167801447420263194911768688201881526683199384735540596069209412084358805109643574075526090466783586742016324729284517743550852783682641625869613693013513231234686733664463223019439350382377330180189096871022499027044722684568017097655204780131683513235220996437476350114337376638579083650458945024110910550418447046386768433373826830386034295639401256209702907748609086616467441613019769492555615110356303648960943431008333801185215640627336004864901826708882070493999304815071436196934274732900997446770884524960131618207894858470825482805313173321012320477459146999031168465442986445623153536005887484939831426752826041957767457924388299718210699352904204223175263067653213205127155131737526106950519317498899119069555680756306484641025329365737567800070441353524813067304493004763804741777986953762088891662628771453996978848986893175383692419228567812770901418694744411597572613673114203401800090940802123667984965151807744650142827357894930364179734091843550684604373081339231822522150409407869882828828731302140627199692746619884293496865062463673509017363672256650476956374889918398993153026301965374014583256326244387509219724037374853187535312333153461254772218321074749914317621159192932451224426195397723093076607680523652606613403112035553408278361250109966694765338538899740333382214176444337016548179167340136455535509146955198647066534229290846516313647722461464757492958586019897695300551613706603628883635325546595705324103211365413456418482464725896487656486318484527599182164430678523117864747930134357855367269739628736414440567088791961389852410280411294043653603948289041989171867021036453831422005962776017195265337178306615981352227104599697854585169918517879744142877003592759433521471260200932256782182680856393506579311358043026371877584522591199777861639558029987802271757251066677319467014087410792762251596198117945095581510319969635856565958586621455532129857704035040111230566395494891753295494777973743196920500995311256111782245087465257635752517283933106533723269820916191136442365546009458736590673565009237982748712142533989880033499633585047329606975556422851538246947200500636678187866781149027375880008164892591415234544988284488103642844852302832374550787073861514898982565396816545724939574768295278234876079733507746369329501398016855216968252110197449467031240393927772517132393424128851359500395685501242434159665491786049175746147195436276148294612416243607009251387502707730408456456305734411931454454603613730884543385312641057659424592014240748141289460521371341656616533714525255599406392231581871850535239656865727558129288026242881851366219739996497273973247499855899871391665606044475946529950739778551728000031824593206080666390153787756740193300682907340833577865517111154095704977644902089373078218502326155737937402049577360384568980192760493589331218116628038849496828361056214396035574860611556158019824451586662890661515135627228201977825806611415960654673621256930445138608428599667542154874396605627575077187948262707215271008142337735050011334914635350945993580914846186661193907802525183003312678730473049409426767214831485427415325574094455405629024789512625131298820489923318184319326396395986675996574995802952834813344827648961916507499380034192734822765502667787749714736885091385220122124176547403726658998990078705675669653676097912900398971361227490927654240754483355278911878379573663741167352434570835341299939148580781429277361445431209971246490525574528162993960906939493516853439880630670871092448769532811473182174708287576769030414772792004042698965810664230133188382882656289754159333103549929600330512037213720863004931557304172474737034843864185441433993765603936429365855409625305854270062272499328102121631845983756326711388412239044478885592696740352210372608178698789155415100320399914833164387411814998835597799858845519623969141410621172626075454949831147576148827955421906661659856558899935590497621360975589670053589806645643774639541160403533639802060694738237405542282886679008028467823919800626583272755189531953293994689379627821572254177520171519547869120786095168395843773465002268066866972537067701301855756936491471691655176520592822309481739411465387117601331626112388133995247194475197904896640120671226586559411166012187412389177636990619812242145617795386814620093805528144058558641557819109931486096613957853361099903337905089055585223911214819503924087859297156406008790888319097150476118980768612240491107389012408244704705554955835434039445482625292020696646676334267769369265928254679983893593907965162777343121872244921549560962275347171919051240403586436468247548735339886315206434170613143355280685782881801504310156384743425613965227775050243038633741373320084257704742952952996970748040867397644122365382461753020035520982645855953771764516717338788622347210813099349286385401658649773139835253619730262961101311541963634730151474167653907072749069144653638766538959888076932572305737989371829838569874820826509798413024336668459780207856974448227889925636807580211256729805467048581828564550905542787258817233127572044284452042018289896170258955423818413812110377388451228230476178905454960997156354269208057977509796032816267636576897350286224697754194850024970053864741029072800858695082294404915922799525241538282202933804414548020852332891364484228453020498063939557966489959517361570747388808174985669156739601288900040989914417965288115890576791700881654556431415968856219538702401783526994790833583219459178290616338050612474599512972516706319597839004660087205612495328951027447524441325481363492679536188686834629264115107856628245264554280934122526248201697430121583966206553600426780337425186431639371194004248116683438660826944436936122312225936170871562201423499949588522105187200555006482082434606087131385457071580739512834522146873397631902896869287055749551939935516307743728909793475719612098205860895455468360579313881222468031056027252056309091998947203407256355716839193199324771174395881414165336558627529681739271881390796392679277704039398852733182995870188783030317982247842223805580730967612031827893736293388605372924477334399891203601378997360844839149265060787245111296746922567532230082445160640167909847993922635267381144459357181888338121173023795962082298035604041307385354012780703718009154569374711036611593734081187490130670474407546353244705258766300454475423153299814408259260486943984259718816904212257376946300703864063984338633429874070446490958462955470735066427347660901952051929882817671281430498874582439555920774736315935165641064800057649038525788173703221885048042296290324005055712631054109267677058090090086273486212201310713183269496452858656543948812993069328032971942357085881976200660583618576254102448006939574792134631407820503024097216709164692652582013428244575605737574628717928015055676984077312298708647407065237922908109722145340337761121411485933877944684872004380976763423733909496893915680408250644376516291763762073600691549336038275060333904404930140043701975187874587721171083274042672841180024469899074213614116467879944075113163730993428807951417386196820606836333666056277592309604606608586636288370846107757449563839025305717118387765859963688569831090510630780626233218339540557329195992920037667323745001519810610168568403787527550475247020663184516270944539515066758932358611574868816454088620373301368258033472481252334427513590644030950801649552133899107199476883562231716012043637944541268305880283684000581417215477537326364843102529012489523274511624985010054595358894010786422647813138831860402170271237752533888031052376876098948207995322945363501774101537694992354459818903366537555945360793457010238925278695814524211124273874469982256568531180877553313019678962384074183050929867718539960948588577397173670068583151961104639914804628957441729076249472140477467023771606987504620776340058586684246481521890389679296030757910838615538455769182897224963150809741450132828529551895326896636594852828505913324506164421703269780750170717403470904968540641752111797398861513608518833587413626786788090820957341272761553190497182533516199327755334270176168648576412960727016513326990574453479166498814002065128188450285898176976959722521018704033207577514206701949187960647413826174142385387831708464355572007790009759694558788342558351984736515988133623968586790871277889006171564703506002650728007485625598689062748008063828577385769872360266090951414168345161652702640328498811989764991017436163599246095133014943316131796049025217923383010841072901738690602669226148882566606359198201981662563298529591799433940328853777384461909610963459176199789068948423764694014070312643211666574607642491071750122266382889250924672959374488616656191930112429958398149557567207719699304673686501076803793534370331419320509438543627109072128806381958474662020138324783326788960863352230786413187357784433682862727588617574675001046180894052500878059332399437016630331543116712163324523709206776113868510076554827334170293994182637513472205322978375402204680121339155579971904254647025320863242751321094799364194155464267131763118579377423544638393377857355421739132961259999118212330245459896575508169224262452853906707705883798111514565730529389175233563903258128814720240566065353470716462780817385686932842800916279494288012904155256027058220783476820972412363468466251855502312663023826469329520881396838755552254076461267218493133590662611410578141073042038152941655307485789525402021200725789817450251169146330495725939228046290084725955429215103760762478225443377645691073136755016493893801180894807360323764048897797246032328034487516710002674086360010438060773775481391780394109335298643768202490181703739967165982301432632313956923494035932938220444224354113548155942503718088831204825434072055925222469720887183882101967784839757703875139518565713081284689118415957807808798158464112638737894056587912092386506349755788541374943927350374521266861704550176493039692072880211397003030744738708031375965923735405079869291408843594083436648021867967324420607469016713319301187921453002977796747673906846151877749185154422802522871563356449366270020759345821329868930477337247603816832982775787949156603639089110004895308711215449384966820564747199305036019486405745455591439211243243836920642318097092655697333652143237860022130922773143434890224139740964373008883383264530718238919352622663699791251455604476721022822556752194543709795555372387619883845477011953239023884685551679362195267859589850844659986012035311237145500221874809849214898082192302927885487359531275985775183847047066584846881224660278626790296487715851091342063020651817078380579902977082413548972086408820003665208052983806303477210759334110364170734962571744812749748926957447102808615528066280795824864368128913983964497069235073987062724743364281320134358293398013228492012563820537962996958631850990440196643258013459906997058847032608116347021923317113229951766429488150026846548178353997990399158339395239920328485473470910435352353756324854818263172177057243306118817078339121733378635329995184086442185305984432268873764783679462837153779766928064205144681486521575652829496544887185374674649604315944919521622882048542481878087711706691181197586847131999610470549548141217381682549449455345590783612631868823349449215280195985089228882281638550163105863909395037660927800911024241005606498658326428251203828552298461447609246935206979669782081383618377084843235494328619277811022068722018855163738278443839762426326715062456893124454063541562732379434364543370160907568479220123442004322370935124202002376380196600558040401956033919857722333699747835272145496751546542457949911342148980343786061885826452387006489069553818302348132403611212716774360291395481125150610336977023305157060775847054148210583198922929588850856123532474394642155132013196768859187470711800465603488639289369596241598294654432109397658226601871757973060369948790215300129335445973602497517471815836651693136423088294086538883705052801477135639184795352220341037831169004543781227039070921071998651160144585981107320282663128878822353088210279852251599628079514441803045956580646994794943101291762358682518223065513398835613438636091227753565858146198943987343890603205910901914087269686273910844883390488141643901783727991564016624894670084072978896684219587303364491896323744275137297892558564525066174438550300862990907389576415550168579953093530834873656921885808051843614731096773314971609545952427233896954344943448833492547364467780382206142903916346498202179721070885187141551761955951566558798109832307055333722786084683107590017835390172270913945627156347644006999433405506421826322360459788017670255328862203403344174886208875204437598525668702752671913563863549990973019622905923165784170378016412780032344874879823810919374405129404012699555073814834611809811292460328745186525590716106157032461505876020190535026999892397383251608832689578286579546914391725158430450550521841312170375064690080322680394655836598892168029474942743000240530940877227861874642330496169997056103693264170022914925637014389680641992692031306932780439415439761378502001209613674916342808586071318587512942097777498552822103495005780168538427480048621282133232583534074505645395721463176258761341106256213205770263913684706954442914253521692880488071370074673739552896320953785959764065230106263638212651240524317612261916996496418473771238538866845896132548782185533239218883889872808571920797808635063496848493629911805302766695133855764176616495308236581670315346606032552588723096309301032333578169250826994028211327134649740886746389962398044076976000305811405468235386574229307138806542518782947414514078701804556718465252518033022121549861668585940131424722801368938239572827095106952061292651770173022644228248076307154077127499347029397823941972756320060323668359504627769498560463933476531146107226854188627871110363039535555604297512485256970821695815102044749198160442829272849585419609373258889692003791509532430392559673361303683599184001595432126521822906716574414951007602228656038885581157557690652065601380749631115332645191604046893957276367650278621969999548185480822298941020708401482221366199687422021961436249441019230786541526220602358922320351239413960120588360431883162497371141337399471662676671475912171806842308352024396361703379949260130957544206904183211059017583184079987652026616686139928325739843200863648658317078575174455773644354544868526518329844991870740296704985807859663549387516961878662688481524312942681156369494762422333241042128815390402752819407178166431426289423065958401110169362000391310649804552506175445124690806669205068721752163822722649865761072480416653343937674264643715792052088465889774370362126381571326205096752935877377048022083945990814642674016143193386210531744583204005985537963931268307993593897144575303514833625297437652416804044499928584861069268224590736046560419831064189134591570967845749270761065421403217510462398804625496871478976423493415693547953574572130693211408842942903374094846299013519658873294411155953279784339005082847860667949667728645060519254481242554928538561053593121311711804089059652203518151069771719809912880288465610909343118060295258422386851515592557525520443482863757480040531049627792638857235202489426892252792619854103878713629672369584714775733216817264321151563773167130723689240593542404986412460853194248366825324711247654093226727137169823173314966464847730098425458932373865391666914055232693906185910517037707321897155958688943845900911950165489767020710489554955338544865108369621866637670809438234782671757232400552231987844956079370884404695184620872977527259561651141215844216344150659408448155890481427597957305741540086133401122167733287602441401013141747160054734616030389916982832066592557227947835727166232868807810323484868955048501660356263132163020770397715969052932101880593085490698739091741156347446576991027511908042330398733711549425308430182665632237565992566117867285705854495775794815770427696006577273675784942871489828543264744160047932424807921487333652162226185258608690256883970132870924111667569846030674871264001369038674535491987877106914948936313478485826395832192652042083419098515436920756388678450539595340356802375687780358877918219224718022774341466005012394386732030096546830166305943453472732515988658795207077589325138022275995010398199264197369113683074060155658579354501577893862825645745019899009871167322057784897452094361522992277835990178793531232934753781455785181312181422784066046444708209448603158342698201660633731302265714951234436922668878550626985092042864910213105690888175232301391202123501521652529193663784488577930680069107456660588258589127793203614255359801715724682378560401342194026166710989983069146955076709211476381467458578031913467943109950347601527207661889231172209455280522781055989397879530125627040755083181689602359418650372221986178388228578763529125619516423967224151727122193828335240766610965976462127231732357364491166827442361398967554991922532041505334346794645755618438673240567072441278227786809516667747418317272660811737350588616529161181292395057776897748721875068978386701284361121122862267969822983568849720143726435879326357978880683643874225539073009361815598949995437694063571803558739464967621721661054972397569212260331605659994245468686200004872855349345442465888031282444096380881022313612008011852833280960250877348483611173654450992155069879441779766016240034845520702719974760635640177023087200622379645357514152283041371909025081981755329976483789652627821870001856076778560203497670426013285789238383699175001051286180413041773071893056051603680400380989052889348851656370401704262080612007714387986471180064007969932591250399686117776271062021790901428523836814983146810628033414096587462991534357480787360676388715059835649913573314706603577364907203680185999252562731958434322786012983588722753985226021721814514781382113320233989042657022076913483337036267811535574764252758301956634547511207784244559725153791608911529852629459752162094049858275236101145634623994593093275559903570329637003107061830459854831962974157159406417905742859718528440682036537087393969650738164249550165409059474457539988412339469233930534266356235473777005975822892287463354926597562345641916987519951101463771550500491755322241301670652556162272716050161427487757523629560486344513661824537473080240519148012367399287358066179251589651824927888769279132632114543137190857243772527407621578173985901943679705619054333960933289777161505789690175458848538275172755533504310452817294547964032863762278551729047738142718805094217382509717030763405094757850406630015365775333712259144632186271345210156007930556757605513473070841480925180249943771638769623609923257659929736252720730298885130579364745444705717700965785714614687710862728735663111136027422403655792880260904367900049325758141194133658724295149062508565739014083020515579338539153211888841199699553193186791913671911281441156017460973129932514018413045375630958537260673779223599936022684136741837396614744400873784665607441508533254291355982596296074906610331136785980208038527418847566283272112296931463802704313246730355958962641950892332513422331021913452015841204498988459387202997013974644306950598742453463142983151355339687622243355098037946153413953479429140704525856204502809720036342955589054433968593306759708824721949601845135210369955154775419728485422386658188978511781706334795282545212842936398331447527068739911477046389443741384080022227013084386906547477744674437002057467715270644124777142962260029260324471533280934454780420621037366088187424032142534672663071929339552887551467412476031656064998026687200163072267118785136624493745585988092698214028597712197438906106878593748137849354163010255288021272674420511702219833871567811067142058191807405383982620770497370568564249230939851667340767084779155825765331791118742838561361857967505450731533905673912131568423156520913142578348729976204818544601005331557924722768318123754811657063716277251006565340375840038401862329823336458585317378293443483340313416704869671548023469115053011901667680658652374450350295996609596845638816977219395266789433355087824543316948656937693410086108755892331369218412183793596789695506849033687387892440761459677259093750761284940345162961353353789452924081513862956079607613342076018940189150326771244720486755924807705852009965046411974786274013752770344291287893951510154316255177863482986763563925954127257273434884516541155255007649975773932723431085879511919534965516017000579214965774876545148987307570374395223511558020237941385531681367628447485337939926332258784634324837417523206539896925509772599457789808887061470751219845585922928916298704566061054464493821867256575621102433543126026089514933278031729113440063474002384434297271885645546306588087176105479376649935218018316154446387407255035115111843046633001184562190712499929835853988643831059764911634529393926959075060017328345260855906208713871997173357839002991337551801285381964742786388909731849911476785486777967288806043895535511544451698861027436434544499294004283101543359639986109415993051517256259326427904179824592970543346581236255764469587465923206875675272396248805227515437778473799609672545346243339142158706713478524763224795920000466111000215412520797436409230701093677793500662187184080657418420086411191280874504879915650215231857367305795211928269071012300348452053973943713253979782733769781367550912761488902415385126881018821285456136925018493744647686872632502540722242990684608318706667854582106215344334746608964219037195293433234995223272029210239910151371737000451419385097238309350142380361443451213031276474000724437457605720208841266923568175487876546038743039948248503506684641168864296053794540084209251104709662970548335241556387241011667788991142760114060467185393702124578279381139627317706503694809759994873501938785967396553951005697304909155909795909756001767668266197277786807160260079912063567245332125612314161054923382958782904579506864216114512066526117457857124697343264180981611894960767917739008110212154086465913268491382017026358521282757437351939830670997958836176574948530113514292524458738516462267626361280787246895976599745499460117383546745780324065079993895624663754726388712064633049865837715739133136104639463095344774382999906058516133943045216804306198448641643849514884311385501981732896405237976054584780678950053618148902740726353387453400192372629575586075567738353995522550482498294010260007176873101961176636740716005457247458003307610597274352056517664336361471815390193094388787308704099866149855351005136455535800076456919446589414420659199324421394877150667767448784812884008939958896989365136133440459367441267744121781320747091133290310720633876335603124346033292298752050603355425069009637391652086727546860954544924183972320257219331116634598124553813463304406193385638268016419168859677910840799972967765550954989183571603234551697096640062326225850230756630092283410080776992044194168232145031956236577395747552494802581703315195100722693055710413918491504552471537848730737745396583231776047438344193615182013227398368794658400739333316319630941049625476061622182688197454434099177191766728360357779348757282643962845897633840605525942689698796747573721864942013656710016716502422074365683361274039573911280659739706832336737993638990035507945986282038431951661635301782363648979116528204862477585983325877743314447406071900868125707163406708297950059519074381297585039062061956943371427271488458993689208746739648249322807735949427347921043968773610870142059990180761982816714412989016598539837648913484184168798121538195864882244640232642435208174302024604933651047704671820679740389796101130370484047698750779442930213530907755885444149874256000601226640514764238623016488555388356891924033692014124276995683566564052927070825573211044305009658121020948624534510644495016745365454888562253010535222970491015097497029135878981135053055363809398398176458538820774696122138438637179602433152586266150606112049189033708458669449122561129498726298830625155249023421245345075882875406852061977434495833622300823826393241881894853802763002155303751538432529703838581635854949182434665550482911919634370415613065605332459472180492024832237254179879416912936167668005715095065626773772894336330309670714710647869966304894445988235169198187331832686188816487110852206762799515676553546739425329971169336530158057651675927770242592240655356771782829369690143773124450445280667313829165639997691927196377553937302927054820108729761869378765936009065136070112047987725767256772619918030907304804680629718943558005257507313565813855205099768086068056362833835893520772941153484568305596549164416102758063646213020060417730001561467044179016492175015333916489991379340009502470344875962924507697183540507233831412359412397889996301125129941082625835334206098746860724063403023137297446630965837731689097128428973640518181220621345195202758267877722541117791170842860180910693593728141319854314540016017330441313487202317674537749221673336606591529016232118329946335348769862332367213670349583691800380872822867310711142063662890227158538324430383210501123652680464406162266517805829398286790256711467749667071020849597399185500588797557789736561239117449662420206844909908192833078609805343000487246392193480363743609858869370700902255895188656478955696202039902588532161879405050721784635453336143149986079022869583041172602859610361621566471682686563825605798881935086783971917166062672050734404056093027891083135598254975090001341200962935176482364467498049870264420734809231011452926744149881193166624543175273338252029562128476430774164333575569430002551607747240376200983664176977857104494289546744387546627805951148762322925213552021926689203756525600856191073567218489962975582839672903352801920276796645477937995470178979387782327382097466959926350306849531162651631495469043735466763971786089364889500194845204356516125098552805023673597836734572431297974788493895991044656093409282259492354398893731218242294549853275245007130573136358339801085212356525716067955723636783885728602379208680110619117439759489339110500513400369158005853152172957071044781348798551882015006321867111356963006838431642247819853544389253782293899544207244185644561066584775172451058511845105741514353367332112976639738745274028697673445552232710841310295403027858787822245850068004985246404899671916765813974037611050348800686497643269049357188872417075441769672287996594540386662764978632000207241713021487742657426870641587827583131882656732629228279706808250360464600165637826088846068673031603036181160618266205899339918857312734518842945007287716488022649989785205028868163269867393923350993555352960488080738013904783594314244567675273273993740401960625570033892812343969439875669997808176534430486389161239883021287817934323757070014556338605023663179179359548999741233861687845464156662694628050721077854465679242498983508834670921031556818316876915190534007829254626901571722705507866809622225648975536170449380427988384177672118117929387942585040843892312241908765192740628072664008947746035509983605261057219838390909423439348548271140708602446922412809212630406951710632346615066368879929167216737898790482001792882850246763887273014287179822061923958495318524156284915104901704242392892495760288660125487099505740237006842647273532981059953299524570641975634143882417756614424354860333324605271363854954660277067293118929106195146539578337741494384558063948104442461070188337424369958690196756674038470049272512712654542677984141962851254626814043299266846972918544131996784503718912132201653213312719133212376450291204352206722429584012594397079125191173546281434710370522948183760197956389759833382032653778435017803582538270382083572602881696183513272146331727399859843926938373048551870540036490620372483466948120591124590007536735777220437761364010218864093299131260289968884747176056379604005321709053085781367963616308916814066226314335994720658069835203902283513051231302032094178905317822579364631241232402857878516717272052392285365810726301821414747810534222773822133821789362919689637550533408987341924146429607515598574429282261244888927521353617343062678848943879749747172400424162881948146420249135620659289027084366520598620707394101749872894243409630154676185430210540839256998446028980418353272042146562716421918080105739009692610004710362414095285968783105379431780327030578065299433061354437927419288634102520462871814537122319609569725057910916774121413229202977140715680256302383805400946106100185835120504332937376087168616508332558131295661880499697871466293440655083206302272265066236527839486031041047980005514747581974774132410092913730160960833531556544936057094720886141510690061921389590646605999111817360352331092841505938535026592977051578698929518403946534174520410027773126363373128306405721197014166036976793808715239052568750934219119082429767114685595720500042448698598003300309115588975890247067966550000065276586617626852853616753570550676124989730297036054673997783198516940187677549289115107622474212078699659978853790897805427515051104944865018949847048225725716023704305552539431746489703068575446380108620726534465165025520092826732756726749714726371430549062560382734701066513305942255094026220799787336248269899753551735526883007136940920084158191592203436965104555162580176247290849648774867999744808114925621110604683175088136092267440578148980834927726367601373791716051685186337119832465717491651653584726813779092005146910105794874236243271277734404033028324379999252375083399518062692005178037473666512945172024211275290527259359453277781840069283766158328318755225086002772211830260618054871363442627307559444728834660440006401055997514953204075249408192593960127397456764881439249192946036445346099199698847559863586311426298965362526209812641320853997287507773280518876864260057987091050246973349953302406114338543095986698564089749958494016407572801374456967338299226932224028772021556450200290881562352845968727308951526495481723970554819954406288444798862124928765282102324543927297014984770134630436083460528054872833496222087672643381670156109081095957496262700268834962207315940900162661504026970358510983719886176664873072588209442410358857391670329535762625571863685362793899107181600779299947038827123094952593711078267574550756720716290021020058601476013813318750174069245689807667494627415306714874647540337532572419948765158579098425199248407142221094001961697638764367941599961481076622506789319286464144704829822517344665181294585441617885614938850450488073828714155779499730843910601481901288408444953479293953147135279563028425792870118951138544278545738759066722200490827934861592150356429558496221490157838746426595091410442441054556998139603971406715451300831556851730786308224250635353147998684976615419398303493284978694548591762059853706930829234143443199809641360740142666015708446009296240596973979045341186955426232036188737175119689095404512380951866842968576422498830760247274705545437007235835673779116774826061607648055507876104420797267711512965172266515790283505018451964855180626417645185997631627169144121195573623882129624390904632360132748557298292947215214766415220665672788268384961373524396039862623016431173264966541284575719580554541782081108148074537628525678508890385126548339888482068122737082424020901554487470328367734801812425657319391400364440771317013732922435795246147490925268458225247764161496233224204138299225673620523975121783169734211015595559515497558142327264164249959934391843053480157346595358130377291435962716350958249184909713402088492954664327344699289948521001863389714860945282759479347420061716390204036662618596275319779391599663039787031088649566278092071518367092841237878950736069509080773961921084910889571397520407721377513010349918693182476095301389227365542524548282518712732764914359654559414311503876622200444497019309204521745898412532816596948356010101132695464661524165041568707592167204763479626787410678988483045762755830223267157969180708739620407122374451497116602577206447097257109656148705963461470173702900936139887379115200312451711617881958033694978423143629606491044764899236005278939162716208652459355036787080115391788513010396563307929013448966692086972087318740926955081806229061552174364520991317851138574941005215298616281525055242706073372979943968613321932194155684715517314617927796395402830004570718344961735009091228643986560520964188166678200522566705058520982677020868651777251812907345721934562716235640197662118313570264949453175397436575988895410444388389417957533794482221887950864625113556229498344729127431341585746755981406882100783840133756078375279981585163675182260100377087265322492153455432759321834770938752770500761941091177423398613607063542508820060829812602679615278448540907531105901863155736674387583120395784871570397224918000520559597561052413817370654748925982394564757690170607686673926212805161320732460495175184197424637825324429647787045706409288723321914278702662621570613880283490593887931176947820095885966299856025255085386782655640481685172410156068807326369323550166452797745380463562923812548313938758904496172383005359115691425408806815778690426106320312620888690544950317998621050816494953508676949395931521207920487173036784434927324125563159050089957702661167730918025792455450346468911984977204141996208785590054413982361632665116783401607195089281228623515753527088851841134218985877865247245709484653265252777231039045345802457762992019092119423973620149176624228122769631913196920346330549400674281277414350060550449324228171955389974182779936755323168958217125433393777355122225562871137946684421111543377455514899866872900978152412588429292679528732346479014267040057801364803435949737425855489233597402092733015362742680044753562387734736915621251342560639803145162723978603703512320981384828441910039339202022576347393681172985504539428409828607229563466245591455415130818701796889651354404290765275971639693990672534393705056984045132901106751478272405658992099790326501259960809787916540935817456722834459680414495253100909368103439124437080017606874184622773269300255632892183082441374449779497585497127554683582459595933833911083406336773649750740627940849113101635040742626222891373294821554995127807722046191100482557623099025189298302890007872650385424435934306055594469094640985704264584587799085656681737207907898312130349832361566952345625881962132948075028446414688898053390945336675753674345300943360806226790520071324251835394480907884022480876340186112746290594982213154614168296641913785673670528407410659825924850870811151068242713960170436425624868048172989178416718710318753994534279928622848187116796462419287453396315984314965123031576254502260489841029083696358024636830371032984858104289457630223025566270249345241530911597583927915918256690949243449277062107612004537340341573292807577794076598080448063587850058012341867306190638662133855134333219593419228085785525800731718538833770183508954436776726595926014174288087602663011182674850419224733299568233887785792072567689063131679903611702703979306387821937349190661868387803330703489716722256982041834382219675248615199416926012311635255089098145406103254466180266060854730528905881211290975037333646079025512351209339652121286072537405684467966541295492954239528874957738536040378996810069259678491916508824910577104444797618553807672187917573356588865909643834690416586489937522175329060656541336577076562459436809646126656332165555107973412362878376223878455936891842081829931880386390323742781441785876941602213846247119799830694533533327813974215660442144381846563926960860465013028140724252753239389150309865627822138389121084205392567868745087354899449019604770690473049051357409645275375275517366948411194049263686983525170955329728035201629723208564969808100589733536466960601697124592342139134228814293954212930124556991584923669731338604118487542802466552288394928674659188759135141659391151897019337661969928587476145661276275060746707034036345494552972729607963054816818847569504370372083844601016212364332247417418219007050131823717623440379933722459465648853968610689383072317322743078851873458825421187082277744301743929360318021384471111611529281756336754473927577837078053113265589615940204082503587034814195808219539127430362166289599919953547865571404618042595637222261948460760870355722239316053568408324140733053410702389611874289909636676253627755646400622213028578658815481115696828392083128658152107002738530523904626021323521464972449648675762155207582316076998885486324356112814153803590513811825335006986199292960685771899109083881294798416855280119664225278793736874755064951181808583778759734662248665670683119664723724898284490096282347188237112263268025654255686399991910856525237084626760339434271696128660974182838156716573910078585513564120821636097578084008562775043328101228275656178582829413454366721728157033054766975558705936885851936593947207724658351230966736002770769837068772471546749938808898516604774580256650486995586726703246063595508798765213856061126986416800354871215767427243987446988031270101233254861372857437419236114743694608214921592273236716814383629939589932044151826276207984972982675279994925893804999251307573671508835209953603091998636555393177678305203624919592600037395178377162846948125466505442735413835806566315032851434365989247971003131461110747798758844430187671974287498467490651136630851280736023536639335576092834255208753643679666314210638193371453681851609998553631543838865717981442100208520582813211433598111637275354184266995968854024193161494856969883782844964646780161131012882730241630704744984283433301233549947598715542593900821251556930985437751813779258906188728214352482975686949771788658755195591289200854326667861271675851205734867915610941277879080555562497143384121440501267054449041877373918827047056087170916160171525483105328091341920527613898762900471063460089008235627202536890587511613288499746671665648485996672824191452481342755310818410466585941513782926489561734002465292198290331137566776712902211114411115022783931275829070366135962545790714020869494516512038664620877539829835802817979891278708810872801828282119476535091134452596590163876302006687113599388214667778630364831833183307985818959144675612418955722262078988937397126052903392279298939835213050095130305891378858902452540861226986585243475775621938364504352747090559629599283709478938489872432267355753121719942835594665891821093139723716280923929850359575689253495401794702862073253048575331533527946142807705140515340951415731937261749295495721421682124250644315312330151638831525995276279641561899829536470852513402892983894726224599940621977390969855682941725959433907563357209868145013445779314757833513596668736003160198176251149122302372333231425386020040691532868756139528377882736960845792712763494187642631143837332436120316699879797256991013605945090752357323987648051926570678430402934509716389435859715665630386006582747495268154236335398353865246604588173156977745515969986607398740825112150589094335936856268767017505485225780921567659730307077116721926073459133911460151696067970828922197785632225405061471068954343343309563534327098128622221518315215212760454531757111638087306366636838419071425242569997146606908003488407366327781375533523749082226466040866846563836803082491912562261798759211031288383676238751006160682011616754344681762246125495768080329629555046035464725214309522565030284827636764493504793380727660085191633725352523142512505028512923793814030802261353384714778992069976803948969941189188477272970566519793058022151691130918560090225317850617542825534184444763208009557827468830993588263643089931136506261419059593357521553750921262185086423164391547162759790635324131225177579307666977196913424171004923031704097968358768265973084314285888892489845817514736200616057650983093076092714931774256571416484063324420696668288533858979586711532012772537894240348525752127634626292213562042770618861661611636456620563268545523094427126937490699872144556370890283867253052617961676362416076102206291524053744365547158541702355038986364175920630069407693593942910850185637370131612457343813682617102043628033603015231219056455532189806656257658756224455504109298357581935944275234513206054262041363203765223897021324180292432003172026422570284853927412926013909814958447517549140042950688326671188415475376970021752407222692830549815186717172798948706146939626822771518811327392128574792641502201835448995918360532486130855841008547793608774898492708103508457685465418812325504456896164822635498693608946203788000141169392172229355192302671342172785971544886434145887268607387037280285946274354023069797130434601045936380907971028086642691055474696876148862822155707581509004454372505129880207733256965779417443423804312439881996183285654800197731742634649293687910199272902400161412066891236259697189260278406148449138929681850631073720202378839099191072543001659238005235242768581820258320916206407390203646488429210386642781504441237211328832553602879807726978670760067904610959712912918460763917527596338069372604252541867467777282316029996609371175429731272599683008500236323738858748487393274691039966428107831814805414088848367436275501019900181466747533084264018227386238090351112538624515821455896654115999285528331030201569417067751719920334803142788156287793647065110535075325022824289655122594246562233138923907097299397356307618197175262569024859092741793841058100522474903779788180085884154396817996797904556925602543545185042885899350678096938395928306859007018732381295227209807762658712484524181761053754263924506698943798422890320628669853526587337838836455654364303046673334757404716263603262995412215053717536155898413686137448539504470074222345501277497391985358412314206717044086929757764584405398705351722743433875203127715848400513989460771960911123035050181924925806508411182998558040642441416242523751680160552140849474184233906250743546041614923376161456968191756096104547719570472532188478087031567907611636378948616846001884741525302922868785854127359608039280419966822644146778677431102477700471753624250303650422099740853967028783028796544825942267649965783173795671328770968626152704243306307899188909880186378834646787644680342678955313887074428033992805057787228041026102306586659261215918645599896407817195327726624705685248716517038906113568025064768424144716010570874030082565573622443044394988610494478886146936188244186890111019996192007863461810924957953299545844141925386344214483191932032580136459934483261520693948414775403948623442043501102083524951318692081779795830208006179246871731738032179322518610240225484313582194436664358878224910466690691739748485503365380624931380301149996882625556014886015586054608558215754584960839914279669168017226507411973521291583406001585927985821787159838677684382528918436591050279255878405191236704784274062175314275356089710351166936621755342955152969760412541807647828299155943582362237054704626150348952896188555120107118182805481265854030268981511074904230356340547644933121425711514201800516205154396210072969398352680230731817179713522350193086484370502059592048674815034753604002091173969771998262236965009762030499299821402010921051379100211735314873881570747842291740243337490208837599107816384793531569761084610249419879196913138942824298021686909466513642131351176847668294498278205565871585967824358214547189703871765935031002570331011710254993306419821766766164548190206311051638020116007813785949848248447562170331718034975048757621136139094472957071691575220834033627656938555539081937848793982739533506493533042883836471393853028691728953562082706070027440995318164848635177736242683462394049686562153411001446896836266296079877324068896144596451034800256769884413039157596463772907399687870167595467011051367024061277415352849984374460009082357493699655898794580389625134375825744918508203721841719393722612472745240398053513649058636070479333367639428034249342868212110633473354670021415665194389467427922386290737686164885954875757394429056475342502369947353225610238115752126633538720518475922865142266311101195264792190581942336407674360926218167763056098704016100119004155961193952978838961720362366441527518875767902354076352947119545820884258108445439099704916017407752138884176918254793363258984125065566164712444073034707493520565757656498607835071091354851241514879029258632465975895920808835598764746884550532990109907806766852617245237739121632032243094813247693027299214927104023442365022257891446608617181693892664147853768860708907642426482875137094570511112252574275355795866225344286752970000384487334353704722624071206896703936086399260573967958956266382230023584856693260871383186569640371237652750848146109994262516047016336897528486786416835329270582069536575636943933108004129194761204593555870089806696919651669727672389560023392263050487103231809206728362221874097177795460183323924828746155011036378649259378366382010777408399198525159537757403284256515394821930836456398642119253481091485591509003039376333006777748076547509573303226560975994279760057098919943982125718956970677916284250397916419184985538014740947458637500174651072724561981290897477317698383382026067326412082593701913002999859248199795023270604486870815353142853177122075614569794271681048869231148036475460289079029253411493230396620694224840909984674018214073911397915068566323553284141173875573310162523500825785558660985865875076749477371068653327591508884748456308431771255734851380579707830529162754903186987235081346250626024470588794918813038971807142621077003326277377175046634540752153205928406809059190116040882739437858817924545977047836180362766734696846981445910292494909830089182504745687295112463094095468380278594142931481417954989893809015605459451795575076869275774434518316908086555308228173554718667093670858545229187892810908360422791250783234339450416002888211543634133914926810781123563220560258591034977713078446651634580911022823630816309068938861668339321304600451126914162391311458628047309291327369713870724881208032060697481449131020959059270528182201345124441174228257069173164332403053590575995762316883561926415747935210741420712326981683887473172241999413391488375653335932249442549248833391172244384530232014835156721643458468334571369089472812074713057560399458056379966303214646142732751136447826214597400742826899341152277462302700377940759066836140785707316845094620859197522647465127049478515428560908595784823057827178651208813262530308178024001029074606602149432814032042795513691479878547358768568128905339952549845372298283376135599202964000640209824362491375242475674189210139559739823379839954694237022968124757502898035431921492676556037787063735216047094593811575353496272323069471169764252116621918935900170403146161279901257793354043338972502215345097383869262800898453798874217889463709582494694236792314768200243061197110906237221734952996077535020753859760971616232602771666346941693423599112162818655593970373279029228044564146631899225234734758860778312685051732298603312979011114298826005439791625334948517926162018020807630648768258543494966933236555053294128822428629270352048655264770020151668368012087714984051701398837984230002994745103743323676087975847313754961178896463959854580146164167864229977046488846965160372399617556174793243787544577745478798515393550054166864184466925696210131317562419481686067516183330779143903240708777921147341907728799287265350051006545354857883561496271836192155637063416741914366760165538423064041424121685875641518962615187086588710067379690543199848424391929552754877289627373838898244380774827542004340970113169197925493283805885498509637518796142196955738826428222495276285223370030477336860248693626949578620340580010545567703670893972334683954225594655806330968345135924031688886346932144190244642981537237526628477691912161365250296009682624759854097028377369085079324006957511053430453728887958825251779712417346463755440330733183383962024211710898262747761730751128271678585256384728854275951920115033830672950034160807848706796136497248471360656057439415729064485137486505614266748182295583001127793947925917414590595065100845068030124007832072618929832089376116912946842965760955724477072898140902231554987697968683519284422323333531829689994161383720179691407616862082720250536890385602963139884671971936319620139803374043778272981459890282986304927429004073777180214678681296089186561330734176148761598927760835413596342241500921135442789024289660740584557960231351936897212493978107467296830062417678211266076135257454191283112066472672655408377524248290220388903196016455181862747890878807556801397261944784671933427508552267254929388370797024405324112206439828805548789946199436593416937079364200396907011468868213800365065636020479344912760999594089069903543013860673318363676077058310342288706446310704292136865272402800582448790387828550941580435267051033776679523389310153808287524719325086731379857565053898289895663488141885263174928273146661972595666062214168669710131063913126605382072054018799939294531474202438533144643423889258380313006555399144658629972356561846012221730234405098794412976850289308280285090234916341830671864547381806349359081328341641061141943597932127949375179154817613429733751699067606066672392512094752110617862052779146578034233030838677729145182610651632272789136289517918223638399942973293114182648574324514224466195410025834798692447259090893523182328561762743244276539760960485785055542717692151559418187585988675889579421296568882291088822976138592857410043790149485951224454002687562091862182950138956555920228851036608772439557427774970779755906871361859173941515966613533746710629002860817698215996669088479420875305674869216151992302405053833935050755642782536914027059767838582409860348715467935490943923933005304445959544645472340464597318067006316103913032271965383599654810005240155683107239946885562597981313626160406735949423445067401378599385251429241035140479862401860143019666927099800456872383494950811076805800084599608799793790788416948814741743010825139178401365869912480292785159572115767608167695714652782329099739313964003601347797749499941926189070358948911418367888878591799424381017438787468385423721469015033249470890510561070763308085441713689968916890793644593603250937352202375452703219358886049016550273722664376792576275336001496320525653258509680670475617557446314629489337682776129934912812727708783139924897899367835069883079394591053190240853227650330798602996771774030008284353244317293631716372348300422596332400664045372012625335793678401769810369876949427870172397966524163819872002774941699042644215285144129661944070697417087768893321285876976479378310435833588079242248631053361979294309445854496024597073049278114621503825345517886788622884211963137820927316803434960267661553948583189597162091046701560295863377689318018260254176330834334275226332811750458252809538663320942974189178607391802252274635409803825268829159675844600080555912153886526874117511977337143324290782078026626663439549077317304154761721435280473129542763048441608352922140645480749636694665704331328580990798362561706778890841035866758387957094284927460827073840191310314485833685165386422730031657874951788675400809886672415556971553594329533972066630477488510446364011010856462660182782929722941574829764204059430001694874916330144408147156894948992960543622512534351646878377740674928441524960093530598366118531263567732214177300779422986571960756144684383045579712957373659102094903872384791892681319743181346215265100598880830241715468117964177094545688528508648461576706003621545545726645909719926216195838090158251048513025356082677998225882834647237106033001193787517694576980325319663443137876138348418098766455994582570932663406559337101482011498228490621849916901006731875690468182440552268094177052608920679430338372947450191187769627824288168887708558566950941329720254992625641565072357112923007736817704840421664005067064000521218709067738329330047601966497336030189770303353958707667705683679193503041598173742006302675844168498876343189514515140381820786655052621979539901784661408278784259412884363853723809896008690828798799446095346062261615654161583401036605101271934528597260138266697913194683421716200066676676792432283557245522012039713346244472870316810045823226163861999365581665848914597693072809730164119100997848669194993491140041820875450163794188661913639191033441673549044456084378618668501193310991699881817123240740777276958281158076743654219791876117716630765525618035537032345411129355137780794675667539403153570839049141760700475144248410190957949729027974520305187484517666018029377121949739319237593337391495181531038517087579521189843553975102846617186949104676345303855777653617001783113933268960177925913271805416846117454302520539443394954871078400147002200510584240317236253083891512754490634630903155016407667433542873412205088315255590769471223053492830111983647940163892556568540007386420976366697787752988461404702667674360657712075513653315239356748378877446449529700609491828071322930483269853809482371249567378167420758094098311316755292654480483051048604358021598505253420838251664407918098006504308184539312422683949325687438372716729585209055555526672105064763207843185132760694390233392102484138733586683278775183749264664572742905418671827693104960390125179036688772201908596946532127319455129135728026633640683155771361498012177456640964960133043191456313512187868698374861534795589910780223838243696115167690356731273148490449493124150958703728288140092779166241486381958935210297523692887092375164082107645166095519637813728731824512677947906965556895161344552290271067196314603538469193536994966851141840219036636766223995957191389678902054740007933638364169135534784640762598832250796974305262972704049000658173091736558028967053754251484892701430722668005889052319054068137603285394003848450182346868330041004437016464908040013784237471325435146230586606821995772294036895413370241873801077681083272596077364324751118903145821467145060234040325684194962097274747127033964347535606932929464134909591793181509238291264066626375735891594514038179541645760235049185956902089825882316689859259094601507373093825756779094953834376177672306501689425513563518264281247550007640016767515157497388834416544341695411926240980001379108830549983259886304803030120464540791427442880620460482794608399122440894486612004489391610592059300517328906256579200462822466474974295472706630407974431466066429768715986221021464326929981489700858244571869584842025790065702573254278775964615331472079652882119470161224028426100448981740418276078450388391261553188122672731554561398116079580653316996462876049723861990926589226173693192979296504776215410188354169770800578138013383930221415330487591934240204681269817428539446592400128954418482693623360566035346562283981267593597597453922069438286428241490177303202577429535554157037389154809599190385810412871754721014026012410489463997175421625174714881401631720534411030314271734305453029908027289384638918862975239602898478159500066194636256446723873644526764621873097518983410482600640824464130289651664483405698694731731196302876716905675380319313783897231292976171946138361115584788311519829352127365232721922599806324783618327174557461335913823329005313757879546385756806980035879753130612387083573335468088962019485294597023996193658188890588847382033361562418894803041194381244383621482065561521361085917284560250194008051208862713801761743713844381760714982867089946963121273828374431225846609191321059812576359229644089805420552503326412991985479332889805547368540626542206458654926136798394532934315641864687612530907314269630234540306522165199014069771837390311877341404326548004282711490317875851623241675931860622493531953206122677024755747396869942288009616328534330888394448800601325316520225752813337367571178354781066024840576027370757805804632011026190515442003636163023863844684319975869042096612207527902988620131676738118852015384045831713327656617671155502474075472101363936854937005811334280079379446308932655947487342478617980519326909149726629837958360778039995377517691492542102822020152426540711620914904732370458221719024718268474645969878763019423967512459715276219931825945665329121386963706661775514923246920573650459272150644060913729323366005443059595326645693683034033900689533255734219867779255233884372880968178842929482542662836011186560074614997696965973382473617296925893373821942813850745402780651957032385055335948106218954345166570450094485068813017253168109410095880345691336887385394620909346973946322979724780908534828508451428139854395456703511379487929953112338524340921744460329606046769410506955120179708939521785700365202644416633243780387683610147472241075126668974472216443196525714560999156913646552458419635939261767532964184677278447669461124498855451627574659428275519068669139760687507571710126720310548832411053272407896038167551692415356008009381201386190236855771316783652931341304059935076880227720072095848605412896513116144949938773726486892024665479302451106489507407236723323347608995858290609821017575262342139939526035939199910503637773730407257524763488084781490112967474066531615592672915742305822863530089007141642714679431124879846444552906764638575940648123273679332481312269948408126762454522107241732819847099191647717813042534840421342689950618187362446353925693690075781666016137551288908314583751273247319351011279304703390023368790291463176270328922605468198047928907025246637181887027382355338190245737028284595295121293859863797983295657884552471349901636557262128627010476343856250514388561888342700477604438643886884179032290088704785629095652021799238224349339811328344051971941601808787471495059873061220318131567021452125364773362866712052965534004637086231449198394888794698460730932154211690814946495619279437922581465226819553662722770161133380993368976799803764447462234865900244003345608003368331919038286347733350028320929056667499988734063077511770884712234732945658352136252948043695384430686554101913145765921593125302548742421895282091216237714695813181016359834425031222012509221369728649756101157631205633001030784799370354035654998301908729057443719823896706671548133074616764416851038991917839086357425060004552473929656648094787068466743748598359067515322232485901845809103847166938199180578815866888840260097862120031413052120262385514198162644553909216753472679007492661138030760180510795729605889380289236912932926380003288851211041817027795754921809039176527847973058301900630482342728982999966369591794196725054252867037069781679684174894102897120636325667891364390751709383858994405950886063238279941661153937468413492749764726854841574201441243497178536709625603272429630188141795461649553724843518583869977807982971368532546157307683758484791583998475608972364174401957118874864548133973860706383429567711963880240807368480257229630158776092756629826930601795480083843909863366516667658958948608828057461805005502362693642503066649667770814434146718269720340901558715356550504670441379072906568846809841662868779585591007318970192011488049896122525371780085682311053438420490115923619448361834906139436731765433496208553347969909296141107254475105477999537209800237194465249324837875573645955868843913977091694081860567337780873497267335733218775907849417962152770147669588001372119702963795417712009443412755002679331038086148195215326812350450640583863090692690309476827468092502668570705044467294909377410952745607469862774974983106483720344969874453743787327207241120058315601356952613967324590183647582683976599229145615343285647307466620834215878752365063619803542158543775023581549959520536771483082287107796802711740344875563950587218422368266255287057689324253372435761388864617821762393011799518409832204656098269208999992116608836923480056911719541646669677956159735334135777623892471122984379732429625452573725908395763291978237246394666388049908042318602999267750076950706588304332294198302968011641164681494915059905840553156482720365859592516676080246247256233441770555191589403341894898341275325406749046314758674020041082507561308419760961266443007171408042180261452825285442399971506045601455876477748492883748656189046667417731817117181341224537029119907532261409990745810098567039595042483915981560325106711348391777498212868773376087415132463801628341765746065374364285481175029144396255230708474192424540992423166764895654647965824427513956770537743820224124820257259109514659040562731886448426069727761386643835464287707095460373773101574608849860431020405676209594225582981904223221514767755457445341536836623632789444784384683429348311085374451740411919223474795368178322378206287933107065241551813950159685510492713928703404958582250062085355478128093081864418579351219747640653203769860730861519650141572092755104487041599288136142300002591970197431646274636446579998984116076370745694392113490733371092420294666495623100025620261157442378245488782072623434254175394555675705396418885362700643329739334676298613590758255205428544257115974178690503930994556748479190435032358226549406955902514481696205422661150511243572308407236615122322384205211228362250305883821950541830525110961107020769198978903038270499909027365943600311107299477257815006227521000386129897507354198187792558265408160046004785512803077762077126811944531705988685309926990094205094459637411365207802258083047175758898351667952034847542614960295414909328716700681822666662086155127391566115465333320297270974618997897400970482912232922732326040968215775404890150285915852206064647482732245538327786621553809635368800499166063845577598173124285034133550746662670174266294173250928917348825478713596956236984317310833663315643067401152627889815693058541111120340730279614452992256918502946300918079046453344387612695621599020180521875698627484534390813243954912135222627594795116818247715937899973628322891612922072729938114348930325749185561242262196858408921385552766467040442820076368326668778942693395889472263052087196323588190345384071441299808056496090466667574131477942035038672671758347885267244231006772017400711513365185520626657387533417703781076053890908751088042001714848181047756108816546325875003364630947494472415011458273241792964081847519591095765015659266763883182454827898000415205297826685079815103603232902805539840494541820240383525398120797018492600650669641106530921837073272608826712071331286709391195225230839561905544527380194639469610537044077157482374929750906605705697088894148395923039638276644833899768250504197576325506584513522718564768529284598921305941860683079686770557778192471018721137630013405819026753916335099958805933018306156561011093072928959760164666296052226647388022752576094966562737875763878507209790237855300328226408338100595557018928256006713406477296512352015661176815453285860101890554628670834123573982441408954666413257295990121927507097402628704458026539705487277519796534910296172836589752792049782309765362728492413447134345379694089983423630217296353151971074784895601361113708000648994851184509957810374855504065834077348372595897772963361212895248519591416929816428459985488897822253539071174477009725712460795001866165478196044727493613633737188136076453488331350001899269717736362051474256376305231858470634977985122885317313343420314491559838130932294022280695306540026380203163439568286643316471484650643242175221956654436348556145551226403499982000733962156543486337308648086871622969370552205783277443417309868212674966393320261055541199666964506254671236098459980928462896151715108488154223758929469523213361475257037290068682763657879752335305443399344358701610390839564427193848571037268424284212208548436276358491916874233907156908815828171804102822678194303942304563935673156795464836220237493363963950535680383143988757648950108542149789564524230892954817274481868185777185317815621379859154189061148475087213171283981237129000897421536975851045922885813785280686444403512982656401090792735869126438239327084748246928845389363657503013099555343297886095705581589184674470165615324397910955640339815326388564802676679527423563548269630135237421299043504627485248420609755808363870604323744473694014866928878752945170196822500081221369248805957226863990280908115987113287371730357235898210515180409214807298186836341009470369291636945008837151090340417144847748424796824054054140452275865025548594069358350213824998654810657920301622565501161732977790055961397290338676993166652221085424087269757125335826647545034564874394065385347344135067077178765691910139268013604290466564328675970021328641276293280932101171689944159658786155642654874008224478263728311676978915227625294119866534928688700274820087725132772826683989815984378340638243068429318093233800342986690328019837610357579843611032756740103896528175097434770994036283623170430309719206890210464552540622932822497858396376383392271657235254391471582335879909187966681373002101549048014052410941655107696087386246751401832921676663749611920664887794790404702894564287962401611315668241469771551797245502325478260835687963121091601100179652437937299472039406906071962044450059779065303376705864119474530209309956125565568364114241608879827709083100999757157814137796007216873437653297620200983993686523162678860655212322147642280879621837790870527679842067489740414107109023179861574065598064547256620089606283018033415461543614187325316780942852694075013507676446210608566603841165339417821495314913918977171826088104606560995977199366936285194285056427168091898494324349564522579479930724917937690349531475433727826016014947651762321424571799885485811140076113042425186920163808712353918430369402388637948865609605224258969869037361904839619518924870213395531358175395153453346210165168768483336513071641748086620678044241249648165260577203415289353990730043909956041459250720305645639793146554104142016686217129096369682298432943938042139492551933510738393697148618122423871383547204434319738287761409360166500292090882941006833856410069517647442160018496093044965192486331352549660307191646574893480316064242716938548191029138535481998897818570226787602507165652000738520983013812659311735417257159368376091000663231426279383801963324596376061461994538276267015371584647399286100899506393310419333794312525729365332830273470244561594418146645866324076813720204318331854265088061589897157455377274362562533939177321902769875165525182039529128416213171818754715389476180590807180305665016110033460106303253367519988883069605663595489845782514712499292832400103403009328451709494484063872509478977263974033621896435235111663789514904142823068143879884965578831829442906726135969672554415814338585907887221229110882106563020937578108969377875750655167048271470973564033425660563557170775052234254252004663940931035003454702594194829533510525246980540137606664754966462073115286988953671637989559853276785673637465509546698107005200057741799869553025612989394880015569917088579023116688876764406774616441914257155522264166686327802611294525206767897713626511283539376815175454623375381693996156480600007839539348604636340191924375060876195956343535753983660664364582575881088593862796761335462911024613798095608965564925832352201054672651112754993572854359712447244301055960579886432734721971432724546378490406284507716079554913412665289005366207036299961249000606676206541140208106874803625949297224998068470920134933849892087912980397904543902409259449803824464092697970493482752338275458106047561459899986186480207045702453825185689045189738668158126259445424723968779238912462653251328012302261807278417090923137315669663650055926018481077692614517664435821376092701150369860170934105983902390208459861885967306168465945582976435149717609641680068936037277889883973880606876396577756882124470196977003175521904077980220514622489173691583523635127818411830388326592437211805494981641959979659011397985277968429961789958476278805408173243701074461578865197930290356164895647183249621163188853274837911519383923081304213761803187175990380703096387247262732220000418489055453759750635686141793711427525466859344536337666695912681376400805737646398384917067589825258955534302738328373462141177158910226268659507780344102781053645191123353431944389535300960864893822453203918466109846922037648901320934759885202723089955720702562782255361268146266309019883472548690343691725152097323209121803245638444483952544541807808610195022697278014672230455039783348939538256412360796572921005723133600059321695514263594193106940912151233082990857855346141193109200586035511416021544513158999328853216054668415641018210867759387196320833205804149333445910949625214488319279802287930484464545728461449199595832255576069578816418747991204983705434394360217207539950731278182030088127930681062797919455039231718002568386825165525909602884457703464234962634156898681912574929567641217507624105575374917585537970292881763772086639448623585069225412131362321093662583232012384977472694298551104465255349560977825974170964966023085954031692193930414358492053397507222227117248739983700035760797099994986910218515830080032628379367232962196422029218245904566677700094117775480841057483624395664093694582394417707497487683467229264976197221036233752064177355685518336331113349431816436467544941994916401300309330273577192410505817552524013665852378724743877625405789521024617049251910847812221733581577074863071837398537294344983969894264715728419735588282726686135684246338076543665672246778665338872331727060984842198566428782940253399470206927796192449210121204277793261296681542767528817063436786484421925092330770372876173054087600057750238354056901106705155608352966105064493702918784392230470226903943639624090937159796657644036269662838438340315774831314719113947248986773142679719751510030971380121843726032288426409331450377718012642711064625521281388213762989758170061468678084824538124343081745847923357073307995333583218933123950962771786131059781610890361721811922305088782490827261326097886223893204453766694956229682065413430682123123040782028641978856702763268768757941254366529284124465995783295094391509946305431171297537577015609274198654172671373557308198963335632306076190879152121182352575308366620251919787868375202238380593029228018162896492784293929204384572861462343119033539483964722932352919989340910263050121315257096748850720506027462826880352087582926591358894308392063456150101037521813262361317363986936311597246752781382979138479700019570450518962051964694457677791203539873923349279009461964946579273114516831571300264347109869057748331950600919833137074414592968613082236046038963443831020674929103168402950824086264736683502101573852896876307628282319978672445586811224088352359149094533566346168325527659873514670716043105933978646804600791974226495883119487525717567587133184733888326524896903885258833674795984747046436000658187190057171452686649873206532647401372421393048669265306235122262455293272584092137885323467306493392562255873760233345513263501856130929277561794728083650954595654919151181792100226797685497974761683179101832187500942835580178505526991438814743769067008022440789340426782166443744149650593021445520519233653377942183664977372762881900038827302176067718059829852122927351973890246301791281352021761595150457533111551459340995159236261102187978912016883138147648733825855642805122511248201539532011639588540042834058461338056424951405256065013350053363397177753603211693253293761454855812055862667673670012219387391213066425545348658679437590492576913192752874230650737732893497681672528429229243950383425488567888978865475849414583623536104282107814287497295169003735896588267174511798961582536970414693685338928419109091071626324684987573909223139306328124986772860824153729581294933131574157132768430857267260365691416172716549179717859706322185236542152211909309253183197705701033971070966149640672066935694834475438353620970930593012634975343968803462762644118986010100122796690430957933310468500795077723765247444984530082194232569025582815673004164064189182869318300873704964806589547637500262388530503556823060301843416096051518116100616926239518172841152946071133226827548585217808860600587059974661933334297594625500514018714360736954110511155709018110428832732095291262633618604086473995488654234698334178040649295491721774648971584429465796313273715261025694703774804898691255137284919299794715951455328811865621029315063763780968677617972596747661288571678957145674848640540216184693793929061325619378974270495499796848856016901516322574462050774582208145381716151226392150014524732688360503272403657142578025024367770216660365560632907219343444769504223912947380121812885899277488563210404969620115276641610565458476277872266531198229991730427666219879099339877451588229574463672091451040113826181117833590381643769804883663091974183033793874377345361494497497076473873665105999407870962348782289332274185533371243320989621513046857055786432653061838902789531400092651739383494557227331499190352151419593914397750903868594828300524939651860235453946044742313795232191485915642074395194945153060655482298711785814964986863006169648424775617679069502301866722752187345806557024704979389152238434593232580003092231590790120649379420653287531314941865621995649204186696309233034989103745433491343571194261831500981992260183992092546201273077611301049974153092173908684981149061433762366342818994590545355709429992758491485932135486578961319812588356589976319386624630042533482810341899121392044166676229119791197789938682407859541124329568685673849789231931196447875472500678862882209959639474167494790313985626927657190136614270634260219188658114754137588376044525968570275784929865224530264942989670206781470704946010847978768021959285081200635594579356176601805554023334474448955592970702628076280446463346725660803761221756708278254051263378695588511155629507476572675897129315880742560404865220424327353647015063045760824797132002649232784513409455310277615633154890859160830772897946118690758567352476813279934421274351160713354470091160695203490068850839171684622639351144914562212411466484146161815635379857835534161468765173606807871825468050827399121492791774638280305112301423466213787869191854487319564792176107591386870839540187455409076685259314443789325769096456918713894219521044844699133260403675679766658193136999255922813930829668954000445036572169670111057641855642085534056327859231385549729093920186965767161380847140821965573896693610194731067576966057994906906763979865057254935494617237754503239421227569605769601756226954063420919857933845890084210640823120413208108013178159628847427739590220675414943107470293784312361701247956197295416284208906065718778742615330693910135747135431626393469779867691465949607325729769024342166407502986363632952930845445020177245678211772378327833149794317016836328403356793636513449018397527181346592216038966131085382270224266115467378926976884239891411955210748399981855465001474929913938502622482618518136377055011211931936674455557945361212253319493442345615648804174125372554378572458237134699243202844711978513786740540215713298200130479479919098696877531902397671971468771590743474744232286919187543203207110628276167246009132227432215264179270827619191755203143960718996398471196052723237564848865527192780605210102435383731419560940386689275961554022307132533780932920721371303269158714830414692833015234093392514935797580579802560527814949975409256240848261948687956938874293364665286542992347210872028680667028949979304046649812755110784898839469880698033184121742636579717382765816265550743102102347383689418585612712212861650973531385555003441381213874348571505040285124957119164176982119255767388132917047283393722131258689654232513624047868455698164680987121204364644135951286414977169442915946077650572447227824677781914092903930812388152702951895266624474617878307592444092892698676938342454116509113231561411055780397525194814098019275915256574605621476384754648185683298856109933760068554364063200955728308648613579855984632958598396395944904744882272179722516780563400913817498227688881211018304857305917583739380858612880163315056003153339460018814639938578132217250279001085694294517424705200908150698772261966158831312650707840744710828404049004505157797218758981515616212894367847821270594200109194531867653232468101496178620680000003930733203608883402119236005428994729860120337862632613875498430130975438945366417043447199210415477136185343625873482867224813848012744755131422038056340268778103923869298113731474862472018974897821510596093592393402249674606407810050235259032515945232229905427705003353034072116648873298278717467495126365167817798258415655861694189630695951543833960018830112842941675446464313795862665800754647997581677374241471322686759522357757093876211863859487484521175226989050795698186558056921498629164574015382819441745920456386396553126704399787294549313587278128019191426870909908525341351685018771822454302828817609965820161234205264605008011330543368441770340156554063608186573000545867848477130092167037959221097654529753904594224700929195635805213436771320890848883913394013801991507179605413848359161834448287446812723175503529382658896881889951260953142285321247704544369476445434043403474263265526788003720234856909054655194379575324468350533800553997659574512121420998769388125995365928714261368476809506397227305803441154298481897426611069292977044228707903469497519678571297693713159349718348689035905230586897777711441249792347932889382507208928700857326632685003574511775509806642303059729791605488923231549743865452632171877628131145471928824932643736344998959486445597643896580528228335528039146015216621416632980187307959589131326503617096075954936041253460221138808126261030962918305381565635289128826175346227886996181619298004697573777457318316919343155955066038930799694789574109011474939601901314769334970279807316413714368547272732075164260003638247110184858201697992961163091106764023378308926887430473365159121641269847347124376634312927028361065417151305030350843697381708252618776358290485584583569406173191778070312228006046565138837062608544374264013724567566121102897903139701913950894675156154974499751004265509696197704160923474904380619000646530901013496006798683780467367325116039021374284639601157536969148866184359197081836156027162729906964691311315453015984781350330390208138341712582069604966158364176659871714242695985240421587576518609954291806289028406096276980608126889082436294552023375706402339432667456984051702048506463973282185347981124808340512026971572099695237771283805978270304263974380498606758773924128488699312039655529685290305577937324351533441584641477257965087505239463993932584330508211521222545337738025091444608206303297198772830962689035315396326138527178144298935145426760058339700223893647575838936797144762353404409266546955809685016807036280475966911725244461807260002805566890902157119651484888350362140367409048082823298994778770298734104271139356619383041724308830105938732671424264043170692985996707921602726723550078049297395820415032159137224306722701823704212862741668653586651512029545850325046056801745757242607431679157565674749306393908523436665521678456413854368797703811994570656389092727351525316017082013864962846442707651782922507057192893279586651098784359909280989649171354651530786099030836217155385650581677195296822289898133538412127983144942463444015892787316959601770311923628210632163044435059153697850830228611106184242101783134186492865795832662947584902086592725888927992798815256011701975966030126940888529792932935451216308357953837300189712488642827704069335954142721905938714502066663565756837736200085462735937367612556728333183392986688863366416970352351438021122002658901061708643323956220975297624866685021824151210684622192001763962277909224238554324904377977357695035620303106963557707169710077202815418434927389954753337289551288092881249396826954625720229427932197554685285914415824529786260329226381962122139724480379826608039110505906582104319519696818697791822683299031017014784272758593350513708139612818658618262293480063345380693147244279773556711023538127973132522766959142241692688638719748278483775694153508766319578437924626243147711439312849212968386944883495954799024559025928552661369280860115910879955612873061199895310197024269121198990496676590832437628440937635028778113768565030451685082469514762492808540288962855517025010978079280944696105227071583701371684729911881561605367729186044385551012763641987780658662705074301969577774033666300608482258879895772293253909981771291235378479908999506744369799661946966062642522048492550757199535512245890441437355000126567999625283576717886164611182092410314590377484192116454527895049829781192353436342829381120097831210241163797645743240997082310543002216150944349501621715033108436159673338293519803604293048132274984144654154129674241250825893044166201797088559772986608997451536632448590938504694029043343894743669636189309005701687040597935490371670698188442524013677795630907009949061136156369914102918106604157711483155096461798265935000511439254416155364252114368399937129955751633467636120077959790129418594476613037554480836692286900802371806989087687886755423591566437273924295351740579750598276864908925999523726460719747405234581972765988594166920482599751611339094484482493594868037675052195000063449657230375562513175054005210659019149073134759270877402818769157577132744638687934837952545676768652667972438538858364235246570603718837643014020144343993286423644309410487242505431687922097275523287135410499487041537335540990856803884656672972267828473509352184549329700488524537408911288695656585966541570659455050998467077103580479711164147392737194163203311037822518476416072184643343638650695311411339281165726185470330830842395816196337220280496615425309794738064277870000526474648079618932258336702504518082446621565821576975163497474991239209820051725399825899983684678633650160014039438216284047075278399407171333452403558050527565359108658637389619111220614667021692471935935263218449005264316512547622862001052223287122440846511237189991046486833992138779801671915718414234564309265402631999163525956976397490147087752805802547820671663409847862545093467322336008152476884376448903400762919761382208653381969682636566237998760766641038030946219010328016454558304011069897568590678975680007157530061696234197474826687899779560160516358624620636221791342733970329312279338333148012462910434814817357666894073219411474318554474760982151342162231596874420594731328929851662090804063453797849698514719910135701210017399801452012621654968016727770012372884489354941406969915511901572719188177846842894026126266931163823770225121279057581397694749533639799338972522682085190192957848631273048173101475772618024296312736733426270997986810371167413582750892102695754344228925399846127613071425252527287606558645884866057742941772974216937935034985989444868666527261472002305393196981748205075054943230741536516074663678524591051983337411783847189143748660306408344179819558874788060904660321587842888843697653604008562515791389546472213232143953409649743747476064943135589578668585187153386917162232722134233284830835453147807984921039656038597901584832504024619987918409682585037648073342621294997173022497269545492951499081549765863499676494163527407519389700765292711676207397963219038043325995893307530668224208429814069493149536073809449389706330849333032659358223340930265672343225763742584249492615912930469220953254972427262603821121831242929969759560328028968402460328836298801904769035433064294734318971836428364518021347752729852799929028176148219063266462830455070708153238644466437523994018290560861797662636566646725707849333114508386495933461386150341520444239980879843030750723072249648706614770391476111694884058192365307221281278762337402166068035092340614171166773976586809461340072304242591244423182415713704349650677360276998797459354683213712703071384999709171340185469047912568985080658865011867053572686039487947763261371983995310255531068165639273151868307656897725273965184415946906049650677667448672173037204664643364463309858672869185821953181933491974291639167783583697639389103161412421794747135417580410737800274846317720846101034283122925957267669163852579457413266625291195024658836561848058098914763698912452804720819573231148978160320134040621249236115239399087279649337459752090338485741259204869346450663979968984771303170347910385324861419062830305242509600750605377678071596812672711458046130159259645076718512669128480715558295503935288361212362120408325453224561513878476829270067033670342396926614333170837640115781355368929609012654845895799213415071770911285491468906458708879401599707925972122839203699788761724867434655845099908301162444537449521045617666854267960641690937345655836554144811766497329172721664917092405428820606269279981084245145478982357339461918591703866720353784108771878128691675934992029957391745819941703599183303283762243718189738054729756536372406404595529733321452939034213223046551476510913257912217408614075433362736450000603702035906766983837619381837113085982474470445205513667025269920442029765708688617914733737694356323006257763226010969053821056108826594888705901941522678886313020859320648275071097047762248467495843762754259048000615469716039339887185084739637094503930627556503960746429853071041130223355516777129293498969646866070234513014028537167449179264578867085910072141953503121209207607615784078789295287636859344965873986838712639305516438192922444445973271675109376075837604868232060565467969580524635785206271992573554576064458609691471180603067050400913215691904428148434321449517255126620610875242077708175445348742916650336572527782435079309244461570537843703615814061745684953647413264823861128137290231854798287286474440436454080415515636881565700552443552791316398739311015120969927557431086206111038227503290673284029425835598988098241710143463140429495013354080184925240988839950558998204471909380382935468787705605110046427923948739987575833395828040415616179727930862148049241739213827037642572660902720201977343650609732191756765354830317332462494068092734997561271806589828182705245008866100108213050011816639555318409305833204065606949180948115090734549504090307893432957124005506538859860308022080528262937382386734316708594020455354343316558421895357423358867464386054379789214704681333662453904900217935507594783917597754541942823554222421704427062686901761208088354511336582938509926267465365858660345728105282389965676573128542384653751542571455543193334845790986161488721825320948135485856660866712618861081628505358626877300046495766653077564026602883864368664352334451966015060975380977124466311278923718976609997767493034509102194392703747817752741290943343303312845083089276827137945763239488760741783731431914948362559568028697558429837288116865742793378865338192282276685572175525965624392423251306488418630471153783483246857729089081099205787821140303428246868913610548616914920837989982604319806446714448621257217277948357032323480580835214953219451495659135362835824568146095277560914643113833777520178027918265672554937739609468172080288576042704809603047906890885939766171172819330988488120237647006347047169239590354116194304085693899804277050732016690494907377189260558458076515349912214300497813398400957141062289548334414212769526273527394308306785943414224349935012182348742475258091841527243104282357682055440410436941543316930903542940553630900032134162240836937747711795831965477548069649485811168180740664806732656397217183634458441600532387968176556036885321559269686557507603195256140495038586951782895049918823787460525291408376823845975397404553999854481864272897843952995656154486990165812037780771051877009452486183788232338168469310762085207959861587460356388127346546254521331107196376968097372937820580139453415822322864636795181596074643800428410965223355185428129319966613986178584404311379009121113094535170991206003601159929025668591666895786140033322866366137526869089939225807789301271904948239577182364250503251148652088897992002374642289489275418049322119038478057091782772357281404861536388933302041814888964781339294185580244646915142462628603739981113851214008611877441689105964507478132499044574158041953830191653769377682417771538205495435859774720382502153134539922100215329857675698887529306237070980405501793896088245110671550413025352228251258496864691797331543792916822759198842509297697000341941311340534788680234483694371296729438944756896493958462710223340367089272611908278344547073818268534686551265891261954943703697112336301745260297890894645080508881406176763464011334290502197213659867170796715781212714818368250737488645664137480011294876168321870626787419720353296527692288045491711902200381576325837532314396185930390445458514905285280746528983911426531966206680492984901722583823290995013686128210455857829209721824184281742911846203119341122683930624704351178009954697476364720509614970028713852492166822722885617813800302702042786391410635632730157850726564418725470008742081318272723797945940724378087448167585769549261453395574169813238186577256023346822313636416068959575184941340281228419704586926027269228100647007527956602045292427918041360173988570490867586023910190758668754047096523177546130600115643797137904536596194168050182319715544664334825463013134881636293337005009544014656432151631165078825994263315974885815752381374838656764450862828502079791671062477690482756970417435854898560590285822740258858553716060053590455639949635922368844500034499046352833744706760889057473071936226250681130026446946270369129407251006829141856456840398802330514649342014788323539863511856475006914727680081824076252793561903714013877668179728553239529285465297352945305090953404106422281245860543037048902638735905779264974162604875286267707333988141572958891816658268158560284169547591065535756747478041235197623567435350419121155810493196376776627622688569741216325107553280193008705121580968593035860813544734771444765666087455960391645486085474197572181070103244380426371386423989997719541844072460439843037841590930052835619671247880987808007854874655235935304437452963746162842563013741687294595431109138187727420297846644899590207445753537307168560507519837164842392341393987674726686916166625418027397838781911622299835798449161543544573954980098729280514323557186883758611448947477686639856929018059348096657085789987276502583594390349131749364027037949589307883435476956745670572088063540558030937659467512379824366267878711638527949705438546551883087461939941026340457195189451057889900550018914781067990524894133316605254865135404978423871741358312779946723142333659166334000478772900846649013315962420136642864211486315191964463649096646736417718385946465418533586206754877376703589298745291931128491620613004173875988702211038057327845071340741603154841560854648433547571192717104388861932673839347602202339244252994757719528471808519436713134594276891257286750496714359759323968397912549488049949523564342831966299600057587262674360579546140113686641815825455619007786775360307226960112154904073054358574884955589540750800936608472860328584651981873188837969837668967228470814433779495960960769427376885209200328591900083899746492473610729702141521277784394836579887371274947828107717427988480568858970451955103233841222099566988616474930079705939435265336441091424269563708770833985171833431544653114945377516879085065521201287609249155967630061488022402395257686132738882044114371359328494188387283186348835520280905020856827151417297438936944175797287192090343671993317101547502227064828324654856957721672402233923300330675585339399226741536421505700404168264560337260610689353436588513609720231540899063192635368944164186654891392017954992331484742086609227342983432452420316343950803079799641715885830032028214869552308893292652581247114374845308818649390673955378545740799972329293906400593431758801084051498307474667864719186341390117330038085806764565941112775505438001768260684846440395833805055647718292582751277596824590896707241472942144908112522168551822319946788821329750060035085258006842462560491791849165665246267401573328109957827375928398631701570184505439796328323980114359120888590948851589088936882186464892661507491110272557576305296172092102180384538698130240094351873886991135376299697183256617851585762692777481964903545858128184290255733283533743458225489689697762574754499303668607446111351182401820455025801176433842428286700712938361066096548351065281019261506900010084873852833978160858281822191353958549644490703047515392953225436565933547335507512006192033036798224183520379974681019482443085794413802050086613568269009833375436233561873894083094196788140762892017961971800014277306520883999448376486898077806216747799335544537689093314389188072068866414311427991522058314392212526912029299586930126854110816739447895068029340926612189800088539676553637380252462483388370010929957325515253746402649702240175634798465584062346478778207004089344245007256326845917335308350419655087066714098498632167923046387460659182958442295727173050289881970147079108984806426874629102044448567798058274301714718391686143701665781559355814292200942992733226689215498553058103942682927435207423453011759058351807826759645622370950010854746971336384868644221181468415273061274047417317666699026618351750655393049057012131964757112662578350584891008380236565083340373241018317846309141811737586993621731488163933418229082763952230601445872713355183863341061288792469243562128822907798231057888729824290295448188789708096227060547575540115950019946490585951288963744712101865743407115781028095813013003071709279338758704149727235032498783269542211372954979280323862096860542294345204320117209372109397153784123477225731277852969837932556959270643970352372495885780292201981656810162353882028743651567967371086703175625166713252574756231948747270227263941126504972559828452165126497176677877420100687327593554967463973076728837584352099566123930540265889977881793336191277891067500985751707810244751866313588919254383051230996550207094321434527648092281678489216358455020554782999234948370645127734206831745568507143091289257596445785995263295163966750980476298360022666603568997139598714544574757427855162403848930061041872430502873681729096291227941873346935698326412307033802729333830325696871239518897186129316492378469389115979942768063414067438007195552854934662023868453345491764107289575557964944935967299498465966727858267628376423752230495066246725738292142091571355100687950925543007932895113870154207571638987361069741599038316374847775483137791599225762444889851873523235779549429054264257602168918899338748009654918748513990865465823969621952747266058764004506801635545550258129929298353064800930641694211087369597412463898577829460864834637013664678406297327323533421765020130256850828147882339031855503146585716100963590980757253785150481015101448594404572952297901165075547750735103539799235420582734375726283584642781718628321444583262964125623420519199072864317066492326987194878607812739004886828355416527605531978273340092101174213690015030583126577352475016323858379385955180367812608409035855454182012199648418751458412815965633799579421747148456656497507952949140493226177384528645143220112787776063662017547516169692548477761419469542993524746731799431912459474882508344760084617319675467413703225938993965172053089991415703257994542725584564767902521584207498618535830321131971978516886850475977428524767756011256311507829780550966995068012897548987998515165676757694319374469400288301533655086448974652560153890526694041025498756060128549614680067608427892566398578199347680935266795439611542971385316112163860146624133893996375930567476231439095711684755384704094751555258349697875805810389604092056380879005009873056945341285680847380369883746929570867007501076081383641517346687219470404194706496596277270646235080329042119859567497956366891040303539681760854969919852297653403115373480738613904926760838865475091174122629909440620123331902032073502784766234961312790722162636745376585200017514271409551836711007117827982733768341572822767443069614743927678019323796661415472832558748454863292800662201407251034145259383803152918666819009015551663757094100690582239590155743950849076998687241626619633132865842552914681132518192249250578913369530022833857423883949850319863274354656514982349819575802168376588121324901488602563868193349395385049782892180019523579432657991951604698493331800336005502557820930130582480801150965367081904143430201641435719136046732223820703637754985396453277897129351671431203376692088735593590182100223818193636577820713360236171260487074182999864804660289249758149354736655942479105980256457558820489818562388888056516541215683180249060534193476024304750607189790073657099347205850075782352434135261014191446952952991386037810656475219092934062782912092488088505146056971480883686783153288329464928400943965198705345207436526010323488144450887201837961954587382872690896311379693058198643091297624141511128387408709822812479974303963160696185788375071207414976365181176730865115462512104323240786155131996750385715430375817779643908402648398865966819687380230132597083278855349142188805244610002347539079903011794347843331811772472176638072942645250334764377368890644166220667643028943714580305230253413622769605814542112601748386842709956111850956993222214565308400905827730851888330638468131124843427656547629554295193635977686998189131003077091274567386387952238025489567484604626825541183058777561358322767649210608832537854530376965246505092675867315828269204991726916780016432676295633375077505729622395193780563301535425092606071151124673644228629138412721505155056172102187498440079904061131571725097143061524483380499467766528108509165609342281845332587465668730322165115267778416606923619818868722992824141025350252286917626841447869200227247443691395983143128938255988987689098794749579606003213288752801729832383001085447321674762267042640891962298688973461111811754286986176418376649940680523203490214691563924169813258019171151677319932033824949220478980764658407683223172884479354787096469172597530082237856827954360675419236746658652875870687947796320454279868131770883043109343068047235713186813390935574325953286887652498310978797667025657824042306970057696619486569007942401772459029914074671289165990760660997914828884900950416624614181173586819952817365579458558750758832922614413243256760373807464695531334228493770438322036206991090795965645847350292166712759029094474024386974359167505068059379869004716984616951753397279861245955235393556560276770801261711413920549135731867217029359391313789930858995722827788679093504267765753541899208804021310147070274150763364890168187723431545801687045470170827089754424608827424636297313040192180605112494559536307447461030365428725592272076629952766236188806397870775312547675270992555743890396873354802022689241188871157305476348651152140877895109521378462843040266758528555933025649689862068595768960942469455137776008982330977400485964450135354495011469104474282357976888456626204936840177481755841996064764515289992813294971252295230903087383174362196663090663584055784709016993623363965687215400148758941516707907804178304861911060045519398706065666339355677560889536208063791948817146876216034160565502028195281182738861503969737494711799360966670208393148123216747878574648556765731797452883721626115522313893773829969858949026748569448968675131538950222460547460798145898005960647269333274776875855346755843829879225052905340432210675317306177632065037116143084682475341964172906136679999767031546263578943266316971285554770382088263185783698728787912203395542075968064963097972758379877803839368091864501718613614176037615810535567023837656644364917000462005506660653936842316037971604530928779565121388109568719961324027976791482558442534756571180762315671683811566959806239225307202449408117827776585951623326570322924230415602039924853385368964716939323240171065120664558107190437061398420793755672937391408423352841304938062401845945608390638256341700426854341190969578684998085861445295187881770912499497842881595504775044026611342181465272438073066245328736780087516768271901784430262509173784191041687410012997578353156506132492938509094263803595695542230552742292173151869530232110847711684715352728821104836092187829851062547308386181243115958683570402081393680192837713772210515069161956457503212987027893690702980001468371120670494105334163968865768358287396847343279188194389217108869923609887061209620245688820264008604410487302180469922032487150219613410651545944565126763837077324787367282278473388189326126901638260806692838615597115534410161692617804042285804867113242248197839816596910384407564212691070504883466254599640612946439933809699078977420033126739205555612152434866700348331485307014008841424149294244511685953847455940057407415590312458677887912325568029285532558077870737057125825649758319769076748357224185396223707930739949623903821858997206733304817788760661971478647107725581959516062034968013251140382229914291057084066157301297707229208906995186913576230122541521807457917239271512883287989555191986447297536120288771544763340446338203885185716654055988788592035394724768006302066071451195980350660271584274141995798760087608928647122678820283894047598696397340961422289457237068302124185275778585534624884242298564707816469174255277034614798857009132806446276259231851577421447978253319908367165272184843903740107236822340569065813213195711312579957082716878508156552627069028239629762064834014390458448102867790922376721675237347926763274399151139948861119014144967709982179033459446908721196176882075639938630758160647663436449648388339533885650111941536854154665544590443243862334446621645835114790288066494510672420812428677326945082114635084558053960471340022356833890124870075241544004184317046015085235682872269347092018262858897663912563101387625992171241614294530831840759367974031339707680036751665782519333844571984172488782756192376782553699043164497056074055236761309875859975903890744137647727776610953209227197229122239597548441830781336493010348701308369814150992767213939537363113034331949365376397524541472714731501657194188949818357264476188952212699831325533833383616386452067770112604250834325326151465093300373969311219704005392122332864619145847008474491003222618876777726482294424771067810493488129466348416760763974559570444560968707224584803255773496664641632534431065493836682974940962133177211760435977319137786467575949043655597472436871091252480971082746774168669384171799023821222267457321930508713367394217849863841684662435361413600050556364926941303598223815994253560300243031611155075141575051172796587620308483909115171773706502721884373652661099333906117761426997006331739207721628441868185601849825735789310278959801662429334495949142801345805005385229203330614331957558992013414413429631070634984527186515749398176655825215858737376432994347586743154270797138779211943597388046237806186916714080890818386923675758971413710132743726092752064880014937015206081955658812112350840124696147500956467820304568021941762971584795529001660671220805757437805782297234251887953904623788677358977326178857640839913491292271408592418477609514648555529465433344754620093564206989104939927214424528711145199070991808703972473400311511036951702793132046497267454455260546947946755958563004038153733392514804480103256881210247797657123845852534202415509302129213069702971300758621536733014318132646261353721300019173407336791616547209538641363986069232863075855140190590431354093704452840982262071171824390309645528116106295271077227023864149933202722499373133753943449848715676752360350019589197644547725289219250023549799949495007706604229647655401195156657707586647960650475642979964729555358894761974832434718106308960757880752688552502436357119482421546621331744956899108159392550590217912718076359821130450728019352006850666955353582742387006655732547587803081206841635595493681927002979427252563479898927892119196520546185558454171501559564050287975041237260599764766208187571046281920318631007532959004474672866171124058804883741928607937623514618026567680560596550499052280513458888492566283314920465243508324217634270698374319705211901815464752063726436759576215541572767884148167444290618186442035575762697611433476121809974352740174439724229630014934183617324039509792549506826565363447644640277832136806135994287602401433649548649575762781826443652812293092657929440729844280868139651317314298917920917999912205973353487427778963255429695571151530394706217612919423714122666871720713198496284089955561300063421667761657776094680383562899394804328521810290073054426049108184162149860437276887718481110339487596764728432817139754530087253052449108857508008655111295600635758245228854662113152704799071525555779923050962218018026567792381778032540518628327539307648631633433949641045540924965674943126485212153457612353796693219496181583539092352889882921949854871805707431184571724980925933398418571668844550832697682018538999386793129374497508819262147007644301183447628822526056748320707779801460443189379725070213585561357142952848259943035330344076544691716271930117540066854240366111618740372457981665442262530019418970116391390833393407006876720792750770898311898302544977370185007969422047823357379373074113730517994945178425741857149182271605831854357072362764542812643310333120864561306800074392626001694613678992455198805471852559755880229652049810478797092250763497803927224111654154303452966076868171756000106459862454854615833911348512056469259438268447197792858756832850329260312275143109918932262694627131107664922284808853423286544221027412383924671826626187600150913957333908438512549202790770014596974299213457556427005507941584558110906477512049294587658037181375798227032726932471991242847501559024531453702601428827204867068489327726157380976288802714385997814449010586225831090355838825777183013597132843734072492799919452393304585272644178079890518109114007711938649372600687561789040508309879101800208687442198642371472390127345447442113381074495291427941212797405057261338588067720249775791200035045884417593690102987106590699692924310270321902837948028192722882147832441628129803727157719746828431512520902356961658547022374153973077389149977582964332706848013330471878633487760007048947369502028005138173713611869320465629116889860520117892228795681438422575248748430623187395731943837398460622268434860453196558776497190889779484138932898943060052526237894499759123939691507346292998934649686892336588182004731858719131056817417127399278300548199874754922157358182759210275738670593711490671488363752330460410452539093915493262301641350041299304454530254285046217899736489407797539106963716801947140161210738761987067142937259800310230040955665989709118391750018968984177463276968195884406787658597500993040807975699420107561510062994062312345017905222068596516878300656820750473992067456096759705627953616227563932723775825723492354635537216758350666989151325690146346098759361259744081567373549393307151141889121821675252850405109502569266658223198187709958067710623447224389929938011909594372181435343886756729669590420425719267943177377879650755072484876387215393189788100472558762640146182084525396974643099965115182623372632535897114645441452632405906719525848766980039808833967082980381513593466471291633023445871556031854083117409252692649800409807330827755143550357606260036684159853166284930007882935492317769558203488854731812190781784196253601946057668891715419218389074379819404687024047383970482967187506989781182290548971472140367232070931833242756734581147820103969295520856335183953060000405422539059287202611567827637910920875888382197259899084588236997684311240552360046715839172616095428494345606264292246796057277316071377423565938090091147016087302094606115795345866999728821197093297128670010115582520541864844428598248433417697949553568747044023212258581398136199499308830025584570989395295750900824554471263361822766789929330464516433082383489804565428310414919490341858161451552323349744161762125384769043609315780921869361091736631266144525941014763526281520007494354709721060384647135286131386095904749047247868000158957555362965607829564260176988090527554054725488542893714745264267272620739919222794989565737204106716770639455369924754530657309960740129466866090598252816662401063683911883893105479447430328506625207896829116146542163061512068294611193666541051212603072604207389336015841972021733662847133147663891700548778467955103140722775759415916167972489243812909863647252174444925841735846561262764951555190251394229083367484766875881131843530853558709200913119628336794121125609675818877629365539116616707216180079687285106940975752866115037200193218475891975301429056320928108913898676995006422790985049298138183756806747170798316676413974555546043746581023603734276970511851036427502346254207999644712440488075424412581962875756836473823786599310132764024660272366385123239376616185501091897545644138374819194268202276902668162949399267934431755509020979606451904542422990316273863297281887463363374683687522007408105567459792607000710960011636711148437383701828334339638527577401348646270042816803183527162049503698221194760470530765947509447605690186193976674151171301228513743918173955419238997766363889333222204661915153372442617236132042579633567545718335841933664280667779734092789198188124721264662923171411298572965819511861930330739670694095817070264743193989299339004442854932141472809098273051043101924079463632259040478586767696304360902103244726138253132773687848904321783817292790496546535194185058361958700444457106899796408941388408557397328818347674477654836188317204872183901664678167465285655171612034606999794188692075686306286393837606353186923959601969371358866218537117598704952019383772703954099972630724313170809950235882921596556223687478258040990198061540550101919849761825316578600381816063476934892729139336945796155789899982826720254314120920718589745890577161810921540114267896369334962413182083923489880626359010707639569221117684837039025008927701555396186296356069493943996398090938042334702926591062455868342328028935224144568935912430523344334213901118882410837280254845874218273009753518152272538816188500235647771966872518468499528416539686057976825521586050940982814801368111186710448278319182580961089990286599818863608509047496290895583785261226256737129420203635123768657922394181424025731183004629682212598741350658551959531868225694026193211963720879413998368111594370713766276379663622947099450922659962120232338094561481865179031240174923504112598268060776318345558632888736116075719270873365245538560543654967662975819885286299821337088998298829762677438768511981727292829912040856872149855021596523094006644541343605800981077800475388568016422526351180182788596895913663239563455794794550182795265751692466554690250012496417787587654799966435300777327773518663859362069447445154010329731455633816646102350203123701695412868836550422355203153102284945484910875370959587132643284403350387682425787541512350314820524075098064818952026631143508118532109323775610667509831978578716584001342783500043414831314179897869980010150841225007175233779939068096855229080167203689168796740525378648970846219630690732754997035655545762429006839614735352288747124928618754494267957212120393476155085209957016458628974329402157026479564102013441393124852882429847324592779447110159264027504780412768939567942409367239775247266092912153673239219509718463000383413249942265409948220691784072930493571260918256068091261776985625820800984519562209325402638131567550405403750362330890358406922131044823296967397292426083068211027216629484003537771040770945317670526016906374088583395535935897323206308041314483612284314250351411295821424564930366183825619737276011677934821888507567373297311372312235165196325856801023446312172333560796409256936618738664259643943831688334360716045087304176420967219674886995751992013832031119142960391943302048988951406158304448152825864287866312007599454830112431198412354815433213754941706392386042685771155012785498810179714003173472036302445476269956812081198920141253471362852586099684076687464237546788240126273264725199546155338054878137857429609433227078445699943658736294806140501640319726402887006779500451165706770397320544463276514340797328726803146505877214749493835394210502280606046359020366072448972711374896541162339022317612299740675923329908643844430812102015032141527389752004767068624615377997884285653577513232304989070872374342775192435207583168556634931154453143313811414221297376718681130020237369611401144834515479423610163990546136224503860809217495346522724575826416007475388118665657971262152331186117121607162539316843042607033674060159626210531042389889135656976550058760891488688330876165179311647615822755544316701066860424400396302322567761358266241358495436279692758826905934695582129959313779167501665171364444535537234393290589018042826579528601860635941435834720361413893350713425417325321067437962289954340710181912959986162436679449239055329491325380322156926368034390557017728524971351620861786966700174786441968325631103736681391250131430634813031255417482675004087076574536591655452624032939889438977252204291006368414823193200075387618028128239127742467527786748913367132225517628907979109478432912115911204260348231765286129036459996915328159935306372804801992734310195448916818218328155022834831842007056315158088525631775658209325404667759263777400059019408439915305159226008602397294908111829640831772267965831772294744426419986955817484823185571440432363192414593181213080279086544093294659165192054099557689642780001843184922584617719555788875046347442608695909208825653821461533677312123565109934781590492841613107886107246043058058470304929685685056957545049659824994670138428504201122102388328366933598061740070768594260376532254099774447621549357184968075490085550851723917329991932602139295480599756678086513250936721873445289895042900888612234127465169415975987034290670624453336809687989447973174454439647478855106179519155794309080755896772608532860145749823201994177763375846860336996803790462211003137591777317075094600009589167688225087479536448443878392887486897883854989460518799726278887684987433527544509735290878605773378869529485386323172126104485457579886325162944928076172994969877605528825768015200534841452882259953873930666888065724200376150492856091906379677677204644270313075755687889282622594922374637443404161267311555435919706272980479916006312468501444095677510306862368676921887311894168407281034984527250247925861689687676913768971612420342075822580231499147703704498878686696095080529507712504326444808287666570718627495167158445178271160730579764889391743286090904024546506372554779976409625265557169106838716187520747450223864055723376456191937103757075482379814620732999627732818249908304918626183985065186874460646515489405685941830299450736704823172906589569492931594018400335142917903171697236799134104592210655303815145977492898562566553185070820677699946383634700916459587972107676535848726613130626745434862147082424969162328376015528813147489341692714568784797191785797864537596631284494721273177626921445372536296872852651141555983797701286725829807022320368502698467446257940987340718265783654755678716737919959338481287088771836166938525431999381587425163401052945440511090003579122805521502126644820855899872008577475327827123142570215293359211022370443695468545923243592770545908641053732733820210520031634065387049567911379402139464944254787175500498400705920558184818489705136905235511224715831023305781223508108650918822149429901577920125484519127811293462843362197179839246856892038009679780226518276518836493514901246871924020966898202147311771632327053482407203010681712860884544729878872718648311607849876472259755319078803853619979815441082293855982729255209296745649066739986290242504444759582936812093693676228209131064051507338206143827051220332298273376599576211282073056116591104973318541717485845712944772982107292031683818385496827513608755423571361661940355384086888169617429267090295391696737414596410795507006242169729285346983285681816982155784062182376498752437214963216183729439482162661902826244782197371852240367178358557556943459607268565692874026346243657972770674887103311498086382242094907358925920541520918502420819458977239243532605983689565523892288374995382793425499075550036049121982185419386239987135650600440363694162600175194495260265659274476075914807913791684389877532273060581045267471417894918213671608906564944601486563793714526840514535873711581308304402459060460069427117054686710990999234555821965851677656672016889460381269712185963797723318226683788858110495299259253162540956381298486620988898588282077485915781190663633798081291224465500387598778915869852886192854679617507944724526707292234685399233902980827003987718827122701467696401047715195517309846685247964196101370678428228108692162855842372586683935249922733276476635661626070957281088729883006632973613789096826854230136444317474495063515628138653362132865070609697453289531082515631779016805734460154715110345817224367777501209511378339873079737579954428033789239686026032473723936569492638842628981550446155080530413112499301565490322427632253109359415474806687452228275009408245267705933096788341923261371021298752933222538930208698316527782289381314936267181203599744921507291270204756819633702424480669958984159475208091735272717312201267116611111524736646727370412012717470016587606734189202073759011643587648169705576897726895874449947785890000397545493089665371362155883628551992832452618034225949260363738049010370369241714685660517453215605399483293521371148059451502566787921972292587382952613503485406105097768126199629289176250571774638936253681448073047302300163846455920691373728856076773331696448154948151691754337422375588520744537183843596055647895598373389835397880703853672053811239403672083419535373014280367663613056159665294599375830019582488926016465989349245042846554780068586744466669323358032403464077216628875848661356684791042808158276232787990605216938095312851058249153174528575540369857658636952682525215639270718766891147954404085424641965631958584873145337916213469998548079238323205697531492508205727690472130980110675531350507136231022686829559944078383876298272134643056097020060345374922572699016860562139057639346139620759484630254598203257554176394564829287297553722101455218678776521369194798514183550020726041378682949384808029012460153188170936847134361228857594486541333658464770359429132476926793755841639579718707827440344542154956990424584304044349023618100737481997809798985410764340735373207995011631072571083603950872506818918685190608927990618797866377971924409055075613233502880101343532628265406334641193051973120992313488631316212887726657625452259413643498158849365438220234222470091936508175583173675346119723748614141697477145191210086838886371565031490044019269979734948119307402770303044009713400204303379694731280362311426958269896537369986051758158776450619994179348964133857775794078330977903854695515307194748786738483097053581764010473695172751934395533714568409880648766072759474557317538300141245364830587993647774417589887276751140519105500163442169808435444372956100206681847632102429488973318271531659259920369377941370202210593495067102615862000917792815381439626604574077637954610899060737953905050904626518572619331117246155690131397952987200270138276719133922706091317297822657132220095975617670303785469524268932540079570798075916878913778712388340085303455979043443607905802509699108793652825323241929383948249142771387243921427966262475180946717597790518233876716157438248414893321943678478627443151224155137948952601408742112377911126437275613028301783992420029833139413472544778241994475537443637370753576655543204742364494858670715354704520737455268850983964575649297343907372280968509775347078228517933762850542137898546086421968697997999387452100996654675234536410284453154325708369453466465826156953125872909102097332300428014967208853999589536947576914255735949002033496171410882854556991572218480302772110899458350246666558587592999519131565070871687782300611425972261986349013626277304212068117437749607277584678477591066908871561193559872409627669587600366746745966404973935282998573898728150467117435990816510422554474330194157277150084627629457398687247515476320607778531510816767300649626342302474318099509138070540206522898929847383949198006123043961444089883568994505092021133295292422616892553623256704042756220266790361069429507138033916551999328705306715361847680758331270432651661489196069142977823886508962421323026915554036616478607145404128687214681256557796083131942350476543688167893692931758412236600732169934806814177971496948510106236239788420238200562177848767154085286918457156103175971438988074664292316159357690199216723666623495646408155552233466111627102751856952814859135698340419051594906812350414807163753511434066489245601693917516483468707324854247421222591991651478676733002333788148642875920447383980923852243820729546272332689266898822824438521614069477656028869503902404322609972064416837536106129279624305296260234607035708029796354936710030108145167937907616149672478584715418242302525481868822783297895847221617142642340848832379554047309745499455905432293582989935157868746213165477665524970301207860987203662069841556111108205370323764131934463050778961364791041153069981968903237465287775619748411191619184279758658166031604417616928540500162214956485305462445744400928492233440326258844902168254165584961769869842594871786546315087666456534073035630765184587851087960670114462770961349160641957907685037497818794367835918325642234467151727653183617192927756707205082536882635150071011667524199817500887283766016426582895917091769739145836350016744027876584554465462953696859899706821882652136830201252309943606294776327042552023904822042383839600402646390627762189108197614844564619390989192173030309516697867600511176597720170284247177309125353834913536949819526498543610592832687984267428394738918165632514806138498490526133145172727123150926767873268059858686171142186026440931052703181514786116092111637860187155209356304344954136569730051084217274241503299025413768598317657930458261670143820663786115511380037607527306226096152004982946208777651568652244626849397422939920835085653230340074511180574539011370506225335558889367612334223482431528557439054464360424361226051328249053800881748521635835712922986354482605358964363631939904556388881419331246394207782201403386585154077162416474984831347948407314556975747932887630512789075515849423920891241223852694002012049262712469115803348376299046756430751787586989431822307294682612275327625527064107109048633486935591110303852486030470500532919843167211473006890579932371194832782616213441995044890255933906312593781259832407546957935984865175412026542449833677104150441778601020276040177395633641955653424681138613850016144899360579672942925276293821272896360780958299441346604884982189326672218454652675431300119576652284119130002367512482404777654069455349282901413965970930627489965723067850482727123885240951264715105609437398832893539586968002688091672023383873917333288365843659435876781753934675855126558494884430893121731991251758968312664287349254753542285937344099167783301721941143347382591926027899243885531222870396024397236482199742956700175464544698523194466162929371509973415878373696319551047176962401177037555786971143151320722470481704075707593108134945286773471813340556971821643984022200065632912544913441012181542748920287982069768602261561296269588471283518769441854961987382926208331235254420653960316049719538438531511607204490054341625540835089821337158813676343362025256851390332811755931912179404843995896490338198549046644217895987814906159999819114690908089510848478316364890802118226624231271069101512488982675858124431275384924515343566662117878563210130522919440198937666928112840203384742129547272121247710085891198460287524351493561790756301869860053285072854469555823558229156080109758156537164705052947128929142655739716397309402085885412002813305965694922806593940994631899443206261824692508572705934521786317979453685737180914408622745337181085639791146671696046015209758014118154663135663635921169836089681206853856150858576969866819702646748534760308692884391711950206112067065762208390411155968125898029750146313685947639006153189725634760363415335255463738049842278035488197229468543008657029514213713990178107636220068501847677564873676281362468256423855688388150479300605439761029467741863603018981612791401029035299350400856357082472997598654492063983178663899592422069866367756917570689123796001596788610332186944917477094246811716058758451419908302423049081097836275887164473712791097826801585390190330950020629649212777137856813815336592158726017540183678797894326465640290919379890681830830597432341638534694007448877218446373577507575913856796728345781631563353713615550895850597452898859277036886765705796127606356213619080166595512209937350593579724724470360748744119029617731603598823035298405447094336673229932197806867418236332976431190790850666701879332883370814833484991693346507808037077203162405594118692972045312196286679256747386518273869260570934749440538907479233112117941917738771075979857010387361467242117400004148412344466852536808379829420901608932216601820824035529915414417421463293988247637942337690558689953332518357173662740108423568478766594421161359653981363279619865247207950937371615803794895710989996520933386758219165564660172683902165698062843033801821033599444240585401473668804663971015609693596958479108361197043918487459393088599578771232059402005169121733919742053122048191740928584137071845956935649953030571556663559138269260160612415789762941772381644394659971869002088684864116305774792292672333921970499053641080382320410066321400301668464570542173197529990822768920597377006369028078087441011437349374419746161270801838703282651368759972297583157843917282869889425054150324675598596143028351289052371119882213642389713776030029753333380526079382783937253812776548262685703365389294669984099368108823330431812482408491168260382549220008350779521624940100982318288368988275594158416885991741194792931750363578770795620974959388072575508244321647495237659970505660843541713136169438100652272539461906498374489509555843379958638379327292290563057334795292004289124962495785825328625000982422307507011556061503446609624612887447077145528065843112190481357623482177971359231063457271076014071171675829396321487148060696527497589680137873680941041040455315320331628894187196666910983771244063559397390371829634560557898701663327928895928019091200716810976216609948657733827225060429348971353323458549405348367186311194041743816990288372001053932842457854497069352808650878417309608945748041676530196782727124066399716378950240271891552824477984790348227417999953648577060954754419343601834567104467736358466240919961638149728401409763119607718589272730611627765754770624307357353590760880350882088483686806313692271097038877079244558681792039016199953981310419601210067424765596090111151361959653129533826466592655852169889786882876965598434430952222724080123095201090022558312461908788146321654873203656975562468503756387014328026828717029332669211860875167472508222396189395576781642817799916993899375178573722976180168830429228443553022079597823475619491794710374092544515783872764729139442158797476419859651950951637612249433165413599615376441341712871853430359907760060454416152772837281214674248070176504392109998428872570219714111863190644124896850874826308450171625719722254100421984215144693204164680629880462862214625205715851816994487096580528740665715138183420308019266921495200474104899248187190305736099331775418126281402961230831879098247992859863851970976663176031915862826886084451458589488919229147792257181859610570653858520836807678204725566048150373729429821676123932980680147440138839077098825350758022531279453917447512947669395502806672230545508603416130983798026719821664074413885821470457841759777217133378079992148004668493351797865193131744319760213054281007992088201157917183506948892615744238846766217117249380138665008076120574995063278517795515670076395852828938897028634543080457067483259731309789713601142599967887195447832169970097629924212621231682601536272223124621720934523699441778568708087573383582664059626607662636464328023178131462306695928836445886445822890517549445792430893349570138838795761924403111039466857886321471098728004910002100758960149473997834317119046777795240752037680083366117854493047421807712649175486795018035704968211102791484556669183436382843463085256384918394556270185246310299887332018527904187607959182031399950331293516915951885523965173698204406295325793716268754929029581262631487765429311142093917130231962391200753791576767121869869385343891353625699915243159325927841543427774834239016248987169038593346411821684624482194988616273883105323673811885217684187979005689847514181184407349618868515201726619732544669008117094877339154126205074481644514968447048061249926552286479792485883929303021407862275491377310110358860052738034402384759834552494483087389196087000120880859624094765663427348789998484441492126874778257886105680512347136077086756019177504420669621833508123415589603117969516780762671869311942557587899966240388091342632099527411521433866954065746538217039362309595785033033392177933147634909333846490576243429022597280651582320740675748335762580286371757738662666515390559365135917918805443016802802527482497051804469752514636329034176785813602621473631246689979359771837540829933917121763382945731248744726983407702915215668347880608528492293071964331710805146046554922094429450443152486048986763758992978268031887290428162854534646955386425572676999140569205643916721988681341307684384325746842971849119952461285588329107198962897442990146226572566850599616394112603112262462300066702802012254665100427035985010101796205212871722162500876083373310073543668244900695671623575715350859564023724780211960318582099938935117903429489051142347742180917697386513674326840019419145206942134867570403709529776960460528316731026967516589104591469839263321709660339662651620360255036875208232372480215086882045695659813521566886700294563310529631066679214559693797632477518358199515331149573689734261549639871123766664483158705262408764929901115093712976735919060925933455404543414685625036505799503327537187735783405457308350283295089657838462109522427307425348488821217376490665276208380890536943892381507210888051804295413710926782374138841979401613484181913880775128174237748541594582269327191765684931682492943997582958260239020915562730859259869100455249528114993247591456161917583715601598474590966486901380789796656009648828401613162979689348686440106026741895350252865152250239623409238308360863291339331730770335387652836919054921036413878365400076265525661084766381841728942168202914067777879037200263958186664315590625112633298192078117979647960658503723139306266322317368035156812236562052971647270654001913530035909644921857064210041787669342649860218691906517491339024586648193914854800762169191265101324057242676686962694979192564008617277712283938682045326356536058795688984611354507114250932522796657153719547577042155292744457237482318430192630094265639816693490811682760664712820448075958475749580659554516447956584890791811412167988928778664243764166546780336445137406668956061756826164359661817614000193408221071173988548584028480795661389309591395636207419693646171994229189652477657828043202204963720976392557555277957001951619124169895983311237734256841693259835189320557771475845187827819225336690177499473949320623060746414935945208301180464047395274254720425192202022739195268958229011901308760568104494949855897928919384206159396069053084686754902647566580551324096546371952207829819878852695470136326933654968939900964326960949023522096810963154059816652121820651096881214558703340376549209439043016017784382274570499424187152693281051270102990094488842592537139999526166659624403025110692670823253062295898177963183591528363642681708632333924941509567159399359793360305846899581029073925806395283585166254838330617751540156313728817591558979084511937383741015861175934199096521636822132551965552672826830917729076752652973152192867397694909431233214964239951170335231399093151414916441416290930133989209578514429937330818739363422526724841102048960884181458829683187920243921342326874114782127868496423872502475959101709721359176098121835431999215168321389526217786188305011931424978440891325609574805927560219823786262643159349001460271481434470476008961707513449712239474906610850807625109422211330121577380115169377237685410235584261890906760774577505110402103645516874746962496115546647030477581583270918704253882888783834451016264673448472874010045636113526080512604675724997360534379255032279687813014232963757186961058785019785281227573133395689251418659168181898505030331827938498150575751547477752373324225753050815654130681561913517232262811147295322059217442027108278583715724378214848572398179650632295350031445200655553708748884240247925806138663780771149987669721403413645642176804443826241820601615770736307894388545211006180467783647673233602573866909383023145476516437735386107000638815546411096271497722779349458203023344403464127426588737886671388466859738710716202934131172270158926201050782202704019837078978269765974763979484482990162806479866910402417121449087008884827449026725760449708945067890076720755442518812969630755406957475221261450845016127520172187427276039157019514831068288343434598158540779453403920807161489472453603535064236902140780612888339542831578062149137636979842313180774923605668339537310168387251298248226665594865544109647024660921397152966172304468233634415142957895296704239629222344064615352102473413782897253781451167881282110898331654905942002534518680025026139421500653592334353327892195842116644288793602256640166518840041419947605807694044876252420678700709386014435755843718743847564486642696730528031673025278585097610549149148956039450256373504989624167654880255549383632935279824786958637065891002727303580203025286322150825775932491920251936238208464886786817131612104269995553777575613305482852659786783986603629426243627617181704323714750677046647232948659811176848775139824428683126956128228915868236633977513593446263184885905194592079153380600681334494602871560439943331915895814784030302539658602398149173737135111362327338289690957342086068022057601237346816763851209566681311149553862430314498436701393733687023881204485714196993528417089336749587943399795575477563410179605957114070570705995438043860388915085878833912918471593820706435550781184798221100092539060423902269847204592319625553237173056361803457274596374737408201170188857383640113593814708418877139376192483991500645121781745701132348890578657904509476004578128003142809594199432379206087752667264546882419413760127206527575561590272403785275709558800912595584603632403826878234927402233997798557635169614047570237934037914973279801248072463752425969815126145418526146426654658835492513927149966743648449805672762419753820877138976331106454460666722342730870579097391441181119115975536374999732172892228236997140976866142871097991937296199159408139162472622238541722258645974899146170102055958026586969635840539373220111742081651094085289364735989121522661063072795901668409137634282067795251912322355841765130895429269824335457452925303240013882241998412446656232429854390650884641240776326051593991191673215725335494213894203605534167083668610799049548446319318797390241390121224917645056965083649953098917888337496610465393763838494446532978839307266807621206844656576563433072755529736941859664378764827839044677090075235363440218579874230635385034288272388047485732960679444762321016113675163048285635181682247652510249755981045520532267546212354495458009087444521064414540912321469092523592278916511408952440174797072856516881727853947494529158138660332503700287986857293166026410261409448406885461645272168036496229575469322897477954487842721745527909328438739161144043360508804882884964801640516815709386094260178500513996723475739686677386263927904785856692577937736283007555044115951603111543259680381473974139806863415041865274336560282574533986770955165050281012025231713564723959553978142699992120497307446994375731810016457499190942618197573926182310081260948227687320259335851493463378747406842251412730689769430516485294882341276003735988090117151540402018838847205806416087161973044606705319597959612925608526765612097163623766067540716457364271327016104513067688181414549558050239728224007740010516267778945514189554443059114595161708900981314310136914825736191179476292420451665744830470811524071277033099998945709425830775036124699545333194463029309356564985129056334515803321478681391344535629922367048189766015441894620283859356015036031889513171621377240894781183330636773921567723160587088231157962198128439334504935284822794687044922702689757089833844538629279655746828973156978682294064659682642364551668151760031234225728311425557760632460901263199787678895431336064906980741768959286480783997471639748300141742700131011114822171970956780526383749181233838419384123362620972331792962022544369897143951664889207577613822716347749628685256443935386884745775543972867583002757768342433776492274393025305176619368895384281745903828642449879337033426453220809984020411459836195630821444790549430731435006541258580536833447405446248826772302480684796336648636349680941638358165588094919274565580474805350382562578863423939858061203311931691679789011974502537327615828254774477818196455960796328410059362873891454411601917566731201996054560735720651037662978726477254658156998138893700877731588230277106983596754187903972478905238515094779081593604483800476903814471141022005975744719217535074992664355172293736753174088443008134193661079620337871643828592254798108117174501927635136342779542866260655107630319710485720786572851208093967831179119844922669146874737915964813996800809809977205111390294238388393398942501876531613315235706308323113087616534492316046142674249198139255247361113402707780876708124696567366715685012117004121425998077989705896374831819882245808162273950772517672215222692115446598783961419595323254357573945513723891864519084580574146662487219089609324353442425205969804212467111240607481392740694358493009745232856017144878887288537516214892714291236074847162624121248323336744714419482185439647606349202215554159935549146650908090682225241203653763199733784165967976576342963207140739106186235918989613092569843498949747321467548612490815706950907931159397022341894507249167889393006958386622802621653610946425019994603079542143012733529149498482915819225360513670858614900132850387627853870791643833088358839861720410918313803895710242867466730498749922061939106591762872226101000709749055211606693990725343198353594861179145921088766226541671871026421163114321070102117343433493124619939516669826226825996990024886823783684760163185795587480934671982043653306401330691328938407084268166937430102186587630447423537910696116594681362036596178115487412726484930962202945946194648269869102235691076901124931005282416008044039032451172827905523155728946923673094771275506348181066294459595364436259078907216232171235334650378692808731778930015477861300965963101574557185725545179310881579361324387399003809144662976635758170950294488666188885148618234626146748584354659782466635625987957123859994402812167596007332262987773731427236384718610183891917823274385160101636781310087436825363006207337901926097213470723060649265115678707691421460433316765479575034548698223795641791919741264460137305361552062897519289643562108755751977628067778951007159889526591750006761427764289082565378773358375484556202805932111252165699579527399140292113165094587492830685741168655812987550740634954357144803531413802327858115848988073438209212329014687327939664112016312035102634319556041471895268652832353561830691051243323589433501371471489619997464471236921625060445368534061902253321513620916000969464388189899613989974886495440585841138639039907028664270072088303499426896901943246018173606176102994381393699456462049241923520075233951218960670888557115186364014900277431779062556469783613220800173642414179642637541026770000290814176551820131858204379591720560733495181659684297000751616051545107899028753129901497319973476503153488470061612584004719417670360169596351907018317330933337303768252391241516907460117774986879261790943108027169954102914984385126669808205063443811159988990180643134177095690856510009371497535855627908697201835310251374293590083984970965302090910720407683192318257897342386966475666495408877088976965103982141062015007250159986113140822386125948012486015865350875452644794572159013027773530673568626431497015946497624601025326701217736975488919011621665538189708430377356913266656853297998789338387703605485351408839472935612048545467453127464271961493318590089825916369477116765952486446267750889665371797290043395489772719103116352634881522212614231160176845484444644158071125273610919281160900063700554825146892774532149527736356612463085011994147949761534577651741305356812133669572951224551274357621430233824051509006684592094222689426802189191993156341120456300842454430842369295693773511903810561465061452365145319936723232779581603835944138929177065562271989319637301652172984755374690986454286548598949944302682671331955233165447780375345930187033091780407373405616882167725869000176383606618093049938895916331025745946331153262142426279893648906390213695565037608634363269676888468690379710443670943496280874229664029287979330515107490444323885152230551832856823313466742939179443702916664726108539524412484648102423429047312118963245939455874120590753469708458756743260830153824089952059229612038332927517846472849665800803961373515513420309747926566236169449478743110503338345732621179689559658359245189739767218746688322246136906243537170535235114826125874652363855444402247870634536843831404266405848759751257714321524180276306719767620107794088303115601715614076713871197925153697695962021872403206258144841270352061114674892388292565561596856049033732117672289319009562791147992514926583446619248619790285087529544551298682239692080410594709295480109058162890691468301032260497686115729528427876322452827532812698506817495983535653642696576458638943025667385625204571665438352056608869549741604765886637619994631983334909704014587515045842690941699810295675016344837671261659556722945688912731749797651562870917739452391563900726815420669876867200115519557537884901510121433499185403574315016914079430868925495635577270548528927807971970346226392061169388162230163653489713558844044366252559176158058324898975519176102340604931551783744384397862527809814584157712382547007433211522523971749906899118761998958849187628288130851672413085462258621684447055322167408817205231521929842129138384756676212610693469220608667656549475407466885628417247925830033023697280465390476415005651031296993232151751367992233984724684116761511004662017746318005103793016681818926729323918711375213598001413879746490933196271971961527712560912673850426241233418149895412416003464145745446178293771594104464034138157731420473474528043775375429014515506479451426436620639404650738674061195276671360108031629281975495831404032443234781769963400523824748715318463266259235087721949692639350019631351771067217375317713004194634991058551310742715571475117121671969682793315565908753920822083147833167271665154687054037367732909619913738551585364080342517798222113424385970300701793305262868637827056267407754613469018193643971936385484215591276399153728209491131022205167534766291649681814748147325221610671520678815687578932290738780882194901451423267887381802100141278133815439155883863326673476333112404372939126662932282822553056162456057850082327358014946015171052063590860527674229424900999621323836513435791333803052568543455496708975615183599346953315364898514290600200305157777606427937531557214694020273736897028877542840549657200799980103336098044021310888199071400717161813707760731764643987928133261980346661052030318426391722513798110690383847002862060357617834034056314135583441560346808367240629061971724443508415466502317682281599924308692188205141162596779970906588597617733986908083968489436608809820707477136387261731683114201677767145896037012936965729387602646475107928579412499016674167085557103236153642497563685247611078580133295112397240167312316362578734585106831189355141514463849255224366446109426958332882205541103400612178183108941846826875716279866682534963569008834092069357116755597957665007776796368851063308251987087668638487014481772874474306611395061345297510119688061054548351424724777493658664556769357279855994433781403522071176526651081941512275855066165227369955885734277299876399334224443568576693946439826776883356404796160437327393435213372584299317997489513940178064576081118958615892534516557915777626543268903660089849993631376814970086205381367980931192150373074841421032330734249027219064598643682560019369877457290983873248566314779901672869568274634301111960062387148547991155159210380698961145467094145964350063363164699160758627989642733585528098310846878247436124010172485617473729866952231519077567646720101247024064949005707846833211750276233083513922049225362645415949497215421230569530034200398995160059373381412976473467069429075474531127664253944355053641594473439091365276428357745252341607767069851623305914750076089976973692555986149662459096573277525467192081595469499345273083893429770054133565437738751078069572436428897089774197425707785607558012674548145749472541052841476840429830189091961168953371989771530534123426787412778428584600536218676213197309160649296551739169669639591899391681352606334549702240928367061894795277713777302156432128811041887796899904061613000725388589633402371916936778966147122900399899915650024572761295567173206121613569516778829447006837682532005710885601374543086308196160417674601655094802492459214122130320555292463380412121450225874082842001129267763662318472942579853602291993291786257069275080070120669060992466692292128734040499273735180688461840647206929948404461652548677154131685905465999052189895464093980187775866191791990809891782955616816127569313425151248361755977417312529147688755199934057474127949887677629345223381033004811298415137575722173541152253554816825150951689482094935992185351998484139377063752481487645999154812300715243037320094303272297312966325227180306027718701513461811933105423621335451039639658398366391026188516685281038863590605669521397492073951943744627102177314737073558205075088796677652134621086070559908004657559135273982109429569136030716843997963455792120060201091215104987652245946204957387301331648496594218957265854677181872409292711757423130903040129814999875134854608160321153938655148384024111412215511144065183875923290127628000485419341862539663034698348267015739951097856197124752122240946934562833330209691694231822335724347879947675989340752057045263062672388431353738531678188483888247837718871446738257436450296293296781914672837848184386492639531540349959664065983560493373751173532036270539988583279278224781933943432498446895299513071867132595165636463155717167528941958457222714244126425549592915979869021187398451097765894988784666829094275283992087964037839682900687428192153339304182783041571618382115937028799129891820210852277033950307313209072092663634525815218325577660550020823393874384087778491372900685470734981013152181393875747880735634357663955066256565406202411099396967773873035059672583898544234686302650896151953365355647867185912790951539497921093476359699245624341058721221999458392272342702809617125772109456918964201924738831104331418370802174675886673456180395485163086479408027232111269748370331673439941241310610024086562413861718833605138019905177447174532636956431860616950914200906303034500806562827374893354944787366507059860357236009708180477141669178992153018419880888099832982102926452034124231213578846526494990795990047079291773723353190985655708459894604557334512436665627146084263652029610849927546020452378631880724673708436091748395101690406140149435776839987744295681942839221520930028504921235243814127934999873457615298843544507733409413282745736414483271302344987300632885834040677126427596799409329680399308989438191634075521779992377708616119330157396238387628628939625222837835361117512923933639305828810046171343924693497512177292703846494765085138588650481617523867797885046921683371182546815849599449499620771371377450673713566621921843527342575682637323664948101307783531748841941159873298690191269987567232440534805985020166963409960837758760693451463922550932617629518808493720553302855336807196242135158638572348866621963983970000012239836005565820460655283588791816159505764790830798024107842895362552416936915396765638917568179556473605621456133621192108246063316744398357298313266854212929680611685829084684508210014150554079809315262816545538234370181567389023367770972576648980618775565125421586139863035618455845969017632923143947022937760687006731505691164262628172215309185989734388435224619457341932901274999673642415876257492354979984811189090726178121179710473788003349628707221253021220293252523247242171856696863351912738938639045408956897393220320228399406914516167622862916945277527761653885898594565777805202637284415319391119390314783200917367839349372597450147106619374363545404033217626267819675614600022646154371645936472348414847616228261476003742967923551964722946397235054271169235032461434229518817357869112376565770393813724434911001908342003466535276916374851495928592679020341218897455166795883949295812832860484120402232796459796810846690600306833338653324676061726607475587334806085055961477398616668316043036465463610616235644416839828934652238624032424716843897402606288412012907541120006003011865008224503609261109432046282204198236581747633855155945250211605429711827049330676254671805838533307152737004995321387074555237577069510030952270609336220018238332565775702850924000589361902219965886984757697606211819202168631648819776617200743688313859419097761461633043356318734088335861076682134966221328805710577728455760710660414494474118055513294372540848286138025802909247268095021469913226317130183809415609597927807638302106817000399913089148828498468511733165545925842910275380251430310601978264536587038707349720928374675533521683564030756072598909789730379569714279966895375965101875805295499486348324301667842259155777729177188241370105715180597703355082222382952574138268304262763876130757996734536970375066267486176359645970863410312568930432632779578099182875154323161307847838055301306776035206298637751553622493870292909299383235953950041535346681104145659309524710684986603418561904936146656432264828034854228935316619553210693084504121488838164315591784519381099792668858968939978877005053633259204926685786504325649289966371436996528619892098822277760656529303745551735835054317603105236236458138234261669577781930282317602586317978775472274358187118363211593965133782444905822808714455103586228492018451581476735292693633957729524751690107799063135259288325640156278044512002511784621578569235109694570257676733653906414506203415408908146305051616088448345521271243379431737921330645904449897837684450467381584508166830024713611542923238961798470805912585117765519355597296382137834297121090154638788551873027341528369183443699292120726927990859227714389131265251807863344970424668615641756600647383039337491882873360424947501164586319392887464167835083055695920282440440254949054581450118419013920614427299083705223290646875017637519356711620300025828643037630095161947508108675954465027241940034951012583184872349421309053772351835030861474999405502338203612224703408757451089271501364191086854583695873817301471125438008194236728232128957346598876601766518022708140746607839141285269249784841434909749040195225687877317079827114438800808637607465501412543378915124173429810126049371075816852830778026682755926751307772262961118430918283361337395601903057640976788690713895969292686388178519130318649608791847068654186889288496654002103952204381833504996779346800852307859490828135471482595752556744287750179412307287940602163426141274729093529454478506994760503478646096200347948537405811788024323924570561881172197486903050237525941399257562611929512727303471388393563208941477820722609239108356111449103866918750982185399355821738346767602373948807068861849706498277610992201640769215024955044330335469469925262767956580553685755453171240851082527959718336695014706710261828550427083142339067442419959012797531851494611436295529537867235736641086698245581087088431159903428251109794955415444738497376493527014582380342124826667256506466175684175084268264096212989720013780928513634257583485290677579062372222668783523865270169369318129950927657860048628289653213928818077776399295102923115303579838085311315236924078179751285762274657946597652174967695052584757897695585400146434361528132102393449030344398898765227173645081079963627618854430482522947644274872310452635244164406673838690704271202087707590682914315913898118500373659754016468015716412945886563951838052869191213511298996574486259333364418381463657298262268077242534464211846222282430819575875752920694021263886604472071364194936496120915784698060261519783199060961703778828412038493879755927959921856151736556420789868747352115714097731384037898482554303755714776740021789694174969736225838809752372929762665491102920133410488416603127909373469024969882624006724949582230874277993268179887202703489528567590057296445696894808423971742729327197996515559138518102298550088103163777536068314764637814727564631357648450453964603001098336908791204054221791706700853321149809641676169153878614764688040394245268285236328544448865573103436485846111646597041151454140027558612075999261295323902014724033927315267173092459962896990157017966690354245110575191087306711898971181849906310788668309123593879351980866967452446616074614281042916836511603423529062377370979633361208840783702172949515138290021334033174719295170025225831469265450180430797127443670066917484778376168647114231810874061005790462706200362572031201424110486856234592948127133943560469263985326486818732613287943144679217010707576036265917086609534860886310798056063854082089327925825871266523402591055321227111095895069396370097896567144946993091294772250313486519280773030374650749475270557783524587283480551823432508022894927948594110040798562677781649591800954643991403956815978509922161316469392516479372984328094671547934927063779948238156981875399523899531086426077386322015164562015941432162214181241036843015719390367962155531380334674018428630995590608811842424640744423246015325628731713139853192494551995397392027356051893148126741356175499337609313922544474116379620104954711134410004733072321446898189364236552014260915887358232671556269116593493806662777065682892168940234754970798369435300749478698633287010661124482490168689936049085603187277425287792772383482188935526205321622953180743111212705597032202525218237734067352028941398694260798218725060328457887184377188903651800037682574267309749911280305274133074183454632660186700997239796819127294096281264182669508564248856549041572352741728101972087024446849660631065087469579396482456337665897221855017992818662571877901007532834737363259232969358386921199055850072787220883421596539389277768632330174162379145372899566038219416243297889055197249399414600302416324185969578550595428249297473733509700751696965700596566558992146740072589797283472863442698221681359414950366127470955583419938718958971628603597030198970186381464712211587193161013621973890565631617231916581692453988666708978311046161861646334183477099970845111503841443099069268513915095651245166106016169098327821697463675224433031812338008554656717437330131089639599672226346266954208987652018246458062769504335021459235819882974793138470343209365149985977196396899523236610131106640781411972849177076451381140436592975598807719763688040703008084023582472239007488565714492998111449356944722538154952588848835332384051192367368394798207353636767427646918949185056046802630681444812410699273602392964363713114497936631264522793001332645127682135110750075495467273270906369114938576950318319741082370160284823237707244528915462736514131037824610023917585457196521542830008102080630183569740669765033764274491361342977946391000611136751640005395089540837011168433640255516014485330367763100657041345280900800224612657372227921169091639116847025990541001854539582228242532419426821139038252020130739548168103039348208575962534567330129111093915404680183425905900262165460000813067912271369410783236922058770770864906665383817619199666947727037417907402471639210067340831145804346468369241038869936684749287579922161151788222782776648222941806264641579578885620013097237843451121054607541159970561933031879091534667322955063482646552549486346845743615036706822806582917236343131999481768832246981723866177115572070561849499838317604187733829570568054648251977724939115380625035578684394922442186115585594292760631961254894404275153710828367546228608093451678518517232794212084908153782827652074283611119700678630116054234876499502524731147512363328292396014416197345478712403057690066736051244171833509337432010207111034223712160373618859702150106834804095098625205849343944526450755581551327919594217131396105912680618291576291007971193443717195148810662205749847357290210266461938451257356771201730901686957322149955868500095238469440425570755924187119557171043572462830451401659177488573576628642683599439005580806694004882003119922427824234337042391816431553609543535764214041977126919845662478043051169727347270116671297674682232289956507141030104015579039732324156748397094524558648992932626680591004080067377167970567547918962082384402247683807971851855949522649109507961589627300875179403590053188178018902462443839392576349145119737386087683731909581509238910749110132816918833660407727499280004430948546606378987001036378168169385396785751490363867143943163374140818445540611789873559189243532091248613941739009442936284377236091634420633534951538288867045332335638937214948307726564429361776124278351190491921786914375210658274783686618986433890571760900609286607744605149992923410055697150644788033089803969250254370047345242773169405718920197604503144732871300780863469714029663563847787045741346023423419798224711664416759332814377716532353954430982107318511688492577965786502292868513220544729561019168446860386966716981696851324893679713657875271297572150699819126810056359813046948621257894328190204827411353479658194065333029255485209286635022382172019181509273913769202353556932325363242865071898083081790956796245345155499756395352302963665443184269885854314652589485311872979213977762247197300050786651669371230291290622433537814582668611633098708386689263593566862094816837578765757652703945042881893854066029499547238457240906089434592503124482073008457694935386429064332324887598257551914495721702699308870836868881947552841271437617189571693277571258554166957163108468537293318697463463179795954673292981578922367355846867091669842511830965153075486332318321173037730200923151384298572249579943105731574701738734501214408814593380317445914141089758429780752698821158856383239266087455809323530852766178740528808414274206012422475222044250543308747385960131347553962573261454744008104902457399297950397551608432276818219931723627343827380181135228587623587059514075225949833618687997197375198402315292426576492045918092902711105143989580335379142973581456861756693953002897538495515434523249892194219726004607201879458354077932386826368401153727377739506310555530184283024005680118906616623976824298816503060501122043826050604710324469441738136007897921215829993270630425897987710228639195426175617426957071065271386570809989663276847592582623162922471022860121023741088416564171199359388227846240176704602926561488981607758659732598355913628127285446520937226322677128102097775431169721057915256729609363342443167902148323452835843232219055662949141668268991178729152467175973502853144548495716705183408940605636114871513048404727315539251701444446345075832189165337464920622954121909454079246663574602882306959524572240114610588800353317209922317977996357828108572908734885190877853044508634981817523406563763482323322476508343317989286222666690740782477050275062637036450447988121771328193453396203647301971666056718880330499928743267989186415119492543880468628556017900060368033167763503367671088398999102449773476908637792162476724815840011135558948867231722730014014187433033810579978527495001958315252288180569217239968513057702572603826128298718765594070029323611226102935777369993942520634826615442729363242731748322350675781345115870169362889074848197525046438074551333357267729955205855412289429183299215785415222822665050712816142324273409574520516167301021298054998008842163538177844068218010324562118990949478935501856898125308837558839364597529995195111067695662049420697051321144712303425053437814842034756236021410911445017399711807068190980295051942549168689456885324364126921759239537331905564571876104495014314331629452715544173912958290553368176435809040618414902422349616543136018824406064517963388667861376533986034635565530051042944909897420860713598755448982313404628381995141077684639492609206134762136671365783752036910423242438578393412530461970737083340999982142029046176935894878972742836290379931128251222614475662639848690593927562570140422582243172491870062556106493815548568196496382365768400538812160260093243740540956382620097798388657107474928190779714068671781561026730389374722043719990658673237134404480948092247041930052816581573813162365913399510301803532953349853241769507390161887976847750861572496080950815889181727044464633174285387985673670517748189236568305255826992202918297347940943554390804876130241188205056806310904187848670715801330790328972250244333425342617282743902888674106825965397314621686204436838079591066937908388025160536518247854554358657179927666007375137761733717418355719335448578778701234843817425932922916868339841378008340453419282190090294492935098344704296855819184539015091178786880385499569539343031996783983847187718646102317958687520579431720460045883544116236971270764807453892471331008644782205451640356143077927266440791955931734200268869510810597235836138809058222699911291341535872880084392457244048869334079432279381131174992216671578729641066333139475878695172670846471922115573217471985189803684341363645004961814315308481695032161783768217299408850867269799440051566120873005582954728111689271574864723349372171817168286775912359099502443807520486087016351259367561914642282134888885557627717175558064502525901410853054235292638718681454287367948405331686945676257124863992988044253337509626660755438102215690828357724323443857454074575839758067902718187834113608914317576208961865211214672253314548871277774825842748004494222054569127744771967134383438180235238943973309217690770813999648882140863515168291031921058872107251709224762963002602823560548069423638696420534014172944852636240831080994805768608118137124228143590348050300217636841049550552903471031716704639390533988463304273815068832171483379499552237565763800980242866303669019692623147320284869349000799790233058684918928959183252981629687651649594384017071949623805300217327261733807678711096747443022689686787801445874232378850533068154954352647871226153767420010102143688234702511187844017779443362679264862418040703637188478544919216124208700150798742510881808276730628138363392022142900121508911668717833755198188017383225547300746574333691902058772389654593358276602703655133629588904328309843791582691929853244953567813993582974866770275869559653487473822974705483960963283636767712092236897260417405012945390821402916643802647834492268711595985754710926991977843199398846968297008427987977357525531704965462658318287757061070264945902711248136141561793943988224536433215198604601903932808112508158349815902421249560083281814976748555766438020336275609969917078269472743032346817036818854273056583489688578211221605826383756675635556510787028758871891095957428109336803514329625517052838816962984090508687969455912298048882773088478081516077163728336290020569247117172249608257465101808796754639505461872087151479227884439772904288857498227518927902416071609310270456605832031663812984114739541949041138421771636447447124954541849474738361944324028357379889163185976517369908676036481376772835060915156776025036241231820166365305110162888932020234624112269935433979266877910967159098546910624844217340436892398975692994207546432622052785171011099309902897111364280815810879641274646135391438513015366823387768706914656603978295885866437689141973032785207429070467863003947448759002375974067975717723762214260262018424123371184320360167523886703297979830314819516062042361633018437662755235137632435082747022329419476369136403241695930408085181226136413169184967435796001460390140613194102061669034447650926592907359203011866533596027820694183957540832517629917214331289607237315954540229151738657702355363868504384752317754959918633621545641253657645973550241053069978794065589315350368239201535286170074093895690956343202614513521171950169518342850702322733460589449644187064947951419829327777883973330032258566717008285334427175206113030770295297139513550717072563617004021362878481257255569823219615305419636574198431933022103025641332511574428050010281307699961846299470113618837513161006753364420431894118734919857156031767021319520822390756868765695783331031548291859620184193863610885071787018218477538301002365129035962592445347854489951639223943433142520512329822937805379961109022217927769780021508192651831425474053277748744029186392652177775975740500462607113196980341074747936781783483658774142483051789941921342473614996001298911433058237877150686617999716400635502199647644351746678619876076428162611599792259367841594894579455193411828594837569161679660350272182536571818714337910279218758335025324285372541274389711221907581337771301649036275447406835518316870228950612579210622487871237251371520556882529394821456380011536218992996175689887064588299153326423751683529516748333827859053562483219494476517574866236663479662340166633217021662292651516214416569457256368888350021874773605477053991387586804218995624959007641131812048683554020289224966075741355950767512502903740276438479060231622565482815681971062591047633262734110146692867488728106236685088784455580647983375217953194491467778090258432407016630741591925944335028200433619969362578182109533442845546463313954236391993863142059937924533334849228081616438978592876040067721525288943366606001197274760817844638550121731956968326500700698573423214035104379001399658038864581047332266955659600755177991922907307325529088076593942948084252651991175574868299292547824441128715415544275986622649107764422688550301922907212311943212375012578511585646846302366148305718682271165154406830804795580776715382165074814477230567424824933267833187210063535061487963227516848721053416766911638349380795531923695666240091253087998018375673523780092890779071848408382362275615338555959353704257161973823866953170713805324323937759966497225948276507511817668133532100557238562576269676772608386787042013004327700068769625788755930666368074997074133896211614157688532854404146435973790863531675530142233704079693270270243302012756636262574482748881095509057042314104436581469913049942263481124758148960645243760705155000658371321993017436583164298888043190826989666232174518629757469253907021128872523395261836751287394111344603010149137894418121480315030713326606178602342778419747394169001132415029443563164106299307330483686872822511621786964119615429288315445320636281201617238038963286522988094152431875438360185659939714981540273124484600576364890422102148387915907754802360500163509779895873924418026795940639130451833829109401998435933319152162797406639444540671368155677945189747929345255535084546359484292760947073577102717542423522430632427557856338848948929273845164634257283791459684127477159733285269450999932665024353634830372672964198328742440223093489719949004199633234231761615506861887973892186045120391723883363056397169386481972651131459785511635661022517023030326131318261048827088768755450361223702840477981033026529064558270742848614328369182377230129792875564037153739917319445291426736624510347598283359591430321527641446215280831242401912611403705728460380912693135480779015659109527687481217753259970977580203762760923990414559101873792675184304146762253295644125191862163432824996488563242703100459934184140336708340139408726514656861123631878602722555724112539142848797615916712908907162091396788478561869028145788208138583329381425288617300290776085977859196799969562546736067394652797610823585295610210418840758487255086703362377124479438126658440016529081760652614928829163280644862955150094723904698520159841094483526274845992784760174188026875068811538661666348433302441418833593127009609187536033667508106060108686537722783838332062497952319497388070883497669980632547346517545351169786329183356254906509899233297545770949768367852855082764448051966535630962995650729788292568813222233752642549181749189350153762953376658238839326100149670153194089035071714550608703812715828201785553643387683581489449860267382458367897839429839914974274311615781986715509834057404703621338313659488467186442209546843784539524284675100110783671425081848802070255240225838465885773815414639593329489906417660235747810142366291821184477419944556181041865475823241594393045674191778471725006840235212570305935867785961223325949079516914539711759988485259430205707584491725164076344443806104729073724118557440556539448471513995470010201025716643285070063161764708941923934929122056994937578420261926528179059136806108031129109783587434743045702499991351708785163563775262016217482497770870490964032654099535958993251317014491710328580257547857911449657455845780865168905230679427745826797819151607770112115658674726305200093262388909990645167137604391388976812754575493173351872079519402604825171655365922534407703931758304051693721525727751024851200715775491355146760563074206227595335144692500612991988001571994109617303159197335316397528099016504931247811596061901878971918317883556563531172882814691497625107079714093010476753822826146761299856045538327782671294284162819701235763804194287184495760444120834198633926941104200254680985860898919466769230560063061956158668199446946514844302418322112981262646765333876961522626545559670555391411016074097398770850194734063966890030644203734300775522364811661135114008629229540776247725636748451372923593407276614617736353750802172986381922368735104054797749625729281183474919177566849884886765378230531081962248927166998372088222033111347909096485165611810799967187227397251093648585910835782802484054179815284116063440023412636469113079676780419077840466426705295988743934838370504202586128327400634599473228834028618091035476275764366644952334476212772212395439634048178333231389381391190126433590908849575488539471993291780640252472004664289913070867475332679920770256475629784437232319079750351417637380954129819294099021991605616068936542100247943351530478455976346241539141003598005077153652291837539836432513059213137918824372415625330078468764164201195883964220105235604950036782434443567052911847194211047063610034119972159794631277173184616932233180866200751843340038565912341307359392847191872808279247633337060574432966981072471210633731530174404353470682573622658068395132046712919884914215947819417416150994598665361713167728697784863373149335108643998191292653589878841601718180653849068858333441971609910203270699389354248555650078664383337110359051607378120164834397247762880295030079766474369109638184110362329941692950458149124921001388627935135850131177775282416890916537876238616974262285502304456613892665936975292337682273853206444777701175303770159019893247845199620761297490475356872703460312256753744394623478890542742545567179984217753921910417572714156500445069169672319679147512646772956937805279381636427594234604082483044526272702349878532232423795320137423040288106485783371588466820443819560669950023128814118337787601068820027166451500271681032664420522726963513975087569176073807970624309844393659460054808387164527291779895261659946467155184472209014558385174540241429756571075468776594045997462390596723599247204756136395036800358201214858040044014689570689831992346572613889728212902448100193814925097112668127253892318624481658565223405095219823341906067495515468624289772793327399618964069125159218065048277003879586718900009820758252043628271929538537873860900576161760672694477759516392445464293636569950623151535606273554259652024126101013691637322969345254476339103841279129834319582981040528871456254908956760875575254399698631349921410178772895974879326923540214864356959324273729721134482650610918610930977295345554387532453257351901723097088006222994673829073564631798147948511385487412170345833371641389248581300343985954389180955208702412020574145739368166637539474030496761582379278397224962993817215349690263211942423877128836476871466965427794273674995496707911227987289273094412838829329204825875829034453613671320731051352956065258717635485648717626990936319506653929707471180007214257148657985602784322288657174127915739341362434489908798951649614335634465328419851977426190243352699350570132688631994235741467804822847934526451565511825018323480069590017005164313604912626882080460923995748389251818187651249577085309129199199224459225669803326952048254567698633003284819555554500791983846313773231595583779161173931342144840409762107110138073471209914667241947099303177123474293225622017940315523761161481377284739958018568625779368521750948060062209164508414671455251943415247920928761084965088884200184549634019260680731114182119383904798249763917175271758804496148530032315309054962061399824017152187500021410142068173074448076320125133143062638846521560880833402230247875743170812288791416422155769033995267533806400266763524429561036829111419378223894473200978869487643195938681827718293887448319079025250511357886813412085083134596894324589952921600788219748843469342024242190405729446725149015830715781960661673813576269016479186759783155748630978219109293503687749373085173526028280325353985900825987891042971509225175312035341942021514088580311255940664187992455426743796530378387108069382587528950225745153833866960255561628209871817860824392714088398782182770351709997157995832213771822401600407568356021998991810216379899876002658407964304624759544463588430186917665125929833659212237178717378624868391649764104960054327992272811754250713444240649983531221338876538882283127960776455891312393570482537958382704375064362514887594106414352700935032945153714558582929892340919784012409575679082718395821447868872657823219141883609277840050183430121573127840848735145533164881694662750157288499022726785729116971320889837360879095813746792277659570766762790753505993934310007640504607430135186928648598978186778012439335971852033728039281988020571793706666458860730988367811964393878112819184873913109844142259241541511047982938244309205028300752952197336082433783345981488216405837266798173925507133118832782557616509563237115065748516961057458144402549212444476010768332098964919294148651784111120972093024774838253539884030477855958889730273698046549316145878922388837262960984101509491020196468929955426188893963703320214543271026304558256895951676232564278158137919252496225032339617857804013359582455263433269895856712751396757259723704466016100186820840961109222943416271747925145710666116362507891516425525896651435398499129491954150448754789324446936971761415491310345040810243891053236430337247702391734053877358022481430458374432293507032437103592081357987641800172198428971490249416097323000007944932483924244410900116389695353211384208804874803032903750516391340497814815981816826798298701334840680342863390421030762381841482330926097173709830300954496777650514766319348072733654739215500522136945273680146304231876244752728200228040406773092133414818968293715854563119970259293641368079827380609493452932689625698671465711761960577960652615318463113182733570720003025529824092666330364004739228278773570760131114805239697033861597186780916337837506189677994247302283493800458746342028494171256084383092165116727467921771187693102256316360590191338851570845273699264367584852576745990448943272177766200162921197285051986777813405611744755182506152253572170163385919845618935318323814737676176176807671273906084316737739559638729201769673220123924293279649250315778550055198427880252177445963590907408817447537209843356772001087838156889664358216574950895071813051904638774548386474319291439505543857712739802552187728944643309870065987121501501756131921891835495780650060267203212139126299139970298732382768222877735622615261841128436313363324222123289557993223795196434312647789252020858143943064922071914450313668376981402276989815189524851550007243877831297977132757976255523964721897893389660149917749418934086724572862703822088732182977738599739958011592816430758641669546205989011058701562663645121288727041074239380323593027792624052948250618442572944242807240033624644506868946837423754274148993685742150320278043992612109370851891635414556494300878582359413616395363168269960035832558466180166282838749136943816331835890632832871392823990305933126279509214576324593478453122895037528316788188452069755274977378668857309991737152475890983898932950161890950001742879875615328466205992566852450290043180680756480425899853934824301778591073135585805085966210110001497191968594667775960143446213922252612412284340603676210848033598015116685885928466808884365362917832563412998601491987567736976693781760036487340268073482967673782301290285323451450863148875695720498224782862687759680388204241511717149518483513937719935656351737626798667237391413350560444693420448144906533967149198704874124641268298872304226689008453797950352589099770529098714825984185469191814420793082218054711684296398212019233940013395287888130226690698487934020858321932795425966746958166678022599917305079518601861984978142942100716704086113357666182265378894885737278119413891137992177950568577888912220579330317660299631426024817893206251143172248449197194137446980374204612406171952803976248116392888169239994623415304910011070013948657755827900710368301661397318470304123796175774783544979674497680307734033068874199793754641856717076146455448329310783059462022397644534006009230862381654443699909437558700213712924651154410974313357092357076646832774641058544472129307427168521910528569187616946792859298807252831269210257435899015535296818181809502529238781878970503760840524695565497018095037205148009565030039575100876177536859675322797868878370859572896810636364654393551351883243591986379540113284468137992937708458968598574055045999892617925850211818571345685232077337245157617392614045382576694200004894938622500554403939456322566389518348951885758031526804409785822923238514774774559146916412244670936577676146609607124465205315635798268901458774499786863984615590716394271112998899010701607688939546319006321611676342642890255610576879279690988116492465787580436197391148725407773775635202905307594295215517773009327695375275807081753339949554538473866816645361284771701437871129570255894484667344741881166309455423164147010902247344020806517868324542248298227461313289509901634161756861899801969747531977573054247879231747544516237268406018672824690485316869419277118759403476771306452474847902521716469197295648531738439680346733758845872692590650891482988852439720931918310783922910531920616489435532369717988545355619104381857119207077721872148088761998792521140400518505626792764539686169289096355530411739946074174357611945683185621182639407282114213219282288661283066020945599624934756194855122376795780427642281635060615948349889740650579370410580183413996081789194560500122087262314890727973597757965341733667863910573237815592041174054350124927829446700860698206696602883402646820910626383435545659632202979124360027256907657805750477834028919513646285512160403309830198985471599167739290914044660181256117231573533353681344228239046775565232107524060439662348213521025467320175170453747278072005086625602771257060417669605567076446613246949205572428907594294260451420630292337811296697839829451773782069807395188369108632734118561565286309904677330574867329210475290185557450671191558228021004466469521135898158525541150791751344627153050818164160910405977384432522484308437665088220204914996752647696173950343250885204258840038522951175129543955200200913064341566735664565702060659629722442187324898343018632201689066407785059351983526680002050740781103907415826743933390448672979746871050359191963743945481925777543933677465723641461009906880771754126786639369770357298540451435277219573081178488446918820340576173662125029233310145942176851067420464295387616679994903665725117025961744488979444954727973702967959609246089572268633919962356980533571851734841738765664758676292135104767492208887739621044964748046285069714380679938747322353468713400817147225896749943085792304173266510865588360450293994269336126359705597988597186354903188393781067814599124111619489833915123477002038752443697610768791677808772885328336623287116035146279820584740990576847694506239304096438681307369928145560541646678213119429156936160501069644464348168607142106351098735880530434077504342296781706030635183281892421510016486389965494844502004187230745788641152210968007229017771691962180345426097750402878357738457622147224905655496976100530590028168032998687204458368702235526291839806832149579340965164157675343318016784537160019337903116466439426585111710258721394923548115761837385941604307492881073393426810678488498157296764546312176739325526113572894885933015730621459013953403244607082455561900674879877017298742185355616064107384750582692196856343116045301614879135595693307361805765418340097142177539821824643553846441575015479367790265895611405656987658289376882474568028111131362938632512207391473573739399910603134288473123294733776869967079312173671328210526762978171475140887892222775340247647328147391679301088952221843719692820283816549565150932080751468837672286578066504542162567608109443515812546813328576478470622907110127571488948474107053888577717848036760686111451329501973728957975845576787266607103619413793390928064631689564711756288849459057188296463117847309829479277584975166289887279961788884196744662571311399347527081615171930711699044541925628450752422991528371814348089693588533567085909522355441767211731391308893221120238986875220076373732750539866265606300779341227346422701010300676459897486775293197773071744434314230071646028089549191870095658857394418641816858408305606398096659803016117338328014445011517542542198215942407611978958896508422099381534310387806403258446657249089180734008949848336083537221977203803232049647369238580276731622253871301243639355182619497834623314337306447450275926078512588471918504410279589010733563567310039964986552977600780631119299426100935950760962903191830959451278383088434466817630983957930713185230995536921006650817800976197628897681356318110953788581208660347253923280473469755798792738065317052348104174109687990844615339536093852018951141885980692729323501013385714454519900107886212188993499285216429981271702201144697377263268983235910386167621986119375278263324101991202439992444884902998433502136205635228604912052499003402951818230627787064145687044002519606480207093264745433859582557253016726371336684570860207850745295339082062644626810916075388334542067674500700447478053759003108452624628935191669289288783307491038843061182615369955675002882498350167529573994861105783086777607970953941068209115541305569613040617484250684628600326848650071496718420758772823227719685558737837326344743810942124953645880417770470819044369043139035876288136431844708773173083047228420180267581790416833590164664283737702451501475845745810614807244376526815387514676494840109293053719471837884511058419952895067903130778128793970558857413367064068611045125818841994807100865027428313287138195147202711796896065946084425539383951869533584047857207319144109409097626962435998517292222829048779194692978838387433464346297887164202310338171185272263270312341157433249837461657103392545269226557577326170747686484825745433831189562555239326755258003448796308330484357140381023070118324232748799047103846980959898847979779136640624821883501219099473724884266589208229561034159536993565175747450885860923534216751949718820990532289205109777992462359091280327280409687414726619658232202646154644379894836212622976389514344194747092178220305531624007816497973692497161252924957603911223351100532762924372367110489531451329769174039011719491708192109631697180764693609800253004977490507589848568260591087426224448671572038248498363650495909404253206942076354953587185098522963473187794531545565153833934622226519025944392005199859982586096949484570548562137766068071646989261939940377879326857703922124516130477153326273079617114099979465759607210901530617577483767570134688115581443210623479760015757608848619827760237433548080398135455741092872205924605713884169174564631630796232375953150234925582540690849215583768940364917240360367250790700245307727468858910879872174294344486595613048574823609105723473753411623833887566925987130361330689673545109027816197391590492920271808999933899770953631752246909500485011062022869501563314821407078864261079448999464167021909702077659528333629716410086642196307903705010166200803987382858417901691093516416413789442216923448556009430304284183903824944371523153238976953816650183890332107252773032386039365988667701306467980805760667803102649259912573090330305692720245766072187896606973528016303444711858281657222210940849360191637266579094653399081990386104230479283614850254121414117032631522988611834665547862665498326680880764600867398966408517160210929850185310262973077255235500461973722229110973988195616271927867427987850206623470548614330467845130307852552658675833796320001461403073572940510989320853248135767642988602277104301333844983280452587699770887598993423527650689568447078809929238659096382201624454515254710966791820261074928157105763715369501451947242919598484788482673773651624600947560201055986332477102078960805571000084516784631453672558006105347004321130059987384348224411795408516800795183016055479005262267182176793886375069293402077085067345908098337917589004580827385608848371108420432296666169974852491111356811133008063130526904761323870561123460700032212499938966045068785722752444453730078485276131529193447807194757610689043866459645489649984948527069543381720024481177423416120535106666221589996980206180328645609234115898054889153927888532988317700349599629487252339381022103014839930175151373103697756259652495236095463877527873929407745482580495586328381752492170197094990117225854724852574680177571791089633749848196083877626373684833926163165439432974876989115956196511217747150776019389119335161542902584430894976522455760931992225132292127449102116450672538847024720868483902240085557986847236240378541977516390197296793114320189417877441572057523199484919486409848396156462338855788253767349338492225487517927414141823552140242488888466664240357882575861846893872506562645050655636256793460260432675057609018930532268835435364704243667219128345435590513884672870090509717508753608504000581700632365798083917484178391099860958194869516277366208114180999370268947790846922236728206304763603590118517383433691975734156096417244996683149241581509435520419530823543835135700849230204771518957050642752950604638944723222500556685792616600012353125146715673579358780355534378339203575250672643283598201858940632005592070546806032855946824429165101914240342408307379698748129378016826607264298256293503293698419276420920909612104198239942855639596869965861506230982897687035783497432130689882457242170318599780817165827594905553052204793294984568323470736047088918142810309269177868855599622669604686019846646917849781772363754082862809023780349305422084909513220253891155551262998815905283849003948749156474267352159023318964191374722202494366750442735057590842307394003474394955999790630120653435697821618165751748402910378062032033021970304310266357196095092394395466079106995460700970250012996989957663069610162450145280719828456107050048575409301222519758472928334511573423657494307635685096222954668443268222051488890533864234355299842068388230639294112330258693380633522796118932132844862593441123499156079954505446274204666608600561135218937178777607422365848559834105729651354152486370353253101148812536432076416467518092610083197752974456035711925487657068953328575721340555895750140842925192136708006773578114858464043303150000839050522565586014694799062169521296395112329800470250951422112730672414569639520349352137554677480921412338360941855730590326961836117390698778615203670250062570806474993667299604334666478885572188021944268624586433837671059006639801582080379973905077802771521965285321707072486614408579960709020303424708176404875178871695435403201529457096020798398634071906784159069839876876100940631536473351215080958812243979097295629945163858307121449068727652834747460111801610034412085369763824100965276572065857173871874172658490049509505278729417807948007083723527860044413827097537001920920243183122874973241649916602201513815379099348193001082007143845724360719903103652215830356284438976372773145394695749930921434723666145584719837680814134694613672745269016571605857525959471595115788163775442798599719864598725727012295301946129046607563191945591117106384904144456160693031591951062388746996897870256171698252322559551715922772109538102155339339294260744971730846425404139463055908448188592531990684332965338554376414863648581924272190587068743599668251123161761448022746847408939916552915293633895423389105033499332528031012394928108014319469071666694712474051630837449422238734718642611190660186241182683290595834850170334544566729717953709338436115681423635565707464620112501602228930799527202572495574107963869446445713921434617598339447929482285430589462055749036897947967766674303654512553303456794868566311587557061957187579894193415742014978245143920383014889944226291662413897210860252919636780530621781156431480682524236294197798832145007039454281743925630031035753090627132394808129706738922067100157117353444547744202622403019854274282243051252673792690293573184958851466152222445749213220976919059060453544024055080383888458721126463585395833783314217360077950190883765840483367560777125814107267735065026266672212391296434033555924668573344622577963139633814340713786985126080115989540486513917384107635341869989059150471648311263581859457414224330993013841249358135184727656434411885554187347631599697789637339526348049693844148302082796016579950535280026463481011418888998552730150612584928807070128170458076183094636093494941416589639690540653631641793172618720296589328448606185678570920061974023185342736037546648075354937765059186060457146083742450130848829683285178994487757340945607939480891859181232984939306040660051839058424514503545202866576661090219183629473933981960119515784830980932127239792209940896057034086225629211767769457688660714188966067758101004866207072222017815238100354026674244632369498855976471783817504860698187823223024304121338120401456059278619382804753915536933870572074137557404891373527860870943442794997097320512328905311295264373137700283077510847351596163130400872608681063374508266148614277030657071348369408089200659585716947298753274023637545280838203331953754404786437923787455839976288914241938713867573467618826212991976983666947485154969234451706349935796699593875166981159418277656467373176616439889549854504041847305482381202689805738983916097048036385224488462423944156982318350866056562160785994695197422996279927938221853036153638657473397729418148475939816050046194593630582432586823722456480028597109963782018569240382899788491548638103601496018013862106197199124008884924475318660672627064965721293914848371834975236706924927186581266813264891791132285062323396720390942902619589022441614209277290136192327400803716768936737115054421460465235183619209069687727798865485428817621489376547454284074738691771045556624379200452895269073479472418004034094929170160326880256134309272697761110863596255530663619953857965117602859572453183521687236340522518085374648853970232423991094786677753049542065811515941572969293026370281200586503249659014504515953313498402515047403388289647232004628570499033172932996211368229596922236263046459960989659678076053498894822117074220571399764802231508223581143355835920839803660621566953789993878155410811330563607500257100107065656142545719033667731941820729793488391331217233412247629319099870437814998535556239089539924080088472282032111545143438582093498073361783540291510076848041603032987786845895980681527920811062455112245130214988915490801072046576160185573676071404756096271966455581305106000943922951429449060792449239709235117066656714733679808840012513917770332439028668101126475386710008644757499394210629770417739740599953901352538852734137311094321414515498369975867572682266252495917066603202607452601962101534457710554198169759383045289064875765101505941305859840537244602683598125673516305867417548190398323940042343144065395000863480188801200705510942822834530377428828335736069080952208738639980926105877534665019821327861505201590435818190706159313638989429333582745296502806786782300815134105151687603772110679785942502957557603019374917007566218956050470381191645779736031782953923036532189137043023064607240951938779249286634914140743938971071528059876717313712018377271313429466221301218404493453387311766205787394873622706938606920736427582886167938416124741284718000981747902626439915099218482287511636737030285454274450516245160120445865913807112740138095689668017082993265747047497180209930811431280422243960349199508072696411281519392983490936118145786533540823773104434900978929500797368169518020388524396874580992568645629919514647209756851058125657472007264511311995670306643191591127636505104993420515009745118933974942199054783884671030291569653782507159366758560819417827519302078290176689640900186282687383415536795175408484568393977075717902309443469303339985332811046332930859805044220724527349659544783914701652859038227714189707842561471329263995119755270122091148009766954521503965975168577303445502923940445539447285787590567771694005999268414201085352605718582184090655490306321484417559920144776131612126803057144112025123735256719937046563070405816833341927374999362902543494387329601932095514682809718875106441604353121686131920422759657506247806332479341031923652396745988300147172556296126190890288006635722644086466262436439217984334610249612368579417179627250673436723159456231365468631873119516590781554412420035787204093094069224216264097618479190006297026118792896613099410970535910122585478854442327192511312746322638726379078691060033074309238527544082731061601695768888203300161140508882730191870645016864116223956460242221686909737318455647255921700402014847547768659377051617660152683761219917047335279433872265801987746224206109952056640990338835300867071669392085165084773758662005450100067088912867064425647321743551455010614210738316340463114545757419042955003048968384078556845776876467052187931639613736779818555496168460319296268299417333959391611877842751939599507366883778283572059834709440515520476729649424331614766799621777696121495816945355401001639626753532500362141919952791311502342922041099709802399645980637929378570979453863400915048489778205562820427466805138761050946362108843031441277479165738873620408985373564223465447972632764830803795907491752366567875373783820846481329134502032594018685094802220462647618666808209535397476483685275948974319527362509762652287732390295113540199839392262391259326112589766497107518901967998570994602986087809085946999367774177002943513800129147975945490760512776616540119041134694482305075769920371499232468273774508893912503247355628515857095061325394193059826972381717436239564722761401396995936271044126218345066578756244065875125215439235589673674614566548962616413013591981380564952584192005391110862477806301218381418204398644066441703947843750335621910486573280019667723647756072199346304595996561685394728498072555691441530342087817848915646159618507639972512462870370539550278667464957357641686521534185283136824986788138629121680864807181212858231305173512058358022126754353578446192043814396064699010586668041556959005028497079394845914838830738862847062787927915822906638863328534284771505682029961081294081503318921917707572937838812715621541900913072584156129108018781740077101875777947050406507394176641525272234783719828704278532959592700012899271784619059005542904666728950686701040834571487010086585511644167320249969091282294361507921887170932522315526947904136121504785268605695706396539884725971743000178747762159147451040950926070203218154013446860453600490968129009263667360813672085927685752458319559198588217691450928818645510942606629750439421823149232753603807598753370102804479979763782118540686705121059980150317004002676031627928199460864954768802421109309896647394999956659223183210731563267245975177710675672421843410276748532371801002079162797549370225311671096393968596656964502410610568881402739578047483147833371584839618419990776539487206489100123621580313059862195117930188618925847586782808036443601232427758082467860824769346330611017772822192158794962316604755179204925698961492744717155720477315252600321969013920701414715520249273777903698245854141034534082911771812633073636567339880738116105862479394677806703569718096362547624742457748667732776461198272166413329452220881420181473958293785996183589586227357749174069107081511913173430699727291188759701916428757843147252340363178264680938520434659665949806838286204647646533986553411839487508709865054716190679327286822567726014526689503473836645414467668980718675335207467057944127419651473988482373833833544573237695012079564761924519707881240471077503142577062883617076475496998575808012089194101150378998251208099446091717338239231259046670137394417664246765530870841607337808098186161900338909296567619349453252773884365603381147443928473447193658754904807016438832195341783442386404639563798011957855248312506278664116918725270613144776487963372780059130452848343186511742706102927526916321145780469798946210963971058896364165579999640545328695471569479256990824269402876836164565168875205212113333748297488923348227621907052457115199979183620403063097505611843015622457964278823280611830661832321725148594254253063409617086471050909905738533046177495483918423851074823026360490347232226957741278834065075287536719420422691468074033993935152480639034724695706207862048361630734752491014982981650795212877029298861756106469255387453468866952217837348777357517250391288766687841207370482535311040136024979395923040770143167306579683405807450694851873553048035748058527714210439710121941392052521778382454440454369349453383037188005558260512025809861092439746037750184538571966078299017344926674249475848758027803770229992545139414586567018375285321413626291767009395775478941643883475982511308975664979705820304852345589362433375703394725283983436288945878532779581755079980307462039859299509839181702426779039294447741988311690399475080970072187171728467104192252973115976121900425016166367542912285314042540025429497545484890516737125812472203138015454224261498204870734368174930096915217504048454984528697904321221542930048156297428876284047257329396738163414457928160535387199875714699192601693325481056651033552578391296043061572958565514574077453960941340271463040047842681110743884707845922636836627684648222586854452438984747109884456166333118348424693408493987113648751066882577310638023892381990999863663756630314809893141824521349598258253511415661174597297692979147471112357329637388983788782061188790874683397048232318576922365290194904756301339179788483386348928858441730092393475501743314194006805404316250054128149507468396542279178371997109913170509674961897672206431687462850059955074404002579792695847626904753360306372519082235523603513566254438402512393820538807405661991297739886361331122765586500280459952829187476936721406563390870621409757562367930974017443700062077839301678484989756245627483653843729926032041143105001692603743733243388016894072008485847675792141609220732755879705708854260219890506137572028932841287450078914829802821736156246235017038400677539728634311336407867856398382831135227590606586665470646151063823560017088369407264934081498344286572687709401282295387063868088218505168959715140686483462296015430548551167730229482784435253533056225949039274348367990474335281941866951067346480623432994736182208371701179787685741925301086733051039172685100952135835002838853995831316918611922196136876799520119602466785804969438087491413864992885616458266210804416840509813788138979199339278360665733692848692184095282998605796787660455979695915130283839894392174912701266802170451448028996343616234053414053390816196052394448789271203039149451107116233127077343924074703852964600508218728399513955641704206714660343978905605180173269331505087341302752465430459378188034315694884600522116709626539240902689478667277820837854312995510732641641508040432982502429873862976739329917648086807759662596721413742790470015066128539770657427303467332227343106564494933716337319651237253594213420055656573668670934861790197535292008239954818196743740167637370081521883140082840376703045950163940841668607787104532292376726289022205401825968496520673155871305698854994396565069875575155443569377889310973810810046683577649568607598916906976961339651021284576374259034639360447204616855672746007402793914802038961144394786336718294143861037620013292966583282186819045786612141112284494670176149456686449352183204433347318455331013951233968885415730417149650439677288770429383365527673517338406770576362727526477603782103706521794728781467223517071488768710266375570200933944947204056295534529362923513758913534943807685734355351622434525415841038054412041896957859563214059920571630371995168846784070125945028824301024348418925928245655994936367264212247022536354730753733867301034824542053084206558402727394302233767577514534762326978011113238288982892136851864526282120983048896883388179853594976920104421970649746168907110811185065874993686310520607552597174908288237717084238170010834998379221641310176062854266313770045398073958502849189813454663967278571010649057600740959321122468806445560186856532670083134798806687197020562742200635928950365080389191701993905686315807659672962499761000038834511390583842911730175520701174337618605382148009667494869719451463184219483791737203274880655489003299993757566000892557954016010916253497507646617762778869324436648212016056135988940821972690804791450333459230414295367433139968597510243374403963089102242077580119540160863787437147918939706347464405620782851631276043871561687341286693047649967331928347212741069298215545157897792727140718332951444402248864705489778616542175650153629515574103143432745742527388124085256527403843422432576596369403980366920547997239881784755364960607450596693247624875549615106968438042769321182416822863690331693254291615618967384687822873201246483438448179714290671425183992205922773818475135900200359549693485603805455726162565766952541583770871440034924720303697705506330646657509516977830299376867847219333031100242271745601113434189728869989469043890419290749717388879897827878059756110309101746848155476193228223655672924802681212056675212546590241977461771932331200083692113650705517759138119455337941257863800132338625915393206211405874978986926108779586711571576495995952243917907664352853453300437537003868592108479473370615172908738140841604266510848044401124876291145303329596297986284332529963014918627004748202239454726940846454095534504420097958986447563775062082098702281806845919355410596770917149476225326136660670230838910222508209774695674966052563842757449551576382398137859674564011774821881089372167050747013297151874538799542583455520832144558778768060293339748758862977713592739078059101283729971438935150024756185938485582737786897821093661765027753427864475277939290896373004820687155834485460288160673717893402906937490299870703116382590059435137385445868117065875670884061670034407460600702330814178180763575694057754219589247279674725972349715964729651937332310818483492446261596577961149029660448804049795078416785249181889400201178971899046727868133553343445951733490861107764582062774132337971562012055505716596495863152618382015667005555971482782310886202980579860180085871753259144191619197468095245610909627419702434955346607210926423426971694378815693099735787843510071641249040527820050874720912360748638134226940361623399830596217332636216034986245161153601462471268394548603060598999065709756919016944289109705400549135537246872648777527355703590362157220603188334985853379953116946369485570475590696272557729627316557255262534151848502422361067742973713023622071083935429536059001882389603995375034645060069858742164078180985264087193989882343591205906566307970322368980751455103025188703173079610735694997966536895232799998908126282306296067319797133535151572204439798434551351305170423013588179396747830462950974355254151801953961943021335183805434298606523199764430160941574646156377160694782279672769592671296996091517483248843899569931419503689575538452199886450312441701570509493992443804274152766515377475897784280683687939234198465367497851869963978361089435011747960856067373391263543671308911452759067077117809496882540801677675915452611768253494367231196876862721482582716546120594989990856180979847309216138729368840306102509585688946742843208956649838517043245908423002588384396811630041693622269541445729705099918437370881967186352088440592583211231939907038232454323382996137450263486237817435191349970077151947745813342824652727553281630486103574291304519864445763445854422983512631598983860966792951250107989303410043410339703280712367339361483446477907697105854180806045528933539505179597795625950994835865838349764936419104861240773360229999658669819636941613244140156906214070181946754584437719890081387831854155738659924897015863216084493888708521370377660849868333943191634712665427335386969001298376437249565336327563098273784823506624762638772428393031778697050434884140184431953005039196899375199875898368479050655651215627573304362518732025658347985832021156469059402328067410427762611520997008412729608806073056630113258975813523958984843910718644872505152076965557296001374613684095840173036359537428661123045271079571712550402516277619955441523058037182870528157932783516625533354650567758259633530808277312443857644195440762297519338489371281971990225876421180972073215440351102251501535502086419739550525485133563815483923794002303741265115262257472053320258574856333601680053248655531589982635663636708650857017723259811332039832490313389981188617328049879742354104662221400335065482436029482206868710712946535413263419205712668623587225511966825449083777356488463040490415834696034310240034366745903802815761324853779252955232487338835778355685819267434928177081224674915843619685593181206847587257877286725081297085420385350673304892997631406195089958552760414599999536521598928470171640434674178200101418697089573097378884458432059400675898842472476828894198522305493082365289698066072363015347366807468981891166776151896442522157900433356806655269653703373060105471400770298451184125625586664703577971847332924104799688590420476723753815493502570046549708978635785144004625567134680172348769721063459413359400537351022353141350819061778716829691668147881622152977245372025834408761091079816956629158909610883755757106076119750348065411279287610856444695284576581940822787315312712845641326757721828692141689742766248868360787900819685865234253213351486043647862252479447727449785301568158631030169682270999655833502712416139861991015356762347291565625034670241562920717445056701521146691719265753573134059367080386638587422911374133492900063227277067480541526245450277737250254686653354677770635799778080979154392939046849052900793293923359213447375887998788642687241725842911343557421838109636313413370537224397445292595458842298943705251682439841807306462399528249617159550446055595020064077333404052110955924877487398996209114506304960090641528679967132594371584864547276228845538310472461004045570193162577839823419089215754212806370887212043377720704426729013255754368233847055168421309709578886156940000216698407990836294380135439204589257495013181327543858958231911946515356300944008465624972841979432879040276594445200440212595921610185202671570049203981600781473565621040333919827147794168909122285432300321033553838056884582823496571624736878777770347390339337788682937398976350091443063168295463224879917417973364629440882644174281403154535610753354827924071971225815993315210547579013797288735062576268879230686288586949191546939649522659567924780637659131445713136088484213651055946637240000902389315166557354213425483209695491041830429240759833034044410629739889799814464681686696392125740444410250318908954260721953713465457690766637111029401119938954288932784724607212320957862516462093736341272552351356239584403548351381788181895691069275837938492085558760120332617409788070827928343645157161719797468658129320808823827396357392446830116282728697748339648069694189191319739665238725008825048367048183420408123287384630323905391849462192512102881789236324576611377568562690482657791635027378312087768129814007256208807502804794342317807026183937454982886735892999443913270672202020212509583757811077579121512613171526780420804730343519354089431570469399461807061643162735442211642383440586093871452046312654194368422812113943509831361390925961584690916516510490394075120376233706987064927249728966196863563983406617592313234647860582160558695657752912166473114532361306830815983733541173805557602621978903160100133192067426313878117941739163743898411938139274503600467820406686390721005629680835685716226757272614333866672284508713369070916342491081133421894003669932315308308533481103981989690645466439725896651935094414619914418646900807861143327789177151836999410844181075125472632048234646357353762490959819249852143558759393533791558727622141409723575759462313945251029488672233701265067013474052923074131264959282864443747395167581955146947907887186726086082320629617786454925735167411927018853185692005467244429557848253212257937394016859771409596912974547805928872038798998300903224371554768291675180991574441335985861683885329471864684770997395731321773552506296561105676826521530419149086059667584236832988235181640910636659470789327823899064677930570207457744327373977301195682837568569500643741685176666775535393662545671214663386379822615877834315259711283019818050095236803707089405365103258396919360988431685967478056185662980585090223726112021011738981303103693085939839556859591835033628039784460231288684567953201165534931288424003308913206492847177726267096161869818356304840423422842739085677632366107655701969409704181607631224601204697362017728780831345010699510318021011287092631811149223972550351867357437409524479838399414380002357490659087111622025870961408234512101275421731715926000808198798271451078287295223997272657527368037060054588927682782686881436127629807049825072435068479662333210618093994106954718405696742765764561339617197132766639384999941256186592185350830788907218482295882093822253397568188860162148658195484392738492320908917342752499080905164816672619554207995966903749704005135186621034595548172608546592205693867654935453355224930195249158759789518447254123399015605153788889895853391394299382461717768954407766211067705741978619904870306671321708607400809486651725424638485875134984209236819736050382240611159759225643035237125511373493073908830950409980499758503849821360169816995245825972462972349629542332218884789419268288984728168462827134927105365376155533588392617288176918056896012188619039158359999776379409171585368333524656421019410932266111873764761840664993769114609631589418902683691578935992977143505558958631565436238622332540955554707005907546897753854610638921689855916634604292667914299125530346753891578699586585939652768917372983440583326306332732144195184898089581362536894659797099095360798262017228499197020006311025368697216532631425091100659299021780311160008384963263313772393756611236941614263895287784968615037710638493609348905730307057858697905244157960461858527122127765280690694038360184427565180512190331823812435267150421865748981479751437107842873144767195551145256914071050701811374987254278593217331566379281707864714350190289179981661342897900918339004476298738183141355489033673833391002166891426872408347634286718077866541624301891517291422150274689967353789591837560714401279921941248966919957457123607282455583361196279052579809151468621729655887393375812725552646406843885717496156899353835841012890939333655776991332015634605698572989579045319527002209177741989841200679147421646486623431037838249034888980899304902678932615047021266431458982614675316334454660414503080514389660950261707425493098099293897976367427814054376036837326155811245294017816325000690481405072987318619224102651066581238797655201642040342575517526362431562724840207714126515625278318724947668639847037747586859900220059199324815003601043837358803917715337208587379777724863559888684028937759113613141896892503918931556389618194033156946444483377167248246847295295209373933841218219124535035646092952382833147605602336083278584997768952640944214963110859869845881902674084593059828781275754547929245832898784224322864974434320566022972526425142864979111845764291088524939400426317519850625788531961029711238211117261183276779960307919303243336160635550707067286769678743786749295755797747752945352955712123576559357665152873629801290308445856253086226184226079315165863240641163159733085713561623712296609353276773786818563228356875397758977529296818656780488372310845220510183823878824026466857561494433639076684866617829901047030644960259037523630274926334365151829609812555891445142287211227437551626193645014801036346217573926754108862910538348098542587562926682101917086578369738308032356957333409749855919273844169869747042689463612100089202074765405903230305567870369437444863199334973062417651959570925808005828575785207276445359886264533767319805413601019956672816652355664546375110895209195861193521503136029849250597446458941860706763060959351566508730399028489582838977864879540474478574152238002685914155263396862587935111090072026801856387089705752624357270152078601873371195099258066875073844127460223694127215855815519719097793995798641760322617343082869323050670615183740503855794866919054541760041204510185395321782756967747833443029218282201906969021115353844892550357162794200647313906444213475739821162074549543340250396418775573369336818463392371120991892625246025996752186964529410981568065568199418217459714536268840783088699429471190483625863887843157168755077655228819723005681459017093322522141259752599769381909839198043505565628821243325360973023461043714756758713608844741005340398679092737995910587404104895465212798545774943898507911978473737027570545409981526909729728538500151566390544610655953219602168512022892258084759676437534996211252853178216139811656668968359398693330695433915472160558100399499343677337439613553330260370202512435483372998734633058577733979283068228455453287494453320812921796819484923987702900743830580270693470381340523815095270633272012184327571236189166900424227168915749156154954098730238111617792288022000327708615181142647370907916557574869946135771224892719009487828405932778521851218569260898801904433176607070040417600236999474806129775098353082774011710287424942561223572249753615868862602374433584835268713633775615481824009657539011397410097824899124206770528599812481293238149770174688139938943715532760998106557610391082988760564323503128949132266460094881379906969789637468693175430118970723445489614220054782610865727392381949841677236010640314195446337961978508105191722057336204873198966659217155857753523630860621523579619251007821661088028429443392855051097571984191488909578262699776993196857832734061696928875835556392664554589585044518184634875879673894186138772815393906678451275106168013630905626995625904683606635794003878494750674862801270581850075469779689532622884371180126907144561263399500278571121069222343087885798686002405909615650845334170641092954085395460980697839180065183212370468213744673249340549265013784297329409362579065126683784171650894264740144865763613627071524353994412427588416790661324592495125108291764139255251799146157829500623945286406005054283997656050730801776334481318025900917813007820665115380748601930291328141443004287852503287207345487967318755979513546135666278407351068866953101468784913937479760937491830007580226014877629602049646424732950621646566193996322493323822941616241234484138374133379506802862750143199491940364076197390138841953978843222394852278452301290666739757008605089864475452747939905274386563774962484590375459305946407415895783357135829803696314238989428723985856143956301174180322121639812724084801000713813627820579973692882687646706415025483233812457280160987700789658082226200717164952039656589363694334744194499794289262762174996555476598352223927623033186991803790532271127135187613054129340394333450102752519606010075892961510596465560569955313533128224131762463061280541805091904730726784584596391093884706216845875452323086813838500276547275106715657742103152005908173979610065851698460181198264555717384078181710474997236003979701041798032935790667838275850109479766122239177329417976593905087552868609291756469314719946434462928738624891883670694485789557825610934631796973664654496015120244232798345356882287770633058306612918355498246321501135200113840622286237892049317881312471806746494937279013757850217761493096917124905494296856027987300680275842422236312724421269871731116848172483347873695203932437152284471352726957359205944147620304053263137153590529833222182667905194150038957846734285224106368877695206893078157269537911934560952551988081824471531871955688522342275466418399528418616633921621770580447355470336772497869821263840882843876365168275046517891742391807860174119578313450659803888045849220573931735125422494460314394559918097776911289985830494544802012759689942680692981031890582112950336240917272207282922330725732574919472237275369082442134139319426659773978564391671169360259446640311445646007551270759495978305682160446952758838788322980368957945775929229672283562777902236506660506276194867089811728084930689228511426382251935547471073778698377214613862977468166329933625212321364588469979401439461586367515328496347143453246799673779524312696463483522144753604838138754149327232061239463570776512356695118141596697355527209934511911197096514129881308898414405900721732567998029065081856915269662188262158674611510282941529789328998993190292842649934648589311627965096777298133673443810178055916380838417949018267698015112283710807913213756269049541040238996185117903086330740911437997388537308491495155988813379856158343275114076370936801267512860656491361561226687298649838615358362234834304954138962009852424211125305333963651915430299271296946377336632054348954610614374744105441250744464395511650820126776952253842823853310342052614520974589822270610043152209876730538267316222523975712851074435337195734469713939021662260344621620844436283841715433857363407457279852875657791398531813532854996976251314950430239976269898859835634423634396763162780873217752450176878035750660738474407804007980788207021670402510949275735576993587640005951677056602812263480415844600548940222814416534285767747844517478360206826346814934631336351725035829072568822397281154137190350685064029706356258797247368496071978522380879130183266133334754031805778533467156742962649952070010503072813361384372726325022438393539490127078829230122692624813656816529539688464537259846894907578016632587729910385799446256336161880338043773154772729246840021704540275666572138006522504631017898751624712880848827446518634669111510587287568262922362748076685458471112399057407305254495165997081123102182223832122818484911372071569465643609863038573029481190168605131015414344268255255992795883600312920890452267540612227559941042806424596436266243514349165245425750730546087403590239377914409722334505702746853042770396755869147919632371775000046842194636265845435267452601158797578317595241486523667135393631376226955995701900302759472091084058157121593531285583414938978285772188067091438856723676989668285329252410291597626046254026257099237411615274478810189637605711287841459500243556952901203944842628186786598368501551028829817669676571284957632628127505716447560515880121150869031035736292522129798478853365574236602760079056430035354447426885465018814926184237522761065669096729810258355261456635253650002045651037678593003782309449505327930787943245585264229196843707227453645026841329048404056440638633419328462253883312808026965711287493917310098039396373413313093690839240523193554457351333507279769418278997757921646747203866278232274248337421825830014831337059617495535742793901217663119003744180757071502957110549245759378047521640332006564274610540730827058616242831566588661745612384825316557528756098728299140841591736681288766564521371793882785548773620480185912487392797773093173066391471646107950842863442964535578722877478998805184660162756580745000197602700613480926540238903291149010947916314133318390769802020054824693858766331902994454463476049473703783360768486674685624142682521704029549445065658124745373893116205516135555761080464349165354344562516219019220896036526406103535060982330618824617702333113683457527830305646637527786664550906502276622386707500790769768834633362194195870850004717141421411090638124168336699667445270904278721235670974379716699094859459972089615579652862160571360688868964587441249469334825191052012154574832109591964577846586554571216565084293072217840419237343038666975414529186025818998871048837129651488761183162768474552563127665666341464811750584539516267573695735380923235784159462696579413079860563988448780462256236994386898813666806395598276346393763356038609309517547814576706193645725816923577598624365538030385407637983062647757664498964889680994264950812619209097225201545876388837885828522603553573072455394192956915017644984208301718898986633807137790992081978844441981393484260678611339343515269994172807828975838939606778567369762160737969805594602647051943228744246313926869733119474256805659858792159159370153118072719466779429117385965885854677319668230933965637927248522480549032696860842036424548653418145725276335972373316816041428038533507280632556655914797563764540453837435416893994213498730715288088326874973143634212209394271979560390231404000044447222515555257701841798277153141199915625256885490546853394356646728205882794165044454589342360608872220651977423409808763525056483726173538498565029718000648105339438336960533931382888119520834982217363877253177852503131342629938881856589394621752910054096258376577603121556512253678492568926775929685735479273933155613908955980276948608414713522455563740133067058105861573889818007728409666436975245607234896105748001650450658761383162395464274988039664862510720893139233267371453679709829914218315073255385499118252030107979801392993877229573070569402789744308303841749410934588952035207263400225124203628933316174118520208045676002494321208175137028461746264725222264240622191543529681682694714734339746625679544336324235055818360303855194720507950008860241854692950179156176462916017280061084015756407331054370898346961107070470675104059632438052284376517925629355570221751986513025475427984111122942890753542463292326653953591739129257763698929530801817429120292290997385594574166659526194288654803509659707162446944916262127905552180051326910234384484343927420686787213383247742470844302453570507267086775961485045091262437369518167023357249897547031136697222578851308400905102910954472767427413295350270663572712356841615998986068911054620879730665247854810344901111143877485807305689030607509008906300666148533091421163206304883040796217079179140524044912828038735621492113415784683046415278808553040493204795897029375733774735279520524167056830430259575051264763669718290729950829916825719961508581952227076173439140915263662786027084042680633464676900454840808001029522742886707192114247926545255866536834649935014760098907006503525223730351277288335472568626443587817046422791042603661917688013696568696775786574834344997312099402729979295168591127657011866946452163068626991298195926127736678317879380690149620535358312468991920953455087384187331551077945008480749340032453484080026185792795139910015185135880787446037570226727407605425074085002178387961920527750313400396172689729985574253632637780575304818049281654016331294965309144458953054970991499614232986681021966348261711579637493593612885921057235364013784895052652388558842403136761060388053282955289406405978876486971948123686880111246585230122989441945246056828409317922481091757526381509094440143385246014681571223147904605260776697976214749840986608614873093389114442652336784405838192825842266235512389085678476931920704899609573638397059146646198402746800819194298165258100680130228552945698317411987799694864184763300714861680160178026551056248747109332004240680634203910464077296960571456944131663335612306996681956291426836018166229797570755530539603981582147938323261548426235675167380830684392838728736386469397627953394711366133988049992770664462770031814035656114945725674170968446978766243814646174009490794023740015307624804421794054986117098941627210137097187379127169329779441180486310545579188213946624754237959335853342701112466661379381340244879795963287124823613713042259510598751710675763403760830439106260476371390878500093007081629703154743315174133405765569954891269026187757844292228887350135110048151771425420410381028791697570921676709446060893293303456655348272423494164442837901692978446076913240392303833426883755266889448103264592956912384166473861499185866343993033613297173530977741968713905313351859932071546041135833405882184744413219215952909261849158083478955618664866248682346660561513457128591553806128995212376051412128882274433064117191326685660829176600808381000857760106883903242736291156086770443124651319888272109614582099816467530518122167611976755071626779785199678291194517431409076893586795501398309323381101762875872076754804494374957814726769679493417084683924702495139365584148510421999512049105507563559008113738309898805623135949454356398390996913202541299490192617963577643569723478818286490812015431218387965990829185495220041403440520631246346000010739073248861576296039424932341919860085605742365542605296907765513556272272125276133508511762444248807614695967267908009642066722143321804289799161854858864385700113175174263155449274989506785298665621295179592609878560551230224101127382055732654251117040489298266824518867238479746940326669681370531270316970069717623583540271232547697916114265703394682060898205142276562794923039189311099187053154570553722341923587016737327190036513321222177920280244793294877103892461570565534683313780668550710261698391663265548500817628920397071230956311585687288112751559888353032516902188340696615835618618256791036619507385524123665046970289060354142904128001970371238553831797590274084346881233143659182099097146565506459150377188718251521377809799463772955246655006861604550685187107302554385149756516862461234466492877665140435763232811696743808020419152470270515160251243976847493395303079269655841090164269209115027797999323921598585079097092386094918839638282523783447618610217876073360609096721480470778865917777040289765396833466741131039633063672637044723044455912693869572988592606294620786278506282841393171438084156178764148578753565929661115532812832153095395124056212750755128642528972421469750792635001459642093958693871773975681550743630808440305268666482094740627454722744105110866214352053971892927126168761880173475571925831479255640170595638510691556178885428523878070396346171682290500362461518968540553966570168122211911091310861171186504775077832410184640656270819098462870369189555206589228741932863627189204513468745348648193958349611681368078944456413759607165306246052694265287887653659573498137534675312127465839930395809118276209705762573909581561689131238065677029718252145451024693374062525433529374286015393649320792271266347425516465383727148585539986953154996722932254377622800572580275656915427886592578728641727281410692342323841293640513610520209414952951146365332776777365369949292837098229842323560418834989021169314407677073133322754564294139185701649802235793213371136710186298360823463034163121712554289668493448619574548035760834767092564980783155258698958607089010374735809290802766966987733816690805220760237407267915559446654796429240505529313351489000340586047796667303914583665025541912048966782675545840220921365206213889687309174968832595415225985686667913131876961350313307492265602388386108342255851576071013993614819472325939418495300971722523913098062399826663434114622347073494416205729509051115661336585193715102478802713390207875012293388684720972467141408924710343538874629171358652828443085028086678272326368821135388360216677904681671557967070047341621122008485785745789142980082860302797044236861006532968813086387714949482809789056628443882602121351855129239280871829143230295043062169446187155198511133900959698674951602077328945623223453876340899429265580646857646505654775624696400414451049123659042998688938841416211003014071887156776992902377071302730807606777641975676675443647674658856431954916777182603737544006295604831228699686788407161429136266948312576383052114223832500172777290265856683685319086963524118964213551568635353615744518842418962191190935815893990506544067349317710768307363285062252881840163516282734894203818405510412123251914254385010771541694046558588110371445765164022115264638851410373751012149238235304677122546883883486759564190723179288114930739070311328783809448409969890556332007017400465233229453974594900826345229888068707184104769044782136820514344167745680782698631664560985058008781112199083172875163208698355509525650768855671173918816228544275124231723897602984572335408043924021198009298287712047272085954669885351158987474775888413487557619024924133053283554929536608812063936376971317071784909709362516148708174979014879052673335742065589762525629636080282082209759914152862353511765160416552658426758960178764399709282948930081197923706961156465695352718953653165651408164539885407335078908816525272354654771653344357214244262105661687169409806707657849692345753048416579089812943180103448538997765562676180655861604470136087005602249484054960901880250151722327302927777635182744286925976840527457480678736287909464519187255050900257490516744742560066902940060176681942626623943659705440851246269205713009024043827815070531354932367432321999788997564078090868877943392280875446541012035133072603701151395862256501871840577621744298899895586911448817882442728905633040960366109319153138963623291271629193481117578956749074866986744576527125057178607664414172287260170807452084765472950082082350716335313462993926823720577540341008966388269689012515521410211927325311019574139316396789429518772175587788766761015111427602483825711610401123435349799764005341491861727273193390814979915735811043371299070917538511633489877892914599249314130246676576542180241149351922381489511720075773206347466963398643546039982102260680788809391696883522933248974842521573364318925930124519354967716957197013360366414761141236469906780553105922387161339124863255737662429252286866926643845308058660892735730543062385122946329894150266359698375046094474558343180518367382330449430367269424930293249558623203980519935692508736878909379490514458326650742179428440301426864124210274097411777659555126018959692369931755044042741055065912522885391745663065303389466374372642548438031303624907644790405514508637019280532362212486217364383681747341385466781087065863568256457299477804375978534973436334292089104290728983223154221416749154495063871398065931289081626780928944824150425158122985237735170578648659457223934087122913825578514581386305402241367667896659174666442192830374676221271141332825024600419861262748995828984896286082264729939106791165075074006564857468895382676483399108741371040837271253740882227202527770037072547843276032111801269986432081730874333065533736835462512087884509380251006061697338275093124613783428538226798506737214936062954012750502730452043605660938613446383127409540145134224377468981901498420709203785707472864994984556493311209967661907662234940889909649000032578912762986438210971254477650402276408278258997166591246832037589275166524033678718837232550111435119429223052820768018166242226592723064806234840126118016550670431325908423712003815876885026376050567751788910348529411617141282093805841930961869137112488752134271037701698774829412432821329734847559263540797669298829350850506689707268430527264893675554440340802627082968235100894238002402892282066875576152283290095726451630416817366784473953522440120690832301507697141360879537149689412761244128380967636932962818716209975932459724800022874557499057851607624007422511304046067463837287083936070079151342126479011434750450589095823917677730174629681569747161894532904167823934138307301235771036382285463606375992025192274013098467129045715619191868455022071710558494110947344726926787836513955797735511777443419785398948841467964845079289724879260404609984596037127688990245038040964323469714624152869998977520139726563221636970487240175684587933247870151709548035070461365290355305298528304465575045514692582995815271722006423402523969195524341995656606077492100405001283996842249566858435729025469671963112319549040552812145518643189439849476190268689982967021783055148271191717022399903433945529961318077302910829571478441150165820801076984843219883107864146654858314708847063853684574592913706980366279157081949385068128788968182722294245809349012602029932040350124490359163508761340527763258484226561101180530725866934543281094942624177066801544113119769742987743133029169267202130813043163863225022115951429251944907696274999060006105887702405920355842782279749355169290148596741611545935780299654368922737889664768886888406777130222139846197408762438729997949567582615783605910230593824442504100314570181130480720402381128418298012774772594210998931751695278965652027996472986034855719501210372690011593230949110894969072142478954706849630384728657134262727918329709869099760967668292667969157612864457938735700684443809389222518656845345491021188515732740449961308275872933541532136148124942642193829075280814645838435098817371404927100821286751604143913403806079575866654119612975204397253500542796356933909419060981887422836106490681190868518252975764031592776396253206204546515288678179154535804831623140526769226906548499923087207134421348197294399116928986716858290636582417666287152332493297605642332291153259910474560208825137679107743702403755163198993402858880935475863737887650108623861103063005443142188463164955556602958784610850458457132178961192261538365752835155780074944361411365301040448645544986918176535087621336513750347337410287307466826464172314576352836250265016024133289211434208881402742900584934395775722778279708947764300763245281657900246912710765988312981655174172318614079287408295643329790807161220955477890798351471209490616786998736839274848613192130407159578278619856364409217783877228699311226898670420947938331242382128743370268245042205729190861373844732317818494110056125675595122863637723423614661414534601723416856599504328531701193613594165827417117065324675972269291092786904879696397881422822892397076712030789931769617166803471329659766036247927979936036783434372915704969648962949009216792477309621681152826632483556113336120458606055293550493584361944557069171841682383754625908575522442109785466593607085727351266225996721883719563542945708725570473547529849252467530428501634842697983169096742562438512093557828284719395237659294966633113764704020441923286968076210512053689065166563706488365482103359258576779857083767335328176017012311094260637909644025340355090018922398593551564038111822384116226273347176397887096770477669210737050006951853794034152047697779319687819089360246121347693498122087840661740472195117518188189151240046043511375768667997991666895105514794809896156068521699838562589414987882766807897660888430694500601936158916200303033695837947985026995780893670879532273640845560346925966173837443891839281146272006000795883261667317804222145300834347747049729145824138160358923480954010901310095898610247284666151591040654100697887359679436844321342398508295188857737676349723529734586767522239442079032095332030503456236319309702710215232012029854351733474617376500897697853068109571654729005792293718642099487274917816805089976139366840905244226947185931261680449711451301472114851447483177268657917982412953650625873772565016151805601481097541425190077943254929014001375908626332025155232196214362153857765868814168767101241394528155167667061216503368346662469174700532467908161315317934712234573467287504625941963802749551171077457699398705098939356051253347465398125386480447820467585896608847454194493486940261635569833790801545013527982775299784909367746411886859450451761410795291413918252278007752954536714166980168624421816251080048494643153771639802545970226218283689974019382794358677111143367869437273152461744278952986160740894305281053955540284946002707540516138919481761425282788008420362674589065666965385459645853722544348741968689507487054053114411208259186183339511437782986197253258084750858368717442666478716060513661998754588742933875307380059352900252772274372066791418053439099760840029206527703061091897369816074411918436739624910357659842567049283856635307684067432725323220238271031266732826218663849675731124107374185380532149655096417427158307035464409836378640168472535618495914635000125640475145129641519634278024195671025718651343057728238009033478140816838296933309169618294595278706787081082535913078600868729846299932402105911093778400008650985229968963929464419931525751700709058725322643190542196622249549755877331817205689488515640612702684978918687591681590517381252849919154688987734028538733048618026292678035647637248329318333486434131487160481332158515125873696971958431258220841557162677675703038234199487807932041334821262975379188856958754024967430298432394680807421199109536413205761057365406710533377070783990097936668111002195322899021366365759796483412637312575671219406080115055994326742407585842473833253401989654698115941545882374855214620430345507926920963654730363274531781128271301212561256240627882127628364986771297021851914684409160502969167845586791621434041141443956719757711725866551081731578688750565610375849374957955362890303596867645269964872141138263165708889078450106500615869244124481190349599627439915880754648797961782600964527650785475378337529302854264376670069108271121459955167848027306529536827944486984381447510749701432809471384057092190438679257003726686622630704614209407560066846656581782674844492449209890467835507506665626053632350845706610103653484424663256186700021180915407520410327837848960692145038001669259924071480199360049200328409288174106854221625299952276785015772394486931623924427492180508886651536884159560707886808338176613535281435043696000742145135208325260458826681730646572407934314565046724781663474010345929921786143370967354989279281436974161301805607976012873185652408279641686051661332273382462967161903733129168058942713277957871922742154523793584473634610886064882438817186552153891356909915505874715273089887506418288821536895288619055323575532188447017034853474488727024146697084714239531182949342257510276335926077756676360402457688043241681119056666612387037045374991019173349812845659378890012415605297132233376180370568359556918913061235457677470095270375478023921052730517198411387091166168902149087149615960345639369401006974271827048933593283132198811956032517165896844221850187804946998313978157966196857622249759876417802688128497774284945060836422891628361023566591643782419544598521974709130841528403608531559041375506772280550496274515175427555894625106166395098109810429276399263972796993607109567265214381443255174160357890549320357695978799340952954062850313785607885744711393109459344672484763409623092633239023870993340677630545665604326654209751402999637723478408689006190391529448226129088344190431716197503644516813074674805669448386537702321977903742857594479898850744124996242304251054795629177357869855337570215687641084937686400185355740103820685509742056694781127106661140623662672042427922765484649469830913328097730333549857043760806662384183232947035043551795502505127620783071924886002973975279608599131581452269937264315688132404526773812692193768536539839465689002687989179419357537034232165873272741052120160792523404545498518209009712502055161712859571678146363582384344872092426356268115226392529915094172451868557082968691303906649679094865957933843081903323705229569162523099551604461132448333954032774012916061078738851852422498817874566085626735472699574516103710055625136432490618101092007848795420217639300346386896324351168454367877359296496716161685029659912108657308930213332844763956557843377458420857090248435710922281408620730505937273196162592744195481775878426066318800523072609814497031568494106539945324906859307103478283166897505263802510712025792225863291418849785360595408517124019071712624415069254921505388108721276692392375639965915506620207849488315883998391490532113943839638412539990404935657574092506839861522196940807932308224111958334398759530066133252745930509366729651310475235146056531510699643413071229286259003173159443815873526766389108231812693288870501715419821247658733757212222580179251486411105894535013135192325283936356714780126398365153549212773687275134481169701868543234670982631786799686134472552683727177148940043369622231254513122442205894043555691350078191945100885578360204271652806086639810606896456549112766828721638424798790333486750421466951403801540425581857292273987290369370823357019602950250868083392175131223819154686209450073865039078105943405619693154852911282188173179636780950242465463100239730135841395530745201896514738881553297383902954228682883412691783492151436298830555644799799240403276099287484643006882315766521164390090083418352513698682172580107598469894336960208777616371619790078021040905455288143009366355892982471183430897441721107519921969760690364843104081839438315261418332426044301810017758978378525334795528834453706390149616335261131159286583218934867356824328647166539835277629340490751331126501702635955444791989300854821097314805186662971243965990613804945596131056342991395877901869010688949078196559591475407617677253797728104314215958698116932670516376290336819822758622482902392509977577111375253331927154675491067670526440109096455221600514920711323783120947449400028313344309910518152660364627684819193743685275851202382419870712968306884050785080270038819267012191355482365362174153370707932939776239315473056817789685801744743764131305340294461195311240645805854302919417885066496525010776511220854754946402588283712972759592210517888228351219707585994780562352137588174544272299448590900702273144545245994209175195982466356580255666099837520809177344041061298119022873436968636103282687733384510591721814999395823491103410470505004900775535773367403438226707979367311170275136085698034150391807850689192480735977968867225038519609366404385029869214681186885732476678662302369918589772263311140530605874803938129612321959603112197284522984210180007245223968709869076841945280191674702529185491694699507797392450895586228623561132809813795875865369062668715960581019991109571185339242119814116446040418723987970754719863618431292887315307820128446110529290655104421466655471038334115266855696040726630144848292254548029176660293027900492727861489258540888859712872524561346096795176942687260786479548006206114626791925049971660060447518606207051623565018765720077323417603657839371562643382774635119960024378671900443481955887819132649006055900844668335336666526700948874712130340727056963869710296475551039760845544784737668260778946972534228084074749727812002708139335148709498081795458675846541924248952606312271355944260500827113766147025474575100786732080263377592161849980837772226478285740128967438578245988865078889509727129452393567435402888312885890119543747433128553020260210709180593146877857938951570932817126104611443632223116134370691031785853490898439076802478771062185633865308960293351330899328051352891850960839079212093902406755594140679678241527347217097542866145525193394888419118624478290528283722610635067234393279582659626104378424278844200079292443160964468781126181998647488977632891996959972117020291561796948364989280051027970482738292750110127095313106509922085480976774942103665813868041881974033458313835342405425930646159707180055891349487356540999293172439301776379832900090371273885149014455983194306700186154971556867895960065591883324900160530138370781119047350245079916081504412670717472073925169889624456705786844281988478299163721595432200339046761883198308213210102531027127726634130810294218828893523484964095054827377619763097723558338182618940341836551821823480316189809012125182696820164003864966930444914905757793840201220206089145509788096471626969638407681823482647404351274150833059681100468625815598379799230093515701166279055151945808809893149048252853599707516698155592306846702616854140943032962445692613503325078877866286524701259698997792503691198501314730207923660534244372012294134149818395336040074450685374050348484448332424911583107459694230297228173940804189375136617090250732378085181529429174348080875448809708067153195190057851895562310189876909611544697370011090265112187362514761156297977976888178262136702743301078774883077847125593033618886491832504338899390811192391219854909774634083956676578118751356503654146391936272034777857444760118118103860781233967922486004520715864611362823112154512396056968128131364101635850963621706367276743558468446861504081439222391642387988504249714869551639587718660869643531350722151854588177906790788858675456144590306821929725654880969161794759898804094066901440983780171651478239057188432920645732177637881254021563062324978462265350267211766668301462580185443664537122132857798532053827547534582774385845168535308207506180050996083948029140263822966098987452565625713557358835675295929656365343916790638674096916300064732704720825508720060893814511644814803506059832837876544597717455305005731402202025556739378724886815607317900366470246260721258736302490630261344966306582840963570641104165081064944158562943045507615263137633199737053872213582489097974609542649058333134488484817798529595580008833345222228034391727071032459281718361693153687228254250477343809575016816162645475083087051456336219038328908525602382300785995391905641795861374485244263713863471038436391761662007554233309515762422575815985301061200926159326021219312684618843796396863689802160438644461601528253482969631086038875903143722979113087720479105515595219631982356973973533912688207410042197551462572686663028653758973330477991879805629362060249208119726013707225775450404557496772450622427581476328898300978277389676550688593082597032247844487197544860869385787923524981094090206464992795713471827841867044610371386248404892892537619116311677113908465704486146131285561050742268035570479999290962869167213757838136645848740064460340876900719088606656899627363710619119303051014662690444284491592907880176618970111326597422719285126080167069006339615102733679734356500444155444003390725172296935170955671462799132461528339908233402289687522205643998833249178995545017935628965452112079859301219565651639945085537304019549908088904660646772567697856878210784137462328357382802650698562634799047024348897844972908149972333326017080995170928604313748040281772249088689898193578701156106270457007909159505479386161612599760895431269035632484713383454794247055706469496801024919933224928787103819192466818917661422727599652031027549192815887934050314337158678159538620495543530120963570212321344034725065356028048805746748196075762118942630925445179196278364993848240970718424389318745010513635945502522433631294546759371969366327260370040157070683909641969081902672241756845535812317578663349586042151041749766158188299514567875378225828016271287842772659572051443010818226285764380194337014066126792766340589010712208531571031139239719233470237321494335534148777787083412459872496772349867039590005705312163946984078001710325388014629862176067049347601128613092914600717953712290017129319750206503606609564889439919050639532565498828023368638758039737992102113979362665738487733438659783866797436425517649378571504339537829762123559882751279359326735054522740706901941683666472242144413034382436337639465093015405768208185676736293776974600487526640234828855837134005918227603518822420494677140720339321513855861285430999983327243451152156162822601359302432546335269718449404858015665403697403150333451531353416206660511089047105522104519021973986173216112941924165401037931166455782947125834013346843798687155784405015797918936250601704017249311678648759897624867403830186919580105729156328053431978120579050299238675621008297036633290837420185973454634065108002319934203590678628355861828325004847011797799441176751509196010672465020149361092837618832889066331222580083918941232869600118691931966626987565383326274996544177172802197626772288534082520200693479344418114763935512225245805468932334399529071212474245843621701185525927073368380839548517249330921294234341655735745164834746722147614353230396627177165895521813418721884551838372982512396426375506963887240039050633068476048545259985925009755211365639279904614293205875805415743269142057629635191190678889130005384192399475044438477873289013620726575690556732292273038714484038309841107201769891860672622961802310107820112175404730092383784954014791326890857064643245736282811745144628734736703421911218600541769790527582399447475393051861025178272471295539193612104303755668620298775185938942232980012004413287227032025416149395164824933448948341555714783793189105837000899839359595670676153969433687609064203985277243333984704910056710584835256317766945891759311645329906642799430276023693402491637318395793478862767312200474094720966041317809016866243166078318705615588982559865191285256758428639594304577284989062946088533548185195068744744708432068288794680670579148246441979614761633008612739014301815632586445450297006148361528414193986021562971231700371428759255762612447462578408129327041488709973226801886820611740143050877677512357394605634750672806802382233372140856295303721203185750800550558569621129396280425292957335452052611317549470971926455457826372642789473189930947054374388502800209438410843854467635346801984846731417108821495336875871296871844321114063806300212291501079211150432931304622059298187804461989947126069110950496288676055693864238122614607153870355309754578047155617680363884973199728027732267433994312234891532956753560337616762161047549299257248456470295955626831388308607639922619602912046130041058397153620070723664395218946318431980892849389540783839931067898405581747054148602936281055454409495776773547780171686424332251269978324392859751831866796336138880817250877827021223416987893529299942318348166905183326096904590260436252791496839091079285317315069511010985947493101128926528628838456284318276376683882148976695069959155383822476310770091670751247052227480755534109465328982133078062830568142095387377282958727587805308549178490438388065041234959557781173043420021667812844602972132892611411259416327094245931209682056299940461080743730552777575109675743931105924970438966052272999998617146492176334383637644515740770416753017092884020307369673283114050909682303270973447552756739241142282555585507230932802126167069018621803789128699996314221630591913252510642461851943643295475167117618841592380785161779633518496483079797380928677440400290874912373114803662569328268304195351689981628579327615468785258771099924759871121731562233366840260701501184320086015337778975126794227904957832821457988421139912968230712936955561526048483021039374000793562709202529289613149179210994410486039813960339341457936072579778081850856049031937762765498308672982838146935203479134001503314980021221602653586357854314587921583265455207382208624698623955423898471832853287083671735959887552819475196076179091024689441004757573176926759852568419829898904151573845212677175321242894679456426767371029768134420907482604496056754351105349136720070015085049326371475503805462972505528205309276993956405446191835386375346110840031696319443759406455769748032068084154809026788077198876769611557185874563035647183528935965311932983603029520961738545909597411497010161262445300401871708299072000540377869239959625370690133776506169253639594072786953985238667278723177509354110101839143859983482606430635979580409673010527141600690483771128291917194194951004455715919353902607279736537917195800592799090773336787152435082665847922765119850045119936767076902918376679322826417950330466875451968699081517729690427074956858457839731495407360830463439389308719150296800130459651095314586396131869091488441488241964893450157268114296286375865217983999474478564674336582207777428120317470672580082732199545451012627778054636961067504010088530485208288957172253046287478785400910256383445351243621179783794264382457977799745176423620409749714002581614629007064692523162675519828892908494755608294486234254876168666657764283867587317913838634164454260848424822700062202626241349231543357732561371877602914657249831510060222575752106091225322800163155414917802175963663133753525021334813259873771856532841473855353161623800765675127573885286388884740825079673741460311213254442551417284059246100549570500078680688437840196569899548611921759225827053983604594378428253543752657391280654184090618968320553694855932646096982741338257361345490210108623156378817563488136004725112740064433468057482606972679571344383717451687962040546624901603855305533262844934990365883755730607880593161100460110989228151998696271209591489942540188955669148193634765328549931651944434136066390854345265555503209334544267948496599843625684955608530141765681148027181684126788849818857258038339578882430970564908971428158101179322416159938261027341040973996934586815120256725897225885280209675631060702369593162823994394338917311036707026182193614936933661640635220337706005175187301228421819882279377932860553495670440102160183666825855248620216463233954368263197650427706110915620121287193645825929441468690692882984256830559124033330979775356949840703242372953920900685332195570283437825932266693955910876287405942357535982568816388823300119379722971861258308576926112349268866914576235079571925913488774018918790575197633568410549521844182972876253613488513310047707105171537264317299150517075110050586757508475724320966206912241726757957122633807679679578699411430398843658032256235949473851742743050616098961779751270580837030895297166218896316268151992566446679110705822784928215688290400507459438435033983701753003940165919812846944687689219900341725801863837187908494132335808679578637225609672725597487093757066808994227033905882991451342549493652743775151224179347592699235331015224956167095556832046687109369210510405304700554831115623606527110135040343171810543643052674026490106038640179064667157261048450437716583494202655007640812642518198302209685274782246326564890286407321338706859025686486514959661012518108273746517479538680317942469039088977580133463334497549036240382574401862171835248570386723803006662864780812105481047446912854623197192588466673596177216876202826727036707220482608529152678992913623891626771052598579981423703933267055838138949363300880162476878536470158862469493117230365652203629936965731742618385917427664206802837339454339752780712916949752424090108167331328584430759376355661641117260793844134155557453610621626478996037856060570925997613439760196943379671358789414902585746510656406977925305185453319639184995728329883500271870293795049106230303468332759907996306707444631171098023663077125013532089771848419726973805626601714596165298463350522483663096547875840489789307448601435051205652947529811003732365990722674779530866683857577809290387282204882012040125117589287316696648656631478335852622830880602758339426929976971368757340458930168670191629316013620056308391013389115851152824471032853180642322211126222339225024240595594084265559243902336635233148902921624319578731590364042904237135630363526697247092775040950970603432101175659259201421794436816523960370700830674582976786106331825714986962235896785310318071975869946293230277742125455502410831405531962609813678069074697399990394733649804603506424864005426610409595219967183625105694857565190222689372973672289647687417800627369425066110766368392737758943143458971646492845782537148795295003690562135035008395643565663361713134083501770746668151444230274814189975652282091267097631341905803260869881014413751203798115278134817059032681558970292262992822830930195312554395811639779405013479461451509404544127672097465462497708152288753644544685481355461038924183271708540035337976156906255627920693643669150632252486076320138451375121379281379212024071567585946584986171753783516615514961443263479094464414915073754857216307742444347634170853417240921937197426597862429591386952674905509193340460223661798017806006099056461839358426275634125194643249067162988269995857039747724216528161589239882318389131773433347491259326384347450834705869745156737519935837571648841532786389322730698475768244192140824289932164443444627578518478946460313817564746997460268301121480773760393854035353238288392193571367315518263963120280240028931929000903291695939805956057020506936501827566719579852595230274205782461440035880349731372923596593245294261121206682112645610841579181252196339554950826790102333537605648491290485916398878257442335554830075378781729738063426617650529279753070145823105550709288548845555204345292571351507569835560630045523358501453328836463826980684470710941307698576922344718176435051587844701971666611672203335064392586811672905403844006652356268288490750818528948977176098554940676705977943824891564028509674584361051637727280562674121078951612045480932844623426627785494181522211104054613997908053316797059531654871637548611044133933761255209104202108282165351797151038544151306307544938380602473167089351014328883712198326663551002059557110737654293103793971396567513274637118210965777299644987833514119896258100463112998051641939220018860341483607832048224548395437161901594420614208800783123945884498306602374062897529628087988288055514171617036657572312433740696694250355526470552691121577846941740356912060108279555710069918969977582229972728958475538787374020348312829677245456994651505755139435550187980184826331915988694480877548241710522556189527021697767390811494718720722051570826545687164455763321447834863347168326619718510461792440194590840424435617088492211336119793454894604719168677065126588211572408074584877098536468211834394523956828504671700683935791804705966400302301748491939081274495710683615677105232873209346613006025924805918011975476142821932813018353205182501711247800139682216338124716590023618749154574489804642043385023497742392144971242600469319846648714213877662387151246676761840950705905690979159823713473028634323880533568809568923920369748970418059374640137726615806843401064333092047626457276457590298916831309262798270325966198300934618714593640403429409542040605504693966400752424585027780574025581376079198498356781017153092410352038045577559726410599339025976777558495095456157280425516848605590982528679418369552954168534780326476767088589281302338141445633575495370460219013671073314449354105858516337404363373418507991800649242379590778072674562934030620504735001953449249829748688188513506598845290290469496953618642279642646920576764094896388494836329041285656791190112110116691697036684658033286773608976352715365345229376725550605295932602443884859672796883820187614280863743242511162679342319288857200101594840789282871801060035735344581136042940858023165607033061273348488973152982759926389535440428386222170580892430997657850462928599240192037520151029176918312080394075606112855387785780695688592951348452962849664130281813894625918569169231199404813843299125680293593139766956348774909426499714326273550848824906882793543357253501346707578850951147548558936206124601273703995948078264274534963650350998190109901525999914058683559158159818121246760047874403605896306487581825006210746691017941533160276948274617423456426635903140212851959565362078331734622414682288528865030021854886048454973636710398966828137618264426482458422003954683023383058459336316667131303482011565720778385813369770505123916578976376795585075058185512676596808779602362697937833787866575798373255484086046015345435417891860330400586023345988168725069449126025926967643484730651740989677608353647136171168388728741200128430773311649226003643853536386386891809001443757661686580269099326517558964329494841442068463831521243986997020964617846053089889476772628929919057790418325752626128169794750068468473742298372509896797203944958342900559466507830914326785168364504325035435383229932709461470488313342466748183944894692929326953401832981700284381166680383601009261157177990206929315851050286560561264582662782514122721119135403998015866153816322963949060454517625783029173380402542593825374373483526016461869841056311076721355513941051268990411011150878556704049227196842838720439210920946093723507484685458290221121580079898172707480197262027672093554763863810446789159522213680195368928598102429244388246000943677345324017284450090433304554132703735471399583386004425541603335280716952764547341635873133693747889582229146037706295165011591443897445242878722144095571878053108843432960589715640357133284203962910103407933213849644858133446028037632154965701960903066021006491823436034320848732226623851843026924554155687050952955831486484326409121423799188029049156772486976541434246741719523962085961865222105664604175630838890002016883463339975445902021837934020752791674199996924413269397241909689660972047214316076097590031759887850315520713397608029929009364830345838958278147074686560724320230135381590458549485236308639665217289066483750260270079295857609047716865625824217211068065014979327710304195498007867982885390430143066121717747632358754047228693748495380125103947956169278456811689793726299757070227910763154393998622884297266856485326875294769834853198390489189846950486094530781275926297944803492507139050132511665825093624392739791684059851501617256741313178912989213207707588626827912423615211159821249359425565605330095577538787263890282169901711561898142381281198594596584688509802462652235076884337814226441681256929387925355746130191142274837255302178975410176529635757112023850724754098900271292442324478018681970538327663758596239428500430701693527210040010986005350067981535474277367536463796654645086591332115892814819407681988863930065736279335535342426720268893867878637478409795765291449298308553916495187050638560977174069088269228404846830215495377237622646854746177318669847704196261304622779259406785158837858631783356876207327813593905407639995434846515205120210607202301724759967138909818641049677234928590859147374216124390813633238204330550330765423934828753415653970133206293832798758576172909895313464810829343514881339597861766270939489556442830552926104779749641709308153352907723820460385461044773631634730611309744886914645656921055007547297192789550880174371032830839305467730517230177839746210696329935831299363183793008998505937258316383500272781587015786846240208467412716135294771455693434348148672140164711995644018345216385293318242630800190409294320422727925460395356058277504289098961798074483192558680209163573725613878401288233532132716310113077408479460873653833868949763107364434415235936114565584821220728953084146429642969125635717828415930820807553687353086879837765202666124364973002870071461293263335617024197088989418551166144346081425173465631690696522656335399860916884676000642630383378198755546818682542779379925353388765133483192885783454345243431341863397640719716807294820114725444526338558196927030861523803037998275106131758029109704406854448410446557979169677514472361851668940283534703427376854468719096831428213988981402543402529234703842877392861731447049077329186536497389095112984594505151386532938222193486435906327077688069640181298484831753150967931367358367156998452024794991785882490581057528858369964990585261410527843091574506872316824373911677052008047630442755985364788276717772291577093299030868666598260224048594083722150299533196822925037331794983615491923924582279429406928969367920585268487949091482973658318033573417188287807905973437769591522458057498650008734821717912875966229783827092622683873618089218074348643342365205662002520978145694784943278326040912458206500314281153376704643481619031748317038034438164667474398253264931195323765410520711883404243711982834865937861728521364415348551376959758920849410243737301094454799916833618224976832098209476011721259852417340959929372923802679000413934950262093430417646181002086938969330517718092871011816318950696931345413250375469726565017337363379425947311971830133901464808384919924171230955523436946156447565282974007445279239380482976880362116994122733126267003339169024297308507555508231027089209936477704226624915014448282303696044560424413034257748713839130031463787535690166541135966732823535916021836700893399257163797875431547605190370603318814495641952510917893207401418462718630334395146001534041985764258238508800496444466544816638426367871615095026224045302750277444621645948543941995218793627040141751094698878002177622194899392802818845234670879044582559228226593754517505135848178372598302784055709906372301215529640592854818374753449274642191642261691349327218042583874713821918728608334855023502069866399910287731921563666384938063213035873851755016786447624709092844031789332792969394304141556116756957755587136535401541929873390718589284958540289659258027412378073547790803103118224593626009844818314390833677179299749801383435229781651874042379377381325036485633791373653450877320760086284633573499493717361376423306868190450288290140297003540588017624448421154817993162735462662863936466564878731945739145524769847459243159485374936343876435405769447962359680900213151670894498308356973492260950782007215511993713026130547275029390212084432156098703545474462910131525320432326455308737387824197482617029413695476507818291655954616822888382723635810989800321492138487511915870135178930874019580075994727238690731709927779934309768176586010136188966107318446151079091385530486067367571438525292259415079271176439643504429817246681599719144558910193555851282301910424133222367718375867488271929607935408529687650000942552146934349248044600013319468394314944540777499684122002952959292831660085576220598048911106177838792030416227332913404232163031590678887514754763236806059934132266723650914184889245596619323964605151470341516658907432442394263463172217349346249210036721550812567790860798516322438652414517575647614475520942853803699698458373856136560200596790297886498584066985301438178977711134601814014709419668077491125732359090711150021342380683326363773814572966959477197560977724864145539734257053212631360107154965754008114175389251268562812243498619328300024817374640868348972167424055075465257015668643205382500497074532798807962274907153593788459017130651440482908963913484354569422578813624642976374148901118571443557442618245518161904803048328015777171668629445339348788572673423442966432933568537989739086142961486783802876167383071567209922262433331894420342317348204437828584161343626613489877918731204960998455850724804435575581955699208304616306831869383780842891616623531194058151775636438170676234699133251077713746480735079598221077511622237475881353606875398258910597604725722065045674967340576797094451924925928104699869662258461111816852656088451673310291000260888600362288358464667726531547004195681714703235345185827098701079140957925486720805290254098609502020034266242291066156698998982189137281042794923989505480240526520168553207654397325971463880138550807278111905301014966331265940028136858060155244451492915790838618564177243820988811997914644680321254810738228998552911698422241191758509377418535767414276816807229618560225171728928502303053885524297257646027008477941494409953687239504217600230057603614896502572269084252040112591119884606594777755032747282698740597410516840355737310744898774742944374642194079236647096750251477243383086290431232341478796702203963880822664924879509601909435869041528141631472779546193278018882198521894395456384561036937341006803413062837771155981207968859641527307374882589441485136936891804988442731200364335531778850667489991259077634221403993927219865347428616246565286175529990114636185344012305394749977948355512853846000261645890478139127266920600192414470116898156760011086690122375897021747099558099089386628722060867969141089346117290915544454917759429022246789781775496655567864320289050271635030252241392509484119011856391112084444288820337053833541312724627287231968213819884167985715456595105358404347402727353644958678955156651299791637338145464422392218359147203240867240599434739803589807283893149810594876105624122104262948323924213981299651267973051260486889278806527788604676410064360452025480719802929225550257649394909670507466594683542798807401713589182323329222195004971987323469111554296303737376957731364094899763539310661326112821689666180482831119739293434058283815825786745574166670664446103258558626057631247855606268508812780440624084007521825311982587477651981889066094236605289575120455613063398965171841806776894171637544496947434241282415531779735019357204009640336485605885283420926023792494763935792005233095689777344227239385729388992547815602056556188819241552595104249972392021815039130382964621760899733622873899427737107488537799065732056688712094841194976209989704576401293827662998042313950634584570717568246685414587801197705568952403241855548241590162834075665545873798552876886286709121727856978888089179909521526044674795590142108109907002542384943903504820850459405049706358816989044119786980643707060426564633957959880172548993503208379223862893594180280825682101731409483217434663210908558048773443715484905953154604767680349956029174107048578658872058405926053118082417162701390995992582853881802016461456127164287261306353848060792856449206906192745844378367591837091578979449163680828703781702406089195308230246700109285890056979513415951429595426323125064597907892919260662763839712394143623553324758006858570296714143355192665457552215675764152820166153670632235321502115167071657713001092973180010757517013906927629522728743456513860177193112378371835770287187507478814821635044779953703788227194892217115850846356180364252951067921925557618953144523004310122802501673536933060671712699494140358962322228421568981380223428039644855714247412091072699077153728553948009777128205614370799454253033357650914836744975276312425188662349546386350491102119949692932525571693021666505862236392288241909555491855218295274475787647384761948901849244905752721412366415244667921898090585869721986913989871890921966356597427409567599379162303112468083027946851317066102203035725070371918055018100060792782477012624026474407251901091419046815642282887580394002775068209400116154410015434969575397066965079579271375505095416279288512959747617088293888715205879130620711144012973395075306937408374172739077455490620113278438178096462269740677856598347210893638460862839300420611938567999156113071901356951359016469299460246216649865112199352820584090127904630020156693466091049964394191530712892512551206803579369995031667200618830445289789103793513007642275525717083334645362185553469184433485069881770039957719983201374811669596575556446908308667174782665456066690005144309334715080759289721112934770570730449151918104673260803849809625097156125213974363423550743276879273917861024869249695466512022810241923832408769941692756218671986100498960895282597624072341710946061838744920001419403832754183078482017976875880108880237510265210195236773552087142942466360247338927135130157583152939702070638658067737120281483234920502460350377049500751880798109257668659415269170493293438043730574101741912590896764292873991247801054845457905070838169605665760652934348137153838597957918522841713594496395495289904924922204765232862071509779294934880234482609578750288870828468188179432515181646059724327628695760077081743675602999969214760726263678475852120764490544599074151016763284132548222724391116441003692903550020491446519177321203480378016199711301432422452731698468573194981264229238869446219291715011412620431018534827432858018806112084097295081292560443569765990745248384837080460870047356911378055589247787638516582491355245582572212917058948475935926142719555539524610888286082444283854340136368970915685015927484326507018042556138736551226752416788187766359885461810980479286751211977483291356541693000113163685871234379711148071405817970580734758209120034195577005229116227574550997906995429465453736688229971369189737415913223664577191115224190602907189569780514288082811728316207503140621658618900719568254839391805677534925882157759974782645022932251510642629488538793486332193752599707519635813947543198424096432673071588657225101903013075869048592327055011942150713889815097747221766975449993051875094204058792502973590698630119569772660274972900363022175392708829023945141109622765179171954599491490056134412577944534445994801328054918664538300750230867468944148699715019656131124992705788731209617475002433164306971829122219248715503962103272595603583836516269291580944701513591242661989827189139146967903669559456556253055119183446232938555891161868380143087098709982387949688585954137634521431560644332292047886544388323151260911591608983985097020118291156804492027177531645409674730733143877199973965422385021213433418870668676715234386263140200938057660865965739501806465550971295773754046318968259091527168959562019257689783476140792174863686788425319728443641653352333834997715137086011887987334048614930822283999074094541567593077957355878878917942133859819546580050717335040726286897320287514330645573094645377261575512915571308361780226786767218963754961862350110634441792019373028301968934024081424789877892426216919385139369579516020545103360751180729437541568435934599742765089810786586973120666148919450699364251115929402587314391463832805740279562364160168097659492838693698527861728232746349262660068539219109829513582861950429250507269289003583235930652479113377762033520269940920981025378208372723255519498099522714385737922755987339487631102498636525552047733178867222866910929099136708034306372668168165172059015181748508660616348839344754345377816084276269376911869349103260862993924419597335425254301475671548948760330368601379044888663076808311946701166017870361873344626390436430880404334169377438145108280128118962660554133288327048918835918233751877841487316399392613916558481178586872512356977397129555951494092731720004658481943978904401870126084461176069462531695028125001909377322811375649185104276430379142085564494563774170913138605790935247454521323919124645968248128713860668138728114853808650299632041162863805336698228947910782844894526022767848088062059051021807011638358859739914346355024403372192652872984381243766382178022781006267931309420728174884754343397124234192760647308142745707049851709360991888374806710834519315085169205267456854490179249776254371909505145850053706699656613791702340330118147677850406369308041475315028871932920642781182980295241369055011357550555068244119043322575138983281030589742937063196989910165758977380824957456407343980872016553928515136975781268020446026852495632956360568390514339114213665766139504686745893425165235388688688839745016723059879735346786634975186189974554168340894423927095055036622791130363185601723546638258289425674609650199246802981499218377944949171985363714015845175238991678988620745319031758394117595611901235790094804955163448571303019905294871380958376711635945943573523583493022572409776458772003213659704358723772604815077527382475778807280443495797668972867287944544381276880922240548814348008246589664533125409950808509194500269243369402813036442832348832442168669955545520249077486749073776856536142712599807003409248639845941891132596363266917116052071966594278958166378031327888197591086035812463908093521984438561390296408668708386846660037372968548664620771743864438772907190214248412650952207148385894112291558104717317090303923147327705678268963996373258939734743637424398196319704201901623960631420837521057111245883742172588326027440654994175734050058298803336999600956835450060441718015357098474745341984329375110079220936389349027229194357454964951325631811795181543066101856257441553849816754606388157676632233794028737730310055900575203075432740330067002772525111642234055167996584532557063857926487431778703393642249793004523160276019149724227323282819855910423280592246385474921438156433147686352335000607104372040154516147814339753794553928414543021265784339579275795020559026646324628412446929727909389811101965096080398909702254140405392689256108523011596288341684232989406929056937143252044030911598977258272097422586428785071562440418791138505182343906512871277195417618021361148135097005746348872864581879062906537667311678551670932478752907021605246303705599505847828296221556230206207037232925625732710531739184721451350149658287336190010410061544407455496289788824271947370324712599143735934942598799903951453367479485922255162555068309592959986932794147001128235778754416016682158911082583320002417369954413902885479187661826319756656017917040491146802866832486138421530491198301081217556530223217298824688121906568159757832863000801164695549665065026656170713243833558511485775478092403748578504086519729806354302399659595535204862900459654606429297955957052249294192451880478297475915773125810288635524376788656250979415013894218731066559220468608669761996117521806585613066006317581531385529991473565119301255473435841535112882128413017319991999591065594199691380950545988432350733029334803199226271834559954020018572576431349803467600060143998280463248197645524260484266137496710395592218922505670707112353519369280548148045333969268333925302033487541309288095038884642200667981810394031295978630366025780221214418399746825122137696872489531878343860465031913546009654992767270920259256332022683943030521018122720425985418474660308194689876659806193337484040007685795035663470364164681321227353067627553507784896960476309187473493750180423794024749558023660201115946909781755801887812121747303758003802734360105192927497694916064329449734401508598359774060032334206295215484941464943802989595639001611927242422109910690801943044739578297716662478490335114600574054448384391810047637299175660205241232347187916865140112549842847010494203492097168395756801111221865499165297027133345252320123608274500792193223022424792306343473179901224092542256515411281771182681975700125621977926942089708478356238122859705670028357796791799514222848064804328506095637155582517129125763572304480460570583957025224331300473673181983291217675674602081899290979766703419906227181693797508582969694880412992185658678718597311087015678340127290051949009153016607584050083569620545552090800686626946117520993188295963579479820698725350501962914190514251979401120055647165742703721387234525180255155662550289231515711295659264345904042712976841719400203921814575179326644539206115688709589838346694704765401170550046333946640203939371152408046576257794784609861625322947737840197552951797714168299723330420802518524597170316479902330694676248540726971507515057438704662230731959317464020621368149321055774091013192773615201602548194626253861950387360608848895822052698174598224247768105608779045992184400753975441430669138911595595620047038257877207214866407277314427090458290625555620538256818097034521861886951164175596776835406162251456574852132141815479853039230193698099064630668479140858117459728555021612302295573551833847274806290934405913090259728807374451102434388694966711037635529728405833573270014444498555105593379472980096823726565214599074899628227231460203575039088473253385469755354475368988487526990702087451911077229519366423621863643499220977765645213421809135735730769128698178454915679503183081527426332464522352334815170799863591352816860375199413519110220283375244680393682386166393924454304611541164113665974353764806079864755858746385323632930737352177901694946415738968084695421128869921012527618974971272285449107738757059992390764118421381886060093607222580032542775952935801647557994133061484040082635574490331481540672348812776581775687728852105622757036931397531487853323826499856429943487700423251892549113089648402425291639523310079092573139365359276463172107870705052454416545851151468530753228019323904546342929889039718522988109337744431180049933933315236059006213667259046144047818587789058995071643951278927821833143949632076479844421044936278978626246145735439841806226612728233377616357497450064798711771007417201299966781833397693154570303431339407448028538127723863231571831571235590258451275312998852680245766526584410295535603581166088976482501093680467476653453793838051202481489795375658997363066420697716968449773163886032465182070091154193749648508479299400879279652967495633230589822864630758743295725783574534030313032646056450273248367565762451885279829706559897772920325650780518825123346457289843448903738856040695498496109347459515583134316307826878931268028260159363230441354903302575388454025048452401005346326522292555863883021928702415899241370683913027021254703171443702635040293049873395294652220106691121583857927192236127560856785306937579087109913106357352158666079525579795125836887329312090126899916377535593541070730400418528997781178422424271959788524851111613307930024291151443130850093371398657000196820844940412494616467741115298817727869872386776645406285001462490469925585378440161425016990238373418231303461540836604542899229465865514010223719476053564978808209463210786908978190141737172615720292322592615169629431265563261904882522083801568544274513164452294021052893744905495772203748428150515187194160284495942679755441867421224169227465515682510225589216812227400825419597777709077591055868143807155166062332034505663079559614632807806147048027446194944388332502877756852201760156698100445071669261328693413754000426134897948626155234203075518433141077622550277571907519188762910757772251419115625971135653576000937796863129713891347510313063083516184746000557199884659075326990457414665480377741145956442401775024424332651661329343332387427798513589489382980972211631268600839682606318063155981298243406053815557986257376358702830822222092464501144615768627722216204346493460824928425978868706129945073768925993935198466483193040701433175381096573816041182308356909863351930997920511425382057802067485062234287131411764366800174616263858315021715910013555901830352488512545128839022739984636064869144164630524232448572596548392822670327114046305984537306784712895860169932458001505298031126350822184639074152081777289695141307860798831882628471977262970114158857835777177622286805209473504133340813580312455973220155064957602653151371931363233601466366399539996733078727112012968699998023468704079106176879015357632780489972647799062517936177786772714333006064190612479671277215920100108303436904337223407553537209329459803894383218122230539190058548279613452726230505122675717548892025189934672495898420895296927285279899145806641182451242436494496334148742848399046124933697978273994702347544592805143622539640422976133501848280277593422435904824485596631406193705162805976537344833143462223718342608974501667587203444778504321006128053008113390963332154169649879853543807946016956296630914286039939539746269326491593699113820220072987735424138068204697904960964630597022281398779904399237393699904791611322994952050147861761123337770400579468727465092804692500916749514799742466027823342966547685924426569967094319064107506705842253922852749089113456601214801019746165103855739442190908978278599360656275261829216937542862888442938184714904647363226089866242843918105508117457968309272349444473630297624766558974659032052652442158559700460791313085093303293695900529123945995189861807787078250942254461292095978960981081110308073830035535213689163951366131184092721607340730761557298149953644581448902157675909621533368419250114248755850570092492156411994800941315294137780212952126241360466797402250793606544043707030945864424964953735373484701017533518082917344285664482800049170464890482235769331073553079617570663716619567429975450013186186252794629117373471890303821512136227465616449500101278376587882696344235873367914089815847912568972304722167014424856121065432358978335552329377304775953642945328444214957384583728626344748255919745455293175735487494586428211855507738031343595129235818322603774125158960736146607326969348818813394493516210692144249421145115067385050714623563404926856309590387968312113610881197338089012570279797045462896847499911924790552317694971124761338715240172778951472527248517859984656544164326373522456184747387738019621519517637910172901463110843949156742570462315658392534810771496095637756671342089397217756225667384227962744169851176083477339979559269852763309968028244334488846515148682457929676950013082579129498606381444497920302937588097288533031519729804740799765616407671230552514605852001775087531829265198340469073717155781321906976230575820748618181824031629898227975022854274822510617926654603569354764896676725519591098501107504212461231311492157561605539794376461366592369510765583383466847989306175870105105764081944121405550541592395356719091222999375580799068587674136919913665083034524150733358334347895526595467098005697674904145659869157154914852985421475866285435274201736937982525801194767858627541909383380547785444387058193344444936177795934324894748233150661360528610058712163042979583461450407898300041026411427116004611631958352546940530918393363134543677145025724943870392399570796459001416619237769490849488916477581091859867518158983971108690226192916111553320773701807607245456452262302493603956379511904994513981639793555979946705613898663182174486110138163767002114560274257827674524948094676244490142759496148291753876544953698159305226016619119256248210617075958436052274606979879763928410307432986607230840130359930161490837837266553751553848571911114243667820076513661038992189217479456765183513384011792606470899703461585910141338038005255420973244772597763187102192586834723169306666406703269014384472073128121366892752619108560717927824164188372326371248906442106007934810190895409177848423392657617720563507014919762229367268431591122875091579114956130589797578652457723483086709904149532693567109781004554904098188156763135697481248678327396378582439961644124776875603030753487430626759110760695294468739214565990074900255442133319888015534997822636584530449741061928019719479014315641604153076643890528154207577259498828377737665981474901027423018059742187764126311342329382402067398258236663814859434494867684828763398850112924436581871737631005310896220683850238517041447722595982323098939734961254823535997176793790302558403961597980220587993654022451953936592148316755761486199470707342340785451272526636494512893547456585709328941254419925140607776596364648997989864457257704329228720895559061676506466606573378756742297918024555775032295601134303560975157176844040917689310694231177604697273503560716801331092131542896358978388638538290177854584770609048280753828523214130834764977837059120068196061354453033677944348337617188085156732788028788926712071194355116336787270922556621841555920093468156564953245633492439452077953788249944524141471652249569235696059202132648876750782968674531268197846662863563845139698667253007532913999682442569002866487627234969734396016399132037661415004137531605456911002670661883491569129961686842516648990031469701604776363673412668944637471536911970570180593346720472052840125037754421270026651142145860605968236037189394310934539102804134516527245092322760133866173578189909043839049399197642074548178432539086091258774495699086748469847370082371772233234086224159611319905731905756702908782393261234428084979797659317992159249855421964387338826945791936177550938199167300264319296619061713443688147768589940606753126021496872910927611277008821782352234586474131427083236664391705010044282260228775507613167987158995212618326362874172383777199533675281801499209340482965014038606564320372180970609690882549784777240923937925991815412853035222282231463865131717316515816713330106901740437016175486952011105758754312672099384732234830223187826241911517666398049927515035255014410731675427885676009310286489237396817902469810012327025937847162976821843349622005587730190872070305866621432240017222682200299827607175322692640836589223395592261331545328488218499760051282982879151003995854808063016423749517150628082992596138568091013314965333342008857891818389324664194029076353256498273880584181650542120852125594758973849635405457603902119637948478088471985861128887845729548967756449907484624261748883999548888400548488431822524084760327887549755900201175493195987056136701099044478402915790752530267458515752074553033080068052843532886266705110078058872636806099246178989083861928176702687907319065538323850219412629708670273080900086487605262407908228935130823954521323203366823813848907205487831141828737031738753476059156809342399527409126513017789935770123430950087258275863532760786860382519279390595470211711182700016088784846169698040190482001031626267244771686834388851337137178493110978982252819339554497489348500422411216966473102378699415620252981640124486129187493497924338202903200253483461146917200738027373315381199476937725598431128168467340508570036061677941301770038162194401406117282592687339507308844674195311018596128329088192057684726861819448049053286349381095277478848191893280016863596999622842586984033519488689062667730488494216813754793511813741240212559520440223347483704361299248616339079979057410823783283302405714439641657259866116830269229968973266612330034397026147974756300717903908709729522989719374723474289067324803968972856983936426185217907495788624304300450707548831707776528251065004533129317496504655962156561202691776643594304135273283470086045948588891890208332488967399669099257615837140976778018084911998273345629939198008798275008200045905262825175563856063431657745443021725113375985332050129965623607626227497409164945524369362931044711720158495887543634897820410564673927120395393608532024404037411943658627782664676197059729399462356494755968378896628319349602017452862519899504011641305340282743567635012975298500290328137466004235141203188768817642336504751104050260181919220302739719542854457639409213115838899408820412323373097189519403946978996323385375384316800689895611792789583482329814511136689260599159421536191747538517237010904761811042594230747321531751618736542776182649212609145775684628529242407113790708343324573530636241055164732057970945826438059246381442892726158720495152933974114010654980836425231734552558418144908505122107042010776215128587015282696845383425806401574571164311958219676004001630685668661603155257973935674662943431253042373691405807214323475224604379224580377593988851782503885949253336156140153183937516163564746948895665060777980052802068123312854456235867628570895741845094117349342481193256353669488862930242934227954238418265554597858604186859605747197797129300260466765016167320425363066288127107233375704506796794755082153929717857099863295498480462108529264933581691324548622264262334628425465526952595603463395128294198518384546502525654699746117042448805090295194722358242493236775376014591505849240294317305468949964438799419011631356827935523502349496813201669818199834396773514195514762891479478747797351128692875784478234971405059199828986963605246586802141913834550691607104067199427331840247833953059477517399262235201640837268620406638648896545416266283942992265148365887621545199261594256176134593023148672300158941094480881074768803348216130411983266905456737038471609060804570968401263289248849137190531941879239948130629478306767841222009553650864787248339803571153504601680750053831033791801722698579032379628165848933667787018750029485812154055414748533401084234968994615679297997090287712298830495906289256667328105693494577299038124780358561505222830382570328705489954362467661631201504852064170284739566800705468945083200870711684633877700681118850107623590772683873112292747382293518359149527433506053816932062216559808435425391780800080897810705570813846499547585949103315019475003516380742665564259183497425906851102525234700596978261525226165767594070402186661029078763164977829225064005018111867335665134914072736237064871367068715972635562220953774901533896283807593681859730088403421610415270514997609955191801227563087593609911251543307479189192884839492268281522644284605399341809012267643063040168627011965304064257688532231016277025418676129592337064752306235390129359503868304604212702840723552232348822267807813708386835698185688103795169673206202347160646433748313273276099421901210188771410897775782082736905056323691994403572052328277290535226672801480528879216477929303553092009908913287483347991459713995575727405661021247732943988010062630584904422827337527223435317637111567999133927471409780712036842016233125366315699721723865241765472963443672024132445774092726088595579526611639302566434054638436660498801308913236215634029389583938873581099697100107594117744289192806040572997732921625645353097131816577912698470639345858256272332102354665090661276440347159116107445460791140489309477951216668067388111864681991745695273733202583580685705453861588507605715388933388717077494472110444278324047486208198454901606112907920968824598922526137878105960436777379338233558109766862627060680383107625213294039886330435452792675303124829531981907553747716955539985399243827034838608552379196615597515827746783099988118952002241329942882006353101242309371775872350073280117067630848130020897606180233924472813744517417025378835162386451544864330216795890418275364422821353119438052138815215061416218432566464261634726940521462606534545610606605033962528656601411698771963159321961670350017413716269393744880749118303609738482906327137239326638687330952281137616323480187917377993670352407567894701787287336921567184340565889969051033081661786030314015048454535503534747766104217885856892811836733617183617776188602441814456002641300457411187167355044734202773649658170950253949501357050780968387492953052589854640110915102212491351669480712389826917149583192726269719642310516633744035935162342477716853421843748659726296207259414020852737215363633028359230325957521995362650846235301748050910571188602030898604762554207095927936785751632541407505502141251950456498905171886414714682635649950873386153373824216047344698976220424016864221017757266995643842094506807062719783433798490855127656127492188480434434757979531194166390006549306570280021212093271609538425712031597298443528148581727653225862000203678348694324058493190803457261500887202902209676285294097942458422820998497415256533120117989082867902591216001786859053374012747350834293910777525886083912299147418755015342704972615654370831287766673460463611331939100692910955968683474354292215036987435789842116489509797618878649048709635125665888827127196807516620816881482430456030543268013583645175456137072495454951635346529343843440085548666316573529655949109418694888397245207195207265338381946530741366766427831953407430423449437007741564353229966191934157843652114497173344378279734116726451265003718302136138669221710774550591350827727007002468477353132008001267098305230018671167730081098712724131315170035810410422227273863260733877997078136302685422320907622326929526698604032243389645427772226388091781488011750357949641431439178387986577590296836775480565360573889606534056642434928381983338520598086955756755579512316258239447188138238569213181503325496455508577835917089467786963899246443784802430666488438286855630984551831464122529241791675605482847517246108727072434758814593095673213802669786974285088631774610127355776741252918888103314445680445715055012567155006169456313500158480399568087441324133968523047618290654473703462821516547946749220450717381225867797314747408455205407105168860782434408473343688819513071410099344371603387445062540712133766347127796563763456007058459148389736853664221280211992517724959831665686777691362696914112692867122327007888528521114901849938868985541329297292171463707483058286420696623424485205470245639633441719050546355351007695172863353243893885835904372658997318762411486293451667778873719254451543072762285184823361269118254555819876088308605890463817511644913655941958000432786665652333711972116768342673141277606067638975540180786018080442027400284257200308020054105366148123701391688710508567022265155072706796055234226338517435842499946409249000947342628586377919677540063312923647217545700868893815484180496755763770287339994233375671243015167725255639019645482188873101245456412596056048411854714855288009410863903659163888530138460701258794724752844483691095360440859493908444433899828804112604794771041070346418174468105159007772003057575899200910631939898503645102160909306744001676912540659103657090812986123850408807990211285226874630700674783332003951073435675975286036838580095500957933484872179909502257244013139029169078487060859448171571922585351558353415776728965938389878944018716038188717108520277778555380463094002314635869519205219050892781068424408030936213986309710943429324836523379910663284196999158423458462139276944093955650954066387689283548132556415873196413092287321918645016595203817083956962920548545806562012395128017979635354704844573691007144412348592568521962585684234310666769219546517737217940465466793767702774637321112872431534790273016381036204663947423143483041903934784538388166240305111427189287678389925588465724612199486044039131161283121724246606270217830089070050037294339888276773758727342718397731222314815919464116495302839389654940274150918872440538536657175802994740071538382085399073999515603812972594477600129653308001813066873534700586479770506382138647574204000320495915074204949585278216982799289993915944990795722403932180784145373166968925412335580752034070268295879274965410828124196412896641804587825585796101008680553687273849581280414155352053895593951294664382242564072943727032538455013270434569544549647014741621662855670759788592152036768523937939349262189486936395451014401723401893451233160494550774475475649010065776018803140703093082296198583598452046454400136007078202601734957190873194865300508204460706428046060907329259888051225376778056998034986581592532027509615976673381139626920378818425168289607796570067961729213071093318212264717331447713252941290012670745929453213251388126829464931890762923497667665077589149024588979950890640531696712239645045384678197918301347726008867983617415460689558105682822844445645443489013854629357664643999749232915554490438434057465595372614804321415121840077379054196704985023088416713027680118486332514806783923759535460941238815468409460716177349510641676524548319450346864456673020815196356773893791643678798438660481329623546024894840344112092044284795232568759176081562963593753694134032248251364689752964226940623910878401919460424412067875644834296680197807207269634556026219426927454592456829683824860259793599483133148973854914107752891416705237570355749908535763206384606759075173643053361404306829334524050420102803504131975196955505443715346995199328572922797645303555077342116602128693829969680069945090325038774154841079222936455965518011766926570674095834395182080818162514419324534140561974676187608318349998176588363776347425784513218473658188979582219638924271154881458394911003082520486035487493025922594991173173982163596069170245355105089535895382825090836050722905434109548925578691902394077616766861565084885628077083740834225738056770555470220179673388755815489724880079047379448399839388663786362777284337570748382888955838036416015229054850755843011674938009489699378156656464172131461984772230046581478405832194870067242603222337425603819031750648333597616986884678103225123768616653834876618458262768223384812698588296397802774090104605862139867004021752059764981941299772202915662672971337044192506238510723511616722597883719469364565523718371380043397929782065193693006412447299112653737163684829595031718180554999032698837945560146392344180814647437252519039425219070135932467537518150737475813876370075186767363608195684199684993271331281319402492498606752985250357779434381291696042095499677122000839857501551645818577836081795734510108079383093578099413271503750289386251356905485362452217985125231854841397158798144106905377712757956161077178719092391115491847647463495802361076529861614936674120348576634573075448207780177539767017662955713060130304700563482272512473566958448206135982730686339372549969119022189344502963940514776744871012936348883247228381324743579454384867902473581565020184172256221105501475652087447068676422099230767580123862069060782349880729395588961469800803940360931802649674553413268334625057879905451341344925065443122267311092967716538005322521297346263123970335648455133894034851305669773515348804565471570437654434978975792329956430920793360931429421395487791330031589044146370275965093033032046001274193287056134254710886522257509916877078664771528779360456095947519959142285867098884012909964355337682270019114239051083055639700961962211291315858055853300673069680688430053373125823267349172147910996670666720832455158216152779624923638544713801649386658904813506989925385414286235272301565598322949649069722994491664297026124318405711295502679891414099096722860557207410711977902358188498318181076056494341127869370329638113273973889908693745511917944802070554543217665491938544904984571363857801620132988142890260601979336209654545499894246382399130143975875222946710403157826371462299406904775927913603504837920460082732491033409399778531423299084135045656938463244417867920031692048836802916784960642465548520403465542454432632603878197448868728244108446958776066531204186514036574633438226563778156854019565084919592599800443559401060195465173187649313560814229168606211527065536204779413857854650305887771087302369997355182933182455951086767655695538530174914752313703765595148528623750264046225740227691854716258049312292320188300042594284741293552145613500851599900586427675637673272218905556739170489222062846664270711335630562892865587762467658401966042234502732919430733099674518127181940815494910250150066578276335037736169465732002051294444989884218375403923994374267506070338445100097948442120682171672923162101692260051231360657990635041189615825225829842125612270260659065958482964057113974608362804848957599797645253355578182172892565843246335055665127838035982111340128767569717326023426515934058398784168801096997197982437448064609775831095952352630559718613361701260606670606401563621761779524950631182152131678661691377192827619925731688435343913763251700062857806132677032315551043630530815929520053442376370154986515858252414557118926340268286683156090770079617703792675794588110932873044672375198189055484455221151782969371741030145631766900729902294400674018676719326038692597169228888949641075142722977847263840724574158794469676874372839428822989054406633452016300825452669987266415735588522122119409341670160836092868037122237984068407069443224326089079180124531152268123021534357330624657948362177379285489897826637105511629373427230653450784111739140112812751430040466452615117563675528850381536102661192147094510310921613599580726873181955551369938496850246455960060183479361637928930605378547576676001168730490641791974756004795820973304700555837239576989262118790449527128007136486768013975746286606598835704615378775039583796216069151754434790548719276485555081526516437936000223921727177911119511911995160471920682306144608998333256521380503562495851279532130184783114724376541546888007556060931209489246004797265432714347555391709614465261151842897600670367896532840853412102017067536454529764691441755836766548416133295131517211835430628946404938779962719487816799489358880115580000126175532159661004975663734091265831053215090594188672190935553294304357948163294422998634277234688336599938806693547473597413801358113872499612077417141556860999002499817904216613189514564226989415403674518988737749124878020372175977157329705617558355574487654600511828159174493781231057039702542621239723504567514305671796743769857966831054598100648659840015191520469975150968520656236202025658605462587836931066074682168281344153648870808311308010542947471574654023815085928939935832604002568779476993946036910366187559835759608337602299915776879424592996349178411626992672256518475362509003807396716117080126560582828909991880741130743197978083591248748009111095602893005400397705632248178950924654488224657924248402128497875025785088157154024632623464240604312490643495417002390458911694446269556797849196397778161522813626446310485034297547089592859071115778718443383165318015636318980251147416576000325402265691542202697537990191414641010646121295629010852849218080419456213205717332319648256565456503201287047764232698020283651537347023088100399503551763954246985952591053295852391584691802087161633081447054499614390318923497573160008874110642052570029415265351974121191131636874212156445636247399272339206270677559467182874124649821923688104355816626220673060422439089123973935475689617474220092718696427262046826560724402844860778289229125236968392290133159229570204197120747015899922335814450110732171904602979332288247549922278390823450071216023542110946437311540153939594169343647343378189376629497642358669463610708821386423217934132585155724658561363875099718810765588265919442815938184793371417717147700334915332471351297826574382443436324915528646595432959441445726221833629379534076023346128536817517412171881510462859135346144590927894444828142293743929806308013146553454980252455856271999317674810604078669669977814647758576985339753517284452864768945075324258321280574224495266203063527127797876497060161732721998107951262849209578976949026656182338557020150657520457514571253575163725975477339695764183320627492260181558952756914294062720226078919605352204949011082243350494916143695426404655306043076772639509718657367086178285785404790308088821166426169737150395203651633338108409179393730966095562066000793423277765472560070045932817572424934649655485359180612521745881686437322821186877452590606260753676566920783673872811044978360352772578293815162579802856925726212609776656681277593749543396759409584005855427982836400341081287204551303706228796406296924696771271265472375169671837273661535754168597351696600825204570140091987849627673047814560002823442513496932131437244010149515007357692174731536394630747970379446922736308692092453315015049043286238583769082113467360712263195859145268751908926527111644097741494797800642097653374968849923366279523712004714633538502756924788311490290965649682670280877958155158736562744714141579683293459754447503960964450270585195920148831091394645944303604969832916211177710680359957717490637929162716123812918936895504353650031676963794929554807309271009158112295123802592394219737823728906082532566472572672434652762455976561919287429794198278529928652972925300464497532355723464709192954196954727187803800937500181637612271549588064608866718508554464416220492783344686125974615759197579166920590056888076281458547378444600640662383960973703884837715144824084603573589878167165956753997643227345598490371447387219392031208220141215364010122858966079405415055459974804651553149099945864959896584635573939532221134771509572439617429926478616168188129159230370600924979491979893879752632778297726779511252322442412708167833418036290858326268555417289838017203156233493708040806263677706689247713201038470678653432657207697365397083473683702396919532064539185601813133127784255011848654964734007991503392695074747686622830394548491760579681390120420141851337191100464050418881503825130803823099727969492553466570696156794227153682819757517190810695647018120994094998970648742889159896221980159339008111463949138840775315703358656292184479047610408145467935244864098337482748251054638221056138648943725400544102050115417135133740777391883958799993034305887699588080698331721265182193334913022208061890181997909769207244507269410271196791008795260757267417412526284835974676403647927432318448791162329241590593181930383482564873611243725664071563579830815122324380546722937813237883029455037826777725498859088394498099989523247392670011757941783157970161254616101567802136613104531063288337989059446819909133182089241818843455223760530498153292249400813683249360015875718409617183243036653970359292186748119487432446640533427494135610606281719974978207324456978381599923654278961832926687006787335760696827372479436418005997352579710112825199087212848307938201528815267939210647408436818647877148904815923075306405937024420934559866964124060537140197345647633075154259535996734371205861598937981837165966295892399596769797137688486572748523487221550239357713390148817906350074326346467749827688811149006737010177527729270695699940199521621653788121424224417864053825588399026584027594323750308036150401368294675482934057534410005388264287662946350501406286939184324112507053150069161990715951232412959231563116809804020789116245022536768745706738575637932776548586606641738718047977188025404815666843633648889554143532921943704696911367414544702269837527868511184373761978706705763951633557801705184284517163083798229458078897896042076245600002098865717474832098714605926635644214549422540138332317893851159107115421849973479347806747053963688548641220802862514337315409541914120208179335476628800897147195133957404310406381434090492821283712927210339440911258202370583427874334999155857451416964204445714175471123239436632713587851597945729389197423614396609094084849363494435043046318715126137050137280338862807961161008090757122057167014315980671772381307361911323167325308627972007963903272721475238297475013894557291932487963132013604428851093748585698351674293291339895849453746462171786340442483022484649339360611188983116865895106146973852971709647391354218658453278023803894403323652193372741015747827893765000819313014100280654738791695491261612463989209699628263862718494014239096460216103408037323734038721810996586676968886977288492269410968485744272863545752216303623678430908628464901619931977816422438658826909005673157194269377326660708868041052355440701175752208624765061281006902874765060020571559465684800866764497845886570518314724365162767226450192514818430572784543748024244999263233467759098309762073796074601521471919160106909088066247400888024788892267044414663389162522199693832478483761245819301823561264334423484497502348751717434189253138159479933012269227241707409698104570331716256122966367486560762029103032791784379431851601956350348034575237241900861947615877226625099021572791050551184765491537002926283171400125396945284792026327788208944269656522188199870668617243279114182987345192067929608215633792730925830251843571948368107485531924099721390025106152646334747379062697544679106558705807352945632830710356805296039835926967718071565449114246665883159626279065639353937970542360508085995072256498684285439914795028518789829876135270586273703487035202488268576793616924397869412619732807594190617780735431444189045213683223559052004786061697518984579039414042943191945228694752378115867683439226112000217214212179443427848534352723109183100984665394923249302784966185905057035705693309057645879770153477248666037087267278577198600803138735242455988838115127298939989225655909580237115438571045785845234795615950435552378763663262579321695386767430959858853947857682560587192541511000088796693758561317371751640766467625065222082263295387283209227642918531848806971940526104771223067875687434723219614222103239235660487594457092775003083817800030514608327263942322673703400740166163234142840294787328071911566459145799208194536190233457283924740018103049242827478153503321134826546566652515618295406530781348181884477055921188383299200421559585329985172589808758951664752891778468468307400507392827435676597393262008812434119113251205875972860108947236989491045836402871790131454117841769183587495973365417884134060098473652899913323556605623539098869194110161338775310739602363325265950237272102681497564511206195566236712857513964819969234144943211152621208342587912808386724895107023783298402588790403810187909153374855273875441688658629586251256562942549505156666178848346959101349277497196967062966704681227465432726886494952414030846577120454932027130107968493482533304684506803047550221594858535908466006838484503192539286140100314000789719367463220619064938194025410163089364588996899398446599904118931632707045550546845166961366500459925527786402635971087454206630116873209914750083037498526774433743960885338876185050245452375116216588319212653712394021070541120945569875513947876184635460799031186084082035143584689491830235764037976425977149746481004255628090540987887417553234075244173117329518744766388444317906887821723608265368555214763985521655009824065146360365336511557847139070108158225556773984756486884551206715833644157850430442388281474548000805266555856305698105140608576580506173644592801771233076779431316696414236901989934318120757662067251425159072627710587414372149617105888209973386209082344497915538664259952293529691823503914153514578271629853650080938117883770325627580173101504286461644669357704184465980187307800465531027290217756747104997702747208463892290670598715083727447792035945712551589480750636373665093297372387763123947783375033797960837094980369047276107875052405938440725349664630119212390894709112398145584023552670528442255339595039360142754467900130384989251741034262701046285873151896011444617432128881972797273725913561303002398206005811784575393819320180652635596036259918847646530902590079963983182720174019578550551650667365098659362978762989419428085768064407025762263513323795241184721898082881242864980528206133258116098772773060341466070697979451659214757124957531573160153176444464264568275510726592949312634653545377394552784224772408498707454338996931014242098122580770893893856326932734048351723912214151099013636588436426651749957300805674752610263369530145048996827119085374393803219595485812386473803682275997354208990421683628055504287770588078414877224367747416590155771868582356380367693878547632451786846383500045585126049046887893518804937483194887198626536516317185682354454038093322657591689344415295554212801390462069399817145142043478958675525264678605017556774037202030983119037424789111525875466365981663504336359278459563646355168137186235683076961501480884477219204269627946167779918540951197934459380536300818697893371945503321352737841544462309212763088567503017006212692167931638919301902484477477942262853142479631184068409768601531673139912805442330829403670436054497320688458535555186910849947425155538286763952156161700751775168855389799365634163735821786081967086089100421010407354203847012047305664897877932184722668782832659124071270373719610042248141836359873644683438910830230258289115498098003748916982954111038186938414016713470387824946771405369417203391930029783968744331920817535964551413587232278386385123886630813276926774861695714387666769815009117365972169371201548596367207876192795260479997846762129795476826382469827605971824502203873902049534492826906457333747036409018403745700810740329250531045755728042810594220215651537159048218917627179804510015388409554048631856167454622824804504632557126422250456654926078611089920888902227196049219071183771997986775253334167683222517964465955260429686532075004914532221333849528986028839861212960929651253837047017725094000973217320174622363249221195389634724144556770100931801546813138369863106631303293048140542135868875452417167545130479134333838974467858944819469806519912525404070221050938388851027984551139294217651394734644019826476172656915486529763729371582157052262203270137535822836145416544068451432822993902154680035181668347996885927388491697096385334848889165882810704707720438892307692636856480026681320054200496317118492437859692478546603469609964863675903159774869608534515080224528230038339715954937757975867055820403314305690136486498331320391848950284006011778815483591875419595824149623445435980097947801951416497135467841343259682992464637539592287342412742948542319907274186000090029589722691511371463561336872841154452514255718955262311567099167574607863367995202337594217068806735911530887052369257915438181094021859729441621241411947763475706962549770405628544375444643739676331007862447125005736354693516862410147421207859315648120723323179815961177563223232159521689864466551554740947738417281617921475019912194531618880499329847017341919704054282609176825173628853598381435754529549780050924861585141296570529555669346842200538799347582415129938662979550984339454911558671204264495653914553931297101108208408826860015739011554123943761377061664660252493061304684141255862276325367042050556077128637625250624143982561437020029403954971044445052467046503085741614539898032172005369850273990093112093400231121777504076265100253260612969461502550984763265745948998083951406830686575645232754130723521517704090860180303115005678538856064865580967780008953721544918652014221554054603091819546814480778597120716987864798823378614423491432474031856056807518838977793826853838948938846106252822947555978690733500470748175878929145594153927304893614482174835982692768664671781734413929857871952502823590919662911446232714607197234732517065362893841853831276524187327424947175044881606093957572652809868446739149120325866882959946667586075166860662147950313175964606297470802858190316717775308382011431288332510184991544508615378301261257556942170653223487968262724886240463730939583244343831276333055752472450245278956642960828351936456474940649687972264992258072392817843465199912107091244421168144356706160068713117265626148311245321871547542549631566429032633869119024221282638528392808828748560999844270236908514757275048996589046154257715707909158452481069457439999516233489225874605270882212299930833391555716469595147836238313291325862033922294304043625842569441109546877517590422677563495131568477855549147472965808917361888870730385373966836990510128397941527544769770049038480386906953300350030045759156177424126996932337872805592846873875501376970126345279697003030764692956778096101881325822511188660186848225587861415125910362074450278893994909344011005958757042000479896229940324383963053170768110431709089755095231387065823035889123782897646128750621781730628568143184341670794823788994533240750413897353004782125733504314727488067722796630521065251552386408691885098537905706395899285768117428807998883602368390518806615102193852170679785155758600510599469976883637467227491543262597007433464892296461024018098382138108939905086169913786063236255534919761503350899698403512799108884786292274436438344338654488768142746460615844480542574957949039409924405686290962214382056338305854359302104197408963667185314231971096936633046124537626735924930804123704169952247500965959228222025337546673257195671138801005671672452557475895536825493875052941698999102202607462324088720811542148221435961373247456863941144420715277921650895741833153977795697189002154256671057768418211239240142637002374709371689909987093590888221836725168557064226290309763059920880770937132334417952148292289230460172050203803013444382393388072758412832968116300654827939359881396014164458363706016682790317688491900783650886472933727014287347483117689394666886348845771119476314088269310198985816598225491097404665072960746528577985105063047045212121493402382389708403355873132030067558242444151934756659048465282625466065102232035045975079137845983231251893784903770545847915623406368919022021656182804671980236731105596362280686120801970009116310400112077814772622124030976150968587589857029405444131960371712592096816359535372612310042792001237408488402925071009184214816195104783305992153020625588195220141120899044741297587223751892447864231768281664548444784861097621901199875437344327387239715371538497791040829597367362199665849444065281590019838686098357236857372227266123454640648509161022017755152152840874528098947671388334321624344486553855012797162636947164742593693804810181845449306152112784007751133637020635592969521784529072661822643529582379045199839268263787895782487974165561479626957045743273060161034921368373869282808786464601552297152802330820914719398578372073943544523721465993145989145602462378650483049560425594625990943964028577224723662584191254526047984734019625847144895001576989164206668430105124204173672998677581571192853061028965375702605560976658042477513705248362385418884767234315694545206346379288505045516848575704279623485279226443929296373537788827213500606132857899645606586443070018310915732372661226621928914847027212751115074724982469750647157840250519810820630276834153692733512677175936699381271665102590248749503316023419053532623938872257342087935606313566030439861307365226057769300675476520885281692657053900307425724995699043637536852365684890411636323825293227044144001184364099914225353011438559842321531460234786919484952424962752624477731022573512445853496677727713376110244696458889975049250280194175114996198592780901900423426389566602290954064134467005090758112014443503214232444090659638166140983325606722444147181985903720345576315332988154910856290220336988592575047287867347804998467217251948164071666018426533512649382870684054936356231055637689766541059808685938799753934521727341488727281277986526636812256691907210438672556166779671829115607740403572757942398720366799326802540441522544378667983337918930580547225231401795741472730649642049764454843061396124414387566475377289018396526313606793555781990850881365430770181997577132552967220440522228959058521795285898484960104338170102502163188979887755265612293571241582002958705826182765089163494932287837333337535460651810253537089966174967558662099210421056461805750632632552714751053593217030503071194551488357080152220502743712434122184737385500373030642275320302447500712232425538610604007984376736026590830708812898765776698316306638913047553551308899995887583497217813944127603141853023702950224767951449839003381936151320940124044436203897448736231932632973641869491363088940897067666813730898716926600451111376900372012139902917923312510726741417792231825182010797574325926506783165398399035409637924509370329848076432069786633399024631434095087105763233348657235526253447664750081930994489245397561603914979881378880825698991382478823740757082110747243824472432237845064716746997067043868233083772336310415127551291971959894081338856271968809205931317893591098140968097413148121921483394898988251503151277888434968783732643835264585496656996275777552775939440151291570659428419067401402044868344461585395237351568411960158521433430956381976201709388348620577368527345145593268862804627000227372662372897441037913587808942256986504420087027805966243120000624186326791345066255762754330732651861010868955897839738164026307806566128799024915358025338839304463970496352979906357070151081866328673147013121265955890014589201659142117746534276534481170190708346171760016486521727051783957285387538066247285298784154559947168909301407416830205156152855819100066306490716499623557380836804401633521685372083378165467964028316898026369767455250822087324968998849844455639868331318184964455319541794098505573685144916775499884686206759418751520285735881570719592406666981867135453767528724181632713275693484975068422084666231630754734090132384906635846408655842254513893795128195073176267539828530688223694279385708457595235450992949722816525835621019198575647512936889168834907552946856869958837107699634243529837726782231586620562834965250484660919098076499823528377657924814573872702037860444973266277983830915263272038396469138642061768108718172805290022818710260918447358581322917160759436224561770321473927498307467577051441716156836175680038811050367569787966919104532993189733905771252144723078791258028445002140911104546343826736329931189584366826661656407665039239641009937159686868751228779357713640396629428628921439046482799340123116539432663118830751311523173346167829068388271236537171110866428503579409433555299130648738771499868806503774384029315200341660430514847635888152512663610014937544772614085271066655415109901875208007708788898884264777014643315915008060308686967714700232316600641018924645018393662064727549373488768556376561430508764307990668068780766432103526086060860782699424267619869535425038924347803476169142323987603564872794132525144812910814561172854849073294461721729363168338418048946238763574676028934380950536554726959468033657268872061562212479924960759570056747467549625743498802569588973920985946723584522354481247387047284789815583527370771375048543703927372199020754012914463823306899036851397761012646737316582078775813385916275456543785612682822078438467788131706105888609917407628669490500569054521930842448972605134290104994375673567581354294774061008314937910130776682185988847282356873886049706021159088429456211590376944680912821522056335154303963281221082817496704358789668162434625691105480362434014527800492787027513340403434669807093938316546458547799244628028090422942440830206865520767584083410860387121950913627656709756865613962814694265608304391022230673809518357275599789689228332953962597441320018166695632696868699343411640974772611102571673854052077706348496645372140817326275333772321110732430293498903439237476411089827158617710721091588525495651628750073309667511042225416704038148922676850018111860100835131179421167573863398369036299535803480863061728916193030975241528584662666828973690563862198183888922310173428694064321379072284867265307500104922872637259195014664985385225932049787872435176631622941462117344764607727858362378269892616116326883183816363033562072672177205222409928962277231816432192325732058814845983578447572153138532940188430944978189520400471980560118166312450128344082131985412499191641009576965740677727596883968184489209661463430090356308944830802838877691696341428890284285940370400187706269676958133348772036337185738211828900786551545181305838859090604263851929595845374767034056747338511068019765230330922962539622028553391757718869788993466564579382156589351998072202088901826218884959784574919970455907687875538546578529272589992231692500815435846113759006045313123533349812283069300010089435868010592612732098731898094386011484911628056445528825355220525132874000191080015324542576549219770749442042625572392078423866092714497255520719647051054115223829027515155964371771881827177744537395508563378610867306035080873568155201976512160080634384718246642773696554832754922916167503703664200324027768177515224702545972981116484866933507731727194879923932431764312751793265195935755351466648438000424431337567249547710786104329048748666789059409644970759388958500471859658474237367993506646631680660485649376474216033792800618087677833484567284222008187741115769327604764440560634575315167697821549840658310787656665088350776778408168678935829641621684703225377741456818437746309832341615424727093561531564631100930376654828199834031689642827931048438821548885031266784295093481767567260021861350635091082312291359172125413837736685935579625929434043505490289613035466661608624565226833985834984129137147297059483552343386715730155302608437834828871583369285325843529027291723640770785710363505092063242055406417595575070284164135893959696767754906484591912533341094217273149858718879291164858433126016653522011132080242628237451400890449269236895016678862285157648218625069888616053516947491357319200323862518196378832864878791252340574187034696345270635426032314977222655686171654630867406490282837387509242415898999916739146790715660134931378908455113408675044995085248966762092250455960390115152030828921479860066541574098029946062403975574683078560403346246589544601930123807137284276279922141560757470199431089959900916815896237666206982272924684747336683953105513436513631118622404037574597033463231650223954758955239468988554414196801968879575249651995755393780665685978942849141263640801912845754125249241081932234947409852711618020175385448219372130665457448505831212186290906710082227986899243185935889237965627969683344382831991535008549898103563467930139703914005342646440181742202270156536494952919808519151563009049649207262319170212069224810310763542979897575091510386476619263124516149472045939645357008473152524160469454763325033537185563281057004336681783091856729786887725947770221083622970245014265461440014212590058729298977105155658360422735956369293806728708231092600344840638734098519240593311758865459533102942643857960722989612364123518416545046118743246427513589288643122856846482270003790964998571689764042074699246037444637701738660959914785517715603451804393487696373532677280389321021430748066743388787876634795606256603575120828692446438516463800528959934484691900387549886241639899654374911708624571955200317265592669788637204063459271710734425079854426536499476958866850712531810132697183739863985444918834125226619273572163027449928508291799712378912478624784908163819837256452741235125855928345774571944693991526006111604178261125754642788751473474624797930162938424416329874876020389765165676305230955400692691185386134711444252694572378623962808854975423687790986795113118867697876544894253470248861348739462018374356294029935581700598634426837491532183177632838768702792211246457028740688310763393402170463814640307032148458759917500209667529238287825480863675504262147453762545118319605806450519029561909155138969234775395990654493601251801382494364175416565397329942844998449162887669124246790339363719863099242712621224947515056398706803248764648719092547278636390210563893628971547466672219282189545153419026626893970222224510961258270663014114955665819801612943690978786088593352529453589568992796747280309204488573425512834994019534241573123785170858300985513292863020848308963699027502517026003303911993159790094046335279512495145401114042252342936104631089836415594314411136601382477170219917467556875695392025519177073123669621017333690474037935811031638656322123970712590746445108159768140117864733505232005335024463709224974693100884340627929551528987184180053929905961958352266140270159510034714549975823790586076877038731163942387836221297378189419919957265831596117329887756799378419050775646084543322336536840699181957198147843494760670092043302097726810411852980022641142042585354841743950919403534505278216050930858844527568236084316796144080492209784259185664486004847980642414150467562072486908297356574217796106230508410103904073258467126217706655300000497776662132671045555258502863768344628736210581036353219201552634302665060325311324952758274118483843745736017019737382287524124742889842939398512854475798534744309165108212310559415820808452926646172304276292873922065684385825058957594051802443349436706026128555365213258686315009147351997442398220747931488560358747346959465343810342859542636065896415928066418535120840044339246210811238415664294645219282236808537655191868578207275123819905881659668166414579897920322945003564590269228723533555019368987839195287313934422394674136946478515735402692765944049105736011880895681462657397295558897389837658467583399030704669471277081507334826935976440968331873276927077201745660642725391781551033967866323937779373484717042818503101045267087455320065400730387239630835043284216270949405600612005935590093146558947201959289560872316942233664241441778642560365493610561645240641586459866254609303118886693067605110787964689772381602116908679685180989458252332688679178868183623149962957472624657443160589180738210004079332754830920138549468988295719776710838820346116198168641321040398036208007285647061463659676895892612888352378344486260301773995654238526812591865532793798671185653354337570504732444732047815213916413119872624516870902275127567042661406448426033676796572344645709404307431074916163466928645173484806106433500047828816525957621915810687731406669586311716033178117091640124350421420033086163011719270118369677136905289661395816390060222879597948941976065351403836006428809959265559853005262227472305552614236252935167772252934684807240520654895186252412456878652018474535723584173350895152569982468742784534813097699039895624182711583691063572067389722377145709424584705552303734619864603565222156677329993848950356217422605441708162293867868296594705946430510144359872130613641460374367857648878710279886442995152788930612136208567037815546720744601388021893226390654837639254681324571706599503899130926127478725587343637169817263874903844135949249312763590818314207880589541871613230837404274706585313172571918700071692105827434970873693543349108249461139869567177667990352137619722511782115567431349055656501661369091652639148110420483951055269040046322458802857422957595144782107492807221184858447489431551287429588268944419111948244429878288059211857619242824707438086129174178370498622823510807235307769509811435028844895831654281487801572459835393174175209048935666676201882283961280965804958160606036458538539045279500962786656415312782060670486356898619368139168361292052342412523847872045365934719647894064565033401103720807174500219937239464629860672190102168311160712497046885268599693709819675293871556143851991800062069653904381888667043552069978119191769390959216138485836740552730502731759421130654818748446262480228871395243955776890996348869641969673736240391668144948773107675811333298628045725570262768211903688118136608373584756147009795603363803342319480723952177768937455876180334726525925049606380803493492676927964676175661904304087002781150794983032847040318059854118283134993495414900760224967544631196787803834667776902098644492390160983822264664430243274189750740519270743980943643284158835952725265317361844645947153040681266085311901074564981561087277716013703391849802687041546523935805034063656748520737235970782986122794351186559043809198685140168772111147718999769176270508882927324794452211551829526392668048087393014001032816097341570211205617327703903991065405080059490371513560556357166732058965901668767152368543604589129154792650715553059670468725716734387489938495373712057239574780566232196360629129265612822928521228880223561381086281494720809293292798346943804979874179142987933146637986721380592187001750003580970856753266800904046393260502414273420350205981716182727241661964305113728857901237531026895076848991220467869602418239517669443979191923100792802233866686166168651661970959915683588716168321649115420661048860979078107772865628740534735724776213041646673297856065392530260316808761141713502366577563486627066659987512194416887480857222280449544686249893981611032977929658008985646877016078705316365915321640540009426493753048381772014174971285192826023445195848787060145614141468386984307470316415063347909490954717948818974964085816614198602624826779909244587315899064666134074862767956425030579936117949874165252014226190942721764512194349599988407734554488614325784672204444041300411560331974930906910484110582774541266556029870252220021979521583534340466620911673504555351605199773510987838661970754149545377859813128871950616003155755648712174192251523071279621122207277503103625378715970314249679558633561726249999803683240473990887804480384242459152473274396181079812038622911668830215338802103777583519541540351014314004835167500443137614274480389816586543273592199421104591520231545026910837118318053701742249519930917635537892543785365512819670832790923942206063997925420241998060266777365477073301373047384982279776453528978373587683049871942772775463853822273770197361067272030148250309785352312709178856083564673125031413530073903274598686518654599561018315826477194171551513539690550990419342318015029803964613400982534671700125067090804740980027817837700704449763589172807813466752129637873585156519239981170473023251727136162614768799422134116626890029908380169528954284384497047145023888065629958713594761690680349840701444480903242368273576862544432405491960945751709484703258582951509326707671883109352335029363526923691385155568578304706229583273077377024097151961484345758205352403634191599322717302234966079819090247676974547054552041429314672387925455317708780498502171079855471283207808682052152117046317180193180433493281024452095719655825757271763307737088319401182307370964013514581279622950374876173404635788691672321301311171627327093734275688905459070784887416454495272817115995149269856799617583163078212404720835365105824631575311211658753954868326270019620991400625952375187475906967645365443576830942676029205091857383672968692358542597475080695120089269576627218042206174821775483882625846148433368387359306060159440911964450565968879632413959033788300829606921194511188123436190473743662919190818241689080063930958633976585826022633371865657859886611227436848827848689530361138136257222521763954911481999616174771344112595523179516586302331577611341933177384195686044284721224636855046706465956774184512912910169883149608651993816682114520848859339097583407275412217997033355056506006971661926611864858420612807277431899984782673748666868991533875855967120164002941068435806055437485533606991461431342969457042038724210409021471722035726192569187780934120233631606446554041211695852574123927615048746636059983667390961912354685990569298940535810737279966764560851341283258723222880992736187001533130230192658762343191415033948712744969751275017138464641469378637722202054008974381798080206551550263174799349113030084702193089584719003516928595910891913383057598200722902977471847860569114335989145774560959059756617867265645198430839196583267876787160950847527025715449970422264145556929552798356764891492953746314556872565587867749223077569040661118989787826601019198965398313194227526188668373477790418467817802831904188501045874595080005879221799232644522206341003575865910652856687664284525380830541148344359938913230589477483566068783803343361237030515542509135351396526164552315127916646563497111478321295839083320114058663925959813557105539333987298725961289905699278596047758200094745379215096843967467827995394685111862321792207240422682845910618248047932592043564170203981639684025337315616454500364639932797755527431138849420225434724683767581270697229615345274662559155101932188134202517868660672451833775803012119814468605850039421480254966068624077022686233288564888972241720078769500724169154435659609330567946353907554310477860134783059529025564975017342861694434352117861443676825236228444583250238244989420142878688831674589441174392271432760989967320544958772909672340657122649750565731837973410730057099924323294350296474765241294390299419702195311669663535679433372445869625280393930686642697064093678089710658303646078375702435715357625711276440178002058701158548437743941292882483475830837764593312374979097429119259030545573552681772239092902796843384380561666310510192810785981623671449167329627684367232870103272590302106240364329944726031303553482467831419948270495541552243310357261996917168843616772833011491315671553054813532966159169799272831902144716932210167658491404793057463913633050804328058208991096956647652449887160993390816091445575692041492763229824596994508518728482956280630112934477859794305127499768701098969663351491828202330048830199642040124912387192043846127304792066164382725595791237596987482547755250570492496836160326358002005809522911476103462396174085795351608731242212060205966836682373923234008255307289466891297556966928877811325732602055675741809563160610986317226748032915448295303398293470414934830690691653181945425600354281406253924978780886416528148758910680917810370907804331653626437312667826534731203200479062866478327834409657405630129729381420428997005971802046566892154352328877956943436915594975850794771916308376600730844870620798636542283678135929491640191682619090113495193299293231451261615304064099685694540313722845784284151500238718560728895306961294769463617802963679509211929719358935552605293038426886736178618633054452628808696526910908818659910886085851411246345545512323222005562757536126864110651444288383172543111206319656359543492383478753097410450875875609450354201397459794324819737043383831584546404990841761663184695092216045538716863474912798966599155161891241344141090992410376507386445285613489228275655593157423626580139669928784925355971480173668447948834150041227639072557144534994345074324698134257626901887447019664786959829361394049660895042267959661983895675074056202203222167356404695930323413358998913295820525824442225342139094732135140933088462826027133350547301864445519707853017026458663615659466694611633740957379704213454981287633301790923930803225104634976452411239171539895907673876312121805104899623573165214789211323314714930173778113701023586207632754831913964462591798230888360697440624553030376879618016869911554707820825489343202861187572113571509289520520846623962317760961303823259722085742861404245890069457669212439565083933706995213552517551510042297403685724146991159970871177081890633432962565234442779019356727923771792617523434907943726686331119342264232889694278841969344090128261349613133113200926025175785894738249101031450298418701475851105376278829348492502464164115746967894771684925170506526865218805736238401278772732473051804718244098024631692417792216988973078102481349133463044751474932740023188553042470848118295916897833166375230617812527695537801598286924710211808932909632617550387246276986760230973315264986620618652103899934939019512052842804971049825215030547107267308395103986111061700374760747016124348902658912606899995704071229256152965816437192208708057354553751969197467343166470758024727599998924376523161802738051958134860455788715023615065282854226331143829489531699558975277108681703071124927948732913260934636162368610460968314359492917674605690261173556072258275644896713248312453489789368519640513819440211054291373187804966421680244836514953090421452997214578780511621762705969679103276227841079408104272098129649397592540678638064703332482457876751739489778099257842378268401646823991699648418682839384229573002489857472915285492138980761318049271852515951408142237411245481976459141965489347867985564616612364121167291561548823827824098429347153356623868605046518661613919643538178029941779203549381875755435412685122898671466785649925431899972183259700543580538975879416051804095019181306928652044690705050667149522281775048446304968112947955854300159624685536191267923993375987445301698610934368897114382162872052278291367135712439549261130442217928062287052160129612491746682511922948092639885773625744324880512285110087320478690339418065494139355637459299217854112825585927391024710511079472839765218646126071445834756566256415091946129486987895060108076010489125432759649825813181039019059952027008314098099011041055180168343638179008112716634190993248041855885764102347217433737430153212126832062496477612619640416062075473566011079537036299419425055819738476539361597083759144375026175640466357976421357514351527162988297971963109879783538073981234273890986719184686925724054193532590750987267870470673050210490040354691439110984933633970441404872013416720568322445160353278198157595784942849831749246162007801860745966345246140683535161800103161297969359983456369097142852161420136440871021254819974871263466387706629621697869549539262054000187785259179403489052153433174621387329184152039805473976414491939155210948512463012484673880645693690182901625068553406966862336038490587454131776406390366722593141897740732238624499428079711908972670339062074620011262338549786347216020510294014255692108601081307570665023416747099454670334814953303207265938130252335130952763945090773472685896907483510415884781046235709208458835352204008414807751274897313925439231352853637364281820260143390823915659136676137367193469288126476356026203138234807394168819121374391645924660439454387444489671563924139066517951813522762769450712329210003189708409104742984112745787154978147237365325862258428914286212350085379828308126684574116156820374984639921532367025507165659960308275650044777384390242028724429986217091832214810102506365553567226309503270900463112194811793680764033851601449632557397051149616948440467236774465479982765408722355893512897152977055455432877024302999257861361807452858175676048458529980062438565620847573869295156679155051998691412996756904748852071551129581090279217486433038636559201356990192288330426799758053730955438598952215122945288164294294839298297527142472119600998685261143738592876740644296775173545047211980724421787121614239517017158444773592287314264671986056897420196947351735666868319308784167410893684158339916499609339324971798508706097358198862137115628962268354025862156681271526799889608943594408852658767430658493390791336086362725841062978892925889082666185879089305024109087580564032076497719284990429538039874983712715468021278126005150601884229854136125337153357001614080482520773964497695711930005226952430128931662492955348319024340267313146965734257006933315951006191829161963501483239862237817665587455208491797123769724295200976100936263826757486492465299615126070851188129363593560645563585041259264021471823099530854266654737799794786417328537380645794933084139146697892420778054351510497108861819429705274592791019939576762727613508036296681912790462214599806092423086209141758586834989487720050587662820949734034880485868958281044549247582662369478972656756189545276222921297468951256910932357161082605760768716696138232960673280746594251477610902335549562625272993376335581783417136294250960328044445914628243681858815504632784294665346863013425740543799535420789114952570177659571708582528751582172860542287347767345698739531601169332695715640477393852199397421397221015345116644928704257973912473791920408422285325141840339302589105149886947619327897252618157336450996984675181115174671216959349678637558325554923371816211104078744699954476039963653814678515380710505642324271791429736074507887356384085086901247175832466351874590138914649738791236055170472113721285029631598908641403354288771135484031407760897074114014423866050155276862752940437476805693924663878385947822027176993711097996285606677023657176260137580746557173298217152903362537858103893779269337107212427507041680406671771933778965863876464675519085442391153140652067087829378374672803629931370253709365384102550430842135203047320948160189023154590087906074039220462776112212016883757381874115877141592629045183661064890624428197027008611744386410698296655714597098111347674023534593307701889221524983397671310929770971305976414163656208642342643386589257829185151879432829105236636128803358927336693891839169029382193625411762384535919722145968140959637512235333702696733030959587992431738587235578739542114031931015270334147992533502997829748983098000248361174459540838179696644786036400230984159329155046914792918067221563956443452166158734221164904909242319177133768212853512637302064402482603231105020284986982294076890581843276780310846011643651228549950457956314329457907873015169135804644822407424106088515291802212376558722407519108618259321472347133396713460899641313579761752217453641666774884991463359253848749194547423663629928790416017159736777856921648608627969349412016147764568167629088647065064025828685316325717031212200441197927562104707113612891173065483800432911136391313796036136860558368660994843677685580546095456897895765420847664371751759024350420548727350860550924687899447263609521541736668301742941844163698386742780858273719248250620235503405111771240234822444546055300782144903682595119768113490395979181306854857113154860701471628630974461428422946753966563791866016318088509863869881218214274459526009560413615852605255178396212527894305429500651182829437013381595030007913801058775339604460747463798371833399179817843110921508418890401181787093665203447949142052361716929273996638761225516735042167160764252422108728737256230740274469501985246451228490442910054729188960826554271079929308487320472957028864352605901941618464379478499411189143725180549567934867894708195756782425064604924090394743246776238437500609573081796368337513581350865752010675710432360704478456600497334491513474196528508772971288803311313655472604126947143013543141636248001567531151296280494520146249123493585204903731339346524324549543466301433652629350709501143683004512010521952225538945645336573764983379988914922157417648672225918000662118665212947975017080021853420224469128614824863030360970462546511694869178618599338993482952322962856666723065247838207958762473398890423263721381765477991309006567431167139544846801986444716831420716369044707459163527062088616231135688369662033090862654839941821284828470381564587519552311535840434475636253389499357434271476105329900500125090471047540011014994611649871410066794225922989383590674444579938883689643653733905509679554953090396012563376833744853043703160414049212340762690594676331180387165316354436295548777547698680335953488376952661756193234804872374056224671927357718560804396023614767350193319050621255538491058649528766978185174699811295219414509038479533522998167159742870642285710296794633375400795338936680038206776985504368109904616806653334312088897907786261748958734876602424063993957313035538429264545486813150332862833044134355427154068501833931039152152779351847234189912999007929219879456024615686034067452078605250503763763112533791820956310709899357210285811817760402730780505785312242717654834230036822451662894961075189253395235427460725279564821850702986382508728698314029969179834902185044267821819105508912871049293122633028793895002221563723837126266009867793015655392064085033420428783756489505290266766958127149022854698883109707918437956890140946716838658203332771006812935403512320424015620577667607328143075634863354922910764672886237052699292815930813429932022788545036747389037383637787059633449039080163782038996842285241948764613686556600715865650312801540902056463855783564645864670746100021870143775296864820269760389311085047907434412932493711311489987166371990944425263087784563041624823760107489623353696494105953919775955198111963944364752751562322519152211079320953844596011077144006040015368563432451000237988843028579037861052962631171336985511396769713756097673215268740056094776859766945898030966673591433199024536056643679908859352875017991449223586839092512217169712638266766732493343925972558746434622892687530891800501108548103800814177772414754751644563215668348539806096227911158990683894583817027460728813315470548899147113364141031043462471047303866235742454233177803131188618358151294031783913880780193827744242793358408331631811566600985587902583946794574514594558211295905554921116118596693570921305164077297654474035866691216008365345444934978259936477571025236260837647573084640828052222925857950501914149941845838844689186803761777272691147315614184650766244885431271248683068773859683743358874998895640866305659280659131138072459752204097981687138394140318081470211410863725712112955522747353226901358009203459595290728024064692856769695342202833001340227599352353090337399540734475007897616610369472955854210816925419770491549723005808432439272647751606800953611266210312387646528682952876763693526033176011832615150584391519540071971879174166759350127695156437614065936792842810506764237854150185111753167634398720051518715192615982759968691818802989668968486389002072995103484676769975111663323975665151929907413531050433853578774554677465332253345981959288104878745912844228089129936642221942270831555845983999388844088069662434728470019310004241629431800177457178882456438577768717657444711395670629551446803894155994977472732041134207824619374005380460337229025253368619652073130029389179007826484627462788720447140361422954743906743380103347224097812836093340539876602178172339345642877682570149677638096687934413267077630156690028323530933725734857600805705425263319947263192481090021855434109026567385337939116939625756339369614800257978047048839694429616544664588079739296260412619573579592754357442902405325516821202972286308739023154018026883097561050019298203883336958743398599672992502184884882076658256872202132422665491929657612665540134405922561397427317530239964406164861347832574768898392299683531592415041864315089191183176193871595155503884217163521650784560851005406926373251005651682656938274279271559366976360209270593497203552594464485835979717565218327788876733025171695041245582844944189737562552733547315960239606910754704742449746832748998649810429886921421375768175969915090138879506184894875724082957362390071659248129262289774133096448246982399959334688927702505044174564807673111254204452126949674861551911110321714088656794654449599993017017857357540588971232298493760923843602079292127989581357034219596365508745133447035346121645800264349809888387954162054475235050767226464107163022991627471447409973222122671242547742875790850867973586559892288055368887856135267407993160358548743031691025452403593511269082941803696309009793243732714017783988643355637257194130111710390312309498616735947293945586325690515128143817417267018585950205338532865324004642522210030456789297872867311692017842433950549734011169295801793400152268608745381568254230132868320449855697977868101287295462782639600923085808940059689141117870063466737271088836323186439458526726065587011204157439743818074700967444153166626874201517891968863504818116392745115739347075694665416674828845729362131898607161150126272781162353301431048893738603781373039908491782832297209483533494636504351308082539912717596453527143491358146353483515593121811286341489000748928639578370183819684221354288290497891277761752883816156098572664169368836514652846640622256550160275737689790274630851428196338627708669943825409409837977277086843092151393525901936037274309668568117135893276418676530495130514046326327989136792912542795821746229824442239692954011010499239510411933144343301717144030371988558799957137008410983064446962311635427020418110304593673289199160423677653105262440352181579060577160441656409971300646417987081025059270162402546572163843101470836313385197098631544060389679606240439883188979880930029555503651792431658324927521683933314829506309900780720091691251856254344707049774210195717890744485473198694509625454531830258012413404358614382868065647744963602792727101184186542838831522793194320547514099483931893778186055975920253751651392941741607353928524099951072013791054108896684571594451264121187628715768896742862364861821500447115271466807750535021375921682254884766074552078675605613182875328154756000195589120732558128807619008009059909965400936035130805831333821649420486186885709146460600164904805156548344433386499023421542488632523483165688836867584397034892981607586611861173166311315224773924841681873603634366051713673466296169506937431827059184011995609927388188156766883364384728156488272425368534353956194280071516027537644315681623917113389047735531363817722643175795487290004872116864789169476443914040172480866882869767966142579533976648650526910744898281288508430114983136500695042109494384389375169933723636944677549824886377036071449263090211206576759162471161431316481541727594037536702893591911597707076975671458608133319650435645305442976469851135903602388151583026671956314676099724657395757437001605216526612396331591798308612364830853710388405042036518179512460975228559470954430696028864215409607868866234984529916934353307733628619090597172375654512662145411775422496853204648171719834954059937978045540922781161487067019325405986613243349874164823267275470184366620613886321581949809041537593518427388431168088314777996474605079585044222072253811707772452291602111988293411622212523408633951842639651777539159193218154971454692240739747817176753845748098363588680913790364295290597050897495410688427896762201483996609506151942862206979420588180709904635258470876333228672450807729894768143604754525772848938372911116447269133481913658859446737705307288926005624809772731929986911074861070532722402382165949036082606914480440915664475981680552442838989910249714613449048002236266069865940053010866836810547783095015184952921508049868257633289523545909924976477355624118879469909745947025879011080795038169724181848111256255612421804331844579636683039157157972196555645637074949815923140444093410670299624893741301596411952311627409800556749071513687837604269599972668989555737993635506402588693826793272770270783795736149429463177047641379444390471735372551755433465362943934481370209557936000625265869072411639636290110374702807437891672772194077542611405119548508194208678860661206591748761078733445887170491592702120832133676211676699553963157758038131450773455918872582116766181985133750341243503274138130175963349357175971634256069272175606691580930246712270599907946566355008184911038029507220305216525710872439850456693970374260135001037754229446822250463299618653370906018748538137184464242430434821239063144882904558528104014174968304944197610920905223955048639659801589693205087615413018546743839687185145312365464991303015770383310434230458263887670814151287994323363716675816631141226324811340173346588471695555772578375794449600447043414461309676979960049317176447935507323880878883982265760676720616832901448435500391169596417927809039557432201604520156891693789655193723937847653547373900434052231850367444295058100228121689998337654167327751774843048427006069094475213036771172750322051997274343768040681968226182290963379261438271584718745667191631732425340219497977679311329736948161812578784241542036604745965825665599389013638944439504109670607955158065704228667629787878269473790083031050483035008021447874937359811290865062434075824804294127696450938056751382702999952121154431756107518996276996192359681509578431153076651062610823989035240362552224274138341382009126645200325733950435323831969039662142995293129939836174502541842282425305139651833926941754465199614205305539286048135607056682457323205516833157249413632349197729283191021362724779494308419578088399500945350239777702906250333701071588680860273413692455247968326570150603577794050244115617769872166652764126344147252121609158794108055192504407771407042222494164428232862443060877747711043668334844084835828301824147430833090558439574798020908930117914780186666738883784607575259986597591485340124794673273287376371662717209214500500458250753256691657452666378924492908913831713527243278952351717177309757079860921381985205741268123404735539113916618862084632606769236398796870800975949168984818874025261595644870676836707809540790691104653878345220535965778423730943664928135535104309224358561215419940615725816085396078803768584763255993870473694144537650070865407184030141447557443748774339217476383879475952073230157057576766706793903727927638954874923959850756320139042055478928402660977973773814260587696770059134750774992757823544552570917988431916296778761501324853071584407158118443886347517813028989893041084319401295959793726512382519725447246286677089571996186230398454710453085972730880623136210761087562340660566373119079180877417682170306160651122364721013989467201753425607292721729731889337598237677722269190945332268644555674887237603168506091165052830538258063726958171591777406747172301361576803330165573438942247646769175520554476106995261216231628051455341784195498133964865422974067303740387771948277042906770348457675240218877788126361392624382825938165664455959662755017184788526762330108295240324014414327326924673719720515800125367195967053316188217594628475281846693033509454133710744648228621141692804247358747483414615753164404038313614961956546183497896611053886188747020037930175790634838477944189367009797480130082725701858796638732050543257572049047337805624899817087250342844212804607339778933154593744171174526611608425913416189576003979432550083798531626220169222052975007176084475397949191987082364911601287714729470109418420198479038023301401294163371919348719379553128454103488027380361919775318366952848711369440572998258864266293506295520145165751455926727895658087670827257493359960635687521172893692813262055761099523480045211749024970431180244234350234726965857435466914093167396653388702859527048449010684152106105462089865149845777860955290033263448910041758978562704287335399384806759493597358172891996369083905277658510471884440076359349528468861959429263057973237833524021819646663831107771013110761516321791517533707736540982457375553882111279199223713942491825294690071901843291320700243261058677193640680274412057031170520218037189048940493132704963593552834446653778564400108264362088757541890483672543219705274411909021455030751407684213548426381494950329463193782654970541993765316494414477737342220118110161989739865261441997747036932218557134567277395989977497277785722541989200492857464393106778468554762003566575534075039757659602919367121425846862503559415673571102449459043207964269275833362970217552945827321581224445911094809826014604458318501115387725724381410459890109228638784579560298945405626175347717196381096862382777709516002885424742259273840427593607354980127884443890915684636053554079732039094514304725693194597786795141248569502980557285786922340455259712867889212197713126427211285137958211856230073546733144893309443124595045473855924896232114972602142690572158240522506055345133736383000756517667315278177440749703070802417806064111744557566086446905488630379038073686927541619978262893815324865821555413735803991799519091781606721645437072074055512998544266637254949248786973333453266212933413156909008067246693053509864129200660362597160006106038229310648090987433621522936951127827769982162557046416471523515537425798053881943036770171141804466441730807911171805642508648992700388025897796180538358587724126332817081688006780163615071245120233195959635271185240979770474119382231495104887362531410417996151694724722407139553260156364676210329263559320668843227600146603339412143052209282764426321604401746762228248776984400155999194042211465314276341025610999797809243308479085132053277183320560678343612429228893070297771358390865530937222538002962405130753053720100999050638437507987752103115476863524369388561837086079222185515129340035234118186464308138111654407750882356164696603589703420528204941758662678534951715513868981214436808949745957519214978207822548248019853521809183282366127055890142599542989517151768879133480609437693890611559104148765898138611501432147819748741906282338387866634779749821352294015619382822142767445366208972462456162799236208561567430781419750808615523631175093832575529240424125158086257052323598037643422748612507659778899745884847615792332357939142980501986891210108838261367071286189992718614397743027203370382189162293695420748880871139107710837809266187009488995311326837417536354500240464499963735818612942210931851947055354535823800127919483296153570126037471947384236927505221840381487535186468813034327131472507221808621028126546168665358211046703648162093565057468471089853595178581922884119354337751550940670055241543359077180340378959753786428270188415843948589601297923038344537829143224114482449982220414249672515925684189636150293180628153734556907068620617914838454176307156265430490748518158098650381125200623325898912982161136412585342841656741557139045058786219554107502576772041548064386703727502062865058318096093542987622798542112837071381082134229537821949152474080451393721832867164527285681526983136670491450960244863389949200571929979895187566567698224619526660682041274982366747254173406281648321755683515100179881633260329841711947976486100366342958063221743089985338542373657735352801028351114853882570162653662636277073149145752628453392640269513500497774346345575279631429613005007178185500213851304633821276417817912553067471149555163562776373453380568833510664950191127940738846901070736265135195949752352444766823008854470739272548166290541225201511014784877014098562023244657080279449528672535097748345293672828551093931642079913382392400820577147582702123827748564407168053804915956002901847106245570924356258288642457157610247922706239734505088688538466537920818382051192121621929170597849538639718870994787921211361539360513135465352940606139241188972957453270405587875999940348107304397194986127536457021967811764457061794054423583655802256596427528387291464385868348119003126124145531995014432127087467540396543991837755111076432818789387323607015077334560522469157461003275574699321475369518989493496492936245583949591169942939886559118473010548926515928128760465788912124137928043944383013016544387912086809128441118756347431093013946824364575586077463707287938673404566039951282227319042763477782512565201498673069537008639821632495681286303641428272445214622121287651534687718464792455693480303307305492037173356270325227153471211908963181201847947809262274651931016739098928260607125520074201906184057746790417213388307154297148122969028303568923308123212276467426939583361150418988588768253015770145342768869052463377151880247343986890413239501187652251414124401563920677815263120077103532839197927143726644057083482623107473591421036257857397004997305973942897191846568502381778249551657814727373076402250887332109691038527361874322840089740494804871365262607803219169009150230151834258723393088125738266766629272793469657319966718677857056379732882093189441948786013536407462714857548160850162088649961956180682262188502708741043489159426144675023113181693636168009149336590620806332883363847807165764900729170309971179654334118025250836905762601956163831596825326360078721474306442354961395228248322177448744135207559450164055818442742061361293212773552619517184304977458250245499047436946815697782479991862920085366174456285363951961298616527693223326305225632345395844932395226269400413250948474264129683266997769252089063628671936804678192423847638243203544925392993114065882720645593900347530450474504634040940363327697248475626208614043751386141218065904322274980750854262314128342522758910920818156148783507136387953610069381377922372780350064271518057079006639438432480304366444840549950270623354940156025213810986810682440424890615008104211903048336764699788820930895240907162715047058872076213725748668349916888282102834966988195865405287263650684807972661433591635181681839856930613556009781455353161670086839646755612289187240970965785797457786675070511606464961840584267722881547903049815823781803384070761952296255337474846421366503378742130033430129755035720489156912086012370902470531785080409757042937271048816603007193792832675053980012369267523313923417650059363742127134885142518160494344196204423275409055984376263375673443244082785802716399276963263975425835895100957564287057876663000372735294223542824591614363317016899488497374610215779176021701672103114908963883955451088325291199957689034030554992051656429347793386820552723676196102121942306209955621886315856807733310547149610347695599109493165712382312914709400273132840934454046155931302694732163437561062440196607370282626726710414486281341783002055251591091539929775171371446500289013908148037226497689408897624442557831566959836707081354863013111573512607494151321279678422048717154113999983320446543428441586214259627895516195907332896993118009517044645758116684687502500629836677525859878372261641559761742617319758839878995026683474519302778881803181367996018287060515896007587935946465207941331178825653385298412738892150468114714627596145269188637720302593433831738107376232098818313658798738630126314944474717517106901155617168370946097471278442323710463030650289764455263787166242812751276370662446194411969570373710175792346157201942728193542985390847014306880050040443747055774453290319096643950410799981340077823361227136638644985765261370383405904103116992665273619334754466309257811996029493008268564125708428451049140635818452983775879408478725611617055904676153509041673764669934197569011454051427953594264976467231179162015256054830248801985428723491302836110171792282648344559374604841285941840309243201033542840587424091034780730484557848467870735203864368943854739375707804684037472588335494346390696159715386983544262223638943785650351534347944426960079893963007158333135025505235272842977401247427019220762457118429110241189694348425326198803851932536337078596211619965893786013546721740502527059580829958993166915852745771913327625251035800148493048013532904194659198963146986002407557648874730146916414883429602965866826243745048017745367603647558504719690762705404906848786276939636984593016795577630150772792468279332598804416233208773785547383457029731712379457482730411896396112984768805846574999490613306515366217067729158466826907060761463170095344111652994741793635078155032160726986801132716609117044459775252176482087635560272091358576306755106735574851659306499979275813230615933859387137802390171437052768486054228093615235965794922083203196489828589232989967471041150690674997965714460637835693274920766144829184998632067167528433962891343407608526447508652019015413616745921202166338317380661498985977586395654856428393811874849877528136989024448985604968725367423777092778620714284167577092001894327093290835212238014109329318788724762839718866594145540262522495359048938373433610472037665742120945257879453594071237929616939651462296253030437119666595422722673307642118364026298458519849226135062059617393025287486381135925908044956366862825494771592473040301591723285061505696505620660401523038675490077284106802382737813688823696482418143517993719013140909407141056899221055395924236484155342921214876567735356397487619477126807672624322730750805361515401451070014679437115940330830970196038961866113560539508399057138240293747123957154169293605852065359546417874640240369406493724093648079182326406235116984044336021126978488795940962968479346986765055297781537545088066894668614921794714293460633410320119304925732087555717616408869616740950042027323746629630200287343681973067328621946284823481649629333733245351644977311355405014995847800892663344766514591200013718893584579035913739752716865895165782628612598071445149721029863259012583638249773747174878169156933756244293012736698645899842640895903598043102144939395417043766346702033379255706478940540591480259595132197415271330702714471752703004627178533122537512805541270967569001841281321705937131531681805674622242844578940412282015586700734794167924722136517943880640675641688746994414329769905201714361773573314169085335100880046469270162185953115873309510560400336479111117166222958472925509144265910256280659633887008401623820963752524961353270939634990696943680387569875248332338854998375469284437499846968648333959694001376368649953095415922880223335346860985501110434692174112623449094447818281417154878718897463669423002568424320913723894776384948671870282581405481247206738906038663263495498723641916765570323289182500588674121505729010895643647185773811503534513905518282322356519261291175645234748360860007320027170972992748915742477239370298210409820218896058454968454008914552475244308364784345121919619144460034512281316992982878438962785077972523219347760429421296030607475432603539845232439643286744028256467801946529805465901764910228024205658094276637995223184766524156857780399111314931947497664174811000568110471286173903497404122894566441613017311183140575025339456176370366537359928724156422778803440320401451936685588888226698596491547737510914792291647963630380658103930360766888367111627514402239437413730164971917431763114896406108928657033753507998235826099016009760236112840037317743787829211680354849236364558109014470770818372317433569590606798577949701696156191823628010104575570998609621601990241828151711914341741259793533797128690553031704371642147035952592688413922280541500789744422518472991141549438999047610663966796785962271183320774026907532043548218337017197953887726391992133544583826855888279154451252401674972911912989595259777540617295005539965270092222302285207249050481999066994355817197670654507624098631336425638334702154185518211622563764603687431386447756398408960595586899901018877943560668505294148004302654603891584156969270698341846621416058879078006329984069307209121997622574481550796843739617900015845083570293077443535380733930652653231280693859832118626714732645470413520315672371230607686302840283198428187631561625597368273875574490729307766872007729739376952595634573532223777845853018466771550793318508546517205731929720871423075806432172321111223859040282411401776444030754752655968683159701003757654603487534286428017952125598034506104747141264794184647757325012526802517463111931091317194049931503806388152430411723710319626526554047419338795517298719085832866172200178773030989026721163687004744996656239069595923802687964577497765560489969867087315008072927693636373850824154433500789581866688303382476614571625814582070528333832882879939928566289307723185763822053598892603841853801786109213013887530643325188861979133048199167516917367885424074262192820822527972947359122066321076976302618733875292371704174995244779875486781564784386931775642419524711090670018744389715749832868188850837445767194557620232187600471700490207737643750984974760204305877290466888795607674761802518824618309381734057483571851168321101310285742600386137105999782930297197798285414990550086052021594758823946501761430600200732441581576819092699256772789481669060502526032868710282907648494348593711462404897376335186277004236980675847904806550103602979094602382550151908654918284376098924233090157432889572381012716445230082642057072856029587660712105812105337664895240395059431684106065331591980800656779463795641459687315847289676502579034624176228095315750175553623615798752592500373809459842831173409453615451554962304776645113607317536869813824123562369201474138861878930414128635338589530255337869423486716730080513874244775738215297866561303477857318685341390605707629137837391209350675054687076217874496073003556188112217150580964929885096872994230161454711322730382079579376180846232851748104988575921899168305665211408957499422667337797810956002294378501134875079531815962969175067390481287193239550305312932692611013076312856911232363068795764211462165278211295832971734837424082808240140807053342507387698854206242050236153898172280902369351147270894761200341783597371787497499803108199437894529373166334250530680416663378729664837654154566704282508231435688438789298941738599991909623030248822733485057299162758346002785386740058467690560045846152647133553246932456648689828293482352096500765290702722477848696699030272307595928953152956547925903914740482783793541769585334841969712511863234602309312926396954455084431173648854024887797878535681899604522040196118317078722734000667753489330534075081776988143327303584854297857193258067934447848892240582782866484016381587966184134190724082602895701989294695991269070808888746656526995647203112202522057851491785419006715609716408467622858065861679353841579206829733541437810764059793896196472288013511540118692896612050791204529177730156276464258644783434519220395386692992308400601864945169108105429331164936383622520406991538353649069203524596775673796233113813219478158828814559554080789373524536043390170992203901510347450691305101880400013783537423663976787246456404635853372190953793050294069456956781623173915589742620654801550857423305266348859526898181178980636875559726049035041238572042533794842683635479823855037766625009247950491181316621568307704448510639685492679182933662362265877310032424814826578468572964509198237217562599539243631541373326793899344360451892814235148303367817012979874515041742783062930903228494352587198960793564754369874363291391406471015894462078537698578369102538783580653082616692579911127193635594235564008500271336222018328957114730584966960825758571483682033570271046251286332072941677601986927386120107430031746571202008190393304275725525974294095336720490919920061317486779943063351785978171022058221814320287771133375199164922470222473969128875102269601125418098742257922403454706137675548785088774708524277365340634911390879828117303080412786888543826624716882818184398381230446656835424750955663292089153490598266066072455582373289446814838554413052535479355739581911160577322922438271607426275553922266669892646940605449139574430763361609521980033778153230307482670379920264602665461661177640452679987815401452258809862335046285987631507631242905367828958716412495307899667440044148303965909885297731712280963992336986719606943875319489725879069413464229708510846083827072513621463810174443760681918545211905142431614486004044335606408284838173673171866099167561252717934471076777533676767733650032404173693197948839749375900580762946039516361709396570449494207314519280153718026468964556912091188502958647229605020099197294204889230440239944881787604986885835717107535327352926975006141162721917272649010873321371897139567439507589136549238364673383908621251143687151167407796773264672171042424254944454227095233673350127102902395158815481735223161003160360929657787732654013429736930641388882433175386522971733704106995130888091013040903616196309110327373888829938273227001752374140354265870496627681333915776168041031990491634277078069467822756010203162710099306737669829361371971864326810916366182260817854980228780785437489230301920104848744781902324670343087342193345114735062979815928392026592144083572857823671114751042360887781739257362132522643786772365661630058237295116601062618229862416094617546759038661465249691755733141032833598719730047108884697146038359597510888010337279544081167457561619960436160666486320302198974310461256246078122097255153747990297935368119887837070322224419123387701165794075721929504521122500451991001882415668420411796542764931702090596714610316103271961390135302075875749181449807136095176547759498426522327805572003815583591398171596415341480122153768403113723435737999647330940762617905234402233568153654779806051284496322829361600034291344292110304682843273570869318353623787574321589423522681081877969387890238719595555302011712001410647419012235436565117782994914599242308337464339845358586464222413264606793567864146243373970005393429294902362899829281316134351018478130798573099650708767984328915318054622186362471611036585414223155795904125487078530676929990529525317364030524381050437741040345792942793453975703290405473470069883345242761499079067428614148125909735947643022236349028898370800068401745357459216503600078874400723114021012769281638631488770805919546613047672874661172235169327515964659309596133255986474497808890121870670390974490578806970066063722135374837435006061929119721967975514249682149806327679079100085458738113498570360132359059857656685016689411559620017172761207118585241168573356615934279214410636706149039063488234498031071308765540595632184201091842917664492461605836305343158244575333019574731749991609810452799142902158010843041353620613946579341141394940103244100161727906325980136329228071953015609317558032980678602443475231309000836882273745844010199785288436469133455162147262574719523582898185169842770955547660390952621813298381477208426571089863880887225787855695325534824511410211757706989985493119007680352895230177682309096670993001882208519127318123463287319159079610612697859205123247412900961566251361767943890009331900270122246063930250808868348925773937050590377078359109411093996899207103010173474557451112952932850967891894574523598591170103201043459826614116736581174167824288373550975677846801076085947393365725553316559971076428055084729169677261071521452088739358367153875023890138919203756791851981518995170300913068453808895258600431123539318120337602412976547008053798472386858808397622810455034539514506390348505437335130185412088463366042296023746992248403898474323344164066796365638197472638101585179804525907978185331080483319532577549200154853536946760665965671770989128505406608982826390334635950408252451979911710821233915411937358140295626912867578353994156664756023609596444637382744423733116325631493239172871949306055401307930598187426258222140262638179083761995470643791945658844744022582877764147653665947691155878125361551930718132990959969160126402657878544681577427303207640704645434147695545588082009907698200489710401524791306366338059357894457882145951835394037809623196693808713990544510174686425209001374374047084149508906064584071162485116935392858247014118703258171306602076731162771017608414714105802581376680422846286772517238883179912218585813473984647195880864840927528321833611304450457143268985690556129959643689139022985022620416518002043364013034062284007706719056144156129542352130843116221727464605765044752201650308185970308021075789134805318068599970955688036634671779793387617970159797866642614502188160990628938586572062473655717238295682386512937267690335479761890245379492005377849453129105748032034810956935803898098509887789537877885235378251361169214658469477982541719437702755552895439822538660288121413041576171513429343188218767686264100476541687767437421057664819588518379173475777876383885569132155856350833318526813347043458374922908996099321494761229469960055324806094951875155913761854627875214954285496294742500980572863698254111153507117360627946729669759818421368598504743982806507189409086655783393922597782010506244680369869228644128898657612864081086773499196914572431635276472444707183939907718692424007145860452875160709759443308188385274513894414335970859967999284634636200707680577621753322656867372639146926566626778932929348965430083383327993147058362438666783632414905205490576030347086893483687821521062703975969625070760825593137796396722605207055914584615317049382652777811061222249372412631815399268171081343186474677473470127022811904543082141828115180096863347225601096863034808217617689227948824950900417910304732224407117284717701197020702859556945317688281854605656200335202855197840318491310340231726886096860143797815761759028797380024480596123246288926441296756193262109900389529446693326605130469984149120376883380333289443075384629116799990209458237708298488590259930292482663083038591793845783322940421481153366679677309347103734253457534093403929581426746453291632528247295511533977232513771587558480944056502378702609995694150423807927954815295498025232986683226022103521059658361853708383153504694348601068102364263342578904145029457008865019416125628832637945162005237455576358326339313815129342529880747615401234467412249230042230333343132839919052760491272239030358714889512414562611208992402828940805512025048386114450221242279841305260171661627710172935312792108751488143767780673645766561150853767265371968515935643275001348214850499605240798833986998047933796861441712037328559140695932413109104799608878582244658233097221600334589540169277493814951689071159678872594189753043979481811123479308814033593884516027122309706409292038481267275940602094140706165447155112988829687679715947511688713326438299785165625171297449747739723517853270897262640294100388501499611253341705509221114850093128260789004789180784468251196082893517497313191081350239111043976803905227706826590665943764110980079688669207330874749376492206949255014125432010043782244452294990938731071995813799599978079168584473891198186567373927604589433571722536617746511573376508166465509365260918883290960718232409411049303000238439132752774936768941314066838733121073458128357915886307729397871852146606757854222617537916001967052306904415229857546402067001634441012160200774075121937480255102008363116783561768137040514203813455010103113286620713451901630770120238018515397280168749604389005651736215325973361493633540359764268820474336140299179298455087247747168793725759555149897570911260283822274740857304725833379661578469673339876766587598677271490865446399671096110640922170994849888954272993484007076042683945710098457642070184567073519123736267628235181184523201408869077384495785610948081135536879587134995521330171943829964931962563255362858153281252539494008940642697754194632735779725520229406977962222401931558726881797792260990013192995249620426574566769575307717596919493141893238201621839935871668808307984105954914483197105578956898977251432375960295939072271934556170491978944845279850054569634803696366206743522531087983003339368154817490550846282134718277121617784807368979612272913637971726476820784823698974079076381598457787956180717816305868777552694866134376718078260601544390041446143115864019798729087374650076262378365980979397518919529608162963155737039055430461395353897424669328888094465163460825892762657540027820717909224725013678974281429702871099798449889908832247442932837867911126248269299778761782041009976846598243637614428777503697132690786193753888224904447158623901749267568644527917425735725710219892797265738640423513765889725968267002649990996934051825791192001280319172603817666109168325824824485875434042073498374278794826926772792701228446851136318825769732102057756308914317355737057108768334620967999070314473743196291580268129429398864132329791544819182409500297041871088921602108383614067211722196456046086217126898770732814320739047856018448922405510107853646785461292568214163282375295685467863560960476684547910055779617274965251844036630603283066707689262238497283135653375673020517364979519513462849689796857521759510752355100300742801182708483181910767316021635380221432711569912170598282915596663028949316705217717784504713471998697267513198692701483072403869346723861992360299856330213264653905150904393096517348529246772596185365651900403222761887798992622053442932335500604542867898941307022226663003944953893594360686486467547068250833030630999749525405481886141527031463699109712365919376320123684862502295338201833454887132098137274274484175713494709689300626215889011424257096960189661729248535851912936294851646169895160874567076673880602497548137616997039794304683029359752025951810498579277576055804266867969717934429068720236221652274899993846066779566912907587553592582989866203313543644712036610245272772266654575785926501081656132615549760347001804948343978033530116355832659192890515771306545303182185165377411258444646736879574762853732082423213740415027624638547232148436994697567889473937294051790759145050591922834414400446723198473128403221350401177444205041571950950955280485157287859049163586958602122009749285815735757942264584120349364563075824942832613617503664917896534366873769947301893299312512526282724847344195781721909906811645169904044104010760441750896087568318315178271575382669756616138740630666475680170998449435590404741756538718994069396937468621555607588638731528853841496354325146182733471609076620291325393356118844458836842550162570157304468942937263448130379678476710073444603799022188503371800676552214259612974006759120588626146335360955938068869737747554474444999931201755264231954952641693232581761904136706201126282921508389858404820151284078461383999361466159145380334450222636290331419600901265044476027641183936981086267839164928725242737932599635761746839486207667643530732193097482488305037616411059992798041525364018225821879993041223511418093250654194196235579808178592298767084346864848816573865308065603484559109370763424216532349180321011822498965039615369540127891321004339282459012722915063692935062162185759592307985608089175909318843792971166615778862160647943313457166180918820924624925939592718888527442812985347116406107792173905098724139259066847493412714956880368920256797191209314100893133914142907973415811956098666853829877535084133291067879741690082016752392840994487338401687500725231817325108938109419287386276839864104223766425575265158130338980945581559489978218354766387671292942810064325630989526096599319813395367106055280583401159934414503343891304902230794564995617023084261951027345811665587867176361935924880785988779294031240880415102021755213147673355739719791676892241823723379109996595260596287666984208527040007438577154701283817992751871844186458132845038659689689002335071795127844385211856680267176165045412683955629607107981273425336276379861977478821420919933918082488763517685376896176278892670844573196896391679750953433426608808011859576166157245471477346627509603013562612989970820798301020180096658413357252993385496990650678932874802127679793566891295641513723279033176173609308360832205236745999139546807951109221365518967831606395130829486480147724359489492950058048699943004573971261419854010169571701624783405481288905689041678592728045367358735318729615065420318280972801673092115894493647387861852276530651517820929364998496021090237377532793574652701331617735815052801554704671733658498824201243005412091638236410113905444010534014019360700728809718383077445105460989790228716495504068573383366474589029433056112414106441906168989132122804932453798539879231284063963477160084318520076653097370732898732408370922014839948210614034271735751465684749342532313290754245868532080372292607445372721726471997288675844378299119651365583734581799782767886042522410390474378162674593859310445929194638812341805130736275369574024379852092609977894184817535421392661695697861928445366371632808167441252395858360308077137206089128334098649035613886062275625757144575066975789493626388580167104147144855050647670821457977103325676792698981272142254451763754564625647545236377366747688027543472513508975078170391510786272447244069904355623190653730711289544740744976707016916325800603055648294563602613354782176498319831494459471819216013207499126797596137619551406148334862792354740855557325024276714940686603229542446231738781009071501591814941056459714549330813965778104770010122881499115299582143598256292326708541491718777505802779079762134991067931867816752667351645341744393580382174606120561179123683927828073876922908305838312614775655701701493975217962211894621485449023294340967027807259959181684636321942030133537957417218834554754339220029249474969806337936920596993158393613281765450449071670964746496926563037471542962203278991180148000291893460556336597518015806615083579104102196283184198659762990833443175741151433302010267371553562817822125265155936639677512987768476518753401678394439523537348490216316583911294998793396521509843494686911040847210328661321836142291853441078591554736599016428741623296235292656613953047151153367611433349997330561282670149262732029137850159672969102710905623634866924633192717678130031818280964926448274786589529483088217616101102133052488762659503919198684362173269817565664417268962224646727460346240096591980124193137320890155375130244203170107857172851666145610310972152529197542379136671046901755599645167160169157457487438833946356081977038395443466405010737445270102080412975449146803922785841754809734942925802850141136377146529822093759296570778504298841442295144837788974881124422963713056936435082631802213949184566389634104874950797513780695883006643894868421786397131027670992488958023045071969976269086134065277093077065923764518393626145757478884497055027147961047758008266636255040517011054739620665581611541931020302216028212980655756981656000545524144284148502747722181926500716023815869569432119318543042872697222920648479371330747624877669508910471661531308206733625108228146548675995837934846439234646226791945822215859851995209494737399467644217789124222581500947026223650143172568289689803652047846561345998765014594624301084527667703303344671116708333233799962641247561715681861991232536797655945894272703626081627560222929481868829537348652147841006929446014517067781151992745900713931395502890314052219461204413402329802277858702074444347689359791831807919332365665079803777794102917432389990573179782009152456120826843378717950357992986389759906216740816701084880335327955095025701103694715101519594143967671995106283378835485339887234896064534829107166935146636776619523383127266826342622248435804948906252659229784825865518594722477441031511977637001674181031492201777416305746408167463151896091816074515939781167321155504576051772893964414639578189295735584696414758820472133016400324902782863887818594923339597394129866866543297871628612498342060792657738809770906949464593133640789510941845185974261565265799838515340078677908227773786083389482198319886193312059323548934240792077351849673184294379287501350668263762663344677569669255460169140279161756498861085790239895067159335095568689041911308469028716979246507175723985834486539831544373632012885618088444144147278209028872683635921391790104686779130785080630780287281860010854927641208815113581150433778758253879616366684900754641404489884379689545659151444077284642604559018687789297905514450865324801912700205820876717086071820796925988141795025967192009953081256331541137686399121224711694429391383492481769678473499228339447948465063509684014492783708183762069360366047017051468883250000915198892712627724402105194246453130414160390411614839073765836510257685243776665247220193436766666710366620421296525110996493022384402352030993430107514997919943475180125899855151363132192468414767776163293528758185708021330620972740093272576368080055774392906146382791533479392049115424765139616674928997137545487972321534834954645051670535392106837339309603853570278622367206597129238056869495871274630803800164303251959195688138834315374835247805975073111445681048839279827664915542665005740605185494289439503427975985263418588334544361792843711310268260899902189524190879250558476046274364612982725245346472294396686274046597398510464454809176353167126852278196591392590222718516577071702608771466264562334750839452766532488292096232920792679453623246125271674692680692110036267437902399765539775345859559747517224358988222537402096386245430670248486265736054030333561974101849471133938326485111184088687040146716523557789604905058935241484681011724956853057387851116642344936672086419224013397151569672904400386548864556727843671968769158488868935931911896143669533868396795584388396812891701913476022852239670213457805475761509810002422133685238471456176611457012248109538010087034910518616416435290959791230229759075657490406732171116028984436930822359644586848376986141411349419075781910073297952969344113373485634135231968001242771447432907627560423858088817789050147679239882455138846595642747716370929605362804497941805736058515788621475970332833848158913924360628210843550179671286941214053020842938245755574361875078620282147191555932977006941415028460627030522668415783546721139818634720865667495129976405976073954244186978760062948796420832993845430966355663937370071352576380209335764899054992428054933195223765120500183324812339601810266906336746991684615357358169303012286644643742727309957670935474869099334568960767531165260002417965819237295599072332911442624908696145448823327670244294301213604911326225068526420295740207488963794341856280754977868482829658229410459529255101340369806645584497621031970991733628367751208615214989540193906826578191242434358599246402526488164446098665667129110841428517645864853176531004402389305047666738271452227708033269716752330671516157050698127237445745950932065728208011899027943242462327724380165327362621891855165893583857909074090980628184026372252523278200530696894426874945440175790993750298709104388680212780332283953063060412919300805696937819035076165549628540845504119129617876487174655301236586494460834799586777992419016056746740058700476412462784102410421926624336569164244868828475528309421898549755076823402183172452631900276848403090259749024030082839115732788716400779048939205012033047378680161335462760920852042899324047631770029099715635834630834303022226338815481848637964771161410418126455873793116930414868091916529418810406247233357620455116818183541653587803448454917477091636361168028986311338728355817825553960388302897507767727064338998294383274118782138220332238731450938983782924762448426352581120116734091889994996939884681448460328568102298462188139753807580257620664805659802931862609665072239319715763808159409409355838313315914617109936521861664311645535409632473649586443274212337172376965042226857528002198153501669325548801628303737265906373603672706053269104864378845390397877570049459309702744254684925696648701118073092898222665507364284119778580748104097016645317620481512057661769293813770471427422146307224870866281498274941072998159130425395452978311200516805280412659783277128501783290536964672408857145057092485996384495408726055056234760444652588767898838952744263699066386467826550269105432592987033056402768583654845015147847344970798473935327736480718830852280811064694223673036693650620001035226312748744632821277246032135242646359756452555901080198291106872270515704676351841749639379403527716828428071433109283036371865368855247716283152967138782548902810518342261192187664736214743270813708367539480092179428256566683879516426353712733418022357425788775579571933211429916909587017503697988406977536136108933478447548716473699047926693117789583754765553214535400130270701792810522308863045030777426202330074609702654980831067901894739578470674268118887301427300484574196341137051616960060009852041054892416951044885048067880979111757269907319294030015872209653813508594599375647530048582499978279146110936155242991768161480712903122633746281212147590519752652382508091651377944702094949977749685068330659445980913124190419146817621336998365618533200904406094649336189510526515650896694308651395671758760213686352659238414153761433787647354828536773660823404985691278808481948252076946375493632996223382399358733672381520136049644821266955263532223136724513087307753727643281482292160603478132257766461686606693238785989203600455041135355461072071317561056771348379224397079845626408158580745072939557328610344574576081957322162082172220627313006572550227231099432985293925762441586841231754045335636725404663895965680172027281484036087168020340694073669096160368754366977241195628361684607102726464340801744197916684084388569381029612977142321151274724444830440344109440069458191100745030825285290921429039639432324913509896027805338012422949836782317762179828754868140362778028456735140354108049826522055372599268409918448131564051881039628598954209465878691044811740282225554809542005151215604644873057062923979654541358029471013974059477501610690765260076623540057545887961492659517063814711301149630486771900161078417891425064726522246377123265779274814918825203193950239173654492987193104308395422861880842247293534372698270167550479716633939886676933460824660125146356020492438987495879022199527564269236737981315132400533700371342814556912795592427891539249766670790612062682166904075847825365754293702412440136783542578985199024112679373097939093066547176845186841561144365735545759556313823004664064924568748753930766685726756096385270318105666493143360743887177906866421125388279383095931809462747464729597150245765563422889377232175591715515920132082483057876187268719849463947138338076872719060929157164856239861680713622838748059078987620879445256945047395054754604269137338607844774703361316566892920898969212578432026375619791064401567002026570466965410991980632354182675304960088178849877850409359055062020915421315452909626386421730893888226420957869072392716381108485072725950752379775686654192356430891645185095118698618225819800865502941013811175007195407341166009949862761059310973056991420903714315424566502723427143360889551544979746593278065637313566311743783279018374825235427827702910495208828202295633368543103825187302536875518201189138975155485785731791114777446584058470769694018526548199972530812599406784080642799022294649500967530642011576699642875047873996639145541872656686246904989911733536552355697972071545474267813136884910732814472031389479529259088547737741705884642936905897730075635913481570197889089603695074424313811674788259291212501564520804435495493817137364271473803347519691488561922920681064888629300776684218588013673118043664551503055214933812703934811820381575421611666551610201488593143543689460315853497107044160429639623734896326636009906764464103763377374171859019417431768198245993090043910418717798837269346638617350608779138067705237262797747796996484703059803255168845630817059126447950496780967015929406399287156985767260359255169706870593483127629819348531566385089468520146033931369220835675466709631657863803468367137642132077521791783088962497032916301141357701950104183770632194181062975503001944011197882435169983283248918140842425495451919149737504949187203818672136574759006476853533972687278477228554318038814882355633152627879622281216706326933356336291315984430386715024119797133072043864993292574772230076140331541827819570942983125952934780138761467619449984785110703614231608261349879371114476570509422183657769265873060529204954239448130743356308275003157902879021902134000940418353226672190574649513772580735187836714282385765412653561842361828023559033616558545395681871377723451904802933551250117765552158288704931324076455821446882360176099247941637381677018746717364043166915023524299791884825248333452905685454744401592122879094946891216663723765333804774865205192887261911023086530849858361129999996586614013254554472720670346357937219770205746339385171144140512542424429371967665289659446744432106291973315158770389273989213312250096717660805587345223770503918219339437425138078607704441793971626977843370205177828411822687561853997750982743462854650829901794325181486869974637089427077834582449092917599399713836947732168092433641168395188846162650156778341554320542924440423441042634209808163738750626030040045906389735149144018327011611159959848959036887787034776178880522052681763601161460714312189907740871344181029233498828831032356300677679375836666153749412172727400355560951939452863773401523476619805575312923094880986839330175137823669666940543377007298768269420601838766168878690908944812425289886734718873873139361759650808476276130602959945261884878029119724001494281824476143905235056999373582062684298103710645196917961347231745109114426891194437172390917948540873531746674951916210715293806299492985053687959356308329243798186642228719102549624762119298056408764027357264589395315456613745314477972304021964410979463693773626165911353267155626801468405682692853838055267345273896332195644256680947809829469321694246611977056182326852214385657694627019216259545995264421819426840265419921388099330309509429909870097319361153640568354939492527666661363737531476147118412212473721306226118462205651060282180626243546940591437579759904358872048951659607383889779764055177669390525617789797529600270029736459987443050667312146743104728502723273628675820133152312282794640503868681141792855362552100616128077740119003436828889146427889036000343979345388995936438991382171722224524096674022560981909455135391260876685363698617151384702238307054371512439823040333994962608624727129878699973108818610764871897855849100667556023988068451220361563393579723622254513152116769687896962894526256509752109770435577866582034971265549752850329410259743892194273793185177868724454224092910805534611698639762612525357385147989946987112789715031055257130345557322319873013015720855926068078128481822282494541942010359585894863025617993246360214371607886109090368306113024675197574351956655298768029681797342792800062431795345190678985811276546941603787407370619604136656207820592315867191961446897698631160222156927804757158118566922307287242268716575585061367946150081726021550680598809376622020449532716871530772937654127853723481234521730995586954875160962105912980032036152042252518779894541904496227144917888644482630539254130134442313763132432888234217082600067296120468660474503939917443816442602865666488459950886220834955697173564434934187262682710075586342906820381771707147775085468505145000001048963728056385898393193160220825179506038770637488493354268293289827111968666798198312899652832920066266001398367165619768980024190448269292373719911363536550459549919648184678959116017114055299735143635214565971280422863058797543532840828880870312162999124190114773821545665536141677557026125428214142294645459559621624877726780730924920698585265453756054173842984528282965451162213338137657489678154433955034349481808306924130515454140276723578005145181116800224536997688696194330349432240145187069703245208777974896961130026354821240795250183232201793515309022986399363074599742235993823589505514378018484156547852437326817747203109211989539062938580544606156089487484997283674512669207637016145655219220113630297733455534579065866137334405029661722372650506653117213088942129088717413358675777893910836197156371460956261670773703801069452963789932356254189334651793981955502423682416178230801379017834422478365228762226235769961118103131436023140544200058414496569924109524913140325972407299688008434095804359396146800496338388649581260595481989226280823404713817817723679281787241666815611099727612403442935616168962942054159059652076163590139234380870638508735576354655964722233846383081975237553069672316267779574610220984943600107571994445396729399910029678337390174214543689269799065798730904565507613563786333757257187700857823020845346608614214811286706224968633839807321611391301095672216820164511995981593926138040838053334030263775182590362082804070410188077323835549635874765321989576104710931288920905757073806700180638802166764575844357354761776032644551509762574748656391870911651325668114414824583061508122749866378374667799115209672503879366125380234387667687465793666616020161956769255706419574531709898028577204740058932088949887712115780364216215920502021610918913643625498033187059475468570904336159723421236849377558315056862244823150942780986415440197940490846366118136806026858699584364695487370537576444968247477035560644841878679677408275843521289893842138378385498896908701939980765302272300513258193360586577191223715443515383499124940758303925178074602348142486391036900252662282036948943925722126579062924604967314822677332810972068977026864589202129053589828033367789671502627025635990873970310813219421897665866487695544828336139016385847554445730703881446209508124757205901412325002112645487683834044022323475826102330499084822270751138898402133256392861339519491126915434627661503542299454962980094473856100055075261098344664531492463413269981562679844239954225509273437158603802315687166121785656661907280360369848571804541597152080667156288479426628439191491462808300331429466207405064416688339606762136561175220176067052576853035564755905226547219776693168473969481324992330013261446645196521773362386938756439162732078578897679835797598262306069977811896930034627230032655944244626080835008479495643765842846457467007849495861299529108213249772967626157636357230457641539184398184791361042397290088419909115072017429398032578387835069420871438536591114191100459459863379692116311004010024546225011530022152958800840808995306501118019463232661517555199969826075166373839669116711233456997821883305381292502600202174289150692880054289000875890698817638008718247602788759123888063451425918627315139300429031199246506496941058453152006421040508098177706653827454513035488251869076468460214535801923035424923573711164995221661582040623438271251303130708698097119556024615342681544209844967912116268471598291887398362396861718435905373564146192023314834719300088053148245032373324025888684457933789066684571921385664088083629968731912936842433736028689875773878573170044686984653096936633412488269217416909549503247590674242531666118927762578891296365693813385269801837085411387327271638452780446049420796938991683779958532998898831452788056475041451337742440760229521456824048851812328926600270446145892679376675637084559134739659112525095997742574409192698059435350066839016902706864682704730781337502824239491972096057736856786378072364326300533706378907932166866087437024460672707350667440976242010623904747128268530822828293927890073775872384390969714158356109096623257798436416080348879481936374249358563634466716542843803599729348249164317056380370210279628607806614039883298908813334527123743644477033806100252449840163595562609436304944221668678633728808144015772251886161355727425314702032876575032069549225891376314539560510409520028438441686265884443660401077972816977512465287145623435045386010811330177343142049860182500714677505589009222386367528048253585614249870941008195159826873653323809190354576281243158148260227753377821537652808742532248545051495818975096970717566121271845913125149297838178581460840041525636870007833490399045985127057626831276979448644818136373998505924158215142714237246080974401100013358347747885833029761814749884654531375304843176274199339259218633302828745710596665086297408391021831362040965744147720481125813033335995819629276268693730891072360339521118245165823271901901804236934029206803920102879112492703211631289337459891307241398914473855232545177050547295994120373892896107976344211259950533541196075103250357618424771017495928386410619856926730748387814542334278085809085083318573649960179972847805062286121238138663655539506660432192311960977314930319026632906233119548435702702395183106511707241529087726017758583998158266642460209314141933830201829623840741504123014241431777989252461309051594541292166757341586761023328990066588083639688634899358544461051188032118429818685587034273153434161194549371624391721300491221376449788581018615617772350048703473717858935852278790722083611288509653599833844727509567730419048021405827896444174419059958761491565723450036355622218004784147451637314855948200251167833755965275848267540350773699368076685733507266333823058490129456901365695029197809197426516885491326458724850454436982018601812263625027806996482608174201629036054482619568597410064330326368552547058276155291167649426824389105755313562932251569558492922486745126362784311714133014291383416642841315406983385356822034893421440460197812011367399418921990173430846635483538463561161069331841175584879529654671879717407705604754592709203741454719933866056831096393650684990939297847278031189445738983862483466791194952746515270194620363791401579136373526464710498258145254701068413004242854791667923407854303322864421490454475640097229574044193980170991661029512233645127008927065569954974940486025562926187113280953636922923086912411833741435445608708994359068431678035201695730708067498930809164780043951711961344440927895333935610721049757916715295007663999440966016602616958598595868376326423107352228857749547626528584403840957718518943615760643989036972767797964860957662538953973357944629113292479848319361781238885516307670760615052609794395466013975258157472970369393629595674245436760058988924615140187998743963014562787385319661450996734404953230415459001065513277552632947414755441457082382482929326462991645173605049279202814596929655928583863936428367669698237796730491967686793232593601405349912017384784774881840269468584165706729164149682878668624248268913357236506093572530666766398022029936855769461846601663243299055506609303652954337783845055499019594830229469683337294202692993988954618704346939354751781804670512548732757752440271259695210621807320797209110035162864726494119572343078597450346187648335868250682358353603851509601954866353609581893730721315830716917459602479986494821507794042971988228000882703579744001406247460347805600324757515580883849971526136952286826742426926670047395922443658953402634116247663253120966779620923155340955243990412520184106335297195716743819984494984033610182261587526457653931453267933282319466345931589183650111588102281383522452191995878730192290251441209870320581462294517538161238401144464482461324480371078691118005419771263026149435701327619810364064562508942511123719818720016867621790269973332157507176137333272214683859337779487637269727913669583985254995608157170494200547292311339988243320791747268105580859855665701793433982850761546530258752524210685209732878655080431396465311198296751649693695427920962063146731140611966212701463183531696781829343925812981136971072167595460896497632686541665081515456350230026886914846268455772483172780901104510033220311603493511820684387680911413509805758762326259656217759598600022362100045943434834760656839785398177013950826317982479664522625489386743665551753509962911394987428073151817559378502103448357894576697436383750726926067330912706952634956315062332745127366739251388240018566765738113786174293622924853004205703484558647494377848053090003906653574958073828885955026983443771803065864966487196290960064276029391199202656591018621415643316136077649791114746784905437276122003398492698678692388446990070525304002696390946906131973892089611884330282162277480645897694713547328199766775781484847022012315058956999320676267296192473903420342028768144020312750875494026463230031998710659908603294185549939705643362133120362262940180143856128869342950422690011776210380278258906286031477661341948151812265255402837878234160795190364309377416803318674932122389526238896044582548434549818235128281570387541223817595266284299742784981689973596349314802493134194324449719942173883443660092463116881443721466070846250210102745046325034343163192502690537980911461215411576312631563294706224834078041588623476033121768461747703789648604973496721518405850761475066602270294373535882264018324941071120466035340568302453619787972088826530526961319945979038272894389462730402714737597910088652384864435376964281017581928567149479523057480878618999430339064568444794910946807925315143468014926173710469937215006236400509611677686653302021109518304555223581686212078061083815557582877517728738147143887261076219531226921884063116380114988899141533859492743309444677105478539907564001453003176291954600658489450173541226390561758269941115926384904289442529729876749647274296998731189738841570238273655046884977301170243094011587122341192050158820053173955270371796865706388984207439852632363978922608118023957696349879895276888875534036194608250853931172562967738016045614711724518337350521748104808865750105309364045261839558579795357405317417451466439166935205914473850344184780549847206218446334012784215232455020754469137660989971617524049742224506359146581119692520426324348544826646803841653357608523428516222587443848457524141861990116678320776161844232601141255479580094973679366768114974365486707875470436447815222658959317967499207510086167156664361357025613079052111320173905943194418303862472500493083006886605123396962413076133859737907874187871458151051911552619073374285696135113453199457398001551490833659121545334827702432625910501540580266479268683577632341245404196542519280232439632301654767718932215441074026566961499274832417296578470448410361534833349513676791106492870199054194863133827565024924902001437719316708837736603652634169537262891129191392614580518599458354372980845679874582088441099260750768673777254116273630603943215603327946466239741019389794767885610041576950910237926017992483238465086406533810442894311010851992826670146991316161292402232267343653787019095153911172869738755244384520819388595589614048875530405742626522096070718070086782357565591246568134601114928409462065834337052913313996127189474763444636768763154893523966824115960523004782635113013520038154818253312686088177567781336796830891774747649405836925311076823883534414654323951860481316999724004525075700355367668444254284248465932138354997140687249972735565322752909780756025508287096734062108401415600474655659304444283531143667761000997305117173992370484612396413112432803167703254134962564178224818105857553846957947329586508402689574564698887508216142730322951805271932841445972272940945661536731577640799143437915292099963838036037400546274195133032707582721280580537395758420237701021574393902562004358373984347866750106650099508246035840871050022992034334233324346970759988241330335242585746130564482249896265725810943592178343373406429589188679886332874005038215820278527193895337274222104992096420108549438040180308706161242775035530348450209005700601275258407351136928090929037390680354946900181967393565612865993041311378711836917804537723792774702880115977859737549707064963244860548264155159050042708348648549826859936896505690480960528346042673083608119895000554938222251573545138966090389264927447700779131354582088966851541861054260920804956903184147290981480439404446429459472680531503204111944745210049770693597161003394450876877515404306552115077845529438157525778234722574863380687668332122862081641412581654872771236967819137195029990791503668654664773349996918858931651922325519210841757705116087630010769036930823316522495233033913016167558129011313930645901387431019328263250772421621834968672070063655521429071204799572810393856903872635835111220672328747722206098028132719246605234088759155902287662584626015202758228561785377834878415283539382665985208852781713984106068183557517154599678623701025000583262691116264496830371474861796174724742311356466683797386236035417416624483921100758981832792646321358074634121932707369986560299756319779659307115562335457424454409146967832912754189819628152625277631716202073584381681866526521957104306235607474452248406974196486305664764579475149119911110837816964881970524101689840296873864716107484831813193104059612367199135400877383286557477465732717546361601822258253555342100565661358107549363185308582567350661056792032912087003538453265979332734384674307121090680979755923026851197029890500625976494319660007952070436433772862641951590789201953020745198846186202901081016977559573143940359650466245750784590680118847817099535011121463847816009667705816744494460656742123715416840835193889873548137991543703489845054405960854767802648539066362221732918378869842448019572852286178769095730402737142708066477591520551548864302560030728953636775043602778579982976251685836643069225578532015054708516478225637228128959723174522278867114081284023745200558567744554432809185164943310742504001840576807434218138794187732986769500233093407094350863345936307832149834836926031174528632455730440283553316898150410954553891305825986631168823680012883855461994207082867608849238370242882641277755840042094736345021323210562097746302143641280017981326622329132386789925929309018857589848399913416289442349345368620854848938279915182471033674849155520845716055510186068583867440453143571843849988535445539763202713624115022485916944695812011831804230952411709716786012906656650348494329217330747400708850293879773618388756814796102080570876008828269667121663790321981844520250983916284299546672604862180338115815690885940899695022443063161965959082194254242496832871872058047337701330128618019956162231714834334737013853281214282251327169304570834922956656474018515007471882490179189714149810979916683974515903195286311249929326102946593116514917127248150577340297344990826408866599607940258179032758457633640964899172249689711840337440737455390956961647027093847860035269043233139715600162361761213269415188047036593939275323539361897292223124106445479191464862193579350693962843629974284953590098697879656336656838803469141470404153867491440105479363285409302175468595151728091844414784907229878078271147247649866576266555515713572512969703870367269170233580159017667445320395499147008994247634011255742463269124762439209603930983041038136022478204998489884803671154382822004777663501838632527756437628913494034040137896802443167309971197337919490793906666756871614503225420170381889365481886643487000129692814819526378558682110492901621131167089413965422466135628946405027929576666806583085476595079598975312098485994302613334738406354168961285171795396641123370817522834768019265447872081943405781060656118972871439755075479714577602781912060300376587148583453885609737465908956242778546029978783405086795976781070424180954575047526571268044929511681098305393070070088704810885712634377610346829037602446326546442593840593244296550080067021859651650612761979961898283182613851279195735545861751240425567602868015541827430977585976263465250470760152408498731494595693195873770491158369134744251326113247168416197907209707324538601858059113947746301554884213773407185035965213152767366059957357191792438666655429678428268462874419727300906713108632377321230056835592387225725561878986189075583002584632334362897574025123433198985325926922412698919915617584647005260973451259148196858384602148247731548828274573638172872875646375386712926559058364045986903253216920577208914333941607584756930984702092131242876286937442701049868445670589307311203392533795457563293589314175666096517279623598114078012335854443928982150622545331265420964894320152840501273658300463348605465927073341718707916757119903984792635380928246014169448729700387349416202565415707224743992532725045763873987617087441063629103203698193301781583186418811822689166059155661616858013431838316233049222439224301393639541513536080180537938929996187418902883560073829687085753236982912743215893082264598610500559586543045028758086222639384729463662527598813992618559616552375586366459322860256666697298658794461638971201754926360093947411925139589520463452636222732308875063274321887525430607750263868806797248755480531916470429404272891270519023985691283120568284718560206455699413841862994054963797746282686460642230491879676263925198091894412841664238908140369559390463353623862178193516350999984813099010678699948582973552230161219196286275757820111013951760084393687700550974153759280703819075358596471443000025157600513094961873059762031001319150512431379738631555805967362846162036097304263848432382971871289087407579820637022749215952599694219169339257414721547092243066547164971111584273458714793768453898424469867541983883152699775489028769650797416270664674127914616567365928840490708139499598870648425282716440701125015314309740477350365435860323240903183316880351756126119038122108269626765771843176115301117929083199289100999733559651604291924748687583196962680376047419216724824998919510787330140692071840315619227084400371476192231511449293433456784636529308642674326436844128656306641575776680835791216875504324267867482746344549144152721808176013553450549988217042668960420525990979067985264446351185361395111441954278020735291816962584186901991512104968167723941238892772129269503223098377592992671044422354856502811598022074525949004817844810498287938165438191129006903048056278363819345281513074234123527039275008510685125184277478211891903392979578362510770738781223935003621902529967925215569652848969175720214941361783675491582734532827544776165101339730008335018101471554012093485880021680383424800159656023581310594984398377882217609656850713092826698149633009415333331251334393849710027435165954484259120349219619310508892190545670008262847463831186286398676075899971066672181271275205403677106637514536539843275880398857506052060082936106574479734496630812809685130528184820570004754876962845771748288871405271612805906096436250171953821628796966918096165484542282692392844094798709717661142011215426986681927665123865724446064521245556528837844613218258445917560864312285943065443890728316530587273334577732433159041078574665544439833370359974885062322358905755439008648250126918788812897894396062079651533348321341151592454046481871452692883528811032041349863107862273654694774978678865713767528945125877401743523737570475511350132947742275847371124476707338937557340219757864302639654547033141141332300301930344280267853961917710201969422388522082958643258908638810786061630871725520305141022515967579939134923111961691828443651533477416968557800484413855793442887546667998074554873145398065843160732336642038362769444799074151431589547337965809251977015040900312335338951086777292240576559092035389985918289897775177800399664038088450459220960530045742987031858951909830016298830148186938044813100752569612156748531243927503238830072456768795821006782426387196487635875031090910154250054072000043713735162495567444064555005014949953025066799703682073808598824647115642857338239101321656675935237839671046666322665239589620656257303525469102135037635929033417542480271234919625952282521511790403422370098815952472895211221023981649624331662993092572897127861840537624204928249293535929881903558245837493405840797292310530842138867004887404550734654611601322822300797417629749926510544541439806506664518828247295765886626688320924432854742319877922890539687264403433722137029016370880047984616885117635949184081261843417666260437335049330942414661532885316922893868425920977591449670714739548589553078736167830513177064516634048372120897892834374446476156311780805569371873265326403201489382138269309029432969642037493489316341343100503217594048964271399407379675991315813429882825227916269200452905996409699845505268625873996630964867444479916453626661379213245060973451242914723930892030473147099942857803439979421967304640860742759806191768680479023320116311684455343986674903330295193047284479121043458568168074873612505311814900503864745749212369535214590193520730533870378111282653466666226863994477144695862031132069912198312128951482838964221125669800321355512844468281804372462613324448265757120025231865171185978436802568475703750401099014313931521200773021684845427016291045991109427337951943350975269624727574001927495773543426105343950898168301821263831476050590767463917156060768379062112619020700328854637752735816385602372198526707102002191832155301801412372188064565937269499577491774551258371608513580683683761526916387834243718290635031744549310704194674885947341484155002601573854041399117309611372003707827110268701138991840827715292012078953115288518771405976514925091122246393078710323870451874226526160599889370432898344855074146495846491502198593476032102116628779329446786291980318614592297238018943257848797155823038411539778797588719413062794108650712267926396789156136262613580447705556019810047115860929107652284723335184945026193313338708680811493291323693235878343442000399420341975065569361376846612855638541507048867682748146890073730544831986118922212862519120964478189653459128520229652800403605129989945435044910292548534517549619553579884593749373343316132856844690549344265766000773286326555113984327199842578348296387579653161910502974371202373523358700064162628745643796153993933978084459383210120993459608022176706008598436581380964657538632463174760893456469200575287601289540746736620090771226509141483744153581056875475312445797554447543773572563176211088700372354816230575555986828578872170238938163809135325356421099179517187530401203839864570110311582806283083741109045806736283060554896470087493167948392245732601287737064317675197468829298748720417787596219459761479467412942961532034248229092084079886180806232820649445688040900337419269582274655238158597426177849430487251291015028595441830623423853513188115951125326947055995261214643073025039461585729789919609143380269739759805149993770662649667618516587744115196211468748728097704231828597754234806786575565958276309923042675576467883962098729133373881432151645503718566871924248489150378989722166608783896398800787300396343266461875120254405835674787757304986640981169634197562482543507347270191952757761707790184065050037920334191235224170395196412360613097036736950286737938428048751418314378209078235612413021017314030527482887746701512273285668292212341912180483348174010341630908299342398658507047382823234646334863095602884722005821372025935365467855313842597749377862396718622826707214284958374945447686772783962859891631072701943080659855030275265927141976126141991561742698080672924884680391995967967925242275237694385419921910880568411050461075335744082294111967707550921356502914611892654261678102686660365853165025105451525731475032718019944898281265804389667841182179074349598307246836273690078208389660595448048430793491013678799287806701380520938321397613572851849008195860510867044511712213590856537438772291390567924329138780705984935815554691539465892158171145533582731337543731235870464309943337045148260953288110660242470075657398330419578917365322906206778763304788514097743862772751744324289108925137320770402108419265903444663120121325334752567735193332086637600432766580769872539846847142091444371766816277064205089532867365601419295910390436370459817677286355363459839457311167265933651206512529431338809451791636160525477419406306908377621858819479531660081284043997998641223284372874107522618211313371894484922090474884286662483720890305360028431650850988343984211254413229166673787930871123378375761591828866714534751615824532368753474598365803467017711900457013263188926079435719191071362942688540190454435470960708170576473769690454079850280861262300300263003067319494929527676120454332370016925958471153848556630102624689055642966001885142111847480594434867378440569358297490039527650249391865002378037693126863198455631777353981267739325403025656112529135358884777618641284459014307409285333010551626007397904912712305920505368519719084359697862623118085898512079955819181986623013178652650144056863888588127706250704663755876044128256205348401249373044908323100791034799815332446430876700732480920511675707489139519853248518207487746268342911258760671882435568122642885394532363176565778533057494818419913706335520541262759572394323697347018181212779267781449731447453706688217606386757431745902534657627717867629264744489039381020279204641206369359472564781366658161772854279648646600269438700522016508828985304462384842682614490862503367548700768120293016623816220677260522360731157014486439098673442087862964651499130292883652681657217138313390885889011136493263411445224783452347358704102124988134223154370819832553842930429722026729650666301611400163603338031388857899045764990931122330993431076570816616422972629662983219664076629543659643815185999667176768905275557284878238028437994280055838849628237608594401623193961918235472612152697414465380758132765218808796884517809894693831860956152888605453189759303030880939042696603645990365184010419121181083037875316339197189801239633207376045279299101511376815068651950380510574338910853324316693244382563833125258245078429194388476782276589196692871461517463899012984763942907339822159492426986607970212775891031811876730757233068301374253709815854793493203394229977186335579882236809587455604253316813433067179676235371672952017109195259515438432775779060589841061006211988584404006061764391978336238770244968419999349878277022884738349931665184672807886239477178482770722496238041394222284879975081425452067456103191878925256233756516435139460198792905458886532263459444555995554714427342274999373926871516195057667752516582470018956744528784800156554571722159572576983509746440028313912460880106363393274909721721885143622632402513083499809202127157734347241441485699009351616756083241138990052266488848235851390449541940713003971450014971904738002656807511417082880751207637852337656722318651305846877999409190263322865584954468753952353590428723060135080950167759359558912840397206831015583420884571988212006953986060113197551199879539624880823130473498881412803595131836433209553273718529105994487115032516028094927535090134819865176132156525605675654533770711415446166214115340142531986211767138536764407253893999677849294828927012080679207394928920296282742676765014650460826433163437590059861320281788287686947669353764967038698153689582633121887423613102892514598366517724756994378302222149051716196669202594088289601498165125193388751813166970084093798101470025108778079342593329212757885112915274896420669319194836650430884790691204893423168114935470342634549962633483519716094997330624605553140047640965931019580713039114617466460395162117285725362343698746201575287918939560762595842386626474553139703492236549538317467792033064841444762696886707119684861770466287479493293318956754160013519590181897370614164935359199464489819067167487822385861593072157840748689993660651975997508681176575032437688635612017312449312958821122421090827827336053934133117597525164221031365124951695291684162930247809862440615496615077878754281711481431748550480154949043577522113455850970862334186966673119100650538049905791150500337128469042621484938066559208063210920734460307667706861346795472281516120673115306366170680592338372578658624509484763801456550171765366590602390314922413125698259478100437102216299166281867847600954504634860220744441063846466800817777656874676436145849246870517161243388547366007056930257656662149818098907009222629082870331888054676411174888177624815768467270456057997950758123289476474844187794043321883357744832665985232414810552462697467127203042214012953678372272499796751986423177402625051362412627713985782847749512455921765554042772719391364776282751267693311696980977119800488914012075921361586466469222554059412888556423809647544690003531534609273889682461340646526772432991692571731339022893320846823914883366961445822674150484151297342505801582897010252991485267048667931324578400792971175349557348236242885870430481543297202022885505842555533309185774852803698580985027466475290094087240070531663900660204854259604708244264024991126820224590000078175799975040809827440246259699453390413583946290299068344742735974142705668766581030539046331122890889261372291689158741846891263622461409478393930072006171556459050440133311545656988068267712770703962807371820621635544134927377944784002897835244981517312212292960730192253700370901958326768165615297052595917988874689046849899310237788770474985750537544505573862045791574630701307088560990925839345250754346086282225626050946851092804672206795430633070124937412327476158326085022942910143209082303814624189104112544807130305915481598096660485531892812420804363394493580471603053963081561984189771479470434412142011170775769661382608463313279043370282839729308766448562497590884210915275991994259254295560237182677174693279136267801307095407682915134428430637555693906969854107083784432673963526369510468591176244076380326574934749613914634983900679266578154481229951451567826176663848589553085083822602926057606578942508396330142867925702437030887508669432307542018587396355942288674690275696187731656496465501955450842174349878117807880393203269124423418944159494359024577418949007851379450593215462782497481596203314870678635696034278194695697561033384222396450934041863322247400746302001256396901366810991386966794655015571849231024844948204886804848423804718481267536579262605248412992024232591431123806397581715649229941722576691056000242114310534209299647691994056777822609723518708827939193376289441296298658981773090092806103224547845158023253215895914379494876420919037439542456790754679661103960086503261907527778793831923566381654599479549977392269664461631347479893621282400906292921084694505681165588701664392830875568630532743913348549529477092464893675786330431016704421993988023836658968587506832574096739311928438073849609705608154933106394212536060362260563548443246932651766750517324975056855831287843567828824806890051292168905314983667926913427755620765485917715011403317778896659528774412780348648931080430219360190707475338584756447344444113432877697146408688650257696086368311333470041127436992394612086293339664025092085095856667058057984908407904649262481073645486339031344608489864828963622606254302740169728445406003408128714779746354677970626385218757577876506431876727853934018890622799263740565141602890192717125853332806573209189288558305203568212087804574399754830796251463091095556824284695130516379432455829340427882362712111388259148769281929684196777049070323922252737772662808279593316900643962242462276398288490622902144389572279715553811791115691156722016311873383005949703527911123424007746278931031012480416304745929119769853937773999732830361317092252691691691748478904295144665163868353560782887269059453660561112927507659352699542330911299938815812517989825984742034125958692037391239158703924386042887326601527977024866108716467823670669505825796931539602700234199163214287874987343825717649275602850622865179654488439582416060189279463369748502536982147317360805461538635129244940431716573284386725277537300121525280386958592247200744338031298201152241784947745520335075617603474347891981143508108088772773063045382561326539153188677106533278598631809866252898535296993779762727452403971453439636254227272417316152720945574381326655156776488216209089170539999782130246217217813802419009082016435697734829440186874998668887620707706011425539778872870753892367932444037736466082601420341521317566592687609604216737902448272056452317418725066195782207189038661769956349965269078489997582191138713783489238721368363667528440189122284814221511974641241765782230132654540004122775104983712660434119131593646824807172348475245274098056273391400646055732237217445873787833348242138973070676008286160098906944311557898335972754645836629222731735509368625318277056699570813655727113640428304834991541321411829025683664438081162833204643622896444875567063255298531920107934552334750547846147428600097003443307966487547562898407386205669764487132289968718837510881437600561467417361596975711950916871452563107373857899286789644772494934507994800703897479844001919572343108954127964428919027702341872460027953296217296725444638713264386771073032817736568875384750945222903027735557951773544437257526182610978500539887101009910610271678359532800737629811898367077072574652815276297194997916939717950323012005369944963495933178408592345148539129757448171634749448299964892322662238979735382831496588766280158553688099243403346299346349282897526715894900551328293651507972987441717546034041705515240332185350779267922535862976745138485246480205355463957225608524065648493576221377311425940465751373613611490168597456664770168598932804583274149598199396844555151640876707736062028005120114182507512744963228279506245686080084763300339248637437059733337272298233425599379238414881665221340755834282712517254031061354238789389815450028012639681047940468429379491381800722167216352710363616934975697731091325474991008867616897226923625274748033768863872511048067844471200260545636679537495521587661775311045023142908693053109701653790223856583773308602210357193563760693742585555484826930530508857758062952832479221053407399837600914017335086227351638186993370010199185050124343346674741680997244704265444051629935235373992051583723949794058769158199122910405665756086641363449261843062710827347485665602966044173515108364062567866790340208560489425964026424289219427594488151782039584367402842427808138349844307099353506941235746507871809097145656908952229013764103085222311194900104357254093890224942538499763338905150674884155916903862380401425530736489832535654573367076861350852277342464617930236208173303282339960764211033445883440941922562774154363167180814449123118922792514285462199806578005214282052768543437469323577719530804244903634717895598037181015576662768561077152390749613406997615876127983393603897088680912089218110330744029105367087188020131379449827437775378260667421324806887783682818419994720545446179254341140360872915770111344106109973775272430542277381542105248884430408680524432599755924385188409480272086400737999522923247087512402630657215344517332610019662781652407323856951077346880459593279328102409403999435772452723071324748758482487405043949938747485643931523341954994419779138472705525939122546480174037281964364124627096501733588534057659354620622884931759084935415545914654695261556416273015882004105423920220343395727941271913568174044265862388841090471397236153039994146517175889467495315118277148430199596085371546061797296464340615937889052531770070761135415679278754735393633230200810856005605370140138334045479670404730060575966424915512804266801831020637849886972264961759522268244860328657897326651726247456254384520627651774002937216184686041627857285921223202755712799409531012814694723668928847273650410378205042087072696818470027859864560519129784791425554486174763013837947485135472281329129919263372623743724007035221135990435423494304709211006150124137581837315655732598418064698023001411612844955920550492903904133372616266882764626639378885857986778028741201280870387144743368041448725961538271693279682016764089359832204131503632791362760456587470437795897473506412644160713420021417614947964784618948495876190955574080262343560580364747305849676263360572168967516839885456625741351011421683581216213903736620288711368002407422009165115421129252670819013192810040780132023343549132953849965314120905167609687589047963628458963863397507428508138775482005036612400291152073733096382965998445908891108796592576910632813075691771380213582127429052231109273975993232844943597818939623554370974114492475048012895649635861828615171819234581157786877832816154583105229397845011599137790993372114127964356121099809020810775198814471645634725857474142382047503023114375033406380775913714455075883428882204183100341965866260820687341531002472518708623741403080146445813593325258339856215974224547023230932321361799170552914204849149724385527354684967875275542354763149477861738048850319358433384727303455207754778691432852853474272730789875808277067938249676893452462962701274976376811858117991306870707415553739324458282009117031013594147079501883747342240736488150719577356203570837122801380391487004148644235718653300824432331738670370403024444892588468426777956801031456180658573255553830034963482642874439897347351832634348034020655738899336725189600760770362451762631918189050988439590066518577134534205276352370241881115963372854738600432261971406590901704517134163974430465013321738513264218488399186760227443132312869639912229711467886945493614172835963302408807676728500512784558994054845065480064236396506007462038615319550550655904857558182633761363325885314158707729517283193702531113417508115377333279541935022132146722454718085714496985720922489293908147125331644549559881864377236298114839726748530539026273634975174609642071196845864505171604374730698096259003804116315033060126119508208909621652886509492742361495151014309557857910404543231354683615038640576206518185340863773106000090507626954719661039408235490254225883177389736844782771619508380369525718713039713197167823471339768968545857511428130002359872874896508656189448560999826472845097337088468722746390738419258306177192224807882308296349999227492852288598329564163466992252803337895758267339211896989121455437032253148869673707297797629535188449959089857023802283995405797751853816841306139637167385228467815067143976103022901391780715427805351964680388813416182497880871013871753160399625512255854728626132532065895980339015948700089175719070771610257500572624037546703930754785878957007952009934637927544897418315574522297190967877280448222614715121947696578542341842771540384672590185160189053840288675714425094309953071090671150310247027446602767909419758224447593890048507377468110181526715747488380388348234656024581096331616748292365930317585912551451153513052063646750839411594593934846434564883077938810028941586239614307789616339799060832688720974827326061742990276314474214246857215648365025754634014411008428245332425078642135834704123980897746452517716033597319458801210628166673613031281279312238348300955143737344496056391605252702925394458867374698397999984124810905930613177005930869161826897691165716809131629175165088803128269651531747963847868509443766360662861001266743282546773625095016292372456781530308711971357691375042191266156368663964666619093338013513225022750357701423123926523890965958687479659468439428227309753793957926388617227045894033449745485744754797505273199685831774039830002278365710913347464182660806479280399914809142299681892074046091855451606061134258108368411972200692988770533336557945116239707808778598547827442733964802550644401297058377209779069228871140169200784032805317582662667470567370595470635778206544505148519266313943761540084226721509164791746087243667668724229374221021242218469649339090090804465775701079928563573953273242583767285641278984427826585018322450009755074377239800215159784609412865613214736553571145260727422780245728713117928386845668650200104029752889753790348824086382819406820295904111626124475059059495661917605334349611173550308747429843322974506621094519485754606022892230206419329031465314169077027002968476329524848565124150749734643254952830382288300491472599918413493555387502469829246035393203655379631334550957555716558429091799886920612912287929808538568340792621808314177026395491235345377547006536714826582335699759564962276596937960228391681766299307843185056047936697581990709125418018327009744999246708399474296740438646361905737207441889677346736195451838178500286961830722551502066433005025379289419770503633806522804775548255667099060971739740455574452733827121246790160679110215624937632935010746022848000504631741449442915098624918554374715847296664475121712870130885141233063859974022514882044001019384454456661798984528371043745965882992047926072024019825929371409804624941839983242999172635159027697373747657483886255182527342276650544859637534117468479272742713305343680392620528739955047855794806121954227130643650824645323584878109937187674514149402277725691716498949188052730676358419367133471720164719598067764902263500341752905544792659462902707916327332513596715782693822810987054496286084378524359481764728240714047071944577190247544311533626309107885710861094781475945988211057532797598253319819974792655386780563953434970913252260137497287475909167529170712799577755087900031900572443240712775297043190498751822459962124234700498641324090399840152960862541755658465390359369956336044936690465597990009731889086414604243627087696108588266311204780965300516874345828484188423007723082072878025130337928258855897078200981419107816682808793896316484245503322733915982851146433405374530687347762478571208340606400274918230555987030385889950934708915689645301823883467111545622962281473270933742452242547021377206513113163379919788561939052286402321277180583547888189079858095574978239089714592260408248496577071805721758858540746387783497469723810404830065808652602867930036453769766802471840031994955793098935310601430151383157800144984379624936580573883420736911867440122340402440558541075826865995769444316047934415601438305983064793669524583340080507453154717366328072733664453677030798828424770384489729480180835985567413350345945579529616572331113612004973842684102014084426199726842971771155637427393681236004527730304812938677602189468030025882549127487751298346930081464291280566100878804760314377278359561678208831016638459594587430761379241187017367652361721660730693335275315632157611874094656579106474231488903204494652483372848049613781675256686073389053456738200430250692831760123315566483820230251199625167522202606716612945480811346663893077306239142951988164045349197054179850981755039342083513439904099909415781826200270680751946121667512830716716015379972676123668741239861702451185279643570293958400213140848451105304402950592303215872226441556979080557836729188317283908933218430755098252200526072818873102544933802989317704634193594969429938147019510421552028281634107893359951436206607493834245715627513588590717260493440685049106223906121138893184048191154140167855184221278966420998059879034090248809804935724072437906272568818502675305250107372805850669058650800508857440599257569650277315019512668272158084852772481903087592411179057461070628640766702078642652209130915635150337985309338217288821968149383775550451191507021822228067778072002864196833171667483166018586720368050891750893172999775830118920818885333527948447923219983453826735263717877055691557911571556400443757118139703076324424381935475450190360631616662200186354834210778346469092342007119603150850718388328056037836482777214009602238789311136017892872262984643506174639898760936990480726271016254712975234407906289177939569584936733700664501359815384278196399888789998019067338849089932202555277627541605301963878545186076516665551650783090781861947873459032589014041205310587959234167357015078685138138031158491792092855638018945009201462090141471904625296276009223010012333483575277904212031295517403551968165836742001776949629605986190423097879987381308497707386396531521842452285277546472263140489949789181827554431089591566206812463475238750380671274178078673634480743785185166525319545029155422270195089124228685558472725126741234124542070496930852002185501336204903919859970329908961263621791862021864829872522336298359186582607675023759754442880971226945982498366629618920647820819622029069716740712881310921688309737149519276128975921384200298117135846219386785434295429716262063456426125411679700547894720298754890164465331854863689969769363329993313751593686123888573084032521288565947334115992745542008565788252130637212772630702547214788166282633007516189897115852164597210487497428681120021401845639460112311348073160569774275398122405015563725576023216488091831337960669572430718999511363275101622221624442070632606168993178471932108557336008929575926863488696683231806243689210705515659453392398330184289756211189433736681003111283897130667267996538078853710277634547774439386598883230781258745924545386273305079116601334057888470957308010395622235719795968393846164679796144659994128384189260550749001701379596521653743969244782697718027244743574654599427646321022117398174041923593677345550168731249279659408760643487818135342237058863319652140750624297478351300564522241340020492088771064930487318070003254838228927150986136725004769386189365052855888738164517668445863548547193405114591076962602082197384739314559863199365201646162833764496720427400497774077434625331690576890503416427374680515428707563508987131710487297107526994953041607104234366494395286877836309407304253536369808457865837345975838096651324148547661470717233563435996076248075110292954879953466853783710612529335364202071175916876335995530943775138591012688552660035762144802975826847666820985433463622568463753817601409734594706231653639909226773819085651331893831588842830443287945482626334785906639746925976438930778781546709681277412500770651853892013828399767534780831973602607500057196686716826398197982195796652588184577771572574770737095949291657041347731326221878852080913595876120930864904120436808454119170195094401100167633721994038775779064174894842330785125644582317619410885299116911977312518396100467256490376858055950833599964725528346210444826838055345970289858518167782315912490620791450064400717426540802301966451706605601782572482982150735058688769111374088099972657347153646731032680209121536766976808640087565269888208005203825061039196861913931490817545120524664256467926527504628950283360751607896734109645924923718941088474576547960189898077685378523136084089775007862217644772683156960680904190204842403318075959236737654602874029946084453450193689808064108520752313086313263140281848274623049517364650141527517321247599195143014850261428396868609925013723295322970583204059766770950958172979318341682687092135708294964000077972676709681282834744766069804226578127155458540985303459078127414530903098872870514852603000090995167087121451215193955895166747069092424880112776130875369754139299024759706178132322699064562277281463971945737949363760748859280386537771211530472751446329741078900833215305256190177378051853297724339956454502329279972596767968598361477578403640933869469843743155718443535567026738551099643570677832154280909482463138810909054753733998221639638927575331006242291042472942093963957568218332857223069928347674703057298430913077092155639654406970481178260797730807304171689000746568391994628315279259835265019970813563495012551849669765334148171684897995922013160844311406978986952454337773147607912548620254534063245119111871457838594420665280268537053132447099238519562974394997849103260274533882486699355513615559995237156192175826193086172244061484676956086992170236242238661209961351322212033959667592308680605609652012162740719568800950474021189116523320867600973640143302628269935654570329487851562028485360987092432088298575554779076229084206277425227508964986672595499789513021926737897180085196282342526153291792094468655024597211335704092387403895801200408744585562162363864761397504388661494428562302985851923875770692565734553585709208461402565788074020897142976341951399787270268651862839679866131152393411133547035509595049022807210148789358751757869882120482169401287619764107255233695440867311018745791398284875932619307714962833671376687075648397602335864218992756407721072945235459842971521640798908052719723861472440110440821783762197921349743042235899741961041661221282282498547870946307934258591424501008921850019637994327284453487788161410170864787104198197087875487444817292878264831127588572310942568353467769480936914361871773584608142425499638320843671552972628377364825720096737853872690535873909823878196984555732282021000125644441673219709510368613362612068697933362772565328829431479512058674986672217418575860047040557213313975577444729777876981836444901595721271797047105071555321112164991206970940395477280484385044362643386362004605668877641080556311774020345682802948038466027614224007741919978591500582549024012140146114762898798464225442567614349310042031504388593049629944091807852948778797688238364210141889632093532357889062342072498334556142585824645756776259009488092355461954790913752735486757645942719552281411175066202398356416451972030116198319167376789806678413375790521749950563153343732951610168906945275733600360826540294566734803321421229914505454373459597452896439720600366320421923222932162996508991687009788871784882454117139563258147892819034915446817496140089153969817686405444902814651393194923067480032091425203168324632194048438115848035665907369420397178140720147151631667158282938548952558747079531783729825761034901399435663210580717639352938975214322159806999976524540873751865860473605722101546246810231811079577212456911316060578995438418244519412220973219277769471472227257057855776188061859942574158542158580760456518898070619787038068076809739588091450539910953013015300039236824350072276237882964871364727147912706396716261557188230467025130543595880070643625447800430086975553058634726378881814290810796385359775896949800200448627802427363653724252748476857621290436482259154045915452334707357766247769290590705178602567111408821059961662770625806153012358535659425662522202347939138131535981754572439361998909069278588307297751660876731462202059773626868103497568624127288358572622808727589534940651044079207137434823415260991964887804185183924820489810805575596382983645818633932201225038781687669732374521501233342096739815810796009797686403264114772609602560888649500538546792777635404423097615365514438368298367990150547922519676887966048509677391302277512627445896122509625344706183889339574933051292128460216334171065697693571464526877346074722282124907126013363357560186333260363460501771404364058945293815938820324686714550647392896428190855719650299285430670217449195442314933594930548116091206076289845954092747378981879306960409227661436099271503135963900543330023464008164701862183765225092871167458274365599153947502017598878926442973962849033587896649774600368587728295030197047041870944242508200342745351428204124821332349757001137603923357007026425379196318314236497509971490989279440747040054615664300321509288826827570746647049966615992059369405999632200194952246718733985989599572766479854126643073034281918847205149144463976215964038180392014931500076308833702567968085696673782643308163602910330896428622119144794758045164850837585624267091708727793877577817043731151476700151287641534421170039746178901126447802009640112647388109159209120880339041240852432105820603964223482662881137845719306086543710658447098124343137464451701876166481159293967079051746587897444029095754501810666010372743580287806244023202510749725980774890075025099749923483101970908135452522824619937403766643481333790688339023543433463324736591797046232706239114557464977465054300160161464615988238570167534887291936532358768337911145813251015613995271331717867025038439123166383486797436856544974170695152918650091344661525695303173274022076556095546335682703642954112095225660842991235738581013045518896530670969948744275083444679141322082704096273290410876060767894528289374328049748528040456639225668983540664279573414757441759888226691639597800208037305615646452806304194220251337517791815198459111750460419363060928504864720965283996774041418617439995044593538927965899913552155504790571811426201228532616155593067727565196772720623934878291553026269942543528148326230940401895304450516972182686644824442255764118280416280356388967523491217109146981576461271642983684847079639434161563456894880896557621674336740743384094250277810632163992054231864720180859672707830388438644850866635210760775884033744499817920582791953243900056228927709852286509824115627301118562312355592944788989739057533257323066591363324798732627610326096882947901160268617388263395058802534864301341579898887075738185568558476526432354994834474789653439597414520280132350328085223797023657520889701614565704562634356224967672579807176425476652429360035179051515744728388749858856303574038529939111261605493261805464982865079073341149036355000333377661493214385373982341537299724402710431079821067572864168578636442715002506644395648103127566619768689301955857151874294382892418405705601080462257748817750172955779068724625493979296259195046133779058870738914484907973317715704984537359438387091236895700314652742958315705020594703736991355978939595100596367283338698306733479790945065630699773733648408828355918064669818226745082672355907794634471807456087654523810139236943438144360058744688202803809445280637348850160662092942631253600784218242178799283958873369034466400176431758845979227000438074611089576714909316944310343496918729671502290068197937862876045332160491811500958123516599639408462815159894899648047936697852579211450109804559796457849486157783415300801271656133226650988853633025468296906539008638343026515114412282249410066469410749697802115005483189498638027972937399240218940716816476235243119347328396856764590593009334398127620757637696845799461496198713025180987968308852509125203999155861991064091930365587876889983642364981664273631021672245685920223611970935925265166396555492551021380658923110613743033981174412253277509786953682260042515640791481898903533737796084767434931681979786725402490512936377042917224230132380163536892546349621677878602251040822312932746767420205419771755650872514760444719766923610433783343730704044159918924469898938583624915535103192589211363304001270805305537867662192389770216253031253325283299320920918573773524322164644848669247269890771574465660418003754923156902549424517028999464326955874071717659108588674852952425322058398605235625979065083640244754836378099628603298070852162515923603231818636530409039281313314671118775158055627997654340043344378335777700230101172794031371845640613137674106143243318026308312515598259171727160536967617632979883860850455271154740844181884910558123218309684126767201088604740745799853759079580422347036865272335385638428531667675191442382451102230007200443970643575965001008762022462214318769845913667183088287028290413437817091299093746662542699263764867485829547144396007198649198894242631563881985457541832858843754028663549227374576252159411686774361388518843701353208010247660694526196760367679699427052342844282270109400634040294249913661758679741898778774080388495112651273371319450150332322824216222011555938083345325749317972011235929557140375095013158464764232264821458895967197549825645755786492170277483669793665969236883434378251831950806457377868547840335683014782424739745857169254915544160753291816624869568855548991125080371818785398276180787729416209090993788715641638087304225672092639932130569851408934127484561380647487884598213647427518358818067449887855526733387174943288717769368476854247964066775463255118292824282231197609222632591977206713753725844010132222911002731354307582518983630200961687841259912945489478054859556571363261269874861977308107642191819955787996841557034697188058143584499483453724867525842195016852432621268315194588895643953843476189848645864273824938889767381884236202116996937412062102230419796147697411893707763407903080375749174552145294493662783017699244946338505841960543679153434942362750865544477879749318694631997814598797421834975691274314204820831109189612683024274712064386286822097849218983642913508380848892280517810583001883991383745296897157821130557128507983428490054628729142352945866393095971227665042006208883223550533913512759039697001590274467460406526325438630057733699618618448404882923385293859175282212451105463260126182363127775538748288543785753383489916356562827053635813420177989026817957406931422340523819885378448907258456191696136787314059040749662031905879832679603588636442625069391269072019014062681798747451657679986002816868572972977699513358166113688935344149453737178291914779992769822874087862891416850391229083869358120173108922513139878877771890933976622665877602131726620415032995856314756726964097847110389430041692814703506870023043336307052329310211921479555771448392898883039616025388178401345246248227063623263126115751159814920294367821609364578034417246309300878920163889196701708778768622198306451563470714860647548494949280349169940283977555017010952652298361777096199597974501483986310339973804786803381155045774307073137859355303028123931450302890548811134181319069987690863868395277248625940385454200571374226864464074143074649778180859124243202165785014832597793874440155033718627768725897181454943074696867779428122876934064577719768368798096992870108475817667409163414002871444224078940805118204421400757266041278552809126248660842383892675755986146524949623811955293320448192983874180490375533629709278783049625319236581818927970078410290049524520921395650152103263755037422007597208969189787231341006908794202321782999328736117757959230639545891075306862033098053091279509102660567535004222474724980296823216801794537708366721271055795964905350488268578434919342303882347627755472440050054788465431932750221084899155517508944985566878510260212731025698287706603633936990286642895782513191578690493576428066347349607691099058214889518793884616203761637436928762198564312612792315345477041017728019970849417940277099825163995096652323343866261756312543946384264548499419749236554858796480352079894517032603379884336483572038440743419372998916593155877449859276473547076782616593056701697308602967589969830890539903299661869700592240722796493391089232928879063541477883258416665906453569070182191648913355237419206987325643114940988123968847201889145754341191203634453052281026758821595366062875085321707256722045648241276876072677931543600249644048648521203299137081264448197766929856402819834542008845364399838573783958646489157625871866482055817776864694597275339256816881380161676051962331252207897225894848525360270871390077385833115901032556269543283105873006958506186898809187383969597559733542084542814704250107985968219147654465481505315304833778075025199730729879183068828577835389319093065931865923683993190696975048079526853597584818101866249056927670621329012317186745794271008562423991242648477731143219193154241591145804868425722555954943313920178433204925225317535794283192215175709113586197787268315765580778971065902255753401361018387034656984084343965336547105515063565185248287625456282648428163166540148460247567943806920852452318208685424417933554707319177843684593384800309913086543698390813632513288475472105247346396454107998779527975492788846735583386162139231275233079526298364770423250392961689020431842444146874542770044119927961629880438240930739101102838482384281712264285239680044657355750708863496174189463543215143488054002152785386542656045771236106023872812297330905512702030483817898757103935313359341190422496520807096454430580148146392401159780166671610476144697511484806000151003223957515859672519337081483045174038244047441615399314057412309077073882027779225241762782562566760133873071453840205047598803777489879054903276847392841526528193941396967381574168607702636227932148675445843678055787699719831889961591918115832019952627110656434288594084127831468930957812519718201432269764608576161235305282568950368423189147051134312736376689147258776375783392451826125885828786725685362107487815573716520402845552110489641832323730730146684179654289058879563542708764999454528526856510273092287702222102667271562198769036438112879991031696572919803001778661809390313228128567175878804747726056835155610395147390448394735549916976924954803670098555407909047485365767765732584418787346138799955650495810520828354596168331824817647940685378884742475171599290792279505057559596048861418068419855123130924769914461907901160405713198009442726034831301730717615779077326243427609793298888451803473626491652259941255381604018065785516162174688436893539168671731039827718292783778040994167740715953452510198753678556518152601586137566596173488721554086543720587751355264462126804024237926518739110322562512490053850424225969324018804835179005128311490567264294108777001920281899562699573590949657940475828729486205598723162356637760096217176933695730010737961828586580378092172543166164597372581221036418575027728668630975534433327227924765151251771947603928193283669714074927863545609126952549636089821939659239798664968001539115516150635415605874571427173433961238359953921119291193677466907016147188425895370669794105659761620986437768188480691187911418354727168758361174693659335590687155189596463059238958126808636251681175204736778692339228920982863517166766020612809355611129179076796826811908547274516593819586569013316045906514659208823201516593798354106800358285584696104909966016900526321415444374681745528281915920113694622331499526334838652108901314359315580824157519037193983235734641874752353945384546146597266632068107079139840465169020753678918033078578033732533222584788753758603511254768188201013299254918105623663133514813036467018548620145138475424324271076575051906097024058507893980071981579866586133321931060692807137228604817056238459441854981743989345695946313208431067273586177596337159947654894300103802930235426145132686216922001078384714732392634560043862244981215133016689371380567685834649236140530400940218205905255127300845758018997746189476077223226330440374542373910505155967699472405410614089432637282938781371079219354785731108646539950145753441382716559800386295708492468861127930710348438776073915447707380403242703072449144388147463446509778833577508016575517257219754452000053099724301379894465112042946175999786650953817093835213488653255075765912403963349588341744603450335933379198712511001168581545670957752695800172321990619634837234011465740954657577187727849888037734009228452138574147414532823824572981370469656516375557539393695945045763869345586212498233974815603268185433486519119482755847395802697639159696274887901116538277526003523479903165336555891169793955906508824781665911441889716293281162985584534467922095536292564536824437834102733229126271286927708383763595769830060325630042711123762075802071368062038324685892815937412647794881163762409183579829609248992770903837489191194344789927206203945455691891326424954459396319301202560492308930465309688820118596997490944893880829600316220030691650941408048355637007379768897577808168629656651583026021023826306722866409513296660054808726363424940948630661709655656702651368099554566103168174890591549592707397956110981077210648540671141693880258961219705345042574656216564913824159154257064404380599974509673455302737079905520272533592789707567819718956214534455733800097303921377914726998587666510879592666685414705249533607636374321519883179518453320389370810447179058599821188766038750253910819148922516034780869127209104640954117390659713340529291689255550808609668559175942255899947015455088742335759976431367608124409999917733526396990527111915135626020878925165993151904356713232316680177708381189213954550235132284390209635048379665864505690081962119309040928283692571906223317053338193987104980362418899814971112199722309713226713124725917573906499960760307635554563647392058954426822535620171903979119538343116439740297979666562535538846176293739254628054775928379298378967932275260540042556251687772729844205569339245183170189972638662336556374721090575928783136603732825711147711864402142446435548095366172980975889421169041287001577629942297258929126241682686594922594355501631264988910844339249243232432277148808115387188918188244412118973975119855691439984597102954145337973597201674840422836688445417255490226990085652759562532911896546731814033943986651403031059160535916649915032508213923445802453759465108740477766845722877860259161734458810393081911804682598540659665108375655494575445637558065683619199518913078091127588708740625005722529734657392710891735404814079932348114878616554964619009857564134425794141589285422596460126871418919755971142209992306475740099924030922706485891735522153215296046944117312565043261099109526336660070151223735311542675876225015784444133061293348153398633125895048935791343211190112979114317503486099570611258531015320979679961019136112683255548532860573001615861676561018560479611112110284668659014333943279396300120423381927452387112718593145752650957780741116111052448793251816951908060254473482515176644907561780917984531127509553037806734667545458824340325360648771420869084734833514176682938886111436291114352923010912559255440972919329836245344066340109974316297925133010473905634919454369848959080382350332321326806287507171621981044211093994433650327425269195410467668792562765127455890546469923346678613610293307205143457275132196092870866783631249681592785262446326714240064066307375395375997169134132283660104657494685039383544525509962275076565899548910565621789991244905189196834485912096005004797888604712932143553950806063772003243032762873157058465537103473879660060958876395687774141294906104941268707064380878339875508748304158245791479183180028178275470089401813750428999728614044588784749923904077886958632468214315084689989836757825830890251669636720088481859904870379257569403938995328108037166891433094612143637423087081930645831978715861205941361632757222302892489745267586809729971744748822051946610585771750933493132315279281504763876131249335620862672562030806642853087471231604062126866525238384360453108059855916714970930440984417554012987508138721553592079365413872192869433128945677387136303396317324105405099606675949544393021967470070961638252746585422596389673343589305373131596468593886896678184290440046909482966284963682349723401789403407947150867185186796774555824671046504511783873295358075651841831327339936391798231787513517185781438103174898081774625723575736166579981592594439045543489199775222509284007067796936607417139275928874176192985365795088157320759029747080941459923991203328298627810043593294657690916733502624741347097511117244158181659954199665567933629147075828668042777656940062568533429917717338618497825193181653751025681638780308344857690951247413344030905420698944238622018112610671181992765034437243024770857516905846540478175946540946626007236289078814046334311238470934521502538829592531762564469185196390439307267252924836677921338078840243189200418327843599070354306238841665667520850563353805466156999363030167726002068081068137524695473960624351642216812012374838159653851385860261183875290769673487819899974044238450544197936610035733099381936319198735460606105652769765013886560220889992259371321880549786882078781000509279397766883821785359692281152245644685389000819207395507933918606752769552077055400699327877083744451575065102197438184470484815901627650144904689944006855034375415126572770996962893151714424820381277459316736521674031048156364091518507369956257149783942797441357305948769221273081063896311450063436823931207030312675469797308615380989021789107479770722865596992049073480784891635465960254451832155782105257818731698261588572172163810667368482869032918987148636614399525914209710343888322108167376228258431170378332740561588929969716581088073131237834052837386240091811596868446563664222800702403576189069143135185431058751750092963406518459529250875010121886401524073827061864536091589410843551110725286594885192705398803558550332201873037718586547579114549329719294624532593310071006458237795653381878233428265216809128454851360339827216923660659568748947470894233865982782995508476417831884569151397183204255980964832745099669367767236801544797543850358656807299054728970658717827251948890703764959021697892955735324730691035437170815291910141703277058410129629630266625545487802160484676950328522093011726775793879186578953409358734264857880642552793715958776690209719248034788678509758634151685869569451262703412382595330773002459250468959877109497568711362108643870923640512146953441031142545486912412914868408216829398727596359264441776350503941905743072725210790344471012779473357704135240417328409835788424122605997072034834401564909631162803692967437444583656762304936753051167001549227152612054726501214777534920402297822893727816116172085289537656230535722830247132589083919359691693877240352627919560196838706513154686322719351842450761592464536140903795831129456668381864946166890324260142334982293936654901049166869640340072109309591854075972098331789926682858538855707169601555868460314671551928605447988569198810122675879726911659033995784213982418189504750337331156608171016100313654390247506029130081265254984106856887815156586363599807402809069462964855025919270040058418917525787540597783781684378417481575734086917984464733210036057151165167437571345831198660392920164630222221701611541461876078550153317790893430913071620368563882385089731963133194913327075012609833603381592564085187638472542927251756884159251188264329741977516144250835673772295187486857858431448997950208580294772648606216323412451294105302064053497233100647302053528725194102495499438986816821010656038850380845490086498674550453881980277307438326560920849966504646307868904839646728716014143319611804458649491118426230966113717683316125188609242215520100723272622019535814505140907234917622032781513162743311139032665945333450258208403486195767230463308952527215792805371014158564228631927345935606965546155794858529816617819706047337605907056062925591909010619962466692359962921710624898768161885266472255141514247433318815060124457351493747328430675235751805227374800505500855580308202479262966753370778612940398072182603353868500023235442170588727914760970690328129126518606021780883772548586400009255469378694315045865115954799172837116833021003945895907845791808817084019513863470818665504874238581069365545305906008357310223442052492593536550017954343894328804528572122816843960765502967084345265857107606095543621353650117612678390319036710190820388715463481319603294312672601922646290260750111931428435044111565011178748268257706916038897533661090001242658965063406021557546480641984150896154864259675231950565086455965161675050420795300531187618199110211078035761546579189601694007852697971327284018496614622552981890931601749533103274307400254324233194771487072624141973013759099350652930553270774943508496018387465502737166264653066616557045259122864280103464594385381464518743238204968544891337081479511025749239057636861498371778478030678705371315417742340984534361733055458200352171389187710242876956439846334933884789405131801724981046047549749089985242727633937880784119081318308984255647413531966207895581704182962484143512974422660135960151040271734195978874657997785817435590349390692778505317115892120312366339181442780240343343430564157383664321593771614303161403098730422166965096784653282601960720300574820017129751305049794286768978820253919005319557592713354548562820870010713414061112886400094425042077483873242685078405032003668146994573122700183227578154220153259695095704779123091285242316391054736543458969824175801306636760345720923464113189351789809845531132440124841455723192305668917114495061509191544731758632035964304517175595437819672319886738648769015373647419728228678898381043376517071524194771572062607051265153270965672275466782855637412364367603631171362160235973993015741236012830594523278032947188193838646414777234129804546512791831760595490827796848573068348233244762939622111561065664210402213799295504501638669960583523805025948821256205912286114253525838176122186904607406286111767098454691397589345383753439000469743410082423742590640935289641162590354649978135744870703938741775170987683275028882861097293335905867788537504419132250845903049270862326807181298385358661804379909001516784049344145407033135099064165697690691260365834732054477076935499592639078540409623922669690076608172399067917009150691851835445879076407292491164247101992314520333924991019690487300275564067865019806558951799812396729594790288369944586991733605379813981093427349337570358930524791045215691929845215632025668450373583806312951729591639449694133998167651293892530992219502046184722726775104587511933823394209755249371399711012082301658900027682339041545222519489241034821286382150843361933336225943036146779204263568508608945147932990085204372611171592451308592812541401249137837438995647282922406958201326442312602214222888315688456330084439867417496100147229971595297355462501343347587309783854013850212133423189807970565491996456482755200336805408592105724678270549972154207851366020639809687703379810994958282745264372582725492955149383350650165835384809399864390355355885014446277335557088386179132443016431555006384916813840040594370793959716325245551757492766608160832744100534357632332127302132939484356867450521382645162007974229074963983999079189899510386209901523716899401700891486263999240899533497610589812348944459977466480656156396787305428451997592296709080170299440027961655984482910534273307689510588245923461004536839590975963550308600627641466680121759851146196056045135032058252251389801431984726731625851006627060139222164036838571242709940213751900871263779606400720952380199871313869953380333730053069393799521382448989000035741833317398486238698143773351833152302662991037744005300176988801297656228873517872517615413132964825736363047018040239568352136903286360023177183960174829666751377505799675713290824987285260852361490167470195181942107190134724311015947149908521074503151303016463028471676959858401631853313283486514764295221700111193168124824967813635799977452700572552658916215622118040213198917184940520019545535086403528656268448950596922985343276347729353428922571931614895686355306715999627729210099069519019064699391124266668036880496022173908753519902105454820504848290108519374854734040906187198010323453507884209408689326004311119130979234255340471392161730391555257514097751804133852741803118580202792250405637871393618464155210666286490602978911142373804367414618704723294735896454776662006894224172393114755393016157089700842629915326558171685338048672015868998622857305665363659169066773830594970575415270864370619070533799023976179281792076805306846835221163571067323952633152615592829468239957657332381991030535568187906853135609159113483380702729856249404354235535413633556994011539842421323243736941734036317689399836179383125541663330092488748428976796718647273518990842467936971825047719127604524320373255649417391876376665957297566659633688112654517336046138960356426651953677356896030785437487768553242224687438580708104226041751256501619665617324930709118383130790122094067088185269551900719442726127789736951040124715129490529322079741545884147131994019677169275276620581528663385657158818321390145905549990228033256270784468008787703183311437593657473129257048540000581325422820201747877389642182233050527891867454932783968406053733862300783001039748918836946950775445259115026956885649401742172933162648425059090424337520400334207026426324664462632548467243474903055709778212406491145353951685864931816128316061716092005878352010494081000008202317303841777727170644066920280613737773013669567564133485851508228214351774699015619721782935056876339352910945692613297136397263710285970823275100285608750721706210181174723580028804140962243887721764225400323849257283902968511027571705750300456693498780588934469505108338072913616375473526548281650594834731111155490426517887534085448346369051711064983793476898337419670067585656841638222620262194253197100733281686707697866949740218292549882609376172070120821461993952270977632736460205079804525068612758309749334594650595760969110518181586654382401850709873809451051098885821212289098300000682285828449591004795757393513064020094667554389050038589230616220147129323486465094079569686608932508349578369078685419383471669455867936034329133941731541045928334013440055392632478728553076696430114983935942957164018268274007886693002270205472124028788282634401027164040477091971731586934104572832362454424007618711394472037793691984692339206902858340142175507459587019053005863424357654976861371624598223535467972538852372120519320167946053196571454877241155438829149635242461992241532728682955125866187580782388794100953755223771677586741660198186890208753565525444528439348610240228158428960454018704063765387819336898019595706979900034135729221001805181576964790488805049869141710040489474653814821192055319980162384029363018443563523022327633410121456621990141167619501424314216381101074056976274920986677302549732609867311401502561504026628890782984188714428103720238785513012794112759323406630097326251524151100645756358226820907164260524892784741846787899876460570769600467700523687378488137063442181760720363848647442647020145063170132981923650910472281234051540587833712359234395216394555972008005324202893551161372956922509229493903399070102266094989782090127151040243922062316531728283838256863532441315381626533144113199506661204686611544223564700240255655630618361225907542634237839592684112649634292453424467697066548444672329951599315117679379654154081201869274341684694749387786357796151765262786498560991333410902636987259754962849619052549609056173616059234241733328828300158244184815844305091155108039664816063037489502795877730265030481482648641345286679157945116323194368345402398381925945818736265424737016814491279828780203862315369941209666811364233082183392168448879538979543397192747339291605925802043752512922357637347944667992452973221693772488965582286574940428676768068461791389871254629548831848240697702498579697279496273191779852780188359154348859765759857628356416196545124791484025037285798733724185093589013986889964625267355875310281414273755772379195251912962624360524099353134431409711596628048443480453124050518942092852844081469365203043674953065873358040446265066949841393020886038340248488258676273873779290600866850329506155203245864351713938776118124439097605792096316196389951976788934345284173384144371391558991153940328172522952684716591770131223281071953849493662307990419534332937947086867079856683041511205243749057866057104849570328214930617652252480377851979782704631271648938796536376072521139640984339046497486583814350369095726904844338220344373680164935015573369485888994987202253551573844147328097145231512533616160749869555589228795640682803129880139018050826559556295679880434857885772697619782922911262499792877549155185243321806555908670262617481300563551477328309049158109988362954301850892728297078147690749268860789032922475821610081767044951625134264368784992764090850246527982442487805233140443413598373678030082046483840916085658191922180158344984400097830892534317769007209007100329533598060521930800820959943822598858128248339271171575815840714113640614028305759631804480467649809873815520060911433987058189780951897197454013130500449559698317683981872546552752626802076555028330646185009450474276215537157591158081588438025535154856258867978989663773142147651386823522907315494285595656009338013832111020686062655230465605366386697210660886838335689096558709421629507980978349984157153391899492911176374384838152345657674252860264146995398399076795857847067013864619464132868498661745273985404153551000638739793193557799980332753020950373307852594608560006455246723110547021201681568355033910585092949043435741385185884397840552574564841793442033313279247683091772538615866613508945988372448583411524630319046313649691612639573575659073570924213700600443971151912557197705921372280914871210219999478460785956437495859302732594677148237298495985486510974944657796149047012162509822513031282376749980056269591274907367881929041542199549820439522297142818367920182730256319569912030842929390465337929421051516241082070670145361560171284228631763453154177213786009736314744758222274721865815955684376026374223477044650629896495060962953129412001506725092047299923888008723072980991772833487980056866087541116516439357798661036302729105280194035215142861528072690686620446620522636344762424899676895288758521348611922780346722461859019726504412068597127256828311600734541577462952926721217951779544973978823083822968915131628538108895629229179531592927016531303305111292012877558095434622159806566793168723196961856120995631496911900899100517636014526459060813893974304000601189099678051316475741401492050957560474444001269591730353863238315479096760100818682287287299909451216473383284858808787172118509109908150658791584962769504649489685782910306303079511208122050787628910520874653377903836497827970268649302125032085789918234870078985500114831130323848078468773658804899278060779621899505445657791244810761078785703182887289745236398902433702269517100013571289252093488157905438790796657380452086286506495961092485382553413306606165214184722318577059698189838691719339658203785921977997825871371997064171617010378855870836242338088464651276540663377686422145800750752857097024808579108819913456675720065701114763420243678677368235382252725355139081946093890510594225585337465568582871232316345866945390663202401536626805501984091741137402267340168292492617045312007341462049724761918376570179958486366337862915779571764984320383730143501604812997833743565288860380193690234801433196964095236194263938728720814266400793712634071623475412440920178234292756454772155666426194174366539554089010427744744724390417446500765250882645774190883611299518444100326214775833871184824071051852832774363744556423138537449519307234244282283927302567605097814594859414344668278972545876922760601454635653889151821697028815813529497392639524355990931993937246318774510803495213093364590278747402536612910794731548998444038395741059084432916369003047414787627357483918609333883504890798960820593703101516985692984441754342204357721457525445969845668533659787860609326452022101760220589825818312414261402883390747976511709909816570172533914144046210591550965969486942849835493959644214923237819010765074553053676371249016984277308242844731954269890099878579242685967915819966378723495497549802498972372495464641817822866512317628700361958401921087998125962599770124380525055260297297106622382862929421280127675876518515406722320929873634599338637443321752400464676451655984051004959325781500985122975183217788968045081639545625291657004542090191267260298698758116094601583793563932005497175980949772822964604593831599112210790309288445829415175028893161338207199644448216268406058657486833902498969316203017693931048365292147553973251499530188639703816029625270018561180087516232131474738478288712393747853396017709991629175964959716921931869679451628249212966877714525228631600170699111481873607486229980409652057122615278587623765302467070723173475292900423744520939067295214862276420906542983896480168897359189987832325486742312234368316316430086566772815034711655056180062976483326828475877727987678254249763255567585292058613285054261900246153506313518316961969905387149150886775330193970338686574490798348273805391131197259549206476067122217103101650154366536847452560547488063511025768335173285632362059334078633636311580711746123154250887300705496619565206934014023108174844918786733709091077041836395807651657617406117075671436296945668976070200965011872455366513995065972867698946400475001183483182772315296665875653709308264463030725665939044943075159196967578844141539883275732095612938395589997442564274194560879987503498576235442981874794585978190390265586920855212820317828746403281310150712424580593391772282975691760515221150688686590692628973206727215780097668807116236800934330531797959128266938393913045180347611949643375901671483301094217911122983338712854488631706281021358309493266642407841476890897385983531493068965481533034703884021835912865559237367818658894372290021126623762148185218657911648979767391535366288276627977794072783172438637167544646066103929226834459109911786086744093969223563996679980552656585101104717452713012641673340686958687218870380298815663212951318117819947376271707005026715995254354358278850433556637165710674027682271825706592439741336579406869258398417635925301012818459575654046001155634734005014003535098776016239400822436535795717935320825535963266367519270037578902324984502476374425219555899670796599832219741242050957546431172696971783936283109759863425164104109994352256985289367408808435306546032110611234010425617791921213801943702777415719007432502213213158430844505617910212184865907413213788593971173617495245085935998994194963896208972507368718261116194426710516638250792264033655405714648653220318417441302407807788331357652394613536650713933842911729188859562930781314857352996789049172999322802888532420585944854261596892109264134476441270176053339250534371709314369573586561808597473996885155295748207095627934237293760603917761803678216226813583993534633958883030199651417703455816006908561379990065280778272867895580329819596741757799137665660534374273423310684673866896782074458950981545828477371191986260052560979539128392301115472610357882355819005646804115814022328985463388055965029448303873812553703336274887239794257534554964344377381260224939096654961775927264325062469548093576268530449271239032536501987589159079251850627933797460451488505809077605227482158319538818379847502378143551345770215645530815511094622423597582105183546966374592119677209143884869540535165131854791444396606798961840765843939161405391344609695731740517020124623169782487906136394351446094783007257989176493734432668631895888642251628044561882338956069963570119172379885338041771936469310524183168946545536142618385563859394433110449015747523142523403040176915784103025210405997855228785697784815320763013366995745518205917809430447778094043723491922794422239426710619057207226869794168653400542653822440959023320949502826768213601626359713383059729041442912223346878819694093921967712386357141167480259246989180490845327699512516078219160260722239337032876623981309308146661655729118438716911246860322681256756485015215808443827362070695322134097474428623957859099694830381207180262829122418781894113372396759051043219344121411357161607889333392056120920684357343518463239780382192347081452924182507692349799082287196098202800592293743396266065438653607306688838280673884503280929278218157993467712815383145537101831501315442312108173104502366559351198928985651059858446352749590030592588308242537009512183922669212795006537110059264204189185716290070710114452855098079724744037918550690349560720634791312354920375391638954197405804968622587564713513623182899446966188289432215924693590502664129856084313179992919110331037196235995498235869332969365122921996509977334057480010127682564847490625887422610410917835603567516660298289118301740230729669272338869173739645615746284179939112625622907464205955615476902950779116840102796339737209391508841908301250231848173026214503842960718369725530608261753681549344435472609090185044321878028096126891406337411876226234893169790043316230405985937324633763615954797650431136640040133742983895065908994015657513436330737125913166681059242332407159615642229176169359419686312502621446251549804069990021760859580932264688188364239989531136044680904949871556129541297926181977965061117020135164256456158434904023254148839739963028810144500856235506591969526942969842022255344766498069186357779294322135739197024462151158357289114316822779932073365752979512790738310884805625110175517870765420809717677527154641592986708844572883600088173167614782763983111994854605504545700215453108608221911807880747306304564110474403210034439799403522522901840976265316277346589473412241489113171266959128301383321943765884413848057135089596763950454645873232803127983242531765697432044476095398294395824343769622013726516469609162040099755285033498344889401024705183347508566597699228519464265072897461478113437735453239709286142976251731323526205507269110538536306184499259260998173473783044867845976474884416793649706959971478582146284417317680782909858755951812972748932962200662715239161624147709601281048940589208106678894913172389440682579150003926938807115049901414201804734944951825203213905539296061063638335978784348143640201931307097759656562226084573818743675086705288819623913652332164499892448004938122584269442383555986263626446997835668664680462193394285448265247144339217192438730638568159701609807580170412199924670277446410765838846465866667778461384978469623688378023701975370671865445640566482877954171848083614205931759320657596392339858660143507109249819353696652086347942204295005818861164048712898444258621203272050112321773733185469968530953561070027180714916411030667194386253573715768149660986860779043585301313052396159833374745723318289831724676039043851042840466432490076779949433399342889256434102563449009855339306312036593836456696155845663144953378600530290797811501772845868765879703824989570814445165923072542389577280849452807178043302708174014251561948501445926638324241246375261188060762972706322014208997827172149718164663312766095662367005857312461144666161699646690939633137605254700148628053496334301495529647061481100128769545175356210124443067743914818390921482736413126756433508610523605778947347007037157899788517834554804076115683404899368504324636130023099794462387356118813941666014360284897940950318693714705955700927648440423238540261540709191467839335653050100643570130718210142849382746440739324378083916499705329873796605035531820068809967118269296798183233189125304237812739527955248588370844979799441839177748270411632753819549640536674798945907761552146924891232293982004099510520794047593295385838378090845004546227649893640532477407145066293642429595826208857038498725001692615528086232889323926701110430015297656166273239149259664621629424549962422960625350579572229052718827043066679365733848052433763159634416356574140737025017790541136465272797577604269150292293810287632163000950450964927391146124732103133015148310121039024445740071331306766620968760900159284176435960080173173135055155769635172089343831834297860176369431509192255502350027696129641435716397790834269604476989913244551435233280758149258441439288513647639130875422649553969341336393091156729184841052044152660281694855401144265004092589298925450467472047320384669129599332054891130152501460366342566214687099864036649017153262475538810495346128785596413552930875182134220767502248615767641354701547190976604232662355450811853230199872444668312010575579091375453695729802114485510795548198439343386157239824194485419616325367821310099460262497842016594128989884259378638731522636386994794323632119774374128643934213254663448169306860817236277550192339076258281262451482436796392343803323828421454837433034743864989315888422564449129465357127300477329576818206301945832828425891795521280147877976553591566115167413244884974560594562917600064793388193932749896640722750852270432944043626467785949211280318227874002314918335795460809281246460499925148353038582227703256695304604566268686701024195698164783936474258589985440386753574320599993089099209981487801214047677373466549036794114408477236967155922676493052098200430974039414666232736202346420461904094648297578284432393147854603443000775315415631467459404895742335543134393346489073800893940697668783765034297699240095446010396477367240368224800118128260192310784893614683790238809731392419185481631367445589427421632180465308336142397385897635374796203976340515464604768078163872523168932396408825680162152985947470329414902983730438478719411545686038368495082215745692878624390750685766109677569723696902300919813701031395083422632808908327000755874962135852014149538627624061578271681458629951002204590066271700520466137705957709095653965071684271251838707934402555913803793351895386606053669454972313522491282842102483264040283152576397275573032405804682852039253608101046797364137407711096304044047910194599997718065114895994034202577401936497699372094995803382493795983700199751958811511705313388167354198073718503369109055415540500603303872336341704436252333436097648143798423342949555873182123476366165832075709197102502246505756393776524055166150463347757819689112338846406839273890384215785086898462853476048575559089006103423705798051986686816442901424545344496216403415295504278853622774170365002924163309634082988193205791055879224292838415058511209300196979896810461937462041782537823234017309571574462140401289831835228687761978018869436339228620712394446009305253990194455114599367131486554821890741901351096492607226064577279954590580943378376216194039105213094430180162632853334117916595750013398952025551541241171949558142553732397981809492916999267271370350380598848579996712885682511410431256456436623520373807914299641393323465461945479951831095242021428899953119193866916395494142378560370975009784119724828039055036624383341512849980993104172728170042548631457927771352116068404349493842887574735636639545699301428570931022389034954525987261022573880897536656571150587674989255313543202532624400505133741072815123494165205105973451630796928888414548408067048350597618698721629441669045417918030968829717032677868573922026944565764864340641111413706861659590281150729442390710156991543398949070354611096972178284188144008305922496267365014031896731926673616924565186874920514661352698943266906860727500794845322489803016856420844367846703870142974697386485867421118428179074600400875698734106487760768672244878036778094762427128446091664941655883139217055552073250774014156878699361251408647263817832656683447236594042946217830432725201024040190535897504399515867124466570580363488137383079522367717710006697200964624922628745991520618020421360864281357312865865147339474555909193344238154722528410857450683058585840030013554751289522830919887848165623725747286918960217263194524820713726936630334921152219963517167421794586522798705771441043504111199960071714031115084800296379855185241466090081484410692715084792863838385563959134010743313772426027686795951994622114937427057173660065005425285408749859776593374647563294416668816773469608073109796711625291084397049790062378676253220508795298532886385410798427267880075918557809651658187202137740045020259422754891448840186112487759477622580904368226090153863094818377085186440455824312640331654789224227939889104979105993157906649196343972858678461938430918290609091972572824406336306271460876746322876269825428239318872394844804082894030422925418103066017674520195414273266492846016088596657675674192883204622407178885023096159780589435918131395558958605003333954881650234653360694644240773315878050785926209014957624799425149072283393317828190507024822682603492574377154798882302412235428579755014620118006589889697667918010647870183594835648247703875291264747844771726647832273029491420053386240764373249847935550680964756743750600079710347655893264530651552711539620738262302243140710459296774759635963968175141833062065881988618333237763436184917526415654279901363352866660071581756702662338921960417605578534855562353165687961366090818723704258096063019603161916224418916199443337639719482198318979461920477337131756158515877894230317051378537007889432032826755680857109253834895087572415464624496157563268807435264365823671567988439335729151080645613822737810633443205682351977721057704704144600752904129009988809236281320504132679515398211969691225508742015208619404475758512978615295159633001586910435678056211018503436726965629364509983326319368612121152126934482431846422678314801435285097662151746909955340022463783814768321083925674430523923694240852933480151389213836528518512169424166473006539355507315648764926401011761882588615421138216802086681140794428960493009361073384150076684193432304349098380481292996735024620490653779951453845456472951698058837254751888915218025131258777392110133945067421703728204708270740733133975806126966225296317400923629152434967253359199669969065457475518331787939299677913120174399399258385436261269401011062222673287366501960729639519571820371036135078094892237605366872319990543539870732116205271570856263880972884053534558719428570540180256135673055136651195370818506870102188112601575237343962121426384689738832694276386476816671827281246393737409482480618736600199194395823134824745449843874789772738631133959623210519003925932297961707649398552188082463228583050639618876983325583325196633440574603920916634207734217472147380334664270176130356535772158812372940524023348293953222914636075771312124141531480423669472979474962493452214763689652442968666153302975968834252619934624821494141596577762517687543926135650074799308501928635463690080728677172304461725845071945856858614961002432184910783913643746949580712072849777212945766175016219117037814435817529735563364516022565508709630981520003291648004501293721691252493874034092476245406558615808444147790423673377103104394870152577658331810525603789760299647587397388695208203827697935759821378318131214181519084246332456529411021638849216489098028322784814035156275936053648277545388749142081394383929944466523320169443849107661288907657047539789232139705091657144760234599606524984166432362743967429172590889346035519671947522934534942674335872264666861300073729328538268166963612783850248194686557829970679251993689696116539494711145071569551366458126783414976140231300299684274656421959724007768244484568477158968719211576977997968878486799525197034539146943470577415648899332734161838069919744514608143849697273305655388449938294260426468464402388809829961334477195732393729467488588131842199120911495893089583203785147456085163447723222698513164575826261090585325660226262939427865592253035484853391940286872713350140061740269618010868700502011625031602272511935997503540147070769914119877716412526524075747322070788073901923931179532709006059013468290258295005132520529180417159392470469247327331263774023329166777068830801201590680281659078613712672198644529158876124859420816456731899677552893045953239166462565962861579022080294876817057173946778024016081642980692873368185681847545510056598897029418984132032032968778327185759058965235546635154238878121214724144833693481280199131468509594432144296183091590739085721607785535475227055351979668242086488945559255215105307880019941502547230164847551505925109265071186034478700453715388710315302212980846811591434463183118935936854089727735229990283136989059111032084656356022996892189519008053289879295065087271422409788267801827605899811939411040456092784477846426325100938979080583895470491614042426740968859222329999791324060183232881057718758344940455079589236488008322871823209790420618041150511812928577386103381883865322075936926700010738470211718544048666375340047431170742052884224474455283763968750876048415417750125399022779610321228493497702160036830700578160317822004937927670886510375800333505941436720034966100086958741081713695282112354415586106159832713607866926675618056238576279882624656658011068572483988036139237211008322473759778455767356178662628161594234549214144223421558921703956282631439897788312698604626025548580497636248608909092087170705391541598571585719961586153771237765195539879412768777428837131582273298088575661815986282612047770523929220241633850656244530537357085580823506042475622391087399113369050447153641311249627612691542566071475629454308336207143479034236287550589143470566745615926229536246346211737902910333798273090595178299354411596585787032542732268389321897582572332122821121195392057665411547560886945534004486893920612727804996989068245494347209036156036560843096020682748950658732215619194000490109822473033154539787514831506078190927744430894596952815290223577138697310361562184887480003668272774233483802253637476804862253073649043070014342152341538113581550471890997712347209495308135252371156258228352072613135041654337634710749105174588052276476291824370531793160091554010515865677165497492890281516367609701545525781166533978587012278054915035311571877118280378024441913791049254213393282701448676591792883693409250002479577740008809326851564006548590216256411910929444893875519800165193831418201304748531352960978446980764653703999063544885543869816673776551888364733881699506790584643674278385991111597715126566327911487725030864360761323503787596592531651658303054978152894016618027049674224340543921671201222932536452554585703762063299975465495351130442991925818666127777308421784287193773040402253549867459763390925222624244250319192671670049155819929265843716146815718722343375556044765484442336340330034284493419093190371493657453696250103411398079362124708640956389728754213766930509836809511252622847719292539056136975943930888970157456582531188352169308634517229764470122292614697524800994381546090255619845107118409121566536769544572965053757845945983595916731202038481569172673996213376550291592877425097901514741358384710517462032601757490028808179910811069227358713213639292925088698866556999582831286429545676605780637206876337114626644703340864113652292046127627491741803734779381781072650402605528303570537706219098859180928165638251920747670345924680943131052778903114162834857713272216515497932042044848319453445337088239705228465159642876387769283883897568945140473478649705497777162455421026410219850102502955171878344843717081662764337986501784663881813124997273348182198098564176300614297201940680430553155986073179103674088679147583405803769736938663830239432859160908914617966194130235995956110212302628572759887791749622899882342360839447322716667828729454406011072735344651426009568193071960702139429719238571492782898700327145325346498789716639529073374727412364206906921814599045871768367517466119146191700406582035574691122163904418575305015084594151615451510806722613506300341775264053759180086569887053146930498367253902486629959559299579653856224812219216068374808426538729365674092270038652807370395290982232638851252429208342952375746711969510823354817732165311226531500804497603812897379691233355514127508588075830659107328863085416367088722089585032256414723100254058115711706326198575072460908746132350057764257220459401157622978647150778954371950605381904012705085662629235875150789725063859600790123962923593774085481438442262709623234473875295494199345706093689799657456367297509536995628182279236078084604323005237926114957761956514276658447858328939342571568574847202603037257019591557029411408312341324238744321732395782318077841926257271780978447960057958124402295399614297876764334393248257924470215126613904439551798836790167656497049092417754979921457954253653989450825728407419747370704668501248094946976098287220078761034417133425556182128144710326516694436321696186196508774914163842055100099859716165810883541124593653080251045074781523252483536874662756315683730552754577607516738903067943683603652155952981425161459962541924434525659054517164839326160637631428714888366549121263591860726989974840402180682464853495433085120990732351990272627830723418173919960428814453645549962843207674529677054195093125619718344392732245797572477319461548055100517014542907141109327103776029345913611353245651895475734297130134772460659963505028611184506810424827795327858146803491344709954039441299764839850001618457455477257309115479537637049053462569583941258319584378215720329128602460623779975395974350913663853637868185017888539248767136363486974238430901589562553162582287489519929890964231529541423555720775635165284637276665263262482123636110797341171138737387232296206364271339975868894807875928945445119996899812126975651928722589733533085388094381925555458192140875619604036035447329039418353966548361898235337816293581071377752250990581099233334457841362515102177488817417623149475643068509927357486014770535221183924043163892688017475657354412370882388325907817828162102279257675907358244232332884911314994054165792165574395631564297100482084582309691334497697821818928581986643291655492808546545566808586677872928499032144179897039115130362238875888861487437507115888498701183364020282122433334725685117170829309751742316240579493909645291512544001243835097849039304027265975029969629799428562655883406092240357589128655537634324488624043068169372261666795933129324346527197592936817778081047877327601795765968901633559785520154295919988989551170864938467621998505806876685260325252687454303783701596854087400248353522531784925867374149850495420115606925339352001684915289886073251777745737517980434322734945943918243498744131636749351905945607130872968535134946253680990943033828837799720646884419996975788997679751770559434436197092763324595647701157506532610085967709183137401613034230717167340269910578925845175954531586219127022275128050216004979145447242212971217876743630120379433857211175308737265983661303546589272737943029495154875273073766648009410905724983069521622422452969379271510078445259060484846575250768090987051603810429977241323144634452490241306404694605845706029447599335359256469669647614820389872455928214622614791153824714784738321861596708575367489493797874325274371139120964850805986595237198022617938260683135040478560741294983212411275815391222816883336012229912373125813022328077028547567672851849818246795768817167258338555701839915063815823403228857937309272625700303096455537843494779530104539159590735806599279416789432355634114864084451314629844167467486967801859928450800309561767190039490032187979182010526520466830335599560699105755060063427229954700050713182675113565010619555455670812816273983188807793321575197996623563585387575190715331294903705654697123930569577294637929726121098061141104794553370234156936375433498983718087444461270915597438163733461362413804889458015419164829588488929011289894711703832961227762684105228504224887212881833996325282288216947863536175411014402030050213296250818366549273840963391276543007117739110349935431248855118048270617822362585668192690202495041078499159249183857314279629989145165099633451203120293255834996952519241230399007436735280299031626933411067341472913447519120284912272433770173530969127139812471791139227071570858075934554090838861343776431327974559397652741510026134400703455678113471132038589105742301531784609514336239225951624584636548574915583593417110351833371566475223807096750279901831778748277235611431378777380368550425054257270627751605130876339172407561954005737224004143709378331069741304325132889810007054815762441429482491971128972940024228783195842476647707915152294222311329951609362186675554271414789117318305441746291412838833154108554259670032510799608415965943417578515072979931732199935716958496392352923632752690644983482855582767324721370567568624951645704599599415223629106642407539373078988660993818349849661306772423224564945623064490660268067653027153151309769455536893750126067797298210309185031811279729059416159157067214953966640627135939321184452645124346693791885273388908583387124677228299168609579373239100745654567349373870800182762629930533106308863564383877518207016767694589445370621513358688223927512881682325079423914010504488810245004853777520639585796035160663147107333405558200563187464328551626375541245977272234952391815013129427338414613963547822757085889282948840291342340474624830443331360901675287977172200307997452168092663170209775138022161031911992065256425407181565802343205266418641865790099701275847085791902682584423879409134467497387007499917970914204111020391677490381967109643400788996526181686673159298539659458951149380840125485546220611970608926841159408483409820471162947383103140978543455790443799449913207533170506388637732588127694130919445117378275091939827772403607131724228986693866642247956754069559636704339368889157810139475623043123910486213086477432997245197526048760393824073008469093256076815817804512049234424534767098764267105655609893239124084990029078553758429674614717163072364596663983191406689184603040270988010556570201408671911106742933043855398505872022784728376095115683413983223416863769679810360566433366981327873492389784586402282704744142228808375702849358920494161750057491423348476844945409062455990182927630427747822607799667256268840703880806224503315839686833854432498094116242362914791401705948319347657388557607593017949464049103268582017933271310058676827556693402340231837124568058007972074934479987767335272782767780545452938712938374343287379044185085365807002371720679302981911746529953441347437017376742893901499056579103466002098776243593075056596103210518936939409362481392085043349727220841885468211396926655499409760655452397934143957879927940833084791953175939678193378276405424000113732170983480060276963039469853578742152639750052014313641061300981407237343452537665795615031473622409459861959023411028897852922018059003998714075905683020829589061083456864919304776558475439635885295770163165202051974870613963753514466043554975151839371460120875394870052408149238060194474242327105880661983585622664851222143873039907201206503052725550018459429335485437242702061011638234231518227563512861957750111615856001450838329929437438668784302626918128096356458747553914001231839244096689145820787691705810251111911910060467294551388688559061304088867947553559292781240263425842542411533723620998111404082312787367226292137338858045662229034123716879583122080927521694658547750622183375110576056901655189831315287719464620030684781226436019181842628961100467527735537212722850971080641291908407343505874485089287908124802495845568334774559089831899720268717855795016054415573411469264062459702477318400157200333210141678457898300596365279174182413937711907950710704786929203717865561147507524351136589738109267349814887177440277276872988946549419989878666203986283296102281878482529790696241535732016396343938219022782243333026688358837687212521717037200904135114756820493161114807902282059968682782828217266018445690427689157756400915102654202575597119702923715405555889563417517008066329918028138084148410605469323072854063585678985307416973246202443776998703685392059496043134437313965116910650569469630467866205179130243492000338316409249233055602273207589874984384791291771149073911543205647946060193612141404528660764159317781016970895575929165158147567627703708715000024983479656833953407928308178239880066119628938791328913933195876637773820151119500091153965917793736265738802697377593824835512784262591445672598083655332140545213222793208232692489658694306134966694715908797977810259423148745839195638462904741887039048095850271736801459764335642738521282398131663464120674371201487250778885265887032594538925700758856144594631411398362344959632421575569507846350820564565480632879522332164376805912974974438981384768064976849089300348808883700379699842512677367175294936644807144582608317728272096459373346365230752015336940506397587554901851366701436119161192958300125667008215561603251833994427726664665890539150636611991280770997085999712232256330930018195414294551966826266606400258382700676191437002826665159677259272266990659188497333724459865832376852632195960252316840625163713743585448905521889492035950598734778221850081958093235854484748830585829768178752911777681488496998527817814124683279662999104500487505492708596815680627104249962325487187095109310854196783376813689511839595092216247520715658618264221412137020600676160994933403000742769602574573320788084546973530038838515383194600619048317815080905239923451045303308807136212901672738530693807846945097068675218261483247539027512758080805189620829130763130137631739653205566368731798148030197492744546171314609505498781509756634761346044679962524830713924934520975942046739785926923145895103188011983554118780340712086069035085644380110333115405018302889741864226933253846706498352911042384289080425049599101934795710124871580809587988030482654097707272211649391268097456966861141922746115792385442279126783497618086574129664781919070834135615833682254363214262750577353571554252493040316574670575348493625183163749856570079371185173426178327051504774828648188436319091917393792220743984206842349865427495380165421748197330076846755280899217626589671302950004662442657788712663526954968697579328731844991171850914839877224190146921511540013005031489466972821017170322753641414592854566817899814706235141590502860109890086479257405111864855007258579349382431718127924177942485949955379177753571754145013712007391368608884159141093848361981205862719715007260126949029807449531726285604146140937545834358812608661112990945276235542436990970158155982879567415906146858265068983136938020385493722993797087996062943561512112059004013430775162147027893446766632658313843208249120294379874975624773635978960497881462711830397826273565763312302138124245854078353141541052343864663110690879422460401422794462883836788480457216274310899425548805976475762241577529767534995811998511651479404826327612372177901123972510460869773890297294963385882984599564256654460584840288829324709015909511652888895288777453024759205608854277176650371146075539416358473124966233194845214092518338377839952080276628105052226290938166753803100646305421760336465345113282527463676328322787608287960912087603703813371638733973302535804173976487265257620472529665715071562795053903009783112811907363009289644824572843607440585147431881252546912911051103189598934247035390293037738777383980720239366420688970403732461715540333857669712688521899342716258868505705303515117946778045245764703498336694515848599577175669889223742943674326602862968674703823663768712032276639203244599331820595576899927720981784667254670728645811269520040941338296440405724521634045724124997295663539193183021111441240235911148751913072379333122839124290275578778325913768964081521734496597689597089934898653574300472650268200394646867915911226199986724329438389560054604539614072100806838132316942059230449469809812606247893247306092934552400478070755947910918969360092987616673669358287351705170946903649270169373547789579299994155331248117346058709539432893326603851237671674114603923299205015692243332351335157393946634729350054475573806277811066666928972783796356310419900618061424608211103782976064113938467315681609198148860799616616682509462482460051952330156981648874267834007335267358278444860644726197626660644299976465721808796209598729389376463583882679545370733835923155643449391980252537046068951124610015035640927850553259366166581601372897509472181681281676584778570202191027790725917234505972694916811289434564033138861708983116796949414425220204802864459531442614751481579211545532322708461477916455712679929014242076967540621806047900002494330692183430766489419750490887257484353032643248255224319810520222661676593597384928343075094347925702777824708457248866256029142079607181099325090213323517322563289370090711926217775301999436226985492100557872765424322001722999274272954612750649134767020648030920242339090636850509665888606760887455024166925034370052047587533301350881737551108334831076091456878222270151632369494212977408329729953319806748607283936044940134316390155567357741069236504123529780086361285944782095156518155817414803556690856664497410045464403410189953009081911172201446776213066953026760356128279781429005629576836898610719227729153034503522806448451874742266077955069044053913796944256289265065457746753474759603388465873726573124396460965904300237484514130017814253714318127767025371379862087750335401142918361417015150118866996708794618190049867305536687833566393700570084822619814374488806687635571320660508997792066350589282487120763089444650318513805687274641391028377906502193688310397962066315434019128028925846206086249671088557044373991264090264743967869248935070620051608802755449410105427665717594015619455714861770389486241244791861821644017704905569853839083155549447544467465793814824726478143436593810292253620005696224387859985486755493445157496719062321564640680740055340681983640138254085266201887307899686725904003667102172561395558826430663486613175191436587621410759573728606821470868605204484512692213450977350979355006082997025012790165714184496829504706307116016804931691860785365871928379725663905568923279101162527321907600529582357210740958449047258132260022359130587394718654183604416057144735832023412434108951309350393904438293683130994362985993977703602300259939102944108807665193954417210966535354879378108741698063436926584795114353772053544664740631853254772228176643915142768144663795811342225280994211729690056791604108274587899509507754116618071903979764406222844621256311152189189647193753876240179563159198846949962594558424421976492063474666932608546593860980379045508691996107191056445828158285691904127034496972109657570718117097406878352372635929790612101781875792623716799991361227676018819199181292850628567586563934249014737966043406878634482047140300598428505313554493157664334557257833257078121197266388615731686315124762973039671559726595648581394059838621199246538056641695648891936592304515765566082392515671893688938929131426923732582632189659464028170185396428813240240586538176470612834671172944081553053993288768663424765720012575361248138127322053860838139153350223250571389336342301472021238744901615648471863271436024112538816911837499661584591602226775783474638905047871752397214451009607570922230359857045887619572647313683306544113006559064709353190857067789117729694792166669748537052466193307690572702463337685105460439046122702707576901370675553341535342637980817354178325908952765799100626154220632225609349972206589039422185815214666086963018909256318771653477431333174404854030245478905265635916715847971260741928778706303809031752348128103997625745565861664607929690811308124054469155137370286202901378250068658659521570368331570775457560269746325267454379627133487261199828344010448419697726626979798891656768865458688421031655940752907928304393280635529359026284010759607424526832429919897670428565400654520774409344339974161280020709116218772734977472656265052708362449068759202116660186754687320180875834298515768911619149425537105281447247701743069213501571640881517449050617870741896805095877885541284723239636548966352298133338669327109879382618303374617318428440175111985142415685552472686839234584022476881998130082387639688821644857639525960239916618133798857014816584955549892995284804088941949536748100782154606590894451470884568990289618311338960523436933862715615121211327214173362678851013781674981101217974302770938571480405887596827817363442789505082396290843677245021498263640004727056980035938587863362820464183073109063326360301067356314791617416540768853868954872427105083160209415237121596663932260461178926888498085325628252658367107821426818107710601735954832736808269575854005068715889795597926888549885790078899275354534823123913391594581289060179510203211789326757158407091880269607464880023263873180419699726291698114803939156203179921423118533355773888525116688488976496191380588603390436674632936969023519852761960973883820956149071742638376074524245677000608888879024097790871923198012243372541245153880420430372071907874730060669070118536008080748289818453365144017440639475853867381361635127819711585832104658381746361092854354890120853624339801030256378543657144642994260026199243677570342720702342179780691717627648870800788310913047989898222344559862410239199469680894623898866218996759730930047928833756921790827253909059144588762653650928341896549966033785068393752545031975099717735467167840130080163184040843200079850353251489244540593524222879521750075406755863803561439322430812919118648506287469423883271808588247500527766253926215167814538374097381832162563643846293231599181266460158138144814630738978560842159909241014549422264876621412922306171729776925234483576383787477687736423469030648860857922039549439103304136174544345212493466077918860330219834590252592195839345917934571124393551258171853566593455995073231658080654520892535827154754618251335406070391461114948734806172397635402826145277823780303030920371106480456018578181135543567513861434653115632097885902530474345518238369887159770102560253065864408043652784670668647715930039791485500041703522795393987098648895964167476686323305021770543071763066086967659529362252799150050507879865362626904055493788038796395531629335453728238230582672196774756254685997441317036749825312797558152496628454140337033250814468570508417045603522545725356237316227870135261946501961477838672879743003992150666506236136005156860745483191604851742869789389656165948213398114548612305294330661859693180307170398359905979996824525559747834132332652904689802600275504572984564399488377822518041446407951689672084703215238726879421444094797935446199792606499390374188890831886881795460654317552641939473597440593305751054054176598641584792413849069149767783947742431287391597620904744373964967159564175250998123594692684351573495535558846822290004016384129203836130071706220890642216444944488367712726247417649484296621081046134266842210659808959313589784589909156127702354944398522944385429838408500653288022727616492211525488394635513880015436252956059879694918843769374112151743254365948230619527737229424405107788383018438418082156935477310460646353359209858507945398654112991268021216833804829809692549568461356785008520186461804446576245050389416901480322101316000386236479636954766889217332501866248375543416829537241693948512237663392159478289865483824568030341556940820005726076025760485901642633457910424976369437762838520454013615032136949968414262503147820006466870194764609533312530562604931826281377874985109347553561472118229271199431905202628507337731591574238751788491893047161232000630460158623697571050379460283159787938289492654878952962206214893242289081408346357385054602297793090778336448663805823544860802107253570040023128447310815807267242644283650712559181414492123119563932556978470171758723072893903003991701619737963844189036075843236785042091565149276809459452796159965171363963837366778137772897229567041679539440322639491994122668467864268254303389611473867580004917720271918992015538555186554439170345602652306858873344750068405838921377905503763588398383013004136060499863650730180465571825917566605436735683814723082405263672207938215797568011369684390036570860655497306665015800802597860862879632462482332238210341405448562544369511908372069486588005898031220307639379586634812450513571427267058836065843544807804692929519775871305213943018085670714879335630813598184136456922931447801057369128028705371504458244405281057677773337457564859487892128834485384441864796635939012924502307575850187728621381789079193004941768681401085022240447267921656983311661061446636214687746355265284088019497430397227722581448981701924144216738927116262056231702729408277060621288562115214221478993708448758313727982428105138521558953023735811191562431194110356369306711150405243417198761861780782529235503771108671984445943685595157196206195753473370210500758786755975032744493446926986716232748660904153908446863490898728129107314200114740012339938040042684198404636082122488921741666323775615689594728569641273693310776885937732727239081292376878665952499108113447756675478325871146127930893841217850119303078880618618776963469547048252806803595857900790589226819499145647738906807727093522653600264113702361962714169693009206675977301661436259769245182006897858342040143596448542921043319884397431107846902686423703475702292482651151334220851499964782201795318720860491925539025216640042974497318315865589750187920498951035658038688258683336445052028762002917379938361395424422575262348864378146871195892490504207267630087855559016560227553311765200279558308875291619730874528988152215156227598537519746142320662812832766016003627466663222109340414745986836547618527633682169367362597570568806364963157561552792447898980031122438175755458876719783020579049289023260310650106908916611831870239306384544659444751741324402156509868377118178274630257966248797975169918299349292092043388873667206876879165459046819226322960165015521981897928163073011631715243898321209290689817667801473307006643965466153824080156725230055182233569092245064572169235449517588325389346416111629143512627576925822386053176070464730203323466635414689171033110010207741553105451126763344533030974512220382717520768986890756854644048823369966366586205983331460907026733824473666974270106495746146100761270762859397197888494997474148331571847384877156636730476258977490304602791635801277283290622534180120868482423850024864096290533840744613132347652548333521387422458266038915444189861420058718272305245331072912196471168299325411599930610803199288653641905836328716306602670466415919422609486310230756609754811572903677988806372554000331484119156090897883295091926904857831759292436956936199456272732361230648524319138590334249959673893051208756581952310300324517613581130969903242911298145833233417289983181896434965540480748051015032693106448308577603601011596110809603928344779531481967704296286429990427551131916944359512185946902504828633129553848753649045111389894438304985685509000648954403437717957082389808166514874099135947932772767231582750841018597733322983542968223136876223426324002512017423059850007524361726981155662963641865882849167112345385431339960061951266849426135363587307525890479231095443438064531456480072759513396103552140267620673401736231827779139873832873815860108428273436363683065483443046316850832559003047494638426039421671450008636775504755535028841632926929778448039610277012873420274260686585237825074595764476773003226303395879057015387381608469219084386369710333250286362306882669535457382799580988707567289391244665381265237796560533310291837370218171652463592956260402338418749668123911062299079428452086667411411981806832697032092149095166190835444426089783901064795536093904398894563056025511297034290769561561143327744783143600867821794110677019055753725025600114577209159616539995042403450539371015570588441954712918585156031995030120756324459024089619354422645637555720480539262856520623244806454519982025815056053162297267412738491525750492339607440493147220629474669282468295578388352656930212183639945742941646633125765245127847116574946690598457477325922297231227593452203652855124254530756519005315719422814371362160615203339135869225215471058298698644843637606839760983003704592500650888334651417412714312132389574979979383609478400081841521190101707725675831007346739471656536348580311849323690878294723000371911170381558536318086320122382996120001623961865448786787195378961570979992877208462762142074558907615676280385017030698191745268738039453764013147138921184602417761923379790705567115719822015145169039303636045505158801356547516811180695223308032642221188089453137061622586118215429558891331079079488004451736761948947716320599118028694501416517530648386995154252336996013427486845240427537204152937398510355189377623372753844670622884504394724900876539343578265263572037015967919091756352921727410014372244250403194069450327175906792158347769681590266950620611938972970423121991455899300130498001037594806762162789999937773924533154179949064233176175713241762811802437243577453833819637075363131397492428161826739702392895928668619027192711640465366367365485978957371149919916047653259602072143936864654037311438342359584173470081969170496488818637982826625246015627146605850769285228422415404437244377212324156639371205034960397332128082978567052966332206136808807325204755712646563805047137195867879905270757060330088272467021582097690625071263194123677437694686363166523887366462767182111357385590634715326964984479763569340478961110409207919499575105564213955973242643658987565963349967459395508944497419046693620557973823395595531053988299232649801169820201394704842070362311615225412277717268147836897117936441617485217632746633169777592404739927070073419430756562840359039562732013125928770032569886635756004846839958774112505727500336780531309984319552003316491378535725948978529435046130251063168530417773384013855055574004099151239372451909680825813641434306163894821917008538329721351195444103868289722351407400575442361046366877002954386653925106389817108003254625299771062463058124402293422218661063406809920062792109927665867080174941272482810815087494424734309662896209654130414733359960282888076381621443986629762210434777759330744270244414871051942646629593489761679254566504260052601788608489194535726325276553437831095828385789435930760419441469314289934206928523456206147347954668934132677044365518387316159709285469238785619751215270954438459764144200825256561053681670572827920609037756517368503983070570533921533587390422535147840853534375659195588728842158196854640427258608084001591829808663838286763792701128505821079891104598272513335368892368428354356706472446738376054228588894589028669593903184419813921207160525071627992743369323476212731493622389789686475648271465183676015642911103061781496879195801336535604588909629857120484368828061349583256866668213474302393844642507703972962634454232291019903918860720337005508774911521798634779948503939807757336243367102935552163778491338842689407809846412909900981519432057073401578527355197742087634161089593494266449237868006782109493027761549158057124066503057115978750376864918620975952792097137958963771426028966589704711254332183713096606949400390983052659809827491871611055200336698787407412670243428652963216129843721160604295279086192683539120670658617871774086507588968116711236312990452512905180677944168190789884937964168437518594702313451321818025048653769285574683919150910532152404074546677768188661136274824665781167348519608232589252779188907973275236146109787364867500837417400671648241611234012246843345632369895155212708224821522275296897810412627977638009753222744370597738477804413938559470125528607283438879780810279109272312587253841070102107701316880765607002237105584792268382880035288966740744202127668229105937648480619905498963568412264833004029070762754265658663041080801377001046049965477394419488780263815895099636922953813751050770058536213005570727073503401568077484631507646533936507224320767139782108203971058514240751022017310736683567549336034836320354610569984416480141363454848556616864624622341749992328796925193661370451956975078744617891247609829293331823645828806824699959621681310312185785217805414102925725539199640503332063054369820648734459824081346779849687735336275169873304703109563301637255450619942573354290996480718380358905529380100831399769154976938373680684873668653354463917788298671013546563838262111807704078125960433789791679975654717393673236696631646520437777656815066820709073995623288264450316824471988268294547627688885898332613035868154093326570217815019406130941258428734762738752018369976287627864444171611517757857710269064064903961425558730248935991687604948131827464450244644821489490342814408730689038068406285991614895168049734625861067532660804531648164691202048962505267745038308599431997798162419247624051178473350728726813599337708161993351075356443734169444642866942040014866804633572914827550494744428566819157836345317273358490324457133096891134281500067833040146956280839452485955155768241955808624755369828198268702367896203737109381008157785769070468029819779263873647547730671854752272477256525596750714579652713542818211961268165518743991412568275578249523919223926473471744923832982033651751148972014415974441167146391806796167513948670969785354154685790592800217607680492905678300052937706350375445811635447139205590131190108813006084125963286843966083988774188925832903385274900641063004255605318900086273497311664839587919551377473993522599829107135642566037067073363777746981293300419125446915050562746594122037957640201129954384110598302084682730584074102404149476231394294034147035230863773202114353432040286581080968531537332627846410021710406580954968757961012512636583863052410257610184463505505115061147678780820363819851113450723511212313122909588708005892816330149024756273244961187071607587960149127431022810796126524628222663102311793741623173322580802120722890675906496304632333118667090911665939786754076193290888934444489953269268758968880926483115084054164784026653931696880732732559928428650276787440926660403206171596237728260766342983202903452475915309802912650492713966096928460689804257552097281734134532184848789041729532330279189764792024418498071391210351959620337392050841067747193287013057441537850843725407794874101880395880309172567327085418689961588949370220263573643228991635163944785449494132662742875179131501959755843007239312793781162709972265448527043606783123104800061999225455110068859364757805773877702328951751184202555928926385749581610147908288383935656327565348676738471263512870631073839040195595184587480813707367359700185345428563521581701351020630677731898574136800834940199115459742092970011952069995854350403120076233961781453701759145874472348318425519361072126931220359314193723144288287903682951823452246940875425853348569270724627079039310023036749217188076133928238488303182475104500212838703931690015651757550403019092240677126204807412648158101073337904371865172282222311965464688732311711148620172100809232611947870615786594673150385564137207377891173601363009312610538918973031356955138061124345637185339824367814311577037319758551256911406707293695990643480280008005827077433643243336905113606150167134173434127126105383018964042848606638874846547751688338553839846638341627429034423390133234257857190582340161957360299008753404369393878116482304101811715133959203742957936889180746144815661945284844839157234772144034220038046393814872492703333845626706391480338527065820998880299722602435464533192869607661190044504451535327133302285901076098985621303940823457799166465769054221213826494838760255919835167430089128060082927479580100011213734696789917870446998785046992557167606391545827077918485693319349250739052270007922570064446836258845306579436437600852819453037381552720728101085753467259778147678074517356012317323279697529745761047587675741936086428116381371542370494673179608095775028135931976178694164857463930912814182740123318046669742025669626508460235530822088626615226576564792338700849683514120709663683122808695350483345345778336348859948564684406127964965671418613268141234572930611921912506693186052637111061834507387957476360355540130168206261415003875304852827614584217139340594565888817967626337732866613480026333177862233499207608862007758717520223768825739588472410318004923054389675061970527668383142323560649498425698780892356948742384794765599223103856194527028641566563726556811150689451364305505500771443400616936128864833949902226603034945156978459250820490784942372789324702047446656872199127424179160410562310886453959635846659909227569913346033081002816810442467020601132886120150838471950411937154190697407812811668544388672672011976011055900146379204096070961135810608524252346880248696372630084209407240409969475152991937306792766639838071059490387129414324406217481824819070265058184367985638213265120772666063794856486500952677959619823832765888300723358832919187020533524293634960882940071754463214346386210040556785324570484564127589859550357599609345147422015365117400683228948213270868120480664986467333337661989212769899438512211872611977867414943496842179736256381810850196195537812758220431481347846776168259120777856219057409438286341836025695910641754078893130876843139107838748995075706711572476925812897651546612415403325195244975966673131163733176980314973050349939006987236346970174223137485132594590676485552270997657839320603104375497057504025399539103262058408874299290645276573188406717339629698463789805434770870314567238587568316939244627263236082352394790254906168161588590068654697767540699261688119796129052973207393923674825301069887802023919853715399650026211731643206471796356464269446492737164052169402013931227152773422205464418233603465333805265942107363074293303099718326420861975239709850917586238836458332282998599576566928655429878502834989739495486464645908194501818118156208307824804230245347265888086818968945609722498033176713641543613177647912882101814911248026890249265679139639159137095875978734107383813714496881078410306573363863692129775982629952118225430763541627413477846750402608383848968958530142302891136019248375461915967738792318505848378568982478244798930613861005666418060664419668318372942972589472662738381559463009854020404556387572919015509367585036712872286661588004008106149549623961539882557590194013395220552910405939536779407598970412496693485865417910981810654090292232334740995341115411170886604612273574652725660608944387373471337828816432328194149532808953540956943747419977960659963928503480956307171044063886848999795402218789675194162157544185841786158889624331329531153953550281906338961666057110655791819277826672323804945560498687274892087955188787930991687475453223295312410479559831980068211057675387306029900878847411514534741899070063301363611487574147832281707515086925261548897469055066562058514344004228379838982737147915705978713814937391769426661930260253210462674446761014530840072040311710358903352610160936885216542481583195882376254698077309292572569282994664618467134841004321705853664751662285481159998735821540888167681873843399177898968811028392573215890696009538017612673780316727414844689110088528704822877849881171099279722289018858856283132840666484929095680194779309408377489418326232173134898536461199499462420660865552959816104754943154500878926628628244343464442566942869880910727666309671573604203751368226693386686049207039290405296013930473403556740213758327353532041219369951808567884470718184446255351412914938338012227408800045645036432134529496900342515896081039191583928902247794825374013659369227179650212400620333097814173097043102124203489130413100464378813083028059379934037523091928482226807821172194431393297594050256931972458264585360352258391233137187974735166123737731550623433884595347697445908706833496043167852853373164415788656921423539611723767495496326094536095294857080833553309914757133427444494157621806735467775705089385028161819670230866236475090918821592423531682722589388258613717972982462923106526681947205349439221606780650904895064019702297497848034614884895716794049425855803073292485408433532553931847223448193989562554124832180170211244367954686020656003395529492734511649993958842655612973830144523612682788618297308353299566537416065579315757648077856086469423060886127545801788506204551242039444821495154140164952398120197347872857515088167178558164078888844132252318839728917008833524979161025561520464002086382272521293584060480780835167698718850507978940531269745373314888011087696372686442992442746058618849398996437941442660687769621823972951931487543943794573850265166697004632307150715694755815036469700771164108644082725599548930439870691742885024225503542898035523793101533701649210976919111258000378666604277423383463909496179253164435277447742745143120114807054221107412690888559236698386615653726651284451458506251054279088591438516224849115971407987525710480468440633275478101041869826169716291050843680469204362187169862190091859984861573494733472466413376669098542521898715188868575253508293399587335167025157186504701523433465933123592695303057356854255491341337606481106896652757527607044345835934878537653816818709783319000997987132684843207713857328621272992782817632319109684629247398425651588761979243686179993142457912846596558980317448952704380354775404084283751552182389193360231253984198398730251858226823784709072533941116746784875960901938772907127140359258366433428943028283300166214867843098512864283823674686279276070889761343933218754095843549516526094486715137537277140151214525383628740973597161295524178934460149517570943304110214772648079230163832522532369269028138930940319316133885845500696542684372494169489112487332349041969122461185112168053833913911951111946243592060197131250347928746098093691244903214232166748329387821389001663805119879135734457232771018642440198346778814251892379737031461102867323965122964267322122340276300918236683001590640596977160459576107305601943970909077450855500020330180782981854904083868315461997088305510717058147471391201894123107807352843201289882330678235732747765013140627950897692030568534101526322795224281209933596637728473377380576965306652874670125100867677581028988590614281319750547918960351529647498808494980458741630842436976955214903073861194909917830823019041169202561934759045873903321933173864128615937966054415920031958335958953074659236939395382142051177564304737037585222441599198173333543737319648455380740674672386609094825862132720324678952622715885350198095989022596565425670277578441330815198584373424318322001498818651287549619031846885604459675757479371725325616146819700141030987706025500178186017157753163632016630256531749410535046604914150534986308174256885317706419225909725342777238769718661089379212546178591184340193997957788864447438217870168463889378736000853648822451513618740204243518728427770519658617228613499919631213121972044592984372956484397408632587550829794369478426242928538404601470134102801426159264259439207063798919302611741277225046226769846110700642160922670353242630986735322687417986794440317941147479840651537816297966042556355267712585401368793482324203224132193154845962199406473192452141657560985744166622355731466167476785876056321444376762601280548045839160240820167282983832491681226644969695886266611933446387453471918483097503169435000797262937717377006354404503706660570790446480106272813363616175010904804090349919682834190800044815309174118788707051374329622175736340441011678366876661175265006463798594579633934888801558622312987410881907398587018922580472217265306527611543806877821935839983056939039106924703539992111616041677344922026982379628976672512925720432509116618358393131109018436079695828553225643261508967533439485456439238987524234403585795865063462669918985917904912560088726912368334528744790962229285440225723027651386858322947095204672523870698065760937981427888843328481622167407211070929004460612724068940941195630016387012690277344963797922222363106202206243187079811085194060983228560236828109943811627651381943294976676737449196102421734579683944896210929981799871803205512373327365430450343595428642676212925427813298421510671068962436563348876736329007905978969361189575616678737040942528679264519697329220046744200056645578877742396879530269644733080387848359113412832479800762663398276813335982182487917036093713431290790319048815348088723673591230267807687923991691743159037676939369382675508289303104645565987840706595076829233383228766079617999669448534101080779975178042492146618644807886267324015196745869559428139094777486789691171541199859478233225187441705311185002410420128671668335046648783394588409876820690605520364045003575401507611939446042252109672808548160226535939533463741915112483019088077461260089659997423679031801649950887537860378014435977706489645397788246177960595154903128301602795672518556804505436059326034811652061657223248114467988059683825377988325332816770849106025990575580249245172571774626027328099526632109524429913726861954627784899693667904760642178513720824783255058141374206201776085657191684505432055502750448650685578498178347722998346597137170814045671669178266603195285138205704568789818979321989320958159783933102629378178183622471383500773802532399812795262780392174500190412047168728607455041394518209549350452210492035720274658890979524431340673348587916157383251647621127467922041841836058735258337676222060584918973107002212650976609175464948822183952136819983972899333965709442216126730234612620711918241539049437586384241066886997291864828643553363201415057460316848772997364225870767962763639798333712290704845162264457594341101875735969554606385107097990110195534923473609671977773289620884938136746101367745576362135621527697014583632941631655772866822312673585603457659714041635821641216992272822623548821979598044371310472458866818396016254795173421220242268362307317466210324928289174882134767929849160737277328717726233689078323659882314754885002236803678784833918740831576838568308561973237580007106101741405988196566628662096555077888637053695179501318559220771050200763002592065649854973386883581941064967076057037229392355739990426163497628681882279992758642555657251654564635110300788732278077968839604593186596066458223459207567596772193991354250699808682681496377280664304031264325020558013299872026346273963925311615014840411673700352538324115980642186187874662118533333765375631221859785403752673158522664208923090073672836414420665225340164535000312643270390878227219100454386535126378696873551928529722972518806853130601462267138294675900506762975219261661390500955340969143139017619155559366629760082077265966401419477306273238983134638795158144079741471176245771875276918498424466218192233623075942035817092512104465912824013931997489861403092362822206268518228138734981709956212352268937516643405627179332141759095864992568277359104169075788753459464705516169246902927130441182978052489350462066476691123942037475935913119405072075828878106686085882337319126766215662054496332893655252963288701309868847357757015262842165926837146599447650894197497429583565870593067780017260641747506507011790111105887704354290645121310258065394617298185148725265849421967126977609691220059598365932694310624658969963947011621412004199565574823396985685789959681903428948850969106461267152877098184306166899822250200715093929733075890925834025595586324105869219060274910763183811954760048542148629285077192353437636771693423028311021398535190269127006548345371247188379455261165862292965892157824604041725320996422660387678468484934023772362228009095215785114785819643090758159172808580020137195667302686896951840491737314172014625855063428874392208287938154729070613780742221724928494146783551031392859785933335528893863827507339595508404422557827786113538227208989178351436006269167908235243767880055374077747732238267128251471338382417376205742377756790966281250115392190574512321179529162412846588665352994878411494528343459806452227313172771764236512986711943283928007746674966850361258912178561687525180547437740616454967144688777990774383196648446927621849013598262489680522717355246244648097221781535093299764322810258229495382367295077095355313026103075025149680717202455891110089494403316418035693237651250512598049559682790630880455559901513209748027675829148699863460103305653316928932375765236421734457807862063851488366817652535375586683065176679069921061185711372348637682235626847476831729672074386471735574591316687735474572262634818979387942219572604016083200429226147143443701138425959592801291065510733859505698944206266620130040913663402051863038717429880681203068277107746384943272614321216593563084977085988750248185503095358606916168283254734457708895259406269307279264893226852863237445881871596568912961596005698813208496376219522183284485915425272734505087457373817613404159517514381870211650099423208058277658653077299337475737377765961032071540284261696200003267880107684899386605644144607121216499014779546556437865136990732785829805062672047269023493748326719033135421350466326768660056088772197459174933333048265461175963737349292368504120716570481283615083741455346464901487261692378783520951893330500596844217125847720035857750718832338507959206491493831748952365869908170106413450489353715057395971881651936119274517144494847174363531617040700055321810761648504977170381308782778370931540989946358962720468874610792322213279060173367964472571204363884209788437618421838753582383702470238862463224173752569883505188997923604112733176348906735106885095593761989516831255336829884662356241476892681345963047869173636447881367597719987545778499862808069275934385022113336946968778036002508777566322205066183100997835171257413392428934705863322470932561837366111280849033042694794994509474365785828116463387857350935919559004580585849726524263177584597918915960747638525886511910912928751936695567035890891266871889932147277080154371245009472950642097982277105732351101059609169240010948486546296329414187696476294013996967536537735406015687303767274428012085701942981546975132827901396699596253709055557153412641030177074110132671797477435466438156194734857837700526106830410073419731376414839985279794607143529572042205427851935632754868953671735982095744664803822461297212596411474123577289225019026398615082755155600744517346611848728994360989840280936648150084568628172449087276138995973749176263658320952101296205702601212599657786116541420654825580604701240859730544231418771260062684437201679765251690103986144034420222475142065802242444786035907260690901239403530309937265876946937122504812590798229297918065396261013675130375219972220226854940417456267301359959276088185722121723946755143922072920653824016852466994866338833636040488520269505362066805190291441340516199383793622276684193332266200539453787853802397447775020460653211730180261721833950838536747433485007334117589717075356727353894400336631368930606953286567754568399828729484675714809811984475070968547024131382171942480400575096427369639130607962693610900801110767177925613461517347976706675252021808343347081436753389495798702757306141069406517028737505624117141500152866349427268169324362139737213935607484655787607367946632507431928956525665223563685102170505855963546364793363639333461357502819529098610065093387358455535387469992782535568440859077368271077711444335010180945108214958779111445817663431209811950202680288777967341183555772591110635449179213436616468560833171227802223488555000553639241611929330789142501686128203675556138991815322646735051226426859189354965840991565119705561602339273959794802769060908530116042256899032200630250823357982748278988109149732534946900507291069944592505003513505513374384942470837064771896724717211791341370737547973203845551296246272234043601865218944230034690180960074033013868253139599172923968148431384520497310900388886194925915490914833540165429587926180390575752182770611030049750869425378571995333268469427717483586937093857611201242539221012386617884513085893304600426788791460244307312430151956189807574917675456943112679009176300162128329623664783419978873117361530407353542419771034036124696711664735855296023787179745558149554277032170865962535210489629771124583467561553933605848185288910269708169847813594797928687624006846883333702891978290464340091073933761961339522204706437746438004783634513666355894560257140799312010270817620825134443606037692504736897844301568729949639577062210692336807548462525718191955463445489810744189278292846007642041648759802829087259768866708964369536045338371185044230690966195475422071594242507406435121365979577879934427366855977738847290729565351942588399033312154515770498856857521159993683506769282934579494955645480663486294971803474743793511837228554091719846373213715794086697682007727953205057742802231637944642867085577260421522254491057633132819593868139526559162753357425560732307000869466339686407985480680202126063488274228041317670782986004922749188287441066615070080827042285134383566041787658691172594273248911122956187245020121685255917071841882378331696563454215042336780600755772902398639889326916099839150980599507771985417149260002911385458606876218775720908527819237997472624869197729940921089918045884003466358471474994415817784744056191862074086924264735873607945948655935998748201921801751054084532865605673730929101424012551060204398734410974750580326414937492471382539384756597432854541597355594519927998421384537303597397564880395426310090443016707311368516353956228488175570756396462849007556134720519804000571371887491459051313104055894709230522189879205216972533371126909175809503844099292284825011476964620973653217201269646691439435010482456885383634219349950579860201147657577134714694554927963473100937053817811648761746922527533190204689664261286866914550549558297722774928927039503748685660989600107616243251605975871577441498775356437360699159539795413154998124841761400854752275884855416891984201611455896386078013976889933407963783863344450270645380248574960119020193507110673812896991069112768122128749524487239779236617470249956594398412540574292907100700158160069141693892629739983678491245632485229637548955803587934255285001145855029883621707781953427895561970084355096378035551585505078155329857065713358335818482559798347639286840852490554422520071389581868070153301243280447744978340860958996187708055543442286716787474495529184052494613929013217153519368457003754953689890032131439721046188536485930253970964645816300891650581353958283426919135106672563394583367539964070462257303263918200275400107477686095316002831408300784885970299633268345156705933106291798418436450922906379299061770200071821109643535045271086399710604234630097006605445237451363413434962323962803707991652290803603063169363946164936573704816034976311819607714071732293092376695250892570612510837193781452691933341227359484697298090979242476437140389029567708155167895808598773229735661911811323950543237724580969002980958760633807154861212293070953276451659973615014940945481276817558043775348516852299907409860857799681989995708936194762441319805840544081337870126924670350563139582797338936688035833083535741231472731120657170563173103291386615698249696764197934319072060898324300932969996427640515568164691788451917140335014896554906165933560761834035978731307535068031154937314846127812425620905332361985487341900637108971263392597815666635484262130809539463991704045185049829633197741016376215837807652201475801079721461887826005505101173911147787902268433005962133663716186363212967253331015902266657433118336422965537424623932431367895919859371590743362609438477976079645177549693159488468411475964144384092341727738871346568115474570291019776069557179705838663660928309460791249534382957241096082614468774480781049605442743930400230649545182775048082570208898464150989903065101881014810675488169802075589486704969981391491167182508743957593993276942930307534329198056073445198067333607451394768785761731643492689965751958465755805424348247081823445938228082424304176478026554551653703009807794436902929019308967735127881200560174382064180852188100722634280322473643669583912329297445414008478327594338691074620250791046741054684622349407222164168595673743704174990953056338528247552242965793111153702595120251438964114745985681754955724335480144692148753949285514632255991564905765992357912009698625457367064145806430434318293533243647646434516944322719101726325925698941952516249258214866301215247394344999844476875840223308295778136592681109288647147346857075092197706907283717407317355248681597814639481165691169634112554186225241088038501692435325442334500290060928651674006018520841353476729636925604879594071794125735808197097641352075237077870934171164475890158229684015241728870416793103793589274984926255938308407228778345335805634004267622457952928458078112729254327855406679564438215413807254778526252613651616653323751196550578471034364364138296529417765033003048465026605046624215016213338032004219305037735941544973302495118926043644592669043817259588375655564512157840700437561182385894287815618192660676349011709439114538235821654657558335120963561188200403405645759224745890138969491773845123957727461560644532556881766746810339918243242817747303003527750217596159909280843342665519284409084863161713821028832802805667948780291631733594981052262262227521393996148927569654866512322575921502148093595860657003190824770502441876094138131316078112371889986111167348017947168193138969649220354503662411526266719243115284425346888796024898484376986506470112393967621283238437043648384391993807973661989501228532753461536066055973195987687461399683791188510152137526708070236616488694629260771863247295268305028625717373711076908050195146788488775108708575565281611431316710257191763024233559808809378923093663179381096213382391455585462815220700453864892029900483401805485877016695688166912766553836844707810754674104301239184138981979795314956080898293258020808156248363263490003936330637692568258426789888038644311452237222232044736180649313428936166142176870101629053917286919996660625550123322518461769673015151853233229108735263644982686860639884765228901005478314273214939500970563315535600556632395454528364577293493556383417389341241161108865638491061463830847026439072449629884804124899653314328286221231683448721267612350645256200950829795935674485205221363455039856237485578505640400643868052878989105701907830209013671315502377621079014601333425213635727650655081754398772065423681436856285495153654177775996667385558154036709361605747358234340969338097710501738065938901976125026103333663110192438738684773626244496755600839117378005695446438888373552306147081890409685976983962356593187744690467572081597214087712848789227067556400171590589360131197359021603919578127142760601330355640480218559789086442150133488156470275482656126281195871427314231567772780477302900354273795751701880151022311364308230994239275562942583863692201095046911582038664352094427157810513790707403757894484317839263412195769353403735667879176151807685300189123633144565661807983111209467882479942560524877389135491390471533724723241262266336823081514478299197950310315446490796757743490982346339240829215894627038198067306888842330171884836981821495023156340685397902327304533893527537571116545074548635156623527591717157341338823899696174361309794793019324622952460014212813485210346970230608542742114516096258993721450271182813536738591923629207865799907272482161439660585013338323841674119982950929681914126488309626575125122284733765306307761128270839707295862060433705884460428285473960410276484294322322712662319169559784523596014334704788410451195477718849861423078357559163999482020314268978242484789286649902706341916140374477392171025858972205601412685636391032696428294520611720819369621642532552796496419275250596677245269625355792533681848231705082909363668892710970599647143878464085962400246497815503755213974043851489802247080619746082300867717705177607476267444176839111717071540528765929651052483138540084293073569524930744838311109096555925488557876493907026888626606630880528386607268232283269954866522884798473405474391145903652802094841421653483553476104473887528513222159609632904616134544459867050597372396310089442376836458731245583475312718580522488465821658001206482216447085617182348619203127498700661103332412145808462496221865021221753445351329907392228312230287518957725538973263828938108780888789430221106505633580179954167497701079083001216776983602979709346328965005493860189455436704817068075951769531028602719194325553682470709002524013160563251547740530561179453141682981527324639235409110862587878168098790739786926061127112685366680809691654807572429060196459629087139683969559676970597262811409143531508153165187190966970966597015255997569593134044436022237242640060421358875515281821409483005325204566689858994903311135398649694152957154522012443214797698141181456250602403625066324248520006383860284222661938549185838660133427224695617553029490546826769741368989279538371625134354845817307547059831362937346954348751337327760535972903595601180708865081961535758891381974324622649540247820913475098592506671557204689814757203349047890474725788377106222323806168537344487509192177235718250373626279118056971844746879977904041572204141996047527065042007617566714357657064127355921291367595015242200466292338040186847672178512510011710517157058305923283388076545318768721690848669493418448312212072039188035586408835722239723715297837838815767890915491736653255758963932020379808139873771204300940267681228806190399061241217068752469344083482673850215630758190036652971057747511851441945027385860194810984397154201609300996149719233523371461313540750250670730596665891667964073032409479159931068617012614663727364319298163160089824488877909354032287666894432397896560115718033209613333687412606864639812565329535589332863776208988731443226407198656588911463627428465066071388902021630708207935613425148019937522393750880329897043584280168331228056719926754865367560569080527472036776384609385200633945785520424083296809564512680384635027490763736294277491572635375257471995758482338149882972471468550140546794891665660364528802244098615088346873491393643529166281023054794291179844032321433989742852307360846051205419564756879375289793461659347234485219560141284775936081129049058616063911411098694398372893594523531453839542685589746491081610311342088862268161148371463978859327001378072348007291648110565760682382891482058570488703883428844719701970142705675608310175599143928959784448347203283806939791007699261287665547314874121240592322131392298804422905674363042968664060466794231582180263991316517844064090095151445792845949255462784570170889861198540989204727620333454158399067196657615014924577051470678890152490331950647354945984611165717900775962888261845481779671208395436136524865262688685071885220346358844896686134871331574302712863137433807184300081166604206803708388457487451287512132678348996023460180423747462683850637352324244593138885458067214413436400431418868229295437424689179177743841789681578241102615944343929935375422106111685829773062004181082144717949726895117739922837669087188390200743002278500886285731449439734219756190318173387446781300458179989936854541853341107372170643125045331641344590268880789495670764686970097227452006455799766836827743874966786532787860239515836436204429498499463038355182513613537233589622806458841385058144029929127447362440032266984243211917748116563627365378807194293050281312561700241914024016523465144708949407762120785687678028659118065824670620900516204308641146015664147750160433768541178992427040449100030791135156392015852783251551428937375095031612768400837767936113541033423447032887701579044822366699766085976285552145911216875781797357908488122830229706321769286086850747716899180931520716347147646736678995169396680727743086323917830974967016315118501834211710567136114989904699311107195782201630885731697936558771313491018681582215451142302704531018498200566505090253900896376013545208681287909304624441813118100264937343505800798793241546113762242296194017007123040444028019427324619157939341250081164536146981565676862262303867074166826408714532598251448048478232443514461395171529009862618839199794571531839144760362098566434679966896690345665861063598155031166458474736839456432075845428580726570732973726673990889037769313154181035983318615652833542792702679767894968710492900196318017394336751428790631293846659804192549593407820483037055641980241570219284938354978697872934502982905869243804282468710340320748117781968384931602889674835201864400684537220369884198672695804411632840980328988963407910874285647771266913231320655410838852379309919830545133043050486724481887585284087996830773850103115806298185894984541287135884303207220666061725063765192994819453696893911089923811058599544375140697378265204352665430670477507996553392829579251046823103768664204328698469015801424382632029899036944415972688189221496304612631408239903924507773456191944153655833014785381779829527674942768410295687806157518089228869679150658967983978080576681454907910389769008529980834281515451459543740798082714113625520281378701265600876516994328297345753435005719898686488784444434959852922369024137828408459623071778202118825784762045229967776299759245551953390225009353867457267355983659567423965823158994339886422400338991855798432186763657709076848851342403422402282454536583020435010929850836839599195790443121817109611810534150588754659711169664038166560932850833462663521569455727002372752179137855296222868363859813281567251750164228855921285611145096843289180005743109857032026800982885161867278934158541312397687132778139224592673767798434165323895963282461068849300388821343592236894641314897536773806187064334081313330052531324627856026041039356473749007532734421113745591778373275236163018200092681152052009200493821194742449903212575214550213385618065552458882785887060878500766054191166000744462958679200063498071569926433469400055259969311251389211635954087115070219803761748617814507240109474018206782242870267576775483807927639113133671295997131427880240240816337190745192141628559334140703019621362810468181164470976409139183236673108250414261919368707818055523538128159527145702058474937802480122151801417972904911825779962337102256403764577236404792881108394117146601771175246029195115113890591923991217398387539091047710780374265426977974497186384107870934145349017721342502734154540158843158149005511452366800783235653688454082856274177595859354487356493115803295007199878675974124151366071325078018039904480081774496757625036369472296067655607787600914087286003578286861296677436530019465418293089434903139337048506567816865527068456355166528292321889017749276620020877894412332260760642297993374565164108497656245415663846239313149865007412532414615561183683294056405193843231545014192925759020952120108174718391239728724128016039605634065684833535856226609585579850728127571798890073720758275329796375148151880651341584891888230243273092780664998600776554418302637516626215393657112086568027186823515915144034631783583593263748184313396450144426470649357346274157119167376135314061779754670271771045906671168690174390306897556218712232708754505184515140256943802697158554335315186374510797459090396107145027785376075368757972857383743870408473517975498345868319611601837882202176390810977510874556369512827311164745720593415790222526790895022131929298804707229966871647633467038902129464873918341094145450741761711183825288021251963752459802515814944218553337980089574356323609536323653284606527099651455492905586503838273672840546147616639942645977771923293921509855749078334588849710745870233529045776300580218305920391485526171967157359980894707323543474723066304007895959554826539652443263412484196107168552692280532506927373924981492269064513119826402300936488407816829431054655387779855474533715267106180809105321665215960215540147465792134637324385015006485323389023190757140434094047022696446428020078930226427353100905521114304712723455864073031411788856176666215292100787424010674107614512167070931841374689724153344571790854340310730835306838129257267652336509547471565149339551746081522602639546678698836955936903837217741038738216444804953275401301114868081814643540690985579985636760995087289139209728789661010764965763373815814888635389376329963357871278633252817666742167204459490369185148136408879655349917713308986632209791630194844345365763875885763229554773252370638861242584908643078003485346838207013525644185168446553379182097601025685457292551576224729304424370102724588475861052553503310079498704859672182094089610192126287380475143409611355425362398018578736789684612626034212030864887488762852744187249708772525840814561069970366733781304318166004439312889175516399721100954417473827794323952308931305890738000780809126946942935938070767438998490440013816306340533009588192250056642852302149035463147179559841200371231608759650146606439685477772143635095202792438243598868027589963670829020548690335573737113873096907610572705947584698406209196819048213102949405166896752210046317747398129567899375376865456288032939715493267182378357388920327218684622527174525876701641750399515780650946046693926582651707179963200309855125747417671672094703774930591596632819848685410922698937689599853969324378823772580625719765790160039997492894865837032170518240914615450629969464967405169526714429613554324513529866573976156901512233434516246356122023207853181940820221271906396674456734610714383991920074812733787059307934457260155176969854748546568495752223550175279344388140451920580603332883274503352494869386757534513625872965528106659776126537717074724987095883815423660020299776626810069839265297819493116348186492368207290427086332837566555739602148157811951755795112672758829636296429673448241088808226501663393244195209920377317944485204528351213650833683137100249962860049904438326240824904492542169755593079104945425564604378240130244186944326548747701547736134215695411735880240977715970056136414242673647542860560365135118644717966530004093074372196000278311403834134551392148614546617027931996371513777922484368794400939486228327457142152497102482246326606282357216006737060149091580368716614973825211932862945040380228910734687455712864066620278647362472773642453732105094786514855139136914059665461300276090232434560442446015010914004337362253195265758092209234834729289023689775051394803482819072001174988780165842975336010522535457558775890395440240314458626437890664002715984554633274244643343675837932155745181407453655300517035867914140692566586826411265828074363390093868313660767371241424476479466252811750450697888901384061856467871338286950615024687848213178663185601025505238934859440400043742410221633705041793086235311158494601961654602292990600757045521983215318079937252797313522154272582606260616447850562894287350485506074824701949164970906536168228039313140928601721073604619020818172483086263805757478648764825371971566391176435367686385592311956571791252946109713045861907210839998866312432254428292220304567184245308332904565753150138699464249374743196149047801843336906598001246723585719159683738182571477333871786597408393883820675762630868489026782774114787495503257582908885427012043143928588340726934736429385676287535798111471166711892079570975131122486242432487324212976976027127173566000586394351499850424483763590260842806419908356363913489017208596890822154120770387776601927034843965762454345078671942893448225491380176704360711731211496020461918401312858901620649494185853290361662076620361727765516385032627336692297934325941103806582396921129060961359872250919252136404207650160682762228774408120880379476560262455251704063783029826773470439005541617292773847520687016267510766167320977776275397392366119548152902368247767987762524778691570229140351526338694255323967450781959084736159466130812566377984323542480295213989035709119891733665106172071165957947825977982633170599298113624373324647193056004793568347578369940664115511511278238758028682870425657149948189289219673320911223789282833688198880443396573206248207377372598515316949201286955505803100637345385545850457065103614041852677895712902951634783160584162412148572191004170866893814803826163077449124955910895737294011594657924119817976860673128261605014995403477501325570286856142708861997424683049147344376390048177255464756675990989529321606914434808411046095375906842752113301598120128102546966171797877523854712573766784728455432230719505374986331854979966850227088844805703277373250778066821928561381045467094872123768678718272568698932785154455410741745637863651844441039129729894223566811630783493070320969293413140535121989626061303188186159722854889142110261291597470462031700641183145416828435598607028733233359242409206546203439508592725586060347669202251101152036849646712870024296735792808176347532289428127713936555759249285919295197511816797046261887237193272645405285640234327754058353159599319283196092775731352203877153771309541997595779862260294206082353382589879993508876933321538040976724978753685604841456937437707180377864756875733375635005765383340036085966030467853143720105719999089008445200135339627517706936655521422087893705909484016869194455932229251524379114422568688408467779555014299643619030795878362582040525817373368847481002777118367948408962112455221272367643815990614626335213897600054096491991450221858847655502129395768981146604356041044304905823020496281080461106744265764133646332259713198985063749115458355012099942883915807247401701384099083567055247639848018842166187845032645370002205767201414180623253293068837851052784975126022482223793761844785764182022888043539164047401466281150447716940402214915573591690235861650944772070393968747842806962751733618849193732700310557729390602026072062749036205189375953986881099721636521266793630904428193099276650657319265436873812099126952397936259538209087365447325811285240533443014238028165304428014804230032703305302087835128573448864434304796379756737293950669926466444137408217980726488986435054881306525540650652773002498604873227298656043992215918062200414599121790188356965989244771391817673243823124445399426174635535271180817498367670486868096363462704898196915180087547033947228981973241585860843991316278316487308311455761373194510143064616563309821972257807832863023435948122830743055929502717639894657019486834026978295885408504992877180276879587207553580042209650199509186107302388084345643546360325261139644208705825068007867822008575465589049329009908380419101794515767941368420482223224192226130886604513259250211928733934742591515542514884374243153996065913305309382481270675713425018927999876799329583973832367183990096262620271821095606219728224946986631149561949234731942956861857228713932862262850761809264151329156367025053964479603683318450432524749840668066818001476775045003543991020592778366147904160830020364635280772295926046587452148363507347361964464273640014845334054376781096350221277048793696925840917691783522102308808996740811838167695012006319725362496526283134888097671205901804687696649142862521479156049030976161702198185984649707334433891755776040896275862048673162793768424371496044957022283435847917083782438566247097870090589807635248435722380917077507530732583052528610603477897093481854975403069351632139169927328331148758759472464376338488811247753416099140624061024436224212181228939626088846962170260509193555671906889504623599103311398679087320927814986904611966836648650392821584381322966459211626158891093122472190418642284602732296341537177401410045337286347045808781915792173547978863364286500509311347752417609778763627834633278297148449799479643047088737716334055671455040891589188640367629269465343608783895938006880054951456221521416553628794344206971359836736771978157909884915287296872139493259286232819651675489206319118504998851714988280291560262999293737312877765020543692701959595851662541674026913732670243238636382456093700806181967426834840389099235025949821952946934080616909299182637787412224924133856638912089195466072996349420904614083072465616902100674756004556881053532524536813324447752822328022103795359911673031633685371432312946257154298269112800058467807020668590978991835706100998734546680733974355907223073478252700646287044517561224109023317403460947636568091882550240896415666024091109869084874751366424215808778689716510992850319882307871612747889027873944835007941104156791770794641039247579334633797619698685631467663999414015774065448447745102637454726162710312401411816456391592107798582055081915815314196084469832075664503763921527465911822383069636815732217104775964366488826618417950229589607055614390251086000314837261231806783819430196690354010241033270360682294639276730108274637738613133520325866006239114351092462447441721869515382092363694461902567662991950553545138829244338900499794316410988201046013947460757941357402880286427599239861166681516939543621048992036338185673959130717156765753344402993765296510939876475248468152895861210482850233907961015671219943481432643258700665141397241940655136029042926993848193709314215377875735391003745435796100159744373630080324526846924003549001097909046646691072789066404497481263218034598139186675368635774724266519799126939647312990428731663872446626698335271844194059706677206378241655551676562150376102643403323297844296844286294391951664153388816112651827875322065359928551746361867329799175722756562915926998719266230798704714022867100493572716451810001631670450667116862642731390792062338965506192157240444949436264379191307902728101886718414121566548235775128914146292044998038976780683616956548835372901844365726434002283853702402760219900784237508433375068648168694952417768680706203047052562299909408945580754227715861976199330828924177378914671769318009912525107780009525059175002365966263772937413976920955937209748493134483229206827821522905872404435983851007916072344256969791077633806078815490483018704754253151933491466709187091603989861785939372212343498403764099444649490510255685507993166701337220265314879649862530740299763061711605703977195331062762312203807757105311535550757442357188959071873460948186988023537035201562715567717884875270813075229938505638818422256430992761526939655702554234820371549729240723842100931791426291321046666763786350470471283846530410430789515099999127284462273840330943659947532510094764648781763410128690195140240707144329577269641396462446794557024183166359462963917611985717864571006468912203127199289179747919216106291878615497750927877085286762410488904813201981544058866715273525439518640435442391357201926543818743666427426868893230879546511112296877229266682706293740707590082495748999983071990016241862843670818257994288390914359509788018981712095163157602588776676122350885965791559851591890558488419796286479735625585992408929496303408856199648003580540422989193204669466665713969578627979046845281504052068200790060188775530272480535890473579898106099861262186259300086883298463826257865474591966337234425098072748092001978068929865350508122151922572862794127372188170449860967394808639820289356870134675913426446940665557536259218629646260418623259190131058925335281160251192424763040185990049526060934904322756135051842553450315839090753652051136813074930166272119657108790381736748108894795317870631430038699133288650611302318722993534705343004459918034656337185432742177407180743547110847231063714280422629328535858260757355467716989411800286869635498178427577721816462174145869399006090841505821362413953732261889106377467165491277336204890166693012477957205191331466711570202371490465302462609220018269756006471384546210997046988838521410179440878780288067440656251583125663437412789344828169117732075923438205465510971493528724329628859640887212659206338144206303555132560739695348627137465531132392943372618328351002453760673305275919380886221825960525632269723548775439882158882462712893267173475503738104254782797166322992347964409483309609795111509867449330379383407585038641061402745420315910130040524976255419674206454533615827769683643780166102431160133501443320366730124721394133473459881105716263545318149169939163378597748861884446109834466607102381249651610745020487147801170452755656525942622488310448622031455065629108616429072900622421380206069430485211300852820577361074099399910097449417834964060142552224915965771302588989207254511504024003476191525785969532195017045022801775172399333920543043578681762473568546157393144697884751579401134326904725368142897029684799269009007832628667946014029104594757950886695612825415835249030151914032740226858660864788985509065458895297734844128398575106049974449924598610410042467681396163889915286428981190119779427350599098027119555572624953000800710899029656647434199872200811550929514252706411717987172279870895537360745765068875913781539386062367586048393455375796320990674379664324846156970407373566937033639031188553533856775407774519332370563990338283281607390164203011494871803856711934095189304954356409011647191561189095102732744633440795462727914809465497300334682982979023066927014147578899595407058413709856215943946266026285219912977373240339144954674775909723776007895263768347718628859871138619988639544769283871510039291862875666694069824631830059652254542121864349378294108266003083357764539258541821662837522402438293342674771460297837402289266580597186850712545400168497280410703247304245754690172700524322206738592978887123937122090737542557531154672040274767168514799052155258533605707798491383177409178973128168093613586789419447331071816174611920854569777120560016104528080863512707978479010971817663818704253933289882812381394562825810873971419024014471881084988124161248411659636873804843958925909311135643949411335205997270810065347824323419804583273892623545110769243087149700100995141741741645004966324393570266052638355497195039879296649767910375433450529258660838983589588042993836588476723951809722791433840404136494712867784239806023858975564527076026562860909055974395630683553989287534406782866513834908229482355075002234435294323854717078202512811085476109145072491945858697260193779232175054889946403785792144575574323622756767192879573275677819204319333394457613078080395672132132073634448476929408172024658688119128590249271241836155403018931925358520727622463692504146516331883709764117672461058730124859579763411909640868693416901026865400280843693169111058640003682275288932482771828099188472457051357492879515888051267045244079773523981237442674520212165861310176253113079547375829136573737218822041326688273620030613656320008601206285343382477731575660429946478455456161426284590900733338718891481250961366761874783470380922884860983384698524034019089877275063998354436089784840226172275760385411839818574772131510452555125884277939643826491222195592664418594941277380497556848837725290990320557018954372927395218500103724138988457013327995495046324287998303811895694889826012921659797906221001529063429312231829966380575392679336453261437167776417529938317943121443866167040490358472359585191410245679061476709460847230443330787284240550499821919333356811140736699876963939886857020338456136500440092616846677442765628507028539764876558967459303683964039495500950002241479581538686162542242848374800107641726905694734947320574051306437581374346996689826868673151150703353585720899396900176661664041139928610784137535612013070242329381573796264294526980214638391630777190596243352574974202413904958259995791975701947835079669108658079473184671963319511889919003056657356080841952613173333043800726843300815624315739407395455463923904436000159842258849368224543374999326859094785330983966433522099887421831272178380628890764783550307408297529522684101911376746915257400378228605134482322592732039301547693799442170022040256897202607016091504405094626452746446154107459929875440746020146150657009586359846657396282436932101509805954282844782053974472957585093279137811222359350486368997439017925386452402823748914001575280319181919348932167560218950947187203214610948783831252727796283398383909083388374619022069540440330329515020903124969836874442906916510506266164453942811966521261811087916535191259000661779040004142801907876557391553991602458654993897777348905982088921302718904334939180660128588349498057771048813021165757057417814075999327332595309675397939084442734827726565213610127239236885409290111837918701908059937113773457350841145774581782007256282699428171623967397367588213627946148197107802538436243888603406477805852478851259703553760214094993115350276657624103127608074634388754011361923774470459902291860633585511513786526855376474997641886589041290011028848866617711142838008983625587860946161561463450756930428034645462977266992093798180461875764979208161245673759977925529704726365224240582796411961140968497691329520118411236955554198388407217559809812613751323789138702526912509066594608086522822468119541499134455693251147221043470050303525922892705223556824499250614174167585207664282220869309872916212654382113845117200965611325086668500131044949662176521905061208927816756362278285689987741970718803374345821637095675944686183560155940475783744426182372935716440012721450278059325767478388987492996274939842094481983647378177437419039748797673453579021516166502556664907017101631334386353532777189361558530286645690707154153475155651206198777359451751426796188002805194546802383265848928500402028701111892737121955761814183861862544002609705053588971830901400265914237903322626668065434560436012800465411097522376537896070734436008577140970836773531185222947668779353532392007500256578219843493000773201267868255004746382519139845429459660220964089933280193794242420345287019166208140368663138528885255226777062511533539220647811349510079018889421775531475839467460523871504959360949205742355353033409773965674797998125227547933185364203849427308306815976565702730073652918125776244808955040344613208316263392710074622470277822711210010752401829362098978935871866808948533057856458484510830677946528428748089544207711560456925511912435338900706351682407540113110314052169366434514155625206504232689965313836946448042969212056465140490000870119600873449525925337754629577472249320357585794529165465739793623791359912402921639495245113931504374062259239764062543162451099905882231725121870002623634544374267375633304512705326619728882255392193246271507202394009056342641826516869129036744531848668357349325939541673029470538748966935290071493957779564973401800102842491810250748812976468139963931017734660003845139623440299869384221437548455732179278011905694721997589745120173257831246690192709838117513455136549045625033752884841443449582631995119819848981397320906511806910271911721388345104934477222575778293952686518530331525779713553594113585224775347776370341692330617160933988014976425663624322744706201193097257571105797435038391690999187007324371028307442378926769245433797461355880200506499076976205661558191955030743281816171452555347015518253282623825470223689984027924255726303614087805533949640510307301809250853999046026208584629186667494821690709798051318747742512900721165627761731273866231896681664370538956939308454450554773194030504012718773485786547703190806361573523542464689777776864858997001856092057039217106170550281432483651124305279775897455792325754851649236826459634194254378209506950104112155241784372764012993442277653903595226226803577733601426587444017207759242873895568381110996947649439830941697525800666585232544607573763538731968609528834381141592004524750950681661752186900335510073009297631411305184629271584125224264229042425830686031564738355045978611397791625108065195215238207147619214194017501193474280033374566655108843787679455769916968149832180545622474456242132965998750069507802278632050815315902987085152385452772711476323896241509667637228587054578952346620863574619678965651724256622752134212798239723322904563987527780277595203569404542480750153219920986767878924272265382177608107120124864804001374529174459459066787533336331272231212024680262015682064055782059533405084406933424425792389796689965331697448617604077580859963736194225141945102551177017811929722288309780460341202165573048924187001708692151531673108347709802276054459544390309827114860347447682659448366035749051865248916820262015080378177580675459824183103396190847892671940058146934135174093893639668018421250525648498614585761275132058995141149199788940829262981529280947035860577346946869525355554140427090219039211014848518184870679807194210710612533329121752483404391510060121939945814283639460391379163050814991354086913218319131533147601084643740064023205763783637619183602980231753674609536522063954936974767992154570115964618262321331950975545387200320089490950858633955292616684421541735753500027546704738385740734678370353993748001708201654845602966484442726015100136702152995327918802818136714505084799656721018708917803483532638294331675250761082212151149813135247600551885184164486980387576315011886454583329916119582244684219724641393427938584252987869433117015208899247056857351707557332219905064144224193254234740773515925970936650159454304022792804789201874936297719449195397898346065738802979169354882523895006523790475438016304063500760651087927298157720290576349775876595605423517264718842774075812291285889016611036682412205803148852901678771839748011795509026029089226622765120441417505675618734938376476674943696367777913995230745203375661969761023661618660487779393349431585357344694699329064905354242236011618805015699191943640435647355232017655649454324726572359339616242519011991070012755102638189566791722604379969002020556213767635878070029340504472773387095690348967983940583425121312113656676643995277740194336118489989899505610086742608890489464068357985578519545520022179972975668992837524405195519727838283394476547875935984940307387251052079872034274490248467225357824758245248119782382047183710010589167644375950642506343852482102273517609024480280043672955672136942423741376500392991439896119386747626224550288529728503689464779253668758773464286768705750064902434262601900875191021049574135375061634157631786036413678022269358937154083901089788291489793217908958107317307727050218540000525919556351292864217249344499188625531794145117738039587371448844518760485709599373280648096423750961295859077180069115925663467580725328984267593634205342590321013497713283877781447018651151162135638365145168109516635623921548221313636753640689543760100904854007834059523395815311421588993691290746150713934943018454879249257984205752661383891477767656780972521215404724911305961589378675207714302864319937932286484776959163158517180845184832231641012092102420958306313844089002063764000218398532910175798253818585585934230918387073160849992971257996441062853280462159759994628377626167182529858680074433292413745934125024990965420586945300817156885412486970074569057246477298104998298352063457482984478348312867183898318113049051410939347059189885733662563678545786875151518463044198459193726891038938120181620350551111620528050221581261896226441040359167277924109398972866498446732107383107564409498700710056472431118857614652233261883639752605907888536028162731460767018044343461698846330195604912113678417341888161797550869925096673208985069483960881684364786167156800263442739406969726284870204747481907802287436193435561557468562450253329099683696748459102148828190321676838208071010968154998153180059290461772483181404356453687523518947936427453436169882708916384262978935084456122506509893802241426971217915758315928032413766589035981646513608517598131075935099408532034563820132771670032841043170015750096617716811626766186085095950803628901146476902662245284490475140775644096080370709287876103101537673221327365300867375380601575816841025857506955688180490907823853565764343481704994649455048148782690341503160673972874504344369446685303090475670931518969029309686343203652784712248677625067958671163687510066338565817531532806049601605387468683949532651934494113606310127859207247508185685036955259787719452695767695028712770274820392810823777251889410686817545902714298087586469321628084577315097132677407173623856101732922319684732275572641066698746436006645635572093444660307382417613194052098470916342151056861213627654192500139951075895212142334374576613969470020741223102834631158538519185890561282582430794589253418215083071971781301616732122950028155932612974059067054120182760256983067086304498809053998784290939209970464197675700101954380097070471775966576418138766035856250291475079913132836681607955007672120003065981918380823225644204202733174493058657218962973070211783488921160422038042314248609015969459941432564767364529209144365679823932866893416686470026731442230638349770481301146815324885739099782410175073464997920917603530343763456023112645862560014925910083030875619906283836106558907462036646397195050111331461055121338024073057706496464761095246212262204824077040587463650328410108827387989143470895470746812304890626165887495157124833408408643089287023850294307704164596558994239886784283787845890539808512769268599850176573656709651053023865037717372402499151355307367991033091599158574592020168100154718945976916430573113523968659593323927380410882717690128420498579095056721377021096238294733739305690971870610609529303060754517744253465333500610554381868354279110972651332627750464053773694626527689557969724266411348136352004114624670153948603798466087390005595751026061611073853583848410928222693296681662328557997550189524610440817532208605970811224427841100752172412280692678412063922534328526900911017758997251100289857140107647023985764859439903836813856174720854289659591372371318061855629838387975444490044731412781421503269382603521948473028697734116259466999811037400877203132190263562261348085608277975036240193579777406796305322106451048920823402275635445557385124773542069769862893733504103409092686963774405446078271175498562059598934911860024895903719941676185760791602390792909029976735026733095492470112216049763231032828507099109761440600918102691087267280898605223186126207134494624301835298658002806406739919293005101524813778814365500605577481923351481512574869032692984746352366583071652732941497153289983839098345275959803019072172565959645335140949432665977606581897748810645555532775996467447752068285190235950478931548117237366423847816078079489098697730218365390254605838607944981624709025081947919820134282274170912986853332910709596244102268485900173049336519286218321917283709085506794176978832491604605109142672093977067984917395764939728778971716762503133105860439113734710043466785954758985033393621246731639667377626772991076235075413109914220191987220707103908214356089110460499478230524243588891034749790666405884358654344710750184872994933324467036590422612795027731656739643756625902330365186458030077811878354741915052088409634470177166635052141844076489264708586952525608188758402354362685205681845317193650679457574792263093615651064060583628215070151155364344126966798400328808711706222764551045859469008295548312204859340681650454430555375663069172116644623427417619778496512503925216496323414900909751200549890934272837110547740316621262688381020940332993478572692668754542173972927974022926508371394042317730483847762015416200753217549017698333716274944188817370112543902838998711528592001024402786408941091480568353942730342905104542790061288111551446372763838614257755806840933739874562090008556406852198723990854567836258424469093072036102571335217106613038223461264189407902542598851177382563061709835969140509862138890250298998095431928733400111262684688811561827205736259375803971789890952795543163360494106376548286692187176628000344328677302968766442826966352072640159281541824129261465767351502078782397360569865801120115093512205473685229618155092944456871582243261482002839307995791815700755464377426833904437788914179354945302871252261669846559638102662997201419917452935671043681747670646152008603270573500646563476968733647055397037370384120448414914056830573356156546851833906392636527812950474708375317033444198018282973892519757323314044064761782723529189643669592276938888406267474599316079324671871607899405646337814610213418362975160791841243285859463339548143529304993556329615458199442671180029833852386124925901402133181428376102065536764444353351698191518806290438601532515043387630570871992804407324876900721652953234634133851882628260569264832691509340267313187329707902919842633180650315627465505495288535967363172413693628599211311614148004434583573410665382004929770408739450166944117829918067820642010072528339895455191845381870812276152921321825135195556143256025273934690959403753710646391513920076249072163577585126454879066246005705520912809109488022149573372181800060167144077455045118171583688585574105111937217337758758530605374652477832580071977354513365469630419923476859835500500363105307622462616578788627613447449490697588583592738832997255981794389434990697228247915351966773890004876178945554360762360022647617367834878861162778760806555387229993837509184118062231448060383082704659380613851962234125753912842404836361029849045655311556808305934646645260396350691662064937806495707820230530803008826326037433104313713260170584825445754779012985209957909224260673139275479028559555339881404695318582515881440304414217450968735901857768415483325328360706470514342458238278500024264608321799887410157668105676314760734503565854744584820619456720663842004787653940427646480458630229529437611669257442888270250541744372200072942925827150172780040658809604509082366754860100089277659794479827474798632016382785017926446992501090321673524565027524305650723458401170382836612179636267555729219249748485493130506573086288907408771170478791029639688970792912689868384996816941665590173692533180609150013976733696399185272344167603286538024191229200253644911541015998059958253661636121797571496823299857132935923955446395742784932749383573276645067509367370751917243729642411784048099573918820699680220444876715844066723327820140068060654497318640917462271651827973608124602805586869170610960735406889479513729387601370681013330439748846454183648137315870076150447807834986021412502518927823270985281138081844141261036423811461547415302824758270935034474805461916677573339081627407703021484003294637911285378077285762617478793242922322334783620813711605213395452415093535622215209637310370619151007147847403383872547007171085342557661356233194999914635266898866367500233819350928642825715888183479921402208674184820146880731513023885756134823304388296502061449350825251126299108490158913181159444344980527720391254703429622312265035040939455263185579474990828555959663457961367333790596839630553935396002820810092291375131283781673660372461310661332226475437764504060447568640456557699666117166848433877553168941170412302150155034140089447425260336305655573487307300800604749058802119619576031236196652018089143567803168507365794543320174605584548975605772147482283979397255345842561093900203617951984645332235426907858757985467964612447896417066679249455098923979856669613565696886420958247628724962495238563551726131347951027836664603482438649457159485272908772323902391536476327665796453088184842724390780778014593608822316618511825724527091838465064792541023250301082993541240377865834976031686002135503458204311540123355608400100460856182676996679185335580351160389216658145723216148901942808011846766933712302672690341915558945429827953897311884265685239087286816622925036799225596764284693751013938380458422654300213057889372737559702858161919139761168344865744732866785051016512971159957184836842638126967618781414326013583661783293758744101533316287532423620494899308209737386894462092242734129959950875766660511844162124219947198501135088224027734534048005951417456518204170376859498242859559273095259131579728879751893898683786761244554181927766215191008496702345380204883008016662019639385250578424406890117042637466955509007900632255381266377114142596199743695129193557758235142974975944888834245779951705199427004853279223606822809936414788003136674397547668097476696420753887021134865774281238763545380514714227208461658169778358243839777649042608549145536051904095849262986552322817954932560404886114433654272515139665821311690868913997135800231431740769311524963675873656798392122750280114738250755167053576464357730261910970547345703708294418433701793608406932325599538683616000335134773869605595647257876758540048155817292890828540678209528130430773076031649287234336432668174179607357877862489986186394976985613864881721998062824384163263748541830719257523750498006436948949786740983204215593985082194303276039571629625147869473492999588582983873656609336485090831334262712932830030363530730413715699219012665948104546741991995904167863421366037557653208756658243018972230691947659506029697765418846143609554774973755542227989992425759047071380017929714868822680640352004837225603500396919998965628170653493570978121544920712814601158658542167898581234819102948505443526933752526668508700323569076572097094225145112703640232348398974407706222139154377514778693608593889196172360296484377646208995112357053288336010028003413936460790787706000809474344661158862800171433401615484555356623526128153292225604429421841548214791421098787603867026152371433325075870146901584521255363189109150908739577921941597970480422290224651968941150300455196607425282626972162681212013345353008010826935822328678995226653614291813505098740529502241014522861138386889947608716420901012250233387979800775225980989761333109440783406957649048058696067382647215214440611955118803208641028834501448124979035788782394745456845686689366648113897476954243398758495839847401559491074066172837317407776396414438271377106371103947252065688662274334121839527823087047431826598742469265963507651026662005045842997853150023006506231640166565581808521005830332948892642243211012944326720822312302884840863245777700474440625099947435624352176317614385099318080856815793828938123498934117890049972025173765825550076901336514365536474648647854620734389187340258474081359780005805341627348022888933743375814772480009344975056654849593750776176119763279982355334892293063133393972482845552163511058020465406503322792385052320879883281952233013710931705385713059821354903652946338068095231664624959918609154527221035969870327232229081343569649930974122171342454111120247728291478153888164789451107915765045852316375406958121513938823098449841950673600470850120188750069980119470746418322285573809859837738408636485949715994153136900227302903480896909677096011862239793030386746785693773757970965008593997599195864249534829355369408378502610914661116235821057370077225390207450104675921129385295287679372233935588301506948325774610595136021537350478226183682383731895194079657744222960619225609455476081238567506285513507638658964470147110334727983678639761397267789752792220831508733617574108301080848003178854143926268703819882811262569108347616495669387877581047339550152046548938731142053789917002757391050522590531915311963898602482758854969786701634106275472310765657375754231724389015319731610986073830882248006921913731212786151271826729791079822084800467081885613854897745649669814790407321220062414060029221101640298651386586763481307193767340476106772340151083401762436275378812748233140680530623241253961562553728755425897702625049147069507963314491641578683797039404526987334773799525130704200726835751234108661641484789716601287112469633121429898815315504960259678360228661519344062759257247007840898235124220396755032474127070374413363654437451571401661163332812816385848762152269693389562945796509725171033975739858332733542074544461115866536939757391044205370534786404498312849491327993203406894104184522162323855248109422889562773791256803489183777129502227464476913886066367465187429784566156232519353003593470027864352412745119089654221406356173184409410202203563621301712305428145428213702805633467691488304338726992787496897892672869771827371557672227889615154175461210568903958031658971157323257447546859173905496308257788923960506352979248534846564818936555814450391548073912304415401669394829917158856883829052215432163031188835516446716232944614415580606335599389187138590796699265638341149741662059777392501121040282874055163411354085620075085701990263396873425167236034417922797456177125104875942553954721115883784741738643024966645797136195366524410016037382466978500000667086604516454965637100620831744716473309221316206610751618435353401688244436494721890500481750351744039561983458946716682731608376488854828172853880999441532792340176832646042255979856412070426761275451253652653892492221365906254090636606131074307614585879003796164426072584353928707140789441247515316739888872398558430442872162709515472578634863811264991829850143360792462380848342427346011576063237096609289640811515825683200554509422396282658683546043794818755284005892004918122896917422340282510920841522994430121643984798859844157685072350319801199725509297635374737657160992470978289119209121076976958879575215298415378356744120391214654541701719186952616868496913336101831147394661826677952078170949124392501104189390683174242831820532595270301129973872697995294977337107122059523241569338325575788798574629330537896681764228887146906079570765772937561008644984582465680204185065249666755598439262077155545625973866689285462911594104156998907214779134946275795655148413671028831574398052761488520567088221319404317791189694495048010107364702230011535721447297092373630624812152829563537381800937487654021477323677491452017848756641726573981644302779902942879623722267244493117452174827029284686501275644965740498059874752331366291177350066744702996882643043127760895268505584011711308280389902345096553209603974744983491100449494612651956986044348146573928216191310967899472957390405064016788132708947484632878980181468822255881720877443277801436794174225979184865689906456293657247703501783616817939713624832452156373904460183905569806000509672584494724722093581231387699251930907046281521267349974226973179336646967428415359858301516786392253477787550290268866954947274462706439098501079513524609481269892626506421107608419145812620366700593948144945898971747398425564495741315980973530816149862810319484398042012438849010820749736706763710707359588212034542267399534887148711041011053911092000901494154155993648675003066166731084304362634676641433058034513201054236340301427553064430535350146031399424909356047950371219616071544916844065930884696190748209257649765731767887299582374713287929386077579528760761671485723864698987524321742665376248540936386245264417935404966541320484155877653303433899865575886288267434838920744580791354711001382052455165169676915181343741855020075912569256671714765398050115915756197115346877139434028955147033777091501282752991566716459330992583433085502607331997324621432528458672915004164780824062048017666475177612303214170404440713660635008066870021507593211526529263358391561141033411773932017912975793396508259108202359734862986794166525954732179026729832017344605479103433929390864691185656619878288210301777689473024845298298655473857265748549621885386735621764469197641707106806441218038414235193133202598977600487115677801743395340015392351400641875976202756244509633174751667654844678340622345976251082512954681162430297526948018569110203170864482158062408362096104969185343024405165745036199743017841180300837367108730623254001562260859602060258935505561416612097010260446036603258358086659017688211610744519215687667579637006556520068633165185058133976279959157685365446340562450794336786357593369316662140252414303324998580189166402620984559896499774504232548543119587341668847392156440624341746933352935292815610233481889265502945771302862442128080305630863484253457598370286742893769375111206923355783562617861933748552508601876295674346640943259849134258188866798018366451769222715602591466797169586104373981307438447332973407349359400161353510814436897539412260051742993180204707352863028449501952004596377643769199189895424182766522562087599632473795593836089778679197670234894064927105074683115627187656131340854920533154848877221552565837675328400193927068573091263367211595711659386704753376249657148747747804895215489769049572598517438507665842191823490212905826622909762244453546069835317728835107612327061723509048172119397679641478065051954100745646050456664658090746657018108577481227055651151077437262370197223418897944455890477071380018242288788784633557305739778495923353916138710393388788184864534200776815660366896546274148653591212371964867457311617715788550605835999382526221463049914249463415634230724676933232931435540295278964309999174351620005666779946943744762081211101472431835019210546891765325488118000052943738146645541938117131270219843487475165085138778470338246653889992781432259462126473513117343183924545443959293734396727735941308371388032946104612630620482842832795353489761875661368437338098288947374156235354047569542007274744695668126026343587968474806732733871814760956170748007254519970271966155916740445996074929841102978282403381005125719211658405436847475002822805177349368601003591973468455887968008937918608963941733025824150600740747056546401119898842573582742349593393725827025066254032535687004342147271475542154425791242519773821279077178170828892559771481150108980210435046362330947030254379702428976870307619545517853948829182163134951811360627880326061322150873048881112940739042088589189336273153454266771762593720931642295562252446408110490629341534896919707956459476096067412206490021494610753238999863594102717064082401038853603180096738594741671262349120850037329975461743215868176152539436644083784581724890558384126286353090133459365902152906759845622555930046559935766228207111369026193795883032093925079917456132786240403222515706077912287384979826514781663635680112616061398027612221103530726100160532099674663954409183295883465320430530105907267268470917425429565738017055844521187250093300403596368835957552257257546545776829496089053122212777308522207636889225408244967583584295133216575755347402441003936323402537061579038715201699455562335153107538758238993748439676094713656646266447451797370916771212611742061179415793301607399276373649734384171728868502957019982906951967848548963047409657275006880933617238364460742487099088607088549784584417540617293582273087902939524405743007628479346826946157071724290680035316179600816152040767807240632152723888652723705960911753254683768094751335849134260908177356907750188094405816393792871903707169082919399627820861145453885206672747600939491901793363117384467292438377222360280201174568994406167025566281326315321144649114051822128601418101296057173509762393055387806682773359598873003203659447873802673461124041256799045898634825062792296748770140800701732794710352226682108886379619648017945777872711113809808675814539324522823348277786350791361989620078374724825741550644831264940011227860225416721795912023140028600993307171860377921255146623233853132680323636559269858462222624935916845901545269590884111652643589707730553760066143537166242817077981225482266291457321249824554015372936563626642059776136914450337097745924527700610663272421401479219205023082656801686072203701177641618488788940296897005194176298638580432118204228968328095603778947819829550743580376138414985655772796928844459900452468467947386445701087881551037818113368995342319462237640023843287355181354637543053599428980214476988466492714511556107739184582736996285507261597887310797388208293732340761321846079331364012189492760697801872847758103334975013968697321578908424428938585925170132625594769272605205755343664973046872462970739135889198776292226262852314521759280083500614671303368456677398359291735800495045678186053525882139473336524359849846571171817240965570809599939075764299736773799631186103293390018606311553072247425013310446866165189108805468831667504731360494197000966282342303436707667133341755970103164959619720134097125353775943715607086553884753642033802883234594507510770409994627748208262493684134728869740319396559529024750712354074649582756714359485439913260056868519214447499410783521609760928961890244722373611510377249190328463509667294983410563493389520843355151859033340716398108571854126876425051374575535773709184900468757833994023303864422956453219772308150350695250615977260847706086234947692956477717856481630186851849341601451605076074419864932404272938766080310435880049753375610863191511260910520814346140459502470371195257272104499144215083159176221477982336890508005092835318759848212224545555751213475065938327938182467166129075832516209202865037666360267688348313580426841716449631244324197654624295001150679631972213040936553030975501979201290715453819169412738770848576319043890242432989058883071135822646119423253750201068353258265262530400440585023681184767781584291013717767227614948542101751573967376551400091294841023210847582193077083995347376526701500318451185470649096235484068884425393313170170511641492026194758142956283914782971082856974996644946185484000848529265496089241433988597382163124651524192821877729275545860472612485291020238086587142314647226597287218194601771492040312943192604709969468536945731306218314871318839321997175155690169365401825191483637772602533604842236855927143514692072829118732494645230556834135948213356860230568204544655742733784368911472906928533250660233726902033013218081549781920168062955889906944264727733809135308501651214587655638191974538698770920421901622390117991318347488968451903004599594423579256561546095286288487490522904813581777155401947345849164572060235359453259352818666584588138315356669588329719010837443314319064570542482418081293047884187274579685371805209977880981512373202556091944380399070924543108851194637822547266482753991327232263298466223308305931953924954066032439361747471296014150289091567978373137571649203445824559906303177974993601109590026712302640104591836465398777310421028763840762197567059843305507491426610096382034646798101560137613696768568065020436154287790233871987506968966660164136789238427127016061510546407995369947951998450536772128474447556546177875932491864917265657356346909712628174978031665456032263594187972684455025923546553514403597981949710998624713002586155015877032478048355046415524173785595453683083211880239606290433082030296540915643636548179452636832752727071757063002505702875549002311306958542494424540155198824019926827605549931795872026105166034766735851628553577122402543886591123264319125239352046433782882449612772104365249123058973656686717283136813169330894952527934045807763297339214966021416433759378719675186036655944148101591277529163594963232099639867726731356717330253743171788105982629742352226077477718937498065838686033379801128032595511031765292696474164731511017625920541630121235163266766555692387895521328950295112146019068725603547694898249499480733204899051471429397124992432790825488641219136794040959562703070488737309963258496505983729036685568975802896283583592549962926785046346379180343890163579444968748618613155129107736424097105294750003201531067750762993174012762399753619509995290681898428604804321848183619482559314312148867420624212858423083538164485671466478506539836557678701480588954644004043456857412950840331865350423626098660163087079081159450512933619785755500219814285814488683691830628971733801920788806430176613670268215955468900865361011469650773400658786584342210985356304259461663424278372168301799001486013047540191787007049692459142083878175194510718249593125694887456225265565037102299285678667512721530548080818720922847461370127972387052843331515355912691027926150757957381310439757858104425470852699801525554662514807298907250291589191895775573191392178730839663694021420626429890512167622997002354380614913692437701481970274167698574003533922373721648256086717758585878324398294548876500640052717989090616560531208113121356881057057226695695551219147267321572641101060459897462332501238495975387728735424344788182381467944076553499359869824430197630470968317874037479717285850917945649314784393575307003258194048469280752338827409140316400352654137662502116296854344977242720762696776646376812083123306657391074579002767303790118320274028858447472926294199579115931802608828260107382715253908060804178344051521823355320236921824023807752043737285771411407757035302891304875486519138661432404700193487023120974416801277364570535021528358208332425272132119257892701915289131360108345015150842961052431818985410506101625548308427172179891022355615661564792080227335084011669066677327977888909768157961662910424766263293645959881664781132447828597946539521996842879291266430041353353224899703625548024125830087870960747506751160989605595243760225870661028082872152483594022040887214640241653721312813505175160264723661977175515910806890440431897868974339838972527041743686414699097897343243268870325105587502039255346013353192690251078954552270952477433983857487243475015008034926081794543430886613091627296426800850004413066226465059561746314859273715274583012330990277807291091104982191808910907779150241128739607447296966391467433464938766696133658430138654828719675802444683761012919102054645431292053709163878354604923999922748231863958733400279509883221917205647501205134193795889393443216429278488781714285584346161555671810520748219159491737669158489791627457049338070600540218933849345971511141006874568026759816210085623503926503857587666317798091358498307270082831161958210307576998290523532766945172209639701342209741971892919563727299968849638724737222216966685327349933587512732342035426248042718755609433130161893545104630179986603826333606275040156593108489127019689525484070555297289825825944961190737913589729752974529327755451681201096068350895139530100898073618108652195319256976541574448013320922960043028116659151382817702894307036399971846679893818453605107991850546467318802833091372225779118950627199566746554429867992152244043080313222872024349409222047610937045885559704727056055098433767790617263265263776250769559960951075881714132044076897999251360368377493842333566661095489790221877924052779319344874979642596717513034189659185352799965885329223241589655285661682756325667785083514353985123934154782494723534131551857739250968391351531353727335961773431566824095177644089969160152534494044202311917919296445634929705120955542639745267619586287783233814980089976885587667638449495526086940977966392358708523484290380219054070707623846939114062416765851331380610389922759028249444866683788750736965862670304220924094926362184050358222214847744655596369472677321000610200736386974246746579234585738331973260226257419569314775036956286746897130245329756299855046390547708623970086376655270875513460578035457391042965579396167133637602230102822081529997187919832328041146450943888285354874465249090301889734579470014708370424238372147287329887363713947904841369594057080793615520531200476797670466505701765802022129455843177137393270456091333950961220443980258085583157486197789547362267612039637380451056170080791288102083701614112462877576380596786931110698307774020986881476236074017004579882927946382429629021679728924230459121926616308032807772920423276151683840310141405658694175381196090360042044938805236158483753465882872714055981531470546441801678066359536691611381628909260882468821304620354745193152846394601906654578804701993663142798708643688523889704215546187124666047731010130716199195686401381183915201269091773642999568782055474358290313484525732373458914338376556958986671749509716412484789926589824548268887459965613461471615181824409829275281546768307807647952692743512429298314038613638729024650792651776310576760775618168751812680172651404231554029065729330511332659194344902988205057473625423741340079449925029392459170926174417316648338435681558397389861784574822779820703159515687036691207561395400235888896918833268399767528686167560574115955352362115585876121294608715346532055933775795749616657043046346212968478348278655367783696193813067366325754224584130908421306625060257387927980560829773824581990002533337974875439510030567273258415201957222313780843644861044172213776545886043726384858291399271802531800106745118877222276571884641836989938761014718091566420294169532501322459202579321206130866786561137137932960320483469744271062696898102933424998956471747724028709437330384111039442823192644049652764329068759481700213552848330784910094734280147055592412053871783561219500484530614340772405479097874641465470194471695644437081934071661359178395226526476463543144929388466615286221423075954802815703849515969638972377428660318754646317418471339416121635695469871578140926313690187800878978610269141452335519148885803843663346414938725614270871989680740528865811483823910730096216711529568584618162968634085736318600311629328512659862919552023983257328408989432323031434333039992104449392469801576363629031267531718145468538034474665685180327539884315017457447061142901857938335751624009256060320067870853727468392725266371825006721214778196341122765986441055682528666772028312778665266179021464560233256038306076940436706229403114192326015465080040167317945872522442594479541154410368789562611447726673788656384205441609922221662877402178964937472046252953574572110309351671390921277665622081646878811045762899353315242604523759382286952331933851111165975161315909149683224586195524669107066992727688647921040643534569163923682805279312565775888841902303973897300611567518616866401193767129137732204261062947067013388910324438361540383507057677685272326221105726473952223791231724032597342763781876165682546015413601130301957548612669996992918922078211080002148258398116024773581641829072981197093048781429178827807480227319422377046969293047664558192061188706884143437844375065658113073451680215492270158504369953856059010122088284671930647661513041854520781566569844517343712405925689948124250536291827406203536634450966085604171643281907264581694874118802427488071191210221692680890228434914306714985404469369258187209046869325133620451850434892791185759183846861050293777029505168128225563342036394985025009088789292707220557544429085615490677526367282339115558811690343432557752351552432041500982998281175389177940785142355654074330093224470593327577466895944253099156584101960666331637802635207226418476337164018498254697947401459695454728580129484928606374374556638505684675814869215368032809353582992248264834346603678275331545164275062244379720087949282909465174435493281757273082083511067992723172484536535099381657870975306926470109912607449245202815714757690251091704579171932251936082792020688966045772806959325989871050836797717447635729322987668460962800353295439569816543042075093676599249898555023292060148799183567979178791460150731176850454169026946064868449279496824479855828353339052143785109526010573391914728362898325317558989703664650771262849102286087115286380848778322562159296192953525055517746988498529632530553359826049408918185152794472581764593342597031935337164759355448726545749238362812704123479408792207778377319959171998192876996253212768346997459255142928790580325533228744624958189680373428912438643923848211349790855334121899094398290748945520392980259816031522118497705154943991221387221023313474561292985656758230525899979437036647729401980009752784740265708826697175737351984360203490821801751453694014606778365982423952563588438216671431086744252533800608519374683641021093525801363067581815581041672834330587426082398473356004713718562044493805920016820856611105337240512502453150770395741600494008189668411605494566377678185699206450236533992112112774229650405706580458317588394167047691366952147401250269690171907184512103655178533398616789715911350989108158208151464027759156513873348895438298957438622032237154791979497184862917741391065123923635943697427464327618110093633050197476458952414271684388803971245687181569660692358259584083402146919405373646636739710893261247961120242133961767762229149391019026537501077444522930089869718589491909810084480691684971595919892223798338247269095093217034288222739157660764018663502064503954106493606809592784867138174588575454623488966708952568861060515768939389518219588327817814395058842294989862577097203721926351091107983273062797334752354323152596287719496822766108777567689866421009062551363802214838209890673575031963174917114325020169049622325649116528161610698075686091045689258081430567344679577211255386253673202873069027255340564351703480531277822757056402912303828476355456068976647165886616920763329737413339027665824756198728468827062402187872057160304549812529084860558057696262505542884711884989562528495001028108587083221118651095487295331834299349614813619949737080770467148084684639036761585065581012453134552687764129717770788702275797475780292309338122654498206778412051000350393985069544624653462931315489520436282689084808546881487553520137143508788179049964214727930754812998964510357662202345726628067727541300562502818476419218203526228549233853092661549252135317526319250336918838897618721345155436611459363960387024828383067487998500095611183655916346084368537217094295074243571302949295807442100314852502604516209168269898307573240364773786337851995816969711013683369217074023200827701582214422921084550045492148725193866769342320633535729274636597692784817604904852427342943077756889876605485688820310870562134538156196703564878144803510171998019268817199693700902257060211676784223760568810872851181710475340900139218449417743008678269068666009337378701700476164974839614530267678471631382591559332553403705553201438868505851721988586706536194472515461191557814325103616524587158892076234085304051215339114086155452517665383386813752419568062803904259327834347733874634599331247221533941726230450469063989458954865039033373352858721895178621243790228900714300526810700423852673535104118898859142133200070393139374385144324951021292801966105917677722323527660843563980105978340936443132151318932455119800909276352018679147442036633857810793818331893455815339264113115497106173724971742327386014060794125744938648977093183486336262851047255715510742105891076136893722456091702110445087553521196199920868112017551730740266498492490623247373585199385456718861259662533043701554149602203379316478513863316629099395604672564955950314747228481040539966891080449952421226758533899075279131164458547857686359349097399257871876952267570090670693691778258840122891781977945275553094806680493055012552621611668874546992885884501833020627442103586976359473360380371146308252991508177453764847982620346695012135612767883290136512768463143581164423352744001084706613385048719243488453314065577340991481344143350831339898062305243899324232005015192510516318236445242741220200222266156516207339853817601281544103106392062547142191722345537783551911650041698896238310931631041211869484292006979275530175745453333216256847606189237623929426153647682725396780225811178914865531362163784294495645119291959592420967172114636447882831466773590131538151125992843151218610331148070496362726748549113890792724734633345557598656886568471187732376205240789858880340152973249294996209861016283403793922216885651002263342486579408764441619143506896750207454390509355636064279994890385378401812657041467361637484088275657214665713205992972749407455910092194537938532013488282114505902858040306400124896131590634920575509898587198678498948096496526023183733122087178136310553323874139101573434306326809181263997517490658038102490343369540193994713948136324728459323445652059729844638701662532010242065874393410139124917585141357312495740854638591047287523164458057858396912369500367931844443081947573891349488764312754981372171828146639900864501956259432060659662161979575536351343569682847513527939677644683432072011189629987939462129405022597318370085694331945332679820365930396921303603280092829144935404333825453070742176813823402227954242569827379099363815197365279675480328465542818783179998901811135815445423828881650448304487127185088088228380711463486999528956585575223477057231327996999299163661495312553619717368679326115072172572504718996538010518988467254060946195983694675162947694697996477517483075204239836812124385096130780306369636970368953005682515195484846515312402078510630806292702642128552073143682381524164697678029800091843475374794981546373786719145321858203721298136578169012584547428918535513865219023119209322071000098143645812444640539474852744807318114743422938721324835531056527683946513257347701444316194966108959189192488889153027945624625770100404209165833708473894010448736306912299271594190157459793671152651255887962482400572377036102835308164128493318830431469983697873877666502787045780839837109668783771860824736320223045833253609153540103677453753050768034469962790937559918464215325256858638544106502218024960539291888384346836095395162510831294571173007705467170483286485272657407199512383419657877172977827904038326868986012828463017270157729128072432948499143997077405195517500548970068441513411151544967142565928688655414228387484958412053567057542258860090480042584248261601471134997690794248352841069944147109424538950538978293686704335520912348849741653947592285865628928748066624589098521715539917498290812218331563280551603122955925981374244317348864143123731019703796560747014882387775186436744103646984808926081034026939973973615340691289901787641866006929386882744983954285560022189135340080816876164402720980661685116785860353686618892902286661204147708769878811080377709430354181274422032361043040150195037681017351367441363245355737762744254240528363902717355719526766597978173142807634635061363449851251616843535053205443055398542670804408756980334275059091913024834687164557949349538720816885828989446958887007273059074844500518092477734926338548088474092290353976150972697589142393001180858415870559954235888913608060781935516409715323674421472341289789365315374366693025691716567807751049730464420733022614430114116501953446038128342974506362101643259868945107263293165107263159768065558057609313685619679577099314893316468245505897891351288736925043380092942496162375552768101384038759408494153723821930454217905781382820863446565138774675740027595016545861812951025951415976003321782037823826561671514192968652986831692718247567581792908258969357936016073301154394299268213331176636427247405668184410838006035895691271749720790710224537812249598206671729665362445185726865741813778841618370087747172592985535122790242539148934678167070159828866935664394072731370955908085822310345906484251033355737349221270027846870577061073715557607065448274818380914770235306198626294552485645480678564930456591668474665367571161336120096999459521998282425387578868077573855909143694458552472520240995166131532129452788671646306228831459397632828221218572910150509120083814175079248407584884763388099296485736909722472742444381470096866025168283343066354103934044378881897834692640111612703161311004781332100862594402051649372282853437112611744458452290592251300648654449135109108915779031546335177875931745204080253852696207815633215974949238644024954407046444441561149576302467266664270700188240387741565505021980613376534481057110942009821057728103707053180479687404478843062691358052049122447719972734540476146933303902719085833858430364411263182523717084364798403865572735971329341699841407899623602443388200520183051991415385875958064654477727217646732094232796835067878675501604606781717305353301899519908816653900986164638838939282789063293309260295258914645790274545958746607654112046093792297846339741942689254207624562894361282000621927846306441021664128682854744720494541532703359598701134319140172123817134720751152253292540239690849949150147788676173881813736567178110870300180407488622556857772359792787973092420703074075147581594915060407329585806402835282366598962070123500038905648910172949097752471460392763980133880265870868179869967638798552735269774611401810664743857999259916134705561127618595020522028107952695796469249843404662448395132960475663462914856784589603477388319007314478806930012023207310617674528093570243833580008750558038669983972572107260719655720492288803090327386896498288938511316511036980562411642176530103022486322315477509533979106297790299365198047285285657560570707265608832843733868700392385306984584493799955167538554578656698383413487061053735276678214074894010943371247455249477290719875038558004345419038111995311913021303091343449150527086725940984770050584736929119899143597286564675122170666512530195713956812290325195252612853237563908469892297484877403306764609351094459748708408781488497147385552566823012724049859796428809976044688905808752676188692205813834171560500582161930868603455795216438803521299319819684502419199883479978402313838488818280905258713116811577736013810042221712889870381066291198163538526601395949897161935430452180656920939916482410835010868208863371843729115192937080387542804196339013578948413520586875718243431286912498522971037995509511652999739569139912530654405979744389770592063361456253732401408488440447067471125413426896287343867235689242951792642090958048110666167357042920814533807568301135014267770844065084924387834081341677457162723528959760761082027493204434355410077759277936475258792013402217072483510339423254086771402814780968469288733288257376024778778178328214232267091942653290734044742895149310781987937249883434096253632808735461060691091025000908159805665284144323596477266210797919183176136467960497659902580448943596575185016120546245870600117996063458330126976188648866839180464101070883323813885242748551593995556339050694587578324314568643972562826800015024196435566673826963813318882695157657653785280845083630938186744221863404645777667824327061417164410830808701887089974115618794109133203496800425909676445550988543088174406342819465634125950618809655399605201091044321932490288020291296364182207707388088407925229212649013926677096534685294965571258840480895132289397711986393246168977728425108039678056474029699274525736560918350853805308320564110696359379321199964095909318608973341538644868585590524422277135779483000479377863773148326603901987814503655479975164463931211012943389349893912114064464403921367256072657995756836741051930052636633153424390352964089124488882981385225833562110516324913441370826267339003658324423848974891027384437372473313297614117781264099040638420416721380159555656403786037942086109051102952844664892516156884482535615158951696515384012803577250413235312005067706653155885041517682481189933963786428041940596114178565729073423920941266062777651615474827172594102370154181644085033379089727015952115939874010199116729166351761999992167236421611803097457666587454375570203726224431706341002565279892387299897390122465770204458042724987354430645900305405846244369180489110143630248560487126543469735452959503969537769940794539661660038440891053452445678095153053421730189670221125310660763307694756287025398727683953142445726478214749411922752558110660223446654685984601624389427889770768361362654316296954518972702626234134027740006947663233901821733888528569164146804553759244672976898173731547497219768225480055072396837678198443087950646475639850725712242439689268640987272939236066421168175213719770021387788365291484018609378048321941700226032556149842168720478696775238943759510304053340364047272130728951803478688676456331906979381811165361843834714013152314052805485356432230343660072797033898187457948967791997742527182707310358617004585413817465042709066482280531373476540585263795327146203077317493683544130300410271373255186174983469336078127077556747958891933672956519634967438553659106369687394883680020577245794890468206567495642934323035645734606801115240210740242785361795181007252717097645420785596597027331203528308114705780654932425774133238749717853710472760978876868453938422260257552462730977426352240248095004590659909230610996372208273878477162567510167616919916288904564419993780889961769354218004661178649144874086188254572457210114633199114417373220006375325652567947105825426301345992439702544414228531517141831319168413161183018114191443293118695756226939909849827311126664919908732184903489877437886883735511582297332398109748218333784157141210340156802535972447323502100415840658017432733095801328271833275360355506182029811232609265867438546151921522545194049544140641837642510931522490754859208220902535524572121248912942767564805248884032111770503022901393952542312238862213021878334214963421254098149112272258998995720359699344786116014740784190187428326317748183874187294931111425827226512886992938467973813415177479175050569865434889966210404424007388606850190049250513987125847130248178581234749256714384503801712300938735009513531142730483377055748364679208740683842979906689307087072282394204990314315964296680017710493459202488710207422385895544567479229823344265508959865075767666839486151223037270946542477709700369252139928665202876451123201852210384005544747020787787573044537825696758784161090436855414772428264004495899633683364035541155062751037635814346884287783292617882279354179879752000220144801342211543275694606944015514647215292625348973943672880190001552116387349204848904189701859184149176248106157015762701916090901279943895633893896380225523803602287619370755252442969931640047272546972978716856813601916551379439026467144979302686511607733093054537446146241693629448289950481521500241459655398820058174445596145269881757964132519751634422273207452353655193194336334131149870915317236506014932733314053265162558141772213401658585960866238837286237918584695517859298251084376359408830070940502433112923892845879087702674267470998072838016449502233177009962928306758789381366678316862107553713809088895053827260335799271714348184514080769233524970403800691070192770955168648085895126850401334254020033732840336944063732262873307311641818139804346610462399998058949044446029933087643863951548948673814123562081797896855144469626875256727121721160362476186213808141222396204972404529224818876628391683366857134682258455791498373216714356432004185201195530477728170315716415327785088741195624127705116273762971476134958806955988611626277482089081162643954703000972954821270821277588758302673281401075990309881784133984524614879785908669526788710261895738970362029383587741179043988710397555469703835422266709448532402300170988638597828672175289015007901390262338146742688514883997158639757041303510761400562331935857507248842256810316761985918540489546561387041028184472390721191225379166432378199534071799096676292114571347169282787634543277171516883531924259762831848991461715515137501311129881911091332703237407497899613847557710237649545905821571402712310541663061039089447225508824118706409574302474165034701589122904720787469574833722857340601438065601947117748541935295457982793795310037993957106712878201750594379178985744466042562692451089226842720459317067380559560775863190246001712746078971393461187253084981609560401383833915283368102633674388385101035086544004882762930126184122262473523439746994116309848781452171815456625284655966614008740146826739504467473462371244922596507950617910772578739725978210752166391863275850218607328440559994124927065062453713031625597595738935257458483036605539340995352544794948168264052677381631306017301529643626669261395645276657910616981163296795398849381496354116032629940698991076829240949956414458073502204211243627089205672536400926027995262004415809115867059509872818668709568262001012325861089067615822837611066713517849929455073275583116929367983561650091035849959144889591661224149901586618579122964689826061300613317215162574626287061922033773395583129055143295602578794116815024358668352220960848147513779028510715178877800562882491640555512261614439742066001110421572934527733840564558684916152249396310280531853761257922077257111753601435512895551404278962387445804328405062475487905454085688137514467016280208432847105046234366765595607843356536671860438743474275790744269438358617572711872348547154525659693456739221573565633975963307757447507520505897997088129138627449219942289121040681212575331664944134065506181619701056879756518579960785772507139292296341806999778654159983621509103136525737186900041706132617584940158829082803307843259682043566936593794933526735218352262200303375314990153460730215365086594636802099041876945261544184079999650495944454320797972705530075740820869999850409166861416376747256119265928705636867233110034965126052172642048031780166251775948908518758807205588484166441230356159728858106802340891539424440785813735125070448949010447393764168433578138704700831513231748910638629462580066901495258150267774425246927785013514713573867122574739175337504770118743788092215036328379566640461930455243347037499843060667689990509844802694934887729964056416363828441511017242462933659389407170279166459973766628097381542437462652368566040938722478494325920977113565895217600166594136595232025115638009215812648289984673608107258509882188289444915602025106135159480740372666487498017797349482189401456084683272156290009237977242558714385715254844771091304518314059580217844837342766343118533582264430014572485188895441871053940068236134369886813138621216797957034826129782363138072659562312095846432354964555007580397859712253231114520321767749905676346254991561779181540091918773921287257498369492217005189344544243676958271550491197622660923318921880421899041241251663348369175252184277673866879583940722511039990053712595674745438446746426276209593308822351810823768347900642267706103530355192011029709422959325787523095361303470866526716295719138771123115306857702156864392947910314475750563730052250652235845342361128913439754105204999326908898798463858965883051382519514673389718935192765134543145243504679592779991115347575333853311384820267790619113990565278042907548783489610738651134008396644925162422061187538703666764573245342524352421618286143067519150266432487731479332486254232488454726336865849416321441077822897352584257316007590864637725289154120932114791911506970790607594196086233777098399118320657994448995257890907098575547133980362422860436253426516504990864179666812121925457388729150342011636040506329934352178723194872783020105657086849461390870283006115701862635593786014603659809266565256234457982223545862634220308067968101444246278278477760691477549403937958177124066340464562481556578219541394114891784449968362045408053989455831001173226893815633914840961585641209471402920635627400996393083378541432409265222758828390969192682537254072943795373770705167619116875327977324647230653527717154913515419472093350702300696845684847075958165533258969041479363173766958939260610329025386946628575769268413412430876508751823204197076688418325886203371422936953644501118366391342196067332808197963941833045736827990231316802591520288965410257516180818049786487803632941014716986230846572457524056954939190452571654535511253960127715040508306961281388701486239962972642870186844670617812536851000148689436602643122313223611327472672896409055802779107361698438002122875105570183121732843332886034945888651449441915812673353404233482787720513604466405139045358961595004728304078157023499422530207974736589698922309257908568312914470672302124392915387153851363798046688200038772099601824654419204119215082018315232278250182421213066610962196052523750201917280544931088845085747774453022776900895155032212150315213471974601343330418118476872090283899963361078651011083775943758913845839292244538789396744517823761382773326243536236545905039252952908511319657069108549386411601751370067897246097825916226797098140549650740439234562609784787632035889643043721490370021085425972664536508782764880419598819291386080666621966314339499560248586237210796196498506880854935268820296601821514173562074366335836556190715642307829893505662705296537383027521596819340069102095509511701455100859540568365774861669556049273563262405141237431447869028446227008111084120406639531196222474080875644960084371467059085243409920077868679648802882511445533135903850205956026281544119145174257185735768997393338691328276961459567596625492791505871822917455380251544361210131054066248830002504943315615276216667837391652734477682634480270899471119296485480439422897008878263717637344349332766904827768799832678016501485198048330870938787436552957022659576320206387640475971290069293189596726094162023142708206158524351132273372250494777299536732190949192569066939319090744252564072234194852280922164942092370320632721929531259400796441387579794428350482768378836374226532533273428817078083384949478516865988589544558789648926539999641702998547367811096673339490922390405521586464517369212068127868388875951306859681239135901648159860038434057776912501109280686442563667977619237924118819832472362758001569674818073822908746410426104081472036979517165384581440064672128584997989445862633557858583926110594122238172592445466344750047511888487472890658348705364724225957116858372234578875119316759377980224912470764575995259811275790736843285584844060900319713715163289698682087615047686593532559107163729643737627369294594804931298259184549377494567882874822202301916215197685754979461969980683046746028828855624627905482937971928006523203548288713936811242491119490326839011013190955272809198074259095134112145987684540494618619398144828222306633250596724553955320950008371427028723490103268867721907841241466610607441127369296205290669752193624648996846699493728520511748823161492531011213700734327002910086456433294160394258372479416465856972569045193907646741305498303230604476421078746431698226259889284895732870070433771911490713885556814581041666098585066124569605214084415564063489371588883833552933709449514430179236908366314373939323187348537195663066170341976069790701081129416157082881391452687388532422420687870896635282835929300305510753284829026658640853740865843983032109774439614843778426860520472994842388309567623902821077858595668508856194704467367711103783020621896527340861929097021311730629528603092303105088865748958049668023241811734823984575725124398906578251853291764252403548745819498130600351925306128814845359849539404993591069848007390840133941384762573733890149675152870796143314033042021018731548019853002984098270301688472674148007476390730467692562441460339351525174272975280098032758938243960403282655902111455811335269810369034502139043846400521300093102785817890023036514562591848919666257775538693372913033335218512375371665685826663163334374443030809571330556340042023108046138732357174145851783723971321142517472159293023565392660553929891389948118860074639670421477445615534833301249101134707487024672899616710405434741767720371096148936397508685416017023561912878714800206666374772392692508609869177745170949317100767641785837666157304812227872892560805127353299249283640086870535103007115970509199085637268609267814888065988215277349152536447946734473700324699373828057306892680848972627423371420508446084261318021141111987917831615869446467707146470105758658444825584988227450988043233628771797850321307127234057284309948838822695306264175232423735288302955957279662580342306140753844932041085410442095758030756026385657038337427490398579485900255784188509301438591395643668764653184473040535416390377977237911699696858820397252987896133065591729962694523658122915597302368271156969599931729055465610347847451031046712198976631590249570489851960626846926991568904455323092678013043737481316383838205486788090833810585802401016039806411950006039532070549486023333866608774752588382681171977134414982391136104207229780160358251137727468418056084426626080535262713648820522742341820706897516435220360032665769000556409363368310763323761342708213921882431801402448055726763419663772976043262603108676584136838833572133324563618384256053401867702397262875945380950124888446135310353995571447055793388176897682925019978527161875526554629595505336389627281573539745354335729471862503969644595536980352870339601308287784485466770328606466579645016458349110725511311988082570818061810480497181487298473670604946134794040291815027461456195027754772070932241333483907863778049293856309906517904094515387142190120958785541392479121680516813978408032988089468938541589921242766220211710296781783566286591988540959015635975687740357727396361432502000900529397551781390013480671624848210469966323505329084533023483154832234715383491390823757983811396797825290465896665374092685745372553390376153398247717824014952536662134852385802615058864628889808753905627097889482148129092312387758360294990492700526062586729826252427310134480241956300976833855167581473123108777287391503850266264476280637465906117563899908744703133400765972072938363231074908031587675852427641141013628847591582539188753513051925657864294961063094094676954089662251094938451337286089647035913847601020553931758811460100067985766416404404915480754455288050005940201301390189816403486837148608585202443779493564111423635990686893066890847701026694251310092693603772183709849322299723335411331447281176083170581475587928240409490249718285333286619160998787578224546742874987515469415780189180702954868538006235685141119403369556504877394410377807378132043896018098009190921183129354528332229855385658902179131968889273995532233358853053337934525093273364428256587423008430797687713040342392633701325735057763248783204341095964571534199512533391884384238551865056895717465353520328380365800203285834060131047681925245398617357175687643743388757681570252074681013873406086059809404721132697526643511098893141357062568084385625674782934101808027223529778508124783745365019557987292827711565263317776619857147842209735281825877646603781845119957968867843169470312621834343797124382897053616494245680282435182844984682189362876618591385845009542129801926395890587143594848971448351207431255980333987555861579690176843946265748999161019306285208324702597744260489321830958908114748024865381228449234583644658253776782497666904295681953229619519603345616916289842500592314701516176975850311297669474471129690406266147512120226744281615965355851910850845305680914363386078137294288715654334553408995876699571324261767054083808287143316240432938117964539231763014998146804933850520327270518903625223554446223735823511345620076135151384960376039463653189014315683209375226102725219619878488759718079058806193531829074535006165772174800802468540244981165455690020828641075850365798108082379687871320532113934815831881292265580164658805087568389726893144004793518984941296975746338918089673059725583196687436639902675407582999633891867633873056068051059939497587014838440221651243332970630772949772124452084483740403066683771806525562434301843843994312071047928656230155627875494513634104189538082079867465823350125584046688494826134234290895583797815498618538767078561167827645202344870081307453743911153895182930109840732742000123115942300200994480706550315262927828709106387433955052075399391754968982838852478264012075051685638336146300021620217114201671580096489229778696388261116595449926555337680581639093545069145079165513640050734350195990064770043558185261028710519542872292959667579793663611589138270403395808265522997514485477850928145033458174145980950238499638745312645898406222148883281398024282945479303771007014885702329670744634165163115621676486199860178746303808987652846128752706737250295206789341922647610653442363397938693199961959615921465156564693947750144525396275986751008087400109535767265814141438054696580983874371160015603617380152098706908883783742311244762478399883413969529380296713139755180312480607514131582671765524848511565440661789032262808310809401853907551113675673879610710607984152419074921716301019019874293981595325830353891344954875730165709830605744662590073608279011466103930776726909444688688652343011848953857566542190366231530968814873883558965485172487653381469164109552372420854673116581934810900430466215589762762458501974506670090924054075766599264284971407312821545390521320622171898499873433548007408623300234850694958732777545727154378201025591607896694392113068672764055523232503080109040647441991396823228015662384656876455061571105157218326917442683482324795497914994489529323198589861268341827035502095938813650681953334252972163330431579418363589799996709480837987758388806332211232481781067982104761419173227841073990381015564306475571215848158480583419893652404889188952455245458730671092434247572829694777506559286913139981000434178422381831092313157076741695127613203170248137466091090710319545918655454835368385369653784467566780095726377426007722631583332273027745573789525460485389910768739775100906145706763168435629574648842344291581162120385901103896301009266634976624991235308999933076828729384290870015875782114297720551472631909483235268552855794672663910814199812895731183905648714919147666497726969717347627413198688545281357425189909615641853957721044736083829505941954979127564180815500483781628760546392258246375789286712116741920278151115221307340720216768037126737913368259539154587867534088317213706750803138621099944581799084538231681840968753264133184369199830811748803589410044258636787120822927612379595421536431708741812890534511530383703188528787210156374538825554305060824907545952080287624320112670626235449611652301070643081159932829165671030789522199860363167972404566228792833157634225026569610452893597333506101174275245979957290871624849793821036707566163744380699827706080471380841950945931445071443444508606519213132779205883584246326798452276362941857246738990543231375255418460277051465602814104745531431447790941231579768302859678352334985588119558285378144866663764523640718564205569379642357389231268787742237258238611386113674522995881989361791531401139437789848275401688418605416584871820706134404797747279793881992276524833660990668665734721816589108948214799074132506138550912093123035755239888697870455883218106734463677689565682218868712969177930673985581342006366952459209282267837025237664486563369883569292255249472634182256214646841135165337040137944490157672636132084408802982156205518651838046729857022583856207790260179874448723123275031565763803690173042983776153801129569061264624731204091908101976459671990335623835802424030987825331076730849605851116586112655824027835509595755518813421911819161560970959772363995101553918766025543566443573105852574343295781059219585561562586582694980872330975991108379052825423940760899034585271359091137564893732414901311829522297551153265557930462703082227803277635781969093153274626440272037490492569079564952793226201505468253259491020841133643720161116294831514410219553326979268296742355154042472456788557100659183992081314879783847151712853822767691204684038590753680551032616608175525021453486642727490183507731922688256671868115094209184627067479662193587200249825560393200742173099080065694861770802766989618190813325936769325464072840898370322076244099348083654087819535399359714004614556054173093354563713668239938914889775245662088109727326276829207643978644092047148533334030149640964006785308787011219018736617718328175577771675237525227501827331988571269266387136203209425831793575832228773818342802640182832794009835827915184367795540010910820240803297327499650262900101389680958130129060343103523932369126351577631592301128695271748216419160322914452560025592173969157212935613991059268744985464814061455879601073044695593647655208626721441314026522915467671043508384660851085912868095357656268461498460613477988529836299708834996989100242670946133509586509070715673636675356877772556509603462118831811050909780327232207214786758275713441010237202553213428863362788752930363561291775997900263629924159763994166629699140020007155451005965317737784223259363790884531700843427454346470756678633211181555946036536767093825394152942375334400515927819872272548158233329120700651219640339013064967679171040479686874410096013412934022954467999171506814934396042189105126310491027875362049469995171716780677153200831355089678861847230042752161544565943260133164581774853581379890430884035296528400936608064897116345166719845834815637430405342696549164906240373859679978717801851355929351438465362636653449138278701943937795870993681865892831118167842476679384977789752994646844646469200961275411273472573032518426432961160387813815783245696629382283479477363657288373972479338731342286218020176606946620254439018736981514071716561504743967431087463375288283597458865514843876871062295349505850490572018941178371065133547392714012698608028803183849372996047782528593562213413891279856551844934628783646587892546048142110447765577895561602943327133370698312290460997413559613630456522778218259412580034673812033075097393528017948039626189106367678573840353641555251270569599614615887683370007575265482226276601598049337392670601786054664797686252879466792326734124937326532445336699042583704075404882069456152401487883608399950442025542619565307979965163845086565461767461824055910866384187669157387765101847239665442041137797363189314055400165217957045059424162745853559054257546226695894253232876920271399519715329008776728576323216885630249239377868789527782053206639898771336122403982570428883968059718424764066166021881669554736765981708498196421200273015745161616300021182201231950004204614584287054855620996493033481943357843541781737962862296189749285235740418509134262395999685672491909917828852677203893062152436970500886869798498969057907118836464189433564626752163723268020435959150791740718542772485265466000070166252609623022547925973478002134461396455636015293580625711932991191948178588974008959764115813665683191232265379629085778749468557160217871665309669066394702295474825587899291300754900046120360325629954129726374681537178686735513494996967705204249642414733811441458313562489415365872941189363516093373744398636779704109013226481382068391354150360832682490066460054289509605751208865923850415664836231805386566585572391063343278678123340720627192926975805952258099697422368668456572140556235923217785401867245799886517119992441249961185841948909009012888743408446963255870853526466531289071835426988917238460948893124119441546665129038714054526351894858697602236205443648860744890741463490735426924354806957710690941754358469321786561520187875260349272815214358505912093850808147039153186762862826575250302770808215846450251063370420260404867677509881534409848826498483392028706755746109786895409846339700144336983508804583162019458975382248530147381648543705552350373994545588205164685975287775584328589888078674188155573625936126789404454498266352944231877394279711120042971766839743724060714578089479326592093992159695661393934648724961809313803096931336907520969575425374045178557673278358328664902617260822590100050664129860075836639527354906775716798805142274524833668454087656068884564368111121930296284851658182345537532225133829502152940170660148649898882017352450247584361207515647380739146597827893325521155548569552147847191426660851961624547239124398245349649977987630055195859607529533104944944817928821740637065193517255850818905857553953511447633800903206351860672129182348674175083161432359662616807987717413101114642592376816031908827966776287775802833689069950377213245530850201310228876361686009418333922338561495670856253510115130768622798070981597641854153338913022085245849051107635672932040948304364963292354914644279245294394664032575114575084108090660947826662526718851983005828221203860078430339977634816402746091631454701349099142739759738635905629549578270093474512786269190215815484938067821315140168669576923037871979292739431531764964765407316427217394344619826613710191183032953495175629877865010357814453657170025934094244894676555419626122818832433052259825828147738927999251878383632374329863023631049650217529573872740056904788207820434608352890464729879541354958256709591354359914105130603064846581585354825015793870426569696826482020733004617389532810789941286070124970319286436075812808384754224057168202204319409843220304426299640634389795178439098226347066700673224758989605422817566022765687257070222737277609503399881457937774141932466514524967632299067038246307180966464509322071017295525782775701029473094926310385230422048034875601746349457008135260199224950050490422325987928703979781491182246943818335112651139730899236537767869652260378030972948138554924677668910706149411792151775109828413888501544976805145080769156776154886177744647582559213694438337452007179923820616526555694115052028558954529551810476385692317660461609366740372406037621327594081360907374633007391755341486570164724935453676541983941326812885513531972090624974772364054564946907041105252984563152061099456288617373106991664139125315113457239322577456220674530597085078065618678318730396652620240882327618134749711654217263084806439252766260156514223004218396137357981182232734203609192886733375748867127241559842846520981064804868906675797556723311113466775865231433871529285719271335393895066300964472661751637424753826675672174781728874109349470291266787835406880694103981550851846183417218969661721029373942882710563743184153649284202461088250797352635622494561625853597619216021046881645272548587913948303799953941728545230924637879338182574545157860807332595882981448689131433331934445033110664385219113418764809329827243560074302312968702047586398325714670103328371725227915242768154471167358571150444980819195441796957040091628223997656003600568854705811416823089119718135665699742017476434586918754496223495059598258163553097967678376022858187336903309844506584793518632402362245467309869060900799853480287583563232374158018236190813530959153492937813812680048252124637464840487705623516471442476443888006690149291690029039496423337272775481508729066048584608521563652014916674293999889452770212243811859758020443399752942647704897306794827225793764961425325004586216378950325975951775683872342068047657329260443555575946908938479106452818096884469291222990112475232250074112441768942191921499189605505190443668842081652532719707806840124673024211195619412365122002306274279299116974454264398914130388531281338872978710206751210090451872293911515839152117839397483938173418662264649119985817795001445877307399227677668764840232957413103925000889883245199341929323541005836368965677260815610060552534594718863358794859890949769059012472360367090820005737922173368746669651237512228486325582632926060236004550551092826678074354722244460048516333390174648020394862722933877356539182100897814678771663106448758476667304126438145513545865284751771176986285501724664117682919990930260520848542385841298789460963491226887408696748866145971197420303801648028585075882493047498217571468563456604043039375804534898735077407477679043487993458754292546341363344623394135639188228060688740042519483338566086160597932824940169048167341772502759377486365545790109513562602760251931889621605373509329658263085697303732157916667935650820971280063448620879314695163706960785023866791270543982921971891417772116801475304564466820859871134064915828678824914528476890249130648269524746992972515903570067093865329787564905254338653147125193231786097814767352478359346742246354762602535645122692489336142799188967843801235111307914212260540657141689101630969147745670296133354915744028774985010595984435332878326113467155759682611343540916849770990449011052435642629610799223211376793964538576046980578878213307582593392645346899951151490151963929742374478368916337065968122297522340859021221674584665667442061445485141135838843755179970131057148211184254394323256475232942895900127750708695465401803560106843261405413946403551407045677967055864426386748355538138846349742665391918610471375862203542705258879372506266695259599527561948654347269477218846212733315141939347576772607717716460543816875193732005547631387666909340539765231558507999686815595559843943224325035542692629191459635212216919008984591722471931736031830799531197688128124115357857081446699073907092730944763577554031537960924805371614251673656950032427503846376767568474974203370320116755968639955541007161700589569657778989168501275321980716243617354248977082469690698055194815860292844269394114404219043959892412380800443796505140823272710412815826975979307217355564255883784872548853477764615368429877429350460288469060526621320777431889262876144952321942967604292022873846461645739538741213540432511539455209049359591314895757501270847727743516596019107414822340467804777623675613488231254971226544151760767094209633700516805622355346416091035756090071634158875880331360684630888006564373072083542902091924507951705757053096356021178344219514871552111445298921289093891315098220422119629070372831094371713838851785230297743233450287399662030068685779724995006332325169589671063044466726383119574562735693549021782823280582452598392301740344702427774118752662575504743526559092395306095208676378802847748307725983705374963769607415207842254916010749788015130337015680747776193078354046888464456127969339181566942843515264787710332536542307537447790832703583970247654621371264157250054265580218497173415089890189265255873178529219022381166290142739445823152324288394948546705129099335821497580113211897642129378386526365648967491001747353692316712840397464017856275402501013241566843620634670287049544501327957148364969321912525659077251375222951674924237591315723830492954416288856659895396621780488111105777607396151036983594117969363229470991742053504455940914139790669500469526115110491069781295400796047477338738569551810391341974403709217138118017840922120425742597190224920862981220019739060249069558916019319271856991198360056923061553459914304679734196390527630209989096899450982245936469825893339250015067255707515272538013251498643579900923568940096851594184529805562978139534509168099820159823689200794089056682370172383461596397966903953149584681650357949306516669497142372067934420748493917825312840886557588163242454185051545029812233277081394466347581012061347424708948588955692142577742336416312090295083011470364690470074477309002778202494517370801635757209085527272872927464513816143564960938196303184614884951689138014911383261565169841772439981036417536657040583081133629213009145583429691202672176904024139007388981669867790642782966620933106869047106239281438325696694706356973386030153859631786572518594652492515966213531990800252242866382168833089970504715032768020245111674422382928702356033716967443142790559837520815594923982867045910540056769220040993940678828127165378862272279294461521194755479744335139691773123569971289126736985146476799225892223909677703184553076249078443495104525649333294364213810883286999450999293925628867803837219344849765429312365524475618743095928177202355344245892445801743650029854582621176224335563344245418866552621273237454348201832811212849467934162228699703942971940452387121016437765960402419710117397334464884046758873017634593553856366459406009630175290834989766961872291478970583942014920099749389760706971832811838076051795447448277415311749309848103503130655401681688849351432273957611944218679363786516410531920931081236357159599690236633439878559687158116735448075092671377472070071244105351180381567883440614687441730309798593578400224942123125310854453130270991314363490750114895439906254276649161028748934708250251883978231586844567343988257419671881763131467080432837826039386465136008029470798571767370130822569024356748655597267735707301001997104535935698960036617874800177150848881090748722040234269241434438482673150380541077469299103738430253358877958193113121053145348287349367058962300473749205121934549941661339379628197932605976780316942850022077529904889158554619759523500339333026156030886392879934110470705306715534049816918860439276175634710979351407057936342223700535532788693964909525952414354193977497097687249852091428504288986933981038514999623202099210561086757203917839057845786786719930934112394211530779313926624539720086150188652303968687764216581541606467190671922715918780513058988929723430774130428631756739674505177364629614819014236730907914232269419249619748338697588446798421738545116902378538013188269007153890484244319316337236842573509727682163849245360462966684321416103640208032794568964883370085357312820489904293377572554361616311518456406981316200069477441892294294671108614021614683076564509801445232773382803438687490982087131849185899969522683628195393279369043744726278988676806901986384879649070209301631241637115127578559110290034041833749627362502379091158950696468018360500222587423860914132938112363702337417194807717312853559677720872399652086494077097843924125793282448665136042335455354041775807574098194637958713064234379069128070946535247578820907736871438840165885386896794407751380758337633255251339707634304936198175356527944831087570044033301783908722334158804389431616257790192370346640101273003888629397044209943842944002599644168702292489083139072157526509862242085342981112011682022953154718233365887360093548716737012949811569522849406164174768650773971826129932102665438516385789361645118014091299024285507475976665064790141473034018072556301868367996631200989907081129453054652942512770183001170956207362235721506591179333260432938837308628996304720601941296600654966329015997679053806415897057154931842739364613372115461978801118135807322835852733289322276649181531709088222804586301049241615336445633348685131419960194081111421404832874711219990930707421875830898963321515636856670715026559670531498460892282217853091136763496206182172914942540800649170688050820062769108020109481164885151503042941690434944963746938543555594217308014535653183198745163491964092730496978586651366420030725247401437745109467148420822142672431093026534402104878382392453860972683573532076930929506765063015066939476414977936058207471673299531832454211902320880935095710930150526455133169180575630256200716812213697824492715517100190335448854432225402345732410158605028766633643972001267001753546391946993075737523922833549130354935231744529756808021157501627688944013151543193263916119019207236553865627277568194719651450550907645985904234019808689361595102948456999857254182310100122067400523553632190284239381720568979148935955627958761468611594332342049841510448947404982839540622152265322596067964178183545063458773860330871281705355926435339078517828701538825489087163537636305295556666949057091722239226745591888343950108523454048943004952611747766131878521679536594648929155236961400464567205381871832271718185006549578302969974944099681663293449292432743701369811857177088307691714390410779902574989574323905664737090068376489973496132119648396105119157497701741869891372205574654596077963414518626065340706784447474776790668183819670528888533681238245025069002489928681330327653971416167696391198748698040297450494518295284500659828545363776193626041728037799303343333308040289367843444873578198325887565873475463838584671273242689091426749525443042796291207705569100706906432143646954845262303011500450646350648812633448836625886737716557124776287460482427636722395395993477906300118106768298262166238627344474798144206654393631419470880484030070445808328564294821913078804436010263814636819831876346215829927108265098842356010406505263331042717748940734522583717467861006171596156812287399760481999997115514385020847559202217591521367763952656349114344088380224699692080374686427813056176184642088860021026058614788740408440403400724784499975223897378258487337975387667494503401015664716567617790213173284405947533051127601643524399155970767306015343135488632298938194778096926566561093672436857148419759411959827253453834669780286940059093741906642761877783684869476301078829286047993829579083827391731769261628831568387927432672784637686587225209519102274560250935342795276402331466680206193515610385402818207977693461649551780410683069629584105073576555305952340332283569967066841632217489790868829798405018286004297714804320293173136446659205067036785542345868086778690772733132484903580365449275078813929572805277748169122131764890593953963877337957054183733658069911561673478898158539368252923099833199785333930965527076990445537959157973382825899782033816453731961333639210967046319525658544800464445094607661190643292530680209544002777952449521645803823808178375021086678386560518372514459105008609333218809430377190125706315030578810444678275489258717722437001596122734871193674028333135665971247256616301708272269462938604884259199777081518687773802965415531881315516227677782613117831507882617126775678412434382775261044000767373475239176618065876479507440449173522039857297038117836520613380117541220692261646503463110077128234178810357904806155936393654367626712518670144925060194243577902462499110999322105595120616629141126167700868646541726411785284013727313921803489578924367706793347297624580169573855610180275454499752387485316106047320397349659339385806756006756579167357130826740443685616241201280174650695363436353148711996554855714605851730964683433947516508993395737596963492904055831219995692270565012991604720454442266188239990387593035260589525926426121204173452552415569443909847724193223571297684107501961787264348404458990941656888035236444086735050830166126143508074417987281773306845732494335216172009501505421868987034488073373206590818881713428268714795037038956292800647329183461240665569467472700444590262776015186114071894171929113722632481248165615393510358616960152141315334895293537205859688712595352214659495902130022800687710740146826624844525758658620968812978301449987357882507478893817267011749997486067268552444324619149621745282456931663087326610670720324931882382234225742995797794193335852949804022847776909468108583168749519173438138412900405586095461762224948469350666524701214621175006864807803541620797370001557213282128722682310130004999603232521269765648606947602679246318715825632226911557797831844449601403613828259358369286423136238946477331018416798179134907556671812175110215820348653357573009723874009593316407191556335408461910040268891926418552033141149361067759822230367205451162876592387339334404383987746996099685860947729366786900938732812415881744716276785651764117638630559319742297443333797143583128198977030171827037919285970183463885122185291115474147534827633733437728901164936802487619473753621892633157383486088496507007418111360981754622397587225190117666430952959990091947501865140780389594453529881365213584666086832929236005693771835354360248666536795419064637739324895461084064267175337064247669044058125905288557194656871972243348431616771987843548169561099851534189175635113565211382803886947259796905978802611095714963227229647167288914072877531746391803214052986782091696836479453702467318559933136235828070685593626957641219789623317807213036756540755691384031854025779879722769291105679225298375825688491234967317456917815065813854371134764530520565092015600280401668371299892328373287880983772699151300311168347086928645185096181661477883230036306894094582966904472189186180762447298500631236691374048286246904248075905940607796853035425253934278769735710808985272527744218214926061513732920859576312765847537842496680072896873445845584013577482855304043660016157474487620572439895562915649421098295560696461858575275133416819371095209073147991926319705769996639214203897784010617851250306677843715724117564581086397056062093562175736275557693094050350560205076957848942907233157439060254711645211508240934157440910023223376555384627027410334243192359584779136689650153633678156107578316641327111902892625865800214998255746582192097892787538315519419123411626595261712779158921962884228308745593845718268242532287469621950086151398241693438068662127402243431197069062411947950584021802068886686465392683318792517271897341582602546496092582129404032274109037029512475590327385532030860560540551623868938097076053374316378847610126078174911618373860758711811012679228030237942152085789974972426483415275230932883928606063960992802237613951337821458729600647844015906455199494420533837880653972527508422995915789022972155998405546343507811183384525128765815349952165453680481674467802864950768840560197608119556452084916655959158342708811189038594254930115621103349937429304097913249458293952308851625756586967838162868668030519796335310070717394489490837147158318807658462149098907111326733803116087674583235792032249842354615191840142630919584969593341496814961066167871460000233497554445526061663523022525706331205373831293864400739180887466855212976576894109775452923222062980873328944522676554461605885266045695030894577487459581977084365793264553864400481735336647362635064337061842889059924120688745112709296146262478155240162035750777010358120508041871069128280597655385108072097209287292868028312971081583227940416585480392276898281737399527589270319717754854340346553740614658100639687845277310063233930185460233074020772597013584505141877081144346763029819922650945171166967549482176339539908911670737035487513188683159836065718682692527531379752253282915127404810780595483980563812279431665398912623517367261675416464119668925351036698238428199615648284805612217024807068609068684275891152714365398167778776205131712059514715246264577812446126658112714962354821615951574331123537240355002996381755269033011582252856997014951878780754337702399674187862057171991688844483695432025861891142935596198933404157472057883732590358024491923497824745326277827555535593555041391658557873727032031035093530011792951179278013228058946607145428587394554594811734672503874918668916519777201105656100770486778552816818408950384860248960723256025223031531931936506613448384444687849167007642366189612815441763596532672269081669033685939255792808364721443664846816191944214748587915401769809593126678923213529481362197173549677675697768556698597357958423179032623845136871181573789272243581254315629323746193951735488013666823571627794153862683813454196983728277926633596925816407278024754570841347469407877484639265708294969508077158098825361880067624333168571267267988755895449839724674207106730120896142759984229759284265079661226841525923825489219640136547621529177344559627113371308597393638102590000019812096156528054004915421629247512657490765738143944024601844769568923842503784078556361587764014685124733462709580848764001273189430347161770025436678457026469608435448399073691177596819887792060773607839123572137243949212407966031639926783444117901556207284356998052485267484229800236236540922375538682930336157987657392014495166352858488557894872396886607941819832920954430717229094638405935942536991459052179344464435120950415977970510028725453479235632908320231836428590486053746660261763180663264080871850280662296912648831532266333880938562570049413733751177493086807276822884742826601805386417056755606320383143311987073371538271751973134299006970856787735130059193755522465932620815285898438382609266500046392339993389578106959299397599776567700138336070545395211256627819615208343031261079136338250048867799787142188368922572118120307159253762592766577835529312870303382173724610378590967473043008193185820986507918818897796445953882712045796811537204415414827463579743656085527613667794359983655539936514565443841698455949191037579904190482549062139116305097671397638609013239433757191378444745620077024682414578390264976808161043360554411340778452927184318825134052662690944975360329736460652330593689130569481554093548844673969617200523503895149220019241865558297891905586303176134952047009754860133884837728062218339108212991009511314094806313030112281403838640245083361554876824807793215793280049348298208574678795745233406544717329820420525869211538541122277746177385423197509624798606104727048289992223877847608394598575074076186482066419812068343820986513612316551954392269052475947570589970380267243232337763643980226246413193648129984877963255441863324089725791925695624221752539875492370512221090486482437157265041971998434550979600649289922053638295774971525103254207815838746676276963877539687228727713063025285348931829627102791476642661280002613294980316691701756479307546676819668299744153910243671192710324194131742222992163895983856664286300142664740797339312376789371002862838161996634359241124192548674194325179761485842549455051771227823905878307802752916211259310753536206772581120652355091592074561167463479728477719845381273344225506564199465009064008726305757810506022915439209667811764482334136319056764725861384227449274390163337244875374708895506865545030419061190070671665191217080545277184732521270560867813480827259755671667961833271386049158239356144928378655070140665441487200712759444586915578121569783389114481955695716125954928213893315030689039918782799358850842121225914338326577365058006867572323356835268333496819754327568375095006696791330944920514013769040410459208272774458629552446113099035896013353274808723419673304859922921533987131488922488800651233736361473669508889046122294357199928392188413235084743307937204136326427109461495478134845769581878900666020430449922181340905519378061355467501467098713414223683557949654744139888920666994325727818726975090506843027470690648056312553636664455303953640320919023865414275519761730178402371953738689100741729495075541824248659709371841600312752486828817622304259919557012642393960993743458251004396865722765778799962469876156631219075144526572724382887596342871234261553943290624378003511149948752649354054027906187489211861159567197805583957785445498621060654239477295237755782384235181490217783197503948928081577314788114255722644726510690710108327540992227720118530902074966886668504195286564010254253714723274762572280369485929445357720232337570459517546884240987003982620598783949831298478676067424102369920684466925691839213171528611884620295176364051942383717442680977568560382753100943466262694949050164439115862328597853702392607081718234456821208589067622647815863414180429263008157897460894427608311160786230607676946804467072388713075404198717443748400989411099066511681806000384969519707554848567500507596249449856683605722097394425101484940879553460608622362821032202628395995157947245882583547367002238033122426184555428553027723061701310786904010498405589863245173856057787112858955746373442549649691277735920146316616643623594863109191484538091438871312797376270802645506451862281586414244992869953826052813384020444292376627800009360928836240093163408582822153942260097079169107714840811073690076531482668041642468768716665536100854245267348497727825240372588579496028385021323806582675829936541836786032498544920643261520344981762104682472132966053608980892474690874178919091215038065888711452663894655755429753476032039966556228575729731945465373801942112264983154849438902152333328014298091937153305121993670735375436584934216840608373862310555638208593149442680558568530560918422398669561249086115433393150418970711335938338757719106394789079524731554775978420030282504688788967473844682148866520464459326903709236226111578978129103296592046665599990906114786723187361483577556708570182501539265880456476620056239607670885694165043651274920983130248979333897823535732486885580364630422396924065938734992472871058563635424355802120873357605014963027002824208269515695892831713050822957051217481375267548455068506256664051292271346892699583576448613637019996135338428219281059721199754018984504438572637799319078628697736258769097673694457994448090273368930063029605978892190101411397818127971960058431821246958226211691389469599573488234389488853654959690564835804126313144087783377036965367497004189942144551223485885649616296889540556016033894335521356387069959907535039692060166194326202664237298959083708498999495956139234040791326998595638345990647043464627947790239212699572263829930893173274403473597062557267137137489793419773469005423555478644275113067080738410897205332155668527056316213083255386119832679609880380809763950174422842839343639798220996035717771718414817569335486601434168480537417439380638094289239131324993606318466894517390807379683099871748346586485495016876123022721370909983788309287790771979221435030440285465623995465622711414760587081765940328677560186621741883751298511336057789292471265603796300113254366124573458954658161151091135504045873751728014211304093084703257584723691013926576111040608997105847176504256518491950080438537670856429287659275798980111633846393192956995141310999987635364043310074389475303058509027792305089975893751762098797059172036346830018912740668448394958698300940775195774475001850128412654478153834326272576754809000755726954558734617236428469097796701638919444966352624827038109091905186901207443769887546614053963562044467695707669092585530736398880375021136009115607438948190975314592627097545794808606572798251941177128744835170295188184615666844522761394649392692016541153113779908369623099019237321796126021615404000847689302809665380202379085929760294504804588002255069771307004615487018225056832492770171572173209100709340147324380198136068156049772777096745284834570497542918581092935715634639157483764511613379669656085804587263844714596796273614450217019065521758962183924730287135987407209055164120848473625265279223459677638847914662852002833292617559187056003354584248771169695408648819589432080051757699327032590185604010889658600176671110284798000454864896098881860091155544033011865313240766734757344818854670173905655149032244827087138528196048893024192340037113154392868199383918853896733440843690795326820132600426206340346994225779656273519116323696938245731460449646227420075716928783524656040652050957655940831004312413244128806137370867539203252657833211108730158100100100507315319398673138927068338630698395904319171397572665069746145984650199060168768049860802508681177406890194255571574235730212547458928158138458010406668067238455051466202287229080928944834760006210465423471928504460076216079866062854814668955083433290844375673934742934961978599995653836187026706579593794778311419814140190945560747438023233869600479896596012697250184262909657080400691547608483764716108414570473098614633902898673455826389287068322784360243609907221486924085161479560473846922186562697457063774780239562667057665368160331893274074104247749851214849760413683946477583131843636099021920820196123106412913560514083546294646307790563394829154239805984359907977749803743995083877755218623209907404758405709993371199472707770231412694117069149453204328432245104450930026613620144086265058631600136275927305330903959331772798742171346324896955292970412215611946015206035707765468365362734741629731390702290319555862040800493549936834153416462876631513506652243775330903914626268425033678597288578730119764924533869161867990638697009675938387514322289829121064389200806768354471364023311043126092131798092546346978173479672388949896725370904536217080510942120283731331086480863452419752485837063227392155528778200480171870841491900323664426478775464848091729626392998027018908377463037842149105625632878341168542015130691375496862361523196252993394883221881403742211782070958996674076727854278397030652916514818050749207767047447994432500228311378172189827733008516467343139958101757145999900416939140560516715576598474835048070523751206501773184138170840677197307324289474999805186001339000068309680070878203195159244007772427661111868853874873224870929830446096962892891723478610855742504028344939115638088999770499753613500823471409647631986847048996581406003643766482610075021100115083071010750360372809902898095404157490839199623907896496310865994665074596632344886629073157564795681283175170011574341594640938164894154357779523693782639254124248395137468388596664102962212746153796643395293947504197753934518845300257699346681614725365784489993815793975586600470896293600522976556962940067547121678884469369671888974266392116872637970351574180602597537722516448996932244546742407526909466216438400844689401229957419020010421706485074850302899051200164194934950449440300747517205899007573492888699105412503865267727643260533497818615821570102269619536705927269259021882979081944741309995353596479113445790544836651178356161861227831018895837421295590008043656336282198503029798217917825333324205981933553611293782969221002808070446676363175382498653330253351918687973165368265788593947936189846768838767166808396950273095213847689701154450437932497450231148912767596699201478725587424964098941002960762990529283848390151601393842741533299354508214722906149860976532910189383641875569756182484173049141424479645271324157891535049442501990868508160122878326565341664040214117656090882153638254889288654287173972928928953750266132738254274221154389354400866218217143162035452462785978372981685631205454293151557405318107997511190616087898220016109715667162968530448174293187236447265514162261841504878138437259284135965284553540082187427809874878824533231206901738074811343727352513450363596011351135682915020134820849391609280942238188215240223963936610289103312321064657264126040012445686899103990851332430680065464553795286938889537624635680126873431110877623015144563711669932047783801483214133740619623058903294117893108842412649396459248431652134808645647761036980679455427744611637603536405796045759105790978249222898190334969039479079239824662211656034163318872554431581415159133645902535702843708866694627700678220968056937281088089212136289496659878027714551541174045497867456114678642186551692984732927338654843132436236970133998562461017066459730432120326391985543453047907913968506746970647903544815482034788093148676431938997959413419402378162289447476082804185985583611589913003814319961163634228388239792657900888400535615624691380847353715135173344406125585842771573964620506468673165637328108672300056554349997906522563820207870588226869238858395426343601631804617813896962074877430145225488915234399251151417988844898953335515871814472189665824770865525605476007716523683272649569419099510759530376091150729456516680306798743773943957750104131712853051959567808380093985637070317643537732218697627652831493969945331594565658340352512909742929256169004582993099002382027313632452269602216479621483522681280931160221930226006483423171583472095831117814326543484813870303475897212314819449472954348594463147176941976233123449593384264360422660463696088419668574382254824088882095581704840391350005515650908580620085888842324090575619275225174761986986578315694339569097349683477099979454067874627045287003926876474749872826065798262095656572092481997205236320365964535618022008755593141965747084362418689960175291048515583622329938766356336717452807664240581836270369360916795242519381868956227229189658025090151033367558598720645215371478852274658101851647036954687492465834141802741806333484399127679526993095660966887565881360595751421813898127722872960246373206794323130177455460624894026032332272089601826476767990840718046778405002487600875724765607489019782368474593697049077746287171911880780506545101628006970025454679207674332668847880295840568567451830767324910058344474912393532681257827661426857033576928889880895151622454221527498296522223085280665115505561618769346191898999524641487566708587940648140486019064718537061848007545464680596383206258898310691363782441216953587751232011947736540393797019859706078817790028760973899558152326716545436739431485232444314030311955538122595583872918900901699275812819533093792068169972749914321574170773992149451492953767724771280996449704152149101728629734353181195441252475489324267952480429121030957840223352483734398260803522305779668353847213570710051465064331090011562967417028655645392366609425967176010748624551575849848016374693529485447357935476146644612080775290043696251191494303963109755679509025904520836381763960865972204259080528147620572877465750754649443722707938839482784188503717727435845429138125503386430969177934743007216653559005995360429107024373809331151505569620057010420759055554064892712512347558000664970572287313996879005857560426765310549471263871248138290989149999493852862259245850038876314708664042080239835881393776273853130437634427265164067226936460913609941817078164472133975264666036210609208910709656604396117765235772258479730115400450915018637426767194652331249097965160095518829400741704189479967610630607049759627685466164255105216221859046781129498715338490391655640515739471394740916329079368853405559366102112604848195029846450016308706473000638483000108135173049771060228165393206532666343696832392682514350079705163954366753427178368404233790387922328950782891508645947697096791691013353171298281642482325797561165038780284280896267375821229790063812106115032746174425022238352701230527317068287834107617491821202458268307057392146070634513464150920847517533243143380823662079505035272809917244244629564774842439550275212055037298761343911753072718015273826319974530220056792534733751359504880524342127800582225076578983314728978903788898252068101722261356213910262482137426250003746505270398056877629750438344518007339352441391634883039600058349035061491564681761373014386837559524089257249031558252241590908328064858620418138281374966103134802383430398788791954027755990145593208148105950544625541855587639725902781804656022255054736880930118297559282635140156665763613245150423919951036768642115158358730557261765808051198322642281781683542822152903590737788578786452903176231706111606883693248273030671232714127838309584679769717655805250607449578898172973079956994069263605838114134066923014298875885022418291707003267118524438270706442969276537115455959461303888192228029990847760399761395374957082847411768556682865077662093054353764859345362279753336055840890216666105587623913353107784803486136406285685328350877074314784997057709853039309114484372532035939584474385745870514163652284237978398741679093891852445214374757232303214231676242544627157149040990956206230437908824928296871226253569843802121761413622911408476570905151132822216636981662308222827290584053277562440752736979372059407763510044973114802386162866022941522128705237418498096006911176595510144190124840536299773315965308633382658942035467421062564195354545745556401698680429128695007401738438196404510231913436182191571397228496930091724309951511319450009902682072675904502402073206320505952134288136206208446891442970015341609148504754712400274551611588626022118719542313389348013321752326415676274212622879293987774019583186181394467855027729626147406201608569590512695380917521626513855988017698386551980822203432434698365598765357476674662317005881084031415648392688485863960954377579250768173760936082888006412701132595342390934011073467565126907116881978145544737138449590272072057466678256574848463353898854269857079010050721090765566965529492290162403896504685461714448244513070118174572824033713956831564428810229289151052564313056229705124799052279415498148374085255192094217384923971740441356337135380542620475168077855932384698109926836722006049515965669501931763131703560404062075857834126191130970400535727423275947865890529310263308281598392168743716222292821071004746764440318036289022048466363552155172688779926498615993284119377970555937496555159763355987135692903549475000273227361059124709634326398401270627305465649169465865108642259926221524686520400357694094969198597668214516278603093042066934211963611829010207386163974634209485083263908898865053161931254728495238819949205256197391409304483677705277359522700650221186848547549821682211200294301340825378812282137723780545406391788866542264037681322011050453811662851781695330837645940809623278771986396473106446439252209812381151786607904604937538124176154212021475363714240426589306148629702867668704167070702342724240268476613223554927952358933987636717218241942578839879028674056752496185033355027990755949792661327190543640040042699417588969390336754321193102257909941377756390489579244472469465646022670591422168815621674586369377713631278561325497916312198490279159285392185203745671151648982955345277228394953400780160813742248132719283534047166011895681607142463190742833604945433378408671199598200717257229256160456037139272348679785650782944435445511809349038964715310185703726620196962056829017702410372587965324782858814033742765704403255343341923410572939996298121945525008963017487169401838762413563400230138653010897246508734743214050359832048654869398210121269014307523827209826929864443077199794672606039809483536840751021902239930111001464648943300399100269839317771600625768808534016978148239316696567428105369173616466488509391571669250127868904172727581097642321929557024813773417130971608529204397106920129364227741956739133954682676326409107182491049496280449074543546201018139743325497062701427888430899822035262838105202897505330344178100335986940162050137144197838636557296194731467669270484548550004146400538393008968432614954370350036159022791018985878472384585225261596008912268831593982743112954315922656222111899612792354643698093109540150025720384763311972036849900216984443560600413229268050272739587236998700279907816634046747759383066350302912559190397370265811359102737466438157832417141093634298346194705433113913106960846985197079223672817645618436978536538013494058052345269941220169848788801300951321557800046177131709326123850665021268584208997702066860554036428524531369083847016137157507807533095443567342013232300141466111735392888061014524182890758379598215149229219995708267075665655887599322316867753320965408483167013587756306856138030409318939691864608382351573418395584227336296849046523972620222357003662993425326733145059489075326665430275221361812072542298266287687796134887201369116047676161431432426530340503050353485574258013450233278529344705153726194674960118373199065147935196846997273370750482034939963843083885849608330897758626340180406698222091697578192836222895186158189670195466898015216155167690760200395769328656338260338912166483217793033853701694520997688713209062209687609488329462331988432248904868190095131036837924092563025171115154992574091041317840750381600133165729549917976492252432478054724765276242936919466560774816956858343316738186335117739355908992832416652711080359448434262068250320619382880109278361755502648865033985305484360790554184948845748677650891083455992859947683123634043762533403015796518285013690121166663064445897408409762863544141620535326272650499158240218673516972310326853126040333402809107270887681424109147322385331489916300966789936237689742937262526330556257847588398511695563290434553516752667408373479268652722980225677455909449813321532984037016586832971166937415839739167264385178233172779131954091747913229583251105545974830307070852792968536439847268040797571428840014591799102102495626650733431014586788750075632621153731915464815687369746577187073703992378392303242296027334113316947555573826960687115456844359464222035020191622914129092029378081666140919024898384824504409489790280397219294621607327810467126065198357293805088090585333325267168545446133477624327228508097659122984403832110207528270494893357633626425607959835995706033378686459007736844237823352691244876473802247743682950349935745925779669458045780548797228537315297922443851773826118974608651552465969076311429493823532012306782268520837803734394489790525551549781574219725057532994149808985858786611194994902322162431223746149426955577112293213540847685774071497488606427149313153014049003113826456838134421318142045343576113871443817614714014986207257777656597199767989256010313103660124554795253814509517599805011457516911090112898895989073295431116865466096971810210436181942144993987419144440112710325304130868884804728461326098873280330696659245315028237713067632094331228885657194469634169552798730583823054433505300804048104298023522114806223123288875839948689627915440264202084456667236020864877824023669739470620625939713150189708065515869588690327442216935071303043980160173995367813205331002171674245447043437092240869700902268226259282594258843501820797904841313029044373355882342648852881305863537224938269348764000229716956325636595602781817075126534058065091289555217340781252624591242915853918767171685897171081410582040505809974710794632647833458674148446322942375178665099310564117032230813902033339764658432441081830625865045513930279935980273571118117235004683291457118863257359967847222447686831254531118150093810770244414003364281011349947490708194397801582135754831724043164811532497896431697423653018875103674734691891400894945989008572011141092600932124230052335984280981631552347687384986425969078621761139417330088493965082716429271407733605558881038826846864120517697349709170158285077810588593565378897358713492023343171521607309292583127593480914554143331657741331214291105029515544974930461020106440184303731651960418087693662660209610173073146331239054878700077717086487878107375976807770046245720661223935153624489669338901405298084992371492715247729088505973375782831798821429883645341825849905426385499782398135809170758317673678023097139735964611633116299516340079453880862755043549999532331652666840742554432558192283190343208249808358940613050712154044072424635218806184243270550446414758303075963369993312519638007106889807521016060285188310659614434926577423001805304547758242023540530494213497143010367050216621599450664322885059986069149690998063459587589553543491951601177401623407649888972957277582337516362337237591480716490893708419431758840441039808010548396270097314041896678321185121114846607170640253325726722206990007708025562558348327583238796183241024608208383690598025902684426589478895825042567390868551405397592003926120196620934354793593684783126754921196732568060106709805971776200467213330732844195335181553601731192157094289090219075819557544118465683944109419304183209560470017245091280839407406000545601611371996258638138487420600516459746397456151120764539756241687647887465088534499983239188181976689834188995423466706032397547514233000995205829653672157998791293071077120281056642282778436042120355041977521677969455797712354551211644269118249975981442999477260289353389181613168040438469212915099101249336183626934933656903319191338955109098995910297792627100804306286710159439357551081796227091539540466567594674244239023426770798995922675604623635417527174239675532702884021578663862907278348069187739374373403354873666357769346381923280890461263007499533443729961259181547135933143323806849426540698951390837956366006510824260757477069577148109212067119567859973069101904538366742296398899184673416548416245773470277555940592658561775161309541852621982968642161592114995846730125741476571363448413179094128307219726404246169475552101371584904711040612339478785164693549671158815620323001999627816188134957196785841567043823950771147769411497267859371659084534623262316273603890737539745101577210991399334289455875031363794853053080111178340346610316297422330483339234435462816679893924038140046254755163452415416623950768441467701599203075207352457619311358642888002492717648224606215805849869532419083150215920812046274902999376893873460588957606026499025045670431177861267756472329106540905963977969826319916108073778417270632267848512634483907288969138745752449692622766058173260528055902538303021143421018400886703860200618553220349352398362861776591253100321761302189582909188696289871732094224071023308460261413570562317286496731695113363534406240508872610946725079519152629401435311038497121958180090028441296119026876777306292111627635572738178579098505234566751811180380297977002100711955732442289817773018463331321843862876220422411685408590272802003772262613798998774444408104998779650839456962419351424688916297806121111455829912881494445998703482237827915642952921091675449268126341210299046595055607885145704129623537702648201999730495693957558530100556646507417096598146241400724773573888396068479797989362924673441634533432955410483059168411658053311422308158083881422925983160318698158503188788459040229319746246700766411892757405503310604292525042730397375620918696286466828154889399946110546736631703089631857161224615674413725218890523960423877921010594801588133220794764833603221154179241211176036637074241095902759835011438267661576328239921798703411395637582836141192292039534671278436077000275772676590976473246921204288124260628978218417023017879031585181351017179214230775348112991156095462298326312613911481374931736611708619091108763339745014185679848831435419880657506299276099818059003678216810389742056360068859088344979309252455762156877317651524067892648068546855621997981058877364839456225247995525164082885448650557465500061995496099444719734404493165863393045466630476652710804075598045623126568778876594180847377214681640101285900439572524694258239786503176990758241714943807670858930446549602008867264602845945399517501248482043802895316074132938275395397270329851126266356895855955325512824706210063135364449857326749138434057660377779135027909537890320542395668951872803863600100622225331460121004874562837905912761285945901453329321170515122465253821253975299132991364653075967882978386897492134688424636831722376392876897435772197394989464244245477280717688350263475822245880622195354954199251667556710056532342691453835981393155771837318924247366052687499784770813411938588014482515797867592370870639271097121122361819046072997639589732815403715653210601165092288060796772782742692844603152247289103732944459460362790625452826222483874955225043447402155692955725530180742835312412601608705482375987902121193356841582368031006701344991048801328627004622057286223856126766930276086222795204059257715062541401309882897348613639997301187889256135578768377737202172377775737683974344279097221551128998199765195424882822874819366218986955020032093946868929144994698075680133034891764066087033629954245497310574291894216590266085870398540242484793637437803992175340690044829019955545861486872327521989786307428489499921946782946568864271423306608189372681744644924564289844911747545810676093210327767719711470775741215421626312271457468900106332587273692028510996690259953335245832941928296206724474692723605150409498876637118779632209474273631225049179596482594660774735710691473744694146218673073991543719186881097700702537243967467290715030878262786411948853138497649344515832786643712207469842598855998459536473132801459659297257190861760936892314820041381774347542598172211630716381033221322082751146302971970188584569040204200040568694947327317466485460900220907081304344215596214600573378173453362598294494183958403009484362139264040767739693737756463593333108351026889483453739833912735261106463298914177699630620578454445706322868629714250234748993509897851275413477193125896935878204999174458885949719442263314342122748044693622482261013654339139198695756490847970454813502743099089716920970805346058168741740516242231139156297108711611829935080211583757044895749643779220930978043594862623490239770620594749176781656107161565547319394666921547868164164008148274773130888126127215524322486343086804009887359075612179148998479225499483347973524651462530954429727997114610401085247504407539503010293572093505830413801300721176418475954469318055641821571420491454469506912973276934902089987153123003397381419531199888900550818517122245865681325966180213924436494408487353309896422238749336348004084040499551148717567525264259194975094800471235321082722291830384899986291856205932555655547865992337113358067607135621787705143972989825488726198698196788656078879072074483131882080341687353272995012174727815138729517259539403217658740489500301745689000670826505023298334783615628768144090458094540823465709686371954340228049592038052363750371269622828501918993148803796021148983358118243006365314124429649935750165603080792961437453033195738690512830993154580456723920971339653442297286976054018377883443761687081162459191986388427326936126931946555844019752654584037871266710514277713775170582775678211273455926281850159243174509747662579768196314119696148860103568606470001607580120778977947969966014838625022872846091432596288324836818875734930784019940818420474919103246434779432055538626143427234559350108130835840498284609250487510522217067614465951243198235127258275136597203654055953018221573277926438475037738933303343389928023574178122348095602734373987566677211622465781788932027359104647126292924558272279373664523779743535836674214302897084893817793691595318075848118764473675772668130207105178280451811391910052468998190747302587941011356505463084852276840712989496567999478297203821432231742576989449810818575642226333502496607862432774531707755231026736006232263825762829317800953371289393882886755976166568267839482261185681388778133156949643354509638020499939870373076255637878335210837251067441984708099301611326393627979293381255101451270062727180600463766042437099247493672749098043441523685079740118420862546599355425574572222243834975029723974704056977985784437462699141417574315509438926133069779340316987826509137711137366015173238930848493741918011558246037249514570327609282255516675298966470210579114785171417060897745253865804170271103107572399048305534695658614555782034773983334208104648131857202069184174552550062862067093884852071501500851226445249651383291444267776259684704369601219749041379596704146543570501376593944705044524470063745155326227941250671415521997706793370045191548806366394743771128739122213596557074006878122666065248855066563586641441659384134483606231028864691986561457650534901962409766509676906811219176751141612131982390501786038883564386106759655183156201902144510683004566954946106916047255378466638660519990231644239330714426299578788409793732788591766890993643964786540195269781290315649926693404607497349406336120140003778558856912423955105106084222580684673719385607263563005535943171297388090448552059022885803192934434320015169513025732559469153694706148961154544711273178929946150452879051857838489682806108539521616525161640807886680889168527473540417760450649322701728990333324857092336724243968313021153002677507773642507243639289163663986687253620855444344341483493314767732073635175828848096705799099673003446773496775481104711251122795476629067249253352331135564718222791265813840906538904728285423914557147508043138446191648292208784010767901418167205905297480092529039755282091986835561603029653321595987309074962826676324135642919955391349314818292354159373231452439992459082625460090390612417672480926825217798817122980701893041678501370692106530942822022443175492874715427814269438030943978381026072138328065627100568322007879606823933718105785969478537172950771047979726209497598346104802825619069058974663984416492861492187036318660270595550603224993156352679881870899341757788433965889000526386712911638653553622478500827105009526916780665872271843349367024990166060485659318313878298090768923701316959951526067032719462262609700830082881651019440993021670952875854963437131967571003466462926908877045960992825853058332657828777599832238641632375573376659601428964319831526812605504047791039881911239415355449950046629490948338173843396019877609664740692663260198920250076145627195635466700417065923327403079666520984800510605430655617992460953571729560032124264377618994657863517226416046461544227638752005315936074693019669286574309519437188024498927968533581602394593849905172474617101157781431900353866817842974819784119436901270433927667718611828587294718199176242489381639488380871530321296938587613035841861381436875364794381235371972935591450779856943504705337724392526073225337124709897262644374863314741439496541890000824290578606177730557304088274921997917646958522390933188331469849066760771173763216208204873898218320136317009800792231452941910701144666777741175432961245071832460280627401628630287062928445977041935730617285590333465964883924738112961402258821174163327498527499066364460427995458676105895654192417803296094957756072036434049460203690769547035179786923970132813679261266348882827823389524999618774422550625785236916414085574408015485325564560134075933287123061750178501961833802439012010695917507272625589406211827948527839028485243728801281880305300476242767605303147255373271259409537677725495566369318274266199337903240577023519262789003676574664898021930438476624785527123522667140940266161978420528832128612065622666473872971807967411385741262337904732637985266173198640434952768803879752004096783408680590522629137876254437177118067645129086703476012940491046681437981485952357826699627445228611403420865948310083211058428835396744739800864032240979694248485263561030453259767984963757851175663431231724295184323070764128245876185879013796447269832667475118459792818067908955020956069757419437927337520442995573991133362412184743155725096190582093268352924107243231719125041905140358182475650612725060823956124899875075979649381970543113873906857018714071952979580992946004697848513376339484863521770335251723396824560035592944811145913286985480730840855056547597342119254808150199721908112234661031172014307796338085021350061892383597707704398552321229294419329169058681554264515109461310784656426841227114082726187889909314240967343343959943192437367514326713968625252090337272094889841365662620178190943742927429531954507023673646708260076695010350539901875366218153049497725441881991859362250340506038347545817231096745077747667572070428988876671131334721833308291744817309874130396855887709844186981973163873212382606779774807332488212896710268739675164888586266704217324377133900631204621007053582751741395932141879723022722280416733659001372914424072909530358793584908832796030742712277307294488666551841676928397219313113732756803808135981231056950464217378350469828704117062233197543654267750907255491513138759892016805937877280275127021205588907429444442581120161001607932457462499546156297387028885645654050187222088051693395718386134162820598055718468944676271997095832967244297647100759210282834750949637685269817206252128431211585304553425505338665204065766311992578688175011522950663709689461836292740433775851338280725536314283147426300947813170132071987641277900103301941374275048366803235580602625084040691347111245108441073031496838566455390199656316704004348546602039837212868511566018886332300911169014790887727515556569329184517849744930232953830234458612467162861842348343456650840874909331310133401025266921385282570974325865871653819786830409760601508241826771195649984522841898491979500673772439805345841960582798571921876423953363542774891071238025084660989498508018934971942543756643221138622024291824902547882497273663698312458944067804049197507126554324306338006223365752319871444130702788946756987518482280527507508737446982132521925529102681210426799195930272804108169044184361625734248086394823451753332601304263732284671929831354661210956269496314382592722406157538742802896515348722888064629850529586813956998189740004620453988489964400138737989406883091383613844122859339299651011556213168058573524485115120056952143223720078574582480044310904078245833017160963998993556779204399648250779775312737907606409063525429259276805736824373729954461193054670595466597488858864850661218895150378985113435503886016010360282726714969739648866051753166761613711052952337105267398867025104887930022312128481861480939465589038107406448577230803121575915375955769638010044928492510375537812669128287803274740456384380492397363111114017324627994289659201300882887030452966219153442231919295111352452808641229044370779767605498122939497952362166213162646101455418159665892972980061047467006167762098037332971033297641903568475505980845461139946732324465037092265112645928739562534776077951427661292634482874893267006714223081221338298109301490311407575129977701896649746103346652228089021704892840478794667834427312507400310892503778285122382675720569857366091953550977495457024733051391553471750159137581941979792898090376847531592188734592035510155855336105292962841571458963672904795916835656292826367593740420595876427784232070135027461382233752441520366561717693525633066494114199600664395880451639591465791287695668435744509912775139898571158505435897797022637275769917913739543680432005721674156715555666600351956823655933559799827382167346209071490402090528571929647449647643408355826653907016538416245586131425366619590478914625694540590357268779501931719475986196155949536291193295450753144878077972626047757774276484571331262533992809264639524195646771666050871896089857620477492716760578869867467443055082267962454369677587743121699460402771373470108859542659959355608916460100941784081148043043133205810265492079545579800779866295936536096627103582309490728333208732634953482919392811440384132669740870846047559488996235002034144769147708704811222284329418072255266724598016889206978231363153830176041850881883831069645766197946728517755846933068055650429879516816062745708710256275326729457606705441631000009428660232729064808121879641464096709515553522450823601065381438371148497785157883173649533813763121972898304593406517346161225686079968605952973869966802602243945213802472624050170761256373184109599951551405787165877627568164255478148905886279452352187956193167829793682852333598508528613076058126674665781603460536824253746238934238161956920186963350695085807842093298618698124710005413484479713126741493605511816497299472620238225448611451428897198644830059736501485278608689144648016268922823594841982954368407506441126006050087577949977080996871095400191583799278552316855148735417291220437391121734791616027935440878144520784030842166885695096171401193859747832727493719781939830750270720143069314978013667582043780955258014849364236986618039451360991861283692326531816548419810831541637873319139372767515625184944319935280218314628491983578621561696570110531305918369331578926674116845402433826175714466037161885439891794354885505591421331467741943118267557542072677534630587648748837053386963879064364503125543546665876867273219783446366446453836216402524366025948374661207962953248575388743862684282857649523582196526643933520304621293653936872919077907919761414599576237889541682864589817734439621298683212100827187671963194984651166764900983433930422159939899601113033876093789962112785006491858954745172216567224015401640781514956846519399775714445393526139721288839895140664548472830739434039706168009474718529504817477201395035384596280922212545448743240824256847232065989818735465093373079922866150714664528997067336092453147789821797405694608777708172046409091139045653309037916564111799972093646337241455749452795559471943877941642388750898146405345022063430066446652890551330010673125585719962008842280613833145585387745724706425054041317318423749714803394332421239379838399345493676145982147035800742595020703808921180948063459653486614956819672429424248680352773840980934085701797669675107907802222530318485332513578510972792324279016705641925840735275257122612698095916522451765897442386235899882847770754282586893229243534302583866741662091584449882368654973041909386124733836986845266411379227570793154146794514587324297318776905600124925750083584263157845317192887654524370866762730893826928773058794122347312526250570451001701337908483327285407151879006553365944157747362278186054265885238969071709458808031820628270073819278548910531536241521847011950013548290677556821992674001193624894391351947413097571612923837559787904162254106622826864177165469723358227780786570783984928000022567461248182147964399707389152174264487868888302366742364421572965924904135423584978726359891509589567236213897611495749486055940296357573145473209741394855853657067736881905688267623677704841112760642372290652630551508868664959024954630500205730981961976315531322357115314269969602620831836366713077915541421215635606711789686663293118361100715007481236968907410158367147732211543120505085534354812664194447871873012677148133859586294648689402699346006754840808424989030957888352694889317809883770176903355184404439405471728603626305160376864950364480613862306562706014201067438147217188071839563254530875123550802269790210706775760903617721184863134046919174054581679556108289369191391681504892197124796266189906047153112528718481769323988984704155265906351120532515683361865321701418707815352696682405763063626450193396655575271515332411552131166907592224655287729639933798613926933635004895336249232645200797627189541008544373529746936558052186009731173851098375431714749354122472147438190551012575858957844742205365134863538050525524539332550757110789060093244064477521566886875433220129189873178602354121960599881709515473700290238168904895744089608690156210377518915585117302389272009798706287717203384634609504637433193150115274391763987624903170246041833426141670327845530257671500593952307912001245123727550218405557003986235226190162401903236039283565063242500529387626989223892070601809031475280580927458294305108959528573334199539164289279958847957400942784186309009182399367943553438294884186917704498012151011329373791941895327989437183595960040073272325007850890324897852925164401615184530682861600992492942150016887480615654272877565604530467868338861497401263935170413990897587528288096598521033534760250138569903142509009724201905852765924090361840302670570958634151318303049814441671008896126285451032301688823513016308831725168842383670150590334003467758854144504293462472868102377637485792633395250825360123582090554097964955028856914324308589317986548149924060058816849887641661354572029961159226402319377055983021068901836367618351750451920255114072159232646900835289843056643974062915298209665488001914712532191373316147593601115090952165196911292152739468661904473906647560824621747462054180157573783116070769042563582908069716723789610437330002780151047029353103916071358157515447354123741502503542622507581598542631669185119445955403756966289118702503063171869556949986522145181773414990052405704224367485690196710711389736604418948119307158087613776309225457429917567975641555308967432512051111290521938401192654975194662087718605635109039746100861331385561677948437106450163993667909939098361807505605939932788954991983580972231706580132321945641052229979062509818555968245113325138627884427925973043940739908797073259761995070364349021325377324349913729131713126517116659242265825778733904904076592747357938224773376134501559271742497820575808381098722260288547324362244670869060360217321545648543047383289145894390285784811373027893662087646369160833672697671173056020492210268721858943801762147317506952530458706470180689588311423949896543380213271344737026360523924151271718307776238519722695486565426792094869468242392290213606386424894323705532201649399840207727323725384180858408877502539490225378514706876632124422248668511720132043857259243557988967370473348426263940159582544783213414804610613462939409566301869507512246323427376512360466966136812179358772378955816985377259993864160685119021904988747023167320446034242791382039495789604814795581288359391296750354092714493897642563207572964460740802593363721868090056305078573120596142480337638493115608386352675082760359643649800168626621478326538933732870524152783623507873981958198447698362942151365726386937401214391320369554261382239193884835792932304403240588983253938567495588860805290937379458382516065498435648148722269696541241118105778384967438518756321282453942082457971436166793433210223744501034474044424483953895400708633190588282234007679326176119243996691440356666408039524075501173408308705877227022873982069724454491273036990793684977049719451084976955639848288311658797780156008786566626442041238049018186472061359210889449838058847219616456416079230171874929514083886403780700217186166716595271887747574756880448688230031753936660535855588914274545600807182907697140905807864775543002718191055820101022768434804658064958046671600375382315442363886205180890309642811709292025732464644347076272456322737886846193146550693211437576309266850331205303402441413169018906879318430366125915795994012948907879664626484734611943988909838919043885100281893679176220339389941173029732495070438583393081771891995064773681930310324368019777872975806988383636052264529786393821657116663688976609080703039821578566369851654358185434240992304106049763353341726837954585461261341074099732564201185433050344753099964187552757659945870757215078210117645662011876393020522004702388184720337464688638606195687057744278061958280049013317046975734531877540643553591511908886573296315902451473578811627356178320247744370952023615497836881380313789476295778316789977576313239101008588346993361790280658729652763184916593551374237028224059415378639805998870468651948305856312123342276072343978443496213554963583629422759180134235542809134844057043066156142503305819774815855649761187297727907720277504387507903453739347443245629687247537041715013050497015407494905122733580897219544268918367953280189979330120905740882782140052983378047127268601201776500853720537284584611850993629174143109153707004288060874077153897797347403973983560543313191066328629157301604098423177817561365735398256256596067573560219238015609820176367738366992992281816012852944811978002961606511797951300964812092188397177303937207308011540018600623926070469671213347277221890692001980641272172349367461569195689123510630064284585659909790731840429071908143835516829410351023706016947750706417794976435178120834249861552418791931854852748564289277636145499797638359721808799994876802870761345805958473506741261002995241778776022052667245120361844421846952670534109026781283255424228061514468537390053716234167180798063944280569665036323136055556848347757777053628476638862426720829558973902438708433498954450549260730544092549586234909100619830636312354301705375193679965932705226758611249760427645527406334304974381318184178978169660570928459836078142639066386841369512809411632810987872800538404395434724018123248630698922085271513707193676529629549324643549652249734859583612379201083509204830087041119681179364911177443680321568418690957008931807520561652171183199454170266861374047557431948775190815036177748592164034581262312452796151865952968892625373891614436029661731638326985120625530405192910719158966327392580617443137336473276129858407450151973482064596200455524699754321921336255874622346493310749340293316619222829028147255815079821907082619515970664373073625484372138606460291803317271690580069362388170337216149526578377634878812715630143795343363288559045856294971890689468161593420010637521313122875509044559078886368512559590397087988181732512906718409716229561242704125035495964740597350455970855750359971438628510775046940899620529318570866331966066222029632040186097758075087437344191347432370953290877513831696414319814995813797034540237194840206703577817770815172845505190252946106254569219969450454560130793619837473375501019391775118449501204280063463570667665568789533633915394931672081825694852617836757144751905866727515219901609978151338094906638485964417994951452492258630152243474249485597290649896914409351533194085771481531085497575772431622457267354771036874516008088959916561578311276642391809204734151899555582222189867599957837826674778451589407886588331941475045005981263837997826636150949372616391411020170771689948843682564396389466236252605705759482546323944060643375364065249108113506388979217520020919528351217275919173133613929503290407005220568312661482210032223324710822135695985921024053547419484570522573735250440937347200437790742025497523547392242834125648046139858898026725243586326254989935620177559244856202709975092388805440719197432870067866053533465790308256459975892678841696785331345057225673434532482650529179935618330503416702895893650116530111675079317386777945727928013197624924617494960099108263711238689191634105536067506026021139813747409576361368857273935886385167042399093321365803587101257355970511779575506936089198756895481289217319968297159637068618067598609765002292586912177403451461858543306282952729625245553576458807569220974606604503146981900206095381914927234071042949528588703883753972476685310078192302429432266705937915272467283065704977321670282306101444997469809327407437491929546406752930928365736446557136565936716957753764631432784042017271305119908960909418721388812452074490929454649386436266802975975571537290214882467721915573250548844489433422880697822773553453491617077014184780714941542981571619703829352674582658860513713305754500519533651894589915839724804085808936684024158687399366687088539149133936969133096733060980736460239592689548791347156139425422161584480336139264447036980686219439815496038602362574446489657651177667584140492984018670764394244830044901170152241312913290297638802615621760077558998535142304236832164987128208155769184281614507683564897659161558661971012675604625578220615095053595450046694164936631639109434047045945130022681751183591034869680855342451662488601833579320937948680997200559175217722856400535268419529691674621333618457274453791116184357677980942200746210770064996872255904644523372770316566500653511426100526506287984231782381948828415057429402641802087352735871122732769572718618948678973057900283389863553878562494348067762381578137071509098809160522237903522671375031184141873301153715307624410822688236220635189422537727098898244176544192042617393274770975512278615673975929773602579065967626468208259725277981527461143983347230370025348975030738093765317574994147454106018510852709493299366421243483169029669188780697174779434190244009950361496640701283884258870486710693132760992670806593044442353680090650464082860897384810579147806282583330254944236319413713084246577879036768787311119900100923204194228313858784311522907771780422156093550507078748334669724205419367323959803804530927167004287468317332052362127344826835703237279124389850828362001547705531288540888875743741737192814564688139271946266483168078399879811467426881715680399472152778205157004402037340679264509795169415168377790712476271849416465565289301983673022213529737230363560325191424357567524060033289910544580479622285550497865402805499888798952335566440067055007022714750347957168273000789154236153408732348747238058328976657763409492604744703917604033416552001580418049166088295397796921745417238575169685486643008724001729038353971520577471159993009551403270681283089767546499526291543556812711465526544256445341887373791149241187895615803229637200215594298491729280954867139121706711333543022821031058806148116967218629574239586318312120863027597971910175612727406995387350736998607066132562241559553518903366355789282590959409005034515019621360658306027838613906353846795129064018069764640072188392603989814213099438538630890281669120402591396913442349540243479738998511622636304756494142874539643542710903762165160455010137981215458068594295008851513211959191145094322498395081321161439932651216875614194161433901717676104096506168859626532048794589873002308011559154531082835151743567709297175649532978561334229042687894373199601498640347948763453095507860963243505941123023308762925942375927815158004141174195096488318897449993924396570986837007930645131915430205929334265562373740954090853913544122519687586398999958701813905131458268203396519466641139674438966555261271779833024508512940569263783586199835654677598436019605737902904687660239888325037442951643891509219222694119829490755453248339503455373478806428388996587684923288476127247539179078813452963402327873056637696903316686586642437067966896068143421336824634249847686042783259561564509589377798579133420085821762209496747052690251792248884840029332120869891879131646908802858823838874065563475194899820200522752134934783938572578576872699192695456119341097948911038994059192761510133376029261497170729782870063040772331935346961123119894403862756805158694583236304526723196358493988316100382220058705907793947255328931961652774236285718576642836726200052317295158652853361789549001102871872084847755674718788933849054741523757153383312606376238775905481832334784205411673422924570960427159416056810691368398719633035111327207939172221635019308829913336746799235688346820401335043645268983641285273590387577496742387170093765102504079229882897047575236890424599901771028618601123605904763364936695723329082520239242451648617153429079429380994316885335676187316390434118182035484530516489070301538264716114590513435916866978791137882509943358485468548295896488354992059211162038473991087650608479313098596047003082714677121059766375586879692839153461761800348241033802068115036986178261688308191343788674890545226245730464753732748615577467166939205653638154323696240020179876968966148193633317701223940621734185443074266796587445409805673876167514082842279437262189015994496783993740781086572901147958339760757133767148979727479773744572550358626346084185217449692720483841870061560586379608589041130312865175191166236763878561320330742444426730039907531089089157373536728807119356239727963992221455712056439971493116946341515816837339342724651787238856141032454762412083465546441322835015599285487272192509221961697322749108054385350879674596255876165910017323325832613183734859122701014828132268213395112718750346730331104066535434355008726841059553767701761074628295211596053512910845241965591040256324161823448805485589504582218143502449738595558344938642735661673007831202967303801928637684887801120031825807177036165764211671411948118458623759180222016558244134070077550480616251488018645954688491014970405232645088869669884941695565700236918314810261532231276630712987821925960609055430122847418190293369296660661355311332726016271051284174417011448688082100058053382182574563463422742524644535295139156475461941174584991314597952233141722562321664019427725903245148038617658041681126333234465658300522648991172222330612500954638148496055960590349907101888011941635530619855113357959206041186510891843987924824871079416324698261532213414582782527250150480734257774453910968157815189314730904312943715384477348939322253954725287850238085735305534570062889480911478646697659152010177600987364646866469059499423003328851000687713170774313750038700824744322564664171076248936528792207887631111538689930543360924339717207154270909365974796415428849629368077034757690005527175800438066688079684336355299307937958441517955653822062427352949055390813266788854174603731383071720874496562177102696001650291163842466220607836268860241399800466944357274409170733422592459947211680458871269033651653421507427385276739820371427755293372413809203943120689646261058512494551619951787036865699016862258125930936804178666629395622890267697654944390874858216040634588147784739292253701252372246931234497318341557558689081433304756723920669132456701415791937360615315692597160270367157346773805205140130067072899175112745859830029119498403770166234183047428084075815015725140198759315318772173195303290002104418515284003671242846978247992384151209253689996512542821081555627294331982468726367988220140388729393391309967985929372976511990268996947845743581397676919720670097437191960821507877060908613631991534395072812480838162600884206712975139060067969013842542062523246542551472005755644648505122014636295276152425602637700054529235586436946214184685949042595352921054653864092395960236307663892107652293892258263204436893287400507926026513257058817173649671385638346141984210725886587459711298228316516182429910174290506084661982158154543484355758400946625286356115647755371948814073001844232267838112881522503019097660141579967410467424742941799829236110878558976524649700023534589637281613520693934185415049049637124677216425992297881713324935343874227935755769945055873133492937509180879909859706551860969214645202009052461609464357773854768862561851956285465925981239858855231704901247462339401049286745982885626452157926832028306345553121563325975914982584579441539987280305146533404066194887987605353067363689093422326541294384201961836202290691383270957426203963322273850138474006159693810519257965613402292931958241368947300330094059579922580259022249928878263429867099827369056307514214477718103291610563739267562678768237651731068953968596423983092191097638621862229354769204314158332105809702850271323867282834418186467600038960728784445574785192501105228329242732655846895347418744189083606527990169892282817387902120741017639490676047317735670154978511936436500386433441169713843781566668910307638261200068466198023310350093302550828036755543445112971526730683443258402896084407417180606419577191702207398484823639800322888642156451916153188125641804117467909195371494042220468235809217031857244433272585115374492096590784991512446700517328083705128742684393142852640095617507458348368146516751140974102989958152008517519806432398503335623098437241722205806824853592979792403330996302746464577834262018451562095378407357223589588717325529796714320374234026778221366240054346092485283896585309281476831385740109425772717380351604573598581563604998315520239076215956203138379644011823446013140208858339185303074184498674292974454174942428451379641460824683773417288278537059335436597988507320219346776762369341603145074121077546836750797261062575413712556219742923956429772141542344398479193371221187424268391550900767847862516132965358275710553904984000218134252865754924016472271616262446499437073377954979121954033853077833194568031938337955087287646094200731789907288839733160041993222512785351639183850710979486180372039580600153785815842755549177253466093862206874547524930607539910733337039019876064131904135931631397932765187473198978071123171104259054823771128043843661708414832695899390281944996828689065356323511816616462234721081592200164702448877417208953980799723484181457890279077125786329010183319110417731843735097114332444680398712127973526498742657845515922120631264707801191515587237070581737143288099587827087184024996739361860070161420345595215235805371032060549149581526533625852069430288050434096107219536940992741502590689014375840505876204862315227833566318080636204056590326938709261705426246771130200931936902531041308450484857568784609804862286308150920916676107286566025450267478353163348169658214246172522686557758864941058481160418276848769156650744237547799739413139984172506661515001219070627197148539300542984626828449444953519725088780275871422070247894685166266052141990343670642337283715549656983710378391037379675210314321891193513186190874533146857697666934124288252968473000189855260219626206128018916474190214735138155527021562819551943614848086585811321607514778298605983705776742836473029802023500399175161788567289876897425455995534006401972894170349155860974470527770265893971770392240960671673322259419881092093064781160047378492940732677002967847770001983325421637314286552552627484749451485986404970869391720346811585551193085558587589529956131260865828768514255333153029193075774419629361564175743234576051221579359721177756864144659475470638583555821006303191658600190453844146305259258137885769540148960870087129983880132428727599133710847645257587328857497191746183474175851426724714135394077774056564989560838398501253818883040989950458142560071425138822847543314884845891799314952805968530535378136920203194458098178135440652928246002300068602115216340476130515811329335554024025974366513004198428705113415670893884254908635319868788342294091288613346803699802403002695154602291787620267881355030593026110315803530988602483024608280173086466102072944304454504640772786639579107906554623902663278677878090760223273705006900011640288357002264487803380874780551309294664390708320262821670174858669259128151488480735098601266231249887716820900780736383184913973430677235669007211862104436069938996047588277172209472803496958719673238356913173895975388176366831023237801397391310761010048290886616430617729237157979252719715528424598916939372904005520282971612098583578816374810093612894658306466791444038920918575766176593799792904779702261792419631818900024680578679558669119543581322435124938802399052755191473822470931363025893511736008667195987873212993951217825426798119070317579913081907872337085015280878992680992575057224520448041073428073513322663212850388208083833387110927785037738249580533937264827531265011944128934297109967258661481645901016943183545399848831476462176254727430093368972876147145551202963904200116817698897344173518981701057385872710084046931971904724491784617532942157982349335816989852813205507451049306037497159567276788267091839851397795846989220799790841649990401332614085590584670576655975003795702365403512489507694853131261778905427145289139043057185447848149216258000757852956377493292845436795946938414034099074759174409069965740596321071546878021743584716306057029382548609113148100210944235870642516547554053822495338686153892119299341543547447103985355902175005910996518098291898020759076652588173282979351147284840328402200472459405927374768085609963741634317279763708843708142493301537831500269038129415386339306456523224254136232719518437870892381855051890303738944088738686492856467448048303975159651713613631736160045162850608603762284928456897281929409543152228762784546205619640028865214804517423691640431920346613281680639962917422513622227359902151313359057979369234475921120677218604366232390790174612637661585668172024628253623887121081970035594203063929440269439529190219937433146379516914803541382048331797930761658981148015079261252824016589899300487840222346907877495811186050672498568389250788942600527331314432091080648827953725443945007347323403037437843551350592462799405443724166247317419267672829771758230869638483734160631777164502182614158710806662733734922394615373106227026631877483468249015586719485060853057086922260110979738065370431322200504433113882087453554397094876660576471927100064190990819223919026500292330774852831981275963065668851715055990619731709449521672093624493566706266294927066132700416073702905309651117329414206285247586790968321509907604352073292595036752022072586177431329210425474397393999065959378042700152971553775410337422232841594695594568529483188886981445087171485368463053924289730660792275250289645622771159489575929188184536261544602810977178439516095876296014962235348162661178909065120105671165393351030340091954676478250943680714133637312818153303018027309838169858005831342569109981636871076935361643433854002471783041764829267465029981324708824818524769578874965521011626261453449993891541213419322030360185804892874264365780920652303205811093970471681124358294288783021997035104150965086159119987626830574609266727716590416045131018196991420396401411575836297107973280122500928875207907050079909956214809903016093523418119089974520130153857787059047023090741858019161038690473773312502788350810185838386025922601677897148952408983565746683496469164973537179248117931213657730898227976123206986920988909637768602661809620252976920659605454273840586055927411284866193595329500459122592416024984508239970781078291039373840268471651751093710958179312259819132097079709472475129380293687583982242316666068675033016750904055340076213453629437444110529496834629605830570288342383748642509237787500485908059089426035484898443198628128809318631035777713375340710350587144549419231864399169328044390559530112087339631235449973823489936984873537385167860849530124119282499960122211275836297407769987616899663073485798765376294543713091313003228448828856283156301341196321152603339162755034304249737457176013350195122579594248354909016435737361006120691287910735120392131300914739919295577729843649454227795695226975985296902424127932681193472204147405293093661772473903191428426029001081775874416363842604563930504194138248370567847621251192425415320925281381465118415605233316189141792595739951933482730244798838729366107648277815620000266243545569128130843560864815048194620593201374712543536147402690346237246582942300464429729152164339668202931969697383010117301398665152920848111119255480923702360490709699556024189394716475876455130343230325029940880553398812322942487283299910382517586055822645307169971254610331993631927763101041831215235861184707932501039525151035127356485585905652568685394463054717222457760149528062883106896544063113626913255319941120945916970364311837405396403458421394514218777059908467919050794128052627468568088756582478063315287221206294325595868204831078097515738699890484412031765931223230258603859407341835812594180866942122698341191170992397756422795320026615906283939720489757811633015436477294705112737576545708212981190712344099975412670632719820746112908195708331192247306977753499805448178257226431441916352318404768802136794624330345276190167192846598699723082705267955791797916781615941391799806235500548489464229387341475984816041202320466650077530945757928517724768325835015892238570798899639315097359296636187041300495987980918623351337460922328037557547858865380596153222756193063278055935666386798459172140415989561926239851897720132877428727080354041605268810896471961109819341868865985551228014140744013869762674467994469792508247953549312481523955312530205960879484401224359123427160258409024108003296131060219744425466489505966127762342948369786279659604509161501167729246011692767752118055446735502890772160044883479357153775713809293072732721304194303781787643469811586159190973181804511526577120160715284804573906562271714275672809611780800079811320032032391853743870546634451947217314099675892919129919386540538188554433940780300628438726593931681271700717054874240980549092948916399154176877105379027608646502096030883872151872638055234930037942243573110142910392269456234216037608584766018295294398001560643751017597628230949120717347588222105723404415962744755038678143499287300505656169524252225308538008894162148319676972089388767112942260231012698694010762483280561117637340625935561302923187924406331481827388949867217682477967007332009421687501394596664038157967146410976465879378375170408991071475667933896724196142885606285966769943714203881331162221469194099995414542566597097189427051201439413342457106286863464788132773568092493102308874574058053370150271224038458902148261001230786286841106495451553576263450492126123938377601230524770180156916231511346101586502919600288403553176696613286083357700510209589301273706212745964659038514508775231994956483625571617008633068466048404166414521716022614714093632139818600910862200905615885862790890873121617175596639882417656075017030664725159015754403116020235387530635677566684358798322508067699841566512671280909716079619310296442653705481657429131446250350546855208616669808585128745922283598835350179358992018575534412650330522788484306387494558800187946532486125613367456101514177643262693413069915671587883275689925120315182697042993496272438698132648791776729396152266942891064757618364541018459528709523118693824282468985584194473536847700374694501362068607078976508395873957104187083911537670390983929418411860703942791506203241768969380214564472791547884337491715811991005324360106775903773113776757457134911945822394568486289809803171698819877691104592850951038116675146652675958481225391987729142310875850278736498473229796735456101267764037840121772921119796964569217753075485227279884624470768750254819610697683820832255767853931279249049783705029238773704056941644817317726743554809767819396535525518923196733052436888238437119584903606703495362716827090279253595113099992430006975123743304808858487302868166769175485165795266455960075246912512542687325287722593078582637677963041751330536752648333696153261893740642610382885217237516765732024523613637997707423013006120392136967464905024824842485421333840949880111737006414784984102972121624619968064641730702483275312487489620089430727759576738352684510751754705171058705830584540940083072190696045214461325237049566155837955333557046970161532424174284177981133618060793945496358085686486712231719803839911281251546982696828872821425479422069305794354022601263714298271772821436150404391911919321431218512241093511330036282061475746703396649277964086490626161272628569171234408567390779093595516940887045259501670577283566832267945416977377815507843987114687291931719208120021833244587504270890093318935619062234200173513092602050383409070449533670838049007050299161337710546600821112473626771426661237505797740212080834996004280944987827881648208250082193250787484962336521914032117051724364564502796298861288747637387418522462830741434193452783617645321420010509787923596423391331246856894546093129337322470352260898809565251865663924600140101414980425079076102984728168740072885815363286129098940449756029938900158572065566366010214164524435415047216861018395574884251632841377204009870196276696097528035063699259688439145972940826928795674959182925404586653303956672946274240569909445491154922389434144656943837944907990988251713420895298581791973203701885930174987220243462509222284251787272342967509014599395224443159644784613368105328403397062329718713744638491011732681001672822848855935257996199510867565410039073951460878064131169712197624744291524730827263557941066244129858243222274735710149508764794029123523676882395971645828918360320768510099544867180775948061803320050519557718954240342645547026545399313457891458478393467666370078102016762823715589369124883532427178066627176281421394982111272272697409960554941169455134325482463573628729941736227450937483064657787661670847010457324378430625929417694072950688702094918962164197885837778379426314000853277957657691639224239184386461288785449948160339981359726481318519568117396305891478298234217732126082478674970647706736026095989613464193956670275939077896193429534590396802182174338359135580974127371856633441242740754544019948691160409366745376611887035326057031034834867030522654664156657876272279450305302214501647063843184625728014253688918954675941303406534745263118563132423795741982070678578641271769084799373631703904996685120972717063034740543116317278143175683564231346463300808362286357156307249310320203615073191563652471094863223424575547122206806845521636849128126902349761198064101773452347135699272179939329595047373763185958870955475945370435079198886541694023888024475868600602583745022708628330201622453131457353287392623803370325245307031976602306596062339988390187118333533912287644874012627230337732620488052617636445967691184110652887677388672921112083694100743989919307381026954593959426446928122841805851774612531280101885154901756654515064101175440323466297700535795879368937721391515242059370547741901205861498494711121922244576588154939895848799028921975837522698989214836977474670979634041450711071690524158968501353445153480051501669886396176931258670843258626693811193979571042062870483030291292904369307687994147358517228858116022531912778999618609162579804928563424983556634292269156757384640495546987271439262049476151787576163054535967085351820825368250958235545861614989217865753299198700787659084655343995882820614102326794273272049870531928968981863903626862199117097761348402864244405997773332376475038118930429604314406869474204772146509602936310375446561887384891709882557348005182701660625982290314170144234071979210078739049190432133620889725747585239895186356432350218681848028512143737537772252937077929414410595697393156655391250117358552802122490572947228439556381680500350683771956724087568145383124660154162157311212630648795294617954490425734063593806073358173369886384534962940323978247962957758947034228458515212939570594348873787238020575392072247216283102864774957796156128122875252105956839122756071081323603501590052784342740574449523807518573200423270967455159732906806971333932109534474348854760672631040263997775182082238087409343540757663484673634206541750240185959682222618947791010771960237206897575082973027271121071778594036888349597835331776655073358192381002865809284642983881256223219035879643663786004344160502582663720317234934871808823745989917386838571095976729584350799184137130318846420232336094378102159959497478129443096448907580550676728819759942685752535808643080823827473069716854239262287355191659488603198418083073663039873367520045900862102057416549923776287388302326871819765716912583266468320554197596832462609784182651318291408167656192426337960807387387793318805173778866572397184242064151060828763607392821379516088765260143670904032569639992989881517667367888071127209053256289747740746936890363061004323191476346268658325931715241744751622033141325035403537291302560972141952672701620572511859106328004276634367586985983644532539535680914305468897714989706259388140035543282766544821557286130851844452449663292660992968454721579781357158399799694784902745713182160604772774552731542195342738418063538874084277950519509871345389285320225785082463670048788233945024114982611620971887135465661031957796669383209022760342266182782673309041731162479828366558961245740849896311306989714603386200322210523016214794287185869882059226728455059480091319552980988537420116068662837556995820728529157468122190116351604237675115195396377970446753471094950379594164790970074449131420846439684989644244021557334147679497711857757670588934772934673473725263472106784946727939908855525260726777021217429607150935361515476933578284628442655556121234480221528613800542423170000419460134145837959396223891745428782278741852180048796269241486814995720384695824064443297219022260410560816592723718794920927190715806325375675948175007284970146159185238610625227227812409651233487654187780939845572563690452966317815280053946778011270733324637118979814462720308158863461774644160821280453122463063682064768309029992081769661994646066259321111435447832457307689781495116935980553191548541490929750795535822472573470878348022800238832770510772599459528237214589573420207293171698472949929620923896577177321709058534775951724429237433971849550108584096876349376898214565445618245839916592918954845939362561218179748723647571545294458056478961513919306214283345644483463065309919307893054831678734636776614555049356615787597131954383620990187187153883352710785459428161050745989085452683359395081370058426460295792171230418211915281287946841519666222871083407212241163647719240561710924932455120196461896350449379159203391633861579346991476261178010257585423073778259284557288475644943373798123839177717268600810064033880652631740279360032829864864517336311828426222877366983199006893071937477704604674106820554534523865835961492573956525524998386840424157486534007488992257428227204283397869036866381959592831797043715184933120179148155956423979968753675467981746774134144284928278447706650735569820702201817621611813515395885249543136866049198433661061336619702123857544516176888177017880902000806479520312166919763603446214821227579622254073609320824346458850750227363376185659999606360969295835015717388654813207621601451519806318250098511163472194172641205922732461885514823116100250979161264705772508165538033755616246904806903640028686190394597562146531662042096816062174871967065406516186074183083410255557606081097798396246410609856027616934791488612953366806292764650707118626693505523770354491969143034605179437089742383321225471351824200284931992300382125416388089255587315219830215284186989375721005299283917272309229818221043527632064891082380334187196346446022634392075675542567057139475506450136684486654265144005721002551289954122146409306076485714252426704391795882207800430208255799643633520679704397976114352008837520118994119933077002102069966604796810150874171215007180801482608109071639464348827289639388197563183208562473249091229879526393159317873626815188172887743936494408992669520404556530590738148011036202363023531223079210806303150492808334403384395689556758310514733004336570316450288094448579788283877003967023276823502213248650145764799230417972075490422424877783701873582095883716974379975345567962250961442117908537277822005200026762377782710634405422151905227437311135839168014047563734443072085614195398380797832411891063336231451285023337984309475207442328191209904703582209382147481228930959366462112885748608271568691319413731220719023103358056239456968140823761862607559899343637565265359265035399169315398986822295885974631062040805106046690336362670464570039741385149552122370420499959260329044617159946966310017141888680004040788130974287405062342222351140688267613203728111721260045575296886581574711653758594486916481031678107213808443076444913441549521786434462215889784834567546537400403366356859611283224053365147975966160695330954362682334358536001290809802342622495187524416495761959695343420669571361400313849946238464912931168161163565574007988572194213411629472540193569377226112789772452702263510440450005790456286229442389339161397639642945163882228056109731963550282987767079543684313524154688063678368155874342815938466050242937454471018970795147584354638603644096062951336364775242774631059918740690099351646734035818918371760536414554951533831461872709492222938840379874624428214924001796951043965467892303766761564951693385663288085717241900801315695661195999186514346847469424992202056537083326914855633416024170754480183798751969629714071124116472369544844736230139959519886940648661802373234245465925532107234395555179541265533162830850503069829748998551286368319841702919021640779793554637290070769662699651063313023456705577228843650698335543403508890580319536720258078142549321930366005159050350185083092193211003456725249675605682117358559854400402590118982286494397886557278095378246146557920370972899254439091660032453692557974521791191787844041386754848426670234965134234993102004562766905682629154886887808141765112130658901948969779134766954979316525447248495431236854016588223958604731679707388600351912265784535039903611029158279864419718212566729788910086057203999482829346753148089483237400330675897352432232159113555904197021342128746473139612918348038266531959890065079488530578034717235149972802343634733343034342582549701576348618360397232566191902456884581876767361434291539135090535256735679318737532733398411838968077413233468895668267076717429384115175665699524437321780935364286117169564699121306199311750072394458708535352333987631788776438626890195715424512391727703831079347671232988516065641956346965452153393706294143119061883180582779331134353931713719914842432151889882022167257415905460954620262437320085489456504696465209849364454499749020390383527072182241104268471995358667922566773026528341511856651120176682539386057340847531945625985876558625033191922688883921951736026232530909693569658206375802849706623427823466156244318348881123792165179588585552852939827777445046803874483283530417193316886886723197006805704004733079890982724989457255210146752275227330815140124823400919139962568225940241494686540981098857954540928267992145221455262842216645681520985414269162353044218141698717144526644714450166971984726474819123096681636460856778852369057749443919902330230620343941331699035810163525725093774682724815940440935338484435534770963409906466813191786488613483778557034274887657688894013794024659213498712773199709844702890237185618727670861534792677936276172258900917651188024441390300538597920402173183976320283837327639705523161902634882791626862902278753180038707847292774560298746329770494105862236339286803387208274965596253248597889022214586046573266127492711859166543489737649723623582435144038102277710775219626693496712827114170486146774613065814504006710141342211401099008092049609538591968798735667958440270800642162328652743130338765731151802108237475344446881585959448546161823568319605357066680983397245768536294160776627508528193475317152987191788650757121218368115653946316010481132673397300829082601531633602304844976292219742873286062012825193774757259697770766880956699995311031850578286779337248311609396864623694255160284890949840952322579765670927605369169809932917036782155754984009395199801559451706492735611930575336788221153293778112093526652247308173106300175200910161355086296988577204039793731315205630643715288828603549316274929071075861981168555321954624453350681841045857105851619047561703999145013910368116940559115435372278976935157647051243272676650132334197682512980612560439910850395055402934010917578449212244338008273090409006470061971061801492136136450523975749642517069597155782419274593632382604714254000606906350894449758886940097444538670415913301856178716685115814419956009055038766157054964318033025685949405805858313678174835186891967470222742489062233192926969309789878869664547503412526718362667140928686828701431683297649680425639474868955661087918100353539678808031762681087261624094124623396071735861026827267083565051832160804031682151920048171223144650041048736526041103672955796507339612109055034994838858560602085099945226142430004794033223789825915562029221154655709620800989274820903982500990950668337449414706477315091809148714638630020750957167016726037086132086679970374526273294230449392406467377541644222094488349200973317462005052688017230378108535028211815975962932112501797586835886572408070088640666206192762489978667895302213108795784174099270821518100826099341795453003902979866043138498244585358821187365025108318184528946985287481298596293770627884136960130614317956664767180833242108254522720487257431073600855659325863854134347141228544094970270901059844957657253439010775161446471978837552606639236266040039968676960934720740289688464669964676133736250390922862521186583976579288649272471179759947098572550501064734496529448932335766148685092630051014568106224581911283250275503148489515512448759813546243739323789015882091836941630047539742033231540174031006768830940702196615095633760708326492877026247488097526938027803605245387748352848269521569664730238501692849700020519451936867165457686685277091259086587644749069431060445702035389834311657027582175592258507862484955353095094436123499086858769703839743410283903105715182758882953991842483221319280743999982486826378212435523778688891044363683856708471336695152899699399978253627071029917957996026156411267667900928891907298400304701517868807022088281920367303362972848320174715515298135844486974800397047534804937523857970532178115221301713985144897750470454878794615362000567927849580095536417554676495471697832226163584241713231233972140055385182318063954113609886521058860585639712162476940873996651646298109936500389413045269696504508039760591350149538651345429884703018464137718108067738069391485645942042544070712149856882405468727682148035372244598069060149768654399929665805126204871484542440736241668269672768311931464815848078347001457405867248364427199075126811982577748346505814216975265288614285483275555084913341143374904929786408689399765786749086460117578319028291380445122086706590076703793153313590279827557708920803908505571691706718175713503866317185121260368952343525277850436795100475700843977694244579823713908342905632830317696635042332224554927876054586035152227625973860789569536321874888348232462686371297041043232279610154222634180606918975039010686602562999302499786080143275714763045254227729234117838406362315004189078145255587905763758650426658556768633070678979240455351875222265522931973828816257325550694410750499392171291323089618837813387417916556638590002434264012164954330030351400244298507495623798942411363579735533620421911982852595362878883338225007801737844145028603488215349301528184213819428287963379703353613467761529301613393513724815736764691770518507220384720150391064245812758359532349766154180795878141430616110746857080421294533539120020482223410002435357238416522764552067965234597945114245976294584877831761056838823837295119118051463348588144826399093732041727807141473901250430053934368262236422726877344144810623462372454231241473594752926896990626693175463205438151697572403248857363465907044187184603050552204605232236264335644253818209123646412525037201213346115655321663802050506226062899477599459764810952466884223742796992884553432419112631518143699134506430262807091938983364334706783637779360762850840406116153184037783693774471118976495410745226303666431409255746478604917171802966045393444304177224674790683924630835966400171917097163087712358550032157096665301510894226790755427491977701182401572399371704538257686135321098243530676834546798037405706215257047189333302985654817231898651346536393880860841683278015324042971828924974707626715609018633214805056729910103099868613163229734524993461057066100486501060084089390030362763600521286970666223335492845810544122821917224649756230910520083777831716073194073486739495777490112709285447208144725136082873177559918982357031503070666872202385988714427140364920883708745512961082999525305839530563382835125703432589500236010646259375165804176645835003820144046350091337120336211730492067675262354624357902535515054293737917398776559007256000156592206932496280515557575163801650026354718391289551482123926565761832220081858751421299445162931087654704531394544196936603474210045908351796425866095665241666272972426219516961874183679187793494502284874597851286266540362098878451140461073225599206975613465186095112122377805689835570902867437175205256550047820665164458575154194728719901483420111903487085052473923045620875705044836525350174685086435604436412753309523620279372040008607134347437032596686985421910660803293171824234016474941589321108591315573855389977473897953610323062363242354191069084825839544714978603392988575341738270378089183065870570075522339900186243225176301110601666339866065752858074599789575599349865853818268225420484237698642046857129848284400261211782774332423169793361357727630592666403906834521005130271848375949941391102819211392474820340495839475156109586650802923165775019696190173173203987678901254883572321056961803549788482898561695741441741395124644104237363843009942803793308145630748182842240479697919611897451181339330642362675506346039635644562522438651457901550877673377528874209649863690309609786372221117831275911806798598337163371991421024548699255003943369678760936903336857689842659214186237155782055282544384329571741860324297995364779610319316112338571085292911690890768424845190222054876447501905966083531066490747829567005314407963611727032808706332174161630845856215957680862839792306656579306708424633165156597571431317657961668503030635111907903358052019366009422747925710324094843563544135667434675454134745134482729793525130407852179465187360511511185047729315174140421430230947235931403594485162604987995879650320648410961690000908514529909064197815193891637485127401914635288139227641699095152421250570819759999757625251113901245265067753976436197905273968506402354127265827818425542542813169991860064285558795047844302321257375200471025458276510629125298905899260641855089145147708113549070226302409329394697194037368886942865608795990926903097050753680304552717271181698432714698966754900995936204401287694627740631657350306276113381739211953955727109145125247594779727322017421045975065450634722693913872317845787214632282686355633749680119247443288542988182532057974370696767020683152746398789329449959846951235643044143569154352284118731639277640926006651876813357690219600531651939453238355934003498184581305698474730554420625141426178613646381851894416361406100328657654173994915466885919497335875288918060636229996256668037075050180125357956520334390634243102702564419460617916985755361162818577598779563789300783594024644801908601944324947985115255714707454149595710144950488622554354016373553594002087388591160244722193117567314164726150402227123887912679866329768248936484044161834953166412797064605852989564117090178042852026959111389358239787068195722636913994350900092957368566050879814151909977416287476477006518963749817521266688486527777449419466173940835667678582138786386570672627539868336486560787651559260841028726496019836179952942295245983970634432494628785271073946257454704109613893484551224082792815250850012089985731830149238997760059535393844753902679928160968431655175017004362953823128565145307889558808679955721791372525606072638563871563163049985276066213968714242764255043977057788294647971567944596667746925455744978213080266702785047391028557733613251346725588775610508894220263024023370693592681849789149466872731182431131750976199870042720077154045896957775019181218580791971083576856819525272151847565832495612690620272650086588132498972801220801257909445733795036518257749172229332554040365135799013269340542810661932370674239337507592676439438619974126814685468722480950174642040298216068385546696681421727983431124855586824267429198718467064409300020083265724456310234557901563325414476261732354616565699460976656807778856982493842581683089527636805123755281524542876959969149817992647471813313972274936506166177956841133705291943595818904356216748423160355170460530410777927025588095293269166066272981283831189269504230373511604680806246169852672343378031137049759970804595890325436134265637823114266680097530358951606580992614719893563863239594537024140975242612948162883944410563224948458292712507723629887269756137280776905002671165615336962362960623084395666508669146018588164213477568465386907696345407698765626223949510813023490205933248028104092799220219952242131471734049333008897403995391620470120088020189573485789750979275720293917297863821875098209805920437134353761964355686629048599860557689335992166365592664731789559102231210563516800984801788663214475665062621643479250917660159290430495498788000043212362523717905059437421982911287737114350929978770304313290805578859223180841318161141634907029639637040783544445756623418520257176126005817073733062987949655860568280472406019498921180283057453454409059469235308007739663352150367181911558599458459045340078076092280231877443460500105147141499674204236738830994033523440975002701586164849462835173631233123930824492099586634526268835907845588608031508556246756533212928461677797492958947854147414170924888768152771019632150291190324884944559257481066400866069474886426894448580110256874102105087332935175768854462371750777262928461314913829362772607836021797795720298517480684554187080034261303441590076521924490346982216149719112443137051535758814198575135656203289203904545292467344895343591162322084990969000746421555377189868714194670573418446705569950123864960964762534167720352882218662362607558075505884387019070648157162223377098454162891707710753121934726459897240079897684057732051689350534278758276832870012863741836191389261149681322361144152282547493855887565072872976289609607571730388024110304299856287114079489523993070894835143211015194245027936794084937404046437254530250324227562189598849451825467442073091765959462724037170718150566038091548671518288269691451134906201805810489137037929947805908642332860162749782047442485977479456521920661328374596142894223081172134244606198546047441162543898589013096268494353329308368545988913482762251815113153188534272617355424088408172748243776732775980993041364448184995443779162877247674200919155160938438003024894434543093808565150201268901590176358311669143808403030016713247228293707726661907235782155485445199550461790845669662443822053642637800598516468658728369098866641926699094993582049042820976642430404024484680609835682943111015369390138863759548528805907055272057449651470922026698504740339295573062093195392953135360836211788886149284949623027108560318457316572853070746040158004707734815502133165111952725802925515031918643601434325594777548689790411404852143263110637952289580630563887231954435884176675328416779893170427206035094357372566289156657110889156669291226733990624884592535902028608718564348704753941449061002792645146988246952505867958512516377427658680157329192287326098812993244193287046858536938800845564628305141133154251462077432320629620653444657737084490680767794415535279235091151238300275657646889177206810047224392826374268159907477942660237498197631292307220435034629073016426444823819226433990190162240558535150046124597057961774844061857155025194128082657418885801831867653936804262890963621648770380313944697363532370107557071075705618915234674812145534998523017221024945859984160842162084887629448277689923441427459971466854609941864622791263087864523651547436787912994962671974891296909519759746576171106615090780748303025490386214255834714131563122457231181462540895327246020703701618985195163341008718776043246526884023667964148081367326548424885607871246788077998448112088675553171887872293833895667603046781315455442235349655354617765363791546832521646243317772646618767026749219195500803480614952136134976516483033560731960666584968498134323471026725329825939417149002597403315352694494559642386996376032970335995050102524013537727033151302661659932115147962601460121306644283150083998446672368378811596771893396621370501481391330402759336683018280644451627958205485446138016956580425481983911615882993949603370629707876476639537862173567691002227565099215296671546272086392715368733217486872915416096412893679139516992171445573527608550809738180092960212398345595954383635334458431125737159665651111190100604232926331535377585308564710260752097854482965706801183752521101799128394222338213093719349238281573520603554795344048068356019151263914269124390135632797300675357394049062114296936460969275493342290940235929957172640848456620982482844380617653186898703482311405713621686382207553329105603284702000414381919583149429970944573805100956167671873612365668316487011512186214670084162988002963259744719720410776995346284497751575339160525882326653760931654558005274614232653808362796095263566983694994190961480860406367518979551283962160891167470227055346580048241295509905636513884872861815395839772103192385140125239809138024876447885490943276179596839029998617207517887813592012374116361553915046215005227913893432628002453447907249461694889601725091758864122084712463033921092837104182641047658124941642479560179272515405780736058518830010905518443507011154213219673241272097473434263627416784175123547893468098038588052035346986104903043195578034778630620082531430023651649407403564429303026011117133679143888893736412998756212222705850546668168082393769247869414209421293486271919990265741791328556360008622310325106734319528668381622852760987022581587412770130220308919665576147513453257394176995418939965313386698395903265619355333348261603533481750785096464891324904358874974393271439181020549140710056667462834409037434787802106840416416472459984710534669893273034238718183857949672865635700296088522560995924136394153346168396413424877410456386523859680032377643179405146274398771519199440054928121309587120375497356527822857233419934098837992889642063554849350166448410270277297568909815020691071739027105870604907523703370243338357095642142668262453056631941842223679210701070655776677140623372709035255392681961067465880220064504545431132451810475357771576151313253097787233835417061375665315300101045298617611297702847314167850361680544496815837138307128902818485709343782039384990643393754183840238757368616491111360204653668473661874022029926351953810976952436509713759475696402838806324666208383709641428601147186230726661338045548544116537305101787249077822152367016020533479886160394442127218684669205752010801537893357884201261942922303502469061976435063666389182395257274671096558570765564391188370501931715555237933518494822100710620255365971224750064123606429877281885376378365401643754503822764366122668261359333395621837530974593130091436433656049010924523434173564688174026204587982224883316504960954961767040108932851245438399721878628379085020309116265878088249966270127826949263436678873170948767477061039149064048127277081838446991639465185218620360806949676410103699016821410762044767696254048349259443811941349692752932983167057786234434952542325690955537998136308272085108861700770533630031675157590232955475559670837292749288786402940302006275444470971817264157526792798954341278766091610663615594696293431136921079713139918864073875030262230429085617582242497363481063340275572999541623737598582827664825805981702257499009931945753602953717072765656322805913414249027459821447189064567046736043996077832626939359857205641707091389068470437044243009463340687179833380560705601073819313692907095160011716325681572964016870539575879969918725111067578652222077916444565928204901748328573024885217078033394549874967124510952995568102142348429034664887813958282191498578753712098623817496725812727340892698026614736260164284102553545774035840370677889203183038268960062404051173798158518472213462983892296872535192509384243713301981490933932764057582968624363906859137904552557971235559343182130452295932661630355730562153768357150113495660276730006159572507598471995346406272773304292654061025214713697510883429945790998960098239167399826491931363713736729793962550046699613936622621532063904044730435424569521317343533309767640011169720487197935769541325427737370288990575306644657174606501603195884750444234499746576146435314942221672357024967404667318249156439448433572117332726127590665989757541936635222807361359331227396638608987597792487030583905523446408816260357377505617752590646574426675676059970479209272190130832114734851670661226053932979934339111917199245155846676526840949140120440010919455187685576048852513413645650940122227256454346728565622737480908125809607725229796158688810108087164260445115468400875276662629813980313383384640877595104850131365786866055748400094033880741929597491283600899723591238387386765165951591260166171598451602376889692718510595667297646136468319207312129868948392941505917244459303091361219731072136509648435466560752970015216363099392304799355295620020345700821045973665645984960904366229899871370380984293900354418207267852749394797156006516989239520078806684518347447602789410333593867789581747393090350620223895561743803945340227441528058668652371693618191323635180097700597460504907411339199442388053246242812289921846931559877287786117677259469082151628272937886144779218226906150365087102917873969242572199234999586492671696285843522194384756414708025171926871286156986311973572826290516756248011401266074325926137875745139892344613650323527255836177488756487069362200603206602881878363817029410016254265482887119004664740773903166472250145536103782728961382727577657166732504590179916243978110558632400579461240352999511282891845268219271530199946567559950505412987379390667787925606366355115586368450056828654905157767069827423727453926689629899368690614536208885469728180195589979500458880630524814079687975401447058756448146904809247231047367828629465010106142716184270462386152688206028503596634519330231099246673327481545825977815176902422633306456791068859729909583413918710159768290632359867315965825785291326027786371993125551679474730546830230660941708855200991838103141495595736576504805573773886486394044526837877398701269878814428016990350714561441985781317808613296844727996363947783427675349254800811205806542961648049612609961362124678932083893317197479678678350492130859143921769296152130102395501000717843456715772104474453027181590226907677888574474387388955501023994698185501787712334915520207898803790256308222033918219093124473807832430099952659078114238466749283361501429957403873266797016891891951011223886390738624501223692470357034251787086724802591370286632573892842575043849491393128158842419019235138593936189579633729475839392430334651142557358656702555888291443437669570280428987853376367713407012376374311979175980608081962594783279952328963984203850116333184599578697968639157793730683899805269437115337446775401622182819008883685909821464574245987033255717494004244507274057890548998161223966659748300553184611869713933292941769067950078246932199457286040094135742145114900073729390069406680123004291185178143436773320114004191931270414502292271828258634233500370202328633574035593382612173719177133728261364635328713920694327107481859203693378186061987412619308270192067550928897295834339326529750724791700803895043758139243531690988209936420809923896180139129304753621988643188162453313276732284017861150123429978904330269056833712932276411439187412591377485148029049126717274358579128621691030510684972053281107369632301738046776721497820360399741053771196057718367468570230595164044527947567545764642687708752375181455472986846508443704841202371573302964892800619988026689714622908441481513414396804245837698452223597849522765774100299806177259383274143098299235796764508903127917389746962464935882538133187291440733048545941916283581761048580339061272680119438199771721305675211394213260898727162537544857848266713230786245296447710492084381239406890130544121262544631642484564212624170196439121211087832461616877717178203924994273718687355668379578856958146253158304476185811591337110682341073231740327142130722691179240087973717954895708440634192727845209065033654987945921233995896176235662624084291522291433548847597852279397711563807510195705122982527293937950499677882252205027159947324228188253419939155472005221274970193295481268889504644627992990356538598187294860959559175520774551484144192771786231289564320599586168401350326863755100170964259839519028613185859493002675476450784614704025589789378112229732604418285646939618951808974084311980813948028939230320156852387558398046307042432094270491267487593633880923683907588525533975046393006833825444378034163586616928466420022543918574227910742893437733039345803500693996805209604307257530520018265046650996703761563509632018689108137460586292136907111185557193922187729183045779612251517201743073394169457216289575026701906472849398147110452362269848519997240278730041656444970082688477341295912493433501502207742459534500599467831388614657925940884966901884405010435381908034949151024150576441419057523627169189059660461633125810923201942129554651492148207859909608583250795847741732297911371025966341469958346589183894872262221527773082715690222487885282010248798260458544481107213104687645357403104523014258665533923432250306995038154992769969479014528073490966682953595201444380145282017742880830319962181213430201234242845129627199719344667026038957072294445286908742891831089243308878892688022393745602331413734578149032146709474197759917833877899769505097179815229672789127753801126943020247052873690491878247461472092914899409781680453223539909536205465870278307881363510813017561141968370369315010261316214302559089282657692296103829477213791520606863599982670379025233672493497889772128172276562995974774471907899246451213612119898008059475531270480096922288774252850072668178888441723547897810299583931308843580810301631031343296847703320971802938476030361137823766919855554022405747134492317843077325312563058237122477475947897686507391838009089326290415988170974939382992540938011587694100886527794839512846527761592203248578959835696627793646050685588260838219107833923827887034178256561326721652537877261928050500480782093710191268558315239294378461685261277953087540296829033129272377696878796923359900050985013001819145355983926869148327711578003662675972544081360078446714985394006221345749968810101474380952795480935261119982813846997307857934554291394715521605550566194333569403991377105266906329232922154936711638267534795669501169050039781891589103519404411562267628206591201453990914127842264294872862000477700942106925620305788953517486974824589393814279103174386056040714421891284835069951870754480795204623127752440728438164401241167631962190689961663609329638292814619788934215873199802828202053790801810029135171036712218758032078735196215096112437043705092300359008124282924392118897785048656875894236512798184973160349300396006595575414034390588923896015165394525542153606272956128737929078332904560399374569411907264704855584156663073057214859453384439564509727594940362345798835958669722395522521944117655878102906836531904708922731944394325969154433958227688546612461111234849930789719659308737536469884910617071453289924390619375256092906847170178692026112802862758720370599995460407697712555519292575071008024627785154649033380879064071971137768965386325928872340341236137671773067134583888485547239417002973630332054837996227757158746237798457216303975150238969260929201414628611263873602166480193025651976038951599081923690683972153076286621826679866567904413699065274292881957477911637096673630149476616115321585212219067138852189522208994000859545787913620592485096920128059636937902782460839581385753557713647375986956361315053170304177252232253643640286453958397418956282128110024146687506424865410188164475055416077880174928365485299378947677377882561522076366171628710832732354705876474705948905974023812360438048622496240232844295734662412300386678507858596742504700091204720969376533169207614252767381916890324901517117335095237818084339518459638975586017850857698222217492842266542601113615740556221860011723217808221090388524567239918452457012933413406621587925129362010890894954564805065741232330410535335392355328326232037256769260197002573490250105638383268576361341285703221013896917719704458974621805419938459744687108866176395412288747963619324154914931454834751739203695349841958341821715463552119193749744377426666947538307560692531803889399466304298024801992324037756674297865986287847524311055222512411320678245634465673326400212969578508683499143174242365171520596173124237219839769144877717790407723699681286589549090828515995523457890743471046535512692142278196223311002798907442680171912179635418090246188011402091143889264900686044285971705772389544676921655061852907063896734186694766306952127478701650734874229846739195612902564223224931059408654720474587960485989751630592364393939476685736075531937532673928180126033352812075217803933831883316492077884196671570369523705618126304854168506831090138876566843081074888749490548455143756440095068733065135208418169989929236277113955777916368460914030200604657677293482296596136035860904165770071202746859161836982828450490803223084536170804431273650973499165516392599285266016011548795923293255106769111269980207915395972646595624646264382591071476114059451308906166098956173106845510960558830015506434748642386183084008449300070716897861186985838924894633464122101425997686573270513262167639740202148061419542849025161236204421160469852476257829401128818830877253497540819427259515657470094627549007519458668642750953823254687385189311732327810929491739141327819896850009045357527103548338589887125071115459670504411668164919193238975957472172918320998560780974623239287515138435360979126922439722628574373919505621399111846698161862426214539598502075291604108341419619291443256170484694789605916247228314025436616339928306523842470989147531965197949894510228221857345395140027774035509682333519414855221785550155204763865503961671448841512246769928718398267536485551816025999785664467442642537097562777911802748355885155887164961435301198165346112099807665089538184169355675228902974344496205993730086867953140699961743400209604855570700688296276357402103422991323133405728487761715816062310835830994531046395491819063804003884454103232044871232646141292649928101731563720456404438214129883729957400691353821329042268233015036885821388839653086922836819115526202253598327161413116572020889762065511670344186327543677125205775174795147083185150768366565808641785047430946874160778390065868104063981629444672656051369653024149620084324879757733308336801584969860071641004111318848062570863109074412467718466184279241142683970087394330390167941877484317528145388076206076909442999660525853979545398952144834054557575982572783662456791191400197047348812308987088455303286478393125227048053670806450004053980378109273932328653429068522936352835818187940468798297559175280831284588000276089407454398337179226763067222792071113869704226683279781885540400081102891134477751713206236734254284888084513305275023514080543531578018352870324221708215022483606718223803164562078569855079350812579615276047007061627961264679381012937376980287741295834380018738646758566291043252306592700395941509085922446910759529027593610481426142829820342132350556068279018861067771430445723519918017459232425635839193943978340392624458266029997273951078718576167145065535999137646840180242653401817384351801390779390363619979943043371347786292522699445080184492534336934162456793329688778782442336196787770807951703447550782511977858948435016297397869865625262773259389750546884765189758649118572031462616047960851829291047497002676876412324323566979852917869894430375799909243892440179773830743346609342620684958970174676465989747602588385856439438296633384235927642774094133630935062730299946053774784904079265707129467248666024887893684162137622519520811679268622551670296394023949382132238589734918914546361459023252715598443478414535292234282234329486176240160829620273695072678967153278380868042210582717686572483173086484398132008326189864418675968990638884423974551416570020748086714294679799541260254896377075720409694201499663337273352981629151117700990442248448402889869937186309535354801481149547856678582578306106757896665352924049150065598751069488078705153273546727454711303301948935702215860811777079671676579794282221415630377492401026862059922274653773276592761806435124286342309177330711505834152828440830759873368545701979359633166015317505170201760108959154819758255984669785487964538750010654659482955774943404554168103534723355568510416382763483887015852289299208967928920474807824836023104307126023883352229760100426563529660610424958969917637537545995266741486614397919478176856786984275066976778512127491817898551463832563935166036813210262225077674582426583297471947786472428308004053776057652711358918487879082775871878779415646111411647352510881951340589161012747925850280332422238866281968223371484483670253763613584104721648023903334687514647434624955120403383112576634225599353892973225037039713953468130690903231309218559604413102771527987225216373022551236612094785989495270162940247932936763541091732886997026853386320857202413442844769132101009587539527566756427965174447978628947789265805710597367048465797684628194044772167746104857366032897081084645723411613466608237682966009101329455794500716997732284338123926543415025504414205101189159849195356533335337993463750561259438055565736987410204114781388502938236322699250510331793227723702518151398611717049292027825522193751074395665324610977414024703788442275004362626858623354665891938733636852736241272222951696949338535711687907226112329847731662259265998226317573031479293635021394980244328939526828895250904459641523586675216743411416973494311379638623036166960492027708255126238569879502037203339216362608645840085793708989514834685970372602386265717981795966193500785897558933179447278959591512578388343673626327920760903903721407857209374610535654511832068311898719384908885752930743380342344596412722792644835971838112998696052990972395329303645846759237628898120777381721421500108014133565524625134664542139357591131677908058900063544785832266697017035644303923657977640127704863080189921185711780229018360354275062566688920948643156078294516104735159801339327533785777047057747184219390504959354755169878869920040777626730976336732057412300148033921018152729629591369268677750580283643690347030182386163641768768158691475830037958978672095308136630133625955516290624641075760699593439475806520013272370481865955964389654101715025518277342343186908059394933044287566081341997957974121835310946238749540423242607779188074844346657417951742889990305162273083548349385901811502147308243851653526830156820223145379858628490328750451351196692163366857072749928484826978716707225693945987926585789930926811109139721211602983158156444834025217046456783722339981367601166298693939684760503833089799602140085418976854008591585206583764007000244584652219305820548996602496413971996049687498781498861280414573105760416034640940614170018712532419938582207042760028963427481804674712381742228331974829952937487170750455516183908370585034998631991099444757177317352186613920842737876995126995076281756857459480361570047662480895062785255178841860381087650108409619881701949411342438528124572003721145858265194083112633487128091538115353339810499131306179035559924878640001090989481053330066061544272183692941427699871524335517046200759494571559784366890983221557663624371981386326013494742324542164228062059020069601547074414303418008040522803658715526821935714086484085770916774108443040479032398820002993021185378321901407162702007107025278231329130383727946458208738604387500666662365822356031202550031558316175447238495253674250217775701018341381477879677220575813356303580160508917084085702093817063999264647939097234471912472345472849348379939831301844142459009369049793445842288890800527979263027614294407298698916559903838671963908043108670953825457608871560012186699190300363803660664910841140964254609565455216805616499529857086509903217742909703020181419044991389207886057182341221281254909230997663063485250306349918850335852721028728986072031601579064354686175088762563867846286249792018433329794979175167878024010748272791166544519603861920529623168639083793973522948854612052872680023118169074942893899206985009350653086499029985708125107192106259213174828811704156528790112595969440403615682366215297751707696770369723540054763623461088765265749836774424824966301367722753726253845439561626405379969274516038856017378872187666805227590913292339720464754759839180943293913001399776931635464468230849222464780233568922901013412433881708951231949325581879572542225588560986757826532672900110084103727108154338936459046690381366449211406346008181651953997741797482419508742046582576744506160304082121868831332448199577311123480363929650494789607656129700588622959859316669934046889342252123475657352963338937632172650083317703633572447432530586764806953810181439032409610121248051734965640356565125538980956345652406408125478975969357904454077477448648960716298659115483263624526862835006129833325558965518213584217968166133378920510743316425378150909170446121669204617947480296114899930465199820489548530526823088577898302985478557561765199624370703463868110592044261107427682375251522560786408147954856629414198444515830109069250413321026266737750171066308897511719608670949035824607546714743760464043871064271541729917484244362614268978345721378948038755439448696528416874873778241179215194025504915075580908377563100530781323076098714630439106745977945859612602475944100900593322852835078135218752966287838871053563879015815036254327697788062800481766809177758388722251745821384241298417333743855110456732932384006393631108555367161821180266210356010445056288109200143576257487603321992934167627263336884388557248677557075189696983746069248625855774840291184186919486654841449543082455855047957533513166564952694124906792728714564147840801467122171377731043042216013529821289456029868195298230543792915639929786047866269625067513561240627876223969383725077348770383855544405092156210778697775509977973357756133827966828558955976276442589565575012695121163540796619911797177579157728894593072264089922428626883447542962800651516882762063422551701632464458419602067587769554987186128789160438592093290160283985000942010876677703288353316115757176783901984481397372671535245927663832577791807098584588625761440748395850652790227974401471618099951938883812592433327525465697158313884007189860661080269199837538275721263005831376253854122532989427472525168002680333943143104093264427500686719622466401085951513054041663888881860795018606498025332909795786376251466753469525982160285881258379919520815827027574014829379705404018986849037740815106168945340319435221235445573898721864539080048452102713989274167707108798728523868034361088442938962171456340586974751014844517234185074944721417748405325773647324898542332132085612997133229679168007883764619284083985258589849549979093604887253100551448981444206195522995680706544032253301297201570865016224557452559051771813268288784519294748112831787250143260782230545606627363225099489024041145083832419837155357392380121995575638005428961490512385366041738987477388399128679833154981277644430193714017556433172333071086918233282921278785489878802518328121349840604235184530487673966557978628382020491836720414843707053961776930123824840402782194846113885776631533243476477753241416724334218095621470649793321522243310541944364019614413860341008757133459364989174124710888627050213222854691460199184703382253278814554493724628719630901639352857354919079432661967706526594426638554933547718661338888466374781777684496367785007823456254400658560423853202557725771455361287787074542241162150892765111858347983066849335157967315543027646559698573737945805519257366608648049021090777261016486454240805622437295592149881210814618203973679244627245192522567227409020752418509174253073728466588615854731513513466042603924632317938475759718969114196525496378097172437098288377075760470261608816850025038950401784579197234489595117530746666409410145899520291617574335548239035442461336070987386260845424528609955453612618162360815508133728247685018372742646461505107423476412763686938922438732124132022966270211694164359959790699480978478027423469815196071735532665746697600032555289676375314559174300466649676505024775446994913353411422306708847143363453726668901576318518517418677046712446020997945878346548913704304549309885280711591289192443567655712840398112746311805928729441707634275688963785071085383308363835132860405236598552568770636462603917208857337382772741530561387870814086597431725999389636140246144512930862372394101475889830009835522929181877763438702491229959093847818580944986827558410237419852899427183871636947720547960937646547242332438442089165197711465467305701444107727091495895993557851781629076712712169422101178880878974983237664560793308149876258498251298983680009096613371390530718992483446933999650853573336695725922346482960371426954292350297932273876009389258247175458842343521465888726004724072718318990696931943155080152110596588575049236204169249374051147971683750710198369771383690460708231351780228695233595405970274160295051767192653724069805458052640720802606573406722972697469351608712326277587496243284594681498307670318303430843203335144922823993968198938334167724068059842277943529323167775544989254256080112475280036071289129804204436399502015982644095129652472867272800077201850805635687694545936561178952798482773012891720258278031627816975047226127874546624835061172645109428231152883453086895983953727204730525928710207353645416752844373613932311864983787499959235667758934865046635074538165222555837873532160454403104418375248798461402166980139943764689749918782706630927803271750651421705118126067090682533218649520224493863273903931377920406547476600481076632802838257100647916237627659967836950065531759577004432531687393731307630750071041071141634270252925105517358364676389053949909319023248148508329732266310864314095252886646300354153518287307674198147225074462522915344886764609283981405659303843818104968841421555253724805706247414296820437815134073819638546630670603348894234744399977609433917780703875061378189276363662632251420469353424222246666311090311172137633671718865881530098242420997748787574963717045273816369065212135050073647811678654680121292376361594063869581010520268164253464384965175692666691644915411085752433594866095956269682805410812556206741562032393212140676199984001152056017554044942631065235429551437418009729221948690693222005774989393821219158605705190212455502278849282750042809073401329390166780475854446646329531109895444946981346366827898235940455211419420056943918926020532420502503134385640402951794829355902056944698436694446254127159399623002949488728710328670349437690673907909092700278462866522298791999996791581232756207133552872518973359207206720801628793060032278012574742521311274837739600155435663468056253765484667192072266449842866136504638283012236270547065020496197947974498544293370511643851528606304820155367178281178828876707068619344537935765306965023656630660598198745889065913750302009466925626360906157172333831634619908383848731809755309104954699644664208972424551744441564449849038555630596719625265224809393398481106599964621794378403910804464723592330680432963596217698427321570231708511491992707545725343419836618574709980835221789956536715785163342495606030441151802007072650981882441777790720097985850204205365563917311108066764884579389504183201118875106868942326240729320401215457179412383347434977944819942193986672864897797446140308818124131904671261588831711631797034869664759993188503940963123650877073846283025758060385531018352444771957369825826723490063089120137403994355285238012305659345025316741287660305213689470438336502479666873758376153320054551861930148159958442523249090633482839696523487195202978142081545567688272725423771116188583645030023990709906760561816518786524091456463825084911747972284477829181778075322805571921734920460288616448390078115985995365767470158181691630920906602434290944512412013361773685436340050354123859424121986222366243278864820189623109871497375710242771182978462060872264608222112494296357045711175287306098132678859135490772998059060864339973995431464196418864978262624857147933152051441827542177085551046760323236725868106443455048658662356518555572274545957131655780922243070867095055465932787025633249958014091472845791410492461035849340632620215080650252984859475205853665148631814401028771012607134167135003745415022186847184314493484029024650742604220172366681332873013312132342810065922560346855206960413074329367368229792728900074379779668831061399545525661810886711724652754908530906399891419369178025813306721010732330574983543659403512193153413528101501900158829515799800826306012787856968616684924792632495530850312398655672802406777242353892595035825453076360178229551151569234367055121759985710334260209607196889450073802520986636321387091668892861268651832068659689039027432250764839397579169347293730301091446848826585221765427213312393212914717393614685036371447963948058932418665861423083681304816606798581347912341198623946123602128083174804353479343251462239481470701885292832245270790275677978306350652911485582459666247786614844587597887084843116029487386337723867863479556627429330250033942987783484140370282199785648726613539395308132036997053964079340799992311708597829436589292506324735112703729483923526017621377435976702397684829105997886943916753604590014217250831670243161390880584661139230602979863451092739149741424420187577032009602333354888535010581992096231836388729067052666778771297749977478719240875587488314822724322580889461204342555365335336181557744143149751679581377723489436980682348456403213682184690067093942989625121886690683110322123903121041217144780805168723586892196973288395202225464991240538030689162360563245677721145893001348444207283682354147893155967422207679120819624165479947534708357566491501713436841579272137247516316018757068874869372923100540545016857244478621861318679503738277927173886607364097447822442101588061443036296071553930320853748662573425652393788558154876661784181546237192903128506195889956630295782180540659033254303088176509144344176386327452383514834099718887068864684675829751969698976047226071793898548910091608721815417443371586253542563101565851991887708371656337749822779440723447732806299656583315930268292451912019223523440827158426527319376924747226874827739667708722463915172768774737703652857592222558768788495021778489444047743573172194164463938367871302220824682629103393507436081557622315236014828394832344977306874126398902625946475116505118062540675560121416367026002291005171902666500462402936453849124456531807556145239481673351692035294971501459110554091971877370803920397243341797333348609708485547294752448415035451046029592104150583465835243362648219006475942707075523413056397261765644324273530419173723452345428595678337383029847984176285887331633710039966088411066389289185796153940998373805197104407437215221811339956382974317974914766997439472217495658623115371392059240599731207841648904017974483904181391407486049341298675210431197374316610489250208079338978161339009795471090139242013323223902077633163307160057290140155993136621639844687565067782268809232299714490495868475237751341959540078881613861770498887941273814299173283047910198947152460120618908853125400496800185080765859822623293675635972511263582312861197273579277108661598900563995990680437684796643527821511321020974590589475890557961229906778226600870192244579303016758559776688192587408480877551673621042319547277100131578012904893239658538764406471311004563009531440537439321765149816450787665179056601173437792641084677385153045074533527664797620329031174071164757631363030299452889118873069124200375213247774216121827560659512985454929574661353480376864666397649294684551288134030491361771291088189242488368430648439179657324509560543016814936237114426355566281351124964777681047215471855210005773341861489522035460781688141044714228281458450471966941492589643565571383736519312789019871853002054242544651797976556352595622627864239765943234394674967437248864147341299943242760423668822062852274328471159003423661411533639984599771979918239717285369038311243004922154429402344736462654740665191196854061671308874640157557549760333690763526399740363455665821039751578884061192807518903201196868013795880871676510194917509435270536113106552443202025397836177231321979624735550950771067095581086929128890102730245237442261496707401173549565662748402727702580627747077571804636016143430463357331734245698625170627496736706740976467629610010876069605188724229069813625180703864820064795181638908060120418324757831021761634983892094424141878856447561290307813799279382088776905395057846353707959561822765765163835918884624334136303588058403341010641958824052131863103761701898328991346320758660802963520890674654682034006697854858790290671098277041435901115981600281415915221197109519545180435835441077436287315140584632755108861407423539242237891009729431693466877742501457977150724123102466628634972563906871614678803569922429678770225747206891897936529345576831455290826393363093780241831749253237947800574674443623060742085088691884217224868402623379188189564142920789458119935297095748305111861951395491913639706169040386461432901362460635197837387262501652077815814210112474751529160187682281259336591198465853940780395859270711297793423029760045195168179154641883636473236781494163527979825393664587795683153944999638965113176588994326548185247364121769287063241810863521825764483601513405780803427941673316617650069126743510235625341072350903094166808068045643824986828331515460046147116460702296587448133411347211969113321616547240848905002795252362883841703299272345357148875711380617268912254141438265158461030859443185898175570127764153977967525918052773262648573518848917438713847701429623375716186186126107965418899676801527056180019975449225184290249462865432110444679121499468915903284314288009581934842478593688368850473193320258005275088081338909526151604828447374957121645470107224675038545640019711686905966337139941319917295573331387185283692496962235416239378445802904845426681799353318998140857320599713424303048186437068534704184549474892617061461124840705930329109053846133995673330276608384337098164096655137964351848298495196337754682547639491291385022386499493263903927605302583524225434076879249894496470426583745296946409522428610664755482332111502772662154058848958541597945992847345580610511666293304238146710537044296807949056857074753597356645494552910187838052007571749920985352198090252882295121885299575835698034082410196309473635388703692391155172479885536963632126507070150089498575769453484082217212775145318090877702354588200442014131744705980933548958774848983497519578424446544795161382795932614509073327728939340869917248305434402716678338344838500141595389232284377972595349435527110857980324375578725374980722626431802341893632795657457288872401633136353818913362699282957407478084846006704908997188582660278211314479237902515814352289078336701699426427319459090140246652089587681647381935284870567904491100957827228740617504229157441438742094967732409386066782169674183253550158063742284321285812055293192917757087837680041266919029674382879944584754152714311808609932266437018168394562932682960866313265535189069726341036190235097947894431893705659716672174923409546450822156688846616210522384175479542204923169703341105308074111439201520135191685486103672042994598721578096664760791721349823295604285368131569972421889108834088420094360669111382996705542330409531667371663866534326321896316473712788785983321242798520857620434975937050383325076208306054048857565582358477542411853453709661463596377711594248758946741260880170424343726044047967282922704150228274111033588466453590728530495036646606000798966402533002681852345996532829081536839874968261815754766531916319352393182763509194181236748999660484847896581831403428816693398387845943315753807547737843626481168110259375459425079915642934655814480750351554648122707811305490568490449499697277956500851053752702188715546256154789891703775982654841145055213283292136674333798662789491508851728594629547346289710167959590215642014816488964980718323897553442426576903257594233679403484241206854606550983189597894287016082919419543355511755696278039430340958474695452403319283927894173730662187443350787739074707662021395526635834407935810325242564071513912848717680012044069856909092719451257695769665723755591548332935865003819177533806164613924414649499089177456250981013856504075562119889587633244241100239250400068206725764297594761238703071011788360960019591980873667436477086582849970161275149099465697095761529727884932552431403092125040361221985853842473224597243899375642542104722526575204863028905657194171775723752077904213562563325637992523236753298326381596849547733535792449740700497050842160157731313650587296830445109975643344168133674585073413022022060811209503234492781255529433926629018941608755212175956608918797929241689528270552373379258053354242540908736333054499218502271272217659570196091383488779962464551170111218930194677793353995868274233513875060200838443094277498376116343424997238860949066288435154049897576715794232524750352015842428906307146243348552398407271686917048400536813998801725066950846719537921233561781996942305553237799595672231340892286244494145875548142852464253055074306301395537695199937709339601821806078055138284779678681815636373835540280401855162666267660765064041546024905283356953567789511353380788087214475151506484186744751219783854392218781142563480783395278319712730424218613093017082339336326050823837671377407127051812994576138447652034450402086638696716057194634491996515895923957765815626782882870329524790424616655349922356026389679032692232198901296167918692044428960999420813217030465197805794938370169477280306754764373556144763662632254302517559021464598498921403063192491547661278270733247520632921955031341411350016098577524141464468200339914122017580359674373499778112841630805155781391538257187015508550580466024550526205719232309391828552221733359331134585745496011282833000983955505918378912164658958563275876734488942579072162576847521301202901777881264575137176332022170197263286570694870942212200481959999565653293354706012154193721048528491449929606603156191636687617463739934927127257294309978520275551776974551039598481104517821370332798974938163092680295492214560037280401060129408479735579279500658074168268263568043058951659514251120006390379102265940552144958770449611579519306550618461116884391749877765822546534754222041911131677222969951399525373477978024316599543633919613310688492988161121964798856660488605629095614829814978500486353768713390655412317779787078546527059447175838617209533486640185096694328727054371440620214109440323224025882668642973873180531845887162168304099070221335034487064120629849448942010569904649090633362077441745500751353907945770572975052548468790024746157406114316976489222988941823426135518512558319341690812389834515248012525671689133222327032467997655534204923616296617248225368406259207301893913580300814135035185025232884581011978543011635010267515950039815097918823980069848471973068374024193645313980517518203398913913825171878260289017651316980674922052042957557686394446551062018974442201343471242082980164130618354392248866672811350688875793762098305423598007895901699801923756802646455281811761164183761756694563727579025833052559205859638459656513412143601895395976499805091273561892678007502917229621029743167004238785648247372376882637143918287116509346147889338797209742466865682753534139524924590574168078296850009254382684089536784011584494635632363646016499251536530075204857259428110763029776301417386278980949096445757630295970770600222326138533909692894205050039841065400680144369896891869956381250586261584287591597185446626943754230883069169003546915102907365368204184703082375596885352733410615144495808338852578771029430642458312138317066769823133944628568303161003099403509150456237163766559219751939716472123724699090809078284375599394418993184206354640174578439558589272008682907545880519093594436109632200721553180026948577542087973368831896971306663914121388090009914580969234276429934241411335931365007092828712928425131021629912722625947532919088050405641458325031481426377183883522593019969138241566615345400466432032930170995242227911178153704441834977538227153970602081749510933512285452054947369523287888741530491094522741718921675859708886956479009967216818394708970183150823328962814225716391347233338690468299081635054018869606265872869325692312690528618515749210097854397220598352008985632427738905738048654689270757304328459691712447037571319620003571750417918115578191303555465960827229101160758224519823733935809483368082076519702724064960803778136122266600061583630200107823105795903335016361166266009307113258738263735331363982443058602036561674531934739186827352323419701976361653295731247558536065750938864653578807635356789798562075546594152240609193167718604308622520850355010495725314334511634173916074050957992747947226386865977058224442793988773118551085149512827847013120574685882337670096045095664999856504850674350710329018705104208444511903236110532308816894384016816517493435080247232514343052930174149677479482680972028175037118520843353566416514964150586119543426678314646553597661416749577475850753569741064847451024060340345598247189866450614895545917949881798912905264110128229754815493700863301312565580690080840939487624629057967256063793659152311343941407279102200986650861753575987162469739102348588673407303391988075538153342386542449424437572362972451027533522615764839496798179796820879631029892212853599372705881039158145169415781728799298648206099604908916966811383821330142965589249502207951745747379968860045327929146845491212001179169433427882047879131668477725224100686942242931469524635577866973968748187670315427192994442329353915833385108450539846441818999020975949687900923733780764819425758498904112573107089473878607901653730382257438965893546757167496932302803141406526298674150441412059089164310616598962186064076357071419818170145406186495689990195618641739596562228533541673729523843359148499149963148938394981350622771508834150142069918385781801936840744521508631600678415887671917638673751186397610304259127996302189693186591861993121843885731326992866644719476465330194442869302720528596317054440078991808034703022590060492573314890402908270045852789064077689071323995406039262025899554689167549681294847456882785365628278080418995337174462535535995700738989403675845350519046880834242166266774892268515160104053132506488387595099458928769020873547923988578775682240535997334720227874091855867470860809916577909183412599055952226617627357450859170333559972820318723690368762292428903528534195304502881113578632980269794132496785951271625311077928719540161835735894991938197254814907096980559636861399879721804450411197642637792260481074907708465291264503398777175689882626098959563831129091447078284887181698618339931141439171975946573478433972740124626341297843639323080448986319676670423633657024678905726367599118110120133026083941024715278685200016040953204614364977327935078518580732239736249160619943785123164510579361314891990366240283637500313242542054254298965959796271582862143900372621051445137240326691406898065522789600147148650403783490300680333694358087742514475091071890577126018274589932349664746294189601441247674923442016957873854007075619700439547313463764157031421694926663568986306731565372001163505294820701371052501372716448455949452109709110344417087707594849483248888967663138526991276536189110825033604756402753057957385619931311003548868494763078684035449285273079407431421299127676162856392390537983459538353217335240968786172879739936738536713464939959196943050995113315052385629513522529340885904984966295788232671387002607400908356157017691970105895925491842969522238886509720778754212445018512964064526778539664275869188076067086244775198328071769813791785440232492271149515327473521872751077908229924544439117280811800290418920543816438210862353980264569859125890677477283982714833458786519906712899342617776736947108577367801730224147679610368540096035759787940364586261816108484952382700663860092686704379470613553181050423950968162420002550581347483113476612229663057774032321734706405599519593073101123744375465549201263967122964382427194600248040759691385107988776702266949097088276143563426316674226833879816867784573482655398658749689361207034885087967268658904559927470690271721547198431212789506983971662135627916555930283568178342672542757237298362386294894205084766190448655358810024973273701883002996224382146538643303928133119358650860810968173227237935016551647808550589140309901335125355927388818017713551889224416922939909909666204919117985257716428674015826497562307142775836065408469883891214720393700694063640428191161637413474671519256298067679313744915682513999856088229812494089542196637233103386035181575044729353222477616416143986841534060991309908414462469571080729658119127894558968306826992984638911485911622604739669657912262275315608782550061652582506921899298771434504183079549818557132420368234971951129195973221198461367153614571778270848463305249917751685095638382669638539132014811033129372010776176401143508778723696848895989433285021249066544755363939566719125646991400210518510140988113934079713839145032124246904517835514674414563323806873445002482779226423716177350982187999707750677561564612008698896389461508258880655882437277721674987841572599210600035165629058484045781595574814588261452482539700671249433433478910607696959046002912668612362809142248168530023720107457960061710989478663639703332042230174731413370792438429195363162289309064278932995827614456287534480017406309872590317345409947421995816802161753374951049499188662261670293672130396192286608807625860552465863905713593718643965312488353283431701449436535307748643363170685691004152624401498209571440956529551282826182912388000120681235312315099843265772649596091864110262288691681874208856122046801889925194686510694284858355057933012102667860426662638828517776066634076444432408464501047688169733393166138211520590674189001797067057540244146797697427784644866013568487477586043701595840953166542627146928513913046354894070564190516090847488152550863986640338352469515242194236594143591878453071230655513147308459331351723102158579951119455945462405359926248748536240709665137805604437671949488071668083835521130776353637552806137190916813661578474923653952175975763909473514863873577956557606580174873059427526186111788439580296270523923942262750141164001774521056582156256288475485409489176384822879980960640403865380921224587544337723908421819449773787423593219830164131844827305471736107846295316637687682287935727047572248003944971592750338432787054050875930931096919400147022281426408251180007688381395484917055175016737951637573190406103371974538932720205051746613802148991258846457872235100324086127088072782620641099465107944955241209929881114818891692219415483470456110389718633264480295033674061827820118344664696588804476927434117857553573475229617292156415433104320430051937418201417051198229541392239729855584187661568760858029434200330028729295568291983959675799761893558319393079805966338385312270783203536177597494878328441472116916269317607095186848249476229738056958070741978520489251221523894891309828746128980313024647687168105182988509331107896841097971436722148581001688812878213385980253657334390521242803738674067449678633262464982872467789480573305128040885942548021734099329726379311281270774124766399323054678439116868778144371642761976582332470476458280402758690047014645864013729644953069905013382571615296671451370324519574068022923517033203813374979804618335848270022246491690061602474926847209813162946500276925919815346029696427667292404854460947144919995059421668287938157514588087897923051043423145543694202009628450302391390081116190515419827423096557447478167206266001125369641293797659333740604550800662176250419001527101609517682820550347123148527454381068349061976619849847536551106260837699227852491750832372415772793926900091464828443657933079302426644708954079673904150531662494075022505447143613372772697531138778768294262807857909815369590830654228242220930285270956267711493172595954858806020679811852706297203052908440766083748655216757327494902762847741764299198070836195841437053161034313019460312716663341243611070476155786923622914953567003800801000051863772267676351035759239901586265405610744896458891860382028809027610401039912688244897656946864245626819699038715409282117736466230090880314204485524409842552850417077143067626892446306714714624430817091030046915589338821140819718529102278979929735411540873769386622395538106647532743423284682964519273987211438249870596973569198755096394876285707515474920827159887509591807195334515621147333421888543443434301926202505219297869680600569737410103018862088236928538413183948268259529238489069797627442083341410148706863900840564784655066909597058748687931479965971031604979254694820631001993825127426506267418334053345507982921854666103866175541430097431297275595455155565593025289124912123837692457701061061058372941481189203596971147082881100736751330065437262099995361924832575030302916250433276485979322235480371616853192863625617871238836483150243519847785379308841524940305577044291419076144109876180731838746575114406538361143026206952813781053451799056808908743365537936485888100082545674908874247162916394544622981810020278451821528388696181231055702305654148363811502734504169718417286280366822753586771233353364094179602487680490884557489057343569372176694749207235125638717238036029848560612674219229299477884645619048915382852560882937314060811997872488129581829275419753950428288939811057456468198600901658688577082941918721648606301896560987795607012266739728830315600563311361543972962928007850141158490646996064879145122561802701200594990479747182665751088186048793431017489180580601768236155341960309338240092521251218049057022557711088779724786710350887301959955309639095707268975323813493801428431862700986252165242021136159682533686374352528960820833973175842646502888041086944533435251934830874428016643193876574311614648710105426548686437401206176750686790884223820663298749691230325351010443496037647359332995789200097117991424360828721807858561806712042862574737518419564031734992739683677513060199689359256579576712602681397555370554746040199290705994686374048044589527196353954670530813632518221592812096734914981052184466292946644695263960121661552282803160111328885713882327242309221710998958925517710323978011888647048732746671177509213885948016825458161347873988454825821209650624806039146053488921975786295596648153603884616219841567076498189894879041572488072079749064099111848361542977092576062520430559991699656897785860077108542254567653463696608943024626105634488771881355025663894817799931013978235644410712287138575291413998455344250568809468899935602025158940309066101085137441233079106143785393532341928594710218146836038597317685631328651653257409361529031570293481197842769711473028129583293425470485760973317811049174672046043750367918803293401326972803826670333095475778411815508728403431002368637795086330950612842579013887773097916634035991513221006154145808322217849976288934191988900856303411256756152018064509583953797549490808720906685567920449716028098940744895448161343396338518746831239317373645802248709511227951420269385464379523061383705269633969500189908881262179559892651979863885295338152649081223857634322420249631020129273621951193465093662785437218161636547759211245899143022144756557361157292321912134760072638070689578049660348252614073064882486316055930483976881496477904961952392574670115559233525728048147373549364947452942767535532307319828945982603469680166309489892928625352259587021775842789724031005066390877531075077326266415966673850515263569889523413042987620037136418829114888601737017772098251004401753938833881144160014493038716778426763170895436393873279398702708708487557799713524466106868982738127469977363549867701408825617560665511119180433726817496385902677120926862613060025984508019794471415588136373638313951774340402779991609561196211838602209163379548451610258038340108084395911650776165350168867146524210669536022941295600934598477652322975832929716790558047912119383218043825850662326232803574881111384212339586244759598141003477551277865451683659260719113959783123586590880538343884275719564690073496846383076342273220599110382305645519776368553394804983933825128271195762742932565453688698724869560078935834113703897558939132749039639883208558719935732891676337964194270684212443749706331813534032213559423502520055152634535559353730847750179657788019348757842065569040815107244458746896460710074545227381393636268482290654078261232955364982477536284579433346108901181627516987800877772577174101062972889388793175811201330544731274855673536535437152860098552690508239976822709670743179191947101931853891888217330068343271027944211698598980914816526184567651038128399485422061173949655138925637027913801055525302134407923376227381918826938852125302682046156041249634025534760042912339813815492016320801107237155879706526126459971226704516217675300988637568418131605896430199296786575274341125416142702594105409902051820982674557652924165409704731249272805611706627859473880487232912249692200222365547033054436544406793943984763573433920866093943571463317771430416022068492577777346817406630357840260477820529627061576176657843754891432648752781870922880589520369839607340276966977566880191348771042689202805797939721960056978178510419697370012041496001429120427820869328578652224550651336916064291872122046823902309679881672555733104226548201399829095364357123946063677191725052402315836755520686673677823826743087485400384094656659501333199523461247096272876740396443629057744429179422156415601297360142141860972348840826247624669177439335985283263322822529701306661602989751338812521914878251101645456438084831778478722355977015720377077078099767502927732806135220114923835340668249207737483093559513960692316504410940316197569199410957312356595394963354069522422364436677567291636853219934885908976204227515501082368078168868157028011618142219991260187385692917406461597311273600433371022762777115811106690399909481614191715919309152250343720547488174793474102371849167854977573389497422321131004054572661420527629097356437618048823802136868606560596483821241881999947677355399278758710885132234342021778128957343731197754948471380231839268929508659846999771485527579424738430325884666328079961758783591830451023682750871120882039986584070510583031070650877708488972487098509029747111546393265253224119384384027108736799939780029504622946015292387726002718255600330244239544003122803302668434714243981339291267637577879564604001241286107267616348796830847875244699065455815666962669192686231378738487459124117463624977499074310590236781459976826013923667388395736691965686042440343264335925549037786714079240631040255106007229421537769597924848923992622172842240789368726139295609019027479386204218601912241538681337081015672140923788950494793231004904944676800480578160602631050581247815789610385055097663914858649782839059682482205570185318684382162888743374065351557993309861783020315460888469728077787206044424634286149851865055117401985840719075113063015191911765715442226425997228586328288239495120703404935095650804795769091943603576756905355539147578015338368612342840410949076970505746337788671015402084052487444874261827489265381306110774634691965720616175854936234857751239284182627663110177793395053536058894332872224640502891042738999522662691291106996456885539872596910147349076199885606597034811274821726793325201095485043038134566565973644415239417615794692213801121265516636592491277732159146779020253631183280092168976297641391485050067835515255546085255895331177769940987064212882995008210544600717090152387319887294742004530375359429939064789718094361075215859709892706559467571549824613571966607933805881802039936559836173817355112474983942984314313364179716888049794551251454150293280762223409626097824686369254660149885804174543637531650007374245104968445532622468982396813594861193310549856444269129072478228059207445947778447531490466437450879464453808304933620848682821429366172730117673027363088401241931551713384061843216867017581823662369310312293089278591802331398075057456924031006023203098917062411054813156742365896881793990870649207560896867718508287417039507708345537711823729091693158364825651249012747605471921917405520209995987963075947812866384550898094129097087909864229839010210926520579859476079369781882099831210649134606505141121306566780817138080351738031791447386470882658156004909959389858806226105351830509232358466966112929644284882213150525677234993711666454715968412661409909866409822760035249843684336214718416241859606808890716263976835587986327552155120791679955666748143434982369450501940972697684238252654624387449441155983414921672289450034458390503483522516404205065742814352298850370537678744667646235364811540664469521398707750689919192663301474532116487302385274348667374230501783588642095171781010186100265463835061488850627316964942438130981867707560224850117620730741495150747034282705359115112015534978088995625885811348239266317572110356185313838485130255434693626645548114822092456762747328526800968339533055199632908926383038096786991455063844254738197458052525619586204455034263530203657792703788742695471659013261844784136841087304381331799110697248089128733856545439294003544235500750660200260787534152704727180331877233647853560482734224532945513498908427446253913405784344946639202154700862666701951042308108847361700527951462708575156152222876645757337549644009890300332869496985251144820898234730195765042533590776896359920764941503955906947147427145461197245105444157484943597373622991954082852994849689772221395395851029599278515354763331663863853842344919768360693307256456255440625179187182763191896718808001471434858773316405993965360806738562621667512701688066278662517417380588563027061902222324123178224322657095623318783224101046666561554275954558231645619787404840064342999708075987858485745652957465445085430719182939220804641487498126579723540410758696148204619825808376753793701429109622225236957883552661068522156480873139775819024919673103774774233170472371731307016858857276211943521008496761259221539929495692828076025203402049156688852670675824551177541695390975212853187538627946460363505857290621342609330094814753603980269548047841524171008903469616219325421587778661516105719424334108793424852473407138261316313754041862291300264461356102010466608050258910864170033487333743292449307073808750781906981642228583085148929990084128996115345863039127794755673025732309013221685342650275516293875651595552577815709015123716096994203270823575954818157435766422739282665991014934117870236965784531174002395910295245600479716418446487938853279560672674717927669381278337306348412972364054956096543999351058336287773690516115569930089899766239486647597873156219790508001144063560157405245946879352851350133869778404251088745032155622143796556075942555545418829567947825330138110490624521027549943039098303783651734762399940072034096366187092360443730919466987159142670829510772750475386356488757383520469200094943124264771131344641153971701070417993693007358091951973333928095481789304293294687994560307551872674222656300997185309257307685287295280747187785987068827488592159490660783071695191492022782678705482377985029079752486075434800683150124348885508154165728187268655450138701403700024863074811759724851078186745376333019907564781747501573987641470003573856124010870813530848675741129658837667966836850029308183754605301672453040867935756858012875446752295948978122145739770432162032370299221601758841001997706908670477136188960615227295841067529737111446472715310183181911042234052743167605424301311874164379476348933851044307823856717990281049718842198975542819561054941183728744649884521826423458723617246446114793892401189385419727653021026237118828055429414957884008409172309817518011739532437642129980333042959498317846041867052575644252319729816756211911547249197435976593250332307958918788748852467374018684290854707390097678375376237961549902403071983521837297362741900017075735921758754182103382013427867401194830119462666151467737162013792585945514451247385589643606407928120826573005474315402064192814659998750738403024028791751885637699734761469278626001797444233806631590528273794892337413996105006463817150391526032428522037691329561463710836468257464356858967665148945584636966882974902033117899029197725586050413401329420117955909293635837492895541863596760664786752326723870014656996603084726753902092969197460826970203179668390942526118743849632930637176545856334857814554093269959449176468240696481540156971149284003292594301099586287751544909882405025732214276088293606302789857121393306922052288488392665449237175121838075316574224161257577344906458859490044939102330942063079173504155230173131115589884127765778517589012560252146196530445713342902840116733112566969265228835168749054603639323679277540232911168260348231016630037972751457880315309350742332649203691795646106652001319361723698315126672461209031899980010446080930957060679127277856472574130193913186039902380536306579494193150035964126611502756287963884919006630315974889095474655970275162235513895205731888578914001097130111623438172479308588751360031556862658508242476652840354311575619066136068197039461720434715872814804628042864695199858251397592580763771520055786995147844383998084818983585973164475919527502775895636796749873542980860059933568192184000210905374300132199509503364080262033455148094175356234625614272705691493766639915848542690576365458122971488216694116019189770840163727993931798436168160500829695529400387148050202467773548433165948985491292212987670096390427287423135175417777853385692036067707226179473629582933601407209805336163834389596946829587186749463263920350273585657083064012056705411386857790117931310981187172072886045866733597589798612406752895560616935986406897409749633633188239323493324323919318960748166403724170828173090706937945982902502464432604177335322774961467544723803458902950505016009230828186169370655598172425451468692328543008743699173172153692173385199670078982658216700854968544218485500695996405475593381605233384263708714300567066248530219112192040499680217952012612545445265040034353449771030489647012496990346195053185926610152057326232244461643836543241727535119688644509459601056459385189833429922132352341891224666432081967041123614193233648119891136730300464930467695628776383203351278951017070648174348101392858084968345428665369143364288548705386319611779936111128612272633249879895095178632251453435826833101344316216329231044815013611139282784978622422185913531971687089892575139882957029089560645706788382195045942723919964020563173265093227389024091303561970399559340478122234121023606524487062169492087122600027120029911854193816447198316347315203486011547550101151260742766634498547356015435828964389514154097064947947104808525316952340631086566042700863988214945399481697648008746339431621321313464449286116320259686358687204160753283905983970594255956232620982912353823868242126106407029515047492209307444967670479588542513210855963643152994139685750633235178823014188601168958780138327398266803550558569970477358273644726545246670477075470809284823127641595309044816237364755714939053751240356618636343213681848325026481128736106879385917097110260816496040223110516441933936274028833597398212178983499291587027134041682492462888324346144071585310075159781364651139432480342796207551225714924317861063775318380102921382926324252431053689996564187524510590338267674105084575692853070396997178745767638296367247233806161731263904822207523433229189024670954380651574900113949989100797518248513575585975431089164712264864541483198847453204208823345923167438261772250639358953663842746638697425049795025052168222284206717002398928452066291542601926425855186577264310470414512765525080891318102765978897298964072940585353658254183383115048466390688810453612947619805591776393607738345334197915643013192006412259769457256090926149424888561238743660008352922998248610998596303430104331971679431567867133993261128778728755813122211727554201574519766880069072266548052042533696607533308987469747306458276875578753986368790744392510247374901371819290872099868877055629200107133684971647074442105919691547781098207338126062541699155546933197100987719773103729810899875566943802227205973389981148075024233969118473262479141149971246364756903109430637040521815546549954438179204042908353083011889013707519476655484718423985627140910399164698883913504233349253510639604432699187497466191620056538842696279347711567660137653850925123608681543494550905826349381557328528249337778007607738418079364801092934428084079586821807148366554944809742260860234644648044697276613510612165462119014943968882777507848689938458494111264385960032849708017948176126376591454312356936101969126547499891629184019096823597416798835920536330999642648831685441850929608790816706182541605442096772605638007735739031835526903401395130709950131384304230308364789618925368705057642860374516989922033500741569541768792457952373265326026438174940902939331734319949490414735717994244437186082521259947856714247562416629023051087906093723433313432625668190221231667155106465000195289821944525126067401710085404928906538424373127155461482001440603496615011595848889941695448891462763796725312679910472773755992226868319182263543000459652242638720895891864731573065265957965893871922182514768912132421441272056062173453568135090971239318664605957095465156297901454600584998105220127130012093371344731480160891547713415086223514745698170572524784927162911545264724868430068660972078561837614899768929564770212495390219681787393269894109454757275210361339575646634241286231001614298879579565166521748768699255342026445434150453007074949396931448125489943485581247337877710508651216618679907763913078885074835067521065494168379269370637335980915200701549486940448004137725444190519365917329397007222505316652474061247323807566976708473535763233989059261207765908835819739778231525806510162638039093081475892127215397883681616824913431121000485932271399668938613356982985806394369325811935350543476407642042378370064676315185692200701085025081240815733811616982956898642436289052738411800143334237820218106916777968937909192195238722929274407737705515279122589951436694520817287231765616561849792997258884986138101138088503757155541400638009082752983469120624798180030904063660141881283822442283026597541145567757852627543365768664393455650957413667336274398174979822309477793636781167377139141109182445708749215707643419399477492341985751550985791299939286330767930264960348762003548608693897776489418107318152058738133029655509119744689905609102125088842437102321689582029381548752069389260478390104738180090972989911588241647773267802925414898119985192578787999207153678497277191612641897653478153648808022258226838215416760894368634718629703157492026764609609872299625391719496160400318661222387821352734470211103128230199547660061058434416317651338874453864288368307456096732075821623717434679699709412479314555928363878953293643754084571310767049804949997877325899720773604845227847380646800387096415586010060927982311521893447002457328576014383786138332634802986337193218363930467564480828904609915101071149239907093394829833065892137869749452258879462921214804345548934521430662525267861027408530512939133134221701220370299369423597886443792263684234120957825053775867924382762802782790553641613771856267155504648147508747305533528907330814264230978952242574241757660387107344281964812654294860043591391960593373837667053599022628848165630846086977531756906474869736712495581208546987768303389730815662334924413396515115527912364385797582788712134437356047278982713604021558499719985892349077598836614912108104663031612421171228372005611931257332823422252483722182949742865393848465690328569723488127590978237404182540964372334657586666753704068307408697255135443348495284718877563207798636416534500096307330653867352069587416211031684166051847410900484827508260241100599181947278506658262895579330331806532510656488836524081615441093348682117412997051195700903047245324663112166946435255426623524558377882149008424185792276338449083352809102893074669521705491142881131761518218200406578903083509194463261842785812771542145901181638321837095272675103488925123733171135535950199175429361232058141968832236809487902296187333791372549820599476192026529087189051349942673077979947468209331456437824430469837868093709919734844906577994604165576429195550502256727212269851662506137992183897203123539064933448771609022519382568332001633519966726531099686022257150979929241032838913192467217730912541589394114489983135487395311120355081364418056975643265467034986034229180075131757891863425704280968729613044585166791735733279463676537927641245139563111756103698582973387242865934782424195719170524551275569309410081405736369390281464002327866678877657685211914803888533667681826884767048951075506846805962260733244783727028707046741732018947760993949834074311966007925828715240869063442122666532737692227846465841477434824855454312294470809184795715236598712998119059976724006093640171761329296280130306950381282641077567851334643376463895866878089867334563930587036203005369955377973272541742910485694065457858365958231094687387909792936141307485179083977368042955595195785068669807753270733327179910457221008775439472616012620523435006064531148884804968681336515923933017687992885640906066600435178370587036849991333504793666540349422188355847365667524143496138493168640165587082204145408009948666957706642770780903296464819950373360349470555588734712693317932266063423932880594531182948210460164237415625039466477171199607960610424476772476614890663649327886134672726282994284438142574209597458025068458587053864499612445088819313198463837338420680055553865666600313640245374405100057335937407206435092353436363632793272652078958258083102761806061014926521180721816480152502463069414996848851215811263483085122362904609199380949283534769682060310037075819066318007452376543787032515795478595432116535745326687542242573350270772756788750860020391359159566551489315703900930949528153477970630919194604304719363292507317196313888183552143551280189302759455999828092221511585261305573181993620070921177781700439376700875885314469980612162406007878445580912211369343335827746552226305347863955265268492591965439561287287396871831816491744118250946288710691902296231467900120306105488812047837765214157279574188793368989715259889891534525136855313236477896837682023022354841063807725653504251991148156295517637219873458555819043044140903082086268254478943761739142766457819426022788942463309341239629526669884369026729588084882790894639971850923008972985547651357751453709057562140257747970454157037884459444190761882964744627135230266488864320230117569446779227878254913758429720622689003951351298167302639566038809696819978764966196055775109639189578777605160415931853881718126208896984546828710742938673767832379555692463965746714852559749032557251611580304328954488674180559864679993592034157647556978003969509140331461948529610003570498236331284494856623796696754101280446122172228806989099341855753428030039313969126901844924543806633017794087743550917204645288657467777243196145878134607110177631128043535409573270646863802067449494117344244557931475969268872007174513964025204024971506939040104875825572776620297953598976217722743845320408903489662158460813903855424223241476691207124414889871582607593086351512657437689177410473919064428051339311467976604555629398026231087659771539745857560936585774206270729557130400761800852505064049009493342101685966789318560634107296802778163749213539068849868923227361492680779577375006513486652756932439602890744748002873456950056369279544603978359743843744087649111759824093846022013062268508250813313197506072589292513663907692783999488417823585434082337189012052759566494952983777864513182602057247098670073564683386568375477454778628172212834983841977997966994683032774537420424673949508705146289266779648893737710484090807869364747278473219671033120207614228765126095831564632071191976486158914421591032117330801256661016306266171871880327347379867299298279731766022661531202251140234724334683327571421278714194034204301820297683599905305671731682520943120839936787166871450865627675108768014360825076932490074807220936507779262717387752752180532279951844792385920740709459259359024550236195657132250961773669330802467835215150644557178024221987021214970962357973757659890951281772112279869651722948165119933240634501915808090018617818892842933333343266547733690535473191924335572870235945481586545485458427277209254924924134097866597863242017249771336349875302348435766632716834461592620436395233176636638409707675731093886168750123998408784228269214847273677367049811721042644078855078078316546385085795239170496567508866778370558756720163018521789137829982681700462229020820191573757751390851497013141694785191236237838533213582264885095194075673644832703374462504747386576967736368624338097270376873982726004267796348663417412514103072740247941076516491643582573009402997610209606018638969813091233097492173323058974910185355931258595810822705875731470021317925039795696710848286608295403154753095512031796634877718851521062407120174395532119124053731080427006886796544042729958806444106698459884828349545027290334272182651807516110950362075774840833893959826085032728558883625356273457494310901224028202955210008868711062500736781210646383266371122972061348090343903303223615528673859111848973228298686008189849022370160563589510105009833336455301520059260889321787558921762266560614469622956349403381875189005999445910413921248093507411851868745848496005840987812479356299640268018235797719608746139779690310130291042444488576672642732961431946497519581773836355319161706546954512419060760459323854010811207067865783308502279711567359397295749617918444018330001307688704755272988717981702904999203782255939566424794031231463376627744779170940478082390111956118729644871249642867290341486752974888809629532283748487579553365268868585145952688695759653785010180379904791351148128650497641805158421765163857347465035168485515346798867271920389539561426246586347399666408910615873032368701303021733560094074750987921524199727825087840614798417254096865370728365174577733758775676236186243207427313301701286629893303090164408629510753255214912762989694825966352622584072111613163157154037407815349048417120075223997733756861808264833258562273490870403807158149730390895177215983775440289226596797676720577580043920777131864553058471022778445577319165947575148513957019507296907492846678405644063203748902477815845239987171247495245671474257022731978460767231861980826842065555000336088825507763765527487066227714004305861819644313567023428906633965329071028583787823781342177534948953406922066801477034437117924081299045142559180757726182045614723637926885519884755403843220110687775249118061524771318031421783596353964988611771608807062034322106822944317383450916052686281034413522631243399110611775016208243885925443825101223125504836957383028618279575222816503849073800494547157557175344018118443018667855220929299692026153959052260007988327315903382591192487650632656415745963530564333856385194267926586766767399636072922772930766185998609128591540980403696618486258723746376875419197561437499747061867720369221882079245133710844346794586436312498045937127529729822467007896955643199059627731693778180866748066713991697654247607151001712073269412098676857728338448957486611395755694335892588695535908213192141852967313193129925395035596698421624334175183280266171480981950872925177001748682399153335493653197497494385995776403540898279325518582445285190529289738328166114250189959560344456290455743658812953206183666853540433930905618052902342634903840192910193131404118743961649630399025550941038184511796881421156642308734451551702010378954780752823145471796487162584623154360085155636157022503579052462558173484685423979868715728003389063241391500810840252939448684177078005372159261593566465605869256632397281870044905003955237479845078159484951392031788520043904157982882019537156753106847967179662073403059057516042234844460227317898356008983389384264247973601557056568021646422866752423624643204116746784716795938222683120126061494785845282491130214661090748854137884379408703960378775487686056051767349580226630286233867017154430314326802033819428599777126746611190025638057293533420491266701663890144318735337131388443166138487983586622450918749323479723971979295597966883117432545043501189446887574316442711202632131126260661416504070075194078241550657810592064096983559388519094401979253248376449038657225405442172097222272420958544142784269143259900584201296411541912476819814835746891142476068000689401769587986576986865040204272215999721310821810421204365581298112823458823426008155848117591255036990052702558846409107829863536628834926554079277786722004774503033068517949116291673043224571900519647174133856369558960790752243993564286235360337418844153075371953908840854493139886355039942525516740940517254566381811608587559217385485217646171006395853087385179179359953684498001521845254578763227066800970685920471785139566554439539348858705459677659369788578746633064332141005721480250790232339310338814982921708158899671474169305386168931762003764592994871549701627010731159648390138240739684393847311983849391438183615775529612695134665264534116187089800072902881705308486137146760581824280601779289180680932090607338805626458336746928598852993681571572025112733870604569890483143784437653143260411028712349219628731083727994165253334237397325424953104662972281824821629920794042094973045632632400899703207993551012189420988928570987501481201424391678594195473215688266249122966842546272244411273464795966100455671357358024419473218876596074079856862332820529567404691150776009556108659152098527726146312259545042955148347589750730388829324246173060053799862778956279784333019079106757468242683765297054134894773750849891743940843509662214899352927751752009302903218689275759391674812379934313012094308281027802188989194133685402359493274832219950931021812459297380554888279158770330082685476246022181379659317766150869456001233830687922145190100021944130168169710891572341724156495069434731431063740393275333356216270060128144346352919313210222320510578762315893901224197546677103093645175304574963572253801005861501350866151390897069919220353923408581968628209813654419163085124671198213133936950999986269126683431285344596117087685501684529221711726396626359067929588046306114827717332784683048190795943964406238467943802791626927219152580147118593919580885585354195691873738134754468901562711817950637258970650507978590708766492250251672206514725915146693728349377552064407116857582869753915821306404689312548490308189648251330775874251554095790328753776718548037169790558670048368612194883987414711257211449160926718214483791356882433544518315609261828869142253741950055583869871725143730338877847275363155550080775470594088363054546690942660845270800306020932949091663009608481234478411230683133361436847790002030917689997869304967596366016335223205495149151953858307416078319485299778476293425107468712638491261138776824683898748474110025022395353847968041857340078214021098938355258977905934515574476071770784537856895205934399271302021132072998056766489038965676469089744610454355649282019317685464794827424290355606513784560393700276903791318361388675253061780591808926100312608040939847907386014562073066115180541197071211290687592241591961614170349129891688291817922774811790858635618670443895949449266791617489995471456338832431703363438783619875983815727657737705729707586529429446004211982423438355943624655655606678449068776892850754049168361204775549792950625127869811382029072876561554614047668903717856906278915392092653234763668301341610561872076816577920611843637375479813757793038831704760336811623189607260486364149532657053189983658283028481142749976371122113374287271822762083731213073504556441016317161708770041623449296835329079413319327380056289737934770204085727655941678982604853686215654416718266630816934641017001374315864909199374753927961800075536725159550718758062168891530433317574527396526110036048727617831006769179953180445272520601777756607463606047537278740112438643967117863020496949851007255966332121318644919078415569242442975533657908490614256285008751259535108163679785866898680488128098699635346444690038037653097922647240345383055931054312215671197052376757053848524527700543877392254634355983096576806918785339769351577287001382581844533325132297921892622078422220605542716597345574771886662563972563463497573863910935063041494287814562180673618059721781210540561334039055161800139032897033311848628683141369663211559288993865589201974240801899435788454400642183290325151365820902441285207839913273785087530185496553487123453856700118452813498627185112480186864510644148441488737310485120019970850187298878637807658604982763283631616701966423333157952464883246092111435441772429869281132316367354317931433092215006924164124118247794607544984056516306945146986389837466879561456210120674827215339033954804351159883246721770172065613493278843567789193000471722668386516302733804901198049587058231465558775652347380265629851410473739558973302681980219946706424980580720658151341250730363056998039839543574971604083259543441731953826631615110075366427354252128653193513135825024148375775421225869734890589460535447304156534732398445589936013989914096865724831305781221482593389869423621257467323153346430417881946466668591713402409834504770606499130647566946333473686348861482716966482797221238653977871938146417164192004237224295203088016706761135965054291599053202446197213020608476742856228366144921446100186816557214326885526425947070001263111212905872455720575294693136833349164263261314619129417575797566671374905675283762754003439541249717144890097410672756179839413342432258389600775361897338067155146861560338220566452311358758796688688262690793465850659354229493002276486636347216186442027275939801413672977693261138337448248294837431038721617907775027148886908856653015086307540350772599140599060365711024530009568956292208878264294599958285758438415751602443340976034921256614082863159169515963320845592829893981132179381996578962243034959004330598667114701548276965790810985002355685488085255549579085103595439533237899145054646684276735086141446462167309617293465470237119579151919229463060719403035953143395525400385737130096709962640590025784628627415115485823833583756206795794298491455869393719410213019472809215077070214727490097302888402298277737748937461687374050030025222369387093857729500385753507395019206765626160263007546401187240763751676870398780305879310441101999077030949763960746586860201593075536732143472310463852398026523964509048475766911579046234870058913271835749628582503704004371699776934472532960172433843399786012880969078159288960380354322220169016772749475164386712048229340398672903285050360527030824216487921267790588852897181764950594725898722893698542340605017713599896255693262227051713170276492072437774912742272269292429480538667157520904513442150176979156924778633341924709243979127808781168271296320832431447839723890163236598303231019165221123556347297614434648306296695958315492455844577744458405926457167620981679912274626997809186451380435963206957680401489689161367758696037169047870680152434687168079272046005654761937861484987501294876317025892303852645335628981298741164297653804290177439435663454812866772578140885789972656405355948996328201251297956468365486005475420458610952289218638966998648376638837964469271587159170686717052523551768389213436734385704260482852480905786266852366705515558231282948181414312692292963139745558872467553961963625315016578553844307533790761829245008324422098335471378765006540203347905746194285634253612248402169586570885651590975429509699858633886024927583671934998747096395937194031033435406407432285628899204151920031987609554540119431557676124443498402879115148953687349538390289634452320552097941104070907967343900321402386031043583032091981929854832839499787923582200512309528428519636266809432794067930841245832103912979021388700689338003967482317322312025788331740198593492275892116964776016311158169302404156916143093339135262861400032547132335862328974179156488225087937602045658447828584470609065018842019469979118827844808513343404186378792070775298496714824003626095830448947712803495924434395436828161001045484821749681648580024351499361932694963568333214915222775821724182971756444235961102479730158542275123754072208644796277761735003569113032908722536564977581100603761270222608078511019446488604158145500446803253834974150103979500194800320426129443722240598118579134687891708709353841649903087983154670109971760596076141676512091099218918177516874370845195619161645992013813926699275563453215871929613392934160449255680269251975042483106480938343321352943924067189533009630093599043334695026695028270394273606332373477334792686360556485078106069313432028419555763046712590809025042327207683444358174083876962767740404462088919764533417776028864972109050667902837850286970455956245486856922923140661475911626431990440160943859603326957413277944279177773070989869003647642636596806038663184606270366428007788050691573404875613563753617003044755555532025273795290691674367146199996821369936091213483713762675969563730562736629962193377814414129854051880652334328167582272247723037915166682751486522644274546151561789259847243495578840444704223443223474322543177578879417845103070596816768710284049071718690541589395148278129904649416859481967639744371567412985897306778586836763589887885841679904221351160536563489352698297518341911851867634910465320178689573794774144487443718325069352472183669584520845641886220866376966923044571618732055148808041165394910291288595022972800196044524713294295336324042031477259597839075148482527679210529716278884874295497943248889921346890128911206093565565172035949904727856979618596523472585279056083818362912232246239928618878516664740694931299343659931247488628500086743971232764243431060139946168999768862343787215618076370744462242055342974405718021262526964548087778192987387833954610968925086061587896888219606100424962466396699102583447117004082107824558006772665842248657004717488322952424333177226551528701991644834888979436839875876923090962466652606874618807263369312850753051167744955546003213297295431692816615938856125675947524232141738600606375196793502115426318994268927775618592849067755602280870764357190202000698789367221534636288614559972302365365892204553779251961124443722214092429114709443421898077802165470960384274380679810008692008759698115282826796911092591787196728199526003394365523622643914497629618740895217838269799631772429689097010241531153209069073501358947943741581688748091699179058472098820607982651860649096807080829140353101757457562201126143984739626562450134620663295665446489995146896033352946198136111177783089885488134583879036766594921923984911825962988056372317601830783564751993538518453752531072980386613688268978805642797372673677066065649333148730610325103283562797265397968849886183217506155576776158371442396284146871739206699936780245557369058320851656504032688863555764377061872628983009834200056538383015398005547097063596300165626105135487636008135169510538181029763411624505213463754132620386372642888211221824261760744056809858226336553426149181727514627752645178851050009732649009224215813311209011378863832833739991669109817817307416574288133432773556150905199702482841860058028119031439871108719035198738955383177019929012718076967945930546787436501016586891136641885236849129473534814999575932562727548402554124106796804537172809564866014081217664283823111789876508520526720008015328573222349159200847848530303927111473197264999317933407453557752482795386832064747830035786493362926258836707370699776893134477319610085310747498979682999238396421896762066382219093995071495712772436956939957277494833145729483495117124981216986425979286644248984526087595594359410967135469896320929321404216888644542680502152344691612301311392705506029579948984955671479417139886269062866408653576768866847948543455449760680841710197227508072185644849250940669760552796848910258022436103926337475198217283262617377609904084509939521472098909580508858009111710334316042264851067613338115858412017943290878531766046532322934337625874503397030481627172669019120052657024147505245729826943324135880677920720766585332724426839924733787864524832339964268914895913650097640780334110757379914873750321299994400947543543664786853627769472930764405498290969524371993811786555415131970212916511963964216726927641415550323141670797740369935167000005145572199056655701326521518086085948200723883364867846300116119802507000045122284823963341391058312330110283158432271032572866808766979731546573310800697844881148053139531691028600303183222653541136123443879068797695869126859558519356294965931091339194858894453671308692016692059302223562088019411223397557700853796446256435081563421705011180547126761423964961692305595125734229874471347866030136360911831653981567876423513130978286533311992768075819848562892146427770162345223017533298539982660871275367599833609901718369218945146820135510519241757230604933940861266505567705529491187546765847496012392616285466825923012732078121316896322445841290583992945054200868822129329708326066894642852609827338897276645961961704481245926765867637070613832697196048315866277716072028198306209514584983299743021254725119626990276106173901155185932648754156954675438264051109497560864389018327031433662813842053548511726675822058131400426730422483655349396580468171559297080493883368754496416039869272903944754174368098449908003478182274256426033793783154238983799547551008375793170004643445439332613466225620640405361525207316819893813051931646067820708218153832087564502806166375308451448688445154926970464697227476821029468305885038768471542133992710767741703564157245509166619283018564704563172248164652800523341594345240152991665271115900376421823797557929122258631357039453938830705548454358967551987626678925352817895266522778030969643561829641084410357572971595060891756836620302958001627379749257409682985086266058350826547966448756519396117625991497728494764017889284886531507644190077503352788948608870104531868095632973528648696210945541720871154787029760333615211560705537324652530387640913409420409247182543373621894177420067677949251219261316681898888570181089850255844580145490491266303776582538570565320009423952116823996432002701237648007976536337239748448952093918686211510543867784519280801613139123827282178924954865624555230983644699207298619908910343725279451096880770441113867913368820640750366587002347761321018022310372810936142515883850951611840039215121829364051173714396535633970076318378344005533467089309495496628565703522685878953203668532773087981274319956718863854409920504595621286764668263671421148331396147784024194737372811096486313702095729114358613788058124790868192870265361974441936962873410314482398163764693908758159546418129844588761583042781375128682378791731033233694698717532617730709745084400883806300239895449758954632073941171978059442537168983801356331374162296739268205741497465087430328350055446947249409281882691444984465265526061563746850903154724413025039999058366888229052883577660470210338413360282692038991944795617926739974024734711022906862438688025748122005345565143132722448171751463865166531304000147936064385226910718241035648122100767040188772384126881436425911034022402031645507788767773971818711544744652942625055887577644381356850991717054705621949837194400748529249176619797693019258792124286095049462483157679062215213699832746220983973660101894846397902374913862436055224277840526848227048594537821166632309989282003721994104820648003795555082601565117477091162281460348126135470490923823141366246255433103994338219712329999655454415760194481864056092323035768699124591275420243091525171262744118772248501976172690242854469028944422468810561748420352533421494065679719407423760826143555671802946264308288066047031014239761831578090586602203985077762689650644103242707118211811184058412297711014278773080299015631789070496469170787228791681150135999713169876893086311842168956816505918811327270002215297544631678475661679857569081874352882420275534988235848076644098991430392455120015621862307050195697291383326715991713283154858995784568757093489335644072758964521021597434754515190058803435567438358552149924390323192573717336463349172982121058466813135744488515507524890613367712197014330492730425267069225953431545705917391055999731026181564061709126728912146725303904523231070706906075798404268263381932362190315416300766370412098320391805921227692863014768221353774994539343448175716454313591182746748330935864213249340282992460366248182599761105491401980655519136963678586911835826517183418924577915250535453532467118346662788585763383621692836953273740259323262574105557695519357443656443273976117522922503187494404491442965330205689843131025525677291015425050875637330218622093891590562728187271851115351535509443844954433444627011163246037211707521496240962816138572637410830750796537264222073906187820078540786918996154491807459412274392152258209336375984590793159995261639881099231331722658598349401962301789806349172139773631931453044358059972744917277671202420405276510458725009431027681904995989609499558837598594509665883983676884779682130928273367066046786390359442337531403408714319455562004558780336344175548322403995357921976779891569552963048884095071469539174077048714350845591390282543687446601759632006125548619412512622086886328647126851193535595992832207784857983233179787110100168178117002783614966241402832934197057445625133745230676916281067528592220620116731719568832410124134342299654263922910049393021114021060835488793653947469557233038312137766767227154154099655254151818011844922412825523275897374944660908220711308992017702795865785549065021142186269733984183531920409568054175206093658097763539325564002300958952205236901976381452790742903481121527151639523343107224019453009853961530125841420462393595444406434220346970248981999373751774351752926186740969679132783787124093963369663652116282982042063923303899339586629852970124281146619885882907274200831715955302091976738225046514669942352903838355766598594482829574522041122022005905306187806139720469572466090138080746973339121283919042736734800429450467598033871884125252394493643876549389759274191136920315238765401230269393198210895314873606428615683146641099690858259789189988886234495130032215097358408641365029181185178093447744610658640973244905355476312833396234123851039117565097057575152735047284077285309000248130220666506785333469480646282663702694001768972989440249708973072386349827246081230324991249634782286498244330240329636038742592222459395161272608592623559639008197860848436254835067749080277616624692354135918252106359307792504817851172390228781912054569225920402766851251305083272673963390228234713710107340484414997662104420300676261318775968883611042068660418626154145600334604482533395061275435936972076043012149350334795881859457088541247460001948840097673344535283359443474919033413448495409738699533960026217189605513358949067253453025170379306563821676532713118937411816356286315548399888933708141557780045423152153618279689362142657983353914048471120236298547036455445740267525482742974551064811902575323446627534047451426591163191740025558964778397656352433487294725460202018596034745470497250523587914221034011432183173940275923273509894505798645344716539863102433572495540773673060345862820271399674338720975310821367226312861095146215822281178693701719760707881714757744955365591982082548795269469089412759840470625896577230196302338143355963766394222148261203864367633327712998621024138514590688960666067127965873171087890876057074777250118733950329731359633515767000843293411905555964871594762542485892162725297106892906287005519040310185270301761090589440754887499928780109849038808576782040785816609956890803983300324243957930245778894209783536206165361399747678380274408817173455298393901330144465669226821203924281835977717768861323601463936700350828433475310362385698295953521670171445119215231923972225831760565506725981778790225758327960588557713733747339853101837112878460534539156354239256200950844805790237328089855801845620670752042689742285816549708612043946131492239879435038353612800488489653950517930586860027461202923926046659327242405315259034624979409301819998651753260590782147873410459419435095128638724974884318524191428768026746604178229573216186208276739109054619567865364751929548218862192069088161831648342348968235704235385396038632762537514481391580865837484255628812001525744212210241294400837976579210520408665550622635810732403135564879014231820625720448333907147645962044416831046220627444010544985235788092902773406679548771191378129965188348202945460245858190502985029267458444154852278855466058416310984998347674647844854241183142664701827667052001586929364583694314536282770114517625441516767830116825039349592298876019852181452138760271621598623557658544046526994946641929103555854210676761056216078501086988691507816771640100146889932312543271406881110070255402861126505256490387737986846672781597027360066144953989719529241642326222196719136948416251673906818641676212278595077787772843006342121502500491879394183124635989491895630284216437946559846892648435701479394287974615569491382777255268611933504328212850098714390214149752233922279832664488938500628049585049128951660282829098937225208450053204828077188167296976886329449003262211645186183171473009222405094696576502916733162454617042238963885846516959127760239455635966889946844253868360600459461789779841789382924601929351369929159553953365695742787009851729298358654985345016755909444308899129271811208926562686935077676103803544852750914450332051339975033351559246830667352080223466120859700588846996169167875769867239135304458211516929226554601939463926204849739162681337742798194424053324227562149550145976247283255430442398764790824417007108383146000692100358953626598961093940052012895369954135053028155814164189705998932366149320460632242525627638011033651795361442980665325748058394702842674021645192125353307692850018217705831025891437942561773869553811083622337536314982384903349071412771355291610643305193235113072641087948242793324760529330158050440668993204348729797307036977976935949787123292698946039799010647295187554826238359898471494255535801221423234666038579048350550985421252290468466499839832715478057032927975878064248940186151494965821979292208236460812474535398788849695581468527758372862074221838738150567348430318967117839867463942027949569591576941660425444211174189901366276006235550074886929554732026135545698279948029285496600946913194148257128188465978886167895733635889595303990984617375326069212062969312204800316924692866118091721866207193138198471695837272724016579387807863238193946368488405937025778223324270293040703311974325978844116287800827111198998528932901464670682538016364762915808847069424494320188285708960471232951786632711502599073915013652077450523744901764683972812297446778878020660389927407752756329665137829743523131261701402014036807233733583212702562862194473714563002796500783345342469922479002843535037822169322489433585593926340056213939919556113671629508344726335909706134466965104757425482199214199512725970175459481556996810085126638256655246856997414286874013794703237112034317974417306773374792834700699157334780421413473947778435351443177349558791519589945227071228991370447073275423854790173455650538890760297960303313612551481303928052723984310158607779928011059890178588590791996807335840720557516476192875681481270489765157812156880862911116504499354466924746349977094760103806962100764198879104609183964133619473409606679086359018730141563977786100787554363486933586889480444089090156940283276583530288708307509437236835609502312990128071796380959951591410333041891357262906869090598095778328222055136156407893223520563514011489408675468675403872790611661399008222483126323212321209201674772793446374780217471611396637695204068681086827417410124483697664209015370578721178367784268716438380231409655449531665424035033979083366916857629091850578141991404041108199197052954111810784814782245475059671888709566860651620392266488855032077535240307849373133113117889052733622327727703988445205403370394881836721511505303740216601940776947025334287765194691243154760572772691700228981216984587280581610687176291740322426447388515115858161318275157634097786270694889802731756312954765810828418126727704179758039624892479749155523274709893517879807825654570970036622257333664937614932346142411848567221683650524658585129214871664735507262403209760815173130731499277924513276005003215899517362165396320921035964437072106246429459578356296375728010921998189057132055715932496660883413621063487052271153462773326930460938597801525402840094174078597524446830477263701462664461858015396731543833144747882446250458543506559295373513801482555858682204949795988593786275074486673129607637993532141083869273537934194685910359207889901762568925223406424367157296961104512574790831172759073795766288148935300331125861975301212606320655121316190920499351328705626823417389014651981310136108073980080798785449736324340978708639718562821103711917248013896436734921002244404489351935171647603050196727161219071554860233610333215641297257591004427171028022319372861013680337561981498467457289116371097709794050261022364465003537356312609201622886279470910522650143797995329436402455105472122161585469726131972388831664761084832270035586642567142638498415692635898970295245294828469507434475437017337830048853333618851813427177916591058963451870307093253954889435454587977391247330815141838334760101085115095906266216756144558771554534199584317962494308019345203469312068605488805148265192141858154046504101540084954404262094280590398008858987447527666482491985682131333467418860536030693754940453996217366780055039204608045712658758998226910034510165027354912861544645231928402871667267246269591863045218178782656204391013078208039016787731953058583195879399319759563682414054799717302621593291831790254478899688138185590306770510220428557353195495679735988576447246893778748409811898964448977868146342209212314815164790431122875637011136701726455280583766302317864345049768551124159644680823639059992356268054206436058780010656112610760643918452101288868579471075008290874869628038306685486576855773724578768146326367981137376725611087178695119638618588582760141793954419554507662324925370000252393549671554202603498011269022596915048975467000647017693808368446781307312376343876240180875827661320087075030876553998098027428436434839160784341416247194883953919825141735629251441855325711617451287422488848186083255917266460088187402917776072472240352384026598105339031314662893266127924099204308620497962849660798508418152543530026529633971474424390196794721315799394851438964232136679059844258252246329121658239178721016753665964690038790581328409035934407431689756542198771825018656371277214785512789422528169728282906072868412728482272842907628192899718743053183372560286176425369443333562717397494623493243221575644414212164053325694808332762429475913423794822025243451971475575750074391625744507377721183364080386256291693461081550892668273759223923541692434837943550305242649461321017567886092401114927454327078486888422269245750205536524007018424307171665684067386837896374534089125933658282169849560357685935651766507234097380785604605490463620305319969460910484351384829657534108781910680295107676681079120916420798098137761509343603703493552862192453324603101258091034120896076972482160393430164892491538798692519254321369376004250533895907672286692812867918712122043606641881838544681365416019558185548000987624911397894978267351031297520995519344029324857548768678563842638718451180504146504513625346633929429841069128551301089882219530721133165437711995632204994515057722796563944168107552993423009939018178508381169739715156146779964516336807000607226471219189780420162105966632662099436825953466979840863062723331550152556491736788915456523659322923441371133363917059425228421408023786174104728710684038991130998597331322507193730406846024808527821431088503179086097115793991610015226567068527368641297500491052001511706879662019137869383436140458678141580529243260035660333886890294341337825068890554235041008207893175141474156409704603689871318448683679956051187706738491419828512479116504306582487400401380954962395436192141746703373422406941369584799085365931704970093644983683845189257359764382436084027543502417081882823528077029696133712948630587112116625006987935537131762566100755848527005020735030123242678868003518224045784873365868216297152204327147567629446914012744550100091652057973566378381705799601018854083154716699803134079038434489426793580091686597283390822182886083938119866485645131415700262295320909435482221113634714125855091113918146326918914055236999647927660178090795976936789618212243696652234785408235647161566053554092887841304833092946208656946192760315476628571247133837892191817899065194379558019098094251479397824585917295619774775730307483488186551812617099227701323160879665241559510795394019213324165086569345402184779153582344185387650116805943434639044902545269607792183776595183936821299042813245549780405163094245674367709281749630421365577326471814069413370373660156628644029501639913470014620594414173227745225454720592601491016667568489312033061096332993401128681292966707800395857393186775358969610673428597279500927860899391259509490956926687427002038705390952136790194230318066510985029715227174861214347466054229274269795047288663628083031260044895013061724103999963469207823500065306520003213823678922522909275790346689324361510215979228098481076683491212404519388167210741021967912756763706334798921922571624548780450075712053211697075457548483262123119660983028466664050713076557278103149658385772479890498606304121664521745563358293378334397196188873498658439776933285650023408520213169488850199910139939656454939377518204965730228625478384921680201617955176533339155629418615421578587066424552791512804161293468075233552720703606646298439749667794008700021185594542127903750235836930871187934652572558713417822504144880928124460837590196131222842555735621146637445316584565521448056336930436399014607519466805221003868169832608653077859211625266764096003800386611952744267274349172332602537702930335439314027315687259394287503521657657548658751073525829421253345960513738262176018523082865044773479858271192421197368853843776880763974816980357067752321857986620806942656621694131615796286570343719725212316371251375029937077572908417309722656204155663810886827298046277418092296231940656688045116889892915460677218720251173245790440390775531702195501198157945533453297467478019765485368159140141319987118932333122871739707962051444010993054353738270055513867980661139950879502023320824126303653442581044556887534090392263041851264119966410207083222545278026190721836904048963149729300063538503199694054511869782664031337756791292157069042168228799763703739727926204886062718512452207099347091059078516961672322263588783997432829888564387858186210810774221104487092093065655865425957082480260047370579907717013694337890698812856034497219449780664667976454298959578381556578390262836281532278260434146650247388263060146573798178394294953497193037016392430249311948372960996455042861677871258070188941092483853702283038133686208074221226936460860034550089109915074872238137572037847332663965066371048104534281202307510927743486776681213582751202053494004958393264202992610995714538302268247697701430370156722219060343950346079058818768718229732772318124396334057042336383105861919394922976967731872929252516934101126958140879632051992727260878560190008838682192601176074662122147184759602048963974542434775850831160807945897687738891886045067503266488199466133182679978319347777554512350787026789757814241493470596609939627903331016498088648090639971234374989202607747329638675921723922551642777929791741849662731099410225557105648119781374342749467920634343494699200500832504577646343916308157749586497804272167196805418172399738777220832844024825920229530432388627219327656771000831320383647332623120802230356903611631994592068123838109718400637908753598602485185041875432398353380072426631902164615482382638491958736768554829147202632895093563189452240852382230390549296983798161987372352309881179205387231499171595032942808692569701989965434551702790853467382781155161726651655284636436601027558375890320377058575098629584463079384031113979006853823165905500008322852422819874644462846759919654939739022242264833887669799285352865930389336910317181034498766062061334867642351759128291942339999307019725308642111159588211101087238422301246253277693863081469705825599784436812760122819062288478320164025449444942168617927518292301508463712317568373665316555646871573465375126659093351453550106848059526051817777913595574737953194097164780722252760043026347587030720459026846235138253015192776475576695249830280673253594983995607586295611567314395725849946056945302570466477718991019230435983147436834356839535273903923557605897833957709330616537675775229577627957861104283421527426201529369679249630264627661905609240525768132963532524847018779047423759861466557101727396834349699548232962185109252654311893459798352143415592452408358929321777212955089157099690762166976367421055048007722359095320744196420367826116498517647858387309348911223990264889076644669597164205170644055080530626834577440385618567551984841521757756751831777636954551805091814458898165877377683051661148415515411230720379744338106520879975207158316366949929832381542026320014647072953291434575823127693815046644435951033590298900384961429216967730584997532038680607094296244160732150136019229038781285568359205592232288028897807239661509598749077683350608418671246530864019235429906280276535766987688411361855815750451439148492991679291682284397519363330448828924437545483708005499523834896047002731031950717895981599931661712936200772675635648584246657984783736451518692264190411255061028844597724153735306859828376024530414697258658972536693121684484874750027380363840747406808653907902106705507295768868399824307717699787376177557330785761159437068215295909194771982702900609172355434805796501838192286015979003887106107360916891772421974808148617894178013917112877023039186675488813078622568094702901091953940360623308938103252782162353520342998396492405413225903004657523234650449506815839068753006957558358703651505408021581383861086234231479002725451276604783992929835281913215316526137685836657999495980531993657868056328374579251759855998005444400521497212432488839862242279436257763156595187119969916174548338632644240599202013557213544451856894495974357375906796478329315865278489521822948048566964449472171729113830987021469696368402471301760057278933432350357864622799917492300417119021539496091673728701399044577608254567793012169133273273939685360118680706598159534812666073570564972498329683897278526261673510313840276710788363974379925741228092377084317559356390935634663038295205120045868766395374284740563759769123550481322392753839764817450889298926041616800756371880074082882272386595983711672688446278742906686906730732980534940849559777027744355346891683356570098482536932224918050889542767737173982134775663736997736848908918000013405507121821088537327839584913865913558382444305717225766990593038849148521887867136930172989750543030468484102134306587569068467823027192961352944527411751520181831545727493759889348311327647372744170724552917775380224937431159990972717932647127725795515717730996004988178082738631831138116115513324724012417539577715982713772289459539960692663162345569879743890469771631437197119438580278189950637511770240889683792798605312667421113939480551557111471220045087692058528988712458933185042427783705062479666837619303624026026516458454734319432256283382922962078367194073951239270862675318659453027185919677755708139489350865994140375246795977632526515635946543937741094049365620796558811873073282617149556617909989086158654014780566073172784276788600402695251819373112855192468373993548340430815862654614686264286421858111286517879717336627592451692631303820736868283442406066125092367590539440832407101505547184248728221075855049773781697285765202576491353989838356838257620494057721531114635562557389903318556922361937642427936567108702170200655248269033401913316129175453586661102783543205110571081376981370877506024536961132796781202816050934081882262411311816348841575896879808615855064770154592700004673598803526731998308010226198325972356970518578534636758322762105973557533966980249869074545094010146078636024001814015066419192050331570160489577066790559181921404714771049229906028070606227843949558371850173917607739223952768152922136432287810405365570152524008011410408541277276717767447841655199183300814214320560052796742027020641096454500817074923630949226886704343769276919356557638018937579902952434823527668780959534556805729270901551223350958250540137138336833744929609969658978231651298577175958329131136201269099909873059179001774247947965895757057435668490258702885932597859092017385281282550194049773738862026501569775811947301645492856468037054365161589682286058167000327871124289589438598693459393871764944517612317259692066918581085513208045748590141837958123371786060334884715923380705007196124476313082302145141265976157186577717332275780056760133931485006516925030782598040144850943605581063728092018221217736288663351420882674534202608802353566922513969769176358140899358827895782166058325491446361574818412496376657631126324395868556749614113897241012868568247677822013979226721579926981276028332199009486689574904080436508941088277591947967565400428385156517005348870923744539085307675555536319219789032846439430201183295067700347677242540955949408349313576317024363046245861678346771155103342717470067423300931381153175279362837955690965198405938310637927872087424258138317966329713595076496035066030874198635860703955028524527634094932834693170006060798378960287251412992071027337920025506638158101822608024848395038647400164220524782360218160844982886132646420648240270971760172819340701543317301069980687235740889685450732717698081816587284736508376047468258305030666136568948016168906071424385616373647810538267907953241189319903606455924256860213264372430098235882221883466276115741019875610918325283802791980504150064068227587446610779060461103221294910471524265065752130070218309848135174204240375832080884599734512519706339991373468049363065373520769494773952817919240350716937990693050816303294149471349145570919538738031679388559752101690073316686488511904536029442308403817599468172534368264418228731324937961005108326471115194482133609895147826363204976818718625481444125136389725249337941060507141627705267779109048922582696376285202773163829411854722721994754920400847608434968267190501206086841654237613105174998621420793195815589672759096881073030036470120612662358726087842784519941782778318509849723214872587012879063539156280938064181834266739403435374827807784704136980759908121806598124763104947982422974271344138579455973734130933010851969323528337103511157403548041255084669972776747763650884803440076208122752507617959521443116127615521847836247113099933146990313034732788450053179433579191213552386271943197240781999038769548983414036352899168687612394938494932578627775529556907481533125860761996886143909091375936872332647372029890303252483025592515738973800591048425234925586569179859531014405430053434289173536015375337448471873389035785114678043622699449472824709071098959334461589102539316645403855787260056936827004561092669536114240778660585809420551643066500289485984585712086911363175725179719335346042310241840023337621866643953698286567565138560070553468236870528596078515137071985180308838628349488194457941638671197068001110677876913746473375916766695658800070017418415185572382448918042075004151284464241315068108051455679057496704603006355723310830631656637197160720864233985852129717865789197855383232752544310300173427558099048112235377364442283776270082151485161760900089490023850108315288176210329702083166010473342908624465415216462251882516631719558606861367242657744765708203033098305841179738744905616927439530417742105849842059400381838766205739064552554515458569640147104835697645681183293046184188203679473458707883002555623462918865075034829040204470793376580430618329804145239201486162489007955857848210727840168325278900820983154529546627927811995505231609038864342924120699871261083519045926950632037595061580813956103040554355075409278208961670727278741929691714174765643858913309756715837138260781282710485464696957982792095583373739398275193338574325735867455409929456856431894846063526366519986855631181294133787634766698207805646764517257177339512794180263938592252383411391841348484747171961538082376614512732521272667363194084102416799335781965772492068392406319112876258016618233773782435720465003909733449080574666753420479117824009815343630192709216647188863750180235217571120753930093713872338320374785407831992419075685244080136276598156584886587473489728302962710972932850879975284923885843408274296238222521831673387846596542738575644092412446698229037171894902569297757993051639012537968241860461821776362456733034735272696588717366908398582874979390950745510710178930940030874377852249326440428918664347103466727544101996856823947395410410201736624198880695380495911319062198322940505557236687300764253300920978928814352222984617981133284769514551947887532990760299682803834117940187962799541915333634466146213471612617888603623952278705484431231626734469803622034165631652573434494244592401611199723451455015795326248338935500066348767868554838651370284051645515225714791998189787909338108310610812581735762983677148728307581266714085816040431905741456855102766643299048910539913325924972192645372830363792822873547999442526692585471579151489384917731553603151590345168644840736591400694649894637162796723835165048663281273194441170350744599792869475642666893250507246302526537896159381608729475234930452569695380508547021307877251476560932777782854624525426129343515452782486893008903375360108498289215375784689349493607443390033153692640528371680876286589809679434215043397048387701626557370303260948162561706023703138979178805600647363733243857863615829233971285992354568620807724753032163302956558517188042948015912153378559722718385507111642277442527246650808705191445217037840382363552145225651834064613969235347929717601686547392985997471054254810615609534436357268908364445386768613154698111382155601406047746335273118623240516912956062785971123823936883245996586722870536954979109043534547713561055676638307637722893159973280510979330445295718937734121924811455161041268716324897540783711232100661459301845956653032654864198737314096913573272215468188261438604757325630825227055231772670216143214239515228921388691146269010525155270216877681320484441036197387282575095088982917129175867225352309929492929764793102264514707085572720995690927254928827945898277469993620290737391552587139273103844537864595569100333772229201463287047322658571954352321377485962757524799793039994137210906086378810299628983677786680179504806707246755713638779238194685549085414905468933196989155268563435882861377639972309144266853664827909703302954343488354582540562375370395551596546241939559059348800657841396102663192111560707985718778318003727967793703763522404176366989146954644827820631565583326507600621086409613736062867896348941317675191568221946865318893671654576337487307724037971832610266247996913830089225815456572631061101036383359123948088183403793452209062191059808600939780402867039068734830773854775893917156651842410064899152251295207138371470859622060541069920927347196025885361235167579850530147192853478257670223506938574393452309087138994412062747207533268753102281313964305432859199559376647865121976440123501952215739959736210297845422886278540767578835439469908521522473821623188227457790428293076707845594044642183132726504580453384806323512828060009530899942724606321931321188431109291450929935475947080161197205334816251097802841648325343979966913015296010217797806693836646089319185182911536014988095933074903013392957426475847127179760415506593411461982511957764913559257608609346346661163048144951604345092657722429775064482411386637279556324672148011483159764559102936500101447650280818282942238354493008466463083090591248627499384865760000718315819101647018078325561003605228165037492641652896268589844488883636718204073566214821717147953964670056389751376149727458224837292746740763989757492550027963376001923592308658510598877928786501544892532254596360820161180683278046720526867761570576927820442110247960488900341388022455774443588473405663553647476134802273954274063741346751562588324983198855413469365030323007443637035270536927469251840675312416377522444878444362542501459857265003029992854491676775771245946922140899159954896418759076699850631374272850029138317338816301095631373196907591350235634416186402139358950412921453415977325554396200073875157847452699874596680867841459750445401229068433254199930474911289073979085501231245238533425109577136752507651175870619845307715698347771296196914450707416154237203535889316905622409894915764011680160693412851436470932686536874940701354740044125646931607186974565920024751711068481568710586838002761461849006201708175753041730658417612352525346439537806819533861072861287415054200175316804871659946892737710923730980905604021647921090982684405083915871416559372976320666133210466268643198536802055913385780553124996171152826024502564238087976344941243853675132800120017727326922175490706473060820358816253691915367636842122114992725908863887392424979025020439108410634513013125339430748632454259623482362653646205039432187589816337798296429554746243742450964583485560140051145451601615979348098553683158898423336960607202727602299695733494456802434620268891516400011128083038235808977604708458342694681930132681323052562129530274238165266338876396143561706169895776186893955958915519638601382257323905254917563976747832571484036233347194575717590213224221405640733324825015262064729195525300949902952440853347462873916458591590521556658920663428544073636466005459454159298926436234001487499281352044034862832573792230039110596752630689825921652024442324216843951841433445042433474735916386913587823284038718429490671333471477761149713731199098998111692359712027945771094647395335121131852542862667213719163943666903548923373528881640944074859293699771288762771289697661694946557169802461133852918395771320190589061938203125267036594056608514191710860023431525772457364924710714867235946090783294068578088419775965638019730854858662619336610289168628062540038873540932442993815876046982989419444903197031958655243224238794919763965008638947031506809962499671341134819244663725378480004960117824107188728694575487756279795646165076919851893086110577099599769688477934522266198125949986506236752903319182118176934185374672304762114913688261355764189693270774174642032571122273574997309985858262117711282057001920833681251662795449669966002529733892654631305012116568324653262998289082173694903760009157684537824326698958919515203016408198474013406441788907021240916447525978701820404632678150266879839076289030363677318376675838198931188858316229672428198167581053728424915613174373467330529969393814655424340826737526892281741044887496440037880591011425686821898847590154513495435932257063500445691507133035538832174552405479281817432501386889321702186823582233476673586951418017536568986825193311439643179315686792392311611704423582956994213814368209068072443679640648673791017001842718589626970633913221067983426315317887843884567149913251043162364324451743779337101863419880776236481344778672084029394282397440082618571289643030883630119766790216243047038788095519379897479818190654700720027413082824300434983238189652653076142028351176831021750056682342962192721574670773277668946943082252312311134548836889126933822854535928412142164041353326072369455994065046468328731082273246862929140431970956131293363745592830734102363727791036493722431005721833702390783943573497951378433101744834737518593860701722033860665850274465730693287331843011176833130302663038808433648966559653892063688764402205893661289009934955654377876859930535526048737518388146929326971993542033281506576305053724915517633755212624695496584136891585519233475754163032202073956003025271420298435821268765165857626975890358224283389712579631630995730061886307630653473554501688029311167732907570090609446102316488746304535233304999218333464746346872762585448340486075124622805476676973138186861233640243602658365408645218596839572830492074718740671089716527636839498889357680512675319115060674924752902464682415336933768472677634735863989202099630839900336234902827893364409177963164631532822578674039304551541168656356950338301619139597889725006535001666686784766808992770464433311825962667275572748745011121225810866144270524614435042497654746533349910327881533035509795479898833523074856598589465290169329858099153245582934373346760343472634256474629445794986978912324632875128100592739712581701893044163838420230189007500132998242988284633516760114808034736334215427835274042003665511833212486039716319900563436953507128870981792188633782708086974719703322690629894297847315472034451013713099625533700922096667290556137060623820340677170050605330504005814196028329313995458187441277115976211195130781412433461469211889457227226478281713519296962059000648400047946072547699613344378833198161503883592276541082908369186427685530438031005907347966886167718735269383931492470485069888042670815357281597018093425423420863937578353378523073682053460445882806087818652446062265952072221348088509578631239207840766793862984625642310376792539701561203494318505095277706782814953309846441748216709906349858803970101769785691158523088372055541476449939174015853291286915571644609819708059925621907858650842613696970005408492119520945028256542107344492600299076043617436898060725836284752168145683376144721090178797390765727120534127293188007439532429764727080004565958676013855509666870579668049974306055671640526094932270822483566678997983680363911254802763043681724231339316616332640658064691493081690601785701282547104594849139912905746290285722854204663890950815311712692448923236950415920133968523638658858291706754405148056443697599657423366511139308564210261558711903421961985909696377394847923505838319820477837762341301420529745041684950136152253216214173455641387613314746713238526995861874861225024996792440567622493973563431545143095020403553952252304040523769262571978749171200842865144987498365227081539170419402657082677590840112000583778195994011378907690544378975469989125002408619128346255753807125328795551696213808717142839279120356055230955036610957724860869687327116858821519817172267795108591245651233112370440249677419706854785805747568570011237974721249982593189971663392769258227261137274043064436840278956841705497129686221622485075185739138523726682830352199093869879244634806566440576083189696281445754927818518329788997841160385423604708350570495173104777161854135828982541662980398522319394644911333902425417733746707606829150109562858968161260854109822313936108427587005526582595696229106150038019885132845076609286195600454964967794719013658758781784867006705031671702473403345394268414433409560240781601832034489823643713885474184159334521095096074421021822816628153487120979521824574153683954813232148501684440520757621138564137079034377790937867952520655251889259046079800337507366263568624821478168951133833772875617001151008850182555514998279179356366676944489113890665904501877160455173000324400321284089838692189579776657268928391581797677898204191837367176296759363900817138064669798128282265241178283787664751127800448690976972241670467103432650292586393985658749711487633334918389759426214574409044081464035882576432566401918087154976838123212919280233281091631972817184290339641933281614609957431183226172186523829006133781732290819397537424501207757828456713800254531360502953477997915711200556006157946748348414522934847891476024252053025035987002436556468048950326856179433687875379783886303806472049092576190061922969904999974068978593981957511572141460694349069389183183006738671325053545047338741022427779254624732285312675993383701176253651880009672030034817940728463925971358963308715787261288983312929152548712034525047108537956610702936097621537327104938707277136298362640269143446620188201034858595324375237242546172215159193076612499640249195557843067666120310441349504453034872713496922877912674658203818075665839582260150326445098393171540292071521736936193287733733339084822093016154125285198142449086129983379441349319930194366890588481543068563099085790596330405242310682803777060870859450515208996016823179712228523397790042099732031678475228710634342262067121331542124487513276212175037680987879255998806456988939961723814031044100032647724851798231611157789369891031295850230235653201332851123746362647986385791355337612833249737611585373022551323661571764607312803406480663727878029719031566684941010234354380100927930076825065605425285280112759409940498129289102211793207040224247370567366753102240871311839638413530476206859195652426669299307287881890065352869483394158348941617887408328309535100981774339227274394986886372411853782695967486702616195405632215254224115444453365809059341420915432671001805716870652382720467686139248500767647759659831152240101601494573269131744381691145482105311789979084758558276488297483965575738387870697506015349987546505855688779971204179018068350347144244232219519507367841947648623595180240737989904755683710660401949119715014441916317643573959793807354367178721586631735019796410786447477283106556064271718739745254924288833251602446681820540023792105688148223393147850393455974324553010639102361382842494182104428433494408538011538930289348373931215508061094534264844625413346620705846915277670762123767573642329939260052377540067540197795848142688486566504475747020375377724039106710295616734440943113200441552406382408093943254426073642721284447229949862091559294725440452830226015019446234536058223865383135763186561384908406305748404524482475336182256570437772775551302208538127868063114747460314083239510944782327985977475393852303807111613570221780820189632685650115882628376922307452182216435418600798792531798094891259780080172599891493935268129337761758281697012321947195440923172931169172769102097012657254886207620772425224375158291313352739073512558604990371553621817316793754360181881063113046104922675900478907837635099808993130330641075711288711271865968700619247692209583239837957704439003454739962759373509179464555481749214240563384631781197951706697729067631241784115998245478500048040016141992145802894521982586626907595310301206769146719428740961713471730527024802532305644506063624323280603951555004674926452629242733934664135526899630121772686817382304240685014023613405935475719827396767781151195899887790312876531999030293459128339952267792424692900098401035803837773004586103169600235967765505274635284508394619559570562257725047476844516888263205633644986002642726755027688739349393404349465973963482884191526570184161299793878945200097112010901837494797507998322680439184383371563763903773957558465458131267761474520247505623768976066814159422845790661008450992096809731337677287202723026112870226571401519782651380707185037875924942845400752729560422577624605156307426824137706307007444156303724235990802376803016695045298815479316713738781215945733138243216482551036024631648517130835241626852117554750516041633355775005790439407746122848902379284813223700336920874208707323574327076450491872734441928670707968912308240233988960257873561073862011733013783473567915260116361949987306159898271289750101737852260407222191470491836606350432793953252370410629316605786495567558712190799504569202213255018597218940558354624769862579313988278574247573949383541241698547389086676302527904727186822323376185887434895635996627059882986275794460649398086255248421258678703605344364680015781359357195156557831211721232193184872251039382871497871991932443544780357812520594070345038794649867622384775542225341976398272226246799111534619047711250653710258753476937601394577673287254270632937080606645006987800935724936563902542657629303307203710815441209906745857509785092485082801213273500303180507303309459354238997961273757060398690665861261989555477770365707233999445797405868631592316092235333883808358514834374079514544336167098106387804917249223151653158453108473451903866804670733423132985538006858025791246717260714813709447631637621604072189634611940401975191062857246158707546125797351217396438445418419527140254193581799127273584193041017002353685885809298584395223272783363961177198873325033552325008445753435516438122839874380304418952784845990993218628070449725141219157097198384192447425081298112350434334639738469342548969571206427866663154819094189591917280347587201313508540308623683444742972328224737025520170092771243514206323812509746480060396666456213482435158937612543048538323797008952677104112191104764438256103553574847513984151721533833386339935975469529073187701783502190776421458615789698728589250311229889408495692385729085999455410621630563448440693052026810568054127648233107527565444955519089679822321294025105806543002730377312446031498462270619381945518659530248108056909465756364858904566226099919956402122235805064102644263815037547186422672234098457536878065610589053404700030705824684174631085224101103190017519818287828731538271019674234187425683774602858143928816870631123365400909521106820057893500016867474540104150073087338250159642442888318344162787813259623186586904884260365196317769964307990645122218874010613692494991828301000118445155320717626313337389387122417403771304929072582450269613212986688641929128513019146032386911103234305996672695356769919842786150548692004230171863748193426976938404486839695325475607116721801662404768610827725872751317661365608297977678562571012017434142327537239300301212810757191369427442447180391642846739514430737993709548115145828645079260182994217729043850638791174237078883919093517109831018590895814702994416345174435456367523700187350472240465955971096323157893480818706801189846733324200593904810603879559588758665089973787343902604394832142804835302626641666084628978726518031009599192749198993096536316590475104749072839221775015269798253045062332160712993798149553658787194527630598151553584220765680554353308192628552460009670919043468962434375448135616836403169543811035512814045960000482163192983075008916931001308915744633378461723604263988596245953794655788422460521441789393121718103222082588495156045476670658150309158397032161568249721856074968347837868031081606515943815269077207972871189276686504361163365330194485100322402903276972198046775503731240629453012771796087872810862593091006698992040409110004555727781637062220130619016975555568394507860545068400958098645620624786184618383436367788773550830703767544622344306517154460584508198166413239235340718092520362134819544057398837702949436271550171685145512003584650197599168254886543983602021368043606759792050534091125043681575996788669218859620768653884964156638444266041436023439814625430701024544597325509101185592133454431701007017911918980461470467857337476485411007659981569410918670316885588130758601083071301793230457426369220151409694960213972079466719126145079149776748023466533876223968526146937690853448310925007595314168792121586647573399913653084482266811009405239874375811451586021510621499145552134263084470093624794427425995152739683258223764959604025814976495903863145356379248080337275632527203879997169291138887051767623961956986385731333637130359018412660077067676071319906924520675243481925788644689860911220955652561699587565193656962496594452171589291891386066489434247059203385949085689668736036991086876833684342186850839152345458079382762431772404007798957199089191091883154892956431585698751295348602439002072345400330551166386139713977591621093944033620879223041220351030199615545972514547198579719917550412617627622571399788716418804965001285312140637112418104806730089888404433315054733248229751054991993409426799770031544592535513203255420549900250353287855369345412676259715626588094095886796676964891288884898342621463356166167064727705446217825097820063736642373952688820816944708397701441972077328109580817840515476176467554694947157571362720346150781017156814887900773137545569500586520665289149837091595570461833621756472645606001659330734768260795809451212710690374439308841291193544419766310804588107463599011049188186605399634316117942379020312449993400328372165516547888769383425453065919239640906078533707890750467070822898617549498701604411924361918257200045067355201892104081977097575781750048559062523928307032515090998076179964809610773457415809488294827311697705595470489692383734547095509785376550149329962770797924586573940656004680542082004656992270058251310893885834309027752860439956578778498474175414403184200739408852714212282437615485943460947707073010773757413169385269995726795982455124605777510515535281017292166050329476482925634405100610101240983151629201072235250406853782467340235041725231614500520881119691254488361912688266378177343506450543007170152171029444207661159411736618817713276032186257693340098892581819303774188414859950654721876974218119516895067981347542344317858347162116360298077555991374641402108939812321047956357027968264221591660349858523221073382531865414700052784671067964886105221811732532996542436525563929094555071434855591080522044025037205792538180006298680110665356750822896113448956349430608967626036621249946984570830134628665085215903247723049595237618924892655784333292889402000815163651778437977019213755142371923231009361138206919464779653815762490106113018236974991671163496186600124990582189091330209652732572666288175879341110852035509106237782183829283906895701786705984575136451484465825778807208258321581651487443713212492372329412349814076295602330726597735556246414725732843433990298999949547559665396529360112242152742615723280067130766401281473742050723575784700758796478311855653097669265446831483791378060714692816063718358963738061998391938991749965180533798415422876504926522783337874434816009951063758891390909735325024422702337949020045278310000082085030062923239760995458899260916381171398860362107800872117120348293155787115694557399742807022177752521016805016625108603289097572769832181909937478674944605685171106527024017202813855666595814281178409378155005669436258018543940687437657764720239307887635781309427811576277091662600357648443011074695375468372907104102416522215335190010883024020002378498734646194236097248390551924354378343931138711629819511572873717035829360934253905539702883460364208169090041494724390255004225480817307006238528091652735942283990111962932143468043323791469494771079664698207246036501281977949417059263341553654869185058574115292473999689536598882219195092470734859079588372292201573125224890707202927014818090642216196498597876707638249278648492070984786793341987078296228560860880335022314029264428766617063731932395849726437370476150541164312743166513876212750265431988085778480089773182108477196607913110907896826629187211314238053182900514996821477052986989166159197468992067086845936786609486174912757617407025893035301355567690445791621910435010115067820163444040595276501116675292799672939317739834246641286071776492969932006054731433540562021693730500930737181784488801284464612483133578558007940862561631140279745511265855612867348680518976270317780194124705812413761224366095737766650568286312863433793349370176754142423743893149875714506135511927624678581023426641891892150666512057960376577316432233406437041594070511246968289824215173675808542638334030943657121179842169941633794110264035568371855010458149327834455063288006241156782469852702867990644339356921002783788567605729956581407561904743488789576756491201092464443198658079538894869357854774107978013279342385334175641196605051879334582126649646769326842668733914416094334231841835278856938451801912438829752716711516935138760395383424362832728680780338597432584769694854742029528500334984256049669445929508356007953398952035038194888333667599778713438276317840279971010550735730585166609613156029842060147661898647465973241634907062665057724782969149466339844900634698427705101321034690551366185444135958144424210870693791382419527773809553831921220676496176729258806009082934810197340393370365092410649683602354305822627677440914058219840369052606269834892276801797756839478884994200277206042598693885646164322256297939305754870485139230818809152835355855785047613110273944439410406521401231624072538755876190301238694909887646870549760951291401143195385729207468240669591267156188537514243909234680137386924571361269657619200379841397926887703000006188026103468309166673174200502206229711493119301051364662977756699910347947271158310629723705099653816130440256644576962687530281175839991764494632503529417541532880016945303276741958249656971044606597746896336799131969016875485769223436103058965802888268511936322094182010350574238763245083715732030073489537184835102478025934716559473627230897350301267489901841119707011066340950587879515334217759266159561165009185712849005121200001921509521587963711352577975832394430138867322082171609061463034260395681890865280318761762263504705204108065519127119009651513091183601087335687938146213755335472684234282186734343056837807567868233525707339499241420547185659211262959443521252530369944557949996619253876898766260347494697445425976274334781992797033603439319338366824551718114928490371402526917432985799933011696808515562704197046424435542507580751244173772510799792275446612071188828880860811834269997832533732446085773122911501742291961988354674671916049258737146501126606798900232752409536987350514906707994831841451451203043290693093460148000939576823585351543818219232379920558166245214610470521560469488363765540810819434616830157119014648021665622168631967219484325298846432250722902928376612616903362159659815266746352977551271582238534701886732138750372903278546085111135076592918411066136704844268247507996773981851326911701802768016477294296270988178414989052896686085619983488124393612935797862320080635893437097161067122428426309912503514435415981078623614830411937519722648397541919258524456481695343616394885464318398991548033789489140265528158805976385512848734369265956227118543222868059043523322321776861416588837911516340558929973073057868757496946513552830156465850183993104629717298937570267858615231651134643481619897128960882133632632316619624470621789319890200389321130485747747638447486235055468718914096260964740880604223041826594109950666613416041181858345634455346916811807669265401484494156962161457006216446824589316127216672675986883992568963040937425239469678896658637447900842188810867264216452939420060965433701807334773643107335227957219693169386464352958722904251034157762865837571336611935949702906872221931351211645526078615193972085496421702419085096078080853460364174659725348326642881916571805709867951008845490208630500580491837049930003203359540074562889979484596889160656971341126295428546433994522704727178741906130427160385507603501608299704855712803706981402226926392670738490544623008689511925722065256639019063311591291416110007104357763152110990135139141125795727036518901652814135508513107036627184064678024699025438551800005679511331060161871193714222276067031594992466913279309769095388236692180667183740285173862874705629920538449478989738281329559684047018204225582485517533352256821735881061429791288019332961690887996406175645964156228983866684300681075866167894708422066682418534210413699222142600554670289659458163768967749209480786674878426806657106872908417230707745194170294172837465560061778402753053555251960739034925538285524872906748601640157320946082652501525336689271680061089702022819862823881712645864716603079362634009756089916464426656761415176393653275492872195993627308296067444130254729038700240879026835645027631277504202492177067642379680500248061780008954511410623708336402555089836290151671345469372220739555890802960749483399179676239632830572584048991290752306216277500490716251427241425902488614862410070327918065230797133019747472150206605197296334141359343571449999003823457852351483907109290633564919861218320854421830227273560344445673761467136303912933718834662909913369269402605607643673934636570579355775250262422892368570362628584737322698257719117855749066395837727966951375941880979426317101223464389803584438065287937563452677142337824837792930419807243716321806632939475318133268265653894852352590725882813121275845447827246616204027324734272531809270610966107328248771322065759894208295658747334242927649386988952751238323593421526677205248980844769198584325203482706397178972958221319796858161184372440768746580493349344859901691621997176399031490684435701225922809511266525084894664011566536873533726626124176104424743246211767489251122347130377050332777125502089356223840599981756790130554832244048850234201610042680680277845200206751764407769778635942305099310249236279262803437252839697142587255247895572835462315061322914282112845896859440150637351703755363750578334206451497646284337804411782665597659249263544254288430487775112716171468951709834872475659447346019443537851627088956038767927329162131283074769502586209777349917275855033064975745567076158781957578521596583537339739572552613245780056862286118426309220494779088016997124166261133707026696841985207989762050008445114813088258791727250315034130514485189722394124329553730331317249413736731518923850111707732684827747219916913944675431387935889788653990922553214918086295903995639569394871993197817723759823799063679824305946199625491871306946562925400546957896936668554139996635886817393858725202334169088268454698510131973904943463260145235775918123603964704037313933804125180016573764277758793411553643988241170725287220478318856732057703831441554970136131674210677669246125178906746747103822078553790046191408011072799961145355759827034819965025568290503205897226386308512227319918549915011315421656632006782149022972175288160971694658445276613257591699954506888674731564516373144437744014970268269699496890384190795482137576015281399795868748339629047075836943684580459459756448344597960336534775246261817701850161425396294303874611887889612727203451533949196582954824944935349448194865698514870169498242070673474632207870190823452798743115871286887429918369303259410175771814822985867682279061470983904142517382184854716978040163702974948919651617329164069195692336562845320249239209963667755757726319298005942425467644751779248642080033708803345267902219247303014944047805537000996452467854637592277163720367480783415244862911094098895707940782900664192908905404422048769325685152464813316099414303172541132175214333578541983851202935141554896403655340669031501503339576515692771933899028648236657003539282746197295676960062720697332177709284546898081044066839732676626533845401992400369654482336630967961570008306741262507210812915222523615071046020279321420335979004983566560706853698447887764867724709024930027676711424697023656974196484904759918034414990697997178735434527231345832565873879355554145457245568031863655580209868913453155154527922842896800261228280182998417166324699327603093365866889659997029919882046417105937747736016679210122001344269843756114833888600391233882872396802590960615430079252394753763101606442542908029835446943291032610643929773436620269839941525696750445848531800655969849294057228415433823797590001869777419952461480014615908704035100926020253454102617884863336602932267293803036225771540006951060006129149173499660107215404111102454900660394321607134104557071108612970563612573894495550169994252951867613502824378514461459861713590060234928310073737752742368593470697946002830207737158916469291597105387659380766556023986879647026600425719146146355246949457416089684769899986813105605312518770125093121236205855144766398679292377275316241349352802873232283641131628005812938448201085315516689336706049501415550182154227729264885228775428527565754237810470646704261605227481696028255349668767395734294854609330466858353441230358467415079583696626654843746077007943014140008624957083941827942345041748252665675471679118111387874520746248869312352538837440981104089705885042292367773565103252542979583198682225748492280591634188254057592135535658971490511170285031583099992618972615924732294036244697329637930608466453559635679433870835659348424354347942205534149052256456066184644074973428791693881220568466395674101926856304623423383463220753000141754354591141043495867937446076702019239558511792770249225150200598374758429851499945066346763154521446205412039506987842115532111761142002604811074256827691115422502601250017981389890179391454180233800888952763731509599081386889066931518176969901520905348232151426939188453345111777237780082264161817357978980348302313891855103977322639927292358911403652689373901410317652750132074298903983586069809172263997971928702190303432921833788876434827725829267210617216347816786280846094058877819452423931154384466396472493532973796824136175668757779858831346585799972516737955711967715232680932207648042720056723559257125447530434270589602074505554670171757919369990666822621845162793709768507186001902246761253154645959189380755247805838927548720855335532607265479781915010081308025548595778042047516997182601685138089130167379989660927833205234155954828013525861965438520757042166329566696311140109421978919728586131802129229429017407614338971929489720337460966354452197050530301686302030322322367931182960916428323037536135988414975501129957157717337601287957044484423285832797035177027526883016726897540879917837457442687224200085757645717700424813045806630051685382207795677135776816950029384871450067687239765056155231010519896374098794090724075764287380018812880943224370051807059802325608178432274685466258266178826053288587167618749060697496937747992676204704192514842917351879187524031342798365982272416275584705438411731549719194504288038186834204092821110674357185922978699153060910409808585030186948003396316648385630290028638887209109253732531437307107665173179702553388751323926012882656302510974773098252026632402060681949616856332882922044104967972130493014535290435797620739486375381072678093517398672881015309249781892494232279614046971398283138520320294556562539216124086736917992553418480236037959113020711268567285981747260485347467515229095190412076333313592049745227901018231811582801435038287274167567814936428137027044713121604018278959592122591888169305534979619802924674586334182149817838431704567866561039777794528937307725991722480882286511103308436413089195549281006017563267097017520137646551362527287527393492204196171678914606301714880285021848900943541317858598219899488378526576110945831708722072460629911037221225989179036235515578051645923876939775795116313065893573699651338899251773544085610422547206927342641103082167748382779542864009827521371204961921702332310492097294766399895551479757003509154405894840025736677993859161963315341303064322357572027609797887418323761997720791199007984922727762161227703098950871969889856668789918896709344048110882593506769608266035012063397941459797608210588808988966121637158211729623906697719068403260362266227753578830854406431343914679644717690597623253605489799954945463717439136199578677525606206246107435288564774220364096622556275919046818967940264005322195149403795448708934863201988183096489981297945105414439304898772208897670656157176224872100308317424823881855796734894416492382279008752880667246276899023700423937366990885678465923877892271687072759639891223293367300988712431145274110756117840005061632482869023613382946330356417640658790729348422935455312326100086302617069093417753363768647302240820737576895827929646063719090330993167277320311486408662568664863041910598775831517307262424047157988708532407391231605953696398978055476011163791996738233136490886978341629355021056205924900139431029772057673802469548188033785348201138820692007868009840537674227165633240287927841221761746465624227699441701771254873255937402766035412748618781572414165676921951484205066611017862457701703432558680988771721205575071089111868301805429067919329869005642779056461801085458796324640073758358905576490947320865113265325388226297790723715219835360545796291738856720944713669514299586228946707952517229499379338011992135862899160408906945058712322590674863692603871580482623039307610204573272966762275469824586188874383925970427540336010205342230881851676939341744202806371207754258343615746125984619666867593758322556079815088886964242900868462227821914333698594795788352373076708443976933615157190929950310407308692199228131267965319408489898748772781587950690964964935887291460872327026169808053167899329367623188373251429371457633931080227894899560632640725498896842686910123583936619158776065701459786195797191771634721643138974289933856734864900564471109373044491051095571564038959209673715769703264306228915870463249885677910609652292781169791760914739262315193082021552932923603589311678523242400297534222701224892773854788085538422111325742786555869833276236478373596995533494061359706261737731390392687574932400456657546805614097532964304623483837173873787032990858528742123826941909777088951669879648385740816231300566884596699036954664088086982328144473086496055790763805367263092403577569595933204514346911233812687321829803016887031102824283955356406919120688150270802332564496173465888766284383076293824489652373650899603103099038064713726839286974863457160917913927049678517920207088606974235022698130120761090441041205365917156310241732096111565056291930981513247835683909292025609347923934155297854588551930366151620856653337539511105082827195698010267882035200822522841396973185569666445754865417461608955463160048213752491739787543510734684698005652721700780133518599614591704796671150362570017325899438317518539884834792541557837518130179715644753513962899365890428997913577408770791197493198500435258107895965697332112305537417823656534185499146798447897700733112644246830942963708096802873766296337596125622194467652860288889600117384078661956963774766899290375326431142062600716327018578136987384336757632021605634076067692673420664464590103179806490525060551494688014483892565659408332040927595281041204279371295323800632668376966012930523123174019499776466355000141639069550946370477679967606923087586400213331809645090106123275390020393274357549054507575012964802102619308635809513088779870862615816823766021850724630621380568336775394868867513967481332946207831600908972693603726662697529164613932214671818634572052086211877146137088666776464949344141129220599620207069958570078488456764126633752048984048729887626634458309771210483813094916198183660927042229061877044152497999171457937102736356378966372607914371548937799933091741262771725323440276120325624677911645103943447978721397963659424085450307339183981974384862838473542782976898389289358165460709058308380153371999654583132134574464374385823456900023664788352636630138643674645590258802424260359215199663445724802431367192346845365321865781038917052322131337601667896028673494484206423717789763510698567144827195146853856119569963660993720182990126256472054054506146111245967705310904400056189619800514273040131553872107931814482932884485161456267115551059420659695170814215565741767576830583235072626902834966040164273036511931935239573111633358352101548936822781199698583537444783095333061296885959289677124687651121069115141727905239724543414665551936856858457703110128580320696759213534853021397078583943722973375297160465381677914172052269135060334642967352948506251825148571023108070218885625205728051408337815230409716322883580836494383602192007749808237365229671216839554470087909022798426978895748683611758095394166500454272311633218967557478754104927239096224782796373908941516661522764340331060808653817201244849215963073970212126145468787371621453327044864467847494063710193855248381248293942747454534667971122348555548480360956180306636526868050851386871684470661659546455755041882790402080716598125642892882285959468148320929615529393605998830090863104548107521021637237596840179229777467499818152302991043174963440582473542206626760604476542072774146940821744184892207263755824991275318998294561982885551936287099664967155760747235959326490311356346524790259854035780374871969545415538329182097908683711316061206573862791219772532657814319727828581696439065399202431270541765993817492942916389603357538577089994733983355145544392745919141335691821123785480421166785771911970907511513208585666811825901564299466955610572952570955033571471149866780915192826073562427520604105664604095590520227424585898553372443441308316561154854681671410346042742187358588697876811323391814505444461734163280323220833237906274045326365703660179537488119199101017169404071775284329340430850964488400104552834118505375561142058366011683072980135131195398996056228362631701194631194542236933254687836731084253620561689090748230184516331543398729428448517330111977687624883618863201663511261539596685852023421608717615139139921517059242195877232256127539727903175611739793125359862644942054704306858578322219799164289326975342971895750349520306941325708576620615204468571171985694916801718078853586177318707750456975552381357715992513709242488760528129301358702504160969225018701439248069859302150919714714630070187027392286092730763726357230754325084276408023978522930281127190977983882700648637519188814001246036564835320166223461045172472346667814632107523949778877283234651369819058966381329108164851240057299954998398657062571096191323165003030308121155064970478834378877575501495025230731254576036246316171063468927054666154246890963481539205826773302833823191407224511292643469394499488199478265343805226593825816268439198030761074141515068981725030361117922815959574592272837793107248453358298745407151463315565066745129321462692530921243706874416976523746547341886522093561718071411536589753340644254994854509055876587424467868754187162844554626029302118118091155430994735667959503633209101621814398735206325519990287672282966052642993321356705759187314827514805424107934994069228838873083831508518471101267979230440428103191773462689415900402047334364311633557543133870220790487008258894766130356932522024900643177899339870185696192255120202375135595448501877428949517625480610508404600040542133659451418540405033663842171044512481367855662929680605879532252383185977663924446737898778074258404294562624374630344986583605826863869828162313719136170940866405995221639176548202819653665507584108137652016520060218665886549976356467851379601382157951516743172043122255285288189446525466459082163810661179948801697101499952945620590358787898328634498087249443540811692572670130738952089756106398508696736523230248359242921934350757272299216043579152108752754673939399267528851000242599600457228922465448252504781924056703755351547140406345440613866667110822304276466288232224933807594496982681997075856791664397857293704936642960036466009841595715429711439017310912640545764546529026728829130501918924185147777540440652446762647274074383711540520053330409258332273308838583404032296784596404971349048917062420483016169686110993856864429497183386104818967100832851884889351095547004158759230227760340525071770359731213111224897730436647755495391667671002418397410357257774071865405536477389477736144867939323169473883164827207955911202889600454309468060502573495811527365613074880528965976157250272657881363143467201142945706999904305844267260212481608287833794481389488994906102155627551231312951826021295976731267064640092224070131607776362025665154749673852094774303883649973321308620998325611153790012140625926246071272636995323353514098680235704353269478529507868557016776921401744057554612250806227980590562893322416453916195488449080949602231493362123970430203536808575144927122932231920994191463428277866364869391537680439923755615852833667696202160733960560064603687694790774095351702201667841819371702638386520840670448264735069066546272022289282630975457490850918302778934425881667912883417717248833987122476497779362736902442977813797887721441337944327862947931321508603239725117581137145178865075150619270926689747557431885694491293945023458245921806797197621722305393928932615969063204004498196409835766454734794389136838817911715020058756110804154424253291118731087958065694548375665560436381472902777102610513239798228478727779755746330634545553894654372887484365613620927363880103926754205600426546260330530327743333574354985133859776391597774523691854928522320013008326932839680482756316809647832877781767073239187951898066875930886772751081481917985477907255926756176113473724557976401825974380023486226685223885313220086705402386569519678446545307970283155914058982883607226440527549396155872343186605994699987320421336386225507727052993098784476524750328010936350214426689842625016772067535405488228521193983708203534327040948974582303279684259188541518372619160811502656315057374979403429665988854834146731101945478128918303949032631500526093543003087094845391614476765072057940197368499542565364690936264722007779675605994587799862564826807436095635206536681857477910928123932906616829468036486947022018518847402665473504270660408521141173481999660946170565273673246662624819016510900094698746321838278661539312917090500375540438446135093279866357868666704766450066104295785632118328386594167448294403916202057816014272620303870208668793936450042185435268670347696957291546315700305589818086368436807410456034793005401251778130515050228719727818950376754790401885669667126897586522831114304210399321341959413352879857128982300392472865453510714808909000264093992319340331230984272013608430222416655777799119838014898531145316658066760155142143775513588983359635248667144415612215824971952438403464095285679269562022306688344545380465461286556439679517784373855766714467724310348839384097237025504835863973996466765078636639266655772319893628791888391877796747564711554812830770683518707177721647054464996012286938579570358113215044850471175035273843162401941383798374847884266088666403678798321669125998876416302065022585916850512641241955881198782604710187253786238751340471725877023199367282420709577141447027853145742726472712204768092869367996098883309049818001053345372024297621377222227367873845065870087303929478533950760388487141402650795700265299598203354275420064652859919080555017555278703694749306910872973428957851376734066808329604470619222408067230066225144167343439709042030532683905721148026333612832615020697297636385530195540536957157416857523367363572058543209950332256735441058847243147439454620388159775181722488892783060511722736025467194417079946707022891620524562896685284542647098556404078698912737069894244569576440855616352472146263547080604078671940470210774818429297038606900789115638352142857364342807310061514875725005480882986185507062800308470518096286954541138137610619956527665883411404683765128692895398639829647698813765616568877643243926295809029927458013507918846826709864832420652889383099958349928920159605936677192744464817002386438232031291889322111637723691819972527881914109633870068310541112698773716204056553936940590202971558920884356481867269599940681810787801312124764358208397787602047378472736353147562714117651390610714417320667136780685577920399937477564191365441755504339531962929386943117289697162639520981014751833355339404374115836369496990893562687456406220199589793359240898220872907315455301788883498331555144528290377171634870482228468214883023419443042360695432224199264853057656024907376357019319182575606579501016303257518659015830926315604438567716936369147436012101157362821407458685971650200930156601244414841952874493235127163371583512817209389241371878240126147417777376165960092092162357540586780561531031111813313187920331168701137009372674049729407922847618221650726420512798569995078651069168010378284691841945183900596045449810340088690324488719570876247757250535047253036390465163153941783490237367242208814330188285385486274969552081839967366903903500745166772718197867872034521367966605512185472925578507814075691066839967035198743346467391356793484971826057503111072195858514416893148394625502605790530328738819566417531888214287060156426926811936472445140897533021890118977944633298399495034343832544248374170654889744570537864305670357841991949042139290127033138013782125289198098985688632233414161686076694519692484326548560714712867414010200719668082595080789257118861825302886937811757990831856394308784748775257872653421441793263602082883421794861708180466804303227369898945034769054438350732873039367781998582327239286341586890078338447317832963159441670490266081637267760470019860791000818312504956625828993963467677768555171886527212538050100879379254902134240539781532295974710895559188482019845351246535298708926541122927039239851567589465333144351982600597700307805305360643130116618456558292493407204025866974628411280439436036157505842128040878916372536189628246945308207130471467522454123634771573629242000368662752300114064657827586057915086579035834379963552269428313702032480476015142970327462414757080687397265224274849524614434409105071760065846933039795063299941492756255094849646051264059854578319213233695397210899354289786585855988443643983973420413936570522246791956550455401381364208613404803836725118502203251005082196660293349367727626528072720455056916145131045803837329015910415820067826280856196307224373281618884480036340796188834100302496867541930724602607952495083500534622529238922607263742122737371249469792868307217789955835853734614121747427507206931989090519675647659503361125195471624541048511239499121689385713749722990973489418565528500924713263908478740991626749548236077396944442059437393969107280397175911504734780107734352754132336639746024598024550268150006646015847256435565894623024385457838345728063099393344245515430115028648645756631138026804245974579081307206761676293367995369766255443598752618745352082337881137116246425819931412935388799312844974358791327873803597621104304587118320592034190141971260261369608368183755088130290162373213068668952167184409471549162234985725607442723367759741300710032430009430339396609725409516716948732946280046537971168775540435835239040102281155211314444444815034059281374230447117022431530671866882560632355848725234564420412886823027291653651625244098469134035697085613219078537020306947501067274343739853737101543725790705806995745395864043730551769836122583731466298156785429772601195968719999383355967262785835244155754243926105415754078041667275376625266318481119047477321265628110623332879539380439267411354374959956289954537449934391634732906137085231492918268413043311360886435446521150328820767823535027349118825513361311621394053400074866259461621749843078456260104281554584750910719505745002246335674412737138266472559665201264269628103703339574922344607249033159312206640021297851038452221744782824000506021314856419002158333487162298413688165884314126141924855588987868091884234495169313063752683042634453040219519950532518569614746330940568038327120990104969630057545157154244126965997342659290342632074943658443330723927490593740117626047239842190950628760930554541556394602432878820318797406027449631502765900769968511748386575543651579190923010799986189866792066086860346502694577146806263160302341897527259068937796023544708872358614320973098415773249473198284154718547636738300586131537400710416637871573620871445360473085126331554422732754360795484149268318749070965611833701945252270961030980974105310523189531768947450068209495383675586160841413762494825634539445355274140250316506705815305990934454466607989493680990086244103905709041898713441680979611994897927615857948257770369189367588746245984822946941165437569705289348004726618643344432136262256886211398876637452733966223558232727797193689349559283083422720896808529927139403069320544720247297036036095562734162226866034738673909929652164683580431845266682242803024243941940579192407645694090089029441306356655564522647009144755523835530711965588922696609460576816534176047937542565782390965965074356976308419072264517208742505855135712556275861604114698127561350270266604676476497050186562444721572855099749955711950525329936421416751462178261562143147912734011747740106686865091239417016768919870755462328657346662812127909278372541410426628691635939881946250136331032308617917229683357155757570174174827724231074418672930599287081966668421853187825365370093223082095319795437854844381690302109020442385240617115808649072154806563243277695268535298543160925921690753853515430777091622343778868652407436471286750447451658971711299446649478923922999842263388566607973065764037934798115771853032758897528617055620478145947027989160354079175732859590812164518868664977773340789004495048367549000862641123832108852290589887688223452508093660396010230455638132197395555074209612690529614920249856188276133985007172475994622680070035456095697892155365749173283283045339759129658298658754470017301701233687611224551065389974294289279755930713971640269791633019991908407310027004764768092300206258984253660352516624119818220340795672356372084853410066395466401091601819558157432470902486129561453235763546824151133503940726793231600959527344185276318638309923271795744322541650453323367450895205836413278337538646762357080351785728230748302463426907434799062180904082775347506584147912886930609144907887186645925644235141824057609456704850305207968036202934741932939148319944353827299338162478693618510917030090394066285130527390357994804633649133633174118132351140022442039794433511099769217625270263883363038027398010341872945094824872095399663345884473091680860630813574226777674880544235187148495145282215327869035730797000956513996510351776690854553426757557783046908679418077011906034854816950951967760790027701772473693871035663381838888290944183618711364467785769592007709243221323235847144668368285107427795160594062123170319659781806299487856830384878282066785154884302973177632787047698951106913303084489257882552529327947125690051063386823095394119232631520956190881155925592539086904562870035937558520085740536380680525956269194895210064205130681931061254327980288786818514735655150499786864144971279421814965051780239181002396533708011388767480546498627170469205254615118310782525703056569410281879202796046391068647588394934874606333683256665536348115865936268146289767768167157724978595999573708946031924925108655669742352587210318238533714090006689793810233820476402134327640395791577832892059197992263745227664896192507462923732258737673957738801827110751772115751335606122987313109477913603796198402117271820873338967336010089783051216784521849329600303247814879378054277978696968489567412570483922418835298268996965101651172638503678244475692506776684544652034483180779514050265452866796630300167762741292971913232342933811583564072492951325209027989017830713666996608088628513119023166087976858772568336613061540599104425622864044275713246837978606993041197044894480432512848918665527286090086895938520738304759681406380208533550301917136009926395181962238339902000623747349700915388858797011457816058249048981473607678276567110043789824610673462395046197105245548320301729429317417253598959064051128140085635238319203415138444962942784273275573355023363491203604377822882050441166230482334736887321805353820650150712494262181928377344880249677389493018286273969034282649990530725978230693240613336493904109512411114853857686524244403197711353246015756373816771521918033973511457509365010186348032116831600292896591665640612859764823784561261285940127188064560249927793722707005423510591837819315534481359910977631557887456478358667305701761081061447059551687280091530686190805440374597790986001466490375190122017645897436995734150572740192002696022344871235522324552866529292852826474309557129560285125815458362879454500393018822249561592308431816272547955844823791840080157655256267856162514990402171328878461290377815413625447924066620218850181228995488757932841933692053799735269620422330987939343460433476311245704871822294484276287193601519624249561667928376906643703945503054105221813080264789242108172406765137201359829813904901039758625194930259478733848999208799280998080212258762901619316760598367265381705989024173802386919787987500043253297586964814678932236293564146904012050788785096728590506221712876370065684225665856938788467163480471744136500591122327113887795984495870836207924485927270919098037067111465608042089148552403402117444340379689364719980888916110904035623121413687473825623642936052905272740861759491953957037967372153501384441238231771992293994788406120229103759973813923403397342015081064784327733936095952766566468545526054434616310190430371576918055014803589046932449273835445961973293955845419683676692760684129638257612850295697372444928930424586426133564248768146709391228102568753569069403473990829971435891512534797184038671063530535454230219411475335169079273910145269148496053479452324964748077575871606014015739029082831817160364347220371336948249789509822176342742146831443310934665548598321256607368434639887194426053764240374645404839427011503510428791007897693067940393270662244008326520839058700995965112944850095375061451995225987795215654373700443222923468843277307860028740706228222462598963920160449594731727073477864309019909349066738484894500686862879148796940497462320439759809404321971049702459365421000293553246744319875273424873160420990930906397775254100955186382202168254908395193843561674656049399817952132966846108521047601646245992954158203530299143898738547674265001392388989520787742391467814159342133616054988511971832776328776568158343098981970980582745230067035151602232785069267982163693065458604839500429382472816875090308905757002415690003147695421980273710978240387834518473151659032096132286676902414844918928857938205610354021778082662013202752375931810284219661693013420024724017558636352091694179958200510061440384737072544256523684105465525584376168562618325932256538172451264885755691020330635127199394637507679539673969425620063055343310115784180058611882012664429282146969366322205857414710992921876106202488105522322613233501211347102648298108912788988535877080552875955712783588069712272568347039391266530652412843134085883601629645696425722271397960177136790399729628088984598190076916653288466748377920377199291434641161475015383445566535581049074479868932468365042608830759634352702353334387470556286190651940641851015321853536763443559726757331487871785385521202841295811721686884655779145263108008843586353537614132986815485989767478222018054457564310580765047042634955585357950274904475125046158403169384550814250601942443837380608459554310052570486799354340479732162216605677879809504498248698485247690298968179529264335847881994413725115634857055967373304866261172997988254995074667273824562562156574564192288674237597162072077683562692782710623669322929936998996309883515393743778857199916241149637456621722380991879652186065792717341503667021404007976297391247929868730906412950742352003856653427674717078339951280054322955684514140263923036619520535933566726333825741320099994271468246411370238296351714906943523538889030741566884270294510157154667908836426609070267886457513946094240703520105532479036689166087082932548340442657960193449112319134793001599089264082550209046686235490059271891684661348033836196095686850576857284587536698906583406305158143416393495945531283177692130252071557609717043523298351458879195075042852477362961107399854710978620653516174767305289812871287886073146392193362224564923388983579879198208035277694307369919826002428743312130009558517872132780281763159328077982868584981302899858934070330397557294568753311371008656734417500326600688695103929560579258218420956612717869510174577471340502716111541396520252325802268744567895704764339405526295612822913884212490657231324357738340088855949153834737692011837364173875578719090912569294529390871942264166554884318454958668438151931282589645851278900969622649148277237384251438114550928624414770016468445112007583505768480229410676496269988342537056155922940949214861225771392252090055475893802950959332664486313149048914620116457474861665155854022715875089038120707753176710842202422726612497851206130576142549638856113004557534551111090746938134290752605627177140562163008725066066871247879106618436527223189395258635270137614742716593700837201399208437696117975472334318592229114017065622239075869927950301669987536882019066473272211702601543283577171971298692653338033359313440980268644323483644072150502853592449937853755985054757097368486454825917481073533272857932995355801779290227162015982380856045548957307899781433362862600394425720918939785716069601657379672605905122461856832505009163050114751403278398271610047425589816708792600574847746292324462345034637786231686053619552127557396750714558888953165286661624002964419560109052486068784022941906393102376014359274675603678845413356183944952060459628273993001507757634357892852027061765870907057708296663060915578050760019033007232784821771539617017905207249351764266646745546105078538441522204859403478892837416330925915064873446162412837853887108683123859013193032729585979953711399597765422991652670395668617859614520612786898958792818987701798852520535085285023950269743239513132327435980845175322697366192031130501995256618235552564388145519146942963207178163436237150693224764491841779603624847202929138218152824270462897890855653604805411220935431856221855455699320246666319150020885634319246416257845551756315252704800855790447428353343841378391946716742826047507396746592468822099715663875449869707193843563256655003170605331436629156692451775625480632621192455043963250210659465310183459608431249043713428217853817939398311788711228052214796121981861819639821229357757894141447894923865364970034424642973097818426233856267916097953470852456550217779199016905569258746918889543759475214052524160702401417764132889750821135866250763392866553498845554225108816008432847249369067551168860278443270259421198708873711516170274140228858621919740735494336044915436851953034119627864642464681296912964657014876064116129221938790743943586364369603597452873350370748759840286172321416116075462517939960784879388558255570450757597101507830197443406808576780941570982417650199927830813412251150511459429140083318720076535291250606402942070970936911779697102154799515262203118589740398979862840852342885376410268104703393825513281220699748972952758789693668725034955867127360178834721389722823694258497916972653038473731154213309841021971874675376353553224438116216562267557946783641479479023895122132091098132261054441082247209556467281380111883319767213639306303849763061852663749417577914698480310205552875099476931276762777946255632816160514404153656493129178067096929442591112968189044817686407263727955238786512938859709575156238171536644019702491407941167041301846192104057721841857561362551921728812196851871351707055313442247664775310901578892723009200092470108009010468780069995092871667736670645087638129048511098880351425391683234967710831174699073685684380197579166781498537871992218731763684243594197708477044445728074016421954228191683532720198219636474414052966638393860101545250409399376769891206236848408071379701592749671507785870156956457565866379391033323774217941679362715848450328373890988575051754992284630990281956602313542048799929903074260690062238923176765504803323024580247114633415714524802510148628294164880214690307116808057809567876572808013889295345243958142067354344495331197669519606621225668193683197214887596504392848480037209750585006283191409416461352595876604257719428730218070230538973458577609934635647048940921733597815878494633717622773385116463865004410614610127002101981012879673413335866467010379436889063159416814243771706320246299453403236885491505701609070343049305701678790844795021223886161234434396703066381099495045694109036458539991222192583166707896017971611410180940072696140301812170214911203645252448394340186858318215883971594765397827873439526930359659356877702234960758388694287305231373763780724554703260609677235127677561356808993222237835061492535193579078051857208222183825726783771860041464157326118591651420071890988055905704625837152863768709476484823368860724135081237889627516377097435983102761406287922202817944359183415741732315067716161285253201973946575511845367486998964297687642467509618562979136520395770588050031048503364349216839165643896063796021710015966502476986358240090712324021834923953910202959589706945349166273085566853581053770124048960816390668333211569057907223667652808879073828782057864928405877695525697167711850925256460617129219770723973638168338977120603157268336649587648994092800491609591634452557946399571245844804120793319588915477859423360910204966778227769296127746625237871897514698326486875322083609622552575911183802982364556390331703384799617148716076230182463172540501178074607046349200110272981521871760933129624979773729904454224084362769419649295403922761344187516658710744324906562610610689483379602787165283974090083340785630637583423797205599790842408874912509084983040946520365022724029047376780087464317661419102241133284797700050904732397830400133233512950759005424191107528749389508565895153334963705457017629968898936504147652629823375835084528416931464688732403418433808521051960386018481722212033019510809020723904167775307152395600081893033292459743451498261235755108204533322821105676208777382936116253234629339225390214672068528748559359905281149970177812091593780561347391049310027852244389101470107057082066878154855624317611548051432483354884778817602971212448229482017361787144402433649197773696212831077218751321801412285311632984604225322736234296117224773081791182084108290505899490884430766941163351411696412927178495710144284056933416292748771905972489641534063880844198774599781786146008022102341658066388640060400578443737381819820408789164276348535850689289103625189978459432960765268506365449322389097667469402144669638276222748950050998540158863904569055494989638126014170026172776336210686395634454266421030519471284487169963139765461032948680034099343331087733953083618223543252019390141013124205323542812646782894650299273437460189183536348733756430356549303116322375379774045738673619109122125677052423133845548693334897567778434284013341332536745034507472618190551262601456607214422209762625430480018977684786572257719818470069145484540582866201329964901516468542390335169240400864168941103128668084560272606936785842586365024368123245187941199199326301257673897409641733858211066801903685548519035110349164861692858060530046755518589281710631208591714993708554982793069615243522725690927525598053108465816862120649775175497572477575414278465838467014937982295367559189116030212049068215226890996843896782552632252305995307633534929266438424471431079152289118576529025467540015601566241042233584332340043233710253986771656687736450817905160449279306124155356777940371936725316273708648634522743371078719302135288176942756064659666855973880838602945017160669752299086726102161363186792618777693286947412714050285316572116720493175932524678225201741106481623611094949199274404343455948983033228945323662731062907094814304723503160564528813681290530899827960650044686330351396738863984873997566046467250758342475433371970819541641482084078856137700186388101660327895651401125099102853292238091456417339136885762431471210055386694797725182711298559293837913711538253906939733232540351478578679218537106181936072772216140992911335441991509810377530042025669612095157557871786234722657867632042289738800030644845205146064667763571234514811928059120533827264391033803908731604887729444513382718437348339571245198791137012167384233509226949970086665035969105646089970254454234743159328516243136426861409414135153475623000576604218290002856536405341315024350225275221212564770536278288205687234049353174630014874487435014334653833385601460856807044370807630132909050159681497575126008458859019060805022949051806387496653544968433105754630871812229251212018271388821586942037627278157525693413127183535598486764551000509542904241586545016709707714193453867280489173062179488548359011027229245304991881737921836912452345255509162514379942200061099688800270191765120580733768974487658978391117030707002180637110732720928491023538171482104690539255414539270839254584010973271820228883102442103257603307096724155493795421487287318585472690233388782984461890997640107493958149159730075208492307290754184593435584293409631781226518162503646412855991596236719296599413991156681598146449262564759068729156865019729710205331240606258872333688249061341610407876800870570267560170048204823236241411151738282208802064520195883413958230089440535053053913125882180323998138022584848784121311775470392669514961673786108656896158613787087235721595454983885914647805484234198973032788315692982195823802262823938140789238209124499670498771258210089482091858766862290951092519652581410780866250947658666894828203815735187406368629391856107155490905377324580912287298902907619408205101853506454875035326135274641213532717967337124759618486699120773259944459712578368698054065891031147543076020435395588014721079087092912992409057971909725677112035423001996627333449942308135088811030335460864317064026478342981625616844020536511466982455556158092234099801380658602909599248708355528006082119135761179751385510111417316276193936387108479384528123951152570495055276543028525245176735946885035319545026533910753553382590051218082370612057368853616734864126255901523349028907138740925022134796579134104034423997736642523541836601900266495538773735430571883489180588497183110243173471395537764213828820566774980805413302834029553798210936841016824278789618672189239023502520013388315928534378477581551010536439698280561634598852398394415990160757941646236971569134602244246953393720442210698796557963029232584709296319287599892763148800818896171249488397010470655982712399369879412560459258024278724513769691726057034368806830165304516427199150662698879547902446274073191624816797395108778936133152636877574909720137853179382534549517747187471319174518511507661031088023662467442959853232156862728738932870259360411024013602185519474511461947128661266809771079868413214113950956130689589464726670933702370335925793190559337657138902162873719055076771250326750718447705331351013263508983777640554367717559558894743380550171595801987744488272618221540152600195052434521262601075562686070724280811227793685055190850554320556654199302900911069823794717741354235357913411111203967096748450484536158402275427377648381888433361101393566066061484840722183899217005727398617008879602844009908018377114725154847446158064654574073292509296763874397135011922535579267816672151942576567539940287338905518319716722408986459188665663361053689175934528021903343875680962206760216292319254450474509002709984638652114882517873789162719397242809698474423255523674114070551991556987660366925543522804677223223365800143151802815252863610858008160682089617556667051319084027632559417760757999721545871296111154761286680309992469738806795964177593744736695576977170421357157507406176012278665549603325593983030355015960387079479819343488647969815923061992751832975310139883821442907533232112725265929201209492002025692852352518959870316229113258280019189724913701107200391306117283935660299892597052482938728902955011360188383573026949342070656348330006128528849195719684380789305341253752938811902685847998749708247182172109551174634937276097060446376097219197804252446087030621023799201490407597226143670690701064060331243456692769828831568696905129949475900964086214757051660858371648649168172588330038218741499066014318402247581442310457377222724444326711512929191481802830104261807268776244809025005312973905230018394926942081962093959462376240642539082016638302102685054647242553229623672536409438981333416530806244228752917469209524841550012346601490861396952829982021036386681133500795469008458485044241456241774877289603230582947142401175191733997081385101718016672215235912857531367561895749144704498387809528004896229484012280706597835918902571043214159725787315279650815634654378980944516755229732720941480800532486098042802353599122893009262167958705326856102206141283130203892676250060815056518802362988335863863953525913193598948486731782099392897676099777802534298955294094028889346403589314196043302282089742579965218305430304065481214338721988403496120587688632957086533469932908732796375510651578524447307701012768307687258022910142275605513526636427695882166223368240784180573154359815638322828604122377302947698098108365153374658713242548318411143830807720735549413622552920663305975112020431880892965256340262370967491630589766444843740762185520318473203252420394180611801383245146969252510514130102843433062515692348551042151023776899745116945593171170718426176664695630071440954846479794392368805824378211578257687474882147294074337199587388969791540625604369196603577608848367030250946833234512986668319052206643795458462410352249493069009387068705807287277134639015655240590555499846884796970830844221812932965020672867206384810970536438141221338841801744604157518655943672280857924970663231377556188334326104351604430121718757013250626755290374276275050303131201353981699478039652852879299800681314185180623078774377387967138494155750212646677644290262946036322429111390573274229284725830799240519287971207174330039566459727993213682500096790140217277768966789131188349811914634224086177296418735263077477173668753475048939941305014420826165289646425310505637124808389479892674599890330835634756564977013463612279553797860055408180369344181316603559108267283380906042123910243319831031336372377747149173261887532736043031251444217607739489335841083191660054206304715452908917447657870357995721842348132603189632423162765263857070630598999879535381563780959875502908198058915319606931391647969549214577746660477224655766735647791667124263887296597556663930908159158146319033141837166853742050207677981320403707645324174655304312041327020909593078312263145638525197029060951943607405640952682870578873802915441888587769920093177920727839706995532628961812688341496351109080260011872205766187975253662578647911130577769324133759990847031955165472901900249282113355582261003433176715796161724307718837088186608391850210267276470008306355337635651301867487384220234030810376550276818038743268146779982407848397311593510883982476641010671004504626406011341366751945137555909949479906318662078640881049344671791923887779348301344255227210377766129105382294842011497614044213208952810363949113615645721720445455662736559957052819048439375291449549868212773247760295438442340666182551822097606463204779561313098433384186825652997266166171472266877773435370898711963684426260167570143564446932838846532287837775367188512996547519019566893682796364971290710840163630639014868428276050407823592155734371309046319347017041204110466045467299667170444366437346574959616465573963613274437541820690433947172423943247167231308097789786727640224567888063581528617083584462841183079111986120979828297454977218592064740777879944722739292461439784512142848988150834742840454989846752173776421057269361453271925303852586319139192217234391563994748213071348232617290586271999862815007289035438752295688698910683325293347124018795058019718904874132500248035339489375318257226787601457624203025801857892748468769465120947740795594713115764009258650565605500869447017004123146260045896021474925437672757096912325614768149586203587376956281189778941172075973238554175804821969614040242232771206666095374092107868213880890654675330373994932066266025865224738590467643582721593469224814313238332012021287183881060762270154958294707697401133748276683295625915722977673571592770384546595364098080473989179617940895081228808716701720020320395778504059422570832868235211229488520009724247229986242612237001532068474221679822521008997092834532028141428927481390243175806582673765603694302383919962117388412999907568950279476390159874357833107491775998138497201257293391899963244749692158111049448773789398796411594537508879055994475414683326088351831932785584138429858218541243701958356164583368525098699633933196004581079366799187066364873475482757078441590518234854428430587455502996183623500417734256041740568690052233622819003375594630263042837742057924792426602802128209917685374962925795748141983491361117708449543586414146839464862791709887015976671005934290512387452454999149421455068838839055740922068267356462378369738742863820596140009540111407643550818783386474533594209928609819535999249003509190694578939130994200931255870675514017927529407452908656280582924433089216431592231977431051136716908301133761854550911845115403523218771339788145241675394158209662552657458860291484945135999459938026134585277604543370103996487363699836360039827298452559173086398814793090195349151309176378738564409326705909185137458420637998699657080191123695168067241686684729063981221710647583846676697132173771312310699110609914446193715380162240028408233995354785006532732047482720889792277285104151511301223931654569511329437771449613220499263538689875884448965748837211179263444162197152311659068567142139429198270127821342869071050370118284602490930520464352562958322072876989764150503988673827761704089897862458379664119536479930469023409334447650223807501183504814608765160520692590484926614980711054287793042815180248773792665050791682424890967234634918520616705037970214759263558388142423443986032703434675063374409642155284945182282432206410321724248449995631097390484227302710853182824731515243481892311222954758767651353875633662700381847076460593941919785374406694522270357225145331906983903086929432481234964661353357123465105420814533884552529640752219469455329269185465444559302651108115502262383116578444795401516788284368187496747115441182404986498062414769448680910131784009598957155278304946435164465346878737408294945528087958205137741744504902277575889485597775266170557856260432694929204603763856957592508985044229863965742433801643200131344700126741574573172949189573643350541924178600044347928727457376356380372008202446554410627966742022970732757082023542004361540329432388524708160122133237113723966904532697491538201178958826931029764090943811926160879901779828944147946717960882876778100793269379947640511518097615298819589633004750479850316933261067945289440028858592304069553846613085184909693280571461546182230612635770551883104669803631121800995851605676192286158950528550535392743800960567935895954942902902075963959957018429810492651010877439259955410656434296899441858217968703669748375678212735307789361464199019399787367827567206150150525707240245495026131531235210249656565269220941801160099998872857183992608851783135095354711314158773728850647217835526809364967390296517047049012294115439325180133342637106818599574332340123952968709737654777834688855099253397632941333481881463136447954455242488585630365449833850273014485734211458054089673776913685249229864661937780036587764304991001334004768456732270090785079294745630880617788239532665166123830591364842500853093461142520516179927070318179231185776520419064282941459400042994784891883064935807104723037211549418045389888470964646946892168459130190935690158631830161796597142554174242481726426055256120572647818236154629709662685383558911599425372228062120816233448090660331137364602334021102670838441984663942101707844872057669458782245012302993723045907293597911675112565066617830860208572106655789528903876862266203024628284465946652425056760693237057958470447123167186973940071050138010927485086438847752649925633871776822243217014020724401656345868754398922707403686665562822947163338645585680109321823445316460034191799605910069250778824218488530233045374531613709794445312081644639404768720104017933520591798713293505911089755263549567241184973046633614350334423680089202992385427494304208579398838330966536670455695628359493647449600484148660365855220151105036618859343933937047048171882943063895636534493998839610111820587469754017276730925655918892981283450905582708640758435217468687421440455431063694010398318537542902643768365854523074025522044976670725496180426727166511332966036978949377071628737920754415175911031829319436714125044454339533333840485519520309760762771781726401768886445768805311834632073411137914573195466943388869955722506900505268267870240892399298732687026613535680510745800596700188302804162621597400366710217711240594657700519454558515317471169665538074890658385939303512678605304861624009073308896848287287891790775006794913982004957085856324654085572436946227879522647214296336676989609532066000336416992098703625842354920370673446029556600296251564322874354412190032400052333925086101758584099625680256416938263840525175829282290682511199864830671481097055456117670022014881573781892671643278658554411554625060073443994740973657731576251260977771051876212760733826945835425304985455186426516449912291354029486931359803795919861635154990092165124008997985823639063588900568114075207268543727240346020179708970242433062321120053521917855305082472539026248603323418047648828859514901434100101855134345974988992682444693300607183741955201928308159042883255051005380040668358667780880956548003642075246389860880049010902458396674753542039262614046047715906886776919876258349635967468340502959763385951955081391066278161730900526473620451251574002273553609917418760423390232211075070019153371710269627231471376555221385957105228512136767374171476530780194241579916326120076671692292173508108413657564454984757002616249307744992598294653225593502830526390627911723018112203619695252137694339910913733425127621612497081672234721085808643950943629622411280443729776280238548921250325721524244755949693876768773423889493438465894834776216265085834439638121706173947460031278124804454658255178413044500107411999488333337499340182976678942185974494181420473513597489358418282443873660547500347562164988230264915102292869763233488927408292364334485721416612484506689327855830023449019121416597908536402327517170857020996615646386742523820546434446650573632962130103301755179099505332603053248462671026846309496612540877030726150847528062632717743044781198910384811140915583956508587667219250733593123223530334061856067522175821647320885082506211612969770601033870262876895403043924272386793465356773323146935949887530177455100433393774880945192603161982884497731316728553982647456258052175248947181687109666160261631263493796506368198616934346901236170997397414384369548080099883520455952459958783854704715300397045340014687171861655214413481303544031865237618251286992856534464637892785510679649661160987384136234728008377250238695757073544762629833112037845426722262277074834901290916649380925247624889165918437216031444626872441570713819213066867736015360358900919564328898555062398461312235633114854796306166385333725468170007751590661789768191826046590077835484831419581628760541467152398828332705284735760577889859995319982952670973689002627920425372548032422025675363202362942861616142161990516592137931636457773854844384390972361010213679699375215996376352019817237903751987697138285133921308708793972766837053552013729001585255377510071766028466456825815607359806813903500000379507817204682813598041715619644658638481962836730875252989417443559052573029567003682320929610619474579407541388694872482800662417380827494616390135522996761082780313115730996174703703027746074223511328382241445905177680115827798999776508721538995337239526556029302331698056291296768742193897958029530769324257668389252712730934094158297669448842220193388121470719927183531531788320804231275397265404248004036155217726493072438097204733882964856227119208911550449761687426927594956159388505579902710895332752745112116738406705047184672162876983540698625932023604988020195992580434630964911835153144938078295361130350522007303912195071272265415587850828863592383024603958068098803789391528637343426987227776895576794483882152869246686352659799862213803257440915818405640112006241729652335356351156307127762761059597614583091235589504716503786193730877282419436991803459050753550061671320459899649499102830904426362754499827986262067761937393237901858447120689975859038772904232952532256917916350940629770251313756620988177145435079374471094716139495637595816562252106784539463969543813059697676467142793755009675861315443132415884089855281913750782385389358341778524962414761193023960330619426807807310939362098103109561999203550515948856067440020405491415373942342766315357864484092900680457537760072204017037729210162504767143347804322295595586733566388574497762819171440252862856079786937323369643216550086276209246321143504690944272339299880830366031842122952413513323588175816892162385586314546072696536090037563837249003567040011142938144553538327023165311733067352768211186518616186093151502079952742892387970672972859394617854661602654451422524605589283439918362790103730675513270381918359044620058013567137396711653029124019938130838431358824103620955084487197170210232541704469733134510967402671241902653445048379968679591428516425414810160145649893558739968547261902299510951592646606090734615322204126152010358398076938820685087077584369142227790856590000908114495891024703111694188306406953658901586657612440241832482210911565581096958395492855582488457088266500005862252699873322913716701341742481718383448086587665782349596257582606173508720196887522310310457672362103435650998559588132859830901751983179388200701013964652323954174922883224658744047128117644771788126860334404305844196960845926878138141348572394811062129618670825479053831736602323078621305077275382342302017626452348896305447789662633897515875817779032613830850515698063195537085327278796498702047154585472382482767539697127053147688341918687072534041672515152250696618191053337326545565276978593551990575294004528157380320238776769097934335268522330378483412572154499889742570640473233650756378804665207818551710969297398394848033573346791174573117121693059679464254680158923422241684605156703222376636508740629047976694710131282847288169280839003193488375092680412956322968388895423801526111384167968668384626369397538610565430314642247954021452146545115166506609062082071013040793264601367435696631628251506799233117237508792800095451525176721093989396936511229560002257030689071286495687272508870955893772606425573578383846671971789702307226750664331021353430185070101117947060066942503904935430781944315532684789323012977428956405947282398102866973356444195457065294516848688022827493279874010833675067111141942940522457093804602306250562196671659897195229660936356395740920815979822823914313920386069456070899929654268297193876631275804584889751879084237841558955419191103191573900343421026175772541368690060261198828707152390018234223364405488712316324353204255359021904930834278300303165817690976750629641496529314649114583391470458781710881782381591437249701207478533110096994737872745757511283264710916931978908741646625676686303762207489919569406763923164723993365714244133380412836735801900589299285614733085967717767221603271514869027755125804943910061614782095406025030469534371189763024392263399509815273410876240307148642191134379629844604402045337050223342764987421597245464041271419202594733717778818269309907608211416979928161691258771047133349861028237056021070249254085082536680318936320542344536042061845895042284796230295312507671113442299788686088747374662188394406948220217740116407554762356668618247691616540809428419103801086640188612976965897172278721343146118997284640965376813197363004067356570733097450840108616346415351621989381291340453927699770389788999099456942061208308532172500063900937770699510001571048550717372496128597301704914003484540875431902063432731348790961853632680661249714997450783974010573790054773647779789157828532102622952160118478448931295124599129714382906868286644505284635089684255851380241380218192045549848718361518047704154279269048365445996468975882502793584029721727503885828799461731869370648590383292062519641213478436777379159508881929321371570919297884702133308271082519667972944441255091602478280290546716107510154905156465792107673437945757536059897595395325241538623834496116019497931078862383519523055977993687667162344997525258599187041439344057667746658014927460156577968158391260076314787114871105777564298536963877829223078020658821281869502552531463501295934785882901793067972528375902935875317569430940129397198564448997082099755048901791675068416103378883094864268830100054721610803636492154193024621685931052944054233204030356938014126357335533801364982167493960638139494972370986422493491328736963154614972933639750869543079803841795854486552146307276131739246160552990571390189486318516404452073968222687839167815796623025459615562794361854893527394696543580149397537360113006217938923436041851799975819612325157147806702753165998867122516302947923445845453240806064192489661941319893941323881481168021097330340262879459793189639287400139036287258007725603317272355521553463314158045780629868598237140648259758879943520880760281219635778780229887467122371997392885443544710694417419618895752931453657025171726535390303794871086367427342236245002566284445555604544613331786743060183883308591476023899258567455711370216959624233440055550121651394306126508507624760203651676019260587135022104357587814200881399476650951257871657537313576423361729662523615687649285836995523336364375515443935986879680035908461950080326042700823166155324229710108314485784050397231920208811870533396964139122955747257951662300671528590903060536511738945719333471199598591990501744116989420483093433251339865101039427183540061884413817591199354625893340444383246402995654773508626222650434136934730169758404724550142860529568348296257837628721352079838003024742211024417564165386401679272761892059188152594195718378381190575851452693553058296564393801508413413023509838727635673250630374160882776294319042727890560218539015519978865755314846558782788004280419848487953956524563828795270897844136235144976101860935190684103799000867010490912804733270231556952467834500278328462738940455397005236992322112748447956988462063742443533967478414448323592871519282468604602053662738051356499818838380817237420844740948249997853133128716213320468513641736909320366445755358400195496445329908432374574846763833351554673497845751308864235367475180647247320891576650398217571746623127895861817401502344174096870472762243605151812513284610826836224494313594986393468868534604679425197268590090000085192731973350757361213078740058192302726042370120795137986359862066450583148585949253097993027889816765340494170826521769377395926983553562105980059711812508271512553120503800115465192867670958457520845931815467183273476744977724235885106143084783546797789113729151687522334671210329141286700690901596355805747928145913316509478914856625109104330879683828789436313041183049786387054254439155342911674237917121817059137337787838167381849693751463866448850700575210528365803732445146243175821612555124595099954619622500149749128567303751576010736223623903258273380217594429109588626960123020731391548129134893118902961006916015622532353013249055827283190485881661346856214828633957440483850046136751379693468671103224535100241575231137243385494470728979802899802693877949046138426430870569553136808880997860710962945544944681365523795885163496337925518496619406629826483284960477770415357317528540151747255367543740134610762619520387285912089262201092850953510298602653945590273545704156715711834633544642938523329424041721791792121837727685590022732192599433435901407551263296763841185571736394397069040853167588496785570562374526531877580207566236896605580562574434075164732194452424432425267010284356753507636381686399848104741152578265379899747706976008181260808180995238332363938090938186280524719138384461250278156121630112966610387479919130191970925393933467381503319301096676886196845486023966280444201110188007320903353037384553136460106787020548958962022494707839493936198119572877559713560485423210542947062119397322268334068000229890148388568006467666529997159240030370896739836646644007978015557660491217470658179434477146480614337001772973633712134534808642113393495415403777367760616949018595311317271895173042996196347580403990294586509047588982385162591082209081466495226123698628791841063629252175702064891707540787083829656112435498679089809373864878360557490147486729510972276148675201327966981511708106748441317529226962211190081580481691234225236906542694866000809271379036484550962040490652708477140305422310988134953055460020842165429666881541434045117372353448233933884943314478725547469231913684347640753603264634222520033066570817199550601378004534157588939737997028731651801722772566130893844275792460923432154641210197425058778281316904805831104667478513649122755295616561648485013679312210733077699711376841576467711451295372431468433167300684001419964986055196220430162808841685268371696647513934741880825146598899255484614681487549284966762177163763982146077625594451429633677535099798367914515353072515335654731613714707042995187753181575255362320054481984073024337814408982997069443822197480438714954467418199619211867487931363540966709312149315100297580143468946768388614422666908829761325954674573323859407348287295861359441717054985304317239016372252962769051304060368885691379989835484185582913201720044814304787527098986660474359564897672372108442223000882514246341868825342246112020546672005971550913257628684147358082276119146179368215093044976691854936326310017457087769796873101958973396572335549004702770024601569465949164250409735372096080804616034561249767178426502177093489328106850836268034496778506232135711116124946923010255062271402505998411527053371837855301636898326440095511275519699079591822549491006898374352407068817338682917253659048576523628706121517492460668401577363544908902258547129457956918625950054229567370925351481020825123650088750017744368763361806676981874065156922031537110751464668803657671544413160681539829983701936574657974551452391850145510206414971378271280719299803153201102540023838793087637139148560456278381202548487522162493415351586780034641867648358637670680101265998360382017963721642466014340216752092371974712358764784423227321087396445778618430173236316522250156338390815564426534887053202501043716582589537561500820008733345631246572214076878586304264081079233725751701563279038033568329346449970162584241708428381804527070829674594812170014708767172355896380201361692799739161037959691812998957166237316328890803027527833623012255306257986112903964678520013978162620264187748697485049158573228477713807009076517567439795148730068598573353755110527473282909155887238396846367383920142862739809372659296624853199653837244672893942854579978465749923584227195171948504982883532387325768845958040717822470735961055133119879863702568101218862671376940827125038538190237563785305998518508468240311112587516888898976057050679366266714826096206415342048135643473844575157290346152131690760792639584258648066887430300411135132492362716877696896132663087962280209732109721251206535201722325252443648671182621496420304082511660079043402465069754307140616816760769235012474424581590118201254166226333456644729349540560699035627625190627875550295384246645386773603507890598321860187358517616775938295975960122267473143999975093924813428083010568800369404383007832600026521484355995729115991497584651479868347989635877439006240203880592110841739475191541100479497763013047527713312717834649761674878067515566901519396513485594759516138476584550064726385940818783609184494539729969973196108189277269593516012061872995857620627190645933102792625058723153571901188552997174178327567464365966561064833902052268013123219138648665644503892074888648361969562890330124724682459626784692163510317119593157865065746819951323736417891646116963150980351319789024255983214096633960053873967276234066457008066398043259990796517512070920024280060422318496535122283583146826130413508410984768922519534104143165316068403341858666765269797303688970810214371079537669410191808616698884751348286898205742624677495599950525066836601977097996544340321948922555142132227212252096270237578822638743065230605242584316225491568493143023122322819644795496747823026858369608911955431098972883558293919179827984472006868137586546352821839049187975376394568716315010612901801239913494879083064252974676660074640395944021588936435260312787799392746946475100149806459727808054930514209953996084706905238240359674650911234715380014055746519540173929998944171943140346791104495454863126982696216520020733412936387854494678508469797954017780795456692616204652513699369357811238673797342565623645547845481791530945760088159562569400371857912776854923329390002195319366848255476918876648915806475955758540493683149186164717677713699316199485012981073440630481744066239758267235726149836828239009752504378356902386834770366012587256785849816317025059342758490170705578872005516384810435109632515691865387808274889749018027934445445315690815989271681231810398256273702993883900458941806993959581465046812187122558455670596021199347616238133070732061832337592580130142469334825021443882997704273175447019899557411420244057630114142834881494689248387086085347121035060903195065743603077698544556968404834207029451587097233167206392682822161847428347735356534786389652584681319096987794921480509106772735869826696424204023180110298627044114842207389995561325537462951879526011359014069793804973160439114553873977671828942097545479479436305553845561097976010273255464880815663090166199525357664168442187343494310427614904365128351415995736379255547237407776845102650259576940375529184117937842346149262383370835461489838482630283607620918135426433156999919353942754386527018829387734210470525529840641124753133806110129653844418454634592187421286986273167752064964044562978272499920284648657232472103373736533452615705347534153516346656694215436332022434308005997908024853574269261055055171939468434869968358504418540019936043474156130863600802905314447490696303060523660674158657054306730099532821374307117338433050929329281002062063058558923284943300011791172972299277988174861640650286919353766803576228075574596695147501133585428721789133035415172871225931286426866673523352419072298343700466785953788126409570634120693986289236378693165530705712560011027830769438811393939017231422918408371474468905694982504691893400478418522552421441586066575491261451994777355869342308236777051920765343245482551838723379633255555389430149877207559627224312260430012556762256628357191401518910773716194462155059764430297524912178542360548834039985269803523496788518784679770428546528189003741986552673843239707434156139050791723469619998593069811579881684705243373098208044434040721319998739022826812252426346049239592554118246126224302049528624872797662222144202043555832750972465250116086874814917810925087063245724630027796677820077980894205210990813602436504452496498787142774875641789995129476524504189131784352660623610944457098869023200581022551780797979233801168618433377674866621453706967168337714785815506630704803748423495300370091220157609692197495718768112964474209441199405287498177920142792307250902483804736250140881252891973613031509875379555723842879990797367199850151260433501126550811925918395891721345185657806637277145192837630259213829879948954431797727043855681081321965913215991666336141617211717894519213326389328026224197314236613707703704584269620163712107658828054345819858194600202484063600481247958098571504902926210133798605254741387045325432315903156706001810309787280345254064073875526664816732664406308354162191729834113518379572699223638721063126418790300122684509146834731673539911314901830605747381809080134263310035699284411073551561422637057489233315445078953903410726467430981162038113214861033032933992273578612779439706670187175732316627761877611031489791162665758189738673316118970510138912501273272869622264740573175686454903721447872011968961805393100239034893903107441552109055556869304152182726994176077774200122231382616879590435737137057222784416365073306955795736291230217397219501158428473091322196981805751639697953895960288302518740680126792487174346024545412096772310841050981956045666298568506977749885808626816227097011551151951640654792845891500739881948013007381092781184329111051720470111149974648381031794453034849975644106617592429971826239598593013435979001929309121967523878363393328124663024316339380897980736460882232898199455255972562026667603944450051074966506545649127033237612385198528775429829823061178799932514221410561419923025616917845908613770249502037017501936129042481843648979845253342293897865171612994664211166698047866557520155933807378256710830202819383808350962317493797717100252463536744437203135272948345098851985183255593483932718787486229048617332601794605461061828084435908328870527593877457405747850786806673853312448884402854017081155999161613550926499783041236042989630348856764293045538118318264252857575063817528363054644922602711107647132390077897064532743166127500224895645830936338090699542016052265799700681114495937629258263479984401058434161191740510671024671032853965963975561631086908109378372031622383276963107721989368737703833473280615227915100445247379504721913792420859132920637647679568674190428055925163554245331538813168761949682500310363491587283760928784100103361013121359995488412201357808102816682911549085465634311964092837686683449656696568579471795475249516350573843361202735530895922059187273932229933234113053668387661839834236836789035946829658895891149678742599368953680972894451918486448792682821969801920522111406750551772611925712085835386125593996036294644824150355020007091344876366137332061996772672805190881594980321510246807709911812468279640007543988327468616313469483133203222267536791415573425764462218813144174855032431924874954363079624759861052715380363608918946858026207578585755153593404316089465236147874262438257081554843221887789320185738092392539032784308968800756903754340971045510463517940442057412366947455853654633710313149637067898312613605570170289972492006532454218804654784738367117082728001545211741589686217761374259915113813444065628681741150511791330949521397506448347215415934805004559263540287378641140205454394439213644477123463912474332836677960600752314496190687398982136566399191681175951090959424130224940272895910568525979531491549993543452423942059282316564653454636919934799369154832612789367834453092077776101328566232182298681689941165605981001327844458040986066930345553577607019398130334390827710308809570479133614745100679628681808281744289094991442076874369795530027607556893838328065268409204792763267971412074609361592531614392694290846296741688868839382396194078277018363140658157241726217877899866340586687893374266850963921182948519758470430784526744901644470101616457542990310178528529368874431415352775145924163652598749429778211598661056384511874730333236445670725768813441393989241648112886674314206389313505397092716007781437898099386284959176897951426804650081435173528854333636970443915527436022969512637632847075993374464808407599990086435498301243645949376327437096864089931439496080150747649206372585377754580214838793082624962096755754849720042338592414225946780547247332319689334994034816122035786764855445274143428772036549535454026383446057039001929800404877394572570406052746738434289492429841421068232891785620484786698110339708897518210653421343279630727884892429660918533959971890507165977212078577228591906479214319164629954993473304338507014669169192122003830840406452505600619986075020550080724822922159683627056088180850904055471488057383449711077360842393347873876969964281747523413294309029080573044838679941997528380362476062916995193979251058224798747229093446684785104096305041567932209242540958820308330294941835443350302893756274017494684145031861272527940895795954726137344391350651454723287550406716174481760815820659175946272867626172634019542404845726054609512141354128915667090414557648910510451410289339753541872066798692479149711995837871477268349157577326823192680094677627598192131647259793327770881424387657871703655990398012035098253839904537793323594591746275318516195905027311489616076372204791778474036487931890515281117621536868584529349822993084901744859653394987390783428338084444863551742760675137044150593471612408855294012628604870415628236032961249271599252977711259171074300488266762548623899178445325169991654561941446606516236417716132077687800047872034873722872831768838309904476685863421034954567464749679308347844035180546257852798897669984331219437068803956527295359197061064212073987421232233550761192751106461762680757957710863989899869160295829032171437942661252755635467625927335783024682007192638971245804210087071705554307435587938999426563189169550577610680636365759958330068029722606147562729016831455405082447987153335803308210770785568066847355647805469268616355272540204911859218919386983382094554363450522729215734286643805313578336210649332205034012503761550560069117962165657734610922113740897832573657511693269952373676139222740022332234474031778255070825222380165661454618464493161686711747531080378515205696145581707937577512954217502981280803165165873712319108363387052651160307093442553873115445687277810331643861628022622750042340842044186059582868068482750644659790756621574151933883178745862021552438849325471319759317217742339396301295045767901701778324308051177876729110868926077626420072609628536591810925308315765172449513979470168510749372301713131049466865106217032376541196238277681582834540052368208035682240353303431084211649229320912307111065808778184423500778912168401227247144933117207592195983447692538406333423469395151671242448174022834980645617202117875867934928835877183080581559213123224756455150109941170133323319549351970546880233619169075191728652866290600909888110198632794018957719664203774354815776483357294928026777396377914772215009212845761379236953860407285569124957615899297776857810898937353877925181688858402541310505270246693329017615511301181727116053892925928236733664711974671259208849377064824103316568870318770030751501171295968038148171543604419800486290962472235358308845641279584616282942986466555249045988822889735388982181091212782279194923105818903997408969144709441838673877064280919779132158247095583062379249717592305565019437051836353890514806519263585191009383144233200322737800806599836003741659350737760125162885294257669026194262685540208881753782581873072092270252327388698794363695058562930115755049792131976994669529842917793342529825047528958155192212923283424499775222822751408638293607985684229775542510575459701765814303820973094934548742453671079370373536761012444243866406615087777562963908657938973832209979813318428534416858716426823163673360082482050799391957191203645132333027798164349970561080447797817049502276581604007189173379169998864927023669623945195078524672113466212710460495877736663712510552783574999104284220941200832356642040494772098623930457323493898388690310782968236353344534654586898444034684434483121437516337792376766449457351856630294244460408946275171891342367694175238761374709573461331530893089813135838858890139950056463873634094734229406263624516780472534869430322431229012711809881237860803640907744736057466803825254048089625891809819433915798230493708708970581188476815299058829297980408747122646701325004771492222825723544325014843320775725502326190797622260978197316762271258195696697158812566098714301251092210928253565988497187296641544548467696725063214702183891348965467877858569479544362935860432837170081866729841407845803418479528669557957175922373726951037432436029620022387196234049418527453024912170303563928887429512273414236251460092096592775429978244386080243221265272968962265738443724240702490250054578475881074809386665864973443431174774274913601127567464444926751482755017519424691812736292589849658333311305447355754943230109437000306971328489047400993353318273401591163379462044468372555138553179750816362872197443407876282996054507438132217073844734591753193929678600503275807939490012397721748718965839163023986660059643734205127300633719718042296002228193444707140960027246496865659529187638628476797565969367709783753961408609553525327503385269501236993308699899267980523470827324840183213896578110112044526509348151227702159441811085057184887862902829066035784828607968713694486549178274587813499135522276105780945728781251842974432741329248362039910523514260107823667877927335174842395032902178673679972810617976941701104347111714434818989276555671255574097068022648747623336241344781884330747303749882936751339100575193317926545698252978931893854343859664326564821823981375525204663973880622771471492279977177668823125571262723274432052085383368476019836473095298297054310127684526358913526130944251197633763457944601005684135524019569025351046129758233660388883535698601042454758392506194292879477129488313166410471865844651035909340038219514802222040807629720608990042725788004360688415706918620211552035794351387266327240757233803595028071085447901273142588704385056844457747435823149686443129504718858089215162317276193684930447933012205250411323494376173105405822109850791606301247503440755439121157257908372698948973149755990283112361215052656210503484185544702613825779357487712643193329017903780479591524003810653850430695344362369922318687314890693814985223173035303850029883098300996368034571318578396176997138998507032261738038699556179533699282690868672634341657700762480902956964070753315995401754621904306183315809135059861314537754253105459375375997026184940141314086017616923721014169669350740219895167405724444771934897068680832707789451760402125003091120732830086441690149619945947329631147519813635070611170378961169287878879290228312366778142022004331660881845291283092691591900617130351079794579243165166980500290335796562646151564740005170688752206642001546281580503133612891719455918287519252425618948814840362264263987940045299392635198964796261290775550398301528479250459599506476505947456445419107270468494247269768861598737920052726301015369523019683974627265034147806239469009347614678661512588159733739631273741188525740444674748599060434400721685503118838756540890960879102868551511696192409289169277757949294901453522154897013301405997599450603699144158444819771314422109098772212267937136439290610475069957430323795217664013856980798149675537171572793527163992249080147260417439868479254229599793268736702351992892000634863632766075116838303777220200219885105424773113363700625004032229216379672680132411236673384447263576647145179497247168201506977697370333275226985176552709471198245380552330017328980483110088558541669564901174971765388203953444381226941423849272004752715197292253902252556507324268170997628826082990262696391756689727450168129548905788606668476633944725733563502168772534707877823351651846002275403169835636266198592292215943811404046816062234222833639947614170567408025561066418955072243462817742084998998642992252910689272028309824387381676388573291512925336908082057267235977240203882891769460274393886921182248193176682142563477161610621956390245470605075975158910701348916626471755216372151434056783805494182420757015979731576667995419944226849058686705096046193192942265996209093175343402802745934368572121979124014637905889789789756140624125536462312344889298405933024557944882177553611731391364583650960794791169138742590690035202077360896736555811586230490005138443719931380784340556671844090008738131393308902006402830551590415046550996206511555293139948556004023126189280616036329306715540957986951488287193974596125776969166465292734408543691813260257629660539281834245262392024895404302362829883936190858310008059644483283673377828368021807743734272745641981778295174120167389199993867778425164223614881101013161958026959617287891673959524422882991878794338069123320184204843142665950434909703479540774363290713300026532637333469500654370549250412542305573131942997967575280516484545513869199794924268323592480938800342750655927151440288508461525232870116657915722931387829182200097501952788119864593543523615285373582336060752653078134232316763617672887688385100079013374995082954335670507471366857695310212571535624139429079313062889320863568941739639145283754372440270622483818653810955387389550646045265975335315443188335428244249204904295607174783087316049296105425313494797248002235976676278625897739786096785816215503177370726725944112088440699840425752688583480630471993181872582932661917719399131354141175969191431864882862266328611838652050538340927521425411956261196639617172860738624774449353985557223826686357199688796383731502433180224096663653404917190679149976257869264338675556469540451804324889409196884521331137701261929715661364950649015372964445012035711478171817622613322997095346338449102739316266254322749302914806228233006336385376339687088145499632259046615744414975017375828535057054869685816273683333115138087651608911303326663109804468627915576675833901272794030360281495287175023698413856831939909048909567068229031858752936805755653677391283631639536100347035333844951879346440731202162167194211934676938837671554774852438511041174691581558637036910820890473824379879580577608292398468824084348826549413834160343127971744402597217147770529694935305669194688333231101367669409414925696475876605683972197020670841980511633666053272844785723823429835984724023457635855834425871162302758480551113624794135037623236816661492248997111579794992097235701671791383798394344222913309989187230543452600681892557322548058061992069787539806726810432003309672361705070984695827359790804671688634785377636112210094582245412392269668674368693934983363889104248337130857869491380187895054495446849871194788165143436233259986798268869944936887950214133599809999346262451705723535854421098221781975542966508794630397800902355188194942902687267263004178917907797064997289643531316313762215456575365434782770011093418322720472901371353237793555724800826693666422164502575222139972190225021970404689067745945348917748318831948032198973295693157904139171551370735640721152728507879472680460399299063667260417360949092927558382349075637492876919881367584876674301079526904257497704394585402518610558569287065352545413509689013345577238041878313073543996750275850898570184319952396167609727367881897828149830979521371509457605821467736613846706274319611036853483591954860712159180932915696176534021550224199276446160151943655554329943837375669137664308886456545815261450130617373384332499500468011364776490742308381617393552794081663647613698163564909583358736509463120820212258531699290862916257115743054326505292968235377487601623650481854344732694200009811711692262851782780105275210471838055272263144577469840855564607157129591733674811148697604425160098588663739683426457018844054138200152318804524585682939476475373620953836258430154676526777021369527659207312195698527692545660419469774961872340432204278651512483935817091031519172958594766597414388679700786662981388502715942308145765826710122716742771937176729175946354528118808100084838052052063691796145677900524955445730436268118960151276172913962859177543568957057348647311046103253813451028333180218090477143043559713223890732185361012450693935873673748395852916698293409142225779403788040142073295881307921600621536767512082155678874797604255551212476759010259744666713701673814251171412314228031020867458911983228401650806678387054016462632197359331506042166444346230355898494561245086388298207791854983843516267553402786396340356258473384967153682083235863112456059687722522030171482479177025259419568619389467523028905571916791897443860344431761926680807608334628993040569582250008908671105842799222546435160800198163787807394973020256033186009267591638459336213900093431583060622633451056531901657693236610049882113193777192169517616003453079001617259488794139656330026749322248165549753633750010438527079455446396062576773030069086299504366241966132263354358819432635281247783241832087178092856952702223324284659762565219432159173649806959706506974325208017064830542439149147350907759667696993402732475534155034290415451861613545903196957198927243908433699778895985634766210520583299148721549133873543808143938764723956835195172461052962447621569553013636824851814287360378396650609943986815244747860133908764344439906443730547372244043831188861000138941842295572661192280854070800073791031392510752482798079143052426499820604830787075102145657387622202321735826212292793430527145334438063373243835548023649346566499303589913693256263067355547296915660589210719859733368747707201731065778918024459255734350324867681885449538576602399467998932345108342410267478768544948191996508873764565176332721891845347366862079667904515764053429621100322600147323672588606278368777668744174110264325749035396806319788599197829227624768986123817574530839561501327459151010679852403214567599533080327087107159451453149108954796803435571154151776205309573851125280264110824527255578526627543993997964852516518429996198172278386978604720915900153546585596396230517599821550853826077695555307773558986659220742219921948112808660300381753836581178361370034464614284546216036687084750554639560187901692697100531705410327037041932588394276673168969562810636075909387369936097276227233231812706522315818029591345709644321031539301559416662919019550984357430136385048249032845498401607125634998191505680964319419980506346289485419809512249969709544971962133824821579519502447747617692819996918000846022886983290005310517923619073601113711865067750401272033361331816518910544879114304978839348054294624556656161119307133401033624069700348332689806708614911318986901061392259501983653198815533578502847256438804375692948946471850710176764092536227969828530786703004927774543250335784240611000463936295343269036469033224075371645045042784180382469659176877620930530640809868062071500273978467857961301072390088002228575391950548206243261326009648899500749242273387740436126747723492642271600568571830383123534424368474262337649958237932889776121704738424937374410916873151437099832023264510598501316545483502536067353637731517971705973206399844968417742532860623447251981819866164850203100666586726669464547751031899279660304182400317309076733132608114102583155538003632927451477768874120410719569672475278576792167738591206035058692147681723468503199869284226550831706016234273619882215357820100815706305580779726784095793420764797782851035000568202308413656678241222943844428418124266139866447487431081946941818036013011451150800957894447659662772898101876852605744387809934740701217025799871687658823972739051673313533254869082984240706909742503506034075156273453437310632647475247431612315699472173383438410636989381146983157842181699996298276428948131298641667379363452012201331515727684769058684945381260919403929789900364375201969255505445313762763238664841970640589417394232707898088118855851079954420222658845782879055304070796459548802820598210001899538087873392906621581797274862546539373864243414773040472805956629644842078659497684382084779104469945807861253144639370590944413010058093626322163359426664829428256635312300032392726405851164266848142532872088443530662154498649504953180368553024527697167080462259213298354774212030824138860222277480448256240232373722166894641555345478423782489310101975858245235873330586139661067147137876417466029066486103427235593664002703476842960064523071845825650737189286390148104751864549380320838835676873449824855615584243103213438667132483421953300818881511456828731454967107127620631761983809698023613849377371308170387190242649297161466157536648110908180802872129449200001928310318546797566482142334991231930846285914716721429855860064134977419265824628087134020647672102497748041809560717456483111529860948352198841424090833712921310460408531113371404344767154033297161447224241862235643588156467317615199299126826477975277564902804542381316203152753789348081132298885126757409689226666543590961360830684827521125768137224924779870524592619123488241705612895254811428626538812071451013013329478153879508193721021614220265623123765149926330957646364509683420582712366327900203288727355429071079354891225328245120789441214012716388813382486109412597009752962341766269770728450354747331356737889397244472554256622520944840719921565001715868027694971482080745847192536797989629119219419208273633310136188993491422549054755394437361825413195541542866993770928386049328957667135726003158938028564508410739638171297792691522345360348560825081921699743095807435001743315944241185788870296679005872141548407451672394214053739486366253731606550594060824876882081343994041664677071264172090543013970280666231912916576217630376777765336605764130568728667888321653025372778877568847488070175605635778501304028508169998143977264876429170041275692227899460091834671914300694090202407252344929202265707110590863523152778358933998338072795628124761054963436035318245644844077495670982228795231627836788451014295061851892922523054132168736605707901114972137725360331396194786277306797406485115019931438408862019939635614870504557067589877352114020344860184737391886481117912448980571561484736055135194293710465890854271341445297882425808682762468089655660452792054121153998198723881210215151157005357501818698051818476865553209031237710843966632489239141136053704305362332150863948117498091311289204196196112432685990552797679664603796724919540360258654099201659267307060670389572056426327007792231139373791191063407211995158983731612154715508449556804560429903688398117604963116647067431234237950042907869953822566243674848567996673149750199017798220550370098245539916807885612914000054151537905210515646683834235870319073440815479363511435388288310315807768481566107580793078103482794491624514793431166086381628259062339588198239045138509332865447350882235485032112734152512561119663289306718717231938852868290120595018874651722320195668993964435285129977867449722570370635554507996128398320574365363803071050539471483438749243134449465154060153318382693220835603122596760387311046381679003037846494854590864138972945685976578438985743563005056275681155450079464667863216527129902225865464839446868699811954541780811652930549811032600335078040262982901633916434409131568384488144549248029483784950849752083189232101838206836259928223310621393296186791369195052442391425959876618008836325303153995954666867231052319753462267699877543290815836596629291871037043147817623069711769876328451596965106870853500011483723253274374808002750036341389897322256708665627047035289000823274566194586456534013057920491983307991087141785942723565580172222929737031077994083650842190910559559111353277456282333114417121308132269657915595164017444552453970253332635450218612648194337463442168274942880963047667867307056935518338267533734070572877808052907648801182549291976570810641746318836373463864259563701526608602831383946748814232003479778556404955039298743463980151518953617967592456258778815337979167814225744951556979554025511253899615069109285439867752975339425009203884390941373182752202750352878640757613774955713254073312756521778203029071894974760287268162363157872085261927181204670962558173364816254693725690098101943072091385950442525030789358532183035033234793859207139174232304145948968086060246731964370015453288285827424192410013729767949674036778384650137935360356345518997831720912576501401324930187643868764443576566650039645003363511159618595266208444055064456371405133369648590578968505338754221262674049468394568582809644092170736115862747195120157549582460289699121066754174531294113223333851712139772915210183842179126511904632223066917534110879279739946131302692411601164408094466385635515147850296276799268537982380236864894264722547131721735855763065687659165713082663104834271107972691434989105981859020221359754929749471727859893015278038885211421196136465787920281199265777034904283949909927351638967115777496936740412460271505782433576076180179387155700966745214653654266842380811303815827782071811920585925482150744226742280105965589564831617080081466761744342686130120051563943079520249472310402689392815013093667338525441482753266352176553199040313421457319087052402801405963115864207713201297990368432440151547349462561630518687037789188575364171125124914581389469324492712275519721405528623010375984065675072614704435924633106058131482024756215789738786294118572048907723581922555202483726090914919917493400515784920082926222150141977372105660953653578410876124108700170342883924427207782204972528112762536246916468038560657728395864270527503580053454867809016304024922846198333416477793215145010108754785830417576942376645079446562985021788324247842442306708669329418787882748116233832377497320546522088419093551844847892368380692271691782547614462530012016422596901221656691902154246788935449483208225460720349274531148867443793069778870337639578671785986311889823354369131418083245657750351401272663711441191266581428268295609071812274739160589292090098955740615600944117191554551154561927321118273000381401196703925050062315363624613304249470731957308056989298284247380278572991824772540299747351023279689371778362838334925342656846915250195936655922778369154165560955127027650223501399821576072466678167355212906719898485409053844874551533435321679804849404916218247786182259944022654600470016945010123333934312086948935908872043474963816074959323106084768485598186474718392718170078289203201106013659331716491805335530758013443823055252264375424606499005605828009211224625913313790866024113563390479899670209854101910888537504915581565269710157501960411626198483406922615946821687550895103720724807227675915683154763464066720399449565255556450605026528778137852733443651664511967842030690918234067215210238315587285536512185398947196507979737016833469332061948944908360645546332525476525599417875736695732730485330952399022577133100681927948631913394613572091992817388747431319983345846445584973260621802691794580519127188421943082924082623685038756094595891143512861053306959669323075044536017430181435143484421488115992491842628184490773181318402291133485697682220542453852452185523204495214714198551049026759751927934276270019185299705780830307870618083282674640835622293401305912743568206361703926163078384406206375827591423818345979518490968608888197211597774059593824689649986402175407706927180874258842897042346552539712038929173093532280777363214015540550080098002994688253831765941436132067055705563185058847355107922988154013714651730787485666621258457168903826394624291338312484553231685552981827315041023799835005869981354978004042308474789539176089635398665755572965496726816189405294665966481089177301229093103706016863662837012685980204140695737840016505920467083075770465611286935930070612791492178115630598680061123234429808432975637500219765734277476159647975582987604580464994521026523296576288383967008575210018740199608143717452261328429238263881538743954144496417062918772316520778895134181413069924156013304638674129178201039309977787663068533569070152963591177129523594636791637152562656160475185070796506078046113847529871529814060680092048406548150815919324419225838695769259406484761149684512327055746637440567802099289657291972338147212421594397856117442984048210506364803591395702642699570926782957591886780015210085992839740393559318309965950052955574912237457238548781787695970695000724359182876102977067072285400267641477769396128226740589164201540331348652186113635556545469321361970689577702001747858062281347908249780547597380161425444137776306618856574316291323789340166915691624016781014957334441104146533493755764907083919297051379911360109123400268785977582706859957835624139870757472292518131050101462789681087662993774620435139045710860752134569690022773094184136373754278294776987466897768541129201734950012191584920101585501532433618745084372619193785482619232550536105034991288965826814300710281077218761591991053288897436230001897506953688023233657694287372221707308492079997200683034694111255323270352149626974706553218051994256432297425532716622725639862228965098053452865319306115415581205558588839210243183552516063500777974869143504468047247337954524997249243619410768117886670639148190472430396163868122494993574077740236064690064874480426323362362625454089493809535038003730161480358897385863586632527321087202796563358667466643382273406982322788806777719736433322722597052552112178967040895577460297061236079145070183119486990403586950153604752061559765816949554395753006063027270518501835726625584224529678844718813776528242928752970852166614743489389325431403455002214365529098404001286119564674743747602901558171758013322320745138769408340844550669798320993561121077386108361713269310601779478999773972935304842193979565131296261489634479100289278238457324777777390602780359874207439436997745670390832446413215760315684400936487504199929174585524216515492863034118571975505651014662751589238847900661589127214242674774810504485511777741402629495735187897856481383134971702902327685494185351397486891278394099171914497490106138014437707025675755091096083886546356241296363009295339864927644286383566409284082551067843600152388638931369934240029494583670183723598344189973356039863749563691156581103719930205968980684177646476812997662949764595389856367753154945204868378434235519875561503551710521687781978233035759477952459153648429345033556162949566591025204386765385470485302497656535402488355338305703488260472723289985854044664355591133848691793922898768893177476814578258184780910646782372631428146830158159602799865787614567577884432201380282779201898410048086299464795665150016938271662488943461837437031263628692812661107112346206929431017756737143598195354408387526127642065437916144926675073469140796785778922583352959533603902878399421449311513766335308678565350913929970453738266228273772764304629066711772043085006803250194819946583552511235599366328739141051033298156957536462782527589701237822837708396862395227026962410374616079822439498106161216996527895027220037792777730284148518310723890587247254977602139152633775635254147576407169077932983771836581873617884488598853784372696835506599552763921954844116450337013783978003564218317928141309291425960575430519416167972172781961167720917426590573152681337943533905768217507732830747783912693927811058742275094966436875295053968924675663996057027497288437629221092958903013895764339811330568691503603489776292097904618026571687230254093783632691625768404270503857327113217265789256613165810963360743177730757317204904778671838574131965636697077621364685239819677474068077742777697387272820586274472992758670989749912492418725518093543882453026695184939070645098156431169444689575851248843711604965299704308156567422084953670415939877794674823238762768318556205536899761200107377695017647206604193113454056677725509349556287082201678449181377518224937578643597445806072784930861815692814767419870800553976147055755659695650178519341442066822495995784077299643077394094417274301537470229420040930050403191743403401718636989763810363588428670603960421101202098733200912999363111384314108421950961008295090271474429571339204930465849310738894606491719713814710547392298226551047759170258445773398811354267535111902189789585149742437345780522672324146850708552216250342483782958155215675779517556448969532057811644505964610582762157905648889170439599309187295218653274930988331110998932157326029568153770787934509699081540977663948010614399641345052088609863510980339487712158859867928432699562864772686152536232977755540457950257472495072352576728249000410520382268731793451920682298343852202191066472876471903520050669885195298693939259046708969711613165523150922433276571011559176297725284889035333209258675419891408506256309837242794458450250109825325828681939737099402218067155958184217686463631556911365883587763546477373176728221859726084870260888642724685956997591459679246329272944660028962725919119462822382326638116300197020911965322573490024320446660824314654845416581971847081315841819744064414257312687849482408404424173664607703861437208594282846676599184260701656650504424445519889072357198346148300277327386490735391853497115045508425150881394574367523715387837929386373192783663114481912024148958078184817032887800321599199692946391805819801123430878307510877544198282263987917239745803310740309985750254507255683474263451750011642103409728266100877773870412159790766695786752675816906332004628448736441997570184090302476046224875059454591788695296251658804973660261830636686319150132141455842382441888125233778319064799167360882045647548375715005195300422633351055153031743110392013366586243757405541270986652585213934428362144532547521764077417541082406781665479754919860350045970112342721504423442558377220864131177578970662053312073402687114740113940187852163821118357380149357929216527772270141570199755115836831400831186729284279690155825506485506121861356755554554607632021126679074507456271595074738317021163198232058827871146111772271679055963636924159921185501385952539662277169742413906105377580411838477938288189814295914305799389651858733777465911913934202722102374955596815557822595360001728924900987875768294122876449985307440836629616815328380353138942488220973291627751561921742472808233456190394642285218898072554446892114906994727871118894805931035689584712896319256519323937353951570689314522443425407470944247425008294065230158091960814819103328249791964142047013675981805406431073703530133132891620157626869572980943376587990975739878278490284980971555727753719603355826288601567070896501784168690396574813124584674057156780061839839167259651807092018874575758937360865077138370305476239619848587625246497645585416002805715158800715674033968824710916540754534937145523531799992676172338719053278475378427452450765015612641204025931817741394693174633781594560671198310436290575803126601037696061224366503020399244453420064450879166244772733842142834347431705468989290030387607128584635491320462329549936900787151682956818760221427025328695165568799926591102617763496465532944801080345097929911273335006524422768508725249061476712774413003149826507965582775874277060754699667184826245600099034197897492247853313441671588363607618541822772440726314520231004140595094688941311727763735749147135628402456631247575722866690727351567881853333753508484195391727718988383580921446991148999569453694771121797313832654346794710000219022653972232099821114957721231723918368759022660957689472234320285382474009523615312753061724520413727838532615557284447057445190883284858714769503204143283686116848649367505096235013983811154168852055349529815719503904898628539608718988700853076113728255477859000828813655990913788659324359179875125754860783526968559538827514129086579859520063380414553215033477393244841092369129254304804164633719694511540455706275244892278769096433039591474077240724679956285267245865285607148912558469490278982611850896292114129527405139572269541972021256369136303909744737549130094911757688279232201121543973902772226361524511922949331902208791468353671930989418133018856916648561325383179301998126294006724195889241211031281620850663764008987952845570716910763574413875495556931127732838264911227411916874497696231911813176045235590620742490057633874938719594650231533935977496674773134177408483416680816776666672245723422166876147807311907128836583119078604076068581209965715644875002203863420888998919108020123499082378890813892927510905358239586769260635171067094715889107495323646597921605414239081976719579289802983449351713014918084317609824549181207795028249347860981783881514332037812171986379554344214427145952435456820257081351486131122634403813640449981130496382412242398771496956188500485425681187034610259628302685465415986514433249566947205519792939135237948015021081037026050516183950305162362657545124923717596916497906073905714366955536722373122504171224096972773351018560287114785064495001784343609368503143315989321735368048591100299054117759037687750480772686206082656093213856162474315928632831663640972244008418355117988551624429602526547122537467895941610853830700438604439269684474183994521774840116333802961653951889506217361296016354842016630680543927693659395789918502852996268670354035909132140781069255481441233412990707884505863998222247741446169631709078773245236898367063514902884840698685296995166524103205494310414254062371121547974855904558526879131938872378749247115452905225678198037934268086525754999221141341059856794391213760964035440265755771808565646017198871550846087930222184190958796577832647732107942161833804254531155419652658921946537026629492149121524521560636125599263795659519678793445429372400363370601761070046036521699805809757658643358902242741726605906189407035944200247961371917585244641448392374112745367518554973700891533569797475873483830999349888024335492087775364770792955519281239312231806729602743910763815132328778074469296011531966437413439993370236871263580471526919991433498423751444201074305494059086173724637414301753735502191422723277578792488811389130034377822387424374254438385376966513111705711588211114966431019055661967787273837609929061131338535719173589886378216725992523955070485474007740603376806169247297789358106338211319187183413895554462158024385676727970837667746835952584488257401181708020454488974154054424292736113262982954724893696974500902926442353784423115024427457376873708272507304481187289226121132936379514140283573310620318637768578289335819491216447900303030484578619475633734757322923912166756454447876618206375032151572222351358667995538811977661629728306156570659568937485840026673085121329966062381408848033140063059442649144612408582182064081108899613574928165987927843271134783542136186577615143645532489257005941314590019357254302966870040726609139088762584461561172584098729451206584872307719508015321297231207502874939199543436685241152516095532960319639429718061343374841708734111505783609048071192935181308168005611134165030477113253163046356548249568457204859118808642088309517644788444496557640356861217466132296253255553384247678741455185042667967473503964913693942923829473906207611760067323454755374000782069834589909592067542944169241760962843601788474856158022137333311330430027678036380088170524195991948758055325849226974057773043002380948689162811040397023386059773441083452633577761524753319930018311413869129081582989080205831365338949988298957924042989367324328803468562513866335986374029845124558650439607597567807467360028120646807393234658419769722141080545976519300675941606029563772802382215282512518350901487073718263808184053011695078822542414915085580423650784914212062999425225617231774435137747524628906815503202419985113077304016755622078868193337419584509059512171501145439402397628346545978931500824751190003285121979141054094211360079547084285048352479327558273405457177558608894138603827364695720303874893118265134743382688901694296817240922191537564783340160824749754160734152497618585955500065562103744153786737446294762236351419812690469098248566056866778086089262303077782294522769659768988947428401558151171233978386383801723024183597203730684599272500618634159238462400214021886438344429879033755031841981489772091497388765057607512909492144485859307233004942888238050526312766561491178405446646351115912194934450555188727446384962482036854963428758847564994531418559655417216748281524705808064295615008767581637794377949660478222801996315506616233456470186929751987653281646267330803946922986495595499552244952549165053677816634834585260178010972310637359594508956872049019314816997232616618510441046166765091952841224188929180876720090740103235050138858692422507886751321144827844082400308095309810179492086081358932170844362735332656889788454963242226817998613625441872160970840299141209228930199173152922151335577394304701017723240320825637439754795159828407051933070533213706636301834042404452656129629697283208272966457160999495027158313582153235680457684742964533940559203992285350537662114470589060069409784230475472173730928419984233531974644326966304251823164512622980681418731988957952753612253121294267366008299280533563517650176091627857661700418145944562507653049903297608377732654923988005579605857600838873963222953175375630839510548674981411193418611279816879216800539008316084288631157764479021021763757505760729773011248382314101093095562117714765142892663722713621406733623408409092856834268350020950207803067432159366185981944833694555313028124825351993292201008748717249454956344989627391012567578712538782156926281913180048538716680857156843361391988450577804508132828740250823009565322287036158476313490962893625449750047337547546728112306608673099596002540555941113145050330081173751072061613337403775064270553306249137067267084126360234182533851635778280809392931753989902779068384076500881825391979543124768088882205082051033708429187480881949757436744906253625958275753756470666848103064944762509543281059415237331952759028591677807693871588795127452868537096664956636476502069162232641918966852337331515274772853539234115365320572239264546433125908914803519349236890311567334691635183191779292618620781311609275889432083955774148420752516978097787926736589841297730377716612939910397704541121177761341258861114701209204106236005893089928296674434894886153787179741095638469586554815341687243341271109462522725115118227515408021115886673324905708436586357295951342719139657755118544217843583628991433782578051654498532532071309582306022636972801108342451822201042525272676260164899052120553778175103103366538756174776411593008512587848445128275547662708842093668299237440953172177904440926985786089971495089295300660342221613264300047736949528263281018171339542876873735193535519827473368284961638487141972205265211345151769103073221117152872202691917582627029054523862081012566963998036274406248045620046810438941807050512017954322265417064314212794468624076626712457801062419178715463822261339483422448249477198656713163300668275234775809031995552306842989417479441508791601426601820985829683400161821626051213265990472039899097476286971600211382893142194288358846862052896886842401713335667581502669937229227194043342051321850045081623242448149626927985816639812699396832326125764584044637965066392489169422782114334202045531604272862500144681425474689831462977479958209094118651972985418820229063001472292875260579506751689980603648297349783613567837370637030427177556995665550484969490583872275972991984818250299488799368438363195013969056713998653555238522427914794869556017655552200586950296000682142218379679912332352619833364537567042257780849296947037382508310440429529423059073049171633249264661090576053108923304602255662519743645485248942123920610827881490781471100773005041466569746194949610265064521668391080680824105149799202117470522181278663290998097668139688516960941841780391090811955711046143662620489166547237337107634983358390537845078490308955141262691643902987886584247156561768012260351529943478301309582922407367821763611227781672357968254934253473882556633896847270056387023328310584890236353334963867183450975512685315573217612367532697856324758134589918204063086708203696757946091645554598378853087153868522885386843508356079994072985917284196495527351380071605806326314274937399718682011402925165377951530929670912785905165089419678500057685803774240838095546033223290111752067220352593482589882977901046698227551912230948372719521520608379515726138626007579674506481766149113357559368693589073608151544132236914221373233456642898982494047250941958518204249490412357123861366758208354222790163502075232591094572959936530692797970834396980347618258943133924374588046160568952557667858726445537969795906548570785748427249425455847762999372024336616627323426114211386696128230516221450306350478479357814236452568207980823257105068806216237232893368316634018233380955395836900827710338019568252998487778199444966670431744478367204001549880868387692113594323052748854332938587107746361479596317482797368972893006776285381126101991266998723850943942431933522280202691055124668719794125975300178200541258575956275528972723785586290801121967015282059340725681144479243956796647744645437050049911382389608275640878720701572982270646367904508597463346086429921531544618995031968523768990243116789640262693906422741828109053638691998557379283818089657496014029196212146929950705703197214510771179323015800394921260062687640871873723082446368417070404289396034794190921203183288282253156406126398986558744075579800299375534017403392419564827114381552014550203292698126602789267331365260282012358294981990602037357298690163661203284943971453248891755076855646003465091306741075850140761267754150612352510789988323728114272761560162018462015211487398542490655716713814207150720961057568563401095521734283735303365971189355731586292306207043949541339900806275561306964657484454504040230670795926584906960569262334448254347606047069023618546498680785710980092032831094401800645249047877160041012582075557129265534180341511264754169301585636819345419363605710790319823465988017893834123041181999491903324805263767560309041017651202959382978379743887670596040373619914222449400006635124372601596279607869268264213395957205882905851721846252912271506946330385002504968536225047962331868918640005063148886407187279356952742250444865052294496275341478752071722157693317346559393860394484172693650157583730561054823719344843149929036659226436929590052144296477060247562236536284392503676409912576883122353934177268162719661457762687667663848530978927289959068259541541728253981449407337271645289232232367467077436107836836858764313643544743369429740464206444793951163412090724714717822518791340496522096987692942941281826818827158615865541671939752150556334337435923841557322153009893113896801853259295710897395065638203091006324671948515959876643568832556853380420656768332753057903186250028104653476950807067733021347608205523052363827234322020033276033255187152601457646944820116579751130470883130506155153097136122745893445552234169366812769684336211549470947080957001650842347386204270087258581300657472573772586134370384217120238303035410797607131574311809009520746292518482289089121011361676694984292857348682937404780256356107449062369025817420420936503162370668262271721551171404129808799549008584513239569032588436018242059468586985660338595641244194563830745203003703724076813613561587044506226882612179065231283805545393184523214583235991848465529005592974641223084631885343133210509015518998809166020739354284864755803705869533715396210534109030745414458002819159073418278630569624041330040503522056812516421353881751955655530661868221640081445608267171354624833157558333278497733190002715078339482125592589297006322900623965191329859228262595378737709235026892078738595018776209802426793778240892610410655389120180805831833626765477876296493707850310614069028552729963747089263351842703724056306967374391370172253162640692689991431248848004743485008843724663616816270260143387950921984645402152550185047539574267227483782403531281288617746499652377522563214248774894332934850148050071445025925578443553033511132112516391432258697099087673150536365567486631125875518582263960501380903284815324781359029421601263089041781169408853383431082149367185549394740836240973059329028920007511356926341720451287143908148260245728552809471030772354606401972617135364437084598606353305503378710948506479164435619002839636961924237577715527134383873353640747744173847704261436052353576976343507533319109458738585602843484989083641647117231543209334704868773287636126267796707727237811190618904806867227872591544093932804886398311256636679974380087550199540892861631648782794047915223855068101299168593780073199138938037209811365769190468417516460317123789314320384794464686171268211187967879988868188548667101255111022606110045396641900092841086840829161681716883879132479600329805927825341790591063054915057268085181786264952296216316776705487533231996526143129658675339045812686368308726027414386375440792980021067886060227120519701625383327523105893971914617184000137820899791658715282463611034755777082659786714694251895954683946993682875208941294915730663723738697321249553689557501144305979300701670898484163631352306694533105609422603910353687489121060331277089958802253687830174934880604913315914125269389503391862487353113784774030981168264593466289111897154664077198175695290051364010546618978351013237385031952526707044634774546527809882391532792124153628270404280794427036027494168969119879038239630544838504520384822579703697721549383095617297963215753923025883838818092087838440393713578345039521792468361008463182725922985294102002966098030132497112086124205580944164531873436662780538770732190126528523654254720336663776931636679098036013904617435902751693286427554840094105647894744539851201270466161969930936008699735380319270121263565883272023678450539484280097259961784159295752326204622914317278683277810243423890291430794161831684586501779389077576828489675266077069825792493950574181265188471702547545085975330737070585952273132860285416615322098175838398135160743991062350830758001731803655691609013441456203881716993268558797547897909405890174576934219638140826115298824253987717978738793860881856988523895465725495999569570850756150755311947538342124223640476399327975661048601924361177807137061881559038188783350544680235717882713803024451553291524421046150495705127628393481424308151968773111847991498832238280382730293194282613525550715542840599908661737952707175495794291882802998462010609910177893221004352819406254075939015125257423542910862283801885524081509557547915453210858161924583459858910372332693975316205711437309620817387789735577536801529895026330671577578893608083436223398750963091711742670549034181475285730199442610475503195655102316367851418240298439692588647797406447755646174065868652613493121771993862490834816850800770843591024200310469114862483579183874193260482846695012513404392428631283154988571797932319743843419224887145707554635517840952208742624686937885468835410295199052122312129263101478614773059146018146548530688129341773656251244588691999925615954140187974730093088077645555758268975933986949230572582495003390725257680255456490711296121008679911772924883260259177380627666053997965448570401793619914536097587160629780035859516681156248208479961479643519941404081439885638572853948622590169150900475287624801626494341303632505868713968093800286130309522814629957256737447471928142050588779327849620130235340205742528725741251214025697446490612168640638172266304947732911894995327848473339507921160237778576611854536957419152029731346970939631982447328398794519482961758784609222441837328813730834859774563283562312365729756080549830878189664923049998399311765651813208656397043014358279356254881362284878063045635030059771045065050067072631242078525111848976579438813263909171877956666378926577218852189764798599807142024366435984506469634111714515631593234822889443280623043166665785489838098510282843324593341678580984232498552043364028152309838516753413044835952149711527852467782124503333368865234467261112552935926775716887722816548019257419709059051611169055764399652089280086683425063765130675704346409414926026571946087408484197806644076783762101579283353349820746189802153153233287371440628288633975533695551521340939465862196962167290173373820694587279033002403480489477937085422321874028522133480351041015239018485739453624096421066560042526034021572236160069812897277353392806083132491178193684121342122039572552343958186860199449954340269276579934763508160892821890661990034139791458563598772319265805890433436426886349350722753360625982559192167620493100625808799502808678215004882617303666712883037920465341691656572874502463485926163103581085490507465681612381452977071074963416867531791029787239976546775079322375932550129515365447369054003901991510313694345413347072319332928823953758248498453486895948722053181707060963584145123087628380407454928690989913204560540775469065223818106284747686304818973095868385585300992433239455907547880530349550977373108076464093518690220720023847341541610589580918200684235783740719763967652838271840005076453042731413853467469913465146438697259208356747767679070000749336776073990574778973291829036510554710145940167964441598023300721838849479150248954924739900814821052346596162704918726521217902322462880082308117772544153763352739078168403327835989167977790310007881150898246793726444801657787847029807423660198405951634242077084042048393840287709991305324115416333351665486535240827250373867581861178450154935952830575918460610047579405770538627815188599259547639516802369159599817175735417518894922532702274462448478174497131658117533506712672599875680289438231806872002935663987976726032311391148569583371535456121657019600964754523504051252435164515904971712868231788591737015719236287454533861477579344214072992600502412978661981824256620115444802216011629675970756389118039018514166759045123464260741647201375350983801732653699178834350103358655821370053433799501133170430099191880048303255691195915500286158916857702158296728733071605248231556291372724258262596759498056033588529877319512006290681545792518910561309356206401207583783727755127247125870333599251496779024834214748840830221917043563196240468513843727170899987748568653646103697095682120586738654231529685613693147211622192386729891937045926068646594863669777422188910741242490984291057944972111811212568991953159474022393616568035423448797861528360199475651540575454409638797998477055920434028097129892755405847874349511079005200543763154491067938569895301204539271559703565190960386905190224787408268379183114962483493173436097610525395782376078766973544915672182526871226134922368957537332357731051459131719911119801463193741753298708759364766813099794235598159954154995314893929348459207864905320251954898008289105663704661460252029798991826554965528041611316010248895561317990102461879874365563096340824507378475965173385553399309282279080703728336484353217293564448811091228803640842988072952938648085816026224541378427736620766903244824675710348134791961723924457481428062354399647279510632980094233868590290074678363375321630729464373746247745207677246745323787811551260301584072646779734200002740086376789341340843199170875381044334007040884128483203848360978518746212233607815951435346281154193052228552052374773904867850986224026737889543239813177150995541406616546633557371296824068435781808594252370676895222618112518206717730326193388403149487429589458116446016314522612837425011073807461168567576738135651308950638818448095011561256989657828850826676033308629457318905823211902860130084512717596700311969942749673849446218447038553292538296886658683082787797735641683994584477861263129483052924397925370550832845898490732831025053410860461575393189382463347642796311358995295110068052472850017615287909511930744120097313493648140071553929508262201471285457150561520519372004783888406637653485247313259373314082758465141888738473504849921552674111536625123969612142239824933754712962485574186836391690310761095979391630790980729340254282899752463208979056758402076101566883106448786285497273636602886244118075848445612810785900579261535395745449960393947323629801202321846103245763678465765537903685824361774514607888974428081046571008343978072883932326489084315140760606440795660605333669228267417681074379765471041887770482317966594399061731494049748390837462553342708034295245771685507753142961405323535488075129131711279367944226627329974821959102670144883497533202971390417068816768239111259459249607290196832510730259317374183331589262961861329409169776968057841789620121073361798760846090021359767889715195892390110298751108777296769324625862715816285841213222672390788618985987836168175045442416423862192922888069465375589529303701102072356700475729094693131513826564744512771201370043499781840046074707569474357944942412075590909359595090800093244686994822416188577653392965574511837509533358641950429830386131678269214552369517131836618960937177361297274658606599005269202143418210686581862119592534242153944491247343058630871920164519597563399373987295440398304684808139951644823631486367284274282157336374855356603861956521196542514170043500607703856310665995226719350302100003812334602093155053044626000456123796098329616454176199855202111649466724541415922400661556703998901796619979470414656122731315439895295825372457425216618904530835717662952221872103954071495768370529961185729006135642464612125051318328640712955907607896658151447221620966718265134439392132003094394557202713264345733418514664940455869455460621286048859550167606558870684286713182043062650655307249252877180286488653110835813294699708571278495319886508155713703438346213153269225929903262503418296358792466977794002612883781965258015075766832354351807029557278050432821036596012682842672371812093805572316955728068886364673040445742256802952351968741053676402207980766129932430076481505652242890769041239613586013644200961378143798599491377523193695166499808849395339190233272239985266666456880856470362622224273416765875209059818039946221402959890542080261133732729536534463504521903744996902622637756675062279429048654548140439006849062798148577252234577941711084533822347380890888813275018022002763958642317313285894819038306960235814167911300469393612111424212179542748874887741882382630143192452074024522171488549284168696900386613796454233765900933948452518914641016844667515859087663113874135552268297243314925995096136538964905356418077547811169766162599531904090332745985565879541205845069652897288913592009175936882156293018875636696078253317431457034192860559022441000567281206390092585372099957801162849566312409645979810298556219749648323215244517204439774502556756051742119755931905139179278509447614213515948237520116997121506797443035814579169903050911962799587269828368159093912156914450828769419191487036829605471853815587414630946451871523082511708005297874908941841658910653142354676018136170211646600941909532763193646463990747614947382525842273035904740707862121676482213942598359106243480322867541850875956991892009418920670976092688751845760046750201767185639409220048549698157517648342837963008595239662115616551613764434951897796384101623434763909330964702890644175123493120118090764529984729590559228537636572521134346958096324903016727234002484143834613333753530349253721799418944821192455246695847317581839279985134363792347005841924361805832172830826200348436188897389048908174181056004492363483371873946149697880693081052065100414103902718795718632538191091172721649589189806624995186284020236567371874348027624810492447018988483800343104350532365067517923101814617379691473935632033329736643340470544069466872643539843060006991789244757245290360624127759186708991365197157426482496708944820172456716066217449953916701855235726969721618419129236189311606026343336917601963349837400840460666248146758523884975170109657296614602194763916895068373248938702686088801022096460261903639207235710154722238005819728291020759128939510044398150199428994043404608638857998299015242560262542240602366944335357282722739426131155906896479100101923479113370489850013385023701051117199642121903116887483995335314978680726584064442255690783687256765248764658404895058653091456231051451607266737926783238460461954413201028027564127187631498462618000950889329775509905626057859626823335547170822692964234379357696889094005891740449446812459011728182805868900108385232074606916682297336417672656788108282942433560504006342733165122415497584057374865620286316162608387729218634140393680175686067478745113260792742510477110827346321393010663732266867363362022952688053934874157585390767273700188994866457201149909988134109605146281541926868282235867490666208573308819133714851242536622069369265294755031702069026381828572024632351820788731834752283067061736799516061584198418572258995787051526385175282985304108660901997884498036332884407054654270834008308216149902904603676541820100471654108003268118628011723120598042215057729788397374422437633154070100345265108333315811414811194763187263173050291589115053908032937586247235678287433842423094255984308017528113703713569725587761574095670722669160984433838341952756919329375699179778044633735164585396127008540499650654168291547904212579073328626905574492851353319300463875992093533490921950655238483830260524636000208412072737610189390411308503680625459716877073521747212188772504019035996266358700133746488784529505844318005932590842689547874770369434470038567285243698565845968257222856274796504249419837610216571050084107191869899668354889114022972467909977077277514913992710481520930084546257816580534476245513362845441609874349733431841925623097931690608541605133881192534895245052811434973875333898435768757135274534015678259799867196439698207827784473483163979484708007740809571679950359442208322078687609975545091729818074405006239234164271465174373266444262947394186415271739822713365365491514630849562106587927714140754137085306234450524922503842953101099794494937758353566496144188846654022239249751780780241674395749617475404902029216675820084758016574659103509999388107711912951996590754154295327767864747666846358245118945001109875011992616188665783661514652651509614395978978841569811258778486174967964021910365824449941957007168895161617575257362533702216395068913635044163713107343424280349205338052789725017786814133729284999062341539884232156629822775830591259642721009454027422266567493887446409295814991304484242784193066989411835716336948277441035868342751688991610940832380343353960645475158037620979718472626722771431698381535741218559649982405579565490155776134345495743814790998970441440737761592475841098478852467993770159268089241664682914265127809083330100462841219143457012823797523587836293421350898889032565193009807996626662353649127115795343904638193841651558490041540648319134504677951816734509956015090723931134562831542604136248548577345269652873080256545416480715218656696789826009484815429648998523642559089841909364359379333026661734879603035509178608869457524910550294609796320377178961669598720280606467186411597844041002290462460151480065086321411519985213642521336158697073828370534725923457790752142469790930533436608507938711424196980014790203022833825514632457952024693854851206405101080392275903029153264665222955825835834121382056667329255446732101400879979746656650681604041397207867387015356530095645029075115967384421647343419933548281039769361465759377821152781988256206277384917680298038460656080356321195585741406487674431973649568284128788435207426801015148700736080733065463990432553478198574756135113356696982574861441036675543287468711198180294639356524551893337136430027366981916776891167524551056755415703912681533153414701928709322816235161030300205846433777103009785705648188679858952985954324775137850208523627954657211366062267154345176508145692755570231742023280766662800626553385475698838499787461158573702988392513342136967052619806524939487825234691828259028880014036804643801520733760845423457751995161591858439568246585711293220497161451785654786959157042564184316213959333404672353918843593599221407452721531940817031301939562380521840259578728745490337823457277240361897194166573341688706772982618887828211822228684885832373526337999175821262767161348208759510196140224216518645785016504084607582592853068667794834037003657311944854495734136293950456760505245827075571929377774097252908028550521612924416739797911748680607802304421556236248380020066174278417276873223575400452522413480185900158326776673271552100888648086424081827457304524152579179153607256647031632257890970561113963429103755154067493634765427087702194266496473955393996881220293667356241980236082894407493965299810838905477032927816639957495385178400262315985604654410072146388159276154867332040563730262118100835502099346977443693799668303398905458111425890887251990703758429020939660295753204391112910954174001626422549397839656599861851607275373894979743964828577994689413355847830400875594643754233796599414914300166125726640351978145432753261421533627922851736653901174064518245425419744434697879983419935839562642752866824646520034147649326862442565015831732714850589482146342985028880408481630832482977962721579434575711478244177421713639248963437741222588840114105132866263739948795694377198374701000118349270392338295964241622675050060243273277967795567197582792003736926944380709964508911597635354576096599247669736336024624525133370417030254177029358177353801734043912752898091831272548383173641985038326528255587306037567680209166668254077342001624321368841636289999243133653966463222824034036022233959761049576458753950146987018751551775854424516612503627325090701874732963347187852443610658886283770570241674376128723846516409451374314837711109114332436411755169818420913539017600335417972119543390228245169484100052186531028616798333494224890260391501766085706497467721183052278605364502513063066572793361220674053598147015009255493446464223667129948575730368279799923942500577908442226458437547741393954444223926150115574907525937732034006838116705229079522921588930616702407486586098036073902123464528634259375971183477739034846432530249575359140112603563429147495066977959082377631981126390367330049837142782388885731855376759069346971386463845358208502272199466058458671389333200122952501378916718090185965990323700756274069453668902178046436139958297889226856426475859420304382883428640343752758785119617524880112427991147153772221395821571836133885204578394235575580156702431678571807106100654326835619767954494667945484261221922990963283765665892736917901114579702254717853834398387409201668407103029019449209540543868318181240419316926548174415356174709033172081693432503724761530080648686130866867536935381206862997456824003651959524971202698376821867075799747263651314954991302682514373928146177744910144084329680858701014435891685576667768987265275533987424665761104781467856256990416994271775789718950024616029663364573893075821528399655877827725215817639980795744577385748731656406778893764194921291900395100925952245473346309257698547330956013740357270510877025941278943303651842472539685935377451590443480298419809039666521290490079977997496297419947205688415953962570757560199791623147911230182011156964370456226867546520824405163982993426637949816224845239854308954577771035460981304178138985422231980451976205819227563608656750638147529017166577743279416448068158801873631484306270304391566002636691071770414930488369027001616495567413576885140998109801387368194136279631895945856103485777923722232998536638416238805046229220029626918464913982738882712071179029555646968756872339047606588148625933057630475373814890477471825669462591093018195552270253835950541739054947946827104482577075911895602800221292473986099680510229255679975670375577191100207927411096267095884631881520507849720898086457474427912175550697162441259195351236700076753139597942272999558571925877339521681164150310004278962861802701481035380956185136137142482490386693762339270058926000699048560041872608496137814990079378752078569979547803423300629928070778513720670739593382986278012350596233598781874424746127978934858027042124141705372886163248339669492066498214611036227816223106730457264634872525154721805102920752729745802184723703397111655683357248499308696720305346769091057126581328433623645505390279625803687306721333609620590246802860324191531571662091305227847680166660294922738274869760979780806257813857397671553010580246414535232446242882266020163520547469716291204548694807842986534481805117745452887748751689115357878628925927975061879358451874157335934931846332375566466989024173812175238910990476148755891034819509840717797283459381759806743198080285104184187946776531688244411369754946105552502490123860290319562129840065215493087855072310253760531196507576301402456043643592053788037766841815395392052056692880530370326029047889217155169683717562619830083089149764509779849254276577427470527969772962938717924756346046837887756615696810620421169715443411517391747614918462697059834431546075247316567146977108721560742913775862285644934994708624729339429631699840822478482814006425114385075142926435762549509717402220728319940441069574244467401287605465593681895865968024979998654329517475901504549059757829246315552779677116319335161010171410294737980746956168445356966803762625153072095725535885555290822916144631167812122827493728874281459831775233778766134553373914042953093805476773932952103482495043301573279544951714513926529893756157822088678924450056500795381277971662166072243388644745896233000354630972024601067165290051744633839801559482237474106625302291524279634646983042059834457561150049486112831568851858127520533544561273206431483228878712791391567639816365418778519798601787582834032087132040527419712354831440523872456275015950207666012295543790626963396715192371300226476781578119930804514823576874680448170289796122316479243510976235200376219395547526924611485557510524524538789248907498561506763305905580589680807038429257786798061187341288639054946143370698818934270205804105793804289472459298665448452699997862337173345285171986234996122614374206788520934324226162864183352655227169366667011007254173510935710471241247530403841865394902362187485592240680963497157215916838548272386424059526021994220033752378799016854393671884924357898220521618356585240531368021203231916790180869751476975457534995222314871616927159067779890000651126556670419771505944303887780081478451417320328726622226664716875190973517752694686799177854005625519455326219532764484076105032616430589545886482929698643483915074749760775205168252427833575919588890752212409431665023682091313274506868692976673409183507437799745650248130039911778251075112601171771885263110254243057771159281947301728986704328614963880597772985394470918714310677651855059948209237534258674399215969579791198179378234918348386825253011700324387484139200995797978637828265303502045621933697743340188718503059096869582502675041373951085566265191423067009521143743248265713134876895823620739645835717489060687016664283023179918434561566162356741985113103241682381747478579517179433534672434359660045503138554063456247461911118987226422380654087069992039549903109656520758000082468145274610424066059737431834861940589283529993624153301438483616976853793844100412041871217498270896438799270298719569261905590295900841056664396130262231449498722596634080167144855479340122854040161542296421352790334069931509193798723866292579685842722685638933019665639525856230593698096382781472523540072768337381217516835342419858302592874209623605127580709837175417908560138268644521829534224777938424167174032846944756667220743506077298478201416710003574481986788399734193022091479336544531750992346292847558474084383048984666702897405254769332144304624424402444671524489582111881056845347585119715399017038403436235654063989292201501932650338167911923402022719636637330287317864626919573287457525572289808634949105158871988655448698531585029646348144145054333378946919264823594515597483722759288516567602267905493614542534082407568622818399705175187256652520040768845095375379018935875910056310830501841186690680451838198579227333273589458764409796984805331072224330142493324159691091707632149433065571731501409989509416800807671920823886381250940165276173378559724920583761441700372645346614128233730277379049947650693742943577600443473464956985139557007289955824584992353314425083954432159374191036737077633273449439394546391260373369871282165336188441916938970065216522085540270671714335035538213551307461093405583558904943224506179148720792001022611274135737362024579257717341946937050524616636071925020838891499786645688414815746197546471320339274626051345040992218080060538751311532533299988411874352382280898842098448712034963904680463920871951926997167627111894733167325459307647004240860282867438413772107674969476362992620909217264712046582831039506105826713584613717498240703041425893321807427794692646601867707413180159299427660733304733365398123962970532727100991401908081465870863052448449606437355812789836292695661369156541500128691487514119730782722358558982658837752750025270870047928186379689645476885477300471875860626512281741521110693724988772580178161778263951694967459701142467321577842391477681328798918065841925548365489725634398943541098857167599457186612422815523555934621271318357097902863742437787727441427973927541704620635842193364461899067427412831264242576745459979222182974206690621199172028386717300250952887767486594242388892432189354746347216955534595473353101447881048983449980127337097684164874004466207046439328246414610837703053005207479040827627969819335883814176495585093826239762583868291816683592131712572839546236219290409564072626670534882369289849698723475009267734841764727696010447634782561846664037005578326758219023663454923377566920219214323484658986256334210186469680134894024277726298407903710596731156612087059830944051391657128189407303794295025573832220066131079847294766118544607163322073515750921069533347537525469345212205558238282513331970404671896504874514875526193341346663484391094416479622875014508379506576994402482805642583669997325213730364755760442608124401572881789664726440983487502101147005158170717478623255883999757117550759131591004940068262726307354622079685537424377695056797425992420427317130623284911812549626365553573075256704210997981324094531801021910497168157352614780725262035159089308446758448191549348718032255034091957819033185942445397688651567172966738640067967325288016085952414763333546896372255954143052486182003204665324457149067942760741775025400560683644413122441117482218548853932852533064079751137626031918160368113365566533348164030613895232779972916380964613397118976117952293895179916524738669803975656008692013104525274716353310499130913194068249059978058953473502096886171679627240106759981795574962033437362696669608090669168833861734382968625323322830703045734307084382606035115112664430642828078205593749945302921683291664117486389042066116989902220664698003981993073919907780629931340681033706757285967436810281927513920326738478029182149177526176270261476684898160051676966989250380913065886628816923394900562015990050989150390114082398858339366252558114958678381731027492975271849815472005079918308379544146940082994676077985049687713911454798412327615549202699694633629029823015367952687321854400009980623954216598646800479059986702683674980503053828708958753157000387209839862141554634968279053067280303459383178777478982014802397290220602541828244106189878985224642116727181675730988073628822658392803537994856730250611565248864260208611991312630918732418559136335142956707527153330858983432456372909703486481319173119924388136215493255747096728261592002279210931790314108018423281555577072468366238198371929244063551452314120010471406379542239514197771923741234717047541804772168106618454144440695041101018390981376119682833545348983181176781989245956007077060113998239180747967818911003251705993542369278949666562486383257907706789035927888320047792724443187288758474866731073337445507618798891241343078035290399594040570292659785650011988105863377963752275178373634673107767621044425569983685865294043369861785652711832630971285982904321188970375560815430936336807802561111665809718268377767040083512265640400811344874292418755769388489782577019456680574431194957608307796714984782551082698566478793935425716689489421768054253841830460959542035666832712257053003459384858009880870740881569320782511928836379348284918386683234506863090289771915430719414363729694868458629956923158001847121835957009743570374841737021855967181858648788448860372329348518948128322912436992651836544864088747453955817525377652052910377909452113085072645420618345148543258599596512734040905099939872481652917800064815148936010446839104221686221776730797107858302280181042898753029401489498914161056105220073259946590569906768235966620366470081739680229390301695327493751591429410386549498985153677160441174746112623558025427661894422504036860857648951755074926216416530882116107144836744032622197576338452583559650586634946660808499574944797894090360563155258460157362446941139431323149676542041098780497151862184769120450050716603484468445827723673557660229605262144246675701364611805861871361196686791889510538204837273712665499187128545551181524482536928206934906602520045406668696405460165561595457515083799901588319993931733797749767568421217742523114216527322286193410892939666248639886189596032389116627421399361913472416149153738110862113931767960747640953030117290083242063126230755590228235256303374808319857643962304927521106880412295937496135622138165030911803784795399660267068616281472202342471007364559779065833290182519706556641845790797689506911041557052612312035307841475425264640258552745340666373719655067339266660457013350426614927009212619918450428739753537740449197062912890519650505593398130009251754100195044591584710621022255847295241309078656324800159178817435736781067107717758756690919037489652880376331074245411913312483219047308991520446347006491246084340916968638591452510404457842666022429499474552413184458384792962892177815297065857781009319600044577490666172084732432039247601195169077754445562205111617386178465046684562094045890801147735164573371222734787981054317534341999520618163580306723948425650098979199982182810653223772993604533364875452806325545045794720546361679474368690431479112906651239592791888808756254194175917521050995380781238829922988882941778557501093148482754832576071058464322980909225428146925061696395634198385134409664285146353776339645353124071089718307084343527408362712424819062925709024972712720590123184964245959914517328342528761140943542090686442773842369467434879672293637787659271065588561546796336370878684931970357487943559591969058407319016399934507115339411725962077128925749048507446093430738482217800700677362525399498040416035540465863634891920744742344897433188711973558783301281349149568869403702419703209309217104999693235630727270983192492705232168421597738759234364022085646414406030568303075810675440966681004635465105624829205022098031212500209005213892299487902665134002529017079040272236557790429518180095962423954574223667155071852362681056101706509373675126207896591103398820077103463970674507326620997710148227752888359717243445004736440197831518629038999432081631901746845927242052226102194253261466086171672852513539734592043304422837154796106342721100319580845325742079010236478883400395406295915334164701627760480476424595477350437899877801599238988739046933418860589506626823310460889546088581413850318405036950025524892783329269857032822471566003907149827598816738165882817716176324927595534250768259704025846121096174997073808960884210956273464300337571927246210098695490123616630048449980300954270203712621963119093990295983009590325154505392031987506400064491247332033646899905309038913102249381583892440488630475614964018327266727513570974550852653433899547624463979405243231563294554726577615700088867593624124749540240501857010307484532188771104721296222550760776710202173512823736453300615122295613793523896737283203929185668864674115560885467699444269844457275022232051066809501541322536132277990198654404768255670257437200048725195595067350820918657324045620190623457490871035923066660038605127352039567618276397532126772615616489825589905926763933621406563241915540865780021606633339841112958145384996768182842228366791349527693510383031851388567391313268680588481082343696630854986577075982042144472314871790649135955000547127536281186807822588415035092414456064970097098074640813892898439222430214701806035483663316861166104095510197059495484700948024833906186667258963675588147035163469719013527902894258393465751615816061056801680929507033634072238178176713701352249972685733233407770004053909701998955486351606307925027747889528399515392038222601086874278998644390919621524884028578879241607181154570923593460621511194653001619094888538631489045335894907015334367670150074068174541491292946803616490395398766674569461130977069342819801613800820094312266165033244824136085305882544749178165454189864952161603758653492313411625137221364726932952353140821149170767211423880573641372424861422838860151329581781526758736373876638243312561681833539045144977790168521053241998425165148341306346689710219657914333135162365209072713793100440251339662381041606881798882416748185471327964309601808866478478626133158762998276032533093054661336586882642552103294493225994154559716000902762188593480334437302134702436469367744184460826805467299433316732643304319237598385898943857165162001348087848735391535695265193566877964985237989778899822107357474226697053343337108740098474707090500307222630829005465117455777551159430032213730776684482282559255164076171850969419524360006525263458186620198911241291519019642763525708817804340207608323071281054771341478695222037043670073580357878456613475850086752946822238506685107869121308753770990773485882056933036224562296864928796978883764526390603700299220014535885114493616660756929455445206665644598479923549824361539299095498070749708566987804756940477973603202402584420185600334661571526489164215261863091237917854960461438617436530656590636662466623761898388598634268805183614467985755545469142249504055937032291254456769183245302668546083762033339128569116168064932254047362908903546612466428786495834292905959586136590511516024511024060011660949738916399242687461165269470943632724364863277130311623823020640544922292417761651106506130776079928579791384119534053765149464943204069205637700625325560484099631695213426876892546668029939684559771789922455491850067608610465197387996571949961141215563723317216188039468389081693774191582563044289651646833485744894091280338418026661491064943747952874507705342913499095716733958757393713976778563873798757163012451681814958499900185711380758664038592436386812720583587053925343891959037747894861211826065390992240536177089498700492943115246960498288248482702140683048479881012893681378039246294295265036359253470340736500967138463619648803132666297660360155818451604920437722723096646811579987146069901755815584134064604064756046312164986588422778118967391176493600241013733999955047637122707407728680706395877972457133768614731612670694241446315987245809257352808052734835085514708768996927922235278139635920608917189529847290711670019256639268149372833030504419224496913356270839756120280465903877106215313459411624512804928763244545523147707887336558283486857287746626798294581427033314267324622310787920922458053185418902363177627754434424070617250677236276361807035951114479185201213642347450785509300444904807747072801122087195647113316482501799635344118751945981334046375215933536594347435160247188218913870929024659242420454056740382573833455458026173473167746280941284931385986905810666195248662897545101736702440917463091696091347358162959639547084126177977329917282834545430959307548934566810438326136510075766599202429361659141530088479706132788046421526409118468098969190829939983020206572433014910459986320526615822896529109148480044727974950004601445683860876069781984433472710541074968623181514225760366618952400399575629749352141889897021956285314598590982210108348997163269419669152677804568383435266996964169957895797321104707071548218253151505309534893505433835355548777933765832945124075000824153827059756795796505564808400384330313547366382820211480245926967560407179706515462999696626986567727776640277223803924805741583491086602590612980283853393219456019117021922876389063288175094553051333834931627853327875477245655683288504140152363765862419955022740595306453493178005693550012618087263563373866575350881676482356222410659814843779424631729626117842138987064453592622842501366874094682669322340253808378463065763052354132007865857969638413150258223800996995474106463089468397004747187695098603434572555870365692305433216357463578099511848436955267149246160076282348550032439505160374972568769200796924267904650954635147885525531646083888443185673744535706311377383168191106001895515796915266216888652781845661641257777825266352303579334625051035422664620324220610088613072160866445593710946160694568492156099699886857072874824964532214492634376208203708939220540235396065477225264004407009319131211969083189777342572525772526708517545863957334266333643213609371319063474044554341093771900236040026318225298816708220873756657225696982009540381422805409507859157927953090003061841232769543237833926322303219297232749362344351302067646456969268605984390186664984363065440311107319740070440780013891133329924899705469488677530458558228109321816112566964316121110834913648133541294790342265003050569838677850493447087123485657125526354404331537399069167589725565898816051738352950832093651261498084170611028644381224832549948928204123342342675916281397032275498647371462237042522084632762792752466765930485417998096369511397559914747110425195485822433608998988561248584310660750280096875708776484572046695761711573856169842157186004413727311283872695328764573656385107984572099856062990250698101226603943308505174715801071662199387898615983996381290616075675252090569520563899959232396686114030597365877588565150618323367961934766528952640106447806950474710237436439868975151988649035110910225067758563338689736843099104468913156983681425029327429486207567742278551670465234489096753067271957598678863421575825835662596899884740857356093921008350287898779921448735373831803272218458054599992115500324842678954432388418128463369327829794069930886084890403806053398092074988952517488204247155665514161601757569277321419234435211387372060649716094697569835802727293851774691765958684724677763282596386045912503016607845145997271662024620202244867342629786662567713516947154568888657203239160027438582628688708038811937502212533993546294012843866514959398433395872320790937798772231543071237416809562035498949796636395228326890710866301258378901651129833750090341468183640664467857887910736942807414295170007346172751956649696600011386259104583514605090860405680014028965045034063693751609462840279006613946402468130053612414022538263185734202835544612089940333956418240726582995245281677930203991389069580037729956123978454694334456895966354099259588043940813155830111027146457221289079555618690779103187828419960614356846049662196094590791284892537536676889335603820680551040950018929948515638519434790787664582420754582340003392071215017826853261068862994689715685303050675272882511105465297540952898281711390453924826641470050643606204280080750566414520963943023288910018224515322444637936653033520536584003522533974637346044739336546892618684136793645833983532851460506831144207722515112046306188089872118499936365358728845168225285616245726273422316736442091998013201284532101874423077057464190685762123141154823771024742490473581756661328075210623474027798438163358590384876234789909524780509798705112096535134940232786498820050929687556982082092914373237083676813125435245287990283800775058485703976614668776213621829617319799359509028015976838983581313157863865234297237930468816304318114885856070185153685980297631933662012391629809577322611450640983523579352102642114337012970604005965073519390855934225518602986416068903588248874332955729370257443418143641493191445311464972874667471594638692191179063661975498812800215719851830915108390108667505152937703705583652161830468805034158459173353066188435529554027219090666136804395127033085014482129134807014866414828937834809738500733081636709723934324439256036749585476477484371494113204589280719870461194688431300450565714965429235815634211316802954232178339603974090253146327066730506658851157096740285189809153829077908605959158712821544584560639954663041767270252507478593438078204284824508507941844254394775973016047801168461313598783450933213163985865307604927321692953332162823834775459096572068662256677899385671514006373883199155848905041106641761429629971512296469027605615627665968577258944407633730475822909872588010749777502298286269376136603656897165223372404839461109302865412827711212327606225787722189175847031906289403324814824313265963201717340046639891355566951510327472736807594114437145577318458111393295844705851465726779672947110522734383723024474294966922534568428154815603111424148989284542335423669362085981526692798064628796491175863791518829005397179710550648662732191399104734979009544231696819624254946383007682327622462947082277641607044433356896927836702045543035674986424081254000072338274825225101837688378272707906224362036450185043614794167793450725590804559172327484990029614637327182051893901266607961661303851703042579523107451891726171684557637541963573405206571695220904722132627522366050821579796163059981072353653236491284841740069630456119905878298852159819183528483356237559920911168029993477757249793293317034081826507148753305646627254571696037175546581668329222444942614224226381735884120408688912816700257411384806014847271786905374800990653182763801513719063176127182216241665690837357197611722401712886488950653521867607810537306595918763597978546972767670121083552296614911737188304364378039013016703434626857944838375269783434119991290414396809368496054890428356512865813086621505665734178639042685534076095108136681497245097831117401029547437336787804437386422546477430134354177865984362833998930625793466749112871790564376346725936151162788333225224752073144265676656447290143093999461625972694897718822103526967917625635080581491014504502137820932774796398715494685455660114893266667694303174411876648794870251478440707699406787814436947894237743445856619824006837381946653044557626197113386024308384638550095616556187773054873562337503147215651954374524681094995697949328775518476882915556195101164356998572282520698721038607871842176902475988315639334295222243312310054908885390219161829478995957023475902837943301851550028238134239028823772630765945531658314129358749077274253330450001937469473743097282197458939849177908096590380797236308662881815440203518686653786370526344684376589097307808349570905209606441738156346115655050732460713715541906081535511647874847566590861111947966009331300297682408234326390159008322702884350543047769510049095065358993497270952580192818298179996284923980834756044499539395895090856954883169034774489366170672126076318089058243322145614021171183724620443010931959965617597633759040057159719846125244907279935294585624553635811833882914332621028601251237890776566786244180675847979302124962598831536706493324039968794596927665642595383221653034613347605695252114472742114858871803430285328771409992619165939172614675427637129281280075102355716040274413463056679470803462498258431464750467628059491812265495639174583450689446326177138247577668363318180224393899240335792990913203369953421756944996573120870510687901913457465088812841628505093128050719286302822459936561563389728743594502050007573011491726389039686448415946830430055754770842712599805408761134499676254690941389143951241782494857408824506852883487883118555221863269975222893296984093117056395855005888112406999641984278108308341019217808975584230507025765732439878962908272612501608378233141898954996210835788310769723098700224843634771699034776353981043616210233473878862479182813190733923057233295553622757761615216776642755303034547390687846531407532901074773058879996628922504357474375546967358707011696854279907776974087659346856940639191596224660624694650227819124650055214834438374056470767664800930876123875019966778293517789746929020026148775856158821259274243691667585210261211673414711321849362743810835885749826605414892446214686376684949982379700238573652780764979312960933419123058169513705823982220279924539798405087099014026940590158946792467390394207138146322925063434276058555388554653924452197448815039841046286281968907768691588838042007864881874610563928193083082112275433174977264325979089220799078734830464324041165122893296909976134014121546682170248890349552179040432559875863997415653568475183314363756640926927858287172132963119934864398113237978327895639749741326428997350576117389568045627673569340676196454669576063757627293562612717143427715766504785238174647305728174239028810501064182203582585342516213143564903131089247202323847905390009545317155239029427090563543429949517315904713440746910684351067415590912750981066526999296253140924695888782354509108252484510166719530530933084935995888857544470696096471887666783267601760165509836951926938161372100365763660076386028423844222859606118378037788878235816242115777081592998228864334664466917958260894932885273782734443154762797572451105810316241322462474070395839455425592919371980689883296011123033592365307865656609490528737310621128979215262121995991618293619478845090555287587224218729639731224253987412593914430484814078845737878031060311421954937014254130089357371069975186049026166688341182413457987260726337928729801019115897673918968456593702636075816650198591454185349802327126804170718075791222973553238016456668772977304651548745408103887383983130589511202083934368037699075204492322441022207263752477873255673852313060260121784016209952149764389309103086335321944920001648539777937454532657907851870189120626263214512851974941003190963777156282223607584362924880565259368093762308803294079543261597563231642402996182362226218457563610453722942719919082529948268402658765593571160116974400929461750221317445751897163127671343218840940901375923151722954846789982139070153661284766965813997927161224453170063004721256235563248850470455345116717839880036554329821174623687116665982437428226392381424764738893629739116969852729663836659556192354348388528793485916140357223299497241893262793358449974289981816941351987514013816735056433636946102131721958571716172442000867669921835525566879156040691366471402874608646184810551360419722961842686692585264658933789636677547436055819910248329140197421587354158670185724246409045678042293936260955565590155735280668294812466939274403497400497305601621506108313224762344536578774189616019672780909311934259335961480528399234203665550315896866470486781701679232918660167960403910705307101340149162913692580356652298372538682011810994838653021965476123191976541596410563277924957799526444993606336924993827378188349787216256528242510287173860599277875081035322958856228589298629527275887306136457362699006883387288650444052639768275659635564417099442133956882264326594105657011271476256767044958616011806999075003671736434450481902312153210686714818026969350796105551841795658817939291263447494050076166933658322781423767606842626474652774931799855501511102051730344512534867370406900063155938838724757743907373139808187917130472763235559308250180131538582448058849550273945453326494588659659259335047979015820002134430848032635558140326338005394423537802497372131433018620169761930811882911924624622190470406292397335426483620981909073975822821638120555148375514222288275217198264088741854837211033803272490342007869597539953863263805411632980118155090800616322003042053695247851277586518448585255711500880608142182446522912532010473972287370714841261196851344600478311402436308241986033204172407139593822638099381964595958459358511239092394423303602438912725755256350702196249599334647710807133040977726840940957739122856842349997528232257170529785611671920501089060834432739055691313996526183332973386037906814229534640224478782863798379621502827355708464078553236452496584230031705812097117320061782365865533137322620261866253937493036594535047799864498211078337049656051866513469969212547265172803034586005396100826050011413816114868585283374183093858643680250971473218202586335467667802316566885281159729766271800669762260452033257602074459229536252621173490658545334528833251196482773734943900718019969924195730352782444353858990064790703983388145233384520097020945969259643071688401773237428747107852124872871198174267416728011997603578654396464184584150035314375294936748553873704968612697694163080585127834563178047801526920293139157877889770564118351594899831277778431742876938872595467935928283139887734016684485390522339614692418815089139751458226621502435979406703430634662956954073274280380948240462092675529184517580200541149815699078782787510275712092385721849352157133752132792165752874759950506775295742588892562117542734631111758366565697629464224656591543974129604654747959492680639830743207231836979490488000142228819748715574620806989643089433124884357881639810966454566878574411257240423568313772986376570204526671339462362193581557781926531219128636768832934678214305107924580215655232768586863189677790484503551303748064400899268034906134349027912176143532899996285455293230668590032886684781629132673015848332697643165181600632208703537133989431872251903068633277668912094039406365089174312447452431152612564711046516106976459699103499966687123672234501387256106250647994017838286435270048418900636109409251953073771758961012501150933460640891211991711559631476354095131192117688413805525231096537358818648312601895964287218958981632565120308296295094798904148391002291776888402928745197782265583330864677750882380882410275301206461741391016382872396226411891930451590181665982240740727363720140022471867478623587184780984386828087412372514565182841262716462597288027824315395929522114725696380327317971647529434961885078814437906626769359095911590110280541879258867232581118429896840839751975942994880784588854722195644925932915043934691677094791292754689686592797312412784779656840879224668227864686208755748906661914095227233943756315936172123037167949971277504898286671719436727243236644068738514821433855831101440611901869305550060494014543002938616680749042502853252542508216596312096641214709192266020961106618890964740365639720141206382657798098342111780572912229587834655830593362470980919611882380558032251601177409434258066556487827221945586617361324966295375015723391715380697837751872164945270685814935207133733021028580517582908887304902509660859925955816652815294765481243619306283020585857445657474556578900210650810626340007950719180331565289851345822554748843429036500144435700792110004598884146273577454307164932293023965649947115317287218984490359888687919716347321601963021823741408709124899422771940364062724913231156086259253288252353397775896919864413997272830165848458736414034622572180004956195409715711141050204781482306885088199629001456024183849899374125278198567982788464236816987262994257816671204420989390221927363994814902255586785996481647054834535633332680746397203142232105338944880492240029634655200245851943940400107241683431144118389959557568279923699099945724427828082675245181581045331077339243843953557504093248270641819714614497136487496759523996918386617314332015334551083406270842261975743494729970071732134971041635061180755438937390260091730388226127153276736935958678880300297833871663265118076750256005617442917824856365709801844538985056167237521350719703713666833951580575445630652853512144388386558534011755170364653065553426143351697487609909648641388582289635627826834046636818180126805893148894067628535765772184856312534245046475110811161511019979994969829966549284119992324894809386750238774733842497270026297314200157017853273704849326137084432479918207192241306017882942482048919184912132334068561257440459609844487331522616724252781341232965080245033805272781986158275888072648098819239668315806566084704620834557978332050614796355689064664031436747185334368984777459564591035226792859610749365303161816072907015965663572056643704817337117249468772047404572484649445604380876525698379740365353705990586406045958888725227538347600000728657057261274679517903145269332168841853702658404772719053573504782987410852415750364442441392819994785827691692834574126654478379055847922151509199892804346299610548411496880979794740780334662110082922025152297333581652745797963808241437821029753663261443084264440560401929261105622847027162249913123779595965751416861796428537835278492429345661988428157982876806687433199574473958767901168249846140093168724350409577879761053345495715106640034256520383045867786703788769550863133501819831686134698878911152634869263642433976835184283505798644431803726951862413063193600018378446080377988313312046640011248981866216442144769723504317117966359003789285821952333858880816109615119686805323097277804896210532148584281994830127157415390756729262334010776520505993566318046559343519392944075549060158999362698381350646285467506318325269059062361176835126350681301612938257798707890480739002225375683648792998532866175972386606810031994285773396837211801335700060686850870464987767542310505652485394084902935800145600475210274503709291469124199523905556489743677183839608823315885454411541202099937325643653942750167870632718044850088047021073836101049691752817319398626910416089796198179976822877420374382391730897849761471127254894230381304482589087866897655883926831954110152651294346429301727488221988171222267291835454916815274094908502886558446402839665672479996184509296105344520434858348406467090402953574979692967419950703139028441310641032090353635610223487758997152341968093706810111005234170889304086994380544746615820422774500227109810336121621091945632037867504086752796236173885855272487167690160029269560316459510545129395876402657647399697958480672897885293647533012162079339249819332853172618848731270812435290758001681750015043433462446011703493125434183945989877653960383323559502710789440497359680501314534866945099564083795428781484998429416215617619857810289917377489938831784670099433937901386583553518921803771810638790132747740892417299042240261996961681575994782931138556047088503657627780039361157503129092947350341526412571550286091669826348890699301623380813220598309106737218500795200237313874334713425782501203647791078922760496387680467789790343687102175230631864356821827471988498620390896242832464069063949162298243423778536504381347980947664189118033528184053177995407411930106576433936081132753685370763123357978278213981918216179862558452753932901928943057635282634832299721486805044694230232740548671834826403164774320749973998335681471198249455208908284639057351575434803426848292732377683095072270500206403554929216997974386519242306337694722470941595976666851592976201603389312201991249993090522163038905049850099440939705298207464709970448620543789126626897900484003792195554738354212270264733927926888021941816864294602400923940505990954684979000132844492795818113474379143961349607123880949543808529733477559065785227900133161768802836970380187220491338555885052558552853926610235665762749391393355730574595697044982057082146379944105011988634027696640301063894943183881639101549562106545374545921809574034415928744375582643356564150583791348970537495450042880044507706060217186068404015389037360223550737635952449574300417762731555394239146345349382899928379194274799511320957296924940978617852584303800971097002700588490032960651897853914189049798172693208274835414087754882776309976422430950638114597865093583954468834768856790036134718488960546848907771636934140774281383622323477399647266491535579321115056810750347705051717405093801425430263058474104482063727579599570475751019308168363558053598767586362754639566292177291585660732171130625490675622886421180484603090076585575182319626148161318923487634307099850725076607472985338340858703587461738265484755637391048568975821563534477058167357967372891947116690265868394020301608594931142164837642493646474455712647313377983068460364302906857327432793307216187495183054498594251639685650342887998193954878986257801171357903446228148933489646237285161695423010492707713079130290915438325277973860924880007356580123927447985860455434185844922016401039230128870094142278994668718125017926639198720662419661364423834167432432767513338894321107886870241104746286899781643022555718280278111655271520816458855629294281593396588424730584271658456939153724766249552729877429990843611800708338779598200873297787355381449381390023106281416917753152426875758719242463761738963421483687557698070714412374121933415885996570496532499291278003766838358343715842346772903907425699693695840038010248390363569029561988900799971652090070350688173270444769514383476161467896709166872653001990225447064149852385565954205447178042654746799639866528626951500261912769649463731601978019702588036552500360207886913185791449401163632315077446983893100234610548906482082243474992909184367025205275390252543202345604631465174599414874035327728245827310749473852749500208681908856576615512973767182385747571985208069251320476899398640217883885597505966905986442063299302253910816309884465167592440084087574939238098778728805032092954545057772010558383538534134263782920166467110025577261586495909501081179426261594399789703057856339251440488234065009369698247276974812737740836901370907491661698701405817274117166780344236180267281680064635498066388947217652141343610993701725959472374884730855677667715265241671247590184922886241802981429204202852625660552411300751369722782924964220011461757692994418548645350069869569271963987819828399224919110705847328303993953437742574539631069596735108000342224330520528398609598810911438389200195963175974140018870438156231235358824204421923423219745597201813633211184552633687842292730170932337621098809876813155565454587003048807705240562051372024677416196652335611674676760602786334795032429555711925767796799402992561758481983010665166843334938221955382748510476734385896923118780679858632971484371745357335972896744440942478437214742767389259653694939677148326164063687614015371112702125447805151058472755956304808673303974068084027992711508656335219095569650750610353588124130534838899392898768441383166043573293766642970869247081450337763128167529455894777095089021699278505870795949669130208480060563614208925474469884644623037002502075408908975247414049952066135804227240722063041997061622347885261123699090122408288646462540492025007797687489071734104326111205552460919174123558302268069248206794044816659755089333576935630628877339127171482542352343922335420437430092057640904299513037419511578856103086802924685312791164444803104442221707799506824328339472847811162904459379341689827922310107975416393402131295036327639333477501269130934255801995431965802046035908207190214377598470265555011402572503075586415219325440611422973025567230386895504670446532398147546096794074385972810456299340006199217794742229990981770065765716269142850452520542534357585856074156834279507420369050378361971854329057174701779785016990851741610655349980623645866819281464422942021585055624741888704239766338332741966913777689598674963566975427332485861301445684194671075197387348613920473607026454643742820108062019234279912884121143149025194525128890978873595358072602722681069303904654072330684840558123580302226721943797096117714739999753877512020506608942011673215087415625957655976021939711295298984712712139801335800650964420302552820741719844694559911839438415697678063902195192076998780242466071298618219451765823004197798724300609555150104593786687409711233717676711287681017601950639652301918690374189087397463325517306058656445407797823180315332941944465722131248325408482262892625002259001815859043604364305704741683894869498425710265264506858742165140293110449994738037088654049224748015375740229012618410808063054814050451112739218689566170027679062783652318786365645157266645322644862956759460838641050176484107002248634208316425511580361089820309992399002608151763311734208850041196774461990389571078432346947411140721241310225985088382711064968004192121013876870876618112270934496897356644921506058333392438953082642812365469276912169729273573018711273596960869027043234689286033794636626398934163747052950338213192760157093991929722798908953791659148433920975956379723262139075302847392894935523596117407211813341530799736706286300280744280214111709368276405980399342058199849431696324717666818819460381190294544978503563337441188313739640893356668563994562828962249558409184520028229246462412410456882480941882312685139428783261391562236544786796819925130900937876117742044855739638677082436442204143860579791340038377577971631009852857709548527558622555515562695524832167274788970658615230582248287702678100509442430969205722691059194796227841249022334221016541852475213101034333923059113317645865360585394528526668717028138303546998515933881898264418076495271536711531156250679458318539786580435838583028358679321487886575995252504328972718092179607738524054585142994994435305761450412429764633188861421414682548427501009214709345401843434335793960410865542565699950814527847413484494172747354795269228659241782153715475347181934174105975020132003065366822820974535157210410979094965937314012972605012712782480185357707095018620620992866658702374405280399166251113822498703554050963342086731761635955131398070627756795857350591124143452499318742684672000625781390272393845240690021483016399996582516582276859570464579805450797822413531491937239925002217145248027225785129874992869851198324983412557502954801509003992122975880121790679520316576726409855962610354550330783361194793384216460359930801863350348387925803977146069447630847852434904491404153509306865830665668011957806830769553248216473762214298212828721953086997437242661944050447792607186625440276803855637916845262701266938898196168093078564901149652140983870137658145867534451246296587026263455490316166839002893112661670772443049979955619734584748136406072002399293895380942890761340553603347438956163045831867599066453041602691467148193821029133134398551730110475489107443588064500002941904193933534028717331628056581158203012298266313036324793747672847158406487738148958541005749924049666748674950531181800235795970576311526754078701648401269905456344679655594373954441600491408926183374851609922020128895830837590379485641410911858199122684438369962177444005646648501688388069860595512986497471956352199364499245663680331871502206505386824961339253732948807085992422555083142532380866900599774256678532872395454338054000333333408877269179924561737469002477981744073350353662402998785729783183004311200149946028172511469123984775785265900188091348134474505460088176267295517437400315010844555366675411366781501816421877454598634801743015922428891822444781261433536182677806958699182168572917983344508237615085284549809748545331318458609021987677922622552890328816851372943502763636661737737960300497961718752388568879733494216637200524955291012092290595851292550277015475058060759017170376538625620091154284528242672456472736017383427492900418209071848709478139090901544541548087884076789631980827550186453669118957795740730117362608225865399795053752989882253220003007642091675383023857122571466464022825390730625980188848201883141678274190489656449605000085014181507213175124121370015034502742925808608190357541096849633068531659684566009316003353858107978759744023659453772579958152248357452202110526731466323506133774774393933920807871484460936662472117231415218250205901094100059016786286745355484787670956902768518586709569717054956918967177344143893265773263288412570010594194450952905193459977664110858510823261778350034846054886715799488649413337389628562697995424315751902933040180838766722619758408768244584602851423553713030304853698261082277654615404132265372779491758823517073892782108560097433443684344618284228227676567374783118965177605530574265515794222585638951296908102635029101053051319521293743688777831405792212666954428729636274171715165486896350705580451026918375369400901410109651183387038340837095938537875676865657777506696939490951956309495759134843072497780897139684313029249658002544236795798820702356157279984872032279549452906696244376701702278851741027876402547460363485428032450109921412529683307589141848569269805524912944177436260246117327651095936301494387808575359591915169534645302560027253281568125160308258224065375929232732828015529426557641682895439636164200265263299695993519524347424067842169144712190083702109380492727365952847905407746445234691705104834850637572448827337157061477518945095654769363976319573268589182237540636004451390655004391226826451496157976448028057718371080888264746291322605301529651907928098752747970878552287878835251125155343337863113621538351010266945974932534712629534512978975151954108413859301348222757947782730864559734579415544875646024992951818571581271136799863718738905612328634159223695033301897506387903954167927040620974221554939806844015213944874158425588478190053938093698226906705247917396228444625638751682462191043864080875410166977243082224002859409031815436212416995033187509677516998060844574203247465549730965731586971200041620177492541570029839622035511854675578336494967569848876586562301073145537558200333992052446908053888004522969636727720205845893380711239077159526294972833071182026426123543115509224448344979413715851197894823886472693759977086251088259926334707667737403045069380275729156548961996339801199336302684879155845150503026670353531782335884250981442240997969779328045094984850931374781063899590081610187161422616021519887823533704700775820235957631014220748162913726316455938210648451034130838302697738384646246890572102443165416975093245101338522355689495758805358153863970242437928075276386089555078936609175814556954835663234743641953798557306130216320415343887235947102134846400654372756483786596808863474710100771340104627389335793910123872089774602203850607776532444859599927500959164452809879135850110936674028277116762230564025252667723697852198497225574096104501273045099537926778980254345776652772479430872823072799917529790246273422656468823879992005938378205389122959576958522288354310351324058916099423817134955220217625930120982089443320130338137746530686451383860676293207258387922265211273570614370462362414341845446689670370258858048602541827553841444569254840410102703576444983047909788594262249799033214015741526415085059578110272420675046393918647599396647072862539779591158673016482348862472108040539986306067680169222705450977805141076860425587691222941693192315052559032791841313543686187243159355169181299803187320266562303831972077657687054784255217327435374578587473178324948486987947308138586360558464288247770187061715385315146367663751434532661413289145506923884639607277334066485024279078582526114085069365478072124744579619436406330534739246072973651228062107321097151506028707462938786309716782389721911554650551013377402807520557638345146042437919835393769818805530209516336138878198288229573296117363032600789824869058382493759619490894193646679560065655765461322346726730434146825618998865997659007063265554678605358865901271476026241397958622450511230884066150052736868405719145536661557280552544113068374813557293752237365931557150883879442387345123608114369508890046029049578113247970711744775811315501797737347018341476539060939357604995345963707811310833753614425049156793234372931265447029642352463354071966163238284749416654761111975818108001150360380328099148137585863688765097535599602043025855119033950204440470415970483319964038800142056631527348065348543679241445084556626866311403947833218034159524592451364251497524016724371490123452700383003786625551663541852044082469356013800450194724382174497215485941881814495491596019785282714942636038010486313517835706197666746990629976930957161969585456447681940998226181371631093036472622416152685992160077567020891164096709118393898596502047957281295946111175444146181665879974291201487360807457074811585861005920765274260775042651993242554550968079510967071422281999805070746078259862879084135706034099056530005357435439702064398963161788263843874836882384696940697327173907210167834482233072841575031909478445588000807907556625950901418735606261267118045450930922667423524099330307518460532404521678490264503936709956638806659823564018691834576036624603576855057866634281383165737091199615123564852531191082986453789926008051293466215819623743524267572170049060486036764664841254956722204374689814262458346288263309077039817171720811664011726577387326143570122276917615016914578355327781738413607745314605773103979414627580048314635053310886590424227072137058386456944481799657131635413395500756455808366221422821943933584989167077651036645242301104211158556416061776813860707673920048368853091756530762382719799912161362316553106537429693170572438896840374226765451900359356243452799012633401992662359119235826651812103754002268912386930663235543048081805990461988287036519613094300573971249620181211944410548785819101390638848927715718394204874540527365492148630542048822774981068290905273171671731380044574061956490763541791404029792492046952700379254193916298059233953458391371816354097673242080437655659178420032905520363592298434579926086541862766216645142476832847525199524495243871774645200266160297644625029678355402489462520268837171133484633269213678015895677487244815015345423203068194752182056158399419047538847336227989250719194559965980691715442691923923790029909400927021929813174835165000518614106686985094012273156906271482591264216695770024795878955679435631932390781176445662747858951362077364784501188376205309191038413031462495684271966451376627162263677242377976723617258976001199915682532305639070553059888220278777562245018925239638647981856457337988181738923560333606769656727798430697794449891529436714783028448689676062789882015393561037580512491414275963687078177957139178473182786176245321273806320481678522641088115977059094460662312050997756130740546169788188696604358233068310275249641911611170398438693520391672470704859620872239501860690655768889687256208749254812580518604980116231406126623285821295355756136797676160954375948008362713011398009061426818094515811375709036963198819435029049511343868044569776813274778217526781492064590495145518112222267674670701176084003505960364784122522095240068646127800995905110429799280488609238362111251337237818957332141689645649714566739747336139647066656296064397947652378036356725257510576577494131556547233536087672422298212498021640337470693300688008589339149937380508529456095036526943406800526609549432042410212987313058829565771645847608085472710007073435008287770170216442249120133641595999815078009466702936562975379549393449627705185058941501839041032206491479768072682663235016324858021106808452584739776657980130322575237042255999743928861682452589590725846134993829480333536129855326406370843498375513519601858865435076061395474773328127233689167678037573220534455689637320904760248033093870628843160118688120723640743496849837511552486698502184864048932267861661744712967647655597006976735909490229978473605239524306164798177239387480568454490825667992990430430901563690602741581206603224903445378986897276119226291055057083583681028450080472739711076579013961560815919015777694568563455086583371093357441095941684349507838790342164769983872387698550677468721521071814329985993726646653242886472090465046357954194406129292983294153200507633065831513564010892773644123251751432633699969082742252819129738457611357769398769144247302704820112919185420436702946201519302855938349407641859200395575799109073860432564167586013000341190776317867077890975871639789243122004105990655157342799531925209733043550383853005278402927149906683815405606907254668135696499969089382570916648045650901539936353868044541846538493030957502124486750660517535191171135108258287341673753119232180526725057268874009391824027750737113310310218509714439200117114750762409727493518105864471726314757020378674613528155678919320563315322533565884348083738017990496259043369925428138819967403541668964581771600585448219052840422363403436230396858511601824343362262304418642714675886611464652636879766767313392524003988330931045081026950387448744019529502458985480300301164680686146515422821577756855480503653565739323655973089939938434855999824408681609837999757220333738704382110240921635386277800851118672692511709702558596219601403842636036368671803892814825219135078687305483194618292098580858990631558059497135281630308299641458377121312982431018299619476174720698631152270526325235862579827905178916226305734644759367189404212177748909803511860666603997669407473359459247200944489306720870292276557786959688084713227891646324219658501658946337550718913869741703434663578315488429625936538645348544409972249941218254225794473475909661576522697108494496719103009972302407371900724911469493540595199650743077039971935427777358433984702770236550098318206784522617028914342461927300914066033661229787269084786065665220399343153564969908149757325470901338506008579460541036680804785006005233783426024616711347774725347996239382647826903176173220057447681512736849810243605090390478799342759093917158389908164129721653334500497377691701687759487461370132585577892025728423716733525164598201874303231292794971847869089682458693424377286291352343411061762746830341665872637604038318578384460668509786330868981204075715141586068417429426255734202442135571739420469510891338242579305224149389055824787822776538939370078322682982869000846255476954409330170033382615374324556440500237453272507820488223496602528584793342462049739487518184057658520270771649340641503970731637305382038908224693543927288067055195648590393830250210313741324893157439691109572089222732393346885981296313392406534566202376342614598344390024406237072078342183394152843109343661085540452251535444107718062392835663119600871656506899409105916903527979196741973171731629245367700106532927653542252281210181898693897584463136100259602190443799748930244084111824141029019518874466105502004826105822491870790950742312287133131397756042731737855175056138093235977210502428387516841161423829323841466371797455501366192456018435242159148342302095915320785499849316618078493306301369568908606121831099793323336805451070859434206120284658837303729334858705004869289883648768400970160734961063894344235885403364418019988085896160219013529923580040675059571355384892174446158566473407233062082748928493854252032755955576274367311514078046303356123392412261422627603512932894773742478440660649656040369028296209664363074779445138255392095541862851596507288281535575998263283681558152402224497837805814172117388196060667906914280056775297870342428053050359104494683781696150660047845120857199419310649096241423075410317012211210396455303361525464102374368778723032611156197700451593601500599398691666621390326133066111904200002316165242954207182026512429760985296689948929490394451330248287972513638219582198125048705622941660775519171446045099099155844838235775353985418230757385039157635515877966666938328907092708473804807998283069228076530879911789713160549118363391678472501802676713447268755480064693650242752461799487208756754576423087862685673730897827749420679496135170642957855156107823108971474322764093891673046661902308989291777641024842076666136939095372961905807361414017536599526168943703361506647286162752654155872957131312013845339736877120449188066533793562424344727432781199903501671894709699955071224930136375414739805961683850151301692444035877719637253465964363258251727274435831368831959183452633758366531599604345336659758664010439477472125385492176242143794970530427993461392278385639408882092083208447187930009881847276211954429660833050588722745647871389703033404149146756742318125459197894206086193922153086809784363936574531392288463525845386605462273682133204525467284258115171878505122125646782556771452095344539696964181787433703068709343268585292858494275046055748822938840636924343473633968040976107663864196158297756779954787614070367381364090534556192552841428349545893158755785688857535279408110665195453882781055525813323888337042330450211621069737364164997620763565404303940807961761706422280422258991178541663231352386036354921016189389348855640744509455032873466032381202025784166191912249382184204446537038402333136199357302259237738688681863790996574915063416070506524403482891199546830285659230886822559646421647896197254058728386894693505215237442524640008531998139632242126420635320457890759841086157960444703579381037305781276479318050452757349974259304376620295438990493918154161639136849060810993174917903288692609037938410759150883246023506787984450918806420566330773774032091509663832534634310471337515187728249988073143346258148871420550413262245689006465106289211674331248496644550055379449497768582575603384383600524179710175855916200867700780877457352560085247825468444578137095018641045054262803801282720218310585553165725095488037339241077512156686126118724006454752170011369397636567939665752401824012833952168091847684918974150741743341828324322751009624795367411280249777369625008944943858547173684981203513193448908616733632200168421520141308164539263055412076343880784001707929160627038192093066553837926607003807378297288034317532555471755361824774022717971714079940703561685909266200439688223378634671730502097968251930952565455513219738662276725383847420175777237281428647913686829657096521972562897716184520601306535613959379351328949163520168512556109973602579685753138789787275723042334898049071778170588504887809937337977526511950372423212659076202677206932644867336989659628653955026872623639501884590221717415057693386711661696234187981594979701612402890598476609341079517498990906121190888348024835288280420748356314153928038441156134644105801420693650871668630987060660496024869065336988415944248680972303257309861573772889278224959528631514528024561553801906910314776767746863365468407913062656267613790769734371303942587339498948812414156027106843359016124472709923396911237685842516171025773697430022421227665599645327497301130240854994526930008552384951050935692631050640240328236508046721994448762131324941792182907508229482704875818050628730961607528794020961003143432295457190269776054644695718117463660916936575563972875037899252136920696610591505492801044231837814816355389469128049326611690888735920480110376403410697251967324126860842442437375651218057357037168156653450669402541007963385967235283644841348330919607712927255739573045793701676266643573470164665536035443099486735837062573749249143651600905084374908572187737661793613652789075628767946198826660237659056071888860450312246416365700407878603025385798583434325603748125650160992658047873553981599805639863325824168964001550650621514856021755511737461006640587151483333669658900971116445810018713830201336324220465565749810314978976288293909800693836372942088550445796607180080376494082483128201346211228595104409704600600113454724521650776659020593792064437946902044311300687207045419679034430905861639852557767823868146713147515965559282710371264017147361641397570218412910886430251902586201656336190192643237246498714519822901532630430306392892613206405555719650099884964470438908607391370730636765240079447222653423556381976536986367741395258548777673242448751804132669692756343420688358989255704404171411386362633060396614645725473326397661030235782098508968848880111189206119639138158677978073014870066932377572330555284588622123306096243666649803529526305538805166434941793859861471696822099753628555983389755431702589934074666949236991751729689763006277237195767271021746569535805825086188615342096333805451394331549100572306425902519745143647722004865944335183094077129584616163017508110261456430846914121980476079011887826874370526520617980438522119670549018109100905701467342812080505589898458895380751376937699163135830937005789530232701866417629099451999141998573176861783298962534119915697354854347451540755812599226205804679344530832631376503162248319218923959791728026452204100755570933572851731336325392599402476120194949301851455619256816706566362509590875121185918955890908456016410608408053480876789238764916835376829621327812986580054935875648087820780938693160093273906644620777854272450402583931150805968000169880113121410319819691214837942720289421888418750977935236352271808931786890772102460067313982320119115671799285052921236015727198535451452260377269301332867061958510223376142083836759138234180618459581551135340381307547236553018124139591602581107297535735009971925626849182913688170261110012613228445736599756571612847303847666073006329056934597848443335844274649313240528939886697602014128407224654509359058279505257799925649018053068302453894297119029853505293993353227401390786813589501939864071691259688460499441406448882251813999730913008227098207138933319377056037265267333381875054261889103588385289745630399156778845442157962014721159042985918075817216229424914801563827328782016927916918048051633647586059375834098974381634809248524748278025542659624165209622034989030138850257326174040154578412223836707488239970834685580575822806770745791343734316089917994755360614296518558698404377028945402291975054000546047146031639175545858866120193893840367189274894876245468064780918484326883021417775980411748950949944348292404399361557200394405179760393426593740101406311095442858064675426366356645182674593528881073722253211737580005626850131145114407094550089145699765931278655103256825483877422313533252296064986827837848454675349418746760566008863585240542653861622886179531768152987771690834895816059180165374506522051156585619057247533451440402980593796236105635746343879650526971136981318650007911621245194782972893911626111053621607846611776360121391356954856672626837563378965906414290859287067400112893262216408433276819727377757491606767061193684099702027480412017975695387328153646466107811208278064779219701547906713068509815449281678311401258154294761675460335742751597318103075627534244148136574938379307654641124740902467894753826927000889916287073965702288905374996853470620612680616821921547557593936122074630770840330506096657593182168520762950576945200396435411092582744374469680129700419483391973278295333617151308892021944744209903298957248449492840043204913719977259814742908542220089642552919160182526047729474572315065279397796651123818524417780043751473373676146407863954894944030984908015379742589343446975514152567153017126267195978934948326131482517115939073865954807582800945726980251342180457481594969953755720181958266859972771691571582032364429050995377037497147974748080015041307442584166234368596905639357923834506105703514629343796646712945666689719354341363201377944012966853971655632263717258072801765599263159552851087761961682304820502736828784343512593260917555771572003370500679403712046475924496367654778396392955673343946670330044264502177296768044057035548270301220165745220805864947625927540404632856233224762483878946566424646874620247162013210287062050262210867390591752555493726080746678592845637882504224218310718971774939930225253161450252655506277604678235144160949838604181463332916455025267954586735498027306997329415137371387923150971047583142484361346037704207776566360040243536258460531317318858550863118484044014102187300741660488646546068078491993464022213907794151782555302266355480714854709079396708119235419059666773304188926008737059676158285997416398538965584258080846680909266364456364352237657145442980466710453958935476276791495290963740668946253745486029432706997639156866055323659880306897901383385971678387590456342827196640885191225517820707660622424177292109143112977366899079080933065371099546924097525987853861351295888991017642902788819739188294941905349835600730483962574306223626038689531487439391840073482410251887002382476018213015506996901946173080234651904686620658156359152113783716672441666420779417495191895037475741252226207840937264288765192814516046234771623753794015699018334871275711073847482848710135202919595511527119018439515234485530759315292759444744717970991242338653389747474227482744487549700705899882232507624259214068988628735959232086848031152191828412847452649784014800052513637099666321049966306516674377297666195124000826125173754877751761506794434685809773154390695165180930919945560454352818953136622590931118036331370875303720690732813713257384601957134042333682272537724748678711831484761930307328524569935660412570255508754098273415611225156643914843425555114098183019579081157159195387031766363551008362465198978026538958584333572857184167574122671875062007556078633503058694232711123064773174912562414347528098760862947178591276226295190411465328757477864164099793396228947833648874490343954772023340830698933110665270860285930227325814006517232745411927922355687604803665410097751174641059439323288284114112887489887156687163898398814019804029471694957344674949640807810700766838434250643544458061615837410982485671875572150579940393525811043288081655043986177719760153721072966497900926235170658965643870763732851904799807610429985021106663043257531985982071559486939685041861825812454127090649137186418357731564711755589613718723821027890052702128648972651237938054595952540164911937804674760823551578718651058287678518150807197452404314908251588601396567785855728048523559627443603024427452523649100474411458030702032310924862712093039599173097597415323074268468944353824335316554106232055504480182280856471231636517947336700673075504187960219042523656111332632657061085772115792947609128466514595726896296922136652147331762157055141146647249115396820250415157658895098913737987287710748118614362508783717866424197468785022249626324898492389609008502932848875831835427848560301170403481475192028116997621701952623322025232124347840338932220407274093484738400099601594317569964288386080345208740673661008498397224747316318242801174196059440303340891055691805051034669614738309580792096170784465014341555599856498441149526093050109272067415482748292567796398599339894555399743653456923395619609416656084392149324840764589273204513916207041786385728667197198836890384064535192900928613940197042444459895063006581398666765094712729554462314663055648522652233863397228800413656623284743365174075211410253050490990278383968441822387229543868655948720088811268354252936552003297806553656184386668086221821756196275997839305975192658335339224619649889927140060552943889532805920489589148589026740588409253738569553532843296009700929064790978902505435893993491554542246768460218894938873231803442659891069116457608265038151029999863631029756515678676669141096056085317188212776772369967625342670274532723257928538192219451775998695547709896907696700915666881442473122058752790350151999668779375428594792088655277231647634346021824664092939939778997063744775921193066903584125456849671784194587965338780693772087729708433563484648360079504522136961481283326184070415988523386750837890031040685765067049595054204655209663155017718653098993543106827529952540248948226884221009275183552806619298633443996455075352969737836589793162978815319807122086227752659889710710364416701356217252078785967370697028314352588467712503195552259015435820810538565886949967100461793998892045350658879053715082377095564538075709497275938587467655785309285527993753653168947615757261837441126969870845108371007183214778312644661119671003056071049126609429248782850936427832334790537613256058613788743488509189954222495807619915907903795807882754980606869817423830583559309364268606937361935831584249408087445860445085140230505330482099262610918910972144351656447595704723755602399438679043396497523363489200402883920020502129842077831779229938169540908549393902608931193326873138267095016422417783450516616517687663778634992125728533620979789862501934674694224596545963766883859082522406244944093782459558602644395541417942332954967080392335845925225794320518798429736158592910533018738027325822114534148369883837017555379727584632158517162779392378878946172253460557110893855113063292823259110897303329614906953655322771485223472933730138142723092358384407906532273455035265690181808823373919803118758107765747063648091039029098104322019045392699947798011557642408601969798724600727096783275652310295766038020898302522455003615679217752346439959223083797169576630403572575290079070174846628411556641530495709290232130500184442506643212933875413306307503520326495057641403540300333531450073978613110690337500755532154063630097573380191679981090219852176272611170328220407667869356261889090294636545650465284190355128196985576932181172878820555578155613226233339670996342319868100377977705530505201420143798194538214237019026451720204970390235297837179442023593096696458945028241407770247301935927365092423597713170383330061294966744626875797496120772836822904205755186844026212708842585786161779143109262578343580541103781150172832402880283623217778305977485405024025452490307649404665831462291237506196003006317659922356625910786728009980887925633665621700074670641751206545487144941798398395033153312854742623694244959942037021246887556052616589860246043638675435244058443800318145385856350347110833165087738150388628974897278040629332326980571608961647723902913570605485540554738114498833082357753706611860594399332995454008946056970171836154755939970278801991879144688792880948166866310275596585725645288637663843903029306556958850721245031395166094613961825571082156708051490384454978945178308837967670515591804273547593968529716603632388109744326481714450516871308813194658566092599521470083230277754178366411261752275747720033611835812732269674531436140801485493608560740790512801757888857405094052375351542094374517217772329680783850306436714660014031730397367781717921507519590664013581602929806445646267356448248205130515232515082505820311731090695925478045899414225210915359843466806299899106091400279146584194965047527945752234096664504310614523940514394662246719659563971906120565941541178830940183165548309668333991787372142472488426338063470930478757347873378253338206087702902973392064084766358791281594061191619380374554181588137087297792959558673361536245826592165315548920846912359058167301056151603740074195879113524288357510205722576258528529209701778378547938197475995389521813255313561213923752031627064875834063212865366646207161844274691624253562228744287420360812886627128731075612337282393613814164907145487698035552013115043075713899363599974551216230136997031273590408266832199245195872658107986423095106100527861365682315111527738763695208667563293311357549451776238101984721041456713077877688636949200925798208716755957625590994361210218153104280216683158989035048289057042486415463348840168292350373498206785482808210585299110396802979674765701676206941374784432891362717179231599975552028739234645591181635331729079415819377069328749552117858180353616422600227925062756923658169142661628645380666873144364715104089969341374960862453375692278892321544122069498737416134570542997088732693895041378613354616643124066911215147062984128050458504465461784059392014139050003923975318339612886972363797633790596131906334307604560783522786741366266702944548703596795897744259717017202006804096413310405164027102411729125668105401240367000882994171660515541454195686513720438437052043730475680986350344860094097534655736078958977380438552028976641462026482477157556456327906547516060325807880970443907528741133099623543801325050565330328714245064544763923809484492809272994265187239330673535188187225950491282366006060798002475336713022195334409488620167460117478391483793322445529960244107412356170391888139369487248823245775353083504303359175863240176611726109181470175180306079917384085903639741383633500359869806127227203404939452857799292789599191489627168543167875432486327313717298391537047799994436194592883617556020753821278595127676753523442929083019836680500380364586663770817438722825486939203771507427655716096484021660706771378429254522057654204162562210970774090194248959220920051943605707747923881004583934219710615688869852835211277711188353427836875126507195423241903777245459526272451163333786099601185859455004159768533083516673685509841753311812919431247774367988681761039594872797576463158245586594263569628734471286098659747273583525128013742247068383837388602743376954879526065253686709525823124410057292030011264962251192610770025227802324887799434432536859648994516938777099807148480682072013120439595444223718353707936864839643265071891931971761140879464601720455263204353032148706524894524130140435325970091893553975216487576386313419906235283354368822826968064031301753369608564317287081448388112613069354823957948123329437867905635357571141319123917277581496569444726540588238372730758966691647934288978164220196666485597109935595223400830985606810325661875854036718093061478182436430816861272130707926419913995202369721587993843613230456415787589756200895894032127542607173054520632751161208189471666791616803392478798129488649663885835920764696847254222627749592215897091893135751578557925681512547122653944529128747180806363432224622395062694203095483537561581985245711439221855601389002953031998408335851088266042561066279598183933258806692867541051252164643639653063449575306035594167531219673194526665605610821592749766969028012818831304864798820728929767435065657011222009699989882701963975334376429939294373249380480993917897300207559398239506510145352088151032164243889250517804535612623828179708641066048233318775339216365314084782022858359008825808962264905198235497145074380642642312205633113091282153879372987571153589464312224126252883878976527811976557150021707842458159729137684273943390164980877662261659035971159146871706631040833950857037831711060567165805927131043156659818541351977475247401800379414887122510664373869681418789871416009381660075084692652112042603286981590772164111294493545182379035498124343521737971180768127271693197158466499825575872360901389417533180184438030906133057325073693405143421338571954291417157017334326922801703004104107867241942699026791582273133567191391897781585380229709553678330994838544357218730139639350568602770195612925814743818142585512116448115246539490950097193003002981767762724341347770055890657120532269997962156893087044234514649657831296196206619292176197286412394711847466476987208307326040023625570437437112666204480935605090571647970834403773097207062311081710610302142782143015585358953560926445554712652904712587621769257467825159422444803002988916109785184963361040840857805782805658850910691676298874600358134051318114641354867555975938910152621612001058798301188379377355841680281191583608666263661441288183694665859112310535517850678792248272556316258417884760539231659616215734810186314214833089696037907960664375606289222302716692076199198722792605762568174147771942434745682634751837462856285351664895323092094043459428107039013934665319129502983751397706138819855367528068770334713997024789623665972198375644540446380955558298493135680258060528383262039213208632892947781671383222397848933685733450061937782697417798729117492243222659812332192274432653765033173377053306332561914737635050639252617367106997722678285649715329983134244333868824061668011050921191359939861819766087416791612666813954996595581521992370782930702680559863793075901835918245999239558059299688200881578844826269982040605223942260019894400791068692412570727938358782335309222615409313543386654942939409986589735769730385296850879015678890143259031483966725753081469347030363014728142454901944254619352236894984084165640125809067413513488351524799501031486114133783615806859225091774937009829990058890375403522461614415678133778693692834047187518391844248922537015950556367077924459728657458024844708284095184477800584303329570196866554552993200592061175322357962408471468615355660691545945993866067196220231987151674418385077223063336206929153256809187384511210273604839347814668146661120758358500688091553524470939258166472691335816103379167847603310677288650135908489088318723943102682705779669445583946512356187440726505410120937806231173414873658715914637935829565902212706520815772028204289751203333951633484084441275541673059008707801965469663909346886541127025762372496549929871033894444263333672739284755210674352635576873312140627423698584893757524542725426238459462913998586577195184726294446085985063468808175249640293353216749599733207607771863661919351121095917549349215875072139447554576549491434431310637887349876129147666491277318407227814560590519470658288029654008905689189883315086073036965634711955094568825328230649014659673810164879744267289441719718350989356258170245243366251629992928878516670783657930285642433956895836227155808230152718981040757863341919481704376410164712875187035407813901030362941380078290440564377059516789056802775895120806091037206923162095486702391626102670558407124578847477516003450812213980614801352330091956085549203314750119758340120498425766478147934432656507700783961791852088515796123127841775060161526054685688678752837752635001881589071100108642849979122305165104716158620163016702568637589531455712256625068390639710187003016236388122287386884409639864407543107353293710455131785020390327182407107417334124376164022665298247994371518374430217008666878235986694635503571876470683163473624191293824112338469254302125395548785076461016961275151664681094883974608567070504828934645078705720233528667769516105940935858989148909243382576396112610476786600440354713835984860045917828616038395957942386773978378513151937641704472223384379426009178929137281896079911659405326690488753234516623333610202758436024328504588852028704172906405674306453886581705490823476553707542992801735992895848304819365585759108144191560313285136400293709267066554308948604365897881238778942006468452878322841624965446202652253575604459115181194937493076773772917579533397843644344187058046018326788017124760521677371410716556823589530162019223003510260900823026250132412618481780766373313326101772602019532603929183183526850762357090501825329381938332090643481148574143003972421563723413817746636735996356795271690557363514834098949870524184177831120497232505040444070316000509391055953280983059680025094420551708259766239255987658706279455168755109309793583089143616769050608847294882763834341711778848838659133557819678491576575862198674398010237237010620600811853315715086040947011148076032574901708801975289776737720750195993107052857222439793627438839653157025890692163449989259134756053415311127470960574607011643591934519711102212380538112489396155186755548987579302521488244883870889235404908729650318895790872279882910145249365159225659106858569794841922609843412203576767375726997616238121394615319071668709459554141518691045455901900416319174736913009743598828599820674162045795151374115679272501045530638077837979448171998905878413578664296064235901765220073964181937358446189339225208449368013803509022848016267951740698480963214307173264886058287865710760974637969836516457840724942805353284800261476479580485221622505607709222601513689911015868258639482642243717903436490544874047411285228201956244889648484089287038062198166862460883471264565253640525557619751416247346003689082561335527102859268038638116825893202451026089056162865889130043329454915525841994947835938650367693522665755167387586834590658721458183304113570203830211405719170131679469452302481037512738159459858861789368871592204093830443220620491576126103697239936988467718512581489922351411495349223362652264832057309694940363317676664637858688493007507448605704921910167082835771578683205368659915554875724273042803346782111983309374225767665645670920342625070466850458116382523329757284674990007849506024830008424537600342192247683648729780857766663044125743767453112681630698913403899748769324206675291904414783501076240008240618220489218869607102734021790520005999075004917894834559065296419483794381714288541659718575613009426664269082791401632763361000732792672719825372327093802380004892212743269096232034601282685232276954970007862148141679021071111425788666531361917047426628650386347145127525410495294061509057187581875321488163452832556064097253611287652859730580147959987186773103025260712255308079838093496912053938032458211619092395381664135652245728375424570889553486772450073230808494361661202747779173877744455914140630891914835828135979075657791010816591048845287459278441308774716029700969480006066630904695914636832581384108887914296684434380932775799083543355466972714196468271333778102469754023816527080803221410413866163263084100961244036427486517941389804236027763293213457262373710060311249355734551389876426106445188292185733250018431559156384660336461490428793975262095806339528278383549651815987780274844874303554529730105098896850847266601477300563279940508108365976534185301234613904461571534949777158854233970516280961432672477528896122079581474601977975297393040475303145458105504739388971725783685064508270626409890926441494960197485686904877006892399345683757563710027753170727457353374341264282958143333436796926932958311378093891612059491656122388108719600850640677816921374952360664881461707947536073174285279583014964901848130194382422540804534633330643264535946883524965810833344142346420962445301564045561405676247834817306223040812701036919145208326095127676173867937282477390144331753320177750020356035317766662457047793891144956021474651785439182349506726074772011588904510915364314742376831774880396183846596043011201115526430071607356266542598846022507907095314166725959485306560272124948699729972824269387242430509168698653079545259030819696309756632712857791311694101037784834666581755439814656837754327983162107842293098867059003893875633183427216392043805250030737399656754478191575914877113911050184365737311549111338320570064112580650021158733999562749992513508748969062398718493589398262564602078887895606197483751784807199755455178027439903611272972839763512640875950789241250187936928335877139861169157869156494449628677932938540925641099222259166255243643364783924682711736218185841675192121149768825299698074507535895303856416773565901268508306109270032574811996063692179349369120185317507982150988809652382882858912344269663880229491710703365005971982912159461165772949625599593409617357246178010172940219065277048696060397188467120992485623693396098927324172546435683842766326068393874262465485206106877176856933486646579227420551832738974534690262469078235872862891075338358317946711208414306144443130442607980495111300516026316986084686088304902694680030529554697499287910459015117489439615459290671341267042021619665298939240795414918219357249818232055678035094669995449243306142332429769256108281930982046497685317681120666940164953804110367176328188502239073054260215516894534979185210181023973412886821331909240346095400121642919167414235678209955630605702297893785463856763133104158569607149750291518679547993234060954818741752045941213537366257923443494408217199526011204534967739817957162720087217028144705277015318297511364459454262938453715745642010440034971732748858580374144381347997657078219557614799273610738011501166968338270011165464470355494730864979176105028832971818493285290831479149059102926292781301018887308781140575107575558695638385338782077540085521640076792697052866106379177531170421082341815726290908928466133567967476845207985447054215914995843969619907457159975901226511092769892339842792183126519170756810387757345675299353376240818622336769079067101068565651249708745601722633106518385676027689869217855406113468121787089229545814844800180529091663103804072663408541906159866916262716212168572423940883448367321582813248707485794632910457030503736467363680591162436434107888950975067394258639449842399729980120560162762064943846083968822029625407000820764752553162442995616492687877778353668510334230665626214469677809958795937145649337701631691193813337159793481741271993755088434452676345677413549014825424546697240402013474253863809397604451534292689173687650398499005601386382594507207250702675660941121982342152814215271947281352355282105661916588695756336384416657182577308031470777127669886811875081302193153293367105976221050450560691208145552091950040990774467603422954131273787476491701894079116127888572094604273435975426212049618428166727837129413965091073050267916355886517381988736807327684181580745186001870944688910532837881374229140784051264702725814006101449037552872337295068552274543049848968598691118103874505954306153339211653378242631453095253315092809362785165995827151187734114275941129314062882598027702516844826073565952277411394470126135997984096742879531444550245062661212047074896542603037317729362752143647135253525564838694641868293564805884523910863567106075109196615414580386079711446472538861180836001171884958757573188689197222311204364146648952878734362143440501648562938455272297186980466320172221269752011822787591895054310964824070709998110325367081568947474690179194024128706297858626979295432681596984986145250647506022698755757958588051343012694241317899329904976528647289518618212434700621079379597892415486401558128210108152949743043901636413330717958453890778471980440740648916952257740388026720786884238036138778051137529777701660181536404965046724873667260568832769148697340354628322688324358438299346473591146184969180866345961154052949292685333713275924929364178232524213662853617169865486096835861428896814881968315170982602230727416379244385838881552012747350670231974413306147723605314277667762988673728689693956420919360582183444456436667454697769140075796937871648910751427165255073978795003202608271490162499720489948775113092618723218710448190157026752177368830269207336687145902218531141140953011777584393165452967104455953666066029608479069706269126746353198635498932591622646851046005158786644624881186046072988344001796670611104301350794683332352237164257488369648503444587628452353681389156506559250785950589390823558940490088062990394064551153624105776002423484897064756092246577248450882121081317555946684729712328649325297230101249674988790611965223693838600889319061526281689398541060406004706778235916162129948669897428522034757944715207325438523575403225103131096639092665731143026336046964309952417646001605705909826076013741007783530229118590093489577957212310265148268223405491182870898650281709206384053541047283776958366700758605839772952041341717949450031038705856868073424567490362900187870631952914318865980916716957982641293328305267155455489984315782781965671419628441560968507416523730463308827486550590113524863144168586833495758130895919174497654921134623163806107646129598093463200722657964638615446133897412341138876908621754690061403165458155344834157583180582511130203406666266043185578486004670835709279148251752100313317107725896976616644822754058190540248486035878022994243628540936286852092070234654031663536154454738473408238589881770566966900761875263462632154066163581362755848436925044833062248841119385088049043226626341245831358902974618852235352915219009078254956766399690391668571739142846040117699004897566231856251070473103845527594855692522865855287842784422977715924138722443173100122978279169649169758247448881033939522907271499371233425055439294525983319999514624389331788225945504769280267317221157857096078485850569751086907486284780558928259037834024380031720818374056273502571156055509964565632250272814988519968057525345367383373805479032994272960102150972593753773394754710371568781247792146056309601333294266130752255609410168995811456652026188338427831433444660615656755207057968514644532250457549609729855913986069769135186315252645343977529927137739485736266797025992098619030318274850459315635880418069525716315104332825696985815263371419484045568718991024406866081792843675058474421993342856498537294062963825342691254180073304384812379336024949882012105337243083724076704082581734903881266145242112302427539864321981351944784622405796944085909991916698499854478851982554319285326884076738810328118953045446689857918015799705830653828273499308658943418259750858155341327393797843170816171525431566091948542186636590771493097674064586332693327770109137446735288382672712314165137246997823235867824778890475297318995750963112256534766418489051127207851557963931984798507368127164677280483702103989837461975581442006912052300374736177962143315533625721338760069780040582999162050111039383187597024206246921683173276082375510919899600953759764919751566997411690448109442804798926722025269074356908998864012581490352762925857109155709734690870636889050899932664698485842953008052320281617437225154421026289653284603324366297891065405965550459248144674231893008623947815728379789965282547995698127046852634602721008956034193653246627495405493098641297798795885744489908109778329590258246338634742282668852486381145314971548681969742472333835031081366371111575731138435940964810192263267673233207985891457843209402034044339601240805061111210060344186452696415255482327076610155287390030168957625789730980965436194478071409094390438826162516477628581939390430069765650793981211962115447404848318337185613923538990835501814397991137852265215703651954712855517917711843959389086887009114191470249115697136685430712009808442620177156848167107327434941427924640920655649449431724150595228743873595240178405826455525603472839193841762795141421310654756854014463165227296663590199332351377069321672835839914935749820964147017438662633257268667133363343950866237077734940600988154295402833829557296522794693236613685178636339859760580790653104562340876366479061021178958898023151274181983018549824221838493167965154574746473760020745973679672342028753371144791329330168645017578864724468968779673853754679930564674462175952659771633604523089577853606596656607077842815211436709171555518322323033858398520391099993936964696202991089394902569037056743926529105082143601553026189959884952999926639967536819045945314924445881927023194417427384679294247339575889630017361989235355925081439730381151785389951963113152293712180165661179773072988129134161055605375386411838027258159633058254786714912728544827314794185277849442938457353777552621320988713654680217404334251394878905048852381437923226204206216011922639500137534938756903568506210160134515611325564023827399603403885703422363592096719414177673261272219240563962637708245167070010177440975290599291049533403245114827548454362673070426101551496666665800354651883133176543066136383413611648043623241360208785454611478314687955470729321216729678337484156862494911718586017069169574511503970332671791325632461079893229682012843421295449483967721285124513607357973013396807967157806679199524080769159218155065124681449755059121262177471211375721870014446984280754737292634915538746059584346399786061931624983181693812963710772026583739045895319616964021573435884317882491182759476785914033015797853997057847832856612799786651163138744180542338689522504650174463685401952977986637158591256092646382542787646703901711431890326821713961113473328664561772322791903075573554867362750822440717159375750311832564183081395087481389960765246024620802225435073643561473206260436624856658912177688748256485950289241751438475297030510218229044476308234781619532609596415738432408442315736834735903632113480574535774334062583216020359193527418116747097680094929314316943025105847038908875406346642952079661591103861433021883186409158183406264159271824885241789787806953494722483329987328176955281386665749078001353522628964164911834492479062929371212999873361076615470869973319530725870782620752976801454729378469257628591098571688377776894559315408895307080400443836531921367712386314557845728097725777664573370319829649035019256379674376316443399481812299252412315627758792716906607577402960905610876804378793386992286546476376211044058018747679448405114632128688374341612086491315209195901196644263898257714216290632571457349157421390619018845534257900283406642309003133604931339254728534329999589675462464217761804371613846181342216430099718914709390356045192128776078278419791509395539411006438141405053358011134437686218390075553085961273300873555649395785529125100218129621504843816961019558156393009671059203391311300207701904415756457027081229454889694014820126762478898971298032365260938626502194325155721405898400232156716154988589982847924739405765550881250542301964999852617838420340013142801338645974785070618748816415964833643867724388148170079851943546103451047097115171775804097463555113184111308470651675440379538658738130696827986864549052477953323962061724719091691778466890966369780520098585195037466194646071162851278712721449930653496279210522506614159327089800913126052974951440153399635413426757631630722265928027901681183405157491458589849531582071521172098133835048555086695261953837244304367923441545306556658010802819784873624112733191117874496268930771614729035447978644933822030179474057863313321560410753278324150069419580920140645429092510900087089187588023515165523445124775269375501624516801053883104835174208164362341646397475660254517484773776456211398871252325903673459635106765205402602773328557038686280003952688475829896991756027590579309928539187699366342632902552200687205809297602022417551777680837407237233432547675391484550509333067458032854218602648677528656803121292573097208192301239960957799540209375013705525976575057774380866006402717117158189662352954720865500919066467599926159783875611757921013116602942794055432865741307538563462863673931363427891173644458132661158674947889113130595983136055101847789574968051240374192482688081177336582682101238115939309320375768849313674774112682758369769826465805598447369513826073068781981237115250536580091750794813817567038206190304466309310720192149315303156566100228372355073918912763829014384146093233987164595648840533973744781922416463396823501614289827714733320335021171774103561160705331804724991580159670567563633238355954532831824436044828549656617961853303273389584703328745690332500278842237337001930814701989021696592430840726620999985681565925578443763630937054183788845832073725376520857570436605361987211992412670365662179663053026926644020050592843834131927871249000048788763328648949618371635572943514180755410899522755237549740614572296722027313342249667397637585669854564896539709098204904373082854876768512979841159963049911736825392679371722473546113593166812308959670423919322343861515458977337782957948440004681373556922067525702526983390108367144250750318582749009018415769189495795810485289707659842408307594535328168099782189371542255001168678087686784525218063688128141238285408347993065290548793460310710604265573207123749569414534696917193435002407179674316170899146670452837995715554771417263640494587283129204348720195445583981546690735159689098846597646742998885371841960142943852981531504123860149451954798324879886344479386059477139598072577409182107701930358235711053708955183353696013252052789120674723014570296968394765547892122931878257857655828868374178621132376667239235219550572916395144156370034524537445697423083124681683610910157696094701760081216343927418374577681547422578629402983384028019916065390099678755381626523917883955952854805117682099506577828710008819171224387967554331718691785452022249900577391694960763412866873461412733902578744173906173472855082940209958385462019456493223992345981957658672311082682436449903799215577655408811539344912461058096038483034090144573882256915322941399662232261466881443864233462942520352575810080221201199244420653858791016525933769605287486952806909847669759831090890305266817865361237813579527877828111024110970774323325733060020152433815537996303849984267147632933400011662240566624742357434672684304554065644711793474705952796341668283849557104752639869880212725648175648891553387472772140357638447729659457779152626193036566025957690555961604478161204804885713462131533521581859695776509888183604650324743731957184192881868348291809893878028363631018355650601851618078928225879560313070246471399340014531072798854411758841610056701991030466256063317825673302095118009391391120475727253385589850117098828869734287436279674443916004711738784439377573209690532188787227356564877657218359246132046199416201317737784499692755378328132694633809042889162893251692761540648998709594702181742700501056740431480492175539018788152088874437593111189143571761826970516607086097654875356051132584220805411223440246685289657963719843744410891472094759149587348154302601439472730755878920815384163833631592458271105975629968191392193760077086254943237100941646802046361700136536498969198433144119653583162307355124564213155968551856244485786848538716196273069278439682200314302143160825899377748583234387933729156917761281575180782074864485585635565116237144554045276234624759211743814287858156953017456547022453083848180458451146182898028241568175314480501388246228436319445721590503825789413572399526904640696873317678352433331457271727976823427113398279169426180071075430329192802067532950759600649822644177732655618983914617309034413535794298401975617371271642198043052071853575820626628526031055774644967238203086247016204789335681536551437514511009463212990189356785518777905913594743888565414893847158278683676870606355819384380970163970483215522246220350636197731474926708188974433366867622993011998219120890979604685324332045296469340795380248661670615148547446531327066323069325206651785799197891480514808745111861530066638158427820765791340272612977741249506917279776626434103800838961750537079397552116652145469124131010469681700907377451496306805978791500567633955190324941796829858321599486605900440617909789876394980257094152285143620180667312450734723972883448764255903374925791023616451988966233824604532962625587701406470926746446299061673901436157404009791654231886275547389680364296604308702699386179116504229099396244027974951255422525785006307586565583904992327082957152030098662510526599361200753907201939777579505061902411961642268276790336577340414475854186061460536439462962070552709412814607145811608950743123869769901063130980782310817029946911697239265737201466942256978112631327063860903617714357513123806062003139418177060481831086955827713785479471462182830944044514863707471036958883114771240749799661436515198006312467331667202231828767060573763520508832626470222950767361665265381611121981721952816572752692414205456397813187985708993844160758950590555416942425204933489989270639066239823019510951141881644344065658901302018058257741111029626942416113210674771282291054071073740507400244273096183012636149859335442668780539112206592113787107609164632772512015659576106971292755383309281346245506316157941472067003896701763400651490279139415703725912205244673856875635263879235093627929688313843832214884291396619331217993304884795914011127384134602515221158362425146644237163788707370348270815257525026822501808579652027807581946961533751807983804187109132530897264299060014909043978795223374102800714638230441236651898799831093091826020275299549700219220258240430920877109010051756603658456329660369165907696644588744644329880086454715422612024066099788219905778780692962797165198513372709672082101341605601905122672536219782233359784745623805938389225975763889526753504449732640452235316652245820862930277115179765754097261521005672029610999185631319443006931751635166918127901035747805220517531524246346809187242619342245488148585956677662337713633949697496041873117016430302987154106460362099522710055672601633791897671849281004946755501102886876254400135826428745025279134827648547632821483254771831282715167678157202716607967073395094302923226105644015207021468545063527055653685882995375789797452325025850118222391759498709717274824707707525349506756662760176632256257473378306206898322977392471679508927759319456861305151751397696812448220749945739152737073334478436826554786357019687798586462756708670466418293092665881334412185853626397655012371152303819223151726358475965928638029053379867759355872013904021527570219116750855715687082990114909055803959427057417124831440247807643952014139509184847135881423082220881249947261895101312690244871217178307564795855350923965743091829635061503036772734119634190734187468832188694387280197926731912745550535300927511137238661609103007679535726879859960674848532823909464698433360716518352472443355483155887721379767467548612824763579834440817931257942059448484794569744028942941503805470736888760056713546774687446782874713375107364871038556331047801145370429324137832707914602427080496626767214878054708088223908085742173694701131308332891363413085768422691364493156972147027341571422266278076310539010225997158843002024797484466262958170310256345542453726659389596088106497294895808890784958115266380542557494789214692603178279212374534943919492614197936036052772889177432014035541495490189394294501028071390841675165701093420072884737859673598822869322128151025937122746984725650658576247947747198711460871528188559916909883011587326409669461664660577529913311745053528921214464907081478086525087927247997787375229402062711814959797391506076808925959851313178845794226530140014809324524136373564914308951290435267588704183107993441318675160247277278184973601139226049903158725037286631299334252901025606766712948190340750535797716984747781591075647517287861231896031054650292836032752517228114689446959251820761648530787417005883415594148565853035037392088876724135145489964105634453896798276122174938746520653358364321499976922100688000260242487834653067773780633443131515262866522101961025068102413778542371389412458692757364350293078984269456680741267454192980628064398198971715327128381133424267207434603111438105027627876330565944460078464266176523430719198966392264340915319445007463651869611430984351054033801680944204381988788461545617008557327480376205791059309227161130341952097467519612043345252913150765637419556497919164130884334865730595412884622872279563646522317715667568546674049233768670932804141764995575226081894336130648362773598301352264037874244586632936920740800518252627559679562966835773278022098803607571660266456741052752690315628749600693479160202122035459152326329418975750644921275920709464339786741271073111821412688373066076862490348962321607595060052848627281100575709215299689496816933035841504495793193297528052148472177303282104509051240340340869891990803134593257269672436755238985100200236275549769527916054794847989567623106549412524276676544883607246706494224758613957062254667989220811602012700936124720788298325323761708686367491934601501228247958301038907024014311227492188046872675275677950192260191447717824142472101470039567396663062248132293877193609253610560382258926891070828137861979734431318122130630957815193280597575100870958133672225476735762352943637308003612131330390950048475723937890095701969536299013434861113490874231942049870697503495558343206106320050568878848234411072898950292648995396017743655444327421620448611632550962028352923054181160001022389524511039155874745917040433879636956287716825041467312505447835512060088400058562708963196826471043863510849336644763570252595135798392781351778052876644773444887716204727437741836822509286375015912278947085748681811711227233007976481069426246547513533383404499673677569329886788327600032001894349679857419652139486018407364869567055256702441387536976573647677712611311175706544156798732509529533147191754721783425926332803825493453198232160996091589901101172315104535435504547019768263974925679418144332211996578949409122995587439020845611231651587335401170712635125168939482397648058039228313969018917151848776673472423947074322014820702971720627881927697578197395883855948408048429891329032817042119457123091707329881499724230171715811750461584696522602376143122088978441235946039894717766186464791271185425440002145457074639720482448682534478496341790040259040732230055033259145045785404653997132191939379633572959608406241137862451478693291450875956178187845073067773353440607249245842176242689222656802942575043828078337364568131330196272926677631839455278439924554225063749987830304203422239192321503131095995315974623878322979719577330740872633363775264980523239279278451180455703186446917925717450148324495459678859340627205469842790589119408733397631293234844520762764929747724758257830980525414032691405661230839238781134093424617003961662787082962657321292527692302317362191650526245560363495881767978352430547751801024425937807669486468769776684834959212324409320878258692641622881953396394867537343663074967553442837320267411491250066794807593848535837133703210603616932437479593030937791799786711805535046228713781335382707395709767885778778215726718561933347728885671049836360774928729709391424099857350093976359990081021752061289702056190471195732176048753072861661115083434898829564409738318141982792887152779707243702680379475005208203971408560211813203766588679653796421276190458761707656554962440157323048644989059276520138990044660853482824919946849524161703712732884860184488661209730027621508464932972629719802265567929861272630545460505529308910165592012318604225933478594760157066419019227961127741284919728581622659827344672431557679508913737319958465161576106236028513168586914203271940354060698317899920387830446248571400221104732681733551780104130553953192120292834235861548527556730529257593091575077480461073694257089449928747462413108838253073677104637347578519150958293238413322605761256377806843537907462337427437592283938923511002904044041917342490464324582416637502843198621200492751439412303197916971563521726778722142799290586465452564278874053154539898185701618439943907905465185459207285389577069282329225034119428579119547121648208411984735614864577569889481080863534339158310723384787771859927460873416296665264569719111502549793559844467812877884583703922348669439608554404004959327622405448186267691292891635955700523170103167460618486036955391452860956992922514047494671492501611246141180598285172116991732954689588246798982700668804875258948970702449316329926486415598861608575208986836455145968718642581881901873667380836178517984262249551100522969257018906168319184890555060097182742076991179529595686810567070731685514738487081952724720892127968741488752368966493991919364506878576723281456400593043003395253955465972023046041662718020861745401569002355382376259921905109687489346877736443825747822021696885947214613479094955922172328319217545450612676140615140930360312777068413243418088225244809861825386850727317619560896733517379624697104047100919440174698703701329716463921968798839466831999535824277593088377513865984639395049623723992260944512802899182379040152660752364869178229600542269669449168181567382417864882465086084324150400353144654685878296601122929556656398038884801151747904335731387884822648807743796849845041021424351158877159728997871238531293773849044281475309616661563313776773795933332003862965372145438736424623744018857473063372917869060270886253935229787326199385319827842632510774002535284232209795633863070943935425943261342251272521555838738341246219435749349288353126942475233164737696857169252771291780088513428502288690009375553550171756029081680514555642932068367400041352203335839738438752600861903109260987286050765869792066975444599039998638344870928063010649420898992444817722737508471328026399106420670934166454822735460936807950221511550947611484158947069282361966867931500166993199933684666980948741611967657204949693474111128408938619309037250155268744054271490127430794655554296752964506215575679447484803078165161811135970379158431620597383522129905651352601477329358059524793945726469878879765278664859792836342218508649619712014475877640560357453351950550094143721591567765907887194635763849253568713317946227803880583391871249395602715419305414210941674622429532916216045162304597989192490803824369546197026640899371910516425842445705345004786936338833315100605940807006135307122808468863013126599450728531315061958093054299426360302331091361937250593337597220398159663363912922808468490762251616198805008078155534711515999109039709635503449774231167796502106636708894728469323143313546329730680925295666198991222140463995978899982203308756327883511966722512463237613936366278676881464000554254654598607005239046845953957947250929322794532798277237667529057664203300525381611230271166382960222929267520713045693922628881761775995510691852738441846704719243505349612013582160919871163669387678887005020698409007530504017945271320863181419423031064363087920453448495074884189656773891655847832100692600967824169197216113068771756892057552212598918840255831039918619410688107383345295309055719457664487545789077165782712364768979754813330296418655156437740553219707650892158662684724811208661615322348582183260962011061320356174505136194775001227710157825173886482431971880678069110735220831409530106493197203024079301538220878073475050842061029063660857934860934769646288001285533711853718909407958833622816283364652600508947130478333802529706313699428934020554549178347360550462673086461414635648064064460519810398861507864726621779428333682083486743543974262001096540787318920053273202446238248342260779023693529865419111305783222297495764385740793999209524787915249886934547309044956056904654631056270760485022424974720775588477485591965952035057388474025036936816585679372825596053363763636815045048126944433499916025983540556256312637139563387140689049140924125628704345862763111834257643005823895042575331229708120745729721085422870804321326538590806518394080181751679027718242195802532093982091095227657733309324440876539968032304537888605789265793752570637542354981484634157768684052772566549366412526098537523085419136189918084013218644028760563109163232254796176736613342220256658020515105114492527222195113726256369001481970894403988070286967588837278926029851766525195659576228891102764965255001561151085580793442822850862349623201341445607909656597499486902494656906460246812609535925996225493541149056107547867745436554412776412827096673218459244912373695141875502098414093257766062210257638779606893687155197909801122745110365964890720354296789314912744157107294291537694237583215712303329032782852834385107440204132932968057038215356496876445607935118011579705278342795726750203837439897784212137910731466887327970968144481098183028441854165479582719636280361968221738316987591602321773008487013506353112767954565317490547578583469485504418757475778111482801185897772830010944473319322453725205192473799215193526266475471817205710135796276286384547743523266620027312391292163024608461820770869663715316448669647144365671902484526260286181497877764340168524978293106990710220176906735962172424118559399157419236240142143368273004626535106743637473303468825704789119725371014854020467067502446109695022169492877021253757399086235351936144134117211865681788748487323052605739219164623904237783253763707008853227400774923457234946147735476117161684643223516633017461547118670276372198261592006717940033973141359271377123987610446235002947636795700450164149599189466915012908902639544895744435801324603446377764144585071498351197374086583535406057431574180042045227593470244375822848421048036532486344156379352664338701084367947386769599676376019755968617890244085261365777389060004610375968229028785158118357545809083400583886454845910098374071424105446021530039708715481765499139913775593524660129686850514194012018058758410064083821744915438327090443078259911620366538619425622086842299322071549157515164535679975351447546656765726422917772467722999232657718274738838138016521944599557856821379918955451529055523144257108607377103928807726282136362139551884338284230932952889805943056166526783732556202108700761445533462124509324265597734673106029869158489265120568679395287815643351939087812142290998225424875686936336874932987206351162241140349524646334333423616838208855219932710541976879825742407774029282720322519754870099587622258395010546542656557912049493666578835822878490682917099426231198794385092545015314248553441135969734213468002900651633807869229425310733252903409566596515358163565352844707619276744794320917645749530579435871659646560683721257713356819112842961353400310502843286197421428656831046348473128211961202395064443551891104674374000974556900133519712960907754450654867928981835582517877568636772538539841136955171920156802286097062512152110894419217928183154516193238642990727503809019541532310317822801850956009738939614269527129617084390402092020813293477487698301610887317246656726628702227945008472682153236632031825708192168492564748241495215359596422083109445632187275494678609353808089331975360821461421199953563282442845692489839918661163913123438726773826639164960202155573075732201078250491936690537132672210513212994255369778529479367413870248317028474737105694806323243076908281327306969356365411690445112079349640667642298219717920359640176691855620989353583020179869822405945669857460292001590903604724710253764995514317743767568825578754911252380119126538243909457048551259014326832849051215295844471201506034408475923258417170670022687604930652502936754241067344488440258484783121968975343023300423959947347874346301819958776729312415456112763738476727123744533520682659978682317946058803017264738887015234687394759445066337804580784933469962039301172049089738722880340181736166882829168049833537378026200749683897409862823136878816290907673561778765298352619123798378322510896236288719029951607058823924530648459407146560279175561996198375722529854783887229116730956660226452874530692271964948609721454532410394303429939102549834483863779146438909763522898291356002182762406064629163840329718124408807556424067099796829163676924744163689314226228458154070995143988902840908924446200200092639577039541093068490173467461982169965509631930360555723110650977561446513284989818316953051844770485448041495726209784992017042373166394333327716856483964195916286133148336940834165633765238170948075528861117248037285107114663352621955926172155477505267474681154293091743998343560620628774563656715399701286104617405496801065856385719964944630939684192051092522815931029510300010603913934208147646023793491542594987458356732699177242080198105055899969664835526918232158886867136680211910844556415744371702815120870767038178359553343132979117343757603230115316725021752772453634838771731891992660445458819570611490012475578532698865079182131863334952338306481982078475645679075897458781212421839988654281585448320783873960378019679010509982388867675600812290925877577364344198220717847904108616381745377452062837415231092177074114325115675566712674465256771238283093299185121375523675652862176039949438609246864802034664113874719843034380355966452912823667059549921748787425426227226286191017270275982740396207685476959853955256720607785115959757674905655762568669176397176951191837787601696969181174634932693312983915033523925133850328456944088025257831484259105339449907115184113178115578160258558483686024155428280680883194435256485543386167082403193702518220642082096012237795489680320249956008227595778044137375314498773775119216897904289751176519067596202721395457787226954433984587696251887602026578502324332952890595488109198376327233757555224804114949009880271873899895808713832074492017769924712548430998964772255665525902153538596432135032035070849120247912698349334967709084561271623587410623810693054954778175574799737365476261028685870438422954647026874518266018627939489629267647487489296861762639915379403056353156986461705362628884009921128579367066750326192227189843189087124707164690201203130673512168267269914110267704560379743981830551682841277605296134118485337273625354497835935839874641240932834333096112670318338848897245626227237628971271626729971955736395920344577875471130294607072654736271700111691701943427853995600997423382864332157904566647308515956167726785343741844719843713074191915992968808961645347325855479234605730955685902936470021479059389055814937768663183684095663983702936377014175090984029911419357854514517898020370676604691431047621688798851960991443285185064173487788048710238120508297145812496916675811389403317310352466985970827267488931915712219363908622311784481891895105735755993761454464635540721589039279332890155087811806578394119503179864494214280845526894088684543577710091779789927367130254509700675124240946905026838417182246814215980626628144279685725282450822865992268121001350020513611600231736478350276545176923293169633758943768816945066832972116931368100742609704376530181908497337243190255344067226740977764001078544165045175103018914169793696787443067399794508704654945273103335231666782717250912017447324028545743127915258417552959144842029357948550188452340578217787933523777561617778112756858559497242814107646413205578970131580334774461395209900778412115097548798473849788545620157984949201710668453117950692670385521846318731410489659727775627155917770520415703794564142660380454418889823139420309215663121022765255428378892180538223300630119864176401507330046354588423864846433440411769879990149814710104787711261622781122071823155548186136190880787202888244980868435052710244835543789846967813367242025237181271995851528946390945888909626907906985909638088729053507829188681962960481376557845757458653162873858137294009770538795558116046695329452998596705227828214448141681078434069690164634935121101238449938888241528285666184517218175325165647521344978413088396201833411663476876519571872371876048040426751185439888142820296947360179978532265458167023100514854020105678203655128012429877354679415122087707651528875928935340213350115823129454551332188659996321351574485813538501700855961055291649359688362485262976851642629328938261507322026595552501539773307988611916235610252663890455469792462901619059546761769387990807196414520187159013347474903202287097320918258613819419129742477290557056517979137450635725465286729845630982327583577430942790263854280308331646017664964709723549742798037571966432101195494674383793210727305607451979033369564306768927075796417293548836694941747238690290352032863758961200923033382539953133890331320515291584582867575456907767868472939326873978025922480365889078194201402133611029899726839925791747217139888259526601421683567619019800146229965743940634376889333748084285285614555027094135492916477200861036133317669203535695931139981375386104070247073827712297923983682005931500692537415144435444435484941348099909404468302322219140858788607394392042421398813350032046957352590801951410185848253002707780611249486740421191731241278621220887651521206034042176336213723964490300878952848133735868224872734278873513317729498941045738065865703810509482550685502368072218344225950322462420154092875666353664098807278815765019860757391317608918398987547276268117278463405646730931056552465741109977749470079052654126904041791916671688027920909586092897384374959337693977459817941880770921751093171644887336925228100022411007418315785243819617898851179121880965842317627270368619889170715325112431009533221747088697485932027722520315981579382968913413017419041973619513413719956051406462652741570320959802714992809580405868468954806138249833867739342292970099361127000976292769184528097068924139415584343484997065962021152842529510052782271775038110541434460188508885450303124613904428732718973939487251555025182579363051370248958999000939961201747909628576589989302427307362786947516759709542067825036639862530458983788546273311428789387628663711976442932992939214809653734428898122900643047113422428196000993108083677777160082227444423945549482529706261779518982088006862101053855165330252483212208336952875338943611887847444238196287169084838154204275908603382977401930176095806959882695728753858134318625893297453662568984879112745207087735415852035265332005669911746290359223930281388557493513762294732737611762075493199768615951413501653561165129798448623092853533763557713321492350452459114486785571565797968462051802440515919054555031238470420259765693830927634123168160960891643828263553313046125309581741057528260549877292474664872580057857920084661822410881280781608021604218731782893388087602853271513473241387871686065243352155338543458509264791794579674299956062693597271010528300951266641058485208642712681525653575795156809031834696910537150246798464588292420912627362038532161082567128018632076396852654985173151167033755367394714612016335016583211580795438612997612083375359502383847114292298102931896707944375284608145399903127031670889225161870989982396516932809442423716961774818213810543515479152323157925775197293051403379480291828495630288980234659497522129243831995377521982530005882672829007787573699962570062971439870814663870099859180071041782122026731348890505063188805516374076330970060928486035758930883861312772483211013425998763008937304708205528315999755961682536808208757886070599619965065411226006098272057111294376116408975988515432415530496783556860179272788142186654971835284411610160067722794806366100522207934876936965451364050390418248174559286680269384241743727097898349851185524588746103684993469785774874798545323344599635432904125257047566390373982407384710626780342111944943518395824086186904801651015918081372392746622225000696281265129593568784052995449149578643280214786097181089455496760558979351203418344209634032996017238630582840492344984060820073331748532474467329160782598487313914202645909871730717400296434961462272545219948797318882607969261380784071011415687373950607543985496099677416054007229508084210891237817828808442787477473665402202846167612424359812604831048710264066596500497830809776574513179382377501986948636270091178487943724411168901920383897839387608204434852890608572780677766495478814866784757515880993524229476117372601500435481195290631725482236330109936079215633718717417614930072640189415924430463376091793057183924667284433093993528726516178072792579277440734896615007676425210021984984437438475333443196398596534634257964159499968189765842252885174265165826194768545413459095518001905640873433622899149811476955743783638856113888758195680972550758613843015138663581962130601721626568920884929380620735399305407925858310973906701886553396492040570437192492888755980728419340303640111837199928669444918311854268341983276999444856943529073959105106074913465375688659999886521519559709017015897146509853784196125018969075278517207765640815528266408417664963020839106393818593988646090499882530255156318138672041011261242485084621312006395497841668687967363579069151378958872989226134638396140112314548484114563019367027727380446949395908012076030194676329231502626713332487745950124620315159131964026241138335656094744141606846210443655968926679700828076484312473723666737946121985901098652358438470806531832617079026386829616594072796366991894563536672436556424894590901994028944434927732136458728164330063760856104222043650044623618962970519780679161407826909677504124547362965005143737149194629649696708520424672212391883804861026773962334261424505489742170128848798793931905574181695055562479843270876958694667246750167464317649212735445362169319611824797604485305615887834768301163714184598958731557387099948188637448674531513484656185149625839460314283860375122136555935628198792560222085075061393144691046530762624299801342379616949225135157347999791161224235288251248303338925952151360456489683832634143554170389282021923978362021823539533824188406460451611156284919865665232186525085797628645560923891090866951388112537321793435425864170491952261013194656966216728241860645324565378916810372593788117521711246723973851699067706522877378046327898146649861218640453512741447052764672293026509627062890941191094299024718575822447517662392141949084322402875508826916645639125054375812325678158195533201676743788751610685767692320679059954630864997184696814348023382268530898374628782140739299452373465209593676049348546801944984756770719383819383654371185925129373753977637385352179895936654185555887207233365261145758940552136968817788971161949232248637894443040812967277258934986326392846083420577141458208318034933225089341443304439867219034395052229726852152111963883915445980040936244517962187906268750749197497713553410738837974842914249234239798718995476318535082311841449857504602498346527232884285715136842125627189760391578767839172674619563151315832830540761492663502433087037827457793913638630140400172994529138204827753921405004499583516681761965681693529488667853562065641374748793154111684979260184764884833712817302194337043284546302340210203430940505826848201349656413674611038768729705745148921753890247744146545043814422324649676818481155868329371099930198539202971871506204893552812567360477314483346142119713939528841028589953666295611452941414952012325179508422799943280783692644262710533723268276129289099151512163518875032333635182996714746711085405388125837456868566621707753032420172575709616428551363489891748266133643051874506676743833475955119574571534069419400002565097203632735942152675552293523204190212300337073629221931370763171698233201686229013778851584187470696099977561294734925910294064502030467846914267392203841058372547350108542997837499458482523824537950723067651387143160966732635633889692830584773469687637374950466196772979697717992504829829618461733980463997182176798250444284800951023535723326459293405185765177986664850773269476737460019587394532812583233668692268422451924760723044734694812124880619712511283719833812655129584312970909008327350390371441306744199741499321019060883016251422473499518614468842588553609319706325634757598295965191945197096001361490239245468487814009600470147036248367484285892507014166466445108477801311694403540400666101182618157021406345363716334734668413494728389487918821995692535005322538515691477305052329494259982966582473881918233112022346636347183738938322468018650786243439032207766601260090130524669281898781932846827877098691218059833781341772900225024583116133717115164062901118182955693911685560446308716732661728186665356912821306838982068774613420252765434859821343061662253567791949119161468593011331422477336479008324232663145191545761596128591220542084795624773780096185817837567015320278866661162493089044833189179394308371399128548434820124662727976943412438761813069892615891998993342296281400390997265077318075822666743522453508059814300161046382873493411741165895491614929295012442156673139202790145983157017446214040893754965390304504969646420828701157542756245213352160684157654119127973668425692599528141222084693217976389347545382344281564754159566136701974522293385448995047215505958273111381070780850557397834497438726153233077969716418065291981357217020956117645745216163321307979720877110281379385992707401217883321931182921557294688585405675891970525337807915023548167442105853210221078584184491724318439983539088657672257422915219014552316240443763030745185157949170735748615295198663374738387015333021865838425014603161882431563231873127502041011883690280786716476463008931023847117389328470946050920873689134140134686704676542925416956262037238388258328403241031765611809881143361676737975952955210790928489420997644492643557419596250158420153576758236072880383922069415036664011924974555425863819831573758705614992724085505064092142162849577347763551519729121272677674228908835547115105771709700514029037578079743362620027418015258702659287927518009646312439453562128357161034655908472532607955737158728262588614010135288960931918396437109976168782897316547829570100251458922471488071015524561663927925863100667407048880062140737005080491311907645779127363431024429891323526291878100936728394933115479683773488290758276861489334550045778774729012900400625836540803946682394769713304136092025814475756442803200033170565891567724075298751591256282366987366064252004366471146246077367338967380966015298870364727877198499882156180172098311627959856477213093806652758978624943028440034445845196489178122992294832785258176716756061630899148620108073605937322070687285734403433539125083432226767089827662823310013983488378231084811601589726506324372376629063771546198066570936144608673487076819609025348389085522308794855120130996672446076351407157284820752625105680337004249487572404402605583216432799472344825673280922629219153092464932478434124293019469862453352278851198124939649136517805592950716382659052518538010921260160438006371507089223776229943341618784827931110477469640454052909419575669258132877293093644633859188240708813371670194803048175371965578694044395277048540693676344864097367179369503091096907321749950433902837445594218760510544686823925341205504271993180306173571632706431461069624665315402298081325466744527099198187557028318423132615563663904426749440016428023717868864409252887824224452889504074279478510812159261172214783338081588221500582934835838114267416314712984126488298882550333678399401992262191939632030488252701830597658668101772792812113195805931770746615552462787253333569316312911206418940065187812338780661008246176832747563046444838042190033620615133795280245358095222323982707255880396048321278395674031216457900859328195495487479002067459351725144226086593372162775935267226673193507917717963070496154327235177530303694211410911830875682091919621820740660446528784219413979585913801845410967743500569618967473425762966528869386266391059295541968834695649917387354000381093862652857228242316014984336650784113215241960869846679347461482443985858542792729830970214910260463551495231942049392671054940616207568876933213370878409653915546641586379492408088902772834899826289131459837892715195617451906885839629332950768730664568711427560383559295018919826522899637454745370673889299423116770269300009670473649051199155107084178713535944177534021355580607441109114125436290902887039576474548348856162518107674376936539769701381187497324944449693715919192155632890454949552666249936497656192021288948304466915434326213339803106237969051052421195179888293139623547099825295439436074931001646772980453013466799329954638305095320426887835849739917818353630787908974674324801585010077138261264336855244880670695226525856752668696516429457195262129589230748134605673174449149527409169117051777908970374736778855241567567489746798313524498006470689108939943746398054536305492413424721871035378025359233002367098888424988574331727220408007252091270050505311556205882528635256590594707198876583896978365361193138245675333137698829962880549710184311390960780362168830046520890717867721254139704585292363440472490954391844864043522528755819605639304151243919193060138091449779875749107329266020807181315186463969470719493268197386635328104736827406139490116195237277745800753233520676052080099815460351740065640417914240536352992527413667535278694103910059171972918326527643654694713806068071245572134092487465904825335166701008827692745099787241419145427647126207872233093740035366048171462895340418287831266725018794397559540080187593699316334787186455258878622192109405202300749636285825799871101575502825790859684497062488109142657625063129010038454002016301809056934050131805963651035634574725206976000043670738370656010373507062129867869495331385379913934573030031940727617949003572258490227172053026423183528960317808180873215713928608945213849922620888726079222679468553285819693210395750055355680188145761799472882610628810670742814222756591038517398289430901855313495627935373196060716209453365051955775049173798061674193147576107331112586075241305734132798816391412796263350541497090719676155505931826771493554431937257799289517791438185148864569565444574761996778402827658755662752107477204430748775559555703363385407297492453675424522741205005875078363141150985893231495274210460872730258474505673453051247646584061634586960653381359177420920123486996016028793949715584029084722505445105533646790127417634406454294158293288328243505788825790138341297698664898486026312574390154393244060878319382647040852569119626800277838626183104177899736864323808457164791331609569922413343125072792937670297419955749816510949852876390687506893326992738047031787622034625754216139505094202285179135187506076135343505842662690963149935245081436775428517639667187658334538108000976862225757696422726858048992898382398883462690271639614730170931750821294652423199565769211531282166786037494359521960561404545302855328067915438435240770659569185174419110524919456023003547204954163188232242215674012696574230771193243051516772139623710946687849222480315805383843135235957558250055029194490737277174380092295225060566867341224766828119985248051828357372927974349399647141026651006763026555960744778620693464767262824839178980024901319634433407473733754569153570265983702577729240401584801463723254438305807100122786017723617948287665959846491787758609464718452595365283413023485120062101602104332300109866279602534719089507068328374115633896366110063960002975857460907586394030438777143678221491414962969700751751500071160033673542530454774511361610723354338200332301931878558024522195208682026426828136434546697703820146339398641017684612335702836917261517561113523848475731628886430401557554053265175955425806675518105199393268138407748489595786255265676006684162151226280028825014694768742980588063361635659285934939916689039629884302662379864082071298742226894877595500498206099445027336272506451109819812492258864498646121372063171936833977135836624387820620862404145875468596084663405331243680546576507999033574226995059326321471147604495074198023515999626556011061790026465121398205013617342342504824135118195626373295193436025199079577033209282705948717435530657743558157057785344247742573751686176702029116786099206616153723692216510588780126929848188215432766882209159543150142138178033776220710200331645887337322134470236843674717628329620701956635224718401245823000363362205272323475990322332410053045683929277044585819916259123406308127379711417458326633114072787287970837602895096054099265529771735949249388808444135330196469797595505710698981543412844158029495467798799714193660500502582360096227078282045967741796489615151431825070589481867211849561969867325409949858356985653508701230094422766176466154514473857505185190337875001753502203615269867132316825802408321419432104532175506042608529210386909579902969557574871228895491632217824330283858210000626865097342320867470235627438117975639410821703899993249202696899211526983560393539756015474859715868521972429538262691255347300499469418600857387111999391398353732221155996137718863644405229470838172920540268442878003588988680453390968710743145533191077420492609896976540287251970785452187619974328644353346280192566033830437560080765902904811195533488246348122017821404812377631673410190144814745344262172456212777506775839135823173140696511377817832047143930843992596402112155848150071438910533315241701338980692765682086768785379305578665521221618602774106841286664221062870887064183429256547663479488278551664123660536062617025694606114971426886028710205088465101750872038952005330090172724495152061437004624524992691559165040254435022460437619439280827704486699668579035044439005165696840526392016713072592838834590716190422002601373111356903024580978360153823223348110136508895870095887093380432040164682983233510180434270194507574856766460607746346130494043906042006796665863349703955371213380264257191796806023789191031446924080553117284379638461998304934557890073791477506755666688038021014816713896079381479670385351317477277036733882631862775539177484297438839732487439534170205107351536582255245843889604005314109002562070721787868429998554797777065880615494129939673220680380909547850607217793348862890538423081267919397293991499713390578031430740218448224989600275879856634493340701259695967133204709110504665741328838790526448528525423814447287864952506392139981114216526685118712678724037431351243545469430281979290417867812480609309695382491408495429397083299125919288687891791976289640951872894318334966645143474749868624804341301543930383782040361764136190542450441355427369674628013902229867791320540643032934107746982177335314013353206383662218144300688710702509012448752967707392281654049678981042957448250995802097013399114951343243885214883188172138882226214981456357849738985639400044554732359901284114032533254585392541556648928726862194813268959436886632098374164144032479908487766427358683811548869106277307382728183394975488389605951456386750068881713355405968776586059899357747468004194639791394940855941425786164403968462861215565454830407683660279172929965465541933552959253892347346037405199377854968934443364980908609461762244256458036220821018835276296117645785234909498440099034501737798508209451937462254780998317954766953244850992327786794321151490437202705453445184436532392370955723494305160807187049787366975958566491092041705956887081488579118435206128792034507119995545131558295692764639111115760233914152042626845212371815332634711371440793464400719071853540002738898457154058229691056483103563204235316769842870070810064606233880869193710684828868389257247060642080897729683000254064815652486291689434892899653351341667005996904736384447158552318464011167201133514825278963590063177260509046227865492899283086545668601913914550580444525401044783009438469338128087080916333590094749340481134106119297558364499792878047761114329545838271403012215307604862625294356859044117788851643639321239811075501418091779995324319525519014497200206458506633549614303985655192421823064989764833945456546832060985410891311608775213134604646216097911186397628371054505492085861365068405618962082875094022450213448207571069172397308069497605496177338861605585504492341973670191224830061165081266366470104115678170457292465900281197147783029086940181877398017573774832049090599907242324642849378344171311154094737769095877254301785729440859268901066487221788915552430478167137669818328050477253059895560513221685787085615942534975811323142347732313241375552636339483571543373929915902610599216443419477782911102349452319815243002204689387113474874098786467929811482756673967434565512824859043340077400294541717922936193954282411370559634991153563875895081598646278153506134436848726104649829722312780340319208229675120525429279758243605672459164615513180141976458174722677300814675959287203070594768255358778316079311905245608050788852366529984906840658179287267308168563003079076690661716448531342822360204592079608906357468469573047104090615759603084859364354164931763898663017858650881534945783558761553246689824909787092934809888712924826611376961226551302382328582291667068794181575555184346612504335457428642802434267713313918071295508257344582383274400673189772994025237148020305236950623148137037305475112305598593759657100246660605275907485517310804849238106495929372067961816409186218495987357086744650651782157786863240638716348316582457692212120668537359360118161565055482044143349370856818846208330436952290514610132899052343874371462495734249345235239534459346083504312479705913634870068503291428599373373457152628140569864657159850834448716744787444135957412763723461085670918144461128900084261148455612289494271584049837167038372204801411896457567752527937581368752591714130722971742966957234471395471310693301451778630655277762922182987959270345016142939430512534489077236018424954012185952766437131022008085598196020434954253170755935947452787903295570186529791751411389510896229686074557974754237893589656337251308397298830077957413677790863715129473714205401809728872288372461052618090727133520162880511838672102796893662895948405494690330824247867695312712088873200666080735535961910520947985580754175160919970674401084913634221000668798858109228199822673787594375845401609824892939260941532856073606639037574963096723098166450016528625169916047196545535847695028024249930637402843647784828858412036635857020000916306446950769848902620407914420418668261491416217193720069038583304122492417681272260677255545308729083995192793097304367508146719813674110976439270510796355838757005116872135021583602352612342448624111645812874921480150448935998720671158388564298227844567075915503816176310930293060999039806684608738135985586131108594510048274359944798696467493121045637483636267706390382070512814110752569723298364153695430884568274974091020444769832369590993738237039611829465961318996396176283273884116093492658317115949614661900005642534297933768400233165151663419048331775347870392688098171404538657165127381921295155205074235403853191507237481724103721939508730481411899660016936967782069608980840658472239700549308818448354506749338953767420377938469557045706450634653524741239739288200745021763387977310050633854142125945990283665183923028375646295794755416926700847835325182187390472983710415440221004169107968814530707161691263938309375005821605261266330629233405980494300721943401419659172963451057463514739262510709451363585052146681608883516283123326809556304016410762458509229830512564039554954484256903591432119788722793763487092283148989975268232612240737074398255362760230352077627734568269449834158087671591682530884262440199268413959703024926497038142866293651592318645987477696440234510100742434650234765252323204633192161726153749824263937495300034809059957531332396691881962197825400977961467931740624597332496350124413390414423928200425078866999543444757649070654610009890862257998206738626928975034021142947100924330728653567628601318804749431004967310267215143304901403031349661674443939236268902780461729829543857009835093392800270985281779741684429482679694623362746887051337543544414255570276696427769974972738956110581138745545447450505978578736174667175009925916566199552401634632865596314501256079648351990868155937785280973970958189280211411304392573422832430816947167796314908024680187875721536714426249992317965594607174987751943981249811650333488798232123497600689234096638708568325237886409623751284084263795030646647651658560147712444309976696066895862812659123537467852482450607598029270090603033901850346546214776812870047499486018112585612526518513545455277638691193436115826485316511065697733852581139768090837154061077459992344412077890381706533790542858039531246883151986223845925543637084085036233284903000964451506656545509886827848185612153805987126267279547669768670926223837543891834135352254873872439430326654504286407042576401145737360757319017617164361719719441259662161620287294208634822527650248337389167585942284190413148210435853869799247315353395197917658650507731126738780218147208652383786079390134241682801042799086047019869415085321035062283564418262936327223765253140245726465175623699596137142588633685132143581247940726747195284609511548660449357488573760663509856318081961520276382274526795852341255608463813368901847388708654323067376785929353349898293240990435348110872409972819347565012739025615538450539945144447829857083906923343574318855041462804673529775098778428626167158481075960277432846217403995302517931231976828859591942701943735577771800047936962359642038298403272412964381902518811856125309667266707403236341408325145777898708093985995332117126588560536416207697944696913977817469796503915992972933207066962670806752415444665875062437892125368593050497868892322034760401007343218994838788846690126178007149227330806731466644024761190423897511674492984251477134007724339777304850205019519344520312872023628995059684453411959382065841678854360941578993543741707592883267299868874107282568258990560371286005051292394948835156415299704047886226492710731669108263951894325808271868906396972638722062352923882753757419251535368687170506752944978719719072509398589125846716162694644362813218524755415157513306126843467182184079005005679986359508845250568474804415242964316896004799015761662773281760854782547191121455928320208016919928276407788818096828528836632396807379648344290583422624937688524364090130559479699224763792526732394060377561722249686732507047480606001715461379740953127526291325309873089608275674200011262759697874171435864872075111975941069098590457262240510025435357278457377499157281218331780592701248350135185635604806152901821808998331074268226558420375301506001854601691213259810238519722135242680016245968842990172418003978549133786542887056426763838779726748084822534865926802164082337787723990287749438116892863675339717865075483148438894497624019308872771679877125530191330307892602486810037694609030375692539733907553296318941207504220637026407789420218548692427542065941695982796119055811502256464276108029131213950224696318245224865701256192658272787459030979229673480393092096499318540142854273576680795812052992435235479479663404497866693687670244469060749921863771780052289969912964189680981237663527314174983179433367540598226072216190906790848522517475787219322715309377935960937870175799818263612354427934271973951742783533541402961276445039415305884870030150592571619187102433172907025638499681894452399840569850919636610380742866074681090273889988264289971969744303648384653647441768777479495193952187720774240573880400724272740857077070579916154235713064897594039926536089145649990439553439161443521463961025735439884478385498002347865317491837157553513596546534747635194733456350752463884545241912271183289485005426296234515505374900932556126034754242223919505022529215391422723080452318078662127784379253427092651470914309374745688758983482261086032126044741102612052671842971966809942524028254955759798275317097458571818821852908842552729967558684750120848222987878716716388481375869913813401033181785049747752951927723099452228817611180182218666808002131517933338619258465765362817945415484288342303420631680544337756135108461382757343293714722101615000854033488712123530609712378503108716934872587154982593752707617255631752084515594394841148125416728878489228560564487721356700335827230008445433641361754866323624584088866054107957293645751290742977851562876662351159901156685452854300804362688806878898103950876582985753395207887974242068592667068513164312877329709732381824942136267404667493070780318742068775385174824411539391512910289265738149205100688629075607639058099730915821529142812672958698600576822798335034199673891001751103089739679737677460409411217216188562777198556921640734086888160729993907103231860763928869208015880263165697725681687287860255925611832545379343330289507471988182370227334043662457392341290765641339160419942718464109302479846639379151546762162001415829895302857031862336964122440569827281403646314765423023178613977057868906453573546198999580278471774890956519764465090767102537980803947213063196606713611766983006407971050583263709605715970778450742736746652113228426804448556577427306337770694810822050586917811783080554064511298328721642558411753895372141299330568105485254227287699607775337130407560750652400291451616492896743392865409037568429185619136261703517723539193021515164087764724667757383219307889240565661508255204717957291997155779110575509224084229442603647774721534646893890935755975758267632838212083206160443254736349305138114094328370824203331443038515086988129600603940617485154876918428725101255187001805878945952142715422976075416896579291313815736227407087030943874335132823821511329457276899756129725723854730182783504254922655637067034114400557385467139466968794837577239394344289546338764813173663869585717396841555396025113755256585652478343501697459318710482083536219186287481343224174247463320800414759821638612923479885661737744233318661452558550484515991432120365607081171915445726683961422099188549519800765224686234988087577911487975217910710554952410742216978590998841542657090899650589126523772286323067255780105547343700962743148648289108591873326209497620403302181926848218420631914743025925632654253005637879141052872207240248295931648463577900314942542389663314419853977456477582305320574111280242416088555777817876188489134146995240582302065373442831991476403569832533958567866145862949415609129596911632360173480946574831398464656845256753638870487389156529773159333043474490775699894793986489683785579243762595691962856377886228394764114315881330106487576295332245238223000925328481489980904914834045086753161104024767076593239138675837961747622793389111895595819784392472761306455894089749348808375630352186750870864048423683097146753113775407656439464709014344240302806999832554072483368065268336895285189107777879344917431613539924504274063843469071419470961932210450723821226978939416065640484193851071460078075108997268187026035296786883616512120073438629479334658097283282908063101297349808697128309704490704287727929961191967356554858080397529056153597491355168215427784454478885018298736758654840197290355761725942646943562083679664861304631789124539860686660446380759263189783818152817572086209268266813197317881199217124822001312498094078358706887094290491674131264907721454637249235730375697913618690832171067143991167759557310600388497593813057650880318256354644664024294375372885818329858501257822372061505750848199747938077025124547945496876893021220156696962222740765118931058835911688774070450985261815219791536378945958118301295360937764635336359964267022062043024672905005598507449984644248373526639324657410284720291748886598829734032744594864308534325762594215329141152588187575262287724903183746041088864297364070002139421554332298602389083328475151309734843384563926897682012386438796385493496283140750017199668155620456072441947469235976238375071032268820629431301573349271959727295832247942952396243485291986048136937845952763293277328515313848621469710212816959356414442432392179185578900367091994237800946992300260420459522436763735466877190919791187976690749446740304890350606664847088841593953929345986515254995442024534719891704390489322260626074251544552629445746223556853818736859919169133177073119735619530996777612048518936251438715729818667546608544268882852439562898117424530033864244761232058897246508092531696336479348896404426360297706694580524984424371941604062009687115232034508501744563643359352002027192648814022895617026676649239287390225920115358493899853599557002129011321520983686755622683732002130564385628651702409288637756079705611492517703713314476698465285163612095597855062818245312613218163027903534802796290539839317689570752066656842420164933594932124624882747680749001020306388102587771145142049469734295154393272840243399749029260536961999663832345599741851610287099479057227893402624343723251378955970782344283341241953663995980686311663188039407099107820025498341766389926962961468020871855312854733856597149823457228880627735764423063030620654274843828752163213407355123887930998501744297522969479094831912198132140558325405348213091719997171990889650248424786534962286130309558380701574488306482287651916718334796980669225063661635673758964278263289877788242342874705517296689325144229655495323269440158345620176305915576839771980372820243447051111260035516121827441498652104960494597136536023030631723401710884527897676080748401736316481355205513752114866046694290180854106828532822885774507346330990433934208377772791167154793183164833851173609698906353566232142922006409036245734116858076829192601604261542992545083386286341349355470198155243743362828133160217464175073585135665757680458528495460432381390049663131347254506017042535265651257893457076615691511886120461656919664190150211038102254181522177315566485266509849818477873260200464732616750242360962644032329117485914586016671053337634022210746918736078401486887264079202750976929428916437481445780618539383635445576578679876515637647285427733140378273593759279007349258474811626335329617933437735637995920648989310379658323268844294186288318972919594199852149410519224437064393013592385734580503496512190700129271526185854180317978081874701688836413977181504778237243990593179210187244920434525070446356156446732252227480361324670329711352964425439192914862072150366503987619329724287304547563163900068791966267897942996302572028464603801978448066940106159086004260127082845118196257017354137705480129347772959736622125346927454545426711006591702019847248393270261906402138656226590400455614302851165935205285148613337702781188772523208718926562461351030737695319052814726143677928706435253785219352544522484064245281163653336792072205803470026297550340697286566316201105553733978305204720294898515506850575765595301845815720908777248397939971156937859365925211973249937539205761792972537340687396906097212433502809556669379504649981411362532326814919444420194315098050024613224626415144124730852373751675380501816574760154669743265197323589758401824078139839976859954604311298093902975825698196723060857564106941070518935427253039667699323642168557284910161445779882898314007445665829578049829440989355319745175003555660650111480588945747302263212128036978902440983651954747224970895209099052212567089584306485358869948472694652504028807263228070868362535698855492651944467455030009835682628587277266696311529805991551836912467239136284560483091211096543776174424314805983659484688782918199240259283072223780551729470755511451924062211837801184898298128625257132344553198362989879320830648382160278495560584925987203543184291383046716332952891973119856388763506541526202244270146033697707104271916379753441633515629686286633738546672198824073741726885201706358884440858233738437986239171777883023341779477104215798002729793678433609180767803208310204181578778651819881718235033775894486458415215740130425521604690547276287079718516504493485211356204789250296093947856490575527345225620880979817655404205972253648343522708889078641315497352991873322362646997927484707287841889072957326483452831974702990920550792137235499167282511343577995469879287000798904723730636023822807381641847688666085004703897158327393463634152758720815822358731502982051377194100865828454428228844825523311222148914749087307904541308221060655528410547074005785382939138819179706217502481244644921213648307845000002810412261653373507912115614135322876355778301680009640146254122365273283505603974678735041809594245094735485074116522627169464188304892310870724058446671757086918106618601271123393601266789082106866932925042482779833662876091664673748373607598915264937782554719878264480341683434013628719540241808838446510051755537759867190347555798079940306550069563930041516189413224612612522380421108025915912203518266313973982566796269058447917831218847872191666173778286912421656053091266691963468208598949025363956646002391193730360983389590592126136285487723159948990979809460860371506057000067733253194192952964580996910756896667772338163753815911328123613911730732814192878524457824831874957769238483357203072284634162718049935741461221024834128933504895136729974015053704746786742486076629217480618989852980038512178377886003369573563731925955493397021598631844441322866127984654269888472616867254476239633153733215546049355430906281070876754904598706397412335935886817985699422874667297656306093079857798132572609272125795796528436092476288043310396265330546795914108740232279193670567312138808126208360326063524482029923118800485167961421051038542584087559008958670706505879216645115852341444467198455937916824149345338446745391429966206446542698111251958578750218123051711249433079955100573077913740162785951215003090276715571551978773934206583393841910340116147573904948312400968133706350687442425520378049199232725692127196226117939568737687846229930198754421528698310845707277253963083505356342289250346723914577572456147783514674670385540442265754734364668204851543791725675288493165331491320513044790332927428131445159786923797220056950178494029881835793135217915229753203878532309473400470416645609734935762857942271304136617818971109177510997745403167897896425335972015179729903043910213069564386591644161016417656239061065158755302996132123130954921207727906027041814334149005226278037771477427455934051974514640619168638021385216753680448144897381757103928404300668935234301343153019326769541998654411477228785829097794757459020522375657240600330619155800279714362961487280575082722855547901175216358172245051357842370143199572772369331381272059184809400807384522580357904750318476941919790083551874968175003306316608057100776553705572316354515809064203002131145899116381297570949888214289420778411722510972221906084398772496638288655184076240404095794084371336380850258880035874552469478988865123462307978386271402717551576006893264377293866850276081326498732571339414725754643658024529845574863269507975319632257427428033386822997680094451716604897972071730912701674057578556520350022471085649704061826177966609144606827789491998190404951879870349006241635586977368457956254869938516112672444747126581087896737665184445677878388293053851199905977449920523080349265095530250275744434500725394477953684929201593040085275260025804250779711505457070423650576458955636564987882735531512703378922897701726186137821222338384927879277670105160718061135484582121529829015319150922146908801735243301636114007598341739862420946351924647952886714435519280187207183918066373507051724330863955355365713035064860664781774995088447478900647489231742759267454113441531590486003976839825035018410523850653857609367229523474328733249446454872792009299749937310955131824224537277371252277795639446938413455397719865186208201271483177797409304777901732711492449345923569258269804033509750612093887771454832884947733794809210001504991932614875999029892875605436882337843316734132152280075044595687719825548696020508431725131960067523551411123330126014172970592152907158772742169649833467420206798118106171574307678290464454639936836901632694244631184476900993237377054967002612135338539773532478470677160798890618245529859741603661400261875610543275129919570559995758385981495315286007736852208491032959731334360553936407474879002682213053947127314364300703527970532140777508572302678094611378933522144219764027847933099294121206947239933686792951785106232353422111964279592511498614754362694635561015211941772165052060015937380750704315031690433960485804039417071155372927398209354746467101034468583258568187062797324747606146043154820403310719269596102925854027546508641635892066938889848117046432359153169998345362725609686248534342113118198459600339061873993073521086451980907741627731455225979720125268979419646699984147475241008747556253586303903980987388215747997920584878250076401184202077322935852887023759073482030559795094476647638099408447012751291021893132824398793011677717716849463994891173462921155251903964094435946719276624714073056355297915230765994762285522901606586194356000615300666957045880376573540644405806647597643605780581708908506057115872608800183571448729281700640664947151757796850760636977256859342479319805861206927669010047091105186116185332084735951285713185052094881844861727070409416070036175744046371016264261726546303893012118840338316271895656467603473572852258077934171098990417364003854627159775623547636179915925807720727357539029656015429327246860037243163836720613477070249415990277007473678816132075792065838338454654928694709281804209222994872282336452355833935658456194533505972471294290166482056656374691728196395782053311826515117021706609708790817267770510001901989766894578606567643604828782308877794653301858835557557787351355238558399631649436336945169230977398369199588386311796755192438937469002766857924551712135446860793011700175971217660233866586332768948437661864891776919019967198772382395040712796088743740761186523961445296777033829819498273464889190068020085484745479283727336107971540018977108384843427439076175312041025980304037223450685279622635721614343495489928421207901036957455631271010305473024930859969733003917255731789957678218873007695727325461991515936342792621687411800911279881816722082821544176284401842491131026519968141883127799159514346099796960915331868201974942944905997612416783441323417071686941629686422596616542328861162821092547707674229937972214207784276200807031107730876956245256160370334738586011065337017602991117934428337891659867751958843282232302754027705343214297685471500182212563214592593196695868793041340094053680856709752015776262222191657500330002537669398042242487931737832627438760700352886067654412962906914165628546823809912511735250864106463826109372236562351521876208772960810829403321222343191817599820561091499208880935473155519335804817344816904016387248240174916661470482737376389691678307530668881468193979419408006387127308430845459439781273742272454002020934403274236959549859410959215442422848475366378287676467836444281012204547060594748296499446807995819263528707766439217128844465794383627267041765251632399359154516095885870342693686084876220458727989010205856713791275238870643907080085970836542950526599018180683813723645957635830348917426481116308760343466403251818672198547817037239804476958741240489670951523013333835555678595954517327608162088598361439545227269660269271696189361307814639709419433363818238160033037321003551001097038893921528679973782251496827235176018724003470089396234418958698200967803332313922924638159427901217408567949087246285458643074415672305727155591496671124935621452586481354438878491976507912273546154979395055572503231204088183041459629457308554408072173768086826110845904657829095939988399508015738391107241147760362654422630666604445181245797455139290636998321962499834750258770858479126206757400277489305207464391764400829132996579511372300959248295784654263891779736849959045827397966037431746501358654608448504841861397470704100529697421695343332517398800190606249183251605569696899091073588520123894357043561913365460330811828470964656504691834100707144267429659759920085733807811786535937210477609434981693160355861630836183039147942908491071519546021304640513830062243847035340125856611240709755124267567601259304363359010408232618793257792661497622115058290829300224289413753668684608558108470690499114849708384385806769615511451650865260710952233730751022245855014814229356663421368940654068692885898731968858986079754921023427412986395038619595256051979401983662666964418190393952702547917821790171222108573474077145960651177715619143153822666451805340120814842023476031307492109698178656901104499449522110959348484171176191325769869104081900181601244328704885115588075109975132489788080900631019115234863633594598109279324837420138549910643863098600059690697583567953472884911121880684310337908376121664696399215861746822819243051695107929914433668026405724834537201006502110338823526423728053572246007059743722939134753191277727433786018485410243130741539329081158857739303146281217086488048143598370053140047971757068302990881362041115655641604965718372704278866461977400592187953495662202848247018824954850902065108485147405671035661031321831464783432316849285831388258984934079972398620953202898648612324938857702378565978982911437005562639151871139989316185566614556367472197698780031555582288213949362580896901576747049823750991373784431140732294596196145190162684475469810131944863242556671864116050745906500621295102062572545800004631549745047032218242612257383364746466878754801497332183458050655455398250119120943400799113744353395646875639059729333833677330046702043803366910767630504858459959384916027861124873071269926955863520873565166407407215276482068858471346441292851690342938504846895322107440925226111269910356490242314053644906137248041909573411849614688103709683627152940417453158948346153536197281444780659114960954965495749883754605172113152935733082040454276002816167208378600089319416861885915252631557241316363657392647990711400364602019104055365623891428070162101207857472106668660854602942772911792155791365487049523342746226600045069353474566803321464451988577848089125824027180024113137498646622273553812454418125567898511586710351555879596939234954008136568119716311042373254759530802776401064789872249396978123333024420935596434025674438296564178107780270268135772962704088134937679768995776636141123917410881428986813424939799642447775919125194130617844098917681830936552178974779675329958214013562301577755120926298739583921010920082438186447540408873393599771067515069211747517070823069690548546118679693323735940386828903330336357421800837928373778892033832629366157594946639610947234921466832144302202538546157740494224763102853513589006569799593742176060870240667857511661480036861953566598129119068746557979373246881421944681101850029005743507129227974917970056308417721228903604888333357123462516601736892811913343716867565538180831316990542579894446050343277885767320330256242723464875940015516903074207259890346010791578722928945580951942525906099929342779768918953876729571207500040744173462543836349157180380584969016810886969432396396838712241580094838875162101864195808665877920661163676576845145590655303983753074865554968105580094914263785664418933367582900080782156243677874909883866689523348243890358920099007537967631048357439671871272284842417114562021093729508459665678071808423389878161155246217235219827721461183126272294768098345179452678067042700270665716029980818033648747821422192442480332991808451804398322498593429773358597504501613946645956879590484532330839221686112702458113407493672279909643699385508930640656899932156484217741174451911772794693497689541431118823960735931920683477660820687601741622819120238294616409747326881621034850275031249434501733855754953971555134940995987505804554881684248973553490408355278229930517646362132209776713810357952367806763770698370679665627269836624680398901774991546073139684704532899132434323658267484867139282140800094456255509816849304518724442046295193925005303164058756186379997938253182070863831486784174928927075810688686234288314892739058269469039072826136267579049347412587070772730205484759421437385194319917119285808206382318787159135433851572581422593111347968973631828291154903186200834928145876870114653213035427533317094242170313084061313332106560063260298847285133310736702813198645807123529570583405037319274021473280215866670406744745938159057479197388232705600714654273102160474478313730940214087702849408013503184782463897481050219274107701423864839748933392319948574527990400875058431654327485676789864663737348841851442478152031809057540878846381689278149463648017715699357973389848646797535337115469041065230574432008141457214407009844356809392349385067022015715916972614901010303319326078086010038671362490945438892451872892310855289361543624420396999733481365684726208992291122425900954441810002921835135130369014812535135633125017682814782382059500479374306731375792375556854100074158806248595182998270266440729876237535782311248069874971111656201718584309357405000421687238185189359802443674653457044809238073589260398540567749740926699736147156220141935063773019167610602498089903273819801636103456375994546729817133775468165535176580995987888757568481308090450656958580435292703397882318285371635267987255729806634365651018654729060257905840541683405877008824576853772020510517061069905353926227894791166642915601894307250631376708893111667931128105506845647920355476734702237175599492489423669746329292573980565755390046618082807369080780093232900347075403492595331887620366297585089894811456404897835900915594290790090009658180044081777421865903344185595054404181288618005793048337741303642428015665920181533656080531739328211415906323438021602138497576335533682139928669476586124648027229263313478099052022663797622067783220809912646348958947434390141402341432004888209685851299843268622620049300531387423921846835726860885923025636311876443861557750075427858923083152799343857356802296011483822133745662838364434909450617191838420090155065841933670311078823369910804695798860265758688800418542677252753076412048983138376066544224914522572830819776084692341508406965368817509474110528604328275814332297382550758057968207835334096958618519700191179979418731555384542078752292625850349003281173875595705998534517081243126629332170204136398224659421846774676529496585582101503900418734804156982720893077380630824121115899822897618004964097596177342323052164371867323505814648380422594482105343242123336948461219290478331624461863743676268791557116582851361242447046544969378718036823549152651600977102069627832304047246653218346273103871281209546550590547133188236781388392604181600098546577705373053660804497795356602060402765049847728880875260873594440753849123811717100343149447777290545946959688350113704597244126524357229554870552876363858871642693315900142658967989028360463765077483877302711283996690556896538197034408006996204293014355784723833127942103180314179065715533336985527559844132978393507210654761009132790077166427215598920570079650952296067210479438699367363666115313024515496129159288924072080598729954742156265631007237736551269421912150474561766700308637627961605513868445124186371897247559648570527660992762669645907680978228512393551364059416723484504671950237252100023412187569618270558160018491985396527573828071210508117152245447822266190965468741349776986685481193229980391992873247570100079315982265824394943488610059439189637380707684169117151334511548591418557196085683432068836696905296536121793029381872612883894834769715027325625319639297612891637159704178509146675635597994259266789307864896318497359802092704262329265360007338146867494820557534320617879988867182476077799353885397924752282144271995961375609506257881498247682348187905441136075318585564913185495727753446524612022717388103764836209114060785979862584575688675496671759975797314962954119578880218433092281950011175033689127450195316689975553846714046559585092365405463573785177848249265548231623869139424668623048658542613137274990003105461565789145972543112774789721169244263345792185646567338930189287122429999042163129517272307458356433730895663041935119765792841325056654532848980538930396559658259953689920778455349424854359480741692898552904003807643823183073310371602092823855383738675860285562616678082579634917933551640040518983057043471413119112426630192261644380769719605188906394858552638804890400830902993294650599452004304998831723809666640514295728182695499942975182987928178811348111001508770872348939703818602814618634710463998115567713072498763845339387435227266156560164590705106364364562838387138468569135501541599264565425653581031926458082577529810852766550710730440649581678277403893978843311485879836695276096507448195341513041750005203095385099127354908379957526970325016550760484887714845244206584661793482897140140859664618878888361809772611079642378989857096632537720823557003542048512506700024713651189285021925272514971088904139611535822474575041300342609866607388408912216618383591117408395897570282406656182343884116837437577142226597950398648587838647532699399194872687667895440640090689475008890071394666099192775045908736706059208803755690125370460213984521808189664102402543681818497337518181564635905742884968858643347109550287265675594302848758647271931600676330629316060878089704116986739669010585815835643073425226485440655644611592535295364560966320694724843960771027078801667138892392634714594381920096134234820006519487615377266705302933527190166827679504123726206866549421344652861290967368658495668980544792000685752152052147739780543193340181904237652681107797089276521229896681490722446983155343045425593592391309444312627470171181866111871477654657145106369675260458088723054709607449992368853783074608100070273689353840353917611695282949823148998986653581579261797227157916877745157535786697339111239061252425305610660501777986949427624560072656131070914939367353010301105489062510106879626846707244912834607348222352393554172685036251527246062997867748435358739379698486674033432169072914904807357261235660286175336853519626170078451574057775674044563202243812001262862620205863688000487592380937811902674543783641664978942053658058816372130613412415898848005463973810937769263394741751584034299816857279550943987513043981665671722253229798944542800713990869660568658412946256214757602610738753111180181468687558237875554184250482324485078168195851484917594581467620813357404356229504269711138053118143555347488002409205806094571295059951456341306679518196772109769111532141502138929249553804341953462451743233246791839636570918209573938530115246267744151267250663289321887681917312297792526126617853168921938091377976530955639547127979862191278015506231040783675845936345827269953269468100332035415164344973991727198982840574918826154517320088591382409729909722244052185619346033559681369852340095565125644770546566347690572028430390253103159653606800784462758433142057478921350162999852966410963903779937265984583652431958772455685089625185478497964239823861246978857579715914907787807112424962484386383463834836882746047222435087382005469693526339068435877023412114167850260284527519945657419448298559887751843074949257261132745251733070464644724833202690435463240832025385676804339899012412420460406886754830482341787387861686890784691550297169876090473088407937698760969178930079243750778898297565483353687183719251658028592552551091514039947532050430638685896785393583258005313975335111082817271531643308761362271050193180345195544747627137877382969173020716377249540163353562761153505660173180250849607893852899903031457297516360693423195127998341474978843666271306992940277568219120427733729815714659558309527099889407053986264998404663104315607264841388522894356155570565829384018056771803400103361350459691196726885476555590673147663724564921099143499162114327361113402184650415908500435086249265562039142692314343779560584114633163530162698399942405984655972508224008188300056328118240815713575103743644325991476892667961941964606076234938257109811339635148375135816353212103055320324940551246182795254720009746229876530627778353039511622548254795434975667313874851740461882898787766374177502611782427932444898818917186186876516761783119740694929115244123634099729096853225978920143752757114684736253822363045819877470394500701884543667686562322731234083545527828952042359878154682103210591890857792193629164098442115137682872598672324203251883412286739741587011804363114013237088950137206657774871141479238738482911604358944543207665062572455140037208198049287528133791145384415920369293555695731695723528558120498552915970368393297087480378126725561988525961011386845985309872109981579801907864994027160798659738862334176839960705830162306977963100092473253693523890885582626331439995170647353922152292682085771303504223339571794355768389316698704076486021379935677470084430122038781117048120266982504508336278254021577625997370885133794773190253949990627180755660868095977426133410266147797071493681072550241002856290564642611389216651117860435391285167257782130471801095012106369608366058175385505543346042960656585489713131519174095802971823460015729624311732651562993581444022138951348026162064611063055815320069607002939510930458146073289013195251261651940669977187062393243579333388838671502360254913556006269912979244923276391814272673561992921626863989400875056460251069443417447769022877809812820929157849692820836653090643182429904719444402023634198088398017711089987813858925639707144002940588743634808286896685413546380577206572411455031407293045444141306433680673209046416734431601314095760508302260414015920433647103895038720810469536795188421111013522903690247443813669649214667090166247391547514205961275581151834198325164474895588532566810113644632818852293915676620658037689765094561453742858912132255565016646811445307656883306948194718273900018738723314753089227356466062127682646243147037224535149295461395361330186968058943863778879261033864344787411041720754113389107908171014353397968412770410975970638389550276016576924290454811703062386916911159395290598275824101121196792587816620876159711590142661609847499270043828472931195571729326281892877427230729948964578478391754281490036327374970599357845294198621477451487126406172793567944411676679549628668536707092816904166726035864136991696341036445305259330394872268473443573034554410280062108171158888180044722057072357989097873152436185466377453046764280635974090007032361883274595299137168744773794901118842374457202144644842768664909785874203806221205717727719218859410359851823502969857487884586676817746900354293622496941807970930138853379256703495516876510584278064152319429132244287006757208864734982805990215449385908788385710942411066402538311445432334160402130808111670888176321538416593702421282869759974776797435835264510791818616205537922120180191836542128638927585014406151444192364613031799094049750360893337457277359459387920240249869589953696165429716629253535198531222515559928050806216944653493080619052553261070173615796233577650112277552123640696039010501091337544465965492116473523980900759843958895990500189073613358950509821897970526709530412573741658019650250925528009961341247114199441146564504643000788497054130310280328956006270921555403266087498650688871833072453433216401299695537799514545943075143065294958276051866116561016555805565012370608806436171861016121259390505351637379948681738235819828426605817871144370123925994446202274512502752278003556602635134304157749826783332735892170625690156118777975269652799889741328379571756857591415867747637788751275260052374320937490409247276645540048652784982350558882831307801356564089327920180768781013520561471583653088824619595293564442283957525876169147313452310056372533878073205765981696606453768244009573628887383845613228476868330926180492493912048487774195662635619300663988415468635429520355822652089070453434971707111058882505189190319917010657530603742031758744400344818733229232909608334262503747110573845702312198479406472622591412784419298647840553654773179142892952820283259485104784578026538058504228581345954855688010336017916795855985689654043605781375868799589492294835959263894095494028290419858741440014318625302847283988825439426318206568896436393684949792296126791608257308041070396368543351974952401674566721491520608570437758588913116306312108121776869817653360428093395502877051513535428907071433723520748443486659923844746108080088976509109387154816972902605818663293613990457691031394433462201618842019380163524674728909800927678422436148527542026705592015785615711790082263576438077304916392268767762512795323163266631876486550535800985100326145800380936802953067688115729889999827665531343586597587502413375662554050251952947108821148187799058661861049129384144606494060112541123164484758081193550586275678664097629475181907064177504165677193200426167394666942192955235929920308016614711597845452560735888027139442616502713103955345808268972035598476716698754305947979630898124299851973773265476845304114733858696621099502708472339134192462321783835519175564336706642055981347974812654378361867442543090805557644163076338130139419773753726525227015607549863809684282981530578812655966590727756731202094512141452414699867598928843463490379656118048146471597047843407209163552333909043200449282056777465062113630082818841893611079566166780230081753561736976180048132618570328090938483629269725253325034821160153431121819116260601857142956482263770589292816973655581152776376831393826522171919870083205906211795865956400080532821426002004803111050376456735579587051792503275310213870784127438342170748498880906941650698825474650979099777771607315405268066861970410610824278467241696954192950330845518126053136320848331619765600338070235152538430035919374809163393541690682987104859506334064237813486575315795262108493847843672354160252090188264901717090999804102102417137006321827528329712610759465878884724927805496943403587869762421771777724529334814339016851728101037977315508047577325136047064524304448725108048705785326328010571914415226164318539543918570264839647782790774186573549145332777217690954704274296757126273939870659961764574357701341772098910141339025769958957925667772758151918354527941555044932822976088441918154564293863105857314021688922939226487385985434380043436155135421194481861023563400769258034716273147077466737624834409645219900428440949082337917923134836283697853240304032365076878026692033977631141342244697905838174465064363570003138861367868785001404810102980590784316209529055018321946850637276662238038140090284877030097922993975635184075010268917231983338844668693954235713326698721784427697361652170339937458255075792417444518424904236191258089000224106713421872772893094496032275576088664995867742206322252184371875663045719708085828700323482788587761061319328794774631279870762642783498226237344875411839120534267289125566489087627119988076205226263725265355468285556611186479745381403610729589434524935538914231945267356394636731027372202843339165841673618701986437807602526995281748558430041835544863399438546848759679959002204438944898100262761592138923764344015794354332588495916077360542089282264577785125412704814011649430642260728521174281187314312132921785807955713114521969813260513136667257086779499805609790233967264386991337463130180805838556127792292101800272268474767871513563516317905182704853890997927382451153552265010980439324313458305643534051032759130472964059308560104562264864794548457660431166788778481978278632481845348976419350437500966614052495644183827277264863215429675294427811408085242039394981573033726764316859381521736532008082370921954086727585814204198916402487911458351891614981689862436636720075649493443343740659337688990225020550024522714205876942513103551415304149066834130264635608296425948808135268736457224318007945588559753843521700989327086302291110988613957870910322832218452250141063012820128087996554791691548016507245751433032909131520908695731814610282929281393154591214957243059878847872919968659209537720775062489563327971893878775664249556060612130735899654387941605222261114914461373959790533676635767874543260589685209830401100193642647621667878292911692415817245897654105777468233139154994459040995357828207195711270105074574957091793931672313163778449524846158481815511747657053725860733587569456874678319264555983083966797642486411629173808696416455520735363069647374866930065330373774774334121006554157407636226704264725477291793138261813774830272380405460807481796368001402193647853543490844547025847716011893962130750238899458791431633843965176631129499696104912666428421872495472670540045284242983768600183699950673106036008912202652554168080672563283350562942439051254469143883703427477540284972007449916271848826466937526615248175801508019293634037373932314289661945944445480193885234644520750576303130764059464211405669172417654009349689497515759523879985909910781728731991399058097332610491317585913519238269350354430382564094924974983690682003457947152898844633534700389818230884533001331302496715479133740700251442492490911622452230430687265301893765561335535224636815648463488831507127655386762814536779501804938326158066535163220353761608173585691513573023923592467660809338491131027593430382622042939399609888165821425311305701768875858588139994798689642874534400793812589722252381779209361175708647951374091044986954409755058877232726380119028989135196828279323433749519823178833231764068858574891049030341207516704500571310504474958711486178159293779370127318537965240543210416743365313013756993333286246673318750237268638156601810387874222910848748110848489485631031525225304243824309470462059234078306794526094796973665542001801466536779362994993126738203229217186663329300529690420706285994110926448801513069557148413039856233751454815743982396691472481856951116148785854484077269429354902456767840339090550990668874096035137917925553100857273645819317415482265109355176110793289995300302798855719863453149202043789367142803496663757344298149481246169690934099841817181254323913284257967011252455783225065854943451624367639017801378044019408149317281495113290821098222738743187547099134243833987524386041219926625830000145914079296002048472231270719705491016768643761400460585933154886810006598338739932872637030305933224172468170547973535072048429004280051933232969630680866692020382863711483602477559540457530695110446149704692358252007191170056831479321232636833059062740774793515994628580365629654025898638088603980470835270616915144110927766191322745832302516870185552523634051726162385195161066819992710261457323091326226267638435172979958059951279032744733900285310869725973992826685492830100702025954344471851016101376751504115879963570480977124709946763361152957868330435693639674836894777937883912872090613936446603915505293455912299407502481944510562195376660355729230539422249933821239295318196975541792330926584176801568022784404914447216849351147551482460472529890317080075233911949490927739102064804805056290524530296386056139695804448908576731957089076032178205759873873725638042341062287722493696428277898876676771665465969463102243555969355502714221192117890204012618397005576694081856403365756083188180126519851342397473111939734874952753861147331619287898139648479803977065010940459810873019837927165099526756496697536840805067837741900548433564321373671940456596240909429708438770682199470613084192597117262978105815162639798878672529358762955609466501600125238369952165637028325687330701986459190794647674530802410828865300964562210791221406563748596915925343757629458953521687490518788609436836387197202897665737172399300315130705586581692758170126006217856562546913937876752839974756846963849691001327538414762979864817992340608655166415614120033763727682090732976249467495352257221191418492093138499842324486411403388377420140126983188767101652964616266455326309442763228463210216352721365413194859982873629462510600067015307055877166868306267073850072348223405184899035929039117047020742704655335924253045851367295717614262334997475111785232070344438405708938797054888816501922898973869012442679112470087769516614903782805556791843925614743082707511970785299274615594394701907446698620254718370783668245218367679742332737894060351137443961702678999992457267435895003945137464585356465712454678823677453338266688104599051096544302094856019652886332362887243793453630596529180354366050425880741772874527440316926450460866436123496962443862477006293314924922130434956955060253579579734616382604799648481610987110119815292555312938255450474762379100680726723794766854157542472114882140789666723656239979026793658265849176354338116430867259478035974047122505630735485933909490078488100412376559441805618161720780009733010055113379938947559568848173901813243711349622108047699964000864811769383970903329685550271644644859431928676776307485548225528152489378104771349216029434861266121339139646653781923252267361220322355536833836861316883860507708293897812458149761199558887207024080373157738171245332694207830899647008735303101114140021274769768122408323982787515238941420116505506739648727644147938374016984578149043711428731686354822721047911428578438559581151670067035840755963873367559952268358839254038052903923186681419421796299064394651544896974519859040890991511666391862591935393010759732180584279320513817935114541239938108702662879175034488541953537210060880321531040067975283480937892264335141647480437439691616175087377091708611519341509150351376587917627479192763191159119679008379827326729361953519526088356543729951377025845225610534769600485450900491931909865376538275695798188930021187570809100933461818466893920640712244608877199908251055050709403757594729494605860442748429202409155446893001158487339911971598048669306059494699286721506869523145157937255842519099612353639230573397663276397332940631164518081591017706529406991339750344125265489602292551786074226394494579003439939483351640436472137133754642677005531987471297886741576089490790131431592296879380291586580683544642809756107007259714928309854509400587087868092188578900385088086209057478715705807513658772314433298850161708007150041108844625514118911968152302829628880068240687668575412018252768372783676313960685015354729439898149282850865430212085045448372147775614609919765436139344489442148042167716769218092774147682005050895708527645764400405182069597036749871324749463639887444229645435463160696945896121867451849572998743997372610859369140073216162430630828370105101825370148264671171802430038145985800476630917302314171923573245406645222397076008360525283284783973646916802934581707443717744940464945705626703801953580520651918075027783086620136118599707931470356654864113331050290055380227022662219594386128724782104423810833204917667092402642575536252147493654087309028689037645761493661481105536280060429090736504753498946939354423791514620126227543587750714888390477885275348774530996910231868134890157137125286923458757456616476186474419182842983109665679076941100122874652262763957287668776863490449199873777633459146641643196956128548685195159350920896679093608190577619965776258802241695430536249872670058843824732440569827324474786376348526954111572339359953458550524442305013602070751604923171731424961979927799907633288170208378223336842557427658657387171443061372218283822124117671509658678351719402054623674830825378793227106122988848629166086253509065874697611642348340562343151553203559044622500444968903541352631687689566271459388813896636102184596965950229619334125175110584065284620364330277636395456464270790920789636379343342338712154186686882007009615842665091572087968404673932327501435933783846135209549717486554471630896125844030729890183250550102954910185913499418091674369728289770189506831783681007039129091727802326934166017495606353448144199996607268021596298091209554958104734430337240358239836856367034486160095471918786686183620698659127955189941620932042558487114582274389733940418481363668645703265286789050015757018026952990129774813751650178043626831048281396080300173947684361128765641491230582636315188989581020699351901839550576168023492985877796835932256492209888040569793818804347184006080699889056829678990080144433608444317585108337839386933980341862708378822081890479038493583084023710560690898153317123799526137994146572338881362481837030138940642594580478919402681163038832512519422384585801040435796299686370344173910505679304680404889206001697943277606463900517748765985918851204320041073327367148225480435747836000138228719982854207741599759909612862440221248401959523806040028920165768541497848373799271706587540400926390280897104866243366477024551907928180455575007236291515887571656934443944136662204672510122640329008494171362919543001443393053659247360464726924884392597923128003024569380189591071194238088353675219483294539853796056913384314388227425104006826371713402368371411819789915525849224712553522776775377521469774302268599753279362447714461449456711946938120266300421245606619514471224659625708187763913367403332525420833485487919485739490288666898178508315497166611590951133352938047369199963073176396710422680488908807824004929581656162263597320135877473563015356399814817059471491715439335703999409901218906019342775957961823102776045558406838690629200700450543302255941846236672862574331063064139904939889035044195764283509390231410163057442843494101056778388610849533327222761682900845759685215483412377229435760037002805221898777610356339688486567558625059141013901091352999394589155549858133622290388275790621616949239326707459826633967629694348964464480684422911201601274503625263189107411907400556050952643421361265918654966716670876552222891416920305060815301073485681736158392355214842340295661420743684532306837003553631444625596037413523524301372564132907326186620850342988854597824345859815969289776580256272122786203408508143782998661436032317392171460369512641815457037364090030892581531552587580748823546604554045835163540833118333080952625303194163480555536028028869516990605003608632209260903258748590671315318056520184450483041740936777034878680177795073201570311844042724322862061583687265384399573358890436188166740365939863781346183385220802461363165135953718327895412329765536669494170004130714935446059063658507954842536222863508730849175939015121671985066080246811697355370740982579299783965856589940024905931202915768911161859573003826448860514813015502840494616061408979027362827859115710197196353356865983926585644238342443688831366272381302452384110730177261957579722274669654407660415476891523286607476053581635946584645329263689038538168812495883596567446630651177489659394553238065121098074749140975530616501787869537897431031010387314719654203997869908363482311022103144522396033676848618015529745744804073345607929487195603336024392749381396399208952539770469819898404791422385735152177779876498581072511448682495136547005140970223297771380036209076729311482263667145881024454969396977922077221576556552262129116105896323254481406719357384849373518966896226157786179535645421847325980692820569281950654629577377288242786791395137238290586195261708007400764957740956992043330476027968228225733240188648291120173571777664396515219846894147553848870469148734247088755171109513999784288842535559296113195100076750419265242122327743983947641777370724461972502385969998701671664247922932195959872308050167568418215399671653655679251262112770304944301215584365992794564392775722564004086524208805371991213939957904000836707937363156275140230466980886139313670410801027127971758235933700661110622146396072421735125785923411027537246749572212055222011438009349285355445432523175440760632494586324924650595399006118242814045320550220341040993298944788974454638333656098796555797186037895660842980402911497841360061110151924426394144793457428914505750962389156588589212279458786429024764315297269350862820406468821513658344969137186494978061985666583587332028730723291136404178558430317642239112202497965128097861861394892955140501465197262974599491899424276881055946277909687597070078692707586270814511366055368447372132927957752883659939617537499481599391552958406239631800239992325483269436768318227731423357618289926561755549383273218675926235967577829035356586712056962503804717380252212766201067615891153063619726391190699010841162088170508804548111377443037829294714031034035574154160386997845851724165169958927994783295156849028388937208306590051424682870560338623592013838118093468803529602598270030952739727040840707536474816784340004595925096541768177649993564775940198875660585054519354382508650776776854322051572299811493763879166021945547438273195163311869591349879002654679308390959760823583006879387185186677270618906857259247399713760198928875012605781429105604103502151706593756670385465910066251699390312516831576911082113345279236180568935538803316772184861080516908822861714508140384498882335642639029457289961481559461764767313828821364257374435656774807011111366157240864068344372327119294268905112030792277811917273907598904743985028923505513930063257859970197984352512072439566076359086007259153157315621983044637500691594565771014712493944454795670090222231519479395255044616275071416164183239919214838542485985307973064187051134707509502094896372796545789357967667781210751447519159964073338131567362618995084043370130390016320220042890790565205930374561298377314888621874843323067710971323069679486517697567483044232825424882981087955113519261399845052552237275646205584576367325995277646129828364219587499779279671205286523520880636544788609254710715952567579372471378183383727256296430009902635495628154554338110928986254450430691375947002297160549204449894262317073969773346744533510094257960639479505959755637597526205679425681991368170227887485428209073163580231065020011776388928359673265183613472791197217883866067810113674852444955169928574961905080826329133419701120357666966746544928878585320634476919567681170027200855947009734398291673867484796040495992663701225803341951117696877669083732408641448194175372651300645387024010388917534170867387280423485907436144037846646434423812993411348036345624922123986350774069353734157440470638611600945878915003941422748491953095015276915319536164309861389237060223917618094923962114865708483128048823596381926355720125157047785069184765480748846993883995987169700033412236150567588078672667015669903396167840750203646529583643001454288131338215190355416274219699832490611103821146945962558824165996269278415586043920839435903347855136179736342564577064843323673842406122377283432827173445226040569793881213304217110492676351939369095342526596388471009174663876750948207510044771463061796394499606147337606057362205948972687000849261804807481665130522996320064043505835359353408369999258011251514752870646939350111411516351594058431604340192958994101890235031549680764683226399949435913661247486688195633821705389408155776576238724784689137168672282838068074782847839351228075884703649363940522105524216888275096441869955205006359621012127825575621831361582431833253476198229855158251129087761097639613363506013674581514955501112763293484539481938642369653613208542272611094709933711853841300394167550907983070615658874602437185602554024982381894194460463635926848433675108962211476907615847440009713761657355894477924983078705620859645014440859385476997710592127467862605848428214730131435359076888420750098163970447452049747174038943422796823552759661045382363077769467063045434852803539744973220901965050634005631733281487316408051395245893220731574370453994063336053046482388091573189376756752064114563280886875433141766006114935077028594092822349306646976426991928966391803364387233289576680119409335992729033852347425963631021473539272706811568558066650455052447388294052272100066330216659018209302664693100221198388856443666811015106983804709736087818960957943426738982081149987343822867491338150005720201357548061139791058485078911754051435224202792799652898070457086044797729852362245308125726593414696878045157630445706559494620336867370774562496254074563751929540780855875394549390089757096263671211765971626623321012182414322771947390115655286289872745841669152466304377649970677940658404738616644289354010823568622515480225366646208420416302696796696007946128889610594486803587939444052095353836548165780805284584980747554970331446096135209883852430762462604592136297128086123772921201063605470788217788757275059410110118919536346622426022007443122058962605680651715627243219255967443471379576278526615500204502714507578444342858584250629340918662276339428813374251691365820796459237536174566490933716586498266871263142524467800363289010157220500231247130494123887415590160158824155175538660531359539776642568459087485280832245673014506701447006909568499966830638146890699918130527039190896930964375134798783544829655853605491543045889993134331458268640841687418668616904626435840878938614961102379467977306009944137192891698268518191621679256628088993069368009253668844710298191240006163036030854564110564821037936934040631035986222526999564230085676408116473106862341340141218148333235365964286226008863372187965283676128683008940107482313850409377893675216644116248840629892863664686218681437122174501470443700328064027381330808693041859153367592277323918018129521248441467765187038136806090705817173714154351595409419281982914724315687490299619215975053004860892780833853069726282041139752146795577051017945793994371431382083959970840731916796257035311962762030598767058573854859800022595526940860089751128695629667410357023135937703310423931119259133314846535631933509367994047288606883372615525983615477970866302308717582130147457789654083435734592612434498449126310810505214859123990853912921701018453762856048239097311165168780144932175327490208906766136017953905332187594261739008801174663889101289343597279396350760557476400031166882339163709829544339842294815268041565245057118221188116869328859782902560205871725677866415583140849306524656553491804987383329911014181675741317579297601887020921488828085089710789100892431709546471996679128885773908716680982214962381584134022284779156368850926532303589293013779825986103847039967880459973708700378814471992295903621363746196867210075403867086007710622995391540384818105618063188531941377348498566228777645737971159215339308616826801149727367740077935108943783127386255596725606017706758324027999477423309133733606590816305277259020153530773971026990702613275137101137772775648228440023466025784194064525290276533374954692843628642124321931005339041403847812543371882226025098024222659415150189579029789279976195944248159127746385148636377125837609612751092310618942656288714044479983281743702734964534224292390912447556661083654423589370465345434073359161213994327472708207227830006673432850688420117807460507577376978689722070977253493236729739302107232633023460740034896478228241991536094023418277301204123707233828961325191474442429718479660990324499597645379557720243561168131095694236586079326764149949497336889802549765507235740174479858117924246598810119609489445040793948611785809605414539308199299237835428335432801211690508925204033531117736726853464955795373420440403762116156081222538085534823821337710737671188786617532643917137311606357614982180615725163380996082921016185395616132964519664154488473218839811397045074359110789387906526705247942308342045403272813157056491175703586374887080840260469335143901324561279098058077938966844896205928454028462415914072098032095258556995186649959356454352850294147203974055961645998559142163028585951221973193306941996786096055500038392170745319323490251698667411691808204037389775268954292655785558707087049794806365194274460540259882548669860173739953035248203039548003309141981926854947393118101336536902199448259065298036953816027899500702472895064313102146124572171626055666359685465885025028938611272153893637907731712410723170666738073450763793263373184821967029203217602626017586370809717983900989650561551765206396337924317892273583951637168334055268369128106824475473735763053193474349277418673525383534869803618113233122694055573044331842136773114971621024822847202491070090348341347823043576407888268126350601974280087458828415527604909236590885967292806849186788300976017209223310757274470896585730719454196567784144837746308682749600848614822150658771632706595599472431722238078741534590664227860853479175281637434636675425045092573917061976335616110008168227545925296894185408612957152949453985401481867722107812694748604151634973119584947123830520033130631817592420331230076286166833750898897179394197457408714132096368345806770404221021591790527191469525564187277942553510543610530770515869773610377709838382702828190026969482522854174665770271573779094773586934020747330732880694720451197492805012372064693421544263954881907875713421092333616486931985732929827600347686789357357665124065780685448525379382052525411577178458814551461780537968517717920621013521206607601233492226933761087823611073653769284372437418877283522654236595759895503414599022779521141706428041584630489863817605450821577438050895172549947462047354255701175631876595185315594186773057802378003725554649810061668867879800790970347250684480106542834859513935593159142265099081232158297294876188283102329321604594993445218736468410099214382574823290523878049070886962435385092208084937363840694653764179115063723015082619797665122224930436677460584813086721362465642484977685483340491109667266970594088749926698731225701110881354895356681916441336066352902863266320566672910474852530928447674371136274437954352476754525426989311833645563003788092484705817962214735880489412000220311409830450525629999204887045198581237034393120937436254083429832150141396433347612017336160497673798394369509273693641830090035930846378328150962204520112698039386216362851635664635937548334944772318157519061636351531587874001110009851628212551623234834787905135682767538083653656900610215162537337902139074620123123794527651437926441994034370832653571845626757097722918470815132411169195292547621701443888346216736468625785844515149666895237720270207686101901715453372912426590654915971885514136069610599872828654470559800803682061560988584990764338541146150262789242191484789386592833641607933674270598822748960161763060745239110790649067416765820513359398950108342319392213046559733064076675988864540550549424837404114099029503312759793788016997312914121589863878444246596962024300815687974253520647585277101226338328049265297001559369804670444960154638277307694826621753680717143966987633153267853209654721887875620641620831248779971426782929039660526975874705896307821756625251779614792849922848565228011850735795263200843993156031283087895807442405601691454245807462856672037497784279456073882060171368157411306333975755275452859613885683031380891519609699411245102427904197075802542963453255738113587867122350603929227473435032292494316976414420348047840371454805911438222142533332308526049471133094287871929134299611158942542190458242368057244623981171979438447680187165322229888072969598145193522587699926088629352788364939803796933748888675881302841918518462428312202112874883085073262293975046294886155451796986645211479321587519991498987250216047444240415780050758222251732757371524652185442702046444501775701753712021365533394092417355033603588446767317307218055358850751705005937067829269779434566757923997001362774230017327005596383033974841516621287725969999184234822566809993637895190104850376751705049893138383284838792596988702792787240891432208505493594110290874966842999725725360767743006001781766964168718969740563455440600732883801266965428337877914552710852198279371220813954026374232495878348701952030513862459843855190957757983469452543002857516923330028212436618555385487392506658978148893239931916590659565772348317991872968950229178445547641509137748647225658714814168394196887278514506026555295537788914819291553736040510143696879479073585997767435376631767151439532706515828775699059704056851437946940249444829141556429247930465769638073549832941613575618965241231485860601798294320516928394695167892316410319909171064168261696680739446970476566844408468266800434231851761820194493732640315688027859179349222392371491678536995066204398963698274538793350479565200620619865707231536968278189491611484209001832220543315766537402931050460977370391794330364126459063190186256232474598598961253209846035898980873834488392747953991686321468537506632996095616194369977894128306451034151300461023226072969265855558899996960417439015232903136465072994895077799961072547526447808228036316505325986365558661671403455357361585166341091956586660099633608277092993583178877434361134434521440187039106958835288679324202944512877866335686818582667510203318830550735991973893798573294750766169145072014416235237190559419719888483020277063211279530758968758422420186001712030191078136892725348514055660185696716939613558410461535255318017237929902727174755304414485772143266328712672892981329819049215608477740268343158241155423339906644827010924031417512599776299456195472594152318395782666426743394176857296967180407736085141685941109112458103299955559079924768211710819215956961516647801880215933762193641211760472257695946746298727668665010671866037581436751196861173616663569038675464746150714517498575946193650955819775677057182590433567454656992300437788619108676568073961817852798497879791083280746068957466460392300673983861100494695990057746101350912555960510473334604583180945922843035018607895881953544356475058792820254334247653694888625455770464783660716699256131269073769347986495521211493377671405161805579745357669698660388754968883722084448186170318293896657219876829170021577597315138788724330857849510581864982827137064136597069389848345329318921039894970171123139586642812953885287067470253089164644677433494431543051227736168042851189643576057806612565968717579095830812346380612874192939909839830388881164801540684993498352729528610016068307163386811715779678728955939186416419583449311586626621213622009721330903145559962696982883646547109325811645178278762018936182669492835858004226879257727943385612582700636583712042791701913669393799788633373198685114297998603299602000588122240328520255200246838057044069057239973006219020979838722970112589987835476404947820470705899296327412232334039175002559340182360928185213572188818937707783828796770753695314112348031052029706960164801169747174602893806161409455116663709651999878694837356970132503610886923249761539574969139837350174704990429997978571698083277862448404013429033354557178083501047691745993482923808564920148023604094309414505133847842048725449078112979589959283637204418465324916644564019374861480226319191300027825151463406910363239671845965237723761946616720055436230902911848696093283480507161476162205183794771998773831248392007992726947648141590297593200868874234853146852576950918409461830415589512006845276699190950155195205445551618687693509824241943828490890158465908226691736199039352700531374707818187077711370521416258848530618254515320040825059668016172183571932099132506520988537885032649057873650792829850450797325197864000677550376611946235762203431741757331621841993844955329204369116342674926182173343882991096409674382378519842561317852433400627998120749838784044168339260958874253235414432912732312014477450242909983517586318937120070143744374404603213414357056821472757976212205905596315777519912850452339294335241477590849732806204011124476593034307744421566105017792486568252233206362032950551273684852139470857432841052029341558904250336094503808920843681517649518601556055142026977097553219709236206645761921356152320511560826883037966713243339053745790690362924313541089275540091058266870133399850484696492955867557107034588408819097215195899374751065155630625907912733741350253765206732625778097008887427930645237499301724315563001502431186805225769721032537219203677008200163561903607355903440342335755268382378427919066357625641952250717970087322093053721230134757461234474214099780663663595895557160104563335449951001293666343210804889709873377559313760760473961144551298817341865824161554317020448409417210339736203604123289529329647235349276709426878475236177630994389252193751445455216493433557756132545445649612048012506865384536156466269010569164430044100903031425325707522638866280749974027321498356644653486903019855812691477722878494594225530351628681794948126208153320196886435289822745731260222460404240720233092176704729136652189193772329833949293657778803281502605897936809999016627871588031746016174566301647620194479622265826623551451912054089785981023219934682440517694454688237018721437084638856685544424173707686788251959493724672133411356097258358473625163499229893172476219873698650767471122833559153258061482144218529713215180665253383159034990008832996211548160084270848099449896507385822871318808974501429125664212470721418565464895347229357284965557014423195023697763438925887857883579939511473399653000298912825654137622635064378583074391257799714556362434101535784052517905237408652844551717562050028325720350638307884981731832040598776767981344442410193434806786668445439271996021455417797746526930955641713832941777757926715738141403457903166083324486050826784395535292322972839912668499673654981336424550798178900561197076383077799240369422389738716397852261194618182119466724085422626037482423775348671694996924430555340425928763788451759892043209331361403953340149291672914694094555706261355395810284797538299605120106665831614668074338902353626018356424728746353364622211322667623031718664479246455747241859117272172635104874948830193298158714259644512740995795880418494011719336943953986088003092982998214573962014953275779706525979582466800563158216219891084787452458716028590541331142919484244304567791166293247513694756554881748320238741680677043913225957069310523371015054245260446309697807221471076586867159786754772895519810908021350511879439501219273356619587368574040245047794458870950684101047370577885247785179056142054333807916349335808540557088163723505507936956423726260074902840202305782538276318343502211456220610441647668312394283089222767064878832756742362405497654305653606520761660044493222759198928177633064854147009098434795962661530947651252969566437771452600515758305982999615398904094680284523770151082426331178485624055750457115432432295563502474334757682297799431205463888439914027288621585754950858944720591585211987940310606064492154111767010333455809211264647022952107600918026334311389867907147694222522257002945144174169698192659045371048853967778934202890727951408055852149803787595335817096996536451202970780007122851409758803882048052656664005725791044066916347343443881548811101006614658073960642119214796808042452975030456350582829944254343366859944829977270059694716701771715316567608253337177669102027819254927589679477381857589506881213728283980713578684973449734573860984898720314534481798074021786822725942327053997458855334923606469596439094054608316008432020838443360169066692070577196517540230059174835983664375187007065209051635977415502900962464808399512132907921847948810923715537976213297405931015327272569558414034049326596253102625275352620237288316851704354924514460636737555652539466858770672071118160645506485019057703719971153143034655229781523884973057542516225642593693088264100957561579647601363024654513922142892818565997757069272112297252432626159328621385558315626356168509295964567009950237672169574666949471395253628157262101194046545132631985532697830004633944242938089646680147309153627879101485825438507532522776405735220888789344803038779193704640663143553850260481665928575975239198234265484402407966434814400626270136404171621748472753022059141558140566407735004531208048786762583333533714016851522945231382231508678146755021501764202880142592432690838460216376927169278498581232519221440959080940122853220587338671102805537250976230374470392347257427799071418152047579082657443114629019754929806701371439170129459424851019280370701176986477055860486252305633388222706921001303271721448902295142740139264848204976188215429325471599595848520339693107639019593603590795528102377029576028884396504803288371099566973470258143364602948630800337768095225670468090427742639426559911606799855729834939561654268505638302897510593088554339194396677929294086029491795484145936203371017241007164339048579368523504726162433024805944905167838729092288190166138893822152125691109532829097074411735032966976854778822137894383439983408106096951805471932469057590783518677450226053455854804332631573649405385005343747835545793690660602672852347374218818905049522754383864364319921854282136694032398503935283043562881257108736611829567793363080515299042364616265108111046228232939484292029023761625481380133347465602984964058364427523140697631444501484980671923601492447264903410145455159467040243868588838212305878588799920174768746995204271766041548038724755711124478016207631004126831831393572947866072500996477129442371147703607458745386052697106187848024242067369650122105884456141999294471793645296061368610833759547121143593640732854483389536528060244744236087186021199066889510397010583038074272892765420123723549924838245057491031893778093484885127202716119609912057775674219211604920649652943360369647993496684030293267503671541244773226006701586830296771034900819194675932943340463594299507325606742331082546845532877920018397045565701659708904754940476476119769641381779331693167599397593909058109567036799446070765259609218834856774790325214874029588677360313920620283727934029382159073117764934911896653727031501248995453541475207183219543486895750158597306967557224375916062925456231349804425571590624673055121393460766646535092170290932850551324731105320092243484989707007471143245436484831536355161766208831440298946865783889059399758570956966363509324725489811770268234619383434712771078517970258371843224786173361586546455702118794388798596142615140808599304093282879597346384065710892076706409743620981298689629050679800918856533804727913824554400367267880345960888806187666560280055650198865174069087476575040268309991897111776954799732367559114377837642135406413043515819187304091969471728088265458607868812660163247934267478077002478168975319779890109753140822949472319989144746896439035644799411489291035108894557099110920114596433869805646045004494225380977141754928696041778600509203567214444451519056122321057340709641371972927665345263310026829880230769375406930266432997248156797356435622759110294964499726713569737630098319572576606734672051660575228158225398243029238008038815415940333554567848968575797628458460147792376504788996719397950598073990776523646341123169872481866619094442516229303622120670728028311210369890021841046523167153707959005299149093857291364408868276632117477846698744816988727234869658195474604122736059276441590324652991764820699003826688876419434299068987503755717556754005559722211634923266237523978771073435069953222265352555215582411692433049668720988696795851062819915378251346774267760097530715764884327108335177625570317890617001175591855115459904402159732105696005892188736414241523397852851523927894795854597932308905311263949910818218244101617035690167045990865459692892218307101465370441741098739113082917781751190177985080279062379361708330323633088430915570562828917685372383045633486768507253981883583170528033970264657315538169655014528936020521241108880541101815791542475692359226188958038152838261006788365759707233622356008451417401000725300671425637543684901291182959059802064009450612945503027488576099485473245736956217716946571052102355401778422930399927616270951924336354997508191624983441645975908368140275855389646577616666008525132145278166596497634529009586054411242475848525123048136074045645681935661510568618794629744443665852496365437380790027052690385975498366039674712962148655850798800617115224883644056443570497454622531632676400119712484297804604588566340116220189069479402084322712023101746767173565993969894183604989786938645000175285347253176338817248624351655439020222328573956334392288550460177382589327869272047956670541916868624155036363340255409157790303828720355318714454241275839386219454568830229426847638496542877651292680162775886781498580270650212400678275239590127440931802479423667487617000264686262029949975847920303846789494080501571500727228020379109214242372167523193540344493277493336739909619816416873686261234382002638241203006060074539157735084785132316670543004196764931518352334028146214544995799711771097295953558102737573236150924628488808832880791165486597527324670305928915983511153955160654302802218511998729422598974837586077934084849406059331826898908157540440486038766944656710952598944019614174781017915550127435737625921943424385235969307368328662446025086855140399713707481100611603405030319091055336162114784535780505545125892041947513856770046797912647207380567928992640648968671227561924073858342779101853927677604516779499329829218962055481511905175271604524154715032968051545659316930391916078634203678741381954610238737582043444768492747209645691359816954785339920373871134656111118428059477595035899826246879381980414464454814745955754271969117874458414055966617213742726593330329055546996744892038495306207971023412574443248973415643335708524062617838469320771084673890606913282194362519234862934617178033990367469659525679256507993478438301202597283078084112894566938124379210126999590089004217686274327493579759239837314362758952357985733150746397133906423239157421903472361515042804042860980748979934118836262960447411395335582346493625606152510735030605780906427888344316630574222803609320630179132193074851613976478344958801590432182238856041937479299009148636077819677474276181496001034012038189438243618862565815273814589389823018735250324582329916204754797302610984286087264877595366200521900689710052575635492345951946296100428082333866048492009603051219308821261226791202952864423034404249011187157167319862736865499072700316507593134607198408321611082782120300883376062193822043849869986916222016080974472387501768909339522187317642868627743564831107286991178019307026172157523629888523924470575367484915235835783708234286126059983673538743162319297458285578061833238150561048108301519317544764322631186600754079437085099616370790518737192397547368312859267386245221696544240229380863743784909783941872612184557238103166478571865696964070419107008790429702310256413376003202505384393141082036680879943561362826746811377399257832775971135128230346030391341046536772220788286203208317898250811953069320563467589876033008139228189235800578805405323307257545992880191828408687197068380875991038987474771044481058035151740529671369673864011087280006428365911075310968805682167067557787570027513892162826748392335542921124046799375843664823251444669580541432143988117554370619809944788664730513955098007045116772001442215773735790942671300592441086380031613726381014926080522748416399468589763268819533507374425243968247766644494453062283318891970614012776562618474453284521583280093293228701963306014791510249012330732643117655699406286304966814888765104703371258451604166627154835286415329219138254932263278498403165930529901597980123957088502901973528014570571951835410056002971863429813947213733714058108643210605850951092208854851291137788643517166578612539880835842582185076608169505839266907672005878284940040163496325463651474158101141022058288865285338556247618392409535217040438455771330477455496644155923460976490262498266741769586757975746808402810701320684537772466196316218456529001853492375900471816590391378095159809434544716699500112410495069606171692695021755794014324329367185316704703018294903072322882597372583773482376987646218889808618655708447790223185882324056533665720641403711299217872300831135029211493990352972388241015096235202159434528160401058687886320483134157402703260204860077038826705448945844808471814926771191309381161573356247041281770012473591137297511536066394309541564229955659753700331142140765745468442331568864177916280136358903952896191776010349449533319971308629528362442958576876999898868315891752523223423687971324786457881123259166719922352216927222825522686402650510587348112327604424789527010331249761958141269288746388341728744129608767618990788900039143647154734963239591565749686525387965225835138807322959518108398139435480072621643019330312945953510932519383849304107521327987053939748152128689963055135063634291373034975993951980962255261172226396230207527712954988332616418963948640050349882302877581481029301994192791224511842324297952646626552587087301604404845533550603723559032820576878508286578474626977032890047958857560278508107343260924566940372501844209079511935200631535923995551367887474323547447365664774908050463834459956323529508849486772324722787928716841051098688793120364872117259125147734710700631063531167315032712496528646620163232744434210374694549788907913087945577042103808046908139784648763605232859575055208893322527394633051584471107213580337001413026799322887151872572788509588821939300349538949203517204098688358657651298326123989358261604525673569536458529391186157398930753428709258475729179847445487893986448033336591299162987521285231469067605655049360913691650730652057681934598780148274864846798204953523161460173902336659821682736347920956672346662860103617200452711686662576385986897683145369229971222801114620624617278215156299715385798607203213196110582736209596501176127218269741837121406266566636886433967147398194969715994009946949151672854276623042971738842180354810377330276119490856387810023348328475814932373310304736793094554829357205290841549414287177930508482527995230084821891951591335937430112900453927600429005035991893992952654742667889746421983247182326432478903716375039982504407337383884348472028041799189719899448609054926898305711389115238876766335623560849371018998777183016878873487339075258237713842218917369019605687596755602109908333025788670764499345760001527785072960878213891378369713012816987846891645400714125794406690903397769297008173527102294072479891451761883693546668246332940856699160840097290384410188344518442773146104111576134728997423154596526902572067196004590536288564206131012771544596784547104949236553003272524647112489477595842861084433123975417186521361100434301131202731813061441660012849183789441800187027356770285676419097394468616676081808542851437600263858742560535489259118568750700389984515214900590613366595801833446551427513817748023047747859442970426520496477338966125635910587342219990473590070961172358616210141331487859774660723713956116211195033704337361077590197436047532440193041312948870656467655126296067141700535650831741485124245430808489380075226742889358608797758046408707961514724235907227028929781275171700890807816048414867795856763113374592056869648055838330709398126674462834588678493897033726408292862025680291018964800250376638573795555761796921926410506156958999644444797486827279878865170486509911657300949240792993769875274499804954737269022818957965929898077511374534927848718498944460030099189837007592706316123851730142219714460629084811436287340237077804801038550436783025633316556743452198994019747226847640490427162219961137155901137327835571971289840609853073659703827684484084679256993879509516790935769421800861283055347617407047581731552833141796878208095859972462715371374608265228189282561187807416407193792063073534626899523651177492617352670972560019298258212377564421866197056470150155200335354743704809087677774463348595028708237058783204520043941974049605361450043415302801870398161286809556395522309056192830481875090519515173876077801624965859873260209400503796209187813652174993117426531007886733734439977121292386880320822246736782154077173465960814436607801230154163865873727853171628576082338144847081236822210850682899846283669288949069730519250667397539334302559442705628546483677122464544176687196233680168260562891740985673000976282789881245520254169722576306732198639189659293790034126625183378307004840797625508805969813591074281971538018184337417520456591993694983594382609309700408172029370388614363649472336372850995752389598958042800478446104158837066736591951785874953481609765379679844890149779121591057892963329933730651914324206646370436521199559646995037157843605432617108750684268906493944584692972641747987410375431769473000186485634355538340790181321531876187905727453181371696590195982064500154135252951405951914212514554020411708156303054272070017405128611304331308255677664791421360692690192872237658980881400439272830182530318725440372482175501348528586985030599853145189300062779314678762863186407055077134767169171223391393278571128593513394815197726281595685717743644607144198428224867782019542415674769356642122755904177472039997291477349489185413514186138542601622104922709075195132741423720549128872428900791439872580317656602405929532804986518995904161114248363912000561146771328956379853010520712820701306176399856169552995600011848318310713706825870603409292314092884989645243441648836627805595985231900291914786636252596202498213059275482294446774702602786492909564274745438372195773296040376751041319260568533578243842855651291708182369687268365684367870147286294818441926644783642443503865234436590397454816474137692288864336072339548105398439460467051422666808963215149602428202060831010831139344412199047754625029246020585198302347617797835206993589537256490868362722043637390952961093841367297250029109509647550863049181793547720700331580008048044920730401868893465591109446799250790979798223639776869075018359752675956115402086722532264469235583781136586415989201557569211336382534353726779478025615008018777451840277992542707955982996232489964987651002707955667151986172725747571175083975211292199929352458789147564617232074169307636912276199228563361015938368668683109169207686951974609959558653406696995592281793754835623025354511771575491469086971311348324527364664725386310747137418269457173774108318868094640765828871132105154518398053308123428575999566640318849917425892289712574985637176045173467667167434047540093921849084222020052661859352928475391633142076648541784858196888390010496300209817525926787533357780855591807337442120780611921157707180767375339882098807981452693311632486131391395024586329598632556431748403637060975059600050677949412075975693262738123827574689048341216340237218260035885970724820148580373190119434675015432513728386969620899131891062110642572304022074956643687488710888690548668870983466474455112962928001189378635565714606327170471254762647110215556429897401620522196539623504999838419188000838989486380067752196922230617560078126611591436787396347752468786841076643593291331113169409540592251562251372918693063670871945520347348311013467641366194155328098612530066005177151435309845825769018234197242410723230019253502506515904314473098295998571997959062728000400545057094159852618991583212358387535586575536267558554153135164394425910481071440572847470979929335650034257572013075787857340861625832410893482903089117356444337705939031876339297944613625007111177085266327075265073199257932845577957644512804972877317484777521404225303398014004468873382820224369519848157011794947849944437871940229923446378802336301766896745051206228494350002991748215033704489481566264396307776243843537021742862588743178063743124559221151564219201472720335355058919020216326928124215801254979383730013656464966065568153727226857239719923367797034164920808014056355924979502578591184261711657570205091956421650107834826828873812423188701602597005565695410967079631754401382964335985422793986804049983757749715588798321287682691048490246873498607775420690586935021556107269446215843264604362710349174854286621254729913414575742967514257734070635016683961804862943630452243043902054690080451192743870265230530007338299009441730992089711119668017746518073445611179333343202380470995599874978499778866405347414196933669692572988382504869168390468509734028441113798275672333085639569422135551287017078650466056224448966014951822086656778004824234353039348177466011847511587872590751340536564031275039102038756694785273342432369300507242754476441329630327473356263902392787965430335997954207656551386254752085804699449524789267188019477425275685947219712476176926511968264444295805503452045637544483140610714420014597645210641087326528704423923704418326270557473552493608266038631557240454803821174390075578406908776785263222963412645173582108903515834385451425166671456465279891159759942579935136094466835997417312199468281743103333741821199437168422797455929372342981379756906586962355920984823424144789890002818724749944602692105440373993067149061063697168954505576896877820897050227343176543244310657562750603950210486578150281978810602901285350046448743193017202329537489305291314373099458781600699897690879687257310009959469756848299288544429297828179101143872921850022862783576298514292050061746732275760501921203136857497384191516753261677700288263255224142867676328520237373960322584635814749372128670369916129077516131893748422585221910935946359156592825525769993930704760405822894228431963020914059461153994659135780214949963217795916147396153671906875024019668393161734805993748545000013374853770202792128599450916368620515624639802121288150040727599262238858358190687731932510904468344417627880396003419995828066609072160401193290322439105183655920366732500441082714557550786639116400606005190956828960843222321821714429638661567998182358935899188112017993814367617144557311020053319343707994463615060604431237168084241226670402700617699711507151019960041820201588514319694312074730239403467407308512422942522780648619315144005591132675413819376325905026056764314420695442949717859218217843779787610309035838412562178473130767105668511990373504617377370544565855583863740991327067763496683703031249557666037439766861786157573462150542663058564457202620213305450658050027582995113899662315624484937669750436867773483245154850332358514060848127404763493205567780526077664352455501031582349477193631407776215809374806255558869176525835710753673839517374520153861203542274006514025698607498094764322860899094563362649930742586170670910618832184448861107052055870860293207033563921128046635048684146466125762082317184529528170298941093203974540233533674445070621540314117163185210382927765952836599002374399056782147954130700293153418022964426374998957902692537914965593359158822035651995785837393367023549943256860949822793547340503942203062267366569795184692693927725119352003324829731287961106630277335751703494599642944914220985585758778483242436492522149194491754879824268502427889730170002937551349221361498503906451221420527501262785679814167684619540494117525619918036714372579946993062265263323494289984621271327734340409989631191458977140517825303058665075653838451678970444463765947661985785505920045774452209030818320355212104714213154765499391537692960017853316458495396756868004344821800225032998828169207080693804509001774984184633999328303700269448145887427251078343509530493500654247660746415776315525993657336224330709572781553426453571461761568740602057065542310053612639951751816245187205610145022308317494389305093472314115288996258405856570472697879739822002543798335055694406661592659909282957934566798779258003534087507731353388345658225891148771730284257292266101303497829666322396182737834222810900550658326322087105476876239067649694371464802180258117764047498302084047316433316866934324084003226295025083626381119435444781510502420449824848624987817915555095349731861699938392151043113572148789578281209145974807516160384156589762511888066780257336024901892790165017957847460464596242964302787915243867411456897578341821381695017210562000690326491395029869095530080272507554928421813787240233376109411851855001351700700031467532067608087456577626306867028368299280973620707773722806759192729151802950169496482780159416170684171469646846027272748347739672054670642543396677860582426219961499153467321021439579308479700471249116276073335289568180916295771254181805953572529331190698264542584078403942155015079263952038684425917864926989236247451935705689621611058153857922317593386388161991306179876935128800421382491928938790818204947408204993530954567781031808522638062441720130718016598329928049340020913139316138773635509914378154736620411195161204435331376716534424901328130609831713198821143380665334343731800874419468010380080062369114603197444171791226705149632320992932541739330025360486063790340053545947283655291815393404428459278027317622990103950916344225032138795726862126306790094614906535852247231880463950772719782815921072260730160843385073647801149351726450177925199988955302596958709573416050123248224806747824996517237126502102607345834611646329275096899388883915349146150733960791447774510935174997500897430079996755797943644072421215768343286325126304998384324633385510455191000247803800379049875041992612793507687095887023978157739872351508995996479304122106760621824326062451843819263111668673259812359183768785701307930993773976783099213553781452952674550450192441810069685626475698208780209472793608017148776726943733897260327676440011252385797716426500252324620585226199388058305945352475770078573560143018271447459648984060570010728945808951159545400702578028202528044022247427406142469422475799346007994322540930067896060697465568603047303406626074082858876469872549319978687156929511529635831193016644327727726997012473503885182370915373625974459816324648942052730645016006356201824160097445284106264920092815998289181461322540702604649351049833602541318942884841444439253995754847260870765710999207643490828578223619849253100740337522753569093865762686380647516711080391933942335688670073596438797181316720599548628418849957813689796695323735665527135828492041517323173191139225122401359352104486086386673106577749614380467229257984122824318672161788361802814174342348665640495228583717323490854405204199178325141072995076170551799160563806123868074277531361078048005112435568637157215717818408668369517296315040912675595994005818225129942359605040561195170121615349079306048649242954275514433979883898458213565482835880300316658065795835136538648028079195686813402732365273120608883554943409878423134786103400250498655694083223922695303636490243974720650349521179234422486574468259577079317842278153719080102304897600794586132765002827894652326459022479814319515819043532616406128567791015389621479707423677545644495781283179792029617022293555118376664811151944044024657550177350558737141049054210027284450796511720324758550956275644066803929444097393613614637707409856062792111776601454821165153377422439351063829035130426514200375704781833930371936364477793162018017402622516760824266076111146058691759184659049816593619026115797715283396455777305086455994599415322083613486807575270187245293260705242779682089838465342898782567648368674943671379104058123463868271318541237061267038209385359318859839792864930343951209001479157090176473843588929781232581688478915043853393292437606996880362338816643953176525703373755946086801822564054892691284262687965489252479386543122457377417416353542853382037106149431932954572250821609295844288870615265929455437613123619699133477904109017343577775560169655045968042168544037617496684460434460953950638813909079153944309124625395619448104172919052468641593679318256033290501417058966385634580380674250125548792759154313757270223187175539717356128898917291435543126451331289144182249330846421620834781875703967287569354723062277043842138266878657274649901798359716193730418744031405529022484841749648467499951109614977760202517288400785671410234067857800956671754569828476389083567922183646672016437121680593380198855638912398488295592938166759751021733491287859870989065638192186563714212470979470829977356084442162625170706465373959601056144637325701279712711031777722909308998397191503251971078366939488137037926726153405106507469710902124439837516200180186023809298490128766076506539226960883432809309667978747998210849177711372161955779276980736818758143994222257679739841768850431049665719471912128441623052786424271248340048521433386405171580532909295381108663995070722827676422475348757908808539319606882798400722045439918714672141393654770280657349372291066881246685741494756248233605547988322140518131840332743918810226211441577981827768584033506147658710453038812397925353221899506577597107688875169093352978667115918459577148775446132826454034448100047281911330471639867009105780048613687324143038864386738912397244764238053334583834790704613868616183055637008450740438091183006413305113636077604784787493395302924880400785134346658882443141757994036016748130837079063073992861848658674961419227310764247121084580245054060863649171894197329436812585749419773690609249622729678189608862767146865204684314128496357562869925619641207046282285682266954812824777496387545640651910943702701894345167516833331248434129054154943395990823202255467234473156815342321934197436287729228906707342490656968179275265403951933280930935584731655427474113414609194153244238547628290987372833141903556523173416705602885977556663310959969992977471810774655813075861711308142974152368003695542124821222805746779992948315948793476307071621572704211170853746325959627013639633197181413417075091658922391097865080329344303300442187013207702875865659595675710173879496422229035770715985778434018234022708075562844720902478964529713024734677514962670054092941949267428217088786948748551094960806403028940582021733374299114867756773795562953276396704399616442218887024129384843250317105814444912057098519256496845069684460137135698765474567043195614856033420099146884153193951407023226342965757503615572234762595675396235134257618280644879037347587360608636387753556664187237196865514789185015850148353984011685807434784023355322262995198537421367393836511571717523299968508734572227062626110113334987074919702048774231753172771897000888987217747947463705199324208090139711231394540711372712088963754695304619277443886207565829695027649091768406960065282949335154485069052307199180598789126646295325257307922243147786985024865153308920197516339335042031260151072045358946021995178191222804863602647996394743529785294593674847545738258814855037109570725475395841925707129760975794253284080883693487193698709275399227133298229772785743488469519207457662052289289376010882677230527406273286291303356430341135458744163932270645538743461580993343160080375107341298678112279584385462497691437398115433450430577263143690961211730388484715016084723009119972024507126281490439065619193055096155293198117591243102492154920248370325817843104191620925049046752113139242570679167975169273795505170909515483006547264939463940784816392632322808503720156396655949288364994057227133301783834891600570842433780830392133695955241349958349663929874291783351633497409604640020211567821303502717709656377488563545606796187054182075682687131364616800213622204034326968539466288696132275653673102843378603435514119584024282877408449066983523722846478069963418257782090434736328978244800038676732596835165536135688443087120922981807110637990667477324443889492141017669599702787803983876437796269764798332640529081592908006706967683297723465880759198712238296041803311425512625543517267673373060813471749192111304069731525526589412921056936080042100760239497419620896019767449502684291158745421514284011132325666214910823652160620312978352853385848053500347848662893764804035201915386631832879099313003882249652748421024530824259759665075237549986642553908777982277277607448663557067594765411979558794251721744738062343834750396010898320773046598318756493785283415173148854891169693863144141525318882316375231504903982720729943430169611098731693177030886253849470897273935174702465335677536749436754147591904045892940422188424894871192832865472005281288539851225515223069619583853318648070500217972247143246042030021444498135138438720520908038940807085048784910992330208135154757919831728055441093324490219670690079058682226296470347573620445759439135058747123351104245699223103586759955553788541147637214433369552303293267892015310098804513139114262622222158250741775352781696623823609136326078048097733019383732274398515324321585694774765103278858281293009886879159637678029485760020742825995802115357054305539780370523706261506735275663778242738819864563665774893706511927673893596339858516986334210002775573215409309522516584282349012874773246737943563259849447532964284527693633377988506211178721418426482961469903751583691428857752050304745138876861010859449467667449344781115889249982976960308197233311719565560905133190058906177084238775080703596442541268415939618423167224904950339434105583524519780773003214613617574608878714934687565653906463857989132853783484902943522702475539901205578687149586702234110024093078833424449567900121785493424102174680182533874863872416704363317902612609707964843622526191658936559241297974032663903017086674807678321543156238408171653565308443166579309346445499128841514447899103748964810872995136698413829466760793388182617046312025496737257725541004065574225183128191447542086461178839206506739161504889252994764704995785495624659948444265698296640348546483593624334145864628747322868338877731469427824758382588014780863961532972687513021429965738459481559866131094359858101176271280864001002616753101881030805750007825532481777989250205547953002888166222929436259896559117980181662231565415944669868520469836208563104416811411132262961084746301193343057621390233501751525686828528713868950758494489001607310978520108210823315196345430766449512670385710532506125208725916040738790884828870531196179135081031795885056142761627409564346696941117713458759810075783613098348121907297929799582905136626884885197183110678196046728637989105983213931758743251677749774198771345442934186065309647299895161255571554665070301065883906813391227241932291253093729048139173024890993532374357625704122605359910188307810885050616781677613717064404758310520615070600389315722443873772132810092866399129537235346769087442452509539840169379248101331724112631135652223296718010993132865430768127773949816017773832205322290852748359109674034888139893483837485596517029874780271918021455213479083408259823032475607456972878354135819585687127632248664182491026935228524340461964192362711430677921375036936428916157932050575280243869463027561263125269505777740011391993319556367768567837231121689512337626763916280892682934311667238079114008603006542761444764856495361831626509408062799258059247843117109828178821777375335447024214185859395576941995256122099684634530296262073861030837610858451831397397425115850472905232943721640999650875354150959423218955779943254666103927160276606653866080832797579374588802320039305769405338995614405898889407226494408357055466055366695961996645450328930910227190682192502542603761605988380091655840702453154398654196012941856117271640176228666244065199235959696035337045167485077039827554049711958838683651850788344046518726997587293839471140817693502919722915432953130615175465375547186205777226723402612052332786723780769261822390719885491109576731866462211248475475017021571824065214251873606492844478056931713226684090129611839696397071693983674818440949156444922693881090694691775623414438276537225017271213667741674475503175899702015843716869864399119361151431383020473395552488217472985668653301821795380020285563410113728976396939299345908098001775481122239829470488843572481401822739494298363691770715276540426330381900330816344365271394368758698733741919674719976591829228221407188649092199209133721511317034510989876431118939069978840235239811315484316596851598804144582458166395396051911536441590566581096828738838912935134550406417162190667460380086263178115217998338613154716699476454540631642922977066954386145480648770426266354535024195671792677086120153243699121759465814030741321875726746892153133338711708891275197020448371602672196062443584698120084181197725053965026797120674311338646445905765835860531777211139413391340496375370113166234516646024289601813779270834263486774415853148636226075409236680454687198681357125604877527754236554464951351555029987554649110844331456539777824242136320681598359840166124069146798600146849049911996118546906025314444143736324444907380858729207116494019752985317197306270615941256719446050279877673490918502368037028261320377512310663565113625160414564798059248556689693629600329147628016381671641741415265524707804615326028247926845419299200592711967661558250989054433618128786951884097523646359505582913020961343824690782845795173071193406665479552272043572617633320694431912509467683836708162105816976575983798772668599545303971098929818406385940847710166867767209152560511138709197637582548064008487088972124405756780390079360012535266488195794909827871850065989799153758621505698914581553891380104968682274398771816269723939167802429120418101887901170676454892722073192588011520988984946608972603714633449308558144236973638533305716558613659070564093379627376461340004174434158979961511007845568564011828853643563372879463651519740797306010940181984975527521592301080497214909230861783677163088594720188727427601979394264465849374396287657356964437285525699290084081186660075272350524211531114613779283860964212599010578005322443668860913236718590705942732614066489132771907593808012352716650719100109531927383327500387674890640858755600365263418214999068553931602803033050497922775178992602527023976747895369884967757614624192635025940588252307081896963820116840596344084199909360778852881688134962263905101453492567572232919330667698609681399068038389690007841167770550397351885875045439746824616549679691992394314265518856862796367752975691687219979817134440923610185698283823442668381133159328571735128142386505097019852857047283305510851358138347801408917822968507706022236492950654276212252765479032765636590761978503162457026487086103639329818756757628910097001867070897806726964228592909168349077147452031961885377071266528947192224150663238077285852921466569617798791488438630108242675596029602238198517808596244192686466023899114924080148587142787858492795654671480732070782516320579778965249662294788578584899948241145925940256145326992184351001116565174516440118438059953714682099865508658590311244527382183624403479309369877115477900670280009979144623699058387414138896493172783498959057423778570047628146378222419630564199084482797311289065704384428216104310199957910453600795636836786788091113436447829724482532274646621841109355964034783359624108420099982702091214156817107280523170150133579652271178179375548705547912674449776042651906783141264630930119962704811409923526641033904927592813161345607401961818955273217277687308777645386323570972604999910284284393652036421617034180839276647233396755624288740321698900679845377331717451257362691756314653483622188875359336074153932937868228062107697527873776898976261555737941465646556786633912763199320943988594473460059652870824916072483733452691317970641145220921105476111934336737675850360204531159219194178738275534714739067623580481849687530337111478443200130002148220455370929846402356986387597879077897021329414948600624394272856569745209716102757615137108888585109257796925711277744630385167334992862469568994227553137717096960442617363850025002140088005887905898159580431778388313083456716472816063367493195158393427539838769203749438544310237925338231044051629133715073263765282725576713627603342597519130000251766631769004239579837097535529228126970159577331992951318277230489417439158368599610727037072524829598015058991357929373723208066020202532542763142071564057939732721649299045899262490690484332278380805128924058582138729547340973007795664681646022761007072457513619393419307979316914412823756563828930325133608649505949884043396830384334214893515672954924091323753644048032837116731907669514637292922148475301948051796086651485022586567463736788225165974086219191545792025343916186654736864908306355288491572239891506356857804647830696942951525785047439062065967752197209283045815049221477503463503766358234882397983609177167159306569256581538481159558283621673067310450565999713177940155922587316559159313030680523756303815401488904091140735777049616683506098663225979777153782337444428188456237223575765472345504816773375632740814469744504080092433648130428205348185861916640040383542246020689329719649832673957798160104416188027958676013531335588464773649428625186948410782244588538089406361684040066850970217903151991037912518872927828769623876865753783977189240784547865186042786027024583338490452136101994207461482727744643907163829523953126214006283949282846689601599987167015264763389520029007369980560881141427284432165774586944564786318565905791459064063242362780858090030750080212379456647742149559947182407840363418038079149779982493823233969495793052381711176815803673452392429117194697157762167751229551638579145104410240389120687631190109757728564785888014368280111739082364451113729117233973052750155728331253660897675795848175635839205203589655110047329563591153099551255976381283215300326059873532589244806678293190540018446775901661776634003576878724788572681679137041261711096073570173636864932785926721145466099736536150693905261966282310680957599602633529196253424164048311472176973746473228239025954320213299265323803939865293374986723452027162900603647211133565462542030006421451335380019310036392605538437817781218822073682486336654757135155245557166404309016601673016964981800152711913368119431109223911737407133979153061960183139470138443185459676878599144510618524013525357914179545000208721431078573589581837917764164440250653039752160625012812015181408713193401669817239940239355380723035575500397792423562522854067746991121377885831255554554462948277180950303754897751697149071719541729476103502999597611592545464519688705784358056276961364998309419889707163647265764477736473401340058410270378705395595649116164845449961172955634655379480703936850897352770158679949845526081641529431225197926616719731559936852330904412089787594762563232915599019026155425615540411820240558302130427645851288762063698159991738548314608051319346178790925402598518343573487768700114634756215242218277101961156281529094849889316293255770885482549418537883391691074677251745897781915527318925037926677653469494623937098644237147963538909203738856349017288081286730242209849141716351898278000048418859817813376262088646050816471016491662413348020542553226851744525715688070562156462990906725865964178395666053006408361460159894191891103430814327686279774439861680639905254818922797722446724920948082688050773794366583332910984411650432105009682220571149905876155652761710479139111214006009114275034845540079929332588339242198568372605911303539847788897485874709468659707538377040689227479332082083048009849037599640385904690162917009581968216189068581223605868576912047194020327490350574421001653638918647061923768979233627020712854072422938884055285953424840899912237724040526987037136728595907677331803633422631656174677344576811350077014287750151385252888807866382126738208731545933983023384923983997915662498700514233455922451591960182403335413904562279686198648099097208744713045474385409490573944792879561764491167631884697971730936095512094992487480587544422227587219931889051768467565243054969455789408688347767648329919149436205644983767977311452809976822730472577508934764958833845158816492116658704072665567131455363137291332712997515676352608413750748319835606909103747441036430816024109164536805803227269795997302632229211101642537503576987829335819664280823343903813366844519981325731810795864671005182645304307348255851620612235772162681273972174856204282704379414204856031952493559609815411826231441880360464568145986936125978565403881539525211408127282849573533630454314295489663432295919824145104447392993489045558000174634672415747923389933231923886175410752025030250617207527129058055299777061114056547116725291882393566907020221285873541066192106004194803530130010882733208416417188689045874007564015194793781940452445152366536180396870951047866317052607603968743296869671449931797003655183567357385461611278018856280298993988323225205522883458436091245874583993787804915852860180980507150005033917093355653292694078937671007187310472452055035044778594739145285007053120361315733368952797356949154846335381629563729284914582462360269370054622659764951032643782467159267261409148835689891224153909476388973606919085158710443442955315263839021278908999402143139698346957816911232375372704854267587739214362721062617515766027750056230829836835534540966880522154928436828068399058053321547548374659821739176550004150177676866746013905673462212901354325376727488704245653898631488152108840062991142331611559233498295277681519140361947145307671577081285747904305355791522658929299584002696407007105800272210569063030881559930041259316892738843844465311945923976791661680153765430457383800624396302655057626117253933689167181519941665011404520416659851779836653304366779972711616576911277204177750470992009915967703083263065670144998305869655816082412986989936833772412311634659772740948285163520930780992925542906768275236776103723720202793354420668245895130552402949413951449676900684904652404950473765816565714912507971569560041544931679267237803839308208036439947042831440311970952995514792098563727419984523347391211234610357585902124106211673377790117619603182083370178537794492912248221120021815930751352477797614138719470455126885232507079263566725743290259067560603045293722665872878351922791687636679218377659850848377194110921481948337592691353040108107747267890621345481562894684725776702049499415079482792171916919764657286063660658132785392541376913072062274424464297868004985349486422126395258556570050304557697586185152201272296501053973417353627325424705579634699753561291169010150856843078747741892457821680798009083260141799195550406440728707713277570856861519602784845403280000366723206825526691810318645224322276055989534628433949626938271159294796543858255901577771215431075148294360562394747126832853500956173688043908511808392685583571232838732641503942941279646837951173346513804980454002058104261302083177639934077492891256811061403711054921013977430149187088607168788725454266545157136666477212029657400169062380605743075652707544993563842288620119543196243457655763072929423808632579322161838649939790954922698592835921690390283421907098298287649772799964642197034109403244272619058217014765461770064852236518462648264303442983731008454302561091579697344964648569094935061024237110210657362357388122173548141161020742390349945727037162542546537674902350958477150119491350296889256350197869091776479661255345441804111215045473612656553573722806868766027031937882849601996565545999686293242906804790620840533532203241790615088409401293083008323672494525203082496329585273035960841918796990487083838320752025527872164227826504147622928428646126492714725451473307540165252655244529409151039035999858530962201929293152761512145484355408955860041803044661446801065073697341904063461031183234558632367451480488953937123896549681482098309969287340314143114292107834823478407931519816932111092873539639127106305805578184575601589310280378995932402054492267570920445503602596662272468391601088830049341694426606245235181971565816760769631757639219280107319159168476274676400177890484684677083619436390626568611402231454348870766306984517158875203706030635814042502808562846958102820757827638502382348047495014281220363827131139734057418219874669113692556681521228111020762873412179452201975810332559032941234492137039811409172018956601632940090836085693947124721327231704260968284566801819270905942415017841436841628977999021592613806432418997590947177283846579206286848169815971695038094854725280038548373900933049842031228568684396819909734648275620832973263534580354096788015634807354079912326650144020103953214300202515405877169454202765722370819137404133893726490922381365681352137742017681024036107162972353109001732649033194857720347319378665098936932515508991567529369616164605375855175148300042471218624009418520643863888222239809125404955415864753979227117811962699202469244722966739416633955647633165812964663761869615693528815699956192175491760512533629617170327133896670850501166586687241778334110244306520379260990824318944738864992081309278907990888762701994033808479883052520195145884273330100898856465673440026209349274449437242815850192748016324334939687115229139443372770199477674212196951069457697207855954612746771640301345538214270238096588425157226777605079031918070819873939298359505218328970412010327105211046120145969300349052364101437051224585256149421141220457999368951255596359629076610085630244924119307963770884060060839872306300566637504980835720928975613136653789095730438013167127648952424688137595394876360291664412980599859891306621046270364458745077196865203048723634590106761754653009462496286707243169811945191213668530331930229855496899018727819131233315040688005261314471457812682358847088518421180767887809567250204538229958177876450896228217102574184954780349520614661653121737749757260394177972000264668651186157284572300155754890696672220461076614968317858091518450859872402799321299087316488532135319760122748505288224637167320790114307280183833778738231426029916157586559066919231267299831421400777205140094831375556234310555652185277546511346015544426003078718472429720429083790779203353979876566121108519637085085048851526216155879675072660220360979595055758939104918098185474659462491007807921023562235899284049780676279042544130439235386392375102096894132898829465479626746063142326893502985752327812632694112159744893025874794855963490809435738679402907411326009595484621359343711210911227173585275721306164698315025653639432476705204110071973721829307359835856239661660584013152220909345556479957832766825012622506612896087318001084210780378597248699481327459678463643759819162921552296868251049350954172668829438802465091233218460931603283287214564828013177178455092409361945026551244616376140257652145257860916714929253512600474736180860086101213810838627502534885865645267666739957437425181268912937221156833549789561693266413458856474142994762797589596290164922515188197423418221319480157513883593514099406108240298746880123333552657744007490491400657108521452331261686224206913301951070767408949618201060687192813088375166309075236725991250935091407792162423227787831965675461672357539810695894852836232369239476428246106878433590972495460841345705833470206662805385447171580872360583143485865728481535905287226244425133978456895015515171300109942667772679417971881820266138029890307055045956545133113897469505705679451709095813176877958768336692880462076869996398547780051781576239280934138462829274747671291181179914853862773096861076221093123469857208419943334802453979921277381187930187981076082938582817587893007155227868598998084000009266398725695450077832020321869341710412325746834985215548925432150978727639420555998765665952851937784130147248452027218370496114658578387763968487493134757447700677416425055738155225342662402385464496910369098134181341831430559471033766675332154973320752374001929514837160439759956669692082330744222863137732001717621882447371332577098566707112170657858806771054993549372291024746659324209477879750102444092676182136723614981335457836327248474613358895801263664219653697069959972336939813533511026775662855712310012573356291558062392362464815034025286609167447445518022298186232210480180764602063990110501720935765256936434950891884662494583740101505372437836281595275162682678962498746765331693563078167319133373669819200234351262116990144575620076025132303286007191183031548037094663902827473074692837939664089874439259378927541312695740631834782325747819362685258932345679743676875244435681232046618602707529633193947041785615154461842461987103202010812415644264151898602175197051806890656445751005758199722704309098314966624647157881957747700787565262798437529597742937521319501679566313243552832463300520815681906168918529554090472445047549050657963334885056904338134747999287276378809954915043108225168253113864703849538649458235317496177079886780211288426117536997817475766661843796804395295214493934326058594002422477386502340690439612418890937829627239589585898421537260061272201785838712543071953574759721757080089265165205753542605995155557048285116029487486202315612977036590338933109249468665730970868554163779628085161105812916794087702716693939590352173727686070855605790591808306047127914945823928216827865303940119779953147147499206344709620079738908443037977978542737771890364849981908215058981443042044961172537643624420486635130839979421995436215200525935234405949552630481559526074246069242799388208492723565666884658526226955569416322481034432368811632000202974993454884860910295199199896937645354657251818425731874866960919218054202040058790414451087233548977913008553620689427231763014939167494833327219141733462802722481463964183703507436505301140222405173920712725052054345693702673006749175619956918415860909569445573422531399706469962102613612769346449044960020555341572767626235868851044460190090921856952992722744156707385865203861634373293572836453616889627267022259869386595336048669152208197931875136956684730995815291756921981560529530232086718104545331240681114357123799034681587332526584072223210118524658977473667329274086163031065615399404782626848911338828636021951465659756177005474805845007444750815411130729819661469912536325345515625072794500893544886291073135104323902051300585774372288148325941036291103517690076222012366570425981233982267195031120768087612264263915721118434839553409766906194925705885803900359343703741534146189080352417576992044052238957745414029354667900543880334634153023582486779156716457361221202432356382655326792428625224540567761082335811536700366726270644611865867472118436911256321737481913791016270477585036967247279335082347143410820100329561158544108808036188227236402581899954764284705427705755089603029130252423111949745935865933614492428984473455168563036904988743045755076425434495416322696583735071407619179453946170972067193818644918446366268917881311828526631707832414184105684094971146871825848549545641648183209770250766178729276035583668201738246686386634627476967448470359883506132201876195031236458530847506730488089557947078950786168752343229063618712482531607460714077442990698709487029642599064164332186119994144126068193406071063245933354827298306955068241727833884708806198498427094482499650757902288701251998019196147535468469557747910701274038838463876618472942240506212842328235244286465363225181360380499703250336120027996809045944673052827685109843887258479153854686822567319072941227887126328542712550538248895650439934453877615479580066018926656567581365268468000493095452595831369741491903732049860701898209721841907425895263248729348325098576739723138970397559231658641637540547432194058242698223609603143836185949147536542842969281097884411320546191182007261999779249660890194799222080388261069853432551352013053161121059446562314431441086619652563122344846006955107669050190278656371269174109826878555650414373104570153023551803285754205673902270126645612262586257708626727782814513667967607748480919939757847068044279618155401513099043492177779273303102880681537090690737034257601410646881430614914497146554453118570247882637835720377982273620626842280016717459247274693344352843564274254672367890238171487717120129601596216400431738581578620772371535053995356737512927139493019304817805864174165101636999329132361249117180817581525398963279825210815992885520112494122732329428000444216131389916759118431273157919106840666685389570648339605776653571726740618490382983641653542266125501540681507681159927997213669226840941407314154647644477424235681012677433940787162253016365781769937775531968215285599780787124722953306215087365089573964809743274907259878218220081185966638461139326010294269821850808809802993016247173826143915110491859782518893256852914623469218678738597312414455186804531889389077269810349910452283359227164647534274804826623012146843780842517690911225223289790533046768427868896133245096241738609073054494490567877715426889323154636239228228757449374959008502847912890334829302841571251481965383380725849501888467623047876849435941212389102063454418341379094053579587201520522244465164547214359610564965841410562787973870869857936404043573032322694616708409059245280088763436024197441666897738738191247632907651979844624129827304834366983048223032986964012066679398329191797769994359913527314427524383946698419516707832444222785662054595552770018989823585776409093871064740900139623132338391889645874278805259669624003145454231566507889130236829202559046094821187037008390639966520756143278928266001344480883643614475365196999371962682096299519796932779761397449529521815752742297097730941016314678808391913617976974543669024899278077849364308551309986201989187419763315921261800490137651610492375114724107939569521616294072598642050390277766328725792329512101639698313403844197598236889930205882076267091937893199162505199629855942227203622007941848007203085873493478517879714243742838109266279666878039081897899591108490877068663064145691241171784612892410055113098170139170915146073636943270542880698683157421502128093813800301378261857849240107204577041414807670296841254362634402804649650751843898215367003743244585378568217901280473911373817183591685366266505827706609547205588974176298607801204941541696196190595633861597664985020619605993301958279332001191189684017804924477175591453334081155251609478551768822462593978662399316112129805461407791877146969653920794359501101332813210054848732686425711248651505336374945933327164188106620933369321303623585507892068230538224382513156323875769102208708290227360789156644450867022879953562145675088196409477867649621251713630728184198567947472055869419336478551572731977191165677753810520159850282413367343868259523668575935851775603316452372838671142685810593359373805081451716178145053816165611340787895898964606915412894139338310749974388486975299487141645275763488728865817137684729682942481881304288865711437470394979165142482922254640219244609867428699475912612483144210080471904596316888628292622215261398515393458907457601202813582631245185128036524603730123165950068745350910999895910415022459610764290976554264044823452277992282380804788289482328816061552193776888926233418693968052077654746161650624531524842861684876568883087668801606054519246640882556671519282591509843250094412881454963520310670995919851791272351023277353750318116127670206236058548175599929036452686298507241837895096914997454021050039569322972768923805549869244090343883785859691078396394036574578548241761255594213256199925527062832204240094012059897378781169652789561642284321447821905576081438216972427591032038749976076513563320765103269068069353226763899074376745323741284607358963945288409777618491510378539052415009922621770802773049078479314149786669051116916996956414122595964078689246299954418170879014000211802115607280142347660113625602988294170425843984632504101914371249225821320118216770628148611122069023295411665093716254892033593517966538909332639878172978487956407367090074954534263493357030774595303627602335969850707106144622115456868218229773113668152228547318495030481575245878024057412336017785554193549402218598051068978100908305133470909106107247558018890961068470781498687404615198465346477891535939049640476460590575385019017273535454051658950143201989407610931897718014613592119707893076614439298369456194702919787223769988655318446346731000753962650324692852652218959531414935849116216110322984552286069594386629236569458145397286227325956575456696538004507149095347779567567203106766133242953228823054282106237358030493006128564941773882162008990090905173782156493285123105770577502064523248332155452742031663751782706022903152784916183767886046713080772545726927736832618826747604360674037677457451430628021957433779098383256663422412439569834603736373999372545421613992725962209111708448693344243294905620901422356341037122696750557702278215645300764379103532479705860722486411948887246757467343430743593447510260671162330077101985188300856620955719477439938911302844633633763474320843026562325963853091654839486210812361282306660033612810804300330108354809540088253465854606098459880552328604797290874196910723261111943969844499635344039373490367073405606993241466758954570369116655785508589084528224809885604899966074316105537616069308686052035146237509889156969668607849712573764886279617727228911833903346415486436893968225771661218798794033534933389252908130809201662805476993730623962205124421426092404397379356262492463551628452608237822809012422756139249740033074991290653538214840175377213826547227590309040445490494020856220920327640184926617869221107784912482254367977779061524926739027955121708709531428461113013566725839158548709786333158357254496462464269824637936252205577090508439672968672321130327565672946567854027071381284532602045762286906877124882932229001082177336724221919649217620700350486362738073201294835423343221944561142309605429465965388322465195044597409832064439549591040233542015701421327400495804335678997283779483664978136372806782104863135716307357594430498777388397686833148295599656184339056896917694167039563366729921007059569051592650732658978403643417762610143553615679460875430592089817509665052086787885957680382137475871814979277269531602602081430142689192869284045115310472228346131434437927270919825290059508382807214518044126503030379688812861538232804657858107584300358012010236911905267769306130971280199627421067578099627097681496139100520104998440675619760247978704403557497995620806268929717782113388802324103314107945844242458922936381264752918841493381526008958430127328419496901758289215876115825555320969601575484416445509606227907208024090362045131705862246738020049488410877119299356444775377241811158326487170913920210625517831763469584735921291615574320771060911283639075231023377957693945725883983949362006485509465646438515683888131549530442165986002462978677924195856111935930434536097678294403690962639698370647225908011678803847308031267657826288243077694078374456741840174829459118985893950215365196235976333272149407513928059762973812714917928857135485330979396256074231721435668594883355368533504036375241542881034837282629285455141696624306469951338922069087785526982067573880895748461489427891111417003683163197974050916382526140012780994520836092368566721004482894415978691404653740330635317751211483038950138846624704062404124550214632519420420481101105810684873413759672246950760670260353343135489354986937352200613298147178020414784061656335208976200103309627071009077202204326343807808233999512107673035616124912751918725613770234272000738793495802892713673861053983441898503841094370241138215084909118357416674829789805405498862084487956403283305011177924149052725003858672478842348968714822662212956627638667900329626629459939331328056400753848977341891440185542285306270372935715155566045015878410131663993730646237474467264708785872322569847946753096890560386469592069458330720577377072878401127662504364388514306439125331654317689870100141813089289183258280816383174897703127520158260002975184674450792807875222100613770719547523539745771728210158937043531121301607015396283019009394204692992374079451594874767874272867857789884133388134929072948613116266564767099260429462766840259153184023692082382345599496164454638789614032575277592154776942245156974520974412257100269526533479412113249853761343552243065129837589712672928340242698912535035194192417279762958925309436699720707768399090954214404438920368494076067480159892422240007430375303234905370252531442924097519865518677103046855913626509014227545786299854210340898221890485029764222452879427277260925686115103074580528876964226339953255468740666419556014750881861301308731194783757110367540943756638117189105697693803589990022754926013342298426223855264670892902843647230826543837197538608672489289819286526392464564426870821204504089877114071206146758058557425205397140960231161063103109669026363520486777704243053168136100590168633061952654300785557050904504450199965801787243269642271884472053416755440527198164205755734963753776051146101059275754321884823206433047854822639158561161943221291799272947889276710156664129734269348747758170208186353489913462295096893844321674778309337405692517298366654252278030669842540236501858604190582723884119721069020707848770710336456878161250746545621689100298306268188173293456828069701148818621706211152132278146987416971743563989881392499257661454049339326662845181066782822966289831723047549938326892362550304944996378755467050062343132523994924373658565140701248998633450794564455354162805368394218049482176174718600664102251543614804967772296485939884141378311960269906177188205044790476823538264050732710530292329575432594219370579757621473151584364631222715848093534599754390342857124698247211825125430925077074880585215659441684636262343517102459148039851286297714485216656972457890441122246444011603848140836786454752119697694808049124146325602866678634489498817566142956003099967360738405097884648479362891274563265973896038686029545768488356522750486483633900915656004400068216117836055084467284868894316967574749735594692534586415625609792789909638401428494781314846953845073027484753486327311385695346683347242269375863687021257363699316305859134957255247860415767064245481881918597704591575425221647398106824679309820420930526996848908641210664687654884206050874950255190748991873890023458351701992516504009488613202578061160400438696029549227489249613132172454515242602673848424319478553378972849237390506596431647866175700396250061632946411002894386982530537889155889604619312810957683657146132818554421312107997048753677099145674876286369573922438415431895819450406319800462791537090938967571987873976373396640799218094690158595871149632084296006022315951180907051572485857735529472956124690464975258126386491047149643222959375562304709523111502094274607834341218569087925866505348101221197070036033921024059726396254212813895394453968380711474939597029583816597756093340724384929490009852767958197037309640445738114138914586770457560895796132045272098276471436073672779900138270632529069603912076289948453781338454427091165077188709691056832995200156302771967887595547469711240991506635324687095111085266536133888529429917214996670744131119936283585487830129929787547182138461865386358888609425957749786976123348295813897459244416352723281164332761779311050183685126971111928853715384727176777557540456768197721309933219992037897392710070272888390718104821587190953704541735344831231873373838136175246754520998962039327223699481810015020392111274088053584785481478943600676477595347263593473140573308920563533332880180120919993260796744010448805008962488074699470241903196464239235266950437833082218559043478414943143717737571183129826216231540029860279736321769144548325308981671921919458022024582577119662528297042414823504269752686872218312673189865810774230298333229484504218343061420557887507999767705651705348074715002395285044312683887299604341941443292527307833692032696436462414513003502872122980490033526098463173573257650000985438985792598052082720440454441670606875270060124610381725163892494923502775895156405450319293940039269707217571647892492372187204991365175120561028605840558730306647310927882031555286307672831959400170008990452761831918825291060057342924257202292318307365576523296165990302925735239568845198573152621980382570434093135594017808639679783587297873482858605882088576534261787102953518769936349951910820887564724017894545536883100077171138370668056490255585388648761718247738272043206031002980671456943975635893273844823383768465055346751615963637265286816230302802464524661671067572039934844148287557355290009509820513768988991875707107945120583417845673149383436530705848874065823505079689358743203113670322132142126289812545391411172803329356502494298887213063049456302910264797091074840751632338404124101631391205132401757666265646075186432726954083460688583830995414793257964276948022087711554167953500288081586450254385976389885237280834006280772702570757468022286395769013387980018255012893014401962713574360690988670008491192373618859259849073955135555920782269840231422369028960190973939881619234628296946259901428604784195600443945884509355304017512390215029607069047285232588839702280731227801557996416530248336353710291884689689563547646532477674166230014408700269808771728202581290727238007795857297061357248232111930331262300816897195137295726956144954810110850193009506758310373443554024062181585317478311939218004227973324794607818421342371474876497528883534473749472015541179043661916949279906632350110044645562722025797654996436499569373325861876179481888021702865485022935341178403013247913071295386115022343146408686647594572136392015254448320947459312463458662409478546565312447116498924181818685501204395870351096917669073479714980210276295540212240341227873278691481392630799810326484420599766230457971055532341580736476602252819810052069015708415091843897679682227984212904372932250436144402957969660895677602661042650742937727644104651526002818241482858204517271559781305118949192727836852108732653235614057203268377540293336099435737922014256425663107037180345176926817703203816492092237379969842280710358613937752457383225462007694363739546105586208349272140762150869939527681749495360773876264246658506529117929036535961766094107971604059610747424349593792182816618159876366454752410227601580478707174233951270044139375662138843781050697995157812547999442468715963337068557604132273599840877860530840207491970756399271369365162897115637470066886175272908826400474085208479238282010879025924142351566394853716206481351102598716866786025850155157935748653183395056523763840835372219216511880555524962997388756844876777707179470035173085594973504783271922020639127926277108640857979128799941655982354327644431431277601582504374833338155941773093134546182118219094660352029241230642925681718035251419690712852871238772618063357816493419974286483060069375859655450392244705516706582582349616335656042089797213602859571227565387433220276666034912084135438674756469119511810651172658931120523671614685472937174362684910731681624247193068313703910519300353445834404607811486058640108652875872865147753187167805149954540357277002744055763685087144180609502866916491387413406877953036472767417302510355305658229130318661335032012672795637665276664031316015906550395859587546499810628213304191182502750948138527117968893124971460740200350338517311065159711493701990409268075348156121357444418446682183900981057465643860329497398429057615169874337578393942966451990092726110494507612786836385027108157207816594258326578791606239793441371525123941880402959648081942436027229105572229446315011510152534622901703029836890815501365027139653282324912685308950026544362203986282574181341238038323917338330890637359735459393818733022352783089799045457052036064083358736686597704461387510920957088880651335280297318718689324960064173156586163731977937496217189459945925010382527810202042617043662359771451016927497165510260296730815945063703786338043424077826483102852091631629753149646471444809819856111097797253745636787510390351031001769937434062891450064461919016319260091427800881642731979671536191013101068129374822977294669200690439964429194921070170142197187674069015982339107435970173162124050951941642651963927966310562428524728199728003122601374827806087312187173432998066503180791597555048398152128807118400383873532857074896481486275358808540667675954806194907705811585145028013811414912514591553386908406146362861726721754671125566895010660357369630792767200630696956831148693800232234595280164864707443483901104611071658068535207997755243595311823971608278669590022609790761034262653643313956319049711795043980839010132174175782956507741123796517910392120202535494598086150718681656177775859684337200778573876222891207970249460595224380290505141173800393103085975253100015034310682999796932741044313600372015315137799523924073804711749252996921472333000119657124232570705634500917495211678363032110498886716330074449511661478381962518705802540328080190044369967142913169294080533145535522069410741801434072400616295194709549145908822427577990051404968175537312304404563748420563996829016566336303590066728358854143888636913296682895061134011697915299101151263122532060379351467929513486237313325825538361071110478334594204074553305927806912464023785971904559698622444120739167291384241637183920931249977222686853028677306822909495455897067033373604487671393505230841157734905231798542978321827165836101771608825718415375483207194563462330270695439019653796494324938993712471254777539886262983248140217850075046433352248553804979029713038526769323698773755851220066278181514696994742352403546503220863807691722780130009118246382828751008780092685363450241632115867908881979973488953957460751895731907259778803325391894070739190166630748820297895678197957580745752970580005916298545814321583710811395079311422134406547582648283090451631832562917248660819723964869960876298550557275700517310880526125340080152425305661245137936275302982117148184015423356581648976304130475824739419677931069203033478481524029995902021364459126379367892927879030112862651938448606714033256818566559757767283436481829609267385426818639159510350656954089159163440526701796007410888218046260295237783807116268948022964673158435676734238482656280996481292715798024899062107773299522316806420630262533057842416198812898980729849123223969992129484417299389655601115767036628906814974761803378742625819966469094873689031768938149289835067542918715829217339138733774377316841624236228671916832285873280424760586047057138758909848339556940291810556806581818536678674464222337002808855777318692153285925659439499423517216549645375589748132579159193632821166110659649520813621510323359870113607158266590012873732999830043458921833260088477169911414158924567703109364335905226519260203332060438675443015652045825293588417710361101546850018139618999102254052567130711634992095499491840519359372383432527488760265585054255107651060687836713062570505755747397950837314357973564265097079231106789305497811796274124912833199850944049812445473607921697235316426610477770536842177017522822492170213868572138691392524966988257647462711693883020245592073805585550843173765969913585523886878147863770152967241894140779715253486075831977218965217449579265865230487245130293968978237624093777167327244565097088198312504099552935416653646952780164332790539979951918693485410358889463238107263285952720875968642908369441295642724709675432095286597100636615286134313415174214425201880396803593947016525321666130088016938990761523486474234545446284978912903996597862073078832260473959832764477138587099165249374972859447436268404423098609169420672888560314745646000249070308140195355382056581691135676913875288474678101721911423064416374973318768828791430952193492045254455603957532670466126942615217960896170747582452700343099187936064786770302696708527343557606768925814138745378139697237003094470232376414851489889951871970387411827419097419599271328694919841102615266669486458882008711109901979570336275721184446815528766704944198128109508574253473983377601347204378638003280260517783665155947615874746773597794824391558156612515491064688217794436452531145831087086182093968710414529265897151464663468330122396434971872144055781185856076727325355651437673560983558487700089111879826714374757299816759197270719145320758141059280797933347929085151725513515441906123438994067172354218773843904662593597747528451095958046151424018034865382685695827121703199549711432752758950265096732574354566302552171482867855780832610940263641370379125368866819613543498682553374237168221671851152701561209642512876662941034103690547562917760852666257223166529624889320744097693370089058335471893501031480110477273421849535507192290457775484344158554676472834588625490485265152301720626988416551036834376108723287351255691402261565386539582561857929160400043155456800964491955770218204163856901990828860286126074217639532978410814935240189592406737206619564019919144145188362058414618053842944787157878978005913769161764420029438532671184789545187629447185607315970884658357643289537565867584176025075975252036584862262297773620744866792809412142484114250382635240680593166634241636995272382366661222986377657960469105501777222013063320456786800046161239060507658731325861724774246796143744969621527543244880991701155028755740812348919731157899729690345240720763300516902684992016908368658270116437032413874072472932627801627232143751973962647090582529660808398170843471046400142845411253114105320436772801976346520791160509348535304180373378595554545020589181026360049517726670627786683775032670296636861769457818724571723511416279711532909296400722923659786125747837578284571490788137804937217265579133621620771106566309617978946784050548003422297721781450061764379909456286521680780244387380354557198993404630185191640902497809637741199797391394380312776653417136065762201126643824505796169392347265151669146729640855263101327721984493986079759677417700573108697544835353318165321630729395567653527206027066824436156198176631254532132180273776115917377019239161582244555340409535484882050078656387345640969910560687517994403097111691227634104643649347849994875264199590999308951893875741243548886450660483442782570815457587087322284529201124394850141095651341365449162641757795930824868025250798187171198965051233328433227239436491247852691866759721024884422215687707893497176286643907077406293883043517065380788939852154239773390109258072724761094120546935443619075035555664039016782171788846878428825956719650426836726890570710386711315336912640678987967162175596061653781418410163517649827752256471235938701167162168789396371649093123299156551302040842893960656024170763289660229831080154156021499317540347978783047493785031755969683452266852802213779121049272114225662656276305620176768255105159324615884265537704446659329684324180556999297782099161568339590995192507349063745497930956575318601367947427327971230010864786735712834771017646491630305935422742460263053240392077419114122845942016665177299255077709246876957809310585427988194199210483089994725912238756664346796398414595922077248066192498057443202005812229605278301259313292469926314661387111673454578369273190523752515995795202285621575958749908651634291765071554050771506307739667232970503772286416811823542971767423510530388685151211747115119642175173396997078719103396279841526326682126205976853972180008588167345263985728715598214263176211531486327278977377079260011883214163425149238473882137911050336621640237348942286241731959731157569498278925144695382613546082676234078102316044421649303840711224765090157818388489186263728743251298427698195940247052969694796602226992374704754760498332127842887543707447145589263730796853062407879991758428944332598605630466639810571395529952203440505374210007283397024403581977769608272837944880776126647006520040695351891741480010241970042375164483222524807190993172572039868611426570675952458751142766615526158818353570422365968853953594276059463222178797731448665736489876704124621383094864297012846282872879803193059704212625668869117030017139448583643156072973261654250332763761189460555905754590624682514275826958747086500077605837945422067320705912272088001978456908916900603512800234447556751323161382915962356905203684680094873914338389809765144726962481205369334520220015694589788514757150758792648318200235775114900893973510907479516140257940822756918868623655904194210030182700784798505806184608992818778454885742716331959593812501184414893395456560050776010774322411424110613173707744292055571097262819213742020214454441280492120426919091290505630236123744389433605603581343065601720202175013099744619862569601934490769360155431210241556651082013343193736259967960704397537474671881649098825621267841063078157915761900421396699159695139441996828123113963766335819384349363201123723945727944119382665811529982191835805223476654529135009070833503907072048030127558757228704610819345211776850111362272335357872295389349505611038603915189150989226915273256088112913284482214730863008629393612482611790115032322941655133242992331024311882946019089444436249012490971945753553830685669906291982783868831247499992779606880900806624175088841751572861563810892764502263158935013586374861968993063770202522002900466137206292590838269032425900696463211541028395805923794349462437985211599484969716751641170041785362148478872203069238431882884144635452439768361458688002619639299924937152415714060340043496751976267148582787054819803385343031984732664844300209584382528892040930227124609327710547526320947863256044494047948135753362095085940946520135506858569160524479794072088107029149150551235405059271553520429563546628667305293544520522618566048381801980467577028837219708900255684742938118865897589643469140512895776568006178754276064825198564948131873470182261950397928260900084117026565438799596701745366206140648122710868699647770922558443578693585765489890407235562582811876095975480970224713800334510849046160453568097623953009857465944164413061331647078368014348235772611071968780120412337559739041891980105988800623486222246619956587393466257690734316534115770765909368956540126727150188829508632953595703276529644958650616922676389633696350283090326916641638953896366885442321642919342467644989687673917231837701070686084776899869573417674568520492107343393926802161587593826976446702472049908182789025625357123142310649618260630100455462673149996498242410956876982024836476805878997725785307170039449600216436795223123602783784789458835008158036685917956556997542320353490587169119199225156944541567428905930768642562409103996994645418687592960872400280657954023749855793247955094163038434400007043417082866348948533537886953838409755415054908073639882088218882411287950812750479004658323487639963845182180604906904439161439593498924692050169784747747356588194399702542740875561657801013195888623551570984294210891025509204324209711298026967671213300645733054688174739831260053146551414011938626661698974815681773109903943928977719207686704683169299475204840218661443422841011274208047940728893320324011039546020121586955362718531490492664938062131200996638576192739231750255167773387957831791354911512422119591876932039663275923458138196789987180154625224777656862785388578937752086757235568849371986721014704838788731634760783983948756026822539686263728075162355217947090360969669109298872123767848956658643085620456820388239655451404202071520812818671018635366300190646951705862734985574447329697166289874835587065482703605433479113297502039704393837140337424272223704330788954845064869409931803918774642961634308735222553631773080905818783449623316939640025578043476315477901585353264329155694118495058407888421932297860247015181053957852850346599022584429466972945577047297631833086861578669396959683709781654511317107896421153947314611797416016457713560769651433504578156265339648503778240200305809972143202610377091337818061152494713295477513834332922604467766303029709400956758807961539460953398083765023115085065042394824061768302154471178715640969977664240440483657069648197988623260589072059600723314170415451539733755595895656501356413311946769862451861575390334674616290702194822907916369288487744552632181818244196157375018978600717817728000782550237476200372863867028552953385939887944385365067357230155869732851755614472197317301208702948832584572493195613810167522444884020798141946923492485804577947817902895946764354464745714917596226850522378492355629705615724545003454889962955321432813925877626932964313451360666867193580150655613604740880889756894774262128081641152748509149662751988363041620752085194276066761978375498344596539047835051411155037452387906123954098131772666032024227643181723816073225823644899540704990391091984364274665830388767351384343800070432858053187708989414633226013731142356870961247229211576027954106590296637625168474200324285039569201286835211616499370830865571313605303175757237605879120876501044728500032750429215250047622007289246170569372358890770272467052001893386543021715596339282314001463368443125204143232498729985294310661123664174658817478512333995655146733422788194974447896798009292360282129581084673415491263974581795837539432529609427760841370456542647372401193682182775246476778249111479511871247036421896336499130907054867608126367213719515149375417171501991207381441011541841364636922202158845964639001479468116177708880540744250887008025829727546369455132533440941074058411582395750369577985518162259563541845979213560919455053482678309787660468829724510520521294572386271253515256386377563571223766890956864128153906031916215244952902869158457385981736908462776503284694770240348846132593511317994263898089705945172666866581248003223404022962014945685285032500410963366675943920503978953015250026073832423967828460159375061276418383857104208702884409140943426786026448303766275521460395481847801445045854719280491452736937346226428045078192697276989880529846899279527492961169724196724175478091696407427514619373162074982444433859857355198877144356963545398412410310788559592979596210593593215053176200426033796824096387921015944032574052531900650676270029605346704230614646616543291378338472119631892585855230942492015168892737084552128419589436117768784396943049806619009790612326781317217351237877043178470223941002287053093055319468102079893627789574418187215081817957242007676878852356733720867317509499084007470978143041126003312445037810809303602111916775847760601442983973629973963309677547402755191108207295548023609744862699198180610662334883521739369441758198684798737456356569674571068905732337180631685311377978400932379713529677678846099756026201268533910790329396979165482142883247198270486624373813390467576509875369619709580999451468056629641977067008009326460617129992571204440809405380517454171925799065922078415663621638684670750837675979915975906150701031800151114549584923014257114653100885018278824451211264326320255965892540340549472008947063092137573929746675442234086880474056657857330550115523365836491637278159142356603460423769323357217545616207894550490070786655929648353687679390319552229987768147207358747265301334220696114681171323658131611167700092842130536720613116331665194351400043931865832034285464487432368516707486742461092739604476702979234745968082373356405613510524172645552776853874745790761641773815738405159171353433750311964813385894092739096237467778432817533696378258698976618285134205384822833951439034692683152293431656678123299044412380290505577519602401868787248508869500298741294516058762187562207971044616897102413808958281750943372729562457354763355188523753561334803387021936013821996232663087740315909610017306922876534454755622032472369176735042955928559100172078038517302629239552054657907894513859365637879848659549738025317679656072550259766996933983646714005385129351622829662766930825033241781922916048551710576228260298994262680829719364994570993283316177406363108069797084629501785318888979099944315939821693883108157523251333107019062655525652580143977536276595883228560001543803886110654701921952645725400379722756837095790509343881313692478609220351659961411605728430667145171035444222172389008990029486580547915620836913210053541663393432983599335455999266840528334580945089247042475015185329801261810458410322608609125096911764248291271503623468142188231688593259360567827747241860800070465861693364785544383511476064309427477930846974722325343973703728121687736630598856753117850233256606984310871128252621547026196635413009179794980857779549796242729918828425000219425635328335277313610013749634672555906805823290325308891798421388588684329758683820589024104529107843885075328900780132169561334000406992738253061678730138400500373942127248088681914368541619618181161883293184541052009021144429658277717737142120238958690412009598952174343531368967260300359177830615900994852556520187142720291304093333313593243392703618833712459545692475567949824636333315421298170895129456113829255005963446682779928832634606537098290202435377601622412072472554828926508091970173906635107073492052974433212231409010306043835406021165970501514196962322206749528240493775030545736522921317641355349991555154034405379387043719324500072853537189942343383742266987728648758995217432167747281203793651327338438027771771275840207672597525593999011016417576466833092713285693276941180138414473166098390265567365731758140513745590875406259622600617967916919378061711013343069282881648873555786770406318891050320807202140321001650461774408038427811342639710121281768641810682340961749034800400732110366628018693845448503698503084860077816504091462473458574008272501079538913156741338856559319507952654058986273407027280211715078657931417303248029350777975073322512850137268969758848236422820421221678154566817262737420800667012692967470115228023551536586679842345894873395927840702271647452587550936372187977907119847648018950809613901052282645985619184755317251925010022164116109803484844754279664005574023123062684348137546050974036628519913008250545749402451165098212699840491520712384542875160751252793019455497685999515915134716419870925678630440049535216603782241223641769288657589323078824094826450319185604207102100063935050967775302608824691037310380095991631748566175348298141873084079650478242583193765551818652421358494098610292728522523835803836026047342181225637811281208463031886076259360604703062486364583291941026414202917342364125836372006509239064773360541350021995541195888980528991520879341194915258228667565532008282938021595240297149016531789512138396055697879209447172313731224059472877117525829951225823032623782540534073294650538587621394242794037231784406528735536054978744752697899725811038949025018297721733476249875267965753536017852737003843665171928120709144545854143113663836037066032338637427414968605416682965474097354652307752724631349379613826030098915119339508363707125579729014733016083207815420250868306181032002622661945853684149998638873343280169275343273736282054700046090360754050757769399368172857123126933843128614991747432254964862866675047655320569588422014165264030238278410151553362829921100951200373655043294391617406882911731751385203347865287529664001125009591649598987711895562760429341905882539432211061202169794497930178392178375711926106896556951864839949676070086439560118569472778142080435900943203579639234922584962463917288161863917918014508316808491382428696932520533517134310091702706556281631018195492421184835917449627986608825082324604572986775429273808852546384631479954222599342790726745129179496957981820013853300617598497719085489254216675598702332722384700634057269395634609338829300427252449514232284800134260947019931238463613791086472923821851102872812729458641428482446575458570305001365381477939130960751462959004958221726094361662763405766057816132120797105581030847979114312466953942787379297514070130010962308350050722922427241666879639396078150805366265905057228056221871736140018719755474429384400829859650564711005958230144563923793446490023330142168032233151321582433507043120683469306197109804258549383166441436752372898215004136697449675294828552731695449600102268372515170937960172117732385193506008153622916087595124485068439876245666608334618753949177266426696156646292881486898554314050145045249717447979419083135266814049037115248431187087610355915861391867575045587697239978547838280892396445005066097576192364998628177250536335058119632315151268006164306038409690184212710679181871693761673590596208426585639607857414998626435554865545691606447078307040479179673888271534496906604472770533350932334710011050826655993700913008092560070779857615433967924413049694872785059988906464430825794600363916042373339803324452686883257558856538327147436344817982444337828693353610648630979022065932042021985098136551508289408185299417600737910581165624929867387974995441927504710076677224730429393189810492693214705481687935358662113326434881721173660057873529262123334031842517907219848642854614146945021169786094377827430967651985500319537029412991977268942902558255569066603420084491170455430099025299758355338150719541773627297519933486431386691952762872957088989137989009792695222683297020262509190982971052077753684622545476549585091767513097595104243381629219294654981678967603261018876580819504306521719164553563458550268902073892431081995284669502339751312902417235527252689720349095440971839720610441126386301455941819865658749599632660078624010110049569791310529069267910200011200767693989229016627015157286961299740836112693642006667839899134226938053747147469554882507056174723494711442305893950696594784077718074690274254066893666229493844902224361428733261843757638072595784967779604469128434577391086954663884563785697199131147771349386016031865387267527739271772489546066247781087277292529702156541458971186051837500143353547000304377152411921160369303801889120411424269028116916256159992304162163064521854023247616134146343710528747547758801218481910514831152883094436676253018390388608394271184974827943562294080687455432284703831824919653021031967473764538817515609860930670852336315920184613755380022540580542559433960307213920223013682919190886688022007811763808589309240759176493818293083252205165515962701630329575134082494154039079574044335457672277918899496308100601204170062639832826556774177216626137655582665716460862481163370810908904810530565516400670565897196834418897392332330836386770000549763162898822287902489966358000067420968691142573990314803096046056279285731921844640522912067292183299761627078388017381526279806772833879794446604136331309523140246940967639605386326770156603578399946041116190802288337194235094669453142449627679712197591755114750286712752079411933704959825847388881944634456280008397690038341663854750375919401952719094585354858693979381887025578351755827104364046519929667593076167103884225623904046259889778745661549236255778683551430027676290057069573074273710649402282215915398213957527489110746739661598503089856768154285254584013735210617386246576419337782503197573626596733455181388066357362795281901789116557776481270815507467308434877337309913652997212756138464607173525391512063763782645065556546224117650211372639090068871743665599871287507014031068936006763608794531418654508466887618741300873742777733715697380076934719139168125786108378349464021161120977331232877945634486459819675175134049961917289116476924962393766367116197586499374040016862528965459429700867340407453266953088525911939958842487039322208552264685170953265617065585827885800065674705230475097243603845042433123906453005131497411336290696388646347738968361245111745342995413762056264812460656377128515616279532090598648938002864645065955310778004820595739028017067785271949529352994618857791981799075503248174073545320370695873888543109866238715442942335950507728934314534493735150242381341114468362595959285861926398619529905587199932234465343273043936769933249995906972965276857164602277763556339438315053995739485911870620030642505318813643895356228108370336283959871807633645982951642916040574196204208372149082395158280532102538693175884567324603657860658078606797658720703124680668683265305725243713803329331163627965487467536268026921582973377295954903261969098911405402312905600946706668531388777029854002330611291589114478576051709264777240738327497753868109918498327024766909479588105214436398201305422326045362507800060105013294836707021537646612004720029790716491072051360472247249241044181583385570369582892466696408850279044094473331516479632762721648649942746930353369187336006395957294702872421232771395273746821674073483544836304640681180799812224545464656959035457922403440510525941769933075255018074380349396454535315298323357846626524255285251770257504589622795059662437655871060440978929322639853597637504516936032698139912326836039980004357314771339125117541030963692207895242582547422934994108974931630438608629330246655543310548841148259947807435858132903842563732141524576151392782139654265950543326324444743918923049386970291526928167632100447590970782748403438937014062567245645598956837196083949721867750715536786369092743224591287807087149736965164060075809105281097396179268347472731294505761014178243436491350577269729190634486809995357048229449318201645432840051493387616676903589535097783319704319537529968184559300061773402878766201234864495867722612521865480111530171490191710222097876845183048246158476525305974825805003325995150967659636498458441680640823752163541274471681530552371405522088365778414271545113926356697707267003449177720996068204732584258244058741477560221196352509046722192899604098131519531965798449588900845463256606376829364153781524934090038403805359344954414809113293899806254290424660563373218581408973280587319497659715841246178440939238077259789152243645506697838647592905429791234832342879159766340962058495964086970638499227803843951639795645711542774438022191714793035629302553417144704020595736499597724744118425913175235575075352682169764390684378623718389764879011693645138189482388154823910168084529714006798728268136994358129571399134386227399746079636310629035142734155173652862494160079848939075868416652721619461570797176508608806288997431713007359182154942192279275999434337138392276819629348447553545071595131057658140391984790916748890025064043570031337443182259426965431761011488710655090181107090059619695213600658144634327489234956259838328497384318691385729500768840984407735725302796998833869388605225246429196054776022120628261292639709813885673481953224561794508655624037966698234529641865667471941278713241914243417038746807805567105018260158082073258611858725140003952438507477547641308427833693879979139568136334001427275061981475758880153489798584095429545105228363887599703618966968584456079449529230957645311328343559151215869641882872368362121037442182408348046343337958557597470001660920254042591725458978612375735580149343824182780644040510362146070210975261004978386024493815944629134855520860753781820321873541153148210889698445378926757280756248339832723445832909441949356229270100222817323472568419371623097590838314312561863525121151536863262209096593817166230017264371249213812059445373598703034259386723197213148576627372881948345104529390422826787340579042080676435272924786968004632386526281563049556508038970692562218874432039959913473103818037235034869625569206590723119024366943029099264518820097912299649281492725188070521534394777852290623342133645326568649802213625289075541309190555112757005119313968931331583879269275279105846364197766709158931492426727922643507804442831388481985577564228711953345313245610844635627152803922052863509700786805160986225955089025145944667482607825551603241681953891350187731378164916114811584106198690944637242327767375693609507526963446729174429275277900805755032046437164468836631889748342989529364113447440953565149574374074805616244161375067087083278404093050288910458214646283003400694058104714337135815237494249362841270425429766523884923635114356532462658490159152841614487856813916410457500761579646920357374525740101984172378255824025627371959467147607701315926783896347863880080270588837782842911739283778542845637580521181289441949899205454102644284969836942888520990399552869354975363452828096087756654721086820340896628302072920079608372935102600638353002456649123593815963358559644253543343351911898607312169788686693146846197345541721980509804144756642829083432790190111831479631402595517420955340094665456260198508585980827160627766508821530376421370234721674392991602844391788706708679575469362533064283199067632235121699994070095399811607096042295047709761316937370682784149602393836225484977476040952671679309785937289520765952258645276425668073968441804426871978351450970523741958741288207303276732993767760898229561207271611194338739891513514199726590621980297759277998291953087161457643388496030554570524629393905777349027790117875889269568768635611387047694747862735961084845426908322871495724081704674654743633876680484864759291700321217534684532737362448584383370550174828574170181078308026632814288682183373549119946370493966414972354928802427731102180754790990249324826970160993323980019141268428396860501955024951657182824196795949349413285932542121026289484949524683350074382692967087806470590956863238284404907153753081427301362920383254649858625978119399564632667605900939462178831533187161378627646635550142552225312681468607939729345113038730522148618621098672460132087116763910952727307050044501087190172684483414770508354844360513406236702228626553702587172194123294811490027456606463622109334509086023978217025033413133583151325606565208758306661055178589047430968010837867925808539022763484294717631659609385617749632344108910713661844653649539352682569178910057406891851989946615007269559241007859362771912593700397206380110205005946814639701028092329747040253585737085025787596192034444155750394279177066143504054250214335852996959963790069872186272024937357026297300686311516536980856951374338983783797658007727250904168067864387160529178175674855904383378371758853805748414432194395832508198831796616292183381526689643530419688018652709846205180500593769992808005604687643599363480166901795472434209210141629124749347958555078357866951243061133045462280157913002977126102142438320682500398458216929309687578194060635563368421935063889678443873121798584385913821988407878968826290959288775141961084619522793189912731611240700786090296934209710741829154231918724942310932100240784931772513655665286010511847112191615400935995900745583816448422728098412225261170870696153222281629781673659160143262258819688943267007460038990765480734094316813210691531243593425574348626715962045478345183371199557751403579073710293939078272218476647234863525970183342036819859884747122602581157493393466013313076674193811048703433505937281902396664163002435790975076380627272631586109630969191814164201374321690791070833670999724563798467097221371861952293008873367335642683592135315734951689516965419484340500008208899852829143195640082094026935255273471977016126593547949698692769797700894062598684298721297621357926231031112887215671822130113578940247163921158482647481723648890598219797933351864236226300989479173018125062207019761118948385982268117079397331376087547234700824806189573656680472964039195259983647682906478250867254069481218455553020818431089238593846060222617804584749706935373515071872515463003122764019554692588984933918869364572766102872013479396862528450329663202132044719511365090523773789041425497857782752592562292531662601050328522873018607679473366309613708515323876730460720258798813887942296106582353500768205345861558232032734780407593913937261142850934052865030627806224428401007910863164392225203726592615709195691052451578057634196401614200931146939550859682794176578765747861767377463410383728367288287660933576254795243011584234122970207497852590599454438535984796554049203827698361484884243423577156703133234928926859801996560117819930243560290672710320210929230204073112989377587488998337138792837066637581330949330509078015240244744473128830225034882872615168483290365148213524552848611675187011260374108958789730642792605087924436570841204255794588195379255729449002876904841800609597371457425804881864762151984206716713511934209202821960883275584728370454669685617998039741648528600107723872297096012275081373570739863662427243043831550257948306761694641505952441148952549704668459604841794109737198788095871949833174041642221695625322580567525763799135494152423569457657340504116001009073971992269186160946473580588227946958820715553710938709201668332343367350109409065738438056106902815729521564803800795650333516674468789057787976031328261483719073488066572696618002069619845474879909103754098936514215098682339704975407328015141069025544514477310714111567781676232274411839354385892966141451780921550912523988013053309720328787629046353248280708622807728349663911065525940685102363678655629515425072188662049763943009791888241979924431493779946969764825414924229617555494714220157878678922257007280498626615721468784863562447797688617123959344608187701719841486635965832276973366784251001562651083121199496813254413358521695527587535717841968440414724063645493967436521700111561068224104704936567597732662219023483456885143658163274369756687003437168915482163285303495466647719571949129754041314545930803547017219297697057101287529199839601404544800849593890073906660853797202297121259466562089134695956598346887162152348324821966944649319299270677720301623642215709682799931860579271832679356902771017033603715896408596775248844499794760389992306677120848245788767718929348458354439780184090522859646523975172105257006556912523268639732787585781658378157049001247396996940775851944190928796910191425171363549497987083064264983465151479177969095364151726497461200792613743116357417226782766159023206904321915688620319858453243173099809339887247949243636010183194263358860224388513599036799075114407445156810346691470706975528080582770273685003429375037514569483542047740786412300020832211804116299299429182400173454739117576191885985746992413062183953642619834654574942982485402351774146151871332799448315189988750987476228405846357190352801358597778152838888557492415554862161338153684966392592233669402467946795104964140710393403919433730214657692630588570921859893494784084797496478956585601214623406022743061659475571478262543870547838825753979022924921677493532116741056763975383612942452056822631088222648886374005280559061622825487017287998090641515381546203091731755354079061313957017817538847458108946094888517142510472093734113221192664426790021694368795605411075864318999439948321946276829363816387857069694150193652554923114720992961381217991224295566526323052394310890871494262890790927598327358776484281115610091955622634039742911983643602408192295770876454750324810118207029190619385211530526122475037997121409072096786102164763202762591975726508582395704316157851543750275716800609533513685833739587909086535806558868257755465808705006667730843194031684137102837631925642590948118987781403657523819323677930982381296092639336888971034086861405598471198801310923682854066654197595537134057052108893278556560330337276212167425620154786325202359434556544647179161351522649788978011289539037552490860063345391266780690601461288679706210050049334932828521710391729246089186185622386727422383357687154421177575527106626926413277203685585825532029071436743940112372819278634050563945136353422819122622302134367028475825588010419254203651822157353639394552940408974804829709166088016715267830244991218123773670620054972490445053161506659493076614427439223557837264087732924100900837663158241748438121955927827150734883672240114279894145657647592802011537788930115744608085848566941361789346491997103825936435886952909355142351537192567055259957351636570843741730152211367725436047886179824931857873883519764517988841460686299125553164367142977369712595738564756339100556298323512843999245594149647668553461322393322464376563579822279930982857749536987295982991492828188798137728182516391817003622739659988334965905445489452936782255120136729881437639207110368732124324671310172020534154115762664965931117322146245082541261759375707993414781456506489029918468542026416751239776978026161616846201265662560899251761445063893772814269213865583560817277111986202714959561016571586052242681098221770177930138093819848111083690770097759086885542331222177333218622792665908580654161237685600606280896025225604519049007539597349825419460104742035414420795672209681307009357559020107804112322164448255346733608963427572138395111975999072494097906018474313213015570050002606423151570372405186816160180411778990464017757036277981456595809948326741730447296841456030971606623510783090061704235538975733960207783645534323845324000814106790792910887398002252303964834203335457894412352809878585077872313187325761200380805988355347478079858815967892612863025558003150437190205808799626072650998422536642083003620173660921812702368820409015500901809769924449136167679249088692830003283940774522321876597580423791202002965842790610634097739678199577946296991263751117369799960729654512823435305028642117814826433896588882229461223800177875376377667105772831021750838627571481017842850559586326852606370583238862892688384784006015757324908265752690011893252887111208906612366772448702721497004139370875796239401708987729887729230971704181413505759181635347309191215008052011215480366207870240478673438953986026256112079096999556037074548071568210504223770837560108551293506380066793791933677164063522098082171964232573642816730657452394377487302462805377585167114929480515378407298967906720877767066020760426686354866456062975505812500382823778390743108167303658728257384978157501912663339112836779254252886353216423451395264389075177593040798715927532177397778638258251887904223503172930177951536744410195739392486693013918656804179916959258531259117375283856630708190873825508412646756385890664083012964148625095794499168344112503784381959471285793007503789781363840990839698483883394403842676013500368716252286058995517662417507726702950409982683453116293002292069543430270251301310677071081980256919296746518376342595181360560640974687908020741556909820126193355550131386622410349322584407475522059932635827422573809874566516881298686951652133550447900050593730397974757472666400496412297705713184030582580990217487274823237645198913850456020224862310013225405565943021260718037489074539221834490971988036682834000811978600926435174846433984092750333292061905883811649368540778424235976677433146135684025541697537842051294180192955012480199785998236397826362087472369891534727455696423696229911572764778904028610880823826431398011671835633860786881270916539211771483572739343170656223718085786546644288987222309768992445328020895355340214593816106375661133773828073362524276435185433197876756316060467209967688220545091838148874158485757024636788643133961343319648554128733072589705518432513987181395706132559491654262407985699946368201457340737353791962903481710637718885706045690857736036988785811306533656989869070038993622918419401244837134285966365540769620405529142030689879899557264807478569438067427208793702211811920651092205261063408695144977809190295547353793314388727741796587397849330160026321598447700272241333764743002620568906526389054164828332816454147814259045449215692348190123923275184083849629224875460021378859905549997718476130042653664694737372424239609063814559344197946009005924087840826756851477147006425654479031151859781943509120425545624016116401699698800282744857642329450940578763559406644169888367094845719304725471861390130463397951115212643087373905989042454963377605545944812441310447321665571233779143846922389987043874117512893461226666463346332959008087763258893316771148224742316405701438196277504977643937417927654070983951003289410947483777625701961668879437735018121644841064257611796658187433936623282390726350343906717528765039877831109060947739933255172581104554741878047035445341737299214847028186029328048194442917668044457035991227245155677677178903506980853537782813333626178235599888751392350873711681668214412098713812043017550868002962383661429965702363707036251905858368801538003415671528026772024198878150030564719600311683457991720266375060707065013701209847740315494578311875552630335206262162328063254632755073212818020807837505126054074594548010191468600176516077569451720967609599412492077993463271783590688706412838960909066171260558488803200196281531126197455168903303059389751891984580081142025480713809267282835804319580175504943024028213363538865511591684386219751010417675050644991205912467596652053596528474918464634335311024915136577469589896267367923670016382194996827829259312207196687952131412267204536065008844530527532144586100618417626992190325914567392929843423673553374787403454480374876047244437192029623327014649800488994664777786238226897956553008644813336036980165442574980857188160168584900693116528536476993662566558555639098588735015466460904266491392542411951405068427087044854090760134251159772919345891891085826186169180148322815228636313570221035458755890762796708836580315534735780871890955179397054704281510356164658514191980777983776664583464894123867023132575623548098243154002026489478198900159618095774448744529673186045501578920738346222155243152969485243600198410684926593469863286916150182956716341362471205626426647628996343898194401760419876491385022814706074103561770035239597329682992704913236588789374317995326276024789532337095881350846509758718378347225666896059862266236336162408960835057173594574419926971833886642554374460170523342386752688032389704804279164770412970147010496746899042779120737342062667494487614127871157513897328708426249473130834293048249063003310840965038022734881987408456852728339026162190249630234497624040889339864395391010076334178594669773479953033682355059345826841332905863346609325753679534293949151461979985092410984041541182501691575396918404420864923316635525157565560976228550166086422927885352365073334211955292050597389641481093083672503936953063776609771367904928812840077787356067466530509027703472842889382155005997408274424868298776848669222597157188680187426208994866809823948644656838854745198564710188878797023971742020259222416645501248912301010406282468896808053579429361544269312520082078627519350667899230650109037553657571930334018812192765255819622882126376479059081212920277884788012811652125664787060607259079553682236283139048687149256406026956263219179636258819793817690680525103884011663121512739519373817715290471997805357819736451297227160876227166843373306439537764392799451231964117491583733820319857575993274032737139905030508722967383962129677083842348242159659932678048088536757795703442621502210421864072273955341601223269082409381706342328075824448041610245417468255983487884715029135873697017973324564058981597490344113893221090479008779066850086585829105750461188039586474493976794618184901825352650768984840708500882826368477158812366835222812384829715303204443232184254044904919216349617707305758426776528381998214323528548210973811818896560832501110059410251853701278455077617792285286352243058492888861743912186846685920669309464947241133912940556856481243766712164373714380946364128461975731008127355510574556366701768285980750189581578867572350379756062395471105674057364471618344762957822683713075817898706383705344007815073679152118593990610103775493059676084796349281650385956329556955191635803507270127992033068134709462849497269269789303501929122870853107693542977376849853464974438036112539062609435543792695543376871908191312828077456628075985535341273140913752383260882835433906903135974215463035758755467529715015567800826708545066103367010410676846540556714994473651089763447884187481352245461229949750505559767700026384777584520183377188781456671043392934581263340738935116756234215646913563816381406771200580039714627110950571602695154503610478906122997591610907461551468571898148541604132519875618984742755203003696670149683635030113915725110123024193090079216373660045851553610386563498809038858955443607438517757267883319945406489894497416360656529469382500786426089791915315854522562352987443006437165508977915686336106326313968379883696199246801313090123636260287205483526748331143210498847132467861859156343222233629429891857462912600553500944929339656786525986281184785004446717611527804699188794513475508268511490443233216116027412783397453295584799970282246774026469299448876440077584715469367094316343724849060472650553054769680909286363710772998233566122773817824740897335122356284809593829282716211401093855396634875803000955089746767443089973290521165912176506885302908626293730941501785357496495534016419395063658197918565650756218363055686612939442242652734551429428269741710616958017083242151214524043309173214727966175199761817313435772666356300440876907098310456374657891016788861219321860399895159929947453303232790435598329426206352441732245197282787681330423804049762693638252220170744881512782329137430175054979829681522900552619229303397147609772598380519713659813866605873347179265902989934844607256195445969801213550974738763675769374379118580275488655873850548813572570975272821868654840671356114905149516344946902530850479257352064477924694340049266266134218596140700982864545716789211553704903227177548823124248790418651268146862708850953812448356915643059940289924884972275804133628523994198489898496105008226066913150374919087892695376451720547748626849588720330164094630500190552970630049982091111138369025811352913729037291237459854833215247630327926583598134954949137157884587506319688828230897317114208488477226397356078499969894479889529128573960513369404644193793242889614890220693021601780787696594157216173566240924457907559839040212638994494894482365198991071786412701030822759326814413012946534066252584115059928623941165997276938446265966877975729753308803267100491891750531680612265469973791095455197586467648034723281843756541268291774285798241257017232452166705524118038768961384002452723090817743492652664523495587671840936636141366397000941318146990587260493673392459628738339492907680618115806754821662809248330922693006738020029677191312210833558861264823732927104125123000911352551140288132119575592915911787766315720183022982281319003793811089979591557773421377613383683854182493586415643627350376930125123446600045284912851737926977888652236739505557718691768655861056069898207765456127669491363367205801200205530208944021804169509757969841709171683715909837624213768400852743100953943271455303048065303949866735866188961478012031575733983155532382182905564694955269431034215162216621657863075430244769035904278014010477771455007133334048592492700971292889277489565826785929390698637608891807948851914135524133929078391599882314639100057766284129174567099547315497783399608321819978737141099892842687538419181105158801083503900370553907168918692791067537257963018107382958513724967765636487424319446317354470297931225637944318266457257039703815071491369314608534890051114539018738705335880772961223113222809312739540040031022860213363138408913369810150486501204230766287868680405885951662948991092746783624594165303356858963519149411941526246399337532257118986027588953108130088081179260598439240169417462314068787473771522648358631607538717274695160469101745310484040917324479288109097270607464020581522504647243092763854725000504655461368286499214873399628968807553536138670950016864819810273577524740784649968768807949008404553948374211383997087237483111437861562539442147409438312292975520425212404127310246486491987872861523561008887204311943679540066346734934710074677341027106320548504924079133334327673523190249552158438359629514400986344624684271145925645725044991739610196382219339895760317314571213892403006079817867380160795608200612489410650972732102419758215231076026462298571627849435224451116189217399119775921258147231481564994188927806173621943905373013058314090625158825622376517681464399418665719694265491794408091154332368433972097021706783179869821687795449732001331717721611787445486113555477502087025130900674389719604446994790277073172156860220871468393361764124483642207916950321889335414901244200969802572041231343588566599215373034072388568462404242467944553071725568780221579638113683957973855532027655521180095084793970435782747812334480758873800148549564381625243590225642117272547848096036297059734462005930239069774299683113878854257889963973287085223631983665793906356085606017102291358226506554924920958200043141278824618863206354943675421761502747065290855885220191945391269846369168237719727569926662937798896943346856325948331056872094890607706654755212311081293999581591173934355656681321436184206878383496544213841467597651521781512810527723572496228544104656505167414707528497010649629046328271703750965641714645564839831132250251168058019547045639608809264370908917179529932039800750939822676832059877081879592702358883202794220646727038128670705342932721636947348260450679300024732359264836425688816184644675279772883255356301533015904311798107954637565403112593663872404304092973534394646540515035191563883390019499252407539349711732476567886783362172751567231482605939251382227845036795588011519689723614843639746811203233253387908738277865521235672823010832517922672954350742962633240694082685196732661094508833337372638833186079077310626449017772853592103873267167788798176472947482769190608966017453922512082715338955968956092782022254322436143805720790301289734240125311583510052916647889212584728378617495571569743262258910481469693548215956059603629332332326455401835567668371124735011502240787666759594480270775836864867106042918051073315084479289898511754517037725476883903089536595177718928778509893484015816697230687057695129714768693476583851199643568765509988483856427086483570198377133791377897176870604817355586048342357426998047413277466167463282123113934944176898958907942445448367382435956519439796865765116207530718194594692359399275691152938379632634054531715076067899748382424865006376656252255100491487102283409458878246323065763322208774456573506868625742916407497765568723926551483024393326293915230432230083733721089505377704797674551065563058118661835584124714239609586122674849973289009822599847193862859237525825749708578338474087265639191429148792047615239912206425637598884557487317941862850835856179949085627357990862498220322679438392070803086522946852894097442631954846412611356281965464257034268064394585796668996322481253806425532781871946437137035297133033847802322627446769396728025541526958729910787615155078852259887390841326190207937096844827386110115108181534974799983167749353753036540457956739565148757244427968100792952112434055331635833548042988024452907808749340119368754144650003145134112856119912040042600160081221008442759527755065560525091509090172443036276841239665039012645118430179368309350822851041488860076802566111679507132418002096283567689750507818955881474474097286695621187771231195809897082674113383565725701804438741666932557293263414905230362043389860166597571139978000434973896880478344648831713341513617855238763982370237904170438281508063768567423349011990783217592886686783351251678780954206607089743575101670196489238590060670527194107170453268646124853108483995255747242613968395453023961127899406187659009521825717254258226137452678580452191947092255536108214712042496142695567530133000103919641599575666491421739295655550094380752196847563127956589711895189243551342494542713949726372784328183328734759874280070493666310881995700520240559903347559460498236085406221214700236469992662428154127900172318493197390938852922639518149785442303221315696196877892378781413083139997015521205970140172507226756806548127725128851770965426154674192467073194419158029429582676905391569912524801273965919490432995080112065916285447976227413362542053814879363104275320651368095531796734514484392094569114664230162433361275531840082146590256948295571683937493595489295555232225099807043202684818016277485375514285603692796071791548108257643000675766480848551546379639810574445826035445088987319957859957461134968927266641423872857569372250923438042920735034692995497366794650599810671438372571876792780793324069077943362299640122580893503440952726570827815943235944538057371124564051615379269201639847761476970256620307667035346931345933018063960293751206453484927819093241797969966827919710296961621520077778660238942679435022408309130662797035682336710155199278002318672412338507119023852575976999998344643475363322979649769571643850187997200783270793711293992252269505031131396149972603910253217544747018899985417246858037017940063163431934611453672092313881849750557454110894366680302083411696509230500193640681719277244569526159353198949779575239849318474789757307123209100682880241212168273042913022025031648802629153903041497270611247189229240705834361814990808580255841060131550637196118128250017909989469506975183080528121493579302305598291163633718604804752756427744572028242246951521274683992696337801180417672793393444552741215297321634842750595809869241181926130086185157317599392235176168838364913992689164709650186259578409155316924804607683358755617626547488778553783635768691885658793720695322773428143416110218319069252724705329024030835907365447122315071355839456739932570582776029527307189819253508881731614233131871786790455406972840143481729743542929764283096316918963840180105616176943076367359664097664997437970452221075248794817573244539404740770012674951509693874266479453501754324760845475165910830832490432427909845291885919616604467466021198812152305453007190942895403112793166411701388162332520057954170985777682203308818914559828584255848723737003926239846214721956132508563391582946314632393450441194597786922298711197596969357311828371334536422376368473477075044961769043375257484857485570682003378686673855618051109038862566964285176333085310696379163818959083798797469278082378909257904972909338998187847788095907806388591418994982162005274140856403494947448806083006609870608303944816280413212195267167975797064289380802648328954247756012135584883468525116972582248171299513427059761707082622891925613013955193026738826458649250313545598538624924475238482750531398658211910639596493913567115286095384781689262314386310136031764968407529356499071995746743598537520586708015324021831959762256404343337765221162819075120827421000760338410655351870615534577337844894132640321758123952767271671418133251563156359235474368796523523130277261486661900736327526137067155915114836479676090049225222643214071791463781733179899170755508457698148559036651591031429336536490239820476783277486154421205113625048360599414929076481698915403429909069397767395026603161206859104826527123276452675337251418960098158161024656278770151298146161613418955225762834861458674535006021124679631810960552532251573245739786272291951918477244158796155534257481865706701531783644630799454193203331919658881273933829111989149644369429098520865654587001887230746701280854215879317382697726974701988021971743617284161795721559882092970968084851787268558154332382757829693468966587723189674708626919040495412724073278798005196581802165102873155638621174122946603633075266077314975685886986781338742873922410451062221272363625244117822804351610133619720159813730484760341924082375714266956600191259519335689615277738891797859445403542246926178262747915864928279693934345326673690047691048319832608995154480450169584296663842791395650351195745802310680244207350193440326187551627122450708137745655427982602636802377964511339036066246495371623728254586136256561807809437304386562755515073578063500490066745590518507835393165675419911378708911510233511463358608974763367789625780404737860499331891451124859454645833183760744703700207044805324757619484299630699782616043666290390265336517031585586465336961319804104158683641048312931330808616950152403034096123375494854887796321481811579784922319116749561509799020969103824328101089549442364120258962880223556859312083501255548413761090211227247022537896807184309808104531708763826772039460220496044811761257463963093397281192429998837955946521514408262211593105538861843582915229262948026628070308360768647600997740804513337356535415413723833925734305682679721734494345269944592196116116887758068849969184147560736822194540369174076535732100031231314419310523338898494728166756620573430792939793271858517642853654148478077201300016337807563523581899654171516666844687370590155698541178543878837647925926944945340054431725750059253910937304507295614533433124049727291883221222854391966634876724890647201089959687626870246856611196503685456045228339355422918955749092229813672839687863242484547106322767410552269007850486595181299788741167565593215987845998604372640572317142137983198026374296231109227490029788917016801436858141226707253563673882044647203886929855194077298405046265933412485126759725468243431753189559491516349039683420237695688289000434635994394194957582855641835978188114394242017017266130242315900206249011509754909821002225892683893753410579242683258179038939732415383792350010602657524132837310392095814819704901562662426318142019978798272919488514124484821916959023536092968959348500708480185125016769869712147409650300102498590651851818595967492917903043807839297182567785423197634173009443559772860031817495776182294114242195892923710472492312720454571238707467689906646307514264744533679642951299220573895267673044833380410867448345858705509884638129240154386539945067836710255758912322077658360365912274109702193680004088010545443804594950850775091405756245977504591932154786295011525418675924508608717018825943276634994777694077928881061733645220257911364101908368999783746913790589215641058359815913123729936931063581697294676983642668442321676086663683778673684006471991201298726944682004824102357744006357306944296198527097219299007524006566822752840628031174291600973287564902936553701791548795623896412098363854993943997078800168596266681798051572127922810645283492342254394939799522770084307332144601726029259730432194662553001909104862195130519389179896586047360858229061579177636518895286925155318652575964346056006173665186385250132862028948848073728178090399571429140907812578169308800467213981707858962707385576122744605212038993179713732626025076450462241761304404518335126985417252398843758463737150394858959047194526262385539903162856209762440029343325609654022602079527853363517058841815878033687928536280616015276521935589283814115506650944787101009161045748072898843377887080789181486863365748912884442599625472892990315908834335842299706377208885769612520446487541154113637103527173798940299035927769219814262271842927901336529017405420265644712067367969302436481461709878928329630636916870859632078914773403239416982902049871540978959761006532676104053822730405897369263789894409601260897150537566257315862963046608152920214554103001119559561296432526355259996524931941682706939208115867560116769061772897648537321594216465658768083729116148991868568501815182913630339502926944633138360068574947150063066991985698957867735025900565551244159444296646716074920148063073011179178628326339506950521999095955895956152362508207973389683255952981387636318775357957072952075715004160477097121518545399368459101153971103780767942115644085068511701124613450226882446072413386639193464379804521121128318242613674036687195038158107403468019584221555483117750103564696429332263988008125524837748323511075695793519069187910406943296928361321687291145090489294084633703930892932607868934411136513237587073827250795322566253247142174457242597170854448922312309426630768032396430366893559530836767429187326536149872129343207741230387908204133756854797555636912697923701917461389905195883516999149305468958784388269124507175679665684102256859560585584273888468579698322983000318989807060267515151302414484292404957119482081442930422907912182018196104781302280631870394271557892113818053398001857426444615093216224959036152859466863605370171062941291856075138569172049263318490691854462653780286704068983670168639856244519699058707927997361578916621622021526426872575731990426152609217043244295556172729381903014778703078199264762103212067734175727028658921122503977133759215006816583960468836659952112220966046856964749027134839429104318264378239908832340535569345390369873603852400526752869995392318505105230221851442395544691509146020017955973956838499266369164088854878501829925887824049588009062439193276029775651971380291626839214624345645093710312855586181903272781513589530884784250296790787384087095449970716682271206797015966414634388831780974000670811193074691011214043992001498694999798775625357816792981308187523580780393811578542472678705779464681860828265330138630514953493537634974708322495741378403185512426389256900131111413227043059722927561227032194274432181746163868028513003878453712745746403707306685424578649670780330531153271116001048375237049986361256462843403195170536670500340335642839615831788741371448792681235554732360817254497403519989424811338758918435684136163407021892624410662643396506553831335674930026791066474830376173658967858930632350865238530965656963505415699151317086138327670104779996547952835368361473429021018752838375841540932517752507925301587864357383514971069935527645922843167283591387070121083214547182309255750632413225671480113791087042113717012651185544916265268480988355754236721796786993381705413233777813455595853880963902836459004477531329865008349761446697175209406701568084821906711472588413225450404761338081957282612592788108100716941589027069407583232030193630025023179924397029706190411367918771964044558156934120049787955141530406204313795125328150478023509246095062216638982511104677329881836396129442102234162885373275556246278978883230561025601849476584916797622609183323506691270546587562412340666907018729692042238350436111490884270150653868896807935650337604628302622678030017695398995112517445730449987918751427627165407710420326893682859037952612874727694502553392013604317240804055786275788980048960998474010366164540128086648587559405369908053213176277100382534855715093683035948872588599513007706765030577535854216316794205433675821634150208611156342854038307890670559176492113687930478559791281617880677246541341085004782597999796918242736608106364010528349639378997156518349589036100688731914758680034869759964692287168449089320009768678162784810702671672974362038004129485101285968876860307431092654385887821814935162869842109665280049275126952516555527625893319021250749852169805500532409863406498591552393317409060342111421313965681049645538938979075589924399108575426555473797836428996188921363847825037295374760666309429822494896692717429865767719011430295634145064331025480543420156383253250871446656926488016140637539668534420837929391074195488621150965514848652246283142841523640957199140670670172442739992854796250723050395840287315303391059048525857970684820703039115396614077742722373289561148637797264391776515188727448819557700221009012128067945157260050811616796891278835365373238530583848272714990268937793577452738504168099608509832209231877042719364256808514225366736824777234892491899639474924012970011754168942053026689827599303106827191466371193370224073014930037088975768351318168745817214736723845199799317754404388079959604097019956960379546819289559098784651250059164105945495006313673701495776615193241458217657883042672555293723434106178260610132205513462916149886124916083845392809054089898988191949903987623061668222760242358598713391108655415227829611596504896792424729978964413958952439266240506869269285598206051229349234405960113704196348021744715297042421401160559296718255252808036952414935147002657921387212090187671966905556636036256377089168983670586449127985280718402105349577158226654368196924312100198151598704919332854907476630909269669353297691478766212090008793392667443821495670874621179537909221458763571170577801796573940644962319965323449335607963174036788253407823805533516497128608915465839751200146108425906711507238492989181375658968197984482370649598238056547258084863749893613712198171697081735289575868133081912230273518021718639587695911589857519246734947084579151627339462982686915144554151184867768705026428764749045568762185668466324069575534047021749253777013541633335988908098636097624391907431413846496291927558197398025842476092546308248574342713070946132647691899691483951681232398558448406997562322869131496736899911079410905001640796814235122548123736598841276499996942874543756312856022411930272247219868536252925372058037183075879404524196145394562229083959556868630868400973576331242504776482214196304977436144253462872050201662219172703047114126127606449890680468951599901864393477954790428209634489195250059433434831083192092199495012009845942402159756848865421475352982250282515960654634364263641406935082742822609141173044203306894669772536761001626320536167621976136212400785902323333011347157021817586729021260466958662822166021000554429334795044222123139398691483021100163434519391926048227174869964600905125756851259237668488672976241149240133564476077427221760554720572089111542296706616772785440019231394657435313387068148822865888198386291989644961651255951434678251004515985824801037070532862461126472425343703029407056513614772631312846012922022327054020238950395798428927448797454660128223286250778636399640992551154779593294936106250847238580605004429284156713046014307723577311833421414583346754477731484433096241691439303243715212348324966110714810862296545999636233044005855246542025437867920754814838639253767351021917270432597308133269949003661368593826520057580497137599172311660626837789210036089850986678239235256604257641569885972413303286407604464406410623940486048568413632859389759876111266456086955119098038558924330680596987965388576851116726322793220569112175807072160481119585796488466089415095095088580678697176263235795676871225736782813635643976175560499459966833868431545537335424535305327081455520436372824012892254769570659892826779980791966670764174020624029046116055309362141432291882438668381279495689272916327890517823661678143557759154845083218026132636106246043752943728355943379915880048543721030075383850937410794994720487100623548838255902450787511138503549727858167849357589854278650548950736247988244965838241302026962811856187627882799926196321593879576382783682989711398845540415574498199853889883326913528163587602952776828590016812842857111197374031512589007086618857815900172485483914460917139749431475012951326068400939980154479012865509441450944722202299630222685230671663133703605293772965295905058616266514299324335647531154787023590825762117545511661475572376999793247139403995330622651143882895109087289641752188933704401303757540817891943974863243517010090138151119392339256820138449670349131101547621436991482360488056722738900019090881080718628610136529959999886979981631069256135406015609294566086626303868724218634278818079155356199492238167576604944667393974747493429584804172101443235758200993113309484227169713479847545940865929422697479366503831509156919714051171812746968744568757340311195210291032558324697701802426385114491001325381899152541939174297183102834845546601275670425531736765426927549858432398152529074213093166624460522561762743249584790811712093251044231338913680937935705738557476057225196329000868599322779938783180234918308006247143631275396502410366286288340275182326390838496399065120488326124187244043007716669530375890721863721511177313598202490134867701683730538282808831099726413949247462042278621968132284825274255978340313009992569443729469282694091048600797783888055464695388048304640657341231868244888454043118012493266516158670437867834375655598829994924985362519268331254445307677341060067638377018058959999522078013127782227251566920210690731382606581396413759038155554041231705767631413435839108966635673631985221169287849971952311381130676803376396925368300136039164750296934994077198373347104824400286464095768344610226321116441304032511091354412657870144982848490657660543259934061227647298817640818604376968709770371034466253283479605267572347722584658117867467284273073140503332549481250318997034119648662922744532028593377283075899556945642629058768650915883713461142852593831470153844240711781611931763730095493648945688442927792737000503006849116452035211244350639237779957516227402324658918202878244177898251585809861418245886812405722001448721527092789928806633524196686164150906636591162547158452245430171545066037852507010964492300273289464314071168487298518635481901233537245715720596215191021813539751584012672007202463069765306214958592810881699924137112456826497119432405322539144293713215066208754781589231521327333124773993742369358629972461745315776747192199465352214585450033433916168218855626189695587013579347390716663944685726502862775132120244069714823636245367253520271978799171801587972993812062520128631436210724658167120369567106728081973641847420667759261398577354890734708145693181425343093307863117370969559497327109344546338789286267686099017271698454756494066806806424333548877913860751218880323314148239874238535376618030237039088462679367014982964726978936589883482192849731620949241594481230175768242140764683589857358551270343570398416917037942297388890271902211016470502641004634022793310195524477198278409298251704564749631981326185272255195382308297475995159074575610065195441481436918148616451175890661066998611594045085277085126810964717964461916899746466079067319050245412580499481560232645489915811743723399107288154487460898802667300353843628980032241645990480155589982684609752943509267886108937096203192464420922114081706309396721212797484481270606505824346118102637302386760205681587049465019012719493579457837491592385897720923213737064524136378563541366517396292292294327907521828496883206333927681873057304493476995109602660758434486839545325664073066796724488196704464820572195006933689516618561599440526684769270854995915913562758533105219444072468373182660831478376807302169418907073234183903889498639852786372584575052049594128384797999414044102099813848381047215606504368966400817917077250797747648575421785505419939688374736620321362494483995968518883495095645019876236948665268791345183832047440224107765682830633312064544756336977401786559259212099884055099498471880971866074063296115844523613249299055231863832805798518944644118589173670822950546473078798221592717671545525344391352586543315705638019237466215172562230012239078006924658139908607501772240961659800082457510534726387300891431294902218852915285458643006333886780288567148712529067088570765914859543463365133035862454861715432458623436663077907086318957543619095448335838849106120668913481347277903333279068215919802280316623637219607973660812328812143982066444007419259422470603285016490885260391613971158387718456336431899183841741862582708535745243979383389696251328652668060344630016769588600725873239723849111028840241484787392229041892652730633875105850581297190654770216554589854535778896468227494674676093578491151019754236557170639157864541210937503235711939775797798714217059590405467040421130656982743745348478451814801671195354319864813583534648954599033287035219474927553468346672987251904138076627264632126125676092708788298167971585589805125151551916716250343153582303595428339603956094531941801839632243895860807302294821827413363689858490465684114179621329549900513710469862384573806239177204886058687213753990511047785377927021478044644424343591322230222323960630932335586030035355495331928563311410162809537028901187259525044917973519121628738208175706144061989632527091578513694676957915346089685309353578869941040030849397846834811790648206828025345410935245575464405923593506001400715570261751362555078861223875542328485648509984560714988633529698958989626253548849818011599239804150844372867346536859144338345139842202358561329224454342203029950391469849851860662707413662251056708192688228045952696989863085603729902398265127503195291894897627510361645198828105096961559088835133727699989609933486467133743124968852719194086402196184108052280633862842044056001372023073233751714736595254680177942488972811581257669599984544025888985028098406183795947153071860988676496166057991513010980561091844825098762402150597965477301231303919674084530598828514549928522133554043689199257178264224621612045451937863969210053993788123251549796289229077550253437906789187855996049938810679943091958654075290700823848897736272808357038353890861441423038931799772026858570209608114332743460786140834072584361555219815678783400325117318663547046797134900403189410049303332358385862448272666864890231862212501700385948062924085131426086446183153637899049333735218756873562828615392947653822976583515289202632223507741476635241723731420479800737453918741321075634495210609298449704597530453144154772288112696283475774183908830514432653041719534675410754118593100785401869346309518106090201598516391792818760748900105418166847125502484753029468189179100298458690235260229246687992934340063644765347358484576930436677171922685667710144650263856800224497712205589591593248083026612826631606004997711520833009389137246483524407670764092905890127547781740182847550950291293781511172064225521422274801754641759626858678209218030425434526880908264533573280403801287012931617265208084298679979524134203479749019294932877650844810082304067007169517073762019464698740126023589931374384280803574660759041695159444742819813658395004071722755455936152136974900181226384124850378985891783907324397120509463808840730512459016915610626400739232668712668645057033368112302572701159445652037743828360819394435378687644801225662895172544344721956756475212350828084087432709262945167975290701202100977091551581802069197079554975132871662684784781613588969607318638128483409836827879558619683150123021771450735698282556989789953139103296180236555979488298825296220083938047317048209990653739844505064374593342375171394406128547419012325283380855484902945771277972296432398186061530999841921324625325434732402728265499367303364427473921324170083697978378134685383939033200486002195722610855939112136336438199186293935687684520358850001744071594546111501333143103524215957074405239090703647088127884519374879223248653410744004902705131614739059335420438888367871573076049007337119672712362101362702217015780910789778762232586745616296172963564997772326317304477734981308610770854488759681738964183729333977511464207759108437388064817721728154199402146138157497885168797319000683678164653831318607557305698498693130961332748819850251228305515441129835573575012011368718166077677669719453001726775431692550738439709614412155393501954583190870243214945948469124417217854724761786460808932467506940470400133104851230833877009192068229592700895181198972040123450956253090268533934250160032571143330326506176116052610214394576917016219881705355015285282989422325938412961025028933679964182477003642383677449060257509309752831231271247591918027964213102765118023337685195355403557791954675068675067569457356102507560693561059414502209966304255332449970797210721799774329122670326686186752902327505584198071563838721855155200605028201894140186450491139080724472557990214754415780146663626047242411083474575311419816982908593283852757838599900946464967920020785222218745672126618869962205626422877154458412786397756210011972492952235644227796397122424945956536372903851671122577704290428267032159678050963011093020804283470907145308666520323146959039940560510710850827012084685127313049114992691840785004880320380119594924976188424424862731485172317769155520107510586288795161947655443402940017334979720171932214579347810542545801272195162165805458901474419266366286327760355545501473497518925787837237128265645621582276353336752774930141537783302540651942351349021226649771380575899681342221926851809937893725099211130802005655643366309955778426341770816206965828558772869497855208744672851296168128814594614102882240841757570809951986147456601484509068504549761227907745025134693139785152681298486445172930563919860998917925127472128904950106592964049445809383708178311988657627591667664199349014060420416133484926610778446653520960284395023994421815271861877950783259523504797557978211674906385814427280868891600493176449207004188328639796959101531424087823935514868106181041737825254698696063882280473770406004653816684316457748733323828127725688514627817295231761619654215883167428166003687320524680573077791675137144877301794622131497754713322324456388175694614391052941800369273815198522942374638790031366892653445394429567427377710259563276174604487332132676149701155575308772915693475857172900545741932866590637092066539257693164089652476601102906607003903085157743280167594134779436968492728044291842116856593434124945817081000042782399500912060641718514286138885193611895011882419083772661559484443186960355365127910773109347596393722096275512333052455819603430399810366881010967984276849671604633823308616390494372941916582405428308350950583719820781044093192410752830873638574880553054331489689547086005262222089898000279597296430459093676936046791591127919482964553934481908402118663132664178877065656420449367843628777990629931710986749717857315978622628526453720219764091147802634615915316725636590517056410898020538749634922854845882829847060234968876345789553256034003455134161622138443289078125003097302884539124526963962922431975206099081975542791018350325199145949754270530086246206339505684836767123697055329574621120518725693151367793837126504410806984969206585499514858679964000139746915584751277423150797397421002922626060063869793384623705542414664517272015638318120981818792917357860609198351014432086975739636072043411229264435790294444454277659594726234614245999702708904714064606113082136073167849220433147474597244059091912338351103743039031550794571489945908552974334242738734735917741435957425981277125338752383296091668003376065133982462578276299697692777092146147525081420629091550031126396021771920845682428546233560140338993347345651057059144301046592046226858813430262670572759329047745669365948996529496008467239666805482524685741402059231197553904402723621004580032350900595510971785789953475141474693837136701931306875705274002430251842920707045030738644387574339830281898880495606878007476733162564787227724158578218021161854056156266963444303362195774866092614170839448074379591509495337973762366172265697410324272616520777022852237141308797473237616819703511725613509226222158936547224503440873553257134944067107821932072110549233854210728877695457720705416929147737186997751962722377501491597241421406173005459728440513885450582535975436008379927154216214001933794871841220482627878991698125435560643079141441517585599789174077971732077841939756617877887935942435725581240817529502643088895314248053545861211953049935855877183045182334439777045702959767635752471222876784118450587556891858037837054277164216431831048911523161566348641251390066797810456181688799666701512023394093473832443410270694712445130642916221574816252216079455384723658170846863437748869300904846415990898409123623533261244495950334556690878896045633248685701429638321334033198917471935066633777185167175446275072128060122247170149325800632225658753887792426272738849853118145949154267931791717448156675612057163439678871228333517132730313409189084449180496760072792817154306141872940000091517248274338273587508340198072444043029860635189370659523985441216804897907590074992956120894942622668588664615982770506099431838838798816203326002249199390185714943903154831464568786320550599879125911735875078561749216232142210027062479693037776796571369718320669572652816978995415794722089139511605172664996272517301609320432596632398258483038132552430068188011800857157594272479807792696452187922120979811971943698376749079054090008639888843403912373051297806248869875005726594208456159056992974281822354614161753012544804028074077548530359118639220881545640996719131245149590323020528383495067492604901814320718231287989972880902167951703396124390037203924409933984347211659369248740719475030381597153599285322826502552573286638965785360875843484744172979471785855573753117088458273231012907744604611995285382914084772237106056633088976601823208779550550119638130535822569434887388148454475589944178047852240866601066199061515836109076015911189535911171920771578949630354939018608660857293708065497460008100635586442684366370739385426594866795377425864065003895343074321686430745472290768554039052246781567258951691185480262584371595747390631954311295325350236690945661606628674210985863993425207314762384198703916038705561224532544924500619710115695428792018053770210013247893268149941381785880323780240915051053672308213803988232999592159711645668701302277863904852761737863035323566219362000052832402032547838536846698468171751996069800106468045470525370554874675737492085098150683124464772536385395860648766007496328841020864309178770153529224788651175025521375013901623077951214945745029386848962570448450753380937874603662119453600244949056224012677390483463652241429964929288655302399270436679998608371622835393974925648412134884719838484006471578331961685060807288502921216139725507829944278520335009084554157950843417050690150699652405131288030432372045967083669333295813341946342626417999588580615903745496825138715537908898978843071888857204613343186323281256348766639366919528693567140234540796735341512270739922133387723446291368120642055754889402487021645671843078495734878396439492821663664135026056381261974741287104572269473824761278972110939025932684091121264799880973003748864784168888790344682776668174061236923637446935607696893366245757319271286470234875851856148738523693005529960533150630293446196510551253908048421041808280892394955264490356351275313990177768701916343187996716625543439129792453791801875998347047040545518449116083587050825666032796268908241931164661308708264309882368867452380346055050891802272866697199763758270902136188207861195191561541279273280111824385150484577114881268306535103121704610719423821100291212738123494267482458200913196642430850710609110606143752189978583475231044721860138512839170311770532703963751354366183466105655519646709177842933603650394853607659575218104580193396540367748257274659439348908106777234352997926326513900807709079995993229736670469426833496064228459055775246596826933393869326975398213575131648491068275104106068605059783527099127445439335549548272675863115644698950106508244310074082398271585169729454340713372975012231664610855893735981975091990931621703321072855630983826032801802261137999992313542784087110170884315362090119519352598888562175767497900903027282738824513597502033866084266975675357270657958353608760699640445965525824903589916005089038507418220821745210367960752406864617726211366537929637294274012093051594990164317131603909846324536897060831482906696603411011216644908437760344080363083697939782592745075899092913211775853807628204446186233101998040622775044447508784699727850919002206382374033833008164572358031786063580380565886650743098953216634777051106090844594269689240211747933763607900835873406157213381950888965880687770609514333054953566164245237664391576357064521584204762114408421721407634171730628994940588418018461419411047368277287794743199375082092245708116608585848699453396146408682703246949503514082914345689221665761184624285766220196863291782074997361301114438305013521922576534863115154084444236991485192617668990994022107577130367471629974833214447385651108617526723175536500954239843279306400548721394140377969423122167560721118459237676634818831107273145659305403323207128731526292391936082861977485090188250334966746859875745902944137392523943013509113508694202116268645622412545410152140185501359473564672266735508765341866353697974681572312568815042174223660117862422807634629543428076399444733754582163574025866161585760594808694905073939505216834534621239405836142354741257097722878702363552340383369717215798343216692497917905325933538689914882928461065256998333378440324740675284654542374122985923066523756825954329578246619719079042520017256494323625157375603179882041663864563432879046314475821549275695006257068308483026345454501478681884178228131604681092568654414358597293801020722822001507119537597039408016330426159276672924381074542875782288441720337632615052668832366903438975980758046292050349919819393676776665547712489045754807478968196036664615182182789289104143400321359154554148231360326760113067142598152402221675578574594216383367651679074669075836975129511409327160090007407609575173103954586676633321795934200621318070966012474766659999557427495385651169847979589395634879483828957016418288754058520766708553400017036674191974764344833037364023559989250143926693445216718253726212738269239792129577310531972702806866121939052243969084834815107467424595405200836222177162483952196176841270819933544811387272103990361699030879598127087757525999308141218827506909900427303971299836514822347857642323999808429235037252100069596549955479881408517687682451147143908835361376708423850040876313964982191840337982861850171037717399565215653805153585467888186240041347541285661235571314525493795922136769311135481841945178213907584080979679966510020090701696161485877363469081195652304063277836322357106397585872246280629968288065718428671842415934316967044548401760859152290101854967427629092451429179445213115530189038747775104740647719005166254140321932034122856931610537523627668050661016757695282862374575616222282096991550280797029621518414804109703536165469543249253913401410189257873033378149538111311820005753131358348410246952829102258236497497173125956389215636016848978814716503449703016094791792822695975090241500560973116734294128146966514110447589590837225334488074636916723462481698913835203994550521309859630114688975981422475109691664740692148332755284599610791815925375576090793151124937300804850626752512560020976267107061706228058350312406058418785152510868237907726926468302162683112834805639644229236133027293050096454937912140457624093113263954044182749199856449287274348338610288956207882984651927716562261711957378726452233448544346183785306509162377503150539457432029037309642237177933199803944277489637457133431062357937557560383926986574557288661851843957272181685191978159832104985263931174120505155934935276280552136667152234922933664653615493510070041833293209049944302254880158993574332079961719649598039760004762911264391848327407060116693904530203500541366758601589297656624032468728683669414692880204538127901653870100839362453263696191725992612283769036764873086531595386814447482909316291125565137101730108275945631122069946572246981532412451753549495512449679020283085000895525930248820285004260950220065532893152059801718423597491162964627587974317158692799514936394871614266265204483602125604367734860060184587435980792632877500144518291094652959378827516677079383717175159677536923249903946446221527370107641021898368993924985684036666615713746634190395366467730064258243771922487043769258876267711139401619126488907399716049185497886623769141132905962030294170866914404943067493547682257701731758469446505252053294878973330826486346276118990066329318070279000443854741768192169255529883638284945468189651104362752419214574669160899574677627819400004960244787488858884265619792980624962919787659153765490108798483103716668663216581767138306449763274495412479902992341136837709605905092945687487947946167174741466070710662302737229058941768613293694119914159739625573565864269828521768967096733362241291533412219613789522182796845709526885078580176230978863138879964205479928915554417677872775735473024701187572629746344339857618735056961909588558989010419494490262399518113734161892056197702176253881851169362432816274967832433886963040417241127944916396883444279658339484913579643219482440180724901524153585904757778961024749228132579667207980087125488762812879182979097650081242182979531079304532310101497004043007426854598312013403642892664559798390811438898222109853590099866029681775052270747192685928020832512231360145664640130076351551206239657796157488730527328684040807469816705288697084756974981772407657166063612399895635757782259010775454331941747539756913475605474809434032168460245009543298471429804678163001187442145912174842765498343357534599641649690435718225689867073727078430254988959408832840205147279042655850735403402684089038913505039377809846140229122581631942399388838643421440770802257761107714846100670031238777315801051460549092578957840163459947287357287656259197132467273886422423824686430613704463932729656420054490654301813124272692622170886645179311145455292287820864961219053225279109966309362761480911090334594100069623505921672811933194687903270644356697701731680581145613166395923227309428438335111929649102859371840605855768834166807063005269944499353114842288520801862610791153356442246288152284297473047268541211368579772718284913585239951616783074944458625355197638439374088820422245240810436341032576181625147449951219271709055305939939679872980785200482153213652275026658719548607917152796238392980252250768779304417642231437852466687318746932552629083990789875484175599689647276431607515337083646016259513536001328875851728498558599160138957143066906420667141675229841263752912415684640200967105008756690190405966877523077872274591845169276569928182246306647683475852733914008908087526576308275243913897564684575048848698115660292859855292803398255860965411173075629190507075401138576891270983104833204526799284584795593585547577644878311869980972997321983390262319043991244865290379666906994618906774735534014031297985901532788859694150739163260103520153947809126474061703369678422698856735095890955043786018580873849298710088642556283642499838313369240790149368368231252652362497831805894076287163945074190174248813847801104643215525160639212967680330304275121754060080289533781965702629590510104711951811565286083842938521187039567711739392602813232004507210724882888505742085412523686934655893823524876666596145245735468870206417063379756321940058290707363277389459063376090672733340028106276847405118859650939756666761863440939035568203711685007338759654872838288129556852592714398135748183891385447973392223686489250102040375845679326662476148425310297910266151747273144964310600721086701155241200684735368598924478303319333709190785225862891312973829641415602531365017037519351295478244402076834814338384756881193020664429091411779301942283566911192368474078975312244626154346260844320792324308917868103360460182021629284515898338714276712844121038935073146395514462303959063578417217153050740917601423028046454987789403528771704075723973155442659747925974080435095981041399023450860307453204081930598153798175095203230665437640520987651312854552765172392535884940239182448788715793777819098717592812082631088322772897034116916793007366949461641381116479386618566888873905615323803329033757081838442051542212614018902700994345710414110655740340086813785122451223503024490134750139629940003994621764297892472807783345412025652292676602098492225477579561077682223436817304729267977432910594333764078056757489634427667500151681922033779553291477886747069840336563000886017853163054309999656736904648467456469477907043232066613086966215086924858442965116809184115028468386742854447435727991074717089508903094256225822815362969954924550108787753238244832460870577065011683019161162786423478881463169898647458738867669118059952600355738108628670854763690236556590500315276258417383440032289480858702443084271481427633430904072417562477488713390382746447389536848600988859460733718228245717148068321448662980525095069232172617503084035616286224150951900491174116295509997759330805459087688010571492612658673417718294297492881439543519330203440909364713437899723842502366586903368492565281998682350502553386775177660743014053400957976294660404415343786175423705471169974568362638498607438153341841948286522641408746654012207903403503736172822236079191452424813541352319778919787070079545702093722731140146797388893195220075560452541364041931537255059041841927363349889244491691672687598614990884041653392466917965507527694296871661172737141779780371306693645525153740521127119051702992358544098955552229147996957520140548847097204913737956501837402490396469965129260732049183452777215640769079981817574602617328336171264656960008997558614214310380549053445079250665442688348366735002252848223430237402625361245232510901772137567414853713348744541801331880982568032010343405655467127699827168981359738388016083564433478263563261899739482213257470033995163884942265071771866884058617828348057465446030368946196041682725106153436790791377420998504828994595886331515879834543012402304947929564769599016947018799168522827365912338558348081948390472010107123702227452264335438960006016591180696459991363939019053300997362588554363525293782008114256244732540124305907979698799711255047735462397330191060176763618194537194598312756741225182132956155539471936285305259113759497169675785371280334747381744231561002056490154622759491271614934487636020122125906532587168168455053574514052565074664076768037348984567024719712172702662638230138341788725785711100032104615496995470990498654803092114725740102564813530767998061245549841701926379531473517313880398711484026014456661276137906323084384788976545195590227670959365738957066168468520329531254819608538341380289434770763369628717712133527012320253245502914524779681551990388886741657671855108832940689861712424296222163111975575713512532214593882684985861666759018362389703391665776931985339085843716268501376026638591291267478151806949426917064288332268581610449194449956196628812633858301790845853006713579808952889485576504309868869396321701181381955085730705176440512839231589963214130703745940868995630372787005116615289924716213778283801273150190569307132208087729920871351837271516554285675963810988155586482733858367503187081690053812907849849595267832757067026811018141162335537505315616733406181890666199300012619044276887060100873414877373244845163431675535803845273012035619620105129336875347480257478665845375656137110352831501003115421235689293149904428641033676257916899009088085490317102581052493084382682107716185044912002743453281425410792699541473523866519467543641103129562525912459416885858338333708989362905832059618087409725547238227418615396189795324258997810339983605143296177669740682036934751166682419077898140576397885145172959007028137321406045643241449114498339390904144520515199505379512728977110255417923683226919687314714044197091495636661612633233393300906726938992688360601742246885269505087916281137550958541608929849464866365434621974923470822033908217662616732011147233164284677980389882548822695911112197607741697409190675675812322616309554398345366065116095720964215906639592951200849402591476173203211014722510180271509859636780598324810792025570619859038559456353180061800711684487618038096246294481582734011565968452937995559312657936446188903001015116493353338578376159473854340570224409827618734308485114271114863522705431630215569205843033256495423974974316303440913142989022370501726771338777006193941155029773784832349762008745323683949260970220116589265229770982726745816968523336727941900098755729240237029785732520759779441638108396655105735054383547477465500482336746918429107822943561441287647592558485330810257203075287616555675010570899253085176690593431724955119303730236221960949536573086097943639768251790417906154029364194394573011001596904278151103254370924923805974534992992183224736761201602780970602690258135075678358770258789918047669258597564072174222356003927547809031136228616697690130024671606506977470961331752084790539903053712892368829791591382129697333711855908446355305036207043585487411412998989149684042461713271021839952266211606191764106220795222639092109469101173320048029140617875451933862890279769964025511344244346543803779761152100544829784848433593789120850784154320727090094952031192697124019559738675851342454460462720831458151514090897107711506523476393332058162438050000267849951253416978755021227952074651615402603288150145551316354809601225817354386362182628340922221140319904491523008207648353352873822142470486956254441572014906300313326874724428967193670443428106385880600194905433211265912644039241679202126458529988292295875918922523519763350190568227878422272308154937764992204642706103551054139029599690378392997640474111839086886924494672829372019312356189245849800147520658712312433569562468074187190654265834942555515597046609373474729087510951693652473539516394745174918020813161686452470273439046631016575038062893837967902116696813508721208962228130026815815581485396225259649965057736290109990125578711760282244930189837709932779898649116689784357507497841537083772759380350084970262541755676332884849013663416313941919333934792711350149674468202675954917817203192573420393222983193894059325250890468351553509943241737214972306732366027838526567464212455137062525048779660685495599578740371964041982836636253520805789108714046156541558564067945103200038757507958220907661073120865091894462646561037540369587195006377862954437929705177415726116222689133934896092216228201315174167555023313899632424274944651525689236728072461896407498698306888292554216480805454745548519025455951316338477895862650870746990236573264758459008265209343857276008350939888852493773936172349230097994671950055085381532640648201583625733158368578149963558754236527849233551983700648278083980879347974540618953959104564064572626943040105397837807669278003246802299309774103462881616603996294794886468156031557344406180815143229309537722437440181146326103010228002384601610507376731267395902918757763984203427985505476777937242265945617168151508522398996397927392263533129889087645983223055744747421310469699570614058989062249275073176026689788268739735236469396036296788267959454442871305423837599145146697267199111580901620562065205127640684567056319217754142443446803045674293489441716047044991214708661770368751258144702322002149091347398588920975429068572200223927242175977514923490915426033022741430007154772675208432140076221613270604736662689277558398785270868536955039485177353829611310545797653298013388877307803314293602918366196348633134743891264585926031375549295050827696411945975862175579199184210291768818405473989542066412997887583543415218209584326056476375314505717350292612229767164544145056891300456922736611026467106373237665198577146772834132135023378929362110392394659163380873477705508399306960823237109648737021197366709112986684289758674902226933094554098321133829906112843732549829926326323262949414121811449034322283362578944194160803154917605105726474165531437471842766186680207001928799916855535215141461089891778080921868097862533636789058891826437480727486265619852964028821997940353491091036517680968086148446180400945733282611199037663974824429647392979061820525285849822580291026278227962136172628071212806898276255769676993236037579220905452753657957773304899326492077637066668013558415321484860590868685989858461555249940865513563488735007419502377633861145176824251147122473992902827596594497843147450062994395957233637249270946931733334838040626544214131455518560761269326338110969658287341194214032746821432487583345673210379215825692662379637097454713419572227327990187879078521292223616222363161137628677202371763451484635557268621274895737606497016776861032485818372495780530559513876307952343756728298897890677102590811774532126026226823195597918003728176826700435618210686422157279941707382745385398647228870441083990215296723030762125259549033133745883048866670223967015682905833395913540268402510420994925748004675544092066621686540670971461698012688861997806246107145447230590589669238382301584886502487051954066284500874637901459963567140138986461166550741432101403763946370552552447890815085478581355217397879446570146034727087997580402537729061297599264973866696327595478932649229772574136452633263146396807967914498003194904203142758403803724454324357330368807835811228582943689940642348665659523031626010889624355927646340515889410804659866434097941976471900686961237910672360778611069104012856662746522823428115205534922267612983002189468777046510652141429053555193806823343759041822085705595903537720500397249542162962374609483923725143587784983134446959748881195733899230121232025362401055702770574308332427874429755016553471815734203703140464508951310870523798178498836771308554982771132646102351556767029929636534296685665060004049488989764109399853571102036351591660798450302793799911311010217171319652886744026225237504565059898484954870001793832293182226293510742047346627948435295583505894244317182406492320703822495863556467732693063989175695949439524303308256390069226097487468690854852421486293227297403209339333640167962612817817721674802907503322293454118937416266855862691469530207154330551258946470180970654488155099915749933503708871770800349702485538612919410100148703644172331651055940025044812973309743286642491030791492259381622546885778279037728144083292943647365262326120296858081303136927372424417414779265159855951667415773315413178800420605273323904552370809431134436822491050574207511155587565724368391935846031415505783662883402966378963044326429942333623622864518619400461888333053147690527533376518521398053291187306384721950419445650934206726592816261087040849783179402324850688779187732934554174809602061538960294947366050367430219820212347417500312364767992199207399872737403255762922249874937435986154248054118726633352379303208197030984200707170981505120477985591622924758218304549126779436384615562605175251476113914959915591433072395091175823277493506457052753217286224760727347176868486424102363067532767438341333967609031801120937071502177601327463959700218858711533636487862351430410013841099984015666264407515330983248518357553089363455518086689948562767597229129308438489972504586733167299195224080785401978190926216604684347385081057932505059704987226627442976087109167049706779211562608073346485492052942901182138592534895569686385646884902716610756199999650166373599275549458891563499837519017533337615496794007073687052653053744778897044835476934994113927805344154759427925128899088347450070747770482175097123073096254140331580775448633332690600682146322511063602391574261129043256448381698459237082023007395015404913120642994813654020998675684718520307880392632665372755966922157985808999951887911396767804905134047290626419403646059444798064765646200674105852845323360657667851519151979640002904317730641829817852543219699222504173832323691378498638207831061184873976630946264387085952459826298973918590829809197351819397173441440608785075694265546044377433310429797365569683219618653899837855379873813255573391295120538631829449750972316296050332795787447396061895591725263526626571668337671270672655700407753733956079404687938386533691492204912784629681074673068544122480283827812230922723078088397249174188268954241447733570121373335423191071840693280114345171134635683293231992828121142352839376399872841311381229020111076016799355228630698188345138444476667846648264230096037917884307681503830739538997444556460988398308710122882631442879174160926306025847972174497975739510889444509288370287960229749403047036177600751668343417207084971144328195063557703973176531246166506089580843790967701768244894457446436724186623634962963516222977540569402150665615425613187381145598368402425618623501695447300276750887426013704067492040585642364910850317764853854671963622479072899327719904477775941320491058313050854167243633213522890321573333990313770928970333578604289474189561211581184862390154775547789262152128972570417410832438861665697646045446471312710793167460433855000107620761199607167559942302390623685708310123830315184788832515688460225868209981062745231394383645487605396437057377535387198718647853960142429476571994559067405898835991881391860035101774574648301957956966884624793263945672509281707658696816036124521013010385650665250619674863787602951646611093686632155866114755869215016449423197695296375299435634637781754918404758703025611316098862629397466428045185543585990340291188247406374684426710034842407112475256192740709500995225108143849423333245383463679317496167382233572250124329045074895830924592898291734310490734355638204708420740752804228210787490086418361596513739503400621115722576034042419144209709877659478325576165680303662031844794006391124859148414204062072752141851538292875834669204314993383590673791785222291587986973386092488829355452116792141701619092661937617808310858278604939193983369529764334820344393210974085910427039441958879412915236878974266520842848522283227889746595656448975196440341897372243849947303339475457976128817415211893456150020072644888510722552829305646244160269960643126776716016102488000814834509982132857956290866021481502966834700641476306991240587905639016364723440641845618294767082213005574307053593025029341819527465044628078942882814176714477496846968098706394427828668330335095667440124030822032901997550775664207194897823252889785996894048284646061162849042956838372616915670504986436973597980269315412312674600280603738089124826816196307959177261998310528037035941798881253437573481378588177706959820198273546587976450303271068858898687603965557244255759389120732079235270537423722261280982245214173797742888214254623859594060858266732709552076529666517394110949176281578174153454057896155516457169955096429370598726489234618630610949955836224632472823610748633359621275058507070496881048662940467012012642808280479593678856214543860856192408151225980293077731091435592649377261154463424071072270381735224261729403237322213645201244522676917485153363049015566526004623757366155392794114260001888960061836193544360569044582709046118729644808246329663418301016370712398041380655099588017931919940994386447062606875796558783134170183777889007346303070267482754524116137293702604703605764945273365128642114494552871728160830772413435772144433767755249394472181006273572564248726561838026092003609400814793227764948702378399814783519537343393940562931585294249642676957685917382928170229738040587474264087483817814498065932805000036905425563012063959872525083292819438159948522619998210200936946081489924010482055601785470522480051334067439322727754262846518049817831316764765779317096700004985224719158859198889495940655509012071295104511125980200253506182532567805191691492821183241281475032312987656414689837515405147946145445794730836999974432099205951157054012055328237287927074438610485686470772825200982769710520931474518899099991375577873860812713920352540964026339667677289068516109030224573023211847027111385453921932450465753852124683583730496559239751912992344762407850883804723511361385567292362553654588350336905256272128493446361808928616302675816961992614319629865962935103420265850001484500923501777713585664225318108133119594224516663563597487664050284522229604152410713572501448133406953287310653994312751183905400503604674598224697115443943713104456771351328739573549372095942076157404823359888848623617053468307591917085495239394449977202486319059816776678702431975201081382250134029970278416704103878541936115736956567302143213227088675303980820978644623817296987154629981306873528144596914922102686649535138170545435971647862847065774194482523776697341340796496351488199645455885038773169213740027740190536191394276232120126908383105030836459005980850927639059937212289444900017696903613998315433109436821168592436282843210802134741864745315209405490887323787543289459742532981988050217774094398057133611305864061889690090928372779939781844633133953172570451103088913320018270960652791670433629565674599981597524406774172447266602884798916416702164497480973513445560652029234001452214957387354188456433306572673126965132080800386518717140279459982374506083497674231393231164162334449948243763829441947023617091836451388203247738889595027015144661015067660711237962064076414383075427778016185488919382804725397976707081812067150815151405668969716063336240278229045001915760741981075351096607335154258306502872212482195266856467375882816394419019821465572815446168549475155609214584215353946718229985368882866012506466887355268434302196354706963969243389673278745010750232201540417101809123330601674240856585797711872208146866380898895458098975856188691644225738069435045183442957444102380570756352392518522797224510818544005140462262053553769250622839815989561041474065330607086397721021662870491407832794554922969712026670922961182444772692124699689534757643432439668037357535249099016308687575234203446151155911870732781742824736135243046292335813785861765183125798931624831434132050860534700803087160692296371774548878422435143893267484495736465164201809678508312844580665411131971548858098830548791811521866770911893576347804311924485357786372654287660432555657907410425879310208360186617001549874657175986787171988042790106216019388583397067838902166506177228106127738944802471834700581033933046837098791007479345161459400796178152281958123351934714305004530879245590353148481431986209479441190361924462857672387986258546333851314181540116752581560094041178344410699907874997845444916547931322116028591737482868977998035046189331633926627761028732621652807984594283355726110259104402431957466907101694153683584030768554048481199883998708516701237462171599770728439311802947982862832377167520850911840328626569905275491976871511709879320294201853940700190380016045340013613883299730228779231373654122064508292174169090419007717702181271783210037939706559792748982184768505160385144930549047305356158913132390959728631927014677287717191389051766093247288110434860765254752370006115883377960946326878833377783377507476822394534013170649340311809172335662799095735716664345463445448111363886101515103911031695229318153418114783636861987522866018622245423490473186606938405720778510342804393867736645242468110494454740186186556090486486213855027358344448143406638386465923015798347523672447947315397638276284025829170096768374789751844109397507720944945877102663129776338343928800327574360844237515681418650139181941660449503116466786311580489270364320730570908695735733641634732052133638683152823009402609881158000892134549166298803822653236524352022667512311445499896963046575834127544902882356797080188472597589640918457864475301343941900282965026921882294994676262427889369536017098645825567040547033111891248152937718920001502843627347388447757700112212856194374942593562718021290671519583506334677428152356676302815975705442566541750696553235476875117200193083342458976700129979830601646100649846971646296854136091053811873384002342931997474689227063680812693193734584395683142117290974813819970979487792996002241225840024242715922745527677023946785717305774399972405283540852689940054209014949085440319382949593539900449144679684239328853828533499094602442716075057606169612129775847767677993799929996654535516735405721604451373025203078147446461206724913783561385952268520151277084323333982313028463427097822881140793620953809724319525574851615600150089781594375205312086841978181726562566038902323474658917590918094417903785708297044388998059871671892090788800742841495082109515607912744635802808105253344932258317216226540855221829545828463453032684431923998586019734647754879377472048299760908432296978823694227052743548917350938135151952089669640680242631624295414406496054928771486316931634595049238729528849017371697236041087056916591051201416626286572680757864254757646842805083517281008427850531193843134947230698843403648250336142991455845647092152074223691807498916780155615337779749749593990370405079803589985182854981889897721647389187468745459074581307236986214767126426799588178550748936529470248901968274291806698183185864123480830379449488482785076050350524931636668511309525811980932991279911559190525539301392350238048240220142643342853917691108339840942306272549109849317335777006953588853711488222564227268484872320602977644751526438974942417558262882794872962543661120612980596754754779031455977824091337864772571069122933663732936079833050011647124447696871298333242226974531080428342500735045142488348551637612229654977607517238049074275844683652289870878802091734555715848638664311684825986240655052420550708070559540622221669931004010055586467830451585031336237943374693806428830967045688227190418060612060709583982371768492563856904241896536468060432053773880038706561297566013526403563718988292080458425653419192610201853367288751849443622446469185262173344553027358192444879035093258788630309699310948052232591799374953158952905993275774662162355713097684081540841705560376351427094491686205087921847442009804722547121171025084119975384909372857538412153818432969410317919960676164097204143789608443048975064914486609143700751785506338181390214975683887456599843702053452432848572809707192185768476276784745552837955786339995553807560585015129856392112792679953573136952190515268558741774098016690965890087099788428765971703268974331240492384929169733064492001371201914251435938059556201590029124034045169938614424834926824761962516519753082673763402767909971496627156033383400855442342528852760031284641332861130424453451418925612209244893590473004035018483407532662707577337418827447393904268700873417192960132663313302137696289204165413113847266020308862210026307568723843140975428498877821713606023148522444858420980231964487570518265388324128398631733354384543132621089794165558025120072212925827301064479236087668393297444249014265671134501733413726384372412168518996527184178780452018731613591524396173131854051395363956912343130442144369269983183113480073052556277785351326910621363083632862867106582306544564925360528574844478967544523326952923309079042163882255261488136299284207045122258060458340094790269199630569367569231319491397418063027395041093670740697128187099870069054661886006306188437010300618475266332563624217759372101494565777696843107953725421706119381121693462885002393170406965475408582582835338986041304994337059306012382071844067103720545861104877588203397845325475999385905548969220957598324478107585071389188903362426228597957496389354801643199176842828695312705571188223861217114684012126662083630286399387026108401636084733243043134777904412059129417330708425967498541421316810524606664164790110145183082425224250931189373142661357118052095012808868159889781863093752620724089646006004895374318045177798620897608094126734507243525682519369319821039957697682166362118424967262421912959227779929386000117090409581427806494667325400860938340157073234079310649326987421928586827870684479335394397699597094649379090896403605853896589961049718931220826615589672135523341583065212515277764101416790168208895663158217394705404216987462466613217655472277917583212749342295928728313110980160040858384545105188339358167893732113170749817408710425585939475535303287199537115639675662837574083429064744421453654988671392221469470563349062535271103318833261016453094812686112249602768463330829517545268418371642495037773618092975725519673372479569144672048981278085513356232164834578523754738230799246627650895410351579651891066457877861469906459820791615132205483894977269979560390302824136831586656167096025071516536558596490468684133229485480686781792538942838801821663531575913088053238080463387389005862485838671838941300365544570547002087055341532676371343303979580701217086605655857176307386938870563558681541437900831233887804244903183139344710350235303759220303773065534693319310446295428722499777952699633164495973012600262043645199796859316801750101148532576957648432263819796684748296171910117916480770064033825889157602174335646432519836887584530941195129898462893915189290826157517065205902909031547258299991203879506475502933489470201226094311491617858064454625271432271493442813129404289976029856216940117883740627972133136190553750229535956974966859964654587897174670204470972334608978544946586038439333759884549265965354845863201584384147859276626167378179647185862501403734596371748223763782664918869907969599922015721507610815824743123915067366179362201270647241015503404821132330594584836985498898008620492549303903945238089495331679442614096928203040219857575501886545022947924116495775338746807076952164813135657275962589514453069412874349425372935369257212385163683354839679380523054868919281722309175382887207509608591053484063317731072309539015295517434470553279374579746716754331951026543087568557441326673830108570148422822161301082387214989962089469775291483559410569463605110271867494341341382892394728576154866618166251724245102265310898736559873329946207070253489356715495250827747215617130553271705893058861025338109752931849903220358496069475393547324516657265109354166991472138205631984503026838996432379653809635945195846227687005789547170364398799531028832014140579326485003865145549192229587340218600529392743580932027366328775126059874241309444470398681452790533064538433996904837097918401325387513889920364465842557090011862488077504228147952100559339647427934889336249511507504491253802058103816585261372607005195530994312329118704570847859088917664750915103672219869524786465846591406297788937797296287456317780321151989206297529860847317080663573378328006658599350785094512075386201637871876555450204528830547305281585949283809312653143797817578155951219021925416300092958256242010595181657998408858453964889361976223903580736250024063336978577853494700453017325250437750234868094261887578520079166957428383456809144380300078567039741860507522358832556281264214924329660683328648488585419347810141571092137133113103677202228481667444321647431172559265258804827052828769577929650847095815785271361658363545838643709357184842316778898288450144477339029648623561183444075284646657340643222734443105512387886159707228515232001144149160626456379271438683833237233661218062412842565506620554519095610199156513911253059839209876439272223585325221416710230947886171855168690778588812312233902973011398575906955865584312979864043041399115060597466726052383277652928242174087945674311666932611356273351864202078373893011366789843575533548402894416972112810332344030180742733936957064568950584773791172687544686412558511915899462615863837260704437155952801759715794935617547871657273652084665311216813452355502741852902055174619062581100730580558293185745736297212540604790698336256157594962037103611273895812520641675122677833019928336063954057941531992691090808224601305095429686301137318072602881430134510154118527733897094245768273541949033808410008118608249172848041825494659486485513962526198550124063632569130177531164120384095908535513511930798941985471987228623291803825782963538612519523426148890207313800733300168324434295718150961800366540096317233936638279094396553211423959550266722565534200245449664198069056400194948124145187238150429759664235196348808990563733270348656727907226115622230102913085006344613115164083018670798116621101734524150554383648020666813539274322703634587152430922429729815590127699884882006760799585063532604255934577829832781657312011736330238669853336128084168907141223131610436885723840926323669977753706343683290589688234372657815612335058337550580297086346802653848130489976653500241233520995842456140706414467620725146697079012602607912913797259028239785984596379914616033425883423133815722412003054498425775224712784028327677823070197663712235499414925175681914900464364888847386160929146038167797549340811250836454641380616032776255906998316945626103701573477423822222021953570744672026503599239020870502123225994021769004862473960797868083986542340556761321937059288279988646522132808081492483385044716854089162607939984859741953696543137298631684668065051793318769447864655247587204679195860727129281125789264921054798411012421174293100784152440514900401070762309932552042662214074320664543105677009558668263933543716981031599721352424241218754801136675482882697000352176133522875383740561872868631977851158832695141743035466731082772844243460509515667548834866455679839902021947190988061471862787892597882990348575477563881782127754317072146598325717621359260483237519922652966766459024712156996869727899075706076194914536855913093757773627541858929902053426861900980620864906074410380115359024591692398969240035364453678594330902509283493065589628540752037161952642695236707515262116240912491429987247313400234809200263480857755906060317359115104267107763154248829925896793852383997708675028458062372510543511707152609082609829523002689345567399535717549084596508127403862302281007621632131132109702328908083749159087754949759789534852785788144303699678734062665891006033154214544114106944352740573107417524086775953330629635524461282488174104345790769286822783459657203744038590731323525685994880892019475784395543891519613235373170801190432831716544881461224639425385685179842688232263104996225615231871862852797434647187042893129680155481600695836183209209011092592521498275725468357986074603511653623161618982232988789608464168211897644143955837578826527252495236134975096166128492483446507042507326691573808578568576464821992356983957745434249300802790229218696664529998962287345740149875995688394343828952021995669463555536216974700961030161889328383678952114470708335916479419160024592146205040902585893985026870594981693542592617534195978406135268244282762630948623300415486797415095442289409074708488118748987220904143626815221958505876596351639049055543203137510426434227079461334423112298982534319513316602244094523724382575503132137014275115527189157466796712315702391423058802100648869077263113601742749593559387200197860079211274834726690610016303525740507081903061671705003551716998113949720798540195734500030602427386762138679904487317787536127555982924705575070101343986586833774196362625087000159229781929930649863783201440732020711364258231880526714045716274201847027854597639304566631167376135764249341231026257050649505286690858276774579231560817396459333586285434648359472995810782035730786890225578574769132245721106418453159687088128853255315433066766750929846671641828453074874485021262379921462588422842498190709916025794957683835964271823708797055125030479394161684010961828451657591145716024260700349039588862558016143140442614633719243091800819787257800745293427868458474449496276468221344556062611531697565344368108740574915390681894005539449049701794670964437778019763553428814786072035695433325033374523372166022223262696953207217938853711042526332289832702683569135265719279374655573779360175974209841422597303586759552027203470031293730763562890518245233011202058152047307952132821755524663483932567358882231950988651927286884973707864652653578547709058262475388856742556384395584926535777653526363893393014543081460006488055521406811528937808378429057482230101866178904446719591720852104815023131053915935812427756318713094605011629025018947504653856687943564645207201212647967216777443526994864035749848994511128802623565553043844987100208961624703638971601650776060998124142407444785790494826713855798214711670887588922903307075885568202668015438790356037468546627946620500530154598304237572850038057778369861957489927289753718526060028717685776093356580813152103128511868947539008212484215961989611548734327969839689896255092742243441353896178979521068898534463145579900215364644815088467578336386219353385954333510379137057638357964653714795539402957340664755877348979109094585071482306184541399373417731289742927761171280504480025369122649127912344414874778934639405518920148816820045228535639646912273216002596122050537286824342743593147706034121682616180431438457503179029655614463376647721933806483870179647367229151200823698920870894675245913085879729820622804383398850976018015702811227576531613959563562993763633879044418755462755201206540069183360911483367063231797401446596091957028206287959684989028345990533386138709596995971109116612912850612215889105232301290696430219161504993985491107881633229421692580847250567579150517350137817491277961566116872982730202370495543041397810622975111931615687278622276989586993462228099465588835754482258618734218828922883888094218890037318617441407534347226698702197397294712956474861413192229532774211507933469048897293049734549256711869594315678088975643363879570375777788934167885854671845081212099835587078733275818952726145751587268291180613126130937593266783555768604125755671295901982483547019359035267127772277916001285567504700120414431136760819868057927278291241431944591179449412712422076087812823131068602823815844661062629135984920519919751419126727180898908425984075966273852080329196120479939964943117305556484700762900579531227062384952103474718398851342904227791677479541165599203010253552566551926768161843998357609516481756812267857932456727310415413456615295360887381256053726670766121689386343737391167903589392038493615006729819470813499920014390583553916018426498793389770555040823093949164301153999552909974236503775838077842807739119327252858591428135806291877776283459476355871450449338632467406917098326961655474900562445271650526540583689113073323853132415619661903289125628660712480733595277908375183147332311280393069491178240360490687368439953238134720297077057262525530427228381792525303136411881615023399844094771280584325435204515873800037698004737083445219843378441609293449824343575871036795393197521775600212058940210809363340828630558965638974793990195575179159984045653329664257395617341230723007490861839748301203541597033752370245533577469692960739191032853528380967209573621874193040317654273531624254068601511255519811995045705376489316760035703399962353530700671251223507983578678675287357685010688820884378620809021254023042828285913464598147732097789039356068132103259665358164176439705370180959440872055585948638668031300640312228140083349450415059034211645649305440958121901614414711427658645196113074096019408496823481217941584606161122757428851422900413928880814925777687794080768839356267521273588692962417688747974745234245216423962992604762317819681885281990498559557311647217607306856429929207040556324451414162319679264648609041381529905791884072901705508863133215525531744777127974740135408893978401852311672659755668316513416121110664354159330315287399419265357456535704675307945878373101448070560176391929507464662734788213555057960676887007258022610194834355595700547136921414605594043862265279373730099423384115667689994387635697222354431460068748294804938643666464238653276132575077236026768560439578510309776101539475370824767781195120697356822784688220036496174296199645694138679852852664385901349147865990120925019388340811270031514309806881603286718029618808718005655683998137621652598259373696022472573482615616668247817941891530576462320687739089000604220389399098382371945291336585235580888907232797677939165302604722410631385799089457697520341769199147285487645987176633874964808048057138291343819671417524928738059341089115085055241408888913778285284978676918036444613907191619913027261054514063467158226421630874785719904757780330034439028989434290918467552096805715515024744014649235562670458003205654331079114160805559646005684898943705562128753472019894884319755307897869549217848977950306460870789449973473593345635389491549994309529502879394793486224432456024070380887753348574347846659075084819075106278066424314421964863946814053789253139857659536319447488233185160042921953656231071901001316743234590519495377351109376394268767283767211867639746124305347151939179466731403341917110364481844470078955119442904721357960486143597474820568529695869172674344570037336763168972252201375746438452149841441822977296300376073028298148189428405452921150439074073089307227481014690409299124859116153277307894458747359693928856346958535683406810985612427340940624003717500226592445429222844985255331806054121092017735088209919964171538000247426624514925070302624190499930523341106628629615657260062259123337814207889782805920432806254021934157708846745164738956964893157623829368339377945149541494296903512659705724059349263961491413737339044513365334401000876738608872573990091979195915249742970760977994513811339222958355683731472876662480827177455163737606546006875913144441919895140920137135341340200003934424362997704588899612427029869725347609237638460488543205059188718288385319633688980095623552935059830275047978350336947100107117944029033231043752676712764710830973346381613042028308761568652131518318194273041383149655073819422972578221267297712271577306229861766963087537723721811154910854840655561742673947732908624932574828730720193771660799810841354486020582066492556227497242858615719639028541807224623536477261631749961583304237446805841280731667938931106084966550908449738192167747986829787274213872210995145448836046796404016217109970339197222696948364631117008361638811673538993872139169484581623316406215232940387107467066885290623547533130413488103452633730258014766086448924109360134726662314475237890564591003309030646990750707677426325558044914375325067465749214255396730525304586625943269716380806468827076533178476841839758272949822992659118592898872951039677386263076734027264375736626635493335178311513300153522008153499877972244824568103317895868502094387534516779394829741736832759757007641021871203932089273683893610930715926988787778089164808506215262354519678425224836959260347304594337642592104564344236934595441954161373621204477686640407887405219372435695129398567378608152136104526994699800832801090720079815183317175218287183569868234140621915125993418773459125720978742084215036893432625255729750329819262149319107751113909353278567506376229265542807631254748298057440163140246168433485714581611000984884409922594428331366888392585520512754978249520936363654968094191659348169516574606656342600949919743878708217184387249669620299254594994286067296376850620176827516163363736548142314759518066642642703238519922064787850664083557144197712182046117575370473705264671793539570270853373064659295171592182126467208657166118678917962973920220308383452376332821263506078445145551891856980730952727942038861884331277784074895320300640889644196875923766147975003398629299158065502890327790343299756859060925348787392859017245096746974020931375254972490189666136353363212319383007557328260249412520290273218603727965395643595979091174119880434652949723293416661292144800281770555414070121771541895552872324956025630215063575404121178114542431807853301847415109852865683376595476913973220487962634588507794903414168528567869109694358905530398578897500027049771265440471015519712954076128524159147996018080884039605802462510238536248993592085373250655043313348486051055788473240663873750586304289414676039379157710973187489227534492046334863082628050598520427270089353446852531014686533733191034367893479394829438629363348521172065284551705171242755056268750824353340879977193791352684713974624833841789235713518539480570627338792823990571276335343008497772014603977965699846232545139062975826210854237211132115876836373756835511548135073597799962059366563858930095064772080401111120044254742771851791251580738916394813687661818403246072388769699827631202036991332297768382148527289107013342727964480915001698309017703408916025386344810714090842949853052568950413632394345448770030637096425211612067832186896957823813694505071748762752303341142569964861398344210825734361802210601667881514462399344282084686990412419222798385648372671011240514410220802068578786824483721842975555825579630371147971272923540958599862040746271855890815621889660930153912601627473173560941914650169870096247896641687499375104255966089459153285891630559444034268770329579397072385997097290444904963931387127865076852460897123747776394530846690303199400371766544826503404004390822107480918133059707009894009991289014227415114236718621330428918005646724523639918110056571175760576803600952173354505912613773038920917006154845648395541842355117373597041306950013971328994092653822783947626011852197965889157621905129143267745183864753679615429485725828799159878889088393079177977578511213614204552173634769686272290337183547615535480801970606213038937564728024444172783094697533290457569560549829027562216714052966812549504148051015595579651545830410337611004032331590938848272177639514350096263817022445379372417813126070992129404678198798604567827918304410119094862903771409071938490507990227096727764339995034046096041955766319150995933074274933657797478191985524863852208826047994972130358459409912113713905862777814169975198697806293972427606971933300425255359772868342629356353972213428169398026382677218438014672601109124046878783185168679423389890064829957409918404677377826059707184044937291351365391257518704028364522433966447567382268940446547179340798796058968176864139560436944667638533990790136163063421161272358339272145018220460427073465798759275104768132969224717335841478377815588394343594129386764112446390787379374224301480735229623020647968201150674554419825324182743590825840728358334527694852200810236160753997200379634269151136671859460695378314413547012617871281055524353517787918640083493162780218747453949108688748102423951037557404748321792325945270781884841421573758800644746667269092253076973138445413353568277146751809561372942183237185768318692917164228764040934267135857403885083755628257256539357674124118682753512986901485583747083175048847754576333120535801515969214409013763407772824723482613538583496760950360256346158386418271788394151580263828061560635715775363879884894871362101657812455730476746939148094519922085025519175406599373365709488080353612636806837450073546572884863664706861283669554748355394575111350831438997801421938051410859621712124843387010124801410572724120204620183425768314664503570708721047833520962130825988310846712122999155423706632090254358364738109733963626342902566949278737909323189729767663479540977971345357997962337534592627393946520196942387952074980003843519938353763883268290884806753967131763873998531851563804264925803026958905585512949540305784857657305701683141664655353348972774948282554248580341346127380811707140953636342415358802257203732998908265791640463707318608599913666379284440654874009324352897838998725044590829475871823295430982930320256191549535748637942999183472089586232432080263280044773992596358969386205014928649480556019338794880094109844221903452404065375582485663737189149541598511910792810831241670835293723893233871918392468507703979938757792750634294241073491541055516691756836556484793588963057247820408459675423238038250307137524047310092740053511553909566645223111049220748374424202210646966322720296639974257693340236714217620352122531015834342196354668191393553887927114002894223352769304661612749187988098535554972796257324128051308948743407116362458591728809082001149444751951574606309011382305869449774905203230994936815877062220184233602841448626199945037607599490571069739261322938959108812695758466479009005983884722787088110977516920635805462838648959112180652756463207815704054319874104863424074429058268351443635810699585083833214953268455882973694635748717332344945264596737054630554010913637894302577987580295340049063852055365192604793288368481669398574209968192656402662538145863105613425795976987832831312269275069031674550958670389118793412637738985317920452268870978885435581086771547175557320977780356239157069944991909870276977995999300797118867202576452649691214675950604111602141837365829264560509698437162595271748643876697991748322936151232780967780244468432839157307795251621275576697583839436373352480736394867783246788173374790604518954851256752362245063985728996229043592628594608757587787449549833939960549457153875529159306548346210460552125921034559272011849977166063777604842923495234700942503378957798789925601351011882790147212725007007555526965663895915380732150395427701194186286647869922501491196810158616160473119562456728556082199184270283887362773809584393814377441089885368871237163988146190025121848426330836666120898511140182222947066547758998183469841804930150505410358468247127750431026501377356356403240737494921167369426385839758526860315868895737216759695742129507955041905471750849034483960062068663747550217374632930045232970230997534472300683642575569123071950474353915927301638442363687590850044551687970077090803445873853302882581470065014064575673932118695776444027924603643657070792193173902279507912935312312312452507912148922644321496753283519036892322407840871371899315220746805860092042378607012576826458680450985912844843650903909692912958618761531032757209639938377793371408555101701634572218527738113683290689465133732538998248155842492479426826486434429913846851443786804151374079251309952142055327581217143251777448730243025189355356885469639147940553364629665982390390323488951102852315911925869410034006111073393453448341353374465904181790910852502689744109770957183315173947466605126041559032383978127185779114746771396771806224778643975687008068970323643540040238801681967757222527144117067274232900258342867796538950055334300095844898755207213836731640470601935222536234199966898806521363032086845485638074187910992478935766761071963465326908265242757824869456165465794074741644710292018792174036271014341383546630650004067007267611088264158293567572873567340868529758425461533370312646095350739764196490851137078474910687703551775695359871370825750571812440586921907643508159593117146107772530029490004203819519704782160388532386662097070904380407772397997972529371995688474479866982891648855290189608226257964944518345382966707065193639945916364061186690038681787809873100657173479621828183245551355386541915805556989079841872896373694676441207613713452638526723657834842509820678612567504177647199712352195023893818857452222741927582737367797269888733850699887348959350268692271062909359152498612545663617801619358452520620328913520362163607918824028607467384581920095436551054365219141232343131590178743750387662449232226924412536222571600313433543660688010002832381661969957142003175582189297806474247488533533936289058515564777675878453247060948842243387169530383305567838723349998968394244622350954345288998694340049977628001283612500768646952529327895997325578385575649647126802565954063474220641165104335621964785218120809442147519706276493445956232981981692398092809322623416428956750326172752831953343048480098154675465651773471263022458782261303797648323352209886719138501480529595694348913291389530637227508699935038082733974638527883366057404307944129283623941953378418220527496564903451221557315553107109898980902486380828981271737863573522723869402064876485777050561618641021113321461850645306389990561724074731398901624060235633213478011802226336414676264660544659764552752307213686339889297350403367410444019113240820344911698702795080351279693388759428148676741580449423346770699485667763584488320806884349056116761418878391409571291944495910250145546912105345802670714092212577935800228516255027349434999945534382380898301894876919734849511410435540333711065286417922132779496989341975713825629526284555237535794192562939382863802979341817174264653790486813479356341331395542165899643818962210714060437973883507971104680552087755277492487389551896751538665804866102244148048969414705630857170360064926261965534522582623212164119363804352152815295011397439720006171851963518749920272329311311637997114651803647317331101638530478760390676492069609433683621360461561265644180045494804577634806976630542896115918687945959707576238477909871311159020981915900996063413212106991191604764764833871915781696849086442958089030949191221005314406545666300370868306341932541120265008855666472397481229338978878517831971473652725337972352612123969096267013788289078885640771229553142450780556100991766533079118424082037746115764886603972163410455273366087923105201920566404932310487206265044817558741817713368295867862744725856249858595576852690971734070826110715843323387909926618028028605416081719948811210560346966596360315402080604650350206966803150760822520648467704722462459330139425873733919103346484726572496491823911832959271573450706017534566763850090106823868637226177758261475880366797145824213875766604273242201658444043551988114091063648852828308955461074008945378339651237807398285500808346983394569162367131211097692014822182947510558244762335162267807201155543557376361966943273386831421827053177870012012648962161399196470611814731627150621252609060765378787856906132556413128950035075285326031143309452288326533200344368824318038354593681553933372544361169017241111433671155250606528221272985599126793184676331304676877408290972169652277391990745036306270462925190227225201407891390754550065056911557765500918829519932628971575197176693051103883788019705795826431292411832166582875709787112219747984709790444044803353047819432696769485780155574559206250671366131530926503703260679824104842975559132112976268178729248460396642022214184433533859878668128378931177334885507224476870990237790373966206350108259579730978390472949132529334828434887149830726890281449108587517352918728328530164177734588881472904478446641561134220389122014493574711029677769033493033044824481837085843134095404568651092785855800854992419455004546362854145079539129635122225103522333450840917837098813398643838982294579780041626793738334383133414362353070476513394222306020417040152586812673349568825864820130375879503954462375244234975874366787234601862854637861433015640241733137344274033310011011241809511296662787352131520976336190261550881679108921829702140629364971934170170023670520754795879325850493371171373234981471448672742833402209131641094869211852475333299488246290129300767303274921258216560533021579840038970027196208498874171195587493387494169237652452539225534092867567595365790397804714845868978905320760629655553788428270826602314705522344445272265995107088189737533665377879179218465626690234879453975481139824004646883560364922706604914464124175635879698204022511820289415141486943177836865739004354001384758680981052034705135824946592388346835576105433824222299835333602010948720695184141091589580056012254974450178394476077433276921393662232065952497786503546820624295578651334709742268002698760354479701895216449330261775254218774539690738050340790320143847096086620940088774217676091850140720399452249840273301878376937692398472527285316457208892413421547934887294252379308263383314429366907257599053567668795945892486254105146967373063108523259426367606672180023697778114300240605767109671255833448246046111994032920773982860646389845029376089080042140580625010692363490463313430093762429351674207223461387920168096066286008521519129749064738266142695213250356935290523789953422516359571865335115644823977219337036869334922662237439071605293301972641087813808800886729886036945830930642805538822854807920386279466287383936422184902769928963215540091328806120147531738356040068864516039089854928190784566254550452407854645809246201031679967863995451343037746573811426608136818413692756664543368097589080746795035284760712445330303240666640406372637069740905252787077594344931511261846270640040789581244598445814509430352210157616596629180541456627805044369676178920509553626868466902327479756335117443775948123103641211343507102136450623202019019454408076113158848410004457452485920322106064307586903820786859762410927208806691639223492433838012138461909710621724202246347630720628075813282591820731244327822698305061781474272608242697442782333294683998009190122828962748409682392534618230123948555376919029182451728848106485559624299915002958374914087336229538188315233797975986420819036781683496815787049757521673196521758927273427243260443410872254615313681013191432126564352047630560180109351955941352959600203526756996511978841681291224612878352534157195967999547592453363146932437355488270510348671090211648888445373714750527166711931612613979257895909941375104381305566610264027807313715632511225272406128026030380681468490395487378382946058765647089950455220605337826993169497146399984319215253115002590043241672004320850323450546493455544004961210456219373227994884429645727007873111541937758811505920833215702787190843531815399221239096642449308994506338145684021293734581271626482689278540824844739112353140931044772156082154259427997853679964787008127032698743666137122909843990755168729595906810240885233482203017881495491968570491817096123159733193192206950230604329266878580705928492629937459594235472789082547054462193788987767971252006808136142957293425627410338998683174991810182967482212716352634375285850132975096273363443495896390145568250552205342071546248762587186411603156336262929435803142488441262286545901950323616860908222416276542180753954283320917882305577154225678805483950532768813477562846001777689292981079374447902395412176126924661062803131345385915208021702021327162884526825725384265294073233934031286934026659961764189840257211358310666744925573827008698770627116779811391721412361516352372392381361832708186473581464326608245597106073438561602713513781506934451350567639775394456191075207195474262722340063340232723238893844906861097992875987647823445481534871809810740136307721999511558704446532889378548883264314363262354985065197717196009820449596101369692153850143506073127639466662208870098692952316649589406405598047080778623037410837339961747292549522862431583315122038422598854893621577072021911899553895819282610915347175825385661128506431709310254737216930006870347830392336809289107299327014503413609515011529659805980289835786969071994852217933081739146522995886916526686886189905708900220640708214607341692796310185519143306152358528523061041085323880037586713701817240206365532359010972484286491644400328597890491562505549067780556749872981756448592176516590327271076403382145244532289821736589162242156249220281682225277451003628021316696120147170204452917157227366464982899164881774972497686187124904405450732012128238930736474668662801584045143912713159082357719931350955997295176760986943772577379365169481990564728504555931530358746295707807919384890637622481177611940953030766596211255379191603137071203751591855000703092787253070394956763730132696691342441584772981236763233094019682029860971291584965431773335085204952515135931880266997257082908323991308003080191020545949642897746145136482711087254780416712599971555031973512394509378811826116649238135665148458643845436573371674531006018747974609642573238490251034531781468230563333556038376488520772938681487136233864226482435649783053357892343238280637357594463292853105234779440801852520351030706258491907300388390352968257296879478947923016878930879516205116936087354053517845179021871867256822840406617962018195813730560398001199359111074883743362566309485403115372997120896851677385019996415563211721817032112707167836255308486474443581078895884997124587957568416032621985283598789930409719537691267255300770306358186092750304437817695953098511529714220426486577233673516590009037584876789310250979529116179569833094628140316756955640879310646638206514570196577032697926779727546602409301486001062165880983262472818374041898139314506329357263082249589628168178422781318486441949606418333783052709888871477366993377935263360378508153683987144724589217420385750780939203638376888788238186143812962248489312101423241829063883907446349412859598114470558907031167048105372750502741641598267841322554447680965947574686000254166489049950560517896349334229189213048681726639447909480517654474636000093740895921626688804741193004646825407803195310978474153867509187420041087968376933954571594534634947962254713549612777818840636234710184890237639781137471709451129783579078142584984272874254007604728767121328931694170349810092920980918608444081076780559592993891809661837817490795075571504870171840138969768703393153646955185977788737043876495177375152928752733091258886006184630743415490250570133833887753060714401511690061555277474377363413443767457609652803497950039792235086138158099746577600547672794753973441207779697021933128001480509077768554984923663112487289034256561386623943541916842420165910461090530611817299776634827247169242254716568483685987781436467521517735167000922313978783058009677142828739395547515323187287222088449323377719614368189223107032675274131891909909639432246373298040004457431062229992586100852482822307693378497844058373293016353353655107820773967490786755239548936323156938731141406125121328447624054285973930700540300676729278623958075902817606795965593954945391979703354995697371459620286224314673536767919843215192149524932139775025241227203056777620038391106289005890549900023226823681499311627755177046047399216914928102767617593589066425094622601180685204843896600213466596218197679341010572051348664711962591892218722212106234381758757153618922145415407002076107967717084571531495161345340391046765429215012216211011712623443607955081237237372312757302670479017368179121359743917688921776926797856143118070405638279999867143415130918635624415938596230180730008727267980530074031809487702761676169871992243221379251090637145747316096483427755079713333181739581612386436881798649427955925907089642765831521757514876007151117301891146188701702768671036183841411867119578485105061455331796771686149177960365589947087703963468125221146440591048193911192930513517675986042410100559139409191001428418803144039120345876137656579897730223904052948560742516576548784715916883064252561837698694975820695815905739182564402538730093346359952055447573649330261352624616499493611002848857459627689904732499371026036510597134588784980588400268839196689752107373511731266619935881959739795056411867998926389596957295342338542994844252673222402496837166010534440487908213978225243886717184807900862970953138305631763988651700152997366096290883549428831490495226213292102699652713102015139881256073322799649100223129624181259207170347665342253386395147400875965563681178272575808542860490232415485062735347659496220761337749980118160646805432703328407592874779709602052937093335350982148706026376310660175097490467785810424115307207374484863064789391949895691780790403040166417224898795372068499610116740910228825931764758235958903938990471576115260671643505373101181763744417137560078978878297423407281049952035231229036323175909989635379507547594529349962940597053293490363110455478322168245302265130461661627567959724860945587342995469249018896783147296839818885058591002890633403129338230941147940819012760958698238502356527493850477368735451877246241750920898587413469237396166160832186821404316199002887726722388419500331009457625564418799035984327702746834559117800752885649142521340575234694264168666079107602182783976969129742271617174095423158712781631189759049586262514015835753384380293613095938974742979586667532624631918549241225588868444351022461872215318135438647551202045721119376793775390263762457921027531292265354065846859285767005788228431833487155162386182001979578753565643730018939731005959907600245771573318367519153571975196185458759019991947537505792709645894954461878934628314213778981329990509619947751555162072554669127868382774264727001998456506023328429687428387910405673905531815513013718484244376695482680483033685672485255434398351596531853963612392321440341467292453575968159761017598003133536873738024807759386996058574332576240886598639209444959215682210361905398652770009047434735187407775558967854786401647846846868386409440290444803202639612129324953129251171638718344955293923980176650701543162075188171437102339421396764327189838843093754083112549268521637606010444278664491018950474939133921191410725619624407166573943124439692499411958326087778765421773386860775704678320741785214839051745718423562910496625564382619869967386168690222438443893317535772801147910655515928853143511572888324676678060926200211043036163983707303549279043055600357924858778608905978625184718230937012942606805928330504324015132513163269165854391260170204480234302974530059219474727778909494863517643114533644602370953192570040977895564071834131624308052087801490835769271174033887924101543046207690389501648566003285526159233270633708108911352049199319471647599666588850029033237525523839624132102770076766014883636377127407388600343602068225688883553107730943467806920094493104890546189845963283946439930737157747183924160605480676095152432493331868986234259937078908935480449440299119317352338786733774087555039978631883603464455468714066830440047564546410889647086301415408477109727919223693088088818618116607101414150171897100430240204490650196352907445314938718568750734992391235612307736649408366055840141576740479738562811856400833506635239592418428416912278073223319102335652448996308293787696808100391613152564857693681147853582531806736036103971850549817136350548753765519647089286566978955626178019100701875532532485359448564593940844845783524871112170035189611726327277913751952524758470652136759146970076170012362250664818384944374529398686426241919325447281134946129390377906192818194498595044632741243756464527045864995184983609495839064533107049464947603512931401822256023695534405338911973125244525286087797768748964803197863019047385278931923744322079134173487736586637863010649071935723537057850465774055342581587223877497313436898230134230942104757821055513822535836378331526311975997977402712586070481342163054297030617527560217055025855090539361687801227173933256561729180265535153618418070204190201880186856960176682485143030715711817223795539840414228877708833919262748863100824698497853826565619888569095719416521113782661864389906473821184990226009008248277358523796994644092004248846871192283327909484670953153945601884832506375813503814024198780500613151888285999993981881550700944459194270583532554746058730743878510260655834591177676390971912986496581857504089792291038197914828833105735882005207906020030582197036214351147277938012238449809943686501828255276297885123957073171467922418898255459152363916623684813072431729891240756084857103963524870438334752466336725676669433957374830243570850303828191616122036147208164602720475684361775412686099936938929179347788424462758458114472472664010709245038830345918472729426984088844866962027457016847734827573061422942415838475725025794470499665557780528381018087896444213168463051212919536188096288992422105439948120303058548674742836816193967941576748742497284024724131587071898299108690204462402730769569298594011682639893739097586396402120249119726221752537905490302041707547348786044956739807904640957445765628274387073441293049842746937848583865684080565647297966952583629328168557933384817825719345948765016338418874192603802354056849178471914318638189401261017743898119752374084578437057270578139489767850374355292759651427893437512717115324989360717261562816828886155624394849582925830374746969354785169892338600435687086838289783351227804831592379994792236070435436299671920783420692467390367910733520928974569066754139695230808933886841244287126720506095905098488853035379023454965400660586050600610705825859570328298498780918045913853767329631050556473690672336324701520728660527213476081495334514520470399357696161100007064527572331395131939727973416134932406980145368399099907416877709366092865974955075632231608115116786448706979528222043265817516342700037583772826709789738757098489774786428543512412734422578001680540396399590022703431676013309191893573180341269030213858846521749163926698526954036555058118651906360054476932557852157850502077686560811655059092821891056522743587193687992062142284751196971092049147047540334993138778898230148943415281347406612186541956628156397820433828102785689422036443859131497144443706471403253954034612271237045154563896082332001337044759325260893186000014878995123049283000131077457977628771833762150621794224694551443112525769929079993976054397246206857920952304384164350230905720386908310008277713725249433824934531087396368759036243222408792647474116482792518821962425866832383733180948056684507200368906933192533444140196406378510444349680032733242387267296749275659762401996474054197206522598583493777908325342727356570131895179850360954392657418827126620913169937129669808624263905153529541260971264795047611843774456610793698749772306048407296483509092671765830874245893679766116580566229082443717701531079690647627980847357963480728292187266333472189932475885754252767193428812971784992542427050894927090395400545752714216133332774092034486956681647863972391031001853887227767448482773886173067189167689086372878763702753299461355668374807448794931456049739512272296835669508734313502119233505589281367955218040579688151448190889098730108858447656207580589595976216383152267383150146288759473742960469858829368998905188893689989256831377284242382772307109269861114136281129829419751209822488150453883472262719623124345331527298334597099900159321164827678932638509220602722064498790019950054531837610965809304313857756666021620904456851095189400051149848061166101621458066840329936520662930734261860973599914908225290968973343813812908271016523591096502612072747590966832847896108358598342387475530111542045190856762774333683879845509166984907800283486086783411128182157748463684928243181587096060213255411857944708224208982062564533108032505789305348407344471078419994062765718789464367645021280741023386158932620816006172714290403954804307820650055981749099350924008270638041664668999574759161792830223456101695044718827303559831786559266884161843642654404192444592187847313666645222882108649762510005982946288926915615168553244369239955236413891803816659921927588425250033787397800042862191955972487342521039889214041645406962419549536787271309440636184278382763749458702611603348862738698595103202375276912996845940068177700506307219656009315494479999384332809941515554093293403633985547995109697708159692362924530516754384221848907363923171689109650617639639872122692108321765525254244494924989303315834293048795526835691397070156358180792748745276249434931124432842452567972362778821369777399944454509788253002041713927653228873552317701410581672014443082153337261352659336250601549311123022283689992997754889107594423758213073097063682471153262200158946340747926278807303532066458371013605058355375119452301585987684263985458078474719814050849766430763979567038423197824976273556500194549868199543895718131745811518833098822163164097407526887469538815015969936465616254680896782048710678043932100979731233388042650774006362870587081931516605456144212911147912090412128318591366341872255621935380554417997534233256556742038080275009628893447858072262871917715009625371589884945234876953458512979090156202571167458139691755676063081284694504152809367760736565013631041849111775346305651096878534955548646431208553841716082562770456372185003359097018035663702809054696948159431369139531038646356114819174111828353630763516566594253337364624140110375846627977044528141067281143442802556075716793276228186293264596821394162996801109735046436725412373643463791865974351259058383052438267419790946257472880420275342788658347124799296217894760333525692892456971144110509139407444003603865871531076255343642234841356258779602164077576936853413685657359934768444283742842879309753429803401764752771195349906108138729114847070476787346938735513468876455701449301907000686307207000184934785023592141013547974779262563516607840979362806041496061599229829069001782570892837242392235454667126192469033272056673856262564760980987280406628773394759250602674332107963407657645437095653061657990809674406542876698538467731191788115032625620470268163303283670014576513269386443762685440734962919687307231218421880912689143035135360327021556668115572856023580350643494950222276337680113016361439205628134933978887009847906912221836945378181765019208580448940187477851704386454904557829038077949142964820415717322855431086723049232550675385545092479547417370808482815295376835944972229318772372808374286233083839582487534539144215744723927888685353982540310171539126475398683756631470846211341034298904010883574286853669462673900070530018360755693753041605619504831127482724360154837784260809698989227640642312337617141692060511704053315511473414789261339615643225348277833076425107331916967370377103207531999998909617472927465411006367008918170971853208194256649769942128467437658035284723712555604237502703273129678098234506525839061616203325922991451688481844680041068150919974433914354754639784407129130763442656282524282040655064397396372593693300352547677433154783391487707250741962525458821388568528911533650223617557505398829247198130608449457382616374730905566099506531026794617384744016438924848633851969148869033721191032610683698698262163221708194170792634078860658628889234258204785107689835909063307670591341184145193601996950626514408853825833366437569011936215962019829075537019145028479057386872117745123721688085972213925193896804343040695504453684101648421837823504844611768753203208450087876814767499217572081450899446139352092172110968326017161662224013088378186123975394605155776322298458356493334491168402777296186388491492515381534587603630231070978752070991390386025823583668067468000180588314267245333541614381861019141182067587287286813325269794270214809632026628007384991124904095335824119179925179757011387288715056758845253604187556092625698758221996751242343951994614687525245005961069864990633825883831564829984635123027694078723344771614824422611321254399757364919382747503740070379573676098460767710865870798488325930845181988781738220966280681389617138797177761523033098651492536344824106672190544008939170893523373345221473332559532248961173654728830252102441810585733935821417268181928564609644213796086315194067541540756477361941745942342581656885503703908260554898891142474284187327682729976418415581819339972582556264571174574356625709314660388362031921347816246304302576196541749056731929720692350140303263281495026945686954521222828179417339205239401261966544721316933451667906020981271205610656406965889257817333631786839459919728517316424556244838910875142513606955502786222735486459184588704264507646076288178831074577750584148068914239027882974583189344985045390487352090201606977739582185443896442509170128405189232708840604697766352908335406309942887989592787792223650210318154910853695379242786758604751609682668326387080924015686414679021166645511587067921449061069464850643051158302184119152756633843094578214494383437495089292966991463572275917794309832308959593504346935249966774318678320485400218321637417835688910775335116571038306865945642224868775747963174167804023834687371202261650792512857999091603688514487223859356516717988205272069304692218005964754614430376497943827283413786442101536086872935244023090459620438452413605300011365300709192090645070446264096842853092523483408337747611665853717045047834603509317540014941519926053950427407214773927826054971663740563029795079672433489007678167912641910990191744960221756686899340441731805240352571357918035695634626019037891989902531018504637879628897281938695334913181275460088304113694242767706298837757892466753373892127206223158122425285387009687028187280203083094779502190706756342369033216930567245277272138810161502038022584285093833221004054384856935276307756071709217739269784424787227646009144755895436925494783366747716630989778250060443251462366053759967140119972564951001113129326380118137518486219104681797702793830235622835222853047743808198985096502610485900107541383382579575708220635707872369043171402642277919984889362646731296542042132923607407561112327222017277393115591941710073549167566297356954931420734487420990066920331080511044820112843933442812887518315032547403323271149041776457115873712046515393493081085004252208571984026716710812649293129094600803055931326436257582326846717971736963034131823652895559924600498119584766939673621786357837174256289807824149910191498618144303351530724857555119523203979969422956311223716644794023271890823196087615562633537044528968803281690736614186155161323015748610772102299362701376129951373454394310126759341951790497022210991248945215792514205039035367912003327653072563043141543210716906424687360908970537745830819161840788088082556426353233837613255890719782428940102605576272951401243142977389225422878757500640844943305663828186532212110431828024938141359147844090624062261176206104331413014160314404917689472041672342673764952216927469068081161110785376154325802552647665236190516309821900693660452462320044301962699500205986865081673110443380451258082040508720973798654755548729439865796334739795502346226721728622961988787297894029357889739616753864347015222661411110968974722532607621018554279287241068155758797166028512498096722965949844255754333071076404625768963201844721233141595584301578306792977553359248286253595749477409367318497882751477743305731162546989777148910379404393137580606050228664007833143840665262665731551257274882979573573224151428795742908225259051106138497156931746714073321364077723585710023481838172479893961067038346244966957144281949132182695051610204298639642987625496070722172427576850101792541139701070893350228509212906038171604686495460156264918142103352106248814483849317924829284394857583517614333622390880570477220020774112707449088871201342614907349019324886497065435488314711490978749855945375374547566898137959708846106885186155322946948168307687941717623849054450331422240643204847014399882486119010295152152468855952959522082372363106869016273355063088979373209245700745888993157447028484886381841699912639034579231363603808001432495501650384303171448097330842345925525633306423264035016798595419886902170932844069741085481077553223923657170778046972494151151381086669155119116546670609615049682641748320464999915753381620415243249504361400522546736990992236309417356561079347705499002691713959387936978822253917579289478658701470530140980026073986226610765982465201208025102749163761053140934256898310955251841004736459111497563460655177732195244857446525401585381259330797417691332791209651783796823575786975345651260050632924235272990280501684565742788599857471524796327966666123859956175693768173882552934030149752369619010283725919878259652893098912426383201001268756303087353213916048028242032841683214002248273977365777663838460941068778630295705253153903381592798847645692609942951311790738514601862347534078405641907723286666286337719301319523958502184472480286518573169704533136914223402814209769258155876292843328012323298824795301056447166589995109488442180884645152408540052446414735801734729835163767086269623889151624783605532564047682076324507406680413902077546283360643517624113691630683408209045148520817097768488475871509757555460166832599697730655927021782108059050536446665161453518862086397011122595647528967694790179016568321990458206655140421660613148442934925425851504410567394516228137875150135597496365869227981453630716504031633666845505959639766197367007371825213757541938015629890722845887961676384697668167601831873607068836703327421916782003315750828307921735610630117934058278152453767683218726464597249849873351441107144575659232674975734248933512145443833665064434682862085797617722849344960264308267491385301340553589044518397842488583074730900730260473237550333356269821254196672730805181591122019384269043246850471809426458271738173321921021922374285275182760846845627208951236165722432351251846453448453310164036619776604483285036948039218038651990382676219502160183136698547347850671009094414055283896150454712868274371188205262254080888581998211701096103446490681470404852843630857076295328948295512260240867178284362714486060981895433508746519226813411220094234413377561861331758931412480600089030692528225141551440780584014098660932463593667662057787979197625857344970899401750779227422283554167903517811835245026861902690730917518905700553470555749659752034843715355160919136536346172028253928103004319275024966884913900140978617420042032166562314073562527265875674010065541525378860048242862389153496415850588478907776011870144119198835142930214164598850922913023526569218326838464026685749895200149742915041432668416139172346947006118574466925630403665950556866807261367448671247901644227741638274594135075421903728432520549975886689521364904361936457866329200656774707170120433610064233374099502864027064209875691884505120978436405024863545468021487730875899084074985821874490118401691286867131207219989148925840066384197019310468548732874773677037429831721782750974850013630113593826507164788560159637063459503329163555101423383642899110497832195974459712458791671791006606786476100385566375991972735072527150933675671578378045470071888166757258001377209906007790597828772379096062372437866832291954006340910521690376842723549758538280914539184193784237306068601921035231246580700141603715967543551985912387922294853589070807578405193105425609301954825513971645580541062174208043300658120303366450261124561704505622690788055779353972240510267974238849302738282153204998232771868119317110267649815991062645938592132202622061414404468137277756102106396635770951752827145206957401143240391453564484847043895770883099516922810879004466420140548990465176193715337209211727463502337200777998043319477046646434136393426687068757981399107520560704949908774572370412301880867434655653965801786753662337094045340212540056860815128053745455679247848294892141256465764080448557088298946743312895863685031273200618494685437321974063719161636285543910787553067409618828488911594858168695725476203628402562987783169362429313286092947678989171775433253340046768967433001265268027353597213215094582061864912729364547432870450747578050389720702693020837693071786791740677278494289998199307784765984453127435384876167759452888017212095005271492472123365606780829005724014821558380054416286336903142359056149651765060705933012822454337579654303151596497334722910888721963795976942674356859628648622062257694772411523436704072862458546162520267229351615094674869539496292707159365561547399727373523107562544402511740767670663127222275358245449700745785753521115525429546229689614489181883200135973732640276937880647136118543773497783392474510318970121168526533060843424023468219148297161027356344849157457188771290615325942984994447986151659580670253886990473638656424249957578103804657982622925142176240460497641277003454769373080723452439015582169156624977204220020992684246277877038400309641042605677812671470678311184572535149017050133840751974135649706204534912138835966654730715957497836617529598320197712742638276354742200345324864207095055008980620990606735783972807105667004395523079626336688002665050585118072989886400972723529557474445813586550486826469565487740378062213177766303062840150676589512779373043396939008817342143382264708027658563045128133939499328941020924006827377143847467458500575160348003730808363947360765912234711171209635065398259701141690582861158296108661396390868160209293478202733663922773562892572937502812696157528357828963994246609526372345361101752562200706201831105896391848954192005534142647189268913758015964147405208144032825147946105006425355032439955092342321507295117207044236684931709736033888051621747957661604731237174464744098513189513330748442469854643227680159152087485926134114476579956010384096619841471750627981380837115197779874200221754410028871947437010088608668597433372424845518469273001431406591714396688847248263488418555003794910451616037870017001257329183595765592249762218688732855025571532401266076403505824895596386411745601120235630992838124068280880663611946246024591763368460705394777169756317548638093957321741672070627717752398278856404928439810097800161514457613925062700966907453850577765124190606231719776973489059204658339408135471100453928524739272251711212958998145911856461577370404862890820338851127624015670517763328920684267782159731018188155666148699891164567798206711487728448746471044198479197336731061422167218705401389226543278335385898463271788723628945689963372173501813645170127179987754716852767360675573260980553363360680539001533877864149478520950323687745455633483230566355524089638680145797211795600760881426830068314398328316168044366032429601447879116295471738743429359627822829429395001848594573712285305414293874190526356043907902206090609801987766782343703053352259592173713279065680759470669811205439663529999201054535966694917426154394304412363868734057705553045692732431911536894867732774632452433543145952121792115738577890765896955698523897467283090471921179576142568564367823723846014003419960752014361230989710305108314724085728985066447666261621506877108888715915808178575854475066057158705332223257306466030277859990588759359156061060570525875964007659331477582190465916791600810468354540648035722984873668850585562858422978073696519747416765918086640133110821614689589125945010289846668383700736578667225370711053394387245874954955437308347471096623124126174365246060933389829295906611559146139898861763060106628350363794267957128147751571622628218101965057211391792117748458826394551628141913548568779738820103205409626340363737801781821390875021603049626861793821054716456743363573904403287942777193520437034124088337459857778204148004779147824770496917936907024831812824505926663718524319934849814163090868877655523963366887765351428012303323046369550874759858750735364268403460189397850626683226663084478078745620842666715333865097175223301049745439873759724426437817115185824759057905792684637651341158721045267603083353127919574914608131081451687174568106156434998929929140481336034268596880557046573672776698383074312900648608150844270865916329515996954877532075551807771301469193023212786021641578179198052654469266758856789313780008568316315839984367764900543511603828973706793803897377580736439207474919698990931467722421244944269678537722964449737381349631741152767858520038053349856256481025840061002894004289237891731707859388485207952724538835474980516570940069383487450516866433343239833466044879528446356685389394551254032417097401428154889883593725725692212258274629477395550535936778423668541155568885675437426077796143213265410268978269955039129548518712009255668452641932831331625775425539254267706032350009214549304607837504664183561359041485950390903996292771490794222396734548020759174071131541794145908477324657112305193421748029718023188354663322829291281610878735962793755635277080324705806719493245793515594744709053076893480299397332826355730903542102873183893724224253882162991985740919399913419242692949543540696930400126646993828241715129384869635196278781687501798258985045468561725409307432167383415015023614326730679050589243393891421757574008336036137130105934034060811161295857053296543161559244308882949609525296258082297292503686479512833147327498906989269894947326897784508798289660870125871382806480137820393121211453612637305479555614340746508088928664201736663137740038951829843610744491969453771612702115760364082220395811296776985380050125714489650687079935211560747012227968018121960942233937394126986787333518998958942343556847485344649338037761198666876311349792024904777036176512625657145076574792453662901094755741709661109297661764517961246129507417588330027836682484262571300570628281835257868678478752760623347986426842521002769081516553663003588938563507748214355894801269772608830378271031995429355663212861911657336543230329344328618093752496674163080267482463009849965070844404966689686365209899533773422281754765418294314337017188998324603054503613990859914221091903213719084393238918569210057697401071924875607930890848595113828384188965812479451750965779714739285370931140592491469866956159895118619396057761212211963005189812120994596432431798410727252514117170363222895813644955623173807694428120226144806216808724709679927904700575328446760133848842362924531434253014200255762585554579190639757600419273632330182241087893002575604566887324155599761711995304106004560792506765839608162588969496201294613493776493410960148027838482830593294723921159857778258284151862530343816164955290663291541110276843439740437151326528199668324220869256116709937902173932546065086552433568754443030977255343085080255414315241661918879142684427728410867360129491250166609099437406892028272036666971584672175044557760069214663779319384793516787492910370610889829924441763477859527615856918722639099397944319464291750060110361490731959301174234418705121412168429574604180285691227024718635301694078444651008218103638145300375878583045021390528009919344854241000596394000326957476534668425577368182199544932899656161159700937202489900355399215451409778156622622987888505250063431225590073284666735378437692479506093694823425744676505869490583698586945326657408248351106272439484885725246388538853168749970414599513927205109029478270505676835610150326963012146952546983870644963993770857522971065426524761976852387606564305302881472904623392776276474644902128513327821786372187911733959903728795694386993757084042341285741499894985365965841309960760649790589232652028474406286896196242858977424058784300233013059649976659317419918233301173946579158355611184199206760200952761708156764326340288776309810280672391904615333795687108514106457760123447045210284984398321851566726769700691471557238303161670601854244755271654756362552097803479601973091997866606226517776619472282025045180033831505140472414116458841830035968829442989002269621573425907855216387667650308080147793815082878634513999219179116124738169608487465732371125037396732869477778021554803253006761443799632945907911193455351474517462575233409948750152523494920853612066224998879314984332055424310980420482010269643498450325397558744348704792693085722068795863766545395868915534040828407205136624974448071979608549864065028530808816347943696936745680285258162044619704135870566401058221047803580203414795683453284013073932126236955841415850295475730278073463162368809750793299150067559570283088953073770197853076346190513729404463322423891469874651180655603094873226214174717573498844025334327708149277332305221089166008501971680967838300831104980297159685791484480661161900034481414804490370384460693334169665539587905731774030394874897116399027812779201946265739056661327426364288637525589354461243752187170778053707755094511783480703529247281875612347041302737492287204201429111327251641479066675197797390083758986898094292493157847012015699044766866659765675269973954242474515665136253725728796418344400399832660070494448658941429976001780804376721382987711662286856821215684557688582065813954311871134143778938262461518595710717315922052348933263930289315084472067836781238133532023830114095203322931517055653765097951077979236271274510868801086986720607240551706392697970883847103069774615122817957112956929845139944351672924295683732961412279109716121393677966230155641670973783173348115554286987415869144876798424200278822569966779183252658156055973834995571001709108785739932668980681540511512308556167419272593096517312839887991381170073739903673752500333593397494857143084813072479103343153820913820236870946437817703381899482732968356054916770137684516861677411973386511042282478086415116952211620701731752478275583744094197201913878116413654974155221747522538354136556662359102679608563534265039928616084280800797150064898266021041712935056773254027620454517978674669300507576216356558928156271847654070383729293711017534724638035249892006688544770364639511601566509409629580600176329617136298978542239469373881964672565511443926828629201725958694377117124719887544011834744444620319522590099321364055493345960880238405785258049933610084534636140905083613115961387965454822156946662632705757931059382127057907602398434698592275112056785761390428945449490146086999507987121809762946602235339823650932158640917405893085954039868857837616737102621500617450820711166801403060506038626401765008955778735680122400267185980279463610160479114989246287891893833281597687718376401173246467163594176477597302009781897093444757409386846171936685876738984813973871231843314028523237186698531602818085175643800028993957159045726968874464906960748503515375686027197617089383499249172988848453464162950641283388099033102704130606951970000151466744102326748837061191383814334534507898962216969382901667039738841681655709103817555512231385080689663813972538584861813742876324631687877871583047140037839964428074301884400857011652929647440846405855118349566856635672141884834380805143985563346789586710415561027917097712759911356951436018762101513163266282734941753482413166240045927713456346673992709078366042826783289537898626026417664865223066385458551894989500081266166342837894316876672960622635895655978158901354704378367056962862005508711700184621215798071034165080295755346834251201699681821102890708855730105572397408566169951484129888996463118642717924006980524124400932310406456068253952032988048276185877360685892006822808917750242182742724757784250913173328639706143294569887020758064549762982134916505799401463377529365455998615905870403824568273522620424813180044102086725487190263248529187000356769163656493176724083342244978942683551449117186217096786130835627032866595341574838608617233232606288024973620896389118217173927925493763604555182519756755042612441556013616499837006854638757392381633929221656616792963621191439026484024739469720947626229362765782303745194548935027024490086214548828140117332465143877735878144233182621092672116230396190447421339034879233464178255821995844526476771942909453037657533090064076402128236637469157723343167280214855517791667860705921537602585962631065797309607476824206020610147294308929438180097950326835471706811904562851937006931130785128253203583659295074553609737464200008001737643686845747410886545846262040126722553995772036546609793677502719639096149407779707890833915458307888935713409925464153440260945827161810316741541031624550038824889347492858590068206863113458977047613436526815180661277039571179276634459644541627842080681100863649573589224872404392626219107114847562780297399920603452189476198457304516572914654899034229187826020582220351617780564557759872617510532772728909264919551349351848171100152778024058754644452074860039030766172687713698307917111281761756327569171439220614415339078409614597971276450447523482940989945724108876346048332153899788164675411482401661231823722256232554779381331439928355316721133466799322277421872118815606643800854349710329258267273050112917027701040654159885967001967833018807790283739139727038846928862315371714147437636803263330961314796678182018886483504436113319269495105183051952044111330313736256636440801730064924064449980740766618800837776031566895317622322087426229002005965835337241371503554862682129680322731367168243593589613793141403303285030905714787727596907051994333136223890154579211265968958438522477597056583184787902273348723684824016773333537585707582408320106654607381653087939165313537046718423544782122303832237085770149153433073075459474016032464297555546573642584755439930031792219461102632296667322321830850135564274897765658987887751689094727662224396989490511004778018338102238867609902441226104415201454712094060540419515092360874078548217801398009698300394484939244024907777248445758109086506572842125111912841467364613325809112719399509507442840572714780968138324392553267731783054742213651122811506343127380226911520546465007754552398059831938877231235052121518246558028895150998303250655728283457527647543519350344549046502162619987918576609805620626318298089038636313923270162135233759699215320215943870745819033295686839123004733350416142068466091095014954892328766653941907173235674597808790888761126300851821456184350519440550408907551266786778351132205364415904225770326178485981071582959802562677618823294495145535601839936436058318775811051017401426316060626384904562499056089055897489913643735182634871602409343761931281643129269363375436663870926713184274375555532992173302776130846923174027746603762782494491464773091092887162038996614574050883580579715637268540088863367532467422821631349969918472198772475088894396703084329179598790244395704624347156425057385461641351992144864768840151776713267271156918787476124073799138651923077905629870579116147603559322367198054491665297291768023625549563911882300290674685640637077853577538569373135413581810915567244408180238550352026814412836453845802812734604292062442902044182346639520426760341080012787404920056530342548713845214651069911705869948270518252150882268082748162049292096433520312778484871345299159886425544575091196153281958937399819129689942434312438096792501897906952180186533654396890063944721216203687688407643390287865277445684588960833298743186413140535084643441272242075145724182061592914490458778631463104804604125374774359585918044275022310165958445780574413072986888971278413436555692305886207169860742283418444791517848630261617072601003740899781949063829405881308461555741716903139112335113981612047213756642791268176571244916520592109099307006620843850755770278042269106898328325803535599775887790196968192917665248500868872072341865749764801423929561233358757608204234769826490312785139924138164634692659126682943901569733875169034253893731181629884772650342497450180171124098121279374424874951505649673458384600996177476110038020347838922025634242486945757964017402072814927822961861040995435658703491249172006463587338458299017663034646340315765318772120773448567741885826113722627557528363651884192314177265830891627638874864964175298835961955900716169107653418849071351413557625711796819071129369375859250219376862775327129522543606997468305432876201002773537431009242055935401912520338168810365988181858563956728475215887530091296375104996642379571642850593111244479323554319716284526579583392553858979290072000094854145138364932869279878909490230799402107826074015194647268770391256889482802291500586659689331638733800524208265410917409365886581664417827710981426464049987690829938592704541304834779775979573432530766961103541079625705437204279841599499762113534985285659313669723044440472505310138160225418995822023446797357786724192524626034280469181982789556688201127269720809112852781340071229487965346147506330619450073300223263511739698268060182616513637002463691014158438764786143697519426853103009445668416203593124999418447392166227782743219529026673483973041428062879283196479034532930130780690673157199259531580344359501962707380199742802014413544182854614863795744660506314890610871660303142568995474371218458106640746137777395103353361759403143815426029392424296540114349312937045751969466412765461332700719667429723298648015357092176496529947368515378957109596649939310505208861793943357710298380632926544603938880064548945774649667749056731330050560051923446100401965204456022218840524118638537590947687111030458586030414636443269110522253997327054413765631961311312687596253793730682522918241726945921336259153647685816934935733446108019999037624023115807545581437089239789407898214196318271276225512390813874684345458082426539669550174320317282843938847004982961138258482104260317050030420807065165950695402177320198868412680680446570238526709053059087437570548742296529657792225234424982024866797246350926691551490821752362381889000597469783793639834823886660961358566375037036000854612074925621385144616979084348945371979480471716898266085862701288641623521407245754496716117020884416222325813921350503229157289342613039108171571584223822576494156342828382797946565686629912481149987799348706405906144796646590816246312857488313679401065210079136495244663177824598936929120745304809570475152489605554977199962408951706945998580429714369932166070507338060769213993613975484993439979007453821636262084088049874559676790141680824715029891994184081385198698761947833277458926139260735140314904277166848013008420135819016529107210830061927006153819981209700713747737473555701300482590879209264304486527042253668187761336762748078522573771039345167727127056561232561980324808761479881547882130507317602720989371666102819277894935549030777923638483491065451275924411541986088790268130844471096562038382531499859893390216509274061740087042736537210398217932464762251775723116577114174337388030090170354488782698860112303469646426630866517823899904333545371941511141522055322185141818917453113681773065308462593958852832791926039934643351093918409775211761975198280526981366730781522891582193188992889831783407594212905968000208496908698987340090611258991418017144973485208931932059390107740448630573431481048991251230603536706268521933567114598253665490641738844388392080615293687579422958592212972747881519491509958481738035717389452215884919930743400199873065176467033875369146025207443418222120201013918055128461600039897132557232824889387682203744060769610279757090247675901757143503532912190704791736142176572021608648910128086574360483977746001361064019748650708439805422811228315146333586141757721133635232144285393688603447152440789817853109960149248977906212077118385808314389941380167419972487436572653663886058390907298083297315136378522213215838934704662569594098358234423496011013266707058886442879987395912890531550665861199313429015832900315430481708221102532429590349847221096663972657010592631496843973353066277314451653924688150529816502428976253076634835539132903770885232747840605642193575383898712509874811400777629430549973599272263399949366462220245790137449199016920174299629718869194657152986578000975226424490587484356043442788473963446044250410401914629652475639712235704020088981355379913891786249447260161091715321738540655647589345909172575564534317513938480090600800682224031739367623156172521479155170961303536720792693526994104915206004275881532864866593812772013482784111110756472781185410156815753608606735706014413966491329554467523389344129853796124293130471423211252528794939458028978673156013626081434435951552919867865534009244449656317240655004306518596109399084993089213850017503616308512554114443217394290453464665328252627860260213060978178060736014777288316216617507212570173634463420851497199426987084499955378227189328528610610885326091609417285434178825790315901101030432956609739857391042848971823252531683448029700205146518873287492664546391886733821264916771306399733494220044001008355510151304998418569794086672969037343180536503763830116971965960520961865743445967259466745831962831646847157876445873067339068916050608515851916951843761763689113043904716259614058653645807742356311968317411440188081191125035706554067788771743500971932066474351678729409815073158892375365961898928923695956093313594665980760313498649825231685744765524000202326531542924070534390441582334425396449961585958337823070890456043261413159380613825639104109715278843109079584145664582731988850168152052691330183719861440724834674611219187722657193929175161548183451439498594729032070986535172636142953043458429734773735881739819579324657751884631400813757112371699777775981113569769201582415324647176268058713095225892289817241032933579397427370395400530750368760340833473317906478680499004775004946418872899686051280523676812973091998186559811337783720576124339371721601268300057152590897694587555914071618072164340168398722465724310389214929474045022476412694906893580006910915659243873737813870058916845059075970827611949416560798535158335034751611916180690537709148270227041618046807198200140123623931684827964567397851623804488711096135569013492041134349022413295022158072735865308919575805558918249415452572125791084203306134676401047663832929785889525888162228695104435407591895675367806819322642000145401274092564057179922150821998621629795707165200654322406769689057426016229972702575794226291676919847694916585740591697604514182027378983313668076214382169243015640082250849690333186111416593736129857125432043875816483624602425697773550873896543609055403480836443164906003179461088411632826637307493491174257229489105793201992914909772644688073585854683592084041806955284589356874420873173516615829738710048787960397752646075917951428630020741376055881759562756457504613739298290364452294238180807067398249525340434237579386859146004035503747718033278967048226636091897842151615937461338983330288274109312453954193252123250641479196289503204599971650659867035557539523380012488073701629520317780557316353462189620823317525632900517150194518826280841512433558455452891272629529657565460983971359370368363956775378734518141004971885423202538452303787570330797594701749400507153352447622254493843020548877072204129952664666264737342030000812854004622371927368259090447264568352347889447013978715338425776135245653671689081766663114963092611568688287874229358536702643765983039423238810569667255846705730673735595654604005066879657836419797045325980678055786086230939419412498609132535072675270017416136502092313874876256768238135968512113927101646812329393109060423237651325764825126156222899281801270853808397556968748321217779914810560087647272896393984473843243797141716576855749050972068286555408302673206222258759135404564031613874624713225866540076358126024658995504605108314989755776707363829664277011497115129741260254149817227644344653771736230946524938788374763025416045380730092495304547114674680495140796031683963604043798541807129939649006302316814774487954088088324004384949558793919859224978734091103853737400237688353313525046832282833812938667728634631695342984388023978533169915048357219551525807099553647755336444409923639177945639867038372780133149856062454249247207225726584377435512194548612679789478007165921986732346614828766923788204327199464977415188121353835914118008402958955636777366981244339115721010069086188024817580228553909843027012034913365948555248763008482229725322295597093245730756179464977834188547620107081587294686638617525692294450400347049935254769410794053502858740822513430535557430609978585493688267785588558155193804708793591389820087036192374457416483501821799414125925131923238325682498404453217688743275268744627495432766978307518346502834060905362798547263166310410551572844592640039606847525943615766019638481778060124466401602891437943584191130769930920033606983197541115885343451779633021941765284958958845429055915539928729215429973090479395422863148381785441383102464513961845870985625104118731095330983943983688746932216053121253272804234228802332832624228771077752135160977875051820704281887224763531101881988777019232670281912651843526241891645187616548295016766347181793528987197542908556351776420614505382100421829255524996259051662365321293846068099211183954605341981660713921477923211535989006984763727976273859743857680266656390435334555707667214304771135569772456327295225054973143379962706795813540252751984672041554850229293818718672596714565261746913594137554383059866704581864502744188232577515174242065958771169442235522456323649422364830209490736260286992662929613160039581347880251194178271171956637478489733581508739329384406380512726645032434071418171831289620441935207676176863795207375521070174017610334562797931896501453437086449273151703961976606983925131485982985949470027797389957263722777945125956881979488725694330442082889072335152738642328604073886931213647747205094617374182794913660245820971885471897628319705091029514583470137016207768145428641170243818251144738878966215225728934546693364116210189973989543165981206817083888704657290496376021977793124995031340881166186789611692680427479119524172825861209026352422377146200781498622053252720168787259301488823665465943221946934551332034138737600116791211697582805331863491350101806599365623347039995698392534631614497336328023238356098015945113206092362416403304282555087650672304285547675252658668587663132765445283826021727464984356776904896815602411566219640084842991942889238118638016843686928136957695997475394049626780763916270689176704755678164695312760340478031663933902026156985971065682152742442355961851377247801986102428381329724325790384576789100844509075617498060732648868390834166325098970552636759084819641207918716992726350037493371850190130762476854049596222414174709019074145823611727803743986067021346942502201526815563308712023424448629674817045095701511762494573218534957214817203016329879412994594802273840556078547652675662277624589068685646834920275881675177708945058643090998536144333507787020180989499118797756028666473001411723902959455255142942202759748583580660576002989169269666754933313835637313371686996267128168052221362361567677513821649153635529914316362213850427752879691519408570313516772428346844639787817203995165218391824469762121545470895558042010936887926974765326209902889441977046076682313494460289045012902047536529789478818949513329512015206949550649009876821297011710914356209410505674894943261846471613046616561910162238995448598377765912767983310027556952546131269765702599794852938519773942663172973284842371039390737136129302656176537987643755624336825433899504081748695004141291230391529099545075368361676410989816058854108646341962359651828431306305741240286617107931638267973421436420869874186367317260085576781884750509292559936118163295594619359364940983376207757039099133640385842327757538405442053981975012644736683001286321539075192757105770974401003319261044919241315425108196028061458704893495318757293013653499972667027313050754869691866408565475272836702661249225611593203203263777189006455855735518347997750415224026266944763093350422302058890362266422584750636738790619199894279448123669844286881791879292111921521975888720516993328727347542455815419725745168841394620709702953057043753673830563475614770326825691859698551591131118433588033498369165020759537864701022427396197862253118423191280841169614671318922687958670621265420654025209008093863479975473969311143561833953151294321594528644474778929632895386631638813717012529900053457948061524345977747959348130076806164700806226698302139862378566180263679098973890133633914532052870456750709633312354661889837372225409967288124364834746845883557312339769012115109422590265284750092297222637142663407045031900019350064088146184494916389521976714286711493977280559082586500875939939243986655870733295983879344024856834332304707474181092860576169001238324769307207999916211102462807309693333101276305222307114359127174055060439887593694736972224203828416661901253029064518457853327840433561758951211636383314691663096041349690336917643798320789531928536168744550474882677658026940528091939675111266795351971626341654375949432055398309089376729914941557382302532855580428324388981682727779758624272763740955140418002918878731010979037688400213091498415974865706927506890410993484696981306856116767666126314735470115934010572042074870584818363871080834710321484575469819136531344894909829992660652671480150035258507014908852920054453237240822370883866857992344297828544657292272141796457956577896857053573609522242440900676595512978926879801394782902994165171114616294349320013698380729859573134000377766624437994965400102768621138396426131409729231812948353647084323062025099074232823221212220953114674703469870964429916480850836149439878718692044474557475335300468967092285117742555847079442828918945123762480116478649447398012341506546329365927151268955535758454300077865969901125127459991896181634798144083241002356013947079998455593655278212661008525755305467238570021200853713699756188739377348758566792154925542163182762894896434532842572278825294335980327505107068107667105973190094810655932019163545697555875711186598049704665378335466989486874415834002347196823360393480311642359015907383019221392436606297882346274636388829889385129550159087167153674595784099475932012475389926057484548566263712831361066712770075491842493986000464792520531930301858659652593234136863330498686107879390145396086308622900434488583872453092464189996391538219917963353223030386507474259214098903546522173687684397222994468428617849135355278319188582797646798443682173804606742680353600489254183747571938983276409011078371488760871705606898019771714284141930066717490699438545919561236215277530249910946200690940454820615708515978030655279711728983342656234068280767877581836476057704915948912315130106925170509799329710612036428970765614509505324909737387085137222747732165030346131222718799066113362870241976431410102905892007492206238177456637907218452648972238007800054267418991126489922398597882763462682423331178251966946455109028167973286334405840024756677933347159233368609820899659923579325876608717444648126362599687032216817319017817868015468621256268128720800939805871271330912612918463620348743361600345307929423341970377627869892327188069301760228066264029497756399973421173334293944648240603587789528694343006543356100157619948135855608348705972179489915854778823855177700709550938269336718523972913549855736421535750012409691445491241162721310463698453910970805697567803812887211095426625930517230271897733102149079869948613032717702563311901327791029255172719516636471730001561600948794776316797796117031984335720073171276898677742252527738907529663395115853957932203558625058500968031135937191431662816683309526514832723710068120151442756622753417383014241672329317602700884264233168815418242807433595807146170490434831613212774183511686838218323708218929436903469436632136117629842990564708228432828319204806012015691366539988177918459953507512836289523004071315225780498991200417373015111484121458518304089534997437638303085145547818479098916553011967382931308130327084240600464131921895022032634888081311057837974882277428250289558073335603992029911522218935758307789372604728134707850351265638606257005704403736059433690917361597995220141840813353695560238238813955704717075702751757662158435795113619805937191402513070695093509733185707680794873140124111421861631677078800134540751299772249958715022622981141899426965326905216791230250635730328159623600065786865500487075910034885216857672889344841440868533083520675221224042464622010679870877670977426497545510174643072555779935052588344777175782904414649911344925704816306129546943547771104910573155619837551006516848933333887377793592415655803981770229768173286424624614179561568822805334085491835983221888939412498226977099073526802495146277974253842886487716185804399042731270152232930912750959135124930245890102157352513890981460488033158087890354710023223399166370521097767524403778613337096207957233413256558550231991826228281328382980807312588594132240975933594972341858736810965162554989788530781071737950431061155453238307430212719661254578965990525832039700529214866746821400146896435666788492604490159897829170033602111411526359944014644465641847871747689127934429823216013429134925658654487675467667331282322016240966750359528340691394727995980432455737514883490441575817360732751179039415662732573582966279988980416116765555445456709290849902570840738135652736688378473438275207296425669764535733942422153229566080602845818111884703696680207989943117710707717601612914659245093994340131465334520886532118872852013469188373842459691141476305866258139637939123018152408048426380566306361522050280475365213577470535405164071872242168919546630011396256083176981573939367104423374250437817792150149361791850561809099384598405393604239116318873908385370391001592868632634571773963681280462655393407806195925495064979242220761184877579637064450797875842573913701993157024168012954686926122844663302601404185983631565994301387648958970422982956906007077528349701147683520302682920356369207822935307679889192561738767962894167271150600068556338382489936301499900066159712775488907191664461113911403151844299066564299400173221280835767494572808250408187910749236894903462638453293394110779600278761593419446743447146326374421512558408554060935831599282982238196462247084088181512749913477021665983188237467114625755163384901292458564585592640430940304702821829287504741641985540732921479047561325309707564244718233070640656573864615422888996712923239752287156705009248455937886037260880009945794333381617882777426337534661454046301387774590278172171493387984214813228950940058842721449286643970608966369581692020574670672191624136899993883480928088590374395436925455232388087182555249250818721685168346961638944786127132684415944983078056835428782313640344467665789366374611923138474688753025417616683928739904625462769896582768128941393681272990009174275194282345482773259401860257576995156138509505245636940401822671701889886995528393526762453118926460204250977249778860297261372942003055737192952779322214050321865850089058783312361295460774470236191318814938451549330472339211804182186471142881675828925154985073785919973288009649630130602575202836071128769620621933931259132496109688401965933678617200491996383780696112120485862869651329807343712571263773901921460749332146983932973928802821222666791964588387674413976573925820035107173440826594093086117264002727028248609352903056271366449916927767827041234183985961444475884858219838045284506416483600751152973281668470346178353740013961293752237890870603430959997910979210738457819475354007623353819843941392524303017631467367701120147905747012857867817987003240529404381676361951316925341552821978082142635809559381331896030985743232745436096169830287362359332294408417593324202370854659835604976602262995732021501049126308598167119159247133289635082412339534058719070763532891110979276451631575119504601317196511352735516442771953548734844864179135482959764488048981241353327822706704408608979588223106614651147502059354773433535690025928889544235532002651559652026057340459431194222977119330021326668983815513244000662878730815663391526052737629124259977255557652242366700595005355192500373338298353170814524144049836793437548064188365687971785082202631734338152270100476864657273092475559499563906498190747445620121459175679087814969005266582276826633496642650589688936470336338679721719366225134486836360376351354546920099985898818819220838184383478613484477476813698760064524018638371311978861486552285208939354673819556589468110336623427285733170487229108560216683924007492798612623154300874608875985192898816016909800369938028584068979394992553010708912511851121146500775168718587962174730195728602889806207297033039245287518658758977832489296092805319534612135658027598376691898705654799703858774185035562565452771241665819125876760797035374053874570178607617290229391494515785153984912937323547165720474276413091219889431009292758590423782428573233195484504297678965707576621431918757397665210362135204783232626432501922672502371677894670600292000874198951491028807185383599630817032585986081362568968333034875579972070403376323320173554905679488551636890546399758779249869047858985021980734373423762840561180783235553598906809415336988994616237615889176205376677988568442243195613738665403260370509685823502470992954495112366953464698882163957697829841015402072711132957771571833792391489536003989544369525073327541165396689659392569736864182623433670633130382832516279782972456002119719810116819575303788602365968797860690962057115361827987158785981550991056857058185050006200795583481341791660224074806001344935192464345351407328558310588013806913736143703316727632155567598798208704801120152721017415947703643026440891388793067746536310077072536017870548112811930388694264237726311557223824206658165568714619753804102689637700315185350129478436160711274073311202481498924933517391817028592558107723160122253263828461086525803970319289831681007082479231968618438009745019415503657938912013200873067103161263378467883332810188074359974938853362600509711852989488169692779026588108685903252403866378260834219874572173712753822565715714287753539786063121568911097658490529936334765213559937056692950744520499520432310920198574788956893780804541719479730559152562960877859653801228333843399287767842712656565419469899626827380793343705656909322017410813613083778480485769726595357894396663527182034891618093155508928934158599781254519151531180187692213770723773065423611790942584892042830237066466901308627616567660354880434845597302835482027648547058703961316793368211881467411209521389662356532590001893058713189514149234524453805239273099123153155564575757996183015036339520344390235366666833611141013412400916266163154442615331271429629428908463329151544939788007286012073907053890856391122227909228718460339565870935835564032183837461977801571719409168251364970371948097521650103832562579031015797408502397480228801915127559151095632173312218673940012554624898927266874430293338156227383608536428695530464491326162546548392260954195313361242179697184403968536572305312432252710177164283223783905407735713090592266517754443401085006070526157962302510859265392601489084309788639937752191213716331495648029267393187497283500178129117681490007795089197371519120403283092242561325696614766706702804780854163983997251175631045230592878047875927775408032221898342573671654832291337547907605553029560559521984686886883793250336793169164394974723477729375749501596966057908712692023894323202201781347049075525567676103493843740248216247833781000919553509715622393428918275184465101207131899101930604830450517891275434250008391616292863743099109584066108119999212234020576626389934934497669287242694268942110161509822578488398407481588553798854647911531564534319642099791951835277295044618260066236232735857609428186770690873478997653562000052004924867751962678155378973582261694249995099009904046937986186271116783081104188613875056623069372970613337808338051113418541931929119263451719664630103866698538892288519071649805970674981150814053648204938661675137367030712674268935820908449034426045741799963913514372788632221851266191665242287372528450319857291577495494070871873215732269447077812815462469542574746781334123629926716854146721001002036433441907976858094553711641522410539077117565140049097994349694971109949235138329207808515823048430528252813615413711518635255697146322462691486723789197241161170052800714806523714179291482948838878821581999638534564476527612595943107534889671379817334466356990925935181821748504017458464078844519140987490699271984189427678424575752244393878908324117261042587627118736477172413162384288453646975750714011857967218521510037672284068855868477024211955295380793597109769699410792163713833803698952822971063750884438242036077400690524516367213474097945463198531758895089146369216614016637835257415683009227873041448610366621291119070685561621755531499987893114496948924063070159552048771457690010267538331056661043553325446696061095377026060978994919273275815491185291641582829454140987077059494165431945984825911438506858163100299006795353932982609959558607450276840258500562080026431044125087695152836264617350665004576209923688412245186127119650816229767889157806122101907058878095243309917804337756186389372947226277816263993295965505183486823773505212037848576791224518274761509769479087921706595535635637819489717658110124775490847262424837948127002642582019946512809490486822544969051478155757310081743880911260593135331135959885880868821913323173420261225433648585353709423586270908453942788327159532269169421434672210179701651665266005058265236804487560460857996078290475575753800063054477923052512378206610565884202521677209377075617739267870413164639014586874073001371805298339397154270655993394731715433974243359356452242790464887220968629252881182931319861467546684024638907253505547060153711254621589850453719939437290578343062121199772973565444749296712706931621421139367426864612958602364413455172806211006323075106591489198572984122463291195397440402064335150647911045072010755021635026218161251438235764846638415462616681185001377205901741594754260816180950944276644657671197366414066662955455007499884449286868235396758223241646874776638307808380087371199106594399436593348730043478765678338037549796372830036644880706448798172931004712453869968294231209623887224705261975233695584239038624023184947040981234493142244218884894254554100044682281466848488876089505113423389243388353968288553668751461954068094497810920342494570788458984611190161734933107474205297824008617658948658201851493595550235375484512490156657322453471553378232716889121869340890524729969756224551893793771303148921856128544537839715178847165506114974914312208592246021550643235684105941624761430714583740209590646789076701957401965605133673277279392403545420169977796661313539408613006080461713609725165969756407199884558839089698976787249378048109969602510823536063998055848482847710673042226582368490873519716364905805843240229194955966482503953384428961550892999432139447031956375081658445620945484717420684312497802620437658779844520767429114137937982822520395346550032067356518384419346551497411361805734839998581315635618064754859038339771358218184886599993580829492250501606425047960263982126396991206029386030648355919859668396535262339503844577173998392025245457138323803738113886724847013533538584122615143499764383762265337680376526886860496559255106991700866809710814858477381118421126386439478146161969683416000423372384376413226521447179995928457492521946629791101848069700879370143102926122424659703951892481825022360793285554158155613357855330740262831636086648389062207591991068481655855758860708159922376299908008687405766759381137230540863687353412773536230303716705095249027385397716683408416208496077732975300089146719036331264391112495882328446237431833628093938256235177589202436835071412218631658091432967184289134382571506668656774433993529584447545879413419839786099623487618608492830215302821633668958296392330133931126233076350175450744695723447881801758344788273534444160651296870672509841717708106701691365729553021587164913356533820773792807305775861770265207860896401475513842413973590793788474926096480715566297811582271503419061327627817442294375338610368586195080632026022295883083202773131720320438579918105103181404793203286254493619899528598442912190791882540150532273169344395798857319619364028695493891297076972327253113567029740955402203329777974644724839124732312259492798887333869715910677192419166806998583679407536801244750115439433441420557963869666626485348477486701094350101077412130694543477162169058165212385606874285922629616176555916031063709658203169815477249634705861262708145345698162342494746527033671858838806038781952109159681091980351262459585928823389575767217622925231999097007860327609822844807100023975653590337695299469096117421597875976651402977185699398109724483844381672633207089506972231095994043919639785287418723026352267548700190151795073611190382380382082844389656113905158032040711368601743469076191641456384411044917536548747738393877755674129791705161745467658744827868632216789664797342062909765380317014659671454495954954598383704952822988838358362171965039502357156871107084297540842332939743090293633724980924817967732600071092976217532245652482500841251686640982753228956291370538680754568786755922052582412927049073206010495141539008737938599813229004937061410825925245067233712696231434853367153451939296287759570213182788766222183181508544818020169518114506914859241577585416625551740095388253503721776115661774302761532941740489129202831584230486460902621992248570796825194089184689189742504634794906332961596455244968735037963421851181208626057334373618738594269669129661027658155529561291984232484870283669735761749506041343058971920480969248903515644233724865532484625458058235446065682190032622684222466785519171413480580522223368557606475358414311750195521935540070840610682258488762155295946232270002214846275984077536791813021574014352875126849750547340998863861253529590054311056692410747023746680347412954840264800742644432674475852530369944820391019145225553102396292557507129393454016118938726191017063331918241043882948479630345703511463633751055566978842847170600212398539717513664801414139627723498786449840230428537003941580662177570837081034351043179210458547602079901036447886161338486896425904924115165405359376602576661450406566077256549651717053409321720309688398856486230421519385788421690837164258859310894929181857430191598798299891872255393084440984413065941761303547616959183800908009548509690369534563413769375488086706067151912587838745321906818967359316314651943696729443972585663032036291583562981139211705090180395034688868474555618407351227111570385497018816555228157552148485564824754706948857238648258628358096290793422444925615269555381566898153117248040869249379996866266781012901494031383894509066305001530800579326294288605260370543488119676259064843111214990718659149334347620948225882479852193311559622558013612381017683993255655770378640531676986426665843730850861411038278747890958952859582844481564474284921624990033578528737411028658699727073218550684734093509267183355402574632978192584479826091308425318099906230338609593852326417563603055688656625462013206661677423234318765518187095527154653886927217230149311863992268102265840502616823600444252632498791406986074797550028780529130019008345207082252865073145788719235005796908441294662505960837595776836098814166819786603248564039686401059378285837958655275900814145100565457596281256991528142836979014957487844459531644608128085029574600744944219417800722006728462039600439672523058493793764347042203499276085308515791946608894887497833677800328819049527403768143475887148431471532590380169272383029086374853837843620579388220555534474325400301090322701263006704226535833409933620742121055276979052580637638389744536916965438426459621540449978154581387912370676432508522584785985363975154845983170347238275922425197991985722711504958152550797448287848634662917742337220194242883260186399381740802878233521520614949897195207316845238453911449155219315141132898660728122514378970519738587640519977911146156256238227801063761200374187435482086626839668992075827158538714705300060145263739676843462234488104916309326380961499267604163015180237018876485052460421280520942406770405284441766703708544600661903258882285075229696481325756226487390733913123645779002310156460245733337989583538017587071880038635594927306897952606988607095333894236455777168577166154358369706768323675780227711354498743891583091153665602279216008230326655691123242216706594956659180884729479222635444005720897329631966822196540627054799713169390634814347458154681687615086004073998599748970313814726715982076515586126644784740592840425831858553918322892424589732813043610647404914482737142875583007346314797541066710571690282974036892952667495656926431758168617057178280137683946899193918874327210504068600648311071041286568821293392303136110838273091463882376550552714258568302197764137405621910163890897617569444285768078806975639095259153744348964872966829747076301600415438381784089835766852860765310090973433393153364947028555004320668927774621126468748264126394045312469471412921245060843991951214292416817779019592683306156244593692391247516985352441004135400731109719356856822236115441066901585951396644851657733303652322017710168628768419040245545946694084537937913221733164513650431222924275088080482538214908652864063421587729580853931312469392201094948306703178054910535240428021427365428632314349443929174546603247238348513923507980274904013859141423744707612530086436346330833952562135556518288870156649264042486126912011285497734298767676477650840692759771434685514302996016846453445264946009386376805713583439606677573816045411833398657140956903027046141798568145811382124673478518285955614998595065667439808950005550405815608688197482681499255146016078536989025329465265932267323160080765131913628736813258633658028791507290215169494524947294768615770944203403833827193943641068712681744794029569229584112756947619582600027733876618876250691405236248410257569367756232504895955409269421110735137045521115673995500357505004753733247576382607831500863430717447296712308097486306369092071838701132938108720603789515293756292064240101335620198693641863976506354132556962589493125295214519348913155331475709520828313691965955043845047332369565619243259248024983855120136633199811689697103126764777955236599160597122732939849293698945347537889390297036581790744536728237463078327793141171091381860734535368832125111468465839479310404487342623457083737700123211578239830489529720976959104730350449687639229555398817321149263898879952357122810428818379196580703528763842727089305277257546668433668996976557382688661871320201623841550475194550231171105866949320444457587937634339445156202110857011829542676201809459319551336178033767174909861191544996181807019706457994460585824053636919150325749333295580842804118480119629891022165280479356108952148872829721994865537060552511164021358709896002814589184924689680205101676837444729334928721516611469437352310766194032366499839167133228447736423015941874973975247231962946836021265409884252056232779119930853206926904252316234534215251087716299379697346522935754287827099274804176851858568096592163620011607350104920624443471536694113438141711519900216291729136436544045511767718504918175517319068388261263203219306104870033782191808360916628787804193110979852364113955893349354617598407736466447920599376196260110632223885473014461847086712793700135945061675973820634137348494799698988740992617818722865631121270714222391010366007733597616630532627592609087569302979816385461641737465985427432196099074945831208215969855270942887300119242993391733361374315100491362494471564897360962628937152118651326875808010784523663287561392264986621966354385686066702879107903271695181093301634942312423406461761771352976657714309277189139800057677181358062687688534997471141213597016281988363926616906197409986276527984171312895739414948168551125260505243565219024179835920533291515773137987795579270389623221423504437347057001050757259531160742268558877201465900684890270048964496841521361169971131619682855807780766529684106156831424819031501631661682551552579943869958416545451806185560422777884910024091417494029851171937525864950523745518835911614290106753949878389705159683266987736378535644667587446699501228296685048072749936204473852244787437495275386118996698837049519815394929332204182345710574022304153761920199503338897673510074902986532839168558938738826473425606333325112053198611422808626183977135426501893100107135378331821462264700148964558425381758417043287034506345640931278253901377860444943414609765524265471023762514105976891411715037654590534039465164935766754181025583791343785745722577389677794255003368791014864723812296107550883974269244501086652388442568735861521549221618871865341641728361356880743245732250842414545399944387241066209975789015272291910430583815223492695146127787802897490012170311438793531119348347010821289464075610480221310043878297124966963819143827612266372407454280731739492983596873651593832457175578010108704450890095899476051603280413730013278731416729454060067015713385048806408850502099487022221240190052171778665729358299874880923370293692224515214070689593868554551407489519944361401581255317095195535413501414954191516908937524905190073985987786466172774012035108891838336950648361054636945333497192070295019353230715361066776482959054763822328139826808324779339348815316858999162948853883816541919144614733348448673734057291642336891182541535512722644694122238308793524101864761406689805964213600836593114064137223602883745985543832045637858852949112626827033147343654062988594648169907718940536746820005710259075997421915628033684919173154767078484311177925602369448669128403191586342189162417393380524019374089267601537900761943001060964744020536088802770404438105729631372461583547680015175667250405651851961111163453901219019383944186363198209611571312605761932107252787216156724065508685022031998709106930596585630268568311177087058317329876433188115286231541032669212282487215281187680833345149852917234976553998614011593629339099318339557476603194656520941748375678796253411980573191636279323754925705166285021420345257169223173469691559635299096303631880254036562324892712863148575723579176477809482507186874187685386320409610701887607396990125281198754358524231530066829437914286378100261995270816959521527607181509323005532436905126300583262385685013463882897913111441254230695165952623636467495166845875718974179703668608549734555527074213770254746783047961393013872069785039057358516524604546987017138379274692066297589097542409274698369408621845928548436469921708563626296606034043450895375255247169396078976075787999608785653524160001135544141281746683576569001975045360760701100771444189295477620348681734912836791207082641777096882556844192343538589736006969951384131664570181563446746097844685824811884964435614616623523585017839736096108196868076669853081361760296994455747354401237921871302491698641508847155400472789133547047644460286358300424015216880402312188758723028938622439529881836196082602378074395397394695050174232312468847261520016594612138360883057344559116210024181139698258733667439636198973312205582928425694685117765851912155870543522252380655037191442008302633628315736787575600218697326721174710213603149505534544618429145676430044668965475217657112530446498168428192659706606169998214275161156421617269819296790334758571177714694529813346546967076767408146488228677513787312774302422226485440451795289418027325962912226076481142641122331029251018442857732866407065254620982471797096455709608602692640285741199198224756979294258328681183438954042070426057059558934477036230046120749536001103381252993622328167588638665839011389417197075046942380440675162213035203826826876095435140597731723605627599833244523888992239662853213545245796323641941322722827067100637081517638561402696379042603302523211588639167549710858277387688952329153368895933023629041653234207237749896807907258487925125580011715847683024522578775355493021038371461481827994910397933034815139300068343466933780256905781426631977900626493570252509306411274170744920096770653772154270649387157559551674692352055798308837175316840472574999630998881545590489682925082408386945762176165073425763973370931077093320346051815676491984105343794191217013657001238538153213243575175384391367432874684485679055082272057432995502930499536552896942223034417699644075117093234696968169870460962702922516914313366536912219212529249066468262434633119222455141023064421209590325495490941646619894587920347556014752421503503008301691043938363568379416411498188340603611512754754212717766231391032971010835036315611998809662000393499114169317594506562449945111486072053952208989690951022940443404841869693245214992198569917370426491793246495778083226813474429843809324897386209225277023999039436741737933349250462882466828495054265889829019302182720049796696114124411237893394302450821454686708671148701127322896068697067028273864842196430548584099756167429399747018159288686256381814487403150939954862513433522004127968072729614433085187762450290668053872088839055376019956269948930287623663368020389148036902039872028093043805736934355467761475841103887784019571395286760510189021905377033271236396707036180966662427047243246644157230735296771594127977410479425081665231086867180455537259627889867258709595845988455457901342163747883116121256808372404682872201182626916563954909736965112804579930143508658934760254324693202512481757910451718323920346361774480838810084164523210079220575919806533565169059774255213092207098686971667308866368335221884422146301611642559037502633988257134330120229395103598431570248102916201790957407145068582139631040696425794631292637314101077516750263893170797313441155119297317091965396174024475138712371300888410408735274162373357174377025657600218992327394665828277966070851630217590401413878940572130350866440720666318876401953414147868039372450085933613470810937029122295132616568856494658862411391993113240465859375902510577661238645425820742482311061535030950339302885561375267194062681552082932009841155632980672469120948482159020007858291351799180287614545316563949077285034993464882704948212822656280908282009142183281625951546813248923157276070808693886503803990879925983166924751157858397584034086117928525598761347600805903555875486892302631740674391623351668287897512789342718885634732731546311110029165493795046305521475352226300803392418786747336471502866341773302912015467517192985399052817720966477863694188610181519902146493084379496431506506700048054953237483811674122889725027670540463023224888671962553606911641363253948410369198240685708797285091162739830791474219352355258539078767019969709979789011898152830092565484518831734514985610317238186621350198801613987256992144306621533602832472623760186143535653321250175339833707047223721887673927323620721785731048695485907246803889509835705369769194621732124610212670578937249412468100549540650227544237950850658241417788990981882875244570684413961363453289137267313488194257422010623744672073760900866422450452936576486958678661888386468115040287944103890099744229882547926738004180241237951491428124290990795844706226523774817975482372001648897094175669960802154658849116840770190244883683899640149402452274095363154050072526293262377595972542112063531816381797167284591279639333004291330438847482658374939345371960978344819514807315258567201508476038951975877705181270977494382860297535225569620007489540693053132005455824951960938960401159241726939455184292817134020245915418405599674074927401746479473062483909816405296281001158815257476584980833884786589326286667039891199476343399164211546349978127592171212194749507142988728611553138363095125812274993911703564027455698088525068592167923119675566487718193093482328213747246699710366229659885213873359695009910188802952109859802665520014006477827145753081831922973854989139651694086800203219243835437211566078098959010448757907921170473474899276571461397516050604337942944158615885064162152984211654930445341983902985975664891620135232135912175491645996630629222090929847200992605974939347909713143865654634610695228175230703843706169501148104667614716939502653822043021059632368050094955650011226352639768245211790817110276824711203032024809263406870617372351911028783445223415804855479950965808907500134333745963535117844266905133310026815690414686613203176513949755038815325294855499789220123573264776021136936297612016580275292093102176937598597707075336205810343001991049729728803179343953985236466290164008788075990180866926773661182256905303853900103674392754518715764252733546199240490191889428605943968190295771105854866736780407584033594443680623572570439355268061975219652933264818204237195950010188888273305850650441318888701612802078316760614340767950490953048107248108643077788218881411864105797264742962152056892199203355735380184043662757100874683566390395137411708882807055550999181826790917733746787796111727559456291612128077863702675098400957183089409663496155331025935088277993443844093036855506596258917819397597612831087573592372757810932039066762668793940543798806256457701060963667935216997538197992544763461464837711893771201784982265494745721370730988240242653024098094191273029745656637740391033341820591342966314586857303510625648743627479808882856773541986449578643728511745340862266075585779787705301039099060042075193386922121057684640723184174105634349852538674220761616524790367463472024530835923208334216614678550110512245649264088914091668368024903886881413710141508682580714339454264430520093433209958278738526395178796445400593649063642582949660737134160809210075732139887120778155017244450659853701116747693126032036182345404632389935323852655656072866363136349127066749057678467560835528713630505530413309177930878963378634278243671849617489584077744409974633280319158214775562311559191881630876863916314106852850104122878644120724220865467224672937328884017575715385443750832071033273088596042262624245479757729691206399529157093473601713473119159506508743408880125843591244304601775522637335725071245933546175968976352267138968812037823650158354568922744521533710276825654897551260106484688750929704390122130538211239183678710954319317956340092552619761583991614716539788295539708652701891114786426590515982048510413415116269409451712763039260243010934959125332581482750200956999646941769254226710869770563167719436200886609894900558644297092128914889907692363049401857643197966735019805870178077325932871102421846569807837891771842625207557665123231207970409534375061964528432951380688345985308931625012295586215363581213548635601250510268047125301547794300658729143958862586063746783323572204404809042427409822985172989477888500801029982690771417852660589564110228606024184327662352461255780793638952066197511516624022545832579268146386685652327199881046806421603955495617828562768693658041650027211495735268456141303609770957501114287964025224863056329858871206187254098820333544059662071350577456942725709935205676572090436528082461714395200759581093701831054932735156319556980700466764410011057699846213499394475789510627433283593072565497094183408525029116498050815577573232183324761780263008317877227970182133180902363708889932097157533425421663218794035359023144436914021399080084489261823431579989278861346441018005020429418193300379314962999176061793520499600385532449109475992530815721266077791104974905654999556786982601192525781927388796791848979884645353072664336421115586166123979957224431878950957865206202397139191750054764824164899844614398820961560415285099774433030583580983969597405545195154812633129526929217532493031483760012953339091718606528858608542735439280946090866245189615576726215110351808603326639227238011601486109074146168055151287283442615480822566004024060896010813379939789311698595012893408975126203632424226159540609884973686230202887449612465632628716209739286405049001965101413301550715125953664830913344714522027813217587983256955228028206380925060751952079944524805351851625477341066037180176151558721477642309388841153248374046412299991134143724104252013095979692820051387187588196015195327933204831491192652202593782123947810406671293793256191484284981660213339842470718375857933488904373296631087919262113453121233001812712997933244613402235804281390908315633783264592182856204802622450050622567197271911627402527212057135410166620709868475566403752041341988216584560269616488875843466941242327438750938491536068090967229827712189812932305660250733970621551181442635058253190250430977989947093653732953794755278993982642883521125662694844084455775978827133478751494693997959830386239648049637401069360923443874281477109327618737921102840362077931708831164007075337647976889536065161919183682737431168796528349024515816742656708401815044642219698551035134553151171435567947536561018017449238320135097046660123826339617774824311142236031922728952877421466419017451257735698665871314441527393690967620150448810318982297821269754152090704460568320692229438269738403189310364014061587859135023971313951100887931264187425226646826104078889980566920337653738313934296974344512339539960958270824004366364845873871781528293785747975536950223131772332466881868082507208476162335288940750809085277338291165250163841434902814713193679746485300630609915531330471875131542193358428549455898627340724251710420928976710700871035014321212539441897747375050655069152527518749337241608113555901452356102514523853015720257216170645326982295447253155351818151089136566866222413787463329342590494684289373913747268271552198196475374179593476222450953912766668696003947591473851978384781041556307685691051938833260156651727407945706273765788048977063535077713095319138153208806630955844213091265851107965298904721006408480922683963994421766486082686293311560588052431781649007493956228579372439103652591931815240104956203944573596506597628092969426544220997351099142206923578923635747153495493291727939053696187694994760998757180361369160154583137512095156685075866981211366668398656166518746642702445057150112585855405218051973249792084373352950375324578960560449912183544272400881273231949971204047633664496688053795677493814382474814588302227830779625519354302114613192043635106070855990297655569637370300963626106169370426025859965577713017014983347219986546574585260681389230376923020546103120582094794491754817491636220555662049610917212831879069939433285062631715910184263538465284958777816976606167318745859892852227325450416330854137080010858182007908064078828863475068862655593388569312632480555015848763114504682533502162735437698158728674977936330954152216666974141249560123939448033938578224412244306586620869371102531869556286744339223989308359209872517858737437403671201350924488511871671211916421449142565775237582727792590592632886606388271397762394586040135170658087960187996538190984354666630045142207573440485102184006098368845256850088866034527158009307909041930129717437405267053825542750489958989088369157895009552017713921752380093972283023980371216928393746545719081059952410637281589098921082261683844709947090347785844551519959218682325300872213348365983503374795615969678001499752500837047688464607092257015329446383722694553437638126653273262235492935883073437209232169937583231508639687603767713946725838208469729443482605500843712136476007205965656341027224009674928911346549604027680961341242896397702251110986622793585546220007727626897798505347301872510759963284196146955026932524005639910627646848509900665377803494188410103912158127921686647786768040463010715159391473412542341893804450566472402488951984677452379328380178292846110683718398680455767637176577831510253535732559132162065619391713304874092769779578916217905490208001490195728968774459649141917064081247850505324633868811829883269577540113626709833777272744333856383692340883965336643331763597696092537743434914917206051160185780540317202280059870606841116809133837031836019302613545426118725665534373261573705708686927475672180269331700759214432885317375561129391264258673815083865596772310385999937844149432634260871386043062068839822935522368569333719391629868692353189718471048301147281637865399926201885302367120051725581637080050617371990258816941909404091728132856455411404877509658213445013579490886794682132262131623922983000575167462506083009787272330648281575285249249034035802829882172529323210879290781333864635225220910578804038429076612324510991917853867505735937666085036786101292583246470573865767581755984668058129295523279400654981465879114421811644017063848919326482377461396658837107862603326058669642062414439265175813023151454924850148215000910924980268230529671412982210490839913676580575394769485477153026482993441544721983541573249810286711272477030972770679281730901244374447477465142095336563709693624984615226650582862508497370695988350705992969342291096546879274418879404640647719939961254067285618116557141798640019430213365602295927158639158799551504305785562650134668426010607200580337894984394321333322166740021986679381816582047685454311488211583336668104394127647926946884188748707821097133060190036476476748785641500366614154231612972030823054280773240741738414971517562810200579345027749788432753433750189734517085492608392429884125431045527388236426697165749288200100972725429739530973076852616488229182791314007399326058962913913325360560956677609371149645930187692398362383652280419435886612723132784429703644319107299057246006021171797149856878364110910186417205079914728800425116607251982580795900516503017519981639795000887948284977277138126012699408318984567416480603074770247515217542960992534103909789232653821858504576803373025509686032365574219618243428933511867588157155669853636433580204373673058631357935159760117948660400361638097662373118072133679840975667708139339772675975793503930193103585743231265372368793738705554812323746791682295615270372786540844801527790927352565181930769713284511030830242731742846505011038135504919268649758993970333074318025626583477669429380630316148811195972319611024458223727837004989660892682366968648789201403950988312729389590967651595630200787841811727148266859846643232717551850350381122417224749596373683497832756404406592017192824993253933495862874900219728099076308703630735826418669016242613232959029986526236529436619564047902800177184158625554134986149495678734500774654690864992108253649849331981744641493957075330845473190626317496003208713943165513878231623227049006688906329079527638067544230392551282151318577698564611960423978625998358857407100004033569614611394968856257511360421520268360341390785509635521367404557632650188381088301283913495950837397954023373137001162981916298693168219394558575047355537211803585923360065899880101201693005682379011627959302179620432116481155889632909496667617656021725106574576847260877158203682899971688235689422630170686205383359584931279950357203225583740249011890322669902001877100419832208092472395599923140526735100007444389024984434219397336344816545940153011421515405830751763770660216303591839963561532659488156458409166288676121142740675961667763768712084500361589040780281265039159287753976355685936973139140906530771684135817817896456532549234753761426434048189543289627306998097796943441511386009440906634310355493211004718424812499275936178484187934250669932100472446508020670202910586132241850827314643147193568203411421210365776770901653402812714568137909412909063402882518729965803834179733300400730936741505839051499703972797019210293775333792109317013746670308031649432014064772393762791554247728715986443790723266085361755066196327736381739664361844005564625210600234032329856292340591373801644502607787900826592397331945676171082159628428401180244706233357699218847155408864635880545346141635536423159885225580371274794198890436324845749616775409888064086780821894890696904446735304289397900364048899358308451092603303675370321124096454736166433836454387766972693651645805867834270571947996262680101442584495400911943081800826915996888529112657480875725826374078284540224907462561282633100690201529620923588784647106288843971370571058131839399457353907469189314936313616924845448847588403048056875101847437531789534552690702683443513473432861832874664862027998569785812809231900626199571376015234158994977450433954564815059254895736129110203519105124605131225454130803259348612645759062504888520570625232621019517348849014901510938792007628983812420972280520105887420600867952116382054860640582725255693081112124130360350551547698662437950668731277090747293704283220260090601627032958894695963541941098157849427181928895238176535804217358555113984544258862226750782540549032008603658315170061220214853934977383404281295590092224967467234607990889595994597567644333967504274612880919753665544265199774486431434237325502121920870361109695878293648068039256724408579629705766270174397650128638759007043959170012517611160850948232549511898806848184314698945404516051416201563372875690530303947860101000992585687216705626542862310376359157547049536881924921854652271840836262777913182296317964158706029784663344838266320237740017305189750088586490011362525485138347627642951889755120990748596845566722261122919582571327517230405371345047276593809955447172071579890630104551732504207026629964096128881947988244182040708452695338058730680058773375612820459597202776854261371172040408627610179416479428783043789989483453376716986086908524854175184718829076315611651030224766849865108590200066628393157825321243741044429685424372932349372480649710893209477285683651482055358144028278607603934274718069370610548500695602219512462182971251295053154224822956964589511955673828310164924838246574789554298035398055866728959123763299114635669093129799476755204329973429337053572240977745827903159478171456360142366946333370374253216827253631268398379770467460249145615452384679503714991928989957602287797338944623413919664767913586430611014060883529722784807660366932615775739194134514763894518523349008660633980073057607978679597713010677997418291011690154426677018586646873780686610636075438264047797382540695877418119065744958969460661729952082898221170225709311423483770941603585858138291527439764342622718356978380887651454917706259877574911051764890179709973825193985217417353214257600083173083528044809501166179210503189597442089821556843461493493699564170280131158218894135393101027513451929429623258414805231503316320250872050169644420137219540238740603087763045660763098200243986568470405615809402153009094982312196696598377373185606576741055157775000900608072292005530022179506401310572017679518027630289391480603977727199377459267081154540540292745984639925712973854765637653320651133196648839168701281291269980209573357894707677330390312068000099133849196895561448592311280730913238240981435380242481652698911282795910221723535792734360940379796909735012496012866853627262777903735533544460621039890105242800991502618523529405874522809445693787736430923017525680014231499658480623185600425265458997236504369552127022206919432106546793300369006441253754576825983549059071434267678656092873058338688993891522627654041731882900162867545112560854078921564609716776043517876476260915558583209654922067512180645412547498713652353635677058741842539267941734047885536847550514884571351517135970829029947778235190559495276401182688943685056674161731681380861138145125297925592331122060984840226193546586610901994791414922504557809019614394306242850521483459481820792089984400937991182554064465163551459208084033595724050033179763488481519052861271405601112217038551544463684826218222171464509975153220621054016266707408474430320855165270968564541125515531015044174678323636473925440419548623443183437400691191307040937723204840538681982013987234456610241938282713354950033534877083379161196045282197248517163517659399504616102219478762493324646424111474677520845465130051025447475690982353247937789329998694162872770448335509339193142755108795812411613737373450520695218295314437590351164513009977786675980626555644978988175358348429948758581371159839590842752208866105284828833520365573261790432327071054029388108813594388092056227278728094331415479378221294524093963317548668445489636626240796920944886647008486171262899122321298631785513634373763629055532836937052035811363949061803722232693055863298337194109134870906630995736684899875769540838253348142093665544796566417421432681753978404705891782446962296021216147202073517981230394376814044312397777052242053814367088767591872246298372540504786608678784098958204373539201746443400251743646167072811137029021896339537842113928809858263511273539764176522570785579867846426406448281341507897972437247831495215447601692496565246850202803522262891390995824140137478951878226287563639452924725048172440453076519398261873605857377983465690178915429078570754395063337044287476541118733478164735221822180677970362104204034145013624736063734920687199956488352892004005859476107610569970802442141177194939911897427924800296010784236798365325484779858240553987077115456808694802133272474160998560459715323766805773435037647420665373410930863766072607284119984749051319650517328735843715492605248752128844131134707439678682911808222534536960301136971195318224492930472297432977924748360730191359256398359939111832898021563987358245006126929926930474023382382667174300787422636953156487492614764247786290588498847767286108109407055132144454014267061946766410328196486179777546546326798497818036103928649255469777367023899817568535040325214824481015521721479069827005787363964272307198622262818010866079085984732581351564120833511462438856767840938306266798991321328132169003841333453310936216994232518400755146143989301461059432152161463192709511868802978767924186384843741491856391025574953242438129899473883317824291662957456777278525689225756150506753715868897889084548123130653220301545855379557223301327066571044761754383063786961886171904284824013364126332701460251176118592631813202226069075320720944532497540552065147198275339256266956262599042638655755631516588331933523051910794075523163930265573454246632526984982219986122141228841440276315460518949326199640526491058823315227924060710699351969833542802717479956634855538849129925080293505967218689755678072669898681476593242936333672823530171624719915754615029884128185396327677899971584262241647222133736551855433077728799033558249415981702048292743523471137833677167177057562716533455758554171144977453371685141794164869838747594193661425097436252313154334188015922114041334088425760435425243734503544388433714223845178213187902227019212810046336325045304347129496102393342115116456700841928873152710788053898072551893444527903191943570090903978928988817416731426537665426615163899374892607350614142680520569832926802447288472696354545121026707062679740867538052727343012234528966596685322042813770179078266579030692294462375873666701232206606912504239882721392758328537743134141976111227029785232945464847726755300399439594893350648554754814679823262100938234026519096873606968000582368236259776156859691713063556279171594269929380977308933419212387713767127267876046754857297998729258215514116209657399798963463998043483786630465701965921588102100209858193042628777610984185343435002994477635037441170556101682186913392094367595830787694306456843011716657411708433900768853597382040829726957357057196386122702772842996749236897619169323592451780496926842528514106130055591763995679895363564304067163489336602239837268977426403636407862917016370584448571224019472805053118341522398847070053147468127029872332427354019854562334563862188307165360411147598739466827210583249188757612435331572743018657754591392399243758406973698244049978849590366438556008105117952406962338816511581467987477888709812715554630242381855230845060772928908123937503333519656623839159687241062706256895959632107877623648788184050788978188661371046179864622164197750425225695182663211056285518894175721892640419125714983785935203769013111269942258831911730928138697646914348679997281341115225767458442139599082045557861616879219747897866048738434159404164671160755446613684644703062129231018746057218431751493615347746057708998102032981065225552976659652797865134219856742457702416961656528094494944486645077048225679248396250078614079220383798675595470059231390623361627673514773750055957926452386202148541094386267361449460615894960538891415346865493589867224508459127289383379308442748782147011924604793494619700474286179906140548005066913902866567835061387501932412615226485055972491542590823315461454736322765334855544361861177942877527100291241048043049573340231262455645264926239289765035281338329645299425281389227061749298389721568072783063828805141867928312911936452334759171860952846341040976885302441349630130156210913453105022311347024474380229937065436050260184234095840787590411046087347669674738887397007883451874202237369460168668953644213613260993301475702914494303546297102135311466170357202830584065004993803040928678651938801258333299376840808888215172827720154103638909036543868997257678058619158550588449086171248193551440007820571380036708536007555872882578017279807388832025631908716150005853249525816257557454395003875234552790082084225172318136874850720736756084584057080225118554548225855152966648646214847743431631615488854510155666208225416235294678998524510589399119199024564183852064172584529287076301090948319345242246846969499848210894057626580324603036998160613474140116167324238430436881906208179254652664301403475485095740161027423157891680862590998487193551810792972866049560848407061378064770079777233701344172385554689758473313147793210190872140863179818072932853321492750160119392697916350715838995410476772884997195956306635719772586974393984664137083482072065592232470424256482698633395655090123374857005902194479361007572013393442683598729820247063130385987163722034692554606209937581077280425149750271485322673651075621477533240354854175704201368008732569162363644178558538810937290566903957132495846937075355699970242128834352356360503750749384737387631178797924768604036566452367430101899605548239998126605626917492125538683773109316076381095573007375173000744028973587528378025013644601897707976189420472018557482850626027676867086961031864389859000785288205184583767608544763204065817526203941051325162761595112806271248983694903983559347286785586314500791595185876735129697966902058228904627219508715928542578633840837866403321450377827514250755149053632928230546949108942330327691479191056668206738926151809657750040488577640138893264553900585341489879324170969134882085099864299960616540305994066503976550014767880564829508165423289506618915472781321440949077686771866202501732615763423824106925180465496497481757150017844251532601399840977480989155035554513805931679499743484210251694505324055975376995374763862476728802451985812666161976187275400199686664050389255742719961752501637303598357178903314032448320886027261136775452772828978608672205763477840211777813090913516039878103443086031734241430615495168946984022149494302973347574206480245025085903805370135305846245655235940143677321403765233361828956033190967121753073857405496917692425615344757464774148634413176540226619212005360267414397280036735788377854588051486556505355922262946701502844985593514242969119461630699875343266540643992936388104697760097428603307349902353214544145056440951937647246374604968196127058457738213564490189494184235905252625376575302659859966970658883510726100058927734353746106043241906337878535807229797184269066076194448144693924287789649645065653948480078537530824365491798969453589362292460367186386726207079146045698482797889260645447248124348671560996711497692963977944197266550509720271157883617838797578173228228016342840063090101617780772259573511009957364518491507498834962494884614558872464736233157503754990937773387983964514469578078565915974934445373919935534216324496827821568773396251029839613374126261989556132827481462747339912349674017601739798901545885050673405644811813597703293797403636610607277089186458083060434238963629532054172533996547750892193919578831969780220404421376773089371670423185190534827435258983894846803362032138692047981096491167840734596868214671658127477567374434790802022094096580315092481724013838551376804183877240190081792013527355078900444793583007270532451386350302085494903146966718271635252738047199109316302220774542546280423313063194239469113651410879132740123700239559254813189969849271679126264246211794594765647838988104406176035981773810329780820331386624661175754394209613800143176223188296489593298869012512425978022894062101861121385731792565334358650194495456835720663281921756156195275488679154109964345102853929077613218086022308668002743049671722559657995951050527851215926776469390116347102436960192485950708037592091231613746315578616799197120833327988565670838972368390345076194925750350476849068097662591379466595315047297360465819179005842482324013659443559518745208559465656651155463737844637215308003615798082020429768814131432679864337918606369474539167642889164939446707426943772505339849322545640964876000715434134054884204781411768813343675076955226754463372976770880694309467248983370543421142411144034481934387802473923674233013307916083130419945753275326022418491195509302736503141410509167396964873355677238646021695435340132930675310027215825217289929129302133536355783048290301129847350710115930728733737605349261872304324601902596996246692529785269504690696892310060286336655180463638699861569925392225677545775033024677334604530220713522112858128067736235855556419289810896375316268530433930875413500607218496344834466241233883166263551569341443513731461637042903667304475646215924200683191787811618342702698609051729470948588945303492332239364566833413941632339942423405710353255128332367923078467087774503579680086167674018877287881112955881021620592648581901701578576927109845547378589053400375763203386656025281179908153072654720055266448859227029768269622032282508450806750871598541405925153199727165542522930913324058970346484285953559590324547536763071959878393779534475847527382479476310070645102058820897138586841798464147938014659540783120070514810799428027529816733425752049650933695353315087691656683941699253047975409209058465275622621956287038591365833179449922419068031644945036304461337148045222260369182862734427545551252845751638845189988697773564467359440843058009400126939781996737884761167951740667285193507710235869746939219484583452758201153593794183681712265178232455023760733976103872195702917141598046284326192628570353396381479494490562289097039156843060401318946171619698135604399982705463411809800052121358067953899275751818885138377342154867159841845761289753237761872966850660474259693756570346693903942567186900266807891908548840135826352285372337769930940238795597209680937699941486871647261504871224638939329556811777560698407842020795528271914174985429877550572426273873661652404065649988639926798470042373206313722064502277489359603250565241228303814048783017151490312962387607143579496790023423674868465059228635948964676329069829993563657323576478393197291254162597123384035565437365709017849851438339733419634235976142405666850735290155869377086806585462816455639365907355584761707712120553736623958191868730680212897390304093428559691655579613560884154546438420039727109251778855532855808145077338807797177601562014307537475200450607959415262025290895047117129449866163676008121111420002086993925922233595818412479482309112935426533001242665839977483334563610607112946064146126272087787411932848170048578730032108327828700786144057683707003730684424089943123856464722221745181340080040275113707035649861530178714628234690829383962688816552042518174108182093965595387234524630160345905129114970831366603222487769579429382840768156915493651290973095912292725311173784075711452375783514398039700719529168930295788844551792409957323174470328240006124619199161011423925455921522329924137236340306797210810581797820541554361336186011430259168398655777977873613619662953778452118849289534328231846645060844312678644407489918284475771868321137715480197181362334146748402390743354031557101980055867761255135229036100140804937902219863577975467391537787322730024184272071964764022092359867077419381973488865798428906120518765562488844127186287937467793017128092357431481393060203464984380443027387960801916446342325563008537054613882314303297321711409196167867562155778901994498894840670574856898162968257817983058800904869507324493660896284688071582902836946141114787084670808715443416485840521574069454411935334163516892051126322352032097492818057497025505007525060927769355502405707252779901013542103355183376919747362710310858431630001849890717138599256069135901178027836462070484831283347480045696168424895724826449043093872462951254457119153416557239851942644853079891892327151548955747469260898822998226062592399051762001916301203957494241503060766140324241064292676494982054278327614401220666893406303659455920198031143829034746110150734050149591537693054670814030854348165970742885407745943893767921274085817779173777535495170364133273997389243009366643924609971545152475451737247064472728612882010009637692490884366656344238401646282217787842947237642227739544778003093422322673713627899551746330080816575830982960405544828115146140678326535575708894827772867557318867718525306650179952588817903081305149508413734108310728899304971164772554763268961266628139601345431324319550135932973772832276078701219406343606908826154176589202146001798887474075736790935092649915485078257855783265492697458816751529028247624612748140870205730431517853055418530809897943992975301310554683091945013126777312074227942197363129639262254757411538871183129757534759564728920964603902194901966178357106813085065773738501089550050904656575386813955313976629923330667534898686034457665702121880120950191614176220999577321912002107015520170303366112701102561534679993932912672735003748948769348378474039079335326595691515395150799134022706347944227006512379001817173060805194887443698068966903751993295628306741470766854753794168631528161092346190643987765546645904632501683110835302531288961273703660782380775912387862016226988975326489529069881548493260890892764573741232306219717199219252448570975126337815744109753914178363778841666122880907307256087470695010854136611979393251850252435358671094632069016525878162784856745568713672384922999927628338398284744054158001608567127182739583170159732951976970419080253554563791901959024627440715218002852541621348916752970218454887684219591331082778082212522734960327573200249379443797584592412296807847531967832655689686293246272381217610390820692514331435615570822351810781046221581056254674774624846324142575385189155396417887479301459248078528446521474987539180102686906017239443921207234253479609970568289654843810400504418742635331990486579909244568281839843983659888586180546986894771114158507702935007189070015505888589490847890778132961600647023019523150627726235750683375938031622049085471334336791231493449972487238111770895608445071401724722086913119808064445253378416755787338925381878548028460375151772370504129579101713756149332163052056419091286601673399662070129912643685854439180314125777179579432807904803609246379953488735023394802189630723463088134214663794478697712170819912946505351506400944059727880983553573401946177850297116188749278067896185905358748358665739690572210135475622895585782515255459269037268047048425893362847105676866179467008037185934664943340204906710543825403800087072266296322959122884317668104629415168078534119545112355224060800476455356391064890335859597311505967924376242542303957805309779937128094615443341086999016986405720982836581613649549205345853947043848600395377972944393621024450529227641894015379881015065003267751315271498951110030071447038260728011022765230362638489940799431985560740062545231559590557089052102255362034857340767211225399639668103456395305266934080829442803822465995420121911205272566259523629994155674811160927106248014523651521023162992365531455953538992317499740492140821605429049054772024321753747287838138147283804184029366895145245545605851127452578550179984944669497223527634885308913121308198252609890542524651541235931158240601271431452156035401623031851746426805518447440772180070906341643316989869621599164423770285716900827522340888278315924295224589740449551214249409440119315755611008222489182907634981232398344898257884895817859890937083237542783337254651634818252034076422115633365824101562175802954702851238794985687003765179330544526844160361431307209512553341079482850476342492197836670852343445245493895288910339214136136518271381585867590019768582918297046608135920905366385115166615352781214758789351640067692071201110312468057546158922741812335270105530050223793052532547400067301749935728248907763808624830409220508025424905396369180231478476090470161526087883851090449625848415684721461801904887156101217064789533341364951399703240509637157819774349077935939622991722209795080487125300913643501962437206171560971411781394751376603636341425778145147838577699148569192603330607507161921835786164723661000372826909138071433557801465482163989820653167149162745153596692729777638257683026700610764625300121511678921045039836021772134802568925160697792928136225159128083008689235108361967688967061252421373856469180686663707949622058596603998041065908512349759996988983366381921537503943584272991014062626755890446482221707493092262858127325684012313083869557660049359368097327018095892915496103826576376850391504202330835474781588480404035399853723268856121798647493697739872306036620172675145174908188023887340422516346197042633895634108184404209813219287141890050873155429928083579133245041378302647819484788652022253975609520626104708754443390414507787842700403353225968248841366201195787667199227652892817603596146579880913072460697488697550083949533943886647410732208865056101461173393897305541114424987737159115073245605824477553823287072333081747676618930270765060382246275198446592797187541353789014865585097097063947530752992398232605622973353507169464133746150937880689798140663817001248135227566424345811215790781552623219816920675797965088696877500254238175780482412987221391427622733319200076264153805927845504721725030643445437005752107703071148445002896772397255194484875200225381002466343430076168970179591766971273368342544981925007238614211269316961132932765139873363696029504978257460826462592177959143758771556042781289731957702797731273187129032195147453862009839458674698459978097376975469970432242071535561396552727575629799541819797793672219152531532581536817601044092370604115503384934562111112470681928379416725080018644799380531409672796217808811887805084519583815552991226410998121049832431920613501739389777636090467137428266738684947181425582769225345425769328133810264205643584663401592204242761850333268602109041573750863386351268390851165099786868941996575395746776971383744369346291807370606004938958800490583418880690978336214518278994297019995899679557428460493944737325795386203935354006003388042838328230974189914223060177349596238417062396082024201986445186864347580770454240879114214670170666834410466877316787989003576442454570360389269954054448549005927367831450326430993394050101838719466673846059388582910902297091365894336270256851787961564193269617836747639425002669926123445335035364470049444095974497428589992870320046181675790459355025139847171441008960215850721793228870606983597870664286604457798132551220194149289320659826400989442200146420168604097449851847333966347578478386682527398811427924335447919684453437354779909146741825391519730157062462483783924148398737372696468138156552677708077884469145171270787917176924404297629506971535388569568134012972017188218136503050236665846265100742695555411484437863276728007491306830396940781391602937177014863987051339276624795588112726556354551282340917934606029551682974471076054845796698667869511207811022655373973744887200193955828409085336673920886123930672339616596816350962003237626556506315663592384774791541765494004764184335918519697258501672928647016319234707886862841216612920110001263418930274924152427154887709826521276444222834388086477257716793473823933535825320934385042685526768464121991516422454183367127499419990771695455609033367483833082877483593314480618345061620756178291586498684773939806131873034849634968886431563649761168881695387166008733857574113978157835664928674034585501855408924454383882037004482662970618112488558476155093968860939932578360035565218938002193267663635842261341507490506220760115535986592179666600738824028091569095585160718419998537029554861302949488273593426294428943367750585766201173506608496993658881563160894474219605989494987572456559506891570449769442015332132448718141645635252571174994895020119581249761305926807059818777351379970919618614906313327321464451793316725081671006255373892403680826037514252246775854811113012547191200090063068925315303322280051813408444559328281458865122777548712733316839675709515433276740895563016824070609655612219846232210746057262753953494221047652555309050803548377051905276600079720939117807681418464264590914516810626793781575809422123269573381855292267763889385658996869893600266825581409603720066938826665721911143305630874938868406087619798864307471930203126269147344103054456545577169374046283564446936802129502703301047038326726760343008400575179078181799517438204268550136006023393983228719016070304535139374114354716872778249122250030076759538121718455403891224204252075895430071554483881453784712185753566692233734778606648537520911132859625996181027019304711341224299537208761468262669502004983492859998324388791635267349382465109966788416483719920707223930217300224455654945443015903214987522849191589299417931989396233766084223676358789174948358831824362528152554025502514902086750797794014676874118781903316561013145069782857306405036745688854521122350616648354289013069084116211226365923004691679403394204243322602773089726286022824394063746724195733289640523004626753065590785281397284527952221037409501159400451463864256167241695129065749620142290069673074920168786556272781205330217335275411964066092557811341416281332195793294650807926694938569666616756034203842169716339319936267682659676192230299189142960233827518056293663228345180092220735120373717777457916961582410824005662474374960434979593803988208513053676061600916297525699633033137193693236353090805443961585412867134508024914025746666328404601689977569969348796757575868738835264200645920801994827322845731837895833160380545606668447986295432976996839402782374805425893848256441687721239079340797107344466880230281244972261712995388689552189247688432906079733556936791813926461531052889540685870783604965691642485712716836471091758340503289469909244521242439284041737659555101822131845456551955185123786507916005593244689929861097284822139295970925093122546381125373788794885979278650596966526219775029715721099241397683342214811536124316062989455395317748914041427257733768610091380351864357815517766226396351689100709209866387035779430020637315547791490239010192445090622267151452120333850702136298976951352482895619094856574998300707191310301530625414240392578498110980951559888798574518416249624017103400644177815631847327050192470578787018126502165445031247000911130067779984212508816399301826729141641171488571247468921682158164437280546656137409735663311684363302791538680164749545620612639446116208866778224160432354590630025811434265047786024948983222062768135392529241659660159347053664787643461832198358043938019993892646244691874856116562411431949109064962256216911661959186509125021822137963991304031027974528989203548826137644253429176059636430510093710234719494870023974146055599740439494995165058495361287420156013811639810869608276012715610655742459517087037299293486331338036094644246277970655453174579519368503983029174672894386873112302401360701733014521868675086060319441985920152004877171647808544232165587453277729182724242631342226987685312434972708541291613608952587267929835107000690468998619479738795437569292623963581451643151323084928695393001472145226438197143119624151258346576756316298532416540770541381059344752670199912206473280421126110418036364066242822734299402667057904934173463677525935048514851882688308112738912840999917252074463514856323905839770924443582251981167015115459533097888361494084146400254965628567208792645192876657313343174951779431786287442827618550448574477355533042993839748544629521481159720411722737590146299095158247886597700781834094367817462696013414885658431348137464390967131854740212079161647347926824069042679611566382607970977038555931504334732477576570534155535179681387935585197068736203084963584862947956919303050682685268891772671298166084201621140980556528976596451792395876928278167389889108479771181936253825787502636768812331846103164769088692684976441405564098771628509129120943999215737940905525043972681808869917006854860843371348739959084939518717412341561756633891274368731064958798836126495862263816800730793477690718988418663171265720051228426941906981782300028290840353296904198505174171531808798794004996514166838219903461532109798264235328152010589167458608007573643852435337296590892620018406226785631017990011291864029305447765132634154281192201969664993479615067370436757335694021106737129161413890587032968752700652458024258701275290322266922011592128992639420952265472238257490793397909908888565134016081483608638822054790574069026763883683257486652955019912521003530799373470118402402372504339323902974331254219180297650681544956615657243798474343287435942590019021117039607274164601674381388210541102197809468233066846722632426707673989953610215477121299197136153662129351149769418499950183324817263747703691740449063783052380267669198398657294361616273470017103533435610738121243037492139746077393115722252831199930265259962564061504543561465857955875115458263436966915693585859454032209830977237773708645735514716179394934922594567731643243379816764781419407490451130786948369802325266228542743904867991475620135406862552746323414836324644005129462814484369264991120558179420878473911559540011279683197271664012452862748547287085437679831250402893637867548512952761106191895233174555614102428419805821137128796403341704685460926369670387211738849494066890907256792484563298798004138895340618857208557102044403488196542235717077357951253725589540923182505010992192475497924629072894114154669988369136940445199572376619689361532710363977782066250949924747632153006997146142002677682598518021023308133758306493932426642123368190262833363902022961164455149964871667644437612238308762836663296049408213207807411616090752363656157354644954783942958291361054818730967942479800097353437233340718853200806728430055617293499289002347810968782679312854197884217126889118277634528663416610992729763393268963801311133193337973947921881235583362906670556828594187721665516021103139659798407991541467829218569968427027411219941962229591111476811631339864389430548134612142216857223701568634054374914808118870272256222374747496666638049580619852946945313340785823470602725774475204551040090918659663520810637632538722872275646817093155858533833959769733458944403381032139661640782358738408256665512434277369385474790258877152020334985397316679557424389785556181563394678077585910939620282213739805814469119222654798673047785396255682058806646121559826874379001288705892252345793472342074903492061033809608735090487721125655074135845874516373778581348660831682151434055748501142458718436535188340486729627626077013896022730108665818299936439456763125062873807942613135383782218286452607391529025624752565227783859747030104317384139819305676047818047021643300752074192681864854504623092955920754387665556180377355517819410177266596320364533212700775095841417999654047975569637223130288324550630539721112110376707396400275960830477007361679609433844923275030930568698314305240915948437254469158029706413336992113821044328550582849682993446925786912405166807205006738167591743179946859560346184105691697730249633610342452803932673115295627198051011478048937828041408619464586844432012176685051681729632609937806279578905321583822785369196513209107841112264971501216584574280387358118563357741947221352872066738292066383582125183872718357767747327285439938484326453010698449599091472606732623201479783147999817784937462784255414830431738239826552748926641306801336203126754403653180426720917093305804523947372859806551129184768115772486066001414265663053205825489887175641969514920496086439188948689027006295041342674625334842295238758999028820406957194611309387194582665117922945192415862145661677741560506689025734094968583693501971827821214730290168223173688364331683708345327502263985659359847165799127072460924434906056701207535373156255856014150152325937885112342401402140682474312642482416416478319920516128588201592585013694314165551840610318833806670459851212958538854112623450205680176140869059626134555925417732710750986765941026770141808861735659894738048131799106089121150479690394119256359450760600840550309285587906160347459007119221790940353822972724326511986815963689014361106783624551523736239885779348642229105248819805671998749952368404571579737718198988154414780456428260402303852416104986298528984333062406162470984301471914414912384091893820895638614298684479554820079021927321377407226329268954214676215003995178233051172511991883141080637195504058455060706300001406694109071523039287829417940667363528142039583506400587799705195898801138327157085075891828471028223815919068565665871870794573574968014087078471010953046289442218686736486688130333477015954638500172030399851831704731312333595536973573971655982594900291760116576827983627476190629329807856115500810214038511760367227163893704974097375557825055727726515271757153220071561040065458541971862239330241800199663682738729258696639943073004272466565343215166344172258430882991854381148085982372190053009643059135521385011259840685034707759074526392772206408924113397218366689823638906630928111005610541359843016150108196525321095633675214490016867514617877892188940046257240301440316058768014483378562489551382055428668619385773344300363970099009285732452141807505334866404335959952388947181309020540268038025359401204552932624229763066257424235564765387635028959304646360730034644141126291579378274414209612339599394712970399543478797847082286208550302254971313565583066676980048526333823913506584077730307373369044737221883189975270112259839571929544361227591217555142524857573524661084963767431013302802819362910192035140601072184293227021990115897711515173656917574632138271014742338730251265971733358417441228395722347780151141594712869445133897898249671154720568980049535076093070932204874969908495430025475851865318969826665002788092906264223974377204286972720468844678944756576833329124854357139053253762049827064223075651418048604516979406485830032804109147136749962316102123689087142051990742881389939400635278598841752196706436620458947599160709637496964531176741980805411562656263526187064459067681751020828877553965623909998030094672171025558680147624100041232556226754330043829513672726449626434028049380170944665233512513769821786797227088856507954968801401797765319005201340426073146946544223896343700930025092759289938455886111460595061961818830264435113281163946807414302638795346730726585006172871421075861215887332151899592899824001068510825875680086061104493479336307872679760215915497698100784730731562683624310685367237185645288225438446027244048027752482800756575481435732089503372051490715068190663935870600642480230144017915458034311239094493947800959863358421485351985527972845407335464679771762993220635817921497324564569535673624750296301615453644183098826623954766731736301141843048421631928451276278106030850894912608412254895861304898032425611481328934613977325864296675982206204547982563289899876845896331895390079937202728619586612910485063175045637635879793724180231034635104413081989305820916884059677161449754005794250219189490285261098608852248677494282991700550933438204481958081803426442210939330951670932843884742761867695746836989668220942828538558870822763352274073427375582195636549530769469593964457663982085290236669487184775128336764898707264154610877278102928576121966488619444143293736392597551932287852649050840396969888119155392238446844444528048636731289629651984773159057223206728475691370415862013500920676632657750133133562622812708615748120389840965096454548495458617057611680444056226156448098658989223000278408224993456117359475610696606894685673496878849221484007685772461003903318983734280263543963502521593664555706229212064229588325858942375474304153462901953956576062306858226692824965827110946211499624201983769805199977451153274284391826511037559075725707947190205641237973555272211725216227147834600725292267504497569184098922212998663619581279781040082022692402503010724944036344972717722642450006024039839597448163799679773503352217372466647582874290845649558683370121657306549382075126842333561985867020066194760676103332932464223248678026667792796323848974804113541684077762431100418186321759318580759463463062514758104272655156849275043420931667102064864203656490508295186327997840350174947336879221739048365418177552140050980792567372309733773469802790684864122614918995478808871586831225982589847378451681847908443207327170662846074243712224304881925509935502449494890166473850477906056348417979446124632486109822170288559609783302465748715461988155349691636136361480186789985992706883154413759078890267494697380869856881864961060325568672380928000816520476837873263911331201480999619867734285973767464502978442796173137162907594819210907581660110353156374039998353059391966993892879411704831308998654779627381922329210236783527488054144594064252190704763458893685679363558068463081408979363960260066933409112386238422118418788321852810084661640190752683944844196428498688549397252875242585862846371514068677130222147760510830714806147659275944819994213091476412255390575494787947673465745765995651977008891199199181575899735637288081000421727834375133162902544112021271236408446310181613228597177587024398063627203699604018186211757867954732320259814598483951525628515464750439009899705202993667549286824374462871554554677553122862906277766491998511834075338203791528651457314274665247556353754596069147102326742887867338606995826499450750019099186184248624595624487935238857972704457763448075360211276575490524558772927874538818047776339458878472751163929834413140572798937405923668751694634999456911643062735032035943850884873317974224845908021369606564943285217699416386095390456815676987050992142333748906818335139052005380137033069103472738498076568843809078613743097930516135953866087020804269712779709706504904254183487491020605968352303293202649554415071034933128593194264833055634269469913450175460866224558630859325951857912005036009289498489572164745439483850634068279207784479135486560717617284968693853137301282636532948462217793781811115405191890267978115675647739815743801920069210788156325393806451392326621094531274977911585425990581796224132886054391416174691044980140255843708109998660965230874557659360422015528607782783150629003377943200521241882359479804696226413419353970591913298204793987472138535488873619051396960165411520065352735157709978672542887688740770943383643523644307650647273276024303786190789559263867419027566800286680835836828069811631457967224269232252449805037077033720104315686176242520680083958854528540973979382341892811016049391951412066057273552975458526278233826491722445449884207830732072559554194236919882378942639620238764779180393907146812380409006764810484960642065189995738236824180847638789805474521738504403360527570367993837817097895033301316769979858491743477709098244866965315843987408964186968136376519508072571468522119427442601338974372169263498660951641167412132388086441014365878254070938910205261296771956210147086890615220613804337036989510578398442569160646622555038867149341911046880862057869319843520205254684484325151249597864971852164456279557940451855410487831968828475316920538964140175153064846136324791373655388305948629223967641411831330398770817032086173614312640780800726253218445466464546253662234950395135134726775778318466838425444852294214799612181298752240438538598493328023644835173447947037306322110936111274778240961265638297088529785003381243117498934453142504310295756205073329526575599756072839950242986971846660642712528377731922779021061601302088497835077168430390409105806627120874648766503036391370941091600337614030008087135280294683323594691795632439415311626293616734726198506976751327809323262963864839789567833862853497743943060278638352156689219249162921989358952151362314215878080994411725892992730074968426601856944523659347073011181105194839212697759524162597895325219282039436625627366474896975681836654353235881047245910054212176521021280875019033513351671724493417695329141750250622187775381970662993952716709020559513156055105648860919984654100495593000476657046938070821811718094628387003169691700710583198633286009194080654214681570146604118674228279910138912876207031454112610505222371293312453503492677611670110417743413042192341047092180361436442538097211860591566359629848818779029678385006135086696373951747410283641010339619351708008081360774114693478853994712211129192204768394328558457517248678276191130174526986323114687271400255106380468870166591093954967564715364622416127521875820686017603435224827274633996847822421247095025270574714923148214158395572572239027101128999877198110586378419655118641469220323209851155886852396550995788697075837592710291107110685125257657257648986054716542398975400651509156686195929053574482621581945208958061833120074732507653381146409426600482886459717865581587597357592141032977785272319050320130957138729174644980504191184901757619898702778586685614269453322867217221691802151556959695967485049476625066684027632125700451970121714394638605058087986102123336390194386704122040069106880330574500956087099903716415562785676895422766053170294706017347927209910819377588067441829703135548283713683457200894159690472893134613990920842849799477721087146542414680544777160769324335424768648056570026894809787239016375063204514112797679985560995946691246177123701226598101715851067978766429329139103713762226918035848542619275686884482814560943120270137001642787172415767668072756127286097426526409104029323203123470972652541212928602872513716023057772579702608730876457285932729923002759851552422476952251916046804735486342350596662255018599899021209407870305189199965925626241578053365189338479417564111187960106876653720964985561992637796891846694493570776360348217020386404891911788118241138457291438803610591378873855565098308655600322072762064957822931092253419674689531006316445749776618192914334546373354409437038714564761935546687448186765677366439364507047031533047545323701263778606014850900398129303039347697318982428643367433637849222004815279621539189304697948348886489685545325495241815291240197240008478395306163333386549086437763611732246484304481048078319258509511694612320417603401351345207740958090481380968676936603781292853005084715602203058168283294412697149134270466295685371958861299442039700362066791807672141238450004131248240905764817048791595651810984544959054612946102697737399100050922688768820493251324144933426846059606605651599680970888546625651123094826852821623879416041042041966205536797149041659862139293801690191910826479469815915404133972386855028505743742063763391944353936727984819919851858001759336486770206667339432317451432994111258089913205706090903688955886797417755543992998222424057183160856462689400478168366527111514180140558919737957025415724816955402892235598828201938562287425135945926476142066963496827802214453311537068132369236757185451729071335368861078945183382363082572064867100458123331336671181743526372877153440196313344824385938002248854614554276995401460279956658144650632157170213203579271229387545765774800961880951979368148754282163649336542340325281180495373074857995092571479196194208327683177128877961858736695508398221726254837591644527212013093251780815840837564635007652710539103828999749045059099391074486568086238391882096009972166283931205784947013274955181576215535401713989852160260641437207101953231791105231520027846125380765714084823332422696142434908088497514996139171354709522744790974510752680295764083205244809494232168651935326422756452747966663598071756285571389820090374538187355413977148979939244805807278763096773201501740667111387679363680368664846139761325676418765345650826024999038911817510561787322934432574401375059168271894248665334606879839681838752500742427741330602589438895754246234190818854604502245130581294778671047298392423897362346445163539221203230220611017232924417318538749563603377520506069790799189701257551169679382074051949650275948832081612717025335175739502456646777333773307711419513538082197686812598237873669968722222230628200752743157547197792720648481000374531930485850991983994781421102887873302825730829715160609970712916010251496237669682167472424240957199909340315724755517123378907101741091081211267096796766323220610254474510388789498601585780235242773139299555571613448925024454250554865231525293044708227220455135801338974640241833880222598824802407395098598246557814032830207263896023178307510123104741008698816376973575146348045264901195613978194387066305389211493507920323531122905111452494416799047727647665514179824273648565416801600702061370958481015867193798081928931136493495793457253393565868667927223385472122840089650100950661722166661594430655280655563399688520396675901647175580149330286995360825789527929121439398217499930341910793326131140506013554813792318866885219522026692726241625948923918038214309781583019586498045058375881226720233501710612548465219049394951690444946653821326094352204279372864095402211537535452409165955901507472920069686554990872785621041445143909941659390412039697624366523455534836763053397690954762906098686039129323049032713098494491992927800641472412829179008532041281466354929489788856075307622463216377282721926328593661486963059737244622031807806046637225160205170287979509748305374949193838393247566673322153507910488039174460832375582132210376361436148015457511651294602888779893098567502829944434514497753707743808902865990815098840314261659716165711954938738229026316045247099998241960543749002868968973080106134701933850534634610892343272661793339490877828869902427087235220607748263730091279735941431967005568166378888486926118638719357107858490287372813428388650168759835662397565089830039230920018374912625090145412946553824478331657187756446447109750586343230178241825825738831975179850570448626355639061628465439683775031193602189112331832004692574593942196250540556041188869482832695505577428766837062107866451440669926597271005482647890118454697182670426961671052448515350637356594685683273865028484099429069365022842553576861465176939816734937644272117746593687861780964293978691959570235667869783522117077511870050548566157290105965660288956494894698520244630029213712332213968244793842856298127660980531971365578249431736232468026381075262434110632538343987715019793895651925246399588956297935874479580496254508216794027966217762658456433036324210022537621523570008365639266435460509700482986995707116909558215198617235824611521687874877670595553546627083299314038041570824847146779848954057835863186895305966137020772972516882066262709362150408238901224003444735208836759586694081618289417456702263319151825995016570006620141367958798978181364736671264957653520428382433554905023418345151548860285747959860953158251532084551586941664108771848557666001497026516220861501749701194142586010228927055336474766610271334580565628092886476028266977121423205405147638470535992666502098227926455909114959157757889494352315759847729275362304397549114046222313517779604664079496383751981734219490742078561090263043364856771921681076587228838282343720884780366875464210548742561397807509856465288536352538687621106300508230532114082923685215071245129184247865674184707050488522984724021528629581456893908259021763697409482675114133347418665864981176671916800664579082964047356995079989215043948741701220983161137477303984525131574922390165998986823056731154147776398810562942578132324819034473962581930165099170400738403759935862675991114961909863748018558695352972459752978863460583427192594880030372076631177188771126788548280434187841524752427367333923519353487204772670312561961802237964096938414916173968158969498486543888870671569977522720330557693044220476826424013416689851203512648090999965712338725826208221621586938995563634189506873284696529417875475702063928323635699927099418539214064059914559284401576876529181830788176978721877547863956520009739652265605176913345306948787654444045063562549018808174576464555452443725683491785898722420298500917919143485284037295374853493367938327364973953592225231823791305425497113123111286371211986985125079175602900387695296500891775755840821348574976663245841599042124686696948959863414002657972728307333103396800180406198992661798781900372719937537047942661094775257671657855812638963564887661040612033249038295858863204909979954201296139596848175154566752921087159381556266156670376955343253314121341025562064578088890264412068661128343318182034436517453243753678986034380511746417968935031166036835505831474609852929872139055336954740961659681887715559904341729412912325633263251358924195222468020473451411228021283825985879771005365412808591868019356050197648507608434903013069555076511555410184916722031401162254667120281682571557473720411681994414027416990917603758319936158230533070769249130667960101313256027367625278983027761993605562049556864028224170985020781888687137520284488219355726240719468614714528223183301567083605034772145423498735966525223666425779499016520773713958306330029790742938229653618953679918209555162322159855655676573322819233245119473915459166428032015522220035875625597435158160037574875658609397575011962585871985816906967552756360930537647809303727210596039886931745960810859960704904860938690425979444417910156751195076560721392151424340981050201782052853411813308152539402076127610492991193978297449719864979656892482921564183748913171585639177102756778183332104263751323486112753434819764458496748632276060412923222126876522757533537488935264752075971094441924290018060319867062056965879125094929078348424999510002042796892665305625999992211394259876000678907299012076801350002285978099177633422610319557334839784064772781911874820064947069433480847147678473536538791208599361710327051234834777067524085463525627587572006413181006296550976817422153569525076327289814339085362620202804402593170136251062500674714316535460026568545504907744147747069996446390737452026242072905001909442141053974658667694970589405729018271990788313033191077819130598593823132281022734451609474378018728434372000695948984066010741637154994297860148788585667550026532121452698187117140555838328972988396825405182775269193376102762882728328762339112354316776819145009078304027228492257414548469943356528639349157381494984937761570772167341957313301576977763420414865379499202584018512886849902381742055542862298820177682527315819483406090327799533650170866356103956776968764419288508391875709052880020485359066341818018372937309414531123802006471132956999851474336394000081612335458902953317569026918740294482259504432442333139828620570274660517366150221805937862195287577296628492983545133277192297363799880573399199663295165124184187463107053909152151494624256785424726721254966105947410741505127400120502730742241490018399616331909556267428917863583852736710584397191192185783476225156128157204900733972776841491812067677771256676444527716737159993663003894397535388542512570802316969270602165958585025806279685349856721181663020441718548279638583924417443033785261706622239954781357957886944480712117465772363581704715692001867671424337686508825266297345694935630673686977776349308132158357412207678797890705316476672906591704125093275811547995939358773381952075959992782814990405114476545539259607104675154670929215299213668132554415846613361749912580561456770203720574713225992439316758586829564625940026279612018345649861385415330677792368695032078725278707212120695212802968969968391816475838339120697906077180839518627743395492314704840388278884309731544598499383946290450158108657402444183823743786959510797092223901417413947230120678156454352131715519899455401077136025814735786710090903296934523967852074476620390727775102397545964025296041917491479247247311202029568728277116190502801503387792809205883594096875255652069569134558892207010306034639697443776235088088561613959492321111214720971161341660641985578937247924838896504708342641517432215164200327088425826114478029426039469563243656891341046171417489058100526235083417801953807858583742891983787213256255460301771430860245121545975560062686482191028679767873318727437903377955012294914131523987458499008948027401810505438137539979336855203329405235822422425145090985480933213031581395084556876818155586172727459371886653828005800221891645007982240073208596101530131035313939841414074323615444404223454738949371230132457901088876475000121781083588815254865524623180942495855885002429900219056014847558971017862835862775024050756825117345404912917744785269163814661394650007203915194170714847036444142045826749828841026708815269301629184489532322574196653308093010596036569201215485297636910858034884378613079721462025442969282745249854159511645405431818528094589530799455100111271693733341079532334242541394913037095842326254200358265675584059235299161962185716629833151372624950971287460446959061144017763867856818317563272939435683554326891244313416314496584211192514198700642417676597983942474518983966395925278353241661849549693312753120188210327818476961252896111348866399660464081577668068685366319866042848891053684894427272666258672135706318644434870971581380743979481815930788952359269065977943810640261986759265737538326421661522016721617521839685718565814680976330378703155076839297892406527248146622175471226953287772542257535807415601424844096548641143149439800111715978528987715401878862489888995929971747082077148419358337002620847625269388677487686448476232682459032477121337655024581221317563365832975387189635525310434616701598195504102408801663932061442261704855425830243017871844349072210543363371272237135755792422506075606914114114037332369324877813896885941347526026573677868977530238358128189714649825819062392052204056756384728339197928149694679606414465618543668199257744561423278257493002943629724332383244249734037523665260426030397976673284633434712379456470752441837639043015359182762949094621610223312351388919006964654714661339627017659996794166503529207716149627841630954348513736099571679587282241654504114084241867555541193568269870492852469650949398508324125101278468712845875855721701575036349044188728168885024792747246319348813685440273536266989687951108505863072556112753041721930515789472213440884772547342096404361542601909642546719808371227542117945683185429420459424286868279122769421945091039643843357388268053925995708591411388881102515172907271799829082049187932412219788378712686133133779164913147954795627548030506891833850227545418266273869307219377171272251020015791947236868650502100244180710506248968386644578414005747883709053948893238768997187620104991905784790405895434972225446251360404502656024956519058490708192733682985706168373787696862827435589153575452620084563368174683583773123955401737818431272697258901100733021754306661673199742569810177511541187344045934637269763277471385713845824021696886195494634057258901322341543268132121273292613037270193381206947070399121361734220481697645968171742490273399580926733380417791730503873525492062732456649475661039063825142501081241461080033656976743047591410973968273380559593186026754229797716623706108900909097049768026119293894854164358590396973087858245979711050486556974657422501541765458403066368773532562590256623662407353155663461690750234680267581247984837036510771152960632659333341889419712142053660885447739280462068063167951985900347215104974525606196282027403202615267435095215690737095979067325703946933998780329505278806051331876469324714620657072552104397602649574633947497504497154864602675560092273297841934629041534344321699088575788904927633572966925256079276776740740265083882845780560586488014276579140314551234909951690206412875448940305024582588701874322028983731231654794715974610040968636328301658228530034245884769243349228705152492270208998070185159105835498291289948142652681268789985119990462597306505268475331108016617181172122238087902060365985900623096586913614272993924151721960299116979637211430868801004230455422366843044465032530622634656597994986253548685468027286541593000222377073119785379486254422470235469954246534722585097255569475821402263907866063177885859936579853046849218348499630273523413008134238814404261519302385223698888514949449164904485555251849043784772539109120519358036520233354236246476875268710394667637471446173166860588247197690643049226791463093790903232297360744213492027379672078856767692655276069292239192890587885103945945263616165278697103475473989429866156768125120810965886007248428214316037687202387255732874739374012824157003866863464063678978968822568403768445365659919002217951744035497890341875765119252935665850241433484506053218977437559248463608588614301946281188085987288378984838836381588977171925906148082365067682457061602631126867048670960571650422128928399353954148262969288720514764552315139776703846880254455109159037475129144078412235383351263073221593029846840368527643180106263320034321390019654664861015092984928995843314182362646032861803505599762276068606675422594031470790379822398798508107469005961888513100888073683676503259951349705503550465288144612964702687801247380606002542820480383983108356210048347563988113869990377324463891012059851311172713266334276310638938077639396999426983501576403929570937780106673610414920322217018795638001317648514788956020758001345753176962199659682618806657594223327932310556464219509845676884747289085844631837502924076731742876469281433946751569120525381886506608182978697096403049320078243190986648956662606492964578215478337549893839788069669729881003224414232829812824424940622087327911397483525781909369489958945695337815630096694995343104242779082308229133671890096842492339285804307784008259402771380077438162521771686277763606994330470029535836304445450971928188468438945559352626322347974444794809196158221338449300283048182177349679083207658882659571437857461163352288405345637924702826448382429919784405476512549016618422700523944912485694463116742308838748914740811477820814571337863168298765716407924661881139909035523698120639039970759325207842690678583081041788683148512254115161405142447220588017567571289606549761173807518695505062813355725991323717576308770639246260101992347073042490489067734675150980763128320745253737802045894019958478528541819851409300189474738351881672314418475309400478825828373624535743567817672453830733598088025330228350372342087940488732136776158546927650416091508875655444994999450586731547289043023895159356658299674171126368563928886831096855854827463832813628182034106272380223091724508043838953406341855338507711835515312545835465048884402576223554580859855949077813699137530056743911137185766403721852885396861660023809855529971978251346078011346174070018459096136673218834358504287531131051301047646354787982759759369447049917845542238963334273082872949149349223886241194735815793687004065880212868027699629263250496804020538090364668078558047604733972939421369305157883169093363011594088206974584562537265713044481352239819565953687239343999054255528323698069122747087872774633935515471624609358961488694201429139648971005472841904941241002943592678173339302479427153084972534966774639236487202409188310228503777069319931137418191924012138124794620258296285534017893946349357464055392583579348907431449919026345261787268489669425631309787440518689185097106105670575214763615018810641884189265826988690242199637331648067767020379514606510839060158707784493263921666481699287799992972562324552530102561889497720673163322558243220372501538003570651115588277155830421265639679231246452239026499616517706372995368710271844676172016012548883302261341657761157020170115751090126335586714141450639637331898471150970690837516965740387914827337929550206049929133496107179638779510840196079530981027990228002539198235024951108075989075096737635844717328585496580383945839370170599398167100199302325985313852314830827715157770930589556071215846716851287371319675469247825272216589970287831354569852813467462442266280645064284304396472971497153085192751231553433465620184577496828974138714317843756880135603007768007739157435010956077989175754569429619931166031180610900219257097088322981557002498654468429660961582627035751175906455608237227580726622279652434210397236909815898201214544480192980676424296814721148599965094888359340821776304918743147633838336790709329394846533016057136787267665966515073106094223633366065023742581569347834595929482977097961218771365393436143627906978267707727342311826971745084293793700254964433039527677348717534275596560028435283567196793427361068033465103956653159477237869932390263373153763812883533787106664304898533458089343806611152300284209278682156116330991504721575967271610962179347337093441931811866823277665520405740030023676312229920397560973253293078707264213110564474517812440793003683337496439742683062728399270670607321217526375714471068575597898856430313959827964817576015664099360753320989121481022977262233234094185769906796800217204116778512160866366200890465059947192728081069324727794238346985599753123817921220585284452438465611145781476731042378608339962796105882020328903221328529088102726175785120276246385880883759838643496076579621130932896566858634296169324154225965803619014268093835727514696109168572133364411420026535414999337193316906854559680472656301128513167682470788208091067243322156732444362949843157894518795182799018170427992813448029388580626577872272923530424963758759470868492606668979444132578125376361341157575968959513776497686208847935148721737864761851482147598172135154043067529804634485806119607434410691877323667983618556795978113048929397933923862705496910579714228395170658589517045783017340298626112614693404955654442207578871729583421878389108390922689310126339191195486882798462284234724758195269212837575772434062281431172455206876631431186651781557888126641684557004567972609327744097146314352986452205814080518646488978124668282580276648930779488433800645779657852563584285757940015854752765903585861692103032871501336750223411536464761718171163559669264395712315550774624490805890972883003972558079163269212209964665560135925494377717598480806821556769292623435172325094373178344517976476131190669676629380185104514513819808462356334771797479000875707884168801443135464371969332052543125038091852199074760448071150724943609689872469884406634397121525311553365818155357143817627915926933693961243275408450155231926535308293749863615413973732066707930058185308935755897702433590186518839464889296820138277246441043835861453090985028665226767775958433174971967058209516565121504078778070028945265888063271939386998333527919129893751421997728416065345368955908545352303419719633326160165145034637043787842608126361442671487507257466407327970774655500662566901585777287161561402723434863314039856559053099567086007731950814214498655012329902156489831625206843866835784282647060787988759059721976946213186874033418618794799174402860941814041853759584675951379048172001953603715480180426902214154353703410792353227197209865924120148663456626605109693741643407890029127300928808848607829503466771822218305172425227339435106880806339989832963213626764793583479091568720745560764136818024363883699201230225027571528762858900768192406836777409059815151764748799569158765363765727032654065558766092084113584679081899260675536057604780769903069971465954074393003922059350163166468996194626510449611345651047519492958282801871699195016285293642226968739022897263790107598693806216136449646106439988221845322431172405728299326605019709295268043849821452329237632089466969086791800473690008357125190388517592174598647401932679346002078406015820925673836169784366493625199052174273157683223104770490450540321630205288583465610726904191473737044833887388788330833695705584094604577833156493295049334223163428721364015772031440450846887499757757027238590362731278355643452580932026611668967460166779614912836975576432248488859965514570064104263845915400458914342883284795997017358622797106034837418329083071908898311115682826154071582425989905790553638551137068480712143645499974296466032833598440761625900065362360431619803508925741602836915698067115375370679143578605500625547675661476602486585868996785891855581492008975732099947464489544732489278771325964717322766099180648358869704879972409638895440720747208831923295958110037635723199237293793118731523927172718162305977942007811229864588432522186402988632545068264176923837384311109209015701162373579895339987642772445245604563795052647535928191859726631704945334421611899465433476137989014394508626097016611495446692410257058416461221644103836502997038528844322791374370651208880407695720944400152547074081792649491254402209035893054353254320311783229226761021055724933256361583355230568569646259813129134058139831311740843596818340788398300744513403906654653466532847724392182184593740811382216222622625100188977285771971077890996161938529164036281394113287334704015446783042491900268628289023534714961054051760989005463929338080776633086116766882313572337339190522492996615478650505302331185723434880221050807049705951141073375539266386945631530334276867660216914378389852026627785616384612875028291084051503620555711427576617361722889907263317941215264561105545654910724173356772999703680978777293680423039168531747391701123121188343749654080729721991698412912549591152456499764282446673665325439707486636341433851267481662799652685908332591844699248146929283306537161072265557690983714026549698114072930819799702571022575319460691343981444420105452888905248518372837528257286542779798175098650985668201128309250509739351444458410809579106212990672322800906541718926484978580030806724062293783451196543649720255542381625148601465881851512358807248023470711175154951566017698494142975100068533515643384279905395822049687531799674978056670328599231107035828521222020451346934841018698727131329153776508302775104535055464198902573764872574244144856651392938617277037787145020425527682743386354697738043678003079177186100101876329354000376682397944260398166109918782775666754749207112323775959428190158382908913009499758728101084416159375346171968047896082788559419163711285687309268777122697537172641035306961375892549442314316784571155895353217464253570839852339528921744684328440799616340415533160429173598120815442543636148427457904466280867515472583097142395069207491085898854550085510880473570860195201481011670743212177002521572842125281511325555186658557248506861009589577015768380938406524281205306034097079407403420260195226191669033415801548422696321392691103417040217344122513981403046125574024183884824432829444245063790295408104722931892062599262302363073586074225539164641506924343466696048972558302036199809639840807000587113967131531656477497939944432214761000506629319616671480462433747850782849341197777721298915153003640375207759996761704425066217382613172139107794296167860417186055107528130592009504442937727094324537644019878631672942209353438787501685928054518095568249368103069679683261881972433783180344675162541926398694991465909443971134370061177208163675721177908750178866690565545492907501951542780429395216706989846709030232767721750471359180720413774964414198664394762554554199629507144445169193011964789948791917622078122015686465155214719060636410665157140283397413691173979866070589333656579798504636044192061552670332261389565395191392252792418045710082651536357061388026405003537602244858317681861472153862860544275755214028874134757898375100215900700212403756726874031240955697818756318104274881702317416527162667227906085422132706381161915317213498570948783380406334252938898759473961699703664602543002450281038561241637470380781107716531343657236783694950685719918438877518414513293800558041492087814185219421459182436469018966742073098228265402870517110317685619765029146440984471576880077712943845197091204778464662406564687215408475365980647753283354017303833418859577402051965854724884502599755586810108996516905657541808020722844612548733677770782434758434368758709062847866513802251466235787936859882856643880998121979007202689521994181375538578706535079181957661792627788856351348819184387035740918729270615799969655474384434262552100792040465902443911305190408225304997510588490956881231288829121991944673124053299153028142618061373565825376292602255306479042989356562746774193508168103305462797941207356932601923050344044013936568610250189149940100977342413416266490678232588948603262922139152909124320054181210405895208898280849632285411711707051547097484458203262726415143710045442720057849511363352838836960166023740463477635382596195757378894956469302600211326235326509367471155911010572496005850293098253416099778916730827375678767680299103432038101904571111519237139371984580121480824128377777386496556297615635171054725245708343869077902190106352969619198758764040260864290708543786516866673208920199135538983006974905475919381642254442704402421087390445967309121382946454302192101128265965423923375601940368582726435857402072150437970417955263312866629134005365241211824384160478622837429347135147926875956841267131234250210250485606584048713933113809827960352963214026596678087786490778665494931401770054789894654376585450560490494346110424510501700590902166204225268413905305281614084461615025359631820640039880346425926004957384354992581063513303542944106113085869598820318784561146435024895082976600444531429050947546305388413858341048966971415503522088232180407084495058888024181701229520166115695463856167788722191466918040061555557047160717762105822199808271650177229545414573098105179647274592543180132703017953150070150681187519461240152524301524506283710705056645496553972366685126425693360964979818476129397905243085168515658677621451293244982720642608579415819075293150362336049104360720595417030760103482656979343206609992405018319692758727681722272786429834993478052022297513741811336721301726375602424699639076023934663460878675303506582149215811847267918497347266327867986710684418092952762775009326755483504544819064347113454565091209684097620829294630350509073123591405324466857576192769334776162059050546171645929105134171299294481099705337027041952294760508229197280188067075478906794570331914572638429490286228145856204447256145983842505279742864163536537625416494800874663899021186184677442748200080244833760766861270978762759838618030143931450696574081461939247166459052700530519727578511848733710739311992393573263300997218555917513965736611774888081464826638483397557845984434801789016346607838444801791270454348026342778922150958748089538108922707900329385372317487955777657093968232803739981638535551578465847436689113846476266856155876887512580922371171925442120764109011031640323533632807687252477444329998569449128774975366417329829473810273051624581846842439314162747604112847632081454180626892177227848362920092443437976701628105207062396190290746053020053213941236375633257441520070511239959379423167110822187499041055588590469966102631546952055308681773557156460843123497082220489976005370533819902685165077368898597898020783667719516941932055534276577265931852957733578837198478274881110502171652616949118678516934862627259483334955310021883931508340424222955982344590964554553924742685501574305438096893654789503947989308888062772550581352362974076875075011591123339562236129602996984222011893512916976768912777584037719269320191834730637906485168121863991396214222615964613456418864445416788468936912286163074692186519633004731901838430203054667908036542130202090612414348178368011303575982973088110013659022898491755241530126991051501288129232830957430041675057172304962211910194816243060573041503028629036703321559607081630896523022811700506580245613636161242892854050935006846283051521530805102493898203490475898070281015609956847021923722329720067341777090641926994016584161112383509701875616752760392918994261516856566915149325608405609062098960441463678299337199410649782763949505360036559485436141760667007520226954134664506822146620989077692358428442969161569087022663040886114799784492960162609971247648920928592194430045645811765526649791844316371474918994743166663644277872098037480605029199361572775961690544240794067211835947674792273813768315007750931770961852372919657375289553642966070729508701467218743318183025560204416398084036092510172306198015582242542640061635431048050635777484423360119206394874416274928393552523127483310933270418182507331274877583457847733252372661503609578681230863290552123845137539591239425325879832709012931452945018331111169823864796685681809637136771059850426265173920789749889621488909865396560448750837366016069751353243663699160141523625775575696277569689224391304618506313111529213840786260319601440972798026713499024236551968410663035606249383426417857178664405641590597104858802808453109970011100685694392903470575241978491978355223404662188859419211072525372810782482157003610594829962089571379746682648246694295179916908188481080146460211015046169121042831863537523713941493352482552296083503869810097131306210980592998656741229701443433025088711051501034342915662505724484965710586923592978328297997655156282534546054632377229001624237420401540344488462820297139935963140384991857805904748629637009389213748485936977715957526832825931675129382564775813709089522691634459729021478829503471215642070142499631707005203120169932375686234272855062043363362802234328082188945108792484584921838418746814770920210295681445457980586188796366834367307479820402193858935853838988357973822393441344105776514765578511543695507730124936962704168276390576157097500989980005005252275881288044515117699173481677005760665177536851167485418257074652443665334862445125044349191021763843305049050750540340940208318545586171779376023027561874696614685275842525640992668620701277473318314109382847168876302540818417195250188433573880820585297672487976366211468476848639887944515051542325704979358173841338767284175022466441545313037377212310444594844602585648216708014552000668237127757978478020058437072796837856061527625720960260624705691893744621898610669745546762175274866858772400125427760839257174147794181087063096430390110464182771248821537951998157433266071962611019094340138214498081902076751396835308690062192469924924903062334762143435678270896035949574034608079685571363878122386560586541165211336185013648817014049960780687319489092287873945224983510210774998392992562081673934125604708763929442372805639124995546007046348737037779331661232761853579143272997359441322223531020739517582050129262327450659370706533589833378240596214952298207486828151529928181923884448211212358115554054961198611333682300942656758425067080465016701475899316981377861008019742090988112274068002593633488355352047194271055601168465887749977216379539229928942991844325421212941210380143079091370222675860579073270661093992009966587056082914149384787733980095696520232010941624949367518520400693540099387477726417826431848648521966406927603061555505819888028286653278724433936960132615570440738668520825912194878504462097572704339524769563398027175828572561409473741886432020824654867589762411804657451775821366751656647006193885849253286666832475449807535716667384471996071441384914824374351530384909033672756395925344854940636674693068015156020182903042445690974067419286956557277539592510379880933275709039838394572004306913443732255841429411541317734366750106043654399284964987180657961907845237279550492051380796007444152409557805486467835766919200846248676608891669377020120026106377304816805271268596565663577574452325341256319859379994787473840574848931474256103892096620921870827373437648258039313429075595373453274032835760348315190499950070258060640333233809113245118055628526014318939650845273252809291307073275400840114920693117191007581365734488595848298052805310137095373725645160408600565057550919787091031479050640948907249944268042360087241307507702757940661409378621030808263272354930275155895991807639736683118658486828415313013065379794353976166327451966977018604492182616188756394813147289712994115842847628667461957022342753892054485211509729097040129171273158522945300926654424181345278898214841407649395396639279516919979644747795960008130626618793191470582356272744923048057113751777334419389834791104066029664136313002890965471440109257303791399759733398690385283061992326362126668070148530977872798253548755175921373424686750514367164387640442527127867170042253890234850423097854293602593106099457458937111329091404588921928626402351991741911293097940581317561481436822885242512433934063951329128511403078795562362823649779268123564823017929708318557033494255516089497991890919756548701738033692506442271610405739123403548122699076596703701837758240604320846685444141897535912503740025049529707741349165482013501882775084832142435185377706832861723462058834247710014243077733679173869486165728213109403565758797386438199910901870855402753573112895259707990905677012406612729019567361324995172115515770217001067826458300185863555594292540820033434399700958637238812015892131919719766290863390412064297068553895814517594076389746460559140644837526708095287674939994457152529249487581723392261112126955127027537163586462234504546949085185459995149247072860466149129371815013969877772939337576305992331473122023161275060405328257075787106098697192385772203579969743517452872627383874889591077883555452441274468309012854998311551916628252825081201853022539988173639841835793051510275605349257761462663362827112609315459038638128016611605977665734793497722016095533449631166356422907549818242430554445414803718116941447963019327543593485971117032063079565316115801038487653295729592345575931761670721047602473082691142312776416270607764133200124634286283727505684890274500983543548757149698648445202593917563094042121774010208764522310062065122264711179104414570669610441418114608605185564488378430490424107398156845276542191721827066217410783006137903755698764471060400843462093999810450419823235186758278691056123687827590901887313919527834038503904010687661137256423596425655557778303486828652118286677377041732779950604866644871702319073893668610345066844732887967178026087896586453667454127673144551966793915199729858229147765577126498160006257522363883454568940118817680688524851537757224733960080877954176843149426598969353544116729953139517737538823956259249566916069418815739306260728844513145866289832532395799428523220646609729914246236158759658263402440493461115566298201547064344087994972542278021355681459291438892872857500307334416858952852975051474287101754658961838191018192090040629499675165054221161382736742619296203413741583643552368900192075694534965894104782820794227008459012943346517330997590738339484821093876542614471037368466662418423831260291356874552370694365734872217655926521239681250899111275681454311315717887415658404152176946578481507621965403627065003795335618454706901812943692994080468221880022198482030301950935150535277915220889394330436082736746699429526501532528763311283065700551411303267215631294978913157989191158090712009808918174201184309143159562040825819319398569496897639130491867457493707732942986026402186347089519439751052385490342074379451859783183369572356170660743471561147031763471227904217064807517621614012612770349462575224729842553563517690435320529847707785752656577295537220979845147878101045166153445198453570907688607423700678488821320379580327680949285316931626157655157160239193427202431040960055910797920279133295699227301710040928252594630100186541154360281251887824819883060247359775259538706259244861315572766307601803199313216780193561719074828840812500404603541815305881734079651599122705463162886927890819009329645247303492591933595631909546626945433057006054868020321538407488529533858026420884292798917355374055307010327491662307452385163823306028669878469381354999730999906435038715447158647950802902807704657612899957853406401731644470320534182623512536960812129578047000552006071002330947529449942671005678662088993109144478929696857086116376244793319976280195047640990140835611551823479276439121793928695054215512580245170108211857970401592976981467229222597261396721667178880686038549985741466645563195607722920099635931984165120099487688762515236008158997185705099321155548066727115595801522599226476758214855574778525758988545708700371887251447832201813478600414806181604508435486941975484758983580259837435802523017868210772048001824025122453558350277709220642004396620250607214493130871775742616190575424141728676946011009467259970228499766916714002085618058707593551136516147869110153986048941185706395187845070441301240952836161582124829283374189779485672320849730027654599387180868625662964828103488558290229264023930854742559610736069593376093918649791512498647550883815171594535048707474469154049293096610368607807102577933816800361641518775793594027100866112860724366237437133123931852790592428701176014633314082375806338881551138608524096453961412892610886910926555938962618108878536840692445228329916657026683833884584251676516343758976606324985142961082395962501346711162709135313375293457276240939469276163647681761304702739682737663674336692146642048197728574683741128709030087427404432407976940184169329288228509137114562820907059443478102174373040667887839816109237967214956908576324879249071040466258818660237032938104061270162157946112543467224975161096310637480410118264912782114482748270435114863233712365071937930354127232207112305969832291081038302798898547198928213681925858858767189576050815626994068776479902152723007589241304201074586133053153719547722724963396880511659708228687496659337751975126850872018247396140085855522966990540251198484022788319605485153755073280302538252690732003525142001091958987291295152441631508209065580876685360234274906832868657751036134252939090398876645760589309609044972535564991530643155150212986343887121830518189894761813468942215203718212913248367947887489337477774204256483812776722093098257308227298449434674753683633206716881575438843170405412210403581247688894718416588759846314804665041682594069174249806219281177995765264525350362404233993732979559097638148279719030899249437700630798108541449489829679563532386251193932148717393078802282737796169187060851264520873086459223325279701485255124920672666243413468562146565418613073778731353856799487691170083134542860875154931437439595802394255560081666748730072965892236603726771020265573120251045022300732607036403046260130209533921992326313711269176759137397726703332204185812581500119152667017172983349140583321225710093655906276116970154512715018734974232646947355656321446351518735606691497698337800414454261214038004631038316271110487958792253392060414569904947958419552662572508801406967243546741954241278160000218776215546644128510430794247102238151761655226462994714524032565431588253302361762504238220173242786343074761307821629361980613069853593143835418451593772654765630008910423913865380546740389049378988927701729552358247240632334581223327568668086662094733349742914059165133599930524395654527054619979847056741531364413524708315029654541219619261060250667474545514517637622729112963285573877841702353241239826980073428227182959228078096905021252862512289475806121635942556858056508744555899691338187092254593771416154696338520599537721070379741175506093970201410548300950106016999190928766090973406200319628096287877478292623860750208294585689889864173725193618584111407659959290276535563850807862616566064804906625512298280024448157840843374012636434925571022346438617861615786953361031577448222642316056279027939237321497211361378715878487762726353869526161828887638777518388135958397888440435773424762420994365310478870702361758863143492181584330044431711399967214562551346930594117034563410172787454069925634622774216278299367034621005234183637933532787109355463711586363383049461408941257014387545577286192406190443752805282916501018003313971592011102671883898770297249936837515742565009599050771395552356128623655166504480229762035321569372658307343176982851868359375971444746404044969738264106593526435938855573233838413381177188162405859175915537324739195415650873402908626519144056908889828259482759305578598673262894346121013482781947692221404305922856498248661669019226194968687449287171606819445403937382258021389392866254973459418779659476583915732322878132726996089197631285739102840157046690423872172182206338979264196257079072593881762221560950373425171540962501169516406080207720251075242707132562622588535388284582130987151717846234493970735000088657444233964144270804410891777229998844256937530672534700062929225005907186423719193145583574521831442901025902673471638135893990457003677869371156949762972992949805590741766296946279170860053916671016716176421296074812547534933047600085659503054616253846934255432804458598946565185297538908809084308787653741444676725654325289404462500128458414465469827888852185656141190555525633644609144670091413800134095359090560679832882660035724091899620340476990391295588890007609835120717110611155021038046176035084235423785513723169214082783922297942353870729504084526509686930423012866285025967879629767334991635705719567936130072749415990641127701348160553554488426682027874670019801599497646133847275982092783899876871221216393724751856505932788867989654662212351596169584042384056213660637649983091720219536421508866543760501691909464560741457564413519179371969088495977902261980438859696860189097206894580760919711817365953880343242390238795850236759182443548539746121393007827749164451142190847901446384296830907895973955309755028063337881848577286780396927411842892250773857008801703531852068270474248515151403869205847145492390487513357429837469530738075319784376847450124593398133233648053583256005552546752877781385450760988933772655401239040332710017673860690483378653847478458722700680970964819798216672265262746061824791409705274525530923071368385442367956549318142056134986924176520321148397983755278780002665446226819787685556125389275342405482475667414842530290371149460440037120728002838113734599104009009277248560456609029526614976212902911761557032697962323811311728211268279386174731024607396705872635769881151213572544950394835785137096885297543290832510451521791058700854072853489320449829575822340370869269538524434062906260663382259312787118318680030462299406744161768818231814101046337662436672169913616517339425092466303520619042466243182431392757374762736534162543201907876657300191144521584142431325767294942746624200051515952855993926019994934323567448275436926775476376236281408982671012458180788251525890283883627888321291181152279716393429277059507824818762511524618710650111781075237127588011012026086584291769148922764092820582426863064864733264365507042638722308727918555563295676659888583787353860691228815297603046601524712768636754004913828988169893091518170452274459409090429930492248480418510255778910918712474963644383704137164909179359585228040863435730203087646820196916107487476054372842380871248233134025655173825809976585252272739219850326223979641961012696235913876723174859292826220641713222297000873111792005673998548336229394248887397415537008863451756831871807006957346548734443083025248270433087884769453279462931281243147556045358605531282441241424224278550319633570076710585861158854065947645156892505395618631745094625457232083419531094229556073500190706687667774602442524589011564532321894961836712939690613057613733348184684917666049367119496949895168508354874731390422423223947044750141604179341127541730806741827491445763926368223600744314752039751230699359273153015586526764169910766622387723216947415412493693378116735444244819870360834687225208097292023754655188831743563961955581454141309645298265421642912878462704722017978413361049687733253992690254051352132985945349433990316894021811197932668967654827554688097591280457030140412974375703785558588533293831169320391176296676616199942615251129598923239521677979249644494549848862284435510424125394194567558048675404167757810796757449828925158458549890595596710675111376610024996206580391209456053131111442554362690595121327240247167589029891483785050510193229373102702685553768825920531176022922370812106950846283040911341388501560074101561476692841782552158645478711559000397915490381203101104041804311359411266995997295988348213671697763615547250639888501227115386733179127020075101530918752269811041446010753372686262432743529725076705195997605638560559397076158314063228764160374902183436494356694494246607192220460240985324608588879865108092269696813909539189774923794615913948036876677237480674434732016724955583128178338998928905685402439412810618055565434713265137955390130742101373085073291829881686645375913217889031580045766805002823747624342884529410543313480321777090349779742217601453632845854221040472317547848368286397156651203664801619355206607273477591612561579935773345898260806056153757074551175865494344560157746753975666052479595908343163385537434584409214932657966399857538092471729905451432036417797112105693064117117597529638188379060074629393516434154180329224823828628054307373374444674003279615362663954733365998110389831070425868743886938468177034920341277103314529701521803705384767206920923855022034353390479414961668289103310410131009301850673275237163548288643113117844871828735661903246163701085986457606558608226986307283403854105785134738692490806933697970352517184740885660923014487787568138021439807568573371742310060488187008040498047413943073978451767266576515793298015796224346535112497629477439577869200350786315459559174462624765565767229089727392313324832935600031756816962832521762691937573235959536478019193189980639291797948683665602867335386283875895734659635699085658967832964504908548525376790546864870071372796662578632093421338846936655607339049659489763504785581150495135514663255183842619394760414945059516795864253933826408253375189226903684497707382222555502004243251820808437505893466822927939708064147345954032107431815723024788403271485861933668687746949699323345485409291533431827389879842239418030662893784601723494365925460155789927974392346473688204322503505665694321581665171040779668773287333486214068504858707606822982700586246061123145124888575224552740838729202685125997679072536334333877714961818115199674960371425870538683552693914958920523046021361890759461460306650988853877046769528557261880767097083887275223849369767837346407964662020589732770848023494945989705178611676557718443917751686198971187940494177774461797872075517371178208998101073953500569548104181477064886338097295445791523093608711862404561446730319222964364962062373272840766583210933552915994513371791303001254872517230942144769198156767280410401637223828175717223665501304262173042797804440216372375256759274573384475286694341450366348971122646825631982840819078465733397648140134721151475971283763666587271794893132114227610709607041691533812887704959601587834060673703653273633356287130157164823812505664951860394318278676821096114747207940964448334649227674630267625689369071988700745337735128216513201073671804287754097442341418277597556640387027371528145467363769676261349113614002312282059779960934327307000027261850855908008312360475256548929397248491266246881079700371592404498173682473329653192442704642480231254100415631832778914207639734679586910286333664326613668767175266697874559398401188239197150998911393843269349408514783416238760773068020317053019176720826762689544840639561227991816859183444263041337358598468126527324296273474190029085115859139045027670056795185119356270057997783381420090118372985095212720825434734774430330651599288683075877334191315139516759283320796133023216936189988107271864695479041496964780101758770647019897144736423315676204184699942515713871151654734963902994368402568507117901878156571333361483463877907572963771959316608888285196021240312655194741823442442444344108986444418760945155971899769148482895258518158143440956854042618283523760753950275143019969289192681846841908056112463573139825412770581074406883755369306210049144835374393695318343244194969353595378058191275834024335514634215837966723085832202638157062015407370336628551557478595193828869530906143972836713297923725312657239893256546870665510380693531633626064004222192827588355282398046552514731900053065923191139884726578567245687296531274686755024257473806754967868609574596949532696739005712765593363787755299869030044005979753208376268353369592031472938186581134472423973847809196437059416020918381253956835413976081936612150762313612434360146540666236475693847046277687997322222174332165555396442182724090457551128017636490377548153349257135215766808388753811921408714246749143468317350018057961270412163840290349211247849929272596591273195735713783209991112092419898717352121505584070100257710041384894924152612233534739647945683158515819914290300009450191184831515954304795578653083885022592875199441275866331671785599565662724763093145980000314683352365373956048347518875924299248501391444482065792956497541256221045017876052808185667023591952904208261424481124710932320178247120540770225790262467047158432029312134654833436563929096572999816129120399781275355882528475930233156452153382489581718880582810038439130343629357838322273658016156960172502764400368709669876682516292697060454165181485323793922792923182283843207414476992878326510305065818759345641836844391392151730571894976024179202817783892754739017147302309621500909548077786675847290341179140404707594119892386725716069657876890242946080634995452408085745659429304959298232198366874154528084765181871687507560288595958149915797911446838142031253006402062169529011249742305803945375644017613392505817335032691855023099011503694933481418816821354505729414291097511094666235533983638583349440967412375196012136243119800799675803852018954532514903356266301222326307826034586289875147771745393479115138777781273841484726913771209601204850494682287762267389520491028769181685303335991231625425207737782787502437612020548621385020564348173789092302621617058311388948958061470421863739837454654930811755301472866799343811209602625121572669915759288494226594958101057621738413991805663224990837009356193365473654886107367835535707447489658220101529612419687684674329209038132068872801154759757051828887780128944211570009882458510781587386908103495456299465925786000101307940806165023239907575062813378842402810538501390424063374625628814511002304768954029489612611083843022496629901194266266352642843550010165343534469232090145415702354348220545747471922281917232443135726838377845489870197063777101712490978034032134165236958853009424206633189853061927027599904494393941223962371550890513290888884434198440983017589442406290290103562927146090786567676905905244736079962442060997937412661647799791033806664820199900550812707309635280225868881396795173866513620745551471694837799627628074171302847683267327119128397185414156542756784216500792711826349954048964544399218555428331559589089829558901875469408400017478756019464946713003271341842341916718940399859356882942734207636749751375644512221606923358880028844495871145847127503206325814907051343995816712347091687505789763819471037663177840683315149520654398690661343062699170511201656703898412337768764265037797754394351277216938372159120143539412685671484723404636052308204698719938348636617055186060059696376123493487921823321317684962285640365521163496711611208341558934932854397084969209440650786271423519567428149467668630617529126571659790559241378257443334971743361837433771145375252629122517224417652796127800253351274018799768461540584994065475231129724080590073148854024166167981484774287853647658069759022830620048446086963630507443786195427685714602699682775531063143777808596063994010289202426523279887093713317297788877674708615661880296680729619121645473082956700466440628693226715849258959199996390287669088362405449248612175159499479161631536530414845663284663776745340348868204248044923386846016744696423426183016555989510133433768482369475891147928657920621803092394790688982778038226269677897789646625314069600824775206905473960288510062086637165820202752479782138264044254189374629016945803266426017066617206493514533683153662129271529591869842471585520969724625617222175222336261990239958879203166750096262555376426592930745703389152127454838631296202459437038802241520304021785314808796169909707640754410126155141090403089160700295100361429940922792039998532768516936135782786126743077459393680512352648735145479161539440955231343592274732506855984568850047636903945381634545905639231720244081061796367154902217418396660054294070170859196596791336905125032101711584512173445804939917446381549487089550841631489300251006185126215949446136836408328106050233089320704640626051521757794766119387149083214751293128207332201708841943590709284099240229862333898300834127993068024207424403112880714576083314890063392410585582755784111530886580564261733716184457986469359599923741361130358960535310821936061510573047520683045141780104955949015839545661310942258598029379207825798461156563602440409206380200407494931473802892100306245184261035112188196433535888912408554354094181521811830068731212811382426116451897573380511428734515687906237708156569206145740162735305517399039488392055850275320907977023568109521365816709069558678307242904902946715602579266575633123393327801159835407305150638895141456645499265982048319486876374459811549431568407930888685594597014227128238216440324211513337216161268078020047857917878111934473010727082270400961928804998036939111262221289671541217920002477783858430609889329165581440872249636892354817792492483961199536100253072394031591890922438290679349886324203322567323320759746724280494677811260388048086910989622706369668808955436108330436591295629117133247957162825756031636660190605092256964639769249874428825356564428130481763102700147060635180576200038399287216476695043271958863990654270546876227246858827462969389679439072140235501579013179257390788856070846108901489084994879972416121282282716167007929035292835155063248774545888159337650864146892052001724723753965755468360641495714327358825909843589210241612441498097859418549366158442882028422488464904538940383873797929988031803765623483631201996017137661394939375690459878041104299860576286297638760110027296184050736112840364099789361688578966643704521422563002817360880247033565814445837502386556171302934578275588871165147355088792420515576270248734484270386299757917931695324007425288803878311224671696872517549360459099270154654460571225317965117094770889578656943289401812059758670569758148409689805476572358287781794871482977891216261201159914047817201637871011008540411973113775404095882550844360511999340457101115829292966069286610519996147437285446596050777489691358091813770740773716248216142855443734265376222079278233288982475654835199173141134748174268807807620194887312482259989785578510345077084206258786042642956141378531177957067541382835356894909298841480170644646055694059703017327582904382522216845127415459022165365797745840626758277760712031488045287398737555037826343823787159278613199068957371965799460513301011623848565284673790243063013720724682681840170869746848742806862208273638677119884020524766279575419666984817468317876577833859918895414249974217430035410368591292131624715679687703430330512765433556587971165431253274516345855813235665600415107912455582000787475210514917569961908321129673527716109116703429203303212455964766694878480926001001839407099869654016018946282167166772820790850077687249921646237944795301381405963693173514886539797296428417230561555713474414017586783523273053753022276430297366522258172869621410658460669324201078406955769235219031282281647166563633026302770401184707122340062580857185521703267711703203832500702889639263781000929174300929403697418982536585427673413886786006447416368470592242682084137204533537777660465071252725902740820008097846050615230463282164479023510178465563069356154742163715773520597919447510159186068896968373627897562074190891182695981903677341263119488899703231853304061275659701295442380291252856007044272753449344485775710383485446274801260512876178862619128381036280226462354402134284241947060344023547937237246331305020892442885297504664395740518780868349103921589075487034185972065013483456738009647870565197863998943797611088481859455671586699915001165484363885462481387596004620247665502009566927359601788816600586646535769204550552168918158863061266979266862036497267229495948989007881387115840439410548837502876882859652121338923044817862422992130734077061445234136385965829274370349981639108678322623041414609495270891614854950096746831334278070249897310867997886505789312688554476514183696394700052385613545947801690842074495199353279373826170721297569002453171867304526493803796353590637748737689594133175856442417222395171181952883442437208716387823548105991724737675714249357758714988721214218451514409301486078330728000884544918216661688880248434146884293722776922180065444748773266265341405790892423496053329060790707012041458879627789737165519127615955904175771505261466091582899731181526271422168360050414610059544875273022049904904929311890213609943113521883423571640910611140091461961758618891238061960599036420143988395428200574854838055528128419304481721142215494735719715818598443490901184864986760903757634789242189302691976057721178280248410580693797663501703359722244555567452661448900537979592673031285158657691753477223985792699278879653390192943901036561203697648753703441645420369543511098200322580216346115446311105352244691620687150702699979208617256136069914806472631658650140011072216659127283361292068662002853477057046050358533341984670433525867293993546444800230756329108779261899286921686859506993261516067974296650218102906510927567684715563840491368966974511625737339300521476448455620027994617732786743306968939019351443880834927273964559912416752727195262344123620228883620935935239223467977336115573908849404734041862825488156999783083231064170869174344161256881141551510500079118346788913219075836468189071996991914800314317133059948118485615576750484899218764428470760937523489376563867267070829917884136406078110180243041036762656855741700217619856558031157566765444766434872229271277812719701577269681381933650880189737278423449343468884951536606538458858869353571599283235220846987547673901387941776931059899508535415320873826445928629149375967682908900152794083020662907414525935203739518090493059355841614534232492580697015935085341188505937497639478750812241449762839604446912308688354766205832040592514364696629763358439527930906873713751556455776918749129950104962618395435359615481021799342867386989733755683959747232555818496208744457823817483267399891450768461548779349820028310322970260233683194563841793355593085487183491029706086922747007957078892195309187710647730468579781369742915383518680176048160981411349850859691982040737097784512200851855945344200949426355119178408768909430216409489532253919550081156188319753248713724147468631821587746592949362377583350065710802245690386946104284548236467926828476457211336097206486796982144921426869155182566676267974316460611084550052695931610893554370400379330017761322618537031467414143874202457341518331061451705738508248558025223706154488651165687963172155312401671783006431809498413515543832588498075961039833042286886248121457310937175978505421866827336277405561327581280629539476406307316982039896095922937327134707535453393186875198628162417023737734086845030437320256875749568694522113600935283303063063017704841606405703935711204701818012185073794909004114979960108811238486986136835200703627335606975465359649271208675687425194036153880982960586124496690817050267200138454168538955116051031566323629900355442249515187092483171712641462079640282227621124293132206287055442157880212641228661022467208967882215683915851249712302345703104144468546494281010736202090650978486839423118836360635699507088931531995948646415324344877937864410660554154191623256094802640032595959715853847211667125793970242864020273915874257375808008964650926413344187118832034687358407534012341834501398185603906712887132149647895725881308863670013618257381162678593790025274349209748084364244962227248586774305113797347295873588201559362891770734676375341991930894773114811946627694805948470730124397650276901038712507373139560065140455670209425674682434758290658913256604891241735583400318505887091854213042797089707099953621776350535983711712789487482615146974323812385966005081224493076814201098574709002434920943425560310670349536465270689983730269961235849876606739914863265188672550446346768231215099688258996536239533431670812357730166245521934498646915137672444531295245713037019827151499063254713506082601955741389705622527737758135873101303091572038206358917817612524502820680411160638464384132346687638569971108555508765375738189698123135768414964931885561372873664936023512057371912480547922525030474104540263178497538887914781567260205373122899090308239528256094634916760898343134631632194606099465303497589720171652107051600902254327725380476258091619786316760714888764254962898925589412861139601323981833036566085924969962125357266756302800617491294069581349254974962565223094976378284799645430916661901938813719013457410480280109731854583352403279608000631703346724139704185817913278020543900335795348484981378775129274642924003014897106261388665242400918240901635730518976427856037366093359799358146863755366833261142871547064965796392364869519697348067281750611742670404715837222998940138061711166041261751332381490315773292978419822982713241771207667372521727413553106746857879401581335400145225571064524426485970727738165148067663101188432335390100761775996683811577527594843162391755253165991083432475775284740568864578436116929752156041399165321100854828135282902552640461683080383548479815297645395168150412273939421577243150177052250651447852665317196225704200032901004397096443518610251305291659803655542961811100166000653745971027403827448839717669247679692842145795713561308464253817015790407370521284906777773476127026338533537850886338956918421775581676841205055281971488894855557329946318388565702089265474863894391135404065395879912776994713618260566260358700980403243747661346489026355290870206361641620509669653649693411407247895739618270618863852268140095841518908055085733974105762256935318512765761616844034346331194384567547796890802246343972107146911012668851521419646812212475044266168539685923244264779043675448492178174227885202093589805399513025365043577526784954404360578548901917580187435727723620069932963951269169533060911359830451044399874927398038787342028166351631007667645617421901218464902023426123351918254226056633866166984795361657545338337476770226883975333598873225131968878527715449291827755675641855257057874977464527455591739362228896666032063368083022138709421011199077811278859729912529731135278085599350851157857279002026253413213243215029489697581607190579331108619409678096953407319354166943474810166295249087952441480402481631318235426775175255867574135834869948305035484791189243103252488549242936525833446757375939411359096180582477630944603775987091274107830266059114412146795456492916993642976034573634194693255198560947102102933093339105412736579139910930824565854201682856444462164185938001215264330002478769304925007758455930133230414716498482096462461396981598973564357284712921561037713912615530971404545397276659233600904466254450213156424717513541564109196353334583556499113158797133708306674200449437738577678268214236662079452240924338392205989350618060287604664805247866715248461855350325138641265983137195508435119847163163715296440651734302278773027419799625687764119163305685922694803769514729034617640581874901162384912938465422003739887510728420110678948581490457187235811589462602936518516377775736404642716007541339471954594937042734704464855403447770119921131973550123089597779648856308085359952274336846216874701568132610950739389013765657538290279647634829414075897724661424865659100736923717391686162704171830901313422374015238004262881696583125455481454278987950931947767552410508901025508048063600737391012543239630559326446001686664979742533971474680269883119478750205036989972008905455421331661883723408727989364776528232227176559570202677701624881683905116348337752112218810626523732380215955128009468623330751946244674717353160515142874621519879965593694463709336474221370897023052574790441312355968868750302665690472987706264416062277904601602901813970315788255512654432401745278392754711805294822212029170439509576599669475843816039770999860607263688542807363715321489564277685375263776774996250415612493252076339505316301421345796097695879036842417837714989641258008894099790879026690904667916045040054175925224093353611471124595714141000734298225841416297824070320505397989947576932396967195219983427051436503226840861798751395293938969597731885985442923139981631584203758883106197685161162282899985957143095945203735265693278742271450388543414414552308314563507096911711682699240277245983879255095535899084559798533831020873465207917438158167657942107224572743787994318803045762199632978339048625144883936126136407077267231023716878447533762429500802459929116685257585942845721253104427595832524140258353728573788498995772916273846145650911061367848738564436417419092583492919121929500523624609058334148423324729826632484907694298985720637208183682442993736900611923756336872433333631770045997023100806278925427007071451597966080377596290546824539306556453053429863222723039919116434365961522319991548075455545315540723473696371398537246205356181726069150190420283270033602327870232578998648092597272945633100931043181696420337008875858538415473233580557660501124931822442029300297498560118824602185265783400196744518732483890514632171204537723957952084373643065527217663925075720414028804323151369227093343569685959607799484935691089289706312206274079635840383730616390071854266426374972985119308797010756427154592979276438964693054751526681179247358511265239644730879101121521087130343337140805642265999143981283133500945096436677720232051655789877375414241830740703815255420145042887308825498973459219883908199990396272523665866712643287987933195645247072567464425877444391628385874013256371330465181169296547620793642562552350520193629341833582005068871304199482417392081593036347069226304898001408519868198660553305873291224818182576670613404319791861751124392836753918946961070335341666238710126919191598790032200296627661764006094583411606420856401992789238050595950622302250927413051789727698092984112060598833908219283210122165735804117161950086290456986083549812185130081629051036774346206670134956089526772557609828692554338639908124826177341125598481261223664190988623935633667463412046864259458865527135841625964312922855391310383840050575011310172832316060620744958187367664919293226921813563426754138937861581978634018270467709514179431717889603897424906794816976586676744578378221362491575869779143433372371352604883418755314007581835770551022310589976721571292189936343796470164267419982138448617042458042312999863165837363134302257640155206196156810909442306431376059990322916849428734089805304691380651887589559603869077839155340722588755583469383672414811759846887390604405421101196678293424185421713066026338524610309046854644617133962908232128577741070064086254102973076534073094956000831917221966861233731621275724411312046305163894867083051798557644512363757970956266266101482995238698767196638954963847840958764970603867671501144613595789837978847029276671505765989049796361810880507025933948328883420856150400313218863385706919475308437481629321322924633583262508240223559344112123013641262997760670014851614989802094147930563529631625473337958924183949471208360145158068743206299280519654758123587405210410970791677041537827815696623622410671058398603433982412102889967852395515574187584124090888420830872672509059987497475762101583202641081894471380715657362732082738114292979741159313813141905639061355781198544771723044211319030819920274903560328505284099630961192885331264788893971856180925505254215605651983801304650358776327232950368656210403253029650586257837144617584513486565157858394041083327713243083121327574202630060642672666001223329802248215561299401277518782830180106669675656357573397302660853806185778068122207223529150183524075234992014052906896565201208305123990817127772373337515583978519899788789355761256412220627569177039343487022116431934082573024167456689020295608415865073660236927047584013873398659098716923799185972912115102328011834796220331981037802815226501584770202157216683768481666239308770307077547311888021284848428169079425931353376252785782061722089413406719269760823516485244266024056816528193252761580022892699896683524540231288329826200174780200777107854667798753611676508306145928349115875277538212161489538002439821526352039945952365279600739939385340862353524032124784530824534128887024561887578805098822713725939547159654162347013695525270260204974286884091564779482676547766648911206007295655014735849268803551718252567047926464971076411277907864620885551729732865498835493379959907468901035516348912249841119669635036303007792485463344119899744003998435576424057059169727677511393676260400945911565523060784047508990805578431486525897540112607077114132221600165010735999953362147200916667258239017198835204194173573915455807194305116699172304842836807122838899189292120012568723743791438427192525082680180753007966367495817914607453572827055253096759430917992608013558528586060842905892701768640778178451834959813283388408390189114924579473901657521798991206972058884789160718025259336946768302343764634222402124655623477380103048568452679616489536075124653677958761854898246974697149448442270386049332360298757438957776374035508740917579750989056770017499653957964198772766862140680709527273091511826581309612939023634857599340652609682249876908605206683465654338608425440462468603576615836285274605841835956392734550702400935045192208933080097858398585670617209355835694589451212706631332552680711139340413488347553393771517122684633090951751506344219211768292129554730020747368395726136901947279998770980402956928146267300132536078759122392914366489006737020587403491839782889511872863703128874314625423978388381484656109582931112350484333700180599594383800130803590686745830454266808299249906269477587003943359568254383067906525642946050734819583657497309253507388612391819859047576722205370708456802297395227507027093369468360540122350259819259444604611515968932213355518520194862305960014882440935096299339122541539542448609459159602669227328976304422315363536071691612106462951587764377352204120020236033120454406225701088897141150353551495942855827016814858255911138104756955996761210517662023842970786469447648070951720026758001127779817506893742563586997088306800098919426225981226597871189337402228837749341967828869142680593537039361437054288950172959926627807365744232822389819510507825965807735073368269630512307279508637318865028129750799317036058308160789329653139409383358217950298273583146469865045108586854078215488110773544787526402919659401884992739729980027649926683556441534036084463045846254164247698644210876992401097223589556469270628260347147549078658877308983938802123321570386310976175723006189094173000726949576030714860393184319379947975970481282348637780954646182724570297125350484309717893724697825533841080601352205758367110799226302669719629351137058775251114796006368005155632769533469770098016651494699724647686212868571614288008923426647272131511246772872992131812608820409954354463473967805570171900497508362552908216408487197627490327457794701293763988418175132820538748407981152041315705317297065781789362499432060574319749721775830626923552446948432110063430604174553300705033907932265599639709351676783840917710136888250898310563791128061334226154955162106457887194133103222000196213966803510904700086975359422297047252009019547987852875996829365851146680082797107153046338145931677181360640369776464130040062465910181228379209201705132064093566064118597322972892054733658905184930663524089698875021502663785397697148275673847416956622139564680411833897600709578216260953433921706185932425084518918247591975364100028929589295619602310349278393068465794168437841021869631878137421593227099359629725416796217898237048763340131622863173511082774719844416030033462058412476814608474230438306061411296431676513582149448848735809487155837056839509337282814165000044378338188250897403487425897067753733178733821976843828895224362959778679030575301500868678735095666223815166470950187097210220619573502345619323922051608918784052091670783890035834088805528222711941988898544123064674841633863788689325510434511515942925761131414487988326248186381099832594327609059312289213276196202712795419246725852002424727841414889750284737414622763409822842033882778930537539380348630701057704865322394081334988378603946360527386982314360398325846409545554581019502365805519693482117228599179558693041765169524522540178121242881135546366984917050546713970695911818576128785816373062203140225426629928320465303268983794263097170190435057453742123940503198207880247141706714034286759302138486792820284271111569975724318173970305274719690432939457093084362402380437780962742314792148825415013394803380647276267555821860223274157306346985807998891842343856598643811470824785504861137263164613121538749757342760534355302200867654678031912100827182415441373146497845390373979319609825530680356681162034258159321403519644781998875757052692825365359287709371771746099303293079538857856075308390153073372130713898497611085861460205461708057215882072152389916622165753824057652950492487435368533649001045515607244871907022709177181475120690886688321479229994877458216474137491355760636984778810421181816057472871907737248561736609946598388365331885802423216606993252675530315943065564793972412552973617222128575990547379915755088258553552797252773501042018459924745441040645905111217121246446348064291761241132374041638895739923156575832780916668791321460454781881851186090662104125560641974417435989038949076042285690294139667719038458222502169571269404155854433150259722284826931231305460736523662204785747078107714901113171320072856554851444283930227918896335226095207297872341434183079700215590381471945320491361796917498959413906014032491930081723610169808449369692068530590521731172104930712135253580857247962121751143197509749157077253086368291880040604926751432879939127699158104829846846500278238240551240375909432230103830001126367683432440460155072691474075854880503234175875258495531287688185629588919098443401259648687692214132974067195724296288480153014149870219387006750470483505131850529109739989455514502892462734703793013522150210053999052132229419549342799161080536830932075449544365546233392503592300193441489012757927688455995079477353811670313717818534484407391493924642442168686491105548796542193514573942840853388410738988755324913791600031094753506569996335780884467346392415047331747190067215564329702322399562193451514587193233709981340369010725424250864001373623347078114401356584527549802821560317789856346236120445261425735835930692809569559422799050571583983555095903540098642404739789621341806583981639144220448643448096612912679757617799629941877273485051548053619154536221556905820188170431552979051685130240901389698196531236479254436277357013319172124358224474634501166902176065035143241064156408519003587400890417659555925852768229888241720162564604306572339982020003188276321616786049123419767709510448468764728950421120155904304259544883077389712729519697265808211643874999604849136110953755248207582088458086057626035379855460169913914828578042167153932224709214945984094331921432350359837846100079147138314330261944977468127029503278057329533767464078248945329925499930728257922650898065235067295850948318414566682582489266807981113207193922510652822210743346991265556968493737975873096201739297892608615241612557177630312295563469777268023797395091070946246749298944786593377341851393792030871348384711122866688162020580115639914104362412892265759877172421528059798973246259283732635314552950929306727861557345704303225874107265193170733810774885626807997478496463556173524913730437497186456754741192196445070924538806028030101216842978590191325117423277653745986701178591045400074507552574032900948638629586562901002480608914129790287292649440537069218682896577206675318527981433797022899701613847347385897221266818937381172162423747115964516631346173481934241125401249863081169489097322974313182754865608934227489813449273191569959242384149368380653549950483291862748473789226052517246166363862164681214397592833207432281005980568051996135819144904911012386098668201769269971633423744769882385548757787435772522662135708093573473331181674167774258866494141004284000852078356745446364332953714391007880991614363030194352001460370706891914930025125514855363263186934708137205941419819080044443867067783578267885403858056956000520605460125157639984440171700780536741359614130390844359959770211003085525556845512246636729856446440415969909124509658575881798742487352693968877897003626402063628533293017794790587525760442355943882740699653052829519297710669383761616045091113893778316163634510716593962192066794104913354728616150144041407255454230776539663380951715220929902375078094410699274159954379098853288173036865503882039839580596345016035290343100377460627628701096837122969813128796195317202176019610584711765793209746664145558059928319363182712842587527980647181426332651595584116523073210164720568059030548906305418253675439814242787165308955851792495323216924314919763440423015590892347859528061922470857569671877137369496645038984392984882103388890277532571365274942436229171190154230574805576355642661398362328905866912412348809179758545794208439023008899334436565311965662950571300762007611879199934086556567139002503344768092379454320091205583373400697728935357345088123619425030291523684499553434345634827195133288862551488357294954985254869832016279281795924888402323603010511019110849633681965512706456987189487193198786914621298853777314235390213636987782903329459190441630654350559643398752778823516730454452690509821405270525689480041585651653675274309658323035165970971057554092166789834184615347912895789450841068338166537793073082038875342562584581022385304006250712799704292223426084637424524733810325980054485211281729276158128150307721784417188734272045310893758589992322622778135600741117667040735876381212911947302013281880237687912736564179165342474406984824060143317907890098173646596331977407237031917552716236324210156392354725758128570271125233923615009597216144452689237769417528837987310987973600114800456699179446427979100918537693552170399994460248525035629636085476956284406888466168719622961330422124552144176517088040071102816628590618375103695316039129812158916154419777500321847605287935105498554313403070845230167246032588988284306524118796075630422056167224360568265578209639946578063126077460621743994849197707544597474403420029884738403217929158531453485897140868907114889020980488801197492693830540447053921590370009560377171564664780221215133309967937284946720660272707031340569658047365554456039932602522211300750612656892061678141023572178609905388770464627378833706351705510682835991151619725686345286651386226037944026904687231447777794145033838213958887651793026626968589892382075819960858455204756754730281506556946200105944469512186645250769595823350806318547242379213418126097475832860053928908287726289272452611894815027076527598692397255113470184112596959761613963496797945571699708676313923251721019180248534031428448726734479061059760773766829908949229871207289778475210547261153292432201426566785797934843591173465118458724944557483677184205606893757052394092948158568324167073528185037652569053205416441555109823285730306307348816793575753079444364376065687489508145294754630275113778261900447130512970611007661585184646381089523451881849829446698714145565522713527452358219965971798970702321465579865396300074807505559434562822315747801423257955806450484659824405088035996383756837707249228577307638328633557297354118466210352126824616580868863598950491947465865734165306166162927765005364935337150258902975150904319146556041550888459698947780902640136335654451053331069927605950100504951499726542980501461981320290642049564138110472730470299435477851081336468392263770421262034999354719944221408177851532211954429529330352639362676775898761166210127767588417272248596175854499669630183135633037377370710016164013398570157991493058958593209692008049262033778484182977329746339403449365817911431093060117789331697696008247889094462591831139136118054760905908341774095019150157620616855712162540666989937959359117604932893856934224196961150106714720741239880369181019699947187550333281664368149449758843675797945998005811544102080863930340728822414222537324372146500539259417667983591557529863425337454789204491909884961255930746747632266872343489542827496633886901204792317701310336559191900394357577136056053955422908275916826553080840858779061136502466424652267473655588524596611180007141330381909490255500412973814065890494131076906362917318284117034835873875154599752983504955628377731359736404960199064490674220245619563153081395062519964290957729025787760661677737140707099171190451392264162280157387353816676987975573053129417366733306980483356813714260213662517826825659430332395585954543720847659969172573617424723918894616310849423340877913058548325750039673267256463715344532978375280813923288214294159206707846435331806490074968256479015999360178993642964797310319840299091623642590417852821795235876415246008928881565333124265125274620543810132011249768413163034323107590379509632783633078500160098936917080827165964391606789160046554951027000482370460901015742971212198878624959275483939353678123607198892298934769487787607747588378846008760008570815333104326297400726726220422400259602346828746992518295192880743545439236797611169131328691320142436079076743767865732695993535418087046672425363919777359831753005506056904475465212303876775195611611756387241465007759217273694379058407705789201785449149498204940151114509822011859219440739586187544839305703150290566134076940024562377296395246345640910895168187762673846949378868853700546000059377465560857399357454871618919120995579375637809446390202188347393607648363825820206767390823417305729065617418500821163963898200786029981856777543249914767191599403110951067566498370023054421305795262721378730600699720225152813772901840572160002807954003942114481393278511244198615861650351223490829544070951641691704517821794879646296215912006222232920959931713463741345409039391657330792367677262960866999615472583883417886702040548968581475146557997922277028555076002916221874612408594991753778165455496976905818839393596626532281238261039989251095572374561587326346702091530483246267159554757811420201568262441469141936186086457991636546300194988410007443349412577405941122019881750696645863509702300014244611328021271425200616182168481573061360010100440378683145553652338322846418936318287716685399125045225286679603078857033727907503680504809995154016652708440032301157161426947149010751212422148853932707145990719638517894961542488339817441582310099500897479054771315132506832019907975647981732917036114326450373893554715615776427450121398930095702791071255382512484072943951268067382406055461915047557768470234491345696517267426216335708134334723912104613130265232076319267098482012015851850044681094964560986617229261309886219203639994478689590670905060255970159681463324394340798850137560674295106696677086311687424410437827237147095548407710267074226492258562736084657115741151387319566869093294335113165166741957281301397621530950601782156545861360873213567849335605576158678534573738147773127543858698207048088426718695122690119651348936769225979403281541444641638090827713568333314266855491875447943081982541732366985487160391088749368223344410619042751784992878114001029332587660123794911684929776854866631754005350858381928707733694275810828505320589033008385145869292589767545147739081927925526277434603994570432359145749118591326247317828349902067469628104819033689853383206433287878910069732922361050147702024565801936609418526511709248349608058749371908741017199324081670222849255201595053127779941054892733680347997684577200560388219750277347427940903377821538392311346745344332222573412000167948722134380172622087306101491803355989513812151641164901476835869143773059649738346475673575220772748838438013687530789979909414815728197202500183778734418257819372286249095458946992955627650814768402008822034268608076693931869202484109124647653849110098806103991521757354213023289530763724793105618403015526657943282274713461077620109531298138259487702178649470996953091219463247050780100307127723514013858970763357564660796934258869841447539737431413003199165248370150512725889511014216038868861783878451625504842521799833931373593202799060000001065361546032474623399149919614740939540929053006018763896634614402761627391130665748561886241829241722437655252637459765881064693146171199257158024632526308570414940600852356036612031145348832422387088882004786488748165584601988851997019252093582469604705560482460524585004250828743270162574799524393566798380436620143700733686531305550000813929066663762840949889316781413032419560733531238387681607287047284269517533829876181595812146930950782943240643116954815136000021473808456294727030974628007061643153194867495399934619230837750372143498407239190740381080612709795171737861176277362129301805631494525855594594345220662081002319754666760605022520639396453216838652818071100118878669883119359148586244899784295763432181066467079714701245813908720608602206856284481578093711324024608772916783362941285436121279102537250277355962365923359693717105053401153108090637909524710851936739754037651475403805055302278820846830698870867774227093975572658059975954342310157624642038862192420454430587131473723647982831422225148613186381700019784196075820272443325666969151178895525186002430139542526845366193752665119024652642652642704051878104062534802879354105846326654725056084890050986154759321096072424621388543998134421763112792308112831393609509621478433458362884263135125596592774647626841834775583220842261454953949505107109487090858828014791592912939760027154600538102460560079640290955898884828649397243600967493120168316537527241475108939170225841730698888884987846143320527426802885581835037225729665220933779975206501970273206028215420916157541893512371546751187074556055608037372144559545053659075200252853659934143523908111924160290001506835920607753113964590282666531926826503818769339980665675963378337397967595170510731466534318478029154874822073502015856560364522781320705668776197724310689916434321223401606165179246347679646802422464846422197076127238484283443074035194510448755517991957559281709592920208496067445558687142943192762381958402767157277939191912104964454034480891971673843878970803344764624437605877560123356956857976417926225979239330289065977335376536533743681029692443814290794613550618293001316673108269829738696972203498527037777806686533221649378667110083520702396885095186037468638734101147468974521015833299435446028676238018169782317341712340916744563699176767957630480691517684885513516514725983515217877547683083077235267625890939537585648091651434184138673181773079124466740275505182904486490892151946280876765054244314362036355798322963894077873081248508735140642864080323460950697317654777955538379998585647748597300957328504162682756919800163324849197300011787405112905672799654028563775203222285169739946589362364886796647743899748008670241844147345885707589300776682130266196643989881398993502033436195752741855500282789188552607981624110514141831926139419390829759045178771408521608198376337665247564325462200581118509163899285911655563484420278953225157996260504832236750113961535031737333556040310511313139237068645891783137883158402767074774487751706725253016688602404427655576737257238853003199849845491885354430840888487933685036548358671375137976791723963265612398203114991268594347608151215223307058115903081277683886330083733315853777010903313023127681176289621784116514194541105342800291017918056333339674228514317821612855066446698727695415538623401476368987515983005004137149283604565895815908166151781126080017438215837276478884166273171965752530686939058039816705665836381565917680300166512950082083397506729492466663937454333937951510932336904108848229292195325057047569320727252162841028654932807496619441220365888388246618038268200722095803650924195933914875391862889399579104076716829549005875085729506100910959126139330545341195360327510036404285084281008581061021544287487983801419469678437742652443081451153936372439165555021925310596846227720950423057281208378727288556823032614947540897956181467148471939272910938984761191949415475064109968347993669638400354826622374843468499223614902440347389219233688152640501304272932247753209862393311196215230771678876857665640921833311223943843345514429149157944423285701776056475916534725166232958447841688491313959439257268054662202917400705123850122708892938370711893608204086936885574878406830867024018791220514190009114786625504855905078920134300091248171395890125941330220465295736321839933256088100062530212778564689169427819395973505339953342917857785212740422847440493615253134894419138405462647951398705775390495570448049283464846374833952518218334959294776141160495811437553405806859675865348820497153339908826408834699726650147122817219310421337413154610626377409594821675911998317541903172892028942505492193959856793598743647504027859512774917899427078945487481066666814878259595292933326701608890876862102148148886762081200435487416644661982028461080179265842238995876772355995878124606829164576911030902379815905015138760808023282212525926019776550814328619779155790955039936617174337883758140256184277401504938942857793300729886447212879797305582476074467076273798260190838952965762688299927063457554360531267538694454563500016103954110138492529050994807016955364138868695356218314457583187867464211421065432154969398028449512068339427428154625170581400570089110288092533869474426629339090323852311422941853522106429103377234090546022686113795032195006093039375947228305529821679775889690533423874619220079540872759455098139849572694708996321375502903174288096553957197139264484885601877753107085180040261697778413610470460348790476565922375011620354842281697247441816706380582603147542659358742246655117564111381605833241232483204150410496730072189826810372802743440450128006152852987861883210577164440615205602149685517311272479995714135187968970894721915600304670111729480695515529670631595761968645691168796272148336639349541334029547026218343387638070254564315404418869215367654394168358790571457623241699892507389246151588702767495492662768891939853961014901342879515320700640366748424689768129744008248606903766314587649697903639180018391343828354108644439937434119681277276641011066358612628915250654836003383979188315211605346668119943504115247838836271144302806588144449961429968722690229984995160328889590221992823229938468009653769099431788220644953412509425287241863995562808533247780207509230182104165942630825378506205770612382483460388313862583990980718026651462208359918221721296914869862648346514787812939382272765489535598505663983402637530670076707665284707826957490052732578221312673165380768199436143223120940301621627113870558836471251967087005845949954597042538573763859836344192278103548372139065949518961270026110539512439427050155405618687082958625974984060776604961492281237330923695641730002857387521416764875122265116321898498469529058546797850054140880339123663093584858922728330367337325772383088392158122550828329399983243221472121588125322991273558464785895329867414689884361755892108986615053248374732584123139626701076070195416837960376447733677998695987488074606314041742535341734263857314898689210394486118564467460739299478949530911704472720408608064929516580821834020249365502224997380177700529461727565920724545618333574253600071463844764179681563488626957356522720844271102993405464278817039556237836352191321915282293621549194308081045807345448945936581315355051417028751528678010909853635508316497653502683543348630705911269257536045523482704976669528182866504614528139959077131596748433688892589510380717272195316077405376721377670346195102209426390481387900576195081472795454617327877615142214789301079401981952220938238318052161700707709786423313145358314715672234841324495711770288717887025616979537553081691782763494063155240810532740873872561519242069888926891565886768740930303910026105876961416170994936604416933533666944304634958173728019306995629803075816467840208662384624385629361515839786598731929728711324712205260262874861430987240887284303906560066374930147163735817787568980963588424061443807812527789496964805685242497295628310919437416604025622674495472462449691340512349275553783591515430308527728748321179983027317155068879058789494979164743799287451416228573714552597764881217644491381064536320315912021528863578662893446684797674824393458537206343499726156973824048381297140085868646105084402796156388946285922139700537845750705356077231532999922684570369815134829821063344112777915937594899216134067260785395462974256494417582107510187389022054591923427491378790968990140275979568202008855413070107313113130409665162188225191432098183673304028516669963468174229823673813577882445892437256642717289654190985118659326847127762557269647570495051628031068814425529476042619259206952005865000773886523981859027669217205562866667795959190499597954866148849543301718612963538223302667491377506847644750758146310762811364519873179601723564298116974791363025378125536556395265954481061100364457473288663715010465261182633608452254660923736674725784753727101451556267854473977966641013507355590124981330810022894583620610162899301534158469593579253102009464779117719426656632910089650010998512284497745152557833240736317104944281409211643603563544870951163923548443116332201294038149530325811683955857090063180579403811493176633599112057990976992051094997514639780711530474379347499713790225186215826622508977380714924654069866954891961547654629067546148687547491787241054270331107775795527460339210893465781962754919679492239515909393106500091298736068973700661878698315058664743922812788103326171944873238139549095961729614156667243008700841757107835539282958071392171442658740463452462412614067543682752729887499765977195809827488339271933054772737092346890872459927776319313443489431410467975582649895278318777402280789054080926108786565931935852884496395252373749746857805401480262269812509485856498695446989449733862598906700728393403700798121282802406937072291476400136826160348179766003993339053426463084944708178924263652664836614104353477251257403444636887814345255576500777272936631933224617405993907797834525389104684497784692731159062155422247249887723901627307049032770759808672348469140483580642324571041568770607587719335390354534111542857797731770839646973910000523641448825620227047352777544721882260812556518151466342621232910145879478267933776610453102573689673960493887572416519234331673667681852876286276410664927693894241315416860964937983619495134013414918297145070847277922488850096604561608267314161441730966684653734364529425430457324446066733136066487362464940583682339048175262645476906164978927730593900843658466975511643220181857319193491067856808521011170877930610733494676409278519664069912895169371126530109389222875022861371256740532924279831432196735391040218828504298504988281720614181135000989859235100532870361834164410783770015526127335263573222915107107696240313980130433626586554490497602544123684361938526943620559509139652324502518188237152517290261851346397735680519972522658269003590658146722339430526420692016268687986227004009214002241728779987729335489324661452113002982897484394772886112016749900513828707659410948369950702955107208817572263192979312717465069852714731540988447997820226228094710818710032262033147064055779085346805242739159830532510782513722958932089031230993254012390620767467183778414177485060819885129686274802636961869434491596059495589152009395930468369277190316977177876670144384104864334628886462546833542842809600175072668567326077118920020802448664234241661052363866003096456500023327335603293991544039088716292863817905399736639726117739372149503899797268385851978859770293222456670927051530963599540789534866411115128332872328526760220458618910443273622746650482105565997636780700441247750594982559025996957096903384269736161877107043451190638271036263422678187968460004884478679798242364783396609815080226037604894810100272970568817490582922395704216899721880852474734312141714060627246196744584982869766518224796496984337126554891059093651410815929309339768653505754967043393328436492163677694268418000643262126090491561471519768371693107916329416493946311585357698790469225466745951136284829236260051428868837806415439938298787442726744481151272787963524559983025564707042265720936787066677263187633275820684091779675798587233717444723305079195615392724165131815208708479124837031068404260235888220931463018260246371079843680931325161113900402501027564711032897670456997014263518357962104145869229939284587584127505315986861815054297441388050448562547156013168794114938452000842333156247006645687263535635670852177073490941349955687651869367268567745224175571142751101129985184743390602386269859038020620517600202587798694090347654722345143206520507981482753065057741867494309482151631092169845900017793282295911590790649440829676883052793896832232490588496032428399539387674376278705637457598047402892085858546812006025107214378747494176996950742878443319554987741661227800600094783741367811329746685177063025824021333926955857933609126008810942051550935702019170700137255057153552321253457156197193077922511990274857568200752247939446719818466537974096545633403922786962510915009686542384958539419331242602975008831717022988662654791109180081097878586791966037861225681475408416572406017132661595664979889864550108526206439593496098255074869534293881189930936614598456404352548754621162429860148393521258461707768344981503510306790827179842625441511209567777711885578872877153460391363675393676649747423574452662913628098878317720377788349671757761936131285883081689799787295043508499832218697218662545838769729217456722889212257947184219372966255224193630963715525895264529212500866153341809807904672027009104527469886519327424861864019140042956300844182363153171054878238997351787702232369595751213142297451810273942822790141287787253644675110252240896931243205306325702248251296328207090515214946834652684338078073674093811252230315744307534704516337033890283989541921433022387534590986636159226154206166387925816532533018257832586576961473050821078720488208485913902396150988712040019382593266316667605957871511924658818579804431573347950712552474613901511264846628229459364710968974210765035555269842619280239413502665637720066866837159391218523831290139926081418649595774551489911569705429746048656096238325309738279911596941742290228209060719575419711424053476440761583091135755396873387746020519157661101861562311562843409427341257864141557931654747818207721079060564078069160458052184801518398612896516275955290344889318268325150448879380906214410373986759327261409007868445120791891216248869450957075192197156918689536801952673814455772059134089609770775781114227502343051275849034517006687060780385927938511579563548584291805835378728362976130799372822113335775527725168593165445324108144596779959973210214037817629357838041341909384360295529477016010391139765359363927138171447956175736423794866744375185540686370684925102809253295887620622873798426802359081935792449284595392232806024385970585157687699534304449300254275301012411135867827407818039728739065518162524027368245920183318468848628621625345458844981070207630391125362472287000026925937979377090938578935564674598779648617841623818478478101126605849140203974895679771574551251912049291316434791349769098405598595903029664213642429420647863933524092295006518226081945496510953119455978599487675276814488921262433724291768169483756537711467473051019273007279378067063903916798475991106310926974978160053210806217267029175894357184077377023192981474734458800650667210330064699168113324788806042966920638624999205813799526467991094072151822548284911936088403164711335560919541731132562428706684521679893291358671336899269887594190357567173939884633911756210455886485183579820506588778767555117645566013760305210919318154932406462066270841732713932710656418813420324038132880729505584645203751247557090245599146738192781596595738250621180474779960129934205722685947103146329076742561588527817278366912376702089687730458188208380813459035489668375064158616768365890847837810087397901202094608393795652253215025986996434338747021304662411695241196017633736617472786233429895687773519310111578711638285881793192958922973268915382808953074349463059663280952293438758951148271246305442082960162786590667981566998147167788797826008589858685311895645761059762224118200321765598208834261863940894210330637931892146274892575604926375030485679266850539175676582394906095935270800307417807698357874165861274152457477953872387599608379009662761202861240705957313768828691907877591946308168465151145430604097037053573389761637708971004423364084416609514038177577851936329407299740458508353717937489164496683964672947053561714965705476330946111224974021612358864919698255240621413858460546011175457493166018025359844668374446944273652893727523962689188745617163953020652218798602787122643937656957277999718873749735438741978636179425509171973009047276146825158722377338230466294993694616954614589776304237666920576859056535715344197170275719113655324685738958435008867969624982103178479508374193748898763576050887472921400149503327504215714715042975673139535564252159198884601353937018707643237736738960675655085105125235404216217676092969231003332770577841040023838595040731238452257100606700444401486201799623718747914104776083969114297791247414773517014405430917877742278214269954476777511189157422162926917493655538225346138991309827285104931393257637661562869412240907541630230192000041327290665479750020592463842549066503804619482479571197696627405290424813204281895031152511590994693518399136136111296073993253810273428601233716663593342449773124586932758978601573398592788217577502335774493218345155456658829776536212441258238194404803123842045337773940655050230961198729112537662592197253687384845449417138347563323756191914779327437946340575520537362817562531199241786095358695019192931571860711100551744046772485987868645093965919412224137009544106001985387649328245635351617891521552228323027497475127088667141897341642203794580112393466864781374702996464989867536280480648628748546575103803457317110456648895661611137455365807438236276308498843803160912189517316188910144672365211384320569362714964494986229227736716968371684858885745547183081864322736810880237696771404838515555453055874815393222071037698049376542489324545815811771608804627366979626615970449027034486156005638119057968363442826041651653968036252092167916066295730706373933094852284442497364191829419918092510808129509162138649984975320952805890834539759794765070151429021962320948179316433772744809828859295693402772125840886073555672712615627952044547347981039454019801514506545467740457572772775731798490975556798213259839708910775737443212154260121840767493940334660455901706765798385840893394838064824044501033586619064796667047370201699560201641925361414039643731503911135212861603845474277861533069408748598747167679885804875769100526048852493700421417735906816552398665432700878154916041037597625773453945533164533421860051049987054599022881769205601215388344279390902613159524626552032407081018613904285991078699937631941096588987581778334256356119238179333902845351044976591476565964281143678289361105630904565749659883633418644570644162944452322773508179030182802250619338260887478370987398358363159317464248935093904418422615124827399176311686327870929077153808928991605565053938394496607440768235571045824878751474168595968961756065808585752044971184794615743793899310937199365567402528536404742364751390053389788982580735475596114590144495289971458446332701549660523014847417725598333142921536088381531847042651505789709103987654005331642797839418931375397599045045137045169085648988682622554748025984738222378894331341081553698192168091941350115825865325411353492901442886863276053625229255697224020777487951993488651778309575059384298261694214465846778728821339570142785880963097581266119657147703960071071169401957418688144233262829715836969439670031601991687673298579465332565259036710239964925561027003278217514340364662392009816127152000960093452699723570408254504742644159464940848457825604859839933305817956234138573945296489437681585748156129311675695777358386544698355277717993897837140695597535317320146529313609294863169713186485539845427501016301722040874688042636914663824244762580319470616194444279693656474459399661838534405073707353153998307832257780974142991642115417512214402348616118161459740613434549866316944278376794808048040091661880141372711698243330997098837636983616688332341871855846857822691758947555589979782697094812784347184024464438177008668913316264312152639287231732007664505444246958544940886701188169776076705103391730836740594837173844961395505979494708780906690983303653935228791069399407145859046485819838674412181422116305617198534613053913544003089513739376533421304576212544495211299842642204483423701006868184531268197918463368090228875091848014520683195689056761268363340418493572489613679047968803870167973864421424635763857643164817090974177154663169174284693295875823741895574645721138499361445103758969265354421809337792536180876234779920413093663372979851235887843886791395929147433414737006780752763419976777900996635130555061158660298534470134564706836587006196033798104456438827022511192525258706987286248925080484255791903882177463924607626936214937383352013293784094888732259434308089017042735116659710899510931538725781620230024939906094955144628071354255457587884519745906239038035514345446557023098112042981908905313573721819235831455646914498018967016947446030515068934962340736071829396322210378062912523852930963062042919653933924669068107606933246892744720628279426583982621949315320317908953109705774014812274268280095360344796961331484051441780389421796646047507816485413732360739475168528959548391019109762883029485531642616825522365908595016951229890121637558697025470267503935221993688316347572521638695690560793706834598590304319260151537017629722486311184604651144968283153027882851209960690280498838675854774091047503321979472782576598451208213487075176219177566147822170176172622205176129850078410126476983283284001468668181102001390264286179461378551511494560014938536097718562412078392596788124672593174540215242436661293333436307412917352300248074515410814840832179108700211871227890203816238391323905474402264496235891820309806336869991344356121214369976809134079484583136175556674570107039109827915153257065289196344843163495540313745317547992592587784550884562637519722683477360992173274102263294526391346328237221806811541066724575367320506641620617134806746427345364234788618489301239179004752761664873662151436960131236658662685881925945551378455434928098607990867864627484362427762564792638370941055053198181176570783392164588846860614923675879677214914619169194286877085746374554277845015638197173613759676858573286464867328210072481606795152337306855648246278978112774916775124938105412973035756276639776239968298054199680702486905425267816828341005966609376850780528686322560398663334361288124978086327048240391598583209199796197098306247370543737060211179361023785906812353170427457605958572750968474636773287850812776590883262863007182246770709692791556900054582809483316411858887569692503962724015506135404852858599901066965443546486450309740443996823851675536905979819029748837919488805139215846307730983525435743393563291616806160528498559573010912019742179691226154571848654661551760936091784943694416996012209051018268800454014655990960721947431466917061822700805962595482390960812311972599414763094811397901733856430326295243816844251955360418969925580553290127610917843598699027633162764184362854865186291832035199125200766507384064389276072311887662358874379543682282252628446381881878450179926731142722060585921159732392419944231591241458863926209692182483405534915394777615535183193187503476736435036339582923674939310220684025678293955501504515863633520124547357401022202109339035696491266322202521486122342506496675481848657969531208579254433036754718842257221083175438636723423899041233101977179413641634227900865714988384672217244404488215662519862052476032427881589505708148993242632791159388781076200837756024034231441929113643223498026325094782293268974405346268749799193825123394674068732583863190692544708774061756159100847233275205876345365928454145808556692803181215749760683015259814280876612313955387511471233700889028890958068989764196560554448898779311303064350480160544408953124000241081768181732514250919852978214489167774116032220456804107252029888107052499539310334640715178803402638895445299725813428312478798524174865142873795063588315320844245121689194091152973603189451834676582903946868290574497415163998982793951072059726069571669450632529979972380973089204938586530129682779122814291427535725609501579757394725451326620960545416396475697614024902441241424687601645493762375371313346811474481125569359255291625196004940868697407251040133075887387345754727692281826645333535185181796137644948106098471836527469395900723072801251990205866448920921635187172902824938547852363713274213235626365180122650959199049064534067914484839710617370912961572850807169660541206235348133583517199514000753892157771226113821941053424788631823686139023730602647468653497032463655210931328370558232039293275296586266616683141297321866361223527130894586115992485136169981828660861100418677840281233419110298956804027013929797234891137898546978775178485503403470715431432829862574901099645087270560769149192530245139193144421282973383905484957543877718511327435468000277685930977012025991473073826816538595006604183667705330509565876082296487614986853128949063185283916428176482532200296507019421567514620589201268270011380601487932148902481618619385090661779891940778916223396766915159271052008518619068903988853455805657965822501961132369979872411725046681272925761836137193522520589381678011458035899323448839899633530088578237925798031091839152477245314195475313930617988326423463434249046493131335009928275617899782556452279152876892390826779796433735057183839504278704648406944223748981648889066092951830841643271625465153896561518497993606848492041125585003011841993264304453051835283072224387544318781357808719304878602494998067874001175769955343089950280717805177082590264626130360399293189602892806702779487274541926075661517875558658390889417982030653160650982729791434302884260042906592496778389127495198039069131702035411115814749957666427239371219336493808308437922089157614068583829273942272932804574201344130165582339544516935266379060151487931372142369026815270293086956452101909455464707170854759339409609182596698717036617642863531835854190698803293610056940876105813497342220755477704191302048883040499152011912225547851224634000288986277539949422390158526684210800036501019576734345210296262336270040286394588557227921922257313700143511311960637589128673316977875057250976682972883737043801951255450786645853395013665901246920229549582464476669967164230822333152395952765322838214982394367330541077714099219854128247257821335183019774225591383454597311489763145308600337193407164457876637325157307393189750085616375165153583696150308440618800257215853578630925447605174293246143647601086338391671601825734004731315440376620719000707924795137166602648273449879862049053909729329609292946979707536903637882134633898638845004424670746614845488204377020685230774984708966681950009070157112001580427413852398701470186069168686364364541791903626954041403429831671295992164164784594809525448504182798807845280533353478590690106296868461335946243173699141747674013894594390608909535890016693638288746922856782433190630512397969925734154548512427895710914960386448193602562912914110014646672251470734714175239645937947513814343385919031604268474294030012425014832762814836002097739129602762981359511143701564738583635604561815418135445114685517537933478251507173045359494616628435062182246650716397900089404490861971308906843490661776481458481602175310077621454463121503241633176442569558276037075070688902497398064849743242104820083776863394132634870479306691060697700293607305431804631090509287212570077364578761385279405750601866634059079316443346738327543142480027824169566362427347097597266887400756609927564063973709251961851601058544721719931774452490096013028217582314487769708917342960810613766200754789945238915895915000138832995432790938252841901271849547819135582893129430856313476068194863009629450109030217508864890147666064456342238636058507687532535075395004326676794174586462304030137218221642030708385089269581515216278890522057370606024673514911764383932923631084066616955481322757531086523392125286264819403785580814301703833452534403389369414229439264908972766877549332528490029784397293448447387299682246439102214209201245748299772340937177981991451319262846717583658880146459379847943052779227318005795418486922658116740158886091334080189870976641684531648447854583055482390422050269402362790144555564806002742579297122474522105782320968086068849200138660510276727347616509392643159247201793555722197958758390053236743013839063899822431409695494957281712645645113971654963516095372769547943973344449720538131455739768924263337616301599377022889850583597360241881657004315688944566880466628603073785422382642482961860757549743282932157103715616929532891777506601737559253955830877832534786498982516333797476813735411062450724515553221538698349472247982432741522904541703677882969767808250759223122916913229624788354997190662567999133309380573224826720215777600575835423698378435055286930268118856214697780536017951566192049810793744293117440718518948313796743172735466840529328570041556837497411256283642817533927864629822264350743004989554888604106813732275543954627765988901276537255355326440639488333799266566979767586119510541753987185449408564897451123139914655750464275979855096989885401037907111998032110881709965748010786103868441273792363360613635036180321779908561001075485910054999459175289787123215525522401004865956156970550736662795253292505440534667819315876953254032643386337780894161683504855673921462452954875729994993945618695913323157510283683838456605829960542835973575659814059190182236717318681812909642088276637539019918737277168911847363508575184897915022769581931186838821381996635648574479051462017421058791685773377303887649525788632883147474455782716443069513726726756739510217505540590316719354265932881600990181595423149585282628957306719175228148908418375860584456523334988978824763742260539014717826926939916724857313310307823380269224173437908933967528110285820644437390767934549493850805009536591354400455121665897171897734744955735713619229591419471594970206543943575232745720353062835567129611630234757656949993646879970340964432180488124970380425548756432723460478482196294475493470750944103280809637871329829464427134616764523024713688372644398101166940710571321998924245406624850584296512162583666584602877978664766532698650697252408993192905040023034059808031977750634316767872764845553877806275065179674281943392055001084250630026351976142750879760242706027309405684340503564873617038189797334281315409112503417181444844281805656502484993390175399561354250056756318671869667844611308266909947956440861435214807645932825744879634169270205961665709211921084595847300384670455477330123164702305587165546463291780725034882515058395660816838920557987785140476266297352648686360214951847579878903178436613228159224449842671094213527488250595075280741324037054549059350280741399194040983917809663521368053257028169066373702856117132000289445862295214663641052294582512814567998843879430506215587216691348689294121150983733600781950509289893320660069165553579905695894880812403385233924063887271990505366848114883443842360804017435613529047406596511798245367512169931489528358042927745449130585653918299539585476616461355023190947817419763871101264291955155824053476851005204966540081196194108509478687519311048739566099437227775779386359508528447272904454643511842556566983126935166516332258837146506139300232316192893591029086885422043284468300540869985896074120952780815516678594573980160356013072170107832292707487584427137831719222255547973851808550491208597478184564310124681164176735020501053109379134757474739976268539716662822794189736678000681119097210857390752024728700843147100738065464726097633618180708212351736162545886459766006493709026099647617389361633948947817143846466901363220281074851670345177264105969718901868231080314742440934991581858138128191531175468405235907994877660211391781930412611937084115851142849925529283818274606362188465413578500778361390871566776348026129465855541662419588025173798439594158147895742613689680726512557412762434526482860939414323146051269184656864874254560379577882059717538927497355783939773676853229560132538455798933542725187724509989743229302673370969485571163945808127662906445570930049282517693830595303540693057935034515764820784629049536614533963073324295971346035911269976078476806878466966424779089036291516315718918622422136336597584217395829240461265488192012381364762057653455507407388829858606073151413705979744230111818257551567716002896668676288875520767249162537955352511523702563806820770773296672797974736077765915240749377276457511823458540109331820701442292439148671521878386519394198339779746102289265304288917022159812807312058564724815663905317950933089700631315063032875938392374023262988149621504515287157891941246069510008860173658326398506871795158617126155546523330541681155091452919836687500800297598599765839201565260622352810762230529124860197342594808740573034015871325982885846576654883691229212166131738972500527965824376830083107025601869021905575867652991610433248720627796776059137191262720586537555737195236909916951415881225334641578194417104501919699761431812864601795361230062229312424377704335111347297216563426436244435429803644698104041939346753609752650774716333659996146490906707989115066305216368618452192464360430403024129105311618664636869605636942704184390247964966989305255635549344074834342543321042653732639295857025534384949979746233090500562425124080419025577122361415540204341215697416173929593352486427806512458590103389569118551206042298036627081637545316273713390553470008440587542231060248366921523955235729116979218155891505987837681022434962835140944849972034831549599676195887144262769996544917628935011279463562012604452216342773431819788119006584569090303692895335627355238408990041132384186221000085815710799311353430468508433551509085906595077114334764728803786511998936954667293028136508187368407454142039858036761900723964988288951761333520878242763512737179031896802992334741368535379998003584324539882176173225282289997371379924863199238358255863308033285974822268179352098162731631324871496581985272382408424014876055699045185956289588352386650473125400345851748023914540489204112535098704583823709191975092231938934581947305211740189732483230660072924082867136740689443891307484307990682064742189222169064311791435354467575842890399338962362178135624847710878463576103146989317375308069403962376811618839656940182923668391822924694908443358937957218080649586991303589538111493773331687145515126786364144855466634721056497546684386955139319642108375590255322852561538367752311016124958050983781620802712020349630327879204115607449709317463233041438755221919296228531907683350336371400066183732785771367879106467503193923265917824390508916873205826761953664856248534753826091227276346512670654663150904708780524274577732084890652116380468489895434888151384167996911680270405278272874810569805387695633177411527013562802370523023143141401339372616686522277886623956688952616520533957631929557410170245861343253262658318091257468750409987157215285504511568587632163075165910049758974566643280691870095550125251812242623704034136963947051422151580032090447351328376925443584063657424532780660877107533919135176403923475665059043065649318014141267340929107342604180944205258539067557635111715910801536302026777302782655586385537116612671724049243365197967702897722351302406384161228718535736692190379833505540491843817933560627559525315364062399980400022291141672066392563312137634716491212408350720159894294332240510435944798525626022045106442347603957246334560012124998722432917881262964965045170882950182626929608062651933248799945830393117186889590468050684235295648360793741076202115393732599117625243724716890291387292183997594571440640206331596419856816617375253179084802648305203311194565978141205534514568677686235171206414868134339175064018809754479007903936281244232718004879074662374612598226105070625480274013233388647582105616553599599651239782428215663007436373743589896079865694666365191572841167141428206431281593268553602679311556108050430236671161404289643898907155531380405440173516272127008289723448706851193016653279935189653339771992519017805744906939336362511924969023655284549334137305711950751660395012514083579539262863097373003335779008687020072232104815822313345399629050094442160903830412558114792518173807179741291932804467650416921752572877434012957821301444450694718986192316024071361391842868868699337113734458742382688414983791691633954965151459990944005610864084830431591786879057524656340125409363155217470751353379186086883127119949812163427251534721719573727974306791845952743970392949094868190989005564805861002009119342020616861884433384657698736617809351500574171892775446584007377810901785620248448745613778396787744510196825825441577180687887729547943048643086960221609615275904847425688002143592558681215996012502625710772914661311119246483192109406744515569490245034030005141447047947442621773983404912414984702120935456958870247269757772001769614479030314786165982460929589202272303655507656069451894762966173726401432329263542404015860151027274441758964746006954260924351467741757981088936637994833707707704157259309028548196653280436727700255411212481183855842379609053664855920124654805129061877219344479472715180251341288055631264296622039960751731230390349894784224215561048717640349157976020764259206500089963885248365543237207547138183775137718340227098787959615512938812237580325203495816362277895726041990574593264977056994580503671957284011023880416400574391687628274453565322257909621147018592393336949815006823671847896101075369542930702523702382343698671239158303624692136745259677764278513175571456112059525487866110647401200163841852059213993292738265726807197258624478795793302238605148800527602888785481238868188853821899225035951298770982845922881144663578372818626718823991883958778499405165129993793469463862868674796673655186563588524088707324806056075076606587864706603980070216663767897557836491142484879570503181648872174577148970507904608639293980230153858883233004900455651778574239496908469311553015541599659353719928973830778872610118282978719484417763552471935416290643438823885519794412108487426792836059491144304227640978194945288645279519961036499116284994986685872135459176787998274468949474087336196586767024972590699011449488304495025916668577271624407451667991767130183596116013341711423318048961290757034264518192459283936066039549861641450026804371237015630129255696240407191683466669013794850822986803546162093504347558308126328314012284893818829928890034282920916209890845131922342972062499296999818202939445943359578979492447514822710931440069136736114592787323503000208264586248846857873034604017027730355380964952335873087525110654185767809249063180657270263298528032158935796247489659521595703841037029114433656133464938682680096047608673837196766964328275794312880719336421610128950712409234404300383974761149390361237785405201419372737365492187337550361703640380769468131995032262231135533749355039237777694475220660087458443970989222236976636078092337503861015629234142842655603541297878210149852277317833764146740557938296428071240957952963816269748567847395288805477429058658046720422872030317336179648666387537173089811197466030645629682395229210804369328091329146428818448452862135884236917617197764868478025145183629001337658011743595638384401956050600730938918815680680719355272640753616220700161895720914293219279540819537666681777824258227382115766426053554421696600285360213589371363599589769232661720593007394042972946824656761366237103665360020392344207794476806474347673005926189751959359529450601139967726264330934616562562602775258695427322812210807301109672136050246407080641058178635325695403867095309702525389617009120128575361633377496245956909925267399599274429025844747230782512736030855348538890434558557078004914631354675382830447873247305673876211145096709555279932734986551821743787172568788822213471657615471443561291799050995857047412224080549026338453090345055379441439344968967931616954275952660160251827032195786819775676231836193805727842213668378999522835868459942933239337519426273498667020448395664598294539154457605796961423467285848297237888159123077774958555725738576772373032713523651728887766955430518461909493030022066880406233923542853758164927748087325843000081992025674243985336820586972738371400328480518541279908544519955912756095238372442306930341046819538532813962883229771663533006596129080343598972349252588196485282407700944321561416661551196956482592772213678464286479582847727267684664152940062483388552508093482048812851431468000992151455475338309462975403286351522546120362686712972724459245620669352698607969348191289378609605450434897354753543406941045887794127174642853041823237007870237178134183011962947486850738343049130541059296471646911969186660871659608288650476468614349684017656182623561465711650827653096941980967632262507496326695199513734710195354949912268204160969387302935933295660733450046813232994319707142704908073044687479486911716664068754269878530989730432824147662389381720612536289131743140579458215945569577853348036715011661029875695008232436788437516359260172547172945679579579639640507798671078833125342642259166452486806851620755297700260215847930943380769187701704358011854320934564377029318363343905393091428026375047126982409497416659161393827243332225944708260570965569671949900483472643601008372308937980070326754279128203085311651688169506740564599026132826281194004036277855485948784476799640925794964507111497505519892227367286659177062443910182555783125365442676921617682409336242301844654350328722088298144854428783679477892214396423481135572649689836963862231659351041810740465633121996999482265728843832586902533172692713515186558442448513860856775688016768440255704431103509767123044355843539095384197748460557517258681801585298452666959453205924363157803654636022394827366570710618642757868938651305652627310905976530742017400939359635492508753653369883138418903101645132638674084669398236642950120933811551533536130731422532287106616731396505423055555219677506384083480669505508456986152540625049771051317732126043310076748037082848157458096532624576234373149107240524547183924436097088074973054109318609070428828824302466196848946369504702362663775729036203115211556027764438021131216521524595475046516653085473826431468811398962955212797778004816336707097742513119331145397284881488532983921491435147197936701633100183641682036046956463548696632272280341134733906565283350346909934886491195543534192990325994793415323345573256658950412817877743881141213511863805541737317690593706316782637977723422229042316466624040042271587394177842144515610684895123013624418510501468072118620741557021441506985411689005779195796767131376929541037157427566533268916230288866501123961382135614216748634912307111743794019137536119799259244108616765409297496542806636016949046254944923354305525289407740812538814106060005178380176657119307636300426421257511542090202830883437257047998744713759343483469290059042577107778365277368282480522727551100092080378562609868880803012484049295528428962925880270864466822153618543897905906315527530452567581715109995819946982477759777615499919283606360919540272142348223440928431528051314586285099270180771107919533481176990345477266310357458119726787757281016191332112852031058564889633431266218047211783712255252236477197911333211343306311690196504046389232548417594713847266344539401416017162327776720618306795532532323905135184679157130136348748859790045659524153008762266460064800633998056017972289912831951456388302191809280129912545639336912871466762460737779707127543152241421355343914582331314174332607160526734499008639624783620495230616211942495141554415716406444059431164712687352685693699382961028038148528816218941555939674711107963368648838212574043974388902179990715858705303568819318452801343201296230119257985638913490055737062345288608714447443256647804944086198196804722642104608929240219446622398557522386866229148352797329749314826276153552967785765806578059523299363816959877342608963531705423679154973598819515501225200192258918385085291680180798060868390454370896585837401554916003147470312830442371851330593353633499948896212230796849312356841649804614720114441861472435220396653447464141648496338088588555080783906478551400655456231432842324630758136521049099175049089959824050404131504923745467875690884567462178002199715000000028287740649238806358932538024526736734642356528432483163136940760603062565248887097325270102085755040338803014770342851324670043965007939973440502721800034843126582759585926350235734487519693008580457232026973188951964242339438348854523853471388621786151616529173102741886431459124237420339361033695026811894133818401080345292068748824442516907865014226241359888344485841692418316064213750624614932933709901285955452645999919302810986684086209702859549068557515199978154255526066421623173086766298195029784097723165131107175629504012686559736784232477012851621481182936064291627330006629121734299001219483768961985506998922298611656588514387900653305246682965386885534758343770149157340793822077586619633160191555399972995664547756595750379196315019369340502229196330401548669168662774736479732353367660727427769154627975437950306081228504107532217632729186498316571104149424398931905297077761441624452333601607316205608421715600747462872590956971592963904743655082939942679173622135457764265318937426249797992998533286282141506044695014378456066769900086529011103864688808681003138663551926888981060076468821166581526219835697685983548170230177599679122352610314716191130108797177106029716736545675444143883691519028131293394791864529113701410208029155025637319457748942263959569203117046775356914522923962371213596866749308123694280379382071705280292893785894953949557640712460167873472276479723443866131382464011058408509918095255269588157098272135732009307226063360276591325301442003453643426737465790812142329946647023032478339406601186341197606744480428230228690986484247354196036300566177113658354604525783060547940882904514032364879835830573065435355465146773162699007036168065875085876157428113294149433710695419811817564276831578625262429032743024104214180761113773441913744880391105680591871110280160544154325448897528685330560206469424381812048443896415532345021300062748075753090014807631964201180356951144940919913345329219981401510573666560267079686752596720466081404362429643401820214856283031260991993611654502383501923206752619863795290533672748445459449705298606109998956245535026742533016329611484149814169879397130006263407293702683833171651265027925328026308678572372515253481748166126256105610925549373441768401764462549631988990555880471476241754326497320851397384635739238381261175309423238341688507034447385374703188969607014142690642608858751468237119050324015032697737660891434403857674816238460759948371735210157286550230131003306000215257959741071751360568384641131717532789583633892678667377087779034551339490225123740129710630418814497185063665222742413373335030836328226484677878364797856340396562720291279129956454901338301501920320106231658546379144390535013005946618174792766475628272097419179293259504681043227236099166149149948278038420185999435623758815535070070922173902429337458947047297575248099603297151732536085218065980234649013815459422278693945393330605024826244762386872620512642295354277318482712132540980826608729618230589108150487617665313279549030578513897687841584354065263550549361828366272849169572050015373213590058832315032595100136650843391537372794520696331613698669863028372541775931859353169267909081844799603814604588279932260266525912492669738605249913235158048318713969695011395115890439617290541200215132726891069513368439103417303728129790339491605729174339447816988865556699850388463219105522079888618202657392019166643363213385092159112177860169420498192584692336155208737773639217966003791029158710213991599158298961963576046803691896793876168086423893735422025015322247544443095867487409679828643149708368843015267477672348842782995229997253526374797007663023708992248386602306505821883769058776011582417520062797511280701921621716587108263883020992481789787794665372520512367488472593426397469629560487756701111127134443359398191262013445488079095108412070947083969919124981424364740814431859703327719881576299215014591191710514127770482838910248244268497342139004411575218184674679566342422217391545106326601158295654402970338449033487372775512650055614337465542453315179408459217431951259582226258661601737043147270977709786608006977240990542899725430894585936722930537908003463172701015014843546508287464020910370441228029659759266735870375235050251613012130140710582727506998329879263707034025881892762599778145602549325671374669774719630737256318380493419771632368966495754916706349480680037015990310082629187716212701301554210944815323362890736834747756115167173949833157219617728074127161142112770144325709135603293570692982170203287578758418532761172343979429096566645454298469999723933168159907016297491971227574399529996712860197333803852943523393087519602528518749819326028940543778894359748004393869640550351302063361199277329700589197591796959408409113405706508663085409539320461743908073409354585603481744917182790519105562163721015820117629655859553632667833093798463238991006414030531653449341880371109881476114261601497531863992907946918710718529447003828111628250023920102815705203832155708172005335648982251450177898112978552656811356425745630945853491444674796712531343849480193948751493641972075600078575048132152640038568435214135844578914073391136628652120707266539731406983032406117011100004735892941185621852810594287700836758621180166322477028079373350448399123883561051174725847675116051965252871390786600536264282790608842390164982341149421689576555849424594850213973108026019911436602863063136439440421965030665279423508173627607734543519038204046313007292185985784557130932775029253123282594714360445111428953890358304093384899500124747186078767549548273068878285373231193066139174862931434641326602580274734675475146589609776290531136494881101707213639073846839153711081163306626096876562056404859891924946546901864060805485804942548584215711122461142502692503604218089820407265008030183340586475962897603403551423149285160461693362470193637963857101063771930679126473639287673565017440115375711636024799535507074535337298764277383897265660639605250730897422407058874067479157943182071161580067179467213445855147533403080526268028585648603886899095535787169573629575899739350891677530456209417282606023521662234722843323450812772020476772162634459429915573200623927837330169440154555563139226342479346332728390358027581829316793211138161832890315981940149895488294136204868224845084307947085354018326640472900523686307232310769153196484641353521080591427208128178558740331077606783038749086165357817830278392615919817355339268058648432535138443442761459557085690291536696113887491694467931695268544376038193072542187967929970951216708778804545706038008933912418442323410600533957135368316229688160325325437775088750503905778190825982605706186755557104645120710253831463598399824218264328117808861603171515262343093907079026330984530843681077953091229475681168341849961268367687804350071655251888126381305444344322485262171194984818901816159539782662287408075790553620185778850122797785350544504248714038588554549357795309930579784235632283113414869303131271429640656502693143655289178907274354217481820878065415432621966504322842707169206770722945870352448003195249729383161607608359009309979033529098520701457868175781236174480112594790851658703271541185311136568552711143875471816964666716030394212208904557130600632805011868101621826602022744386199844812954765519917747954624997819172461921409306288366462526129130953098826313561319252457277721353208016846592765570677789936727375884060164647019776239655727725840648595842366823922575518883232856604130628508850054406305294371068451993851384094274351864926271929462295743741813092973188825017679196819429222242414144957938710339757323364138052415882308995830687262397913851691785578522810670061904821871090832559243145099864775461840389525387696167707069490688224177856720724888752425889382973100406097283770412356866598983428989546737963601778605131812759644652134554002730525720925789872279485614129245465943927756000524638130348938975430144921118421070312061438186324210005878469307592278291376860248821453606192555684542674523191109451821457557850958847835836694439428467008563717714011627488783315505826286090794673618619089605033740002417592435551985050540766798498610374513045900623570307586497190271903842320555123611524969275947193142626257165031765328241238956596779886467064372130288683795424385260526711343034796775068857561315376186117795065540759538839432556071736281420054924194793918101105997230405615270790937219550107711764355902100141384684006869074689419348914660750026165554646613127325661567369750024678525411438716748424620552142085421200174974714512729927421204510475801632950049627335325285706736937079093119701391284971722811085235639674243703757059337646217243829992049309355094976269363341883788572055576155176550106854796309794134158748349112877187479023845488847756370959964318715063484013457058186920704201589323111716895288115845912551165995884138519819429074608058296974831310704747869584584628192967496213984067466663621602313954923136052150121804266986191156182430930065461219167017719894909116514785903831988863189132702089334890475234434082725972157492612783358859328970744749598436581242192439304254129131544676744370557785034751752368427026374654806345080434139418438566280290061759210353758087262287099938931450230368312826563032851797444415606799989955812542146638521273133747274668635531144785046939987685420490136841186349615672977693819684133779479277024773909675782219507296585352180024061193089055689738908958075471268472340972031830238218822500506736036472050768222906187202221407866016921703516289746966954741031743963891321763106077248592738232130344630664580753443832625594040910334687396285805085201710737082474863152303902173855547236692683630379184084455653498807435151686964787549583247758192302426053533229324178187568115687484879503451361743218358931775240866515907806309982543942249961622728164231178262174631521601033751736772893033486864240980293408811149010745980168223049184615340199828846821481630828497935893051844566413228014655385562239667039544197133394349477086365540249374731316184954945423027472868159049571915835479555266975650726227526904220874084130001402594879573065109556498858740142028202278948594582991620081926114967578450270136981094722099862242990082727722460596249179230217225568174906098891913056281758441767430511144514861103261509430633117396340089201575396435455230625670465751498523945511635605963571812167453630574228802539179627415132182571295145293051317214146525434728091465790558014853389043673579654446606837325162638062214492930072643468653836530963586823602308938881053694947993146675382784471665393129087608345565554576845777261919387723807098693476390134908118368344558798710391208732714496061988427789355357017965551706597211313382561405713483030816884885040078858532190467804328111644472678166673133114683575751679203901897383811793010010309435519435294887601310973330524653376940197887560501413899465001582390146209756990714612373846973658698147282469031640013734353941790796033475447913470741893687674046091618359800009517390978608834259782505971941496758024222351868696699343760908994765220576975983513544595290142454991710196237292461628465792376988293040717782634769238283432742421067795647914360327629427708885588266976135821376093084850879389914079478603018853318694153554205167128247804423190459929340548289934253755928516960296813679265980230749350543416309238402421486830162137423853731911020142073690750969921847859608603157994814307827473529499541795872307790116773835509595447646778690595488043667998157502263518962246149398359860173330185241626843396583675732775308600974787959714925560335230580046587904184376021482116733666313202582145461550426418659875182608350649321728707709405990109800794962366294059489570728508822049142358264337764496416439076067950551259035699402269724703384744002459754075098978122769084098926826553065475962616376101533854242177195770948182734081030391196655196149384549927010927554840710404980668272523530219661307863215037117325568419284328888807024991878335885049134183154140152705457570753892822775590039864360317208982345556902779514799388045398622536493589988059860566970037780668543242875622384783866408909924655454709222001660492394474980961652889230655295301287832807270425661571993712747093380640198911755560816213731640076336648660450044944818897984431901605027459034552713521506229289920063511131941284256599365208967274986731232482136061265560208262674643402158998857504697115971378801848238364625334569322510320629320512548987103907351764415469918709166602100100388892569008682333261475405875418030719300094544483650789734346879080009725513878237014411521015586219098205817293687922272195758433628116390241983745178456677422066355861822182380520242820258034940803475226550186571571965159305250238343602941671835621483009382178470885817465360114093624915037796329389827003716272451922369272929641328259497736649196583441983558495640211630147150437342701574844223047493681868728460904583077641784521195825923565259366766075291308770138621166554054603867108000759225447436981797470975686021949474674727286828460915299443508005368219895757961106445085649309914626927581204236033278714925312878752269613904544711375212550025078249780440427342259545531186116339689381224249036664314398520490498376564324819887770653781419236197679695250219584098486774456941025776350656751843066382812029262928016564514088456774618373791801317613059031448426598714836237056358121972176111735523193655121378332552825626527786293578336049423521591229126925408469880422564477845043840592608198948675335560019237173942898642372182856220218744999738521390448212147940016576076524601894198688372429415509738139077970707080516519046288430598125295410279027451304618817063014231063413239214081129572259154230077206291072115611717112413164025333518687312182696968277646181886173205545362373333316662984356614354679020268186040624798253919730688110772902004678143135658977318583160252561704280549974699420453295393789965424321771273745733234333249707523087989912409511456606977893302112746477237685985846593230615582274550288224892435702328330199656355456345047760997939398579982244023570632014259899724827307509988242434587155760802731010014329095573430769218546781601071342210430278452171124772235386172760650519419788705117556666455340719619564810578503296901482648681276250517723354392280192703238426679102299381115258534527228941619802582124614809115211979420393357937777842077167417982490983524929405629316190214381195122486312194180805302383470803910816766585239942372538538791172242909431416137508152763630728585374486581425915958146779482579594408289134140211490947145861882823418556513204281177071129617626631191658703219710090472869985662622276563056005934538737622101232121640147783273611189864372908736160497716075084071378171035246293589703620634489962980201841318464471142715625236702748790171104855243550230265305072508399992276584478092133196974539439870552024085719580894304646901788523103419099337272306638663186901401878042208369269947840000359119204759379384538571352941297371859975194782616825940025998595622616245361294130095867538950135894370811934275157602900748411077280265899440871394816479901328643226452880717572413973478111622882870995754159934636241972292521076531566051776544786474864889987899665512166631523526501974396480407333678576838263409418341770456848527968050299357008147367570205170620192551709359371704969594520322153529908359226139301342260161401125092880727561810040290626600569964093688422373319194998111549534166126343999771130889864726273592733973717463184166843380449416132809682796277785941751589800008757060108634662263198787508770304431546609434295363326405601464022213585286577177712737707528900542987622346641834777272329966935623799188064932833094760326926550431822384710843680741699327052237323688627397923420985315828572414510696460570954362185858556853733764795194822484366601761437345445734565465883691772572312245755897062503373674366246094632410656311985425844188791802191253426870688725899937386793065971735417470544630884167127057629603864373996673058948328407816512022434099022639100477008736054863505267436539332650795768559709989024865402927759185116320690756637042145170199260108801911941277930382030920680649737475399823036917871371593317489579623285662181690526110707204101971534472895314162726243636041290245861979817190716550889562941502625521324363177007385748548515632526569994611478292664628102008700508373035138861366568933460597041148869337859522800640728157046852300345429826264709719814185731098698859271385043308352624026766646824442960405652453247145175916356932990963810173459821019826761106791664000333920036155596874026872627489783801847021683484281147430080920254647132573453653701971496998975635665128592868883435053228344755993996128710514256077150067515818647313575099414411705250609885064363057866719208308297188636615236744261175153157793903266099355330081419596515150852408556832376631525266928498813595259369264420688549852884162642109206682421718905199580966695185682421851657073953757281007591406332640340065904679301452679364471242492201431848293373190883652155974677617900030160226887382130644306887566010038900206622685241031040297767000627757682055284378351295247069256600790870958347726485359914040229793030177929358101480890935631439673706502712519816134071910773869913471298721263509316838095935115927774136990629501831745738794925241707627455047089185426602246112389111200245719596257392087836616458064598348665967121163440613285928620265520824498452269277795643763492046760779490844849005641930532497557290229125155794261489819352965939435485871421882937807604734770467035055015640054767539069759682229527747835541764091952587396017340601620780641355804165697414123744383802277370211493850659932069222871429136352329138692058359776069958275287624085037876294175374623910044771242550728197199129748888201404997952144594175267007904170100886290682260615833397870541647356090108625586507968433771584467037363268882061290857275618568285092738154863591797650868356663650785293847218394956742212448115929853700654308928116911457515475702051585215499622187308125124951871001738165128766357927926429775152229721710415893805906916739780411469481990425421449107711910350412349880105073495211861053038644147468821469776673324342340837743021444193628582861178681714565618629673906360450971743280906204344532641055241114346381007893802244494357432915604316135247910953008223961170202121726412455202734496173034755659849785491947990670646872645373658263591045081007619328774280505420167251700712439497361181395804293967117382251073294827872879645701301384479220455662151793212569516608586727725378088498863271756792913456934150914067008866496424015809143083156663885706389306615642225730700158070879475524279205661826113206427013658561285374291783772125517878565500296107773535692654064041022243433035436618013384446251870652194368514320928357557503743151296622841696992825955015602966780459314283973190671912980997825526772578771111841000711910253195437902868083580063586380159192186494398953954769281643657733120091130614938540628903478505268941163041710763081869435223808721815175663774984214886761948152550892684634553690485074916788097198737681134513009867620607937201971826938264597696548525155384086117098339253049519692826178914020779473183480639930558736309437510231484926900671461633656322267877617912703523769996598010838947413624358994236886952586209353224463081202071929936024803841625482861000982073154162674751149716103494667092050611797934348718430243516876894061948164157695857999410513255318304456063903143921504107367170423072481577311276124899957644051261981508360485645008956529125766905488508757396068655457080234752700568048787946480138473088748467800779717292318208975488167495234074453692811516428158280493023705884754628996274593977534929320762744915162515009002555142490119597161353770249000015968510077338354594058270885580021614353259980580525945235375986857828614078202133122384218903194386791913598658129953480161486681685887102692007450014900670307998362520599026699794109226236783178173637429250284235893917545249031257109929767641346097669787126889921437036463972040508010313196304362120016862477416884429064247504399197618937080047224692507255529934060496271426934899662973781446403774448787530222661774741884568329841285658778836900488309117972465906360798590611210888196178474247364896708130586436059240494281667304006545862057550228154562796420683507768860821277287840942154120478285766053964083677610361425612777761382059294801522384316817149255914052321157415895891180056531846962384477447196678119094263680199739294551395294014194209693100978899215092822508182065523212941072009423874715501439654824549390567637270229754003981634683777505002263508453916993403035670239062537250061703744943308664381111975289282677845568401697645503803592773366143679208079358373967197458041301103143026681023090679241428195252015055825639518688234119500516931204971955994394432062463846684751835973315205788854992181863958343916287266356845023385361800291436338558254186899105383539953085318840774609261661234426651957330970535441214723749578754281325128499383318696112518548284135951241533906187712340278692811471915410509484325627680509982183951388409167381473246724703437674446875769149909768942086714484485298722269789987275804209447082040014764741598244694137273059494714078474742747213789109868007397290397631181762673474429400574756276866831607153014702063985773762513394551460293579362943969699075139739989692643898225508698796980900112223830221899020825259183716323864267608394300103494019145847772060159940373145424127342970665505337388500982155864471353100338133994053101012734753129226004318374488237703627117673586901248166797391507974973404100961508470415980740912504394117459675345037370298855226176137829024933887920025769872531321986347721148373134473245002278488685625931814535418185570334850711515162850508503668259242575809593126827029172773937684001594516697198187674798237189648901836253995044229533139414171061125273371255661735684698687008991765989188400776329755952932272905468327049214484396964272040301338294616703556720965980049413470167158606961006832889801339272245225999875726749640489123262041267256741998107000467153588319025540599294580201498195563735468264542302717939598585034127849450957826819177188089808229762301174448545389583694943663085794250628671148330655715523810075990459158278197042727745290777219304158295907665859985449455066989447188977491725426748133709546816185163569231627741170790125354508061577071875341974429463550704239901915789263960122057240665318011336470321370214326355674443169806172674283164531997923136757390575953086501169611408481332812964230711316548439615427742618081502819929455660488172825110823952524693574437845877548920369722600509843924873432052536188219457691319020012609070859991066406980008569627648649647996808881876087396546619729273046724955835707378927994272578022391386160178683812232858195976176094750951352940263737978696585051591177848862559548598302248152234658643320592330933327560625159260337827043021748387612140073461494500371257246551157167148409343729220352489848819212952486574596720426780937703477965695689926616824848235812696899369777645295006782577571561723290092332945525993765074882566187988652193264119658779138805556056419030275564237450987280139662866159948177078459852664908403639697297727843170654021893616355566571298622140321057247264927119166398773052184571496955325338385774779686308607572983156936136766084378087759182987734710807910983269565951781957678725446332805482234700272995229923639378123548346030353528820562775227857166987466562752575480683937932890173541060277072505126695966204364304964278150472728072053813740244745597451734935969901360050776991409032771206308184017631425003171648030703032522159342287164100889564754817552436902778053205326412552919554486438090948942692336145110898761665595139051417658160531019157617834147786950524545708153978705570891281864809643419737889814957881172130933563223512387813556468633284542373593423632341843310200073077073427312595959611658395560618559743333276423386750321430728482570634110424074788102716092035828610308685316440143861021488876561654383679580564254563860004342713655598091100623756379192304308765479943103384966555346638518777344394488467055050174802203554433520429866935689813723263056768404350602743876908129470877175493356564685851050627571677597777342616493657772317811973127675816952688997889291735103427728766109555197212075978613518561827775867305383124754596355496004878666047799128401069250935219147667658485359339106945840084195179518202411017689174759523568924169038113598921309360845653082818067339427377754052891546712345525913065207561474200492563729584169407565431094876847628555275840110589453485231233339240463549175767840931171066675386075911381663341147789184850672457453203404449373626746295158221933786297768954640592214147335830265579519342550279273031610986926213610809349296630013654331667959573532140609548932877930974250968321562308119216509471953993130982436050792456439092182185354952827949208249650212000076694641834722691385998309508572961328770567996238472339080333130280409486769200088629081135149040112819363200121925057677082020456922880026983977692083102005882182425500928365324450937196488550095396756271311576557996368712699865171718820729511836051827217109894854521407685115353980182931089618428713812935179058002154696580493824954485043160137962924047178187275560142761539023370186435341480887018569466615339249080675747710187856352841626154259525230645845474330100118224552973615722455081756200305636602483866995299076012055449718913470924766382461326691975492899490383699153608188113116064867118076983220521034757766587063771043015086609602525292299204803390266080026051117209401386357196705677167042752417625697913379072819554656911235144382223613765655598817169603577794795130753755850034064626467336307891871911015907848368514269344979627924472337767990567864034129352563422222985214128271637785883909862758519643786913559854647272659281161004906424271691105198288128177856430601833787818479852323392241676438312186530977646249419949728356888275453102312025193996266894372345476186489554779800114662165467318526252421065806829292651010780285078140421618597335278066168264866752165161082171630996141319991175847741990436561781297019332562886404967374857637611869594622867623472426574599701002618649559365417265051377972515543405900538192717448329139946259559225758232604960913446136537405833085897467984375549327773074560962567042920121850468923242136032756571360385427879716615112308562552245999926536080292468394663021136057244050314911518076049019801290999738612969737004769567605893721087071822638940289558102629932505813893038131871454075470252179064521501496585851807206672524146092762730247416189202673898325329438811845751970453616294906673245936757022654317207897443349254391850933109086894270568162087185356084152422439771068495031274367965587870332113682490397129852865940192231943876997996513815126396055526909879620373784306504275799795596068006679646130609722660433587223560124294937335738635137445019979489391679005498750076160638454537600767822991402744128405732562598608194648574970500479812463501011971053939424573489267224038347887498444030406954427062325182983247378889241843012824356008518849818618956164647736256931517241389140208047223252598221553463297984768674643195764232093106248793070085946682832977916439818900885283343264110245491913141348158606240895839768558007275054257731091809507893289716317020636415436080854398856128871311860186492899099866461680015219525668680248586291736644264886987919837572262283102654126223337151155948750974468098206239776170519426082985724450633884210394754659738155082850004473402182849634396421639699947182336445187896916043981907582456633366281689097324826822433362776542912541172642202343839658278179567288184028617549449122825980524891170927477088619355955747412197566015755121463176714892631082795973407265921807525212579622587702699126816793574860802847861395430537876077981440219912596811161210184995713728797862635025777081078831311144841788320557574511434684469999402830346407650248592860870873508710193327584421022248985061819432151777139695356998155842958362838764593878654380799797987958658465019371395720267896452248170994569434382847525928585243049666685214873296626890797673966363556783421114497452664344307733111844125804735304100638853360487927828199076935798971115143333400245649749880898595277697444010853076337630832452701202603537899313624234158314336084400622808796312572505772793210989916965078185212334361992890556249788813462074789911243765704545206000839215134319205009080923731396690131768534915515410148984381377139894844036915537688006263195710827763662033360715202946741003955613570109671074619154426556831339494475053899217819220870997469823419255000245139788002793260675668736986034557503768838184238220572917111425029647976040573920181517859071232715588363292467842893285427383530393402445563442045183635835301238097183997178274787533061106863078665379342148450573829690506102829264655126044886040958342060080290855324642179005329294858461262745747521328587333201263014684001324737759367749220647065300324639108464785268684373791290498436254823554168942713709551568172412519681571665159082770946311693292945667765483132806662846722168585320869013139874188733118979641373501392939635743970760183517982679639989068864996278576554887177704357710851779883617976579198420301399285280940685023577919784886408249269047049064362911304589737651751162643584993909098981593385189853958758344610708494300388254911590377166122193434562486020649003523047827674095840801803098936862594594019690424644394131471552886360493739114665272920128238835103902609910584184984569754213511082469806357170888785546308581281295475319195883882103179771812405702689431574357304840123518907849216792663125307760386781677380282002140115604854901735048911897690694612274985971207678351965520216337793602672446467355746711451962085216742515195057771428770575960787508287761126555405043444600130660376755687977028505502367700898117848175892887111533320581961682441238964349506960117548816150480234749810518470687099400999003529170433513038859482294406931903307515905961580363106636316260840118308271121237110993398024241424513966017603278670961012788073956923694432159568345712547362759796369030711726083646774574315238068765956472153220487996109350050910836881669379454557903635212690871876094906580969999509148142312221322564225187265119919705687485975577481082874846591928693537706585513593094779961733270796578259619752655997761122630165938581671651714922438788664150477840187360198239389123513842182058607581319721823524232803404159026163454888359703341498773823336577971584986901829254805181951015202347316194442224760667133333646928411503206236089147866971417316149069673880088419662084313007744237687369323050749778901126682010537545338399830720375038173543738160994796351153065975079275981619614322906036898333508244876388315551205490062071975766106933314055319870140078880073777591937022535802150938814847973325248039882084810355117435124717979959785191899222378984231356664778223135688579960018506019035734590299429246183389695603861724958724256815015238007697695371089697395638186191615979117415253896475078528142002737342109553363912718982746587231306256249281654956060608448615199517541670035860804416956588864848848226244634974234134954715997233335866643453029044805472723257223454188267292932389614871540568050416320113409199663507237677461402772595045957948343394824096242028272223811908290666443683719884558711803749014291516523005784283330410963239108214586372953242927750367660723088667177149979488183635757465306656535277626994015534551324869911579914372780555302541944137174444463923398001054057778302706929977913541981561690026937623644726064302004596110035680263711476175835203443700052029095599396209226223134260407599643528996074839476965279111278542015678342779621134678074359449336941369742767514174592549458853757391080545897090211171526814317662522612229903374984654259017043265569309540829606194886362202269924663082112922103777034895066579356738964028231905013718793475981494116629451464070960659014989242644974601690360934904671331991344252718926010928486916181636380626091252808339565381524006660404713714973095187506046955327453363624918944638799776735501527333418978727548717057590202184260834220591327273136387030424512075446029487913088826716640198043469101116460980222244719751595205036686312672020275503801056831417354266844748647016603927275703738430643155188826173551349930470857658009721021794942441528864264624572383627912934108603118315817070155629791432338149784922398487181724977454425476487223838345671768332336782629606190391573554937524017022858369127318125021088593852000711712895444612489481367748232862428538218460081281157582941749656913529243793281352282559441797904829646944724609732814562527722077033380693574605968497412792453970497156255237279431583667945919859858820542786485674104105002289453989488025971020440356222024283248856255418757206936371690158173311677941209477337929874853803651895032324767158235400944522299249638750943776229946711218522720101535092895842209348098237724524959265957783194899335905827597240617552787659540819086414564846119077488416566500505720035360824504821914640679736960589579373151166344274327976314027759424564445102056108717072780118975436653400755196168930836692672093083678792019859579011071832753228778066675004860948424185265081532892999765168319133154737004682609777683423894830129166547276999910900749642494853609062710312850520027547339682128525008578732669872715180283051118667240478164409057254333560026516752159925339200040564710136604061433152409864326600528138301866970281179488708315695076954148640612137896315588965976750413984423613150591395451516072661401975069529768234098641196315018407957377904618366579384550877554947773810483435974763460629997755403196274889167075717113389195033554023411703164334849675056045905349444703601953847415715097167490374530475020741072809391900943204375534062880916502649325378406145403383207647403008090118567677543627306259562999922845481186773263244174474505337114517131004163983501863422092978669827625534181224594047534996063033155291805307126328316820232729135936628731420706011128681003163117760396339791506527978476498572199720622218658966142095047921839456495975878079906588346540094033744776567450475350011719579018739853891913730406257053855464413393614941337861241872392750274198199714906869092189058902553625313634226645877100071250234864452453309824206548033510900229764061917876123681027818614371480487757097936789839578221399625753210845831692497568952769563291077697562653664672968301982146485978544222234327316049908389361499431362690864801080535449452088750992179181917228310188677881452185701900757963386387681086391435669477806752548271905644321931986096334346524555954924344799177125037092281807404137962474724496433971558328586532589039493786122076205050089945561740189882908531793292455185096259984027773607337471428151212634208624360692178258244932861937004638811908642528122589143068343814710128628955375811653753655277262266402722892771947217153608894224131703392845383951262825217950419871043464889956881693104154405735530041680953325276952283420365159941830342634692918774873563832530000932624895414688725991813153288311509319413546305898262721979672750652162084105763230476916266160088594755951748212469544236646724809620356866285844071372825610893685158648893816873007587961563671511508768677820051538644545490929228038224660613721468072049204042176257475012183388686571281757981616552390449842815421133760217839113444503392771569423684563252214571443569816253852594177518566286343266939938934840909539167946987920034981826833275863986480789311857305412943058210182012991764389141439172619396062876159720447006783696207998286404255868820571864575739423202411601779431612369058653054898580943414853310148583191490104585330804286586014313148664008554244997940168909541701473565358416305551911979614369066263247710509164880241422870776823496747114668785427945893861451208262264280497323505938519153431791586337651902046963208278962362316505377852577928550704225578439372922711028900432620489300275636478169118283215942405098000374343709210176994533285113114928751455312811604116411737633233476075550756521362608366075712299036994711464024308486525044694461885366306117325391086119936334732700860709009439465904883275547421343432129076169653480024238279855177259245032421319717992688308313896779970217835951392684143967807810526928943300461755559018529107181014433282018045121665449188571147281501056843462535976017534381999273316008490279992700553637561075151198274378182338323856017788429813575319027691873013636802205956954881935230882000738204089512321934315245917275609247158866936048243987347245073462475223180934810320968441790213927803421079239877851527085464888083304814741301646024661145548598325873222002065520201776600994214830659911078843156929926231015837457515192382819247038283690524456990868154038504262837891714700027919162521722664954895513960891404999359415061556632736181202593087741028610567071115404528646935858814620602505227586121429847123157582410242006272994543427337506751249740256533911813692139320391357801542382594541980818903576032842686078275374663045048741285914788712843071294504703307259956773638816603923555064044620607490437469668728637677529525464438652556367306119189920642088735889958374172997555018186802020923773114021225845133596961426313613807256209060079158019579475750421294135800970735722688525623562445132288582392168511764989324552428401941773844446313674591496947181374263730747314546177255974377364438708393279827245600435943798709681525710578371872904145786452914770177012352272811644212751416686780413274993644669697547145007168732860257427863547907100042293267625328064549451873960339223553694944887163947213539190763443383554990099787290781422557856879262695779204846048585166972896860332551355496843794402235462704677625054410933948591494735338257462098632077700919738279176739570450938545099462734437091594569157693232162959852855821886246459592958584530710478055800741632463845324262734775287063285670678146708317350611044318339437160342319149811409660636683536359197950269831716765078361005723899389417968211186859925160968967751906067335791333495566185075607075564447096881422165683011756388075260187330067440919780307595657596834368245484019864567530612750387804597095468330027676383340465980556741724409727145651912805710312384024487493458009507136914345447923405035317209512425858445614450731784919214814669349606094689308523541122934954263386608786688232504520238359654743576622636001226969759418680417437741524778196679465608596286683587250034712164508509339962355594545904076905800621159279248469053663160979417313086548748918336926515091646938665951467428124255917881062897266982708071502306929702786407444243384962673660791671736646367647169153847442020069187612054225772742251581106250483160918798100944294594423338121262758528631459167687422630346260599781477790004448698347137498574209283848085383394611959817699052194742079580978756681183293241003415250319106193769821066014284628049891410810219781956600529479036464595570204124474297249260763117004708554897459465113667363946462879052879430096342642524458541868334359498038479242602596468344702044214154270838506523732719518336936650195916313054253468093667672977445806508712963676633838956456772767078703295868418182569170927393953603635362702919919322721121024734473380945209925556767651628975434074236135864740158321090910641411381935715670688631067845541128661314263655058059200415894563562281822180364158380804705748557920885792568692296723966991244833844899964579166757681261973713312697374178656670172896304783296419463225742157352495159475918381602745259330784016638028754211521835466399723818731605729057737626218765903498797856848500626278140396657259668166772529691016225967550403580527240099837369574503351932216768769391790983239007416669464041339558829932097549396063362846253442389469914275047693193584198325879300022807129210501414732562311496879527674207422241598114384361120187559263208110967263554470123918640370480801445913601019101041851870878911670207026988918810379952059125461774209466324539690947130056660961674484923997885629288520063319553203759256598027922037286389741215352599064455519245598472652366102936383419651166117794691316564895421370649715217565877611867436629819995015432395696970170182903810103407294385843738500957717007577815505414125625381722418329208179681151416973213140046763369124988069213079098088533389238025389132691257211914858433177103348581403236474094466261313837791015004682070619908871369727403757195526806811204375093903880482693404051284690065152314355435487368038054299959404728490745057221696267434482267882311384733226027873640135774295780699088043858337716231096630203244125582646193498783883944169107001177452159902437638174784436433712846926738737283887243956839953721377586679476280515060658417315609694141116781558939467819523032445416717491940848195176989356030764518890979520736407357266259044971130623967131129518002009042734811960620873068576217484751065879374104961732666902879503889150406896502008362801115440957457390398875990237452261711419779806284353338148204894727104455992360907548400010492490765781510003754881948116444058278535026800962727338846668503577133173504571094684016043849622361865768147113136993289273453375271315523387641168596262546743852678284546342867816083657919758932281501867035061744258885165943406743291854478572526454249199845354618034534168576939910008843657004035392118755525832023319939506696566619840089798513769307009120498070724617143942392966589549990740225545173315936528332497232778042019271531254058062977776488346397478520876379025403415541980603198703271191335543899335841327454070443952036999681350675989636086357937202310091661219133785176309348296121948292929400866294368602940125429369439731081128454697598706417609776584714965927227829399849806017427108707192395798577527868713787398470465511821195343199803671519501587841265722416202469341420239226489172140807008226548015484118741847888467431625845383605085567905504221582869391485027918218505546519977874819679862080344837523653132006033782689427214091884818776678205199889699852695797948862973383699630762496939298000243782809602697442614788709575640615713269324994489787721447927600474329193228085597812593408434650941580968598272593455376608372632096794368054550317549809670107214730991304176000647971270141831835089907753357468378606338328055421679624903238230416601782358689999428097941153220282849167833771712732020614758176830363400500165092353098003155735294067884533324651239941425355226872936569458586808385665686789383441940382944432338076901010095489489272420437796569915106441016103356239507447618846475945202516351630886370145344253599333174587915997251662097275099367148253014141657716462475311149990338195968455305954019092168674059304554869408791309349876591004699383201407905166557730323099103053025516299025514622758594092185401698768374588140382831141605592283709211743573057076478470271248039328466114547879567475606621737017616621489236813212343139922564366764565893840120940486710876418431136375632120984245354394156145921817401039932820158856777197024612267371512488106147503940901143784265556892630666115927826011669222263929117243054314379865515438901866751411910457095096507824594466138213996674937287873675133787884536009102355805380951823910792339763246661670454424387449092811205933956151559682618969191037726597116627749141902891855507275213930440432046281216980596280871070458492483511500834632282676347165812624423865462368718684046864027316995910738306263358855216575771944312092410600648408424771764154917337058104215263275970270764109432827356938015902770814684289543889603866301880874341145324673978820169494968227310121068599429051752492301769083334896826519202621584731577467165733825772780686731136985977705085828762119692724247673394847383592611455629830509283610106306597186338032261646321255989817918378118912753764043506718445531796182379777714743376649870579080437811340330458103891839770242384094500434326457712949079478422528548908243500764107440524399188839838634776790419896122555010699341069786490103085429779534899097695331551290527278014702927203616583687654659267279152465249316325141639168019487717435522159442858888806515759269925171963180646918331403200622051762690841228998374184901695413298284609278593181107922557354515174665745957723285498652482858115736231449301261060399560706608326230970319486444366830579513036912078390796738160868070201363629401146791519247112444441651705469828258797006018765073810172137598019314099926344212994444296204060261295612340234727820037185732943839549264690388952920387672241982778711733176804604215066835220975256635912115858810965406833895534895455204128051147345002454922756671483653748122472743822743817071963304808104653464569246018564630791853477387806035406848811551110489920962245322389801583604250689850367992487065577030325661349415191415717462432496122949522112044348801186968242094872806371928504422542194311110188256670208687620682002926727261272700198406323660590830194240676757821726337798403655212585813073549283048800708223189474177235233610640185922507436267364681281884770577483155097639778815017875029635346548124547332164408640895055856611901488620211223238572410669991578176906062814277845289665073375131706141230710580947996692222472204284561418503018247295041465093310702084523819848630735548136708559778097478364724689483551533667574302955028487521213471031873282112433152758112096202927259432860195115479564800599932320290948220391808876389475808958574942016468196373320335920092233323047340480359597884921925840719956686665374647412450243113950045536991439871945701424694808233063351878569301020615077664119854230180908028744956758004687410792666073550777985224399465759485049847510337298227006289774293981494058811770043958793763421013015066966358086535183201705410387069290196383330750140779248536769147951132857171076202586887197375180323394737557536343207742472024150844409227955616965767746289595800028773734623398659104106701139713700146070025684440059523924512712968165421772514797213394440794315015238599642544936296555489698249302605344866789519325292557556676232326655318580891307570551155038254644672371578663344095739443950245777522721404012442629875287952739147586789530398381439294022081028042407709364853767890703154013182407226553321208710865684330508922816637636143025013211616335308156271890127815764767110201960024966689840648121697820779258270504470939949541457482162595155575990151815154431253014656337031756453918209833353852249947335058835920021785231727102460264695865861418330667100633669812660046738117745017270912763032051572435584103325382631997206096728437240643253774016108492442836845003339130281599945850136473612892985228352816871673746050151761743212359819201023387383941374649990348851847562017440569338746277207266425168907528893451772567457527146789621319091051629428026708458067772162569529623046105259503760338150275075829618046610526693257980087755537670258264949598512785051548809214809147591427594066956852989126120711314166244338297359579247257722556358713436719873318882392977288770283937798372928931152623192058494000299234401936949805457929988947560313359946021635995832216525826772039055812913679691226993211618509564997182522175676187905233959394012502685327795237119463840288032522147759599652294971225794975329144865732227033604179291241355107377161839729149123432700259536174600054321861824475022132258939655077566505922981021069795980472853906506565336436882390305277117283535750871704020484241563137473031566864704255795903991878346649965326427303966941021043910666363764411818213916817559408496820839911984503914201118484510437227308879487611620466779265603842293410610741047858529097170871813537697748462760250353761549264796167217213933471959694051896435518368915061478070456082597494138380529122273350906228603161426891145762483715742675791556254719752186171818031060138896498240649951329803278749482321070207916020419763435164647439075941970754958866864443604406451481440180140922048732429408674384239929761177353850344912814321527131421340925827639174954094030649472011739147541413633359952083765158213013848897278265632183666668760464417159460255597803056957532722742839682001106272772317215253830499040190454686715021111390416947409763394973614043473318540801659032752508441000613476238491276665862366186518456769934273034697369500221323304685719269675342933747467728039415024417515939519919627846818033695305756183306618252827516780943004067874408302152426879695198543133489664789651763441239274703555153581906088296475391501911715719412030558711858930384392505178288826327012604131866759172871643390136429754700236854525325242111208291529966616199700361274003849969821822052096033270188830762853006976820220876691915978253237515342321491449677468972953033555457177244974827043867046183794788101863301195703205740153846793303849841461254436670748325901386934064990957054046611657113731517080530097934716515069494363445867576086591949423325239847081522503373650007515239522256670176551895924343662874015564829231192315039788027843971070336011487956621478828858094267486155845699359688564743575866282492207299654582291698658501702717168013514065725279685512485479928610214681895891579837625165992339349531789940421872565039910332944888490837742811314457486455384286904198249593035676250769409247690447852758292525981707734816804578466716676144469726751993939490274217442724949912189088493589477753763957517746410483265767630282740967883780473045753389571556796029206379578388596577455784076905073774655197595339080031774695227572842772061203341576490613631528141712889065619504346500893428079884221908504187909552540069207052081494947291059360034925516800222078113252516540825381320360057291479036740990638308739510294142624990206557305231576516568433354547903983644170066576108587275051683696944702530252310246604897410778771251948738692844892984911464108106887320469840716002641044658067057977274670866576212341245057723777291190561965040243102313895265935382464689610899879760945676417914870498296355656979581640572538237613013623424113285558200379171078267810601629189457372470898897322147334345051004216417438459212190077937350886310010573323543427385147476833364910081343422070427314177520278809342121144883191797949348413146521336383286353223061045934658577206760968716012595377986920102714884507825226818262226762239061333492455234668441686837957750268934344294271470700151383407592860533485000420441475733274411343525670187583558586225813709331319400451452618159930076231461615630388430192528838507673950896953577687964071366151646147062783621482494177772877296761696764674265121790946630398730886021174129169340563532089734753115247097990883394718942446228598374064988538667461145376769129656418892977520251186141033858352897432936757838316798624502257539563746108291975378163468083396465527211626039391200572974526129913745953312744310849146532189784854555175107778298025639427293043917882201663269740121417471787568891915383330577202102454700362463994442031276203915770340511492125434362692250618490281285141169270292159199537176003927166569773706795124417723217128341211788733778344041313780458253827052605361296319802913978042499365200960944120216288232740875464890221637715788809134663641998683863021999329601277331478978849093517362260993037838442419537250219433226439146227848303273424680533264400147061491089752098715848940327612131257091668448433356902957319611060505770761774822545583166474700711367534381744525070370051512581082967965683034069419140972141743854098304213446491375763132980393820035870287228636288941722555774857017731507936521306919575602753646970901710974681223800839147089485191920443481340091677143501379296995286871305777452448047695911224565392861639549757540415871149311939612294819198388851840522815375941675779542798385695565209283095688241023226852746052730601376622470380646512053386850950432989284630965853343871684819969209560605247904867526156816721288613725762756033268035425482612880937636295898129604267413926079876319158194229166528041497781026260784472298593417627762638104790175986408811435229403571899196594849061017021874478488271070422444121503359493728519312877208957052060260633756656670335887303425828784951412325955796015617648283762523783540575862375373213373740676549259962921160607060060067399831778363561104110223341441786814660899414229005245525141741316704406065492297377105223942312270283049695001340098387470599749744640993783225626877507459081858768815522365087810538955022922880193507106129176001885016809220939756348752062304388050275929412461355142658560744516576360018377996634778684428708257826762808011756774790923236767051694870641966161770648897306100576560367248700190059403299046617021642154087010546965477552956571644777015103559859566017312357009090310928455402304123148952564502428041658985054576544621199714560769519354243141417180466336341204132809360810365130292681002731618687950323580244799071638302619480802993459248085643864884803489597042995273485119155959328248247003309335879018975108811183854569542242823011954148439512665850040367512756758087234063915402849938067343532853312995384533059990169862394060521256503695824064377254796934265116750798830813356562450791819583486080812944514527313443371845903600660924813309188591032715376054950401324238070077362123266316281241730856127285991576422418217628925378278693952136829687734973425106477505988904093133969427167143196077518310386927760430596342590310134258834188951996747597431001122685505834085173906789590735025105626155111739342768368803855114544495360003089929555758677444093471414701880911609798793158005591516807935481178390373741305266244497123213139828128837010526270604075365011683537963242898491447311249060810466801176182065868756185614187309083441221129204753959308102338891195397725824647984213674363541946881303146224778375185103015511351994659784750339965600343556745825390451817019081297711378135570981436377905157614532878629839998158386551376259925071892492111483776571865477198772086828996221443912487268977242319233509765069085808277851091006119044049463711779793378770811843108356434961208858521060697119154839760390870484216922215683308728758914178597139281351108342521929085510343242806047375973951168871484426366623712356864329542946679711084326531789362325108927102215245787024273615394800780482426641586547356273669375669528570580682382280293822081011616143186063535137056037176107142954683728038465385561861995258359654072404445866011775934488081177189982641954519587084320945167038757033061122421181598249191799717855328109444290905639456386962810663002906026297731382372791287287507100462625963180132478200757798431923331120630086339386294990879024833734770199376835719158360420179613391160695651304186865076119790231845735738937630465967671223429573111934883590355904383256470271186617272686184305568577684221011883929033729329881525298293456940447258587597291046627173126962996096324621251632523880335410107667560674492227314867096201911028786429530067082513214277583259609986359742461944611946604650377390257295931842024020377070823717259236450059279823212948954609200679150516924108582067226542424867173205596606524153662707014217336451135235746797329839289550727113676264435305205587354412373643063533731136412691143935407255657919760271073071684794227216945413754600963227831804906226702580661797626406672131795458538576940470915496557032965338104549221327745894418851199752191408429860946549367382591353668442162277374767260609112621028048499140948608480701804913445250409223772729731122308931558540782032428753661776055812000105355204904822027919198974106212973382049044839674901223572284675362535091705165793360327124227833687531074663039979390497935978000729475923204446013162179950045244296260601951386607565155035590778530305571777111055592429540721432605387457648971269068212950870336568900379835074674477583184576104388894751900931079531692069837743715213726401236063266742880224885021865277153384252941004215806737506384026730148613068517370434744618879392607786377761965180347465561736801249586727000345635780547296415173806326357955385840068628434035108389266540744636358805198690984185489651040790727396145121982642357786763952888596667403301420066398576533054022801431258649665826287497212039983525572332999325946125202837115333930781287704028745577654258928204998162107986901133749964148008358784789648358934537088134247614059477387807843417624963849391614903933325556819895014024254809322746163304778508716694370607679671305056791942375691291333938221109433290309401724290530982221303317070629944845030193097489204732405640953537501569475537771565703791548898429038421095232792947408672239002287760599761804116291526311869738107073530316401733806679823796196893190833987662223525005160956959169674326009642661678114444665866815212573679990227722438462549775138504547535780620787028169667839302497162690316051424986972546914430598184559759329232482087312312788511404882977450731852519727972623747574641175767136674589176140084983872437007500871976481396044762776719753810279936898774522744429301222392620705922138415634690502704043046941136961092140784444968773387632118398204185386675558618576184320191960957498761657811212753795081872047945162977256930331093041834134131796037843486682725171580767392703167062340355097369603861012906259484534483474105444910740234962669387845249097630587320848186469121511001668775343222014595672886620004957796778044342630940663178712229163960839646679708696630289604291049114447471061090380415743349318489808084064763426709014934304626591186361436499624741502659368029706923488558258382109851059736206324322797312600197378570834047255112392248005487856419440734651666056300324805693504866683524427893063858048914060292073500100500523091703471749105022140610903868957722602110239966669766782823086434747616684974833608903274720165627903619369889617386151052429503807606084527100651112297856032751815606786857696845490565793056138297898357009396704191410149876977950728894258854706112155327498025858130263068908006201259357566531258209713529598051939599226932005628786658460487143006782046928092025390014404905881411193689244893745043080097234904519168856080250631456495742130687376390272687882865578307804079968892421241567403195482328498793392728037424089683771938343847324704214831516177089569959585553188787508039087006893934308816396044232382942890208793314988132415326477016129042602808270738910877797773439109578703100055227281887027599956230108491959950911360794869284410499932852075031073764844996383207084408676956021601815485852849911571430778744788940521606699998314892314310298957708516451340575440471548640865103706093924027920725793170772528055789049600856929041759199740646280145969259773285802457299197871837054915099880159975693938032369021484561206104038441772575960166955229834473414579239745970022893979593702381774371860609489379942109615483193214166177306072081595141365191271547378671368255992632518564151786509962001799018887946623224706206587627989846288999401251272875198999814052471897713407569654265862820540594092417863042823468326027820635196438274418930521377682183643018904583496852834598940697778607684252944576132121031365759489045837311956158031892256954658566328185796347750170768418464982415284808975731592332661476536740246740364157942452689479619838966357483159859461606255695416630708454182323643373199942376940393849068322814430641364507432270042058725080665972467815179519059769801574983912602679366924848419401600894187538976238741913893802289329259269667835241411176403211655556413154545506248805119819209584697964354400755243107956034713957838890837142053180705925922355748951368546646506993908965033418804342106215479921325136298219904421444418207895719813847353754106575614041897604081332502633001281967012820209100968525500500424931894985509056398204565917622264577426725891936287648925816715906498953163356794422757957059660255688479764589922350362074085072020415574136136104383372101812790251268968904328875316502447990874183780874228698043719418243453512583206375695655340350323938341604198866686360736153738524611727011376225831609799263730597417022963247551809329006548909525434023942966979043437358205035801650533612338361337493833054628786536463100382793377218142737353974516659210777469180935815171449507415541441321167602583435917238975360051562046689359286059669233108370200050257082765262986273955288439164956691094092288036784966227426505254413104661332115282483756188091779958455284485815192797786249909171396359555921727982680060265484691516462356601854487420145809541475370142532026857750508937540449330478908960640030693258358447800365817163762637345068586048767686109924499420729395751666262661924033070719412138615815461675968119211100257266022707668197869862621227459474823473766996098570854750432736419122248033499104113408292350271501083736337361069607974929853247332369271760023708296250415950729443884930883431965291000942043353546871729881670817191057641328868644865511315829375020992566607669967999801428308027369396181270284113352267633589201791928293898406222646606054707056494159775045836148668939680292602083172109298402036607970421124641687254490747621461617145693819832748854649755533613060574673722990107480022119071176766246605195098152533604772827814810503358296132950454848233568201103896505669264340515300951160868533199857071467680573245027150666644979977646578582780584185118170950467624647385860997692900945958127890641685884175661351698289701603930608723786861896685895066968396430121372305403708643655731793339060364852396831805762285436010060051143751455105133358281646531652874224871951976473442657081783551607482874948292655217564357889796266408224270460353474720224173119766033029275054699243664758870435881151194859576696878876765154085732551906692588040570981694503277372055596892825062038608291106731593220446463364585636587691156297104491531157840569834335592618961141464838035068039493106536669129416047796538862845311134488459094513756801099453822919652288408969927206761212044719642423459298009382570721610056591096989098143555401988633494634000428818025910557082121423178297756692982548814917232532754289024073388571767387390275911066610707376891593690591024128673032604523535278023595325601189895589542668098776796780091328802555593876454043982406739674697027340128294452762375292977125975683906714233531607845396498268187733069613812297187432681210256598833963910104206677808701868158228971772077462192422608642930314863912747673057194091658952736051918143065321306115899298604172626379395581433483372996538420987137451250435934803666917164555038330146200252905421408083099829789539291612583332750564402844059462718374712995564482174178949820614864759814269554343607023093863871031388100410619213370701911361561766870726025259998249955086453886378385713434842529480725773009070704274793868953057137675035458841646902498137324086735702904788075998543376149517015153034794185940305404924287990560963461495847753202873409294907644165978475007360110983782690788797523782243731342261814641978647812492187129705915500102867805909212964542559097445273659430711289546840204432827945466891722707057624842545798546036435014004797552645761456376835356429421994563348106234716456289516689727915819391305030580255904469179404094267661344762472058056108168733294780387306113442727152276462282790199704436107690560011831920601652498772000203515204356769726476027338601812463381831324615732046929749197861686164287276545434544604331220671995156461982376676298362266861407333961464999856434647900105332656683384117393186008226592958888251546312407230441824590346902796514754044242113221092334423768981399380544247723892682636123590161130219341715995884083563699744988071678320427294881160782911284245502334869206477777506637252527450253699598944729771328658450081366101675859619290778561600568814791549284224268273693505641276234949771245578655600338841802876136137823431428991169567765080582717357637961035745243152482741405495883626988335476885197368392229570723042960686943813698912699557889247199382957014923079660772469231167222569715255690870497484882895223447942827853040051698129038993974692192322471206985198689236121915030300932037631748632759655632924472499155825036304671323811348613317602174726107367359955261236751952865958260892176009786004936122774348705893915184740871015615741498641113002012169931799798183391929637606194979762516406543497736309608331589743516746132942602718897950284895468639855414102177684807406036072199758741114896119196673044117916606114963649929154114962553860499212462345055618004990360008503483522245784154138710993627779972808808823534401335141416026203196522164679787561217124691566592123573877549563272255830192182343063702008382371803016467142360438133337495655543680562567845361795554138220526135196743101077252195850740832559033221695848640944456174927174600218760420540874173924822877428953275283207816087786161876604358244381118062639103504652448927565123003917195849242573221380900821186122449469923027688470135453381256332059236056566934986564286068259833995382064591649338867164595562495486412169364997896643707527897548667910892620443875069049287990166864548276610288766770767741664291126300492256015173360586250903176637640745038949595538070591633868179025463257253401052575894844094080035440069078303094132781890674037860467058820266651167538750022885706640460180765386963873187218849388404605851824007411812853228609117360090580350009528870820683637670764105820614959396357819404824772917738092399987008848540826748921086800399594876082555407010115789538955012482927782737321290354507075240476555491655130823793659368360872816428577866404946030654804533150611117827314363438706437479907233504514344149488128621046588322142267276921255880498022313167443959415955745435843971566222180810715348982140665578388875901698426480911671849672244109013096998531693377029749437679246602165456164839532126707970322705595889401452817949875750975067532675290030557662978061034759483137297505111221808289610034827802395467479176898238429342248720113847309021019797204881488745072288029485814639139804523881822046601845163750593339689896435858155669087567876803582377725943384219989954074220942558575202057267431572867024314578050733566546477293247544359910898033722160026300144000263516464722060288949462031998790320080522053248385664196615231270110007275642068774005809500258260610547707233667451601084094316896500789777100175177330110170538249448320961168540557251017277826782461550854012460934962093183556985091232393592414567810338140958676781146058477215724417120287946365366648393798214800299905565861117626985645849444916274013679403462553775606686297753957322448376492414183893246905852658478002246265849393122066118253761840457723380261260615507247968110263244270587550158640122819362821607494220254561808601734146733305255166627549651394195807852994098474693665524386454792101415981987927691532455345473818534539962655319283394482370038274833922679744400646821617574225154188827580175298325475632729726440806336143065498339088371573575708236258175167653583674858543578858526153384019017075047873982139530400348154401464537703303929941750010332918224932025073196927711728819152156042113384506691978156454737231564092108679492545244125654578288853516641420499432543879825848052068547613987455825522448922451009204086453265442512642985303020500892156747554824675293205067173572245514731590185767946958537971758609814412767910981648790344029210978169114973786685092854843274629822822490624605328539471562392696476502067538901258153133794122403571280068293295366790261073384927981480158792198075186565385103661675688978650908627782748119206856038126946891006040794922361631521338476714088209876056502851166648438048772376028571656718500921010194832831458134881999143078317314463156465398941464306389289560381080586172500334920460145331914515282236377181347339727115892654789245431209872796277558641114930673131296428253376729883959310333980749340165750348233414969389101965272533232732935440761888040587333272763451965100598022905322394150410773374191714049307468080937961148224712728204507040141562139900034416557147272380196571477432063047736639600607684279983484091081127685113936559785736934829276975852443482638207028213188696544898120112311526311366833699965908502181536420972258831384395473959069143517480952592728881319249453734991307915928670489493662468709980911358854524491311777967138277513246044842091714758413964348261465265069923721793864757602634249540198934575499985809395066221428455458171681221659750664813239283646553795764538531436049195642368359614224590478951811736061088419552683020153734708473923636814665087687919597435488780226183128099195873958548191531713141476782703266325183156280837973920189652907079789920702333822043427517058274339621008534352425636921365494724004360836781955763213560047756769662744567792711150601160508710610338147621486122881002395536243631029354150399097140598424709583089415219976437380667066813840343299781243769753988178104693820255333050819771416735151247125703167299263125327861008407337173394700153975424223540011942296947908086483737407292427313264149295874145739003945089453707696085774023341325121655433526067397073711285711342863047678932731755428381483176561605396139736314831917050613186639022638203597262238011744831107513153995465471723841924488320285728347421547130956119908355909242257077124933761424618944680149418650060378937104253145618284894052836538280456543659031934839221229199078850357606930607929101889459780948320098735096474848629638333943576018327815306742222704669845368086298290885163837356659851439540004576645309238372078818897429652701824296071719771000846470709408024574626011979136936463481343747740846572171689784884078376307698880176313376201769208493596413889529794993997754072519491670767985399284599071678228162536994435558040880553364017752210509273816222308293232549238253619276967249620359502488701532822793671354342720973352615889061617604355995359037983439508258013316305626015835911899540219454856003485957335820202792983397921483502668739815742862112178794960264663727432876622795936893070644648875051179023173694681594772854452982063995532251767945335367738139472146330053895562749747941116409241707122989974272926809801435993384314433227703646630779607880408246275709156305503699436978321628630495170092066562899492438252779005568943854805014250856952677562669142885384731517325880609049523455392770733860261849105256306970792742989815731691155801962937796490061391638780730543384678191235616846317170039454875316209936582817947787774625633898326212083038875869282149348704116359909675254517877207507820059882922841651195044677985662486641588409912507984815440396585756318153405187534181862764950530570195583170461211575578263871020962410591257819801137516320298164373341711455489499047714993269891500019723631342707439916605849792414170582386955691340504039920229589865082081911598032173907169614400987235925502407037640615453188796581130987417284228149685122817242905123065897539665803658985287654165355439475728269875798625261539119085723950791727598390727568316124024288092776535930071692938756850908180020173156896457324076879633691905131463636281558606517437522635037720775415968076754916305995926567429321888690235597199838629357925933803485697396115579565429431785179283746423195942350752743071040956621957834260105160007248984421954591501823924929712656290865805155420219373135647945353286536973745821074193328201906372346800443930188901810165434996544615081026090826891036967724530186261671355025174172870775029280099545690728087987806503484347428260871364698948978415370076352363157296550251531041340739802490710127660279404981246920129850008930996872704464951707494930323017953498565107072048780478058091198199976585485842100856306231753571809494930877110188642900316546920969386902079045490999189764744218410659183220628852903925717772786305016748395974985710585383574865236753298685338789231617128816423916900132562931604617864697210390446279377712746421174455382269091110126001952745909166537628801551796512908749749496823184769816831687149864548973263797464439969370486879935960513651040773182009712984875799884181391333264425151143708350150740904972170674881072118762495279597795024202395960553821876821695893721076566904124558952453644318175708152390341266035456099495246670259070168615384272911807698607833352674545927865132456236683034394675520779328245674577980867617184259080045087042074779044199407897854832862549085899483380884039047557094449508985948978623756611456009407629356244314597066431021184445258779656050187783002825084242179427225043791011001525496840910015950782447389591098826247632620518550216586760721248755621018676156681110118815143163336153722333897251981614509891510785094178342522829840917848230215055384268755242910296380801316934931362131875254237564409256317086253608400976845860241832234623137910178394086536966250227012435128668746693194921955820415450350462006354126545608125335488206377846315639251698521622005287302786012657696688381575920481079368979648629306444244914897815833780190022335705320946669300703059637086212662208603865623707107934516205758221714746392932252585229400252496787319404233661433684752774325436245817946241566109922455850700101301781678533080172871081466247149835396139551778993405798050275207160378503396509553263719019185002127869252441935216446832840288677064892706157436914911088779316358433941079370095435639421340608560030387180240545341114414488527767142435766167041877510735796731758719831270406447350000580647093039100992499577365046450699589112694830191484875192429288443672203916371694691498727167405221203073227285561868872845006633012913115847719205147916894869187424083970975389053655556758778277806852128046893572535561812644159952929374378652196526526439548473952104212952749975032152672516602305510450422486044613110743799352790010297956373514319410770724684933293052115955571041113294503333525772087355687447734854459224076718887284898989399031960842150698578341005928631892359873361778893813410778477049609469725414296888313758580090996120738323749651085818836679971775670147207154449731233102103732902984198819938783257046073373752086668081926612752961917715873353916255683839848431275248636412616025940046886882917514953086592364807817735939150352575600289436173156411263810928440241566291789502894178443842226759098381730937900192468399845233127930886256114309882351774537343166890740330758697100916044061276431839697765234860481156834195479956849643300958843360152541035328199109641445996460999667651368515483222864214311183814747019755813193858823992703282834069780237978117550552120277322554167474776676785569075509318480013853055133085709722584822967880286135357065971165262092331890820670663045190338677976388789554332218711012431114648655027760993461890284818459221632726162781811743877381637424440956564759790316888521791900924129447703250284704852981165456835507527168517533377669545121351303153203604090003733574032367651623857369733096923154263525197940459193411837969453080381099153717227368295746254332885067817772725691287911780898840162096682535101655877449756239300357393602146608429556516425313091499090544952113806046484267692534201743654787609602685478209870879927750901480584560628952148767759214166856078622920997936274411635684179274969330304465942839219723173240833996184591454842284796823385854697725551063254720576905342060144133979398088379503725596239790693255043670006684990659759084754316966223075084109970802771336425587025172929520525790265173839588099064143029969280876210503465601613728569158145437904066136382680814101861590132388726314950444563906488541484552171217592740985525140311136213690376845008302887165569633980001871102179830535578597798056595945427832317796736484985655212883611781694016357723339766901458004193275501627307023585977238683633838112064990706811385222362533800843267725416444934836971991438538135068786823696506612048995468982733921816143123466213021042495421282269470230623180976933479128666057533193183098258167853146556314940602208341999344490213819795156948115222349861816273868768111525077247741355315537918792843387549674903350303285891441383487959818899049850495222344346253597659166938833028380152880160202158344423327248767095647551892175036760843350932432336754454632836243788588992333368044449056716111153684508652048370841185103169208765126528727459336103024308369231696031320744235047339312855561786799909056506990525307959705288770592202196365052301076647575421207167315071945311649389047234819363700894131136397463834748432222834041184913619143533042622364716927956056751872631191602794737510513639620241346209971909414931365373547008233037691205214647175529992133645809699123157574430258283714004284928266019864904981877364389418662455082328618869871634100404752102848958075458994847045163938312605183781815686839778814085761826376002920243665181381236685057131059208768351627173966577598205723347121369434929561598114047106690468996081222473695407463358898370896453012330200005298197604941484656854053029900817352716435590091293924292115869792322450890539263067894251095438568120298995726144299705871048512811140853455728527960855722499654872578308534209423096032412042761286047577901871796098948257114607141167533485727227803703948668338322532100172854473579906310831919416524987963365187577930451080505089819431326366694888535419003679910756990773502108472575514905065191936358044791248306489741095686443530795752224207181090047366900940123152221756388192759596376940746928432001842429351659063353640492840666721060211133307342650056573367010518999931637126793332192595025197056799034286943815630658720504406042896372335692176914935446629694119267847788274114335526640313776152856102723266093437335946284217029780629343526168638980296837726260149924278525193337550162325175114873379936600028200613351143883270675204607536022515158905480049245356740747221878658392249102883436741088759034309322459812766659033070076392451886803701777428510882849068667296362353483227729909698708448845595220988635185118869458250621710871852176161058707135081642862540413389721595009840053590894386320499728261396668078017086479065461873504960998326663839484348133949273496844408516979537094553498181214011938452065370790632677672126324235302897378636206828609897342302672907270775468916649001324928062126697739114541963521774588073735873394390125064494239484340364910686442741590092843653912402971159501397174120814016552054846758033776523485495671967094885086285604893044707150629542870632691232221409623068895406626945850165028174768830137990402537769915398380224596233285823761883243674553935116613501041895117031886991447327188730206786682362793536859050852738260913161517937489541909905333371504895980662155806456775007341101458911551692086531216945050214573316960408768123415913360913116952745540801865462686108752535379670081793311869484532318161419878490586480308644299785326463010639452220909221267983411641369520688130686181732405970350014205195082033843495718803765686165559492221040315161027052265099208434077150738249401371779631437196756099633546308013774616831651450814456916089661896349666637717228256432211936986943928651188255602916278161006026922889102300747870853040219324613996637213803844468404901095487538726743303483393885597985944600031713765534578483252807461564999709749936274804495477273167392545410138808413917561303474251711413617817793321438440355966177830417438516020721442817244691138879327007118278476124251042969000035465337862948136008175918852301444236299088662700614135373576606626916291220963261478916493275073021228471710647531113741514737745316046813802479231264801976041874353486631612108095024452903581139850597646792883141723875407409711613055928724538045968891839818967312988309704447450318653515795690008536451912512378816926322287411496898367314413858666207027539191658754931790607691117150937004902865190427801534952439481599496700176760058606582072096018398463686459261867440433290663954679092587929670678216186032766276641315777316242605653276806959159158770650247151827192764515319837218689229908373976412310648171139913397947313021592528812968924936557019166502871248586289819921417035253452933017582965167941026514757849016945284746614470900988611243133294918689462299802656523949303334416276251513399348864735594404691546352284797050175019999024775077501960637410197498486009755426758408107811572346713249149153639868917371307593134248739329763662751616910052721275790081903612315837113910508400615679101950361799139290995782480750769204047612403295339570764142066990294533304011734821233994041196394829004767341639642954241901310502747887585197119123349842335410988765467750806237441915207724945443909137530050315372626300182701026855766229700411161466093739140717035259277737626428619809821609623965168605376809922799586219267998519586794503472802739834796387391669436078343235827694120834856741874022621180906843098306508498380681243580718160526136402666915860153142898130227482844655321877902130892191239203017460726650347808067412278756163748842688038289513672598536925451308652097139156178740112193993475195751456814065123563589165658162972186127855124236079988560518393039427662731575751502027619537389989375470729289613064893274516127833002031444189140381585571421706661045055009085417908383156240966679587027902478865027788963472593377365860886948000302464062584304419793577464197421448337577650203372349338828550810657911605260646136063815483476923958606153464283062235679140008255564805372504465729563085340135077679104021009666973574138106077866899617867030684187708855609703204004293447447673395722331248002586963695711397132336351735428853483772867306795520880446025666233924591748573015907420930626700691790755909514826666492603202990477444479683004934502282806268558305436507530729652969409330754712856192308624822898097517777475584545744499996882807520421607161039503638289895261700765362869301925560530248989490435360553207500235144850508583953766316413236306870477773865535955683023432032983473758640506149797719344546682743958051089910680790832273637993945588717933905298440604196168739839612486301693324661832425958923978055008579433612063999570040904686047561382447366513114199815607805246073707992000737098321230564459781069662082989987010969809561698433101516046668016738127421290941647683414909873357585692878953427336542927166448849192044645239224277280880194217630050252079310926998840708440929712273725557186530119860484630017183866318705669022842200655423736802675166292783102244223205512359336052438151927911029293992222644385114660417803907225408196733027879596454424693420399129545403587924026401301520776154920524764510552693559451704619996923528386412761411604487254741151051290934769045624502231780060616705884799761120887149162548160944337203854662052173843042082118504601519519865176936003567787180268621496875623976865043295718775537847088014313352979844896304386389434400166573458889835932456813630506624041140010256625001913169762252070250654938780984511158621201055460346447726653050680280500287410109910377400861264572390048094063562286581572835801715772275340998327192355182800430094525002774053397809552658984187934231505826525268336205473808946701789132885243826079006151398578311710323976378562470884764278257524996183829121237633088517642030335097140340711785030017397172900727230205468731088412072884034191880624913986399272447790271027766542340603915559703845671427330757376085911419015806185895748486908981528509645942723016521410234218193773964973675234389114005160879994430555528641083205176275281267922251714763256900392360558881860964390519837833475965337858795496270447332721329307494007411364042173044726353761960444565282992910800234781072368827840183448144971581886185318613360181511246872327772255088575477532887887185547355694482895098339267589711113501132387328383138006276170484237087791009881289874192747947590115883449929932122750837103253019109489041863728050547008633354882701762404867147484005605214278807387976378625024380347564326494479984434795332903386120985177086436550683724965940851581876107715628719815916953202896766495240260297517721365984912905037561167852515155339935989196566757955584028443916526461415785468591115509644927270944227348126598141399915592935763438689315159289461237316571122065035488562172151474780691921839685303644914190349411367775445779387634987070656065282329209586226652274289302290037366537593393270002168261222171491750314307797024928107070414358765088000253727943365989837718762101886672589732232207148556345452191824214558213998732881509791004087558694382861762457098522147005904113259746531094329681374827943430189537414017156390964498052941520932047408974525254736321786442835104644113939610926607515045068592308213910217082135634597975523097369169385129460143280728195834805152009539728480852988361980132409298101083366492963649101527708497642168490662849643587236957534609291499160063838146942035486054667256638862689003006002541099361526533383667559997710384246081979053834455397062142840949506808160214884338959542172967973852513202972553405592421345528779554547970640044517013495824548673143587663898307916676995001092504459574570191245479740767479411149547155477951737859317333604087201704420131149424689243592539248815156442252424885125680297709125785706169625120144680585015991676675786146822172392427910558985233577775073084475459139613839194785462524139598077743162211898671897502736450431555104661031835929626432999979626924196142078792357911063293319002879278252452080906690367018411641145602153739964381708246699295895241207436598256315756673477970746115676438050726873211867802239851131814311197842986384219419157132025052869492720044400920736126101764129826228579895421716245543791036692963260682648545617500569893866978302372913999113117741329538182365195352018102028052313068026745323175882876755201162828522669399401681710709322639146506676547466644054023554977838346617430051849515686095847408900380525853842832636192560293532534209834847620106320568355074555951971114170554283976327304841878286884599495693721069057854107206866609610467480869829788799574435639292991317403020799601339965967849403398022306105919994155663542198645665058365477357231178305934706645290407293254942802202047410302197023567743125482479958912330440038297985390472546112664231951541624067853869733163951584206680290298613680667687157189832612456637328925653353082296998551728062916264126041794218901385841022529162427879712189613038324531755281643164727220669135026685321654761063985488016675772728369677252330480371985434483510924093621288020504297973934362208734272117844651782593358022771611479595969606767966731119377458034954025338743624150634832953944773369172182096491929398300100154989680118485703191383588967096501597131920832738795976024434954044220434537227163155314482237511078527615744334308067893012293952634476148233399001300513310917998727674425301770584350339724440797715427213342271433776453300023169421033155251574676770966046464512621506543897623325220403535112386266124674469239658725547752006307343532328451343421156169708660839784336673957282529088381806219397694510654506525589269881079029618872599406577079330131587822002630210363387453323451738499600686619304195061020623892333558830272839721448774834085024974872869890244425332279519427795187033338879447850905548666941660551278300817661052060752774610320295338944374240042978900531139930655159335347698716207452007911640139229515740797136156993442768996919471670727065365672130418085241210614998780663721491594158598837398465320140743770256864642896461813718058342642354106014538720068677362965778283864022377181985600551900127996000047641644025482061576606872727254569966603013773542130083791344928725158556024770953922241996570384076004429307463870512464029670314422970109034428878580779335362511148717691218403051899344226082558071083230614720034585825329009701399269123309772793030623843633592203660595290613734142473109470521005709766990870857457295945049545977168176947931843493998441137637785094407955144795238113855972133038635467314808409620772658443875264379485100860040921660316546167271461399976474356149820454667769764895397957264412928342356569895989743134267909671922975974415692180396141442739665542094484928852505339122827367473787069278202228706901226536440818870714374306512042292905282510774207687419828800594698827805909425468151134886669891795814805802452064653642914477083525613967063173013063326323123352483696271000454217231615833423999368430654063201761227014660749042012250446012509712057517893907711552521982414372731596350724499154634557340202728098940489863000821412956901570316987579129148910767023819888232189389545539176984193294827479155510863411992754155216570624323269021489958518714617082359772966492710298187671664192074768045756061847667303765609638019598522168963657146010622049191110586172766483662023696471901646385336813079546115774700530505734377642872365914755522942297018452834598645930795083628695122470651581052315585590936075064391928438746020459329935874130547729646958420079595498967487342252393026804377958441128723662368679280146433030035106836006756715528077750934889501716994500978825547358539651967988499676087736403909828381480792125408690621275945211027685534623737041020583599424770658091915894313559908753668654622710793291374409179694178041901059959687942009234633822445052427980059523794326965389873408333300558171265837014088499754128404373948609546005653577856265662783686841387020286736751624689416371082727975190588343061559684019796306334854622844153526099431847488170280186042613585844164563231763324441033746832035865866638090636592892894456571976442838142874227478551559605511667417613282834808156603144511756231775862943652207818563308878801537125740121289934904323304024479042295172634795564969274756668548066721033337639157925970430032669144956325095168716537360384733123082197202919386920660285135399891551169924873009277474868928203010752999067615854836540492368472909971466359982723491231567730312310209982908050522373558040595730577484761527757180819921596517889522481866008929424530320467057075974552728447993524941385806462719372896840299671436656190067821540416400187152757473508227836162621439880855723858352423222852854494949130422910379370008720950263767629792516313829145610169212640535694199713974520268155846694119779205694400577039964830912767502786874987672987216489671910290366994022063774985110036285040021520006767466848570146836137482592180532288505948718890851295599743807607164060595220283332875512334901262027307420815730287395168697175451824369007730342827107338372222793402926471163205366714049268679938279450692431830484477765824354069420562585587295043134822748662475027163364532402581927245097264846863929412358305546142835745639017631109400168414052728652492548539618172068504810272031095801434471974715936025549867214755661983371199920367590562460624557767214879726557776027242358940777911677259750763118124011980234336000268526150474552970542089710284464593663634169498724905092830259701425402021072792602330088509227776416374075178251727782498994687243002969087447024909290764748516902983906728267828108832439981892531064360217870773888142569343624201160707825467897211246181131712352613174276869099530647713304897367172800231033019729970486231980298327911246685202893014703229029770469769153468828208680916177115123550811143927719860262086608175612033430263742756723353583543968141501357929903220478511189510114887457408204503000618847925925921805268799181841160698567366922956770757779999539906903257981024742109632227818333080835244296715818838608140639584092129960224941361947217990146350636564100689553567413521372173975326053965506883681716630535428161931767606873257664976372935473179937219670398340567950025751741345687279664445312176077124952150570713365554234973985440345662003602545450659191635113383372436309634248425010546965694904627903886895882957165993828601738614380417049032555523045560723200593432402708084725656963358993332350321195984574508522666898223133586263370167850108737633215978427884556240498506483670311396592716502229367831162224879402646172511435897744265782228594011180984947661261422384616277895983938122115685889552414283203318558246697333214222119271414570608021508806018742159703319821465153208583894822918360742563750379859675750370571423438875077794247396191179122729531471258093497870543855842279492061630258585679099604767245406192486899645327578009656351373601475189463353847715901592469535171845259443305233315964956517264428061590532390430347024111894045635303158736909086199057760003579786719169885316025421679920644787452918147977198100004605808876370538923173440801681507777986117431461632352155704028639758171903985194475426322052510654084979305339980318694264068556656087852939478319320003145094752404445489997098614079433219776962381597263188409956607069248379255001477952836159587314270154496668820758250482003954358903190159967812898223750776442717068398659780565628699549830435676292500000944966215784534837595126317225182441359063357537812871079478707374224429294144969895333453047989966523063977293177818069978481026756728914193328587798077742120262552425740434157232312283248021719373984792831331180875868652236867795309481979634826864003830091978924804179727974686410790597413022456360400902865443301972640957493163080254526353387252742962207409419902149453714435747241356124457310416889739048784917686415056964335307097514818901031827438385142811080922472112566797688156827273208251512240212067224246764306010256835319185981721386866574902030352058862951631275387284955886990781448098082513911283161606826000256415132671597638371987310725585499320149006202116313249081678629921082918268970051805396179469836442515646803321296182642991149892146732636204567638258931981504108848159549421044023695193416050615987273809329999873400450971181860481485841046477066047310004218479272453879606943542255718529626209555406535249921591869366599796194889758445960630886783048287172769708929205525664668710108729172781177880029194844197690185790810808296391337409042103614356338222402872348831716606031712494458639678666250650016479843202519256176958578053479240247271808950330003330538102412324926696911343848089254996087300088130857044629488233632667334484908731746245812668712290994169064466054249725620758583128702817312916169657766354008339035934178148587702950024085758512499059353627022197110385668610835711050354210223039514853768531246797598946952421388164175668793453397998943196040555094819607120194209604064409630526058547854006554785446816062713495315530313598031769073980153295791803155642933188854371680397354055775924692943737701658656791089409605892807262718184587588787932826777987013699740048031702415320048407608538579633309728307824643821133722807359435264998848180968180633007654204821492705922866799220213913155657058216828621486581950616842576309536970444252017922457479600863575645529215946176579221303796023525096921920104441316667787902735641034436275481272987435811771041461726697948522923209752025927840415157795955722605996205150018258007397782502016014486423990747402867332858696661169300638589506365318598709677634168427723914644094150572781603224677261385772817747367209023925650187343750807322144540603377251380424779629006224197143094814937181213933069344664034359759196371190585409321580302471805507117773324394595739321720007511201907960359283522696381638366124902748791861098892179898654892772546154439394213904305216757426386977153648617958388943227584342406896781419318477234484342970914883443462055585593536601300480327583995055407767621797789823156492322306123106239955094433261976145275682583872875557013393565670211172368736840958090759768784264561139666218568377046970173048643525245488581362440354512140512979490518328549534693985312668473828403521770854431286072555501096203717734589205982173932727973516858934868613479272076742546840711050865384703161489338940947969702346589794285332591945226542894762224095084579226805405911824689632193323408164595406792513536768173409410331494109054579787380370153467299343887284937451409083977395709919682941055188351253198809811052922535920323907197537716963148371342780986100009270846651775637388474242016432649517548884041755690968943373399206804785850706754903340733931794158676622551516127292722137417362563973106278287300937180341372426980153794223221791780879920149452664249406846855947580307509221502101694393125639409511116335822389276748552240517607081335330267586772092387698369389696063354925964268446295415986743285506867174604794073766230692312682568428580370555645747778334401853687769570342367351284982479321850290820656881960358841974548202544473164202519813275843569422122067092895754106513353583604991345616663901239794336824706868742256094037003533225507007497476234597061004317645343099618277324991841173105278264735046331673015557670857379784151909316387275192500250185384688488090412677175012869152879883800312522012414271031864354824951953757815488785635111287394415616772540044568458155136320152603022498366104444560422347878578779880110042825571567515037223562803445093430685594829542478539790396088090044555474883982958414510576947642701172795841840119049341183688887820617934051956206175939742562415668340060575509142965401313159477622237037740627362795277439623493464284730712548522928226389712945019084902208831918390802464729571573889056224948632320547146508751396029090726680604924396328469234518552606461190087586762450317936546112446324029968064671227131588776335594229619255520378762083417719357566923464195682011256547081787047469874713481159794732916843425016383432521382409385112469076156859335565678191473861994320070664598304869628481238606572223495004493553430619352771688633055598646145171032520759293901654985355383774685245246794924922289823347724895450141112457328226431250824456140825417699607751311380459120391506963027143484228713234350282560576851140979596793626464531362762507659024343620043660834587415092912208881860985870095447571781231990470236099732086255637242915067829282751589254955624621792997101485160834256483796358498131271381483857339077458592988564998917859821900549459427037866304392573087695405244877696160101582987297724531095445890150170029034626720531949332468654483836155767858467157337110212013717771722484463828390755229070855863659953234344675977226804171018377146211847615078061895743744918043272676038832782063771840426166925177964577717817169791671556142174643949956089180628281181732180986796228173684932831153717372749016077394561871078268572265904104839632780296917303786892471538909935577159132944970855029115498337479166162900095395578798758055891964480171346201569665554958167823640495898295081413016734767989221245878836944708099360867188443265618501103261156035062568760084253546667128261858035040058400461276177620895326611298722982056994169318073997123827439187707930946458036476874584044402166195686733028647112517670597492675139725993317108860904149021212878858176756618111676206501540026119351677041372934535543434946139158900421735254382005014045027662984230493893817633841480375000016284133521374268974388792489181307810561049845885291417057571593768731979197783259027797665209934509022587560826029440941045711398196514297347955573366791144103067862462002485702163149881331324685033774623657561982636979954561181817948896776434051813416939829944284320891124547613335820276052131018226945716532976121319303626179447262702502660769580357570114223432820316378310877174314030445493869027944180716303246195742524449761044973620591399317686398882818439275201798504070940256443357315967150029018163766890043168842189966051290906053971412402733674703073464264143790888661832604395604964665044638371773631034746929021622447492251483806721035350427451741160441354635775478885458153428326196798560245074420482817051285094867116030567211496264330246654030551350204926303441822810244539250551748211656526959554365062939044746633423039402374162939220553796187448421467704129781866139642882587845347580677305384285666683608177779200858921662136015654725319268689687407101714947504215239424386482919332856768845586371704072633084609007483118525645654985451007105815301558741759136495327802910708493659962080224541433146010347730747939373521808636461286944032347108473004757355535843038023524801146102280361484589915537888299546954823749499826508927472021185407413581999658594489846592972622476259311156230289492936922261879700341743188702458821571446853055968147100362489835483427654381301230072435038283242795844766287996208913814168083008290541128258263936412074199272199569824348883243483762158914214400590562714178476467978474968033237937261091213413183846928656772826104391948391948616592914525249433494894009529702273195273579873615030157962562635649867425098309625836465025657614515001279468459410180092632986223963208283533583271115575732032067460740154650474726845480610121794487227309920605213587227184703888028403414486749552826512184783414577177479977592469697448208090888611200934861181629859239855128982458420022495544234064608642146407426443999663204212715230565722144147122268400199044003743755637656577928549123135200798925386128923098223859154370881100094907395227444800649326832932473998192998191411322135599298315426955717966156898300422517218104796480537179481808995612769185175854631297053012100310104353737575627021105331446427601270426713221631535071860766938029496689453780000818745837440509583677095079387867695334174217257078228425850365156805671947398550225741701714799359630983851680452981850941400494839760199368324083903310950122837037500533712838215501021923196085636235218061152651112654939780149852554095601055957312676584549460688975542144862486460120490262621771340215326553149575473882363878108639540104906657450476857707715700781852655745357687647130325493848806238647484404165750837852683708783818046891006477458389860620945250686377181582943903640161916924471688114005232459700809573385833380377918577099170607684194850780768930709513223997634612141227991138430292722644994996202817575349436215059844712613170154840703827174955296656689687771104684348825812221796573063744081918303232833471166317812670713223351048115844633068397627359396161404359803542565976706980298518714118096018739203284834379555996083263478331774062930017038290388243695044462207342634955964578702337296345512714309741379710541243254729043352886028909811356033715596472609186770384861217761225747821408252163836624193738558784012680507482143865874753850934222099087302879930949805070667057863157965111313958646435117864693412015069254294268088744000494139804422299736933599395343045695451863430439293446552137177441581026827906248945761063468288810074112153634227527432217789419318197252886088150126803429714869488594180672793477520486552357916806523954607783165405617234227912416055740054848842387801767461808080589014552456760505161110419077747328678455573939286178296077764245901782670660129784472627097084852524505371264307490260738869231759822789143420429434188078277036829634823457076382080609424413642470228112692186291064764438415211941510483843604341847094662759432977395166377992897461042367971317234767821748514219687143480842796005072695202663444060776145037709396621411620899174498267662720440659989461315765243912406913621360821232514242340894805686018755061145577869970917321330636870706006849335487293941680475550060117392612549237855342852818699700965722358474735379181806423810457716835783903147816141844182965443678625851092453791949436732602471365543313128506625551942935892703797113596860772746032196087079373334581016089039116171219561154847054055678126038265244650727569811394091946118322525813029020512137514454355528251152122438242537876107416027133587886012969983084347270999365347491403140794605148134711432410401603286816516742762956204250064345170349598829964559053524566893231849912777661013544499201246046648372104617002593779682401822268724278876832210741703589431232010117876461748043119293815987094956190859155831809673756129098521417280477643890781580033974368043595287840918790582363144929230123457070446796438742256111290072763462717753927527417718215226799357024043500935288621824293653783711739629127793900357839349244793789626907719385307122232207998903300076601077184963582810869953513315708859603517199433102924899403245513879314258723359829032352730388461461761569733951981767723692805763400720062173589843651726299895450746663135858712236222588056014067433329612492617666536942632454052720369350767372449447137282306629768295531189201576761696842373457275460134964914330012119923753106852059755564560035869624074548225139667381684608359468910284983038473121958878943427826708940532882704707196436098343773084982710161108004895228883686892309616808977940095469517321825716197152376492063062899605938064764532546757564604964782416043793323963624497252543899823961792751988302587611541842528523871781687027136205096105276344221030095075215633482073589872808364466246852183540559311030063922822299602446471601601753229818187019422153653038713512555179458563212734842977730999242972116298089000274445775707946365130713314157585345593001795009626435746072533563300963415696225993259731978607784079266595021523534228655892726617488402496754744852928358873258528238155545531412989041708626532236195237193584703632790817597551835747520740072592083647060035593870933516801198861671953787684151886947799772874394312954372622851061980530893198691418432434538537311678521185944967408022348351043024038839189551818321545781343607925212552660857947674344906920891926559872905610234397856401391909562321685194002821814562101261143321534614909578457680767867246491554130041378770934469012879063624926371224881264601789554537455067390563019339982700689962353775886893216491984642915478245816850279188631881736875043497278479498831060448740766320586914476853441763575467521733323215607080463140037443210014239197275011088933519636322461711333610757690703891380887017489044521097973789740329417341893755352411424784243701264206815548724744901146330260777597979905805341235302914238884619543106688047032627061393084577198071006823020549002472190159544256822127716622723941176143679005280883945263773770423326599785366492840896239080658933903448427738544411470958155465199414913694922585728059775740882105290007727100040779968916958815384928240968502477380573903469884119687043196225517708362911707754357179351106378393662349007890049979355461315963292173713968580439271402735213173695845363135488932508080819115054460227263808477866022770211091020271925362408507798401315980346213206909938075458787128487771104739243856601746604449659736445984942813848845335782564189203237241076933775530167986021610060644794199645719147308649642661962011865682666735721148964519893317337755511448644103598992907204282136257447978267998305707515215058082770379064582456218784154319406985557119823915228530878471542544718263251858879562555284525005524414713043924194772240115793972454772863628251820992294531790858728073578070615416583354181959683979705158577977297675205356813638400412572428636169135574486026929816142083962808037973285041925739832688660339704382696127771695917173332402671319051993950988515961849506707136077593255777395462066402420518295757517276589451296888202352483967284413141150526216207231887263132025598557801748581053414067619871100407741472607856132552040102549551304800833989540076360895755163452160396952959847628537170848719624747055296391972815715974209121837621647560802394276312673850774514560181194496487543714428367351016634242427480220076240533982465819199367343609075760241055188710129962391936194349523849523788508795534423446788293938373204050531809721542051612690006848584205198058662398583565114822767491080309099765914768844580424690288255314890125745494796213724813899326890200490802180699912960284090704183827234426224985955688228546767526863408603374180686523706170709318386803325852975278346849683266023896688603885739550930587842811349410194057246320260809458046762832859101879450162760705323269071106166271851185190255240502460211661334775047533295512695772787880501579205275434825522036721559183448041910286593166637112815524021639320554311532827574017446250084584582244643826078977797349463092154499085007163574560463226935330619296283446370321186640124416445981186622228335619426298218130651165881083500471282646474984512630656664750181099551297568462406147292450252515280082492230722167659874640682680000476106958513776240075727842924275077061037238945862426843738596681393831874070902708598285017328796546351237448247010651165047274690791250395628753927111526170610019007996191992255537159989636037770089584008980148634880467920604656084483050511791894644050768857235256944469102629405399247223924356068263396948546166622138629513138371146865670861153735754288506511879718814023787265788354353103462395474956122314568804966434160600913995789981167607812858402722185233998982837280282698057413089885716167454039310673396801272862594855201962694818037999803587101998296075463101890096714932686446688567900660976441330042235269792090542401623310686872193309814394255124455545836971071660922665378693652378037301004111245428852466728977131318098587771927335833296049205591101983768802341826344341265682364537699347422916870863020477694753611464143964802776641443353161495943347223503389720755399714098639343502452863345977337101946554492899080083262205832034491598712786839423380226369953425295429829697305699639757611513748942855055344800910127792345591012885771705849979626494556962079270652833702726068460337925280760857582616506679138057762036495026635022552712004442594311857049176708612522575384178327973701307727053076233331422239509636754171377802733477141954143033141117945534371020436291104187688359068120813163263448916268488748120246772651780837754570086485867339517053007872912972146527218265053354088439549260288422809128638790116109655774617489645121522812150325256354897305256521586487260080506420852642432016512104078034290452627763013305345778265230007441288790244667048730265249814784185405097910288006931154969762389465965152583219680239385194419446820676555136130867197544050279405759404851129579486856990542866315902556855393917304136276908594705195385099531646925820722592498964007109233184067499680538581813694967058128935195363320704124890791943561540992525166805834838219614231715018156567023377357822621814054940971877010075972550841407918223513303141888296430876465577405865517998591139456978571500785300830265896355348549817975945553196392249604770137980685920285354845716527514890041133509537594975308750085285446322524690611769958238196675275031649100074237382824637343699873490239019686559882497869837982038507611845596462170413344269114472246958925928367690211541640036347295066958113228736569865417070206310129950348266655461273036610018382239514779856869563432713666267475373733171377053995670946779281374779322352501300285266703146963713882029567441626044362067413914236951589613052740111759216020183414717750297440814476055251995979181893935658249948853399837937296551263776252628415033652188191513118577189748500562263384180268568840501712747116169017813529879545336674952722457802142346118638509241484508727884496978096556489454114615856851585293272528715205559105745615576567323622297249535433147724763514704450245394653656993593649936971826265162081464110000607771131242306915788589126989178861017371347683624161836539411563561769794915927676922362763016140364958890027285672094976694231252782454907944929681842675777506962176040939755994194643429425670197730116154333198109886034279020786856190034831815681696261416353934365579508476040453146347805103677666655543669596957094244336141791780542257621456276973547471333484735586326087687486079193114231909573094183376935898325744924501140711365622300097333816027615036284949158839724412735850310499901393252937557148455222064153337785516952154060790749524876163400358309755643420637208731796881284032188022816226450127308993355869043691039777527766183449052534488515924027851716573686233198926342404482906122170871421817255537802064784338172860131414636509773259855644294216661214609607683764125253902217366383192683807029135862331691388377937046346330511284309735958811447743470981764865153639949184673522610414094984582286350073752703851474744149261926135940175823132603484936341022961547940901600763243551082613005201089850685158272429338638337292497918647429081991861986512870580454367361244292673704116792820353476442299952507319378198639543650387668912517745029662294643520734968481568449640499018744549098213146839699895943043041738220562308426069143185563845424928303839477311444126310870941342529197415193870747363352774430234214972848785722361444447345850693024628969455048674274016366107421652369087566175106164084377565757767602390259093730704296272056072967973485276101555246171588710645530097895355026880183447127446666836868378818491117240433361708029422602121758087832568093503213479396757247531185001112033933820515502050935832795713211074721922805491002005857151364704075888517324802065457267025747831551938150048692848226296966333885475261108471693270484401382584229109409491583880047281137507980232157175914261589466518190863732040373551524924169282823875569813935927406821447597349073109319567497389334677935856925384232732072716260836762490997189522484470127270686771428679075301062963418338015111573973703001180893057834012341962044057760236939849787334430637724744160304061945627781307197357112478637684686730663041162571545252788861094468221393296978737934494463840123557708211588833014895838083291360109387140700846154598314388615612438985503204168578682052526782858864630028642062860870318517337856814744714515028709726765982339923201124653676356677147562354310217553829629568159179187140403927738276162439377778216336436965613761969951883728293311917383520041853677581122861483599215600010707406188249967437469205458959217883008631531567272374097692154345014639160237032056305593399756584901377059821944549589501870334837920509692920708168990016261092522338981998556045910752964246275137079757104948886515475096534810026563020830615938518902575018911216121205494703828236211338812777956870905314173717882939515084735589056081351680007307361312493781229698506190033986303186674577970888133570083164698930945047666018470063135639051031088212419541056643281095411212470856893283795226017338593305870457486213053658690446470980288997393930862946913138367800498576356978829774115330117880150539298997766571642937792803239053080352656320426028183659885285667105915440083772442774741843774436546834479673717168620537229566949610798941765237362310592591897761196822179691238451366962976028614468737626134217085001485760698803700707247442303909228465197479421346239330157001337481295301821336439166731464821105573408571795955975704252545109133270316023862443702592737475772228316509557415762885275512571114572785442987997212674843102457080908157386429336369555626924858997360540668197949011032823512410571238350524834097765821398538328143911405189643586080841315029481504334101504040862015619233678756004933197642940738632906246122685553524523732974366618857852033809436339428972334355622636164374030260239679762577164046876602864529522398464715291554477777026088584151436270098327795416241348567931104111124935088043078093354223669216916986111399679837154694302207239739468498057098083048124025634710496710782037529617500905320817324541166020612171836788748809700551780219603083898826645673807816511414347626719078594148509351495547379600206572660727030585166496847736682830685010980740959650011516996047084774358487506840237023140654192112291635194983822977813711774874533348568467066605339355633221259638615229711710803603803757582552116265932772206346708406265725868811718166833428204439327144375354142662898888637408935151958762991058781814062826487174640429658688004881252510713151344719766028370759060489960932619237082705163488496137685964005137828977280455320624987571077400140851189803709604227985639618529070136232600934413213590290702221801990098603571180812809332162125087397816014688093500088149093287487111701753845688867729776524436536543826255900842612217081406200609295566848574010428618956209020215644523713693850613804457940649987072287867415214719593306476082306184639623656987085152340723516846794070075779002301618650979887467342645991754863118367959111672433875116652006606184825928259041020748749828990043276325341389046524608381633722491090512239523079402416634136153270629984161205328680300902373384244819505399015540260251242468258763011025846856387750040737946359378566897882618174355589391790412605278864280670402987770022337616503331268058751195017995144944145723053428233434887702890131251095643959865373582544157158517341227894690973530976453936431439833828232010143185815022231416213203574237832095920324467731174988980452956761549580558281667609051614152525509082156972509132530423574607180277660396599857935894384799749273735713681110235775728044857206526265725159094374747189954986873843105614596519225187377729643430353825658604275263425413224316410066556235621502838364366123671393049608302690627041022540566249049239731916249106069868927983642186249223738972260543928584057578899583168703050912313227976247423667500549108866125128593826591101680370651192194922251472207511023087796885924269052870052021903482138625157223321054454210479717743164953523494863168726612511720305465270297380141840703548511235179698333944797819264722744960619455111052325923971722428080914035072685523162741124303377498612313166373752856467240418559055332537418660970253182485864355597593793447828695660369317098942780772609802534737855324809114952248697539880927037744276696058151683891012578073706681848988629688840409522015286568097235299443703221479110120985543362438932645924586360149454508575511842321217618354883393052506128390120157321894014629566437250142620663573984174575127841341290915799753405942415513709304968743579249696421477185518569766567870424606521095793686707933390246332952004760855148796744076643651933368115270889809381004018092824580839868567620678040523841195588239014169485298624383718830910043439216695488748461121097263842323427217398286818639832595978980771987934529532263204624909952942405930335985496261878948551635049252994985882839337965058028566634475968408339693895987573801538748516934573116843418285106120309162644548095206081426578528840583051500462583865287726904682663144982299882270440782424158387872383733254286364217291651296130382512512222871294715049605720480941439552970379636988875736987759282329755610608722253591963060478465158684987919947891462751980416888963786196146225099968915077150508501406752035641421719731622347540945458605187807166712253829410865930843318961912746299393479336637333008619373290386403423061691648432573504960157579272178589180959552120348277550659187566096439236495368784962864103585957336964795665209136286472591484802563071141855426662770358058623454289801127133407911370214636388937995024407416376728896582049375960571047590788180715471493259682319295291133283383404517320855239719910494948152517565654749484090034518990395346748036784434533191329082077690276840072980019858651864751972964153722889409836080279787121137542352192325914336205717142633970311590575639083790414664376450583291785657191426210339776403314717008381127357053150981226431026010540125447100173483494876992413629225156683701761156363159490965479445251556574250746538675240951955070875421496030306557180680768951862473523404938822242416454177075701023472408803356487791839224907979512857453445259715947507381241153889717422872956256245881331992619290744935869066764314518231988470688476367642930550430564874278709175329288834927617166247327891265419793020152946101213843100996851409202829769631240984219605603777576513404862792230066835088246103876581944952563112956352887972174352902282467127992445269615585845101960657663192913801782115790018462420164587224109268043245067699802979102433155733178991335186407615386977119129678376192524087921349070528473747637135364143406280254908236938369768125983188233316679265155921699934492633386255621805779250754184563825590028288914207171708677076619317839268343424916351178856727989844241418484813655090129640797005169950751352995500305871423392026875199429388249253618206565160511483573139025970748671348614497823043375122423345519964025958428956119203683253499686027716332764847486152010061856633571328878024006011222257563012701509703467666198591927678012538821587842626521863899760366398639532208505964970874395250573363819709030788547308016876473544636837352900380711684073193770411342290878506572090877008363522519862649505110886974490598931361843203231942014407445580561711089949719120800619404901915621974145237871068381177222039930411943991482565790574866483349628641625016573232649338687459038248675959549967760192952097139647960091569055201414940787123234690403754982714355687078845972654516436190905509991337301977212854122128855744213302449468511845563504999613446250935115814282643556138816094513074998099397605748745258097249898427482532344973343937273213354113197366029696246949835115700770071176237768818647568389951954163033414433828419484805897759547293987880817143713460264838218794514162604111339252504085924152350760527175520773775070485356141861826112166489516477491009990502070562636731799388838205987268338789458588714945475440695805758377383671271563594727711615326457895761739324486776747764682231060425221892056835288396113801272385871197878136122890674439411619758862347888784854757843995062185498440312236708752932609988110191049855714268492211867746283446464627415838406400542356367316752843151399207452389885420292680115758143840934125705673814592577562435107349212983638034317277493440333708817751540632670324951381701691600403673845389057360903148903193367296055365784881820860083933129539980898998946851672502420012068199223661255338838472045647114213167446061673722522615378564619742866216101956630109589142438575333586519882876369802290692720440995421623107410593428084348955687835334475227211089219425849294746141958509967045209907411984061232278032707520299411553407347592017898292522528240942340163174264109399468010370340368720730972491007493434708159064725734433935312505173635577882137342224769120052863396321592335737135407383946584326271584355767215391888242665406701384745726810418890815701957257099193183160748347025178219228460371541682252438334467689971456928459933914975630424829197499009998417048962378496349657187393093481134550559791768464399377318465063900174680702502404403624283766616930856475116876471335072676776590297543306464869809142860243950821760321176153006152074149484130894634140880325637317448293570133657554654787859276380059768321316169946948385980454328817300738279685816911572730200321944987678333884456052694792316094327480961598276221794016941090230243076631172398515102791136410237327118218194983911485120152626695059792189948426655094447906495492686735045798733336779526665263285075757881677556803076786388974010348447956673104376981885062072147469150975547014311016667868613171545857762852983319673734060879921571243857707218115409847643868306748840547644899813623127283002241834221539146786685668299535671338790177961322932751096878825717513483055446250240280231330161015641999209652523954806098816769434504733036629081129481101580896724631140108535230839175323371096747775734033217435564257734867242428214683050151795738375238403673464425520439140065760104866838218369064892569754333330385560216975714305713652637806986887579369826398423524184387264327620568265753430828479631369563346186080867825043789931818050330471131323768014471933306436068600745627348975861138345697629114339148690223985808288624777307857055849415430577047311398225909407897647008361295949488719401233213406007972493334505294318808347192191484674465616637999120424337948332478254278196262114968771330947088024288984621873313643929228588759910702286425451759132779722029127680069030707641900100364535916504234215203260914486043982791929602101446769498872544972554677609671517962803092863685136680202983838696580639765738339243205128123718503787600876697447524352891810351926415003735455123307486229272652311436617009486760474641682299753181766131104624649119868120947981522449413101057749756545287649858598051846203414766330268675410817449807930578754425580572592601561418620742423105881439105403945854736248207097391646180381125484529780454801875416359085414730509046465277296948895291648109118580840867362182291402142841242792453407826940215631596027547832623578235058265195127066338517614889225341025144484981121895963880839908632282596102826339325545290102117357276946551858586800181002618821873244772385276563261225659610047257483170811499090052015690971427153495343002803681433356868198394014961362864144093021965846542309823760901147740834702515317758733216136867103501964093559694551483018891939197475115668456311942799023288357208591682188012345737925729711489675937781691713953483168216276034023069091593189907319963701912986003097571999529376100641700427773048839500987698905967265337813836189157928555854747327423328920413517880693453532592214317344050213742002839595596821039936958773291892302292158228361267044452454528371069242422223632426475708315004445648227203147294098211056075847336046833695757804760943879841755187919895320877213928075579143682448552420054829039468565932138362910233508999973172918836146971947601780185011006042499344970486289314071577813500461005854296047780295813828699249750315805009964152989396588916092943127118403924759099751944748084805474383138825089192774820671583664269629953913086222480990824339596066840974106222528350839773630103219762532042658967093648791782705869651232162831821221336107505662893457785085118309806688912078574545138864474848763737846662171547869919452302451162274926172693121889921664084099328375850537728399124234755584622880604514313708104384482703902403557069762054412656873968934986404280875324567675402308941734140117846146558438689584093657405542943392594909398219153102376781305000355247031258945875624778399153740838275543960497385000036533366999506318911650976728527246739726767944368824073330345295206322257633716850804756088745554770631441597467106483289083886779488688864289228977115126591423781766516427460191975519929507367510158095954388263610312590480015978144688609536731148110176548670413495655741190872898688201431300172639693441062433606776108331273495042354150311426805344183949156295460641999674527351201617305680622713121998108066817836533905349452159574294546258007496621963926770116164778401565098705481048433176486631583397892874375236305455898511004185253654906582577837107709697047323873057765927651907621165054458972716132310347551491416957802249577635094114388159507945172833262917431664615940047965253774446596510536240525281186904337041402428622954718538689568319597179394722330533200942236640788305465401447219391564399755664634643153428591727819178113707735675037874731421847870243974157024330466303965145133590197431528225862804788497198906174997634024029635273727085514426940325392817086683699499069126965332231162144003208466798310420235059637986721668274062389964179295630710707921816599359520493951577024877399752756852954602684457579377366828132457714488764610597665174396283249713626531549947441965296754864208026123015131988200309165862552553861013174598837830630052593683563522134791677317477876749116333619233130288461682001515124068756884646842493016827273694325341727097565268729872457692286249756744772857215591677350159447869737027791930205434509603510904256812224869562366810219624418882691156565360509526913593499723188746329267931774573789709830698809217406717013332041944224247837988855305210284506587188041039914356184673900690274871424567654531254514106336414007692777930784285788140488994464974544541491334902280988601235830560843677579261071756267764536656395908651797810662433654129252282162881575303776948444181882670293856277803776785110139115797920329162604679122162478705230793834812283210483258698997590421762535068998219297009468262197886752442725846275461008782556402465531126517480190896231158845129538171232448406218399684297587057776171122318403098483124861298514884531705547224624387486235296762313465699298129971512620438448025137203716628717904542761049822201122786106234702902585621678712353521943301431768222120549802192130267445917243242444524541799927428583010471022767792608422315212309196952473955167450571197022466735494010206236935679741911181800692447122143321157883552108233249059086619369648605606260678028859119789766226353201374295357997338253413701834182846407592466959148433993626290248487517561339006364459197594610973513119758421734332099796444407273326333055821068503197255536938685983102870248478488447112580076891592913327856964063319079266859204721921457767452166066425116415533030449989813094609762031114820570240646658475180156139620783598724371644614658566064273770755951454880759557440175675056431118024138235573670388914950454354097808305246937918151101080046092352956450111789360858324028336012403181387014170117899303041455436770329410858097887124899267827400456488858112310511996793226649368047419831482891763727692966150626037987310682489159511244674454581349001712294945070458432898545085648282884608658250845012819548909448103190842679584872847870568105476420282023165254743939813688429333487020890422445634774983094222659173644526923494642119433504316470735257826469059943823278115625669343640097760199365794917564842195163250672675802271012989992248341802446767769384297711805000227573081415333434537930761143950497456460688021616936599642044431867464508136084943975659877219948970757248026397667241432801371896473262835027211596578100980347992921795548782566597054942649471943239427113119711984278317872643809337506305961142556204911114838431025608534566081277898620204599558392719493846643043367121768974134422920478773283134971396946785759129727993514063791593117302755636743078273444734942409298782945128618151508254348585473405812786718259537816731953018061992090870057300450849764955554840136910700699502336345804597324120460290910629245135585709977000693811645742444577872585113757835147842343374357602776826781281510892543328033455182003085800273186947116115089357065495202527833662159278096000315936840614338171679966357259885822855286101690186861143711185404395185105090049026287467901324985510398012643711730027358109448107190248576066240917379658946739671897010886728365912821952791948692702637305150235434344314920048779484702489425987064438824724049548148747363006051426056500782719754351309389017810244457892572785163563751922329898155081388920295806829489453199840441410510150155243766286093881203687639182237692092458057070039695761589763411692185709071548841035905143638094506977933342680216420292272993261651612627939017465730074982219365194303742266816429129860459178861356581354498650424061401882749183354074801405041602568479058760531181040492247000954972860685394771517623533348239337723158302674414263175031429704071227823245126045271457571567345598654111709896169785690407163317407912706006900269696717103241320208099787137605469447289710736861243814858137057234028908751361339154679038056389890631876194712235305377773960437201227408962833854968174756269868371310158134952857696079524987570888923065367429965697058593322116247657150699008987922229317631220624106412476305205259480706308879876156724045006347207822355782638460086377298044724101193230826132978786184792955350340272091354702370989726564879292500551555029195072739399774843389199762840586200327242805440480412019132240358368975596392168261117418377924587914953409304609573125309353152846158515439995964753389806233164044272473334330781529011240166874235963854451629669912645428536172018251226170801799823027712208050057488817245324206428530837772798295567670318053835577264304162470624146034665978825107730580946608406026230944139474863423271883381046477986770544445238987335095300045602626741008863328756253500788342848366243806431699922310257055792253990960511417284337582189730508998637732259257448666015760086771606492553826136841359832340065432605226387614036348742312671203615964398241432034794209444541589048988102857369654644999058589790764363693010817635881850145055530202181317291468548335378762542922170429099755603945330071813199364092147367857759309037382696899264940047952364383878608904534413512054930673229165781413246446475856798933753777339595617440834561127416417442146736754456583617460440695404174701263304569957503847479777663993175569711483168444302474545042717282127362285660961992962365281892495008653225783182871839913201565780424186566475986724593784804801135667972836686740679634298192331984910781038603507290914853077678368617111654719548482737183059479796080663896721674642618376801132467591932895326918460081455671031441104767972685178325346990868748525762299483253208687372936804218540815083802350454253413084097908189612213543826989851488904859538182204200596086363571547294628564035724790935251098745450248039418618486652066343187881261653185970446142366093727047686784857619300091085865483436287273998384902708015365113743632817385733390802103913608701825708553607022386707906936096731775085710533161973601390014540245678384021076361423315572420270956247218490815663802190987340625488354973302510471196545913029336290541011515838301011016719934273194948059456047854612319365625367884482894342834665506287027492750310080862863539358052266339096991928748065541913929091741074338066828828939372882204920151113747009222407675729656549940167873035906935354095106293246726843615198654244387220355172888120507354602469340611943243817829943106780495009397446347399974082229698760288463290130850218731537017499065813769268091779057083111211832411738243985391583064513934105995644185880838708638130676083881547246194938150222617706348824981941099233288810616728448447443875429752796172244921055601119262131292401734306325492091758172217081976576679016304438133801975240952096405041307023437507092053367294666835139281020424770165891872007849463339288414733071157548354320660825762378807316132733076358668517657091814796128026686202517147972142933153104604281681925984800567516354112307402389153500396301726191884656539952929451537158530406724162632463613152587939601487714659654328612845435083599025949015854439759018358177820902847652742598366625270883491905889994385572475482968249290561225235473108306293203497731281150828456655329513327110610151440152315938455753142243240716030442535929427155184677749781000711009309690485368122720784485723395445773036491110229385717219754863838677152723901789667375394419025138354892465472658277050843062055794019491083678184801819805099336814076355063859950343216260113242949409026607417794598816788073781724214238742741115935225260616800169892848495795532803690873110737008112664304651820945140750662046836857487825927685418535238997099437180805409919021005506483378401357353835334151386257946022475988255413577860260047560323319372273121194787579505247392678713345408662911166266753710819339626838542674684786291859618564634898080670128940999027111864435186114641586120226398783117024230861538456251448197717695459171022113860502593368189575831224806590034368231652658538763028748213953223270803206283686037116140903008601749193776100372473311218297823837945131708860548279931862413312266869842654744128109453981303510394054989501013264213009578224810817655385736252723096785615020180547176981961659815217388033612166893512473299227511904402026955771326455951725192434387127649145359529837008137204226326791467308195447834527022494863108931279238462928406402486153896924208045993968043993355912272130368346895194874081924794100863492799171236206256491333423985511099912376681929753210662378269968828328064411745553711190267251542030814817182733472948841562349833166771867172107327383629026856185823674776799529959654159367020140354783372444655989966304876280005176014843642503946010866088068848289279321960107441710845167340734334158578485972317169183127879191266234342315854358088942502019575920432436714240672845867097632491183990613683472674909350278806370659434569660768945942084409594923686103733972099172023095271659149953673638080758787040305765802402400395628626732234701428651586769689346391867595351094640341483343341451937271129842545426808763760025017953484372269503900194838123398516114681207823136171985804993062226037862701865151913664705113696477704616510216481989373455635918271151108662599431551485587505887257969876166513833210612713208561115763801932540040486245489116002284343631830968940744843113531333888029155219666892785473105266314692583240753983037376100382696740904397538737362945040186361964224684081342208650524202326317479105212251571006671575936412770430724436274352894020160032555993902305665975639112399506944107452042144119513142229079829627202195051271141296676682131935327203344572383881056828189371997672582847136118611758932974203595868861600478434144031839302545711974970086066674309101668126959610640964307418436444202070063317887573299738225397262501409141437752344859858473719916017964499788039816509765258543203037997721658469806883305420682038209822792966677219733774132300123659159812681362428323480608431581376281385810451856529885462787527423999681845077586859647697700241985790047764584207694723811619043682269985861352280708592596464177968175997394195601133563562629750242254601728333124694278137617250890229816921090187236344307957479029074830643912239416401540536662908613294996393438130470800141233488961099350222623406171756614773895548401102645110032940048160751809735018976915887559892020367909717534136176524918862035894520639013246119909950236187256056187760747746155140651844347203330860301793981078074451527836003316398357575330936314015569750900793861737435731428069047692312441053783204520419129931951339406419600426312846241481662112360606624838121456633273011369600412513862059585509801443478163888326728747779062237241517639414127424313784465177227250574761823301422269356999453350528243563661383683469268154719611736225371250689120413267783914862764626968444853995881034302463169976417342016604129654386128267468939867701426933060461029633022477108250213510872834420957580363081877316263695260460061553782183880477015897009022080190837019541128762505304994403540136847487361911272206308168870737257950699771749494298567998586481718554423349166926027653029513540728528967196368895033024492372041419485753329583518152232320156314663457426803357482167204705725953473728130695098035537059676136181775403034623619986153397201407832813079422501971617653401007115597089914748590507591098040210380652654971732404119620217209391468318483845090599872911870813119173831865292419723655397814127304143715598199562395160695058832916120245660723032923501965895874512450738701825965552080737662052324150107088309816537564942340581437617551021426346277137177790027087935972624714490569079804714190580117214147811912140616394156693025977485969426740715276863165802581382345170111709965029722698431978838463975809943499836645349289115295308941737251659024936284091016786045000495509874574885698003314987915718099427350323662232550932958947842701773626877789123620404307620977081962617947557670801033895557287866486049791649203813419104213046504723716036927331897649239812816574703361481572097183212963424339403267398891320139235702814112221426300116316590228365647519612154688293843543728332287528838296977458192526182741706848802843792043028068650750614220220694314979995601121226958118614028460210861748197659565827782244454209413193268626653121003511570640010372104527844851315958648841349711709494774800214158218481851051358891065905004470623244451857868390640840659393828859772770239165008969702590744024319375094487874643674577147414384942758949270608785928533964059829939550123816893007577760678752810223941233921557297139996685047677603870009483260816854545028834269436347971655941977120457086939648242457348198969678486173311209213433546391002535305740401794531328672817536591376092727593995818704427311287260418101837962641851003256395169985658739327589687321353035811221186774668796339527888050257126564334753115538935548016662230158536245592256990933130641757263394226834289137971225789032516062506751802704433130819817271699490764451895690071039495721150188854173213602387383869981555639671389746947578029536244352228849625793409054019785079750378516799082224293755811615453973385318376558829879834961849965144999397206546957168393823831254648929544771673923457734499525596080452726668574603034287235970664243471141095303085249792243606029186591927545246600418855308375454905877370756884350048343110036320511596690070330796444667172670300774215981880870025166068923003272012592973545100434651395582528824975745213498799890638835445535652309708141651676370339508489787818176697366851296791909897392567792449915816305046808489397685533331893597036954904158182363739596661092309851893469575549614021252566867319702834004174153978190074156799024436675374997795654184669396827242033759938978704439294535698166103671313787495534258495125624542186124802141353438848594153195452342092536723328182534400905390267226049582109016741237873201383089865853758696746036047196021918874995692302024551076816797028096168596539586918132859753309392970533194506252678196645496629821335068023967468964160085618065861364387628887347206681047050310665028170441587567451744113905993657859914130790094995529628843993696644948798464743381860851657637515440638088748444708857259946473367838794411250149115206629897120895338933170400417418636587711710104222611439225573381360623231055058730551656805466119397475815450486870767705572206692003259627685801364853096392636264970381537518629129958303390586800768986611213909277918732544489862388784095557312196096298952612716127093255659401696041771647076675363038232122218728078109336423264050436003562890524178164835113411286481961018795271755201278532472369795641256065631911127617793894975978338663028047204330643462995089860979181572564815153240695375867971682572118426026825255349349502225598649330499291467083704684778167855339737713826591811948643676284720070157225677835578547589587601366137420916820745234532754603204311359933826968820039077564410843778755052688974293723790826714474567946585655800973012748758541494129993221874811356568600567300351267483749397692165991795509616406060768816362599815184341391317372118780075744216359534238047484957922362296352291484321047974901391185261894175214015888845821402851177479785343005157750125754727188823608943381996353497356603358770704865730391332036525985556226843445101791241238923986883921821286779144267748042518359586886543198609508946418876083132833259984549600177289603150826597235830436013745393365826667763978211089906421205496181985053189645827044556825065036385070825970544371415518592107000163993812245138186542379145295565176830998557953213335295783696854237129370578928780653469909684573175365489701496960659067476121778774514727680762590541248238322494615103086854955383531191434962780694361854131066350413639816845585905405271311067311923256348730952117589332185643881464540575337484205061430923858159897335612024528657374730989496930133797989426242491317220360373528350695831102919335387089941506292402927720978809243769870999219123673356760514926768604365135170322404044980871439684552477015190206895241502968564838278877500236579161403671798394744248693515079075075100400154123214610018348633334724105481520692130280836004679961389103309425086381199485650513640441624954512220349393084479701062535201341220426914122118125503183228541995428273909259329467099634482135961291413287527337798283051244172770622526576306301443863492373354359161518416774704261565418359980868298802115389803200182525868581600457588505707243002192822680185951368285379178828979085644368554654222100153128846327364659884286146957493527068415555015835351220270028296761391680935870306122286643059441007414903472767106398999748385435546996176504677354824908529240371103075182989451624092783076683225678994630419536173575660881580026580822415140873534684779492441986115573070132314419001251135460060797526676679641043605258560116546499781448171589169266516335497629574461325402248913369166861353870807255056663314244942501930912708483683352045909074153697335876832468731987337699520301569239260386580902321485738749331197978907753657479989474292870689764324293307440637596008130877306200973193706726473234770750913009407433025966392784968094305522006479437710788914990550403643100368066496556345648833876103239110429901275533573528437361522022026182886112962505081591981441399128228809814037825644186149091852851781369444573643475754872326239691969949859783455558158201266263977139909055818917188105169314496190093582803325908638623614435503348303557592422120046558438548408906627930895023121351585969805248743055526807445363984615998919686591401653477510148834778696627791309812312572563816974018063084447829119335945126031955877577771219406272339815611886816286871045867480899073917521432304484518660494180472806596866099637200841035587966885753404591275060203350820478760964102649375200378798705601061175795078615423792518816234844330212006672070418489086127963663666267266635225367500744565828947097374562366606565660157993087697096009256211987702519692808414374308914142409999763427342560684609507588627361757906910006684037679985685178691495142058091274484137420073708178257996244249520051344711804155019930372492129140917690645977147912203317264932455888430215715436497591344303322563139400508039541906126158913937705487208261884613662957482171646104209970378986288990399394121425038329273486971488801097433847808970077305407256296542123828685573066646372008075732910884897252825937244267060717322146952090302451065570342772065938055159720986730456860161366187816940055874942955292006302551089829087151334242651124815018393011348995099228263601048323050546248854783528740166261010958956390480056422884221122775809694699249739484584903276863250672698962496221983318181628801047075385700663321484542026979087516230088444116423290296288365616125529885063380796287277325895259596381655413618302865954491430810376929253453406998319999375666698067891520475341662682998627181334171395255750036347907727365175275030146878406242782653845126707231853099694220363063026003816592796917119148276635221134945737236716746567803365044827871897722805325582861451061466720832292286292253742014447386824896229478578664642750668141259566382278537054952194173122160373168500638857382506536351656022051691559301520868143743565409737512392990779427814577947944265736173019378174160115043512918894461804078850008407945479058649613154295914451486770094313556997173413544109699488207876267812736789372366484185194938610297262992000622834587245201601841293719649238919885378772570027414832444536433786596880755532536149724074843939037569249822033744952074777552132587206955578324891946335923970887653295321317227172915852347078177236680374766711872860964692922735376223557502405864546021212789176407504442594469090404662771706242365857602260900933527524340502943960601714545439099104160140335488125115844561408721270390804002153133909990943720839666833532017236493715443403565871417653395260081869476258918313318888143035211630244113410206102363890683598652121398473535004513493855527757420373970822750866723629729417933390472198363299860920150585261306384539208120280501029456394146882845715731104966228069114130668536261048072240288844937006470932632957494258117764917872500223697905471737839200700307122876045645139393442355179466356935992762266974042395201457010321844161789328445628732967089158323501299882208622469970605948163190648085293475251741491152911567832106507078643653668926316957279223837813763256520679271016695980615949141898089081360926664054884373185565487722255917266040233653975127843263122840606112275900644300290827748829348890473927828531617138903113827563210921790990019628128184980636921634768787765154231622531825058771117105583559507166911236717958829935655627886634071892346223848376585200545737701275245071062745787586648488443925242147700576127908999202215673522606448885796668567853523384628267785747180465324300151998429413599469262678258118447221940760111170493546668600017988340091016460941178526615268764052673303611244618786281474908272341878414494213594183061861162253646226863931200721698348568529031643504141055527045827402852774296870363075464799461830515317214597591609426903325762345566290218317005511191663393621645899718721493559457649075047906448870589677761131873605947814993502166552113013005560625077153831266453920105538576315636033745493244771844328533502620031560901884486117679941955139719006270296071720702579539380166757897255259020308823765614851242327903846976977302755843189405321731829548246060509493411396789198678296527621505357257692967890178614047356031808676590911410268852419176623083183637668181325697415301253343187013283815517615178601022885281954267880246328800277386924162669491360675567611574669841642469945191603092664183067463839653273199576041145740073062600035585033877985539965041419005040075549242590662883848082393743203129025131128755332009554327610852885539027925819048088499985566508049454899802446116060645695162040456920941417260712240556381849128405400290748830678255700966298021301441490682680635733478349299115493837998505841019057157236140888958260625549324598393960103453409295303363197358752262146815656162006913017404661517030486409334804056939211205870620899374106943089693048725965779608770948530610255095863657577598430372957712186158284617243066085748213090859963247856366967267294428975797907088198841098866599771905868876475403136156494521320572291498785450064461560953600696150074668859735152438655642803833468249387484668040826985670801424817200198880170855475487344601180316338805494310961441848477888145847407931105996651775068157767674710925650325323118112270148747120351659412239040735680434557154950524463242108318203733378537898139156002958072202052646085274377431576029597158546204838351021895047175153980422716741106249997021554748954944180310804231888429112790074836484135341280637478191746323445645781242069752867809887355572399865020294230771020309190413792183075956661289347643437940302528969523911234048335411415866782688361952783927666530093385890922336611496735450006997676524446541718798156318384458808912250202103676538563987371226966852832013628896499875579257459193067017050852485545377794028047297845772346969908335943849259943018357885530992439020992857262334176918496527150655469843201395581985208743428487888232824896387266514304142097948173737043045160655130778300190918680023346028749105780966569622064166603330039652491065223630155005304966978668946472662247748156552162285338072793409841795633781113290466145168996952748811345589002018698771474546035450106295833125719785248379116364994969395353907900154569010005655961547642076368771466103723215923523430510780913004970868263509214934234143366460036082966154648779929741556201276276234840121639306919632733240565665918120495916929966865234747014326689351100704380728648219796071349348815250017794920072464578099635913683329196804823774917044069797668151174205463818586270747189522707670147059337878238216882364604610944583242407174350900599640236176369434681346987176520242849471224481197434746228957558062622218379072927743597274649169300500107172193924476763338273220240041728966832244829025160546644693846404680541900489979326578548758699047686309583776529087921698682294796131930660511972567570768734703657827297223123650781341425808348986646221725443305668798005934913543641134175240788313779966502892777773121363652662385732808510898393296126129343581852600780707538533562479430555901244723629765590516724475640733816552713626731938185768748072464151109768085115910744435828441954934274966212074183551276928786583220562894342296189365731587714184052036520848847342323730442564920683545322741471014739159787241446838746819210258427735637905294917872392428719806304320575941046533959696869705887524893296266696010158406600783723749943192660421832815362544362368183986123226003997044645180317400588903524566301843259060050085496650087909783084004790269245105541416635962376420678871309654020745201393001611842944167939742469018001210972711451187683431257451790695818923936505027036191817083479121342929703944299633825043369769622120620861515628851038342444113079241711931707373575780754512468392623781135524933789777261800532164865820065334377221204586821092450583851146731933546104504580823278406859490144454287523017059057372738463728397190436585881939366703056099892726965359573233779565207241082731461322967575437905628318048730266255249230014868790598912657927962098121536407246934372387495691926942235566357751013791838895192323578423095355242814978993946054112284370715457690028551992419259852080637284299639436360282296839558834360838462941128076793730562432443054688593621392332004260044669674058053956436641359751628349657656896146384670307118321672555750475166654827269467795869372995171877341966760019005060965975014754723838600761381857322604760029111123369922743812806565997676096495290603859389596593711657346942232773543993748037959061023554951802540100632210379366955602174953334522286080555238204960205277406635651084436861859127508195926258565319538603865927643533130528861900344821968845942653754787886539244621006440405660272367536337904131491293555204303466284030047554759318570089365157162578196734638038493775440954102454267503671539266939610158910398925244964247555165114903442851005678166136672170215207096997352709923458826848695479763267768678261584410673965964641272555914549465290298560800726618116929564780869636190276742187518499092791001800410482630483284832639235279365558866851627292837210854741751728145442973211570308732696344932832099685325787476683527193116345126683311384644249202659025947036893517657043145829181956676091692086393518399725461841147912895862016626610910878450770695112283440670410978033284082732567672708251904315123119247833012459647515427569457949375082779588700836704521941265504169070977275721635469547251434044183677960209526097831400978620872694681113347418893992659783957558727463529502191983975118447295984527484071979454545756517444386199868105046795708034759506236474012157665406980999151473717130679207518063578179995325343816987911800163832281070578856956633027270894798572029181021755357644820203807553261091892861612133389531221985633267813210751365223443257046903358954974879154109738616488823570627974156594617451847101830228518991321180921266782936141869192976942572565275282135691596333918540088168640466291088729288319359500574098608033717376596133739349695553034534680682031177927782912338068053979521128891554323039676296042563215769279867720563149850414958922706601427234359574288832733535725388287269353894809264727573133829629550986339232161288663498368183876589697208190673444481343112319788362896803967085224397296931003056281979270143175863754659224745972781684115020026677171473252431855362012431247537072699968566905707299510708214363612164133724013582718148405824583104792850355091037726843658858497015179194544494577628704956564974632992399240816087954001382976384452614306675718811142050030260642102292201068746435736416010261400231757862066077150213487000645196734886414375673921047621715672057339919271123879620562315419731567049638434506995903572478163128795572180107435514868623830056439169193437588245849304125429644112258343253052712594175382153886141087236534885296097747439771313857298967251611880514732950502142225823924984411440890678166118303452026433623013303058932716889750094056854833230310276856254255624748914000254892135070199348499437038632887264027124860180022453394136872724006231112687601470465213301684471769670222099522543835843016993150763286359822709406933501442590913211284662831544998483144643743696148036775115802859784224115830506800310054364036730359159811407701897301424969046559081318122852816516818506964881115177109713359124745806823109661678558436865028306969694227313485997111169001864323236436824986550869052459470130768987319468913271302892768110552924233966053104579333712803762034547525325679118355503979160787112443988390538251068123896213117929372358954397578058470797639806562113940842946568711363097313514427939035466625690043826901689812554261152400617716830612859985493876998558283757722927072184217465570148389333765432071779474343640509401110614620855706121220983921055646545827608809841350189543430237545447282738505314122162901354864293988854401494635047972684418189690253051565915323115521165102897431250974295594652384548183950078504631151666757765096055368902586662533237896658309847251446538332566770788436649628870098299051064030887701774415538628091532171815028717906720460501456478913888222867800788112346895208778416068919942119302080213128569578487829847408310681111513810928188588658244739468102815754898220140644551897867466762479350964657246179782768246455732273995593261595892752048685610216670837762831499781378478227799514645422645708085382226448909753461849955703520846888547182573484967650677970833115642591155623111362659736874322177127995044566947015410380421263778410914096912914244489646116328689682803326617795800893923699582588026329430481421821330952753934855581730166277482523070364616033601081370034407834032058318365464765356192984302037115050273631603288086243806265234493587543166113544013181923943550006181893799555636439084140808623861372777721269808939522513460432034384904487902884096249468644130701909252512429372389261279184789413438572577219194522599699559635076442555564841172753730870785957430973126034923143556388809156485343169208719281064936261797837538519442362655711336405550658981181098757479795859101301110462426618503360468836211831613589024298008208979309058678654137307607556573952139157738513128940357206623475001444935714797426307419216699914559352586660866131858402427676432890907893255723201750081462164737146447478889117455206702726406414615352712991963483011225905781569308296813929065764678359342369191289205514092657876796008983541922335889012145229148715867912483456768404302780019867186835600467371680000409721307930093083140885092908164538565763910404510269278860445917581010901099083260629151668906657514789838021092418534367362698337050161455194975799539531017368427847759813616700745874749936604870917968228200359350698156003163068934505140423402472569670877479727069346409318141144259139620334675465790708493550246676350335973974132961673121004667327050180441494445598082173660009906334885004995576464945371497694732200896401902544187110241933203846836962476037669312212815394251390228233724943700384310619975318640843115240635143632835755277775054141400385455938756157213350622500021842206872787664339088097936572893847246607843729979241338258212040989984561174544986948355059996146997743291863199542330089112689556063991123662112590882388064913704085225614754862792581742149062728235409376397884093738821466036082609077355535912514656603293153971098390411065338216761375957504128395922021394530585679534888182890934017497776871515807502169357308911662864111987232423203780511645415709844453399012610398511104612142827815742740173983781089202443011133383600451993233153523575374672317893363286450664672590048434001598763617690781683756722909691342681794918651020904614601831742117201208664309612765801658842733748181381083688996060094974981516495405855368544647612549766294321130128621274056317720968882283299598301914726015968785659328780805270318448881146766000101876468568656446290651388494536704400436516751025916848935334533738338835945149158275764436471525866081889324103209042737851795973027462047127218463425918815058534690688469731392842971411237451292531478904480401840533081434779485478171005873546217521494217964053345272355531150168334933110299377408245912783416829200080062576639209476533441875220998602957149678125866775838522533221267233742572904124543538980990514531166408532508359252408397729037033974544803368291612608713381229011499647393952700609942077483885312679310316280193217517257345623899745756910902712442874175309350737632547359191400756881240458456599552253925539029808223912700598382081976994919524285081808578018203978121366757038141401273962690918582867051757822028063920336999033158582260402619838886796841219778789164085077977367971337355639301303362163855652648651243852569935661438254921721282722660487321547839835240782900783489706330150919444119008082099051576344048780569046102608513692190865923650865723468381006706749276110774118840128134356286187061580174244143986785157836818604897860855973802059822728890713332344490386352013649758219864387371852892931678278366939864557857134857387219437066795184015294560379807289425555542431002009860221112738607518426004609870264361404873107684100533318691121850455380059629673417703175128811449963002674147776640304117178651380500356644044511616234487140477558494155253562685720475985348103574652347458635430147770081232364230699036441555690470405107927884867309717458134346346102238338452096791201139839916983969071856039202648557857854108110334366626779296363933492344284852164938752845892120198586468387003329539459416406413821839246540953202788278843101458848710077333430372779448401465307907386514937835071475538489416563053102380722629665045878663757007672466547853182869789151966527932759957250244251173265988531902704325820896166519556740550350876306758607508618988408766981452003990305811025575492155344095047849493450782029234291059932592810545711945050637710693577170662836149745526882855023062447427042542054417769350111643693004141822185620598797970641964897835173245690096003977349433576483641145103114922156210266330242453296966707845998998188037697835971466265797516253670289293961605223264983479841726629018689484300497251343389363530782139238073021139256334574026203200134937094798281231970585721500203286686122881476216966361171612170584630769280648352508909822682509534106761090257872532599538080057545482205135713378416788703404635579931572987795217665610532701105311507646935210983079247425995147313301123726725327463880626039981473836441447613850049113822348283812664697003747140223185789742026209955531169192289654269063267759639495655283836739989384908540515784230090990357735786979373391632473627481967345124986471966301024585297783153647945746634248984196897611378745653943021592621918258747531744554568494843482651586694253127455609143043896217713675805875048892285431637866059559370391623926794962347402009139982947384778820235536253894111183456084967771354725663247376923513379571362152310910627101672498304675054893294137496581865349091128205901392404055600233625488199886194791619903990906073757980622139714444237986056895019675561273867263874326040942758027457028280723825181964163313403539454016285424975281626623595313212658834848570490379833453678313101510224794353354464365847811581091309712475225249776854019503364215678891530021186496426746757022226754689345551545620968316867080889391421340870740166589676837081028597617071022830421179268432611603238909815725773367292143532093998168005965642635808766064899423179483988634952295163746821240026764300635655215027441295689644355954732827080830320185077502093126661096308800363078675272259044309319176082901351127709701966959007718814097660663204547606003586693282415249515356305391762125767731374351344488431372546469722630233814983216854782547601097154118969223828984401672257246972817011181337382351036346919666287109252091888754983206853799018918714374560724697357681569859367540051027666746336060782772483057864351960949758652714961108955148422282533740223888915194929800738454067996488294869943558371665944828106403575279411090233538685015737539673073537110645329971302471745479234222740031895634991882242712178564704380861410639173710607416970307795395346920080419371798646877775577912894627361461463430351954506737893085577214506624469121488663919545976572811984177179353230401841377663058033575865784036958442756010368795906316898116160485339845936152282092071220975705642813887943398028750295361965565138715974837655543289947746201823078452462858585074047614505083316646815474378308761313440813848505257680375370345106368369680004937055318756015668659231681575532198010599871187545348429467443528931738607397231585129848391385204273567646237420011648550172728657508543438064466517419535778089676423404551937286008376704307120743147531226677642322168582840290143670699962708720178689095746704157161189804507735884499664127945131082007985578686439726450387669157096794152405884266527617929417233368597123799862327580484544670762636480081622733249497723048885113409970528665367374911106362738961466350843294465917382809542057227322689010193968943430650390528557409536766825248362861633763341083342521432708853903832787584731651404448520710361956686023659180653471931625761316808719618830116679264351233311372800633141120286528551419744130652766756584960816849582913080659154937002150512707421763229461478821812808179979066102381399275698226927208045546067739751550488534328770255222661258611395199779240957712845605184920187688471927414320391425933440608741701643798261101917182566819530488485898407675247786745367543240553459453038742852462274249241792629836377226812484945366454318929757384310893592817998248146478584453814755063983433747312016113206400213277561809369072352724726786536896210728798157216836020139998405476206149838360525828317214467572921716185439469340607329522159399857381790448802099160197937660462025965627964796998741509739693599146664317255337244037734809853895079616587248780711932370477237943658132396048610845230973707779265356337977584397924060118106337229995627853641161640759719147020084469889345666831326537483947619133567899168411917550933193430447543406989386722172198880202753252323661208252943339011209622905808842233522999557613858535354499364358966414757662495616726756043595950733656372351774820227810943260989071056515599601562208655953884763479054091201213405864349533095505107476856151824537706421250770748109853778954128890844939369497757068125976883968873466962955633902252175787111245543905332608347088763380867040385654111123939095368670066975142894504959263491590716846785393198057318427363355874657755511143024881847382582019563620907917308153164526420282017344526592409411823161651777165523160541354591729719137279416919138108301447930109525681234626182853003850486535556027879484497773462316754391673483238953462638165853009735781957155481805534397904013241054502281557071605141179962442201165522782502207014556119860533895318752743597906061410741047122931145660252980930043191725146297706072687773218021941480067257317485875196225815133035391453779482824809988023444877243496718977662923023070136945407612256040107730001121837531899459064415519645751498809358111856303411861763517731656810376048782835517008197133381475068460953106175365219961752693503615266577047737314648398811899565918843119255106117674498806022026736353645131294175318241321369512953163085731195593930172065400301608418620409480074757385192670220909628946478239151987215451647788239731476651054561919365461706900057001819104547237182039493642396988117871847301540802452155729272404117475469038672891096702338261738651527226968795998927923236408481665794464979632043036310684878610885338198962314119074120714982694231090003186502986495938955447750513696242539857090428475580888170924993088890739909656693512996109319244663109497085273155483952163290518730278966966045636566458763670903419167801994161934441876950697539567410712088264126887461063731527657360895602538853757102150230697516559146224002383261498326285930493865350123718097773505770072119891166049776831884481667046976551145913653061657653823814282494193830250079910470822483356741140130816592263673532620202314665164661704140138611299186092835055383789233004065231466344676946227648696753323822606566441364382440162349821073376295576417592593645116783135305626944958642102431539201798776920042194817098265685708864719073031155231273979333376547761693156185658986877046798026144185204493810474762429342749068929603210849764731617925897727092522473978131309084053748065881813983569897058141823904791493975080702932615153933841654086834533310094835831730425900815782228582672301412604459385070599127138307344315981316025709149523469997974536314751520171991556408693138697981264458492629089037347331052298976947014804220463222801924732367310756787522129928508296947225843753734355629064732472395304600814290570512032840186416940362638362863126451188913975313235606365829266801028619693421997196046844934479142864423983222695210043606354561253182443356184146841211793747592491778548586887189752776361553693626728352165485064540054300324780858613938646480474963875137772350922329178303169018117101471585072898213592267067882288094071853891390895342003512967086299636771684489370089973567593792281455777252462483943570996582374719117485978008326080853261573017102922352691511580015567956549237011004817563737636687116433992666111057884857870541728648241332035561400977826523391099703620506629232148259978613500150652319612328397295966797482425225074739349001159490162683259850389635164104311947500871880790769477204221018682690043088878971745186062238114929291660388773934568702237439821929793148607316321262779576429851045028160880358475525738858133039422247036814287605429456360043760509728203805133409312964331737719001560037374516256882070739723855746525189747432232266295037846426241982764258007483619974169011270945016605038041999680520717831857452667911115078975755252288692168995418136294766109674088735755388479258266979675887088493581829763805512993977019598122628303145219862544219409551895568616943107815916876917215944146129912201251527233359782647860827286309994781821770272775297120898404666192394902071056150971515176248469776620471969417877884554078973517747785655296402804164909015741063978523688342728092229315671898637827309070017185703216845732632325567413924674683496735991899311181382336641320955796049860165300999870790475187030162740496307446298939128212041411066313352359840494550397930114396428547885204462591295188362709668061421081301143994695755278274612518290167165525153162627460664241911189021498162161538875476705254772582104280157960923207739813037869925859471844621774763665726430470157496394207378691495888050806838785927772484958909717530927371026596375514258088814169999872679755532517123103176647944213722443586061757938292042779636248939003985930501975836202146260010673797615440047328297615858100835086049947078430374221301083926952778981505809423328699976664594102082968884659792702368410379811337899620149453945833705230512420621078798025052797681366985527454332959409505511565104122699451044356938002532588249434913082130202391680410766698351881848801499579131237044442538738678143470348600901339386194956847886686894088017155623086558631618109289378678280471541960771278944310970133104709873222256787123234928970020023697817168125156534743220446574740083255665435270418474843732073189735740563469619595626942576794604317255730190130334573813048941323800038377843976735365593445480843142900606365850341319321911885300361718551457857247045407681269529585125263779668460189745472875400189636176971649289130101769852457053552281090592769947476553832029688460036683241142961637220944968156953465037554449594958817829620989246032001452297489882403715797723120153756990853267132602330242547348274841007594770026772845220508694111852077037334386538592212183207359850678001778739005618165194358934038777951957202180510518486192905688687206710724293553623630185870178897290675625435189972831708716840882859123234267702744902069875369648109117572088772126079532163919675779973456812254970600342082101458427021160615296301547965889815414199712093944999105189750736573687104934484984864131731783750744349208636501310045414552292005230004602156270990032159366484922040489462431072923393795679904706532042709761203937091386972850327076150203586561937870414889249057778085166347359433385370168814507270978524058854524650998061452506582769073573486503057961741529244879500243084854474426857148831271045158395493360702937777367037578656983641253758592231266132866050281747924477929664938198260130448068713912731965968546300725497010750672900130607914864528831070578557477550152682398183119345412818393210378434541978247256611249275585645061965233768839041300465983855719463170724877602903609615963805334768569723229249874256079288774327041499691503818563493699919158777458573692492824826550316580337258063301019624726633353520290162586357721606790816702010659239151888008602545961064533489773147603163685090239101266390658901669567437737841729770415070080578325407363721874086181841880712612990143401416408974411000279853227484715416567316269532331651796809272674452535982952085005411070871101760687874181856773886920120161857979880138072816250102994223959321588360043293699978113071565241675978375329985902551541982444975417915149413107006796374490770205255854672588874343946751120367795362769739290557272367846574329013424621214718982307196761909688141751709009924735469865162385355249618664253981093225133766130726404570968314252494891168747868676865657197075253597994301186272690533335163197532864844218018296526855218751603902568771720084808627248107994807055311061757674076134522251111240299289722954176905863213090427249009308171703313748648910264854427214712172521182153996545375805635113809610908261457251823794117436139880581440727545334473843793513447328806218427101249310573702965808549974146277430152851759234029387899511518893803071839875073499763137545602553261462502323742663849803970099798273819409754327804320701951547583935834142022389426752073719150020139837900481006139598066899183888397200429023217568152873865937451539680737384848714578063246843759352276310234209208505463999211604944748432972068356265876211709379507766706701052235373615549932573137849747251918044566826554377772066762726457774114830855912001485750795592158633047212272333466012893676781606802248401255305647542084279821419159538191617941670741625228950526489643508215422281650724003107958501677392127410112169615277987050838001978737604631632430288225666272863814070384474631637004464204999841892546041314480393641804183946306545423388919607351637590162897434904540120567256660597374280526933868237298264191898748738047489702281355304929140491804799508442070639175985136638068589879741168352447661975885727786692447668636677650585744639179376234366007746771566572402682536993509635448568069246027088533401352840934406341104631880518680499344585888739101085989629774025216130689160710650107968951332335949390025328323209783471736295296006748283071215880010159764460290647395723337785573750134321501602574259558994539494277307376734891815524657792816205705442604137664288034157619589259907935830087388496401444986316101856231890614619989218969053368494348368380817064886864057255771876418156132960311256920724889067799889686644881388643244842164796738651690669023405479170131612371387135908981904824043788255797822115622944250993596167216416999443785219464705962973922065347906526232609127203978853555649382941692677312773719832330902199667571549487679016774498495409544028476091350870896032446315059692446037987228023534433975390093848864815700394861713456875315813889549112629606390396802170439430746256398287458215134513942381041705783683716324757394156178365148942724594380081393897568788765706544801055414182122546008308544584615814573739467455392072790173233773894548064692115794311480991303197679714690846584945950949364501199307903770426725567971331942277237005506862713416117445187495104465825705202596005827670629394747273215107063876489227664913315062667097768417805050832261270295067212498148489191889282550509220606707224407493632231130842728068431928860077919912518358062861021115135229271050771724614811773179228134390028503982337627898229177395138188393578984296598789675186546921268791195649662621838194748302471613221335951757933879236485549256037426795019174020046518719752453678726628437635755490483042617973281306714320981110137780954415473846401264642103027303262808019392503523244812133209408308486994029600644620074241507430164613385275929720882465719562885345774086000844431594636015095357566507542047453334056281409471270274112517488121580221447586044236070730082486994551338490641884050960511766389107614280979606721409190613430203498289148694572506790694622754415519196205152993717381609677029030981628757390517192110118109787100593536787590442419040183276772630821726781046741367559760994460606882896395280750344510058277483086393304320138514051178453410162076134900667235397258103149530290494047854589501854732811054146293759826486780451682988934600764694646475143856596838667847940633961449874819691944284232920009200369945999868531387650970946893141271123121350316780314309989178550551715795538860896382528789444591054960402645416089936248399994088974134805599307063390205943463776449926450320161439993415588968274048892873867380400871179774538498964112861091836023302801417081082120372319417579862010041143271478629789288593123227360901774839199582487461082359940961746165118522640088002258092996344977212556331780410202761445083777508480094062704054114162998933747840201034947687977744103989335845361999215067220164088439824566113902799941258644850633711921755065944927935288748282513605899641950040527592102357383668387131376381058006105293571110429970851469283110075041777820148155826779625863045761328256695352750101077273913087099627538874968093533455611183877564841047813544564583498666451833086558197152206679205704796519261576494614377187211773922800923321965073190545489754088865451765923211088608931799579056255865041120011120868722417354019474399174625650140629655011258659010342064956678820377890728193022044255619397257040100166156356033180306846779800183088056496346115060315811019978029249113026921967409708654453161293775597229871913243346904293380994544951151812651070937980188545360987877793495878248400511186330373193104559215761659169833319139421507725041547245605967674994018997913575623896833490387679268523131472468111967199004222533242177359008932535770841482821532935903196677415449620796915028726320123039499221250497783143674978418048206586846612884836557046552233962501027895137464545566396356997056054208733115612244373974394434620847236527393625485120463263342894740090988423740261358387294714009966232332763973716329085637186727852092940402006179371792965033255159985391897854358858598339668085373116389764124012597016408815139070795216613830224076288249358167240405953573725241494678152562091017886179861567817406691599878768345673487688635658507689205290662418787255174352524512891205381732615633378202026923989683301070062557276794790845194352798031552230179552812953217914647733955826216433512996878802338120915192137343008905517130529367425037443472560908399111160491666742864414873411520596020497571821901546374867348694812849362585705311204034358059109168627022415323144528828730785405786125364105164385847834544821167255302095892530200723681784046293867168989352524580134383914220276659548904403784020249320731533148836534797785745520674886011256014002793364708853646146903022574791060263771066320188865554856147737973196644302765257730334627188635677774258621967633269378492489895417004645641640316450005733478496541798823302144807231058572687904965057684292279450999004323520057721848841132385217446447808077900798278716240255372909488011822454821086762419566930045784222410002461613252865147283656282388310067712105836515286911209135995192384408433708393441352352515976590902696730831076304069657405415501402436673105208993753364739008172290136151249804025016199771221578720788779923637904767622807736850221116527485588098026940251872112224008837737286414922975867694293711203384550291387748501131102503101135357228303245329855524050222240677023890749431067941720036963097175077882831970379285764284825097368914719460574452679132918535642068392382021276893880896494088324535549673693768735680855592253682927212692924635066153687798949712774692341909064526203134088715499464406919113554327048631275284658118188272071438919665962797602632715181349462894944798392339743418674045007833048736763513862356293433724467540675018191676217281377329689995375225035489731022329764008281378147937868772035417238120830131184103241485620256965710816980810699512118950397823839668177643911875480245697515434566978622228940413796560209154169431956711166912641651921460249152585356153722599041019460024557806356163055892798276388388831150148699162614615833343338654234235098181284879299672628011259093736651915661555231972115188252078627181973075657910796428594610679697935792705150542834702042556576572024214017139759480546830952387886620768639339840338221767533607061207466690982872156385609793810376283011852147850866673646427545261214923698242257922568288114501386342361959809214111667546006732285313545310021093662429557005668851873644868411533279713542426550745770732452205766366894963991432195991932599587901102185155207026725902313900760523379189869432817179783696957864270115897807613336059005325975022971002591144448968005109465652107536947719141790349025877936875868979868453189806571664702655860071597088047437133921368335360114009685617408202734729739795994013660431344346888541669145717636086338739060258183719761920402062265294487125800557166603162722869646618692856022298722996477156289498800514253781802474937802228567889500010815190557708272819542578715577290237015150121293024855774351641507498827871545969956082889504249012179410892153199859257494987776245179701279032549466930949416502301636071902639941013965519245179380444682189713150305362128571479166876417532224195484498473684238846736925539839359828440436889784756711293365945505859018150542800634643998886638304578241795520885303733516862000867942257849568070344372716235249425323737891466199809308950536075752940454241000120338468998679140080277220482318202007707317525132735651605096144008100224408414028062871841384169513374239039418536315879806651300375536836131855165785844752429230281343131166486953569751081053440752895758693615211379299336000095913272011711503235784979549437648785474075931514806698946745930058434830889286758774255559204478049961333094867640870979801676733293408087239775332879043101444048682938111673645768584399610435851986619449634525220791350441899053901190985359972895853759792898498196334539917839886743892997616858806728732396821234056534388522640392340316923413773806807426005541942088115624986548694244455055022757715118802706050291890805783919353745312779987017736552075614588278398952602424886731330537005661314440293727685800343194547717783734749563117256563289628845340916710774126326393599391375997286958033099306846903524572964151935443950597944858425852283878692264432416243441133189527153456249894396435654380298510702437505086841292263667088940813730505187209361925623202062573055264867072866315727674939842648877741810305497961833764990998737899360051786704387310100037488598795475502898376296902775816705799028104449968237352366559811247183370483586747355499080279619618079401992629102350260037610499171671751568726508940040589666291109582021763709461638998519128346928022105907416676405847640125769468828527646632038971308385925377636891780263641030186920442582310223883291428826170855033826656894648381111302223791522019202315378224276913261172852311205307942425289524186893771990128630822922533166602929952195555191927801609164781441253207609992933443377177324524869499090300447344686934862292405337916270926932431327093441644111908669254666349210715880111549881450586577063085467664891172979381954578140356252871240532806379265416766251619691760002897828426668933191370932221695137549789180727318096970341695322874964700959359193202980670020976157992256568037899943853930697120047973488337057370551460633944562622677010385060660594623564840842080612665145260085893236075967194208293715686062880478190044897483050579171140764703812012291023404763775839821754701690016292721266524437653804719967402468953486099731599646314395066946800935410357283344936491310839648021466184736938128160054339440450739393798687430755086959007433332508499676202956074771092523966877222224422032973307472998003396643345993359456115763768794319969814549713573307422027863659634312946261608873475806201906714068105025765252589012402302112703263638858915237243144510643503382452478128887165493730282850358490419376126464411651160597407342814815708751942666397743101372010485345566366748375723579198195272636604619168248915439766725872761132301505377877305352552591238318166313106510296022752021431226168862759222557672118477517022554663985002635762364652451653842183373053224193368754226227891124701625716788881620328166266371348734009401008413520095016362562263741863777433833417862700126317287314082552719600939675576278290319742093733358578896140797388637398403041534733658596604807378629853180310579700299498539278611192815874671766958465822415662323692380926605069547900156824166894255085156677050481858497540164937582306639345772928169616688985543416695899767176703702007449460598684735780062071864366390876041644298046837795307192125735536116007270171101029192950089698142244329628480870786507523710896779453646869946418391359619603235928019768351061867751281700340517182372078418125282197449899128033367439947683883272368884262517714579173536507414660532416304002468615483949003466992057379995337082262281979039659168005486953385255068369831639387467954176372539616980174697630387187864622101081847250944440182006972550094858362130600342903053392410649369848349450360070666940609011336530199148777104396351269394705921928456493065247553799299843488163912394978958932767227412444191370207087093524801897677111359185667603705225112185565975296925188139660913391742635431108851768601359609749326350847098805671199709762336724148862546639941120226846086209102609661427563330111363203649305514059486973273563454197098200159165604932558488357820886421212714809208470135186175624562462144332720264928182069142216908003630149742448885272671095697441570597861421019435611114796084517330144226071296849422220137029653893668863862504025639795445442703070078198683101413261112633613894737837083304244882645566927517474166402961609470619113914952031014135874214688942938139574198023634567856084187632387861927777811994156189140811520708327716786658849609814752573478570917735416373934845819928344132834976517989158981495478771122621529844195860558491849987390944510773313474950891934444831876446374347152618925231861681529166249950303226343247089317713777104984164093877160891357235892297011392377541375063367503556296994579724318999402801028485962621309011194270561376992315331051583782896507341879635235808623309829733402909595211838970077156720950445708782187464661474025504674068347962547093373223894628313589967246426913170448175454579571628923610399352147989863554897389975629229307547643238298463043962586971147449707379886051011029522948298500872140557601984663643363426815931917547555863428899871430688693601336641502650913392179621191781524401640523822407371650983642248320139419367678902277992277667607944550876013644101349778090228399232136509362460380792339032322137494286682125582007316717035788332062392336734438232178250811611469722256280751749003611799682858600290912378734144292524070663720829905709362653004294479229226436316437390294199069671633177745199269182882937584166014420309327766166912877752732117321709606491382422889595509591674089327977722648112639450439088564307187896266801427900449284389492640679341105675104876042040574430350001563251190392360644169375450709054869854051107452853493651423692658285918868139212043969686187991647080689928224235829678443415326975067700975435041232512359189523697240817981974806772725840293579990659578755325465546596939402029871102889387478860777762660288929217801789037639267008702866428840573497185577350958107928738559713117562305742957591634651235352116654783123547641139803825868169812542821523348491917304710582394147930039921000116375001657277174663399699617557742111383627371033404148988598586061117032650744316497990098885361694190278425613847515907217586701835266650003094490857032364557472941095478437287128014308650593059881974900320425093906709764522986555737850640209585936499255592895379900233346525457342010059719867550423778993546712701537736520471801927417914401476481992112674842212756334641632606247465513577805887683539121764859372802225704661222732612306851808075318688595851179030634682700268305339742161369850878811418029929602680159823761063759697791817888014555624809777275447110888298799427991448887515671021657661857946540696243089095882230577123513230454683493452288656220179931995692021631109311571827329324938273200194096038071359315086302151013474841006887120302811176235901396499011702533657636607307984292799113576656012191441516174709695101320814246275021162484256760506038797195382427561722259035816277362727982303892786068079585821944380288281298783010071213035547335669508819773898893279777725567515467362649435126761199622655599478790932195581220803487758823309872932973878251806230120244398690792797138333215166532803259788499661047216999850174436000446303281198279522074005955978538980636755356900626864986379440611970702716805335182612897402660744959015307570158511832365948659727343857378208615038586445770385031370308421072184610804003038542858932474358095289469852344319250471828362300528481318125147575576729870549693205775508133643575523205491750610494635200426129815380249646272194512112573987340448872977127223584756772931368784683723867924052552572316040817195243988295349182486620132293360758971436340856774649486952002059321651597744664741632432399988388789739120054874741626614411809587973007097564819405452095453042210581045877730907785919066736958186688793373229196874137460652184388466130787821478588252290196158942765000019649474103347770411984523914995375941517333811376580449136726758368178958649802806611548741494182222995394350707825667332181189625152411888804810318103635590067060329750912119683080043632592988288250792474442726289785643370410186533131208420896144391898289882530488126780277805837724536871276395871496749788402439131758922373767026235467455958560720651625379089280195164067530214644636746263529367020553243064492050219483210558666591417346559495900241664106395969058833772563528611286798890024368385826273299135464156900516940909477020377155782444854797167077924984458063249940474829412877574979414679065079878871262007282761236363892936795300658817518847735782605059573736131390599188469586175694366730409671659180895588749427521891326046037657991559548487158712081099353953885682587989647820215833504896210077621170451138187316683410646560934725681320794742938388032800366438456685199801303794064186821451244423945745913423037774309039575035471174090557542150818416019354973778716173574619972452717141552358501272473851525639528694871123122243389695144548610414686014659358105471814762248914573909819257743769664283514551875599428767695438720644064593308542373453618837901833467837898940612566742148023986221394578779156706950553927906982191499084747359290199016266858804719385865364725019633260570817883808181884687837375910147289606655017618778190628565927050868605315515930977315741311906139893665879785252155074597556157055338071282375999504752813398733031559401514421176080185925198058288489708708113872030299765950734141859435810828214899750887285447052744313455185575751772780419716063772209122010427225135425275423688748538874538720938635036567885968505605151198025816319528319808800275633135950232285390408393630980598580616905571990143285889542642672910761175929344555873696112298458827702371899815728969894239468443796083384477769092710429805002980837838878496644530241752332789578349528701521179393686820833852589581634535630067222523289117646545461154178015147158305281148815259189522157960143644967614235955763690338013886319884114804540933248353485888188570816733891391431851789669935077194116416860887205033827264144275089910812207797437787814419010983047163267566056129565469196545054471396690386048155055498977118798420020164965906353582211573241163361032445388633014782443381934876264817230102644782723288814172681539361944627991979923624264531064165494599190575096307537951397249032187480118693383740831879923522467942402560351360137759678744658998879025103929897767374118936101613603857880014692924863085031258466808349598934582667101497047601633704497648203945779232669086596458116897546873349554712297054604176661903715884120792139985322690172533926713778351821343684193034285447127607968127929645190166089679895077507984582310295529036468511520724398345214308601966659435539819799765334928776639973603753590729665992501932039045926716214139809606505001748674466560447432809075778262865253582431583565189543975443466726715162985089137472618228174854121475416174269743722912982579734853843480114836093445296532352652598737357494505903657232536482691516162056966542756208614561784371517629131433039211105526381923314182302961244859433550200707353124985646130560508078091400558145267421446170301315004051763984764472210316559144960279392862237712026332693203787073093210434452119894407222330334035949760342763257885415940560343194597248663797780911165858942836677812593764263644446376246880251921300676107444439343796998310933738592165196595838227843324977965341736354721188680926700871943419032511321073755027614752633383389229874377000379648639785059472468561648724610023217535941525302031813132118715927771066160468557322820941261590310595904439771424416430868254407661174597875459438286932654341714104347042079744375534562455105132906548391204055674498028691001159996995999205249337810034744565208806748277005853039810902987403977392477353536991176510123984601899854677100453287721826907783440731590531155119585072734332979546859566369384025507822805180491994952364854240278269829722551362932524535977276562761625395213638456307471566219603928363727963931757677306473075449427393902587508299376552747693365181197426683391680898648861309155702531708761151008484281594293476082826393363613227212519605676211178405899769905725030380399219364639170811120005191253616611766026775818880316183895765518759297552829137500291383881323729339450401919887067930820590689730711400052769335025714964243812909725653273495908997017599598827741148970432832410736988009246205996653617143466922366702640591639484513937711124685157931684852246270710543081741679531330675255308922025132244571618272226046893942291980108744083173057548022488537704506060434799469407076442114600760807957214117890877276084195162141962359807058122878015245674104080871331568832140668852625583938544766180423214727066236427178410509857673564315492279924823639295054464130107938904909228213906332326502870241573258241492186151517878450621327129266758129476228185007689051469060308008613745829051948545522515335026266364215945674812491339078778858437513817472408717662135282025339832927500840011045931349892827779269352983598894711633104407378674523771093599415100153695142568423557318219749476990973879863687200981027194686112937041043471919782112083811999667737091803696836127900799454625585798435246483428484341199551416501453639066771291640716450324842597487238302578447460636713650807827154190286291435590694514641477676157424483311774792537251622998613444707408424073415952379296332471211717456459674843609581459461820358629913129072837027937014700938636593629991418677319013088552306647928494773825888580386607179135897534372736608978701395576449959701290114226397451948300959928254863651842588569412533404326703336635605336258400273065250705618659969160465240121355465497286654230642150826127421413794427657089979555405574963325858572023890449653780705218135249109123648001064224430605348774506980172085202386511711657979986669164494728301960823766959501821330233646457334553426716896704694293446957584213416261214945786302062116472116559468002990913733124659464836830727055683952107023888492412694034800490676415639820072253955307549437120261137259361677914361194299618343946406952106524473701581375464101676951544039562195864988528400095703377283164566189544885130031734442801893621958911472234384852914341911941165502950593795080293129193664699828479180643678013944222385898330682025473898576473835640393458806445528912250982013973724173604587021313893463762352197681088896822898506650092381554655614659851064087394455667291424976619766722180851144920460927993096551146867045819644243529682583690721049493472474577741929307081797863112601596774462453696092401217767677958484579393537143256511612896479081297263418322798019160641749000968533504915531441937391355260995452876881707090695133184750400584323499513042830855845679300229454150431204311812566048909503701908843209664636415814286952564491331567327954477253417845802091541228458915018234031532412702096852024669236803431239929633554959017231514844904809172607996879554716511774985500202565834486511004566416523842192897074789187952316672023219276026020446459962132517046431000048271007597857583631150202704964901031638947794989127122729108440548705621054380837330101390041742525744573912310361843799750954949681620160054459714224294792961671007693054170245381682351676087706956545905581399638932277627252639093632896115404674241099228590200026116826779975845224738830826006368936140080234403274571780703125471040022247698578374697568738481392309035831783399875287180404258902564830200678279894025174345722789714688965737721818017646994483447778066047855314220983040856976856340376664041336924837956459816894823564024192355140716638804492924261253499862114975176707831958862811244757045792494015437323581404303213581204495296242894015459473064023520457602853364437741595470612869665176744353726077089337354226811280983981771037869387202106726665848082958261956680532530323736349615219881766164908943358283035254583857620656431309968367705307243303126399216439555582729354996880814745051516776412245673419596457027474520342772063163184539914136108176371673844630868309467727536123628010768496734086862481035428327570983467301005435328708728883575204621985831041895157491001017352609064181858748823089989747209507037331117957149993039947268562670829909192246718914581291464473557496301086446276347028168998758495747733590865708046372768311459713337045794779844799657361549570542796321160942070849398350105022211503827511186849159361330335926907574016744844368176453279035721929029489846028341982664581544168445783602137243832726056880648866296685827613328048703793499298020586854065600814656445266660983795215262782267617819529179567845321068130721178057994181645541315282898128602435343665344271637500235897178485768041231204049226886996979071638914961938697278550078483874028835183694314753686370061353217693607438137096793294104631540298246157301982112503890232626877907753615743653312796283728128425602744015544073917776527224577060668680399933061789278829461966257433123432281333903853457688810966149609045244584865087159116868599881928030924206136833871005233333797690991078424189777270929726555268214164571519126831329100331102833318292023066583346960011532885003582314092856436833972649410136408287298987619653803399598328334912162379565498231399733264663154473191892243907426523947263175749524065412283390599667284731890774430693754158620844038056928744463182078734351029687610784165351072697711428194901256177625400205230591071025222788481413514724285512800213032751189997278034876491116807621325583613084839343894971628063839394012671464944575834734441477128587658121678511780586578846733601611926896293412432541566599603807977797648772914517775155767346119088903700587983852738873311102701587771729715762300677639358916063499479860444600218180024174478263158592843797455140708204352943876278587996821000143164172394175405809536600772317613554392971691793727980969982412996305238242110947417667937255532531157215404439127575796131271504148669337874004649007858485375557030456134185679953111490528973473637105980393474755497866255821684871396977782197530722258705294084572507603867967550572317774825106915591443630515952700978758719705742477919353809825042852295639217063941306479686454133513868315486260042325150655337622068614944988738362875365062438063920984664559875306716115921645752013133728082505740519815394659611544992963416462437144805272689827508358868368921209104575509415405340386655887242560168541726560178308608076341337430057814543586795715422144422000750758390923715347872671007620985858810050500697162957454281902671963572721777962135691926487660936730769406670804594924293740735395357111537978257608878216741500359647112270743395933900660769213903069851011717465713476047585584999626682626721408006537388193979506828975665939581606887625281968339819540273922946125161004588288518354033241276212954311449026984204235331620797068412414481912084588044025947553448829948542610418695461260099752566636149800511105148919256564257481273337559234207815705819726367853298405766570214681705831365661941440508392019301520804775452246882601134479545409692574152890265382971894394008136189560216803129838541903540431485536791216317953052626768494079903058277921427277379391265113716911060238230511890991341906607753738406973355619220421794363175643585625503529251998542737131207210638375914091286451015382013011577541559769582850196048032781069277772638006967813223206831982896655123847909054379889707890469190147808901732734885524360350893324842055631949848839851666952567230079817508884600247362131684969662350985060633420576641527610328611717412126223294858409087186550536580360742791467191287664952411038599761647726163824957291178821140941540045235997753488358075736410962939182502227001657398194836858816716052057412067004749953086643206115603235530682191366633403492055265657997996901147002006707474692923200740597645468864722167706452457757365692738960029096626609879407577446779781091771573442708487003806991217752498905302913388158214273881534551909274345945173293565248680377571380929419246518252595588702312711999710025730561187049852804936034057889504029148029962312986737254178586851416752337122025392269024893085186151945764120693948236469781263661408861904396582256419081840595232115446311924382667519028209610840233226752773129390813149094043773095609324047722104033121550436679445241931755276127700025448631031012147859806499171255769148430941263746876849914670352052384276154356620214256790702222447010466763669186176590862848118601414364056128443142823289840410150709035850763221989315058317453545207909715280325717659358428294034443505884161737926381733844751285012422540911510576016547719606344470817845423641862530922505243144090414780226932347835022407005018430057771961399252394588735140567713229563032305763819758892565902163189368837284880277024223619914439495161361352762304596199657385094570994477739994016590228967397963762798170241911512645414347500086275616030404555619972224426752287440159473475397086147514480585212322234179982916746548828233424529719488806545150791135779206431254018245690880938155404356752454644081671868639306571867010938213319885025885648512650112701577550565688860157312825609719493861220193532347212941633338253016308154735871156791877894927440841744157084919858200723885093569092724085352649607432162824125654700522707456854548521104216942168783615415661191249780447488428273457282866860279761921474632271505201313198489284622078003800001875487726915114721223144098266677406274455031573174840909670990464469002087813922155885350375561411728148285764830838768332921827233652250816416620697822451668356916442603552828610719161407872465883831852273530462165384479951683908184055714092080094487292985287113914183430996427226998540114762547190326733700425466603687105758623384041821237631825627127815176195992948884154464037564604567615512619216485997620860488597555929216325885167352502513962632445503888619086958684354131561218112537653578693886488217362948852397897935257017206267993370311141197873802259220306310015949389454796153264659580308600190070084431587458308628668964807259992973038822280861392858565149056869713160352678772036187168058030487823940666719570234130590559264887687335593017303135723052179543705597797106351704722079825878787241141916644632491873045023810240714270154355692513863853821754228561985546064863594230865705814067706874548107509101434312703124415846279735963802146843369026833551266488373043971387227360995517573731740527252634971430320012560212719507824284446736933804020267669910690772620901937105117666406041460066874697616495855184002030826785529761898027883520858002299796357353106822591822612812785932520326022836559577396039033713837732390404353912832913487252663416135727430741331452466213269111213916189195523943135683256941982410031058233689991086093517971686750073996366121487458412777836560556335418782628837398206466952814915984576591212553479567758565289927198797850405687970529270612367395703958182414087799864450061919519840915071994409387146959305859582044493339743499948211697824306881253959498749496187110726585317377338348914529660015864600520828213034953665577543957301082617247032503615923151336958544505424545859490877923451192220519370723742945305302831595925367404452812036401658725343745560819903025468456198284481735011695123635592002486534047862961263690788186959861008798806667671606141961382958977569698674016649186022215493672475339038819272996543306982977744111357842283155629671886181848812031251103471126073907345855677027146391642557085762673259900083002528816876115813326926322172175666446650121976803858065576526843756369964407589239652140915711293003175153205256256272776336776986314366192438117309746028579120993254176609051021004539710859677208917141030565008877631154922009794801141405808692831918828790723219305742444604938912411018424747075647268788267354001200917499224828865789478686365262126898667024683973775669458090991566229407690190257085255458130433271163383533603723497607983460919763100919520678228354388490031470286457792170907360728936139514996414162667088234510116078136045590249314416025218540520948658045759531409422371515392281062129387816680196192964522728882296420953265393090518386094141026196434414146043806499482223322988085159544601741835683669293326394020327088170589803261972983087670305906804406019714480738588056634161541288579303399368786945581787295247095825513199337433108616001178322627765102647908581004743672875727402861634636468384132830646361254327327296328535646846456306787199485069527239563767717168361644082623944077689968688829296598339340571754006971894720167770549510219020931611855157344920887003215156108120509267020205983007398164751036423737684885586960626601188621737647789628468360274916221818353636017758462633288376546679562443764225749562185678799598706898600254526241650034792422757233143469135987745827466978113872596509325711810993510971940907799162883374489876468404705011800547448158671399071768987594361044526464058109370982536441379365128913657777625396980986527608276718660859217631642618028895370361471652559062563341942345044253172375080747013766526147573690264057895614135254210866217397220273918830803436559271112250228718943296005045534179553551602777157730402926166576116595177138338895520386446722347687612737625620416500822335088064963040258036302758417028244004885393870808057943817276565761527530921349442563495884868653322771398164078225527344678559423182720823111565959909079099987773612145321133254643360795185972640253485073535654215171243616345277413402988730885667471728575620125532541243965828610951060515283853264095995287088987528584168916289866093738878270493823652866828360481202498640975590911413088485665341546455206184996199696037303986732763827869613087696030051899556620925276801582009998246047057423734246195218365186351727346329256277825809350335220888073919402213198740323421985693710523039974402461546342387542411323996678590798857117122230340659886071870044806602888839488462045347006735860708354434446736081284763213490738824202617487341825551142001508930345945723474077007740000777806648403514323175796890047362123941185911339530339357664281854102655258211854986820099622652484500169456756880266686393861018073321059352821305421305996642909681403910520413801961353468185018952483784461346964447538940122273638607617824876467585823753590175126501963361862934843474002160010808991455742568348705768289876971913673994030398037617579353883836779918258063075066359650744084075915743872832652308812591676348843455303213518689850050220268906515396407513429842716229850306294304983963206695744470243567254619077330674478027053931536628917428931248011349683087808165980547657060650969674707236177792261664273320981551826461787192200092437487470254502898104410860332471163393566595552729456507764136104309625954010127333732547524703666862338104979546222286335137973197037798832916537694240023388644545622187004993808364114648215838340304807721249457527630324164308256343766710162473669255750170966236258470695423390938768009353579461345716733893195817960321186676430205939259087560765831449471403779021680876189129026851399208294372864216746332887357214962844372816192927042045498134852924648656554915845051567455691061045359062530089585356213400295281351462631151160002802127729886046187601642704405739099566438167540676907323157647490183010126765115546938306899601185732737758680569879304501482300558448415330856317268134223675489303143237790002925134695593747149839120979928240515341091359029946287741319067764621641146515216528426972645405302792838086248124756055801746983085796156932685344498704874008109419526936544328843188282365639607445469483905234320970750133354309658636220021463188172939365185867325770968850223392679502934612086997650508352535677469956868999189617142896582594704221883560109505642809602622482761115127361199472421942337158238769723865595450565565258058487028280451010563046163849054354549758249476583837188075729776561622570681637214517778759887386055990010156717016746139184847789841570490004234779233280255497247391003682941759350802538152578484063572315792013456930992781225676025939970410552219940377706384671453464653195172539839746777386093229732588358424777858968146982531261858714952482021405199462578722347483876563478420249891837108976779270043199157829856066100624387710934505874650747114637603251071928609744835792461748186114688989112787976723268150709627514393638739503744102728814236494193875588539167924942387522763208701109092751802011064581662889572531090225727492899485957461464774430150020320775050550707607681368553255244749994437608449534306503431209502364923667935896495315065750523573625275567514765460206378670115723751194106845513596146704232182755410341580493324943017914671994302342371840473167341788189145052161583209870880318203500380116034146713132336580521926904322081457110546624857302361683350216841099730304448625499420975549567464303088231107949487069580369006911848537864343594017055667130952683445307118029865084208612544369260739130467082557974920316125371295686921688279844006799927463090706334445208144023734385408980172308590421189078498389606616836015507952904648390986981085258006180992164470307715446548445363868534749186697183702139625217506870739186510878881288272323110566457598050983590033975551326385856303661221130642006416240005894590121153713197519201567344127833652790127439964510616598125797313452057468872668954544599121654320779205946632096926098944911411281620113549238304675550074968695368429703103815319722630251825787753623648045502236152834389243044008910539178131597666622218567090014327540313112195304240588698129980030735351560017627938293056378578083894683188656316595859009793698055251283643819164203886469831768556675557254295312368944534400836122735551203632246163197444438517126139158249136501042301003179157236186089563048481732688452900836644408808150189799439365811372382775391438529011243704150655185352052323841202670513399435867634412085432465774650546762554739861698836351913110391415129627902712270097378037878553128871727732061916188579798135993718796824639938459113677269910340285340979147165712535428820841268774331533803139592997955178061295974493237443188766762393289304145502879284991118926458055343486313024293485633505569570516797067942356430818178382075642435668629238892517742767045344535946259698231996291661581898737892141830755914430884063518235454199052727508351883638122961092704654167527892854444365673563756742087519853792118468386999183845671104146130874558465778560676663884612737000072722706573650184861101486190269761502529686361066598327105061453171216445814295968487962894285697606081911519178639336251812757525471627391071201590493768390908845129647972549240675657265111237642590912956182533949126869744931355133738470603993301330359241139511538807993168508649218331885658033706267076039630114954462892030779678639286639641559582498437089733175980897681416527089876775330331407550941350302654779760597286992908954107130344828956570865312423071091613752279814654796490315757874633144826563143167629306461607198138837703109887371370547288527269679479014504451306544416933361680486834761188949260987732604314923413618772938352390724337545054012353571280484546540516023640682821658886508016120960164637664382982418238474758220036188667214819112728426540515589487363103998263687747825516702284205562334490583612486861456675814683221177683063056578712985645808931622758523050839187449153376085969938330346174238680862101833013888849535942531515057164478479678784071525646041735553506352755484269598566294111389188999662467190342612569215698183337563559979420345215441292752948337109169583853313292943171218301589650874703609897025440744914083482139100518675918502444889486251579923741833130066230449350003744423228824600812419938677994015323862689930946611405930928795442586722840885793032901199869114059366409447368803260140377568900683304293464104461858696925025498955088807084478449069468279504329789489235812546390959340524402091191776306779224749649810045313574612816460875689489237858234189937577964247800150893014002879622895214446500797012358500639202710944319090773469689213119351143550110394522028568652228002601901127073262044167728579646679174191008426193136863493831926874523836578111880266241171857209974340205683156944200890520631306496998553203060534054955370920173674434239924758100051955943876628740787482788030492896221867735542656324639859503753340547556697490556694564537533775469774291502518054050617569015229275400277855734211450761393374095162605763995800259393367421934175277957240984347198686478003959389722604653644050502026563631315183549188710525893214522416962577493212550837959414354062037603297594049116624078712368196405041736089250226526423124470387133132318994848363895778310821632429919131411337845621439841385792974735676487313192186088600911360141701205739409782183695325902579532089746678857390343066397946971727020938319986691029029354718243172653296330505802215204852112940755969310762164849738809148878801635790918921220418576375659749426271677711170211486683234454958727059585647453406954423069508422792689931380145821644774760100667540536415425375667343110617786071292015279291114016917781433564019865078888241572464343693839443100750173694159116547843216702441540124613229020610662933096135451222879845345552402227639260078215138356478944934203569836396655119237484094145764265212639638427828646840907958353390003744173446497538925518173745188000835276820544572054574621847733436081574110045227770495569922149763173758082116594528090138525781575411553264764819687098988893821189588538771583795819815194048895693514447877200600194755906332069541777996618551794813122933355391113297746840738848653049083415982385017060496230606606115689506685195339692936899915447869814306498540418417460099048402566564308463314907931444278648955771852649157309309556468867224154100987375263552505540890921976847639955281530133087591082562902278735968704750234101208513351540211796622434433539054444987151434245338930882928570202658354780271164598523006140608023606881996689485535194058711839650084646311956405289484731489807186794954253084775235082376389804046989468842929687998379737389421703877031574767858400442814326091415671067317026104867252696543130600192363634363536491825978613266693101707345670346570464157936040681236486248803222132049162289917866059080577150444738197126027089084265736155233033608458155045480717085970601707221194894674779524002585220929812568049985749423694938602510001899176085714826429377457010951294403739115738941657233227155416057606834282237103193983443385288419867020662702131882933021351554903812093991797311070579724889704806461750467313626460249109952775472779553158967043949521897802037666303756419581003378885008380049527673732406910357290030488377202198635003329384276567303615661604101938981248620637827867978944223348774203058786523047903851021882297326321092889851493594027328847967610169501877394121564622631401087760222808125976174408952062232379350117940084619966535709957282925363802461742052300083930091918261475370181770587540277227807755437881898078977289747672627051513300615172481547158252469120724662738412948882650357199049764704866413926627449891271445734390105288558072424020915673546187513475907852633382421745192019997146229891422451707958834350417304207157796546207129459694254425068972814379682513346557282772699010551360932881726065394001341794695222980340573600900002043620705140037397715703381779845122718498028276472444418191760446673059140630597899948157068212334470446715524260946443108264737846376488837420840142069661527392577031352349285675435957992238287333822169711417054759696974590029970980173057875709683125527271546155749150254954594968256322829364315847895387928797028129423383069056399144892137793401005222598330288715965637378693007060278719387864394092292828479676585863860381938560935306898958578954384920249525143231822952945974207564168378281760586331235849873756678479264004094988162301069509056776669248444375373908870709567080833039355504833234313462683694521740164791445649094486174978087696102740800911633550491481484484101515542373166815011722371765265545430624796278943515722507464221681980981246084583803785568538235526750509629102688591176787429961786883348803674596620120784067895173071734945341443688435929582460283991315455727828638981123467715919741883839755039527023614026454300723666952151556729284447681604675443418951301151479576552191063413811445580495920983778934224040595192758391358846924158452568933515447416240234015631810605605862450195936629296535579800960913879378384115450230644656144273002920816750864973988333406683037586439195537566183389849883277754057612972001699544845017907060752957514896030417876090977780993543260004374571958747650939768975950403599340502993906805304434237963876816875378015111431455546004557781912364829169265515560134353394907434780734195491332849513434103728009907198592035305353062208987309006955222228102260913461657258794087079240155935366633772690590816062017953213604915054649812788736469670981221401609180875209067124310387938513340589689639896521359180884210378621376530677403283954151139832424157469779297876623603030339461091503376640366035025866454949875020021194822407776353408373085807330370620936206854773009860964976539757708051290862381587927633821269929254624162692822536875298042487552993959393585892258571150333864254303126811688112780530516335483031603891808433364796873405482772734919716845400409348395818271414832501034889032355765991685287133555874083197771689039503254881883677452406306783822682020660486889613241965356681433207187724865942653168333953604755943644650492723565799798510245122987429321578536645898556005677704812043022625741186337711398843975679323239856601403076626108474745479131531456075804123526979621640473598443176345271150539477572518317000405216800068679055966690104539280693306060579907579647654447330342344782865501840690471087730510801320160107695827442809185482794988609198634532653665444419632463653041773855853164553929959158446998028092339197806038163429158449086837390893995381478490583339699366542183928377928132149078350089614016664337258615496537476208059944779232991149566067846979729251827096990554541908484349749383974157611667717334753287327464186182475768827054438673058224266589443589051817494294306863583427487084889713163391465786889401807742557717149313907618970849490975665891587793022718036848201675252400721228443111485462297557220433772781495380416528134944793888741591095907367864122065713996892582874930867342350063578336203348023693399724058518381029078868470091227655160680794256559147785902672372742092916665695664527877522219817710297385318627716156450224299682794800398702216724176455133535975562565715036059441731447455936978020853889416189988305287061763524394695621627099088608933377059680469508091574508777815676861233178665096471831139834091552203157565190808382882834830648143456879434782533128636345575702380034046376031208998308458418839096934573985350214377409084848781252849728288895617625111282145371175745281433223417426854720066025486718066004642709826259867070610592649572051350535121828985838575311197913596612936656181910596664015604160499575160698632868225035955982861133316421603418801620295108374861335253539846110042659677510023252919347052577687754222167813249351449098237192814061374283825020422350606750389402233336245636938624781906579112834063078537845863177959102740355023778891429094954894415051672190761198730695667746642597165887055939168441589268072634829685596930641340287699497827121242774737657124147305810855186140479032645427108090052075624143874105750026353471960618046644566827396381017469648961666366842435937145568895775379725271473247444990439419469873693739174548976574023124008540756470004523505192122550727696515278945708111216054757294967487866944413514518178847821269915329305357819196207518776519926952382468679859909710182556910417332609922740925865929086465568374213231515053216705156890739121271607165832182719055245862210661493655879114257444733429042239224401499726641769611223454623789481645355340404171036482731959170598516889819810874573470970955877768167650881036377175245002732092613552100380501597756796127728047761892436858758390799887875995169307954897609379390127685690240302972345745391494396692977528561497794328757879253457589815005015539945590283277802243054104636909142281180970797462675025674953692796260413169869346403474331176956688124607132474157558803267522745964120957990341834634574903634368190824727157950121664805341337943891157536524007100218595635974672736010200233328570505501885717929976126041518092243326394513933806537130087506536321998094802920192315138835747104024623086688450412769551583543646304535232724406870624019216712091455808245587349895356919249696528976044108801084759793188688236666227520821509898260733041177128103362781366623037465743601903028972722028128686432450704232792789543998565891132664135746353730645375046647065747320820840859962424531709643666759658011125221821617898945353922986566555953610702964983545622532063737519640654438257044989151006814050825190991783745071947358208404399398323501255637588218868178926255963238883542583620317692439607260781628070735310332265637377190300455775792304207513266763061863259194895636816875129263710864389246022464425632619416724332360629225897280438232751883990883458700190886610707124476802281150940289039193558525673977613671904673351317446006075970904052279655627308488721954157703016549922778327507010875823611049203086747243594141402843869975144599557480972775781784374736665039796133841348290415439839006162233365561710020915637709162348010899903083740657325906464003345822607237089227527476618069340721997192866312335306994566808196324934696081066886383326678773173216646633878007114642936844757678805106964710957348199264679386562709156739071594839415360649602101034772317112473126803436884948479922644368843328171230628781133482969769936191735190484563856734432884332275963874976772177730785036230780599391322063249176770671954955378360997917996189292290740114862044121042723926821777632659328090171086175925503227456148672676821602314272755481858899847338123976196587860251179317300956655207531571756897773985238708151374500261554026858187568999440230479588735422112961741468628420876766726166526212089369861263505539552689052126421696949588584769518019352044473000984108638302658750291531493490579405632496154885756432812329529119375515224496467705015116927161626289384941974175017280105177664305017702709267422623548032644881564565780975760020088363472823787395297143489546869570189383991691542575175048089831641953340149444360868878287605527316709506618616156085576108215954510701695799030971483518988842297163355926817224141402740747028020560261222237988647928239775070213242088813631274963151993756122867181712158552508117344144238584345281895173003890852630995096602263674734425543532683370210133351612667310760196294219993289521435316812502594669274652319714855217652777272007611252383638182922499381944353222183558026108813007612868263409467908856199123729266073038385976505500910137342748336410926579115267445486267881391448420197907172457177753741299785602823605742205397058852991224173183682214179591162778790879450392669671072742036434526156094881799967556645376131995947153640870622416684894782778241127927475124516774962419045137380352261909100718273138239061341808643617821010218717607729933772582269034650239319321853819639374310071234201599187678261212608285279292008223855873521461275878810713912313748681366323837781297187877391752243619809265818172040075193777928209078825127409604548758026342107394157972959579679950523436569219848694775021053403500746211149382104247364696546966422648349640450589092657835673925254974022203334644712324663191548306033335037067616085337719193887556355927048406604274077835504165466417737463278258567821545218632255743367815018993807101281507680616072173316218470841192349483755795212215586029637925876890738788095583283808820587068979798940620839545990499226968675945326812691299083153047228075983809551176522346549288350546218563601103947791230129855030769832834637877375835456380192478394727869798037324721858178582704415132153103022204907938282953704700422755994541732888234550987062013467029896864055820491904551696459981776645166215775914515195955053102201476109883290873472323069921860579895562196442347137055813722372979364098991470011720109154264962823827176538969229363806716380667150355705366269371686234209850638108721080161435240365457362082881981272475454781112739675640188545969392459315319444001562256325334359536595316916202271439158645845596572770851626289782780297643760275639826187850720918562331737783543894785448188609825393524403330211514143122129689628767349675461103226741922226355896976441588339343970885344155015431155998883589077472311048665925072461474320432727792005933435234687241297839544327861131253224898388008019298277187760340732856943072619903297926372361014173987173538695958493055596816208970561248086232445629476098017547909014983186999324139752678181167698061863854142476039888206682682585328610210694837627035992867053582760159316169869793217661961003273586516900586321023423710144350691217655790764557862379013538864971051172532965588764209632988913817195763910890588014493286885411959281760009557366259574325450082962317407212297942664122721530317567988588252177709900438533622490160165757952154133778055051956909175971559064987291012620824271438569915500150761064742951173256020873421482082161477106795367883061998793522495231066815667071480733568611129641288596485867613882400009304356514324488421480194258908963730000445666040845299107574179481317997027737686107952002157951099105500796824530238999725198368159214059707304451341091956044679044362716230339415820880973002709860420445268405897674242710063738624266262168420179172507949903979334853540539865885951674468184593714593243612496766739539822308727419462320839753115269247927445855799253150357367929644807397848357198936355067492535196562269484620086230746146699957009927393860900192075187331319163650767660658873278003762823081522777524475519778706209906541035251869492632105659145969410206373203902854264736264889144493797474041535660661972094354431363178143158895257943905522784933160947799723600101518750791917374404661667103785032672494842339169877447503076565549750358600338643293919671858034605095286986604407575034231545137268748158930138230029503719109193310259171630464204549387757199852677359574115572341842908257621723082196772636741368378549266374686652972938744731653795854883442522121047468925961711062282671238246629563168482775252901438009457957495102910450339622836567488701384464892750449920929187812250772759970672260142932289517492738847978856158805660232819455595094640574258633473812892513208176804308072457621726364142604540817490738355865208766343088904875219975681797474631990461712489897247351153808844957905566204884832151662052479485098546393149299834458448993279187194848175786725177537865153323780017027120297713886520067161925556627931123061108575934772749738239871816068233123373990911656205427543270917864247788759165040447821728462782698653622634404485517557547475726165643066697071564816491942206779181275361477755007405323417369583993941429082075435943818644232338288692990576203643168090776830005265871179102227741165844069361944581555106578699131210231518587798022322947121833606855411211735414585866987455538243012601235623015950925561281811867101978266245202661089903551153356425043210442562917269332978176206842176204399159608959433027862665293669376797871184105557296088369474670551671227597349243819351418198065243935664059193950892777376467810393203160742951940370285674653841314298737179161617680239006694737728141909071048905979964954959419944606445179396017060835485752618126395030152282955929021056498389796763816069350445017938732535482629488085330217529707096292984490381592808454190296457153304801320873894286963935304750025911728554449918977825418983790569614554236670554504463435576154499143433105831045398947889592189868530083548740607570694199569440178964712692164814020049671063164421703593015266681631278841077074611855303931906455303359372857343397762503531187094846756400876007145680706239161021744543425913923882313053032025656634043494297966892717793856400256962817673446016056651700690143286483199740612485134130855096714539273012511582704498586199658536123886573998535124144715355884543672681726563100346484262462625346504554533438315161141929263607224402468547036289562802938522056641540035246141138251638403099418045923130295743501896867783402408413419620806924959375079013891461227913047012138016477726826319101543280073377607072551890873089382048513248286910335707012651675003804968552755403089494569387363402728639260049643033670381667714992218862837075888783737750248230017839656533695648493139554134196108562250802682680177019831156578953981950989138368405355829945070507457676054005024893875586736994465972395894927630460676267832716376919002745854194776032773786690555853486693702102889263764199254976270842057124168812110602111127009327439384081296462507097087866312386215123613142129822946086067426736135370441434903218847065993392903768878900771385007415310736761218698455806007734320581968058596861517771025635255792919163279874426220647397601886557940409988801163024922981840291298399351292888430012398197038992303221521857114170958974948225439785921488560019294423865431290487782320448263627736912684240160199862190032747601714725095249431169766645960066083348686407360607295760743556255394203326589897589604306756546954551700736382821760351593712721558051703714390198570245275498767990209702212559417633029271107710066149054341908608303761713556862751163710973678452593162189818062988062934468548142151388473442424076373940007630650314676658888570610560841767517585938587301869217429467369350042406877918641642938974565128531466788171385491634396166723542749138517192821499371419037366545513715037642498061275408991275018690027245695961627356702363527971680057760492254575239213094921515374673445310714520118330130857559048609407976268075520217919211495787039279455165230164340348013326872180431418544469907396256423731207336567427055943744377347456352646992872566377814086473692886379572691134416697021160321116191341444027407983462078682047368081843710996277187353928668531100752169150015316568404896928290118482405506713066800542420861396574568900324062127340641679791725606100347164519953732193910814641295804158288746838350280558740207432577917304073753915934315850129146741065304199242627458869789109394000355908809034450613896339863471940456746646680543596157928917168950447695819985636160253009640756150656792317236813734740079681709477115312179490573508423537843809235441816764855234404442927711323510271180522043005279540535282220029371414567947313570499992909169231616143865758623958227849545862493888210294845070484241993956653036513558321133578899815682088988136003918258121265528219950016803805576855844715780949519160359443502888900824041153523460845947516079278882830461363963009895462150196579601520808089207612691214339689820216310245877263642417892905990359716369335169053335982085634378196852152247945892293133155095708565866078005205625518331935103945631268689157861282229272890117920609384599989571582044236656971641961111511911080060262032406949881242707882484187967166695794333056847933734507611129404068584756201385231762048195508524533388254930316229405028406014395305224895821209495718824166741122468747610739795360297163997220531751812775761472266143858341508763868876072027909198049936260992542569304585000918281192793730584981256472223342998492313912625133593703510086482991338263593341896972516763081051015405014814587905748937750917660279744187788801750177194790056937795192478880513266906550451016149764353553313455623996371867728716844498062048899121652804752580282860978558372871708745623303536558211271256189895160806208085641135942875844046133909185030751777365448404370471362492151307389626202164989201410272883699024555521375783226613683295653208454224965389526294749009602245408360003796368239442490230350539629137959469323503284397332073677296242211818518434826511461259524001004803360797113352397427726239358768333971797397900109045898497016836472971711336670614166915155891063573577215523791135584153627746065382171670546028492726081764799556703002532272123938991223303487595371174839400962423679538544830661321201467116326830808217633665806427098466490785769842687998512281402243307796632631182794423209357299882742241625739815974363888399117328443691125743720139970475758959486735000693548785867805655266782563809911284731100976855798531238192367879452837335048316562599981257865492038526609219630092019581288139518180941994709391265353477263444425349364413582277708126746135629050472030338796373077909159396224282450726372278324453055588339812967588418257546246196752896342464186231389425217475845931420353791453237946902613496496851671716220730100436725124241580026331298916057718976780536055485653004784860100297912041102190523437112238931344688340043768450341503753821842181038195739805690137652629299882364433984749080523134331225608600409940093205799810032791618154483127328369420320157489140037262488385602008272165744953402993450761158087989129018916996093568334057187279402137388692211824761987130856812904933312536504582613923751285565694172276920239728835614631463281526079569783268008385120074877423982274820380511220156076596368863905234876126874145590938149157871168034281948815442043912093870970577916989103320240201821782464748808544323289959548257389026080409858960761103916418390841810170298615296780687925190329525763540592730012517639283191504271389401304374195214003238686676315924079216704453552724263407659002097088322357088460593266449128620757980029639819574660749781542749238481151406583139022196202854387963702400721383245803014187496248477239735038472809685298343739620441678436708022872708476911658364902401410710627461621769374053555201251802681261324350189551868007108922028939679133587965740428809801344500270460966433808487717953578495028428124182432859988754889711925636661050147849486815507557384168261712038525578705493018931116657520051966663673265692008587757901541498223319003940042900792719323467842838130407924149491368989140076756093091779028340387329935494387053172523237808902672300535826874504474019334979644237579351177352240871062568435323282945042865028348654737303365560891963375571733792525401463180334915766961228227501540125289131147559255957819417969490323248736923888307907299833821049699224699522368274148394613812524104774943570770771858230433810878763187795705414887500582348239664016300690218205379752594745041775762513449842835354863279499654999921489588232655960719408524978340204110203135970835483880320836502436056107299446851174039764968284576699738880229370244737566439633422639996493692909981431122394841778827965643638105022741470412492691128494277709792668407841272528463939680603238599510505207359452337483992298238772054376685332395272841093148467766671670586857444987848536734664523808831259523603056380336203145631046632214153495026391170211891457657174094433859053688861542332366739607974019528622748898335464995904697534724088413905875660034585772858755073460789390720831139974907545858451904576353469140227399850760689624800432709740018518283186872605879455761273969340816884719680917646583511148183027700675309032293619143244399080592300079847024384275277141679474151691209492609072020732148629363631555824288425998228540144637097652276981738685832757485386087040003600804922729118006696705184138859966264442213004946720764100260759945051021008773402279218013614795301409683628593836899004659604985699706328508030120083528007587351192538178541588299670523375048753324390434232801816870232704726556783095634887230824605566263392748882063910170295828787091904039304126111712559094255295382239985481601815205940519960086248906549938989178762235069308363241969408993153147110300330613346254017784164684135683107798623882092932261616678465097403335123413956766866240414379179442521335215209043018748393293176662017999110240599882031631979801565888482372770199546208596891420821054573291143671433169868356734132400576402391761399232961953690495961981461837976803200769265727669312911958329960319025028729146254018731877458625196375902126231187956152859961095321246988326964089757171997749236967250994546423862008887299949954811440724079240501916041698486253956993604788451706533259829957932217231517611297636178215687362407519517180347731561624588513825501847217543469998043947201522822792010752465793226952908167464821272177066160254906538695809055916908895297905424011826153512952415131943919826902954213288611390506036538331122045720796089281267590803677309633214240426243223120332193858806641388754244398440535944959650777433562647372517147739034179740108469526090570277585879739436635414224159653112676287208392110509655376518465049355950653431253623929739879408259296889744737271647652002014479421365022959787142711507484916654193112523798207559677092489378470093751601772246586914347448837665209334816591786466390644341282225348578504189879226260032372222315397451828871744102248536147047006932216408841047112076563526911787909502473574618186816776453429196687463474829935093140359732199482526714343667617431819672994537748181786775643268310184781461056568063214561598633181906330518197998814527357165124215174093362082361777949310820949833152025439185658170524297390818854384744328373473485876567138946633659790009390239185561502532368831329372612998587163677612032770757360804439866741917695107888824079205639262750704838758280108580856318926644421755779162114537198844131318532032915429528374687859638126706168470290829460948245547563832844125287908895994577170250654570988507333253559436518475437235862548809943901947527904605758007859219730609948776420662383502350292017847137580562616790663816369436955952724224868716679268773096459181889757650981936086994630805457211499198443906630197548933545577820064362296158210046187975455706099655751809584941733047057842623695471935906644033013475314358426247798032605282112126853992924554200631399734557375554841363551470909174419094048953092663831776456748498991526080479017626665105539299073566700505201350446569903840204226072046332597921241652584424273789775801887079143426683415421054363193876859208299053420250424950340303825690185928268954916422528252840326542324285674774052729079910816647705484304258935439113616665841229841972701570173946109552463311100700097850312675262703582362800120975595287628194506762638782384765205697640027266566988576487752127569290026887581647346356456029246888044927435479779503274048857445585114841349072466922186921684777094111765811264965958657545707427567253276096989743413486944138127748624583385135825979594640370007462258652306100596966194158800259502514557512407338776763862579641189995067990464994095978479710227813068363592189884426751896543132049293878969197819590083465894229608179539261417483304091848386153299760717339708468854716759450674228579670635569905539619149078790333756916729425059145326046043230256012277972863409266237248342576295532265396849154885230151031345853861371948522704705902828264541420101138065794420204586005945260776613104118012398070015547113148511892479967553592991878560735753450158085723148808093728385544982071601152830392903862109335432565711647192797529793437215010724796286085556090072483013990987956971458370364130550372190774619751026412693566702487342590971072423584522822352006424064425658657990436322631181443233922413426117421149530602378994239157265054996398584550314221423355309242856117744200268529110896767188026267280691904452615113252974867047391575958720623435280820228129399702238515015205569416087923386356094084704682465271452398468117824274042643659227006699799998033767304580722685472277651581585547830381114241200990906541394467278002182027828258212246216223984743401779025016831844785675192117492555975562124924374200265929059808331942881868479927591674485926167513176832888097698923107067837893518671993791291979991831532859649368455939724333976529846061091645175009586959265518260417199738766348203938598506689781085002185608552144636178980009447991259970564844476174736233452771672516229356925244046012891312471218551091287350802019224266287208249583499729795965291878532521645364694409777783061551515171007470748525260322103799591282423494550464429171841439300777546834101160393288903461191030434606273152980897220350982132753878827206164163154987381646200306086238584303919801053847366819090139807550488395530423682872471089500129633442988750625958818134099802822428584810719368405899945621307079241328561222600654825026135603004287740551342971359994627070803767145182199359818158750070119988112531687764983602118466900555483533652667700233914910048755416435624503628589542854257892566903317092412510162575536069425369795689317944563027172050624462216593021920061230186375293600465041196168206869454667600387813824077342384828280546574874383339520025890675628567101224083726023048638007573060427022605601384028393809210887959115290188660908216713152006619768438675868557414548588111666289989425746640488347193483548159038883093033931463574970313119922755990041100479635085916215254289332753234140508122164521503087742202442321371764538747414289961560811004156447484103747842657356673961984212260090065818931076463240604490938972569459360785689932467074814264628571498382668153449659996298796400977507539126769654033355874531428085447575853930327582820778514251823226228890801388439592846789383926620304575181584374681754391651226973119639946165957343391507875071505798180298776449622661268671773300067233446528199944444582526702364462249154506193535405139173965183210331112086359473985480261929661124204650612178387700875869435377371011531419545204874848498193138797118042840227369062562087123618781202426673033508868919378513726322783971743120851209152846315022023941998431228516020211955767091242408614291449369399721004051036296591587758520189886938516346811065626280375337205479061757269152465933626438280926086915104323101641260665237111015931430205785971115166979593883766010822715656564917042100657765171403245369268000461938920694921338988492484290849998833466820426229537735383137825223942968855601033749563558013007933997742740222604459538984141769778099228114835467021438367549413023110446815322971994685398053347749931906028681488910937096157962859493373806446214722245689532387877458077293280352503524102573008531095785130473346244426885218363777353090065096017795955257065676737404245687450988641096172280212901492336779182305183746075512470397777313536559027527559748845741516719583824826299170465123724193716227938190238281748883382544800891803525173768219606886346072537657318086211563817883047640874997680942102161827975722699159613431696360197208231428503372096954994578411763241046487273961425273801788380244902691217072255158898643392499665149405996977448894337581135984152934670582107030522094703468148003408152349887928644051800383161337999768948896670516407077014150847842876182737987365607077395310236119842940412177231859593200074849029407404055618946680163507772399481488215762255912740342561926224562746784312215593022935160409525265403192098357766375751047010414057515442501263932259119933537741942076381726446344451273030218607529434019321452412808688279264009218074664303796702506549372045394675487717867712564995560083188052568277682235397778082780173895175682725820985929744859635537323074725944567273494971818943840008509273232368294789103327109926554139404902920916427826204594471547864310420499398611401038782519444431245375773651185145156095947604194006366796473812968807296843251445062910369617020064834773374488772851463257529340904949945777595402367203248660204869123481591015125273594092153069295058460821103105289732364667443800296855950461773743022987405271209953682505611750770125679488962889105029222711050285559843144479259815931109609644035712558386592446136321010774929860487941096226829452432899057762915866032855152382142791833057964107926539957515670862946097661602822566326954891292374837072756491869040382561892916652405070216243269845314148821160012097551623186911651912555793137052453619258211110447142761272997710904943667391791805070089447205671082848425697849445824586437608984846924406426788290677655466711960605936000264876055935544158531956135981288081231381132891694790615995195121373427608321868083597549635266112028483437680864034542772387971474722686715204450776713713163114659272487373754307943068356569297697010915360859398612103809784223356384474003734164983227330431180731721237065829744887404829082902797213894797392967862536599170430636811776799447320997917234109053565244224168638516342594522160597382444280924274483216585350437477876239645872144443220156882260755779793508376460222912428966416940662202810364218910983718226085293634699029439126404973433239081069395120404000032234356857824611013466253726353811875930051222133552895273302551160274538143889251219775917883099476622297059533437259624764963815361724606662379178470889361153581812513267623710609789350731920988365716434127383989081733397815361787114951732604510551208881126670670385599226573367476151265585283717310652354299430874662700225294664913567277519455167410701533153120845816738486822267636136787420989781675037924335328020959923985408111278188277407930008690433065907220935273835537210945346111926887297039258563852500052578969205749002608804134882668478228526441434378062988964673857409787764330571411335174470070538901725881938479817517410579487089354122819068390388595386558601181539938849998213647200452376367525719601649679860022656454084404913018448571087260714517206064868153343257250329264045836647865473727161820378861360752853787316618265912881288206622325874944128752964991388679056518316280522852868805500751077545251891859284902312158802050551981462854854546108946722179392534924427175905293714305153591814568962634697678058561141886124693545265392555201317776052074689524159743023071128949026946436261170234261424810710150025089483427277872562022750708092704765428367086011886829249078807375640597615871299782655711927324488359241437856245652152300196243354719857023494344666515497083770106263785623399607909770474004916901178394164668997381928753731813587287077458838318469584136530473103547829305032121451260154680789318094810057206451020362955601059740952444840579786434355887730880255748338468366340032760177879604225347073890057186658614571547627737118405150691876316482882977602974814352091652020805023454600612479119911725575395518224530469569836046156287397225897113486250826072387718524660269389009002400573684179985210530830371089573920531094806488212400160867096686260392613935909314181444407641307199459778054020179725228716288096147067805685777881515659160226848498315303316149575958773886350925393142782513372218952022420806430927041245052453601069931169751284836330536568163827077374316152679561813569030219640367253133922978940741940998407939911080064075984952410139114217888390511433631613674281179615791169814245095910809027239079554835730743187014150139646239254232623924161904524952783091979537565329165890328557933327604300174416854649755246069476851096869059454287319194046230503925740536104278011823303222244556395178980065885698362974987229688903423128849947315142854647450012156304550421985514410349343965494251208385368713342116996310640346749997293378123675322310951276273690301045431492945755127612032116309144966793128088121641768785530148557082206185737767319543282832100634113201295397739326362878106276025327723851213019528164364842702091431668688260822587083465071157101554767891734071318238441783767324448507187101315048678557968744443096919690210633010151166481977772438995824248782868902885003356983857085967140318236706802828524442582975132573902376535218327001948577922475528902938470505413536406609211434329104985229128620767235037590194529411341254666666812194004696671460065897664263613319268403357630286030382607739743513927733904570970557245994516282654516007070451643912471778939752797630314422730463999659772369246149852535899707315611085537924892136890404843289158177835272162223937962688608967551607922924673495476728579096529658551980052379909845591941374935925596161517578622905622329418831176047915664751394064312990844439489658528297392128980225397409791503366683338020935148317172468545143103761528849273672888738032529503310884581098158296481481651215650401838461080743238790618353588707230805844074173896279365019843075064957949187767730056354587310992906269949075953711972612522036866894596779282358246198719833934242819775682543263258839726071438593115948786957539822402795871612321075734171504037929242566084701996495057229304392632052572486638704523287276571568054358098808103717443148069717349855849065231283986703370553439303638071389643820748194525205327997730691574883359135122619214166542349133189378194090852704437058390091917833926874350850281821014326518143019810764072745124684744971504778247523092631420316441370848245102186905529145800803700887004897879149489868595693133755671494562288745931878231991851862352350221820718145007586325152794910614037831915962103819000892192462873156952009899588988553609646430930223345807303370633639832154590736079424226949736115029146515597059299414058623451173721981723489552891058172577710640433542998196673025756951442436977529330968395500075601630227242808241603538692506396185074256824992488949983546373996032018936723573342643387278733480784955436891235351975785283134883468041615875126572973482588755608497426254267422333250211495944387131801418219641586855186150124752651079113229788418285244651415036261514643396494069233294118997345690417090018994547141471223089061089667301393891618073301199337683891138463088103299743880463969682333201193296676032233395380252221160725907399196961823389921095110171255813413267493466980528515379188511185507991058531975403725337796688253586314403032931556760585245889591498867228159972879355186108089777794044378170974678647258714697734202972247615167196687695951293781726781727716694598661534073033571271268847272576303636778852235973010933421874042629227317898786617658827048551784507789263182817313376252953465283219219163175038657400429131452207628982842635240107740871680594827356372895677726586629964604091201194911235184344357108057757170471741866986383369973091954283600697212629375799819753269982689661351837412392144672262163321743555546425627889394734440737248790609298559840501503790752374426524279513472926784134290298963478291548327167455258030872340084588892240984440983949933736835719836423513776332953763982514978456714976923133726585144067374204880374766719691227486776563931752845559765197654589358830095634074354608548607081723367833486705210394285487513086526980026227624831013764884875546655506557126176892948899801526869060319423531094792555258887612343081953120661438410998256010267895489128254720980110005108945225967114962963132112434183315991953889625561715972142920522711653685432325204450324933184055730855900692848869055807913823097722699660856962164238848813291757146221709484435306900324434071875759552228195483169454883867056283331084146908811905475877718464018827478751637599434305296418753072205442029205924017274621205570403970011808714338656108697167278693445457274903731436928631969366724666993312288965502949284107147721552479487432625192599397965531661949473205670863184308477477255289272724503516849652235743715566983785077800349103916063931220810681640399178541190688269874801232193763969363498146111774449131680824629525797032318850954720553595349607680643748407500293592095768924258543246927962951759826117240963074825886798653575334439125082426125142548917607189354376777494998483880314251766532073340733123019367689819220177108567048824467055622720322779742964939063676997685245771399663783767461922985962891665575195982369766804364949200682819060632678925624588534508250660938622863736998202317504060966621995806298318812378642060398625857775541474903063397158536512733383304417870941083925080560902162654859081150466896573879663177334771728757168532265850070394546019311133071159474967545564100591532017333460791217357601151160146155837309118389799930662613575613410363871095203280776469950096449901694328805633036841412867939811220388713818041761993977884150787654799188797675755930092081948171660515925724666198585269556289084119000006376894450475244631296407637515953964365789943014973841399441046486165610255969879965960951660061722058772098709134939319601072935245096563940462340063479862834308294839752529654553784061671558902337595547099894787765170505734481948038133783240672727371798115142560934002555732504602348018431824399075037665116980416283724605764099557782637153019208800157790668970422028968037863081761742577581947432057757750085951925301652693843998609768834433421967686238891678158621814376724077087911343302126786935191131655185071891244420489533928893700782359876975147173619251875042871791259086969053058036708837219852113404985730031393401219230857380038908702132749662601001753301212797551814122236727647958551021556152717918850408717277967344624097236954924134675070803188655761508655016071768569324985631018034833331112798720456914154933940821646418705498612080924849543173867316668509235642668041354164574102739751129556743324677345007135688443234977386044946440978514657251638763611385088793631266292010551640978024819504531514601017558377798644861666894296006422588072553363462327656451127032601444359903232702589193885957761066909065869057779970795225450840943110297726497095197199641303120558924627765829978524212841943790987267061241241683486162743918114135453458589930036246342523580617381337100302472636715136841468868893624188708522664002520309629960488077214042592382005856210844206780964377687784282455086570209784246037652366646673900610986900917440687999136761061748394459695508914324937221673633675238709709417769106320309421860170893601394539731377785318087116454373943406068947923783510634284503009963915020936116115731738723355175651937743727726392791471534272109073717366903345797106487023455715553644329010150857678698202810641601958497225701102106783254483170941514841603579305767870718559462624024712286265886777184994617515024693989025429229051886210803561638463560893598614523113767424778895414341436851942178327391708866389739277162762735355340059854079164672348066059805148071526282296880082488455660673005233328290708660915105904488329609627982617999971872618824135783912334234867665200161858865212248185554915264424183714646137976404953272770049782067314584785601718240638426378954077147323322460424177046614061292954227343332396341753869193394559261500490151672638167994026796369732732758326681989014168884973658896277044878494283397632398509125881606536640638126372777889896845189341905939336410704682885821157309179793971207044128157521413449683437387368358718481042684590800639612513065334585751158247886505234786526397998457336983383390523597128714504647320189803678598472292124749677435197857069444986498697308585626523583658218884757350647244774309491259746151863911642607701268539297133051103045677726823849643313216893530949162502799831442850663100586936439674400015273494926128334095051360532428182948409514930289907857200641666056327495465381014361483122947952431738464316720250502769408458894457071333311972214375537689642534284781716606071991054703037781163573748925305480721000391932321557535882412533106665632502097981909843908881102315724131342602819632562622743189626453618912610486739642331642026684193013803459918602872374494582325753895142499175814479995885394857053523258832072937555734905128209867876348732036525345079882401105170224707986336008329814054244147320357083128581927337786680176782267091295850803514951673867007650416378334323457803293794191703824878015818012033963371028901925381601305360346496968601937344372943854351872685630237841070800231992910845333259459256404352329534432480286934820055490074456751838633439241862538649318100632129361800623712695426431781081556681495801150612520253125434858668492632965661010975826773314996236985505196814772758858133254224677261505704580926925096424199250674748666375323265157140059020415429789649281542432624294839720241720669275315574364991770490345832719982776092731198599449354249572214709461218083642173871370197513024482336854223227006797012888893514756314266957191537794960085459639410761339961094320078526788374819210158066198475958183377337310767083434741105366879328818663694127463949780184474697460785833573619671971017120924345031092738241393042979184618314812443847851728985107984526876516363864459671180953605730171287105585347038100501658109993859327198945898762935610277426040568139442754580258517808716201340022160190854942513453902442280469680512652677522084416430696454306885548235400043490938082515651496288520993207877330516213886968742427153107059337721066265880784637113781780629549572011834500459465422043855472943466932131100802890385813253520828901873975536133128592274564700170505686293320624645144105088559394768916176707681597039792757929867927246315994649417830593175580951500357561635573550474835506583395069270874123610601229500308936920172603643256384902276658977179863951134622914282841317211936656910713708569229701665465131576610094282467317917364126079428131232697963184813275973163977725893925731833224881199548217912835350867254686752811936901968546152306691191745215947684309324423640665985973830930385510251263006308222788324141202807996373183716835840676374181724139351376308996100792734980895173529709416625094910578883650155744284648636744726845537532642656251963591248070607314914134391190593374567264102659545945826127479633267262776970927129143720967600182058725305315208761520976846596978236208706150948133655783400372535050157129487269803621758530627304491821846305363147296502396537052740119246141320384805413767961473254535429500331828723442440626740366691910257622142217096562536551313496359210361655752473452304978616773759578700389654664717289434035663022674772573584834206506283922934772731841801100873921616088432770283097514671407331750721075932750172780385933457098029381372676204360411497645386934234393976645766766669318240307558456810355250756057275449069917239731972878790189613665064179957736978773134523773732816695006717397685044496409810618948703221915872707121436418343213307365576549577688052457515228040940530067755318529356037351124889776055837221139861748559096013375490188988520521221348185889866158931197497722370046409744132849841578934223068107838410631788625913596686616346205481666322315008563610240707057747863204898514056252917940172550070557740903965812938932029418897295286982853069890314127947525580555357350380857398817179930370656564319302824803805875078291913606232656088159044974651819623677892760785568444337974922929953994889970574213586131661953319291887973430503993852472219822281121681199879703068946212198364715467552944689898102340887905901840018140899906155867182435401606839961210991796609754007647779280386000933902017819022784646860286365671607813690354930555258511253891303765958296826642822638988142327222928391332054968063796198231931402692817557923857987145512805877041243527019739736517041375444078539166351606184556428491498502708278068582916416894013371638422186250844630583784470277707663160111365945271767478464156181550125871337854547895594985768757813093913524017091767864579332359489126366774858895368117857550850477218992773186496157437975751230589216684507709787732375157662189856063955083749200756855161292242326121317710456682887358223677858316367284143410721839541682030639191777144078885872292706811182635843103693512279255055238634577227555643404617769388987422323852788048113640747120566294639650230531142614580169473656749389032314424103000708138551953666564780926471561784140926602518513345580035581381651622285872120732115880528407471062207084321150509320718463135549721011309511231849744489465198702512769392543943193367877694597255266144614909962026359410622176317584901638541048215809435189075242478090704536759245949635072936407312605630448090243299372965054683768975989034309231098466646523275239283127484178814298118850993867117126294199436202856776867324612659425313482745591393738723165325939220603302305675908420556768826696103921497764324999650472344004934029354357369469171990733178289645773075971976109470015342863488780391288496570033087956538521866158316255382501724279599969711520249588771648558728970742955179667311512545693342538779187663433234071136632368198971206940580520882221153637466237600413835257141686793851680666226249876629052856115070782053245592994669277635744959663284658130407958440040385718176906167610878201474662015273906320915647726625080143554328678288940787880585830142555899220840438934019041003704675626957873363259152408295621051682830956716074379609474331137699272156896553125381199515638874753839813011991910691253713615892761291104320517881616765443969319067005004613682666566609553744624132364957571910842825774348852472470732151534429044055194464911970879292998208884613456391592906544963597641119671947197690947234658229486350418567165450244615937814533841882332362628391329383193306466439910250588950516737089506107986320193526921552634821749555096584364169784845483276422604362692578216171361971761857605308072902618067897239529827048990352949667243467870585375187381949936956599143811373787480421964876475486924436776984912559951608840848076611715969228037704425699339031497267944101664966221705746798146568949516817585963339090176483747042129430014440606517690555401756888942115715214007266305389854080377156766603937984583370041175432177494507585411840176784396756478806785339597377022634058690547077120796513973569014854463514919806057697011861589755122450485320251274016337663884635420171357029129628763472779034382504540238853839453708152598251546378355076737844698789748895460419387934573504600394943774950649804915222751688094661018185461457362261911509731842775197239896522936016820875069456194263733608123812804394012798005421825978731734317889866904130498685898598520735733810570511511296984721085478151449730112493644598927830360696768636001217428302096271315335021178312767889430398996028900258651578165440376449048805377317057201955807569343159811523583356489529498349317245030418713909899977481548655131796790235149409015594908442177280392180040576813401913638423027195931461252276065780000983702108557412063234489941955767815967611315690676400933593086269365500471392872771284590859816636742400813689272406032886773942741249585020263256404530935555762956941773806823727914657363535421786922961028610992901842762863060301198660576803497789052530266778195556671086055703578955700090204595684122462277760371833626317204643342485207648455448346422257412823144197024312904563243245037697191236889027330696090873896957673931170830972246604711480688051282091470663380445159835592488601545255282401961903641998880769578547356239871569018008306430065874496801075637543392550921326596676150165690398256758830036922912393877373200558066548656181179168456854297971120303511729010532169431220089506491262168024612792183060284974655791281578733044442774587156516079636554952123338925537110866839425624775547164231993868325823851345888517340428922719582894830771104443882625845336530336975158382945673383394609240471309068505464708078197267227945289537747984368179199261839376438462652409862304741255057419407364909609308010191047106919284691614134014214040873559550534111368847791768868431105823921075374780326598337353824598909755834317667464196717271135340390156799046852380626794967910610157616906256339058777897268766794028027236815298908352601428753994562575433860703375793044618826397548148245645907684384356212368427036505532011924648021407854612643217202529079090771973961282349739833874180300778333270242476651804088291455608980132226602109173435033710131042478819771403603443109087457182614906639388083698077812203539369365324288530259124104716835271178423845527291177981521446661518573373232819395029610011676899736692032547200657946979608932750991391535428008644213162077485900471312754531458067779374377338259690420372376955408525781835651756228862903159140916221252727007776324409301234220708225194380231788528673212019298161620542714651494855976856059376849804306103863889399956357998109944521951187608368221064056838697896764467787995448379169887087384417372631553329554059792239255760381998720828455022640949427317808573980198671991504624313135026357222837045432215900339044649659681761135846843994548744997938746239225025828027487328149792441904295104687229596818634521847459047106798213148662384235327396080104173202057673160923072802543990948790768999600382508420816107999344046916143973486242189826967966427997927970308495448678654489300775573866312668000330848632654561238202596486988010451930173497727229079853225750869879055696384290954867475866713845377265728802751970512353960654647472741331140843371969821471715633554966347951650574149771271459864739036767870941531414956668478901981760013955350592688612774377496420415031213093249459607203529852169263844508110804113097333790469158209015529715669696157433648011521092713945853493545609650266628538194382613441707194058165261826572744124146335686692527155349846739958635517011922978590169569463412686351192221946278443266057174581156642608264989428086336960978662139904435094083733673586604864994026485584996901915818133110149596762350950927234561804666864585738340723732597889363267650865715097337729114491169108983918786699820833572826145817349025049965448352173278005766354473713505016504787257256775245551420723147176031321304597174157856714481624834504044161612560292403069253282155925402354539624325494450624383287559007031899968810518655945031217523269262599996403644082756447471789688937868577686433007022409890731588583261597617103100019828545402516441939006970272318239545954956351012659917880248223121968905302726545144501554256488824710466027455111918710169414545661833802424906455832343535941724537020506260893660896176489061493156726470877559963464032471268719632664191002109922799773418117101482210548201616277320451876134405090944054458193114992945772528216315538292693808449151816112151374247642003144751519066174367153296571566845485006968076532770987384055787354795755368934216594870489914402045328896165933481914273295752511698858042836729460840451717652127476219798502943426326904071014222015004342757471635636289440065547674012401499674477367124300557288447300671078226455136934132277627169258936151374700906686779425239930503705244300006090794371052862580353339193789673814361191719231981685456531854992836472676669634181159373936686626438823225305456086375336289434460767137107178168790265561115056096227652893944600273954395092608503129681330393918151402156805052800897562917490758492886906522248153902817696669745692758733379466167000459261442625798126579695596809864684871962186535730157271248585916688318680029277208224482138545725834866267452572149130564481989922363789271770083196803928658656004724840402546757929987122965675702990606652450327331498083837133720237058775172440669370032236187529467066027259988802832567108674609287393823391703343279441631031488416190828631514236296333832996851727896120297966104154270814652596486010853196704476206261673788314464140869483559816038875077583779587805712161262610959622519087086023258501581744062168849747223387047089529366749359839090141857997505469343759204273532420810145862904889816256498534201561020908923271723786627248545003112342282251719571489015791830944122383903258821388487175104449984319494263461223165347299198533214269269951803016006487844708464301872564422099123076684510166979540439007868188391232406345080605425145369866271670242055725457240136559974172406041172080981055047691134736837599919318854085021300795991249080655072254017629306056498084448849975835369484285181785664981629367886448533172307245826014389830847375663687254409789837401705617861302160378345893234849248826794360760795102022429534834120963905662016190435388397422514580597304245539164085594978856563918766791035350704733819186670418973828170080407786246965872737070998741704339704317455228695854107389342536731682550739134821251502170917506466230909808837678933519517470669281365823104505344878560749138456818829159893194904890871078126425755129335966367884423846855175030878262834998156893322981614799639076154413071135504230425329637996345238257929507305563052794117277511911864466281816701022618150483880944259069939147615369651304356941987943346872821807997525714807073929680600008185556029533624240034079587188249309947601071075341597928876733972069022523219394165818250481497001901135249936195388150344742147865825348182816524441342070181154709426514201685453407732324744630164486529806860506945833791779880100516292370201920003105938251689164820943029834961361632298033711111485207585044168697532609005753698257126483739863768553286919631312002034440532529603205504353016532454428484848241916315574722418920652557967903933445114581465338910148306828876621977844834581172535689043301432272968821666268407957497160361591398335139420163989653045863932481868664292774811942471715106173527633222288681272689926726247055676510850071236082171707809489412852358913289414712123890199131289541346668557364712564334378488331588865530502585394895438085320849019211350657256384219657025038225776318526868629457165515791322335150340326249272600657006730344756343366443510954326351102519099725861848348357477177784789589572926305535319074641708416923795544246278664618305198098377959504060334414031344224907726297606499640152334509697336221894266302941468723146315235040100241370073610617916025294388055997399857799168005033487870847042013872895505870670196379474139340681400013196688542763737430625326118703029772728558308888442160913624074018441370602636859379502814219094135399454769829445995111045418557278916906392379216693494552315556903729328877091218134207029478936901707342804011887205200228595658135295555822926309387532221985678627142306746927795942287169189321756229876696146087698449834512734964726298499274646774465488820688433364905613009608120200781176051023704220727636050667165117847934534415076781347934825176149910148451911216423425726033395785513332471061571837678597176254562379212552130699132544798200464823844384658013142199158056787398885225571667648222372414251689171539461056719130083368823407696184556629964713733696720070100553762470936758140425848805488636680381671542939953327545393961499949727822444354133505908482466930052625678954415700715927428884053589122012429262040666682207593118260817181069373616302935413198609475233755657856436737767515847582777210569744884600098687822918657379823228268157615591129999229840556501055054411318387391824725452718273183945397377993278432870177100236894781513894060021799582672000051002638760655110007397370868879971222707228164494161697663095199764380507346528123283672427061927817768617692152729849301591638671638253825659455096962706233951030608737194665230928796975094677867881424145415106912531387764337556782019204102767357335188026052677541650481559264917710395970120502070784667446567480325195373206460620499348922517004150783585630309116985360880592122600910523735275745022227851401378390649365988661554906742387331321481708379420540910411161639347863646195951186329586243426876953788333179385761552754071727623273458948527975705199439938308134062063992327056887710715347823431398182500589830723319559044282670075839561815508229937783029187477359527979551106875521910181532870838664839601317570639355341733850083757147709215238323025958099305100668075268908203176612066008166777736693834445202718536940505272943553683357671416904690762016945135719559536155715791548461623702012735401943301401061133061953168255713854093449378013329966429613964263169143851656969776393635762282782652256072865303244382385152375169106588224412702313640955180564475246826303220947125919451046039758188082156003228071669362994413960113418384349253457165727303704216378353119456572044178831785502127097417256108432216359805470509622082909368807595384475429260663454165164819217983043646135486712534525236134231748915442902880293158371828886937229704269207880619843840210604797965289402432459551060543238338293039568331199771500120872842435886694856752871046393848356875773574362962862302818945745781614460023321188896850846871861267102380488084650404435832226756151379776882617088552046921055370044739579377258753408512904441327181925387426924542969461851358135737060171973991669700824830147642864347602765826269022583579708017031187920561658703159652576232591516130310699405576388226733902590701110319952373264263490257383336407663797326322537283657437357079946984530776624906649150228318883132597288789153024747183744924178567891840976290040535905254346650904652580992058333179847903448410618274999869057649375609222896595140161256203981518046975363147434468838421150404866164080343616775406158023130976101051172412494714110588297651862719104556754608396352875052170246243942399240625073035290893021938319995790920930523438425166317941911565132438914240592079269695487750191138232591016412503306422633360591412582490771727937343777027498110548888025770096207926640489926430483227822319373795096223562127152904013256457227503816639708860461901175430612058601650397277337668156229758119912516239274965348245153717998159454348513717676396744717702902912182319253777483273147653357304411962169619443699394442494896296844704656654125378723652273738692964591162499349691181557897901425916528762716703643027658175161144284831103643900918163752077691671235515672466609700813844293903950174241620078064498169706434346668566060840303422445215439354527014485837142625694809352106847606018043729200661243499174208011716120637781682497029585408827439640296228250964680360028617256026888132437438309773712340227347350574440152431489834344496393499076839090648940819003127477533045261000178731905555747126857772354481722645257801609173885021764196696923862949059036326363869171308183344536896018755537486038025079049635209955066939527514374512953634091815980123855017841271173320568878217211604557176180728330106686283287978146533319630956973383866633256197568201645137931996721549584732794229187635211110373939652505915925349201662462976247205133103748896838171444428242431696148372800851213819740253702274444379109174120603111638894707034795382256758955161585879987459321636644782429124311236856099769709302268996126330441502315017226993548115128094417373194337146334633350479756213877641203033313552273374006762265150664589600915587591118791461922017615588045128194412164402501722901828765302677911644518934401441468863437377057009465863314985867725171806254898326649118218461347435986045716586521740578155796433287662246861203711364715146017342213950116925197900165757745469968131355410731874622680379075318400898705524882543414965979012933864168712979116365746941630928875574152285998592461835823476365603776753655692715060268042925671287043540239352918700751496688745534964339621185874166654180021430378036908544960511456073988536223327868545769130467389138876442921292495860026854025233154076765566576325651651127597355536690045440352226129005802995489797649065026458689834848343135560395938277337163039623094115064196418666269558561396526657960654884385351473733572477209289328844425938463685896636936061056349908331175581137150525848144913383072024971309899558864369957611122696733434674419791318655139581263504972447283124918072908364879491687729834733038500462084495839763867292913820389225997468771937602244764267967060634811407122963421531676284056336986106726893329258642454744864124194357042404340339871461464326858022585564982456213287167374099863449593401587013642082299384445042583142496114541424382873812333206131000418425631787814971732945512816192146777963730097447480763205938821930421566174180727246288876749539331489370796404858338756446660311244309163563028467538076463095667902054130617340959542569170458943902982526532162897641189352775818933214798531448173866848507420259804086349131766276846131348926431745127764126101886440110913029024204678974018771624723210423398982715148738696418248118518055553407821897610234128654754493188261858477758088124969262753133407865157600062232564736785780202209842854110125195744192254459636244056143229589221752359685439666408296718491067408199590565278080788501618371279248193702936371979081856192218076415539727578000535234098762085766050377766850944376833236852876185455308601777220544326296499828255374733168035652916954429569985058285300728453059664407106732691672889091976008755677047406499739581418139621921211380887843530102819511662057109862114729479690075390484930373970829135214286656623177305391314452957112204927056781681531997096587877187926624383876836425105437852982083405150358722946446685071904262549548054221213577967807987389742314703182567923017992218617429658722815694325298895077730057373464656480818623374082666999448112800147527726611435060686641305507485555913072642973493547253054793878164971914793290059232958988096156868040711560242523861351017422357077242069055119613797722217913265572477048597456351354334242411714185912882575979482860216008305392788937298782650508910079959061852690399967122479593811505606573146876817505408781910994508085833902084243958792842774338791734119435903638710726880623670394287050562623082941137292570793665981684710213252363435084346993420004476535133192581067801467562534030782614822693478709681447698692912003721238022562892658267229065287268354722336155421951340060428263190880941866586201231304135431207756957111125647294521100354221414059965291190588475371048442802576651583422165848441568721414659040851697625002701501627864719235361487390483679313664372664533618271375349361876420977768800346796183494423406122255257546901195146806700387089869694946681016506155001104007622557391678263404454380477303885033074056456410099964136146780938848927192125407229127581762704706298577034714832962269023678230284131142950558202601835741724430001090130357222470639677958186687749820184037118644977174863421203447084716352642808133443726768177648563262846717390792612318354097846137561675918856961415527587348771594430532024839708435419046618474439153430504176898922035873050959352197479531116805240649824200892673756541886833288534736039875592114386634598094627069354759445947654753938613218354926238551126290316477776949001385868846156706930820273911506529322401562697584322809201809935999374002896435032433885582575529041842203545268134143331183433176436677002815733952326315603544391756185425930839966601573382381620665613366002451270301096145505129472880143409183794237369901928897737451242636095675402710631576152938133113127148979151149450817121381866196540566467151036473122320046760469549787406039999579258797796441574839025515445140204578682914516180530466533385945386780942203875012298917779875118158050214826021840131005235159707559225502718115585623415782941841622042923137560357702817885966548715583068715356625500782915378969648972140040306984126078695083163829687420606297842387144133859890715488277022580354677955632531502148037237903890338745065803913027818027045128349537281884529642639494436586562931319594269466389359887832969140528449365373580496101107158001246876999791968015864220905321917232365108037640866422715409036777105759485082842826172208831801044762506006069379786070186265746401487111549294747436463614741058994731642961057593756845820465384381019739617796820328157241322810784242827794051969661714788133822907068019932657230911708491954886649380369180339379471364865799858430482786573464432250396402687563057213960647608752218805149055394514606644338970750166729712736693366670246816133984597810931296543344201165266846162179620335940227018861508399967954748011533644558179201203557516418228915477705344213791897230543269377303410551914604053053782190121005099072311128302277213387188215292330119764356327672742282634110203894957908013663971514610182531646126918726679403105801222989888414574026982676510517224304591080647595170229129828644860473482487415346790502393231351328555867323197349279647558350797118405254016499770292950343958148555862226934232270583640269238061582689667607705441184837932695309549554985012460359269252131934138345684063610141950400439356358021709405579999787283331598830698008490687377815456622416018633671113893672208379470242661180915141735450921564933398144315404617840170780223651694383901377254252703203717855110902176301420820886632511147728606445422533391826598624684934799358105343410989117005470880660131469405592399845330382369820751473205629119972343098516553594612096747698702050900861021249369316688056982039523586344153256900441493087149590271828989647414199793393296364170482464540566459071793195090870616950190461022671553322976475983012106225242307228383199523382339658995495022189500722924370736358689415966539907297415850195546874131458687374210940359110340240242224723772878626833878279326608220234213181008098315683196134340699025349596557917820081116112278229699969998768758336857724705328598192348954676523323443362290602628195430761761278006264052174227772921474545877403761080489133933981042715940759569749604747472147997626574820002922915688679795883983179759149379588478069801158912743809149078726631285852189327680920891767283739136786649149483229948011079345411010559087307115730363016839951546103162348849822940636729684187496333990412724415859031992208827532856910543308283574354901903964833577565031827591711565270775084223892423575957190126080598433091017880170969358819033647485328831744011278559074556549090154852515087978024014174468599861338362564496437782656799281175258806239738414746309023147863350066438327357888735955640707772448081974593577167083869431779752775063707979222762027993197566049270070634163578264925010907323282397415944986257510068567736099064777914283784962585625229577797174408113476112063455917135920588311146783158580468116781392854991073499618549359987167727353519037163582775841835786150235133970129520787328017645252825799249128661645746391780460903799249703528730081673676666659624876587871849144996215840956644562049583885894616294788319546037879534614032892670228110373787765726619574611994302044073787528326217802078171645142009008924991883763560282831770682678519946459656209416594340926885525446896441364930349308396293139285726749663172039639103563772543516103714737419453332203343016186026048719463867182092335250810270881999672948296470246577880068888442138712703398105113543604278607237665594977695108071184147354692472899901545548884922998654103464575914234154365904402653574899606811281562173590687143998106175524494781562295512607375295499476931641192047116822586950067588847648551179105332338707856878719926355044221053952735846000279270183771081718362932112205158592357480964178054652345749449529111430654771696264768076873139472432309284962480582692679563161808978675772639129198952471532586409515158798242460746486437592610300566973479891146428029879947425772347322313837811214902166193145022644711075495014549325296779640738325519847535900602247553155193764969732094941475445251526651392846316968465170817480731066075279031877224846298984872715494451986336742784968670486845290194449036291208901214912910885364009740765908576011566026244129419535293443368402278256292532598600087357344862280477214889127562681392139563504668273583054428345915067076396135617775937785076757258087579172603929550901915834828089164148741440212620889724840366982452902765515578995671392031206529575953744369307858616558584376678574279072471645287267085766045369412502336918690751367963293205703875171861301180396153353407259287533004149789141799651420189996551998601125705872584710219929101228414381935958273815116338568972715796399627733727620444463883820752244340014555869974587153183039448274510484053782182309450459255628319295747341998741435883664400896975498147147246859805911167180417317633542587079416581333474324104274830513161960280982572469417727163515452709364316421778277954530260442849309922606154970845932712397961004300946089345401211844057645615646833410094964865790198167350445098619220878820589837892875287207423412255653086240200968508797054204508439902154315895288140439879149348170048112294466783688708091021988168439747902583591390655926086686779291381593870315926460716972521528420236351133734868874182546692615096313500039871881968607475977295490177227034828189490806204742699046401089880516368989997105460325495926691126839701431252529120839518671606918585258826158381203517155226681845780920685531341946031947085624056109595858482161947770440064299604642907361197215300364724777529934566043775236821733209698917992211203643812483941644553196636187227320641238561550639635359520545553433541975246513050190599202781692616029691622372752606357458452354371634079103483217627409792171241241939057934508370856688179074575266418199507738743200246465266127797503954200104314179288028677783253573265513512194857297743975552135635575058575870882173763388538487835988884506012508307576631308699284293238825592611805036071511805425786302497708956938774892627060119911461884384094349766860413726878424911502329906251517587801473119854776501800813989381168172398734479207547056550973002731736137416830110996549099038742769790406296432730258743939503621343795287732587714544538260575077776932579004669411551670595845210249810322490371832626296916752497153700881162886664265027473759984384647973227244879252891492454926667635438149985461854351460748469239534641963517278554893825252318348947282791891313800820903841478619795686089352186495608762324752674439946808056662061361792561820675130125429544469246629395462983340862744555943689753803149808700096311608846202589608323220938991397480410941817912716004092093134770488364854269601945014250516961084286816583571419807916918680352197426306094058995196231788885950053393589694418913381959926600921861430032297388657037719807901658041096460816854009084016930176459482088080819726764918629585637157763290747564942557512567373535175515242173433993289501293226803646135264930962384277193332364640540469159767005288403647236930580758292061609866117459494803847473024961866390704198762381434807536181044328407542840907225198623857976805940881212678580221154381213270970853734835023435570343397860416011627786989376518552047264476564007643529583702108412051198959540058979829039343797513588506500967893079242724425913382134938714325064905961842560692438035560657012280774646028978330352211069427056015593001970750078331087636054627707110588413781156674933499290670287824091936575859885203965766203170277447740937134801254730345387430768143995080696073217268667559719769348819106984250430282026301201242596721421528748079965274878511106253202284379462018517516912437050193918647324569817558160109391779789178677203305461421458746186577897971364898264532750175684308993399597694340173871253609249338425903100010362462596281853514888701975552254313133627093239464186693071854178082632277860552919275393219206793280469743730069672338575921895335778147891537512485143915440048086353485182849742002276172277205688779896779270262057344641342545580914967017853448594643191059756567423433410540862752528478012101076283892254806314422615723895603336776125379060609515023536207933857689009322695478413294977968081550854621217415755692047225453131237424867502016633491575707393406031514779876566722503246176230968519467950093395957629092975611137752707148287138196189052623339980739007443667074463988967030028291514349954720097728620868304109878081794547630184541818297013932982845860009042159344000253889893070797705733336911618125523850993908311005957200706572869434544330638937843383109003086257811492736996475503090700001326232108719516485040327412035154821291614917982044915580152953236853204325559300315045243767494057855299102363260023027170424117173754499774075315210867945463897618123586420742930930336905301771976629668704815008866562858619930379788243532893614196796349002159191094834353506797397720169301543675870930514063625798220821882561859907903133024507151195124518194633704140108076954538285701298634791666045925053627522779185111239124914294054863344797582392404113856435693857660461782131168121591804773660785210721572124580485676397060253646544745413259172096670861664405804538655028792746532890893224782063442150087276350745110744016415217048602599860528043480329350186748494217474757461236966364496008544947189899204328761754903675267306522926985655880315339013566079032323444927457892958385863357388905605050429690624282046322664674856648042768114617698537103098767553283112212739231351314818184219697746843088847513116871779472720005546263393428230626449339117843722075327823943380323716827536733379702983152157864739723223843487308275132655787626562429642615738755540867031721127233444857325319660757563758840444527874575675113916125564948277800969668864602722456763223846332698070447794453809793806737089650073365652849981896152221508984232220052334899239255898318567212426861677062969987752736102078918765576781248480177836029837170770437063469396833766214510257591474152846122828552493289733696613736456548247307974385958169784691991993766990392584590342163544560678747205216402752405320397783777892897150840685860684815412972151947986345063556040268760131613986789565986529907818075270911376757285684951308745942981465173695077043262250758987500922116714327506205771482217384429145836093424615107629869896145222567184443641204371866265029727768450641024182931990248404119820563737633222558068862358965345364766814634989979714711146820782387675966918012187632962282169774611856308279422512369103338529044558480768476128059494509863088536820366556777746890409020564959823607911893979985422760703010905520501472787968411834765366771796799330148470615797294007685705651621098659147468400733038322452465037678371924602054076289155706518686738315224297939498746548463459151021339604784258003277154932781312542015810757490408408933818116899226699285669203642461690770092706170363104506061666503065195342814264352737174558813271458981548820895543417911201896393289089016190127384764084477312969077037897500179806872965497324582104918656295409508305475814221065662424759433884577407565084676067347810604250638761483580545730778058380829497163066657741983107053850926043145376445550822802527987001626177613408457405759090630988219081369176033209166020147807354642111341285762437035450636073014298176754200760421136177862512270822209290550231053008302392910704096507564147376656055443686329179579845501932725268362606227152651151728520466498163581648880530917892478133680774428033590106623612677978074172083325092827938722119567060737958845413239957578408446598203884166995219647831309655650049871037930414395246389510521752738369135031683379539488938692881171031013507425389952334663174894593069937656426575982821390305581361670862732268612633870828904470668788198319719659112079249320648858590120548724117007109508978503739887214905789561242274006428944297948226033389902636364608619620552449537598431468864959104092835982254294626421719713410039018068262887647767583379183215635370922708443132491760428904902257165387938277351117094545539885287981458730273214425441200003507087910870708808750983833539880868440449464487445176690944014730123693041475224923108868471279751004021617843716381370606658089454832965212495570709958844319612467518615671587719782620560854491243065169471305627566148281661790079907183795231396658921500583945245084462642864832881375205141555794761920393388236685481835967679017957174870166542696781329847918334798442388669562642666662792317494959800153526104607107960534995297134887912232499147758232840770576547793243090841153538173563446611048046486783825936004817908776285449566777688556803428847942370051056538477315205769019090352343948231685397793467168291862301803588218349930888511136800905702541385174277563676319651834104448668245039265957345280568854230915610790483533831791697911942554507124521176534789500275411537603394572888342374698119580321463887861104371070558530699745201153815490630249374597484091004515747594177115792418271941536071521602366143651238836197619683957252843592613109874208929478236801326713538300471645003573282037855468317725590076475801145764258625861580664944469021999989484602855333963623138873923671971826373082843687584985686465575383579067769131921282755860768662779540968060073905385452105591959743238839586878263857293279715581223404699945301630216896027763788184077969801650635643016875603031350059543915248471335752835990753678664786284865499834478682925147271454740103085182373059383042468308007292168220856156925133148340269716506916785011998507802314925412764318767185270061335109121773754986510113074477725128662612525027571701552946586473487789102689443177710314973338449536466830003064220267292013387643491644434975322990399880961316368510081553079442900998820851421644999067602224778995924540298604648243301933004426895979453099575690684072601933176613932318078074498730131183840355011761754587710557569478585693186703100050964060471986018189446587591343773428340317989270201976129200903156910682103242172962973597259435896131998563689695768281856489930784324534300062200121519960587891386447522841269255118661263297047439984542377476186167584479095075376406987030794210348078082262813419748577414902594353029065047740300751718502901268675114703473975977749319543845884739097947621244978774668058648022384904795220574059353959817484172480988381270936551518834200003319658847456747622654403970623703819322907498086066962463931528480439118889990563774393379547997826363898931396534225370838284703086231214663074484909839439912972448172557738672417754607964343002575585076104987705711264212207797129066902198795266629824155689499177550685755438164410035998774891757098822957930848784140841772015582161674455803185548196752684385496316088952007681775538449214747221478909537998699381510856563895841238779267344869141574116167232344599486103027563641310683711040553790283771346070311008322832244254881900632706314523603672869017877104999959436070638074310907276580799953216248801390804199679018027236499736778282364499894037063197276137617870267282644573669542853848167429187435102142906724487588176806850258466216472640823819946166812127625398600895271011415156810258182354243336577619268578680665678790419044896573746693580887502255455131992983395409508778213399142840073065255838046902176100860528563895515006254278623256291864559293077322604734383182068516880821863633719366519776865927340418597195892456455047951036851782174418394515194448737078550155938338903637901635668252125882623241002285821970913650362779005393248857602300748956624530721578727848479916507587525764632430261694939648870187074082874073982772791678764362331193059165337629275594496436392449528694032145134350702799798938357231079624945208457674411537873016588688074600441970375808679618300241856167166563910536682587719398636648649467740376474325976287739409748384486939703572838070369878275522731548996795228757386120609462759718515885107174796272537059288922354364923979464920511746703962689302004379583636333573996778292938064532812337212817109665744611693112654252706378396104520336942037076789628501833947556443147984707125086075911606874612733053036455781019476860839751610322101212012490301364866319368086755146157318275060656087156711164112955743539397118999973258507440852374488967312288339115708103228952109800668865604358216666182615204822771126487852474439574534111770280616405880875722804470925765616570525652520568892468574553509377459985419264622431666050471928526955213484633687865139309533249268346015706397323543682007376758581347939727070503649566040770971840842215796451182438396692334430039764607425096805499819315766676931378246912654809376786995689978081759033840080253482956522324264886433505040461460532924021394765248393485371892246803406707157147790561024608876203788951256957683757669596128511379124753512055674030303888225447085144441556043010070234523371224266408180775142244641039611979756308891039878539429800301696613750602565560932367497133634139609785650966562661533204181434087990000608916542052431617307496551517682556450534030521373530180341566095880702613664596782079771025109167944205518699670639348637338106590389176388919449915104375801202136313002307847702289640288378611780098414233690867032223211148252394112534565413293906762849913568396799283136499719292501184113900196906389091418907977218326143233121751904048867742903301538216358454230339853692881517992560215088657697293847530251346991804746049557086991711339687175909966335086436923269005240862005362762749285928340758657598497494547755884878448076199204732530268854547761765932835076950683632826012222321196330036033939223114160436516761879654151665316519226211548696277994479594885906793086970413677403808454210868191758965450536497663952334271032106457319386939003334887342939416432583982407950890622929646724588063783404941807554211412545594461207835991635193897002907444846120674425256957626258548657778298933077825918765397454205647382716196753752011914406242148449514651823718315368390377668452103260555511188490320192339966022313424290284093793294816198725548276560064695072399579670062247273206471274672028434076850092169813456548866241650056106437182219700655676601626606322221925469755380543165304757440264389554402264021131211070584007944676633915275606193665354844271096966874882398515410035942426583722581392376845618562629098646121324309971105862625141027612069598616167795212224362828166691752479657019212712869988047259950802178144391038604531407205513400770975583359142349768547694710050152813733238881918022864002743257131173846447010555091158057761344833822411949385582783165767113720590400243437090209914945890895845230043507031130969770233874357991686900148972674487530169363061857052303017036835482638755671596655338516437291321093462951028285101338760964050472360519007435812815186540988902018032755694922546380589535088925651507116815207141414781294914382191061104570396125482651749837778498006778990908592823774043633918051842700444168939625213720926985476168454702155949055053043773284223620002088559251945426544804439607037237911734206895771199216526633398276601504131593279845731933461226565302392604149907402087710449003324141831826476420813580875419732298824375419962903808508573408341079878957630988906684670524584493781829317401900127372919306173478152031764984633660771594406302188908510917274063685239697959854798711260064171834801036043004565943692249686010508986166819257222341954329599726746606141841320495025795270576884857333207725514026554318682278541461808180597558042229591397797010863071993327440775434209799711065510072653513440508665090699848961964694056077446700094497804825360804725680446617769411118794262340031228384003202501115893518015104691524893158486156537548841783186002861889664677855862186983592694263921399139662963814886981178934115985559563685838662695611163752049245537066823077690852932951228131276288047110262742056277226560504827877836431436477224081607767540496921263817874115880163447222057732508908609537165156447047235244637157691780607537450199392103798239906881199730121310033650794907599368412985275027745517069711934921804716864862856057757115948759584796579497142753693874016123118737927793085063098862467519869703191774862770337361944287535218706573392705142471097169216717599157075392399614069053801764468582251485856761973319050232218550291478458621996557172768965590639277587788171475162446858397188927274598695363187485836772159476063675146742705773786525987476466047266012843058485732294897093636568140086272226744495260460423227494877820455697522197096581299116796322448341235343728540310397365709602459381984558746580243405421904715949199742629626216269757351600815654425004569873217889526291693238296566550568639400038260563235779948708833273940186535910012996871507023831156296886454385892125603582126519381669120078540953545191694739588537694122969034607964718686795816052394636067401645297620043133168763062429166438061535550419938523866404764686617512657566964921829226335973135361061240740283781978717681168496122719270842682022237449782945002760942828897195414065045933331299815969282558966343936282780387392563004859274734422852780976266091662505201845926238479191571099552500180405178501683516630778666697797487174428622047634746443681665218665902511814543313001924753452130181671861427810422790147669407005689156178241624256760771493460734425093198753356382205610392810620502911035401664160847442515927735056462486411676879224397275307719339915464951617796846793251160535920299635593444751277608616287555170214543135815532263149366173880302251331519558703235028569812756975632447742054625497372079174620362543201061880832178285059812524042221341880185237587367962512267020020609828520735845301673522770722938063434548796791529951391920500715668547585858991431348079969357585132979738641815859073396178397859799633633929613170136553246771358225992754078259561197888294049655530723512581338189070351985419033257162568066988540027085395312419483195212600291251442892637245975131076737172705324374634922325808914536847443807195332479718305411673917805237019670852813895217657986339781174063199888669325374250665160631671243353461405660735121629247718018851501153771740245309633246855294641750478495178688722763668452841837519391484995711759443033338522526487804214098835167711833713283067100382089456210423659383788915880038917284003634354855930211440511693033516280819719560717044986970040167630887244900906960234927751839588119765605110949716892920254691091600128818029225539982427221810921528111868966511416917131833555660781380612657011525597993468764263261450086426223583100027994665062257743930620751523278191350691026235670347746662567009683667322692123305591122865573383418034706716408891602019127589622556383142756933056971098422023110130158802552094619326507177923800481912164750400835694129280728709605350097221928478678008237877316792020403786465128066146508631471509115384279282902455521325174432084872279675181490013400608195050790840539355481677298913597162860086161334619443308576698764334475074685804082182080032488287238684693908524639715808889795700356487820617780870898213373649327644192089061857572513255270648408502190152047813515909923154122609755369924156183696588545604256257985649771759139221324752353299858151958559410340588294205323487307047185625731647169635960392785272108486862875145152489914081067592904436084129675133957368123642646809782967006523393335338371540998053783451351972449141641213261722596114431019430490596604281183288180260681813042984555650783314617259886676103318188863684259097970889305125701895983326904261798135824911030965523919764820776207322748572934608446893168923726315393517521125037506661382004914385226172731382933546911606016693697371561662134942947050126834207772336576845828749971050933270353308931772126916825936648431231008144561353634711643733035138018965142912778275441634620976960438046897175809330158406946892837254984241086044169265079368840699822770800926364940899008622121115880410663922635075171019055456426022674777978778439948650278705005541642540951491365960260008557616480375047403936792376237874468665794138219470939977115685717165228607254010784030003222164072954186116747095939425631264951927828467407258538589262880027055701654868453088159444348745730515912400402132786810671733637920586279761690067642853675999055084107035920355160228303390427273470868186694701450612721767232848446124443591715902165208232755575800654571648865008625955886449109174902621938334245523399335323207585049013491727465548991279143848144812642271275416210087699987604391608815114111867282561361603823421702871814203492824070171699698287993000451277540237124379505110921516457103096947169566524537668938709020392814309393194659890640499298784817993161242572104641635086788527066232265426222322511788356537161081588260802542193159906453995705378254165739502087313285142218252862130299535531004209612198364096181220339195924412197256829189754285522990297537072040971751756419717037864801340214091841401591632350185663696599445094793852742004704615313595664907189154746122139327930889652831841031222141352363726542377162502874602159975503774209623911407668597328525992785504400154402553490855957265389282016925388431009114739756406531103620059209271555647856770650880503243245104983948190535513761554783239693604032772975570010525824344736900325004574235687369475883248965182427915708498035606771496797449323933459519721596801416571884428944809627586137696283436414731531685886603457308080586132188126574166440896711009214872644431401284371553933184559284315728336657517067503943044299322190919474775640254506869814246895871498975042580419593273414605913905953243843780093932224106619785112987325320841602202669451253241586349266229249603074093646842913606758639957013045973864828659863794049101501976221370014892862821043029488283765100959700624621130496170562851701790581952498664726873711742088884940269187938975077934874275145948712386995143485467583570225198552870264659406832329952020702331294983862063094803530238669803020309962716351793593983048489093105298293205308178368141336508207021586215122416745344304740699613514008248690957835945272290864503302365575571306849295309024532706292978086225147534777325409232023996303012676777273740666439199242084241618584095964764722835889160210881829285332289787383843812869682144646027865406799420141090588000772125508164408195527985006355376484424071938701345383212424282804919355933855697736660176344919394411334826131840201241875149933831557577086226530628626316408051648121721714225713578102350993279609404953312342887255828263604597468968270439100813581776953581728293351406637752161716322393754131761326357248693295631927279134199453118822567198059286940063244606151424000451077922427769964458980099016296330923881818981045963689656917550059648166695657358399517675649679516819924395318163209216312084680825126530825833165935274802179823623978003468121735380058139170241421731390255250352039283784065524549988603644467700888686753736797406757255689458048415853023360165760531829868574348224091222203513316342132994350505805435015242379735620337871392618921901332372047571279129230352575499452972963324238150911474758085015790462327759898367430045368453864037653756391186199816063121745203778019060742508858895481985672487206931999247577047703067698692211250886129067984702591410692741507627826015455331773116320105737793686484919295897461569823373889711433921688667199240295311712468700325042687921783624450024750665784155159577520501778576224835444248627943729440744069373172174823196130992948141189417165472374063864581046436614693797501076637303821107020652040940279581420095298587302211169054124517914013357489053695555992171320515857311854923150744400871801880764333573578632701004990637631887811553402756777440372542766369692714493354791477161264012846889222559733665216849985599671001210383537228019063265360758995978940144138051914952180210821492779804108288917668062517648975820498766239030701769055799087819843727553136119355541671848996728774641878400491656930341146181338870217974119436396209460139935466216635855875334487904092651573564545217673015688912299239149030200390325760730445273087292025569870378577916897990799019299718769878143334625803469826690222011739037228865050915826874516082120090910192684584614593933260855413265593126437515667919790186698024051283513925443123880643196609173670602638737463214190111471976891736821681705069901060596643031310956779351404780379617678832122471134211700709037281717184734054923427108047642106096853302258383954713113287846134319977753368420450362867329397366348552156541146651823245887677195675287994775561969828457343138164743494312657206010300472115731339779916096705999443844837598057889233854245839084740062278549438905121677773898121872840398644401738906467987577446002180775181156376428616612088514944627163219239070015446279174721396630215066381164665265155693010651421343307986649420504865964282397461465843909301069533858071285442142074306732383471384256395957573207667591634273198141342617053218815783927824351843645050053018378908660348323081042824260455682258184641409904637685032040933334121041526903518114146146162293301211202327476125302799584145975120718040196085605034332762638426019065958533972400090384375121314342571703071838056107483067434087768757310924125736739532978347495494683573889533112354247796790697741525829148322600471018960940863215208416106823703680798659534318481225211946744817381818366221750055300369547907117742463086583440740104419670938359409514089679376638781726847183092598796114775407544398326327249409718345555768773716418124729611345857858988809494718999590163724235614510021341002579767701809369377050748690763714078247753146566281930875242911281737988777825187499058729019167044147203833421049988676808902138101982387887214361219845216017161788790909708695636992002702484033026589538615128149355658013588484320090940504896481327533916872724696372668583838889291733271731095407836993470693814196112544158424161215971617057932782887514075916853485449217527450272002588705526632487109931697239945773750195917914916457655093593047760753516550073157255217964711979078410467187609021256762731767057563574920922907205080176856684332554004005999149510992716083664062918238395024175696207691463112751929135856671200174974640682261576346619461523250323148433538620128369587697942108243431702144151207559524611880635166311792508411573029439671411113278687211786537661084160307626123964485475694505219563212904569803543590704528070644562529743629376393517267824924489886558755310091477577928195157440431307805463140857043207392040950175592881606045584261156368728451587025300107329308799915457020219734600536953622638356177065530164775104500984131329952110238860125322829274846180443782359940450461717767673583767105987722305316405496902598897932018734656626152641105259924682919511290011490229232797177206542066762983474362753706054401691857686223645075535358282942276941251655459954112904707966476927114616696306617319149330233461782561487890731031010190709154565136302659702682026458276976123951729296866100921979066598853182801743219917647542052357547464622834622959679746916259717048971120924846434009960030987385956596127517791172493103522564705559094198280999887458375368074000607764072311075413882137545433791764201838225677762839778915418391706990237397530839829124494078162525498073648218316883118637354272241495011003046324074433445263502333771066610133990354017437562533555296116680000510954893057753493768259229583124538499576176527474659163413788288040318757270794821079355458557291726255236192155746524120010562486553412548109346005130630617897779383379013416122264558536850117861851925786685333908134939575604219064596924808738333686324904455011278260647820206158627356898711220983766037057219540429331151600226555961793413783260110117498219973687405463230591217020060696739801244288475401347019444551788267225709842902843548984068312595712806926577078192695656900811380159893763349104598073095665420726196581296969967383170256662225647053478552868355826688889842174072825708550430928702340177011719251339913483165698289407742928109077480492429304604466561336840858814603300549420508205704654797877330622647900031377725599899885856266954484156217857949136672539513418325520336728882830724848532005195200896051914432365469592834607713348410231621340561075700735673787444317843401514243309332505622886854302054262795529438030520320294405498297531944036201881477826671561217675345326503601285526972706525868176842921222849701617361389294521085268621087136573875607582098012771197526210282523122800456572545171583962505180243883060846949935853964464923393839933429719629408195356223746977873557461119664104703055389269831801145288596587425485453925042025841217437897980019980195364786038206504609994903561607321620686843523084536158751137975108456706337789749687816781155738834726867122372056335410121729170475083315480393399093618761508210290950327286212093051681701004411514456898409587436854154918927738566164993053874295885908312143572988265566432397231703372289237833519834898144954217247435679203453299406093049282315888148805311465175913782080703273839840923914795022624864980129506142038703861998085046730111386323155772292904642001339138767780606276310519298747981883938818606935980553750058527609474943939518008966212189809080211136452767423457568270577890800851219594235120314444611447663843028746012088226322660488395590923992397693482170104226164625093577683067716939712184607923635256290007042738983692267637592411121334216723446068927814006021724351870416238065857285600902286823045676319305903902690458710537575412506591596422067736991060721932218809010772673181890595701549479109066501777660868638754753717576103397935656064098177454175664682375438047602636791817864123844860960921547264083404556401711458762047434459287302369764428064659893437437035256984667864221406972992081783049881383871132364028236004650675737479535841976022577821324412722798485839877274314689772945438215541182488183813619974766665014993622145916159506051351950888947524568755889602517796318755383346781288631124655740539806727503781425935189489832954522989063480369110799222275880626828951374017160779942505336033583922597814392819355736948487667333476980663726714642222494578083186901599060529145203431755994845735932516375477521878825383881474212379685835319223250334511261704639678658885449956092830016450198777427282045579314625156701890965665921465230876593481781831000476428336577965605817675098720454817521807056312496416670067467492963204311705691372593407082576825479095789874065104361265825370393262777855494577593488558769359216931083972974089475641463641277975835589918158793826328812329933806797260100212534628648673496022722722476022328105496953077090910874712246337465603278903555214310588257195164213854879967408283704542344096095745277759002803809248204750008790552509494445954813063099149161814698259964549722071675244076386377769523451923038527441384162622964393934536931685737220471115809529763163999117459994398707425550159339456073829686397245443454953262651980637671567700033589316666601445813216135058469525485735364832570920005646385919003806449119506022216215977489621354523355888462452327965202490525021665229906735207572392954285762228958269258038566060213835355397455208007978475750726772319580410627055580870829680961630873554996863066533504406251580667018981218783873411606361349159383067901282265160565706861476015805231746299123039143629886195074752777452910615524105654198534281422967895190926527212923607470478043780927156160794569505552110690539923895180999428448801301920930832153055875238402363566297651648908106970848764815513780924997696623006727221426709060264000492998213534273612461676052917488357584007151640447130040125830381837900726886584989824225401527720706231665850695273763044612419750059129850104603146789871203090456308291238356546708521130752577841176498852075878916260985247236693131972847536068881923017557217184652263451506168209794213082582298483837387712898744688310834360980017453990252797895815713780774277484430019699287178174937309616147138463992740538174755029306442118456041983171019842065050678936338372308143042807353405161910762908596453634680717794424245854006084985552119777326505971801253644918721772851641089656621595451430459837656917723308066288089990683274651340723282918961777982589582026628549689988939099596041471990145837323605403465395518987864494627095127447287622502035394277492875254112161869860249026568633533165432410770660984164287986519878077704164000710849466160387971714374236707075244066175821332870642344583251475846004764000060298719266515410704653274712996120427590778279229182746776135104342346700470446243423939866973441583061317259258616036493622165159517817669086932197062258243095561866873714109007745226567579554831892103073327254576715507259605353610857450864830111115550827672873619521113100353673068808037677471479084064931536199117064513087256322605449653985913595476156177975940090493420433910745589812255383338409703853939152243086249086975941814468977024398280813790376981096911960054601424677516222354712660295017371383452885821408098658153463816338232850185051973266514277962255208730162226987392589262625645064491958437572328925790279581951874221974475969710404466975827034116287207020279206828090274670428287264063741668008709769410169858081159729175203001626756216720345031954079939337697684345417697230831017359457213243693681843110821704909683635135488317520212891780295594815832620509686138846919803453512504475979065198329165932141413850447642273831851568240609820871324636200163947745205790692797085985327801081423559000134942011435253675267022638251206801044628199156214407237762063152182582235650943566467960467861009801633276399140219656032683931402738598870798843802100718824576772415370363362902242673011619118525834036862504047518105583221317027782403557912816427496807457525982189618265698673663141253725785785494027468956412372961035403886311204166472180356250366126276109997013347032466173787908723068123399978033267066773840059420170025236646600834585011362788527420173936074251819299796929060993081827919131440627817521156707072873734424753839859261737631313823809164237979729158066265120598142324735737442486214710774332302758137153849843500214368303079637222947754166885146981300575762120927820596752058776517015013135321048310319019417103777187165033055970690902031336573059391593670816230636074239270637768104056174412511087292431553761598856993330795427849792229160452725181079193969622029911248629033728866236192338331220070981417513850745739955128026554758951950927498503306829400523651427002084568690969249314187279645598183350052715670554441500900145300175479449183917793906971025663770826303498304435348954951465632153474125976836705653244158809932740846688836804019862340838711678239846078766281710329415198318402228895374826413887392058140467598075983504358786398505337252255001997875740813745486893279136017178609896261637698404326888074182003777115233583317930170928812930640074158214795610031194735665249372666341881316936529043714864165355158081077496744258929415985189753600970198715316184201291498400571943426530504204328737118091354278136006171123689124583701994044153436044474450313160385240959059022121788587497170025415327662512888281746318537492031388167599468318095252555512735343729553931737897170582939186725869684848197096480892362472941282472787291521028825172400242052387691198609478110398438423455228546098516811474420100046074970656877725651464210028331199305169170079692563909935774615561898177958060781553371176846955354327827456436586488748549566531168774728355744708785729490294895117617354459118613802606566400234497654640084044124767116091973828023424891249963312723802114220382382252712476411983672077699418912128431056781758738525518669122744881489308323689384210394152094545256657471894967149996114464968354998952591034757865837316537136320947217527005786060833317142202525679850859448063023306509052889599649703320736816682600641873846429393192548561501267431746130256169786952804817970758937408206315789421662119068934398365516851153661982155306592634692452623674260241477113957677465560977126792973410558667170875974097304163541225751551043171550742959185415534726326756502391595786480933609789586255290844488401470322192583235573355027249733417977079064942797079397485709599620090991377025984217726070998853754123995596532080216206471758953198063331893987781844914997917171832133099481647954054580410316758583003196728752077067459402173917527371141873159647672885983325742694317570142242322750543488733245089401722820167073177574911155617585620876814279030826295342447367550309059430550199687228037322279699799781977643511492823619422430052815949838385826830171616549044655088414708134111501780004584412917567729929799370393263183682656541547327906852970658370912788008241213111886251656006376793476544895728980820731287121225646680795923522099973973244348039407150525274794379251494972429169306129163599164692542950036206702511264807980924556880287015807599530645909583727783894176677296345020010646772349159762834793429396944032341936407068623791869149394165147758390879390532441727964020666608115099891840199787040190509685489736711159660601897863210133868001621991829236198533948923675719536797406672614037241352242966667520533884288896861685352599073705148242056164615610572106800838196314978498491150497785961451638473358702399072116509859053284315532451523477596096657560698857019086960094776762828027489818109401923636372860423921268114107623847860944334399211517337258082868777605124116938954949001435494669490115901875274778979652642842939690436489140176755621273118407444155223089123898609159239680586859200058370638858983970718986248654273327464893744774145752503779969846636532617788027329743268886634880612523180949253700096175402562526425308139789677915227900898630202858546159146252685582101753113994142193323288613837774490024373603041427239386560218086908324921498576337435167750063706270720032245966170346372432066898948930686713793157661378537377054708595303959372507307734331318879187308027881577127392053539191003043143691435994799323223973523739113851485346449300991900125373051887035466367521837160556047855882336097282645492634089380107080370289723048635804674678600740309787358234263248595553584997966005483052485779658617076688116728418860850588056977568035976853078191302159632048823148756064354590492372214179204639525513876371521593141019042376674340879989327923297476589914756036330068114924919437107702341022762600373584597762762631397121744967001018290505476583290972494014120612485607177470857932624104512323040135663523995275567827938761524444795860267267306769211354297622419337050746219763884049977831260241768771121273529104154007111350717113103651801036213495212948156028140720250215127879884865479003442738943363535457206650956258351572582472108914982842289644994484473165521965076984607986817487800620942516502533937176843087812125484188970212686815905414340770242492049237719956808620106096364258019316199068449045090090066497793529252388080396670268730762999525173076615025382558735264534968666895471339641845551677608160510908069654165186611623735443355167972255665180726679346495022828163710019165638558779387894278522968561409111113918403088254190942385970375042759498704032529800940249060238489171705779125092491004894484083420969500229905090460910912560812117237401826662677288797207659861608280083986844973967300217594887124888330052177711661932743316581634354156740227494548313306520365462721605488588211473689579968888965388204793396047832865560133303265515537006364264517353646355298518864918687249613242125565343322148184854465258583712831788714111129301919597215288667349369749227517137191297371686908674156257140732781245487193936510938782329734125343626423870906968144640489542986184365392618527668756984594734554349257898847079165516778463427643498287161987299051824327814024722177495352625745793503734913343726927161087545992154699546293370476268959232684399591294464729332607365239309005322129032759899923724403987348155682115413912900243077229159495142494166844987716817573096586214580850465173379493586337594208172269024043203232808791849354444137579284663510311009785168314197610848946072096595990597928326386030969909578474658167837020329840731785930631580360689475732572063667067160325429711082580274108789419840070458386709092507999954788018969764010973675184651371275068730003608447203257394389454513087651947331119023346346737651641701870727706648951435461413922277919649377868145486565280089889631871688881679369476918170297979757517132503778154113633106905293986154702382702200925040631528589123838188758174977266627507264169548200626370314067522390093284383377862699083623270212218907792852343166907643830755925520041002702648818210986440933685480114330770237300829825084103970136837318086080761534046968195717899112312306791429235280091690225670892968624913719388842957697002262263806941765878004703430901421353179429742708362563941971981767469548127334075809882514929149982525178794414965177528785161889306124826925882991160299828633630973067125593714794764009703315048535056446054311589344518406002233731088183774885483196503352354902910351674228156878988858260743859057889651885546458597937417378818653562037978958314984139640152028242534117918797185256329295457595667739699479815587811937055615468448078953825490549744147340588951231042234159763229547920703835667419601461593075867437876463348238114017095356004090972325754389602956437267117535926583377124332996555234745072390189731258947046176293095400062289348433806161959740586181366544856843609883010242362537449052920436615202440801387078367844752911128627671842656262450003590854861550660190603348922192613905722294069564424975182582551399296307938253604245342200486193340711245786551874772126540916645173514895778663004798266890081811712943916191853745461246353949703788484201213338743082740852349212716872192837119705825631727344722218061449156700869378993706020078422762168591581389632832466765448554818427138514389773307092136401412522697766583371271391794031508834221254197484970397917776157985454293401516677438991764957169394688355608434580636577108681151269381087200440615244996352428841713459630545140474300318532334825768070304686329038868745304211255897612774333566724118164934725364696505187838399293151632750587291365605335743221158867735437890918843727692350648170764145406917574416567040619520507064906523772491321035142739441328837685315972062464443778649639859959168966571957984565108888748209203235353986012688411304904076459086597634814591729931823419948748095696367054631276571523359125289048851465309125823446539723747517481978462758389649611933668894292793374271751712948830683119345292400685305355220928157938574360014250945473157570390178838933853055297984111805793197086700623659767980289535012588488214564452478902240824506937161827395242902174978987236555656143446292622408015150528509530038278441134564593261496519468316953176689366921253204266763605353727199577181564925344078826249661032328191909258381939996251677187965399792994387538341765006994440138480701734159903664421323203682027439410601117535672381053277202533760625457117845624239569155012714540210107652926525256014568637273065456484395974106777231052469694320601769407285090017445908159831331430160509929871892042041541406935886127135233270702375566239247455827779789070803330210891503525101348446121246502044779117153829823391637239111829493275359557168815897192485842777364636592443411355349549958349616880645394328949599359474331464112538783845011959509751514752919577996512484287431077855777439865090086945989399433256735687352968804647330361024635575949258830909566975693114475140659778667419766818722840656773320601962431982537180640834314511441553720641075499635589874861625457680006219917939372735395911747451627484416962036951728303592940983279421673333726871762225195971158173861827302316876088633435588779451383287893145762003372776148587799932828919573920348989112723216104284447986546142915556926200058539320547290120970756597612626484211028657180873320769547866471806520264780307871420793899781150083231421228979409932843536049192819911300716166476502758913035492671232102505021902832941947826829146313971905401612744333395777455918093278948618649002901053436446534913799872509708636429615463865122159612807681178110200249884129122947619517345707360870522941730751545293202027765069060773214608656663293441668989805521552350973687546515934242480950311464486995396392846719132848720279502865921732373056367543927356033870960001997503148917958062941682914924030936189928090462998970062823764329830939600062214792035346076917745367292774073838222764324595721964882929835493067243429606925927844739797784012820402979264378547150153648631860377310461782517750256666666840565259223972300810125169081050311231869888281050892895032921129184554255021160577001503165517682160329315278054393383567027921376676049739837413041162014432206925855667104467562152707234460835176419080862265978855090622142056004478662238275374891174483330523041665744947320257927973128470956285262346257642568820084609279191417311991021816622313825620927538717882334550167779818355081246126203074054627638221159638697047272563630308061127425060938146502783355148574715683685495821505849130034327025191550882061890825083551618660839910863997097060548504367037335815382726416410635974666424533167234681109829936759154462630227310159203011986812341770891127809769388224694980403144879394892264986394751905877177386259943556633151520017225578268936004238786064279815911308905915289643779952781421088719998563241238162315261377195437479159566467996154553548176275433016705568947319342157386855364479679078979241452595485476856172968882340075652290478065949457168598789155499029421547534711575646258970857721995135235143237632639836870636742729022155358123751083839202514798771302911123521621029655366814202604633809123520467127436559145169474953991571890812094662315187525047166496385535747277304747118969277934371526573339346263536876935343419867039744283782430503821950127930921234564220991304822104144132020876847353096637193105077287293414919901605787653657702173862645090211465999088696014067861651369041483900609897059492489063530989770814842632660530276383136535774861138991525831919941299771013705920416198523528335569146483196401098757967792508127185464818278061195541368300859639013487582582044304558296882053668147477385640852167756837492858321252176520260968875146071512048564471151962500535129548683646765530413410006002328378818967285852335357494253738904472041420826731419707128837810479625452605569590782175679534963020600479655976922895518161486645782914398177356660706017422807121064617358450157265721149292893027336061328564671213283914461101610592990978760535299758430597509040103477482126937094498907112305752620910964858409063966320374204276446237954430450765560401976757622874824507553773225857815700895103502939972694665047866448150528321845220275458450524650619302230188230587485634509506066064313547269695456463803869852066690231125825630629050425081697255231891973241626566636897476672580734589823297912287188627909719505019429424364704326718006167765602882481470270169236762174453370986616849741768976628537271642569636829641588077062011904605166570002768128205919790459040635396462850251762211322786140978795988580986626309407496902649258748169870453955769715910123668927770264738412569889286435422102308855816277580896258319670853474355518682259837669320553297764615174731242513222093562979496981308340089071157099354175389137596383723964461568224729151633715110488404828521493870447162645255566469371426350621918600652650262482048125278469272169568511416095414868143925720128988454774368936444490434258371203560028910941201416286958633749685677381562802923251598864802439871595685361024186558971253048923614620283278543444870636174636909969056729518229421340357814162290851956828223386633478162676491724863732862897771170157865864577060495652406945192173445904134543355206115369026668892752164045844524589715079630226297075431624420033758834176502642585023755418950994120316496442376821087129256632014267747323648600651639983341239917124880090624904183189879514662236406487841274352044459929027241565164689678545035688840770777778035507469683814396502849085908352020934490892528416817607233825983832099850799606118530726813953225697041394348779369116823040429796847699455711767071740779722006956313952265912865161015733136644427418315458972152306182464164240808627280524905953682138438614532128429770800623265804360197629945829926559562684684635951626419254501402384707235468505874680833628991370486867542429932812625560893492054767106956872411962293929526543560683318209738444796940582655615874236722079465952054176198956322592167067270364413309875111374491469262302760402613319952331644826233746576287131982741087012740634598175700678114943713188875782867796053645098059596429427594126099611500193387533886098354909764565704499627568302711851155220963970190204580189377580644832278710571924741189160118491074868342498655689374967913828795821513107249637221434938571745241374984168670518402316229149858264119371532038361354265700807011024977868459662390640559037024549552141492520917039329590252615400491825081336645836407485705973324750009301578856533238501314873989235567789431396584358701757709111733412579412882559910215635299989132623842391738713044173080055021393574686014740896708129105787356713442811743607003293696649265674670353125612780685405779331186763550581892572283124961590936111051417651147191557385075848829963879794784908646119984379231359799365216979136854472514687500758039518274010764036136829055632998502999258300293587033362119980940549531740967947776064449254503575615637607637067962526993883184358952111331146560194665372892596097977752691237019583862248432758450575747749254779319643251188357462680005403294002249360152304652123042709549710557621507144751485981397112934240603702769011303389094023023785561955330136617508563177915476155581436596121838107978004342864303014453649072577226033719491863150700879646155229635375679006711016264723380812601750130873507767277064286543191541639023458270979919718174947719999206549360666625149942034014410094514616560908809037775442422670556018060054712606888399584924744689485583973272333737265202075364549691376554955721546845726075471718970996403559364861159174863720116222489612867468467522037452557634475425071697355974827686730015274305063592177859078936438770444396830713664374832613152240533295325218397928791711404246576003426459005237835449602372886741099179536768290679023013266389947294412597325666492916054412444364272947048107070687253426693442242110482720001971953449529019590468262549711325190484413687183451424184034722533594466669123498658276800895828555574224914354970321100399469756853929665204490196679905644051141971624013883352473626050710623734830923087396640687328424519035202789956911757217963477177085947896949436071933763885328797693202974850852526334509367071493482864526991090647118302352470213121103954589667201249385654278053304429069914372365816474931972834149549806105349100274287410212386330165613226892825084762713213559181023376808886769135469440128517104348158416865364186322036716019253756964400620850427542386516652015543793517647255247847230897245564450078449681237705248265083894682418472594995788486004836141977064958950529473438342290566320443343876210755314177290227520203550674736860541965048537873373929919702712809440439816172904971632620418857902982898245453510342659494561880614355230048526726389457105099321643009484171200566111070617562331574330990398321206701878794900654827562452787215181319939093173107817360444313947179749784956457925355668759756763866341939615813091271939150917183569600398271435710859095979963255606351967291818324725090639119124995353106018636749194842698900309177110424059264603953092485901008527344840600828560410611471820208947404259432722243717573373037231440065515440038148857173151174960078504307989278601616309779353385688502601324599345088390092897533656154931325485964432862090008939569512090956150140409543382384875730377119840282448426455220064170131353630933202854209797763100488954472273250472295117328409360627076922579126939699231588067451839267469161359045315272730006147595871350410302584749362641952352797563526327786146180256393064213469486967717645970891337773283640257448231234956773990021138801426235776121549447451101974913051932355331094615679896001273383258506584815109632148491805761585290139200927535804964936897911671300555292359284982003158967167911908308255038355156306335747272402038587511648458203604598225713525764021471721088515389397005494626140247320845229772828539650835737738467324221043811929783001835835262479556525115117246483047787703657594945680173703125269003903000714314985722325156603678348161381953102221183174067594568587530536264153164972477923457164061711337362360576091361495795273469100093557100609432642227538222535796430398029460519452198071687913092384685811462386198278752652501421824104289844553474773118224055306920028170878193482419442701390748189378176341036540659952585704577605122134041051354706049091778334349040571379699942789029209447039271583656846243619521676094310578802929742500758071074152773071127673990827486102402901694006826486962111355291758823485176248793171881469660209653892661452846546345890721153289181445179203748050102867277696550172703360189755489073306395461769831442780529252416275159847771355628232096724554225195944874580004386754991377552830617645223791909787658768598702887746520793743036530048083482175849763842137120169830451905052587828492219281421705196608159116213016440846140007142095439977377335026151412005965970381550687774701192906376417997351240378066319733950171401935923397980898293171539610157460889981024802989764589557923949243733067620502958428353540793172008664724812595049989452700573175131622616614387533696558097688140142293410570551069745348868381127357842120949873009898057104120016604162099208216445352136471034808687765949649247349839659855700131420778806093107618226316234392500932458454037957754363077484231382652193875891315720574370064656822180981071178497780880449269843764716106170703149606628976239212014188681664623414378193445304458215659920211177334051964527043891613998983682535824198942754001260547207486797151027229126910009355229623485895245371565105826935627464536890719135075769209883297308163249238502458634002960727367421192409918380494444226586854142356274640810841808254317914755644633744748237624944292878750482243623573690405871071119280769759026076604436468441244871550774993729830640528762391616108591997700043101071310591396865839418733356551541315145158520807562743417030706047273378029996647698440281631751408389926929533308468951725732398462092974963130460929129302904340731453490986281735590533706320001085029861783012482636111481826999661909511584120434965064255016306837509150269821333087434886155532724967340535980892461850520373912131748929049665085879089979650208672113061017909690540055533263250497193456032056922577582238337140368835692360309252044631526986366277375256761754524829438840469622108169395547661438471796043687347336618085101081513545503315937715357766658248455970560124706972573721221874563891005879191011764926181830059881983649054173114838407314186318577576135517432347120284548706292600151126651599896135656121821216492191562241490081330910398832696573624151026291521021128202496053582263457671426841280569037616880229271086921017275687827791991114568749639797653829239464856708606066399744848559348559060516578838840219216551274075135953223543350261254088155933791719478007164284152055626513978868651916076049172903787152804549408902758769076174341949194520889894411346608501517370307582781291476644070542789237865089948406386223789733386562284062894583101027705062792504974586138043536791839601466257975526091448447375741158833584323705101484212005452284829380532648840767229942211941782170343744777304232623036412920046381402998401009168869613807534411575745940166841407659745160840041695454930098934136579540997681215857796203866654924468213096030592909436716407973477016419833146906235996934979970131666705665256887180394849783460867977359335185301338724179974318605284795382117502608183832121410929922141810454956804320281051121211586503475359892098764108494633553456851637196003714343402513107391063170430151316192284172496781626942581852829616155751793550032692633701732355825201455334524546850432768851749387097301158671343829484529381835580049469975980932750789872170815417356418823661755520759824552062980782203646581858467643478285506254346788709719771872713683597071478245634321074105187722858136461355631643760451532828267439663906159562284883568634174630753239576614968505848593522708419630922534516077616784738084127076239169491934464880239527650938566011221719547850427240631634627456610298542419549735317312625190245480015263122210915839532139617736172049295806558087804550570637360217334501728197983757981869793720569429453005277163443110471605212776113103345116157666826013066150225115861207125581298167402298137692234440329413863367736166173508628635787114631392144179329313680598686966716364894080911224983290705119895145057057742610545545002677156825181770058266897489652017198952583644034098666437333773981975270232041173114588981291227529412227133377371232333364967283804422655091953607950667744571358045964779197864022323143933119240431225886756024040159485299570382849713399884176670868570828829591801242853903627045249337344858787968479975978583966487833898319783083472354500554821278387911699704142335681466189761711107647602499745211305276883967084471191798811810419248353662020145169252355017619288177116303835558076151595756336272920680338567175218553186461447663757590347289143130985384499650482781416329157293594224906894158143751614950758329057080476781469308426390723535769761880446619807329105939549314629350831143630675260324606455479940592628130424911352484000884119967127733813786722921405598910237647533756185700484572395883182855940617084165864186620159151587060532937717283109664064537139167211177319854466835955502547811198314447838149318826902448698341840719740995644347570270933750474594058956452263526847354156268721467245975623468822520198760980317967224550900941796209729819029291370312052248984422064434768888328861270909636501050559666828940587848391263544489522590357966502100953652474214505883538535470581701955343161707088362116800453260468072700501830100157436984019036731867920876910108668294917997859339905569181098529618581896376143560809311948189319922011184666221072017389037074875264351504192286225352095632505380003421504643651802917324663458128833007362175251230930677829013628219886842073527398901373194002893446544734750840432053611073918511638063389451743398418886711327571899393876528332114902809714871769504874806453901098470849573431939473717009471165382054841135087977249420131125246467114190658381856235589775624028712350731016897141981156630873898721367322349675617889971310657696744769542616513515685857010942833109420800663817104896746007996209422098048095138372288458814218499657197456646143715782926351862040228870743088353135784878439529698391680517243287405645192104639428310806136894910338062566182305203593203355385244331401233987893433784208576099805352616520934806093163804328188547100300108937277593861291582383315257887452584122313424500163440654008423809914164628226403755152131205052437576551134034517738776982708121750840832115504585157784775673403483081588094417288149391071028774824843836994586752864312915558298723455333537562753194234989599028178410680758891905322690394733499055143824677306336476994596599801900413646006684856092403303078473619308849085261255003199738447303273586707950789328673006237753365604313365942666907352958381678856079132831430118995967195819882248900723594178533572827549477196496417847461057775814598202320816768170711038401059248351264108372223053448499168082402260255692318499509076946620792842395572319659811768047933385768173605845532852359827419456992818701107578945776492164967274967567175053853627279526445973771695167419134082156824347700710146393631743007090650412353936415611615121760944543694520651353398429844102852215218549501178750717233923268831952009511763736369510929649511893354261778467277665265096972795464959125247532401172745697852767883127316903800523380600086274537498104055359613745198825827131993716728531034272723275147709504147748303764345332053412452219202860273598642836634946840973599993304441209232551023241156961615674286436788789140254739087325265087707093652483017631035173813707422722722309825590592544390388714010412724137612665253431792166021283822126798178396674382972703545295750027227162472495279935363807821392393469225659171937761322521197376765225515785607040646118382468271119061286874810307577167650095563260027137043762756932041305330789682450866009413183133032801733007063137043582932173780501171501365372039598092811697798188150665825839317898606468920119108472687024180008779332067757195646050534480007865374440069829781089265204777960234542553099992725869119962595790112135503476117250742814339182363280927680251594115832634762383164118473175253798005366383108310078544048008902144590314698510015031052876591423064609472755218734003843012449024019768962901286866439628329565841170224121836657781975897556439070718884133860223676030912801749028594131790039042806577900696457597713500552002445885437125178540184148298519072399339242241683729705125497026887546710066248454494820784160045470342154101499080633559593815908585524748285000894774313226498252664681379614302803888422133386889045602474344964547050542344059540850201741190894878436910753671274551843031462341983078361369622745114712880124658570027621772690094898227781436750993527652619463031095573110665171527812211495283477507688469980523016299367255576522297384696367503284118044523292089750455650303013396914085313897997838949487185597416693657641731438942478345988017413988654789981092952329892306948522756104427991356246107280590970895613614166230777483375962700319249407249441443136564898666412869025406361374137468364349306722873885616978372433735903935039420649574408555253859782145527510360813259326557685584451067745780162365547425941221464584937685098711093699945512831671677415084984792919186002049216786317544501229300627741229431896475106015243268043132573477991079387804866765960296678257180411203537464584992536476101759262896323680986810438099785561797413514767708143045767195365824292702877685340317176769919009514206691438985216997118702949728681497462868348506165170759166925804162296343463456963751557552221557718279755633458808793484930880105313545253431757515135784486101628837969756891498409342985962374715655478135950140149452532383006020694019896717655724794782374167112269414611665714235549826961676058910251089890549096085171155367402900804353325877370439401614828545887597969508285964332435019663204115777776944040708483059054984878468895729478058422193888304739966624052495508535395918514758787374815646790453580501761414391889897723887191977654290544301901872462592815273734495974268222753225154346755954683465742092920477083762976625630316567200217084153315914554378758970578248661611469579635857885930393821201352628888960073392353801736107086640606931389794292505869747782197011047826137775666631822191403389770458963349028394492864134686644001034270688527397229487640557690510101368124710460728123103904280142810998244144628590864921684507538421836547444383456984978198134620544948143093603747416241462266474422035935729746034316811544543761623879697720477854188397364722022608385626671360194997008716649103585742419493444350012152597989096946999105163112435286020497029582186712117339059429237811029917481726305089424090295723712500288170967718853571929696149803838163164094382273830885420952464101441679900652780928673706065333672184389743785950009242290591563941908596386649963169685616362061244911098929929054656164986946378879999747406283546284378493819062129998577785034116608784191436923976212862028252037325265468809482408088812863972066532636307193305693686109918279354039325095959058766204379641663877049774492674549257374718997545323797964801237242499500300964886297030896018828263896573133081532704126727690500868364948176407633118750620641303506780117066513758729693500545410501776737829154160682207459266073648092042552758425336181224827854656916173058733660601377760798084962303680022909235396246233005171825588466421206712107075241602240021321191558181997167874400146189393966243786708813212863062261822910775067531969032531154862867614940590645370120716878327958639116568144440516104333192803641671958278285171993764734167273140848763027960292677628446106197012391202338004713760877076183041315150630811215522793090791107944518499163779437796188355889114996695169661943628193956378741278798122835533303746922674896321795221688006301787098826141372816935300380320791356615056623783281906205293933369843669663348725637427672481234367872963751958796414849794794924947184600736438155620742920057229413365376064302480382900053564082122268696462763493222949337201814142043700752076223395175411501137976366106010358121747512914022939641065478520961218140358689646872971433467706290906383012185233440837027570030362106811003539558935204562973306477760615563491295481635465438449673041074545611365229280958882412949814503959590256441254140919899376408873550062729889121338592983565293031474586620026179159208227419031999856017618892306972932610393571954903389332118820531485237521158729284991244351310951098942066238582479903621453647863985803671301702489697774510277753026501312681052542014984571775878756544742068886915286113562081088340106186720418830741202938118883001617670431434732326068770485951174952083802245318162463391845978253711778550073626899283951731545237473807793337836071051057424211795089966341792444602938027440052444054062919470105976125930041853417489306762426676962606851574725907112919070068112505141457076670650860989140991551174777817348891278180768094048620280940728242939227008050506765959225758843419552958386720429534572271990925710126342660339394656880363381734475212561644127147740697264985405737719854312255915604793296415119390074915509227243604845450599223754710619364865323776582228063605056152743202742168782185226623625233887494490700813822068439552521989778259454288526668977915981220165902986509103279532057123303369834210388194686388877854832464325728240658749866776733548114928574832858289217364207571353484726872914001131047733610298515073000893574362537198474904866702762943443679983591134333815518448760166477589178291023795308888435738483517990163261027779145960315300000593707941305153925287235578276148079994877909005414399838921347055962028113576458793502429708527522454622612513442507369675121902251394698156118964787868949131943934173718922523307004071030824983767693195731267582105940945404343927753508983358963153049638992654089672006756286984936760140941355448267747604359429778188480990879896660220454985268028407871640950644033198625242952597757563227433125311611656679438484909216232657766192938262307076656195286041763095911064723525815561430418254848447639296747359747367627872058362823201694689317692415771128495409059698657216192561798921668977992262342176222300141932344433959268181856065787331517260428118277239722034582705672271995875242207804866145417836214435262329124791060064035730934659963227003021705104451464429494887517798182128517700893990230277130187553214631793276211572753402871545892210874223157261269811718066250950086817612184664694809575068556506287251712145877689500645254718910117400511059078957914543101682998391900814964898533033012574806685512355268678389748535937758937242363836994483030004362354584447754337995127057625480689065293982071380523054112967281368986873658687863977007349815012480102968257040201944598422046977461203003497893748674145634377899623435066765609546755761047531663366121836360335875335851507350320884643035683551120029263346882377881153776189193927095320350939189998948183129231841792764500269610161270524337664500181712243194818472695426593239545164641646616406429067519602160320223504421867414754818560488763883105810519022622572189962509217654114785523662700756108184254679820061005912791857042652212453809080614745968782575755330149457173287651991222602989532076731926298295539931210606356230195976206639711005247652259539551834502689580996358853667698391192908925044126649168922324089250201863185439066866281887526379427761729241159823098301719270306501762722216686522946604912804099205127052386452027455112251744017432834936839013373933012032299661517316242803736151189350627674061423192211224633113863870452003940218118996782662302418703474733964776217186047009423111272733443575485786061003517250538865737922599281867708594433112424635250555117723210362340869046842882307984879433096691816013974122552703217506320282570579690234780850330517863069394543211970668287881942721193734917321969733905379806268081953060316368671889628919773414751872774739218430090786554221033263770604363862481661852310493372804313315359869531473523278337645275827269269351458348776567981206424307713203104972461148505524535234049820393630804971404984071803544759827172082447025531206724034462742767670195409940460563047310668230735481476054668502627556762662371779153712760415370369832067871224415095492065012155680839492733533086414867938812147577065192064857643369390222706874627328135982297250886905336279368766830266635372529491328694834671709816736531061851416745838102960741889475325987728483087626944578067426695851461195654990337088834271881499588521012216406195846570517010946489174480362713310638121984399063965991558627307342618248433411614996966239982961270333148217057659580862356488261208137287575478346908670002845309513842202720906123644498385416721353954606046818470673139274021152644331975102798698210445968133833265899420965405214032207600258072499619792782022859699980947431766909192561648761523591771211529444216513426558419151857474300252328833955655743638542168874557354426876759021136742180394338402710697108520290898010553114775711633063879051753052649899961939735001756212819791575254050858857749100077937034036336559145677592326760211800452092469159341676885308174515215020274641963012861396122971162910229997383962369816360317408234745766353122820724592471617333913351763004693234664244445856045723958337092951722649106338500104896905154735102905631977294402114559045929980993296046875039791630095536741903606513036425871939498649452770890940446366581099234325663634164030912121225596957134122452398928865572986772068881497514319425295519105046282169955313922036774955129468182832720752024760281570245636588597601832514118676989078105990676444445717211702688617347282554978775035561143109520920526463527087850266746998126915239760733111158488322653534686494311159780770097583015069958624189709993799103708669417747445426002904369572732952926760665998146899405397367062997472301669179234654863413312604708058260059260631371911391742761211095130078822518809119425697919804473994327941585646055197286702683196436435154471276845299169217286916936250509154239116353928487457721759073203343225601911839189924268503439984283044392812416304340670998966914705006072834623002242290253339916529524378470456075944351011006801764396112406521984155072682062689641615330088032290884399614169623026010678934753953123581083082936174858494295988177312447408335352018258682793494874634916734215018106112848777198573399405112294517628812582565353021666222370989092350742595749430755606801480978749820533972262148813208710793814364922429724094760835553294629179289781183864686545180731508936037169537746808790795686106006528637699549353966065944067156030257269791462034758634352559493492765276231456358992283068662985577167201232413307068365435797413401175207959044411928956326875724620139295662955620368230517628079151477639024682035160863788418701056157731810259161459396994495972779912865470791705656974323471172350029067588538683266097266947480087737682641276558247286481404798689453127100957457405609025739148881458324608719382376163429683240082340690468317606319333006888674335097828472644948812357191755304574096942896717596263965413087832666806895522520234885282001887711261782735728516133076539068101002404466475214061470713465598863859129723753321478346006019297933600084292570520276184908619597659208621590966611545397389489003104247230972464626155166221661740131697710815832621568278940155020981595491775078802187010711658274789316035950793855152940652408432542409565439696765386548745159862642525026452903281895183247524637617331081212553190892324639007906170284793469269976522591987733902462802234231423763708281648075548764488037492301921357723183038018236566990227661498879018419622424250717212735395243983238004602829873604969592880421597877964603049437807145517965432464928928442989420589825705516708556724691175618075475750471675320268243536001528525214986218544765933994952792411701523344435550601655299028816478499228510065037381645935645922289260423453633335700385184437586505930994474397638137850702153492017085729249801788351079606070401509118078563448355241138820578176081881492060856569819094853375963686707357972951777698773872245775298471818383915792847243967866165091457011139461235790105132074515768061941900606235228638445869061476860981496936766472314913709121348909251681110652370471396480104347974370179412161141158020260070121119525716396115856692461959718748611552280815238921777054180300146672794573309328242856980349407523172358208617637860656702633151845075612062736283476029209905718478967634220485835147528418518682582898774943262614242062406035634512839383132262922896922188229415417383137320662398570603030058778242605034412923836954337159617826655728896357121094031942057605935163447436565305739801793343219326476946349894788955762749467925109306128425151654825877630438803909315621092167252031463521030951898960866527299154536673519310354220786461458978860363766161317114589584056164111767779344193408659902149564401812691776628995596685531181671113388913643924936651696264419846053883591914720010221200198429473745028353881960437597019214132411516161789703026110044180482569804223594282820820635677207544799820085533146756272020970813001989641409353207548637017558142649277826044370757808176917783383960864733318237444343379720510417759819380258590642850184304898855114956074904481641516699224479879009589238295826421737385520447574313832054592927158590712930180803856561452092890734722318881868828271888686488040472626024743697148275863742118000922314414215407353149749081524992314410232458198462604913430221021789929515075108253197814829427107773762424049547907057307096255574680271406372053273721944301717417201518640541025695023375510064591049474354512990970237790185803872263770082619926713382621059827116714387100941187425286278866377447261646853761427894777668908757139383983445529258757752481249779963954346924707398567093302866411253773588107974004191888403711217346028658607236035860038875340452529736871231875353487401498514743089700752550866832191307725151478688679052181094185675115152916979315076037150212769822178851703299654324728898524179649248183953291857499822178736588571152871562922158576787294907639795193720445693554188231116464488184626896529121633557137482435916132042087015479396228964834991350635503307571939250406091822460820919285391008413151708299401888489237891714563372144255150949506858405192007624669431595415560712967369367596116511833159644066620352878871561074084105225660962314906208752859190587797968093779291689516691578701345544590187488640813825094743578129302759736860947570748710325615579357317419605119569380224874688464734082294521256945949842017176855691821428858847956882063015064774782153556110856057117752270808306959129164344181745307341956515827621381107008618466624406676158625729656891393504708780109172312179414292385603390969686449426664376373585173364725372558613334008906073365752903507695116747633607090079876549378067195739547991574460150018440048066068153602065511972733704272138242682253858984806654717830144386073138649400359328633893283145933307174279932950289262333342095972897414466859467276274845730370209180219981859334940558836613901372595157745447014815811189953074961867008156750621355199426386940020588169362334542040667534269650250975501394924338201592968577286627344303426493943061871931341521660982656938712833207257635618296490122395618204108354396472017659057551857404355974579937923521941789297374863990048656963741336446744368083716431956055131889461482362516874148968265679835817713518954458991715320048335061477917756661757725390614377135436940907195382225948314350055164627747335116169501654743339794688310252903508359528303565169338961631404366632233621775876414974473433695893877699922595376975632158947760945124458092610364306632437085249136617943098549600143711080236263915044389053299725153534237074161795510931236636481552503139528872244705081154019550496707709699651980802012058795025307453959102133678026403876192220665750536246233708336495936984348990826990786286385913740736383763005827393488802005783899602104442124917890632614786174393905581936185733258913738390662428743723129907152936281273076474608626067897251675158045900369545434956220103282745626933168807773899823858622783670135079870248904480080439817337024558688582879988926719876729081873314393354389326409338777459832957544525607711083859203218008413041123138132168787602950751413677883726334856238231540513831554032496271549290285019240758876279894703409706764788436431678866394618494361266462543827648557589395011807790594900683944436981413529696638123069205937221488306236363026068515646624562945648631930433010606674567240874717339151971836689661136897485394504939764339055472190631840074818022085354731542612739483942023900028408146642514150425135035670485160991820358809783484699280038936570011324870609185444952549356078085275982859810634451194149505143345030479189953130274965035424592364873586833363700255681647006585906407467521394777688658270547642396809147908942960937435920094687005727942225540442885821169947500636391197303601758294566513634225780314879859376135526441874593431989146979485947597028884453033106437862497092278675599191641662186533273298227179509807319943856839307747579588530777116375336660503596330006174130201713962169089423945173068363077172043595147363674405826383903035981048956407282965874280942405795184375518775132619623786377334299477710889568500704788665313271339686331795416502373404461206978462635957197633021488533178690208247946250022090389795032777603504199615251772546169633487797400339778500396594252806930997912127984486568049473402710144778057557214753740861649848854524157442144317852144794875937438303731164193281424711793399969019432502361977395859640539244177489002123560043941680067404472527511500851874617679854692941459552492108764062365186484291403723149509501917898388971414229668445904025569919383397616786673140302353719717607953938900249283611865172004980445957340165572670640366333181623327269150486768129282662732466080581690916438377968334343278696006896442969631666143650281080224696263996224511858085563011105101800841264319240556619319970477687534804252723606012558616225782984993870289822707995161458827454560291625581184296888695713296796718874253100154860308041846406163270327888702448439275431879098345688487171763353481655174179261805231075130347440970461633510043037519604857765918610037536376119698411098129727365348666619671012100830254398915465037654829853633371096681245855787137195050662790654588706362664516218385065046930101836561909244247730507601670089849595119193577343839791229176856379887839583442595512710296842492556918521875170426421469417455965243396271308345765842688611185645174820259709173503924050827343496824662482445609591853837626542320423938026331598868039671231611108819013788791936244460828046062437003211490379607090289729693522288888057803988566274281072416085792648355822397027035005927050000397365000593798352167504377503673251847391442304894602215448865901308306510083722641103983496334587300665067804666313632758847872672041632386320028437931338736732492240370839890978898627284874045338166632968594058908016305984565033506475209922089469737099697676041177031062452645887720431083103132954139898234555643195402247138121153754815089717697607972664032987583240520026081754545355255787163658723770737503905106015249667248565606003003092069618806910417128700091189764503507986651560254599286875217665844711702264334776939337776932184147737077420848981266812013260218985417859957592649818831339756139386620142121097702570556110323172727558936080951126856428688692248524779808652344814675267691788288546979993073615216340087612181271666191819091861869177004556392529976581483085523337920257847124468768526746406462854187471008380697418030188636442295844787693361635597682744057927183362329292991815691478769611311388451076674832228135962429015800410943913026282517639999625315813117798642879733978019632200518794908233547527004052252970020708218354448033033378843174156607903173344284544955618308059251821615731985227266285840246958292259854086738627801648414177046074758740433355531907735318242100811118121769354619574123264246638579940631761843782091230580878194199767416570219109661961941648601068932667398520661525139255403393825689134218927868135071379540707438667298125260465866325631237092096331103502740283170840595674926507095435306959043342032163997917367805421988299853424474243631168860494508981358862723269932005165516139302031756054219909091143772800662397624247077795416297276823506058005385409903438459563521916236018231612069083777986587688512142731453510968343312051255207644479103504316310629533574640238582164164850393749101010086412318325806507092741481295474460249093752175715496111339502194766334740095163467121168128714009677701898193640091309757872273657209770322865209337856456193720967351473578741682387711936091958470362320041131161577368271568735449880239654725264880122256863755070005647283838788463702483352748095246762781477542273319370046955473978384001167368723501643031647458020884427114943399799028067155287154504660173620600127703868349888457149661189894013000044718835456626859968744127649841673227025581957244626368041901215498421998507998724325317308021118331638260921094128401799843177824996650547729461614778224809643050803986076454385493579883813812097103798885239720149577725490426512391885627423187734265754785453638876258791755543103104719734707604608855229822354332116604110178844055602340884885848629453000768934402947644358848101541487660865833862945394779651949766234812948075726456594750584005058784033836180884289254493922634388119096184895519256927508660122184824675901556723251592372855814384761061391598533770027084914144136719099203779669587838617782508794025380537627885939772133313533210853726328937171261033969920039040304535955719975009398915605375637585961029103197262897366590833496193675713041121416053928861188699920004744239418925623462296666947263409134218067939520236108220904120723742296496122451905601217457538113385145885616151094759762836750136192840967735966534089534747557706706777677123465318361891119734920773983236443898556644612607463268716344013937385432524576099492750705712589707301770816223530265280001754687342638013668282945041092296031133712252249951395406977212419739229774588993406807158793976150647033360678010466673593255144515676299200173643839126248960105544822049373111135002223253593894177424209718241084115350900740303935237308839183380423239870009451936566948710081535351715311666651220186532180477700171900143464908014960513653320785202356254350172897557995849139879712253516189693487171250394152877543756487499958993587316211399777598122845210091554552145032167770310536539419450143047950910539161389898236647468634399735794872770736159862894050691868519837330687039810528426034662441964897014870434585975233550959476626833335803932240126882330521811738826503708852245292359076151029075592446912380727648825899694194594981002242826830937417966721153975614588699111231189333916688737908558634756248184349014406334718578438848144415683502182265615792673933342939317249799072764428300109260141065221327703078037747769711717978804100453483495920703229416251089215920136638068035628776537750833765484720178959092218325966421064260939406132499546978939328492333961442967360380204520668033409839747267217958405274841160353026406065194938661587038985501327299845379852136304255882567555848697684454025570322171866931332071456922245806461534291428226012970156680264954215361571093619377112054206559479436509295502872632137487883786296640925975309643960702672830537993250992352729578157870776341145149616401663647394143216207936379150338755638124824868546563613432553627329003639382815146063394832205877860429811994680637635813342355174940645610518449111238714262898356017432247482060679428740473560539726982395726451280048894231573802255718142876318400088561551578203195922119820523434892643544352682849917821694500333882748776411328141401412448124235702900321212320283205174009695446270678188803327208056486133708474986478352870861916578764313006307099770599934075290211515743664263550449206920022430805906576225173584351384273121067245647247437830549334192951533661738149124522528893164044435429795853133643019747824821314894953435625258335543300477005033079528035009278663761516498422548359867286480433336439387224731034022707329546583196321389017652328358758306132960450870000240228487894470192278644192200560038769018198635696502401863033127084755193392955806412457258223552525500780287402490530661266782026440220297262093944069811629096399476879641790594505946125330029597437781334039612489084357811173187734915181828593457487979471258353209933401436146062348708467673860106536345168797038363709023713741717239668403430717555452999934280102409270763748822950326743529183171288123490696440758309034650124591992183002045835010118562099162432223999849391352272923531623416962328750155890895107119384938472189176127822322384631283211579200768251718773203046421640237613861813127373154746579242990400075019605015385849494769188985363915668191567604449941847844251626472507748085554627930885128406900741225804400764459517184434923148911616678614336601366834868569017589364724294706572510125918845490271423828000148696945815730926657698341715477434140394346415937072113595998648345356080874689199231600076858516832043949588311126069441525246525715551247722114007596236250835745186348791234129280455248453319077100243497662296880308245187995488594608650796267962126650492559670857094044123025011038215152323746260325858521814882484146536993976448341263886747427099678948988554474568341891658893072496782647365859033577366641894584037785802391117926392937425771975459235392377966191950260029493880777464834636471133278219162792329198621937338342598441815267514405359048410059283432518095383629692280717848952685374657078153881421118797988003582755648664258068391556026546941061011573067326556416016494328530305592131089953209674709038821594542728752571731494424452491187860092444651917912660008490094674025637154540290428702219129643691284767528644512722144028991594131953135121139426134947633185341978144254156395722317958255292578443917964569211509767362586886338074932414102069434288243475524840144233424912978562669299461653727250946565878139315845966036490197490080950014420855873977177325024993178384910552261823088673770298060394614711575767568129145517775438907969872277541462607340035123589368812901232091534842762328902457085230536304286667011209980253007344952473998969553217994935095778243224909216619290016909808308189961918974359689984570305800568877038438040683448167913416659011552631706036013019204471911964961887316405864288024850741027489369220525760438192834824773118954712761657363367891847180667402869198101689586592529135974449020524787387776511358911787326125657349612228799557322634613874433349415688881465723420642513748623549518068028838218514815640867103160615546356223250988130550267036156766436745947190891936361692377635972774348358423268946272332811640766819393883494865876192629829970074068278540896886007873243514991334530855017392436263208709723612400883309667337906094448206623039566386036308273255474026959589063507089066139057980014350180536083401860607018817476804493882708935745145197314503690114806471490801952515954756957668497595807007484525307213688733995116903398444598151987314444916807463662706342693188002271488419128039614371473582425036615977025804789763092166633117929748897997220935221112529141277143402760051291070661261863332367467352886650537750184435037726129926671561651670082940181297814086986790648629309032397992734541464861961457883616326322396842953972274525991367836815729452550320820855944141162053134178589363900764970576181837105950256639158439666105814562184460122519555272739137098062719946285905126837154063193075090014820002842967639188968859684811814188573074037086233571027885966990506393501834485488278014202656482307274013777719817967306346149717544847029040684194348004051141475747732618425187712651084868551679299610712396062496866213352100827087347011972557485219734109568058032521723351897163370542187032803412203679930565427216804315608273874660336449252349329533358635020967169866162372408998718012732572799642098645432803901548236826689554570812952460711957823349925361229871005012964685919382053818000359283424975648957197946348370408561762397253048263652701312649750183002071586802028145983559979725903509618059797975672949492548949422416138072197445306936328685813625170718328583773437053889145440965143085939391251361352518576837394441343194403205227658883394934597574592943133128761428892475907297372387734123780662154086933206057137516344537467648961661220194760450545255409977753506286433291779565470316481886069938579763516763016300346053835583230345342206945617474121151753565777462923750488425231609991936122607867570958476500962951003486612792572420947971046694880331100250411491368999478260654547082859018274945385090450551926112784950819412922638400367101593184648695989769200833930323384439182932058298568115565369339812122084593931788177588269027619743703897974693331525359538765134731904327221757382418504799191940554713391916653735770464669945199198949993030928144240327994022868311484634610601083972828105602452376346411353090613360671753303806248929262003165373299831104623603959531805756139295926344722001363444803199604871421556306044984622621193589618592929657959705245488593709951671791661063419066374574474031051741359665463887078512882987697584194287122045871857573185011761050888500150333943171818639789999434774811903985826991978468546493764191430783189826884872430260420049113358562586225727567330736286865746946067842310406440052702968322019265067059896403111260159565819141210686470008269406524835857200027311530629125334445826799654337874325187263144320929554973363357739903767993231748849798391559722356186193242741596659114736001802305348833659381643801003979405259959275530185477294357951262450089323650360876221509781536698578380522908400199943065816507887478073937177142775181057644941659387183037801712612061381801465092688176562864477244807355142050200240013548589322435357430518713951783488012768187952234024698623218575491674435559244420466233476624652720655383443163274860834725077359454645497851401436002807006244449462605095752199060529054945056358748425410168545548653714864022048107183416616004408722028837242969542037381745148404615427851298764202360076382404019081095423694182658009050572201369885744155993278552306555817625766881729415594812735407362066032857180920993838529047679493526573432074368516205716149737773998186258872346185433525275843426651424512452182348638790429778417587020518593664407962937141282871240521554972150803136261550086900997020049250991773842888533248224366628709462842166594938950458229165873012146219532698133480599354711150574916555997618152123003764314982954103107264660834544270046516224763470005520130636171649604600610089572293893533760442981330785802120489093887163972806935740768002206478739746418055681452406274746296146153321019848214532920415908627885532627420222222832694829202795246017337770728445506572752808371194188187907158123545918368976528002850027930086426070019899177123710682982552416548724683046400381002897938296677569882400262677181377944358819295896023867656787631827941914246679365849048884491047802306899950730274009540464140841374650132106920058394771950119152258789034351761817541378797074656308940754990779087307827180274797500571873836691415213328454198192447578197061251597335050216228137494240542049078443190008500933571658003884358028799297043530825270655634522577644066950156641701332146223130283936741223805725977565345508686120364170289191968529925489767926464397277447851266272429315122398743186300890263942070255585598145533023121326265993515169306676937069516084691389500033111186306664717658283379137099605616123880680595264171491094847396852541896248404532742087810208051769421731332159085896639716698633225621297451729431813178581813861128366004061375867430291020249152482112652248437359395181240237998821649281032145476339299626787822176226600610519493453408488580006485512509099445192837901334900899878011252815915548139558507732883558227058660247944528295848111442527056160291496750671307904963516464276321401841950545627315957645265692344507680600180429716927710430393235961282921530691741393534841282982197853974279962085340379187101696595730899948622165567858136384187964930067045764936275367552588129068209018929431702790212900472222346853006606119216633398750059263334405683202677248316453931327041626227863798741417763916849203301329566468353299931366200081352158088211897572829496411372941873488998700765519252717401054552300349448524003699370784197118362338699030107816007169514689599750507123384234998377329383885916214366396196609014480511802430457177759417840490060759758842265018937180945825269962252607701111623886561435039525014215708175704336144113492432176869258441835332473869143744411227496704649866950931481706616566262911797638670012767814235997325299612393223561081578852892805459911320539688955481677924632263608004575620591596181366338892196050254353971487014085158349027641151527670693550274680429013730826442698034268705610561014666075941216142308416589025405889570643332973137314506787884861946943590967173778547639373276497502572218959949709746813605541993969229117987949580052131622134956676116106555321752155448355905393653972484177382190610180794430580689265029883860599334273471226862674151747286362635080343014064115509352471936552390228553899811538790373505968019402506393732618984568280199065254329453090213461862603811047494550942006610190954820007747507966974545411830894073590655848760640601013942371268873295647371395782455745291489780470173806688371920750580766211662185130891732061457010539908460568532964332483208870395072755548261859312266607230974919275752452342480598934017261843162241673060500849132839932058564927691070519197705113651628055186941380520139672694027421276713152914967212899954893972893005889134444103527230209556370414806462676594617496059711026681125979656683273478160320953857747619755355190604720431073645339293051019043125046618151686189839727069613623352739491316130926771863301159964230882422004948432323703959850245535118187850345994308305325770651418855647254205633549733821701233581328099215428446854087576023754800678712729390997171755819056796840668123568076871636996654222217733843621301681647900146593301335560213927883316155141777972088122331893918768447205100777942674143777217495876730147074601761297914768812563025591008613306065250125084904579277743278043916220870060735489815986325622316301885193699480419373458486752682985134323942391292288566127387741982965402572600247048977847256839177758907951193838840962679064045314354710619165466995536796110209297106820219475388028115464074475699191201872933466045318784487974625827211373948440259854954894596774212582787791423967366812501923361453777589666054531118252207590285500652771169471004500669229148512586332154123822616523266554778714301171963779532891415788535439484670256613248772553496437259142248252528265411711041382121173222428624797686229264280964502835638340647602617878106995701212289047444972607183709193504961180840229979980927897109315278503692401412603618011610861457114514208085768503680995952511732576571220727860486771779154772802690230534732731268510326898026846988097572762463696409268513919439834676974801049913043258427883344037231598138159839165090668058692749253245364120580432291263914894928119922389643070114605710950377005811505820220520851725047602991075325924002465164894524814220678101781575028168309556322901911839853115994698558766557355470318197795128515168612140157934207587316763234158817254197084424824969385746223265398611572983648662502549993885824110939774558525978627369756580400521705155082830955826019880416266522692247807226965504076214267125551122518316479466119065870843103882235698203578360161819844884764500775268017478005214451962061318783553303394025328803674654112837549672030192855401315149681860294509162538137464434338625468522251636683864209834130142956159662658512005482089577316737056015251717324739660219562377504976126539814790038184287916301244578815307793772435178634204233789499171786313634358983869974812181895467103153485952264747495885845940383390578793101161211039687008966058234656015966459099801523951586636317215972021976643393911899296524350760988040656872603882725492824869729538152967871178204183324949586975727533810269357718417029509109063923533406196530427319797048024446133380093565202994486762347129068909010333339203110341545351981393348487138095002998797221377641550680598476298627705894720203507571270934230880737563764213738961851215357228398745529402843709998731727582856941677310547147587683782785065111092923471565366309307575710280836863861775723230224673491508707298431551743547258831700099019496694998606114227304897745718090537306902840101311320454731353575756984775727119809593369961785430030951278160591532283777508703382040075307101371677680491375055259559046119455915044555950421679999232621158458838504579329892178977372512488968866857175911054443159941079099565214397012434799423966241891439060178166125328668608754622390804188961389085715028355339013814597551326527620854812783592052945864482602785120907091872517914632667613299659721369804580453968491412037522266722318918710981590967604363087753382636196283724450715236605659724904562342651481376678548362076377452910287807296448959460971524301852615085515249721714399364609341221946505983902781955341895383011991044518994293834857507681599772812119556138126584444190754370533286930635670515948395900882582498713695537291423117845065940828335475239225549788700431321781587596444106731609285799199568294120028749071373448821388632336443886189071017352590805898918804530864119802215488949205377886315695286109232534128438048364945870475870857424700037990247774837104546322007128762230304320412422139950884790966032592911852135836254735670080121502087283607709211832171641128446761874935364216287896347710339682169786313786548553483727267614455677988412224517832809930428524386269430848874038332634330006352962335154224422856285214362305356187465676659537052789332444415643991706591462565546510747654321388458205339776473238655025767769552959594640106419693312466536760660946114672790869232671235752401231138024008912158144552919150818446788967999409312225802310045946648197174718429681328222388994468564620333056163701202046457480275766315665937590654976174064161166122022465879549871816014728208692700678709766048032615022876909335404810636115003102704233000554257818561079966558222018668354373149965282293370532687357191702356436812875789654522728162829312820938080778085604933110653702956788862930180347982666426640605183415540506196207361110794554301472902849296073362399700484892238704644952187187550071318334335820147403329060785507126261632791671068154614171618772236351269886177461781884319280435918826287309412189053553670811008411289984097850219780342696178358643771697438673283696642842272518618396768951812616831262344935940685263532926029593344670988312128716032797511466891418429048445659837099042779817206746906367345745175170786822399466944699305861925257099402262961505766346397471340543813055531144683944075220593697936155256240602986593077185878607673968967833968866848582873721276200749092596807118804533848007717550375122056852199451963261274351001482844669460919005552537009677726178666957238779287860980419745811704724025935890731326499815097191854511600874886000952149844802445307544867106159420206448919444001934164357378741879365505145372781418038121329962589843938484181726865495884630088686682252746905475757757352483436518962397154877405781228125015376108010175533163989546878707581898594041438269273122604535841701073021971603440101082620842540770675184629481711757917890376486014698489868756044020328715680393095012095862263741585479929101088500513294333099956622857949496503664695789870621129474252381244633697003457636558523801920639090820008288249373697574496297039987663428882981121886901284805124662870384617878562987491082682779226065287703739516167947858198016489193197126437162385262337989862178553335300674877527459359195933085843046328094057635310209794106526226901057799723248785136419377021711143820977810836274868682150362358003468848488140604494767558668946620115747255586864601263263066431966109988539186003217366428632830688562767778421867526651494931092342939282690227515309353776721549927035152865968482061972644849779184639162324669654631143583368022954349176060465094094941362099074086623673349006867570447852302180702901931534027672182352355570991530305372624535469859084574687353134145536612910560831796817130257017082896220736207929000582383388159880149482800228159415118567686493518697141585387144916559495758104453651205944969629799729337482837278189693152788280154834052520010788230880171481675456993755999686067794622107771093753568666080129092090476794665212108830406793563130782560235113573203316920264426582572078706138367924182615473308273629839728618052151186449740656384245102313526733638636514584254168419028070541039563137357412363879195256520005798690267506128000990793387545823365701233433060651460236370524311179977977170276643218057316985012931986878522906493038016397627184051105737725790062475663328516219244105820272317348606107181961800096287829444927175501699602630703536595060023798178888508847390937820270328664955431461201964859772928171569645513841319559439249182245397324399309820525014390069253916495834426641870126225248191291116286300284334021414402840857333412480798013999360215940699327547922722397643339769801432373386985957767399766091460370514521881275951349906489970224390282308459785600793478261663382723337159988743122229702915920007495468457743875001212430956595202847149682254410543157159941958669282587648034544727029325260208509934362460153436216849763710163073450957767785455592228958470327751709981229206404279830376699110075074156415780596160597884762522085735691904755672358099417270925731296874886728767198981180146160318059978684094962970070959098248582809493345201973058179514650821665050014163656705984377903158591081302102396778820434291154456790869889193774375574529902624642475082779237157335217594323382822535189034899319292273539069404043592986576453895251984999767242115371519347307889603970389632077997007411150037944638241844564387930800380270675391198144397160575259947471187905554466311142600771590720305793331409588793736903588106857643142371707618204552756839650468990214319543977759258899177690206090655931523084797408392071186042474919618026707186471008486475757827667223261875164152662381626131838551967070552850309346903656331643909645892021537836257259427734286945841067477040333289590112157183555375808512201321399585194415711300658073899565923031746089132347130666287204993297142105752861291700089026047447549382708200708516020328509580925087501625515208798135655805720820250021763038909974141463297836276877527599523735276509810809797859257966899703215688867664909186521271289006991077625157629254756204308802783153451809504990902047585653489796690542900497599067506469468585521369097256928252117401920258928040707224055838963147707555429872701383606682856974823302079078059993691919860008226085715743814558170190669858562059484058266288398312119374902871383328627986402796309884733341144192631773601530436239962560934420758483716066939726416239403084621685269930370652667411756752900004130762432936375705675266953446998029755828776167953358210941629794653479787163090496526125988625382930685807296016161970060592244548763887814089644445577044520569043678081473414599701145574117950337248243344444657027564778311759274296475502057802987703299399560757220010927365069364926129988726959875901118396024428913453181543325938757411736198840461133142366614724065785784921153031281123418855275663606846150389450660649269493974561572405688413325292720454464139187228209641499978164748065518068980386057844211066139614039776997920648754927362891479594506626831369846130567716283458087182713309348728169599795522423017258696250692982887712934608001433363801492907953398383786982356531739381210325986591600158499337864177614535299484349509123823273718452494582352015613493408775208782673586906720997939031796444036201904026975784372791781073905879286534810540251676387291498311566524771031737019325173005494227540146922855658920658354015303717569176090902103240913171515943427765709075131817885690496587220620387335130489020226396384372533563321802942585472117426783822544198799946164443489957868641810559162427736870412584655435870564037726524471615538038464751477421289741583941386945659025281072625020837903249565945136634842081144992855169959993141783178860344845810632872102406366457554608345043416512024346833812879684342715533563207608669074973557622924433264269178149475190091161293564073922134401616327120555718104737995218872815032782144069683670836268562604129498499583391456329996694821531954826846456369659418655889743302371955949736822788664012908884745038759478966385788812953043097259231687258446636333256398968679209906902265303944667469544689496273197675152188867184458386743409692936328527217439879601010845357584430816290916656710005880405009393033357038252633991836345803260999716238339227531663269899349389609800995318304994696748952324899781862754280434969470738500932031258549952389997419483803365968541055983470353872819120410083143776088704944535469254030477197761105398937578266384380745380361720815099985383964372236409610474962371641624120450059469878001518557458504325220068225517815140148026762666394491111430922999402365852028053878156711477876347747597868782087580461158486323704386641127314999324790129303211864008700535065613969128518598239660099100724833629467424209024402384660591181740688784931339206509947257390128465826452358652458185838600880218173001161619317235598540546910378316269282372657979428312645127483348020359251307242638724303174053896940108154223339120964552023561186457106781518824451486928124362123858735762401817308333564797019135219896114062170454241699463219517759522214477068174596170512794690008676115504358828637254846800622444949142384578517025856890664611003322058542488984314729926457015569610423044043810401527036741380541312235050224813416568466830201120980153805300866062446853054857372661287404927975866270077210241179274486719872758846039225975736482519531613054249946690344974476374810949928944719150026619070109474365232178648107607986474268857062142723096978718531868456010160092796847003334248186739845282650620923775755779387811283870068934633406161351139841130597970994691181449958813537430515366247305406703276611641678194682003036219273998802715923622448750547711695847225113492760732821802472747353907899851019806968561495938842600318874822395545509450622754553190518779020716205166975792998639329738543214085801137851090513365621481081039301896311208758309101905895289654876632220721177358214222371828526138865686960663158530625194978443966783823338114555501283784796058512759472658735010168439644943075303139208643084133222372155863877249143438320649736723537171985292674471383704370243975711327314852733792454203824491366096147689986757984448892560387959243504047451175108252464114168656488999798746481434576725923134337127814147925627922229061389155426178501771238039362778418396762933563005812257508233572841060034959503168255399775243013014859133525630684354817682045565460954956176258948438311662790582708289802814135435257870143677829691943422255125389331248564943701209317256058498833483066714411325643432026452760265699464683438445862380387965647083519256969952652679803860295151630605958391988496672263112988290335124638226391334466199383047882976497895953694613255326461442068023001049515235990311578576052915453592221247181447222973814435447554513034515506954599105999795118863482932112116834993139696545247678754834411843829164680938450488298573801052441185412742815918701740994065940782756345049334615209329997379439409610693547572087505971737946629308804973794861396452521986823754867290953192660447964733438242319054968203122318983688384800591624796238222843449188044317609864231589826706632447891509857917864355902394083034697632833123872744536881383638720651753306287730178558766849219750887573166645225858790193538769754089272436277289262502393032599606386255757757147888046576926171528193660324199306819172055054581555878982056769521218511887712554634244740246082853992475062810180459843299171382060586128464285610069912217036152484912555103442652718535134432193715963431004611553862127694290483079968438751078233036419698275795073145521876081954392436432066375169205860950262811385143262628961640775066585720115970947680020071695857424324596845551366093699272361432019858063770577062938278971215594688795053948667678467281736550661855821756160144124972612999578432447201104578145004771315961584390235785710716106827369050210455419339953493666972846010651552994921423633117061591118148763901111571899755605981931010617302607908192661266491176921347015438407072843686118740715470997853517768688016749207031073962787123370422390011941146171809182877071506782360712454316243933784669733650204682881728946868148503415067274382031785212409679922732399385352015281782584457908919467473044839312426764305773515880539670505721726595117803123119806768409429269445487568756024949485662994289076409322783633935922473239677835613361391950275024308212323992790377146474292880475244842305592426725444739488778613614190993007829038910773550245884457737474288853589453976448663426073930864756699055469112883920650172155522105302786605141739154260991501423985808941747152936150223646705143037809488062504008121063533701085678209182055822526710574035992549900567823803015994437931984365930998865514463498398083044397644000609283034432937868294321975385367838652931937988633969210843427899438022471473947416819280961680669580479340922050163076673695239970678004440877865296684158951990965589181257804856644283634034250316495874102591402994313804682922451060155134893008382996116329031759459257784555177949943218700857881516268162108003752609418131313018640894837532291510397451001820698034060550038172445851782883012793641519326698994071144455629169825016264737745888159155975039081229639037207303598442799569701207771975356884041799513246229384488492685080242029986708556300106475073658757858130477245795776727823102926700897995988062592190601600036585915445441228449065191194888276881589763548152198393691232082606295493089439306788085298651851248468443925822725713116165541461442148292348425170372504473006303390524610531411899406422972058058677765754940672226198374314324046071543863084689898935183220583326433073371271857507828514103937588583099410759843180025092678223662946785736092759117785082846503899841835568718369490757139688023688062898163533021163445127221576345922016739291084301160466569895648489952753069802880767874647062282013600450967423305854543710957227662946921242628592044949105235876367127739337062244060928769523838929488164150422608496532346559865442250257956180633808590438715382160888111681579439451103180579408767677754200243909871269394639397383825739784484191800551988143473809993210434904023634473004042317563143719476491147790771611798090243933203512816252782784481798200895056012347757579231590260498835504682611044927582879628769527502382685137682449725741443313358656237671314285461361130809840878861745856413909740463388522815461965574041488437025080497367812349227161817645031046088400045714920156464177962110373622638738564526575761438033180730826346394975905885371862815274297698122486960485932949314979674240052247658290675858588601763071829887188309912283672078197841192817882556386680643299158226156715233260693695772974186928186857315479198610300247614159665238491028113886204076283876291370819144836645071930384848134004728100539520797369937471460873495383976045313916695711598750621108124236027732282982189831301699033734657620230501287438631798397605845613839949267338348724060181472594179083632844421803794047078609446920098803033138993880292745134311512968482793098733452862237725600424756696617491620818168845106593837418873979992701349151688183532693124136438033193826369543711332703770974364255464625691921430799490411088476658492707363656181226697689689848555938847311676062877576929647356779332140555046898205348771300309587791842750252518870854440383741819527154754840919576202200482994323914959229956460636799193209766838093391052752226710858531753033913214736333225916738726411773902363220470415554921345132389012803816619286154450006475463379945372718600265360403276723383119250882622954689289115467192973967765865497240034717387474369751234130472903678764380226052978546503930105216823079700586542894668251682114120366520844513471914117944026138523845322907925866658590048941815138986069288421065663702654531370217506305503547770486143025011739920888267486224071354175332194887982884863850142471213050284857113255216041226779337661802452684634355254589189532936552741790216789715882151335746087797312726075888276832109240518449013576428714593546858117445847359617482210523376729871482175840931561960496184319691450744867126046435512518740983930265642030192031255335269301246468895885479279048735046550378875676593071469888725597569838368440432703117381255770499365174050852347358659831852252898228673579497299892717396905238503225803636290274763722209618573333526024901164536538526679002696799304108762024798920948670541510082353937546118164673642042627383151224151343378325763859181909625671046962552509207558504214099757374597758896907712715940950700876581580330145779433435056556189178214554150156319703734824470658574555496247480321865546304702627369875464655090342056885926366910323231477552689992347004051787812229531034049511284052068215981897031283281035840233935713717275581876484220176825291814162404305924421527665098608646911757132175475221599877273426248802086564437422919441474968634094729211846049044755084478917142127230061895665168975827389618293798306950628745933885157167884931155094435660388894451716361215932347693769737002253676056731038589483445757565131327825570624747571118791006050330910411160494682851650528913183469844704191927508876231024515102165988306046050864483314768992459232003536265626956234653643145563211491545676567609045752408297894625752461617798956699878621499409439425475005546437966103152233309925120749585177005122260014807182391939385528784752317514895056068586862068451713391196306452905522504920260623669186048070234703520300381488482328390758267219624019032568702641550442879483783188917899425387028792008106368560300191693753147989229376737468379028912668063088863458686442452732986820009178891220444245558599733013468505859976673020805933077359355555260787715997207423685021520655393446653223660509712068617069227200490878236528635909779504190727594354222476833825043640173387655895401353804717365628067497862135535905827355205132746439210974739121041552854264012162740912600522787789216184212358172713840953656104554194118723943822062225765311715629778370942336454816872577755694770318253886944287823223493169898854982140619379334387436496395569280435746753250862724613030708616773625804849274100774895105375598470503182398180121266172128349062630909997283566834159280069026772500537648364771976722758969504963599867589750281731886528090196969528124617760892534889419645882374266152514171187201626366806222548078224920056055945041423365457948792874379313976920353019028497745026490161821916999213105896259980532179771723350642341162753198810849007573534747378125457904444911890102507247629238048442586659419088951819467616525861928843626860223776721300794700347097498458220657656188704416564768464245828871939136978782607612576873596419355498917928121453974369298176426872601292564104255763525090196168245749533257142584687339734086228907987185007698919146873255682404960592113774022799968493780272235959529370282564170880465266655920246837245506147620853841288168927830387190791530135610104763288446418294767368015403606947281135691687566094863605355879031566253847466558889440493761985658289073940088112746905823105793502566515184483238456174149151134865291458798247507041544703469661512506357760541777659347965824612702279293819937945603224851792846716570152459389799834381525602018348565927382291641791549216714485319624927188379932707230448635406213393967825890400920699382111509817248936755231543443733558948996546579362087260200066692405223389918841899763170949112014210476802514012579005087401461717931013981313855092306303908673625376268983316661525559531284000442567039191907650182298316928921236827514114356510152445782440644470967982264502542499009672796131911478782429468105093530345139960341677060969223480853591791618600180925321909045184631155387351125441604951999257234139939026121204145333065789396233964720258602902212300499226515011408298793885910249191234391625578480278548921378872695410335191363789224552077346288602290290464376421824738650026423567737324875782144217179286595235227447079060216850444595530866826694569541678562520576975999046460126965834467772950875135588030238702294179964527176723131644368105093317157312161273295125839109222935441434633124036657687488724250282894927837557849146360591766392090262252959139812324014996149646332334114817167471703721597411772623303618694423842556670635647178931047415381809511626821398630668890816194234832235554473189512845860217827400517595718713520141134345333351767204115238972455131176130812385074736415026738060543425046796257157379209277620682021672432211028998204812768890868994616698793096490977259509707089696575836870818489379909046871184733530725470860812550032302765811127809308325245824712336351351928768383642089050634738400106407873899602201217441180836197510299819784643101315445167845029049983639366954856007801617126473224807940617479058396872667305345432347118894838510450801629150494682627791492001046612144106199388609525113015399639872890286495105667629539557450334771197703153243435502960808383792026249427100209350239739543415303452914552236849992475606470470432398222748867497243516228289874618830036294005288067349341114666604091472129139076861942249581506639186891561196414606144819124791383466729180862845181455727414427453246732800468959284646294715575525638075677464594169638338143736434596393393599286620133961460980072031419892225998992826878203315707589522532991449990005465383551549329346473416842713957117422940274254429309231333319295951149717721602173112601327096215656411999484192031494245937062021642151767788862021392739574471325476077282553924002629711927501133805529342624487413272095390321791661126720864476430915614289957776621931712809146691211057707554693065499825191101534732131320414206634348296995216993788065880840207185575343547839691474406855406292912970349079294951417583193383387878079746029757102185029806908040634200550616411855101477215400675093939743511175949467002799119453185545867577760533836334254211594574655974541233802065015390800002805316634469023424500901134870133257743159766131745238928674400712308715344585325623426873996940247631338751371195509234256331547631363295580663286721865182087306983401468427711734631616447835450088446854901542738756017872601729575294788204827843441901970409468032945951336408408991580688135704979372249152620700424111964077184012783083935981842389418347319511336653555061049194183443489788526779990432113246144657759169464829400095881017762362508144579905627484076781858140445813667033618658617859749443912870553256035873401891037875153848872371033420960384895161248802173710638969993928167845023734119575693362654893722623993928899044732549554813075205853883539298785589075898915633121888949170488681044416745728033893791524388426607699159702779563312940557567121915741957909525938126485719532584306797765813267335186814182340971013134407402170219204098855239737546647234570120667669804418314397156442496302568437713318111445372632094230154697667814117255624669316971773051061435966155646418023970797705490225557311355899426822329287373849130972496115282512762070971625366136026341152624185627210427352203792588700139053812006353924913534576741192519635854277328722613362881271007529848761011354361056066478661782754347494973559232649566990563845009696734988192905330551490153591666573083277265128181539608354679971473208664790300881905651675068554458856067893692690010948707683405287367645789077094884595960892636558839446968916323553218008644855282154539713547439329553826483386718483534816493037552881274458662476808369929205037460984685917704199163682239013340998132146499489664191746415635401620807072017074214072033394355965309107889683651178273322828563261351220013006932218374668956710794739048831787388477037949528267781014536381701868698274125638077778890190067010884826038045076643303883695624159585981727432337892500482657362672421466988361156238531227191997073843446623885892297388538964242417715159075711178778628696939371357903545906432089084564694865305641855630982607131589805842049103444214305404780480863472843929159565797465846561588505655773928118060681837116616876464155247846196571868894807715625688735995212541936140291171129559597427205001714058250222851220920600388441725500141430601736883702966626705515402028163399495425875238057472505475967668078479221469384557409372865001614234849883263785803931450885413843564172708160213731323759866716219586549689736660272186000094960839305603122688692108640592455997856691561208257619520871348434780937481154217460491286579160227999800065190998889396634650427998702332270827829907884902407409128216612593571607523226405267455441478838775280772239106080917750972743072549407587897195148671798521970577202465244277671725145610341290186670060323365349198867016704125971267676309960968028021492882492800701148189957562715318106744927590183749532770163475520615185660920153873871979287404783630745894362978749897031112606613167464449139932962536059759618333648038632144273090551143312494329860389375230757973302307399871504584291015110564720785087934645633665052261404354448295008354510371227453350996074782936151234352720452627011709968896846226262675096071689176484314251748871817771341730998357417959722875367922966614418003071812584749383757233729686209393816833617670614647343783633849348718256564923665836322632731341659162701864773774968823933824565280507589297157745836827607436537042844916637198414889834128106587266554139257956162110867181527693634713528468325040446773503322281608599736956059602776765813667350249278208071680078776827533460500004644368294716068676798225290400891456016662860036622825915499519740320970342999861914504668686186521517838637453554550870875782221299566953275683044311785476768712654016637151843717146419499614899614280552358617844626652437297778249999966574574171251321820261741086539714507291468972600938402091176245511164139481778440482856402174176678282575703884553444334493409784202907688308217800738990692743638754428945325485539186885911019794297740082913703467664888409793159119617281670239740053482186778417172544380098803538845993581926300803941158996656868703006144408064794335281136020927580999342496514233125671768922747043735126703279746831817377906629282454949537161078630983709553306343346258009735442558122096679130402646314109103760795803982668232849589821884702431826579790158086723403528953079814866433268406964004882958487496838039324955076031195633934535057271623675460401903460522167668159113012691678205515563569883304568917337565152370090862040481519295536609153623651550601781905583646130089276645176241543798862773915402550653770508944084408773917737215227556119451012427371256317889697877818529072782471046416687886805389654561616658611676002371283611648202934259666854166377679583604484701062410204266677626335774564173375633089738706643110220150424006812960722855492755408450983501119819708801502834180969888214199104750476291910427844497477916507839816822470639313964529496013958814088984194857767457447946952506975868250723417441595503288582509251982642641642079344910050789839049921387324193710094042168615291736699664351646497849186625081389138552404344163649938180428050228070136067040655980149511214202522684940971847540523083510566063544605043187869124151990595921692019760691554023441144797525535818475641171164047595966102334907025155566829016968170281475215195834883461083013616111769016029206920583706763680738103076150208836640263337017513804260607062489980960969028953039338878329349464263119063373375168501658223371024154898310886004690712754433501098236840273030529838193451657588343019510054683274561589033343029981616664382723527686000053352084301003733279320121617396530513648794859159874808593969880898792786974205182023716440789586356823301779760142853190125913397457322870402438750814707217430361548936044084435916316538364572767613128358870794687005060584689486790189714738940085271793526183135179703603484843817162746130095114321352636552742973902892609312128677273817492571811537073905446519910854429449211563770639969283008930618161434603791889641153166062630592107347373590073237577223511981404357200002916227747259371137414415791100786495724974027719627445373690098246455500339076427014481697130001392129070489502660103690755762172059190458571154719596538888889090682155827815299595694178401775544912877812080730800414966784183029620249910345682743513738972384640712817820929177793525990172938227582967675741423522800239870819530485702639492792844000693996832344566801851831746929856223705658091153778201216877849548756626809767113388058983243933474820136011236031550139701223164042169054625350392542797398266780115158882189159553953751093381856670781302812595484513412978671721427602493127438923838173937787344693879858939562063105557272215987266566551412860174894963360333006398853490455883524249742087295544904346730155987340700480039087872587381312157666251920649128205788214161078096745301677341629271504306674776014379819023297764668706543341836744486804730968196917855781411346679306564271904741849140373871926838830408014041012195242993480186437343455014950484143865635645690094193117215962992316618912840851938929887876894212418245134644401654239988886372535979083568427435131966837640778655287771908040658369348487483082412006715126197520364790177259111656130902522481904977818065588748489207881259309175417430756633870196972562980787556310913631902926447611484438259617708924621924257390738609029257543544030797943466732253243088228698000626513905421573878046151774236727109859510624551397047065862685193142053650848726599861851600007442349392058488574784780634719624045073984252536197670606887615699058395458565399609241166446593565885692609669792818807497353652877800589396143198274036101165869068335317065750856614041985771672915672305131643173790984789219117138227135673979952675824150548870734319765838684365626780793382370088021148552324925178224032657981073914676195733385996423763626984337694894086568664074977790366630077593786183877966815645915098743585862781036589888588281193681715774657115347744147786704169757318372035692005158837332933133572898843271963397990165871933328457310117991549281266257999210486012942322086582610324193519105681239250361261722996801167939316511213494453323847312758387181100273384331625102844932842689493974661431037134226947948706939493728637702634135168791120621910637318774369267800195686245956677755968073411206901007110490111611342897835068646511236423168657925339668126313661651535833867673026116439862141939955138811488291487298301771541558671628648920721932516526572625136739124178266856680936755312758993103241794473108903966888238211379499186395728590117981022791416051507370572486059813333971718969155566692214258156297998650914148625302412161357914766911380654980144361252554528672543881236520961785349242339668102721515780600553943092114186763735122310817949836540473035551794175651094743393224371912565676534455364555389243857746623515575276722810225692137868666255141510026348386063734545645426119758299672450166968009888375920145611644076997988822288757409136880783991171549982875136942912682014486969097629280335871421066740352074309711441580095204568570595377199562900481734247377956083932216379275202760057192130948869118716170013717949899466645343050680393483387028758797384410507760989560015467613641533097888297613149333934681489099998514737829384237911329412713980770734995312814721178784553485755160647029895402932191411886143835628698702469710079084184058577443469113476395690234971034876913286898672796800848272990357524237441050998704580925738278330506292180498444416280568318714452786064677315202269117502027715871278749507903398530672606404514102750559951578275794279423869325016602008349328960311382818986809630041461555011532282767768209416009714561930047918420729357467406211904950563114042768666511569613634029338609399095794751584212687420418825094479595310565810339603687252010832954419251273737757997508499200739431189995958299370286029320757721284339143948146650800557237964364738094792797996260326100999385658555980925514130598628622554456790298469864369904126328427414206247899238617819006114519408936363729330103585829686330899251859908698094663035887085100622260686697074701508373255454185486391366131158405157719564792955655633376543480775398578373777011927241224592277267779330605859540524050312905912167550804723960066608445905829839138947597624142634902657670595131065078372811717663788838293348572589946492086044780118594256803819652971202741849136812196558569503035596583302133577964046861471246654037468390009267986884104185110529382457376110341338241712875722459850333980086404676763390242777526547803028292526976093922817933817924523711208278265473751998879631718959829219990084269293319969212699133847171689184587610778348706170038243564866289278755676611115208411432945479669365001203720568556303750948467600782715693256125550488527184267371907804532352023993839060754346735190890270009715343668459761458605091121882714866224898954931775244078929365595278882289861770353495870963890060966022227096587497120676680348823504604939262643362828452547788194276139879629466328388538430273935357228750808897393619922654538322889182316135398834942168343144942447323723386984165232322046146700819178604408601673806899246922217627325994245734012863590839014553786549015104639066522159919071026961061714381497024228578437682528466054118915287584106379526641431855997264060650664011735183348195767644243362818892172339297901767240875369743841081659585407707505473586576337439012253064707090288463055411981027197219421498022554691770384024250820780940038628922454255824697970762602341848141929529128005415792827789292277930331245005940247885208166877335148161501373235356912307061210834712567081341365191093557047941897559304297973943924292583483247533629685260356455183540426448274051674062870535397888077452163879289282498560832624719819315835382358882115499041964250976504067973451148211812993335218655382670904586601410715826925073679637452023642856623455725884529778026076293324922771936465625642083957562472980421498115167069482328147477019228193174474321428346792589807368053457865746679567502919773993856696399159747229569058163046623893063962937969654125462531419491338965454835915226806277592514686315887522549170016125748109933647643041740543486275822563000998485275051349490937265748371155130547971692587679822303382395235031598302850252681068887462986508845839710161407508794363552793575432264992005763010648519077243150654873891041826320485456687236155248155420777628828084427661681303692124416328777120381836218670260643152079901205507753560511465934910917641683461899788177083799474316062630780016509490497537627442169625423574908781285505408952427729049206219714592242741342036360841384145766279949331014699152464740706658461877390846303034972073984339672780076059972247708443420369769066367243830023845285519562179732371246618096077155932820508149103192489668853641037828347209444929763557629308628293376925783465367232796031144274788110122519092179249572499873202088530071349021123380108353755949577588595102895726553474805787675149976310072329722233091454847831566914250210211831934463026390582329884831662979499851157284470706742144755540186041281231627743260573035322324499643751869021086318789356348066972395848387729045180971073564869600310086509062379342460120613710749102556089079269977705139317811325490293463272768415556608188852625355626394953607207443034526687042540735173577513419455265556035848764719356408808557101623209288911768388735550110087179529306239132257957619134969196469293991375504750608547223565612569480824184445363967746109875291888872235375640156577190128745974562299610065225742575470951858499067776603457700713208863211381527712751899211580827044834673317663061659415212410224948564126667768008062284168129768231344116918896067780034253417182627623883568947837488247207904522596217781279332641896851147090405258184470420172479063313472130654731655180656512229781164068306055833270025857161037185085833585272562565163028966243399650944434532707585249445019054415278460571754295982882385395699860893710633447793458109460017580621274403350100471525586453839670482591807484368036862739868978003711819649390553286196757874192299401115405906108436198686716573291800305050383718895614934469072362452224626536462458766294234108434257718040340198132271747455124282952900639852066626780117655110752020477822846326812321433719884820047885626357369024019783257619413555946099931236671571512846378998199709156990037131679761292219362189473968691497223797040848729566457094597541523019063169984785887366930649918248425960103127659380032395734065048117734315696852144492921325427163479528934272691780154720345792108083956815166602784594798090312048168502076456078336325934857421435044129712959173206934043127902260472759563594824334318719112370519531318564982595628002448316476478752419253508848314838878435869657330460642538350617873910100982725597113645635618384857686669509407911164578702715571366431921662965727565442609733976103576956082551190317707772943232623121961997950041632894122463754872640438722753724613089338483273618851779339125547236820668075084847454338965171736812115924971048157817179380054397092255541123335157437818790950154224283231022623048163405852788730932418238347619941132600972750195039368337799110716874362202627983064301288192489650065565456171507017685741731540344006969412463126139753033087325419727389023546245261591896589891359809704299567760866443582712701628590669305573125477579483833613638325517119758317837396716460850130767330545074990751201928643358643213738999615035713393904984840935737252557257078414544842015348790268488117869705968772615669849751081829745496468247133513444971818091162193192389630146885114127877616225011545290238318634421313303613751873882876373990062064689833143716668336928773631088467998394630235027021657300191631678672796946854908391463610211683434295703701076486310942028385825848204906752063824503983385500165934077144365183453876916679233673721509910631558653115132740906239885868145203617030097051192574279537562422982694727177353898198587230012622020835976131444512475349749978233746316398003295823781600088715528567209059981939621582024338878641820694926009407331449630179526903889714455897850777639030988474442258617402836841981177888863835092002707588697044189342887712157275894656280135936612628848440774158327744199677206775256986694720877310899470486101705302267781389033929154576235355336830438280232384810814081993625457355989676371633537852483470654759803433971974007851857520614376120867582989423298575813975331320710668534152595615309984006976008764758685338786550811591134211164081374930805605501565330147606042392663504766250451766610907215523162431191076100444106077402573471540724591211530560108515032690578349994309550082679546162766801085621025419454472520787724120844241747006393446038251834737238286594728383892016214740691785592228953921517184890747776050141718046896125360701715320253572016147615879673360561361956477792870165399940084417220462626716030569832935896690979231755499192874615718855721597369758934930410590158774884704426084972757771638750272288500896083267830091821007165581387129059099731184946996544173493890254287265948305739796719599901993442941580668876892672865559302735223420631050156772445238599014860981406673841067631269434475705386335619231274787502593226535784525640432847239033258076126004344247773283401970323442749868555774770789252219760495948121338096519452304199503589041857280982937334822958269281321795781669221841004628079238440463422472291706043408187345749332369035728920544601196834746985434631592613306011048570607886672599956983827293210029666901653615569974053846427970798684188384383304920036038140215441616814559731387789154246203945805490810168234266123270166071730062847978587397605542277395697003888036272322120031657751037145291022106961940578889269378508160524109413711665889057186779788430650244813996112999643949059173019834742664625451035348652721259600550844486395405304042405089510474045302312136196377909386611834053151680838735258284476122035916740819218862118930930543062177218280867597535147913760705187613270704832133683082633037123622370051418311281602504385862795755165890158739640254655751876070492491177035228478209813374071422341059701356271986271893409124479440245496695958856984349921011169579358741762844410547419989170105779137847365079725563822415953796864968056695286113347251685539078249088104781442859151267083777543255717891096631911086617004913138953369044093381047344345054326151092102612230206077774557979245349218728836612852660693139759304282525105283319422566812796416703958683649010086283447488430711013468991271387719107805002921145946765423828743546586401798172971514300104248442670305086980220516814439952770828617248910336773272305953809577538475016466472404384373101711796919243044476633402005716152976272003524170638304186698905651500231324311790431996529648243914947319651026565033596421673102286552537335749318850450590949821555369164064708336334417066447158863165086122281779783091562232654999142602784461661822714732304736039395117337219974837171200688690047279753949983390934968423615294285137382606489396979680611157087165158113316343045137533511878816669553102658984833734031956245087705884727659301313267405059197601055026452011431707700792273232922036167957488687491486780875726872380973804563502257864564827105322367881587675222899819679728882159250962609373773889902898108800808310249947090291459476473483399141737955288201866144017705410941915372491900110213671632631511717948894571579704381235918871429764081846959454172496138392676820130755446437557722488606028501874121359116826003371789840494613304326389757604614661998853882226458665817272051736308927772979948135001824541153948052050327122279742017672928428973359469591048231074930513169851709278523873244464805958259721179773446922250795687119712560242380531507190242508650011771031171286721264796364207496062207134058270627171152753491627045639973928474749470126759547632834716238803193552475309249583252435366179364416587513353972605180887223202039278624368537571057761759839926070266160091753539754524559437393676163361672495002896061270539408193982050669133569205191593184778681000459155374473097792629022730365899025151383698265884509494264755429666599663550649210489286760170489071015130572068268467572345636438406523631320775350385029243887649222292859077409326998483700951955304898427104169001541981273233725406756984815569770074846725136960186558665163676419818850992793329745409353320455139160130281455398912520880132177112159352884429942840235260207448582667848266943412155773957003065056368334471845134746584034351399338138647611346514189285975582959203442629807064284648207315294024664021210413232005159967390195738594535512779864860202726714050873051333606185953864523182750813610348523833411191224290361686940998407270351304175002423929783332842914480411365975551546918390738262554830437707099176542930793646255472087501339531247805976581079485488706169288194275500825172111910363182207910505836477971256131627480014212467822696274970831214659635835077637726096612312719182424558248940890269284685114639908876543495153666183525140664875589222034583935118735083922193282267240140189712892802217743911797940731831963977181962135432638660022419648153208663354529514516686115751003053594385921613347586418106774854065253722441009747039515089138097396009482703094951336686507379744297374176582762022828775210033018562944472688217458706977883919617378040395735265273164807459112199174550549996892295450260538382356444477794774450812061954945722784644418926398994268920100743278477640157661323324022728384862596320512138766133067929084875648634450002828174553194935259068619472071414169014672962685680007346418753260952930163909939064551606079455231077945227129230424380285079701802446545952950534461679920114014591658470367531813511666498296671133381898378065087161419579714551504870865251370877293202407098490820717693387598661114628324408360271970793891179406682165515936178905390992908104542981409556954245981310441465329329611098451474352568904818823586249699690589848323649198283474441029959482089941817441122634126490994550254876346112754181095908829848182608550654502983275023292571032367708785450994441500522992781972348995047004852351421592477188975183094601273290741284581792911728434928973240001271806299325161286341935545160883207900286867425293445725779454686134173626524441422432135705285877515008049407206058488937927933073383712309273624669969768845988751089155532680510003233371400446929768343757758735157703770235978930715020602929788870335201875657651121014440822731748288985431779965380072709873140042911343028207799363948152281707698962699668722097295875415505196074935693640878457897517976579758734231354030874919590799712177382820728829237631002352461734858673341711753381294268165970282105914803199879712973127213908707486782024448788505461262680079785030528134431855628526109952971506463895411044771873511890053496413777848061700825094377794480047396798298476079512723131396419583802833582106851717241388013560130615361468362431731364553423421742353898261123253756834676817657489124055522191589212410242223013040330064000877150578866770886517990994639848024482496133728715735775411614004326367650397765010309824092895217155618858921017942429194394567656191637679625750542795104094671061163437660053907000382883909122932956080404165633550617007533759471443347808367522234060874501555703379460299071007119990209121181374242760755472300098727628763221004706952094389021354485544700069130503472667416982514729032491278611269729852027887116009514790984232644391375534253811760287464679590371832465946470184418124288074198937602088523767431717878862463319366842530584906805600947491780681206443849864748904394781137195226424854137297349035841725472660853155390526920801474335741835578448104324987531134938993314553715059103546187806600458697495057209334799333189131352389589827886551292685001484905019990013740723879717111532031754396433827861420337193834275618265964478979585066209653548523583311795741421404786325218401008255172166002705718940877027104669308638821167778686553928721078821866701681088680515667343135932322787469970713692402475714838570834813674903452322414088785630986160235990921384021525200545988889381824954792905053445110022392115765005798593468129532861236789907131498745899583584409994328194360720270182207497830502446554619627996626381285442021570298445890339586727538330272651386944206741047192299897735098768461870747222058220941019220602049860377516998600876915595949906820670540191330182997579736434241878624529339197878572129472738662992934496250411557471333238629705903766001836055553503680654100869424775111640626485283526350310835633263109105032645473713903755350543951971847340888633116736066136750681258313880443473607500139191071373427584210710951229216686550760964136576193807293675925270505642836193084816956000806833763558690581571278138063948169910456856663935646364048904126821579808862781416224537930911210972107735476166732027827958809921281987214875347784696717628319367809434392634610005895094818143672696185444253879601327901289032079093538342099789195981273927662587159280460695090864326230972508343081640225758396811311606609996088689538498940623989772201252996577998823018865790011417047916685481007882208865061849925399886546897063973202731523428564938331383209777446602819858751384610415878784759454563746705330234803611165612202584669618673120672443260734709587423863919108739522456827094083951813095693481197252164478777008319008622598324191824409289877370494740500781760118284185762100289741004437696394743112171967014238879305423185536312239666387161870916769638546509084914300161727268849455475162704315292182858883000945302100536280050649695483882868237811892687194612538275812623029883381689867640936019501931559099790515713019489708128871187595685393252622173513273024140872359173216260976626805151728636701415419670097085351665372390977766997642944260512865106165200257345519294723408906822452009929743009166604497531738826066241704118916306391501453918331983453689105551572649425920457622992497161789656040013116955950504879397435828597673798411452128265348871594287844893226053852903909733890923020389577220036678039881803338488121155534041089504836427619567208151030929197097874665350801819173532018036924324577750275623488913781515154103151838606678664948304232887293802090426819319237473993155383783266752350611362738291230977630050588920029786986612185067688264183484036326110202367249499994295175986335594615463847798987071299034137288706829783095849813583148324634164624870007044605898217062662295461905929104801730056322406845175681656729957053727947537489670788991110057032655357375816232990548542012050007307646026899842324985192743342502335790751578586358454949958515350052849519881523821055718928788428329614906540058954117557288374971629738296652906294447196736298563895088749268214833664422599759764718745899336097166984555684980881922670123941673937943741515086297072614863979131146163566754551118186088563663048131002373338663742281677599569509517188042473921331055378064446840357627582140060398627540184497404579960058671200751764865099120397300308352521115337882395170732044777670050737114594030363149588207937045876321253773668978970299654247156826675897423724766130043007204026682710328186141073806015660061401653985960067848369191332765519969009912811082817247846267183979025865968054184435319127524671936205683945886501939529652313036310092558606563335878007254458681697408015526895201743171351150108520002540091057386538006602441091190107863339383510914335097626074010226770894732139488651140579695879041878150226295523523714222515285749562530381905737685875994722748968588605320100697035971441254791611043029526034583207274255173204931356400113589684137200781721813373715668596982533992313168513740999959829076998348516317301576175661078705279361779865662941898096681770326749950747507025368773511596959761032146962401185918571357168011518440420883236429483618867666930229778290872966304272005324840287544421525876505105123895106649676692476266719564333187467053024334427045224754865973965402499405597239443303659018297925021754662292641201677160016492019523429973690925713254404809580124929462549645122850200576088672147719002972053472165479800296642346418187172784635797031887803843672524663082744417405405008133182079018647709189722560716631364668017587381384819066577244306795383758899277072804848653131065556965594494084472412517582107364814047360222605761389873456365722180816691671450476077002939409568368038630956291455103277858549094835453753902615157172779766552232277230851493011386851455142725263095195614283416053534223582117623312583969093654234209946136514948315214992003084978510971767414188767331682271194119255944441912721245410231457678599176783972433515886288414476243366546807166729461019820115611780531146510920572163282576382804715033872594596405753534077891107474634875079842275334184536888197107178596709777705213834667719212772174284747921576738687575278842217773908261534487221659895743918774768972080194982079549762310273578323145415170765324153374628936616761300868787698124980410270964199450584845654658103107550055622005048453364609883021560611697461327624178847608798271933078163668935153310446412490557442355507044051822470298934370842020377183631027209394919707774335327108767549153624406656608589053907605132088735947675282715612359802668454072197785069644194654613600543163273096169528882656795909620937209713157266724697569418534373244005650979413429373580711700044903748364809447140647683605171827377598404581336324000455814569838528646684310524310674995088818335341133402355027223375218096186437952316248036528274411354700371488949437984906846637478300007886508440653229572070038970317233866430459765707649427774919684607673116221504822852428252191957062953475942778361132843524207952647248430954089471213854363438629485904594509879397505403427324872116656612434157862701337601506871443121731543943460408464007276713775718944834232864816846131086213692750513752525721970494566866590630446582572541571799203802516601763415822413963883392395718107679934731962938303549037810494201593966907308175196380107521032379681150438598923976840812615058090611501844413071839854852897438781191441108495054163680724096956983194775488232545129641084064498535414062336557062991744820810970975494499459644424087311123330313743235555918529819311972931096348327605155527994856596042316211674447224159728031572443811038021031002383738287905131037598680351467799800236050898259367620945152937825243394016036323420109185440562349859720856708688746127980742690030665497836160244367774711306911016799658933368306056668429386224037502532825268492832074750519345915375022988897213945156827042063607965163614384213970881864418925020090488102705961517480768647972860106905252327722938204333043250893060991263530118340794173009289188007201419969879611793207565903688542004995823702163676552622779978916089663989906792125937742661816456562344609087604158102863781912424198376827095198792862449352204338500563199125245622954770194660472621108208840276050596459877030290595957005087725717877372015734855029579451796248499896664003685268637552878456009554856419402750627175373135649891042060915368897614929271147436429219166105545446747237451445783733940875758844559369795512889761191856258580221347377962641744251634330873105392015333220560860067286080712965486412105295236851146256098549530923902340882185505739024872094883274648519587771383157328795890696013991266088667736982310943456301896788049944583348924109823301879359182338617543927362756996824122511398888511996009107983119872448956715692582318477840668052950370241604973958562412211117886001581984466877512185554239441553936353418423164130778532537510336411004381926750391294498962706182887594684860088769334572023723723341905540396835321118486306135345128083413885549944106929681443913248765898616537838564479800689097398152870582415288920769995568715143722901033281451075498056678628943453702203071339529947379234418339724166288600511238448520605244930315742556989475273086715740258356700262020375726096160794104642571278321280193729443199757554499961392997246402455281709358777721405173435409490826599464787335445451659906177217087633355146993833447001791967347246201394214725291292112336660882172088240898193686026634284577886116094268556329226809313503006698553083136888279448851282728739509259073520397245039462520903838520740354526025379736712429200390565902251413566603926355431775612370207060988473571654000665266284411928975308327414779828660473681028716779205434370411690585178130053066712806320713552924813336001884540219774621056861287179727140795901192047174088934133722652355916158261626287589294060510671528374565380146224432761656094847046900837696575844098975058246607340437786606426361174113081922190298149274219232622435597284160302018866077732918973878001981643461427175098915291182050782082125204287745387461332161066494019931302913152367213067832548286503669414206204885141837703502108137890426702355854186093060577296710968791469164990676491159754613135523836708476384220795917370041979522432711656372203221228477090155019164937652972354531252790949634990223625692547670414727169742112628145654031214042773355184450910872506298961855868046573019811479815473863952574666522603874793359111040317648186093616551395132193409770432392021488147014409566315372433208936342231223968217891652582394122396556265010393747701475293471473398604540580458112733622662779420078601939722437593796769015581986162644879859017981052602954517788072215310023670970175964252575748881610638217105063798846657397091887644120337034987351893328950887513872705124774148945895825357111936584110287844670910232258576278194908561108361375688081440183303074528435268827604053418715681782494173202636590858001701295365189011165620744762578020451357232284863443148668689834715341187151386446779712342181727323235531905754836647916737980270886107556635818496112025421963306217434105846293416690472200594067431951164564519143117924177606138258852955078056372029490750999111217205152873232236951187142621340141209605922626593425132335158113612836706524053064331053845596230046204145065437293073958018324433377417580311869169622562653966630185232737796109604199844499053133826674289041127267223691628174021523535528798658274930192772502111432857902873024801080744369051763602312598081797375989973992346963894105896482429831127640933340408255108087528330185535925875382206755063680110749061303266874536448150396086966456260756775262005855930942613588287807492221281520004361048545651492144628123248774607496051443511095133580080700727594323777022964629120399197438899097951517097124137681482914654525722549511293875020225512954893591039760387968314920621492290566465148543529056694298882505902371110754175746436539666353699671999770387346355572888910303328694099311307310120913911081730702792054243417917471054867253527790621608263330628357012570007693094804404964331420597248888262937731034485917666702278089723147778473173909623170551242359476389426560422141890186277371584051140807501210875397473722624955379547564380513691766450796081901197631501820401845889682483674489177454381487574134236084008535049839553080589238493023324986722882866240875032963807002486392520404096231029946218094099418738243886398360806501762351091275930542353378334168642765041744153585405463140775572987879957291389838538271860385891563815640880044184788713912644708313823710215940075513080634399989872555426140213654492744557659576219013709046454273081294932742188238130077852855473653839330509966957362526344739267420586113332659304232913255434840349786417718237066599649039740585895492290022010154437638453816937753780357694994174477202234622881982559813115638638164858553354339776201247583312383944139185495030237187052099168036010985236946216488937012533215293230750516137037575942002090915769587606617128153466159072490184495103370418217869685826341314481233019711072708566699262859745396149027303074853474696339211018383248676932643331916196319907024247090699373337519864542150094987133889809439633796037954143154599770080138991396947700304631022162571584302854361195513634097574811016596807756716236948894593915752262475114387676165197338126747786345047340039448434389554629112998869154874574591158577273148360661300177441300341628142010437744105143782717338137944910111583863586440485417308259439144555254510408340241108333668865916118435766323925123006870510464066231998648353232347889068336524359526031593321953899203095611006491553091079506534080816373594130371494481786182912666360172309663139672870784707618141172860361674680420222289832197245898137998882517662229137617258209322792138250259723630377073555101070502896325014766187207849025251075873964767984531033399886841233550945144449111471027684675424173162452780823788117666681266598600870085930721568041238946953310110814660275784648239511179950260745890448686404083291803617027748050946109540101086173750945849443477182897881898258883448268417302259982593458273037099802567603824677736460141127007625414951184049785768025241003712006728351445734117877097061772461215154489555724869970582593339419320079970178901370710120963612315735192061353400283618788547758910371228310502845371895458965279579316838203529793229480822451933705219909237376893494176652189845940676919234235612614857933632485806896519191253374322345228087937315455277709166459089659781605541122049535697111599015790346777376240033266943789238459717894871931880845866612994687312830586575910912572203684056386034945360841257249879459846114940847959509514806723416965488823663212594953270900559967170796997753598719342482069493962814796935604951971642462552657682108615222844015397383497930049227509031222471707125581963287991578900242561897530501215422190524788329842177114652557950245916230503388728918922436465332113111220100813202332749899253993610800029827425524262043995633800876637018628468994480770562591371707035139731582343659318821877637247799339141530820381630943860584212075150300874813187867413391906816934659263605677785761699646551669116870469448422253867963588898901832530484838318582251174363163287130654785516895260111719143407410360228084772599819286950595401868167348475114339896942539387709108955340277481951010305751776582959587987740910247393000731865181571400221207541177383742695990695161181361390780407088465769952664733300057465067026780921035291671557149824075427392111586477195994301815496365766733285678387215954009792683039973408249833819264816690411474488020607800763191899910991873048341146470170495277510640380905640308686946959796912148701437526601416838925411371580421203943396032599119091987810644080980931972735737314397832499565521777067506645271326998496633927881213436845748977177504042062184656760624961520339595748349508077795962544162698990499763365402655471622057320391845222212206865824182471757196270052372204406495135534717598401248998440138531710326663331478480907328944007724279518131398759414947164688630183936851091556976208511910970374718321409317346899548368216552839288367130572079545926710621313198477389806152284614188399616465633527287091944455782214025334796025323579796683624252632260964174863906089808027530032192288164923955609332577775539473128104272574460237908512381875167093336473302403075878160673179226743971561271708506012427077306534642413184445493736901535056050743514506457920263312204043439550919711770922965991351331808361854356514131617855488151010670715447024623383558695554610121175128976940192018768144508337740828025052134179713397975649999031615950898801089621049653513317413441611911514879042914808947703409748686584186270242720259784099033525571046767324729137523832923876568458136503426658379298838862170795357592347208753060837974812972839528774442084797862805767002306008684658319259174139418374350050875067808692197961905352852936757155432858362176400452932215144512406291189128844497477152364624779345779140523014408283677708131273848304101305739780803980571021989620645981480896314318660139201805369280113344717217557446620656658638594606316722403027804383978745965278735435623208136049035016995322232400696423487733990905153697060021421004814439548124929967719170796680206699896146636519175754629579691413611916073932758354341673896596634211015404649628357117235693000816046456730585156473611391822760435045893069128686556493601034538162789207482870585982740519362685432046768490329854752134200945605732091973654738990927938243823093048494061847795485958422762311865262491813992097995402485139633517216194489574164003454182937530436876963620640179946213100484640004318491965174112545851906583204638629662021297376954731695555378563970167219011553216790345539791631753451705700544966290433966062352540756080651148204316484711839253397036592723711346974638538690150419322633124751384177234988572043644148416734164220247015906378056041826799145724978640908354936210790110418679572579176294220862663694933711537282677230567027254681769211037437723266156821814907709396166320846935631706063502064816829832213185556155023512153674946064881699949822336158382761709073317786766528259886715638216405540905354048950257853363529919633976668535808179953913225678473073537288063363511636124566138464598796758588659503037080962690290580027714695019154280095684694081982661103763973602565384911712555930783770482027900364064238629552820650867495666755873785899013340484824818476566299128031861591799407221203395265733937177393480682762972541653630898955506060311721414469048042233030466962473538995940780725217112980858765879225615550887631131174572074339917401107449941034530960614444144340545168108921314979521235349498954808728410590623878627799261546281521117834542500568388245544122840034989087862646954693635719353199155504177088264138339004348811552452099453755195197966165829032910964931543629061444789277902108301962345778716619136139333350423565493195018742864381017153673494905533398326712065630734338536907410742512702133956813987222835862275834483416238047104739085563066036248091214174387356244143634023673796272995162722629456417062833713266821379582937522821208643779889945873529508721853930627138926716817553535649438597654805007122756846464633863551797569031530210755338164415101080060983819168069306384392715681575018254371611565092924377152516500341464738494457384587449156680947021377255701382132383517843554649951019230078227357623167606127577027118469713540497057856533606424853200080771975986727329247178420801694533341119014133045844329179732413329490659856241415839460166171490905475895051885308217072913505470258914792281609936882212611039984477704405138900294808096801102043130353344174178397661117166086052441996521464502543223051798231210005399223248546688474600506232195916519187922030841795308254754926166791452015977748303963027874288823689794000703824084602539564285393178825236136300282979019211512456583502156851412787000902716820751674780615669929736877294495799393568910565625635787184802609985284822162903836047216600183995264632010924564387959716962282388846476708162009024573779868663523077508933454825518985832379044230353852386582970275045574346485795564465329416591483318934481334435625693811886373984968884718703991974587994876657313661936823554583406613361946850639645131258228691098481988635358811776307030897155881097532780915026642342907210773798962603225697621460217018140314726675418586684308722239116613851019687967119021144741264736074801562720431755561062426226992387653079647519153056598802932939122801267835966370227532949354153157717604699070074901424092379980573746626939909295567612346169203158293381561777771360685320288158902953045436145704183846046342718875852837904311972256698237496150456571127627109689739162068453939175223288177033631442685111350965340509534789431992106756900567627825320925003572690981530742115730189283101281584521504564279830279958338954600158758975137265240124463020986561504205322107352281156926040275502078646476681076920102720742959533887204565867773912297485151589535545688696328863422457544859301595936356094994125319815422639709405649996048545101459476283922187104811817479642670787966710007507969002208363633055734990479898816393234492554472049239237612321490081644935691737910473119892704237643398343277145481444529267463268360950633086013318180655417675531692188427485138559171026319534458014424631054314462557166286089154906614750443405881343692799090529159853111649135301134651069252040803821358904142120323805880310731366935165822806260815174524706019711834934891584637712827418027713260150698068647673420971379697298277883086941498194340416809794637660332521903452389935896020647081615811464475430670419678815361110084401029348439088290420725018876193102025509187536520447440744524592056664390877826514006408086631533356103502267314017188161367395211126152953360279502667906097156967898096702119410705211086727254871987389113023627045549744086334321359740592343597573459175364614092258117793791606773036660063813772286234996247853979172944674268620522468547224287797625671104555650700574515289180712255760177155456793844662196794589521682045372873120374840636799227484574097072952547400686095902059064445091359427836243647463711836554387663998147278019456832483354986769760991710662211025226455613039258042615679503361591524291144315410789822726435208400789533124159505697869236439161877293563731648128480975940526394187760413279088599535817587839056164481379379956680828101970679104050619649210528811831423255229261554386369711679983238023722033096920347598193500234656547956812531655011581370721637769922658579861652321490905599080126433480661512056908064580385594009411336017480153568517831672945945315027402407424060937957069475041347760261712202002245933070128819365955777893581373062290488350862462731247030933413187661218098538646345930582784506677722699642368571766596167504976345068837537654023173867601746927892688092956849282359641803247875498751879144503290428223808553651771342573842019832534548453781924756711455931778312925807652946890587015687549749625107109996361782922547527443583052495953472610889748299014413309327055277653930342842280305736891322806221103089314509823010363148424069981934459164335079394882644257552222035739175672358279938173388316578240854573245671810391572962793139984561912521985052433764581685043851233066679907793448750333845592619876747852319120615834459737457908536798857164229344034016520744213389534670966553683850495676764458673598259252741991274777780336755144222578364377422132375824307212648442976938756363909109311249760070799479909336214772845015785387208579647963797324767972107928746850464071037761666051569596721408778729254487888458198356475172084903284671845798033869573428934515289536380890853202913069691325161596264406452910906352614762700521807943092743730132905183071054357770741740283779480342413550842527140609246421982627834582046860904043376498931648469160544028140138114646648222869073296431263542114279637140807037325841612519043083766451816393878145387265778006402381654510173876452401684634609379556277913763748763172038116995637978849470936339697141097109510761175744507801245124358989573461860661481984179771461233240698985883451371374997003155904384975151456199161905678725381821145276001897712289706135392646629918396262323060105788665039600456397246637806791623797304923057741267943409406271168186630917195348943779723427962242178578843757135216902492295530925537631595360477422928281219303317771939979446803683731949861787200766923395293099007442396587056246217103674239187662054577354417303025572982354077626492298672401309918316397969611178584483840898525843890415791916455785311812145555988044107326761928750804001088292314816330408918228364847687928252433163842249861437870487713201080499132645821787139617136753485208418589014903301091807464865015040182595071846262390308560396790031564791413150652759895479518861203534595109843655914899344109083770733853643170995763700804928333786862198522167499751571039083738479278276011261922533788980596627906172906973820420662644982487595565877951322824699877541928401902281601107883675237848609467191967505362756380291879076664577442006357373519581243179927737194390602745507110426457209811791325676383756537315669167827965273886812337622259768892061963940904525352773477778231364064961671060838292093369189323465588515424300737223411790843632545398359411531503852783642200412872936659974442723049463583108285558211199086475781059783414516439167216261471319285925468759665211639144653566990181371273524240694052663436041847252773248967893028440068528564326651995782044805832710088831056875734105332078543094033350398716253592689427168652464809814280028881623914237891152608527874417620320805468250504575467703473969059360095605001639041616354678996964263398043267594445258105416373419913598100923594837356040571569998706361630318896792474849999925132365077149653830065098674647356851851144928846996005060303961759803950441631310086508797681841318196530608968997420566477212538613479093635160130179421959859210205175747375633272560901003719037467463478802011383333270431939557003344733182165486625282024984229129783905105768546730760796401541367815775904714081115303238353394654185733711007900808716959489591579350563283572138319834418166115046252002388672366841706672668861224511464159354845477517435363084689135692774086388501464947528002914830439844291351435053305405841381286833610163356063504531632301905783256909426056453322345613136920504690297838366429057909635000868030845487073935245541307278300949124658226214896255681410256217780368665013802072663583388619531045354346017472312047810307800585363844034918719158364099048487560188197616794817664202732195706693583895873781799309409660734967834573863475430506032676263497537460315226663431922382258810415751288046797277183155821872296450616230631171866386647865891048144867909596790635227589584598601178062344989762340940219582558183817929484126570888410422077627409810602611229832555788372627803133909238634485820231982933739048442642682880665694293465816420197164594660757055753276892519266455498259694782196112626779573645793974872964996983836024986895043029343862707606649794589252874861006114784048539159578524980300565779860951524666921182469815711171613585578465704880202813178967309712769462606511916313125500776520867405794878788804187823200935393323607323634560254709459490411411992665545945640417297006380104011791768428984337095520615773988620622888121429275092441605200388992927659368778956829915479943739072244747936461488132648300141711273102478525856484616952468239276859789565621623888733854119602881555677241443003944045085856065952847700602021165699679826370980041102756296300536205136559284033896183522931794290910977478590159513574958089237909123102532119211103223427005328473573160872139499384785179336372028739814264650623355570414352967750900710880383802871307764116011286212513766933941467980190766597221153452496284198717535486705739901020206875577576358625862232850476256096959723143967913661203532397645538775224261949873072002554481988460283435393356988199292856789501885311563200554238654734446794617354062813723976583133224430524370021241139558268827198355574787782551030002737762842883760318270115775465302100712563322185406658840788238851916589936972762601938761620388975753201531668436482443486796475719765620227864344634464060014482212192882543254759960297226508077376076830798886874115068111521013687009331315340091738500842410916348580184557818316382307727776046724002026485484217043828481981830927349879314779044076546204376665852104300281291006475166106791423502051055413120528268183758750071055120458404139063723952568012299164883272260385400499350981790578529320799773405161238113546045718662790016313997110302032151300137897856011382044280216110816985141763682105583873322656046122197887859126666543583415517667726758904544828668654438136514020541500688665446551685116152296713584248490679041974542088191776113921450010970884953947552260849903061322412810415908782484670399120746001065538962584223826978212504756530506220149076245103606689989827113998902030739380291769991135267635371513278973304740988558451605267342565762837809991270684982527060822663006390064830681839201671445321953654109995837579123025251233033002848102764890213590927151706622665447830157510893999880413565020388442558497165409347152752756849400069342364312863259319636865834061343104419606635981499357788385633878004569561327002280649189141135707473346603944961612799840053775206190973741014697304749858783528814346928236966052613440958143984653924392416457868591259943767892381346043151827228038657695321134843847438718370175796513546511651141973800785963057195586683955588897990140975797572516831905874165124641177426586392271409137709566531293986838556449552896960622110225056518071360527279192232626916377339889357530067885123488474505831355443493583854738536620159700600553155185130846813731483265649698586226437693165308011057128140785741328404284135981924109170331776332729556778437190767328753034341317084345841409204186966494212978130370365696100230093615735447463339908921228341736648063081786824558551311031065199299141885284206388308055491434593514743267262216061154126736516641117702440409561042302110215199233478257430001972188510036518370052041627451623025456122780753342133070505370554555425370156755218498974378131892250856610120679841083536729346816152372234549940542571741478627946656357057406237241092211028833768872640972127095968967101521881371678216576762640517390952592452703739294060273673953676709569601147920270276838339561977786253238701368278667025360411074265268702090592729443536341253915648370501267123463133535476744762056831161827775647985657578867397616687715396768837777246118263546051713503709399140456928151641434483096337963015392207850699046609753171054793385820770437984050088509971215441791333795439324884341747664343142409437978760855362632499528982772169411878673344983863286385853686354013930281364652766834246725955439561512636916320691056752953064579606753400317367105210351023074421853018344713298959517850044198637594558404532537475649297604165306549098514088885920296768884749484464221577994260838748269483463919332857402123882881816416221047492591551660783860589217943361579962310155273951261990364179048990233135411425479984475819396944547609003500505746065060371312088697971879243443657487435617503765861460065390755742010979943269531716964237610558334043519234994437213704833914423330788024839825726643370211514552532975407072100944331626424937647639628879662624020812746505377389148178603235359811596802355676785014868548325533384262666498429213601489583811190961423876081106677386211213575699673541037744536007551182264073693419810054944500716616054114456499368846510505937867795233444289469952708720075213987744962638026054545843979927766534352729113757494340648246900203376502680928215904780584958038135560032443506758830940823551833699991299174287060639382616330914413937685140285066777863871427313618690522772816858772898309308648158150326011441527841505908620888757133973464713505341508706097185980009752008819500445168014473511483253803315964556357049195334201574892917589189529425471223151845605724275178951142115101382494689350626079080349505916102448758419687894773378770323022695719613127238031199846906129370606610265837600780990971059946542082209164019137979849299224701358625094537401064081242322774273578079980467832285875325135656824692760435382862288499533802759017763081704339572801425172526944426067183389994769233838951101809556408323555851829787007967444193963605699470408936965924094473184957833546308037018874475261339254913858843387126170128814328804577766627214578827887553979106832739435132045141161839769460841806870042307382514779918664235659493472988709857572840237438146459099533782066325486290582963360629406711572242430124883172047562549625306122300745111541712358279600424054561530072291757092088470220936286461638600979402928441084075048101131863180319234023365730611113884608236865638086305908473542326943600423087288150134495225202122393619326080444410069608589718112306147203746411892589330678898054254861560045923399970004970354523268214283488595005858732536487950500303432190525040984818826566517139402425491021721813491883271379063687755194471708673939324313875044500149533003608168912714181775788925903357209958879587303266858139492368362351288117907914609928414659932088766368713866774299905540114738253757032811825990571905251491807043167920807097992207170180316040505324788380012322623997349429533438044430098262005987355223055945846531347528812230416254062760938884394800543880748246018637584802267654738599366071164511487068803885654348748798888122777716507472044952713933367661700214263109264244511543328029906857645500535737380856217007526756598495059972239233138054143891191758718720690210243736797910916066427367913133972666282416747497869854066842126431902234548869232024537602828675650551048505442762526853261398761789838582336039075063394088729291074957656773651708184784508150627247821490586286358865320484612216146421533315502396029286753969633743809596942506543191870073005047022639842295435366724038838119150906883392438236202507023366217586846427002308738925708965155161688623116247706825058757164010885485643270924132858562502575296770999396316406189876661809509630024582795603369100792315650473776395446865992691798079766200413654518448720683067377644944437754511137454047109400894577818082802171150653455713787442998762436043910853288152748783961806908088992100468543849348196731339983537529223244688844545714693532337362557693597251881075983681811843246807861515146135009693407313429808133920597757182951008820145067467057821218679964031879129782821920262489797882780794091256435364985010272811819256550874419260844992078259610791588992942302817798760641963804310696170188382948325252079602479367815806875878415307454221455119070855641752415594773300579756171501027619240031207969870739886980147771985802453121744961638161110249968936720509850574514260665345779453784654874183801137693118667247917626434927283752691920506731248063780078665725466683755835520503660630318833986099354809324603592383942153233233025606744080138015236382500512069795087425871489452403378821378157787878123230206069991369632039865528654229496554681661521456305492600047861437863328141743750438927576367982290944857568123624141911443063590582480958877581278799802239644926487749901916936806771164784240053459692488025707332788896543754659906680527666847987519826717675876377765588939767115031756358699950666967234261946809945580970525456558160191560729428208327735711000952138489780647497103012116009545321806957515836507886399951634866972306873321622583442014323573132449244376342518076417007686353374381510870839322851779041386743223314580277914292298881576616312480679732123228664559116663382512133347260763100555599726094176169049778407286111392694297183380245736241472990020839852042286716869671043309629390826335200853154246370813755002980654235302263693063248639056948179190720975879222575865968614531999034460958710723335211763319504256617796613386861510001011061008088082933682308538883036707492293942311147563259329539694229821642755146795256366762430598363407362639269113906239018333158971036338478918415235479628545800142851012331850832826247997594619394072306613204111973101312326002985053109591500426099407041121604516065354900627927923417689606451948969286924595157464069995584799359018680503559049146156314468437536658431459467341176865440501306961207450790221695032566090264873046423205708119540287570415432135075210207250875397718532919759963940484402004385887149578662531489466564960829584373228165514497373693924793577123319907575605639236793937320438931697612584788040507138807109391979707561725436638235867350926586371843345103768751280606509275818872458595028892339166654592661514833363864439463989752048820933479905787384057566932125078475653291678536062020698138785119397185528481486658979553741453396527712494910613094949628406813386858092413832428148257885049243280937285662905672214085336054760359308759351084310711996031369770704940948526843535346126298554801100931930972417052590882723411116139408083782659264696660330415383686975658761196452503922866022992827581764366521784636034304912697396618999963621119374709148468785071721992632521022640548621889323371253632488831020551403503190522048992150669217725765543023055157026502423898864996061740704177508280408502811595025812916127324839827594051389485717790299556145374998321357230683305495241896953933703265478000344701147382205803478438278513897009450609975944723674815472851410130845382783654911440083436811185642746679868903741821570638543579269936228042627448662888711665751935639703388443306757345981583700597381834329411513858362667548368469724736609156928215598473678715902535174412209897206721632657242853223880679614476908828332320384741758770425806457129631296243638156018268514101250377996543769568462845076123289205115485029996671160954433713314019994759478036818555559272916333675281449395422106220394505210889184822963994443471027204198807513864243508312619323290014998176073805009386554297046045933758489323157746143777008934206610160926841822582920157066118317142192350829706768177417566002215879973746356635976960909714635166113725784158800851850005087762226400979569271747553378638385055776274448265754513748522562707884037912127905671851446614972412448287103935281965541334846601569583042875175823698148235171108425242647380190330158389348358024068541253241350335964859684067755153452724431921802929603241122589612049994645619087489972215550429008618354312862219243890150597373138829425034572733269937850560692338000084510101938631277817761332824017501586000529096562161134636482793268873647223792889555804552178848262533962937727042893632246428051760630826614548479790541032979642294199178636371399033563064001887071049038070377172965433213629833394866500184305132964775531204339341276863208829037503490167926502545941107486092880324330346903149016774563023821198473443997195912737377817461090715339452645146765361179129860483736012333565661392449138760570604119769609935506849498487247229996362839195533720865734596297875095555984204752427397519484657723904824376910894235394979246537584333479070562823649075874969731341333542709849348349788028276371769091633152108484645339224747716319430560955353289625419172544027160195041095366676146539616387799121980024769995531360162158685920552565181495342908539979416333831623670330572067861604252500598404128182136890757216933400784717860697726300653101148629131336449479427040347324605701713688873470511013690411587666827948920570002702814705876000810658177351059630654355383737839191837114407511977334546194905199287181567692334777124780536481591361006262224284227695673442843113412042413628443950214905388085664655560941535896919400821712943073423017739487155365242705417307789739281951759277751128909120904904738574313700008173764460116686720965778685634312456277574114798144376275780828141079034407682385280915335242089337602254217019118150945108614317967752891078077596285335964714975633153812346623276326838831914339727257768732305159118668277924944738808177271783702466211329693572866692851509933259801363405059151224033052572407044833132785112571869341874456742423463610480255158759703204602176800231766833122188866908901818953830443541339796390392978280540971294891793165125089911246018602968116737205614689005708614997052873353959312184750550582223205493908676064508287994254675571767407654007485313180962020208618381026687495255490349175394615423415645827411201845137108902430071021118901774289850529735706813813963120541506164054350192230485063898846355278128752227392070369302862721084303065822512939843081001587711674437327935253521041155137483154294780596322355503733331607854646107270195315241636334439971948591878384397994460453590581049244974317801315018485575892942524146321646414556262978396070293898279696696864479410659820333633527961530697845291148098058754979734670624532044845133006602935258579475114279859416808630822396457261211691199084251128277366225669244308790949302998457125737570653584207067815080067868971263773221556586168785058368896737374717759612989905267693974691000952200554606968462842452919288841227384058184989350452136173902938311376840396838719630061651719687580260241207083736176734231883560662916380555082611317423096854453410502238737063042738701590842912498775605792629584555369391432051695591652382763030096632050460819597664565044277467430268747644781212152377232192066155036623291447579318079887665479534264790810637730648762111519455544503656318632553719313357741486627603396376967256281097910503174863840757880246674294076694367818506135522592189327678512770972650557405142978480777656025181062625943505325073235289522075895664434998263338387231050686431292581824784731525110916832278933185969562780507684138900609401736286378002785061900096828159144709542971340087382250429093771337296432834323953500767136645248189910145889920403055344699725552312641638790074947455836706754557201677336615263781828093339747638342653637763732474964027160929481017142948635909985895538725691794399153993057727054889906371880963746794837160367384244539843056273291631197243120875874488606901629516730778756452948751932348347451855610464704801755934802377850794451461845692213915624344950570779873034868031065358415322739765768330740029464723637374046626773548268685880478607460155041714624623119899245044217974727249345819265841382512452165963435723253337377513507127835918715481330455417771597135858323120829965595028507421364098537209135672480929351577192718080768636815098920417865390537637988264472237610016330331381882025677652889926188838762811456913742520376575403513137431387886909974043589037235612783101836035794137969233055812931299594715026254502242203539131932949121641382152102351999759033437106450341890028968127838562837015405461333835082024879159438559282884854823651291395168612017924511636449293213807840704460807743601920383535443192142499479439274275384689724284650420950329344115775060912750962413609609869795928218219004908114900808129164764269742541026136786782217678916123519751252121686849613892439887436667265002573136817669995575180778055444686756499532688996648446168044017137716769188197450805295782428088475547711979290406727884551319803676803177895783239986348565261863445829543780078472309131399364457443806747366203341410805134535759732527200234014905779830807463129486262007334348689332893434992032902171023006528247113767698239118310917925018706188051698394330590902607854075115544618547379416279641281985814955893760286939481168951074880376652172406560224274343971602769638464573297541724536431230425456334909692511630369691834977433557918626219764010695873422741374122360836866542027581336660544282616013396387753339171060533008707803249776045656102795498768536087332678585455207107686905774964373433384874753939824375966607241218633004446463920325030295638824272244518768089748092141817816732435467566420054308497856955295672429860965315426470130557386626725802160356081190523659396906319876353546627308577170920232012415620588532582697111722311787094220457814966459653998136885799183727371187654851868705078746972059885712695138716478667926525926626036508378107270353851060666130579856589830057267446676672595831880183277956218375227742084937378071923144322367222765708735082832896226359591644185753099082645235797448300294524402565784390723047014091914692762988649448807118522329355472105093720390816411122903343933919884988566186414352795137050284864771143445732672657476733859075135023193061151196480533137509622878460515420319735823099994134149733500229757657004423067293740723098593839724162114364013057788425931250746898904859722567190595098507441046884035253863082792677941291809483653073020513054059084028979200964945466508907468587802980435404463717182456314808752139659195936768202093186691617740019154340763123061634281983213382860302027356657897525547031918987938298193210338411327575985949616799107454601196498125115000685181753639619130580853716787916075795108731765231615133331121631327931423223577769614357539088057171918325935539519678528789858983386460565122438965322721819353835136978948789041980330027471153713564138883657741729459647022004677328435689868780459923843775961338234337727115812708978356004718783847631552434812556244118475616262104804530526463421483437626319092910496485970763556672896556512979768775137706735128278324482320863023857620796596158821767665048746829001296533904032738289740277077068869835524047001859110628911114463860038878257096769241671748683097907444868907311439700959534776562555764850540161134043729318030408023408025884367889174038704418045908662201539928584931538875711338233749209944860041385530176977273188355502180272658476307522794950432652693342039330433894838018623370322290187044854588798179448144381693300383158700938012444047319210721901107663090297632632212478923229569727441004408455068072919991563102945873204170014406889749027529798832703740186943181207420809248482680983476409456550414485951688567015622917984918172749921411106666572970645908956556744157754395065239865798854928876961213554684461271772088403987949537522181386963340243026686665356373044998265007976466935645643384017444057632030153784285966055883405640391627615447988557466021650118371975855533144010899847867921584139151849865616465838174676586266695744480256312242463648690733265347317463445193256933034699184624236086161542484408264350953779873546730085826433714826095867042149066809154714019645761421714049328541786283529925345158315457531171502553366902326825627097767930897021028681332901533228620322220873324038279026020494942559564045348922808933790753982325566228384783697632920594089594861167208404823803327667272188985475228768003567264436274181087967062695065230569796931583109635560108823144471419621024264793343792626062646432413855224615286928316409602900989295509820600962176913362475874510975233742941691085330246297078680418886586101840237059157771744881336589891342216911235464055005539560104081919911115372612143474463831208750642191667071320943515675798307504193386889526919577090563716607484662068914073301374702864475118080725998056487137952191074645680794605019293441187096565039336518563274564706063605375807556343729729378150340794271085137479719406297392864155274364996456055885232833172784941978989105686044527425803041451182451825397991743047122866862613114481558552980067843550864743891975100239823818207682496835857555490551610180241853456419087362775141146970930495746317354948682949167047878761596886541172737808682575797173463157105442565124739612621787431091439877586286372520946674481970977905715933914662651255552821232465705207464092259016058160843357644444522819440506465672357944729192929321328082726481918356154938859332172475057847459609272785379448826499764569729175506185869728754033943434764772339594837857904809236049434500672112931240806817875942427242365226164982859784909075922006697394647219137219966368881965888241974751887565763912063382869817305626879838291855425793693939917188113774982029052181070075439810717063551583564265373047026072579075972707459783996736812641497420076825804188720933506123485667144855787696347292188916606114026157694236362926754854646536459696080876752849787599926976983720323968127205793294946934444844158146418269696306695023295140382332228227342998632273637067193641091911859973877722637303305477705568099623041398912132516816630921089965371034321727427592460171320853274592197615409789040331312614921063540543533496128888794662081955195422385299255521220495124879246221063478564587517682510317826571343760681551813989594583816662737334951204390029001177319170678737567219068037309979757764401341545825072822073264129977880670935187921844487153702958391679660843112663614896339404039316057672090146057991566551737272702725287996325847472848260974439791671337148906289763470105002644681363546714925227174669490245329795985536773009569506749191317747137489228820425071173007534294092744884417325229980584381227688335110881952937175414786524833905089027058048161252933888723891485642183064708153718192843083958837517389471951431993689217594876131229812473756767921404017656782651565723166183046740294633418528881451855152144235583589922828029188828100666280892547396568760147914990014427701181024043119962953141403950695130259442494950082246015023965222197040173630587343492650714839645641061996189136976377170218225901028678782579452902183412829187627312368541873740652019701199985453682202637630652335924509587227296542451950838161402154646326802950843296445485393283501699695395046876181617852429531037646634466977325178793810717555241835022832717296104863757375496781563657626157182501676243214221339258513529689571278259379496081298942659731604741765381179931988338367959129490294724967245267102762224165046768889356731536576196799059309895384875135270591876871034874921659897983495307119630778896690704970870503237631901551333004219990244898996169705595343046112359393512855536557083691719806953208202176717658985341938655791514240953638563681911718513055397180958588405809020703574949427147152452344984532099048606824502280742296539647902362431074997807730125521608120106281377252790467974136593178875294412038140456768910148904171238580588136701400054688956449683456744098224855303578481082309938466521725135640399746316602292523610583652038276844800949367561647904200638328223975172987850828823413976630313212704402911148750949732682444307360354100827702997262386698416376906366107794176202899241156486158542042849815328669047021380489425985945114142906361023189787248440038371594051732564873903701923712325721840780577189321947740103446646430417508268918673065585593400308448009125773227662394351405722371029705017881682483977984104470756710939612456484586962601752308266915533554673369396953237321174256085855985336801542231605508652207023973198187276373241704724094167279491732009121378983744542819198507039542852411085029941514065102018856611387915785506457581814987326091369152165085538898288211505079473247699739563614547554852966985720038882758784804061855707005704438496342821999331965154485233822341738282478431323138798760133318446465469310405026814995280149788981425164654741243029837457066390615092708508089261390834028308151159963535594906329310154691724797365073186200950134451270954085120848539511641620415400844807220466399405979655289635150353194994657742316040435929210974354996289779542933469959890268957098867822752150679690127052453219436055525400355091262675095372131840394464226139167565046522257091394542393387405733631637534546466104953062358574236726458514332251582700936389729786442843418949599059010012048284440238168402389342636387624525272468283392902912391025476391726827301864410382828437470380971404941065407525259952563952541550719189721804707692631720091566696327314518516472391092145929426062128752009110119473257318426075991298485740605958472379610763159439235009172353344601630718598144622540463955472455183249271313202815643703011847567335430299378267741017414287067757707276490935029707172116022424214173914688058201728455425687693344279148163493918741352784507431012836119494515908410998452519063358576682139534929168217191054930386995264337329508970483262591380786107030187128194675502908096680114033920496139235316332114826721914488462226191538600314785755374772822706643172572642058979863331803936301723404562332717469399903658354866056517544654100181569265208255609702482644267216911010972693593787587974691732761547372418429311871946402740201399159200714895343991411517457023128606319313702777994786576855673065984145685935198543496600463856528347178157239349968696316221144648764133789381215342591028751662723156029439442505162014031506916466132782105717048279091298716227104770246494195985012146650390583266208697956673625985099218516234730745905934715800989359472544096824614876308385517456823886452972520616306509406467649823258614266192975609283257528477808031012348660763190782303562845120231720622823478923418114827187063515577139076526974318986647486566344399602440383465026202816418161189564392756509119837228972400750805548371742162819892485167759060306632375513985352520277885128335958548923516512050778224777611562191915992249011188734961273649158708929834084869384271657346992757657284494114987697516837831161182866137725451430340472543551833393990647939039529412071713883090191827741395936585039371217004356252962452529146652703395921583735437325388188063268429696140197229345511522715097561521166227436657639797161864049057841204931861251497683358654203184456773018257316214259115767429491733819302383085353035671936204764775633941764329640875858784679278196370554602162154649908851948585411252984508247795166931914559340143569011731345426509684210116313318296487707067503552041620085263919141934611890725767154081439476002051746037638964419369178043499546357405761168218334737551205452846983400753024784977716804202104050592353713261446754627336760246628929655191908922500003575107100610020347618111464833553634549159071134435011010310024067637546164741844072512178981595054813171353037455966850864368219345502085648547556475862878567526857940550583302606711621877953594480977270318315742095654677437810018913189300724545164683084337862900306811977242079437096884562648134679923086480749422433520098346067982054573581464607533091040162785718932888251890844877545837925024650576832291069063728594269242777972347143898570566644335357097133824352361297589122867852790547378583736781588733346306140888938544502196071554958999064669003316337373173262608433196128692452393550726267822039003117205175818209419184982770202859878636841522808258956308796377904101020978456998300724628112446429789192497103286961144382122182728085358977710590511046088273984861058033702038009412267982141687276062408251872493043172282947033614041850162219283494292730867542942480064268927685073668844413208034029176766467169137286261120179397595227513740145607091125487249939667671467178438926720941080723801724197578293067184629184522653747341944726326639335543203488267006435647313572734590185742212580957917886351136039027759470543738195898073518448177669544652444373018120628140913530939459922363623115935403933740761627094297557397374000474188759093078905159847325181607692059291014573036444239132812227133802062842785176259161346355957922532479879345543182891713938031971324663038713095052677085454488481510368093361052110465032038821997960771781668587606795840003723114395873970108705592653262593847969131080801372907320435703102398691904306887286825043353677100390667515910726350601375353977566568800763118934768806405713528501815319701106997390972082814222599962026698201463438579073160616759913926317421113100133687865871615450438547374669351237673290695544785859321418003218193940128065158568001012350136855890334457892929082219322975992055671891222774094108216036512227804705364523910507572543096068178401733094517217728897555443864894499963779943578810710499882508061480834903287520324208734350969839543153276991086244079570474175806790375937628753784975424848983408335086864852714063989067608838654439216865464049828709958621345878471195939840420027343212309307935931640992017289907877062901588267146269976290216865180873525388636645128919469812759815429462120928199191567773285714525977253810382381855205056546783265253107281345743508747075797295101667271182067129689537491306017237973216488815811872528886250449672799462514155718592147933932059409176983660926731507116836965520601480961118631885122656596265427704346180290199395566762846092163072014926431775798048747076741029324739381300214704298622091679714877158337667856582899020591302049123291768433070781377703073591363670862000429426464938859151345737765181866048279666697562104007332042412437491507185757362968608503242385678943948591943969019752375801886710628546956518723183204199753101167377866661770819089305791946608785349432583191085899224488392901089753487405917873596647359727184647467973564166812755166824291195534648648093396531111685039612692395627829633568372739596884395256536125430645139994358375390503981509119221936602883457341872526928264674963376118559059327549762232846105446864553504466792006820677260501623129136047281426297999954160577927199218671647346607470887541065869009988011478483015984403227257230487467416771451422978099112250173905000288621171812305109798222205882131676530835740021170429230512234944685913907374365998100664192645228013152996803772210983810614348948930650582950730013149255842846241110108801596847715265222197690078309110672357556315146905173821653654500640073923604708978106068754580732158621230681300186379452626432275875878390181159300994328996108581019808794587974325557106629046420660011132265489959219523544927983537607672440854998785736776477239397982801650215499206506208557438804604577046774336263597761377546105881522178618405080593722424344690220993976150194065019520192687579406353515602493424119254245121241297643349736303260711838790877049272924264756665131636760506257077981486991352840406060054344116628270252099162196498270667083973278251945216721855859081205345227975149903137056747097378867409039683302604743392311735290852389776470042893643152370597688201777334981533980836323468723739281897389015213726131323021266412387604567127280646460279660575095964296382713048572683488995659215165789619432191232514545018501841162951571070793058863669739930887000486878733556776965359345338906210433692023831811905053241580311444663069736599885336492283321591226916676918010858552585697136118817738765504665208770349837735651568926919208793624651093409947472718936226273907621386056275848602207518885940685100572809024711133268423205325637094174865446103659111437503461676948719120485817300141255874256687016145702207692262161197791886314238600909307361105648556689247315253859028782736541121648520335461222097507697627368707088882030880011259370015512539281574126256149681621491758967066958500912924943344027211165665085478968623906503873653220449760322852343797483961418956344048500602359822968250704018342904841691634063484522963915139650494311658657585153421854360760187643175985917522490550697831516173769381528270453388082290046869861056896168586422517635835208694165954111440357374692420267269247841015467203387273163673771280638329660304554298098048583006867918363423333955727015074593573233286858537465169079102139913151199556509351718453427322594602309849457292141153471645173968265487436001243921397285558637641174385247643385495489652971118928107099572573887648882593885596756330186216306035940185141854084665205149579467105637400607518092924020075058115349712202718081869695277224592372821439762116893695555847137135564504175798866311012575244736168742553265242187290657471023634213341574841526154979615636018609931307028374522187873303766481211895655550867557282547473015571770280411794712142390044706263979364758895740876639314576257399265309516338068889908151634151345741696243173293779893812394384363552357065015815306526825392383513954102632337730757713143546029413132987269148052609228607731303678275743572422417924385691354291401715880088574354286214394533648797460933263913819731906662748276150715753564325306486799597871461006187290554634191485470739220102559194570185402402174496548911546567303905651120838589673172763684393368363287679375485162762794017150922595792072586762830712865190569724644727008229834766411454202027550286968271709162454084452874660558940749328805539085761061755113478861232348573533513520166664715532266244987042004890817062046844719352854919964596549637447492522331157046004868191951027291199369104401601520187599539792362427448329653410286604844448958675660128448618682784064230907621275298394523697111113736034059071399731461978966167721391503517416913648028621989991796631798100602033858556015892740127514218327186048506764689225499701157153908899449843116950499764993988090456863276812976612632249253913576128034623482727325236497273269649354498303189511813883224393839055844937381651220332250843469747505105203974549964570198184428148353257318469350262091466338345121551230392753884033315225110604072025064356710488732969752464388820875376430899789389386298061232204463111671025388811621441545502655166979509651935969391733939555023884275019340334579268760371960826430962067821257092607020402669718838331819247826706546283652571510195260355801150768761831407834893195486863860928028488052191389677045941973204397790571217926167848875999134096169007017261321203836790475216577728211458654986254993883552734530158094213449634275847794993005090111286991134151382500320289057280658751192490900564150977932244005186664628834934117486512712081694793086866834802480192522907247096366239470067900054069640216634926898596137865648241586185101051426911357181318900653245151905477991397024846032191857928121797458480888455974706784651647985981263167398753997926877922123344430762469749441722560093211837483693534410811624391472579877447242159856472460181992812157636326150905565253417565480165883264705114895506208675524592135826209500512273748376280192974120756484207448521250469497089893434553871738098592056986269312774050256276747260975713217277154286259310162930230699721902291691991509292179571587941455300558423843371262139214814578648865184441726219031665695525784754116491484695387242971083465831453024831800671070950761397844332374643180409568477576570241293338891279436997218242133804104485314199594396185817612911234534436545314983044827421382937760238695950830857196108549703212043422470003327257477643758307374179495305517365442303788075244614399615748799296326691566450773883386998763828279627651157076547048488911670762484485986725671580940073795504731552823552067678669409539661671158700777374258308924976325268108643768362328391514986179145314643234386415648424882738100494549367864205338970825548714017978733500837940168151101366187679851458561146484729530300434454130145893367655365890925957655005876659872208539835762846687839699659566493065417270161382125103494246655857360086101524288052430053019447455255355942087290752778837460106372385870388133312896232735722075934162936329024887924806134754461612324454082502072522932161147899036696504498393641482076499246521457543058245250142222636972795040730380589469083222029151208334154442217805718701495427505882250641593258798027270512808313350728162233350567019949474712258391004665781103215898476343506945719619642145102236908612384561398032894335504629688041448918774913715984713674948178509667663101291914560891724656669272938364099622553295894594788324913288277773993747568101595877550070241796507708259199223442007579209966827279936365304756581938810675760606105751268997148378779752900652112690287693219138444982673117527832947804097225211146517337226935092167056381220708242966345385235145302335653910292628806239188646327479746869159278579756960807666168005306527789423399165244292108794649229493584406974456506591061561177332329524268946481423506845028027890540479815108328555734289989956175525084052576736015527553155051401053808879978704887006213734730067742107769640549349469481193297836037234571099614064211175378780939068704261216428523422197246064756194984455100933301391729481419367593697361699861677011371047092006707278184089004439979429327307134890942885051926760329509335307146171520042527596410202402867705090375042231343143588621984364365270265147584745000580783935758399030531124398525615226681009799585953091789270840478819684687213545515364997603945484590731686044027630162773219510248678807600546154903315300488983776052527414366290414685692292942601131212189543582954009353624739563536589418679808093081346316799638155833544899902136113885718308617936623787572785864424524919286673716796354865502737071898609122620915621786276225328832144384839679377360916238022834402051349845091188047443737735463928911938935149560306394494235821920914813791334067791425703341981044399178244740871011408768947139541563734281216595277990445604803176589966722524051896751558829793650124584985999842824890592603519757887630721851448315832269032806082972537300604536131833135375056695616269989852422325605768590648960513857280558518738648058811580413962314290699904919070598404310503467386229383866697606042151854083625699642235733439625198097611945212408795132770996518549841050531218631419126466544877715359268415162295014996753581025226151040581482580973467757780144435935967990163181512481350012815428961425617403123929547856628189978373060912364691524358257169335724798746045185428637012032667386186019361621844803585628831789227895665379819794502493182834602494317950047873627077131756743835731382543639495198912785701776907610231939162847336605119010918274762855837677099010893952256013348712023897262061839702604917731606156637512521256884683802793271575509425547593075577240844915001648206947354774349634934634412365439652432287870243908601173365782934502142905168545978425429878253873914573400525761297452564539156213885009661602925818507338410612790087861266936578463081618250298407640983631833484333756704625786136532674198808738716858784734672908200321505224913847564570888744803004415501440945362597888993803323477336750841178797327106685382847030516779369456524702826891597278679750120985054686730625330066590410605510455234876580740031340101213347293293847256195940500061172133195842261842883097704072549684531135675581241727126248075268705795512944928568199547200477898529190020285840728450207491463507698484783262532168146911837717345881681518862430505613175173461189690402194300380341840318204779564599144790305140989149241044521251224993759815979151691363177363581552875064974988804193627257031699481463499383219685042400349826905272191142213123516549942316691006291097876543874515239739338198129140698667131992871782592573871817898805552736087934149487751302393334680856873389225740232257089165963949985821483338731100519659683953186973444724808068765300836101321157955169146470494781633481671097740771552895061256970812330318248009281113354392281065370831488006389541293370731566752014033863958046270301162051344340778551171826026921184107682687905631731761995010832676366279844903078744861714152088513621343027130504278060510259126512722461037906727390291243099734036072362650266364493054232626669429227876993611480653358464318852298085943056980722414912656003730631843166961933443562401779903431825608791770282514318124166302663643493090109106899376675015804146967722121165153298517424063979481942255018357401559603564526510577657229207813821580544675248714104039023573351324955172761410566962918262776302519806584984613127115823677379409263141802328484773307608084616158637079329090361021554873325433631806523073689558332580790474669787355315955398708948880904965342518105551924814907122335020501987818013871730583828963409426714187615796702011951029810522539788308301885492981443700239246802903145792804644964629181554064791783283897355719325199160289395588779751574850341675878971449293067624831121430288756483958366737502816828771753968525826749001437225369303655728286893844848948905787660037145994519674183925326544396786010463527361167626372319542360722653851392709444999953807543372189547117561636268967084009840788825863808181216332400683037164102961099901384295116434252862827711643584740970490141536585350058674319485120772528743943178433291890740312516410208430108338543589647675460534664544524720065503328777941026798408965768265210032400922360907803781163371820064022941985094990436339942138984778305881613398950963824913813132503213709181999832087075442104787741500073765687555252909161223473690122703953743216928869357859975443168103384399944660220885488573404512724106899590106922396172283967283978061978794028244125235487041080774671489949901162266073903545108751025760009505604397734822574266340507215350757269219190533385227138496953003822452745633336311586944980018411849569305133059817017371877774658472828274305548562596169920404182294316759841743681949853960529945650641000241859217657864777570752628696714196284748441017903103553141214711153273664846735822428483180791835099972151406953337506429969854431394355779780481821126795350289807724815703580375785446851714329547469626178050504713090402256838746658103570486061378133579302640415841138833354952233810728812070331690749286415453167355455006915508077610520674910987859691911023734060989818304571432827009688225197598002925755694703008384044891898364602991251443883600238943115940342165011656401347142611962333406948504169001558155902675008190040794894585644272781203947720625454218813241020337277129995775929563376784306656133295585464648264422792954341305950435420152302581043113985563024104961805609230860893332566579986337141227947777910938245073615155239312736275012464553712671124627350268039119767105500282322481401607492453595594440325237433185969232728130809422932286333862490274406375848110886878469235216521944588109984235110605493511219457145213587943558438573443316065205454893250209747080937717758904311557409641098358538520710521684964840608099708719449178183503365279140648032157095071027732429464998697239434425187925281950526643504479573314923233477583687555383216734287837987831906248826397875320767224828455568783135179223923502515337220481688716649212922667516128137413485563324526774467476380699272861837894446339228857041597795982379950703213838844107215486864147669210297915306493535605386841709620021081667082031564749600932585452207123516527087059901625648565203176962798097811292091403318770089270315010611539315523205756444920826989692685697169194072113667074004064696736041972514761924520485309408020207425165102585602373697364557088872011907931809348268766097404495226206957675104709106751629810437325733321155261994124322097653765004622057085603676447547761702084459541804605452374563804430519746819237226333528146140782372583137048838121017985729743934546909810422805143906683415696199814547688310875496397595619706326128625203328456749245736073928876118649928958830440165790203392956731471121916701601787630828795211591921603734966622392626752822950457386473514376406945532413916089164537142299900943862376134055147387415274162257514861764933818952220335831073202557719231948013032086037044836809181440677040070294243712788070229302354855951145031403828392750637762611791811042325771573462914455847267072581149983328664582683585399169339870021886153834375017759530867799342285343938914419654154920409546880402201893373684229844986437954411646089808168970681794776576587510391816556143724450348519670319608081166863764371152785372271244291177428191090008792722903396655404099557044098606503176418565341796475967824103330852522030778059196849290861740033740025753204092267734871750117078632546037565338527348818947800054694820561012656790718049885276429876827846143283939815460915442103397673982396555502332338650002679733541339772272581294441683839842163871974162896146172077049737972458305948742106482114311355182896768672185710006776485335341808276073686220666079149248053574752885177146511120026538025775623355119355627461269471467642209173595801429860987017187180555822834825173432245979385603864652547055055185410300873592630853870293624009363937202287568450672576011758370843178304303779327527809753871971373030078222604791559747919833725340648877897061928917103017173732530789591827757724065367454963383803485274981432843606924983884377869074836368457886820195981599102304442310760246830040270775673822175664631000411645416926471284128612600091804503389597078659180435372364237668842864293714752710493387127603531515430051650576036439600855275843108602674703803191218337115548016366512087231546668600802948845025382930568590509267183789353781518674892583992909907889060916469989963176665570650400340988276418243284019543970219050603486313186762854785693572493824457842796283150210264616734456518101849488424311590314210568698847874300237382895471967951796924261411013287410020484747880042423152115185667312854602471713774364293245945957537555643068878709857030418707681055582797860039292766886046138296575397920045932498132457173663132151716960907828469236138684345003180972129533815560753911315816476196845249470296061695381770523363761850579656139260441623347221447608113356294511374805680622563986639322441856713655767303165212273247961728428400178870292494973417677510554713522529372117097533869694483269830825410206656794297032386661645630607809175639845966988245798102805241693282963064697721692720047637556936703873835399144796459729470565123857029384746173148558430434935809720386852930541456837112167028761948849682422086688466986908770169795480533432112351340327038504895964352384209409123787689455410976885128817128505856144066131043406219455086971034262417016509972980825484529108095833612128503686075422412218642711642957287397804035866516354913391423629960087043245810140607587443834679491538802331373917902703365565626342204417252514803601034367409223077179049053864470541448505674175439286102897426703138611969239900131792045941333794807718699898498307272210642881096089356290491792803681005827763152038455266270264188003421181301845601778311671468206439094923826697604248414806113300143675270026786522749175546768932995036105654512138081002070820340611218740333156731393617967044594494081877343773360328191704162788891074906873747713277518154180008416517548279192391899851890407451032284109063726819824129986789771115261928342220652973011809482075186393991148182679943249411835737015469024944653006346429023222344104195117993751206274135048263348300967168920475839464042655252441432620607425083929514551366989070068440843709276745216246333766836817941412520979765890675018086802771505749982511763928873958481146351109466501257762978753051188531601921798035587158692288926473260469019289350480970215151995663954075091452247562053282871216855537283189533776376456298647353026868253325252377691527582432614418909852118270063443956832105580779850923042826009297241468139859047373626740334861774507971381138256332225319606663225288502223585091434381292406904189906903060929522551579180952788466055425223592113359008335233202110384784783478819570988753157623610741030001649061830892833111299155542384867386487098679865941206866238217607721873343876220621083043613763581368282647442527262884394225855282217693162963913104024053979847782251271716836797241477468633221765477292009971506136306561489602777813166815952268389393675753756626467434114916141122100494596805497392434050479018022594695344587924300908845461253784583406276664582249800055517820701297179530171395594636488950499622507204898269000164142346175963398197118215093130469925935301614592259326154709261558710680079859562460259133916648074667572773475100832537923900328825900832859338907364835907705752745884176723462516716701082078232311233637445717441221053332672827666943343192235927744678151230473055092484145381077091050023423564876916531854518872347674129294415344038339100851649023946092228453796759086732251311797832888613176743378449754937803644545933745930053250671378068689960725259927638044294607359663890034351980631701501641316700479906637284387991068895234393247086457677490049319515647913054930816820864281896129185314482367463389810415924690318106841034629151203452191510975851099077117228851083301666299050823206998198992295189345707036092212875974453151013041396197562708709338337995256666339775200045580052425735642844380585942683380221927918018104114552905897340495967987634337535230178294133321111344516744931037256608359820225055452493682304343120027445841293731208190636747084239499774641162736804629772761544650108466834401661347692501664797171855911375717287175730169516091220524792315301660622442783577601354732893583077856203128344200406166586082382747367947403704016131146004433394360801228815588206201434321264086693098560489390889415482962177749789561870251694172984895940627697137080187326449034783917237824407465743305021482378198288636711531846961325706036443742894961410804429497496514235082145150818099233324316520129618277279735749672789826369653448618020358807583417784253906039003657531760843104921794568491635486094144221587389181419512628754069648818467500424029496527113894800502105332071731570045940625133693234939663972642040081586339698398041060941795357750311986641321483237891827180857611698710068978120801847461320780001648605169526686179326091612596567553852004404526537579632585258797485895303764441065340222308808980303167181712793442223596614454544054448555565717866639183324664231147012527869897258313897749478028814258088231856686532238060025090202653366960455988214101871591230634613796782972891188528230875863717830737210565396994756815209163687622084941843680278624531806893347848766356074181047723319364351962470111797492429558345740493960144050793023096487422686997829359816869668832602458826329276493849529639396931665911028653090000032163366742975882460422762902171079546773590650352090262235269497101386626944986304410557503659646420737326152092537178050549275509212263190739009035281317361037217292992274057868311955330945811502331350467660846592588467252352318178075946463257687319396330023922569217939590907838606971930581750441214193464431503725341676284109421930238925486620001625468833242966389741333778777784573531857930761241471746630817786349984469390241687239989727330751555881785192762066117494704305147378810057744533532013255973596480349133617331971830829012947921557266374006467099275404079449123280073006613657014258858987674838343473710821561197438349880687683699640923148204997647064059936567198309253600197190005486790526275689809910034227274858515182096338380555542549922657348311173752696247989166405163175195976666837757584766125578766016800012034789134493194140405032810330413911789568664996954959008787447323888165306264972662382246058966764206176055181854353371513933540501886641672764332788496236096722606686995814972121015201363655205118948124722855756352440403380531809418001241581971993876229077309243471202087580523201244184196343109697764666506169639680996097921483029831933378954107192314127838468410932672022415566120184469552029745681304125472048021462203762911703303316556846904507972496023657441933399373992055962630058712752916192019571848846926990641017809444088128708993393815265283558442424480510840941154579027648977410568163698102015961561598814731025070436625736000663603473899393817796195923201168771861055328713746928027525717554459947637210761788390858506938995970499388393520206024276521745577506197408738296433679100183885101654497760416814380795375460359302680401879853651720551692907668494082120623360091184650452326953838719640341246109367957814703422270516256480569063339463135907371909166071378089677649363578396062896920623936611894020614738207746042930365693830249667492043869349357914352483489180487109106094849260481439780283381625011545128835816525890345852442957564099105998248879189524858789742099466059956425411566550665915843842643578908905607976523669661566266124673936149830290792121195895289628891828987138121504828963639081002059838376599655324142460612153798402243140480386655150252081170726092733065611999687580469807398105425384032326616375619562241088175200944374037110569506358572259415493503660927487822077580547441983193365497647403758650729108060538907367331527636608285194939424913468694329482446440725488585472547954443988420192269776674574310995185963170048032392623224137862087100377112455113900879903281964540651630267415775870313403502395978566344815168030122118430070360847488411641594677223649124216164350864201271533232122635242008879456809246412705400522502616628055396559142064869310097599709510214829219334092092111313543219177090235596940024019882125902876669006064797666897633418796029567277628965765290227898795980267890244319860078728264645259042137560449512569155511412247079691672931772816446354344910893670439132928111334953223219989249668133947762743173416149873201829779848476208326441829365510272714043817746943944504361296867212076744508631706186343995106774099282775961187677969025913277448316666222831260661334702161262928017763278377036594542773072421598862730482483795860734961001994129855885932697452052492300966104608751393421296086512661868580370188601863574146212494129224752714833471890402223266120146537630135505391657870689273842281613322311449634918797712159768386747396640801605881361683583437999113267838247411108983927983063105880709561625720374025515114709620897655915913456830458375304293312484204340194888510146705754337829752618218159649386799308873600705964976714587045785529794140309798314076434226820601099748393075990170620470671568558786702134153365473262009493884398887599255167259190058214229723468270633037137503264126817431205455076892791812531115727602729063650046176828558513827655872628305494148639380912839201569261966487615910887275953683590433955874805766461285806697001639748509106283024712537855493527833003730195397272856925182296609349123242132324553254050382611259729851383409700685200149376660001903531579990558846694393685237728370479266485033382057429038597349036224198386443416422223202666120654308357429913819661650344769960730032745182904497735484632235220585973354994923214419263615092661659340555414033810730416475812125906543460135962331146256704133854190157598071470949808909454441189965564013700825178974667948127918115493203966671101407972427928109924270511575004342079184086065150936160605893993788010894083788738819564278596727960814225595878625661161629911257615667370379426444468144358040390116105252510021516575939095057389372958964646432158370869477325512245934127005948397226974217914960418099821234956634927769347356054435774745668660111750775804388651576934964907567355074749910557170822221087309408188601602295575700981076099760866936325553665442782509018100488870813931378610867862385999477406688596180920990719226921712451656585010264496056502268321538583161887583158208487040937069164181384893272532027876247991895555156890031422138876286306984768755990358777998049964980556339131229369361869600943793459872288112906194736044406213441997046066775336338186254544823018155687641585484145215365868223487584145763760302335481729361263665681314696508284504974525961036012031035068868714256708678561101440430351047615214443258774510246403557112571206070556446708165089753485013732855776446189266858205712423132450656375580117082761686528733800432663028291296483364461088252432060168053644185887980664613323214539957051096340934075054911385268999980927423695626087809322044461557867807293258321775389203600671457127933963330673853113156385874364727066451879583923255385652813313856461180424904496956848606452159639034358058370112681757755762106192165069978294113427811498047061682630501545090099585738927315597278312352293625473529283999112624677222150746120985754404672803884466785013403644197720668359537515030616801162252819300271984113399703148198732710963513324399641240955442223338245095728728394809632832828379284300171564851865388627997869207742310702272784171539358474276198869577471805934177106215522544126713136604937812004105221925327366695072505984715747338117433810906508388268744386511669545666976830079760127559801815523224976067464042306711483006263112033201289667852987321786404252299842588715141386995215453504764228640756548464370400771898993445398536224319986136290019602338579139007482235755553561924958936878941172409615509418548675429754636045128082426366433033383155126792972187781336430451110188411103220249415705870048278643792147224647957028102424527574685325249867249992208361940873875076951352731107154142568559520718923516374065050777191568663296929683172192926872551286019976404641073622179679704061008435093998993952461993428768409374627471086499641240163673379198083414920780315199604887369959639260189609833625187463114243940168481812898453934460556944807465057927916867516856656439136570682111958259395254832684400924749244520945717323576533523673489437624291614054126446707608612667443863237506757700511135614888706448096707814604819462151514045045881862703316105943304998381896024463293885532103612754225598974402729403151424990996834241081650087958606271792447174077580145016422713706109550361252199921219094374844552362552664887619340686711612647716662069127407388602291143581335591859316273369651202160032515566482503594980808806928944551352777603633277175595324332585029095283960724832882700921911503332144685322400754286666254211208124051990028414524686064506466107792596650103056927134360309524588564930924331440930407076397540413690102123085440540805313193836930969215260754900823660252228090844853136688859717162613152179075910577328666454213669198931727976326102961380197485405294578375190987484464723333514480126378138705079690487226393331268394926758111042951245314146171037223748859747253978662450945652339055717217475406348788514309838229413348635078388015038068848526708903612575946572485910681733210766053415822384002641952211409920950150662736421713559520358786072866084084889492784620461814745227330448341938030706067647795952772680096312048808129870859324385102858652158776167450090862897988689752629890013472479178135309253642570046986990472642320001273392093625654021807792212490753436898759838959710428000167937088557978792430561758494909030614418762079894720448345982680084640560058539491126955789201049919107132376633674744080500920843646109750391631383350736718327643589889281041665287645211362287181001779967101866614418773981550767939373714511499968154201587959975979623165639316250927403354210220807995200431615249546573118298230265512151018367771304450508818238457433520197483337421607114898674149253761742409219234520008551248044042872095146498965535171684895738798898183809258601361167817543165672529706815461796696157003279408982040291066357638797436572493327135182388588775700552415084306714412571135952532259744247585362748300782229807019717231938804261464538235607360540267247238034361652518504111139270670850604039998491850458860394737190083306841906867996109329691889429690561193789728116619313411545325807697499548306877583832748114130854113838375427707812400115419233222405919589670245245158303757012749089979280708893678732657613013828186147311760312048748477618854994255554166798302448528816298235785300292693465401558034929578843948338586212494093607268729036125330540515323479811959637664280482927844144046108147056233347716549460808476340306965551358671647662980815632257144369741282790373106760260613105668206794085302389524185668042799666145817744285316019208775808455248802374352490998783394341041871974328101218384337414980794777797987661519484746970296701095569504195044573950171006357611450824010916812880894012067963034873424868341640374659369192392973083193083770961240058790812635120843736157004009389571221289081150383094049860478233079932304708044340137196986236792307729043776236023352539423688825694902483729389121281535169765630382691989630967421131384425664055249297902250570045082632111618480594667216877078819867345735453453509763865067882233156054910845546583145651768609534223846422714095370983926299658830521653151603242842114756541306175084002966338819806819611459748098234203713650294000751619192648083442860827182948254449667064022639260044334583149607052759685542282476491443560080513295327216998376669150395863945085055277146451264584756372880941936494678660340522891523459630142637895078002263582728996389822275901602814205427267240906647145247093610637883839884748238909996687488286019925679648840871168334226452296327943318633515533971261706847847792640150413964536193726994186520016597339756831944711631168041459820919937545657496190681409049881112849610383990663339176895666707158925929656538898644449668942895620219098677721668505866761220356628441923506516184721032816696278342756706198787469882614404399769947922926703547898784368037873862594979313786910719340727323217097009441427269962210646325716245520798866457563731418085536206852285920317535003372924854289475142192501407744978166739873756424610781980492114118659775810986437293607002694169771999043191071504720722472354023436451093500424880243871790257103578637218098603637923867342095467280713032686686632373300814222116279062382105712231588803882752007358606567815915384709239440107286858547667686984192085431704804132985664610119320965626465909009529900384016112235623279733775613811119089935016110263815356940556824777606149514159370174855130090195295360105835568999981960514645396114974075689013684001029594300082370393597863632897100939671704958144157644976202009366025238225523567986936983283741922562551023481661520785481676567597304328146440196637329651768889820228559882255915517254144193325367844554709559041182525617573926197685736823266988221556214547663657444190953130157505881290823609716660736240935138597810419642482323403632565821679145804566625856060190409227106921710417068576183012019916992164506196271660052636033293420650177306709301557885864335027058081024857756737466710470860018594742059077802405148090125600553714935162725444605872649223510906410452047104431351265347894263486790835719543848369313105312593011128935922255199878586474791763950351324930970187410951400208423120353793339406688917035579116519560205706248284852438608324728721355524432733516086982961644349500678863177519302535239438744323395025524759447259426772998449704856552360290352010411214635099493040159399495947734934575170210985058875516679589742397456506445288588429202309197121012470101830793359418876676277148742557499703615779148678028056110193436591290299519712508349080519246440171111580642839901766818878799437711258033091706609252299832275180397435634398735830912389289377653194126215654562451072220316694660214215099362936250907701426060026743198983112249843622435453514983527206928784769546261163074077418592839273399992444693158207388681576567319249070572520203501342252837679731856920713668199436127387489900801230021540406730297234053399331488866008092581545732404972893240614296825697040934557537748628560393662864709272143710175819186682816687980784635607036237430769298735616475335800383692771524751748214438660181502080031253603123611311697145042162390395493267146762806963832556137039863503490242264812780431439087124505994440179964285304635690410607902132176902205841229966288191191028529096273502035450286463065809167078482475837355808746073058019851936966042071863183219719961820659246129546930108176556031967916425191713446755330892053910952135637201863726697653646433848078149349191635035467607364578028633470033071661727162174048043447740476012330063755974923121996822455101571880195804548709303285130159694587758194178106765335904143170577905494687018494232875371344583499605413714970192662139418252072794352994823848304109330309708548686801022513955377892982312148250896695835612354246483662190228449105962183495769521513307145856952003567827464491205419515572201364048443260980231369008112117041977720891897230902861794152816038958620673623889913135369644145046283037963047826591097220626443636024219931992691268122653574305828215911066979934722510992089729056271508528905494010379494899104995026078413883684603299213899182855046714059947215983545225003600358159819895260712590336343512009900420799372801341438321476815703617311244776147970642502302741897984426717850798705821613585974396214408694467637979694504476544340848354592975094497822600730126320398474978392323291887159476606511141842431013833929077005400508394605830132240287561308520431832969953335677428315626106022011563829052160189631041235785913145162727435011628235155272362655159155521792112023995542372747359287294171367374001819974251864152005010269037758886750176886333907451997353183410883071997941758328737178351478678166087725696444621218921764932466645660606378129650324416656845524241810077529338680619370369083152235223313719912367881355743522735947573353655929122094773443910574751800096655361684221781926265104344448711029931448168304349055298326475286494290438225777133805517061017782070872019765247138664108783766678615953437309686554759654665030403276366738228763094374054214626950483711634855307331318928960642753461485762901299922048560825868562181270667640300184536863670416385903175225892811880312424259675819733033542767060144371595772793419398261109482047338357111022718712787856434870347484760755097689016760377000284712522571190339244751199400026814269437440510646269575039809736121832157834682806285725554381700236279806794039407042017017178689451861057024959050723157021630185619531324464985087777196526173462028443612091013334946815383416144567106253030986602325349873497487494516848425578476097223840870703588616064139581077428357911664039397669293290341946324823496187069826016281356106878416225615203846184284856209835602644473203038094283561116931933554293843679723061535316471571195672618773473588421285593718383370635387694645582875006746281321881618835525862050000839936300393329704689886180011432422009166694999193362864772369648964345561265705635736012510249730498696349327373657151436683970037133695543144835449973838601234369579261758163445840118097314238896462740698928917531944577478184312719215334819832629163995700833470876220574113143251128054915406332129081535968829487362234635869217910147864083756270028830728812302231108417168036345483715462232578420269386917013519743721047929152576553878987669177732193627250661679253819046995234398895860949310735339155335313287279247011272977455635262864162495083988824564179985254719104596711654236780685178760602402666434922229203191306142494697821161494255130656671139020507311824525904664156562471795126813328523433922696381124867246763910814256803824429273660286600477181079865813747157575004952619935885716645841322789809991091663927013107405867580314633255207504570552991570899022217224473831286259062289895931430119971400983443536812173516608253524781852456337591025423021860471429785470257844413250363351901881771244465151697589695578228933257674964567767901655169185560596598178195314935605595901905408295826799393030513633211394121350270053972092625802006550989790973126179174760202321124880165497910463785872099629809085199510339960503378978885137205524482617559708252821921641770278451586463784210667542181982245899005039577995329575865371353907180829469032757522712526745460023677502344605723945028267483365560703120540449618413328137958481255048140430361268181918380559091220796966784608859173182540790274970919349888272497985521514781508018624766600257098476685779912871467832663806505326346010415552389865627749780226485812089581958913239376227851515785082571747381052828070436202078893227231348026496817867496680651174825935212260292089027611174372898196980615898805992476960691248972914211033596802055080476051743331601054612151358419658333437718970931952103895876995545688947451804235077850996557109664158624525648519275874413357850656683503536875761643435521644618274751185349777011936960609050194600870445734570165541420038644466247766386615902970136491560065590524601908573385915073706292902683708958916221307873337813087598845975591129096144879065083092681696040101449093417287693295358750657626799030648736313218513650262729162176223229301951410733757084303359071134342754841448687733463717966631392226613894884621571290205551622098395950777407306355624024474886758089253183475188294478018813099175784357005836629409020805407104420511146969136115262792670140768679764489254806323746003475218168047054170884010774780959778306808806151823422190950738723084479320122390193058312124649991188285284590630675611990274385556268774148156628834741139219479017173611678707911973779402842929775847941483135638862057328966695371595322774613746419605771311855942377934197473629640977761102157082534810075782455476380195075347795841825685565610815696916059069235352982779706505267927322428651581074591390826409224821714303544841279433700341662078655434619066708365522902430321334244290091313330614095199314673670779174063373563493991159221440424032429186279830518987022186153152124585960106685262436730258065710768452109359922388103865902190712329703874028942056177469071994352220869817607807796193680832713333437970244359850964389880680211634530236846941907029291042067549250133180385413996778397783052253000192547432012126125988534593610721697337895914196702818499786167844918151615353273340568986238436244708186920681319501653483566219683782802251334711816067060349486334644850296001280417799501669272189301844319212264442532258101974869284760218073718338984867101315841099394437485816882026849587823626384956205383413556579115374887539903120454799530517694724461734558972269961545559530673993220842385874844376935786036359415441332807636160195148794123260911563839947598428834123792022001197266655258577450270659473714082148773513339296733613668809411901840781386714173997087698196453469710761096221405832655336616306566032377818507776487625541221277233700287570811263110633737437641566038005130558091770319962898448565909998493385102481080194821535010344704037421605258619677629470650730698518134082885539033919200478797466203945963239728994516910990234885562209070669005826794148685218694565837000635505658536450399833627123297791130958340458389008655391571578624668483383079581124931843691897949849675510108205778912646363675270956560637168035727524644677640018596904293784753231536974729257500839259514722090786340404562755119745877372107720968278221992640010479486112315111527931329066022311133183083875064762864501923425120530394951344160818895782419408554899324424978580737123706862625138963731138125682889077622603840362836952262299780836769959196540370602456156402749902911607743749051117293043903861512530332801340289768798913010885137851094153797691178214643910469800750382475750965061181158908183592928806302084231179321422907529179039714551582921409827208552930578236161566592718414973384101330069705568571823695510332547274343132363569103242617079461299480946263640902100984991661620129009704683267857797925392683516015488536768252709941521151725759432471408163340119146015972032561891721676117548726139018154183603623747300025418584092621883418372405568197475182412136962350287319124946948946573803948557188341630101017222617015466889784061825944145323986780689993055886418559090006984681734957577218469032596294578107500422150831444698827303138805784666130630136821138153353589487776519180280322614849502883124761461457300485323127466714000298393196703249504326594256662456870340899455615845495189635739889956618473796841290330412842499365830207391860944630719109146491689234138739765410504689282675018562054541973822568396185717526481374004441885624091239993730966596997046178699171563308868124085874806899332468363106123042227080640177421790069991715427093781914125720349935136037484602254446641770009539904031990503645636264069361918285836811513733110476715418691186743541282136628909597037944465998514658362786395033744331068533142356681675047433442581609514734771389049132829786351999473263498433920588654080824765526471702954078062795171515876526137672581804743365622844058036434938146691152983373595848682790232708526305985304138016575136513062703802352220895841160620453686948133969987205520068865950524797830642330873357338932389623836540666007180080176605281231527043499091964219391250322982814891123109856009273312734898274134765844037036051479503059397688187445578491467820001442259988191086746912418547859134512056013754801059380018654960676894582077698860017571945817387854698763107119630299713571573933309528709705933533428152677872871743121110678058000930340451318345295987841660312649060158705468863880338806142167434116974771421025358379323002481603989033083748272392035238606595606976119033548341147846007916467340574023342099124120969793238659026768419382323241031757473869489722256448474750274317582903537289131318181706081621421023943301250532870867090662946940016059960660139252622981481230579119966738735284935217258125191320677012283751148152192085296646256530787040992556234758603380543743663344541398589910853835351578259208520374461974676629173831425310401571120543834367838476082590405216558743826699165462765635966194594086814807517375783164230866213058005601764788692227742700174790903774942665589832142320199557627554135288534902287543739350554676508041429166293407510255426019961620495738027089888326164490839401949574552977771028524367189648213428320724314488252831306965666343188557328684841951743517088339426624608556713331657828294015691046273308104705118810482802758796194031232989924349422873189500437927350260933763206911731012570696620275206479021676101032854229066945999092422957879609338936526916647844415848146877091354473130124086240142056577552074569300285632789285268943672739012969397262803711410806787719718799162177959465314513743718480138979725222788849783423859511508735659870342061440602645948409241104199439523329668584278566446280504756758132184034010226122634558251161419387584778878134568154886170940788068385890842024599110029443715323510965091668839463240600676345315084668299195582577008263496153993453533423285385081697315750533991886076760357490896610242836210581938002366095677207460714846171638666321658401576515976753466907091532708849810553290504771796818164720978524605815604371131582660277358633235558954750656703670096108062418556217329532713291988902244721363017713024015343956252139193418468142739780088784054825756835591092860184597006301829312496452008954661291546585616674415611314234919280868034780891756767023175835716144665853208937141518366633489704988901825968079989365177682984375878900691838539942823253694211060072735775612530089286133934051426947311701729039403229907722608133301659763088757231183923919188337356279541676542364895147650926200127067228169888219329722439422956067216100578503629320604964834159598603500361119829174628978852061129330344632675446815043504524756297284305412227680821444352446214986204494036933990867261562543809349122992382529951855143969952537504731518916874935705812316275343655316783824587742435531481203521068219172701288642321614269819669179475514687572512617417529895965387490705121860975996325104055008471942035962487691866184047903639553843976721336981191850783270029900061842217609634889974281457553822358634210628407919299549312700522870464216406528091388922644891524045155500583504072421621179676563927714317760840943872014999840206826533541261333491403641305872468865338158803492405571985683468078830958390852912760509822089406187158768804586667980606766998425585357331201092407094344927197089480889094054284283498523632901319723191983414330817376586574487898718179534072028382418653346372297576872411595432789639844811636286657936134379533969803127639002392488892832953154010388322160788520357671417818513575221444079422055440261064885837588491203985434539978685444127943329917485293178615352771866159842787328095122987157836307675853432045764962087106414957454587893524390222580513004404790144498263408993518053338544376624938159908539948637783620240566375781860238983723880315922490608976921253298590366552190498985467533690522336184575990699534715936382841655004016751978883778519130184638850140169407038130333570388780600512909933475484580410963590838034748012409924214094553002844431605652332486848501839206633583504633979897376743406927511401168087834709067295693710801446593708324389045623664945888244982004562376612221331824998385419351756485417019326929862387870051333280659261856935621798381696075054127746851006843316845655595855601815022800987050450119136092626192478143130371020057627690255162853706159677374172670332481859067071524011508678667437485206639728861173479735490258143987934409603741237702740013593844727980643290835697421651491071765093408847496483018644840364412084393798683996507741167823011709784142617530305111042972511936181983998393820725895902771082946228760803591221242838805683809871881886306697942789848635798851959977631964409623623989053073527713976501002770354643322069541722707473181495389831378355285543939499337688113122230755051332750863071945969334739052421190807023791731175696177646962217371996174597968773532741135678740461490230901251916911207222968820265928176695526503605176546665611576153866125863421502064092624982136926935653278250959917142956554431312521115281627092313243328935111135728956241371948842380948625480717473290031679132106054956869405697443661221735909179365174437537619265943484824603613486258091579977086119292834692563030890951346917665432182755234149443513346231194101118726229872295461306327836332217752015315049045536068520137529174824873331253823147064530565068291680392559182452319577646623403162728161796001733459884880569947130761292402086122772677494915765775020451925244517240437869541645352097523319341780263859809407556253987166536622454134023090026905669949899309612319830111338176438753221178927270854881161013446460650665592816159989617214989655751068789783081618148308966162582252549252412859326471987414467495736784866904294463659077275752975870424732470767170534344252345223665661678167260859247547219008098946894544311860410845626795250186204868479307010914430233841425058387851783572330489426604991267591919552509489714485530423906554806602154954127245674315258096264300960212261389137367340025514564603385202370799204050606566659033319748028127525200664910190010176583472846403086038404735533509330901643707299545207795407470696617788700064564951025750644885220325006951574537397336667902678900506382271349319148818664159433885790308275013724856034401463042164255510900707041564807156976484892538647580075750009741207389229153801657328221754119410534030747573190952826125797415643402702090413412124661777026900241709373292029294893564467204831371438429664717368902871054594706541061174092204356806886833094542248610419747545890887315649669904568522695818944812186127887003848327276763997572169194838739313232087867806216454654066972110897354721236108197084454939859272011218182462568735645470515663658761085903178890061017518556954065116400182242462742955665616480700364590622163345785969290205974910355797791128903962170046220968609463833648902047284637377246919211609153598270991999365164301352132678833048226336869820760389739769581769341257948314228307750270228209671611325850775643981200858922812761136105244119065527791255110375280009691559452228358917736191709197347726253863123875213871951810839748879424602352479943645668227688336586574307154991636176662142909856935604501628785515050834012908352662390799784545247082334966497556905313296482480723965615603521854086649407716150853288980474227534104334500142685004311191861411256672792455134838722095714148861235378077329560886082001251516474560253266836637641009262378772332037286071184855017520025993531457658037159309273951304045532829800045951712327561248506151970795268879236068691906771662374675944160584959311111287673534607440429207469433562188468309625273350258938344360374504279937553146527669535823115899397538443922121255673625663735480449629927249663627605991500732863306458383459054683325375786475406342333945967832991923445232878722482823392565479949550276030454978259989747213249073294718685775333503097526455222650884955953802857465402814451636985429516220032152732756265214937877298926250197483052131423777873227359203000454748557703581549246248360608042138089405754396399508909766906538078229678344739035869642748474478550765751643455766176325093479502769859596798812567202382444210279360247587458663142044348404324417682523079914933479311198594562100551243164577206241343224078687388019872977142065363302011547188986288723280069425850626677895546364656029174378225113102499967884279667241646888887849897974444630718536600345789151187164077174434631031817241501195636350401124126258713901209310695700423350367353815009421297338532104991418652830072076839475469772080018248473747146930397804702451670115018453982435610740516029716003623844800319819876517198573416790625506240202087541500745027029662822691928987963415330919121802007669125145531441014029566832315549955265315768300106357822404070885194535714475522618366913186434237416775307541721769587909346515243801692679345311345510202879878221684530748990265763758283123522461569290143921720692604717688274592658158911425128428206825837473135480745012849888755446597561641197031649079316606987569906697368550941378841491101642733038969935487255757442396461616833346528079996197671836506238775979571128263466139543817743892826665012254057001429992382862103699551333025513420966359059521500380218655667603859721605846586369718483834704212235157842821503026461881366158283702815483537508430854952019767835634674172029651033074552085785470423790245732261478470881681653226436807216446077347004278132432199713124353330943589642690716486652542870812500120957866598592726800978452403450705806014021649240142189239195984291825346491948654732419505825950014548010285371554473800468138079475636164615097293533237403883154772429666886972451769467294275987302334125955901158698145241851240548566360894452053331287336553897747341188221595011996893653554275236261181074120030874546199017346521938225554074165949922161939282201194685821318450636788137538266415004651893705585166852276497449912038402063465197856908576098045265550795003156887334301145686891502879587082966956148788125751336166980332219037739210270582186913892347788493301807273173939204493550198245012501219270151003702791566794489858583771371239627803108044689751760396734755788137643487481778698396703390478471656600229408531032611043672781689282307679879303515018869135200590240180504353053838706562204024209827947251366246419008986600976045027180381949773025306816653744034566232087097160639860396760698742060719690402243032948032526351345371612546480183604859364306167757204425811079177477709379957806414461389037466937637731620095169086173136446265694847813938693175964561358181837122981371701078319930338698439046378616108850826966449683353979721383192604008219438768821378993296534571885053903299272749857444013267303701099429006315406123943775468639592843688787043810737497095106102961090741869456687125265060050897616200615926638077832376221893761542822214911339455771417256346332564300830906069622823747167821807225770744551420315350222395113840241458867907422367299000788792969695006385371069840379050433082197132475332890431781969927849206086510361368073662144964535598947500476016346527380576535751834081632999126130027682353190073131488259022183218853139375284264247122019070398337375117388073589707972162454391539241422156433517752709697289954277293926933333726837242121211209176649162887184959796344460703665541835763405270470984408190832719075135108248814183019925249856146742451177164364907446952785565972803307292924909015669354994212059913246963923382108495330275924530082027815033643582689027085763841381162658715035660655111832615198868621181077840908178985800283680151754669395034466716362593296931232337893446330605277506644056231595809983177663156320686544250882291328850327479118040136977754316065370925430226903737503312581070941163026625865242747705843607796607626617483289760322002159231927836008413971820074569505170977516993536226091570742583541385098284699300299570629528639641873422504795435138388277117401443065690903251021095379114564411183245872508836736464891975003997617082686372342450534392325870634447989412733440727740105632854611065529734201555750760837912828965002666151275750841610400975992837475227382936850464516994494525964349330932092678183220583117820355232918034437816855773798376757024669731935358177751093150839452966145261180329867509742343307121838306932585313861739142125106043662627956090566509058337613453380978139967663144404090531368269462619538763065568737547177204817085069928272662699410432025061347142891848828414737745206150817170442217090514087983051673994524100800142876885009598206987383551583908752455054503422153215688569243331407052486720624379197971155620070849607434654551810325331576319155652530122377953205444731627896885251375564840151362850170652645711762106489940459195490142244674122170511403588537085156904469001139549252840830640690987663190094863178394763465799311114569487833687412809433884978200879499859182274138333552628760447621562904359758824361305372971491315366095440371212971877626700518625228847478457801755920262564601793263872279137509676054873598985793269836349989839308466319970483885669320227597106017061953977371904843801729787961208540288856892598083300419297458249657232501467782288146800020205104331901085211795446185997330003261856137010790563381747574339688302819054325204181001543829437237064013045558849924104590399268014920834581662538206534539945993002952906687871305019848392722845396951530171900880392468940009255899828772172318493408663790161834330965393705515726727002461516376144369628617342332284887000152501190687014679975102303809033728426674457160481783249823987116222065797231390017531784823428969037801626577356323524517853804018170160111560417598520013792292235522908468717844653434814370457807276150715665937091660921516723750608015233965631518465366037124710904790880798197092550862364194214209916375884980029669990489363503686516439143371554046103073229148526577630072475387586390678479351425817307551174365055935160256650251359720534329746060432630124756738041431937213278982519298599161463443663286462828708392666687232106963351263021518078020292524439326707525477026920870467922994696703159508799799947706259923837874981231919158341382988952736233055887226508974055937117229638080292869446452892413771011296332798708486347341767485368156565639623359092726661448593098906882696657702987281045091183088991694917057732783851038975460733714934122067183483454977875406634686883752944061124474301386542493419528741394475910857017997594462074171191432579281316541049376784429689040395600148980626038635773137624375218507728411097120459209492121444861859462673386725151877603112693264233788163125353125331816450971491391411286106821193128870418514048316795380616242223409247097981394530776559638172029883158836606091783573820317091678014554739738345503299238834217978345259364599749845596707679435290676097132269449291346541291356037089445558242363181948320652840203909624758311048266538504614942850861296337112691757837923890515768257535554239924502138785909225768042788891223213333788192031014800827674823650793132278582709908270372963817191731421990447457593343872077442520958308403359220921023719723531264424822349014222849466276320185404850236595506623892173489572998636093483755866611587703525378122294317202627002488604822013260339161122748295732422076515238672915402142283873753637157074752015340889816785421067361693143549286686908025578994446949838522411192477409072995708145582953372223947159653072859087016598991778955428255224483889130222646294578320666389471028091212616252931831144154372688536242871382869862071599000856141526549646223544819385172049494963986598369036042910164310756178230735581837529388085827546194304512509628789380961398547415007015195871031526536719952049538201817598784501268997254583942083095577390751147280138445573741665683356626586674200320983844577215627890469868728788588583453404378923246914253991768548447122934546568777014565228399997544554472231223421458942349849403451423084221901068956581290930829496789630166046031033048624804773477218766219234230186599507501117425176754088065367495934435578639898687938979535027566072666317707781951540452959679224569218953410625467399168104680025677554971088060691344316981128132754425459874529194782667813782124003100710607458178160383900922332924199653430154140173133137748403141693089702259780212266146350862002521638647206864532238869086925464313126862628123042460284522568402928020477327261821100534520604317494722508956046204710943697071561906996989955552350678398187095323520568311142726315623851535923264488509857101332437767105534899216442167870281756406926631653906192171616187333363693128775779492379864069355660413550199879064592857307743797435139959094279642328478084860780285845422056755806217688318850893670797053415840426722967630588804576898120854962693741552633588327496338464964128343685649534785384182342003547511353443125670485612478033926918054779517162670287118922298140051282806295004953756635351922137140587891354393819802639829882440178365128286495179781860096088914544023810033163745532554413777752426672538290709413533404981131403680483015132773499983167493563719953188798681725876582772487122971068482746384279598501128185724892513244805872968222119134385572867194001621474788258512647868201915789796740257129401736907003382141804789694611450063857921587537006125164650619036021117062900663471438289355114653577864152766032257920172699823414281738655718644847506610367935674700024208648157680301017268744871325925788734566640938821106701866455938571137443141767283069555365196753850003386869539131105613599956653340062018089124815635911968230007683153251294330634942484238536299414716070989735517531905011187651733857522603054220330281134926447472679452649701814656215033500429419166907171302741152072028438556370689297302128164450368538457726722636674281351163638055024958521178736883950483720109270583037220430570442645099724697801880292834233855783643439829694422588961304564951590249592400741011127985781792703405315191521449659861667174117554904360071818009206089548703623444274677788341248477139250767316783802605488214350455400763817854986580109804466607079606344170572715499628969523274449863150399876017662790477427119105637175557538247027397166150352983262147177997084491912339873443452523049512035888419688819116883564895726325712285217970681053919086638751902364071008159499838753631828694835703376512598351810179987954449236791695152550228328422239691348603385219496169037422528492788339865780219753265390060914204329665765165565646523790873680935914506170964123101562399963724204653684998621950164483316538964757210158219910140454345849554466209303817112391536020668118863662832894679882733685371542040966160492260306371481621453335581512098267926710185823066134129312819284104882934702398084652345839167509799023974106228154487910999431431445368296966241948597404889062827667630649976605924336661323853394111823183986657784608330959434374935245512979076668124380138351737952309476853897352836752594401959501064939188677632211476097345366245081486755434017122355954496185469040105624543026261756737830572414270744429747569224940415586567224888651602315671594026507742897300196631626548428756768914579226447317783348075082706023882873005176949329628270108601958557631524344217046578522544175666927250669399357933110792544784472150998328930328717660048820101325209026815911724515929134668689063991667793565091742408526308050420953592095058395130760609035226816592994084283492249411940293257355842540978775384676001197869238167030748162153312545346540476644397332150617307068485564316655454303936502534006115006834583523452521857310667258374495804313285637919946991655669691672739689167526880663816950051330170982634254123664437489520337894625619768182205195779612785057809815356494553512079345743750032691729049753178277938681075581507675175336452869628782699327965622745359189513508114455350427355906868539636324204325788313886433654788139765259824956748077259852261821032791420963041320128056127096178795559321579412335859603422006058840115678758564498978400728926411649247103528275800602737572790733406085850143950158718062227275058387784570962973650120282395832747768373311402676515347847909672765690954171293199321658035970969036809844776534051343512078747579954924163126332657637501952680125666890528326815861444020973215913984087366029823706117994625402311818257816092951220010063333775300617234597805493818285710743968208692767817717433961058349518726417369283491654520258960112436827334084286273865854490749102212728892297940943075078926541463662881668886282174335139013028515011030454616687368125095351026347937503854055682223692726288004640315132349980683106730959781130251793543103816434151635623623810090959192178588636437126014793640798967442399505534340015584272499447886112714125035057344301075826671345443219522240804912055287752066067350060026953822606211683310555312019352954836798854158093125188276016606227108766136087256474614452757004004485478044384527442544111525520213490198580211416886244688406496785539548575777397237629728488765679410159750831945228173098364481156429255259066503697519588018926808086390510344148067617116420879547753688721652666297151491580162080861163856038091925944377060609767611919100205282212289026785089378878024759882946380755328638910045938921095752659285881272329860327006392706992488437797720578929224288676560417653176633361910773513635075773992429165319598960031715341485203294862092203965815839911628011495707895971937170099200030884366332624111185717229244751153525592794683145314418194917699273337509948763835484547170097591929600012914041010771039271245338211448975708124655535798963798062622615562435062606884825136411858862344802036346725206207889983308522185408464642054976088792112623605216097172067412671487030850021368850036025927171537177884484741313844743444803648048550602464339485488430377715888431422783700762813727389087816273205261202027603410720849503866146797526946711799627317080417030685966900139795146515370641156073229773379658002327461304328633114401235541338319590959555063647036875888101975064529983064089508986804203042770043238581310341172519038284919237276226277371451581866492940614521039479869175711738841785057682861014970908515418109478100194991423765746943045598942639094902671805555264279079842305277994871707731185452824676051930389644321272563222893536502944658245604799463006691635152487382400097373779738881087723137735805656721702946731267925276089551577643040913171242839800000026985677822909059706553935808780736298738871539328788110313158901874680425523101396041810327140917897042261159073462631209563751264071285085437964082449897411242194694717416241976737062168276196340704660572274506075545065627917924527017109517543275486035508076319255239265337036130532420076826986243020734029136646141905323668948511791647445020932569091524281187661464562481555871545032827015700451793604437675144346927222934274267068817668277250254313683165264159128840116713586128280120474772783134324118910683012404814494125551136959765425428400564188013242547519371349894957997912734974886592788529920380720361349480957297215860306738702112704048149942138911882126580178056074096881568915160919089266537775169700289577088747380299503639582549508466442633518325198373035959243146633390809623629108943685695325472096491375555062396907069076740727462501949263221080817782436494354848531408666807777076401483847429978113769140919070768019558094996776388948979383164892549655912800062296093488586978710593997508985832804479326605999572079293459255000859064735564692378778008417162085648565994504287471304386338413293026787466710688093112132979494707181637382355818330471360539864207099799731424710476011032711635888974781427895926800930404017666436902256844309973492315279266506079433233486381037101868945337551088033729402427691838908667449945550910747598960138115264491876967843929139711722015931265719359206934274421715857778855210500032964709991262775404536430679068315974020708260168744716645919796350413226731780481751304114674806942011106723313087307172543185826705005726829375557254930836566489006572713197255885387777555479932483339889207388437171478333632303126232645340494387503245026451205144458773726062262956420442082719195071962709402916988401849552337474994786270558943753028448355734749432931246459008208160017249861025875251948149481584644646662910651268810273434735792391605740159739997763559565414321265324264502001371469690048045632609910401503414702674719546710155571366938068127863841366404161801962188429194227131249150414278142447972117263966830874065692001706350984857838867050976288701033210087762602980124777157592906643053934945705445438151976027240908883034811806582514077134832355390000484452744080465236931984947273757534522895876431664253557633766753650836483536931906148135721781691273227201063653554851372695728274767122411218881564123253584509189339081321335477309286210923531000557496845594387462240105308162753576465807735349208904152011077559227916185279325580540141879107141898134072731783940557992479553255441047608052363997307613327028246491911915647857308107820427962350360551410816487820670940263793486123432810675536090737014969718398447046853139160467494978512734317221337723659572153695622163979504872722003694473717944511514164624545096628033612095139038304840989026581761752317969901561247562539174079127387305669443049778687594889759497341956250449738748150087426009166283622798883866893417470116569059599395841798466493131729732657700785231796358068926699607434679797702306055068449982507946055339383312943751389428681816725314522240008954712930459487953245627638475999671466164728621979238075306313047899456558672944584363139395153294447757312529395141084377145751550095440581756516659863025391484842656012766371190765167615023369644825897589201599049243721015481865806467586486027152205547566981901894953829070614190878851022786719159993087483453007603564352016716836517231005227422537112158806780042823161293752378190723095652158546046414128718985158044069717405364551953813937318600041413892750857822458916948848508151063575918263241520919812675175286419982019579792901038656877123577224291889568564360652452787280782544426678235046243688431562764329119806433971041153279102585913067475628896664040998847633941891946834319762071495073086438494186940462612467077660162934950461988645224947883615244038018145529804307751634459531987338280405227968286266004648479771194147388989204678586381649812322755610054979710587314971349924717159677661196833044453504566823320467687122294445189147356642703201081385116683808476661251025165349105444024595853803559286879752439009617365108134370126861745524962083775575166661015490672595079732670032693071651112330280209357378020154145637625262665349057220841959994626195433401932986844092720635924191636679476836681761844632027050046522618255156785950297348912599544416786146719772971749081860903962349044004345257051918431402970993166762100339851906822842234823405179926684036723005734526645334872240304889440620758581017350671937064497204958120940874356932600136349325211741007470438443698976931368611315838456361658226253562048004381491785149573711228765512829889725812117564989694689945909850090266935968364262429156108193630839614910417781752450224435983832927231324516193463420018201237131728656593152058065372422025257661403449383393904626396118763425242512733944405123652081729197910337858046197714251314781836724702020407759026756083409789194186086633366638871669112906152320031166005320906909864891304162552696268669441577530136805791605650075963628430827603008060456748319686627657647733794945424455623958130240403788989002387825254480662406121666259032319768823823688569665382278893863817774134186192060771546265666736142138666027064752228056735397924159827829129078969693984214994023213909361493367146146513799694531514681243852248692518630053888679556550541699555188261793876984233137638878611581359825179755149052538904623818273923709615115275852101795823524573754209567966696365851014394741414875753145550231976367302330073305156878610009413701646240994148043203717780624933221639387614357148343902901780530166494693413489762495155574745507728718662150223077769058744900521264187712119876529768041930653390266602582690825441777120633442932623054702823319896417213703136648643873751976325088569137779123458752535512734901370141199091948306406826651570393980979297480146743042514844524440653689522836946649952893682260325544475531693035912949179057339492625709204086470460933799899418484744497827690013163141640071115554520687447613463091836061740659352827148290299053037617818477727348718466981282585624700484875079708362959899069311968480407817565861524335260955451624890926204554635046498209569853273641294567896533149145192475127494141313528705016836029030449483644858322458407018950538861724013295249071021477614178998931476136967499084907677493701369258977681466696054741481262643412134336716806990961623937415930458618665613994913323650658589976821076281028085639997439749080728269729973466935987089028929129509950778402159115465932886260315995703100908992237077768640020312345948130401193260681220746066450163989168040049327766074064626450179762218283703628506852288764090619367587211891771818085780374435141369744093528292280808048210329991297163742858575940082424601209922908899271434163695580442747354313626000525618665970513468551399006267804595223788210040910098187400391717940045607361454044653048727966747683204160456347029784305293166674020008817269002074732294405517968733131271106904892004368090218435446856193096011533040281982816056019174854573359715998863255294093141497546269860234808774870413645247965146768721612114703180632885640283252479983110106283461394768236819637845084927859551605450306334794850443378513360459750701698373907081263111758065700316692928032418892638456394341991887361270350556988195479166598882034414559273033598646993696203685860333133307446467265445251793309209228034018928130149515853714408148924980298383309689447215457606369199630468397313826553942006095059185938484190387834949106806201952750300991933113277104599319380690727522322860744939677680834511522670936042585999611604913526334267676074760734680633891661893278736277138428882763730396171062685842520402660570582311505681258363373130291467538065580663608194013758167598197970317714811083653932653305260969178463889902032158378707725799118114255356290324299763542545451781926361366963446293903903945875891774214120042961153746755242062756775856189353267120764700015173808505217563937939330934012764856293374979675224088830614527786739585862736485764695663924685308710158311424194344230019721356788771915946089327555228195589856479376656940534774888342814855612067759491730277699705275168584840039366713271617668688549026786134015626165342468418923205450280990830332230020480936592525306276524438247563951939901175228467869368373358013271073324350116868412709232755484274711587380462930999342835921038816895931929101839942534708407141827371660655407204120427742073796681343209745710785254923365810527641757854801603887161969967067153277530809124181476076672135698749333055550494891954111648457724324907935535752749059647952001154022586665970573895602124867706526553996068428634507827175874005597565153674984806685351870437466663649343747304646730950453784338267076948631208295974696959056100057133344522293003633904524355874269272772287980450528535714348786356091842611696900452296003096960453821386323835270035238640683220709813602625724096444378342054573554112955847194414258539302970323576771218811452987601022602454340095758374875790661184476966705723901593515983629357819204897959160665469705856555193413255908156002926418984239727777886564448379787675698566546920517185619357962011591733353978609649072149654011318921943797014698598803103913268604799123843390302800514542633043799541902823368810698491762405329162226427115091532765907449260565129743142247760623524063339423818038696993949772218923393888539581127892598245105851146826595510764329507154018224549969919985254709430865050935601961985890002680976499356907079496916884436731648621007035351795311695075883271532285570333228217945667276364410863378010489054686198552684466522170639929161346841394867086758331165335275698956697713380641240711220582768024979261113069827981944684899388272679518443843090901917445285757719893240965368508548813006865073110419251449161704901418463762372565041996961495793578231673410148446379773286383499657078168401940484078632941992898846843143757750161923695381453549145597410052766418137096128228357646447462667449444130000525408609385713776338659342410925319495478075799053706512692846287930370621510707311017174306956081080693997540610448107174673229492884089746916694786960017719512395372126759519594403089048088247059745814131136497009716257771769795507889800143435633231607735036696897337738948757386713385542254738660470637048219720050751733339090545856589791693259970055747776232690038014495234625476719021600075985349059344714186645011393836637355878387513058815608858718780797443154497774079039066584221334475112154802674595548498600560019401470585886835390450993259677648377219832196641425626018787916320908523858587025415575999890799459452950587028289374629139172947159039751582151051929998021083786739634304862817725079334882079376867394440762369640813317750842733616336334682954897653496505596434646000330586849235430086703243263062429766236591329431974282504692117289885900222481630206519487449319784300792272045173907053449358860208930502985372585765270035252969067170052364803225584706708006024343372560662422638144818468503266554464538902850822889555100327711312030690648524024343017047314427681641117758267525248568092231351656146531314892803590130344256147966695862451024878834688849594336955079951423981863540331168973854624968138408183758704594369680060246447784540453751967469730288506038518764059503883293235878558410290414823785268089014299382612320982560676984573310105326778327264905852554164216915060817733101634698666013830013262175146730219527704483727829421258391924372798540997107451837683771841263132232011413764077186511849850956721648252052127902326081529674336879884138077941026098001624485701151382423628466232410488840670622986962670253202313211489703841699002660070931034526208440831440088516650025044872707927846487008017645274068320716982416729005013894525930873572406658384903778310888410508401872934394822250181004891784801374562478583512913560601343754505577567500020805853710893784230853933635109454789750124672800670660437226388993378089939776769445756503422436204213055291345904424238165363805615682579159255129990665572090046010820268892038680193984795138650145702519108593680857268740646455656704732804919227696984273885869700392678864588119540266332706740529022031772767014982197974290752413582882171687044913330163161726745457656466540160630837678042566483209766203922961123181036136444268777333127136161268818233807451123218345154969475787660905579409154989204595477747976609591704823040060819302941923179087273268799866663011474353062545041063637537375617401607050954637695417175715595719647040825218383408396882430313496401601037192655927711912313924944952225653699941292786823034239438839509574327681942933166839471502666196188455506632110364558782161901991721133623011820590797072880699042655516308904427043717471576570325603824841930340074711637433613824156603423065404620815074357463525357040814489879568024283741685326642247748613795207907593232529572092308809587827423978475115088920521874218291045081020081969226852236476017246884202554000017640927008209007791437180940922066139931745768154385036545395342135165778366369088076256070475229518339078414725580193170179144803553623070622233361643571445654177734476534553093771630716614452989791575778613373863120704088226584410495511702000248070928461201610279772578537343641250684163380449960234308237407130608600021158060617777747669639601042745110800294642677874541865654187715940243793021760498626962571567008688278284784633771904005583782195245663965439860005144506477422429124381504340033441996805897519312395243827712668145898316222438944125464695023030083070532419998801887399818924339314275876284439701852623329922411114980336656405016355502599568645769226491707876736297041417780336688883297429093263575292903430445715815572785546594665540368168523595313052792629087443492923036216455677132103977988092820042423368434497779739768490951248396213995482948348055064801265563083904384694658245936040695245271235149376995351807310737746500742672351734741379344989620365070579109082554750399304398434819345755570818293929283517843717813704125496143647213250641343133474539942189095241281739649385132979656866395840532859229119673549227843236437504191022733555257828303358150972562713203413871155238784239216035339388528135318205977037984176929179922894192125510591335618593567061481750154698776720193311367594681971621637612043787828050213103298627771618491284053938844600994806394486976864542258865982046234250107751033959555447927990388279200676026521010216353893684748228482287039318171260051802351955057354683991430935075993241106699298314976102479161214637125368710948776676262414381329771145446249679811424516688252209457633048228403325009193353475684459351377991823216181908476122722532234565463106606629699933602689206264506345627261394343646612366540615026947579642108335208865592233548984935373201864453484501422717151206854334226738137524431689029395547480784958072542313084080122663988884389871057454181668855987199166287729032390243844810845913986089836668454773107047119504037939536414164197645398018238935820822733973269869594104013824059174221576838591079157586570580809207212665003826944949681787693231191137108767083295713700189518910846343318595180159721104873149047841532358121246423977361807653004064187240847009391073853453939182739334362384652105232009189639135728312072816352337831543025863260966963873554637824132049735707165202615820863865412150366101023303034820379772747840709972784267215871810524811047498874097749654038220497101775889549241594834787530943292400652427547708810724710807353744046651834255995119370166383394643435137846629382341581374387461292498748352210243863453903281346436197200496232549211104709644318954054750586196161557973092055260620000881451091931249377290672460902733189286092387386063947586563935142546429880305419522361794328104948465810829778705061137181944509457562653370025997579914647994548514133480679934674381639517116473404866739796052722137465897842065484644648745934045994841733252722313847783259125217879921407325051910994536816557072412696198845356002596666236869955284613605942565514364887664908211429455444826308317478289912957336839158264879416450192958679483963930977309872583165426137477611602410427204610271267720723299074815778054907302573352892156579995425437908377962433638019266573583620387150798086090344376090091729710378796999613578777692729234993169051287347614307058331332594734779339125469907074829828393165498295104616671707800657997238021141140801982693465532075631241465736775802728800827631522708485381883540543319831467995167146466124977451383976508122384564056985453860960089722311675873352079575667984146564352070503514625473168097389500133262457150983121384390677426391209479925978556414481263761637321649473385022519766292910464231432315966044357143311178822606510042934320235072783047914621574905249039677266176668379412181935765040001770344564241744831072065053083244873624676298097112045379795465839910498458248770877854370058063399461375905566186928038693784759093940243553557657994598397900623363261078910107826567447902059887571651241182776402456267781697056577117887481493177387727483750368346489976018805055578843672082874831967843562522521418594713259065318430278684970149918743031880068426908197110409082707322812834807650731388616338180467521364165556018255002644950786577669393245342833377101687207966758647250018380076818681938296319156813038286663768601679007238063302173952562320943361265284965690264753674012130181353249045423971775750185713599129865388188010562003112588148793978945182050422834374775507088071169931726012380829262603523945424152707766824474182048225434047813842469445310133050223925242608269933336153029082495020641342394526562936361156236959707080190907194040870152902600403177884570375999717821004982872356596436696462504560910396987309235387202840545240768019160784132595938494581988448522865079887158977895839363601938066989135369834117813529027245522316865165610535781584529921812684759560546739760903426642046949784583052970716565733589928988937504679331780853718333235422659772068945218993929302647669033390987908106843097139807124434304403349562080384734449260918540585273439791261722850663249457615158024709242734298911899188194015396235763185193215182831855639259545956001452679978211807961302557959618809375246861348383288786647259998514426420524378468045326473298244204741503301949448023279610674177404668811865688761268825168596113448461962218969573409825787361937253191363142024241196626411109337669334632816021803419153941469345674050380069858628250608486722550576534448593347947324014497934420139409641197764638089630739294085740350752550823017674273101475186475994509601165070791724442953603601528636023920032014067201780508889797007451848864455024869251658249541100705224059954377681228839179488793314782822937463298880604536972749585448125114681223332990384894107252454016671929994317270859124002670441795870935206001845342674269324574768927802192739531755939622375610390539415523039192096468447937656969625962473607878885444804864195464976184067509094171016733175038563596414671142361514613569568344637272057800872122350902545633853269491982202725076272002109070270708734452075959239817176674666171528360800264079092766756529558474332753769323534708244758703070971192022615934194159066222143546126423658813295552190923590365111581968468725971422382769962548847841693925133920807947528695719840761831213356929697242302543139969782904671584966000800614009514712580588097367962611642059309572751739522298155540208714104487857331000180671731184174434892286498416075212815557776308596256070332692325450854512941248347602325484379875894675314024673147319895646515359143988073041518360690457785547773209992014626088589661977161840614545260335440352150612727405311302704395091322543261086717502995401865733817978208120567187874818774393093516550341902093453670865628398541014067521969407976595680916907937498976421690872053097090798668172122819956281263314753665496824332371147252300292067436019749549011042087100998768649676104347836872613467583336308568483599655336656319724984514969266960759293421142422964693428912261190146461233950960972353406209393098183810843726385743080298719122885507632442779471503770387976445264173876692167009487467951580381648300490450929611433494437446992361273074212912853714451333939432020875109063424861220845629558615328297619228905778426339180866972893796467703092836743737424869753412714728822669936053247391656480697566800826375762203572254749330956012682239495337148937636248351528969554400159243444525971393852988288605681623727423097099184228918537850413708761935926761912379460506189692422909069183395215716697531777566155439789299064874740285098245431367568114456501160018592048983253581232775457121535634497268615322803435551318910856656006114939218480371216735725347290492403809149453286040931480024394795382563909711892660816842020958526346509669760115732771884065573125134836272916260594392324865502178530964465326246451151535394463795594030846541177210868429361219403286498894249361270772489321830101920482138326318086309047395931271042784305629001745257740753672326459917817752533882105001214955922544432664248094384022243612882346915166964889347723136787586822418123555076860486653206629472218879394557922506134478110702179101425841505465567859615597882195733186178412365269971623137610194480227262749916027100388389253033968911384613623227729206916601589115361368522664476064624712026068637594038962036035193705546655421229786577083037865281888295311748411523897413077506678077609322190215834753260767463203601127893003076000533947927156252299897545735957065269450241906312012503378038182466877737072873366434292260453506675743829727546701370281373264797758509844899713837012072309953289916688168488168918278929792066101700249210411960957378855696089022639535881440303772478680713405436927275661868994960052898823912536818570612253527888868414049898532919210107894600074099040439460691736566302067990527607856568702272570963012161814683306491385939807328782963394856581628205551017936764198577057500077240828160735803139130949164886754058135860680187458460460577549586235473753990317271170279186954291965811386594358631636640337136784020296105438301373472055872650698235948526312980342919516523170982703344009358566456050089868623308962767291244131121494104930862763914385443678536297546409074604950865909945153472757460843197678333308952268536230735765194228919892522280799429549422279353202596986377274616364075228787093347781821430867491974786259091713740172782309977012176403576128782928638428676125795386787272998293122968601055613165583338310704899140972901951494668829385166854321027823662267063795892089932842093281534735340998791670679102604651027398694379982144806726438405016599784773452933038579145338160160431628817844447923850354986677795442575589751101830769546782749268482897648864425466057772110007810765630436826826666612774094339061707565895539753617696923494997339730446157524261355886440021922670742872569144856709903419180254893932719612819253144195408966871734303552917182002160672231120399703760292200633330104917591139084138491218067186053021329059825917743299836278793434931029099481022635065354666080000742159196501434461621407910322038444924830746989923191455220759888768313131552043174899970733036762556650839838810269576688960434092167463049998889661348680129973894333771024891191408574699235645787750351222054769072937592712737667417254231037981110565783456963831800769623639705172504338092917684806518750799780813236142799160983379178315545160829883440156661378109118270421909224684794301744961154139038194339432092759209423263378160376026872863878220740550928207485571838198977485611266584148598045515649348182075221311379434716814116009882182699904553326034041570088600638497103514345457361914055819522437916723490038932244960479496198801803313301605856505473981086117259489631583373204347555266341818574039842015226144640057477581264615458685909345987036295471264232824273372309601728932902890649058754491552239116521698780046147412421832928914283877758339200753078895875837149636388106500693426019994895014154225527404190955024395046337189638175239953134878022334659321453811148692750650952117623238327140349975857389881777058968104079133415336258395723894158742668869195267513563231149219309734081529618111225630719771360046879779114800801155182301624160626333754835448111789197855642456342466728804371089018062213891739921130434054248698669102678052212785782386551617955245776661128262627325377664230213124690703213264862566404848514457411862975730085706963415149538915631564793695632596363449086370862664442013340577813249033823325772390619820093649405824830501200884341021837894944877851346370164442646701142653767611098642227827744803767720418984516526522244654161812681642863263863751742723081430355368189828392925701111666594165168622039505626406829828516261775813058261294331731989791015769824925125984833251739893869468351307957565501577454072124692508691045841822389835092233701174324593718754648028626352755439279398444427650131153595840006810662090660204435735368614388385242267357341699166994390126915160127808302907382575566948499647202630363311880713734807196050698089464832143884675444696097463454312492044605287660799307313937031387836484083177499997504803261625440415301410075069893555777058999025354918114763551895561944608682038959848110573862661223327063601016213088318038822595581589625968985335062197408478329555883360392038284515050601966175975229337204412973809581952513568424776163939480976203145918463844876457423910456603008853580426011839996967111859420876535940365328961626442075877442474289829151523642120289259068106928546856794772166901033721302066424540154627456776639989354118925258255650568193273174445696211553474437105184242047629125467229993667589043390503691841831438635645637192821508693721716659297649152748122712585893128418190881553663787264532810116675704758504624396335730600432774940993961462803596707200445396975942520619273085379381039388959824912798864596032357211463667863658942847154640915852235706389226461617782106300896910299170986863263896670434976975473275234599443656269397428777159212522298702308251125386356262176461444838931621313823973753310207749488413210272968927603534160239847386047246322600300027639564706555989778384412622572754993696834939135541119076385268248096622039865533923088006719867778198518533875052455480425505486721023307379077604540261363404189093610333839248641332839054341140482911804985014354269288944189341773575711215008430951291170191486366438779761844415281233150171054765264375514107611723612588434836109678917439264347317837302692403499120455315631830460515019904339777505770405105088022661873471440588681535351011667057102296515898539035334781318671262884212935117440501462356135065041505191383384111494863881134665832589698281433248776024578089166058853924040908347181139384626099808500274796955128514116949292469558190448663197903458468917050738902299820924928500736283816789622523311119212498310011864797970830681976503887329037064514644696641774651866003819113148996286320538980915543046743352052475525556613207027904954584895917186944267222148227045699160361950402645745548946906885269352771286914694421745325762410366745027010121298736395040988649421385162701849477743246034911513167881534513881478782178896713890182763307560228937993020734120144491747971783951789317920528696932461081453306372776269292792744478491989374263535434762164256731216718158987926025470642364124433765345479020322894109469628785389570606818390378115878430778604036920309608932331048272162878803214153557568830998878273958306302347820849386099022774637300690066392978366686728169665195688357422616658684513040614744052494296005967481969558907378136289953760393712009345138266770319453846464570684242492200052933077622820178633747607779056246174955297420720180475424854379417475285889943752152060825816740051397472811963195934113766003122393855413842328035681485614622162451842626043004453732472230009645306988360970434312202490724620832417045660088689864806388491200841428749673451217463354853948496634490499844887146195133236129437214357569115839764657630494049629222640908500602740856523075591670126717450656933432386436918125355120872662243686978134248944032284767566912605025180030160736105584662607786175540883787605923917211845230513208736163727799243993645992732954455221065822903687243734050804217986027718559187305988222382586373766102917876230658309709361420055152445337296670733313938247009844692228167490400524582295578969774905051894522104179206240906586519362214464418770088789375451736372981894801175372815105643310560499410345404731163121042903143006726155052393125897860014857854718186257419432609641372948720253990810210121926710080072050008337365389150445395590878546410458086845927361228459312836611579380135961405200307232627352362508591393605282032520300662137461300912634300689937613707875389187115535683605892475165188064081166073532856754024822132699126890300666453363074083745325316847486542973622708700614637461029064504140573361066211670948352591932109078026372860303522352045560488778106741662841344559495567329842188085750970316143757938415786633080214503826677042060021984349163299429811209430257465300944692990349961040838828170206083264620708105538104543951980296408730447363702888552950541659760552518772371767104901175746924973326308992979737167066930254001482676521832348041245969442811614782405327564908541233587030276617084505533224262912058381448266584830134601726842348130749902365561151949154239893791317640745042225593012891090651160186045707292778472035259184068707591369271617408312698935862340743153991963769478619131260729310929386455634867785329100595943539407520728436091251891309971618694111127529882600593731073403850818735533100251088977760183379138754536025715534188840785063943458470591472403319872626524826919526491628404821229540861238896480308999553417312364361492900353859144869896812516170211220912731625518909179089939697870507271031905366544383249955289073000056415690202777356886556313277344828730840250954486362308425454803153944476420142143125205479651851805444330306349059498175288196899398044859777088506505900407828747782317384566677230176565283612604792434667034548306380780069240928037067700741809594325944396307628156043365907469748822070286087513239268865092539655251082868873581330402756044427788836416600296004912526291849135901781352245301373255620106960044734592109161352691264889976232743113050466514835033290746399136750555570486450638715703441674622494887018127864996346206212153011738724448301079921060944844718481506875099838107561079331800397686886859828865866214471176098547020690527653601747670173888913068623077392001080977218967961908907671401301899307677720173067959492730087628622420714134012912432019051444378808880566282250399483320216315800753757930802117289701099233320786390991575724059498122918630740488674663651700597440541061648859906085023772068064195275353737767560310615876723892804979940453857915592653983451692541270308139813162956218235070604132349485971546598566932350040696284926450579143431049286090814184757537744523542334529641425781799602829844220148852339821054890711155643750769922380692645047551064970104277435137521472179688200799433106805481875290234931083568957612204179959185544781146847413554843055034499859500559168670795936687955564815009681300265210964432858269131618038327416661296683645437002592976913409415691303977195882730262290165618977813666036481382776068704586697767218499812549524128017836299214785497096620636969802477584275495852481644981117140526198736212706310856529004974985604635228904384111491503294125154207452354271186064348362228159611017814388706721557957118987632105647650119020602084368949878811332997375546795860104323726078547139809496619642017230582472193980666332346411343802898331172073751305980099608568825377420710356028755431610232447180615342704433748030071397201916466033202472685261384628337073884861985532128568955860783492967880783037731079270389075112759358002434564448945180263085837295160217813173592062938346193380414225152984880016468196638785798526950065159169798826444766056273204165824849693563744592971430959678930136483074865686681200126265543159306577334236019384389091435131805791683878668926999616054474319837950154526873098958687515573146976361965751794122736949944036517293414304148865359613875405084920525896814407185420829888242721095411159540805779518902632330522008471979466633433683822048181066903513341842749798624728187782283934714828574166437388043728109749476415857406902391909208027505493778461790128939719127617283828883751023096140354746753511899415103064846942850096729217836995781327667770763952125572654429485141669104912890086292231903978117552766211485539373234536800578258818366603276864485801546148625960122042094241180874184604129076495522546618293385136862037832134766868323800101691840005235953798792640691866567540933179815385674471254579487581087461398019891865658702475184771413942066099002730023088690887359512302246009718316422077309149387723029941323377776750155409025958915151336839975005794854327591741263189500986845819418714474147142793199983932069722421929918992042685613631552767770646460132653146999717852283291933762537111030738697887360835057822672593060969754905729028876204534525439913488516451710563944595507493135081888540667604505223664289067852223850874905882971669228157367193359579566652804456278154272183263586847740311188790002756681498880192618323556599141965046167383611952427982548526442185429765941810953449483843703115120883053028798144548192410046687411819347251073066198511624516448573769851417168993946410461818144276521510496641419332310168816003105678012889591677751661388327674311259036542036099224250639480900692169154689861538435924554158093382482825947923619758278886437571088717170711493126872204572671738615962820561404241610322912153273242153196601906225606350012592848147438852730426815287353956438898480927167897729732538388855839633699849250342907434665908598355033249969557672898294677748589920394317212785097935483996526829325525787031756688808596754752215807122557770168345556080871532072236514065570436237772941824755203718896276155347290492780510148282654801673987361751551932976786010061752465114729879178057928097580944600297920038857097201630238999399095026180575867923204471966715752049765680909295256520367339029328551081337248355908331082465099023387592438612642416649523752469513574284452753888148275892241745760953452990662573033722714701773906218064978286992651972569608817673958140068403996310145723351368979831905912827862421153544571150694149656041106659016985025187587966787692061345161211180664583493596674627071776887924128383355185505119426654712807911678314897295337998309727780940583914328538795909910392366902951322880759884455609930180261909330839194724694621306960164098646682920170259568821373167543840095707180400338175336588903998074369357806296060024394707817501177350812967530046157596202748914275521714228739791215425617796059677742937297954229674008814990891319419015031728032730383958770715300631520175241934305513204391380448554451903061578688246648054864206537087759865409577321889582162887928748475817797703784981247879193879606595113903117288336873895838460000892831709394329342793965133013206277594865048714093751712438513442614117607718599073998464612022789293629775960776236273203162175793503309846438921652568938216654930915219837676272070751882982453769477992065130401996106184900618154812543132523378094060826452816983587598133068956032808666324340814276039292291591523090995383346782910214735394099368676521501629141960960984878746581678409522407467851375754575028770399363996694747570052564145989432516403545493738211484347981081060422231751128358857687020576700927045869086175560995402838621255935534920268587962041354335530891458914751811109978838567482800132669233033972707605665047734970632886070140472769790668430215954129091480284759243645522911318832397888851784320245807501264995769027477795545884031170660565171163182912772889633996180915308776895893153429996188473323837089015007064441955328684244430144311606465457897295581290274535487989028523231324144952327661146577526229507603706941985453455152037000976997725919860961668051437218820602423170144145740968517248694825959207435234621055281452461298948981577202737531386906309285976198096759441968998703312792668399187848343325959761792524535362650062295467736528243872268722960411778382354773859136469089061251741397525850962905746955551434914824755013318328904975008828295351858216711726693328709271381961966363226304777814593029814859621566666903358122152443143104568284836312894670233240770312900710702730863284335819624575411119245758521829892453828787341498033843857201246622758087557237943466356446782502069930246349423249059936436571753948082343853003826461195664312807052796275400819549948055677976290406787143701712661295003206641229709918608658806294507171653174229315227888822853645421166298815972881955846815768696955212924047361013062592668342400962172565431435220110987956741617548184962863126212575857103899356422387793132555184740997332322649707950207367407016736976131329763884477639261423195273953144144863279730752103550778789159240020743794896802896496092855618554635953694134668401487123650941742610481222649458293048272581416000362190052755174846179036305810807747537812980797842080860991921989901422420571131732740570854674309698842411608401329534238605347723263707583701239477412342091127962200042181948420671562437687754107986892192035906441047381306829050093654653063433733580321119139535090699236363600056334970534530352357979318065046865020990468891987006898032727020492493165265994754080565126786288164018540311608279381524179980400811151746310158186648321024423156214877556719156602475401298456241377001874604168872543175104484943818695032581800527746376784547536556127257686030494732042760407577424835030723363130843809736497056513107281682481163261374404276512434360908006206961052503403785164141051467596499746359514301685763191701647132258937880803822762343836078791370971623330997429788542453335954065481375705897978169099507041292656823400075150928425174322081997693942890533419673375153000148283718355436060940474822950751671668328379578039735518858004830231393838535076560176514807061753329703588130875449831541327672701070064128852135119029480052412189064442184162742564338519084646868893823283584799769364549609011830688287188165400976278693239079837375837474629975549693835140187659787209357569996528449585372671779297095142613977075109524228315769980212825886230392529169810108783284739872882780179029814375619348213373301301488215839486408830726819376245450227499574679584613328998347993384703161233228790029288825689356105868618500244467361178765406848291450540102087057370225769944597852480494476391091584120501127004085483701783871005832132744309448666604076027034321108111443797338236513011456915770181533425761991063257732927029915750037927143746580966672404721668050019219000567329516799270957482542867123943390889032781777199014757035198369438093668171930397708922012970054013476177611519774455879461370450570991661930496488445082813083221543298078324557291227491651228616423435423061707179057898125257759311507880765308243946794653145380310464570552148954350126802798426198105820554468339518563598963596661772106762373070508457327833537816802949492553218627518195224895168621619298555941196144591059814648238497817819810696021620202862796897120555065530316927433098677909705858991526596518360600741968728360542364234644972434785292364375904415216407500324544987695084083727297355707722278348927694502058989045380739443760443557991861615633959071507671497111665653962128410509496730083164972210438822611456444514756053353158452770251122323610055790449964900946522930490299027053483635719040094636809637582430304167437147531573676625151716551338022955610756009160396036936568196037955513877190320318508031961693649622788635213056443004523003787994424379288928966037833465084968115379665915270684048177762788345781014325192986674385968613375042686670707306016732843317860196368008518438776907914924942218089125608290994133058340425649868227707288054107354075364278582881331419234169954831698843013672797262751397458517974145234904259544586897813033425660761312282348069927854745051556658773424356027841807995371967268194399009099711866261645892253963509360403711884154720480202223574083490057451119156506031345430972056430776050637953617517105424568670098181465506562434178374608742919241460203192015453632491318903119813236275573223959934489658040185304199250266684574265118912347082392869347130007718258552526374864677404349208261572426578708803899223155683094513428271500959215282899341241677822972151022397234368025587656983589597900568896907924698807245662784436069420099907849319213547103548001953260069039173782075050110855679696929465704858928298616617483185268752563203265760861102295579800795486057573385118767082296602221829539028552683715723009269015254401625794279510205222332327895078370522260807877356883932276038720613292029800787112308148211406657589196164723702611414596895749569410604665949914226384395640970962726196561489813400422674307982161665245820921365636659260089188269073559513035141626564562228193582610306115658072898137429898395516970970159057290016904223279031819813927118859495310177116845507302825782557380509679320755032241608567757955751496241518357268778254607750136850995733210415966866608481517138348738713809016565564033157799911520257767165134035958439907120757426371388849794827448927686193465181987962996834438321839593314440810742005360706492350672182280950792712642734833350474860598695200706092500192193751350263351801379708125484154855761475343159179601585957020065370624734486304765037402581711276490399233410755834309478424227185196693328670760750329004284789376375056245000365883316614281519647686331674777549579273197375058771198523661952027442938877997412468268469815526326922648610548108029390552608671138339183589853553494742759294061871354447618713121476085479678065046076325256457414141613414743707684231447838769923046767862378948433328896971299628622510252258806076295077217463770941722605681635689587551403433802764932492829456007846909669613774564391969418602535869282460775782264242330337342376860267415005865205609107439818208788729777939675491047489758390949188610973192944622653731492128846676915281633259772127102196775687726473565103797740849669256543231313004933816038002792920337092853570524767564695502509522893750528866582964946351699687247117216854153145274391478328476586858247398002300923113998418702382140325689891457446356296176706773712866811930809674636763977607193391884970746112260793722144444833146335665704773699496460924035266699704870795455783835195150130323695059222890018084580772138253838803450613104492293501740045270414097393389609571521695946938171860658447476990865646033868846770480784240682127881849567261380844025622859795810865574693715339994131872622264018374930930250442835531539738768590187211574889543121213960784411037834813875441816990915179957595839144815466973623744764815202799496530344808475667523743897068688447559941500969029602393403024474568287138359227767680953427234316006216314598278957997755390075404771967353489325570478990235707139933859632862218206385131536214437947603820784063796067653682690522127312030740710071033702806856469021340480922480651113549808407983502152765862745824275601105846244392080314593497289332466631119320248447990698068332054687922548654681042804437324535288797237566757321220561510121287228487871157497002988341204046501698386646413106428312324267270287775797007573066218776115971233954319785706402584945876156736098606822179955992087148416050720562240110039308936255296177458695743406236687563705215926499334269159047596960143951032494264559067124513761571262410520074112880908697105004356827295865298534731051073498979176432075494570619287434364104560109107315354772615470596211466942322057771396289150078309903966226909924559612152941089658505752355306989124610070290338084436825845050520981103380571927950900677207268229391404716525214958044767336395985005607782214842110931590501562786504910282046430476889991355303597207281415165096057962228039273862132030980731973911257099740377417341356592883621152981967980397253670456518508158767837365957738895334017320922103502604073266039290828568529508683838197927465723053281790229303229193488160245814548934938292879993427750802283150136806072229116105794883303607757180331248754081870284850668722731685051346619938280516719128639075347911577373754096741779126582282623339659193428515368930566160579075942181472589068059650008200483238220240154321028561991333914217525225211155923364499230999744891804391814195958160811691744245685791758344794756724925042592263052090861284501110566769729463612723664010812689442935612301029716804011011473216925856148858057311407147164527253380093165155980463590030467571055235840340097770578986764539412863874397688233339617287779043803182892969244730720639298222753325739726779789562800030927405576191544851862749320267744295179619387437053105664594203611533237173963345910906204441428193332523464542340585721709903135945768042377460247432171748358431951144371474373467882331190355510789325782198416434452571883251905906249674846336120756850533049645856687360182982510864172715002208475511624849695109498308583021093900282452081814895693742729312579802234991319245925712974306137469275363097477780376141451992880732814077770879600656504293957270687324948362323518228386464633350502230627523528331559290440843452757066214254154922341314438914928523979793746462224164792945656092956406927012589772290326790536557486020800986125641683209210363200214417101887143257045283420074189551343425089523788459698421601443111706595060475849356827277338639602720247352978970341620972231415178294509745127979817108867734266369900156309553317793749463705944017614248953192327569498157630195058595325357655012809880277878255199124892931013886048776420795624987725436979108177403841268177965560724244723868728102202854495250587706755696265745690015863048624845785075814372456958304153927591544251642111735541961116736469728371783777623369947577053146601388020157082734147778501168790704570909397538287590107243538543235752110892698770909549088341919376927014519018311135214221704571474714254221366677253729921016201339441826709887022529478027679013643372159861317994986503937489294362089053661139079581003557474551577853460198707085340894174220479412829445418302355539311607060183440269038259279573036056176604432837435657961378098274160264089346313691180231159469567035674959618726964535448124827266431833287107735813939779549365910882666958363081105400642248258793613504748611208252079320768456237155794033607371114124110096929516060449560158249921610089230873110494530374829694410210390450248117699146067365167725966123787245147401357477099644051269674162389466649924719460271449448941737207116111914108920384790703667686458199679524040256912995284038347224640743149641449729434175756122726253093498213597707059303694447744972706809708228929753116700100100396486744642265053585629512112788879919511003381837090712814991495711142585954050822422164048032085796545738102515204308196548966366003139598768392201832204278963676622614735805045907463702167628812151391284163794685905304209975099164524889655753127746054097298344581102410817572321683735950640262597490093414783553381009252772116962194418108266124858475425754626570412877902699700530695157866241996386468055089612826042548827288892039738275268030778352190375266002427127164033612918680969451922599751918295005939102037038241135384195690456168318339261380556423282624427540728198092102799416048792838181930524008384680292970984637917002040886390375787783973455024514328570110374643828203061512546625600683383414451966683633236445360464000901379169583952987025728376540336629546625872874978985000314612701964704561774134080904847481770880515284051861489510564937103522810881271278616842760956939200414786620117728629159208228714838768222180519627730518239980355228263200575255380177491976262889959847699071328578701722635903722087011575870366979892594268982829404406091760388984773058307036193961996731424098036191787725248771707181559595569211465142891967775025265690831047980239924455235372546906523676076025413066001128596529842517191881485740050216905668972063686302858499710337637912500611295849365525615536223489563089915194597070190892894516287239122804212775698829860004618282645348596823055988050163060411564417496089656278808503731804197813240221179920893310156997489170829695432828970679132326063652289385870050661888182893109253506869915540232291683242461057247466971905371562556287172297565372179322633105091730283571759310193460868796014005799552280913780963386813675262208544099298552434428714408271942014308317152030475524429101436344597116839749795989388880101853265348245761074650834016924826939250748334948094575112262753818064314584838042970430489639079090514951931435253125779422046931782529122025331097678773638725291676255806624096458741527668586271490559537004281290729319654240797616015650701827135493810830252546139146373532478381526894241631002061693603508495520930718154846137088598629404565243380303910741129873759318637659301636712294167271568264549248436350605216450476563447230302331735474718096768376366959611042620543871120577509715539193226487834944382521158449511928619602936699910092512363757761541000739546496290433317901022169157775372057303437345685562570324478126078914316474741506702237585053238723155362653968354644129718441143412167384053041466994899217032441151819034670765161183011729876149722284251136240569276413448002528089346966855803234636106271925136709541362719295949614561088742564724333114082448075090228395889895451846162455413996459835302958546520397128395496307349617398669230365720758752033383022712934295024080045767384471218747352688766731874550822506859370911360955459439593173958296958393862200426715771321054763400003257868689702955125885100686468408091877187891014897586731481181879069634572243518378123099103475473265363036279419284372905105593618202806521572637870558000119386799917500215907346857137478920791391014853569764931630431131392798539057785199713488191103931212181882722927093185152535530641855504846443042656664548288367818972241694075491486638769241535611972776412265505355474512932557663293733772548747571037495359272340017101305473856896596233973248498747076876708333184365316339501111020899402573267147017584243509696894199085195442270945947940125166590702130029346591470744450718557501873715795288858593063090220603393146735038150553692565612962708898188618834490163092321426468862570383934355178302619152733897397283960054971340813266760868110335027379648795608501277494700000936716562537526800484067568424625982284239374561421089031558343297572980820782026813771223402847845981657288598005150515079468513596780947778385158698250938306622816715184028370035269388748213524315268365785454317592885903636111958750331969190497304953442170191792142811377853188710270722929011010680384769097476481215139039959379500769266647050715182748408563651613246722346183957482862178768898272711383501343174531119555267759478795108858987514591940224945517019121623010353778901901599254471765923887384036148077970509928300081472158194732656093126754660446648184051582998359940865847464992014403603498601281118972690908843067354422145791738946885623817320572926770245071849987397049748238274948697098223585983482190533860156926280055536578298753933950086935958263321190110542689178272636019541450741544599436141299613633233776864047139769441909957785706315017866455543268637247394890999433755779804701221643213436811349058239594401616782063869859263555770630603904444804236609890336242847638789140108131616192365353451575252898391381550247404410035634085896380294312593367878154446846477461023223838398879107798799463917236882727435868445608484847775741242669040665072812963283829194389176115744518776101725310128205564497253860283496363063662727639170333371512193045143471948795521268044642157192197877763551815957468872663673756273474257308030937336246181433615334078817147867859218007848840790490626965678204537211134962437299114890227063646903860270836948620449396039599339713093422768622371228234972585941361429164905180913784287785061347715455433544902713527651704003489664308732088095501845046580612057759557339404749043290305352018137810647402669851592351354026183954747871676740846287079102198801365650313910562910801792378845890936322773482539473128243150577864291659921839290041947562428122394702386601257396040455507812785504533935376377262827786512823097740257280996443474007185628031768049619566829592515359267957398457300397001096386089738145265741983975882096277586616859030016557309095174348826098727144648307644472207241179107457648465890894809315194444421187329671927122029039698842422485465605698487347026076246180578688753564941043938579880474406732665221300662566375352629296769224113862488522347958766508919335515319230403103575413804434331238699177254559109649031215158677939396031911640248634671131626535119520916282707403690521275016984394186094425416376135344541994045868612508205530548089553045453464851632075309588226902733629043076405386743819826755558277299769757402307157065674069614234610404187446860416877743412929934904985561086704728405267256420530214547584503871396177948273592597784795047989758835977117498146010758632968055382946639954876395828012305079196123711986952520624115376695824258052734449996227860793880128134168888831899625368317062179611773241030343361405508007985648876116218810143275400531097425393631341062814196511927096892301636345444894152078170540837971963403005164578851758795787306475646441706034541949599967722995715414062645971930634074186021070981388319353723835014008229046833705291196605719318537761117889372670763517666397118246909123377712934558832182478845367074349857918238037504597612580162706952756984869258170370984433175179512553245807966726257954067975146355009493783764586269300443614615558306183477659221260538822032743532882064218833227585140357701248398278706691186557618589739347141743335227185019316321273600137896799534590215506437031358557440662691086459978016351740024854889888607443119347727948871506993918718247483904211588382841013479981202815234259373026576757597546963697667776201088226956335774074577852428326669086551706325445797791524410663459835045421316847278969217572213579438361246100832683343675113075109571497145269894147221843043259309766302159625886994238681405280591444430454731288362973717065951924502107279036239056695690027341108007723182300611323761687932985341520412901084695933287007484006937611030554045141016596272229573192013852130556374370530425598179080128889302015331360485381018537156849615834539566656347516867816303942433721306676737223024995875149700369842863451961122102944504965210822186864452952302068672917882613337167163898066271809281305437637843585779194488451800769382981508050218437061631484412254415417930739434838652050469848798396584014804180004672038291325867102599819090813506046387240418619560973789353724288804273822835207104383703269110515687164813294495037464172474948638259434640174413735661728188802619297197974476443967550836681487635259236884114607778967662623122294214181802480130324013941766475153641133021480411327836459935739757389622411645602295229582233765671687336909480718256652460580769521575677381732216929408824520604105356701500366057031110629750112020975118853414764309010203122550420796086715490986914649303734904566927005418883119123859554416299922014497439753017867407073046299946372418523226841633685896323994229824560399009925866986764275559428947613390358967840217233386494031178032907453921847488513791070357171224755152759119412428932040593762352543342808105218596216589849533525461226895898599008327949906978148935290243386857528744953455873609744760678390458401686684317275186889805140370310311224934355558982294089718116158905588843576610026259267424650051793724723042120173153530675452003505543212241274133293778198813387862737347539177590397621187281466971094194268190027964153802359474234616500266064795359586412605748105647407091376162903975709810124345957171563613972998527350474258338005592120117057658212998450304735709040262293023950866242905034699913636737492084214539539969162576344764895976243421876896089800868651726606474161499285426917640651413057620160876959206809560951693593274848795087054304419754367296656866156077966372563755701543473535465434375201635201697515678439701419826543660686303190978528163705918580937464022657082697257764951384821324453437275331607810857650793069421405957936900394048655432874535075496888961713168114879711684782691575992751391685447551233683095384676286729888957865493292031357822625124663072864252560290963478091925816013764680639090860834613482715149820253348315699371992580354100685837314743351906780352231418397753140958860005253209673997874716686515916448164283540719175817744030569552909873144866693994651718537931546280249277426677633664682616824073245660439870988525988896177636441442314368400923737274300616648877936466563490923197681768639229710620812469068013949365695810864710875480830208135215912564907874849426681901631248484789376679245475094176221205782252979096205445264850100857599353197473028923896735233678187644486454912088076804807037760773113461951046720279037381072280914122393908870737525924887544096997171173335497734744687416166674523083712609038577053342826500081446256080544208865499680427947795824439878231933514761382482815470141398171915901842284430544839957527287171430078223799729229648925171370090285246411861368741423522291584665695277420790819256150686574803104323687993796397110757191894280751362265343788581122102941599585510576334191673258420873853102709787446287538367269080081767309263601738258916073102778007031663132869898091829339247239350810616877975355313982424435219742385991032700403949844201879184023169195983473375434637427758696140649565136955409338097175401736455109011022560584389593432699559812299239883623899203967784502633724989837668093497577180829220082959945508542407188248148592072782847181075310995398229342224843886295849348468610267876105721183516405928263547401008837335057897644316422214831207941423498830305671180181347882552569705243147735396655325451578163192362365632731695005745739854596991015812883103754129975558314976802092694722827549816528731991205683616050906673280546300728253283547312553473184822103556977241723902614170705928907944764588242832141277874497781201120056430607845439168050698275875153302075354865029121987803771424182968696714715009224429363977502546663682566477589002714219980956471387820741319719953920793733726571771685021926841565806393169720055334682502707711009182590623239854319643017147976828230486826264893410113169671918466606413934394352961451097999175241849582451568421212291252998857691048022420513032698982790571664156210267491957172319223418357550483624338168870882196255687651738286400954264445507667187445096405246478792610293786444992565750881918413175491508399274896865542249440118217165421330380086923230061165068244878504668139802457405403983099964355609065250835030736388441636981829174545390312463269316471663682674661299298786616017126752999244537411668746236926180404742221733135639290750406612374163957668022651371277835879765787818944724666978823398800233403117469678859032034403607562598648997481538814423627965613595319641422739752204537435678835659829438069509012646629945299192820894564765608056378951507895373812581926741724211630302063574409507920759262940046502283101720842500095014926679547479377593889042904708689119460736679594298301809394768797988222901098274085521986972858289939063985899147627494022217540331314737877953912192593882348723077477975121767733370024031461468050390486040755500437191013538467707007520128637874959633393670300034862831757696848899051638801117721914410049119192222672236626272603116898089111985253401603332278257860095041400253244045756558679280115027680212759345031089604373556065306532859892364537566520088005485199377077727294117062817419061913981336346951526915612539931352875371887402279707108673260634345610980031811515326355202641604804365159076128056041716849528144171556934928868637190467479018429240425053881222935725934546642681052949609801782928544861949850957555683480881203799251742874963666642096462603305585748646693717412127317379869278129307456690533789678703462576553369974146870876473541673670434063346978293017428851570122312621805168506623613915441002818842612026791841493771823341719054071481402323353303859997851279598342423898475163573052145769748311224686571107942859671446781234429501214394933215720428391873887365364485123554350314237422704241554709801993324736756088315320362405553735146897740785659991709683148867638446144154223971526276694234174402064151577690735294727517084526450643834817715781559554658724345678512617134056411038142725838951716851134631915370199436157088667787128100272774997953127238735331129950189979831967544292381984953470582800950282712402529149153701737113667951949588211500892761660558564912796164852106592547774571880237378179105275951718533510542636830357599846268154646267573798194208082053350160431139483875419823122612053860806749005114099758069401467388627259183185635970676206406709121069315725437709953774949972348845503684182079063684091179910012812441396664390360520432758826663375745005178188043966843767571457597046513723107553858205761113819549974450356277764545727600125371854897907932790615832376402667478241623916741650263939789416493102570159956622470375188227679112200896967155978635427710962371760703924355498467434012575152660275486874435300300947558932529382645831838699411750476353927931111766422102207067401004018263058501235886653853796904259477268578630706601532125232950778654360857352504365068804628542603426955154559566192210594698061931905572799702661477175556172222719256835828119804049239773526424191676959540427916844007236207141945284334205834305250540163550940565138574713169517004750736415833993509122467761451617071931328223644883515638193403057080066853899260373202362860045158203517228877106610084703751370201660680894452220431204130600844373832153567351267490523153375419989448976544821818082999957624403238644920619659878580989986419389836435730470522068849755071374725946211101554884359144826742193550033926570656127743486717109950953085561842664225568637260772156997621591805115318043471803957640247008366536986090587833485516933681769476282987611311093203997345669872152597654902365305606902151121051365079338642861841929255386860710523503153122934212174263233836036172330768261683596730134326870507376724514163687126061574816777318226485250894004023242980516288879366770640106750124121639609541055189855218661950888137227400503703831152321223944566726350516996351226135529654774458710922272079639446465450242804725156550897637238866400989089211945064281703717986397807016924235624224795292842384598866405880244008205939361952923348247919113259579260523730678236905845346129963237483629214951174233997917133142690880848279880562759709025796362651659916709552785388854692979556018876994510816291756022980062885883255543528478639126326994677771971234092782039151534226010796963220438869381213780334998443543052091356913317370543020842550620207079417207519513027882325067966813365059874067380526452607879360263679883798737687449778985264616993519763253956285164505218402431543652626571091003890561055940353998822088508686588965461087816762047185601796827280531010837064703111196829418698420554415696334092386427085259518329073713737787635530549580449907888629748427016129441940445779103910930710141397298715477469705747935891630980619838729697177762665763545116379138538307837061516792048010684281996117419430900351008971832098295997954789007682607479515386296304563201904785667910214946748010928502671400111096159415792949559812847886494344890356178427607814413777642146337789053036477411135951240061857150039124490512514928258496347919915244406240927695393100611042401969735403547975106728917723125447816752630670564671250338947949917965059974164404149898222769636762615345431472313250506051295099365276634961557610838745702389047733658836852697019233866560757301470686860753671975764356253078589499378628995980248767428078893205487283467355829709811118958830863790437144184347829066215870422941704239294825441073468814520465638360388804809939580027255443426403494712499881783031031696908644652544283192515960341622368258770187026606560509402573706905568031658215709581521485248149683555626097684247306863631303738525583273295466422490441224160485915534004966222628842670693537022826632998236355574129979613547223327730342139049351773087263475872509336304779686587978009045024322111424723719507970150166429080453984029632219893433440236882699854083541301423724851770234723477168436190662930864883512505476373270054746450305727657600651870343368191760476841353525027058275308702743831708398882153817019245708093529237510359293371845168014256721235785186603543132951923049269308714873172532164185194908930608087480796429254524616263036429464935769757304749507792137692202287187769770427647607622554519822198915613415767292991467677889367413278305645920039999532280471171986901867905891796039869174443969963587906707154147712667729315424151783312659044178233723715464138772641511009935458464515330027798240551517864685093942206557803765639070449359474961354881641295646454460835933320479312238269360918251392026005151846730724442182739656437050837963029611862436117985409343539535638639496759955207379814617317118607939811681793464026706026383741267908943153655815323790832510071496141819417949654938924851671451312109801046106409382689927409013488187164340358552179019946012949826930007688446703848199063499741156437254312602296418515191739261578499556333796087714360292474247215558676986771492550152962934101209375785058567025292644355562846170647563470585760805031305649496190705760840271783684054339780955870264763258787515473625400701141165544526139372570301250567178760485394593433949510269295803394794366633430735451151538176036071712103380330815553038375951980438756599451521236908218528309534295091997337633711789727872767830879718967150147117879337664366517212827797656972041995845251086200471762837192589185215135482403513363307173022363263281024133478769319063069305763392519011135909005290757503305487928962264549782927445426262082849996645959264408908377393004966033666267112291019912632111261240099738303935827184358104105312661592215106572271915966786672747655241216555814452549600310155469043421782136601616716054895840120602344543941304153184935169433859815509851735515996260679713595434856084155665768929832968889086836860788370161135782374803005743759196553563595306684393249047025897420030955239990205939937974826907330972244484632913334369947378176088968366266519889897452422112666797708578339950308289631778686623066733859038983710823604154246138409437198279028576595275809391852126284999428002666568920195093865541663206420376710494845112302577077999554419804816506104562158893269371358982177238530876493600515992693074580536021674687561697539524444407180414617739033151525183564150462743234327618647744672717414950638175711055784077854996569296517680541337520141756852364676493795186564334636861504324047673118519514794678502129796974755195831337191956905340866588893980025953771616789761827681096722306107415035483418134357351430295791341228856269777058767785409060249755512164712633761386883287434629566486213279908936394943044977507234159140278316982949182581989155926778615765571533284761686861075630416925187725409766181757889635721694483313814570118250319790535307268013187027140902946029816839457996058875849369937550120155237977271024151040242515193879783547621190862962431983384977792502058993507367258298626948045300229512167562103768522882381654017822923688458796370422209230787624360637935563877718606506774743847303528250845176138422917453580100887456811188962122465866509932545254993752403886575464052656545505191823090736218960384677160576882011257370958243805599650297426012613788307192485963950357711554703862327736291345939970734073914039837912885883823519210314138367627356796016286544518046220797506979881929056721814513426554096924459669260176351674381987074339955095290181760504479776622507508297251138672172722724195166889518932466486464758441845171406584156548050491145654909321141932466018881863350722817017602356529650618466839988491867686865635536402804153687224809276531391795324348243511589741036972784560929771760776823711602656559218645865915685791555968543094449433359665466398919818365444700443318448409206835220178786395482071780361757391019617601925186190470707913653329970765778081222286330443810784501497174895570767711534381842635726356448390758960459312738383733593842602773063570773212133100945812853691605606969614192584764619510877249073539712325977834902013275314155709684277798907653493901093780502314277182985733482468937668084521765337958820815197432512320217125150428407020364480386521140168014135210543672623555701728422753681465850792168859612887488361672482355671249735232538882745659184239410780555492068863849702369199736112554207533636833595922578693867451997379162899364081688696078728154947324734488541212913730418468646059864569544249915062240829878274807652625984362503124517990713137891086270876958444853365344254559330014271330279880659568550323203779453969303699246581496429788107562186141542378211419633355044016566671774902647289998378761614626207886857524630568437350268975129743936754485223695571144678762015302091858125815483059799163390850017345285965057952482157476820525606042404534051743533528842902459199473135852775887973420935608443714152452892740289838280676768889609392222553198271999867009081562472736088406830819007648900155073273264642653157447203736349453856829174228121619596439221548361882361661410028451430592085691348812256005889790972080508964799670195832065274855008201706011504546956269877596652832898776792415035865215841027796585021534739123226143936592462636259904415409596256078059453927572367525031657195528755079652670534586379508893336884458793117756316922523415754466689788003980163905512861476121452188322800355038981437514157298231902263908522722547232222872525517572987823280125795139565861002086052724870097678212020502439099131456509250622578122718331813485921098186032194645574145008180226705087739961692341614429597164525425647994650961797036456237565999918403059100518615491343053317680696634974363932377884520109097577803527782712171900774794612135158866528055883790514697756075378486483282005681152079201343424033766569627923243164785171349308033603131960690463770562740221911337314284140353114646520930972199359035269162076172449642395501688368330965943519202642046932067561155826955119551425960849308027807973372278455794410306072301705145482345724402202274711713210124454177945465598947706249548212788732090858230744809274521339923960656350991125452956734466197584805129918900242008379448114359314390069506980682825084566942229995269612706990274794072960315823089539513552246496288657553758915959927935603667225940978271388297260348567539453645981060309817554079772962021540120278064869916379584450713156674937942650072527579658001692618451118429720649508954144800921843126848907009001939054017462150268366096706627114563566223952028353268459458583443885690682459707668669861464900196894758633446044730187250539748292177789178565804493764419833492442870027232187708490077412710799540921067837040048942847911915438498470189721511678394303189894589915739236186419580041308318557307259708897004033653125167577192472382063424677809778727384141855330012522602258340460211949411430380515649959820685929564667225633225050177693198976480906880899541600588969085538343145232753303244931172492013760165700470699388067771769699444645693156046414805467947647719155517272096849339717661598794717911895726793782568605889650917850333489943563107993235026564631295873565192102103623128348831421945929592204468109130269535324778261638358292939217886650377084746214292366278667957725526532216364831931180816359189038668493960017199846708323729514772869668721239272415135079589791017752643528306274620665521857879048883658574426295993803036341054040946727426828140464111918553097276971567386546483850899471797579040499195735958922406824006447719732085636765039998057500586584266698460747048230066059236451317824769636982055042369003686180270057260792707388269653950765509215129550251876438660928694387648003535980299107753634876015872525585751114822047401659366674341379555158542788177247517633344567616781445493373315510598829674393968710740678400014588052469459496015373813278165697197898176477744216823351462344404006612043700706550666061911290002954951261842673370821634320824539105795619172056360875739370649396340650347570229942741942523335418828016803850527717962884185803924658915515984635189659689342427889173270764869146530684847115219618949060507012847979100449615195106735413320476805419191177038553397485348662330851179753024884975852335760964677280713001623335094368176804828630815601151562996861939033539671888871962534560643410287380120996211011615125056601281321749510189480139763646564489250323252719043429554160823564445295666390317139451561479213990230737658824907305500445892090670831040528728998198833230438759188391262389536615718440601769759986963664331553128436307815491783194159735634961450693357800271167788161103528731288414315875308431313954436391523599324436361959407241636038975176059574289984220947156286927474595485331152336312746376961448187798932823964737095843668829716369849780895248348384225800212423056082229572312459872778699499173333318237470792009965723053877173090657166137612398176704457918938184556860666515670790933884913028381134370012241557930627090702670254990300707418276177091481858993502776787854104376703517744322077756271683874000821401349607306265910696486062253407819436994978134712612928100054406367963227233195527572217357986332241990491814795888594459156098270140124310574913258948520802139173234798767748951067421226539680387963835432292006149306161073987887626223387000354770753220230703158506331265317448687831505747383185998338372808269141802899154338947326125416252739220888487767987014987352003495686448190038542929123248452995188540154846245819334734983499679640930088374506001746592635619450847519593563595010436449257977349030112218425537663793282043655559372608808994053316023713673942225355387064643703426913214680737398516065355942065594038284422726063692355844168925260388502427150516067124802204349802360367053630959510377503079172144694971374167199733610108717040792120249718229987500392269288042019853032443048861915851404575480273785124839084776326012667879281719623180346015131940214911662917993979460975244229953502937784398726406922806398380382450834118593068497640340354058519926594621303829370542507387922758336782978232643759628612902647268849812369213438395216370818378816246219183003777243235688923736362956386923693180177261263461058823474464716968778523411417753354445641399320768399547366103240653895503653221102513320138347469314659841145566843531662055127790486316048725166645198391730599482684750352483578264179547129768637689866510657053729431878129068650913425693071604774110359329594098946120344426823587467464051335581831875747207527238747926044769386312399554439158641730339696220122725542093457091127491134525127731630072576506461255844147433784830582504492845044932425315813532272364450986162001633813080465729488829760345784504057035879793879399983836527257384633084389005837506625979436681183973821883274060357742759560644248144833549881310410322030676906581262528058092617924081875022404806116623696086128573876128718019136695345791748226976815248808386749375442093036458043796353119737795018968311270495457168849478859967218228018955111736168293122597699845659526144037156918268531084605924844152349799563576596487567395604496756876554875013459238822247406358418319291165371257639253978968242245057107220867256725690632379652903727191311475180722890338852946506442602869618323365346086509308602534892808139578403472386244703970842137010425464829258423863313572365291045567775429111307489019403496280709379278910595448128148113324133683224344173426108454786342002718181170879673133169729678447146385598888232353311691037552533540789381672529571129590058159649015740526346617474534493784646352635830404406601897840022412927342553115164967428141135828724854206812446847170153366887484319226908721323384835474565584826870971549997806166815629594946806454628485923176731192824633055459534477496231970148612373950261104731567292864002054560730092847340540094952390238450454103458019325765656337414062408542039647443448868581149242147473211812644769634407134461609160904418971199636663083038596831425128436099418150780826134851147863602707615822538615114519091454086833542675439468837375394337877183934738242538730772923010468120785602473842862340558797521904047567266486344733898115944438910487398932424215855988813689931778555067547779175065339406379393084818861717252532313239597331701354774302642129705740932032851527827728455450906513244832456771436812033983972209548586818620488471705942286283218671041042524080576043220968205988617501415346659864418289812556140685685551667130006249991403302476485553003802198837343808997340901736902685631792078205263947400720042791094693743198469561538654554663294812818123400633858299020286620286804292648421108556317980564281635774383396227680251137271072388390844585531891356140122221814300919222424350500362130542552139167437408841172150708307806819885848675577605837291735008199629732896893885079356372313564662250066396769696930651438323394094297188652619705825650222021403571859349369377339612857101843360651256844457530167829879874403771255926217719640087549297244938748315107911645940709980367745508212014146123395913500921416223443310379090817572752054819748808435312326148796787678454680088593487773854225414712218538691964312109815390940039685385045013909253310094612019205358158912559309800042327427520534409302651634133171170325717728904777408158364213911458840854776069961225421903887432443969399323110127291763160265108729994308101857886032485420818276063476121473810488519980969839398825789186367496233751680084889776795160247638074071463298298861483200387775790049424520930998698671746331221858504339512300871053016276748382248437594494761432655749240564549444208903163415401204301206636014714302929275415434409551268842819932617607382325406668762898542140667669775623359970317774380510963856840292951089508411237336980146139422466143026390990312606310131668468547337810640453302650723819839773370284207220775414326374713205518318428638430282640134646127840477169206357726169411824719768998975001481062803729112514787973031367575380884687712529570416790658581995533046020147134048790568067174005362825795415563335901974004044681686412799860950815928700406252250560230022300979487326636579536101904897933530063566804241822853716440191579243641569920824839225940575513934260833607922911637505031338741525537874870851462910190350135198127297585193133039321092054746130190345596182694729751626345789837758214511941489723933320643350330808716992851335420228484860541452442124704086414232703127015587988168548832886287295432188855170658865811021145290772842833815509038486186876054357830205243683064790819394675211761587413730270862100582399884489653876317327789324721667679660639430788681151675327141159479546832370575796542653295157822266436221944653530506696615058606666898433664327512171363776536017657366069146899598827782536012021575741106299481415047153416214573679889982723658809311905220986164946168794541810370312548239676493073362114365218591970516860852762187174679420717754832725843194220425155243361807695848192811980343204569472169889036625310541699678200800922282758273965744099404471417734278679171073143757963188571819645974767672736927760994124069815918094745659436694866224549333073606636402419188487961590575013258155005947664860004896643460191400555812758913440950133490342237282674925907178944577993563519393129044823032607475925211393697895432894705894066484833835838948366406381883857882465510489878535004208098138283630750395693298186273122737458634330004615074986201692446467843680049561690907739852760838388677479204427500258941103368909414621648739084615341619453619888287001090151079604392542698664154360113059882858096496526331701985395621596867097958735070803984314429904950029542106477096314980487176094171144756846308712570873969617105782594962948976825910990675736736114000902772049719868374498773434887735641870919824715732966140353724729134318484161537753643800354826453547821793391117809118547075452118055094208824058707962866760013680462616861370532928490706544180778068723351270809052921891421899782171263288224611456042809952949395664386716177758917820248984676233505814461430941311173300783255157349667213579978927512106384428366144786219754201691246021327822408158966381218525355012437833838546549954906479324645625165428338731540702693759747155943618846158149184897160919608545389648499185968970737591180491022394365162815133752009745642265580825709224523542305652055563675282465568780421482001146648498898027458988616323652469410214806042709010119525301675708319300033125902150066884453337782256227215829934008077774026145439897391622907155853089005641577351508808467354419155827123121984710465538974819007552457836341377554866580108793056286350401328836073088961693241002587046413369485380967433094926913575512719297411885551451832687881205011758032723009158213935261010210060346522049235456973537108794216719415001856442407565639083956041228902655931250770632899117245579121058961090670618775209531195565651014251724731943152939492888483026269375329037300966004664185557868019181413092048788253930963589651098081185251493265809664634105419903376315768877309733573952868606987936264298594612350073199519374018583848831193888841442998837350828743212445752121018859424986957633244623114344918162688314038786139624980525115652572192060318042887889180653058621243106392839300909009766697020694878897634507436515111938561607719567582308549952104177721500926515339312034890264703532338238021393204174023078542869928314408339629340660309246399222532338031055883899491899135875569949506164720539409435932852986409632414682353712089533622038199549461147434226090466326431078295307346643449669572115176635384335530160220689641815059123063868939047462463657227838522341108367806069128347529257491344296067290185486741828718300084299445834317416292838073542593789508878785161471345515689945005072658725914646957804248851839682156269063441601449473624967761526310427009708302322985399594847705957038237636145955497518486572424959080495538904395046615592869446652844959174561821981673581873306011558908268824034172012329331786630103211539045448333439732279319895337336917140269598838143865582220395003787388737280467294164375579656419148333162878616981238617642613941985305814461630596064803841640657625852210941264037108835169529303712572470819175754109445039698737964413318852568434310980751533256761656294581443199347962648559863383379989110578668806759829207982574496977800376251550673373497979184947536481807160800715228734543057852113021594570321010336950668272653407008089803996154215221546396058875670428837017529929587403516552266460448549145368660108104788629834831489860449140922899502003972782756990492961302892017395503961801517554908714541603717326222256995966770308348337552056336639245077723282156807061449580695419163605901798318055683497332829005641576150269259304856940321607482059053244707258450738542609215374450612733995866951060696862804032511009681404300126420641255515915905831608924168823141210568229079899834918149144902669484059151730608525044467668996291614092900253918296796527511794712254443774390652740698229870752240341373405445353681762082489868924958867635563080658108342304544624398005018307137114612615777815001531910994117469044153129778434607323944156106465294275514362725119447278921257885729337860134830107564001760616871187264324072776925845077205650243748318993653793841217251429329824344105933383564312607363285791562699500415098851076068840307777057859805481522121475073918804958242919808050866197622979263165686895559601897820784339305089977548963613254478032965213481086352414191898776442330276930383032259223741551714913216572288532378096325796194823041981782977634203998861225962796145005831094025784256820970918650245189136332135850496569739112001940153781835142496427725197621242502209923218478627112248654836607518999470296025849399083127994605575038195843692897476176835651428781477056374972706879158660655531927512203100534557241843175218425001367845131472873837577726739992836501634671308678114341965904281858630008069433179097964101132931485501075712723972625557513256145762429114840408811181218833403160432152624151225677820489823627877299247256556199060849461511091508290384330304467585392826857790566745048305632861582393215390759700155799768896984868793421436440947753837016613903572318219436117759028878046918653049340446053753228290273206494000109404519913912848525813688969221690431001758180554224905543245127894145755241483726637974325951351442926737056877531618585205739324091015819770633800387401666618519186960389720844460917378023594758587749726867480715557668491755081526025935498592796219458532592646088731613624136807272175361240661719526911526464208716005124670461957611056506322136403683612672034604302907926553638397767112314538459530504122333218317081947913468530010718686951247801350476219474337513952270515217596572150871716733128016846932279099118218022596045316647685922878640391645639884591184557394267345434969873319253601470451725447137788560150982081451119143555073676286293607987677990921960236520088338582343597960164899568924849067152050601049186105808879972325034208358066834072934136478627069761272319471424369298338447721459208890141711500292377900574023340858553973321938011112818158655669086589116819393155806058061403363985725804007810089457236039182961944770709519821732791279155405631927526219836507541099602239050651300394782484304517234721291691541682418949762012553793903457309467667983914681328606245932804844771448442642422908358549781068753598370852309560095917011031828719276515669280616555785517547327996618255955529797514417563621943396323354590488722923902725131709068034377378486931914673949666175914691678324442795509626955191110920638238116513850061434455317800964165018682194040975024037427937923597404296687817461701691825601682732382207542811306620927823128092430787385687271338782700448660696938324990034904180798799724163182892430823958259142189080171109333994855385916029015462028310164246913825559171847990786715049570078903101761717098525852871242230772414861227695229548440253543104199490969246736182844205419672696651830191966492127002071270946401806634257310075240012521829753717058285629493343795278948844838537210913174388039816201272207929699662818686729406407431112712193537374182944047288945402171462597125800025866497745740846833002246571631056311124516966513540895968065760960215069000899351869324389655383012804039031935913061322832919017244478861546664812914372994576976482350673606615326940730267028454707852356074168487890446241975623763673844031723403392087532313387754320923167101119773866533341439965958097229008825814634314636757457862851704241136471153984733405987709227997873148226134036012656611985516946319128670839429864433495000431796009446493327340656647157245289535390869046765374076621864215397989353960281280978544783050318494978871077705921132855028458407557712718449215460026424638697559304482130632584747994896040230288430900491869882322114148353823757131524755560272366256653568264607336407149687586245332808172512036165030299261663986438825765917902073496628316947122901674671776440136317117172218708493632740025880597442368739674521461513470961167468630179032256510908458929934104314769720716521209699238919281397600059976165747261986003011361615608977152105074517333268000458577502289410140060027892407045625993778120445825055973462957413067362215911817220329806238461739979667425067994408907720102842236808373454177662796287171092476885043162323211065654505928701420083503721113882465707058008819544632210633276898730942506568006918532625875049614909516740702950795068687889001291852118073262542348215291455140032327338338745237265501804439117857505966956896818854126716150581146125532967187968400445469026747739503131035229475422369806060385481140277376225577915581040591699642243108175584016966220550245951487391216559525780066785039430083229566033884429088590336167848592656915657950328377382604738628779268622840289354624027177330183247405293565576410584259987486862862726581074196565476920645876877459860333724483255348836784588601484362507931157502315145069547689087145507780761806213807881863398518803597027861111179493172388090118071305646195170958345361373430596697994460317885122053050154674201951555561635976320605767422386880444431925643875878236208474050219787033124405692960721626299729280822554051537635887203277941601969356031744112564417841188801577328147366987020033403266476027672631569823811059967333565118096383330856834535291852469760662070654299812412361419564977016107348138919919602046941823432616105406213156710385211342813884464544776640020866666735037894432211726440938887397871899750276114319697529779274382151919840530213703666501433550921325509062561250521965265149228274021972286029629197531640563621696379683236315957435331813374122793067546156005650753505399927492707283032725909050667892815806303874465433089627073764599056945640594068149001286287508210641715952228462123198014663023898741752799883695236885669318222254701951690299167245179529937876232121670003303020234588488906829412637291527220474713698122354266184359289537215626837017217385846158598823170966448053761110831827423218170203230382554454115966206072358636377186023936378320346631770074658606457703410584358690310371016731126659271604631524511733943716442701689854898502894981062925835510736452709747899841264209560025255887900484683163166823718922531933900449322387818673040224506092636268465028062620949731732453779656718958437827350616316752543161727248789885620170516671226204074252943878839743949949480265253363387776843495416352972223909427944224838974106124155419555369264289655070899329864162926074830317941215277557389400044845036818477714344967420150309886616107518902486669087827049203406878596933669472912202160073811989357631728373759676601486033278749061144411286142589320788179473997009544894281117587947084846485506630049381067027715291386700438409665592049832634260500336052526862482983563079085775069641055587374308159362466148198600844539925883751053290004877291835066698347509348015273395590972468820158000136581272287735207838924783609352155120218904250735285211358907524537276458260652245000388250487909253893461524952078068373457388096404757069269793881319722668644961879276424656201400689456509592664838609061356917792474991828845043062837161600257611556518287541822004197906769204026183159929771696759073971343268304949518197463760773651332907716758281098988064682228474393109131417478219627568139527836501151786195609130576336655640734382569373282562076218884922972724060886946437781675005600272755505025790375645379146348394978517992554549802899012755231360423413065435506500627824680092974866449445342918872111720662400278315686965512131516727359052370363478493334908688339317583486539337591731943058665238331562658819043837881413422717300107080065532588902540923604923896394797544759059962070634502824398883070450048353602374096183945376715493258273650301046267008383374399028426580657236783422058086383212774244918271603835524719158755800687321365767964810456009700620142624012101097033665479727774640158946134245629017621092154076402613648419902046660355328224133214869639295265962979612625363879514189847247630049417523967092299907520235496869393674259589053033687803642282849666153381883735140891988486396513380873441991200470024656920979094700764983534957740669772445564988805327871386939625670469182975466743104951935968734245226799298060162986329059822710766278525566909384444804439539573817700746768316234580830137288622883085596233430097995594036705912521897414130370273996810245785408103072795119214934082898466639078428656214474696241864922595245281395796999392591488740291274672842034794140654474511121658548189134569476346920871811125529466214212970465021218367654082181418576800088947077771319217389347440703592904714585218239083265350358225136799203762997834162826766563118358368211362176685631328965336633351289693687078624567499956908420814335471605622859537287161872884427268386767002778656987931844781301627315192939174961014030349831380843637964396841910257455004622925677789912981784283208471640782734304133286871470245787834044412278325926041862013553241626550058575929877665284724228674276063345082497235860849355902400127581180721613132325846529513442325725517810961493862374897434869650546204412975527874895686756939138433167052001554804186127204474214435401068501392081021903343405900254110762261329010478639594094630708305890377218934061577485424148565794964091797178121440294674917896341126350309082067493537959783694829039959096314044201219273213209963004782068771924108380967236659498194293908101143803168477381433143385072914466985206406327733359624911138666066405568897018412229632759048899638076669874060578778539996916027557161829324124591028524982938765316978217098975738023846112318556075015178003498634461757097057000883302513067159126380970083561074841524986702115702901928194290476017763225020501651100667862475426288175014550041548462721021218031321737571197079238374059458299539269905360959827462124753827908906844469839708389989849498012634356064081011867313329705845054000800501418107243074371795359828204163256121220197011268231279280300023622128554260623735747723124627413311587190383358348424071818235441993054004591008160534000310075897824609968567547026530497742119123037767227943716369488813264699084926520607360069810237252992421032173590738631427277304629201403748918091862437031052480122539410317914443576233691266118489923933474317699958026708138968211219687518831321637993605212463653212330909798297249985752520772959056074634792381039426223620217741230136148048352707462262819317789188326645916842561023614158434507047670419607172522764113716805095335825897722644784196793237268403539535471844345652852827136569549396235251994162053023990680693683429635996319226515777677513194704783399625160673435890301017209977658907729952958439265666435124152746734377203741226509938407220928723910937444138347352866069370695128170383825223776413110539603281212121468328782157138101271760949135807611420576251183403094891972805712119762626704655375208066532701572108047471628487036594599231293149586212160680862085605823389822416457411734604985403890563722084552290053386278127036308253572880022778282818495287902360176982245251432018799032755851814030089692632315112066781996698211560760665055059592275767434135220173887645403174645284728501968740292927040625581291949024138697529765493194207216194194446283846932013265592296149045406616174125132498863858465252145624956221334797753758170894386899094916492273731423799974522148396821927031064383813641797734683662200910281711327026587665342013459679093080748659158039050755947481385586702185786326528692932512164834594770130753980518712848808049136309037686070651501907703530300510496671719851114993066621361329338832006903299643676129878216012818082956925076330881887684388848156633899413928829873162035285976035723067978993374432613461969763953459601185281937117329941288611146844507705537871120124291866755577619296393625989652606890218792728335852571144183297841064072558647024784743960924233416727443539730940641852626642073415088430915454642696331367096537953552613811929451112767824251193949714447245087801502233724333441204397004497962803254282039435818957851777737769666590694676102872064095661421363486224086423075937088986076852598768180745846656838507103585346286167739383313463576571200237984843998525091013089769802378378690476007957606761484766318708054408091583606701175431435303780621428202786642428628490883109724012231099034873355554109392887959921931871692810719042513093539569009485762477642660284176702865369960669899089431800774644612971156370633805950720759738728665130947648476873889996668902087981752900997381652844986260523864777457677024722528287071367201920004897245004878340418822044392290524316358380562094548891374333672940338829781938531404643504186617893816350192185305817459304326222185678168113059266667320710020568139576378719827152709930361919577057475439093954566858977339491027715811896517366116666391779319138544278547771250557927146619439036091091661733003688745777955656777892097488239118562532572506582672221232898537356162642335430505119106375015986822771393311128744666095716154282437949065625287045859799711078874082610486124333544108199471484278068575332288645259649557133490908825713105340902348507282073676274368258467498820201202695797238195943569366844666999525479823955527471717307380287086737566644071639743898034939554794700764151270971301688756762355830908812164891989397069139386351410954736532396627590342355342044197347303078609738866675671344836916740760141354855783598519849317954321914292002887624697065497645618718690689030441702801634082727131594684320339810946223404985605906028570852168708647796299672332519570237791368853544148278932551037118548373402397479102985028660499370629802911372569252319349362907131785193008552324843464378975165201239065564309816518763659275613632083396713080587275519591766886959548963904541678144300686931667120298385415033331387512864851610185059534779748682316246581182919611184175180036935950948316194438896158096171899339850680520673447349304135108514468604644286630799305683919546658266532497151824237103132458073209981624627293212035317557230489729367279688602276318411047112201724306248543026357603442435735702094766874054381094635706387736731546135505085075878681360013574093729430888090683126583685991764759158183699273348997147802371641681566301308522907608193719104239884938775938555149414781589845125230948835689112309670425460399516395977841440689499693317910935451404036443418615523845590330910599443389513590935736398723262416232452002951148115081008925932032761537598759611587725834322758477945954951006527087163202060891548395136870870129241526770538685764186199688233260865114331331578475333789488161549031853070704334303332007175538104596378649834832020324773190798574501451942967233910916791684317592168009569488276199064382903293629758493575995419196994663455696157309083899654182421971039977272216299635157131038338478121867290867522101227998843385047047312485622812178798115605099847806013942960288324357890189411264519069977492091841137317009969266470766973730915303397548708802233728034278096414154557213978291537979982671771450373220670602566790777089343487699610737259319478178768639124932079066221058893755341489542472917912356571966761356079531696774461073365187233646460352893674384195751588370644507128603239103809980858165507736391055867411881568520153358832354226219439915261822233673622696062044183374696363129910585936225616188073013429302308152524341470151196805533617628065574960190315903808872488403809354333111138033483210490965639048341399597884976574904571456463275094466233547039274326046963790886777908942256342662812054288113508826922966364445451239351097511173814817200138896248471939038603326976367681969731421646750962639665702535791397691801417241382447377950346473128541513224719891289305922971479484644603558587941238793270421678502434015926431183073803460689562147585241011295647402465013454523533835043155305968208265588416870078930599022587250817696642896120228286953693809024797125028075846013719795691176487390357631284292106258781860871624019213834014820834221198436059217750968644934696826281349672284455347921117465740157674460897781675660239745155581417463750104616682422134684819354340678235823482617785648995875601949898821603229276211841617935787414408178449613410657338856890851911087513615580590130846780703363387148106665652420314733854502668830578667784624733212075985008355227284962251658234046401904892613348977669499372937174090773108595364295985962381316817373367055132202655786620351599980330467541948835626089397453856196710596851243325227781626060292336975573861979921282294491283520812017125365946530047960707165891112169021435260887599344217877396982687209517378233520718012798228801005587558295255202115992383112011346175456394931151265791703297064788554786001041195575238979965046582209723701208654904024004897520746236923192664941225602797971592091837324138156599965751543367561263316726093469277659530111886330508855581318870098665462027704504077453116256584680019903152366199023092062584596911530667002994043530007877784447191063818789992270001151444348801423200129842631855751259532638112568444993349392182799438965263026444342196189864501700007936440187989714705018123048552721782707698411467903601512446550237945469274350820483402504959045675229015824340960195048162817564727560927202501266096888861564855436330131429216989354875045795373511394930375705187075440781707616118947154697012126460677500131399447363734668333993020384220810179145756871746406810254666098841896533600558562550718614194591600799515511711546308659501772685026369023168083673533656138489075700108618536312254316141108883593543168900361145021951686041170858675278281298575564121817132183011676246633113318339960222920446023350792965649048123204495594772584550507665701994962656015791471729314126627001790204571189748758454088423687636077425353632324275538266447524131840039654571519053976833827685253648718274933261235941596564731895751622318060322410224835192024914441953075720473757820969317773068014236129424022926568474636364979047007900704393834181339846607812743130419780635098364848113798521544617353446783543981230289461847753551280868784968486632100109999987794032739259975442917248810133346443540953978791728231352209949098917369976681632823333062304944806882684069684448100661957722949547906022029130677614426301532269109237784727824115042417909587819281661299634432204110973166830792190307790385893765812975272591704160675396551823078252458208215333877098098446521086612619698706023720395992318188318516589696614479655313063037076425585613145310856454248583850680306579758716503137456256262670903074969801338571786625277961906430446377648806371797574408972711636033270271617984756223559929462442361298337490752614879029844380992370538015543599107375577795297543178298601955605472634664867464311557512597994655322952635753349887122897214770192601448925877392897337924456172721874724334647701379595497098041094745375646494934993134974276604101801985831394718962820900741133865646982435238890180136487898204132750700317865313826560293956569500136981669597894415496213270293677759976772605193685914672023931443698163287754193578321443319795385422335402167076916545746803706233266429650319427362593039888247241771556616855898623911087937765050094527568854660801013946325756616245405874857444032172664074033577733736584542112440494782600099480718826276722474271416032876608748519853882396760749600922576243145981267008246173950391402366243184980905165711674299419494976937821014133006741623264943310898703884680199003169829521233467105090741229083612167414722447689380769195589252853761927621853806875745054854985072690204247479763731674454469327752076552251119027211672653059495937873978515026634187230148483711849151683569520003715650196627205501653050106082854057625185175609624795273085680223367535753268228555436329088734176277506125468946261059905375796951196760514394157291852188760751147165475402513109468126306617825076949175949005512861731275215727092006581478159493375186495064990844161630877578395653320115019825680451594929258401485092278202545895263751435231283311882213656203997758816315890228099504302266451253508552673870736952266665748985338344876951635604211900440609969345838047848084310702826843848638508650305922536540943333163842972941307971255375320573325074115646351286383682716193071896324358127914708583891779335032011892914055872934710402883288573076185919668920134061529548547867788598278804807169871902095457064062102364841834338291611283819548655325667447341581365042912883582635624670200598150267959744938612079209341233478635629030295249177652432649441955667590458421047101052567548659399357724754132609093038134408882858726078243608189979052112325676011339403985019766973933098922939037452038524338048301847550813015302682230201557439756334201641321259374513885365633324258609218025341948967565043244945957063012337071692675541318914466769480858450540477263647539798096769370793601041796959885430962818824797323746866166716104228210697363013146105653462422604221465586047244786995190310432952000631560508343899137410662549805548123902024812226111401506675587925707971390903550806586998326711867896367687598112091749433101541404928359956512830807899825569598544997846251025922126836289868730024791619853771033987031869525042139258790136457657888858846273603988757509774379731627145229843965392650450590186432417384434614465396779226808246730741686996959282025123280884177419754267084262779020483476594541417644687396410029414287194410347790285686629841040922917749798923084083968668195194467860810060283969683602895554430308015930993253583120949231968300577873519738724630198946325593743519401831502502154572362887385912800069906907477122871573349722865076102075715382707380704383484492434007731044221044847984925061506461232768418672092804566604889836196778033278722439064204970381567567469510176701131210776973587685598973553572236244927115350400014181603459613676542838404609123407288574409092790995599594289905144884229268277392160040871463558818763238974791521010307936076819592651277281214566999849142809693777299899666405648626905503781871991458554707582386467749083501343592339342184398387686433481705026979272012451177754176822561166122307311079856780650726695945669740010414133809293612963967610266931203245743396786993140047494751724323394344500064578230038794394262176698059018595440550080893349029255251789673923583241699326867408843170791456970340771142775048716010397848876112543790146045004125480165337474559612318816815104882056126102897486489848347062598210291792981312975358234393527704157860809732195497265453740282281612578672535563843373207587662688252592330451134296656542760858925365733566740966994912510652929898515707030125277075024186109042484538902304096148953957671693177051290077279613734861170960815030509784933899441516506049180154817926654143155260183034585436797390202164284635566479778357950983972226179930371027255699938198076258637594237947085087866100060090678984263109435455818887305035200362176249216542724078618223538534728118025259476102592460933718246824712538960669014901163327005018709457021367162829361983969082652007867387273869951011115785703424025936644532820529853882474092529479340657615341315570991690841221935561683395368491307078880963063291784317674265246911901281159657417361408014687144713519291526715821627176337354482760653600926869133715228250238581546625710547822276394873990783081762568467937356519858644814100216503442602342218678522239710085634061112063452355325400271782124211375842685096252335642117035904794633283937994824220418725364613300558316653468313208049165996322864796036249055820190914479265506593708723236075665936935841183223723864832261525766215700211787916578174840455096320417445666715593270536192508662479157157582271151192534113949574868042781781336294864492724735753371094313249253147673490504113635853063449412098215261041512404411308775127714632461867924696903145624061127308153419007998402797533845935298040984631136086195863829721945483790137896559863261250455420697069045497345406546937593085866549874527045284739923424293950625232618603472173816699292014147319708905895943474067480526782591643345816275435858931758390837984790084996165757387988770902838130800536278885812208118658919465241350360553261109248749187344433091314468557360901553634421669473600693195234561148432966119495742363377832531416013783958618487492248689729052151627818342581850911045963235250011977950329904032061774397696125263257219839453787786142392506535264148810755068758151852725127792330696251500743690963721032913157255036962987339822430213639547892612636251549026110788130352818791614213294324763496800605733395027015941065265930175184640427782822560907126385471514425755152772934031359639337476440148405033069414386974759620215547087093988495978338101773693683750680947344754229633237336889033637750733721162968659618957905165483955847409887156746859830323485494167982147550816490694912918424262684707003393890432367835303127150398032973619192256815035938403693357768923481375878067776156414142815473341942114941324643601441071026176739930113924677681598507826763182072942985285136679435788787547109031798732746727773688138893735267712149841434988371565699824864967807455896899722304708376509689437974041878070285059462473372579498803935309648007637519304804098178863825447924725109603713503425945295829354460042152399134792966135649542325905577964069536881824807013443981475683754404425716461756176833813415249772236606064672690510861116115298912828929880819636858059804681136663790917945309376085037746230872416921257603072850887246945826849799413620821954914408899187343535642690209531817694673212869686115324217771542660460296507838501244263608791828162999671954348964480549906986540099994902696605779484850999471349707045851671739327223615973827873294555954573010158850389963392560934554272638743341854993565993706895275653876121715572589678605090474465330268021627962658451188248388203444727309892589526415401399951654640955966094147494700853824285361168436171066893813200508327770810806717579641332868399380393428401672115714373068171730415393229903452980123004245109910466090581669370637577721511115254535117180089804051589600117302727448822089069863587503535748104856392074088806351599282219327129185396780952565303260986339712492183119842194630792626195048178035880846891275948225222544728279665167424629446814762114821003172015846344201074692587707529883316838124739606553860157620979889688243674280108034264757730311372432157222792490846753180770660461301442910580710147098082676356711817042826668216541990825453178395667840184181185898592733722527778211545712049928079144708112493138279361654574999798268362687282685978063388141267414929698173577820903231926328638650953957679280050496330757545758007223507189800784894267385901354942215044802061342106522374450150076397242288171062308702335296322590108076460859846518066467145764553885551527870794784244474939845323111974187581028678311931247053932624784160095520018886054307053572890411399155885518094000360311721646390061264564556553617192994925437861848553243721831347169504350106227996293213330447626765758534574948976657062338200038222939210908699202485077422558797471228114621454951662961683421249693437362957880422926239510104679303117758222701431029559066873061688068288025595363255934048535994627894470860712830237860578723118355176154822812874159515749360710457582280329644580328445533124150297781733879221836245504348729557877997346946273648642726421564030965979164731725752431320151437726421903250479309852980476153597008861028790976464681789548662892734152654055400795230240063554889511940029940996596907989805832003706347371205017693532690097233094529908961098283467445666059296892243883528967872544622170448963448152522642079378587479061688532135247043023443481056339791516271764799298161327128122719901602302185592138918455973409902628521914518028599343935557606522158526603459292304408235851381066809586277219677178750459862532875220534682119717410879613813983533914904310808149088245490979357589785881347522248081054861418058329476435335703843996653706132568175286086103543658434015425733651495987414528763395722183438691340256826978738502954075350916738902947683749246559082180955664297741168225181530586283244892900346938607626280426215306313966297684050294052916501590766793290588340645929335663808493116728048923276539348919739969182204104910944745557644899494830536284335007851118562733978039823450227214455091548594281028460849882189420675028716151283600802902618325016027044277713386727573072272224646670203270419646303714551748482464376734843903129332952185779184149358698490140202041387321416773746432117897114909037150274218514672118922252752419002940474364281430341180473206555882718452236650418178619926259030241536739468229477335542121510605968515288115911733429506509205157148484675131502164585804417549010457325228760673607483195914540302581987116555653169384464930411577355961406368281936185693676882713833773171555621167019575488831109286819789668565779383958980323667777853759004189397434736845913826286082564357692840114909284458340448487148677839730138165117121415947234456375719468019653596130625236481428738458225981394575604529941029197238323391698984930127326954253233442093600013458322251872307835468293118608290108921121500348426721428114489871288587855474034512013723232700503681782059710563690276001890828580877056978052167361579401622395275123131646281545763946046419109630446992535190893478030644605674901852810112080981515307271626569917722738744045572537936312278037313681414893414332595832513917393974720225224031206668156157107606739328498531136189095343530238783151453689115931758861032046514486499005653180202169844768396786625954405344893979549308080762047485759453610179784671719824978545814349714460856831688102336168711253433526154007701349362198948189356471026867391051944180107845629330457064473695026626691891517335471820814222124392903623536412755796429160376280552504528983751124493743668236941609670501862929325340248252868478074281234593534499480869720154217567575305498590699926524988476890837326787357479625524278884636888816655561595265074930134724104343699470960611876307256996780064844376418091017776697748364119926641999318609035797403626479097123874766629431323779419619302712517711753963565513465721618568372276940813380793252404822077947283343290814548063066226958272352837458755873491230562726656788378275048413020150818382342611386118740017106969490224973989384111630756242129347587533969778481059448778053098297030691667977162899034414737726246672868264363262732379615949387295787087404519740131813361823955646991414517189520893477084327621677616739990784316790996023286808117596157734216478937040049889897873272785619100421856063959069696079849036307333206326493352289290230306875458274110659388634506368327045167273906007842201577886692595094110832562459093717631803605245467743053645889412031849669356033506529713524393928129351208608256190135664443062187639486523413866117370995266249494508146698996368463377584976566788103884950706644608131620788445806612242792481936329070388705436657026491053493412908448911168177136609562633969626216999730107925169757584686764808786239755228101111913089199944678175721104129277142454200224372376987777930734259371445900070175073819844538154763192533764310786047327919632364586835188533125783965193691030612599719258343180382434383308311096677088091815020376423963725584244424920210157404098310274297409864980504048698159074608929863654746543208164158313695313536148049190270127122538409069832293775717112150506113117950304373220843758276890059943828546392392471316109962135828630050361610067134374152978791486728413007551425236909865965454858998712339070299806420839146296471553931124518564693682620767768340920733813109517080418006589962433325075489035284843566981597827855686909324836154894444537590930174249161715227264410060641053536322719421870473744425948128953180793017986855352863584729549520340106578008191105245376701975063719945498988374894727647885879728200529356254838265564795096892445121180403162390244547539333701094910852331904050878641803659961561732889396956370709760610674290572376766694264550276716928655566618684896075033747714804005293933621532037097081315900885251272213751468498152765547590803363303111574235061039807422298759454356578238262694478990682222906175982929728448368118012481785457649421741558670080941439774669845011819471086465169206815906953382402887992750349400160349264025859005044778215699219764512432443101615964052004128201445369317516817448154232753522229523043220249104909282279209748019265578328657155468898793589947884425560527311923855501510408902972159431316942229724030804831721110404788125754283128557950940733927442420964917548168138039389245339335123029465207684798303132597828112722980155686798412110927138490213544150334111933940013390596352153026234942884686241360011053983160690787195891783695872284509166167730351648635060452878740415828595456257274704570345239403829764071601884335959722069149762960391295787538424507393024864269618250064716177633162953517947727101780265434623335186400515841428793970867540064568923217232275072064105502545790503916423493780776548321756148983353916417979190802603392367726154521035371052980918740153210747314909130686353748080891240874449989332088553408648936720364976596002946440770248409592034014287836586061229152598557119660170186347464640653175112782215874711490733955372007232195349678357391777370558394149202466060937721968803287882582613658782431536476868631237537341017034860910243348629068461934565420676542146208424395882206962098052937269815477688919433983748296273910863663981926888764172653222147082927816326431357108131655633237538597490743843674782762481034229568485477420571139751410087458434578877500153082121787634349913864372957010444398843826058559654918525673699374604302487797394800779873443817602170652017117743383673498995957003077907735192746304159032817329424387674141720760433257514384519179073932903224075953614832724153257864705136802087354594903785607000830720554675736670337107661991915330291523821153024009440140043122392832243422711395054042859084841393852268120184777617161559691180898011639251750068707935265830396710153551835116527957379349135094534040823191757032275325686472955250719238479748684984151333287818790873288451372755199600066473317940858461573861201475763611480041680586721260242125737422579437275442840257005141605507322452113335263652024434602591421619407748651377465293296710999091588120700799991658921781438719688876484147341769254952365776153446586368084664923904109088212400491716090817557099181379450638183850982677893565146820424694039121069136556868676113098129801305204621988920255777257621263858639400537074117433772931005145911272418219140020821181538876545662127590792996521023783268323790593924061241782670859749176331796543216965310950228720221309244965774857459279607875130013153579109706419722548992206549056417256216508887768277162639654976873840703412067788137249730221008855883241222042405845349812721297553987643343533779593336047316976194598329050209286040696351458741979726264281212979697926187840934278286226967973463320243172732562511583724413653253863934872786993028986118421268247581752190622250481900969604344330959600590740781172015650117452237221434638889450436561053413246477154971674251698397262611340881829830142860856390640768134239255036403649971260743093783666517169512233368917693524520468504835303813614789599275211390398524712133121001362602814858771635667963849282148783453861803843228812652055986371463002947444001587652694318110076053499873492837008699238309998458322021285464242747811642505050450180187191201626537893899295968931084856163912390822126404263412726955992102427235569141031835135812816352237989733666045692679871358701179588330830669952639701772528149265749209121941847957695470339788278895342352786004167840001417334352144280311894452656018882747860225547173874249078007847429656509495703632561936935411700883515879370403898997032732584722716515924388655341505471743704541203182891341621099209829932665760889147799594625424367584938869304691511921416005987662965055501164693404033362157857622532213822011221908749847862869516312317170857803097623842831120422732454579908967620564577830838899815576475065743807535062787651133267196017048794535025631935302145820717363671824946328299070720083977031958715034099336013204933740618128046508503883968454832487616404296138574307246407236874630245066749285240353571375866338944617194747163592505420694304517986299871007890882105406235096445532592267492160892117815045546740610841346996025438831569620039977375820929133894337429688996233483444383014883869342279752395181426521610755159765436943058865099668989356672343417783915441606820558991262165234171307623621040752901523402818202656827605610740672765552736633125212866447825342834138070400474194698854654704195788339819384315978931893835280178817739257991848488691187304343987866845484776820554082617171395068385051043982389654105894287840036070760050208920597268601537390926677817146653264336417024198233733534727769040797599226840941793400798164993070661815271289757737376290849900700070163625372389399938736687543418266860853178173725884818676220276064517287704648065922339447331387525070224374475783855657930019401748046500422386090222576646179227021333358460216222195837941488718145603542015624328591755716904635322957646432863215407801715771687330929927739875575324605882453254733058354134483571187293975081535905239642873448861408339693718794056272215851757005435935059720706832422275836559282348333378166888914350667214834499186044358791488870639563144781963292486500084612850853948369582063425154440971016493303802533733055913872010221594170228158809805220527805140469045661328984628341236994962120288021817325842276320793767215800824618868798343804200977489797104891038396127585814990668950848254930470166024176016078745373538030929345990246828899431355480953351852238020082255253696812599721110641616924744297259464810187329332914365434690760934431156750477726007283795248698300517946014537214043291651504088510312899960890888953653694279734155805112369322649931928943129619788464159130957263085316846885412671179511764788461571688330197150813091086196772236855689656902438516432391389532971883921050861264599824874714573409631896286863366423023440845908344779525072596469500446176026276952494565127524008239864483786747497492433671724368098379709638947257418192527137082191468067052139192442117895563561111322167250651421845444591983448834199986720356605791100124276490873759548667065365406189439717529974899593016485970536649381325694585251780609893391186507279547991561439506498281943703022356405838415624860929145309238058790177371380324645934585570711091446631701579383992409737616160442901714322328446377168089602129012115843314077494596672848320215601608808749717860618526560599843449303761502406895232879294899921110197836040539273672154033871621462527132126909227543946667783713432192037851302888831744030762054941478859848055249935933341419739425673647785166997299093391541988138647618002264296770057083194649434895381534028501054204358415365240869468481244039772173037041916408051817625512399724343545659627959788726411032946420931009107363611252721119220470599434169534798214532712174454308914000501477445053838830981101174450020642338390034697328839254615540872773668309669270422800445535411346184799060686127617667658634683448098426348411354937282931630357350345816920511280662448113327577631617633276900184605264913815530635399114144249830954658747499599193311015500123944307846355539802346960367966799227810459510377110746365962505620548514828312045540770666716385687928254142838657464466054856347072996382102005081711425315628501113596674679880282410238812005965370090686625245232363639090087752813724560899818259175785977104098138639018628602845580579779349761186165076352336822111296934628513603862732774712385081418894874489717149227386091933832045501584778774492878287379025680689389487788807282174988361217327332575133874620709827671163207124287793314742948514566096595241439074297242497980335071937420585798965025751256554797018388045689787606298061642394220239660459035252316642127160838446241880722436184193755504726139120315554351891122382524285963131868297811860120115195021158769620520202080993395062240092389392714894314502837645043326740191368089491950426143852917226086110917267939893470516481123848880799794648143030784404735225964217104588419027770982503265845621484720921836612656652996212480275030514549138520530655491318301394099529232787963511560316725809311780165147682791127210659819625335148760502954776013173815670338028410947074668509393105386204890310505359622749397297785853838690522591160374792766916308405796152849155706988423186102422218597213799603586852623331051208199960794428702570442302736530939303094160136776088759226491126483522155795204280397781393687589016676896659179641974962496260308773072798861054409028856767077104228164023865462862123391415469178117315318778204671663563511223859930179152950615557367448026996201225486581437701039493953351853534466814316761562158441756639494058319405360146795359360049365431938743329282322759359911071751977255825395057593908238505794496168106346328883359985965253395239361022115000618343502643761096145973499752581358189058295889100618734059540176272883218427048218112710025662215963318203342558438614814089448871716089310224179134756846001457127034161984129787158460802760548417692085018139607011349831122105866609786348366505774323783842772762000391319767633539760170127899325389209802133515176831117671467819730585773770039491774980135597912844891818523075061859200213689564920088153933560049818297145966492794582443726812961901921413656076801722060146242036469736591646785662186251416302618762479333925663109131056043297585389567708717215834360852234437709529001094374637095536389832923454460601277246280489065819004388773296495750885962721484616940396303294450296893038251034907954578388375486429744721278256672795922902004195534367627015258765481701813962973433405584919288757730546027582334429467637048574734715453094228581714288138373367343396178078458464641237943003493048024953315313866961532462001876875418153802472191215349460879209300159509475872214362085414096549365202990740140443443906615646804468597297440389890363804559938327988282109917314662687507166486741607551962011606928887855000369383075023548873756579967556590957164806209187132862039238041573276687129598170453075409172611860795615200543477139786433147456985193821242151460893164711983418206863994004040354892360013271565624418416297138484932904683426710955260578790628494970180968539938547680237635486701640010169688943749524944113916555568793652355135224231059224971045455107635572048798295495839617854289117801419211726367343581233137232036938287949744299356729426048812396867138956439066934965598146129891149825386276580106823061347181834368447006663235554852223210343289203764109558745942475367371151038842971732254357298042325963219070706894759617943515917419638413846509140895011706028715401966140734154580282263464852713154079749069421953738948819537259689648117161809744818941925613576448939071829623995814211390201220327329175654516266378883757942621779604605884549009459328714827209291981319452554656636752991963851734953357598747116471398734121644262041076631036100924231679552477441387491217403142453061033924154433312281972776412023997797816476802436350466383090302569688308752691881891273456880243008930351089126401686185351927809043871090335690212330620355899409698059918226140340625482456481061689108614922288725072476682262003927214632012567546399333830943457996281088557295112669393329750306614189873822532677648985101688381274743589575562844396156866538444216158437234816336152282001403647677776887260941012090050162214399842311499227684599882584650018316496481942695430633964748153154952486391358447274363281956708363944389478681757506002361071850756947702941458233075018181150917711963802742230828694546009258755071801547934491883872847904968227762792886131735892830050060755092114291524050410746246791572030109749118892104167418887471117103471917506763694813266293538108848983235586331546491219066281886877599279819598949372541034358117844927744044970174223995353097845462050531428280211650761218953180153543417128669352456565206346795988091361011912527578869944904970996646689117451600339470307872845244759365057837968285517829321794074086827804082345220581858600981591206964233324689715313073458986668825988499918133637500933325297159477144126074689292755282275206437616301030904623000138302654638901407431713663524679918010416225792936368250148371511527031529572899228913097962597852910448119777867294506729792740441455847757352366888031272639969288609101532862514235692980393349204548895281318931711001042542830373512637719950229516866823317620583137548449580844438769865441426176301794827770329369010073723272047835539321482874109611018123533463222309958355171863051223721387831780378082556797905087678688060982649051376064757332727025517468049916777019251292440531062206721784296305392699714188917191431442259286050398760526022464420832771951079014447664524695312728627138563935549048413923289048100790605896551205777180726737569263062352271607032827773410945611795732150432590402081209901946521587188479990517229649102354727959709928295086614967572633527653385218550308669687711343126020214647757931812482635152661793326449089956065903554677671941858796466963397294796809268310326086671396956822586711189024186759194843333450039512242842293700141833373860087148544146768844354671226926871975087714039997412236180296587321652478886142335433912225488150036936420653160597432671996654523570393192827418816251541569350492525634931881746616891603876275949003585733459570891066048606822832644554971108160791205913644836578372537058792137160827187758861208300213303357914327542262622714504141788613441749942915630924307073107477337833541348734846242590136458409119372868584743010131945804222314166828248380021072826820727525005258608738706331038185375852490453264344680701065275703890533076316244815909062366573718095897971815395561515278813642595578065206109072540889048663154478654897572943679454468598143774766810034362156721179872101238777774354916552708440619565426600223216147838325779677184132300945796240850263265962561170958805933742565920150173187047465138637399441197000867820227855968769073276068934929797252904559100719887284733096048047783066699271427616087184384847793096129535635880579315684029087578459507007272622997109423285468189003325732734024225490576162925837232751951726874307693913419133117269903972991365014430015879469707729690423177611363670715747835849262535209827302818944897734793178357547431706775801552027536561646265276612898414242201058735258693408159261083659537450271490817923029618444354476700704296315268015240075806955000569121202665149774068198820865695044300444704123157160150952618332555685760348971211578177666255088165672764938753992580650629569778434618650805541951102448520379825451046987584038413512334978502027128314016673967774096950817466783268510895265748765840486879438448678001449877482093239214002708379644416075255300610653157106662547273899670251652174707882283056755738492902192117873898721999911286729338542108371168510698210475426109415343875269826097047652845719819587549083340933425618797596490813305088531960820657499953973512685781031520644864029399894536171374165523263447576948074943432538457605989665414641507324556894517843581279423799728212891292368341596790251005238738589960029894483578080094516530498741114818524339360655125960999697250109809192703921734741291304455205685389339163185109657614887360785386553643702798764392219252204769033586612395249852986556882536541938808568475175584186259513362349295579825530122062673963657997172328321183190299035687690309371209498902675160922166457324366252386218537184627038545350889602219522101727089297338124315943919611029242745264631844103956929961577294961913657033744797675513154629044848676146127850185554433829613115004270422458121962403448573886553313520881923170503456372679825655687371102779032425042603108671484881464599122787961472577713360912667794109493114802673895551386661705854378013708501156848410636474893098239993457810988293648050802759896446541427701647279688652944824356935892560631205082024533606678397066010778763352396744564266360117448511823179527975850281581084628464902003231775692726440246550275368192854815504325027133577635859538242510251433710806805627237578926590411974617158179276802717625665232731527293331249086353252190175148611715527938032650636082504401582919916156615630891684175961980312170910435662140443741441166616977688292141111970729086228985544681716864471471110293267917778559281747175565196562347676478608812037654223231392329455435030951221928793025234734038965566533274795209250936496703795113901385518332936584980685837974131587617381361353809104658126379961948139956968404403545496971887255041389033281946913788512383424081842359766353895619009457955967703163424470757864416054926129762405063190863009657957576771456737036880305845954322432231422718319456980554342101629413898492993096726737705533290793033808728113857753758377169332614719231809104678665194058483736715584053621269689165861012015206399796725927886460598193047292120910410421076347262691242053706648129001535843384938098467377029664795860038056063489427054894417965503206818540896340342855690904955859004757970913982114843286355653756258216847951890760077017546871309515355465409169235578756374808805977846714827507079373522543003695624401438402390983624553033996780099398221363311005611933569372421134317938329426736710085131944448399172332814058957761874226045514830801361960843050299133632167231127443251307869308156033717914923910617545228009291488219913595100775529132722457448382837811380075949867943226832225468952304726398881847129301222108231183760557722786063723401037377663827384726522831002236856678524315027786841031369299108813846227331334272376458707247595152353075964217320091725374122144016503559761133447942982611514232104652498163493957329478947828333973653396421499827700151453635837152832587989070086397089822124759255554510753641583303009134935345108942151826725134815429421174026364090776827076043629561229174577796898243784507201288052347775260962364827714243630060192370599242126240940804410357549537929310164576440063167606856245654730712575268298740115405296218351808082738991576425272954549202507762443430893812957713331329303831643625544014746235972268802964514407656999819480223191433140807482573350076830159735816898840262457412990051129608022591665038227566750930949340719110878185618933243469080135117961997937694623752595524637228254910724588703253987198869582751095222170632870873741962582336316595071964660405038574986333014370834111098838618030542315413761463910537686269016040607810486626240317258303992434007190535191031675240584970988553793497307832914552242787577364272182523431807388772484873436732909637862427604680623482629922741497981855670065937824618654417284435498730601313570937943355982254197317541226628661010819307842885830254742260338035844316274079748301327692253610725283413195026399830548524723055099220366425426504711923734678921181038898219364364078118149753821946370828068388092093009423042035049957718080513457524814905369020086284284784419340089656420839916822807697006639244632678063294060299763415143050093528595742802602049030434941456118631250696539336204369862713154828070434251022250236674280597078920026017612066154913611834330252234041975134264237165270138802443309053701325245091454428928966807490727713294751515102235627279933006665761754490951511344244281955739364999291554963072020069099461424889913872230588709404390191483190077283480322561647271017775976531765281632288980138726145661995298957790804767573932275576505376844928623760907583835531636198937103732942439566374134242092950038290639745039511251637859896008402714533823256791481475783725817307882674968134642448432866080654398721958731473440272680817329783302401822527583405968510028787541768949566455821024895216053627042677288753361647993940606688986776638587245610513360788180010220592130478960402183430815333463894530325944787699434973985478101232485588945029329059483210195087484418743999308477776527056549181632907750744297536372278883915376304367988460758879679009671756714076353238659563277078030714416642246150152855677899774113547927815517794417347078795371194347701830102909923920049675209121268100896066367599426946505111832400331826514186505616033864298566661740840372012101243160624358957604293672198564558763062098265603497061844188451710101386046869716270685892222061257671331632610731768950770281187615674220213526886546151622930436583871001406447375693814356221015648996607596862739743979428418258179323191926902570935656556009857956828768239151879103340468318405717236231395756811271370467777067197020254406185548393322552438299380016251095831199627389127958311621823630457421003887884721458143491294321025116300388125566031317589587930859475192308505838512808176328352564089743740910368721802032951041598483687224485617341170052483169075940189902559101007552829734160805978521528536331983203898826357715376735614383429489992924031042450389565620242191961794255167102786840932628497635508491950605389803311628184370256538774767876547933340982531213734479664108039137291127710795997742464437294750555370885600623054431844990786121786830861744306477670605955096292748104826134400597439495975028806793300802508796443543579667883511260267325564125448979208164455556461382325752665131711333289300001946562720571796138219937622520973833782400409128593457272934140334396230729004614289911369978508703420370997981135280943448661601583930279833587006777790702547964397242717318137221366642940952178101820324000382490427418533005853415214322820110404157176786387767954361254726911780867976674621716350846230210560069305126957004568234846822534781141800112475340013256984627209651765849005019347225404507965408604748038355043028956023476467835460591884779971091533188019238813626652975934609940913615829330457325077885592274277021158883657049294776606402335174604965026947537105866893204535759515227880506107017582325278575883119706342452457165120925790286109576462525805714654748861957508853816104739910464095963093817501657007536842217583834069904072124624885384516970936226695026283273398628568317823276921470062417868981057688016002233912862527971784832574162701122125527770261314356414773875736740077892052490391249280044317762822189044773570617261604216372185857356214714228458796474461696959366213183624450780399370167417301260648764744667094669373003058655730710187579967260671946253029182238265632761959670530216553169474828061948987523325072237591407528412750458955366497345894063283863749494740257943648834064959976849855323563839132238016760562501698411758221094521156326098623730077505821907601270514952658031108666150326255660398691856182498797368613471325309080217643110628265049136914083620625047987368540546556058750524306178235491075039845676313784538952945536814650726668477482463558353404508218418659757469439545558814755834308950801024104987122617625092816312491238986234505150616664245640077072952394740518487936660078356570308140448078771927307428510932680342781758685333838554319107090907437638009110784837866641000323765737593939257171587541356921017489832992921181890290356563726658976715467602897305892067556103857245943672014768105077342940045184182963712128635978238625617181984602385454608625727984104478034516372900782864950756825260200931279491497847182037597892954424767400702509768114679349107331931884227589640028126419498989022063708903792074993356603544955206245273559306341966036345460881153494301116876505588335622533259262640425069626823712999856556366778411625562574972037256407115202533092528515836657182068553837108377595074135741969500826198754314689532239404307627679508546600774291081062392098283016170174536982779330141248080402129631836476428326584679053177206412649133602912691667329846912208630618023668901829938333512192498058621425689215521110410681380958177998602950157906863400975303668600713600761267479148617229812915267513359994762413536909893857273451880296519593861986084705753337262851028239066601985007357125003602218837687536348482678961636061541511783284008120125267571053051877586519047483085920981747076932746561273074523724565661148384083890800558596035559173539647440944276642643671707969667422527838555278179650466190666437347770783423933477805617878331543918109276779639257345781827600373108718269249969032515790217303287841100400974331544483350080163334384212090842081873544758659592059106178893104451295681163062855713148764047405216479895788045464385849394959524005167725980529028989550356746736602931064348086605813946555142089997611579187596487795399374997108403045447716718360240501771707565395541118215623006564653712893492045518529062484799407874118886907140177531313956128856029432699903772116600436409909705627469205922605298306284230759126144240407111661268108779136777069847657056505670371579927873406894214256314937716666790529696275528569113891673105520704169731208240587659234669793642735555791690023448162159451353881144215196540402222162324831919072077039532597000856776308972087609258375774676645546752773840937974668417957242639088155077921627855496971383890537732840836811800754355527939270378485025817399463442844993144656606301907332123664241901802069001101720410802545325447091981423940001599257249931479898514861998996699137289994134287970386941439513992917125615587037452930117647124128884113140895676224731197783736457357271918429504311166746218424291970540083451849066195252688936236652706349365156404377045968685185915073837817924082028630962742195919820177866577165323186760736824250570446722667339665647332952063208356526844390733257220290681604998982160488213051478217125782797659212114341599827285309459750284798355296769223863011579637242653821707578848109198963333633122211865046995399126719528579159190059214643692230723301245369846596351443800417891994094699818052219653283388288269427589103700036723950436176813569943396692673718157080581276713091826297850057243029212742420025068736231123461569439521599148729545593114993744200364491878244420194253839959649376652335393921892163026377588668705520412907444375888800654858364078499738297935700261386447349608735702361836430910353700807648428794084918440322448381517838418917534269910311613457733847656499546351154976602910123379977264991798793110299533771840451569256316287567110226222820786755299126250916770129060572848813271988148299805052239335787029237167358636607536815694261548833232340873629635459268461761050020289694859576350514977875979463374017428346734753531537271341839584867207315745841288133632243689795823473711745257975504028474006465280790924532819606082120352135399651848311272655975132681236498039323080366566016056428134533404427866819781954530797569886074864110562537728604868383603283381965225388093560776584525040620923439084178653759017600844471857884839216090317545740333239076492910790086653941067584027245551651782136864692926808243966931004790607846722305071279448636980655599834325425845938225326663721694381584502160424617641611706135506520615623454885853135773621049021678828060186774561798887637717556109994901428141924604965351667621241745866234623631767396979665274162576345954059124283000409590431820305197552583155843801370482883168359015855659736821047932137101813379648420904786490585347953796337344081997010895430938231212910331128005269308833604504698610470607829611552749550448228310750549975050890412229678419079236959593464038448764815956719584821470327533403912517463133770736947724983004745210963037374044914871013387514967313131353560821561208481392813309493412325797656445347252571141980555057540026536986315724566537969693516367750890548415322228528229782327782744838691077443250916171866352414014262766495173844846920588267690079844235799285800488252233781533081336801916791326153654756772797730013834447933220089095022394865690290373746581406764192755020320231853880817210041003378943944956438291113365951338659264794376550734834467221454949146440349953622387381384082836237250332316669704872067518971571209599414022129149714169271918369681491679628850630504453368261265299664167233230257680744264735681704150876403611927529645320693391764252049631954866898317791950783776162672483708642365610722326879031856388324987278838858160119127514133984262665836391558977141802550120031052010926956685006158941104710773089520480380051251463709558360979683127328490574768842022839303624695299302860147791937618553978589667823668879941823703273535435280087388377164722700535644310735539325209999131731577547766336774571089584034587555281360924316776465937549915363932419324920693950214543909190776260867231250885956520953300340338750084882459098361080587873999263741154059638782785610649635156783334458638259094427905424227991895019453333703745120679012610780302035880983917936441131869944049241265019488291750998960646635580314880480078155284800379486671532109479578432792084635684398196254189148948046827091128884752720974253878697810741787335732931644614314685122792080987615202108897713266310993621081264343316343207757301920504082479562269094610133172978333095131606584578670073968400392591197479492764041625857043726558077230402697481435092949130716528237010414574911229101864893296019182201686638965128091183937166118900410093786253163524745389336825356708479018226421732578047661947208138108267211642325099376556673703533807449726961177723276103146667237921163542372316062641973570821069673688596643792140708771582397113954247710382006652933999683291061714761995699422918613617099649159067976325240916434377459074577131854975401031820778689608815232828788693143601277880073069225842978209744881966997228631873772115007830970902062664545586995371600756193319396348196574555263615102389944843808859657236194207373364714599028579870269376354105417712573907598690417765506392126352828912531665887814376696456329434945375274579827134336355396575748571675215843062544012957193330472004329141263425438113708362834601835153586107430055816099324022287039247958059735532917524046161054831604142492521801351173472310167365490740138920218351716673191339312500014212244684584239377395623400008360209946342964341166166476511991526265976570081848087111293437686690986178669307505151124360512181610977105744588185105328415278141699082724615764335141603738044370504382815424440791304969375937690545860690855525745028206963460816576031807695226561348695004920455837092643770446652608553324219227316879973328423091389358616611103235646046683869550021630380373333931312396969377207213246491879462451733065371969306872993445319836127628154020773448851763217949201858239052996833430936888606195111823937469634869840710447196895376407443920122145308265808098921051897999618307917724573029697906873539915774889174089549789134750858980000457615689715607757988942050050108495858257855391531795819809356609609194192945757530341616719536247408314003777252061427159640220223521818817793702913323972807042187798180104007131912674200169527989434891592428936079154087845311468863960853379775218868811284076950459089763800255252603643680185598580741523353201435873414788199229076275725108028833688466698962880005486556324625500258570635849434334650938379124905792256517264894806654633272322815712299756181389960722935818508699608473384360782699630997844711420740942212702647095399522741815868986948329243497487379815894840923993055140052646686602667548768897348037975367007014137119861287581518613698638795471839554729830658350178824070955806630979010716017976742877692472471866356712025047732719847214526842771070506903460926055869982122341460396352567593811470276946360128938555436121441846018963336170262937434621327433663421552800565662817578009395197863333648396092887602868965016628321086131341556838031809707242857955368446296063698796854061072448185884930648795079578226437186211602887849995464574954556712795941937106284849183514863190326934246942406823196774455034051183539137267014332175745322693755003991673701458556671327762438325722575384170571810710463984539136747420464976966091127846587456460454167477802783644181208206902782034263249874993699037895530352165709486642173220261135441978126513224457108024906782777432419895918036608447107959361829872448447655395228603991210396563360975628631804081294735269664022326425496513211028404234076507675475067064269804103991922583776455559712445876139701992402756344824385566979144098362669344043388472932473359115073750214349427406388783962243908259059354141148472753428588691124437064821609668720880964975362307677705012271384610430296811956682338723602688689192637478822117635121641045816515438213217554601042484775217810335793512229128284735933718199317115811554969181432518019071387258960684714641873895980437939686387167881924216126774402400191365045752470118538577339522785380858638733057370187365677759663548825385894955579298407878656140597479782462555787359084592517076761674045230223141789834962741705153895161414622334661421553812726349674395923761653841433096235194671791103787286286873936914768280443867266515987216714877798118242213927704263277973491071985365764184144512832933858244565172833946558939637412566718105021734071507411332248572373200653242308128449666303535166103211357062461833334162357452273922438627212814504147131984387432601713274844693408736308996470716190006888193535810189906492025873611372610819757317597497587161854844714910062580770486486212050642487101710129335368880531796559249463578565797315703265707683994948844226551018522055194597339158711221947618538080725275148231137265011219581403508805815866664260027415362156287133866922419123592107307911160421271711798887193860352262716458991424975432207613395700657117225782669183406237177989238861707469561885409964928516355752863957760166593513663143183582789411907971596648775993488729575834418697037365322406467695745664673843165532288407378382456384055859917320349101875493689259994598675652320782273537639740510285874747886331970358039857652321716290869661458000598072306463639974934351596001927105869045403731045269038346254326433997159836039448745543984940505753719098482155286510233686805726401642695031098163098937110165154711780994961830500436152785944850266418464547817445852260524643167220372402144701220279616842903933833181052393064615341044855059922945021300968277668155111472834671384159721488630577579947390638529113378141504893751417744611695554256952296907648227946538420008440090768569588684358707888334066030915767515762566859548381352347274163068603769510807290657836810949686408898042841800734643740888287524331323802964366893191326983965001037959458008889046348809399022087940779386278537202496893196375416853852315608685795748671784415493640508209274477737476689018949102001850883669457361504872057318805454393371812825649446448200357104196514477031890943901355823758767429531826598565928573901185128403500414962064398872585473315765856450767055802264184136256223577436994339275423028027271042667499161754658396818122257804067322241172379687527583683400053545826372576707776389046311185432390163747625338184674276311443940075037884266625101805118638375661969167336573135285453537659212759149428093275128102796188147786728689636496826242142832711463622010818524856538424306633370414445177513513282040718178872250228003613685803497045037221496032206462473484514812711569114630331627921307001514091589452487098001951280213299101994360061825741923338985617439364799175855215979380658551866812290063275170142301789852481390403625277210583707048704603452148630364535288254661343060198846021057606713323565203531592774691249211230278834287439505918545568989710388851552526244486729835887925366355634044081952952159722314172538743701360484172735780098004641542302807477857661523578170765642793210662480395047377560514016212086322997273553875957252996925277657889686430632957625410842644335827660121767284563729618714941624370109336391347171385341795559467450244239461293620859975393410578949939980732426079559456657841227728729618427253648043321657229400660176182671591935249785918156717687071018622924060909023338118381602835676155499128472965120304279698333833999138258445198873059378530008071506770700844675486389568962761855246290962730478832688711330684902487177822769588728446218213618969387391983524579724616379195254898594676502809401087124508073638750650793629881973509520701639002117099723364375584554836868351778073790261596227835598585217749802417346910893280569838607663616634853482320736541039340196549452210975748111496110150566837166474809520936325736487433014904031278209974618462896622355994411563786143696624428139023586013033914675051039902534556716950938725265658502706848596652783977570257538500139400494441639609973740144572637959032256095692491067443445418720133362109941815861466972397152882705850760544936942307329521047439635138559352136087888901061495502080195330636441251070394021626915924010487001553152544374203793752740153027789502145417063514545640881886606424934942887120692012106588868496677103895490609800849352971551790553658518645194846642783334393001452505682515938215129131249471929433299259348730385827304852193655217583191832843441507799324603938243501205787652880489562643220249862008585867107674395765064568803132643439424913186035730028068955808234081269227485351874301332109991674806993086316621509894363208042035417087604153902871656268573148503366378420721089216475706385203690663459569348859989317639005032673770506067405853232845348688242709547023047627058106953370433469545854957591474420100821271322396514196298686733568739040663340979124622292116408302396290949859597592604493958059849413525981181051797449070186390319241937683791963035115079044194896211213164925835924180487970013065588381084398887194974905378721621128737730713155343773524804840323397156302282172826477966067321603854323591600995145657089519154010064693440538392830720493639068120001523448900700087770570306338023780946458848995670964891205782492109803886473402918531396077344658344331584584419344992709311451474355668466470636515082139505433492566736693677140619978843790840225524623019554229822481614764287443843111960954063041655817353619102006592382921682034105869136319875453967281387813841259262300501477518278180566863074239507957841341673764184274273442286306448373183740167719642184212847447169808559804489962016237396128070202650271362676432137781696075703335938476828611148266447392728679837432409563315974376298702672271323119422243271317281783900771354098533863172155972110992923482601513024128623264648584843496488507280963167107533508013998411849006579211081917069299896328719754581638772451215810845415819858362092575757889935000878361278129894717862236036363140456675476062349645339183424896334810116557843905677171959833377914274369816880859931930697225064329027860702315549103651061289193821580777548104001623994333117498314987141814335573476356913503789225413346146678749846316533039203493415396234674642620017780129878839191313725227485015063967506912395946602429955910505613156808650235985517249298915276214911690112973818274528380792793521930139312309320304356490471292247068308897449968158135571087263605824984780337017913189199202266105585639603737579337138944875917327372274105251435027853675576510398996872586353919900200467882415565641086101862073257744312364328590580180056659559477517305161104721105695049808244506797786629927385281182408189918977039178981990594040333468066081014805909236320684109798654153766119575631440493250602860143357270474631779320884344034589352409986807488054519370037941029896404473120192494415584607965271733584694552910936971948103236846055773649183997752527299002778479252992775301073804081528969635364009321013191271675548564865143496383989441331924701817862985417274175638423632733778960523669062273614858260125608019039026338104734674810920943281046086085091406269050199647454496925408647282980485986903405218741992051651526375233376382447338603047094141019227874835948632066863710564234537827935833142386892941816193920036561044159815107980175021513243785324675359427895727982680844025794839952701068949720971829549963906089699774717588449544204485138396901125245792296254098334022874834489510970481422843706927505477090219218094760067649323587705042146431828536808256672758211515255669419863971099392934616329520536956244229479034859849327909429741786217543732681361215322082682891633117702335572935061032515174342783969169686801950892391178831843439705948192276803724378524825760625087508322531249800288485061164723395317303507573355135429946650518997298940205339537181192660861832267178066268000724252992838129487327481598607858386945941379307556179795280617911871090074698617431601107918772031021101499425499252552528744878765321094837022881450972325884992833738476357587053219850190992329074551392100013884920217857644104421308465083238691880974210802152907678328483063402183798384027868735078478026600641490467525897499194723041873404298947026788704985738899153040315946159753741138617662759223130335322578968871130111421686262499731451724363907336312223023272567311261916194074727774202220468470306716952180670907129313912885788192224087629452331575220460487790394387337002522106668263975289454720605210346072590565824281991695414585900402014579614946421331106726047222902690075309188787293205590340744133369054742150481660163997512650207697357608184029854853213878076639765856935640738133756751526419817541386573947922393006808138321953572183871469392899112101096844640799440087733069498781039420283317277009964316556357682053243674720403492498810227391316053331886281282889005459992322911947352917532750353363750266553330049147322989014766030497034608451221693827312105758096783556761402046016452701935396482720407275566397845726073652889984570095839416621888683497133776648506011487326378613418311216214845473216829206921998328429113445048140062306353214697547678456145651097368075744635628892033382356011853285477422034804906338519071716019333774817444553130956899104248477321149714591468434904118995887767947604031338023328697241721291622451811582340232949439163187826475792328638325883538905052729017622166983728280550273061992977267617209227412313028906809019321922952540703628404523849977552100400641591851999263383143280461728195246755271453582925183858652377370563638413264986728109690674418273609698698177333542508768290503011424348276818319546168135418271345909559069495146637207722201324919259744544612235846884764316249721831534766693313150084964314520053366021507114806440416261670805248859146527289754250631196754130266336446783087351693173525743225919028743105668455561107944848458165321871832843950865029458764497896009430604649528387591227955998800615372964339261125132435341905660735242337710735055052309157462566017956475079624277647240787624993493505312599206220683096935531966638518135636128372487060155989065576468779945635477958159106901436423699446213020087467753616873096812168150882869300653000666350876222435706231852460049954902674787689380497203884595720970287059374552711422187891322084808132305910631348376138578142844367441042450955427744813185477967890707703408274168258982749540111955087693704569691938786988268314705632827960058091601215294057057295970809270399768869809139275188930660663886868801484628814265956571256001848696086137477770357699679977961605825840181003728217237319481644357227740305474183775175195456544161975337095556720133121031459491889318776423773660471957071704955436064256867837583494394198639000077186582327858276985325111226994215900435290631894339747586238926147495965227863376582486060313391683235051617215454788373097437292347954087102472893778445071796805416066787135128364376337343224026814588873903702548725845141525591331315242785261061604038344399239031103839613769072604225266607702153247642820354567724635563723381915328596762038781903954831710485902915278813515459309835624228040428285551985035466489050183836797733454431132593049376394372001977851561226890333414188159263297988271993109184113558379149432061957685887454638336340457363527616351373459076604573957359662203183704255365754282948709970187084762610549160927504826159484939053082947428477978248508450689654399061595917334773451895505262208215602492541831860666884587364602930293621426483766062257322489131120758626251248143618862893537017141235920556925269988791188139430933598144566319251986857855543562585808299842403067649676223905177502657378207248106828985529979509433689710050006713443624792957104982833721089742983173301048012192468107974733143878174876633263319936713951216144226131790937529577658394371041520839281453823083099478785958517449315040645952888810537223381708884834579600483845311721542319016000887499501237203846362098287460253824872089982644414389057257443806316420373749926398413724281690257505691554191616552660229568585534345138667103413276474185185425131883499552752214224086577917489570736253705547688047089270304266826792004529195217129159616795473562964814255467285221119263187746378149093638116838641703700197607533019130585806707599259950718527297746958594401028027808764071500391408460341277814942706684158137556138171040535370392463521010232433384733558467435515273259772061705944433939390169173774626213263926531621421064714368611530601475945880021378582195407782026778001175573303120978867274323077377324534761383577145740470617025740474057655959380366229137813144132710425595079048611752758028048038603679173034187674716331000287530657959863621439452709596456820521948032926788911194772210609368384066632124811591120674912186550507071724477532962477809040339154060422020317281796003253884866904444013299558629273584063032979894775175218518832807037748827301767121392059602721272941544751127141716666462626315883279321645777553267585023958407891055685469422270408149547950865454745330739749786980303008785957010630162620166782138680184865637401597598053335312641903455292074733100923075195842066386446941873676417348638393695583356105635954881135954163169394685162487121490309176123384123583211021131501284848763706636264025963706012838686130511760445325238287765557752085236192316320630622046225737036536532547282004291206059330903632216035540112808640604665931764462202939500782777363833124721556243440693055905410713942308673516629657545282604400850908322832006696236318821265134192499935324284384586562487323485061878267048938710220991238324771152510770244958259152170834091095141471234162678797634652805932519574335129782828600970069120562636010273490972997318197804538589444700206236399073556340597943032997538246900586767631260668868735147964959639118036020671066336425046427210821094686565808472978322620586977329926224099038457397717412403253475978909091514924170702651536040046681736817044961664527623733059271899786190907902010746976960210121929926843026772744242868928537240389203648154234147061262966886756899025353716238454778716190704939413631109701522787657997908060362412284164569020480345424837068441163884332332262165577889711422439108968312276811622200917669171043556737100667771051101000063778430180102524915113851877461921372282388683333534356503444139305010679452313128909818413813550102986812564528647010222310578676829264831921005346258587817275625745169701658305618869915585099865071466510736223998385429977069073010607065397884062277450944236795476516718020796554858004556252715393420719821062745154568057536115424348740646885548279871960245472629793259321669718693870935602501177208547797918089204577408220349356406789998672251427934393855992984463485476415838213877632240547917033004710506762251693167137663451089129160075362488099692111984911253843701755083212790666211653626015264602736421819514122631369590228717881014891947776599505624987911892336634327620760375815103614368369781219574748260540770795718041726695321273399717909131241985449339140334923774556937753774137867922916364280308501870857785315258809563911929373407898488912487780858242806870150215772360598264106981294294683489311430548497880192146685390948534383106722638787607777799589141569564354779768604932650766602112001416239620735863151321033656527197876558460091215457037691697188729898615349809314337161616055830624358836883858201210098865363981612246532999200942306808179192568911259517452705620854512312512203961886229961954762273204273179734700780740349627312844938207462397776045099714180266234191405589395770438141979289319043566023792574150851631875484945798550865405371337075247013684090191911467653384889713036441141172730506431124530848921391837976167588853538807196902831773108377858834051559423888727891692068521362156153883636007967213142176226892181791043549999004490757279564067769872644989818251869309075523157875854102116691628963479870483482628095386744033758195633300447280696587205181786126952525791365434940806682603274915216923293448847329723488562744648333189445114537771571553495612151924447053874081730979384987573195164066041692391652789601057727165297466185608296762364962382344875946079704657345103800236894917595220592733327571769835620273106105575318813203490262038714084364436711486396926951692109198328707004094084836678584787289468745715305029393963796088729081916200390703165828941664032582467013587788881297619224843530917801321174302682536275902592028904635741058510359069749115930723377734832625457771184988154470947570958163665548213355094090926598804027393790505381805342700797758301303794026945632882160594766585797802330748306336743457480158960100269877525317437541671504712522457330673231874168320421542342815561463445841601349921018193008062838602814153137361266137701443350444372703989139949523921893206791635704793594981988897069812223307513955656210571272898337528927595751687135048859931270729179375117574746561338436322270796742422495920683602367273599229418859073431722997083435490526772899132391259381384091392624663854312276483178788715680255131113687566934894925217525990155047958042071357710339251413642306823209059298861707393736835418212256321607105118060844137472678520469694139282649072638249954179147434234593454462386625569861159805430359969878578796962323765091199576763616864197905619852411074263977432899462638802498636401049729558893444383262353502862916515554552317426181468719325728083230143015637735427959064818384188835158768719830590457222560107816126716845816379575777617322267094539715458473551784346455552231950326328452988640021452130674262792476304916525123393523898895555035164774216372966455028252745394400922643642698861497481960871281438038004892662793630555226791625315886927356700660869896712041048927644002414689096359504361466282957691400394894143343024353802092160702141947619593822709222088598183055318152828388066293862474537126027498086381108673661278513820927524258828768495569020789945677646012580081336840866531470292851084048337480929498068929121687375364683114596046438940735111550867890572696654193159523848393014869526288308803227824511417299575632200570714627206286486098690379299354817411809352917110431279347272629534587060595972183560377192305774651979340374028537150948454608758178308478321096210667862830688408258817938316819033572802903351084159762776987829890486061213792980768940142277851568475536548619660464454515701752885922655322491661971526823967709789577347563240188553747432469366592457885758802132593908211790311438803139303701396814035297007733239430328970695313541493310311472974193102068207704091219565836660879072847916281764037692972949007405804840785834741204889053393166109779043728195559993356843684717684415785112595218422664775861465178014630875104387090486649304339026658967577187567773428641389315490357299918036570750271373010645820958005746391626591123209058223390781388854432357992326618136057784259029906676737870597558242713323985536631038559033462523664942142717618167605675360239117733276218857140484543066968681297672533909799451763797513619576179869889253149183043438990746604860340648565924518467411429319626760190391119216878435336541875097015896346590027233364949159102841474321618216370237563144978823862954223321372966992810414518683293834291162280094586087531274050154354655993949359449765358787281957918905127344445109074106338565208414650274193725533887030072396866751650027034069600292355681160501746861416239576726735793233945640004518958373385574127678433018537497793128796115883765362483189174138504422660594871834253486714482037072731661692237549154302205578182737642316985600535367560527606363998612205930598858679080665671578085128099309648838870937137167616240793781748608950990076016147975981930919736343040535475654328558836833726496555851158538008939055783139163383221260151202925287761382419308094429769931298773993675626355279385817517309187716478039222050363601043821951129214924123985132429831153467135168818143852415120746850666428150301942060503154479397132736073486056320863007210248401411043327893955743362934215030278906850132649606346083075889336062650145335972792891626442399484718449618498811646386514963801576260059165768244407502645000516745472543163921522552482174980286571187643555170908899928417483814737652730120902117110492954442805150543640651099182308956229954564422521922971791862111514756588667410905792849307002440800795911501285521479100915234012246206588805445132970093760063945791011437296091962042323590252323197595524331408773248058601033549607675565323968964100128509909662702765031959782685015328937403545685177092797792080916335864702679175580436284549280429811905990072829190037351242211420298580999774469840312035540013030004515133231852202205855704283521326940533797392720099812880872252472732177386461702809812641477474603675149439086091101524273173535888990692960310923360679675475783995879313686820464831907124034511283823011044076326812309184336692440212213053425819656823409975851609494862332095157729406612892634862220368626107507268602713415679715170612988888960441390146129373101728821060747435346571858486460475559686634636817755412662334256516758686298663520663382763567750987705819759970429763647566039042243316455885073721428650842311692596425288205390438253170430707000510926663182872235481039782638720888498131423572631727182333500724035099142988936186024410495171516888831306824490229767281586272327348989913031151364424277108682222636932847249127849235547920423796016789940866958949700627651088444254147266939090350244292631848599942359473160860626814497350286883490244144143818865410025454381461209997168502753707236029126066785314748325328600549674950877637237226739501496142353652445429018083845082010571676828265982099249599568903622816202316526626954754572732962745781561720214895387665780720752549628061304426474084532790742611460410658042183634021950123797754132611359222918631508997067260015357210404442342335882346993930304578979718597659984920461456845222454656091644069973302907458572566997596400462074453964967216854899461947331796502684915599342783417745411723132618186614216450930719607420018258722185676773092616144686417866676632655272891040228184786282186676200245345653974252232810751474603443518220903584326883330357610974224434105886465802439102657951411578991006813722742402110076678805447007680164328874445762544398269804354374983588457906339637878379018485826626068462234129726880569248097772763613688059552414069390403516744299807091587017739925781846684030780924533196840729693261872294214745667304031082757567853580650028115685920027765119441948170400610086728436011593661577201743344308896502043390793760281850231734282568397302339139664640253717073987469820424152523747896671892706346514088684079366715370834829057822559801801357114248422756536958002061684242677390646548853940565786675229152257019418628926884590739747843856297732429195332089497516915516559332944163781792530424891353695710561923612706144857299916103894893985650731776979465880047140984314570052886803175443516688413300707889229990201370377260038180035225481674528047545181762485172799796785869456094683290304584693347242887800191390948807043620091544465507552201566701978351593929480649158714919089086360031944088828852588213536895254258918015926555643338904109853095733711504453254780390450490099929625140947943741786896299707764692291194668341740373441634907025331192715264595040439963782973336851482410447195656358995448074586089039814050431037440122043161212498543468412622146200110850297566998511739162619319347812561085196423534380202670438006122045019901008139974960800092630236644801851114722926150914272077699728148487309663274316981138548051842244382104874116380512945650350686041746055906134841760299061173453154758296818254083186471155099544991599411278948077589534779101408717181524451759679668901758547367589080765850483778953635148210110659573427197505606291114186004396051969700343401209634771141334423281122512752296133772337843569489368487496600195932054253106615643995998071895950289190944490245878531489810195071782426444627387522943266518050578604375139852563262248583410653456823078488202862016856389511268157111906021518834305932098780372482635814420667359685885868259835576741262201229347629383991629986875590558452501050252838649358709428414984405660626322087698190401541888360836063803973524893631350362883033230185364183357633887876332511871537125750944367215108553966495169214814733811571978744184081777320529118542989693524096849489420116072998196079658664192143208032774101848530163215133703309192779257063869428335772650340662866512299746673573250917073070540596047455482834858635552227912143755599072738490612326398709216768620309013541993784724008995087964651106322982700831204338850961953409876194676423604805531858234406242736484210258669198635582402361462403634921717699829263859883068856739242533447116766443515472269633198532574902752676881393503896514747053763888891926680533470483282840354134939937213304635958074789223500191442106184134254022853061509443005705935554846523245964769177157135896305426353640760426940655763619885169395127782248182768702830846384734620328382185090296458038211656554415643079489673125963039930348176757096804427984934234947836356405888607010133333769830593423068170296584158122574875914106309255690696794245053378596152078634987839929284508364687976005189692701344031730907512113673490445749359342610757450710558513505407393603442872621109561214903082045868326060216427572718074420234687211027253011695879329545682035312088560263040972391356652063531633149589788930396195336688681744753547115670374874801376995869170391141469124202324292759062246234123534108455361516619927624993990237562263913324878811908632597985919199926611495872815476061609654242449341770781741284504236394955727178036160251051770677247137144150455046537265628821246547657404885471178563516684190069521379142018483426121415249069453174285010201793334673008188023425209246116578990244680183477792789022260318652787901065870646443130504419098692467697431755225078566072527238616803192504309924571359986622161889924361238231100407742634148364481621774805584776621449099384132642307419291581254008083535496730561503472428653406823148976994507081579875684019260337773580748392835311967720934052557494347284216806183065809281812775254581793355115631824493835727845541131473020174068818341353808220478110305483255306538026584461158236967805847057263236719347871576098802436755595505620542538650648220486772303609300336461766007809184046304245873037335833124799333308933438142657046057151055916223813984455472487391901846423157966626404560249091595259188768299356047138314484661316069832664223214109609690561566770428898431781342521471860024215089400906163737921481791370522970924690652560956108564110058130329549449119487325832951016781696133288780943015959401450712482701173953048113687103859485885101836591229678076112135534997688397801755979288755820821840826524952346939224943602656394714369785488370395438090845472924795714159528892030255950451290529679951736030792417032162091799397267661039349735483954043663177128978207976984884615731350061786859969926835420839769741301788551172015694511157710141314346146398058916181792303721829596463197198502270414353820146569566838362096258012755945401172214814249609328057797511126500642815940846480150065860968660570620318968834146791585958377780009371356168279953467085997448856884195199875778735264073596645510405911294092621743268318119098790556652881497492183871985262074917016086471589247733349607344573616235597458380177934218879120008871684948403238730565592196559179536346250146493809031360922923092648705960417933204189802044078361896465745497800936697379661480339149830872783038647195791538950623676842929591335761760829532063023222931712177436220337824096230665222423311620817913688315263620944031094011481067810897888185893253090159670695472084752110824374994344663399893213306874905700671958496408035102558382614721590740753903437920483211222975283370239172472586176526388090829490810885809470027312615516780136416618572005253949737711970087563257208969132122374112872195286931170269464348485890614060899536484624212695051766702309716099938932827153443124889223779398141758170811790175715328855463958431025732225739575849010645666136218909081487718495903691841370595758518037325365688576531514371358643081449935980554393517857721754956332630414014896446862085413638528256780119947648280008634558994315000251223785541487398688527183175425856293979025062113763860063500720572286697019621544873235856085246761564776746387083156939575127179883256988663005957316732251413038277226648548990934459692771519834135470387257233171119598294079497599548360381933846668715715595394949551456783734977122920085696440292327227160106269854030702281849950796065422881677491039363309916639776951276673121964122446377001503021404083879522263177859637487814035062517886815163440176545504755311364951777268523161075648633366125004194291600477838194449888047188973608420193426558296508800060618956602637971996355963973910330722694879941109906928157136516500952163064358251925807208309573215551645538950479973759025050275030828541910846371339513408397555046564192137602287788661430614231791800656385692157863273667408681073298444861697719113210202397007192124500335398544359730692753055264739911119666077217228853065043263010473304782264945135044853577468995261649703572088644918859168912039426469544525000723220566211259372597395538281784528572972884884373115273197541243920194179227175405060550888026865888415673658551561003174971767194729035338019059101587918350385422706171431562328642311847171461984004996470439091245849977892875702286523604560086556549138351238188431629810580442145328238965725808789436196050232198700646789683828557363231548641428190183523701813940422516855587846961773278209110503050506744827432936689224747345748743555611123702125342215199057903850182818721569849341805977940931917532823859755722378271780747646545326550929222700234630826937140788029494851056164041122940856679195596837650740529417967038045794035495609683057625812921639718460536177982865185055292489241783565432906150240199024527035091198173930073826201961009464536170135082967176296932249789043878624329123249454521305468140099363296717871473977659080573790029336787910889502262472324341637910813703940126014948909597668809265409028794648827308650072052592048241705146968675505883505040805620423787427258662748985051179222470618860121301934990926960220872225168101455522410651797959633070371573833322929857457562466897902179359821764105231371434232736300316850932808636804198815805958329073638026370179603837533425732736547034531696865673952724562817368394797241338799811780815473296870800759424799060039970730740563608782512175616286032598653706959649822532717387205972314766979982779655472090500674795135797428765646992793759086553869349555720771438653501352246757005855229691720993871718638198309865976549396881429554917185967684226226529534202530013685270259865464968323501628094182314690932115236777545947735258389050044039750588711344736895897242167321485529978553049903151595059640127051686541740883995727524548986290309755925834589711043660363372772666333990464708978781008451366257214934910538978955082160468229965489089660675079145159448770091495186133608698033933310344789434221813176251273584086129404023248808990107162827758152421845317851437295869987611681884834636992505703136319840586376413023222117263566698342560955271918987966912004772439291926820294992459009102973217841621337949652968732642034517015936296563790890166381937398208225021956438408661356708757621519904587728811994958285664011021064165345150505743027036339885197147717086374823505623988126940221913219604563772573040015115765368759303304997801264543959567410924882042553188735267563206855597385753814123551711451439656258524392798628974848811757409600078876873470746432402411832946568855589037812430309735355901425496863911314250523848468502111514865694841540634107322369863453474939542925289499641014834636701029553210594183976209622677782276706820334040480241512584277568723605189837434179905527649176362608286929026310598726004468874319709736427011057290802777986537733412920363076011748024436280534731240780923849660293342161334336205179690850700335808133764006315018996785440193409043788982466664000834954854901411055189325800511770003257781553662955639175870521992891538788117272618295071398930296607312260505233042656567847720344187941584030243726206643586626198940979500295471620296455418057931359421993443012621550177580134447014783718235488471542219182019232429789135753966552270947897758037589506207574953155403857496531704563349732651213531684317652355899024367005904128617633668779539277509862380161214308822064469985492621889234777056494194065329550078589638369839064660892990587193956219498733608146886190426225712195006416405869368901559350913328211144026496410305900182608353162427912179641385806277475426995355730277452107766377014208996510592732339233972434698271959241655669074656225879767598006472987159035253520198188665491301554400172489897014236201940306125331931802926780762165235282420046683639290824781362065140010989538871394651106073127427648876864926348989492916436196767771284218163118289821570615647630712461718617255671013631990447133508182380917509792908656011985703111940093225814127334339465521638323393226803227324661354446134170060494820775842780567355697059266328900628130896945261689151267407265717305924975662525398244506203581011224541337894015178841899119238597559606856335725870593981265272149669899773499271993642478763911332190515034235540229908994416636645969575266008395469463938892637481289409253897217625061768279037045827286322435277682055704767431419556839719802427657063862978837212194071538581232389595689097551400429182871475645743410515163008721886328275651408727596943398015852484536128469369654248789790632478174445611551133379242516635163708536444680340441100338139376610748731337976661778403786288836566251434839230056943073323498063626495338529353861923026841049253096384189520803106253759389471302624611010004218359411486280392586795436467289200875176825486809908351708043332582517255898793539553431246622489783902326834521719133965248540463614273901143271577738349553934720804769740368822439849186143073366550510585591611285417247233147706510461463345778624132573748495543235849473496455111748343927826366361218124408594455752521303837820800362894799210758551140784194398428049858784595060620941701471270634562966902492751085408951335662590539911194808017821241615130847716285101920554857058858051152825930747548894814202340155245402489144126070174724588033801017521545941174411406656953941597603178672044730187964468298512044783180290548148375816491231647379711725647636934348727211761634622658945694458314145441188577001591342843700487295386600723903756238815931440955299881738668668848449136248936584582213812364334625907261874527948469209746166748890350253341559047189643634475085896402376654890341656117260205388131943996468095969301500007141966791701903592693272215275135831078907607340261890499527121225586179675496379191862932922984573432105130459273660446153477250680743514393153487266961308642990015290442242596892759275555267128466839015818122416361764251150631933002242527457404166482758168892405395926932757611771952493738040623851744964508138817414578428496788940372707706670119693477462249448687282070345200598071615619614975142720796789520745107197618879049498011631520241282901589343294269673425875686833178872842017536134300115025451435717310816552849897016406498026084912870489388889784308954323448360381560268502913986359031789912622937287560978663825705627419772367568129237583654952711146536471781055328396834755738094045946018020463040649264177778051800819597631266468390207058323896708082540081278718927812314652029552657454565633015837234026730837681897712034640246911631277898636219283748373612298942444978936807383691828905140792840182513311653104814665313483998067367478406359606523999664274361383376348339095380994696262888177331998292984420432818209879316983267324078869280244428245006335771158365634067599744438119815051897982875291922356603290568982874916244192572375955682785903236222000234221262210491503356881103057241450172860724073559142373286930883771414722500637806297130782588371196266810971580492057952296153947264982214378352119102874631430985014726112256488419496205346967779979922790637667404019608793664467484378911761133983999250925884098560093379666734847548926275099519357889663851474862704908795311186113139459958837550745887578859633731986907526892604132607750865918217744607246085590018976153578415721078021145425761827177251491555544995827419628746405382159283597282318188823139024059277638410443377770067503029723292196075183898981438759072722723078379079275513141159920928912593517199503005817619485144434558572238012385518213344098989907081016740202753410461241310092265087119279128334839756415241045143909311677235817072433724983795239717763865332980132169237305365524480267121467158125758190865092401985510934929228826763929871258169446569346862200840563121443635606673150730954446578746920595163269718634131823283193115840106124263925218350621707630377997264847554257969472986407272268406533936090552573293707231738249226460532517228163810841132148359311056300109538392952887370920465939286652935238338265880059247172876261134841075332571355833971429065090481370506544553119468006878539517476115024723127327749180486442269142419295325179632229647761579854330801125325419916429487556400404456967181214337337920683978496001714166622626597257853523612911647192034099346644647096178930891494344333762939600858227502433011967191156836103179157871444604721205271156872958178297952830695008892461268232735509932710925634731010185434218354292802337561861946624216935524151502618614952302952569308652549848745446197540972491939306321743866347697066107567517171904946206093496060082690348834701489925074643896136279860561911814252915206048366647528082366145614475779177809955891168381771151112772909085936796223380523590447616200157260744341144988665450981025566438573204918572426189055259817793069459939325508271482319987661294664826540413721562654337751693118257477869644374268475679347916657502685419078758767662318480520492793674916440513607632680442832229110007736894487421307361162621904434521979691399529105782891605678188684808054959796920184306395653415576338810291306881345231819271787326896394825671655590518705401752112015876040356792914752895558174010466679457666504768648344457986501815341969143249189176202270111924596952030550944755186345945255873915557882456196899750700609604966516004699609298722203321064116311343320827440011623137939916525746419672720933574174128878077295791057374829421498773761909271388518226108295280752117686834165629156030976678902322757648719220716303605576939773260554162110458164191097172474282613984257289206361948282250261197887578175685899371965136936174669541922162484571938915073949230797260549435927651320933212091863373278560781337776149258963867558795274053763386784801290563072101547593702465601991484669450600381044366831380039857291796473651062543056731804886553343204270964495063589591097776336469243457796961235272887589511108617231341194702134926395775708176204470605916565304706527440317404912882935598733744834418009421264479405486251474008752682794193711666881795619708519775497800468318978898397285058411147508716500502692861716622690912335578227540555813524331267812047505457367437393184823082598431149163279238625409777897896690707347744545438353106405350222286559506289771436275341980523836736595428135394133992119481961733214126749315120294657972160765475814977589902725035024918948066393997960366185400773061276348650062804628869258061868135824099992903848989699998542779609277355130493968235301538795486076960443501064774783078854489293635404549607739380156636477761615893239920683542476820847431200365619703507627673350591514604519185736472678391019655950383806880213222084806946213757555466333293900307234091156196697223753605341294522089851789212431579104190086419933862886904014548671322199088217453927549486737119279042317592953609596983265956540171104542151462347457620849404046106013911355341967569175385961355418806768648512202568550724661460307879327247408662659447203066607050500500660573393126635418749873762971827633391844584199974733372817317386316482930881840874414412419954601089980287493583439700039733091779338735906179666067645807931064807959898447474097269351031739034109553498939627617868283775287490990289704728197079835472498628242120948235065792163653980661128578158028293250755790559138525286851117853820010815903729198349451785026805090918837539470277081381847031007308128773525876826575370880147446681776144109885682311678467070685885997050430822475622148496265116863029007077617817753576687015932473727845561222894740961982473451707723535246526516313966828965322932779354625911847159922051721316075716459896593439063785134223712276768441674352530966880555217764817685764041204180277070624275103879331930217514303408056724866570815130469864978199065165437022429483204638002489285275070974904664811854773294501009354966039845538220982913029106027428852766548209998556052345061345225733768180534996490528583700558110773176946438672275408610992955082017736551646001317150763726372464567345455904737696312065740112164962965514604678646441342849356366274791108244155836445013449131073763541405146245338497230626636069521804512558611047288062561646096118651489854058731371009231127614899010965202703949975492392611865869987729318024557216811597823750029231355464723050677056505859248199199397722985507510570376886553421331804992959971732974577535539884450163972443127473943555232115846446996560976508603381301660345883333366464246134150361621186261440184711734343616144783047672543148224356191892940084400733673670259754315987583117662908080841594028680050476757197529395347278612374377595179021204837698059057012857871016329196124402158978556540765156149404966062931322622354157362301025724640696374213179203037771971990594000909335395778428542308173035435119447894243261210734536657893761185545383113053236593402503688094883579581187014503072487336392877154473501908677531562401489709199137862596582404712854999928876764427007309164631130374947109740572887628678074925742740160842872914805492289707992272495189181840014108554289058046409700543509265496197821189678533838755152121629601394440821706989128514096911212935701063471661176128007933671315258128933652786128847661678771138850012305289992619944715921858366257630692174240390306304030779178395432130869823284658913448891912678010974226718753322141819130774035080812017077942854636014875290261150716986509180180009041042691681406388117381312399741666236197987888901225072735004642422969605223834258979654026221497871227891414796497732031076885201288779840454206809384308584573523884543284359330351370294360577134784882618598602393741144745797810727552643381754568953217860661150358809243347910457178664808754871963662676846160649020100587210273187982441750764532588368729471452396264633961605762038160920687289703186183015490635333366919964071348158281820643023394021797891862102201321454799055607979706196244942543394453763954226968696459960674429292814545829892046197469628664172394828652002514342735786614125546505966827151861411031238618065365744884525742959962760131223842697931157519041815707855984825691792637538356142887471894241839339506319380166465567478735473952521690446836150736031524238430704859183529692220455092199706396162195426573003948730846951030470465389984477400754810961363432013929342029678300696767288999844323263485974919816279754388836291787776884607661221859797793471844291919775357541952321289648620187775727703903275613267936018064548264084760519622999168810861122725990683686369015944058217072846678932468757026023720657390669457918412612843070302669740251289489213731477266837840574935377945573984605299845756640755326852506490537541230801315703117952914345915214049267303436466619329003055271000159885547723604971476175072697880920633492617566466527986724662777310932379280647080791593962219218981559928029106519352210181908981265229128305219173409761022071865308671422751748740122176874121893677928968815026983961886541284200942015408779942632181419554349096935077645631433129835266734407414261012585204437559223639244372657924231607584637375749360797166758381429066735318525903925230768135124326416083048784224751145186823943781837373198158884797459199716111808252498237857732583270402436443620270457052007292660932608964227082400817956978663239976042180158648133268169883073049615451646798707504076648003824692197260292832054332082326748418890273799942214905977283198567954826174623490968934837376011333775857516016681645002733219011551695665840160463834374860985176037053931120717747171425639257410287945003462948089329693411707773853358638674756142400328991175048961970436765399904407722728124273853614976526011799285548182353137498419967461099885389188227808104534619613936303385877386491814493487499678871913089987328802219426837302837798766111140879362651481044366337726816659779915112169678144897510460525330866846221397722667538663013396317277497307483661237424817436009170048469825279717720152468967685470472442437363837638201452515213210939672769580100052718344292243332455246921244611251877799621792229507131379167167540037682956729400729960589875007207675418958989753450131429447140435091515454789829854585924539714396869461934996923107533780512553844087152158745474991580955134469084453944609180199129872774212070564525211033992144308159847974311598225597274582800623684627912500770365502633532034319180472101274731879978158206610006275758848741433161847748803062010711975585121533179801352714559836671406166990044822577330257295789606979217137097873505636731509191325186629360446965617733750858440833100807494517228420227582984337538913653899116100889416647936347736199907063886208041990355378822376974465368499898638473829804811757806404658701414877479059552042973972574839920011869903259243834710414221264032759954531408958953888932523589356505714408294598267982383613865170489197748314626073621193130301664329622344761721099377576531441518540118851474491972635939898240616686676399649625998412947730517617970316030170511620785634077363999120931395922435497771477808279916724822674482068371516051974342851414598555934454371755157514411228274514216774315951490778687741785554466324221383331295784869346570143026105937145894557479181714125631920827571709413209227034629084605326284948579395405303765257188680658644974211965910688005280029818589934908332884475328090675066993139930536180626706663865936234167398565276751878400621593104298237566142173554071311839199971949732518571083712899808687779242594849858496926327614615971405332017329319953678235295313222276861995900049746659448641857495035878096288032651346870056831880480192270651454411936314884035322243616599953610918564183838597011255491995553732040156769958334581235831648493803738700245987822861040183336052814618931889662245010816795871479108602453999987987555272545165322445622148924806681746355506892057256977943419179529720740752141689528661689484230689384844047957986806610647503491409595550345993038419364160879899673358964264423235019905687563751742389939802607649503683627029441294575897563755510586904489204832058522692483907544276416183076217614880422857435575702134768997906195258715633177703487193798394452441971425203406501912525165044808283758266710476429643757629114241715085661317135279234158529371746859599974369036676012928756840843582103531046032297585017796315327724741890004775835480976174151052897363833517933353267909796164488516778945470561104241159327069027672291812647157873574205984230398070131115568458262645160049863176832510413970426830202270169353198192212909624187448559110424974829068008036016218673913434513904092239670271136116214035576783086864005108934797983890216317302336673264711230891715986630178295320806805724552602101326334526609656932054906892283090644960775326401135072651369945618549640084453844574452351412627244797405480908986096510001560747222322879475687449767210416441131464980583907133703851399136342086865270325499998425762469527993438486141279087621720143717981293209537309222975808268044994387268288946067407317931719549654714580250084034803113479616280030398019141278932178811347436131781596830998217481861647173295151278685187081736408328170909591579609252696812721765861930582081806263786548041169590948701797377034528188845570857155611525932530213296493211842911012201743938746937741745024548268840113756591125511700962113018190568764862712525846892976531506747108349400890319062885055260315377200622968273509666901089053237795637642647748294664494651805514187044377822435510821314184913397755135283451418038903328057251297848462546234533975597163512926581234241250685325462303772872753808611599391187717610106045168639381436186943551676072756800450988463092566834393683496178808562170398457960778519323402421923478821106642800018257416859036156486290678107904123637486821882864760282914584029974701317313722917722125513076397494782485404800633035389366927418678014233365290017609938649371367852369962610280510181184207889870876026481161203674312812898278352701648342745104124330379900754858839100738759129997474457171128955365514175765464437336484704917236842511265574306771185477414326761043036633513720833990566990203991355342822515923533766568195424766872375809674520485026835813690611481129942262611668130897435907844393762175782756383951435028588408829968824499531480915518056817934574617735768256270824155189098416749057176464837153431378433599862297787495546461864222526031332673703381086387859714540784431539660652600838965212420989147042549818190113506538165466707486685062039274127271258950895611172070759704269228416912851479420082122552760055715952768914514078293053667957782822198732571490596395660886850814528664516918951267440003579365972440799447045983739304062738705057731435124133894557097883226835409920699321265039854848207114367987404836840971928923234028554653412970927563323658148355611577878156142508959579850364111667198277024527144127572681830828979949583567959139769623869311505788075538145539045714165523366919574578628343288786312155335148363277929763374078552366510117766472100563521510049356176492471924640316816489309803796888342437417938638997653603819369964244421499680464446525256410280933342109947563748666227407618867084463638340211868888707437223781073566295052971141109020905976381185935832464433841970639085901765940929084342383163994562959720848650857043425121407241417843629695786830759759885701647331054382332654617315397780917724471102948826792382704291693054543903354057257389780932780636051384422619266004160497623410703206551330755023598427190829459767239922195582998957326239444163300551517206952741711017497600832882410513801955088100763876126267387091962806706751623095849323447192049790264674411812102154896811052744803775276840101672114132375590585373461668548827119591166816603472904900192252622786560396094689749300543653270734101337160264276671482005151909009219956310778101849684955171318819911183353252945849962821798736570427811739647353019001945962038662442935127189029347230255342729360040029868554200531867103970888481664019167529543931521977384147837531801739023395363162593172658257270263763256054087774655521477610920891040166739956199398630720979787611946660622966568527566950022574778413520532092252265896902244227788979544592549506111945914803330998766526275988265565779162011640195564158769033171716528785394665250877125261903473193714400948982720085834797584670996449614210784860005618008137346253206105986958735957504824568480457856075431443574420452170172384582093507451105179014347541826518313126778838696496278031226030361146123143337963276573747417877615569799445526561105036865479635422275050290703335430900049411559804763720142943840883671061931755836055329035244963370647938291770712471450693649075066569428101216400284639709165237008484450084039544808811110214887708569588378272232448676410307009053992578033655163954943043295988911319935581385907671594683071015344630875988190633365625511415049033327757981818390624550482196843353418706995980146956325671605611380927403012126466121804041094596543855976452924746539579048272493983482194875299567668160128848921082495353074091650917080261829196635169664790479966781800194041987918298548335418907106438155033280018111148947088904057693956879236607397913643674856118573072540891071439001635762688121176039864293276638071316205147720888971941053899446364899280927766751637046739418477565568196469405499958074384111987631380656896845415085017239674397974181352573490752727115770030290658586084426646322384339359079238200029228665342328795088265001681609707250037824870524356570551688912677089969575401472459712933349978208889919987669824839292601021096734527115047642672868775615908212172572181157838709192983837537206774424580747303940712534169438225606744655629575911690902633387987736704456948112500155519209535737243744593262315933954889926278820285780760315749839299313820050119032786540751970607677461041187690066015650928896483645485496253299035925671041681473330277928110635254236462992069028639492289663285301815188045542572031051719956433582345328992182910541816848115312318020943201952455999549801504700815575126011368406062598086021768489750057530619795180355475023892757985469391216779569123619599240416938933900208266155291804524152751754485735413264665033243167638407407079313819777596973113747292679180284833339005174308472288998630691303607170868761862833697410339008494467383792945026017879967710775244477662231716624743686724861371717808205354497616736169066467602029895706201474879986891333024256682511153157667570736909728271656131800058277424245301895109548173393569080028000517259549764195385905319102369850688861721690826708193183545168228778201208304345824120004426635580575145899220442707145443075475033382873905283803545630717332905439159819025143050068644768798379791254200963702663982886322320060062005657763131401569602028576057856593069519333914342192443555313656456161132244602817629015006621507845201616282204628177045342773171750648241076484989324158542159518282075396857305406903429782580714436944897558632380710845416996761760165312651146465669868182093400972277466534191796108047457358123499749657234560022774359736005217097813074853337263226374575543275548464267081059641619643519823579492506922713768632913257431581725773070456741930541230288502850996423355100564025666412343625487715933530358422077312961316511660754446757701781411967641496573502390572416468449936992343964098913739019505675774380777355406531094013676170748186609614441004137046851169249682216070802909016413307237268312386976121518612913548418388840521400969606564694251238728199473789722658718347306910711028151411725705496246901494733223794566073093081354222606918959577526187494076830387211224108182134928405980267163518266730592904373639691237459515415888829773479934215879635687260546605481357212861019976223114563863384885388461659106753831104321979505906085182334872630179403689338248388938530966612923666659889668460873232479746042534088366224314834593080669929263328563122716333030848657539832828586776282066886485532006487198496011634105832940092390314283309544379830381323359107025032130920980641444513646298227606181652113758784858058311091792301056428297390864545433609177535129033224343929342878730344066737213071441230439525942106959615785345121149150506990556055532243161993394510360789696296078495961256397277942311908466573754520097649840899577068517083177895989272249688547034540874855889604786172504569854932094554498628256744038781660961160083381719181460338535883864709387456923616096011506673962408745383999385041563816149160893552666267781255132783095614507665979098607275878014668802802436446297431315782332394692559266472465125689144156201585474279727377168671774004180603067130026752806763213767216450162658664334800326736786574245121912168542731503554186339127316768836645681288089280432086822466143347836496277020989341214983486666634306497729142692829044195471201356558903098046677516494018179585454799449735493782322238363050045273775592727658768340440967462959547525995528399032038770063759561120618813779930533359512928161033530607577958068396468870744335199228124947937672505048795049114578424805795244683382343682025426620815288867076804424763829059313917192169352244891178467669429737830103294613047877117044639622384414168112490556674347399670314934084732561385797942204279054501394595461655038993296637901700178772645221975760511179672225366950876740489668998071935249728642464188087821920885503680077488205528240288913253603272924744852708240513903980981767413812155805120944445404611658128095073840795975480831827179118774301646860814856525339646257561087949042438470081649173500314266255301949860660789395179410853556802763317050997603748303152843813114811994507619853448423372210221483668902756162660183641759028806868480859301819526928419237115646550805261720139259619059826467499920761544836188727917808568667939110219135491346155156076068321459865930377308925341659013420245329245469864108482934410938564041742219271551740333126079123605171901383897074079786609242279146281756252826246520167486354310350420688989332947756323317950360998812874112417198771050777545796879869384402268475848635432912795504647095875483811977516592620447876778731636443131056458457907295787624097925268133789093257847645836729881276657263498149904650207241455305457415694084787731527399199882450687025276857319922864932674799904613954704302042289803277138269041576955963293176044546163117212201100666635763293325493419016904380709333684163054829478142105587994402381074801955835154887369924835278554414986104945690921699974147784733886494397946447465921607702013509870893786955568056749412275964347147527710404799427371185899594169687900678090123864747592775560557716200123625970727420629239941113677569231676959907434452625652883637754651176669366115597538684731730414069985852206754136466094206984131845216347445754137194774611809013228220224118294623506103805454362337144051272847289157705608744203470274497400494955890735752113784619243184243006680534781909195787302101616458440454143528891741295933137699623092306850116041630342227292230236545968771194143948288028540190453469100277020420417987350407846909347066711545610563283117201803520448462132786602212487751377806780938581895990365211405511987365642404230355879822320846081136727355436789197879604658143261311758291070748625363142993822342195035570454426869828976998699185573744677780332158981150795773743002449968455582558782099763385150404420984226265369520758114375958223425113091502232256697306842534599033774808273284718118940047000829846861972766265095038235186507680819310336725600489834575206619529759660240386193069776790231234346967383167282625338469232231465446772678121256214076829667489253806947542340225794514759322113304763918453354636432531591217073429853560947433307911097777472223055567859306543193817789286966802012766599213235756108758714927241242988149555674852318755644915339703773845477612238092837374359969388057391166769476439601867810756412898472716518812105771109136808840529517111818483181557283176763077949184967176693448733469167341274883280997673636307999147695836215944605539656055105852281927459025176045647670897325933896073400721375619797874715664732187248185362065838428023764519333540447305002701956907452188224278867422569167937400772981916626664693449706501922470658085998047239308852075592251308524718844492909220294189392572060744498931498535815023410646781178967846651682698222816519485368064667745716420004199730464500700112782899289655703605753900743538055235714601007752348187103392596000995898665485982566292240564941444022418007807443632261828424514699236004856381077425100712665105605923594064316990461401746221186043709273580506207375087813230281012001401385204266545996654932569227626575468324893867197950002202622366345869622655798011834874629086803882201896265409278060977110107919466712640299522457740912766587311870967597841124474891604084513610017431233484255340985959733200797500131145673541051224253872434351368283390858289739122863872637234667745459711356912047287171208879088299677404154193595209392479142504161322928475193590110118759132382401358408852182051009952839562686900839898390516246972558887983301330162369904122253330239226787498261213308732733529776359605634099286892236364406059602861772494065208647702548027257527295910772865391894934628693416186233935852115405440830573149320668712468064764050670403419075578619114850038147723467438216584687138873019422186950410150924987380342815547497703372657818888711486916037403711119503152616941269073125612395331056532184456296994414381216570093781451897954334525383191771926267157384061596624561614235515457475888490379354300296232464999799564258087760911370387420538078573403231712916699015479880840919635514890364837657658064745330235122345984050780054892589754769053368615709120625349948998142651180124744831985812393883103518307661475202142395323752967736578457316884485941248053782710552305424683865539483245378877360185247559956163694236869362429465574689033656765250615538168841410794919933053473960781319150062416355469892670237770232980245933383925975475559321460071103832880764464686468691953961519495858875288655764832052559339510321833899621629086819957842141992412617757534640245204108774139537326199047185137231038621137543603750429469903863299384750184876789163184292399119477925430097438454307958438730641619378931361161725536615047698546911703542460667379335405863717264858272852063558407413173973265090958762327665515170440878832522979332031372617544328741284258092859580287395203384654481059340990812457306685000800250840244387256631637900532079834462162164088769144073103879957908251007111747210463548737136458152023588402696333731067858490338138051980567742602076394779932498447754844445443851995087020808274104392571169098078132900480829830587605244906036637731029558107176920512354093921947782517120447234964561123846395327882955980153986288266702449899564480242595498307807840836209303096320906970648116218346377443105606014359376651591079587765334145322372709235999784626388549922745781147515173228160174316357586597803428873202671782654978650399665206389004846320487607707675353803024515488607541187262289020700607934288506680329118148399327028485866505120811433202725887303407980298378244073249491790463479413986119891053944796209812292686046923668314941702233148639075851185602204498530896469187089058620451509441614469342944743739585307738974067402042703958663201433766451339728909066820025991867894020539967661082579713374023441786954038646529796164735211666536820529627999285495416066954546519591417370683446581682880086507704818293784538406526563138134672012951964026214964188110541009080066243037994543938865394589403206274671893962412797065058181869230703005289866656042682988721610844750889374284885742528156407975154681543014042198448051445487554505241629503566772268488594903803847024538530279763967597974232120390914459290780767622382137801194708235064939492358024159976165567606663070951070113809579535590666380749402268591574758714003606950102357256295496992870902151377819650287734568178078067569289529741024411171226457976032588217560002654048569533471696474658157577057679754533854966894019318781302102135188613114787227624985244422490548494385796432935387298948470005651604087275088894370248327751895035960517292562310707620655803414426376795853951015621876623790903487850498532075253225593759528133018705049281019584182104265875524524562678843454960344615169751199606802394272570004316307677401088283679153328668793192522229932424106825435429634018027599843310772461260470384696362076175045253388366523624110811993775610279028588662214123157450039223768606675098302717588519013943556987131581212586335620055267704428271800023522648509350435082857928015264638771251311704343646947761162652600596943776326398368592942460202056068499335216297314038377939663865417804836373020157034358460670602638934887226850561872881562350531452035400150155039020816476617263631247389718746124419570376702924667752477510407942451747502958884759187639101786435083775572303530508877652585043941735688655480726853494491279612156161166575882956868927781728644473970165553587469741945657240439241067905101462508701124553987568214405326505975377949737366046258732652444452757796337807267035067155187570912737229389344131877265467798056279980829190445989356779624540066580650036593165177050265755796537726603993709711309282852474017040857997377857385059772008855221505274802571759677488391525598037060139419385771531641289827174254493516860671028557074137531176782341653012081008405610694777367303004395945281688019323255406212675552007168443012553287650786308460888308692929417009944810001295869480710899416070753855681105392571843230138024606292578095638962733200303288503019467919932703043142248664342054978431371140195593666186633114320054869694297641106305212495152897440356484916444297654495785356140199880755338814153242419596733448243517988359201223903509183671678186865422394782694590544056508019248312597219756266132157844782229920135478233668675097382061312951601221741595798989516047215024692904840755258427470483774637181322034455075510280001234835635115180283639394901757515292044606059171519281810198898429466006950656182115760952363646574024511530663495681653118382966071331769038508354423390344342075493145525638610878620720785524246907312922115413131115606884849857786928949901611201735442510586930467578564977746158612427219942781706435420643495961868094163514721286319098750195170750742864849285431990271794602214600423810239859215462288240014002694629000710886901634956573102776521859854935011899102484705596798378183847983695230968159743987388257670973388075632946341081459668906561624378840735051015993640118485854109608630718512981467930385933488459093046043544479608130242599943263636271473459540543204990417331099075134839036968074310370650674134418306241384157007781799641855773332863887171050478482014852696444224605253475782964087374031810489662638813117418226263637905237263467378413689060585455900500368168682853247822779136810626666458652230886108954788566478208094843963246659575526410858578252957503003988748606045598230024308852276466014497117945340480466919941403569689752833230161624889665654360661052307461677629928207464860664672025777339208268920396238439725683293012285232812310842052446419400844850933952900544927869730105937732559320579314766922496680635037865121385569060621481266135766696157291270058010749746505369658242482454267268892827903037154860726340240143408165912264924368232110774174094885485076234640381676503980625418594660145984935440529376711234818265782710192784849572821588100724573087199652834915594138775752355294394958810949256088110594063651236451365406959957480702351498543737901341390032951112248565281695413096470766365095888897949559795617464185373537934197305713882489656316854397793593868986395988145610499409247500638789981337254078306321632561033246725641395062854500057111645407754567039605224206740091805528532800711012389236745860783265699339693081075715402973405213484766938544862877459970368158671838164133160837178096337065081243706663391148825985828611867309541118270521317923145613893951241285921387400134675865169738434150848290208981676550557697307081626645459286621491894806601454313656579365767007913577685335901388429912361838216228356764140356972377852864785800732664221648635016957158260190272903350894130480705348671393941230584481120913953508357825837129035527557344573309486982926690550105117358992185527361348366125114776779079852084116605405494759137235005363279419631454874298286659768878415965037920431203861039906382998809060080015797423828515334657476063663735575060022304772420042665842475801108719689950614087544189594255220912995619672789554556272216104291688021094750723223527541012433319468352849663168941437100815375763893205736989939239877171730033510273715911177230015136851071157684389527055083162370237359709071542115883905771191900749623455962285458194872518816692719704885868778854440669152530684548259730835247753391051875291126866759288191058164533229503263351133718146097742144379704816260142829729752982479193535027321277671386231212200137632659959423601386585311389538948716072134462238250027991577971786351478795661713089805253568918257010148986854884359662567047610298355341203703394028984945431202440364139742188238012038721693379781281524278592931900661841267462082952711433830449668573722193809204727336542062778764835892426498250594619872217334536564515694686442343005274593214506498405984462409237014183238850890200598553569569166719232301678120442579344940674569554759287525035444699319775220450105457002526520024442997145947490970841736918022466082849543574456482491848037687357882810550762834663266870013007361127941599246130371148276095125732185005405064662944995426769042165891928298534764569828235667931707411823381530825681188863691774028744294650763144307595479462405533959023932251417608743187697639775855630676814578020170966459741356533156750392537636046637084879249631793386914915488963665549162348346531885152643563943266781651294704674885693258829318169204333213102343902303108831037185188586870686964584964382933953859775755855552239046831351783058787899808144431502294076025298510690844439851442326144742014518548734626376724942799890256234894635585052606149381213029460921034577406326616722089031851051422274779590662534945245382189724304177735834528133030942395375491917024849949409364456841989594330563168471090068205747210157031513891820188395628417613826191922091118637512369007952930922213483565681859406070829802385803830301046247671141880409966973004093461287628707574608740514817298356684242022445676659380255793630886429235965323272194429931382252223064646890192113452648272882376951367484780620990377695484556870564599942657320097460034304594554272849969187555022266257471638889661578745747603611597515448259555180663949978659077242473485546928266937601230443155277186436496116773280444376914436860934774278346983524415278327226482833309824282897795126270755672371118445682548511529332474332624029208466629821588150304757491935125234134966185143247779084085530520854396133140848543275944450818097670715076567907508763960709698278960298396077679494989783683147393976702419456270588719060394767426814208618356665102242161291615848177102146197798327732611263980684993556456514931071399035823501532297572819642319415989117902841792253420217495526764814236447024916497699348273253545554734578521538184782861175006815404468673238368696829943217267850471690900689012047457435591093536688679376179191860696912850951829675814825609373815065599855966913937131777029041947359512501254639685570067166682483194248473894588160578000034498131482179814867204847752040988102633173145978409000352215658373553681914144249824936487781226496530957177721551184496252597905475025251551080628793587597852965763887578782907684005106506458533246965674474955876240937194232416250063238250620861273480053348283405750821066329503687109973183510677980890797241016515333282705178062474252915186557020410514511377014601707669580293821859848938770382291713802269432306269024893927617717032262270703313560802354609258044969230965607822049416303318516350910923393724010432839018332109157458891209906842096344757018779111948031543528998699920514483983645811614113099573287355951019337825321751851379538730907391146724302474163668663620761672910683179191003297374256486414926282764496188038251170317052221217839426149215462345854729535656181546173912162827869493013077768470978595315646137389755290191951357359163693857388642116160294526419629867521410500311760890566425432681748926872958697109602280461480915120231301341839337677974083742854904264118928034144825762280744504339741018598003571581147844825251523387914743999368756546878969535600013224056173222473357424519958251079696267791975326587945336251694237334919679463310667894961873341506016986376254135157593222612937462030917266365544645549619094903875828649051467944002318475047705013870116709522262300333897243819626986761263989136810844172065471093104155385896451479580297762035655976855252423504125555981660010573698055360233161997082456560798422232456263530588542435128137343602351571752793323329995663365374126222868302342990782917345472780658151320070584321709814387607202941859204622218127412348634596501998691905764278978719782540896185044392901704698480034494211368713397954780435080146949597382608322128191629141411164342714993421114248222200195801283212291228118860322650104204655249346760152617923922476121244522508902612534476331686560173723171062029414756158635998436969930588367386443238436125554963794177594123040861048685353817512997377315991066126852259702555511354795013270504472267271186437437684417111581169214916726827221006941670892410662299241913911448882397126675075063757945121223735556623223370328385986333404050232740043445574767652493786302750081599095246408438021060684951124043357433414085567464783212976198696837849232934973577133219134913578601708138412853603097630688958266123795866440808314858436523075325430070721611617243063711305748171136493251788977766926546190539031129164446647472617177391591375535569127654275275402548423665516923688912175276785394245331759342874621225482655447380916715498856552993218274361280261470430392503467637620147727832631440252608629135244323356130214933859069300219984122306074595308146024212324755681024986150393493069099276045643558315197178644779831242327128628423694104971395706464324116340757978428955845888200463475251681244812281812312748368197660201542830639680046182651150460852012813386969008270514212061789084476260740937042588023213428931423502895020048102928103782187759133112605095897093652273638113441514235120539366331968340683033640658673954190935511246084210997630160973540191113052440964044703109303100631750021864736786759819429939073779656358150827003259716293669990196550090525565771303467743013986484035641127084818000992866097769023629656242958683632481226728688006282264843038725731375875539599797844348599139800678161719449230747667608468698654833890349881314488361536624031265667881825809003919238113139857106483180884013413012366786956285395877160960582198886041662441078908893884915501882743504917694719216432390903805621890388877279655823216636088757650252037206729408261952882869211442863307530178931116630075765933020815790751267964673129618397817507237449196349733278305566740925970298776401486847953653109420637736825084491338030022873657869158800218904442768501846621214957444614584292806925485761595452559897792229626409664879189646819738272055944618004547704054028415960588591273288876915399283380983045280380920820434747962766758520551559820946687985703185581814766306011480266329160914183427508463343186336964477878362922115001479466591782105293660632388362102632170941232469333457600221744875715619592994056725318914071075516287263416330156929631419127493206868140391207655082298966903063011047491604224159883335568078075063389915469326947677348729294620747227339040784833753769046903191780568188305326488969046747680687177790037142049248294605864554207702102695298806731312764998568365156446374236977074515264774392913266789621557733021818071329181254839305105478940690379227618095372460350652256771203729270018733572036116655775887088980293153032903660097755623997445533263117936175621244187171167784964591419430574141339128023477100166463841440652315987563407979340290723768859586504945208248251930699963996196535294003673462977065225964088025673555738517895827900286899836429628279525086744993432425494108834854440694205045120440178119916404517726861840069795353621013229272636719929837892351970596522590747550952915915845643430549507813504772905256338931389665998350059418070598827252151182893460498744088001888530514612965492740357760495074174299314931436141195974820779127207565800891210814035383616338889184828059119767925035445734909746167955586349952248587524689154323783868501322784833758408342679195626952237203662859864269163727656168633257197027569547313668960510322583070789564398396013369476684718636301504485199260853111993094952724032785309779471017116092265874020111614605983808823160500594755820782296683541954510641614438659378726540952217800452348906110821402754983464865906460833175404697024228190942520646952224951361308990082599697096913462059637956371579602820205392465307200446019980168471972028476116075992889394515762250452018395045317591628116421479032327167648001628124896703369770783394784339007140549829348669175727738686772598842167790445533269817875385068117489673782348024642275064743418337237620146169211889424164136791977157116997525042531678357059595658563542795858096472460967381715472677937412925773043413205057411802885478492619413779948853868287873548863100911644744592541352351878074193302634159926700231783113043358689148595903917216365959369088032717839638042914312454776828336581080832954130225045940373417059809085068331716453483109309110257246377286098706568868971053501035271648890986473832345912833804881664269714999424641735689497419467989426395771554199007972230554227523243889347035504433787146079346517309448809001184436867788850950127688310676629865866725359277307485347217856437768846540341204612621312553789838018871923089510310795783392937248131612539875741082083168792841813553975600342234539602140178504504293801145868655854834412565778210324818598868354720725719294770367405934358735356308211807578274411308648477094117259038492868992440274816299909916502310958414962280607356538340063020190458747965032955092589817846051422356366915638449263902797928973310660480186412917117568181490452200685788921959424150503204057645436231232227004564785414685507612546620354494137610543063929453000669631960180349466967177559401333976478961838693780510366448215592413055473401806588422207201002842590596804729999046290571962774554433146661896192664359984722609868137848508388198256746289146900044878597669706683011207139127587810924254958661081619040297916240129984945049410006644338193098934068937456831921204618419722046540257252793695893601973237244564128776157127959003056695801768786565641539863878790282179426663530948384970353379401366366092300039130397544727238217084321837510363498977103936346319424619842473086676131441681529266342637420329480136941288207676910499039480801805158422895490966830692993138717425545283025947471326763982906386650917102014164555148759660915907974366983777655841087781678677472862147016784458947961548408531711405805262301213945635378321377803588117602251661487838797456368150275759996707730326394037503292542489069313104542012495810051686102482496615067561382919223626220624441491093954421332803821640064290133218989309449378562462794980813064114332764268664332654353600486597295271963183030316573929634345682503912630507971247618689876564633403134504256362485298588560218467603215735338120262287080291145774228176117996182135963887036652687957666621464245778177221655302719645125119294239515852899291815538623647480550505229622001201107523411419741658842576019944338083526073107964130998185273865509687142765300644658746471344409358717160068611412598304609194427799254363430984266857406866406155303845593422181166408401798262155004966783060175021739198693623206826987970425934031680977513829625786081580512044430432250988098955701440410173617813077728921395974591235815914811109241123710066360084422101156558981361410830387321546543927765744562632994084843430526548208169812370210370280197078524026806882982059064445056824958769386933198921457661925828682056932606522549532066299655703381442946302097860277937535468991442233662896032140745685515958032517140419354014735615721517199714248062974511914463600053486026803084459477386504749317470267634423968821984174589003084947547342059938253668578802672221066183405915687410093016359997612335543921867521926190699331875837822687931012921459251325930530535185443677693888546264096125240525883624648921949212970895270440120856508743265799383755574996214277548625099549296167383774267008973966361453409290518621736449644538106585455390766189815148204010684193821291081488344961470804336029910761947926770054907803854833013541010805016531298957150477652468045379913317894815787971709082946379513112746276979255655402185960595610386652867915745795476085783939387710648903109907810520809140807691259955750714274956968320695873695403701881586589418001111480790075463975222662929648853489065093332902309609137358051311421360681069959734002239173033250303374903526823135576209499909574069331441848792034663246528482577105020351173565558785322903811337041954323598694697970715777264500403634458370849133464780522501019925583875715620050294373790853905565512099160640603754989157415295043105992615156711734730726380707348291214504135742877484090356610823815465053553985962604851386140904456930232166273183813436738855596195107912884008473389964528016795219294035998173055902959086811712957826277608693601101482680997389620751008768671820686490289182367547160495582135370858520543145319373473063906034270489380328521971947240654045468661667922345785906890399340782147271105969110433715610539560150886189284236940664283310792515657781372591188221769147472999044014578862115865543401382938359754065011647460065916663383984007120669143574557306690195956622764862412695382526046823781818727591169726961784348065560047788809440886234188537416820214020375510113438336529510012626377515963965940659089652141373916233268929596035383202815163303750475232687326814835098182975979137434802831306068058530822236349479920382918986266496708254253905017213004496758374692711391521388864163557867049734867106774927326299563239694508365803201469227134385822170314506716626312024777902549664246395273779839921703370443282775279961321117526845603236487219955255832985004224973143038705971102771892432767048672695773827913345075544642567301264077996107540375336320615741073179714231535971257032732996147308127665664495693422158053898579642378808498141612558342599918626157181705909445810284881794685556424666784804349239050586938681738412413573387847558978205418696815830696420451465024487953231636701025553373054960401821915568682694458390552939323809056040510976909849810797479796941773140624090767496830623116125992666851135406591820460692803942345819660568100648764746259564941703414423986508818946002092741830995457813299440300886513021826732354184067086556869027301142678412386274013170118263363274358238968712929232136673680685514783499269853362756135044294811392190649846913662218724901781770845986210451292458575212412127541341866623824041995487943212956934202602801251598635621650828093703408331371414787601896778055297002540234996905263857823817782955972347239946060917580401336101624755598134525369598886316833485628359220325815754763538902796698265731060266510681407995392620869298135980910891741581909107085062642988980401658435913308135802703165552773976575188993412750830411578186527578090588241364971735450672450671291091386097205929505540832541086339117519155651370777916444698208504914921705519289603743507305730405880640160394425581910375411018580136059501322060618359093166721033067845056581022220873965816333195180827703341421889685165000734321568154712500290546297561985065380211173135089479426279171625352364555298169876436586771494974627003041539375770299616068398276811581023276201970993116333261030081146754052204995678370435833567970175411019832244223701994560552791314064366713003858028784867604957039621514113759399912071643550742373556241672062284871671001911256765057993269609684134983668926297675368622923948720926079409695037657612723063485822167595012893190447466146625348617827373593753813470364358488195580442080820754110964870418728276601936545551275081688296605705734223366323972368660475490999284730963759306400691807919999157707390481087452970989902241875292733714922469979232563716278422953076969769858640854620279853031873300464769926624084654536468840134727835597752743158591993322684379165951367473357018627180262531295042613600990033310154056726923377840350855262074057878730034853936119042057947290768278060182191633947346559930288788706402153434782679120380876698678075842894220567288915298674554273175366885039869561320535947354451620955366105614288097063691438294666300214423901298414788383865286220046598955097386916706646470023053139797170367057103888069361131953038619811575737768372466377811052861699152685210704937379325814328727076845697981242996200403656046865002814808299634471326828268878217326310599118152641636272726505690520680244925950167555007746134966786252878159692023873362079803707723162665858421858497662955339470376595136679634068226192671999546646060763558181103615031565005901211550475056738596863998308346531824548522637238171716437955063849775969194252258160600652840905163206617120989382999070635307515065754083928580656842999557937853822820882344305901374224655180055679680585423419676824504842335355016544229373551562851410872641260847450965915615846810011517540067368614710769554550110930827646764222421924614197048336701077024622917936267072185369595627583555137962177151714164157506788972258540241323396320190339662176303691172105101327838245955566182444924913255462505467429725974380154698508197053658940341534941956539452836791254080609122256628623091525786698470240507789377736472010991056586912655861137489624773960822756612376410768209392925042556712124786707120929886926595998437983892893027961459612671986528883879518918460154523147404008187515787803908226600381484462445215529152332252425129242630023971666099621758788529105741423623404529238124303606226613761683791840818819638291909416919498613410965277349048151705782193021227770803550978400754969993226411881277472046446607769204299250917497025721420095859945430218534629828516722139837310425979140834616727771117809473358061709746239296378824402595816140565373640636757100281712298070355507732655678365585557884783485432874946352309255801163867749156327818714836819281314868706826697594476251699741538598617653691391212398462535408152634029782360889735043259575835538019869219166292195515073118756102893593204769566139567274843242741096138049459017453675374085343534038552213917474272650219225491682682714521210934507410292633796140460756736093461529991165186748321359223528505380520172535093607878838777897136332854532469451995614773168255772297640111765245260178506029545421618170997825014690366088285532524699205514713115266819388371990890309459423466703202208781900439975220947720292635183748468602884425204554230643097727339521333199247800491613237456580805274171850721038693674670933581876614626046162919821375403486365456957054564353191946676625085565043742484495931080793078032971621629448558812287956153252143903333335484020261420064630874698429532164894542285919848499622978366512366926498608598111421003049671417868680619837407800833104533285799592270112590687825258584768128529340511459622064046099576072347893813889125490603907315552364349658548586671620665557905730795472096165838084171429806079166043376700207556482380445190616377114152127376023244429610524768266367391285182176365302362269662096282723991116720693958173076641043874801837339377848137327253058359436797040618934265760278710802081154298567466679877887059824646513408053489839179774034178772209932695366627384079057661075811858799099296795728558543172330361903107810086548482804425536935057800583478793253139822766536508325588135927968673932599274335620009935936227152517464431312284701541396107987304449745393171287954035305304630760363974291047901740528548423846312257736631609364678875893076298061765107514302491142676163397119410746940780369443253746294465420301926748956697673855989595623222949735673667133572708768043373005840115964176476831900923210180332076056682270988124896693965325780307694677964755564389085005786245249114709203320540827177148139006940413876992975032306468325063964838286909336683592041731103574290263303665788150467410523475853396506789232439709784588577496513919453093507861264979927172032682263586245182937972482205106855167710960647021152669350424681647012818866930444240047762506512959216132274876734614192528954570132409559221167204232317387684723217057949581795765652644531022379562919636418292748692422851934345770012060034703472130109474369686666839325137423421421121853555740970567709561158703108745579365977990952842069015546034046501244778267429078877353488527887283046292142427857278423623462537210572730653992823983100752499721078721058418062497152888649290645325951863145021682915758975614177689453446515157666518962682392574613891656548752935888271168277114004611839325378957038067807146798913891039526505948446730969658029963570714117592309762486302235273850428506795178536446582759936693662860211921886405512715987385487258640283661556009236173099038656124562245382376351023679894319619281788417279031803443696859213394332741792007612471483053133517306361683224590236291294980079811303432509254511894711807420780273443368474459633948542231753916903030108615588796376183771777182146964680302380630695732070579058299666609968839861780671649246431962969486496006237280424625650868118824102279984470108611476145994590415631084829353510934593678007987743816351385990264243472967492970755389224407738449495216448585630940705083804127581041050658764778776729029304697245339241240269886524519534740274215726234885370252159473703245561516286825729577702907564990443866262383125865358833860434967544957069877011838326280322528201618536476745604786830132460773667001114585904303881403277122002823338989438395358168530570262911838759040296855749758694816026127108026998531238693533302393271975688840561544892520813418832107897726243423636374836399134251044666561396228387998888984908704528746643639691077394431693939877134770158802514668380861653400497217359552481885517244368469270066935027755684668604475283569559528883257652554507731493012179363387359920947944092112027972218511314831453002989547588927286486573492710714101571013868216386671316970497018930966343619671254741628943225861818521441129235926786245744807487539772851979347509975703965029564018460381891873133871352943273230237951224547020847846410826350237784566277976000281872684966669765993519865056375705108662710172635558729851446295488086798853379095403845840657849066582587408185768192872271587111894120787111991201414175885257184592931005061339194638935541651898528096613150489913812177490366314317937187383990637549934208325467454840530284591891031210107555308467125411163305286895663072443349578871648052459256163185023867841001966074721197174051336476235163541237079765744607064753614026774052039164847660778556582253393262243704995908610775418964842799264573576547814605650401875833090133233910223932989762963545772849903589150769454644687227246380646264781602652435224534034466278028018766923570807485290681634032630162518516619420376700493632219806966059802177121683640006757409278666208029968102892198169985661400536912796000709001722280524946612589661287932861653871152130890840601679286032440140028932385808985773260375448212428626108005460550645141031005146157375524779780854702060354676226088463673939786479193668372471157468601752110841709535935150383172279243101721513776313102586083484184218273388373759422992333631628411117571814828496184433246205240435883267153945096746060302718299619849576212372267231905002258875875983304096341300003838643442266459482568762954910290574340548800308327488739212100310229443167406285409459474000096231613569721007889440741118885465217191889886022542767075811518535588541015443037849454446793429612801291437610940398142862178226231182857584208020030819361130198018042650150811888432216675159097202665656334494746513475030468659369227639777711030231397554617647784336747963644738182473078694460064144910255439789182289405580195132020411507160817508356918775803321324305377656981341919972900657698945941439487646429833828516274576026155018633506430992435411986944113720195853552058227813903762900440206966953929167672097093562090354963582716565472323478692272539595331087046013842123223408435224509592853541340606535743620464959698843219144064405471871527406041438101279164107592542361607024918241159222492514162283336947732793191853503571442264125695810444530625075039330717271916230737514292451691704343469523535092048053236339949246955256586689773928923848204747730207076221769582598311663902739410234741679706064898341414370513686932416070050517344676338556678218421969026704015840576290280278548340680113184990841596830625874908304665288130621305161908050346690509915712753475532335389917282389744074583615161159899603760052665659916999710348567418389666500994448151831804057775994985399381364469672455089067318323379613486637180965788383655086628796074433354486219507774798652068828567674403865381061926360918520637048616493848127290711202389902660538995996221766666007722009976618701375682889597539653196057069440382655691577841684243900439119206602844987391845097465795499435496773805867380870213617548311984491216648754096077381198703702488040515458953248585250181132019256693315103380426575332987141368361673796707185160830436855730291090598283280182104333053434831888909677785712221376701641653429443702899741140683031063587765914794760484797204846970889367971534052541651383865360640879626341953709630357201189314072086504505759953665568017178685166624474890315866763393376657390683114205931697749669514950089281847976946487106782610661941243567291262639988988550944238537507753779782483359572294486737325981164718833071293101186215220291879873288887266222524849100859368678022407535205328512260954973910592846154543545646218328548871276436901815683854000752384398493479164313663997631891423229679655993370278002344227613678401075593143345902554943198529560064568406222300011225403968338793426889749740816255997502957770751443037388863204306462608074307825135254297795092406629931466061773111475955675390828932855661836735685132076634722740214414591366803052997897964655001676528810134469081497533791400480577715037214943282712573227266230802110792300411397128033539116227078523534721915178936375939630236337039882533530934934459533510324423106196697148219502678435860985381124147418320287311290773910562809501808224892365808273698470547356703868871919099068675567671285996845368120187224606889287633879019542379248426644761831528784165981314455040395862893655823113890933333655668419354497276301424521152034264262449051668405530079412474681312391013366087010207454054953965840107012016347755609845947669405776184534565964736167200774893768771923338441776806434268981501184378917484031050268056880803997273500739922764734022911648119643920214900277667514003262417662071282648605976585436469102620712164924654552619831734533832267517738779514243853120051962340539342490005556250436223304569561207862766826060908366088531510047994656524976560066168068960939271501466857308163180957031975356794468736267354874489820769891337350392235697570435321978584564478467380648954399799346818340726322488227107808313308848768180015651907447304311355369545981880552629261372138373437820095547066093112883026709900203490003220978828191257849213235770381882459174067235404393120520722448090907702515566278489525614919127498060908010549183053769645937629335732152277886144493331073659575389156929342487076508418333432997795000637528920646222256667561011070782714552701997886746898082542174171967986848012635826778468901804193341095028700810397046934525228359682149488659657404840239756588581991906665411326826147627707502069462345628973150734261306890314713866782053306773580539346313921767078285208923655860376958293769568110693624282005497715403214532350709100828602439623555748483493694573198440494622528230000024099492263249304310313124144268559388465218649193017577736408835886354344985147307572679041502491823851349642732388881043360340959003605603895141068805722940331596542741965926429782046797935520134335773137940440353817349885823640479084439213258454347055767967376361553630277568035143645007320986175745568169879847484937773624944111149916862600275868414515331393740004674581934583088825288528370898618913786181052577281753358593010611647815744659420294058702662968237642653965683851492048051238464699325761671549436110697382942307484825868377173820923616935483952172960242028235124526572677546733385069980489487012866185254657394836451857126156743219176813875209426550973875058316842636570310909872710069315727045167271858101356489574642622090043326591974762864846683959660283463077306085963337719981055302945596330640395855912505899065430509221479325230414515433513175301285436029235144469006511411058603113266506801061328358068580346898436636426656670604480553717393202865912928065541973084770621285121736506741171582747501097986066226951205806683057212692618717849970614670530156442087128155871466352676234376985382339566151477664586431777879643511346233511085875360776762602766521600932195539721763645214584069506145946640647253231591393003429503225955233111940991584943487925839678142339219725830498047749357077947628511139227805612048408962718319931772585290686824863161040766386112278288307575155520783448563325923490418210219371683607632159893298601762756985680197482924877478693298205419023520745319110860399863476025333799974933297217968502644542542277639659314671066958031012907751013900078712287719433153772803324932729426580989490584643277643764234922479968711999087257067321911033859702428299100291118013691672434286072130636852006283038225729718826341696091533552590057837062502944121096937502978504353469146269799346760041986002451003195798142942266777241313336003412918276223216622955258088974820424250923736672468737407163137569838358601201438126621401835675959026489504502356221765976396381485954151452256996122678623608706360527159694113146838201771036960285186001969386987400381984548460310476905503268848794312789926415036573947038985283380019126308743582534119662588063199068407863661337405317753847772504758111358881212369928291019740815848205721255976031927303978312222613873593761252788807127934370538716701516399699691033711169638486627371472690731971972041734047763704121992560174817779262969441127972645725642043573543939334548807973093452197501734581583750064120880157558557229438206488919347883681045145422540472136108101695200637054687670509029607882314359225922688504567670962995400741743545215599945303887406875829952266655302976096807134897987053756178211397108692140320893118350173223606241025796238542711685682118630602841523111864283950098941119893509327220221460479480147430863228462123188182691355443354186921435165958751924102333493581882224181478871624375666146396104444256205118944253306461273706937560311440385145933524085008569892294679116247589718066736328943542814372669864262281715239983889725109632741663472994140224905848903581902194008851410482093524997615344917466744924967213008935749541264959519627820345169280659595919590769400321142877855633459960086730017067700204337592843606961316763582340043095315663442305911833071852222070443925828895005000943182098131172989138590386339100555461688186499272100440489635933306145007668762831209293083007165708814453061917122889693401987349428683512809704479957234901669337035373568002179014607495471745671356942123598964547836912253691117405781079476209308100489261593640526060658630453666792805459679687728881508193433140325209726512402839058437853655250036954869171644772176328354050425976725119777936067187267097917228562170371119949146081802417182706688628951903127466773510316024824641468614596401186062055341892182104039587940390533405558184805248087681464532518709618423177435128710159332577886410397746601586004363946528637493290637909871489970283650724697851348077221778451738922685210749761466092002708879792551388982760241242424754762611482258000797519587676379851705659808739657599242271874651742781225083772105959840904978962503340782083204225047024093856011454032864395872557040718755727050872575949537758267200362976818737987619160412355068277639642141313171922716975104032792473788441366014846838763974054777117133811728735636977801459994758005907897423427783617864949670326190149584489980437437673604262351889480840014972228043266713776102117089559163899196341859158244425316129999124384872434580223606743587759373566684982490626180839090560434948642174262289778123415672141605024001940892694992035523574682791321482029392510297774479174680171536760974770859395153714984551248625802069846436027030533019617420662778510906866643889757458495089353792890349856848288616929229050701224601060709356119337863376153822252486004316616045187038199043231890679694151140551707279921166796186941692507073238111059638814844487149116717421012039654982248231143608275390854951481951119634225159242446466953283379515515336909037507391893626303344248683768019596114419490313038637035245074492003894192649076954391434730471535646817197515925996176554452205156664390372562383630058545500335294182751025664431579250696921906190292869647750480883364249388394579020244400335593565256315489506849329209116139874654123182272870006547880536780562879042568482748806410765915394824135526746291359528729520906339132429074939735764904956659917431653049056543228950714958255922808911338480928625443439118275993344945418815095472424585748079514935502919957835787353813294739936968846984191619788746824762717542854871733935759055559631548466698435408209829066434177600214240190413051945190152515236074669009832900226574688647814908977011824019863944723678589078714222235183687675224244410361664223512606286000242718764713835128834508822254693162642979880388459912672832441960706816710957644621598844361501739457757422824154890984016319172162440180804040371817244383582764318006503909259570600833442226668075401100184396926759899314027063927591751996746045275395086999208635271037535162537080142731623934345994499383920998583105390154893304258252636931536353234789716206615556465175632334816309861488019713536124292491326059133048960108662377373158938738589413788238747844129412218279231048852636498312238054018334708988305994297382892405137798616682067589063358731869530309268779330560027314431439713873240533114636962846827366190059112417821483725368499498584302962722504214565193235421725560798893745906036025549036054871147168384134354730966290058887148189783798297314875587114292881743943227694125227135406096132884487582145918412414684544944244713270988713407496553886286928720192548292345300298613408245902812117020609888543287386163245625745063494675247053117699300479683855650223410059488374048625931328007385315610094838660541583584280511591440476164612838364510510975757411643904627993839217220155374406688861065967105106044278467838293239570850578764376313074763211100194342201526382653993255412479723557310624396569614834693790763895226409136957646732767394626325270062513035200078487675228923752351967637384392884960178418157015485970275232970798006894542935927039708026468136654085496658228109453667877522779397408269210486847985635129034424763957387006099557377354818327760504849365725347478994796953922652112394680092112151773613599439184526122589510020316702176457518070409957927744834191402602580533795981303184797223943208567591541532404829206671955325689670223990737864980961697122877829782551164515388395537348001488920015633924100435177064601152113221683302553896588939187664401417237185933752551714629576053849177885359216299304296894287593399687767261543743012781376374098720261780651023031478764739028089230354726174041295816148742460242458759263549454088037784600620908377817112563284173690815011497860444244086290943545863638706042227028922035329568144844717114924742400980655928460328678608007317788074699506317176698715454536154950544882442390652168860056432404722083290293609204484147060487247618366167497453088882832186070603741217941003341839880364816739197429977196415760076847214640362696838395905767709329013739762351277959756793573169345382726566567714564301450198293144298201867503532740784192998050023155359984843111617639259862564286962609526653876072045103575890793695758312163232964926408392574019984342784434566801020622466912231616662897420554540052253890766644070253666652239138871577267050886438581296768937883007311444891582140388019472620855828903826342698607425793825492212747086895952609265541593632049146205915984932404791217457338980125314180148338422254995042352285798327421712616988205842234441532596181341392009408430601942652389882779310092301171978625560314253529995944462251522055675799553008942337320005143067057972281067368120778077308968051699894480182943212424927767120765440292855807651224852498243285233688894365723727398320609524702035512215627230919271345238969890426542397238632402637268386151172294064019484437526750731668363586016546087674050012267027578163891545528666469407426716429213178851995369639025204615969429591082625513525882771936737139273437624613591190451462916219254540688486074239899701557130178489391337298224973471431797942685678286459886602703569861820764758743411115772525742638334051436486608555384395695950633215501107765432994668016681428455909178895390234316722021387186366538581782154715379460677056412940814734026411062481810605386450980457161915009189488203402114271921033729496071176122186370784156331588274972771703381833810420550455986072722205790771462955234710621835533048077154732734950415257046885520593848836135677018825770423660968512722618635873252519105545859583033328721523537765773114014530158838220238427839928783857798857856629572808479275780651343396401256236370488741042654855089230943456224107267178238988825834997252132473849154052106213541696431802074788632693485333719265801306890256677180406141356137131258531469519936068680085164847385110864609379277143208119794266306470040344127958050126474322756761235871912731776974853348803047312625077523326985936522530536467180298160370162009353428948480625900073943084608517026479891090683601839731283403830589105230760319133718082067361963615830390866716913671807439631159506145888833364655969686562617345441679004349024108192754876939698328520669299615625861491572070624591326833150648665446877155202064740253185743298256000088009043245377045284000529697946871901453611811124724916401467764493929977077663978939809359917320705574280870964126114843832799221657368454245398866678143203252606303217110133848022780350196407714111855977499806574488703747839437236163737561074103837855079752048266440011422683451010449681400489034308253865458129306900885028190531039647903180731669729748115742009923595345285636515294820725206176637000995524309477853084968295519762300952194943840780924228040651588679724288029134924927023381936014955576023006477250548076839409752096777930048072778931593523004335024044733063129531749310362498505369450339635643215349794848264935640783105913262898359228889393980421582602154551872640292039887054051234828602216750377510983336375379025776383392128358588614742889110149620043293785555524239028176465023873883550801451549570880886893669415743970617908160297537463637360913446563335825200999908384939294873832796224112121387238615829481069847365914565195242744987677125630287651975251119731609245910562036525081562057909358583520940627534842119001009921458702417312145460038253580367778786700865021203865768283488017750900264834815239497742379466305812845174255431918230035295622395723111363490392797112464762325275219993618747927727875459327572028468500786203247612178858425608024337265408223771819903827961488860282369509284358627680499263701871538869618826099424041034143664452185253976899659462395586327619017225653307398896186251203390151297640889212049742575039710754987396267192262577273263217972016938909127301183002667586617625791557578154042583639656363000777386411845213470529468392955022747369028073389858116066136190099758423197542636721835553359265593257268962727097377302802570681861575467980879789349679984099371284039230868794606979159017294685004748249576215089056757760575413860415324447497412757398656093359118792724774750503673681031957729114314502788544846219679811011257482379357770638744803090964632632027436123461936203683881726563634229910942313503269277052426312120064337714714307694175632384030145190156059417106232526236653083410727132343308242585277973811890877920215568668760034307067092064821027907606996853019721336110560058063237283613060369375331298074966496503918463076402341679629554030791342672067496283139434884642402435492665865677502485561666655380476211974677304439857031589807942579464845998232240751545481681983066292544284006591212644236627642381405425390952082705930419151011366658816842001261572232351357017014791874767304486091345730552934829797912992212438512470949188152735740258491662727001497799799472706183225672518477314473762346294864260494285229370460102842710312178550165417490912874021614727753819032553040000516473852198412878377361555718872703342767416244730355690347120182332414424931952797607614102625216898026090017093213686993746162906115723887582853336967872005085096407778218861812957090306380630587847906979054044971958896149786624711312468985677792508519843094558685353879826126358169659500407358810149101925359137674167107754180391720074035926053754408894392927361798519491416490663974093964935070560192872075512275994560581544171089214145418487189455192049960495073535841802655600553322215520636884991763530846337573091338555448935157205604699055337816004377716964600946875939366003389490154313854349176984032207261908296579241537492260427995221421740589956880058853507961430304846634482268405985809322199450660389910658749309983719275151033137238279535355481792433759939913403288185917459924561449424154274986316815108067132044189667935443014096675631316281483765909432451779519967279446490799249948731957374995623495627205061685784064146185658230147505173390341344713014289417993488335597214651053238826109015580093384332069825400048534262496180281202526750533786668279412858567809082232453562613177432130743388715217180220428785858491923236897414520034406118695445380064294444349453054233713427462321912404156271362062037043835213885842027569903008597911476628843586241722344053020957842227074185688061396567720358143727939372719093438906123137924625552703004104516778513083368068194352622004619680212138957299629875050223282798172942803901832519274479610032851151407589189474052585522778744942413613650886775820756721327027228519522886859228059553234863327967315241472172114177684917874938408454305599010071855374537885729174183868380654733288913124287297301792120246766748158851104513670312313111546659967953780739800701517028427469569444956706102426674960618228074285628055414648807013965788435924898486773037827499933098043742865377296914059333924915636654768478381565424038924210186581688738389002315353076383507539397247323167975782558985725717567136243138457030728738171084540603577365670145200184723443653202658611253776568371484570526258946592534311994449089854057795184934573594837243735231096329850668510363585310805964839922640901655397903614320786902089468471273035345403292659250201998877395206133263973528506012843590441833349825719722311350793873683620635720557445891335333981219416278780871475898728176576782626711807064761351521106633384515929053077649246773701225599618736832569915971484070170892865216694104107288644417688211481081939831153297998742304690754973956480835614986351139535492390683236020294497109828730128629234693617863228721776060774594733815489558280948111659786770538277551918035067736828473257687214077922744942881433028430791184402765512506455860780451761698217791886282315373249678760103083858641715773812708208615942369373936468768657923038244686825373333625340981680317656123414152503013794358507685308952383527505898679258049533283138327645523810638173194917445185016730702126009245377932487968507300298709201421957209282386074003004537891809251249670953102828453249947428567167422814375785207298681292409384146826315456379440372392014486081836190582771216542715972184927360585957994831053387241077808668694508329046664454960872725527648815513620094019860239937949447570923851784459846558811104927245581649954657223908735304084259105707513407743902551106151568754008607795460786347715807041946135894560715114602567652029822601150144740685139862008893940580702364537654977288407671388968463948648984836661062457151508506173574831006988135494153428175337462194147757026678588394015593357428465263472336714973659448660806518689438516153236534185836059963506214991029644397073413521601286849361072688946503180518694812567856641970776607582191507841841614395559473630530548440126874714649956798024976007718311863258785437146338849794109557030105044575003972100974715379256720945074107514078557533127069892168844209530251132011947600860719471285881905380388688574647188750873567861666259845782882818004176458593364321757437667830838320319093912569405830839463877682188268660363028185193974030669818219276977313226229375822862612139977687042720832653518206578244108367060431027030935766730378545045100235841465519947570768241993840693721669508757785950909544173292380419853363622852886240023757936925123690854878616370548103967406928765759868879634327704938410095745448348373236852194860647991838214672087818541236631773601245912802922357587172406293773634963080966296619528901462801218390483740375322091301969080685818740486300756283890614308226948084392702933246293858455421974168221620618674799064302017012789565649275384815352548393295523740656791333950789560234064269016126924866164828949523887491951129413088107792398295884411016870010815705508554645417852947262690046616166500150897875154245410742649341807675064275221821530569064139415584181616464099695569931221551709486109976364070374624849314517107603259816357564265587405032281560552013864915689425729274470768078112584758385055468669347611745138947036751173467775307936565909264638376336060125261128753004871259745003775062738470789185721692776266042094379225146951581946431886263695458117284941713230468829042858066565043878280087165904473332185417159873581592168607733606650083255722544160350221959358155579425520661826600409678120089199929685724598953597258698821871853861107813729358970594517547730528225814192506968703037886100136895126993976885117123603513604197011100369778472990329562254368646221431775847318305610139888949442913007869284743890571172450390112405078204284485667857355880581248079528259975097243335759604705702685149502118951336866611556055744739084402487120167579237559617951750499398867237748243091273918572737551499963679399432880803167340783146296883216080595424954181563004140301444729767008792480726044690209375006930609823179028165271965253468919577100534794916716981037529045475967931041739367029211508176903044439916669083037446269024883443409120714577936972399631950561090128493204431074347897877759345746397938050976816878263062584038698096696100595117812121543409144127204706367760173699627650571336789496443335400797663737233766648561638421982234366256231543119188409810196128315438825027655338128991873900615153532177539583257157231447106633104894120038095372290074124321604430045774429378013603980695008662500572640230409080957729351007777951517656503579347142462693356683059177783416550661453132391271710273072156124688328763665764640804988622183501914563612412480372663922901834690673399581842378754902970649497361185329179132777745604527172987680305503878769218389863595573314275955246393011354687440849171448891563172271704093247638911066746461197556657365472381606140922073885534580252327330793781812505854809731219731583310612244991139525036869442962154749502622571825816513355803174892443842871890587133386446239579759313000639546615758115547791372469593812061140369984928467554499142139423108150742727504946355673792974890999766120772259411996725187130384143087352500070489323408574356152018293851742300279137986842211336413976270171650962826261269315366988723521208230234371459419660456832166216274213951283266634653685106869365492709296877760714171848119499462808979936321615833679309803213823292714800840022203219834327906732842340955543394065811965632910240050763343321219672016077817841894188033492845983161472032496946469845532647790578304264095325951009007579873029954267649711221876640682402279791170835106497101792763832509302459769679670558711748108303920560321925741813630385544457991171911203601361483415394336999853641991770397330709243314737175152380898023025532210102050570816858267452876195854859712389200517940248499075071985652548037474685987993110946139212428064275375808878821454121861557964580966375186100913998731991074520730771963802897720512327355820943137714067065389743562788400627163576070391762243472267031942111469993462531503795272323143371028457168868690707653950611358593129663139408476983638575124483982431695478076222106017804736572237336260077175775509668705886318858659926957134103387303963326610665273735205790294601891911497335558356137105362423106108695799861037181360001157610215491970232781574922815421864986035649150917474067028137273490193526453102864631060290751799459929709405055134511309877008133273330830032300734917198199874387441470098080915498779786035551734568304656778799862767542969036463359729486221610666858148126508089377158523155036640091490060310104788949220251917375058726665167943312759551772701126503453479341588030690019055806113716692013303630639564116633548234598310670965190886908757389701273701193245748757185931888208159661849418594883563405447904647839494444937146947164150324571391835016914817253760061748442200510998652528726137170411081682129422842032975610408312335747020288903585707055151306003485778865048212491805825785262898131366423222297717646249714893235667853296687236850448324793152169836719142842012095169647571341194299795797822233084760252951827609595062801014078464576343789307745882242976209257650602399845850753927441217292756344505408614925209165627214038109621309517841101831975914266070601916361969893192987732262666600370828752150645383267403183997920036558666601948303222024678418242321511916971641754149623743898499767659904759207481927027266954427136910769324817735867671780750810754891855571047895834356300572741503985765064118945712352835286682310875357092314058535961300918324804335528242646167644858216724923502304224325639552947631774548722151441922028466452855602641074464982201140119988912585999333212609449273766529795837724178918992571330256349632676084367405977762820728707725914692820168154277470570802536075118495459251189714721021877806313837954764090028154919239266748563974108012931486556849161729335052618600426619263741306294835238932951487910099995294575618691083944018376461360072601149392961841906665641573221500774075196877405651356233624838924021554828045985850131939648650916383435271679981323002654267443464322685225777221510461044480095861546209800855986103991358692409455511478230304613577388602705087621287835768322493904520780742694755662763965632657237765442978461648091164150283226382440625794198714580602555264092635679331174967515099815149770703827727397050524523267720788564047253242361367879601465769615063600431460858302866723566425478623220681390899873110483672552669472873940986615765093654062964538619046940408816048335412866771570121403142547755375754330130895908734153243741913942479825833306085283694066911138354091574784697551663807940731254560543236927550998625297620172285789243017242256084891901968995411380271488560213362267289501428337642424484514208715447008501130760625264179952085289117352653384839157946836678244924361066954858586943375375149855408174140030250958682827887622284420757775121267775230424282256921102433255181602874465294465058155616825413645672313212184716875431124007233358888844566938762199863875165988402570427700145883318100104929637473514394277040892524876684962474164865713675414612372566514345275905766415855764346070012219908932721436307971173364624294155613876345875825617707191081959364942370597655076739223618617435748432632048607825733918735285193817977895317586478728895073380390253702690450414354914094390070142972537685944934019665798535743237916708050610346368580781211740984936001314247224700890391144058872956310961952214887243887077686697117393180634162829593154934515646823942897125195506276062233910596069921208596995405459223225918752719577974429840878136112725850941994723211732455148177863516251667656417080836050139645740299742480072591696534648449403880915858145217983568887087831207095524090839387530002118900839255590374358305505942183534190444682687923135046933987097599595033035124205336215777324020144962117708887447178555741191635603041681286008144876635305587242125891022022106408481000482225595722693491439873890475077349778956697785637792242286754492273787296928140491321199787729326001859339882279112205466823213752015780364679784199635679164715677792137526245416459641499978606490394246711532967763960342696318122345872206221420833284186284596305056391476652330803565366304181581663492628463692178426390363559978824904334611293005889111471435612336120039601521194017841017912479467442202376304386288654508181344295152499296262592924927849911213040065306854072404368204859819568651492851579699501005293374805026691446191107417477800429029139076718070760532398919452609548518499718377963154129625236883156762878755369503592928379332821977985778514841525484361556236487793583911397265247454592126013269501366159934398289822661447759464920591619951902480377418327895781722161769217783826223748361928205487866367911364812913169363258904010368021741750377834575277212921302932145751498362120705759714955980660314115632209083377975850379152494963447747606663653509817772181015784251925817554256493513548280659446721055899260541815202713443430870062893696842721814682433809100145240129781236068145198571554650204418648973047185040937905929728412077158505280893702839081254206073997798850440239646315662935191767457666428294281810326320353780419614670798658441849937111592181199759103136713296115897497856923385933535637194081373509929167042486336308713605928677012383475140374244574094722902432340086485271536843351720535968481237670053333282260953058221184462714023426612521451812477204737240799552285054562770199898405660691955626133249597744338253404929444568484714000055988563061876650467809640740678068959172395766468041851231767545276327087810869210475287542493084911426255877289287664113809605887724252329968494656397494642787699980231166999428897415730946499003174361641090344973210179614128873287953379159294336377222750797473289383447975422532581270637801769062731598976305172021001677707853878982757120815018780763053575774613006908522075256469614413477078357248556190400136875234796611671811592580191284895197851714268216040900579728948046614869987052608097384991977456548266422593360031920391704868734111127302454665838338482545704505477555715976153106903166747592537331579551666445229383848577867387861655739079749121099688192022202514938792560815754340078961241782374217011773656227808177404923067995400575839639440295291840382509525351946591325959760398555297779427629135071540827179445738608250639882178819788930715423239993613929999988419626800653487600702423414894007114095304207390987752445782670191930997306696248450745159932384432402285098142421470328114122137301228413987232434056021707303327992684680399619379756293273475022367687260040791409051063739982908645470466265251505927827606025160114718566359626284194302601832348578193864684749059960384403677420231480305969322588947835628569142188236992658548760070999067756399105097659986601061390624676556777985049420399764071050833924767566691844737945983868945492864303871264421097737032466691527547965183715512780001397811763720180859286639890738164547861789876608539811663637810760089560929636877262415267872864792898421372232336161503212682496056992962996746099520051574171185413810482828821387187593516429006872062081967185539372706630277072058518181754137653743021153981116894685573909593430516663611489301949588200429352807898608116345729044110567254873503158680949933100168219353720322675359359101968179656676961480962435332883518571122823981530585984045485702502616344959526204834848497141630415180536455941228124826256399177271387473527210944637845187133338027399588717642792137294339004194824956693440537076793703410235856743491893944318889277262581819049346980315479060581182497692536588441710108513396577351945267036921081029479298112546227039701161467958499588816834118509280277769434904941970288407414783356495234431683351088173431054329061972822284105068834721951964093048518633369208879775646691196420560779190901714140962024023740252733590709893317934044993941735115638995959998268235362828099386869640176613727402420620216932862075620768118362042619472148936542486196119177125116106636641176235587207502711549444049543967276284291898921249239078677342163374045042068170084846781220200401642392338864876623113005773425520397056885442676215808261847975137846994189508322699015028021752970463070499311884227404221930247182062085827621095675008539828746916044596730477115673415539902800145194202748829506705696592059596636413046921576972793345016106574274287146508081464166640020665963638979908112324629508432004780161995847646925296630157983083909547620915538464260119603065064078279277495457786833383511172081983759188232914826060129609278062745160578391576776966393545938523942607926905224501143349851483568453223756654715620807679308696203393925526727126774125732401119770496216245015500006953955542179363934192110331899601840436716978602032072295328583871159752945219822247573790175759638648835209266055914236460952238618156472725916299104095669608778822361511693946001920599116062957979480010356072043518083437396035310693809268742716072371685445199588906049881121565002991835976931838705407878772844064892982824089801518457429056371167825907821355347091311030052573325533488610587019458326472079189001660339935004374069875827951687843519010888824639208665171875630653278274950408804572328137131635891643298859472490592065693719883228076982282381137015413030933618413122953897025597094737045565516883256971101213871298496019821401698765628468518166325696118040772323003287540409583645758768230945650587701432300719628029323760593489215736685475297764130400198907689829548279037146224284553917069463467025650397765195825356824058135953930138783290259076283519933017365911669294785428898429545663496107673303734072972084294264988632463139273657739726660284581629639658220407917908013723647251767362758284484359761046664289965871312032633541657245655710558804252942463814709961855039559454144164440211485332719592957452843670288503325627113315014289462905244672957416026326009807917372081216219019203302965172228037497939066682619971286363337679880901564520058893492021063145090206019488249445761112793206798241266180323122568722858786270812017189835589217839106021275629497368645318012339896666035130404226624234927093782192393666399120340755648176780931444557343283715837896141239901428216381435624901276258551605012271471862727411111798345999847697223976460843324464192262559708173077419976355519108505671820036011182903309036202277855629238231239290511144471551800997693777981742191822984760950185483232669268610601075236503178242773988190568172687896359894031414434369597773462878022946779253196274935764236720488422134462616304539377757795626251735454372693642386900182990299062899979049841824269887312103036786904619779343941066903134305782213727204073401718329569920674887309577594492581413300957423177153511876526064711788958380397659103235790425710241570984601782627243056649769388292890152409917924545202467728711586734595483505302224547172098453332695191205430384784762083905736058466179060256366330970169321252076550468856523603684687403365268746653047880164825033573075378362987007111244472136518474312075686944892142508678509836126588036663120963675327788647792965261175289014905177507400607226323489562614057573079422126608792233799558307952843547701051906607196036347725373659268729744504385494699080410365640864526230387777698019171092545877932068355144824595197248162301715754873382827458734614662071573885647567713183123034758683911568586116623158639473123135911667070365621208938206865948227767467766827228774117291592513985633585602525843443662715378972775290310538559970829659498762217429030602016359788092799749775190191580365399298700915071250250161400297474658102152250855959687591404690526032657491603458957028243768760464929317070366781660406150163045597359735149172771796660388160185581438096347467616678874224499293784938500068227557711393199687765628902516982044218870098822822505796266973393793718587571959265518909227972979279791740244044927260563688298202960222883611731903032854563798320514128310026148293458755311902153692996687090416040004663511684712284432998458919580835258819223203566041243432475305794212169911819777186715742171911090987209787925367676648199650895939802293918778771426800491804609459181650021294340365970465864798784203141159536686838868255241805648239840268444936256318811534911601499917073919160761230811684422203640158925658554284800169242302520727099825739649743782735123976125540058044178228438936885459284219055915951613562324121589180090443508423254765649046534029760580796972322662603999387313385036955609535230963915492604149680672180091961517897517678178523621726295764524127370466517888423531557937573973629836250354172551989029699985328479353069952528053250578645941627609981620054605401071812377567100325549429387970568927844556296025437601347941095851394624324089798402717923188302893523081158975802786838829388441748038739380962583837553695964542619941476285102827093859610153329196230457012003477843752374218316679880381935217320723278829150812837290663221098736641929535638366227665393980046430509901257253090285682128417854887996483669358931661494950182715507768671219030928796613091849388248055031764922965488112365742987473883707836347785264139749030136328182293318196848975475291776055576395087546571941749998863123876689510616633414972384778686413334103536991962335743984377521636583275254436596055715619124633880497883085701112560246259966969552576353284728607964846159353946440265623484721229642611312977438274650395048405339234891045618811701193282881531856264499475343807048409976015882781699882483650161363501473878412620638278494116314385351279962406131736220790679820656786614213521998457102032409866515477941606776690840017749892606887833628786107410865273213900031327100026904019644062296499699046521287206373268158454293623761892357739038356585934259295732664262615460440211691972374391921142648734225076499534921436773634837497750904747322899481855801777598069886455850095239889240927256350704426392307167570177182890586414278205077356209532159000167055023937921627325975924584072656144052760135784750275655255831887105657823052661026142281923476350462102907432587106426128353366297192073843450646651059503779323715157079299025777687230733471840573091983012582905789629425704468089778932702512892586420586404026035981947735365813134865388665542466154400179808212364953372698787925256652684000690020033666751699991819206852511063958608794314775579655820938985604913238023354394033113591125831886825659866418468220942653466282444944598694298530682845045605597872504911492903846321613217582608324658097578132466658141119317608480370891302735312047547027836265490744835820671506581878550917770544912819800062621382139105032635980918904867822370163036861649583104658082943868662696501628255907265640975915007194235876554311736531721677026345984243672659998129405846152974304493323808687783090305929979485276426959472784197498538766052821763019483369713016646493176263442289485791346695223817493183446738799255000022195770400017599377828847468934020217461858453184013124344333460075630878932102747036681843764341258999030162782184887160952911867528179894452105794703772784577387630605750776441859036409429113361633983791829738368389318825785221376555163883050753880655032262391625072993705577460338390722128316121350504062395783467096716650457467170140039232209591571003900200908346803980131202392007665223783571131918275726672546895080963870552920752937697506512280465814402923485434051306051774579337680147691500503510302144803013959478435604904450552431989440088637914949493149301296008012002287174762304600804099817625396357384915710435251451541126296381241512387476025626059350073584963293195426015193732621764084758806007880730814431899014578024642525320448913960657579113364333450466839859116494116679179778108664363105753801344911062878860755360452881675128322534108112757235781445343783472650995972570673361406711187208294293423069353563287864607021629977501634940758679302314450472471568675961724120321059045893343165120675191655948912501080200054668721499369149700876621422835498693211428145692302275916238157597670277918030694866550937149449042468463929539280869195883236288298691590078104570150165764555264016967208025415609964516361033143918121010904352731090800001355780465167890511272337211011918545249483342348359355709125506467580861422455248851666250314647258965859891808878865911576583540682136388417169519492639641250753572251808306348263515429226472467258354275810224493508185301383701230425736710601069282791510834559393846257455624576557358712111338745441816377205722967436629805340897235169124020407051590522153426914811758652052991804399900960482515856804240912251575629103596663388833323338269461930717525542002964624056690479985667542472918164742631429439887886442913794644252603025342453487221862330595994588156057840196880399388684186917490637258839113064479918315007839645732351589406579078320339648138589435325873610158463322717488420429616251037580233311190752714073315583644749543498330826637355875966884568463396249260466306772991603977842707452967930877067163262943759394646676883672938856916153767877256898669754559031437554348443956721930750945765435524200223068036335421694813990781473681050145519262646150870803777702899247641533209027232721841054192648868629547586818366587529381791363246569809077392706757037381441836587879315334749663073764737997200867905430500359246159965021623793296663783354997197976208051347860139089497068700255779516788326960345760771848434541657172392134066363634265416662042002387872555561780466298659395510069719905821325504961946615118854420481150067206440780918568297881298475127687450089653389213625605487081949973425242540943097533798337424755179661066464955020302791756977901281384571449024091756289686336777375922925995672356658576442709059552040106292312741379154676209022020337356484275780455947855133647452658569064082672996242750460778404306092591647539014500245023087888564555895958147714543445906312044872277598393505138151891739187244643568631117671639940708166056584583731632847780264664636738832825913507153744941757784522948342180608384613441087426345904423717252401753116849914198931149266821557314763821990150574106222849767510247634369531415945556991893591157914976821916830810518611986351973722779067577981214580710343807940969758869543954919633762731575335224813426927509641503428145578194648831385277907506217206187663374147015132777945358061917077958614587748528144876890475711001950070473543985362011748195583101057374227075670685357189173702277445915933540703725443362095853282306280793797495930043634151621484092414669374475937173617812235794003452489430027340593160442689266633970826089552823530147716587425619115729072615057235791194525140707954614402303997799875041524498363313185336100392090508693704880722633166985814159621008755595338100309394710232148387077727473196970819388405338926678662652558984054350789510993776285885233291165596750462153782412191186713626543194169420836243254405962248174170044411780309916800081283612195436580140070203848885678056719000022902255640120642751532400659313110613968321981720291109033395325076844158866169098340426446457240255022224170938124163857490673899409252549246136620625674011633452379722998537587452551686367195576723178960713607476664302827989355407210619967416313882768263680032664703817498081740602208890864408323162739841338339243741986172536292151103019199861658242976514959662826264746115840863002010155350571108855064834595326397339950064268626217210904234914032055509944097636409935985563627071069374417356829171032821188863481251537305570423343088891844997014635645448870476569318414540398971504467896256931976434115840544336569600960264562080605713071775416143770305042283462716713633662594043685224852660463872105821725404903771016419776143031869931610286951562818431901418889810047977285785796128546073573923432862031101618633421052468833433981838506187581575968969086827876392148183763520317961800912052930063262156614111991955594933652902322039255581616169723226065461504736578596253036362323638438945791292585700428787278236042541073654481605739620698740290881817057928426914478370711573135769389002957363430568003233994633792163701285046608311503565509692886241923850800833689614487670349060486114189747077274332564754893622630906399994456737216405765757984614627050674688650029953051458288321648409439771658055743726873009573502868438421433439582866883209121778913571617912944402618542818777935379403592311256912665885714017773040161728820319566563356567029443509132088170975001043176944537830683473092872441170496649678804144106981134627570729135156325197078011332602467782882948018671054206901924810647442215928155140923869498530189215272772589562205107913180629292839981730126013536056202758821269085559455920927380908753675009192235521518570307398250719535443909507444829823324306848906653274402484620085869029264177076392218510694931522293572909408029570812654367083503621365506509512986687476143950404083812423712929125674918055527538345884236891454182349399726240617377099240727363154644934309246124757772760752957953651936993365962944473542625902314653178336627788325327136157962204454009385422709995599550002144810415938092335965551864402041811364237713090795316841747222123526980824838372519468070487232415889625762743711405784346872733581221949026478237489766126169485599752246908462145369601143816075857984296525672684040774089558620659706698729364951895716331720429014088784611670425907813058988071815180728102461938507546829021299307125434681733302045167906287170533538516664978052121213867883713306895207331685668679027338462509655673049364533130730304137871097699743554908087403738917218332477173098831359893317660028450114827571817158756105347810307753136803845409617648037320117761448716885754396517787141270599260929748743176186707253841822787726135395505718820924670506791183599804805934090782657628432665765733854998063241188795877728863361232051538433734242946441819995735765155982617643659994365475929491280992702834937419705419333591982987863085051930646808538248318110719460724458207653392492912139053982333889035304922434739345349012750445686731775650546647974905102890886591023423398571262429904182887417107688321511104305023721234437160364725118660573603285572722663796436768593220923751651510293059117146728298080527164722591631826279968992403722445061311535152573057518099471719478154603406611815057219847672406335792867883037306372515237564608401172386629894012953467101046620313054753048065320700723562133701477299591602258175888049522471509220828544314764333724038325585736254924079841952763545207862617386583257404129956116633911204696209316391062058493322670481525877617924653339928876803875687411524929444864196918172951295291347078009332104968270167943758430015620205592933044450758317687120595626778152160298519262918287021395922243088447184924029839980431662657174900968282446253990795439370608518044301195356958878528789171376053837026896523100204242594818389646939212291542675257816149052382644297005694495683067289406801336343491753354968052792904883218875032523925686308176948654086978705942986122115992036664740745830589076439562722972968840185785618362444353236421374075002814500258959512567581268782573245484669749294986897412530195907629178894991569825149443153537447205496433197339672875781728356037652848753987828469646443039442327839413181977061680547823178712449782027459081239709612866410373554531121637271055775085879290524955418474952327861787377973969692856133755847718778084761973972882649398809006278350506662449540113930412237882839773207501724620278304358808082108435422191100851265190815241331643060062872688509976651850213294308563370943750750180854924335430631437497405312763484229547073191325603310768281297072889334242021038546989500773409879800989703336339325281598695640439132505682365615668919742851590001635625477004277198238267016184279622279065247116277066107083975444548894155654396844553258821794395610228152372411454281003610489841633875900535305343203413823040802190171349243225881111813833834598280762298112566533992359942307261570948654914549464631425635801463604603506513059011027576500783084146497920100165500864972492133806284511973750327856933732695054365814341642255313381810395904000986357936891742712171965404923755008353090786638728470124371532707138724707587736995729074623200139966090643431959185455552802434015626173446948294167579656562197808946593843601912193668788586569661795667486052021061034174363869038571917052610212734533027911814065343053165036914229005438444337578347334559106413138399526809455246230240892767802856090874092016737937388310674020480908178350369915151835477689988566449608824346213951093533775945113275449749196738668714437719399101501080134229955423088813275799381891210017495026369740623311196822696625998566562158905211675614577175006756467160691228168339355644020122546661788753171847144574652053975429447986198829916613323298240227921295505047506534454629091118017944793190843363863437097804775370990823321943545698535063397789663316361883903122184070770418171786088823272207634415348755837019711602015041710400713720664327846065130758099534535297677366376583215532570567120350649636636258920748848387615467815764438825891448643589556660286045073945556328831055138079858004362556049148088225205907005680147171677204521737605730832285130804560433508560848886118273705129042110934831389795357493448425763763556096939760044319707737333556763754097368392435526716401907822500702173121157874736370252874518884512186193700009118273456723450175893550667485875489119581652942573594277203857261944010381729452490062818643848464228509830274196961480589769640914923969317680052518185572140970648552327334317806626795978216219229422138115538094690543444523641879793400123650398573624612621109010407033544175233148656079364333742879814507744690851921378953389068054914482056293914213565235024328408190693807647855012775130739900456211785418477406242968208588700959126965822152039514901334354634560215053314274512244778178154430275553847907291080318492357491912582357937476492225352377022522079842982029144101554645839603356655431421323013995450787608083985149842231065380974665168626938962319142131075069778101436760844784018077771242910969244946762902224435127523847208754560495802716135285521695408646639721905481024500297381418691343760822266091885586134449347517768594611777970196872483141118984008689742091143185308995624964328069833585228596314925474016017883926726899365234809905533246029088955007333186753849710477880162328138668898208766701446069393609325631708720832671168378536541938376890391059514542844726812385591774986451495772854947223279067126447273644960630632382930224230220543123777172800847344855421378584535382953955174678880602266889267138718592977774138484398528696205887998150009518879747661669027045881957460643946597587706452115786940936434993248270096724736180924392465890629802899001897418890896217351077566784426702914421777628804614640903412319133527498451680312502804264667495016025858667958814157962706451139408302911424606498426227493302404995235035380086425837965950072397727412967377002806502012667462235122263762506484988279896305171575644664337354269532774350180803196880361148965082681948836729418275809073766690327233170675950789045425889886808746775865901546976474408973413273069236280324773365442656090454889025096125399424788268280676498661405377198300931528283201177503375023426228498706546973636037121735113265430000699722673119660472055506868223916473771280335087305893748336429053180219694526806600882859630663379989528411164349030457772936286589769654008010127311704475381535793661586567481783338393033760957519749368732056590718628103348309584908350069462299612431040427907700354814371042417564192855497260857489996566064603602059876038113010137104296473154140811367716743033904052828418872198832338687117726853997525589713465643456507430955922662930230469315816357879931230567930932754962163593196246114432073893848140180889523901559367333342895420879548639116863785438756058521967340825249245081086739499607662578566520509878637684921744981815139718341810379516127871790489620558188442738068605019490570388247638030465732287608625354695410163236499668256887049278045354968549513127716377140615130740669682175158998917009843529751801855564641460228592729104693801498260078413811274382853627664240327412001421080762037531714928898330452115208716742770122717912049956733731065490289786867533926763691679257299722090584212623207599169435280920635001232363386504152921738202819174857171699911447926047218103936062832682214908544968740967042667034018867426726811669646188140114089172039891009719213337519414430293629980424637209128124779189597188885222803302373819518754176343294217953052000027303481021982978576545251489132087932469676529215243487556226116508781378249282958653003933777455379930119682439673872145757642692768160373679682085921646514350407031474184226018864431463765825926114076387453089356318769822312805767846240831906842501651955458567069341736497482482207225785552374695323439844470619868715676067003463892198831737188735644010035321287283032730038964682999842033604174280847998044094292195978008456640144584061054190220877656515351436605341606711810411660774275580790367332906221047224897210806926007403769922766361664987051760244433289773769928994947255464096146259200131368850481581283629173209996408394985202609488200620666578778307772716135451591694241576303542408247469121079446609729194213750346504000533701103273765111746267371693173011397952627708843342623614400327543002105696349058010923277382097905924889991940718441038782213403901677675290453027302808931039005586685494986706483690243231350223329193779227290757632554887988197624626381888105656597170867661960022215333565864069532508968159254704359990635179195703055325986768338004675334460506610471976241000276615729752975721347032166936577953778676798083309840221750345438775449197400966167612326453473609180223769383825732106252090392431149402175176993708045327556789608414317233765856775368109997908910293744678367787688593478794956468879068328943947206018402157777541329899544064778492472763148223430003365810633643066188484228272231488932735782171587195591334956911563326284236700400209000431517586195656632717818842424715795581164326495280732071821653636676337865373569668453743766585689045217651823953057519730357176881237284345572072033919044129045478993406417316038651374948644701852109879266688732585894407398012550327429906718414141229063044612984939813544909653810875359986835748514120383642893688752030719070406766336454572373727096817832441797803403499762120132572528421007413085950621919008882788279750488774421513638087216524308739188463310719808241139497957543971637352262996770748552039183340359451013829006071373775387822377852944599083283838579847698951151831844922923127672521025661972170885635051397979037743233503216336510289793623286066301736394374933405717639695772012660769263945716025267360023532489596132606944305489707460890383044075950316741147304747812315408311952114285620468754511168327251393069773740397287757059744159871570034649121408586805829243088179229288441321979787393156130291425078065767457148596459187243551784601124850886322017171252000170852750293267437583070755138694411763461855815401772209690026099130834243411980412649628377332682411292710603524967337019047268492356621329929782267782874299093641720286290283678400496684211650003855133785069673679076247870913553695968149310902838796411122902687711092672821380733658509007833895775745300875974594141853436350205760284015044750924541413565597641113075251254342010203958575048779080495618441856618525937318741813195542849920341962690987264289578564322830612505197655315760346806568000259111501155050532621704675773973994250542808042176750695579986613968217064813890764996971670707245959838931971005962356693977016588097749194386452321848582799456759875239650089524754283338403902902728272579520495645811433186539878591847502401393272284142954818763311856806411788155352914856964712437491496785971194006371958379478277740729514834284174125595553460928235393229170869158040664370113516324430517107232174438400914709262663966474538395253311286846675080236782967496266749297940809916731867187250908561598272211633625593731988360182125082898819541502556381925883337009224189695196746456957586534246203787787266381096226091728152353938571469702840533400424736678409646836520416802707659050016594834560319339730295179475569517672629269231709829711328153578004371247910090418137663593946560535222579797386867025586773370833455338408118922414824922959908860290354471080777608498465010456485831612237218956441966738507388489702066456738707837156380324680194719933060917405385723241159297577682785189131711271712601846380898662219753544102101784668031037864258484419086999915588385976835252884003108169047088891995064380483752940609899049422360442766808675988409098334581251675815130984207570822748333223941924083946829866288930813755150637387888895628347608133485409556720774773842683421626014206586822997826278586777820173900937054675712762707826458234709120448866501057480277020233461386720032933519982175312930449249440094301667424806378710092890890921800077822039238931434831451342046864174653870609279892419734485763882696836997356196930983372814334643989019010616543673172092068181598496688859163557719552062417707285462098613111754589326671458786872790374968303533339476637503910067679084700285465616853042233046984711212984935849733577373957839264237064695131662846266926880375210566722307010699395898272224060100068167605168900390418751134219759393821222879977504774595215744764860726233957727333015555384523125003130192560824186396026988224406096061494561653876401174632671071179711687069225251277372328108653438261884101914396813798109920517984100148668734200140440506979946615076793695649910407150938298801706819867789081054916831296196468198919824475472612033591029167949154923439819799161367597723677086282640649617853278646744876626349896478987393916102851972338508447340143059299218769036581347487382254432624189882876815653348294447318460371359451823715783460385369400276713362953487384570108070233686519392871170114700396542917006707976806180568783890972541721561123257095586165843797969785433007803229295513214744043212302631850461120450440914675162672043870925379155964176001525894210964557177312523431671441543252560057166780955323557440092563189114188217480059204608113966000446012025538913186907522113099021616569874523374718588637858604189988720146582651174317903726212987625820694568938607022356087873832395780726255737230305338120630694150528008210628998311482325877659112950656079869776721834476699376675350240755514737196752929405721542300567914798079343959502449800403580502187793677408135115325509956642808516667872056284589970218347304595534932310799878936181418267070945081792565961453107389836273986067929611640188596438312738476558293468397289611209601352204707097306817943475989785708432052187523257903777705405509347408320825185066396686559233631877575326374464875651210379310146261275245198540757537847886541949657015163905957172552004104562414279771134296684130806712577101584966736585101144655569318757624126858460037576062286535386817396431607983458633500902894033285645372828591324779407883085023689595323034645538349244724545557947947659320002234512300825474873459016057224919392719677016481431252341902979302488425938685174938481730420889778054462544339225706225472473718777458385078683958198157206968925127270186738866080640545023322070866822194699450133607726066413136163390968757421289927684778255283429233987316553340785693210548377954979876743086184914740856900407373966168659801516676347744001836019792000472795120373944543321442706510619924888389950414573675821328728762681425649382778527197990685050782821503361390461944298019359639780972661118793146453620074894078521038703469060473362282835232031162244230567076327296473996685814578700089652995067296414582702046738729019699514530326616798037167431824442669460512106443311792386153988678592693842868678834208567480827219521309656515222133217790451603785428864850914891811598811489830426038345406381419249238153297865528575965815394462348002484990754149692997414918663885840150934740611022889648183907301652739207765833365741770482726202088624798269644793235788720002362066719349856508422917112751937322423466795437886279516774580905024050758189728308231547800687384548296932271867939633489436139143235449248012397405008510724670529536036543536963080662656026793899253710547161384894229788163234790815211903129567905755623274809866630435545452002039105221132505477433333060031896114056050639946002846596473131109078714990053758500211368254356107157883908629420823587965844661562137811553836164908425086235978804578928247772808784597624308682122509326512116856991834213956708500928487261085748233051292650480844063540613822673787409315109995129053969496559012845163513590688573734748648172138690419947462641238321005528781289579854920960756172260192897676549499590630455619660113397250326271832256057215391599812107515409062459334844687291395718686290312694486347887004142413643939230188561065846374972779545313517641593515399898896325172170817512144960491615562047562709403634665921569171936558787657055309606349268151554351204403003044062330898318754053236027408051205222412663346850544352441258832358021496002813114037525671453211300408356006983079020895456537225865293974774371751314983335869078647306720121703344256647934198888230695685703663126332075912314618961573052904321758282819441758338906638290101067440966412251888078775086649083668970108979065974075540981657797767180621319359701654333118205190137964387485035640208101812197577146605414713747735839069862253588792015914783465290714193617904047694432950068609018928456188006370888247000639330131483652040068577310586550624350129922967088273459121378395526502679017583969748806274463553908898506472176518550049420291830520274027151305879423863910946004589123969783728283038381846990378563977649548635508525769414878661097604288659307886505180007658180815916988834469454510477409529620687098005554994331451816375324053302590529445809475967804218190841807562809169513680492003651358437299918924858278325051248437549628601809872103778594310749661231973642878518630870633346776122096172424625373166916647035454025840289371713033559216565986765946194813376421551237328561439453511719160354443854255954991194212079123132059833872376466854963169314669690448920175894143612287485554341389059789407896209605214761679202356542641494691447442126383119576750084080405384262315417369839695412895066983369113753653584417421301021013493491868402002259992213145417193301786902994104167758583063826218629543433480106397424991904381262839617799722740746334725808702847767234421807967971358763567815057971669076272334175688913703721492778732178893638238298599182132087151335413996663196920784718256192800029418232176013328564896747537652044497806294220027672561296212175600596354326049848204244616072550375323057306814648187451776325976368560932405071534331649715787455694724729981468088037300639538706193927289086337843530678177458357949577070708992951037702916031590349602266454514765477332714318224030644634664529590646717706260507758174697067257666461764025442510158865285959093388147642637746510554641254647886056444366827884176002276994049111475834548593022611374991298834802261461252135580001814294761510049568185304828815197261570231603756320566832523940329483763207469197933525702079719343872211868227162917724892968316445576372676075657305558716865413013419253568074968782988917605542830907969415592980318695700921560902207183057054759127329800625788668908933392901791735326911998185928779443861186208204319360450500233970299604075156090708607900981557560966176381977629370774150570634381227456681861195902124464091778402015408967310996370249069846369541807835587276159050442055408217267668981773717352605827322211242261485669857925602280177147239684696848091892698713450232067416052845528527508209265391959061264181762413242075337239490216640457089634106408336531653371602885218354045332209566946729621511627128584543678703136385717682658273490775323319686549660244648821187033983553303207935245955900078633445381711591314187805815204788057764139150516411132765735209564880781042635249884753198178808318228783029315687703763502945686293617792432120106816820105035713203329623807940293026707720904282838169868974464307526537884326792346419884546620798485558027887845498902631239621533778933914659287931010235634093607379680346918393427853428719479224558036107219702056258305303578500481117220714181911233969409591083086227004216781285454158822264964268132913800163984312431174302725612959003633124809593903173839035361271082941111366839363533097809908887810622616096189744206990695753056959712343347244620625028267036278016770450052293356241480900625098410868065150924560808387431369385845014362429755112340388364313299376715886171629188550191551268715762992797606406587482357883507416742722952897003193958948334386170879963829250183171774345048704268796406288888559783253473415144766541633734354047576436605501911075210448758348236606007461080416402580614178864720314011604060507584374516859673685508942765872612493881921784563989192147564333508660303117610175998889928732954579773441781558354013406791595658497671416768358231426684257953551638576993191451874523263117701763705111941213217998835782399526441827800637721630818284145743267417447484318233499315736231939244649583897767394285072555919534688015813393281038450972093881845338368832197674853380435580301888500631071958938821472658820669649788237176689035029113322640318732411330620379324757043992151386735255631388172167506872958676770073251684538898994919015573575611139719653729209913785043338451377981895144002208457695568254900869521935307275751130609026056544393557361847008281089954059017260796169925228799677321973679239412126709754575383488072899881972245262093930089871106971605304751405514499661149801209787949173601339464576778938346203872664825266496729111396341893141631629724134899798221150271453614073045244307565603784028550178738344012515646477232498918741148790115970759894516049487495091388620548210432417452255195854506780655274599075432915692670606275679325853048496758157727615892085493845357258262637811591839069012064422504091894547100309826740197610967097794953704043544585154541495110721238908657291118584772243364021372683324214660444072398591875722323023364328106105789511528259756524490732453620384060910268232004984102547796875153746062119850699930951159333597501887649579197290105098259598961708973158989158722837287974954927885278298872478882051931831628088970553851512642811117805087487752885430044384007748117543283617311162814593586382401693609771396009872487629237725310196289492314620782016148833261092964203187863638910904768992098670101620104866805897643522658933202388884691483214216245764731481955880395736409671314607004537067377821071376858157868720532215072047916086246223034855811355469955450103540438506399238436061838932494704979160882694460370138603161929294384358224491477521918470923326591232515944882193417512296108759518676866702217660580139216627686728512590816701123273929019638037957123729803277063365585359557961244501105586904662774698946903725139616963625952118576330100789846611863169252061468009783463054336746341710245909536233795664036065704639544143823949799989975171136465451029386913695286624715383300986348442746420370504012052400210136321878541653790546215151105272907138983552311755058170277583064253733706819789218725197347010547626626838595703703179377547478355623074303431842387123234694785753162117972144629937556930637035790981970519922046853879073620277700222238745574165721765519475280579595965268966912471947732229545318587309717643542754913396962695707920400492467108568698773825323794713895305233757657931610815448841783730185140359014564051320918415928812365667294973003744376499661376760418598126736124236386786724752003643440077164874048055987967189057768653573664167680474526913405168339367278217995908583658111555515077022926968088054081112716606770594036163106414070321614101684435096665331700026234847852214765086409109034035932008959938029005957180020251095283635612995187585114896721626286863533412970661826764534460942199627742170926652923185088398904923970979150055914442154471948627736008099727288950078535198947772504096913978019401928585165013681547213670240880586397874261358645004244399260241042233249640795172037606031110230865261848220253679003702009467567088183029340126812502669160248580148696620930517698665228723244122067656950039986834073294717407422222032965595844325571926961377355995615708083494493462947822380965717518007800696644568600409533415396899431966502052156657878029993493517557058202288062313478391816403652772959826579761765115090439997755581522104854782616776861049203533904438932404809224525307161221869309204001754061357028389865234425835206921874037595841783794430178067951537768402894169779140791436378110272382038431986403996025358115264434301991889166210422505720337371954150522957899656815905976401206819751075255364220535334755769495626389453445018657834344386664980086339979338854072660841130026158646158760384290079931787948929614138121304740344742690034500016625169621355837760315496158123471626978862289589098664162180489834305991546586586931156344136996129706147349572161719701096126409344137093154196296416207532260238409564719450929016221193601925819879347968191841120956483659372662330682289026045804213491574747197476487201555523453917508220419860495931047599927566750857514887372943924850062928438928347238773252625441287063996471997120453878548816687188073016296938046724522380170730177776311028269396926597295683685177419458143766073800522811966019584839873819114710233787277559090044834157275282093679835516386875900298258945831078610017819575882441367234253841301059178752032122086955764188746638155319264462285045588143079291715444681399355744157599856109288214765858118946220816571343231096434918189759656834993100663097357085864961810602498200236110963311291472721890647171681785116469013918501452000459488063346494066427184828141561044810934691193046868189000629019209856481957156058864475899823300940813418928108225506479717532448665834572298944750054809667963242459197824259177884257340391312517352491352687072232438578178094421172972492433382643513830292780833799694302919978543770692478684453106844446040144625500622370184434016234482193636895722299116465839622103972575906403779287197769067231653195619428496263475874848249166538383855882620862226125901529805471647577120731501738754181907021748016573548191503599100784419849262865297356301530015598592769264997565254768768565695688158341763475035398636784287832228439645352177996664107060585923054087780196374685560913313980782401759330129132528451399421978532135986811506781779955372637720752228854253477946207671539858097068975525388276620013075641841722234578705822085931142649222753138111605845465427991893865712773097381481449804530563986726415733853346757714174309873848251254982135913694606582758239294583039365871135417602090819558062131912514220069126002576215045537867652104092563056858290742577545518268908432437535549656937009230578851703533931402550455795062078656035069623139583601548437575962731787255732581201654648538868163190373366788253863286974848915560561199054625608830406658064448602920728554356924659212691766996670520947054720276096199046691007205726659098750953153459875582999723241301294392109454817542217773793208971494652077128145884641797392686678722897611409250853708863572063772055250870032798626418587587085164969915385144056398727280492969989346318402595322764013643736798877837599608056391342122781790065194138618774569412224387408898827947797074167497477179399142057730425448346668739242199201893238238842262932593307618637414199134695766039386947425829856699612096686814362940291947488542067043671891025905440199799797326381301611518950019884464898435981364585325207861716201866229294227238180057182891579984544581131089094616540931498185334831924555224744158937138584125224313549250311312989753274388504496595923250258352943363629300598588278843509115634042158961346297179297971212389638342634583955468409176520923518141526504355784724926713349995244616820547983540186682167558795409906507141835237982066065419129634945269762007369486526844050132478086453760461922970746572144116706769969645421945835354791588823944215510453915344645599367950533629258198130418048559453199940136199185708739876955022349888708549036085434375002853612323227131772019242588762725337613081576420921562060433400263940471530733621736513990522767801812259330210104268204023786735639701689530848929379272082368404037028569362138354881845930590203620216328603497749392098483317682238184523316536806136686217242591712940672359748712160659779956933844487349124034879924114960187127853708801923153271878025830422245964548602269347444723746176780330426369855213822175038473153692563082093020945693606594860195219757398035008904685114250733348702715530453317328739699107635787520237883620133623881161962446624583605967220729919624662021663290602178720267018039419936020314161598760336850636376770536633698875533000458097905271699497462463030178316832246548655435064675659005128954056296087457261425111822095395276044005266292121462877199307345516389069092529021816085448746621134468666234550911863401218061837610148543072435813922141821288434815261161017731365659216890904961078772636724282813008878715193532029839568864143124065925732406527311123616273476564849388754961176845468157801733490237283712834915881085182079056620887706356850732945395860875435468255906070039416871273333879702902077324701997188307856391490223780491114904359587607465358372360350040924612341927281891479388344602165566770675936824225283911377545266439163913052776143039666648141660954483515574451098499550032931160545741555853640345938607072170818666505715792526753425112111996036748914869754845626076196038111302698553050584218667516051621809586556460484750265825441720665366659651166949600811937454270447927259859149015826085253184331305419146065423332658170185266044963377917893610716250471905645730318461989050798466451848414536197234229061141201206234090381890359217581175777367299498127465957801188328940090576997159203021526348262042496651952883356489767690038490245661055965006201095100685206428664670559184160235747392202205995939084454887135856674591116061053016894647382225897033582622062140722250875511805608686276590392292548978313583487765782718018177115780812526368192152963399093759365661965061408672187616189754673694737184806273212500481691098313025260791518272310176024133679932878858467703378782286919805205182909138816244388205980132739412972328446783451081758291732630813522378764360224493237400394844873677300039788844906223207568670055499670758574856696969499561727089923497930907754870606033086998323827084413520002449132775684410210299735039002444323059176497764654585992581905648302790360699046346009200859546295670796529471840131408214004858212158999585619053979455300060982786468357465668068616348109498134321858667601776750751681844824628719326466303381198988487226836236123798982333248771797881303820441829165589681157232242024505865574003651504555878639058902357604875287168717253308098455078517980718683322581733096408763318265514048746585671472906391000823457647181202498031455665781149695682699658742007621792693927191603961597556194699959570470886760059671267300397189203141491624473168797175218435746908584213425459928819670537536194181899628670289661043368768791594143599869973223979015807332526222236495435006504846656860334811578503436677536668830226355180991904147316774579227087242609843639879498143554688120060964291545521322921675897154915676772950061888873541578794442109602415817774841258542078713300718346821110940299282451831034519515852575629562932358762696436001297404149193492251788028940365232468264708756334956829130872697727523846442037204924049805259175036569514178787355686113850758628186320844686759856623615349106704004722092764480882331109933453289959981434124745849407132633668608316838032407724691704267289997911394195266071459833902235087504262565605981806614047442243026759230398163741213504591232281798158079666088394373536103255284223478601902751669986853911152997784366870499956598900375816972244982411501437264402264536217200435087384163974841009603210781851233179647922064696326647711484183823343931133906194551192800673874823616528388114627920667882268577302500390905126290331406647596370746868510296186889374623882473471040658586949167364066997406890751879399229709355749791690590201347144358223475336971409918294686976723592601503487054533550654033616457245848437699119550811390259609997395416781814882240893215082653586965503101347710076380766008021420268443415705471224179487268581395429777376858986197365516890706025409379238734695625398360448855571021384200417116946719563363341297545574736091524888773780927697209398114934661339047571967992608843573523640300051056753618655862898783203278239153498465399372025750763377389653944545622911388023722100558859487929632312221506801161257924833511043377579857308073547393434188765282219239383821087789175256109599076871849270387514749517891524018482737131848189373424230165438593940359101777350592724533399985987540533080359747171626457210272414113660300858487993870653705046482441356887238301744158742685214146079784804645955350699424911194153818207854776618763482792506486894814394898474918416699153735299501717132286311812705941035686191822771561540616579378878085247549839458993369143557494541821651825673888506896892115934772212072855431668683003944277241057415116932378523013374093455503862274858126586347646880491234317910909624711300914104086763994155148606432158703996997759772832911481237884098322281441831463300871054579551632629679221439733294199363246990881727424897145228597042583062421010617364476660367681195113300894602240722884535797283658315197774574061702477557383873978089623652974712389606917888813708909825872529784165893925175109367027077432986003802013941160877240692607286613752180171525051651928979255487100494276717122883234113870764591118570548466726072720964087301682464984672059806353935444044043262481022501555583844846763338150657429731479979504427516842143638405741050248885552989756089065048698738456664167630445787696609936826243343331411691176175248970177163946688276711331152275858000145924904604906135708390287078177158113335063686631773721481430397994913755985571528560606570250528951939340823629836430644802967359446614447706937341810247837097794107263036139601445628163059156197461900539242704220903800883269178642817103363585257043326249124812686118063107120647555431759115439947508324700442376810467972379124913087283030142630754517268541805138013237315607306212188544225205820924650910261037974379456926032036408254577702643631708128671812441279417156354919733290433565688749647200628190940934851763278932289117529500725552070256632599100338580548573233699247063481093444601476560874245166077909197608644800711549931628087072697644153502187555019943968178268724176449487513335059371545318246468098253561950805528960776322884985572382061599328583992795000579262716097560246156297682933697769770070913573897312773332615894721666852958541271934858198044223829018690598065168588687276816515652265140842068767913349119537235595015582412704166641432961674519819270860397447689355883005369359500937388510408622554770805801362206328864957926636833956106018119176004613368714557309272107332208243705728072139759511106147932541868557007275612997251829683158086405752556847238367791897022487614950841907952522856029810268561292301048024048862903752017645178372946131563429012480922284434891562702579348309442195469131262316847231581504411339536739625702930943704086706541963551399908002009300804443819880843919439709969207081811145097075401780180996949255672366563729948168111253672326188340429077902590906921158081885480438591419504627649808262986407284337769796470937445395541557776301264497812778890486208133509355342839267587794574076087622659232561984195823117808929529639645794468624678604498893339225191208158988858206178182244160137059714418580265341852082460791192429632874038790651599608356404407022866353141495917912674280647314267923970774452021807625700677158435155756308814051076261438961133085980611158592030664751963948029414941404556403049050916771577966826071517035352953985742097142829020718488302750326768363017402618990327080716525995747432730314043674537190462893434579652049932050931858415953703269187374379927593504967356847126685283433726796298422335451303421036733285096812530790918503581678541221553884655701481099683773992770504052159505193972564442513316268100431571053681998522221276452825663904371638954148385426164971710688237308590680275940553859966815960340556918801727628066774550785563795716401271735241751454515832402341356725249414398781738789628365650532073584792684734798421945650117715075921953450018701924703154756246075591952484976341043398413666380607040984757316765368875325993250269365419873801456539075724161793357997374358673030534076750885975556751004439573095097113618422723990523606036347437183223163747173982386373058451155467491411652531214117339251270763827941260936429453891857472710438846585298043627386232019787434443901575151387472450750998154946190043620753893805067358735578004068032376102071683934619822152278435445567104874542609900899883534687247147211047243956182102050794255982782508271205552300916172556503432128135351897206915211228482006926951443290972789676030954524699041829077567617813574177473894862012903532331060782178618670604876018544977461442821080839999492517843294514660843332657160358335451700363721712953836307330671619470690360641472753829396790945875765114932592707171072873577763371543314915081178931378656285722404305522144918455291519987083687893163851910084574365192157066498683689724567434433766911609154994400199663627684302370040287013565807113691108099846932330949420802906401793578842106123640912034955249865302018038463333346801936508388853805862703098232024543097588120537562493165931684055984540285700213268571981724043855026253889235427187273456619194666577152496044473251597127494421105085876963354393955070397763982149912852046108290247539199069158918495371141937717418889479715345542750723898003482538096005480095587624825032507684259148014388550346290214924829781706397532796388531076386353474857377259481113483098255835157768752410730222823283434214948555571004762187441065697648623061304137658282361128641083623299256288287748192548378465319102812853518097092637086272411149554900045703794361101918353146241504367277513736892545670228137749814726089754311092309141461747886787136728166424819046433402406330308488247739433796206142096895152161323259503553560462524896982138602813737439010392558606784133196433358583868906824979093431680258922771492812089634705113486462891447408708663526208252763221271898490880855408135469802937707617294497486242574888123195001557257225973029964104355982434124537863558268624884431613705439008722894350085540061040150717083845589271652950662901742542863591358314196075847290047118459421232771567985935997993917200291434592364010021735928640963895668648379378451242970018266111179513261849701725099015373990352039781483534805469531453051595217436516646521814574546266326070712528223177984009778693882444815711592728307452697584232499227252687797876695262899019314224915919980313800271254194434821208441653596917702183835704468224420183667408306943963808822223481989103257810780107874814800349176594135432320120330158736672737855108145200902066497713351209582895811734494040010463049875938230174197151891769796993116273914708948899880401615970836059296338330524394210228624050001047103847296468158655773158579751210970977821404633960312220289266265231407355655812067309629890041186703286566496811883259222988343256175272595580323537211023894631812108775295576973973917015600662799227421610264890587759566885258744635792492687195387771043386505730564555839264923762729190031870277853505762098914710567314799972643074354226189549867450197539966455720816913286343889061660024067338132149081565810108120188702556954212924242330807608967087352436067048395015281208462808700099981581084034313961226519929525999061439781736701744334175717022537815722895893754117453379247040111665750965984834917034983891161595869109176898308410747711065643028854636574544599204453233503717118580060438631650292810828344615078424498551746432496584136771071942018266673480991027206676727923289985919647531291448003494474997593477362035696342087982973813768035558882297923733185528777936083876865885116233118370790975365192340212329335508108377402989865687293860507798904259446670494841198486785880356471130620515180463098419142177374196889634656009938993473176521005936020295687953132061556366397584557283105429432075057125427656177850847376264990359222449375724650412255438399409944219972138240336793453729127116139768179264928715874474893840815281409809195070874762633220041288109347286228454384961326739671963927096043660553319684353328505204415569637602149223415670512684920267708741049469612901608880172498079265738963098230042703170746882698036755209827454575459409630901973700260715159677578429448570157331346295495943399536548923533307584580792505598519488310601426230253333603426855543343349879017150409700983245067212621839014544784324502367528877079325981244862704637090905131151528581634243241422920495663478730086830441461822447372876079344506176812247621893563257538748032976580225600838918583313759920533604486809502012397760825852445158028672152358799757569041719687513190108484513764086281165860702115924613345480312774748142909511423865580780977735910493623713667180942107092701808438088461757999261754657148070796778089302698360901501609050248763069457519539758790452676177443266017480942319547287105874957540429651333247941497565532416794632900337912433118658239148129044383901805117919811194316549787094018861839115902483279583001075899665622220985574825172014637937533463723380133633697595032493417157425675684629222363802194597637934566031413419930375780057409380430213874394998934647176865081261991598282843758856181667449146045970141967956718483101490198047888673475950387682721479695639840441959282610710172346028400931707161044316252071159196356019700116017998177193876420772252797067397577906758115717710278534935599940119531212539919501427443723731428693079588246709400556870803000853902988327807530932973704821535400609917932313602380874169599128236762076416258616513354848651602116079330204645732845390323803574857275771353907868355446100076163839657717521330497760245864311772312608068825622942560779705057474413553514672120487009404915660629939008257371679192398277976861254285908299605150453394145437397093511055046594919993446919465438211475436249822993983180889517408898072643231710391871593280284871340203699693598834028089304486521182986562093017940341958478102615167393970133622353677796990104720161849698122970209197136586492487647790363690452873034186107837058026159527591580969319149843832989405812830689873831364620751924838661257982159797989522930649415261895683307394754389276804903314344137499874229917154299260244879109407259404301556318909765681735341788091128074925238955488032093164355782025900794343050120753741384841060673639770925663667906363659677612634623157751806015426276262860546530737970420431464787012010482654336084616498316370207149631938887317105480449366108967937772120041778608102102445129837536201727918497888284512844262518647160681489764637619549803581419923913761213894794652558510866296894334304004576071731517612283591266689609883188833288479150214053350503240436559889676357978870712517751450072831402182231261884513726685256189314168037921595886715397871916215290289886069112801650455302171811069167588492686966146527541080366326689173099078221642338033583902323245813640149639175229990678417585075720369530709423162809655024757777759330766808115962887744702815767835034019842793022497236535921169004536973112956261653577071300481755330970293213358207142849769259716509814858671094745465155832425059515982967321048171569162606897097922046577207578909476445902182558773481465946533987864404900103244772407364472625736513387058798152098384238633396642326433984331223048953692073411247121557331153836762191763379259751815229710509564760099938865882494396582879375085277557241442006758429153036788957818926604173908941738490508414059792706220252626570817577173994296394550767268090601469946054556243824339095703246562935294427552482714804322962790943424031732295297737255126971511386645628534564648129939591718800282460842688102143140906529817353750733328290772408464921111022318738587818433683897667746642062135181430688264208256042178712942197234585096215076281017905329005351472586392434475204101559793850619262944511785984054053506036922157599800132388341763630842811646666900070595696926866218466060668571276418058097996188117722929431164878340860374854520864599655682746236368643012173330840915551324831818201150462619728430745605754630613433475127358409235577696705956108428650340939776769996637039336030848452448929595778886362500792002552789165722194232396286646516024926643173834282489017601670496097692955274395811658975316655554873969603785318208470292624250773600598748876917356043680735897041960555879759719640537935851606135200359712830072572576084601881373733899302575201486160751677942525968809236334930776898813335103629750615090805821969354633771772886502929555580907712462201207925557603736029603765551005362473672313733595624255266390929474392974621709546590962701265208267668383185418858483218615050563431133957881284152595207388308763809317715459980316168872458480325390730918933297537913592809419410612952011940334310007712397662708179081017463732035855719837386320804343294288313240946503285036267410259705227923997620115449959913859273280232809639206225103583513314497272066012577460042508217332049772280160958270850262849050918063182725577301351322489631899866317659872255215730344051360265839699441101884141082817237125862574330340393363592434810603837194919407585491172788986406376853633037447158466631625292701124836495271590084868962899137757904963479090145281818088826409513194096023253600871791054140929130647085028545123478209485491160408742542526791434989319203970692886635378629010532398176273894308939860778927884355980221383864208458550642111457036949584576404973878316439621433846539515182835600206596824573848072015718926479051235077680937126810470249276773107484694953996657788049056993397880733794085542033432974738646074638870560842984946648871945118216423577032536906040807873656999659538462669978610334550123065732459595666960190125127844187151090264315335140940255409569969000837019994364584560530601905832482244606028984437748739497247639306671913203972766065060967264634446588409407770818863778429300178937519858156613959007548407987121455360776036291566608738445923946469352789609156303023212638203140849474076732789769187301831728081132720281016641861461828227320322086647100565032723025594183376299847683261987081037839736019746070408639119974985746047888003341215559750366779891554520834798831506358882088065116491564712611927224609434042896790335016064430757661621608451807299967034102390697992097217051989645451312430775550038240160780189571107708761839605582803183312151012398619856205835650519991026677717110148137630248972622289584265657206580593462744871360910006299792723075829783647774046568049769436331984846952147345899060684220769808086920971962797827585427022889773543396448815595106379790920371302128555775540779268579832557135681954505314250674609643926230264045776542766183333901945376322906213950419763937071423747116669930377694836613674342099412882882060278679158592455328450258107245524569837230442278265798117969939364020065744867675668882350922289545198405581401551317598582592797078959276309530665851975980022180686236871191633097572126747725675329750441838830979881225040940879748461191614999309744490360423837563327311527212027360622069670609412711370857600564050559333742778057083602534045130415041110211697968016408541037046740013933034450886016462637684142133355111909891415972525259381935746733070043311542855888405301089044164829745855640165851695992537561105529542968121489275490442428874286398186010346220146164825117820454154079751097987088970461401706747241955091340289221350135525834690556934267078110859317497168578093948150935766079315932868515191212455479697524936710210409679402220890769642660613997936767382715014743190195028845060339202921794584761472541160922275679471632793497203635741753042205208302304310737311508960473665395341544933169284650490882904928021250540808114215881357773962848198106572506448612561076278657296858233510209753713729669450153488714293155642019496995290807949910907304358607197884459868916376510202887509560456401508510843904422849315316370112906541631603567410731149301023667462987955661335382110794176178465371780627826026128561090049848712478542987351772385277226073377718654209164180111553346890690787392923982486049996089812741589835539335315010867287294312161022980164832231085187936240498197198340199941723137962333783509355364533590609636409145621087266696972148319620183988054119300680580735528809865249156657324495335736987242614629138451514899066564431661284064702014804763981109111843039381942690035819460461720458031292672419353839881376386689962351233688503628468678307374957593192015167012997840383762466470320072336910459076684596409735287629784171189423425097090009110429806095916793366479643475623431911376269685888696462933786329986662002304173968825438866031302889296261511056447890100875849470496203124633668672794905008138791257467889015878504272719663877055527987792316607405528916298758606153341182599547648869032889606055488125466279047135874750977247354970567971046645384786784810385176627177524284383668136327987519253687273751559913543950299764931759927692859696285357946884873865678768360121371459306902144388923169724689919157925455479561224811819321020118657434670134344687455011572458240910927135722517184214684165109482699336139915562308035406164318898053070254256756077210214328488787737708418620136312712494434850621009662238397113019658064926469690961067445169905735705519582096924336603327511372547420900120945308596459322239528650451166730180658510024742542525104518466265028703875971496860883089491379494586861699308978361883898193195231482432709621230732503994291494967488648168097493006228040555813712195215403273320770343923244304215880177758142015128727219139276208631481447341540619732235936692081596935415617511104505732608520221392384074026402652850069801640072551364424039602752121186847719391202891651706488840038745831108435775079186167173772451499601844453901902458853054769157545902085926425630282733836190158213311136653423353855309167279426269660263346992198658605678120844894014872212455586867669731740856774967872436227806918626907137189408881143731231287569011957785241699341866625164184089554149262065883756033977398786798196196501356753412706285373184606927742665555788985598214186174342970858844292709698716437287598228302325059959085975833600390402308938032500306454682766150305626229589713162218857174391250345839554473638123466182552332063060208709249637982824901352062946433758589071902883059909482543440242902055573736308232074584070760699200371091063985930790912510872006956366615837020217366216618104932594893648917241167889599889026722456573887536112569353556345551043317680303670818155099426279343239699009431669483529375888802957546724267171245469773939172493182739884710670341971311671284838164034256017267065692874241050707330324785533661264596733663127393046284165224628905394788405260423037323863468534813474660115112768498226035452259201500263573253350149627259790012104425578710759637293697065488861815071325557901982034379622141726131026010296433269234395536960342772212332910746160240178177704258999982418868882337483315193551395784571606112319715981664549265531269716155889418979580547781931935582784316585707129815369715424962919952408884105429207003961632355505191949316199847445733444713848335236088102289763982958767272647268341597882785887987918285237921683848329299243816953257883933514889160362627885937452264069159852109305564519637882867862291197461632182683331890512258220981207322432418734070673047738798870785547944651159382137704693096908004684459120740894153183218037147613663898170511960573423611825065844687014833094540335863730390383680754206094729026201249482100223059939470426791096579210778588688932350506542645558657345002877169589297169124659371462973662416191221119401897870010911851380600311698862107699071301722017725481832416404231155789886643468619186486371998647476157180434847247254427282896877792409746461729199344317695197414142240097197370807086185838868425245417560329856319217070772194601775185120004503961840415770757599861735376434815966997167504269373567823865662645144765451783675245210662038231760913829231689036120609200230034959353750269761290894557890508432249482364362915266039352990358611050824323139207275846759869845927023378088696030124269053976067837983420072489826457427138864186098454588008004566454368814115027332379561721291356322668716484676368954986585581404623158661470953898059482699165253261853897887544378668124141767709013900990847820397219653998046983752199039587267526929896507279304911112424439509533076135017301011149575875685606474615238042737983603897610874685249363039493422228797510159266292846323161188564615895341010149902417877443211456857897282147614394795212274744279030350858501997474811702737859107983098978178179695751157107714823539781502507758727062551606245258987633388152967230852567154511144651237570691391021291694939648798303241533725701386880990602657528223133100454551943534400516504340929232981629533545198230809859426201271078895243313894726415382109904626614175638071055275931693992962518121200603267607806826103219497293264320196982273449305924485363016211946818495139246270161532174598186128262857727621030764538842389023493344920005151024092445735468968086214318345425483749873014276608029068128780942869548072041495897924664499941186858951438275282464907282686551927797963289307325059030390116308330359118984949293379480978760993696740985014453650977131167106854493828598832255263294791137452962198581982315191441389989207583545838799888499942635268188933691482949625941280968404454718555627173083499883058142884793933926566443767077883084551061392748478796192476539377645461384485599188953696940479333542621215542479785297398312240536842162122764174292674182390914182549979738812009869467237254285499243647599678006241002004327315486740611560124724947240603581033786356376946065496083873914558985586247861835123393375215223426867773485170220644573133665211110135002370096914900417476579936955443919890083808275190192314747361787781825254400860109746334433689262976551200217688448536332158684747062079710399404783947586616360783613066021587061292109885551737230486584163503186604679877828490529633132295060581324279448077463024035424724566279748759542187627854135149850426240241518795586827213907272897344363692523433617434674918818287325353478755578324265815693735325491929191811717797319836560126299429770620377108831711038477272203572755655805883065654144581877572783313778625224191353657601185363565126771470039698595572381222697751281804450964059246444010090124361923756524650391299776519843003555814008099646633938108784309855579965528273463175490828876454488602088903440852543920499266242242963488172909947063584370576857171171447081914700676185519039477948439529240206115056641727751116552043130063516032675765100780764465984597641614056377138375529825109404364053698210703726267863194406598542712072229667431212466766702768468776316803224182020062180486374261293451773899361424865194202753262431367244262545794471687659352680039310321044912006839505779714082035612148579849906619212731583158475785856143865769895162017216032530750980533119993002789295384038185144237495742465404730080501417727024049695309947084175057513471919647738280995466970835530177634285523557561895749652320368281843699359506324332483613518298959855563766813828213795235518455577457633323502494877345823784539743703732456522252131179443522737709710036543038853636892799319697453201206883938670929675996357498912451345830556679568063714433320216421396074625731016207366056616753402888674404973547464892308137218869733572117588099058806377695076592147402997705947166247370854143347735278856312960926981702337401635331121656676403471960207530450842991372429765761190771200574546641014152188309606846708017318626065807525434845951075447728485554342604099406657440231220409345776043815033996384967545812007943697787735331080333732759046161094561513360056942498297653444603112778354789352001851324087325205381727924447218648594214583167786979068726832156863507714118402903476537337732185717453405074410157881554266168979149013053769323822519448399287059975639429630307428014251248112010276222428566232256344934834636803093800756461593189699889660913106173523346286725454411976031886503233049250472484554710131806165777357585601140195324847231281326447467906996599024140224051873888426381749228521264489364749924350757381485174096426251283214577987600654665102981386715735627942644247369084210455634033144716339219239369173427006918406154023112653970342355635062867655079696878552547385877332215184509241495806884984202954171189449082656589257957650645491618076091235855592745879538617875218250511975406487644212315176196753146120713992724699899816904265440955072478742585342861517683114156213727026060866875382932145467319596317710045482548642642203352058132658632503222456976985949146114686284342208335254908975486937038711653203300778810315102683913104042567217821272386324185632852125675491411123539111416532096528638172438417537185455653581760968350244184368923720347483391580694783803491462108889582478147778395034237655238360666715054602149698188264267286500877491974172742223548426447117645151840474430937800217131141186160004104799881568876156381269876575975411931069701874929540306101106045841236299956670944429525336044102515133772389366294874206423184260758445993045061321045473290349469178759624084082315307395746728147912929688382485340326097486817321210128582799404768960116945478068365763089663086465848512299764344514194853669977191202836242293038693768036659469641384431261274898663349123699228553272007597863090723813753649317609543883669086228769611647514199527173589978621249234266925747959245468410114436422702629269076840291204853273499188472642109404585512138006819579459130871392910323747701678059117188411814726971068715134860128133246604606198874827867595691089958680311631559008505770705066565977190191372700548563275482247613065311642046431533459097356094568270660847241031143734878279855814599015014164018525526049971956876353703832525491968748735032430473252561585806500407675013360554946954380746647058196885114675813985594093965028882235341325772086974947972666549292051067015544993327128977952275904775147339748821048362598478025536692277486098300160115582908054898386603865870395229252200712308901424278192106872738695942788049888194028990392413853818108722230152427498945290188368511931500303290666862343160772756854026049196519123407579299286099930779596645127584164682880489315722787128574527980948428517085086046430237429980447377385340377967298904989645019144974302192529951109640047082072315785926844425693514622863502438799098118603855553327012729530534590639610343637116995841078856103885795671441938790703169046480816317145906602806860521906437731161183958712890124575745950376694363057711486951078180426549295986147488491600299581191057020955147987671251762355314391098463051557048115877395095356125480041015364970419297014330481923212651315586154659864769745230691861497954687763304592623660622837600063000244403100413027862056243609353000704998832889001827201334556939770638752383884838238143711576278570836151834990874574136325483682452316081709136604227113023678879287875384285414880686595448443517656175243683486104658020259746982658108184065887057047586996568770916504332955111210104769071098168306874281549623478826904183245593974205909666078725412690481451215665538101270951591166000364550147512034106458884723973916180050682846553659511778654409909688606015573001832889198965690633177509797035152508778931780554275521858989280993253411793012809074481918372030360133573858034547405934448908642116126384829958671446064713601786205535670975781328183077391109428368679825817278517716796072179593635516962626815175967338878629625013627119175758507033926551130856574183947758642923440850565378892425691764450954253949069578302531962271079702047318800518531512937010216423646232424511522067422549341021908514945773170721445864159135940477453769598534198199226952607059434315859113286589995802855075001442505812485860759420538021805047203160469962406794268300888916135873761251615109257238920591132953607065014667562475082924913820834335162821141228374366261559021381687651060033638627132291424871098194391846311644842909469389113078296031098411384995634215536964229986666482409019482550056336430719589654665040728223853105375536170812217561097569360167931347553746948245186232396536463170970445773988835425997756941506378186083860448443005159018300605516310648058916740721355298998685399738927288765249607317254577454016469760601118836283632617421971421504235045455021713866312002697704019829463218902219428824743259520032927998958341826435825093391869695833704009062659581345892252104480742383842207251038678306390899833013206503551032610384041376584026247831801444512256144981057377858615735163327020009056609279246770111891069831758474957886788950958539904117066762609676397976003096402617375810297856387125694974039354648773631419750422805210641698632490851674973229779285475631850358994532454038530138513848294368363809824779646411237814028718326689512831268873395691619571236783395070110163828962460333578937822095813739142580264047209038983478124158993150165437245843438662481803178489864746540968679324591178154014083181398475491840506318586410722282758132098195355924923425467797154914802315322597422328225348640827592157483959281389352492843157981668143985785976862478075537479739016084630138135799553041380250047957206721917392604805855060614989860719873095478643940078636864445773123467394267705223117957382932521866751978099653618726705497587320401056326962098022446295891994952480712446164283635567197933347966725595053742757320470905514191837253467828511306135045008274408491201265776889913320020027252942362532852000321084705238185996517018356449555614194764847202346466135741263965069433214390044692850898952674592452998362596596752735117684204196724973060958213643966978909837849123348460014474286993965065917975230266793551329278306483255094050055342625600808380230210882664271473243012345557947835703323459122262316484974712653915048055551762255677303811480348896663939922811494533926770494518822418230255733043190188560701092857970184424925437206236545688836104604917878105213148390771684106412387578060713689530724840937803188219070751630090240924000762659732703821629293130465706276319983925834089799533661488780703864464436966064272865261018703163498958558033107333928730457401250385122357993931561730803814003926891664646177054760199912414815362350644301335992893218144903185976611608868252851739146333291852555390867050413768890684271578800720156266048144183196624140949986602875398213906780905507079908880406947682704400634871956177742717581873494142228321543131711116593744781279465165423250187628498491560431683528002142350732784124147152476591035880889165600467513950081039093035387533300185406044992362353881091425908668504143842537712503078117041037295400886033989783722454466655718143334916705098258721673236357272298084930904325775495009723506643529149973974991405747302563879849613586131784309914374571280391617313260510374905725404564027286837218289807713082702656843991107149534775309799359253899436467185298811350403541083768043680600292608092307760845951140803393029913659401128372149398295119135139637064126693928358517965117059696469721511215088289706269817424983650533580078357169393000680382565098716416467611769698445728353964902789249041613860151666076195742322745253813958165297069605448042997181216009638355496556786336344176556384482946525245410644194768678066880432835376416426005726871798220952599807870897886013675995515028642354760071582583607319976549149085470264608996143500770744845285124931749506287165863818227035495430336327123119830514157041838959270623496028146876951593767286398792112937378497326685124326939765431038283821702229372064993977404182739085039543742374664521799262876081443888064813784528558674547804631717603621640264835237380990253336917818130232162415846885037392936569432975395676060303085750870247624636325922650397576493130405010642534143173543916167341344831497577934545670493304534303211331500288900058343304625328649047124114103386360771273452742147683487653180847788055783501430090894471645809361838533389849749437475645712821509784139064294822633010892313494207779096303738558900982713619787551499602363379292129484894955109433966278114371207984885390331634127526105108261185446060753384494181299045219653862550486188996315745252608430080917193614265871073767105702531870691861831602216182737880316276706230804772929231171901986553249219346399995831215605553173103927050219440664611644630639420652440570099087190041340141922731004532351191730903542785359713395966310772128637888901572798853864610920991330779045693878045021584098002261873164258488732003925041729159941740024523767708932462516806937786196883779859500488556856178890481876004042710688071523548258282000616300521653073062128868861307991829233303925538930605428096579746220869647521466372952492899540798721114627179319794060306654543054339759983229938545126997356972125676637575766297570672233192575396577940735967218113204647719771473725368878854586530874764006048782335606100380187907127195763595024419100931430118097407599985107243629903760783115435579674922919663880199132366191915171038039007670347307195768585721912630673744289760099790710733320490696675292786570060648625160472640592115241561960652129191755801625188509247212843216748545892681194319094532371546628006316102956550404682542936487137487505289215930892399659808705421462624494815885331207383609670414545095484930255093569011015901865831260219947274392514441118852297896420164240714365736746475579800235356474011216389590203307100952479379822967903892576327481091473301203922711233970390154740679517411483787515751015290259924997149322475217257688825562190541138747980894663183166147752572989405112778329264607839744478857315245753776627751511416311440452742125687558361642115870366215474982853282593606581604511522141461590011178447062975142318045503870715294935464586447559103806425149520370974409842482610936005880663580774062790322957503892660699486409671383885235397152687691943702120143820646327639002746909550334525171671241148358197935946892997676862622760842611772333109544125768520852844739082243709484993447988123400373123829697978258761037590837411002115216814863514015638597050029398511472716999655796469931462599037389664462963328505488706367687888303277363050886514981733002009100034772257489394988768236823943846814614257146272824753241267751992811108086379036301183862616219295736307976757488392729152838117157789929413070142689726488129603412721055297306555544391330730383539987724329946963903925029858598518150602917552807692117441368980785735645949778019714828460335787912429470586244686491553812757352375210811752489446138994329740511837381925801498561197836165044229591292025362241433914679567579061583231770555724311705522877719466005770591688683689142376439236098621468327711791311992238759483534023732934123639137198112142832852427949318287786686212605477794285371107221715573231796118432685806065479086284654354297252883326078554842571186121907101448556576867166098093398091898709231884581074190990050275678956165392599477263302526841167972920114043102511406762869912011153543469905875268030048813776641856697228744184134825646901047673388695190255706481881048952734789960049927879961920819149397054626688018663169732440531266820886278331277705924746117608168392405553658293208818068041131443387956110788777026288859174351502045700110880812344517531419017366592854509420212225225150864817203968256402328554140721715861668031603572939599983552713882137190001326478351379041164557514716564037640398576506412667287638621678906233650041414318445238840863602042242784185557806093139105478757754726955001027436514956420322843018748501388306462080699419119880622043556964600495020890707293495011740529197094559396354995271716909779608037590446814357332274918066445144406991368175914075876679047218795801700287042048616230272042340783734104712668195731830242454662550867329207873873650414901368214667530542318337925280994898874521490961606776528114202548947966649854220678643443149754279754960814010985330322386883101995508690159140190152274786213110822698025256855179652023443516508471164096390748229699404026553814505838027938546246813696396546835033084094297435903758689453386271722993084298377492366899165186805804521261355613635071120164819634469151814989046005609593215020753671605872060292547565942766418031275829397178375288097193086561371319761388237408884535185938759663781923864447473950158496652688018130002674010755411106585189325533275168313448584729764603513207229358996077415041770228756902019962769362020437778668875756280016485515593891928351753975919508331183021692551094384776386292122112913360862698032032563351968474291632261147880742779421855313182260185262359156435870116088414307315618374616629136149306577020654677253043866476083293233860498902732888312897721075270879921642700061078398452070684995256807438596707981053953292154715765272429931822006827537825675994127089357030572987023454674814067110801428342638988889154171570716885000575284612056399671015823900820382830595956567420699823548313470939269046777330658599656333290202334712053786311260023144217090209496669165845275396831406187448230626987472446424092632415389491356191921464188166741205949343769561545241092135658907521935825987366415543643302200037919590583511703971006939085853719532965658559551760975971695216490636697750245882490480528903249095899487947460979294006354937885134769502713013187823202188929799669731688319332516263566966512743046252406938223817630185106600581058547646209270177737596079720848821048554077487297317277776797461471573562085900041473029381737411382220116057832837393145232054325103665271028275555535103860874270464524976085979818502545230322280314771824289576070642106381274261579797088741275838225008209459873687938542854426272557920578649206173096576771933370471845532339436255412117372716020639682596123793759490335606401779850354676447259161141947806769035448703854074539468955096501515072851446606970826111712402601927428059948558124658534089483348851289514219874354164336707572342912301080834250403284256055310310154807169684705215563174088503613682938698630113547229425862432327591084042335631323180775137746912099126411430966959006039667455029485749319190366666480097386072461402598079701164969404048777721824341665217244226324803872612514359347430281382748057168863630920880114992603905475427627197820529741581487770928183440303141589485812124450217843922945423044906017276343580020712273046676142572044565522754471034388078680108972119405272435381148171401354348635007540315709425447474465740827027628186004027501418973841597584949211670783362418712100481771601149709916703272190873457364532928027714982939553164455911388366737960186003543834199031612616106142314102092084339696597373332005543787611178404684539633997549882505100726807895332458685324035504934498890877100685473054985980955884520294292169541247118142485101666944790288008454424084827483123943345682704644934850923872729924608681338372975380506374647561652654058359147226882784552252259739146242199711271953868189438595441625216130200226899714741095362243781474598124188145260334483522330178210666022013597414894651856078181106113365352461280756742647688819198306966117313988769605382512448089760709761129116832750565739663876673974565246735591535315842285375375738316526037165371286516297797021608130430186358830271987828492124980373865835158025122436365357891694700901202062665558219830507744460098641660963542641968701813608894969167052954674058501891679262744048682751273223445558076040796180504347616660203919327482414653921230815136453249678209639783420625614116961657332512378703061438334226890084397274107598783089437052928715769912978872582968959495565539605093468746754596532044632018789606251106649653188964453039589791340794611251506189275720976724886249660752037205763243193994672166022159909306070071868305736799923669881320709102516114502998303491824035247367421455700300587102623452157078462845682515896309861443641248697948292893226107535012752357308914065441499120195118636611290593007610449551328607676459055074410257755896547477091163036570772143030323302067619656516707555097559760978473771421565230022967140989440782980690475293378145835399180843144717908777147083292373423294255079999424407953070246913616016794932409577301042089193842749668015180555608356042403136558071856948740199209770751964203743716344040812571730981457956216138527242788777920124716654321217652957244913300400891068146388096300748649680127073059261206644876912236671635921719898487536065405668191870614361866736422489229091793623280617417283580063503326459748121198362861982984381181717754798879752115353230894520580214082767780310011744540787464618007531051356547128166838046804989165468746503906886404643800577547800151600281833753173269176261203235260114453626702874083910410711480039406824071297004639498783256770570626717099904780504391857768763538362642469730853317841634644738850375737137060429854929016470499180277539264112202581833445074055207872199170766293206294751171802328355889914974413550753058774997753465230518062137611670323981640916291603079255359970986483071330362091485693388886304417069217193159930520672129143240637065168527890693424273110415781791445428577976159321368492786588331406631354989806148313342384460442136126346231780905838044258698789390759944557743258477827085361072490927478080384757148264636788190529722475832120317062254005684926237919360833840326756740292520404133121153301100011638731856568313462535943606921650735368026538449035329425213045047323961710212281428081011184997285829305078334368032011544147826065953018789264293869111525463201154674570147524458956683353457856567724219826742215036213963400371839537562509218937921216453820423916315258947975227446946345136448764493715789526646083247617523666739956361730617833317061263261187016055397377760544934404858480912394206662832516674427072290992391614309969825420151625078364234480805247761126377449451303419378958021597141619702915015132473464369006923335437982810916070118283564142551541698314517981193565263907261354546276137176713953006868712778295110275089033898284238973912864602342973369639481643996606527322241936685302654298089793492603537243741074994665572740355929468690834855479023605367354831431481285933515725592099570350320675336884747995638882461886123896348127631034367628688611198481222677204018903563492872220079047547139681191907781169068566396688688913518069009467846356588750432581260457062799104389166366197670118765608624071231049213692570030797674639569524293668774043160127153804514127992913886663140593450365103160921966749601989683048496438461881582815261800590859020397149827488757744559613524518829356140797107928488833104579987291763220367627723335216958942928672633027653426525741967809968292955448277999637192388226449366208331661666480155708263004894476784427720494875771944224991867498222131627632343346250173471126215231081435838480773232409444473365864058064672527111666991675878576076827393948334694299809192848173525852493328496559007299824210167600440607620500289458799805816639504372114635178774177525558733696259372165672759505443738880502451915276706742533876829822152249951933876902983457041452335291618643743429969882187952704120043877295917758022944786286078719915278355385319001751920625057087862876320901040534283280450190328717066704478468551468654544885807826242378585204731449291563111044020861355313300690488587659203588368614840368579851022122640141965799781984568797031226925772409201159084704340942091038672248487518425264590149806753602929493988114313636833967010634495461460909458372997388354107402273550889344009862778305561020328358431708624674090827753486205393038562926224359748060650084513792429913000245928487273205311285878837111517024721036943713070964764691601719043257631072495957887245522418764238566698944731657374579959990855153730914016602541468673311867893330893033840665669865673421221785933586272408841915281450134893776360945634606753122113694389222980053440199027329128666351445710706877131288785223762781634514894165909754168110943219529207304637918376819837891349907491262524436451287269590893855657058904844801268030159563118096847914068370715273372356671372166669325483245496425805456042961747425296607549459814264527219613264100313093816116432302116995237482881162805890670985210407642070503568655600004742440215715131816844857957046575512873075560246251718022708466859508208485300786822336966519232550219623673143463086976689673059344404318701305810394184700714071133095747622296470246900219049884369270822234991868504772899252144816894873097933265808326597347515719995208556007277435357548368118823107403753291535586640113801487258892899521678145552491604641437266794107246553314133605997499229019625035078874351164672270249175967230084912032524827419800030102004916847096843704250928588659256949884295937647784488989407686654897840310502536935814434039095121564502594353032756875795181406987410998713072869900856682877734876478264286276226063446749952359894237974023180098881709223789012202577748203401779074713263958895328089831109432284414265346351150484368700984388355018856505019722334404604015843310936509110937626507246720963888048205966648149564266242038460019458386697154370499769975371175436578443349662237903058970327454172581174829503200965502270840379005196829092152230950191214570628797371339665516403588399942994456312171576724308242716119816403548801212307667777853380687935201522477767477744937721356083475947517860022992411708563141006153284497597515300727412514432393605201707603899187914723558810936386544306932659564947407880120625043542299937030897458819809544119183168572249751622107960041523316911551131251986630675717163133678913440472169491029471373076379322393731455193452448691172225186326503167858246277827767142744158122784052412683569861658358799993390112102257776267696200457796907742281988890390957908391866484729750068865838012658110166507461100227987943345683385935060383894739396732497572231666355672447941195860294670867938432899129903596405223319846337696059724340303242498240027868074563686435360484561003789925460254675480891410513602376072157877259835429556834620431100690697572958935115696998603645563060066206265416972312962158835441623031144625903302270549965296226962652802366107066446907231253858425494882017854042351822593704277865264811456675343473918819887932952314921936038042436099154680954341989150778582263273393351399890697263259603258155923552579345336334957844686365723574029868391547139520367021566162661833753075947954420406460323474316745718434430186623171246170188048871604213554580555829927762791613961802987381212910788273862447161302657707140155561860178526043346031694805157206421115008208752871597340172774551036419226639886116654538506637996728199392300304769152479035735150873611065990310340325123659050445303461537822468601076112808674010158732030456405802758951811229989776266469632141437673619168469600204489282808580723035447208571897152278314549422678697015774453526440024279731509605952126918183855761116943350804280109713279445810550317651951480594843361268401756142555506797042403923774589894685883418510965004183329973528472061160993897800213279313267713562728057134658827181691371310938140873267833975085919804676321507966424953162226602972563934523391269579539466266119382840033259568616881643312701757329564076041834222688528104305410934579176179733207418281031746786538085981667615981216769948883026242771437085894612351597788951816102393074583836520708950985349843079207705607596679864687475155032677117205559895882378505289897953116354754996263205845845318349770208845956118760341807511221670532962342999452429237108136963427156133723577083259758511694749222744837069256876308194071336870117728187128207605482826508193669319293848799816443056739108831403902447570273825856535889550685101258313752639975125571407933876591056538818632889523010780737524267003648639249490642351697033465816584454302762356712348135061294848714808103009872805415109006414988172430350706969551023544244707306261641695919508235207620078480224509854838816748293109065577041029393528750922485801558146513413194544739077480654340131710788071243048848122484240942333907630187483170392887459419999220109698106426591478205485980052805003111848520125874347719877590830287995082869679625055869048044323245777981361716377912977824071071105911801490266806122372607477165045529550876632890859813936436540804456638405242362400942727035603814753197708270476412369704429710176954396223805099356885501594136164582781739132973692242674055013971417308357063468146875140909576410048021086661918139374719334073479166681627661337664561330822402924434039733911325313544956891467754751595087137846089260011832340777197666755542603082313684590849177560580772994842356163035792973757192726089177773684938099830272568649055460789002652105210117934137455368556243814661348069836432793895850622303748471128850947520104394450225083126477859913651218365421707076124490747674838976539681336237452582688796826263266313606073567713116287514597764649731071254945539087423670589552451688035079927082380186214945469102373611966031444321044268600720208838130378357776817817732807480512602677708258805532205408797729236872021744036620100311562441701421716318666519849790144219730615501494568181068298027125348733186654421879011049761521442319136137432544995927964580375650733137680729752269057456999698783852541558234498057336596767409649477008575441829439474071332096169228560270372124156720582278894076157932408378299307927402124996952284253675975034885940875389721062212995550799624539500694464010093277788841037287913110070802158369565770516593451074180066529046561009430672383703879731615844132982878852729169196699546055353873330107035050771313059785738824659485248144791656112165511375263604533357307006870831546787494037848097620670346655605015179833226445955750903895142938810649321862870341602905324948349704601894971764460895407025963834193883334825831629459876443405122510126617315461852179336458393882529590462810954937281668472757051992893336441405653367138211221683409660517992145344245179485403352797749929064765973965175715664313576977381312989728419381599437837590691474200094272530607745325246708474504791255325892211132300544859904083322482141748411960875459717885230382015296429656779886974390008717962554550287064279142927487430801451039107979250602763422552251960360963345929662013492269744379164725866886429320717798567879945493460055506206951781884092495121786346488093292371556634955396785591684973681423000223585985938026124455601542894761384608262041589225657164914955579756655500558558827061471304603730729067158206908585907787314205694116191719609372929492356068978065661553941234485526240069026608477835290866779760639096473106122480960095295147180904609298955792482839702817990418255340056312371935069906486846352250865640206558605824178988736839222331424152304668140372806082213876013075625756774791790731524307760642105882952526613291614461607679580270970315661532045112062625251982191358270845759841279011848902308262004365562054224586384244934713300506227726537895533437084479506735447826993908350247620447098806939321195633002726581105186758031953173430642417846985606899133194763713738379599164852002689453191055833722974707290629879760149249456916451344928561131403071182013856421825218359094505116084729955571061951536216537647834684583777636425006116896498500807548698896040967817939929608133265874422175428456419053109384817210231652405724054370869581315136829495793773615761532528642903051259625343654848714882154460907302780483590515203900694171639008692515697219599982194219490667911713298812496231726885796446246806438022179487388745241065568448241699033855534542807443649288965645924728457112179851408513193314411873166712730844044946708076607086119179245231276510169195851951356285090907878151552584534425906913493062234766647235182376566164447428940791716516218663090759355575479022296899781419782095958993393524011568153915246137492049414901616344158341827729034661760752658987837925455293244699023223970231657545431387196700771566830332984303821692479475114716203295560408739175745619447470031063220728282067954059953502628631220753095557032122756075856506397958436301021927402445658892895130299584315333915725382110673842589509167022692235519911706544575925813774757811068181282753811014205402749274747060354470713330291328980318499382096671699063693388918840635211198169596151425054011795247345108087225306517428932142952861263238810755071043046416734573949142609086526572292348616444855741567900217097111898127881275809368167914237003183268186343424502108801718272619131241686361318624840171283155012396652655531904487210197494833499554911639777115353025639201232629790097463124798538100059800372535255513233646340639407848913606843988796616455194377506840413388649370116097455480419225277630493477550274875134230530111001302175103771373016330926355842072462487832024801346306034799180061457045936330088877851168776490035356650817895588546590333724348287342107910815652082381441085667964547409352478389335657901828134688515467537007497403056384152375116256178802728968279031135471809674144339074490681738447724572332274019145849817305223643488075817040953696827545509596321114474242753017971585870262562399183688690958876584781174022778341144757107431113530061092256749080261770219359174230053955925218134693974825519126013524670364124914323767003431156365840607872389738803078917775791205008518009725851642032826438196434688857203641449761684377383153231753145239640188396694931640896827861331570671272452659254440773587546210535700330622341569952269186188486433275581479332132094315437136108716367531731553501762619133414096787623970131447228527849775335134834707845559533714610088906697785723411169849235322941971006851182261161808883633856399972857205011375656534299159908712563153576345695501269798999453841218429633696137283777103669037103441673431612557480984563909747574144594295249309342818093487862983539206237509717660985587435970834873956579522846751902178815591688321899623844326685181616974548063367298789165450670755034259238580391707823616383894578216422535144287496753783919154185572720120246447268947356625841046961101438166457026142953690842720757733515067674388897723040957703704884191074043396310190701478026130727368978737656352414491397574088070302323774850213343481694129846922634778045615798718419126571382333289461064697843731114795358207277869618007915120756015208056178554705781721570232226748576097238772504664553564940632020481146112550983631711693435898797105117070755734435551376710696735387936484920392288286567292757627959290676529310546145823669289594034741278539182284127697253203025385937549578891366322465377583293381367404952562747869255356818141463410736499760807264656057460905543086515497170897670408867930102683845250496571352808983017156566521489271802299094251076795850321497057995611603522153730939817482955402313062244877684382199503038083968478361887248265553770937969324434930695301905702216981590064469430073862846908410736496442648803192401375394587678918309152092262830314142946342064674376097729001074891335742264988063052253243859518589506181886510742383050062830667340708151992573758077040500690095422936172657238030485024714240850250685930963760545287715481304017827188225114965123590803886264002243111387858421924841561185353859697871156867907807583389068955023849435775309954528767708479059614304786119030284289451003635513400717491072381177472885291722255200962443225261699436750883594172702932384056519660262161175233487382169441690612360727853496593591605019265068138685292715539532994593659905629306695781294277806017370216713186287128712940780766551220383723999866472851029952313474521195968088163910547942436115249105585502500371647011387879277995890394106940005930332313021451288072839962839899334234066533723238866746475420092428559314912545071255722368056792866203966011836929630364241514746964232766376094948437279191533118754008368930952781837972989046556032339132173995572144308659637407553976185467261245588183326017067569143039552538870923507327177594116838401841196551348467769795044506472317584791281269910109383650459457837630883280863815470219330676051759412320923486119344147802807996763387899343488198969816666329794186738040807333361840943103149097050186442736945606300930166616492008844867097899840652891369174533579949959131475339629814949797933336720130295395429089616750265378055133144952329493993326373663692593411078088311330609861866313301645896097722122884790751144101736095398252192979175120026581575747289354218486331326264159746063481036304241641298175686558748768786679883175580679785193093488794197851610887273530649896745889649466261727264387952728730515646356533424088977372078851592673274563863942836755370868392937460943259253161832514062063536140800479562542534125458783385718950380282513799168269775289295705839129190722057686996981449305596704827070968517612652740189221625064569983879158952289451575409633690783131640871352627232955766965143581362356239068190011946041831899949145023044591719195930250267826881687754272565749488429109950987210607323558744625574353600915284119292225188169145015148222317582581574691072441036908076666288742618597611626347559607071197455385274235242732996437650760612481532333907508133554260196022220236017049598935639317326187979093783907703279130196385560523916299507621135497416394226478497112457134094155862189252195658268138372977901729475054362856551531781349393571421787110102944676447804686951177637026063115239116751123035177781239793968863240801048025854089095612203073865235075414321460146256606529933744014892116547879939701308639652187947054155846909321570788749877720097163054206274283819284207531208426753316060373632489831686116818398303380670513981047940147796346730021029897068004400903884303519784088887570482780954665043805997509458595669567846555257043789300870882696969680722268916648246537454070739008829907830275015025257717656247874615707407926446304987941043077048586819397424695358357134747969420020054856507505848661715493416031671038047129958751903936954280124082541953561369520862509966642861852752574308139445022722629333161339541459675750536943730487361760734265350232795010756595641755235381363384180242128622353932325152425448958906169388337922047698485192043598410624167813488411971413041783015042590407829700116390556987289049794705694834250838244143578375210356105721727771449740292616151760196008693939044490866313840604059914375820707696241938431581494225573594055357810135617471763712720897041168278090824899771988485839476409533093472680251556978412865711880026478900595337228529896121984211875815531922051102135912926071533260744771371832683613129600989038966115680179400333549449815288358973050230504551176885685166820323429368126804142144266196443701878085728863263730849236393063509314544129359205625806100903679086997559164834935211474358945443306738730289472604289814007863509355525695135115719920954714011985608118888639002536672433772831506700668213431705602023235342766390432709131493385980068928781968747042528867242019771966934990742285563518476920192830431128962553606847034917620623978643221382762866712849043619092864515142875289057064692630013964447030417917094461039176131118635675733101288279556566774859927140790002126192840311014140541827735508493002159088605336091613849070983858526648003859886446469915345744320397444468443211139006714131370295464852238353574254328591464961927712969222735396407486162009477795451326489580623068680594119600917731731008744806327454635977360013126832215366618216175108823211144831764129058036427316570544706345028620907883976702682627565816842473247377234660958784557078478672690196448977560756787005031630154445406746795227770157121358258145610837347247389553784541290979206465375309813674949875922931894396631717050559248101663979923885586602170952898676804092355804399713367355501456016509083850363270746318065172142115259498951045893172614616086109598351804600497204362632320446860641131978590161543697532322161506562450575648901316201230722234932091193737468393217773288933420065724071589098414951047941470934574247497970898338971952515130785119538520643105478931168397438828883045115914473574579830207381437500459249154284025359816105067598939510244041164055133977607266502117830394755324272296399159062469460626018954174027934529933595226317564063912665823826188068937363829337337578740881719475634746233581540438879791430357395641805171655710220091411506665792000708028318223050619977314441157775745456034515823641746393219625029903038353402114837704392138326287255262612707864976368061200528171485005521355982505737787345735688739183380111845407371315388038987084269430663296939227835782081151117649899585265749362677734992654039147567584204018627005008406330388650034667609710149300071275745026517986754192871548129963708678309121010161262677364518111248555868755363418549826211692227068519832525233691108912992195135502990339242297441982824715650874424853818244160621138954208530671244512983313537867437859931616911688234173989040322466614916439148685802827627003307958138986312988578514232200100742122078817264626671352109834014354863856125769941934522410449991638630437038176959835809899131714429126225133164067019511075139748450829316828132141498395596600586606497911931541896354786658668313614413429234498169302346524722504303410607307615302989373336786106656024029287778134741007806521822473711552232386237499654149984617637043676391322623033435408050072672507787063718023860759547693866956527482749894214981351934595112755373901671285132554637455938001659999525287696325768910849075633758656991771873362817564434585300844232289191764492968078297763774648759958788001544561449000091435753790097483697463749233710424652292592265796280276622326158646652405243300350312293696538901224159952422278172433997179348752406863504341032562537999008870837576450101647328275680931194171162898747344293275924991918865885593142818692058014572745218693849338102955436896929676427871288288264897283283834331753070192375473454591362854697198059748581355463435735135396324739424132960904598599480135905987386861879646981149605301158292562682194700247787019932011138050301725120869346656187425698521846697150921867469694823467969512144154236647402129908770156247751512280338607084503458291422541050250350211353788300820381884099351701748458741568880772195257069736528480689231322443604758651551444965522067715035004874041474947745610698931491365494646136872118688225835917437244866133383272536915765681247110601777004426588046462938250887553908510683876592993825318527034665361997275413803187537252972773127919181038789219106669326539722924774699839319119635160854237967938226040235693758637708772829384593910058168641358861757549272270296978360603018648094150687096243296624328191887129694731409055166902646897678077105056054366711416674736393399232126673761726027825899782547969928487246787963682493378809165793467047464981353839397489060585674125679113209554769663593256348031963597717823639684467713122526410546763187568237258758399909117544561743362205657720381811302521529065352468534191585390533804950109778606910463028394853851050280271697253780622900675136157078878315449979852151648449147299913953750679743073842274446892973324507809326972573566713623203975372153923015782594060778524039963760142886583074492379509432556982758038460166707008825643773695695794709811311025102402896302492401601651616439038886300119628201306050225763220074163556521300125212455483023687385496533303066535668387531432989185949515296656158039344523095971236361408441890610818196841967131035639954316565284419460011797267162722585539032614529598063805991186276384434363115764041162479161676301504320128148099546674680629876008836092090759199931530063116730384897774499300523512250508871315859885578898335957469809400550825364735828620091804014151299533531697872379308263347901195788696063421222662247151956377713495027590971876653060085856714755361217674451400769488990817728864130723630210243635919950834233843333212773333065303034108402547253616456563318340360014326976856835971875792238150474640014033088713799672390496290079550195045092603877877010207102441401885518615152011948783135268580770882253983263403345967545407948343010838043204739457681621975908192733952135433807147209168644379617312629902462050560914020235065689402499125895765815787026352408779131476535516803408902146876185965841476048152829357852720628077854685738810586514872490652952122034450677603548720238514307305239047294857788491489096809562462912062822615157588628148791714141092717244858116503577646933269637633985199281525612443634734345004412827255916927242648488959300382812871138912829016161538446670964403053335874966229428140298507543306744603384672497349910796772917352832366371307789570101135907573630575792739311747756447359383997744489817677803475790337671686001732160704387749718586227719239991321531110052290020000948383750006628516689449657449421211831145606180239966147249876847713988322332787758429186519618897721761946263828885428413639058019649424546403061937559323210234655285726311170637885372155596404420924957335359559645338104343157998710253076822307041910289492975367924366125649927108938312529707205363697270027783686181290510089362003077859942817814110447473365798027347592013017986422316793061326834338297538594218242908829841054110818751625482658906644823769493713258455030282442637742134317783519051286593849398664226036222208080343507080793919797326418458718702529190184610183536912270939953640576420937574803884917091218170626501012622939031385140140673895575854388671087627113271382966156430067189633177394655999938081068778797113548577601852945536955409399177013129253769530002819196574817264842142145378487927928087425331269433345374404603140545728793619387562294511709859332510027643481878393665425876759364784140683945795241322813443909014569856022804075757275006805948101895426738134362147680390167292748458822070756422623430789165673825032483305509752391673199476406837413019051048993698268501637400113903648158786174784448528710299461001201363767699591951460585663735198281566923371135103866045240331553021258044943141328553941745625094888553329845790891493170959126631269902915836504744186503155691304517894164240954154494634039971636468486087698181170006114861638492044503239507877491750824597815654899458294250161892511506533942362133499888476486037513725026315613545070751070219883163592255069216424155009879905257246356768067981130383649941387672893055267174440705747060681012777711842935671796480066642073153173212136439069414122543637319155595089849175487129976400611316625558510364384849585841409929183839456461935497947850553803811809860295085707989263947335429586883886725074340991330851221985186877851730737507570362403876866837469552736013405221314321808756507373072293905184472824669448696076551654991701112775662036301401983234510149053485412124687233627323386530063357616981653597995441436559983350042608802128213103876045107679850753036526439356791247432523366785593211388967013663481590310962787892629377810259935920703999344128667844970882887350283858778447681495347832850000516211056003915567539591494872397931248411145422793936984977468490242328417010673863427448296504450986291085047004144977058076558749366353548822949897042894955140886437091249399237016337460682902116475302025991241380146371608932539751160236898432792942076417465770173345531062182348038537093950602042415446946144385721842647692201335619233938830875879986996282019010495958447566837109127552363133086899195454213390849979205989900013082609372975077921773286527363078310636313264242849324534352386462358910417768963781909638767705187663506257594713095557661867989128616196360130162425918385961372141928517024141045341765360183474027010140763468571578952111089809333295206380073210711269656556319638806692245757047035240742424230513375407774552885287822224550187776299571886474859204486335429853099908938351513584973394792473520156347157900285714856540898016437054359884180389425587709023898406211840147513959900387574707877303985746698560699132882406414376336689855149443965339006649129941733747940661206015214926403345717530433076984223941511627990099497607648565804090717283529621019474199631642106650897927542986919525434538012858049612752649032163450583596729020356262070816002264186331443728491900720783808247641753855805756676385664056788773228040664162556048145930203943073870030717657540708120897417654003292826342788953256412509664341845181918425580981113767870240579022173216333813337437433986643802809757282359430704374350747513090407619235703333543606508244735194651393621619484658641233038734658404039682162391448310150796762461391899358449606983568276466791426636910572086143784780669777704033395796042938148223808720123567201157170796867979113688545647871699603219106770504587288597843581321977853256306554370751515024511618908049806555438377265156712710393218064533107293742174222282928280668512363952753076442548543662649051216853074957185215587603273420220509261787300896111945044061174166169636429022559495559407732257368038456730833617889519235922295098140324520817466793782236604159705865723543843199931958224898800534344190504623898654258773469744082102308676416768622569477028242469633777954172885598351285544821675029184894116896489252541451118815182501004284949618268590941401624211193931758430883510249783295444703777574178316748787534238057560853357108917387127207343687590808401232724206878713631869171694670626482780744066686412135158960433888680992689558536832992138039477399988277744992682190041640793409837919948381366746185655553313997552368065090848439529606089454093097891604527927574994404345182276062507349761248092045364636228518072636628585898671196073338823413373809058421669958911426755276428435032327541586926919006443925286157797907804235407231159251161240755683869122916083616839144319061334658476012065333578627745169442956052070723539174278662681328391399766987952210232979388016268746608819500810890837257319719337888583543837514146553954205152300421751422990596989314381025577333350120396468746206613103613925012879282215740742587766518451132926689174868915946807687932890423115582402388157397059307713958305044511151074868206628971371464433934228627873360991300522813556024421429160421679092602136895941129265407251850594686385804046463192142390734997284205061305816123234049533529677456628557333607068377161173701419446488971227413973010500570136898552191729775432902879600418721528302183286381108891807936336895464954803527673959976215006598555243004226431943871555908042936508836170715580693331040070916447285713292489024942176941559127572384818844808065104668974685184923205951362895200572680201570846046484585918193040913734832115781688799506120845094898738088477693540807037170527364004939662211547221810391910089292253965642292506413342487890249980090635289532164378864084073519435920364426689956569845544347337925142508966243115710088869051505935382389294734698114730199574406040403409143112425078306231264047659948896011222054476159409594241910555870731933299741520436259439366789875221885439450169917726548036811550329880923685519591559241373020282198702591014563251853502786523232149431457805475927895186823871297190056332692223016516984277802775399503993263043200191609402005693945690558860023238821615884161512574833480936971141837841057071144964394477295801173780283991008832019105442411375291559090961560674163709832114395215587511225595866227959469650672851463630974622148175894845256554263866988078370082677546487799926648949436005386308759326673515861951011575193114081852956210541632032445329525022822030706272703686961205255814121123083688200936331239043480836588582191190203285855657160432647779990320319668884140088943003608878262013476381359167193467453151648759427946415276001036210159469118788117688806206296524078912250529655629218926339588663617887155041459044362077383085529387036920889451084000645574182102757228073233767898885053912358860860851487714586780584920930539466313994781291447185803981558789289670844801082226398481123857228927677568320377180459388682808199440952081470632405488356349342611867777377438440674861210389245498463817794818510584366850310133201548985625273968475938479208011576285587561453788581644575121086919792973548877022524578357200003330734183372293567594611298765611785691349956064255263612254169868705795542170104123692910008808552166319130223040139970889572420708060256021329314664194136082002367505636740569702949102706922400695781490559426582876099364043858209353296875638380521746290183962044751159805248931718886642146773595438375497237103428817589999541679808695769894621620621820809617725121621597848881754955305529214891721966661080278145398191438777340992239572581357111880581105499731102358843831596014106933445275951526998025882497891581062938335922126123194745133415394500913836757159574237609873278469577503756134484953887956368512400502054086525478690854144213797443295162735666817862477793794530727588438634462150184375802493391134652105156270855084510949757232348262153925048529212606860011101504717006298221576173981671096208868097123060449920975566094677792828249298583075769341808569977120317601307472066291369994042458122698173092286995640150141061240950534051574384814124742561841256501461406541782694604221554182811447170932198503716113210775345369001769084954870314755317503268983241643812178977479812378605630705631371372620958596665100801047873807493160189219929370836661810500195487484062780033343783640120940369215756517011135517104796339670062123158373922291805734148285927512503329774768414941622356369892961462895405328952198909768680392964916603317603410795964598065179139608437098964372396685776936556549708990706367237051478151193810233039061806049462945562573822959157989833677153205204019065877921041518542729695070225421939817169237987212103251448875601030358372054457115488534045564649179097009026233309251566805275256709739124571487124633846662685230891794034981383431410287926731306700561243163423858678592689842938845212374869214984038382167480048173580825220388423912069309071603248286357339395816024351709288639557641051191653241792166191558898517204225091993739659079196139971323764821956595133502509526837388346853998426276761990398470714705926206283013038908493431581709877320011302200733582575486784146987038811697952460664126671754660519807547012510057454916758496289159770441223722121351989637152999629665027025261906282097353871580547227580135817944866608051926545045216925759704755866971760785271327661896160328336948661927604349022620257708413153894649513082539161375767337056166066712891196537167342306030474787707432859538116237758390539232036352100307085560134462898067292560301025465863288988728203490177506845616787476608459283814388493732721239785339215131420746771773707057150499855822993037480062099775966304287913676068782502986894052849116021026119228752883882733354942955345686142587143569068988848030313177616102810988075817576268546328090977400082264108031161289453302392854855250754268770697775799561880883889228823425320153341597515090422394586462069978251572770225103185121888710623059378106367340651972701697041214010919135076812452809850410795447308538782973864673070149089986589362460538145440056128938469426085459749047221057858598335066492762779465093992453333261940969961922817452840176641266660220336316829324790726374237017641987865122554157299168972809128858331441217300220483814320727725535026358048421583990187694926296613957239606335273930782283929653674643185679201740059880330026154961119590012484298993815318221469289836775795867349195906173810588080607933811918455875619345671373500808718763233434999329631525550391797626889345806286255807452938168273255290484756928312446791602788986243583018297790868592599904605790573756078883234968623633791447676099436913400794989430253195681680589745478603426561480433961198396025895259787312239251222245493229251563040422993694032457941142974191122610864264868080529221581176930941038107258023681733748755637331377559246422313990548009439752920272063322493780728412692455466036333512042720862913750425017690865676897942766047273010825206985596214052849209243396786468349557602647246455949233020857032760676815969729506994169766858537952834222433597082835965723183344432993640806716545002048883974870729045622438133482572323930297162919326790296949992946450820070742652837675768035131834064536356008663982445415509716051661113548023592851349968254817387429797571490066539374732465254629330491610023608812678260767724710632991582625376622657318807524736242254136494114389930384146528096221317472221394034747730184201906620361792189466256161808901011119037712029310506981662597991533021963468024448640569048105709608122099866591434476739754186723909860264601304642184404790511203097917875861939887162688232177467624024100766724753585776922543501007186823788926622267625704083014090714379173627906115053528545607123736674638242871351929179719867227453500566755992849466402259764861404073182601254203108463917449313944233819406700865365433685836731204906693606264725256112234584113299628431720999852087331167643521349138212770371646276028979505594675491604437836233550070396584161884681755102723906485378606665655771051765728627418931928806787239056497421922977630434152525102048080290201289891807933936802838112702222352562084003807780118457369212801950081065396999576671756791893814140158669373691688532258848230117134809492035051742019146865004684482631403713713660833399989250170398717086140434258233124214032778762841350386149976775183655399561159408093054235271756628147701536791421569525201593214001028060827479077025345957199072331457468313576214914530971282086441884026760040466593732936290955668161366602742949055220610701584642408881080622589069828418324813428850322745349706068261915433912621918208967072672553444161717203720325069672234608274886006543086180926546938836202404631006282364611618762476261545206460850046270357952209359072896748804946751660875891251219836984813377792049187054657849442958890918893702174520310650657325068308423736593431835409144654200017554883597765293819645090647939991867643872328677942590229286961717430953705737434680281688463701611430426776856376825017995449122092410434744134852340580964169650335951740739443447187832452591934136792794257377497460574192563741862826598072813014026766147035953141821203071905497610835660379544158685871373008033215916901299470373226256853467291024763612215974056915207675509648778644318070630567253686796649778470641983877493579753700325103604457543334802904083133801654186288925059892955057528735627596700246992688818561670205774254938297634430079680039879263156390111834173875900923771694731551779795255496885768053287045700898864826854993345091620650803832529401754895795301899637841650493701570186441281070221905710095810370809060587168920127113191920414032652017817122245840613708343400584738243101390000090151181094069612818291781700341856694838232081063361616288313001904676183292759475034853609267786449130156935656245582783611405061194455637425595839800926557745701438690061978065988125332802107580639489294535866501093585491175515979848656148917293997058249925366576694556851856926925852302552888435689489732476871390999652609072403900603211707427435668946398646745279543054760769686432401081712935320441336651780781018824882982916342266211067836395371952614904686999957184904863658837352024126077764499188485995674165302712096778155039926832417990331326327202007509370013743762463210952824167422236889116872178224463821481263130714623408411360575075824315405549236687748122559020223265055971247734291254774619590277472287346038755062728036868443179437936790028740304071450322017336992249109356814412424973130150829096902998894947060060293070776818740357856521501322667168891639933789663796554236678531627885927460057473506524843591048857079751864560237894974604960203469746804996079112465250968471767057923692792951878601105047265273615880643927698685841931229524358497244633933315371759523446655863050173019203482258722911832231216669062330775514878756540817653089438686472590414726129401718533834881802148087891064235786819476792235010004452342191807903251134895515438909301257456181456493350165297336938656607707118826884444712555034045341245128809264539165949779398875270477566429635755919313358554254087303306021633209007184159591151033706312530670230306724059602874817595500614495149221353158964965065467481936741969847260875522537839748555984489926138871870944582838120315835899220114446227421109860982010581490247099373400601557238417734691812470028941194577317984108843458574846612898417864311670470141520965869443169174497290570605869016823702876581833989504175294322968337394439225979627248898189942343101028840022322598734492059643172292394758610676400562279014572960237136511068521816155700008325464555431960515130576263792110248418709223821827600738872181492337551508703084616638840913642944706441666612655043534075124168310774524943747739309903582948423317861414542904603165901061455393661376744407573318748139057978348177539628507536403192811790155677911016642060508168622678250840825117881988756235638265318441629179570322676960670231599353864461523409536943030284134065914558918044343011059862122635683069863734510612114735970350330575992231464030156550504131292053154154966029950786000032741458389530942010534930166840043840986946744492551254336276583313597404448015996962171821304192948231103727594965957697419151054480924014652663781172572275320626699660881046759656115025957053208895169714485367719737985702300645327346604205242530621335484750389622619358983635127141140379202268529782490103583611402070319136675062947176319965972035217505501614062554128591059377780236717262361652078647789949190802399742878399093336631297299726265120075778359825999825242947876236983334988073050339874568322541054486542979245663221807879597292120913389582859709373907435563221212776892980617069526920178714502411692180836343885708445826522311371510377614040082095525019663159633633086693542087884571728741721879403414178952427842951017439295114388837210093789177724276818684331468933301669134188046097930946030264025751029792426559669559432963155864923938043976406314763383381822479755311073424435687744160181119337699058202068849534323735774954425137526104294107774521380773668176482320400913076866820883673450639768314464997005588167184226193763197373236691050385423779663354100810686371095561407500255981821209860370757168457023882187808581037774012387617589698599954355234987635839016860431361928663510152360933366997805020650122177546838679465525646622073004007543086033771814195478682232236877822771102864742774348361113081123625775281092340707195815527925772173015578614609976120164281446963746911188250681227584124540076538416835784666562242632351747039781767982433715100302102476940761995213477053915944558874024911455540109484094628201526127372328817207886901558075623063930934855120771956888403061193415789203706185738874530706647013955977254575018743597831472527831348293806915070492663076604833236503411135355420237631477120278696495980447019714440049859430442422989924998812163948056189988216413818845483630248667378305085232692445871905270394469525459237874754231571290941084038427662987100350157196333764024412910128522225450253008397532467969749069008603243924628858104326047882687907928991226572193162193586955611945450068840632420986255891113701035762718968051362222302727758792815191974285788921052246986602613396890184371862116004261909698626877836543636105921469832306194229272645248165874259412542273728279422073926912395618523800203339730479528596524405656138889074514266720817223441801469983864235852267245589990718823326368440854226244591017347081748458462482225716776790437318699680259733691509774684448841992935100073679776169087485569761255112139321141835059626865808070178158665249866358255974360440191112427956145777359158396642324150513259141489844614879208148142061460906518649163809392716947680227127175127765768466445397029071247384480000300570670210331050924822067432966464553422768175080537005877992197694262115606859520003888286949708858813947681272270796324500114652573357064349078196322943199122364503878130637497214921394395518751137531248569478493912847703464233794216517378886114952084968013464081808662142487651490199991737043911553266287980667436902676312601189526783558595328529112234994250600505113339626509851823108838536512743678556278583447500578842282408677817713246586088147839159806242714957131809622008159534875611135803104284277736615292400134273347288102680568000319683737216564529351823828818781394219692507589936244880151082041349768701049441623575223678842695301557214814011790673533879232035072284567053935803107300875633672806461579093212696255326587247729219234569658463231564261141406221840617736028906040603567456117489921978692409733996112232493176917524328248860366876919827940675316973007871248591932994846951986056299887934115223882471818282336900582121558223532664078676118675201577833652508277089077029324655510158398474690852961020777997472756248877941293253153036558693920468787342658734351421645126369753622399704645816004368171677476043217377350444603957906398173526360961754742952331217451812019919202805495851602100046324687386191301952176932806679386220249505318523055472636020330483862825598995263362953960941454949728515406442414598954665038795958181888041057058259392502595181737601954291157728529583387409251747982363292132354440483045716833135160163598827020175038227133879195708465057519417946632757478503586503449165693819196235739914889939959118594431002967755647275125630186787344425453631478517913494288080937682023570199877806722954722073073915548738325226824644615950073607247520569884785728973635362201707833506204835400412286019868166100045628230999857967576037716487687511683037299168177489194121221034752200371446432635726952166767874454779390768358000343529309574345770748576155829867250790790301608669634215435552261063396882179540291787342961238379360190403040897111910757328189415551049813158824907135504149578579443026835507375641345673993396202587818532188593655352255007029666017958328939763814959873911871916783578407510098790320669328545185708375422293738823992095389168453762050411514097164312495143024793063402657899037118166819861604123611770355287501412281004616306867268828205575797941331585043425150656885234418020686849275464611651874683263989609066995774477016667350058281382794567398416972794242277101970354016105867315893538624344015591797604984590616600858711322692693377797204671328434354495944510404212183456357505617562697584700769762565220021946264234146262782163597206991548997837777775616981686316403961229051006921326258898790828993868146519902212873212619436526633430097189984891516928758648376033996263088446196076213521905830898105595395998342282921514685740467826511575773316571201997358578762067861507060998471838178306211516687050384481482409885463297029469854141123483151015891770380279179249430852586048153101346346197680662905347448797323703297585445000093715616967764942106578896756758344374736935249145850644216263418410823200412840560847926126955189003338351756700391439468948917831432205284022616707132317064485222139183558956784629444681409486348445805155589102889886683839854936913175082071877183580320966618621269200063629560474524830674487370972526537921235628581770067988789493368914488370138659901616873979299062012246870726237512892965499442011192361981971143462323560188876503269670748665718618285478855957692207273581966216319957434355941080153658053670348010807591828929609077931403502193933535383154123239738643968314432771618079993023366797739773289714448819991394120768611083911539437493128564046640160272562104074914880561145407272075418117030854060757767542124952870394037602307386126137327388293582463796584538138944930877433842581569698095430725663111875616632052998507182142764062293311056053552703080138148718630229696835106545867785648024817395352346303187148831613034315736124726651165397618658967187340952218567499920813394354481341109218039223876343566723201095412813007238118482604817848173173232268776328203056196409268858150759517215893049514194328571460537732775366967498249296091747159336287823182684248715663049497247100944284535142143775209758634932906022819579441402609829956316090473025986767894983503580409621059500261442021869276266575012653585766192850872927746374008478728645951011168853962238981965443073709282231986415596153110063304669523545343976525707476353360128607055578419433436344203740090179394924223115219452447941103054838902313163342448104317022895421301194264688815427345600883166815606453031941805516057100993613227078587312055249345033251210117357513608784501764111269662372429001084899705456217116716455599404006706825898412718221458904135800843751729310818933503056913482570462646325837124097766522514305218562755391519905873124236049000071678848893022367028216627184938863138026911756040490262538248057907718189456991226999659983411972432089973739192189281519044899009404256100474652909335807998397102543457571325325689004252043076750644383498079003498289470012910522910336243750769013441301645231897441155406249925261831015622346999489570940749672464788813085448654801358877943316772324767310978846812496282725035001178512643804461990705629915665411857885453947723438820526497775854183369767494544979676762239480803976330479205243964255429509327489146745377546252681017248277146755150682177095706938903217260728385041299469388978496604189603481764385068032375546711228819040887387690481421136700000456758146384247632403594559206781986474682299401580267346247543012518455147694902727335982936895574379797400804465232613878103576365801058439372544213079015370350278372523221262755728679952291080936274718654912961719733205433227466881101308436806885648722606382819843593273843970906196049321016607435887247580145934711803726188949082508485715393273953442596594077745929314305597583643216209298697383995284355869433275977777398258389111769875521494979007978975202479440308700979326381713456400229933642324235159992170372949549285403568794662766675748104350151003268908851830216030564086453254485588247277798713592935984934775488118101316466514305542932669522656342641219954789671402358117656201086674211061058248136158409820257232042220426655157302540662851765025892517464328295959150822624962849137582016092239747677307724927975742839278600603936240364533186158377529877538742018473353338019468546924758027472894503366036976685352986760755442077386209463055945701208085980195114757558590092501932555899937102529381533203540640399693233382214268172161402790650235516051786171221029800473137363379553801653765784833785904463877559958753044319868321035275422721993532732310114920673184747763559473530973665297386038541154744027599337757726086818084975509242629704468353102105070968123224976957353648472724232614848711049291641756025273024125155255962830554155067619081406870594399129253753068650549205350733971433881625641117498527747398311463172616539706219290507421129719437195777607569003910377934324736767886186707832562444862266277807856584793982161374888421880736794333056310237259027407468568354587003199408922291627795626304549616290788463815960525670268066867135066015104500803520849889507404571639046032866393135112518680956707575551355971946436159094324695561526907032667823525958739541251119678607245127772328742688571421056596647204627325109569060934731290941694287378840549476088948934537822291059027100772921976526480408718316522583302832209366583375271234982237297517676787298476361402455313663188436557040685680960035094648891895450466106926814943624609411715081872987045842420465802133973162805892230953435331079671075847923113021994478792140561495225811077737889463997940655588848297658282787980949022833415898957994581982934128243336984698815160422409436410865353985619409891412326417751689453364655382549998583298134949434495086559261942545380620941776242239621481518073916970781433687042023351919240779907312238643709431095353585616677465409245059820511507606030498930723367393041394822759349704040675332927357219149822639476814201114875551413942754964873953317839765363280243504363863474553486879756840678467613992943337444080870394206165848239081363535330369672860078354615593999569205795759279984446501024816033243197701487363065086141245295397762329510014994807782917936574777494440292553619900122885773539284728079004928272688623857266546150345512046759131847618290143849255610566686460103518193594305786103969841483738321132610903030853024793545336900069746717002061275530638241496083824401500271243829038975758947969901918629150799272934684429606145435261655669007983910570858296219609928220378924237374018724253184364371197810109114641800610786642312672579014729021078418602687094535833107747332769752311220769005516849193306445322717684231655951738745333291918915851250651941188391369528684218270541116682647950134353997679800118931568252467490083624110691232722649491719739508513122418410708755385711392425783981509733583786865094655962597834613231489455977366012109630697097909407671232398180189112757066685741579242093454478936746809784791697826143434016798424673892186499800593296355371681562701731707112881958770744726106001752816847759172882941416833712760776580988719955923790201179742770703669411213203705187933766878389524946498334325185425795602923603407627770706371452068713316313737996117095651847440336153926544279771123507548644720101519730053698149080120498877034583161481493890555809633549219372051883372519380102650223317645917480078473754556244928674225797883206378084203614306718640019527045899913220454583509621849855148870326817009033822865960728199828466871095913005144473992787279768299427762571587586093337990325363171887201802354889466676595972203020282409542500424944562848122607737926069593789881819403769519173651282679872640443519684895480687703220302558516815360293244876923249804208257614557022625007943539671388053005781919039583229535970696688288272828286878244992501147636997542404214773237823687083428603542441054704347011996440875793264275728931006589877154084627615936318327229551559107488680552398724716111115450490896474933529653607181457358901015366585422683427785097656440833108388474822000219097169148347245916045022879757003745506166176051943906279265117271203572983072486468390734479353233218021071587030596286464578575224099091176760043980293173458923585208405333113979928185149771323886595504500109683018770191043529940677645660010450289088816755950152395988520682651988964171817812160339251123992441371617221486824165346313946784401927448174144422319792161787842938911489898521799240191865899507135468800806848622205306529965234872717280325028400622643939955425486616116444965717934585694121512614813644928436700988726561554180057580924363649816475145511256120288065661405730637748354261695665736284092703175717484378490619315836976879731111564377878873198779910521729098066081730392534917864145873498640402301842396084577091258366200556456772734527775671177828851394058311612273671858313450199237253315327168778012844793478073875179009124061088614288355314308264659617014185402647949203159692895446838174053637218642944729536270503268857592688378979134206689957917565137446618412968103407950617581251654683549892094426484365485922822136363735789639748595607220811594841220570286285932619933010780514142410383177554213864355447731010566755728422998386240415493502424555311082662782206491090440589105205216117054943594797818234383575160221380376414012503552897396712945715259079109591334953848292999178127593375555579526640377001516039749373108994200459516957690821709398200957997259252760070013413628920813668229131622492029833487502127985463688245166265764817276741965593282422398427436026248265814807287298003430199387923704457280148298706791420068842191200812110677920108899438759690259126329171231729907161515420018873984626833583226402778649406493562243543660307695702150499974133554939388408859896775074258375685110972526030257282465212207071686410757417970756315250824615104066344354951666530665218726100572785531252988187628414738244432112444869523143826892171631722330278977584805303554996325258770119159285153976864012414485172200377374992693482315394260995894961362203745518535209878179489203335023282219332267437596378181294566740797434377869939039546638609173769099389721645014054815708948127197940575406069233617247849546653693421491956953536038653303269080434985923981956899460238331995952820716136055778884065514189201497069301706496977338466138885974733402787465135709434542703328761617263643765781081965905202076080933141741219180287413133596380666698414354477507495852035208397690102366633514742667925112467578384214175284183223996317509336844323025764875300669321369293474727460126759596787779968715705802698998913147408406067577287691649029408919961777853434975122905272228211890963912576991036808155402494004262130590484114574930338775031504589124255993863344964048427611438977822612735172952497323794986106583961063859697293623636338852063469056211700035046060254610161928696294892509987579166133514583078954823959879941443712501418189689513596568729539802556650213750809731348766395594616845414160581041505663518806939677251125043154162896633539343890540374790297393343930444529819195591670026677341799129192422972762520092903458173228615375369131747636261853192618961632208880799091150128236381421423454274823254126221474116974991698037130304294940672240005192216740808437060532696705886783621034114708761841769900305675841639032436413136825677402099760783547103596474776333464865370799875483268623043835621383839659742985793587249916165741284032939235282202250029339195023917317307829617744517033344220629254548496475717916062295707362125744090627840698567262317866139701645287613201062121772302567338169014111637754793156623729435954472946698630267670411217036641174076846138179712347272784875535732582784325196934418152448502425083732192840345010132581730295877675203955913595701123320739854223054162020178435697638762720887132631386856345205247792505501620848633601424591853143391905795270793131783981020556935489093936519004767415423984467304365276879939035566513045120876215932375337630734932911719463974814003430653876823557437705257814314744414265723117720773295461929073110260626733094317312081805309600529148720795127636919078503935206794905149653149881067769025525481761466149778567074071351315070568997934638969187902209172389462859794341356146433051882609375664416340285179909893531047258169522791216680959634666422892356111304624479254533504730399210325195199970633863051187151449193914802768428213350753230309462459619574279658668565716098541545258868476336049562932029570582681420778910667591614948786174135263141448589653877309021326189570929361293528630769100605615548625864988369346141722369171544811702718201536473672512319210553958119905222976107273746368510913306639801456031182893019126121242355629324321428725035020537123308116540758990180931955457921363493351599402823438984588789156054684141140230046971870377932311373551757910219041469243695802120508023719578755096158285187847052198084484220493248453266279069673021820942337232682649499353667807872580914128185518499269358908584736052148721249613324337061115693799865699959940248628289001539688377206231640399382671186104347281283726580489146665336292056630315889258894772232387117605695077264114878132122629289665246856567007028439129292138050844205791596340086509249887857224211986500037229713923887864625600865890213337377411103125295910800471987864102962228253645789459713784786074260653270737918617249991853196954573743626412358557243267243532107650175868732579478552419672609542242752710692408442600218371013958373907137425146864520733916901371200638331174187093826358668771410893303839956200541700745390119378714460491073024269676563598689462634861356907552499271060124975329580236528775480372586018071266695440830529490700309001972707029626640180059895379718515059118051913403835988723919815980628680239742491021693834015499416272164474015546437934304458275999952229566399167031943476100716055435789875433178709984933026676443864622555108082759777513653953728764877583276488203784060024791297031442720730170628854666348231243945836776113582267876403353012658004208984691255615279941197063030022879630275251828588220165598060792035534047875067231759802234304417989810886223772448737739670191324156250359577277868452815067856433362611857015762051814357105453703149309556781687920597125903567524466771647643098906683400797963557248930058970156251355117653910956836966105638753464464883522172537299412595728709485628418815829910300175736068076404867100046404643872335642175033599603905004697358866754799554866121253315467393668994608624470594381827822217499857448788271712390909337068031885366864536805770764100718618492319565742670835115310179977852977636074979086274471642348430026394925083082051031463010816948927111487027945581400104348039240470065824260633851002045943255445818913166840838649649055522023667151698658861003323046275522208167657838443524627280012531933641460064673082515576890825156538927921832193788204691759621811247040833916591818551271948610953529216287422977498753888445805896786389936332065286478762331943095963692214587241087631664410312600120010236415060230706739773583806055536233312132286928675388309911879069224997833254558273990924340515150537985043222128422739178630499945877359862855820911046825833143746666591473788321716047898907088525855909727697032715754585263452581102790135323883930986333517948874639825849735646399923574452477419072825794827598290099950447807036853258465648763123431927655777158913781038424684546426893143704285266475316073100129240825063992894655225627519142730385883632894465602490574863028613529613371721478582380879372936101985659888433806736013015026560350224555422864318559838399828396412296154779118902199892141944498309001027090292269760788921659695783578732623577383400181479565546588358996515687597960511670901696211871700995626367866552108197183606225707889872910234010122803828798318126566870600288244782334854912732604881318268602970352550366036985394861650609302544919381838701884804192203939385637744584760563617069445265814883523262361474764284747436632006602370219269526741023976645083343211673151333771361449267486685268942967267595403836544085253284031259178858976098368256297074893045292997042037021361312718386698524370059310104739512016981041941672563639449785110953479890380412648478108402129420282883780841934958242079459269489464492596312307653381124450488027167550251949644644949907240255455732749340452546408088090476835496667199250724140013551871276564594340266489591098834903123054944760832456537789899015982887294358113385692378688527138639081561644650370702945190371238953006767308681071259216049244805656554747425666059804100288476250000160567544893517168967611588904767185289257247821342359231862936436990162039605824868088544941594148224145949571585815416311028580999622619540983639473477223248228451696578712823616374702622536548253129496184626207391708494893054708995104230028362613786604248111182217624943861626828565069469929385144216374478635399687776183683180989632121089975351962808258493276507709032945263868792952016865195302287222946547030159815745107188008985946899387787756560094150911345709064924285530972408059193573929897076345533794721957585308703653376001798640096388200564081740116259117775893842530705669952295949948868022810799207399062488979555377865193271091760282478965329746872724463239349514504885995619475160956980268019030447623194057319795258122761313816220735424540165084529184461775609084055771133215837088142478558360897870870402736859421295303361508572067866681119135325554140602658946739856805108327494227753036275864963071335038107358193678640777729702458368387483343017716529809268088610581309713169858562844976575308548137171287936856967083927042332867359603534610995053170898536202259687951485051177045994954618661065582007891915992567560528854502661200012279694765993775335129501131611309437992654024930074621990673475166501777861552958554081115148536178040564900857836464970352682746508251698567607832191111894179540751166779940418566038479358701628324808778749443692244499073628757602765017013706513893064316704742867168072427977222448366053924603301625309047222813923965348199504403826541494782305500332572517887506902544346215695045155798210411948246227247452769215884123241837452949932749919728710021195221033232156803984536027438405028402105863768323416886951633920471647613446645793951616541133040665623677719724816179536962457844717704447356473929720208639492923755368771435770802815801254020667631278886609041234652790167672084760686860382691367474321339984810971025416156385022936686378379922008070630065610452270287357725502080893446926187108794957490205239233237379879428336479235208803862179474320661812275227577133037127857114789325392039626008217759690464262248277283619815210273183485145635224556234199446964221798659534057203195241556718351161926708794526270060691821485219671572013401326420063916671984860720944070449916788559957798022969383394912227795719847912578916892156663812226636196712081127610032656136540478025658149876875003622566164989088296762153789951009879162712073321933714952698466426771627925809541487391934745058963719626424591159156584004593380317218648850039137457491814484238716235478659402150675843020704814508529957387012455781122910170601966589444422093685149901399501590059068480499954856970700453191601335936322115527013975383982911467620495755380662228760143474264119214057347592844734837772118669249073059327323873603949067338856586732565914261849157285769365472078037478618515152417919078527967977339694187739033562769013378516685879566954198687130628026285117520080211271901705199622278789099852279502944799615749536671982380106836010102641860879158433952793999455786008854222567074406102229308615493139940921397319604166931145875628458816739104435278013004826895967607454840636163876016989809418888645354773374748522408905384027826092240308728006626095114081689849077908681203149741319562381345775270479782645395655669841918892438193173977517527225491174661422242897367043250158678967494234818798931496822630956442816094573377024059580827339387587897716079779826825982046602845011860271052328894490811784357925247622402450032636225057130696032231119259829470083575579467784606941228269806645296476241590429322798415088629930088877065558996552375749895775964614313761053708429765814194635114767806546247856826032953057394918557933833953485371278047449782995871219999838029077162303494089954797584692921494059725696035028391954336555612784732022102574718359680408084642691991341410000532507588927509830213388072826992901095588756306756752507103125023149901016483836247292718325379235175851361354597057201601743549266601269468220583276446294131579922266057299590225220651230882994198310119269829636440381246478559416592569557925815449339270901051960388489949793009128246182183870583479706654285264472752595433637812225830418568344324429125569597571859820399987105922107361841626802889826783934537708521663172426536286405617151722667725672017719374276479401334866956663673913151324435714566023209303356547554894759886569606029572532098316432638303685120552249076892674526396513565907591869478766403091344145248385209622575507619848597820531613516416158258193306326450795591046879290015198440395018582129183173841557042552711739842478378000573530281408830268124091381737877219095358130143399515912978338905928855802489296467320800887728233178191995244160761668957361078074849608582454846381498490719464290854842181575328839647743900148021087272963815309565975295619618674471696727594900832352968236999674350227350479460553976009952586964681535195343109074175692026508727244919027346368777468317319083029513075040641881977123559626122159089815635462916660282983975377143413549437140326425734948948480994414529262992503369374246502815008000465499825149640407369168589705248536760577619178257265545311017396214308057635977760289820714085614677161779205978200442065401532504977897145799024519089699589820184483167705163667884636717101239652605538144328457189044065107041506910917759946869954951756861674451690127525740071111469126230333329829928697459884385665964248808184812480565230328139499603654470570140377677116149021838891396136323072680589234823814892137318603912509947288845633083865424863668557446825391529922224766110690148106728282929658522310459747118018301154353335325707734937789002318366182720043561921531569004956996804527659118360265903921889425237087415563189779290563255365430904263701200848613631407290531464466692567588175826256971792431947058265138790807401065666253739937089565447186216736429465061467334021430252912433848596971800448826033634081286735269233322330076133718471995657012148979983791032705378312758488336699062405574113554848501533831840028980701412619138510267437071010657422029786391189529207971536016420511390694231619791711061245730067462809466134124645000336691734750476580822187439382498704554397917482337188227251177815653663934911783712244307934951530508906379332507932669153638134064855667568082959189402781385820240338061259451337527540893296101752797439562439904940607026619992368726707597891712219506833098322342375809448952750339345479153038148412753891175365051640078079011153312130799895724979019881308731141499142771710373479536626927348538290779380613814663982989291511821558005748614118497946714403206697810478131750533160966382156209206287668516044633691336677275223375243692693466577300900994179266390927253558458022598310517167433453004261189626669187323658383065892550498352416436797665205790165119714576136985708451645908510902608906855412766316436988676116015445049629321831210861770582746020716938778858627172487611718535452819020323815362898289175779331279607614017502266058955623770845177453260131815468699726457399421867227207900584040104952020831017054757380877501165039410882286358290026536298391964254245592598333730673796475788612960782518725519017624091503069758891236807431518967546859726027109978063461123361526418110495859541258992800736181650840122265733615882817888027001451429077569434838474978251396871795266658353592798841136785392934177609977234310963072714141200835334345402738684307459283160117656915953557735462240737851522715180937834596630507143513037594066420759185143586238768593496891749299467521653634423621127669005929046269575799546947106950680975008831266035209577274479738808278855369855449096250927858377150273986035870161948563965036078699697318124656864706940807178884456485540330912935475015025858076380833333806680267288144460861934463965339868079898720911873211912751294269515186761300598207756675608696437278550151792178930877614248376559560321657731972101153129209890484399110450638471325733806650179776420863263195578589674020628975063975031521186114325062769909008308613425540112328968370699316951079941222764795861176593914452901261839512174017090280341792505337941270625545796208728736680590611075629144665087389936564630340805898482119726787453402631625881509675396592676184981620073704782842774712825008530444363176336384230496800029673070511500339099567690204210528965974164678998032644991381208794169383146880941675058474428685743066382446863057987224314371506248569019904322924493603880729998002256671796433006149496993288648674458585765868764531538146251771645799883963193842791865813670811848677942761387799696892540551082426417128616393539581490023807684856154837133113770651594782851630587364674620633158041120987977754899536682990096430209331196930885892174184340217439449769020263082420289064301707189504502453169616746436985592936712687504435580184025441898657554954911853441782178379157850063786847055820892288058064276056170022520441304988509578637445852112683855291552589145300878428112088505198522694617347031383985199076922779318103251297115182257862573152223296564412972876011811631715117643182492463172625528945875791013421757218785835060009105164610836713771580109459390955062628736119976509368333999696145661262931832827154156720387261637949251277046467699662256430324822130008328712797035426468237245179639911504974774789285092836474577598718330772255007502677671041223308570455385882271941285859719070061805096599467335307235692450222974605693471752470620942218694204907366480615554114023739161688388002236804803169888992970048434738944631933543278735538254664504895729380021935971044617248109961264053310747187513746799806521175914965924130930687783785999177379877704528803029713723755182563068231436590373791578602262600005323505238667850467528168106972912844869812821239665532883425505466772225465619631037417692884776934000989201828329376082215995507092676446494051395658243444772401723938552471041937544110953092131421761121701293984264887134008090613741833834326831959477601348559718716493881073719595941020563136772143497004330607238177400563787670480276617365546401601336247052663308096108826377455624867120114873818610444437941042277250420208923958570588068996213253642618055753143130972715409805204172914029105645640494409284195517557302832861888157755377477194438686063774822481124616783169678406404557893202693393227957682899015685258336874162392653796491217307427441849313608587306189919784379352386137275762069479899337594114996594856989848868726526698586915675532074353155931829942226842923945613669484577982065351449938504370917406025022750645509821599347049219750687948794656310425417175213553132327185312190039352497648697821252365537116977464333881160691600108797457117043912846032027442909595490981396673398564626348768693126850957895234296108917042637545652898616613874566893815280135517491397869937203477227157889556908092464903385229370349639798701951143823244110354195865192937070267713928133572636249742656898365565866053519856521816978343748494858359017703531611056419678176483881840353848973487142636047915857944935185574376184736487444011315305981367534078647657273694886254023148593349359894723337220454613765681105530524085841429895509652172867955485491930274260405556271567866261912333633021844405399330479641319429828625902568385955728278437481440395145918263893196283164932438698169968477434714232968374892104771136693123662486854977678932759169930364703594472840842479844200564745502457755350482267321257297258293742481547411382781729482620957083864242454752191923581781223228902132352151288873419422493068599066333141755929595756189709141876912746024384486369748557081269467616545710941574636370864717323108551198493606225974849180044380142007816000644836670342786653812293424930880051439949195714546183284520912897116670060530748380606944188517575479580216039778992219298036492393468088072970497836498425444933656316292464099396028989453202223735753267562599137444370641007769921326171149586424023924601077066770756709698103767202432017608623156230907454579626988782201307932972540929511961349401298170826037439936492407600957391856426532442312678490936631394745635148800267970095085827527085449815426940739583758559845879358722514173570125371663645318670814496507148464800864375241531728349611718830357114086530541665292276317097886922794535094733499698969075461491598311042323166551256675808346424634899425218392072850786044824332869576758758339478483150018329975974279838150127684614038054335597787960116162131180928603580326075176806312403178594394426425362946825850654934188460055465048706376603841268429592485025915033194190874968216618298975216491093545894576777054530459385360706367495224714900501989550184567667823566950456665120979394868552719231547103036697360939637271859177331926424569399792994480996262782496720829201084720655819362172860119341122055747161224948407666633482165069146702945023046917088496953580805041181887388249173982195699452282810047867866619366754636530885455430763057648306946270122066030170010733988654739312109901867287129998614810641117107730450526121266463669458283879537272017650037549829695797677638296217394377700636530380093367816971020406752166412379648591203182320830610986608999522464710471717816012033542257783249582374695389843397993548118958773016730464269629888869397113357960077623839493988179257229880386225725765215142908669052755090368176967305118021439982743551703107925589770205286383761698400465317060218589005852470161160134509024476843087740564465951659131259359434507101971880758015179755748680927810287218516656600980013653750278474613572292109929069935101141443334005178863687698331638872565833423260038558333508618400541853010300364264485974383210079564128630135696378939804779169657065332374545750103853700203408372781417183059602627840207877108078543396477961926369031457366179707404708915952491934300011788627238425427695570570218213817241191277625622998864889184513419248318616950981954771540187833890587908640604587310939527582878293527309260050941121724195412716618664932572787452736059196529082043526551441989106886163258908162093335300739613931209641269843769131838233583740702205553866529474216774984447425198122908809849308662162357893385816811041128002006627342719749483712605733340721797092780685171771752302594470323640036884680397649781569554777495272103769241353884822889112168295981779007228554839859513541412602096144406139031671173244547260103210141840434230179244901538051175904446460475598690363687357416656356742013252468103997575747698770532447480983078260634877871475117388139511039730597485809620084726623595642250672963208694535930739125076246788053286333608814099541859629067223099317347368693425756718147542025300801009157545091852973447723128354550583340208168895838990045273140541407464459522644658462773355703175249913887604760818357718827713062818923572523506195773323891811349864262736972327504543882310890782484705774205051024130631711240231413356422006730001306936286512129672008788264276252523951211929369770267824893752186086957219620487985653301875892174248901451370094597142249817667347358667576841955373992886932386193702264197263012820203861866782069683852678218209116153270051733282757619868535836653519947103569784278097260967077345117661706614399925577694379156977409876665421316270201648412892883291681951199067997515725545394199336329965127933003354646855405574112538109785171220134660856493967056116600488818217212684707089477454716312131025426987123720561750287926773291738396664051089446124090626504009505935080032523478086583427207402442722839282574575229867535443381219803177855590886678148912047227469477396038685505135570561537204868504785700505488672236556179981107523959326901143632144030624643277529334853699658328219678441280265187396946220949670285950910398412487885430758892423655612317097752003272382894817792972313964613088442218565805883594352591203188005037347343172891357495975283477320648070154962574899895184116718375371819867329399579330363998930690377330014668181646060478204123526243680402685413026295006842626111184221641458264715150002687458555311712971725384319412111764265473516772358886890252713599334194658695442729410706337383114853237265345153493651215675103369510026666797807934984501929378338772748144920915646490496110175080458867088241475201084895386032671447992232493546938105481523122361592513930256836844038831683728198683589199665790601080560617984541348478559817189743625310463818321244791738093528391475321964335903334248029418891407505817713705406378633785669806686349746350596216979986045300646512150322353245809089182692711269025885651557280788864193033585750066434148125722403072254644167087994592048683270209436088488183646015434818098078383883592025882942744042552909688798144730438096495407909452010145411153158890821973681619297849385933995833702768559192367927213606019402580527575163382403588265633193317611736055564187224837241502754952923169153554902918401028813082260603310279986575634576424595229333579650183881737254581204725057692412127496790805316133565635284855904187569389752187197922168969829707741614771336500071311439787540311298181227324662308329967549162755946250196514042118320828819117283597950102856626573523475701408335661626791174279610188277941054678235810088710213242820234160227079249076823552012666312584080220703118284837231219343748576377110212195897947075537476921137408893777275259721555007963324070795277553712164910580866821698504891280464228987363491311026503530784921753305231819770153333180740840311326912925617785268910213265168660604834085837314206981159937563376257415290583957226896738604627952662597200694593894463608711930450830384307664620823275850862628285164295812304612888560771982281680434882819030805983710784809727699803415625463664996963111410204660963944204833776395506233614405182566604737851789600742607838962815830782817398065022441586408445211174202356369907939643803373964441332168876959700711653212199647875743890102495840844507902428093602706286378936496554736220761265389150479745626455809346247879830410996490249406989907511253688505449674176735108645101960616445000021012245351247466164422996770175893903109390172049247087316649323010527104948205545309123054494218657373053070684251858344866049406201416116008370247693692996806498470366528072450466307048550064789428040686000496944655207045500919543175618764202054828813643161429820942950713069803648732482003337346781326731130261905319743570658340976052834296433734198741520322614371154892118458229313995530558335263145590879758233763532719879096231699927430669675392179472877136938308718229484239747642014334288862224657245127620757085225480445632000855092217819291724394858227338823869634199331944427693130513429900997492056994758077288166289300565451970339309598064184636144116975243355715187744946673593236713778758515858595427439635230693895757882749756542311485704556433411031861034229630791530510315707551536093977257669617707693308154895686722131368127112159527040515154957630447252813229906762834573514440533451559068729123970531168174544958976716541434526917230572925631941688681605026933204113388637881232709504544542113557922442959783225547192223870651874139513132755976140039502488575840312758080007692946223578256640826535600973314446446315825940643967980504273723350020109130432892199085157635841517762710625837627091569336836517239246850020171546332967840768876503956670491765027032782033344055035775024396858207120194495038385958102925000897566715308604772576153485304577779421309029602311043873591525364131489326509869869296301820375633781628913734202804664564652599180147833003934917533156285710283280956401773398060798932309197294743598813814718772610219561805943798673407992789483587819711689398012135660136579940325429978953144243555475818275522614057358362347270101710473202889249737415023802785943710340004919646994358596560518891090880603015720310387650994781051469756364093630173015933654044587956419335414386688795177072926426450906451662803453608838973668167898363044171599663071282463408538660843815294340788050248475166463474344905560827412844086645918059679424337250056622061082534197810704230806645701136684762149530474032106397213810057171828195866983014355894225312590791454072505996715106143931562156833643954933891064705812470658966427597204469600914979993898536952622508395127535445867432498539345437045248781906156933987612386362399198245766023615128309341169997347992334020063908339394014731001904299372007331570273831561191020369495146787093124989171689935370706086063735851404020061523934889839760198678768550799248855550162209717463149095474246393051001548743436393830191515113636537617233798857200451935877772037004648641647708763158135218386850815785070557070654040692429376174088332896663271777976045323385907222252796840702703639762103894638675407176559372349988661177304477708720387834353135936985131922204619352424595534115761346064985437205144050764369604393235992719016355024946553217299166756314375312290016961786477310437153127795233743074293448847978077052795601099701250783843937989768567308215243361696217227433144096529593743106565576681900990808914527991366724193321086329791517258074327988696361471482592037764840536397805454362944193445610537854963328156950514496666736228169623502438940136808414539582354067875197145322467070103488746783218021354183948285835450066093359316384177721178160693547076237631619904080522820981228753577921595502725254724007713651566122537595432023166313919564317566418517487344254961059099712153638783692820850231305268654284320790526589066517789945093088003812359350900306010345094674858131938463311203287890654788386150823314722114038291743292631065567777850713551911369877275184377727962520355755929531023486998842424793377952614474689086979715133506693720522935089251769237085069238629909984082147478330511036721517802577154306195143522100028918275038686059024699790490768628105692479499585263125454899223244930359133540697436032551551182680425036239012766220862741722095758658040388675665647181862801560024450745322409822625901445602274485422657203084025300569962914682090776315336719197717792247907505964236847018700947803633199950495057249257826004108343940339571643669021064564903818068074669502409390808040760014668974636339791896767510798968724910975516124561212435748226532266115483459200022123901684215398937591144809637099538223808812160992428279252208317324655149632426531938699703576162348204458354071052489121603071839830240233166322068111634378723273213476502338507591514639156228713957115605003937555714013550302111423651144984012529653869977763547178954781806610297674733683371491603093000783458525806978209367456337618423305193336922187954680092134480133005562580838292282547269166552407357341702094498111290016090300204304343303973773604197473439491347683294526644330500801688234535626328181948136754672741183880670326629479559143492119665043858195354004271282556269472353118561169582120843222544641681212577223354884617708201844666452306128205342841774240929249812012119316411684064193063881987278642790050064271560021490540030696221689651573780031642331187911919912265559463912906580548223564692524538036036509571367914998338042349798298021958098448214040820623833958568017659986401185029754717752602630634257936994861611414450739949030430476704122082611099734633319775091614408460152721167731888007856184169046918686874418437472339900342150891173232551617705137633177664267991039152452540052581671688845779522908397078574931357795505923837282310184983631714787622997255867540343978090832938503369216797599645902415915782458445929242794231473248930315587900689790703995905254804214585335927879203798450102802734155079600094834986593384591591678831274331019914449701643976397501462458034905816575219567608576232640964763971089430384151925469048963887290197311249037224548752062068020990139223713846393755129330203465701919667769758103123065999736722403465540641134066751657229587263814310989914976615462254537548123669430738995190554500123110784307977144513091734672080510378648041906136066319441715443079432018438187760471365893490026945691308593936903141588929601806422416452547041524232120694703503772677564043178078306235653110244412687740596109424476242683129683642092906350457186142314460453010357171113949542126191327658918777117700378620647680833885649428437407075325759746658381616345110323116661642229923245866475676173261378212332508466378946915610285484319006455383408172499850745048909377429521532566640091042748078327307078139195294755937153130985604440158782488468554040744544897280117296131464464283279574493760739126562265659812190252955005913470607304431818307373267909956205390400635368824464328545583697049300697710956974217143350105520906837268052897444525864019762337495759326546254213600964057223932871732517216775389962800451269028820802515934166843398252203984646275244767260908727875750636029744827760745431056954356908946481394258273659966314153455214722955402515609249116157911733806340731158652208276595782116582357182553411373937258056941142175255422216719797162420028488290288669509962187770261094885603889850741463709239685741623187498250909709581081626075930007023900719202535671355335557442618458653824048401949197271746649390981754043866810275154028591761141392100497469128885708796898134123635957338879454438899486936874059570128985569549503796034570328756912337896309068150964015257173569468873234211065414161237172163905021957513252944701488228034319168754817213755540891716771560791236209732634950096878210222869865257400790186792930660380303004604906489166410374342560449584672854557063660451215675737047644750123136371228121458804749465130397447860450693296696371883117135079704596792311712341681647176979859892764077527709395648713530123416236153292946030405057311471035597849999658599776583176929395621943133884248607045534908489049698387286778448395204928183836127414028090513121308663052655892960509393176605523666933736446335794936969403386461221891756236117798267301091344051092192696025861364971331331321524956642546303354804214175588673647150457920882365288845473506029347003473417190625266743601700467289395010648854171299886106751651740589500453672617382094215723612775088466737019168820475406123306614691954577443972684068348306849318134373838489848441081182482720417944767172889734448386518466402487437546546469259167512182196136360904743246628294994062866336009635923862809063366167555358747776222891626255009013569680303443615589219553853226070407861165843971035528753959661354220529719387281041666042406165870178470605039503419724723377028301073662492163145440492092410797266505305604762862828986968371319153088158584380458361859837173440228162551579681872609330378511243356227791448699049863397468025063180850555765485638547762700259379162328199831103638099268624207266871141413452818102799482122265190509023073898693225185248886378699963010285064373182016692630347550851933504503136524023515474140561140744847640006641018060681422471859207737972740396863703256020738526886534676025449117948274821880294877938970197273882291606016499924017740673155386600594180659891454277930321476676400408959399489773756305659302944098037906126514056795720358969992354521601970335170716212286419388625068217205648534115866864461308871606917350602061816062528656987644620000838684920532000255294752822082586623632033233081907257477566979500345904903050261395609953345324415845881382188909876314648273512036969221522510801839461582497775319299273336327980965645926221559047487062425897120421720828979850047108740727840523339190428337710329763420257977874231420345429021214964826979068890619270579907055947407074262570020847440576850755261350558447351052675995593907149646688145008925311873983233577909779914105295442520000339508957545672445143149176623619899700380939727215054879424215450865619100897476848775740301058895303362412862510314519839707438411096067043344099923080589236538740186451081282663361820219724491692352711937384514589307106938131571102254029398652281258572974568237150945228787738913693341662112742062191913199456483796306328046130186422186171410175942423120123078147291327227792882321352395619794921284046771303722322486951384409134528160235538205949925528178708049833539665853308478702295052211021660676864642944005536262990454736990114796425654192138099127808677583525856671600302244524699682290769282010691283080061023369817142296941453764186344973378875247773746432488885595814865237279552368075636994578269988921915999954583392871885965042994913326937633712552216740833302346629621454035037126432468840073340182199285832175031716639066244816452583995120421161292580360775923241536068980699864369409772740114813774602701620732378519718118198541537126295080735542076008364149958579673822969218628970493670117381802675539778639729025312592099642761998208854204811670826862248533215257316083737593507114198509714377621862344414796814495379180749492872033678516937192685337755443090517185239170899317054318533283965679267021003166314813221349052843560423013632443267405607346667064931651777129280925762220858729602022202984385297180645242272730670223127931383860834248701563275844302919434623084381078228673668330853226591006866294546251862067562980853685047053639291045623288694490521349185406876203455064243359167319880111846884846564434538748731139451487656309612920269240607640226294365142669766750808688307806298728010170807195024808531671437944824212970208911455353094667919520319405109169022590623515319152419364478144004170187208409902465718250412026001571947038831508491103562162882420173961029768379174582807011565289959871779844321714659592464607784713410333486347848200127249872569483989551058967640879525971918364743949309138655118242601207636161736783721145347488258772038024072117415063239230866770508720093375558795169305377426786732577009418266557761828813064577227813205900706953431222208918071992374975929992443323122030810504963306278844120315586482119592733249612305415295274440314318775938373296896717204002125428147605552930311887856228246358036850515765171282239423331467007783357961044420864482446906471020470508625133838014089668857424931218101493037321061246577522508914087227560546274809083278699245953650286720532994638478127589396414138788380419962124522468956387085958470338171578866351575239576437779716512539557962900229829039414321174405616710943187135246375758026658748559348904206611300728089544855339216073695183230993668749026157332261335616500123627698042801369899645117178848379898469327064928388407517295443365562761240778328904274255581824540771214731184133757712122373802813551146007176350914483340482572314836368535464618411024988579969239087304279538687293516366089855448187894589790990441410274915253273148467199773110571932678490775864525800606320167409082109831203414675750673237628380112402156679364402402719712318690868852658534610194266915812343993257766621441683496544907189162938538770491641791603948504884518866887204368059179072498473768953064961549278144952380871831179011412253640479917473206027585216701158283957733695882153324944923220231557922194565271918493512796291129517830968416676843771413622876683486222420699353493956913541755223690180993247856681998139368370604175695122298405285027521556613626825556178599791884616964079405138083051648790004170401741534678392096213378166980531767836430767508718237233429717290565950802105898635213046705130598704262071032596925110347564912300044859274624910358762777300217520591201520277323648883090687151940491859823369320811723114659407868690095288739340850393266572313326353073347695411626189961602947051286785286987150097322927756995721728297163262604844659607170955628039699163693067881817732725023335299075622011505128266687177264833467452751286936505454282747501280705627335154561729815289711037334864935366376015329467786005527776678171486979161981919366303457342637514516459535747776106267660257985188096106039636926154357887904528651321233595604559492962738483048528202513284779541178482225378406986812788503441201588796668663296395131542310914392342355705590085154514151748416368838922257745536131524190039413143101184333970077371855260992611383483476360177163976507501242064280387711911332260362393239097337115723571192116440438563167467538981124738995550587476426020408797410155895117305080421673594820368455647971381827397720535157236967455893748522699183450968061410891726555553289359648046708038556428387142846204669207891133379789795265484651115299185883389342832155383243676594741750271586726193790128644684127274662499861563929046504291513008589475518163399772113904634488940988302047009961882929170391554682380731569211209299902997770016545013553566838979089295365113553816413063574029029898986363115301412694584199177293000744820854561906369611782411168079479099308695538041863254634795528100200238205273824539792719820718459812008796466375987792410344057188794540550040472771360481442444374869900822512135679296718464578657594298415549964806081882130491625796863422953363158906609965973806578477883357165828263576141510073594766786604156891270922439037281369733423307551081740466427011122336458855646665058147409871075161405587965379361985762074483915366142354126155599013541998921073403735327255433722673517680602594181296748105930262956916642873948862510522781360600542127568595584547687813391646318052647732877149539408890676019802800229075449286441611418833704797768264639154377016680440062058541815946993403410872225568928524784298076292916853433694815461287456656349493709017766639400894157921328118016453093241174515645503962328379062379335554116090748785331739758225194105838545756472678846572287572929130765290693850535518061586636577196073060174165090457850555075638665374976672052754551718800495425940050181053321439221117019389771709414406341293166034276476151754827427449291234980779951824687621838416256210832815822947182142676915175725785939785243189717866906542258829569805904143456088454976964778304308349054561769782911169815248058631910234236527335636271285592847953629758549752891704121332766480503416774787346339707923446105976691331357737913369012031102304253150909184768244852244854288444012166353770842744203332361715196618907926134546937054561951581929400016702067800565251400738708450201903387422183282545713272344030573962398356850374326262947436659372862059002343810582294400060831873950019091958567113834337468938022629872341309742024732716453392871022038345645974459797472462882753073560850065128683012342897274716254894186592231573288734374921947802020910932321727679535633286513712704989539137612747518786142316148419438001298094764328068889700539696300155678326349466593314216143378074337956381236850572869258250609744588203187154741488055049744659083838515545373563135783789856450608559045806710999334943231483835785516326866700610035678579428446944934816907184974002144881788128342016299782083141064169684919921110324691836835991124883946168466458704472471369713253220461145108099132744456221257210277516105846887472864397704001760027697337635660454292092222970713678151935421623141542196116373714020318752709153185057965454816891042679022739523205732019063741514473209152617175924676002652474771845537217746150939908827819447617976508000022733951195391794761082707780698940130158111275162587584376620306780939848351513725824949992906693666215579034187910385509048645680638036405869900281358568584409364090898099115204650144392158905092411345323997809297079818717077600574430489516489788793304069390362426335786014632874157765222819962896522835818725717695821082789920091644832552107495939424738740142085100721563286719995233191426617214964718663298415099274933582560883312606145680563720273940892503767826978518018881587438299527083384544830498198621979800695211163600507655724446675547550285952787929066229427255241699902306954464769457176186276287813733890890133576154493760261042276106526123824084453940077575251424678367914838531537107091827759398137616509770319072732806219639441434345426274043108442417632161573057456298797029031630167667864571999386820378109285562783399037939288583246278156997401436729064602443382828384134752799772505034074606052460932390706541150505226973999806597266908599238406860110878662187883655081921394934290029855533439887786452458327594963098837611770611747589131577040592545386962985474136739446347309170391236419168376359184627937274715798248246280927373700399056250488410273677957631240699218940838008353873011557736597685300396906423277466428890017739578008723080020340604440383795665159592249438676363931963031374185654633536402212520521364635425182664106171953590320276384630935323243235196616292256300799297542127293686763794219083194574045485034561278576571682443458169163206115305763164047315501627711189729583713650569382060606083487679652179375528559549953766310365645171628129307435092416418215811222723260855131922743140326459917557897055263278384881786440794662032962416351733765396474873136197629871832604252837653823767822772033457142176862816539347713869435036274064009415255992139850663220451383854588379077440425104246517260204152931527517691444444622389555532287915150410701934604724659544584794360412624624179186002798368376111529238872433381077814456764078180699979414104446358438834851849862893731625465891004573776400738811535670044127387141200186710476256414450965512440711679370272229847171798397971575239128112962858089300868192660133876102441863663250224414898858821974231239534490644323728608612594005204047235671921462300343600680003563581419897411425191743063373581737985619138533295055152410483838749238136184340149460830649680409156448934817117491065267744730940559603622393891943793102228590726649101559807875521014046533529890916585130134314408575964714253136841683763944905645951088459386013415909496878989120273993747314641742781086912745448858218512305553868048756460490534889310720242424969103096653487159147944687825025215692871662742249621415735229845223711048173198190159101272654116804152835942267204123537970712609493305464750366715267435577660402124023643404740854205388358940597598256925331173833674747770895345990195802897551429079295698470589879536388757224000710764225178864079591625705049570818328151395249300009098193622635367697994742398325102151140077384251561085671579379427971571818002149137780965512540886194215290026870596029660222128573724717919210428389647374212612809251507110747911764732857236960863731819470822739382564857278692241377304483011891432240919914214652413021152501832393774533764011423150721239017960206377225128287796230216790265746156300783695170777041351038528591872585652657113418992056830032021256931543025819772085348264609491942695022909766847711119678889144618041834283261752196638991304669104072925874487478499712409536070096757165719527623366517477568046080687287434154609683493936843720750792032590670935290747944353359393315221563391322446108851954103106391832411803646798146393503226137943978849238312733802807417934845588629899445151088659679411446281348199836217379505212240709666033431654188572913619693590002157074622904281615952966525355707615096484208218479786651805111915668574031807802627309885031477169271822113857601301807300952211218307698082544227683210473614031261994261401103523462148470423430557124260146848258274924843176428996626153337499575101886523727268550564217901093283673206945396486192007758438983058827479578976307377102032029106465833505406591654919254145336747346369621376655869654513298773497626732424886607410056752139710535862513976310933900895772350913012316240199020004428135205362339155587270727923529374900123442239291564050214408983306117688187981362056685166727957769310822807940396704764275469159720751864355767399932044990704640482989312865558251031212009460641916596482580166221230991985752022867867660566647413638095974423055091207916137821923415865789332051092674237809199598409383615684159431248804373844386012309405261998521706385356644613153327575053936339535847105390659300978911123769333608789526021202639949319604548572100754768315462331118671499428730016055499841235212413436036090716239081947006613687222428401513728275891193776227771114816138519562089540493266424184568059782661409428375855826004365870342703362831344580719314851339145599790925203662594805213364212393080854738934788239962558561789931320100584729495358051369375145091985734505514407409005703179429523943232388040545979640905216469862280692164174857502281825846133389781236644839665050056400679735723854539872944864882112228077055133700042295687066089681697742942148011987737593661412862495669024307176143826924833296061167059731505412529660539970903805918948032133188145495154955607702093634169823704960230599099215271687081103603927770581314791870015695244564910181837379681984899297062900395811069192818911409941888300919957770260463890040624168567309679863956870791992938209869590107492821650337542047788110882587619679251744127721967698112558247365026680954331567088594217992775984540666262313070808161758883890971701532351574890474690705861674825932116507819288541736490507208905445880166084156675087087945621719349499289382458267112060459151732619849777529592339133804518430248489834911194308546384450418995350597145410229096871170746875732323617488388752240814610064650918283491254721625104830455689793991332579825022706586888528851742236529948445759187218959476806439173715920589027231612282362075497766449818933659676193526917040849784494780180037293068822570486396158073143493934737528421282154783499965029172370803605058534152160272777983262700585402578592621959436392610170768989122356587326061805878868066617611983842723319847383897132066408577229553929068338947959361033578927093284495855446375656394898055607075050542519450386396144178562542100160763558093253584582944510764428406503835837692788398572205095947369861073577031585187491149158574693134637330254970857592150467252889967835852293539257137155370013236348763958173781285743189974530984088850091321714336344796508335945946093491330586801699460727848985485736729984493306985011391941099040912120656842596945433798476039618420609077007384762409575442826283667142456841039522745727936350587205525211930887648458933435122420186778734970043267540824932890141497262142532321953071897379825550133195665859411395237851518414549088677065828055014163430221559825316360573051801563579641782622893186770983825211207556233761833920635283806529176997999730258955767754503971789394878298163509860603293921708811743650137443236731874922030994971156006675276020226409659030365238852277214846295548094169152985900624342647396857742357845662336557323461658155913162310495827467724625337665757145429865371927243050159758133571918492122291709310587741997137658341073798056326675922059929844410117137212620209169381674288213344829174639833956312928766367112222278769037684502336048110509248460838906262606727116411581885471262501855885162607887418421878213314283468084078965654561119832022559831378541753509164248126461240522823522378797125881699463072005299331083703908079862967120430798407169847538160815788269222652519036257183224402750293257966619739354445817077358997829428662992227322291191062976854166115925265975590941019271748833993715069087172351364873486671504192457170974548490611536344716627062533140959714426748938328421154805392374350052175734860373880128058202248806907078283331650110768229887930841134848789729999149377746190654864033971287034424251115630488311043434634165083813879284707523835277014591666803232214407598920268124363475065977273092516161822443041016275675787019478586669283252575635667412110623270020587725305870953271982112325687387690111333596084497924458564233857018900847851736874437305378893693612669766652233050414902830283821836930881831769734196383780763995034334203653452750133058872936081390675109419364574187024659429029284016230615152333091639879977802956616501429106113852625233578749445440391788575953916752290485822541866306232451462730642150543886831477412035093806221613952987512269424060926136858686021572577629112323988209794969311559437960851286176652093325675502598268849447842635042952462817754251150025606396763578269111599899202747294995894566542563789588715207185077718499158302233592476681719064326601210863718092961317064465918153179776520299757694741501435465932417583931507991423124486147055885649425986044699057154418846072216156006800666914494198055761856260624404168322774874069249397232646338323231230235596545260525272314536235097255140730119581446560598973005447140633596333258051700676374472741756737283849694280896170446608153287044648266341949611898277148072866517274856622510289055442734033995754918118705326046055751667086088669600543575801206255488026352078243737345146324325170305339580749692493315936041910567536480860620633022805724304886104195740394651325802866943037756020521033377040403834915513799017944188765255477974237916450089427845933761700359440030455470978149269827338894936224616865692070683869405348914066739088169001026073516957848270352521345147306374403910121675545728516073575894362321289955970721067644438135382354543331397695797678452386847931364950386212916417846690761974973650684287179593480318274352388542081693505070245259957340133163622006554272386015735673216126989671666564986556930232753684086822921705383613774242482073541280973539127998332071688593053620679489551578952348070750567846144804393722982223195663203563597572624538853151708174347616350586980855084747097637811464850985332939745267784170603665738891041210456450166555093821760823919897146483044099134495278705156125581350148741338168432037679816748534406923348088797238499147486285892204757700957282958592588002046387156836475609082374544791477785824539599649266174008945058191136296522164793429581967269460626980926595848095895418528944386391455859222915578602073280517728081569100633862657578877288753386368902405534424992859370212668726835741055492081036783558544214122166017687565325080640096730712212925070813182184094781604801738516125060704308190261520658975569048919364262264472459848597937266222992044833621815857020729385697467988882027692062767581268049957457926396999727075104736384809576924307567730902038912171790383768417341888026720660549230408805636441745238201515622094773715595176115640574683483210314702664730983806529096737911834779309787084578566599544037234670892104120814036226474418034592096602663377638953123562677806840791671003664952027359662674663004315551306309758966684431035585372485997054454213438694715343362465331079487702358612485079293187804062794553359402081577829158759254163408923936096366930787530499401120193283580085640394292951096238767301600724376050192389541554771136907977375064616631171629113084456612649309655262698645385931581137602251488365585920643531551847375413466464497186425643445379060048052336741446677165854855830824814837347357489626277364326968588793146386535908274971820146309731109410838261189220221923096582442391458640632117984332294326524561298446312329561353950746028226427571567415426350644048768352630558077777521539015547202658029947262242500759219904939687185148573001117291516129624732010710579180377318219762098419829807640467888207807772762410519547012789069227357209097808733941752198124925373095169620445227667718379670145698556063032435208506139934228374676971850936857414803162341032837234530384105314529006518807484828708980409579697418979283509270291764155279407606945837312940743818025436258680869414929828693589112052073321241592852819395119971472209327162793759912578736918916465440009131208331375873583151188402836549786173107624157099108970685543670579704337395518174020986935124867899410611163345028936097554189376733994205454375412203861915360278124803306367452677227233473548807658529745468529284943606710652321569122662768568390527014240209621505708758978686168844772491536296211160377943487210082806647317100197147981471935911542613496390058037120505258112882993121968467922624012656278241248038637019166935553829701082275299410064607883595012364773251716850528917153341505812291993435652684188297160566430581368605231458774127063750692869986448432998678148047593821653898219120088901909665846525430185655025846722095972267987316148581465488848059265437566028764470681129792865625086470120034516228217397709094249402136605353534149304920434715060922907249064351867317759126780186498576881237152824002814744372280407435463519239548588791553426056095995903516938969661970044656450762767573031355747899694272424016508007033636585037273950060171175793230813370457081613152524316266425226075763367933271819817362136482666028587248941556096350289463398282441696264480439442763035312252347010624374017001759318440248676114336942103241405545058732428590183732613232441766262458223371174472427437475462318045905080429409768890964811921222587653481231806001573422675290538445822913004738729647192460855696535512466198338191769161315291109377127352101966432223199444996100247966588576319705178149308550225366179783121053454837695801903417496417523474897502338076937326731494381693686926432857093633540296575142129491104481988289995463361973512071457266452789790412822817313263209321281906031387137104929701615759343598136887250389691508150510726005310871386029241906954246163106425996721048142091792401593679439524836621116082398383500344863149444795671572851800859334722369231810062763294948482103806738507327567662435150503155327814469989882892887191810331527197576808833830643895639441950198917975444062013315544623342611145087136785941984957974844278325694848200904728206171258349108684466641621152704948598060787070189360819120785633028500892032175233987549407373231125532528895986081138891956238648768303229930224525445198286499578131345147704829565812789167889889958062958872569281522823042214084033289284249270667612691864829986331812609596530543507013651826723733162570274774834272655520303855039780908924309476756095209207223437382754666162533200803059089617394040311795615264998806488823778480495831759508438886730806495225560244286896370802926615077674315911262077671784641432502211281849147826232794055435659571775811403363597396376408482860720433908067263927910340420577139476161961716652264983151235406494634361178095349685323707038971414414450291692200445733222925500891137715433817528174473263854073147897797862950634584240870229352201205320742217153441049799041799704091803114951232284538346484614998920622923480212581201643980871983001781013924519076162622547653508737254253986160348358067278440236233173731043366756186504658275660277763309950205239585231428994655364302169322850424918836520936933424269128881158436038525741638019335490063601252228538326014251501874927741277937727283706078759841850973124196794487288761172090610121417089578306934217862956005035448875272968081117796569029800709026366994379883548833303005901665889316807466061198912427115399771184966765333938211418760885722795625557354519703052951624679022446770981933489579828812898332256300404873579809854245869093546276625153587796623625076933239014294656428340920576257884750196178376226641695108568689137736809920458674164058197769872594031840781337602769879107961472335118792642201670398506952758604927633949432968008842069057286452039708922130955701237023091480659448161337648674636285694372359638668629279947181484664399406407832766047627689538037557123440935407026014230132160356210111907064965945505537414335346705971849327308528439314060055427356692208833592970610954827242280727120098531474919826628917311646548587529723708728358355898994045151412780891092476827244589854084391357366392585598448089891655669783786080151973389799624989608707556355889854371425200508806831164284263539133440784705479492928797136891679480801788038381790837467294981048344092404585789874264132198472992904830366924822903128288789594812531533192915228184205916275204790022151700799998388384621593681563976232863804084323691762065924772126951387953220250292871872038201972079416086211828506359479426283862157844481072372631621211951894140148824596320242271922369399189142553199575149941277623185074260181265771833533765783809589407811366983023409400575300640149648287131279425681795889372791277342201118434546430570410049862780750378129746126770639930788070320075634997336036361892726843135688770712311017559342662427401524854645701725863424689747324946905916568738879266700729120793198401101512093933412874309341099863998446158675915362172299092375248072982094784679149440368209015011489282860823800400161216650393130214279201930498731156852783306567055498268636542267724939130356960069638635101911866336997601045177449882082361819780765662555001237450930378283864986948550115464237295775642788903799409254038834500315322370664933527447475004988555882815695918469859558913806869215918101887475654944914575968904498594029543194195863140427463635700164982803259274479200819114073837944150454256044818072594951315513846602068936432699489441344689503171928739802290877050941223536934969063495938085557358011407004513130812681393866038642948445538761587883873134410526683783670590950286171041930893207372602034645234754941602131191917962784506227960734622517145726339340828042839556674752928928987686116713322423011775569524498547591458653454949447590520947293823031709042859689596710460266219890969453022354083460238758333844145780456703649696574438643477268902640110646269001203681711146463800889319759157618159894390862152545956883615893793664399667538145476761334442228230905345213554892403362676542210904872939676818168528516212871642414932855325682780833131172862462442000906142166324118829575568791467313826270355225521934224251027208650098836559154913526252223253684790569032970488624945065585474915426794714965574334375699287889654825912389850070499043772144719394666808384485188240452565000331551043007093354228356639316596577332113438511900335071164695364333912354021516220702353085931911436243921229115136023783820640716483042611280082099295535018656236380111015347106453869128669954898345212547220324953999228449268221356690941213930582559392244696656508827460740094667080173491995694595854679964130186865739650955546884463247503532986771080828997930739084881409711299796168625244158450842020757615736905378967758226994560033204115384803472255344023955998986132906612625986528333707734851759327181425837139683323518132186306096251667109518736667349356881642224543120602432013353288591308036017069232644094001262043358802268593092970043179556353018851546477363055942162084931210563935447183387125403298596414358144965999114162286412870782333573635294810430585731143414956198900479081696462164440305206235185979651595097502809251158849133798400771548246897048507620002485067105282073487401224542501425535075173421872645853497273935863484640873005371027520028913787926299569865206043915471578884669441896555876638262534611176131400585207923330695817555410393469759248457403654791554686873216883251729768344163663048080819979367568672800755977481403528606740087492813089941329304694433325367422219755880375151322451259741441995819260210294523344206133079890264779791196854214462943391672205075247457550639884580662126915834185013904703597364905732404443632429965840269607520345747417571228271164469585183018440982195910537109298516572755760405301317068249705677411194353084379508335184115947363118886164706621089890595127505388312923922651415819129550265286936450230973001408204719978589889222037618478496915581523113809256535411059799640463183324554376427519568391957660451668841495763823889624215577217320935516707263952955963489138649649661115304000935310609905924993864862730442919621649211891378760312086355043538205706781091700983640965952572220173920847600331978200458131144915451993104850674388520670712703822533149821581609970982506097357735079476521787445968914743250664281272820185081780831797985847906806956159799945191894158665000844144732031465098385298697583328305033345388280972268941547105550675245166855155329852396149156136906944972720273455329945156096486918964324629834459779472057177471583636506174431294525739127408867262959452785824404881873026261255287032693834502496906859751514561197746876417693019463301179324335951483556368601008030009542207130611639482422173984714428758149664530785816131067900140446502126965896459323304956826361482670454602310334952584418687161487566265775408763676789394008638498641104496283088002174087903557974306756949568272275806298758663756484939304884225226063435610206120122321758048541675859584679105749727356352296680597715340209408768653659331962087248928023186850647996753187381440087504781501934482143601641145881055610567646579258844910184802055631762985962241908038021652967370557724023639273983804381596860624807517968039048957530435762259937145865784985519713985259207371316307879705253246139438719928841412695967930868238218005845332390813429762180817552426504316746831856653695213679895634416416334400029930795149654098388862760463472783960808088324484318924309562818228110211620144916184637140055201488009982752943358151253713345709430685976971967610234101357090290061067800261280269529955833069374721436552394898441638285200772117952732082392451133067234278331132902424657736527622136516587396063586043954707158388388937178596521990556625291981579975019501957649041773752686750316810546075183262117007243354274717307326646184069656256269268851629642769647365714426908200432556631136318191064697152963497830287954250638634377073681658278518002157015569622855378109413422621023362503458920384601532642902159390347590526075556817170187106911350186124206903889975012329884077715300589732145318282205724897732716152929139735813605844253816550853453638222022622551643808188771948904666728321442019202057418767265696530597146631195430838532098424253446438903069431989804751436858398520793371704332269235675176327690031096240284096198221890509920779120326003218353217099676450270586447391394976665281401434574743374142852683642996649925996794266949190311767163540531950222087988815394354082206916525357319632464830924633710982477188098191686730042913070148868089602269412211320090831593461843354141495206704511476009904133515096824458436933120797247008635601447131589994864457515381779616015003460817919140271172917793804434470423153567582538867602782307478730140544247710607636699449008741752310066605461899190441869399801006742765075855627232922632568279901222163627138046557021568207192808110808426262656116408584352957611180162834160754373036476164849306466858894657577510873936015695594641935399473285050260126297846425578508331422556296032321892570675208097830613319848964116190042961741212867776013689474525539393705034142058537172954262414703702392083317818478276935991067136604474970975449754848109629150594823766773045695536990626025900428622225863484662286515701341609160446240763140298057657408640126537058002969506890963734573654449887109111459541500362590246026457173056972864899005809843568518847135079483322786029333409717635738268311973241150406780829179679963957023515917813428275552819273491695579362080974073408036691997106775913249217789222474879567118856699809663147081116156131040536183759794983906511951481145025989784438366866983652102326942247168959700259191560483341693837437230755873606559671092208790423061708778871074622560309984297849997449585233515503742519273236926998092292143256378136411686536411337242067126006807557954104956946235375215681022973777137584416706302170273083380595207693246677452746419465428846472895281517036448271277591137415182071696153668618953670707430353265010764221144639716497698666958768223865880436794973967500284735729243344104057256882527526324112998285260170052162858812449880717363689904179131973380892320838847837612534172400442403695581609509516762329509502330936138566875810828471833965589157806527601164436386607003045704204073416347779215575874704105576004669578240666811478188287197575126787798979065898205841528767602906857997564330876263163462603762945879750738637897214508349608939876884898362705142560738531902492105977467844100470645612976284466241541475169260925264687857766494958939617223509843163504973791290571145671755574891400768869745627677978805406467151890806354611923988718432147903680691962348531950110028164925814277011269263296224389856095417045813147023600972275703675895433494771963889918968528705009280575797428911100253088329580232864190967062459849884154807709660773344152849473563915613482354371133997859330790996803165150380666584763786423371075725742316051790687379957018852160687100345578073751177804582125612524020788441530943247545626038362974946866047317671829626933369643332280314153508831316641541490228444182350562227429715287187824854772095811434615560172832087184835409311394011301894237293538862694011407692636818677725175912844629589094215075704255422342413089573821642650916551076897095529634731018181545932670946181365018531334905868928693512994856798195164983634300059085278228039217434967764761996763305072184390297909500517677074666315267767513030415257645498453383339378506948538759222112811541380820912868485823638357371935855359534592527881467232564305782008200470063722846073637484828605865059085127856750651434598845379489254901160778849369269187701557550283511979889114402008767178217683654861937531674545859086133786090336560932973901066349153605189405858057267219937798958624673431342776082766910148463494300167791501775881503581667200007105792509355751288523702632872148584489948011898685377938399305736083379197514208852881020153113661963331492465598535086101931749894808711068903096773661363415009884214668122382136251641192869374234141724436416451476587420187017211888096670366673254410800694598784579389676079599943619882055843992105000290242199847667874626442444615598451418423377633185383462619037525098642516905285670742984276815176093922392752077166286967366030514491031829971427629457313150940575406952982262664109209014003603078988303317403014373190300017374948363420181238141519345000410064451401000107860148229225505185975921089273477113615192871032143444078853700939672367027709541874419770913639693384170245663892856940933517950466817671878562025420194831742696183654979285008729374846032730279375209499933483621393274757204254409029133503494152304440566317191007243899289138718883932637279655135455436484562567672173919057355964565341813001878347977128736582135001384340691483100725810351719943128395029510732945397392810209752678649531662843869874622960296349589620170295018255883305917297614317637601944873896500050794283436354152935335480176689928497660065711078030840114167471607138509982157597716022199504116063223831649485414993086512690112848615078201107111791083254879613575752323103888417691412350692783855007210114977098191692337075828212262116936067482892697366706684500187312431094793423724424730883664600306053303975301266713700716878426856765731874180287198337697568080161663065046606517732530087427142144249478496810723120795093112532931638016591622756835251986539646830724202381317926278000302478316042663967197494989523659628689435904236529716841907413725276617584831367425961884589080962760423888055205484872158501617258711366591647224689304098087449882119739166031239724846090631371611219875531117159989945750047554704176789215779379669414289256325765727139876186428182854178039900979973305873867227298204392631956293872898388867852619009733792552873256322205357787404736961256405913618789502487328647177920200207798766144805354715626814571806289026934983736345808817243504847384618683195620307711997176104354732813478144773883360052361112605330046459175030521068133084394389107778040053037436447744695785960604662996616951386234133532989202655320207710411615121778614408542064334020185891368063750600896843228155125151644673020245616001987353587182498601258481173011299775108884548032936987817773160505955550651319010535386882227898803316824188106517052423916594620469987391108177790999696099642998298745649557940998787387765565102749902109180974862482987150124091431329989992701470631405533661749267056603020438196742087856082978236467873925801773302555315396823140329099201406147284072494606301906941173931736033789209245088375521334311194253445476452986944113806853072309047857045435131266128595716246151641942425249687587540856690718412458367832526369888881733703617962418866549304008536655530026595308045587341231645938929545420871835897325168448576064696328000945066182420594132753022128361609693373279828274814751966836709997052902589721734536115366609966541266601788470568647566602565510611131921642696023303618834899674832315433205836620295880865906141067703805031800418963338089357290950432754229847476044607677861482768132970660612968535897624348789619818517045753570161704348303802619866977362808077750666250227437369367106290871258661766867888729769804674882663009152412750302675441628983954984675661450982308845356804907355177403217795088847736954673089634847163391233858803451609406761535194877676888734322722060492814673356544762691492850760851074609789802760684318938906962773976733911571515071227631755370848042711794052709590468848230311633916436722991922568705015560404342868465831714152900787860063760586163211301818933964888547160796501425694396007453170277752779558483888462919338106314569597451794098031405932489752267094584318669320508517380239077668486371466839888340200611414546493813412906914991819285691134407625505655158373966741766684109897141277242088504404687926987763937987385935371187947745525554234811761853309557928916307386261513380432083057086049515870536481563289244768358856512393675925637078256659585504616269635663670079217902126498187663465516158203711254894630204853221321234482140628981111846249926480065874345792031440730506380485212384679370211093680887347336533875662501752933064794393173370141029829840999853059695340678610814484441945042830322966046205569226965136713844182532845553629207322026252022020826380143095779105876962610296634713378087089634192390752835175510068955959508357257646222034758420989422193175481630118979725347794819564042417969302164665896533672650478033726559623281079038227864287148143367500223091793035542528769462707542406964268880116418014486170352942149416583291271170586237578232941059624225785388043256095696890364496494738834056360448292785622952833247326705071214756737810815226210335309805115613228474208864597259007128535210807945181243348587623839959252720933055767192959675421081996827447978397007118000363562231994286297521863075005290901939629905633292713664988088693206710046214618692507165547351821891071750209426518994700371829999725053553405635048065704543979777433126343730503111072484133296031546450813939449419788998958924311130874510962613167472706510825941447540503045859826144222301274823476226912883991751083367057216079746595534414971182756443066645512200305504844485584786039486297548372541293177370605547178571511132062429613033022372320144973861340890769563726739973561810713615770959153551309274545413671697398769028904347424438881462405283233703094874529616393623468197032962339774427622825021825706134958965577754350539553293590144203493502542706178387272716392208031677274702602440512092467068569597685367926204052514785555465405924190783950532247113069134572684296755191264062329626529852889457140087284909371605336607803372912444751113296138456073157109614061766796721456699070911921090659455044357687346352780150057778247236680712302550984011600801570071793527719891281821843195646702503135202377077023351101003782756660694525575654355219977978794189118300970888026493080648280294041821060144633747559556106650347627716506820802631825967953252123433640966460114692863823452125177768086134259038864121734908631353915948005966128954780720906141607402246571764898978613123027572275062989033347885828694172701791932689116431036672919166892362492022083271906594803550749330290818683671036232387080517966740314098132103848002992740054107364969779560293270634576125662430018512059293521519702876267920851029269180401776106984249332966116626618310528135275008030365236551318315115781446365434483701080188106928322776122619995605780143995738129074722777881222131748426509938182970621067210842674190593768286846036780155062838640809956298769000936729239802752812688001410881108328074359563632328901126311813588472420639900599423902329274243972933065604842533278447816248392076091388815621505494495658610170917137071106331367101426155195008520870983125420456871473999105568389857412756427451726698466183083336433829525595156957177502532376486870089576997490648289907474000798076617051239628006938413941586115154934530948505456406201022782909763440887066682223552703826245894145906217058015539925412491368288558361724423449716075223489549434849321270771600697459242660961401249190679865031082957106110304757605966609582065411186538837435566875207711921675770341331179398293845843806829252210942980076145306025224991338572237694001315013107309298177991427808097802487570306016014706845399301237576782070131414851176642084181385645604385817870805231102636328069613994414466058431973008223723989616753740838929778839567615827871780971034754337318097737133904446245282086084852442150572426344153544720337611566096889018970294080784109678635996678356144792553929183379245148336103523706586083724767916782786587080744105780795593550460621814757520281122270313013321850114998999474503505274366259943551787541016153168722886319128711261053228591111988385561745662031047745990390276933710594805285272455123018984887927673038082301766985980462553464623785225689018257560419023755082253325198233599728270628774305684466454474565166103353921087106983731804027754022819435208302950186136293739407543154245126887486478253779916389821495722953245676016170115055720818678948700066470975291101076112943533788909869724883063030935734597961891870621891392585975098239980565485345003110011107761114705965535896705549081844604272399616806008781364102535574715668796866553613795096415428471111528585515137369480572868955653101863906974768319048177096057756568166837476626201752703798688916774413960658250122856575964444052413732002234425054160094331184772086890363087776850000788041310062795482830763343124959374942021539465605878947312574471778383224187551182435617298833903405160923044161274377824397851576438295724301697109211566083039824592210009754451094109085637124993092535863601996079810263152328852288773677631680889386625318180995316436373303964715194425202925965609293551801719198546571457089298047406424579814314712790222981128173355617793380871299093133454377598582554625848137429052609045486173481640256349484141098000899632258808289761389286183469322910518435147820503560132475614089487339882679950848751929138315683342643254697841298521752776129025937625375918543628077370488960818677479292227162120630851494341061567487386491238649994922314503129685981912246909717794275728177747646755862860077547114737248968307948411442415943685089990608946424810760056814079217902156660830346774357037236245371619887884004428492456383251149574530305385814990691220781386902597265603827985439917343462711351283587828004837317417974409637825290118226164735349318073557286420781990484578850865157872419456480768740372306729552958722078297733897317277066358102158136803883884421802417193323993196006010998417808324149581466065562938241949782259241192755464828172798950408159819830987690103736714392343740160678723037118525452174000106976161599528182768694830949536236090806372471383543325113768946042860939952351626880720456868602838667001641473523989313236225986999470376820542111693186600424990007907387660339081719612848832376652374050710155322256438373887602379967828567372937975831037296183720495489030784030451948002778456637005999858629599403863069945979623901906936544396596597039277621384422498912832252776566722950313860318752902215534346623206842068865758172227956485019202213029740646989867569384307785156561028580893740005095189582807681299261691913572302812455536561109048652182326497713830507926674397220039151397201563791657927684976012880560872343074331210865903403738058446441364197382078945054631750984374875335357444947973767840280836393268594726713645279831497659044560364040222917027343223272659820488990058690566634769520570310807711624601084644362975092964286283730384125422433940692071247344132372980965609150939281888237598110389891094472753763613648429939769992005467092910636395451652918586827163363138109293484027585184549388578210859997169544825640248006704718673595884340938316949604944001801008405307681039781867851260167629746342833834460680701736709666594922631232705301592257885410790424484208763418052710090089988718942252910588292036786797117936941367260495605405832564951396361951084883281070913874751377498652487895157443234980090984853107721069872120475838942223747648736134537089132414093632764465176006334259852321583240422796220673697512842886585200577532256856900537648420163232485836788750487262918356831095160196503284024899655533866957493437885849456812154917837467863614788401150843678909444832036623587665345634153133411432263915848941117641059113039700901192741702490641081467808190449368938459619138853917756024805312035290258180678756782044550540545406423225548080881806604588976388965066910071241113873307391945644663338057200107004421184240173809146499582331305756546183114497763048997370377929360838679729507583517713707705071210560122593699312456573461332795708331991770488367550261412450534621943650933598580743087374861894137972726001400680616731850412568042051042405114234045302589427008331737495347882287548153831044112586512834628294054106946853422891362864103945681545072292470784441691332330956690395841552187155913566219012436170747318190090671058453447473616432428123828316633408140726670872562996807979547024109203136512831042234317754951040138713160161542264152639543394475856265521953715085187411956303872668182133653043663522315639036923194931385994673624073895344388398368284916506121008662157703402232642583562478790160662886909381922439985443793441371075815034504028645180841296981475093977224233941933269830463979319458581934975619326521311401116356060458843861053865925720337166290734361203721050875218643530283628901082962745971063897716474228736154665959217107462692449283384415118758711451450765551621916406825580140199259421020378283836523126128793173084477445233097111734390880006098747829454107132042595512599858238129491313856180443940036668910388415287695529463372472069652543582397068831118937098685752656967029025502534652049302485774953267752339668637944391823294661128233451583616126926634660495104386182432670166257683181278542718030796705300674958771215279479886196542096715200280063136708027417862325358544787681043293763224293128539825175026049659577857535576173255216668583524656459452407533619776599818513526743965281306151239479672275285434709089046641006155869131016016209051075651413370815605609496050392248783988213042253441165834189794814099329092198081261905073939276786069775747997000080700780081725022795461934189575607361434705048670904396969146369568589205039942631833684982905273808044335281278950674008225000178783902458239245544338352736697609490172940243787651398130849729786271809940951442567488396250443287653071062362564237344605963091764229184637869603552675920561108275723184472343009010575677587911550190024007518005305659995648555228136090799113045322259437437112122365413085279785745315318761167642985473883969502637295187516786545246316078534443509911125536959828365002257400646816599546072785415297381639605819340042653832261936375488781415948802876939852581943583309617776982019184321738723109566942959032476450948742515484753045513051367066922118397322154352742538417117032967889962657060825082905117784870560058529299375980736886357628025588447446849812667213422836484149605077391187989545643445246846884740456466751926636878313675786036594647881529023186158711074931994174982362145275571497273719018568371920467574458634759169106781270734914269547078353858414207314404924982417822437548125708230829709545278276169527385818976871302854209598227929507455863154590884402819743413276579310272877041022175224209465219025933145192781214524941296369497516195883503096803203213999730157584081033650644268053635289413001655495075772870028438030828720842788460761114553474819642652142905364764798526790188225279440306951426204765126988965906042259793986438029173442827951782679053572422683056461696594807067426992110250677766710033454176772134134448595193862526729849477312543816795887862982066183060398078075853281273829226359946634182898050103031403836920632783171626719464408486908448184946429256825196235156398757712789753969737840159804469633594641309651007937157169437249966369007876395578024796381066274192791369869636080065311881328994548724040766927055844533729581538426509283676071380526112444053670241761894938706600372109811803974103520496130790601327326392458212567168532207717608814336180221090320104967366404359791702107766383942145148550225984305340207210478934868027930096532906063633094421925734974316644328239748677996378907541291649567246355616108762069436649774394618178257709362960639567604677141462837686388582802037874407002068876519191913879352499782015489688161735659105315385268044941494029346037287494577834703693986026497996290332807881778094009726468957102187634953622443793917128451478850825287978035694169022235078853353814394895722544583382968646809371805129828787017120104162947124076114347411183273011601188038234008579671696848098865820915899729894204590296229661843786964153852416132263020845052913082725447640026003889909800556601164715653668973407166251789055690696576164819059753500006572086575901660299637577697515983906969526622424087345056707508066646674199252240935344632201881740664292348656477417426384980760320873838580100681594084794384110981867799119697850564081127105502327510494002589182372162288333466001455303454113707171197692595315030019399985711756066291469088120750249061004639193753020064091299303111639386850571987475901734673453428469808653163556146113087378400448292951432840470043806862040277036776913815100675376322393334357767021079182823716964168240952662671625149139295572558115396095670999426956716648417548508843909377005145160231996267927673314933825172081080024368752943374466027653875224884584050000301419429680110475816253409613319846350271241490025721358191279882723531228919453737798360149384656996536639520490283273742384479634583095604697755208993819745957480865536082353444420623624919733482518023369969852850501697658828939796307037414993920405143804491332702270837459848144172102161039373700103520657131854937821439776667318518050399803989388334009215165663407094919885712671466034567484368606361973603882555614980492268064615768958244484188148098802491919606803269065516386646544102946665870627463742477525400004881638768888713893220183104318085288687294710217848852237199858734442930329841460367422596707969185080802951968018869187469906395619274499474316767234912623350888787069660042288113434704440199194026584348088994235828451261456453147912499047642240847898144415625906906858127493771651083755668107779819718673897268872952582324896701011171348185540724961035184232315794198004240302013386383028945979677826060932462427322969703172477250198242287787537924968740973919371901424821946291132023164714305462537442365032877225267837258742770084490345956638426930789376618942487277014983128467206609488367554321180972208354307984313112009194917994985247747507220120118618384900488372472720603755559618091165419843488310853650035168016885557721180445947642662842309253486107317241851800468779947645139687634878581604649179088171891794580606025338973029751359997581858248286094664128325324582354141734357610981312299907932665281152371430102312452391054885918135513045576700554987107085796912839500122729030147273807205122887416759712504018323049648274818123743156752289149097603991324166143921656802618781430438060716560898023551178166611967639317761302529892218334581663974664591881899874066177686382296476310581503196968586840074801607599733905255582278023462090575257095252235665033980636318275154679134926035082839407539303007405307510090204796430697320615548977248436144581532657505950539798205608665980737556390885712528721754253992050716907603322299474493239030040208046347305390239831235993402947233957812383628533152137465515766448947955778007529885985688288557891950176150325806328865658193392455646972340891031882336883780930446458508211039149391672373081136238644937690623385466200300471161747304673944881370913833891209702129507646332279287857409877670534706675922508281241183274951915785042395509995504626710650292536547133086739725637219174546876640525872801738329629440705287500806073055542009521478634081695520051443655584113767257596549734152316080757368657810083369074685339072826396933807343213052143855888671422547678763767474551422345696981657336524465528649040575504755996406754813430983394271988145517080904666662017930626715331944936890424489426509257689950432159871656234677060724985919102255555532036166312659153156114096970702493709437473897129050597237812807418545360037773214453572310931367073476053843443000686942200463316127725925343646778158198672208493017683420202644018027448329298818076723430487298256226495003327915834454364097170124678332180467698592906149929609703447927534023109624455502076450763023834637927811566827844232945977016796628662185490275635213647657666167275645123047268998234581828772760364164465457810909767798796587581619784637644115998231277772921871476857701307372490143716105431370162761248039041145462193585319831755070555218574529869250878763226988253927092768182064828064362575500591895390070960856135220163181698545280117606693865476932546650824527319034713891971914278741630233504621950901528094877284882558825044734020061447024016630241086519373708110305433880281526120460115877130298322065425431362913380415358664245877950498291692348978101703324796111918221222673813727555197925574213135736486742090927213573990253417421220409109153372751117228917451131680972590871259602814920223011928886563962332034915592858092346617681959062424089879818340216572971913010599100393217733647686064578126169533049566316840908186856703758161327259704830761578119985257692343081481294940268229263364435951709332052800700264154535093534176985870034892265468457048313511054365668568375251189116329951134341371940612948523152426511882407843550658622241941236620695924487272944609480680364070084335105719302691069080770372642546887853457788066812209396270205395707596613732136511683992252796617979268101270578601861317602010578480566122168281734832712556979631191011040817034070403235973996970522881768544795810588741995883071389444411191197207789683639224252425608619931397466921354664703891127569400024721825821648338579763245613568162974003690212842734693963937288979397330158633492116393845021451618223168127832436603869912262220429250750369214555161158728625636714408761892225765472084416373526120968200332694526491389874182696483768958365335322995437187951830274492887157033691089784770295365415933271424341485740578344112115703183102943546459209959922231423955111202540915323701730750751756124911906118658147385270646786298033543435444115989957032583291014212125602197524713105207603558070119484767343433750223499592854815765876576514061339126228851308504447592555686604348208522643803590771572383294376668241575861728327772216432394626526293891632987042231531058970487951209180490025301139543534745793475561170563794823030528802825995385889326386593097612680779924995056370789188419926350754403846397077447402488628254206280106357626296077527047195776515246051926957359078540373958678411516045979658256322006028333767022631135608550478148551624707281676216384717885621652142290005381436971062963598801831212870207426862955119550131200932668602219638448242985756400736094286850403240912294525589798143713638386937723123540860253780227052944619230815485021136445673985350260586493559549662266243792588785541540110650901883231285132304807594045788685436280942798976431024885300924108528246642915384732311328036076729034811204720823109403250065700110665836911365898996848002168167061997058371383375564822861924067615818777966022555285933402002092531577273476903972164523774119131314160356925992105149866431086100776519772144783313836139484276293820741467230226027400487172341977588383180096814743393656513465803148260988599550391770938094475066804473820081992227214340593186914742374459964763967884725811324864657348707324069421455079998334846191544965874356558488830758031004911371686559158151009252665776998424922751137143621702379699138183092302056237538357986556471795600678615020049878629632122451518316449774976317635630390805845719179924297276321604826195655967451324081095156441862591995983908693281369332860739449976677184823168946069675262330903359747675607902904205579778276104847694415443895404954796298289112567070238668680254448115973376027675861380171578923425951229822905342341845730253304111496051975137839920323186899275836513857931699196268857099191122056236631314603187493834125464014945408474337388199516895481524141876327499773966046089196363914141927462795606880946144862533029438384640071111751425491412041729931967865942753796029389704341464933782082758364433670001537991984519079737522854794557322281996144284684599324117085080630435346444804628119635852492265048156921858980604767258763441540965642849352480603470336233766459545925349279023516204229537887510242391597152933382257340702138661874969815114623462370261251967915030589703356744050436800966548971398710058539830207675588363485849545214920639378842966163457708188550276023036080361781462022556887810449922498458504166136593255491420629615667011089573735557274869227787729961472740614990171468353320907273564999246100091077893134304749198820459386481724902759970457796833814524934074752130606603888551490558915549405886659356516643884804163836888798299038797184250222418032915075247149935201200098637063266201230787120239043889602920438186415798528547134981850394268281071313793840338075135919414460258132863334558155217884574841950803777977223189452309869480988957433654824266468573511347327260460805945153158082338943695167228381041591432441740999262078539359980176545033752218897136489871453321990178222596619700693222561635631145589331776895251342987063742646665818932076385844201841842446797037229562741702246299761954497110245843524993075025078039448020868849377409559757868765833986476177136859244683515641487673118995171949222190401123509983729509044530992880393028067803442166487452759241222725736395473470990322661954412394319201860561404217711700847817551126348850763522082685349184074451882700699214579307977995428210815884575740001299613761684243104582710194798820369872882863617212792037673229366802700252367118731119932749885290854820548339360909819258352601915775844309209246428487160882263001457749556775696158854136373121567356030092737721296336099209547305731654065469074897264046457597315365934844514290835114462594995812088976957430437504960787140259625808369569883115966422836143640037028864122630836755213275341161165050091061670435758325703529163656546446005018478765767296396684838875208952219128767858490607467587298139996767088571379859733892363126052315948168935413235310941978580638243225551501581167078474903322879605997211004272637106707835863268095126774772404379668472110901545446884407917138817837011918208977111605715361008898332566394313069504015621715963728912107971669994963970481996858005345852984920129463620308773424083344394605934575720841607709376384319771423033077240186900488525296217696410696048761992266715061805281432159421754751654960687930069098039247935515591594763537343891335910243055268376534401620247619473218259448419769122744052776173300708931095279427474305050185654409673677664437690467799708566839979962210810237602781536275210447068617829784605502959366802491583816047956613526824027569120567987023540795648062665698328603299452256211861446188355315828716805865694516476006087563734839244662220602379570844035582917034635977222287326024861581161868129542412344842598827592326127278684219172573559643161891654900071738960016698550906515027210465334038743949462346708637691924207008951694205698831672772190637694677334582267846386413347909075486262080416583821162673309893596157901628559642049942793657040466703508664899267894425426546164857216624560590639637583689222358586004923936760265584599193343514143400451579619710302604549118515767405829157085858134928763190583578527711729705383459782280379231613903090432440941398948476216147537131329337013745095942824384812226990616987857862041359752744654306534488111795590226792953859000063760934574519220184694126622813627643784959518513349743752290096898494314239606951128365351538864046771561257366591505047775209432916956912024350631125165820595625546122429501068091310634837042804795523171303444651215591720884626672813348803409886683116800229158431363637381675698055965865428342014216322360746966201303658796807244521880284356174987576104462781043226427092085011233596697281140590227667821543210890498154665579581688707761344218871371308550664041281012838659052175964981223838396558904075535144100682913222200043277596532576245910191116868870109285434517678276818448151090318903774156075548892807492247268359907848052025917934488501498286241372404323570485681398362075681292050330447999685390835641525772108768412661940416348744524147254127124836169073134168156035581859754443311904059035056288466973504358841851704186977724116436620244834583455539314695983574406696566274929038671389316322879857163464815068236933853124849519951708705967910183119016216290007698587248165616142515709545998161000043627204350352656709362015800079862685113778471296985952396995612773993015742148525004286843934243211561266110994941618859170983761071376327136056174741013983675602082543231625708798860562523615161286904488536379821339472231532882103209515281802092814770102297099525481813742194508842526322818950183707486688470956742263376029303979089748429279865532584462360580070551424699985022657637387711104619932100066466613435333763251206135963076588058950909504623852684608557634313764781489325664193525301403511211271915669411030338313336319973971302516893671905837213669131223529297863921336052713705865103429416403439802383263689914238521109917456272664613637695897091019695129919748000999434314742364879443693830354568406198055873965821993269534293332212878035443321406824869101685482159829261198059664781498059768279105953530607083654142690487870705943574722778038315841993670789426952133513585610574846890040832121121014801461264956192292099050496625556037524023529722102824252806385420313181006581421293417324395645382547174564622621826591985302933627787170589734678482702333529367296274942053277838536421170187658848394787074872260240615744141805591104276908327960354883360013457594356933991291048800404901750244141670740986458246363209251089206066352491305028826878576633778317682167318997714827406895644389522416666920064039840823471631706488096428137826598171520573925805945532848646800108134270292689357356088373144642716634090703805496150268922835712265737997788599513374975290922411995052894660708843498171156634472546029496612077495483925161101489852645133321634472420989173887160800342439112667851302798095532436906627441512705844563626547893031524812778980416414325336695740532657725437234770613181270648477458802268608432433954797416972133833685769602075892271235743751550354191111975436330977766672400349356543666339540143462084035342973838403725880147893683899757938338626073894828427405237942574575867889664907694617013646496195713826369047625395689050904115358347488622534718990938308503602920652179792094054471809192719550153644749639872250407238619313732672406658868408567124023292475732986573773128144699909275427520582435538099974047445487295372821569449209726709267298839911027238892387655698667949966008391195537049281479945155009762390762330180754137697136709320705718179907458755319615671386500676485697211511608714670747792862297401743353308397017187750694136160844651738664687399073793169280044130169312959272047338537236620277032462329297441330981870443906367552524909310526006470535640301538127081230145145960205309433196149753459619473433871065484983098003310417723494904572990869303284157541507475332311485862260920378495713106907308216735465894549607085212240070021208474525161080229295860171890297005257870382530736179069265880372842764594090424187972856764189960265471587548616861768891279964750609869371814098392945920903389670841860189544470816856980726928645383447300967364168050928368400984018315159004217237227086401733162412895611385712629151646050702760465658863262876394645063446713647575875446780993079087716390162024419516789165132385362383170013089354677168873810527430377247635449129581890579639088403069976921639980983449870718801686958624271156017643687007953381458150050927566327584346577596425868169317895734917450688865341130044995496173308454526669604768828577989395572357297580968012590398773724084086311039914817563589442941020212666070210996065204077908270695418176157253918160402053085258349154015206204345595930739485135988781199717858119584394003154264354671964760141535737303714125557985248258962620582362094760825432321361523274600712265246474519011886145403826450859416232457128759565922007223058194102912598836565887961336661821355746889973884243816068523034201755813270417431537364651321460651790215673531224734756281517376150255769706560062849097124554304980748674262806949773818242256246045496939111942978625720456591136397544467457697556588421543315768704815884441070105713061896510531195569565806353896927847432958406216398132610930827923015401524302224726861217625708138846178554418211859676883166620798512032147911641994198106902489778026785292437230015979073951948825844837247720272112009853613729960643072664822307540682844191854814872957534050001354133511824240595908467957076034371956325584512979438357686923029402641230523458984377863512909818538502787968183110006823292635289635158866819517115123494478327618070730632909697571486014516109333463628440877180361597439567585286793542299022520839416344279708531218462109269088221386652339456760572043611293328597104789717666632550772892376550242362739159186174732266824049720051069808062952449316414978664737086019955419745713720975959950545884759562398299827395673846087304883657914410380460327497094262710705221234134933320548673994192521873732614709071703998888562042228828204697993620507242678526380152535395657421032806541385789657094244990449956155480030559970261038570502642045789393426753676286499670429178138186526199735576969452718793469023536794988353988041086367084154717054280366456803489867143905758737209638573943832827742023263259663937889118670552289745595701458104362705471893148225516295438356066168358139165258065607000918783058269183987185627726863257617776977803996847405010924948827358140992772400445502613975092676594538455535783895070276665933776907562123793836355676214268494443890361727170441373931033235795965966812496011972923849589378563725380950588737983066712488585040781492953658438361279511658069820587376728730914349590441075878133725843445761039284827966641935724966673724971346972364261479395309723751304814241837636458200044144620502686595803681353135613151618143063886805010394643070881608244916469713037030355588919121695120090359463888384836723033045690731953875073787909095158966786230085995035234226088529213141994726466768990079104117595171935207169406266965150401045037474682753924713728935342437769088930120918186872490660432268096045222668996600882336076802816715150691586521290291709648117446259513998761851083525204481158249340018809772450557075115151226694202957543233384858332652290424221289237533038914684882077998223832154019980598391087362440220195374150315198358616926007062427195559397543371524240282271766285183575385633911319449620239397269130418606561095158816341025935678540684555454262400747494652533308560006682118215961872406432644804747656238030558382576838449802091547347916916817607941951144359799672842897661473027469452396069631248331181694281586123807963107906155908099542262571529790191662495301508715544443828573516051063122445909798677351755409340969675448861778956513674731462859157924445786233621502838114306664820951996211817041826863138165052215691931739389565564175709036510775861776379617758387454727448880599893126989602557650746065096738983895998843593864314229584238034377069130008288415907630112131147593808652038521879918646189275946851265862761800743461713631151894620677605138378356859868582305982785008863910478230190578783441342833978559319567210806184617767721476967730631564819459614199552990792899653121677912369128612269517754155985180501324749958812025539237017183789424093390878196500242524346143021277755680194799440935008216944931583474728655472055360933760541153578377730962703670261472516229337166340507155649224527340939179106772102636787679416687654029898281322159587903336215945945426629826584840932824128896122283332624721202120161244595989574230006971169651549487884894598238249833029935705334818807869547534410437118659130245725311255708840863014936539314096201809517616468674868305754530997315922406329625623568367431156387172777423890440855644857228656753496910277369912018203618250627296166580414272242866575058956126345582054850058379734429225208482588872623550441423470237399365412490213539177915983495390546452900630972532096196828505515931367230666879507285909263323387045996169163393662799808171207424140445787109488500364309417699084450777992756309429310547384736143955059985275505093197111633433127233281043266359103925607198113339523909853919164518228857283110396726601319251715141596762259604493798346340705798797474083724585431859118033301855629497711758972255867022464078858772780928064244270114917812888176734965688341577901851368614768441853299008886056083482487847405586972538881502644459171723411990609591436950242769352539787635145785311413143554758422908898319241947359283725269563140935933878036408534820527984037257671089594372555780435163040822627451662110152049016960629928421722801498556782092690207118762434752086730490602526887523584644546984103413683524337221091834542508927051277871860277752510361574003945816625488099749808765765394892267430091501820587464844456491541770056234650517048902399639070314088274369394408270597347683893945722095296092972563893895719381534159165674577283160686655821592711311348622391525089700665459963631397039760646829983330024459578638077429776408633187318390721824074681585677174472368158066936360567825897240779385027325019488346241501572746126331335583740102040369970661219347157097596078894826174940909823402998242181930725268992734395342538152532543312484728461881750222075361901426766967780835495638165319517201051493445831988987558519107452451926902153449969402104013617492073733247331936474829048744898657819910147289007260933044733770046882837537191134620707187006638813999072758932305548755126116909314083766398463175895335739354622433251099207551048755707376592896709438778662921240611528218106707121760883285707106242511738755967604083535950936287590453231113701994826537473900331042731007503713373276648161198435966828469092337275426588513893554941632394433359458136199578995125322420614338435313436617871848455935155538274671134700275051592628923938572275720960136342762120910640327230543427690228063632266856594686951281447670741625835313481023041652670715764528032653483492221555769153374423592817469750408089253390293319798864247149269246882684739001568961017341504691223354613821576071725020797940060602966581354359674533896816202912122213033238877069262492565930030285917397268430925917901615537368637750799011049988096952107061178114029964427696932206916690704954964648975738935637583940539239673060061125413237775576988451502186677516500841023058722600439706729228961233202167364899338789099750476560490725679115653240469119186187183106470703666254272297718062572092437753987781504999839868392697467731655104203492134370531857652477793546438107161178338146462116959578871431480835987885521901084274657168688271191450331467869391163005447255005568863693828472667168224759490047652835570415301283174549907619843322289407412481592396662279765213990348093612799172162739294427925890940138527666827785597784330929354862803346938568717163033037266689771440061105661376432049919168390198604468480752566470040417553388536822287760241494812709001548858509910812139665764741660220201319484755863494858179574744558443246571977592248379230216719989539414950880020168326881862269966597265651654674494932528494065872415719248985081369261967245579044578108490585754033950427385943637492058741327702703747545998819045925015622076050637519579030958428098144199630499541968007666755160961205288849330212151247268704680929406931189162391386702397376845753127508113237413261449339142233120952516687496586211176025093652048803380711442821522844292562601334965799262487763424091876321645067442334960558644524369879168884433488251239223045264458812986472492808028282407724577469348123629202571623245866526105682233147745029127763301558703238321110784410811901313176612563690671928683215664703207393796568078715484258846848150905489221781997624615732388228377181367968824218278786529271285018144308335020031031802288055999203342855373156607859505359983521600176312394232326965235118179832397698026956734459357327335664178854705930458263411944329934590554778177932140664862674567282970403748074580720162778915096947034170969406134037963517926868203152526009365097493470742343898214983658410633625694981663274682649082710731755141043381179875887376634239811770564398952371078763710698112215342134145961463870995741068362327000974542635119688312501063374690921011579392671822255536154058947878890199531177208143267365823319068908675396508119975203300110073000018500547420403427212111111667426185392073262303485725425999485419657946902548022299186458008375143391466252751130912653304610347292130277970228316395073433520679128262332895946324092357533631895241878117799814746032189697097165114850575216910564559307854733922304787709507214748786269144156115394236826460758355059207310140132473381839653274119277713151213177062949661340555910481437190704972513567744329954425540114152473204795420960796165785458124038282466099609931021197135117566235418706457458404653588174921622969984647431013065862099455043600873073005613258789576257062974861615469456237827049765443756932247115424445275075700067153462573068222395461291521749020289701385483597038835460784681741772638006594917184105218517244985374651253169428566044635025243949048679861692041698108191344757570706908595591809218663576441471450575872215478833848334817546648730536358149409994233709072598108642960041076706947373304194373572826498317957281806205769713181031628747575730679643605370584406790906861966310200160036708475859858143762624828425729506204783615880260696245476044935379960108742717446676228410268673303473723240411405311961731114219516811786061891587274720173113838775844352682650881332802426593984847370951079729102087012688949280897026695140127020673069865074427703167415505081579144660408834093822143274940696247295916303363066051727679616128050787964406981141534708814404920597053466435417336427931064112964591789090090506667115684473072185407464496036078411304881299644400503109774757572121854465703941334369669308696286876294335238083266084936017571248591820292521085818458519744388451592002749701276873518809818571482324776968472644353991628842940602712846848540488258234290729459478571433724374588363910509623587185516121274953066343778510882744548671684716825756165278165189735150453467805003191595861822896826765463545963649095104631991501996386134192452739195314154342171997403647805275294721982808875724509083541031343362170724973919294950653723341517796875562735953278149330399088255284006501905043744222645447350683494738723841973283092806433843977292875976224290341064067082057774641807649182421474322271746636401453222898416721036489607681333935767103912707184376689479816269000704249851733864590979532679178561450240847999678082465123285723227237077487043660102229940032579115588107873406855034839895152192094505689067271481774700215713276525702341139082596270134380784813309339469768009233160492876324507052240708586763255099045788426004926167232401506763976225629343765562433139957083031053981167484326825335253672543636200491368268359849231658339836116769343569993247947964857287413980237155453068358828097063780784431230892927726872009961372985360390557236146939974091664271921147903122061894650953163986654219640052163015183456403672443852830151877367540182411497132972868015052090282008285790690634792052904200310558594881895956057486166635340965657657269095222023625222808001687184052635309535082741318548124011454647105621731376768055991821856323726374199362723740418122628526304950011618820776228198192797009694962456336771387253387929740122044887493770119489662612078605265525733239857413466949143088379461025824450220445159666610260164963410994836903133334513628636316008793216855355397052369002975987521430221178700541461363047552816770905189842155000286083400300982877720400367893466733743076462374834142039576286292775585256511154145538721361586868740377916422523395491370532612653966042584797949296199141226752281934689125895419734718844545240946045949536481944593591443093986791821445258486370484208557898538506194224480962224039573321029079032387151899762990199484928232804064030466638137720475394623610406953327377377854381806440452474267390608537675799559543486767356094444992135312285162992906288924101920394250684153533141961605162607309858283935211837451855246666933293869243487098785376992970560959046546141830681480729942723595508292763968400179158564001812540098347806332123485029278140306301891576908699926215317291944194185689045797602341728691827655745063338498766116668703995647923102671876828568957506100690540558616784647640488906864313811389969977302437259078474723473588076032216218946495857309160478148472386703087784984045593989678635842907318085386883714039244303404620801222672882401887099882611109725198140190411785746938445684834097158252373764817547898117634065850598319016773003910422813420430669241486048639859582169716871151416821427658985601619038354843568810580860957559755059327890403603206497151430255647091225141073793849173891239890859922779838234937471499079260760343350747063428819995705225327198488706578289512961094485492986136965752126676313275853747646876457439286181310860347006287763069235692799059967265294420009512596550728398838547742214636410836028502960579174857033524142104078268314303834036748295356094028344112575211015098347078534926904543879924546351529135738372994270905837098862211966943122689579369745338488592811271782235892022816296082821881342524586657118566908517116504914043405162330079164171732414358617631647981828443532533209373383527946392923791421794144944718772391999655644542452802525365639413965803965833154869323742606262750961084401043877866007387063294342494222044870743031148027584140036521468858004240830481960650142893872004688469094252017375202314330532399870681653784027821773823543194020647975134889557619664399201035444379000320227136744654907601477448346115255764907196113134086021237522872760372107790779687193419748382895572236211643041768385799298718817976443672868871614845773513129698238311789991926238253756346506047467634596910768430500755260157184108081054696684058876132749639397100387563687013273798062487395222894014118699203026721331357879271404328708116987921513528053116852871937018419426375290260928404368984538172535285736107040190460586731893735869333411732193697517687764406347259821820427272280933768386550719029260923457307125489345472775359274379367318086177436057563351487651647539709409743178331854432842241473884297262271569086454718735099862053601439306172089948414862341443927250906530705832876086880146394350507295693149849376197916963549714396118019932240120012064948406860666735527288475069389556482957255614406347902809326933188960284965063519852991341498900876279278095111564422664667127657454364030231029569857489102310613098495819978351951646358670168647849210202967240247471924678113296999635833885818675153107470775020138997260155781831155603518155082957158475913815251155562134767682279778462525574396560396512729018415627068440164981845209872747892468285143339140796743344189151972599465508827855288199548285300766261913266689025810758096491488258819884263672731476310686050162088110017719241028579473906347069831440662685752622104383217441032649399704101762826352625670656908291915878681050047707773046748612851820000804408623447652315618591447753699458885628210886299796920855984353523906608723770943179781876647326106075951527096998471361052858547335680982174128884268106524003200662654446591280176321393619988647700034386996315948479949663965449470029137806874798226371182151912638261624311932166325129415288278058427639485411284474211619006025675100363622510517309527575407860258995476278846372866202208522080173571323946808382541056367475317628307393994380514784680424251794755561834913351080788188037902703813947975342409094770194198049586321672169962707962953835365484717083318487985276210692331567098466461960524397616650645859561090209343393439170540292292079417701220034488763124601835624695299124593512890738079336566817463438103583950909424503893243314201789342455614784825476260565337858184084529685966955581707855933506247749053450109192035934131561369787245457768722447922333018296070845025863765088027387473354955061007919487400355200768233965628458006189285987717799231379625776274076739862814971224298550775804781364370793535142098531519175560889970050653845311004316776749417185859934082287617799687317711213404608381965456014890521123969911904214352496115936302812242016079160767249856291216192418931348250532383224342411200197305488121102171274574904029806070697699225382283182223747901094081369294419386588316005866047917131525425098871928112898763274305941294404683642027089513014623690670698590305037913182596952546147320370142086028714575347315217166423984482380072115148401771426427776681338318202464895652431265858105336287495474994656536204102840196440755578707756329911946020063538554446950094168888159126081557277487129589325303231402483027286596966495341387187220675144334563201865987823574530459228726713444630157057086319490186437672774140730965955320353827360641908639362870827110472946013771250228413989354903444205119446333175675916117598323199064940677886336635902276770246765077741110679789373414185748131465338130278570180978636120252545015923054286391417019195845135102253857934319356870681296999080816445050618759405386113693830805469505854629079062558776088850725692273287831822596917559563133719607291983614124081024421335102757379291731060670042741223588537283657595344686009574482790087526680391080449035102848739628707076261543489498265254985488718142457242059139418292816869219237617097034113574731950728080497676426375366268972648275270585855236892806209771345791959476909024234346037643478265207477236101386725584136503984943300790017723234662831886226861603321250200553912574551301380137870851110204574498920971659033615355907350011449562370732724306626320145514357460084341990345676160786313396348340700081061939880703734895527189802074878956909190505824279465226249103971871479165668378833114092732259642094621710680480800194762777176657286514250955614476263612773259105172977988048175683880007272985816197926673524843585574230325706076244049704077025100697496804786248885181753373100145289871900995079092231022072113275181993962863472308536904112159491172404971538206247088333542622867787744356046101397886402417280108079460663634657556249262208587456584556245652732467963716601267028039553868304759529248683052524954796117857796555938918471086174790349482051132541645879503352821535726373981909639955513731682534296977165107107067438755595208703143169957353944180248772288771218644322756914401164567285440345822872144244786854555842132515387048290622791778888883345436163565933932608348856102494582574194807899773661543599598473175660132470626051263180790064920352894143682084236819770364055119949610692044355927408369132162733915739099400829991960747252257398797525936799470279596555561218445910286508101352757867059487529039716111203310439124283999093780189319039489760266107022218075411429898007749611318231687005227462999180543462770301234982206019437362094497571685564912321061451751883455367742622424268205656199161108917074320005193610470470771482011670080834963906513974734181015664304753963003790387947399987756818116130770323184699904560307476377013763646937858242818955280071305265875594808146179727784407789821147045254255980607224680539272882076406154097067159675626375995423485145052957399963733210828046108685296321535833513843644829958059037535023459674447244418381681565237583062939889190510063506732537446026636985612777812190867692663776558001070670471681525867386449916638386123445345745563982476130904743699445503249975441488745669858726885933003385007455401073632735155550476227655410854566605368260085358678127467822248942197371934674936208145027035072177371942544825790625118407595727301734980012223303622738293245504760420639384065196669252735907885627133307548498379658983702121938482592035617409653301827461600745981517100637685649971320963149656218992336310253352392850306597711367956944960183229503592566664662934761241167174412912266974334234213317465684725264524766034281658645589913038241867853292317064585175933764732954350500662099998287107866894724302512456739838688366741049692927598223448393260673186534509940083796945891200785743250109107912362121297076396385533418536919196284580058491350310033127796569710014744615567466610742404868003751963388848099348764668077595832321996140659772070278030176558233112073035682963756041550963586769654065457269304080692451491973061425816979860447256226733266087295530663995199808222788481341195353489585084116475004158604899344235338254265466660581047969424499007916165591786453765586972189097853692807376126743479530281596639601838296740804444430442591682514286760933083876867470549260155505701078117123120611890619999235669635848630049890373157348365278731015453023693193155857219642459683502028198310609168288975542799717966628966060864165714799369948733615979821074878667411082915921553061515146978927792317762912316444222043227836229362985142470338907522043713611941501443066213970227101155875345661771839329980663241285683316927839343615065956106371940333038944294340359025184495620136916411642545369113665689850101371899285195431949313078342108937048929694410320569661838145942797425248261107938022644166684557918596536280174581669542152116862897655722163312313196797565133353680640140608010467261754369643024519788475558442274907524303563217858580875508584434715912596137594431095692886807329548010380701511498454964646338061583334487464296320785220234121263112834811298798068850250148766040531814505519767844928930825355630831301699035181315639569123741967519298865943572901605189465132354535184733303270494764616042755466992081019669434208803720371277052578824886025246008146692180354533925263702014255184108693796062519470726972721669619322281569751814660515661838921336136540863243997208588530436575137638482906045491349714591733293480987428790631425037181231178377960048889673840972355881128800963696847847782120926287633675519637980274640666401665287353345530759417388089422320979286778218481747126598034557426015005010126570213811966455992120799222770294192165739410582664939563270199262189833265752757624284148544198592704195785740830588208286063525371488100445307495139887383181115192897199932309856950978182626564200773877898400850279251080285771917064392637299354506707406162436324293090171701548763901874325593731276765262363693592916014339805446447564274994962159396646068677751175122170923755995075073380572699295893595815089139069054839862648572974201296116870137663774869905007561939613674232715852044351665611062032881854623006797026318995683487973185309601738236337077556415577850458978153271334336909125358718708399594856802502452971912141451780938074247807909546452254945662573268670238445740718229544072159179100413030953742477881625873632875712451534730203969031291812356831504068601884150933646915908157140628761819458007024295613371304035723116354951170755924776432245059555977692357126370046859497504389939030362210804715725820777344054988522950021682003589091094901480094110909543257544345260645483398391905815310503673776446148900726714527079528839742469042035042473986840934380940388527094805787670935605528663757284826231164351167103875495119920422494266669305205859371728957610143106029764800768344377304087133183553765419946933895153261171706954582002285896699360447196870498216911218682184256707592944874657375043691082418030054397735338498210275287424248873841052742977858844673203122440821026353850091443574638458533506300740076374079329142051345028434851653201123098242348319578217206855023298667711612225529567132724705033409840393390670452605220211721881192981573192748804902019815262423532582601849449886249578854610880549484397225068558755351509780582404100553724464144892723085458455752447267424471024398087077224192944338274914265332778604442554222474793969517582389006323025973135938348401639858725540706693142530879217826108251651654260605011711930030196689650048369906994285934501477424820440683527571259330129482964857318800927709697738882511494445251307820912900626849516911199148892572395401016728517389265781477786320276255610852440005371114047379246149183434421625512447224598916642107632484464527255337076933806385234320896829858077985381993685371471849620929392672033978386896341035540232757427927096437413621963044325917485646987288708241407484128074981463325380930436192519642836120503761405913080321915606584287086167276985922486689384012038348145051220043682388132590238218090742045472258510509661192909821824868122327494417152698118265367906043386663049136803932974913564388277935503386315427530383298809757774161562890659333838467769090244823313010803151677324978234897501312402775974301237487385220663301911258248414193189361137576826398159888136703440969296669378008787200646786843442722718839466748417278996796733029717376633710092085530729379470129723038591149963042562174070651878286314127263007688186502705758419132544555904982295460226020900764631523508972608494425652265427265073801701514636062023771937012991099643280831253683355998342530435645920768882327110160303623044435578093224869260913098375926938961258201426564654439263559582503989185875997366279388250022472190132038341743160672432726522103495217961741936321399394380657719621475695017995844175772119826012561193183664884048888831748573517572593683499847675135141158495613068650156798662142634512034299401785378462331057090445419022992581015613296040097535490424203196445521629699820216318416487231649368528047432478911865146019054884034718749067037866937844937302728043633297408606783530711496081066479573648323831459047881087709807390846912237785442972021380493549391527712848087912970742490970887409433474258992951629524502977764424168393566911688380124508723656235493453139618987659758387450271061090527106138022412790806380723371921158940761662089451396329470303057208746283224618991323180606521658106513554867590844224991925819985517078781855012719611768220469998253467492435327070539395440606777387731699196094408336376841329401999941249862194305239244867024033677676901577127502937755588645859595419566769793365961168231862718287607917533807304776308988923246269527429927210216743591290027207361920756863685839113005107109517711045838430194200424330130147126217857523960718871451097621551193939225383098293719945655789943222582749956306818692773712750313144736042725606039478584156946905137689884512983642423217550482385467967912182983323462476891065541931181821021032967349759034022123222395438055358260834717045162618275839547536231594866466283170694896688562678540814520865657137847338840969483790606075164397837218582292131745076900973307174543232953334672025544516708912153794875421881654844632005166273196241043381428555068872805057227425184845736826513644469159240797222607115291159464395332817836578572451246215704161518763429978267950210944158705345984723778028681433903141040272652299539413445415251774248809225951781610785768980147938876966733298274958475217275085995428380607700564491387181655919978189746458809678877645744270889976839514544998224496203506066592321542538601176621978167326256109681785637698777091527685380859941849820254356376515732879194147735983085239735613788149191741140891438147463937542748082841659014454017224137640035365497529492854214512413640895246995430569756599692068127903558150752724536456306142442606782187581920744161610007079942459931887558621684059204989565778958167524599774811487086847445406658168707645212879986790784486461598907327146025178960654868493673244079824382998429921664939369540560130493082816011411151652110883482057648828234868640898208788134873347585653920422309522497671911391457560061651013163276998331615736704594380271159523705017706332923260873038611673517591744059471682643529031808438196576714326856175647898736552318559040865346928963653102133182682165222489239695034625262688470892570959299706613996117559594640103882582112051025695789025415609522968370339249956730810516339510852639785271821606678961033812511837871943628403297947213496890636464359345432231235392813745179849743813308531503866539638231772472209915954169499832548210473395779259328259210080039262786980264632846372000701804686553888279413807348641070184294321564408126072881276807931599040024044767247017933156475202196360872639786978597696966248717341034440589208603688678681649858783356175478656246562083035991863280378119002700452407389999990971526424635422362959832628690311893629076616953712730053132848726688808470493422003528089713213181792793445624293069542184979815020485625946142884060537690718811653576446111906487341433699772372289968220349805759782337791795704949547398880910982103078103891800515404980148137262096110977619760621492603710270895483803404558194163199231708100506573630042374408545142330517031912419161424853837255372768044389280754849692630979916701491651287240993783091372837001424385509855199913712950321167580657491467211072909762571523169125410289002640017987014986206321913545389858451064590381042663289484563550369399755859290316716768283808096467639642798525820955385169583661523267527426736600081617670064496597612533477838228735310053628314163659589594668542530430497709674459200780023259785411009403516578319160344447112988708048261032085239298855586925087948144836803094398167719414259271165108540630881241731165403301901888728820398096448129832018702980725353851493563295927675790027983986294419621132244587924761913410282220902621757521861761219141986980012649947707631626960998761953718243506349992139901943923302386623846231718501562426519791658636876374282232458820002393831488567273635229724453217506091405661335953057766497071765326763788526260498653937162843520336561330408126058137098176082160527550804664393287038755054138734946122999010920678199329730171540740920930513984307968878552147114189599507802150160755331609207442849976656655464020385430526273237346956736327139031606756602873033642194897153631161987770689421659696948580608357595113049476030906411139542628166721364170332495264826224845042732581379369941542494579911868450401009407690087400305412260854434066324056559447649643093672006491557875125897539239471040448376251404334108726443399546274940582389878178600281014788201386307662247915505781523946620112595117413030121203752882173598914782116255100830985621038604958337427182048240342467779373363844360493345607882768615586722626202587361122177424569597205446857521228135219434059731597548258551130830413834548082684878324615284041533189165592542153228837239196772315814298514603792718195472656089216986062266434472451568557097973356724161664369267989300185462141749995587884197916884312539910272871159319438689004325592380432401421619427766523014673671454844924812522888417793632168247483004817970383292028384647420536885349386392675847300289544595139186438507116008421915763693575298289968812299702444988590058125190030876356549733056723721688452639302521822209204035960183194869951773141174956620903853481773585833861663611837440905329079758982695117885739794889566835999950092273424672571777787904174237118869247004403604330439945423913738683218807666153392105847424574325033482187508664416903900701050709128474022709812610829594264141531369241176453839118585737457241450460746616722827468738394361877883003157809300597542640374628601302194154598923349962112068982774878151540916968557058878773905655972833436766459055258199834489496176368851847333481418946322914185589191340778604909958776618044074120057982329245577847982193731405020798064908819448344286629658021733918655489548402855144045011364158468149847585572752892228116292270775004764949704165552161619445946269802999969840584624194443787986560293984336448026611797483375292701263858492299616559728711626948640321444259570175570885332322429086322480620289326114649633274837409029594622089356223542293510665435353740877492727711902725363282919309936236947078535520798226438225420113020733576607413332794869178875569891355558403809459770098833682599185440559289468094885066844312368050660513740830950399851278226302275710755007461601647398083070251622719275580764425340954244750777895579939683516260917034111584473690114979530790053936496354047584214665845147392089506608206272627762493937199621558690094868488587694000227212637663102508598164219830889179138895160248868655407642935561973635662957266190976320241699548255879224974970749597822845817621405262223815069299617481752680204965974127932041797427224597701049505203810025499718382957044526460291538142352666740818201858853647877680831422961619264004833714662728462961362341618624482738783837492725198590656960661221568180599939539344335555758599411160241114853316151060782293158134553211433613526511157654467978981752168839128984936413453491803563119552433794588277540405088156785027205383786846651524096821617010539314415426653763783948261394372866905562066775991458990143661124061988207749794192212471333537618651300751213712366766714457532973460434587785561612030939628697775872529062067145063839050992161101556395022429638069343421705545298218573541200009436135100057980581271474960740223274763595656023559160739338806284458590030799296409574767173312919336196140460421394685118928765628448277773930301261946606858688166228098184412932912443275637377529919646142524632359321248336001202180043300755483342471646582470422559819593309494875318607632517237237011136866474069355275003909074636346881701758361823699843355674684983342033516215237713334588946206212601133477623774815521876463738283054847566704934486321116488067137628606287974778874496841827340790517396628078471916496091163504813415714595362767911689207853507252076279441528704486772023044388492269137153626023960706961401303573863836130044927838428971773577176575487845028397091826872006233458179978572683987467887802356284888780657137095981525081773183822447985404014391791468110387076312697243594047558408838651045709797585369630428216636941066829190929763817851049638859797721733130375414283272505471692936231396053256533399572716989503231957218177339434205129626285230202348445382856586776504659959047578088787538897257734444136673656809422663069702066504667859324652823545936360814815263788481556630462931931517482722593834365815426055893790586654939563102418237292448994305733819173456587469912560693981226858351476294460571591353160487331264774882490731570254624975036687565875323780993146728824851618944684834326736967004104801344376257779235140258640707246820367494903543654487215988034199690236596787084623037838644048184596258452413476206147223328269464828449313633166489177679439482715999583873724033935435874782975698292837497297380250465525778645034953875218113583088426424394626780711222602880821676507838520358803385290368818387208280576655111153424659820576448437937341346789641879466467483423043550665008246697841747718767615153840367085263624064498835548482100238502348988637559630790830629251278421746553833601302321308060071893948385031580832829797360674860153618569811476148804091139132150770400224758154218723185416034872150509080698996018915225278199294872243936182678253833912467455749620044420110638466604609619876150939318203974283816519197778622150175309030034540630548923863605752855919901142665734750284630800235882035709502132054648379694137692194988708153628045167504573136393912993007673313153074217511572221791669780311803191869710668832670668812178787141838033861112025590537923259373509758036619128234699655897420498254096990135194455934345319092181587934929427584414590929267319344236233576035027071046565882150344215499991579278096057982946686937561745439849991522560231320007031456211462655988700322343628898026650888769120546531895589439970764641010307064561202412221189908124762535400762256311547682377560928306986946025214551582238086588085767214137525417486823331792733241266460636711308886303614918224198901404161828202288037382991078530751779929065791027818460541674794264279927209683988523360403300102072661808941081222491813680332243160792082672718019229486777543646845673475033474392601784645826012541716950446821271467810155814720171237747125706500986648833856961946962701191568354389644722056170779715222939241746726611064575246582170820434809362329009706693700323616752726058467978337344047540547840525514154369909604957392056388093960078621792168262465912635941121786696157006714435248076594701774018258184063882330115742517099162226555475070211363907954414950503783268104943708878242240492707188205156369978622765557536877381209449873045560926743923122417691368220939898218532840181945338439905945500136794247246284752657361082928608063126407497192726731969612201739073765403756849073988260002295495918316964813322035122998136566750297753989952225615627437884239884761892742881546037350817279547980053362882946960927078758842740183929721266877464794682080691102783004641030537008238335706781516371352585264167955690219444298220137715887417152018823650227943417089112267549961606961930277322897457604187657403979424142072403049544598660447140369781432992370765096965805686319473192973444380902429908888257381753527938469600137668471190195282969472844812285022471489569006255097832080813109231338289160100874781978555717300010700897231317652423381856799800504347377617548615184081107583545690099885676312850177614725495830918976523975491088179273106358970698453369112251806055960228769575104912611656406969562030719124961691299918563388117373818210364712909047551268284535541209335928784127176855444927623092085181768429714261780389507139380521320873431761822524142042529934881829068661864378234006799809971704407593508074248505177932615803845637488210639159552566311507740557900983468055798324513880822163980450724427118171614581146024907630625043613810361895760245912638209074611357714636339089236258242908941187626676566000817813923178288262332315640302403938778687040882125229144340751549611598036649624770259737050298612198383852359019984901736206949724760299453902103946193380259995372613366304857873163703338445478541703976225112239022681888466478051975539209901096390016799291700091882599907383608742354754198950089395758347985258080899986992082468762450095656354528334334899333478679011660935598886734369629240948329959551953450225314887965937046708124608063785152255801424232208526452145303972238809820057517703026637394203138552633310883589779334656566804890968141395666429763614979324866501190043185353245195732581155540125948916270766821752975010439301016310511080426141637597118325662728075611141991620306802936018312351367692406239631822814237852608627386804306416435925790289960189193245595438989630221962720467858258041391486178955377709947470455251044901701054533369396020479037226256174752666770076709517052794492369994346946036333699173330648642518152951642844455181831769666817878592016586068067199521419732322828420796173564048930157836090157158423196147338376722067189670275740778187559863603713077574455022622001501068227432844704196602572225450377106962462818031384396128194665319127752937488489938587666628655790026299068881745214155474291320481485452708005770938347880150336931147559348383566291966082515290809495985684240078351952489689372020028853239842273220136185299713352277526123311521125395123718301549842228075321512719189328584740104818515442053851590961293684912781241938888641602991776036851279890536517737104607655763643848250881817981341364122806052508657145655529035985949974993989148181393192166861576802874269621862204998694988667066721118337311824247496133708591497227700274244117700862620640873740958099029412012064913045180362125447417823781904896485634992553204025932560943107575777725589352091679519375166373427145513776793918339472575663443010299139885126919268172110693376722375104073219249962740663636202671257305052244061001145473029330951834223033672377943718824380507589121133641952704764161833979516900855933028881184767490888982980158956004967319433440105347751590504397753959506257964858714990810076327695222969836787439036470323107996751136202443963765737168646792172063040478191619652964083381156844609363685464629058147329938712174425224073377844997050197598596298562417097934165385497857473155946794385200127411326901041459345878514468592685227819533206557507518511768518205186082971492973472646690650616712194219570508025663778681798509456696462128234372354041743393908220834467383847429531746640556767502939530127233894516606587540515252679681444150249471944104141377300148142412339448377786066223039257200799875443582933212640992551245604816352179418544830832004933306395240993044558077228407561513948537450519772406423006027397235053740352200126129921417657287579340645497881896235253899340629882449968585142644233060715323153669040743192606613663157428172611648142330752516116780458044770574347214076550558673787798177542339359147387893878243943179830175978741397770389698664992130582684674129649645422640416985434855429238420534846719086231738360436724109356811492226629691591228553958495686272944299054786883742180541979484190034366824471843891584926299147722986539215717287986968378903926171958525489251856100945455309808292635998086113691216761123825518129083627079405191155412916239167523057172617155738296454940908536303341931861402728736895224019670641026478784062929175186007528993599869291254170609566930701313954371534607990178190847205288620206076733120725026210581249620808366372304063243543250428776083310451940926824550684580642929640150772341166382932209346215312548946388874529291922766756824089979863352139249016950477966886361373239887304654266044284705618327048456916860817151556243265472190788436068658543770834394162275695707578300041303258564577052469495167570417534244413755885785135431584943385646003140974290937163415704964269697800639240747834245940887365991186918051375867089281013896414639053602743980217954447720438936000616329041372066066513717307387545675994846294057920569975241426981262775723555465827399811222212304518917528467583827372596444881933276266340560469588104938047309145708642255759814102383569900036045741957767525092211542418871346632782970507427696250680168880596423389884902860923351851449885264488376692696684463887596037509989278171570799506137158706970530539256962954424509773297646044456142098656313948135985734022311011463349406397832322819922299080166766494341502750538289193850688431041446904440044340358483255330345660257098362166541697483261023104910483995653176279182950073876417938300540848479451101699294206497011252529720390235945533714173647007003079620983593143934246571995674891450827500631517151978844952988913044041854047489625139486666175071786750224338337842609285367878284787923644762381058164068939120309102266787800887123252119305942592227564604833371011954113986327481662945972182481349080519442548265242995250116478336545039055721613994928657579909531683386438591543947068407170779691215648573123150510090578552113760106462169735007933487940265597565217515602364834172854336141636936757855317241383419781168410042137580024258971604854255021351657870109665331227095189956738536288050324950173320649492867975334141320716180191780507476537699652124584892738580791092197492848611806643275948096482957912703181487966237692807144732350760072482441003130809196869309429252499191137449046698995861727238438471693330066478006529338982398452399495012839951256125814697052329364484064954671920954978924740107655005946452300539897309284978742607454377234376754272997139583887950321605463287420860910094659983877124139080395632084053151131024495347967492476712544196541122492608964989010132544216350410549381262860468315202063894188872253625064502528455348714258764405799771902357426944953795653343863361895109227647740323958507345531046912698860455981129679098545749805061883498909693004031316164173382619423122607034136441375310188493193441484291263865997157633882681207924932254161595620111488294456848161969155020600851095626713253019309242803207838784613244225760200786713536032991287530573291572308329270806108852116538089223845584433001236210182276859357979491433845124058603952571042960835696064293591405142787164109007257451720978474536581494980036758820495171995450752065063009729277607233802561853563151542191407824582436436165303731369531791105028283635499136891249696569835647746999247950992066567688241189231199430318072421822183862532233899659070076104598998432561430649492497117567415721540997176748563618568812943348073360182338392559925057545738567429361061828080662684539567028771877428686111696606102399277162695967202775783263187631961754827897391125673400420307344458965553597462988831912504587259710386430595655462510928056051960443583038314248633069019519759480404448133153426203309043337967795432130159632321346200918157222980444372938539302301129180554092143388475900751174163963181383550661867027676803814006178459908308583002851701604742722582825915457433052965971632249732900788542265676132514560394806948628222706775774225636505770455402907608820709361875472486930806948715999406540180505640988557559749533930959612745065312764525380078054735722663781629137642379069778012780433009060368511086867272418379328259655475395492659196698400884562428390667077708550198798161072030800984559982735215131090136013723679392406225082239248362644872670625062866688744634644854285825180992263647839941768822807754056029597974230891744158084040160290228081069196929326388127286685519982809399065069514183900378213159301759651769520343472710790410895613005533316517996828618695408256054793396749939586805791349145020488005398042700806222416834702541759554387137412885111460923014422415734574450300262360657570657316054194743486590991070617786130295665269382217946361790952348601741755369273430711517147276932543943633902961944548620653750651627492228908197212030827329046626151582870423455336651527926109778687507785550220427731008582752490024256932163473310663987610755127445218647408328853372605084659502966097551716922860059582880972258440772950335789747262456400781790580355067337261844381981799957322717435829256131483832802496287563043485311992701167638411397710121510355450616721528867079581522154901315887930733779678986128478573409876683402314162628850692571473989737393521605541316965110869414459400974055164461090651306351291512453664024106131435859885215941082736411815942610765027125487736033105952097908932196471737897298405551876508068864891324083278497504472205230541466227489606458721289134386469421084679739809942836585434471011490594729994507743400204531326964503627465089715431201428983852726449602134997073496568041322663691573044015811984644227109672911740845387621134682871687087754460678127507778131095264797756587288086832619180995450335716691145937747735622176031543447226873198891706768346137484942558706361122065392084062766436500842780205480189642559049160753514339697436643760213635835898976678403646043645398955747486039088411225887770825312532419221981192150448909941780146710273665385788436306379627859986146356850365079673814907602312167136655409651152125778809329017896037220930815861870542426980985550806374991941297140643210440461633600500293616216960265427968583091783849085696902819779705557018739149687812575707297219495096661216564334745935365326492430502524607486475063937316498654915154243645996352185529939752591874462527256265901078402435531217088552869366251741140701947444081389148077304634309253664300214244286835828527164913859944134409919585554875338944593737832579049884941974254067682156966571450983633497285174593340512163036996480407837438075414199363180063079230297072977583503634719737288711763079039609329616072485668221975953439688624151157595166809329088777141425846247838594787755233597291844232644763385408689867536521059712411189582801690456110515848523024285498133855039490470002726569649390140153049911909410580400269789136825487022970336513037960477810132079217413059020302558276901952842150809562264473542596763111805904498288303219052040442274746827994257269496925250564317508875328816715794521804628287322740510234445388301138735186383346377185384857161765970735928678913050924652946954945166188191716822116292740442041849091941843365738032874534075509264061945516313788304293491262214189192587038279188651615085487284862949785513524263204659690469980115493136797855736346745675625051022537177996607781498853908344827325688992020556233364237145769459764014384398752748601142841813693471463605648693676145578597689493495419715921990422772093588289133469891610747585421228462490066074097958322472398634448172589583926484247003116723842029543394705468145024011984387928658205239522963040393312093737292942116182610989724667214381551892444221603195147118068423580902431401830260637401691605203030663227805550218634610781297809319514314538159337531713301929976726476582814746000735187677054892427373649986496178666961991093791762633403158549773561824643630443413928065627600743471839049403880478445255567092251346844708831902830114861885799436540923601462131349974539320171682839189806089347601131470119769775037170217525558717210212664572198798553653422365681119253500043845686396033615992191021809788382842230823653167348468501298842072485486047408395420706608467274967374392441228422684279481516545436003394936109278253207149328903301110416721209115453763140161032925725254668534982145359751274217516847820209235165619764680233182851280550071428373846497185065104706432961468079609756128100866501320936427150296023090422806006274418859703859406903886278774628663602523764695837973925126161088235615918490706328871947222215887093604430724683314778004012140312642557810324568994505101199945724349328576644078853587228856028648604585493220247513347072392150028353964180945644837081563401217524374615882770922195794009311882194152336685365114476027436357265507449040546679517155912349046870234186948299801810901137625229211394053317109389791397115555611485986244724263391231707793457555808506549495796375501572039240361137529568269194019520128822104298205930126929278049018403603112909608586825987008239488547633892634889580639293684565502952247649768103204308288649921175626352986585749226950124553645919512663881253336786868720747532869198377564592896866600097638383715359555813945114225929859048389984137041161743911079108439262563284680587305745221098163863976061822238261092841583942890849954001947164569655789762653407410367586164278051567013008967042669676858227141079494805371650084251307081871026955094488609992116425767906220105680278418323755596495920013400721239978808236257489780831935807775643473449688441182963598325062655185343204778417686108431449446353428906352732347695738970787527849527137297237542601416174392668077422949601485366735944659845698017445204035314369710962155297324154566593770106543409216541880489760956673727559002834592895969054513061278051351123702130058366111079190933455711849434898044386116968218764782242907915797469659290681506637606909223341475993791033480564028107036396542899811070390952641277703436614819721956844235516798379983999760113747810159667206867427335443145223500739136261743023510294027868550344222418457467253691071781086864711772062739824269997256969071957418751877741722642806204816537171806095635232239283232104866187901685978923465940886654225119486940930097256595802474331224421269361347871588622350198248284533892743501534173404299247114265345039849346410773047017032586684059209868149635857421669582154893247044126736615223094548279338607262965205840724620036472221568553138610970619394507208685921142017915608418265729138513613559565556465748974312157091009308797220385420331726519761375384266157302965079602791691684797036150692739852894903345090287343243357359830929549412278738121250755422247698497658847085754620159431722673631823812866441285428544161608086716438525842800688243148070977156355250070469597876980511487697214656462200630598788406595388510391995043916473999408089177197452616749446373926617793560060096509832833267350970283051215359445008758272460707973154728924055995588035566816771631073984163129001185519545362705734418890262331984251880846982820657278198861723156782703568145060166853737807563567389792370746021173407172291101080834514697369159755120323304329481749687299075039489425720981207978499700836572209092555445964646995009317511523853649036672133973369332048672787132277566587959454331073389792892760716997907489058105888397933114839853912470321570694777647708145539697527060800161177555701639455672443180010189559123269136897899383715374974359672103643186651926485454359505892067222581339684741822074225302341038006234902640814731716231504039386689202219168520926747090078772010301496422549142655761293421014214166258545138116562177253601003870117533740786630542858911989064199908442489345067710266234756965065690589166842526308194285904133056598390370238091453733287362901533566473366793010724895677809539537428881318265215291254118625802717294999077476301686476611756366737551949120833308119795950603057161363183992495437212321245486384364230851649900920995491377264817333542591297334340269150183363039620852893816285851361333640521007165697087340587653884959064309534536831948408949424519369301171450155463263146363118829555271103505233881320956406176585301649182203338786059907122530471453919163007962221906538203152233007738856029037053284035645872732049693146035234597313863616784591345545794254699422322389652351552171580768660528312954895691318693730628133925204265348876916436983652621625055967135534004332023071948174807594884362613715852205412201292229609807656118259520876930861275714681101007137473642858709896458673662488449929537371543668362580964553204299459659800679290454294581373206464825709092758387343803021040283506090220479987888191006922085185758082560486912472781056230329291684836999556440850477666339645661461681699911830687255779235205221080332086202157947899034316837436369608418258866006818955020826230445556725414163715835673493391999894249794327518323156931460890130119531717977995875078177627518614017352404817241135522510293386293425130769333142500428109659842095088896555806905025635507536894492434646054607220733241180100587257797103477354456610092640110759818703907356881727689838476092243106571957885868734074417220682700096231181691927435785725501725048814012579393542086664157491092487034688997809559909614891811916677360806067429752712126960439184380237637951326450867170940528755285565640587787994887555157247427630145727265179634698156612026454877580291838842975984010336351251084653664235043825270341947964098104839960461521172146685069252356907523433178127814207268739088201929372932431904673753888965339690450606242265249755699136375214072266230734601041003257860730566191505966585751220197794682161317232433912639004040472641163739067763228914299393717422112687261274814477564903304611819175655278494549714063662479661085084980925923962418268996157272529107459889653302239194463324541904710568843141445175262675139976158526644120078801260956528578557061860139430867379517034272862202999956034133521375048279938187227740699755045020802992513448120788155744846306033742935882743956704564951329918532059826230259755986186154307137601447507499279517281849515726948749053304321452495473740640235810184367827720074828346464928495160567392672857346908842835506297874439020083033125631247901365554740338481522756587891169763199454364011239284977979537356096706167745295570688630893205799922256449120768239553137748970200337116821284491384783905876263840863691804265066812379053628369710309596887314566328326212320988737344466528078305302688559401342453558020474529258366332943301910754900162562649870246186309461309338214927895123961916863336443106555704872118262083355076882885920873856663860669259104844080980099757127321927965470535443311576617483287289459725477667940331741928334926542668442423305286846907011460868863916060227465820819558084066189969749357059567460239739076940821707700929034325154268251457207143251516116878159013270135953956709645193038171711811631035433756080243016616269088114617177643912973124969539074393235189331256043076597321927240691180891938288199700941006892086820962123627336149386393993491526511451858663749435110109879518934846161248336892697656697813827722413011612444498288767195383665197285422193722722988469958599742990604915971647396626545380870345407972663891599546941772196572597021950675585579265781518289902543305421470211569648886606493074578155250048733870413138458600064055099808656889502929893783129290231969333778949649139081547125031220019393996800654310949724829617348441941731838561731994762690472751988315241798037685516051427765638215480249759561277720928392932198145308964412256656462968256626929382339683358306238981858989823723291350236720680722377417289867511454890060171321770914001128906464564087745527126929050219268382642170349142650860429850618058470438422574987786700888527386957348261956430055256545037651673737185000527940767310580173144140644432031618563004281981996758123454734227848800143153672513500190311963229530788109591702720173154759255333882223075102974213647201995964479826129078631394012405163870503787479397616847658115171755836626117623293720361364317117289895871780203923124811475106151728306039700275596662855050047979207499599774835440100836386949593738028099802698137783896896897192614419469866479662565268855775318220893694773258059117015790959115843475916807249014417720565075331756952085157142382607596020676714285608633855481640812894977829269955826096875851400261908406205983921319992164210755726150249747678304755474789114065918748091115746664241815058087676453853763377875382163619017758737442760537406604952350618822181619602307950297748030250465818525983001298096436042342669378659619630734377409276190658009155447290524933686624276303029453905701765299080468991417174371412895941746253233690024448130794684443052926254041125222904135775205658474970413065219522812117047919495992249545946968722771306637389861643530272519738354567099267595643415317228656596541415108540684916813847497303228918086848808488884597663675535133449771689537097694334984999977049535191096415074068711467384370096811903456393118836956829720691412506477785837168450733405312978124440392632246211393216426974189811315190857761973063169887752831152288814958393143701694921357450805177736980364565371585871417479142684492383206697011093722751877391670351619014064491884400969057956500433799358608872604386630394355176542199135996790863688675264439757118370482025827482195526274910156000099920761414219166901985497539354427379790703181678607281918628947475465659690010745388675969244204380720944699717459517655494540644336015983206813720493009545585399676035414421062034722238860278286841322979464995434911112490941821781587858605347451286342624798385099301664300992693807014095322289118028162378941800392320384398814536336259481155513674571022455978255842475561637454909712446540949275522159752716099043001287403758760721445687571216241764991518801586394004899444705475260390785825798306686272258296318738053654098951445844132559338043313551627954452342620880959362937734759571483988854330356424578265111088759835506189982997568568468244091827523919634621773838777725498409451514293176598370696099626664685801134225217371624648418930520897442781255097740072042731251742433424552940338583381157539809026031055218304789573348229097736186371127945658453580265762052270796397845889674527735697197692182537074854718370001117853718302747393363576234999141364946510202581482594615981711705266840144044395981695240491951022622340918345578921209285643232705711687802115024327697049378502185418252816686590210907995180147037186563511936000521162077379259039789108883782265949264205852879419942724291562996230263887426123639816654795190287977046812583875453296639134961769153394037519245836440353403920325076549067943337068758517359526081448780383817994136387281798503859086628821736040531957379908665739557639206057186148683092293715152935062291668595819768792582294385008748066539822324047475127301833617096752516839625644800231442939652271618667161162027009317627228049118614538338484795974770146561999535125428780811390400058083882745405158983295750070327197861638317272389855562808523868345039655089501652198799073189239202238685648611644348328256455839534625688992320563012050051711606621299290212558288661911345948209054015878753351090382762335434848337770122257085803254688605421544917385090202856126760483690219076995157287151315931315961326846466307819536461060429437400801122046615669578623044915220940197574430935309283145628248894057794665217095555363689859975278738020043281135561809642865638204923431696558686237667596413282003360681314361866999619093043908099852989878850031409550515113726518874114890994739799735350828926192996539455532086522267716602307903858824887888671910250256405742030566390188657418208105232683524989625012641000798173405336419718549915442726445948029275049459202642744610672013956931052042617866233249866984458457806511794081399591138902871167963404126990648405608825946926854532296097867830740554390305439303922029423119127160709385809429683499737063127122563884344375980560410361116835507796970414632459643186862089426588638237686526885314975546061200333802240053034290476300461571192805577752796577340649331535613395141723810545467885204007398421093842413891309142603167866697604861872787705505539480390926826100314545865600671382833712929850079404970834303184418414965831865695827393030277458564964870279811757233530015263446528315684806410501261810435541554991619052892069898109940837982760292677663442488640375941635485518375599270725642717883282450971275376373738628472020824727561561815772603189608085898339193937964279057882420903073530111548776132838711972941503782383586766400456211373338539774679854094526972033601763489515779355884162107123498043402306965270985963710103508540580021002110314757890057636908860615408788595317807110768186674274826918270165508379065731190182428994340089096044633285714084881531574013390962670791115369455244974460164921463147076568593135249966372123023168728641815767511519722807263770343857045960579457919762654058863908897021603513179097997498112851967520370878456918752997727761683191858764174166462042299846737085463356288674529913653069020455413964591226151165415846179281582817124087525251558196111607048803416171585719242142838076388910717798209328120099461861656299912479813043148071057612006722385231915833919708518320065499605315965404653900607558792257361680457302292232101721918801198237950699201892270748625965635005559429336238521747519809972885896019801914327306576302491141864330092678488993232608355088139268457541987435943431635773993642335172534243323223223689353090377708649759434332296344609807907099924603569186015455133542359578910016073178545503214389254581912391800177320046834128391020851107218837075430550402406642310981756276289907852816656109566716675423115912089970752385770676954248381502371763715556069714712874191721282054433745712701822421620390449485978871177609979753060056812603725135495002174447430976233686788970515259448981906142653520213176111106642193248117090344661115765721520065938647769137142727736538628543915495518221215237114954325634575817816789704389273795467792403021380102511126419187203148720079527102965160743070306905577623379343257917030442270787211008026917347964448202074672770723485134965182093085214014229514348449012106701898765893800852026996776726112776913629859399294148078781925545145609611310824805996958867459394479408891501223637843989437294963184834796495194691052636616985795521720912027657975067419916424736965980171889734796035806587238690770936711912137400599958451947608512076723944639817956280751908824575956980060876823513729547501802905952492041778862523769567917511432868509537503995976870033934412745970033593043441489307396350050878230814409196651680316848657923266243567561350422814346734370384405582948037367846819493866549385056959454526272612570347344852415579582075708109008953996490037047324746862579248402058349443161241501598543273875847098639826182588730708151217256662479086856628110235518953587295204118032415145094405368252856230295189312672328591370965016855541174140970632032900976452145728470050170313624326447706024415003193820870329159226060450112907713467019400065201954890662067432797546898657160914926312444434688222895375849771042219298623919288688353687315236960231826257364946050132154567727835245904977865215652295905588041084435988603328120504300376805623203939968993876280121893999451264552424160446471898272093115312753537389644598966346578227308566950057344323860398936163462857687939804012415360545838781909033381330672336315714114208625001372367010368484698050377773307083323188901984631772237777856050518225792169911987184094871220009286908669119033085681568326622643329626494456604104961454675685253192156046642386801522428673652342629904922343822490188767493561670837940981326552054339867510242690433402616314402360091387072675073345470204319612621850494976500827567221673391987872791202462091612994044398416216225823223635917662985637793153098566243347725070822643911994790917293143810165780655328369296667797912800527586046143889837565420985029034314502042778369743166955961021543595982293866928655837992272233038994366880165295032993301905351100075111986295746616991192194422610179076256713594503835874252331974088454673672285210280732398781214177115520088469019964109548879112837887605818946211761082671943719027668104401930375404205955968724009029841877382475961956973334332041827251507809021761885479725420621423132425971870797497265802412258870444706728950433439119139047923597487693704540827821809294807191979194508804915614356024408869108104301740984887871211973205607846198307315677759931914717505328480411164107025497295641106303482373478412691058485485738832990362897932649944701975179361220812187936646311693461009781335042933664073304382171092278282345684531475626374140067552591537334443642982675430249821971617897528847353651596498189687856955482940145152027801839824641859002998290230525973147015089188484481921728352559370942104234640038886058374518052511310871302389430159354934005943895735929773134110592366102065448620184830859011318126459424232191336858025900271058238980230173769444009534614329840613192948089281209009867565513878321986792746815086714387056708203759302841251216072737400194967016095167158880302588800326920690634535772172811502713513514259627711846752797114057007548515495519571610361546896762345076898680665108626221323774990033620032723907816548801353357200576940135040577673962983687027671237473270927250677484790922655497718117010453510665236188235549446832966895061850130003218203761444745926380144218894473359254503076182596888749951421548174943626853668708957997045482089176060732927602238703966676274716879268755926299109648115056016468872595288957461243247505365040281643359225063605789840595382360545326790133006845526223801757593726147847904475103538024295211122902223729734036903257334632185094421996941558345390498044665726907319357533318045717998355435132926246628066291203758816069228492520218723331443793241402881014667477801596007166653764853599669494660226764236775574288017151800563141381674482128557889005238273303544317273848141828594170296763641749501751907169778185172725091026615932813363303541101702802698361179102097740181769171655903121800874555820675577487635963328001626371670255616572375177679046018470627993720820481457655802392479720970248581971505296348894483521885365704770111795401789415643599604558218111142071922840391072161896342276613698604932093032077021564972498850612949666718722906205718298597991103533463860444408957579949892744890839396152380413118132279944828999218748172202925710829930057312982995418277432457176836979867645735526574578235814642315718728482000639734615999920837641222576766018454291520439848495192109084578445818453759895278319029898526762399140087502853507314087647089935869420747684174032009908960832565843587019383551806923228004232627386322355452219756810403505630768787703244469830919558783020201899651132301896199872877779912795708047945345081630106750153510638711300314605033466570908564309031040966950270341818518095482645384572761566511783093000481388766645050825082962277743164452834574841716266165047084318701057528700411349930527679707507300554176402526551587939463842714521299034155908081485944850770639918296565380868743342874613344220154225651335827341678289258743808217967255940897355581153616394593803896468873686403884728831485613550357122235658600005060967734190020919704761563598341305999648362778665486115994568384932390537184374373790716412951734370938674691305237932172105289115084695320851241602876384192861814034885262788829512031099903985738335239335384220937532271510608280468882926334604672531859486591903303122903023847479208552823598533198570401017834175124702648789818510584251073663205332434915048673406753820964289296473084622936258285761542955667199492413887818433670416400809605216043038283127996587638232042122648238628744262487115454161115935099934103947035328175632739511387550169806875323885938070077685508035226933173916965296455080937141691947564805206619324517808684850001900138794592020459266460837336454363949211326754008043217653033623423680934690955572773967903539121188156193075332957700309181815660139162861512016664862639851462336122185003979115709964114851967502212257078423737845237941857618225520607286595043960318161187308149046176041044065818017441273555808426420529549935330527679418335920999885441074233394272852646221672095995715215283023745790393314047611333712253589605304957109741968256013623482882928098574540429429477736298419147300445358560794296969245974255296931153031155897573850878231149670961977617060848581317115025457099787367715666386359082516089082565026533443494068562912435374473062204720821545164981506242873217722297696645766231865440493703486582141274522904519127537066798510087195376054553553478511180984459626079172863793794746313741801155142522489086302814451695105120977482328628414013463931968432452633689852675183588654051129457093329439444111170604799288653440247673323065297339662351716183034565728699021503418514387510035035863582794222748384015683334203618974692374235694380193634100964101672229089391545279958784409262174675180152754891957492647657666653255783275644857924714224007473154642990875958868306847904697654640054336901778439479364322665544543097589378601179465144347529778059924148889483521158609886155178429204084176575199731542503915554040106117718227061906166846852298805807215565509820780424129609876837012157159920923701002276005802368846109796562316300966282143338444074394270397171890777350509075148716259146881424597971949423048794242863043804241845671109716976984238429995413285543855430384820746041803497985177501579282521144757766894847188872942512798007286778307169527292977083542183332982123049158097236556336410600134581901735494662193409207299513200920990435304209079828126791013428856565924804472070569312175303983989325329068570966910641674871826733050494716628034474572216662470282732214626474434322839860565206487554851675142036536621166856509747722609405887818392053892669722552342706903966114164138326928906801158082582306236206260341475887034165578087325073808133147359325203380159407628511098443763017951833333761708389063501000094786995063396170874593713716891420351882557109479339020223455913468300024841669556994309016872239273758973748566050735938564752253288003406457962069796822223611812220863952143489997652065275884097260123450643736168815092356742242953046009859449536621962373670689169192272943100290922535514310535890855896205095316650495626012603077369726083369549538961788227040265333198464368815255286681949829603692843993356048790986671353037283844946210055882960801784596627019789724983451925335357929938275314463619099471560971771483565873612934801328500470533738488345634011411095904558041789520156515812580877357182350520456504592039128215621457047274501867202441441779971341763927111959879574543027475582514715759317998699366666750645628626091453315909972658409376546965360523403214056226293908252061156477667383406657564210398683631752341356784112364224300353479984407386899252911989579753746700558654431802573392732302112464254844669907301526220259829131799541696016090804136568293991272508710287844665439492625670890408875150871437319217042935547409611915907879967513011816648267518985144017597537916057371514834522027828521015857993224071612046275217047425403243941246807189164944937289577475871952526218785495545607373655800659880134971246092296714706870026490615890017219049404596927598806487328966788370780283360514004352934611936705812586467726773098767849870567512125947781482788464074861196042697705799832861795335983330170561300468485394404348890342994446173024518700511501470713789422085614929686492627246936200528745007912199869811281871630283202391659248522043991086186633253183088485322202830339419769000244629556187559585301700277542338603858655591625960808388025427891385135947500113352432439862687977451503881472968214792857048643665550711447994238434225874986047497007960356805247258263797882469424891691066628410406398803927440349760076012910054505118825480915755941209435880553442541296206447585546980885814208746606405523087424028988823289871089719337667629001903685049203263908683501914552183164423392089519993825445025359794291829752817084129987979757877560297481587893282566810111804949407499496573076242946951091608220056233100138073878402557006656550785232405928786832417605551993921127485262088966925709777492518250729642980212078294992993664580357646148916814232309943479297508934564129470248253185564698531386000588606210291623719077908673860980500242057290554187477072114000213610647765188524972621522496822287940759278902043400684282366168179128070013977675906553088965080177149164186180655743654427788784112097010362322764529412474746647512671257075447786185365841477877751891146946125259315376157441971669730767655188642683037902398421882063866350589613043962503070277902684773242600115468829476044627954338144217312378560015038954411370185836190065023204129708018691274209162973648720223082409960552334559225893231080241724792277953083262571985840278238018972497000352609006097348849772877353709702168103036594503486305480573684156853539769569289373243993037337105027113161878251838641704818948052962977792771257997529868962199442309764867807725226193793487355669361118974373091738817910916805247286944191770495153458771039368963976789462164050001690402824448661599649591529708126960720810263236918503336995607345993996991370122692158170618782515463997374808775504628114756052051789670218175608196639581922883960859041071758175791251273226477211684314268094674017387302555506204500474133190275523203347587819488697465460487224736924303889994257778472863478361667235722929273490707021319152859390345957071797173959847518593981503701309247927333896466357648845193040853276657178266802528784731474462910992552537964709835843702512316998622418873734420853290259071778689298568965109692923700644366446795885001804971335751773533139025651753308214557901292577937370009838638408819078237113630822542422852175693118113150201739530709647154908842230094882263510955726089998388559174839928147856938602020485164264551750020571575302193759254710908474763185552575194030707797326505773140125102515030182967252704819851036321207896735146257825429545952897533563596972389984627139255710798277308874856413210863142371493363890295395614664638883930635368798316142142520803891802630149419410613780849930584732181018567891485827068625822356644335225710569877889013451058811197391981091253589742591490224269022867557398761769315901684052949009239471670725579013436708823571882258069005464798305858263435078854246407406264877114913863010415571558876451988210556790693318840688539962910108834602473554837148265064561617188276012870847443080202156229291313174429884974871433303461707813263745094202721203081141523659749588961078436127479413469780700625581436166172707025422941078939497044574375567407241693678651432915583603782854667061376420829464843246929308304873607174102383310854743363033942608907718828357748244468906585420515471127400161804103074477798686965913635695580719914538876750246324161720465699659953903754790826321406061033460734333539842189720704034619790143894284618956624305057105229331820246644722443283759569975376492011030828390444243506088559018728348414032103372927976178005339381511021720699543185580877336369695714346098046927002541600232734880622361756043453713289710091602734325421192648454698450829583300513646558524867453922802405956053485366130502812865834019592932569234893187565478377750317576924920748289280430653796003747838359818796241041304829807804772464591400278831510459471688843517876074300366816178898749230037141137828956567511933350565296385570276221448019788037493286780140671584699464219614844932941200713702938697969617441393391869107076643263428443864617246245787494383896131418604129053183620664367895415208075640719281367016648180767917518509513313423243135782475620048808554979252308863278437551314076539638434595583066771952015568256472429920115746416459221324579968441480005309831656509154124885529448320247488219315256176900318373508879970101290039126396907925449206494915457700295486753518360415987688391877372677578106292093501531457167279103461259061594751105821475355612248963735228187860027753075458563267294293222362698893455742946187425270720177474722126404659695633222056538857602807607641705547792250256922539638156579950118064416920004552116058363915447755467059210791055517365129246636759376691557063691350774057561533097943056010468942502877682414275827635275582257692241613174881929074839408723239105865804096290795055994635222962356738292001525355529706183091987321682046190773533148657691797066620984821763199386548171121169577608644308547604938869027410778710922943266476318508870241282552823782734460205863187206785479835656563307218580999064733003492480887868994292997685169254073314903610357345599168709459781918110386323746327948621608902651261086774436444578236247866090838056114640206079276062311931070818277446238548797291105931726784139759072670918037483951862645621122683409717933358575106269867496204578538393611671062986645829971903138478069902375134453484213546179764507533419069530920360833735280525250693970493907082059087596676362629174315150514477413875960672708687524645704348686676395429759655190169926808483441792420431047293500288475158922875930148179236382412409687228877296945268064624370703327658077590325390452237589761736577917825087648007665859654255912532882149731409054951637487566191241348978724078036009768117838183142516348402394390065425096193224096551040501993617648966041665655007521225925725159556160460620901849229030711179839402366589486567526155794742393947650836515023279092318062131345164280399944849247480726034250269053652833310440001399303266211063252630882562234315995243509162916935512012642560083895549194151418806650446061165449006873591723105653335252726613996864147830413251352253970540483515483763248095991878703786532043033179392763814778515014299991398072143312239195987362384690558501819828883976491082980939817296460655513951109705976142859976691239003192128034132287535762137806264698865141930558390913450373190395185631202115110243919459356218504536062787428583265471404790896500242088351847412391057765423012906040724717044860997239898733935820278765929411470191790060461631058466912367043814406659937614672752221967733227910830166908355532575990556434672761835747195756249111966547299042158851640136589710458235327736390589042715689594013048406893015344208483896288584726524924234435169239320358156422514011413872285324545772334073319245563504094160857449868789698827807884594476478818972471856751369368782206507068595786946625546250411728996925094969540774464872910134565939308527715157961148005837885503940351744875814445386494886203231508928723743235526368457979803178193613391762712084908496495172780504650476083826908833539724528014815082467152260527221185090409457706468063090836987070890433508537918624267397901406109470372458321967237381700620273814930278819324649282235047230312293298720843782517146764734739097864852249467219396353242867082247768967743741229143804060676405869473822721150893782606421158952907403950781770436181761097978084718259189073350713244288374776331084759714685816963126697918793100860506607927763234636528790869183239801020576755615274932840678705779100507013135767314977215885387389109976532669431568586054141240362191020091599478004210385564457903495130148934193841043957563744885161436873874559210407436838926944883405741653913056293473273375626925758634817989197407325183753399740643167877847056603955232126042026741441735845342313075707602747310607766716932247030672518469475303373576962837707989788681926606419253420963453347541421906884975178836770423151905226080411005737403302496958727787675580449370916159349255498618932858157175824995975137464809187202219197257610040351064171039153690225974664737896332867951929622741239678058940074603244675339398105876162693099459187163587580047590655802675327117832781367767411000195157253530432695890094784459581314401575085706835562378306822620811713554730997412333348302302082825672958710180423767070553697504421850240594442629071065413691641442194089887869064784305063028800432634654737869058138662817924593284245371917720043283174986838752995334023968281295787475713566505436690541152299070341753387005580142598063125605607627752800600827900593750256067399454318442344937292404062784812865520473334544174075665955170725200874957214101914608196705778694823490909408830571679660051975502807125051850609667565919447799742590321708880775950303438543126311164373318710201504690438555288110206549538972703919468548827811042069083627676044723726748355170844134804466727905730188849470088554695423221770796234016188568894264599941264617232985719688604629798243895852026714492134955808999654926074111154663529463410825889201909689286964857671631176999622199410402967651112987272615138278914985855878612483860514502128159482142279814226530750186296126761278032917084236694563381781196058498710063249070311541853952765457011823206172900137899028646282665213379549780677327811010131115710390844694105400050577758105184019168606932298705424595841778150267953988350691044679915862741433495267259001965436429530903675449052841635975137080377803172062599086104769095853169213272905347152577637143898216672474199795324004124756649816360300868542390085171190669243590549289637847950699347107641686660118763178750768464340919327268400104367859803535298265356359572678838840300072728823957344738014871319963212479162276992027404688782000549474152173811266617171278927165846092296456618250062016708829860650722046118910060374798937423260788275071998180476127941021849567441951609791399791691806104577828113706862295338243160850461584953733722613294946774827655214149532403372939463086023387969971858829795417700904057076941159020765954445171737310102728717212409465838379404293584657850215532722251362476771484964863388747231092937543900019905888751196993373093328168881962626274769728630668540463603136972461838043368480964525056944963427416016340242535074443412337478303480514516023409829128007504817458760066167975629368768478514540639054800015518648347972382862304300346979046734083385001235299015420817796084681228699144546949908086130106510046631005025000263433053392446551618617538981364848745474612494646589016798009975914817592115273937890699727545165775053478663444315594801869246536454434073021438439790988782211675139357945436540120133504620697405796286827897200847172500177907163807136935675427498357554623543303548910567202623945354589850166188410765458085815777009857252636166195318319423182793927366483315925726486095898340785477596604317849888104916408715841489640520934837140085175280595474694618411065818004505352272695820294979670571866128961601288785080319287661075567204160670688532195038893967202852239809890393875362653390979340204090537360669742623056422432386816213793252713084725929181901725653797455186454959102034646128916829396035012270239162507255699498691347685092561222726871695723265815932873205312144248461224895313325577339434175843942636692251409847840470916697044865966319324686802463869831821971722789518877266540559227741584633202280252191856674428430373306505721793344688228951881039024644885312907369620955390942134359660306257246731008212491702990625784839834537131389025489500581093160105107834761146556239257679168075810063450835919204276697465302526493422511954917516532560359718749943253406024926533110338425909076389126000272519987670950606612839869717578345415085745819775773993944365273825012416090237121909883699697344164151921977329941520624550299626028754166421435020881457288150764472859649968301031546164202600937344838121708381047675852236102666397428917787651078606145184990004322518868478106493676484719978701799912207966706970408361056236330094266475973967967095136734203869255592042086340951158043384803604829546651307176167371326445004913977635715244120923952663167815717397240115638488204569498065234417014330506422407772908403630410062185038811479513167929455270675778217030181097118693869685269206891411602936678393096973097908829882160289513676790310495880183217381527651670108538908509382415868558021556277063265791859163898342508295378452252277783833794542778677609024469793105417651927352276526850685180204083125410672625637838751986349703398511174295712300478966233888288747868498013997694574328997555705524002894801386563186418390280267989631470726303210800394309841835084117864494573452005020755464729907112088912887398102054712696735329514311299572387747081252712316018264574906594482703736041842282329140601604877374473087334031772360604872396005270065033661872807946766477078694153513092949714498541916992225711513190643539766474270221720450890252155286711305978039256669005556707931778156539838276081325333382361382860447208562905673652768187096356038855924159111535799083871680737754227355157990593713988952563375955370817458525588775474707955788781683159683775743452303394720787693782759274339232581976986418685563699891858472067098335604304092280542986921124607102753682538232970748376424490235054471264096898625072711918346901018700294765328872929457257941087390097794332631399407566485806373422845472369782686626889230106899521571854304244199798059622849895789209439081220884855756474223888236571964601994785972802450269484328820957394427011203189298067481908073288908021766691901552569630649018223341692728996553393795387235482161778857955651188903562038826941606599607448506891602117264617774559624096987862388443349336881963291934730256868154296831136516429230172906534824686551478768079455775203876763507060794229157861359181811886242026735943264303587429197218274754728064550881484311559791099630502970761634891883037313391635930584609557779549941925084378640346364871089264560633571191520541516101511682765133258443621828407570609656502805823095588898187566297239513645848362950163726281771818833439445956927172626602991340899872088059700896521931023002734872012299840803129876242602355572906481849786094779223267472538923334420022323141209975028513143174323293383202099406662392904256975665961504131511498415512597735095083861617045696310793130872659012751313563785515484530009913834613740971006886909520493727494051766403302559194538458406659865602827675524071549314995804543381703904300863223424234190691182913270592835947652972548013817719296136221641382531025633730654805044318539084091925938431710395887400418128868786451427098347346537711851927617212488745991822027051818290839317643806489414980057221997153564838510350905004864244936612181416235706897471229361341075201104844602872233511898608517821844094412105726280725851726383606500507855882957719975103425927269488120850376543954688161187361397767606050461318488672757313849310037748425089428760663705999226722082767885900691951792027656354638906734450382472461559968433900082032360179644818649381588469531969316987553784855690405575890819154373262474619559874113524577931769823523759606589399688581000585489152663858316997005195963389452473447467853866386513029389643699245836703090557118389053458869172643664504306674805989547373992368848794920414159143542156182011815064649170915112148571607285438688322100803456349492453513728764797706641779588991227194521861346277233687278357738519204263184353848325966739302563913089156697929767645317254705643875965161118204068361616758478977402751037800975234709927501745176167599284365752468783362795967236626930958336424376979000966317835622833126967990492680142712996970790650338614457652363303482997189732785339031107108932070025376475954533060689844907080161934721759182683251547400184169364289427086766962889012306820286138430766765164588012178893398101479371114203846953678667066472591576691690236369276981084156131718356125606798175273160764088182034224619306420482561518773893691348701242440166049807488908325754614064374331361942190021282014333798863187716085055878912075295872037015617598540353134476694444597739646781633128247862520927267072457840024003045812407282764190908287439999757800574826281663713352632684336776096891228359035361469074022429370942479265929546160533261442976392104717552757356932286717946059252432856444149793490197767849048611804133487783636099205624926481856027964148316558836682601779452725184077027528414163789406831963359714551435790050203738819489532923827797854419008528749167217095500559686167569396999201478665677744685861275994757582420560567504511067052503647697729332959505917323210869420970297010126236516050465422032227942457951102603795611839080025358981806297677327300322455855406014324195629562430141058093228341425926298946865936578469439126050339214172022465282373492255890033054354567213288628869306537938173388959558217257624620655112829017091359330067046287668464742487678269581546384878811334652960319709270012901977495853759137280205253898280272616579317662783905066553920515904944810348061439541294822586432007765695765895469320724004213701982699361957648465080915198749002631836245402606230588980124120887001236065816761581430316891805774092754829621771776219312278683885123952757277787241287810022003642416503787685641365861559073744080844481224379072654780010161784122611901264294946756484961611815928201060294669528331142490342141321137079315175807336468379772003666672357383907083097113972633853374194472686897097751288508264627310309729762191848577433517886247057802104052563847132482816034539274255872800502208908319066670135688787854768341727000225729461495713122359266638212606119098077372972345944570830251283913672146976514129851633398312719119719199894414844942482816216317727873993481933972719079819783646988368601902406635222666712055716627964330041537258947978560777258963372910514787075127563853546983141706609739701436526884066558034938038506181529758931603631417650151388360762953952901112938393962417804265995521383400054356867433068229584930648296718928174368005293187671005030405105472061500109215159988237647963798357575273523893891708545794666682628170517700331861010731451595426756617920829479405079385579756099954471675652197942899199022171862053711733035562155128595926123303623721814235174057628120230838618092092101976234002817420945000831775834176674124934433271291002020743893904928028025349092472918057399637213758722749600237659668308828417016122362644612255197313902271756737904642970123492856205228375289948719829045247740306822618938438631008824658790207479593414186029974634391310214519299083262836567286415246215877003126594793788884612385833753080727482431683790288163189924932612686449760483067858761787073279129849701925476896660500238604136038881768388842880703001312861730268692674996315951546670023913465204163773275100421469723875931511922501311300753926781740424893182586179549449065505304440222555405763752029407908506593153699892883598370948957395066154618274056467542733692028901594302053368364234171570100844966984580312082877287749222007567029271292105777979505165046061159814821256679641747244092943141493583871983523797976605143934645983460233430149720813340319037627819491129785789152613599574399254942899528776862945289476727564813802494547626675394289488724853181171981795257245763574267513546347340960881283836189969301073728520160236863870224125640994344638337143453859415698557006905185173935868291196583270581353457341017007757480519032697508802386900755150000856281723151596196058317233450088656342061710247178538949733725819760891853409171745606044220715124188158590981599971147876744110682193637020242860844977266929680238987170458132919740654921296588329183408014139872670653349185195036164110519026097763925501077212109658534695880934161682549125985853958441913588095490361759062299795617087371741656573601439386256752658301249090338008378576934238701125592250306340862001549008234734437487659344653642244330923609552698998613835565435082814558458419233233952526161574368951672904266815086708225854894436500318408804043884033263144321551822775148661728491862331086503488668296409188709225139448910808629701921366511807064871112503337232652123113397812002448579851073693406654758591563788772320287726780677508094898782753814379851630095234417576011529100437108533834445104635299826749527343500996560621287644073684254401740129426279326037449571448154788313221801031741502792294340929854278411892570642476830516422891214512279203833892111752610709152574222650504764412985721752584934731738288529196936297467633696165043898896560287067384092956640898432175259488287690330885530313901112565745636945660841274167028915536478236002634318952106664170257642732810033908027001628031429144090517282881488344570040979225554679613318836564170390472560536620126651422025316836902554003305967113772533409903709872109439416167841862152999520777747526444496401411193995411258541388695160141282697216934594992637533151230344105511670691280899594191163809203257609432933342422727266631743086361391751168964561264432685971086336017199352176775048273961460384211192907386373562795515634430780653720604514537690917158606736784858558669694703497769360693492885507106720432658251042626701226210072154030908084580143906558602258600131462971797936851193650946271325613082469647428536675283705377580825805108839452625226683498533600291011409494461365164297945915667867522015261783976729223185196088174454400764920365432746012075140097302139067179554139314396064454526243590803129257056528338185334267171335943430887400208308213237338010797278130958107386929920965071185841297245567902886167157647367594430627869877383199774135355345355534080231327811093419861124808245757032548773258035038807448394344792467032932124937347180383544963037450623018299965273725785609314908603747673286517146629920815921864907180037309157448239882724818961732398776867738666194229714559179145787515600896868141642375351603138713358122090787969783662101440869171163875462219581931818354930705897585715594641330894616564722966219318825322125157024147644839554753279663675204608917354851713637714488915675425456384159056592687371376416921076911305715031414952859160560466846108794719011971820058666895426283296284321263430579829896808030764890945727922176783130114157122320148709509816942911244460479106734992494511106236307756203802923431783052772370051616457145195541826949022689474463046747638889323643503743152520748874837707345692829394784615918252822225645574054893830131412104345928487216500180638042084560438500188515402549143116918976413685905873090929496435701291956863397540444353890392626457850469401733632013271271415456072007868691738787074216701809449231633754152217107371226819612010292951997617828566390708154372480009043659769470949332992846788365659684594184853230937347357593300139568151048855481916395473683083520419335523195097148987877585466242771445802982919403609048820206581298751405945156972668987658772677149304493657375450182085315779441302823360021316221334446971260578191199348433976164687664084561228234000652314342811317235993163433895923533530476691797484283410318187880801278333292090180778311534448168373095501152315368722153949007846978838408390756829258535275146131895623770586822327228921021813812830971896679803213621216562896928302587927516182470768360977183010179770377333090692073720597407618229908892913650937134085500795521930603819925280197234853638338697322926045719263678929577714633138929080693597267903302794759537646648649026583035865726919202225659690408938381532258859662150203696864830676179193228867677407358242019447716771862153651697512354624115270097085020406607698378524333992551681725483010981087566865189149131346488739867897515505716743352494208352405513346080294714987197975426903271017329257292481224998863812415202195615036949104706271600990011864479728229452262500404517362621210514340376007965490020907457292331341730790431002747484143478661853084479807941269996627234127940105656115699038220134826839910565018234638929591664815814287477171109141949619847595539376232439077595128653468450832930568175417572973680631013308481658354282678182198556167404079132323351518124715324347202590927747007107288555298089874105410844211040577859096995772541447120316577668013870154292768824169807840019429347201286256182591911741338793864732928302379081700016688613722567970774212725381705535063254028143327482806343371358195788441287633386565182190229996543294424004982471134243732506904592559659210286418447261687672794642358864759264474957438432072142141797037661871268014265515746818221789680637537665956082143184219061140061938708846924325813272194344391405120874724765996210272306396562579934301848725409505145822395195867989492932164603148650980026995328289043822960161189517306806508401750389472159741038440966262887245730492748213958920938714027529063087644331138406419479514899869283817957698824862250473462489784271780078635976503879532252993616478634441716574096092353347862572696470273601591059201853982586018615222191170232426703253400793385813847476987784825258899510608870757317870749400362449919067088121861187900812513230679084339261149880671361710386197366333515932532067233496280253324682673051644926244804244848215448194944053373386215198504774904170251365905300988928431497637120135132212406093849990823424205697792231365422133077976977318232929176017946728560330309814981773930664429462833698248724748642429973345047363563754169822183927087623933715016302568409975602307732550034995790780754779914403441781121112558024099124775619953041030608664909897607156196589120448415685196268099076833545331962409164715134341106833924619555502271606766371818617869049798668931515471035017839051404287322346284670693502830950453023856805935604093656307565162865658079427237848867941104844424235346005166001366382124455543074072638694133271187923198459082891012297881038640753657427093165234534733307521621925406051553433209305103175077017285902141911973551671256241988366158311210016480001010197950832205575174597321361031157847236553877769523510292507912423613818593847323222936161686603039177357443050636178004055091263417702609652251183972497035531285759094380539599429154291088624398142871000713181552635701999491466195471796881883534527106307327921714455355694755415878913228262188117344176308067280123968564680593529984485245346539741821799521755142083326312730632412178602917508374791073546420729655898984693555273846736398989149257815015683389920070150674903941034888601773367601148082793838172381022744842371239525921551522898816913191082615759489517002119886624693298903574671880473289589315980039108569912342406898132157281311749308286562511829065845900250244109235577628296018810976530175974665879595667845887091151948922182268045814686927082159948787113529349394231071667318258698344225511381968730389324192290503741825977861376437919972083459503401459227300110475945857541235947651659118936886441606354229235080405799660955235191312906290559503296192541713042810372644867994611853699144008014705175685256426923059139643943242647074213786087957198671594758100492485454339087911711591748192692925220747475916532540410994235413885320921172156343061345417289209883018776692226857612014051926615253286037726032468917692911697075947972404158540845495016865247814961156078956431936122815318431115260932675327438690231863324040113847027192722612331986464772892159057717615468911860449691302796995517596609333654165830869202253215626671651418921904156999319964652234411078827042292494947611518954179154037564013767719157388531966866227465381593450167881058271456469307271565124147133821752865436709812167609687773071311883027378063699383521121736249839445842778899106673485537248248538217985558603683593692639728535403678331310248914836167695798843734988816175707407261144252488617119564115978999436876148813633138098416187383400576988862039109321981315038257643124817963824914704180484225337756818729811863866436467430382378855411689833142399651097416758433800243866690346669065874968981577897709067411590548222305512039317653791744363012315834592058391049399249051024454942626833782056171133086798551415786686505093414602993394494445873620102279262415043864746193254576361033518671760368511278800052903929299934006291060574531393639096859421083227244648179655322885093961836786390168090378271578668590506629007739423238898791900375221028954753569702182529284661048616543095140008816890766022877810690331391098077499154907530002582733422011635155540683405764518643459391092243511592931211252080946773158990116856728617648033057444747188787941796303177317912711786834732668748796371657712615063817512534908821151372391906341525570442452738771733747288877988655019428947667963662712738495415475334034397482964418871778887214837432506579160308472576298605928874780647080130780032994546477821110847858646631658004792590855874562107084840016297055231376826324950693441440312287178612814364489537601516718174147673828747736097548139689644245504825086493147578779396475679981088532958448096317162868379260849278439993519889769250640084072534978829531936525466087541223839978236693326558865256280415979416996914292146350103254219232032058487153188281268769895388535897320851341019901237322024309782561317352099448139330718790714872549188094874620653109660761662540161997745375316468834981398889839845106776177749171086034634890783806188340516974295325520208785074984514929698143995176153111787954467227905703215233927394150567363819030914817392725105900303212695106184407724350423805801605953053190349881823407497777532033254472247280114338726232760613503546597963057971970405408474568801023297609686059495931060948135280247681912456462808963303700973282161510464432689679219050082194779198459424424143401968395973736105311396571712961472260797142055405569037714241220408938024741361824253814382853080333763795751482852777422871900930564947412027531167579345330994867857946723076583716834294671233924003970648636850516032556212663004007585899380996645207705768275475901440258101908178117290160850888692035737934917354415736262809087754000487016373609113228252433100121740045552612113942793784817386171028402354416910632427908475519469251454276255204245121846753738871954047359966165678445750815064393794079118248828965922706833849433575939075139778258473593257438214049063007336438202245150517411565516249240573234244121620757941902491994690326037584942280836240599761903507842502968998651358647018116029245124206612155959110730687355830395519501129730651786943096075949256345056391876894709752575340883573906801432240177444405922560220865866139169528824211316381338443515561092734827735833744566062394534409218799924285794316247006047393814872063006309316272306477776718161144098403378155519448234491147525589453776389402489121418824478750658607490450756823891633745152886414768164618866926624887508437674104666004003627614367414334360912354150776776181331481815395471453515107810968450975172824412750798308379896426040206463803044222679470907756574636554919554041281637515458760318710331798147502150529812086509717149695814581477492505058185272309587776318248444480498356143198094014981145920351142958935971271615244445949924711733526436891363446255591056337113960282180971126746437180775214639619849253520451374178257511033348757609831884069225808280060230480854540297431492199004938650694449246266308298531837033443442600574361907970028116770135849572972187118546340041968705032754248197694057121944318483127635904637426858789671541222578206314583573095501174919316456920657573584016243691526692356984399993936701305811023373561177650737641233059626258169035091171915184169081489614841871799572116813133130256980286917655262225985592779440886785407898258879379437424161076855827511945186284085817843810838404060105581337589912174040186802014011426152547855547705166485621992576113345478367807549642643211790190977352216511196833425888731757649836681695490540798956893303058049244096202206787398582682004503478932561011722887192118025454058893304558817243441246907299778417062394156840256243912407408942025287630739831041707431004193419466275655259526210085730859435699475841746814577881453888730935872415701521494374066859571874882289133004976303443221891253023641069616737043378775501918266401501225222405854461614464283087670711084487436632684942251755733515328382438186948024035022680180370069122326643925206942571307231372025072071104196831442350536579390407617671263947286694450541744325225410364269510905000343229419724875906893168030120887325343115438234597476261246635399860628500001748516002502492172259151530961118298250546623490983465102541232326016460904277589748158464714273761099850378801222380533605173772698573343397438909806033547173551657000784276855157488615306484486197607374507568317382270090681465968730910520665253859927608063221544728003898515252870105092288662722303388355448772031214492295429989218977391393282393843386910948084274096790290227536703366607754351845697026779060215499418978574248861260390329687081468627723280771294975215046183936931639598117030212802061807472082733565533336008709839299469027146873694733851744312498571885729366357197649056392227997542035940654126690737347872414027066739650295174964909912948107886435780022064073428105686097183079258443864544348047041697534319934035816448305190236031737176986725232833687772638209926958110497549586256840747840480974617717261622504070147822740676492589479659180462965909406938656093628944757007174931668816348358024303160723603916432794006834728340548521763961514794617561343343145576680173056593605686384752343849957351102045289546385764951302792508546285153512273806385265105289520051329143546113021481778579143033760407981936594823680277337475784838323962229990462881952428093529822884320092943521962841128364367742258197401850130720259035477414798079421603978552335990048681646280546800317623390143814469741263196087139164685582946276519413426709532316200753467607341749023679231384037432851852224098650410542166116394953995521398482298214194952197687730124363181208472113018566825923221873885246895732141242473347412845317364485374651319132339148323243716467756600207678612067326849273630947335457697921034391703037716191594841283185327551648200196290811734853705459589134959803748606113513265995096701150328454698079699865379706001833587809206169153349538821330338171341908158496498107929082741187303438377868327042540213708393544483226284378466821948421161163089957958712400180269417355107136994911977860847839081349778231867454557415549585795706574045324358152195118036623986630992838423659255392185219353424680941010794318085734884237680667359457049755656194566461333266433017543853396792163160678064560076778990874389394228912130235817793603428305470403496617113081426434798735697898180537484806402181869162919934434123236992632074921603244924887610811194438352692658814071401429254726185212713371693962632171678718150208612753200497245331220761242377071257515921596908691100561620497591685617331266844228787822503131969506998987383225566023780684185190452371055028876557278511359068299356897360229653457567940133157958310583635473397633098488883387531542884774854810468027419541110913468905412120338106488434528188786800440862803515183018636306340430998862917973478179060712709443662667642484973558731487335070669398067444230030229967387113366846819742802230444972887706256612081430016755375130266272510119188654040659772418824054929741807783490172544852738947293810534110510997582065912120016030795202509730551344038585159219822709280294821267104923257164853061852734676119795014629500628831744556332346233353346155017265138049339331027217993132459822722517102890621563424155627619526478381900113257085816620318175170940143483960228879866201507971891846778667447867297790350106011585548943359911419508249431067903413612972722862757901039589883639065321067251893433785033567023190068853068675431419961637602042526160642687664998248417379757065240079113678852952983614744674734063323747915963987323959236121961222514606929385176647392185140171286324387755214866551551351323565294181295184479304026437489550846876855418141169277116164317819316965827939954679659919099409839696062875193593080895214386671064216232197162487887398490220698737356034531522269010613507799655980554561655196734059638383526548026556053984870973026438309411858812343905785889270115893745214538150280599406836286199371923992424188860019161703220732305815278454347328448371453770214906886081403946611869901919828744351357173527383638741892252375528688050060532173743662102076408563324745617923494769463537200335302471583541783941693758577254305706480106146703074721860456660468917505277902181671278013490634638429512377639075155315930290184113807059279278880155126204842712591608456075051912170484074157324424857784547557551146936005713710500567419673912954137418718663013090668935184587238948792678984390253324616790233345506417766853924242426197447067279538126156187040809989445774085283797169333184491452776843553624642216297041403681715201414598850996433820933342632304685546504080242227679812554232692708174937398597151199886492579517500380886752716493327855198228257727409767332278035152457299292529899353925919708946549134123570115399797614246024683394391175076306686619944597608574995052964029736219574974463514683904365021509144550041721782726594387974530790491006617589625576182767592338511958068875536631287311835374342195064568391126213377980260836375635958321206390783097120520326124345940695578597855109637347564024295364563705694528577043219365805624537714782287039676229515508512857115811909815936026795677804465076600172127698926386450537570756770171770187618078807335155343708680332067881187935571669583734134192122738243590537029941380549874128082054159936414180282525552705632544737832605479227637001642221704690903559826388186451020895928336677151874565811759391700221959518262626225219567893448613510125806233706786053635992876879846935304458495502606041747862147295905006268024164594269694747304563150227939885027947260251940210477016647676664916471875581555362537774126854400877312213562142781805856296017560571774767142622520163629738043994108819581826070585030837795809032770638183255258397568077432742347760279390898521905917190432207427264521362663963433938466921670258594153311817915727547127817307790912874410824443306642988588819472845447574802218202780487161250019279429407392171683363898884354707334291229508307887743007764943155382025346740947922121902066769418561264573274141713262995223026258728552723388736583132082584764285152527975974403374728409248383983692027344029075144695415533942022450060015309981561058625663559657602426278448807514164331457461137096883405391190872450408656785685388528183741394258991768544614896719238233206397249925133948412403038413909944773619997544351708803404751716460302039413169099208740850866475516153904924933371067852052118394771270890428969096141718941348636492834449436472141883781679333496228147317072859070522466240643483719046889912860352253172591203923118270399460992254886093204124093019620793735077913827727767013363438294707192879118525516225647714496031161061566264505716571110176804687788713032992724604071006856809786113268145908950605099744371411354155829420906121112201610462995772234963677693258042915127341065158877542162479626448183338846872022939467495795949956810392711430312973148540731471593172377999759174806276371685665377313823387711289561164339347907884072333667963284291105248693911726338433336303705026947970187898966792421487075697820299653248701826516663503603713512286720634675654790381330106168011819890507550648333389613700551920348302824519347526467467828081816878306626730843021549103102123435956102191458960501461482545301776345551840068637285381018966156894675608673754386898140166799567596183209698339430338682628574953327102583030367555891954511077727888332512482701314298042403585029335127756345352866915027699907133145807790365567216313565448242844998501083322243870438050840170685007808986218144606742513123318462401342568423914753167202426690918744752235952015584719331556677251910298477770168478263230103733318455978387942449953882067320050197589866901258330735408121109673290367149157098556870399949096568347710587189066620957091255047766799441110751016747160949407945360023538842731655440995907669523937334669628476999310360103095278603725905713403008737890981030018322804102351551734558486314646710806045297772660490776040941123191458384248707047219102842313400144329563677060950992256784115394349082424447034087542829893192945810183379427176492432858342935589145931321217654396160264479978207070125062639289470712599206911667465716801678107429738500179457574111386718509378582286006117169239606092700208208105290983104213109848903318541577097251854958005146744050617687620891584791405231032622557108970991116686385760353683018805213084376601980588679794411391162796950678779877009305691577517953749252299457512240784273937468574818349440812480962390466343950357630031119327986435659746664517541732776082287410249726788973204197927585520952412511478218943722387591798826637051685091566281608402433240177691602694030114125640025665241965843532228048909822566557540160697931320277473855404900425150072953015922015447325572275864218581585003877983360278466341243674057726268463341421012955472307286095613443946824578856771877441184349160793227495663341733914467686120840590807737884154600464250991179739473101648053937560174599143258456142022648668516240815860610919543378228325983491631451739839413774407100579688960011126431287750272510379659390181760182437330375181827692777934196442272481848506925689140395060068863463551896341605984707718548337363943488238831800050220201012156083204404347754391706004375167386665707289706937181827493014521682821085441888396617313575759125163284573245384076053433622347894910837024836890761663901058410729687560798207110346766270230574710947872863195661612494497916847880330344161984917853203774169838901231975109133803856812706277474621862239455195337109216743920606230147833782412806474026001412310980101659579679603835823375140160303746843787896381336094165294600606522280931195141523649531208871475126219410725078591535536742687557491033456469026024550402732050047440925260539484291740956115434438133940077533902951028892389505465647232956267841432818864460344704961658776742272989947424889180096706900412863389817362248846480915236349272756219233546575761281355938811785328261165212542781909458182583765716973057216366062168117509060675980315291747488262060311101517152423270899362260964948990124742220859842915631659602976518310918253517198280481785462042439883428685815039035884835572028491921053941728484131062650061195443498185484185979334116352364093790010701089764791701655498664309653072207206868494411030339971103653640946890814936658451096423603302015461459638360693772395719122557574262312456406832853594075031238363828005757064826609185449170915185181853722945086414177493137489233990675277725873130063725695328198406689285442725548600177220657362218978201155023812581725659767773909848550414444456287321577871081469930722847450251525252894392388592923353095642437102769648697222560312021517809306587483749657433924387674892932778599703608592033179711895404340179006304345076197445253071359622335066755303320353553268702587905404732039446603600713399545214441017227075223903231258526424962685378240649118042660330030383283946148100350270018258936882687163230658300782657900684495331699825707514939780788143488647060177304448666910831995960959176520360446165652198456313772488617582532789645899751720470008141660524822942496719581851902584785185473495535688142016612921076725747174256287598440372561415506720595971809507301646872648306397852274598580060620119545104464753062850012412292414186485495475028075856625989490665294132502651814295531856170951106115310877524868454460260076010353039277609697627254409039894575045975786173169381245794928773310590808712120234651736611480990487732756040878992432328996441556275736427431715975106279951672104415215448981192890972644882152433594330801569873079480337981636012345925843776528845371354008222215189407561397083303720989640575309132339561920214251191645560470586198117384646746730185344935976177701779782527717344396533669735144352806501130993499807852190583146778843745525805857013907821277369284283388838598285190379661264666280383490335574347643271510806875392700776117889968893966171649515476751821573998620311984080948507912743925601438625646387521344417801651633886059259714626379554933939164017892381997688585940398774187683365036429423788961871439074867472106710558969177393908376864657986453382730850784154631969192201021973660234626513863531979436510707856305523378912814731826259128128715234232870962601017151700735967234241125309689896657749697143366046589517684087356653898121588829759252120832254305674333038276291824272132222566166497499667737560071772754418000095665560605479301311810788889287357301452237802762892925543343253209979264545891128431707464421298488147845455539375300248936491445167376692040519126232966869449546714565741058609242695627515311632741693189237664563353629101002934326732745604745335206702271373401498127976074137517289439675956211113255429508101643510972515950161303606699028181738051556182692069833035988699350037699203436658709802078556291931380811017931030697414097937718746015469684705812194391143290887505416594816840589334292730844542881473807354852185954091813229336165449022986085812450307811170106858579823798089735316823745827093345019675461306178976439613094831959772921533626669367086406549588690722980857786878044559739052348428890788761643938320509625981702023377477255206411668062847327982612438232472764782920141403446648065643542989634131192555481667437438574432354993298586184123999079185829439051095370100779276702713574274913888651518349919445825199336011368134976136940822197671987559639418079749450919873105357920673556861824592560982406226281730130953285791673804289972389517838169821356549599248076868761905868379513062652892657622523543273531528645142646534979953940909447708930680565896422897038114389445350575442491771738660217460592630554368509309352859304741865108557281494212953553342845230829363206798622946210159145785915803246570150872985894228024121488301634856900821313365161510444225229639735579185723428101670577267930640519666754847412491910059462441232214007957355054821602336744124372375901109425239891975317527096225214284330512340514520863283156978685915167473534238633284558297049650960136111409128728076978703011923000361836316671018091206292685596739477649680478592786309635556143367408446466301929080053397999336526174792384872372140057768889538206421753223954272966437651357791430013930347899320608472439863749265169775812015268183147643310229474237274852238041386284053158638157964674384516571738841769002637739995396532949670044795505437582898762446551290785258548409941443161611325365222804078345397916593986142565529963949472090752649729539405329044508526437238424587859482466648832513143816417155471679105690693375031086239807725977431134252791098733703031461780106503170161062502500046659456142998608530356704679543676807328113809767361998875284153762371838568528153394733796879996894774873917478727125153325111641997943172648685816032515220849956645743721613755503645329419368600043231065514555570690553067531063070573750172438325375970932151604966027705119512922490073940778023055029096080672877999542974401097083415725528733835685636432846591977134309035205400230790970578836411321094321369097657359956213130230033816637301086676185786225476666627344325378308906312399421311857521093256227366313867856028111230269691186815185631092605895935775005815990431171491874315259689527425788624298309253246055664370069716532147965693006396307682526080957066921178934792824255319425513146418420551350652857171833196202638961421970434755801519962647376938107453770496050795936880310509301314344757773760146075592583095824742536301858440279308497549401291040211987902035458644405404841829861192426545441246264740951234587604780275667817373914914254989369076919787694013928236939013401340356356048813080506259377404332925002110005745059425923777139642834427237658995381721887035206293087873641941204193508015890094803259279184590902909129284013403798200688295968044522574036124130139085421160974768683340656857184494080301986680622766985818914084864955021753471903398872150741443495729470530627359533032484186088805992461104075119020798446144786716630301623761922884429027068462971762773488873932331035059163333108077305741992558521489670955702489774068589318183762659588503102225255587260406386944538084311711140516737796566216850542298315751546119542964349098274897800504322612988424954922752816172595630699006933558263154626260093229005198584759007528997652701437501494910749220150123824717785779260693139463857804527750013238419940132167080591473102721258412271782157787004375058450139657351247979389366853541149166313826480945241436904945315771314610828577197782158597942291189783423101632306183740294405066240651287854468239933293752965526922938345631015107431145499845566540394897533254660564544520690838861342588165080569024173858445135696404989988107241897602170932569061553684023697629188942078937343891889255380632952219301893272150011066437331049641085188808379023659573463846683416184896936854477062191458265650223503054243223103417478470836956344665812814792039287034857798995872301226989106928529861035938969718677544125459582981304482579796737004138119442998082469842013028892073138103212475280895924844476120239073513719049034298896412584870105766571606132616094237734610617954123645795542549027336818313710505044884654130547525374092861406265759209316308823077883758385800301177926821242830299114168947687973834680106640134022363134604217510354066867827398486001902437554644881249775124636737220490525276400649084654283505947279783745193090665138118798596939814027815119608404533116763860349924372054488444855790956671115762130022057125385934761010971410979924061317945753971581357090985489495019207846834509545650407304534053419528277661516815726045127907818031031111225535741866404354861933070695494934971057118320689784835640949577474452642770419441763225311707364949501873268442677914420022861094834563947615865978453926396374568047144476706094560986996999883144595444214602324036262321544848823299431944226943409345093977429659450812571873320436069941014990872745151195622856009032920930003587389567285580024852953189334067889725887570897095652582955015843157005119856023561168511816985292307645286368345765374020855595725965886532165590719002545073908558964261659074527197364846145699002918832883512549526059451405145897854033474640528440495137663214999177963839358622744499388817227992897341555081403472729816567779698326973673570446447863316351072880857894436617813646053431767369069899886992351613294674448796737366777045235010233305104542398036512259530597812276443045825745378825464289121429375837510997024956038274003684680116513295047575043749045492280661291521529912664956086416883553985560728411035058954697048769106925579019620290240247960829974997067746761511790808486290057636712839455586625116102237156636380913579092092839530030974606452777229804195237380605464636853672021468665854281088721945846527231088147701105452167928914204825514106769603067726990955091084776482491987893762582066405283048593994329933049657017557004190921610501180774093435771584011067933616909399205961693710496720839123524902991153681042578828888910651403100332771319984625581700711704224501830755080422855903890273601554383015313698042025130840474245713935521377480759694185371794112883400541619782379203191700825287302072964127317628007480235772040206385324656418417070331421943871973390438707796125518512118036889191941558698360624377286767540038207406181480377905566982369301320882906581423707264121206542339389226822676245187683479881516243631506464996423271607078291083767823076979594938396925510167469480047593550968582975963002731279137841446555427576439179244848789045177028963283904174573430497014832104015326891156857258360442842668691111157748802397930762259053457072216656380186293152301017127344595938407938785968823771606046471627844136049148335527895509015417029670767016281193199552966785339355361150388150866723043457519326146072454799517504232777296627761443358943526993800171192376437613576139568406870797857806503683519844125568792710865574696987843573916760492888462829103299244629200557061477515139335985866898332597458547988299722938300416709271079005172310489974950611399424215476365366686080970467807374891663409538477546596507158898050397757815973717975595206853418274335893275678525748821882080341666745569532394631490694407715977093527133868940762821332648614691120900591209073664018841454567731851891409205984012166530458677578279133025051320414798759348872028062579989683455424762151413798767297551852621964644862194576928087276160408827173360500046967699942440856794002667070017554949356992113967229485959799961532640786503333080624979225559844119359714386372638058582247464482003432437555059444473721599791765071866005792999910394991183303868873932528695597037503262220764162434468547734840210978653249690823745645708316244122586288093494178746543769569225435195631712027057678099709828891624221334321671618702713850909905455281921226106650634267271802923998928506811585576034544440873105703995064367017547607888438187876821786830517516469603046546321752776007914361072427784745500284705691488859266057630756189367506589639891185180113958364872606103015135365527600498311747421074513438894319559623044407915340030161950304127580134700596613544545390522135722049041302971278591593427849194495846360795253580229802381459582399438500074045054482901476492059681728623705478902813632677042284971214360476519730158508392114844087735933974690792604321828157210288522192874462003286010914485081527848603189076281891194041302537690337414325054196260720558214834229924301709833616324864767225979284557549801001263134680232571050282332227278433070445559096752994578626388116891693142195259004051399201765683956655306731108677879673678524209723571682957925315015583098374326231574814503385210035833569715882208729319269250385114085462826602646191543214439451956291518775185749715192365318189489998254084709354443584018830722068451264400090616995975904785090283120207932189296468146236629672798986924547598669895488252267666189575628654316853056262925238047822364611471719233033030383945462778503767909815502051384334027019106394517475792750912250818360876303855436923714679480170477454183555489889749331677912208207567271231018007373200848943483262735508692849891246569636307070533610227601049394700147748756425997368397942534143751695447838431509972276590477511729101052872610500353878957900214238567067215063594563177728281640034897808537067154958050863033123933542906454854330894037119562028239947081713426335993185390931854998406957525790135920574749059134199728136796325831864654250705251896907306655510072011083381444575003771920903612480251032615014573927532625997801145863978563762045402413497905374654421959503828507560406771207752093302455893218559078115105710293963867167374697211791881295511059492204353223909126085440769721674824507585829963173002921253562418940046503008485211447122950143288887545566532313536507558390439711600726796535431338325303720618210010192663229740449681312708613811342245235315657171343101486368371448659743921990701290554524934846225765682083668273183604387906822514452164777500606203934091923828821217329066695805645536050519294516524472688280193991196684845616977312716058524919637373214580714464805815612887619426627750382617011907129949279757053943025610269943467309628739286671566212162789586187024095459905207273011585145832759694701595850431270581350947143064281283112780424034154688114083959366108714206082815801502793059107649004142267832925787828111838105131648336177467507783571540501562252067246861705258296833838614963856905244272495484257407902637783782826118523844661029815452448748881099790552432653449903328434483174622040613336658249076398158414898755826510856441011246458805826601982336980372878769824430932900025865986922228911146940776666766096646177425749264086539364670751394460547321166283352649325128317764882390104692726709669245614263849185885452009638476977300950417478829822740321919267691604688906859895673793964364710713018010073035826916759105052300424936599227409505697193048233514988202260339816846131896052936927204832068835621645013553230279159789684851556772742621623105032446301850283417980119058982341179640133299594050632185339807261148653246055350296640186205102604617118878930164929753590045492503905852785325849290687344761303299976286585796727904180006838068022477795740329971916812498162175617254166640363795639171264502096099768677016349303121130838433310132376085144063761599624754681657945228683255693001983809760478099428080070407476058898241076524389118658873354468939815799865956398402756424521275132275120406946760200981407432793423889264502543648850802580104800711100281294043338319055502325103110381310877237475421764093287814211205031240777052998733796382269800684279554991564567201773358187034997140462234544816596903824739120803587464769616165416013662208633701803557284080011916238520638124723197183229999387997001586991751644969342566267064378627422897583025698293090840644874714156785406487144792716894564401728192743653813086333079248705858143298085689513230242215067933725268056583160305592469504957269413995672282614706296235839123698015929657323244669177013203183658659835389327554223108525924485920956928529943550785337744573728873261493163742406876485512347637924547140999774213505408790178963173120698231402641326883941154418920068023560549166759208292741324817828642534548237833519048259987955886437321852324555671543984929381031741797474346614719088345682488589988301150423590553283737224426020303741705905857354226193383839370764922136297382477884098386122457533421553957500111768299726258146305409910157807265944510225467996825452256943699032340872486556401170414468808826577067843384218500223046797016334279056981564018397826152222310308131751303859304536589046976521910961927717364811234253368595399474891244640439655672898669448347034674113843736050659212406266223615030181031702579942632641719322051877713889300227020804870842489132185800891191634268077761424774961281530816684847714678648661368942783560539310763822702753041232973871821831061417543237483266769103153440816231776159877487102263333341216555522146366039693421105708980702736837043076056455008701814561691534442114978281792840222280406684720066312307053610252957363848766439161149355681865568609458095025191681034243198919580491315435447589030498595770381637707236437729982046824412177776034943914000991172408985129661358935727593717155304172300416149859305809356693759101994847978345462565589131484445308974133367558652288810446682272205099892919391621043745551378128059989463994963227875655457185589492667477056899019784211070440966157292956159479997731644418391588202330099166235133215351249265774297960643939115770008745152142773656029596727963894510403032358916562074856331422544365577563289586313570846405120750160656035500906210179714738158187203124466522881568818214980066017911443722883916694920960034945648321705171247174896286370054413248375309419347379755892429943464946553145314957207650156296430027465100911425580271340603707989665742376397487798116175633693090320240149669860779691665536886357046805553611640583225555116649930343766903042022311345948360642460868995437783261707076579583232176979911367790337435901591013414210803025175959570047033068132187301484149035381675787552100665096590497844800916396448210321754046568720153698021395489410768593810696370599261800576614339197466566944855916860253666015258634066494223602163302219856377422139886685595599789841388100519607406337696698959661112981547672823662591731362068106990886274030597133670521385964301586771314063318088578012416763838015968071542430030662009888313717030118328229546881684948584865160652031269002251086040582917463508192719154783479598464716322380999338270285290470896628299451898994111321688624387343849731670467124305450360300490267370340642901533859716708137339526536629769112701062397131648164115017665906640485697046171328735402408228794605304785573063282875854783349295769466113867693130629421308963483218294237240459082306723236462115787329188937084234477658220010599375665256726961398666008729439125961078901296680403590134664016496712246356034467331607354799314053266069164387584163791985429995927424634598432227402386265582532202680173228670990022962865893685605637020832110125270304403065083353933911468816586537968179547531312143749341982095691864128901854959674666464987311195354166520422212082986775689011184879021269800115191473733311417833915005143332871673803694471902418721214205357029896052324830203700841730327568266977414670249586847738959069932543563712685245003381279680798538193859841220729033733584307190091782081531730217761871191677285747771602873400675810708174490999764351700266053362450034839950960706153944630961591436668155124666365252795746564034639687754895772209466472515272586127657986117959664654250582264592942301502469492329419641907044565705818885748058071354483951952691417913392137219296430296354893996502414518440154483356549783264789759727660234709755610569626737249836943363265907936432267307992203212095734982082204225925524813386295167788649356239773124477085919053360953415367196591197620487484578764908708767884014187419869746820906244677452535011111193046889312373345698889377598671685791340502429045958585596719044477178341876598447338653138153297136804305629679585125889340336463407556259862820746081887383315058221594155528765418483041807294394044734373708359687240309677908932093332454892779905225780719453674601572543707469142105137117929794743557563479462492925801981787289666428448634264479893226558834001339378301677140124734346658961771466908320265245246735120209248569580957884694724170001989697136683535825298173241073195771488581854143147737188334024710894233595826002504341792441471300908326494911814682471333745221805977545647776307160330328716207185091864815998436353004401230291677600312016067663741353527624149872872538683017241527859713137000499386880745647883772345615514775605794256311306763083148688613712068871074632902766364250338636828121438514065565045512434627066702356773103801274032466013218447809412753861366642210238958408690246657800475408296779878085442412263352107981148961410760295501733723103822920752156550168124323891878649237657062138399071951240821057557250492297931357557098644599058749478409049849183762905547887226036066326323952571848011088055500620383921209502207947663578327879789012706012641762673446677878477066176967250497785454364306480296720641999869365530469876685702473585137117809298257163107456147169381723796269554189761807926277472643795366743985989248846893691697409996928471219111873109922021636340672991288488391537149057227864370560631143471211888092941756851411778114400057195840884255908204760509232216687786120626591228803865847623532383862440380434442078453897009177014949118942489234503528271134977612742196162130564293124401028250564235026329987347055729985482543970068539752175890813998967739477181335743591807956621352397731544020816721241619941921756615452778243236756338546499907771335941147678457325353291038583519751087163682028776541769080510392120763203169072677170414944982929136386236449622295330797159813922748291522018014620556252278394030752627210635034039940116823224371317853022750808724488342291557413237225887810977574031046964481594404924305697487953479182184178109127586032577574806769937092472452507936825793912099688907235086580175360088577834754650851313363553580316304856093091779110668583059772191718028680819540892853576226054308175655028882972325097892665671837988048931657844768438171175436457200775570141893739779847545939465803346231559323527839864437648310919599146982603833689148131764959512413219733787048540293293472865817916320822428338837145233902954688093469525939289239221653846168220850324802476680787236535475781988297087482482941344761163827951202529455831732703313468743684125812428464837152054735992432286575945100323832069237835552340607748199453642464762625035485928174346485417986140930830078976953833057628533364558556441461489268276514104066649541809570190819144165567842635853884589144879725986515162745676314794665979312782795823309958209553008466176800528503875650146288893540730647674523552941605801343769942843716914456380965363005488757815215766393873728063154296750287458846795370009513132920505370731163880174623282183530421236961958513271248780732625707286637155243628417713530529407382610896727908304907140800232334488373538239756012949250697572317713254650870634641997553824152094541215142499772489432442034784174291728300284947999813556629941114640323330903058817417825553026207353073459798480232260248008511830266998882926868841002714047915969849365467680827220729296600468799308414945999384721984975081401417667131312471838281081971685472636086164420886924202902174333023759640051636299999516032894052303438035276034712617765584862021256423737070759473536482860630622716138903369701463788155214740401997600230123296227191695902944424439572184424649352434164728898379509733086946045455303163100265622787350528042324335980404579629459236376506229092761522762598737806242658544192158552793683449792176001837078493413558110991955187869370666973394229027245886507523275395824185317457852255633166046597137469122999561648735128940452546345743386652526089974114469994818948545024712247333621521401794106892648974541713729909577085132292005929347523839869283753665153126003811882275316350171384395760638016087177836896658804050469942265196381424528074266075130828989611889084882159964645686408332394804559754368852974851238361059066248236339996980244317735518497649119363991081511040609747495126412070028825845456343592702398249952659854971189054209390839280554399540316187218109557398429551226869680061308823976732541062050828593570396470787066092300677774370281494941136720573850170180257473449610260565826207488476907445066801136563033877112746024505019712242701367320019010019105872634047618468954173024897328635907053512503978712601475676061194252204950374023734247430427110993473254064517715836974181094392237609284513022978646030622510094944624953407155489692563136253305245685351203670853654293471450703609618017190956857403103563101920319608083817549553821069332080275427565208281979102288830814165717821050325152055368603776718048346563067138922138123520781145720562767169873924206690415511502205280630766507489569415560876746750843027540900338577314312186415352989526371129162813807498318132638384665444160603941314252879952119278818378900997004413233915492652552807506182644398479147461060311100440044491755498702182369467016208528958673624512676371531003940390907800576376363826167997738828632469245454616277429060608683325181560173815683893814803288860711147812812657738844351418077990616362513052535367024911114270049876243801731927672579809519195084284389147550841979513833625215892866656241780420944331176620947158859719244476962354480971053748861747424900255220837318421539348895473447932813985215363419818042911541642191446571544363176543321706896630142111087035150442387062408297883298730742166286220002976123141779097339734142365392083870338495909156255679146581754461944475768006906200962086970229692186714151398145277587376445360471514904287464928751562655274095717816018936456716578017229919904574283488811893221403126182400356452413859643310074394451437722993088600718521689412968564734675413561800887202435563011259080245856748695664991021327025814327083946062228555340191265345514064023666753102391816858178941097578800180554653369615611924780862360764029964884126142663318225096846056075248531651569708473178177102808282035666353324095388113848211508091652356563173773074556668977000647652545512733377541997322914508405387008924597373732530556921660170311149002724195870303685268121706059144947579868017297852238309253214619039827280817983981136234497989275157771413057994719417607428229785287896684891998271604975517530424332106951280515492452338317103874422536999852790281822776800885437972125938687455866682095172873433007234683494137333626007496298207310618050749404254585363772819182779465174514532772504535941176620960943744593581667787114718458114023971740289537516290408731232026085770019204625837390806860344689513914616415103558627703756255573202912610110722228008020744362290113738866211983983718105105517299521398663587602180323152876296316495787586729664611074234000482093202046357667059262872632927338243827707598004438570647720079710059975468061757250614455604806457607840927208944990762431994283707044015462501714438811320826942675738858658001758644152241986584484027269549298595323112570580106202694658647060977844344720780731084343759816160505487589625747777932071933581258832164507828449579259169678999065322969360415702075530105817435175823010588620070500525146592195480248997892261526603460712106821384982640592511569414025731976795276057804993608633707771519733509960059160963177705927870641087007079972043660380441543193407321199838707881832275837721355869512589484464064996114235933456435211831888171023028964735739613062394365518666048252974150162261574258414656041806862807310293890189767506900633192941164438903646346867929177199912136923849678142396610673807055324525976485435164852284408132526384583417259237795909633344699155262114941834353108005728228796363232916891310855919778845429454924169480289692141287140280177506340178872739782866731908779721978881591061317993786956833864426157563865206959026506823615054415553444835256927344275447152619818292294727064501540448119990822654458459547320014221565735182345772637234472650546938170971192295996455290160916118754297216173497018893311998107666178520465714033142620770343053130738807151009058568125578704200339377538561507745401366925340132070742753259216585948254245292373211739925535206357309468409651841250456437375842037666016851584913745085831161407437568444409052170730472793459792401112584748805034720426410786936480712012536472417938673638169466766148575722454693272465293246856896762392702182820802006108476790957848932260819818438585387143582959181098017173657156239549852742076025644677003475039699029874828298959191691295650980922931752633967920694602874625460855602807786286038080816825017582999162567735689581793698875130230232984569631553075900256518257400610415242485358383080727362017015481296369735393379011838265375981454000127819320822670373143599273108541494692070965613616075557190915326047237993067259353617404596641114994989683137914502792667436197265690541053790788878321516435062488392950661124654583757748361403587308959869324215334504668397312238982214727768667462651795128987380774898175976676543775399409394534565490833041543429564599990766339918844702619627101872315439624674485072624328367796723326699450597930181224195163146597771153424373666444726294769723277399582339897467919804953822171135714325799955598132613070371285140627241450841073310340565094680285624585369274383017841525526284941407854003019534115424882904576151627327987649140522849887638046547140576584901144203004793977456520512340547876850034690914943217039480015114689764295189538638729536865817813224907155187929930773385373074428658166971337262150736947795014436825518284554876083163220713176716785488369572773118395123424257665427321611089608907869127857567604346471701662038959553652947632517164062738170642695947955115425936071945648444632713614925995404082390093739765418567021515090501986937440225831150101850006754784923721793529909078671352840320495745310290213455541080179355997734941882472168652453203165372745807633678051008043986912908672636928413166171192911766128903370753533270858758706023206051477752462192872442451614480777867825731153610744444663241463261596992863104739477685197885403745457169717810014972149943457111986264320529535681880471185722559248110589877706450873112284008694106858263567002885431675923232672684842803452613417845820040747517941625956848002248909512610818564897959280616536347999751147217137613345292943024995195851383349864980614788395770068708320896360000266113839149158256776056157437194963531480156260550795402820872027083424048844265729307716014221682737235615119416483877680040752689773481518018606537807385306695661221245833037549130219897993400886158282522734677235033721835063131294523145884074843260828013158516152497468932625260381982192395750450393622923364986019027319418443895089181331972817737056824004339281217295764724994190466602272208810343528984671129146305378191947211148105854549538360930664503946149458672363437876210963069695004874945130545851970975522690522203997646690017233201711884817830995155579651415249284385867233203236101189465557870964387175477986882476170915257819445756196928787126003099650260479018107154380958485209098786680458419828987181902686350400395680297442309868421643048155810453607597309449669107237680191428158628553267116479945199675202295789692951101648185741693158833835561526264191189475792198804357541335783510519306441964641462144889369543816496616680960914360677370204765006350194699644754612716655912751565160978335030437816746520088948426293445388969194912379415544876734237396530837312564348272164889459376296224735415634563320612393904037902483639944698065915402869948415047502571535261483514364428523079643037007735400088467950165947597550703829076607266516436755947688745576869068442128844648995914996162842040281553813659275760320126478567919824866617605776757408214524499132184534047353556247920231146099200218253629476481008599810216227091779497055784138417926963306901835285544986827299393341046400494024387285876246734791423146817936101513462624755032660827458784801936189508913675318737664556701841782178483840671458714646037192231671138517676672642748401955484365144430356833209932523157457471342917837765831100306628012575685637309568949796114253415729004868080512852532343886794499978427517301713969013955003973845683742599256318358847631634099254591981902543084413071976292797126088674002076116215342718179239502094801338494549802334395928025775326552456442560180004002783236712216727159142405527336574032213337104714664974921249346873623045152977247283641091605543670519663365124523144748865026370933886043564929653990707461720552188931060683175156965482561690848075276269100597592472054453643949976336570313445302027993980718549842954569403959014137681541204512452512007052051766991595411545430676190642661947498147948988645906737607508108429734698778597697474277825971435645798053540025657641749659484303226699043430124496226884127356518148507300520748256143697068934412753536686223768822318281200792956520491257054356076735685839320504012536302242703394436936426320074138103821980619840022742145064542201241624406015653456686091788621513365456223228766832712838726131173465779673311228854124301188601826059526404189061937859930226671202039011836713266829025896393253401761984721990954527333659049447753238840005925904235999503141627713746408689241259363167801666528841658169684838130655593632628669474576970507381828300916342450001062822859024453598162064231788214619708629279839494523942021333129978311123323639494003763922850091342678371161895895604322876126068065461251839109966429716818937908232404482965635652732905286960486313209971675270542347790282277682905590563370023573333653476790894308976648258246884114974587948321111614169863668477002691378949094313128117392787341522415291482646932912590694226251321460890002940895429395385593044629085130252649758647308740036519081006531823572500030857125953605054488891932786849507889759287884372918119220284416412167749239638424499318963053945275180430534916662118282383748568955257983761901239113745926078888929927638114605974165760619458846542023083596566456610055334608854518664462864680635754612279621005738306933149636095366646625001588090043575485995291596679119108141433998287330542010686960851246905071277315626773237777580709041670961415966647060690212535656802625810953702027479471871694186846942750874926440617373101120137844445971783849620564383791254401018927627097276950738632400531481485056125385608516115465349825492847667604703005791308599733916737995285779650076627833466114271895085867399343203876988062059306196103431755587603317273338847843897097344768844326240648919220394371062855539890805702782354009697392814361749289581709016992447546112127458982565624690547540223800561250551284811054160519361324162381743154382746667445696432807383179090303629845603678455763672353040945864581821332220307767961795139177664515343397722606921261680213520851965387679500019138086283722951465842299530963638499823287094604462039521957751812136431394005545764992944719236976133815764674427562378622372484636353115062833716177556460779193626951473905754268310440802426563317483637890924990347808128835631998784270177069461302723633620682915235602868375231671235228979660244533812710377521531742676908499928825928267234930529465625036773557487137059551870498549817127894895409101517395114899949456523543093924144575892659257354254559364727362129100878414317030204350281043002082884500917613642222893590820237031688699108281476058823676003368057685224261140232371317638823409891879717355307240243662263874171364178328716838917572553902972099142855778273604290616266369904691902143361127477078962162183751577740508453177245786973053016433915953620308955740430506033473718364609756535819148675159267144503036121702481472986966062364044146654216551918833117174931145520403404660285265157830662944901168084089574743881979926001656352201764675196209623894193247726827952679890414947952060317704383003388511472974072571674372443842659287655498095363607914729561129034017590018686023091173350370254778493427627854609503461660398652538426409483471328757755425309392100629859547276466423541344758301066690681425559551760902216736573908316841811959845081426906232505285588637259572703742654047298788725746532523483841555690364486104537750824831306497250576992227722407725044114050883431291944405738149509353705279992851875724486910610996366006893344854409450947408962112232063239844656669578004934361439619483664615293772590972823763417928198629665468980351033426934819151314541633338382611127494777032948687622069319682271495543155899768421422433675658447416143971211941650655099525643849152771192387060709052745620714077594751550850353386469325865879735760128792312756028822932670485970567127280957524121374535367415617346968995737812401490880827488499871167903493270118019862663192025296370456934538288044320668732396115438613072458101852605281548750867553241441034439549644389837974341428917182299676970462094412401183286637698580604187196625092437358772222887053242989037573603617436848093077205417728142859909078512339139220783890160535339284867086610842008482527265512422292405694894334285884409841843457319159754657142839154526318676210370679288045373712938142285783175368928889779051186930525009169455837436015432351610847401411182927660132135046903655259114153544779318975283162574827777480069223275090906709055139541782470179488626372614917470322679231988752924919363574996647810132296917636218030743170651031135217787053759718231158156738898616890807450892134259247312050867584846699046471306885466018854514185220522041441003677327083232320063892429365751924877604796449309232108956308828011409659480289830384320617056613885016933356658150700177930326928762750431327520251506464119261593373024345312797794148634707084042105103678454508739551385190983191434129844492196668117096851003610516226983002834456451014374530911436599200268274698150321571713475500709403187026663082990636280489287452447568006147477733099216724027290091736992500550956977887806341164163682318118270969585104405845640877232635257826853114698467682862723719739748798672386190240306327142487909773903667894217849565655834381001942819723211090799802085310874804148267203741332710370494294246047586884924225933668908254151647464438669146030607164897925737109038565994689875382368502177605107536402301653489267874817076053958339138306292856576765016672469307287324219048099679650251826136402759314918569851876198541088993880048567587152153085752866884948588113510541469122566743806908164783006277395342630328199651608738131652712813332578268793230783340730633489250857722891931363281202996354651257799568818748216700120269604118359993979242718899555896731874932327593556854977491205710103588897751748368840280080737109151569842849410489536397451068612952767773314100235669746481797759789903132598211277199523565469693483550547935089959112101776925168361912515747439828023801651414121899323256691987923869517754987647308874894863736454949284779881703406104467007323308182311711017115388918085391498094046191309513401881561633689922223325430241158135733212139365619093427016881021334382383924602516279391768784501697415704598668884842878198891523515533420153684870486973931824533590783392673090438422379165935584977299276048619885732869971026517411047187524205619529133685348666230990453009848663323874426229541096589838876196374529039195803338547132973343889689682978945892196633697829633428709583948755001019983231092040294440266208761614945309677411992627666529520652655229945583724041674927852979145889975412231047163073769378400939660607590050051725438723040929040584783839742064055223641040572451640735997302510540219660855107125896755325741092774234504761532271610141097982474814362528834962625887114686910597834838755906124336066089041407860926008880632903734739297854341296203417800730376422071064994542009411143294014600897317844473386760387058294729297455052523032034486798378636498805560354519857278561180885623159464247724242118540666663036483644285396424948443458176903003705280149718317435274478908512154819291643949915495464414633814937826996137621356040107125920500114669431928545676931614949563916101993970592570940990979994530307542215939023124446681291634375374673366075432952897385188313267756423351424855222630175303777112252941025484737882242630697272100793676863963097316560853669554257059585455993071189550270561686051115657771251104706418692021452666903609624816711408927590618015254292639031564644831476303045919005707464099881631859756812777941740390996681042549839916241368904295223089166233182769518009302503605527364513952006092510107697230575496448688427618557679139030876809462270582009179100102060038982334069133373712648638984623690345910700923957348743547763988095618980598513262738544021790179634029013860239247249472830620316872424967909922798582599329877736148821664657737499521083474723406989011614723349843641223661966057063144626380775404548582300457373562304563463323287613739808588580466692853755151613318019462327638177180921500097450395085379827862747829487287316357205255310904010862359725400214294734681719699068401440903639721682536498030673870303025946000381481164485827250082053878205586724921945344219112869862590606416331079819061093610940937860804181638747952653155400521711983603989645754669838544875125152961925869113425780488119959857388251034623749130894280485120145959791117668333478971476208624486279140355950330828844255579069831943595256813842642268209400910656255450852989624884451520793416707844572514849588733112737950563109336203508092891411673145218194145929651719012251679663398651452721559730851407882346705997399282217805267323995003150891584834935481901712735073499206084889412884064163022061118278919957477015251538523249169395460132326040952063205637766460411561772804371923360884467529830317735347283111241175563207049589953495077191162414536701889293526464708864530703291969771483237812871565994499045787019755367841262922281983428348348563591494162833379923309950970293114267737332474912105510956598441129022896777106785516387679232634001622916710409295954723197987722292251307491733110298007596976127010684086629258876027595413579416350544953674242335070806385760554649692580671811509747164813359441382982505463456732223021979609313796483687459477257890070716539065767794493917100150506638690471182551308209276587710612289464882979504449706659172705437869846436270870042822756632037992495968147888911986551025795172680656237849085348856621327397013143284012255388552325085372887743711723395230409827603303337318654869056330280824967338736239484232315774574353312473514044100618401388578746351793539851288584875294533819160421937404089960777166910928986417416499332332932641781295000754503241164538459622340264623062481924591158041004754529015412868016272716901793263587179800617228477617875189538836477294431025247948463024674920534482566457679491310632775530168192462732757647199028025517787710591273261620733128198479851978037705699891828225482121083965815866950481824457218468241179054577714712313412552411603160397647404373102271288146225728758146135432756433136198337502536421240857323757602985333434305469507566166437327944746531539037394950580789410005108657045903549184066575671350725738094317198478634699294879401146372290796537392547252556138358770982833834196567681882658424567934903282608376079019179092583556665141316649520969342045910843618411831466051188737736641884913166036660479060109891581351187432926851950238825337890140467887902244090851768718225478664333557382728440803291630793556359420513259743552604783516569039088584707936121502767152475669165277087122216058303525706036184405233459423488913158360218879844598502468133908401034890292728897890774536872006674872044016191189113405356499469755447797992959449422147836453428762868841225731276788718308774638065991023818237066360034446702570095046021924570679005107163115760140825286395031705877267560899840472557391023149682451315250217199814476348579061518544242751523288369395443527456308078008734555913739690362116046895983561593074125941052721918330878051094024519129789152870118667622206433341338010802318352135394738059988764339103193851534621044160741873047729870965862697067073911353991795184656073913404495071938988532436794484141794695534056814327052559603680204370719639699691248457961236607076806675828117700888792207186064460530207940623432422570351602121140958244107975715674033123233356949078012784695772187224754613752757160257123797997887782821714764157390164247267049231972484140153494875157036572343182678965285404387592061714311536863197677023067371424288904762435643956403154373025814868042272665663681623872192410643420652494355892108016788046484872426464112480573931088059733960139338408690095145982081154058368175695476764395455046234039788770866156480067993152548419587224921383689244453700055873900970019261002742316368703373530026108596482228714465901184769861633077123508767959388151840104687634090055510058762186430521656334664858905140797494954682935740981937848487100885544728776427097677444881248181746979993055660705469087141315608243310875634887731336868958720591260736041892365299828857674370042202288088388376704269571807938137025425985437808746994213443055844744902718996604178849237914934691493334403847657637564377172231312676439464104324830492633517527581443617828218047852941462514194057103873348500179695537716319886452648171190463737558018439403279253978905761889370394828725532493064898372757492692510526537819993596848272084789580260380614160694736732520105715923462857204329734561002946526298087771473368371357622847555181951922596844318490516944159752380373962886125470629573134122655627251674272027779816470783783567401583602458096247539474568075131404257651739979650811169517656324291389191685878733782799024097271134882549796816890497421069218030879379906508417750669648741835715797982953225087195415249793196717871131032687042001661906227786150703016496168176373795451488594542853577060258523702539474243337070029620072857835142933358007493531198531065007167997782695307295131466549296317595777174534847314499732662200831408234038561261322333114306926934053570203023330749063885332573344190562987149215406792103686769390321081368293672259930848534325541161946492249668815231366347333229261469583257350892646584702566454370651059605874936998927628829086965682841051937396923809800480145201924397435522857788665165444052384271344828067291169730281017598246418588027797844499315786347999159370579430789408630622712431589389390532656666071190865232473287913045992088195404297760609679409802821902900403832763994370490882862262081180988611626967568319359175234596709556880255503718918928988691980401605922588897648708213581128614993835120969843904205946570117978211976557629549884470270136821757473158033824380725395361411327815481121879612041701856497826024989192157287740954345915546531917012073386327243967945667478059780507205545759050726642266605074623731026645773732547549629781796307155581119323837784416923543625854476373285035921470268366036780211079849149146896227908390656913892612202965689614594013594419501009429804977206157179006881270880024505425527973298938945811416452980272459973903886515698985516899467638570270059573065829519319937948971048841513651207733880493604965329168200918666806296438871750231811632393277738172278288389836480053277005156128414905110103455930181604415787120080253106799883879050507114898542202171586859332266167065506341576383024122497832030327756650413871404480348457976953950895740959817305177922608313453772817668011477674638780178988361321789660607488406948386275510448037944440803116523664618947850460977808070190062034701842401573733946055705388816673922939225251762927427591855203088062161097814764624428118499503158091398385131568606989496679245125755263187975840394458017704625054669887641497685050319927628825243402088202878152177542015089030098441046108931373787930388087012160816923231990293825505225736516858084003662236632425157584850428879280658613195668812100575365747171160392813245032666523389664302017536012538031766460107384103965069730654519744549229908614057963536218485062904541196542211530950361601706652372888565976110203583456376881514406200641745439645520934480381431196658160741386186098464498511855541606425910240477904750441310488069302631787659929890310562371297812543787908658658996910139298140545612701512263230971284003015902289748790280436134653994871756423517532958303090243972852049099435573700680119610164346318386964947193805797549930340486087089682160206312061364277720735319663220191888500795541369742097495253242780147050116427644673181909561729031633765985556222211956990839929766622830650347307432451933757799188630174486342936979285129497719710265085821862039275351126672387270117186962527980722129806930271542578081279209985456487553099998753007219795931291066747625986514402224289362336396588601851541298728217243273609256645307173669875581384173577091249571655706032539338194981031835658987262125190948572840706780796396859563872249053376937563853589968794327318375696552991461431604102309314904259225543615531453082904913804313428532381748575815887954407329798744567799275928643270264378004025418595896703536481568073912366111244773423110110639884619889664410765775043233185499564244236470532336685033912035207306850008949058612154711198108052791659352679400401880140812705350524686470724208016024129336032839004086593785615974178655256058778131790682840041479727875546252307769981685823740077778773190767285529947673141796145190210467329325505730212182317652967858677192671553664318895139038416582839221180056549595185286765522340952794936021490399203091369375046458487260829092416854793346211277979254405499468678857778866004289688415310194651211830802726149855516708982300675993626708931340971415798877244934880805367490490007885613216896990805208001744329134830451997108613831848301961087629228096254860043424025224556005088489820464663898337251404253972273223069378942081623647462646647283520776371132405335586634704767348673609918373472309224585294509061212435514000046818479547526340876101436480080719164778581301508020892096856089846772711653260350916379157689470369856920491999975299640322676256106770368756992389049765463065829339887090516687177941174166454178259725052384552945081503373009024507035101321285476286363426506989568709821881122319731578911436260693816014880557081738964424922346020010577571909295085697289732031995280393872883431982223941807388659004467299348615912835094006393293198453058568093168439312413354456093671792673207189950916592994355085052013287314905996293872328685699654080501970853804180881352861016867371462796527326373938194396932904174917265478920905732898586046908053235664779797926724590359387027693749673871668531210608948829161579218013626528926367476806755659193711100650030734349410175376039345081125864960623622487527547923373222270043269982700482879179511727926801794855451146787184971200876861544210119746782563090269012021499327784121152862771806104678756791210542669524916520371711694851497105417624917593857752235496023943780157534064116748433877709052582406738669792069001822076865393678830316368834797140302025719565620792878079352964699157377703057837391887249013313082561173376379204605001000132531682701667437043363063029667983773176519662370493169669665425675604529672173997106919147611179003676050696394233176309068335897374055598662003259252954960653964567819958349927194091352712549380197877990950653305609184264562665500275365681641883030156586753292709558291257453368197859568662111009679309883735634424071746278655201516332092472134349594929924638036755243034596545050630029234277095387361050908673831069261493313218341976545703745255624952959999765419477370275701242777779420307060018330810290284202794920192795836556512555200994132268970752128728653583220117698455364752584015223467697959059159135748656486672090473881703999072406978011866117959799644803008584238161895903951925735973684512369198769774890649540765765811815111280559089502470635950147266319189338571450660206596450968745804621986282903938493101657091407605923763584403322731917413190886493422391774033230695624099840700044377173522130304287785937319140988350753310130136868843415335091225506793765382914041134888844750757939161131007151990314051783106362708047636265486779236058298808749177551295946635736314802170757186872552342569702310676562740718202590273796041826117368332581754145561690835874203270140219195127823987075652975524617507796913043336939948597960395483875756474455534935414812042936097803649320052422241196002318632961661567253996392401256960649048649990380543179283468685535893035207809253244675427934530360492921296849887380244151911414683931769509044115062190912112191897934017757417476702542278921688434933557155669354655195931568147096558849820594561881963995336038226978715875890115211712126028938342271024480447153731607428918039110837257237118425247413133920021872463493308075642941889023049961791205508625474832153428796898864648726239961867280234578644888280754426316736814740204829177189328790151533220958377797988749642876040845475468450111258473385188411596088837641816886893427406483067275591962368340702064974334167703951494251161043427751754232821167811245956706587325800997807161365901216471259528736555779191480980100714815921008466926544443976640548441422333271318655000340459456335020225304320911638231173958609263434003709398654070512771578093219577265481641567357473401997112846923295694488142125480652226176128456378979186495502604166521399118554234749143515612358643208873204505226613599063127056649435542986273490639306338025366732128067747355838687598500333136028056659790518246046383936017925824553361340388933945358776051829841207675525500209521890752620031210866337951729501240677327534555878169609607509884019761473716561366882840617869226765009922822514422605365182360716308039871789694855658175516287340623410111288609810476837005394070241249418076867850646476832876078465175598662800895736459231644295630844658681344058217841017157349197568791961430506273896174275894973338244158172480785813084331989283586118461296613692955694008809950723422699516040226062223811592987901732803527364345441128857958437831783993926816580190985061695029849032756092971469737075922688946132506923946009304669637316536979691016474293818567024198543108164124070442761752695869037085745368390733655048312765987524887381924633286809487712155253241276320563923100521141315330746064976198499462649641078214420583872341745410808420479563429529047947374075002049297464092898792939286316032458954307061012314728816720009620584343790945591482009349663300533622740117407461042643445389251526589400751071192123430637050672443061902415145888769545648527266185648633439892542191402480455081858551539789256541949174853824954733705292835408232781916095935430444867046764898095601493344616051780419884224351202839447471159124639546062786413443945648988407858076449933969594976378136575532515467091953573343999951201584288291408205323055171595717219076080858261653013327225966833352894257769990726284531956726245500984925090271773814276546973564429954398581323949754155376066810316394660700443577789749465081038965391810715577390977168545815539070193364619649496342005995418827503095832061064394512103335850179037489619594955891451124730311047724349664690754554043196480972664688288866023660683736844044871309360011627122410331803519356722149822663887501291932671967720237479649136951842082969389951226713903887790731037115251469189427253440186832159534099998512338851040148190776182540554062015611366413181077338699675142820565417331945882609782943153118169297547678782711322962212600593710262002538543411068177626802788750943988828935392072455994920345535786482900041528857839333691099225614279888488188426169325969969264184611590007580731035703044231232915855008281288384509717735416110274389912283180862082043606588145737052774299906836512737726629557814928563466101832066635769650884548111336841185530326794729791080993953968356030509067415539004606879370839196688497197656855803287979096398917373816919110598232631141183420990703397488170198494284429861630790318425615723505501075536893261502266148712192699210094201452384610321559302348105161260801810973318836805632773958403518720457959557367021537874952530147300833625838568787722252342529291454194627182781570885678971092831522785811374982492318603471327440281145263511259756504093191107088718756604555249577737749269068926400345559128987379649959371999844108340994675574387854124156931386179306368949271204975721678502235957782493963104917857214091169054834481916468932869191191105839170804294782424683681136976472554950816151992096997842611987905380209591659961916318415459020258766346660134213763915770316744657594052918008334503259625016694064297931535603727535308291571690526480974074777925314938263183932145899961628845881295969089183884864074476370801881337106355071434730090440926313680075505884626626923087709483451179673257127259745633697462510154400421780524396200707583010544760390910868090732681128799301476974167540202517680400705542121930039426129636010831363569506002351506602653961611404597291828837705718145225191328037165214511696918104940043213359077652227747421047234241295456063807234912545744992807792705796570552309313307211273502948789285495497327717035893065445718987796047009797321262357208014845867964151034151283084544854889224339714859100536387939803474691956707498082132129163302882829278052550884888317319741411315603705676536497756434378154227063970076650900489505437926602155910340173046532180270979940977170621732748649604043467768707637816989454765238534650757394430360574411141773108412175145799321749400248461837807666650173999187641406567423625698246145751779586333793279557996328746842521240954933347348890348219274536463828224364391468983551340886820681528088321713682862994608645747335522004161812807364948983421231161422033724591562908674933727705870261061825541381478599144570972927661951600128075335609339738801805791402331404466804503068043557117240674888871591283725425254942053813972492856567183418667095638872148304306281166914322173245408383689387881185325917379092064090605480001004679556873149911313937230075393495641253963281898603595298966183012743844751767804871195513202560891348226841850213648960104621711727970626466357056098603145251956024440704726647755493851548585152163940477910318298624838253523674288454376401481806418355297857154912725477125277297744298578933796565602359625503224225232023746617717590324550273265678830957091129939489313261979009433292940302023924437078084193628572777895632935565700350156044687284361119320321682067023787828526494345167939440005597855206201763360664716664062194696269735183481728003715121172869633836871545145966543689829384553305917569825530192405938786829957270059834059291951177722821006821262160998585914766904630206925177194645538354274528017945410084933213800670378945403964173414712916065780615497381295834394594363695263655261699746751467394537556210932509171778525218172756777251600335373923650391245220887225357209852231208783581522609234315733555603646057448700099746667613617207695377604158552449245670888066915344040496840680481804073926269872654703813692567254368796105616693782043273319496185889315405186253022715311171571859764753107913576608336897548719114704117123415107452664844500220605828945025841817129397240602878126392962946022032073140025195171413378347376279036586267637513538148736912363152531661617359337306483776507989990614812400991948642851360022940674447672824049394065939662499012531040165166156197072782118481446713864851350827775388542686496717138421703969701561697080027061852920088758907125879390608443776335563680008222178086111854247631415949701145663735713167296859203280250120297551627962230672763751702547422798899568309099079940518258714085286502160189693454403906199594770312318530103644518055790434173352064360591342632953205129637602136846137686900750124335447263307239155252533381274465119063200570241970600594876974400256057554433853238703087094763200056246541587776009519860035809347021407840512036139858526412063459007797919996966301120399476860962131156698726445098779024700645875688388955839707428039248048066913506959565018201482058686558274155124223914878448254120520309362158380074495021621523288808866680679666865949802737836555910560538460906077168014276863339279728364629335470076755691522247311808497098806839793572997007662583250870300825856418441531044614844007355409132831833279121493245245947842205950663560366168231622306365250623019172568053870687798188058787650023957644326807468737083786767204441016550774064702412844643503188761944265815563628121949197647131977161334251740362697765811931408164868806199495389443488011192362567289303090219533914469737453736629041645410859494039504423166528148015809718622521464591999227941125329400808604862151754376049339223211420982262607281963795802980713673339699455024578572291883429408075786084803183083735870394038571806944401585961082419332504469302519059067656456412208467479917166628192736500534090530500411787667909813801064001453426812932535977407606551779912956204196629341924647424166865094957404131920591008342923254225473267604177027703404161597897844508529856073743067058571326727528537579161085520099866255096222820743011847368864471153927573984303874689435910824512149193028559877727289877181749028754943225061467759133655383896987297227724004146182363554762426062737340694200453005730817737302054953546542455259705154078578117440133494252655001753866854222424169012209239587987709669074411366760506459700551952132132493763852676297724355441592355178788021026645948896006930636861219498985743186725455390408025347224054913923727461914586711527179137215659121739851764075455715647627361584750398354922069502853013626839512366539411335618037776302729022945006760588714410766009510211495123721056305333792399722683637458994387087834043819954290248607474818158107614960464738778456640304641037027223552767681878008891327451777470129379056630480500495229572378551091042843613249296531176481236509482887608502313814871666174010456927368702366760509869632448022097542563562897764109379023507077299803454882200460104269288405892054325722927568558503969605278164795453929881396505625142405953725051189617886605507900164789537762342391076147177644419179281785655359658238970361609917698388715081816912993183736096961336095360121104603740008338544144148665456526734582865524120073217500034779656475792981526478075547143422236687260469385027851524048695149460638914803363649917874847587984383604448207102557315039782412609507963090352817032631086468065286776216924567551979152863120053490984176261812039779249366177528809669311528066190183238024085256203633921980760049708632259013183848001467702495056948942702715097244580848172846869511374636634102342313889063132033248311283911790388177427909620719661099041021784322241676242565518167705008768516199202513121133724949791365429606256737062357706363041429868063157987432172378229994316131425841169944973009183853719616515300505930494897612724178047286751034506884471835539347711233509363209794060325466917102231199628877348450677865552391367850346132186845191660505965132718847206385381912992424558525361716887744165180786275857432666873246036971222045520113097295270742519290929691341558696742254493464131261236438745740813288605991697572860127351455564319054828307848046740210071765448531407291503100566395822289421765364096944942809363436162332951525376617337103024518099522949049256064982594547637943377366775210278443975408000850475613051434402205297433960738783815410609710653531779388109814359209285390520813840765134143520857000825161091128706966491756233329444951553572484016604301905213785126303729265809269425082675273191807544264288731863074600474404360136237628544969653797724115264324394625246961601764706178635517654429910500381926245793142864669129285522600806792101882222828137892981828018174763395957509082484956598520802816301621258937955901438123359722799625300104415467727874887343889857393136197675068620052001824613108788930597287404550551670277861935822436412472912396265453390506413117248899265905303299422674055605113533816733249096028341250137775790696391671018937025866333478078416595045081280073818603405663001275918887393997052335378325503890267827648010357659554952511795350375564914409537124042398072256201945427412279915653837784329091158275757635702706827800020438502350265504247144017480166551196725762760517126072275254259437141710823102244522713547873399438646130335134500880491361227987123032583598588436633046429793181742691936316225589679490429339394019397217368095392210079344490265512686940074966001709668141670431880533025222244028433075100641724580108251353641876729733062329221979413499046752984105670861719775342540566708824763285996399711473055632746227955031349420606453100620108231709675689114944330288912488078620223852557490257681622447402557887146452078278730701125908784653611060830072778080624227213289851114459413187013196211574951047305510508464818880831970059901710408196780521198545609565079319521673166014289132691076927708142477057418966335085522842939270247428085555165715357102807193956852322396216167948098238815508084275952642011892072803829841754121316465095863998040134679306351864288424281086037290674018597614094813534248056180040299509519404958102635985863291348565264048934053924301923083282594484657491482673994033246551203825102643101178247017076983948312778191239258501342365289334027583129843088919440423136999209907561378266882795163125722830988677336713215537036985291841513729015485408575733623498272432899467404982727366584302004778679890064446978359476282157290614206896467296885333761335938094533236625958894430138465461217287536834672981692223750744390950556933727285687524979500221693261661634819580651545474731186155296033546535564203161188687917389310435631463511243854878170609751548092802361226855637086875049976310585456384678592846172697911049618179016910060802541284098029215494796482258749661311659610127017871446641675541080054878246759028593014308168519746555347380517254105290295359396034441321455802107547173050967182559405791448627330933692653615265372923995009930479982493424701860243860556060041013468229909874890055766098034842301837451136494342168472612869644362318863950487464431625303284510664717973004388257031710637496025890968622903631083405611890961617524369081721820608686573115514561159495157614218062845765996939187074282962973090848246523831929010966002784658227687799577431545339813888389891104448531775286101994565693613568353864476685825790665433549544328792039961444229564947927788867853108184971041153871449816412973112468637657886158531216179925129758804745503392932580513777827983419483758842832707379202404416348774301207301055038621799623108101614815257711830888932747689218811876959634276463651926528124844456392904087162656380309416600436630341275542562602667838165591279810451022503064471585506310918918134224758293337846685645407335893381335147177873612533255481140501285125223471431639932475357320933826792989387888423812073663145044885673738294699009755795283356916378466753055813838017163260769114415300763817486067408384968109528577899106410712641249915337854803085859836582861312867123958948406619834026024955899161608081283738542966675544952822577988943471568499167668062072701469006099214911155153083175555132589156650619179579684196166527034614616398081820525040776435858488944798248894048895371589838922571636341369883524606159778670192610660790960055847353978951732754448070172510448557811823574354840795631612034119364780111447741226632971399163240326075180384789304877700257117358528018526049007940302916285416270654466417749035571661486392689583023906934476390823407428231826675560633526990576009550280537088014696217645807863990176438134012289177256430527543263943584277398823563158962767506073621041992895541197632339349764054871395392207981749607146982280558927459320247216676601830905550855276571794153721411975607287147438776535000898030623183625237643294446352861085797300195324638494368322829459997280942350395086235585657386612223238678519369420536625471836937496481884938485151926467732809926958740025270840788663747745713114430975203646574499120924747373236807256560882159164672760086218373039337333182888863352954817093855881537947157965910202468272291583414190024064098223879425822133200727620927468263179898831986326716789819002804153369672482103907751195029476246395045156674145964270793423541306246245138559766748620049382603658961862344440092420795883896557962967004653812107510877850265892056001088238245366859464894366353971627771285745376738308850486902299242240780725904768892118110046690621865960562771185616977558236373441217391517254563511766283834808819056649456794577605887854343693822306719507843882914908100807195874974498439129371238628922168090587010407864859355818553492957428455615208413356663836900370078652846155751633760439260736408349374983183222959813485959908709905398971383427620462017994714586417603844635337988694770468678412548634741434311483296274217403734689854326931374285768442267231424389755628675510369063296868904586024578462119308140602759204773764698566893827937519530738333443245461442742382842470649001762932720455800275075391620087528594093786058879604119202521543048980706444141503132732943980938249692099963952096198565160048753457244472894359033290929387977216746167809003051859283850664862587580008156322921940909014075126997113707078676180913997064538222813940340393562971517206838043867779108418288454182013897368972016588393351930677341713138400954207987832249392225526573233125844743055430267317106446502634217519100486799750171007889545996280582892681403029775857877927297465368869639931207434121927024453802171833963438262482579553210320302186142395292741798698327276080893041098998123549489085714133473212369697604600330696163644841794301369728693918646287152004589493711554768072513442867018633066485414989164905610746340557337737987210815035596492276758278991850249810059011341705565090431535622160494617806004385421069403272061169832701034522852619674851710547305815155740684097377110577011025125715241658170971096407567559720338732266173221523173387806167326235270860261106348509230240806706675212789248429964516843626566521548034317899388491680779906996392064223122323720438572903371832717706743719763955384631677066005592558564273565469780543571719726319607802292825198289992096879205115873189959968220252642515242602218103044206459539423416985518863501754786092275080067527685795149909096722844741573661781439094983883520783902561708889361805458058565835713593622228592040584357211757311771888721354284885327243282827257610372070878034817243606871674079049982009291124124611353136512853377927216941008546219336095021918868552359647120798990475320658848263393454981924409638269969607103357943367671023201366503039191153145760784641291555380655677326589484418554838165454208789957735242006793936172580458516630936370183862892402267269355884504344105097526220597110646844022428973321786658383594476491556490660105336752320604770865677068238733238553759481880631368939927097539079697215366638037998501063545432256544228751753556459079210137678487886579677348105190874721096887882570475765303197863083266143373035089416462928894340781875845014110069363246301513956922203810948879535483589227501746397970651742481532615067858267590004539253823027861139642289749847216257382766313347345757880003642469475816589166420630983676846086776192812505970113138924523695141895579836200157768992787767269453338840799997163155126300444017348209557891083555971766726283585223020105517437580455029630986407795040909028469694352387695120811096760574026838587258522216344061572433221039249150476020089518063370480682141850648219165288023675211754662266329092527209233773204242536326480179029968972329625355165648608710738607278354165438351514387271865751821073216194488822989651081054884556087361539132104282909009333066805026771726384980772642944265939437947856428316011523732981770433243493618169871107485004700340815970783229216238821607132706301345243253171467228035604095343603873881226777656442193669219176908003677546434575888790126691284727357710779523212822505866181673446190400752815955923624101083262314153990893570959244923844650077150441889223219748229543291501012035326184256332175306537560417491424655547189104975402791150081707084698750319628427508095359708653979051347022134208840066963174339583164641492142492259638559021071193169263347534483778302597981592717771915973016319817126086327634729913838580414167392782240863950101127120041066101574067368869849081988926677862931895681952967960209201625625587104583752985557269575002476674742655588060067708595127192188592394937177861864694886070473220118254540682129517378884476276557342373960505648989693554951173745684318613377323865121462000441128335329241209845862139091200018734510629699796638390905654566163331129470038766530926443975264197398201808298177363291024036763516627062354513986992656976848615992843520541947029544527183550213079936445020910197394303187864501430347969846397200299712366533035676794293371245985489830661250921949385262900571203017277443409347564179375050463576678351314978152285609565358375241379947479728528957098617712912287441164533257189257635331295328911085646081180379383839287746471923312131046524881442418317930467807720175132960995561535681629645274614212925449104191128654499978680356896258786461029721353603344770110022916401522476873808751078535812211933089323448927863381563720169198533160381607157428729604797116352415480950215267912002242287494879397768973929378119105912556362881574697957939835891231405041671628012558792632847023068586167374025987068250823757843809060363459628633618875202465380033450536409906741297156870093062321941211920867023806779294824167766574146403952432665872241579717324637106406520788096448773025167224244895586776921669361235771280244376367326104717216465033686715705897363476186744097664382729582696090821139970833170919997361111765596893527539571444011677911429933922389043724426047205846084956032813118331241812338963652236959443924549108852853547442865797318797760192192574089079316281693273877006337234363053344800918570580139737018250087940564215622270396451025437202915634402309179411397084774939442806742186246107847326037546105182107395020441000600035931141889825301175511310615813312150594521687585023846048995484240207449851821812673931806966092183022090238485579456662527468966135952401273281392721300158225187439048238304388972675485615042951030512645106175580288433867459058110723927255967872813021502840324472327872206727395419286553512216225009444600281816411541492829989970849117056864326737302091461272377203770365828802282750573364384580462613877165780697672482704668291571687318861053846447387303910006437065095069009435099523650242473246448435347266651650575457645684272258448338571454075611432729783468297778809612396237978323507981081978359178062520352299828520445820401544947557341313477893141555742219231497051988759190139450980138753221213142899028786064865285555456688525233610983057465939153529836607863697520790078679113397973152270628035732077019500168902096871875008962650051839981326534140697550242720413340685053051997296567394405060951120468510931767949023082609447988958389701704113614008311429438076741036083107003406443749779154479619747024390828076264263660446868340530871560905283825891798496544984797606709176149781546961787861416778842375202074794840672680261317241796050909153131399356935251327828669223150113038757562927478645378883245702382282209442682458684507916115891721477450285764843088932320295969614207706122245041932625758924603550576550945823236048689052514714272655365082550888030460159125958038175923471075896820672011030803013999886658141802618251772121522699570007300408720942220120358961716230857111267614036033635970852518897486032508765505213282271510718278739425102069627826345389885173529985494155010463433820163357939058577296587126709568611974308142243551319658874197267203368444341643834572860667699710101543811421525690639304793572796137592280562206614522299874551867818054839566046680359824192616888427674967654566890169780237435239321797850165868678546875141728561792081181611355396891494282653725661690427772822182537991450215728844327723956949667653483691339790356603985313697261391893247576309427337971390054908786866862446700966219955299995384139066058538908448834171469743046045593006793315104791487290113074263892202067187339764962088993486173922225937852309966255126298077681314743158720855655716219418858800062801449954970941540892920748174640940434729532850942905508853664629539682906665197060830752858440394923990760793735503102717647453142033264305229019038764876117047579149700279143509254819391813744304528587194746882198078452823298834190549766736836743048194768065673784721509067318592209979159632992002077640008569714442249460921365462485420539548008202671203726761908208161911552487243594012173211125508854242052128599962765375827323185437760183331347028101223219967527774130957808158046505020559742851154969661565301697369525041487959550836170875693957305756167790833071198088980327133823554028092202811030701816280910927569913721723798546468679229443991992238719801830164191251577374889034684641856249754336699362298775459326602453892477185382728882474573288638896981476246917589342907873303092806708082038037919211608759829603086087415223201857691114711715455692199088424650297029400738238991091374769725151400154496293075949871888233921544974535053146317043517408002853473849439700405452463977097596501576494284966825228700127329670593256062942798859645597909716305919969220704540250962790095102314801992562556775655980119996628169455116131903333407688840629835916706015226197101250774052485609910538601693092240392364696204150769786700332882418001582672625938310385487120882862593665542030550493971873863142283079388076463055457753072950244820576797170421865758971883863766339484895558713281517831480369689402134035620852131395465539556166627691313151329747266141210573641712708895652779942288975262298890168239899931569487477461012819579719119665079769926639091956676626415436712161229346902198229184109657148140533249127491581633317990501753415947970901689600184463120787106498119000205576464215790410695607306648867637531738625573833846471791095024908185415535568514048097067968413996387309649447798044178075109867435109929282832558614467422519609377078754420738342186439346570795589115934062046639910256853197074934314701949352048684771970158327633456050121242210328396441870937589137723430508859549052808639361794652881148964514569101458201111265195838057174303405136966057124170073693748187743132690893744037667657752860253787242277004985591695804605000439639740466243376196674286215534732476991355055279465237787265493105097713677547957618721237244060480635354800397824085847397830631364285599037434834790041382578593719339857216830197872789793538799937501680850708861704267836269147841861933791440215751569230456177457105185333847883380868657614731706982319762330119877761601681393598042245878170888673448015465154533134368975900779469825501051609432411546216805166268627355947569936999905916936253891999959324914007452030636250242737589150958938024514463168176189488976945224923609543128105533370640794514319431293746559968428708048238634713962259615936464830152092519048891957327689990555599857616604357489170980271805271738885040960021390836649054855459298820799552826248914864570394243940136452865074634200977515204688153778186792047980570390267534657038613147200553759868827033967468042915179010691299832238018135857369570907351857904457836033832412943595685050899383999847367585824113337069566812871847397320205798215441528166924107859632193732987599642909760396462171570483054182927282877122044316480649016139589304110714506409418892176661796588837053473953971070797538842324881826958600828818269420988779895550028862092756081340878214991793425376231501920777774172382950941094653839671158341751968059213800078786870480622847133165039711073443561786648068745685754363579121255382375117914336989268851440496347397895588952642953941368039295460594032764421558204903075367408217855671157815096856011399985908073874002758797464484169496789360194500157805057531101614063661230065682291619838419074445595784360547565544031774988541319443735932941787216821449298391509787659292046176517788209744392899715769510550688523722961318549694362631991884539402165614650852939655720953932081999102870553627638093896436467495144715702147251886025927267354882387006433593281574516328443270697145957755086550450142271098131406880546263470699493599080980945133840573150271903526319170523683392829939988285333254339543747261599232691425061519323328931721603061096036457351410298381505553682853273413331174724844895772326122971567647034743558209443066858445284645580908860873665281558451267162911302607943061176106171603756392385664947048747111169979346376737428285127382542819452014421181187465173454731972829115148149216462170693984279296338150219866823076356242851546358778881526273423433924861258983047454166880822471046648189711400618811601011292589910198917000987722053473882590934475401652988423068884305411304136567047608645258731714779227389884573967451011922434267736560765155215656868332623325556283114827861665612232020486967321703245315196167012751771116042737691199507876086343602515956199303968513746624316274366694749556691560789163080981587571646987846388529211646425982433968666755039800216224984589008067543981730764456666594289178672239686658889927889759597357561585412904977740747992092505207494418606504325555667340001358468044407129177341860685253656529203996551085586093153443202995712413534031790015394918630323196010837484596305682598223524100521513244744685646267676227244697763225288210959699657746995487302026049238407993914251708494033462269666923787350780864196103857189292890454397189624120653332671064540227739954427378218974468467518555974521642207575250115439998618802286280231865494334598356187255385748789261858580028901008651225128884463840064006984843796741444190478368004931078580776900778731338442950866952211303203578938750803319570933577164180447488770865779830909651298061579139345038071353922027978338358355948018374858274555223365756906358253666732606654578647490067087218718360378842948926289183057190544318168491746102266856426623818964536961965398663647556207880278919879779722230611993442419778093488691906751274930974512892382785232234013062309150839456264755984386231388275005324298759941381812746132642332015535908970104967190792690452473708958266266595254207872251187430436208152895492308340533390335554066303439381001200027651370600513235624683859495219256070154006115106896181625953687435058181870315643271447265505184782542958627770834086470294384745448202593486174606273446416118455748986769156149422355230377257541281119292570052131576144211287595839731750298919438369191513649094554716138513282274843864181281603952509400449228421929318440786613703791636371161789258047531028641318786969093066935844647710945185089311541280287089732993321278482348288682334757630493254817844164051329654595816523453563913551409685209969058886241698864564048508167535033470071293077101660326344855042181868986838148818020562284273328088885760198606677728015014714168558142946395408416050479659257450654225078267489598481158513774038835916761371799820604251302387992072646732737974349145168613479810025222809275106919978901112522195606553635782641261379047092369657230909680444758817963770454753988240131515153443259281067498631430486009797011150331740877409088243671375529688904006273083580780823790097722360605481994724155289276883425267998764045030317891411330465521060807102050733133572369857191877478189633284223109719788224801595832066562030678882239306406704549267739607531478862242128981706943842543079863385594761236262381900902534070815393136905151478765421555003513778082634626960685271581564460590910974743297159132351942257713998545471417326217145027144128179682107182812245061768844155428077071394232745028434878879021453610496225489316657630744018468530866757424212836943589097389742609850227936601170274688815647189511799672712639951089935308458742151273229117972058092638855349378856937890913594804472019401491285740725201215703926649220317486413172381016440453804415865217178094539719133352338613651881555214278183509987497292429673971264735415878687960931713766238235160627771343134359250720908077513633566657869787499944605405785720421135970545222988543359265865609629194770271375116436472778575264007287684340803185589268761718270273389548100634859994628347170214885569229987235320515757264180776713731978164466944775706446717606266341461029986809969014828805562262600403891170150368230464130400629669877678478282251070197643403211006658820036327954913004360337917711083210952053544876987588206689457763696101344380280983147987482172916649892793415039872010598619790147378428562959552264064115047300301806274962816686466095497551875508573376278283357479029233916009787030730042350987251253009227256799964984625014547451802703460161015809429984524830172448682781075319966898052327111722651100374166548705977861786395481454569811603571439216783876012564730098079433081498452731403034500905259250451552962808011995014973035445482467418892953059360604737630116939132789996400996330706527836961719241014964476859504799465637884818920301394411420085605197344925522519298636686278648642642315306273983556151393972118175691446861918198218084957859866094320945410667559452729572981403198268063706399581480975538337304757352166651197372933215429918736502038363591624747982205728319055231819675296489020081782528071818669240850826638955423390705544981859949247502871957405980977177751431792697352743447850920735847764937437294882561278281707619565658964323221397667087250623022346034806955010672003012039922459640809800761441972864186058334325508465744629879777699913064273896467047254817790694530832382995034857994273872589348168712735215539244763658930719198611823123376723793398928171154297262450793015212734140511964629041295328232900880164773542676981581571183058689068093151441296828251400654900662291820738501657033885980725575489652703491476029595655616620643970595381978398774737141164298544835379306077115442649289534527635356870170352973092680890440654950443542103682017700332833176646595916818064397109895340817925550976419742941109722654883760452321913553260656564775294086442271255767487288668004143109162943042943231102675692760961980004709703878292166412811277393486491432920437769504088703232265825580340281630412832480905110115480642774885471575358837954365156504382654476996299771481327251712841428449805490548764076801134616295955737533553099419513353045969373618129069952190850644572703457914906957316312969698674384215721935061509586305715829438683358842808065706879100620336390036664750531969336414675282434193069436927534537545272277066987297939854750155976067276565435661158122648716365001508016062741943240232061562181118046958544732713605611611694619372019323132347759953136849735732511148774511488555389130573850396838492422599038143867574196715716939166517788939337083947390506554858097474769182890472222625846321369996362824221847479637318521895724590660166538549441491928594582844399407095670753604205019999934224851886866506280434977725932732081361232178799502764037504533931017706262418737429684863293247790678576269480309008113777030678972655671455501954643036401208945156306223715017479086447231601776511003229372871040849866899574573539492422090909370575757955300354738894559437081912375209136465243870708762017715029469837726343463250127149188764940501798061334400140120242222728181961328038708304192382573237009080399624140547719965650254706666743709083451426933796820191608726116193726962657728367839376477294661409431851732544796780372801983548696908799710903123070413040808208893289137217129242407896333569076090386142768972794573108904449852898490843186002958889680454636854496180303144575814361488819000246413616471438325474059413453563247269356658990885254251509224922923325280444088870292865516452403703923364391594075974332269338690110597879503431826792104178614410658217103680782440436609065450655952887301066982411447689461964666604907935234107996933524446504628476619507213251377779377955873849483520882056715219947559526381291381802858346459550540036458794219947570000136087809787912609387853242325589200923793324613603281685744166041213662601226914233403396048048739704936104877400998829922226560142673650979790858367413486727605855602382394603873313165359515715918593953393763317816539792446953881886747263271121665387113464002988933625789389230107378431306786967655282136525261641676151962594816756189263729042246135932590232703330419671591928965326993590530126847824968659821258043973855244549206085435261585042078710517542912942510753660533686365410617059037544284405173022461946220948580859322746321137003644680086329178181674147418538228248761459052827730009983603666486872944281024722923097167194046389781700731409063586030744321260038301627576690399454425265077651470457988339496096567194048836579798020731049369045693947378366826463860853184393364272416684994328252121745621864494495260762430323707892277844106981013250862042814929790041764154419617471684423504076576003729063222264891993471500605815275139843596062822669570027025248000319890276790993495480495840653724453840314253579421309434604509727928127357496597182081903066817161155936727930523232124321804119223745937183733375333601371118100931880558723342258581116956213988263079330013065032692165761452294394871810342533963990304270074075985058410261127803400283182252410012579884324868441730046247442514234555582880242779839338457198628760007740717595994867913216731407927992601127539231180474150932582172398799797208431693618171723958503949069525544536389691838618555823754100657365976238811084392619826701688066755125461759846768542619882777348412153745390682835392833012750042254481286383160160817236150137994277626823646144263004722986250380294303102426761939912367284557727432242685163654779188032281845240592804253421637761693045785686709420957706647305140839000846448456448540181397786099053937285187370034930872539238777988299530200949678761155769742078521707235159927408110249343773386281531247027481651227622353063466202171069245234985600358205307288569278479233585867909007220515314604151256490868769572355453787982957517574332328814033476324958140164075693636996715768390545366778484045349089971356058423037911572717082237416731780866075325177738889015053579322955843924095346871610726642691621516850628517804530217865101217326030002495536331715080875378311924110410512126178290244433031546588392152855558586155248487538848850280064514298772496824598858513927223594346459765736479778573508531442081131959876402006646445839897815367567391090117234621376289894326253583047796479412263487769925110895295449534027218971590912535840121132667253795873873092621732522876177976677132705756120429471168482888002691584907351929981817510213276526672046056485543769790729293874225478553464188365160203937683851674801816974723387991759889633862490884945052791383126453467368634857549580425000702996952593600089577535078229692816403467506062773947020638517589463932276987351243052921587050103808443559108861220222254226156416351566375415885368861756837161252917694727027559658901600515913741276327951948160454495809078247686786761602302917683350373232721738524961246462410146378718121797446139603444768823423101209379808133069224721490668702183278448651587271850321475026703292836943234022950029727525008318927853597969150159664906142246570673068352028382883827885036350949648947973105819697527693704410721181215195818522470151513267346134204469054336792758874095953169512610737370811179737761416269894496538981814671040479391651730404817480869232261140125113734007405539189026580790263733589576413521374161249340406144784364518842836013254102856032978666269313286597004461137570866118137050938485204295705995535308369067590114090242188326638235387811202419557516722887976601286444793015607786168697751477434354560819593306783424618098939034868804990346580268285542881663324867856754954458140794665278932250568987907379614744609260154192837982532901970558744618278839077079760278983731389968952204405878076706243931555283813723421045978275426870237821048562532159897299495747274423344650904481978693369994435949808731722767486791045641307674518651056537484467405668415188204998092196575967926301973367114180070401800989172739519530394885533189407084421610699183085198540119585001196658366862164454083734063491062453187967878229354447905453835736286984155855643955620176797714583522477769712086032770954368686029387054265605368655854261684824859363461543727724150132541589246933998967958334172248079737416434068734480247712931369442297849398544236903002033134532153710558016470456948791358746352358648470211524556360808042959179579898587653901580038465918898445018259149582324302119065961269025025054109175310432462741600221176535375306318658006202069836930323347763736651962731934296232507833581093028886223818068559025568067259426871676673401206040243936162229716075439116568823719152215885135353965150247996161386174239225979634363935069515408788197260855908790333544973988867684806510452014142097688499269990965564595318038456113746127772802379970362729783509150614846017041195111394480002391849382047775664404420046455434514504627509835998934255788895991394430903994964723239262509819655559769313268640546119498754108605926919035579407502661307089959431836400955176231995706175037531766182723248815811176831871867104536617712523967346654591059405090859109116814408191044909186216407969543678628210886811321378035210010231659049147525873782726630474665363785189670134141745838219299916215192284104715249670728454070012512938087471981082267685102763595785478358369274047430786254245806484348234808396061261772650191224905351250530387518426423602003887638604707174053363966475788797119572088606742081563747998293740752219976252233612677818070613853011592536452536783976583068832219864578760683660780088062202770584817940996757235413330089770086993085933953212013477367289388995401951808093076387188254113092238143352439133614701987377836213000333891011953434887036248864715311126139368388891974072971285274360330304650879720588155860350285495848241750788389729899930904669404963151299306755079018609773870459263925365670882473701257002398998545846380365411809391392758808246063548410335016105785928727217456290742177719935217911506713126428399482683185432387883302660301368465560654701767128386594353417505334239994866611716821739572939085043033084813522970531710540951170696266261550047515282953333906106824384935575409856303446451974089913868231801412527612090526735760664055724005414499627367150826490607289844970877552083513073585447646021728282167475604618583332126130792699075246440100591677732887213092956932428756463220648440716108047546086064662670124039639690910602264893897561057655091234326829531903867628432909705611144548198507720023609706048732978462854212054811681260771439865691072836373947659338299746369714653290540669300640910297985075246935685777242227338960535915876432647484340831008048901241629243265701820968291239633486784658617382961043173086865335964755661389585450149244204523322829323866848756326995708870281235572250663538193502471745950710717750197730930596497594258532830835189139203231348799312915101937319115050960041436581099048094139548193926327484066840548367206037177512693681495173597681570833141248926433469761016625835220044721982864927649617146035879561820096023925760482402082792585270705693299517757393408777345484450162213785862551159690210114357011110076020947996707609703016030324164841049337017268782502422855210666670976032873017120238992854277163841386284085929719646689032041895763055410127485540354722558466143714234275400741736756175081698852810281496529540425650969609141711892578367195933306279733991008560940881136516422521253590242544677724435586606538978369422194636769098352207224568062835374178636288073198209709542844829819213797488506988485927598794670110850721369672420958476766093972465994741887082407053402246163310383089304952454500366553335270482703741227782125189021316481391988057613048453838373003009771989498825380610856032892104101609299175331503597001954264933817699431267910315138917714454404788972401069161962313744070622007819743899629434379259476961489218192762040260820588275362066390912388667452377058940887091631516753461914972548878991279792132861552804606348297213660844077355702368851171201109331139799626900503259917946882871194734088709485383596031988626156090164135679308918927541654054827749286847936416082476113719156639130062126647044909400347635096191415290144579012676791159703137731541999603388085052723935227942964077623382994026359436257843444692496929753111663962509409446157092303342185763930826799016774394842580882841950807462841067837664728628252769515053742836866663860786557393066107931073568971310764621582257059288394211748708132733061767120972631127250187227156504712892039672129217877697117162954843623777771173029979732286906400014943236853771120328996300298622635308223055984922330110161022296466291119494247832051679890634134527293228119078556598663428980283213350881525619469833245610048628479179524914549056042758266543610947464303971997740962321283717622265476519037106438739762582373742965532148520317341689874415833384422236040055165191008102544844616245534043858725998086558359197797716349981870085136440144118116487968061375558291732223646809910364720230869407189742592693900951977400011312190906877876519848839353204697203168645857999114243790791783292644947611868761426324996026469421957326566197509096000613608645757286105864981888671262849512742169658754283257778335855098347017346545373200736841797504525237292410423305031272633546475263355595773164755853845168832120154119646515293583373307288430787995672520854283798557784884255751180619780275320356814683512381488230251776388509793020914034734550254587523789592605494544970922493114668198666887496396928389882853348438477752232357444063779987911422905391062940099157280812754940400740538215743909627879139432278006261599970155215709788932214691177346669922726428530032379049418846928040776768417600325534960968977444710384212536105976417554436325431211174480772139075634727410041989040231544271995576017882071819029608032836640815767277231661035162998555297790284768846771458848853288617126451967008029254889974232939486083655418186239946447518846781453604059825214248045408962287082193260266709737867552741096871871232955373588295687662357368015888835876581597447246394799625002374660372167703771489678090817644749468686475252586818484421177817992568221513164728606928903464137280820557653405504688075267391893982440397594976802763380177837649797874447632382708293046393599734896078295948995009458929941879373419791764651275335444539676745204394764939690421051439089697533930419333566820307553935321269929840641579390492671602856109731602833426656426492311237681873205588382546444298574578558095884962458547008353347925537527786197414904754279529507996026996273760770065068997246759008170033605562146983103044983622226953040975991354946179148837668918742222617861620048179779936148072873148010991422852735216971361310580667216992608004113543610926113123854607753666328012436441478217896353365915216855745311886495105191493720515320934266012954973192262113630862156610703627012343339439445777918058779582778621172899896452940147852699698291657168511572136305375847737093104706359964950064009897863092732268308865612585006124105922780077526972693517762202817220580013757222830828298209098319772204422040724295811562216060665343402146989010758213978248284229684793769173942770985086620825555443190699308731309902693880678314665092447564722180110288201410663840189145239071322392982618906758898115595693159951593203182689666834180957192010336725335848620063736639752064749476786101796740999388623085942220224188526506074130171913365499436377422938685979228783469871379179699265397568549431808634333375215616922679499957539865414026262717302946744856174479810362696578002759829237574453206932393215043682804643306384080503713967764154727061702170388636427506446916577948475513203486203700139663368937059452012715844036095502521524340572579025160091941152354994741129726735208584663545019581727174731742319629299476604303598312984351573043433851487778669915864748635492694891115327758265431030716742096955368710528297163730278739170931285574945509512744425774596875454438394459062607570763822076425215669688533996755874963527398906053755207342541038802867751128157547808785145448947766531138331485490562905863223065718162735307919223518184472082513122560850614388359577067521713322484223526868777652605742163171949629765614008297520229936016705428852011957533047792511492166862556146103559454881961821998035885495050049468928608640909898407570536303420014845177967515604789248183677714013830623107573526978868034506939248226344258415731582626847425922665805434576015402912081436647927632565029523654175675327870675453990480032889163406244449998312949408845319643404743198739376973843254899974187537321814250111774598046138322636225775851955290969701861846344092112028570411403024592249061749203418988471535702738826890802651350040285565904377844089606017070107240645028617750032918335001898095832077620309337011567678681441718301401006971195512111197571061583311207341440347205505102509198521717586394150729950480066325831266882892823107406020586507488735210574162964819129630058264694960613049561899515936426466845034309306932022618115775481464082000323162587895644914564626996677743100200079768567999430044086981232969918654595067805780431912309560680137475625670619212644793726804235169011526053163776035362125286904790877674264815381129670460239290800503159985341352235006851443185268923120605125464788909637975115377584097434058848098761940981826520714250085594446570689157780113590820925943574535967601886731783701238068909961840639992402588237815773868279518317523812688000893465442430649647180012254004008299358530683962065108924044369575575402104002325013921447406913753947934050666201575390456599984681016291423687710450388739386036971790393378828841014194713449566425990902628392134275825395272619509799385197338633491336722502206347586955012312361444111246043889321795997533762181470453772134655518407550416912934433772556014298605152758947942077745145866933445604869255498213203446913452484646072100600831007938866725193568202213699827269490780396275531706203821771599673396371463288357323587919550083303199073840693713824301796716898321473470219838511298485719238512342050338679617928106902843165564766765877215773696835440053630780597640165375677359748059711957743579667619719390241083735870846368607314377761951093348626503108097556971474148316024236463759200124073704377981363478477621618690314523106642136528571398279114885761455066693647608699876538756434275093121932959709072173633373473814036699722307416062203591561904974152739697727553090677041675195406710210645482412820543227717939336856326518564404994671286676880944032231017916499044332492622801544853923298258812265494004460767300934070609078401395853929060048891562004552401615126300235087927641324402352070052294473449483656402716509410807645324103557712645203633804492731402997514946785729678404135080079629744916433767657299529535976802285895719671961276812167343353764758033078882997115142168167423732390269847212346585107658569036673480695783212458915277075744001665380253173620768106802125264128568675466348742859197390187182478681062153613183223617086086280648886308797501966395100956819033235800970302262319147095139386655827993863523163137596356804063487403183244718686220501046065368713485240991964711211198293963329218620417579432385191858039647867689545045378413277111479733023846245320592693488089681477869015016565402393529048096032785468607067045183985490437551536288723286104480087147105009310900379584637740646407946196647662925616221963979749118605920289167134333850352702046776594389472548858624208021687296748251620446083198431244234149681852207858080366330911558450513562274616120256799892547774241588509886057474130959509392396793487837441653139242756007812579881823039783484624593773031812076967404699955108299508517264457693066614599256738841304763962640743043882075749530005538944453186374925885700741466250842349977544905490073386675187999103488972792914637643374522775212084396438855387168422121396330879016166148515132651733625462682684040174878818723227595915141027945081377362171362268990759406333002259166162628692888278427625629789028929571516603436036202266168480559027338058297731431167614324748338016475341689397656593525082221014700942449559043689248382147841116718355664937254811417752706819623651449926114683172273296143163860728977632156832767859297900666850010517464946915388181853900498724187140254838593798532105470151849050933803590797602610084820802361003132066818072230641303568609507425142540482673552394174908671881793476452567914142252213573670393917700912911071455782994069142100566835156627325137974975978483990336438148873622848565064965819660564399250207289834902353599785251935143380536688208786017946414154669098428098690220025793053455886144083617918555296625193787982281880210592981270825699597196749369363122779644278187901942980071437193173719754507560498734923207463433595620566869103288366999155498396168760148196755032912244437181100534155284896245948615215827616452708512826833755210016317136554453059459421883339111681643971228081888614854791099745774225932900306615034778981619156178012370804324162824427544631080286279959599651556534121885352325014191027458488954401119351422950884228944035511659065208694474018718084238769071651047148417412022744063211658703870107215069995617725550841411712212344295613728561469248752285939618299323344491449035091081320811533765925653853518362679197279227307711687425615127441502524791741111234098941090601160584293611441423981027428338657029296761821481987591133231568393454887332947058739977848053113332108652554746215129125270821096660086293779860305722745073173807649162647445951278959352294106788346975020187676439983772248758090026981980293636383144879882670951787276491327465131278559476566534781089255809353866600576858966952557272853913822441420039377384809220458685858258111561842250052953413493277567530693432684924213767908070598193816403027645945875211306136136016689138834173951124554933523889511523545028124262714718843737554553011867927296309338040578069528311107293214886745481798355965101905825107563483669195240953858947881065184662346057784195209728523742827545633445313381550095507342597504739479264574982221291447231086431215588764605450767145763269758673699705315349960280240931604381699951125011919828061316352495469016255904361874243141783946834126114150076161577576237982968933243069255747468033476723011472313696651084957482761887553390372080947411390672177436826594298528129718660328612733237915510104874901773693740928345343300724532301641768559704277562049049793412030741441641174907125749967787722892357659519385534026067164040450483834662483404409594453776397808837193246763487233940594304592175337461368141211994591643381274523746487713676338889022268026354489911638890742644082086916987520707567600910730756624285997269238304355333700046566481030898632819116828960090540067001897899071463018325127279773449126749086250650113390573917736792118567454059255211085498583715329245940079492071804652152447645182450466540781784779876923277443781432998951576800291660788911505209366292766497407303609360502906847122188626799264098885395027209563522242813266751751568981907966259930571150492974498234523100613646724620130263289155468171891842875579447909950456881062910671247784749498671437906361078863969861273742745315650352631025396624190911028055521622516982045064186808066241174185151305068781118254490510480389631639014230957186741240587276306852502538557971485613718483016984372300590841434283004817103372868680059358870001353373808005795834797823290595290737070155519178302699168184568489626130089519513246497729980835940552063346575461184474293260905926792028112927850303381741810374383932633748943146877811861944939826699679541788505992130391872071262471427075850907276555538399054302502791947179991353832415562690067287074318540220276360957723271568893448787816977457179312844111040610913869565818199519531163120557055077326887862181322359880223727587978683732592756681696247151483217314960012924541516937169121155320064609748488657696366022668759435494299465279911404991058692929229994317991726220348187970004881740479958024358633656034377597132808033177205703711440017553418133737570911083364446974601387040335358518514839400269808306751891828696990618164137104602517741983450526362081225844544603999250555659921719218747880961378331092378565012992168135315377977468677908669037129518577923476898760814561365544948349532161338323278358441653924683673610312566230596761488899998929554152607926869686208841942996207801958101439884650944115131608440875949026417285792063875475397106449718999866979353277518970036619589464271590025063105393867511445069153542006933812928855165002692973534736708161069662320493257914969187867708995971808250188279253646493496950390493325243844481364834648845479842143083960683253855783785749349587928921721361710771126534948999448407020998754157058055255185894356489404349572278230678458947304268322054685042923038713362357286870001231090546771397827299754017606916725975297557362830113580834339213573504848096369631221840863307065762636961212638986563785345771874010406464207246043884869314097919165939629431042083675705564278701785582810288727621533250046249933294965329363025994648783538484879566256390672090322127877350243937066057453829559603753768216599616714080745148044781092236390883628182624300854532545972457033975170143639941679507409458184746340988808215802059405779183180052801892784556533090387754590151823913644558068805788259599255827511662477043494232159652049496516102401130097439877928669611000301476151713249250471136548419971721890635180987216564721891896925860818854554358704299571279795711171875693249499556808297982733932508598932562241233391240679610041675809930368503713040926257925180942945361353911962532128074240943572528694724348237352516757619529267474423202885872971448081303241934497778109660877837328837905316316688740764352915001913399839385695076663219865656809789821945680822130974274162710461466461637579722048757454193981086520064596287458364132961884675740275840719456866889261475335932361425601698981945195980764529431868156119165897671429367381725902469879110223414209638782752383959735981213490642103046005372185887292496501157729186456992191377619253258640845184739861906733557508829948117804580862443596465828499012350081092007986386868013612221510610609921432368526212546908070619652516490557982197634975220636002854280782382894459786584214417033169330199211949203834501816335589141084841424820895876340662043606668300616955570311158507019833807908893091021181065094987717212593179196489794525602646024300125317704645762259797034403852335110568420967526688001713241989594317084602215761258834957482478240487980656589114715245825421200322638623696564741823033364489366130052711485506440830322423278381197818359231622158141487817258611742641253358948546401823368748392935931403959184034671539328412815676421176190618090573123309540307594058853162792560265331087424983877601111507099210133244840210491959118155550330533452105085406879521927058300955872795987095674125057954906270393810630068697740360687472819578856031547708253935530329511038089598566964802306734458482056354492457803399647272911323810421396173729884362711629776271454587084300119548986660903207141920521290226048172765575925120870081504803098638183325029765871427697852990937546235968549896501290178953713229200014192884352938042098236578390128966798933898955753373081525055405909063348505948693062457689969316301576348580676896639802950624967375286446999447081216016828411901489580269762847110379192454073641347705523760883854544186124969578395442999488805192865987438606002917117070664043997044048097056498619589973221589521214985019039050466749018194379764714114180910296843377606486985350572568555090989471703031923173389453600569610592632768559745505262750192156388471717836848327995640156627756564236262715170332152209978890371009310332322304511871890515550955428183596327052553359835633642786748124147009459834992400041030088132161898938538137551867172710739319220498813571375894626006356039983958723520566031245979696708854155753657152478074734616150236416676782516455292373931177536651291644115014971669806055395065824233164537341261138810210641262797889948842351373261021239972400710964255416473121892270848473287803276840957616679377133869391537414739146496011310570787789902191321836836897436868604864220831770395330759450751219150026352590952313653188875937904675622968067581562363146176029316353682101439849851724364442487750728096849571017934738756960888207374264086460445205308935911061311130102052132334265569876399518474684373188465168067201236371745782837053867216058126278660960691114031473660325125887477012763532335564551379045963346957580112052010423022976248251990655495284987365385360345076834261485120002449272438706225483309990133584520157497140188197079175796364804348723976365317693866404073002543702468297798347867795867057673464823082842465609673636253293395357665653461457331340283673495501463474531903656366714809707407263346942386866720558358659260555646842323152318835053285512045388763084322188749453419493437087127710161806275975059944464973572401473845290903693069566989202697192529538311346485909527485802828121535841310331745196535287108187149520156036401444935104930808587100301059289873915651468692083989112347586051544250730540034708048441932160229049240407396170484394801568873822424442197074161027809594693466332815278562428690753562647334661202103410616488337828557625123938025351615933487314990315225910273945420142098190725883070660846099126783475553314953994609070539951655932433673169899339812717626056616686638247048023934901821746912854347009279876201593605255145145625237130750241605213604997666948400054444914293189836766925794592472951463145671763517387575744172175702741168204436649383112156114640667989202250578574724430912564364007070483630932207811656444896432945127556886652654026235241742028570615080397931649412377151109881707184981140631566461415281719499006400774857858655716206620868813845526006906415817919932669905526880448124093929882343715028690994459118000055271998628371888474861505561236060948743541778602813099345238110661845577331905946134318286311861753064905525697176392092061949099585555780061233795803302395781361274651451954760511217816598490239074833511606695638111471529957548687491362852688750257529521438338107341099672423263635645098720525729394870672718014330047153651240226490215953820127971360584615719333818493464888302178375818761696618667906795752588532488294796623639562537533394893250752888239146326425720479072748404746122556302368668702082305802997037345612988059801421511964861744529072626672945255262824529139964795396208851723209298428798306784834749242779483167066619378301662278182961471021257298414052235976844207479961873821362487988181773178469269951961988688167317275301607856330897704870782049374279148333528653641856011687690366795852596249778371622393624455090543126210589756769604618031657417064479226128611474096000221617659631146741883582536226994824836443104727999251285772644220902581535362986790582874313100687547476802826840150507626311852716414829975004231832953728777024798308830817305058434202845135051955276103346037799363521180413135975625117909164137412245557434435813689557304764781793920110158627589722235990821377056422249946643104971174237745090964805568170872487177562123824481655950853353050150628862738360174014589353372007286438381397539936160801049844497920368884734434360175242109199864967929949513256667941551992186464060809992949056756003052930075228078137585328772846308299602852011535890022513236766431533908442331372263254781395693088193660839067199226395070869437306440861762686327166917378895127545683915136615539321833139849715876113542399833552192441646175374047787480671010150611241556422800606768579958111172707772877096228845520716841524487672773668599865024963024985305527638766542894603855410343308961105313325167564781725478669379835405134082699026063609375780619863096703705216118536881633750476723736037666265658583571378902289118951785057115982013778004369070423670246238552916001364105496906581020712202389030455376258826200567543477011643644460276048383813869899270854299828012223825427407058816183135924156084552370641120861425467063886341431847471510244277058086475985281934736332037371505248543336884050670954938208918916650610962882067528381097970014363638714083854233285268817188336419334260706381228549861400552554058698576084874223710751385824885457696331211339831285987851179371855183890187049584405796009952398528807113400066021930740602339898745542589941773422204820538621158903180773877846438307430969966175002857632101566949807542206165901677983569504781405967388991201938880532773203103825503497716981516004852178457728429757601459909872277200889263818163062750358568155085039795375140077577767856767857907726960953738039714682503758107626897022347795660479815312125158368179851101805555644333579742084021472401653752915923903879802024065608723545364166571394885430560742620446665293542073408574320159482822408959462563936495847031258123436867632425815176207501487074788458218602573249412770655648161287222599180309806759592109674417518795597379052626240064913677222732049324933178343331276492609692269296220295803684062172721401036459925182594908328452434632001811621582641637258340157281809847071703148175051226906221064061910464308452567060129152575679413038821587140002552229666535493687612376837850755084766852920873965947087080221506201042655085451741432366349890272308942465389208231343577856473740973106319299926931663147501919345642026874808585604669945018451987316061107941148500030763143627790694214605833558796802697747938808984956373504426974268918359692121727215795838871320781792037826761116138935448276724120718475983101242154147516278069107186279836602703150132158273330806880488937168455655541515836432722175580990119124520504966996886684346586404462938046756214882522638396069594774534334153483542073266479426276911457626702514154909870906737984590754171662471866321622571194600667332659616536665266015028884436378151732819900605777422597572691323826159722587928196636870844539732248899840033949875187404175938375081860229017601928663829085047498318344810458633129459613740180761523005055608297967660244814276308252755454595982807476868319770393914083024029723315525810482414479523336774751410278923443610020356004075316874822800582550755764399021693124368982460092417099171015435700957386170866290511430284053768379481489441045299805303473693913190078029865807135196017191107745039409165767484464415949141360900281108511776941969454787691654472850167639651046166557528571887882750684097918002445846377503114839908490772965239251324643259562273479644262275079896803650182502011296764909062512342056946532926386585716232842166735448330797218621640316135604563020806231206693375790964124457723379084656863295064805102564872649238401106841419109215970165715978216925098494414185884401709718857551291066805528603385223757184672876997081315110064345888074602197759990849402636841970889608761551946185299298594996923042347351805448596792086896868921090232906850575737593959540208219261161717685225745689629833009601958266103005756553417540446272703422724852568011749375489084230573570053446597334820761527933379601249349366030677145686560239497263844340921267826069662607537492900310494552097377414613061951311634326854047948977014622758763069693420077616570920934828778249495755254354419709255843895566107906344929723173908586797744129338536570778787924825544441440095557172133206884046320340161582572029485976640101058622176443703579899388149440036891126235009783010741606301219933879404109295593890486374140629026892882327350517266616870975791353037320682904962863921661085297242705008570915419722892934554263911960631169080316618170503928043963973972145666399107537126855566217167865644158479277803405042161100465523802618414645034298066593413442210182037466347692849177998763075909107860411218741871672928934252631028929845569775816282069933742015875046226832075653442639810239122808156297285281422421859191213084967269763796439417741362743375336440535958965071979483189861645853302031965481251254639978573241238155321300497891629955785287363122307713836296755076803221126011212400959540993484268237325462189719822539676846578723330413173059760876782851232311403337834149009801455892254154320662869548635307520572725665974059690023137118796383985606514853402134866070851368632667726367168453859109112505159939330008356636176126763717232148718986671742423746870629183399514985630425244670916754993217937870975716732434374324353516467228765887534924941589039425045654310077671844359693399206781688964576666213047540613106889916241522345795242166992602100609583592325205206539150687823819881407141879419138143226285937323435556962329870378788227776041643154786621464554049911818796381448674730020327884417128635494132562705941629456295643090407766498187442117408796234538021670165492110431749665480541015776157785167640290751063178943578571601573870122550104434115984934464566751165235640798876696623286152246174525043025920574017865773286022144388422621227421498620274276874216107666890092468745103942128288458509948363239558748976571598715876912145932313931217036514009283433189483346556562576516315008381901849731888849443190141442191173225120019616971770262196900436134621183237874327254399311998773998494386604000111495399871457045902165401903214043774486926976932101771302280032370274899441477107931643206260537051255983983221600444829640285195044580917239466069564689262377141966061493622607664351348123080391211673365939194052500455947326563219991435742124375400341741475114706874709146994705623759117780423043260700667997254231388076564947455649667772035041118009428184889971977781757982456473718657852005725181846940245348432068257099791262483464244936821740011896135655244571008690051011363985052052860150438129161125744907082031334432328406651744992191822910724821210976395447338371422685261106970268200978537760030327529838379659287959297710537358248759761355608202666539616865765885433756105087964167294302197356709612778684829492372251840059686070002450123093914983736683262390448132985722166711318242146602257723125692217137848440707252228789749440071050385649030585864695226610722483352327689414266980970119610842294233854343471365450091679978018730378848322170954153485188912068946374044336431587847424016439807635222278399130775569622197092113209294160282746088084765299378302626999188638478673792436292285192991216249845799560961582667760321661568489500630404000189214682811323392068140866375118860682073598691678472128375674195827565935015628647493623189219861678833067314396100938512298717392640422686539731686805052627952171158338460354857017578723717394348134261527745150040997857687596667283877924685739350511042434402014007901400082358555666708930831351761365613365746122225029243268029938392502407588414853198338496493738137520247695456897508194812947748211096523968575634821595130936102799212295819944180821306887115860236834924086573692752509514545792289318799838316303264454088622130571193121812502189286803164404552369726073375513873907344388021147417702288216600460061576800293953700764063559687880584934218217304090183484198513347761304832940865899701006598011137232387938935545897067292385683940590165111638875855999405821738351531590787418198043513269039713401334870141744941819110896239915521911256351830856020894274506377035225728344122384185150433244886511147840454546099953473846733273532282356446784619744320221583005618564740059571606407918017927181320640033117721499405703949148856025582524252023579811806588565606853652001114084846910205470545798182365991743182400983999528011628373784122043506959074086308581554572380431162929797289007025184500158780054385321266353918703487707295731133826370945271863884271250509990357076841759378214815738783632643297629532375177283509639439831148312999240878582337996799964382206355672161378096263875084151600529392888676180849266608084952726471255759024185104401660141821224111096185448629242107401862660377673609874161559639750578627224383112542362803431596344498764494290164187073341521320504807608361924723655789705404553143238699967343981582348297815134372898896570170440195397528018402112728096134464739080430992375353849524448089122511299674656838106763194854290046145328774802844152441149378903848711673373691302633004465723648866312595247815315732428290518265130378334717315811078991587205609370162400913464030608789755492978285855396882822963925816805648247254108593099850333077910755262052722644291801968684031640821104141708885469346002535595892346343470009683045786137542497957585533619759984870334195391178811649853762565721428387763877370349046699928522329366967218719950941485659461426700534695159330328158053036157641499824468364802403296922397257973691741705135447999872477940832548460422919042865174516894678240336560359730336998286139700611896542862082751416383485242948643500747843506713631483655613185650096062970481949468049265814437645222203798288559579520907059325095690570337223914828793679345023203066925023872946939134182961529712082150366030076724663622637196234294635361432057323586419367106393507242243818852919819976121622598264369106725050118002059767463882261123957610143294841183559602327502693521572992043577009283453787502451384146021913347864759982138187317849469993357326246183542687016985105893444451459367975986402314752283606038016469961515629102827661789967114686501809513649355476872195803915081107589715946509071117048870326761427673282635415118147060513733299978696783782768598438374764048958357188076538116700728304836043298075363920239219019287184063360800273006281567138145045135092787434651223645470620982408857909726424632873610791781015892271017698040957851106109458086441553631818122162165238140532315423694638154120781370535160060058335482591570438519412702981721706932134497761404066864537544940925094761833535131221356923246728942231702194128640711414450088339067331906895175703560040778075167972301609197752564962416466375663088914945904216703724596381804168364158613676679270237288397383701541367397582661662860594358070552627693432846620886667787534998221125781385501430899713394893005127308571756740642837727788760405534066916121214190958060842003201223503055097960808898786748403879420224312239812690782754387594052933137670658718764196118362412060829620804776708024653828141048241721656307426014257386584106193884470824860803578339302679296707686723932445768881774327581054336594309344403525367232653179789660651983927567355406650972157575042014541430175164561428061929199978379300944405537626073706583011509598916332781779527769317306190048198146306267255476554205170372924167705614760917857966389666505657995186215791773178781191647441279360753255571493833399660320382776967395868542858600782574545703087104560708126641427386894359332213555783796694691321292974945430933404067045309579649915025229404265908186435282732789667360095437960692456608623465695014858954951763319815318793762819369316111591469669761758175987106236208992809144708072793909481985877259964557224186138999501166449998204968405806651032300443294548987643335597300379059432455199211961166295733914562762862389450160614927820069390014599268571852365495639650387977147454233646160850293353077535383074946567662373809438963787388762877767153327819787777867559102658278162903812429293577141692765483839709423673711488848251813217019376771621106014373631496647887940363433415794990943704261219672210203232124966715160700979128612029286124044088152140467682394748600806200249611144907935410254985595309057105906794140318294330406951024557919531732732074670628761788749138443207685967481222173236637001129652947254175399474659638005980954845963189047512213373237711106067582584148015397912488404712698422949173042010084339082268029751693550371421838373884808040837578480219873162914973904236256316266777687424157064049312920366740578730249469520046994523074843181579540738632301880561531416014818182667242811569914029684005527414373475354333487122166891215251760989773444889346008064589978074357522688637849311398754847483302603103904313180384631609219378627643232985559343198696074770180896965629215688684753614362284407228459488960090133996438465979229448654598330441768660703195242645033048781139113610782744228905774624195189687701896664191438708609632223943982016193011551546262716291690828777379049057908649010330191424525477324895371142733872648429954982741766657765723923050511558221865139066058286763666631139482136375325293945168878751829181891227776205830538222116657183443302845381808857415575382742156582086553499496950619648306584384468700446036885963933817772816530171343119594412459420041982748488658999157889328069648487959010960868989341293545102311970450573829962056142924152980143251575104237236332205312515707455171742055893130209314211634164806574037374238593406592683997802571638774393008049986757923432156704059087181965274807057044236092312251848212616410120889420201957417605968329368452134720037203874905211664258975495318287794868486126671531912269422386162560689261194934045018535497327946551389854460400745133094493462332859997977885037931810317756133281512471793392442498294901850811789765826589464110623018294674779415163115734591993005221965625013907728976387707534520503144283267866111909910953692651966291458236349192801298583700188129943505574015441326690801832993984425448114833269713960816033983249922722779746049081199316410673279614957960898660747872898959833498115845395429537031985271779421019391749563817751535150255927928135960001915171496981712429234670147462878978257466704967730184379117006911178387322231792822758352213307130453772539836482642936715593960970483334452620502007164825282432706408451136042271427941954785321760723463979903410130086220068283444826079491477034525486958685910147791189217362368028731931635830277824629477949114528849743348583640821691128539163242861550109375976291738250695017318921785854220897224673251186401396460738562445070218585181481175819687416349304054452525497882691744730236999155536671079167321430252678597800917971228864347914609743139966754011297653887435904398308478980257141531426702628110501865591035075813588679770922796657233021439047372996986253160104978346861601531522651550947506387684748882959384387533293496153110003339669398839854747399668055145292272655170325888509104229195987405029018501219914598676465829190053608411968897252289816167892339992483316567725538422288590800212187004925882385226461563931925536167510105286949299287291163732516788467860809904467478745823728239385539246929696153077238468939682404209468174221852073693516553242609806149371179024575124443899094753642845159930637479962231563266608263682391154711992292226721743348069431081746113032301888972181787482357490602976138466616286406824033322972103017390892849706812382714572668533891820898743006350744282862365143485185412332384961283637624963400553886991736688933536191195376018842198535618891564879873311577008460615272681774122727788007411387481227702538108608239510235102982419719173887745128335817493129982784045233966305146805121608575915740201282402920952179479721053001775717242602771408025205212378423335877970325911969269001174321499854648924254218488908377167108615104355147264274087299601565429234395236875731388849545243111850349056743626728769603059398116599035457508597411506652312122896616670063388372604762020102934719305358125958234715625410416614937021073232204343871592801555689314217043648534614655655596020908988761090526657746202105271382274805054751281024532915246218525527369096386147418286919356421576559556727757646943607059986454393501602563168353981864895574826305573866734744545195385540017718535374372621356518790876936015672070684482844407018184981491528325113902537751978853840414869768779592299015798396980614111406020372863784148361545276127171792129842564927190395011438183553559185509598469962769299468086931256888563034502158644510394448292900577179737934313006049410600757494198433731366289096810670082469881720653091785225585263394177759502459393637465448564346559931125021978163355672605961729802894971978632048807159929842064932470117930042787086656011907894088973548867329754510377623664137029704631299823840970093365637029894176280541394818971033822244946676678327878710765819959727449699132144565649326498052387798096342390420112780362084977847227641910999961510040666491197843910378345718704943068223506323768787336111053343643664024566041846532070657785737355281369821152083812026257302700099067461523985817243139607612581516169883622072475636740626299260575742739181257114590703797726880129572814201948606671804829086475989447390374275950629181428369145626425685045399715425889084171840928528113807852356147095744732717149449596110695153704461919071337529842117802222393922238405245941420630924265657758177606839486434620797333930324182338118584668839459697280476350758127906008863815083424072995767307117466620818363906127653634234621705425008542673345421321243556781112576282522918531791299069162158433939096528945981673555857374849429384235215001332413434568917851545175317994997205890628557680197148186660778668288626603232697217739105358564414228227428990469098141111250362594437597220584924719875544060635842300539422231582790050694376357217555039479504043965253969418483479906291108658918909140662146430199193455383091995312846510061677321751670431119364455713560327017190394330776583073562207372629740033667088679173838139978673211040177936673105943445913975273690182424420051994044846758831627364263340558786022254212453031775308603255284714251502617812811129991503190600504300360429547389494231699714625376465915919134805241289072417123252383970511769651437316360421770878966418017699733359019503322044764293897747180911394171428791548173892637918081522117534649668498630540143321772241720684504545507894435593678915677850299029632016458449754463487830005370124337274472002492567156836788260359653613170728968193989356491253858243330616635809441843057971386608597466059607539295727472499481605220935652819464491656627118116062896890653517419016012387118711276437265033509337255044501149629980316419608260606423378865407375783707067804591177914726916477342540719809849475545184880557977597880799273260348408632744744980318924551534842144362964810382439838367298530004228817088358664410438856301842953440410524236391489682883473936605038822760710100798019105300188106815110004785979612714457106682850992834211786844441492337251987606907965535433765358679657709965995871977318461259277982842661103528374911902502073243778397776851412444935076736766515915284818791107494573461958527968822161671728219715469955118592719957805083247098610863935451733459449833089363764290645931857324191240939224720390759450464241688477192662778404130181225549146504232384753264428096929483847161561556340291783375273937009598945631382722990346555692043086677133406727105210997153778589701952150681707664117728110244285301870310147359482359291576312619807805325060395522524443593444545842837944894834531269179235201699640860777016248654665658141657590691612792651526910046873360758765297424437240246220493089067897809364971393171628112547660323906680913019147811288478892390776535721657965877594485202410580083978184973519743686798079151542806714984865857661768461833137724147850272135903135499773648176577212293317624197202883058818038308071465474634531052168981100273223239153496865953487103857007144477844802042584142894120669249226080501451491452477349134409374997604732350566599881489498914219325890158579327562572861097593473223155908596206282968871931902764126302500932596071367978895443822797042828756808371714473732400534917872624873950902388174643726741579109103333705977726713629512255087492169417367418525402430840946779553224188440177327671257773999615226354918050414906241872223199410940527888864152268185891798187420886256094473584666893771512743440932813369083305994129352734577442339138833404228960854361909519989590863022557260403287010305462162632981357523038400931736668436438740931024290093669302487983738244324134612274392364888819398559783972881965530112279983511447549911780534265430328345860473834760375328629681706581852126902631315844326638245953098644603192233643658438550439063732444869442204315880879569626413105831178943035645830142725546725581952296331771845034105084938088906609278292233797322994578864018023715627429932070329480332270942033522477002233365691886235677832182850585404159913503499911288902007007442930659398843150526575245781715166197861586688210888178580616686685453064824530832228143007887284256522966241075606721887864445564274648764197784875314580421295568989531647972979151069073859499406684858973147097573290811791083015152708466020628153115699898430041870660068701584206903094548847743364813768907746081673245288610981516870052228514546014629649944777993233811412371406303646593639785930191427669821079578298430547923823089007214375243935679697653826347184695335768586178105221102711160561217987918020508688324863301878237624831715421709958414371083851703641049278421376871175876616078681064169109496307577263469123565784416376339425565266570584421009669272328623342887628733393715078864908100620073464624014177391726656874164645687685239189869303836920061469636811413172820536469623899791319564757224600029518978352961701619798266741861509832257958135577598423082906922710422939498237818643754228800339943066000796451853542123489316948642750125936584962302919646269426010167969062966439779457406818257141139556491855478147418833563385917389150064859443587798829185336888610278287612483650342735579815245660176680137012612321239298204861618819691918075833784621591744312636592934660630274459501482495365616751829344496773290236996373795158124581842758290978344535298645732824068293156982551890433552127367276807667735230885764350369883308354831394101163853659617029802207064394326862885603439206773632660022268671908917586314176456438290644567650488690458842804522487918719532547225594880598492865074160843655204617257660455207986569290884855607035922971094196265412827599705082611378679383124160602827205020172342354497930290549771664775375906810736013292662380689733164228000770303640796088072070392227191182322607463590214752208133953440127874240512766644948464689091667895607664881220697330205443657483085761914152169735927695409487598718613887369656531066613903494548621629092443379626141625305002257337122115286935412258839619503116031347650493320362320495217822665956278887357863699143500888271977562088347049527579670515518853995482000119162340925163879019361781496100792027592897243283478015931641123307333130468866975008402190497701718631811484575753059611090435059605453581019610068027138561107563448511401475132740293168275998142010577773659660764210058664503612681920104704023738703445661672635140796006832789868165348465798879074243037807921239517859521490300116588238133500595864222246376019413720457437953735174354858281989542072321842733457552596896394049172898954416533908519006710588389874342633053392254745159165864078229119720497581261188512818273952483740874995721910579697171844790403840493558312918778243256899779397576249195380007907303104267944463892662607877032854752203485830058716604501604093805630814072383509246014479233193970919852400762576996361995485354601033316238575323248433502485137372537279188760231104516789253556285616014465796944620585426885862043758972671429372728732765122872142989052939869539392337535574061841354838012924423461817835416639478002610010470054951678379885033251519951483667870615317273506614951664646895706550739096172251519166474325792998532870112948273400754025938851463751421511804892258135826927557744257552413553347790397669596050435151117616153648885632234326406764423875622191926425579319528924271088677807834339110961043354766223159583827710067820389982155548434796810429602577783724217487044010416045464306126024934164930282944955342996862137006820651893767321233268740357569504553092220003867319583900544993818507631304339127879686277878281711674622898166987935030124248404436132914860798767398477971932469364146753088655204092431290471914271599167848728819165532245494904089971797627596790311651390640040911900105959834245229883352559269900003943137233205209950340649823540281256167981396811335906590460978659407402975376526257163250324142029886750239890949770621218181684153255634010475357062433726332442099684611297366405680112395695459191615367107824966458314103958174131748050109355101946016327566826305767529228602241197652515049054785219010763736977824830159846034634786651496221707611250021726225684465689889449841514208612761186057807251448232030910331034433338668976862047237822985067333350336350685528272513165098359954328933845717598288524578698200104141568393228331965966699446596163106019281178913470554198886594599247145587055411716453111835533527674065403169332444219222883505630692238482569596940551978609994895933131285842880921966497831133193414523985540357050699973452553198824627572785002822538713458113985425219585950947527763293769619241545246393167148077657310372003137824243333971369196595445154338419977638246418284790985280953413099013211316746341613159096410930344346138568005083930607963919936063509158634125820035117855863947958543024516341893416708075627648751129716023082254164005272365041028236118708881535715281093028144973886718995192477461257015080987082593378719368126767962144909376036002658923986744755149748610872100596770633924407538129611297739117149917672834264331744151976226669408478036760234346901353208318080026093857290743453309480649916739309160542871131799566564195495773792297999577295620618216733658306567180254569966068324256029690411007720559618835906396765066933560457423273878155284650751077908582633977708992870235169886780691742078203222677630525600702792460398556565182082478416382360468836832102242830020999908696238122677075016107377469445016469066558946450895530701357109651219463455510628353152286449067845457271150317337711041063501468319869858003495896005406672707325800325064659556247888065997201537916515763510251802816276531015414207287678017444390429492372537864130452981967947126965581355722447415779383848861236047670185830768673713582268683039460624835727952982979341140500667573525274005492969661835792971018665856878179889426306004267433075046630199699518805866925143461007851405967021680007272930684891746071770108971187046926544395610769168980311624947024866634869821630899955090048636894370321131975691872157258517167589598616800863938616108409387124426101759408140782109379370791584179333896203308028493938647347512866688195166255368813282148678589439689359945224230746914367178902222668605159621665344171579790665404516704700686329843070950240610584820596720373296671956136645379017609829434941274763740955960920341812249027701765020973894601604737131657722610281364730343951487252909431670163429796417575625287230207049321878255576561495872068960017267167659497295168057164896331030433557497971598073479864790370692186363990072339040870880127542479997086272337501848701581624563299846534296122542933621905294210447036793746888650438928438813475619774764733312599384767688896471563363592038039643589654893148272877487961108710985928880750765917724157783541667038001112771052116542957517198071759842916500831766725994472985883371616926789007454008455268588842980230810442149627487000527336531274432319242850853352942491097519394967225579429919195683031648987172868462910357263925734514443132863703218751316555903679771549058521255059745910492229423416659989579386520695727288684456356901015471109869393208680557858941177782177070616008556384048201935279891993502378299516605375945261184066124476291507438443274542236142173177920832714661396512629714999351057844757322586476482330611751205229249620648281952359071632183566374204119518449886545143442662497222266242171387852218530271738872955342483570159163942731022915650745904550431010987947486612180767868688585019465648509755080647854276194964334946248254684319095207647220304028049141103675687495468550860194185582723124402045552890539276093887248972775809148748640434402175042435646424035184070690029473526518474613030623030083648704985936419955874956865681643985075234744705801236886365611314579606177817624436646251994632576290980879669041396334719016077419259582723147532746393522647757723390541583780973813002969338781479241051475796736502458069084900520314208113074718734252228923319838068813585573317336893862562260857774333187276929771729315947367117351774869798689120090827593210640309870783101291795865945204302778690853064363242177862710520894123676128547307947389705989534229009885027857715965043259959539978907353461987397805053739630350986621745690827978410943265582348019366885527296963677199791499139629841032687016855175889536218298285522443124984485064588413690769304984530286314944620104236532782438135867897270090067193205062902916035365271327132275485766536914599929504995429436755172844961217996976593502765333925523528030537977465499412107202018364361327138548907125178438129454519232206854925937076671225186144782975972059588117744979981212293111862929090704803224265070380424907894005475359446766054223900260437933246737810147825887611133971853915626375449388706710049678412142323657173466941601895123019258324574326033950316221295400142877183905530347412307771265718026446095840627116150247855013623132035772851260806282988297079661959689878547390281187953565770050240612454279955104518727542285876204791263131088295629519754811054647501155427053788130717576293433104365000379436057983280427929787462994335392959837436539396660116601022405689670539291182769883846289488707233913132823387408680033102371817193971435964944811666866798932396404957496990639486125896848604435626102523627813670098502003369434807209081468541993034704843134379738721699533937055470217338321170519118147325309276399163523813581368840461491850549525956698780622333691963082275061255179282064628667586446641704700020799226485108021465877173229930284420805474151632387083962035185679153600762124600295917953275771463716977640967449637015767144128168426198566920311593991002800246646522758275259520907160676793626619910595042639194932501814939862067848804584637983679609133508834916565410379444628747170098566435275182559525255571627644111509814234126074872707567405407191018707949234265335707326037752029877771140846460025442687833725977934271244219639506198834811623886688658287600514022697460132824630745827590344815777501990247946649016962752456703484302000796255020880676056406591408305205164703201515237582181871431484773369028926056003563415115044110944326885900708503557882914382664460002301735267899093682076692218151635713552478461901287339898102560205447772720035814699937394245718584388732939476683835530626717662014274658304722287134879006496252412201634557340797136287436120000593762165501304872932688545157312356890988411122847628054868465048665792791486460128924482293153664226280587551456774862200003367281498288362190135643378936354553722841942809433089302453569930990436965141094651946250543479630046101822750057838434633684754944174662146542927806537276514841537256151811313824902340056256362166592704600673390649858046189676837769558808467403914540535289925800723612637664439545359857181065773810291121142057914065327205515434747294657654051456310318892340745217101686095695375690287458232649839290765920712702207323636154839462630175358495119970551234386849826899638928957291819106336112648780506652013359531861906850207503409433059468879963028159559051738573835738567923768239028130287085621488840202941502344109030751683104757860968541345894010536777553584901265598486040918181661380772089470118282568057241164488252723803989300022453219001279616959877784306491489190958239496567203970879854255692501646828268329260685879599157139682018630318678823179576332693652840926733313761216947801520761295688059188228154148051089649873217627300401572374243224489798055557523752365991179944821239580230330230933224587591704230603943390648730112269759315047937442592152268832313944134832440998737284189175012136961094827008519611105082029273789410123365668698900659517839420511126385769940769265676898946546705953911069094422159818796042928944111207730378775481820802680801841563784676426096257100400249860868766430019296986570757457154438403103404271188728909984528398880210979983020779350907676832081362769634606033486196700903878701416917389575927646255626835093939421966602645998590536443480432993660689358195548506464683078127072012858860145764483577056792005977450337786829718447949040320723018841787542418150263906279056498989845614062471594554154733765593193489494097020901945813115386081930662702968084923899311978664251767500214963660356162539416242913679739934587398454114430232504290251760493245837244134147753524322290592893782849257774534973559499133528134045326386217388007989486737486866434593544162708982300412224449816035259200566889251773340911406823666947871062196219731964208603954166211294349585427036195291789557110591250890474308864098782538374799915066316153619484724113811035392985995568710972521011446332546207589434520298034989612417984552018573763548504792592663421484882894690923524172260572324731396206257001275776951058858186968163740953844355900119170019577852573365079193321888477501554650588425213143633837806743152859747348589051320182638182057666299510245237258407583901375343399393817516566991221185498486914302139838914049508378393712811206034012289319601681378901478149595541597389800120689867833129293352349180759465980744730535120341851683957722939725294290424062746478352068340806961601621202639809277664549045035619298009257323343410742642968053897306733728506272205658202693063727615583905287385293500463839457525384248500825918018202807819134872442196303280397087821774051890817525368230065984067879346536280282771692939028300385312007415837134308389903704924860896614150369223158359997914798391095208411350812524738923618791136753549244006055992960201942782531062921991713873776845653081041313718661634193217014660497034994958398368077462778111971238418911160050167687036323726793615151935522645685908249672318143834805261242596221835199195307777410458805789175584682726559773239820779013140261270759695852469219371153081571353132264475631624355851094926392885366282504236822995115530556558958713256468667782735679231254279945514400328661865415358339397602353427526151422123219849987768606495510033702955318776100481860354558775307053636064871296137781840578675332629980511452380354143471120987761705187502230000039513061441697245375511127021442744902329044398244565932666682442742764851161704472227126401489225501181730426381526273728086737496631520220553961811690316022039223919939952534477416120069373978924169232764582384689365412277930754959120188690718481407532479959748392361283980426930624145364637228522439605693913924731733797089851514119362278297130917082257335560544241084289883925837419232867676403855277371381838067324043941352370965695919565943996525334636615166420823711809756789746111141643888631418869796642393654184406515223553464377813778401824353415053935568939573696188672390000248269822230138834370445661613543749925048429533212791261687024058352139673451208896068897407166322133734546064002332645304356070689914162910647762693462007463403824740322160371217385375650140332652896286733588502151230363359297239203679585179950262823845298174186326553055755771543357962858754100115796346178112574577759003480800626191491122714626324433314483623134350768927915998661319542598332616779916769751475234222020458385869350195301439969373351365365875019826330340448952428167913924336814227081390062035334822904961310265771624387660671212816662112565644959489391513469849093574651931003352779664542031573592688202568708051191370090707661650697983600454578597207981815195437722361701271270628584590872353233654533485618707536079769047218185448453532780763851738767837444278536702420366194167860420695216495276273862545378589384488927137097224687633458603113339773587080472725503955005476184963042102216258185218899177000014669463891484356157743772316245538173389240862996414552340434810480628868419723469374456486231369253717305714503226580099709124696814173613777609342585799408041018654195187940201683515382069542104468861441014675578675861234030530260085493136422394819792195029446523282709138576245210032522383674702685161359018901081705053042898884127721228653209416522477457820017873624763119958125667476502461565588758864335965646537052829836399352120083269875334335745810230699644067891014132650829720719725173207415527467813024413110033165825759614691721949203358807105454359527158808147371855123901391126653910587206930854453659155484533861745243303857304729367511819332748959771522518468706498441156496836242186536685753560880955988614398141803564209506431530866035344046301564477124073549357489004701523037835460132577994069190790543271602166051003366043151194208583460322275145577868430671452080333285222617017103775957549637116475017236046960007987534765374220531787649908902602975081198119180710897044215040412167432028775559365121273938850219906870731956889286671522825192705677697005384974250678055394581150809438426864431366275402819077518293172465100164211534142040905453767227386520434544658262021299549580230969359993053846247452947915155337469240931061373259680163651292021863074593343470017509633206819096825859538713481215171928463112595822290528762139819935760541571041700080231760284754704005849409739069435951203704569015514870018015907099085989950429097478153508772568102568726257418863969381575839809968467926111980996998118999245474955277340465887486379620998679944328643205946154789257526271329703264279958923957538854023763828058923830434002624145889220113129648544845774548571876169831599805221948537204292976722291982213750591196613911812132536578079016491261914719438312828948892904034071544154511301444963886055126907249495819700492544500870670030269452948262299757354834672895679067564225664567509775243035837245760635492709945391588008947129650270173030686702329735591339160330703862066792222012159940038830497535600244231994940213636190461526848754021898122115461304291252412903479904720210455594394166855592475427029908788281082677067865270836141695058295177821537141336370315447998490421493644543491218338780466474204869298449907813247025740074309959005207043886893829040900996675972699615699380496206496667045252507244921542661208628159851789444599381610838161274663168796855371158466867450268192089484950684012666110266339019726278155384495417148469059053495400250366776085480670469916460810901131013185233414862270211940101421643964625552108952998048385158918251486152789873548278160565307038721397782735661364541513860109644690089394908672134152914024961224979219259621102713212295138194558753985936029930128279739963745673453166238546158048690970468326047419996095389278842850274599657884530351380935973142336908333617037077549846806429499154891636792753452168679792465542261307300386185185787672847286742541778438256426269616412779499657417222667950294275431029059454351782670251660400640462204317200034225927447681061104457894370100717847073104590660137207601480054039483350577814166462286614117928484838590169798951459135859841160025505426711936730566066630792427815877716375816389031166672409567438063874764993952779520661963142211680439650098464612683150923471567486691958000257867124770686984363123763738846691198399003524826499753208208772871161822370784527415867645163390027035865850892154311969422019842171208772241555400682889562835877685376288429743496214433371988508468435303084670178533434559947231422105180625091011130742157207115394168229673416848164994838999467408637908955923103178445542114233644490207505342834480297802020082360788979386877818399785341396591233120819926064431578518995297660222794985595755411921777610257268142011096036734350432503505452323983911982279795931726600194646576890016765080895249887727740130852780026603237219661350877581789687236323884901285715525250188865989380596380550682923024218266758675481128302187709841841888835496253819524478288560266768330523867292806092132735369640154982620863617046131144699828871179489112534669953538561511425553149754322024710786190890971106471615970270298878172004233556310058213555048034207258920705876157973702681336249788438039303347822763149838461229372892051495002711728611804436741222693433690910719432824986661004231670286036306820298738613839344467867582411762320012693658472894999971505529195857228501169598561189965709475668596549735875806308909144978514787024477055284036381523582485946488063414122215184466380727485926655177225090281150633000047974314500647335481462828605758213336344393872007056737660181258444012493793442759804763387969875829863267186552841267594177366571062777963468847194578605897532092075713792080930264773069933249247304459397423431198068428667307299035233089178234248494062471912352261717982216696525077574858590889254242322616218674501417811484526259244610036651848037727815363907426811468644596568237285648993365527281544259580469942576035952429766533671884814971135877485814978647241679387181961030713826922597204630133755827187043948514450262954768326234459416448006610308079291315758261046349279542121542812004710478496859850485926532622005893685457616964733476139033770041917583024496758403366453847023201511306360734130520711498021158159885180096143366133968031971264177080923179373063737871086424906553602552786564027690815735876807137753769803572345110685468840777026680938692549996441855017115293938089875332308141573024304194207150486704447315583737006266977335184772845010647556567741842064111591949963085670356842000667246505310301007098812612708019867757216648766943180278378514303981540073808202869286209230964551537975006649091646621385337317776222895567963056655401685477860693295780280836105784361685103092768413922869308527445738636167157569596538409833945338124239972128534923883811902147696700297636106872231040404295882543099146516088027335601525049391824583696967122366685045414643104127993947263988266607956822205515258079675600866553713994650710655945040640449789842839327950016247280514973031731216797101344903188397938188987799986113363500540507236604391810733634219727009901336035108680447480703054308163833832383489211042497860844602916776429180052630805441045955573279115390142324431257927857562948394558821862380943420678577684257135391146781556238048279448547239914354372762661493443822549676482450740734884855328246646109818750590939615256335696169145122558229435405310330533402959910659074887952220955152756482402235357210008909714332697362809442354942684132522015076743453173010790202835964728966615611849034995381378098370309535227488636406852188921134307213034682402686690332478180376271589149069450703923921526895007119896505810328317725104673334836120450022679829506117160833674641420041599116935858757106249832160193170435083411556996252884726070082291558202039187504467134534156510674540532815942594402491448752354997388702321643373050772714503867731238380417842098540290969965654665690779465494958677762828910069875735546327681988067947461747034948309985228536621661002261710703865215689525097982684411542626326697155693665882313238658049334672491883312207062478779553710060323922302364059941196526458767310331000126083406661705046432026011921316601330825154583984351257055230397226115961320377583528511391166280060943247444178053252246350062752295192276360758145855081394882891517547581017433631061706676275090096656390748019030525352068755590963934376094212867068121061441524796783778188074436530248257496857064719516610914734231973604413744672948098333049238263861899256148898341791368481582853419814377883057362500985433900533786135380721258888682289384231451712692930512853785413860489389046574032581464542682409169522991211248428271632247802173771143143716197741611308903820167975226082123907451672309022728960042929302671448167901795952179312035355063345999340823832548889922828881426013408031588758842628935333169003878008147244958279880661460624950144503564863854787634633654802016536724459949826671324704771545468927071528163370193795129258884629851855936622989663266643837853360045084123496825658767119661118682579042612292089968319755666199124401755677400176833592882629081661217578127828996547034154803500626702500880711724895479237901364251204882472363484418245454774698236472128327178123133414525112887819984534378761094901550134888493853175232436168742690299615628098387292956763662375537016624370547940929273916972112911415996249425655231062544648272778257534372076028718890978704069603614899226583260381318402492131501113832424182644499529238257437818684516611225045490504049620676715238597322816368438211796839664696518368042853771481083833741339526074825509108354128197622725965145444159276990791811003825399147723998298326722390825720763113904883174585450110112540262526232088022004688011977694298812063046319440091634715745219300531375157639129474076965264301337092164274560028909614875450225405169187190169758502872848846599876754148073017016591143443822205033543959654935129172479313849071741831072311158773314625021441754759619049583854715057451017696782958821821273120710325242058164670703825205185739706158983785191441912079233438416088993658677755460592768960074275628217717477329977759621380754149356216782287585070964501580152799102456628529062902794417551961982331772459800438082361481159508122970579410315084801555868870392796701129736348814931848211564599905816895484635989364434117296030089603280754540409954207308542233050558124315641317854276613936008625923129406006736986236657272037546064801946791186017165676489488564972747178563730540218201672271220985680041702802288773051830958040280524797725134075334711358784394406135301166603055025738672060862285176617443198048757223288681345036102452056647528147859457787489043963069421401207188444767281717309500762083950385856464468126972512025691093767007913388524757414249430026575663508820551067813299238765526256893767779506176848552349362236132193313038848398014791640228540146770546444979813652303765292445435622347453724689437100525741261431006597124373088535562197143009731805950527914380898272481258201556362912561708325722419630036075923753338314043746251958324100210249411043767627335016992902304086191466873391771572621462291503114909202605826507824813655216232889051555150441361810267721249431964948788371237239424426882018731734534432784548003108336372141345048803563217168200491123188002987776477569500368326862711352079873061493583401342045745231274672793939185411045446519278480816256305791694945318623590651037651269659787718174173386167954823971326884860196405852213823615123255897750750577812536695799720266726724579468117355996108082446243925456913958749904307759925594485890859330611517563140760917991341574318018838044072263527035985814962472367158841245311837023363746681559760610090380118082204734642116969916730173345511321503274120088213159486575764122932253044626681185332377267606714472138586510920358776391576375173703165625621108283513745173645236951641869168004854543407500163344171319305002418020600667759835203829844351382481088576397615848401959450838389123512356118009382206994895248902505053598498485796032376002376712270900783431266326456129227792368474377954753998323523063366630468920951059271996021583859073684457480219271928694186626285101029952488308469563270567305166038583987068491603907774927835416928458979433930935066619753122843108414875758625050454723220101214557422851431508774319358024449020756923808823323091789226623205499827803854759704201753468457624943724340670608317892933796502414232502847116710023462838795847340752282357367154684975828199298295621248365568286844216336908919813320452263948607092217727865316142514922370573540582193221437773094131323046860659920091738226435112842839655265136445532977441043806428788002566070786479223732330517112787235681955192548436734335264204584223753868760579848883159844772637044423613525806481049683474738494989191314077775305886213180196939294713802312655732793958293824272221191125785601924450486130822979544068186005836863761952611180761865125073180391206103179757444741777555389228763629076300327326940301731076552546097489853576630877755766445750082000459465523584635678086469201975307604693399402976911206896191154298401038655628763433754659467425806428133479427301739329426427861134507614552593966794467795028738828717163200023412571383415390040861047103154845905824491662605944999843738860163948260576578657652017310884922176898470079233393495469688271345275489841012424539211823452912386815645668490892787906043220712431604019424532768735480401313752316114588063740823018821861937104412259112154133550196678551893384315916097518681956257793223778845736067600827686778992464751985498972752314888877010469901374722920407891090909057214921796130522205051811433461329199467558632060799321470539158854925457666468572420693498195232929044448430075124344663383581050569003653148767593589726767296847555298075110807335207589705627811599377184645908598069452487925890578225751462234319994399007082502316326109926138152658817509256075507839124812572333385749949621073492781076490405574625855509953623459502141552487061162912651677423667941463009179927574424897707257766153571642970468576990962936387651695422108861140697284025059285388308890022772533064978879540126569633725600310253562117073831066393730600483903660455550012762449682374897889830922447236789842918742319299028896287412948306470823175895569843964687511787578631401382263716412775341738257498491496495788794399195148984044438737361454759412210691540143499090052300314066767635845634034124934725002924565759057455645111551229303876563646856294590498054088237740596054971828942366877379857613072413863740126336655896197022307439982221387645841457959696259883662615094528330628120917284729196459974559843636140368830779045565272323911938718493423526304557252166703791723527846563495141264181505202465977405438504678521862043482533873161980207573731692482284913972315779968497047329475342873023093028447809392970088276452017563176132809704657535133763281134461910037087690848628465995580767983150033380623711316547980186766203297581829547983986844700331073817629696363689829902977098638371087668339838540553606550923271268925056023100027110229885855312046414028361298197453568429655802556002827611477348980803275798605824916352603531588012813023710907051789799408955694942482797547001483844348641731492245918147339583875082599055871454573234618498336949111106272333337637893267137256107574564068836802626287486210806011825033857044309763778775999680927437914639398682859182058689471205219717620139310404370728719758585065989852261095913852157601742258823407152353465826516823548794226621926598151189983281268834452164745029797223178838042240989353755437715607317124384014661038590684667049026600431667058116032242227779515851265780366789973347823058732035494926155260655458414703127393153049968743000820416845119833054463264224774568915504050646003436455167849576551833645093043992199174271242707557619908602590818033826586710749268340508517151704521941760398035740075158723377135824558822427759594447336964049981219883182325494961456351005497425655274839809299570483868890402355163376293056912131397036832064688736713098731022649079466509787209764788334362974041540360863925655894338981495406918842081107094071573660991227528840354253348678861231620028225112052248165182765108696018191022983930501427446057378396007169785028447237394441994486569489266180069800729290728436302880754229418476556138837947126453571938751484815002722897407020014120020346203255519076952493205520256832316341213664811420582965706248054201271370553521001513825485416559062836907130218120522131466212764398846743770078538914197438538671291820408093647662362846290677757306401287350752647145559418052661423077765308058870370776307603095740466521663955189748896343946305395186361465958924050061584094216782553111862128361324298940527827694273953703432434113967093875864552551398467413397889653839858525424461463864941063433010847600451665935937415502776219384878808765017135059187387238335227574812510417520148083429115967151300279903426984100654441097855544538633819593838180973138907637436802202037708754541699261317421556789961460530428533995299795534921140573658797277361464576334944449514250267319348897566994312340145175811476223841508349794649903206143525899529286750324696722053186304201358294965713525510400288810945230334008541800531132412438436571967000689072453027786853248558078200393902200345979692073381293005346367536096410025629434299987012716493428801850925290235074989237925699682869925639282325093018360672305708951609371821088363409630538475584069418425944141813722247263862373049564197081947184795279317226377663676687283135294033984334127271402173918444849507052858781937965555501439611424276042798501346828687790569622903790268343220092377183307733375909980621721689860401189299433519712478992486702776044468836045688983372955393845623285148477863890128417982920903278854725308593046191953490513871783961975264420781425525450863279391309828961862407339065778509723446505112828197767954574580679912423158580096267829571941433125090666190624880152983166903641018324096171527325595417205805031826328490697744333374228307600327966633574685132169682417307554991044775958713953828326822763949678990101186675675404487712276183370833664059905458636868003855567147276548882264486110523712417891959035736071360286172946914023528182121933392986120285977263149091764286298170283403765093669559343511174401565877612378270903979278284557289543529531200691778629064153395170416798543140605158543826147442660404283363968639131978951130231339552577966724941011863506025872622280561103350228883347831390554362702520452880584973538602178528708616738980195161231560112478380814637627017007574533427593236783984915217831636153130647442191499052300702165034444419279639310298251085540264264199108438595565088697028839063913529494154854090262965160725234044406164639651752341873425558345054874129180927615035125192516268536426615861315122360441934621487296551252070068713056913350407194935396843171184577667134342750221813078796927342330895938568517058565802578089303036820915814476549660734820815400167494294003860816977286009226641153135911735226987934382956300616116696587466436001554537471750329873810234410731023062457396111216720216934097328246717102917306548733335812124280900542403412957007300925381942498802255797572378178475430509216128978233396452665485547673104686645523462083220505774455051424172929632268015386677638142365223469800819067126079815913307016336918459872246501152861607802486364392021874255865343639730391690113062974259388331349401243552203460664779374583246853688845424508117169540750162301428897399290231241298948986475600089023713455906267088604072054878066786036101629821215399641145874676614614301740379188061910555792525796565235258197904810502388673969298561950770253956462668045088695344699028700503250263790989015146209278665997126735305607317877003665539667191892859383529746213673922014992859220790303608158409494734297527899042717609042593736253485740362652350299300621533283914261241336620358376387872408272136387385864897710797833828901354304605767663405891062969517839926041635845426676934358342189515143848870002823777263599391051506250956906421036232584148193451598070542916101324316930872662670106852217937958754477686879141895790488751236357240237170800863077461204364681404629730131287241103899010850359830687510162173202521794128420304148333524741717206224767214590310032181773122391209178636324168701777749176910465105854203850194809224045920480428745191905298630382442506315336651442373738120070882206398038685748144086801295476595838632187309506380571524131371307705161010371966754966672761082314499373034858546377763595165933141184746725632496641404134340892693428692591209786767994378638218231582394727077662629502064216940245388326842091722436699792325774211418130427585766905141698364957509856543089745316523538301424640941345778293668130190658590822188053637699491019881619926335789005859573358788250055842088297207513194925805728467923217151873550603915724236251485084091566542751808649013045814161278141821272899104403833010815599435472099989250896725495691619246070596414714051954270517848931126735934234232643264574886821532617710862299645892476067449527627071433221053742645840555678290226681532701841588494399809803495027896103833152498987792125736382828030134116447701148153602629153026635432565388926450770758831190406323778197166069527412705977749992722938267197098061511699729168043959786063239413300345382044562619920086915528513362130944536185196802620675014529202411285047691556267097844941438420537286149497259200304176479075428143745198377407056311185833050575212433934899633672691561930623345919976281844222354672758169757594171842538041590925428609313441085338416521846659756285818269602711798482152490315328379850419838255856299230858818192195896707567578516913066624008010275249449896020348557580266812328640174177432962917187045243250623146333794426223352042793631740078746072001155650591314907424039166646029759517763899727796634917782301312229886408244485326306422791258829758358516854292931005643677682725097900435003641627448215279130424525633121687847693909995527797513993639130694683586356569766651395534703143991517114607273411140292600272399682584928694898522628905555663765187493565523367586530490415262675519684394087559349360665770279290864291232792062126191948884883892536933080457629401040030800005416931450794225821971294269913615528380628054199088372008972324572693132857537776038738205854424102846705287736259165075985521211615697582371308840995792036538097604805954381380246161216221776952920041539841284119249836914426545498126337962994710980476920309183481804449319299035006998308211803560379159307685214705015146116112364320155279248393365506444265384805163522222222250125436491493188089671025784393747621228501200661824734553049410353667445445656712197818217375257926912629964949475568557803772036613601085869927174105290819207976261037303394151403061276430644754207960622558509023474199587612263466411272784073754216803371748428902402466663249765039009233122868361965115911166296577206703592736280772228126199035596966839408712157404783064068086108544636721184738015998666204198575392069133258402064173418933069994106118001500153355129771451478467735958222302801922541632659038802607657847102871989187459242040056629529579920520809670937930046990836569136014332340217092887762605355324168317861019118111898553700318299710613867657094382249867211019157033019263867104415955656735705217882114340753268300159547610636623893674189823046584316342330933737424963792794491588854167575048198391297356361231822769039061424599356828908611802320590704475822352530635359354869161559964454789758816980598013800262192531658004186985387547292197671579373607939003870105549423210959690700217812717250918964568541791292621839517139510581456188823811903743572196169102122624548505900628971603913676411620023944412173698111811805761691513374356393881451226407929896196917389832793404193609717601655692157945998210274725505816138815699939665019530415006300559163195266775072881898017179450626953344818712183024984307510501860228058948395631538342742756081249931842421370026963056912264217219605490357366651715754394043379361587212619490196914966417171221717700464639349290360629345502865441742804771676929541807871670062626567433287622598588308231943390725083644995718099404053417745423790465670499742969548335476543350955749223907713700140562748927418810383531644328744770856530788859867602314107493116973316475776033616490176193178425199534805695677998774678372783886620231141671734785375124063848915456829804824164053501381676153605917450661714591800091065751807442418580831833938874787933080164947069269888390557619397549147967921315385558756909897313895928871204824463877783466227345818789766406499376560495627041458400047680972915300035339504039727101644722100736746700724908355245313523805869409816002711724189812984006965645576828695149772939215291631218940087494146913771053331651892921752340434679612181354380982351433232230414306187534845705826426579220338115288850860721589740605513765978001244387694304776744593994481968213535290143512616766757202180055259628587067884673649262260136132187516852587332648993871736031360483366003668495295711911599990700498932632261336553625436681632859110003735562526332340068572565708677835040646622944876005676655415757192845993012884246791420569603629261617679998938946277534383035211108499549612504528290555447899805293699161282858223149527520478731654885673173083326702029048223103201053402484541243421187476135932420308946103190371724804234115312549221293513388075665116890821901216516828102795932158236175136456935535174530401601221620004458033918392716407288566175457610829516048531129387805833348893585226498047353004157591125823584416503163048891343977090953687024949416140670169944842253705029929122618838003936991942107922733365043118518525727747513573026144403621089196630551804610724106598422325288674172967335285698542502998697840116176850569518586553290109857524250252040414945491529158509081980162805814120517677385741349477921491924143785593127783423714027970321980522224257570761814073341288882266195865809327227987139530092047078321312651301293030454412262173322259348380633110011670972780465349152399648681777280360814986008377046853018404423155742472183849764801427089711457256358843862602362053379536031784028150357231118051583227657286978439366769901211788675889485240538496334569877660772318960442783959993037227480487404943058308471850679110668981792586044259231587309299476516557710077286876906545245956175265199008776845505923578385678498104733420486396117750546874002817991830979716068877483666885274245561805593978494196638468081974933741848840837573502976366906410480665552315032241213661378246733403253038000783188488708388041871583720036691724323434353266134351162912365442834510890585540463418478509565416454172311487433177425084688138637058302274465284598511753318176600973638621759032448675704160423965656847634613975352959454034555528976800403162184814567223726778925557537075582581644477777859227467499559175835859228841741103946577681235906671033401206082693957121632889166815371961637893954915717792407032945437572248502546800259219213164722384367657927245222360243137000719032846513016378201652561912120299108187949206541258059912517578892768302988674113172455158900319741339857918725364824212926186843307018949699740905884425957189251184194863477567133500087677806127520369868885588570436402874303617286792355329798837343247718004913840003370576655119357963804416644377701918929595217661597918407233626440662570117748872832257852868715755854752848612508678738580577388044763721399805117336220337373066933637678284579445820857541319134643350687356900406318189954884701667332077623480549293367601564305805739760201513988391941662681715042856339542932270109962871236338840430296493706424539475446328349605476499098702960878272844764268176959303587236257077090016015414242381698925691856005515794922363871403739337027834486876028727919644736212181401078907198816660545545166572625263358818264553510966846593305312616408011099227255961098580131416015599897359314274173644733152545263287194484457748501124179903074582792196890562147331688538589568336947760809842096058838148456438142513958026310528587195663413580192469237289179273957238159039477285555659475430497284780934335245463307338151380640778583740026347627470247511996953033402977785050316601648665854584984555863506664334977897401799139441294062508104958338187500265997786601895483576714940247049337655276484512137697189486218410990764288583976113873230408176263117315641836826663039499675189290577935478953391790434851319292503582510796133820696232384090097904836336119645030053260508715366469436704257491312459627444817048564618895795185948254658105262963596020403402025480987685023116498180017530872456714470655712747401831900135240737222546027113774400851665089968464251885872380207787424958782050839050059120005261388739303727306356986511809096165376572904754441562476033683779496508667975296654422632735642400366743399285829374486609116478969225780076263336982374156414329571183078591537466778079534989126808751427136730346965619751138638262718280778254459293865426826046782605138105501862261908223681010807345983049286597530548265458839203036189193162690692061536773414848292915598788581893359113626373398308500259348958672776759362606687409342753433433517269496509435315072103778737612582030635717709874962132977405173385601919200689240890869407204235019135163383512511692438457227438384846201921756818029081725538959802605914794633104740295828774289842205689685752534588771830883933272964641909356131528093661719390940687505543980974162415373246834347438170351619394224473533706990500121970295345417379621823200271066956276743358715056632197411041212487237506991704837586531005306374839907607342540403535886926079060355957637238413768022183611664231958797859886924445671501251324649349866946012432742036283296223953958897184151898018118521689675621294802830756842239890473131472325693154982284132976133397032588397650462199041515729775142442464664898334095858395442964506387068351501264606619014508818491118238863714856268338705720937237230308611112360310661614602720843297525131566339415378847100494265508098514591469027806959538139937829208084430124242969235928605862044575164764154584232099350505515200826697444074878469086501063389695883168678369961833445618529232179408433453238516850942231449546834007483561680358632707137527657066281059098129215389426340203124266409991940537074689765477813369430894690030253496827529529023366872584669273728772134491163609337891267865371374119771954737104655066849065188714413510350195027931794296760852475903586391822018059794080612864917048020919609351268824108385596453213814951976372126910215731037582756869302130400421818112339183836034982245092297670599263712271010264244318600678168308879509098494598622138052260450358993399019872192969526544255435573839034273207845689538750933393562724168338178514762159043539027890591264604760682502412593015574970300039992194032160456893113505148946035930344878389917816547864558647992036119554112425364961823300976559229495074968861949882493192636075357949844277355131907776592988937364365107197175925060348713006076489109780895592943805837222236075619815327815968593849229651817006469999002295707684831455823252612832250839896507426372580919294720701817091898658957677240250948832395889033237218578220345442185530131991433681429392611505221512403436639601766438529037042987832453239934165053787656100847592846729071182885434015021920149380550907218264346863060263031648570787722814251517148727377169487075844788548926847402428488135272192500916792040250704419912280388830418803450874067522775819766416945839618320348013793642358125065546354398964914964627153782933638535005469802111211635299126697055866771609153444257886106732099569585640469576115518520090457851864014353842553769651963345291216699511368527123033858453258589761311232416942811398808720540234753408700049792338950511954200338217776525960621432831346837259238251163198510152495250651635018638592967337616466974593381079992653382763152848244150039474583464906548027059687576551122777127003625334426501551969466027858017936975459445306456166091003917672433791303969503259898601234439050329521468023676720931115768639521497286796075960961751208336460195288729289788558223973922568023178935595033960412497987197048137731651175345185650349887250648971106306149973221307813337211337694109662127489776796773616700618755190702625774273833613192853747625965513217333110847034148875192205045309928898075765516078321103373601758791798892965273997587564308847721902890614860906725947695947348754936132313370457028866132676921280791176721423333723129789208411627875070383029878203579291065327764563710144356661257241264460676528167247262845396063240129689221203155218683556454318525592741214302706155681937321491135789541717721352867329872259723225063179617726889599784390361985937090874610798391409097875403268780094182847362803792412105260782144990960903090349762327600029083695537141199094307697941285109746958725506751198833734966342585767163078031322772505832323760934470093114331935017833815236351136757726053254267526646428129787741585097921575806152599512013238813103445354251410303091476658597379045267687016159127147768867143864204259084455940717199447779146789974083985198088980196400282805663687296625256427429301855674997259728587843402343351611298474927355875350725537831040104984019706045560251603201082581104731476344259835183245536529799214123975582146773883745835965068523776075129359336093250948328890577373041848321254239174025645932546285879734464509074266399967170728030070458041338438518070400068606864394447979057028948754803896245528391420793603354899403495420527938088210988768843343491773444075075355945698632249947145556701407663841156081664053717091332772704803502148417944816790380930564381613253412832974154026151626934877848291706273641677816240987142382164312165233502966418311426647312216545534685678475446317089601159032523235322945588053246833264457725995307115865707769100826984335748947100600618909357564011841017009571128261130594823239413013618147956491736742779165981714784812855532066426884666183715723330340076931552773712453510652539062439167556077350024251221282511934863603086840817093783569888625446213869175372332487074972590282264876143668795235150537606173043362590102489625920812742464137589257821934052020486654889447443124549727558597689536392897695816287892847204552806019945535023519281749700278686821339488192082611686990417336631548010798914009991668697786732108441847525679772899480086222551240284777050162704908970963494467889489960867871373751574441756332607231876100080414767916015983127664132339205367247782806906693200074716991926586038299898319736168434143156052946929513089266178070941677298771312810545215108504616964395751402814185332221792820927943634236758979985389033504577250773549506275019861365526719511197593066698710721293517040414891822006366117500709209062435250622388813829743738347234498212046978353588615421384662141229463192966284687186403445886076101314672973897370285310284842540083595975938121178575933448448471953794128692481732566627284534320105369412549367316041154952289857826381493507276780524960914883321017132485772078162089659312808253182580712453908369460316809225170303059588172890727195823433547921832188358205614779447946393269870168782419630718249235528678853826686950583749120164348704066910689777464436260803112356138528501130190673444722153184671001263804240326285062985005374308388979613739469794213674340238667904700918201706315050262199791137900538899749187278264831520998263735206646952761413876920630138492955323218094885577170435428361041437410719734259341580628783202533297054147724515907852396003102138763545543038750866829405127824206034256293008222880185500338223419186178640370416199945247413021014961822905494740973733188614374267970996260855250893031770480300654403884869698068349658718545604706167592269796987672978424220822359821971076199463059971851164437696405663105114619894909499816918648560398732260423493891672920456269646269763941704851667950068443361975877157636027276062997300989056504694169521781944916684535864406421606879852242698627258132922750796923688770484003965328443158683443701516862454686830498157397748741913343223621373804161848484744765240322868389016287112631140004707148362766708549087527025332244844675772463279342227091108338477771824085366446065026896226533366865348381602570337543237098240629827184369245837839729234148129029735622139055318541681827511765783731726528727066509550003650859704427816536475505744085031340125459893219992619877476483966317556271898066095163029394723012591762546035439265773253110260492071465689263229304114487689298410232446199072069427390207940564353299480296669629395708833586693472692737160689925609939022830207204818183982160884591211420626517297541263343040664039147475922784939377759711576610832261167515254502310191989127250410223508926099485673990329580249608773545447753568937708891988546543505050364162825644473628758083030172171852323679004288263101549068482433669171947719866664545098707954109222398351658181390728779643338670591129662397514824195156000975633324670990787163803421922936606311968914762444146813525591866526147898855710444636003559735041728148078587379051616769266315974313547598451126783117388356576406332117317418608428332425172331433501294860030360943466540443578317699362968847688271203263841304649324290097523698908214595799662429654419266505180846215382344411960132993930542434755957043891455823010168926098986184257613839830632894137321463945530513395333325254851131434111254779038342362100682130430478917864188872649655632131979511411061011995647759891282757881136268093094310109613627368126289800219357018937838996328668572588133100138915455536346811157164904133872498339975538518233900489726736389962669564163012980240162303339249606879357421597732066117946973548140835977132335366709980286167256222399373555650668695850198116287815780069430119200376165803872094854071671088706110702402675889305818406418866356497626389963577877392940068274563924283330775424544578113661642961901244805473738224420923769670310848835016109695357239934825429409561043921935944687608100791360899018996521972073487682020579789576777209055079104801797809004187073575677251191006310545938846876158054849945474388545020188996956261058007151682924115357712338525506352878019523112731213595371681468104489252073373366867733245881665934587525482654182350894775877861530058822078743167237098538345755263062179749588730965813266497287665161958849405573834685083848129563525086690649072551278483665199659204896687847678134131984035224631536863340761057643848127694831319136439752490144069064817159227062701853682626630375462320010393222058871960580783376902799293925667011972838487870123061605826978589170213295144652366160512161105696142841390717325727477871388011597211413799651468455909187538015327087271785598703557783988617146295261714022696848698346407366034062091359568290513028352166470564475025738549235849431677209522071604040848190279495725806250633231711822692153417278186636934933932742709812370809943589358337272050135884353897829804011239291949228969167579455813795407518602922039249284166422500198761616055375326022323582715230139570525860675904600752712524841643954877152715408394863852045469941302990887030342928074461749902786338271712098366652945157973035481517735706410466988019456817855917123716310165810024568485436006738946872224250890144627650857629534499152536486581204849115066464749208560050205856965597749489123636344291516639562141434001648502235447059152810536629125129849458158419413327000980269910117981924690768518004897764029775359521495979998613950996818078517058075329399573349368023380001732116379443473997554984969594651554008661547026178142572814650332222595572747621036112073363682693780939142058445533357567044387292888094228869192927218009113256180500725543772727366115081017497892993958389809152255663252211475231079548961872672290797292036620636459653313339281292938910656785597047744673289439866053840606337982755986295103506215205238376118599831655560211189386955705466912161461419827580050570414287195426050265587669080847665831666107825928676085630299071608158579219240964328221853981782741743741456293209203956112142881757081336961582306923921214485634159830615850180693740139749522651400899655025552739914332866244264824186071751762238221849785784265941797842190341645093913418236954237671708108942556665180137646614255068806114417652867445819916566255822966207793852327211926739101678917120847823591143363190598555027751925883823432355034391578973800226231798893285761130911376627263233341023472311107541971252418304624581947046810490579080320485772774223654712368912594425256096286628521449664404370404639525367707798201449607524610319898504274013863887328971193991503120546992964281749921906067548718512182449066687158564405580614767242766273943328930251458895310160713983849191724596905232936605000666991476392139971107243156416938906437631648848540674963115598633129652374555063062479297452494409651609571170202636580729088028471297154101863932658564703233559970429775766027577337540749960260809269769314382397655121511479992257119338977810697315007121153003134750857633385365231301636332597089581657275200499912407189229337435845727441376138794459791863053076711657456796623016210415271237988607857612934542346744608118766997776695975767838122183880223522451418923613914069983651742822631083076964782263912310212269852603059973012403749886240966961845004313977767444787729677954611557690913881974304006613601837696906136922161739897582870939002311835903600520142434540028595632719711300664201889294676763126373426847003520056647256108824013648112251929894230564158944981563638345402300752297683148376552018361383023764248778889032501715970576031359083609895812881047411584523211381978355695360423941593106741216145298238409918596711793848407002774727402750457070381251303944652782030216104637362406753169659909105887406577438903931007978070628895687950801049953631939343915748539288511513883356059169642377038218392197630830303539207590369530599878649302758908042375781314357637311105737430164971766727377413539267626921718201082283532409591025892285681339090049934459977030814134125141005396433355915805248403836187341205035846212812745100889451737858331238885655805970097069252100102074928506641561901193089974220795202349862462896546074328644365234034369476904710752198914277207442511816968786998818251079686209931043934457782154418837218087084049120215409800380442421148195902972484275134312794443742215968411858396209466691850782772643315990469121973204535813845607090007777862710462602643732539693641340488217694706005697544623158802728546723714561796842106644429668525720750240917868915787649742200397692233779654304021585289729334996024239697131900674153143750264481162603038382023303514058448920719397562858457682823536590717388422581842728182489239723539708150415995698492531674902043492491172092289354726146072617633427075273667251229627676902453680463715380674816907477563592538715436844741056617277592196181649726000599482344712424413969148889342145795764733433401899274755540316883846932447556713562701882497212353048413916654360753449679489556265268313110411147529281689030816306062508005767605567774305649107337891537753048942971055973532013984021010467896271796153209594703807500621512518999155411164212079770066034751371533748583182422095653013040175089820744684665442574146916466830767018062390841264584981356265032639491977769522538096338369410857661756693466190376960372315535946437470195789444198876196128117591902787481711430330472722393470743188279592390392721987824813558968787886853173492598764862780678882070726278766901750669327771913432988082302442411875156035451017369649073544065016374948418383066219977840110603908672885148897842284163466638646224363460319745221386115268307332299225174851927277424746076423001886244415873832403517614934762727623689805692645249770067805186353656983050764291440010008650838584446990541232121080593681287480198281886527425514802721612322810773413817384491171604682246035706810497884918457981486951027292637464681712478979261263987025142077418132902209449885388516664584807344006497312660576517255226184854273377158600677187188569368989771121535178187214966885451089814311010147246622128689713113987550202187141792509951777748045861430047376816569580787463313579611728854308522965146538134137323814951096208306491290984534787179662359229801918317569806556221899083403968140915610991477473622286284925612447052422888343280514306600814133018040349990618080149473731053603711568973089884824274897658071350088279545231911034965948563079738837289497443735873611456528968737951833120265493844147901589063556573124185556377551564331880706968168729490056470970937111522754887306393871274166011912888888632618491446382631873563863178767674608068667368435580547784941646718063781273698822572485412421631959127255986713523944553320202279605247201853987132651740103370769354404455443548066051003858579115383039312637787275300800227431980317216595506673425978936590243215365780791319522514637428638218306776562817296196570041754875753246043313754597047475996511248396138565991167203675999538035460989253108679357116772339742735469881755870315283985063130586570957273531509986695778450184776544968900248587073793512970643808737921755275483450546808560054696447972580002022804346055074430848007756714046992064398909834844868160680133712742776747330058595689195041677774441311005506702165726989766691804204765375980017383312187044927172259030077116821250007520699213691032032975979624080044757009740290325827846274470005464697080917752301783552124456548637187213468977418669376431640500653800772163417056603836730855877196621883060233137663504480228192290100286824026690997786336967947056890821371652882632686514202823945735016274473463957190772155829391387709662440319832921892693608579464269109656819808842916692838813372709535136925756039200838756467134853557587617031960436196332271841329848468625303490801980109288663866181449220753808747732234142436483252258022987536930336915680088353121549581237108110850762543675328261574706366580743297753159682982225576747516470893344220452278101888919949065669720607458019495102222701667961159384606562718163274909925385775477558910283656660625132791121844766783802952237667108323403884037673684137494155925591092626954828959711684913370937404841493358801515059490676771182111651612074304936914779854190119414638583971241825703102403178728780814895337467862355841462330233397863186926761974305744900386106120859293642759308219791673273483735101527477750069933897908784193068800097183102322928829011865853080102917063824257188587403696242484038930479670635927887122400813154562994588022506592676612385647304955293495944765814359504010621959441673816925307564007272890228464453461234745321674744109777352441646878016594421815934711548832359611580997735704701972647793095647574501476519808272346275177624966942332779525311795159941266741672886953475956330432950877848180703557870567084231480196735580669135444305066889588794978134524491009719305142336338007323168141732415718379384110263996622715833640512039742779433697122614696804391212332171334272102211129930228191247999326965024395316093030733021316411551369047090218603272567189448829941574105741017308003949811936037594434228798888425982916307170854929537999317289139836441462629148124846669250432036258046275678199359008361058906412264606089896652953158535614885858257459593806387600202053302964256663780136660732429621388905319599832428232486772467852830837379250729172348581998249583162513547120973122462772574323332873371508770522173495720075961466277817537572012567279878517522634527432269225948722618774521413356413476416023402513209340868903224502007107632618489671571030404220539062631592827830368476828071210653760866609369494494314715359676402608496099481351881571961481054350322453326966819190587895746781237758816264224988224752641367589107374787017113409678164049873594036338948662311057609186165502147418662822608639073032135771557941128495979966727803391711454071879364932244165944330079237057263470639344816557378285315447455967931053386374311896548008027307405796910811758773402627279037526665531391525289359165321650398774279510276425480245567238987332777100875307374892637911454396783924705749924980496959344109477349942004965559655570478352912597123972738704012695719077565412885118036666687520042752538433365717704244541839910475546359947262697017018259728988614668696168039507720252723219229454449256073608498366741365683207767741624154661565702342210667438492063479688333632389382519146490332889970658685024538872478721205471201156888440215796061433223125124228846389989923915348406348883896406624513259677016127586720467625540934374188121525057242837007735658182748704810934768127738169277661147963456039577651997533924846614555931028430525897828944873055840107384242898276142280563969432872353207467383714649973233556461403269022332496386086453342093654081416434661409388969633584661208368036773051663138917504886193989375956539425929790693472946130532498606763961830237012638632828600115130932194776471284756127577519238410527679235361305256115467906700218707058639108492862932745683787027583377158087800071206053248769993960249643630958483971807991318629182154296509881984351647752320760353368837244777381317182128903619542959435246929371952205102117630804871546816088385000472454997014531723219973495135615791506032063364438910197519673765126043499570758411758570895388040783618348592062808935031657915978081626649814396778843528009283902009292780170255567080708841546238201662565933437891500993689001677444733441907872742164523841861113021916822513025520127807211961967225852606722772789956771074034563085131875880744821066461535474459918220891727716820220698998186909347299700817236593293934508303100269562766880529470828089183449781739503263497990599017495340652497864700589316901005631474265988859935120061888068941060649572708325956911972337340684722854796842000424388762266965193349522052496817532806885019475917758210335075600309487962028049346292828039079928510020933103655158102391149028218858611587294280419411027620197742580232658574012770837148725912698380228201385550629933041160545677414939419777677702321322009711933385594799683354586051720629850976093067791601210836299163904137549660158338069564345839359792276034267332527993374149120102939953715655523708603988041364925145071010402553464916816410333666387556236069378642558042443117943030821007203514669750573836590646585246737388821568874006676325702599764453462288654004453328918929517591857556697344177170547003094259016401228109348940859581727805072358831193772715220854877852883691635904311403810488916933645722782130417405657227445628571211102476907346249248443890851524660152470879651057336376901202741271988215614725871684192797386252781277493891167569237507751254284295012652019014361350388604635187636043015066764923389238048375709463155242725598007669472872194444039476859683808784207183918808731512262862441749822023156110121208811398903005866923571386781524423032743112767619470885257838723345670930272746823086784447970953103514464136097644328431216302981208819593173029904689432618572249575856863163226696384661089089120953420767165295289137831042241715116158272983703416682803130370621003885314782420227562444211134516670013226113730936902934296840625651917961736857067220889524177026903036589462509725187025331966989367566247539562978688134396567750189256107466173091041259116113585460896096656461886825816603188788792136539756756128020352451639962907167182715240483245994787455104852901048950988280781422512422683615736823607963893408433865659301749868250028642548316712818903897586195491135750758964949000483719574225266618127577968970707396626927542762975670180087656550546086016694586348246711833144415808817644459214783786648507154815333844101038699086807015636136852612016763235722390868294956286358278548796278234140527490991229422065416221988844164284657650386328758485352759057021847399723267755952477195039659822667070196037929713962145286561301568253116604111857282512796282231152785395615561198004349221755432537191447473331387803085770334921982197144983422050355483827627253657994003935393378330357437744499027269803011194697765464022741012473009520584829399137940150153415866035577701024714946244908256759191797383581673631735783666144993445416449863269316540411782278242843345789846155824404735678758515624808399849108966848148020495910846828916024855545795684724010278395377827962819442190283879601880574586593645181379232357830522915661297996430767112249184851173861534605518924569459783729063642698574601458998892620356781127507322890893504905750057408252486905371336293718509871617943488726076149947456289548369662936025759389527356489650445103534265935167528601248744571916479417402482575259200334200205507044889948125048530079684601991644871396969617439006533656344062888537022658850349119980741913413274998968458571717346978495660168429165234132614523750750011500606827985687776454099043216027761755934706282438422120149486713353509517619648682689137439740220830870335270471763241365896376647438947217669028600739757687282330367530856767476661744053375317596014833342414253463660288827941327408315832142256050257051245118653888893129040849892984323030135094336261026665378848009193539519741821423994771523648909077049627836054112013840032192414311355754103548912267153377612549507612202492070372536718131216304753232765220398567555572776009586578246012784051118731625101911412418974365467838398886086948917822927729122336000297363529534752759183296732389006103791697939078379911800161191927748101568132035192376031709252999163758723985527827051904147474095645222442308362800042122793520669159779391811505926994141932327016445931686767073734334680676021669058612262653764207418095188264433267328053557653690991629569134364685578091434143310283106351742403913578883174829083170017599607800403365240751966621008136039714167963694981738479685394266918784300085826832957294865234094234577510273725247878439190574119805670438292709507139282931565109417268657659170532117776741370378200092285102821402639699543207135291628700264841499205228402151535238923912536328643260029963008834519802887965750350294529459717564831894015141784170932766078939446570389699181821948975380329230262326485626579947188649892019914989146584172532126153641872994881229340800652315770801513908125710142125784166768302641876713999587560351441336918313446405203404080402651420456000970300592720951449873878619360426246865229625192172317276306639018290056692786559991998772302719443074833897145491710387613905715061317964920983320775241717788622630098264331649703922372068098678928594151359653375653123146656872738000942143826702788589735086023569815892267881373240258593240696551199186060360379864405153112634613712852607575466782264466896466646854773112714716171008857895618981911656852587107529218935248213199025783480745707543691979583557720485444792829733366530183141235407943375826087285829372127889653264347980549244770585902946320655184983647396658586576271635833624955967193749813250049319801836921024277362271581128251658557754739642665719115791815463077700505745765024479659096169527313688658048872115080822364274018589043713645176900465210913889792090482676048084228565957492044721778473549849329835880727477595071257882028404438036194420082238906368762916495977116732820639845640172482750153194036649823245866760281316424290411265622379637305572536742840993061112621807583399887095257106703128181225488387354399270958558824595550822839251728590712204204958801365564810682781326096131816525684818629522066034092338876130739351464305172326984918245940185945422616404822028254920487132561813160990859407538944523393220622325577056102834896295373705938713182994079669136714937309666315284519804515445662270585275232845009033421383983119839512150684395771361837337950086754503001049000540312730806966822097644391523229939464527698131410647028471444770861809383730060535606626822060299938132678707898995633205503372094240164068199421076909934753387582355763919387274564238143313970800426504071423393790796029922335415504217520481297302693098862635681265238723470557878946356338053300249687488789550925075563161685569340202285784314363840061622540504593071940939370073261946732481717768604885115596670137047008898664765520927559575952936129655452570494624598536593264134647695116124302371203183558665364657438992590120619576639979480461433213985959664581432612881436076511167870855735021016266507458184635226034014083719126504040435430255389272709717197050142373317885635490675458700521408385537268320041210023025749905064013852888456776692754931959534862612106339711345100589953878200687044855269271865362904052459187218730302952275754998910099017249093754895817190371028108412796227640827891674980534355998349533951077733886133630323042917957842938926596088618530244187800463394423267862195983314430621245528890196369147481043927334609530484671611909128744086887197316412492573580353434337794914505491713966001654790447977551521187803003378359379287391507113128388741343083363039228364427302552828993072966547596007686317284196256157532896559390771234706248442142396947739823326886155200731204771003535492579660309207278707848202023993972067919327978903783168022749513298523009900053993641294975332772791680562329670696190624832884332444043277820810899840557642603218092023799574291658453852944768655159792519527938011561871978814680133059360956795308516520256405230621255453252734958204622444567330071482401847726939962074177018172033979535525824385566915052779100167881892075298743929424444705742676370481160905228547114184814803789153824125962523094421888838475311547123995034175913709344297039619030823239740603824619533213681014235714786197205610512707199616240741089286238436845053944129703097151753704931274957858396592994208140037485247934446232747483084228705946491132713872949383159847923078202660480048949934537567640671567125243668419153131301481423753465591569107584384161281180709957478442169898648633872144703837378608336267991572343175239837370178250181495379865904613057329046197117157607818767399458815073442607406804416672531229175424490534844658494458703908489348719879216991116640789275168757417655694711232082167718261360766700897693094242417970976073765769181533919219674503793476990542393987120998195082069155458226135703464591310344075291390519405798075332616334409252845681898836465759329643325923495872595134113088658713602897876367791643942959066922861344233852560710733147457733715395711131024796572928901381701459670008403067735837733875763930231396021574703269411010439247829364999482649550721574352690620050158628569386890782716100827624074151476201065890583312638704820695398079586304449485083209479549262069095075106193949303934391736605986622261084899064277327493557668130846470556504641181274208436257198720933608429347544052776499025774590679804597867743424630488810814638724761884305983548131693741579615085417901306964064957341443192858543121995868797849783950340809762366820402122676391304681688501843654956988792392149386161444284302239952521543125877623815734968931361896172040766262695021671565554356334598163661534951196260538736685978298208109375901052294558268679005293507148979616766331707881144518792277201459238538998566905820321129197832492519282730066985187887558053225035174076576592410337318735993868740241486314183250641165670571975445113570539822370795759797331077802707128199565402929574003117329565893724787997950326543954549640174947488302721446949313939425517110977955863663343174396223474224592710378282101582182703099267278418299310235418050499101230530103475680212756165208060197915966745106914830806393848806143296139773645571552449381524867507556730785434646123872279340168461430969480508540967940138431252459857771094805487334583766877231358185795966950100997341720735344129723058320216992438266770825845117855247836511329485231636953419475937938818054104892030229975722184366705368906612641908364125250050459416452720134039558800812690269642049022435719141853470533590475871434438483568824290638866877898700629885546686808815151377503674595827022538077001890360572346944115803336818292025075949138153814818149513327413987611259920248078957735048628794169398852012794847282956344818557593722294376135759392060520540745673929231078770494288921898517233733164627514713806356218985346358639595649335063536397681400301818946295061237558507880318055139166163025617407278707321724016790394275206244055489005179016749479223105498569761126868712040129411556229793623886789775557297919420902080707662623665548039004977595358764750327505047567352618686405906466111979776974536665559048524717172196648482144657480113806647594181448709614577447009837547315038995303514621182364188264849920470251619457729122430011327702725023842968888453835851428540860224051024820506187955786695759966834936105829063082429018728872680011046688229645083631649113074351061213551449587103736359225324898889504446048163972801976364695541833002751819112781889165599609114925758748029258535337956866411776734705988900532571479132674701996192137239801657687940184496782236895366366863585045805584183754549768474679967018444190510299347351984333535528821495348670679289172932552626561663528322204409426519819825616259209035425006401844019563534841244167827131671108035581534427305354530809434601158325991031846096954078814287330509065780857833231383761042012982945446252604125739127651949799065542107981997240906432276817979927223493291300213582134747434308360448604658233367478662424938780227590542385189526978321929731593499228693100172722717529784677875321064885284522600334228596208927654090825796204479371483113390223743477181661193485284048311442674812766520493325056091675778815772489690484197564502327122425138645679854926281597320952773113577413218774917219047684890684486180144522045922144450186160124162402070352099391315265630592725236068485705000579569721442468439596311277373053473972940208040670264001200584833908891133270989169940994539022741633397496099370981152284823458778855786301201400523872514496747542217955111331846863732597274143513921221844631692631726622182551062500216963641382667182002772073491764529280347314717164664500243005946060587814493707524205832438672683599674789953401597060122929943124562536564976383454605277953518882696364565086430868628941453577268267771949549164167926107199985826609524163720234898319455955750857791796996002463098058847504811727916638909983032429992872201125410282453925732034810099914648115873736463691432340681567794099817418183178054656776255308087812139168715776868560511404375289294981759064732445775076115967849285264766664060955605741783399843863702730427663636844452569442430719222665281682201733990939635777758291311418232679271090529922267665524936061911538737854178763983980658036238853508181425007003779403343576454646310206549419519900031475201834567486696064565561347372213961936602572287654976986178753091400360761354075241547116916354510462863722690759778823334306851942129998556595367491988182016621788832117558599265871368991636854261838746497857876367931890114580839565434500281927498977685482774160613484110852327288655117591889424156142209969204101061159815567840992139383220444692091231791553365448210785869919164297903592288544231825956606181579489831762374579609878037073618343364588280732898421206479636652656219507158871432455458608640954184972330390548041288349795663537824196769370282805393630840468727910016446626311918801129874885283237388324395581882244475654941593670974267213057437696567633925482895443209054279208159469751101775458097005386882601363361586378456836615264500557456480327058309534026196719214121938575838062422602957805402185540874362760759026039575364312062084360557787122132871531542534362190374124779191597689446238361125501433084509886388596599813628412690977550823542852064281413994578402978946400375390816048706273996503209757671775681181490635813495114248986148782291441993781938228417893590752365183448271058182937556325292823315331025489545480382116564782902005857408308555946215826668719384811686020748909844974856512684389584157265620758995626783811462765179889070835343409447602164897364559856314103972193641027321035846968512646759889368583718806274135816783840420378945401964115995890926566570644670395050493698353645708069113114315614652882260176709764929932622429221888336189393751919436772456222548099582188712340440771411323712211922882386176313434675926917402291165094780255616329983791306698040528092059991299171342210222087118460702247362705760336342894197301421889230333121370246472702050436422464590032794799963077278923276379056035956460378255220552497571214742250054385005397562722024112102458006958900785700494821957090776665281732567338628141400828256327797746061446503327283549369589292099343127654367070092727391570398107685997880722906016026056166813554190044432345137621705794631207473074225180853107724627680043241583606715733425791673587440006660127104783040514034155102343841776252274326222887345559364331094875852333285470311680099021830313239223191659956734558115585358988116946306228712599540778247514935459284410392508360022592364394320501848803419210194034935443665056313033232606552716261522562494325245869364548697567667437927113070929041888525792874108381691903423989266377939548958739823137926235290547270760082669255878524546830608188998929655468763492852280065196902037161805895272747997285688377011171793182843752252997735902614737899878586654786010485205989927591237058380941098909820148915592925251226019408606760572725662215835060811658888395293983945523228439780712202153904116655703645525849087088985481202234551657107320481516842040195628545634648260210938826272848876693097824633603426924998084624035090659188102436757989713089595477626474961402715358586451485131283349343638608856686485600474468911091730474011940796603221772559001125820058822944096973413004954607147450256429742924797672544884098044885626653957216734147697245014140135301299962994282217322964269352085156618841381258562630284266610681275437519712608561480698887793884539195137087515238643015582055196771052028040790311206945499720166166791232277134966546203187554309899425769229455048204978797597682730536789419718216071744740875305428399496205763528545655393830709058237438727289002161111137361099073789823462276170942218825133757513503440760899449674677997696193891346618175664776987995511529272063795459021668643848104112030776154302426513129562948408556867656904559555444377152359897007123195729570274362186363127516041180504064459825381548143107606619224504163464188525663391455621193772485737823574188172522640603107308762335043814794846524654074038965853090458026727487850677614459563389041320796951681243464889780033577028893070563427736047963454578069106146261378254511599057119249158030101160838907166495195924607506059958857964878585225099068734955094378057663245900480620815246548344331145769895967091236876874758855290993643877243099321533074897941279946398800373121879025946227109310427664375817458066615709744991551104825496580093984597546193386950814998139046099387775678005055631573480094569238243676021940272908107483824547626320567263338493256460733458310567475285748376264105109066113149335178534740959919931823407629540810912306256634554471256786114038142750552424262245140209880329964197565078466953764816013950732313710037471944450002687750695074503668647221915720791514704057660406810233997060209434837884164691309958558851155494078571346544798496849927118115736547663808189120473088667196129176110068174105138870743330259643495446212359059356563997465121526575585673843208650860218311835010276327363141034501357045167146765574949875832019665822709939492940587478945661385368397250163716357287154934739631031095393485570793928147354891377025925860869708634089064367019459981371374666747467406996120705343239472250566189719965023352784403186273115728862841149718682491315737157654811679404875446931750068795661303730880997140758616868915735797527936768593458712049353000813907704854544326700803553166804118988294729766318094764885354162059882551285253545218936084586086101112758883233867632040373717265736613845970725300501648524820879209703471727253300334649146854961340827079924750169220881532582649336145380219945960940951842101969992786733636763288580963180550539986326267914144420571644697534473915034008743742624763631174697161659039659083500239742938188157698650450443798020130231360387447486330442406382984995379632901556490599691901251286735560468490340975546867635337995971989132242731169754930851070867749472371046223176451219942742932271040204750983624253901487287854061809741859974045816938831635936696232571947948771258100298516673666774688476633822516273160219801331400722018138547802483510219062188189855241592379315847871265070589470943035744838603238955739709074347812518877771745188102493974723422005165396139850347485082794322565028671032027480836090566023517587872421934042579924266143804599426339091850077193652043808861073720844220042323482938209778368289869332647902926077653642876106600429039884729107571806793144497732849510069610780481642043406534478423320943897871975569477521139651523829350039962867624083111283676684326197681202104294047196209517104323145310540621855088500841446441247162464636527291990008981627544840535424593612105866175439428032147830055582062098426737543353337990645345732480987117203822808469424629882557742237260075522227026227916772817139686034888269205300619350653068879332289963386864127369073079667200038956208579867477347881413328592896448211885887313787292693547266298054594224226169605230413789947791583439033066518392870671486686873118098406622292266865318133244376173387793584484735622912781600428931005810181430713745101694252950644005281471652484400068477249403843604084431280395400433096967061481597825816941571032246477179327743479175652933958357717940628963104954271671429061229013157394050949747333052814808374470060269951900394283852066214900628472473020859625054215271298988963873185348510448220681406501344585705654459954704627441311473848697820533973661475916056669641202515194143541932754461990574102973607601932944933372466536424557180199598119610525078015744366484292527918746374056451691372753064891673554417879177824792037013293900013780846377088568781068666167672084446257985887120720750471019914292388699524894762372858198861718301004733801418060869739333170223620445130346431664593765156564000625917132889128553137067036889325266120716124397988443707355635676902048335790662129206516444664648129603298605841639095608810594212181797496015348747546009328145906866228488701308218381809923790421079658330782089410599385879890805720112490081183004724106302080464845486493856658475942250627256841687587014349438224926582420234621731311944907086728662155326042239280579534909354033272989045552681694354237627189816261333631021846990543403796642505338218428923612240132478013968534100219007154890920128825523528314957558407443002271159541984463333509172404844784065525804692889480721318321007929942195726375133321408860748348539875877535760535109855800262088035103601498848269702601939900059645919386626084898973360673363226667892176974661981428230976788465150834113115335116358964669181499992058402334578275377347304518288098842841105246953271885015926044104932986075645498403919713603156217181790983889792140894429888225502033053188227220283666180900398936939395199497030645960303085219366994655837821727656944561975021938117955669425919212663394152136275730752159600478700831100523552187223108965618088383543686670436110146033089713573180824360827857115342130742768103855850979051439622388546184611416034045413911882190058818550783296850439999306674145537107404304730960455810624218473699307428346068583311676618979663664607970451030883024587549983217028987203505812139315304382167769127486236517066166822708850262279007869628748895275146070231860527280637360792277381828833452523716748588347875965408890736817453774529100692216826611598705461941626967850956183404283804268414531479489076646854419952058381485463084645443162423358688859352012282876927071574922605674646719863673616834498049723634837436213974666867804942876368072429824401627352118744346437141708582047050762761907072446954531172625727142772458266791230972447034612462453536403518655338461256165232780411789493805504333170253391700809378968126775681010544953082641095562968288787968657258683762188394545773700238589061429529313796925077246624733834137483042085408089403670651585457866356812093941702990830067888381394678086497213411919546757309408427557280496969109025252408424358155694316315769021569869621983919920941584419935832108709953519617286021231982548793976319664912526652800510172268835987095146239115330263763965709212852806883296459425603818583194510537112683494318773827438207188406897457585537555093822024640109506946600580271536454294726531495957541211420326993206276844237248398554242815702561781014610622463864072249887005471388750877147466812290568314821117784366635577561238950352106015590696299664397995242312923062597240815472906673773857552132874568023702780566160682913304319995659407903495051428709121164030964403227691595339586658673268356051097470583822642541240511460181964462951834190854337983975301959903596058605055801194970456194927169666070085453531957353148115958809124552472963894132873410435600584700614668701652825794985794855716256743222802555896668086247377343541341083214821596990126419534327964448659205364306596928540380625305842734744039748807271679348101742649846145193800703616524024021528411313352582897374062693312399988306012577872334714776705225751646389787666145974581055298664659233651010458471925959226224255070232754634378793612650442619873436231033567698595820713970422107221643050362508099413801201986986113889135143077873694946447199044422797918178458371249439661082235336374480473171974551133319986749465630986394330353642959455426076921283176773082420120773350587191004121980037549526764918600372976263818358783628221327343757811351729243279781337742102464483573398890700568328535233440927783494308335793780806858556101237153556079861135604049703512518556161635990230863868091917602568257231469945886461437291308635938550947330494028663178653869345908281639122883927852775626027880796246505222130140281768369233056645904217157505640731555095557537511313552295100084670035182169729944283552678964559063540519322179505556068019689894370815664430069819391701106505454654186143953328050480671859839906505456486235210060629387978820358112619285199286459926848430068643889761624306967229423304015820100106475449427060685608588514584959303679622893538069945811274342297678949783384028757638728748006398646109758080625719990345910793587130995544864911714082749208523684317450075047722526436455650915797391103415642773724143063409275428727795174810598692262027935087957766345637052523076787636128123352195621462112418050752898422730277500675667440990980842986438518469677141802161963463592000521287771698219819490041392660385331702179795061257757365128655143701762674370184400990850717059969064793989599417786097473378166316141234907818629457168068624257861772692498368146241076415799703032632583096359932397073224172680948359078910004354678759943944909480357847307899291019640940312889103541022446325716631375224568817595501577047103768445852436912058849391319168495062691959870353463439673561098919729223399444202045898457961690854566605988831788642473646166237658229043162348374061702691182818018465675747689493323168268787305203594581853232245315465825484661534810840726467076128405808114076322291812823031971256783788600726479060725767911643346385258194115987540186113527659199840631135252270485630311372136313338102544483300197176738955014528014141541136965736604006151980627341102671447703278706236169481159945104517470619563855093171533172406377678549766229374235754351415937161466645510392795607308644637071203366418893328783119198973869562974440874776588212931903391912943530824344489819458172891213773183416680874915480973955587999748599971265563007433438011416285221876440412652565792213292763014156553753626361127872154723646214426152099506455535359151032030156312906640186128334023865818004482211005663213161642474943333685143231706027186671480803605397002468924657530529286139491064815778068881447448649916856613024284328537756837632071551362063198229492313890982940969861525141289816558333570882353307076185994024949830534049764464575147581649743525761593119085633630395905018204964394347233687625299431185003477814109490823298024745483283790430436431025655119190235144746769864776109678761809487199793654962723116653474438725042666068674401751700391560342813579554743032538279379148844323037054367046881798984884721363493155329400412583738483883454682325703031579579029749721135968278049893677597920626939427024419195738304133497283385209204177766034522421522115430940706036914083677545273232435337406182389349521341016642469988308966173222319250975753411434704700391613729784245531199625598974535939978425846106894934653459425124177207973045785575039272750717117542064569284220497041519167668048619552625678499691984600137927097856564206801745379214387130243749174921576783359913664102672860182128929790134540755474402821489208572722744864256532806455127446070483527970704666327419970779120537614119529534198371823140869415398335222473148903909244591650526903271735701212395876965985791500195076184505154787202272507947475434377375219940911313710422140316637139360339448705503076047368873711573184638459346725999347959616881717776183974251661705081120035557500564670233613303239731158180957172942168929970415693732229976515668056463939303071780128625877803170828790970430468968849263945609352502023208810876070631963816322058740911670536041959946083874539668783884034565233680337616095902761087793905417342696917869414190277210887026781580279562180974803337293789413956106670577784600750627612206489450683903473080998025384652451791607927933276483971461942620705781425689667405007061498076914154971342437025492540394697040745415037634272295883716233694866004710320778501975753050363011038148331275503346994467087991018872802638587432502435692447282691731056067994408823870308769264365292160802963368938334652505629895632183677141345581143633517177741717765595130761969899831304572977391687954328452775223889926432047056908911589044763519728524206786385434195746210776667716872527995432908485748377865834005637908636751017480221067275675905000297182433955510235734770160366768189830754986603809018958669795918366611928971335354979312558375742603262345508282742628632959717145515388862735010358993584540071329009406347912976343741718546865917073636620889953089472978563984897640177891183947983886432773074380056157063633435742258785501911019274198441982552609280270314974167549558155531894400767012969922487301915722350497560638889061574594390897507687938710920727249502868608620648270257223539245121967511378682875662416169587399939977653105508127016539029716220891094964353620395675671049775954265282658253439361759301001275181358183216814633552494983494805479049134895501138233021840981286171096928690409692679704346242635853631452352126943103018191375767237276423067962270022484402818722083178631947328715456317852419354807571677020207214190879219837242292910661719574893263370251728453336418807520382865070344023325397654049047376521273401846069621297277862372429685454293034117218751095136209454009137513269286374283742772574683796000962149262966346579153813851030921934856543942739983513454756148966558841886463582780417453576773973509050873213397471752505320604557354892189025485864777031230666441994614976553615660364727209604741862952562322260270046288984672755661532200432079851520013422266213527789085404728324793792388617263603353592381252083629930230881481320625530467067793185494787364275173314990824872704975388725599885627682224734913113533796497926099625762270645765684019353490028355084884204963794536525751156929478004991720643416564623542380268501806319450851452560930275061083552242287358431194469320833364148872407765502542462196411007281403740811861807682844560977735764934292146652337853644942884968589877368493008728085853743688743222148898366068936363459867329425359934139958673921636431974858254940446464186576939827515123663546852418003915316276545185359565053343014079815367224061984832416847736692073080218860827361893241314959966604195364476605820378424908866385393202614654967172862702713791410921471939685851733347781132279395860403318326958262423233256396851491843977735996192034851811473075782450415173551863729735712452177796737929897078375398147084805903933354369802774338073672064997734901016404684204950810239721062316504248743128092580081300449426936249451440877104164684409095651781696535303335543894150709805640539317984973812425687481869849408103950964117010195298909579958860328661782637140213704739118300206498718268415615979361362040604375364715074651392469687385553802474777222996200317026598190208567321955619911096884979205021328573671153857165279580965503598618855302059782074899503164999692078025595886360233344922906540437998316280611968207525593850877329154239724291763915798253611901117831352544517112632281541443765361725198266523760188872149086847024084497272018382573356518549543562151171688233661632861414520571782519649017116327437526541413317361666907243656826575436658916482223791877995550709523736919360240210647081771501555524287393970577166542068135648500453504489544678256728747183537872278330893587712686936396501551299648179525153095180992150000906820950141496143680642664475092255903698712766598043953795748557133074289959129725549215536459903962153390733646766300012536434296778527421193741256725328416552703784722020765919802748292416894504131963918962613687384487443429672378507744271118842074508594701278076968150045313757152135715179437866999277103963044651320236807836691630723522300335362429297142552763597474513433917312418668745527752062582276378995948892286123253363855265386728248814078279075622192274774166466727407520834248455008565905194163646160822475029801141318647150989770434084706866649797514091904376345640725586271397528201270750544781783787167616848531311965495325431346825983245472252446688093489613954557003455406860210247101362913527766948483387632052703579369415160640565377007240849143045976460208256110625925213097566488638642490781314718555557791044067510951330205471406514475956731435823873742104738183231674780596349116827600741070619353259289544965196327971107769504206476958921432284198512745866670263596648481438846655692387193268524681605376527128617791497197227852165300791856571958964758088689392415503360932970820725254659259491242746048291211168134344271159136783830635436103935042621721854911448577171326703900136085138499260195987970704330434085549170838749384445676802820595501583748122101877655762714861181586757661397572079327288379276018323243613712034701170544274398757088831915489531623932390930479928925450503285005149541400735314719492773112065013459254171438726848706964288383772912249237959279261909052600504450003738490455482994883309965169718017278061437906116494898883050418272151416084695280361189183584977083829934998018622238383247580558135349033860862765381123187047512995031486217492948923842697246294919177988946108538670180769132785022534209996020001964087082673732443473717569864381414175869260161971275891253000649180935604483597132792337826113590724053898377813560631057824399943324939380173979042407638805757381762172910343530724426633088395683386717449254552886914884503398086052218657715742163550342762431909493489750152588620637274566912093149996669156550691901679392879568839973644174678675849743004491840884980972523088170603613248116762947346665091407534246923520573329034283589152863575303010992182277839231905660416147529241501691737519773480852807275247802553410715338203306624337862979098214069603425813003551816752705995819818010944324531236067135228054786567905815380238011393879544691323536282306977265144417421862028212015885314994318889896268162232008545322610461077650601851319682745954556444578013931298179773254180474168750441555535998292313208048635196760172415396589117316535129472176351296950594972979715539436792329539621154100732145696704021428652077640549830584154457956785081253636363083303634950610365532743571394816547782594850584262701216675736635395895404279559225823080092324848273184289350605958549470551614917521432712063489494980124589652210118130201986894902761656769416524868757615888525676670724802024565837256520366683292260548993452157056000263137137729413143278492614792718590529475661904475558432170752375972923901668105433975739643342106459183433843228927489213214865054408236326917336770464555462759835463274708918515802786176428590156632861174584740408392145930319656828325913596855415676532686234529646439552560882971814881646495109945734092843136686824264394598253792186096896009446867116904124708687235564673215567277275061830989232181758317659167795836092370656154398919299060616644378918901989043826734947158752708183724551350217003025560004953779443934721561534085678337228209884263466191121588457214210558676144414657810685422095083987811821181669954369929108890535863128902942351407747805836025659030536014710203512960043856193494195746752238407602641809946301712884109481236032731170290875546468969596740239244929830308978694001646790051224903843149825799280320870190986927861274894902528414798802859312198107645398770823083312502072428675623711127431445483346264247495339699370569960001506901771173910816595310223316766432869775505989919078038725360889601138654924585806851651894338803278543118032773712652553776508800353930524786757767305727685005175066636936376575471027392725818716419032908370289354574699050438794966054679175501579039854081266989247526415504695233132068665545287703459695641417384050575114732226349079687636526331995362878055955723060271420298526493538150749653979890069810123840236719175555433833683894599059710459208794313625745748801962316179029304318132664262498317366933690751628703520110950196248820714363456332143536306697282854850990154506374891467066276525083623266533039335542369067209715544008887140021628384412628649031851392257933890656399573442521517927249325270147407836458401849818676682170629312446368097846896663717802195616833931762228348366800292283822735336080979297383972219872842921726832351468984374797781956622723852604052798181562107579049782064004723255663919181997664618722709445178939969931407638699794616625167385636254558528376577680653352413929453342715020739392236390670823911041877120692868591840468932814247041959962086281305987537902772358138848794367707587565337527250934446937877970669631554254098543786699236080207215298675600864710956422810121057258982467891570760711136250827546703536769092293456494788734669953515003482311156765429724167428044561325764661310602538465564731875933007093413248092743756567018843952261144461332606108988035723638575176068202207485180699750450106271707314855709749233104675783041478498046661542173483266181334606274081769134247273747226496610942749319289164042388012825523195803531328462101846010563095568262611973573739810861491761826986434853935612535019761960849866241391754463417375610833666466326278139384789881464907539922550943737628512229641304560802757154006756957929772189282651393369429374155948161370866361219753288297681577349852485568364108889327991635602683404990311702702799387195945515490484430876366459410189838163904911422136718101982009552623003978687848402393690693931586708331983989573939413967184026929904346772173825415958759789969272101150608435573607938752677459250841027244221418695292718848063700724139453624204140060998295285186493281935983224335194235671644966873476985742819496393933011728781629025291677507439887098692545809465187158386071531945192551736029233956170976080139026378915475015433657029426611830834217165870602716220333639191007761363815792393872105779426799710579184316152028760992003068687741802956468898485086909034661737168856691426459345771996471456064035268794191796805933639509205792423684021947920155505067037355705496896615441619460828289909618829701321366344976579797037698287990071586668472401725674744949262361812390786643769764227381803252592745470323274557863443104381473285249390983816768031482502064810655460125291915368282597411764154656309044098818218039557299649372249277956373303030884122800291485730237040890644736940632815819805213136821129617114953690765482783089860042533042249703777047453981771298014959263434580779559549796044788592399617423783404884572410827439503863498573382047819085781564934640568137603248010532970903992096543713411532589853380081521372070943649003412941960218017614096143150788132880411259235031725063789701707098788465356224705933323992613911117884832485670377693442007248159627605607256899077112655532024112167659204029229242962182377822020271238664665157779031381344377056253523477714833676737762665638767171334402821212843208985845947270260890044922501608212171141094728942716342377671239745375701597880535930526007719132635497476687534649148159873355707916153766749351525213143899522094366916777278484949147542342527427530686368764092469648418943428772592990026381495543371883744965299215185255346497479702723705847287385746673239973219982192937587725644738146654730920565162743652094973566426827801835456277940590192232541447689204408230753150036954216863955743400287400055990266754145395169203820825662411984123634651520968673329324674414769813150381583461455222993286444647396217796655099936329515935987841171864823322720910699359481100039866842133719179494328489856214177754623364831794264284309404779457667635786646086881036891354064617229697492772501670285431063346619632635038412013433327311093516157250580018996805637047848658496336599224487727052962665446744176827558408630568320009531681096654436926460188867916193470302189348670930241033068912136038662591798973785439063092846349648011849678634754837537568596422192836605717975587689280085771256584364090179266291649012727104640909664692344729289399418298612150810630175540692698236637232576251687003752480088484412707421516734315646361541654700590294021149319575676925384174522333803045150371517999182524375767243731734557842032189172357643924582488472548009979619285236565579757083226272726649621349374243236549576660043316846385890486320583420944986760353128242725986199426884425767465924960270986279811432026280756910194883338039927572878028870365968243341287213434911103929800859803326422750122941806431159596671748569525355681061994302712596334682653764854522833060032510207049529437893928606714550288372372107652035657130978346535991095893929645105403995627007564216340505292948779889389242791594502948909782395108037711462202591349799221841409232410915233274389576255830590097057223354123442212852807459130022079750257018844292008791812248196354106356540885555644650794077728977835909916849134954945935915354041479732384463234007541716612554707736815509386512034397683965804177722446839586455011787361998065837288948082000602913237889878718331473819632454865935778860215332982835683389869318519937825518184339225539233600424984326165401956870319978583754352736991591834529757197170773029521959927965219274824332382902759569068036532737739088306631491186910871152756959921523810170471396933245774959462826060575504670800001025833010745349359771125535101315992494860280146045229747058012936982644238410415536083312749267448789118932883172886094232333230658668286956344761140148992352072366350941533018935994815683351891406379782648602224224216997003846988737325788893758765731180327666637545302143830039257229975417411255651429225609968617020615091960163099424361651851623405936063778458367012952750572377967187078503500606243471462539503759471068397849962396560748436849752751103076794723734528578757625878684416811641540206727743643088809525319476673416918138656040662557724574976232392985051719126147857621417397138042475100360379169225755586173398453771147400569905376141366902050850227692172839060647301212810435128910722375402123604228928525919618171604511079662146018755578856482991619938475351557764666226433731316587044408838492240655026638151517339091487606199171055488881270943233916058122284982947380286808072071503385299793891887498041766585537290883200981435998886759972285273217292217371051715273611537857778091082924177411306974407433594098613924416974834915644277065488187378754916220758004046008923970726304160615172030721250969678292888645127410374926867575903079538409331731752457523857171894464273590546153069621032501917848726555467555482721659259013706595933850690734690693130525629590196701451784144763519231981800074372028391108012355078672898638818590340798299565185311813186913526257622816157514160274922404599692041276182180659220283835182877136801566548003290621067140835472954639501886490609034911348979319637810711810222476463186587634898430348280568844579955460215985075763985780517131108091288607497709047703632201056506495847227062127922386062178741304809888779925796133293564844468842156781333279734874685116662258910608082913928366578097773388675889923821325200889195593461021253849715077586551258288190774241090043909809660302549818225434506767529465200570933704011009853671908835176825777184570247463654668164728907676131027583760858416675539057265026275227161358108083045596508785228144737183172124702412985954843562028959848791380173378532590866925153865063994221028391981310652771548524240931311966039664865389821324057947199575223673478215236539560930801841220104961849790162972182854025238109368622918795985988317690543257255249996607272006255071841136950685886531951022162736459007870300564620296827356760827410627968023570753068289546973450169515519507783891180655320102105482006866485172259723323763368636117628396307893463584064268897439237428328607492021751504545895306814846413722559230695248304500286534586236873016290295924859442449968145831391793351655688410639254874272183975896263487360924120244723822742296448421325330735388992418775548247014207231761967400072727679681423060323845732156007094574142989771779786236173442033509572973963625174122067240702925689133360060446336649747920956848226960523555012316618817541549049529566583258893225195813104392880714202804181746200489421518557348845084600111117316366563508973606566995234093539525199909274440606832197750791127412105551648508763149187551483721034117550122924211208274304551363166419465919721133287519159961992532979259285539108639914126875908549828782538856953041968596153697713144739327210235390048308418594692685961321714829344710315870256788742330883276949163935980270867850762233761486777748258132216039916346678176896299967732117217573338326287950844905872085188513487210877376277270732789784339945097419935340145991532316080928070454554397440976936421517023076988875007739254554095247908183084377028499104176174061476786431798214732806793500481308310847587642843877565102935459185877415426342084074905398903960575309862467122618005347666607467576246366713105174021503142727971411798457250513589400247668177491167126943550595723938135391968236979581764248326959573697077236622445227823746464827419683079569673015542179810089569112671155564664467129754190823730234965703098789954690261893052790789834688001630319120164310842260792250575063998092684195218755488722009037773581787677910606793616605331032156267900410536555617522392014817280752248243239300395422381109010024602135126092800848615500787729043567471950148084062598932364964426603106712556687830113933587228329559841381158590354529149227381331095848846000350923538310033039907819852148994940312848878959993977097411453533669385534152074002677280745726576985219143643349183334945613683586288726220292373339329255962762823325687128965693584968935819172318343842427247845874747197084415747343094065145760390040828745774655315606700318190241368651648597373189133431900291342383327817527442741770103704610181848533772973605335435057688086311108569337574919567917067582208218433585936046457105343743479080776550325631729793197592908340079138504761374805891785230860821605366226955656458644732704425125201762192444926588448174931009410212539350343366913902040999621815788616745710874850474432803733185043548840169593777037785613137809130598840537290696922097624713572221751407172923726890383547862115643876540816944026725163699842170783168676283288069046507414544760310908026508807749671442210475514300108628399168494985890827942172024635686274795222860440219780852095249786191874368581991768102666525108171447299946679658512874067358342852579282314808333737772869191840327638678550943560318116588797964069498060124158333342242659979147717195552691827859049289840045645690690369945343531802803504118939537865092387217269244894054598435057150932339065500679188841847829754451408894587521065232095150956274936346588341561663714532211769922828834879016408629923125154942526727481163080327561430212464058333752458091323180206892565550138697169437376851149510370573354258273102515126835755589897133022693264466027747972484241088156298952617735613435695425329093475977367712859027353702982691010188737580882838022321933414643298232158345125138287790062314926489002209983390484201823493534275421732010966574490360783245279800023066952676587097294662000790930251501038732963393949569663362670693165221053779840208647907493917878702020972158915785127346145980579468355350270408822441526402558387825558621422587570631659902400228995864724159026867626242077604889811963300128467030090242499820426207360337052947384185676374136239788500271831682473039929241903971495228599964449526094297918811619442129419753271279261057806234485253935967709930144260826878793280713224036455065986411002055320382657298300861283954737745669218627987226919079976443009377405408134575827816988055111436148064429698396334060284645990959542545886340180775143868424587973885373564652574050030604605178542999282712035810042730397508356119170717838739862065453756782737186804548716681243366189823187253024709562194739671020057862748338378135549692319635786194531670464485190370120580632576334034122430322082498068877155133708277677735609408432510258911562443806438520397690416845404460448351612590542408161566180812288385930106369135055909976100981487153057123743443774861606064706157447531383877474464755050472725546560609512820449309015646893860013710427390284919098151673490405198789620779674345968993373682479809649719815262138237388607841381422233473923154206328334869998680018369774741170372363524463599065105816728191770170265653828536779098286575836349777504158407445918430171950806167663488960503511922484029270964899377083912376471065160315502626294370390620328593520092342656534998686566777333118585722599275160625465537122098660284889158189504626206910450906935289224725515286055721827823076260715024656063749214886384370045851279979276455309483923978878118145394933052155040212771389795725829071273942497196542422652507939895835869686336601949898652474478101173655268316756947450105629075766816464073189757250917977610918871045713009376853742407612629118355610440010448485150890148869587266884194996834750591263461711006976133687831870755630306648120463404139402887628712420421969437748964185877128297469417656307812117501106757953622481229534648830433301844992729421340431756743914895876181282472953759790133162813513148205115504529905620859612540091980682853952397512750050869117072590782766799276672313454691244942015301678631751108398364840298934673654330757456354854329307419843077967699156553450837968373564840299033217009282998474326313192306945357787341556058649013708799128532503041323482195841817762928772707460557110587857444069423202170287639908812015307300122118637521981979575808295857908389636238147060240462560962649374314416229340929777463807583232662991280972128312500071796032611433128261438867861860917067472614969446451069676805884222471649656650329958221980568623890192585558360712126020667632313204531472106152279643554232658073181149245122820973996842339663320485462077086569676382677089626166825379276990020929822892665882997934713189516900710150278373284152669493890563905717465937156078496416327341576758241396187101747849172862306437252761673242973430570312698411504893348223049545307137984793258869310943836840917777930338586505527523386174819777704489061041511025629240967081554563151369762542756805733252147457539294100698995341064520248772168140768919015861464396928209795257173426567395970005331792611102454351664199686129815012966894223134116988886027209137132446025914367526601398685865699609313823796730174184106043019241000332653812713024419319899787307315012831855936593673320051756064781938409688800460708577664146751194750445528806812762521843446714332347247517797862849432331972360549072127864134562180843216831642421642403194504252335887917248019345755264071064627091992070695304889218941533910084762166586904975912884544713182400084222106371087265886914706247988276650881919272150948779108440239847678603059173988072780445285206057901881421492221343744175804673966156546191311493710429484600271918541381312017937288951010419121323397065592932304660150879569179181320401675411946412491639150411144019723724586271010324109777962904235999810605571491411715364796469475966694873754775989267587339971205772301167715933518415771096114649342161260299512588873487749723615170333186944299693448047541203660801964790244196920930034381226232867167244874994027896433350022766761187852882714100510971119868497289831943175487642748606439112409477764175375981947667132013058836247272650700727339851177792144098412621120715907576296440667483136369550413484702645938163919295061601222865847827259224772394457034277036566238895582161440962683956211143456874738859730786953715630835209111984493661188794570987885805804808146869961584584128102223112452971454035072822753986246923982089527029166462939336018182991018374168490419597383232998649619460446177576611170780673164696558890055908098059507524036481094833535750878609386068401393266839463139959448311902805702394540572785237998120967651211017619860911789576054221149663033241078095817965514511845573876294404657796549971209031164547022927203827494518016606713465180683075464030330109643119547503340083882666590932956124116913657851431499146726162479406515650656392312460613059355707273443025624395881879141739875036921702954647791281955262721461639616005428352410792688545340730206562728952128290406283462687202043559003599411848783206846004213237034446122520580191256167819033186256062477722712631749211413617741675481704331721582711897777620703980817826619100669200014762785581036699111183702924059775433935281291371276900972825622353129287767010284751250386069993259875176721432334269878099258229781086492460624261587553448712417962012569319433773099191049983001260689447774417484583910462690798110494792563632651790708351950073730574759857922206640475348608413322875043322691473527087442335241870620069001689695355965349717465698594206987174534682895649823016224460295822195708783222901449024800758753665572048974400121935710169434573195726267177163286420717546845909830058144448694746764116127879217422222355370080728100567386081691246453610424665142293953535756138870158932715038195539625295947380979003942686820924335341953822841036771066669760150305440295816648576263059167169317614838997159981003043316093565907766219133104989057853714338264117228809185237234719558014378091006771979025462579975147639113848231935666028223015996022203147228511128099360809671039167772895455081264268689909261468598763264610197201996753484624227411911126854732862314565309449944470874258933446413488808234679300450519095052621440129505767575519427887861308946860308279337428255651993489599359500586220460778635790578557135086332484642964591704694772330844117622816473551625911749347331279001138154580120916260471780813082574774729641126089918530451321594082908296243480628513296881924685966300805884616315954320103787825006978473345668615485212470208778892932554651884239792942313934901700887174621878945486845093134468389389473981871984616193316487396670880566809746640165356282405733331945081285919376222645414089241775560806322722270382420265948082321201527384906345280162793703632786072286478341788140690317871946860443402014898205711365293332032446748503800707559878090557543447412949708590863681609434745817815401706234380569054638418974387684450788196232793638656654922623419194638125700038274660359414378571939365650491093869079557134741073164517232027419729604681337767508410034437314686236150045479004350281500020600487370559428869499534418785677378207148859591504970736280848811660203940665839356926855732444554064066513451299295915414527146437482095097830951849460389010594847066129286126258590188942152601189013149763611373883673125933427664721176161607892076365317659548329388651724754752920652956610772729843115695883626075689529552000556549697845335748413258626091675054214755923760110165499711399300377877120516615586128550103030749737224860798177751468418178272516657882881341692583047081639214254820076257879511183917176286021016337688027821416631025399915816860185749916850040336077851037200079207246697377118977125009187462582303464050549634367566474889409296091660451580964752833239216181367504234296444611419328734024455253841397785381457260146902114008116261854569708686148957872333094201738258731939344479808169730720053625196667633960695657521054484244712657351071531393744728515630553257214306305598922147105442589217449626102193359169167697881714315446572086132804083337708846441404910913987255299105682770109184184964510838309870139703432254019461571839680222549101614281074932279588694676671456095938375135257354070941611448222115603191188804930876054891997347125967596110634196553100432287736768178118246640038724990735196286854931219102395672962494081548799769263703291917742158366642479782756403080953510691877925027562597243087069966792272884569069878005717300998926055612388698284855502000594439265158760325882960756923198812336516768564204605590565931142814276800393162458008585451226988979582246855511819616435846418585737717773629506508132452133302883709949619418480076475139117504114694828586697480438727746630790346820806039919991624576657921513656535166484295553391970797591663590176433367182292637060261048140696451349161203706200253306944451565093379115533418522187142156905825761172422886299278432595757604242200339963813304504384548516412646909760621024545385426638897093868180320121326661583333003686493619727651682341596274989667499916502466577109483228288100581969516143354138682152468681931807933229929505474807176951908801397582005719812221193888247678469159165956216722111566104129306205068561196298535372572648930398382174982562215713330716746217685754287621585830940441157889042896974262914518869904383248524457445818435709485311890249772245163639694901869275046996336652127692603109413831921882714028097756451311215482153036325822348620355785009250194439580717424411461041101107696029827514233751816315450730881535984583699584895385831874055144010715004235272668311562547599822395067310350504554772837574725894457342470649109685013123777009615258482662866549317159190819735850211724348593023227017366746807139800642983232985421416531894562637288800217327212965950434848993506605960226577179979898859028670581938911492244811364607852774799919435826581454462319290436401755628797225581884468621602285162403670485755533771267421255303234832655571769962000855328218342941032605545674258330210255767450949338363626294618601458891229942089949747301495602633866327105342168157883721297210882245063128989388108008908688897353076494518004593843049458184681502207096960512115506266879249960470913212214369291949800080018040696002723976016298681279783123217962549430427386707378250179673254986373887285905486746286093467909643067725141201970788133361134871180662753682332493180769154902470490472587194073302256787171289796972144947247089706133892634380497435163948321700858589103742481543235162924969595495066190762694898743505569153886824062313521555237590638957220399893521427036238765125270653605461551592359539110653499948689439864111354067625091271096184269021699970041141908618586362865539813235220214559571131152456213973012830083498271409840319241567871682770071811932559816286484575166515176814851170123031170096692188827978440865425155703900157843724667176193187903305792430120637186780919502441123972887277491466454452326745675321189175594869421851739354669750943082747720046030733202380323550583797638288300612071882646070097862698256585987913978392555756349060386566681667087595528177818565010603842625723424112569768117776955884434995098995911109018896730566090247109963017348322221388260694997367193263242393698729719178022130498065138405172396464928430379985593510236979482309577720272566541461990365989757936416205225602828696635807465422416353035080288772802177590830919954552525395773847616935210674615111619239416319265826388527568879532316877464150337315378497407090647123794152549519352218265209231709649877131571192807929035127644540803969912971837626425862294947156579391115331248233074885096415585106733797436794155676565969959766891557753388711611625283595476419176580387270321194841540652803887713876230648586370556432306383223524671776153695917273728095924553489847984514686881206657720630294845961351630403996706449719204712791372260665628472494481000026738428667394626742259887168246542612770657698970576755661739058229119659481589248452815744222605785263815645467059380560023784672154099248832816862262061803407894780004518536599427071622760003034055072152348317347425617227551684346326826589288012191704531980698673915230773050501276202310103538413484926009516125875214584433242454184109095617215891094769021087843253489134287840707975736044370900935934966883654800699256331891099698996226205300620114785681584302308874752691516043719866018536872326858600708017440755946572085006926408194802070113171655438879057871504668958939254234255891520590854447810667313630787849037491705455526290219473636605816137964909194309030818115335508038187805752554141682682620436499266217368102395592558119484434932162504043642496806794082395901399882264697573327002211555791417502278997593799591473183448811806290057912165198181155130860002957259114410299407358516081138394568815866662107552272285477208542490917836263645506763688950904526701063400397101585359002421051944587157500881164400709663940250139821662551201698055163270876427185134910411910147441329634454974903745884669329469144198335521069755253682581427394899249987951226692792248936263077219113270659151951472875930754517021646727604961086218045831357908926728794244767481984815050527739854614127272968530479498097736705831603629700147214849400767729205974565879762786408051272964417467581046192302858321053927768912782457233856476822240172963332970607514431161397970345965919670684396139198073551221686452399846408494898619519964675305700771083329633523183206879800041115257667773440466944292946503717758986156577965108492438497436077826381472490842982732296697232820319337864663661166506435861075230426162044616692785204945221816367938112364970328844640873857761677103811901779999690301876734899048334959369538726420460891872897428921106758701259386484344500393792390698179439648868669603611552653626828158617421956780734141349139538429237983163281982833501833649297972182582658269312544158679920277963254508784109993589738706747544003911757357340593367356511163363805327521962162926402538069898993483024923204181260175885583313070030505952735757293482290832295676853176316492406870300587249124748281360793048039967630770841847477496674346353992506794090960376323687018831689896946860325575750741619928939730542814666567322485019477596750451685879711864876742567640898487540152620375177040485888687312776638523465544234229552223082738158724210572855639341682814813695373423703142031105313535143336801122406200700324492154415165070582115052628030531625198510427812025431884052976752436975595285329750850575704538371556396338508767611144147990171696423697488358352173991071879123179333779287260518859516433735573391779219079246373267382217128841869239027316042989346225812259948223607243073414059249457163035715586896123755667399807351204743621750311922338103904248122119426467899362885344497353174021381459753336515648300168415960061890725471617872733922014678825628085868693838969151877261298174573982395668442944463978740773580779105137155035490358273663160434181785925728683743153123783128648965557295923267970958681816531643276528310411698803681526936010606532716627436557247098310999497651753694690153177646868643207484587574094800719299508598560045827778200769017333172064594952743045085315475848912765257879202150011235930512386689942135988941187754204668733980785260026461531446980169891244337510732600318097112074660771764536282395399726388208694729931165588367767411526518590236232632193763336665484979927753566265694156379047489921646528298988124087780840899549016115418760927505303590780849749741543469177386315730936310353203560549148787545890315940629291773298051877174534184516885602621226598334614072677191555880391907197341623881930631887420295423887728037489393794154886944723317104004628783307156360030238481196859179135020287472461629534017036477300143214981750324150441040843005170765346431799575010719656543477518429204960185245478719279292756310222732371223485338077329366344119653450131297850369064038231272665967660091645261511091501966888958259539463041546588339394074009673778285281006249174665816227770014747779023294004367298715633042374958420441891579508336351720575204040690421694311256797762683297188986880390421238524282399072590190335511126165452001475040494931935491251767628502251451958617084062449140313102337061021463091248929470151669700276081891954965202589604708259266425447738933629055479900814582683603653872657983416643365281136448682958353309593330136135744481779763166166139393063439135118052170394332209618849221042950086106807569864185719560174626737056794972403448403299440015531239177885006046843024239485853742777931801865943562606819492258051458909435814753700288621849273880446327396051351009186252924880322447488361273932140579613699740072463968451373718785267625973119175356160705621524889551863985687938199354634185652035618854548293502662526719859704479678653070250865387882039180935649611778489834146050522035093084637885717627095819250943433028956614765921791422290740416752053682697368904510842182246939416460395797444586106865566618601723925408711026609375959906712628316710559441606133350557133843096331316533417617277954613895939446224667969714442945744151582872833458723739734381752308728302262676831868755414380333432091141904254215816713728927632485209340656096022065030000541490158760786759579841509812880089167838420142908637881985242144006046529744378116523529395742795640730141361315671493335066069784679752293668886270878589176531542654664099343264116469438425827295148126404744000292476590442327064248618213548727556445571407977066525283827192793997867986433754595737104989138900263298047230119374887592579480958839805080628895086220728804420708940358363966658911359076444262443641228145380330748593002540282296067924628632844043325904843685936070260599403127946336636871424795417235077020120744691929890223378000328290663567663973005799706829398947843777255865014622732715388877552605600965732777435246452207746335578696998269020604646993059032930575684940880576175142353687204687734082809007735166930122054188672155113041241424265601861369713865592436173517254045593902846390401934298622883486289750171700185283652293101524303138914892491638204354367281740670684509650672860394247290206749668405160370480823601971585660494994842709586596268998616332637296902172201281022133902008820545473555567668013333657516388501621201708855428315515450621232515390110301358552295380687616132600090746888422090162064954430120511719813037156796227614741926564755802867545647188803799292128677755135304106459194397511569215399880648202017313723817715580054008458159265066030858067794032621994317466264822344700875525396319807696941120476183367968634810071243878402524598645190354422775701784526767586037283681234909650382354163638132162869632709869990088379445833901110075271402749102294078073589679521875308217420235791601763826933597319720591246220446983222593633168290175706275384446878737461982051936300064448895311215244033323115883147537962704428166070328726379090600344418031271853984394237643409799738109914163462497889621999693095370117548213757063507104997695615433935948033906292087038812129813016773122782374180134332711545342093025319955652768848232588886171086152399363927236791569150724811681803779868907108674928188252869615124316216538508001207431354347483915839868715345548839518908282256269490953887225974647742669485882885736150921653454680162805988890313471173713942747940509007247027703100662221397635069177326928532816360776306902663170721511498418989115367340656322901892093802366785903664303267740382431057724879674314000416752915638634089475862380519278044208904098543725688454261784875168586165240603673125737475309570235020970051251469406784346933279665703119656168185692947844630721996958592499261093861285473317205440969800158115812689028699323734290530090868798669302921668891444421723708248366610024712698875558474435895047822652940112468199031399369138998560785937635927310840363828585115072012275467697804449206936734615901734443381302991162051156032311739785728543521854269235811683063635904397569280864508404408071745193038400532266657195851625810392177619486270996664540950563841532080990385542591745913781078731156295004506172542500596258345544505568915540646399938853657720599126900185197430782422832729903589333681878985569012334155871516011592569006641119638555214022192551956891544331309736771863457825767042184852407490871589232507378350193346812428453731355532507812259513427036172891847891076766647004354449165758909639190869622366680623906441007770345724217083915322987598344235927843070968593937199266522786829844027856143399765954539064035947178648872636140547950978009132534222852703682000259930425315681422270852834411608175325270334111115892334395622172427021876184958505401475244195039697804396573249490775332846204365084718730475846481494854857989439722911208602113496545281207755694169869046178713977045597432460559875752138831804196868967376727886626982375299297159181001295460230440647829477976168418046686959564794708297211254918637837968865714363625155296775440523146467983071930525194218784955787042871723641099746160551362301037056381203645170931630072121286818767158845045058721551871647353219635574486215936346296083858369814056656005226801792062917154947521289292024062852318533371054393485877332810900608416609301841648556159486315424168216068747126650230676123353337567295993271889145191308311688306648293438390340711633011601971609159894972675599264811138443599530214822636980563570383576379830598396418123261521723510792213631967857130435513595266043450357923748492800157014212504474545623201554749783330534426751535976652362676649074294342307902584893798634495559092621503641270020321762866856723786808513290957394699714970900145505444479448858910242913491515128120709335154527605836683077883952691418022603382697471556853657128160337669549147727414771683511858245164827690718355634636928623614897018879479787985377791306497818101184960568868631777008975294358207654499988579195894949408573675656700424770232551248117861357817197488276920722922712593143292014121092668497279341901888572582852405408923790555602708679387368400383933799412766092711733754239551224825933039972908929955663208572192386110831049402559563824508886495125074361855845006766023699855887084253375964267373625654802068598088098447761835892075167591760659116068105171701724328569029491510606607491050462984152932878543926864713019075133773655969523631621865782773220295842953516845309593891904630654249024646641231294359390834859854834738388720875313467411391335655986897453907704579351146044436513625099138248250913538510975289372545877660305494073178186351825454229287421795056842495183056058786996880551238813530421353849311689147243679483276006917817021789309599621728212734762595384248890310486337176083025070587610590606369880228668562792480968041502186760625135634834723994605289010924712707316910890573960755113239975929478340698349130368621608372833486687679366016702428650273095660066371816009276602740145373863878346674233935361602307088334543582953956856902168222429217677023511008693778380255949335877092198842060106621821654406362479630976662705677032103407394201076206551724107659410289450449648684120626570531913148345454735092702756645389611751522309753033519584747360813083461672216323689377391244985226218253872916462031003429401591953906739277325442981096765557891323911343585779260409699754381934899267340318823744517278634448126380517361582260971559661145757199755730003449716198192206340651650865419061769543410541071969963282133517995299499361670509181493511887914394919409049545221553013348751437334578793143951449064607182198157434679372983021897706674062325362607164067043772373383842846607830956903640326378176731174397410821960341795763475702083966833896515633077655639359624686622074162720777616361443140807365763176689928430275882762381586422435988948903552337916943175569454399658375630773896384827709927849044560451578852851383016013483362943966969008025390963674717854022030946785204215211346756647441067231655857089630504144876821044200855791146089354173316641722194006651617515428636374558400539512727921517113955706514706068541682281906910278106302356397992061285201543957191815571068385232122746133540996573797503550334169608013802303334207953640767336835551244853126994436085240403883236353938063411214348103430052662668589313218564366407408225823974787577283932523893549397250954056596552980242894650867338021451749021060979268213167258354565134195789800502328786655364880656505027830716837345306751775859123443530595506699584526247908547033138955898968812810783802982992910104434474994408487920899942305201990001859129195116999282296271529176043880119105421638504878143210795179437916604428417999683669801535822948540029333987985264530049819773908793596643161349644013707174727910401612478020560004755775494635533840398756897124440401063752223624825729783854627633852815960691474923379331633228046901034951285834250529081121165025455829727000140175897167443288553976444889699833917974207429138779936862864672621844664427607619538447039568368359199850920848934441518624693100727031308099327390647091662805232629306416490032571821868116889656587378813041094394203581147371054588780114725146014399828871829691207693044147234090094005970299220798468014617674762361354623404989004325834002228850001085931843354265894241492565509340938105035958817827440544640720182684759955751283736785244585634964721018793668327377247551350538521736185910514250720954483477125192430308336741804348674341790016788981402156333115478257261679852963725637226701510696357799357934760286194850086902703998801848507557931816163497884553951604404039365234681400228772382826917249629884676174860363192932738316086248854650659585276763017189411152653828321230433578920436390784987468703877046282517665327753811847274091281203798678621473464417496803021478900693024877735204730547773931595260014573824959657740680316268099150059510797192550794287022408702328719569446804719936100589212930487379965036223252506203880819501591093127270737447385067997222052814165429107535674260346897471606633408733044120592924823456006138781776145835106146810153539827407485149233350760386261554636415017203716490772418733181771226494550409358643791806470459515701686532971655083573982309267175194975366387010241704367444647766871205534397356669658741376947613868404601770668365643110219362690786594543679115481091148632379909549685883914560036256199578818937332599535478414694427982763043341764530442485164507939241377217974638967380738531728496543311694565508732716445418249874678298198237443451817362274719245055744334438507974054311731846473701149075673905708264865357757884146683738927633095874673682108132589792405438508784854483457000805285014679660455678375615512246547619615899739505374389924817111512088574029755615646505784454981816290563119844679738566073764549585185402133501718431848674144868562852472370128968980542775647718094649836787209714846611375401432428126739470289760289080377288921182869254998098294671039804298553139733056535162591953985820652552516068437370456120955834089328258849857127404802013076457526262983622487632708721375715626762570227819131464720127392019598412022312285750921386614807665480383158365015951713581889109164397619611821020074356994224175268140306255712158426096458114700522077959820276220105460626944440219377240766888012693101975310517043593639166605373128132512622467178046495275407413214037942259122305555016131001805448560636267552048850642792066235159899105844894878622613088183014413537669838105846326551070507275698942599561180241326369073960774665427376531246360083840611087146863214808115730228919327917089313790642785633445766615886216192296033526898715631173253084720787292396977294065147257879429754093575480294508930333419755180600360667402017107912009859254217850593977210751800532997376248972456288148559166910360084281790285808346069649059278180572287121560170095099323826549116406983829485369409047651159720112422088133557810546775506017564713721970642828884532454049688648998785297838842302552655755431511596721422695716518195226017404038198301733826113172083507569114955130790678064800107840074583296929161362478018519409619910443346583079720038487645854741550805237135881082483588785494973696442784866721720959156156824400026815710265461942327090091921081307869740638147291425540592097270658624664783158879504197160373492076403128229269386660075589846151841879390916175861504147352926943374326098293788835485448848883596091084571904132639365897717448771864569362292286525623403458760542576225336952189424208716894341733810293727088850577740112085729310895035701529522104455242350270678848307898777863110940900144043428946350250422369654820652271312999774116790661674618880485407177198443715039865101194356977658491745323441094340972320083164896859146566529247435374643856986162524440056192715144830331186295748164382056917570718366652216533531721178129073243552163658312170007703218568171765018327852149388567022756354340991494918244560343001203136884633896542671523444930811200987999687657196639315459397811341002393951179636642323365011583218531957416938820835269559508780629659032834560500128229541386448349172670956205320946920233372120975920004377671747966272037509484184585342367420234489448962098494424909034056372848054829501535638676172043373181130836102906971528689167737430400330057602690892786516789289919165083415967932316423497978084881763118908940810078206470530514956981848997187336900653210637791724266337608220958303750627952156317132527303331053319055283081046665162287349812547526014603310337159375777646242585227829444834581209723321828398202348431856946881650913818094474724289443832441142300860092027457013583198523694790311946063403155366419796722181673634921234038259233545194183530185683786362015340919463858441254811828549304775431237016577992276831794059387324649487020529670403206945214646541973282149746493749839247843003532822615132495473325050867929751724620159098033321724793772058564759570126769542318291396640391913612234563488929672920937688563303244837139184626837682371033936253102166962721705784464719893743990024263718470842976586969357886284102770066767437860581144731162204389231092211231672406056075567923067180456773430989563331073265805835548396757447117021711687325090619045904852443836115798490516485467505200389428869695019474436171833923436680405172783609231750391379777713467160908728295324640256200804520300750698084076593007001584529140993678450253025728130264074730263406116180643472925393917442912370005235637605245369886371553892367091949874815109176370940253046709683379385866322513077179363655583229983346598330774048151827093521296924855521266008063039702398170150591289041635187661523883606206455087752739852414982033737232544262307876674649724971136418236862622149669049090851814977972340510209407947940710567959792897739299259612234731094822871784270161559611961189101916678066550038186259491996573146370402815090317449040970510133854308857893062715863107964643987380675556788580656975835335025588441504613962085381522889243531407566548762922521965798054037559382045029862693099939940117232016052569117205809227460232051661516358397704898498818258926432164167599668681131423281107592760217731842086380996466551422897826905398164852659871509302538309279927236906761328759917211170909878241802395038914757671122529818935418235393037534295240353661071185311663102108072038218399919227947519941722197732912228450175669861791837401906586822942834679153059920421106795755604366422747399956482310548210462723793066291677502697342338268672680707811980791540693363037469475291166386278074209851495975593225255130810057142920256156116110759336794903815283482263618565162421954647703017101088840371832973861930249796262956161358842789464437503735315768157266013048327711446330697371472188037161040441830072913952506676226207779723321846500336812324093509915691108662640302023283284577028274906139880508503740768727088928958171391990230631283741916803554292932038866192588661125566941838671326284464361132096729746022157132895875587029663460226730615123682544322038205314220591521060394978627988185842552922916870148872611980129273931201122927976733161260196302405936076052251586535745802135515090289518780686589485756501974899758735327111077748833975158114161612279178425225029808649801218443248908858106527643900077828601606754193263624518398694146316339720240037495821025858350773074960292023780467825381164866629505407540224802763658077746797128471432358559457377035072215824683178614621816567119782730710875014839434017315396765400943760001657367302396349609951487961236714392092231153116942102938832166838537399579635614179376605046679161137872925778176686966584449996896102428810468941935281917428763500729938432849546217467992586664965922364668319710708369923127728165118403142025484568756337879645997724737502944772625597855471998161706418534355894339390286465616492583684801213441215766447784100857241230651536511834338239729153328215704759029344487378398749283466858657869210783520292268075532910330430295538096423653586710353881983215711035674921067255511225455675447104701356936176634241152551748277347011811840507880417539149543547724189602764135055959337806854166019434074044486059742048970705790743425116422640033815654657069885860804362326961907023273773414142433517038794072193953918117909529013387315312320486964741832713707107687574312763592692317013524901194466974162016098337550270416743498739793019753039200158196799872082051482062937918685345817140425687894040281680424532399448206296568529578426357874950003142224583935833556131452316264258880824459884447583406857919940217726056383537130633103743103671078526297590478573011463892874996700775388719364869441393114592136241402342142343502596290619711951464710241166853728782356420437459211016859877371983128058342633571782149194004244907599348563489062523625761399569207878474121543593972228973311378449946481008886783739184982005909440939069394877660184162526115668399309554559727587444731387828066544989764888492585571304322341539407102246373199884394276399969978652075283281939912778867406574562398695281558661895058242744853033578618658199762319415641106291984603789431748257992279075403297736573726042550857397012263666888893330816094921519192805191556333744969678679158764636735597424554675075885656431432578405227709912634490007503187508084110022464450446648891956212157967434157000072123602914356969382850814335671516387397959081439637562769572854591374401624361508897087534088025790112370712592166747382860653794159556830136747760701901630013969547278567070215040344612163015480904522703194177486219814566564034199457668248603367455636557651727315841803804962648247761284967640054426480727637928014358324291778280276043761367494780175928400361936651014513952173366563878910271114147507189210166286345283623493784933219812178895192978872794187971744405076008323821332462489624137965110237440538604119206123368771615353911274288310640652589506568310312433510104755365206538954347309538606974860612513154003202626330210944004186125070111147496696587048052305666926881169376769312011540888480175147785817431629695881392200416942233447930586004186584116669212465685538967415397760663558990919403078478989082915468006913605730680568020717415871989746171376365602408546700706129811928810527084868662861555869505226069339724465468259561043815637894175912907045286389964296210256285699152303952089477291381850217759450524786462136450009486547082980711113366489302712313462769006704295599441148804333725090283223049767200946200298161759445713870106161894762114547077384533259868690792397174946821882078895175798466799187296273729661578888911041528371621077059548513684993128291038473126419066283011482040693975274565345075657266061988033761418654220510896257434875767346214960210595286560998947236659728020539146761395269812706423333456259425345021582002741531253735538100628268759372966189785775671896373133738669948326569479631254998595148415142628863307424057868430433799606699622046809236142943133153126723295457750424188668997112838867181762952332918562455838288291268924187495708121201087242132037842140775376183157611090645918021705497907922498711234321146297008245418704624866678221045862880411054084568920212969752180352796144041034080068972269422697993591881423095015768588201610140008409416584279589841986607992102649475923646465940938379326910459136415931811332096362650435212823694999473923098679948618444324308018641797845209748332032471177091336134750086887797811631674569916341617696012216839622725985919707451477756080821018979658644187507031657916434506749308186395577825207296774176441240909678508206118068932985598278928563695661501901088875381692454425210855002721125858991734907433336814531640971299432618461580008628284131955786853254744100386051287876896144548740957093406868413469621022176144134103157889418366690817383401375472066931455228067840204753264441648211850949972243439958903490784068543414812748615909968668337825552434401772910365424646120746287669614444072404321168274682010006534863101225470916678212599768905800414646526995539423261699520140714303961713244754209293217981706596232887967309610628280014501172032403917990257618485221038212057126655612856357816547573486608770069066526179102273529307501090218862673208086318176111490635041798240900826740294291141493827831324886804634236087391183686769265094180629293042171387083365844416422287421943903013311085010345265286003501773444079415515192757502482696452611856403042364357392445986842555391845583983374527950860303730361963915860463145151988886603451802754076846944131302437201480614152210642950276945505989109949047937020762556186455603292065123357481009404514957152140903691884044946507032627095838729404671575889100385479167829887173594177653451599221046916879746414295848244431576105463182770668160664708628911912758788242639923519991797416077606612944854761564665204744696172585831127575092358927640802717233819900638651990446741492225528107137389396756417855066360828547117483120364922662286315864507132688765120012612245818645362744123542922766584289768636198178701851206414308031376382629280073458265562686407520509664609300726789818078456974758333568084762275897642255022251768431258877803112281488325074558384579522367198258650046594116810207315796824343512223215112033484850134595622993383455707077805347606841638370394597563421307223757094119022351000527992270565304236339900566165652486802687304200737575008772052832606563805339835608420294868526768444291688635225525550509546043309333659729119390657985055552423738436818461175957943388428256850397297532406951353446136171294727620808342209755721923069335908610023159143145968667524517396808056008250910252146534045620278907386541305655105477571002053422466559845927952413271331794538573955777609381631872626651052186536032537305079925652648505099472558459188708557452573672985735961762695853643838084551189837695337598836649972253504640765039587243987733089425001604646695171662842157662837582672650013635735881459989893878053607905091558650269389616516539420527557705679364513139680829037508550651078636748576230210414444484535784833423094299963515363934841031684253408060345192647365958240147894881438056242626594068477544798673265376731837359878386964614316728549251369979167379293297798821804825983491676083122761340527160242650026504712054162480552744472858217545951791578427502352075702455012072369228269153723341767513751485745843920830182529000512018554670263879426903505680806262639249614946906019335153234117253693992666127421953035788329060758173715711756143562053787057579935756398161665694380865363097975753496599629274362731639128074363060226128830301785388236675722510967044086111780173550176307827519603903702732676591217379515027591918404472112515616221315272917974203839606541346525481738714842523488433526692569173006845611699519770981707963583479103051706801299514935251444708897966139494823640390097733817016290578664568155340875893511634316972685192964757419042220057464380533440941678010027899605441337797643146304769785182242076470114086650371063704492415953131511988508844748330078809471718428235853317166306914328161106688825640224182387425296564923902154424221159369778127759882724261209694656968847645273823011294994888215886549952887982719021882339909963296769578881157425521101005326466613499816289920706021392761533508057061327515819820559646108460384083068534479226065160310206160202732655061138496026643798729736693306659835263867876269768319032983033617502209853503627399398513942178650432181519928483961182493182822549733850143586643082781938907446218109361560872046186530390467704549497521698837634644063369063546527669470275611203592882605163736645458256625736235101693225822358377923078865012591657523482676038791088409028752639470291746406181641039243100031284126400582242343561382451309107703366180297417412789882675877604454605912714599002814945340028326229320118810474288133113808206537621809908530902914175152680290071233507649631468278754649575233417252501645409541468363316597857841745198070182476427725517559926192821620488747551478567830015883863890791390970790176580775409305952090327865906639691584193406421250861333482119431888190078499969712801368570986795472540769674068124698043993417200011321323481379450846355624956051145806052011025468785743433178752979451861320120704728684587658517699837761530776587626951776337480462888509428985600112750124835155058184112456738494789091258027841035023429699077110150987560088702484970831932242854759125625432170979049945755840358277089706041989891748353328256063498759015479159859563353077373276530152919272538910071289827487148947257850596579642292379055779722064058125835101443772755491147541686790488203429041967998045561144253655598539588658553772149288620411945492005543514941683640364242906763700421340499030195494435823134151765025844256027561740258124110328967558555257620655811103645424746322924143302800336388267275801510190308058518654338096810698300573681826442841419347364731597263626086139619968667213179740897504393480779575862070607176150013667496311544381480728544246813439278345766889006145204033432413442494460029333631709549859453493149057866162051789138267856581012184009962362922974561549934991611246971634704031991030167668776908153095367348676245956436661124321510375547124073207139568500111401135411323665932828366700426720974892989821732802439093462510079286421744702497360009884149616194766552029191451385215879038909078454021077322108139211574411717795233407903060222481535130657804928299312184879816323265158179206672644328621388238280567607518099774864200570807952013549570803873543092012518469017528742688705782087311598804480134013507873497855798810778805190120035446719270227773461081174299629333944937487787310581460512141722167867073170222751087180757501610927184530044745242112035571829816797163450696724101384692065965573079330965342602108135407918369351786817280710111166815550590689279512686516462728478391416096446455242055135158337002297197848469641593794899992223081769591708577069024289734131521888530540231637694294925122032851202003838368422664538864783671258125027978430640512931178159827955916066737086532618373139239016607417121682053649001331544226029202937295335161519083811853901257454124461410955269857039437002880101513703967019279226233384281774343061672846781586383986324453438929819012583641647740837852854803940964053541075905236327843480556450590089287079526274280379785427048603811879964732736314373444037792406490065558238044764580816995323402157081261116279026409028976968751731251169910637555223260576748379149913610628506983238886730701264605207712239819268359970224066015298695976161173787805380899217539156481551630209260826255242076888195716252013027270418684706852191895782043622092917273068682343541607718332722101533911192965518743086529362065174382609940761417632884214386070310838917303170525196176020519518243826871490372329338840144473421852058638865333229938203933054858901948476320157209989280364925012084271378800214493021031002698171746374239104842955948018362739570424894395397194679375098733882424333994138469544977675028001004763719326013658604173198225608351696941128326555460815724163678667781541562233883724433484992613481733093799039535675079129151895359753851010601750218335582858169569354028489631529408274250981950610938228414453132098457635495085161723605361161081606104102385722430042155316298648539484364287219190761327791875211052398046606673715636895525166590201464833499014481389224052054033254128218138756307208278069879137982903571964320633072427562952350962843331793659873882622516847816856942420175986739332526120923210293303445561891561097096565381088200778184375806010760830174189113567090424247910789281603923226989167381386357509655225179282877731242527331138366151509586439534544613824376587883868892498938945070497050678799445522770398577464908472088525589049164555781698067746117769733554071513859954681050515257099403386846627670131831269014955296650900460448588165963214163839227852275946540010434967854397755672298926269152947300515998744940208379635737172375425167049739444279270922125035525162899121763179170973120393917389797309686823497584373714631588383140038750859501589015675666320362555423623118365201142746491791340654432700007292893718691831956330227385537398112530108266594478470986842153108128934569918806866835957738559302200355060676129380805576068605705869577944567989018686853855578077753616547799751315730201144906460044278674311605995775970060330670776179305788560786457773422554795776502642049523296381633834117521424105253140291562322102931763612214243753876060464401762445559359304660218680564246477920959505329107854698758325551436888725701865990818012368260567827239447301834061350380507738135616850824234826184033693773375075503585713760098362803484217274376294126564483873070779218267094931261170718847684332031137076592097701903655434710547188609826243208950948897107047782438496399956214946144061309736995798432672845362284010656112022694816351595079805295626734642763941786600591125468624377551460831671640621962433513070119241295415840061032821731176740345306000199097449514365721088877548274847794641756511528941617910760750952244823793096489438055317284975268997115156195547613707709528353423148681706532781992464542635558900347410240672133759024512282626170985924860108544376600091835949568222868953042961322416200399769039298897969891275417996992502031419758230351725119779447758914454532186652265950688047161272001757977633171749496911983662615806874711824004500953975619665512633781853779507555914683314506879774957700472446858346358321425937015137000289748963503524269621007646428756936643377867032524868535855154188628539120779075783014571949299089179599619293040223284623643510159968980296953048188881527088775021406081878580477621964302946280222021857559847370328964841544870091228738628789852305724098212778507315816374243393080615718968793482223536149638839568969178416608160590487110220047283521500640527355138038407170877856376576800806024571508899460983621694655439124106690099328501039030583475248403294596093493641360625025278116073585742380156276826586494002997407133210257757945596627958781806689985341012462939367428639136035053131636921764833737643888194045960607183474794337408351706014981497915294992519240894662447991362234899166391147957997727941219265866159321148400107524435725994061886497065805809391610151382531036221405235407978419784166863408088548449990281530899579649727919354602526976841090940454147058996203229148530760740203317014566269074324093608407680446636246178876915249729902887144789945491888079483238183092850489085743375043383844961166507761025798379186865784512128803624340717625434188950340260038952498216070073545788013600672729499365895407369153917785189016912268138547925061337279094517619082386144831401241696132549478415312764553071272434730788011924606114060130047026112894817311077758318226271110502917130413570364322729664275320722536898336939039359167143822407948121260298948646397084210703366654089498709351939127544735193394846848901419880900056803070882507912184382556070047389738638686929354829061731371054597006021012785882876650014143216139008856765215800110552699458081339593483817285060856314609864760877565223440086476356103402337541314291517515105810696255662819553761748208581910856515509236918498654275387202563226145891152500600308386351371799450657178346941857683998642345085469840200259071216210179800921165448012430041400603930471884084929233301051438023539203220091777763272983310448091961450941240938931266331170822036410261709829110467686281306469973108536564409900709976086799291452836298208740893080326622399033742238034994785459858176087765459234038631944528928650293827492560181255292368056943984616967456089226957415042293732890571290836189287280280174318064430114740319389052997416145302083830383439072259654464394506607195659213746718880185333184738574953097810654105650278707570520847483239214750720603112935602290571905214191234597039356097410521754803721323811943878952215150381937460058822034069408097190894006040483039253776270577668788814167446165543467099994788630731788058862941981290047607158848050817711385914745072461221795533581654053352642954605122491845607543537869398171148971998293059906741367774249016078220739590443661085464318524524647107010136806472663340282112712646319534555073807603104727081100220989870816576785603098332028427407015006231866930578126277332178095629200997751099801238899988698567794230843841711793823646451046123448160617987185670538730783035692821688456370261548362616048682224846378788490948734781662878200577099757568364808461953352295784506046321842626268153576036319401220971051679055583173147185761112351693264085280295685132560902583645320269422116736937871212226483513519684681620271419640570322053065461308426984775239056702340548621026519954755629947104245192181702716709257525487139642253801029155186736465753508383076121919657205943436098135754368428736709663551121014262016857734290921050335918558261824616900897373276891981659717106029567057752080290277746287617926055266338496519202320051237314453121189774591088444547487495895562576415647319834389034497365257200687592804766092203713096193163156303721020203160396785638178308086181721217807199106447121831768526458182292937725624494682032442144039302488007829546696056903432375630576423082820954673944194107192162416673102187530909089506917072279389942352093353297265542296947974081284129515191714220875576526999917522078819574896127303969939133853899020255939841214922924503450640888167189649210132967690983090126662442497392460968237590306185492659590119086592732564205687552173581034266149136309754167341668474179970090593638155421414356020009928057961576937346219988034605972587998697334213627238980902673985502496247553411993541172780548640920684875558379727832761792250850359173866512797671681277400077580640331344295348519541514235800420289438566930214601181448773664096374499874678070794018739466322216005335173656855911778994707088977977497324793934537687121610998753972230814491067991535013114553606659700893646514977967944399892461794584743747298825777589392477655159125601623341946241120152546963548476239463550711630096338784566428731026049137866228909971165784779342678567262919332554028882514560941339019477087805871136222723362973795609943636838594207317975617195156232720701511482652540213197134461660647293901564391235911175083007790460477634452790802347659754233431458847343938667698785856246709175219520669382121019094041307194835491670604501143388847607389285615186807572363356660884769576524775754610946581134848658614665614098559064170365510321678544401600966238552400035468481246304291271442559036139026806762251793279266532912093608869239067567148910646710885067345103297954124475169736607554965373150542790304085401889060183196633820687993209093128893396950854600892529569015632633479725425967947443590034189296220305622219997666638697118571713725513230686157903523628481247188912085450455074344035878578904782404980778124436712694444879774692055543012265904261411016517553091145613160921931663342860298455290055914664571625257602327329738145885051191443234157108931373568359361479236086137569134907365233316375754675217406830946912351949081243546274666790261667920455320789105568431180755130340754124821914741204078426490144284557201578765408818296134463949503472380463291247130967730763516858724693723102859957511511300475536801723541972443146581801197263227348778604894871106073334178818027460529854010403430323321175728943482281981460907076931634235360709129692514770356367286036399738313527540943488059906201929519665317824324976384944751443510289147404035229269794486313453019442108932559874026091450334426288824823530153885607930443296491134633158005523200988552541557772876441244637050281236724412925315051425969699544215853414379081425467300863393017005657315162924147274243526618251978887564364679238206344999805882754614259867042391118727453640119918518019094629366848807176061171055371228323439916973748611535277261327111775773445303584130565303983259157249111964416739854550134891162854537311158130268806271704704750943348398435534904904832651664208977417762740395259032636177669456946576737669760867048079348986346432269287989760046716145719926285372124738915096547924216629039548439852125295078823072288490262934768183396304373123460397623916822515949951994819940051937883165418415341092013698799518673481553237157733418511035605827789974360542453110261709545331274101253733276479547643386085201494694487516447514511117386480952791760017305990975221802002736259837064118423022509224950631995225153121414337526310910469858755159197495689493612853460613630909216924370010796321782096613663401281301074372827395840444359699459398551831714155896211367745550473044694869210504521100545835222948234317812357087261106495570799266957283109079266125074496527760012684955467754663464471478769009209057309530215739755059785262566460517023283067001961660725343549854967666579941035789587194225213896214141145038324422794352480208589906107543607726082792593540397910306857001936600882869150219579777133108797012157650984467426505909372764695915046147415888448177126477198857268040558658391907140881532552036391720497608362190252238451436108865048295519821125051235528076028068044022918302521242644714373827769804931553705809726155524306389517341656618754683986582909434066532885746897624555188555961979350112179879948583637880669590275815848651199705395711981324017030951482071316306056673957807376280653368885373677919331788532592565666440194678240419637535827659413855789245525386270210749059126277872634087067253858547354830014126882342155503782565543017727365745280334960278628291334755382028800564451258227969748909550132760051565566654846521693157689047607106189225995704157584914867332986214287784743010937875573039689545579189469343572599257913802069124553869547055625243822505673741535786569763687494870889032723955947688878819939683633139508581131783485049306184034261615185165046497890424125660994751212350029770498961182415957261796812131775978490660826876990759493940844315350209721505117780135175949597494531168295278806474634618946369047923434229330302568331832965234253443216174616127216111338995631329977906481541699233856620761493624495241196884240280310784816765652144771174890671459930977370665046884157202110236174880393884723396659796002493389675939450050464789786815742617025645467029379302449560563560312538594507115019324036858521287028606885582560937074679284700198744473294797619407822288461524326316534384108416587083074580096054002806578541455879223804941872732238176607000287049931102951343041494821021500913178774834607779199991064402497133717322686158891789068806379403625740435607144226567994009495440239835399126966418941769732735876957238528150242557070308801800438422097203711615925039639692038975257795648611478494815720499874984789438614180563603396200481045939841682773033064833275419367870752947920959339591173769337270981790760816241002528372060166559928763688779774041269526697000050493450257253779825034695704575545492001665188242271942110967759776016912831100705930673520024642095240750857039149037633443767170030637786510126902439615072535486977634330453953883042820725306867599169662222142432687183362386404803331352096873527409187510651674730797187521860250437144448919412969072556319485581163969803750501555409621646332165041138171985796501109324445360407846451298859457511545668207970126316599565666936031787463241565975137326965988286403858825246032752039304281518533512172481641121673060723245581188742325519946687514830481508921013985992553097836053613890512192451380009264107611178094242959136984485872897958876635603410609568995751099801388619959454107626205764810183088856177283816957375395285689707748250767421041039848564969017369941043342149606518470642795953339929735338731377860181292433218188074332906538794385134832064959879410794198006050015274091703720402295390720748517283326104693832762715061572317332949997912392857414230692133539083689843318625372395804438331294196497178606718505671206497683387875107527974183020273808718719592690903440640871046316914095354578446219936663455554686646682508190728732886006330988422563634502500977085994282521376665890708995888145488957042218274852994700787033060598105609554997722449911036822935114511212160290207517601459505250419959556534364229597316163822359734109689808445240258263289806385683620216050400890438019046539895580708068142778725494657747212436143895933928246963994434070020264307627303860421873738468867181524277915562011422775663499350706310479418487634031749548956571723828782912684530207199449043704263401088964561552398661830514667012535410800110187418903513353248419713875304735111377954434027116865157649291013949982980794595439294720100641146545589981546236001517438905256696937267987151572412065809670464276416397084430788591821871816742683218778879052316921099005271570187761799338673506827198724618593798653143415234132896183274116067478794316535106250733485974587975744301252020765425849507888467309626082409347601035050486250802022641457007978158648379064170304697710562667098097688292649345758884345931327772750800054664626751960784609201511567109448993773171418624421468654619181239232233220140921857757726405854625556622869570148478278968126101397426581936756951261779379935404575009088711329913448477708580682844104181500044703377777908567372586298368599301716408092054726639487698262492264124326329562953994579787630151824191945199598830581035115102836239973622639643869302924048073287936728473331001559345140270892961001946384118041566136244233953184990526792518320258930243519058115430105917821972827594112644234884619485598356550944652929862103924120507167586616197889110836478993988192016605692160845912286612856285759547290401751617977007421634753797520788228173057864270025489196423657937713477973437265158181368515702305934166532703643201014338761752694319636508501941278984795247953402294076953817242128980902537029225956726410775599047168056075669398489713220451546423556156035865995992730443896772599255387283065251892050830457346340602238550988440124572558274093339591791300690654112235736610412844070592104263574552805957536347752072797394193773927808516925464309024006036088723799651347928793051872504924244636270967464095058420625249424101581100543854718742630401421694416158750188056938920121419057950643322046511363521125416587047044190897423789286460461379250663555879131375679459292808200971160189511538615956769448620702755222743298411509253859443668788798875388537688561014559561447472763987921849086382593386929453210789226709652998528086843608690953400919600540659319129111794369286053411210338182571592337936855153994552635887584745565990780287758240085550127594526291918285801659327572599722704453368468183839687078392119091124645076853462201793754569699689705685528911392950616984961299746238178233149016766068041261975635282405112403489763934149203905136168217198001719441296382295774432615474941173834013092072641396447442799678619263732802050236983103013574390679384765908319764993609641770137023926928640460220864201985826082693144723764382003729282127970011614141186088226491660527238794224915504129261517050683680446372670165321960061948921524262664962805075200154303053352973038041160639028250638404976010421443162794710192820570275337710851123938165030998943075247032401555378336184362209303492598411664635703790320448865236577928431308943528464093481303172585916612745864199931099486705741522220866436133218734469055790334573478417446503393088200096484234558378554554141849106110296701251128510403238127755353532500725846760455068229772238583324867798121145133541893876235710158264572381156842577756658392688945138075081502452588950694493696959023564612463431571760006569530585794167304558897055617702262994315935269229940069284814865464153237552046309442813123039636404264295672996266123947603007060878335292948045076380740436120505882742129136960508879705524825731547847921116754992568387000362210419657667995432504577684385751273868220649054111946155379701877668538865201838190649478684955029338499711500534879245525188619655811820956563281641266774512638900763690761909638734727148511339842288352588976816165522361000440244939613788742856800175324684885112935735222457140675298795141092667856169454682373481532757563104469754797248659188684198133230595852666264166679518474473590690464559614687051132610463691446914361766556778566598522143701736129467971535449740032891263686001244586511257957764405866565150843260807305199832658683025637614968420193598238612640737652971239235611936502586593122772831026261205669444633648832813793542000217198907825481254123527566146501091349856965589300107581236529809439640675402030317393804952213621412324789192679659442341236944952296935268555994411045944493524790164183765427153012399215507070985709825105836260872153119753071046882439022071661630168386655516516320729493649293478579376154687566464852571760713968088536333284500197110785356590672761493294781201237874567535789131535177882161291934661358338451959176379136787942780124124207240581600147040186443270675993222390048530377685296831336887984231796727901156991675565981747026216213763658985041018116189228366258930147661569837645382983144741093313921250651057164806569032835849736573011285263736869882724593854798542776538689069254961030424439181206556755612740406962965772116785726799662655081464749631733210296212760831897713211681699789367738145635124384278484207458896608829381139039892818031661918171197391332423187673748164180676609814733259255311539225594446894894653174061707045353681155623272410847718725537336921947740051885995882974665945897135334299357624407224304590696753735509469889861515768772567247429470097726684677163273326496288631292453964226988644224016263821521683654089028882223374146685746927263352460257137978418866674617489522068219079833881507275554924459042690822318046822325095795724961102057750102227107376259562142648699457076796610449010691622061774657124039393183224573897600971178621714509431634232546594019344971802142682847820441659747632649740443352339517419624047445749093776873933440099021991363808187123285885303168993402059751897436741658845101915182118961151783787667177242618668264773964552476882395944476990572548858036101565049326350584190227905687907214852472280276797960318730829461103982712388990479569626707375932336571380035486579572458016931066879878143334837948523656536757939180069187628404518301657618975627828741662997639523331688401713111895394731231284643185961213684125467694346121150540754555563404187983888330096414465709289459139957360394623088292483821092592111386228584883945376621753955290857828014090758391584347799122199199063770346829940755649665215323568830916861275350913949085107468103968110933115886448635435214525172198309442864858288869760347456686031325048414004378214103365345262515944569120214481656851482803791809738442330548253500430459340503223526631789114226950357497032212967841900003545485555995575979796703254275226729928229195566352148259303643469819715160868196584403735166559792734072912259623915096583004871874656093626516295770532687971760315503398330544383750755485386024051131033890360686614666788469014317825371516926573477929459525763574523353866615941003056629081117936882331777838686268445366374621356071153856283919406686331677485690224076305521973557799066575436970100187046176029528622708919351613768461267647009757958814582836552542215111106620983158836827773300414545868818593505102993384630544690562809416417674701398940336764339349668354874982762375511880385270812815879438472813097734924366336271675879862881562382938735596136002520660356499969067940690081113972778858676703199142839789798718193068745917796676596296317162658657092815369118248149613662599712636487168098715516394083651123936852747846427332500607981509273347926055360017377783617013936967623025506436366918312586509239460982794221886228361779709021747228873056559727313976763260060203297488890662777807087207169354761126707546268837103526871427393030965771434675300295436086627526673346300263836699103806409842358017676635225504619695306236504134618825054980051191481225172426766332008123890835623858115247672551025588679431249004575189488625040297159820645319627665298105882669706559450154082899727170281813502577677158858757056629569460220143108375317165466581226009697898396922328031737162736803175802724618775657228999566351075830829829422007533091629196283311710476462357201469576944967304029848185380517494448492535021122051767589245467334435066830688154808201784799220210102085905153137453349996804065597432307463919984862674506593357264159361571726023202338659498628500258696396212583444935681182821521273883551496228954001249829177822141443139659907104482958238715223921846870864751906014949924728324467097866412243006641753742495027955744552536000967758182740945773887542747213008676458660460041611430867004379522183014729442955975128373677137502030052049443704354373672994714169178320806386945661375696988774576064282925385159377012278161874027104133919674048432167967515564676939926112703947475848066385961816767170781272250323476490228491539901274137239956474873703139292325956986427635122577017584845350992714805214257397403973075420934852810490014342217924228267084199623022398817159294211836107594143859329913388689790532176485341961846685270912380110059161340852387841949589740296352557476293057299883649926979251436758697654519242165492775679810109472046882193929444349008156729442669453245343485788337117523496566615140099985652749618626000528279003786662871157213860771368719692960536276130008704826618134458428271391290781701995251420234505094983307064987155292834535861969736969649828754651494562093212549346876193632662687501331908952267901083897896461772793690034480720172517225202558178898674213340775238237283678018800626964674180263467119787849768428203869492637990809439751398202348304181513392100991407058436904078473574006596209391172980121257203634246894841494725349014508843514526945996906621773497651255202446450256734596174933155745959254833484317503259082201926972418217256836119113685190328831068050552903710560297236440328197368978634494079558846698255398888962606025045031321484942760614625289637444469320889733062883882142650707409357297387146145640428170640730952628377437087474203940960370662518940518024760539564309390196632639907214058280126695217201086837262360102780112290406465831411434618792418011531041953585706924242851084137841643249720478776240530200138255383608849779905618251847443403567566955564797954582641559832164641579960037360524434761064481348806554713922882177272178691829218099571239696372409030841553048654329229456238892802174880896284556969924680093652406309437992357109005181604338809652190468319454344964118740772862395804408666798107083521247872908976807825397331414759455258023303324128392652798487368219860239197336389225789940268141516420839501906247542253406096550658507199808165501013383341971925703870462601254336875443978253980635411953226878570909874586569395676741305013963646868233199514837479031635028546668776938864664576363568156247357693409364530516377120365839043832570365295580049888603416889905326468787577125196835577062532021621782912876132004017205618817536123585810216028527585585648398829325316152263635562207463928045862885819979542101563984053805806215904583423404186734817237533726003989918355596435048788382839515459463396427527176594685591280128323236791985336286447665093071911381528584992130513959389912661998786106430314506022787617557782987942101474092359475654290343651996436405281629026317955262182557365054739574025510410767091573066839368755421462735695401936179538623147228646507558052057720908164748122943192864510857326837850220748452863878557550087471490917144899695427914615452289317566791457387084368693786327149069515173726702737293401469406390555297734512597974382835972321433883625345659532950476121058255397615469938276062639224572947819643861135999550552683018059210483886283223432642719760507039833940849730370397992149947318900688071458643452433069100029327330255022086307784419382688311523664062870116519261891011703850176400420010499803212795949743232751607055173064756037674766867445736151891264638238116152279219564211221162505494456970488487519643553195127003040793178041055525687996911616647617725615844927645448116597150788776158781375466731129274907493505663889621633623328969981931001640197478773613290017821116917734185270530436378349353819762397899748956845768480833038091468097266625865375560962707949416561245342894562079821854661792099405815985017705560354803457863639222004422751812806847126885459992964402380169468741190497491531723675067219584849133872044055065571064140423471302139414496660321626176328251652675270117655958288635316397359964118366769374438965809242985119547309892867666123109910582683924913725528561436737545603704088845465910258210657030414546733631578776652936044547786816255473668027530220952355174124014014922860223921195683055872863738334601281302552765076397597904122309831264324111621822397218140956733932856594782595383968097018503053685271453963760122694368037936278314289652918544074516005779106267791558147808564563642823535747809407124126833316058997131617260806948384919778886704011439380900906318401533014239852559712373546348120761976540779339709540258827152059055008558897921671434732723995282741177222751734148149402493820911055533530749458194804515604942751756564759836844171466507431478136073385954169870340252684250003287709216700723707530231830647125251585058189125425360014720922261923626967397622790816317959290609778083515979728441281880685508212027815802099637342551657399896227521186582692596458309816694360257308884846020009211814422709336013225409739517889730276599427899177108636354158669572151155470537123553144897182946869984881557347055406676410423287534018483416564577537599038335490578427793943846585961687174879188357942713786441813476026137761104827624115076540951465141170188727373669544234364611185741727575957251866946607799339412522495852313581513008031547289110320906391111596158464767948616027289886379392806902071632116502685235250029137522374111044782783241407753659789141412638291528046252776857817670633306084886973702806548370433863118849144387769891155463491475106227841315598208725807072000337683939053639637628444921224435240193324135169454994455090448151348058939260628708542957981111414317405705814831851438636094131375917112910896588910502576096351992618202780303249455233486117322684426498751217126264670776912724115375326063563899337096678625479944631884337468237200886643253929780339480015898820123267435608978730504431623516492001155025238152016655973318825907551647379442869810075758786901274394433438105366932591708058980026253888618967793001503376845522191986350357780031463682982981119689409323205667116121549090144384435844970579951743233516997420439800593613183957278063653621684500521966645077133104004403190377944525161947001932137078920103565345670253926200159759742150110320921894356521060447939817010225640225393117654087277725121814685072705482534948682072505369179139958495180459415415758758953416689313750798613140267309098036268315023617267550265797120475970851883631884791674619320964768062071653552449662868616153044677151171966850957759802260584453568305047336903581012395785656338479629234494366203527794764860301634377327355156611386923053029280746488768006681983379020073814473772585144463876479617231576373973991218185240543691389134894598740748873443672969773279386147408377497059933066371449201553024126453451372195954662796131199908309451050853048600947070777242288213152404607179656077574999591938389306924963441547178943730520646394501393346737242529059540915852848061390169252766272777578078467841302152780368679421665455147078866339197245958686565697635730873433554366212665714094004197768486689501797004251175704356925479535605771939784402050652484235131629616568044985372759748649572918883529274121553474931799291554817782517460175725849130790857482083543868004466220596199980081068959398699526151747591952471435284793336638847880177472649110730564672255607689900026704881208084203840212669170906675788737939119410543669070209052653786910532444106213672223498685206469852691156708141211937506921884903196913483702662334431264836214419102931813386988027273844992820487313593339733464492821535478448507124424028103397287114338962644854906785947208268177895179857982478279794081929431779422848341680620006974213535232354319536697214392987129390820641644552741330405974617571803984363179082184373082722829594884661257780787456466751307169875516205656202513036123416194734066927750703194646419381285762761631128720064968718193075339212177216929842609521167488340314532284283013855025392713732278831358046326983442688473024918124711649689471133110066252098917335466304483038936928430276979007907193901271218606852533723087592490903219594315978569155376499299037211729727364827904908001738886911874053600456774580502366602991392379250518486682674289696535267932215493847251517225606269839530675647219110962497098180323919361574472778582143694897313173354767494606006926334858905570896682077465701643226921000556291761965456506588789929229359013680486431809528879854421255385567735896626270080879554123115527715924964723597811112368490508072511269760985123735533578979921194534194133858316018506489977360946293659547525634004483678944400040761162983324170776984322655534882496905568139157968206294908248174821724632231328217074023714863940734443708208790736342678784078908305383028896227286573680058794901565622132454124480542489836244928501882403075752280768916209883924876063279690094800122417461654769132433665224993097033899701867340624324666077183413408743497374760966296420027001410872194820498921722472365259574804192059451857586600424065099607789384908402787252606864591319713041012403953202311267757751494962943249425896995919400800337973512219750329902680253499120583014356323786290889172725188575292053557847566621822412239390034119089053776089689103518562173559244556468700086888097086738406258066598942571453002931497606755479221446962900611486768114585756274612858504826533737040495487831251027229814584907008318592010576396776440006184079912264386549140188328057784151495325170998432617179690306288446384907552524403375338098357259173731562978698971410324248281598555761941559527146573656658669439836900928148040955053655451918014082244302117267821387221531423314061726421729453046203586280508133061620174530661097785799774730184367870591114437508729144549422741076593029884119701140353209982755293160134284215702146472718060228375313265709944078378107331593135210076802324948572853854041226252389674437926709590117166696226884098881699457834420712594082998279033630563324373220707375517898818787433149144364852149449354778510475686910962493720380181001401379709660086350712982156517869719788167838516921711223557427037263249960263102520390484233041439522001289153818474725708165716051080111699983518824695514592918257135839676615360486670779512938720764140860036750995874922172530735853951109313364881972876797670634270409585487467079127128394759812659327920910504995923238776920195462278263507428819126655993854400177473488042772268896400941222142139172945991518737463250234054190898705977443264765799541068859740132650208399017726949560740286834266258802984729078691466580609466925520735420041088019037593223590532984786307116560900708996677162639654150227676163920802926109512500489645414149912851473256320063076896786533531479538658986514849140543341304805708239292348317825173038799828587635455266626565461520660659194891485336673406990919829373964052483016258633117338175328007837037735361334328031964992550832058914069864549683697950242764249969197657840342099278259704291554318237530767288892004518535812726560172079437927504507632293657091520188754801791214250868115014819061820363482018949186130559992209089137782068751719886061303428387046459160528790814980423849024595067846582750534372533921353833585874890198963357782259567830644269219636325945829220795787351755631253960434843390112002443664518241811959064019273356317004378086646945588690716541755702798993271722184463409868596816780718743082933054557525030393602707261227381298482793966066690320338116428706851989872091133791209823944149142816971779638225948667885054151879199397419204693502814538365098664370946543051028737482670532541326003077859340862431190684898948362967650468608552933523449269109443787614935481093447438473451138852011636364905010244316623657030165717621907514165516403424099050930413389422533591002596621573767535230662628793423666046019030716881347972010064734994255535933507028437078097345591069832517477307915199009083172350319868031456799396803172785864831348682863838984353463224404343035103487726120705181752442664089738704665889804293319673960125469496576779396001292350678308586001131391962496519730397488982922039355460742563756858674000355516375940767948243110179831671204371978222028688026498202547197787506058173213717437944416550593703526549135265785889390267137364529703538124307580792663934414722728952229771576924806304719287756895148901650550829951360113687735188905782995588800350573951873038645281082569569371297670701679343501738425173680692495448205022313323731241010610279255969129952069681373213158358155013267609998128117145201118615635516697146929141828431773887325206075359405519797390339333978821124684723015018534946386135959179331696719177969383067813371898280583242968969469667415906198705875282537530056674595630275302222458378869318109698826384622927124389480415507519897094462493811371935521809468779898019093992964551341198450796272439539416221719165752302629960026213864250904821796522494776917075918258447949199220986969064212799095446223664115445457302594379100771814181090618287510085555021679198971683504243421115743610824198523052455394024160880639782924610246264873303662742720109595281539896510256321150979189983647910836710363355291436707675050123338425211348814684037269662597410230254765330212719333076630946055896351748735464401027714655155308825161111611023975754062500582253364359759602253966104816386013862706882979445615405384721396809278408689964170891220302702860270663080805276846854009328051070969933961645487482090304316941478060409533757085361740903897328560072150006272467538526148867588488783439083643666797361874250931431539382380578859022070446017803275484777822140141492576317833751238230396984955398384197165070014241447741207425715431585352035150721900868971604735870098581998954760245477094533306490147623393697287323313122513856498368055212787767767374578507194625820442066992181287286839932860276099784020159870135186027322763282447006415952961105755033658222033095160813500696230686048374805011305750571579294206147905555851932199173666331305739348161672675623234655130813287998368398098378816047001850607315302569773406458117132523615003534430170705184097927318680228585753646916492691731212079733817281942027416656435086302458068662194842416946583235058334469006517621671961678316574519835389108684101739512080660923914362138158377069462482319169213523234787998932332156717846563909360239396125752059593565997796287647333412763065857447695898961861158469907297114431437174785667558390564325629411961781890050895048553511602012638817513746110575679804281530559258302724873844753912263823288757071725864616551994802222409779358766076971613442603493213963653907708538039190168109187332158977384604661001462235722335869287993086893871839243129873538062409332319707535985020383457285820674134877334740965618008543075353443518182949612258190931689668852678386382403857584109698057626441470829151687029603699718255639179460424663604752891301655899914233848384041246274801507835521559545230577266380847287601852554845374251458173319613243352427895287685207227989828179022071843330004972680315328183310654182600389456580958136465233564293627592141537437576392243750432945663970774140932461491696896749157521888433744542619080673276175022304128428480334981845386741163038563505347572527293024201292829323838909035201570034554107720342356823153896951828946306251715927299607366023350138069528167214323887184100226976901824607329738259151493746134066584615108842998114185995243513534466159671932921769703894808876396391217754278657273891386406063479347439946439424418799648557587538080765115288763319922085160636508681288524620385903342730539322174340157483168798901392881606843234025220675155641127536453041817098283179276204575894551973840663735891418206946507843987731377180955585485292925295154673696250937162062115951256337139971600805262268835719175028765596665408320251788628218236787267434155243637120987969463754758072058709874363102290494259917364817862260316681232736783493060709625684823119427740842897239249456477482528174103332814909915733848651704916732317098797194828604485093289320313284829818827194726485104831009317122523011051783199616748733269135808106717773134604685321269288214909433987406832364602535221127302976810120571638236578963079835639105269605621696155421687985523126890779016754807919204046570001710038352094040011886548993975165272760041171337752678086952403256423698817824908194069816580367675586323245540093421103480780847360572153198407840996219257182317762663482208381880794702254385900382363707833183380840183571893096184024061331399024204079368652231258559035771805250670430688970979674327037341808326542470405862934916336381898809236627156427189635049616163813251092579154011423816900369127614857422129552201403421586210303994794096361406037218829685682987162529018873275503311338542999990139329790131114668227941487677793196738478131267084480436089127305227256650446915181936391170871923477654495245716484860334778238531065700436932324186189673838605855096036184750761492449180434482760015471988666731592920278302721458263839926791925835151150419809762994685759281843696254845831119829894906997967025419480215276761230338026208947535758133553426578614395446753761163094820494724399482712133281018490085125958489237264184580141465686156605569609713415253786644073490555732121137770701298685673101570307764714330752250903892092161470125585335848856576012251805088603815361190315003744496180744864270716623714256113182853750819287442911792632495711099951736690886678873308645857638313851127249508870783401876187569749502697479091798669895695456076073790700198524063623828135753257152045088930048654964727576488350217799214067056586369688737424394174305093845897584096972303413010305267214074039472328766168387992874687115709903907846173290228056482476312647388458598086671179360260893447717216806787426625571515948264517739229633237686912820042584165032092440585023484160488218429411856100388355871743283769928898786403182390859882297033921971488492262777142789206185894387119705925798628388842981202011643739576002554809659800836168660673662762152423116238884004226558640336208905244949550578407703761524759234921084210213293166622404459736878826654475820554924327729146960377687176267890986888126769939234367513013834925163780004086601486691855556158154120779216054759971214296385934824510388737399182332150449833936711268115290279933913700168206744687337781323410204168930604663044920774865329214437717601471865651557799639727604147425190508150265745741403176670530014523160102714984913567364114417360253458678069454711456661052996799387052832288604492488268798452183764610400180114083156043134103327707805297171134523707066238032295851499039580124010259474593130160627353431487317808210679402751697202780230716062707388385584414153483110907993422787162846705091765399188666357581943974271604152291398594240495417375975292783370358164456833013451012024652266812466717775783143169743739760372655277904149335400453446074535231668051850648926687609181734429231070209168634350816523370044785157658340940322452217204692789495596290006275909322464601824311429469250993250628127480005428462904677472701514655600921533046829796754629373012332346933620427555164077827378236829427664968213835770896373232439866679359028474641971530818120327096866154049989688903083041319535897139429394427622980184304311027876453260970369967940959748206010506057933657555170805102242016937907930418107516009266590930860763934291949190770162983858571980402096879193712580868715347805573350549628245097798440441043120673984488614709841155505315573566536574642039171407489019812983776803337784268655550272366434690903166837270571963209741738263077359213112092813254563242777618937036792729291199134351614024141212891207007952351096479295530019678273885202408670629896868625957112135909997295292194966509005687664144804322983718486381297980885609644140624923480161100500778236036103678715212785757301300864849197044028093883322754742285088987545217269776032943818456547001186897004141028538672859532112648662562585278718747070960994102156977460430028122067101678877216797732236664713453885408628682566465049676385016364569950631188915360147443363588163251327773996286372276719274420145109602167960343002283092095593120495585280597193582780601553619433509956750046373831033238403869957012609358967645681410977833862150831408380363458299428261714923379891739879188557723796959012348206778786618574616398145332543574685224293970432111087091662429551405758430760788231147032278979125901470264288174471891027626710051477332386876092590983703238945002826761942080708535722663366759329679514474940174714602418884012005672622582209266411492610254582299824214132652428917721796482943875971383085390479212808841572776579921733785672138601508831486552022581479465876209474058799820185123045007786645118729809102962040320980716111109564621425347729645234959905737121795818326409280467401738613136184172682756133263451266532352400047844340694142055840413525210748990755297225397484777793322599945247797329096610207327845039210178939863112848741893016163016399326157764673413773301798460039450534695600407179619669729665205297953971263416466552746638567752696461615063649410461929313713503109762591829052624909469586379077163309700406303674853474045494248459155760567301795311193226953341219127161449690006106135452737881678441450331940654021748804799347899296518733727991511488863993822241958697388325012413262948422807477675655570674324744281700760379713071309610667436963304803239094930342310285003468753095834858516733973594642480327828220330607502868314698114868349010919781505117350457120363939596746839751759514004793141134021124385681206050070274096002525979551218452117865863029415188893482614467212613251669565413360453775849555568373328647894470378946624678208595216600802062903691209102625313495450801656197471371394452556869493582480172910734379093084975918324473159611587433551721785453863094486092593097274568703559336544890375659945215317791453262058881447736526147763238527132901228282646542331145562974448804900761307898419545113667476580286519990759902035680223786050610351402776607616402478301219839363789935152249988478627057920384338435309916741005349937765650043603023408532522761757198018213465599487204045477198290155435044954952318400447937622402716096490563220411820702258851446070944769992283113181044317190292086652464926795737699930926202720497508559167691075497929090024390341400395499882811348671820791395897794049081405530360202465620260103898398915147082433020635868230555833218338212684900034805699760063499417481502931928875367433564190959071265113064454652002641844742550125594519584094904239817720707547103761216497841215338125318244455387525655481737245606682722305033451638601574071984636675528797747586694884894159225385245672376299171759302102440548972779855291491675878737758920760028175860500049974027249753088690960878999159999170520594708020803861442752146382181278820156304920016769226801074964528435407137024280239044093313105877933806590239754990665948060746925610398321174076012306896605116916523220362639227533642596449343525901287793650236591548985793152984251385212348230074534134507680806507495684535634768041737589273494623729242941266597020570164704366851380063133585709899092733391014330173641567820089862822414435935696476328924111017425425330386447034603765364375451515560148004577912812291931499239776636030221258411794287136710852122998280997104620820579114371628485984506837433789002881493547037749157982297770952314684423239048121547131794097203629599840292508208620044476240298262556146663873355153774723810990383064529139013471611475863201199131994690512920779845785862201516264254317484141846008274933891465844942396340248567904416210246617360909636998800761864015525266230792141334642203977653025770473593414186008002923264252686372619073797310380751779093353308462032268634449421690360037519760073103244755396043553074336376376196706512556479534745898695626811241988940508704753871350313579513817880335050580766470411047233004820087305285010058600800847697846934535746911554201888405710196368140679865056262915395714259737871465791734532168102936854493015095960888351625140387419113604483366709209966176899935054328644971276112177369515979342760232465854662027708625295760745704883094709832348675435548597023855507038367560393201668938695389432847246604274807135424387462743131278261950178522831740602176648135449950609750942274053161476885450099077600176499441614778573722150632189396631883919732273909123498450012071096983922004769705546385579207328223456795843590736423689071473511538092785225538297743835868563851423122171014190345930390207256790648249867713752581604472465547168482069002456699683486416131000286558683095035081184343775733710852391840256898539942206845997304451198412480184476587762926258044363851561871263158601983699793716498444664209484078705143656710270128442889325935760375064978271519500514751472357424694477120921755897108476187267079435309698113497667138552407070440775971861956521676366245728989945186504392946470208823878510388314264702111886441942738832358267535354869039860803084198645460237723384525639337282986969892007418438120128131679530002838050262488945737921112435323767753245526537493146739782901762605395057557670082978018038487025928479073012234370097993647468590687243649989848716241736722325955813493598139928878188959286476317039547161309494077914170884329162651169267980722435901609652782961762311377666064031634703444310840647047910475449581672735821371446669877073225301088413896193123148850691403085845260637045097814159056953860173331143611185465549706749877788971330767161713868935525491481613640038757123289737657865452592548233583298606613069809493800952237885544482606715496050824751815350947617150452301529784686976895205552016077628643231662984687239281588967958892264743215984266309294799051387331148648236660868840782208221718424752741945618973448034909950942775263171434860918166010860257909489729639949315732531327156315820689852892025631360877030507321903734806690571819018210059270924790127621242522819002844785876879555360237302813071393362629015564363180336359928942808256787650476120609836492300585729710828040854270911028086855082265094772407978742961543532823984846120753376435150209314586145447546927208385758064995054804775798941107390289837747610739798360226817928021280749247972454909581774970558228616382979555898691025750429285803519544677766487785874356102667853214728302348615382229792822154576901989020910411028821856821720406106024518688418700894622426798185033504884339107467396203914839650786381700662630463070482231608423077319926157701058735205835799906607764501164329506104208928110164898209586693691802986433743466777756390384678804838508677433188951389930570726778443217289052431335565771857155898595170302590837888814825198357549547928604674492654198709397682041692932365035245472664190059702340848240428184956628047115279218353567847411858253104932819783480883433871990642292215632989257184389555340073032061179658390281324279506980832005901410980640832670514444429077015598984351661998775156650872244215842711207106411669140228021850720872943564775005879083685511447141732611944565354637298695245139957819399270865745393352365025906890271930070427265235967424044175945510293098403302146720007074696482988204208414891268615287856803941794369182492924164476285632676260208543205205883186568843896426659720795324516209041708306987800113732222423596242894828663092908227595949104725552195925995810365688477477158344250281253717740304015002679061305927701010975390612973611590068205062239893464512635985366883146991445726058172309613311112025067691607278636246043023659482471922703338345209713265308230981260098568027037907609794110720517579679918866010552447263759058433757976226052975384971183469174803004875906187382353254444395993924636555234929744806225224566947899133153254764652215350823756968670131493599213161204353095008713375298633201095764420626323183573632232790862342721110696655518462735765523387592062471991239494299443286375532702469789578458141097245687996984926100842765756508853356454621572461853349147546844270345480716603529948902246629583726688630909495695937745715818132120007489754265683714714712365536188570628370474914953935920377870946113407849111458929982929420301656782994171504476133009108188102381154400063052631036721016391437851554848753794291005786624350763865479349710315672797957952756838150004038074513232003707826613673686589891787637679971653286863091150063544623995085156537790513313446131062766651206035876557891784093913246611011628551800184936835519541836062657881593628818277601465266309918413038735425458600831830833041972402163507091901421407704587012068761590660078403281926293758655494348755107473654795481955700172718740973477788910219121241216257813671994006149055126256366664158112573276683390061241898277570453062203536043186223938856848539081187587765923349582628932265239851713247337667909297211316488869427434607642222591236777127135959795065168851662092237153776252731023727204251207104767088114156119508087914354307658931698131884518886836998325780173293758688054476239525237859802994478222279099656237050658916791527127369588153794365578875750997073570852882836449892181708881552337560575785157823666009504507483999291415553018095372779086803719137570548561208266879825339642678208467285023608784368606922501511134448995744446320569483246921787806177790380160726889322815872370696083721735718639128286910917553866796946635352176890596373971738399576779299511616457591898384755365993975862404906851682740384146720777005973193473652176502716553169375342796762354222340116134476006476212793297143141898999066836523280342291044560839028369328534491880220518811807884176519508709118476044035357134860370098172291110120393648964560882207863857466538786648001713132254778836470410629007493556806237716265359766102487987271457527301737630019231481246451700659168763029421150149421796509565212296610284678196913108438266322687326090344502546294023737787495941835019242216675260510679516903015868701779918088507240067540936745007431685402982809149960654831695056195917222508909199316406948894008083276641324281435977069605674135514588562370585005880926750349348530073586219862126061073442506984255616989333654303582162766419567346971481741533102111327901831494787200973518104653580746231356430562655519385470780353339592887540594984269863340502138514010692606780558783599074000131957079492741293895140244237942865383687243873530838170114856785301800126861059586673823937763559474579970858625443558734701449157858749608823596501005772023652584313901030150181794703099296827732020257147665873288116643672556733477020674134770085513430500883366305763567456010962161152242917444287479109920677381844706497425589784998219742962632174651658365988554996106757379122031690371791852563471817015880230917346349218480678973642382285466733094173677673417208745943804055538458649814451752317464271698037037505347815410240983582570149012170378337015654733379049247807325361888948663786635922228441503093123351641065883848575375533349793791055535641127907170219864997113895125025112920250718454892258706739400564241647202703378620707631472978273639372304279364016957495984074903445072723427893490695819549828637768405432295959949128440494513030611502274473426055141042892562980277520388208191389968358750793298844721116267989498356825920413204833254386293964956944693483323583591462545869888984177053422200441584704157137514012741597448998096848997325119845748662347156484617917304614638531246905779567859042877532744220134903608843726465135642244169334050412582673578983211060033059780641218569307852292557743759507125523116110576847243665064111191829564184901811313363076050329501817553893715707256487150506132677967756389978104068106725042324706240782972340130115259880597613925665968365284402285664110973718371149578974376669707677564565984596896112509719401738095440081093908960882449587221760301260555413892848351423334611844852090946113317018342476376940030400850031859184973521866763253164703422822259664050286182155603552638772970740917864738343243268618679494011871454767502441058452469056168302925016795875504547460210338630173411951003365523972781306475177922308350338057460750083041054671213270292430739134113191284801806287980600677263647295941634949185467518522018666908544965736842920122136192200593151653818567749684008254411834187618966800611588914854016449064855914622391259097532668293607293090976459347531092373561277342851599182412600644551341471671237369868965908931844618159764197959871506779747740451297410066294808128923897150299720246220591627119899641810905033532648738782354748060974867806068349061602511427038734445494224698261295820041121388164171229480283807428222869926723182872182098830118224375436289414472745881521158215119171837026531576213588679564442268887128417881161555144290270334743113142541163948794228146044086761396097589432002614184299401654164057716811122794750288971586288903158233918543803330264639625654564270274724455128803189922316448288274004864060440353353488782756555316695449069633454247029011247442826852643296861556799717205291617222080495284080755370147397574715409926804246650949405120855142929465260773964312464646964304313011911331769390477587099630710886344120215178674521328983215012871384045862172061545856486899212718057297602019631863781444370918298355171599564558870781240915369133613883578126682480651223469186365040312265832205488939814641475296587740681492452390395553971456333602104103024122265248702009983859164746310353726761715757443448998201185775176444522888826860384617656152212091045159343034585319829704349371161159836505029839279726221954060847981720859982380988934849843958731379133618002655549966898928716695826999886699979003133692770854982698234694964373606876838593004183639900377130388712500114522882935611601141303363495502036176462924456348426878783985499334602060533849099136826127307395707695110356958069226153139700926570165078223011190623768466483121457931853836432545665332443685022672817949536244651202434914717768175199715326058991104843451936607924972829118076669651498046313499392767865776854069757571499074492666711806282256557946447669238739283983793328241102843496952939523387529283855234694184589102022091145687255378525778077303063776027212896608020463163254630843370175557287945033921202549256454314630887634013463624080606971936996131136648433146970941668242007790110695982171263253264688815627329868460074550856602087502332762574563652036496353520469420664308655927914909479415834970361617554292895731405707724230748814702303660599353755014761169631216455178085234879955148573773339438892533538471056602302522758289051559545089045198472479634953232486076301932088458169045641482742936940960149954941110188609068073021851425770597241184669677313445734665967471101918746027216945687648974707917238119444155644012798212481208370294849637965145944284479898005530266333179286476558199198408783864699937277498165663955050105893000411971077031070540002493256536369157580226536079362146201248973087223531055937771480324320760769000771548764002872361582922129175438971956122634239991987408638172768178238733141895823281216430392057179313549352627001185350254801964935983963420202583608635233339462967197848704007650476963152272392481069390792437461883708187156019903737467846108734433165684567426338177375825011085035842022251438699999274882242983726792707913699496741934795068543446138120020713106790484367142006343870691808892592106042806967200529979434245545807540912016319020039636931517141586616470234612468060095617188076479420949386313586439012958567404263351352000518644459121266415263878982593616774821281478727931597097106800351356478977649739239089811085930737043527454544859447084540671209118109404311472338604384407335643703393922497186776331871532815846494622020299142133164472132634991489570458090966615222424884391201748536243319111579925879906986581816737814301193595775185181437275310277129054489443340842174089792298301041851522064417122776340072010717268380502610990755542882754458689040982656235207642557718947307681051801443750767001586170537495844586434220611545533537268497579425946341480496059794755860352677831805581982014415116823548197159233421730514133897094709929319177593309141517074673317832837172809188049757989366519383665313780440977031717645751474815411027774817619385323562484937318737910794629166200922252726526891457646180361878277314730180209653357851452132861120868751440409892965523482556633785031666689101812532790630841221423386765062317199731362366267802567593293618959944782218616428874140406796897420182040826680373455955655153903482337397267017129486346641686845025666959476337851030324535802749127475520306720865984447922519312017333055024586376322170800890518817188529994700646411725761277148127024393894150388889318927913355246680234353922360852195390094362871051989592140075714895877489265897041759398471966704499095218697995834495235831828022254175790944957527098526075776748448456505201492645570966026370123877190204195502105773497225232697921436837475744158146842830350544214196650064499856518937952625614172101610910589583205381435814467932659688141671847455000888619516369705454469058072873787085355735507459183073302839690486761782628002765303143773063919619711226352919468115346878534715662717136271637389453985425555287063968725773168639196101997226112792457498253988112349294991150413041246203075247970127077930419002805440074202683230487310675995628641482924282171962984474087725854700185889695450579314444118393205819544852834016164329572474522221238605027862242186729497298502048082416421080928415288745498663874047795216141701869750198394259064769719309035022330619358564035534174964856081521214684712926525656494350092849928468483452027040936523320850855876836547471397489107274947017341563329059680834248493101089074342066794046657421956788660305381744210437545657637371967500381708934369142866428974305494561719560549875039048147591738048309599459742014077443956545202566888119228689604913995397134255514765210128091845276415522859855261891524608737602540662109768602704230432924671282683558400116932492632769784273038656206875109696660674652038951078378483160441725786399398699854051540092723578166584181380296854749981704724139393753237879737834776469665181864457162091179401807628576389109904851571851537453998936378052650561023508709581853268735434714075012275001618998599952504373469628339755761708315947820464781882619372116385471598137331510211069924260790056387878600889953621346394282392947518519596589865408873575918457248546636175188759100769578111894794020281583543151929478101740476647305029460993750982809353519134806634427366781601306613820066808865965140533681372886555030887798794063406880756542711887732982313005739138473282710726713023220146943990220787274762652458717334633168683631270349703102456510040605995017379786858540182044580934616938264935592008029192432251163510552514250725971893767319020923403171841688113994602514221969960955980838797817830606408803030063643802512761503012951571456786841551894133840272208102983531104616922901072616651712915011224978446941077236169107196153585828234346586835488470509065829695533555168584934069457219549580985285457176208373654316185145779378627674966206700969678691239803694162039936548745260539490703672326761590352089202186820070776912397272536898294880467656159370703845690468207335226281700551441178592849626523245886838153129054884963860273856594803610196582014367567600812035949497591172510304598078580720838792140209388254745371424791043121624178244589878080038244202933793781919728211501687284341629051887980703862042323233516389899540771086239297389826534966793904594952167996368433457372407068510716452207622361860630256630372542978224136416821446690735771933581760811261566588201210873499352324456129711700114672214413291526100841825371770821250206565244232561910006179445090657972294758032019156715897476739264495275970131248248966446104140622711907907999409597271317831804347178626465114928820417669015874195207547264074454356114168835718549161873110631792789055303541735189155328919369179508265169902795477271206859740703786852397750966143700533300050391493173739269203100322120006417729914625101854563760538775385660622764998275569856029214688966339715982514860943924072899370331358545100070910025642380572038510932280415734210570533874776858662363670645877929963261066942387437893405648192953023128789791563319612618702614780047988636471671890391464722080206769278639766800032281984898474867507007254575893176452328705152784795707303015378896277199522558463114583840038325573063889001291006486611589462663614982005625881796119402014522587115795563241297365647149790069111945412656138778598365461251338278340614600557356685416762990636364166263472204987875269539520108526700616687758570895597985635472711448965801974043606731632519466236184304567151079968385390759036363140886738065980601341812325660443331001631278256414561456278135092878065989081986757185072792745968389764979121432735332975650659242510303539581424117400372395617620381623672354779142508062985880976466333162786389643540942012630155926860993272422135154101961000539657217963804808424256807286527507615726695381843000737806165436824230324123476793321250771219148744307585084096747902556999916862585341455405947145307333748211136986415747873348144513880429657740094717611505056072266033395172998346982983250241498750307289546707716851130049509823477417088766895232957769624774763467487030980382876328914953448606942412320300674291985449580216730526110659230527015229396928195309215028499245466093971118028054703643829056556489176434816820780008581131970842053076276373588493519811597792291160690609127255729704366692901755876607753263709141718585373810807204362021528861382229346476525354529465562057167169360511302454645419654636701825240860954531990469403488629222187453269282325077959289585422759153320169604188157292808634444877062188909621902279116636305960995378727958190183182532391885091080703598736090855171257177439346257148821190763401619755730547907785655149551287502449824138534436702477264922543135950469247177477475608487255325845584269463762705468772523215022662020362337231547337377730573027444974765939121213930874011759026160481958945317426994275095057725422459980097310171829914358485484477338261131845674095658104951339410082671904891208357094818635679047096947443504138049979703893688616436296199407880484944075844770727825535589282051822558371084800967830524089001370835446550021010192600027745131044983356264469177548196073434301873090802686727967650137642950970696742424184571010630668011084825690721937241845918656653977445178113994343357146709895291870225056585133355531436188018187951791878945815827927980433020971010754968275758170003723496299737997326933649939137456481202022075374223919703079592189655960658084511405423133209005209544139924027635447968453892272920489542177858893595267064198751478345533254570357380939891199575880819672441102065260898187750491569320140720471916345448751177112546519100693065174020521644576764318884409061382549642417659913000994282449638066617720915438508138590807472934465678550572419688945625054144087561241845577765841043571505189392290025273038221551135153864014228449120328327953362942798825916123486009210757197905158523011301604602512590676188202539518381178995341131441247570238802149171297930826009124446057385123259917156656538233259995158622310363461066030642038928249172362439780797526327857152198223374841072118727980408399586687162864908643217576918287089190972397960714362425065154376211383783999984608608245071932894552573855987628929491429286531465984783367850494997079013061952417183908598636855681208258221007507927381805285569586224375137591381329482595828657051118849179389477686245486303712451927225025946909725648311493790657299110002781177625143411798790162177052753565727529107319806906060536769104211818664867106014995160173930542408181972673840735549402838165045710659711807329458817417896939794227060814855372400034681695690441564877595010707119694347399432099510089180019465200514473713661416040763274934506927673406731171199175614905162427931653255133071676052991894875306286347983778543636319437856907355826092250076117045782084059617623163950451630691813124505633997634269936106687206196691296804524218179943520560471223565363452948590649209119124943520398831278572445584236299415526952267278759628049215749911640866394575173977237945665920308785069420442538054531532965126332724272618343234425895959742457912445882294614078750701863769475029026839444779198841363577663671135495965209888380048192896061930748433284419813426193077341632662022244813215876492909742631659261946705218993920252697029557592001987304505814700379749091500841562485146353602936290580390748424857197027988035185742294345175246743868513457513502299220333135816954762656431524828992741689398160845131153356677799898361610731251897504933298082697862166283321244148348381093113374738421621538440866632333825369481088529902587310453110398842356576227970194898654427901005574256088010934579828735612241800987625139345218605037742733511915542196037391236947273307409577214525790809889135438142987017225136681964051995834130946131193618514262927925621747147099181610088725704447745127848215813987728955699176851834600483261402282135529879197742166642067346330099551125017300722546093955477623294243793273730922657470537964547222165489300043037169464346811624641192602483758625711386155644724522627161152899562883356102217469985834539595880579740608959667499182972788066861488367085493522288840351189204158189979836737590573826980736880183702542106948834373940283614353182669239030459223034289276377711377539564045824450952146056733842731195590857616393843204243069818619818730278968893122376646474994771711993322964844831137817957333464537337393348326422009020669003010680215730559569772748860866683340460430958120427439672145471497638661390497563047202365920001593963330289764783150088632990262777403767875592869338452818562040083087679981778415036599000383418128687480108064614850111417112710535162836784190350101099291740663635270394453777132991002444609738982261820667051451856254733765936643046970951577226476741432308476359044886963385342917257793212485953752809841395048893156118038893503583196453530079900885063354700540872228059396384524307763559280383894365876933411145169799585300386369971195453886953676093521963187603821302392403784079261295446051500182436542201784722262116493665023322899121596234352656794891569512034180542260979417578467152830244472439239100959469639406348000444079548773292994112902620097699608349745598602562586833724615568739069810500076822817611328985079881070519708275041024567063804974458161121014058696692478383248497100402099583245597561164274435673526033312860138736384607183423117250565856074911121815932598177407182724771519441353040437201016262520145646766316662651480853963896423914155229112407701527897283620342614805571922206332248678360900184368226590599929346108023385809044373524681702853467884409639051097643394292371466702168528734366506675168649191406974316930884098895862544511842494448829072229336406969987419684902348860836111975825593406202284472356660702699184233451964944258436843176784506294479423094694319900417244043120820706746593732448462401078346832074464001387699611517085333425405306657343585639113679610868507950183585575255156762226173394260308251856632241766513071003159652376797372308533752955023827172492539407132865153529786779827770390411089777010413362184227431977399303701892648420570256841286690025821612036901995666247452733290934704760657175349827018569528177788593361830692088651127140794100214632113505860395151478740055900089328106454584150511542816006051588149936315221389302604373380973195720072655681996202321124866480575007989676619411714343553128023480044270188896492697462252075276051650909828217950662518727666667949758895034180555491321298307132359418539196530006720686473958842826033066394360129446171017531676009348843279871355556481020748826714908930824918367785876048717620882204992955603784127737678568812682721937449098326369847707337498894612101590154776683056787904771336365163193821449487440501361484507939658461083373072186036365314020812096412556056669597958567114160202405676806162711394814544430474138168739070990915921452346338379462820936741595036680172754206325102665887140044002733201772802875058289645726807589452465688298301012888026409513241965268362772510094832162511799719423423699307567269756421105157440500374425587124641759585793434583216203512739682146885170759509419922583900195886887442819527540206789075098624024312183744331688551576607050598780858939997033990656878645905236376387262321549650199814129638210844368412131053063912958266684276097546434180196201484673834600703300531055268939387250054075690889353800803746089429894194933411673450317652779126915006588735356381223170540360216236953378281509287611858303841019999185438387443399484241676734204368492667147547953623780591838151724153681558008114319437521733797191446638986840137697126505941873518038746463949941305289412555919532411188980783421640476216955196004796744264800310236723469630433381885863668398686470509073941330060769936986025428588986327195969786287052084564959517185166047147715531406619222878710835000480679415090615377284420004905004181355056327292712895580321747580364704918426040436079324996182393485159627848618646994283833763153579779777019126675563548792929460073301810248619504786207201552946895696142338939778820910730175438804833257953816006373971674703813034953454677446747382564087496502806443463823136030580543348460605244039008325145584726594355837809829245363968515674711163412413167755078088795095512912846240167704271581623290722429735855159350942689442770146939057915892870754704620089798658635241488943742336848939338531492078857833430817636848188277176445135752194609065246095404345921372817068361638588328161481577576461646949724905219345954108988561266183994790119878399185665014697394396259091481489967671374406551395468664152076934161037095769256770844835005304803010946575574411655733259756197229311645126568608002830042480247556397115119159765316076470789574636591179323188950692210075443567570151496607752394423299318592716986594998940305127957983683147871597436690839686808812932441618105137023108454784627163604029070554574533886668691290916782787025282315336253094713031903025164856872209700002949121978054669267576851970543461341099877990288351267249488401711369335178260070160952898885368520043761381136700736360004307921934531973708949310841860975501681381515607799954898076489788467182119728922689881665009677957975592800374981012267082479847456478093127151110056287493283960815901131193563392836317198107012724981309187430233446197616332010163277506267035687299544120871798424783688483175507433962092465377845362220715067090315329916241425191719164423871196924791099747789550585921614659008422456982448488271652271119041241195685568723599521155761260107566479505639282041166959806458734295961450633367131965049840198951137893468500854412379793148876465907283852972774789408759169300880574592378116670058928505025848365938833037901694657608185852806286285012804490512856473308150153908430709515153560332003747823243456355777704446852721652056911058966536115833928154648882399357621666607866156615899017967009410653646754634088725986483860454389740956229233899472102948218697752100326007784775143841168550870241875411670874425948764080076646285428068082716932203168203781813077150590450184382686395328623316600489119384813286883513891074515291563488878906811317380853525137391575974953272610663104187578984839784502422235594252795073153786332773974516205780186406989435184335748142325855152395036483202146947674495054848255519458559846240744804168129669681013431981839284000934815398644663147483731671592663301253295236125869888793084912371077636914934211146905193635940936605252682685767312495107963674279041602443157122332726385492208948191498015926894442643530764533253037771918186783449561693821733780126077588141425723167210535876996146976021524846818289331515503590213193711644662969778552018841734445654525502934539525086609359167450032386923540210167444289751666850377544816481625334257691427344620923669107116142096893183652569802536217780728496469161076316972712138617790098721633791700249938492505635195625634216227546034029866132018967891301299032948871476114635449948274742426997702561093710575982831932080151107344917365238080970216779700905212369080547868069336931693339084868443709222838174037720602075089802157556223858260828876769931461905400071445780918246092000285936855083037116797314502981941992662961333971957327993272139104749655772999707554120821680694358812108633406488768882315126511432614686104416324807288808089808948500261368936879470414921152904610809737992359964934754972502253083506126499790211024502287961566528461143771377605103893402304878587376865718759161418512455817289356403165740698398449797816989982939785742674764036405042094132910199802593890686407110972185384344339516317913304709374557628656001869648303398794194421327789108844998467423937160289464385986689176553423674695250667110821208559189287320639786975330251387052020416273852480897832636742489361802889540221378584364628284443650145283764652924529061169682361456955423046950363117159530760891797017710303949153472312936889559650017087544640135563753131914550591811797033527395631994332064896194492859884089892550443223603260824814433846631034585119815995596062631702102845174258310018775718038833110600286643128176568766868515559339802028805249616241957916981246918776089712889442751468506812964410247391784646011028306451881837633898198978293699251563437954643879222247007925554923036891175291400312142119394542535206844674289135166850626128285840533418072588826852699688370082455699823499385098400137828233690417640269805272730481350891880640040593180974443326801731977705643941781127945226640855325721849655548243024674840983384067068770562762786356575317383519395901452845214673746061319506889935869825168267887885343998513747110974843185223327233181527652780628244132880113009615212598223935383497484825106102471857577009152768561441944759394022256800796696803572485353302326306008489925621933053810954199606042265609581510800708645560519100565240023597192852016896604305400657464815842475907442146296919731477222215542799677535570742018346313497489704902898624136940182045315336572858716851169948021072698764836212375607101927405804835968321462142595615344833199024320511623225155189037850225176825275285544707458477464502949674610779799066559991644559248199645630543831283577804939418633743836404495874175383722528570002085452978347693793035583751907272437425938859797788796922303540665368075919705426397357376445683872077392620699097201693769064335786334441336871583326099831560022264844489606926985848688963669856712844155598704857161444899746807379818738015168015655578487755907189985666884221435206933581161826861053415442588597070421027834396173481870384637581139976382754337070751627934917910707703834933055577745001711812359497558224659312996795960361697904697164819005086232116716539783024537543555499461298797628096514112992894687836644299460987924663753769357049086407797052236073506889682559042581616660028416092862198907809939005083815754024289000364138784236433689969113505809873649636120592471712050660058654250941643137225832391025851203429830320561780953616273418469191857638740367626492068103558032571776212489875017916100267510180613310173227177333881272139345105618726528822412677567672417367532738826698344493618983548821219800855223408548304738350284928223522343413398584633874460516850480904363004533530464030461423207608190096673600447123650353467674137090324772206232049640830803195431016428682191933681643352649899680115759837182536497721622010750928070717369933759353452959727442752368946528149308198235495728975073065317823546205531341310460676017287803578520920938743934998077879774624514278158497961497064637885824580429025628075716356876693617762245655064822388909064716320364957898340526760942049078428958443537635852350149734773865045068481053819549410567292649301029323527797059294652011910049902252446759108931313312459875900406528815263680145159982881574132596110755431969150542828535954559131784398934950767145613961594466272715115024224762723507117613739968759231320910692394543189254664118318842275327068296308396962980019968032528574314076789797131468738013970542159974103462103820458168674776552643345386891358595153952476757461955971632573045891650181825369508307122806129251812665220121328773031591116358448701922983935867910260971694349951084049865620843339115935688294045292748370837101341678480549778164297596403667257816511706045074334666711420468521419538376583353590283705427475275118984467866239691153545752394229136283245471684075820961786284832701680678664505945682612792564147380972884714742457293781767905574110256778882309431796109274484385280570888526667378193327906228436145289896938251831052639485835941249163098249665337088914138356540628400556551149149530561126655839764319411705348806395180074984559114273216073346719603638590786282112894714694934962344183909873128369622377567292179991344473644945745624004055111099896508663404890739537861413614524424270788583151569116001314030996869110518382087846231276971301566011852204377071828356876306724276350945765803301949536085720630124198599123939072709121580968538083676011852474753591871542625215668320612214772844841070945636096387985704882052788704599880067910357567704570522117709224634682470631339021399344634819269133447323255657530886752823085814345779411153349966436444605492009203222743200296204163564690761725526117613721834387531630726984096588795260271542701875581747405632394567940633115190842096501780066483230035813871515155416176962256377952482540787873150587339831179054032888607940957107986751466639728481413002608112538702388847197793204268354549135891842550718914207047396021226241777164845357120035703346187817507330751414229508749522422562056454821762091706872800757414336919237293013323459772890509218537046011322609422411358523232813358002146284905479958417015957251512864336665004155297557661183850172231646341933949473807210778845635763748462378544231711527990481054438549363327275546004465305740941160185199033295869696992986908565449685907628119834040616509190164532501280351354971319697870235795336860974481580341095286861832646056164481611549325576916372887295543546355408217784430824025456159735722294044566996583301411409893658428842539222414331299910984441649244169019920321139699090318105565294604527186530666297722720272025224545129211095204188324299369367904896506731600971738719766776648993664283130781238238133436031899177398092619499289614623171273100667517222566679490812566570042721982316214871985868491953051411475678362238544450105135078344620317224192549638345123923446598835486796908081672581644037928728240566129683193577139103308700207400032575645110714945430147781270858292944218255757991402972606649817608734845222139047577847016250423536151026900222777666524405797865925013780049985877590561818421772438847675228856006101416249384270577446262612318736734299890780376116494293172106921461935983878508074362266180655364726750054415034945387275252402547990650503572737223968374814434967776080991761867415419681305422081464575041788804775140072526537046618489729902853326897879594358173763846849283535182394839548464772797135200598091834762320440966696220194188371574162720113448064564472079116746469418646405232084941072855584319807957275993086549889421770910949338624403317416405971798024753545419271367784222541565257437860848656011522958442795447675598106915975492486527734609021915959342886653189730634398219624562556988397844268120316142641219457623167159321084253941445244651757662242176471031765360854406666212400096617507893311694356941896501792052519099294953591094882747696686912407066031444698625154893973636992215798073482695938474502762838380325232377150131368844123146832502663218763769707211090114941817338827122344438773168836443244197401206728557704767553649553747355653786465604138973237813013308673420282054952493506803653221484111210688020900791038404448194088347639691894125482820506699818157999604946402922523813855684399638241819707130212354858683440331793483164741647208105241755977823211980993285091152268822518244005006774468257477730789246951305670656208346721657421437587606829115054051683950327018468730989282287774773210585155970224788356434302970057144469578527206151909625303909619105216644172198318783945072058586224485859586195936558629884840375276332239897405918425024761505730829333368318455036949549285464380828636154067140363374103819078015993762073299107575672416885520988400961172850541742552087979967414348076032927226768024454053035879177881287923057820025762178715109290136495529180635649725771892593588591605215741305234327208899820936108244798037371902589888487782437293440606152174873879458392513010994769991405536348012158274882493527154475152933343401336334984367110595099823202646377843488954611713342942177904446319175031384313994650336153942681465115083440614959655273714978113764866462284758536248998021873166919256609856631521948538524883637594636914590142225450089950385110392567447030918276772600969542647135818471360339402786604808276588286196969014710155124630035156354315697983427447067700120234973247006384377074978740908255247271432820324964386308256115117788566672003924338572722233494121827620374065070807968509847968923190855448182042578027658705942021400110201848553336532843530094271260851320166615766356013889973956115902469283377520528823263584268911053364680176929376927025817431928690035793329350275132449297384290530558832175289594693095488748548765239757313946770448708009367690201576390014768059424071300825134457073047613526980360343474432114625362053297379440722332915892311234029280028987193242703432716791077295969797699447160668629805858469626910453527466144039049108043008806528631336187080357771074965909611452055284110843319046155372525254052798766935912606520342601170550245311742348509108965777898568439825517047225188461750049288173776211076001409270024761105639268649103763516518839417919131009832485873040090281175368516140205672332003049335346218666916441562640592499704530612379754552124491984572070058983025219688386351421384935820714274688871951767284803737007394299315840103275766970985941060327325587456310323948954112936018544564138861556470647053946764688548565501888470471097080140844578442469371894634993562830980892356796342057282854635393438551501043324091468038490400622973665865722941054761359123249371056666609727875877453773518277977525464421746435453772082074521725999045146634373498704548027509636133974612872294759894038500285850570258043042758120868092579559312284823423568335700061550551357289280542538620522078487477061563570910638468722474768396635667387126997863242876476121775576007880331942200263322576920509455504647073632713237850994356976116279616265234095154359803515341203323141694870570615397886636014393129641354068517684679407193132531247703990671972628416702687604048102362713416947283023240595154522264752424500473486447595195510682543471209765005399897504296435688284446996064128990577628664693404629925729185000265903177065407777525255157192984323217606111801607083184535212991461958670329437233833704194031383258675496872440163848375290188490150888221928327598648130555951796332826145077626468805468583708531449198980058290064512071624748792894115369135922759395362077858254405394234835430685903885594943431529720487530635353704109833137807210450976224853719005422327174870393801795520469337761341522112818188813121940921308541091200358212872485739413319204891182497283701900824208805773078539030865767839797351394540634487268540025548753694468840040017304841889373666605688975316908347415336628484217582360648044443828801498469880069116974378397860748723459870354063329168924583536657778875679069372002974334056156329120226564272756641664252552960503184628349536742192274578646420278066997069643683516472506842790438228030224040241072747408870582674533863313677398150098086516048935755438376094400237073868018685693845498503062607214412735100311260599685823143034227095185046607815912293158981984317483125632098086132343499701150555451369168200734980269690848164365571116385724333112808142874686626533637485742322257425065692938436136510190842217536421080088597141714857769981929344476578171856970078904492474832827454414209004262898483579273668577230826486747081607853366676070802581836590366921752399658953186653941287520010210789102050510740674789763596290286613782014202824913659685248393440769746571237511763876408370319072029303565170928262347440511490376127565269036464141885838080874172689507648508413320355528061239814222867474900760072035673884247192148057946343186764680820774034792305100174183870370688311214149645922377869255228209979004871238381909973644923135896405455663529295406451165464350544833498614522222684451598310599531282494759655098961000798205878496353715612933744134465449253273116495328556292911288382345667014938041530945367475538399872406863668096092058811563497387673060447041558984253033179575112777190928072690698073486566059292286787465788457926248626145148273724739001156671061832007660780954863998243521791031418675373123265451065122386646045894365465147176713659714463566326387134437375676587751019107392431941034300064348696676574568501915888487686624804117544161356702837040154639958399364730755909559567798803081684774755305935462625092600767286055741794792949094021770025663424788582855576678554646597091975434500141062743840889121584743931636308931472537429525907103504685050014299187677452785162847756582050863782721687049355893224797092201030066929266423738586389893856164287525289780604474782976309819056102372566500308344246895598946949706721194873381427984537772068672504164476841963709318947873652675573863823717018510605848843837588266839219911635387165808404107536428507350509741664403827389075564891768930141512358394127244495255033744833259756541855100919671224887266854601714798357734182164007434727041007175458627826906637222085102932458024875069403614310388749921512897991975880984085639459761016799270247923822629462651204698099779898142398121324251480321865907113299932428500356690826784477395692924823192906644957572919828945570364663859608046015472908251360361246287792754961145143283613164954148620118859798234791833693852824887238534302788208708001093383252161282993542304965679044331586918233314562786569382201478690361270810851475016422696370355310920018186996087171344975776442272750053963365725467777266376401760660631978764066314366780726950462513402256507700889304089782902669274449703203412866800748580868742279336304951282501791618542964305498398115862926338784706434882741279481724213167717521732765121989189004562563691509652159815666459369864567706597065479021733528412376540716387098197530690871076162991820737443188348458441614777489828480608964500301350817811245992236946627565466215830255441220411933259333603544421040757830755390218817348991196398896351305261609727597149550479167715597578549246784138974187066241664988152680500684226182785877147902299713885426686156080067840252687339502724980164265933628966671531530097644211146360659069084301196107524938928249357529876024093562103215797348746706097476275848434892553029178775870476536611574854192295790081601099955692037902545486271380326573693023847424732048546573469449585054497269266174465588584949743120572039266134437895112546541326190020640327589203040202458462957613608091881186681554371409319244977982929873132031893553767282587992698252632060884175503226064608743277483280133952356443962537106817407539149887799736707289636298229250755201921035347390487498398659543624406467622789135563936924944546396858941392127184880314505393138634251769380671571354938013114273501121920119742121848671858967499124581550114993006331887754672578104253006119567908763251941217612032696304259873535664980919783939396042807158207710889036454031811017452841337366128508889810027322834056153012979192022544289677555714197355046011254775329420948627522951404724549971967352362443045953307436351794747062839969661527773018052409586977346266043006029814122185670172895855487257089954274116686194643855534549372603059732030445070182781019853140904814441829935702235376489114189478195518415683412719669294306704701467085745095532737123021734413834841421205422864675283670116084016941774000668160989212043683078130480959297723799361164840193455664215140246160494062886597912487329378114354774557798967508338860043309842410108023157086623302333013013958622923397515126334487026566774054908943977585458179703761461627496487696230603124748332316012295414537747970227978717400896881550076891511766714799913443842406918318859037971525803585218763333810890651590507854405310235440801408744224839025212744306314685728559014952369025994864744397852073471402794762090668734646426543169067835570510944906383436454487086777989584491137081515710396503397833440879042783523420617479404072006829442572084075719657009567505505419075415452648610220870099106105918424119973520771326037439564280428824109285316200467535883893071238631997691731442052094142045999742984860178077287638619801968210970252453493882921307977539958775901592793301547782909700149361963624518130349692643451570261989021785531873898864997934241184940250835454750774423143347507325726399416929168118574936469153496543696897021482130362343902815430585471269063149716853219340246270636639217260554273494588530898880914912508029942642983859063656239510950643054297397223783704532247858758777729701295712758824878323577303039555758112004876996702835405400964386806533206465802548660913228927009646799951572942589981419202081594078031013901738405317819407765163654574545214681502012962494562844057156535767376939441802579232005911071381419848405996401912017856744602303127044671179614787129666772716356229888706025864566135803966375447774773106501982231228689662739045982777809419094555257618892591115701242786022371659006241761312998626101005049975837113892610693242610168058758097909534345942442127243735144370874364989503044509317175582756562521757770744991642341872400878995064080867871907981875871732400587298195933761668408731479512220893199197289574361704183688158298529798987630769305300123036170065390025392756448782941094996859509755920307848906448076664776991986124754457635178844887852652405892842014028180063067641678650499757613467826131651185180781229392958688384403795925333612512279778837522220989211673924680570209233024539953148730510960641668855361194877953235151579878508766877174959700874529498871920755418712632567118032825202950537787018458891148079879340708009717256139231265538519413210059215354605864521379475840877752219832613564143168558073476023154267517723386435292142804366379319567127590376127141163173032140869863864198677216054825578573425077332652491853854809193160170739471088675096877273993689115123758740861567045236667711193912864984641158761567939055009238732210304902108787688751880398189768838431276852462157984422758940506397716192343250282825707659498490775433449807710714898298691854096024791654790188284821963556361718386524181882836771056763839173984147989493828466700876726570347598817198786315917912485593083011641961364767007772657697263357394424789717601302865042956800858473925693469579066332775982136642103574107452477559642331424595761213006863992384018795561708840106306545855637954240479909637014673656069801887981884303913036747424707473968839679067300668515104053559331834604565830260877329949713703523927432054000841557159401379635104454471903044864741494277334187616236895777215691072535998887232165907601655981743295377774123934891129467127174216984271559509745895155764496333499408075829293929427405063956928048727326326694112176659840767097850026911793157045638777132726986209615181517270224155205633303245126025558246957463549872869741741703699088331922833844206287562038090653662168201362150492941188171057096026258851786795682453015271381395656098258244264239230751734878613175473368488000273618523937627899483893336922257679572439788718487516406790332332816433382149533872903407985031960731860693763320698277568177447157837573658865117665500267144866431038800220676016268044840008989443002391093438495718656380776046369221446423250268346780737871616235788043413727925022669506445947280603328525767077966866858718333492159782892579818888204609948577121645396593389588892174555128289341100835976608884941121433233989948395917581099298915129457671697755545762863135394391446208802119553755124225013637404560915390223400172381691865180321091649417760805351609424715986578672212263725676798514698365661585527352973517413186216450731125069182091815515822301921180885449972894589787948953559433068555438427931285778709048344650167067947161475006200837281674898907616793106176830988951020862032307884755621300213375726420821030651155922207049285493711894526897180417674118613295594795491087937260113108593929516662011356475547695222358043020700016885864489474097758484173048890923535269000729201969135579537725141593707492712312424214066447314939913127493429876011978113016214746533939006598232033279839422682864535267089026598250717928412092806178868798470504413000208187748753994465387537631882386339463544423873827946809586382560776206102622941304683812620020393422283340047115822768086687726851163676344136994216728497190177887663318474903086371824071363607464570300685013165198621526445079503813642341506416941318827452142250732998647503722490554985958067187403464121682651886189865273174992455232387973887154323699216618337853060507474537492917781159236425302837703600435165969734119961162782475547973632688750130709234697394488054545505202569357735006363431002154026166830283497626659196308520860823959578546995734939276885357715698325123806200416533814973806347884155405398438345016043764976053985787173862540135164051860464907742372039835428119303236306678880220901091089942262522654270713786213020095187778188622429905136215418431394856585419829465370604520768250444661422427209775697775929081676231111142694137099814601764805187553924170603739566737218381452779182035651991643802809948471054886315985289755405796080032655946043010526293424670659063573420151605664712708798732148013933409582148378432949485542198596700463640537167656075723701243766752952536789829243373687096638506067977282476652367336303583731228736369248116562609793904395795739236827125648923285626049668650027001829297146106313002304184988530631347998129588417722590358943558833864742341532674236945952024115430833388573052761659229978184872505527262225631817710047431548265877452915252122041642411882193572282281013366684875416935142403696320922599547831271880478582434505317971825151658788684271310744227085588071119825241470331251987504180558536102342806449497028320243289354105152114709000954002001367479387189101508965892116983129257235816309299229562036626815589963024799391231243834369247515482163156983215145996344395642864828362520622002186703378599118616552820518523701132164889441626110360341955114186729902537717007251347902439845819760092521073568153007279744655222317618885625639603209042858696679542285424567210307174792520297856254384183219769786403857985015499979172601262088081847761655774834760460839256013823151074663129527724402195069401219044238440447491412556036567957281933448326161309038469166948104347914180313850572251255151051730854685748249759359864657965520013643159543886920401139738070159284849798360801206902717228332464990813321446438145537332643421901538952640283998658329303198939970448816092277884741238909328091708801273314207640166015008158042585079299184511436074991514115183424136643913428612524288350175834349152672223902209167801756201900531630556987644494962747470747033517460605451721008730633105542583112111151914457947801158648000807385850543861518300569652679834414501467446608456606163875980124846175529329886191000237447914949397816663407602619883305716530760841116886081966301394384903657424628227892692227584870448117386597808137663873125414322807669245842828433294850641887227055856648360655875266022364831511506069424985191847566168377630903968438529240668123517833266951096197675925962067785587057723709905964112656297960118021649278825803016516434080776465897661333745610228727300482712348226837404283720441822952935188095247240680434812874687442855085381257146044935565537257863899078308462278611066624811896698619975638873961534580734371467867627345708129895114908995553646463649296006410078008163520872692495557596822970816887998739450920054698781069710513613550227609338994243738863445714388169229186636191583877811159887017932975702978796087458136573938255763296840618987648906673397003839419856318281720462522060513961579163077163347797157076393279899698266548349401901678018277144097898889360978676311391527086486408075125502602189692469169666056811249703578710158835585089519282423793836968233473615512621217320863581683426158746953188963166135387605848247612770451737422856661756196034638577908910722258977641713133374511311335607706730314792245696689952352770203541634737037490664876933436848122878294174131571580836002610962057797350126799451786248351727034752901238192034910077519664296503940311191734595320228860442829118465643198449406019795207142014302887396891645361838274549470341773698290378303193137893329014570224013811895729052194409685714439408756349782490282744749809861596932032493486718315017181765208618422969992833872346482442052858716134514394028254764393269154066815206467160152742420418786031012418491085756548719309855391318023540087152294372113315689006071884768237324159155848017678228790257150805970651100484493174864505771632877081648319662077074827664857462455106916543354428633072102782513116689099837665069285624192590803383879885609210646418754227267115796382915307827723610399533559891127408447960583548533720380982925731320807195766056219927700750961272517532698359207725051053172888740792367405439957681033845403976183275105892497975336123339776390806070196432612642152949682796699352189616665498245185514091728789710571911884902771460186773749329227909813232830970684567967858550970450445728582752170876760836225130052897200852322093916801762523766036621363177585971128094257285065207908981838655885261601043292541387786678948074649143768162936783070823336013215270327465371133874820604112870798966828911519211059866553397248618604903087514110149534880077788368837567343425861329165636540192591701930109666281227586824267678859320320255541750199068461975528320154492440933256802577857789913340339333481193654922698839031067771511501957818122037175923098632484638933518462321605856687013439612252858121685905576004697647633125103765848469015733722515188617206110068226088303846580305804293998432315013417387489922281514943517639989170335453236952268086733571634515333909254017510140824529891122555729887121940185734054834385574235637569858483861603161851862087935832493655263470240548915187579010989711900556451851672576409762431865628341097072519529517874379567871649340886784521747394919808251837059949663215578841760780997112559432780337976593331289626922470833213308747526673555483363942528167107387842874129092032526263995147929109678638239462828817014162621128647322093921884295270225520550722202594485398837681189549218851365951800980941880729944363191954819097789603936653158766097663482685017489721913795020129985115913309673060980371382819229996298756358664909413270629796364892726043110632469040305100031261949188353835946022248114483695584840476306444174686295351757732830485987021075574877466247374171508020508229557173681016680289976317341876508717200285218186433894008470494488495639497987505459965081063222539669491252464835645692578544086583965140943677688985905450473231261409052272903304557827738060046086591188398279406995529670768775775504511860618610488801670866952194417788152478040146419014867551009567221999386992367995324662737404326800035916591339258647114432234299509416708407824491239797897223558790776894673233750166503413072630357902914858677525688327315177639289974776906679754011899730345215361437547044219274898491497503751176200319760255998419387367638246976973733673814284789600871731523917400976336807695854319701144505391763464634160750050327147868168438982783387583049952079844816887237924002880563154481831476896231603644214173660957078148830536027389378573258250171229185169512811695649331890653608510862322576653234888426480852830025254253687835854406570115656988375151787843204386121902785359428564079096295832801837361510310742226666669778892196974167412137091448555043956044479160228630861759682246869310154622472007359552766128237259407778298783108221382957080501969409435229812648367936014622569620741924579198154610841214660388282353770620430723211010860385536349065711878017413776761051389463370055170342802941286517600554981426303271726626803000979776160665097572387498074967664984268834800317678807560383315405801500280931877829635124935600153074554192425628120053315394391946247294586614307430034456226892510636216811015202444887492919398137601896165772093130811725559533486464412386925634565573895337662940553080264286029117545179039819374898297704452824426647205995054217068315891428980593136625236412720538913910398403117130092645748861933050873386335160684112484536473811744080000148498794499452016864589544955418370070325926932473717574081186506443376856647877881403067948789065255916451119948352956760859665186585294825904429368704207425472396782795928794454644695604767806226936829300057436372273769653318809952354610861512199150871772538268274761521902747695595886175442432628784210125649431174140032108894453931418566994158642539185019979103896297170139319554852894537848548628859548528834645910717153882197518686693461145188877558454601368348182668047814019824940852347179780076173471763894735613544573554102648286240550652872175240270953408182177798663430924666470048398979651521104675807115053694749807066658714813470548455120278319614042986921440389751090196929964315390368445305252014169065348857344354595247764991754569438376922847201286478007313538172987262461151332104125525261633064913601676128628238617844943392132239307918525692869392289242602423884480847522799400842707084007627959134930300373188916753024876094914006244814334272020400869321903937813800310028073318570953421201015696550761012202804194239880977193189066412579067203213295938039240013256582767903761942408535696435915637435649626785164733169184607405245892982853153874666769060282566344868934841303569267440917032431169431495693282629492729749718957240779801576889734892512820704951456958051852589297030806654176064081863749263371792135181959103868555669290718139917753758152228463880729398625695007377300956246929000831829463126698838285380224953897244561289942802900423532231916226641763063230134205389619106547693143109416364150289384568212507574323613720218396369957480809741193393587613971231486781593136464261913991575673305671310669897824852028088216611161384065016613305622615197433870846684738855102402104833371196056649891557133500636380775107363265297372201443420874173936403359524979135188940856457827532221452293490591954262551280786805735287557801950984485131444032080423717358936084279702488342945623452498093069270123852437340608087552382474820029217245514229564226010101407463598485911413345459580586894938105559541610607272469197729154722920849716460280233805161080030640986478424755477378093108281989749765593641799226169053492667303549238038338007829623372269146753895004172962956304734287342884310244912024361403297108367065621325077631490796189344008754676153724648101963316577348009196584411196796248315626325722713286202390812165466499306462418110250075806265846024249865328813676476608516070935293521489354466597461794901882760525651276278136967294914005142452682246033789477917732909938409444151375375342392003067560630575093716084122325069647016965040005792774974375195543903660845232779650210839359187722086080872067029729859120778713488338334198080618033531729880348974858131081961038057611076660498241223365845547134392133476294758882046102256330972279508422825695285624683084972824292643134784694294149131050595076895646918284449558741029914403534195288527157761369961747349127564014958415583519185102772243431542560521401958052296408897023787613562770365558409311965199696998834342866327485857140869214336122097260774305584586833315323182745665851844929141871612835607697552103805901560897925713108943152329034712849987846023824776479289087430067516747742762128642801123938093033869675487251407940499318414858300980817856309309404649256122423118148188953243341109539696773911168780326717359621439504668989883001094256464374650410418722412795400561681344404460785418420007106342194206374724735334595866021405471382844221409111288760229713316730789158769994386941803667801609715558307646955114576911319300094671945641522294829379296948183843596798919807876952244502094373583123186510417357368949835815455823059314261124620462425999441822771703948199596868547677411180137968953379591132436178819118856690818535113626813420655763287870140936685755399398225646147810084000179455176995464571860998767128873952802180243427789850333170168379648795256963913341424083687986817186143979789323473902214977683472041854767790735555856862128527788761815496121185532023170222781852935239943506499401549011765833915876083737828832694335858986070166547126181503747725386472447624969723100210933629598603422124668781573986681830877605083195387306806388918650649080432342910147590126327459504946199953270709603375705269476447926343954231451522424597063464956345409231582496425244714819706451337195000121611284087849107569371945274973354432381762028951416030597436742169415714749525080070767558407949668140263152611361962786595450274336765529126697162766344134958670941421767918321590588022132358237588772699016871266376167228939407890060132500551746499421698505027833649498682534495939598381468448782360427017041119242774137661930368911050679402758060451809593555117317377858004488179156375201812205179346178334543127266480813395592118818689665261356600142883367513487661616442218702073147730380116372117044501876350047901468639842378389284349554225354790849468848046422302129660706996331164896618000706728846977000689638499753452407186037309392603520210835878572652787864757561985445098988319958325019221887125635789518735360953444453658075047115587956957112761783396872684271599804282298389826938506439202174942833970648426301467131620040258523457781961048181171331690313597857367720383993892866748115990429520342010246360272504314361424134262972160010696333732304937433979433624070693897315307761717603332791770397572075787980288176496285854797600005098443724424717900738867518961755479413429738733466271327912512999337133798466754347934441870445313656163599507956362585284131690708346653406166703780121494643545163667963799537725186439465033887497006131813755834054306360678114801204369961930728387146292886023919347636202452652278473954904920117154001311065656368240300152274045188948534285332442129592560213490315979887737147089638000833706048644349478384147679441628070565237295944295753911236894309008500152955659576419667204502053652367282416504715970467931089035645950122782607551322923033270612245337438159814134068315228229480442825798012191400143758888056797552781459650884665605300232979934144150266468402284588141483454396340099161944459104375530127908559414794635803319481207228284201913913783807656096372545599629499573640018912435989139089283896542638747367679296448675337996985177586584497221918105839050391048428029269573071663988351417679413600571351781099100065999194204952583138019258136596376258364158542359892430020469329571942617335670943548547054627494157742724015828112177953836701145280142162847866410857103219635405960893752884763941357235545132721305721797340022124289860956633629292136172969574942672868255813577060520937707882270306706016054857483126991051027038684617645938514981054853299087601091452700436244560515955610125112282306960887445568720388662658413771169969553981217846568989590290894811514519699756912251578841078964431159172984523955778180445286984181548306536091460727195957659874930912486577227222449795196618999096291302663212039565777013733066785052934012066209774195601297379281859817034997914583839478498663965173940304005066682062250188628924326104029119711331924329445217197129784293838497670604158789677997513434458359185118845151381065012928380879133201773819617511848497233843194347285594552632418385016200209532983525897331808344049500670678141509216492954450424439418322820277081026838855976276007467731972534114152049409649746121678318251099139603864693788329939581828350882803321184569747441730372541059676153120268438457018794671142663072989394028768655866343659497478402334401161082776519894218025530940292964726648295328966868381034418041614137434150081176012642599038457087091266692513867608840903322003014072626808309964349479756460768621682653215141743203981050830002004127832694708711140587544338140583166448818551270408131794689564100383182834703816386530003784914911893107357214241125664532481920364069395752468030867129761829109621024514501391058219620031909767476067127510452601096384729756887915247992480643277889633075751754067906519490141446475953413423228055823087672937079657667602044966321980634713068031474006434261556813531662853085491068923848840254417512341475401606902936928516616572327087742841944153925696982422474555491755073845917006919520254932760417666491010504424642992814009764338112615226884521533575995123328783263201157437862202970287593576617019100436682293394812780111192473592118115196883448968966342628842169700725698345421193516897141463794566804194507134916040307267617680686122411916190775089013270797444927091760405309070339597687335853249320868056261718583777755748692352611610937967774625754524313281112626014835769314577270488077217069030758699715944150660868437023913998574270699880400104183826481897034120350329497122443181707300334222956069793658720851421905828235496841377894082705160573698076009364908376659164237670000830131750283102424531633120843063728516743586706445014734057541923061520216634289550568279693347837850952804472359864097579849028971466355682719807009360475391607467748516648662284016572317991317951215575877484462136051715229183715221273021119399815569272594013508233511911241601716424332480265334444285310720792030312498412619538294485364190550474629698173542972326776789285396834191028142627194834531676866933600730674583577301049694347576611425465530381524252970939611590771659047743350861224572078490415120925126849398966957026817623060149438246570388469168008727200129909724008796098447461697621688922717114192203954225012687261329622453045486816203614528342481811234116837471179213556545934147036106228270667901200072994706416329477316605562863504448963871272448709524809618241041896965656029127664722581898402617077508028943554827244044966851397714613524386383979378387882020751274743811674351792417567782803753173906074332587815013385881209756784572002679001012264376643588733127144553304820054982228653701681137453753945132955103489292307327703228318609451676176681068601391742855413215642824180395756605379841164079670190481055741771860221837966061681180179361203172013034644315612397446430623285774938463839950408078044108356530948307343532740038390989840709803718736408294743370955778206367579711409565609917294668229014819041153747567886028347419950776739718033344627808092907841050393336024974811364142356199260429313294695765472516583015545863485920608976323580459262944121158233826846021295167661022541632715982086603055829240450891869877744244554579233928940142210959794105947004822014614073626952475812335396044400877780400121342037175919270325274639105269533186169612825561808442157386055535064370563284735529930331554554983567489948055934288698400921550277579877697962658627994259887003296346192826809360568908335543446347123395248448085386517568248104158054075433554162001259349809544218905118424801750290842271822903731251236816809623473549847456817187825870542841469361662232724813719723727439402135017380913926897781825432634602045952164164931863674891855535041417269718083114348349803461035520318178597203270692706292320037688876598304660557326513338173593357858341781467860498494514551733491232205450165340404988997928862193723880894916313379231602976979534333973723391989103204194626994786775148192304247402739157592999242404653901530705811798675827043971612484706269021330463067591017949147997640732487976395710030473971307775355462365660973191860359854882074079696976456075629968678550016453736902962923169345018435424392440678933515437749367538425369559208862008904238456734923390532461713201389320517805283672744575641562271173196194794000246751659738708755695436928051226165467060569223244544170344952649353037700389601712864794613560699875238361285817295965695843892350813101398244435989913584860250700564213007462248398621215387853281321923457402042811334499188308234608236158806859274802052909072683717589707915065279316215459708791277813435403013294755957939980884941918270028721145638791101525502038795358388601413337947342134402884760592627692744041884039378994287991333373374085241255240799070995450629075554144497098135213683642849278788462590259480430557346539562831630008092496850922728003787034526045875930531492086584017320828146543785519155621503411421282815680055744306212328653278409568743156676401882242090838993669086198256030797430593748511815315308729120713492344734804144698472222102948535761846495002063883962121895255979069387012305002280960266209596611513244326210394016460815481198469816063308551199117976778435100980043355754280505602688767938245149502042221943061526453048379829938302989273758478451557968559396297452641831256908087052619966816192147510318513717758228119748472451514583345356740139796837462653333619872907464976478287811529970034814649429513484640385238576861271698589673997756518056684677558837000138276017117840817229209378971719723488754877326631473127695652890220994473250129762116735784718282875767078829379128165559541823186514975660679350010913835839163440809936077166007519200165644124917894950216063712510644881234343697306384187371600549245101176799391441755068272768261549763569821612067305087539418144300067574675816040256944652900603370681738281610090972734975514009138671555621754027417583615341611803556733097642424471699063839687137472484798942596449061934121366834842435731443246868989071110886884002943573866316734502762482884122468633540541666660242445702301896739002314514796984892198061095715637501139866084741117228373750718238279525130202539302861042891390285365011220411965218717847887447517029337892117802240580582214472845495464647032590054885204774042569902279878363201996433613066731195681348328302646480695512273489756977164080106433201887244506113536690352618599496116357997434050735026685816481767664982679829354672856269467871382759220348899668811265133096616329607577735226877347362786379558698633222657065228262996795426090620515825318450765568723571248512476021985790960954529171499019612154131183531019216741604533807773861163059974787128769997599555106068038488188149273089095534199010081620527254745788233341185063826952447080236307703359589097185000764530992641915213913330183655781788723093856812384530472892915265114143950331098011131495294482977530508079428529185869451661431449208961952727493815111664648720543509417987164363105370067011396660090347935155444179444451845485526337913828247560068738716695757225506818850002897127700219047534282262764507856088182171623226699264366423080085292939222292648687962626315669650580800530331922463765094434529678708251471863328358529572058910028357464279930034358327769152772389436645664366388625821182135276392524183599831102676999151174534366373579775498086304980578185948378989057617412547486671693839232394987422355405539484608172481761395074121238289797248364137324537327471609031290685724979118199629016064212213882425109963288907262041944838649381928503127124828282500188629939032751083535011047235662346169133772024865669284843719339789067446777841585339320682506626904076118490710759506478010500506492993130962921651939612334380031354081289905589967228134584754024069789613340081818969988702852098777030575033634925694247184198874761200241027921444812041222973729106124668022984975721863441285451600497248615467086504043275502409004877643984281708771603680614606384946884749075060227606523123892405422978960533612359666039777039191593574393452411551551811862638128986603866302026118989818462359575154057559996905595515254999280715485675326826458681695199482384288182882538881135241947384838677137883897797975286768572996015711794434989016508500462982961653466946171409077834880205413901426258247997244170469836774616104020998871501748598387271843738022465916356540904920973809163396940484607738581459588608583567255185770130994870945428330116501184679282531212173475274358127326952535206849038165212522270212684823070683793881509648523456797860712487425601661500045787454099188143961923038251352866425294292311359898997424220970973199729138446007251823197706120163709586618298788899135694356034164111460454242725504404808200014311507945389405665326759530995420393719725271537531024252494951260821642657995630550866550395966610497596888198249033815504825885685146055347069596308148264131236901435450058487135425879076018378154047474411754920393134847727045596927951737819796356456271405373373977588513070524583738194712092429535715480619986140457199657417463287957253535224249439400390898147571732723144772864522729882842361633689091149227108662819312137179881978259577324295624713580131333924122064393176911452959907933918363717185264762472199285766218178151692186105020453687414076275588518113832958794006637315003104816640408624698999846234800754710520337423539342318161378879063057271425160996828928826159212791806405949113552626509400681472900806261837896434170880261754858714448362474367062258012534465509901512743589617239975063798190228312610432771507243793704215846403951122861334080681925718293488710906085959031223066495937824232205963404661273987863846217817724985955008050867512118276753084268848394111105130360773465898413060189875857739311815807931413920056426078173819566955121622297761034061692079952363561706406367246329665737294761223722196087147547049823228573752465395862639804748540741736587511020442499707721316045535966727624845233775501296171508287149527712430781987719974824443664030082621395127942953188872728238535617906064706883306233593441050348692087915354595685972358326858681302636751435754700242546758115195213169007235090676172305723548328725724655606148197186189682425101355766972158486029336545852964743876345819067939058653129078889194972663239821242404649693053745025249183196258892478925059495009883862928715881564607232406281546040860841749373064491929569001285701178379027264948384626189656040033491409027050018572287767663811426571508542892645904886991556483766194565934463020368310718863116961657043064504753614913127612993593068639742173661455701243766270648505692391154341179653068739000044104573039554553437994696963514460558719481523786364936816835530920441912266748025891638814794250743730815930910753828899896382593225333648246591516753470663955308909964553688510329642297763629840566132898308401771246050678392766843700199096657952463869710942280487060825139367376430572864344293830294914119842916095298538442622655542209844284140446884320484295845145374555495456787035012766918100034018322907099937257251085574910712421526198415268377678763128140554969921233534038351531798993726533690851061637633254333450605946093184893279860590447747267847302511081939652273007703003703833585424487947128321357556475624614982044590984355062062928050118275181061634592237353505649893523298628204031449016237690324799648491592946077287427167396155999542555768434061422625757225552410146102166458568653674534849448048465740327244107579970608815517501820158928689699650971884435492653030847998524278400771209563599411026594068926975489956472728718423191067344152548600158853870223122190418507970857799849039016793799676098892643788919900617804413247396188137488491203736773073799243892338160762810027877527100216575765750829691573620412649735095662097294919990998728973294582784344437817915528728658430078137668240611704764710588613959812446316053364245967106053160739271331279227938664259192239656555377303450019569320262271310688247917723123021578204779798709144486323968137973942949728217415963615285811111379008577926241690040864027488274399803369085774466191327123311607508989164257817926369819836994908738148695847908603325412850567449487562094474459029293177741273651409203920062565247660437560050467019936663100659349823484300175775774876125382574624461332275259706239356790609127499415280872639601594295370245762929073470136766684329787936855158953846356430743741878361182022527813389719622541584747138606156431892613769259094374704577012323642465977493378349272362391186172028650271441365047361202672904183048581944861368539759207057935605614938640396536436189425742741351468919613394301288631621901753656423561889063165472124315765834809041173328677888462805540226706868719353186831488268010711801401635292294422196831013259185414657137552174854535204057031726418021498653772882855694419750284735265758213076756680825386474321089482924134043781246531532370411881092031249237084940981398610209838211929666794826249106979726991199211287355374216691562242238280300916199318677561826432539109294381668220878939018750366538131135714721785881671261327680127352215706999968388272422936141640228959292941164586011873345557195856922945932722488979638578374832553679765270783116316501390573976643142459181477826841757127934573888574325782330991401895063352228827467171792583272509519407995436412973723450376263460133315987617497609083470336942416819681029115028154282146689810088328983558708292922844998485281159700985232118330731753049902953056033995761148969710984056025095354834030222114557630122593913480536839429355182606643153923587542902231282116708156405363392843553012980866282370035479832986702958940478481873767542596847476813500972471335802625981248101013507870236286750610592308081277465777425864898336543415309497649459580703864064866493554767748801250819045079128209587163217940251055766985157469052856131688495509387796245834780038898013326140078291546189641237583019008382469338824224284017005759611572554962946794990194914186291698206964316836747248923953299698484672138754158548079266178695651926711866802485060858305882340628634006648509989192247705871664456655940737361084900514003710992703021055990647268472539052318492893091300675064059971110794475002936218235466260560969663575400686033284464052879711336424759931076291668370793594795051733355527243987553826957327558225880949582953893421515493706184054526351038822499677912081322830526208769321046472104250027288573110646314194222222649167172489692721266965063085608160671533837219036980524470948295491644841193288814789588997997191775608179825350495355478356152887487017666362561551190293255214383798425842852061032552063341300548923354415387863414401115032543369635527420953031135807679526086687318620089075101029523672284490956036033144674068727234813982949348597107695130471538356553880127368422446949691903480748127699263895580234370240085842545593480726066709833772604153952985783368762778943008682119890195481240602606391361745180946450546688603666327255902683245421806252659601325175271350876776580977595933267728029632975288689418368952657852473751074531802710219097871697373982844291885487681852080768329654251498236325888298580038955912535346331280271816217650377228869926386828495236024221621388584023081456179740590673202122244093582816117263450967047009627668683694443146804294377827351660726780736939803899324263530375979890614496318452515010225232293967208852125112768095278123816172366979338723612779509190739170048925811043848384730981362619874830981655851509195108579678496230322331152918747658957382404161051336096055171618567885335640895108895796858663511090017641262119593688528068471475673330986944801592853017241624534516731183909416616858172312065251180965972839873924170610926858703672160678197344375009037834608283419441468123389398246479068826509033247673373441971178635397628676281202419800045733879468579402900399535467144367383415801863022118320685851306360254285145545744818502999360895062754332494227513160297513076061538891084003601772537530877837638846515696470295126232922355482848613882609922853838959250630497522863481405444216603600439758283917388073973971545881052837078713864883407454607367476589728306626947229528681046902300501277027874933278936427353549910952513703634365658341062299247140893734027597075328508207649102530185537822582579042325791596351262611489340990317132861986686659601235491973195345452456693507737804696942901192555127740657680048504363190369571089086688244524054426158218133399419747413460485210979590601370912118976091022386392255146206780057960621774009661621972670935975300597598211009851922294910959665783039224081642705206413199970363784838723211312004636130164202154209972165209177848512447190410825653028340034632871350460732837722410249236130212604025264951334621115179618324273476157237757240728792214864340422183488976745555352490707586228709811761377890739829047263156148503560062183157172929110611400812295104486641919573063388025381158236456162099557220572202168247920807476579503630705158443239202321880140751162696123506940481861154999642074464151620946971667289941718442992221364982125202505813690050299607960954341554184178452133490975864679188671134575185419175229353172423134544540724795224632593549757662916486525456767670216823792991239913651595784315050900228251055958998833921053225972042066605224900529726669172754398808416760962789178657354050282019625521125691877627557623242697767605975150170658555125900101413976825614732650174051771259774946656250421170440201452184148370781087662641683689506051948209321080019359530972794348542280796459405219979053450089329521998112850672331673428371827262563520934721059619102160601955412140527653436153214596045235812212458355776726786007910818432297330819621171645102713355951482006838841543711830106527076231991139416228981670086183705811828561778874851172502385979166716693662741027585603361843040014434176324838317823564846820543524744872866613436189765134943468248982698769582643284919048757493837269781387520655732682375790412554566316933491590000545181262291794620789888038736400533207037002590540949967274263109666321759404317245622304209610843081023408898030548590552139752008162133979479090754528210174307873592919575604983889498795536582500254538692331752918498234635760525944182221279786489620029873172568666112595005344651848036479143201168173534384773512703413666627828239164151446408273708083185188315042398602545481979932197852211742667394447209348404955768259390365385743144590522794004640637171734707629625896426815636881505472809110874823904854427980287675809849623806130252043119610433626175107297845226741398657286118778557795434789415015089766854638203124175775919564876605247467758529854741921433188848688429816208025165373643789966043384922325836995822075072497659185226621573839551480745431334211962868161441293955709923633413822160749238949584878122341371124156600355357135848897774097404328335727477102897126027055594258257159965401126484566942406261271480586276241720336947812757890991958498275783210184700580660590918823139067023602547515288867113697887740533547216367870412586404461210889071509189882395777723770624263963497126918259934271515817069735137678826364993336828175969906755595506722725134958171849456555955788060926310714809912023463907748596731496213996004168201767928272057536002892952588872333472573029802073096811519859937086161814897604887588488543334973398262816084068037247491326938069488822827777636022648456437206315196658853323829024364269311910134101320584366717169975897550101625324601080447200100147715422718474562317909630038513363556721291488085240822198246038660802177771127215784658663178310005315743641546586425979036525181436280836101138116108478616364637589608670883100628959381084866416669020204293243647999369466200323253816706773978387260948511290274736728488808848010332309898054883113946685334803175988031182234448447804331678500732889675559104929845571606838028778690622999459362015782037046426681561824845622521251799454959632575633456585110522735935013811203522956583489960314315020006814097759694703695765716672565081693677103794374476205060852906848655909501321745123413993185902075585710190948321659100658259293405525524077741773514868294119833860151464611556064186830087618440471547668891814171329811187525664702979315746195141832678450149406629219013588463403186860251635466519567924943012710008759097677030553807000440910570184588670928754997775278348160172103082722975144967190248080121248370196767001363967414143142892676592814656363494034493502074263202112422409964617909905169010424874369999012634982775359633824222513372435992482795815306586820591791202851203485833878332199392772367945529016311754863325111260079308316156604467449583018958483758718743530592025019979629336182101614389013547569690158477519924368507827031042790557151618454383738304613342613011812321143586446876668068078398587153448030844540137950052382713597140113103188324254405681006627725188284529068469908795255993173365239514369882152155779742560320913572101494639436742998220251855318136286689860221615099513253934830428500821332166707783505804134577641280563889616859776034623851472429263492510743668579625572547526574033598483288215548782153607416258767310340702444772522643757983888494888237943871197759315072871804839756034951868536412778321657464115481451300481936430527157499998812655429556567538432815414773291615319633916057491675301321110896588352365980929545596987474372678882854442493832550241304585881405553509524027014568246232196314770886942653921908761221096055787048460740187040843721852294097773920536355219064430727274479625232861862743584348436932685905739829664710318973940906609245156721271269397518053351493753095132942942449022335476004264979193574490176402770892583333445404502432372565514258075746086359028505125259949376787633321661534121628142163591940604959283692583413307554077221359858251277254113522284808821941036385818906205470329856832602149819110294169785393483686303083375127264136224816661737157973882937879603177738478046834118206898357359244200486052892887639290279178598077053803360454230630268802196528413730126949206473183946595857282829780171116380360362980982456355332893350136700731565096389320608617038290914818023259939040189910981771921268539167198770163887274487309321924686069700493688680328022053235515633425445421402843467002841689869393118884323221359406423712752098173677525789532433500879691920714764419922849560415887082659390745516577789129931292636475936319792992270642199035957705299527941216965001875970347171107881999921880104494887135834706443190592979652636474059070897258987437890524747826484137363652504925168752184671131772151144330200901436425501057157867802819716791716595523775671489690943794713052729535508725953247025763007989914027745765109295868318744257991612845313043715206862570709099969591950669921110135241660510763318098244475113120686107982645300760689541555350709593582915077207080248927379232005258869815077191760558113889287440637555571529318985322235411646521560574569380122359160411696770010995366892931548563036829907547455289828447997591536233318362688162832386755909731933748008617610434641990660358164432593918462467370456515853393358223770588634385627350923888844555824371058435093065137797614674729085548803281324469277547201133024768318262069587374126081930116706465605282052924794808120179093220816455444288676175880041005315116455345040872915892919618225765091566342729572509434806248512579759375390132254183696186587227699474292955557213053104500232811926260564531846872295101676477628021981720660572530175679817233907702020220427962215488011901930927490464040226885918775380539649955307568830838378113665222560258780291346964506049550701562149702349691076144637603805548085223373949858125399372964855966413667479216758004170695027554649388872682141505784946193383765999801412781881515170827223683120760789145683920537062682702276065917886000633059868844617939303095878699515925276137300969617836189605591429104248014988061286938770337551248416779854824502966771894169790267763907215000381396377600419550552566989960640476969706880018183096477521275492880064228328679827901865817689987728413720359728941241155080656635638928456962656766013922527605520812946518302563562262101533721013082811847458710346349230494558993582705934781471685318776143732433958019626934156142850476354714019908214304689284360157584904384222748700217977198792643299793918253564960089394943475673664875581678088130212347097151142003896683783566268897294934029617822221522730605286355348693285294166086032175083259233099822866032688384517348849238550785635204322594712043173103597342794230241310783358667516591181827179266627306024906461127102106086035504022688762175514756966980738798921705267158364692116449482958409562270273949601857693194225015107039806165548350893412535975423171160345822728692884075020058895551362723865760454221330324908564461284115679052925517632993808528114418548790553710223371653095341306431340867521251449194520859846627422320467969468301615465458379252076996070492784364526350458290672624510700175711746106658573302658371518364642438517470353331971221603094024709840552556309049222253662840761610681765640584692502930151317880830709721554419739373237210623199469028789028953420830319590197926058734565272301573211501989415646427134859474281516733285262766054691199538397422326486462918830188432901730609845253049212136351442513607056037278689474565311796533662034505983263882561316422821147906300637269733898495070874687462385793884119614684443108063070699011270546554286377006394028815132870756672562917053220251886990952284993844078218189584737677671521666198748478034805109849989856196710712004063277375547307893885237801066296689558773172292014514051723015613635923091661055582174398474177317315202015140971427580234198894131614818941120098946418476904816451241227211489113665162857540641834463968380737636056080497274604023596564572234798865801473706161066487510165097468062429943196725643943800753330919021106225686475545127212949688885975831429286937927053861972924227042764630864242761977774856306777099758669361857461910194560666641785055352113164064248665463830135533567140341635772022561221556616193134111431876005434913984943080491826929080688767803365798752616159269170899772006145219893316412107351361476535852594191854787016603580519605938975147860355189847130988655223251484568447403533715354576076694582373720396675842957851407451609982301517180301643135581637038125700717128757421704506171387907112265814856157028562111772358400160717983203249439057325592160590071440790553234818144429139751297639514143497904714773657377176746154884781902411627123043784796400384423590221393166298353468194560765232362469522260849068562164876013825713087886108568906169100616319812338781632535199809903688745620446526861954117718078882134919767920119036198825624561725123854451512258739722753915514593529078154218839325049480152829507846287277962362491876421329924359404428362591419645435267194728400241215523865937372376557861285043012178632469397423950057325536576838893143874007540900179816142085083944621466261118114204385276376801847170244368198639355415304992383486256314657210926509531139058958394487158373425448125327837208201298767890848534442423168596963041151888680302925236386048326784923457600757911386049632519558454786358653204991701124279451156797693375553773994663326408732621013590175688844417025462352495031186934710727803389747619753168072824484750097364360474605785037930947981828447376022864843802127578849841363875983246600654008423928515504524665911212892042883227938415011089558671790240543578199067730606330012221718756852760683374983283106110728579889732644388240622861383657049176301612948955905691904367094841727058253137372327358025559400933045503391122419013554674397037027182866117867442735198537969011402694196195386985103639655974532874843696625958891607844435475132267326591688318088187640058593466057295778539255917632967733770139640822158855863242873214053252365382079496004781253215517985740820354247678888410496669803477219130866651674268907953516714713783019488461869063686858541958241769460720771408054654873083803589808710745070540129833784657795474568565577737976627682253880200002199779233048899337857109459364595909465844888635507114946576643530585222249554593788006253988742202938216088712886178898855279275010939301644394574423446406747184582063672774827440075808724591875501655228849844494221735029143993797400158488117075661380533346022060993027184928179345967834841654805798182599388787475895536068207480965813307464970975511816564700632336880244468922596381332961428008115192840346778262891523887578924180770811794412682655697617579148954046747063284886432424792325857172839890403640337455372937619104664631427311703777803016699739718693562029121329496389181572588865374275686170399683593293875478657308977890189823727465231848722515376979214480792437797744410307655774433754140457115172633767981408618370995888718889504395836765842137589811790071025056666772869575552028183162651052234918917072872185941130445938385450066893771115564087061650399532715696641458696536056044015504039330682651659362400327672182750766599606270811051248785455559302105861676516041724910325079988856744943473082714576325635824773648882575862236914910675741414845760141820027093714498313092910255728582664026556830525797245408934702023320896292013427884297696725736094682309434891604067083619017871188961360637700547591227847143033890322947936970691160889927788614748558263473540347513802399847814054923843806334551289985129112598981659428588160064603982089429744664009608420376677235542501601868717925051646770753658455242703067692496345509995794152993641218717026686556404118093158928650072909766051508126621482110999864064007043881977734314673732662462848433294163282664591330981256200086254594386171995948207868222865048273669585609013959996704825187224259116127927565697616404803334756056558595694654327205507733254923008769910182894149081248682229448979548471593323800955131338547972831884543412675654899630522762392669868999890066193512793163309182032140471125512549925436760188216981152294823267271642565437813736519356581687824451952666977363849330013794851942711599119165843959559205719922917326507897583741284806371624006274003010964876847783720685271820082928994781822980842088040788675406300480121296684944304930449822128694441991826882425633908616994658248926982122182919535351750717284679968483685478755266896581232816973149316387751854618844600105925707431775966497221863372365196812875458853615826249799171160671382270587937926170072667396398623381219654621071102239032482685362743563377591842223895735775576043514139740532298775467550385405357952705052210234817369116341965800832869833229448491012221950386810299725782849713667788057002950710612566130000888416827678292473801548646041117550967403707084359165868020216961207741380636302360146038091127839384340022547655927556854061044657785320795393448962112291912066051041105657776477658940186556364971440421352084827034074384037325687186952740705274317583661710759301557397012766806342831116001526182057922495054611841509339617920145321098647690442051860799619710771797554295100854541079787716878573240333308812455735988411604826391715092320070823928683348590027648409589132944619091624513287409517405156328286667901598118681176940831986808810766766642883528080878060274380277856023541009906735847196393601738060763910757590203586245136694733228601249974463680189048406344651058998256225923264159053094881392234039802865913289384162519082639358289984552831732095079986879878526074157212471184974158090448086543381056748066904368324867815112656383387173152341156178608089272142135036040600265431229570028381658570272782487604389064774869666851165193951351619153791478719778032981338840000030827712410731806806854825199752610991672604964625413331421691013064021268438610839971073071368858549009778656159834437340603932032408544645849243879746046724065954692870458902553578656544828664629406643642748366476371337573707499576986256406375306356419097989332601432967136536572674593146542204917375155199077070330109775090803419646311412812479068173553255315214946680112739692597523449391970493238558471781831748874050556137471405504843496672204038386329574557409772667462810048130253394982620530206677641589847791431779586727329749782221497218782823999913375367267054681667971879145861008384971718558069386848273874761362499668676297809172454675392268065346716013068024230356183648031196067906050914147259985657454176755973628385168006420266473782474115235761706302356678028246152381836658827356104048819327751498827801286466734395566382467676873282407724148809307563164743960785031464981779167869395302377241106369281228187359035611272091816628527341948625567849169855905661809596850858165785736801359814950856350068119485893727305337513287205783330464697790546588428352761876095506230285381717739651632643375245137222730318509328072453813168098802798154304452889730413310371629024196757394014632389835225056546101946426564193541733867864153995755829038170189734234560213938011387390270854313339682522648231393502791229601797654596002027782583155494366908964002683961484055059907087966462656278828449031430489048684299341377718076498421303172918714792116314002333326848352913146921014260166935834449130152047493543881901995011627779185201130750301000306722034512524676340816379679393092410538248255604983987982553239041311460516209449143125353411901033421495362841057204307579912607394047975222200036057334073318857866496713383975032291835901638287336459098543594663413609683167034928762350787817210128740738058856259936842075029590194907161841144203811856020934103274673413410754555010415113467492781729101555136552837352289752529785029237251772066739761324976611809084206837470945107631072958291734739763744681197943763652041782087497790375412269247501949339169897568855820055506036647465823944039693494020697792995684643133758095637679216505293815262242410757652402606077564638665259650668207472094245624616534204776979672343194048224603954805190253876163484673244623192843650447746511618732811933970881388197838618250064748979806543288930977673425634360256098216761189202730817443548256539015179545613429845016019628937745840247308678158893340461358906956215871175214537072084825072340771114852785993799704095322454392816224120232471365584001862059760441821773427461430326080212930774973549210451556175894514205281139094476170730804732971882139153219939481269116243470624235753540190295431158562729427158439905502104241106637045504994315117050085834263133123309483192046046853521604708799470833485812793908553911799903320260867455191696344033617427570178795111452161705712458642095088767397128422325775678619356083250734089622913433006204395494244232763684534139145905995693692223385736671796462607562825176733082839965512398379537687873831987118990087787644435672319570707835478965884496289035313150353460450288501411024815596913297665398303424857687086174481638144325511323090695738871100851540152244789039373870057488086967518938866957597122633023412170850322331886674196607883697018807446325699301468423699759712993204696303250398303956293938135783075420131643277166579927993875246348917540479152668288556425423818461031477395402936041938633706528980303761755338916099819086343144278572851561952781744100324346461368162281139453666468351976539249392016901396120193233104116559831483768344630976636214314467266573548770316919718084844503314321939094419111250285867971798724846884841757561644605233697756751037273375158758037873869880923938248132296686161370804637863451658950209218997198489427949377303567927664429446078455939006632481740440711675971115061235790048772806772391595863658543429467734903271479148973222888070658322344367311105598750159991882850688945289140124794415673667031573940744341046135614236435723625758532577904975779077366999162088540702858138529886274495402522895046148622495405288300979563010396901478572200142669692943472536136116826986875986021919520985549154276090634261529858253314767410112463668752483047748061658898576751950680664643721271547084070963259011435514163536109351144964011959962810217615221638670883788737034727606695917200775863673466946253058094887980152435004269174219158597865198249895699657734486480202965062658258773180274364684941530186562944640255952096965245492763863059578100380282182467168906811277857041416186275858619086779274793390548255639282328253081383809482266888919498797869626411809097286878547974287862195915462887185539720132406234090044407306170341301510739114273917311491413058973423637394417694612029000276626158589711065850678264065227969969522362667287713351935447005253298262921037686267310530921741280779436507791038081976034324890629973869797903340254141214863620146737304575265538091412517961334912170233268834639427769683491813215235311763152971511597170753210282772101925151184627851345559108420168451245275038342434360512919481244308987665862629632711760104722419504919675974692948448214608247320259446974759104608183670884934708295262270606068909559312121807849241968910764958749424207747425595574970741326822577529465562080580941262034798282859385752461250911368296764444944241720237573108307345075051956579960237547783206988567270083909800264245589753491227256079139888327076119834032885606391752832563770330731581980615372460086702705968843713628452767506385076466337671287806082548115942783117618426981068392870733924582427964564550858975748285976529692897858413855332942905091846174702785871486284100329866524287590947587534631016427850557235729001570627298614899099740122641851385892290512847564123209645904344064673040652427630536105762494324232841070841867506723186217158807817699418857535957121956546875336302213249751574938908549722946079027828076856682431929693935187118391096680679362817930417511235300588948619124706491464648766543615571373185091827643073282059132769369127433877987382883193200065384990642077060303071713805498887708642572142709731103209865021893815668587883702229431758999546536738879368547749268073794068738816131762932031022444518214460664895477313228411254345370359747941738220800552465045195548678296221828631921964851517831272180054598455335037416900007842532065530826283550278913268383149980977570910583457868423339989565691661493165166163317754092901051376058743719473106677083978587687603123688675349717301864829504837649903591142721778012692078877386153478288026464276604619572674188132895183675349410350339389421620906277466021386693868155061154369645808296189168891580250305748226605936887980513663893105529217426853734503384198581804181330999993467394235142844023081180578191783769810009506917154841590431521672776383450289634298019487991501423673103298502869465620426939734216617329987928781444206873951332090481882906671555231172790909904729314178098525245184828807132556548099400572306366609865911758236956612113789736522699477912937950912604296351327831178038943190595925429365366329448313081675387931943529792971889316216390986180446753109757567241640489645792249663880910976966353710963773828518025330546954578220352070718382094269620666555881658058711614350741878289696721488445904298629373460336014143893565056038042576651231652930984781759512845376535732056471319660584043963309792956091504268603565439434457931893434676843078694748399286593590943894022363336405333332402976395559862723094732930724081981920605750075326878275269673118798704550656358429328828649223889605010880534833525680540189247832702658981834651624411760525364872198078194239610782647577123761973162952820587499369675807734503988217483533504963752214249308362934113493948336259703135905981004652381468753125370153117101084776012701450210601322017019953254638599586791073475216723144501109653858456798847236586921579651313389357527258908002543575187265164976455086318361670074685236340447100584768536885348378873141573091670026430347782519916300211798641333594252812895575251959743654388462684454605720951113494523724849466125712262464061546910335748178895927081411485589710066741481462529165345550449830380094054061183017170758914883939830561479770690009782143446143787673736879921971307571904026661084065805185590802137916944004640859562084858749611405546755462517674526892054263459925297494070342108527463351354804556654203202695620226832070591348695963300822693757354538463765589744576318701795958029869126136800851098340099787136599536356599653420416495315062045228180632113517785152348591697375116880759098310204540509402771483502246042307092469349791556815533438665566255971737011745701897508299055650385575309456280068886409864266273924180502137189108128731540094463501896956675028466080853637007287407851210271790132407188463667309838635855873071864949392974769627976492828675333861091511101272657018624150144501759634328246431016740310128837308868939341083877995095686822630359474358378341400353843387515174397771288180934936474272129083996477631762559677421084145590472777233411078550029808783475462755323440799785731541204012101259551843251399659772181629597571009336103866040808934000881275514393323744711049466119904537545236908571088829322484101638748058971725166838683693454026934291469709130076785286099441278826306292769755788205003327751874999188877592526270755732259333668591845661724840860000967502992245983625810607672159221243282843857848104952893008534574189010349393675358284244110701299930251091279385844419194242781004398470820324593611335075394980154243775895577548295769938654130570308691866906963431309893448249845440529470088876854040152621632079930740799046954821169767842180642723766168776532605978675370723402612206193189956405761969776600593030534673911096140804102575389692040920904599477281568876052415036350494185737530015780948714303587556996204684193792426371277619206801978469144993596174006184366447017786277467395099987792071142422659558998121890567802521754348940628211963605620436284384595692191402467920401252210751750279732433232555932128662993617660738541239043258468472512573107323502074045211505069481580719830949555897826204450360999426705422147748296213432519141558993004084067173418949295650045427173703606710772938584310707602555781288978954359835931782955340250099898742057009106321445440138759724270494936285715271407619343265835342196790713661363648601646400603753448658078194104043258602577188628844693288670292810430997695881077542631210774371541006024823988596460256370589477642159790232723529010211994385622200423122899695459959286808060224647878099404934742233515297970532870681694792155876548525219112156381391956872936401743839488962420958699076195626630306966528447386723542461406920127230324133944264379549939083679928810595552094915206871329742635970598845443916927064012087092077663327827596217504419634198079082793439112786537470586112444967929835307989211774716871966613270342371659301504067823110295114116220456270616859816633164096753632450269899133836819998836169493695997869325488037347078544957233610497165681887080491013546147426523370462156955812367033388055791693502044275524889830788785774146108280983392908572928585220539787473007334814633755267311503916864392962403674995575756117299977653185141994263313155655394476215063262085938849619396902754459650975138880256109144990470950478497294811200466376962684866646542047896772064795960966170328570076905171733203884527301795151853566346969408866571049629891621496173662694809819146120202854078661218855149259841735256849169920725629387938489967142773255702549345682951534648017827950991117336099593354017995668475391337288270463760077793820385846585448975030336284499368955517458836867925490354481200223090147539325093314470259339762974491058085897232238789265375902177438587616601785006766072508262153307442527640279262589915841195383374885700373351549826308124240751599237581379600466814463926174292984243087263554618649294259171996841782780325526760091133932279161425830991529802422663157825377526769083117653694416462915542486688371824332101723389070737403916411977828074118850264460881751938216662898907390225034563474974913410810127605270630107056434623160188003724000295805458034945132656198939289191925595127667147368084182535269065750440573205800408582731317339226703822020347003795575249399802576183630847814271686427190449631591676956450647538794764972365619143747412006624235109327283865411493073784095728813444602214840962852715949293361143662806538130673324851185579297805622786248039154729475080656866606326315268414520220983684570727501963891517895535459577679830411065912083496349840301020683151536686410859788435191191629628815418865345885404703898158335464207047037498539518784923762602088744755910090019121913503003553066397825567132155352408026479732241942879600253227567247965182561284487031599279593583807554147834372966111886125446867088672975215637912676995935203741724796903601548796086955714355941074621436583612212704589070471692976335137862107720428094295114333849568641476622558014092040410124735090875755366346800230309741011461153921183996627696280369723245353068461969259951375883798094855248960853645579586699218457419676429855928426457178886640085274066187355647868418628954275830753419959904685838775219503328451824143585258322874972791861785009667640957675794262131898145997467381697103234509109264403317075308982898102530483038553671068600712886290921072514713779808598604619163413556832637785048598146677448217474310160571813783069986821426175267941095522121820660184399334333198731552180948716600359357922921013105374118427106818684164778691747035499192669700965828501748969227679483587897332615150590740925267708630394656307354797763750908174267866854569576529322526480654645251893746582781734337008995418707830084430406251002595858178328368941319019196869968930552420686494298514540242158263514800194685246836624922329387580529694437872213748511870095487655585655304874701909242247230682674855113523413518008127323049981257218503137195360340509803531990791281875331702271954787331450565322120115775279012935398278824888891883927869294496632688622890800933129587610339169323621561030146751200431349841197391069733319225771787627881115258338435869863778691716550673763901633699724383846056245530009686630108529029581374511669444624265718558823142807742047719693960240962199174307100650520077873186675254826358755815303674014118533072155757871066105059213552318705870608611624483231578690855583223205838728701558628488998921573623296330565818907411908639619550104007059520241388537044101870108845186748402103368677410441577136494036079931724160327765456498371833000555237067613439603895943604423069547419439321456841178179446431411624367595757622770480890937635949591288684727922706438957423797285500296494003768086013297791727175902373518582269703325647839449140845103318509786318573440716611743074075677849835791049928514769757776519339419749378881282196152735592441616150841098301762930354418339123838869813935528394740000516939085432675001788527189421802860017064859483061847032201378131713235007183863664187116428516244667849785125788086282922269843481381367688377582191479743713847692462798276917596245707495125857357550667958950608048349628045693348899019845409449237070859632109645767266572453008892489968422911412265400525271626466025616608184974001715761651414003946249017115134072770261799102917557228215462452375073303685132647628755307315455162291844351258545534967266894199170155546758171458392312552703101009630333942178790211762996162497887747970226210185161471046154720395890444645344867823768767756600587972765007007087948355749978931180327513079370951227070610392706230172573118202125405607238832555941701386587068712737814673866261097797697625576930572370131484752557679159404469963010995487162012750281992140030066236885238625650090534039224296147267154886864925463680556491078301292401367051931552501086040916726417692306487623386168000821775392395138664978653794098339482337142233377557694688403702768383213795970723349993385667433927462669999347911649431580978462654202173650135081392471600324292855577955385322983897762384139758757071546317367829562115681694585964384427189325356766109551177861927689050261649952307498557819298137853541538797812287463902470537872173943211713248913848626958970542407375563622449356157312240290441095676175093225577460674471959626786167050643000927147355091515133622515144203325070111384366548965899353949656053202373171564129620740002886015527194091930245787330992872801143218435036249452441104381671918550323052489062741148374263678790829528974507727534965915710772792733628402280921028599638525756131323566464665484558068597832189463092497548066062005578342958336092345027807677131958150243057762579702134595987036697652648549142149048397000710999040573831143067096036021980456134045683965938255630737599980962501073879898678260605088880494798818141785039900540399357580159762683597388306116357785295426356755452111940074377867224460274629706586515751539307613294950670663018873288422842685587600882263282669648266336743650397334990420750045725279490591495319473866678531635732511154225220829265904290007289592115969824831394891373545046593645845878654773685033653428511111601579738970710819988012812379200371912816194780373277962879711715487013443526080487847912047385612354499341531782108117470134723027188498571376969221509372794092148585421851852332475721147769242147345205132850793114544419249491561248625620912497228358189393540570254140054999039005202503082728823751397167905405304243799160200131030582349106396335918230525179450871355231653280257209953605429540593402816157655958330418335928109417460480902641164871004451561204805467985725827181318520049344584757907278488526126677522466786818823076083886464259622913103784306588347031593424718209082227796427378721070767854881099853209783494563574496800698286654938560502242363151223961431727679825084014053916308278315076099709844098515207171805574744548005260573907263038242955929772970338851037948632113667732580057433422649271183395766806395056441701008523889262517942635274066913676106332996158414781869962627574295326078317272823430388488171283240592254165548290820391110697107496044225671004031678118326407153045384983683772646889675031614649533935850699448214061092295432435897356957313871993321708961085962596828746604848208233197872349162769638005756495708885619031678543194456155583282368590314872166618134131883405000278469713791803715671949362322705124153403845736945697851417498350510150116125760590866923420334935224854361571401893993567243063390611384979337369215768606570683477034433497249995136364911582274736372487999677007535935911659979491701097274423688713709042248779684932830052329367789267806704418703573343376611733691073687014032099768352699255799866870246672522788302031039268452839191568374911549347128577525971713478833588357687939669041207102368978586732721778626550166551585399290029027826842946053821428502666490931500623114542177379447528892801410380480578768420694974706535918399351507692591275590571204016615272460869074801633968204389936620713616589563280164604447443011100496877659317903888084344364009797230400638350065827918723578051669274052671407984852605836602941254220096224152425638021434975466666904980248467125135277849805413329813493278661429299873594812605408657714905920535377242170128971901584948896707357085915458327233244695617901686443170638760143604844929301584005340871730201189532781674921748350611010894194288704687233126191785289652791594539189340679295106900664287764162860112090861270919813253509448616356424047622443372542045851263767493339807742361967992240774217022775445519314469857830545171370976763190305967858139485282188495256653346184198867497751114337070077931467662309569539196095451314132039023894962050762181029722524980514037482622568173963068902222161732580165454974928881252675958853435036097337398116360232177996175322561893442977217107162515996833797635891923588333539923609607527991856487086866809626993627977185506349441724300456769418455342247946685287131621828815367603942796614309534532505778286046968195237112941623953223058252035102821229195292118968627831514395038771999228518763651169347860545258186790196782871259082159245211393509496142671206712665824010690595078208643755853315031601502105463149705595758717671475696793820941650051612190798987869304680506421695873966262853573991735495674984840967871426832811805985940014940199833706639872485153362808763817331398841804362976399561549456619036749101328928296814725793144438089883341067645442783138930258808280381700432848486819312561141250324911023390461507184756996227156415785978308131729541497945246669606153340159602412446506312932871649966919843621989090942359222560636520977407998350707515219623721165372463188928401183545698753027031780184502177313553356527219261150531186426164092997440109005551798329405138019592895303183067436294353209926695688059624187500879028112956709852184384594626334878370913568811253614420093358452125590780569035423696711155238811323369769106875751668805471994717282383473595775598074197982372982164164355986587025849933188633118325290872362178750867629819805797401079185889309913439792665894813667196625187519140465123960024425705408998582083859474253954211730497585822354473870340518415402419948460753283373702280423469435905090312705102326862744852995231274830102326316492949533530895544997995071131470398382230893503161992440436068663929818010828757892008370549842210418243473971481665924893167378339347277312098497892202116126154081034825886195324475766190437921698301201539431430387283890216661291452422123482758477234163445047926495717240375253011264720138808809658088199595794246422930160973611961779269420907757607002487513304278098371405296489933211447650021423076282228344163609688930211739210124862009441167628710920881323818474394689386137720647161833112927531681630753065175266508395370276157970104653617255364960051868319112540572547467070725785800364177499116655338554918457552270764609876240463301809879665442392362873904882408066663405167563109352724114072081070830845052591491824627008916410385056181426190843943677170633273775950857077637533544760917626482210986809397644267608675721389660596432375260624171701225741069726455161333480513911137728409379174339527630451712720921116887836405600775334483775848971631893841585407084387139679224134744460122198404781240601018601715216483726885350210227153873978070424160492089890123624601266474419428231911730371525425847502246461260779200624089541372289765768125408437636862347580825083338335285079099583915017919651400403929885901602788894330073576962279361905482189627493139644940509166451897333560683756879617081360354735044644553668979088044214152939637930273429985676229113753099737224531085743282075804863198386119179702074698563326279099489084974040415957943237586510486918837674659357246856135247934895154997838637059652000935095117380456268022180457284865207077244448971463504321891183815320885798902298639310682009206046424108926655524721624068112329593505243748552886976353358951869623341961425903726820851893761889668377840254176567399841655026643484701946475016578943514486517872458865562950421750263391886020961607179040713470974556581940190419373158508071835960439556377207836342579743697781834171237009608029483044454129106140278663295130859462272225861054483770854915474454172548528758472194024028061287293167224251399094648415935101075480085886531590228023867356301673466858806052428609767436201414442087005173318538627411143051002738611714494320889092157279057222566284535833247576193623101350964892894536221397745852022036539910670125799542802355766333231332010144888606758547002958665514753157642208548102563652849013271325066261969284572205486193650499347203389953291423280816991458147399607950799438351634130887320815004415671545862916201915666436876093886578810023677612645402931688971485444721017640596690872218850705196679065600883228943378949133359559292450745633510178691081317000634660065516285835218862185428263707036648205831311345210766766468655528468127627212121280035300317557368724974270272202341675684241002436316083554534786096573289215337881652942235708007090368477250265289310335236862071904795745909661253876871584298635216758784887830076510267484649950969091647871952075604849886361061583714369301417975915063839563168299800367442257726881987802521864373389231906187643464853329070555914505804354350942728401190736322112900633494072408825247560231454227462470897167116723003657187744219929864418345524685857067434708613131034383466011214671891592112985911433545492091991150931280378459353550623452777160263566288436158979366313878531196133998252521049533593427633699758224636876730866783390955127913385883847121139357375514690469130556427290869100323286868630113146314360020807958176552206787430809072643503882092451210712321002781793008416815156295356705072729819698395189255824958889545441924497640581555345321549317553018717722580342420304081016476619106544243779455000835506830720283680933800116083225755296887219369609835402055811945381661386623369708767736871581085112812695337308407279743325803380844339717839768790399855608212867247775646884605416106791836483502568074934491398842935350585123840389140712540261365983415118187607232586880524188628153906344764590514868927426605248620045727205391516819318743275912934941486132075661158602944850219492160418751995869273564270685831560632787112419216216278422843313049239829096100373715455243007657238850100618852852830223970792987655818017177337971938833151172142522827170896297107329985965975431704617604303676451608559277431071596907745169339048751758463017065963695501541050583858270179980696429626265078310506924989151881882314750369777028446709229456763364713195273129258740094673768138662853692134880962089371623631494774621200773843666611820198925135264873480454308868097961062935007413108448995012091164909735253219253341382225843325398262946446475657575619101234788419197853728576966667168728397329327449334416293291994429040583143501332632572790039297643602492947653872524494359961997474950360508792253342610066329154693661066302764770709869432258539390398240534639305668056058410397702683243426866674764263197984909554928697461969474973586454079389652947888214988927175643662041089007915430357663086201693003415963834527959281876192693011507007574855846881419301004972279891527375777012503781049302031307412729497749085356372379836453070395214529543105756927152400018213010679315564159512489100107848844358150230562871015313391051251063133335842563026543741376237209029284876816360624424927579944165369389381423672678188609179753330450679495749671011934282667590715555580741823797146513482331306657946217346003633866640795307945442633626495433828152982758729626206979508962720031829119681435084347582529986203856701146908909945550112401018189048900975933009992859901840197690043348951787744888395037647975117339668452672880861756626886388094956922032940996640571686968487780438377716392243193111433366969914357600171432614684419737470366012509045990203203802467963185456344970024636086181256180223197816766689287933922854098935677027262120621742847881487812030788919975026083290373775575729294449277651762555865598490551654923793221384403668239804085680960143624629954351347335785445267525274077018155408347862443783749093917940238634772665896459653233989632743184035289651175509779668894134553362625194490040694144804013435154620420253715120992601202546041022049247001119171752306995190799375026023878164907800401797066708191792586360387192759188855054716644993070731863502018137880067836444937830412610291092749193295518874293197767288002262088860641500761370280946664405549787825954634700411010953978517777222011328837524334726074944785255172688594332441497191189101175882809878127170803344564957812739556007504306943264318495274044068102706184395262414130063225649326409618192819972005790238516707537562760607142896832698344416742665724701013730928246088197768806067771324904765211025193761950795634180773763707584531035040682872711341218983239611326940612550480392054035476064138224206445959108236570081071274107168775745053249318033199447344989323019748561742539781712031905730542819696486091554271587464362815856911901904491900460171707049194966658952179390348001359666588342665064092077718354825120569825606370944391044888665426236737380809396676295346557222893907745665363383520379667987428512304902074380721611391057236622803104272812109057876480580133297541954827629252750023798024541502301510368658756983711705039520337830144196208340811327189267271221491148643033205293218303179074650109674303483862085718846553940125484632991371943796910591114494694834488789407152349794243102460908617495349320065964241418636042959628860303235847685250424954862298245212618252312203687728188556571210645842276062029149643995487601275396209548892125250923467303088096193430585174348217148560846753981547402871651459913692974383899954334414190286987129283185320672443496870346495515713948053771079704788028124792277581409445566517249821247956013863006325909049091745178842657967066959444620887085199485095260499171747727516970306251167998748645660810816145477769478332471487066021950427790681661765342920692110708268887616078029924885534092821494897460775470804683791747974937194762662550354008366513888691618967763265811195963758817508124155402030730055114127772795699764763025539168305298749216008921933037231020085640052316353785266492903610433517841765792341106184207563723102601467021190216013932313896792402049027028952489993461142516411028895076074796436019106291738908369783221723955990064303122685052686570595787618549684489992556902590033075557564535846488924223044128011016400755590719887320572352570706862306587718983260601555390334516951710447852313029561713142683476018902151318486139215971885123143378391701640779841742951019992357536727956785455269921787893791021436944528179890757342503256369814567236281427465786470292877481439939796684799919239886735165759269038443878391394187656404458645600707877332120608496805122334339863418009831732415030047744613226168390209153278085327529310838775371578727674254135145883494356282092454187330988815788682252018186568576302554294171301040408942492965430701597262485376106004970145990630502607626458586752070263984224806524855726289079339676618443823855813711623296689779716777484605910597074894294940777002602739947622844507465114907337431867116211651184225676808002503514975531668879852358752828482570773245423556392833752658274194666001601479593538010737230743761571147246381256533162141390338748064574854246205485815141635381628690310718307602873489734005845216212425576459990317957894661165248784922983603211846073272374127910739132602848902718463901315740908612641355256878188103785587311333514897884445005240676159341135670060869470942042591452980959404581153113136945931685813397223346067802611495608925908797546461072142775160221547084933996238713226691265030599145466679522807246993740281749618009583711936475278916580990972475516615508232763727213893389857101347352001051795874027781490938592421692900756792242282426717387260122776083164421637890302982156330230844676451467228255771232606342072819619928093736298954736003090428197063656724051930103428099705882739850250555127132833236701273600371616643872914431730055530751923950863976506670814853509282492301316019515697195437483737120596690399230078543844559688232654566615350086088456988740811763301148741869296041491483738345040702678676802080947921906129452254132433933553037473840764976655393927871621802336785064073213292997006157823962123854930746089401132983665587346925844580678816508659323105990345716012035387269767323075248146850162865586470125795867796616569879258908867636095707087825830935216762794845985680619240526021475871563023694640648800533047437893209468437056494238826902244232301341095549456377448643093161071213714753269093847145076137902154957041063777768055528176339527885225074814396210016202206322315366820541079056433978665008779848224823531929503660703973094652368948583174395598875957536804640325933129307540509932729460485734740035538430555016386221046634478769133264165250630225148329713482529435778958198914400787191486221561183282191875387793223037550354422612107342453514750910977317444864603376178838080837536334992205481703553676760635598099920424636193442916497749523192914369647597729952118410573788852578728754248109851637074249393990829014795199805752432598214349773573283924242762224799458814517290176237719848239870665696273128343481565517478822436665799067745632167558051027800517060886181790418850637869745363026020787576030115693356948592751549601114674135811978797181917526945139150163074113175834866200345315093176891099258896857054948777428454919242783218544007761757047511301390449055261711331640028345448232100049089634557757606751092165651691935627613991085677441155207215958579358499775072252278485432649795962621708727265478816080753962261105761829826665095147591830523969915420305310416256790794479548873687179906336888193172424066407844264948006417338379881729013214113232694246946051174714396663776262244172617967324722735995792091834616510201709119979257491050134491448020046712926608429453494997876413932074456359001900632662568325782921820283218336426755540298404899573172296955205849780217351936835804059373017969625530940209067218208528407539723270996949871034157648168767136047441532042386991902786942352220345358877956872171674056176382165210275035593418827554029167427571441894511843453971628273788911178773210720813014156049212993203181571009978218289624052295496968737441335635106566955961634309823882776032960787893060288355025914255754148795248818378956984119977269776967500117580383153629260270186224339231188927322245588124975598557030977874972731977304865653186337323185503177251395629195821579077235681909216694064100398726771670882378975522638338547918798215330905584315626914266521436067824468111167972353647813925124137886596834876627164355836097511468238147842076022377011041296241777913042814242732925297570726063734390527390171377726150309034337621213178802936898594618288084675483779745210386042420804970957019165345887297192620946261954772980615778349858733637854696455777414744634816129691687722161306055500754975889602864772338678281468749952973632714468723985216041722360303425857855058964231417589685147031964056893589863480942363405236948034971207709260678575451006866702212505764907797752074914824772344540526141472602039796277634672672381867198111278890878997265258468387023885777204438296720359762842980036206104752690581404609760381104636046879319852119998129732120997568807433767735749598443776411240883544907787006087471345013185156914333311732258842256080235574284926349858544986689187813884084100270396669426809780176395037593781069461274751028984301867029301183563190955061463600184677772845989587776378024872156036550295640450260486326052837056307395298317527067854266763128629253502980951269283497572243869399123897621984579350467767061936855461888649855926053270674950661854417903949990845402717027752195975097917537669790439484720993544743662064508879515070973347080260504131365613334960198603353442801762536263640276400917132801812616020408794294282477038364213600030816187869419624378873385263108064600508694756020246577326170275093465493997097072068673062003699926422400312611297871742513440833767118122015960690962942387404756041623854579727586088892320854754576462995145800900103848427189028372228644602922885368326738245074548038388780080186952265952429391426886590395787136808154497059365600490850937203114050046330110951024782692335936378545240137997625761684771600102976416532349347995847110284277024423088030143458803755263266392967850002710178647575459555291440372813586559473473806198112941345141258205176519985736264015651940933675934594571999622698223195508162652828592857066912112397735026460222533262689137941044774073354590561113107325249233082581541462670130373711838202414431541099983162093942119715191242885870165417322204466277633404572665364388679560874254131110521461188026926918346467087827949921564118931367803460209871385945861224844573052898487537342862948419462666826533161883895562570715195741284148138601675867736770474631795785551038479796781029654130827832478681178934955976821730654202760400920262014489432439308600162529695100349238043507385643288769267476588914465294073170708082088885423040401162374186200180259524700529522869070004965991187627359042508633408445876147817211564322057109722403967206419151281578757506632051936160226610849088459351856250896978059683803862650366792002535190950513341568694955259903113482012501358970740088767968407048431071670467422501498230093773366263746858719837312464441614129406749005513713110574977866367353664076172547813727600484380633393935774116039961731106349607042025785111247299987926241690774183427842108909702448828057635774697403499192382957037638748229198215465376461400394470492018062546474337715007930475058255259315492902153573648043096952450255957567772049752845780420995537849472757139534700920647908065086840873062483343039348804555522678949285853687497225247853441366713384769782642275909534917924123589527649884714993416274472418715634609375867137298647404396581196138395010342656937210995029904069008803017720179525856488868585922849941656489448969339600751192359932652139067863270490121610290838237014475390049366586388824204089394392188910254766960500174781952899594571452636095148653348128344308879764721063900013759599445591056167720333166097068106755660898218313749712019817699091937564992045577273834409413819739387818578311536338167944495696367997270591152665973142968351613752735431635621704200400686181941381489418072083217596966606911374651959449304094247741101330077128057259890076707108236810257251872631141502687763212430104024651016886697967150653633761857190025416862866418019255148509351890946118277120286408847328017852541458070064710156810374022100608649255430443264707373446246867365657814046982507551031187308146197864419538803348910459250702828059896653350400316141875967776130055864121104914590252439310591830667470342604676164429796019618873853019633391905548400256858552419070320271494639840223184416460972267796065350606463863767399481731203234355225761882595762459756858608570095831434818226522751416503387787906305001810259107720765005435310883731770712829413419462268233950160426018586705319756534136677377679754461325800673427282079505398178445541169534170623178327470299976856192955482594250667036242830974278704630936231302940766990958017198519764947158204249196069315465527602943739755670201711722178262387864917793280822469634931560318955426418165804223101922924706895568768960284481271763068480069189282984932120073614739020313686166743576196729345192671906158047950622174830059135818735949792014419260339318178981694170602018486508002709616380834316481069347620493650059848340135910254484810329704188481742712414245000025273631730636097068294846675511911379068190622971088605502902575219346026807220308115064660222984722393897482939142477782440381025017043722705283948622894051542819235783046037047013740850977836158184298135976417075152394167498441145508762559035843213421521396435376898036097339766098935240117778502124596210633055320512682045598858403226978145305057568894754673672538504484641001706240466501590369190828044899057295296195139935378893998199725270899403385317249664519183259080901730791459514631828362624570153370881228624271134354159414468037612109651724342436008323433107545549468381701297790411867523491281361186695218897578771474386089538483054817414262837884635239390113174855679114423426098361512463415199731651683366938705455477079211732368883001176705720943420914574038668672880678117557540416773697915340341117131602433998157672169113542991437771065784108020779980210736204730786992700384883578675796538075810179873302757765024330429186665072968669225186756167661846336036883029758800562719927731722124551762483906330392154836606296067514274545015813453562852741428955926154714392885351974627799203562173418778999234279374616257675398555123403186518342280980991249510939979353307427815430252405475180887765263900870011062111004086125454580715294908965641326461021495778659780027964416275929453321100817169774707883036931078937314502943392233472907230207935608101269330331973825270688316150599701877994490312568888162733662381453398105096365877847850056095774730182433105792971013986405602751335467186369723278023495445183395859527546883956905199855309886988688619981976312073387430758539611912803402524793088798498769298541087590518828066678054037368657552702672895604133372545422875048595789491975143114568009109514495721943595923245183095277016952153704974790742443609412724123479859721211161152742833885026994033332681690406708585460121618104943844766278771111141388993383839349835984302804474357860303485300704288005160179331876323672080038720200093258198456962555062027410772840840569529718367777031228393467647706786992817952709683913090735817330605988878206583109490588396872065460710612917824610121029347476247020855075212178881941793658144017376934035888100054222095420974314778170099656452900577614741346139849013760736596633242993366727889099493184558013500140757826485618639533655824607157512574042210133320170868984565096310920457410445794386250481105940498892854452103593655327537982363801349519654641272479922256204622187297863248523894545340348500579944004116427724196442795861282675970496920362728798094996504322968670873526477090996863082429382151574733362285978377396097961883320491548779667680297678504992429342497005039365859907445968278666304181282986573127765025064605085125049817078712831684766084792537798113627563429170014541063524118438757177809142447203470809316613045546766011677178555945736667516850873567813750787839902987546156500903895285994185232666451852870522007932712409587668896691801358184510942898423157674070671842031407757159966261087103856796303935770445177980472477166430395397240802289661451202979591445868780111179296475992155010946058113572145090738375102459480271958798173071755563098290722841741802959042646384329108427715227488590273594164937452855117143636188329819964334174922654303439327996772394780057506465267073040088275794307687998066676913387985767742576503505563519925375923202695754291750700097064682164974687390809032102833395231142516261062663868078451300029469765667147882622141916312017895440462376951995559310807429373810994890662100138773648607422570303057423671131868709512467992477628381566562471655070576375613341476846804317923791874200334675221465918209481182310187089744319030006352471472808192087992485607034969283649526435390691079120141501260979148918342519543766407155999188487537385501774290146114287550411336941097624405901355573499048485286157473395041149522023834768629095332949716521688623279995464050799650778375322543990634641837533978076924497617135713327946727285916216311795958840747538468877170691651283447519340645307108304510642064742074467126269924885330290891417256865219744351152022229100381277367023641765195299678799104990704513793554600299424281416529478309319234966453807421661831152221168674669243508812078109773916894468497796974192505364553165797460887028526429765581091641650434959179528848894658345502152174437995724492718769361883221551403305355970924114368644256537512213501383993193731837267738468357707130584069745075132512682655295176067257430386701228399179156269029079320360923270424589456858039545496594133594026478380483458376136282844264031941369315876843563049194543818152476100656899869447742657862220787546686493436584709967951508901633474843497497852905561513655032738894837339097815977697864595296499753266716289631134067893155205774109740094410322892669025456810151967003335476241166136258947387632002883959386628009868845897543163271761112088601573165271284637576067124970930391351722643588956401115360706411298740990579877339555817780915463441307575406322265253621665131066698856421441303759129727989413421337727106944549721094744491285986543889583629229975105437126306085426211624087313674904426007814001638994480863352019316422944339427753309535238143161562951817109715281073414832212417174908495360814232167489064509644743600322438570468986855569698921764564354576600353737547904735487143897719798242212576175064695144040182302365754345696636985645497099858998530253531408897102902531336547911285269690593949840294198909307540864924263476451653687563290010274413146886734651120879328318011962003191213110115444826339031220584149494720045189316179806510432042412083462473591617742272962769042247175196808787343486944668709161328021012096287089902638123972472242393995776381851676326784424074697724889908137567571081196463571969490107562416149526825307739518977164703021820429370559524073028539173664248603574571879319651517999300060089008932962925758058149866583711331266329629551315609301053124230949039055703854193096666204573059910422387176929999734561856563346631760743274254411127228520556493850280808275242285413094194725129531459884392193472794318159456686950243546653702683294512451544897388780332479382691550982766184003773633303252793837442500365456876940507872070611658615054427892969685505723427059222209647395314267993501409486551080039103379478894978209966917106543276135783290196078286686960024958419308501299735842627264607839353641027526348242035393306918589724159412621408342810023505700865861687712400063030997585462663977094849666278520566778706724543618181394042550419115632127731631662068822749106546878604049891463828016608035451803075698159100022560171520441417472290928291643256675483642272301842099312630575493149963290727848471245108569401408880139426589917647867265945302387612311122330718794044985828465686254510617555269930289170591719711064467561869187456727153715590131225407063282834617437479258562742021236112490031908167810182890380252868221453968655827725469432119337222438830572497130582787776003870337431211130986908675675099570221773259962981042291151113065583599501617798911920186229430819569252322666983735926333530727460822274021046437920735662816606759054273276300543381539563045547710167714878591188110447751291644108051426151697425313059255480549177936309440497714358775519606538401942063518776854688964106525096929023889579082303672431929240750819732260292887469980595948504023797922263639592461774036454975540347329176393302787679475267152916372446715221098616969264464982127236614291118712485393126631114261945219118462342880785865583866630898945327497786511668664251286961826696705211218969878174617487507443039180445275390235655245017456292255613884270876950570925861205040632150809625191522952544020075509666970203184274590841858897592768348505552449227840841348546443022602929248598626080327517566757498687961782327700314783323634994237776296069581370529922292622408050504078075090117682874263996214616514544445704437438072725853300610152447292662173218984223419408004772081331944468746275766586460707740836640535996042626469458508836199571051491908977935112791991232858782864098565610445089659025144511687568720484079478922885913599810899142106645813135585467715889674567644607542132741608547568523041759401309425184030616656940841722867731885797223312412522623426139493107927455163772784383839316499960303797205227159728096553799980680923630753041689222632672175913150273670350524839721606995848648547694956453240534861918499553237183011344979723669917692295149266496721196897241891637927988269136361277370324490754923267203517125303732914638132884677757142443842892267266524017277988773710190329740539308586235222417505816948222807654542101099799583940881033981261190961256717002634712468554660449751309943446874328567107342644451379413409624124124633299040947020766305394872354919377851220844260937948963770799749914730219217921887504152599022378531820673490533473375115301403481611243433293614291235873655364142620937917371826558221035163345282968499842218416395456017990284403331111317661487087460732207728217525558630281993488668507015380241470654419546754311234547870875495782365104780275739131384894427068701019743696558935531024814380313632700885197906810470217955451234023750440510399943931045304257979315294679471315957639698843746428700818072643368281057060118564871380267447488461663930633003858560336818609293064327567288775513472725674667061936208719358411447773307559046381557767463218170725606114776157854407327217050236731634368164728662895955093688514062906136696126503646737521875050791544434256341226303870749144193355859336149031736698812841640162583018590813694701888814685063842765884654261392720712544329845487748976057345940076546939647057652444781058186513778326047354154471154407063970133047987057194536869986978162393391684846259203257686015395466511625338672234665178158537553424082053776376200867445177546172489650634659780349149379603581103910094853098317524421288060162883882995075099408588007068400212888756437969819425474548751056073883579298832628283655234518444444421885442960754681493890088075012592793344211848715494851228622182519570964778466333981290553848481286445874655869901097486799335077851180529994575640962761420112644007645842192017808655096695305712434878561528147311714746642527462614974942509986564449329484790856757910222523976163629822993020884262041661150330614127141158361829156762192501541960777002989402290564696874817485082127817198769445300101605735542025849037161084278626210605595257829599453309471233694965297052761294981082793652721564425978042322075176555767874485503978049760538535736312322417233142204445587733922563047163628854516742555686916189568416473964049830983316973035626737219324605043095512450085183647215907801874312127320560791598257971131041934428453880362260546980574377502044210559322981899093607562767796914512767344261095571354594790117051965204719633308219475563189033234150270774511176031279187771756343094733740074517181160263574629414686959070689340192087365717900131200977454181353716323622205591414044727931255361588349989121661396221376378384742581143530549920925244484321395127770441752345557311544627303862388483175435438670832836531393834874591569007173984052737029038448751837732782951693629378438478988934873362053973599246767484595402906815494389616604062338846152199720326500668479179964451394686341615608503618251336472897314219491334637210320418243975977748135802382015762141874944600685541293086209622039370806091332663316127199882481316694377884443791530403241467222953702352170590609820765663419393059738654074441087036342123488801215426702265785162773830341863024056114499398782469509792033930048789497506190818615910664157216108430477699809344683660846930256340501344889427215494594502738373529773287150928739434178248171733190993778025034167509489757992947849734398272285728251716991871378242432663559736319583898039343346135795147996054852042986550126477646544804992986463669173905078187397105996050919435706028396286787300326710429296474708645795737704084857696607738043488951083409052636734238204947682691070842409299510060668076216047140258533154904824238067630058506283765428815618420055059800269087966442646010303214313952000860558593531145704402646514420191230568612036673098622845162135788349673116106956387341313746978723768715706331134662033784898804976370065051232579194925248246187136616881588931640059415608437446017017448597721925633899713882232075621809471630188619600037928360701727427535769479372674067695240058244263321702987721226481669717696567080470867916238975365953584172674894797425603384751410247691574896848018462445348477822935246688852412131498109224219606503326741915763969208324880973580894336321527220033717972196759101312447025924146504632612310292465033637510251852088184420777070307581409371081746691867949592133550834727950706949566530203377947212533533759426656694399007921450997883587386208859623882307191664425749477981937296546778410129299053363275036765307346570866378946298859571392052463701556229839546770948381827833960880492639497679757522294969739148917498987795049868867590040533901777651855984792941020062767087085390234645777207471476504833151270363242207792867598683235760546414946294450403406229903062329873620726344436165706160969747262037399432482188860018475023873614463379321686233240690453173251333174761471160008908236853472125925797085163226008918232546919461552069651506043175186607542624924198264388228684568566230536804550242367880712872322065463350445962971421054834258829885951218739355415332582450826815246804994759584510043266533928807231374718414762849339895165645589123271667566437380830016286743443599318566979799073828031157954626580840622493028100617202079927288228963595461122091561406806721163206650701783778468615156956523958612210996394400805222557684576927532324502681320866810222134271050668680703898002197583095830953197955982385153957529603368815998177673678480916900572174563158719511155901231727728221554292019297782058223692727122076481884003113499845846934643297796484302118883210450233945775438530550045010027385373482545889607616729385423645143296487850002454979837435209068960396023410777399305373754061783081987923822312936204443645211360050980244387410271055585625077700675458725311149760084729247721090687031595694537926167820084317935383822109842446936961894251367372656741324058808084878767523063667721713825600318311729952542308139143618604716016027264437233432809096693813563702238159123761600197586293217470645496113190206368755438379761744902340955040134230055369349454540992868935418309348446542181713886834121205214222559252478918755620616029378617293648041857244617539473720563557087717816670872285432697324919750588430300152457649862222571708759554024364065551228558930240155762723532290467850921184237356504046920008847137465594976304880645259755806697779246615127788453932685575657245372592798879570547537177095187951483010117141829426486459662651548756096615571620211946500293957069949401114345336435877745489620327369060982238517619049904026108592580612037385206977309050131156162391545682503174197354275815643839544098473504286075920221659351179441179332824174005823420813757846275445851405055153333464144434049908838641643418068913506890470419677644967628761561218198601267560061929596335205724232490399402498370065845234204634874660736677278686648322483224399890854151753383760111156686372458694014229819005155257018968906110252959894040502386551432283842403037694869430836905214641970404229742223609972605156363673534213532805153148766213464490260894649414056928533454976428808391849842572709679205387483834083752318712749568257515057076567038432680429138158839806841006975302850473189833577744897464782499134855831533163640983787199368873746836247770855559941476808739978212740568328183005376520418684201041354460025051956594599368977621740637870702021167555295028749440513714222940768069277393043601050277332404101201248166112134151936313676063741694220762515090681270481519389094725367363347640027534514888809061328002906054899633550392383490759650640066401196684600274171761356300381015643783850155522705528955879872379598424579105202748550251777531785518326522703575644057475143311866010372037177118627156486803386438888733412332553871894025516849194431258927830659224335812029337869305796149682612116120660581401686376862934109474736478667429934215755500403743037027921475587338971626697346608700003721313315698753764838410777192612605338901110752867865851404922812079715966612641633641341781026563979383200061912362822768725888118017514293696582858481985241895881411079932543133145858902275381954813396818739973708235960196613987819586009995004680276899243623927327922079845313547926869101868460091162676267533075569510417334783376619929354963246616663289138255304555448540889788033582133281248406773437841864231932852473539720611464004268505079352242921701385070925385377848184491998023775905684980205853943974329626164496897331607760535454850957759147302352845864935613380687971705718705742468072743567407554706471574825874984404071712420903161854969221907468391249813435285162396930937636983331977700177484296945252778750740124629765568450234048882491878580559332925481294965920060340889850611002507104644185441508270911990958248274670082381359915582305184683583621458587589767083009045199489419040387651563495489401501468456826552447970958979322118805615622741220690844474340096379512569431199511779511781837060991114480630407801168312559623985839486552237380559444895045413094642770839152952306927637926382871188083434428694237865477973644075368438405764986298982662781225685326572135158921149116527081629176230941585956484684113945864794429851735899620078111015437579963566626553959273896043103006657998173404697541121738714314583715047074473120277676405149816386480570990888371866986664184069087219897083604695032575956868471029009473169876121135557708022156598610391852384725337799566664850169513399935235156132791773189608004202697023122591717176742328092939878922842281638127467314745379185298370564959782815799796215669834438116101226365933040808417743460330872208713447086722937135704906688263718071377988392774670433957422106449398600654964277635576025855883223597185234545406717892774345019360764794870074459358310084273130413631085165632840871739359388420771855185803040110258540203913229908185528280232150881705189651054732299635576545619041205586019579782067232450537019499089419489775786878568201019186046825971095203186943091102589587561388867793636049875816957305069867445267835277597894194013403445646862291247397425366600577646972907813626726644245286885096397669066436118560017391334333711282718248856868234815627563215337663487051173666693552795248276187801941585545193641523387264135579547361413229681847301055489780478719073521891969204990344965076137602782541780756216824350634095101453763769205749542839529114070502931647278297645113084793623191395285533535370398592702148895032211137347341555004712019081692394711389578154633837650309844867130460227361807910220448073560638244167296727116835701458274858663733992675663823277922480295141308789165250440739679677785163241924635330990137827203574653451590267502335994833448502875393335613298579327902185628946643229854435521938144115742938933766334120759362180360925084600282763657813211006617828868823181888742972856239442060460494552578281174309030782439658343190167249367687053404288168220539084849734184905575360332557843444944589846344869856048532857911369747827919731848780746903483457346827692433555258022922091978505005238294567624595069236150705479732001559248122708778348627008407660170840289644796797687469674303159141701674988345154758074121143184955121932977878999050738914248660160138081309057088148345188076604711146732570927206210907353750746129160769196688482659462402061252387938415652010579903139179010561244319380889600709774726902140484918039280121947799739174319361129755946905812686272549111962642454319692694517538248671406726477792027829317099027941355493758489849552465833857213997910984434534381462908640188297519858212649375383427773825034863510118211479120936770521864392343967675903128499640384003160296909090880044274359508791308731963236793329807224451118811778537541619200172347716362238514262513848155489719845355474585094562178750644229207616863805429685406857661531128042287518365069353195045659574850948713538066797991982980850915883256790431955251905756767402433781160122142801632127891845832772209774289595089428783898496029198280356353287770572368790540250213441061382196018265569298180209360219249072134931121489205220261678577548183688932304021919052627271986079097877415166884831090558582412600295089449007424474559472897031406242884603630947731585587408526176920520182920714090735705961189034343862214366998744464340970161326828296949112462693083757302282321104986904973541593564020166128408282275324535157766046211605901983031239494228909111104696076223120829479965538643969657326409258595945782054054361050098361910807182982284633303017379039872168109024427444081485497845931947561736200115528926641207976796747266104946631629130402222930805023019669890332006968953184252838367681772268541064291945965953146253386508966210074226745572657309551806376622654914739757997475282982007400016650338395896697832097957892698116317451097637489117740974617200217091394853381739911289646855920459988984275585077460012254068000662961317615651573250673292421078418686831074254540745447417752330817716887141103873584403572446706686008787388087045568265131184142235835176789929949545120389561338978878852379364298358513104444164507834668761882826123401760921483553281507650861048442331088582203546070059261494900054621125928487012324839124934968524987024994931201442500813063868026205543576115416904335848592491630578031718491657571028427544305662954530883646686920215983766181187003969428970528093175735856929951670202320804394427188847316444304781431459381771205105481856319825482309015181965205761187290777991855591996572113698384423839893993906452604285609493826360258272846321624291554965331039630522762379417379982362033341978986055227681954964499315208295572534953223213991021291516210635480168617277805350395329591636219727693084394180721390893587817566528817104061572337115121934552916366241678666854641402093340597494055414941267871297921853290961520625626902115478741077574512950260545824508350177786800992117243837089424090979125207411353056153918944144682830706665973345692136387860275753949139371603698698290802509982404608937906119303572342319861117683201366655503725945921092736951077284890534635916299907751050286590306699975548388075262054728157064331563812565391076327560579983154031168156991731032978521731837459699728930088121399385867524359899731425741819974959800774591705937400395164278008807689746662874910935956331471877388454097086747690681668327233519321123536573953646964351288725823472437556636478678667710560442143312140286444343410373473247565560563312257585745129718372219860495604236899865048785339559598504029872207167024777507157365560974827410484870774784969097135448383570911233399452411266665665190527700816547400467566190756685553997756753374047763376938020031973099739110002475752689073400211162959519994331381748384934465576728219800129421965022672568111099954761547483499089883128599085463482641707139188754411008412155385376563151794688243730597084871988113522921790309858659797547884376360987162229771746297167346026724253893586997316908963618099613016815215190600841077809406396997038860261660214549766616936933313156689593056825975224755246336995834793563529580659826998314280015776685863060413328556775338733917433153451576978476633847944995708164366427368865745431905300302889826300579111444406221748620287354209791593119467762205860508651457529553658107732318412056645356235980505828693727604755414557345387599299560159218698353858499603703501913488432531871055602227169916347334733234266442687780019988987425136026489302619420318629458598408680128577602625952740296510421702244371046546215921953173680263120233086501615580703569749570035904021162992487334458223323892774646529754136448799793230183615030578939939471458192928204771659633022829105944352831980951245894807382438559866407132131917322795870470148980171512804838347846377926894899233885277309627120627268936977176988025870532366977602147932424091490932975253782194186912062343549254818095702078810255253386669859364289807720599546074975249802322698587648358388230050632228892371735250743090764810587635016260320910470970914833432047250467325207859771465163922675301914384814082035148099114151747246467141630963665252634700656035623281025796226019786295232635288866639118581546279195938187188050620502458565620797287712951903054508327610085686136576913463725843344298025803921728090634595915133409887594245977490856333184918587820759173461297825149642161829776605215431542045174650915592077615947411183336134892152390770894289183769389652280026369608568327451620261423963522817086839270420463256688132151437043993273910503739196397657418900907268404183290353517263257152066202643776960251244810979903825546258279320464504272080019221560808500656633781274041105724160896250115401265118028349653990066837120688417075006597774409118682966120041638677411614601768502948278877066985056813469463289847851683367958216547912965528973984771292900519257227576363748164500462231146507302105091988860112525879488303365201489834991179475390528456225416530643894183903272784364835456140255264327140997547692763567337381185788434751829810660945930410727426487274662999468369388052912991884256274917484146386882065459672373667050635949751845290079988949080885527731778277440594586136417062773476179486608266752478553308737215966162993949931004402986428032359683611468549415866591816164732258688523855182304514074677810279589571546055000143955990872836354285983702145420939665237796935266835030536618509461486034322999770147597593523390232683396093810541381137584410233987972322972474109562585776508175208964841844100996333766689122746034073362647807433768260273008869466845769160289262273759522456097885424865174988596079061775963394771371723307097290559563331395071156973455855331802413194696700667907680132270458710654138080110142431389730943717169378960421261019529104325099030629965751980950180195312224315804197706096771606929462600590596772267157760013888531334688153661403354067853073890463138347835684045362718603452733264833268102055979290642480879922467588430615058270928035144813898150427624555402439289249199330093555730608463238436614078334243139513650177625364069148110529416466639046841702165384649392159838127548131314647694856560096617426527383560728676635654718910902997428280908814373206939932597243957800291041360556645515472777109732964290294068312383128125156384467810051657036351215964126292893051498792995610493766315482403689944452802101238165970158752985458540514361314222395913966253801510433668928964850799482031496528914631358065159517547283458693241546141561919962215757340171007729127794756280008014294006033197145589017833024831689872140160405802089454402855901394251027643321998882084144739379557623677250068225330748781116453117106337059557552522316515004158047603020693131540285253436380107157264928847914505200654495897430878086982612199924399224072439403078723769653330428459718258023920356895600289097781303432091983531295050230491774936511110647372342816253884113707370816677670507363619080452846343636035529300191040124754405146489011668102006517032729746735512962348610861487366935769394236140389920596632789877497567860450201091804501088541644656918448926633342373618680470837148127909034030821461507997956516028699425795770465553072259842986648345853452735840359659794103533143909200207558831176062399496604761785482677896887434000069434524381664757170584082490011940823515121652477716616784567279361305540672384804430781084995538731735688695253638984377092375685406831646639966738475226939494568282714973517633840653206171798087609977852716693072139483204715950009126558475077434325943026907031682330746210224826129469188501392597827672929987500704184120555056543650750455226095726075951775050877531735679463370588057021742118207648356858631984744474715783114206555629970543395700775870379968138733343773627085436073019834761055639223061073549934119577482759986212540427614442768524821188700742243568942046109680256398714082918375535669045190828570848251580271302601916951640506705014215037527027235637459567776433067437475943836944014438476668037731955256417040201508506222822294821981678840418586130447149537171044475052177962789793069732682354565876552706591437038437507316122350706514553397439293089267929807595286653994425263516799345608939712567532049263954573271963226462867228754698321470531025719362048572159855732835622056402697182630499642407115462948504075192864400291500911499370512295062090207309979907435294357568473909550095963590539280747032072606503411252880755953889399725281487167221667473690775663699075402648469711283495688800005653971821383187842105326968278741812291798901010943277466967900356760164519588666818418401311190633649393379322441168020353551374814638227034948614339970309845422432713226828333900551200009053201261356848522824925898058154702185827298700667745838526216739268186000561300212267757871563893329646640155460199150893275110509964029869427409290204961423456799585784810718268568682141983047896968371021332972439824745006189230956312838967843158010612475248177047321637535504959244705186733876110679477683094189210676270993866040102340321086015671782212117418062087726977798984664995603958411230898010410593051020237043797244987016498939337961192633705714778102975958515884815066878439219573387646163898659291965624117206280670862960430953207470101269246614721542231361087852845209809111871201087256314273683929905712483688473273925201190615330278963735350777797486604427053100594369013604074232387552030436270384788468952692142421739937402943518293889928647672711058283423369179368433253312366277785117216388102222657325982797298818500690067412173723452053955782804169694223584626311183872791651346548640490458975120273232274381561371589613919305004172946918997791845615929022299460677060359068085908085445627554076994075306730965275111797365959642877842022553958179943291806653949878595093733820076737433680485349838574646365374437944439470387939255437733472032561063203954236128824072576017789378134187698984416820075239652556680495049580080965120735736213835237522939193198140954410779422813967191434250856891519322989415688553929503440060547591616604400425665147381338956665344322697062580938357751740385848265269267072095061202852135568999342451860452686175379716645286437555875546569211973202935255681370159888390433745434185773822382628816627075178987278636965480854744432899313407390584705458327640311036153501588548568018700155679012679617133203287356752224446240550358150156142730319373116460500012573513439224899110419823820659999609047697290582899367755316655452690191449974443213711157348791993222425479139661239119480094383084613427716408714994415027671908832455577641193473961290985541281797545103401971297487845231246870598376067318921822853457805701678036538214303346291675183386116155129749356237571626568112777307558330098698987426224885913843012156832528983849874561728035401090836819334566661932134003330106787279090494626411382287659730516607432723881660272476294224930538925668489539766649714867184907195448129080943769612872377224721867140880624990485915418039285904682923932147786619188531746260833405712824785509648399852727244839665275152756158124537297154221766508799016341135834512183855736842283431397425157091216313389917550733602537544528521474630177543652292459727008028530710513446669893727651168721773015730202697259768617675425543982766610832921968152059623327017925326711914697690301838734369225282692408666786981128482058078494112636282960948040771550621314296823714454219761589798183434177353531226407289415718487054150917665331241293410027745761913834018190707114972133044664788127174400704555869966543220949518689420587274505054124130696181096251383397472119727157385919955422475392985616895250516899519246447969092342441867478539505280966123521281246493364638376090624713900064110506091649098395444717529088261552906074973001079823324128532498973900012462728126249117490683488958382042324965361306957005408747507849184336395163548658358911976039054540993787475261403919453650394017648869144664331941510374152164733429128712869818191054587444518203384355589972528018409523101713877151266530176713619608554599636109087810867961930014406555613893518099708712308434837096110249828313490685411260130104722762513886073193881691914814904721160847536854510310008443498098290675104075275066390093149932898811601471740793038307554554869161393643862272711662442921524676705377526027365421669057003941674084501912864097684643718138734184540561328339912650932888051963084136638683201721093953173295367586429442595727440266349261778155210493365558286465774192177233870584136246106993233501951476614907672658617285073092238772734005837590351819643856921942483415756111931190526727474299470928454076663926269031187751978634507613514826126895018129338457731490258278910416838298357862864173461284592799936479704648372565942065638724004396747917686412065325391460092848845252718098805696673445739637121374869402832679799878990154313596386091326257551454491316905421397597585912455924936291304114965787992097162716423441666378752854407033286878070939210877386368723183179591070403608265377091416451589959056569248734597569413606885935094429389347948902179350611200809996528675335117376856727520425372051593887743326257109156854252891210451580915790773348025662361040007539349235231759957108166590305846413890292927090523477798380379372964737891996020075156780877505000090432009104625768328142944176231078286056387676128788608344849184724151386391426728715989228419230988960627758869616772584470800315662219271215868982671810753475783487752530091845680385674658496155508649743690479024602271725140744159298093961950311704122718957659195865846942634891110775623406022913115831018641592282236958195487961940321973171164857407722112714351931447777957981293772164262370985238649927241008027563979335428073741328505181429457106264273033436567631422071456031533316474957972001769133210424653148751461257356664706584677227010554121484863057393285971364429881836900207339072090156029467113900850836609442896911210651719219911322047069890640541838594780576544987933170872636308868700545267032442538018733570144954397451293269616939145837730584255787666544546257588929879484663404694302434464012618588169947294407663474716064551944105729897261963508680991563285519356428256869720080841539281859708421900839855713673657707173013300590622287540113457609299853863260310697424709923618246916432803951723879213111273025246350638914563223226793655443288760070275909095262861185854191056593011561155600815857802953221655631582640445396736917223062104006844986907436682408480589288772050817324074388159553685918676847434625952528841586868671930229199204250210225943919004998587407731390501493138986576846196076781789892289425219976607770159617027525226237360593023264016137015694938982956477737246369561914610520272760308930343357232362733786599952470711488731929183512680979617732191962232795728727291071282280114548364609984133734801133721651617473480903953317316164888380531666915957860766183377933906288081202492621089917894240325327037161561037313146396265949208795590184625941701653230106059713435060575824312648984965482525804103918974903989572573580040453552301108485768950166716297482944530412982355683966824028108288573808544139610265337747579811248655257394576664751641653482790871911644192519159917326037594902703520077274142289200360825569432593770180860530238609639127231067695241097593799956381741451563114273449095841277111785178079098629192694382533199376003442885860035640791491071497014349692270977208319377155830052361127262525559381585209337248032645071019315294019585465722758486760933750197870989957444896799216981235723324594663736706749046918911979991216702574289822683893620388270444544854268749795320263910804187756785886544829886413432227266834449179970791470255117673659574750214003718962889321413656656026842265561101433156618913384663229885002408978494461376188876958140178081221456915290917890895908414636638116331904949261742770512898903962217760113218367634393599126097607494186893930820638010872768453979705340352641645038357496666576029548234462799835793453326733064015827835473076171755671971524091835312433368564804288289646058395814189123534933679370003661401653456341344469588791889130519891536686575323296847316171987228433422680031854318910176952986615206159499263143254585452424844440529085478544681602849822911444274051074972263729671240494940617434084365511829813237521659661838400210519698585834344881417210646397708276862182364461457334394762585180268857676202720973524974964598631294429995829297071728474686396858178236386729977094975396840565249286313659840327899497835956032044444741751475179301637260417206342322679200249999151183164966659085656825303091621919262820564119743887246644505752050563524802350824824551074046860059172934586614118397933788186070295580310837194152601716386849661083014912516392292850882347378688652608212994324637058734315138273119026041988421901839415521389184058358524920327687851359034926979473869393620762170431474719651580273670850241467763811484935729065774548882207101731181529729529791391470446233846770975581648857259371586077353871149115452545460143701727770845176989773991959873429646329646598567339956975044659549259144031195470049863912628886142179329755537982973087938224039352807799265756589733496767066228836256985634756521945516009995550981414634046324113322502246153239156782691059483456598927491986476552482977595793941430688253191487138030025431228006241165666577693386390145192736895388063341707978656792204773923247247748089919188289952152697459358890687879890327815185335960954609862896255731173362058960707117302984095715534238413887623308871450772665615597946499061335476708131329285312245706293782703343321978813187205138312657973962767609086427840125073919211286678310582673229673608838663020416303436022803507603110731128734777279064891509537311860691283931705086413338141896786335570900559385982577665373729743946802610605482131814175310346689147449856460592290329665075954688929725081321696108081002874495920795609742468496159964739641874032554455554642680953069893790234562165815108604006144125937338473635235065939584745798380806341974380048787126701406660960939863277258827307198893885080056355512529718962298448012282647736327535298393918648750121524681883773147455483548408737909668422797253714824164526707761110164044547401988716669871775483020885903088609646190009722287018660761622096513079544188197996733250103310692162441272225948391944220741007323791574003351181054151878112269243820684585458866040315149750513806298488481564358036136048615464669791560697496951529142615526257438667770425710613790974350367579022514791066032744782445992843006980743981095144202127701017012475135999092305702951001484701646332429761095198008041335144546034942399694020482112576567299035647052544254658477837895972894435450924063062913772796307419481789376688023218740098657480690209984971504434758918780146521538985736888342271360141244140583854702558131411863983522194105653925466972912961701026316772395660268686722316335390847821132320587898161409346830086435882764604008273196190733520578239918948646034833988413870531484291372934898795495681890908312535955406178674282909397546369144733780580845202925052197097522402143313592644693456191634498153268688326832383137488388508664486232807749424818474461441742295593949816441604743052820313043322449558370463015166657381882332258587417515745742893747384485158557168873215766489976378733415219060985234128507776737608943107046838419486396936494453958498270338333930740270441530445188125348359735664092813881425919132228306635827423017614093179930627911678141699107035404106406873830224471921818825232010697168729281833765584830057963601721190037150793350795546270863527946706148497719139099212387473149676302631962281453306028702455984006252817908750800444330377692417456849820375411933732244861449527000855948475827078186710715886895250797821056848894035447648659072558379160272764237318035089242170878377996795992557591612930462649746784036482016705408125741827371945259362816590810563777449144967735391107732305359962539080043922383001180772872312519984560931621695727550540138223275191212572972859598159060109028637851444194397097018152043698432579398695434291015649786525254190050526257168411074545230417198305207806587603897365621228467969005200090777117656961131364400506437326595243690077291638767615305953256027746365740572124204379244669821559289918305929852608590601226259744920300815367538853391192887509525805600677163597005376775605540196283706312875190365258094489058336987633121879256561001150627121471569790925809368991820905594739362819408024335981431852777079021045879592722623387655410814068167048608461957110547780672445635456785446297798988379442606936758285936156133782955459646999169230978293477390401990333996225616018943138886125489123331126458718612761957325737019273644826528731476777906030191026832227023273036126508189641601097817197271299023215555365048029205446939210590536484167685898558183937754459519408100747994908212200028513551299518357756678979019344350273310349580706844480754158830132416497280050324908985209582647536061579582399470455929992614765785640745839971058787150996904886582150573681639919024940224060777914514091624614584971813628922798353739582863506766375344283517010020393626368457171197586747895125121336342982771289928420599418502304656631949793331577499128334362730403749984525399108527374574682512282652639520394789522543966876624349707231322394040128731830110051287109369593871777456771446755164063299528939150174865142755575638331021128716252653988241521222225726744819181708941914441945300247045671880550529712481078575744166895504420427021985588196691586750634663947218501460604228025971249749359322441273706478529848643062030952553347192052680025463174315932753968590596272319068585410995049913201820926613358164372814965158632421807674133078796291527349067487202096423159760838702106705358121498400800560306940213733634492752834224117312513857728806516094157102880214985489003167946851308187846534882481096071603860368521316681943364604563239751026239062997822292157055936602004552999104185081565728669166750427820067502072641021266020511697070592690122150661613529001016696886352466066962709346808697599871595523225455700164117782560521147951344074444704205605097207623226999911519477043750652389610354884512979367563885121255183801478461435976881319694514998204348767713406376533409926662812849436906898068692799781379381443687705943253383803532896269696081275195943875887482595989465588469644302604326870775732871572439673155880853785802478018467096010706351960657220044280914570730857409532823635672768919709934706058080597586231893722813366650195849107179217551002472626458615360970917395089194954095679020216330031384905232381258208830401736049891186629015004807481623582304520834088836577970856217915651592727913901659616986417286928696261877314398843020240789615128798714657929971118641555910945003329837259401089030206749468728961248477862273165743860251574740410440200972965566930804582927502262756578190373899513184611228481848253432087871240670863930354429986874071738091964580888446163040302145823243478179612701330395458525243784561781643452497964138644390548160465651315284833465448380182561980028200282457350185276133859125589599721733632781547404606496306375057499105219935955933663938067919004998365134948873343248614806650697779395348229360970898545648579667494003677601260557610728070731040807644409821069267848212861446214271001881579582397892226427782645809533976687556266683526000223772186475660648469519792424749534651486403584303152816785658708035831969920203904095399523956551763148079168382027260153800247734066223048504969879992010010303033246651266765230836685892284115566872523078822446298080695596625280278335103995621488733729155590048881952915281586876675781395481391521129135127429364321115442352124165412817877472748688163007757032445428931178895952354900687621291640712261780732236133778284852524523399077176753921260279197870620636321059519597126606530403937433826698612592391681615286459871968700263644227690602714462729399169805431733662802798854214883026252701797060867372112366423162667928954784840132878514685588103552405686253374253149709927241332587442451781945347644923192505815709009475633558965547958682869589781083651667261537123502929029163653157587751245931035062365449052136932767175814569614097370022464493480685202956147624291953315437538306242811385786400412081063431327582863319232121365816379069529283709174522212768691146868634262179087753055431001431272269562703603873058508359418274833007417215114520711191271046642365534772187477632549020398770123782657655367535292199050222443738681870551954173353327918349639345242575906171547755270299545313036624183769976025599888003699740441250572921616423258999683646210254322542001508335238107371712103082000250349671194179995690132733950226079726745632746220969203363605143850454583698346661867351165702138079043712693795551826555536690003843861029893061183538360875105224400844778887491028957192521677570147233229430239630479189342255460752859805502362311120931451561385460811198418893333739662421396517507088206204016745028586279207452533873424232773287608304734037867471077933758987607346603381263287083760208328286196876869201427003959254385302920013680730557543509703099669824145858782228401476377626020181890381979910401897406019164196605472081965989795002620124618989816260911180293428870601902461416164205658731516428091738890539044340468031076167578707928093696861578552800381378416415300242832662721368052553645854799935267282685910207228421662517738168808152148112869581818963496922170240473936815745598787649585309537282171779890341392870784608029623776042476067738679734785881867119340349869025764476366504206219287010057064244111017016841855064340244390402834808704404350441988652693545073293157613544909420771855346909314148043829716231229647200836380179723531279705310824014402025903260312096380773546949970998830473728121253041774137792210406296652159688192290711239269518210560099126040060909155975985891486810140721860921582525483257224161793981789474092992386441713317964092302623338024790761239372539762269120455996707246108563660164891948258382447744477042784291332995495474193931455936220458443296809150996219863233577243485749045615306441321224877457561609826180755469190756816451057817974065129002124712562931152818339714828620222917116947438274509229953150367618898447776127268086003695888118673694528486974281578031727945819691517732353513042673689119953295189538952787425837125407951180403135521814158141561553318863514888579895602661359139158011523561305455900048500867667329491630102796463953841916859016346933534996342230246276501278814638958718485054978975582894491880074572043135223994917327813761839239277958127275596150077615050668379575230952004594623135162714118399005919626319937590962278861427880054468468504409103412131851703409877116552358433242792903168951890338645077463813456613997982034620823565265677248470185913808336076426852814438560693584960161498206095091492230683954079676661315247106593805674408586446889925994868156458798454723369205794315118018479666269752180531661049029990644514691222781430538181867342650019346618250582074682646525159325124831474481068290715462132415953191815453740796021816283438350051064363832855708830355986827117842873926425923163556236344819541107909417270433073560744552022107998448114041914839199451100492780910044923292169458002080769055321154916193608492261079620654261253076810404466538207110868296596553011700127636437757496060500524302920094315500289688844743918108339047122883192835491792505386321033333830987391182874502204848827855811365505090563582208928120359237962912100248164960662172461601353325579009578777570573145084735775337707448279867896585343710770259088155126929254246963797167703123073900601340652244897582539329987902665163249129817387101185285166299461896152887175646876031450048267171173464298635386967765092880941769994308736482681567960821749362041621229355292118571567093645295577365589448500216070121278583291261370330963001176403411757859114871348420084900806305023975758599922362828308213055988723027613614550408121188861911389368863451327003239572610329434838031254739977035519164802247975243385787147001697298738480356957200524509574497097365919089116031619071170475562800936185823851970628041159327441363997935924512383518199064541618707063503690006097045302599961608139016873212667449890983353141412253598294254020654901318034280314705890840559688658832237472075802630235189504729809913742381430149409008750156717716050924232610006542128995748760325177778325374436675400163822908768527051242567687591938602330757984795065041441430427199859069132308782088880363419559005682505640515619579090176643979313442586148936928311668464919466159106373454607230981958877380705806233806178370625518601564725140211653475675954599410280242381995936092072310518669524621234273262540278906933335165454330071420260879464726866354177240212678588868990473690511675599454696691327776342606829478091384843833871281280979325569457130369956298062977949766394767028598983196243339728523254239799932441079120193000105936548783533453671470286016268535540132138582636031611066306048688111605301438862495836210650342308370281414159286858341584520652901258585707219281687648583338056322338443065155013384114633980058064680502127412255872067222819328894737664654448472248410100452383391613680304444853827740691383381013226868288968214718445040354091654381972191973273421230011510211466967550843493347838949722274946330178004706257248652112520879748327818125616356962833741680322403252137459592915603703230387247631584356848471274184237500663723636761644368635401358872430692340254774755594521245447146047708580887746831505777986648117306580844633843194464108873733990222625729476181416471730601403364712317185561443314811134749650852860454993913275619513977650413838315060418184726685904440078158118150724493765511220836662165516533212830052020138985870130101455898075257457045169744912623142720651137509839033335947380870297434232348060971427356921562822412217485027826791395614446016374796850610104443593804238732860005504212885253439412382609703919855366669232525477040760470104187972650061580299117948253028332649749452156957189483166063108244936000167910965704333645669351421925500478159887865128483251958019419856510466596584350361715645627263247937775964988248303408271172974630639534946760519508376473712741899722386012626766008180571727529491062246085597277621449975912017867598826815020068139228664469054352292105279831089053423787944800152429173942159258982140081336776465668888009826760019257842432415267881682874263272159404158532064754583765591965791181219369250718229219531513583020313811699035965403935173643768266363271097165007456077335425620032450141996074088773468043391588558281226268791311371372849401660045020696260542040436996102603133338345536292495285063534132787243258722357613151474444500645673941329672059187180691744405435677569664126047875604404386623510984476630757873582335517379044433232326396261191899353144278284193936286408678057560173375308578079789828851193142275768771055002737269116226805125195198175263333157742666356287641940380645998525654270492200988156184023967789349166517281995255971585772964506961710151901929837447647126327471437304310865301439449517976847967580214188026921629194997665994993358602617383992058815580053755021393599441510216555024303637139437648617424377056560811388917251120616890716871896449426986241777711855455362112602559383409593131096348587833922479087563357851390571643243224676334394596616478440679157480750575728247810894173511140458642270202961687926454415987282433291980140488664331795624399286620588034833983326158081689899225846898061968325857287722634277097186415506571527804557708333669252904745249287116750809372581102755688294507126344508467047222809909470080271880228498467860063852550648911239461696764251173125020986511097575487704807330583206520757825660070882997151380089743591811680395750772982741510659371884953636785647209963470805006825184650578466582948387460549566437210794827656490977669007167455522238166723229036269327996456420075363156446580496153271462656063609122546148012250357329884313513815371220989171268277553077557890501026740790839460310393151634098153087954131707493326499093465038497934192032001407679065728372606642070911177170107422022712058376384537540047653642482331863576494706906697649481792005857208611203974137514498937327092773623978865369927475349579588760755401225363091898167615458251712287596792763764219618981958731111725292923871531667318279201313049098456649554035312228842396635855294055317178286487277603572743301673625239712509280827577677931255396792490753723420664448669823529180480656461322840694450605012284072329588291227349056241444220182380058081880949088655426296399073826422218224009981186579439106336022116430771686056533136876488270926563431202654945119400354567051038244219786804873148393082253257463095521697174715236305178730657749455076154279236395745341114886753841009877710834120320617988848071271695033315559980935511792322316145121711631536803173378106080167867198077838166797985065977299649629495090367895497665411465036099939066172108399465187670374741357180769447419745598205789921196686522833492729105959176967463740248786462603392476932568251315924644514010475383827778624926076916874422199217421527705675220731832399439555795632219071720573848339821957990951111149614650916811670260400874781374122224820786960933369714799178145005692790227523216377664201535865925640188923297104871011080699656854025165975438251326409246600842699369793169353716335503903431759935168993991861830392902413263645319015176675560859190114152342349993265414104289086888840000282842478599570556247042975608905238479004687326353881369322772817188135947488616555502291558594159582742842472638457620813513940781443352905055871041368474426289989692314607342096644189951487395900270446096107072671272748377252154125500124005617389786774243746922989560472272156045678424620136778072664819549653819530918560241297559327811238171644275931730136817017597874093285061873458258029347013569656587124546508731232372476705757123827321774062216722207194602768243842684551229109121801145221796151597762251468017524423591329374069839339354392306852216802423428138252180399422208656902783138285852616046363046692773394880592559162335626988960163183658511233063469803933003663521045807511818074286768772162559444655051472737857207130259958615070011861581121045895301707211642386902820776266300164002939461204608626486792372733738798254227604003137655058392736382837021736583597587987199443341595045567791243638763929829166903351494769808497536229761965281281291495473742365121632489785355839551107016664044161715922702403683728779065558564080387828342787178236583542544801370678075314634470095392341789337556620061190467894191674184537889495158026794624191183048422409561264385157473185638753882567902742023127333198432072259339229037876573251942705948939052170441010092413666482600814706911479860290443063766661043890584126342015704331001016693953339531543691254916452809653815389334151189690153130420130194453024700317999056666914253746661228960978148185490426194008749292597528835840216364509694340604270061332820485100655548563189048660771287017445772507016860165285773953723186247934911227918355014393201374122896518332517120359874568047065309853471907302802116960702998589794968421430549342862512933791662455358918595197557530220448838465673059408980077092354684633025799378903034576333211737103365923562195485646322476859814503688911188513456329262808451397398949736298029028391548678610549410817065133273710933820526608114016944118646863429189547743804580664701796487061947977584887520302310963682167523068683809424198356269405019518125344452705557661090358602933075082733426089654487317970636261373688183575968103438203531738980378342072323814476325166737678941771974862583823720289440985190582213861780140231858481913163294539044832649867097096603153860207631034877680351078526460312293066671181293196581951591202589608840573760900722011638212835432085338586992704762410558332954482387935254182414331763417744433129183447394556599672899297431112157155457923502681935312714720361456593060279914851610069866202704216811547750494165458219525703875978253819880302980211214213562894335756560990367232489529140741122581390714460665746822742752045563109577382941888326037255318164682788846147131205187739005080886492008754571453401618293101536594021103670180813547260510755289512568529385998457006185611951501959791112233483526403580277157620122575638938261202759234118748767608712539193189513394592670888001600238730928488280352396405090969539038720067222154055910822829285659379603669932949007760631362139078677638164726821017772591030256578225160684327867025664951804099666327833011843559742954256161600124783929428823976698525089261180975116624237191309264817069707245722673364551906897821971671598516522647295663532125741637605551640052157667743988008947948387191331348120806671903591547790468315308232702197320515527946061612701949899387629456906728163828921547497534540280948868027097264515895042035518954920542085891151557377681345784911735121410532032088095173865909428590952030477598123425190596274716409632959139322950210540932859700968000201880034398629632782374214435147381306929135185780506181691025574165380581883726589369225998339004894196542213975165525518158933771862552175623768142847401207277065968389570810927313474098306555405923249234594034367462678023086793516330761399415888123609818311602675229939296114729481046101742005938276280373586545521152319293991297466610512411692254698543585229973649992289543192962899593427225652053605988487822538302005675732937237199479482681573119778960167599618787915549352925307502651862596586965820756919773190894885278254642662120018701159243751122038467530732835676506588155253875074608108121263010133766715784557253894175206503545997523197558156179456027850369907541316474313299693204740694449179736877010265355825992120129498131692133250257349821950208237356371873886546705448063444566889776327970480841588405522627554801480357264469114859163848672097654512682006815514251632687772252009154574649129199899530296320405296422228949199543386247403827893694530795334344927067253987560067848549675596283666007144269549626319690717747582554659194829569188573875048280510327539538793118352045918522536347111422825879761182190256655678260968904315023320751249190008836758694911560174633232894892496265614155289409779803826248888084039412388593663079729490785234455151020087703669814951126511933749021984593899751445602993501887019022927658233379339674178258434521732960197664175221388581214563454349463343115251586578116916297228566417768090608717018136851155330826517437072505205608604443354166042347838366123010083426263682213907315556689282882588479177251729739043356973755227405399495885032695696885420764643540705787611652592698990867097699624854835401744851925535847682400188998977500245077848068520391144785256519263345950550325449912582081375707324999989855234223931381876930101451715552656551975390413023473284614328743571995891764739808483483823727258651423620860373184443958514340048800487013601294854100009828214220222392161649117204496743215998602669812316120092054144171242631584684774128468674568379005628146105709829467034959610712746019100708657378392496415690737662958507583116175898243776291882263174892342643835833221548547103523726851960712867350874194234973585154051317399586759280657004748944856720323390898863761485009837742981313088522972245904589359548215644252605504872999863724489948270262437199690605377395755715544056254261978459868111744106811306233294124776360681140722866984786029000996088009253155887244535162545156056792557545153886321181378956781879026945449472380965660649447939334768491321775501452699043557026867586627174401965352047893219452626075676710332212993030506469245608981867581378772913710831224556076134684842371133475212689362753710515684546671763411834113322342320344779310607834128298119576063202347512516871323087364334219474876720460036903018903770194953178744378452268338645806157196233609922543616200464691225365241189561276042252137040089969502379648509826608984618336257229019550237641314919166910340340927567261748018048665868382315157039929873188308494319260478600456057849209462542474947492915418177246111976951336624333975330253369296209145559203608106568806825109227479411953580277675833732077895162700586547639643478319745620902727098932227673848562066600913816391009710894472490553647033863858410227821580527433413841004010802302476222938496037218956511417526765550811900210399653134326628332639112849056424905676034913909809414375451610240339964433398817757189721484625296175053484937620892001287295598201988749132598680536649730766437095342443660047907884781399713173433044124258246830974263787017978383733084592632518373578105326589125868603210402341136116921116343186681706466732569421653459810780702056772685292509413653132858848616052225707133033810921821354564166911920869519080346356383758838478144845314476163463797234125720443484064362733634132900080202230297435337489014801786508057871173031007745739680805640436034190908982765595929011756570096597165857207992118851639835640915509017336293987553726908334184031840903758352162679886127724469944794888697249259394543943836357077960544266599816565078548349713528857232185470479150442872617030603854187605357378146978651392018823875380453788956980461244722610752500742075404887392764117517362980196980206350675439991151960056604918854162184719036694877810274228310282911480783841183219035484921088168386314105732146375425919747520322755540456480828280555167128279091759733779413742633616827806718190659856916691346758011430673048728539024909758096848305439821852210356769170380276289783982209676285586323531162255685054721728611475374917602016042281552078576111090910844961392110411701966496647475278168521092066049949452789409793817431379612122319615784053259207686353382863632843899394667156267806554294261348515461585477816841175929757286944019051635900577869347424938223290543530097776351582919706871474661696361139961116559038829571058832104728379537459036095750516850158585665699780959616307694209689594930051982698422352080858220697187612115099082710185132776629028963098913784761202589879834581446031969496395352648373335061788372679120064574813063165644477524186891102757356806779885490888205245794970923606291452366445015640110490373411033939110630590784798290445552258943828216901198505709545406617180137158430459494858198760276744717639560133749083670837692268925680903599501198629373292684266795188718273574381480468821909013995943665634987952710702285287471007897104300143014658804646419054920047981823441979260503350165407716689713349175754898405075261009300112656932179246979204768794695286288156510222751318798830817662266325906776488531273464521398018777182314667330395500662433289264990634826136085930765210947393651923253699260260863444221932055603682098098786345109202396595251340029086886614678437684834147894050863707047089003138150285835612744352638675621891435367053268019398087938249480095505422728134632940573704051450467715727323462878497653768457565786726867373147830294351285977236164872958043857671709256743470845726474999133816804943006516391764449772074509684308468182300767381784204846464201451938840914685617249113339371892899119629823251480269596196593335395073966463813676074449934587187574041712486241838114667854378516078592551740633585518431664496566660330118665627622768039507295802164284163899444851243803641356061702073471338297402315127154737056965043940907491328109489791388368632305374106075210214228007757668334409623461047436023105430340171164552448701580505223065543055866531855854450796744169361521380508717393215429719157013770005587261130857984041737165962338431667983275217542179537733691019224262499392162404187258607076073405528860249814365100173600756647616608525708761287567666865543604620723872743541400141937366817533828739973284679193725049295029497513467030321241462736297435965513222731644177971755003809090639967596355359215804935654299272576562071345042418941780717977170549140569409981886155263626815193828582040638094445873095385583674031831310788118608096632327156474559205152632483131445403471278207683817488449341303725771116812220685162473677211367724760763759314424568416091924619361768254900403349839002562712874147632239483458167229621447835894306339351590520018084817696886072844487990413967549288624417422930812825351139660186027407823542821534293105447813438963104119003066599936183777013133031854900464104580767672637788519815166064791227199563769056491743100970699052697534816732357263626730829669276365349589585331738652244936704784733699154117185756466044175158348524792952449255107433729107135539381082634490504098589895009189223241891613265626487064662714653790896837227619294270749406284757260451196078950174141977047679978691841550551968337954462415319698457369586583048247194552432679217809739195756262730238087191805755440998873680347142119646794527639746177762202902374399613585798660612750516999624210083591707526677625704342279691247493230964550316216850034244608813904131501076618288576423182942990964448631342279769755880760243893354237846373871680505119161619865959201265055734982322524687966006540056014475305615165707510763210429647630790095945378621831286302904758568258140676451539025892638181350369504635970103479480326306375007749616156197669201446469023187483669028150576671984046010947101928846920786354191893019729574884364852006730845558795256017907553690245293251493977503375869888236256129028739245870914624830449712196155800024423596585317579052918675868853343346188614112865905493674235719107093724692227562380242811905521846672441451210523222360776751237579594797069028140581358400770682902241740179569049249404481489561618647930175799585641434702504253534594436142127192508868137950823857220634103641660786952428325210222251472008252354969442955086765955141290284351042160827431319151899313254472268412776399426201178311547766735147055881953970841555106289373999947766257532908735692371882609681168202773306290046266767167894878134635632018181254396563113081156143674299360492429698586519539622773080632534447838371105969192720296103863340421650540222652078301678829522423407241979769031804586717566364728397711170673806990998002732891421701931539246862148231222519989134591966050385011821556436992929529358051418826362458065974334672198821835036022115131940987222901938550007079175118018368899182849316409185012887473631543296492245882818228174380442156589764228366601007545278280034236808793718059778857518344837213775899470255845622650365691524094875243545112812934328542972907020410298414032760937613127965395685469011014520458964976475243586467287846045547501088438589155154442739141145800365324254074060528328799599820524100096611547737862965753364136966998324108258389933671319328874059106113641296104815444293623274100573015362077955070718937049329081202592604198606229841576356675255941454521166779984587993089675954090165122836925714367585473380896951910040085824148102781818016180196973913125197354980707792693339830539745175612591527930979723384660184894991676803313911400920381202000174744706197417588007543673178041062695446519942920794430297885452539834284759142801599704872399519004251823693841284558807628995357536673339686679392752484257223120826455323494115199999845356142095046571544535396113084930598654416610724503357973196875143884294852696799070270062020227215106286556187781485564222320040151334456668552132380095131421949168230181069624155743857195854519486925658548691087370215062837956811625855543035212393629518558662245228991407326902403192439740560700251676731858282331217572791215533437908615094027441123015256088518330351089876945767031877421109435911683253933859001991238686493736810912436879392830347709781860355529682751610254564686295901393253374897466206304885483846918922761385281157099879195579081362068478732857823944935851174986635451938351896548050661305696773543643029040321354739445014029298593162503586989247823167733048865624551491514631196564451323271448828296747383787927952228870807179905006315446487465355921609946211326032337788196677712309882832855575141185207696283134107643913848774951786432619828371039279245735567151597677711629139827421488601341635189795526290626555035501661846040193460293678644938869039693210312928274201659630599806304045033138088553903869367250859459212364880819158202640853366331657965201717151257044449425210877187004595966437586330454829430527971386833540253951355503738545283026407054785246925423442500290103171809261651062294937647246888110978094474803681605450964351163111041066960515584289129731741666015785633059264218107559231315587643218224798035346124531427478924604001430295183749132305910507671866168817265453738951363115213523521027219434480852856197520361833035857589516501094655311333155980960302817415479350579492167903377172187307504820357243873380818752839890825488554868262396230516750023149821774538466350055207191347212671906409906433219544044062097487106059637987364333578845423684739857964345801190828556383844470646315524192946406641343984980646017166904686491129233001115099474144019150864205456145633880494142007148487671742957805931910869467427339061827336765764231719774491572300334059035349473909112915025602429765669413916235516935262581839061353752176950695684501181535518817793104553672140258547020716871921421945210306369493972119824598943541988015830601795478968357701039330357441841644930270329357101861030124503672984724129561130064171801443061102542884836262594652297254865167423634511503554768801411366176207210870997144777382923649350530405763492805478644873153471436309628733184842591424719428029659411576094627429459666831305641153084494345006563330382008212037601312256166531483540675408416193690461136678153147749568766210140812787406036731701408139730435326243389009661528596808367922424482753235520901188762726297213142652851256715219900076911030506812317970920013096550868887049325907540961478213468684761455236927878198093784512027525356371099935466475913379398914926050070212922378043188236896950871954670170716329357930251940639678065137540697822229896643745753891663618181200033163673818849642844949742550119575379770902167472297411202068477192315136997791323070580514593103538588266656846086443633391080410253848020298435718940113602594601351923419006398540989821385723135579289894842504230050479560338789016639404634580583558304277306245190185130391741541291231441584093636220444794316078620480752825386524940813524592372865716472052917608081270399096310602851542256551869634531927177259661196205668544369355591742759654221544161276763887599827716510586321562071528150725764778557564356300122737106105222365175584788636959957989283777290066051113164077871947895680303221173844712514347646084358838636806440683047354394668776799827778711652531220818700200220775411637832043302558757707643367157252942566993230389943211557082569945241997150264412470766502490195771697606775121999201296857444020081519873661863557894181230534230979398505222880315559307345956768657616333948772709312109387272628231900323276734502637618374032781861211748685019333085285976341070119634718242797977123719402158315113348545992846955368163793702541891899641729080971163064843292091012837820091573382670499624647043417459099776357690480348837140234112836776087330576353000581166240996958971992469127784111591147678512057032096253821794019572853995099470345536112313025639798013475553108394391862754537941091815362264068196789588464781704506439383602280935151684506777441831119896286962485643754364363003739712201615782028295202653449603194963571149940976743066558768730647338670360780322178860158572383477427471361389343713033846390709042035364719295060065576026815942726800340019643271991924265440055457074384339797290660776768747633547534169007805175807381072274381263424733498089177545655604024688276300666556447089637703399534507806371635404708038444448028396775095991366135008383880127020324281810984135332288989340577768002061056208840327108275596904313085578733714167486849358172461896801041139186639040399038232032744868551688011543717812813870984154075540396524081408869640176126586165123729051191520967726492086769619576556727945653021716610081039712864225774475689535332417711587316680631451881114963969766172837976512206229981928048189090268322396462598156981092491874572951138447826510525016455307475854571252980942494413777154772029311441914467197095519366784074692102017246592854772967816030160472897974438075354945859634512614523073622353129526544507735079216277134650572516877666544109503521744094063588149789413856132205661975947463768049123587085227786132453514670625690669841887439245112394710922849492900260315434649062597062175566269498105077897358733366374990557510234274612336358576571253542807337719612522842365764235460038798096490012797100222728600477363785989040317764922076684094290517650104657848756872593809879257344113771609307013901927770153178474310194598454305807733502695749807913213236075519669221509590769162853530504372625136436191366277701442900418280438889125396672274397562415419350680755787016412791192239165930063028291348464262306026011221267294973260966716393160606500209658953745232284649589334663151466708217835023379801304236648221508019255289370669365579838431548532904836304478823913461466077192207122776802191776900468778147629206043521756141018414153915213573738671015758074155673138015391356672641229115427364209313965867656597633978970294808768893424992817601821499989684930119970430923399236333917108789376073034847115198467203739876756550900404777892037946877066878067567227300574656272444945731981169150223205019718321089260457366037420393749402104887777064798278768622890958192283599009092594623984385524808999618306128536094873311562540410718079126452287464073326900604955884934318486517567457026133991111312025824651008294688952889413643255363864571968356709363455094065374325709394567156679323853834308733053267389079378282811649533448087300490980007735777989250210360373644903174287930351976628323752408958317690608525860268418052617670325374955547608212594611144140855850572117894954639435786599455278612220583576172962392445875347809441754858645035730709313889575488658805273091970580824240385451984188444973922260864889093806576608508304074797702930747567063394042413166458384274941026440045081810817344276510556818073209400145054462756619776489960909676050669031431325911522671668669046547352379288753133154201823956887031736336697346855838843283622710286204705594130061272892481208940329131434722097008676781246749563723244958307989103392735413348048716227618229778294450488900389672915897169955500384065537671961412338307769855414904154584823132885763530412863847275234574623709566949035385623878344454478896322379739857067310987510138171053837882452404518569917388635224978124553955380973190872281409965289044039866319363955657552769858144413450184238793201331416285037728300261309595297477203911779816275762934308664799990700423910579108757103105045420371941030049938061935064998484500619998563360840315954701530481949627621868135375392037247469148773815453407643519941937738996519801137909091286376742568547594806898297232506553895827605631634240438313308230612772769952555665789429651495944066345161216722428978579577916803766040505159952791026946419620613070748681078910170906091777446790928092039176920991440188426384712491137206387790831709131168451675089537958378210229309572891195826516634341615640788571783890981835010924561019807635397513123800849235213407177061475935902969143415786501360186795327927439727197070739287420779593189801603669842736242423054978373268590952131957484813928254300237295996022997409738666305729871156735520327412409795088087816956030451119958535156821143402940079146014248716058992996332068726821283556627149252020770737993631596660376458275918899375452055355636145784227222727736372227445112959965865715055395550896733933281934392695358197504545076668643254853840860531254330092898603283727361330698195821287951400787777441957680269769579241851548368469133664780042881834451094763143570431218962433026908892462078178948947216302283608839766827809694707656175022027415332077219601486155748162001608967530034906487416428557109839825449200846078727457500884531159703089134675780155289739642840507670168653484627064006543940532137202089461983202108709764484644107777325207485028442441361878763197243879617903455030796310407281453105695920966611734078706729177248774515548084887137650949092318577850590153151718652598385087852653236137445494755558605079207430365721915867277756862291342713576625016573267880309671510521740819858809346286409297429703519416400295648609911636887139849975646185755377601441576993383027030191632248224805104884187919453374600377599714601110354862508268457798560861428404879478439455653604145061780709695839627398356443883133646002778163667292532827483473526086031434598142038763580839146693666303610376339486316583716574150181080449324904809310046644364674679177354541490678289031279976831595615950188460407294886753160464532946871426914925308533362152826824348577106591219021143960754353886408371123298630402466805118590175084023350661019397397675186190549593166280004676153309333669126119932713020062968628995202346938092682994805522191247334210157934388734103819641299606608444614545856878760183923241513610721853469783147062556546977954772269565044748013144636431877673590587327256244087105142648259116015091349833683746123277286486306193864463287116010539242572215896485729749078374394087385395826866869339920459479627670231203434039527226717726770347722941282168932334907813377128162131181362663294962287598721335222432332944604115874708882063711532734784701633379756961313906993704236607616651532388034821574423845129896300397046530080601605101679930083850903686004456934392590674015672001767563686037278917416602473155715647488327728994479819936743876044332243187197372754286184631141730769103560364601799275681526197148487878108972165511406574046989369440202944271807046257119843762652913742356365213553865383463001180256041776451931289736414195963679018934306694412655596165866653687606116862565051605194828884855537644216408380372513186499360932881045315832629683580871848400094526297611438475490838026450565242216831050096529988159038922075131472118030693242397811826783828969598256750310080132875256842891229036152821282151819147487002284348645254236964542158182414943360975920672826932017996280331046643965317255679057323929817069930673603420791450845286433891470886748056625587022635188749686252279167932075864570268589296414522194341382661120309241937450464194072647614179678068713426960545464912505444349367665141841450071408103291611169703067966498429689029458713438829666017986382397725971958830219018615437296611851797610068043301371154746617834693710809539289618290053677089322364227591295435512030868800596629559484504294994630746344602794360510708039347373762117149370495585110022574229589524512522593182008142557892084280548735941324171861054351043873129365421951124660688108257009382204589625501858114056994513933336416386601654857261828026385796891975000628758658359373533528978881971777623199566698836763618720393558705865355952104450367897717610009121101553934664866676229453963842694150591783103405639494849265853723788114742422248295545372787791505925034631648530451769619877741497742245747281067986263747852705530094347611263880494482724378681973626057835254210583520257513503373473323661760588961968517570294696867641522992272491360738009705262635447142805410910387859023536171509126413249837986825025898636700584723646634392475842230033182671985758970052534244108245039298777856864883493765717903649050458172144257982987492008103939970683286506479225699980587152843496083807714201192866034914360968362166105948504573324369534883851538716322714962341673531270897368711152162634044411008662258165669595009879903383890382550991141541582260442903468082644964781376391987347574811086234608072427464418009316579439372100017838316512337929173021510420747264859370308864291362408221361625480211750838242344562585120051805270362192597723708250702718270439248656575553106243480780081206588969284891751425395349200501896112450920246155779825298752033228240947375964762128931880212135039775502482741104244161347846271144674790975209118905952023822171038925973450769801117462772931025876046720976348089499274157461298448078591457034323498849237873067115330381754338135739545018225982237188876458240341141435226445827037466983392843505444090408706734927072985545016686654251152083636349363787872014324730077446932690256012779849758074081063242221921398603793798327208409950054943813603419590364835501521849096470574695793122526521498517887787247952965570925015721756430014723556204739581404120302875042568151331301587662140565670699029744739049209517438288316493899006489045589004547483961567718985052171892272412261875466921801847275020115946872720841964349967448299297596879992012826131566448416680476886987288516861905417562899369925126845335412706301322414442487042086644195518479437753938128459625246009332425380445056891321918528762802239305053500475545263466107821314974155452694223006761107329024195341072146293106476189715280032548415228112949012551656589850324494373675972958297067376249420866265774273128587803497383191863141263509208323850982587859958169748257203331332109881616938073318475489137179766149711916400615937488164945999292771776224305527616402081939246078677716688687515527744982403960816147620318533311331251775218238876209757805421715556738964024919121697412932749190854952413593878029010234918994759808135990984775788750448847438268109417883858331632962763767278227277870606406143909270520138684928874733657049993491905410195190529625878467365810234950814576105594297285743096264622171906122061495474557731206082514758988569072957806886206291037149777209750905296044697942007199985028817813459482815948483453785602219768050076265934285909479023401453118770728073524392409767283897352671529023379458979259756346004452990562538889677562548337812807592238384416625110496204130329492204127950150863939299407839428796081115071864981434923665371183236027956012179942638401221459105388878944297924011145787952696260461092857244786841003348616024718672044755521766011200486997996276709459734931960219467753650494839845244341613415552676731202886119267739288600188368611999919867746277505416848283857043399534082444411915621055576865186766833996250713205124292304120750260248252011041338292751003785310694882942292963057545375006778116595340588921612893231051643416599886537568612725227318814668132604503929159396211910807336467943474184673789656660758496668651897440342526106974098162282768995007949121810268630308812493513437906383517567291003704586437382349248606777452218243031172201253537163226516102317926765872352586949184628334367164076199192203423381113382555906360204536090818966920821166905402503824681224073953804139383961361174443887816178618832589091096754654393770122614957638911785534932055386851319582042714535383835846825419959501968331123142873454992505822747127379360495273281938427746852249147552721580297970540734366339786362767451754787823523107375802462916199815913641547941095726992141684734668664028097311022804210905957183059309264210648073247202722857808287292205906539959696357842216394822786706892434177793623900559855934640731830340915705160192069506480410214487018673863237148313145580335926689887233469205509041564904837931632949186351978540792868524328062643767032787709828574366796057042772808366183821165578464221986583368446934635587090308319824893532267601773981878929397885051818663197000236205911375572204091166791594169800124253855493958545652260518408690337611861748203181677537002132715624811401362013855113441894686864858832607003313630132384812182371434212349371580062565515319398683613192068269148963827069029201751456138842748651220509484014914131648077643459458936009448830661918423658936727342007437707763874087452810859370681465904384420735212223297435811432892936845263931067894069607618974012880291353633933078701296233393429109298981252107091019511104389562349997917226925068775780087674449324402785724277881951154346788635475250677561333971190542029009929754675015937061255143806654547628450752430294515185419091283792696290324194559247353293234080087334588109674315244370656306432114645876245240657445288790009952789065781148789367248349683797892689093053400340540433089912417771469921478596638734302247985163637585713778747950948605175481628233147183365282300319400506475175763324380531335657237474347880706823044042585515208500113432066982544208036929981338460980658455713796925906756713666035346780613928627001783731881233450465308277433251909998824235440855661244422388031507311051724909069096146112563765677388214434134866560710080764638428872834071494479733479504929470915108253763755254550509966387704466332597746545850091645893628151635165913487052914369805753309589534771288147440103624850630532827219091322155757554560470170894418881965876339324411371391811148278062181204467121163813500396549402584327000011159481924210586918823582120902853414113949679265517302563122487720330859433346878945755804899536141308763627281465504194587180208781103811369642397034203614049577773518111764395542288302883748699678177060065282811603139461870777592569184051074404221953108430205006245734172453260939262742749227916453789947687032375935236305690873057103951382030764565342728705383313492377812980805992147483652341872875023041751950970317599014769520439822817281484861648959284170448028677186707780016945313984426922330512108230941765074653100158459741911752321615311818295672801900209470424553069854620516361658477243308527036494305187764367154854452240765294439669891278990894883480571830779150069636101101524466462248659193148298667236178827183390878611955458298108395679520828697884722737857312071515096238433724980973105722170135291984771979794782601866858705726203295552084680488660911052859226323404749389890380046810744431046920045773785989249051287844261782483434188650042767371064627912263888548738936637780476939317502195138999953676512094541466363013728884862992991970827984385171684570042937777667439096153755504798677686624664969832063919276789679250655622220985640230059666352282943643610314213923993834833851163583856936083230342091314613755264810196532573005756955173021976115103425125992958944263609533791248962882197424501007585238118721955146939825540909064078314650918036192310883814361004060290072487992192625832690397553990404829368615320094220695394803998839956564571620075962549052625366776870597907543233919233344914738758619053281320834062746594655195186689460545084785937218129578058375050022376184027100396895209352892213486115876103946463734419733428244829417207040626819897957247135288949420969730391115659075938644530759360071036258785909028711027461035355468082069870692790543783583838768113237003828121563380780541826504273505467380275155042039561487952639114042217223833636857598724853535307193614185933435815651764452184712333484471179119334992173888547498607273826921629863532942746179325953809755553715383534531259058488533892868379493779982845195442049121773721127203315100681656255782115737681077240413179394967891849068184256032427531907202459221126186434694120681322209721644507591046258182617515409712358961372653830319547307596319889955297923265591251688128601823024483634924502489249014367489695969241348108165401253111392932922795200328590041694656429101400095119210279428083099152924456854288635206245117049894666658877156424378476945962723347877209740731990232430378756875060616734186038031795113866882245890484717124511197859961108968565947045930231107144790693213517512424610906402405747382363864279615510163132341718969596180979014966330091111174052001410003699824175199499899539829176185029651142494348467738369860136407554495394190594502903473579269285366468353369360732637343275611255468542828596247680950253291239528674930052124563672485790896421920415829672849847829545100222365248475086272558106120282371638504564116431444137574920933299689601672584608316956725684399979043113092951388266403746434468979380266029709186259574649076495593572730905709774187136633569849128486937516650952656963692538970878322401064913759528177384267280532360629602326926175438146849377123059490296484322263513613149584855485910690664497154913941208916014143193936033232857683196170811548736458646423918241849878887990727042184096633215745339575436328941585012162255769855938668345274877447761832708539273570504235082622715800471115882590256098140740121534508965351226848223938295030257200410846355480860394348710941064288452855985587120177316799984524364346827231527767846060017317156391983084550243428466296296492435820236005020800219771975775545043921079784968195809875041878771751259512837856847707975321026742429021541929339756190216516561434158776088974871702942678794421586511661014411572544522270601241042618543477582150192483271958049792485076148872797653547112185082710396142289279689772006945055332088647926411422208264052452955040679403028789133182949322666048867547643830943404587423195017449982455927633919828399258912615340150506691720800295178985223153807714901844778637957876138976313720235410860406577137083292642389890628755120743565225296634670410760587923452753028962661316881599775648533403118750003635028093937860142613429859208274394317666676863437221778621130339241846675158280984493363448794607901881658448382330990128056848770306112990247265963591058894405826728715253596909848283747157456968714734141825720141244968224345118489911111814267823654349452057133871017223000676486588138008827174848693961994407696430648720236476129470998131416228581359818844768369878683517645302354513828879027626708479020265636621381321216337171763052928195703060025024773589545671540495458977332068319875061547554538719739227234501331151420274658177519071834868334839162071556751078169817024364443561525581849089544955455267074861910902403380895645065699501384525033487741261411661502301535667563065275642518347630698114360798306758852105506707603669586564644891631624617311281143351234486232482717071741417214322800071111046445824025578232563021766517917183379782348691045451634561915903191678780899764230732023153936250418572445001053184072150963023568690725238825571380014526411482626762828493011170792707037634785182482258169636453247142755373563342017185862614205937587977119471295713593280820000654241948769421002267688472862991841026749836078788989383290277099502331142265869014285738330333397313027047579814083032399183097129898659679274709093786185661623651072711504635401079953851973065258375931693991005886054679888804916183848004973540085071505207068921278529643474202796286800302466265757906850381878486717825246265993404659184553679384334749309622178947470615659296458091970956068243970635519128864578854693694356243736092706019941609615229302048700434313139760891064154935956175717453061943919466268733955694771034731334234997277118366342372345760226424377419611267802165987586647660970238065606427272396952626235668096639737715995741207555206691582252259258008493514577596254069203353822194341513032978530130137227034344200756869712350340339984092479813475001857478631867887700087876106310438915914858489981812090909210005847768025343930027912336299522967184562568612785127001660594205548632462811967740823692270736957146549680155097829682681746091986164936125813279244318269006871297616001005809833409470176838051082640076554132166834021191891160268680352748247031888989732779197080961447511657104796488686910844950878245097093435937427967966324525672683061080615171065880779585916924529572470221030044103478851098546978879531825666680841013241934395424912121242412668878333792567886111835653272351726907914659492855435842938070034983144105234169910445133113035331925495958468611648671114452478607738159288834014278988439453895306428464237770407502075728526751458296229105244366793350070152743699241967993005966982375496072113092805679042976680908011769957319594998163433447799451224226209137638770867606121586572723376614099221811369001194896552182725380996867808703449401949384245051890079588014773935565573952309937161994581506079801827099989461966027085235752927276328700622966572866849047946737370942103116161896713842065198553566728762690978763785474509346166203975584805436201160677097139579269700863161734838770363596557250526289670944911493291125657040673552409859991246910571449158988221861104033787643914003462669684572229613070400829299989743498513707033663743503024246009397173479438815939163499528544708949364225246459867465229757428316632033834075441164482282769567478359191373206379074537368022888090968533537187801217776857717192168173719535325454994597953675199295458906150642218003844182734355913061255581239802142570189262890472330266729525252418607463816041075001627649728198256048131692860150129901062158126071934166527002945684405410432680898779312503513845458873175835049722357707681209016950045210140548503527439767731838067251242091794292849018008493187006045746819359365922165394099837473028301387238907882073060126371674996497399525592441416522394332450582863100281274616944125886911462434072099465220012323678179177855902445462563123988293919017264454258897069512861500129726537741870802127818233592145509081090603880362211319464111849816285471499289768672322871201077082575369611948715575940429211376329078024882787424056494161981568822023685439364411024387388834852068395219920873198656088409078683738771715949805849117773698709884506076594988713799630834722643674408791943081321938946846476272311325175586881929750010384715847425272448729164570508710321935097772686237954314315517971203043592634271568998828042932868034449907922047134132537921255577499912743489769649559024416642647228707820619395949507007300736812949744979735360131890142803094730776949354973537734029829307365773806873731602167496496945083273308478907406960591606536599285512345747457130505452817577377788671229145635504799241684041544148671131595439090696670781162602082294318534242161905432096999781299882136738254962493027749696581843827231732429308868018058614494321825629266177102256034759230356409683137212430435046120238976284280206994805137054362973573122550960889535578177436457656533934141920009584807673803149570448763599997922432491793241028280394804794980697787750023159482412599806427666325215351315855275786285505423936287398940201691935779534056740161834986026383734336487092068300821388866610646938884647301033276095795629066794984645800171411290288300426281449435046879657353960103491151416175940532848275360579439951255096678442086396617521097726237371373321005999723707124776304209750472748864718945877351765081457865371061848969274408005033551839977146895995698737308201571038757292684047370757600685570597881628721846308530869848576456052211702584807010536984456875372151403067861979320908078452565890444388748646650363346807894855232288467556627214726738430512705549335114108569053268808742432681653216119871243506024032554806197891325560768978851898785339574751676258020134298491983585946629864739432405533617969381209835416636346330418659537906047092113832091821733986584278578082238838275091535003665185394859990469525821831007990323555341116724548159291161003631617531320597056195958252788074291169913015406290406294984179320631884465016188899227032156534759557839254259571784941799214542863369153375786555317380523871897208666100751657661811762135686902164711381409389594489814678901632928942704511704710555155041145732905964915012528399787862007180038124588488534713645512429422593868343148365705312452845779036449850504170858430522604213107535002390314197515399205509385984514583178356696057783813496760810366137843771992192224673881220076165354270702333459679183395255137097713603441754994574843354934190495285936159061538169112000827860632191653756002430543979579405674086074013427951169133705351267722748710881918321720547812074840843908248038880428259279015583235305814484789659581300198946597073182098299942676694646986804428142453856999506292961040974900687655165930762704769432630324852036244068459685929723513897173428305979981098810765480358210042914212688318513530251536366130235194882083318209709682257045896346872770450651985345391535509595404899698119903949358270719162693597697250167662236265231922913709792504948848417419829907314316593315027561502721496630475520636686152527931190800543809283585035345466981511141291120416500275453287312844606155084905451278739995482814215780687625370277446176171241657515215291512022196356638629145308957926961136300991583380287061576534239628699636802584827709593416141217195726734580777558592776836816988058297586905970505101629190956980398692403404246611512647086174662899807083352777888407948350627190020770139087878700811985207717572630047527206663915208317364719951007467805699822993080913188270126521062914612999427998697977019822179354810168891494926187265613236233274092825900277191767338415809284796093218811798662970869464469778578083055888041387404844157759602107502257256210278019243208099551188643259897674849850306633056552754596643564752151650779404194694713248945127885213948540647979518933968019321564715153363612475520673074029692585136243280745087658648932034259349479917482600056695132340503177715036901263502081016385948198709228748999737489106516324064810711381677850677446133213417347028662577333282478228487307361198916255995641343294684200797036413093072076044082337494504361123339579839951598798048943727567463859787112443477891426311557116572784112558827206815659832502276261271454711272922094595535712856246549112568492765665752642614163870918417622426525066515251495178897309027973845244925435180872858101184835713804672629685221381109642502845978597119959222546599467536451581815419899422344705649990325001292577815676403692497501162723979971080720835313980983914016952315953706148302049396874063894433627889991120452607030419220390737555272694181324308277244366064710036516618686341038452844622005388266821823606001939688086593198151265981177969222489853057238946050793768914174640572775451979209435842131338373375082570417714536911862267069605367965424167573353601467189516854570892424180364887574164679501222532610798085239386075935873926641800017754785689495878010930775899228105537556578756040002690530781798158330790559601754422236477331315319149104352981388145471853672804253301899084246006445177335884004746660173637336233547551346364757681660504772519094526406950912904311833871854545485612989791957573804769337317901725926329422206923925582305268872253938322566086780023508412079733577175917013472173410565525221606368963062099420436465431452755382325574782879622948847389801509561971068268917052946327104070144639289356543548707825448080572005465928359394852115910140699807486296193566714688676467062981761377798212437537985299375300450869753920860596491811402009704149465993797092142489930394435933651003014337226276761310589929831553614657281733992015782797174998221035310239193207739960487530254913306238065132336873847438103518431529302163806812856623750729772778561368011221100946821565661556463035627854097649171818567003281387008260762803767700703275627785990213917597147858940849133742661824794207647615731754531071996780514339299780898549785357735038510307506657520271471727881687707829833763121324277537944916994205304368823570517047783589036832976896741885958925055629505460429871339774901120600470838874719539394811532074648425079464786278634657916187473788288552515766079742372867841623690301249160494982609727592889466931376013668938133514051515794065477720576046079461730424479445997710854278935822099494133546275511440906298857349144883557891080967788680595693263216698716335492443429336097502648670911508420129439503838524447076788342850697087305241619488398340506321781910630440666437300227490143366075443235956107919400099330937669534454778548195368009158542546355180268007646199290307976705386290553142738695787120888439341722693198893657391627619343060833521405576331304525403164696434155068424945871356951922992345248799157267891056351996162401300125038728641120150134984997086370786264039039030180295097800506124629906390751624486840402589695495890072313341263081886750016520212556915503522910176992339955551497277462804830209424076036238208036879395690203582626068870140977922772342826670218722981773106743157519561997159702052350301946082089287348550150438253428162096949119685653732686707609957290466631053774154640560883152293157538578032476916999893366415864662457723438356696408141750767211838552164238391456720902038050521374676902832746440121750411739105844812813584587936110077728445896432084816349892295990293859811546753711936129582698473163837792320346551460456074980120717052462234703841148234865067171783715139848034761318553722796640971067010979850987185521854157156740460006601954170929290871170691944284883111096587270250341753259023712588751963008985570304592594085931414193665681194474629834593148049382599931773055785776920345163256964576819857685689815938221779181355276520006221902008939241263425645758377914286363656594992265902910290254122434826882452166898624782809784797603354120742142551877558874424222483460767443150481390611908416493728221107465623439573487836365785754975400327157829073213474973357630924450386821026352984094153263923772598293364597563235670140416266988895212886737249208523539731483410456414931773779676101366065174487213148962654515331423207728667874279168872889946245929315567449247847020276867061472577756850556822223371722117666917205244633502089169333828634409821630280944517799783360598232341566383033944473256485316955534231395101238521206242728411056409766762541252389009726349696800600593698651257614659570282729130875573812136804210515332801086927976510182921528601410551109239905423491335135149990466049392309366541909331474278066554991243397079728630930275000245317087571615167365210314440323730912534834042147589757466230206422266101926178057621685937783019454965852994351326395838586830620917259320478717263065811005395891194724664289808683688956773311969716518670634828457979451367937615854830492898733870251564291433338969128013371502309941232060426407378657028489132191130768960864224409792016165487442496747527738511411677203981056184822954402819170273144074110270813688999230190469609150989176340588384093870516621616054875290722779251922818409270558623515945496782568164809799376410497021783338482432052310549606392668456398736611911317106339039787270562175518945119165100652873555193130607435945937361427650204784188320669453759305973436899658810513989684712892187719906832067578143843439474157424711065713057423058067470833410766941796553019481793279116659939541168884431400463725497498131529010273413710686604052120270139108636986781822185464661902597327898159167101728152496420767416824378393918315354959045217984569681939003309478390914893308266190190616232677424279386196960419910458285412662918106848813358295356297871790971152650778508544899517757902914294206644833527660724170447381294013602711610955707799484416960982579703834193257644294655265279038764307715668741392373304278312041515643654096253711516028969771415779971980116287414855386283574908637291375965654566195420954385733930636377932039034125449028084076159749826175000201416734648322126019393409529845224437591168533294596976617295017897323704038547778674445780730447817831703426809649238756977481527297401847766873076464704706520797706293378069302631243305094166496858458969904429916076233372867939316586473762493347358689328323780773443062056559068091625530232940751827945630892433686229681121011049918088517935662468312323333897472197336626625242122598220044876241470358785758243565237468253066524880290381423066691285893916672252905770143089887209367400096269334613879667674014730450739434249796669923249637337319743851184691758943729287044970423399363584562735192650580992345313742247408836591126950306686803154929932573661185484729842400460922028059996545691052555409708284063341233138219422005460235903866198033762053117382191606930611916632773447621017675956408280188281978792263542249707982618782974574470026143836631768177640925390849625466492640713717964859655313226782359292719104644167567236293658831020758036594468902814236545216032251619341838547520251136931162955224518537360493019140209315952159867630761995854006842992920445076456117544495310096070302746128177618071794961608324035652169328963645232415356790898761219953746886888159493952732233296821760982097809374364435307212250694175844611117535384950935914259175970063533236622732132502622756738548768059560064948856083870569487245897129572530748415948761508433324790797228477699269209253916787909645444991757576954507941015854966094985955539391198977105043814346207263291770860420588221452377479862064974946210531519715437698475378641221583157399237972572699809151481518152960397742977507375771004920268050888631814544992162264480993155680924707349286110957516043953183785539245605827072266338553745891904112103604718916797751708127037367465824623334172787577152622665866855730006635748284265545126129864726074265899020830807868177608360732308590905456219382091967634255506120026398210900111784593185971819799650368249191537177255768840909294921889615854293727390369030751484271940271640770593318725511077387688442126992258720987397394556010639772221644551027983165730888714106920643168386320663184735525614709055290123507857654576444185324730482731166616373410108231802135117249569725267825042432681268856161274120284664709114322436507873492151181574556221978387822881815449131947607541038512245034822303397856683367822671872569851886453859488430774731429059999663931564461474262567763568809603951160542012806036780794908123616889906675480192238922054260928009084666044584540265493713065032212609664901127027970743140287318249272146977646417198477270126720369250247874994058687047993792667873525859487288419288905868650350182408942729680607722836427806299378452841456376346387863118788352477050566822046055268425952240837390313662020746211024856433918681076592376237601013916674101844521201329424116542607922821703517317235891135741887317623227963697210458823405834204021836872665866209083124461219695604591138404830544710464900567771307337451663016019046014946937461962922564994652654592468551649025254348947186190977231509240006180603617245525054377524462173022406340672415796780053849318519487835487112861071858064173159432862054134289292089797657173095627086815184015097729462206925168481658033545364949801975573776175471033326521470203301341700459668530118299614798137726980880424060032923746557613559130911822558525449280191247638694637596549422248071497578234396447087509435862155637704823408572824687244598943843017192061182830908834207776709726324449697663330297850483945358708100737563517582949686975799745777478869455639745218655544531197845244167488793627099580662755248202674687604924113428207553090323487537457449198341451560725835932083891299975491632904610697405103807366742117479976941741095805116693383049463637565154881232251481707352678344005499498067529541246091567112754389952127449824420352430400083867346328521598237001639747522687969257063911332236959754681473497506563796751281462165712633427328675229050555599491927154710501040484346540605567088673987619228035162069135282120918089271436041963076643738112125021951472267865103439883261500141275261453867346104630973451980230056368326520354097268428804530458866450924761918082847761062231633159033326978250560062831523336762890690773475609024553376637137245652132948205656699762102557071313620631229831902133272115214782346185801842864867912227378842321138954156776040841692874871011004178696564018602710739762734280023732594651625654839471360808121100103480299062420253680075007192967230890400485184239657565571473931645954660295051132251620279877000804324973412019022739121634098536170779627985454138099712228569071493721525612713287543025327938890006279817185712994485945177495859677459504734325059095348255196250969366552794007937361694486599689006626852356538022151556252747140939095240509478798690909072874517704724907494676211705675548706270252101306409479287071725650972831244664357957131545310701067273468851460024780811880021668573063650266873372891178263769000184041548587415685905871512541359841459407906470820211131602492553606474249513740856297350208642557498108541881735953158869190322320311513258622701925125653248433277267338816709905174444335245103115056702319487179770428285417200340209123338220106192852295675734266419396078763221350572763584377067810761488022567182169950516142459351422211368252521677627358586499560265963119016154205241890024905618894214598438391294804209005824492924652050280816807739047187575057844071777684399770457659798577853051852999998642521716543455723551482783086919982617043528147169235494721708671242888218124135417440592836966897097759103090420561391141994006790511118782319470327487228001333960260521001713638646903410062793887605717747418794304584512972059465842106034130053259208975279572379007464448731115547725760746442182743675938537850235899168428660565710342749891998380808827971360883370814648295016935470246979353403770204570428988593285739192868264576066042412658720891615585034379169686437536919490899797460695651900154299232272555090671338725637992445788605093671624859059244800390197739031881932851974641711490352197746509409860643626898084295268689654052793312268028968101507029917047769160795369289693024020515161480941842117550135423176511388443572757719100108727300651697850691294963767221381861603369782718244393477635003409777155635275678516342060278244295111820428829998078318510906908192371403106433730075244514857836557144851489543151808812995350617989260815174177134122051525678286535326232616747171909651558769143588139868518594136798280359322475720075752935207537056612086208015511302813441018167094606054013410368006425367951392966934598263390228510996136430367876824014948635552685801265625757906288132965284512279251810670414878120991125177193309089173638942772304058706254404073685627630967309078851068380221341379438612821533779148110791114693733442087826045218189173594707701464595452750676987384988666034301226073296584311674791805971685410241473010862811300081235809431104115775400416869480850905521387344128258576775586253726420294548789181221986897494665711733271873864705463881451956120703929205313785863052525155875667133773451477124875926749893555276620924910378375478453448213258089107020322695572260998887360162242770224544479461439063191243255406390466805297231577540217778580662655745527889165683985922159458754458638064865522777557359400647598949931832206663029206720762923796907607760456995411123342984659444464833786864742757924197339248410589655508152256219063323381025032671787327727148813448761181062619937006669897309748831000647337732239307300350757291982395395163965781695503983071279355560206905229850858681389524274783581651172995489687511218378024580690261229966843004238052846529364540491731192459315066069972214163583334047106217922141147276276662532069458057537091676086024842823108253626938892524593745419628661240149566108039046189076180253934115176073763978047761781245040777099424317828480895664284103560874634690556816183926045515943730960917256702851032017697070922692022028379792635186021589545908327631932956186242387019644201307920319998267938599536250927742439514218083930431304007481354096848927066869956271925539710837444009613337859641246242011290625100130793228268659913482724030221218508958007582136602674972796498717215386671071852359764761729701574818009206398398965702367546059793177819487335824602487674587792189681633413734992525818255914866882229646435105897936851485378619363116637703271498889851809308599705373169607783609374907413589449604249777185541566903356261281498252677072029394637876528659174314357571244320542484851107979913152423545414768573238675597161733619995560796905509055377729707769337540996175103918652302649777541933752392477107378243194409801761151597270212569987226748775747592187217233332761599765769470251753488668144003438717967490583149158906690260552055237037208947492713861434817109774721504718072047698787281320457595316933993154738113799300875943816562118027526122941256236748652985455128620176340784189624392652325954530435435744025049296778109179382505338189609952892490870423095296680521496610869934187824645687987701133293118374893193457778629608306981406735736873943890274635340775527461627558701105560539035989141166923238314862548452300682323586090543741475696572531884809953339864739749773702040407974823975773663603088879307163700835422827600134911024225808701556476963670709223205370231196534031504724957627822848610077393156854176586213946544373290889025878007979425739248842635629735463479355367273116747511821652724645961370815816214953333059824972288711282246136081219587699283119826165797826022097391637309369902678022077009895106358581770648634770519470742024080656674099695170088353023319632246780729616465125932463338724415871173861372797861517117490066945550225779015326925343998074347247592591270106443534667737197428665845277460682318794039375114415836581627183670945730461060205366587661183801980571300476799854092452271922169017093334874831112358658302426101871492110653612621584078971262941562466785513802518295482360962554722346311509767056572036137293218975792789523055628247189493713316846016893403445850007062710571758272253005534813601716933512204926092394519172622801575853750721066691408205765805372747869619418454439629224547087857492308297547015237452964453588731445039079874968126094745782653844981667844987660329456153043684282388556833563269646930775316652508521126733923623197082389269384497231237582265745873380466348327518245968558491623172559276463728867733831111849266542188133653757377949774691495589742315779182122720593947794798988906127224377392906024192512320930625447421055253549676018392665772609245545803261598363565295855429708406080339516544796590962505446365921704183638961377076341576838186511926491252319898028167150882886755029194869116019777631434311552616553698874085106466070291700161783781466320223548243968600115950445046713181529983312289552133478174945164197377105453397469911874075090588024232924846110442507702020641680934455948395527607769366444295105295277060072981182665072242894350169013974758578550940925892247555056941241906586021511777940977255658880774528163430607854442356359169142152008126417886380042960622181143286475767175724371308968520607173632091960277674392030863993529584745405384915989981928434597137844972278542407753031353206553495048215189789825343987641279189212182173685226541544344199620831236960269302800103774379782826774242810621898420232779954595819438142071126557869978746636400898209487564050690363439678359055979118553729984422413889555997186390179880966068649428305579582525039368858600524560657763922365694894641275047347778897733476719936561928724570447873299037890631967525302001163045849015924500379143965073559429175501926548375574790356551929509720775476795878630478206726815600872161879403312391336438297114650359865225058284195697402733620252752563102785660861293081102468128442214374816692496652502889352789689650861656107722068850132883167268834411778941671984643589988328744048706932093111358466656988005312965921817106156617850693745652285505829479117801796933784528259570160940052268085326923115071671128162291904038947240308618100649209987627068946302703439030399472617096551256853719138358563733283679723341651163728394566565021502647749598878805199040386843026468221379677821077632396621624551466090542931151158211195647059974133463871283729368552098823514678423785827998740049097115467963144452905626755309815835657903908131332394503973545267470113092162828889183203019168869507120529330500713821801417512227679865530194234418189521108414345395816018700017368549298549357386666349450962168243688060305258004371735309962397136137844454183344528801198993245734457754634744505297739641820048541002580593124089854542778661726055897301411573150752301697388015729667982978133270821759410043205826481635306143471568043062374800818267846535171542116988543422112726615673657396742362123849222155051683373757712172412757556046859201990640399832988557950960646796711509378243031639834652310974189808598600064021515078856424480741036448649127087252444526913876282080073148098052002536410277957017732856043877429669458486308412834408646263211749196951174841614075243663626108470888152137369693287805854238655821108268617283248666661552951354351092278747747820442800860107428126823761829483066805225712115082219943387092799514135264033776948919521262266137655981370952477850071024782537456331977301138635881571888722716405342180768940466085862009298008540158953470181769479978075858197629763141717126729228834384715740659915506966470661192930495828091854308733589203408036869533085672241587531310724717491835524231408491674794127262376183734955829559300339841632078640883126148387983207621531380477766258214654610741607288497342399864763239689707880660308948451465879634542334439134243975268069127762456151520573848211800397822422368343358598310414816974236618472059262313055073096700916992572877942916179696873952877211876035202596660793833098993007405716614502215785965786468368678548551595741735971549025984634528955590807897937652115333961250779901886333499255429088006518688827150812997952865553717961998009923425490075102879475507678299409564252094250613518689181238944080751165172156827969605330346271080413421069594590598127342366610840866253356763865703820937938414207675531455894570342207706972695709861646322836387861762796263899596254620494534268119593122979396970279124085271833485921001536893300675876567168880840824846312516967187349156610701835985554839118790728460224189618861469858045330065928289384027390074996187215101497623221068730580879708897699339614535572757010709324557329103687863780753322525708546522475536591498841239746165314623382983129816193947025001318439216991969219841932632973479836513805185473546700397805148743179806002467641440991508656016170993104984439034471526067198661781709563790623144623620980121588169297204756367985134612047090419210627961546683822970940667274339472404739297882737481558707950810919080233791663926543485721128144459830534952671993977049720836354417981228690451991736294881768687277543910346568268301772178466592172020779404793477161103203285995792218640067894960150549680027086048970926431458197353663318061766989105493061074051689753794372296027853148736163919659211115611002959067558556593274295742676862629314856984036335427378183600600587758822570429662212880293671551347094083985541101489012145316782926269588289400584038541941813552895319046558084756685197404442111908151202761021189609463066566185093613436269466125699442747383724720540642475471585989456197852057677895166707784933445310129676519832682550165645140216727371413076263893956514324908866931676526823426801913753698277766524481067871602858026966825604209184679607912688159798639368081971132951426102724099030161797605939436613729902328637295197732567912563669474356131117178642750921777731940488157723103338042365855444581313968954824515971432189496191293436411370825893928695694016000863635638505838246796289368856604301188851580816010748657548264964166927341783592777837542397841890575897512021296472584456587988112775606521925179817783259827118690093569026957072439684004691079004775375175958512542145619054354511471439642260613059409043125867024982262982839715815423574372634558701301137528714852830607517378771638692742541605504571606864363198007982578423468891736756691422259895345386811696280053985097297186420849888113218144552314388109332624387408847796626519554091241727013561420538159611493234880663613924055403862273237498739815191297478858332065594481972202443315163619100401935915045570303319393278268582361624922676874347755135188802138182246753021129484009819239330666820127714775699619789747984689095897497628274099482643244538275769377193156335634615936741390542303073765657289867711018605493449601526161967230115829844007577139278618750599924015645332161841040535708169301895053050921186958796479796298921234849014521384301507218099078513847818857530496837648961847562569516762517626210461534502396290214334159068071822589939518724194253677838252324994070027299655907353232953127751157835568709209286874163741003665410540473143696177295905096128012137538040118928701550780820571372821239506784465311107866482757631826712840811204140158093046163907869562419765289788580184025342555846973340096858773134995803202446763798076934013596796394592958802944913327450980491524489480825864134687845386404528802614146688627686586596821598560937529635497488308238992863832478718302240103196312444417402123751901841203925213817283330725761449273573044409982055620772712751755652011289815418113935098131971997014367652280747272974118130355202986974066678081158299227035688690122931583888275323046881901108572876699348532910253632162747437428189601637408558708386705011576373945947946393479198790040092338864962332462322318604142453804855076832310787710228075455977338135828085367298887783903941123018130951635225750671946045276210549051743979159805530702887352954974654852030208499201408779454202680573945333401888245752579482541638783642173916191257779202767076142364934078020485466562674866306949445415389313503818872698615311445612103575094248275623021749060469992272196057554456190808235810310732325671279256394633975483722350604876164608427026404248746941651871320120583027272591769504706506812570570934167619217461079281459886859609159941154153514243794323842045881617906363172621090519601086810243477755303312370520839472579771362641930390386726749474888980148753551132668318460267055888143180859939851726288474102090321085774583478356617662669394524558484693130706420780252730488143526277720302484325213291813921508547385521809858601783394652362062161042951319467175614565380642003776096565915842337516267220050042978169323125642604487162447868956343112405854945807329667609524705047767748427429659099669702774929675221715755164868292462372847438873889277879013158179617247034748587269496273927298110041025576996151275767598957035972687872494599128562582743860805227520085567143953928107665717874829674438185197134183308298140410858717832425507537050560483088772665202212117260326217406410663174358055760275931861422472108011830053800469923283978646996833879670245914422250689172372789933131255019506531621108387996098728455267378719116812688603595775817461124742758796119174191363332123612771287788576397382962295586553631855247141129625741542817362937266099362693829336918422462600713373487450347863959901649405675313122920376323805521494904233597160731837457308178777917526312733987115983339391641859360782729111824628419199486578578666321632443610916860912180630253888501895984093448043735788557892766993322330927344283446628134745204511219555017532117731850912684270094527022599480319860470869905814295150599560331673401579058099174907954509838311838188315900885759379379482515756619792903226914745064395075610458592184656200220583304149024334541673381911885249743721974422754195471188979741203694239569271509649121405337225379812045553426566357576873604914229038018199285728099054344680511127331538387444896455890773562659187353667848881029164986314032449061154304702436478605329114012373206606966473832433950431083413375465447805500574341848804628450407616856883306633678502086693710216082007863224595476597374529999579374393165759239072803063760262689845953947189797543126461746005655482013727959390323625940397307345492101552907769180348045764922121834468326857530248144479491272108835158552220997362386606372264463149211009308054643399970478934561304661330451222923708904845610892374348249743712120145384854159541437854688646882799100641184532940504918898379533460443160916784494629966243559326005777388293704002316703528040908408487247745073004336940394813948257212173142577226609027606458487031362174922052667312911524510144645313926686501084860365288197196626543056445262674530844226174473629670407125870372276903477050322143805863811055313186968472333013957610384369357876789041848089570838732761004129089332232666786337487484057934868165227899611799860898975685015100362836091050413338974871085268412233955638706461045326055332298480933892594534875734128110571479398838992620070454773955842067631510446071495064009236556661299008644925008781373175801469073082844255731166169257339281612922574946813411647629973065425337467579125661678413480142505854820265777543851919731224318856524675715802205937494451335601991934279739725897357310892224354743998180678200024077227790015763652475976178180825041126979270573223055146288543300228544590025647802432067330070418522784348031253966000751108246349111687968341869585610789740087606596977038337288983533330831890360819801744746952639896239230572072575245110542974466738738955002600889329940481802417693488650626437322589435443280189705078342949296926831729429607585842424248630515631499966679123550837996444839906275210915124965925431635944910560372966316456793288752756283278664077775197572387753931775155409423282975711832599636671668680733026541821073194344717532010270389856948802999701961272118491386483100451644455172109209807279985676074971685311355757541495981205290838059330736914606303092541254437545658671872175070607017799283342333816897573078556030248807796569493325827652561847670669754739238820236008434272816375967909825744914198672650613773283720655996965274337177368268351905391748519632853728593212881488074383817628091956393419406045358985832094945230069672579372886524270774826841326654896057797949134173472279714599584056471427668717003544408206257134940284297705558156535411782015282603402663219615942739473331496917530784347084460382652075092017396764868030095340166798783077614794852589097249751711222019956965946152407983472660967514164761311260074333900980190984895694377692121421194640081998744675491139627106228322109946509384442793816740657713471581810224169403281139646911702390754936303909073797801679086558781294774600716355255503729519659731966943945991661446799251741264064748670847439121376248844775373528766236448535668451005008280314568437199478476975698076993645141294688111096994011424458282092529440736455817061339768471990540385671466294518019668469544044688716264508881714674175181051603545729866877712283880787815978591529788913425729294216777506386277992608332897116671670269381520622309772304281369362541918143345906576334818941257160566234885397453848689696311632824705585135875380521666802795428669157173091203729286182657509061195859070890024562865807091181457134002010494233424066241389558478751356918979214388639555881706308892178825538351569198788663600182257447882471402287154591991807094605817966999733472430586025475444692193077413355791861530290334001986833937927904537661182985728552133098774057384518788155158736357134652931168213446528659926414392438213591591510555045311548290148528951456002492407823569607748339860465285285845703912714536439742525646741169100275539287455571274340349089789264093267224068532904713943311702616508266977152320124776042343056803433099224502460603705263529965244991536696264436716707632509374542479665604157916518344643971336957351292596594842014374970070200614023656390673156569927379597321344508380269415138523307148319395780315865430202761954113367308253608598592108834074829941773301929334889482084436512095547675818179992419412833459047654567456516470716415078744150533557255359332280287909813105103596642188754790791218741312075254412053615000404381483918379656685685338060765507024530702751415022379645450588729153244000245862425347742749073557108231000948193379706163976813887927270934758996116729050464967019448223326347373328090310921880607781033664010113404610154718496899065447760583569530693838158386788675843769234211112445468385733295599183190618072598222845249827959607546890110036725030509114633047314779500206280815852860665381966500111379288411399342771193051946890808778173192226962562673219058707290893267365912255892077714931627965647087324052705398377489624691068259186145844451645634864490303858241195565464103615900510492052489599010764458773721236299464918264467628545181102041860399152475093672248382624984286680446076266805235278853974971426676318371531578732780744162237557382979419886014338089274623027487339280209482151385959379625329716857741473127456614392673387107468328520954845702508019399828746352477484720020248226488623809792729214784697619075580339555672090186705591777730581497662816294512379365062952927729432843231176400680593261021339827988848332128053703030745875793209791129031200967119871131466550420162590647597359485064874335202480631170345265090827681138719232006991738969911944936361084061288155238456193552079256535282839414842041534731731783488254049929310926510433215685927407810965604769350143855947179675107774078945404623784748050184014985087975067703674553934828672942859995992508669957321392787732665597453113282882638981344357845602053264100816388580652913722960414604642516469247485952729541387392090486672676988641547986929508721084335229607563253573725389509584716870731513754295833857532589957321760049455144060227540320941789072806200519041446660691549566922696938171004383200573396026147847386642702738868778646656254768076139470475653977451273857492852906090773868541747709921576631486620915419077168158882116030807268638655673555298572432724361936557818059549820055474848123237384346484322689317026336085403764361707396115522837257200130446159098826637477624235704588893388865925913522719951599889071276733315433477576998887422916536816775964199818594489841302614479659566950162853047024428133786993832295516365002288072933935075037228180259167057135749872310279244078212483364587703388320203856815880999609808057201101519446863000525166649769185230183121121171756138214056009166862333997979104701897448001938044236224569141310521589810646041087524950280195105397209155357309976279940675042881849278491519486136956681250622741516785909020545730144126239189835974165592098529639692760556488484959026228777605604144913817605707108743090547601258622575597396672593134451471092690487031386099368533317989664274181222393307814305157766276170044543313705048628205887069921843614571065299213008422464708722890484597386670552690296552752005545056660959055107417203965224206840803878814244559121289044365212247470597382556461965715802099826413975734936985353041056845725543555638209214313741054477017934443170644929949229046959089455576731134150848998335820048802549060260770077240524873880584567264052638881709957510947487167108712776221902374207159304917657527170674360549005107893728565016268638133654847243676552235730709208063686207611289352568856562473619586231005809011656209019618191585146305314323727911900881380186088139918111863149357928027490883179453855208771935909560295591076176199593088587221066105987181484088347567813418548596942762620294578379996413008605620206905520527030978106158734894067566088755236084823421223018217384724764826649004141953906130136522135861542160059117763094917189108634114542323634137813227434852759077336749865033552296766177914006578813072717868925087282079061809962221199846036348983273775572657756990730550223700480501867808549719116053903259823003137593290964264710481854185770432732572916084158938630894631529836629081847901777585643356172879048176580322099745214915003374169413153376929970269760731042480743569019349984726364434502857022693845960475409353600336491728104480537090826231986890220592047164081684756882631226545074470299131357171248804849131039069473892297052333706075786772288186286337072837724549114673007422248260154056582356181418911367961086014873332121769126510451493804766065981849505992218660283990968585128141420542617078884540846374753616648048491341430180929774519996930057887914257467514311260298329529271262157989763660088832876164374067581576981401489268468598361094480278199586686600771797086643613085247080031781786685177228253197950165230166134895185332476987939113954706049716607370861297179014155789424211052434847896667594231661544115115582280134870495250600326107908547948570581925690931293210182713092113880872479142937114027423346577679833692829753378299511588307966114662379961967080374985548233650705376718794557898396517334776746030533684866411451284253997624079809182412950752802300571972536338362755175573123401873063340421252285935723459223422820507203685415294566531655472869263952694159004548671777017426923388222475727090355473377849641317344058499348094370662649362293092444661440562537225674735280707920888582392696428366218504735268094977403094062099888466805626557956360953715832274426010702797755731225930863606719818582524668726520910263029869646622059406073934616996065718641427148833851157648788698336902378782495565842684104643160977369301884552421426796181808463635763946883240711958584081421642373459134065858374730040867540061819318029441890645480741666159589713371369304528279470238500475250585602423981082940407838393014452433941613403115894340812278178602771314939427774714813833631719364412119144807306614200460821041166529921464663163754048948933354177720766090259339746887569506995148004876298605752329177199852549539691501968709984179032189191962584635445043818349911576235547359511566890388280772620554606528299374614540212292968598713952760245694765827116328659566161866665930501320089028992835623808453716767729452992485173146273398566556083235994329827743172865941527240821075833055643526778059961521277372657866216695281952116477716868641115938624959515727089797965571445581969111725252768608031558571682757451980813870829591885705575035456952040059722083664006558398719595817919664354195765393891948950639357012124722998699612809611648070545995701021233350168353718790197905546789589676360657842325445145088491704082479123820717237051891528170664685207222670079219768830459701336997663140752456325594887706668842714516541444502907614287695795731945671250818473813897099420486923981117138052683846513787622674478119423581022515461816124959171925386067864928162374801904149687640493094550372726491924602878237413455153651141142320897095658083142461747438775721434141716302609996059688679416342090793897537024470452146942205133309549905928112758640610702330991916341194425922704681395932201598608356768987836346769360111764118487617658923063835422398914425422826029026771444268573773753145691338300501242299318906934030289984681160598169527861324741845382834175300565206692411263711112940877548739086187800399478642842923707580987537064940579361239531991760984605476078368038126072414257766265190350760409457421895144969389152359551807218246070049822603691928794131580913192115512588329642415811144052754054764492738617770789623305213105939694502181174620847227728688004717016662533472920222651713703734483576560945072933500920224055978331980586631736337278482186101426331359006955868746041406008834700066109284659474269950660637931680187317611065238457696614332449302667520374605940395492223945177660800991744905783390865910714123087017088981539467763393503561773865478540906813784557924523416742529345163328897624928605263363725706717865871930612431099655439672031576261470314362867306478275833933738573238475357485440698518485280118574200132989755077758694304144690951943586392879669677195685772643281521188751220321973014307580310428017749743413507762869512429042898689852508002117701070507644163145006364203500727954958575017203022123387497866075921024228906282057752710924756796045367077370307922550528797179672031556984965210727281870251930894122599157689657945364506697371668427830484151716714691146681510328509291913807442144119915689715243060810888509403131168211753818179050413519233053742441916065060012851852280492353320807462172288994233599407555064490981700022115430082895751756222348663137942534396572612809375494140355298934070947931788813558193443338427420298114220674970471419883597734663220310284717376467327315988957950200618047061198687698914722399286244517540599105276289810261510674119091804892442286062273814891203908485807114327953400386897670593587533101076633361948473725488909928853066953100024188823689968999064178789407269860194088428798835011509154151548028421224942490088367018915999070823496575847172533622288406623295032319528775399321595369660374281554959422095008750272905277456944001763911209872781460563230866188952243939855934202733102316057562679917662649934019882896186394021623083960493664247817900244135405309678688744532501191814804777369950553272145732585074859217103388342052695568890916233250595830941290315468037223054287967043542421648224310960160036750702974837129123804233527570336291311759027587570658225600420958203369028193764231644934870846210835869575033099769384988357314432319927422556038653293104813576268659553390417263859248251554013667146527024404585155553664626262604453696330021768021431471987656872202731725597755845720027320288640986672097784223395643632108097183197336951560250363816870459373553452243548240485487979538166372489375074921862062647289965755086687971148265402887507055920658191280498222257783791134798014079630213141106526595581664698828022896767344293522792489093677241146533304089051711445331754766551452399983936669171120275821142670397001305882631950599908429675574464312255846887145374527626132977751390530397414705539465782282100445691466704016351298694657907539705611554128440775654452959558682787461634096066258202233253037599426789125612617635178597973616631915083521984488308630374900927451872690469632446003415268585758902822853538192265777122438720249522127146520688502132220183947728180719735496691320502340655839412824606391357847403949905748628616833210795012457213375336886997828662280820424703019658563213690595817503655832601745895746369943406992139565972359852343741189597094246569603349425790323650361696631280737199151740711446628466741659226631110891169366181696537221026690877799893692210092416376233053876908493760336235238908405155266005451433359575160200543183310414296621329235419058432005700590259334049315275718180540011349707393068884278363323829012368935446842372228668329609552899056825960468378109663297465681265887670887137035208225152064775481339428985334142152762069395648518605041501261254487405286775352376534841868278317889732811417213770488583249158630757420001495887201837427133762757321179782323855895731136705553666644114000466023469537581694459195155959816579293225506707835355306152206426306450339654811416730053764232935839893234869169756502284076712897938324406572319703916048077370049880565697431538258704328524459715829806010879937195156633654978229925509572568531497328818455466343769405779617742208763002544569231380438195278911358032731061695216225703134319806972055507914653530551722403189239115881557005937481076853126280426571058594657733541082321338218018135876593748380487323346288355162465325601303397881597445982403018112405672319741166950194296513826264016560072515090577363080308390253533863637813940297957282719638835262370651645587460554356804547436064428063674987220644686691291634652670806891721650184418191200307687729032374711992917613884585611626103843800640753056065979085311742899172606923166983482900532932347713361038796996099101183498718745224149956107732385678903758548530597435746599128830055517249041230142087898292350022036411462042609691111980232556146729303219626476470428244545787931966673577347455320361467584993077988138482795041505980521945965178727304530759307452082178264725726813397466143032552065292802938708290893745509116618844309255544778351730067180180317678451142607872812163075908984070877078693596460308346855201983934202165542433960076086541325499261920245018406913994596874524489370390940830265799324060253942208220726855911161358421344391487563224241946714696737579009118042550645390978962370620901958838247372279368320653809104257300914978971225005504540064162299862149557867876189970831042961209945795418050408757515531742427941353146069974607556486762316556276386459854780605817624996897474733179289723488430227197969425872823052266203805992066226859419510836276265479022819485344134753153964801672585736295023485889510257581856722101138382696385403431695808045826499031197387908489729738580895063508772422694316123400344622313931717025737848130180512349821945747150896451305658719864206494967321556300599063881131633238099609094779455776681287957863354820120193241052102083165543534715062198864304799193725589415023067369964122953314321833078227975105535423499037855890422864791128177141345848182281753578717240896267039336068586938342723988827159429825607284381915143696619119904763040493830753224224891313737871400249270586520182377827057175954204420962658120979637464726045879332293986676153761688274887155148865958517093953806344291618922118362525003985249459791709182928357731151242098684396061070083608092505354864941409009874597753555414845690200538331088789500426475243196792060184432451894100337768374503709169184122452656348601892631214191873349389339668795035257471967241252494959149185813255811953387022080718174821351263439854166133500158867073155865607402530712374441049393236770758214765558845982169559545500214878551253584429473842490171855352863737186938078965929678461092758954733104873451663176262813671593022160716885208627572684126996844919385870010172060801180170808429843678342976835576175613708045655140831123808245093834839200579332787798667347085828792480199843751664268442594040727077514925223069505141521284450177837893091358218738997173708581089918809005974198193307910497146979017327861459875398206450886877412096318117950807263964885708588619020650267925167179959466622707703544504764540327367771106403425731064647721565854728225992061295818600523426006365248405091031845722454653663345171450056024479974011937039840556421277200990463112718779456394868391420788446987706338122220695517808034560644977877774564682245626136604989926660327201120558761735477065667451436749113833328004712517297820813636023485984310413895358887010748825876102637644487076211486697838664009961781118308880967864939898706758256219383677363839305107660305717675489631980573366024816944386481853144524207712558302319935500132188455374612703866050776777501722537922361960446222040988099268326328483451157478170583802826345023922012312817095543455738181958743834396158363455308535694169934451014093587090478613618170252483069066057495115370865391207373784364718374506431852491830183520803779625698954097799551745407288620217483646998434440758939722096575276619229971282807764048258293444345939018544379417700878463987620641509612067183647082596739071640957450621315996296223076574641520374178125415215570797756099291213462085282533941739252794079989393457846457394841869411364982638548497273384325240991835740803673815050666493594931625848556946295291084540350044181834358661510037846314463908776507272791024763286576578062842675846929429131602059466511277210436570963226034144895357400780085007330940345458339129717592719431073669212836347506006894528178873114403286750341151295661600579136448347352556274413184982417243465149455588580857905357974340128060686484013932734965723227078532520949084679901027439904714444686276485325658885283961513011399878428719942695289261635100505865256772782152177303929529110408505142585922251187422259529903607879552510579692130498599956452016559365829129059583111548668143789100502693215524044643401693023093476715249705780543372730400095188637173142002536366519183357823135900136277704151188753593695546337874702709082741515525125202853578836301030626958534802255806537088765876187319860405082825281854498125730455710332727699562259274376443721399461875278611881656141290708147089156783493430075291141349405987454974559163126039242258602522748165029659798813768514864306026651984102759924154913519922497865927638117431494761126302866538377821773182421041996957215473507693992641756629973695509302105395569835214631658107692116312675377415772376517041162322579924165554019451861311454206984019977345781880401493238114633305851035192040729489571135302636514785793782411553709176856335456066690021547058323472836418204447278828919387536335717190045988481677942451345066931891381025172360035005927451487285031477988259307945194782389072993205399320808986715294437778151628516991889070334750446755019325706958016635558520835403635883697825265519478674826731004901476453300552123457171302381343018984767448078178588668340261428906744534758631522223702118556990100347406985104252341486991578996710023779479379879308525014346855399382752277296245229124821045843358585560485417833528957126816915628470208224329196792825868086917732275340846691786939450837526071380777545728295233191062725386298751826326889826701351851744447560656085909586481717797207538134609635003498057005989644568993110061375723153897817115730867422262951091251271456719452845686416612913665983668540759746797833385541248085353781047382777980831345558233490487942874918725907693489086119114090529507389915842818970060623742481274162506793384739611344780349587110349834166331343362325593941189581366409058100052857369654842290465543352256079480404660697097665815978916722230762097719654160142899631611819905957899184100327996317668984263087740989426289442513314873707229519248401125757425005587653643192315081865876132990052260107034174414173704632111471613260069356343555440719924329943585898392183791375264711054081187237244196642307823415801808052387882037801827593152923881076041732765031421722823677573627519762706699651138122718430326595197671340661786965787852620136920309243400893210994671049843927604690625977624474360390826525802005846679527424326898223594994245794648030016599746066278203593239703718326766106489750441121434177148493301518000046466266034524971332381928269114718006542789275439559915725645779625954668940871568781850116603261883461230602294150989411570327749971278524651607235729552663039279949755410234400836086086795508968546019594436503650979406458041133311312925935492462875266741761216565571372686999691399391999259949590289584725691163330962032184610267746291535218798835740905707232216102407972151758068946593965432495555693415774938523803611599733933694774469147373313533661075086933048792054444316718064693713980169873367108850669423678250796993284141484483649628991373559775668329612080652626914442189114796944112215034078370069463808853167910374430841656925712078093356650282340265510723011704928053998608947717947137277285889239335844190922018075612149699086025935531168357207903277687959953376359778629417957500671272781129970409823962986224291993461261519411869405112248451067449716517196804660706309099080973277418026194638280368580209696529260327708217558927990650376937981899404617271216831319299361979914942251359359703587323465766305269696944402418736740997826290253515200005280680799898164328384138368390747195900815440443649329404876665196412641846960751527199324156320603903310182245502626647751972459797804581736285124992396398773070413645577203852896846312942344190663351251433789312541513594894228250226515125403373022121214576375137319687004767814379904786593960005462001486053670730428662969226514370801409709973293932322145981188082997053551993920420886395817595351369254625842591365922137966307774641087780036816857860737225308227592893506542873967738923730488322301601429033451925519735766462286667813338044640669041622873333866245175702297155908278451986220446862388405022772707944285414085752436055165557171560572936386764702617854962406074265923871416479180834884007225077337116371568555432194156728956061505103994616899931817058943547016864154850269357153876216397869096150931509702948761502618750722577646574948222749983139832256176257330281930735904437885276973158241367165771003759836177501462622265830148192449910613282265718148752972713544831767576311318841924027749800116969120429464380962922942290998544120715369383498527163506840214930404931908470684383624206733869771960642418924346523985447397587851950900556088830448172714647429923170382300220173592195956348992508350799584923053013009685116407269813582121131671935576768814803257061255854494070903609589301921857860307583974045632942106949491147686632150714330955521840234495256986279054826584518698560847913192809293162345090044431823511984628827069499613182380255925227555101086637730240011851813579264738161378104889109211463236341990065500937004836731098435731529147095207591746544802354202761580913169196649134711993276676918996078517877813357789033730461276120918624709669915782145863702701766943713493464759603281982506121870387725154438937195663864338513401064652282477149388142571618918540577953270632870374251259439823616748878290391562574717848820042714556459130223544910873630739315805273520513475019287078615381739531789437356448695316367099924592211652700828398557500082310332468349067750615832608346822600055616546125413689526226437465613659009596599363121860376777394106812669343887789109614078655147582078556077170254621456641102380036559538283558022971535669625413154563045432240225404422928693809571071198580473149665162231804706240260822501801435437232214878686564734226426686014151539762328098038661581892582012997596096809030090098636978619100106992762513883598685848610340825723378775899999219815874789421766962247264655688397713777762137972805220606926790814330427562218600866950148075076588342788206328266116491764308021950464453823114614969833782344857946673892157686633031453767041106235773760586389934345791387982844680546256132861070996047139554095788617194552927608376741629243870966905032667846833069606844392988255707507702361210286442388708122294483528894337035235333241199921668916945121824856827608717020793936920338369819485645946993144703449264127485310484307791148017790472282173964804229652250484936181296727090794522430862475991297717080290516307194812681031912578454853320970418932894966211334765315367769233165332060196325777485990606165342215363588537554215731375582486177857034716540157396436290916383255709152107348751673118231452708720477049798373892697004391084073360934962666737418540411449228364565360362061185603146362050927853394051467152695348352980632752238652950951564850050452992165873768070116695969589381020609680186097963617967041805522519337498044763085392520056458225671187120422821655614082053640880065705818437987452502921903436483571629888681727501234674744295699183319086017990045548458201292678341544208792537064233821480347521989300399182127044831512849798729880074780089928207964254089909944758168877562158292290024219782188627216353702122136674165565182209291394498900321225411396784953995472965275063777499685523547097043845479063858341630379249851954463202676132211915208002414727331556028460999640081758057909924561944841505923432250797540970723756771692940559837044050298995942150521871898626567469765699885618943700823616184791136673009713640315229317221606428598646587822949395379563950544295049369563897524240219385166651211376250773853080882076985366776346518115686598948411607813993806567838733011836034953708897215364769888760356392589704676649713677606112700491247778816671044013459175823659710576174513452629811010566324555349987071555330016038007677562599925635111043675630697196362864845279248459282203480240908365533191926977841256482679179342153195510775795623804676496542641436100899923688715814232719543325687656905036540549201446583732251063342240124739013784426040023117539684534222763249531236212980087946600893359781455380565100676706310905772935413631209990875123537794031528277463052479574810307604218756698879628808054132226380273566401195989266519094452838651324302020057915835518472891291738802790520837209057910604732765904349216605564225060811901327348529111297235617410413390768115733286832994636711872697555765207321369542267304004934575238018440016044234972287595199603522822677073055739656475671201567808132061388129210278848646292164048257582011314186845598656405605230733228906953906372944776874039574546632326129815448667236456202829143603621277834796693463933652100305420074354164712084306945951020605886927683673079860370580989158380319149901087577281283404816937109083790314061327057006801872559525254232705290817136121662561794606079026763826043618313075559741017933186977545752239030889740805167103962412588157058810826193881907332516098283586299331487219012094611577763000336882855922774951274172636721764776923660924537274814954137686686009840053323552885195268721025255267904339155642610768380230969529327550708892433513745471112895980249334486929600651477439634101349979041020391629583186021103367358868930128942956116950411034184946877042636054689798844777301932182548456469881329718982916464426940894846534392353619866298276860530042498158033116641748822118174775427613922037686769314558120908381764393808469598747149060415302842820052250844488580392604881354980760328051955302832978013694418696535792261761531243363299732729359113928694600979498765342969291670955968979505584750190924504329018235616681167627823668345722974653352566453341392965543671122998989611114858217089924850711582339382006028553040908723777764972819156787568876214103543790428346836978668715626851581315760334338002905091679446065097673262867733882589934811792513856111892791550581567009499266908374540109543329992694566006064133862702518480769217974855931376269508519277482228694018254605019529505325253445169496687173673038811324089039267614821597438349184008409931249724312324495492739671888210749195009966059286392879612104033758779322702836101437690446555465393288391582205616688287138093001797766349134215746168619388209432150142548812020482467401927288698629241170443459705779800895727156487056799442134520412269101408624838530848223682561871956177179344082505153681826513064867121100773943285983117160281728886105385707368940733597572571115519571369870449078928423266913231219975722096639183398947120274418511301889734086947807072914822254594733537496481659064890871175254888779185206202548038986407616058066371065240985861913278364285961611600268658322421118925943826545107821683192062104733285779766251826575645135325936023864512086269929955563564385672447195282569674458658124904444092591110767542215295010124860110452359159400137734917647398494612632082929776899521303598383745887045305476646821780682338800020080558319209980229290517310072473232891630058891983672012357986945187379505290202267151567495932045001428507608288641988735305116539556919382544676359793967052984872857205831118674869660255939070938769133489131573280682413355125417125831847331789572037398025875534684620369921643290341809108523486578725180497040841054519340306856868224704038092571663370865040630080449959008883330312140178974808311891785969840421287394449282956802787244705504853226151555170370443332299268586306147781391621281030212335262013099324849508645891304950244901464289388924201246467099036900630347820716672864522510050894078925380822952827927128711717361139612704464699826858366575159361134208118183112655471607120322233203592472087446140509914099689209174457714345078421868686349408386050762202396141089238315253509597381309361808261899481764121131370607313971846392181769692548480131384494547483578987537422098144788734036607311739358403138104679838309513216161612430496173623339631216554661054073474006337843424759680006066751220190467945011734220754336086070712447494228391394026570282517075358192158197081865676550216332334784817312472872056994004994428225983327696734645181298761558437631569894358350173014101756049312148135929348965083614767811271443750607991989261979060751360931331759874027402373297661402061601410786383114488075597847442528713900320487163562676822945718601543022431467920978502571907030299382093327402419963306875703336656871179613829671822238916278899508148389192828091878661334042112490689364914420586504833916580605184033205441046415131711715287644511849374652234312856666698421581566050660730267020445079281270735757628716882423326435324291402402427935343914703617711059875646476789168733728162690578007148643860678930195011478017918626538124824680472753202299400609807740915224601459951270768076305561405494202640053521900540994865778865649149666907851577183370763749172771843640760860495487856678692269833583465704035157178472396530664816571460179350814780974213961215303532593561907336578744326825550785646694631192658458559945291875794193241498708973805824847120206703367469705495065375540784631515185111783062749260112292402088093321201244065829921890688072490906335275887877246042135450712604536571168262098113962865656135002456659126798988059149754846841172724848726852035259909428652967453397948766935985812990745520717907791146730773818333339520476894288402329404603921215126291208236841244090122568160973476010810701039625340289769917700685773210908005611306992829949114331548620547954034962349823438597842472092022236960378394897526009868801541910452473677452862720355031630020957199868949650539870461739463832731894647274174240490575454461334965872786560752214906177992616026230550059688246071257254416874415900452576740276032273156569166617804078684754110667101754577073586618915156465661073852625468931858502509724241068950220400784616755952403615931549647416465633111895384537305163802359991470656511189228779783981405830593208179391624654685753823624104715238591785537139331040145516576161137367687314613362452590297840648107121543732759266541841977572009640116266142107892528788274130924426484724114243255452782418501480768299787114988684682000338636918532313973994646676331249194321896624702012214421760166055723481778294549750171232340881657493036672984685417316289355458912854153562718301699074869565946776275592767774516895616304651938456199522303706958281075898003423982714860826580389169011669163324469543319865352728577441645606484309379431369443169154569488994402163806080729455282539005649233266882963313668371864855168971300786208045480948728864547525734171647335653735853972444142885029905698320981997446079960204710555420401025222004574664204211118425804586533278523354486503043291161802595980826562970082353483273126948831287451982942490689514277792154120879538307120656036537795015620744172963297299529025261192739536387250182176571455205037578510208984383863901195808537324003618118496019926631099980399978563291718228248938521933105865575027987069954256229269000604854816790883017302887436214212694172094802381603043484030008838060001904921537665370086183656251452207261009042280347219927652976770216336185457205184097003259330003600039215174705555462386661527967847967705543336019878064583417580462238156683747370786009536761648419275143892031413080422764959824425322950731372744773558609321544141216858337829256866751775856624300356964611939566621069043621410489041244581365704327877787827467635730143420677875517069332782898512346543937764667962259519657302258132022618871534407707200576258045598481098453297899643886451385067441584909507510743908901704894326624038346055170382846617605607786376715589290913106904601801438263448744911148284691288212486709460270067281766352131332224660263307386180111089664543064449285449261300473012617893494085044603775811370532569156167988935538837577759973449665145616447305462688639634508311349186375027023398052529297574014851160626349764270940470205442762021794475692782212146080879049363091731155882332030123133181970059738999510081206366968774802352150350231743702439261578847548501733403362113772145081968527559578117234829340442580871234427646430070177734282875636630298494367077069343354939910966682544375558202208367352094293218020435548156012170770176174979272805182637930531121331279746226413117623371535130031793373961240837328529882284265090869814694335759249420089759750319531428404907095085717448474264617873887526637588670150961355767952599814952328016510982010670454329789768678958156314447108997310688436284901940485035400240304533100811917120008528420663626065569601945307775352582851904115230552451576876566011282540079650649338609988849907747805340153852088649103570445693907577371933537246709747128755669665299383848791930514816721738091759864171505518434036348787598374740875994518602099924403455256399899537877251243472729659831705416712129756940471946667032827862271637233765001103140482703486027241406843509409963863502067018730804312359032957698921018390137085793279473138681511854874502138761190848600549045204180732327408564213767419891468927386696599319209269509684268712260967469041387407170332384030621551339377701724119212867936153123266627678234602365791036602885736897543594063564942576114056706927005866850620177199358108585701747566082856120275618954040192991390803199804642650331447884587751663113286060458796481185084502807284429622973567150743978121207708429910568083880549966474057917442026985866929024334809336019710727898672003834337316557348975994302777640455782827610251453416466338179464293377245849260041516225951589607779386475751598462050745020972339835870052072312987689389079904357982478802948630520515764304509363839083647418216849761183719379059665710357701346033488524304984969979082802014629698376979020219852137153012223000234684293176638851164951636180494538424604298505761807298809310894458928849576292562794175536310806308875155956984337539007405691799296094418043350139766093631130735813681138431708974114471021529974955499639034819898485981515858784307119838468999802520320593121789204025946602003775273605666640869431526718564431702794208266572208590606596035253433685630952256308308730274982192399711989614237660353410337683452198475841328319225826535764837339217522932867469534449020925104223268030600146567721380529584988818575720589576249776305153171571840324148102466707793378072740675821886633197868970605990756298400804030949791120346315648694135983220038190372453268178835921459139076912448896539910340459989103852315465002406153082798307435530438301950247409992338786746208241117934155909381830751120664159556436193998689087480634470827332110289808642226877060143310177530673208015735788353233312580032965222325560292874321148493874853994576154039918686585162861327923495177744180505947502458894453468191521208546333150117105402054833829726391197792423017228577752698609848776656438552785691416955765521103648119270079301613438114219619471663537290386282924685125444068358428381872585271086828808462882307767121256122199744131878183298961707960696580410139026245553228809778194782002812837919460501641198122958378541739261953686013283420739172315226933826393990336144589608131479705088322521772783993156519876141337429201717778239878921335481103420181317385342017620689400575960784868243362563748211414349683522588027589244220867352115358678990527712183820550288972408855820823566634738292012482547509946751322096184119621020088582571349220202063090221358891648317985758753787375788597348564535919778781957942640630944355177789715556629010834895889200212919602049309010436817512772619649139024514845176843941934032097451060956050451243981386873846725242664880219768190102267083863794002374589442400393922426964281576997773789042528664694614085588803285604478315756223792789734713866009064141385829129548965816469864314029352444582741321579827316915611466870695247705656904647775128037248342664165362731122918098391870522639545524467379397265461217312335609143969372931166408361129780686980472508990255057590214639800639163314260737214904284504633823593511951300373875865896328185821648215543778548006079402138340644314575155247134502331148127125442736564682010960472199921113207795348921096323071573175846786480339167867559663935317680409591197569339992430558711928044160017016465179487616662912170219747826423020379585698919817943509693690273409631868872758098897950657970164132463020428738046922761336505390020326221955339968606031561404590353149889559193511879621302581121100297503304046833101502056347672716166035139102277566920746729551220574299460023813633900825416306088811670380332510937650548737398902637617157380002450778385071385485043586192185686743739953455515965791696407530983930077567471318150038395780999440851147845172799892278686809504128810178813981065491478467675237461125436170226783479246880732426549244685458377232082115823508381271669728653780865855699269714809018240459427868007661472567687063007669318911017718740414110865468574088897635515455406286828553088836887573409912942618769935775037175844596353304868811128381709273374725736023708471598850387888231140545749700005582674114375066045029276734106963574240148401387277834851411440954664282497153432406542323368956607112900793011360701218302274268457020712128571603459466292346142623320179761123672259747502033447767419501152054607843578371398496427930753158196416900193782424422401833104764743132718590212826917087575058408591965861780879562500255029072924566822165779934095166977642963673278229960483059586663852371652180059061084599734117423486221869479790056093197041428703980281410000391697215771744751585138577526373639233792227860230111727360371854462215201586911812579342967113844211448739197044304866693513803485056741021742063705227997704914171691905149553544693560529695110408724870341173487724895967704361124343394517576171579592848421557737347929738342749003109719305018448427348672369066901260195430772799710555402354681002838352547597601435087670927422423899765893856265504582977806071229507542455174444270519327734999628965659148508288784221385107698437979151157060454639808695032579814433781243387247700034415187496369927531133002705230962425318762724484919159244701851914595662173395645488379323562059711768013503537562679965091578450782523553102863665449519227226162469550102679498273058597559533874535005249860365303919941428071059632697040908629436518226785642203840357771735279637329312506658040196444572766064095039924050948638570290896455515835876006833903126721487914368301195952246149571577726240395242821429321597925506295597437314026702578316461744695959984757951747935975098457121546136471121595736003507036388821496034441110585315131804065803670476097717324954095449424574385028585421261412604204935552168187798463160037956686372009701797571490908692657691100237196841494186802676620879101654761200605932239628984275520172973949665944265626632733950292132337877595802550176794886130811391643926696532266409106877787280943449581843963116796722724520827463697798113928745601280512862989602739670510637790654851149619612488779223403222256253492628822568358006496824939960659405820165289963684520792633140705338240449489769330422956738678435206538241634736037608687650963256335711299575278756028512940823551792987575183036818744889064800477563479996925644504276047367952869901923698363881096521943098050602620191025967808097894298799160205131620991677602755605472252726991139033810117455074531785828454435477027766631994119000760445758185984836343497977934614745446354894647879093061749280117854851553086340857112058602208623815869509549377463348354278592546605892022641794434994814342332495087087211905923849031387076967634734955241109198245838357702757847070607856724320238527300903159252475408808732908529668057172431849763863546728438941785027445762900105910115950613163754255733732121448312325977502631316107759900320876942982969479030726122341050925091731259294055308690722081765943486339208701618201620496333265823344050154632057068483418721486320585220541812407881474281954786445192323475334082845208307061732415633826486857459810377533515181188700456028880529814947329546712153243151312441709520254100945395004685736281290212871820622940961194555322815144781096350235786273118279676958561146429427462460823404793933681375987093578266511350984776669419276854218399826061629165081918864254420958008092513107749032496018060526750694524606888817415344923027540426822996620812987293479302351498193675205591079921235589756025071611429546865412005054907810643193760992618940963014193837284086555212977616438338730816781048862502627343257102604230898343893339453892505443731334329624551059586013173513005051737084378390511416202721916977609119832388406244443077195299082292144835985162972591229011561240436899134051647938711968032520915716877330104271548425578564925960928349167088048260363174641704137698390849530737429116573480480672379660284865193805899116664155486613019204777228132078103534236028840364811089444821337397673764558716384461287730107508296034967109465797527847245025586026237379413336241744419724597774557067610376088751531821068131994112054059860747938375165883139841970628631809319595570689338945342021488776367472224410722678869488734573345261549008223403025671526822181477434787406436662626139855804372219836935564948209053637644039656915852931545072855313637841201599365650676602650897066922169734914295312251295988569429390059194425702755207674948414848603361808879887787390111187259086585940177458656466443823696544541335389581750009646221892018986255924383359454615829792886269379359923963885583469735494706724733803995431625948332324118290815119394538173361233215863680168089892422342888188212227511060332182431053314118328530054060824836614781875096648586455142187415881613871812434925319942980424239301378143368445355632479750632104538231885052175819031399412226531260461799872256134197908080160611824151545158418118082018553273401381297816857504958669494870219412619937886514258641283733733383933090146888735328349159149121397435602382654584441528837688365427755738918206484186847947185801283570573701508829601917332072703861418999623956519301167399628540297014176738223409900465105699660380366040789942580182571991943595828186689863440638828882806334652200736576651434131762813494084723987987157052877489290888507889156145789684605654868337042444336595794980063663869057837946325247106069657506086020167231535388834562568370688903886092826137490621585921507055996745694397827846226877873192430751977766140269962503538092141514197291583273543294907223406858718789732242000432811812941889171237713495954415688923763325978688733983726193517327226207460338531430232258453288359095793092128768245756641722928213803132664939401935505059811316028933795197309016313426882882150792333336504362330964797798781269208822754763065894834018116635950904594525351438721784540668287957466620462519281210956523067203245841640606509834074540115172173513426005755414822929537015759596997055003142824217624878002328995986661304836792285827142793046296404211953321957262746830774721831192649094387283478651449632328164284933059093683311495059283674742492047639736778447339027111529109536192585894346358357758383574534794067420233884407550377534028124691027165972282528098388915179078870141858134762272376876810693580771744536255678312491683966396998304482949243825784377407746244213579466579930457027766546434268212362501274376803161304998399182436379283508548072653236767841299838678236421120887194471458633284950643516300108028569490157303549076101413806923099774184713200364009837368124141218131617415813362234226546893167280702650994442217184050450499028228232592490835147291844627724878319728908184609104978165113017657723934791600678806624881319941601742944313974545645828334357596188223205765381280137493437060992849102594402280023886933159198480084220327103233523926926110079561813099757123727248581437719908113954125773091405838210534867258538559183794204589857875736959575363456978050652752656838169592671273310690118148118238992377680592840532380648633064103852168414492953808927217459673517742027839914613418747303486991366128030071887544286836031849708977891541671968611540452259316028645398244141458217883838010736408336147881961231903119428509151983029201469915245136105356436391147478017171945832489874095593440312928628127160645748518100539562964774852594762324099963134916659042007629512633623894357509971795519985363015599871862106110110427944567866446893713410474794389288932591239026753951372002176761367454565125018622461615258409119083904287937707342126572750572641079334260954273047268397435176689077352642124402940283329225489143268429071411021437248617306168018561457659665875287691539201690589602218724351818159702645811843588100728977504686331333256188975013803250886401673384269394378760731275016832915516833648944349720394338763428221693200538002016232235709362796944167683981142584176207041568474851217025947295869882519601666420269235849381488389924436035309493051018024464734124098088191153479472155879642722699088299889294908945321655538223642735727684858820945827240327932414461930827285279946545867880261923670779971546815578742414344989277024472430503895472774821723027387152266587261546511280107882450307697202441385874032261632740923644311296739106966686550117487962707084875925944405432117415036226290899650153691365078375768333576722924133379212329702525258444048842322193670179887527826164079322074473878979920616854576536049140836213229043163267721612197568915397400686654353585646150477709957448913513751261118115924302153729869958279110632893464289631885344129299613220570409189170296643235089525143871882386030055478724262382239025511159227258552233111645204106807217035268228306001494346048490136845957568539969069603349183358334126892929709779841242466758002475696511468599644375031423066818329812551525242234654277763886249224900449277486061318254492300435656643624627647049287187104964334336137369066920533990100781696206332793651807838571698627047531646328870741035097357305318012147754688928709718101548171748954401079504211486620660706097190900204339114630209035730978459193747627687258354643621879088793109324398317793617951595783899017425614358114699353104514765107186982628305904159605238674913275894052716767122864707162642113831980469119326388692573722908642052079989795863489939608236367017000111414109331473179140545395762192223932469277376805603607199741685864229889140379057510022180982990519394483019068326284789597070442337018670746174273020860699392399571574121060347388185825824173649284879530461634493553027154735624641552511311767805311197246436792503756938572731067795583712436697417479474756092626885810873676741747055002193240289587964623370653661466460116312765491452964389885523173174435367701718741197873597042025964918088867158493183345614303301087852608856546719487641860787794443722089145224480531423595104824432470555532821266590457313795349201600563323492971198612193645019607627519733689082586509915891404411265112333812320630901021074344051848749768144166097550286448536396118863926678737720836776530473919346426701841077506775846613213880745280328325651691651278707368858085091860175462469228540006856836656786068140569401056111480464353171732635467447045066797730053550596889941100961801421307801838019564187845261023149136214764712822058804224857578491572012333636608240651646535333265499708330275855489607645904844997391633224441698407474208365506795928084353399042782899818941794479284529700772179719557026537417288142044525452856410470053595429715573002191429325473159319528107614025927693357116014882443102695666460493830890455789724210929783641508983238012564477286002456567006441436838502192154832198597860012081699912837353948675302925324807499469829065409856399209820890139313021463872944893923365064977390114966443686186824525382113450647346716013865074459085383315312056237572622144394837811829620359276544139444820190672942424694531189915011368894094200369450680898444599798134309313111740755825726918884284179351791940737587954506006839204804426826719401437151423710337193048027075088211921719601405841310487884919351556484717615648155064257104860652276412173271136165849298421654207068814003112175597225712420327901421390389970794769973287013077790396121653912949955188031181400602947943811496212202141697519215088168043513520461486038808429964993046665588181783243064352251686902814687639069540851924491906863220835565635037872064547210773717229108459015819926655131013344690197270101205940461021243877590792917133477023119585947089799492755420221900219317783461897426713980958939655115376050179617906310957995263399249412287918671337107238035287339783183589115559336073405965547978007995483485041494743438279470394749213394097594278231807682875538494095460948041129991460284422721365400497832137060495069073597164930429941703681742327878535986081861422646887631871260655534665174245268185777053635392929821178723520642408362013495102231347914943986339892249353061857811372432090491101020922366506806597875523211455602195114903748109861731251764804865498354070584694404498406483151263289977524219868638463609284455685730592994453026494602169728793942154261372617324404726915217220817907965933322837405304569441586740881254727504783664988700305984363078241083551747641218171256054866226334064489047165567416859356656598142571221232113011431264519898066980009643096703396818376509084770594389551371940954732266933079391588014157575701047579277434610969976724880172211785759385914390221417114182848165928767308109027000817674538012967707750118855367944300809748876263414592932717490431980455078684175932264234082046349510201004439795634674520519103560828863303797558477533032173620017361987101379528822712663201045123785311956617778391085766535441967361470636857017375905467027385988917524771178700908566476468063687611891055373506674602824788623877614007791596990576495237188754905653844092046335737146397014414024324708400112092363395959961644735503940886090771507214628116638845097021965402200827452908231235227989300566190997746138800393970615090071117009448687416148857644352887112408349267049884268260983482958330774643121733737568515453171064557706518534201953973666746752204769178924541567555095484633037750823539286348089145764035116691165844876492367220240423562175678479924458167231620289792421392023093171941671985604513525781111811834691057632184115987926243093902878141905931835393232368053187846854334589178771062734502279493564497492370272020064914951043952232659181883277920713154954133178326830226346010369404563763809443563850611210638150349622492914582031827255129286576344631036983648560222258073196473390552397573991944311279340619060063821268426907316378062128493650618942289117130365096516608502216248102129243098204890300322102114762500593730351154685021138768338808498833878735598349439752872713762192734407679063504549911443160100634930658553410111159388488631733373752100657705562442569881468816073274077686877856525200690189409527588634975180350464175222064034094888164022195234999125419753472265722624081090688798845320016732325659560628455547031453903393465632349440921009969371472381588888524531881830369776737102970453549351350882953678772315149152605316196195019651471250558547747576356391595853558349266560620557701243066623945969031154543199004485393440067611956817341905025452447264630151216663780512776324872861702761068492248233871152173036299289702694296639027629335608705928711219455399212412058378924436146770672834642465882658972523227867096516764279597450701563159812799644926174954902859829940506076988402301337231560691740098781495058885154504198923333518960257585360159453423974544551665393955865893446040701150722428521304260332530469928999939037063948496385963363550371562118154272493514185258312419696659182547886205595687742610617673697865824068641833093583865656766018616656138966632707228481490892618377115014500258772255633947232479097175807703090227372525949601110029950498471614027787851184222926399650912376119625370702340005535677228826138224569408441420677090568039013845230305244396484121809737931040556020679190325014089624291884525141219129618866622083489818161629464384775682458499019372131226857604350619678088509248623103655922241879390483828814035563670529971332841939592407392050984164777233908684734240768605196124962741639627187494472214779842954767335758114254683250263478640283186581544033308560178673224988173041506986056210103481641881998878208876159317338880699089734766004323879756142497476452493538262538485866909643441872293978501847324286726630590141688987210166379099608761940508380239169952061781792286433815889456677842708189740034267143020412795129691926559927521931418467375615590294337043270513514647456696352365116891737019276832078122484661250455770373585955429339212153344356318024993420906330167406376614768835057763644683426716014879814509896023417555943680186359005212327969645283744239212808779027279751807270934403640989184142967863976950874142431593964097814775040499103782694345348164471986426564862329060460280672741490372342649982541228539925441681748539295303076835623550867636771028671271221113867827440625966341104248192005100736220796717757833569032603813360057816652619421858964624744252004264620284507816298486596145462012359602177552726654171897140704646435626850420032699269757898765510962045630868141665781468661270466027337097916521856106953400279051260523388848155277958982016651546208589458968339291569257336834989081809687464386942156295013569567186003404736602268830217849742605112850204882193983885664955781887293299430358589665215331599132862806964734195740289669444986784197474511843635907689284147599922629340657727190183870252158933816514207728642518769675695552696435918361161585155694831371842808018981604633777116043100995704648936933265155626162416643236573962924750202392308093353824307643400978767898915819370556232737324677905799533361200726943536541554997319685089497842412116152069767797445751172566081167518920984838239824144050952914685103207942843661481806009079130154816737069370812060892119926214248852699871338711807960434770704887262385342579510575485806534516824473162026812437563454867833441594316074662145593877767582626566703682094366665247482434956259913579791800781433880700203349507248823300419255898140318169841740554459887111520393085856114916105210287510932217910241141439452154902485327502371489324314909311135476620079561088660267021387997175818837897335334309072194277795292083484007938688499814399268020221285251188081808718810368625606173263375338348119579699650185258931731340747433334006542115829786754076478753453430289316436805996827023287966350250692434823151987559339091610545357379592035061652210490778565887953047602750760472623966676146971848140036895401931207583089941938835428073162394227767041334892153234475329294101893153564009461354379977934775662800486285027350206772034704391638019951986082419706591728571963944842641880828266799674538068135097031995034454079639437150013898545266250151196995707562431162184496880345582676510065882955889428516717445738816225237989615565007671038084399288487026545040305030947948695897370117720604260743678756206642060547954250962773133890994958194333846763913219235842224338839667920156809076097384620646165180839470484758188233580677519991696531388679324332926113150256772527974701504431794789369662001826520271289495504678714666127327055723939454419431839854349742823664361081238160246226173410085131933260748734934290989722010696672047907364117820353737203937825898321211506262879568406102688405490708255397026835981820455065667780753530201756935000993173981957950244291500492972094153853356854261067615920484275176084930877633260879247448539324051519722378362512639565940333598844930854767199124465500108091717288903229282297079254031123503834994136771496900699986611014852356460417364074129975157500179017396280856075431690996520191982844068205007176428456770108406982510272496033170109887615645438673369222447651681814286904174841061747271297781312169058678456367638213737796806930176971433178394307335232084749981274507269340611033600791436118505237868817406353216258273373569351715211768311994577680164197981955566984963476876281417258583559498636537047649473911645125425598042863483564077506187681256714904142495733744582156639276803182122750194838872987709514265327630450316495113945328045507185209127584042509907660957791173108136064553616252464024578727643405972486045459124663898900634876527062187952064641773093583812357951002808247520930776901683637641521322773634794972849079354159689794252922687730409341774966638495310659867165212766806488009736371735036074578304793911507497343779072301549866948908987943410065165250365216690346847678687420506244693218799471933298991836629164157574744952816678359856884982712662795956539346487175457507659432083740514252050378152286699489690144156503247262951550916238281367922841121939958674789171999582610085673716539590198544312817946196819393434820880571198532827981250618976282376911642161034057820203281367327380772848622386571067147704201042239195510118118208501831232994999899363703056095621663277453373278397877845413603554613082537792888703096471967901411003942184303534970108143299483853004976740457425838850613931416957352639072054380847451243012486172992359131614686585269330693344192410277855985521975852908744538042382376444389140627235758426951004406496788811020567615591332920767104423029601134176696224363053707353425614729514897680210916753886470471197666971164709704685636867531240554891583596606635309114144350504448293105447919800220090844185135381379129798274557221930871973074224477422241735100589784225281629044024816889916400122969722789712551046659560428400642700777941051325935990517800058344368762972804509346518478716703968645391668601754406465564811860427618834349519972086052997990795070631291623973572527186723924152943678053889599007209392240833062716307762678225758985610984856056956380507589897648729986390014741086211878996833098381082810145612801228238913559239462485517494484252026533448948654417804932373460351171860542844629213867116940261543741270591978468869421781718162483066130383941413768949568283216231072111666608293030175310075162594771124308107643314772176987512086725685879597839525895146494036570284815705054934899015640510155655833780402009505658265242494232506435278069370566603430900909951665509709830228279725275169653957125528585289892245101359466206708088065595409929225707649029782595687108178606038710956135885898894512140221904595335676996224664738994941110669675120869813825004985696178699608970936147335113863633255637523874490007736868829076654844601520610146210839213778136172227882542439553757808754413627910839154755815931158286174169654944560746598784745402070210081203274491734158715371052770230268061622550469694297023676024111522107180880859892842533268839468003052619923754966926600576032100022511733935999431589660209753097162950881992424722018881847906945674460346475990333619505696333401688456836927766978701832323723188465802968845280532021533275835767622334763780217727872544272145280161832147939074289118465268485722348927144080682382427186041625389296094891492395159885753517041303972758289865779669127632715248363089272165060789390954108478077393599575096505121639190510366636850899150353295039786986611308242595856827708408210275431958196202617204522836684025277637700880251272421313639658907805200517982334063672832536226501926144068885542940611910432562769469450114691737251951517356973377366096099931307633212109356798110678180919801578558534654709993052478921304864480865161264663635711531692509600835635281443168246756992616188452340461906992975708304131668325144648410281622008411743979751616362819295999953170447458322619301028877748239079934226892548899596238358238564545547041497271124122382449902204237055339678325159661351647007689711222283346519198863853718538864476511128162871250525013985612460513411676312578133866837765957292189409055556914161665042611556564107360255187150112585049814128148920701118310801587710994278592951917499216854332915083799375140733429551245809610568517262009723393307713064115363353848772212601918102743813911966510430426485305910864385755422034138244308904109240481165162717029137217075543320871490579559181715373581452510873537732705718113075940888717408985954128701470816913184349219138911868353242343947840949318139469422464858724606911424962618025683430537672888805475519731666434055793719146296512918610523453805672187646707185836652829945724746263023831973756818967656225534741875710115726985513289802933902168090174259485230070554188314716023604074473395970280957740855271653107137085668937367517350000250680446471765406384265998274347455330969454359628718795505546362338307104206647686976911676814171641731329057365323422643713004744660483640821041776471781137255648523154754278619777924055078032194110435588315076672575865412680263328023061958248055038039902251428724900736870941735077487020995406847562984867687870394314319742380375491687623881869815158635630141920239248101064437800651073547802700410345004523273817494561798352746748696968389975050580039944696445967839368876284542516123353640503482015116135337239081882209673990841511596225747496030197133000803855394817948908480539089647504060661236879853314604613221032621987412839185810020561221260348287817525801489967236862098284793234721378198499569683048762043073471011524937389904007042251341230948745358580021065487628610692303196271451053347064568527010658066657536291940314132714405719940911474137846715004445306748861957782165387037198183644052428803804167174655841915124744038426604253683538206693475557272945131623486571884488749257945196926939822399334316340014729022707282879923501918345758666047849688302480728379611637361577203136576129900127762249648734793394894153257865036819031596155298956469975233842980950175109990106410757403503545950880206074119902589198448727550110591707884130797285735727181018875025132608863078294783395484761703869933895003368310307465155319338520387173529936789119688740223063237658602499722108928120079554575651199772238235064240348614785826598190027189925878604349643206166045370120905143826666087708175196916324952071605028006571784572430520709207894268403456669475973279851901475797940151293812142498610414642506181720222704981267524161548936263053022330898782335336458091017752310037382011884771485930513799091183754659423672518869718318250294377962274051127092622938109922388532725584830719537311498344194408908426178755489652910470902148188866566797572467573312215688209882862981807435082835263892175427089660551422845112331975647068965467655921936605260532919446689463094915748631321016523931409488967773292135859692664297335088090728165304666220996896224612356950525370582103087424885220061992681696544354941537685416776012784605377137644359209305014843477413196293212709999638408382628940790289109912411082507262460805182237931960478901990070856154047773062035843173836831547551676909745494948797616492433735312203315656174194710116464624252552777397203405756974345862444590517865197944818199377275873413236074831158889508831435391951351360540442205318491101255586100297174059192114890746145480068738210118265194167918083565257961946174080881771228827240409039584050022115920055372640948292440011088096362613050851258966255514199620460258823185518898084718894738231836350891927483568439291504182752958995015631860796171718391029200561434968235293824598919177902166312246009901506435939268501481942298191586130338726484236951793108832160606631781525754759144430628062253154136495312249468373428295724985133321707564247731862757304614311402394205697635818956837047161257650444876407311310696448392853356260403654553020203761012057823547299926279955849171653819885695127777307208962201852858254167156423422890293004125618836426143091269862962595601491310714966751648337260083689139990142399740729955116278342584535102457817751816878096399064444400584560493897202851711153819259599200359152350781987141845366547461052197716645266780506020398309067094434543209593426076257284556585144814979856326462087382294132400812636772344168563691056074443349971129693766990627640598475899511416957253236985238791835496619900314533005569263360643297420551844512405954580151960326925650152052225439197832471845370286287567938257454765986407554886924672465099716591306043880862391847940074047669160134572421366249222801860919371836202069645918015883153535787120055345179197647478446091459330276271157676621166582484014410176198279346692119169734539722117824368130317865099016702441077247324705769434951641266870302670187726875439078419046889056833603910785510920365058795265733869314126366026192877101286675632791968203809554031086131615873521593420454652488283255518186564624486306748543756674189756445682347868657660931051290142495566293469205770911239658195658844545115882938441333873124824221848282948758690971892988674915686222501373285252243377779218540702678374092046330021932211438021071058793736214794767517669352742057306032224114143343105371041656077110262934952184605231247243280921369105373827635063557042126769371176145023475062897624522730287187175515809154330195969772800877858591540125910616402757788285764136794517327155462213167599192950339725336897823350229612704772854525655917539667979100398021003702649529472163121308273855551173007733830954024380524909024772705354063964313946306025435702742739703717588257523045552661074583241299999898727801648586769249276954102801690967837326204952709104857678533321876911093179741116059822325422299920820893710753897114040521106574129830019773107998271698940458926414688273717644627658238771048881802041521344608312282975672796539621340106189590270912723471044929021631963494982870216256484840949469452899507139907955241881877948114120611632941400902245995989727871497679162936044330036745967462803434018548629904827562459853413483632257416520806751900994922126911085183812364853077031925193268203059094955925439107801704347360660212421006037023681334683824408108091011664803986461901218506521552687315546371381624050066579880083380367780609066998814883722899125245498152475595574435214908946835533187156272197972436558353283109922134548791782432713714057525775275734101148744271323564454807961065224042633051819557081312338861179217540264726813758517244053190051986590752658704689888042564420901218723339210540939498817567028156852479438414345324282456369554708025618338404968972166388495148102610759750244413066029671047852505236155665489658283373632272415852531218565021740182135747876142899904077514451948304053799331404613868293153749161467487019766010558514053373593166960452589311432087685324404929741595476258217675604965392608501003407832804959011337636408867943125808881097993378293867405413631728737263715883561286859774329896109564390583273387581730973577862658199755837419806799262069517708848812278388045520005215782113669639806472906073128767851428921589423979398328335527019179023295992479083344845594737159706960390722701548568999469152287590538923483105593325727800099291318100882506955771113233018408788484633763329631806203138380427258440003762688141129790371664863622867772420656816222829428198931845315829998907968532388814162640752699483883480123242430503448614845084664585678253984571845806701608745096381829411103249834202314929178235607460556713642157348387882745799115187025649026875805344291352274475972910256457073246990525092960154710121005585028564521358231923118593131735960955093900025002394931174827718794331971543274586405719700485983916445402542548566920823317236145498172910216409901332702567594028429631591598933142671815287110959317417169065263260013560244958150004325660065423235838533120981436725371575846822602629279700551644456061542046213497766859931105256830754652603360294411135633441853575239931054188055871522090467776499318709958557662361424966656340961715263211737103753918943397209943703966955656515313938312711364063214642944146504912300290868118353257346430541054085505039185343486030026403597160329994872585304278460730139442698114253584118587912388388322051546983510060940426591718380104465222200206398221885763336952617755369458805755981922408699185705987608933628022028609929400245663963898600836796232803230717270470708460040086988387928083410968593933340853871674363356330412967141185416356381253061777933682686206960816519533842526395483439226059943454217437298462017212627889868022180951579346299031742177412480200061986114255053165981360186376664072252700679250847018162668737218612734273520359289096062290255704903810858797844210819154689377826990176537465610239555736018360571448390839862620318625735725171534595767383394567417940174228286778122263535029343811202556362015853312967070001301856113925060427180052655180525622454403299643657379508650139765715228128420184749745203446323587329844268145313919583749501141806201811973949244129225474249991379940938235181664513616782834407593225277768038289634121173509021031494459956063913869815451538315671936000117857397036719074263210243040923561862904921959037583737483769391675840531235899434042132998731501606564002774724278903150698724011411592336432568726828165709538797880533386298563263482612863237574692219797430628576561011390362764978464409294472186317334797205612360885174403037099099341580156590947887118786172593668120836621099246914120786164472256503952672608343393799835998630638419277898519752603557053372593175605875538117063688510594015773935963718974486033476843803802700903604269198543517921240511855652078681340058735147527462300932361561469992597828164171559873697282380674703984771326675934899384671230690359131865961220476406978608876474681079843931316398368207945421769540653558390640918071873706826716869267906196849435569576498153543876836487148797460813715117312784136445109531151721169680048189090351523446930028408466947393268993087652101165551567709159432925275893347026203632807712150336941420781620594893547795075292981765126863836631971842666160686827377820627501233061045214984228990013647212645370059369524846197551431909488484649037787171734904481520534373819279393977174216711962942057842686125676471789017010019413121529136328501990675175304831202687476692526262398087578063822859548668634881905348747916550465096559779779797913356809483312653840133772245608983265408284839235124396952939909585400193359219564902986145892714120760242385490025692144977975931460266728649761891255332525052650610702629579830768237736486691954356167472502711689734327731553337642403628321108900550372320469301221211368877851377951044627830497898488089594322688526026843399994699475704016725215102063293080155429807020764145433315572687631286160621363679005160872535438920370382260751034730094423325875988961313266844606543135239419687823336862369151940500007087615262091606629257812961794382695178186707371095886123094625653064963329657749789966707899769845761593289838585751747661143425503840295345538949470377137299609753687596475373628812120711148084555188781022258154435075862534142985638406123940135638849198052800286421636832099304492869390630363914924245675707570252421309760856161625568112750862203919450933994372200505063422737670017119988197522384319452701956867063549585477063638035459056409601646422432734140213157995134511105152613472827321652421933872511297892014177800769504673949555248056349792528901924818114776928253766749889083720526855182714166463013495155661224342059192576486872386066188832517809461613624728249905621814883151172784271272625938961807656259050508036699921191799413008679476892969880047748055325279532340613612435128670645322105843559416993232303481663864607490847752763177577817765154321386877236600371025080056443239027698631847813380856835161625718221655989710013329033529297572781315197364843443288678606285567982366125706109634061077427480734506721624396771088164799646851306538466241042492289834090311086413935828063191427784455253464968567467560412171824492271025534696630643798674903069749933762852792088052482298252121500490640075708254750814451099547890093657597219325624841862214251328045490163290817317667273597453231338180587775788160643827452494077658348111054398533676013807567803269742477380988871721165212896701635006790938293927558584689988575735261070666356195942772274781727992280807340408336104800290756107195997826493154627069416738128016824364622769463076210822506497244994189366649350156170191669526109005367476592956979883109908363556231950077480887966134135480586150993068748016169571497832113591240356595496476151501208045133489966938584428438520014287337932669935754188436759011365821377029921552934741164294093167790015596424418756722952156667468279655444042463651860710714047189199919784450538933420723676554241743159660949348761627029608643850856530281765670714873389448606928363719692128999658002106457551631507837935480388589251115921195069959696085134683006494711676418709596273864572342292108125393771476534440477147849753484056372647711710232347232936996949164054999233795526529536512258314380543647897826250772909996733961068036373177318860867521998785762775972663741671139074032111017011059151232848884928456263447174980666458765120762463064233983787537100990123273913780969210167550692629864967755053373049651016179019268171075268086810696292728496337204951198828753490041474687400270788455032110247612425102796259005883516677857631428445890051958928420598116596248287698505587525377246512021479148738105476199125777055753003837206825128685848851449800102465746461574430512962764100108681221103410037910049598551434286286229329655504263515186628815386897612397794578433391022774197854688473089542122839863878412865946988011526382102710274378439389497220879480713415769488356755830712024466263945916392274040439390917437885659345751956781835263207325549424083998162551141418447228139768122927965326371571802475585395533254378217304873709006537496747722914679444903967702754388281751326167415947878391314785597644746386663834225064986740196347039915119077330190402092499495044102614997533934277214917748329633673108027657254503023611207994889807711657757532782602801755634566367629820973264565929247506334271893833639579961951430401928087917948925813198770207571406508623397878638199702614310740959447829837820816870724945326886493876474457280925632764728241455324802986013478498234551471868285085661980600563200187174345747039321927004163988829972510481969377631636153916641119641032054250485496457020824545895514390720233197755315614925652267246440543907056514327315921869891611879678858477977145854416493761211005859296505842970299414435904079696354544449640273903528072172099236119757142985953955915128025394163464221422994299110978238774123313593037825046052477904378170741473196422058602301473290751796770232365777045164347508333055226081381708097249411659080050627313547530905976596540826700736342804689878015047429266847482897602052407165670150432357263902156533099383472075312665800573495782974106396991713316589326561021391814563578868814024783117677145825163472949444953773912772209635377280495131684390956182336393023745423475739990293584336162768778508622665867517030769901184508910015471771834742596973667893165686399388885216224098120798047180918492024923814364252294432629381598896905155708082507536332693927367210136883663701629900650579295002458421250842362071668066372556496885558759370941561083137313113727011490403548326591454932906010941019184823661061179957169481321153300879464535739084560189144326852056280831660311953535393778984521907587639889282058174320975091415919133219662304903220500739758189353195193168510086793349521829939867724444387574163689400749303427760010281334648477842955154502000343969108372713244362853941060355924822006873704771472695068001632935393671895907957349675247768469149031548172918958318246950639702342138458507930572324473719687640231107860425638618815598990006275537847693200499960197894835792008008197692100904181533426510154434779270452417792431903776952913314464557048483774781115533112212939074927169248250206997497565084062867933867703473814161714134279855010717461072345284587197966700459544128736972161196222442972223557670314409476065776066287440362475382134729862663692296157669464028614335769800626070492386448132116145792855958833114048117140216867034155958921156410287214006236353833082664416071465287747340407267624051311231948614834350659865780227141525409985162153908438161317187584919242739487921304192526276620599310379461339841652653923767497616194506571067436036116644257981575000045160878564287850046288179858219661571084967523798195496538476016749201523108016335612998927274013102329266176105486997110126070320592142539547626994468804337438451389195990305515156714479907350493352854889843944462113197246164050048359442307631730853658945091404132224501871735143428916663632839858957486857631597721901997732913282060948685261636030715125174496122660065291615245068056632762107428645110363927471872499668535967932223602749018776370267438370412487288897829450107058438856456148146366415136512941393383971576012182713760918486211878222376607155578413781866176638664669414713892967038211889685392897580146601257798038640468482237952503932538859750090868160909465798834067292801376737576073374615918323943260433160040835522870858496484628874180049350700536550632407000049496033568718934710182583909287787905475123823395040466330859319545071851659028811834112848780092888662118447422596603284084934283964332980454530864559025873319371347714096075294950677494933246151137264427792549145675113524717040348262810227315465648674107044230115729062687500989435084574767786846835373994878499549539983500244018591841373559634401956954923328421300784166408175834259991392331875465592291524374575347442388446136318118679714136136879680106503170864236330587776254184811021141230673495176943123784393127227726684051981270539442389910093217304538464036857870101556245579158042455519851811441825329393232395395366741695302892352868132507281301571736098659888042222879898708179273455237127024274098236937493253910731279731191156528479119557913372736168203302486338597005375396922483639528150787715967339516562736184937391323223577754899370327554393341413087907455317798084628964915393703832618862849740034935231865746284690507540605123320779491159142823679441617100596232143208156969116259057273371740058644115770104634353576722270563482559723156737802297362635971650099833720295124426597953166795880553936301564566873462232294825191493138700602726418493211972425470364509293356286967923302060604963546996669090812894626203418595648123112956178800842259690285943949492873369155948665196804192135771300045819149801801479896257719388745540993944056724509901360186241378457751214474722723640535662522969152699195494527823307721264314908564230546821853502932985719310744004437644442841260561465049471037325499578680962576827284874150926801852589725013385862728748636912322575204146793929087891605412446598338409227406842017506719026969250111802969877060670930494740953208627753972166676911880791486337112588198540936919844381227295798322114091432166167993929578352803919681365900681408296262013770653451486022783787893757823569658265853341673292233906144556431187441885846434378057921761944279394422842863108291581868431787124329954581623656238183004611829329186529644781897965576001413908866560477027051107592560743683842731086159451917375467323482322969500411843311575168175459881621730588939443071330826104985801843728751351271520040438568746014761848878706406392413292499440689704953452612655079937551451239878024858620929060432616350505665833123571576924581744247987044395947017581256161635650209673103113098280912155120209355974081062287511113224896981415263457200644467027600318473419525218419455262508673214246413589113003927761323598328769461552522202945343917840812933982545985981449367547524885145258667144962549750809849650946346852649055620526395888066727835938180364684450697878359952370988128926287259577630231907303349388913800407007892106262276992608093145814059754500300071772759096575843969820338127340019172793571421161104383485072957288816808350406201777849456471152175819886326469302559370815192615654067265262314504240701982309000587695185524054743546734011784990033916691626360415335211340322706403046558855740728966788022105456995587194718840115518965421367780536436878409464360251848569488299981259440796149991386520571927244036520041186041933338612231158073271140834744021918346036199455299625062501510961203662516111350527141986071724766672156885773765878541864886757948645741118097812728723430748768175958396556472305834382849872647172105214782031105530444343478809924306477309534737655215267862334909227328523691774950857397573871433332044512040289000904829474492141435455721959423368430925701077140315268342227502073094394250889933321161207979818016593217980213051320005075991681959022978404228319239386813559267369483346548669791892086752676645423478816537761904752097612201824391895938586824111471668230960389809702430551701297457869659182946392516104937364564294523774860750953226097242465971192778980127221224951117048532835602166846278571551011110942592852461323341116994375566846185363611591602681039633974897612236136940571964691500195641329028943219419749362544169087720658547557219895294783032758248718176905052029969924829269685176769428021040942801529634784446099122360874664090936678774648515258210401792252546638694879284856342375092634965910350325193979705249877654088058352836459981028192893631818438871082627988235627226392064381936091302859695223566755672803109901273909095853318367159586395100513883405022660218562561309650428692483118150025594313949119122247156698611257864095231153344368125401802445198570929634303950458590599775361799942732526632356283080068965407109371038218041759967042913749563344832972646614237838367107262314043080042606749362210596805960775532916073142142282380218682357602080369163371220505200131417778520700936980289252666743967531929662708265508607772684002987546996340335642296474627782425879573605552270841142341313318079332688204613611942735188558055928346684886392577036205392912838106014469895378297905941663143519806134345521079369383044192980686989346851909488464142637521285953652313458884541893300613623521406669068891958238339199914051179428476801374477523694521670127094379112824941298968880532130678471860723063063518190920162615978398597768936858912292901730909160881899273265628773705316166184106156485781110928282348240214333385775310236574357746169999590151481888689485976085278328145872104736319085343079412250332046564437031954697826159664202079203146528151507763200361904100288112827209310383486804748398049344482174171662969451501827769390859735715203738060491217015040735152999072264323680147205157370509122021424796855177538568318469085947148329945970041698508190659339509964414060290894990481228648960507264660995327896764561976598043899149776494777266590986035472583025398912131540799136683272406956056409582323602834638481267315241923078704891838393339311479339931500344332803275059440444145630239811854506142529153378708906370776304340787572889104690547305332840410324723042544326100037924542130775731228223861201355423178370109003595646110345784071152133155314741035723668995926706046474687633482163760421301109789006728708715204536585880679904841998446709124244978136794111742163733120778967830748784333809610046365580909792167467899735251076327441862884182883253300570895563519376033312172744464776731857945934466728818364384071367878229462423613671004324932856501079407704246398900588817808119945861549076319370094978073865682668110207257993296197236945295720873479824438330400607726258627273433561372780870623784819013107630040495185104991649272114506056211748574124011767135781153552924702933642803900775861066842184931376740688073845050387098927092448506229617833459894463814418492734264041491435768448942054431578685350320983420296471135914595362412884236590264188336471249339376025373465357975743942055773428243793561364975928212695600884302907419664481896278044860226058746760955469056328096946489461150573089362106612565731185536212030999974640624103948234880411609484725196626255921221639614895269212272801173847444624986626636913635089814320399425304131996068146860097381787628848710433518736791812468669213494464095156578321564299168767831629591230564105054944040792661055955699519748159104875143157562217565620898804279567846722492204787857548994923118007859908092786276398490544997132701161534704034005056564250830039213398395006495261160283632854242504319978699307514486649648701093455903056376734198446415883562283359760831844430945752573480559523629458251601327373965999775278881931534946839702060089934692088864848845576715649226955817418347979851776990635081661960295821692196537291505808270246314349498427330735568794975932814357763563606195187345753850511285910517987428250808895360426016881647270934138721687750820856241973652249676651765878651266099087197541027448287467997913366921108828203062661622906855658304853996949049960329667980627411404429203625273153508113164723972337328876179777964474669455266573540510237160205933535230145473149607024847405148825176011962822392780089183831570832119075121526546953879903011281924956625509211951243444435442668399735390069602862441214425993384507090040777098328065791504430407476867160615603204711978646170938667234418051412664094373481566189468467939320373211513185749045118220713449037381742643398218004996831255228340302436991022866680411470403261246113979527063548982807430471038661218689076627884235549412674716285292660051526084791456061010015351822404201062544794660240203364731511398868945052143149122184821047149055947061362042665342975947280735887591729657872772580388233673778402066057528461136756460037814481254240268152157119091787580422501561828811433695059007605983549199476184143947832846892499025837955740106590331189734763902509698775262283467764393493984690337730538640269886216898603014469673821701326449807587629509450858999521631397710252445862650620811889073389114971599872650370370929712304216385834743163236135710741592035530248868872624481016272534405293088281318213492449627147120970428052320421425747953177423134271004516059602124665192545066068066583367544899191309427954105468355974568074731290007557245534525885932796212942141404852168021295211175069625213521485141606352990684103316082464900348703421771928157725065601740565199523187003510124569165164237555218536586784403714988842804235468132493370147671845657162079346710739492474954433413058462583706269435440410531317002600312058531806922762863615828203162417241079200951842111718044394465130618554011513873924405789711453746071466123662775520048153122396616009233306412227624911575311402512125094134141511372648311269733988793915715022776965540940736562818444085049025693724825897898953159835360257880969621805190745765909257465820854775413490032498871965221027724631942663823896082035738927983932774958365497778119970915087899404545852346109739567164018515891607146602741160680480526455523616184130162953298687776453742251086676039212014799770961812738106498801720600136630277223602115616389223808447940147547101014591309146390168437324124318913977195532090495081770110349242971022749804157560623407691613282998961223523901213423057171282479457892295730418575964810247757110094659178989266434826557156153569130356896041756204983555093823628715988355388412592095882766606684676917146815216981523418297305186303158647830997184156685086694307148743487371869873463071160793893088984925661582772718106909244238450513319763256585805926499059195444797726546836142009816008550593851077708151810809096748633809473927638976486678602580365116767568585637000909494413609680499176110786022217338159855795018628303867853985434715269082426164337206821768895010522305487148521000398573188809198970990644674669220653363897393794034860542949686858808428992056107493971445165655668292284559640306988897297757805319425165492264108703957765004644359389735320418516625993436454214398407108483614570338997439008029352504768675831086065335192062202072813493405040941137450905209089592856771324891083914406868654614852211218370768748346265622523846887813265931050585806324814783086121531909562681401870179683674948854475762420223065743993516712801927787066634273663087847055334862393496753618059625146243664137391449894240390755227244427149649125742520823723015499410265287646834933471583310242319694464896066272227081150883191859119694373845865219115828738060795966532668157397194725334022411282088512678207712778930610029510328287192808580105223225831479729704723502809102895105337186658530260026574328188917944485444669609186284744962789308855700401286084134652173782263417762075589766221772712504416780624975504283346147646897105545035033309029890998976273259688088212860999256902577621968690031931943059633792095393130978818104132052788108836346727139614860652563842877897842931968500284160238900891508276132263956304768601292235784004823992475621962176144639988948214081645650387754894808447874063223515486663815482246645604114970357565274285297935974875102420700364908973399446096913245311755436923412713146077280662504322972407452473594041555303410295661327845316698192193614043797128187683473521903792505178204754424315442437029082436865308139495040965062796830663086997101199671453555864219153608027296843885456152948560260959629152732801512299204893579841359921777652954694707894968520260457922586413772963126760344663714149364905947448187718080595174206371603457126334830839404247423953754689361766064924861700814812002819122682755108830033542569611971823335506174774991584233741846521887671970217956685462282170996446729198897930212860676970655494857660426003384216068773497139793035687965856911896229545978676726059512640494304719767247191794188973738714529866843270240338305731778184410071289370824042916249097259414192384046213960682244527237502218314197936413508085145345326366345506433803243809448168099266207061856973055414224279089597984485336234351710852816267826029318414806106580872807897206284250709405299043783560989417666880746276029550542978707775841938851480266494668531162803752915813951664293320975495768548268436513970680835838111320993415544585554692558395915076708505310818410529964524833874521012837913787278279049425272581630911710022072506546860277748734091203142462068826091065417052902727610182224906795488904915926459004755371687309572889711723624504518696348048104716571253149784478582324473032069949985346784861285046925373690212316641372741564727445736885980081592986372447726671598648522995237773237628211323552144028200689193184381016580986632268366870624610808951496554668817780071751436703716232855461516070819898176660284696279216734542736737302996074262837645563532582815463478112488936407546601187628137942339697541943544136591008587371179674618041363522658129566707286388726825165548965552327013488035753296014263596185801114244215603517916025477287186048147379342403966866103153108407342976380994027724978498737422268678983053681213719447447304220192998945698857412090723188424428117930088051124738603452646744673576897126869700868138278421631464647300715474452497056502140641070742679921646359454645755056760714102828383226754153588263273776565965265379492543903294812504237508845710007546117576183709360938069317427110987313815333338031324395684285266085101477372004595708904343735653918957312108001347068903727180667465715787801917493629212885836516023396700893964665688269813653108842523081492079277339075110829052938321977930698575042390311310256938888253952955928071332625780988863667147407445211190967876008964489755535200361788972645227334970972437637192175274565818996976687650894793187995050574525191451994092887705657220583314354031796357648578268363040811841047191092079911272107502148927432073558365445060168398990957673860996229260138383407475995998507034097402147383582771045478822187169752722556896418782568681823212617222696991370384088886496622692379765277340245743288755451831404452375317277729017941382316306984826765770364800698522726857351676970482341077510311066935379857944031139658512737541460515875312464394821040670014469944928785767075679972415937210181748095940516481745729595719342890885893332163507920933316476860172231524750062363111817531965517872427919607507064583918992112807397480680471031586008146183064137276201257973677950983412737628138192711974485826114799843649568301055803836090802573842123783712189449499215061428361092158186986185434130327761069731863889147787209494286930671343525690623651319172717286833951648176307029361609632806929037242840333429206130445543810346508431640216954061336801123723750886417468874379247037897432450835936235688132767986102244520169920577756290825596351901110447781563527875488132153940169420279981913757483814864788170412476931988191616610091285012817631046274636029322728588236997487131823056294652230156522518680320546854214151838120109979724878196594504002483756967522720960152598239277140737734456155667825909124651797848678653416110557586591087696474866745590025575484174027896412792700667548299654755547818890833231964450049581288219248322938948593144093448263974357014383249134945682832964773040742250347899394228070371788802002852243808679381577412095954706207194672627122732663056569708461975404196591010686258443960252777688426543893175219998754667612123573781504999512288676443663341071063959803735578547906888956147958219623182318725402018642633789596695235019466918642783398762133490344124279422136400624961774779685126104289202212597550476041003058053502964209145950120456172701590137712039953946088626400964085118253947034260448318954692863999308002238352582845805495925523740717477484594608430027067710669631212571876166361194863207127957525228149455406074098593320346839596195297990608423199454930906995833260890090089548667830630805620372849242065403041025855207817478920229675542918191584644211766442435627588699859552816979329373018455516060705541147988965402719836147992088706286335882375405339499504814617069502837569648254155620452314174194685285142133307341347112732734969519899907839525194778002573739003421642379023548463533862978557702342056848169221663939938553416728546726557109960972696327545169080876966276041490254722548057670886674346744367504137139939855588902978305889338156802520545273039315651804787428769710217926230679845098626922548369982317862070673745227014044524240770521478029980449019401318109577764212460506019200276794624598694338808203606369879140048452120220169023815475815428838870372442263260275321981707701271403941335841189805027286364016612254946529203443761122793858182507847989216376246844882748383665195818501475409648190537510517583746463060169988654479928857808568026982272745012412522358095163493492254188577945705664384618521560982731078483975001726285799787061456789455543189281832363337347390269958637240011793185802242128839067309073229728513448560582194602187609975738678036582515483144908338647624477564103883094405414005706850379684053365871484973288120172929953038267407738369353738099081314373401993110123638554149914931744098112602513972851444161115665984235974211003576634831602551779913997533716749886654966222603270387637693699323447270060511227765976303757678509144576389189518243690362102899280982302845168119572413731909190524838971937538453905352682702651512946569986009194073100909442815161185188304578140268379360876463658038851427337545763395949500615288788204574740223903057195132599498243173066204020016334259511882426591651732436649674241584597863209375680239961407459329965895868528389176190729918000431062721529229021131151450051284928109145531073512572520096456058949601256291120175097683235213330519720844517236176912792364233573108429541030914071674249470578230435589511061127927692364178420482207782233848921073827524586737705039766602525937389138961471613659957864436056993565442263092720679891233570920626434410288433408290513445732277801691232025059060007886595850319337224508408613067889161185450204342478295841080319778114208449464477769662707927095961028875977533481178434966490588977895024692006104578608077801544239759237093720690188952559895529853961778966972889707227566474766792602674500261460986658976897329252343590228823290518522220274256099898039930158416655067927772047439106543242676169454964593745624301207827309307314147932477079818145212380519583082162733728412680343938646030126287980986720082815455818790251718902153492660988621500620222618344372349520404793289614728626862589522463347940177705136272455662943455879629052895202479851574687608539300240694511850218832495583077228373160101059569149004376546769131509900248162682590893788247770027483380896231724997734739025683016933685499347439842809971383693177250722902361397753474235702517289655345766184841817212518996511463414215144543164052488979136391567738002002196577743095937127109916622895300446293994646263925003438714646646477689706955556371555525040772563064028786522264986131727337866183941133866289036617720012691715712369150714052597723944637909325916337311554696769171433428980290429682292012962250350649424906740799585331137629218407289627475800252908940106956902613232958162747448894797754691020149120222600530847444095582400640196991725611464322750030345839857790582643290344053103599412255584176011687715921175306543441423144580067018235059251568434064339694205245779116478142164260087436441772563621076747300194958304276027350228137121340455548192569273300690703257081604931736567554933858873525644593786656530426622700697625686491825497260323106277331837251135951065545835030122044894243143774678208182296068430690310033437300495029118669660280611414430570861473135230312802302293768311845800960502261394122500883455644003524729760433606917636801583594222019531966804822668753281227050052815829280652298873004072542206580032605968318065619825018480226210652649813562076273837232752791763372141715270859017854092609557963106576707805383283664552251114911440243939502866753058031572011524278576012173956436621395606300675066803875179738207895104891062685776246122989738972027582106962923241952847592581694070493195589907753322244412219966405243795520374536562010273039131362257673392655314803026128018697238920534034618390814635006059712712935473981062799362717478426729559812888122024693649152542595992972678137905719062469659367769792978541219700231859294848761377750442789607027307981154052989848116142047175324567891938840515674272424367212927130809922484689151887026741052343342011467484745769784191256604442277700330078613467998493257751456359494764440235786936730827170767872706514533300860713658337054030691278752999191585859059832253740596574396961717917390779266660000142998218858866166003611529071978400627131723139811805874723227434208130913749959766163309748653488250059789493776220258630727593134239238174626982483556248147121080895998495725771466992752804038086836641019306968435334184767721212906116786416481916584831356489417596395084910279452341016963289492266718793075152239881555380465378857978259389022066318570831575629951477769581097026848850200022658473951870405843395962249169804110204602117820249697569635684530314251923281539349302949795098921251806607576790965735064446614752356508585416486551690638944941716417636195838494274199861125765064925095785942572280711336205464231894751210989792791171476571618746067532909021466031816302597817917218281571589845658942419131644769340485641767772164065374234099321278024360334766940425874904736584699315264797270416983144732295576924148684295829166981396269782188117444683866510253147285394742831267511910999463195486854402000620425491664006679614904720329016063447784068086318721304038204793863823129696644673485870986852393853528575643098039695134650798148018658077782940935575257385021457056806203459819270074971250759648291794737740570350206927652343989323525874937252249614481606248212234951112560487033524094191491013385215857357778052266670843592320525850351418030901648013110904796081609845160721943193624531264020069395878383073745771469903621858563474024490535025694914849782868238233280310833548063198809862316830213584459839086374785938823283601411658648425924776206604027263295530138185469645632330351018917480856077761170183229081742523902490909923038996617585467061809531138567252522073474369851363155266724545348318198137805641850346420353216170952577667175897466894106075929058532457757392997349316782187214122198160863325181035899370677496928259741688366698289416013511744406317723273361403876099894042696449081023439307724140725310117556235054644337941778461022049590058375225048200353680921159350914233790716069048120982006006382709470995928053358373228844763321987985598414586634657466368611275260075378342539429648788375483907329694110629868453384410303483279211067483353294723233839416069866702996963270799607096220351778777612714318918844842042244434049727458532762330868908946937046318391592620019057083583355634838168903086745337389445140067794007832335856811685910514941604050473029087508420697566036578184679150800161816830786006648254848535825280282340746970283179602683195955338874459736046495685218128040395565073593483336317045610494275042396829426144154154263999115913279662539886952238385210370308737736211855379806077519662240949815298051933035050331253417130648588086810877866601620673740498676302299607937637845026657593609728181083256352465421458934959559297021656070366707491073511344111964955258807153738199872820191833790555000283351559595158810015548543196980120132021639265559977980650940432927599322401522855144238609311596298686993596231525401371702664921113174971455835585267004476753610099191630661268953968662726239533457226069740630771168543920962421862874736465430095480530880182334212405910399926453453316554240963233650405124349928945357367460570387258049508997857741298614853554008091060526842578275692220947449132198423493215655814107634978664914508696610298814008510879941138731176232457720546032124263402113821971260631081642413189302065219384603893479584969067541654170676252375401424252662368366149017403021576710425586623490443668572907883512587177143629962452879394934662280900192510593739449642504381544788788441096053099179505627083275352600897418289143726351410173524849026190533010048550403831339350740202370253835464472620279115277316942372815363306756627585450798245266072481203496138335775757071428833319925497566429408419312799572307055392607346087780724304014501190689933609282814794276327900156488656035839551296787949738810894054673770577580163025979571995439083405912230661030755443617934051343507032320337192781857035639327184712835106452832105670706668898101883132123816025654343911359782814275225310492037275036082408563817075571295257258844307379827387176530419723739430581956208633633509170451991011586515428322444981847516449736564198689410648910631124679437799879398322791476701176700878372669363207192856683619031327890088723627970943097044374107532055457483699623569412336586839338952949744039553963367779795165198174498669420658356353260882813947895979879137794120537295012621808438707224143301642402580320548839570873771833171173688681107032030543098122379194105773539648037890333299468090559976454106606979116455774770641907887651860307839333020151675259418432569609986730579581697135572184993196571098546160915940555310791038816142218050660759463919663218618707068460010407465063125686275212058783086240106850064700001318696448667972003485279825126667074394232221972393683254388803658060419805394467438099715820213927620239085543374381951793152919573312847405460794245432179340174772230108486254970732577967435470440793971744085542068656367940977713748818010962460896550046652055887796642025420825827352067722944492145525153718439765297719730888238087257970635201884781254498467420461106750736317431895254855420470501525348945316777563208779738489348879494893680728397135172711747444845216906532191304760987140103383932294622629576916230407823290269802828382371757114073082037520519790259704607362299821394409453884584709213150148639301297423867809089112677604589979174183462563364255632189022879681200017006714155196516882139397458968880064543773218427534413069025341682874959781470962826939533484167849883272341002071856765169173136811797560116025621778734138067777470504495780964305055111291389463411802311358658072926022381905940416109345846194467460143204297947817529510628836846019424056840881425934203055935164796896177005951100686408685972505757369709020573887462451808976284606562679434174593415211510753333650328261763225063559484035067793548396430591378517889229242512645910163333307289188065919311928507705241359671019069043465435928763853079977752438850422517802725158683294364282705349364467188913960021079434869372876971012516227091498189919129436551785966279316923352707650190096351798250122252225376864491967908476418631062940360549429810717887737694017231551319961165451267161734853198833590272074407355431404039789489912229878951521840066272681858784217256214919963193402326444912400569249468862232755678697518991290128521320198823887474461742613006169125394980917916849704951953835886824298177478682707858795282761299866109784992498805820088011924945077975866509166967768737353600333621915207902561505048851090584312889530219801556020908651277582588402681958528131950082302495745879339478730262282474791429492151456255178184321281950847965532712155049701595989332672213968365131290796221499416298432175969289709129481389620516268769443184003135702160869794609856392846693686248024075235869130174161194362723083461673357312783756379221663708109438231583094581531157730007909552018469599150086657857767095211475016422698832654604606621018860815708406194871244861544438902863838007324429049758278948674311144431791243334069005699256882677877103963092149405788554210775468129468600278433524554177535976240435008357517945889480498366052621358510240339725798740714326064463748194541795188300918058783885341451797414105047182492986595477255638567543259379084780162318530880962849374543830239868832072699948934579510064262734930014479342842035531448745798570737593189784911167764750832358711124958197066192685603878290877253973591262041392358024357671049767389705660775333583356183458039412682158930598767385063910190688500864070140312120628417069088978253436850553790735060241092157849281331856338888573151105189485497736048312332540587051171766309609344220361214162385943179451414944928632064546612001052337381356157946242041669617699706071820445249342440895316513039767226135745829341203769298343754845373239499101060090987425947074823865370012696881369080458391683053568300950601745695058479150644165973657164490458682686459998344609651586893203095774930008980665598632053907199988879659902216917624737523069499444662843324405100312245915452640089257129408695869690307171844679692796707960030258396772425456829177591546775027977061503083255120989843253832358277180174713769945560790509776844422568847539051257372764120148723081016705040353072937436443622570591670876039418639194767326465925170685489584658229208250428956466390210486466211788221963983912220284063508332661910820441650646419902242267512047703861962552165141956855761427236173254071721023830032978038658187785766422774622549727005465341816784965597075293841489391933379724185893949219185070494256475967982647027068288273622834358493500155656206029783758963964243142747509755194947424894143928636262634711952091697500705496246459643264336866008404355249919723352789619684026681958986695531096670858797723510908362515182039968207264973661525920653830756110132312610204019567087875104416225308543268952167612329538066645023518721613664735204085618962386203926533127533288021177252056388548677444884887316568146749645796584192020679548318050163976237082440711053582998417005888952656380982036360002908279710172204327551665375986481065237396082133345628977061973459304704065249549746675810175665857674974832941181958203213724531412278295757228209635306932296461093542815902768305999726402260769404488523551453441441438569781131444200306487425934902731609154251914711441510064621158314645360520530914412376917098830003918292933692470422219832968426355253303038152269289398295114873622989652411136738715217293819555801262834229247442662882711804859961022850934446114675220321399340177316085501860556406684057476103200070921403472714338559016164378224383579952237999617285878029723936959592512567043411180194400011059133766245763475478521592505934722265936626671937723261161764540799807702120529006157289389603747697833421472261376130523348830231209090134748372515859652816617635078368618134696122320735154016084010598019558499034666104764216679309964645109281566708377660067457180705873190748667233555083424743926827054150554734414310707122427290059159266613386304392033855346428847807590445896379640570880085876776573028200918385730363360185858699891043006847251283549384114369425688327678606475585472953634702877899263517522809419874120321192939509992010014695451278869453752293098051332017009838649978126224726250172491885947349616420342519592032242150634206067473289909121040770246820302690842366104803400903434486609587702210719126960692807863511366556950565375053683007755825585561019187716586319893015050216087656120761125347674973884743409507743165587267388208071765535200066647175283219807321550946397106800741247067825090008273252925986625461623426485884517010343300011230021690489122633759193090720472094236120339740675288102054578261279636912491570094474210278663996825401946686985219316257902238560763077007147491151313095852410178502083396447350580498769082457997361236107449487940833132288773160912818166396092104709006297190254401471165807952664483329453239313686337942755258970202772589242410702279091131579782987714078355808173099336408730157217097102587510352594436228453441415195848695634200013678887731078785657698371663560111083100223722162980900702570990336558357986568395305002832279990736436183746303886116709874876928823179519185713008422851074830437501361662738340338677173299163789562668276162746194988913266213313794883490929269934005320379482003547994166293014061713877105656370628292453829328228429000900432545704945169201155675858420114879759921554609478586195088845836979992277102801064563084689030183325835691464302700853164672055657001652783703864458679184616354624495703520974060066709304938532890192524200424990623128898268254081271315806100921155030077567038293082214502568152416799696358631945004875699822613446531824434269747265815342222119059907907772017503484594047073977851173188329980858909116144029515714987392803891644805944208476856313179327233447722155747302410094217968152648653060690181630161345867294836971114335484899085694629942104517412274251414282227446232182271567194711927699999463899427040559347359521776927225168209357371191029405148733061022404309893621941474930823547567421320588221159196450386209462213352041819910463653440125102809246683947686671029025447200828211842624282860330706610554473864492270816032995607652507898354317028271096718744543563262924959047060223517636338673724653799846172346958573240708308914639589933044479108980138309375940851622178896645132672678233458555010866266673911251938391466877047059477157340630983887484146557957287094209694713466403084935726792127639892140415760101913230447084947016682326738290450882366758983158490239389940148155584929045662201953591356855283593553231108387884399183239739109339834362404302662903552960146882387049969735656494847322083554022512814136820698943491022762938010979213497311063789706589039136139613800263466466074233107333260369679884857952639345379034603231920185402005446035885204961412307003919579066227006080980543745763782154330586086316604906551314834755353883123932271214505195075516862870546504486161054803566864632233911078026034959944114522831409186192300410612003536299405589878327173943993651131126783723529384379430463685309192653576596679459672219854994309429957779962878562412669544194138719630140188539242474120450484289730557032477529062795113049486299029672257681291247791610614698216532770375215056514062680959016867089448264275654443204144960353678095076064377137076961588824767737167781130619146569223337171646175636041218542815792606162355794440808242117140347318674607114726065256062934098334976073711872613374424877595204684057593808429979213625650885098437133846257188749814698732288002669241668314616317926337648843936268137963136447477325983854030558791899887288678301357667915362333955796286465750875862556268538587378769867426274097605520277263994380739816241730956080535802899156757680319777270467745197275935393875476533039254672928880107290530252442247252555040685448032540845727287935164805474308737310096167256535519337405375916469882464799926147532665833765934214147287981274202014765264244190122808588152298365763464926949541588304491062065286654205239620383710075164196036868968827461678764029750329081987049793671868832327751203380598574510800583869111367958850248464732585872896949858714791292295013938098076348099096502356674298349720235083657600480264860910442601388546292606634464354434108923039251601656344965345808648918383432611872210619860501879328340960221281311164780097334949257546607387653342930284439117699631109626368135831070599729640912139756182331529200491439179239534763399609566886872282332778269309934573236093336122210871688675861186800332460023546383756893669152092184712393049858376873790426805744224085843648772862732286248240202465057598374072582248078860317389581082316610237360328769098281109607721156987488434272748241398390788632741261349379787049458425357832641633935707028125490364808071537480677294571473415560715577235483621895117048908222521281240134306202671389985529930197683578495128237266713325051458435088763309766156144368121311488714554377274461258574856321137963044347529836586192995535643757764585061112022203421548218169372612497406321807580645221739783825266556515597102857369436580261738030028397871578531181078428853976677097740825065960100117950571341595414859472996437961599927705068332782194077860103948698215982113005418826892489924115984947266463554066491180848799266079384552359963751020599100013890627957872734268834511873008470186754935090292056914962356971903987874036215406999631008929100242192965654350326943870829679020166121613758062152966024222479418082287217680163096048028608341861597872074429830166745688152473601559296830157033698018224227460132586853752882021774438361780099271904656530137117838969662187793538682998910764536940374637262363898639606459107355093190487700541259712271398085747518833852835166414886321349689860935091628851163957523703941154789624737166757451787171064600902356955951425098505153352521140700289907581223093119101669513924551454066630204192750842725712340095282019997936973174400507085086424111642542643605180041064768001555071861895421347182366191681840926594316186064577481508420568373523905353662222048972432814638234552754279120140683109834129522638005919415912317096293115997223184541543832318872840404653979607176767164566897643448130603172236663682896839210266428651448651744409015351120326754674769318926102342554901112824331489606536317001144574916397025723172024708855094969448058999372573744500525648250246970782879985997646289051998436022232097363216431027021389092935628842176080931050803335579062342426181925526813119773559442921329257873401009956750457499152213599627117218735329328654978796654926269700407571245140202115682458080787455311977777941543518450669159010810187992144640237466939943843850040742067309361893864999882747596932077494590993821752694286162578443874943091500439859648544401074135258033232546264000727966820368276923684914785642253678596935112288037657373248871106724223524985574952540766608557707129564856473467623295484989987560603389841615240643126060776981132283780103801848080623596757876922984871478513657484013245124375823860918028945595857842875992805717514672312422048026795947390407543956039680170703514932553153057851916240820451690083191649094890501117706312557500718674922273772038461121459565029209187396036276514403207960291810783106319984636543262265959490990520043468343774993293612391183601276463296490725171448396653783341981877676091806676791351086065116345927790248192557252898580560282273485754966264140490093964254978880499119418158416842462519402254240586510757697938098954520797045924155835773153910156937637647538305091734656900804822048852201694256089250093732349774019775871741691624464493718958550884297089636805258147747548882962950475820888922434420568089749852389638719219368309844119967797503517911207629791977923471429763263359774327548738937714244001536140331014267153973110032404956330631065223302122764564639246292581871291995989517535510697244066563981648475028482150376714092652695481380861524323661179939790142407851893043237183354145250404631968741468305733263811864677938802200378872481526838022395563618602723975274374899891271978935113581429499055025412913390366538841635049699714703562211796181551886703921695810231360019367727792494556151502163957989979619786387823260976208431577544698565420310890515159546282059338179191734742904709026534113035886455593207706522134939740681688766161521161328488044641650718781797090504606237834734955580273454524463605079592632656843753492925962261253256739860174930221292410939969492941002501093762403202846865765864825365254068232912381397781559387976700394272915586514449906380640566206700860456064599220451012343169229593575790753543719355118861413699749593120271912060368288019403572009974332092185944467926630036443232726587063341043009530397049222162463826642958491055064234915506049276383755808534720428500952372891502570532637880034753316352684377043122076862102180756133167527118690787224825383778818361448903363845216669775882381766469200121705902290116938666519709295413976247796488663619781314937884905053875900027134690629259916538298874400226091118261427455981309052077321132635275026514095185771550726960146352554806972923045725447861044882730482517833793536667353992418180809883390602797004889967658030268376584489595031444831671011321452432257959661564737718126771250711300866634740924666274808475547188799950680151650968036708844389160325608266187159679464376944866767396523715629829027847753778918602265228988912441356167164249310555849927115989527458056013449184064421217298417882515756478677499802225279418577696500758973692119142552873879777667858193769343816191568202274667781470121106992406471576431966250269992132014948372000501876024602611901234558879537754270704089891483732057708273133735113112001810223651691306432333451003959389486042196983167915515869951990292086450824868418554854904530087666683903132800298865723654562277978447759095913909745662866017511125255828500957842016492480357691431005657565339533268470395404478275943217363055262877707542280758392473533881648541105078158446190277838557358921489041516609084815301157718879337093084453658447330212462372234768694383614253952615820916965761709748234119814634205612719968603793179831106664248176655017736778076222922386447934807596103812758344238569938860695041186753483948518000047390907855052182424582598464530129569148442806431906106841926735771334944904453191885535407547238553064999131853932847120192335087828037245956617428096340495771343430500064025455803435635425704313215577141213282854161413318539544888342931837738184507451828345415497752625966448030420201084714907336801503876380094025249992484647097083512611296744204909362184627394789082281750159622903448601282921282223346282419822474085452517189839942116364220215652358927682628778757288001483178313531271577257708121436042106329996372357417077641927631381790967602215145341985443689203151956094506182976878827566572919955758084933724083214889572765226625277423997979001545857192500719568186885019567500209007741322785745567923614680696234697406920497319331387005492899384831399715292269213636349484328445960406611637125585771251819540011865899163858092006468362859591625402408691598516819545982247868371955852331215832721668706524896878384668906569802322136035804846519444835581908441840428109963313896594276865971412381714567047087000341853436764572774720414585059724793523666519414959131734011644741558969567660574481667939074500459329007180339826414870325404141177322373636405872897036911001945156303596249114399777246466485089585361578134239505338872318694252872633590879868055444996700113103353224179649467278192889023517874228996552419385228464675972587211674780290023365274318940924733007037517720876366957622012549718010908691451717043021722186960572530419195283589277156413217385951212725123726571291664976677870228572205083769413108343689426598630505916635102376098135428401799433183211957213395951639659725804226559976796667246223101571449821551636250291909910678303379007341386854465830115923660396560458434185651503732679349067090415085246925180824333718607534142131033678011387033771090178075848859544928412480547441371185603111650873707952300470011334139596871005072810879298500766807918837062236970983285021832323378358243468616117100471185107714537767532757318061906123304629616171846600437594205313027331573800254835012619417044475394488734250276939843802258840558488877880161656865418810166841890289055327070712853450171924558201279726704783197108808485466834214102062473449689604832661789350781478124192786686611319010507663248813891454024569855156997168394716323914100336685726023834966834757368127248797293046557984987100663974636423078557484280761781790727501367025191275258574088340492124025358484906959688930631212418658415105859980917365458225383201949500864029343938328871720051958524014230144909503361461741288058009873533992288282705549757150580717793360516486934736227954771032559078028517137935012163444151794739526621538537995956322000709329759051204525328283629872647586513675649398995127079915080770396263740193072310209535548238979051159677965570855344826097127020099462763749777993527361210956048833563843483174335368232709764646707792590011140345515758916427260778440810226711364936820566834244501988699077905471624667082848491113887021651923617071339561707921520643235201737557983205327933240260078094993965510081584023141075839778426551880753423060300805083992344339246384843859567831819944332265066823556722679500513091831259837475495856235407832264700418320560152712346820523236124035231211038165974807387566977747228571019340528319321777643738046921062933311420952999528506112836209794445158391245146482044574042842641543980744369174896335262856240913924595432080491255316034663240219948126110949564468592371514684201978096681136017631913159026411410124025831343511266723949790974980873375233102900898332893717020008200381712189812156462826994042101420461362573108564972931083391335974145000470700418651243623072282002863345066904608526803818445660286255781504920846975644744019893119484460998165561949672009092289406178819413537105229531149590194200198213290276368492683144755378225370687858979726968524250138349462300916070452491348237921422888697722922228927571360705521785754465252747095359762953579291760811369917929251911538832031908796533556149388361426245887983770130370879235405904631353653019799667264022302256326677745348657455589090970468116087813685973601362286806836875556335224090734730870429603278434682105876997963147720042363170867646980826039538674229472669660236349884402412004482056260988588299795458857513311025252245240105460927432681001738918712499401237093750848689600432194901419095488850448759366058516264249177238545694341959235682499257691751984433584585125080230730383083115850382550249018121111568533354222625435155286781901969305171127268723192388432611033093302830866655258157986204504758976652097447575030923419059283285858080888618765624035480812029878745227095125897680372476716429153193309048742589471840874834390899971334257739217690223436647182763857927441922716368279359782426922678413735645107753886420304390367112153388671401953020259628099605053408522884976630205663031389750096169453756639575991007409702522535023745991431438622858528845850955336858172289438226938865106234821535948732801722708183218487811944189618001139891378506748505026055915042773584681881957411473432144401435553353100894288781170841630970621256746058361718270563881413937725641031568651323387349818953066109397815642851123435262252713614117606901788950090335144551619410726817995594024276515033803540765995620294136136384983325312614031189005839402423011271867310747454284301252185048112014811696736006818762774703569769637083968294362969077910837319070048401036608569736319604373368232728181122975622106260904514932789148188578905940713275345353173244811906650574830066346980318176737200509487135287666037714572831830045581136335693810200808494378071370992095706013324521115660651898343105568721404089121862662116736860295251161294098116381671696650126093641425795634611640543703489448922841946013115857545303937250721087272737639579335810838761399816765687374223083098937353839313729474440937944541153338965204191758543594842296914692632934222884895558387846759670149146000667250158048003809987522539708926205923631071583022832800308174000954912718233020755809687771252118407582996919175092880902896436599836628540088760552202450656697452932744889286082315581948317460023863389813040454584601650003604145169103656518877468248285445452208425826216790266462622609095382711446106100489458836004387258205333381047651581300587794868978743209770990511546809320556988477101029511816147253722074648155444882027476182647153286667292710578068596577197814912891412252300333215296733308884285764944588322773544515313519295669858084192645259360251706641050623856897853551587852138589214980988094817617218891760640602769615395946306431578386827932040415320313783652059019121840000729190943620525317212429864937784616230378608028749868199623433334087077685385389083574777127480434107037515768936833181001739939615657212208757317130694119114534327175532409173214692882955584640415882246893298104271167249472990453386055878853706097992024998106388367259310236676177118286535866913761984840305280607832565486595530770618668332124107265645716756907885427239556275351809386246606914113878746516110052587893434326371890214598682241774725936001123093402733019144406490902682621211436351741164165603851209484197990392469566777913817768171693891702038757116006411909009014850409543134796506842118011992378406006323922686290840543057318921778625134621344485019446005718260382468059401421403442904739441760930990267741232276729478739510383635992429550402228060426799796101130672035480245154061916072536015969065504747110316802565182042532546362020780046138778457790723336504314110133387946014191936205244718158110050696109653788238636246471985886663769201210990728890212548985803726235765135838135205451291064179990426110919789152483565920361102724494366325922274511335487110527636660057503115598091102683908790886423495039170818556675092609250600449536894468110192333162522286211233092717394728717057408827774497322488385747957658768909321628184589344569079643699447663812014197327552803964484645386857838991100689349811856147393406622350478581638933765536324041960059019889018600929725296815670094976655292187665464041797803937109762336558969991428613101783373699691892261096205657697150082608741822528314642891734494708903953728901918663462567368853973815985654335393184998659717969866119720266098972779692170988816920366950409674398543163335679165469877503243905893119698352549875093990140815921593356120323576456132076009623480620540355436629112973086375488811543596727712778059218404655150028013848234786610117301314414216463982217839612939098937812812566518146440952528503241641810389267678823546109920617890113684267018928457845895349658405567736340875277323177132173725879705310265374463327151258303123984350020977733779667221835320925283427585171138848153321129419882765325892865816900083902192099346967888103118021620888074823449551706127251330274197321124531880597376252901110657885054818082461605943144895163654807072475202422455530856543936618518507944041222716913640776991476925384617723903633717558223588972845957422871125576985946224549080229747319285300097619771093114465907004651417444010878069912420188378155695503715641039439679971214968797797629870849205304590972650449618969901059336817068211546763447477480577653585015237958809726987841350213227324246691200756389789940948194710169080142799186215974082515362302113821683322116598265150375194501547614991896415814883143605199496565643743070572466802042407201424475079875040405354461222300837198797736921187249738056863298339915347732891645155555411718695812095442356344615858854513549388280255244059818926884579764610155737165113594331818347012347044975851292697429436970587676167639267583233492703097690443915086616729272140085278454336137120639093803599274478624770591358552782506606803439133021055289042893586101563997352355848112957832745646292934358048112351882100779416570251819985590466086319942338521708321573701975825618705253502963354249875923904638801390063282604509546423190389535207211443395040110875916211016848006865795170528213128212582811803336459432536083791218880969187250054072477768414578339001210740333098557268133921563906443128146657452167012438000390352038555725091916218948735506221051952938366576376750895065059604629735599769820090987922607510364285113157396967082436321536746695833548121892694172368040382741251162448605036499239563293154859274582820858363570720223731295499613871649285828480618503304641568999882108066086514272696044791843468603443014543613368440010726659189461839295594243970692149614674350044047185643891024183817478912023511079899793033324425388577121747618292218397265238228262578387012096639054607996680389103049928543110390123989945703527242992476765617169373005208332577379904062413915096978247214044847449802309840893101787077699866019405560820544523048872317866828977785260519502002905208135560668077616326088166896574208643215179485103001136542031771507417971507602401427021435649658008560285273761274818179595943589912599710824589683846431583082745862700951022572192690001930231438968323984511708138561964413025923292800144740853548273096422877464496189347330190106446145236408209417865446439053113620991437232233463453199987687873309195532429221842155078988285647094300817849884930453199303347857021264311537919746035992530266979744804473746904394912800559782340786469304853956244584345805392577017222046905028885140891647731561764140892312889390718852430526866471052741720438338437985299809159627085352377207927147030529176699244700704499590269724460187717090737499083470261105849304374211676959842155060050576997826261162325628457488221479449880336341704500025904229836390045029469761627356957328208593285426766052822812610846387086154155189466060514254343359482750407225817554264777915190431909632500171190553970404819718661568458105916373113635411772607168476148614488088465021467898054329040444048042399215594178877351274862298146915707640681689412236490695714133440463935485116184510684063703147291556618991265617844149865098943372430817605140890881252991876383559688660343416535469614135708604599156222491667327575996895581128312161647221235918596474789730473748427434697997347994893279648044803160989746500651751125848343933916685911855599201575499452491689986222104168021187471897532189810353691475921108038124144703865754450677708180766197984803615349692000475262324648468369908527175730955959330190391314214063473608082959201095140523948647888691435541333435170950576123179367945840308568294609146969737035096664117378100922846531666485632645268142369403492232462265322263518393973055424768091143240891801013240956126032822148065339216769904830764781621546883832815096265144460518408718724415749785894684049268089482162105643930122047335095012454004520582964371616141042242333284938089095807039826629345555853743461626429702578382799216527318764466390185348374740726423443031830573871334790836026121544038074589399840140939605018854840806774198983302490207564713432293207812944890019080644099393738730869208991143183570003518316778020305168873720259195701973899807772136559851564864067319449827842678598206396916954239213271477774869289370296269527402639875241876432677133715098572474161831244766217407623550608850202539093246661555700514143825696276707444272180496834819588880730316399534633735925728591481619450184016817852400536453084676095817925319263669197130699604410646114989109403228048814678934355941304436343090846804927385281755520112047934067509038470371337874536108074635426474763729508115939275167634100732068310096741068717918807006555258803428960165493796718921373410780723318848386569608505251053242116840842593888094720709143560158540195654304045638174997123479785623142672828969326781815103554145828577260212327743206542704479713575784558116997712046437613626030264663273035687245687994762034177833010201847047554608626789710108751797119645964764726976388859911814005787174830998974669735245686826833318662070111608181357191371261393781545692454998066533706761683563294757707681178273237695121142960588355395989756429736214168269052546542731309005709425985135586814017436387272199972668051767553957876250521840565424100992431355968939273871314005043701532396906513950967276948828869008344186044810902317354792780348741992380210081451985629531289613317828594032469439275977465912605794649286701895396467076689208259441350543427251975533217052543572271357964243242748239957172454335340163674785989174027898960902069276846682543378189959575105140871383300539384132339273657126031884436600864789914604010321711189535886582676460227911340858425701219687756727671998992745680606722423668917058148401533803967386634658407149902815547833404954035832309245878171862960658568394907152588850532408940213431501977575162300062415048196542242348096792840827342756512381095617200495498165686145216030425634933629414736907583527408316150429214536544601466342970831070648132189275519427679547694469834157454739775348894279600375071986782542015796837919169625047702485912345568294255443410716868065558157834271531501369197954655389457273140643878497774878042190756879839482270655983490921966770840454206263175416870351957149165185396018138725769206700622074234221854395895197620610600009477028627518053045053670227677572764973922680451226184232918782897918324476117387271172979825099149013405991448956470892006569217844201561275926527542282060215545895673433857363184988781234417375133636357922551715509015996884416501002971803817786777476030817719505674512572436063695847541983381182273770341389178913112351615246445291057520303867998232892803771169365219058668881158578519963882102536463179168490339911633188569607095061629319219468658153976007671481811108237574247126603392252140022309694900942294718191166941288448697973778147425762628455725523424626123375561600181014330597924786649168969626303607445150939455160714177905106252214796347254208181390789991168880989928277982960728268384633996705402867338986541487386255735494268337393239760717849905135281182336075576388048050935365370536935281391441443214738443849916173319933598232717932066330683629170662264148117933975998705410866981760589968117733849731324760589438342954491219203958391708442839937510050856443755118105954770675615517787394954037466332265538533890841781387487386835493773292503307991930311458788995816055055205842810069910757360161033417128404989855694252169116247674891496799744252534310148064290637636685116495740912390798762966875593418267070209300306457973425432424522011698499680468181137344746455287912190813393264255132448326247175528402094222191100797472042706600519122320872871432276759740480503331081493261977923514408324149053881349244268491058512552636220931496738612243932108348176712663994621968392742651741336497400590537073270338785845854336247101280599312079129634072043623380305583437473060057588414108729378585417893948831304554631192993345368652715604689282381861873648909003479015936350355207708614416828212858415420314903648427363564026582303664226507782602224177490342050799690616164639536248399897549932537297459029281085998799393058858820748179131859795057856966327056193397637607758521805482308664788702149164661739276482664070055558782193971859022235625284846106952691922064058488029572520095435043584776125485666221137266106835661642049581086437911782998228414219225274662921500261841142120921689175979160185660345391456557851217022914845267458147859734812499699202573150931882852501417329674763470143445728421394358430852213049632704528458047775517621298416713115677455894319217886270714080934414983380630081905761654232079783893071780649908931638245106456615205133474764770154851451424091521007315435709330056930423287771387656053545658171788423433642143564213748933703864554160587391693441033876775276683249944587527908304353853461873172216018069305376358905220871667155913298269556441835716103433580359538951659463092832376299226255201411245101169173748964790103732028576309100732859738589505510135088965963488496511974555307205142017194097638504755206406543997372901632545248720694171547440975743475111889482763276770748309592303033004275725044778259687375934984810296017396106995093217466001483699539961973228741159612797748767599965488356919355494828815827772610460112362857634107943287372639373034585090868444722501444664393468914199614375230476120629963902183418332388140434484993297909565984052410436567496122942844040360276015661470763174520626572064778376181823033914707993606864221983359686570665994550906177769918002890687790991339073994280373921232438613247893788047189394308441119949947092714619047790505293515030281388268013241657295003972025933637644892778558346660497293816368229009332215962938906380078690054031132170659048864193632521516857077427617244085549941096634002310627565611939458633519298004543781524246627670785030076729124806927187068166023016422259466570969652020648140110452169132677853805303744942114719383725503960994765817797581315482458046248196481133727530363497392013488442071357404143809273168314977756221845402963582578906584100892790497525908316912410070452513791830926808742993462806112987245098770555704716358730498465977096051189874731991043045755950890552912728466486661497623535800725603808285431535198753318458430045497296426404956744146283123378860009635720887910164424206688676170738874277869963383351843529915786670350017503862285162989935158904734932348503468095909126790484815629036937373585022872449366996459733556627550492249023112757308010291430396141486432633781732247547799154781887846069151290485074119601950759353121395793418188261804027686380467981829697373158250450904750597640571621846149789224452823959639034964752162057755378984510771820286791713322472946115990658320025630772310856350826649782538606437062358833636772220499814816270544949943693528544316051824516505614926550514945390427463448214697460902573340252064361628070812155029421959640148350338710300360496717287043202655383587196342649227780755129547179403379649317236698333449534037424610477644263416438761208718320160817419177767037898617268600461775261599199903186049874370625477303092600198100084332404096965017662557490118601461760035140863320855974834023119260215401461430780513605204463287914897145420215788080697319231105344056411008272960051486304002298678354279404757431707768682980390064261817799407432849620464574617741986008836021012181165380149727749693577109951553791417090428200135454620871431884575102373308150553548076856899805884240222172231637041656526165765213918956576717587575956425113696821745995490617932839058562869377200508995879802920804061796774037847869752457077488523020864242278707712008073107120737602681351028267755047220153451800736649362834086015245742162412912001035835910791391463275497502280746381571230686572276079497699840066952773273056081541395342946143659719092583857327795687709615838999439451270387913445761586947487041638700876290903920488179725063010855631893264946256670939949880846611215062356759514723657210837656537304486770356061043936396385258002388921513122024669925673720707930598688491909690970126324366532107785574222583963591405305138117820390820745195907326816610950551699172221135546399185889329283602107051500855147551664129550111441715153039860784540628091023799436803352821345424751582389434376152204348556196538162300447958967174826418723636039799778758113485220232192867020926473754555020624229419514506435222729527347603934906505279143030092324695037712477627519496310706149253841472204738524718293492337163232977251385590805035085494077845631440224196795709686670013810665979203071343392152441762567387792634506976542893749141235140772916654871586974515695991646700431224297150734512240773318121175721139836492834322684749390926854749869585352348765149242227638474247727319176798787410887228599850771521413116664708778293716006849209856044100060265471437289285804238490215856772765680825877944756462946868256844482464957127461700989181652335729100240293519073467588409290289957742711401213788500574875074028012763054998394839353570823708324463701203008498605744167594637879808782974962353987798655000361723146555037958886893415377955902900255793051687982807374104533004477539480339447665290526908594402962587100790995396985051304130044558915612248997537732179623739280234599272133661684428559622710442086334059943574234797256147375880019434318842774381346600194602333042286215080151008797196000019583206243402171169750296642052665053497017254964632517809632142382412758120679399205732690452409992249557067923121026228637267006473181827148347867204409484070272840886779019196180763008973755440579987230243594740763350439117767764682026681544211236378231994933177793024908643207433773944077610974960560153351594956114689550872833138452304961085287118935858001096387552488261472719722509838546972256193054305108779024886797976692279179606090873596859188628286679751322092146479861490627594203147966443190816313281292239133389056645547157483571200036024339174386005475203648031405582947326812038811843073877125518879198260230516145308315719883259243006788084551237388133647340255585532670379595348842939373177741887257924876293920544944519603102303982080260846559642708338046381774835697750900805690067132908581804011042952749288054106235934616261115655238437561127802524846104351070693762139230164824330347964221156447680144529406745267876618400030498293586038664616196526126534601819654731289254143384933382862316796281177906521310941839045205814170600109856750551281139656925214677653189671308139490861866622932049030126939264178152901053243984600667739752649727009539184835612836563980005006538165831632884062275954455643923191282892893934330431525002547425903958076756031104836803211604023864754744521599017980109454945325379128278910450903547349518972587893875109298353128388557903770169132751164739006500088155970625621905784904233460578189810377861068862174281043507338202646877068409314784744083725926225023682036133709423146144721914854669347894852838640989180812428078503037552018884573255887471310015439620323759148234878441654133295462095725200128042471035920386904156895721738902849119060001133524028992107086756425794225418563199275269053484883736036275286239596565178868802676931346054251318689893998215020693233484005513549173580874839803084923536779588746375161024767498313143194144898243783719110627868383722265491048430264077825774790062881147480080701004445211995193343646674074528170252041168156235228548705169869248278311013734478167064119639599835548468542928114691010753867702329857718203511993006063222549770515571091704192459015943305930143571018222073515532069183496271655874194945422808134974238482466214796321269938568644777323296025796741326636833381627208341354285147247766810382850856929266908454784707025799960655828639397182368318198931272471737622859638715242966766101094631208437630346762124133449338885207402758458455284614835082619369677677257413770232386163968671803011058361685178955185598233064140449793402369167053456747310862184391319223792540761921728843220812159744311993820948284445724433067630684302499357238672997289834246720940128235607529439770530820036788614088621507996717183157105347697325522078182250702505937385310324018535451416620175887401983697367261364942850582626846140873114927850358432097995177800357292615959944956006303798712004939264222107449178493856470883913293381945013088486846722864920833526854982277990349851361019422624844550522408395253496057758649601725701407469253115291285476838757004471570448460101009845231580216425664554935445368181514402961075944627281793286869245335932741360640386611825186236064791879205199903920749794145987772219464251800283140663142289427398182899699422360073047393436173380142901741909035434405884539291246098515203724412951031083802994737958649845138509826078559633440752626619197167629953712005402025259040616657288873003885018348076536860434122611770658547589862919293935528610685933339485635722640086237666614286793636902018826377202241226194570282446854039873128411228928714147184903826328314591737972393396292342617386519612197651349078229231732226030246959150583832701369068023835336510716659935170806179791638912874956874720323654650438173835425005009552006660529265850355953404174573966225216572089338790278993966910267970891840185166131399573734026345643764285982683191280062953709118188111415818399930942677686959748183464980772380524845958475175154514617669610271930595107830154021351640398484091870201402470984478987157014059725453986779610592959410727394626354673433531113444296009916138036278819036389480978262172302173510546808592933362165511876540406310255120794850503490554907954910097348765409437922534094861148782631091354126131335273183554825426498543769620450333200955226072241670836363375050466922249005135125568728886826720386441899321907858825444100184415890686908252264331969906631249218391861438145898267320336115886841186341263259893726449628978315861315449189545014640250247892551651750918515135785383865671816733788656746440842611053993977319838918091094249688953141789921530847107031839166805128310268616311900392013444421972331125993381956390372397210287049463928467177890446198413133189502762444903381074997840076235829184763808712772490253188113734761384162467537968083602912404632883549978990857371152532168932089606409208522138059888500274365263337279908280066387154277088701859195509246032911786914380048445891790926921931733917841936762322874611357972925322260961803964482266284452823944608530455840934078423882146528806968145085068587170689124036629090909926785071621040628332830471268109351278246169928347583432453264154274724915173152885212675962869292154129167681901688296732279393527733493160711445723067067299360545341583640588173847495353194019701216740974707931392194834047082883671166240133696975363551232213655010377040905095880564386616337375328849364010393325566597276511787530984504155096458499844818004470257328546674427367821190619381378721456022441336977260553540032282952722559268314468895110870201279386091197705127110715409527269788213437933091775117372258651208416608497578264261497714461044220962458453283304297962400278561329397295972352452714361428942584995806666745096446805038540725681796519871450389744359949220428272964937976709277442421514353095123124327056816333752470392103322475612354479125328438271247989053113144397269392638885589008278203077965343488109160583893386556742135334986663720924113527139628858348026517081465664435826901795245494073566155360318924642909310247402332167714553414736223036697424445042729683912298217318823217418435469160498584955023087765053620851289342245906288294971498667762625688157294508438749827277776041673238007833611671771429818775027838381289551868767967177308127649759347949588273698587703135957980660609594156453653257425501939802658188490426871983647610822935059231795771075714890392741995030934922477782307898211687190762077406667503652434208233786055818906823330874677767079909088653665915908817011492932095159617258740033332400804098514991396553263607772641884960275210036268128392426280163222526558715371941995059920496690472837823127888753251397021956858003225828910347268931197213114191757320364229019014873130760190516193925392713138491924533353265313290190693275086377317034811975783760544553322690990316875874219272562276299653487105099304550259614325468693566672639591948646287331026038895439956036840357730791419152896339649648133757740530669863486210350427294138084356537224558244696959661806523363599034086660804891898972318288202137828410389407805810377704758687619199978560331337643556090161582052135948238535549499012872402639297486295581069510259498511903057740500994613528838008550276145384245813548152054857651129964040710735257695567599443940963636866537253471930855815146729490337502527219914130651901966148853255704164239793339691648874692300823147158837895174848934470147151363853402893353898526698355749095824106390232553222514912045991674728768947293160775695699098279243247833977864413025514008611007517043245364463297433995820008273597244560494230035502214144262993070667946402870246457532961491994029925142763696961419446576091580851873690558324165711799890871121311241928682164119832681688228142994243885715287336405341081940952945314419047745254888275217086344747881009251603441392110500636683644349757454337397420404985801729013447669450752527200714405429303719289321643494831969290436304371218135632058246162518077912569186914137497572540862268785072417229443605662803446057174339439966452997583851798444901339074672274684475112211968200075234477880460955299632906060184019360075225480357611485625428293307407795344698464680357483791054839262225540361130486002234064076628929627520045526180373674179409612660341305761733284297783329257583555695534310080869273520040225843289507558728962958196121089047335400268940765340502308889131798339244722261068487812382278736886848047573529048938104547601142060431157464558952259209362008425877690662096359328478530615803686167361844904561354914460274833453495774782049829556097540725146218688055788225781247707256595892443849283337847580894677057418325461112919150361851950074251631574522725336942737225939105415910657579501505002605156025160756690488434398241755980702406771696039537645832403307938235758395175653490240084710050142416104468171460063747547233711475428454216071471710129326573032843737008618555305523889234624426912971917723082961138552500153874448883425939907014571830061783539357352010314454943460801168226290974707915166944077742990366791890461002939698224271997502354498667704630786194115879975758686496106251319871545011854509064996773432270345607529041658567139099754271628777279752102753913258320900234226041165127091563575553950395471793823051823732826037739129924732031943408252759816290016409101782694055909703789597775722074929294245565181745438485426907166695941545666567199755474602484864629430147025544135036451621777265588290543752009348779448005454766134109018610448816052798076537039879433227254425236584154966994573051316315229653824497055265270172054543622622344651104227345002149689736208298063644079130861429995161174292384095540996630118728117108906309442142472932915758315173902382709940295938912168186517991998902202326255128280296179310369865003083579792563249692440547075960446977641210763458475111107913065267539531425302811206802077931185870497820660652790635819828156353676915331497878711065438381645560415261615027969610464252924438957480422963871742600283439295974092133310818740588529290089091440952206750542567215988437122989030226739692980023760451097254601176611226947977680302329608286645300686883718062302499093253706078915148348388028052795004589967440754220401098789692518800044606610790212456025188750645853978449829895126370236862248888297667374870101735475393120584936777310551241378454243618799065424441849348944019825245094534966091512018177421245041762623440335742325809440929051723421093759345285287137951167248747648094626991916647234733118362702516445927966978859916852769438494960664370570840684290048733276278469302351475878242045720015710965644577668585119601986335287990195737894606351667813479315547005643214288169401552633602258402254793418800712369221163027459965013650061487890780455298205669047894913596186897560821574931704909867860656533841941118674719186955418899348033858396855240273255711762950624747757879498116129818483420404623601790012878759774614551634482741503987562258235270149483527593734630630482776071132304349167801497641943691309395310725818353222562982293122501499124958073761341291087842452354017521771652261500341344344300138139916523665318438870327157339162099748647409660698005513868260687579022308709650781636202046936083677794234508153310724689475748290092229597990197734913056465304169417680927161206973007818495476310426200505694329148277494679823377717021866172321668698559987200671380045834295102322561940256628915697248940219091439650009793020248174978980427875799958272284104252307354766548686105207326576838058042637925555559107049744901860526889999770730155863675072187400194254508253430478402457072416824993024470343091165819091603523232335581930356615040897988976535752445964873626858875585814218789686221760818884451330687383454291341703476875660134937072099141103014137620212601039607541888727437760581764512566465153238355513370156632050086807379385822874807505881101215881029547615644898083215893481438928569628354913714399385384693889461197107343871664504581694782217122416382292807442993095257467314000533631220051416175659274787896119731993354670326322209134663838156281835854110037742860974286757406816230957589613344572713762204617554917616184097346944914631659355338140305043787581149467005342132229586014629292091965003763224933028221350706321138131755431308757895424795827628964462041466003374105129129486832549751204981909464014891818598965866312159319789397504640620733459539239814396956239828690404281344106382184559419627247448779295191508131099300172081709986591432657295250917143206840113861382874893882841612666934878307811168721846373293080448362822924629147613931082354319069923990499905907814923197843185988057712159438329281277737626001506885319169496946623862001472811228600072490036099427795494329384944205909180555280903235060295467228915567481453759540990603677694828621333608434843917357651985282763539044916251698741233548019487286298930776415965942401250365542325185487030568699631434137998660869498984508990556670457989065827796047898193865786900808834539580262552276299393575109781739937260476516400024450973021007988549102015610369537158666530842369374017985180796671017070619536869211833390606427028567274986949720564795380230503908310771707650552201794649341626256260827857226260894107407356758490898019946455018218760636461989962093944440602549388255455756353373686644850182756925942078397890902697774392753143248913509437008299253730406046278937470890893459765285428603930148389651114770701795714488071967430524915426471254242029807592432691031266233448135826538407030697265794893919907781225525148542307577686906218763085945306055692399800935548662510185562900551770492862120270713883155090103189728602963989019870393309389996438358350947854374341169194123891694121957214880176531131143706024279737683365800757370877863654943568617788413396600045930633622714575961689535391992252104072421409971430869017800412158296559040945257394231593741398698950591119072464427431022571388093825041909430464989520290040854464084230266549170061846130065445775939516831103969485339025385389369206029979198547147597899269629997830886197659277417339450914958496430945504296706029349722019003863863745779679913607091158570990947784596984196509760276452389189932656273490462719008511252527388321379080133186056555834293463732389248287177100386342236989949447876436340397848721455379811704334856632112466489551143988706968264903974412012640999869107683204219606235183522499758066971804418457788459811521949290958303634895144997092516933688418373581331834236042812586906763668265981380961268916439612543813536092428605806107137051725735353677359851482193703699852033393531744404961371371532809408020158767382748037990339279872127538953939792768954789788170488806095697138562988656897139867342952867799689999188659566140408975070865047053094664987439089821278736705893683628193777644779036427650900992036804413685719485426031325313933887367562118886379665460718814964201821242269583423167453791247522610967281776501374434911343202982233918007244434755883467910240977444507543651529349735377580039505185344998808388466014070514213059310939017128726400716221043140139528503491204496020135808816211000504737851454198240760425184414844560107130149741311753581846886630301067649994733978021038171641451253317806978599083344441009370239569001457519441414619900140475057056104872185523096131993204186209625434427883017705851650389245352888437331650800337667348579251998348105360272107844024019872155592442208152251440326018186374008882734520571256171352018657576076006362593801229157467777297142004272207745702394977848431304783611505616990143489912371808970111624085802625929594327894202813131212622075042773871203069335766168737382353873379291454398478805866607610923795671549550396959042054142596291309174708027273444715769582541416189207588623658053456726192700134869388548124260970674589663129478816634302615986329899831765645791692477355849056871609578900254320089383819017955571733643220266286791465540673330373265698121668506619079678744626531425734607492551048246884200058922706131540302190394962729148521831272972140156875557340873784502987875447065186432773997471789962449623658977823981427951159585585948029142244216979248310026842490667611943891012734513254736755332970743563900638522005493687063784421782299004386836865805970048874511771743837439071677936156918880141121032036163253614073044283473002514350530471004509492291748703407034295264916544227640101222277961259189350150270491307580038524521451240883006857371657733586372223461688125385647989018146889575469682902727828539065284103165010193710682196007351131972236499041438863810466322071573792877360759915014221198680181931510810531314667396825818118901651836968187120241406069550669074424355535015792132854564213698117975283029043212882025508745993940259485740705539545289555263909239873183401938301181712249073565690119017344582614933881861635424319395047319969172440103735810449405153920269348429279166493995771602939455409090409571072877419516661213879301569911580106508905670385219586746223528475645798323227708343574442512274511530487184887373216592834166224916197907704638582218525894620633017222736728644097378270386714556650305793583706164143226904914339169496816085438211225450622759755883293320922990975945476670459020415350342556482439502946939008154780508662601634986795130857277587044719193437551865378497475069929124022465949447377642236636983799873621706204327590256202125025600447925265345329548430325829721447974563258959446424903105060704837082278029944917531805138569612629035080342776306912547112972577507696843971401791948135558172600619080236881497406615988584941869253049346109835415435483497356843530501945814371489147195445438124044246121439966429431372961928165595464039104888118733549316041607733505917835546925647909760371659715764536380664422181250219728785866294635421586578955505260272301648296626360762526682160641026929288837766193244852822744930440309428259523797913387689378728588984885114725294139196888677412433476295831091903149356653194345000221562402110465276250401979440114639083354655827863385358420002060428007549667955430198479306893153028247829661379505320763804804013017515844038483395737094408832846842754560427240919073098412960216767159376189629388770859626456320740521144893440497913623685445135943081300165895529945260694471248917855163302345483661919933363918850078846424347014836292588118769572568430139838408857346818027170370918764763089985853142913093410519346745342880193077910738964557958682265689508847215793361993007780178463004593473295702797197190886180180834740792050864426044493440336452726735787729474799990374102813149711701652369383963582243959414234079898267104278184151873364483753289302811508317617522559935111203548837783026717510799374181572627369742844968021250248074278087949283975882207642788138019658234154635320170794057700449010958419531108076008904877225685265359891344573414246956536921611924113418643730376226966296055403868538881648771162512540625047234438889711234597430921721782012347651922893740244826074913749366763655224722438936817217242366032294376164926250941421575302713837155331671927341492937410837994467537457761544749418443805860875550259795412782223923393149931942241760222076205136717389849753704592123454156398015174799634790835201803689283454755789293252688181983412912533603090898303076685196272083692502032829102712129207447651949918668692778907019808297619934149111483136668808169665539437953876427653200475005885927012355767616673739016271024558835611841981161730184368968970581114212397817706296479863747136104106382120399842998807269635188272753469264797503356372774412741921931712793376475394954679444536633368097182253627766971169174488033082489519294925996621462648779879352456287913721036233592211514531162282453059866639432314704932217748540872343019295404472460757024435717710844339574352582819637614245504873661149484557890076541579499165900865576070910471047834107128221596110173816934524084989632555185933157048387224700381457964193323635868939343044309917531753990836502684487176284328510452775950662857035890361981199747427919392933359397955293522809505024085875314136979542914174275840588387143510053087983858135480027871431688651574534757201540640489056129807132813132770921369562482187509774003533527532929544846581326090172664226497772646763703445380947311249879099940779737651054955186663047432652380771131622088364110458079136991732310829526076236297965060971318848500225326873518952993842969397669670120607779299820216295958767659436884805265160518938109151490331182344042568645795139494165253798483647941621585688242448078276782175116480788061138051257725960224045298301185757241696711349123278703674702813745179590899437635236001247576772229966322564193827658673526157668012684915725044626649365629049587105598407042415673156521574146037299315114015267011773634463857205853721656306770271775081757825961587671442339861094529383357193676168869903215455659668363046645085518880564280587482666246801887902900336849769828015236071364295909258995978355984966269903841873381503725926459445576731856621871863495240681070452701214573166368989065306360864300941241832637878279428384562336976556775560191014206061614930007172772170179449498714203440901921925514206235793333292005127147698771121364397870740936074930081922855815655798046883808353431611640094108135864034895830634839483809179266090381975781685405671453604010099944930653681798780051367494188737853772663784747925780406923220827995844615130210112089173632227213885522110725836174065132251930555932023326142554019663403396877626348451050405521289718275406637021779674915429100431520671355999548590800770282357544529773791989167588655201848569735213924924271839431079841963658560167679302619628530123495004075525520699878999096265133548616601662244673395010786888005592814735700916640684148388101791927296467266152195274403099219525617936406623864050614593137686327806860400148823667286872269554945223283525142022963166174716036823317102979890142335722086648258954009512730604700291265049271575989745844752791603266359206664853632201595637509618354532922801613335465870853548863563544338194497956210830533613564289126930842589569487740993680044493592231032459698083726981390650496491103359573027053488047508728256965668057371512977502547392752032337738378103783721247058970249403550713098767587744876856106462405653539798105999552989901922285654243787068255163730057150300290719431272924560498554292101628410417991352333847972165850631640656574440318322594783882891156747520742716150993028372962579250408317136379751788873498407127446132910605305073240137091609043251059226649645126282803823686645553187473179239715516403785093715194858452545959414718328579030559234325942216146308191155264260881735345897690915217442972809724799056022664423996904230215694859417233068919995146886721675603830976520134427945411822510100315873126951864870090282889912385269472731478619718407940667655340763261756688716247086478120227223830066075059631912997515360535623974548331281182736261773580103528809155850011370067296928344312058011360580529038953188810250556393123702900542939268599543220093993743251794166565252228748369368527681538961164793532860077807585414939763533788495430973366281099168452544773754006909105774443431333731304951157623197338044029496498501385928391135181066679414820329641370636926376069237648266494215333054389758540359834296211261027507098240953446706978856772199403119028054618469556945875996953876079601582602068369404052641547542644128678187874678344387639009681168787497896564087332871904880357777291896933653784676381356313952093962859632779100530182882238038210303600227842021076298475746178091821066410750207507660425592911529225276538849770025732166575426846499462571840024762531922907704763035155614971760842636345363801952343588380055019154376458576724052645474050307846155232012207281175107981521121263031170661703883387251261312890082612641968317072341811946021796778158592952772132122695044298135936288413810948723133151897576483335501970379631944595807920560542577370530150228134326548875467805778023711464615378095748278225191424269021908293305465636285741174969207637351461737505980264037053274556563964783900409846741372897111908743278129990898716038178494253881464609934402179455410864731882729661295361257037413144726024066091878908820516787507067128643802931763940325283326627929958945735765911906171951419274646189615189259747527532764586112041759158326270594734245797903039558361977703496492039178848003894982723080790849242869221779331517629294384525620891307368922473826222458360286163850948614776848576275586984802485788995445267214223315466627293047151220707870300020312911254279678029385652132945398144274754631335626796749579121464053952296229618461586541099089425551524894887047390110535061656873550397811226169428754463939262297796975526043288542098084216589813519803864739986343782949600610464244775878166599774197840743069171423522478530009473670858799375374839739180186635637159326597695627871756248102087748468079787729260329855826831197731828740492871406449098911711411215070386459156449163878184105487936876811686610647584600524503438877459075980372086052525532773195741093423169456045659917296822942991131195618141843293216074075009259318637869231621972259663455201153911685728166358118226253882893031043719692358007288222529168585393438120649437824246322346012131098568670784380542092394152058843801883406885213875889372031722514739772451586545935014543299764088742753179773106077891400664746547495803616216266792725268121370016443127879443147679526589467832976579783618722188110507493452428276512931338080621653332521462045612613075739557327801536383850830648141820359445229567778905489687222655280326482833138099887168088649814716317711942244420230979215229709974937863075677583612977848656003118727112012691795900114535938502777955125592935308810763857112287019347888641983118907200069283360245706618008083194285514424348118890108867018539964437257200368489996414731045553998007469239504791640100717521801082937719313247186679335406606463701111900081856044423319096744760408092576050876602376588752306736725950423263401749759852854441632752440027830971759169792739501374821360001089491024229972024592026932891099723173894898024531481476689325083718509448379552025336062872311289975100032211716000752000400088605524803028612612859366717427355631396209297413806253395337657468579554501545530683162468412643959658753190792028211123900893956195398511452009036327690683668968917264673168674397270134823138287802689012836929380700860708985370729027926972463402621916962977411459973146028947691476580171885667617565826336205623269565946745136849865717054349231290859200155805563318993972605364747565044508893063721451258840219129634604124965788958465751650452125589278286823154550357442824064550184871889372506601879789341132696120322298703228782826614248373848418617290615951238464552651064282868337908848571534147766360859863716295184947291276775486908380526323089562494772347005668829694653173432521206481207454730818278767254823119919018243388044327533019608782742866948475228615367962689366126730334158860436106094807734277630834863700171802820077622214228155796675353953398100073464103083747419143327961251474238080904687930560463486048502446964129400814603561776757718743887017899767255085227167984651987338850838400860772074329877610945838338584235427363615362132861652193867343489658777044714206664007260347553447289874300474956539570808274459655420993128024207008895500959652979779272451411818353027884742402684001998170649845641148031085294443643947544938143968591029144333992293733331455705218413902522055249419515685897022109931915224303437452390234514898208038749825299526472928697085952094866809386615114927418643186097565375514913268076569611135447314849858990923868487701777893284962913626657481861715702786542803138779981713166646836302861030888718858824708099538229148566345869021885219176474385357855257621381707633434984100105387060443944667547760207479570370934815944471393598599557979110892512674873931529866681253919729682369257340996668048667853413630986557571486788173454193898383756440249274723966643656864635764646788059482240710354881499518555188526926708678824871861985857618567330530601165271353884349194139979370675678097882916164990211102338247874656601434047490129976874232287749029954895095100276836340800882093442292051074765891975975463798022296145553675154534039235716815822924379500255206341504289200962248251939027649401673766426727310638343873859566665382626684614057803444190441614230522121696332696541818192295130684543588828702970488371111015175177751373407797080068687437227926483465353064963736042775690820357513198977581637592123536980285168151306636345044486796110423083666213472727723055991321584850634172421239860562118337308431624032154688910534645237732457911952924090366657004004079148281233243143606902019180645538844386738604789842857274726074602629802823973186487911617245605670944655673450162900240247122540318288358534943149448397293319386423006901532995738875504450253695506748572445459431671064588914937277793218587666098239173082349305691894589840285182569016940730414506951960181247197278858673262332589485620195786008634844502676849141641720771873524479054301979615126214427763415012966421720754330370674300640585465394443692567982355399632071933620694668890501697650531408315367596809117248397116861270602433969692244747424707056408866672040509621942343485223405807994969103475396112213704779793188283739117095898627349448220085788654920196736563465624345731523592761799791624515994880236126509553239309428728811132583019771762297987749564163092484955059695130837442257055256784925944867856866765967916426698621237244237221598235570175967828836969403078443024611934683438807423745217365901518995252908309230745887282636054502491430386342392253334520519669581948657027097587944752432428478342494536547401531304561519436555515134956846291487177283781373082469574429293262733176851306394408058144188291258638374747298307251460572606066050422202623073077236938653460910151263387775203888114912252537214366234357641724525148508744225661790904320381336010339571213760948156374024316652267794508386247833666219632761330961228549027021378378500876467966710569857023827771992941659597116876831386825298756267535781425976247133195623030172673638518141119896752726370724053063813732786904583167121278098934275164795134679684377106423415235367422062264256370224391849827108098905086659834113514560934863401194690336289116582646599814584905762974468928293141133070255464423878123055378955226975280291522576159493825081761003029081685043779545414505170945346341367455650314588906277032372465864480524929230671707855666953869431946381436069071178394846218959519072948455703420297894332873506849040563278633763183612442772460494035496266041525806797481125920947426970587550213495480317825769766584168098257378602163709763063336173968456992059537317428246367282769200333798951503710577442630275255609955553396778737039974188285633440231565676592971036663175578800917662873158471943974267676342961604377571662843084107376286098192526183353763309719801828439899983909278920742224413200830327513651920300625620468831157638062164042777931662223707734227774564356716094407864056827331820684806309934727578924702086876241128023583110049195323741471499759590108513964307459855534006529774974835145477482488408045963938159484259760576978727924348027901410992969090779106659856398347831452425745079458099656050959537562347806297981674012309664177813020591433658533440387216261160905530810552966855988810030632340785799096823765245950377841639737412468027665779235263161435726476153085781095013606694590814496156481450610367961917204542490240219513030510837890158829072289540220068732995744016479181032246162198767190588233100242240753338338860873188329836177844081906039837723105012614998144956492796290872245596376766251834323138178023429386552879104143598232926445696096731793259429187047560015701274163966902917168778697542428565551174046284822836704678422398896307336900193093154868793875679681529531680815080474780706291807508493892751184335204171840845293904980001867974043579689241444796044960917140612077513899603854243966627564009986103145878198720784767174632944418467365585726105994878455311703469824147469564678732155027416260038761135521241513241070475865820399535082996307352495850706699809563175041527742803794445722306102914144058810521244495521981952280822211207285826663314325814112026564656165714816485652443466909316347619673114836781042448369124300146898528855234236142173357119345736830372436328277895294896197518889413987829588804649620899320987812662116981897458127533063187377279303451981903973491820985367202941535009409333849394529356682207804802719054677053959030133468986161262460508118459180294129808653665433594315403499074341111062807163426004994399216336016044216318510387838182455057542084785227493581538773426240334883623003716392106590131878763090213410318343620136781656271491510750450966305152169983026074073166500457231371175731437230277957510109215610483785195708419615457683150930261273424945038320416343655774576015316824277200634243199458923423555301629284055714664660563509733975076506238695325964737390674765663527164622624342129298374067386842189436835130805172477889749381845446898946838707960533559857487402561793513096668507937692480412393815545310260012684109268600610779475551188574979144209647426821354475748818490506251338389525937446757758034351754284303324938093374048675124859835780032457569321380954504862817681688564131832391521995002644865483837054637854132085128419446989618906002937490759690739887206367326487633200886094224925578149345802633419505456075408220609766712935605561487951856659002313906136206536182585314131369567966452577030681299447339079889802176139309285172400887986554651178045173973576841983466363918338005319945375422281377255533329344052117615663213410669299594038758313247197058013919513440734254638522404232116409884464648449976002520823521425551203276655898003066799334854119140023518505584862546391861125481852568746589263531064213647048685339027689530021136144390974512985141261067377013748356258822485363846623771812432133232300114132334973730916275385334463699849784233759103434780358452318589351808769413055409292638238808205427921477735625307515914155432185083218942611650678347721913374895352357625482309199618411839035239552583163900209900658288282331114523473942643266914919152717226924845916202022851363176560150849381345129174513132199057840630826799132914227945481069734173890065905789623763865791967068642215525335070680999007172609574723638726133044206871681001149303775489134477178061352169642468346795334806098223436555157016993523956351173152254635463492481071845162380107554860018671314799196990412583044253744823205382671791071851047066903242392579279016628165306418876424843186101381289722947171339524040900223846536573299269195543211698644817221153096549099838544538045955128055393854250716194146402038387727564474034553537397978447774662171439595532836594485230679778504461226339797379021548019452826359885695168311789926753560800354454166038459252233796757927086992672448825974346703766509214087358102248580892181392946087338224381146232818237886430379994108689901085619820367953066843148038868851938043627157494771849815456158236266032099414209747007422142282035299079260918366053564941120561842158515419690468951668433281780228475248123172775530847792590901311698704285189749472963303643001016657711531932633278417558937448076731803878418256669127416144400714255209407797642734412664060286593596553354423993211272975723013329610853538520393502964932177497904373288066637984955171810357574990907321494689644784733323832070390979039058951338540713637577602361865596155360473070283680251284111052096289670430905888147179739483453962096332733904619591412136121639618242047154749591483053033092598333876921337322718259176425135878999962643260823528660184230036402188383144885730530175692630988966648090794263040714105564239995053187621328486606137976726380762815136484443557415405883084856274285592448072406788707445807967925434434219766209946563399573944118511547409459307805147578453702995000431757513015405315434988607149560246192515844766982260740538524131944741826915037340434930693242488752175827781763533390297464765046168722190396524657731545215273057449113850835095969071287885951633478688029848869176346367434746312956646650257331457972541135969356117704043039877371888411463960330296796581512557009936895306020299329308719428743463742933690659404351882909518109488388296832825116204672059965633711058501714672253495576691697777465931132606246926586546626765175074079788492299709284715376668009209620788437079731250144146595624382412862518216545441233853493112178697407151771809295242753044186934665868224139217082671485232833425552122581091854032451775611476356218576531434371881840513634883477604276377687557195613450556773298246843608530796024974325116099835723726539845952674165709569702507121089832735165140541089185700488580585166586796570858588561181063480439456188846609001611750542252547252891104443139538781477595999702152716354188685006302960598441976122448102297094818268775054301589102226865293471100679179944081103598311821039333726249894530089361503279395796225575209053902658161342157267863650259311163218957849735125234944436193764266563787405551318223989654817053051790307217149033798424977812594465234053523550203942875804072728890492260622333970808588258474533961419015761451512370520997465673276032950423659115574623885126772668616064379808888779598304812279222905500601612434004270145504992911544229248992386831074976860377911456094261498729347637627513085616860584277067521111147288566858761848324425361708918898837339819433296711003516556437184793808235271256361578617731134632515507608177340045337689473974902385332091433988259098830385839306245282699135040329642872594764361023774826610614161578708531812584630059851521931012843772301971452012794271257425487436247002367252126577014791430119079118485051160852925552190538310647088368284067933612119894742190845322010502268805586233949383558413298852204412470616624898159750692154508798057449848428281868293083922852770911589364561840301593136292107096312862789480759178420760177548099654720638440621485800811750328738112367181709347422388333917871665918976101294879248191711749788597423918130482351620257025095391127024722012807439287607847253134187259125895555621906509332308450291515727667851231293652893178067991234366841246321609591762324619297567715508256693494437969616866285448214770588456792476867092675279325196298444256111816137365762577521407969046140574221672521521841842840059359450435574307186008903573270940363982663035987632186707915832759280027741590612588837749409031492237808346467715892410036844586289510826910757692286862464281440727111560658940743140358055480400120170339786392184506272961802084713447183231692155679564505415146808279443298782518263910070316568061836921329659667087206218726410321502284268989081028537687405706079953405665970429590670674379725647748815037410684356356842204150003834734595405982371152266284510159867403657303289550149561240079491265224195822277119813111940270940074064618445271540510675328568703115469380598875795695397931873973326126399855021837321415168181933594883447202768049596576227973414196114348603941107524798567918710844187537156553370765005922184416807270705676722616495356207835810789048989809133370179476087991569681686688667518537026827003482567434601483123466726854832678002454831409937636679188156813760453794329142010907317959640791990429234303092283309600833376035621727299765574723602555002120704071917060914702738591603693539442504810112970882559821174444370245255881521940972099847321999989485340028076676401264502747029954182541911397131835858606681401328677917058390699007369134007102463982449441192532128337179982857171047896067083436667210477685974435607456197537458504865932806957282216310628671765234371564157860155415888160791950916196439374920531454161829504248950149136903062988038656366674014910770342150580904354746871172388924777142218573458991775434585468035596123821266470484977214232932260629896009977918394781022401617692774526008214774040925009374663757625960720754314890339037369958750958317062245228974854751369524694881477329536356345181587453974216293926509899203195512471027980598124389804662481399422576623399470886314846348830381955573759667524292090971114449950034044194761258882856247492482602677869602247542034431874970130778131434353096764017233364588154585923399550408707715938108765695677355155921602291592275935461131968541364473036903409222649215317699894261162601756245705106367073915073356292497862031646178656534444056955599634576043005830100810168486174598043833132977440552369718270266827816708141240419410777606755156229162587306848810462885781069311328480972642503276923589370102228849994582254663607665691398011721858993905471430812182459047230901085328398324909282217943274583585295790988117357198808585452984645564537182234476154679649179445256215865435497627601879687336750143541974965138026563410925563748818379693432648390239488154217639714407420831957801908394479513021457139505401433552134654936363910130064035030490080333430260838285937877815769100810485481356012281698536713069163675030214452113429394914049412664696084452497502792679410544746900422963843241385831615468274188959944781181925524500361823964671510104752193752502135494253558510235475565995838188227562242735959850033043069141150282633242976437046162222508209498840343896601453049529539388106315357585373574516226943951617303686448327021317184451844336377845106415988756685787232690661768576913656125782256768863758673603333400694060431005505848898160276734819694110607458176290849286825329756203424126116563587934809431271468158072906479368296922626404213442978932776498250213394198376592113685186784469152172457510750437699418442341856227444338781704776976690958219842176044296082740360816866093174494323438515242811457384071784280415741416834114600720470583431342308379932755740566669728334065141524144614570189755359436974411766144191065005127487976534572168151010551372368406043686879505936902594880883814757616461938151876585252602325461837811614168117986484511353466622090694825485496711573588786556573032585910792590514022320633993078842191047340935322524244166088422438076901570282764271348641505692939155401984731917804019184367117665383716691793873457726320730964909874045670930674096495930895340682563864605584711849148058809356914741614405163379029989156050654320906427051815117925781076939408328490645212613254197234617964272956221317048531666074658528830525893905536074527458145794688538216521181553665746954720424298566736020176112916784315139338860669226782689782766543891704192643489056930320568425781255024220308012724562367593039967345189378558176873982205269569768589253883799084727523922359119329256987241041573236821261272104329976734837002415330339479256229031945968271116333813678329505232512802540159926760650028557734613534983160540848792697817798965287106521697148800061128506107669719859797005551541675709597278108984213538095502482087259044493450578514831364872481174969601277805190909823727847846909330039065403969954026485796728399772931086764368759053191734771045627216521394016967239298356918792633064108923903078105764133147582062074279349292755361533094567046425461238982943026293619623870198197956191967459797408891056219336480154204421532904943725882136781692681466190293954084917015348250470562795912205609186495889436036573566590898688390404913648574662564198852660535594332911873841781502525510733884322647375350675220711441784263604470043915940702277943170936051635850645027584565062209259473877189549505695004060944239274539904256117874025597072192500191242265705559703561688917162300175103262614180050055450977612722402773290687835523104702182482043511970401432891292399728700268896430654947026902866872523366202933836534212058570320383999455801176989150153456384457000822568295137897023264086462257403739472889925420607277879375693849171050522058433482231327276864667284463571771358720239664935148846436115279884005171707321059009133041598947989411844091777694057187811876728325807129159839208081978297790723505173861476007416516279683982615174152046350572780830363203626535030255264065611217062726285603871263579268957639728791849998144315502965210738262296083134052816086546464248349427557311630454816037775983911054351021622444431678577733643965122136687839252885975509539050887988661796806003499058792384930432701589760684818132636903343239430615774071565803295368018080240841016073109230348800381797397842354710367694486093973599146194791983554337187983453997960891277538601817189122672337838456605631562213284571771232334787497040659492907468466537585266671018943581220706802968360939342847201788352734571610184482644949327730840970859236806493298667107932864732660729936358190366528735215273974943710442629821398581026460507167833634127361157004689488200509951271247467422538281394784879436278627286289285410465421263436016672353652746817112891789502559205453446156070653715086533409907571780844741961524876735189922017185565392099436625539679174471929088719584509270929424997424398396775533208145383804759884231977462110808509982094923425985545032461822124084698318823727382570966924627978841758344117391370612661197689151450885423976654409651347640936670323844623450393000323303551920838105860363520473371533985790899501785540144968140277831277771872204276003001122419225378421872719349317854057721710121136726918371972278776515410439804685098885466813505489320158217473467535666298264620778072730356741366758381487420822012003027571558954455482177469367729672453888520494509595780824114797353262251846400206399113049069048359424114722108957098507859167295405814619260544068466094688309618482372204309866171586658411072593742798207898000119371092281048432838634561264992114939193323759261221385504802556356746428248692984193135226684676187925321890347881060699592677117115022258470295145942962138428029283395582664785716828645536863240350895662889172868960865699612242907158060409466917575381310734525106998138031063846813344392566396611606810132034555150926077286479062757632402551782962445352777552565452921101636805069385332274347322275528760725950230675170761730945084157731249947008602562272318772115270215661657026826610119231794633294751287173562897621189017767428600452863569444443352080513551539712467482949633820085894903110067351482263841464372120665071186069919949820540607464225246104105659709616334945397846967362465213929474515336377665636528654582907960271985426357907908953350852355093960788313111484253054349154734227342452897994143507466940444353412134622791645716250687848838486541010637010511916631267279380650311611597005724672423353954063685734642120316804557901157385371603670031251044848844144251548778435041532929058402819588461385772124696912351624017073514651218383085181482755396784529733432021971552457015504438082895723969649562859356393312717262082417631105690889048666109739696844839823173959468228120105983831215834497824800205539496656675702539660067787960826005698191588461288472978310383584151914216092564340028480437786615422603006824258772715864326759549483023953579731360311688938683957027010733441318917089929868469753768773625282846821962132181359490801417024663455405916813382194043345483685930039871531132955030124854224201050417074235527084165011195252348083369885629930963854948452628301881220145271650059112007029790099856938847257852280573661514841950980720917145633948404811627209855558070460488228492072331576143503742631284221390370794539796453308152677115470732300986037878028419390238021439369355310538368543307748067585277666757128603128728111457088760509240221957449989560614300928405510773213283049964353002248118062860798386996464130965741315097218642899327592880127137055716107304743298430421210647058209218358065236032539113339498616159006542296824365992664116723451323446901994131843369496098151253337235097375490854193447562215910585176119660229624394880628054336861860089182570985114420959606509779210760374359211440696179065815521181624034216051701607480519336361982222042852649513546898057873903922085326707183193869741861965713725910823234846924215991780974827639011889375067567523166425474023006799066813826037016973501490049630155971102540871306888099368780472075710947829135580197087408798690759167906591971225369493874120534360230907120885364036974368875521950278481664396133501730936259763921605527330021952129290135778339781268571333793845668475296524139441955719091341744052298574566748929551201226554532021158865997226433704162628639026132850157014608238816057994383239790094199222078638410854451545917443182706438168676248595272794058476455823320406589447274313127440859991254922702780097095186112617117557869130641338177434296050190264372744778089810004297975036804383214631978139959171132158392611177319483199686640630789574917430600481517935452807632993529925426149550861477856283370418072275487178045973180859173424351115690839865128576296729899165369625507868947536521842670462286280308455833310833474539689844940389497836323933228403838055304220664533235897690046527947134766641232485376014755232938201614984689605298866197729718440070646994445117472220284197656218244500221079141601062616869662497279881897198702547503369706859072528626563993181518979673055020547213186205135876159732649101706019008153591236796231180922197570454313993175830848983731898273282152449068267047370759358776351258852502759214212111091115753871919205650590621407453883632694299232443148909378641416150536596071700191905027534750053791825328602538808882931475730767111363174022006697633750319871110781158531453702504304517743581542737752937015434624321556286712844254846364482437127066426896815776866213851549575382785129410137869549148304569109526071089122833869583022829274207569660598803222142211188613209056592455961184783917020103688092317384825339779084904529304604625469314611280598869779708111981687918370370642394786843838176035739177914064390871761113799773788142867916834973353662407399926083406900850903293631709728635044575701095216848176400546264446993067091237824692805253875731587906807797425015642853111968888731691692470338233902879950872098012764284982140665426463297392877895021128593915883153210104369405701059525027517516429484857957057326102890078352192009226760464852982596271126491838837495928846787983147247161484956591389582630502817672251090615793185762754239815750541807840049427990097299843064517227815831361472210970280669471151936420638225557357502459352484089364987870530423651878174956908939680851062619657223442061646417722535760832884089199713866446637177960213737956414901353268294065482741517092167368500817762358846612097433754186527910973950792949897610275961383261665763395641437731231436055134727362851519585080119135204775116411791215326437930482272368021081774673029051222964412012056953944887863053814883248772876908490191080151729816117376910812197903639056164661025068722171550628687024083366785994848473842544931131410408345997513304962285475037647438807139017621359404593511013011105974305466299828826770815998914135099281320238043085754304292646526370077068062147835069654443435587878305156161454511843733170042065988927045469434054199557652401068023193711459579697254814239608962498701996887983662538406921565676844922603650530536437275333441535371674343653906440817139518013736041334621436758591299231815442882317433363352735278183676928226553426233100618298881414277466307595465369234296472159259637502902214139978850049720944192983685356382619519147500148581583175957996264989576971417833143563220836331844099457496096967462071964222168331541653704549872962823439844625219336821823340997881626031307585957625955849873144380052952076734653122277516086896630112117303235043382783540776193931365456821064900740021050030035754391277276033798690633706816323752137378731944775698042628450557251152871496305305667796912047086870753004862337523938379440106400741349203828662529980093396039920542665125216548258014772119416157104132021397946485365134046732766002344566796870125538923154134046702061292650880528371288338149630697664679352028729769876440254344881285114251805117198267014435857991301296712891503642836437458270311452470638261446410105135932825216746551972556078518012686303905000613183448965381881898806892080928654931092764546044752553213717224548685323537743572844910216153253303115502455507656774089434570418624594167592386547141628475493463881719930053071861342363176834463351798883850510811964880385256098416386304431322344015262376102042919042763938109090226143575771583331865096953215588421742491239681668303008445752589764674595033114558558482460752702855360163687467318408489389375451280322970126248956733689105842487750363497360540338671974313373114121218731507954845079965015156575635929245932412774069939076291527319239451648613696922159024766284147234835525007057246658014593928382338370660540964186715502555172420744324114127837681189074105787874402688469800738780840424328843383760147310333239772528366626496749306285278065559065934373427138065789265232613507275974511896992998591219501420486466582586586502848783990628721650480138673052428062050898479721706204240174848918149338822448728969337182588197462709883521065379777972749763564599325710099067572985734936814636337494774871350380594205718310283461457831565921173864248526371608499223432079955332754548757704711438393242888684779345966229341935656398407345997650764018911957775296819282497698659706540341915594669519778604066274553250791982862538225437784043218217293607873842568818597424242945124341727706735135526670716225339300606066119107706345721345070224249695752898904607707082626153965074330177077292698318409244242836807179967849633873348215525811525393580054932634708910171297275533761536997863459403623793028970383860868585697728112049561444953441596075766747090061776091491093926379624734493183466786160725685438624936197039871015376796366973447452901543289241954306682535155576530545473707552311699127614136194910805955733513268805699517899514376029661744184960892829269909476890405821927625665678528692848379867147937754244803504935631848385250103323701623202598372867227942565315508879073199325672533823368613673422925232674322345543051591059867121215300426661186414350804541494572726241143991515592847203065169772860678147520253088174050640606866881318076342761602235532812424629326713712091684415023074556753706805157334579881872767696256270616305908235831554450766693654354799886249951513540854656612211485836495258878897058454335888080720349158124316857601698399702073253003350092220745256707647902084670444849601830444566728493014495550817932434598355607202953404468341813092101381656456725802419908784326974641176396119571328708714617331399394029706052304609964666388320078655306008683424086544008876710292339901557191287419120349102849562764793630577931860384864900851132487900503422710590836516005311630366619119083743982689867661411728920827368728783025567603030606805806587412353128659312239154251173535216216652037414542668354307271252407616418003306736047144160991454654599860794891841384982076548569604402319151757470768321456241394987662203262319137337225037453488697956763317355865942232613940104634636055968819897192482218216213597126001086521068800301339289776604431219571840803126765283520804359321278892738889993021727296676550990471941531977464455215321386824819295209980446078103735370670647493428496172507590323313202939340448590568159920945568900413549927852912167793059698995425340500304946902346021440647644034320433123252536610111322897621988224083452552916465449454546669983325986786872857285379643093930949729991776261734272082790211768550591655882011071640763441088532557367259673523332153295273019823246921265886152063364368396184155427857088701610128678896838825097316633643808941110650825749458027333019924289598205470056438734400998609977410234379563295707470994825640686107952023517094391136311372163315531158568610122253705725623106450460710624581507873484552344562375853177256869701823895199990120813219732033072475690541029579897577100842996786742074679002389088643421979608852289308105051327507542114286019793794699141047057407934274452862139316235930769175617003613880437441663124807698748361487420582375765677234269160928739331770419774365516127618321341514504128792872696824472727397564401521162105015684623349440396205251080185442258706497557489094199252894020501998251452313323064329416389839844087208177232366620439909296013907669271481611397842268546658689438079303354563249997339472791753379873275000657558831125839257603190912621248287049789571170123413575717313638278335003676218731977232200990731063003958111758487613365066600011890379247697889845625270691699775748368056976523384998761841241725597037279600710185960078249506300255890875278103831477446768026846502969436109140628721655229186790239449948405600820442607986463287720496281815452551043252836306999096647631384702487921689980401285947223083795281909560798726318016009844466795559074330453153764992191535222266599412019389080187914903810615759601353011717285213710150837901811355356795605048945574506580956469604496065446520158838885916759571582219233306802178772283888372483512680263585828698376250362448329611278106041113613667825858501414686370861499733082481601718205002395020594658444013401838051426845690108194153588772816732552078045621376700913013964838720249941450735209020242444084935190829487190548380774826478954966653851530691536707033207466246449185492071387231773372302783424502997155101546571097887688119990908851093656912112435446360994805397860495594524410527663483864908895902294465037204286281379779885587891810161566922458909168707550449806092401354558615808520269754136873253158491155943250736812342489425652165869355163935819898546510827427824147073310627306853224590969167423970651475411033428707795155887003845144398904599277614419280995197070925009509542650741898748258191285206547341098700290474656353747613714372766966276103951843005628670886349532721485480819819797131434879395819207926343963192291327275206737584404838993519200397366525506621188234848095499238046976169974078020218956060152481387165583306683860656018145093310486585008050777786223762534681212103703043617819163162770936037462385720107458306693366923149047446239966329335449267162686422923232623367521412749914011461659682653398971021617127134132508177463107851377562827515520606642563335870162018422610106834787717227261234272521619770575208099137473844209210071282486782192199375460700442462012089757654358991554847643973269356584473522715333911374141825018403972091632457740061701642743344104573973619873369575630152885941594726642224839129890962685330471726481086653344416308068372838684591561247215345393421725688018719193007271284466664838233851312745370886717853705171952122152748073065621858775203691792349471039121962264063491703746107062269159839328225314619423567866487730224801599971721604909037020842232593156400895314775278438269681121996234144985167727059950208289299708650333743132271104820348174515481554654008864321393395276877631842866509681795888579272265209445344063812100333311600023339335402588016889791406807158402997748866847959661068485415687298738407295137680903883869384085044153179325680615052771036568928552659390735753137062408745908472072101907546832572549449991322222559944517461590579092308778392789162264860042567367276373820639770740452052792563367420359223379632519963828092012107365273548267637610410944449433361773756092587098610792546383928226693758522503048841951203777264833592625994629213533646074514432611991226730291227132600771653897781760801370043135502654112160619113013485347912456987078060334707526911510765738833257458156538766662834746518925590116095412360653222831479394751526660768128043786796414582956476349817274459125736198005231867320427797472373647235680266500382894406946003518187661702287894675485286388528334817241091600098709212425190896518117828158530180775853212883542975802612335359606765078963490672733517156092890919982785698701024410518080220220745257215719850287824068194179336901935692383260956134884954444665443814003550634461726657685084675363897534081421997350854131547056226625713236589808432507625913771842493702879019685172396027300673700422504952827219635608555825087086991521948197611600640404139343931947900309517368212934568511708328018751391226944451759743992960679060273471153756745943140342790793512711386983924838543039380577399557694151546690297708749189422745719101727766934172890732907682331355121105327211853955981011343342451309451754991818424836135294806336136938879751349392833826794091402571855766917492887780189682667444795652145344615473140205347862120318831813407512341995841177586430887974646909754023989272090874672728168307142935471928483271604770187287814209659732695560597117338963452103943621937675208996586074784948513707958774609781879612877709583285491230820022431334656012657667135731517807094174065798069122775096090149416723685864864086921753120331442246826195460492776010909405532388598443869696564739235197684680849899242270599065922708460552283112211371524773098277643148473014030987092964193571631682246066959074886886137888741842945697785028019397644529920352004042934076917998420816854269317044629683838510370846156963247913229546571216780121156353506335710136820763246717192184722023533560248665897916498481389065341197893769493783219701673397123197569772130136428552584962456862378800901070899718099382129749200016597829273453018515273137402725448138786100672969655811747737674873236939374662271867406267780888086842029450848424219774048769075711486731199104949807270812012706764182999098554583909770572724115888935954873713420369025466744212032436742067238342297846843938702733688647898961092576589816071867953342658394187382761874275230292256539756578324948596459503810574440029274051663941006623959264498383054046267039668554064371325645231768978690561153312774451850487388409949149740260826475369222239781775326129125031817250514693716547600971517836405698391800492400432380896843213087748570473080654221966019083117805606670361359725050317205714449702768905080166707109466351800879475653923783353818857524599894131110483425286301779975641248827398366820541329749309917012488176995813736832295536534218533303992489599540833378499546160262731087502078638019521644829778936300238196759822065300111685335194164314383793403588336626499168170445327876623646062598950034472121522987678853488364584847543182446850240848150389802104409747253628960682561537775131052507513959137127885072639574834008349477340158321692207274645938038896366579452547111130034999645524854680523415345401583535537444116340794316629577993999683321992973298013734359084708531311336632899058739616240534061645817549261582599874056364262982303294078088462938794111828878204317302426306128600207692336682656179300691307096072729130333299256782403558703485895962025466529420058160167359054989408832333619736884594214957149685203867828013803174398367000590305458854730161793376631574004814561823263216874846615675290903578154709358838664393329675369753151806130258779822995050249608746326917089874781130144657541575015299469752712885462851759227027923252224316301061209120873032826488595458570342858183013503553879472236671037833089734243170591549517859719512924361130688564939549621414166476316066003493068610923352025225993317015120388600837676972757447654207471419117515461731283081879427996126810536239695330442175509572527705644143469976122594120084540993995005829809551393032049251358357000623290828538959027203179810288957654770530982830005305768375341800511950198331204266873017663361672088385686798213688270049199335823407107137946466695165124185357826285409639635566801638877029157512261703906230565624792622403187945451429394422403182195755988125639471556815882828823307844731961698476083042437621338376605236391537236952848173219259555651714671474382361196074200566109099934016028226487119649584113430884218743419436936490168630019133409427846165862756422887953081099406090297309767607450867987656325110874811177207664064240066992838991549772411411828168765907708916450485678346919695386771466122281250418136912479040982710290284597090097664225231307919261292853197278358765761218317115836944326038799844339991507063090666684900870670026288340496297597615108624326199189425416181849178285999859831275064985517328056368560303669888932476291115279943591434780296701059409368957147526467216804611561214624836247927554076372355813414762883411378676865603716765329231124806943618642550540476388952311979115611831098343554709649580243673770174343587668291340287959721897259983980408880250775418926619746872836082644503793975355359096018431842433087884298804326276841666139927293622833157986136971018623106124295049767633414535984454206171797523159689293803406701358107688971498404633332028769175316323863051694109491689533238024776621467696499268873659864476664503233141308621681239166089891874165542550538345446021649586488145196326055480680212298165719391897383204868452130767693045813481992075501680663739129251832912729112287130037417607325236515970119998428742710693812076014816603867563360266115288847730909756233434689043443313261657079380075101201105698158385019201101934797729557347172321576210040444745024172932504983434095891578336810324080214369633025150622084586664375222049250497688602855790374440727392238154136754931812117674804929212736605471692042511301006136208792709401654842325726356910352544860657310629036627920009753111586698392798832118298561382002852844241203025173337279304019185115530560630888673596829606783290943238714095947870665880229171583655288522829034769104567818236809553444854265723538594373519142393807486116182367797773714156277203203143975634124597556807474802529515777749682518879699816519991128541357410716059948795441267918531335915997073204942356131518661015961579675000528284651907387953979521831665637981932401836612702078757853421168069476300066934820302448160325108088725236366619664770710846824815773044020798833613946161248987139977035016684737699920021076770767738178917685758039946594096549757503160726211381650608428497487391882717457595052926114703864911873570180030349999126753550416238121774824644000071227200236722872953197785381409355662757908063091992135899513138277352551703719743645890609099415058028938776765325331822360678632868649362308742794323985889449605985582039622553717297239786523822969494821136258153699977463569142126430726596568372700203416882054695667955038138298735949465448253626911106624018205112652817214126366171522295532209005239666911006196766443141325435242682040367604137583155267675121724104433170205712352099018897638651944034616492753532640525099976329935316682611908721560102540748783750044047722717180450827677976060126209783955086617633912807399344470341296667314201047039299631808048524818409322333594391539980675658758196301273854962684258950209103160107827407772089040729190435619502956549032988917647115115761809895901432217600321618639764806187884227227321520473530815137975362698671589251684938096360809301322895970400503333218019853446928968468736506335394723751774906165027750724317716029621178355946967765675910527405902350244753157240706429698174967854018641005235963568009789298080270300239757213729288669294685687957559560489293519872111809438641246659180755755308637702215760778880378140499965924531989197535994467208081070159586988212470295201154712063062455883384135659936631092843458391548738768881696479950836133390141473183517776083250539560863750636696773784035625690879259138424931691856411811802470652726380886571911356641845405956151675572061582857217721471179594555856158284799547680905014404984779294209561521649777218828536996199970441904777291838080938439351537070050314614813782109966497568875970546360451907347953652274392234489669572881348680796366094446012523837162070206029693955894298525606486978928018834707097620390790877140969871350178046615708460754851857343802661123561680629179466402128724819853502614287095545940430466364317354674709773063287995128964746757568971637056577106913452113343627625878657711318753299563319116738206111894545378590362286383217805453863686270822694733217717992201982093143778558653357779364145158923041730860588097020124346788449102677385771790545567899079232000668639721474218919173033322366367522930209609287828724028728274634021110726735252875894156854850383813859310349498633472589231004405347670954883328604699475875362332491750976514281953235669225792434232876538026669613491847464218112967167622204826594947916580034523199845367444059393805191214421395393728454847842221223721713977081106886365468001803229889658234086746131742931481133397386027607482422147694012148592843087731188006225802153851325971425645916270384309454873375054677269874808011051676311471970550681304524562891409102167681249085420477142547089493073527309806133098270438133663008653150345184090366515167549385879732301727749574323961343060513954758424311426787620464923075329570869509798664056136718887042416191774924606348409712870524014912252320364400005335080317023430803101450095015190676241138659233555425103130873428702835557309949686435821209972344345213316092683820819185331872769412316108829337405611933694597366831171131204674007206633220267817518035797503513084277928890543188166894163563131275957908341937685041013592460485580715310689196402752104126885073220406050305577300429712381218043226192595751434510731837912927730006433812069775123207840615622616850918656277524739717068628326861484150398314976856555305261859623707753629816772164824558289982678078580639447565625550840020280130768881608035539831201182929489715598985747822782292295887259298035928979981794280718620740583065951849864516150843209557902595160886302954990663181254945274193438148653065014734693813878650445244007770320103902966300541958429214491753901924982755585601733403857988317240916345877330196236911572087987501748576531226335264450352743746168447903241237119989967147252241935147355655868655324148101923661170357097870650684891877700491080877110972513748492080015167794749668059521407621165833079797407187768406127572172192126218246157531140910636592989633021936050374806184972323852046191894444325887922478762344337801973335187871599831401273964843348799151917036228754373018556638080339375588032831108780817369535982721560569963527979937613284439966841658226902912971005751238000624500473755581141907876046415504229875797779830835545576522785636381756837333010242617951372794155760868839648090704802722493818386874808779709895327918583747767625213089596791427878840947037454551990231245667285021574851835710460548884288678769744901057784518780643864583090953079571903999634997753765113283602897513562225694593971246783975264219033031156560888315599260319950525274741903270122504386285286301849491755194762942891092113695384658360365418543968537206338135781943125330423747062528149949022310168912476668176261302750496867745637007922062260457232439856296271614515852557850001534348041557231245755244040594656371532688883062154999641152391070757972694602958072786019835098197484572202567956482539290343911523885080788826654381857271165962523631465910633964671535681126365443549356403880582280887411248868321362161919999575346939194561502562479956981200057784437697939280300831051540190213552812511118395944969494462812935150854246372359604688052019084336429801405339795204288373585996852323677518883062147345818973436336153925907007450264678473674232752231971675086717562931864446259053935693928923382153133908119033405291402101172760693267884470417868611021379754618020394736347713306705903608610016011366008077569632248111893807566439279008138727095649333088880622019231673888339865465431771299839783567030939745787796070877159770957447540080606693362315083066871612617595838671634989183660285292520520012938137840723370699230339745820969644954075269240361028324139978869916614058900475860915884618235063663665382003952163888492560081088543560055651413213393074521975091083279099340900505602662878906762709115153222088179371767692457505890499790886587187947746873204483528306538001430291615712240293978821090041879341550333477478313344420715448251999643486010654334011340273544700745358103230468874960373332058916565410432177069625932579049787538897929554862859635291554912952813573177788254303211818691041792537181038711611313340602085771107991841523432863256196627050465809655312037891613035438407565530121953110554313808545448756415419721196935689361192445318610442180264829440778013509610192855060107619084274857554099424189945671456256421186278037490385828156274387567004186890180172771596397174168150005053771884336230182127834477528506233310936291072982072649545307752752600905900831039070363803045187099759083416271920336268522599944848440448869713087127539507399962445931833817333198533457101276673172438432818508484740683038085030950678104828303541180258750804644051252582349648701340755727478043454839638730520205173849999779069794243463394725298949386230150188263017316095001766976876407588649353060657367122259034455606307344132937008628264371061366318794775328602176572617328580041302043747416710528958286726925268008242895001277493162523207635322615746625143072853114607185610052935051220261826842395437149517997362064577477625083221492909821368858258649344480643433816825657050773316285830942088479354805565735351397258526507853276491742301756599477722744990392764477957241495965884656151924543771639433068087799605833313005927023361101364155613708939471787135452365582347584112152863603637237928243481060504291061417851050140362570033896390887149119330590789380744589096403102013825487364833754964765821705211825871291279956841483049122441304436756151372213293839880762760450012810889949184385008463895988942883719322644535297450294538922946824629087470975895484069595033523259774633569389730142511923358465936067722981242929596623682064417352603300385177312887743530954951337942812111526882899425614009783639867886937383250866120828044155536343019841010118481347452321651599680970711697664716872979790607404212972332825807441441739482359016917151721872594617495474682241504591313841405541269020941193196865744585462806459905807526696686143153150829602893854319497436389786175881411701134743731749258632674080237699443258422589907251799388676908860569512973215059711544450315926344587433829430881588377000695392333137157864807992122222112760053511608161567028378293270611543840306572761439218931403498745174958612401337673462142408535525173965947787557310682078227893406147402022775562920745173369559313929838300797264525925930361555070731680352911751432141902358110167164576027001371412549458775652585324862051714471594864428536024211592685445561936916008448258335221459599103999149734164730590580037141976737684565911432930628695512970036936988055610673393846630984552205365469268059627949528911920614166186927297653827762833750128401981972540156428169338579814341917924782180021282830638843014353051641088375911388725972505642572699004761651246463254819293134764159670984605482829997141444373015511553192389378145897352692629171587787868771425910885340474619708198099213572991848124657581101393998863173353525108480206961219191261811558077089974183440290219538558705276697690725653831179299705942129079089310646238621727803952181624730126834181372706453018593965056423377048965907857340854661421323387105054156247036043184263134121457756142162574292034269483702183009501808778932977416467462136889588093185202679729525039663887506664321002747175543076759619561666381935279267802907034508057240037869563026053313153666261414162325330209977258885525680669975591777604347249399088868486105965192900879993320143268521526268537040354252939489204347874731618486453225333290675936729567387550889180993638102224490258270766966375417590016485280632967345403632502591064055516843010246418039909673443317941485630199451028220217122369271435235018069261279381038164007755730758794570580668419660850166688458830692258162012669755435410391633974535263979632262686071492922656920961484617310073577800514832503957407376429023506180710148226713631337080019389354586106726119160958075667749195728571997655344711678517138402158500452832674810492278323703540463344582745961066110419877210361510231562377010309777503316356630084621356367926507494974493616476769020301895910681967644825154702266742905492702162221154544082761971396257172874717000602294343674349125415512446826413854317106214732170155362963657021254496300019940673209822842514049295349911413404027098095442935057394745406190541117926546276041243864561379877957622766909778130315694089701001694214187540507905305100203416543964890363308084978071301051012429414618824829352494432453336856682156312849323009940743647428301289253236700392599893742643193741353712413822077555851880997792305708203896232837641793219849501378270810928975489660543339504784916885984469291291586109385570949418739781918287749333859015869917836952486316987210781124677047861038933097987215492598664557495801455638572524291596547326194871196381309248626935536709087578934112292429637591229791204386265569660792249961457174261675184573353482111189637345436497450947880011913731976452975883489332740231828841848736410151742624622957952906405982479859646432528736978654044828701665488796126794010637897409585774477261585803647170692948827882950625428482632930214513271094476733850610444931524897643148507565305092961147423448213465920547562465791148278357492474622045509798879515284752502669556605842794371918529867228378694224295299351965300250189896726648317620660256879508064344891328624173173204642349016386888102063351014814898293118542512403324930059766451424781911400997939710796255071683378191173964328275383336931269409954422047662769227035312947763315172809154868089133799788275029317100895143484894705981478097996775518615783337041923110396599474343472778343823051724355762012943608686915944939344832604203206373090025274146398087470840456022895167852816215686644241981458613825693953364097546207409034074120831162665691823687045620413088323147683110696504171291883383155347011435276522758489210432722788518460633305818892488689965413204938196129135850979724686607263161930712844080848409654625966592091829765913594256015339824297453849084217329963016424315109086730601292045191522082129550714750479566727968998308663832742944107815114006193517084572249572935364528560140775814634693680410244968851197941946684222314111559386629415327753796358744443882741190457763941616846679480570584077454146824288462142581058556940303937977313841218157917161003601814461141811271224913602887102964553742198228957454721069543038989038805012729053607435568782733086556950182558066845030250999191133058416759989054609534411233770775044870416928768028304501519431255105285035103190080028290321748963205955066963741818572346711754277692549181897246619850250159032485415249613196975414209083337097850103784424236819934720183852993789407733635279869440338217790149171342611235618064214525739853334972314910986633908073208137348909753974155772931892250627471966004180530372787742405339817463820544895195233490619074030594813829166429865635158697880322860412485787390089798847632106111505702169825128624443299959988941117826031565147635070591839215838987871055340534177594300509363386497296590872982892348827738359986265233515593931688613544262154978061249688681156469595665023690447737693366842550264880382142842940839637937964306562314298874820453375704462233141701349700442928500182752402045892161510279301233567567075277363336575501230527394764306320978890907779447439597598170315869666202752974311502774011050624373606259144846081627265172684146892027376962948088952687645187473838569895385116636432121802952088431787971416730940550929408915834769376911866713871594833785887088434742399397571447358871511337259936374985739600473632409981052300241923865445710209022374052797440689589537356166610662213359288784468581584867052391752174691745799560098737298777312193571357439373723881774792237416449569451019921373569691224602601664744528917449736112203357528886564088278378482838864387715981002642381563652327891851589995797184241711318927272302308659533779062931468387362058422296348947392339535578218308869337448508946738065457758134929640437787682931230977276987361805248611381314855319439756461870230785050874432238480367659608382237515954404417499216826004337215741715854375450448804063918454369330086818668777377621627599396497582593278003754314160563962740723800601481373393012066813050416546717990243553014687682007125357704900209539340437624351115341419752299522464482836631578937638847063856884376461717947206200793500635113039189697111785918124890620820702613899158030376897034076067695654579425623600219884359413230197674036306601203963602659412731922480372465270264886832273765795028479326295666977014333868091149304147356148594461303537134634687411801643969793471501523098028945796813141863928519548849753533046283659839824028698083710278186384338763012268066963198629921338028155560273721165541812656949764772184385403640236539863453174750533166456816252997416710475782808612924242325997891424596412538289542941802712335992720437076459563725510761541626805559723040605987795401135362020617358039265225962806448294869430756484278912744636305762828871290551740760084584939817699981789073680342925798657937642414419534203747353065385783232623414766900201670369328443985058092647453029321145663399935117677551802312516049074782787212927396918589807621829979081697825427117022800831188303093270811651235247715627741753381849601824650497797228126859954634455277446870336178622418174054628714216890775109928508352249288033446609993802181410874684406973161160238978383127748342739325200785039218124171719805439981572557507328837129817015189414257316520330350135282281669750840457541790876096431980287714674008472980752863433307246607548592574417484100418435246738786264900969847632452324305725328814669756924576619822904080256518522642103307664818970735083154596689606185662502195733038103800778860462400289907384705969365428118019311402202844059127821844964654414458535353766762458242410429087348333113416638569556651886526849153784610131332347235895727154120704035946382471682701310648526849073905040098654909617821782769168690765826555974672395204813173173353501689306118588449779195201025069817198719004253533006869638933490248918735641613826798614646291597217353207473106751486131648794702911739005215819019435066045336250398432168694849307289824287576292563284763734981112848949597729848685209864603161750420703217332808344383608146537565859513424390941939282174017993255130445142424272115053575085687304824673069282594732637037299802728793065396883329088513582017206788231256018635625885158392696855427444701308261091607166425061259710763338241610019187387389578358921199700506415866113658586261996783302162303247311752810543731480199664125668374382307324484775586213874220159925249109403895803157087929984553616764705287468791416377769217448844940043697102060943587469668648420804799264540021039312154065621596183136451706122270769953226916597092247473024929560942659969282615623491526283930774492593594317775075163042928777383341396101480285996356475183264936841473601414622431208435579349387241912483822303060837172819734444335293765759331897099974365463793953625390242410304062896649011702829850461452934121490694584839784683475416805053346574613405814900705599562923246141965837620166122195047754698256753895964942206508081440140649773892953955598578942509061729207460886553930289062611089793574659595664371191035357682966477774964352709781932987391170479531256673353346711604414324527827643139609290838984022880045614794238185212339442023356562228810572232073865476885339305839228722843527629113023203132411100235979105653552548226815642253582278611772718091732583117719671580033192647118197276305243171696305921504140447436891492242449377929326125218760112004050048271169970536756128966645168277455624040333972901091363060153072394961668373224637447532095030206870644635366624260441599824477043419463211408005666515615536223766187027472904480750054375252279258138051905826647470816842107166913564403478925699514743743234601161744699021294448716490575465044700919794940339662743968723239751112833422875226932108988009802956861260322539097886850101350587198315415825930241561874151930090314051007550662927280488665228054044910794767368696941554644200343645799441907081164976789494333008867428291588898476499179851201417004136605908356012547204462091234832623822917165141338969690046450188529723558805757414260229682141920139387659836923368596948663459842572223417587698832762524335762733696158943801722216261091249300050157628716282253787629641110589371320633980464479487959369835623099397638014759988479706587785022600214269297397066147682373677172707975158143059965034583080392950084029855815535242974063766192507279339019217710591903745101684845059345566337911171857853267983130801006266893909525553400736902356943904429488765701015352837493054432998841201624660594828051977978352041875706090390189190515823989309406861268878884083785663770579759847854796245846286411130707654298969763207776346713404694568295022761272459951111776757093131293097194981942640541611005911922037583592551310031509736215684990734295482294926560046823909429488865712566532970916283498440563824206219284169827383374468372400466751808328591674164087632555557167648741655011192796020489726911819003044056123977291716559951658524393868918680706188220475803886420813878347756917833147522277460015577200505724652340822786482442523529191443603043590717123946246574843173980431882318229191571008629690321246364156119875455184998163125208831343711437327857667786879744103885874010824364614539593975321404352386528475935362296277568654500861816105225976026333873627624253571647039130873084601261990429351097039122230814840218324509805703212248112832174509465599844967720833267019309955091209523997327840923241167995773809922789152366674944095643048870347407672986643348214717562118822774997945323988627869432173760179252863748277345467062920612142854022555799675635566113148184491085176258230864418225109015333485188022640063119540695414319567050731021241919167287858609976355087620036956801881985815924317186671256934997926260181323261173733909517370537264545982016405504445447887694101174379717217815118046484520939784929353025889844690583722778407277267332073448615059091772572451507919567975932273600857780738250366674091738298018843900958466539303687758592909595155579847442598077251624523571249561145257366379299260266934777615229094254598068103119645960265806448474171649617925431406707439530212737108952356130110182566599486046687353685556745293884430879390605026947170740773595249055839199868529861305802558835011184293981438950149767928832585515090029206670561336057314235291370764677894195755170564682703972353722614540977898127326682707965245719081868184307108456704130442541236088423489304830794739518138487265682006013548447087508496441243992283913411827165250041886938229453895675520492881764558480072278742653777332252702603849772554002203223410655856991511358800345969723781375703985837430383753766450658921677008692373946092275313927463149992663712007758016399310383642651363228275438716163166476856863809269668028708781051883202054321540798107200219672646095723118056083432059532645152204457916227449546556685696664874161496127411819815354742264470347830148294053074127084310668771740758135448957636343739696346260543072692162956268234570808048854218943132433883868733356568467130942742643013837450816346717383431323761827158529893555053531331758228096121687485404637720917410981487530868252053505053277095188387494686240786494360968426778520973161764262731523075260036027507734519587029331478651601192277652413487023564039931514149197951953696704632820646751385297320846508417112337183573706183774663652198184975487279210160669289278593035788270914529422646712014048783109203803949153113256374217656627555663153313267867729518629861540895447669107201462689276244091782302415625786197326709823129197272008856411605631596689970889403923470079817627339190195747945253928446050595713609459265416089514768186070159206491618943868469656542074360497830771322616229501451327910469747507076136989118227238813297600345233433239063943165598079254747650596216383804553864404902734291295011525871289715382527023254688201343705585461048573106938326008152889978929271940962719387257686175388775669699986615543992141339250360219894663610433350280364420299610384955519934776253623423631680690658138804542022644713224644103866751670211640435877961494517550429998399618893411914625831214434330815720000282510811893658792957000757571393231246598190119174545249921006508057944850364310914810288221969498755755033630568941852930959221734405992172104494884895391855356309207435854853577620317554997554189058081335938658973452640498211920154332450200614094983588567110390175559434641407425253799234192338323904703765089750604781333051078356520868912434902760981296175660023086715356247211952967893188857303683331408285476477551220354070805751798320823394236799589196536589497169894925640221726230458958553701805621506138507642183585282714953966992815270003508717992433925632265374023307979467123017332713106061782942085361249100813279090015170760109769924661483603372578394386936561822118261058146256353297539662481181999591788344138348193308618692642248484343248725128723629073952270332041345821640643380267042708960956734935694028879522671286696232375767214854854921658799461483602213593248667363122768002723765181369321022695592013905039848918811594726227669883440395508337616894856043619962318887636101009315250236055035034837154743833434760871778049293441581849028128412073433864370013134446882518268182761316991827230606082267836113735472785819229353688904387749442909229767871654971120084776447022943342340956198476987763914770294582241875557232078079329834340547948946528879554064630245266730126191112890723877385944018023202399039594772074140664954428924214735285304788780474614704776431469471463199098942171614723667249926040030095161268789931522847600955195852240945957559848208493895948730600744956212664487993318685271452577463424853472717132777860975299389678764224549385547171000328805689843877368043086034017655132240271159748841467860400494135540228016031030760095260301389477548567301214174953811061048748554461808568321575638294400701992214389183736557520545039709440176315760850407096557033162236962441365990626895271021321537029498433496241353058362171450359507402076684350224699980666427490530575177138947099822436287131926308785323095822214225076982078551191600554058999430208253440974169146165770131815001389523557259553665704652114480420903941001453397536717395650567842471621395580137074491570631820196868118983544033585447404241316797661735279334974639350528056096928394371320653296086488070029890002835443782594795839639632314717699898766660946731343271456183013436031882625701454612608878152361391626638921621270345883832765081261022964851810289049454976365849350766077325728862723048166239147747687610829869537496215663651361807493531252396763108190718832071882970016604421940132173241105319733399666850529134962386882830123077601483986794237501159153207253711468524650168729592469300988354822200318882103235312926893410865523888316321277686649878925981559764684714750368605352367432603019076660938624994791271163545444845194146786117202693114152092470069631979769612729769237043972049305561396904510530096045745723661374569397503428028727171919584337346894631792763934147956484818385573056311194618157436552976603790922686914209981068829936650408075843722792656390215624867180116957155437144860202831170890274032743780102512820003854704794082473680855063338137835357788877191351732591915388017856796727473434799863570348427489925517228563113887267915795569637785107441745888258926412429722223688325837075236778313773196129192844442483909154624476804485988807226445296237581506285919336220987351334298535032365919309664021596124718817962925457289467159859387104298899880772639495328160400382515776127812250100773625369330664142454290437278127805358588409444467469052354866608042453830864355918008254414342292259900924261130792703248886481237193723699894324597032452668258522065574489892891376857773068782472882521224473590132157421957714085849201341762379933700817599114021091100069333603870619342003763809763665424322766126182768193153797550131041915725982959472097137153846240461597418381092152630836743719238548885893831763166985370056229922502654908700345694537528401665510995615964253427795898697575422606650895729066584521692992320790810483073427122854590986820257988649928340307641004087870586772306374221645882982920811299430718808422895745424960654329474851712005464262238910876033047834428722550290524752926907187549802563621184304751997747188937736385959493124711392521254527196703592532445439993271559636449676416311148457066175967585570181886432131295243049026645128031103226480596381051865764274283225009161746882315853382521524590962685438606223472505464735227067108633533682442481773926053722914631587040959508033748018641690293542190814811416855538383326429099907977572036567066084612321507075149940989792365046895960838549699278589539426415928153880626781360922680681001583627808744767175401915816985756966145951522241596839514694754217371936546238937855838664861466808050152266719688672349133951886582974173331590553463983149598432270835765874469933360932778787808774486998571210159447577464603676861690582450210471526152796015054941098290757312415535603840816295482019867423846967434387312618476179592107226384352939424792838726894541219038821428771290522348924578858964053933241083973269099264319009413457342876278269103296658688175935601949570682693047993730154529683018027475592641450999817252329193445360816857795166343244721098196735740614965476077605578910624567934587199460816796282314679090017028309887076198365364440187143989012815601817364467842669398454244945682948809314155040009225110233802432881073915452771285344603879030203682518696134127657830814490283539657388456834129558156481644890687241055553653398371589682142336018864681127190248636845956679237146154113737318974856690032522548372203891322279707501749915875514419739079549990398038558351910798169470776393332366387808306686146172682946630070844603885419589932535473845986045298928704605369398415522584061261667706421872978299039343639386113653276559027162916269935173496926994276726636201654640450129800242023772425251905125707901123149802242994087114322324539464925945666957341347960256159569082140418297888894465043769383679199335529033000419582846826200681744445083811126029930134911167601953349396554141706047078902372369083216535493441526101304641878128884081311893886323172764813064820933449825396669697076871423853173083637544741452960202810927010924427941015708963932729171787866512497691621652358464971531036304631339129340447525099943538703921104641798865469314409227717285402614356966607629010204146500908672745144677032964341743620908704806801648942913766273214042311940046205796819059460754640418327041625364574029429645590815150753436756276315971435067157378555379285559164802230594931706852037221651018544523406880823770929523980734623264666117753709447805229473837075780801921727400332546725065677784290179792686907484439609720512859067818188916074295459703403677859241429907451010869349474068070623706238956273561482700051062128269864563725288500343952616583292733419122233680367221281532453186805014758846384233683518265477989704682624188067757390573717221421116274890939335361813997905186698615979908728655570342529911299462516016326966393445655415524009693808808973271516476260507969195780195839886705346714591580240517153924622041749200852969593218664546118189658298484822243293464467115827016725737969763992707807025122935456178517704302002280632183589076002979531481144895064531507608542626660165532471790260970775514373204487502273636845731444737241478400618405193125494912982291589730755548312209871723761043356488591865281186476908349445238666172005703339424831760529395038384487684593712389536071665002807782723219414969587658619339436670528091114122784770587155218685976757690378753178909753483799872671793493305605226945999613774820467833345051690229078048374897990298327761909864822068355944213206698607053048633132404799602200106671230082490596588082114793869037769981492790499732134401749431663761142917101863634194323769842747583459088995848922598562907262704377312588595956689431133577760457091622365567942766402409926207404830316372818032692951130228365946210041444278796956562505395232679490002770041543849911931804523850446695000287914414029313607542346248513617213478779915124218061054386876561612845064581832121571790680731940009647316879998746628300680888593289074813761635985839622509928530848145764499243575559955526214463136296164450417522638279780068533870900104524593668309681743671575949731673622056409862175901363092338525782012659987744776221008755124856772827611050134656053355744649690651790036048470224840190525274131271035940298518835334504090274496849893568983417523149550936938968499798956874010701964311193255717519686050704961135267983685120192108711778601385416449720200085095111617884103601843335821260323812090343968049650570635175110305546880940897861398855941617945274965984464547840234346874696753262146888396356022818631938097707179109669388789817909928116719105692975901109476565041662430488034879900452518665140501508789698008329041994398254888040977932413690935290831489992150713779657226805790375666776634756864576074419794728632196740377027946891676177477793283273438128446051384563626975831164056681006254728284773920499572795015019061792576291554928577193668025019408652099873318723338002223230713994841649226674856203625149843589130673911777633988131027916821802999451439087668137206935614914613465546037466322212822112192505991108061622644826956142818562671428897635068217122868025392287574393638309096965371679716258592467586512854438642668801973674666812176901224262203996035600006354779224227405559716142913326509456176342175696770132900098719200456030942844157434839721007162945194884020806340976934842732805057785393303404402008916057167331187140062547802495732247404886604074641229668415159772672088193047547149965961066148492906661251811029617230288531847696644137304171264473123663370713910678982501655028910757889001326238796655867445215182605084449638286617290292217611381056633507298923094662491228286921399048503111608777978940769034294476376441848602283152692368958666338206876922301878740082304531443354299196251071898802151463615267275567360594292324121043790014250899002698424540237576322943449061832288520803508304570938840763959038864695306736474149902039840999899698144401609695563735149146503964865974777807897541301839725946442252007308529197010562399585587531153662938357457865850028882344842033525888213138287115239042382861679890179570210720090403529796860689368184897612835798511707882183522928711297440856478967756740322183131304846277105908726684225538975881766586533557801046294313444219154770042754571855075359001583135740951555803142645310775940609113153626261747269487656515576899307755105351165438139879996232495584480985470094744242146470903345823600782819487808789498227572859764954307557919537454766837662236703565262185142090969826770269864916356978381704204632623242719571275552539208135304338764577372139972286284288492362942444576497676890076295098475673084328306388922824249769968564805630223714773735329027513830754857777519320509743452003525807179859642923113267494585121994070424442403600337260102365651286440441444024171961865207274212850889225223117853628492869346147962370789618929722742926383296916350030883947018904079656670244544393297153814428953338851812078350084822790461676841960139341707248278605969715203848273880934123451773052167777088188404973779406427965325055972311491716219508622344974988779177868868524040051510655819785920216854171639743357510120043711770305243160445550117675810206316744146110806047597390518192919028156757851367484692579754376127742718517095489729336560888661717500753857147541445352931971902890502380600112728543879583692851432095967537098014104623445493701683839838612387641323396001123321129121444930745764341494652993964480004500738591448974768290693758537294686953621970459431420340541079165827824189721860444021370126895651068123269936919031131077582446715009244622778737378925132900191632471106407365353943438858724178054239104074081679239355098890185813051892969803406254084153442808002647957713671778711610010374715660794289887558144262555033380310664093640957239341758737405939547067403211575271075369798088366393307877134407885854049341937988478971263073942040312596757932943041269550236510470336632802489597718621593659305520339254034286438912883865364910520569405293016846877738755521723797614294229211240000344662929627720084929849973304222826457265564816891132707833335151448486865162527353361254012423589188514576381723438324424154447988688561504524356745343263559490076004943196123354707596051411004173396127609526768117994347743552602983090824080735484907260140653776216957736738283952480875068477433773873136275556132471755048208850076633208202889071385128081626455542198409491336591569171401857875750497613673402049530326781647413182020787427761656435640821631299754734505670188838658746822805835417293070914081147359084246302561046917044533485169982377535580867810172953322022789855196031174187037782212423116214092807387603432385163050638402670627147550559567816025768650858612899605314632543725449815327636695250548424335124339168889586701778109311997664731901228758989346151632191377591599802265641038526760120652209668716063511864503461117676661751800706844478337198984881769918986432938800663263144602460405983269881001164532571040809487652326298692126507363218629932564791596869785268633434369902102923887260967837210151346648368710866474167437305586476468094986937797101361855366752157033563714170592124911353472586216005815383605629571222780060847922376175331544105642426038839296211726366703205652182309154729375618767525277311143269456665145804991064469499371732601077010727408111361412875005513081608155065718556452804408975673501270837866230775524874036455057044682514887352749587041297761841537535552940457906540242932667165210998714748126869830061457812691480559797072694858759394897244059460449266221044953704907808421849560908994341740916009776617074641896401479456838812250479147304193006215772315304430799691002859891026543119042143403557998599358351169003326970429697893106138315227070617237330519785791399986072668059599478422225008228863380434399657790349677530129564205139239191325020500375231943652426400167402932998446660800606846448853480017761038776692008669496718492299270271794663929559577099976829938803091049812527660107309694098852973129069565371516312550256503632722661574233766379501880201956841652693879969741531027061775112449291847440129432107289336252085822513948509360484352189956721528301483772853569154695736731174256571557758252341569770227041393617152403227363403575324546054743468009112644758399193567733695842379636890754524508754959086720334927960858363367819979283610958006187270796822934520252969766583720868522420736455749504978696037509097485243038526841781444857096995550511285151909709938585147057320910813007013192416962253257413330857535588345714842155876796749848060082119586873011610015625563444134611627539865511303195646833226189947071986433088633929119267257159949855420105011808653115299451871533219717216121339082792888705775279825167288966254364182953220777425309780329211549385443974293358194041294319427424224843710115866077531849827807889726505167890730197794194577010890581544832183246328931942471188678860542460667189243384286649727547382703903013930966801570746913094387080627918971473940589842573909310220315287143885274447880720574298701195281430553927861961875827045124189424338194194311235582443752192944656537351838078584226966723769556036680327444157597529994156309375139602444984478423854838367436443230359198733757084949460889908771510159547762255727877874172098900685896463459040370168822382231042580324456043113529061878781489580446602986305992500947454273546232158708795715953601804661572867467073483700425185036057262693896207472989390932191633557964916644697678058011125605238188823976242180589681191261087660552359930069275911544941549593541069077965945295621026894407118282045698793864337366360544150442449824044104969611354258258065223234339649131108006108447726515837855396292323987279033223478022938053190415843049939729662779569458618869027853813481963548882570171886790308295982535748489445575393226293288394752833059699512737184100002889796849176459590986548795144168878160803191904827111567720047314836906110398447116905198051577243003216784971189984178118799761409048296232732095625733105437166507839315289098363669397553175406838360290174871380803416429299974848868212838421864683183519215167011757470771854093151464102297091224741860444321641775152490932739427047372503783730209174490920308616750415771283007729325635203310447485511558515257642065849316536409195988453324922388010200035481737831252920177846751305968331033399606405445942329997838881815143255385218852571619514395366729491854370218246024438326140942264869102161685461510167194555078926477020001266723347677255563178970479859061636929920901320952008985139469204029735895232707483817576281036382683219541794453481196462473614921198002313387184559067197786459539227352950564888437737981567098907325600803693079820201493919919957373982813001358468739141770122043751458963831653778441132734100424680260081343786911278447394685142045565247185387863968293947991947099534055794664334451652872306299988162038197874497064638804168542305621520375590519849814231238646334250451284588936478942346434817443549099603602461636911554558456203652136911408486335283701793812906335394907506060163822523518838529082288135732757944830430670837006675263050973997736030078418965321464049406035566774020733166287529846413940584176517251222159975889743816142429505165376223931575833463134190449197696880395736620833983673034159032483033111211983423313698904334736406264675381576520838259509005964087396324468492062336675054633608772214167882546885567942283002351163527512815106219733506132755057226389702552560731299914285953327942597345889925005035567109324566950842176104904057941773416103983633400808774653507698531486987170090188587734306028085494576465039806666886687524687567791140386040274503941592036635529304061640775196883567933735004126594580712838620047063131328582531929185414837611807252550218096655888354614925109540481626508388067727567558039015894666092485636101476044995649598980192818029794931084710768302879157545897466446798288833967090994931418348925811756747456505688991626008411888467327991911916773156949128727981158948279294138095876007728263879613470734186863633966742449743120128523922812097123923774657809037077602400974527698953977294553675883466484415901027628996081181932886990531619222194635175641794136661193949534799987256442759937351891489924544209119414989273665957824220972237031470708762192858095525678846679735596427093183965116117186032773857257000695579340412590950262656910131697041998196771681936220110715896811993725847143354297484061007236054505136729170515818612926158320334869888984635564042909532688614705958402602111245739406702495265807985286086460590213905652978091447836277261838896314641338878965813032404251748952973853397465146682991803390668192074105862927989425804880437125923906743744920890776260449894892022394468303443178367647070769646530197270450729325017797098557995991169015228302900889793501981484789088928270093264271139617092626436782403872405075708269719920650527329714679720403111148568702347974381864224394021340934087529874907050820813009103889055517843500691198891241841655053654157057123406077983850171531290035056604993198901131982240471822408694631451864110758308425291584823239119196863264339100415355041237728458183109307450372285949755402952209864055147498112238667444722837906858064203977946504256165306744542468229172376815163375378684694714561888288231030577838561975990986359008856176354857058741043805313298050541949685602356804444976566967819465640850499279542318545273336825494304021284579849415021012833757143695009574187046955006552187829840126393846985457503428994828716750028035557613154007711282516542516148065527779393087580167006335347634435589814491379464239478141536681810466482337359583430349683697369961795947349325437843150325487090688948648494790402119737650591542029808488833168753627131966816432032453141221399234489709773284919720197782166449678955671267319602329772961962430744194486524802633315421934955922892326348410852896191823371049688540615809013826146146677330653124401956953358196877483090501910128647533121931178512063768492316331369427919969423825793899147695767814590207639001727763617674791737057186764603732198007338352385576026400714114133690523535558453225050317407850107586728111251408931614618535564160841182738528514339888412854984149521679259361119233699095655749101564140772472083985607744239034134618804603669697671489814973664587856915418392220818913608401419933025843802463392167441968151021608762365100441005633621059916908922880597749008319480604601858937154606828650634789219161732389534539599788238914117086151936054122416803606614193066546304846353386910917849832079631772438900940559554121381318146589156220043774684821044414855774952520713482242622732842593941515322755093529289419329936480211576793204533450539383339238049501176300241896279901680271047473562258498669767831471784107600401253251804662064993689404182239056607393146943119757639437840381914356567137275062524818271810220777767671244422535537327836997603004187456590735274442531753601132268953488805000575001260218405402632126155204442316602826804330306274441522609745939594127091658458205275462584460883875577099533449319022365333283264599699100025062389740357462001199510679437637585140436740496954684822277955401968862607473242582736048665867854063140081351129999742983907967776264581111769695488080932642661357462500781488010737277608762804242234860061724258537964990807882437276724851121378030623505890476970810026172758963886461091900144176720541803725573450557159025226010814079484547105890092515538310831250444630373530872907911414940734422810539454553622825887709523129367372756232423033738412361897849510870109102791804594000683865057976396173599883923002414137201916936005458397119237266084415070173926888048071842368464714920473164655267162366475095813979813337965901818061008156386213618705276815292067264354741750881150611898988130910919060237811967755428311417941175345318466654759375240023941930201720225177100710269749057678380394801483622700173141666743707804990327072561651306330250905078069531591710874298016554100794956328421164939430566547098291345084471840365392060669243350760210263888918108772097899026518947703799562001961470660934748539683230556235144981823158939667701950337249716995972438435942446480464190597228832535652631469672581413351382212102725739991661460649712319887522576964506246833999023250969707585800315812090098858306434015551145568824102807712284493853708931447555964796099968653505776821739616434401465195428990599205920136994581107122522261224476870785629713990058422817034120864282921362116718703347998484128618775187703906315427429516906132838811956616571322555469460337820792660743108868841442181852324166057150816745637078360556684179117383846742435211313876481955682952135228617301632449001491392491088323977528443361423616050462009675004228824291183745847128945013581360343633604676947691658434566031740941506629542890215364124302799996484267091889267209670221188364815769110398809516302935957882931978531857124191716962420049968741951053322025931795083378781670288965403170813981248276723676422641732794034192826738782015754882745539131989654073012814734719056776515211914389648269280974778945735004168312745488334809235138137103416778238784258038268376872354441460872145050638139420378649715870314174702752691879915419347333256021685273924804568246927865912648756136122932459216737175921292155739074315252724851335789373976552156794123581288208848417683161730832687064353672239982802410097787500128219166497132148026496643476210982455901995501649630327913860363287197979107648769952615868703402662401211442182321856006278900412243351643809445352165689491340947408553475286044488413034759884199411655248113912226785639455568795031642329545629110220739130665301767427825420851303537999695033129320796176031413405679367972283456794050464522971120157512473499047697766009942838767230729257439947049626996391598434153516792355006771142725672335385860660196961680434103823891052859787088245853757838838180746473213294371116425809385642464281010284498585496397063992398233700473661404212468939457968887534013511104256252232742750714350479006140274569621292614012652238466356759424493881703695670248604781348323644765895009049817629552096167436077019803534027736648041009233355441109889504034059908659050843806754888653115234087888398991941569233473379513031466529757357541707275801649918455173229572737336136575980107651159653196525138002977275734845952084762427541846010436348816124473176785667433972556198881410015962499464448232142480299224133609600966214764465509031209489905257067053390063257449180604206759719787807383081445902975771635059056257672346269991058211439825581855894079052776273928575511977526306333003873732706874728010340552943343085017000387999937926296176169507250998595207719813363262169134330333451798439248991670734533789918143776918179727785094708768732708593734217263210559806988920780038882870305457818132977836213154126394648892461372926920538801119584229754085141777427206554043391278349906390037149576620520345821192453189715021353103812711119873931563120188293506948882556868172875376104697785408514527746408669534767748858748754738441300223892286150252444963564439708078540248061967584527947970326084213488382845689305650931252953095259513105158322652321618375255209612617327880234165835279109462893255346634719976808596185241822989641614104902931971547761919570688231807630687689908308438870428626355840957502403296620533025582653159323822147358423410295118375943531207737663404801254308248300744032880313875921909331224630172355130957386628280723225272749917828183225851147910782292150638863644426958814507752361641991616692952670623291857636432877481345979910071910216361839766208832135795690605215953699519602127994796761968380211973784961146841679902110491945782767191365308176749398482688415450917103687079972187059206810789812865999412785468891964992509917706742298328161869200270446862108668937598063313192130815122061265731783351648134176676573321352132084901083100449461776059703998714573193981189551023909409903986937135839181004363909369052858010343673538613937545843865948169931450071284961409790427511508775775221972836349672170152790274932486916059649510695402216843445021070124401280935146267571995506165171670057667685256553181215893061479360380014272644784824817345490683832951222254449960868768926907307363188887914909527838130493572194610994544594372023211767849875899860051943894941393349313340055287265481885513013973272794482036406950360939109172831547963054204921880866118736108336547732418025638791369853030415447775410608905455298759484680203532996500946018456060656038064198836327185762936647449107120760496642826853658189213804073447470993800816527539239151574334127560048434702087678507586101855889506236007747760057526165199144038975506684916647916633862831446011835706321679937585776139949121824233099750562054609433436341078627245279571856157037525128468766736140587000830917786426361514138325173824907206934783404245577004996192091341110382815424222525782575813497144388205250246644490233256035069018608766921558181389406073466137234664951437491548417349352866646823440278231088009022297318957880849509156932725097572133123917565928770990724612545254352647046699010260947916022258534898355603944497815091234732450915845962103667056731387321817310393951880781148648862174176284576880948888675579413618019639818354539500994963448639747809304134427619398585570728505786542115261581616652315843187360450256014792157477140813035829851281642258766622454480401434409568449739211264966595041427537856137515777383575431467140312080997931299106567932038440312012002284341459137643987179286207296899621977736549101131794813368257478713562309506899082908192043527223498534652721671899085680390085933409282611184524638446411377805871297052862303937534613863814922593494753891215064356036218400438338026716368845147321493230276326748212991405136066839599431202427376284362212694152320073201833592674405677884720738132998596037566729985553761541959806583420138579586968564979116004005021209030262178176241962309027629694689374723775772330689384104903805345150737583372076343673488091402429423865683558408355347837210121595498750610524325194346517205455984718809415209146760597365220653194936950118456116942163789453929581549662914735598557697203017730523067525085415537853755555289574851105045729667954347453320306836650718448504627259345761353221128688221731276249466443080456901139410364464895547475438018835890217741195560882133382322527859310502245507645803002909194118981451574717065283209746254385231639938338447973451512518953317820234403698345175512088226544516784517379933473519793096650580008849019187260830658306196728194828657535976021460460711176628292649736210771162875941141155941047692179058338215342995485383635358819059660051750155403640005736991017434672990479130812113754472670981784389763740368125448754218100397010455256544165670383841145416591183559348877535700695503235071356970843436806574746392324896331267673415142054832100042973141921068745191940257383057301120471566023113883540470773157994289481586687843974199361901521847183772369669082558435463941664497933191648325163371798684285472240514491382131291365123597495968322883661786048649184937288617282365534862565551912255887693985304984398214872103264804624122321595217241187139299653701330764242245692031168219776945315545660644511876378344483096386591897080750221137114677851579986414559333093114505354330758591569454251892278505171485150187888357136673196979428035278822509990365378685396586530992162435223079709289009100311245462066259226690512504823542661080387629218679018706890085839790363642918995181626215619189562534816833809906311956141316609971278279939736320500644943877386134720210449316078585550569424061532765620125637989974065246203685678928224785996084143535088347311707917136233317281681727192590425508417632294867731758001914699583476945621734174765885592663361665416860288678862524109631058904796389977701607499785056801518999111699681956697547733182527230381979960611885125154480184667912427865717985094528083856792411521736780843848322772578316406081454045829497713448740999738694191029104660816507825120708081424165573394488122268773817884463227125186723032292857129218861634272644599264152834578167200979235220075326871462934436999618280500353932682094251544526281072292419538541905221040363159933408462168360287115072608674219246869438225178781167019659551985377993805054238926766228168313217602092098390299842035444268801618052475166379448231316829994576490276382686439657991341202117593089332841430753924596696582133487681859314349248087389564882994916348175205381925864440829846352037133883580589183897544195984382930122343339303405773881656273441050360110512705541540267727945843798867238169694265029630087509159156374291621855374908110556046739766465725082385272700100633117626511792257304394144660345427546240946639300333416541034237611195013360515539202074525389727324685142799520917304363532700919900316261810114990408346188624062601057407154844790800556028472434201711407948266926160085660664832472201093871084878111994374942967285087350315845655882621943444051990815145339462177472291002558399618598136600220970090396028426398830433331866326105947717844118032749353831355903289924730508175292868416002331299041235135276562477226577054242541621419644890058116720122433109711885913170451859107112242405230770493121274510754842268896115426801404677504684535820501897006530089046230967343333208634365860328276429682868457929871206301490828996646638052609558191548146909228558091596853729198937108469090507203622519784165009693045681464235764972745837538421668110361669657624963794403716107906008380222986279210677620693559548203065323059514581163869879850225841427839298699828876958954750643876503052065938275728236471521390787239113895955112395349770579432138484953458949435473798108070666372533937608054411697401565540585991502898655369031734666528591623511048638326092767240721995318021124930276597985197712317762606068430200945536490385111826112201054957743644290427587619978765677992942313897056925401043599791797208493704648132519960688257614355737098563653087826568691966849531283390164488186151675970490441373486237289439732928560666212975844122529471085270283834827584647769824475110208737670513078798098340002207025332755288690636345902330692256593344628016149903785783550754542271788609874837071145348268495137100011833246906738403870019934116980937268449632297120056554851783731231892636315357769786278398689159219070556792239933081578896236888738956507354494823562852801309301704143017502533874190696807406152987035424948141868634248038031822943907356911343308868357835547403098703761321559116195723174781499970518881397334781078079503984423499991838643107968988037789539322010010693375395459213937193258854089275711691501018675863138719204265036879081823964436246363057346570922369823291065651971137985159939434770792424927129185210447406222583381316833489608957658707372793988481103521952855294019532449344035932355138967593989127307141059271247334425479244124707718981067507494203804232479072592317149383720678695246783845049174321783837163705228743930619335081681579892092921969976285339919520278286311632656940488974149036162675187913034622318550516888672244779767613455950285891079040619098568238449455727973321579602179173976038705794813839101763873316854930316453557936117368660180368957193345666181149637828521720106941966169191139553617160210517901095672370599906160016591143457947163110331193857177965676122522104899300055012101635068539070449459428473057735146978998488581232029022952264939214138564167107308528489353393443329823064225856432161495353834250453350132974058740796047732257235204531660738649836173069907011340735556391054463338820863853870136058209628447323086986332667934526686169554562847108079321977020690838366177473958287933536606991664409358842731402238944117909069098518835432034700272811224513298547943736445349432173154971603237246867857069036347175353708534792974214222753685669480603644460066594382942675273397924750994981624775613713668548499962777667103371599377321759303096740108155933051122163916349949561089848684786028398256381709861256180349661661954998219054984374642927054780548786570636212816488668314821905840023365268065083892521290575136535907735407939923285289982131958184663009118609962693201960290178998969693265183745920969370290086410773832088671809000133775829305920001855255258868558896237406148598463839893025092867422426502561394316726214427837780344850941182441460931935541501728896960267894660449552697119287994973711207070214452630849243195746903328167206193297888275092602872732218398096214921037430250968131114845709383336864309154478417159502770604326392938159794085682970696239464668236296874285779415431391931768764502937739895802445445851176028154506707800210476703923806627171674664716557238209152503959597466189695858497589757356564213460446793512794717066902249175012674701370181764917303220864873356442097495894670624096274641868109811860942832058834752875926647221234773091813465935865290536578401098886254040475911455891331010609518323428867687655164125144873296805198211947620481738539724942521380000013713188068194459284234095894407767491195375623515344972383764917191892249943050699622340823978657543527351184239895336735329216215551147975409724824649432544196780799979714810943398216103718178403763899140085135544474425729469430218537444241156575219441474942039399693324122346809728395177671527636378704500602454719977770296318450853277932518123301587626888185574787568628067295963473116573845751748403844659523147333039025966381817757921173028493638886373236674129715528630133214340323149043482556528009730881287784959468233809553508521982052215534675079120552618131526577239466920396982324066017975101043144785250148786184423992466230496838383242966172658233973609721826349856933980779460606028870112416440104304930448588914077439390972757921735270349308438108882872381131984942103319885453210851875914343032808808305408921135884436853006605798840692550034415378921739004610636126309468798685032173592464346224221322254154057956918295283675279199655942542824463910328465747787646631839601653680639240068818133699078174684295715642699826655829599014429960287360325345838975411704071070950670092126575457635849126527936553023307167323865259549575320258200743693107963627374473365240786940127389675964639334690275060470661560073784965588317067265054788944556348860449865845970677776421624364966323675617429603389634800893994028523311038528852702404436587065249760200984312447293065081125238928113409417202936890351163439352501413722047694323587825238728986246461066051643133369207430710167511239902964531434099226487316641445337837348289666638890459530056900760686759207500972019636749244420245601247096494542278566381748096723408239940395323806749814513828072487368535219530400264378016003452579595952289822147723734586150313666084560903879690107137741532606640063967895997183904545417956287950180943302409288466340812241595491610199301431754589761275186510083927249136769790500954110874145395260662844838945384365069731185934569008148617945518101913720975311318554225934698102153503675876537065069012932367598799080640063851293411911254375034619668200289000446672773485338904771860160596298449308296537925109468242157522836681649278385213934725309348786027202528703674497672045886610943027978488537998882210487987120422969407151744193145804244700822709509819792544448738378528767789279831290842798983830967206301541192324652052828394471452078538755533157836269521310888200752474225041123533457181271261543634428364073917031037443618382274574597692870465207787442943744443970756278227551062138911534477856411824878175767815025461918741719446258981495712760871393726687850858997430802300826788724018952723721106372171948904998208761696267314603250854326026388366098369807142213598376290869811991406892480956181568187736994834367470075484010326923281079375882174003224333347039135808874237467440502269647222212312973135054646912348597676205882098061263421287408298302253176233572323130180537209659587601413299803327018496991779886792378849219004008794969414151234188094295003278888632413443844268787740819995225093969620383016022727203231808352417905747281747964088259120609913658834649700535663166335371924174302619221610331728767214448562765504076415540366050836355562613796156914411771142362886491620218624751834293169196104996922112706593758594420306122155321880217152947679991642887650977199037512989695338515329045010218057992725995242032528195817056658552543360730716687574833481723406396790183804138336747800709443037719826783591826577743272958997625747270452919929648702726968771212538938237538029609362506528870563310904606633168110115369496568145723053317358183387900113735623647302536998603098518596805247605728997589905654369172042756499886604986472910531386468021230633440136153792580818017121205732606335842358037945748874875378793246300435308267919834695952152554535733546464556081208251205331659861023436571907526223822030475111992879817647429038701104408428242444294091401913105734639627164758103768780805595234283818449817740794740287603875917451853351041038859875920349368736102259229127733628521439100951683403624714657813440112883614577921533866389075499304674364109778174296577094750723884201898624213254912770754420561946294344045628099577102439806885495347732978037666742550441273249571489765175059609541671842836463637596530099612713578286847170871715212228337412634733555127439894405160885133186369943976184102536011034928130835944065065203225953852910711220134443977939702686901762912778771548341404431634756787130424469103853281392668307066233357764808491704059783153077701513183848058029940187063734079025198609578074561805413782381279990365554052115742958005785599016517470319302763713260420483982014274334176464475232221762637664693637716760046974683005908889434820576891656152316999220884122122559643461628077518839450256481406859115305376641644626473334258181516822706478915531623872452508921528590075686157539973573928429091955282561814186108074413058738652909175222700337868675738347738610170192732267682835480327261404844884954887567064438762436593502800224064948387046162123288066830652415977722062364497287484151599892284349951268146355524017676915999010015120174351578272817573096017343823348531161164009008985514542992560170495454449855195175005017172008315604282791833711957756242203658036464770966673819311416167451990933908500808268742061814932733382259336804869979385783711160204252120797655954820041793552998789455897448960896208301216901664262233784049889306001455939843268289428917077893584932553079831068703161582173884272653854864554150181386318160082605491677516854330167437565546415007331958540764617157287408500957296720849842074020442256675726768450440670023083884414384949624112823852730004596469830581855454183864125647813709804654724858332251277157126850787575879829540704489354466644088663427352661606642116500434322053197432351093354717834047458851456321018329862231080575912366576261037579709555834231664937525859431751299789597591466698740910243449753761481229888297805897967856807096973133632291644864255521598601654031558723272539581762097417480417382001284839258774636045455027383587899275190306610573331998938075222764784182360634405634230404584630984997290583747001801151947259800037327053719320631131325929403693025569014873671740407354813360442163273160129095765150244815592387619208100180292153278355429901256713429659372308217193636322854262683204588258590162116248266666660439087674293246155108362161212525171313880692503289239105575791068348363873089226643356775885684172442653319338165674020850237340575702326756445308430980827134880698429010727843153684984557818635711461050577673903199474535247971132908224706493603974510816573513851531870342839010792534787570337122222039395510584144221851792894116167446359630015159150519201928619406142937930923709992162614375859244143130833317040032697700841463107672705566206000741542723794364969997143927846380306522968875299946185127818137479046383338441698454351606124637395468013103132088494847181697616543624697214564173600666153014302664371071979333626523967946613486876809206601633843073002457991952370166230133332661441010702026004212912685078745115081726481748384703557006770453818645254571026622752034149277866827225779663067719081404910339570961095960053030371911702981657848422710137006223009866453671523542494279146405729828289340261389019094937041117800340932753339332060019904047261202654007375811823042684598783742003846953370305138692287922015967344371322765366663927814511995901320246358577375069782340166470670422287690872557460625427527325452462334510331003225124660726666655418920244364714367703681906928624057592572302800345091142489618568743800715270722741966871523638370524852924871039553326377884526556066623969679942412199970033535349990755874880766365439343858273663473997541018099259739213517381451575016136311259015266223595812126848054562329089784122675870974235080478808583150399009509036107627471500649099049052616040880272600072821153999628571651609884487231337396382649731492711302744086882598996956543676572635329112193848852797715262569835456591653682433427285379545904588750766367732619634160180876971011134847538109709827577359995418810016694096566140202629179236562551492939572259406156712199731132353388957799002935884139169214343664451638742023328158347120064981901213024047124148487623080461670572507857366096750351785070882803764570712039411273280847809020379472706065847959767273258428174605033249188272649810153140661651159044458414462170156355089239775984092852009819818855939729827373877575113597646233560708357114138306080102607493223502779169089140821154466394466071095022462211421174873758600879810325148891955274459755707036582201662734752570731836613508800146763197616083965044422960463473250203486202908827662227938330999138045476786938863120675882740273578542849879227566431319904432111995612104896686652639566314862042586922481182681845027190196185774499502811627396291065415846430074279947877350400238993643147201402651006421631447464401957765950704231892296338644404645901435881343226593406884285690627253540032124211348801868574829002849631330452285785716616223147210268094324918377488827772828711899616099639536860906445726637787467515726829049239302963539591937201637353486639081968884713366118401525955804029607695272130116800169238933500676403281506894562397590236889975511878357529829424758249123386109341720457719413900285436323761736398937370414469348673411008063925295506457095822203423749883250580228887713105730233606801292966428173469176929729621061635137147810720850589638145550557896066762895568064103378499663847778440277373398404990965356753677303482517284536871530144979301071849228351211364118278678281444009811868824670510263422955496091520689839193156553302932263191629915703816295393970058162455007716164051738604949880957405587074457316674290960234597837764417075846442347226179727422712686747217722447515818161871200748880895551134264391712771529794241989797910092796262070601219674334979616792252337332858530590760265464141834859892003532294167026221168082173814075292800361538342769211378281574434917981311302465766112993229435997601940594174254193586980641962189525848446589960622592694444925591621277467216773435330526394502215918443930718151347510709905066213648816077446072964972762976883259942563769794429064708663995104873688406166821742371734352178231351527848921037848607278681753454729788995889227193752598400576362515331456626431491379545149206315931102290170625839004498979055535537155660656807124738566301465786467974726308783351174352885726566298260767110143771023792201752144043422260001704816003382060573287739071878411728072969428767392146520297473328854011769130323879981255268295214725074931097802960931648582086136016184641692628356871148933156625661819629754990115491615681694866205173944609776416127960171275410883443786847939730143774449858740739548096246529868387495307121003683543274019706640007803245082157983428250351651160437206570987434451297282183462947184405760777423522477737909428428188149149303987533406431281286512701821494079442469460409442752511104763604137554409340605688581425212416515230084491660653990918610840143755673902135211974628676436634250215888360575567667657060572171872956376842754156201667338273974577161265106154955207311146128254396247955009552735020119540126279672523541649125225758763445226677813845039216523281645499005784225294884266880039989289797143689656437648142512803951372435831002236194736720940491110642267215420009745389580903669101098325609240242453188697194256241638297025368151271917640085074648905402811333341954467522890481567372553940353561612367043335117831348270840156657566538707036895771410264143388234889520504912943932132184456640201944908245301134624684336591468722979810817064337240496470457281346999693876692423396194902467310894103675893775126544186557646447600987942581207683872328332697217617766391181032846830047108409391682530750131736462467905930927670054125082740648564590685669230002435435422811361313742162700704235003786708135681937297658638898386398286563941104479041822936970213334584912012652286755180325150854347742227406528475229484389624075925997911022123939751079758882520423859185504960013086895658803091360768871697470223791893122281476161554187720877690926233531217721581012534411419591147320878665392928448604807166540130947491879167679367755165808683819026251496478614773102009383395164553663512486375927700648995929213936613979108623020765866521259887678132269950391458639129431118280453385294721013162009220102482147162930982971820490879961993061811224623332119729027603247857792438210865678495858062702524525298446871272339972003930277366026180191000581490424633822605943622772194995658048043271652454888641216514593600912482199858329772166038738438854729749368685578296084980201203885305042050323651635012217295641547563477692262384295120543188694042992282207699584720164208256429957531101479637311429606184462829192394832324316933915447747199909209129170979102294477544096171476980975361397242563440650428610751822608838561971595176472483071711286490267532795030511246791248496179550232992847257917637680181181706375825772788286485212555622825727966387033655314057965504205990519903501113460970732143614889125828175425728031460026756076648057518359271960486802054295890031306506633785667548101838600507217364551761543939576223238035838055997227103614388382933744690129030271325583756875974576022311986987193656590640072755184010985907873593188675524376378689118751205084270336897920718379571318126722906456403780048850160824134936754361876417717874877662224313705498930424845282770321274882530036506233303289543995356463469742617273833223710204641617979929311540775977088844420683240016147829159483480296630289323462253806727348175911257226406135265610659968369735084744711735070645595737430880672549372872544876205688633140718333544153241691594985471801744371408511592329468903907532959641601706020467242040826038102044186241374178768327928232689744977176996361731988650836038427961011677650439891097020728864157719180777075060090765158228163137394306253320502997828063463299871563054948384551131122783201769183455271990580597329025669540383333551386755067073684722400235043104038060873333841545663227134510750730354326786802548744488796098599740592625969094924781559905883743229280892306635367559715799788847506530991981093350384362749073415496960851911013039955637137400095052397346723989552414432158331171970859460829087082451297369234517590116228394497874936552655573008865152301749966339898205314501119907958620391326585183391950282883483039823048586675557938575538396994203216619079739907404331192774002864806751863654209475116381616788247272055567605816753690932385849037191348941687764415499916705037827143887475428924670356772605043314988342532664045717955374419907482813859812575419585171457589639367563321048414394101018477895866350460775439181521134889145316069037595258145756866691071142996264951672111693969356338498956896776754573298612875559676827813803305830142366550933324125390949340485287789467313333972846881719370717639845611945286328856710494484746961822024283263672279928027909102743707516426690847902987956342465696027066764204785236985123137508324264970448801704008503608182284056429102140303228614943527713050437408421926986169428127738208964358172596603484396492633227454477915706131192318475639448548711616557939713131840677132594831158513045975477392390828292000526107079658066304318128491110913947159219555941811156997414087171471193855628850377330480719068539088509190490161388206032627878822019482156129632881415432458367076387129952627157763064548578492146718318107859246768596958415392903934591461621107581793837636097433977972646477812191133479053107574745882860113999642610263357925603415265047033221634308453353919890070504153243528682806164735923161434705688802559539136446149819002999669628824953833170514097509620934661522737589444245188082497550999794413379780035564069237109718410862552342061472379625705882687897960112561498346850024074395421186591964418503139073567034241763812649959947698000731376215845369020344555355111026780172755762159171603360222608500163158332095158909717160642508163584652214497706741454047597726225693438085358008718816920564480367684072074970257102961276452260510435314621869383576122394898593806386456974177400365708180169244479028481979763795084656080911298881212732702063069821888080245150395356154987831997343923339401096966949543663785859013487347725284314636628612115201545589103975240047737085107520189377260517033706826229726781915582536623985195917545894000108364394437885136316710685176795679933425222114032742500425284450857210013007222649227231974925374891882612558979161644879639843462523748884718867232570636680729452540664381312911384847709743986914103137703678637864739022655431876198331543395375048543474697571616133682949519559369784004510770084565965989853656438126970416139641072424916176978618850838950330619345632990901215102716784122701206673248138518578956937815264854225306000795979347555829982104407388943876139823756431146929009182950357244488390177541606477106906109949637982451501367928535170724087314807622765288479460771344798975444575668576945227322848114679245645529639459688024401319615228976005170167483690630957235961536382646783580699054821371462335614078072139064796826514932458735524975680894387129532067890942346294048032229889458707081425896402394414254919626822110457102352636279280224696169639975370370191114737635068366607641977786188304556611423758272957473623579030622177278576018229180338883639120899530130658472764546724024928793221653919200011928840729857307149367820480563832843348881712644776811846524733009730107682881987892477176215776110661137544549574461859510227732135577822392604954601991409535059564134286429839133155642198791927706789609702797819617947833660518256665216299523217133032155558958134508196997513492191073223748066786945224946509157857356369079341315912739017940448206191768879635645973358265793142355754638251183436397484195005424152817690794336138055622304987036530306432999365284899844374907582495242238291454157146555705180754670101207322842530042090568120930683953692772497134164068518209344058944677555036581553208064213665550666203997320957227977115048715260801406749491267172911428858415907363549665971307035958553351990767579644789750956962181140260630640564683403761018559448032910379026140609669033416470693934653824107669742567962226746097305037235669037608864821609254617097008987344399782889906780714188142665654347780043765038115262322927843278952356912107605714823123446261061276022531826022665200244333175074910570382400034311189416190866527016085557305073950041851385202500622622885705265459438973820323490525785360994531348787100398136515476711547688241457669273339268769882377182800364120228033677051714381098462956808152708511647571487451237515105188946382145856574710780200155008522537519737288629777989011048529327836248741148902031099800592192866107282190425110453347122376175773295248865831346012359148039733806397751791066958275283755343125707957223617513673589291759235545683399214707654034783985194812683997181524639624140230716789300249542251710626659816831889011076057977926622323743224353072651176190635054238706901414867876787079138313659312508495642674150114216185885856242762024315522497780624163989114876737483096356664050040076299932400782525533076944617507222488118262643802806978939445308787932878836031828498218908939117048721866037364233224343572824937580580719386649762685107903183119783745384723626073822587403581285290281490709541940251359899507167187553969137876108756783329403434688573793835248933886716360831538282438377393965441145253875066471558659335505179030426561579106247483181678368021094783376871531236809736093972459973519270263254762624985652549577030363704376427811899360515343076415095011805591283329833265127119459668452750914242393534994874923899651376601346526597928445144909414393380287942417989955470688286482749258712407983170351485606746642495682554987937900640688352855981108594956735846604564403917547763404411463915486870557576599981222814554497213834356352385910588288756614156855948866478088527225633703400097230150076655072555386802796974595202242458615087887728055828148283884356694267812896800369392341770937115113947828537858813080241344795823727035587167052771395909565542515206693861628987651824203036520670295126025047621271700880208899609457479079548837141039962188198606549126338475669787581400912070388609207370875578377530763163274664993233285764400321316080759996962009082803816569022382403689595834359062144052712858874466134421183319034713008355519870875326881126749860597097048407372455882963919406315268359615982139688221195307083981864604738762748010434295351760876343380202895258702728705663608098295779964884147538678712591993606541230722242119621349098174675696213060185282862824786627360691253942137681159583197314981679603923791495790698632339753938164464643464562378296830214239971368418572468256907821546275974835303602979060946498882584122456579086667502803893132129155859598164392300462066874394966622059309236224649636390513212929346912514234365569529638969492713210393603084963486921860310405503485448137955647787694018118451836982694278115505361977852723685966319913250447382381680489199991757052921153657153148024026871987226995537363525810115815705057057657333839887067076080742631323612270445215025727397358696751682674522831620867895506823812761253305081239101653726336951625976307049127386559725228402788209213219427789932949550766836098772243559153256899120304080211744273451769208705071178409379451764052421554392089990480460719492704556175125009725028848134723911883423758988265616352811521437299144461338482409085637811784436527128579795237867256504396961215748673963218503157637429400329711814353188606568893563502264940921012319612211756983248415425146518374810689468885858760244646781967295483517050838696749400867891677982156282122888573388239497669980340517390731753803735739829601687037472803358856572854393117923143249826186532381435060884372350593886848918055327809010718772445239410028862999160544657317401320498653412769853008958948797357225600132626931750085181955634249738371384353581351493808789577521806939516760553571175422889515227078300362118583303888964750183169234065180884970786722079662431598641729888221053089859640320226895920305685216900366167125043479560294458409949110687483908544584024670391674125309364567811136597025790392652028263636250609985725083760622104544322683631786174181254386472757339280833293937202224683918714882784925835298509275704231577925544191484569399611721916751779363518663714476587651037024797951134809465674371974741786105263414265824125878700529263402602126037713492703273735630426082577374346250710978269398976435218010961323763517813409216112923128777449024455898529246769779739732681579443308734271472000673573174418058125403808762740717044789600794816116814066242868922572116856852420021484520656171484443939771773506865871558002013248851009243037382531057665074425415289595030041705989799999546402610476236288897644020099837583180972151863813195122738227343633580234532344399533151526315886393086466748247243152357248924679742080734347506383183868749870701915092963479110093226546751911459398327534599269162298127307553361469261535316696407524782831361846203656294417479703531579886914463043412848772176530159625625084262616903754220680697103923130380050034967755752347130087697393464848401794680000599644269172521477809671774417263423080734966971320019552054735983786637927782952113699027996066646257120655195752583519891950068276644665373316794390901193745244639928340857983567859182660478972574404639022650810265482545445095576789944633626192728574357968017587818584705085475397040710893492968430197474991051602499935168702648248420897904224800351450576111503463525539651248882835441071012362271944899855063323420340018836478223784760890812420086771991129244345236713878840101416862502894722688705897648954899566719078519390559868666174221452652909348433177450499152722462886169105296093541840349942091825124617121957080528856625845167720218772628254385275424940820927301748362454317416389952522940168554287460879011743850578368739893080842085161075537458148942498870327348318685684366423066631566080323936458730143924632433157648608451250838333646544485997775444458336188937369989565960041674971970602621686104801079475234088185892102230646176892915971237944542304674742222481474836425027002248145959937535953313299285448325264116627001054570465690370804975166699279814913706387511316314472493742234445938035820982812708804317795653313903130727535405378125715452611138191314157368978392438231128315073910222446229969421753816450920787254208169262106997475632311298309524344162542490054429879869794925553915658715958758158868566851822104086761309744073334399552551533300237445310238670714077384886538439830087988768780900330975932676643486648816291967409963955200991435361205776230592214857175558590322073226282643236522837357066897691897390004882162662426234163958259936360070606457002767539969449108052215902380507392851119203133002818715041737369145404241304289509257484760523223099300217103231953122460926621577598331105986780642562657706553538554970434535185260408799896263658663234815201516391218622680414954068517439419416297236224700130466817975092371733054451269006306039806221876574826721691750985873317273945166366612726915092922425127561587430066006590857132538953407992461862773574193365974584554901185175903478613311566812052863601569053368879678450650700510304437127906067842841623941809588091791376687995895717193272785749817917392611086399529481478431104040728589047171090710539003299558664772084086445456595448538917192936285717951005192042356544599701039062651768139297559145471314445183819316074867269903876786626940055167550698793823648752133074404221590828454277777389741406087509321372582456597157618372230283031343453418137555235960463137067785916145365287477680166062957477324460339863861362407709653710565150367594755493405683667796202182008418681432673068842198178012707028378406656197099677856310453744496808871096285370376597110548475175930143700995245326375129396652773119674590300896394322606475867701878240683725615040646813101793726198936881969719896592864704094454191191821121157917570394828044007708039342512234294457540268997008477113426863754280046771576496261077916342363533526354617475101775887172355314898011013026379491466981114779070579899377253363136005925329623691776440711111723918397801656191023160252038292154471276934280732367674941022856460468410035552669493206622044480401524202292269355415098419875088793171406560121958218184832957990173336305536851435811389740592590108189925171038168706992541197173971580705979943335481547326155153799543344504608244989842598422179348887748344821629004698468086374667655895255453104180521907443883756713813122233110700004295725014259635849875050998144799863945716605128738508355968628846425748955313476323590164540691049834088098588684514842522849904843062293803023412125042753581942567612260911462382352326398680857548222883667523234767796275878000134881107553390021422205303196743792400530933569752588453501297285963328988992267606188897072934401481210720187593480644167723445930006298937182835003380626978577038487070834411292841937850495567963642187975283401241173831743948291365996934654904745777537236358191466568022536577585310696424178675210369347242295090287850643052216369363338933325892631355803782975620286947763682054224931001318025051995589939015915608389363788276291181394807154927799081546288505108955372674874160371344007369819714929857173791581340241198562237626927831897756157334764408745863075696189925586117395124702212340795391186055870753782749044188648421606902646611280295719694838075700274962082837913490111435570159583096788306724311027915486629072602141436169357526319337452868525578694582941766110036067530748771304754333303328202281103500141382894225116122775995509897165784790726965891591965780387128216753771309120991502032964474344106640121304562681754279688014024603536667486901811584117356316516412350946588043439600402621913556501130819770636052422927642155292228289631579615164759730663175438463315471606927774575241168042679710940466143892122780797195227306820646982107315045902725256577121638819046432086381050389338609436720268670459106511665277857578750870404212319782487477832878157832361953346730419149228967797021067305241915225512623832620817364564906299558143198012748732617909932257008660130983775688859959833779254411154741102599070528701289133437311850838563147723793102681207382757762517262941807186423406847564720686309283891947226790620445067904026520009694143665621710940462023705440392485390794173415055360499833605875194367558366586454834101575551415877242882886872348346885285929103601623669765476970817292088850941407132089933941680364799043660938061387686835100051597834754031291065755350875589838775972875766945382361707212302209552993115165776322168441295730515930493186531552427273422439834821551262665729523644916684587278290077667537693970538645127733999204415564228843004571058273553870283879258066285702985370394153633238529175424899033230087960121560530660647840733857821407936741669034562401699678161527064530773750568251974401891750159185496845988091384397426065267858294918865099618364762109845445380732777954236233632481852998068500836565421530146833195016208419551953919398992561165204151837835741030678641369235189805649425488467000806424616777234559727682899608334806957852536932757867456886533873285375525933221218897172311610023789774450410903208944189300806785882537747272655580136348672163347007227787043498941821381545882095549351899638337358347959592274878549809320447777426561036325953849055101829684779003055398350790719062583256395987512005098425710030504538372929435499406711963153662863432924489868047271676801152277178960025243350690405824150723087917007975336936660630331978796699848107511960761746992883308146287169641807270781311456793377181746544810989847598175482230770785982667155112279434837065270792222780283427218885208684716514386280452230076676804269966903090910752766197048106392131900733174788983213191309953150360975462775824920429602693156913270570218222720531622595333278589160227908442509267854678678747509804442861520234111538278890939236330574544283152262130423666578770216356548785962611117525493936114499152366271317105940937732751917499772517142964441195560203826852411541788364664139998396937981904909220890664631396273401607091371691313068671674191629388219786091448525299139170505873566576807661201716161860323511712253106607074732517638495811838926484030019993749014522362732747004036494335005246135407077828431902333174443863885902628383071819346150682474969268614123852917027559410876696400174025173146990165791131467561569895969868380898710082947517017964777387326060935555776297283435944522027175258591290155320213442844465142057257564710948068427824025940339933229661056863877903806459194106922706035156093862753399758870660432745884302260415417507025588057244122724223660071898323905365468857016510296076882555584941168105267210872410432217183149286989772897883887958383353960346517980603135753260867644833757649050694940147222132374922541439081892577948722885634267402002993110058485002100504420789347768393006533465102716485281171310804600862423442725428493587395772512523012544415165135281571237953167079689272890393098256511062629602204242620791801612241192389353822777050830976493767528004736644757650962298135031243868363481380472034693479843760082698979554696278589026771786955151318421199092754319103334794702841906646456620317896895190227456389554088340341378503721254448458972831055735665778731929947028110358086454684506981203672863863244591964413487942586560202421464887873857801796814313359011238431104682382443033841196298760229396443241632929559251112161376292624706530141411799985601616172578523294500594689515795118211234706662974164674924965985636914111404860204583955346480874764888641603820249552601490654590728173075370578951221953302577377969507464083496639092541461735378010564717065989689511490573924034256207111119214296054854970492173934344444557437496209964740388586305767783304990392157591684644354189245533915681628912538717008841849874155935178116831838928986380872522954049800829992212464614240208918084458189813878531445614691736009217556244493836333457874811695455047512514199939749969760847746221914226287998688152804560466805814406412300687970043839111733581534127201409002875574637901441071850315974082515924733474097636187423310279559862964349428901428398174079330664921181005842201323363804508954669989129043618188417726018226774331991214159982520452478429902537625935116523140935995704686760415135419634299019375385468993649615498426640146709949607897050503914829751962710883189157041650399397199967866773004660799943913220060799295992830656891703765779735060510833819687078017566919407423970711258194875243872082919900821450685877477091006201520043354797108881990227517863190692634422916985198259130020920011797501805143110027847736013830753909761174279376961490385998309432833634286471807863568896946419049018733421525851879220894539231022749442852896648834073845640111225353958437398903728049144075713319408061893040354007408562701395544787911981859202371501461061707807169320061637763286524297279509763953793771210206069504266070268846181924248061116927912216225664966307150221175519601465304376021752330785314619414979024327489872410082204784807724493688829339315228522506247684645262097661178578938189291802010091807561281104879352069643768719780692465727760692792152419902710810917396305805891319328347830459198225950322604819716256362510318916629418112925514793043867433142237191723650456909183251244261341442785652732940670423663540082459868025424834189041145529424236574056909184295559411669401496745777949443603959321350908327632558052065924821071351012154669104085892008078941315324728023180531325411186719617820971048191452116104604500489519345124206969225985166380859263406258704288401170384293138332638900705625268544340024651124726681611862409628699512694940874485681507208191164517301018059863035129758846230418448008384022318483371562824880985365656294537150241632553228269019047190575228022033206387018975625959349605851865501948993209982563175034553330326496458583665458718518129551590657277072737301986459119689334489383343996515815282801252851138461640595424234693580998930026547628277051454749114917136126723552208267549443345181923817191713847683206871013346410347219997837812049049601740763743792120758731731353091448089963109387130077843251232879659900301366967893707618359369346407464520652284819676312065669759427162509508573663783716706462955123619784675344218335596214543847032361170669483490064442966016076979555035314055576395374377507033555743169451242774987018556028102725146762060006872228049043940558935438406430888882336651941641693286926000341913234162597994475449903849393902231441888830187071129254612565111753538272445088365343789897275691297432100575817500593010313489393454966985275857643663666428412246280437246383810516585772295433204316234104160983086435512985228439520899997628140633700998866147956484625070380698861972596941367568885024747088252974041849446975969471108526815789970107909985765006274950867577205849797247990962463800915233814922627230592039348438043729973683873119946259500110141097164962547090386136690299315633552918433808785343532297401513780842815632050237463292236990651565164880496029894921418955727396277795076220254613871192509295160505711893575112441470596130461725492220552320630127445457097982647431872356668358445227875397453005300084399239504685503254671236648848206614456599126121691417423549708062967942646303526466719864914353216954674646919656538896790339771256053308779327358990741227522689775116072658736471283831458884275091671206636665721262448189541444617703243404204524767242427034331147948286583801021958420877753068783879635490934250729976718931418445064504238096538832032737360229595425753438052726449342718895075602541878828715692702823038298556614769711360974325174883410042016413057190160218503474485160876176933932591170997995420425367665317886622203587513315582536201724964247440539800113942395515875070455173567691094853769875855382334389613521703776475545155553237782052761818074881478445392803696766067538430264276751490279927231369756767368554608136814660942281299705026704348563642229245089825030141864328251486795421686586291195913748890108102690997878964323683147441499396001709611531323716040748765620286224103327714692611595358722506696416925857269463453285017836979233685025646015737900814377119524537673818921655820617344870538677565503371995381306732027174516494859059926223317882607807416303911320591715488641313099299306494960863115349884969457656776645045481814875997968377294531362281153673102426474275810341051378320177075253917337779544530541295794931611884080174315038784627246362029004870990220137628373879506300223470482717257945815777173211141032822966675037977715661769634637016487328330478643987455753598983744743468832350550198880739441544495896307232693761671370865716255848517747825316875268935608324278908951218052782058181912698111136440824962533411085651464689493780287373681357083745139042327172279168907585821809222233979771564074907574529608043007775450155130840304827354292439511279984790770219206776920849291367230366757990060226713693944997657604947152945310843004023752680087040500665305336590084505583547743595943253575545834484972259361366557582557691366564940051158833752163247245088054606767117047476862314038769330629505701625043386690239126316421164901867846963571240051378370255040576187251161472624919957870824540482476064704227824927955763209225390258866255245775496786982291734139393697407596935959266958368302685206601309503376058289181967065492830044435502147935980938359752333896449520121880265704801502203947308097268251423186525799276496340914178314218594076489155320856132785702898130576943732146021916300415255592076528437062350196109969158308557393910334049044370244416156160286200635889159160650321902653806549778064260879664229765427542927565453798607959758416146927327554135702106569949034012262800672263170383330585093743649783278084346457555977267671821250158847642547708309350735097123516596720265073364430575849275320395836420401228826666983210831602189002496304863933327479901621651974498369645190629980184280830584973590190869918832993085180433563396591827437101337110665015067118224230237616094582848635457614762842337646284632909108630275370957441161496240786854278888841187973464905799578473263803199151364346649465230347995794949367757046148834980654257676565902160135475762066973778975415692281091279540176567662863003539863077006940976868979132200880598387096362413026384017985727561942288867638799291422500540264120840712874592191200639449680876972798846354228239644251212751872709776658258882851537198056280840159362257058949925615842763160447670659599054012877664351511120931362103925052143603629862462299632308493231272249428568774781043909283363460332327956924104391445158913807012010516701035719809388000278817274763179378583619383776288891951387858638473061341695665611545607592112082351744206965504144534111029314230446177577327111309983591254786022302991457683910632042495307269763965137563024876942109991373779390998678373452523183794428913626408776795603690840627707980938380146819701019970565732175526928575591254920711297848834782928983289744526886909001871057066291825173973096765037441273484197007419759256030446673460664640194593754600770816824892401121840040803086590022116073408907553532545182858459724419343785637910472015288570694448482421985171422077695647440084815229246496747273017222231451149642811440149079750853769871589091520280954634363625381937372287841609627422257078674922125677202156182799531529455546161453798853873906702231358433250180462932747794562205378095692264030183606910363343578214301910107085411132354358621028617187956839145797909207426132952352578992102738926244392567543582055662396438815786971826671999088691359582912052016992611977623638132407092418710191970681829230430436946921050762553311007792241577164265652067347927895191194501936963313129669229413515969981221685173044646347002487118772817409402197394177782446289694591105726027876056589073788981323784085619966122026446333796699807163447472286421412474918467803947550962471334118479753964642488076498301012292790104333244467656923632222354986097316911922281799762819176142831357453487944591969065615728536531000035854960528426349904443839822261873847955154269594928025153664988927536370311222953553818434189005980976126805881919570567944630635072857533896376325956038721125370657782146737645199116160535743929978720620006308140817062688974016945812480735224497324322120943234559312247880883073643128578856481252728789541793774435657781941892033632851531071951838140562948919697622936092562022480331362844210318525329698357625586982904127059545553768822578904504518273511452663312336901705001961106397994616350132722068059261474173559663448223422072788559901299163479730072517020884607568444494662595890589307964979503173834919952264275830792705765413654958909754577942047989044739254037279871961061442733246750939237389125349381490684232223305947014310504055931896134116357676452566787721903234617352675162635572169486107036688415871170671653265004725836282842838301160854901527250965036395753553838138031329462356991717711256831290877051391641487351487335432297779961841153444941898619998392222371572532377620982655022458799614045314532934915180948856510547145792379469866476186424550007573178114641181473553284255048024273052254114802060879277264126036914385585962860735853007784260476232112090902313657693115215861464947061762977318229337786205006527722921146256983324321358026510311182594317996654244145790187798126896159078970584395115389098483223900189504313055952405921763215300170290329719957806050235833869995254074352882809111632979953543499690915303422261964316891179472563627061871913032606254729581898979956081816780073762988329426766294303427791430038574402542638108428831561508160473698822121639893856094084911146326715954163773995380901172347963298943547931239238500861461097808236213222226033938130639039693248395408583067090717639697557739458856667460739504900626721063278643407536342002207513452715893489410299474899082346691068330423883141783263588562149140926986434130427454609615114781196341428741365912469442107571971062205571406178547230205870212810468775920975935455984729576798690408486537084588757646381116716697924445647173060589002019269026770743948117038597173788809911770419527496244402257249712150759034612535616871676001950390045891748708813342464533455067444542709382138984135191209334813517410081736144616962260835823152563092102654020184705448331408201701342048155557597739564152811998316930164290451182440165214596808190071485732903698845916423786648892498263882376359728450947256142282539382669540699266331965464936050515521165082436854385063392305352684362416475312075031399101871164755912918992760330900406309071946043581949478374083865567858333170589168782096689303740419521718026562857119928566993852035637895552299060871293267047556348971692033444479491622538716372821873367127939678104200855592590234720274602254783495906849230172476749334899759398164157366277970423987683539160953605771044437455167153697099893481988718850873709215221717162460680486384129835661771613382299378768552746901647300901082129948771263157085838555025991155902341712977069182294933775869323280126657274050934227882804521795139918332004300983684115386497949823779272215898950184663211911468931185048626430929485616091846058260473591844034009684123816099979398668656449973514938513797275287633644008249335756300970377403184721537813106438888748230471400978427494463209005878331660273120039526705790434931831095225789356027584432629099306162845396584295665067755823518639959853251583724229142496019814600576509365498676837302573537104781129262292142200609270151575179022628940803220484413778837611613137929748554052520336291693115817777045195654421514489126593898833132524719833219430780828324728417269559295299685224145457929792367690467459589089261052436588997090130833038771346005536816245440388292823866119833407124493598214825064409663917741877409122288779542134333530101722584311298417494423363961635981205534599151303647538842689956905648645051492611366224618911208059522093961448830704016806096521213311274620842890026494378378613412103182979672311818457706748483633400317441848744516832117160961871911144131050766708214469307315412426950111206370987053621339530048833778636760739114132197358305901799399484065151976884429611163603118631475931522176173080627833546059398191281654238724248713023312021790964219066618727537040371154645259918303281933140619308332120698278261765620601302371178768525568199714091437824258317221822391199690276143386297523302039861958449725014384608650434093583610748010252699032645776797836912550128728515606402649645787528253601652936746714332024578227177023494796786405701630448200934231132396067177331313556741862339304408510667127303493736738525104388641016531305239711014491356098488937714208361952053683530242732487491872116728190913059789218964601378579486358654082806292998679942693113848712386063113063469720071963473005589040567744563835458341266527161702257140971705007651379035567370384641133915542911479821162612184406629236939085091285459341048981812854110569572454441760584862130171254455459921915523930713961775429907890387963635746071653991834773906975649062509780585821709543278503530347463038544145853865621766100890065741160944215658495140320632067859781694817482362053102778027995114183525285167600266781586305399830138071646372025914454738195419000341526193301584752412620394974954513595075324503159144065897921503215896609211807535351778322252077249418774624029205267011187558383367975142609113970569071236975839175506550472759676886620638730754061054588311402359620492848619230930729315006503714905951225026270283347834370490175566787964697333910386753707205384009594110771020584233243793497954639007576904545889521026680807568019926574495167721041731093104938701237709334926236370494491605978103973414302547877786032829422546305904650811778887634222858250099706060123726740969454454960062070372757827955779886447261112090212446430765135783017736194755137062619096693366663204865972787369262590115336350015596783621347428553703618792016065522754681166899604132832203169111134078756453838102115034774789167208201476643434553286350364954934794576928051995489643719621120566745368982009879082060759371014316240131228049383346362703928425061716590283704721881246398613599293630792669722026602961695481072889011469249850269008364294826956624354742770994273945932358087066502980931555610309432479139052621198605359591486314248055600558142764342891154615032214058549883192611345141064195639944885992243596627206016195492157134453107675023767805828154670281020029404097113153112609200928875076263309436678918065575258250372114419063439807921381243436005594442790941454238663653988881872446867907076048486498111351430701567141551312597888540228617196820565317178343355879388880056812776417162547213354314277283635858434936985963520810770891471623337525109246857000001663483911728290418733017348663107726144859240568890473918530619079493628276945659169724813811029363654663598131897559541489894339339762076985452926389694322618346077382863075590983202914275524092119350636943374205202016221481386715406238557989167606983455708688087576810394624793179706298822413077665041628284388441607988345273369466069371182196830017993720447391027345057243189895505589223844182782245274004234629605514356425756876779934744021246395123651184805367547041738729545703759620514758614933333425532353911908042345949333834382666382241199959661306954559342785794623613162190750523846437056280164361407195697266833762189416724670190756446520567288690239200659276693949067198600575870057857068498115155364781091651188350868089805199518128518548852576939495504634393631178480713443727942089137533635250247873553192951289701236854118588103569815102150561201727326383154012702072075470198664494956387402695431195488941824325661138528884273142079791330062159108038840240362433808416525139538998118921675605026222859974184814971492805398457327165023803159094379976913356878421638767444315960175995191055320978327596074782818593383121254477182978637623242065172453018979983012637668942903967773264342246390891576024499260340089908541033605409817954019552886769107145156646996306231938565053010884574248960986386618791524282221036669646357642170965219279849232851647159250010084739111859996696255169984088395076906943492897102332018748469087010667296693139997064706308383661805487209737340431394442174064575987992200716878910243653282573045971411730910701564469323354971860587301843936813099480717308004153135171675544760445893238346868215450283406322308712538976299918535882646222251130046282874263924921316530520672394300349596960857857174643873496032648772564764455350950876044930990650802426146266476441340865385553384967061316477437816306073864158236624670000660264861443597409061794275465135033378854118013874220682263283520646498251231108985072413782680082307357821248683920509718909342347471138217013610068632916272672055192442658438044346915368215963136264174271225760829261029476673022189307176427731482542121582259696754221286799486093364598209020899739054876234380736010042281398748558206157850716544096885291309438279446333307394917475956090407233388978267663985934606621463548866152314245442216019579345769491149656581239824878259799551944212841561369046765875725746307343545094096109041915758814914028219494525681759405456739447886436952040672589000541846407661989028851296554417450155248739752392385090434352366934521317870396279516356752097073631695309882905322057236733217011551415745690152167382074871304203243179448429762040893231780769554924577112980039985463664654709565377797622992849053523128531485739847335212243857666712643610623659770744121732128417366383905752148981190049682480067584744435401979733634020914345402483340538052303066442360650043093356991801417307704515343172782145408415749585306568335584794679023559074324005548254886032211704024501102317345455239361356450018083514723390169200254773729958352162634815121963876411436636470518953851328382060073868523371755146054535262741277400684516863287742986877345744744327342412914897137532397294151196193692333955953484747376195287065503508252349834865048556086076644622488567251663907281289973204487308257380675988969613575432689770776537512140980733687925374076826680813066975089310518014620001274912265866477471212785227411687121250191972033809247115040449442028828581609835922404923361348299152245198103121925144023473754702579019357817545043153302218254899951036773813715344853908758375969461154849281473825193403997655986103834158247079618529116433386762812994073215779405571854251652783933276976512036557284328659278365158610565398580701747653477376062183552159989464000224263154303992071228052912313064111585327401637365296209130790524153856185726230917405576626375756787712113866772052123462037346695473429054890981233753798939257862097143636549054203480039918683289872065903414682695128442662636112475763151031468262413694435194727969550802078740068398856345069771495508261608871450645758307359618597350770208000001555472329806963456880081780140018383394266572276370391536678689539771197592465823176823472639383206325993879874034953965760781521740902478714294152680309021731864558261392871458307555323834055955109677527900875543683936628277641111285386909359586340368041346998255704161658584533957977873386439692967503828393505292392894457716555596229626485436511494300883751278022282465266437629028274787891900511496074416333201849786150872318806651592440847398401123230764054776429881154898752799284281329555965961002078368912165168271468249131828768663915435888988395640244230538133300936247830843406971575490687223526289875247408028169625777848447120116156791976057260698864153706946327375520945750651355157264296964831152080037524510459964976674424662030339026090929576331792120394496060785275490175841115633306572919792102565495426088908770828957831553568126167946106088665698166434864161166411524265341174702923805845379137256650231876742983457360132856827690123611976754795309976682011217446119907641456269310149564765892906034450829960296855468682395388788697763175834959994824864403844651517514556988393164652238235754465141535400149905318390373835042624979236465058614992880721482038579276686368683163215043650548446744158048301857886538189403469279302305823159061923421953265298035818460168888014078579562674032312908618729332360211132763488196643259015316869453036255464423702617005587931249627172790143118841098207603518341101486333000233088273891995986389335510115339546011241484770763318112813147859393303759793896979250610256019832416562543398327851888846364419076315794667130909959147009374511411220445768477349937229753822504394982107681912144143504673652402130491092793654434645883793415581604716551606328456244004008008619925747282343147379758952978391296799366071117682499869472667657813621750683882349251507116587298910684862650324543979393098152925375015410808096722947182020277947332143715276010402306599348881530910357528458568535087136233522168698451692776588800911027787296639696367940202730577057864518938663228728819947860583627487528498093725573711797621641298917718456184578585856011650082668419015117891996196359736123186487621046544826900427844373939766687018125254791274055482726716242928462346623761732465516539730508512204900606640934545666980799037946063468837662411857030504472039893003692864550097829940297937371776531724851075505602997208914815284765146634909854547179990931074759266129701165850498607853692390779220379137781207238285897119900400817648298659800977058066020729014480035748492585481782873154194553059774034369508590567216300682270937807449808952887994489125299135145583186880063125146894908925938823815482566724871066636135291669662888849585406768913035185293600769543647110310538026599045452911028575019716036606151073922506299009173541438184410238907499505102910216351797279048982556517507820851213729837872787957779159632529142359382796232700198131772904815190679456752271217916156882271651436580348580374504516017554334261234423392409580731404410357504549842399391796854757045577210021136681598348764419951503588165979493991234998574127725212316786029207876831932701091096052525143159285218405475620232129152852931669957095825860379405951723673969322484482149998651479620917640687908984756322932339573619340704424060915517366021727649821263992877732922138182559716124144668685782995003732708249458296442743421090791717022622586845171313029436840765726959912643047125412768412223441304270057402436797674163867080748178688030485630182788739894569763779791483726148526192335131948324414863622193470715649946962562986818132107519881069434219167584601793943056505572032057689417195542829832315732451238804915025044883988423950151438129315374754881801688958339516992073929915168891417780510851223878766896628848737700088354123840603276925058856917408903606734733605281785675116410208815746558744960093607537479184022516744765581021498454391558521630634081306187912023668653177880010455653797126288516065819872788086983208311251907552567685345047307169180932499114053411859589903447162595035337774263918458894489510059971447544214408388825073820758644582387560295362072508096168540293404288871726094896122261935680028665656877229031193344555415142209722236324729589700832532024459500159660430031527230789425223694887297602248519193101487859736855728016230334096063592930069127032944871163510224744095168800369392306238183187583379469847923711020638712340024763727306676110896514186132884555543055054337494398629428849265849477310527258300032097193422616526254139662758771199578655226342469730819088415692728997815887404771712231462639142457524896471831677266675749957126759730871620118845566361356653080980861093630446834439859582378217262593490904363592180177176785216270651030967550829405377168757416641986075310406064822502877676244066190517907104044238117413090212513386526584915291934071775353400856332523782762218090377759202349728686410644797131596471500802129239868425663747308422458989452112782762717980185837320761815066724661031238448911955276773702850556903437041602829877864898453111780252737542670391817437216617511451377281513404584953343653686900768443281156752079537169819672029399916867597765200340469236042363250098236541553649643390836897271374707862677823686023418630350954440830981093172648564048110127703944220481713633791268184437885535725048193634532518352912194215214147808506882200054694233451511794055022354528455306307129304925937419320409441978734481759449448962821909296894405570186839373304808862363330308297301039437724556540527071435394529223198907708856049800889660366978104120344060620852418108440273760819329880198424800302999634093728042677380933045918683235010667428718922639416937932309713677507225685248568553963735701807495499677656049124434440054331848615625439271968310154335080728003282618401901838912608547785547025566856933679278715046964326848302999668608155786543493978868932707433494838529273689728616969118721898439933633061106317014679978766754039682817153150588250295141527053032975671861318010304908493741470134566514367640272131721186159629526077831584661635164927218145086343619507746190831935769053935855519704607818028533916632319592994647668938743623287924522233654746132232635594715827864704852954426892376997210065570802914811735691924359238802594006420564475244210405776920466931242633229308254380834275805590000378474031040029724151467113779732887439524228078001337465624425818151485056235397902373246702964587934881376629964930150620164556405240787861223238847500383451321761784863413270424271481862807377780898007282378360658335231461308942660326395888929284234335564706222272404433966196468728745819555584661084950750206531126064304699736041067441709372699968877698123581233147545001120671545989721637753576516998201777069861506627075799008072560996423050931084728499140475710129450569230821571176677305936826201756816941509169807540621157433886636721528307688823446180427295710979158933656049960361835614507445701591584433989734138700420527187809579450181669682958271171183702358747989694699625447561916197138111364937018113095319535601676845616406968524153889833143019183617983893373481583143848873488058537935658153419766331138080339890179768732581406794219243912663011761066470048750779764950842943203276162387674084444527496450053801744774006066621859365818574968170270013753129655140049665164704182041963697985496741532469867167879861081301564308995443467563888988072933606240993903795761923164538479861258769538243304804255011958734501970829884069831874847896331261311689632019891179071485886512376185221120416999772397179589510442768122054232689980584530415905899065470122043471364355986346262177551011785913460389256379978518412765753608674759786025611156815607461327844702473943815672373872752950400890643332731690563096766370761514145335095158163526663034449591853034635840524738338763439113718833890719741128284952163416136488385259719214992309360432468669750616324548394661390971297868259137629262304970163243615922374628140947326875353738509946158960171872825398107305545567217702315880468418334185767492302207400217751279819353203849352178599258691751737413635157900917088903351004143679465902846372764437762811324839168751363470450892255888911027725902047878143443056410293562193453703759493342938360034405757938356913150079061919700375183969274100535892605245970525604294459921989520585991300755260601485822213102051542455438314992534123978046348616849484420657376192983465058362687107308524986499962723751311782522995835624394857825645896557505481244279758515331333729605180521413995227306224918380332190407299505032203682252792830528383529225077946915687744778960633982304684660477647022564872127568056305649124937916250806571573439148440562495993699811757133795000657968744684553658903864179918337675992995310199862863233857597382886953562606939513202034606885938207373366742141379434973106770092214895231540694961355451278724439288890052361885462455413805792347956391142817486211836849774227126541719495595787797491647802630197310303478030654266495801497872653883511130061520628731207404302307651773650174057798438961916278309218272231054595582291612456254581127191926155082689016661572762909709848607214121499606916156502761337998360364393908697593143542408425918994473858803532273744530687106881056159179053370621582698317178414864609502213053923948495673758385606619259592212069332732026382354841870367734902784219500631501382622514846880496985460330425624491457673341883959193773793319533793426306538813159496829493249154609525665023424872198547281586303847724792296103948709169408210507324666057079490269911632865708901705594247980513994568422132189848746458385139787964659006494731109651007039861273375795030604412794209839021018350802568604173710333998783418978180837282353308958394950856498309885608702671790555552087420366213100776466864040111725741839259249033216371155914556344445192674770256234864888671727846184612378789557283483385801131298861723107778743367451191070458531577121523332931387350088750273473237697682311387013848688549452388146776422450101759536424553954451336643780767426948604680683061754845282218579505226847782333241338857169518228696153426351770743854323313716796656085923919478235674604326789378210958288346453955088619467680587340451652053901687572202503251772186759132296098188243353733705306568064780735694091600132741496380174518099502519606641404642883258099634139405349349337999707484411203440825405370773473231398831400859861501579011569343454627342830498219170976242366439629315485271792743820251734212178508791692677396662863570307624955603972781470785970554358297105222761244586598723758848396690712860701349461612693575309317908813623132083221877909055611081327683654468199949273643039791061314371467182716585567937182065470949380136801600096676003295057772275095030233397550180996809593866447550082235549475909138649379528097722839773788421723201466951171818484984484474480046059898433710083291942705328849528666544609751434459401052820066945618535232230887349693706413787194479763268491269499068260685828734131947767143226771755102085820642203495186589152060100356516732394039648577010657897203961294541561514988355219797306982355086293359697063750078727441147221436572950367010895855767502867499154567670984719723193594993896686943086290102508464070928464273241560068616959101240549779943733095627919553016172039112219132990062408624964050869185300913525967370071140151768731771044433478107641147096240140327263377232228409212393814779389378708650723285205003810920215273574285902319206026675178784328188701388186948324689772440180429527385936203388635439078448080122271138067733690435380224928571720032386023444391595496327894302952248042915814352117845648965571148948747032029921097794921246632378785039307585159474818241567879840084740133979945002708431991773590177899677017918945237468817315105379013585937070190158470618802100200873611783646242884229742703639727978219613982558063116390250287377602642464808672556401126146371322007992853702804875664583610009203612695366589428082145421718623799031750030164872770689837197366008622176884287802730016923127010770835144993297060474654154281651670630870300640542229580111164879981572921393128169626723359927752450052905063613376561693135044166573709273238164295088589613797479147819693945565914448494050195100385444080958369519252580445023070433268598217351017089046913230508030860640215748734282265282594265907096938847984416240339823806188826107442519267974947655527381988285028887544414129202150286414108178255927056970447999122559273863460252799874341686621638053477495469444373829821028184694688999845969033092957574055803603431178208624209497380521373841689081352118111723425913035399078171180320177159384107479485566712187009946061100114392669456921775615009110040537329887891282541872335663680470927359749210733422377315542698760866954704795630759982629334619675761276929950907626538510445188252653433852466501127826307561551021150085193139200763875421788854199042714339633784603467244629389771684471067359778163011566103001173551567379353505272169690818691896126313628905398383591324072328666143690248902446724624116974575156929686582780185724026065495453291540311059930309461877363780985126721953472759413675401482200768053997044092706240386718102002498684903528412843070367560916928664102147933630775343302556485276541061699641663797945936395776011658010155416852415275796620136507279340197969355642289787389208913985411220959967603555227170188567644547422064077688417548938136686577470268439693857347563260737441843568437012843844178883311985932361454948285190804058008462256264625379246028616275447858295879388953028588640253481472905036013488661396178846992607227662329748815084112949239016529275960670013927677647300897885678250718053403989972538047748213659035257258388330513575107504338930265670000836942679275535143817623882556590456378036353293669881084372000478689076055170705656778839571705220284783171765521185199289175064290217058913852411217972356574131884642449118094468400457362846913563430865798614028038595305308432841972729846746129039955080748233365206756797668767985314578080319229352057096968861093380218877781944192547499806005052169702709854750186290195967523463245816028076744283813843517175926230273163306627809740121299529649671518027180288174524213753586007419121888488777200640617649784371136197012105609047741243247752056907865151361899714790284566020696174704890997298691548351728028269202960057458185110681925153300080982239372550634903380928397472882038179294884042659113548939542800610203972614151182560602202949249339174101560510674915754759910252514443727141534873778976172492565506418688205354881256316215762196521880091782203528394752816490914207598064400218782473615220348416569763811135105372390199015456739183333013473588264562444857809755233637608225698840222599940536041224900830705593266591865489643982744377775813905080653615071688795514400167750200974122318291478124859871068016054065624459935140569453611145213453275122516566440046477094579678811636906454323447158812468095517490456720426789837887924175128073678370942238205249087278079202753111512532316057929420797267239805636290430769439205011744010023995916539237579993219337541949733481397775037759068251066963480218754369269812125997756338893592652628668296174147186370373691701465546335935139070327389762173249605714630771301211318938288831464429228384366104266725678001412136101285845030190222408557967993193794872957442612845688644928138437464141437297411141307391506511518757394437424946457239332507122446037926164191593529660919947948488724742843994915255934899675910508766944126488598927331268657581945474601061297045286995521902775807116658938272299655705718213593813254101685186008404052795292984107302869149635745932309009006243545372510858533521610910081333060755998783918934052276048058166424083530563867139951332875191979263246822013583171925691428695742526903513908523888551378104060203552304554054291433736079719911732726083260300311144751528913575702463428462945122654418790717924515811789155989832816602265032089757525385076177689270036632783566202415593646291261435462720225190669958907799367712605160131898326333922129713966521093567469657154754085158747596012362536257630807081328779423106554373676444494193231974182466795694793932909692134367787159182222014711969626952066836371725948168847452699367656686682558101311260425023825257049374851069307878463921417995597693364361252968042879197647616573684634000997163359980656442290274204244006927267663751838458425448279176065015403109496064295190878255820707955419330310279670338958894696930309192392403857083838310341519237434252541763004723802469525507118496426031659408373985420324274497995416333826931930021591431620081071014071372942345797538167529128071258203987714600013203257142994278407709661023837266419845281619422858064923599540903654095202483503939692073954153839249476101662175703621507712287472265121259272333628092687758153446011144172012438926601541585452125193881765289803480282977903494867351828622354243024390824586224932989089491859423329450110234538665879992284972617739126783232537179994982183912864181564323340291446366519399369618794316552224157965387641287038777669867900815919570920805588607094309746275163389544388435454178308577120243498300664198924308306769749311782684691515901211795926776740083200109329595624628460196737718926496242574328909420895537079414094008476682734812911053172670183547579552906345837292244977652455408417887409379035930988249320609694591767027522828629459978244866569731027680019349528417627944001260881487957578311460514685563358332406757610812625961426497208801063546768531361907028134501477263736817212952995111801422937124136809303414995030579050374692543005562382916479721031091306883764811051021969505728806523127898304468338316802691798080524698329251152858192299148587189791511302071693238131756941130927750887970430741626875262853943111067614283133413638322684009517916453591660303266041362541665778091585883620159371398607641509106243309344769966684349799001887364016157852792215526419541163692291221437655777150825451838588848216830206640829421129331256046959623779041198980008857822204092754885022592051868508611437063414229899948866522983213797870963804744009186223712279838175972290202975628365196780314420932316213159782962917784865753425024658872390983149394714246550135999438169189622525242297395341049935508889446645688583827063916075125180157102972300968298191396622486436708029117402471152922091048870191058710951017589032646048251052283087124696546921128307296854495330340876964678633274684052563490311599718253440406191971756716973801543657952064908300580388902232487888019734445597185504518937791538076200914523962213193175635253492742980884719257591507473302361984831399373730951146076832761110868297657836524598155478990100974242617281929540487003978060959678525520386917145138193537915631760244495775737839030202836264822387661391769976526662633402085499155801807098989124497260598827163542159427438164021715994662081148235029753704040711616495698280678589934782170005101319887066490648865290114134005808863583723572660836888716622063160602570382200948815537955399078169192041303513343864546905883683238800400954163275526716761985139097295683044002339951161879137983588864555794573628355382470465235663502792469918406688684446796726246829993516861873405894766003537997041834258706390629707163488367947498808342075264282727461793172232382032497523015211033304137013736867419710875236403639236674254866904986571996053278053596390774892785657570720235872080460415929142669855319478293943880394571181841954079271739350306946185041093798583358063699383588569185994957894173333645034635550397958690449729669063872037186140007579289289165568063274051093504369888434211836836295604708746254026821215168718968905990754237526233145389930429750045846163075260477900724424751089286424543021525867792408078241398992553054103412601686156793472753214402856975734807906767820184794506647342363205372242277933242323364570241939562232718534378669482493916649499871904780895126987044661868369911873153995748399099121388499227306680483462985359360691149549458583927567682530090707202645715537708913383495853220026330368758580297609161769874603853445843076342360191339117701186332571525002296166826721683226028959091956777845076568896292441688883635843385234039291872507377592428832206943982169552329735037164253134584542608957110933241919133638624570021765786704552248117497425445000139304170345112905711892060742149183610867529111612974136641753287280662241301021143402958162433213181519028769738412014621269820167652759300300956895610109096556389991119856570998924697587598517030870713671255821928847669419871993781997066751362423886481074313061545274204014719188080308002948818871436376595613887080301148676009019421334429412244982777501906617026536851924322671509284570154752647900995788400656756755359978041635986021003135706025908571611370913296488969876450091221255923898586722735209523206317266463807029884666010174946679086483662626494113948535050541512221258719204208155451156525832755283891447201193328337203379879551883268614412315967081915656361758822678182285209605993496976842502021841365920479655069975846360491311131639617075182080937651488134609890065592435620096745845126142010865594540155335839663703599727091843918152863838601945500143068608066828601551419983302103960025676479982147622651276348138911735395423932196249494286859369790997320566893174833093038277943376556844391311034142602404862142183381141133810491270392637543182870141853962261345104855664367351288747687366999598433690683249405666147863345000392145227801749668262522503465591535974267947347001018495528834419740495227233916330660182983877372612846110181675389425690442825284868643911311843663661386975141915037010731721390922182400172014909531529845840541318043406374377286403220868015606364025296109759576459239241779950649752245062407576170986860061597709081328522424016746094644500647190941039520142710260654569329155065316736503551254351209132265780606628981767344413921235971031193420990866254828543242185452054825949254898410232816083988592888162637972286288915271456176347550340282799359941165399118559324310471843104092839806865282476277330975905789044600982821843191304227393310112704170281409253278704339066839261327282590731476768758353152866259437933333755462674895491729189501772577802809097635667679198174554906052613689248758647734570136769704192800602390353421971844934385254784322864945947313037816192565162759771966551141818188991097184460553605801184882455140324832146257283224298657399120768031023673899463731350527848119539402862901314762012930411363321564220972514575551773740207607982282122258663948080440362979359196389733030878217653993346425368432368832408991857943298688132397248360940897980656773821608461818865713964875850253900641625588260289945287248888688151720055131135326424073627920322627285530275636861354021461332429244093544022026183797931463311404740563505618519666738919699411352717253488698573889495890399828251402090214774265650030593600496800699917821686399983465366696947619131914442960631630787766939041571153084767554226370999296982683132904977981096526287373405272589978130397293971917784392167957453593634682368167164395425123110837186372298300676129927068368176319040669640828598114832142786572897160179397146417372505322167339609388605107046594115667099155469680499089755598509817825372578272661541270668323712715481084201629858313635999952489741211144899611277200057444420098282462757871473082735181885595401566872366517596883018708034003891691536398423098234173087156409006484231642395025691014954783687962395147923500828479260414489471446416058543614483974681095508716212753850286771002999462338325955215330835393754244030293352064799162388175036972127338994806136532431649613466026265821236870647250938017743616531398660834937423253249162289868171547770729855635889317797023385369876279370777882659891145910404683838876887262872830687664086759988302219863978281051637422825082244023217197112514410139177872756089635546383590865920757593892805791076369990436973393124614830509808295351855090254903628672367094366357697672073304251311289250772452079454146791460466187558778252093450652600562889992942550143816351044643713515721350009574768995512438982478160727868893609339905393491383086310735447617334987040875920640749093919963008265280346295352574244163509986915027533630656537643367050937739800626577285492499744428039662024249824510874938913118903505338789284133084886251685599766471033672749685786019170360672562876932864878471705221303505158846738683052450996115314960098579135692695871262531880898863846850906572956919930751750931153773984248044449241086884866424568568341782596091155873341014477019405472468926374023306511135855582868840183525882814158318482957372871138381339794318484738561222400728725829990086365072054396419658377616083219702125475869752842130072006547489423214969200128117031594147016086100872086028229139692296024853373076299115293291831054748374222172833749931091880260865104575323446735103370836471655496001811293806794274240141086770754794604963572949886022932696221042711800788023927362150342795298657698057017891116581662196121572079834313880612588267499101807717991610364480339291170756786368144844093936819428862183714855299615530368840355941995934792963467104261621464635655880325249561099867815447280681055817778067969933709562447710809300121059223121190520568368359326440317558926914351992054131781324637768642138437104751722940858836707966988084796744505270782953910370287471721607932022337046939730433109329215961174174927372834108811891425843167234929198731111660743491910527433341979306521222096613069137472366392809314642352374359591995874204996291529894852636557112623576035473871625111020056010729453803268474433035723691580601307200794172717611036006458714014035812704629820212547752122335318920400279050191107182975799665935169197624394232705330169500900320439294789992239938083873480068612941178613399090197556394468027455443113409447869983451819570212495279664078900483306378494584198970863753518672836251418303302806372580212382934795020664517951773343265720710084124841743543663158046244467796365284145377844033406959684206858204318983634558914388426260562877760059454061419850364612583282954284336682847617975887369386145722100798361724321313574094837220955081082462572694787311176356456285229179042748086583953428932656762921551263132768018628773365438912504057475631511352208789837903397252664602320161469851907035797494998329950208090245205412678451135542104537436584369202413058503352520052267779089959213985300108490694924320870371270388344912925229984150277892668634044491095899908918653436028936895838526129556875222700572455449945478317900253378518133113304041543220085957407567404409047923236089203692591167072379545839836715368176628343351294012184491555178585109077187285532561941602540637635231748316513955728722436736307882871859125679044916368488707332809611612874489551104533584423164979544591059367081039424294602941212869305576425967637958483041481991023061434229034656596250222913337181269709914606909895688787256555438409302925842875830875825313408442056975495931590629495814587734508950925943432211790153109964125780185532424954440917309848070292314994542079986462303648653355617868802245616001470081661259638371873850915987726275656775462760332125243835941839623513479239525483556816723604233363669303325527781503552021596344902720144052330109152276269150732158061262263837205016184654799952407442381757965729970540134161164011086961353612285094025087506330306750760796507190342218260203238632015456335612721986908503571200825338207443229059049128930509794646649647768008563493169721757747973529188423449246926033711276877431665649655673996862183920119229574895313720592380296664964499380621839639764414395044768727835008275139739835968472164126298379134663356840047796669964953744640297842438233609785194459160377687332200280997428560881744552641656949852489180633305343377333381433777886802329799007862498966053532775299137854155852226259910248779013358623691716188991930774102056373022019542176824082373165747253489055168847419239779527525222373520008621931340893371659119111042174131880956583793612705415526910199698423965944757465473333885270993395416393901845276483946188450425431843502762194908627962405501055347861534567657562510597512805441638565649619756775204769164894812034789331499668496472767486389368026707437865052580276259429523824058926893892174875252755043723321855382930041862259954096955104042305919669253556963577158583761283049482389951553314392771608673186891863085872192356914930819667019497516148317779596398212985922728106276909293611343892058440863815290427573176133631787610493832720142113351118143156831694355305958418475214206783472288568246583114204534588463877719991320341658217374282593716261724303735775614672576304287528165146871329830675940577937866632437082081122786476344110290201698858253756446669588359476413082092845809182513567218648265679597693680474263759817258317121749414572059487676278155676527700231003972045736691776561774171960690273424680431176089932974982423520854430421009736499042717190152116906583883768693447557017993939079934471504232706139749376703239724030349186922653311461655723251390165139164671375156783118020776822341067079908838733858535407469721064951798035081032873321286484934357678428648332342510435005510873457405320778348001684149861735245366558764474930671937360775654445456207591387284881435254702611485645408631493019409456951465285562367271251642515143176725553872252155368065004723034894682118938664290161500759453729516030001197827588738258452811887418139290484205773353273609826147711508086065283448348514065508929347306845111786171721376906975256216550448623045957070772141733079305831890897830410997485292551006801958525289081818020874048140098071556822254318371025151808753264985445371639863205411052038186620687253769196809167591443733167586989041801110552460717625653427083613363916598986796011374609858326574857414750420001623152312943940078130496464753420590753274352410200598556832453694076515185118415475139360953264542228100599120447222134672518067657111995290977496626623828706544946697635608221875789469073170576409630391917828169261321544827200668169199287647459261851837834140829813506781774782456820457114204419542308773149107865162254714958672686779708782178387878603357791790428421729833702595923302288351609131850561133488566614545301375521144960016715497916380525383602161513009826487151077368998991822559983280012801327159166470581956481512573555735940852758628584128963092284468899565804454779732789324205933152560928893879549058164403153419684297522266744877845766998754403122577476897996076830171506995661701962705243498065050328354056590784286828536689148355519364741065640635854635241999567771943970070283431623992539384693944928491239408930738728545580700146783586074241069143875125648211412869083752879119798709275865214539650881708313218143801276627554838156193541752007776139754627177108294249727394888985329403500265720841733699156255196158881788269984428550143345643119513870681699025789452628198095012034121184628948402591110342494773164696858391171933334258617291136618030976743940871464779020278056832299518201290140852729172102888433756167189136689487199485305017992755185672405798987795262695435505705812246283691837617509174342905992906538538126539499909838161576752030132317420952400398796514594243705526343548840051768785679689586357482644793185537541688127992496845355311945083558331356086740762436872168921881785801333236704389297119188157549505181321453999838502114680273809225689710649050692101980539744131439687271981105648277982360271709285610894309427609766425390451245152921597605899042414141370200456445195230346925835096298135082220632422420330103711757401252985246216554719200005944307237210061949900079998182945944346495172524290725099240959796704236953505775842597595515311514827474015623306029093900514662079382822173576970127397510483994961717597265742776460622802962439818842873355307260696619670467384199069703535996238750091905434246299021189217958191523820336822152146307541298144786271360540585908442294708394109866370400855895244602346722845968255031367931941238383143131112770846689279281113552240614165688960196260260947060269399614997660872170292373699862837273321026670278764948769617141229023887794283951930062627621102738273046200607859256668683244851849042738264044138779342115494040965423004559936660448592497934097614599599301209969286644494048351632249165320758827800621574030589852781412185282199786836356695959292107204548269434262161599707162843331176353355655281229849916855234582542683168000016872998482620130128627396489583469118628068869660730565839437019544227348416604095614068567019161867283247460111836412339111245202724140743072159979853765084825499177008792668105406286683189895345460226775708230151062018649363715105672856158486161833935717414301526236990531879497923565838850595693445365002026772805609821090013726589500651938390577303959879389326878706772046010787041703712658957658738013614362461064565660544290327465022556756772221204837699679797556563463083154357712530829889492133027214797199500279513744805542808328433839979561550143608627819244527752046814402532222795175575516322494150034999937326078997775804820920324137132476679460556722683598936341925367167694234659285325737312873678137677393067896814107501886550046155089696634260350937237653023667455972214367702625824982428606528672764947899410264733822068909396345613288156407206924573213780774144074446491861332791920299076983469575183438951899541975361714695652955535222244955978497156987042535839316912352706766401331791994461837188307068690735269961426970798335655153283668002305250898545947816626093486023517745763398678480547285021515747279279109789997463397440881194335235715096218005366948210016954550788613023209960211649621848743894863414876654320958746989021214778212860002086279517680898367672649520547684993731512930010012581283037371273418114787253474756050051999287849436914351670671698550069253766279001296187564993122316643320223448485446924562335146046041501336032404349134644825460763823892107081011675129363551591784590621505346572670213939941903155618203028787221053340030668847822570473229102712926782691530488690169131245199990413532385639752881437988461661019797747400581713764350249853441175327318714052665458661334407306105180628022300960570494824313812368783956683368786299114827729408591541313379898266779293025934288080483405820700677125319143956122205129800637337499007721703459280668295452344751167589157897933351056027506024948292915730432034252637463993105639710944007758262469242447701050479032866247503976802068690742245645713943363378308869859707289123947081569048662600667546512162711369360027236822474776444834540808265577458295486618700864103485382779746596269797066356424058899536291372046689820969552212938136753581850841899233056800857873095411412548691348867337036372588543613482883098031855280603136332018963999214792379872361600019691733972930936668524501700637729833893225172136115506163273801790457396014536235860248792647373216057109435886205349081922129779992205124153146520817166866923446662285868005664884958927233408123412612142697884889457785377547786734222018987685841889903631219915815697227854510204103756269980540654515250805162813360675247857259457862735232069201027780637169317740245609173451073808764858260355028812145117884743652405891038613873056704829791036077194878773204010903852251849923203760161388180957089504033278307111774552033627098355598037599962504288267725035531193486047660091153863361622842505700647020501165237304629149017290349149256292340296093769898601381100617860686068581190793792306059075767412093645828173636004179580283003653019313701359439387890485758700771973426593427173082854974361434205570505358029932961659998922536793034472993025431881870770229596295747192497189000695492663668624042779637340918313408846655678092024759528488019204958005638386755009076106391488650167544008103829901250749381686995759371028815921527315837691066196461099711530100488380290751484446550308032080334618242231137092865571833392556258423717536310622107950621614972690609366268549543279297995152679039122834193482565936413473901028591259797728157821413730578261737799578672610437404035374779134923013232186723455857207784142520640134782478435871442611498242210478958589232915374542326260561329802485684670615958810644361931008780664630834024878679732911261949195289209885049060214289208076421946615063227442598163972844127516449616289201644750916503321161513222625656596086559904979106528721213940548877677327653327384464756695814544678215154395725053510050123141423582804923302123670511466276664134949676033625193873062116327668122608578639296259151248137478686387365905405653516363769620312458358510017632440618468238688825687673353281024316935744295369751686467034343453621185129572522547816643853743050958837853650847522158753824938911006454637347647253469411336472694357328921671679990258645491961522798035204964980736940386154820018998491058233440236221011265643541249608361152214424289460845670465528218022550696519037281427594279273036882710909503435180849236012433013703501006261924981146937341702782753946975914791863884225478873178062775843509677552897841882973626726434815954798712523985765310835611824131199057347162574566924876274868087745330675815828481079355770982048009286839722258479704093347695355374120548223517300336242456255011062199459481353054076987285999323418342620603442676203749782754025239545964137605911232516999261946425775403345579599912914361938244169037737063623647741772456374711106682156316359710405446813646472780934648037628421530838384204519277769401211136762489238194184701766930752714106242805601599921268481013114889137750378727172329873393294515816411905101679929705763713628723907702590958329874382084958147370606860961985249323633686762834580262421571492904807880302613385836748489640567691361474409764882163027281301313802356909165224524508295580695357737294768827509748698675127462338788505825371452110976566353906197117373152394263093950524623049770998567681817559556220207845215345529611638775705138403645079994467918872908007922759847619978157852357768950440566618098651333026660610326133220122204814781272136014037264695110287596912198228727024986760060266720941602721359615978140646834384567630012437883773806244529930392309625149303990722919550425005993510548101955351092082430689095757991609934610320959115044801657409464943983420187306966513092355028630806501836049126489606045360072223715673383882084249472560403890564119170616051600503720620449402409588343319108632125960401210745500304605284119868328042515140163208067779206207965439322887946451579906043020730742244418018744215376278748191179645793055836935769183713447540993100897558214262162904172398755582958665068949859110424212117527780291790574778193636135217807754524508040646444004269272955358443328500473147559157358068267206377150580485632852575540736155013904186849966111316019016642188652602388912455239117352001372762146884290816851874507772526293548089627980277416185704389415679924487200747774801501537057120636478764558163291547845406782264080771567795863851830308680004380334381316582499098341388077953183619715901234592357449510266694269040547830507408544505227315812237899721748874162101908296136402282401202660595893089814516404371685534697070924835704276755433069438664413991036925981605435616061824146086587352082168776629228924193189012409572917956473065946993228348354642360322531144996462944567891944863481789585069692572013607143895122109635578723294834441736832415506469315101759890326159440926998044985161404103414371622020399022247753613825297983126666128323403048790969791317700492071112729042210633171877253032481946975873467649886001865833003870003834108502686482677455173539531802885099528881246274400766218914776114995751031090570919242093393661450724723976199898823552812097974196367499723009664479560511500681153764047729059714589526563083040940122911104213842140383657718366285238294214325024898532178695080235477038865383249263717470129631955889546795992375087750197845055108928632921366618088635954503668530313304023087102984165198820018761746759471444586548474714715511203868400466391273119076228655298217250511641665974660070399752735921408879483630919408181246114239893791722775567935906944007977484066057842438843907922895506095453821658899837825295704361866791434192501468810372342901521927963142445263527891461479271229954427113237777529992100857979648391761081971558599902462562837428372889384616205313874582041878447609674928106832072845932403543107811779586409916107222898374180052478912361012098085603861398609015888535394306652560352289348594115216295228686247763259363178417302689802214193374890764033068164781791425022155182422403363585006394805476884143863468744418302331565096392797206357772600646513053744280384365783118138280038567781414722880559899541404065320100006752913039192059480337451535473710872502038033746835061971922136943194263467229881549436072803814784416202632830867120722840993812950072123061934517328616765641022881389762617876926995697196170646658200450121705273279630430097306546663107227535634790378895101555916651744013301607465218968373147001221500466926077524823846301362837199618301112868191102683604857939702460333646506015865583066742705189434725926003198102416795126128702105440476176402243477321673351424615465979990570520003038095864681529293392603989895448187936731398146426799437271389016318222175630794880439223513462113107512614362118132258398706151848192548727182431597806938022073529817578680219725551650097491473809603722737735616637497683933335609444553465013198869178253812187824085043715176928158200324655016961610188475072874453492171435023474758820071494331039375146881786792349026739891191969988658253631556667975747116750178526886410361196710801780220895826080592879338124049739350795774575693238125938332795055834154070510675121696376090673061436848741063032471556614651638010189411463666791700862012108015340890511211156637984082722920279343961257384266216129454150254654031442652932789792960609067104439899485216003928955612700954668638284637299771518738899673258916333815427464968814780737133430747374779533538278267286157534769935296114011838782503150743182728758580222309719896964896301427958832804394876147871690031021994651333225136678237200114249150719788544231212085472878501511165372631814731687025046257295283957410414651908041541835977101352046862145838635483427609781479929723782998179679517796462624187032792366594695671003809983074077566540417990008777996226410698197660900947229687083523504676977541940797609293366455572518841640920841401808607913631231047690163430701012895311826339482720367562387495931246901795988620681858646295264772944834140456480703441829812863562793120138418219975244239168775385971512145783559293521050370081591096441342263039039417338551311216266908051824446148470144959727890990024448953662700436815965647405746507736163111298798906188651688339983208048199109085888620122296948842746485553137321804829193785590613673465104987681203759990056318732456831036178036061121178592755965365227684459854183774755645224777062567737344792142486467416004942439773429029840457090358144876874172359839205453134514854017113415241185336197770773082198706258188090182623316091117649588847142946189139421317936436145852130825440077922017306632431532555844303045645333071591405301253468230166312586226976928352835912954299600921993964794730472717855681251240449956296361259873901606518431858684050883284808823343789993394399179623563081345201517576717960496852798732303876919192511899578948546212951013884492069174427060099463362247980104469374366867424501068555053356173730559668535590175587112242677768461448186503918405995095815640129560283490503848029692079175620858353778846557969070489856172393556904910378293739583690931893859356424461262690321357461490224190085660961453369403085737683469386088763881952057903788448172913615282359074050711857400165779780709624831994682188212211686531197484491426886938759195929289846597514753137868052745925968807557583655638426372623908862232778627191188170350965620594581944204297700670501990577701824854209364034227440012345485384295902585979688250619060250229921160321985666333457113890335416428656610329869032760807413944533938269116382030300016122329561060461584540758171690778140937587907517842616539663870945254648887385029791947611987883220673341803178433104225877280347749641999861919871146494428252908545094972722916668139830746666240427090330669833064076714734318143086062075570832288492255826675811499379232175664350867354578932299033469750009131853557872827711989535977081497840135726602224938792303871017355496977359600363544528931307854346525603757381847325617241150926410225419661580208093366760816708135711061654564778594776765820759303957976261314442254504279720513010814939323164804421432699819429901767956930871354623050432626267939566385834881307247177102285455888307308712862322524560305346122441574700603774061978426139983285460725877043949302488656102697260303933066344682823900845659821826517992851552546771596772310681450495614987212192784305700177394452088228578988278172670964083132881245819656506242087838060125010240605305843595671945363866968790815166116960271586213988273529154854772781182023379537865522867560719894357714712141524968020083099252707890946191058928138674869589837352465995227334589740942144751072797284509316063076093627724722388673623696873391101606062447962927158359869203372841211397155258892137818726591981972571346000768498081916463804425275515945373408829070620881597259295762044307988092849232707165195434633915951529725691258083724971800207677111407191303256226829610110170052628558758020398310199915422631243054876839838234255289448773655499923971443005063744897105759766079891579575938179546867844567754099906425563499020303159078677001307759036115775360621204019658997610358293333773457155237216040233426273240542064845031514837189749107667492174766454568356777020678013682189898015393115137778718404240950343868077306200066844402594507141185198557881894191725770090451413314275837496719095359339304914634422891859989329854568798450861448912223612862858437631389307261212571093381266680927547326942180057464907722171030377179986996875441193772117809688024319859677258619079613963888399368563922238865676933069641536623821662416253134867967234353606812834551839920098489387952089794309200142672531931653005446812352341265519641353095725561432733805756520085404865729977190603679329036390811747944696743313156759780263517113112933266042750853229325214834413576125261138437525072873372831189301245268748275128799605272990670590158752985858162634288500871695571641356709011831981286696786724236797876296898633894766935991605025708790683500769390762318308069782694743402962791762252962680795686163937148392443865160026786159501481396411126073957625549790526256390960939621318187331553004996716363164277511470947368456576685313611000089365608990868512727532422278490084464936616676315038073435929738765095343746039949533833082677485553541108788895952477763230394044980323540126502692050090326001002818211177222508576364462596710942212676462453405518354546823543095460999544272132816361733106742882256214025239741966949182575208968818524527631794097699739150416787130579045201550599296346229657415613486046796687552159644389451884461567059757814957965999870242025767381991642855125862251476314388383613784328963455332700266302636581946006350973260957873586618459374394981722193576881511772106907293392811692680290054094157063817584187529754452250922658134913005421177206454133283627114836389530621602192507909068179985808449007943955820004689512065485016637694632896678137875265587415259070675559171794848527847986333429716671118927495136425274249651486719019517726923242936145770306061710897412909483817050457219682925761416014837093842656721386988738140002072296178689418194966507000864159082912594569034424225677084946544087232615727880795262937383565766311175053633856886238327056515001119390061993826528492284315566136927863342508046319147665514969007590554969730035217058457873554192112681941551943869509123348144858010823324999810073982895349133039925881503015016761758588443053289902784282287735189273818656908209172441561346006396469492582087810585279673582530629885629141424149420278456116456172239657054708526881986046778146339923396026435629198229720128005919261749195894820530331276054891728769354156244185262255391282417430981386728350886229293128457851635344046163028545380629606449488416004718430893431394176176599284508426317999597803183070510188009248603257333206781714573942795760658667632069269648197189787058752162760034791105642639221245564535089537880221213498253989174261896806146249716679668943646017379202535594345290227245426355644021649811322548551522430331296953952043400129334506544680523718606572027266103762870964615668076436814912638974285724239667949881293423476911266183396311645042972459303691538867663329661882987683277039146848857375426292388479550408017478793426571252213200229507476266629969923987302860323215576319759563365159511177440239386106833266607060484258876201216022976736524562566147533500586103046151936104375690446551945030894545042578606366307688815905594570818360853090354741811727281854150775588775795102055659598403738011391783749920860109236785706190874609969555764381042997495457460335980602126596605404073351939371102249226419701352950270941466898365513785904071996079957810233722766765567137297311409436569055825396460754583937404351813626378425062733363269650795628543486168923547426439741729763477483093628264720977999598801554023737084838000890672829666942372915696379108254847647235957879974068636408944450309771325272594870983292127728089019047740368067975654520863215629740412124416962446477013646636135603171047387340649823562158830391368929452710946890388691906869504600700687264129839253223593379576112306090556316149309101415859783613879604738466629739134401364267979927328489479311078410392459582314198063841869665690462333938142912399961123996626136598135843650587337285156111726411650782262342653938544648979472430363934320701539943972189291024563879910155052100399735723064940285672082028099520388164980218040132909209519747754027825388060998818438415511271523896180995099090702063008108483106205809919691504966297734550504445896340495626159172077542614917247518403346889504725241388420916316800670573068719012935345812848466586918465860718127209995492029845966334273385449192377259397675938575275507918723144435319505054034396170381228174907181518974816209698019337965982159585713705894261101346686556046260731568712052453286765134241647720078751920413829911516733955544626877312934837318174423122283636260950215127009625639440309196319838051375147740241247468284138380817494913912661229402103570351133714997402976995030280119554204989112090550654141573809286387045854339309311553339568540040540340584252045665638560859038564493662730295479927599529124030798321410368959809768654927626010632380755076535085414135796642798693862254832632869428291362481860053857750570051298000805003405314553770174366954290449222798718987311392406172680698654626356741125626773652778829259297902594411841326865046326411646212542327425118742666281995303808860486096756601609727113282154441335615640489403927019908275038642445204917112230865544654846426792373007380289087886720409431600912395059357064340998914454395806137169288462755478164637466192457844378794756190740096346059573673459156900489415217931100397984572044983358379904296302778671830014333489275696840812459693931297770107243416768095912072892215945741668832012432159997136206252207806048484870798727866546842091250283720041359708213671696848719756721356914133807379052281239516987235254590070234122617282430773374248694036338594466161442847204177868814798107991957226090573582570779777391455587479015785397652269814608773309152435827195880423285191875336139707984447967639747453700350880328929454625636543459065639672811881859900521482280828833143712682691254611280477882655715389407232945784444774929291833760681316270017408719122212671193032147235384799773074119334515942107531827129299220769798491945737420537059864694530587548353114101572223486972830263646927984294310194819823764205114614151976206376394399881348215788308190526968020055861815719258535016136983334453436481932335833377396905891407170035912029224619504436254753366754941998924408894179803298208768116419225354061681790086496950807132281596106981382539809474052783725352107617869865681964686203668438076976589717390726769412372766414136291743429710481837463429806552189690784850760247232842653131894449266913899022521734865021663650603267227638268551542466841489354376006931827567956404237739590536807073292609433260088319786028514470659684259354508148408372396409251335904648707870826735107370157071739856896910148837229020288646385657175304784100471067872922223313711165956729663987721615509513941643864953685527298767194727716205350156282444105586058057603398953090142683116515142372733312705751788500191873729073764388822716191474145986515614374158659734155965901972974239244989018461457317305228520076746082940238868767812764472826047603159059223877450480989153350475461775465788019994066571275751612632018995840087507300004327778782334657313701484303654305730873283664677305247573055888339201380759398874550584881890402942875263146828063725172582126383027783340277401648716874521773837917796844933662915170728932607173552347144699733514804559332332916813950286318875794967994677229616208953009462239902163169389699848345634746143273730122369179340466066998931746515612681523041927111581550771337689228358826202829565016390104890193530061163563663851851320417026804271422358903532957934088467723676900564517524137223271052757457195924017427527159855673294572274722743279419021630809888953492603614006778172539751811763139196775871443586243665134829916912234194895799611868239081940406803080430731838943187605168845504113337443556309984772450308467339625264662757305707016025950236214530709017496605744194140359693622188808436719575063833108346518335007979665860652594358763333746450392662020952240944685786059313738250327930903823468275955184526086054392829968879539575824671787716846287467426173979329993267262238927116982121359491953095155431929458269766135877491881116236517473111260036394033212625463847523739669067556447549265237203551953031513585788237470027846032495223272912296260879285954290599655093289107861789929640431533357936189173170465934340368875612539780725143102990058202739134047888321116670055263758547025174310741618229181823907792281317087232136485239985427836490529620283330944728721190289735536834565102984953442442295144265251579512316475393076986471765827584899603182002355847287936554227450892326276429733944092826807923900100863073974559927490605731252527479043404693093704129441161918508203825856283100063418020039668837747593906939793573553900793756575234941187020885674838296966242341106007764093360718744600781328376965051981192655832603133652386853665358458159133308194580595286140642680951812124811341230192751728575880346075987667547250306220427827043959359531909195798212420583692303870146224116924411927231340861821414138391019384511153534531754526947420922329092916313233022348409422093401542969945553296809377576953136865028203295895086649658573557400345903588316477196281082251029572457499432976353211339555467032411019972529062629819261934053721892411606119983126020177742979600228583309095436117407907710777306963158861538900502139305428813555137955418570245293316923068437741456616526686481522989952778067327963475843438793138432155084808386761057451979055127012332190894047214063760845942741610000469913942217231875178902322457214709263506831591879162550299623494290516692204441949701500384923112273271722682726775748788606886924175618066109559744488658982870402835348902959491883828580505499387821241668488464005482883217028122366242120278218564667245668260226288161266824295109644787302329081599574580234350304312284593129319164567691316537768630447912482961575506129632994385453507011023248710220432412384477020340650173276032936333867321631477510342176353694008534384868207275179059161879209698498115014639440264990909746319218074955023876963372839036462041373683829872636095435174046717488083216208173401649681682006917295907730657544320955953687948095155551058533056912495650373805953476013810062298884655491831820197437575436858837591175398780328976535818718697693203046703466669473400539012931229573582002116216125469827265374927598274140388262973780030331948978552160327208526360282551304707342212552552604853228799333131383481665420792362690823162419219771307443781231950942438473722219200703840777950496770474077772457355615833164360915516692204369445114331972257793324901495993762411539645497841091557127661515207605541553121636775966415498939792604375528363420627853374736256678767649168981224877030981382811143926259260967330753823785889821291420247343824516151944456007806205607435685054984891283822170499310359216565332955263368868214789814517411825261199516155370574732239845689266721714736183771238287507669823283112207928437369061399896967205397655965451163202634504747852180124652723004539671960743513103200975915153137522901249485161034986053625663859309170061536506253790709248674280474407837583504444275074836306163193525393727970147975381037611936080085469552578075433137081801041769889016306254572173125449329735545599006097457036868352710911075896873255982831812376997357067447746911084415587773995904335365772903904296025678197433078446760118421019872641780461709038311146279042915634037793968889550180483358609113862808024038221953357330804400702168502040126588739750033980446597639120090598181933516435723695809117879339867424961639635478948708324774813354890673133923997258741748528130680037552401774340072979862853085898728537720753980534788412566365820802547069765719537138785387336118727176108025987031807827348342402568131643952601823456765835533821927474179105696985578166101887096037149092743333982618578935348137960473491809422897217851968526421211543110231551832152883573149013028223353285058062818314954191842840915458579507268669688578559066825015921086626532906069748483002639571762763337820100270126425612190936557109138320327995994421952751857059148244279548634722090894554160009458433273866243842073745579330212430814317515171595510140788302826548774753408600852663603794096374606621682080446559640632026632388048449867086491187020385963849648518392279025276637570037462252708189285157910379419321954024962489318024982623833137799766108301590334602077929149842268483268474377993697021744510096251638297260594159684847544709092735568591636160649200606290709797645563272667797804455406223025040516217993266638319610926909515967282935068447221320197671653515131686316834720362562005857140733458150101335986341830620228467362532349746295781947361963481542291149281626170256522040550280235122713444056372111603385415854736821875759953810034252037918734401373378282563246871385092835236972405937347535337444214320280333766402252509149829466512706021318729017582590620509667225714419316096168604554952096737964854763257283090261050606265798971416653690910398530953816546641397123093254118841375884158252087108645752999182518653778564465218595704736807522726631569593507233519939888454384648757533672256081526440285717946131286482502503099538205212390599079002668785603163514861771105193806990480561570646712647267687560349418677359707677003627509331394330978982800521691353834105970363587571128210927710379702903431134959952823564867991796788149738648688065453049758238781729751502022975673987891637325804870016859983931034826319643719107339248690617453514626711234457659129106272782978517056575410797900758072819807990764809949017401155458851823685847443251317029267430906750178453507024350596287383506915169423922551443043387717703998113393208573069925778630587638479963588525117199259516659627906799932450415611859112561204271868017535235915789493565526693722283265357073717517113659775659800189952447987169636878555425152432655370477191627115570011529158128900568033242592523723493303383948544073426880401397570093855147908105764958390269131979889537791280194602376053990532790173239224373834337287140917706043526794661778740559549079430933511149569659460609626401994361092069922836771900318230635903682351156463417025021504333898208266613662380345327918963942715440717448916633614303198012601494482326613801361974951477436524997799293910682298123308553930217000854609102126758583445056243961365460302949952119340512715455089331520222873210844421349355601629417878807716392111214910568393487044771954143950169514902379787983210596548622013454489199440787871492281921457921509902448348508255681475398800388892594154144140611940875965493700108806755937652652460457756120760056182310078080018840137555487792024936037847127658212974485728347225746349412696324893742815650890028380643024298585762112314430673207131618629479981561616880180032449081109771061412112393311832796673989995029639426709148741614363716397699131650481612711387594493139385014361580864848902524873753853314328240758881187718279392190426484252989059571198716078874493945427443131127160486485210971271810068438779921656524885187487971720875798090546109335916124766005059154458457526883826611465625821428362438943112052183248953626163716082423259927708937124346235268813939650703735221315904222357322487730178820865232690680396302692631377238064757774953672810553791445807315030732081051016581823405455190199849512086985580355828634954744945830481939620575434722172704105541331382971759041457852417370458572109766885365018469526051786330153870244451502657520611994537836365365656280594131229939555082375594017411677519222723226024821136932843518150510552116373357499654562063535182904960309298717308429305976991867769700958265902832124047593604472214318497735809540484586726373602477712891637651151415110265014442719998525065542522865919676319819983686748202715900882960351089493396973627664118921860192090171114061041937960675077474188794559088989164359154787548451698862348110198601820137778678233005475294601801003489167385814875818053090031992593083633507767603867226610635660544123893093197502059730606140519243543330353068570639619857135654934884811202905578329122427197874175147939364320428359907849387362337800445863444038606426951896390825468711473104801163411292328816584729061597250342055179719884683538548893148340042324262343180590910263584519014787736734907352385198325331368443524354005830531146620712905008656214371956034005007662496676486022541814040081661274481946018196666212005763377154228893392312815911607007991696135848616445845926746030641997179055064091000703683067458314601547390220704477785129593845219658586788797876681896309335233191541279060376953503022649006478148670665945480341346048530095131473001790053950508232295544349393090452841751443913663796990585497786833507499478871822175771995185690367083605163072952655425906777372622146216048164254810071585866368846012313535893371610070048925634741155480385399566824520136132201916511944722326764575108045902716400830612844116801992821217053825555087953975217241481191229915539853953793620586761902526131349518732904193120898264146441314077851824875075343854742689415005816512751753860256682805942286444729851496418620346456051285902132442176193282931444460598647667943001750242624257229075714571403234061094672394901685743963725729295162217969170798077901572164101061066689264615775430387614832476234255135514835724376381013122983041424749066617866131107801400742616697177910830953780155125499658746746964323062908602227507764183434827590421239214295658000545471169853403105134134978882327652822908960489092674026036211570034442786946431637560735074027686766958246035852686140391061827641828059703948450996848605920198126834524000201129491792346441948240843112424094759756633640811626216399746277659698368038359244653907762322456433811643487019662396638735242714595804997845594586815462212186882667680426082683260449002236496608899005097997387527897437139950218361936579231746935901934205091365722277855546421108202613055116754402635782611807447651539951066862777296663975174482506314283693633854616810101843032399123398773920017047986109158893668544855353217569046879630493716954590271575312847463909630654362624779043037501352990248517904999199436891351419011341254859893707151002513727814481146030069036843930465757051144076534697445761136341583428762768161214130467831128362659836556538431960536315236470397856308266010826361539357967624891055225213512959698478929668375140614751970355113910185047319912535555916664329033229829977188144756184547646120611688311282206138738311396650365729329300584983431602529675832940813441750592792266819411069768482775673954299506613635358445752987520756833395049921355271557626611599551089527964709246390936587213804957005382343736350566553318547489682694565321448711244508183821144114273578265687058850398154176239873493276325687439846341608252704769802676214238966398713856106853330736253298166484690709824100061040208030472904123186300024723898771903407253406330307430748457487530400907663474515100645186804579645937378211784048310044548747409532141414503455754320223039243564532308493847821826895642881444683701595701944029815010639598860490360484615926232352894472685846881699899258033963709317310186279708855001714819099830391661909275849507583200327162496070100950314733922982833170942194122566328955081579422076571485819107656084730725712231906576015150270956317976387003541414029040778524607979963178833858086221827781817098829797996229572598948659557875113271372772645758730924271390323241438804901281785988304311959380022882499608494129201055303624638871223369586643312272234533499352559379633569960675312461156057043086214720593436108520119743565121618362151640164967803349622062727875497266487339455505426828392073652228372769534333418642145095986157410764700076686290906064894704479542932565195190052016549512293715546999458523692444695645289516763054325208814586658896478310105850423509780537068241536300760611482734771548199485589752618493204531905871237350010646177323658853425697687668473359279950724863405384397183703524245058138705670256933962456677487625579185286477812972000816476270093347806945406876137351553965806635484529247118047829819566092898099501602491707111838586420919968337409018799135493261238146921708304067955918803365633826760457972856482454838137396672275136922824395787296403389213048424479683901253093559391211468346184931914264027449143148236285643593887953177326636522008092899039474602070855128847871163845252739687164557626914135988071959330433243879002059299546489745386063246590515663072499537244439325070227335970248503711110915471575425829223643376308371713126019518835328273398786530298631065391192792209714043587221164121273350027240729642357253342885102398710198780826732325777209032293136987964037260238828877236054631219908991834883885861834643962464194376966448328347745379399811499381747551367976130275534732895435063566600904846740159784258546043483993155682669457099242370245157352699758549691438857624507683146845454993829483498214307139397852896067518001938819816139058443053766413360893274140018009611370086664185777185791964654456432984097492867091511453508962375434732547948546366550740971676929713327242496345465487080397889061244080740167255788553125168234641561388475275644525478336126274073357595813813050037934605930640694915995277715294142663771884734068076844531379572282006518484464489227128304901385281832285117807600306016277947378621568909566066251592939608716455203812674530794239710457619052553167300778261785903115906799376031926883658597390665232616636836974528110837217534503402244432241001125445891270449883153527236922804577319395398432622671842659389283881104191267089714473720044452111707030094713894837689034978275741779238837486976454822145986907975136334063786182953250476189519635567438902391408902260831539609857274351912720746108622708045180173642466895791591886634544017783035031409981669623450161395224415818282402982282541979693679474072504591186390857007724240680169449919674013192607974727307183681176413749661832595039042743018985437294861731874078264254947893519731548723906118814824981744027911696554254796872465125192310953444961139046372319892346434900949266668072245360059799667974409231605735019137800306385927241512241642758637234263688908649245419284495743683759542704397704644375190767346833133489464184843942742971583276685961514773537421154322449415371298727168504056844674888041139988473532622246751162661777077080870937673917388838504164610089678585070284373909753960394491246545360273459218731282008802764335925449692472220615461096498959943183195068090739373724284636716629961458349144372760596984636773757978991470379546316447958453722126850060979018212111538426062579581374908877404606031185659708687804523850755217615360063193582038926198737911604888883723636602974131651830788113623715959836156352101411540988422904588675061052181102215841785650028629088433972337307867711489161483916802030588870607852850742564188984629748444773726435795295741334401714410991164338550967130597714557104500500440229950367249375960120305507264405398701528125742228273316537497594275873060761841210830045530506996199713048044553403880315765212496592913091293167294232451763732956403598692821580545603900990590499384290066191496385522371648521933068827781053399330804030133506952647581978454896009693941667736896868917935478715252312133858576039871243905771155617442138826414952705164703801972545914033369140176938005546195642772849002037611017412100815024488142548871546093851024569345945295670304926655339779334634791879299960490141669365343549755837106049567387419504836452271877647221904330512504786488301124994190688036313144549359763237944923400958970604928355628175558142326768476286911107053403738132270264878835674956378843949071688485572345154749082111373187657365282037819606148843098175069331602007001063372986150722935967648045228385157098851171386425083320594525024614828036571506763515206365754355856640153420761654940872567485371944290691682810037513908277862179020653225114974088893789971662186177717087684722641841111487648269135645029189181119697393511998540886083957260865476288996204219660575130755929244172569940947611601467129415755691956569797865525012007270923948469301254262889806559149468230678829826930353073163139290234757596274850821656651268883214428552352588683221092032275751084843495302026903527025361366583875365808519692994682170627259840555300150533790849844039687258919227119376576649697078240460650623290234295079532705362828790403347172349464565135238129944801683217212793321339321460179488889214992590186202094726461174108242581555709010028384248230727881320379642453729253651031885113159323741495593970591253857819236992236739105869822527316724893299262359162587280757630233835340825778862490744463744990876346891795803238626441101331182985055106540877885104501706870371912705657748026373127993702319600147388535730738907937110809880002918746155755085038747296093916939447207267426862068698436486578815730556193336763490545112099369358724254004131839844400517208838322145559454856208882689949384278282069628717043481333326586572993455208504163070052506436601531085472245715906250041176819239798017095060733908946761769363167623985303582607188227041437886660419726905401185508035424913287025268637259482039937125319144032412956120485544019179188616397071103642376833985443908113011440743466714701651378156369272720135347541921490741065675352068364610714448277371175019194477165437954760973418018524519320324605966343442838388261600970788827295106982293616852096810238603538698600871365318861612672729101176053222945014442236745039076646740463313523824204614507052984218175550234449760264248160378404239422098175752298702169271467741489827650214184010594534696308204047332945622966195236640776847765286848926846936438183299373607088528208764404287610907095000994887479605546303432719584116540592216677243747000810795236099140170846564215205316525515052997312503882016098757989055268897714707339404169012919010158400368051161719708903268510595497142897169129285994698787585722814308677596189436544233003622355129761608338577177839193500548129882060912791762367927453319657888081923494868028948442185559794154260423026486417070549095401258022564095869532635638264668377530833796851269261760330534094707642834391975617890188412627934536326893335663788646836835379200370429282939409072103153275864966796671128731754207461553454117042513470954323785080767603578512271507330283370376100149698460523983593764222915330583821856787454664342428744113791174682734146600760349054576606565980187857991260602526271646262895829390100248288754209667014037577168617537934735226087463888068475384311502569189579033225503673838077486256633608814564099225584947062958691825600186003675988925683720620829123359097464823748494874937702890845259138552048099251646602052648070222809519719442003568522045580131180732022080958006083204009324272741316471759407638782117285800195451151469515037003467746902059950784840657483012653906725453936246465497752562863575218783545384963718833281546099489465179142829270873627374615434607306722534574346327269382315673139030141223069360121242919273186964855999561060016301520067129007710483774050657768880867293387479334236285662183974171297217929725389367926232426193281175104687842837117263180524750874993797682699905912983891806703583027532953149188827487691289482240447441649700800929267708659891844165894338989976686764843402665662186641666023779391544536463319950202277394555622976771961983110506351247163467600788097847070428261886154261471734060003575379874738928615181121261295937419353159684812076074341231438230394153901223110002442291197811840562303077265489226389574590826555975206195921532987420352988793719325004680509217294338722359471917124185347591773244082125112884387638888374989774434099344526498773526699205526331465371262294704661586794935445031037889773407436026612504039329103067438066920492057923923543674115368983809227050521788731337643928191544584508801679583116150023978001596926286084064377844158139253017104752710845315752260106117697063547105598325411289020033104048560518912136832127660419671620671524218560869569853036206327599243962692202653622945181978699565497648918409618379303752034840284828350932348416711317078991930031582734776060697667573958202016172257722423129779756527248764233651308820562823761101327101252743828097224672269714805220606881884881135274461616501057361445833199386654863958693711200375483069907432587288076134804239912717809262659398516868829008356602831734429343609558866249986437894856104506817917990810839414001511126547544409196847718014985828535184383015871930420295371286644811849079249324796494926683862884572132841086452283975059452065265607056321127613696509890781503212167120147704553348536010981353719166413169302487387229505888778633607556347732541295850160460930640613536071104405390937801208178843687582923068891898251660739595141839981520940978517443552374986979570862828833747716300180190065945963267132770291533509809321839058737691042479455888239121630852835382584220892379355368394317989721912933654111618996858685106729377835789538868448606672134098606243943294477707632348037240318204609447535075143119143643881009285513897164985299387132957640577503157490498396531188687806282873157752704646340822929976269769394666705685771463889448223821212846671532722697582994222877994656334400653203919894747744119184845062335506100049578449150326764510062253024661432165262026127511082640358166499299397385151290450769426877909798785032815390672282238576381866502499377470871216854652535440239982621908996389627354635746847200673548815736145636821964682473364537361536805515482829888801261464503960473934852267765943466676746971301631600848189710471583497607045439802301798493007635819786858235303560952243961703140323102368191227558508134441808941192608995922498186969511727458467459466379891387282180978448593532363301381911872670729139665693023576279673445504052481620797239816071783951782432019370406134047718401890007244291247191923003891575540203933312702904452538500924503916726051364899681548704624919926187147803715385776737611417575166302898062016007608277521375711436689680653419463936879224657509444964042685092971397939299902212541035024031524864584833966767888341448492665557912472075277560218592514801012587062485616525302169675774598144338271478425506372229505844767741707881620927701928659405038121969163526665686403735502138324491506074427440055852380263907958566430986414441720852880470873123205322069927580889707299336640698243429275935169465826947619291863628217950196575087357028728752771800814932463778974062990987847721986668511355708338253477749157015168064307183939997875419599718440354270399934779291028222227820491585013110071044312728742919999224011745037070084127307903341401877576481821003633470632570141235251286557307295599981900318299875725868154302417807543623333460582631706879740375269003442491868438473921856922727848439928546843703570713391174069248136711411045774008615985698353487831039764130947819423908105017442312872950129114547466197211423134280205351998503901833033665896380204790589718824963415934882342668702386246338815111410368882510117794235015485511976817890022455130937039307147263882521215996033802125959028663395456246058764280081764059773206495995120954714774065953033861615358589810206693782212466419207364538043715764534537287179764410725639419956401635962929010084052945495607439905121066563016483159066098306270821535409128893786296088546313925407937988366159740385395618008478178184191010127715437608461761204651381894637904474786672674683722374737372594784766433652305636585507264568963304971535852601584035311829519056264553207357459127684451489566712614119880853255993218985722235852595703442261591411776015127341267543090679064642055663187453839494824569934181990922074775369893299253993974664361820993166802635874051900955828589216499114044391702477950169544247148296041034871357389874382311968322320269394247803387142543576884208206394886590601104429360409128734006959596967132675050655387533711621475338055353185214137299131468589502308499529824026677416661745468675215188483959518991874276283852012157874337551153113823965531904363901027232353130240184429445527653636367474640191287771794097890396168391508076134178812114285424636044317011856245760645790654023593991774693289980402534287272923783200831003534652823226188434226559015480127768895009161135437442549301599131578850589867587281209859979809437597673753826379031814281569289418396993341826241192114367354075942542457002478607683451890471970401336195276800609851929177855461743606568487454668030768406706349089863179814260408152963209443241482018752354595538755813739033184981751695730381139678008601540942094168507868610077678703968553038172945604835573899800349573891955553245750960055389743636991471025081654549660622255738449483806350448654545536137498875889531960944039373216926091313939029435371554324551120202514766313344805253502014804259959536265434231030850251630757758991438685317943154669230330102505962878769084297030785169891459017412467490670160426648743156844572346078430925129859961760604366846329462271739520486430048834432333193021081730278808230209587714017236151437125929323923949257534840387913430584739235991768577399595079715046992898982505562471200914784789436875446184040814229739189932545375573273765722089066398545454663220988773569241035299268210598230461095569315356850065375149693177714999579347018182287234508907582392414749572700244042662051501384059991297163706005981188063572632347900672760102399680500755683913820693747701448056728643126008313236023579028122303969412618989550517265081468033376258864314272762190600001408418631574875844557174604593420772335999122529213298714612742926419044790547183445133751767294885854212630120740484552115212952886068090676835709546885101618668672511851712589669182268912190777504576589100605348892399737381596305960672716080370664928890709811546614430465997577855179357992565971166875190695877538115657367808031998093796224957811462318284605310826559410660876164464000828726858941022323260970535572253636122063069689307171831698749432859865916522950588099051181093147345429431990668784239130021043769758320442620039335137533196967986527140822450068411341318972764868123201116237645566142530358668141618776691860931440727052851507542728188489136315432666807274999000715700295296256360985759190162700438651540687865831409118065982266349580556384204188382244395853036462422505774490998159188255910240764406497790229873982199737799344487994234794127049750956788328379267203317174245969060396693818712923576233287685814060860749331191287215944386750021055271988136945274796715251363825269809764598056087977936430480465186267049904598062587672453580983638577044335299092451453323213494115773349090390685883137897031683361465865633690296528358897200148156467059339264138549799827788184866302388739734341530706462284166853467649876994260361719705612826087558629212642636679965796109852124879999388623278955368450952586646363317488910498813148235134057502535048364593201124542060433490503693790761490724354661887928276928293046976958597378376435617246410073501375860768123107865391257612959735343602512231308976677602582861596820685047648778017419104477580534033120022032614048210623980191134931461034379910571990164799599087321446777312915817200124504929019367420742544636506737588543303761030895630526990126774917650790533227360104027948754429592570753485092810542144976238996866220233491794737481526711577278928189398704762866455546372508701982147273358611440097850192749407703497811755009584659575286803900625871803338966087203003580610067084752626015182094494183684932656173941383677747371981697640997423454587802228809039169691136164186119010110309482553581032957228327397576470198651205569135350999049273044978734723030030108304929984677648040306971759131605456542308083710248313634712353720299921402482608211859226124133962177840032111595555761730816121889964110261743150541499894754863703785195630931780415405690307289135986292101667684776173753569898349600675416502035074900116449837502955793385552587030695900319876644440224872453586135392151307989765617824198999060589972946613984994745422218915367750069794436615442537373606983411531955474479876808761357721339557147688307052746725554366648934843988211494231776438442137106715729341619505820170760348663537539852502693246248413853181054598627366160403577991327419696993210546784420901933798264218119936380602129307552100701011206040030194558889617069429374747126329712139195552227393502997925625713390591299159437043707504559144201541751682279408653081977689602747781689974778509469955675041205675580197526229537855182738390408489178512842368791171615406875498906112132923841231448138493478516656506358795701786365669738364459925788513891715669089887068844728416703787446934338065376865068539870594740239915670081654090152498503487048701919452754568403714491471130672632040174813448280873020707492859683350015491301628978962951797112582348629410459469277602556149440758944764173511290484110830751717305459969741512132784173150687572809448172475551844782340353422110806180948412124439671086915991886639800270591788075171002111509759987310816613066758421077533686218781274331915355895163072866452743995647769102126135999196990023486332655503506651358311987032553513962092343921705656553540430211068665932699377109291185875536231825144518290052535382598087894739572429155449586230098632073963641819687397806668635756284498423114087990423550909684969050986678357059677527486173778251138957121215188484424577742289275407529882796423479202632639618303622914968889115560785682161583527507095444649138314948801438097379994183146882166299364044126615344228233641782480456718894247870257013159536516406357428778785488773756093797774560753723437579015905168589214626102009297934056805015332006963911488616832764582861711543188612426915409077095405230705213240314141804651042570885402798451389767860659493121316537393753355556566604380902299281552603460087011071620433792407846168079483486871310211776273598293913015072683722312441575250787130289931347208303891091053746972491278260439400041149439785462994576933198878717911008882159104500760834226600795149695208532306369350548900214325542007151675781314307144815305417522938417350136582760630806540331483379790720356157234959710537321398402402869165473835925746885110203110729215869230552313666892991515482956671992791026683304454999383744404944927867158445683351607840528811407378382677932395501285364137746959135924218544360486143501556412143806146609698207309968721894869920887998469787138174697937354645160053425335621545253211844539649424793782383341183576293691249127467989067070360934526705999941668899200223017008599478823124504144954677589071129145882037691948427664559049365034636976107487370613414205451118606411139150119494283985271861485557814053138492936721204166192486146791045605374257096204164213849515740575678892286792562545476631786386326455597146890761854721478621388710799919004200508306326367539891491613827725516590246156680174687572450719942947971391579877915909462645008411420067128554237895367011490139310163199108896100870270523084146191407679616746209693328285727534128734628553434949827325062458338036950842451500296693547645055462624905183073259554370236938280462549556566955351792248455053987291479326788107350539022277464159067123299356885255346800675049710785878952087697503967363009486817542284520222073007835218599873959575803547589650791163348008516213726685322284185559590610771654418185236027990758617404031643183504813958103436578344537800379552352763092820653267774343353400484799909899895714411069968266795518194452531221641453705589505357776427859297524756848832548606270489314138450678111590112496570202455000811075189470723710321197346582183615356547056001717632851969352869352046511515409453397631103276459980706321473372620046215617956243459877368654224507968965063674880965142613481591343504734034173094648247302011278818466833992206004074849029039913589944334060709235801972135400395741258897012444186801654912867000374893318304436424075839399818777435682686995113662618497406354238125371456851074154884834334281213348035302390969201385103906353378998669812268131166769126749552255853401365776227421444626021626592288547015607985517528556804642698926773357782086529929823220153628284066118671168321776515801825216866364172667525326280714774480828098924299866333778597001858751366027420615971625991400803311972545986284771396773879747424854877158179448973378750513944828496799798120686325330310698046689288681252041835144914722609604883093439612520338884862359950839056324761313286408854837421082955085450489674674899343951254472269922213699711809128305887577740365788340598578030289730173153059974456202311075001421970395540848013773023000046100354467641687483449463691808695584131568742818432231149655550682571042701665888230784581512754903892670530894358973057423600450270131522203477236752263289282100921144623963944614333961214450042762010175907488469526886407716776355226456890427775410442252476406009176285986064463064050556180344236442256510467552469171316157538518235813729749802720818678546872054267117909470424181866844613626341923669519442641226880203804646624708825587887654912738658991560454395709289316599036374406326701788762829248079453534706759553786016558473976251683695165551388553945114085168087835152858414277104080829496754937303747186344271372727127351703206093798431591774488083923887954507600001909301294633747256200153694991021097912848383950677915241508092434385113289256126602016191468739031410001130919058479960968120799463761400021781955874274241530174315665939430097106991589032617467710384697785548404560807869196396230225213823582207876098794768488292698758463306913387928431458453692703215761107189215467002627457289171122171869224023834865475594261332879405265259410753827258978653115673460079182236045841759076726258165193322062266140344389023840518858508253274882495198711184766982920771435848767809380839679513058377291498508710619071325669358109021690787093393422656400814625901810486492930705914649464739475762902686250789403906874361446591383416358935533864199452571643584604481280001462459765544165426705625203751790813198171107648648815583733633205305203509201829621506280449854765063074549009990984558362813195220677081831866204609095181010092417484484066498349376920937901737205628520763740555021563375792880222315983457186366365066238050130818573962617492904851362963692467521020748756681029472113751854489063546315757049798593151123705411700538257273453061599201284768631749296745527448792045918540901867063527728263226779066752099350856530979796130435669079903668098569509447866204406499389967819084444853465046788177697542912137387206152891900476717277159854750439220719603393182702484512455542009641893446066433327343812706507517104040690186706097972726549398840560174715355860724399953179177993591865067748773686036852564812223669748887512434289435584077769902949408908186465236113252774379994329685503047031514398680602200706347425181161970680845074250835891164016595494199371416544605015527074807059733245196696794493749736131704757449078193799210179733622450004693195095918835389482293643905764522689885085461902360295598603713842126634516038558715162931439186686419715151806787059217176927968161154027681325797593305782023042604278036760226697553112084106652207805197226534880920431042317628456662975842949181928026057155214462374021696561149595180513638026546411726045860789222648084437366548715574076976766375628839865555632116949655748948811373472420959176430777462271560382282349902429003004992965365862252911742013137371160128173806985648242678277455638978407190266126706359916706704683037308194358946841535909696995156107856306345834399380414480209598438125955228596874896878235465442662236796060152604716289178014190051689670412960241224002615458316079330175945000812124214688485066998345633831950820541467894058424300905962138363358822126820877193702355585974239821038822639343189070972596896520540601918148910142981627342073292346740290847349369534088456329802213665670099864196384227220815191148136995199358706896271229317382100338934869210456090814709821181613294754366768179200242143831889690774090306371870562029596306390033995040530323754128428207513283513044339208087516920574957266910393273500853232521236954971529458098504577442613006577745446256640589772941933790106597448957172954788831176359216428413358177111044612291819113450653262579423504458926503222508016023457116379142223927325821736763923047447633372993896853501820911514941056337565354029629352692392935572145919708548955131127674203775995578304046177508146801763553909574292393035471596291329883521469646889162151450763524565366491923873283773464604682366428473177780140096803457045616910151912185067778608267309369694425497422840361909184852703832032920462941077916708726884508632196896235503432791568515343094570032298829827950727744733097575468740985247949137254040713809510448445433212647425977132663378446466217768798969863503150153520212270934266681677627973443400764719003979807982881989086985160851503293258225323590121579152659756377912582254150403520099009723805281967702092971808526783432867818181177384927234234463788342453359144350278609703714945938861979732729380837410161329128884891609354081696314167525367018595701768306382628471705698733969098754304381429465009381175332590211531941147755443321696028197940755799005212855350443506463853235928618065870280087296989726006627477755922173261966501555947025782726922533043262113987513921488948928339192503518137518039848292052485918704930376175744195417745772757633058858679779137991677231876248568187787721477229959009842454140811765190135699418774151982386462973671144311395496936388509190826901167494844321489816894977667331635424148890488715387567073073821234755737576930274682320883768652329908173666379080098903773446030033721918035538169791429375444639914530454658481935999195410431668834203201112999795780316838245602296129958218202758714982718582863393105512914595907549531208211549949699467657941514077928606284716579508810329998537647105763562411107204522686867723992499719277928976684075357588807225109689743789907009262269197371226663658275168439665293657969887550398717946960692741730933591949583859117570396888784846982738142411261272734487990490852545291906579367006851422585453146527280528516277309962185316179860036265168601734943354229418060108710949246635595252584580117374402717020872722698566478253732566930676812831230059328547823970166529612522250006154578347501206239496739876699017917403059666391346606664220119369170658674150895357658364513345576198735970329304013659792200769528128780679414509142185350105734382242508644150991283046882865774598139002663285413062668535139216960648993226803395084402720506462519298696818500644563817616400966692770701071384057603237175404268961766969315624727282356386184756356528822255267420044026753577171084691282654145427019470020021479242960453912769302508946794297130460112522514739963163273831971712075228128481120503556417806984449976639945750739414556085932990655029251551361537342244102880625421493448724783296098260903811913961058976577986146102876850196625024497136328744500808662135991289245097815841340013237920020032077644959791002206470404127215681303793390948217574878191589514262197448276616640256779783137048451494441683719641330395529213196696887507544365552632678364661418251361728821732053236514892258121570311721671006209170007783339937872689828034115691330477638646137338679901813357149514037459520770403897424093100346641510823595912191893767053728782826562267841142501710509936792323896567576326165231782060690164172350142748079005380558317985422172394107068153003583413574255700969764887016818897254061999608849015808636575537948456998564244921227575918376765561830194871781181318389967176062896777718544903167618648895408297831359662198130048219596036601504619894101052173475693278414129628946063893684223150967331290324168627422065497061610737446625488102432242796865812879949333194400045181659368256327997840946667171980877234041318933592402398133301086440319626789514120070895545094126790591720419562930807928616799898778266967475901998594338414693350640888655144852323982826818692659504878189981190338775778685818522182149156998279162681199333624140376414445189948305436746307228066889290171034895956417074805685157279617637147118564730999162118283599679115332573410143865602870004692396465350302311547398910464386694982165092330937769315155954661436898525814016042542543643445851896191429629608909227539910551780597533887412183861812642102711538758173446492325755427505610243791699433258402624453902216592426584167455810286031536625711428341813721380191435018757363542089749742339165544130997532383150679383272175100278114181893708380414419841671874185083889062204496088052678813219141534762305996386181299975898276739520022359457908967950856799847381637012308296061793348236098188072598521747861057942650053297629755864000636518734278036467895451907810268742105026416368444840483769279395888682307567376773707090937575456509002943803309893240523262911525657761895727732789661441955214906419727675991599689798906517159255325632538561080535441388066393789750749853657065802308249405258261080469826882178412473269224899448478154805882580821691597877306283217611141744895152619777388021604616257019622798489810580441987862684422492403448343657809822524350058519533577124438394943521167880075795666219601082241290589747350377672167049981434045588567775959131354246937519102962835908817485029777568062341959947570142637452425769873897013247686411291196127478137185453809674273942805524250267718948287387064269114497631743315585426541382352893977052494337219900579649272892924476792793768199343408552980498121342948540674542358934273447065486609668048848920499721748807373220589707045281996908424656889506627709712916916090854432407810082687242852080506692772351847679505258382244289600182393235244172129728867757115249841631777954378217938092803336630150511895662610418605187820657305467270027206438135669158488759035248094497362553151995238404815302516547120553352082462959042662949359619896733705202351158663881081558731827127303023604244581132782309554419910843231292896920708563815804316068729647521880420652988785056372175507249628517897281728262649149138766702887019873232540801026895844657538018162029526571709565900420511979954000034945341144365350775446532866678177236214178138165569331088398779005870968960771266173656630822111654672118965271470469079047240298407749475828871262787906304535704531862292922290445072382273291940566828374405830803402001582152678719671686301288612699066575448192092643187927944368953696779732026933218153818880740085933802698210379061363579495905741271031493667532140177146161721543989519081860825448294891075431469264550423468063039612044354702222837294755014107752039216780046287118888696474477836836445881158374726806807977328516550101686546019980931097736560547530963072323198955681756871551847096180571832896456837400491601915302525240042491376759729088336595995670417391118975698044319583639327763409025268042445622921911610683995684908073157254130129057685921537535354735872790030660676479446000837743001456664349602905823552817145720442856100698900603458075707541739792533656627238933439121593909533280021005654887531255369713574043738329783392037323207629513394712009189134426888159916717537792870488818078062869790023681954387661544558621159198612088345144519339302679413312658385845210434866492985031418295120525052250945479523363115860368357506199744606690002584129052770264718657026189773609173928191063181387414359767133517546235695514271554756904220104133318285000656626248752260389336413366257612888551219832731657877808859594011736539043954353849604794488024621609141758782967049160979304015971615205903505680747021491914173452084682209445255064874365752899669346634825682512525125688511720033685038493327272800442037776168116909040923266661584310140815098685250940207268960222227605350934374547485137547678002543896245250652611385345046895200998242536356441877240253801858325183340417822576672114544396755269177466027427510350704455321909167221560897168715983653954483846053247629152795692372593796612334100677461739878915600749575425786880417407677733944376210399998638290449980089707381149413094540919300223407434549523868164182143692854584648113674790824252598197395249778865584356893024133128505641659499959298609742810356575856165225616747892368694086020464236808430030256142961668785044583156393777319065466551936267314685122965933435221287272716614899068798725676958773867285761386140718655100244582513842537025776434195440229344641292916547609752426675942632204956268181646669870479696854267278465898422065177727100320938827539931226233012839475758636292036357077257185171645395684148578508061619858305951817849460680510091180545198251805691489917502620406433494614074726426516868300659638544256224433678035418689259483979720337822053626180759964782670389313689713313177608582693748752997139229061119251298901239745560803683908250377884409701995458484782453372155544791710477925124964075671563072417695349622262727013996086349329033648170645106636359641308985603995552944603484293171475269393277360865018201974570341874568420626602215675337533170608130180516955613259404855690768969984121698629775294357224110367199034463916048665042487271303469369631965955758078554735092049599423319014071960460575596150686042503502654055207454630605669346821817676494995187583765344371101898803704497585411029587553407121245115156098440723862852052397800116814603000644592229044298245361183702681085424256456322013406483836051289519392688594059072549812600653977318817388541297050214154369708986343530052386140630653857377793559507487669965316536196939734817100958979648393048121604641066623609915065119147832670439687743910710589600648887351098136627906248025064017144198034867913490732344797065711491585584587918061016990505188538974860876957530971034967333708356983115669629323874500463697759803689082055190772908939337676925663484080698040684484852801096890300523683437035805643142470297888405367944292437502601783981713915196807083053261649114764448632738573908224102558022481233403461550136753428140031486685788848083774911671576203396165369208956397697539311890050461808728867833349127556163689588073054189781083456469194446133500995014095609028382703532187227592697649545606021399125712988673318034187831285321848012918487171538693070093563766289933906833593445796782589218540244438436903313881079679007246894785524165375371552441430135178756940993851056416922921224583833491936173469284161956339518982005402851371672275872653184874188435837185778214374157910485805546984807848666217162487382247359173241241327078428945981213544892955024537060733386776455999677347430056672303929685650769746719626214010583337327683972162760014480970169804736015415970192768157293569968072535143518349437181807606596513600901611798056614438318144525136496622730564189360360265660220166224715495541727730401565588857310430695930987331423811271100033532035753985729182639759196648107281914121555068501496677455476127711301395261114418880978861798036279595919298351748713057355682545309367620173736957666108832828144146188184614087810868417384202290834924016228736278977537334480012811943357924829125367239345792232223718792609270993601618681043720297292291439513258072323866883609247062741189968230567478662284721896385266527365910544830122712585384662588777412053462271140388969358162308334289055349062951377567824232685345120099939808026364437083158582510902095688175031762925639236897388789280322323387986423626666414279398295649600139965111523578655961917489829685024550352814402398904632365710143503820957757916058852211437629301433531345215640608049324394342539990296611635733464426742161553572302363280720721825111865125742248555799189546917232256609864151413916607356320509839118034117669912464406922718657932816860942100473124680028537097472377528025140429949425261006101745699199135809187726021797592518850181557184600351107120214627042958612009048315913489590615334003485621384601318910139933072787692062856068674022670053535914783934332048833401098518033660142967406854506179653673688549061028638020928800403119812011165961578395306038087545069847668177568953037778290355918341678982476568674536756416035617288838609985057923556305705485865333239072895319558247664875462638671044859289746505853599029671166305955619899863802374959722374845091899564274514224810574862323914552662544818472591967299761846700762071546464371117315858052338351001015916723274635104165462181043341072648859533408278909843571811669865910404570332810945133295347028233732733552156945481874594356930122531992695836493424839635806838859765385239551066281968575849737806798217481814191973690137696033199008847334370371833357979133421150872878321487235565837217780951537854813791904597455483390887506974349951628895470914806328589038095088273108491751216923265390762236493088480807953814704729689616899441877324856574092487588776141934478278428518343501545605000415235059480039588638345243066069689787770892174595102318874538365817989815959671765250234266576087393550190187064645103356409536659804232499616899101900354742544483485024502168429007526963922355677555322694776915625131719698207982695650321248687953090811428895046828370445948540589275087926572725329446479218365293516932891439880245377956365582034193781381159277552039203368486039984514305862022516279841304871083091503266985135019908921933732443906092917006277413490658830772447713516015561770691719006706204536849027928984734067951537369976208349730182237633980630662910352552800844972863721226441374000150664947613891385230847168826740458535077082062399541663975902887592163506819396475919171004814378834519880786893706992719091250314729841027962218053286866225322064148526040270596462751453170093007824288563923220928987780746129082681873389564753590126634816727582898531463964059943121265028333778037614924211138223766307873434774340533164870495148898634195834832150019833665818920953105694467275420117625547158458851146213466438710708951713603012559506789116650444564226202152098631309234655229981707963389286550694285112064327746430338335794849589953684441094131330466424323106772423207699741829275997677220882138359201819542023088231599065778350597894741296920718703140570263546139348870019695236171204879367845261680041254561728232134675144011197117401112884194362310444142007783981799336477255231653174014946493993243903997552432074443540242491649266545217479760736448585637991896020568726747947940593470590535631145548242718428421655393573896114448737753487359508634453269868913968582184493695655048147631930507390124346591339924855274483471173786656498532708787239504470171745262373173768509430726976826462877687009097387598945288598624311432734111091222876114041821519449981639227298070555228964696239405247937601363077047287587772343808182048337929439207158951583068988422631532224451929121970945910897481889294355888018284096125044581176036681022392786118997079315374484920645497705440053697983671495582937259319373593123059681071799792679878910519940399817147347269253376771963249604458824193226537566677566130762370431047763420183933499702287784863366542797237285839584093150983590918069162326958593196183986230499348310852595521248280427966269184034116261883919015555280315877628828859830082594373845002950968095096302197031456723866610711692162852746288237220697189989007502840531681420740576318692363305037603092927786386102947940183688690146042378599822777128740558895603347786892760543039914853740523354597239578039658053134131344024045930374662245304049565943780278394881638552848372230991066836212074213459808055990152354255177185228001426086313300936292733843636075425589496411556891314583043611338462642177994736290806683072922877190152747919962771962500666878508549612286561064576411594870100727315262078282428766296281655836492009721591659892674417496752972059666659631627602757854696426704468234032198624006921491730235370359284215441474799425718972898502004807378327223871083482566611780249115791764376750459571100143951687710460532365992234127996609152139565536041487513451933167767177644905036816137989170118231645627626037519508476940254585367143226700567186216860882848869238052935621854477427432176809729512337370073115274658057002569177181182235732836625557554541396331078043908282840955876595902212247802510187790806937066316349727728924085407982103170940695243189018031488529563821816702066448683966021255976546568449793919516068672597140838174512606755848504365620851399360840410450128255779362133969974308036484709995015440203007535991649573889735285642629871786715849265076958931637638230880861798428568395598690391892836770356919768779008799034592378315226463376706128161549590842002879959874032760430509305065998384905361797699360945465645003539658125591732323621833530788335235607319112321494136438113808392438324418982581626742253740403007028002846701871057780470992179287165851530763100726507817783321735707775474381507302229627566107760996807700521924672530200843085000021389820875923606827136658839487373208831409872262422646371591382935912710904010792907518667052331392060511116166867039022260425918418791323033782960766366630245912895276353716132497801417728760285340113887896212818068275392385388459857581167898862197931630841796218110106194173023047703370410067678409943285047164930954721192585151052934906676587311480327403831636051216952039323691837095620844812393768020005419289131397057194626180454782873635475867994454039306414282891188356097564625186829322284245127578903841748591870258137578430299800746574126209884870431073227301876625650223917138040519561780163410847686982607468148124290479115219894179195065198104729509116565677291053494569644958367609025416770437068838792354074119901069641231822489861220529880129836562361140491342899440634188964695977715315493763386979839446441919832747353030079205723616149593663055530870615527995315501883808051267367185673192065812858656273441520766895668755623739132651179181324608461154184187534146089488444657601415794423535872151318055922042371068053863963552473535314525632235573692427945392916169618749100351743768322071696350693281694337980612108977074368998414599750914935765148316265143709021482806089756408817733226077345900919688347402363461220037060205332541918333530149110336147150383363833132175101457014873807236484387054523552520712427040957439511734721052629305923999691637781554350917045181919693208106392165787296777111172342804947164061910937463737233529350138795624761409659317531311216826673671253318870566204701174607898497505230809098633195092349502071646602496873589948841213734053814233541481965547097322105673765678136218364844927302624493629895029182269015536323232352722965950669475038674101872763565092345118170674158693252024004600745136956943333012569372340653567347954881215735913814569586838312007037747147314269005790463132500509086833031527033665749278155882326353797724159324344761936917256082749501652741039788179078097150042793686126806277316337537112269933905396629823252674289648187231937572737131124727189997430057203782235197091616193651477325295139548085685521581767811220723354270895287747109599710186848268869830215974398669149710496755778354307818795142117958746089177883059433705090799855110963454729561158115459615699480201805969595504285010151852080352561111090447852532066909007044664605254245847826635833470740394236165400462639757008012924530070706102004129273469009669333202523454275163536631305549402672107321893532712350310960590347835845851405529570327028032673452367408585972813396679666901375431461696240700618006280559723709009901485007627117380349121394140862364312877003965571735995916085428185810862818302517012858137037189448917240559008797045293328986007214221299126017810009434617239797184006592856135142961247438484436439266036607611272945078475379102450997992241403008011847842318456557603371588161951005567598095257262470774490801697501308680855704666449963258108363870925556947583045552450232994806602982758985410264502342533856956105102086425381009339700084741226430640932433809984745795560778685726353297012372454780283473191613261839885813846891460293651639256562086669887970509285576434355346128985730009912192666511746045683166921306670654491194915117343436389117903328367254649398695336231055695356984882855176470085578675925115430086418337780456605943053499940511806368853822757496000601638494238017801709373756694855414434078553710646871063033843502626835365207935098134876968421061572816013199835488915774976442359514634263342642389780043755549890325165046644297691479710173633392769238355258006729825062457655323127600945161322694221433900815714069307735220191663547150599536655789819359474597821057856372884226400949031163648313695008641738826530383635571885866124892819972123005369839354660750003435093741457405908492697906792574293824162040177421686415638239480006498937380204505556888075534205137985302890551324209084314639433782785392457449350459956182071794509371119124191862084516485758181781565688057651775329574889637065697656984199208808812803106670288271832617099880761746356679074102149840024370301753886294804749975890624936165161594394095659198885562243645789987548011484066159003511105917579468722447765675203536195370946755702362602227770580667535065204312093360938899656262066426599718324519336790607826916442839814998211578803900103363668390590188837302328183772437916276387291780747607682090090279090207817416968528604158304213105264665665521514670436909854209854104775395936048198483496233904289350072564297487796212465714704005099758888290377115585986889964527321475272337116944573029969542306394754820316146904643741954024787888080367241051983842026301888706227885054570720301938849276096083434913024752972519423664383091696791912481310691657706682674727303049972291201588126779361164787651056799264880563072795933227058252146096194865398384847242943509187839747677955710613472181214904972953250051350472119166969080527422619110709327393798482743758151333695043565252246506666632642368852127818497218116120433417861050690313407810379683821345058197090886908241830326872996916713900870841604411338197547825875617417715924792258939217896060386113927442941901587044014193381408840653583677674222235212264461618286324753183355024040229427672256306907048262787893523304121563666348753040152813408456080032421358155316268988769730119627140716249841943717052861448115237273658284948335466214862389430749313326177696720766902923349088024951330308318361498217738412519393781858190070089772940921664091594252273048156521957948562133348757905348885379006248559999983871540045295934479374833487647629827755472809940283507713598747640804696361587282002637810371570226457927115473043627842091421091357726101094243401896769084362206149102797656231817328804780353967737618912024741403714600236907090385349480523709411879769438431461755443930531906634011638711317437843549971665185039040318570226419115485940524453823408739485438556391394357682596383189573390088084481360269388043156788006300268388371497027925860576209511476641630938890146866826020976235314455346255160812667211696426341720814899094885065829199652449202298970528456262969188936056806307441856346852432977069444497604812522814476874852793466171351816449787148898454617639434239145953437241609739309055657324895263296061570431871893450596816960913499450827520063653269315387192327325586654537583557145106051678862584242633793639147084352079130780693620789735326889728384760454341274024287769404823776624688520169800605663580952607992237718991724655738804580749696926997555070200135773321210551568665551507898171554374471326694674327238011478750971633062802003333220293801054506502293076058876384113135369018306263637758555320199046325576003980313589086673374623865340026475255267896004455950463352631717005966556905864978754262879367960865311851007922882703105573863629048761286149197266343868185288077224225572654219355634461770518386130410915559623356264248378252753290112791277308595916666118969243191639393963241123037861182379020639125529842107982160888311572770816011041316356537341928242344589753388287027751069829471804931064046736345124803103501252436793435600587470339693575078520416160649831829803658498830312067165272822807954922215895405571219004400942500745527620142496479455089590006400915470505023667815403440384791792570409747541671805212168924948941458955298759780905431048469665336478677324935521377777397256004998052758983318417408496974936173426013107923448857578524065911225960092811650736428955451760761582289617730381562497765467554154822242009562965709821753302759457493025682167640594523642296965992132767489156025635408476221669828293981377547414947661636784415109992725123830203204034451001283720316640279931260122791299916639604853622827421787585116386809374873005373598957084455890609555210400686971142737744324166688039254679808302436403449635216994172340660865536484458609322338388153270739782288309603778506894384760103293914905446601605519095847864620924631314326391259028077846018920465278019875344156049112682617746442426828128269325046519289118467639659588007047767744355433419771165144027923363364550843588926041668534679827880866872001608191773660555267758444290007107198517472295480337179729213346398223336054477158029068428003225546408485531244068262105844092959874600000680819003093255743565525044235120045643498970118768868236995910408312372836982944609865587702937958526728948265174868419579243974114368567366946463649476163960739679462611982575589976211721076793002567006201035133626682265995310873352098838671088186579327058875022065961497968470917488914353428343463181916578910041797733838100007854623153322799512988528296281420781458520966413768991819604315241209845851541114124050485723324204457183438038370634169193743276600200116936830795686975939260091550025725908493043192027736616140753353298255182248483602443384372912389522583180544258449195330307637065914596685625490809459850275378526625223056085169589145908385234463264816581772371613921778825747630275600900398964493089039359267423974641544374415048761110374044118723552148828390155833700905528777607135371100396833544991797159808869291181725092477825244730347119625109755408469039808309934658209852762925632666639200907325372288545717026810269984230063556261657950592741723173826600989455089045813995799902276382791078948267348876875818596698360585766312158733192817339331665932248475853764195477742804852504815424982134393221273934897626234668852128726250141419307946279775679336285596010298843596924777612978252502016310389621895991419755402761781649345497827349821922468404137021866113710786839295672099824654665481282601880439935814650780637738928363143366300599687541802627391641505188335707350583156494796746401658726191797983183462890982971089757166863258383240841027320476902116134949551985081026624259429277951131362345947664847461428707473916209984710678771916001955864053945449820734365767175659983204145796827272460615896570093474810033475669084265999182745259164800749999390460491469149443403826573864692141267712638621419223313264093120547432516290060020877425306944138244206774193172413802793749775983277595969222294672244549990531998590435037448111288197148670055511258524046326819624928985994226324040481568992676863343067001953453534834282369263997156354000936783282096390501453657719473225825074978325902173738623293579344739893876693662520695815449961159547273136477822298487436182904353716026579123094830350272990881561971271400716568730175447406655052227170227615464818239651916102744464542325393363587140061201574737885684493251468582755745790968370523008316138756856152814630646782778403094646246812816803953562569831573735126207581448748222180568591568324943155435547201263526448111121857305833096314481042343651759487076975624349866081904681062512704838397125483947263498173075419410239891814938746290205961112361227197974722755906814797606996976303363479317155147109395172694824219528338640872262768437587323322723378823812745849487797581406909815155144679702706696712648245532222806567347134332156673600714872731004816117675884953695286994155052657449622242294062180894718123439279439163128705101100172558912684468381511175565326988217468211131039900909741583751064117751381939179879982977186153982610487834679187600099209282350943272486550389643677433007272307347964748089701937174591718872182122780938147040679342530857233915503553315492270850208420774227657961193602591594471387498849701681078003923437335062768473916339870429519370077302870753126844358680313265604203699757303063906694133113452617511065676311865308063787273645463388418270655745528712008838920411448970669100714134189890535359879507103118238470480550990526479826478611587837266575290396568875722811033926554618746569327064318115999415880172010078455580477455696600531733107828423341124431100965083144831926829320551242411254682554535998788998720418406864303099262246292039953096904166772262242365189395327154868391880186640508726718044006561321432705237119520577451995299523741723826629473596301679662917486839276098896450052496255946293333552369858334739139858992073279402257612119464338922161918591507727212075613963295881994490257841176932318020063310480144041787272132452902751607918845278151226396527918002637511158600168647530941512823629526822508293980293588000758484221996009771053108300432053754340104466675684951419747067251101665162076488731340121929212710813520060264418667730962693991839539602345761261886575644065707877881283309975705434716339190505490870249063898158346191804269808676434750819935731808951700976705101189074452870096161125221523732178303760070633525013821514009354654047657624858415356103327298294683304923968741997770812047288445691005876674487390255187761133190057586838697360499442105384439905960997150207913849290116399610779174045651500657409029956427063072460130966249597436359832535302057206519344780541596787577312805632456345523839601683045627211932373308808706721570545293370225763421395737428904701850294410229143184078135934032208006501716349797337985298063042725730560235020879667535897167946273581956892377102780557468420578751207592520656005269965516049714692903860700493699283517891272585636483087645731652656622877380500164090450873061198044025808569611439431530898862013325577861719358670406591578346824800316089537174867967035171874539941530501452488216996277762617561275510730287420515390880848639057905358932781230510213196016709889441171224370195565154056076921277388743428792993524721273617705368095813998011375187705909855163328030858522280374302604265097383106167586043084615254511214405717226869484990085219779763046667982680784476868577554184385763170847645665355521719130840447296516970214927984232810798085865424842937217151823698148536232739339388978814706381906278203061611884697005578986296247224780965769822233590209420982602795435713292194265332945417405445918226994830861520485368681763005869194450467529873014725406000338618517185612359656379935681541557140092775067629898005406696012402114346881209138485941428245349965779283039315220726040496540339415288157467499534065587281854432873258880599834081414170505514791018955619827120504446757547044717611475817062000087863221084598492189778797113693108417305684466675272341850850287749376762027380186682759669087391630018573222938162312571140414689386316964300159366932062827274129911329353351676602316887637703911951754364162401598780053174908071073167963693725182985000887335988989287230167942247554155423711012689147076838394810659507987279041113443630617314580117782140264740760781592434966579920945795337399586748158414484140013907460196637250385240185350848265259313568547277110402720018565262004066653305201449045025742259920297253712206888757238912294619018088435488905005008094501596482879552331815062663770422690589247873339320330045373190825974964206758447659298638445921823723785328625630301127964443328998114070615115663065826179500157991640846791095053747657771234043254812682226128202550405307584866187157797605680313466324780537404597771476510462556355121899443077872656586184212517988045148154980450055626825022017396514609264295627435011445810169442732462023237531873679388215137887717158520138924906891641195922466082292573256974441020231275013085570952879024037671527345979803871582856148148567308127127716103639148146910900081786359904236728130657020497146331887960254970126075967413940354230887740040983014374718841243128248858446613167682257638862914799243572027716128029078552563949348848017035327841206333001149556490985128472992928934012196991129748884007784340143198075622965087992938343991130018599572155324601396370979597400542423238557252883580204325181494756226951986629140163542032853224799181953679690040105221080101817050642325494583491574163006802281010449458362326471255175193991996539548964482696562618952429215270328657297808729977134498163387559042766629199883097613212580512338999237440750977153175212953467035836687970130142146146409374697945024035384352297649352386474300945171351930009267685609670889996855187326974670636455882393158091904650355988309052190718249549346864374865574148816721635266890164702885510333150180074998078277976249567437025462210735620367797122004337308910448852672662342946984597333149825102099814179816912759820517808434841169726409218401156356043245031945765900804671112663777174993410731654858539543930976847544496196516941123374108915897177295398274541842543248122200625534293874828714637076406734007079149822392248536437459480021177093402945779976816137516638109180628184044320112564023592820185126919703487323241911764484079096348981576760707366865887095665189421879541010221690974784021733034899623769086466913427206825167037940405566603712412901433396030822735699004564272944916384466325177147522452111267940064234884746834184361248513757664719245532167069354484878460480787777352129075620284402021060028028671751701033636954447686441545455326109661581613890903715018393863017761970575496738250982872666389035736498605957561795704313731405393976772405119815058796137905371834535983964326707563008882029294940202582560295479964697994404391782683983472898380289973299431421134976003188510472764048054345940040336558199248373033496838575454183768260733128423250604267669577874196856811838429457241876509307142150878988905164113123793388805266913865573944309161113008758074075547305218804108106594631915212331126345908479682620793199024466684657786959926743260691950034196494810468934308802473920319425440105107253349200738532010069145545307261218388291240647130476638487390444015468326589804436115020799718934645616437604618174233112245394831234550455205767411944471025692922209372245783174506660422222318848521583956491079854953030563745365401239882711399867057001729282898928479001776743059259968646929664614377383071455720187510000587702535539953446489290599021025039759154699682441093165091526424713220134272280091481874507520540145609850884036537120712923827496550223185747498865264764935421715399479090230719911576894429345276623814795689677033112030373078062255226987142744891506736679846778276137400924668683085998715911180092800755883283423479988315222478992329840147893737149537164611630173336140319850256775058236972215749389830458616163458771394672738003905428370860880474428746968620938200919404787560693673115164367241735027514104399492056404921352597092911858423884607523301911462085154079868104089806902183577400488448605769713773223235335623889756512879417304960866894906841727260727415685701701017916562993963915159654397677246044174979769734723965230360787719888891695020767959746962018573595126465556866506531509106470700819962867432555198816640386116578100949518659857465840583146962699987462870799129292244703306135127196024447511045162835705479864574296149036813644815428617984149774704937504104739511947787098710034418615364043698984790342565538001392649351477808674688364870268036149499461593246035355324621868231521806405804670157935773588700291341058024628881775946568166329474541276467857482709767094011177048280616732776878422542509245308076708414422614546087278335599204559744655949248333952843573761891071041560102049001113906188511049301741397472744914139534611630599718576337478815032835573491100802630596613855553421534887537677669515490619731548715295974284976145517918262609789558478270879491406727849841941396254902765884442925081035825538549080868692582914489588359204190675723078512708846669586098164257923356209401203128577717282044835632385336024364144277056029245516955231948628170536284585193293524486625764576009262583774834779864115431629973479596098898990706881325559972295396145472339528194491097320287639205706704700060191952770197119733107176857655310875508214564656403903768628353939109328275274771331295871523395039038918590893053921889768999986637425226520870580348116894321803126249494817509959079226528729340052961880702710054010281331906486433386128943175412075161102633070414171803645464349995801889688759897479087010156006845552451530186349248855526673221767044363058004005302282139585019699314898805023621296485187636030781214800465257337689539231105831742976484369868869406133170331044916780851472889767561506435489199101133151054536744463467676942264227745748642217001612477120259405634190086898156802880914746117383618304977040270389194885950733841720180032239446645936530010476601878041031694219940458868408665298284101461987347642211690465859348840178839942103779802443112426135103747305023312130961060444428568535926683133132457682831552968979775292976947753817449402226951808408111663428434348635000871792381019025271035438352944582092381105852743236108926142436707686404629851006323616914239573777719885008952687781923573737645993770067875358319960896602918753809406236583769599128883198155516597779199036874843394201787186695364173894264466963156548831381521002877949724235634324670254509250890622840894922215131341837327100220080352163920626684500045717055652172019003361894715766527293804125330017584695682398404472561350629156258939362950497389655480362069359800304906239650404505207001083689321823243675116839687038884763215445867519692515844661779479045079683677954495637632491984004148107961912844444570040309798304524485014414692293251747935159616801746308692378390956774339333652221413430076082560150031681715120631147952695157452521402530782645124904308992900735355079529255185400802026255301911916034386155501599928623390250923340903190250598377133273836784621901513100860391524637498092918292649916425887969611878532573508829320683388430898749675087261479994256433765954566655731623169682508352129723560773861136044852239609113803251583077352571529407916141222924949216051178253864397647011669855238447431173587722960477694421676776918827659734085330241988845154233941244424748294312066191424392439084948047904657389990326922621211780493958865874730528509330050158860583433614625004335996991279656177162790282785035190370212469828485783542290318137006690262843783163869057139094889236040739577797010937455055395201136018081511660959560828865225758923706649429427740030442627450209158690674046343942129341347874479680021039376245812334631791126751948766916429132819816996535520208559496295411859490510740604606006012872942741186242913447402127007228749929100922221000270358385584740676667971661201751193011367924068010288830279897826412150894335048411405042704706551625195426920188082569240197165860272549234992444916174920743395275999360126864330222908131905073772102165607963144909419348812239284034403363263281756532265856356555967361977189322881868055451717242617916570822172739958081061848033115487305432270261959059960749641929931325957784261688784112236075685749235634206775662812099797245905438723841590725501115635357248743240260353577432004812673571470150940146409857945094544654197926046792324849686856399829672114796186612569170667604176813301561568980538804226114364039225363930338165736008155861539417336029503288936735147939331677100243705446433242733226204698058528383746632923276673517078536113113580841164291164283999586916155864899188874710846709881833613510449020435768560500930697155884001494273313092225665602654906010614635244340942638915564638681119500351767381687943311060522194288407200725214247100921037937629395208303768383512909216728274181222684665340157130444271540642846126241488096336511050505220885724051304137481352071080015359581774994119118178150185533725186773440165022946996634822450553588882687651179650624586687583352574737000902933282816605755699903635349969991475255442289603776170235999378459423790582696749821879432910176839657848883363186340749930008845945560395134789630037286425573787539874691900111495361176828575096385926993226681496836646041875869157105900255113045584007192655270154255325084897492568161832445152157077928078487934522926230184463155297865787550035232433203914931093204395455314467132074250561497820167678895026663835825397318063347443738233476510980934098045664041906906864550208043210340164070719755185231077501019687012909771271192792974020764849317717255220082451526290140949714573706824732489271942781207558772464924516797664396219946640632829101180791311679596420670311614550827659473020527608463809875935758041926643577917762556162304030314338992903322595085322298254894334912247751783608231472037070062075421794917287803975068007574055981649581304348911235521941646931258221853197663349678029169095748557268631988816481912847895605756066751910053806671819681891765001675132700544486306752310989900033293403416126597139271958852879472304606968793576899748672370123136619188996565454004831793676136728285219094361096233675301634605393612645839668103990193449781726745109175110909426209670190407286242478594987985894975653881240132954331717554757054268461507958062535960290268358112196336312968089837994105401560664848169817466451774555534498900158950228500516882560494703552987581683144673562401581510857126662479245657826310093918363616408643492193012108657297867494268252405596059878777054142532495737931015367898127301735753077524141070303146847755897096600953599209303986752883716051773853983798816485238395913642329374194579128701187670843194188051260407992870542502284191296487203141222360432215083720829733542337915122831419128216970502101925582858539005914076372395006766299927967475242209893283249645731676561337450928137108718347606472916538917402430074454641760520471927473148371026095443013765983328617864486911251628687637250084315156415066119234317411472182233441577715138676458220699247698942443535379937609848431070751644835114307350665593014006479165588937458393258818809331727085795439635877858242636780353367130474514866158200038201972886370829506417228559204075096868038635631292869421736862380673463525078224345886350778744178152351961568982524396220724149956488690893781149476367686019740001710766313447864645750543161405516680519094213994559028010880704978421832496670302678811679016005991489750373926493963769959256541617668833189923125931650828104458783884868562525824692833553052428383491725082497379259372693826584571474855288781075285902732087760565528231766140023486221100855418127760292586486540323672139390601878672252600462763113107902220117090361516476467401013963978608408091171074096779738250041395690770435994803351095998620221938607795545048191743845530907875237113926268713390465148560630654712115794402314982542406148429395472306949129333790063711069730165448330817499876289211377378776921463962171801140758238969829252536554611033360866896580500245781740844630342006244451333508355501458960375582765050915800812050537665378486318043815061992997962850582494025257826825710972346667764472928277002354736513280274276238466348688677680091359927687450785494156176123167380445583626229256230219607201392770680313527981810659831265268526353632954497374144436850891042921838030543040055559238547460985544173636733656563042290492678373860757769654604298027060331464713532195216297833659899785052572782097959939013348456396205799812029762165003521332061277049746797931928526253889056801673475769336352634581989290546151902567743663552619495422078150399838455816321015460700767769698571547312023484816634919542265173777258512969972954191253703557616289207908664052128240386941312024667455668426864349730080633673164211728749720557981639036648749629930135404535016600222736087905376185906880875023077420782798372137142806964808728145066067691104283757897451719345038629828335324469564914399208755701663599569839303517012108112226137875523928048166872379025245142875892862104305977927862454005546958042195329285446824598635872983667747815008700288538686366849947461859983474866882861679504244282943037255365210742209359108898584229965130680418517572674764504207210164425359341933622199441020581865168272371676332668397459013727596868896606540936077943508137963562188039506485649219539042921178278427739175269729477826985599240456883006403034814369962083861595800044670316451768522781270064229258674527608688397517532870950970709146004258276332228627794734864130885432220724058681463169535244157129282529910315144463563056835279764919200351137545967899844095403835538165449903216041629708771508288883378715140233358871283561947241714717974616857109695644253668372399287966811753984803895398716124468516488695452342862767003292262583050092865987163825981506517146623358433856909274688486522452253545552826792658398152126693440728944602765073365966259928961463787516635167957937751113101007446959089182444979555261282679000873229020194758512320886219555614513907944749417735730360729553606285485558070301348183870561546168621587467810683181986234846845140173389569345047176568667379156573464617867823667048517580442860274447385081937751729103073637790938091760323358515407309099839393952008441497313989108860917698833285841250995329794565893345886284444082368415110286661850351895959153089102318572054204763694177994062722904692162429496637742806448736682947268253960997468613363477211945922116838500162033252587956478247954295770612842062973772465025913989176383349376365334209313901630772144909580741190294508704823033603077094318217003074638444084392588098837510305931643956887006243549488095466286962664184798360055486556927906472379656550694265616702375053455718656996666542369408260938331356324932097637615439483025261974983350532621636979835070048891394105187041866739254826930978640606590409533224532324505508275970756377641296804920127428745250482856298022280177780623438430271631769313735449323097837802916189394181261919004991534294077746914406279219975221640655025889144186131410376873377085116068280785177258443238244650545251895418066669188001142848731278711922533933120015897122943559208115186022212062494358066637340264762422085190966999540370993303378804840044376500408592208819530502242852602368368519112109556112227708514657261849729290704154657987719272071907864208605218816682799529622915017077180007437252362008653808156100871275088220771787906103558286222241113933505891429252463532272519211063981168729659085260858497320133620487391855572457537401475723386197933114436030348211847067069406856072772193518388169662083567313298994246475887482081596034581238544915762385970231136024000765606345408595297397264771519431888458695442139706218844062100440831895394483684821540036924821197279371472077715115749647191863015187668144861217861915019819569653875731924047738751231901658525345029665948479090612371116939763027168496891471472626841559794048526202985384600509469172320913915319408006393726617186625898847687428445111129902428598855310708132574396563144001294588674218340420447599026660129652686479075230980132792678004668029694494686185842898296640585116535847384787045248521835107662548660797186242194071125214094953978399242813793370166052978938124136120742527027519458511358714475046858981091354820983706067603472931010630728932525360597861275683026170970392706567148754448947941111861602567818670223772261556982977842971226136104097361492088675172387669436580773939258951231692797900782796199687576140757698320685887908540531476495972445698579905908046480104674621633295358037877655108930325969821071131661017605596017405926848488780369711912671584327056967415736788834507551414011714201272015339134956295536330345055948234092556448264251245816448904073983575990998112905632167039712289028772719139025932129130678709002103931249606713656860359315419049578977263149295225268839843717068690580846305502514012471878026349355062921786296627483968577379617950108265056327622179646474522657299182402194557075100152287036939251135482730175135291206478456103031986738585871517207715444751317568790373102021958307346621827300676600219012152928483662021408673407922013879387604986558023655563047915167436102128282819375594747666993430406042769661753017263145464352995067811525531038047267348507685919125478125774030557559532286971459898574764499351611631810129714302326274882910334261711871415858069188764504796188880676002602547991866640821504200275783600439602028284405391452191041193660713890446840003993574199942094046080535111066767797070256535858496185810482273705754764026483192788243525136877306396918281530913410499923097168153353413233474193763167270797399168781254013713431127990280604945146082510107325170766250257790665732759836224830424449794741597380990990939184993095025877423775431197403460324127098243864652972993125938833599133187439900237640577172153408912562274776629005994544193330595775974923316313043741279607194415689289830125620625302113177765919774341459890857181275553401852812337849229714932716690659320861210605430312673221020321579658937683532174204896589651255261616309295555284120418629212996131759785767701764269254239061613172177721614050578648238362925155805027152141607691245378561970013331243475280393574155066155062145994246732864475331415628480461401302967889697134269177286000795925657029779856792864962666324661734806229972806990495239443076639873570271578389534217401651169929039965461511064265458846351382964283498103877051263785897908409338498471355201079708459603029890588885214704673001165348684034415452706991754818455271018900226511169964724792156726624877687492510824122891938013577357230236236116558538684908707402735638846825251045342406923262013044061679831673014567273772012313672633420134977290038658047752849178264120043866518696779990253964408448141086491611576029459234578580389801303028223117652345136495895417264427658600884946699750762596098750327388030429428389156047597441995981411619832949727201660352350919913189787033772423989780318581793795780409446302946827437191274844514469149679104455301948891725778630492556987091008608106241003030082485735119421935783585531758698544949896131580779277191564064791131994292584089764026956879340216626666796779866854085045423279774552921149185202992760408749363768783109311997118776003668874507137403572516896655583685560378444770025527736911269538222848461619976781970388930195823320321218243674190787242058827303065733070944658740346598947781884559368721765098935772127751022261633752314257680434954544326980185096918746016135795322668275835291217731533370328959584043900931898511324000774361166521878854591810259127620080939287538017251460539701271126538280983626717808017900064139823077819978225361574208223620320809587744904594584344891684736440348373986192303416130858406114004316865168179858691338355336289942157269128617077196830104930297415628923729456375595586606513352337974979710492663873035323641050444790487442606046615242390961802910228034614163961745578095973326996443055727207792776533656747412223107110683980009961809061014831259264169364122339210831706363564646081031885954188275902012540441588085019356451480858734226459915300508646392199098519559855623759886010986594158908697889909915128186043197996701638160438498822461279417531857382827823974013158239664414597085055113175100353674325426648182537770183206829512916313326166839273873342766934220643529846928090521804660749661999256066508751808382417588885955267203941034052936243239365106526963628544776327996069405776335176693634011656883726149596257988052386957687823020770753262631856692051243656212568410628935140026092728694142911921853502248312002374507627371287882768815437328881753889199670192262067158969527237214663438971199032760473095866290878113294565796660717428311607359465564571043369242855616220433774804741644212923396803811616172960836308770186633606765703739537714638869857441155681324195399482708947571263243638908561638949982067465828279061756454982468146780243878633217917128585237056118186605487436602950242855351522786318144327469530631156064298284299350376131050179903749820647914057652671158172871044066273827149928164317736937389176587138189896129151572929319303056587113410955797236270782508862175880442271663519602593232012524450727759353378553534829852865298537155393518221785792276944691424236954538067796386737492519676965888160704847475405365981432533860864145682829274982087634197723739324120656065844443369355180977582382929056755488551649877124638583218937913091648818406837626819886438794221413993342180311830860125405604721786696363614837922759021729860919570979860235641363445872333892472352210113120823110039319502851046277579056441411039966724797766602858945553343248145814643984544138135296081045936373429400838342921732268162794573205557996900619837130822623976300673568771295921923535759648654539259108627985992829111430590749390201247979411879170003053369662966806983645189216395340959062710908922829307184669912221001819289893547590693360971023012954857171127473039046879449231482924836241350755177859113018486141897019675085353841472721630483626859002285701958097228518956699693116367703094158899422609912158883642234288449187521584841927631596916327915577629970950516082675266281950816281232439862070737944347960271870433555955672336923327323997760641462255726709988692050288191127267853629667686003679706162368578990463786640243984387880835184794793329326497778678962247601332458793058715196448177267465885916280911121215626365690986798328315173817384502424777885473785307030530132342387107906299491091112694467254645287264989924149658857380072504536551414735778901060559282861893623742795452944321168786727987197251167055947512462523584865047920558669373353413257909486711862334766872384150491131611991326842948642347917594787351180463938480644054990721911097681758599350747505924235223554487778282577782134954466205408985998691589615838408408498023100156318343979154256456730346616339530505757776020312697443038448389077559397371206828006686876562845056805436549986023328777571320463825724012127871529238604701602490357156086348382603964392065658547356085275083993240156820765753647732480641981794765269290790247790869808222453970333855273144109263292755214485995541110188565618565362880994724498374169534353040718360571294119880994664093965232211850963820472434187749354731592824250851310359418209079543929925103927938851807669661967390253644325538340373538185608541371256522866713162505976159649198433679134020486377784295508186615252946655887919270598429977452093704162326684529694235687769491133194613461676825098818155576170156018751171168692430565787183718992840185972881285717316922746512746970865562974769277585990742261450679967313517884753553396157933884301247471587900278222471059377146541814282040495410876612064746954135090661405024399422373586797758994014192050610342727725647731855769097053120627220812366666943014568604349719358919392130515535896206876084175213819780986151109869930200999511238659768084297350755585709141775163245932834518090512677951607046915340294862675569650464943699899602115936145001912462225661596094464523527253078527764040193069269985962166024871130761854969582791863155955226914167953054098034487108952201240944990212312787828640429098617929523606137038820566849981930905692407785588937221939004971058103848478557954716431973760398674080280076834538993605927026114238547312701239710653333093710768556239455598862936078316317730142168580647674610434718391447641312729152273194412805721058850457289071261854986585181647227660160387780543134971645080448105338936642462814074169545134009902159493746152069550603963428884692583422419851755736649297719455538504244484641119482088887201637744613921680353610785397679513099452686857343402019564448504977732182878492521769422634419886586777104669423678961389265975102280997248931272778739493861973956714691757283279925479328172533561511798276327712686462999162830951024140581722902056495435198795947899850142882959801637127619905520060969133122903115275437340087860560062355160508093239118164190252657461029721761330511376448049617410824148109565809781581324069461205653643362116874477312208714338319723800305455608985501800497916575028381311990068027700827412314873962440877153749289718058090172309268819042546714104624494895154698557218161645391295288547721449780063583949880866754822718256960000792121889067278615594983368508890871364192488231005707635013619397812104177491942725106303562599927794330153931334695780322597658952644928173481660410607698760539972498414868159085332994385843018354277332675934054370082033210665284138668932167924813840075681214993271463516555657330523386493774670555836629020980852328045291778236258768183051150249409825357461506064032942842518918495504375363655261170067500771002180853290852896626140608289977130663186366748402958122149485067256180548460606165361853399592220689842913078818477101703848144040310966590735410053710054708268451914990441001305065637886861853828383394958228402839116466945239169745923104185155846765107716297096117750749821033825688332124249457452367933507933639657058956613174789011546434992803520019496777944438421020092231751085682461372966906063907832009383371730094194086628925093981168935821997507010251420113427381873034501699820873619971524113165154546126541932922272111546751447604261328703028489355629020562583244397869719224707472458161513262736408306392512159738352550507921458378076784922769794652094665491645958240267532647340724245226092611728644743461179524060956690315402567930927922253246260798071138103574758728809526616413667385990359730467060931026086202019392281480094653884450688695963809959913476107369629889456448582804258101157586864468507897656481702084646207051488290742761646483261245792189585460590148878091502187577308307358927585035261206066056443361723958965039288395956692922376131231940460805260432551985952678336040958106999287607118370005630194401071214577600914808869952440168467263421819267090578904314782130425853982712254159228253860498058744258529715642595412866581046695423821744813977319925910536461430529805078059787523661667781481183832569311583545429681697925431946070630074386318413966924190137332441635593355193074233091958171081633728930314730907348139234018793352880474384966065164521712836055814528565220143630828862553490804392195579195667707891627664629725074721154985155692425681498406182946843890371264828219954982875078575031679343244800519714299031415380520523408722161931012372103348841474562913256607636544535567660120573951234474246802057477037914633877470140993968837554200267666362804023645176217327274210579841786002141571629169708691155289990615692435316537355294608827414284200654128323129260242978506768030684178538906485480821504744272834583336905210101345686244718772446378798789204637714955502168735965342939052887012215455448033861595649458399839658046253770661513780006304463243573657871360944574315589264564438514956547961871045326675243144073856914376716622405173821109124911532876277107466875378403363734371311218897496627902952058550353329244015696653548834413008240978132339073890003722702857125950559452448391264778772852546381423483452074515166400639661528525053128482717835204413288646029444703184184421853239174035344244468078045573491030895579226189289821155126652162428319748021275784744998292347251397937848502762326227699759682549814847290739180105011428452508881671456204598269445335289750431036824033830334473016968972477403820713747034816100075502126958639375327784795248686775355818858461051460447696756558518392028064445420841032940213641617272345930108896340981291964002019333393252465534236241085394440055225074142129030639349288426058346855110434666042295432597590371284648212831454517700230281269018612247102846749478798533344825384682976004241711736138504119208096296988543843576115697107727457854869447165339183489131855350702617721665284533838872824461003153821835042874740520089288647957890782113618324950625800370049360447763208910433687857744330122032019400898447652505133460663424927986236576968113557012837873138705707212872074578328492323782915743360037565632511807439832776823261464427550750959757967050123221705904176522798399794116483481180136558303361616084841949459236728395158829188306354882573013271124279259642891303682301221200189544032333091937862678387535301030043191368650746190735445383827642188475882069932661197512685028383763122321968735654537994895997829220197578564825504834245764101673155646906821238350313227835760001538581080384562608085823930662124289859860804955728413194065752582173483830097058317057746236712765034554802407178718208489798731615901814415216741217624360575185118327620533069263228491689612123260446016383183850253216171263551816860561781883913442148155661084329722460130776452406022607722819483845471688589879710407478781650978713530804773071154382920768287953010425543560786529361196291288697627762894286785957610449733284693221232183228920902294917771764065401313372053944427398549467638673827420710025582273243567498208862605709456813393941921041271381811464590605596263307628577387367725402976461376982133363001592444955458337521277271421019792660907013898468229675280935073371675990509112045992948840455341641677273988480204744719840507759038283034689813249567876604303070382405738341710025023126230043976154493646940400504971388755869531881865920699733999457050581682360343888970079953079228797027224324360223895250823986156420904215014237077290121917975576157126661881719683265364500068041375753285738367267278657545725450516322688032368525937557317123584336910453130149192239564470885510717675672930694117711247231094143879836718638872470394180800989378051807360211546760479319122237203977768621414373883009049872015421094398761186581070290004312281082163134618617781929266092652299894647219156341956871406340243622298009474955014680302440472401679153676767601756652169224459862780783156915655378393885673993214240612349400314525939263868475356514127972825772841622059799782456610197248543737801146935531564210797299430617969762275393999000895316872479855881471383536114452555621864843598504294822663877769225259190709415312961531278779311687401526996483384060681846476073303219101485128423130915353990714029268786533862743381135739123461226323545711318243701018681867367868359470063433870028277312387969054983595895336483299748922447327617939041148782360497121044651214741999343426919054129205258598361910035436194485536852289908699297280562281654340532380905033765760982047878634713993292342810416397867208660049351488782753247185336461953990636653770690618555867248175073233045005494813644243086352536954032723734617135105930204263438053445779601733158036288373329554188748953385385895018317843901755239789625578948176869194008497083675529518762529548336313603133793792644379471678831794088921017863324425302698345216172750757959023599461756723395124100145254463379967995828199696794631850595860077939901430924682993624852948600098096984304865303734164003433241980056511641726866955284844346790320883528902403175595248838088587241494811661230306229448335247275726167601150795101202370168356698009306962531807453248680059980273600873460397265678409291714328632755735740008827297421305661799134806822686268257215586919580884634162457943336977065230888076042518603101863490202108712941521130274813010674615808747464930490790636829507396199679510321557481214820817679266019702430281999893884904948661939787935786599522692167621843567365917699320802087481168385972150773128217679824937229413947052649594271524315678827600230486340697691257750971368978137451225288773681658493165403013702655209933947429797006832340052319069266648045574391317406233678519251761199856970155258997362914950716368582396188778044327276345576996780756734833210596491321047430111022417298471265168944765429381036048154793113750159156661303744658790541251755301898416034904835874763725437726542508168528003138795270659653667823981296278533510427457002305643696995110739718945461921592548631231743766756903128440629951156583276680981943896967378408147482963976061134227531123098442937166661168187238141608559801170732022399093910180011058980523418258115210093269915940893248688036808909641235080294477590469672486883093778839721440608682304288696674066417204082814406528442924011832926918658624525938926967958797190306175737148030470044223406986219576287664381445910051438181038519083829064153974523738367044975724149024287133498503477186502366899830722598236649772362187170246873146004906314588371339273024444303467646471166818801949116902821362852101144101435671763376727475420900793442786398376104492116267604786657186896557140170353919297242218414735162242175359590544823492055995169140823343076909979895727666895138202617177489111475563982550003328786108802645438052288793581666315225294706546165613021543957150610023627933598074508135076032395463314542809428138262077555444150603508082437395323419935434396902451517778659632897230434826021878040101258631461285983364635051494072946672751872870968742173204752449011571450043525672355912145061085616591468022169616639265520695514539037923854600641323072731989009767226091152612445141756246239376295466440029066991524590044021385190600935685559375333192544222225195174500014692145744450695674139411926171073562865672285023498230580438847485370145273788012755060362169107032259508607237828402048171255039829014657242362635072002422609365123907865038748209017657362748170181076663147176976508006894005911495531515948624029321005728859640853573510981109598733143686940829609571943712528495022124076866474884021896103689551861701025383379253189927181295939651203840602829334280081480502750641461344988853125065940474545540470155901836963444328662383931710290015229089109559059544716553631307942142538497766358324767070710251903355414093119558340414818506581075053157527447896473766728708161630060636576769062253199366291441160030871137981523812068591217860189518677368559367442690573176420662762110433344913613445678259773936945609099510016506210215060805036833113201212656005154500812051515863174135698527482391956319757332700938044624981464460441241414733202318524771439969787438888845111698416003685137470602510804828184165651764396766807254134093994497872882497758524718821426301135945447078119327403606525141261373887673659603205285418773416457539185807381955654927999489499835195291171488300094371015713641928592222371451434307611403877984958847492283678598719169166662087282761668437888565199997180715036049185249914900367877050144719711709417245519202528835450664988196712186432728404273328025631297094007042629461162990818887334564762077945952980126608854161774616361061474721624372907821836072973079690732665503126826283232743765027736292702230325610761520240372702180804635985337800080520089053082478433529424495256676680738982514462919333568007662105821716555004800213142311904966017736428233311138561409490791458744620578768698765320710238511236199252978345131265457226328434433569980660048733541772566702703452028392427454405911014937142759372422170280315376506443799881963580403611182477201894928357186597118644538883921451696720824076254333843586416975347847672849944917868674322766865350760332321570065802543986293834691301911996176078061919019226802182230856933659756907597842751886475731480023097497811241514636735105087594781193025082137692197532048142743793965783500385439581487391149988674536812415538426696467178591376718547792309261984397445614112368363403882874891270220339064105101138667624344789124706965340278788118124555979658594727977590900637663727177535311502148820258458946420169919072318996906031616134085346454125540681648803725931818776119032481673515154413873670838291182536699448196600680882386984588153710110325451990222547433567813273770269435185728159919478014348084530740250034588925900316030785445888386850122544269833612292763413550034509171199551503810213473565036275407674947943001074592619872311907292425539687443707645892778317781592671416141536249428530993233700383577982731107277524544142201959766150714133843179491785945892526575843669536310572456471852560393895172270948765835270111989337995726971492288537139235385309843035564558722312681067442907923192768156663239627954406276628076739881928875029441673479955781740564573896357551057594453251142133286792720896335259386369582561233627649025153266833876705860305530072874536379439273062883889356383278658690761528248012922877536392688233262351895915324841422792280785112994490603414313718554415099335795402700831234539996787060520198829082849543712496948681302231134243966867520585242451362657163176100976213130369381496320729669150548555592845599177799072245887782097167870806680780048641925342432733486766636757004529247480727921519670797283216903362569808645584002792783394187592791019363817624974837001798965953931630849323303431817783447290654904447333031188099189491854185828165133593426824386819933618840606043538110116427356106335367785317231541208609904225845971925580626269661263619995150572055098308640357231077504310619016810943951942802721788418429576561413290701724014370850732197027298233336674216042798948394970056091887934809302753553491842880902136850875300445615414113334426347299468617505615297919966356563718181344616973406402775043935582157571997686534151939269109043493166216253678119559971393800783724933765069666474314077332629194770513227761701375315611582803138503036249824963380165529621245994599449763088073370401449691910265045160457908341569604086724357427077181073545257848414870593475858418813651866924039869962116258375949207766105354652677271110512892281996674773053159147759458334281516529365735410828742637039664520476972449210842457403360230191152241895794671323438720146979220721978142784941705197212597063321488526706526246396361893975429653904398807628710114381963296872540127832706838662890295793851865539306122608842948303470536913906488873873532172031533245394112716111931073883899159464780837664315475420837632819436594829203836830691309770358887576991108251737412152434676309337220838157764419752849722435447631898766341699109510876815470350253495020895286254651178246703111873099145449638661520571484964217731157947977059008585541472197364575273359183279936854089583587222593989586788617639076873044374521881034420372125932949265659617101177615089967005780553955068099195762769771016236054404289543525427723170949444727483152596124565690234977385167553163022121441939740527563825706734279904464693184053053159245882117295583785402115973907709098648175711173385937817883699880428778307666190209055157328333131974981924498459376453303128391029238056454387355631002888644286479056855852864643195226388139380033680860050318401161682450364564301624301817916954773449714893325170225549933733516309933166076736402472003524310524463987930603378571996791395412036748429983201924087176929677854869481951685907974344909327138547008784902985559919066961347844366941795390851814378290181223686954109558458277450183417412906802234895767401856502436954658525033293630950004819061839446484268821576566621867398485732748836213069501460251534581773006051321719743954971210034380657252111265630591528079554267984084159485316466120325710241019493329268304401958104499306708447070187082527020827509756473833319907400708616527030340607825157946199751976386692230707236057800142789476688772525995050400594151415595128405849286457894874204971996432538519500861844027220344400118715045129974027819708755261473513665892856376145617348350316207615536975697930801448403241898655968968336249081195179812381758218938084033994858570822032384616214204262873609824509588938888688615654163506477288577097420043269518908556666385983630293522650547148123855452710330051200564261734204330164850695543087800446172804023861467144535194319501404440400743470600293720697837388047525259078835481040418105428898445163098635298054299364353712647739632042078613973356522397455087047954590716794983325077276040109263349545057372039578961312566657470983542161071804769408960027362740218490130903893129970746560418536611512845461621177942909901204486172319197723865931922094401330320104281833998085269703136224128129352482394382313232896982987348326361720863675930131140739183954042173114766317006316891040172782749526439640442368749844622206542776094015538828913972904692935182551134423404026554799922553088685822651631569180397412693583910280317168367332873111107490722395045613189287990312541669872201656229201421907764257420617454571865051098809423631350242604685496666803392468436210123571960037934216757598151535607554016072057780972402851857461205188166398030067457871397766586017567000992786751056213559728651122716433531588216486016009517446569176569160409433382433051028859449732792388642940609962952116584494779492877195357713894770783722576098298027416559675404166713433409408113835195309127021480224739256498077810736309751539170691287853033319906364395214586676227459404512235030216976674296383397162471747847176204243413286883129866703454854377194156374917769768143791389536158925183037105672258721628156848992788654639137801181906030558096713438849711403980114258476462191080686919848616212728124369677735286943986513052489128556568824087648173977832289508183983235229801252953967047061002116026888916592228586459446485134975945172214049018894204302942544794872474029201745594225902225518125151150823742501008847456858003974605648871527812106075871000682673189456331734341868581902783040032131896251659211810990976398574068473107047459132113441987872449087689005887778187450366750913274105692896386823480816748782742671146967752266331211250931048904010604119490831449969090749722770243536629126311044923778471895291792501756304326464042196097925119513765859127866523378784062286799988153825141054385590261380183188326481845139353587005736738021924571867784722881212969450671419932672003184391989122231634300237979694358091927161697964980268204014637587020244916412382822979880530689772379048459033055032759461111188658111173149146239864048581583723151815640597213837413768118455603992957017559597076634024958703588639538661205180520798423174021440642431555622424516609388876056215115403947241128213466819504230435198121889968435970448998660645480823803433529936846653640480825796891940333742259925858565721079467800223780979431349469595241201579842899800007705401986350861957742194643164316596897273708598032255868697017768510396032055018626450278317872961219767626997268600577711163799729062900637819928258729503226637574270380809085288472207517868684900481788225300887902070702997418082788102072492017826580498405617157153373423047164088499734898695660754249379094959409551392491819593944785708812463330767563679895823115377549745616299245641893752872830217943318227811124851154720247000304128779860972920764574212605661519864883373216577639790250356168388710594608289014645800720169128325908904839469545401780049570607094537606178109474127577373184467566753536088322837630583528116986982798663433898304068931388311916335958892494535707320912720935818576982004101662517496301066247973162793415858952452432096880299618205981595851922494949682677420246555669125315958787979531433341389286550711481313122140190053776845713359053316741964599176689890698248912394424206003081453064171087122441140659314518470827376575046081644411670996859275965762367744178755144234110477284198306845328510159126030089582108177206495514506643397439306946485069568273553445544886311879905831469619932368888718823132286391673107874830932257138173718713841257991464757267006002446876969584733044539880507854372988796853195539257703697840042325404433441188231458789368032220312914406846096825995930431036599365345527586335018000436918495994477455636481114290745596881507440084422597078345208413090138119447778475025126804182561985844818447993069192514136505600401086131847527686829797711346670610977853902353837169754642934842786111046318820301260542343724450854822366226005228897548461553829726018210336931496594122597299311494233064873111321146704974075576864791725776231560319982360988536838369866540380729797699525649327559861980362684076721042630450448513094956551507207055087514871812325127373770149022773271887526838234496535982415257237738154614969288726459492167055332415648781972465076424256423165899470664088795309858172396595211609522428584829986464300199533283876183143942465943441621088877458895505572180535295437420339584642752025328920733618212182818865791563843749679654370394678191637009880456982383854844085274368516585282246377008055145624518774178753108045876335627176845867788380748859723626115819823782450817208538087875279899640130902395391674293342718389907381216689641596982388307107916938659143886788108447944066089328820498999516805093548497794148448592399527085945644764832310906557369789416146101749308885848297494822704289027739095592701897495466054583148817311365998566432246128609955450899671473255507023361734192305392551535123988956882629861694010449533441781051235744814419273335071335187341647622575149560360128014517768181524753097855509271026240445000479262585088378246042346145416987698785401726360555139558508576170642019975848680345563081256710164208009563264009191437152968888252572774034610101026279154343211660017057272234173786659374315376467298698464791608982355398412883367114591024176240764032324738586990817789529396640834423573054298906994494426011181023215701735156742811280113525863696665318843488679835241664107681991912052440405066088845270699637929489511894940346434197920337333764873237042736252084785017670833914675192197958296152250617246340632624706982290459194326280074509824342048667636643490867481638241077548316808759691915625559738262524030684607589621493657616308697757301706979527242349079570921345304739856103150863140763587711842513698360095658817485908391379770033694813638034767773390089816933077954592355025591509071677180990686238025482456449002264540845420871822000788061247178247919478574971987981593357777928002415204740723916506501104752061537587342241442355635265783613117630645398854947340784893804501278336468898060321385639043265747774343596397167952830504626941121351598500080788971110667030721717372267505409244720805623542105126647653031461920418091681685348781780418510747858026362370757411921097105203048175417704852374040253243843818098061564351338808907573761710715858221036977618636594944346548345721423661760731789173753405696109012426587234658366292043073218093141592322328254148910196990833679783473603333100652203557424025339864328189193362272566636208517295876887360649720490963967413105764597743614994171354730588060911649294055558850241743782061760202516130456756084124211581997343615167503621979093054162971999458001892668548859889730045960414296424164847269244418238777023414305973835246310356821090712621496885181985138721802967598902554627977168812074429311234376466445308210988851299849716816171257211822157644466857680587018806761354248839765206597303437362524154806395859403848526161020266150349286757427838036666969224054553798596317541420432587099630568800827265858622233336012357947997441198499565195270436458553724281697035578956707753382261551668571254894272067244695955562873935703736050916970294479541641466237232601276297474275409256180677012844844657490955894226332719276441626498842981556512713834010646662428668605351166750934864938526888102104773042519495388803627026314694097438937149819582116366490638516622260809547330872198083506454266814995746267554170656966605700117063002540277953417556534265677100015588696284496557396168741140623115501423956786617960932185218892294144537379830723580197466902169455108762870717020090784816263169447414367796955594126466221234593516399977098155277493884436707242692457066796334288431797837017601588347470896189125323835027886576831371549081525600354861235508856695241191136130788980643021290283703764542596197872944188956340759622291113069673068772877380924840023226721136755428762263512697287407468570371288573153532311211872250276177639258427225217874530448025997792313164719451721284675297332691854631843918988436673600052007440964580937428594623594232230869830952363032388596936103586299959054669773657471919097912650013216272336117481178164032047740184398987801347447346512741776509929559848658845164232760802282340446269276687809466440934925961527446813717740423278828528851248565716820651594010162596077250158890118679827735468937631270550959064737228087947045930953668709250265658185946829710262065841674223143893063031737324525888308749929886553554093709197898723983665438362323530294089712974278842802780135470909065099044051038123903974895072971026254235055837669600614730661928682991665458888439525475765000844963215034620334421230693455471640886320233989917925492706734752611403110614791634274093231188493538718507161148022035586441405143231938233620578138228261327051562310063275657513658714792140260880169007125034872171680261396490388274808360458133049102651488295736334460189995219883465832677561548280493129629296814277790227188966103805520933744299888958585948194713283974161988169732814024990282923573857309103306941174766201508775408748047609353600561379679685348281674696470660686288461400518060067163013193680029147136340133445768447876423051664338073617816650122643567032133129874316605266132084308597478191374717572798895941436668047128092502435606567013346592035681006872312915237548289483831298759899527456006791846445753504063273549977837128460579448999957832633667347170824966844160564069494576588730424230854583218263638636227925176544171471621089128671524232247422427675034479221474177645214273045310081964338593634187466515625376768385678168554034793396225712637620896732281848494102361156768661155025567861795140936552261015425268460327385825218213957339148960880390476016972969287782496228423826587258885282812143930585129945727807404774659989582919677119139047462519725709079265902801664248024057180292331814005439230166082891500526928040868145451905836784282401150720065705875664365491848705578878492632228122566847496644310037316482578138926714953770713405561054577424911576967700534459140799344698297733866674680883289956728102052126480693027434851220664006341849652766080481057280155416445860134585742678937487728617554806829776482834184184567066467140601175066537031233786982304443066411974327507958782473704476889799530274119463711643827658304513000763675712082622248482746425873076841274224208282293622079086212808277239012332277623298409375366141328381814527864237763740241229912027721641734767295575712088626141228538591557812200242049913098304149261787893654082043534184141612298024256716030686149943625208561936662763726479913054651248213179199923316917316793081847935047206581960929249754155890536251044947600259649252820857388271529620086164915669712134929416119526289742891595091238541433911446424987738577536780898548977151638317902693476952815396979706008837299343011801661450452186418454945710345585564212447998033790970741676446747825440144902241415105842611790958401112205665416564876980184684380015157761338252509537898688933397976253404073629096567636866630983367712312691899867343820128601471778406878308590454884216500937879336347393255537947758366035380623768688002199692189051687116439783575992971649091321388867682667109813321867698136149513857438047523372185086130835787835747346967417077328136693240764111612796354027852480239383202371634105805914511551779318092804914329986740001956757418108726157855213824632488561353088565966934888434312666108533646008956089646059828719388831467745436678316074467510515077313394193998535944366590641335095891778090440274960450053746984932817337414279547835098800151676907153986743126378517013154643981069346240758849831349213713410931856281253378261468688299947238782408731459860789678120801072465535582234845925456322341307820720697355652945150461456744819909334659577566032756565794835628628058956711062393669999861358278661893126695947366146925736011698327126376225083045758959219596315378339440228749380230249002383837872106207868909227062471674342123863540873986959275995197641408892769227406706718562055518240401790820155487954971353306141333124631211486931774942159014096545464943119979631299744234434350537083072044371392029461965037748084906479011005516000437834995775564280293273058474338893503456107207480379193494776623515472769311912834489653770245065962715747798411252493121626143393627769255427181237456719742367150829397477795747643025535653613200017402608855091545938535376547785769330484129249515425659667833459317922270695097927833821710237734365244249505922278008814180960039464802279160789957821213476106221393939430861084999038312475054093442869912080256340415003359595944379564799914667468876260167543240429234686339071163082923553398605579842164359715971419786426744028675859027259343681370816970885392472212871842659601038502639332201028077659735930656447891006599370612485159618005522076688349110646385236104589422085537047523562498386894514961136843473192462617894529457205622924565022214233297755693772492669080757720754884428936012039542765146957941832060589183616462380902517220357966684205025245207738955324586289035320725145156880909391143805940792582087788692039160740274582942119070031472432810570677168589200107353839563903806121231890573924041354917940478842160749325415920020652796023936832276262746792304355256312252513300306553624722221072804774115688696963739369884912093142839861602989768851137092499020904754103502326988189448505267007724132915484206559086669366037351478185277712266341674383747080988025381864546428937017618938852500761702673879657626457087665149154571698297397723363577928788108871138669409832251021237911088869551900421283940034559377864437527792198272229095527870177907617961268387909216274477400656498604067426838142576358377429203242858460264137627948347923673827593444742042526053163006514980235455571417499802555592214870364604934237354717811138992955211913280747625385509928442417099029907692875290845789570978177002105160014033341453495971682260667807711808477650653448889201685541387831577242913263927950253945006093249903471579307417150081426568461902150495597534412866878774848916027355537059912893435899198845562671270956656175094393531009007060908387077903053422617924874024008622079424262480248961918511154592952924140945895389566391037429144878195248604078595109678173679100737874756859787103428560921832164344158598172220336027544631128722449834348081186185749564755154210801852917574026973345016207635644047777116221067912651036800958392879168139684062461429835270111604258467440614789719478324200872293523334158149264578982529785343691308512302249648218880849823731272873609111340719910146612010175438029039811386689475748533886231901752864529074511240873932285448605036432466812167992078547166567428612325374526480955287975576032189353779205145554719389333339023524543156568602444662880619810635111897697560244291363658356471787111758277067131429267053017908779141234682930072876559113347255042285606120693114401795120088648728085674925888744331557097076050483609626050292350841678568789782765674578829638757546205832002873063549308807200020647192546205640863438439635909712805912362535260636053446114607640666475732358881187072292112469559418431829786304554654924161718961803942099023369151719566340120472897753667753788194638704784975980534293551173256153229546831010647714170114806001740639283661524297661432511056126942562049009167065710759337824956928859776150113038600161436384957499304135244692879614937515944311520258867457945914859445031936624321693109441595092441426258330457516726811997993351384299562998864121988396434422949733299030679324297950360437022379880020040160844404467686060465890571433822658851281154297076460956211489918838352650613587867965850684053519409873184646772032246795078270131955551749889860194188108819446526099106710126362210909759451845625514514011877978519885220840822498543321683083644195154787354364463732286829471283036335634309982435287882859293764348279478238850559903093230843637144498350470180156222627641420133533219608720595964405148890852698688253110003081086051341859342717851285707289717279948802833547774771678389106781905346853585481950546111077330343844816972061708306654000851806018691827821454300070705972139850385906964122316508573620314391058348435512175020132242885126680714673193417084709996290756664471808498189682690404806273675318455133291941101762303107972182316216777646598206535597243830703918466225683121086430550214153406283565049784498542922172922553853155582371293264599100508786261377798354648948930903274942485699667235393113657113115742653121705877788393060683813764210473746860983644975547057284414872051033512189060539664765922794216707635924692293515046569470819395890293262673398167860176421395908463826472351678953287475468776608783590500795544794081996914339182228424993710803355440549328702254951318143725797026192987050852178440202778445598071632415664825539376964905410424958651049898850529922830804994951352129013945743836740711064954650858193484104644036379349855555587563207498793858839678748247577320891984413582007582501601066666240178903083115313201881637464416069118297783019106592499381237992431375889953683391489491013264183253071722817312757753433361004453545216891642951422560257448096547600570666812236482662594858719939475074725765956204128695691719372323948712140784527496663412560590164964737011541501368583202934078774712822378115791899439229446115456867818644291955407317464934516532690980883109235555505950482495153318947551587818469506038481415465445615588058188207620321755677269234819833855723255569682833571121342215876299864560388022163997614263065504927987719748444873677899030727172453382391005890887950994310784047309307363103813062996243413812511071074266913944918756026089271290402984548370472237882839891269879321034560533752733040412082345067168035220623531176773831912963362292939611562145482411783104890825860866350095713998758851018554670128869625408064608607448823634485337739366279670359884975457656182590458507204634480536120653155183543513948213951281700891237855227514827135215343055040825228817001526608948906408496522873683438902436860480859505408210102842824512657473050184011111166508005783893281182736473672420302210848788084987019607813507509503636150429025749389476684019295151472472502483896370231912593957082649654990001952227459332428630348757667009771237157933885758363582336428237106601030952833400813738523659559196773082474746500461456371916410700666112145002789847294159214830276040371477892554248985690186265670291925928002182510954637788819813129573617481159048206925768342561193637610830200455309968886577697559810248883994604410525576029143287593599818638184732483288987766519007460317359641270292399716290513937108946406280493580046312702433852202495929384528394028855228484453204310266344223593223939031322358631921997692601935494079681311248890144714456266511506287594341523601685326808065898486116738272142622195006192936046616665815306121253378489479764931872972230659776700052216995873637258540521528098580797336434528645607240854994243992237216310618473784064334454283072186926454188808752366499893783673884457473291624549051264288730787477821402689733372618898269785202348278820429501051822369848815312111418436459375940151919237052334980350287583880071318778313492993872158575619044250794178620025818486733865955914950455060191736754352097936336125417532950716718204911898290922805767460996894594454081340128909187882454797405459228070314970476029654954679980332098367772965835093116193025542805444765890124099735794988630156946487316492354250119259356709817376272684751784947828129510912367208555217673195031055973178019511931448990202360856134041633234179381302311963991038311126177486742482042173821285915371974840089606679982504634003139678617213652370093130365326079110490659576590875481241461282764362091040104559581403501429867977480389760737147901448972701882507088240781862003637824936743332846135298961834662824716458194642335879247897095812926413023066578657292738932834854545510850645498130247990017050065513255267405942821812244047408669808804354750924042613272896507181259374350749962365282347613679047036302360931126627477113497165813734327249763724747516655011780629281190377582402410585494067298882683883375433382415147202898379595509557896084552487478175065992702205801353518824068521866257619183310487709456847942545492427111843510930638987026917027128349810524416231618939743084251473224604783562696550592762744836781096390990840306991465096119605496992571510715654692592555426230016610444270188896873752334097806042531973807881920444313145306024475637983126797617046010371506514265758723204588870430115716423513524655530090334175381460240933781298990891066830605157665971119682647443899553984795788671313091204975399672077401663028392043240249142535497008891438985822178397971837069205087502875950437644782762297846399315924283085842976072320963152582239870113587413626722418062087310379721335360348051067082252753485739080730677438927530569175254332148070785292085824143347086406513024790991049350065381570976748656593117902044153595442678179800500196630796332738674928962227034802971684477884992504056421158408975195020906737522452543969077315447740303562707901090210178420453768451553095995657977317497014885863842595621245801532711673188476188389324008287223144662353254460915083270552764417724306101636603499429286681663590727393470322271461684625763799926538923592287931357726108788988625005690142162186234897416563006613613143409612735666580315028219981202950335815183329512080128190999096304541201191584696811287612534131276111534482314678201460162948473233864342031328837771929661568103940344582112576714798879761908871742180757859285204655423816691781522578357863596807662424157672573079818852446347809079245231048163967697675123685379636783267747187398527677752402245997923956161117607830727014907519824015921322475141153725900488844620331201324368576725797003722866043750875681624595809934159724652287073541883168059188796561250233550813057991060017580767092196866710995176604556583398288585265162780828675361929191721504300855103016201307041928460838037267672231072695607479090124859912834131770709200026585142167311717424135579011779606262242091860204165295165591597693266235363350232269118298190875021845514625499009588622433775486413368732054607899189920745919802617363434739120974203301051224627287126495147206106015710948404665969183691761256376619930488485890722015200432581947349767931409835676244098131492430803134079057023325535469207931540325946636644021868463493948130217360338518644649109228497126204756185733517746181761346914077313741534692446393700769983723416884908658704758091401068679051772894749619629713075611436547922968127680970452494670792809058101305150848984884362316647541480402682994529215507870236859435087098292550487142411152475973420565485713807437594524483562567745014503963482097004306785124763489502603052991754123911097750019009008832241912431701754894370234522486792220081743000205350826402074933738581431199032427954973131632166108508009027312877895230300991297032358409070285887853251307234600540584137331140684302871854567660578191239380942313741132384060628507016681462995225428988994303957944491815943975609026638583619745746376063109728192643569398646464128823229543999686893908008016662817875970162177453568471446730589979621518352932740760744509346176405104924896029960222129034440632714395061917609273093937869604942965888172255291426447958320975733720502980822745980274316425294719816263033147394599235308118757767606159824045562113209935989892486873675228157213724693232806895338381171708562332904792598606738938720242955770731773554545469718373860600423628043225474324135077156855670359598772328559497906169888701552931279783564954769247011469995550396793105503394654514508403842382579795710558167221832037385990215662035877524795185204704142094076297223202727406176351075896764163392531711508404962991859132468945325700353070780217903876582233732395156390439442416967883252773767743452858815268856561492681949258197459074951592120728163570048255931263569322455507484160968993870176352523530481073530203868449938196985876406890198846824701082659189322627648294754164970880746895490855929139314393935780936743533332510959421195704013659269987487502196560191441027640727686018668799368138398726106218276442625723800063919803494320014410641800887367317509814371337379553392742345734240340666322752339249740833312254777237305143710435116192102084673589051024214815724886667976424963539591216399456437821230134578005002996043489624099543483353349801712297499055113587384824376582122104414632686225085949618088329900341714057918795002336561089095975971436578874832751465102163309478083296338144523647569449949572409561706908941273843194426326628207118907877811752569290422884413029274039048476592676112558885878290678488358919085328835889103783964592503968145885575872707508817014886826262698542957496201377111451645504781614280373993655386713097734460766750248582592245715318401559547316404347088662079576185425397662777401335331567613663658189334394474651612652368262575466005593802817791354716762022627363519082177290567071482041230856255548700603057055063035851013545016089073463569937027508871788385911633510190873195810468623276439037756526275611130032757173709590087376788123113885747267016908057621645777834845071827380010970247952023213941539502648317381981887270467032550264936006344479819039819569699774443190211617972701085507347248627997228695271488834044071806707046302615721557390981955843590185287978633658816312232456670973472431802296222066802985381172954161211788534926210387710955463000993148721311865033195547961281939286206488786061979245713881895783358180156025267309004603980398046572857401094607005308049108815092167765136036268268639382236789361708395690040420175480388756099996245225105203747086116408642796743597863002907246134985591615660337934451639260898306590729199834227997548186890370146541203796195827867497074953166192655532584110051542519051750996303620138824072462098410004516625160139577426154832943056203620116995768069907095242351094010739584278004486410984193605311047057497114325523065575581198928521557419552684730297882873666530456527342170162036528064784020861705816172412949153341808456854579563147153505891697017086496373190536871667729379696345215042178109246620237943307688690146328208749540023427409209322203200429873958225828343129715821487028180598359473644517908210148548025887050798263150010105333909903850127768451119158236763204763021782374211948445431558694469385328571477033607318581251568638262672824699921101801324747286014683734836033123556683451646803430132453692592826212327673908759835583276890012382287037177876085013730459702748750465167219240324116673683230387026938008893883531536637229298519820686051746480720878032780004429218333510312164416007914348558044931510122671840209434656676233840729033557563350271582671032450478491421754961026708859173761565686955408837240940239023316420696391227989289970155477683540813953118502582287624218672826641404506480577730471504021712043857088730324011011187243290390586505546566074969744571190776318186448581740654931224026229374339513096679779891847848645895120156133009886835778139393010969333815261857787304292799514832878144134900999304792022702936339488838561751841110751924464583923759417089221633630001463475375290974061047453582873023750151473296510851291447614676885101739786598304879955578012777955718979060584659936077596973590630243070792264323984900179471600355816850783265435777741562590774588388536328371095429328415910253346839112195110977625571817699911994941472751146226707170260660393907571681209454640836554252181674128127406846938972467659340659784266687305735702917840551899493448761036186571065780454649454988435600211942708108949887288957976088637537315264845136979143505476071963149777369382419762315647244686597189550298611381199245065612635757113343812951771916377174506970483510540869229028227925309879600528335798495094514090233546821081466476974773026346107121253480442074647564460784439735794041714693531889943791218623760011468637855778017215535477618622672921782885669492353896116997422450288264341278889431010893747015294365882987906534032611931603766095495706433896489964079237255400538795177928278358325399537241663184758267799113655350608059497707438630368461296172993273178982189932823241944532449079660752331562368686016635531622939297104344095246396180975705007198240014554657420168167789068060499150505772544052438327350965263665418232403820983491365958991679645883598770821847682189786685804715355968856389880190220317163433826895232449686535030736374767928111491200516096548441663825800786826379272321155176328807167439745483816222565089427668795858932833147981919018954040492404503842715229393985489489309463844780897185190411199446868466032432462701757872528847198660360300034532703613739923945841879460079554024319406335296970273636852977326038006428205463733136617694274548955293474731766847877339788294299880848817098007639090693099690237071812903101867430487223388683831052080893030596653375467048025793901838448185099271440661700849959716541040740028032893000758050477979849025030576665374112482191762414868837348474275730317759824320157473868297748415018749171591327543064238614283496468021093889867440382430245373134070837214144292061078591136789576446336787524478432719923317755490640513180985687870732243360555833965072644390902762380201655054554828991395485952306152705909484163345877345807906030828171788256104308087640933006438020477742230760775777616440652793517898805795863496973644278870740790003999732820552391906104088879919574554955047025179446177680975925678677001754375306482471577128023153462388828707950749887057873192334206400096911513054534719557392030013517671969250202749723804175696002036425279971167678545060722747570387108109117099436624277627658641939636600875587612454116141566509722936935753579866565238512119643015427947969683951615335358644179566729260948612407209219312746795023987080800885044980221757879576865307712633919779868284956557068111781756882938112122071685785733886864991926033209221308399384646081496968032685935568256810716424442888932481678053151961072409454611058410194487954856231069468403381671513509345512500697825558601821925628190685403639903037575079535457502887369069110351033841530255948843716549651202473407547584486750887136070814830430020072084183287914368834678403078955466626494372027378709572441455133433702280627679617639459145363643675236850611981993780799988138450458903143552351133492708620275555363435496872165404535969935209719678184569446121699447023815321983109339360228120484730796312260162933491314115814368744494244880951957423568838922274559027355392033876100764727951585750049145821773227133684821349934021839551426486618695101762988922662573981296658060935458236564563077445181634880130574866910665309354980773994275003625111017016555810652649212167870585262383013871820256220103206542684648324535519006434126534657469529422054116001371969290254138729999596453285349335761287359604654599054882555651371435254774115810255463591158365196917186854120439623552949053497420261744330981247210002617237479471162315067123549668991066709705641239977849540217614487264445478059525616351349485224208823080998210855594903362719229362095055080907701881958909856361434061769970108202279204459053642740095495997864670625077850048098011679276734449310057887246355787611781660668989247772975983523044876682280284951801049330318835510089244672300688704028058008843107050268644233635408563472341756961367499887490456076406316311827779775210522825701459202183807795422022524596601654493633133202787628941258289758547635148312434239019150769154352691362173459907727682413332119818942520622669968608531015777941078460053630836835944173867539209372753071026076775269595542120113774928899905612988685479301712656020988843319707933353013462408747620620448811419234813999402661414641284891670285088572383851483921901197232131714438076076615135920363799271068549630667887083627789673909500010294404801545921966248313891644837771883850275631773065171277578701353061981573473783207192653058329047163578391315251688083576373099762296239535728829208039055845018049334063363103168818517296102672187792095304687760196446871790690314095473178728471086888827040690699622220603753041134611859625436697695549994893749297487474913968248860268130032115482271918700905269892851869772627232467013316718405132214233966919115997620309510668392655196465917546349098855913525325693218543626610319021975213878608294354965314050736753131563399344659499465561348106594871403444563841294885381297577009354808426853916080713053129063072964617326657048082284271985350986646571128669202969094383759460714681422091112373827827010949140799467255676072358992505892582833292073262514992676019900248650696714190585010096015894028475903655422001056653627260174446750865973285024425687027493900532164319732806158148172670297102432835057592744224275394617799984883935688949497238376310977495365290598949260279867486879799095316640277486738810679273692384754188136913905120089903137531165020301107514521768312664295595147280846057670016491857691308267666199830776692192426986688067379334458685365914825922185500081024537433896027517025514477741839533941636874357943363736764263220108481404750917590239351124447773594958840154586726275628085412183079688430934288265228762994879075670154408212752837898636918017176731258106618717056868385392427405860324449876164893763391944135903473215914841889327274161004841786928157555493069115695037701070453149241225096197709884170661322435753254248823731887422826936442986538698774182163958407307027807508613866890908007854728512237321477969023698295260983620098948768830842424852433892686958053450274335852980589964785658645380361096477089044968076285087087093769180738892551701944294819496089299111163058192888120323918616301312265552642402413065124254375407358363369831583946286909040026129321210377806381458836177849875933671742728541088035169901401423129970049326034982147548534954035857594081800680417149751928958721898611668181260378073600496225765672327638567239150699518345638032409542277667887826399641176164700289647220824092961567465557534482974305806240497575764808940029364654034740437435869853762016558944287501460302327195118149601427290505399049005309289293904778989401351425572151455117568472429764829253354463540927911797018409217225028274190105415934827803105208799343816579593436030495071849286264508498424095530492884417076024762447001201657803408996920843703384723972401285379053066141587566072791648688361488569359934252925434999524869539911577180692197083709060202572481115135953529756147598317635033178339230870659396051570900921020087378611101734102477151515417068053225523433902817369939043626862160803155708717244066782504119007529561504363452105928302911843467234582210099616205165378282181932036859864347729638782688261601014740701076991583720815601338451335420346384224528524272074528396552557388555067391762709528106336958106378100630740327097084450061150218636454687979705660428035338404865075690422070586207153417918076625306428770588992230563713488025488383500366136951066408762287736351691968901310490981136699574081780551370386825040635273515528705960169621744885251743781570246230732204839756705730303878203062421933265247818704663070875100094947144555034286957673708680800691183908448163191298645137665063455401457113611097320498098845514655980037760128874401867526714122147793839220321231196762236052487408664140681153800061053863910967708167168126221884618159799664811827315331569908978789465043293182250468003129189953451212490542112207241290947693142070778924266522654696408578916287770780676828603584660090700473982133710836661062917595240215836126837320872487441020301151540175938413307835913439338577101834135453916519503296943507325620011275551590094557347641900147209452916280246904865566957671922402415920514264252215062854256676784499161078622744959598893436014481614101753249496417329090717816848055056400777042469999937617994058248821533613600833733031044487359647515007898609251397455077285499558017246598377714543194107517765528922615961965849869579593956148636001212925107872076955273216800031045035459339592882134779129535818995163780152361658681845544214608166669064754850539950208161802431802249120109627258530121714316622640551384444545520660782526808533810795077838658874568200620818548196677811345835774570094532687382919214807513514432847527889865800630078841602467941985791346233122943301211676937834380427168196834408958116559387073367507821982123452695123779451749050465698561500935152357372504692017884933429316517356929603112590801521881726082604234169197785354602775099536443923302666582053955959428740743224055621815059636733794889435375544038701015312455107324390121239748630494090819826828704516756286233351909601926097924996364384420885571351579615059814466612167345259619231303208955836852770615533996510034044449749487240740004257476843360290451351244328416317551753895228965658369713916846217335871598470973466368140126670949004818372403159747659254486240771855654419732864455039344691897647366611703195041866886109628438397095437737835247711652490291401405500234814482264694467064544319651717514034534852317479190855429646907538654936372094080438196484191468963513288574692401900092450017213182318716490201395986151173383658851250184304381172511758848324245178199085568587371711591676016208890432041182762038756847521821089535325803826924056312550234965604111224515384649092922268691440434317564681837473591223698553278046581707099395568942117455628315036848456096741514564453396351296336278626511833778340419517316412233431129206177639414874337433820556999153975868725117978589983501634953712509348765944442468218850547527334989949055243084032101279896125336373744679744895032920287703619270603908074215308847538201698909642603315057826281920698169824333200569032887303852936304609110715331312162572621091934914446898940798378551747242804435017403250190928508259886532647927309603728640408434856390281792659855996589163989426546497241084667393129859120411633235080759694251106077668742408829444621620364772166710227023067346763759880660552279808102345871052507881857652058476269454435396964862009482126543687237386140089219713077227282414880479084645586195621253388189161556161431811400652129727741244068147435216866921000397430824744920029530662915981403269506670421552264842115700164825897391595864490915777171387811149553788562039088823571814220086970319031091742824559144096074827834723711024023851185469338423462910926807807880178751396146526239611346924175526165199907391043226240197503145155548670846794745409777334803925953091724813404135865385614913591285427002098015415620872437272773706681356802349983186561270285626706190727486431166859296736475039233453804472221614722471833554760072724864350125101542643376108905981162638122534615591854577306590161246214376510337973194776735828474758566753497123855787621828404573759192568919485840108009067746792097903099257156172672848264500708993683287890466836394502503245314058887795550510594624908489438790535230551421641616332823058899680773373122791406633421906217817130506899217262263383216094092740710978066919315504010098620790025535747422664245272708042930390657773510836946807022297681887177520951699820151892300925248856907346272536788652057806111232327978723038766506429305095407699783880335821881304121273895159453657652016751042249870479932391699631325744197886969732092203663788932566281788392828498699879108444898697723471056562370430408222958245587945815373174914712394805246198830162879628774013441646853696421166767824907387688852118154252453080419320463346739797049172358946119414382448579185490519834257428716302238504567976781379314309321294475406665553437025359174452732939274132622957507113732958330787988618791075022668050066366732807878893620432365388425282293031173626658240395644431003972550691019439362368538936847400183178215016424622619599007616214611797529046038375921334737336479443369669257773498750833811597362519669079705764444591755353837131629770366525841377587093390741202851819609903922018068402065113314296450531084541461564480712193949238572311322880859619545149870034248049281682731016701953894662239273622041636174035070563400764316829888067499301892424082125593184019720888652519277176582017024464469271795488129778069100033991693691131961754896530015861570343199257450439288390167764173164920160666452358790691350851260161548011612094092919164990583704221875011562107136418016423332167911284574147797252096854368488547867038157772130263240743833827618350152624628706303542425559361229760056304425401733727682965816076246590459400144813028998242571412631522291842936847101302502242562175190113951024497007752296074394686806348306840321227148969919259451972038905256122909305771156733507682774038622215964578191004207449873928611352808344853661037810913593910754280372808313923887599326284021736965816991747474551625551490473859451246252154860422340339233341328635219077228008231344036754652367501837244595168549534251847819322676158649706684999332669534985974939548026651040844025830999361183770439153689077961629959333157932092626928955858213139237566705495494399957327495684140499225468022838107033957070506627089803949256391011737359982544353416452715155437416174712121867154022604603165760699423325694192480724656148919888623711665673713740442135352345402576272778632945230940290457921795948110080086577320534602895328301520345011593995518773126227569086551534183695058462391953246233344081924602253348201523560126774103898540576294035982985878819135499850562765071057414993166642402286523799022011765336231516459212581912828615966441972846836608887781514287189758108012791340619014867667056131362423741689912092692958693199436732655900318796886220346410700289868649821427877736071538477481944976272029787350040057213325509626051977811254583705576116196494763799164163770011459841814272647372198684417163909382170954172444963752352891013086888518836018545168249374083141216504279337728188601075253870205172865577315964198789073975603710162376399825886377572593805926311108457295616467753802153981313739364278962974899652610063448795288325697769485962215167132209908716274859305987732994479673491238411509088374867832270190034339010644264728913118038847406241396508541641481186099846102486172624246063775014009595290808264281299512133930827460748044387450389754327022272660671544060176640491205033891803354455029346179644495221060777367646866124998735477424935331835716826617009365204976371668021986569873693205462427262122612994080310677524672871049304358248741250433705662455161697872536969823730443955788280606017912522523460344068335833961383879891499808366275717160950049447552788280021507067369676693936526816112758198219445764426757396919324397844175916679031948694383676486577317080767282986501485878949176249411125062565558741274398789845127291083354349365269067510285243070604338148240912669896930539822055370319671193167386667641076310138153114785549050512312253217083610708255488749059096057594577738660447253029082230286458345231990503117381981612307189073225773164198933558663903959867377068661028667922820131065308399838555364712570414283449289312826429193512662162138202227071092708074634181625678514183463173162137981731092873153927763668212150215182074592574095311106784571769798452542116622932500654333791391185907490607289011662800376191724573372213615152310934506075040161473920386375325035178496653546140617291113975307536680385722010905032661899656641254832951823668953645036568622895205582858575618981383407572071539654190696073152133951667170170061391098013095033890796935592820065205104589478876091259176438647286944424863614083823460118974293194336302860887564602464815842237868011463240396099538632483638772868212209502233778562582600764107331272482940393916415216702661686928413993478141200990385733845563908016533215083074705771767706539807752529127407722576659274052544635003486092508600461342210058978685959641389679431896078036666382686995900509027598519387895900709717859375122075777885087923584051552111562465097190580576688954733172836718737575142022374490522153426176627524358417926364918949332717190669425196352295568569198948030754808391981545049950165343335933376730605283128061292391441251515643587367701731665156820691720392791010792099334459477440349107368028046390690601837686873704507884072262126712558864099674136582588482339708930585111099927537785027979143595300610011656784347363445692567501842562668057743055387760631663025093401735745566638300474376021132377435499202875134752833143925156530709089209075759674013211344770744413765542849206205842686890064917452152134839511968928226368042447875095032599620483659653806893513609915029106550713769997433065855348245450683504059673369261354110156875789607539044057625849231064868696623851495131235370702226386774712944313347752609774194910080277147589749828613726213003382749165654786787811305624226589560248301669768853469032333385450917953523468887000941562768486462991138260244061634549207538211167465816901412920776914709033704733923355474916902037932916402190956419462239919714361284462862050482341811245747456140499992234704391937172442884471344086824101749337830230527985776738353487244907737262456332821616506179219607369695494624274772177526431088220373372805821837923695200835678403078065585576651974670926180331223894374614569884627182289094150051340232887222110827765010228080335532436511547387095787810619432402061798134775086524447523978285800715716577830014453096026864021209486018842468894276416933048051930785713415589562279521112775467487834419009889340111705087989455682625663562863303562534381202075696519998010381566676763178407588798927322725472225657162708795467470489013926716493117447044974646710921374677968362844218834422738939826601254540742999650018416116852555742985098134688655223284636811885501879833383331705837147120744694160172650033601147354860448258353415718307184643434286156447666854523797707407749505705176293590526008523220114474524863426150050791450414930661267536353440118121139140695343608149889527708063893497669668890985886444510003228304820160947993249543799467976506724592480828529778111422373944460161826332797885939408856299264290183582995137783228036786502289060193977780936570416495528094633465705775355942309985064035152672339648671320807630358583527334859575954774851073665907084821835691096193288787192482897471216989794780238724759763842348530650821494753298085490668826280145461244987568208698657069082649292940755417737625782187076860773397435997001854015476643372524082714151087638053006835670736947085280737661239550033676864175428499139187776968184365057156844501606720875237851556543366571084764210374301981765070515090985780624347673460533006673473794983602264453575895286801439145913679283576970923541317604549475844480013151361401499034331869288492657040361725538485528730498591655173610232557583963053067552680144271377307290226904296759089684334012683888948201003295471496539734556561922129606419803996802147411040207751149371324395868593141272592716678822337889418806358417211433377110680324851241655159097362667010510790787808789555939459795494161647149935195440477287725999096497874422315527775034914085565573745752188928466203376204835390360022953133047339926716164638010308453423075374337595831388638710391008510656306261101991191031890097946870543959301833102768079012756402489025308625209380281805142636119019189346184295153288771090691316645656307725004210493855840352155687580037110434061118773828384811972657320662389079327033194516117988107107180629463112199730910037898054370037780677859577913422350990862013570624639690660483393345172916198390711846000529851544212364381965489696211802440505819662067618082526295391653128259375134088278340672456211814653350992777927969340338751265092948350891340844498789384616773058676426512773111851924203247603364614814456748751004124529921390437581085197909130758824322224103462045646219951995160724744600094324677223983982198689007707615615278574767750510245960159331491624951498685475802484895852296300305918622362822022934294343368720619239614302389744740160441294867293653901244072400421959537064647091307219855791965180908292313812464415381107466942759217340300128580957497535400674929754788196397227361965883869082222920020558113105331430083911673939399085092687995376005114293060662509747873081442712878283479982615817864294321584395920512573366277790831970925070797184320614733698816488877276420311714348820605152831570974714768952155306180994810109063707750924368344935087481261222562132472441735036713942396713371547401084073982582594517076392355862324464201418118851632238614320648881700247824250430688945057001392841903388597631814054636108275149183409749985034409467599557598964225978197500381016157947643379504522152725765512049280950196830550310729818042084692498385583103565219061708458467636750804184710408632460154986111464311804880362467775144501250180023065237369672427117398777992889671644619604833784182588533893600959914241947059445088671789673150180548755717944291324226186635777677172692143156787210620916272137948750169807098315988112824724302827435844117951558441791924654457092789374762099189171079902607677400887870746476656414015578541615538637080674609507678112303397542447931451320718116514861873211837851188297392230347682278734777958308713884919912032672572120786986714182833691195197380395091755456857677700628141904425611418193931543879551704011585542469022697396316567748392732624064964349446428825089945833747611912461118313977424981849439531449821186981319326046094014728847752653560314547178530032696268012066769408834569284840899986022810180856951579028976850148873528297385759693522626856894603667108003739023224655212277685214015233296813298175413776389619850764643433378699883061467502654167524338671905298881229518475646093544311008865361274560785009213496641314949935329776682927786095509467859700599718144382208981004572126693161938321036522737562962462178609319289131536539786262318535519546646403535881265651751849929761002391135272996652217202397715003801207177918161504019688331516863121929702237317875647688763345982833920547791240082673479816064854783108698606820219582997775714401099627346562344185116521318752884825956029753172146931497572032520420178340615664403268122979442584968996589070447341226610349220617282197523877059615389076787708788423357158890317458288621019077669482352069929127376003965375554021852057410308734412153155654075922205798517510819368541806598884845038343387420702777697590898036575742946777755781355296266799770565008615166166191172401195554984991827185642189346333407925904155561879565260558980784460441498070512136317827704090900361873618317074782367906349257035076681791856038073407831436207487823813920018539054704452863557085948075931980664780804125041094010202053181371690886844578024348231085778339593844166383034741568030093715832143800396267524285335032758659397369990436772978698301873406530790755523761175273363010534053510665273845964576427657179105004833099136435825581270630786273067753929171258806641905935324107151927659696038300707564628926290596152369032643587159390213913940546447291393582622510913305583645560485561628865473547190960552177868945782497413619560384671888609859027653846517477007420599425771070907945244163103100005674877299730816652495775728053923641945779364089731737687432213912154140731721836621754177507695704723605608380635626200814715844204399070850440399464794969976146359236011070792286273255756458658146551249940632822957022185960477867609316849317255438355398580550865125060790423447375402158393788897708272012681149370636590060601079195704743450895325290333774578922837745455529514655031057320225915245569368007433188853655433925774001730033607049872243359239968056936266973574294809172956443540414796664699186239879929135251265657141302067718943447985907812508929280843007811890114204511279528728480817448196948317778836545539162807281542415648937664611770146587341040534111213642996684896558931571848916673512371976884311425610814626003173042063285282460367192476999348477035448921382438324593824371056479616251937981506797176936176614085277573481332917439285457684387005638396751918116543271614175278318943134790019039078024233521323821394470791945295198603388374722461992806497990255637002213116024637824318064450148741897600158546281375930994796755198803563477229887477623657163000494780479958023074913500356335734845175676972882308010563612428810099355801239107053199201526181212289322501776312922984760797305782646376828716087874391086820816171913895559135865848623412571671851341292897426834400556755889786799461283022198126471769146669923668772336803472229238659209387839486245587055884720234716601427202514036875405168924575872286386648824417114072848505700144444297778533555916080177410706494435502637083352322848720258187868227875363986466047411034844790187953328169904146131754663634855861904888139121116231618376860952617821043139866344871951279957299733768314578241116005920343613895337237017418532096337440888695334305624156078660524091933204154907150882468784323893897262742726198920745960043373892542415254588622237187123775370263313247767811384099113240009662525504723321075908088761199823991013478844761812778067584030458834975009091704303277374880009337056346820687931692445053336834737451925299296951015691347375463445004241568244443052964279486770918144825920688966544213061502958791888256404536850029979987544826887063057068369226767739419240226030204633571671585319231396103969027481486731266821865072038932510985895177400450048872501611418456321293956767072431809213436264139633996778485374432634454786732853025263439388537924989307554205632238466285484981069245494670929889510458209748181955812138055354003959622678495285831163179324612274201843686602984483687985972653605607011384531291038113528495670237432607445953125391978948521188738998104501459408034640979062050025638756728384197454800790928569636660263092587702893456885168270367719718526329882666078567349318831392256180538154672161988491438277323400387882906023004621775804290074628698251332914396337414915246037492636243266770358776893868695422397628999372420472041857680134617565258639547552062369227062698962302734769645713852708546613060361849680469050817267325776061681608448024521433862777310425208633848144184021611882889268413657212002468424374634430127235947397268561045352305808311107072847421984046754807842432185329135968640015240914170967900662556001473167191986813044004022007986122321451553878665917519482638249685565174335053478479553698139059260974249575737986551380807063721545257758267370281036256357027953429923857295590556004816240403166889494465203551162561279478439244846586712803063059879554781958330883794712061296264694721649487752983492824032882618409487512813228893339305427066230619337826005749336947568341729314252227085889210716509958881514165941253408608314324422767494694651751778118628960233005063937887132086527345248107221487831715963377619851687996054630739095659707776100813806457214795380111011959050514322669287008821354171041943772377919166484409625604997584663283010306284231178459314148078510767837913364231434953808870209552910979357237106890742613021362299755340572786416053591764344733788570608735551210524400871037397907453154540027248552482563048176120160352240358987920043141960645250726431290942274759737917949160865141268779693586070126512349343850974339474622121095475368967187328059604467864996699071040502497534069547084415235139838027492309764899354305459129749468439339368417671799445276394896897509050495738498400902390050994170119576854706391372063309888493129576238739041028418993497380784196352166255796310130086381234534788925295713433682237159395976879300572222220030155944088311666552184851728219781472735873437601051523416599719909509503434864038761074730731250459722787199543421091612999571728080974458097052771305842817175019968063976414672960966168477013213654816379510429068495517328579537674212551517809761986402161212289515736343718936654705591548658591212666889254666212494750339631142217327086587091561250726409817371188630146561965612770330316918241513739351045000192469260174391354123121153369198088279319164326222032647951255933283626221131199118000494017633207946834009695046931616101733314809725774260618225952924692553050053767357799646683143722085782370595163901097360714531172347357891277954251708407510332404244296768355920680664879185950141978338473983396642174839245581763372825124620007460882176637074833281716226353611812337294889402045560969708812360623260687388761952659268249560737255955850805348501186562470857395108241318283729568819639018075251729323148751493116758742265490294437744093583327670137323193498233693395506428025710425752860519885560484969828601484672095247061669997971654392430384784507138538151205871119969377348475787984779987673568580913529600764107785781667541679218484161273531720203874076767366788428008182560496320363636181999592243532796469407165051433025059389669103840895673120231522021078233714498834054840893883989309006530273912681345648065607742688808650111877794980803390678666534426723161966903092196235012482859218643188287338020340329197574141971827915040923774112119624072212918013996997948498195111310698243561352730538127140120904031684857877142442302131679581474939241092507717019720939297159493375735231173094989281461480217858403380220488965579179167440988301143805108654063658888634617775836736046969156153919550142813456270258208166512316125658137600890328150319434665708602342687551612397549798675359679900312280025563364612369407452472661150506116305904572014950098162589031389278560354391713734147345107185249690532307760103066482411013503399520222754267429559258696613899261160377078002924729156066627204651612164939803632166214449231338107952231589372193001189183350821063111525891150494423273220313904244970179980742802088808741886899717896743524359079439607078814082083028277562618042603178258410860692474236497562314602840630203653167450279410311210518321908233410622581400715650442928113159115868721803917116081151630290780853339107425626983592157082890719678473052421518070288250315572347015787294866231169181214194349438998849716569505239571008757726263162441501394740760606699129412429180943229070836796928610005322971923492801279148792833689453628661487144322486107065950773811156355988416317257350346416592847689992027993859163860203414962863768221262052202174071319861086874128389863672994430245328680964876100728805136580037520225301017988981016503033822402814427559614575918832505489757041185338952534602103896947705985738558710150119645325774773498313559217455940517188470121159935765517232453931632155119478005019295019873576456922582030128657266264923586112298172221556538913815766903804236144801417364831422923007341959058000370717726662967273949321095009457055406885418323624081758791908144570450307124129419920092809432911244833644677286015523609755124021258180327309937600012649375236864418120677124087174000538352403610060144724849066736131326090651889356439059891009948799463747009918513300785729489024604560477057437278054551899721605973101617980309238526640146324992998971866419528128869145037149372612022674194718291127927808045604503210131996068605469707717043292016956256608756122773387504957350836447165358447393335820821124649856640746173151073839816697886038262863568057794733289704621859596119303802473281830044285322464261987680784371492486593349993434682848005390953916471520113339419578685812330981575624244938808621741654346717729647889515844700225241938031715633399207674050062700064858720006636718586089323682321206208296372622531278751471045841075201034082001336317214140573787433680517099343073000103852109960513656461856050453668486956538144392035706566961547062167600168321571450992761332868985238581520062373297649545475020638612996466926359451372099700909331647058856851883903978800259485392838759747181087426630187297518118919146117355227211680132433887959398382894745667534526299869015982677212673452917721389271438975014225407977204714250875037574107656917088476189892475424925407786422974564506425135267341929685913096473870592987749455689297826565380934798815822725885546645590531486312431760950857620162068078959774536498286379005078591746905654851574307011200876456208086946044999371836607710555765551343966994260885834676008333599195758743604710412829915963200287990835547355127039911823342894714429062364440381553346934220670991484397411160612165994015470938064146852243759071368825793842025735668664245441126125173661528204345973744108740273870090909732383816762621730545554991529037244815632197516392622387945901715173830379386675320595497143238948550664774259434732293152670120158278697619962403596049997252820136019252463896609733036610275926958485476406808637329129595265318830659590124117468054366775604834039881250307653259205858522267073825376781451976766056116970067186164990309330432137930317731185571965899670019773811535514339365095123336468570512354218206258954966131111506100787049517112890865280025993386034644375108265318530542346604987833053402853657370172866682756944158073832691500237439790323765379927305236090714596309942664640248875438087239827687946173956044855323938332968580846712609590428193428100609345828553935200270560966297676516460084307828651269028916582840924009093454136878756927493042140286755981423089468061532080570997828356938755770805568578348451348035903187725938112562598550785230218846719481917335279920102458198464533949858914247995406808514902025251676947741975219806036749271214636436059211646091317982484184014077289550206001933122899529210817202183544805918936463153728683771480325000183601222471487205096382107157871302205016309035604197871374223524570684442653842785228002562592247701140614843762188641054760486237393383934639456150793735289205350269936023905684811099505909483680765515066487538189120674554798857686198384635675983358578611372391052142240831025764858519349720656780909197923172909835044061614752582271211017890042889246837935961908033164200875407882524281663696469128908073388085071561741893316898718003647110844439210128769558739916834655710938339906341667320699528326355537600855535643221576351871983928403921778244277126989403497037579623786702592996125544838623408315510614908458591513871131626258432735239862056986353665916341695053581151703385001512448131152945114817197074824252435460924615192293479759184533634190384439349904328727914033932211690080705852853614179605389920875872374675925799894289440691222200399368850337731563753295328847816768513768182106007921295548761751662813171629438146616102674732027189858967820506612664302080323608317491724081178276388109900498500321948011961291591685097886273292001140336117807823452455145666561270599059672419165057088055803715020961870984612173997506914589084371300685411808861233081206493023114311474325935314077964263262673325654407318295031202716070369700851006368952704522145872263632761232309793791888426173696828696957647419950751691730763047806877117630219252025993727614485502912929117920491595974365573049631069742463357036963705397759424530528879731928650535094748195447524325106387899401314802014924664424875624965580494693669483389831801299792395863717394959621798476800322473657013673183726172522899644554146286356696221624529064502324415614123024608024249814519255978004078138008110843642339072883942984117623839290703168798639096847423098078843712221396205572426478214575398068817635532297796878169867539320978320959077216290380098164900181147055665613743840933853809278203511145046220251678119615919319029757825321535979321255691045426992372594012541947028804762455855796438764571700037461584623390039067767748811728680570884964456550432082919157017931785702078349559487171089937857835671598673836468419183193261579534038966144436045083191328312950364825448084115606329075195123407002033878338651537977594644203839612447741476623630808937734811555805494785454965303920705246534585035763546724054679002368